"groupTitle": "Chat_Interactions"
},
{
+ "type": "put",
+ "url": "/api/chat/interactions/{id}/close",
+ "title": "Close Interaction",
+ "examples": [
+ {
+ "title": "Example usage:",
+ "content": "curl https://{domain}/api/chat/interactions/{id}/close -d '[{\"to\": \"+3901119886500\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",
+ "type": "json"
+ }
+ ],
+ "name": "addMessage",
+ "group": "Chat_Interactions",
+ "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
+ "version": "0.0.0",
+ "filename": "server/api/chatInteraction/index.js",
+ "groupTitle": "Chat_Interactions"
+ },
+ {
"type": "post",
"url": "/api/chat/interactions/{id}/messages",
"title": "Creates new messages",
"groupTitle": "Chat_Interactions"
},
{
- "type": "put",
- "url": "/api/chat/interactions/{id}/close",
- "title": "Close Interaction",
- "examples": [
- {
- "title": "Example usage:",
- "content": "curl https://{domain}/api/chat/interactions/{id}/close -d '[{\"to\": \"+3901119886500\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",
- "type": "json"
- }
- ],
- "name": "addMessage",
- "group": "Chat_Interactions",
- "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
- "version": "0.0.0",
- "filename": "server/api/chatInteraction/index.js",
- "groupTitle": "Chat_Interactions"
- },
- {
"type": "post",
"url": "/api/chat/interactions/{id}/attachment_upload",
"title": "Add attachment",
"groupTitle": "Fax_Messages"
},
{
- "type": "post",
- "url": "/api/fax/messages",
- "title": "Create message and send Fax",
+ "type": "put",
+ "url": "/api/fax/messages/{id}/reject",
+ "title": "Rejects message",
"examples": [
{
"title": "Example usage:",
],
"name": "rejectMessage",
"group": "Fax_Messages",
- "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
+ "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
"filename": "server/api/faxMessage/index.js",
"groupTitle": "Fax_Messages"
},
{
- "type": "put",
- "url": "/api/fax/messages/{id}/reject",
- "title": "Rejects message",
+ "type": "post",
+ "url": "/api/fax/messages",
+ "title": "Create message and send Fax",
"examples": [
{
"title": "Example usage:",
],
"name": "rejectMessage",
"group": "Fax_Messages",
- "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
+ "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
"filename": "server/api/faxMessage/index.js",
"groupTitle": "Fax_Messages"
},
{
"type": "get",
- "url": "/api/rpc/voice/queues",
- "title": "Gets a list of RTVoiceQueues",
+ "url": "/api/rpc/outbound",
+ "title": "Gets a list of RTOutbound",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/rpc/voice/queues -v -u {name}:{password}",
+ "content": "curl https://{domain}/api/rpc/outbound -v -u {name}:{password}",
"type": "json"
}
],
"name": "RTVoiceQueues",
"group": "RPC_Realtime",
- "description": "<p>Motion will return a list of realtime voice queues parameters.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
+ "description": "<p>Motion will return a list of realtime outbound parameters.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
"filename": "server/api/rpc/index.js",
"groupTitle": "RPC_Realtime"
},
{
"type": "get",
- "url": "/api/rpc/outbound",
- "title": "Gets a list of RTOutbound",
+ "url": "/api/rpc/voice/queues",
+ "title": "Gets a list of RTVoiceQueues",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/rpc/outbound -v -u {name}:{password}",
+ "content": "curl https://{domain}/api/rpc/voice/queues -v -u {name}:{password}",
"type": "json"
}
],
"name": "RTVoiceQueues",
"group": "RPC_Realtime",
- "description": "<p>Motion will return a list of realtime outbound parameters.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
+ "description": "<p>Motion will return a list of realtime voice queues parameters.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
"filename": "server/api/rpc/index.js",
"groupTitle": "RPC_Realtime"
},
{
"type": "post",
- "url": "/api/sms/accounts/{id}/status",
+ "url": "/api/sms/messages/{id}/status",
"title": "Receive message status",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/sms/accounts/{id}/status -H 'Content-Type: application/json' -v -X POST",
+ "content": "curl https://{domain}/api/sms/messages/{id}/status \\ \n -H 'Content-Type: application/json' -v -X POST",
"type": "json"
}
],
"group": "Sms_Accounts",
"description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
- "filename": "server/api/smsAccount/index.js",
+ "filename": "server/api/smsMessage/index.js",
"groupTitle": "Sms_Accounts"
},
{
- "type": "post",
- "url": "/api/sms/messages/{id}/status",
- "title": "Receive message status",
+ "type": "get",
+ "url": "/api/sms/accounts/{id}/status",
+ "title": "Receive message status as get request",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/sms/messages/{id}/status \\ \n -H 'Content-Type: application/json' -v -X POST",
+ "content": "curl https://{domain}/api/sms/accounts/{id}/status -H 'Content-Type: application/json' -v -X GET",
"type": "json"
}
],
"name": "statusMessage",
"group": "Sms_Accounts",
- "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
+ "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
- "filename": "server/api/smsMessage/index.js",
+ "filename": "server/api/smsAccount/index.js",
"groupTitle": "Sms_Accounts"
},
{
- "type": "get",
+ "type": "post",
"url": "/api/sms/accounts/{id}/status",
- "title": "Receive message status as get request",
+ "title": "Receive message status",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/sms/accounts/{id}/status -H 'Content-Type: application/json' -v -X GET",
+ "content": "curl https://{domain}/api/sms/accounts/{id}/status -H 'Content-Type: application/json' -v -X POST",
"type": "json"
}
],
"name": "statusMessage",
"group": "Sms_Accounts",
- "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
+ "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
"filename": "server/api/smsAccount/index.js",
"groupTitle": "Sms_Accounts"
},
{
"type": "delete",
- "url": "/api/whatsapp/queues/{id}/teams",
+ "url": "/api/fax/queues/{id}/teams",
"title": "Remove teams from a queue",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/whatsapp/queues/{id}/teams -v -u {name}:{password} -X DELETE",
+ "content": "curl https://{domain}/api/fax/queues/{id}/teams -v -u {name}:{password} -X DELETE",
"type": "json"
}
],
"group": "Teams",
"description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
- "filename": "server/api/whatsappQueue/index.js",
+ "filename": "server/api/faxQueue/index.js",
"groupTitle": "Teams"
},
{
"type": "delete",
- "url": "/api/openchannel/queues/{id}/teams",
+ "url": "/api/mail/queues/{id}/teams",
"title": "Remove teams from a queue",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/openchannel/queues/{id}/teams -v -u {name}:{password} -X DELETE",
+ "content": "curl https://{domain}/api/mail/queues/{id}/teams -v -u {name}:{password} -X DELETE",
"type": "json"
}
],
"group": "Teams",
"description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
- "filename": "server/api/openchannelQueue/index.js",
+ "filename": "server/api/mailQueue/index.js",
"groupTitle": "Teams"
},
{
"type": "delete",
- "url": "/api/voice/queues/{id}/teams",
+ "url": "/api/openchannel/queues/{id}/teams",
"title": "Remove teams from a queue",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/voice/queues/{id}/teams -v -u {name}:{password} -X DELETE",
+ "content": "curl https://{domain}/api/openchannel/queues/{id}/teams -v -u {name}:{password} -X DELETE",
"type": "json"
}
],
"group": "Teams",
"description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
- "filename": "server/api/voiceQueue/index.js",
+ "filename": "server/api/openchannelQueue/index.js",
"groupTitle": "Teams"
},
{
},
{
"type": "delete",
- "url": "/api/voice/Prefixes/{id}/teams",
- "title": "Remove teams from a voice prefix",
- "examples": [
- {
- "title": "Example usage:",
- "content": "curl https://{domain}/api/voice/prefixes/{id}/teams -v -u {name}:{password} -X DELETE",
- "type": "json"
- }
- ],
- "name": "RemoveTeams",
- "group": "Teams",
- "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
- "version": "0.0.0",
- "filename": "server/api/voicePrefix/index.js",
- "groupTitle": "Teams"
- },
- {
- "type": "delete",
- "url": "/api/chat/queues/{id}/teams",
+ "url": "/api/whatsapp/queues/{id}/teams",
"title": "Remove teams from a queue",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/chat/queues/{id}/teams -v -u {name}:{password} -X DELETE",
+ "content": "curl https://{domain}/api/whatsapp/queues/{id}/teams -v -u {name}:{password} -X DELETE",
"type": "json"
}
],
"group": "Teams",
"description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
- "filename": "server/api/chatQueue/index.js",
+ "filename": "server/api/whatsappQueue/index.js",
"groupTitle": "Teams"
},
{
"type": "delete",
- "url": "/api/fax/queues/{id}/teams",
+ "url": "/api/voice/queues/{id}/teams",
"title": "Remove teams from a queue",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/fax/queues/{id}/teams -v -u {name}:{password} -X DELETE",
+ "content": "curl https://{domain}/api/voice/queues/{id}/teams -v -u {name}:{password} -X DELETE",
"type": "json"
}
],
"group": "Teams",
"description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
- "filename": "server/api/faxQueue/index.js",
+ "filename": "server/api/voiceQueue/index.js",
"groupTitle": "Teams"
},
{
"type": "delete",
- "url": "/api/mail/queues/{id}/teams",
+ "url": "/api/chat/queues/{id}/teams",
"title": "Remove teams from a queue",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/mail/queues/{id}/teams -v -u {name}:{password} -X DELETE",
+ "content": "curl https://{domain}/api/chat/queues/{id}/teams -v -u {name}:{password} -X DELETE",
"type": "json"
}
],
"group": "Teams",
"description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
- "filename": "server/api/mailQueue/index.js",
+ "filename": "server/api/chatQueue/index.js",
"groupTitle": "Teams"
},
{
},
{
"type": "post",
- "url": "/api/voice/prefixes/{id}/teams",
- "title": "Add teams to voice prefix",
- "examples": [
- {
- "title": "Example usage:",
- "content": "curl https://{domain}/api/voice/prefixes/{id}/teams -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",
- "type": "json"
- }
- ],
- "name": "AddTeams",
- "group": "Voice_Prefix",
- "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
- "version": "0.0.0",
- "filename": "server/api/voicePrefix/index.js",
- "groupTitle": "Voice_Prefix"
- },
- {
- "type": "get",
- "url": "/api/voice/prefixes/{id}/teams",
- "title": "Gets voice prefix team",
- "examples": [
- {
- "title": "Example usage:",
- "content": "curl https://{domain}/api/voice/prefixes/{id}/teams -v -u {name}:{password} -X GET",
- "type": "json"
- }
- ],
- "name": "GetTeams",
- "group": "Voice_Prefix",
- "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
- "version": "0.0.0",
- "filename": "server/api/voicePrefix/index.js",
- "groupTitle": "Voice_Prefix"
- },
- {
- "type": "post",
"url": "/api/voice/prefixes/{id}/users",
"title": "Add agents to a prefix",
"examples": [
"groupTitle": "Voice_Recordings"
},
{
- "type": "get",
+ "type": "post",
"url": "/api/voice/recordings/{id}/transcribe",
"title": "Run Transcribe Recording",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/voice/recordings/{id}/transcribe -v -u {name}:{password} -X GET",
+ "content": "curl https://{domain}/api/voice/recordings/{id}/transcribe -d '{\"runSentiment\": \"true\"}' -v -u {name}:{password} -X POST",
"type": "json"
}
],
"name": "transcribe",
"group": "Voice_Recordings",
- "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
+ "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
"filename": "server/api/voiceRecording/index.js",
"groupTitle": "Voice_Recordings"
},
{
- "type": "post",
+ "type": "get",
"url": "/api/voice/recordings/{id}/transcribe",
"title": "Run Transcribe Recording",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/voice/recordings/{id}/transcribe -d '{\"runSentiment\": \"true\"}' -v -u {name}:{password} -X POST",
+ "content": "curl https://{domain}/api/voice/recordings/{id}/transcribe -v -u {name}:{password} -X GET",
"type": "json"
}
],
"name": "transcribe",
"group": "Voice_Recordings",
- "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
+ "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
"filename": "server/api/voiceRecording/index.js",
"groupTitle": "Voice_Recordings"
"groupTitle": "Chat_Interactions"
},
{
+ "type": "put",
+ "url": "/api/chat/interactions/{id}/close",
+ "title": "Close Interaction",
+ "examples": [
+ {
+ "title": "Example usage:",
+ "content": "curl https://{domain}/api/chat/interactions/{id}/close -d '[{\"to\": \"+3901119886500\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",
+ "type": "json"
+ }
+ ],
+ "name": "addMessage",
+ "group": "Chat_Interactions",
+ "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
+ "version": "0.0.0",
+ "filename": "server/api/chatInteraction/index.js",
+ "groupTitle": "Chat_Interactions"
+ },
+ {
"type": "post",
"url": "/api/chat/interactions/{id}/messages",
"title": "Creates new messages",
"groupTitle": "Chat_Interactions"
},
{
- "type": "put",
- "url": "/api/chat/interactions/{id}/close",
- "title": "Close Interaction",
- "examples": [
- {
- "title": "Example usage:",
- "content": "curl https://{domain}/api/chat/interactions/{id}/close -d '[{\"to\": \"+3901119886500\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",
- "type": "json"
- }
- ],
- "name": "addMessage",
- "group": "Chat_Interactions",
- "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
- "version": "0.0.0",
- "filename": "server/api/chatInteraction/index.js",
- "groupTitle": "Chat_Interactions"
- },
- {
"type": "post",
"url": "/api/chat/interactions/{id}/attachment_upload",
"title": "Add attachment",
"groupTitle": "Fax_Messages"
},
{
- "type": "post",
- "url": "/api/fax/messages",
- "title": "Create message and send Fax",
+ "type": "put",
+ "url": "/api/fax/messages/{id}/reject",
+ "title": "Rejects message",
"examples": [
{
"title": "Example usage:",
],
"name": "rejectMessage",
"group": "Fax_Messages",
- "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
+ "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
"filename": "server/api/faxMessage/index.js",
"groupTitle": "Fax_Messages"
},
{
- "type": "put",
- "url": "/api/fax/messages/{id}/reject",
- "title": "Rejects message",
+ "type": "post",
+ "url": "/api/fax/messages",
+ "title": "Create message and send Fax",
"examples": [
{
"title": "Example usage:",
],
"name": "rejectMessage",
"group": "Fax_Messages",
- "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
+ "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
"filename": "server/api/faxMessage/index.js",
"groupTitle": "Fax_Messages"
},
{
"type": "get",
- "url": "/api/rpc/voice/queues",
- "title": "Gets a list of RTVoiceQueues",
+ "url": "/api/rpc/outbound",
+ "title": "Gets a list of RTOutbound",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/rpc/voice/queues -v -u {name}:{password}",
+ "content": "curl https://{domain}/api/rpc/outbound -v -u {name}:{password}",
"type": "json"
}
],
"name": "RTVoiceQueues",
"group": "RPC_Realtime",
- "description": "<p>Motion will return a list of realtime voice queues parameters.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
+ "description": "<p>Motion will return a list of realtime outbound parameters.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
"filename": "server/api/rpc/index.js",
"groupTitle": "RPC_Realtime"
},
{
"type": "get",
- "url": "/api/rpc/outbound",
- "title": "Gets a list of RTOutbound",
+ "url": "/api/rpc/voice/queues",
+ "title": "Gets a list of RTVoiceQueues",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/rpc/outbound -v -u {name}:{password}",
+ "content": "curl https://{domain}/api/rpc/voice/queues -v -u {name}:{password}",
"type": "json"
}
],
"name": "RTVoiceQueues",
"group": "RPC_Realtime",
- "description": "<p>Motion will return a list of realtime outbound parameters.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
+ "description": "<p>Motion will return a list of realtime voice queues parameters.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
"filename": "server/api/rpc/index.js",
"groupTitle": "RPC_Realtime"
},
{
"type": "post",
- "url": "/api/sms/accounts/{id}/status",
+ "url": "/api/sms/messages/{id}/status",
"title": "Receive message status",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/sms/accounts/{id}/status -H 'Content-Type: application/json' -v -X POST",
+ "content": "curl https://{domain}/api/sms/messages/{id}/status \\ \n -H 'Content-Type: application/json' -v -X POST",
"type": "json"
}
],
"group": "Sms_Accounts",
"description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
- "filename": "server/api/smsAccount/index.js",
+ "filename": "server/api/smsMessage/index.js",
"groupTitle": "Sms_Accounts"
},
{
- "type": "post",
- "url": "/api/sms/messages/{id}/status",
- "title": "Receive message status",
+ "type": "get",
+ "url": "/api/sms/accounts/{id}/status",
+ "title": "Receive message status as get request",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/sms/messages/{id}/status \\ \n -H 'Content-Type: application/json' -v -X POST",
+ "content": "curl https://{domain}/api/sms/accounts/{id}/status -H 'Content-Type: application/json' -v -X GET",
"type": "json"
}
],
"name": "statusMessage",
"group": "Sms_Accounts",
- "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
+ "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
- "filename": "server/api/smsMessage/index.js",
+ "filename": "server/api/smsAccount/index.js",
"groupTitle": "Sms_Accounts"
},
{
- "type": "get",
+ "type": "post",
"url": "/api/sms/accounts/{id}/status",
- "title": "Receive message status as get request",
+ "title": "Receive message status",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/sms/accounts/{id}/status -H 'Content-Type: application/json' -v -X GET",
+ "content": "curl https://{domain}/api/sms/accounts/{id}/status -H 'Content-Type: application/json' -v -X POST",
"type": "json"
}
],
"name": "statusMessage",
"group": "Sms_Accounts",
- "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
+ "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
"filename": "server/api/smsAccount/index.js",
"groupTitle": "Sms_Accounts"
},
{
"type": "delete",
- "url": "/api/whatsapp/queues/{id}/teams",
+ "url": "/api/fax/queues/{id}/teams",
"title": "Remove teams from a queue",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/whatsapp/queues/{id}/teams -v -u {name}:{password} -X DELETE",
+ "content": "curl https://{domain}/api/fax/queues/{id}/teams -v -u {name}:{password} -X DELETE",
"type": "json"
}
],
"group": "Teams",
"description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
- "filename": "server/api/whatsappQueue/index.js",
+ "filename": "server/api/faxQueue/index.js",
"groupTitle": "Teams"
},
{
"type": "delete",
- "url": "/api/openchannel/queues/{id}/teams",
+ "url": "/api/mail/queues/{id}/teams",
"title": "Remove teams from a queue",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/openchannel/queues/{id}/teams -v -u {name}:{password} -X DELETE",
+ "content": "curl https://{domain}/api/mail/queues/{id}/teams -v -u {name}:{password} -X DELETE",
"type": "json"
}
],
"group": "Teams",
"description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
- "filename": "server/api/openchannelQueue/index.js",
+ "filename": "server/api/mailQueue/index.js",
"groupTitle": "Teams"
},
{
"type": "delete",
- "url": "/api/voice/queues/{id}/teams",
+ "url": "/api/openchannel/queues/{id}/teams",
"title": "Remove teams from a queue",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/voice/queues/{id}/teams -v -u {name}:{password} -X DELETE",
+ "content": "curl https://{domain}/api/openchannel/queues/{id}/teams -v -u {name}:{password} -X DELETE",
"type": "json"
}
],
"group": "Teams",
"description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
- "filename": "server/api/voiceQueue/index.js",
+ "filename": "server/api/openchannelQueue/index.js",
"groupTitle": "Teams"
},
{
},
{
"type": "delete",
- "url": "/api/voice/Prefixes/{id}/teams",
- "title": "Remove teams from a voice prefix",
- "examples": [
- {
- "title": "Example usage:",
- "content": "curl https://{domain}/api/voice/prefixes/{id}/teams -v -u {name}:{password} -X DELETE",
- "type": "json"
- }
- ],
- "name": "RemoveTeams",
- "group": "Teams",
- "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
- "version": "0.0.0",
- "filename": "server/api/voicePrefix/index.js",
- "groupTitle": "Teams"
- },
- {
- "type": "delete",
- "url": "/api/chat/queues/{id}/teams",
+ "url": "/api/whatsapp/queues/{id}/teams",
"title": "Remove teams from a queue",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/chat/queues/{id}/teams -v -u {name}:{password} -X DELETE",
+ "content": "curl https://{domain}/api/whatsapp/queues/{id}/teams -v -u {name}:{password} -X DELETE",
"type": "json"
}
],
"group": "Teams",
"description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
- "filename": "server/api/chatQueue/index.js",
+ "filename": "server/api/whatsappQueue/index.js",
"groupTitle": "Teams"
},
{
"type": "delete",
- "url": "/api/fax/queues/{id}/teams",
+ "url": "/api/voice/queues/{id}/teams",
"title": "Remove teams from a queue",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/fax/queues/{id}/teams -v -u {name}:{password} -X DELETE",
+ "content": "curl https://{domain}/api/voice/queues/{id}/teams -v -u {name}:{password} -X DELETE",
"type": "json"
}
],
"group": "Teams",
"description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
- "filename": "server/api/faxQueue/index.js",
+ "filename": "server/api/voiceQueue/index.js",
"groupTitle": "Teams"
},
{
"type": "delete",
- "url": "/api/mail/queues/{id}/teams",
+ "url": "/api/chat/queues/{id}/teams",
"title": "Remove teams from a queue",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/mail/queues/{id}/teams -v -u {name}:{password} -X DELETE",
+ "content": "curl https://{domain}/api/chat/queues/{id}/teams -v -u {name}:{password} -X DELETE",
"type": "json"
}
],
"group": "Teams",
"description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
- "filename": "server/api/mailQueue/index.js",
+ "filename": "server/api/chatQueue/index.js",
"groupTitle": "Teams"
},
{
},
{
"type": "post",
- "url": "/api/voice/prefixes/{id}/teams",
- "title": "Add teams to voice prefix",
- "examples": [
- {
- "title": "Example usage:",
- "content": "curl https://{domain}/api/voice/prefixes/{id}/teams -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",
- "type": "json"
- }
- ],
- "name": "AddTeams",
- "group": "Voice_Prefix",
- "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
- "version": "0.0.0",
- "filename": "server/api/voicePrefix/index.js",
- "groupTitle": "Voice_Prefix"
- },
- {
- "type": "get",
- "url": "/api/voice/prefixes/{id}/teams",
- "title": "Gets voice prefix team",
- "examples": [
- {
- "title": "Example usage:",
- "content": "curl https://{domain}/api/voice/prefixes/{id}/teams -v -u {name}:{password} -X GET",
- "type": "json"
- }
- ],
- "name": "GetTeams",
- "group": "Voice_Prefix",
- "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
- "version": "0.0.0",
- "filename": "server/api/voicePrefix/index.js",
- "groupTitle": "Voice_Prefix"
- },
- {
- "type": "post",
"url": "/api/voice/prefixes/{id}/users",
"title": "Add agents to a prefix",
"examples": [
"groupTitle": "Voice_Recordings"
},
{
- "type": "get",
+ "type": "post",
"url": "/api/voice/recordings/{id}/transcribe",
"title": "Run Transcribe Recording",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/voice/recordings/{id}/transcribe -v -u {name}:{password} -X GET",
+ "content": "curl https://{domain}/api/voice/recordings/{id}/transcribe -d '{\"runSentiment\": \"true\"}' -v -u {name}:{password} -X POST",
"type": "json"
}
],
"name": "transcribe",
"group": "Voice_Recordings",
- "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
+ "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
"filename": "server/api/voiceRecording/index.js",
"groupTitle": "Voice_Recordings"
},
{
- "type": "post",
+ "type": "get",
"url": "/api/voice/recordings/{id}/transcribe",
"title": "Run Transcribe Recording",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/voice/recordings/{id}/transcribe -d '{\"runSentiment\": \"true\"}' -v -u {name}:{password} -X POST",
+ "content": "curl https://{domain}/api/voice/recordings/{id}/transcribe -v -u {name}:{password} -X GET",
"type": "json"
}
],
"name": "transcribe",
"group": "Voice_Recordings",
- "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
+ "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
"filename": "server/api/voiceRecording/index.js",
"groupTitle": "Voice_Recordings"
define({
"name": "xCALLY Motion API",
- "version": "2.5.36",
+ "version": "2.5.34",
"description": "Thank you for choosing xCALLY MOTION, one of the first Omni Channel solution integrated with AsteriskTM and the most innovative real time solutions available on the market.",
"title": "xCALLY MOTION API",
"header": {
"apidoc": "0.3.0",
"generator": {
"name": "apidoc",
- "time": "2021-10-06T08:18:01.574Z",
+ "time": "2021-10-06T09:56:01.011Z",
"url": "http://apidocjs.com",
"version": "0.24.0"
}
{
"name": "xCALLY Motion API",
- "version": "2.5.36",
+ "version": "2.5.34",
"description": "Thank you for choosing xCALLY MOTION, one of the first Omni Channel solution integrated with AsteriskTM and the most innovative real time solutions available on the market.",
"title": "xCALLY MOTION API",
"header": {
"apidoc": "0.3.0",
"generator": {
"name": "apidoc",
- "time": "2021-10-06T08:18:01.574Z",
+ "time": "2021-10-06T09:56:01.011Z",
"url": "http://apidocjs.com",
"version": "0.24.0"
}
{
"name": "motion",
- "version": "2.5.36",
+ "version": "2.5.34",
"description": "xCALLY Motion is the new Realtime asynchronous solution for your multichannel contact center over Asterisk.",
"main": "server/app.js",
"engines": {
"aws-sdk": "2.610.0",
"bimedia-machine-uuid": "1.0.1",
"bluebird": "3.7.2",
- "html-entities": "2.3.2",
"body-parser": "1.19.0",
"compare-versions": "3.6.0",
"composable-middleware": "0.3.0",
{
"FORGOTPASSWORD": {
- "TITLE": "Passwort wiederherstellen",
- "EMAIL_ADRESS": "E-Mail Adresse",
+ "TITLE": "Ihr Passwort wiederherstellen",
+ "EMAIL_ADRESS": "E-mail Adresse",
"SEND_RESET_LINK": "LINK ZUM ZURÜCKSETZEN SENDEN",
"GO_BACK": "Zurück zum Login",
"LINK_SENT": "Link gesendet",
- "LINNK_SENT_MESSAGE": "Eine E-Mail mit einem Link zum Zurücksetzen des Passwortes wurde an Ihre Adresse gesendet.",
- "PASSWORD_RESET_ERROR": "Fehler beim Zurücksetzen des Passwortes",
+ "LINNK_SENT_MESSAGE": "Eine e-Mail mit einem Link zum Zurücksetzen des Kennworts wurde an Ihre Adresse gesendet!",
+ "PASSWORD_RESET_ERROR": "Passwort Fehler zurücksetzen",
"ERRORS": {
- "EMAIL_REQUIRED": "Eingabe E-Mail Adresse erforderlich",
- "EMAIL_MUST_VALID": "Es muss eine gültige E-Mail Adresse eingegeben werden"
+ "EMAIL_REQUIRED": "Im Feld E-Mail ist erforderlich",
+ "EMAIL_MUST_VALID": "E-Mail muss eine gültige e-mail Adresse"
}
}
}
{
"LOGIN": {
- "TITLE": "Bitte mit Ihrem Konto anmelden",
+ "TITLE": "Melden Sie sich bei Ihrem Konto an",
"EMAIL": "E-Mail",
"PASSWORD": "Passwort",
- "REMEMBER_ME": "Anmeldedaten merken",
+ "REMEMBER_ME": "Erinnere Dich an Mich",
"FORGOT_PASSWORD": "Passwort vergessen?",
- "LOG_IN": "ANMELDEN",
+ "LOG_IN": "LOG IN",
"OR": "Oder",
- "WITH_GOOGLE": "Anmeldung mit Google",
- "WITH_FACEBOOK": "Anmeldung mit Facebook",
+ "WITH_GOOGLE": "Melden Sie sich mit Google",
+ "WITH_FACEBOOK": "Mit Facebook anmelden",
"DONT_HAVE_ACCOUNT": "Sie haben noch kein Konto?",
- "CREATE_ACCOUNT": "Konto erstellen",
+ "CREATE_ACCOUNT": "Erstellen Sie ein Konto",
"ERRORS": {
"EMAIL_REQUIRED": "Pflichtfeld",
"EMAIL_MUST_VALID": "Falsches Format",
"USERNAME_REQUIRED": "Pflichtfeld"
},
"USERNAME": "Benutzername",
- "CANCEL": "Abbrechen",
- "SELECT": "Auswählen",
+ "CANCEL": "Stornieren",
+ "SELECT": "Wählen",
"TELEPHONES": "Telefone"
}
}
"METRIC_REQUIRED": "Pflichtfeld",
"COLUMN_REQUIRED": "Pflichtfeld",
"VALUE_REQUIRED": "Pflichtfeld",
- "CUSTOM_METRIC_REQUIRED": "Pflichtfeld",
+ "CUSTOM_METRIC_REQUIRED": "benutzerdefinierte Metrik (erforderlich)",
"ALIAS_REQUIRED": "Pflichtfeld"
},
"NEW_METRIC": "Neue Metrik",
"SAVE": "Speichern",
"BACK": "Zurück",
"SELECTED": "Ausgewählte",
- "SELECT_ALL": "Alles auswählen",
- "SELECT_NONE": "Nichts auswählen",
+ "SELECT_ALL": "Alle auswählen",
+ "SELECT_NONE": "Keine auswählen",
"TYPE": "Typ",
"EXTRACTEDREPORTS": "Extrahierte Berichte",
"DATE_RANGE_FROM": "Datum von",
"GENERAL": "Allgemein",
"FIELDS": "Felder",
"CONDITION": "Bedingung",
- "OPERATOR": "Operator",
+ "OPERATOR": "Betreiber",
"GROUP": "Gruppe",
"COLUMN": "Spalte",
"VALUE": "Wert",
"PREVIEW": "Vorschau",
- "LIMITED_RESULT": "Ergebins begrenzt",
+ "LIMITED_RESULT": "BEGRENZTES ERGEBNIS",
"NO_DATA": "Keine Daten",
"CONDITIONS": "Bedingungen",
"ALIAS": "Alias",
"FUNCTION": "Funktion",
"GROUP_BY": "Gruppieren nach",
- "ORDER_BY": "Sortieren nach",
+ "ORDER_BY": "Bestellung von",
"ADD_REPORTFIELD": "Feld hinzufügen",
"EDIT_REPORTFIELD": "Feld bearbeiten",
"DELETE_REPORTFIELD": "Feld löschen",
"NO_METRIC_FOUND": "Keine Metrik gefunden",
"NO_AVAILABLE_INFO": "keine Informationen verfügbar",
"CUSTOM_METRIC": "Benutzerdefinierte Metrik",
- "DELETE_EXTRACTEDREPORT": "Extrahierte Berichte löschen",
+ "DELETE_EXTRACTEDREPORT": "Löschen extrahierte Berichte",
"EDIT_EXTRACTEDREPORT": "Extrahierte Berichte bearbeiten",
- "DOWNLOAD_EXTRACTEDREPORT": "Extrahierte Berichte herunterladen",
+ "DOWNLOAD_EXTRACTEDREPORT": "Herunterladen extrahierte Berichte",
"PAGE": "Seite",
"ROWSPERPAGE": "Zeilen pro Seite",
- "OF": "von",
+ "OF": "Von",
"DELETE": "Löschen",
"REPORTNAME": "Berichtsname",
"SEND_IF_EMPTY": "Senden, wenn leer",
"CHAT": {
"AMAZONLEX": "Amazon Lex",
"TEXT": "Text",
- "TIMES": "Anzahl der Zeiten pro Interaktion",
+ "TIMES": "Anzahl von Malen pro Interaktion",
"EDIT_AUTOREPLY": "Automatische Antwort bearbeiten",
"AUTOREPLY": "Automatische Antwort",
- "NEW_CHATDISPOSITION": "Neue Chat-Qualifizierung",
+ "NEW_CHATDISPOSITION": "Neue Chat-Disposition",
"ENABLECUSTOMERATTACHMENT": "Kundenanhänge aktivieren",
- "OFFLINE_CHAT_BUTTON": "Button Chat offline",
+ "OFFLINE_CHAT_BUTTON": "Offline-Chat-Taste",
"OFFLINESTATUS": "Offline Status",
"NAME": "Name",
"CHATQUEUES": "Chat-Warteschlangen",
"STRATEGY": "Strategie",
"AGENT_TIMEOUT": "Agent Timeout",
"DESCRIPTION": "Beschreibung",
- "KEY": "Schlüssel",
+ "KEY": "Key",
"ALIAS": "Alias-Name",
"VARIABLE": "Variable",
"INTERVAL": "Intervall",
- "EDIT_CLOSE": "Bearbeitung abschließen",
+ "EDIT_CLOSE": "Bearbeiten Schließen",
"TIMEZONE": "Zeitzone",
"MESSAGE": "Nachricht",
"ADVANCED": "Erweitert",
"FORWARDTRANSCRIPT": "Transkript weiterleiten",
"FORWARDTRANSCRIPTMESSAGE": "Transkript-Nachricht weiterleiten",
- "SKIPMESSAGEBUTTON": "Nachrichtenbutton überspringen",
+ "SKIPMESSAGEBUTTON": "Nachrichtentaste überspringen",
"EDIT_MESSAGE": "Nachricht bearbeiten",
- "CONDITION_AGREEMENT": "Konditionelle Vereinbarung",
- "NONE": "Nichts",
+ "CONDITION_AGREEMENT": "Bedingungsvereinbarung",
+ "NONE": "Keine",
"PRIORITY": "Priorität",
"ONLINESTATUS": "Online Status",
- "UNMANAGEDSTATUS": "Status nicht bearbeitet",
+ "UNMANAGEDSTATUS": "Nicht verwalteter Status",
"AUTOCLOSE": "Automatisches Schließen aktivieren",
- "ENABLEUNMANAGEDNOTE": "Unbearbeitete Nachricht aktivieren",
- "UNMANAGEDMESSAGE": "Unbearbeitete Nachricht",
+ "ENABLEUNMANAGEDNOTE": "Nicht verwaltete Nachricht aktivieren",
+ "UNMANAGEDMESSAGE": "Nachricht",
"SKIPUNMANAGED": "Nachricht überspringen",
"SENDUNMANAGED": "Nachricht senden",
- "WEBSITESCRIPT": "Webseiten-Skript",
+ "WEBSITESCRIPT": "Website-Script",
"DELETE_OFFLINEMESSAGE": "Löschen",
"OFFLINEMESSAGES": "Offline Nachrichten",
"FORWARD_OFFLINE": "Offline weiterleiten",
"FORWARD_OFFLINE_ADDRESS": "Offline-Adresse weiterleiten",
"CLOSINGFORM": "Formular schließen",
"ENABLERATING": "Bewertung aktivieren",
- "ENABLECUSTOMERWRITING": "Kunde kann schreiben, bevor Chat akzeptiert wird",
+ "ENABLECUSTOMERWRITING": "Dem Kunden \"schreiben\" erlauben, bevor der Agent akzeptiert",
"ENABLEFEEDBACK": "Feedback aktivieren",
"RATINGTYPE": "Bewertungstyp",
- "CLOSINGMESSAGE": "Abschluss Nachricht",
- "CLOSINGMESSAGEBUTTON": "Button für Abschluss Nachricht",
+ "CLOSINGMESSAGE": "Nachricht schließen",
+ "CLOSINGMESSAGEBUTTON": "Nachrichtentaste schließen",
"RATINGSTARSNUMBER": "Anzahl der Bewertungssterne",
"EDIT_GOTOIF": "GotoIf bearbeiten",
"CONDITION": "Bedingung",
- "TRUEPRIORITY": "Wahre Priorität",
+ "TRUEPRIORITY": "Echte Priorität",
"FALSEPRIORITY": "Falsche Priorität",
"VALUE": "Wert",
"WEBSITEALIAS": "Website-Alias",
"ERRORS": {
"TEXT_REQUIRED": "Pflichtfeld",
"SENDUNMANAGED_REQUIRED": "Pflichtfeld",
- "SENDUNMANAGED_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
- "SKIPUNMANAGED_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
- "UNMANAGEDMESSAGE_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
- "WEBSITEALIAS_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
+ "SENDUNMANAGED_MAX_LENGTH": "Der Wert muss eine maximale Länge gleich {{max}} haben",
+ "SKIPUNMANAGED_MAX_LENGTH": "Der Wert muss eine maximale Länge gleich {{{{max}} haben",
+ "UNMANAGEDMESSAGE_MAX_LENGTH": "Der Wert muss eine maximale Länge gleich {{{{max}} haben",
+ "WEBSITEALIAS_MAX_LENGTH": "Der Wert muss eine maximale Länge gleich {{{{max}} haben",
"AGENT_REQUIRED": "Pflichtfeld",
"QUEUE_REQUIRED": "Pflichtfeld",
"CONDITION_REQUIRED": "Pflichtfeld",
"TIMEOUT_REQUIRED": "Pflichtfeld",
"REJECTURL_MUST_VALID_URL": "Falsches Format",
"CLOSEURL_MUST_VALID_URL": "Falsches Format",
- "PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
- "TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
- "FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
- "TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
- "POLLING_INTERVAL_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
+ "PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
+ "TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
+ "FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
+ "TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
+ "POLLING_INTERVAL_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
"WAITINGMESSAGE_REQUIRED": "Pflichtfeld",
"WAITINGTITLE_REQUIRED": "Pflichtfeld",
- "KEY_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
+ "KEY_MAX_LENGTH": "Der Wert muss eine maximale Länge gleich {{max}} haben",
"KEY_REQUIRED": "Pflichtfeld",
- "WAITINGMESSAGE_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
- "WAITINGTITLE_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
- "RATINGSTARSNUMBER_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
- "HEADER_OFFLINE_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
- "OFFLINE_CHAT_BUTTON_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
- "CLOSINGQUESTION_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
- "TEXT_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
+ "WAITINGMESSAGE_MAX_LENGTH": "Der Wert muss eine maximale Länge gleich {{max}} haben",
+ "WAITINGTITLE_MAX_LENGTH": "Der Wert muss eine maximale Länge gleich {{max}} haben",
+ "RATINGSTARSNUMBER_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
+ "HEADER_OFFLINE_MAX_LENGTH": "Der Wert muss eine maximale Länge gleich {{max}} haben",
+ "OFFLINE_CHAT_BUTTON_MAX_LENGTH": "Der Wert muss eine maximale Länge gleich {{max}} haben",
+ "CLOSINGQUESTION_MAX_LENGTH": "Der Wert muss eine maximale Länge gleich {{max}} haben",
+ "TEXT_MAX_LENGTH": "Der Wert muss eine maximale Länge gleich {{max}} haben",
"VALUE_REQUIRED": "Pflichtfeld",
- "OFFLINEMESSAGESUBJECT_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
- "OFFLINEMESSAGEBODY_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
- "PLACEHOLDERMESSAGE_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
- "NOTETITLE_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
- "FORMSUBMITSUCCESSMESSAGE_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
- "FORMSUBMITFAILUREMESSAGE_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
- "FONTSIZE_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
+ "OFFLINEMESSAGESUBJECT_MAX_LENGTH": "Der Wert muss eine maximale Länge gleich {{max}} haben",
+ "OFFLINEMESSAGEBODY_MAX_LENGTH": "Der Wert muss eine maximale Länge gleich {{max}} haben",
+ "PLACEHOLDERMESSAGE_MAX_LENGTH": "Der Wert muss eine maximale Länge gleich {{max}} haben",
+ "NOTETITLE_MAX_LENGTH": "Der Wert muss eine maximale Länge gleich {{max}} haben",
+ "FORMSUBMITSUCCESSMESSAGE_MAX_LENGTH": "Der Wert muss eine maximale Länge gleich {{max}} haben",
+ "FORMSUBMITFAILUREMESSAGE_MAX_LENGTH": "Der Wert muss eine maximale Länge gleich {{max}} haben",
+ "FONTSIZE_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
"FONTSIZE_REQUIRED": "Pflichtfeld",
"COMMAND_REQUIRED": "Pflichtfeld",
- "AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
+ "AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
"NAME_MUST_VALID_PATTERN": "Falsches Format",
- "TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
- "AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
- "WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
- "WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
+ "TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
+ "AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
+ "WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
+ "WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
"WAITFORTHEASSIGNEDAGENT_REQUIRED": "Pflichtfeld",
- "VERTICALPOSITION_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
- "VERTICALPOSITION_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
+ "VERTICALPOSITION_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
+ "VERTICALPOSITION_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
"VERTICALPOSITION_REQUIRED": "Pflichtfeld",
- "CUSTOMERALIAS_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
+ "CUSTOMERALIAS_MAX_LENGTH": "Der Wert muss eine maximale Länge gleich {{max}} haben",
"TAG_REQUIRED": "Pflichtfeld",
- "MESSAGEFONTSIZE_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
- "MESSAGEFONTSIZE_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
+ "MESSAGEFONTSIZE_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
+ "MESSAGEFONTSIZE_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
"MESSAGEFONTSIZE_REQUIRED": "Pflichtfeld",
"AGENTALIAS_REQUIRED": "Pflichtfeld",
- "AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
- "AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
+ "AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
+ "AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
"AGENTTRANSFERTIMEOUT_REQUIRED": "Pflichtfeld",
"CUSTOMERALIAS_REQUIRED": "Pflichtfeld",
- "QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
- "QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
+ "QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
+ "QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
"QUEUETRANSFERTIMEOUT_REQUIRED": "Pflichtfeld",
- "SYSTEMALIAS_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
+ "SYSTEMALIAS_MAX_LENGTH": "Der Wert muss eine maximale Länge gleich {{max}} haben",
"SYSTEMALIAS_REQUIRED": "Pflichtfeld",
"ACCESSKEYID_REQUIRED": "Pflichtfeld",
"BOTNAME_REQUIRED": "Pflichtfeld",
"PROJECTID_REQUIRED": "Pflichtfeld",
"VIDAOOTOPIC_REQUIRED": "Pflichtfeld"
},
- "CM_FIELD": "Kontaktmanager-Feld",
- "CHATPROACTIVEACTIONS": "Proaktive Anfragen",
- "NEW_CHATPROACTIVEACTION": "Neue proaktive Anfrage",
- "EDIT_CHATPROACTIVEACTION": "Proaktive Anfrage bearbeiten",
- "DELETE_CHATPROACTIVEACTION": "Proaktive Anfrage löschen",
- "ADD_CHATPROACTIVEACTION": "Proaktive Anfrage hinzufügen",
- "NO_CHATPROACTIVEACTION_AVAILABLE": "Keine proaktiven Anfragen verfügbar",
+ "CM_FIELD": "Kontakt Manager Feld",
+ "CHATPROACTIVEACTIONS": "Proaktive Aktionen",
+ "NEW_CHATPROACTIVEACTION": "Neue proaktive Aktion",
+ "EDIT_CHATPROACTIVEACTION": "Proaktive Aktion bearbeiten",
+ "DELETE_CHATPROACTIVEACTION": "Proaktive Aktion löschen",
+ "ADD_CHATPROACTIVEACTION": "Proaktive Aktion hinzufügen",
+ "NO_CHATPROACTIVEACTION_AVAILABLE": "Keine proaktiven Aktionen verfügbar",
"NO_OFFLINEMESSAGE_AVAILABLE": "Keine Offline-Nachrichten verfügbar",
- "MOUSEOVER": "Mouse-Over",
+ "MOUSEOVER": "Maus über",
"TIMEOUT": "Timeout",
"TYPE": "Typ",
- "SELECTOR": "Selektion",
+ "SELECTOR": "Wählschalter",
"AGENT": "Agent",
"GOTO": "Goto",
"GOTOIF": "GotoIf",
"QUEUE": "Warteschlange",
"BUILDER": "Builder",
"PREVIEW": "Vorschau",
- "EDIT_AGENT": "Agenten bearbeiten",
+ "EDIT_AGENT": "Agent bearbeiten",
"EDIT_QUEUE": "Warteschlange bearbeiten",
"EDIT_GOTO": "Goto bearbeiten",
"EDIT_GOTOIf": "GotoIf bearbeiten",
"LIST": "Liste",
"SNIPPET": "Snippet",
"FORMS": "Formulare",
- "UP": "Nach Oben",
- "DOWN": "Nach Unten",
- "COLLAPSE": "Einklappen",
- "PROACTIVEACTIONS": "Proaktive Anfragen",
- "DISPOSITIONS": "Qualifizierungen",
+ "UP": "Bis",
+ "DOWN": "Unten",
+ "COLLAPSE": "Zusammenklappen",
+ "PROACTIVEACTIONS": "Proaktive Aktionen",
+ "DISPOSITIONS": "Dispositionen",
"WEBHOOKS": "WebHooks",
"ACTIONS": "Aktionen",
"FIDELITY": "Treue",
- "APPEARANCE": "Darstellung",
+ "APPEARANCE": "Aussehen",
"MAINCOLOR": "Hauptfarbe",
"FOCUSCOLOR": "Fokusfarbe",
- "BUTTONCOLOR": "Buttonfarbe",
+ "BUTTONCOLOR": "Tastenfarbe",
"HEADERSHAPE": "Kopfzeilenform",
"ANIMATION": "Animation",
"DEFAULT": "Standard",
"LABELS": "Labels",
"HEADER_ONLINE": "Online-Kopfzeile",
"ONLINE_MESSAGE": "Online Nachricht",
- "NAME_TITLE": "Name Titel",
- "USERNAME_PLACEHOLDER": "Platzhalter für Nutzernamen",
- "EMAIL_TITLE": "E-Mail Titel",
- "EMAIL_PLACEHOLDER": "Platzhalter für E-Mail Adresse",
- "START_CHAT_BUTTON": "'Chat starten' Button",
- "AGENTS_BUSY": "Agenten besetzt",
+ "NAME_TITLE": "Name Eingabebezeichnung",
+ "USERNAME_PLACEHOLDER": "Benutzername Eingabe Platzhalter",
+ "EMAIL_TITLE": "E-Mail-Eingabe Label",
+ "EMAIL_PLACEHOLDER": "Platzhalter für E-Mail-Eingabe",
+ "START_CHAT_BUTTON": "'Chat starten' Taste",
+ "AGENTS_BUSY": "Meldung für besetzte Agenten",
"HEADER_OFFLINE": "Offline-Kopfzeile",
"OFFLINE_MESSAGE": "Offline Nachricht",
- "MESSAGE_TITLE": "Nachricht Titel",
- "ENQUIRY_MESSAGE_PLACEHOLDER": "Platzhalter für Nachrichteneingabe",
- "ENQUIRY_BUTTON": "Anfrage-Button",
+ "MESSAGE_TITLE": "Nachrichtenbezeichnung",
+ "ENQUIRY_MESSAGE_PLACEHOLDER": "Platzhalter für die Eingabe von Anfragenachrichten",
+ "ENQUIRY_BUTTON": "Anfrage-Taste Text",
"RATING_MESSAGE": "Bewertungsnachricht",
- "RATING_SEND": "Button Bewertung senden",
- "RATING_SKIP": "Button Bewertung überspringen",
+ "RATING_SEND": "Bewertung Senden Tasten-Text",
+ "RATING_SKIP": "Bewertung Überspringen Tasten-Text",
"ONLINE": "Online",
"OFFLINE": "Offline",
- "PROACTIVE": "Proaktiv",
+ "PROACTIVE": "Proaktive",
"ACCEPT": "Akzeptieren",
- "ACCEPTMETHOD": "Methode akzeptieren",
+ "ACCEPTMETHOD": "Methode",
"ACCEPTURL": "URL akzeptieren",
"REJECT": "Ablehnen",
"REJECTMETHOD": "Methode ablehnen",
"REJECTURL": "URL ablehnen",
- "CLOSE": "Schließen",
+ "CLOSE": "Schliessen",
"CLOSEMETHOD": "Methode schließen",
"CLOSEURL": "URL schließen",
- "EMBEDDING": "Einbetten",
+ "EMBEDDING": "Einbettung",
"GENERAL": "Allgemein",
"SELECTED": "Ausgewählte",
- "SELECT_ALL": "Alles auswählen",
- "SELECT_NONE": "Nichts auswählen",
+ "SELECT_ALL": "Alle auswählen",
+ "SELECT_NONE": "Wählen Sie \"Keine\"",
"BACK": "Zurück",
"HELP": {
- "MAPKEY": "Das folgende Feld aus dem Kontaktmanager:",
- "FROMKEY": "wird in dem Chat-Snippet wie folgt zugeordnet:",
- "TOKEN": "Automatisch generierter Token zur Verwendung im Skript",
+ "MAPKEY": "Das folgende Motion Contact Manager-Feld:",
+ "FROMKEY": "Wird in Ihrem Motion Chat-Snippet wie folgt zugeordnet:",
+ "TOKEN": "Automatisch generiertes Token, das im Skript verwendet wird",
"COPYSCRIPTTOCLIPBOARD": "Kopieren Sie den Skripttext und fügen Sie ihn in Ihre Website ein",
"FORWARD_OFFLINE": "Sie können mehrere durch Kommas getrennte Adressen hinzufügen (z. B. john.doe@xcally.com, jane.miller@xcally.com)",
"MOTIONADDRESS": "Das Feld muss das folgende Format haben: ≪protocol>://<IP-Adresse>[:<port>]. Beispiel: https://X.Y.Z.W",
"MOTIONPROXY": "Das Feld muss das folgende Format haben: ≪Protocol>:// ≪IP-Adresse>: ≪port>]. Beispiel: https://X.Y.Z.W",
"NAME": "Nur Zahlen, Buchstaben und Sonderzeichen (._) werden unterstützt.",
- "LIST": "Liste für die Zuordnung aus dem Kontaktmanager",
+ "LIST": "Contact Manager-Liste, die zum Zuordnen von Kontakten verwendet wird",
"KEY": "Website-Kurzname (5 Zeichen), der auf der Registerkarte \"Agent\" angezeigt wird",
- "INTEVAL": "Wählen aus der Liste der verfügbaren Intervalle",
- "TIMEZONE": "Zeitzone auswählen (Standard = lokale Zeitzone)",
- "ENABLERATING": "Bewertung nach Chat durch Kunden aktivieren",
- "ENABLEFEEDBACK": "Feedback nach Chat durch Kunden aktivieren (Max. 150 Zeichen)",
- "FORWARDTRANSCRIPT": "Chatprotokoll nach Abschluss per E-Mail senden",
- "AUTOCLOSE": "Aktivieren Sie diese Option, wenn Chat-Sitzungen als nicht bearbeitet geschlossen werden sollen, sofern kein Agent verfügbar ist.",
- "ENABLEUNMANAGEDNOTE": "Automatische Nachricht an den Kunden, wenn alle Agenten besetzt sind und somit der Chat nicht verfügbar ist",
- "ENABLECUSTOMERWRITING": "Legt fest, ob der Kunde bereits im Chat schreiben kann, bevor ein Agent den Chat entgegen nimmmt. Hinweis: Dadurch kein Status \"unbearbeitet\"",
- "INTERVAL": "Bitte aus der Liste wählen",
+ "INTEVAL": "Wird aus der Liste der verfügbaren Intervalle ausgewählt",
+ "TIMEZONE": "Wählen Sie eine aus der Liste aus (Standard = lokale Zeitzone)",
+ "ENABLERATING": "Aktivieren Sie es, wenn Sie möchten, dass der Webbesucher die Interaktion am Ende bewerten kann",
+ "ENABLEFEEDBACK": "Aktivieren Sie es, wenn Sie möchten, dass der Webbesucher am Ende ein Feedback (bis zu 150 Zeichen) senden kann",
+ "FORWARDTRANSCRIPT": "Aktivieren Sie diese Option, wenn der Webbesucher aufgefordert wird, ein Chat-Protokoll per E-Mail zu erhalten",
+ "AUTOCLOSE": "Aktivieren Sie diese Option, wenn Chat-Sitzungen als nicht verwaltet geschlossen werden sollen, wenn kein Agent verfügbar ist. Weitere Informationen finden Sie unter: https://wiki.xcallymotion.com/display/XMV/Chat+Websites#ChatWebsites-Snippet",
+ "ENABLEUNMANAGEDNOTE": "Aktivieren Sie diese Option, wenn dem Besucher eine Nachricht angezeigt werden soll, wenn alle Agenten besetzt sind und der Chat nicht mehr verwaltet wird",
+ "ENABLECUSTOMERWRITING": "Aktivieren Sie es, wenn der Chat gestartet werden soll, ohne auf einen verfügbaren Agenten zu warten (Achtung: Wenn Sie ihn aktivieren, werden Ihre Chats niemals nicht verwaltet). Weitere Informationen finden Sie unter: https://wiki.xcallymotion.com/display/XMV/ Chat + Websites # ChatWebsites-Snippet ",
+ "INTERVAL": "Wählen Sie eins aus der Liste aus",
"HIDEWHENOFFLINE": "Snippet ausblenden, wenn offline",
- "AGENTIDENTIFIER": "Agentenkennung innerhalb der Chat-Sitzung im Snippet",
+ "AGENTIDENTIFIER": "Repräsentiert die Agentenkennung innerhalb der Chat-Sitzung im Snippet",
"WEBSITEALIAS": "Ein Präfix, mit dem der Agentenname (Präfix + Agenten-ID) erstellt wird, der dem Webbesucher während der Chat-Sitzung angezeigt wird",
- "VERTICALPOSITION": "Prozentualer Abstand in Prozent vom oberen Bildschirmrand",
- "WELCOMEMESSAGE": "Leer lassen, um keine Nachricht zu senden",
- "MANDATORYDISPOSITION": "Qualifizierung erforderlich",
- "MANDATORYDISPOSITIONPAUSEID": "PausenID bei erforderlicher Qualifizierung"
+ "VERTICALPOSITION": "Stellt den Abstand in Prozent von oben dar",
+ "WELCOMEMESSAGE": "Lassen Sie das Feld leer, wenn Sie keine Willkommensnachricht senden möchten",
+ "MANDATORYDISPOSITION": "Obligatorische Disposition",
+ "MANDATORYDISPOSITIONPAUSEID": "Pausieren Sie die Verwendung, wenn die obligatorische Disposition aktiviert ist"
},
"ADDRESS": "Adresse",
"ONLINESTATE": "Online Status",
"RATINGSTATE": "Bewertungsstatus",
"ENQUIRY": "Anfrage",
"OFFLINETEMPLATE": "Offline Vorlage",
- "CHATDISPOSITIONS": "Chat-Qualifizierungen",
- "NO_CHATDISPOSITION_AVAILABLE": "Keine Qualifizierung verfügbar",
- "ADD_CHATDISPOSITION": "Qualifizierung hinzufügen",
+ "CHATDISPOSITIONS": "Chat-Dispositionen",
+ "NO_CHATDISPOSITION_AVAILABLE": "Keine Chat-Dispositionen verfügbar",
+ "ADD_CHATDISPOSITION": "Chat Disposition hinzufügen",
"DELETE": "Löschen",
- "EDIT_CHATDISPOSITION": "Qualifizierung bearbeiten",
- "DELETE_CHATDISPOSITION": "Qualifizierung löschen",
+ "EDIT_CHATDISPOSITION": "Chat-Disposition bearbeiten",
+ "DELETE_CHATDISPOSITION": "Chat-Disposition löschen",
"CHAT": "Chat",
"ID": "ID",
"NEW_CHATQUEUE": "Neue Chat-Warteschlange",
"NEW_CHATWEBSITE": "Neue Chat-Website",
- "ROUNDED": "Rundes Design",
- "SQUARED": "Eckiges Design",
- "NO_AVAILABLE_INFO": "Keine Informationen verfügbar",
+ "ROUNDED": "Abgerundet",
+ "SQUARED": "Quadratisch",
+ "NO_AVAILABLE_INFO": "Keine verfügbaren Info",
"ALL_TEAMS": "Alle Teams",
"SELECTED_TEAMS": "Ausgewählte Teams",
"PAGE": "Seite",
"ROWSPERPAGE": "Zeilen pro Seite",
- "OF": "von",
+ "OF": "Von",
"CONTACT": "Kontakt",
"STARTEDAT": "Gestartet am",
"STATUS": "Status",
"CLOSED": "Geschlossen",
- "OPENED": "Geöffnet",
- "OPEN": "Offen",
+ "OPENED": "Öffnen",
+ "OPEN": "Öffnen",
"ACCOUNT": "Konto",
"INTERACTION": "Interaktion",
"INTERACTIONS": "Interaktionen",
"WEBSITE": "Website",
- "ALL": "Alles",
- "SELECT_STATUS": "Status auswählen",
+ "ALL": "Alle",
+ "SELECT_STATUS": "Wählen Sie einen Status",
"FILTER": "Filter",
"FILTERS": "Filter",
"TEAMADD_CHATQUEUE": "Team zur Chat-Warteschlange hinzufügen",
- "AGENTADD_CHATQUEUE": "Agenten zur Chat-Warteschlange hinzufügen",
+ "AGENTADD_CHATQUEUE": "Agent zur Chat-Warteschlange hinzufügen",
"ALL_AGENTS": "Alle Agenten",
"SELECTED_AGENTS": "Ausgewählte Agenten",
"CLOSEDAT": "Geschlossen am",
- "DISPOSITION": "Qualifizierung",
+ "DISPOSITION": "Disposition",
"CREATEDAT": "Erstellt am",
"NOTES": "Notizen",
"NO_INTERACTION_AVAILABLE": "Keine Interaktionen verfügbar",
- "SELECTED_WEBSITE": "Ausgewählte Webseite",
+ "SELECTED_WEBSITE": "Wählen Sie eine Website",
"GOTOP": "Gotop",
"EDIT_GOTOP": "Gotop bearbeiten",
- "SELECT_WEBSITE": "Webseite auswählen",
+ "SELECT_WEBSITE": "Wählen Sie eine Website",
"INFO": "Info",
"OFFLINEMESSAGES_CHATWEBSITE": "Zu Offline-Nachrichten gehen",
- "WAITINGTITLE": "Titel während Warten",
- "WAITINGMESSAGE": "Wartenachricht",
+ "WAITINGTITLE": "Wartetitel",
+ "WAITINGMESSAGE": "Wartende Nachricht",
"RATING": "Bewertung",
"NO_RATINGVALUE": "Keine Bewertung",
- "AGENTSADD_QUEUE": "Agenten zur Chat-Warteschlange hinzufügen",
+ "AGENTSADD_QUEUE": "Agent zur Chat-Warteschlange hinzufügen",
"QUEUES": "Warteschlangen",
"LOGGED_IN": "Angemeldet",
- "PAUSED": "in Pause",
+ "PAUSED": "Pausiert",
"READY": "Bereit",
- "WAITING": "Wartezustand",
- "WRITING": "am Schreiben",
+ "WAITING": "Warten",
+ "WRITING": "Schreiben",
"MAIL": "E-Mail",
"SMS": "SMS",
- "OPENCHANNEL": "Offener Kanal",
+ "OPENCHANNEL": "Openchannel",
"FAX": "Fax",
"PAUSE": "Pause",
"REALTIME": "Echtzeit",
"AGENTS": "Agenten",
"FULLNAME": "Vollständiger Name",
- "INTERNAL": "Intern",
+ "INTERNAL": "Interne",
"PHONE_STATE": "Telefonstatus",
"PHONE_STATUS": "Telefonstatus",
"LOGOUT": "Abmelden",
"UNPAUSE": "Pause beenden",
- "AGENTADD_QUEUE": "Agenten zur Chat-Warteschlange hinzufügen",
+ "AGENTADD_QUEUE": "Agent zur Chat-Warteschlange hinzufügen",
"DEFAULT_PAUSE": "Standard Pause",
"UNKNOWN": "Unbekannt",
- "UNREGISTERED": "Nicht registriert",
+ "UNREGISTERED": "Unregistrierte",
"UNAVAILABLE": "Nicht verfügbar",
"NOT_INUSE": "Nicht in Verwendung",
"REACHABLE": "Erreichbar",
- "IN_USE": "In Verwendung",
- "VOICE": "Anrufe",
+ "IN_USE": "Im Einsatz",
+ "VOICE": "Sprache",
"NO_AGENT_ONLINE": "Kein Agent Online",
- "GOTOREALTIME_CHATQUEUE": "Zur Echtzeit-Warteschlange für Chat gehen",
+ "GOTOREALTIME_CHATQUEUE": "Go to Echtzeit-Chat-Warteschlange",
"PARTIALPAUSE": "Teilpause",
"BUSY": "Besetzt",
"TIMER": "Timer",
"CAPACITY": "Kapazität",
"TAGS": "Tags",
"SHOWAGENTAVATAR": "Persönlichen Agenten-Avatar anzeigen",
- "AGENTAVATAR": "Agenten-Avatar",
- "SPYINTERACTION": "Mitlesen",
+ "AGENTAVATAR": "Agent Avatar",
+ "SPYINTERACTION": "Spion",
"INTERACTIONS_CHATWEBSITE": "Zu den Interaktionen gehen",
"REFRESH_INTERACTIONS": "Interaktionen aktualisieren",
- "CLOSINGQUESTION": "Abschlussfrage",
+ "CLOSINGQUESTION": "Frage schließen",
"WEBSCRIPT": "Webskript",
- "NO_CHATCANNEDANSWER_AVAILABLE": "Keine Textvorlagen verfügbar",
- "NEW_CHATCANNEDANSWER": "Neue Textvorlage",
- "ADD_CHATCANNEDANSWER": "Textvorlage hinzufügen",
- "EDIT_CHATCANNEDANSWER": "Textvorlage bearbeiten",
- "DELETE_CHATCANNEDANSWER": "Textvorlage löschen",
- "OFFLINEMESSAGESUBJECT": "Betreff der Nachricht bei Offline",
- "OFFLINEMESSAGEBODY": "Test der Nachricht bei Offline",
- "FORMSUBMITSUCCESSMESSAGE": "Meldung Formular erfolgreich gesendet",
- "FORMSUBMITFAILUREMESSAGE": "Meldung Fehler beim Senden des Formulars",
- "PLACEHOLDERMESSAGE": "Nachricht für Platzhalter",
+ "NO_CHATCANNEDANSWER_AVAILABLE": "Keine vordefinierten Antworten verfügbar",
+ "NEW_CHATCANNEDANSWER": "Neue vordefinierte Antwort",
+ "ADD_CHATCANNEDANSWER": "Vordefinierte Antwort hinzufügen",
+ "EDIT_CHATCANNEDANSWER": "Vordefinierte Antwort bearbeiten",
+ "DELETE_CHATCANNEDANSWER": "Vordefinierte Antwort löschen",
+ "OFFLINEMESSAGESUBJECT": "Betreff der Nachricht",
+ "OFFLINEMESSAGEBODY": "Nachrichtentext",
+ "FORMSUBMITSUCCESSMESSAGE": "Erfolgsmeldung beim Absenden des Formulars",
+ "FORMSUBMITFAILUREMESSAGE": "Fehlermeldung beim Absenden des Formulars",
+ "PLACEHOLDERMESSAGE": "Platzhalter für Nachrichten",
"NOTETITLE": "Titel der Notiz",
"DELETE_INTERACTION": "Interaktion löschen",
"FONTSIZE": "Schriftgröße",
"TEXTCOLOR": "Textfarbe",
- "COMMAND": "Eingabe",
+ "COMMAND": "Befehl",
"EDIT_SYSTEM": "System bearbeiten",
"SYSTEM": "System",
"NOTIFICATION": "Benachrichtigung",
"NOTIFICATIONSHAKE": "Schütteln",
- "NOTIFICATIONSOUND": "Klingeln",
+ "NOTIFICATIONSOUND": "Ton",
"NOTIFICATIONTEMPLATE": "Vorlage",
- "HIDEWHENOFFLINE": "Ausblenden, wenn offline",
- "INSERT_MESSAGE_HERE": "Nachricht hier eingeben",
+ "HIDEWHENOFFLINE": "Ausblenden",
+ "INSERT_MESSAGE_HERE": "Fügen Sie hier Ihre Textnachricht ein",
"AGENTALIAS": "Agent Alias",
"AGENTFULLNAME": "Vollständiger Name des Agenten",
"AGENTIDENTIFIER": "Identifikator",
- "WAITFORTHEASSIGNEDAGENT": "Warten auf den zugewiesenen Mitarbeiter",
+ "WAITFORTHEASSIGNEDAGENT": "Warten auf den zugewiesenen Agenten",
"ALIGNMENT": "Ausrichtung",
"BOTTOM_RIGHT": "Unten rechts",
"LEFT": "Links",
"CUSTOMERALIAS": "Kunden-Alias",
"EDIT_TAG": "Tag bearbeiten",
"TAG": "Tag",
- "AGENTADD_CHATWEBSITE": "Agenten zur Chat-Website hinzufügen",
+ "AGENTADD_CHATWEBSITE": "Agent zur Chat-Website hinzufügen",
"BACKGROUNDCOLOR": "Hintergrundfarbe",
"MESSAGEFONTSIZE": "Schriftgröße der Nachricht",
"AGENTTRANSFER": "Agententransfer",
"DIALOGFLOW": "Dialogflow",
"EDIT_DIALOGFLOW": "Dialogflow bearbeiten",
"LANGUAGE": "Sprache",
- "QUEUETRANSFER": "Transfer in Warteschlange",
+ "QUEUETRANSFER": "Warteschlangenübertragung",
"QUEUETRANSFERTIMEOUT": "Timeout bei der Warteschlangenübertragung",
"SYSTEMALIAS": "Systemalias",
"SYSTEMAVATAR": "System-Avatar",
"TRANSFER": "Transfer",
"WELCOMEMESSAGE": "Willkommensnachricht",
- "ENABLECUSTOMERCHECKMARKS": "Bestätigung Nachricht erhalten/gelesen",
- "CANNEDANSWERS": "Textvorlagen",
- "CHATCANNEDANSWERS": "Textvorlagen",
+ "ENABLECUSTOMERCHECKMARKS": "Aktivieren vom Kunden gelieferten / gelesenen Benachrichtigungen",
+ "CANNEDANSWERS": "Vordefinierte Antworten",
+ "CHATCANNEDANSWERS": "Vordefinierte Antworten",
"DOWNLOAD_INTERACTION": "Herunterladen",
- "LOGIN_TIME": "Zeit angemeldet",
- "PAUSE_TIME": "Zeit in Pause",
+ "LOGIN_TIME": "Login-Zeit",
+ "PAUSE_TIME": "Pausenzeit",
"ACCESSKEYID": "Zugangsschlüssel-ID",
- "BOTNAME": "Botname",
+ "BOTNAME": "Bot-Name",
"EDIT_AMAZONLEX": "Amazon Lex bearbeiten",
"LEXREGION": "Region",
"SECRETACCESSKEY": "Geheimer Zugangsschlüssel",
- "TEAMS_ASSOCIATION": "Teamzuweisung",
- "MANDATORYDISPOSITION": "Qualifizierung erforderlich",
- "MANDATORYDISPOSITIONPAUSEID": "PausenID, wenn Qualifizierung erforderlich",
- "ENABLESENDBUTTON": "Senden-Button aktivieren",
+ "TEAMS_ASSOCIATION": "Teams Verband",
+ "MANDATORYDISPOSITION": "Obligatorische Disposition",
+ "MANDATORYDISPOSITIONPAUSEID": "Pausieren Sie die Verwendung, wenn die obligatorische Disposition aktiviert ist",
+ "ENABLESENDBUTTON": "Sendetaste aktivieren",
"FEEDBACKTITLE": "Feedback-Titel",
- "TOOLTIP_SCREENRECORDING_OFF": "Bildschirmaufzeichnung verfügbar",
- "TOOLTIP_SCREENRECORDING_ON": "Bildschirmaufzeichnung läuft",
+ "TOOLTIP_SCREENRECORDING_OFF": "Bildschirmaufnahme verfügbar",
+ "TOOLTIP_SCREENRECORDING_ON": "Bildschirmaufnahme läuft",
"DOWNLOAD_WITHOUT_ATTACHMENTS": "Herunterladen ohne Anhänge",
- "DOWNLOAD_WITH_ATTACHMENTS": "Herunterladen inkl. Anhänge",
+ "DOWNLOAD_WITH_ATTACHMENTS": "Mit Anhängen herunterladen",
"LASTMESSAGE": "Letzte Nachricht",
"VIDAOO": "Vidaoo",
"VIDAOOAPIKEY": "Vidaoo Api Key",
"CLIENTEMAIL": "Kunden-E-Mail",
"DIALOGFLOWV2": "Dialogflow V2",
"EDIT_DIALOGFLOWV2": "Dialogflow V2 bearbeiten",
- "PRIVATEKEY": "Privater Schlüssel",
+ "PRIVATEKEY": "Privat Key",
"PROJECTID": "Projekt-ID",
"EMAIL_ACCOUNT": "Email-Konto",
"OPEN_NEW_INTERACTION": "Neue Interaktion öffnen",
- "SUBJECT": "Betreff",
+ "SUBJECT": "Gegenstand",
"ADD_NOTE": "Notiz hinzufügen",
- "CANNED_ANSWER_NOT_FOUND": "Keine Textvorlagen gefunden",
- "NOTE": "Notiz",
+ "CANNED_ANSWER_NOT_FOUND": "Es wurden keine vordefinierten Antworten gefunden",
+ "NOTE": "Hinweis",
"VIDAOOMETADATA": "Vidaoo-Metadaten",
"VIDAOONOTE": "Vidaoo-Hinweis",
"VIDAOOTOPIC": "Vidaoo-Thema"
{
"CONTACTMANAGER": {
- "VOICEQUEUEID": "ID Warteschlange für Sprachanrufe",
- "CAMPAIGNID": "Kampagnen-ID",
- "STATE": "Status",
+ "VOICEQUEUEID": "Sprachwarteschlange ID",
+ "CAMPAIGNID": "Kampagne ID",
+ "STATE": "Zustand",
"NAME": "Name",
"LISTS": "Listen",
"UNIQUEID": "Eindeutige ID",
"ENDTIME": "Endzeit",
"MOTION_BULL": "Motion Bull",
"HOPPER": "Hopper",
- "FINAL": "Hopper final",
- "HISTORY": "Hopper historisch",
+ "FINAL": "Hopper Final",
+ "HISTORY": "Hopper Geschichte",
"SCHEDULEDAT": "Geplant am",
"SEARCH_FOR_ANYONE": "Suche",
"EDIT_LIST": "Liste bearbeiten",
"DELETE_HOPPER": "Hopper löschen",
"RELOAD": "Neu laden",
"NO_COMPANIES": "Kein Unternehmen",
- "NO_AVAILABLE_ITEMS": "Keine Einträge verfügbar",
+ "NO_AVAILABLE_ITEMS": "Keine verfügbaren Artikel",
"ADD": "Hinzufügen",
"ERRORS": {
- "NAME_REQUIRED": "Name ist erforderlich",
- "FIRSTNAME_REQUIRED": "Vorname ist erforderlich",
- "PHONE_REQUIRED": "Telefonnummer ist erforderlich",
+ "NAME_REQUIRED": "Der Name ist erforderlich",
+ "FIRSTNAME_REQUIRED": "Der Vorname ist erforderlich",
+ "PHONE_REQUIRED": "Die Telefonnummer ist erforderlich",
"ALIAS_REQUIRED": "Alias ist erforderlich",
- "VALUE_REQUIRED": "Wert ist erforderlich",
+ "VALUE_REQUIRED": "Der Wert ist erforderlich",
"EMAIL_MUST_VALID": "Falsches Format",
- "PHONEBAR_API": "Statusprüfung für die MotionBar und des Remote-Switches für den Agenten",
+ "PHONEBAR_API": "Prüfen, ob die MotionBar ausgeführt wird und der Fernbedienungsschalter für den Agenten eingeschaltet ist",
"ACTIONTYPE_REQUIRED": "Pflichtfeld",
"CLICKTOACTION_REQUIRED": "Pflichtfeld"
},
"DESCRIPTION": "Beschreibung",
- "DISPOSITION": "Qualifizierung",
- "DISPOSITIONS": "Qualifizierungen",
- "VOICEDISPOSITIONS": "Anrufqualifizierungen",
- "NEW_VOICEDISPOSITION": "Neue Anrufqualifizierung",
+ "DISPOSITION": "Disposition",
+ "DISPOSITIONS": "Dispositionen",
+ "VOICEDISPOSITIONS": "Sprachdispositionen",
+ "NEW_VOICEDISPOSITION": "Neue Sprachdisposition",
"CUSTOM_FIELDS": "Benutzerdefinierte Felder",
"ADD_LIST": "Liste hinzufügen",
"BACK": "Zurück",
"SELECTED": "Ausgewählt",
- "SELECT_ALL": "Alles auswählen",
- "SELECT_NONE": "Nichts auswählen",
+ "SELECT_ALL": "Alle auswählen",
+ "SELECT_NONE": "Keine auswählen",
"COMPANIES": "Unternehmen",
"EDIT_COMPANY": "Unternehmen bearbeiten",
"DELETE_COMPANY": "Unternehmen löschen",
"STREET": "Straße",
"POSTALCODE": "Postleitzahl",
"DELETE": "Löschen",
- "DELETE_ALL": "Alles Löschen",
+ "DELETE_ALL": "Alle Löschen",
"CONTACTMANAGER": "Kontaktmanager",
"ID": "ID",
"SETTINGS": "Einstellungen",
"NEW_CONTACT": "Neuer Kontakt",
"NEW_TAG": "Neuer Tag",
"UPLOAD_CONTACTS": "Kontakte hochladen",
- "FINISH": "Beenden",
- "SUCCESS": "Erfolg",
+ "FINISH": "Fertig",
+ "SUCCESS": "Erfolgreich",
"FAILURE": "Fehler",
"ALL_CONTACTS": "Alle Kontakte",
"NEW_CUSTOMFIELD": "Neues benutzerdefiniertes Feld",
- "NO_VOICEDISPOSITION_AVAILABLE": "Keine Anrufqualifizierung verfügbar",
- "ADD_VOICEDISPOSITION": "Anrufqualifizierung hinzufügen",
- "EDIT_VOICEDISPOSITION": "Anrufqualifizierung bearbeiten",
- "DELETE_VOICEDISPOSITION": "Anrufqualifizierung löschen",
- "VAT": "Ust-ID.",
- "COMPANYID": "Unternehmens-ID",
+ "NO_VOICEDISPOSITION_AVAILABLE": "Keine Sprachdispositionen verfügbar",
+ "ADD_VOICEDISPOSITION": "Sprachdisposition hinzufügen",
+ "EDIT_VOICEDISPOSITION": "Sprachdisposition bearbeiten",
+ "DELETE_VOICEDISPOSITION": "Sprachdisposition löschen",
+ "VAT": "Mwst.",
+ "COMPANYID": "Ihre Unternehmens-ID",
"WEBSITE": "Website",
"EMAIL_DOMAIN": "E-Mail Domain",
"ADDRESS": "Adresse",
"GOTOCONTACTS_COMPANY": "Kontakte anzeigen",
"ADD_AGENT_TO_LIST": "Agenten zur Liste hinzufügen",
"AGENTADD_LIST": "Agenten zur Liste hinzufügen",
- "NO_AVAILABLE_INFO": "Keine verfügbaren Informationen",
- "NONE": "Nichts",
+ "NO_AVAILABLE_INFO": "Keine verfügbaren Info",
+ "NONE": "Keine",
"FULLNAME": "Vollständiger Name",
- "CHECK_DUPLICATES": "auf Duplikate prüfen",
+ "CHECK_DUPLICATES": "Duplikate prüfen",
"DUPLICATES": "Duplikate",
- "UPLOAD_CSV": "Hochladen von CSV-Datei",
+ "UPLOAD_CSV": "Hochladen von CSV",
"TAG": "Tag",
"UPLOAD": "Hochladen",
"ALL_AGENTS": "Alle Agenten",
"DATE_OF_BIRTH": "Geburtsdatum",
"DATEOFBIRTH": "Geburtsdatum",
"NOTES": "Notizen",
- "EXPORTCSVCONTACTS_LIST": "In CSV-Datei exportieren",
+ "EXPORTCSVCONTACTS_LIST": "In CSV exportieren",
"GOTO_LIST": "Kontakte anzeigen",
"GOTO_COMPANY": "Kontakte anzeigen",
"REQUIRED": "Erforderlich",
"SESSIONS": "Sitzungen",
"AGENT": "Agent",
"PROJECT": "Projekt",
- "SELECT_LIST": "Liste auswählen",
- "SELECT_COMPANY": "Unternehmen auswählen",
- "SELECT_TAGS": "Tags auswählen",
+ "SELECT_LIST": "Wählen Sie eine Liste aus",
+ "SELECT_COMPANY": "Wählen Sie ein Unternehmen aus",
+ "SELECT_TAGS": "Wählen Sie ein oder mehrere Tags aus",
"HELP": {
- "PHONEBAR_API": "Um Click-to-Call zu aktivieren, geben Sie eine Telefonnummer ein und überprüfen Sie, ob der Remote-Switch für den Agenten eingeschaltet ist",
- "PHONEBAR_API_MESSAGE": "Um Click-to-Call zu aktivieren, geben Sie eine Telefonnummer ein und überprüfen Sie, ob der Remote-Switch für den Agenten eingeschaltet ist"
+ "PHONEBAR_API": "Um Click-to-Call zu aktivieren, geben Sie eine Telefonnummer ein und überprüfen Sie, ob der Fernbedienungsschalter für den Agenten eingeschaltet ist",
+ "PHONEBAR_API_MESSAGE": "Um Click-to-Call zu aktivieren, geben Sie eine Telefonnummer ein und überprüfen Sie, ob der Fernbedienungsschalter für den Agenten eingeschaltet ist"
},
"PAGE": "Seite",
"ROWSPERPAGE": "Zeilen pro Seite",
- "OF": "von",
+ "OF": "Von",
"SOCIAL": "Social",
"ROW": "Reihe",
- "EXPORT_ERRORS": "Fehler-Log exportieren",
+ "EXPORT_ERRORS": "Fehler exportieren",
"UPLOAD_COMPLETED": "Hochladen abgeschlossen",
"STOP": "Stopp",
- "SELECT_FILE": "Datei auswählen",
+ "SELECT_FILE": "Datei aussuchen",
"IMPORT_CONTACTS": "Kontakte importieren",
"MOTIONDIALER": "Motion Bull",
"PREFIX": "Vorwahl wählen",
"PRIORITY": "Priorität",
"USERID": "Agent-ID abrufen",
- "CUSTOMER_JOURNEY": "Kundenhistorie",
- "SELECT_TAG": "Tag auswählen",
+ "CUSTOMER_JOURNEY": "Kundenreise",
+ "SELECT_TAG": "Wählen Sie Tags aus",
"ALL": "Alle",
"BILLINGINFORMATION": "Abrechnungsdaten",
"COMPANY_FISCAL_TYPE": "Unternehmenssteuerart",
"CREATE": "Erstellen",
"EUROPE": "Europa",
- "EXPIREDAY": "Ablauftag",
+ "EXPIREDAY": "Ablauftage",
"FLATDISCOUNT": "Firmenrabatt",
"INVOICEARTICLE": "Gesetzliche Artikel",
"ISOCODE": "Nationaler ISO-Code",
"RELATIONSHIPCOMPANY": " ... mit",
"SDICODE": "SDI-Code",
"SOCIAL_CAPITAL": "Aktienkapital",
- "VATNUMBER_CF": "Umsatzsteuer Identnummer / VAT",
- "RECALLME": "Rückruf anfordern",
+ "VATNUMBER_CF": "Codice Fiscale / VAT",
+ "RECALLME": "Ruf mich zurück",
"ACTIONTYPE": "Aktionstyp",
- "CLICKTOACTION": "Klicken für Aktion"
+ "CLICKTOACTION": "Zur Aktion klicken"
}
}
{
"DASHBOARDS": {
- "HOME": "Startseite",
+ "HOME": "Home",
"CHAT": "Chat",
- "MAIL": "E-Mail",
- "SMS": "SMS",
- "OPENCHANNEL": "Offener Kanal",
+ "MAIL": "Email",
+ "SMS": "Sms",
+ "OPENCHANNEL": "Open Channel",
"FAX": "Fax",
"RATING": "Bewertung",
"FEEDBACK": "Feedback",
"AGENT": "Agent",
"CREATED_AT": "Erstellt am",
"CLOSED_AT": "Geschlossen am",
- "DISPOSITION": "Qualifizierung",
+ "DISPOSITION": "Disposition",
"CONTACT": "Kontakt",
"INTERACTION": "Interaktion",
"BROWSER_NAME": "Browser Name",
"BROWSER_VERSION": "Browser Version",
- "OS_NAME": "Betriebssystem Name",
- "OS_VERSION": "Betriebssystem Version",
+ "OS_NAME": "Name des Betriebssystems",
+ "OS_VERSION": "Version des Betriebssystems",
"DEVICE_MODEL": "Gerätemodell",
"DEVICE_VENDOR": "Gerätehersteller",
"DEVICE_TYPE": "Gerätetyp",
- "RECALLME": "Rückruf anfordern",
- "DROP_RATE": "Abbruchrate Anrufe",
+ "RECALLME": "Ruf mich zurück",
+ "DROP_RATE": "Abgebrochene Anrufrate",
"DROPPED": "Abgebrochen",
- "DROPPED_TEXT": "Abgebrochene Anrufe innerhalb der Warteschlange",
+ "DROPPED_TEXT": "Abgebrochene Anrufe aus der Warteschlange",
"DETAIL": "Detail",
"MOTION_BULL": "Motion Bull",
"LIMITED": "Limitiert",
"LIMITED_TEXT": "IVR-Kampagnen Anrufe getätigt/limitiert",
"DASHBOARDS": "Dashboards",
- "RECORDINGS": "Aufzeichnungen",
- "TODAY_MOTION_BULL_STATS": "Tagesstatistiken Warteschlangen",
+ "RECORDINGS": "Aufnahmen",
+ "TODAY_MOTION_BULL_STATS": "Warteschlangen-Kampagnen Tagesstatistiken",
"ORIGINATED": "Gewählt",
"ORIGINATED_TEXT": "Anrufe aus der Warteschlange gewählt",
"UPDATE": "Aktualisieren",
"MORE": "Mehr",
"MOTIONDIALER": "Motion Dialer",
- "DISPOSE": "Qualifizieren",
+ "DISPOSE": "Entsorgen",
"QUEUES": "Warteschlangen",
- "DIALER_CALL": "Dialer-Anruf",
+ "DIALER_CALL": "Dialer Anruf",
"ELAPSED_TIME": "Abgelaufene Zeit",
"EDIT": "Bearbeiten",
"MERGE": "Zusammenführen",
"DUPLICATE": "Duplizieren",
"UNIQUEID": "Eindeutige ID",
"CAMPAIGN": "Kampagne",
- "NONE": "Nichts",
+ "NONE": "Keine",
"NAME": "Name",
"ANSWER_MACHINE": "Anrufbeantworter",
"INTERESTED": "Interessiert",
"NOT_INTERESTED": "Kein Interesse",
"PERSONAL_INFO": "Persönliche Infos",
"SOLD": "Verkauft",
- "SPECIAL": "Speziell",
+ "SPECIAL": "Spezielle",
"BLACKLIST": "Blacklist",
- "RESCHEDULE": "erneut Planen",
+ "RESCHEDULE": "Verschieben",
"FIRSTNAME": "Vorname",
"LASTNAME": "Nachname",
- "MOBILE": "Mobilnummer",
+ "MOBILE": "Mobile",
"DATE_OF_BIRTH": "Geburtsdatum",
"COMPANY": "Unternehmen",
"TAG": "Tag",
"POSTALCODE": "Postleitzahl",
"CUSTOM_FIELDS": "Benutzerdefinierte Felder",
"GENERAL": "Allgemein",
- "VOICE": "Sprachanrufe",
+ "VOICE": "Sprache",
"TODAY_IVR_CAMPAIGNS_STATS": "IVR-Tagesstatistiken",
- "TODAY_INBOUND_STATS": "Tagesstatistiken - eingehende Warteschlangen",
- "TODAY_OUTBOUND_STATS": "Tagesstatistiken - ausgehende Warteschlangen",
- "WAITING": "Anrufe in Warteschlange",
+ "TODAY_INBOUND_STATS": "Inbound Warteschlangen Tagesstatistiken",
+ "TODAY_OUTBOUND_STATS": "Outbound Warteschlangen Tagesstatistiken",
+ "WAITING": "Anrufe in der Warteschlange",
"TALKING": "Im Gespräch",
- "INBOUND_ANSWERED": "Angenommen eingehend",
- "OUTBOUND_ANSWERED": "Angenommen ausgehend",
- "ABANDONED": "Abgebrochen",
- "TOTAL_OFFERED": "Gesamt angeboten",
+ "INBOUND_ANSWERED": "Angenommen",
+ "OUTBOUND_ANSWERED": "Angenommen",
+ "ABANDONED": "Verlassen",
+ "TOTAL_OFFERED": "Insgesamt",
"AVG_HOLD_TIME": "Durchschnittliche Wartezeit",
- "INBOUND_ANSWER_RATE": "Antwortrate eingehend",
- "OUTBOUND_ANSWER_RATE": "Antwortrate ausgehend",
- "ABANDON_RATE": "Abbruchrate",
- "UNMANAGED": "Nicht bearbeitet",
- "TOTAL": "Gesamt",
+ "INBOUND_ANSWER_RATE": "Angenommene Anrufrate",
+ "OUTBOUND_ANSWER_RATE": "Angenommene Anrufrate",
+ "ABANDON_RATE": "Verlassene Anrufrate",
+ "UNMANAGED": "Nicht verwaltete",
+ "TOTAL": "Insgesamt",
"TOT_DURATION": "Gesamtdauer",
"AVG_DURATION": "Durchschnittliche Dauer",
"HELP": {
- "ORIGINATEDLIMITED": "IVR Kampagnen gewählt/limitiert",
- "DROPPED": "Gesamtzahl abgebrochener Anrufe innerhalb der Warteschlange",
- "DROP_RATE": "Abbruchrate aller Anrufe in der Warteschlange",
- "WAITING": "Gesamtzahl der wartenden Anrufe aus der Warteschlange",
- "OUTBOUND_ANSWERED": "Gesamtzahl der angenommenen ausgehenden Anrufe",
- "ABANDONED": "Gesamtzahl der abgebrochenen Anrufe innerhalb der Warteschlange",
- "TOTAL_OFFERED": "Gesamtzahl der angebotenen Anrufe in der Warteschlange (angenommen + abgebrochen + nicht bearbeitet in der letzten Warteschlange des Callflows). Hinweis: Anrufe innerhalb der IVR werden nicht berücksichtigt.",
- "AVG_HOLD_TIME": "Durchschnittliche Wartezeit einer Interaktion bis zur Beantwortung durch einen Agenten.",
- "OUTBOUND_ANSWER_RATE": "Rate aller angenommenen ausgehenden Anrufe",
- "ABANDON_RATE": "Rate aller abgebrochener Anrufe innerhalb der Warteschlange",
- "UNMANAGED": "Gesamtzahl der nicht bearbeiteten Anrufe für alle Warteschlangen. Enthält die Anrufe, die durch Timeout, Joinempty, Leavewhenempty und Exitwithkey abgebrochen wurden (siehe Asterisk-Dokumentation für weitere Informationen).",
- "TOTAL": "Gesamtzahl der ausgehenden Anrufe",
- "TOT_DURATION": "Gesamtdauer aller ausgehenden Anrufe",
- "AVG_DURATION": "Durchschnittliche Dauer aller angenommenen ausgehenden Anrufe",
- "ORIGINATED": "Gesamtzahl der in den Warteschlangen-Kampagnen gewählten Anrufe",
- "ABANDONED_RATE": "Rate aller abgebrochenen Interaktionen",
- "AVG_MANAGED_TIME": "Durchschnittliche Bearbeitungszeit einer Interaktion",
- "MANAGED": "Gesamtzahl der abgeschlossenen Interaktionen",
- "MANAGED_RATE": "Rate aller bearbeiteten Anrufe",
- "OPENED": "Gesamtzahl der aktiven Interaktionen",
- "UNMANAGED_RATE": "Rate aller unbearbeiteten Interaktionen",
- "VOICE_ABANDONED": "Gesamtzahl der abgebrochenen Anrufe in der Warteschlange unter Berücksichtigung aller vorhandenen Warteschlangen. Hinweis: Anrufe, die wegen Timeout und joinempty abgebrochen wurden, werden nicht berücksichtigt.",
- "VOICE_ANSWERED": "Gesamtzahl der abgeschlossenen Anrufe für alle vorhandenen Warteschlangen",
- "VOICE_ANSWER_RATE": "Antwortrate aller Anrufe in der Warteschlange",
- "VOICE_AVG_HOLD_TIME": "Durchschnittliche Wartezeit bis zur Beantwortung durch einen Agenten für alle vorhandenen Warteschlangen",
- "VOICE_AVG_TALK_TIME": "Durchschnittliche Gesprächszeit für alle Anrufe aus der Warteschlange ",
- "VOICE_TALKING": "Gesamtzahl der aktiven Anrufe für alle vorhandenen Warteschlangen",
- "VOICE_TOTAL_OFFERED": "Gesamtzahl der Anrufe der Warteschlangen (angenommen + abgebrochen + nicht bearbeitet in der letzten Warteschlange des Callflows). Hinweis: Anrufe innerhalb der IVR werden nicht berücksichtigt.",
- "VOICE_UNMANAGED": "Gesamtzahl der nicht bearbeiteten Anrufe für alle vorhandenen Warteschlangen. Enthält die Anrufe, die durch Timeout, Joinempty, Leavewhenempty und Exitwithkey abgebrochen wurden (siehe Asterisk-Dokumentation für weitere Informationen).",
- "VOICE_WAITING": "Gesamtanzahl der aktuell wartenden Anrufe für alle vorhandenen Warteschlangen",
- "MANDATORY_DISPOSITION_ENABLED": "Kontaktqualifizierung erforderlich",
- "EXACT_MATCH_FILTER": "Suche nach einer genauen Übereinstimmung der Suchbegriffe",
- "LIKE_FILTER": "Suche nach variablen Übereinstimmungen der Suchbegriffe"
+ "ORIGINATEDLIMITED": "IVR Kampagnen gewählt/Limitiert",
+ "DROPPED": "Die Gesamtzahl abgebrochener Anrufe aus der Warteschlange",
+ "DROP_RATE": "Die Rate aller abgebrochener Anrufe aus der Warteschlange",
+ "WAITING": "Die Gesamtzahl der wartenden Anrufe aus der Warteschlange",
+ "OUTBOUND_ANSWERED": "Die Gesamtzahl der angenommenen ausgehenden Anrufe",
+ "ABANDONED": "Die Gesamtzahl der abgebrochenen Anrufe aus der Warteschlange",
+ "TOTAL_OFFERED": "Die Gesamtzahl der Warteschlangenanrufe (angenommen + verlassen + nicht verwaltet in der letzten Warteschlange des Datenflusses). Beachten Sie, dass Anrufe, die in ein IVR und nicht in eine Warteschlange eingehen, nicht berücksichtigt werden.",
+ "AVG_HOLD_TIME": "Die durchschnittliche Interaktionswartezeit, d.h. die durchschnittliche Wartezeit auf die Antwort eines Agenten für alle vorhandenen Interaktionen.",
+ "OUTBOUND_ANSWER_RATE": "Die Rate aller angenommenen ausgehenden Anrufe",
+ "ABANDON_RATE": "Die Rate aller verlassenen Anrufe aus der Warteschlange",
+ "UNMANAGED": "Die Gesamtzahl der nicht verwalteten Warteschlangenanfrufe für alle vorhandenen Warteschlangen. Es enthält die Anrufe, die durch Timeout, Joinempty, Leavewhenempty und Exitwithkey abgebrochen werden (siehe Asterisk-Dokumentation für weitere Informationen).",
+ "TOTAL": "Die Gesamtzahl der ausgehenden Anrufe",
+ "TOT_DURATION": "Die Gesamtdauer aller ausgehenden Anrufe",
+ "AVG_DURATION": "Die durchschnittliche Dauer aller angenommenen ausgehenden Anrufe",
+ "ORIGINATED": "Die Gesamtzahl der in den Warteschlangenkampagnen gewählten Anrufe",
+ "ABANDONED_RATE": "Die Rate aller abgebrochenen Interaktionen",
+ "AVG_MANAGED_TIME": "Die durchschnittliche verwaltete Interaktionszeit, nämlich die durchschnittliche Zeit, die während des Gesprächs verbracht wird",
+ "MANAGED": "Die Gesamtzahl der abgeschlossenen Interaktionen",
+ "MANAGED_RATE": "Die verwaltete Rate aller Interaktionen",
+ "OPENED": "Die Gesamtzahl der aktiven Interaktionen",
+ "UNMANAGED_RATE": "Die nicht verwaltete Rate aller Interaktionen",
+ "VOICE_ABANDONED": "Die Gesamtzahl der aufgegebenen Warteschlangenanrufe unter Berücksichtigung aller vorhandenen Warteschlangen. Beachten Sie, dass Anrufe, die wegen Timeout und joinempty abgebrochen werden, nicht berücksichtigt werden",
+ "VOICE_ANSWERED": "Die Gesamtzahl der abgeschlossenen Warteschlangenanrufe für alle vorhandenen Warteschlangen",
+ "VOICE_ANSWER_RATE": "Die Antwortrate aller Warteschlangenanrufe",
+ "VOICE_AVG_HOLD_TIME": "Die durchschnittliche Wartezeit für Warteschlangen, nämlich die durchschnittliche Wartezeit auf die Antwort eines Agenten für alle vorhandenen Warteschlangen",
+ "VOICE_AVG_TALK_TIME": "Die durchschnittliche Gesprächszeit in der Warteschlange, nämlich die durchschnittliche Gesprächszeit für alle vorhandenen Warteschlangen",
+ "VOICE_TALKING": "Die Gesamtzahl der aktiven Warteschlangenanrufe für alle vorhandenen Warteschlangen",
+ "VOICE_TOTAL_OFFERED": "Die Gesamtzahl der Warteschlangenanrufe (angenommen + verlassen + nicht verwaltet in der letzten Warteschlange des Datenflusses). Beachten Sie, dass Anrufe, die in ein IVR und nicht in eine Warteschlange eingehen, nicht berücksichtigt werden.",
+ "VOICE_UNMANAGED": "Die Gesamtzahl der nicht verwalteten Warteschlangenanfrufe für alle vorhandenen Warteschlangen. Es enthält die Anrufe, die durch Timeout, Joinempty, Leavewhenempty und Exitwithkey abgebrochen werden (siehe Asterisk-Dokumentation für weitere Informationen).",
+ "VOICE_WAITING": "Die Gesamtanzahl der wartenden Warteschlangenanrufe für alle vorhandenen Warteschlangen",
+ "MANDATORY_DISPOSITION_ENABLED": "Obligatorische Disposition für dieses Konto aktiviert",
+ "EXACT_MATCH_FILTER": "Suche nach einer genauen Übereinstimmung",
+ "LIKE_FILTER": "Suchen Sie nach dem angegebenen Muster"
},
"ERRORS": {
"FIRSTNAME_REQUIRED": "Der erste Name ist erforderlich",
"CAMPAIGN_REQUIRED": "Pflichtfeld",
"FAILED_INITIALIZATION": "Fehler während der Initialisierung"
},
- "NO_AVAILABLE_INFO": "Keine Information vorhanden",
- "WELCOME_TO_MOTION": "Willkommen zu Motion",
+ "NO_AVAILABLE_INFO": "Keine verfügbaren Info",
+ "WELCOME_TO_MOTION": "Willkommen bei Motion",
"WELCOME_MESSAGE": "Verwenden Sie die linke Seitenleiste, um durch die verfügbaren Abschnitte zu navigieren",
"ADD": "Hinzufügen",
- "CONTACTMANAGER": "Kontaktmanager",
+ "CONTACTMANAGER": "Contact Manager",
"DASHBOARD": "Dashboard",
"EDIT_CONTACT": "Kontakt bearbeiten",
"EMAIL": "E-Mail",
"NEW_CONTACT": "Neuer Kontakt",
"PHONE": "Telefon",
"SAVE": "Speichern",
- "INBOUND_WAITING_CALLS": "Wartende Anrufe (Eingehend)",
+ "INBOUND_WAITING_CALLS": "Eingehende Anrufe in der Warteschlange",
"CONTACTS": "Kontakte",
"MYCONTACTS": "Meine Kontakte",
"ADD_CONTACT": "Kontakt hinzufügen",
- "RELOAD": "Neu Laden",
+ "RELOAD": "Neu laden",
"WAITING_TEXT": "Wartende Interaktionen",
- "TALKING_TEXT": "Aktive Anrufe",
- "INBOUND_ANSWERED_TEXT": "Angenommene Anrufe",
- "ABANDONED_TEXT": "Abgebrochene Anrufe",
- "DROP_RATE_TEXT": "Abbruchrate",
- "TOTAL_OFFERED_TEXT": "Gesamt angebotene Interaktionen",
- "AVG_HOLD_TIME_TEXT": "Durchschnittliche Wartezeit",
- "AVG_TALK_TIME_TEXT": "Durchschnittliche Gesprächszeit",
- "INBOUND_ANSWER_RATE_TEXT": "Antwortrate ",
- "UNMANAGED_TEXT": "Nicht bearbeitete Interaktionen",
- "TOTAL_TEXT": "Gesamt ausgehende Anrufe",
- "OUTBOUND_ANSWERED_TEXT": "Beantwortete Anrufe (Ausgehend) ",
+ "TALKING_TEXT": "Aktive Anrufe in der Warteschlange",
+ "INBOUND_ANSWERED_TEXT": "Angenommene Anrufe in der Warteschlange",
+ "ABANDONED_TEXT": "Verlassene Anrufe in der Warteschlange",
+ "DROP_RATE_TEXT": "Rate abgebrochener Anrufe in der Warteschlange",
+ "TOTAL_OFFERED_TEXT": "Gesamtzahl der Interaktionen",
+ "AVG_HOLD_TIME_TEXT": "Durchschnittliche Wartezeit der Interaktionen",
+ "AVG_TALK_TIME_TEXT": "Gesprächszeit der Warteschlangenanrufe",
+ "INBOUND_ANSWER_RATE_TEXT": "Rate angenommener Anrufe in der Warteschlange ",
+ "UNMANAGED_TEXT": "Nicht verwaltete Interaktionen",
+ "TOTAL_TEXT": "Gesamtzahl ausgehender Anrufe",
+ "OUTBOUND_ANSWERED_TEXT": "Ausgehende angenommene Anrufe ",
"TOT_DURATION_TEXT": "Gesamtdauer ausgehender Anrufe ",
"AVG_DURATION_TEXT": "Durchschnittliche Dauer ausgehender Anrufe",
"OUTBOUND_ANSWER_RATE_TEXT": "Rate angenommener ausgehender Anrufe",
"PAGE": "Seite",
"ROWSPERPAGE": "Zeilen pro Seite",
- "OF": "von",
- "REPLY_PLACEHOLDER": "Text eingeben und ENTER drücken zum Senden",
+ "OF": "Von",
+ "REPLY_PLACEHOLDER": "Geben Sie ein und drücken Sie die Eingabetaste, um eine Nachricht zu senden",
"CONTACT_INFO": "Kontaktinformationen",
- "CLOSE_AND_DISPOSE": "Schließen und Qualifizieren",
- "DISPOSITIONS": "Qualifizierungen",
- "CLOSE_WITHOUT_DISPOSE": "Schließen ohne Qualifizierung",
- "ACCEPT": "Annehmen",
+ "CLOSE_AND_DISPOSE": "Schließen und Entsorgen",
+ "DISPOSITIONS": "Dispositionen",
+ "CLOSE_WITHOUT_DISPOSE": "Schließen ohne Entsorgen",
+ "ACCEPT": "Akzeptieren",
"REJECT": "Ablehnen",
"CLOSED": "Geschlossen",
- "INFO": "Information",
+ "INFO": "Info",
"NOTE": "Hinweis",
- "ACCEPT_ELSEWHERE": "Von anderem Teilnehmer angenommen",
+ "ACCEPT_ELSEWHERE": "Anderswo akzeptiert",
"ATTENTION": "Achtung",
"SOCIAL": "Sozial",
"NO_JSCRIPTY_PROJECTS_AVAILABLE": "Keine Jscripty-Projekte verfügbar",
"FILTER": "Filter",
"SELECT_STATUS": "Status auswählen",
"SELECT_ACCOUNT": "Konto auswählen",
- "SELECT_WEBSITE": "Webseite auswählen",
- "ALL": "Alles",
+ "SELECT_WEBSITE": "Wählen Sie die Webseite",
+ "ALL": "Alle",
"INTERACTIONS": "Interaktionen",
- "STARTEDAT": "Begonnen am",
+ "STARTEDAT": "Gestartet am",
"STATUS": "Status",
"OPEN": "Öffnen",
- "SHOW": "Anzeigen",
+ "SHOW": "Zeigen",
"ME": "ICH",
"NOT_ASSIGNED": "Nicht zugewiesen",
"UNKNOWN": "Unbekannt",
- "SELECT_USER": "Benutzer auswählen",
+ "SELECT_USER": "Wählen Sie einen Benutzer",
"LAST_MESSAGE": "Letzte Nachricht",
"USER": "Benutzer",
"TAGS": "Tags",
"SOURCE": "Quelle",
"DESTINATION": "Ziel",
"CALLERID": "Anrufer-ID",
- "END_AT": "Beendet am",
+ "END_AT": "Ende am",
"DURATION": "Dauer",
"SHOW_DETAILS": "Details anzeigen",
"HIDE_DETAILS": "Details ausblenden",
"EXTERNAL_URL": "Externer Link",
"SET_AS": "Festlegen als",
"PENDING": "Ausstehend",
- "CANNED_ANSWER_NOT_FOUND": "Keine Textbausteine gefunden",
- "CANNED_ANSWER_SEARCH": "Hier nach einem Textbaustein suchen",
+ "CANNED_ANSWER_NOT_FOUND": "Es wurden keine vordefinierten Antworten gefunden",
+ "CANNED_ANSWER_SEARCH": "Geben Sie einen Text ein, um eine vordefinierte Antwort zu suchen",
"NO_MAIL_ACCOUNTS_AVAILABLE": "Keine E-Mail-Konten verfügbar",
"NO_FAX_ACCOUNTS_AVAILABLE": "Keine Fax-Konten verfügbar",
"NO_SMS_ACCOUNTS_AVAILABLE": "Keine SMS-Konten verfügbar",
- "FILTER_VOICE_QUEUES": "Anrufwarteschlangen filtern",
- "LOADING_INTERACTION": "Interaktion wird geladen",
+ "FILTER_VOICE_QUEUES": "Sprachwarteschlangen filtern",
+ "LOADING_INTERACTION": "Wir laden die Interaktion ...",
"JANUARY": "Januar",
"FEBRUARY": "Februar",
"MARCH": "März",
"SELECT_DATE": "Datum auswählen",
"SELECT_DATE_RANGE": "Wählen Sie einen Datumsbereich",
"CLEAR": "Löschen",
- "CALL_NUMBER": "Anrufen",
+ "CALL_NUMBER": "Anruf",
"TRANSFER_NUMBER": "Transfer",
- "CALL_SAVED": "Anruf erfolgreich gespeichert",
- "CALL_DISPOSED": "Anruf erfolgreich qualifiziert",
- "CHANNEL_WAITING_TEXT": "Wartende Interaktionen",
+ "CALL_SAVED": "Anruf richtig gespeichert",
+ "CALL_DISPOSED": "Anruf richtig entsorgt",
+ "CHANNEL_WAITING_TEXT": "Wartende Warteschlangen-Interaktionen",
"CHANNEL_QUEUE": "Warteschlange",
- "CHANNEL_FROM": "von",
+ "CHANNEL_FROM": "Von",
"MARK_AS_UNREAD": "Als ungelesen markieren",
- "SELECT_AGENT": "Agenten auswählen",
+ "SELECT_AGENT": "Wählen Sie den Agenten aus",
"READ": "Gelesen",
- "SELECT_READ_UNREAD": "Wählen ob Lesen/Ungelesen",
- "SELECT_SUBSTATUS": "Zwischenstatus auswählen",
+ "SELECT_READ_UNREAD": "Wählen Sie Lesen/Ungelesen",
+ "SELECT_SUBSTATUS": "Wählen Sie Substatus",
"UNREAD": "Ungelesen",
- "ABANDONAT": "Abgebrochen",
- "ABANDONEDQUEUECALLS": "Abgebrochene Anrufe",
+ "ABANDONAT": "Verlassen",
+ "ABANDONEDQUEUECALLS": "Verlassene Warteschlangenanrufe",
"FREE": "Frei",
"LASTASSIGNEDTO": "Zuletzt zugewiesen an",
"QUEUE": "Warteschlange",
"QUEUECALLEREXITAT": "Abgebrochen",
"QUEUECALLEREXITREASON": "Grund",
"RESERVED": "Reserviert",
- "SELECT_CAMPAIGN": "Warteschlange auswählen",
+ "SELECT_CAMPAIGN": "Wählen Sie eine Warteschlange",
"ASSIGNTO": "Zuweisen",
- "CLICKRELOAD": "Verpasste Anrufe! Bitte Seite erneut laden",
+ "CLICKRELOAD": "Neue verlassene Anrufe! Bitte neu laden",
"NOTAVAILABLE": "Nicht verfügbar",
- "CURRENTLY_IN_USE_BY": "Derzeit verwendet von",
- "CUSTOMER_JOURNEY": "Kundenhistorie",
+ "CURRENTLY_IN_USE_BY": "Derzeit im Einsatz von",
+ "CUSTOMER_JOURNEY": "Kundenreise",
"NO_DATA_AVAILABLE": "Keine Daten verfügbar",
"AGENTS": "Agenten",
"TRANSFER": "Transfer",
- "NO_DISPOSITION_SET": "Keine Qualifizierungen definiert",
- "ABANDONED_RATE": "Abbruchrate",
- "ABANDONED_RATE_TEXT": "Rate der abgebrochenen Anrufe innerhalb der Warteschlange",
- "AVG_MANAGED_TIME": "Durchschnittliche Bearbeitungszeit",
- "AVG_MANAGED_TIME_TEXT": "Durchschnittliche Bearbeitungszeit aller Interkationen",
- "MANAGED": "Bearbeitet",
- "MANAGED_RATE": "Bearbeitungsrate",
- "MANAGED_RATE_TEXT": "Rate der bearbeiteten Interaktionen",
- "MANAGED_TEXT": "Interaktionen bearbeitet",
- "OPENED_TEXT": "Interaktionen geöffnet",
+ "NO_DISPOSITION_SET": "Keine Disposition festgelegt",
+ "ABANDONED_RATE": "Verlassene Rate",
+ "ABANDONED_RATE_TEXT": "Rate verlassener Interaktionen",
+ "AVG_MANAGED_TIME": " Durchschnittliche Verwaltungszeit",
+ "AVG_MANAGED_TIME_TEXT": "Durchschnittliche Verwaltungszeit der Interkationen",
+ "MANAGED": "Verwaltet",
+ "MANAGED_RATE": "Verwaltete Rate",
+ "MANAGED_RATE_TEXT": "Verwaltete Interaktionsrate",
+ "MANAGED_TEXT": "Verwaltete Interaktionen",
+ "OPENED_TEXT": "Geöffnete Interaktionen",
"TODAY_INTERACTIONS_STATS": "Interaktionen Tagesstatistiken",
- "UNMANAGED_RATE": "Rate nicht Bearbeitet",
- "UNMANAGED_RATE_TEXT": "Rate der nicht bearbeiteten Interaktionen in der Warteschlange",
- "VOICE_ABANDONED": "Abgebrochen",
- "VOICE_ABANDONED_TEXT": "Abgebrochene Anrufe innerhalb der Warteschlange",
- "VOICE_ABANDON_RATE": "Abbruchrate",
- "VOICE_ABANDON_RATE_TEXT": "Rate der abgebrochenen Anrufe innerhalb der Warteschlange",
+ "UNMANAGED_RATE": "Nicht verwaltete Rate",
+ "UNMANAGED_RATE_TEXT": "Nicht verwaltete Interaktionsate",
+ "VOICE_ABANDONED": "Verlassen",
+ "VOICE_ABANDONED_TEXT": "Verlassene Warteschlangenanrufe",
+ "VOICE_ABANDON_RATE": "Verlassene Rate",
+ "VOICE_ABANDON_RATE_TEXT": "Rate verlassener Warteschlangenanrufe",
"VOICE_ANSWERED": "Angenommen",
"VOICE_ANSWERED_TEXT": "Angenommene Anrufe in der Warteschlange",
- "VOICE_ANSWER_RATE": "Antwortrate",
+ "VOICE_ANSWER_RATE": "Angenommene Rate",
"VOICE_ANSWER_RATE_TEXT": "Rate angenommener Anrufe in der Warteschlange",
"VOICE_AVG_HOLD_TIME": "Durchschnittliche Wartezeit",
- "VOICE_AVG_HOLD_TIME_TEXT": "Durchschnittliche Wartezeit aller Sprachanrufe",
+ "VOICE_AVG_HOLD_TIME_TEXT": "Queue ruft AVG HOLD TIME an",
"VOICE_AVG_TALK_TIME": "Durchschnittliche Gesprächszeit",
- "VOICE_AVG_TALK_TIME_TEXT": "Durchschnittliche Gesprächszeit aller Anrufe nach der Warteschleife",
+ "VOICE_AVG_TALK_TIME_TEXT": "Gesprächszeit der Anrufe in der Warteschlage",
"VOICE_TALKING": "IM GESPRÄCH",
"VOICE_TALKING_TEXT": "Aktive Anrufe in der Warteschlange",
- "VOICE_TOTAL_OFFERED": "Gesamt angeboten",
- "VOICE_TOTAL_OFFERED_TEXT": "Gesamtzahl der angebotenen Anrufe in der Warteschlange",
- "VOICE_UNMANAGED": "Nicht bearbeitet",
- "VOICE_UNMANAGED_TEXT": "Nicht bearbeitete Anrufe in der Warteschlange",
+ "VOICE_TOTAL_OFFERED": "Insgesamt",
+ "VOICE_TOTAL_OFFERED_TEXT": "Gesamtzahl der Anrufe in der Warteschlange",
+ "VOICE_UNMANAGED": "Nicht verwaltet",
+ "VOICE_UNMANAGED_TEXT": "Nicht verwaltete Anrufe in der Warteschlange",
"VOICE_WAITING": "Wartende Anrufe",
"VOICE_WAITING_TEXT": "Wartende Anrufe in der Warteschlange",
"DOWNLOAD": "Herunterladen",
"SCHEDULED_CALLS": "Geplante Anrufe",
- "PRIVATE": "Persönlich",
+ "PRIVATE": "Privat",
"PUBLIC": "Öffentlich",
- "PUBLIC_INTERACTION": "Öffentliche Interaktion",
+ "PUBLIC_INTERACTION": "Die Interaktion ist öffentlich",
"VISIBILITY": "Sichtbarkeit",
- "INTERACTION_CLOSED": "Interaktion erfolgreich geschlossen",
- "INTERACTION_CLOSED_DISPOSED": "Interaktion erfolgreich geschlossen und qualifiziert",
- "INTERACTION_DISPOSED": "Interaktion erfolgreich qualifiziert",
- "ASSIGNED_TO_OTHERS": "An Andere zugewiesen",
- "SELECT_ALL": "Alles auswählen",
+ "INTERACTION_CLOSED": "Interaktion korrekt geschlossen",
+ "INTERACTION_CLOSED_DISPOSED": "Interaktion korrekt geschlossen und entsorgt",
+ "INTERACTION_DISPOSED": "Interaktion korrekt entsorgt",
+ "ASSIGNED_TO_OTHERS": "An andere zugewiesen",
+ "SELECT_ALL": "Alle auswählen",
"CHAT_INTERACTIONS": "Chat-Interaktionen",
"FAX_INTERACTIONS": "Fax-Interaktionen",
- "ID": "ID",
+ "ID": "Id",
"MAIL_INTERACTIONS": "E-Mail-Interaktionen",
- "OPENCHANNEL_INTERACTIONS": "Offener-Kanal-Interaktionen",
+ "OPENCHANNEL_INTERACTIONS": "Open Channel-Interaktionen",
"SMS_INTERACTIONS": "SMS-Interaktionen",
- "CANCEL": "Abbrechen",
- "DRAFT": "Entwurf speichern",
- "DRAFT_SAVE_WARNING_MESSAGE": "Für diese Interaktion ist bereits ein Entwurf gespeichert. Möchten Sie diesen überschreiben?",
+ "CANCEL": "Stornieren",
+ "DRAFT": "Entwurf",
+ "DRAFT_SAVE_WARNING_MESSAGE": "Für diese Interaktion ist bereits ein Entwurf gespeichert. Sind Sie sicher, dass Sie ihn überschreiben möchten?",
"DRAFT_SAVE_WARNING_TITLE": "Vorhandenen Entwurf überschreiben?",
"OVERWRITE": "Überschreiben",
"SAVE_AS_DRAFT": "Als Entwurf speichern",
"UNTITLED": "Ohne Titel",
"UPDATE_DRAFT": "Entwurf aktualisieren",
"NO_AVAILABLE_INTERACTION": "Keine Interaktionen verfügbar",
- "ACCOUNTINGDOC": "Abrechnungsdokumente",
+ "ACCOUNTINGDOC": "Buchhaltung",
"ADD_PRODUCTPRICELIST": "PRODUKT HINZUFÜGEN",
"AGENTFULLNAME": "Agent",
"ALL_COMPANIES": "Alle Unternehmen",
- "ALL_PRODUCTS": "Alles",
- "ALL_STATUS": "Alles",
- "ALL_STEP": "Alles",
+ "ALL_PRODUCTS": "Alle",
+ "ALL_STATUS": "Alle",
+ "ALL_STEP": "Alle",
"ALL_WORKFLOW": "Alle Arbeitsabläufe",
"ATTENDACELASTINVOICE": "Letzte Rechnung",
"ATTENDACENEXTINVOICE": "Nächste Rechnung",
"AUTHORIZED": "AUTORISIERT",
"AUTOINVOICE": "SELBSTABRECHNUNG",
"AUTOPROFORMA": "SELBST-PROFORMA",
- "BALANCE": "SALDO",
+ "BALANCE": "BALANCE",
"BY": "Durch",
"CLONEPROFORMA": "Klon",
"COMPANIES": "Unternehmen",
"DOSSIERS": "Dossiers",
"DOSSIER_INFO": "Information",
"ENDDATE": "Ablaufdatum",
- "FROM": "von",
+ "FROM": "Von",
"GRAPHINVOICES": "Diagramm der Rechnungsemission",
"INASSET": "Kapital",
"INVOICE": "RECHNUNG",
"INVOICEPAYED": "Bezahlt",
"INVOICES": "RECHNUNGEN",
"INVOICESTATUS": "Status",
- "INVOICETOTAL": "Gesamt",
+ "INVOICETOTAL": "Insgesamt",
"INVOICE_INFO": "Rechnung",
"MANAGESALES": "Abonnements",
"MOVEASSET": "Kapital",
"QUOTATIONSTATUS": "Status",
"QUOTATIONSUBSCRIPTION": "Dauer",
"QUOTATIONTAX": "MwSt",
- "QUOTATIONTOTAL": "Gesamt",
+ "QUOTATIONTOTAL": "Insgesamt",
"QUOTATIONTOTALPRICE": "Gesamt netto",
- "QUOTATIONTOTALS": "Gesamt",
+ "QUOTATIONTOTALS": "Insgesamt",
"QUOTATIONTOTALTAX": "Gesamtsteuer",
"QUOTATIONUNIT": "Einheit",
"QUOTATIONVAT": "VAT",
"TOTALPAYMENTS": "Gesamtzahlungen",
"UPDATED_AT": "Geändert am",
"UPDATE_PRODUCT": "Produkt aktualisieren",
- "WORKFLOW": "Arbeitsablauf wählen",
+ "WORKFLOW": "Wählen Sie einen Arbeitsablauf",
"YEARS": "Jahre",
"CUSTOMER_IP": "Ursprüngliche IP-Adresse",
"CUSTOMER_PORT": "Ursprünglicher TCP-Port",
"ADVANCED_SEARCH": "Erweiterte Suche",
- "AND": "und",
+ "AND": "Und",
"APPLY": "Anwenden",
- "CONTAINS": "enthält",
+ "CONTAINS": "Enthält",
"DISABLED": "Deaktiviert",
"ENABLED": "Aktiviert",
"ENDING_DATE": "Enddatum",
"ENDING_VALUE": "Endwert",
- "ENDS_WITH": "endet mit",
- "EQUALS": "gleich",
- "IS_AMONG": "ist unter",
- "IS_BETWEEN": "ist zwischen",
- "IS_GREATER_THAN": "ist größer als",
- "IS_GREATER_THAN_OR_EQUAL_TO": "ist größer oder gleich",
- "IS_LESS_THAN": "ist kleiner als",
- "IS_LESS_THAN_OR_EQUAL_TO": "ist kleiner oder gleich",
- "IS_NOT_AMONG": "ist nicht innerhalb",
- "IS_NOT_EQUAL": "ist nicht gleich",
+ "ENDS_WITH": "Endet mit",
+ "EQUALS": "Gleich",
+ "IS_AMONG": "Ist unter",
+ "IS_BETWEEN": "Ist zwischen",
+ "IS_GREATER_THAN": "Ist größer als",
+ "IS_GREATER_THAN_OR_EQUAL_TO": "Ist größer oder gleich",
+ "IS_LESS_THAN": "Ist kleiner als",
+ "IS_LESS_THAN_OR_EQUAL_TO": "Ist kleiner oder gleich",
+ "IS_NOT_AMONG": "Ist nicht unter",
+ "IS_NOT_EQUAL": "Ist nicht gleich",
"MEET_ALL_CONDITIONS": "Alle Bedingungen erfüllen",
"MEET_ANY_CONDITIONS": "Mindestens eine Bedingung erfüllen",
"NEW_CONDITION": "Neue Bedingung",
"SELECT_OPERATOR": "Operator auswählen",
"STARTING_DATE": "Startdatum",
"STARTING_VALUE": "Startwert",
- "STARTS_WITH": "beginnt mit",
+ "STARTS_WITH": "Beginnt mit",
"VALUE": "Wert",
"VALUES": "Werte",
"VALUE_RANGE_CHECK": "Wert muss größer sein als",
- "CHOOSE": "Auswählen",
+ "CHOOSE": "Wählen",
"DOWNLOAD_WITHOUT_ATTACHMENTS": "Herunterladen ohne Anhänge",
"DOWNLOAD_WITH_ATTACHMENTS": "Mit Anhängen herunterladen",
- "SELECT_QUEUE": "Warteschlange auswählen",
+ "SELECT_QUEUE": "Wählen Sie eine Warteschlange aus",
"VIDAOOSESSION": "Videoanruf starten",
"WHATSAPP": "WhatsApp Connector",
- "WHATSAPP_INTERACTIONS": "WhatsApp-Interaktionen",
+ "WHATSAPP_INTERACTIONS": "WhatsApp Connector-Interaktionen",
"LAST_UPDATED": "Zuletzt aktualisiert",
"MATCHING_FIELD": "Übereinstimmendes Feld",
"MULTIPLE_CONTACTS_FOUND": "Mehrere Kontakte für Nummer gefunden",
- "SELECT": "Auswählen",
+ "SELECT": "Wählen",
"SELECT_CONTACT": "Kontakt auswählen",
- "WHICH_ONE_TO_USE": "Welcher Eintrag soll verwendet werden?",
+ "WHICH_ONE_TO_USE": "Welches möchten Sie verwenden?",
"NO_WHATSAPP_ACCOUNTS_AVAILABLE": "Kein WhatsApp-Konto verfügbar",
- "SECOND_LEVEL_DISPOSITION": "Qualifizierung der zweiten Ebene",
- "THIRD_LEVEL_DISPOSITION": "Qualifizierung der dritten Ebene",
+ "SECOND_LEVEL_DISPOSITION": "Disposition der zweiten Ebene",
+ "THIRD_LEVEL_DISPOSITION": "Disposition der dritten Ebene",
"LICENSE_EXPIRE_REMAINING_DAYS": "Ihre Lizenz läuft bald ab! Bitte wenden Sie sich an Ihren Administrator",
"CREATEDAT": "Hergestellt in",
"ELAPSED_ANSWERED": "Verstrichene Zeit seit dem Start des Anrufs",
"ELAPSED_DISPOSED": "Verstrichene Zeit seit Beendigung des Anrufs",
- "LOST_CONNECTION": "Probleme mit der Netzwerkkonnektivität. Bitte Internetverbindung prüfen.",
+ "LOST_CONNECTION": "Probleme mit der Netzwerkkonnektivität. Bitte überprüfe deine Internetverbindung.",
"NO_RESULTS_AVAILABLE": "Keine Ergebnisse verfügbar",
- "AUTOCLOSE": "Tab nach Qualifizierung automatisch schließen",
- "AGENT_PRESENCE": "Bereitschaftsstatus",
- "SELECT_TEAM": "Team auswählen"
+ "AUTOCLOSE": "Schließen Sie die Kontaktlasche nach der Entsorgung automatisch",
+ "AGENT_PRESENCE": "Agentenpräsenz",
+ "SELECT_TEAM": "Team auswählen",
+ "AVAILABLE": "Erhältlich"
}
}
{
"MAIL": {
"TEXT": "Text",
- "TIMES": "Zeitstempel",
- "EDIT_AUTOREPLY": "Automatische Antwort bearbeiten",
+ "TIMES": "Die Anzahl der Zeiten pro Interaktion",
+ "EDIT_AUTOREPLY": "Bearbeiten Sie automatische Antwort",
"AUTOREPLY": "Automatische Antwort",
- "SHOW_AUTOREPLY": "Automatische Antwort anzeigen",
+ "SHOW_AUTOREPLY": "Die automatische Antwort anzeigen",
"SHOW_DETAILS": "Details anzeigen",
"HIDE_DETAILS": "Details ausblenden",
- "TO": "An",
+ "TO": "Zu",
"FROM": "Von",
"DATE": "Datum",
- "CC": "CC",
- "REPLY": "Antworten",
+ "CC": "Cc",
+ "REPLY": "Antwort",
"REPLY_ALL": "Allen antworten",
- "FORWARD": "Weiterleiten",
+ "FORWARD": "Vorwärts",
"SUBJECT": "Betreff",
- "BCC": "BCC",
+ "BCC": "Bcc",
"SEND": "Senden",
"ATTACHMENT": "Anhang",
"ATTACHMENTS": "Anhänge",
"NAME": "Name",
"MAILQUEUES": "E-Mail Warteschlangen",
- "SEARCH_FOR_ANYONE": "Suche",
+ "SEARCH_FOR_ANYONE": "Suche für Jedermann",
"STRATEGY": "Strategie",
"ERRORS": {
- "TEXT_REQUIRED": "Feld \"Text\" ist erforderlich",
- "NAME_REQUIRED": "Name ist erforderlich",
- "AGENT_TIMEOUT_REQUIRED": "Agent Timeout ist erforderlich",
- "EMAIL_ADDRESS_REQUIRED": "E-Mail-Adresse ist erforderlich",
- "EMAIL_ADDRESS_MUST_VALID": "E-Mail ungültiges Format",
- "HOST_REQUIRED": "Host wird benötigt",
- "USERNAME_REQUIRED": "Benutzername ist erforderlich",
- "PORT_REQUIRED": "Port ist erforderlich",
+ "TEXT_REQUIRED": "Das Feld \"Text\" ist erforderlich",
+ "NAME_REQUIRED": "Der Name ist erforderlich",
+ "AGENT_TIMEOUT_REQUIRED": "Der Agent Timeout ist erforderlich",
+ "EMAIL_ADDRESS_REQUIRED": "Die E-Mail-Adresse ist erforderlich",
+ "EMAIL_ADDRESS_MUST_VALID": "Die E-Mail Adresse muss in einem gültigen Format",
+ "HOST_REQUIRED": "Der Host wird benötigt",
+ "USERNAME_REQUIRED": "Der Benutzername ist erforderlich",
+ "PORT_REQUIRED": "Der Port ist erforderlich",
"CONNTIMEOUT_REQUIRED": "Timeout der Verbindung ist erforderlich",
- "AUTHTIMEOUT_REQUIRED": "Zeitlimit für die Authentifizierung ist erforderlich",
- "ACCEPTURL_MUST_VALID_URL": "URL ungültiges Format",
- "TIMEOUT_REQUIRED": "Timeout ist erforderlich",
- "REJECTURL_MUST_VALID_URL": "URL ungültiges Format",
- "CLOSEURL_MUST_VALID_URL": "URL ungültiges Format",
- "AGENT_REQUIRED": "Agent ist erforderlich",
- "TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Timeout muss größer oder gleich sein als",
- "DISPOSITION_REQUIRED": "Qualifizierung ist erforderlich",
- "CONDITION_REQUIRED": "Bedingung ist erforderlich",
- "TRUEPRIORITY_REQUIRED": "Wahre Priorität ist erforderlich",
- "FALSEPRIORITY_REQUIRED": "Falsche Priorität ist erforderlich",
- "TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wahre Priorität muss größer oder gleich sein als",
- "FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Falsche Priorität muss größer oder gleich sein als",
- "PRIORITY_REQUIRED": "Priorität ist erforderlich",
- "PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Priorität muss größer oder gleich sein als",
- "QUEUE_REQUIRED": "Warteschlange ist erforderlich",
- "LIST_REQUIRED": "Liste ist erforderlich",
- "PASSWORD_REQUIRED": "Passwort ist erforderlich",
- "SERVICE_REQUIRED": "Dienst ist erforderlich,",
- "IMAP_HOST_REQUIRED": "IMAP-Host ist erforderlich",
- "IMAP_PORT_REQUIRED": "IMAP-Port erforderlich",
- "SMTP_HOST_REQUIRED": "SMTP-Host ist erforderlich",
- "SMTP_PORT_REQUIRED": "SMTP-Port ist erforderlich",
- "CONFIRM_NOT_MATCH": "Die Passwörter stimmen nicht überein",
- "KEY_MAX_LENGTH": "Schlüssel darf eine maximale Länge haben von {{max}}",
- "KEY_REQUIRED": "Schlüssel ist erforderlich",
- "TEXT_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}}",
+ "AUTHTIMEOUT_REQUIRED": "Das Zeitlimit für die Authentifizierung erforderlich ist",
+ "ACCEPTURL_MUST_VALID_URL": "Die URL muss in einem gültigen Format",
+ "TIMEOUT_REQUIRED": "Der Timeout ist erforderlich",
+ "REJECTURL_MUST_VALID_URL": "Die URL muss in einem gültigen Format",
+ "CLOSEURL_MUST_VALID_URL": "Die URL muss in einem gültigen Format",
+ "AGENT_REQUIRED": "Der Agent ist erforderlich",
+ "TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Timeout muss größer als oder gleich",
+ "DISPOSITION_REQUIRED": "Die Disposition ist erforderlich",
+ "CONDITION_REQUIRED": "Der Zustand ist erforderlich",
+ "TRUEPRIORITY_REQUIRED": "Die wahre Priorität ist erforderlich",
+ "FALSEPRIORITY_REQUIRED": "Die falsche Priorität ist erforderlich",
+ "TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Die wahre Priorität muss größer als oder gleich",
+ "FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Die falsche Priorität muss größer als oder gleich",
+ "PRIORITY_REQUIRED": "Die Priorität ist erforderlich",
+ "PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Die Priorität muss größer als oder gleich",
+ "QUEUE_REQUIRED": "Die Warteschlange ist erforderlich",
+ "LIST_REQUIRED": "Die Liste ist erforderlich",
+ "PASSWORD_REQUIRED": "Das Kennwort ist erforderlich",
+ "SERVICE_REQUIRED": "Der Dienst ist erforderlich,",
+ "IMAP_HOST_REQUIRED": "Der IMAP-Host wird benötigt",
+ "IMAP_PORT_REQUIRED": "Der IMAP-Anschluss erforderlich",
+ "SMTP_HOST_REQUIRED": "Der SMTP-Host ist erforderlich",
+ "SMTP_PORT_REQUIRED": "Der SMTP-Port ist erforderlich",
+ "CONFIRM_NOT_MATCH": "Die Passwörter nicht übereinstimmen",
+ "KEY_MAX_LENGTH": "Schlüssel muss eine maximale Länge von {{max}}",
+ "KEY_REQUIRED": "Der Schlüssel ist erforderlich",
+ "TEXT_MAX_LENGTH": "Der Wert muss eine maximale Länge von {{max}} haben",
"VALUE_REQUIRED": "Pflichtfeld",
- "FONT_SIZE_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
- "FONT_SIZE_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
+ "FONT_SIZE_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
+ "FONT_SIZE_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
"FONT_SIZE_REQUIRED": "Pflichtfeld",
"COMMAND_REQUIRED": "Pflichtfeld",
- "AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
+ "AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
"NAME_MUST_VALID_PATTERN": "Falsches Format",
- "TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
- "AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
- "WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
- "WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
+ "TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
+ "AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
+ "WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
+ "WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
"WAITFORTHEASSIGNEDAGENT_REQUIRED": "Pflichtfeld",
"TAG_REQUIRED": "Pflichtfeld",
- "AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
- "AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
+ "AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
+ "AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
"AGENTTRANSFERTIMEOUT_REQUIRED": "Pflichtfeld",
- "QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
- "QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
+ "QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
+ "QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
"QUEUETRANSFERTIMEOUT_REQUIRED": "Pflichtfeld",
"MANDATORYDISPOSITIONPAUSEID_REQUIRED": "Pflichtfeld",
"REPLY_TYPE_REQUIRED": "Pflichtfeld"
"MAILACCOUNTS": "E-Mail Konten",
"EMAIL_ADDRESS": "E-Mail Adresse",
"ADD_MAILACCOUNT": "E-Mail Konto hinzufügen",
- "EDIT_MAILACCOUNT": "E-Mail Konto bearbeiten",
- "DELETE_MAILACCOUNT": "E-Mail Konto löschen",
- "DISPOSITIONS": "Qualifizierungen",
+ "EDIT_MAILACCOUNT": "E-Mail-Konto bearbeiten",
+ "DELETE_MAILACCOUNT": "E-Mail-Konten löschen",
+ "DISPOSITIONS": "Bestimmungen",
"WEBHOOKS": "WebHooks",
"ACTIONS": "Aktionen",
"OTHERS": "Andere",
"SERVICE": "Service",
"CREATED_AT": "Erstellt am",
"ACCEPT": "Akzeptieren",
- "ACCEPTMETHOD": "Methode akzeptieren",
+ "ACCEPTMETHOD": "Die Methode",
"ACCEPTURL": "URL akzeptieren",
"REJECT": "Ablehnen",
"REJECTMETHOD": "Methode ablehnen",
"REJECTURL": "URL ablehnen",
- "CLOSE": "Schließen",
- "CLOSEMETHOD": "Methode schließen",
- "CLOSEURL": "URL schließen",
+ "CLOSE": "In der Nähe",
+ "CLOSEMETHOD": "In der Nähe Methode",
+ "CLOSEURL": "Der URL",
"WHITELABEL": "White Label",
- "SIGNATURE": "Signatur",
+ "SIGNATURE": "Unterschrift",
"IMAP": "IMAP",
"HOST": "Host",
"USERNAME": "Benutzername",
- "PORT": "Port",
+ "PORT": "Hafen",
"MAILBOX": "Mailbox",
"FILTER": "Filter",
"CONNTIMEOUT": "Connection Timeout [sek]",
"SMTP": "SMTP",
"SELECTED": "Ausgewählte",
"SELECT_ALL": "Alle auswählen",
- "SELECT_NONE": "Nichts auswählen",
+ "SELECT_NONE": "Wählen Sie \"Keine\"",
"BACK": "Zurück",
"MAIL": "E-Mail",
- "ID": "ID",
+ "ID": "Id",
"TIMEOUT": "Timeout",
"PASSWORD": "Passwort",
- "NO_MAILDISPOSITION_AVAILABLE": "Keine E-Mail Qualifizierung verfügbar",
- "ADD_MAILDISPOSITION": "Qualifizierung hinzufügen",
- "NEW_MAILDISPOSITION": "Neue E-Mail Qualifizierung",
- "EDIT_MAILDISPOSITION": "Qualifizierung bearbeiten",
- "DELETE_MAILDISPOSITION": "Qualifizierung löschen",
- "MAILDISPOSITIONS": "E-Mail Qualifizierungen",
+ "NO_MAILDISPOSITION_AVAILABLE": "Keine E-Mail zur Verfügung Verfügungen",
+ "ADD_MAILDISPOSITION": "E-Mail hinzufügen Disposition",
+ "NEW_MAILDISPOSITION": "Neue E-Mail zur Verfügung",
+ "EDIT_MAILDISPOSITION": "Bearbeiten von E-Mail zur Verfügung",
+ "DELETE_MAILDISPOSITION": "Löschen von E-Mail zur Verfügung",
+ "MAILDISPOSITIONS": "E-Mail Verfügungen",
"NEW_MAILQUEUE": "Neue E-Mail Warteschlange",
- "NEW_MAILACCOUNT": "Neues E-Mail Konto",
- "NO_AVAILABLE_INFO": "Keine Informationen verfügbar",
- "ALL_TEAMS": "Alle Teams",
+ "NEW_MAILACCOUNT": "Neue E-Mail Konto",
+ "NO_AVAILABLE_INFO": "Keine verfügbaren Info",
+ "ALL_TEAMS": "Alle Mannschaften",
"SELECTED_TEAMS": "Ausgewählte Teams",
"HELP": {
"NAME": "Nur Zahlen, Buchstaben und Sonderzeichen (._) werden unterstützt.",
- "USERNAME": "Benutzername für die Authentifizierung",
- "PASSWORD": "Passwort für die Authentifizierung",
- "SECURE": "Bei true wird die Verbindung TLS verwenden, wenn eine Verbindung zum Server aufgebaut wird",
- "FONT_FAMILY": "Standard-Schriften",
+ "USERNAME": "Benutzername für die Authentifizierung verwendet werden",
+ "PASSWORD": "Kennwort für die Authentifizierung verwendet werden",
+ "SECURE": "Bei true wird die Verbindung TLS verwenden, wenn eine Verbindung zu Server",
+ "FONT_FAMILY": "Standardschriftfamilie",
"FONT_SIZE": "Standard Schriftgröße",
- "MARK_AS_UNREAD": "Aktivieren / deaktivieren, um die letzte Nachricht einer Interaktion als ungelesen zu markieren",
- "MANDATORYDISPOSITION": "Qualifizierung erforderlich",
- "MANDATORYDISPOSITIONPAUSEID": "PausenID bei erforderlicher Qualifizierung"
+ "MARK_AS_UNREAD": "Agent aktivieren / deaktivieren, um die letzte Nachricht einer Interaktion als ungelesen zu markieren",
+ "MANDATORYDISPOSITION": "Zwingende Disposition",
+ "MANDATORYDISPOSITIONPAUSEID": "Anhalten, um zu verwenden, wenn die obligatorische Disposition aktiviert ist"
},
"PAGE": "Seite",
"ROWSPERPAGE": "Zeilen pro Seite",
- "OF": "von",
- "TEAMADD_MAILQUEUE": "Team zur Warteschlange hinzufügen",
- "AGENTADD_MAILQUEUE": "Agenten zur Warteschlange hinzufügen",
+ "OF": "Von",
+ "TEAMADD_MAILQUEUE": "Team Chat Warteschlange hinzufügen",
+ "AGENTADD_MAILQUEUE": "Agent zu Chatten Warteschlange hinzufügen",
"ALL_AGENTS": "Alle Agenten",
"SELECTED_AGENTS": "Ausgewählte Agenten",
"AGENT": "Agent",
"EDIT_AGENT": "Agent bearbeiten",
- "EDIT_CLOSE": "Bearbeitung abschließen",
- "DISPOSITION": "Qualifizierung",
- "GOTOIF": "GoToIf",
+ "EDIT_CLOSE": "Bearbeiten Schließen",
+ "DISPOSITION": "Disposition",
+ "GOTOIF": "GotoIf",
"EDIT_GOTOIF": "Bearbeiten GotoIf",
- "CONDITION": "Bedingung",
+ "CONDITION": "Zustand",
"TRUEPRIORITY": "Wahre Priorität",
"FALSEPRIORITY": "Falsche Priorität",
"GOTOP": "GotoP",
"VALUE": "Wert",
"QUEUE": "Warteschlange",
"EDIT_QUEUE": "Warteschlange bearbeiten",
- "INTERACTIONS": "Interaktionen",
- "STARTEDAT": "Startdatum",
+ "INTERACTIONS": "Wechselwirkungen",
+ "STARTEDAT": "Gestartet am",
"CONTACT": "Kontakt",
"CLOSEDAT": "Geschlossen",
- "NOTES": "Anmerkungen",
- "NO_INTERACTION_AVAILABLE": "Keine neuen Interaktionen verfügbar",
+ "NOTES": "Hinweise",
+ "NO_INTERACTION_AVAILABLE": "Es sind keine Wechselwirkungen zur Verfügung",
"ACTIVE": "Aktiv",
- "SECURE": "Sicher",
+ "SECURE": "Sichere",
"AUTHENTICATION": "Authentifizierung",
"SMTP_HOST": "SMTP-Host",
"SMTP_PORT": "SMTP-Port",
"IMAP_PORT": "IMAP-Port",
"CONFIRM_PASSWORD": "Passwort bestätigen",
"SELECT_STATUS": "Status auswählen",
- "OPENED": "Geöffnet",
+ "OPENED": "Öffnen",
"CLOSED": "Geschlossen",
"ALL": "Alle",
"SELECT_ACCOUNT": "Konto auswählen",
"UNPAUSE": "Pause beenden",
"DEFAULT_PAUSE": "Standard Pause",
"LOGOUT": "An-/Abmelden",
- "AGENTADD_QUEUE": "Agenten zur Warteschlange hinzufügen",
- "VOICE": "Anrufe",
+ "AGENTADD_QUEUE": "Agent E-Mail Warteschlange hinzufügen",
+ "VOICE": "Voice",
"CHAT": "Chat",
- "SMS": "SMS",
- "OPENCHANNEL": "Offener Kanal",
+ "SMS": "Sms",
+ "OPENCHANNEL": "Channel öffnen",
"FAX": "Fax",
"REALTIME": "Echtzeit",
"AGENTS": "Agenten",
"QUEUES": "Warteschlangen",
"ACCOUNTS": "Konten",
- "FULLNAME": "Vollständiger Name",
- "INTERNAL": "Intern",
+ "FULLNAME": "Voller Name",
+ "INTERNAL": "Interne",
"PHONE_STATE": "Telefonstatus",
"PHONE_STATUS": "Telefonstatus",
"PAUSE": "Pause",
"LOGGED_IN": "Angemeldet",
"PAUSED": "Angehalten",
"READY": "Bereit",
- "WAITING": "Wartezustand",
- "TOTAL": "Gesamt",
- "IN": "Eingehend",
- "OUT": "Ausgehend",
+ "WAITING": "Warten",
+ "TOTAL": "Insgesamt",
+ "IN": "In",
+ "OUT": "Aus",
"IMAP_STATUS": "IMAP-Status",
"SMTP_STATUS": "SMTP-Status",
"DISABLED": "Deaktiviert",
"CONNECTED": "Verbunden",
- "NEVER_VERIFIED": "Noch nicht verifiziert",
+ "NEVER_VERIFIED": "Nie verifiziert",
"ERROR": "Fehler",
"EDIT_ACCOUNT": "Konto bearbeiten",
- "VERIFY_SMTP": "Bitte SMTP-Einstellungen prüfen",
+ "VERIFY_SMTP": "Überprüfen Sie die SMTP-",
"VERIFIED": "Überprüft",
- "VERIFYSMTP_MAILACCOUNT": "Bitte SMTP-Einstellungen prüfen",
- "GOTOREALTIME_MAILACCOUNT": "Zum E-Mail-Konto Echtzeitmonitoring",
- "GOTO_MAILACCOUNT": "Zum E-Mail Konto gehen",
+ "VERIFYSMTP_MAILACCOUNT": "Überprüfen Sie die SMTP-",
+ "GOTOREALTIME_MAILACCOUNT": "In Echtzeit, E-Mail Konto",
+ "GOTO_MAILACCOUNT": "In Echtzeit, E-Mail Konto",
"UNKNOWN": "Unbekannt",
- "UNREGISTERED": "Nicht registriert",
+ "UNREGISTERED": "Unregistrierte",
"UNAVAILABLE": "Nicht verfügbar",
- "NOT_INUSE": "Nicht in Verwendung",
+ "NOT_INUSE": "Nicht in Gebrauch",
"REACHABLE": "Erreichbar",
- "IN_USE": "In Verwendung",
- "AGENTSADD_QUEUE": "Agenten zur Warteschlange hinzufügen",
- "INFO": "Information",
+ "IN_USE": "Im Einsatz",
+ "AGENTSADD_QUEUE": "Agenten zu Warteschlange hinzufügen",
+ "INFO": "Info",
"NO_AGENT_ONLINE": "Kein Agent Online",
- "GOTOREALTIME_MAILQUEUE": "Echtzeitmonitoring E-Mail Warteschlangen",
- "PARTIALPAUSE": "Teilpause",
+ "GOTOREALTIME_MAILQUEUE": "In Echtzeit, E-Mail Warteschlange",
+ "PARTIALPAUSE": "Lastschriftzahlung teilweise Pause",
"BUSY": "Besetzt",
"TIMER": "Timer",
"IDLE": "Leerlauf",
"CAPACITY": "Kapazität",
- "SPYINTERACTION": "Mithören",
+ "SPYINTERACTION": "Spy",
"ADD_NOTE": "Notiz hinzufügen",
- "NOTE": "Notiz",
+ "NOTE": "Hinweis",
"TAGS": "Tags",
- "INTERACTIONS_MAILACCOUNT": "Zu den Interaktionen gehen",
- "REFRESH_INTERACTIONS": "Interaktionen aktualisieren",
- "PENDING": "Warten auf Rückmeldung",
- "SEND_AS_PENDING": "Senden und auf Rückmeldung warten",
- "SEND_AND_CLOSE": "Senden und schließen",
- "CANNED_ANSWER_NOT_FOUND": "Keine Textvorlagen gefunden",
- "CANNED_ANSWER_SEARCH": "Nach Textvorlagen suchen",
- "NO_MAILCANNEDANSWER_AVAILABLE": "Keine Textvorlagen verfügbar",
- "NEW_MAILCANNEDANSWER": "Neue Textvorlage",
- "ADD_MAILCANNEDANSWER": "Textvorlage hinzufügen",
- "EDIT_MAILCANNEDANSWER": "Textvorlage bearbeiten",
- "DELETE_MAILCANNEDANSWER": "Textvorlage löschen",
+ "INTERACTIONS_MAILACCOUNT": "Zu Wechselwirkungen gehen",
+ "REFRESH_INTERACTIONS": "Aktualisieren Interaktionen",
+ "PENDING": "Ausstehend",
+ "SEND_AS_PENDING": "Senden als Ausstehend",
+ "SEND_AND_CLOSE": "Senden und Schließen",
+ "CANNED_ANSWER_NOT_FOUND": "Es wurden keine vordefinierten Antworten gefunden",
+ "CANNED_ANSWER_SEARCH": "Geben Sie einen Text ein, um eine vordefinierte Antwort zu suchen",
+ "NO_MAILCANNEDANSWER_AVAILABLE": "Keine vordefinierten Antworten verfügbar",
+ "NEW_MAILCANNEDANSWER": "Neue vordefinierte Antowrt",
+ "ADD_MAILCANNEDANSWER": "Vordefinierte Antwort hinzufügen",
+ "EDIT_MAILCANNEDANSWER": "Vordefiierte Antwort bearbeiten",
+ "DELETE_MAILCANNEDANSWER": "Vordefinierte Antwort löschen",
"SHOW_ORIGINAL_MESSAGE": "Ursprüngliche Nachricht anzeigen",
"DELETE_INTERACTION": "Interaktion löschen",
"ACCEPTED": "Akzeptiert",
"FONT_FAMILY": "Schriftfamilie",
"FONT_SIZE": "Schriftgröße",
- "MARK_AS_UNREAD": "Als ungelesen markieren",
- "ADD_MAILSUBSTATUS": "SubStatus hinzufügen",
- "DELETE_MAILSUBSTATUS": "SubStatus löschen",
- "EDIT_MAILSUBSTATUS": "SubStatus bearbeiten",
- "MAILSUBSTATUSES": "E-Mail SubStatus",
- "NEW_MAILSUBSTATUS": "Neuer SubStatus",
- "SEND_AS": "Senden als",
- "COMMAND": "Eingabe",
+ "MARK_AS_UNREAD": "als ungelesen markieren",
+ "ADD_MAILSUBSTATUS": "Unterstatus hinzufügen",
+ "DELETE_MAILSUBSTATUS": "Löschen",
+ "EDIT_MAILSUBSTATUS": "Bearbeiten",
+ "MAILSUBSTATUSES": "E-Mail-Unterstatus",
+ "NEW_MAILSUBSTATUS": "Neuer Unterstatus",
+ "SEND_AS": "Senden Als",
+ "COMMAND": "Befehl",
"EDIT_SYSTEM": "System bearbeiten",
"SYSTEM": "System",
"VARIABLE": "Variable",
"NOTIFICATION": "Benachrichtigung",
- "NOTIFICATIONSHAKE": "Schütteln",
- "NOTIFICATIONSOUND": "Klingeln",
+ "NOTIFICATIONSHAKE": "Shake",
+ "NOTIFICATIONSOUND": "Klingen",
"NOTIFICATIONTEMPLATE": "Vorlage",
"WAITFORTHEASSIGNEDAGENT": "Warte auf den zugewiesenen Agenten",
"EDIT_TAG": "Tag bearbeiten",
- "TAG": "Tag",
- "AGENTTRANSFER": "Weiterleitung Agent",
- "AGENTTRANSFERTIMEOUT": "Zeitlimit für Agententransfer",
- "QUEUETRANSFER": "Weiterleitung Warteschlange",
- "QUEUETRANSFERTIMEOUT": "Zeitüberschreitung für Warteschlangentransfer",
- "TRANSFER": "Weiterleitung",
- "AGENTADD_MAILACCOUNT": "Agenten zum E-Mail Konto hinzufügen",
+ "TAG": "Etikett",
+ "AGENTTRANSFER": "Agentenübertragung",
+ "AGENTTRANSFERTIMEOUT": "Zeitlimit für Agentenübertragungen",
+ "QUEUETRANSFER": "Warteschlangenübertragung",
+ "QUEUETRANSFERTIMEOUT": "Zeitüberschreitung bei der Warteschlangenübertragung",
+ "TRANSFER": "Transfer",
+ "AGENTADD_MAILACCOUNT": "Fügen Sie dem E-Mail-Konto Agent hinzu",
"YOU_ARE_REGISTERED_AS_A": "Sie sind registriert als",
- "CANNEDANSWERS": "Textvorlagen",
+ "CANNEDANSWERS": "Vordefinierte Antworten",
"DOWNLOAD_INTERACTION": "Herunterladen",
- "MAILCANNEDANSWERS": "E-Mail Textvorlagen",
- "LOGIN_TIME": "Zeit angemeldet",
- "PAUSE_TIME": "Zeit in Pause",
+ "MAILCANNEDANSWERS": "Vordefinierte Antworten",
+ "LOGIN_TIME": "Login-Zeit",
+ "PAUSE_TIME": "Pausenzeit",
"DOWNLOAD": "Herunterladen",
- "DOWNLOAD_WITHOUT_ATTACHMENTS": "Herunterladen ohne Anhänge",
- "DOWNLOAD_WITH_ATTACHMENTS": "Herunterlagen inkl. Anhänge",
- "TEAMS_ASSOCIATION": "Teamzuweisung",
- "MANDATORYDISPOSITION": "Qualifizierung erforderlich",
- "MANDATORYDISPOSITIONPAUSEID": "Qualifizierung pausieren, sofern sonst erforderlich",
- "ADVANCED": "Erweitert",
- "TOOLTIP_SCREENRECORDING_OFF": "Bildschirmaufzeichnung angehalten",
- "TOOLTIP_SCREENRECORDING_ON": "Bildschirmaufzeichnung läuft",
- "DOWNLOAD_WITHOUT_ATTACHMENT": "Herunterladen ohne Anhang",
- "DOWNLOAD_WITH_ATTACHMENT": "Herunterladen inkl. Anhang",
+ "DOWNLOAD_WITHOUT_ATTACHMENTS": "Download ohne Anhänge",
+ "DOWNLOAD_WITH_ATTACHMENTS": "Mit Anhängen herunterladen",
+ "TEAMS_ASSOCIATION": "Vereinigung der Mannschaften",
+ "MANDATORYDISPOSITION": "Zwingende Disposition",
+ "MANDATORYDISPOSITIONPAUSEID": "Pause zur Verwendung, wenn die obligatorische Disposition aktiviert ist",
+ "ADVANCED": "Fortgeschritten",
+ "TOOLTIP_SCREENRECORDING_OFF": "Bildschirmaufnahme verfügbar",
+ "TOOLTIP_SCREENRECORDING_ON": "Bildschirmaufnahme läuft",
+ "DOWNLOAD_WITHOUT_ATTACHMENT": "Ohne Anhang herunterladen",
+ "DOWNLOAD_WITH_ATTACHMENT": "Download mit Anhang",
"LASTMESSAGE": "Letzte Nachricht",
"REPLY_TYPE": "Antworttyp"
}
"DESCRIPTION": "وصف",
"DOWNLOAD_PLUGIN": "تنزيل المكون الإضافي",
"DROP_TO_UPLOAD": "إسقاط للتحميل",
- "DROP_TO_UPLOAD_MESSAGE": "أسقط ملفك هنا للتحميل. فقط الرمز البريدي - ماكس. 4MB",
+ "DROP_TO_UPLOAD_MESSAGE": "أسقط ملفك هنا للتحميل. فقط الرمز البريدي - ماكس. 2MB",
"EDITOR": "محرر",
"EDIT_PLUGIN": "تحرير المكوّن الإضافي",
"FINISH": "إنهاء",
"SAVE": "Save",
"INSTALLING": "Installing",
"DROP_TO_UPLOAD": "Drop To Upload",
- "DROP_TO_UPLOAD_MESSAGE": "Drop your file here to upload. Only ZIP - Max. 4MB",
+ "DROP_TO_UPLOAD_MESSAGE": "Drop your file here to upload. Only ZIP - Max. 2MB",
"UPLOAD_PLUGIN": "Upload plugin",
"UPLOADING": "Uploading",
"CREATED_AT": "Created at",
"DESCRIPTION": "Beskrivelse",
"DOWNLOAD_PLUGIN": "Download plugin",
"DROP_TO_UPLOAD": "Drop til upload",
- "DROP_TO_UPLOAD_MESSAGE": "Drop din fil her for at uploade. Kun ZIP - Max. 4MB",
+ "DROP_TO_UPLOAD_MESSAGE": "Drop din fil her for at uploade. Kun ZIP - Max. 2MB",
"EDITOR": "Editor",
"EDIT_PLUGIN": "Rediger plugin",
"FINISH": "Afslut",
"DESCRIPTION": "Beschreibung",
"DOWNLOAD_PLUGIN": "Plugin herunterladen",
"DROP_TO_UPLOAD": "Hochladen",
- "DROP_TO_UPLOAD_MESSAGE": "Legen Sie Ihre Datei zum Hochladen hier ab. Nur PLZ - Max. 4 MB",
+ "DROP_TO_UPLOAD_MESSAGE": "Legen Sie Ihre Datei zum Hochladen hier ab. Nur PLZ - Max. 2 MB",
"EDITOR": "Editor",
"EDIT_PLUGIN": "Plugin bearbeiten",
"FINISH": "Fertig",
"SAVE": "Save",
"INSTALLING": "Installing",
"DROP_TO_UPLOAD": "Drop To Upload",
- "DROP_TO_UPLOAD_MESSAGE": "Drop your file here to upload. Only ZIP - Max. 4MB",
+ "DROP_TO_UPLOAD_MESSAGE": "Drop your file here to upload. Only ZIP - Max. 2MB",
"UPLOAD_PLUGIN": "Upload plugin",
"UPLOADING": "Uploading",
"CREATED_AT": "Created at",
"DESCRIPTION": "Descripción",
"DOWNLOAD_PLUGIN": "Descargar plugin",
"DROP_TO_UPLOAD": "Suelta para subir",
- "DROP_TO_UPLOAD_MESSAGE": "Suelta tu archivo aquí para subirlo. Solo ZIP - Max. 4 MB",
+ "DROP_TO_UPLOAD_MESSAGE": "Suelta tu archivo aquí para subirlo. Solo ZIP - Max. 2 MB",
"EDITOR": "Editor",
"EDIT_PLUGIN": "Editar plugin",
"FINISH": "Terminar",
"SAVE": "Save",
"INSTALLING": "Installing",
"DROP_TO_UPLOAD": "Drop To Upload",
- "DROP_TO_UPLOAD_MESSAGE": "Drop your file here to upload. Only ZIP - Max. 4MB",
+ "DROP_TO_UPLOAD_MESSAGE": "Drop your file here to upload. Only ZIP - Max. 2MB",
"UPLOAD_PLUGIN": "Upload plugin",
"UPLOADING": "Uploading",
"CREATED_AT": "Created at",
"DESCRIPTION": "شرح",
"DOWNLOAD_PLUGIN": "دانلود پلاگین",
"DROP_TO_UPLOAD": "قطره برای آپلود",
- "DROP_TO_UPLOAD_MESSAGE": "فایل خود را اینجا بگذارید تا آپلود شود فقط ZIP - حداکثر. 4 مگابایت",
+ "DROP_TO_UPLOAD_MESSAGE": "فایل خود را اینجا بگذارید تا آپلود شود فقط ZIP - حداکثر. 2 مگابایت",
"EDITOR": "ویرایشگر",
"EDIT_PLUGIN": "ویرایش پلاگین",
"FINISH": "پایان دادن",
"DESCRIPTION": "Kuvaus",
"DOWNLOAD_PLUGIN": "Lataa laajennus",
"DROP_TO_UPLOAD": "Pudota lähetettäväksi",
- "DROP_TO_UPLOAD_MESSAGE": "Pudota tiedosto täällä lähetettäväksi. Vain ZIP - Max. 4 Mt",
+ "DROP_TO_UPLOAD_MESSAGE": "Pudota tiedosto täällä lähetettäväksi. Vain ZIP - Max. 2 Mt",
"EDITOR": "toimittaja",
"EDIT_PLUGIN": "Muokkaa lisäosaa",
"FINISH": "Suorittaa loppuun",
"DESCRIPTION": "La description",
"DOWNLOAD_PLUGIN": "Télécharger le plugin",
"DROP_TO_UPLOAD": "Drop To Upload",
- "DROP_TO_UPLOAD_MESSAGE": "Déposez votre fichier ici pour le télécharger. Seulement ZIP - Max. 4 Mo",
+ "DROP_TO_UPLOAD_MESSAGE": "Déposez votre fichier ici pour le télécharger. Seulement ZIP - Max. 2 Mo",
"EDITOR": "Éditeur",
"EDIT_PLUGIN": "Modifier le plugin",
"FINISH": "terminer",
"SAVE": "שמור",
"INSTALLING": "התקנה",
"DROP_TO_UPLOAD": "שחרר כדי להעלות",
- "DROP_TO_UPLOAD_MESSAGE": "כדי להעלות את הקובץ, שחרר אותו כאן. ZIP בלבד – מקס' 4MB",
+ "DROP_TO_UPLOAD_MESSAGE": "כדי להעלות את הקובץ, שחרר אותו כאן. ZIP בלבד – מקס' 2MB",
"UPLOAD_PLUGIN": "יישום Plug-in להעלאות",
"UPLOADING": "העלאה",
"CREATED_AT": "נוצר ב-",
"DESCRIPTION": "विवरण",
"DOWNLOAD_PLUGIN": "प्लगइन डाउनलोड करें",
"DROP_TO_UPLOAD": "अपलोड करने के लिए ड्रॉप",
- "DROP_TO_UPLOAD_MESSAGE": "अपलोड करने के लिए अपनी फाइल यहां ड्रॉप करें। केवल ज़िप - अधिकतम। 4 एमबी",
+ "DROP_TO_UPLOAD_MESSAGE": "अपलोड करने के लिए अपनी फाइल यहां ड्रॉप करें। केवल ज़िप - अधिकतम। 2 एमबी",
"EDITOR": "संपादक",
"EDIT_PLUGIN": "प्लगइन संपादित करें",
"FINISH": "समाप्त",
"DESCRIPTION": "Deskripsi",
"DOWNLOAD_PLUGIN": "Unduh plugin",
"DROP_TO_UPLOAD": "Jatuhkan Untuk Mengunggah",
- "DROP_TO_UPLOAD_MESSAGE": "Jatuhkan file Anda di sini untuk mengunggah. Hanya ZIP - Max. 4 MB",
+ "DROP_TO_UPLOAD_MESSAGE": "Jatuhkan file Anda di sini untuk mengunggah. Hanya ZIP - Max. 2 MB",
"EDITOR": "Editor",
"EDIT_PLUGIN": "Edit plugin",
"FINISH": "Selesai",
"SAVE": "Salva",
"INSTALLING": "Installazione in corso",
"DROP_TO_UPLOAD": "Trascina il file da caricare",
- "DROP_TO_UPLOAD_MESSAGE": "Trascina qui il tuo plugin da caricare. Solo ZIP - Max. 4MB",
+ "DROP_TO_UPLOAD_MESSAGE": "Trascina qui il tuo plugin da caricare. Solo ZIP - Max. 2MB",
"UPLOAD_PLUGIN": "Upload plugin",
"UPLOADING": "Upload in corso",
"CREATED_AT": "Creato il",
"DESCRIPTION": "説明",
"DOWNLOAD_PLUGIN": "プラグインをダウンロード",
"DROP_TO_UPLOAD": "アップロードするドロップ",
- "DROP_TO_UPLOAD_MESSAGE": "アップロードするファイルをここにドロップします。 ZIP - Max。 4MB",
+ "DROP_TO_UPLOAD_MESSAGE": "アップロードするファイルをここにドロップします。 ZIP - Max。 2MB",
"EDITOR": "編集者",
"EDIT_PLUGIN": "プラグインを編集",
"FINISH": "フィニッシュ",
"DESCRIPTION": "기술",
"DOWNLOAD_PLUGIN": "플러그인 다운로드",
"DROP_TO_UPLOAD": "올리기",
- "DROP_TO_UPLOAD_MESSAGE": "여기에 파일을 올려 업로드하십시오. ZIP - Max. 4MB",
+ "DROP_TO_UPLOAD_MESSAGE": "여기에 파일을 올려 업로드하십시오. ZIP - Max. 2MB",
"EDITOR": "편집자",
"EDIT_PLUGIN": "플러그인 편집",
"FINISH": "끝",
"SAVE": "Save",
"INSTALLING": "Installing",
"DROP_TO_UPLOAD": "Drop To Upload",
- "DROP_TO_UPLOAD_MESSAGE": "Drop your file here to upload. Only ZIP - Max. 4MB",
+ "DROP_TO_UPLOAD_MESSAGE": "Drop your file here to upload. Only ZIP - Max. 2MB",
"UPLOAD_PLUGIN": "Upload plugin",
"UPLOADING": "Uploading",
"CREATED_AT": "Created at",
"DESCRIPTION": "Apraksts",
"DOWNLOAD_PLUGIN": "Lejupielādēt spraudni",
"DROP_TO_UPLOAD": "Pārvelciet šeit, lai augšupielādētu",
- "DROP_TO_UPLOAD_MESSAGE": "Pārvelciet datni šeit, lai augšupielādētu Tikai<i> ZIP</i> – maks. 4 MB",
+ "DROP_TO_UPLOAD_MESSAGE": "Pārvelciet datni šeit, lai augšupielādētu Tikai<i> ZIP</i> – maks. 2 MB",
"EDITOR": "Redaktors",
"EDIT_PLUGIN": "Rediģēt spraudni",
"FINISH": "Pabeigt",
"DESCRIPTION": "Beschrijving",
"DOWNLOAD_PLUGIN": "Download plugin",
"DROP_TO_UPLOAD": "Drop To Upload",
- "DROP_TO_UPLOAD_MESSAGE": "Zet je bestand hier neer om te uploaden. Alleen ZIP - Max. 4MB",
+ "DROP_TO_UPLOAD_MESSAGE": "Zet je bestand hier neer om te uploaden. Alleen ZIP - Max. 2MB",
"EDITOR": "Editor",
"EDIT_PLUGIN": "Bewerk plugin",
"FINISH": "Af hebben",
"DESCRIPTION": "Beskrivelse",
"DOWNLOAD_PLUGIN": "Last ned plugin",
"DROP_TO_UPLOAD": "Drop til opplasting",
- "DROP_TO_UPLOAD_MESSAGE": "Slett filen din her for å laste opp. Kun ZIP - Maks. 4MB",
+ "DROP_TO_UPLOAD_MESSAGE": "Slett filen din her for å laste opp. Kun ZIP - Maks. 2MB",
"EDITOR": "Redaktør",
"EDIT_PLUGIN": "Rediger plugin",
"FINISH": "Bli ferdig",
"DESCRIPTION": "Opis",
"DOWNLOAD_PLUGIN": "Pobierz wtyczkę",
"DROP_TO_UPLOAD": "Upuść, aby przesłać",
- "DROP_TO_UPLOAD_MESSAGE": "Upuść swój plik tutaj, aby przesłać. Tylko ZIP - Max. 4 MB",
+ "DROP_TO_UPLOAD_MESSAGE": "Upuść swój plik tutaj, aby przesłać. Tylko ZIP - Max. 2 MB",
"EDITOR": "Redaktor",
"EDIT_PLUGIN": "Edytuj wtyczkę",
"FINISH": "koniec",
"SAVE": "Save",
"INSTALLING": "Installing",
"DROP_TO_UPLOAD": "Drop To Upload",
- "DROP_TO_UPLOAD_MESSAGE": "Drop your file here to upload. Only ZIP - Max. 4MB",
+ "DROP_TO_UPLOAD_MESSAGE": "Drop your file here to upload. Only ZIP - Max. 2MB",
"UPLOAD_PLUGIN": "Upload plugin",
"UPLOADING": "Uploading",
"CREATED_AT": "Created at",
"DESCRIPTION": "Descrição",
"DOWNLOAD_PLUGIN": "Download do plugin",
"DROP_TO_UPLOAD": "Drop To Upload",
- "DROP_TO_UPLOAD_MESSAGE": "Solte seu arquivo aqui para fazer o upload. Apenas ZIP - Máx. 4MB",
+ "DROP_TO_UPLOAD_MESSAGE": "Solte seu arquivo aqui para fazer o upload. Apenas ZIP - Máx. 2MB",
"EDITOR": "editor",
"EDIT_PLUGIN": "Editar plugin",
"FINISH": "Terminar",
"DESCRIPTION": "Описание",
"DOWNLOAD_PLUGIN": "Скачать плагин",
"DROP_TO_UPLOAD": "Загрузить",
- "DROP_TO_UPLOAD_MESSAGE": "Отбросьте свой файл здесь, чтобы загрузить его. Только ZIP - Макс. 4MB",
+ "DROP_TO_UPLOAD_MESSAGE": "Отбросьте свой файл здесь, чтобы загрузить его. Только ZIP - Макс. 2MB",
"EDITOR": "редактор",
"EDIT_PLUGIN": "Изменить плагин",
"FINISH": "Конец",
"DESCRIPTION": "Beskrivning",
"DOWNLOAD_PLUGIN": "Hämta plugin",
"DROP_TO_UPLOAD": "Släpp för att ladda upp",
- "DROP_TO_UPLOAD_MESSAGE": "Släpp din fil här för att ladda upp. Endast ZIP - Max. 4MB",
+ "DROP_TO_UPLOAD_MESSAGE": "Släpp din fil här för att ladda upp. Endast ZIP - Max. 2MB",
"EDITOR": "Redaktör",
"EDIT_PLUGIN": "Redigera plugin",
"FINISH": "Avsluta",
"DESCRIPTION": "Açıklama",
"DOWNLOAD_PLUGIN": "Eklentiyi indir",
"DROP_TO_UPLOAD": "Yüklenmeye Bırak",
- "DROP_TO_UPLOAD_MESSAGE": "Yüklemek için dosyanızı buraya bırakın. Sadece ZIP - Maks. 4MB",
+ "DROP_TO_UPLOAD_MESSAGE": "Yüklemek için dosyanızı buraya bırakın. Sadece ZIP - Maks. 2MB",
"EDITOR": "Editör",
"EDIT_PLUGIN": "Eklentiyi düzenle",
"FINISH": "Bitiş",
"DESCRIPTION": "描述",
"DOWNLOAD_PLUGIN": "下载插件",
"DROP_TO_UPLOAD": "删除上传",
- "DROP_TO_UPLOAD_MESSAGE": "将您的文件放在此处上传。只有ZIP - Max。 4MB",
+ "DROP_TO_UPLOAD_MESSAGE": "将您的文件放在此处上传。只有ZIP - Max。 2MB",
"EDITOR": "编辑",
"EDIT_PLUGIN": "编辑插件",
"FINISH": "完",
"DESCRIPTION": "描述",
"DOWNLOAD_PLUGIN": "下載插件",
"DROP_TO_UPLOAD": "刪除上傳",
- "DROP_TO_UPLOAD_MESSAGE": "將您的文件放在此處上傳。只有ZIP - Max。 4MB",
+ "DROP_TO_UPLOAD_MESSAGE": "將您的文件放在此處上傳。只有ZIP - Max。 2MB",
"EDITOR": "編輯",
"EDIT_PLUGIN": "編輯插件",
"FINISH": "完",
{
"OPENCHANNEL": {
"TEXT": "Text",
- "TIMES": "Zeitstempel",
- "EDIT_AUTOREPLY": "Automatische Antwort bearbeiten",
+ "TIMES": "Die Anzahl der Zeiten pro Interaktion",
+ "EDIT_AUTOREPLY": "Bearbeiten Sie automatische Antwort",
"AUTOREPLY": "Automatische Antwort",
"NAME": "Name",
- "OPENCHANNELQUEUES": "Warteschlangen offener Kanal",
- "SEARCH_FOR_ANYONE": "Suche",
+ "OPENCHANNELQUEUES": "Offener Kanal Warteschlangen",
+ "SEARCH_FOR_ANYONE": "Suche für Jedermann",
"ERRORS": {
- "TEXT_REQUIRED": "Feld \"Text\" ist erforderlich",
- "NAME_REQUIRED": "Name ist erforderlich",
- "AGENT_TIMEOUT_REQUIRED": "Agent Timeout ist erforderlich",
- "MOTIONADDRESS_REQUIRED": "Adresse ist erforderlich",
- "MOTIONADDRESS_MUST_VALID_URL": "Adresse ungültiges Format",
- "ACCEPTURL_MUST_VALID_URL": "URL ungültiges Format",
- "TIMEOUT_REQUIRED": "Timeout ist erforderlich",
- "REJECTURL_MUST_VALID_URL": "URL ungültiges Format",
- "CLOSEURL_MUST_VALID_URL": "URL ungültiges Format",
- "REPLYURI_REQUIRED": "Antwort-URL ungültiges Format",
- "REPLYURI_MUST_VALID_URL": "Antwort-URL ungültiges Format",
- "PRIORITY_REQUIRED": "Priorität ist erforderlich",
- "CONDITION_REQUIRED": "Bedingung ist erforderlich",
- "TRUEPRIORITY_REQUIRED": "Wahre Priorität ist erforderlich",
- "FALSEPRIORITY_REQUIRED": "Falsche Priorität ist erforderlich",
+ "TEXT_REQUIRED": "Das Feld \"Text\" ist erforderlich",
+ "NAME_REQUIRED": "Der Name ist erforderlich",
+ "AGENT_TIMEOUT_REQUIRED": "Der Agent Timeout ist erforderlich",
+ "MOTIONADDRESS_REQUIRED": "Die Adresse ist erforderlich",
+ "MOTIONADDRESS_MUST_VALID_URL": "Die Adresse muss in einem gültigen Format",
+ "ACCEPTURL_MUST_VALID_URL": "Die URL muss in einem gültigen Format",
+ "TIMEOUT_REQUIRED": "Der Timeout ist erforderlich",
+ "REJECTURL_MUST_VALID_URL": "Die URL muss in einem gültigen Format",
+ "CLOSEURL_MUST_VALID_URL": "Die URL muss in einem gültigen Format",
+ "REPLYURI_REQUIRED": "Die Antwort URL ist erforderlich",
+ "REPLYURI_MUST_VALID_URL": "Die Antwort URL muss im gültigen Format geschrieben werden",
+ "PRIORITY_REQUIRED": "Die Priorität ist erforderlich",
+ "CONDITION_REQUIRED": "Der Zustand ist erforderlich",
+ "TRUEPRIORITY_REQUIRED": "Die wahre Priorität ist erforderlich",
+ "FALSEPRIORITY_REQUIRED": "Die falsche Priorität ist erforderlich",
"AGENT_REQUIRED": "Pflichtfeld",
- "TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein als",
- "PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein als",
- "TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein als",
- "FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein als",
+ "TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer als oder gleich",
+ "PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer als oder gleich",
+ "TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer als oder gleich",
+ "FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer als oder gleich",
"DISPOSITION_REQUIRED": "Pflichtfeld",
"QUEUE_REQUIRED": "Pflichtfeld",
- "KEY_MAX_LENGTH": "Schlüssel darf eine maximale Länge haben von {{max}}",
- "TEXT_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}}",
+ "KEY_MAX_LENGTH": "Schlüssel muss eine maximale Länge von {{max}}",
+ "TEXT_MAX_LENGTH": "Der Wert muss eine maximale Länge von {{max}} haben",
"VALUE_REQUIRED": "Pflichtfeld",
"COMMAND_REQUIRED": "Pflichtfeld",
"LIST_REQUIRED": "Pflichtfeld",
"KEY_REQUIRED": "Pflichtfeld",
- "AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein als",
- "NAME_MUST_VALID_PATTERN": "Format ungültig",
- "TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
- "AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
- "WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein als",
- "WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
+ "AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
+ "NAME_MUST_VALID_PATTERN": "Falsches Format",
+ "TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
+ "AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
+ "WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
+ "WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
"WAITFORTHEASSIGNEDAGENT_REQUIRED": "Pflichtfeld",
"TAG_REQUIRED": "Pflichtfeld",
- "AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein als",
- "AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
+ "AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
+ "AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
"AGENTTRANSFERTIMEOUT_REQUIRED": "Pflichtfeld",
- "QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein als",
- "QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
+ "QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
+ "QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
"QUEUETRANSFERTIMEOUT_REQUIRED": "Pflichtfeld",
"MANDATORYDISPOSITIONPAUSEID_REQUIRED": "Pflichtfeld",
"ACCESSKEYID_REQUIRED": "Zugangsschlüssel-ID ist erforderlich",
- "BOTNAME_REQUIRED": "Bot-Name ist erforderlich",
- "SECRETACCESSKEY_REQUIRED": "Geheimer Schlüssel ist erforderlich",
+ "BOTNAME_REQUIRED": "Der Bot-Name ist erforderlich",
+ "SECRETACCESSKEY_REQUIRED": "Zugangsschlüssel geheim ist erforderlich",
"CLIENTEMAIL_REQUIRED": "Pflichtfeld",
"PRIVATEKEY_REQUIRED": "Pflichtfeld",
"PROJECTID_REQUIRED": "Pflichtfeld"
"GOTOIF": "Gotoif",
"NOOP": "Noop",
"QUEUE": "Warteschlange",
- "EDIT_AGENT": "Agenteb bearbeiten",
- "EDIT_GOTO": "Gehe zu bearbeiten",
- "EDIT_NOOP": "Noop bearbeiten",
- "EDIT_GOTOIF": "GoToIf bearbeiten",
+ "EDIT_AGENT": "Agent bearbeiten",
+ "EDIT_GOTO": "Bearbeiten Gehe zu",
+ "EDIT_NOOP": "Bearbeiten Noop",
+ "EDIT_GOTOIF": "Bearbeiten Gotoif",
"EDIT_QUEUE": "Warteschlange bearbeiten",
- "CONDITION": "Bedingung",
+ "CONDITION": "Zustand",
"TRUEPRIORITY": "Wahre Priorität",
"FALSEPRIORITY": "Falsche Priorität",
"VALUE": "Wert",
"PRIORITY": "Priorität",
"AGENT_TIMEOUT": "Agent Timeout",
"DESCRIPTION": "Beschreibung",
- "ADD_OPENCHANNELQUEUE": "Warteschlange offener Kanal hinzufügen",
- "EDIT_OPENCHANNELQUEUE": "Warteschlange offener Kanal bearbeiten",
- "DELETE_OPENCHANNELQUEUE": "Warteschlange offener Kanal löschen",
- "PENALTY": "Verzögerung",
+ "ADD_OPENCHANNELQUEUE": "Fügen Sie im Offenen Kanal Warteschlange",
+ "EDIT_OPENCHANNELQUEUE": "Offener Kanal Warteschlange bearbeiten",
+ "DELETE_OPENCHANNELQUEUE": "Löschen der Warteschlange im Offenen Kanal",
+ "PENALTY": "Strafe",
"TEAMADD_OPENCHANNELQUEUE": "Team zur Warteschlange hinzufügen",
- "AGENTADD_OPENCHANNELQUEUE": "Agenten zur Warteschlange hinzufügen",
+ "AGENTADD_OPENCHANNELQUEUE": "Agent zur Warteschlange hinzufügen",
"ALL_AGENTS": "Alle Agenten",
"SELECTED_AGENTS": "Ausgewählte Agenten",
"CREATED_AT": "Erstellt am",
"SAVE": "Speichern",
"SETTINGS": "Einstellungen",
"GENERAL": "Allgemein",
- "OPENCHANNELACCOUNTS": "Konten offener Kanal",
+ "OPENCHANNELACCOUNTS": "Offener Kanal Konten",
"MOTIONADDRESS": "Motion Adresse",
- "ADD_OPENCHANNELACCOUNT": "Konto offener Kanal hinzufügen",
- "EDIT_OPENCHANNELACCOUNT": "Konto offener Kanal bearbeiten",
- "DELETE_OPENCHANNELACCOUNT": "Konto offener Kanal löschen",
+ "ADD_OPENCHANNELACCOUNT": "Öffnen Sie den Channel Account hinzufügen",
+ "EDIT_OPENCHANNELACCOUNT": "Öffnen Sie den Channel Account bearbeiten",
+ "DELETE_OPENCHANNELACCOUNT": "Öffnen Sie den Channel Account löschen.",
"API": "API",
- "DISPOSITIONS": "Qualifizierungen",
+ "DISPOSITIONS": "Bestimmungen",
"WEBHOOKS": "WebHooks",
"ACTIONS": "Aktionen",
"LIST": "Liste",
"FIDELITY": "Treue",
"ACCEPT": "Akzeptieren",
- "ACCEPTMETHOD": "Methode akzeptieren",
+ "ACCEPTMETHOD": "Die Methode",
"ACCEPTURL": "URL akzeptieren",
"REJECT": "Ablehnen",
"REJECTMETHOD": "Methode ablehnen",
"REJECTURL": "URL ablehnen",
- "CLOSE": "Schließen",
- "CLOSEMETHOD": "Methode schließen",
- "CLOSEURL": "URL schließen",
- "SELECTED": "Ausgewählt",
+ "CLOSE": "In der Nähe",
+ "CLOSEMETHOD": "In der Nähe Methode",
+ "CLOSEURL": "Der URL",
+ "SELECTED": "Ausgewählte",
"SELECT_ALL": "Alle auswählen",
- "SELECT_NONE": "Nichts auswählen",
+ "SELECT_NONE": "Wählen Sie \"Keine\"",
"BACK": "Zurück",
"OPENCHANNEL": "Offener Kanal",
- "ID": "ID",
+ "ID": "Id",
"TIMEOUT": "Timeout",
- "OPENCHANNELDISPOSITIONS": "Qualifizierungen offener Kanal",
- "NO_OPENCHANNELDISPOSITION_AVAILABLE": "Keine Qualifizierungen verfügbar",
- "NEW_OPENCHANNELDISPOSITION": "Neue Qualifizierung",
- "ADD_OPENCHANNELDISPOSITION": "Qualifizierung offener Kanal hinzufügen",
- "EDIT_OPENCHANNELDISPOSITION": "Qualifizierung bearbeiten",
- "DELETE_OPENCHANNELDISPOSITION": "Qualifizierung löschen",
- "NEW_OPENCHANNELQUEUE": "Neue Warteschlange offener Kanal",
- "NEW_OPENCHANNELACCOUNT": "Neues Konto offener Kanal",
- "NO_AVAILABLE_INFO": "Keine Informationen verfügbar",
- "ALL_TEAMS": "Alle Teams",
+ "OPENCHANNELDISPOSITIONS": "Offener Kanal Verfügungen",
+ "NO_OPENCHANNELDISPOSITION_AVAILABLE": "Keine offenen Kanal Dispositionen verfügbar",
+ "NEW_OPENCHANNELDISPOSITION": "Neue Offene Kanal inspektion",
+ "ADD_OPENCHANNELDISPOSITION": "Fügen Sie im Offenen Kanal inspektion",
+ "EDIT_OPENCHANNELDISPOSITION": "Bearbeiten Sie im Offenen Kanal inspektion",
+ "DELETE_OPENCHANNELDISPOSITION": "Löschen Sie im Offenen Kanal inspektion",
+ "NEW_OPENCHANNELQUEUE": "Neue Offene Kanal Warteschlange",
+ "NEW_OPENCHANNELACCOUNT": "Neue Open Channel Account",
+ "NO_AVAILABLE_INFO": "Keine verfügbaren Info",
+ "ALL_TEAMS": "Alle Mannschaften",
"SELECTED_TEAMS": "Ausgewählte Teams",
"REPLYURI": "Antwort URL",
"RECEIVEURI": "Erhalten URL",
"HELP": {
- "RECEIVEURI": "Automatisch generierter API-String, um die Nachrichten über den offenen Kanal zu erhalten (POST-Methode). Zum Kopieren in die Zwischenablage klicken",
- "REPLYURI": "URL des offenen Kanals zum Senden und Empfangen von Nachrichten",
+ "RECEIVEURI": "Dies ist die automatisch generierte API-String müssen Sie die Nachrichten in Ihrem offenen Kanal zu erhalten von der externen Anwendung (POST-Methode verwendet werden muss). Drücken Sie die Zwischenablage, um Sie in die Zwischenablage zu kopieren.",
+ "REPLYURI": "Dies ist die URL der Offene Kanal wird beim Senden oder Beantworten von Nachrichten",
"NAME": "Nur Zahlen, Buchstaben und Sonderzeichen (._) werden unterstützt.",
"LIST": "Contact Manager Liste zu verknüpfen von Kontakten",
"TOKEN": "Fügen Sie diese Eigenschaft als Abfragezeichenfolge in Ihrer Web-Service-URL hinzu. Weitere Informationen finden Sie im Dokument doc <a target = \"_ blank\" href = \"https://wiki.xcallymotion.com/display/XMV/New Channels Configuration Steps",
- "MANDATORYDISPOSITION": "Qualifizierung erforderlich",
- "MANDATORYDISPOSITIONPAUSEID": "PausenID bei erforderlicher Qualifizierung",
- "WELCOMEMESSAGE": "Willkommensnachricht beim Eintreffen der ersten Anfrage"
+ "MANDATORYDISPOSITION": "Zwingende Disposition",
+ "MANDATORYDISPOSITIONPAUSEID": "Pause zur Verwendung, wenn die obligatorische Disposition aktiviert ist",
+ "WELCOMEMESSAGE": "Dies ist die erste Nachricht, die an das Schütz gesendet wird"
},
"PAGE": "Seite",
"ROWSPERPAGE": "Zeilen pro Seite",
- "OF": "von",
+ "OF": "Von",
"CONTACT": "Kontakt",
- "STARTEDAT": "Startdatum",
+ "STARTEDAT": "Gestartet am",
"STATUS": "Status",
"CLOSED": "Geschlossen",
- "OPENED": "Geöffnet",
+ "OPENED": "Öffnen",
"OPEN": "Öffnen",
"ACCOUNT": "Konto",
"INTERACTION": "Interaktion",
- "INTERACTIONS": "Interaktionen",
+ "INTERACTIONS": "Wechselwirkungen",
"ALL": "Alle",
- "SELECT_STATUS": "Status auswählen",
+ "SELECT_STATUS": "Wählen Sie einen Status",
"FILTER": "Filter",
"FILTERS": "Filter",
"CLOSEDAT": "Geschlossen",
- "DISPOSITION": "Qualifizierung",
- "NOTES": "Anmerkungen",
- "NO_INTERACTION_AVAILABLE": "Keine neuen Interaktionen verfügbar",
- "SELECT_ACCOUNT": "Konto auswählen",
+ "DISPOSITION": "Disposition",
+ "NOTES": "Hinweise",
+ "NO_INTERACTION_AVAILABLE": "Es sind keine Wechselwirkungen zur Verfügung",
+ "SELECT_ACCOUNT": "Wählen Sie ein Konto",
"GOTOP": "Gotop",
"EDIT_GOTOP": "Gotop bearbeiten",
- "EDIT_CLOSE": "Bearbeitung abschließen",
- "INFO": "Information",
+ "EDIT_CLOSE": "Bearbeiten Schließen",
+ "INFO": "Info",
"KEY": "Schlüssel",
"REALTIME": "Echtzeit",
"UNKNOWN": "Unbekannt",
- "UNREGISTERED": "Nicht registriert",
+ "UNREGISTERED": "Unregistrierte",
"UNAVAILABLE": "Nicht verfügbar",
- "NOT_INUSE": "Nicht in Verwendung",
+ "NOT_INUSE": "Nicht in Gebrauch",
"REACHABLE": "Erreichbar",
- "IN_USE": "In Verwendung",
+ "IN_USE": "Im Einsatz",
"AGENTS": "Agenten",
"QUEUES": "Warteschlangen",
- "FULLNAME": "Vollständiger Name",
- "INTERNAL": "Intern",
+ "FULLNAME": "Fullname",
+ "INTERNAL": "Interne",
"PHONE_STATE": "Telefonstatus",
"PHONE_STATUS": "Telefonstatus",
"PAUSE": "Pause",
"LOGOUT": "An-/Abmelden",
- "AGENTADD_QUEUE": "Agenten zur Warteschlange offener Kanal hinzufügen",
+ "AGENTADD_QUEUE": "Agent zu Offenen Kanal Warteschlange hinzufügen",
"UNPAUSE": "Pause beenden",
"DEFAULT_PAUSE": "Standard Pause",
"LOGGED_IN": "Angemeldet",
"PAUSED": "Angehalten",
"READY": "Bereit",
- "WAITING": "Wartezustand",
- "VOICE": "Anrufe",
+ "WAITING": "Warten",
+ "VOICE": "Voice",
"CHAT": "Chat",
"MAIL": "E-Mail",
"SMS": "SMS",
"FAX": "Fax",
- "AGENTSADD_QUEUE": "Agenten zur Warteschlange offener Kanal hinzufügen",
+ "AGENTSADD_QUEUE": "Agenten, die Offenen Kanal Warteschlange hinzufügen",
"NO_AGENT_ONLINE": "Kein Agent Online",
- "GOTOREALTIME_OPENCHANNELQUEUE": "Zum offener Kanal Echtzeitmonitoring",
- "PARTIALPAUSE": "Teilpause",
+ "GOTOREALTIME_OPENCHANNELQUEUE": "In Echtzeit, offenen Kanal Warteschlange",
+ "PARTIALPAUSE": "Lastschriftzahlung teilweise Pause",
"BUSY": "Besetzt",
"TIMER": "Timer",
"IDLE": "Leerlauf",
"CAPACITY": "Kapazität",
"TAGS": "Tags",
- "SPYINTERACTION": "Mithören",
- "INTERACTIONS_OPENCHANNELACCOUNT": "Zu Interaktionen gehen",
- "REFRESH_INTERACTIONS": "Interaktionen aktualisieren",
+ "SPYINTERACTION": "Spy",
+ "INTERACTIONS_OPENCHANNELACCOUNT": "Zu Wechselwirkungen gehen",
+ "REFRESH_INTERACTIONS": "Aktualisieren Interaktionen",
"DELETE": "Löschen",
- "NO_OPENCHANNELCANNEDANSWER_AVAILABLE": "Keine Textvorlagen verfügbar",
- "NEW_OPENCHANNELCANNEDANSWER": "Neue Textvorlage",
- "ADD_OPENCHANNELCANNEDANSWER": "Textvorlage hinzufügen",
- "EDIT_OPENCHANNELCANNEDANSWER": "Textvorlage bearbeiten",
- "DELETE_OPENCHANNELCANNEDANSWER": "Textvorlage löschen",
- "DELIVERYREPORTURL": "URL für Zustellungsbericht",
+ "NO_OPENCHANNELCANNEDANSWER_AVAILABLE": "Keine vordefinierten Antworten verfügbar",
+ "NEW_OPENCHANNELCANNEDANSWER": "Neue vordefinierte Antwort",
+ "ADD_OPENCHANNELCANNEDANSWER": "Vordefinierte Antwort hinzufügen",
+ "EDIT_OPENCHANNELCANNEDANSWER": "Vordefinierte Antwort bearbeiten",
+ "DELETE_OPENCHANNELCANNEDANSWER": "Vordefinierte Antwort löschen",
+ "DELIVERYREPORTURL": "Zustellungsbericht-URL",
"DELETE_INTERACTION": "Interaktion löschen",
- "COMMAND": "Eingabe",
+ "COMMAND": "Befehl",
"EDIT_SYSTEM": "System bearbeiten",
"SYSTEM": "System",
"VARIABLE": "Variable",
"NOTIFICATION": "Benachrichtigung",
- "NOTIFICATIONSHAKE": "Schütteln",
- "NOTIFICATIONSOUND": "Klingeln",
+ "NOTIFICATIONSHAKE": "Shake",
+ "NOTIFICATIONSOUND": "Klingen",
"NOTIFICATIONTEMPLATE": "Vorlage",
- "INSERT_MESSAGE_HERE": "Textnachricht hier eingeben",
+ "INSERT_MESSAGE_HERE": "Fügen Sie hier Ihre Textnachricht ein",
"WAITFORTHEASSIGNEDAGENT": "Warte auf den zugewiesenen Agenten",
- "ADVANCED": "Erweitert",
+ "ADVANCED": "Fortgeschritten",
"PROXY": "Proxy",
- "TOKEN": "Token",
+ "TOKEN": "Zeichen",
"EDIT_TAG": "Tag bearbeiten",
- "TAG": "Tag",
- "AGENTADD_OPENCHANNELACCOUNT": "Konto offener Kanal hinzufügen",
- "CANNED_ANSWER_NOT_FOUND": "Keine Textvorlagen gefunden",
- "CANNED_ANSWER_SEARCH": "Nach Textvorlagen suchen",
- "MAPKEY": "MAP-KEY",
+ "TAG": "Etikett",
+ "AGENTADD_OPENCHANNELACCOUNT": "Fügen Sie Agent zu Openchannel Account hinzu",
+ "CANNED_ANSWER_NOT_FOUND": "Es wurden keine vordefinierten Antworten gefunden",
+ "CANNED_ANSWER_SEARCH": "Geben Sie einen Text ein, um eine vordefinierte Antwort zu suchen",
+ "MAPKEY": "Karten Schlüssel",
"SEND": "Senden",
- "TO": "An",
- "AGENTTRANSFER": "Weiterleitung Agent",
+ "TO": "Zu",
+ "AGENTTRANSFER": "Agent Transfer",
"AGENTTRANSFERTIMEOUT": "Zeitüberschreitung für Agententransfer",
- "QUEUETRANSFER": "Weiterleitung Warteschlange",
- "QUEUETRANSFERTIMEOUT": "Zeitüberschreitung für Warteschlangentransfer",
- "TRANSFER": "Weiterleitung",
- "CANNEDANSWERS": "Textvorlagen",
+ "QUEUETRANSFER": "Warteschlangenübertragung",
+ "QUEUETRANSFERTIMEOUT": "Warteschlangenübertragungs-Timeout",
+ "TRANSFER": "Transfer",
+ "CANNEDANSWERS": "Vordefinierte Antworten",
"DOWNLOAD_INTERACTION": "Herunterladen",
- "OPENCHANNELCANNEDANSWERS": "Textvorlagen offener Kanal",
- "LOGIN_TIME": "Zeit angemeldet",
- "PAUSE_TIME": "Zeit in Pause",
- "TEAMS_ASSOCIATION": "Teamzuweisung",
- "MANDATORYDISPOSITION": "Qualifizierung erforderlich",
- "MANDATORYDISPOSITIONPAUSEID": "Qualifizierung pausieren, sofern sonst erforderlich",
- "DIALOGFLOW": "DialogFlow",
- "EDIT_DIALOGFLOW": "DialogFlow bearbeiten",
+ "OPENCHANNELCANNEDANSWERS": "Vordefinierte Antworten",
+ "LOGIN_TIME": "Login-Zeit",
+ "PAUSE_TIME": "Pausenzeit",
+ "TEAMS_ASSOCIATION": "Vereinigung der Mannschaften",
+ "MANDATORYDISPOSITION": "Zwingende Disposition",
+ "MANDATORYDISPOSITIONPAUSEID": "Pause zur Verwendung, wenn die obligatorische Disposition aktiviert ist",
+ "DIALOGFLOW": "Dialogablauf",
+ "EDIT_DIALOGFLOW": "Bearbeiten Sie die Dialogflow-Konfiguration",
"LANGUAGE": "Sprache",
- "WELCOMEMESSAGE": "Willkommensnachricht",
+ "WELCOMEMESSAGE": "Willkommen Messsage",
"ACCESSKEYID": "Zugangsschlüssel-ID",
"AMAZONLEX": "AmazonLex",
- "BOTNAME": "Botname",
- "EDIT_AMAZONLEX": "Lex-Konfiguration bearbeiten",
- "LEXREGION": "Lex Region",
- "SECRETACCESSKEY": "Geheimer Schlüssel",
- "TOOLTIP_SCREENRECORDING_OFF": "Bildschirmaufnahme angehalten",
+ "BOTNAME": "Bot-Name",
+ "EDIT_AMAZONLEX": "Bearbeiten Sie die Lex-Konfiguration",
+ "LEXREGION": "Region",
+ "SECRETACCESSKEY": "Zugangsschlüssel geheim",
+ "TOOLTIP_SCREENRECORDING_OFF": "Bildschirmaufnahme verfügbar",
"TOOLTIP_SCREENRECORDING_ON": "Bildschirmaufnahme läuft",
- "DOWNLOAD_WITHOUT_ATTACHMENTS": "Herunterlagen ohne Anhänge",
- "DOWNLOAD_WITH_ATTACHMENTS": "Herunterlagen inkl. Anhänge",
+ "DOWNLOAD_WITHOUT_ATTACHMENTS": "Download ohne Anhänge",
+ "DOWNLOAD_WITH_ATTACHMENTS": "Mit Anhängen herunterladen",
"LASTMESSAGE": "Letzte Nachricht",
- "CLIENTEMAIL": "Kunden E-Mail",
+ "CLIENTEMAIL": "Kunden-E-Mail",
"DIALOGFLOWV2": "Dialogflow V2",
"EDIT_DIALOGFLOWV2": "Dialogflow V2 bearbeiten",
- "PRIVATEKEY": "Privater Schlüssel",
+ "PRIVATEKEY": "Privat Schlüssel",
"PROJECTID": "Projekt-ID",
"ADD_NOTE": "Notiz hinzufügen",
- "NOTE": "Notiz"
+ "NOTE": "Hinweis"
}
}
{
"STAFF": {
"CONTEXT": "Kontext",
- "RINGINUSE": "Innerhalb Verteilungsgrupppe",
+ "RINGINUSE": "Ring im Einsatz",
"USERS": "Benutzer",
"AGENTS": "Agenten",
- "TOGGLE_SIDENAV": "Navigationsleiste umschalten",
- "SEARCH_FOR_ANYONE": "Suche",
+ "TOGGLE_SIDENAV": "Um sidenav",
+ "SEARCH_FOR_ANYONE": "Suche für Jedermann",
"BACK": "Zurück",
- "MULTI_SELECT_TOGGLE": "Mehrfachauswahl ja/nein",
- "SELECT_ALL": "Alles auswählen",
- "SELECT_NONE": "Nichts auswählen",
- "SELECTED": "Ausgewählt",
+ "MULTI_SELECT_TOGGLE": "Wählen Sie toggle multi",
+ "SELECT_ALL": "Alle auswählen",
+ "SELECT_NONE": "Wählen Sie \"Keine\"",
+ "SELECTED": "Ausgewählte",
"DELETE_SELECTED": "Auswahl löschen",
"EXPORT_SELECTED": "Auswahl exportieren",
"ALL_USERS": "Alle Benutzer",
"ALL_AGENTS": "Alle Agenten",
"SORT": "Sortieren",
"NAME": "Name",
- "FULLNAME": "Vollständiger Name",
+ "FULLNAME": "Voller Name",
"A_TO_Z": "(A bis Z)",
"Z_TO_A": "(Z bis A)",
"MORE": "Mehr",
"DELETE_USER": "Benutzer löschen",
"EDIT_USER": "Benutzer bearbeiten",
- "DELETE_AGENT": "Agenten löschen",
- "EDIT_AGENT": "Agenten bearbeiten",
+ "DELETE_AGENT": "Bedienplatz löschen",
+ "EDIT_AGENT": "Agent bearbeiten",
"DELETE": "Löschen",
"SAVE": "Speichern",
"ADD_USER": "Benutzer hinzufügen",
"ADD_AGENT": "AGENT HINZUFÜGEN",
- "NO_RESULTS": "Keine Ergebnisse",
+ "NO_RESULTS": "Keine Ergebnisse.",
"CLOSE_DIALOG": "Dialog schließen",
- "NAME_REQUIRED": "Name (erforderlich)",
+ "NAME_REQUIRED": "Name (erforderlich).",
"USERNAME": "Benutzername",
"SHOW_ALL_FIELDS": "Alle Felder anzeigen",
"PHONE_NUMBER": "Telefonnummer",
"EMAIL": "E-Mail",
"PASSWORD": "Passwort",
"ERRORS": {
- "FULLNAME_REQUIRED": "Vollständiger Name ist erforderlich",
- "USERNAME_REQUIRED": "Benutzername ist erforderlich",
- "EMAIL_REQUIRED": "E-Mail ist erforderlich",
- "PASSWORD_REQUIRED": "Passwort ist erforderlich",
- "CONFIRM_NOT_MATCH": "Die Passwörter stimmen nicht überein",
- "EMAIL_MUST_VALID": "E-Mail Format ungültig",
- "ACCOUNTNAME_REQUIRED": "Konto ist erforderlich",
- "NAME_REQUIRED": "Name ist erforderlich",
- "HOST_REQUIRED": "Host ist erforderlich",
- "CHATCAPACITY_REQUIRED": "Kapazität Chat ist erforderlich",
- "MAILCAPACITY_REQUIRED": "Kapazität E-Msil ist erforderlich",
- "FAXCAPACITY_REQUIRED": "Kapazität Fax ist erforderlich",
- "SMSCAPACITY_REQUIRED": "Kapazität SMS ist erforderlich",
- "OPENCHANNELCAPACITY_REQUIRED": "Kapazität offener Kanal ist erforderlich",
- "SIPEXPIRES_REQUIRED": "SIP-Ablaufdatum ist erforderlich",
- "SIPPORT_REQUIRED": "SIP-Port ist erforderlich",
- "UNCONDITIONALNUMBER_REQUIRED": "Zielrufnummer ist erforderlich",
- "NOREPLYNUMBER_REQUIRED": "Nummer bei keiner Antwort ist erforderlich",
- "BUSYNUMBER_REQUIRED": "Nummer bei Besetzt ist erforderlich",
- "USERNAME_MUST_VALID_PATTERN": "Benutzername ungültig {{regex}}.",
- "REMOTECONTROLPORT_REQUIRED": "Port für Remote ist erforderlich",
- "CHATCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Kapazität Chat muss größer oder gleich sein als",
- "MAILCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Kapazität E-Mail muss größer oder gleich sein als",
- "FAXCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Kapazität Fax muss größer oder gleich sein als",
- "OPENCHANNELCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Kapazität offener Kanal muss größer oder gleich sein als",
- "AUTOANSWERDELAY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
+ "FULLNAME_REQUIRED": "Der Fullname ist erforderlich",
+ "USERNAME_REQUIRED": "Der Benutzername ist erforderlich",
+ "EMAIL_REQUIRED": "Die E-Mail ist erforderlich",
+ "PASSWORD_REQUIRED": "Das Kennwort ist erforderlich",
+ "CONFIRM_NOT_MATCH": "Die Kennwörter stimmen nicht überein.",
+ "EMAIL_MUST_VALID": "Die e-Mail muss in einem gültigen Format",
+ "ACCOUNTNAME_REQUIRED": "Der Account ist erforderlich.",
+ "NAME_REQUIRED": "Der Name ist erforderlich",
+ "HOST_REQUIRED": "Der Host wird benötigt",
+ "CHATCAPACITY_REQUIRED": "Die Kapazität ist erforderlich",
+ "MAILCAPACITY_REQUIRED": "Die E-Mail Kapazität erforderlich ist",
+ "FAXCAPACITY_REQUIRED": "Die Kapazität ist erforderlich",
+ "SMSCAPACITY_REQUIRED": "Die SMS-Kapazität erforderlich ist",
+ "OPENCHANNELCAPACITY_REQUIRED": "Der Offene Kanal Kapazität erforderlich ist",
+ "SIPEXPIRES_REQUIRED": "Der SIP-Ablauf ist erforderlich",
+ "SIPPORT_REQUIRED": "Die SIP-Port erforderlich.",
+ "UNCONDITIONALNUMBER_REQUIRED": "Die Zielrufnummer ist erforderlich",
+ "NOREPLYNUMBER_REQUIRED": "Die Nummer ist keine Antwort erforderlich",
+ "BUSYNUMBER_REQUIRED": "Die besetzt ist erforderlich",
+ "USERNAME_MUST_VALID_PATTERN": "Der Benutzername muss gültige {{regex}}.",
+ "REMOTECONTROLPORT_REQUIRED": "Die Fernbedienung Anschluss erforderlich",
+ "CHATCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Chat Kapazität muss größer als oder gleich",
+ "MAILCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Die E-Mail Kapazität muss größer als oder gleich",
+ "FAXCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Das Fax Kapazität muss größer als oder gleich",
+ "OPENCHANNELCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der offene Kanal Kapazität muss größer als oder gleich",
+ "AUTOANSWERDELAY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer als oder gleich",
"AUTOANSWERDELAY_REQUIRED": "Pflichtfeld",
"MONITOREXTENSION_REQUIRED": "Pflichtfeld",
"ENCRYPTION": "SRTP (Secure Realtime Protocol) Verschlüsselung",
"DTLSCERTFILE_REQUIRED": "Pflichtfeld",
"DTLSPRIVATEKEY_REQUIRED": "Pflichtfeld",
- "SECURE_PASSWORD_PATTERN": "Das Passwort muss mindestens 8 Zeichen lang sein und 1 Kleinbuchstaben, 1 Großbuchstaben, 1 Zahl und 1 Sonderzeichen enthalten",
+ "SECURE_PASSWORD_PATTERN": "Das Passwort muss mindestens 8 Zeichen lang sein und 1 Kleinbuchstabe, 1 Großbuchstabe, 1 Zahl und 1 Sonderzeichen haben ~! @",
"ALLOWCODECS_REQUIRED": "Pflichtfeld",
"CRUDPERMISSIONS_REQUIRED": "Pflichtfeld",
"USERPROFILE_REQUIRED": "Pflichtfeld",
- "PASSWORD_OLDPASSWORD_MATCH": "Neues und altes Passwort dürfen nicht gleich sein",
+ "PASSWORD_OLDPASSWORD_MATCH": "Das neue Passwort muss sich vom vorherigen Passwort unterscheiden",
"CONFIRM_REQUIRED": "Pflichtfeld",
"WHATSAPPCAPACITY_REQUIRED": "Pflichtfeld"
},
"ACCOUNT": "Konto",
- "VOICE": "Anrufe",
+ "VOICE": "Voice",
"CREATED_AT": "Erstellt am",
"ROLE": "Rolle",
- "PERSONAL_INFO": "Persönliche Informationen",
+ "PERSONAL_INFO": "Persönliche Infos",
"DESCRIPTION": "Beschreibung",
- "CHANGE_AVATAR": "Avatar ändern",
+ "CHANGE_AVATAR": "Avatar ändern.",
"GENERAL": "Allgemein",
- "INTERNAL": "Intern",
- "TRANSPORT": "Transport",
+ "INTERNAL": "Interne",
+ "TRANSPORT": "Verkehr",
"ALLOWCODECS": "Codecs erlaubt",
"HELP": {
"ALLOWCODECS": "Erlaubt Codecs in der Reihenfolge ihrer Präferenz",
"TRANSPORT": "Festlegen der Standardeinstellungen für Transporte. Die Reihenfolge bestimmt den primären Standard.",
- "HOST": "Wie finden Sie die Client-IP oder den Host-Namen um das Telefon zu registrieren, verwenden Sie das Schlüsselwort Dynamic anstelle von Host-IP.",
- "NAT": "Ändert das Verhalten von Sternchen für Clients hinter einer Firewall. Wenn der Komma-getrennten Optionen ist \"Nein\", Asterisk ignoriert alle anderen Einstellungen und die nat=No.",
- "SIPEXPIRES": "Standardeinstellung: 160",
+ "HOST": "Wie finden Sie die Client-IP oder den Host-Namen. Wenn Sie möchten, dass das Telefon zu registrieren, verwenden Sie das Schlüsselwort Dynamic anstelle von Host-IP.",
+ "NAT": "Ändert das Verhalten von Sternchen für Clients hinter einer Firewall.Wenn der Komma-getrennten Optionen ist \"Nein\", Asterisk ignoriert alle anderen Einstellungen und die nat=No.",
+ "SIPEXPIRES": "Standardeinstellung: 120",
"SIPPORT": "Standardeinstellung: 5160",
- "TYPE": "Legt das SIP-Rolle innerhalb der Sternchen. User: eingehende Authentifizierung - Peer: für ausgehende Anrufe - Freund: Deckt beide Eigenschaften",
- "CHATCAPACITY": "0 für unbegrenzt",
- "MAILCAPACITY": "0 für unbegrenzt",
- "FAXCAPACITY": "0 für unbegrenzt",
- "SMSCAPACITY": "0 für unbegrenzt",
- "OPENCHANNELCAPACITY": "0 für unbegrenzt",
- "CALLGROUP": "Anrufgruppe",
- "PICKUPGROUP": "Übernahmegruppe",
+ "TYPE": "Legt das SIP-Rolle innerhalb der Sternchen. User: Wird verwendet, um die Authentifizierung für eingehende - Peer: für ausgehende Anrufe - Freund: Deckt sowohl die Eigenschaften der oben genannten.",
+ "CHATCAPACITY": "Null bedeutet unbegrenzt.",
+ "MAILCAPACITY": "Null bedeutet unbegrenzt.",
+ "FAXCAPACITY": "Null bedeutet unbegrenzt.",
+ "SMSCAPACITY": "Null bedeutet unbegrenzt.",
+ "OPENCHANNELCAPACITY": "Null bedeutet unbegrenzt.",
+ "CALLGROUP": "Legt der Agent callgroup",
+ "PICKUPGROUP": "Definiert die Gruppen in denen der Agent Anrufe annehmen können",
"USERNAME": "Nur Zahlen, Buchstaben und Sonderzeichen (._) werden unterstützt.",
"ENCRYPTION": "SRTP (Secure Realtime Protocol) Verschlüsselung",
"LAST_PASSWORD_RESET_AT": "Letztes Datum und Uhrzeit, zu der das Passwort geändert wurde. Wenn die Allgemeinen Einstellungen für Secure Suite aktiviert sind, läuft das Passwort nach 90 Tagen ab.",
"DTLSCERTFILE": "Verknüpfen Sie mit dem gültigen TLS-Zertifikat (.crt-Datei). Standardwert: '/etc/pki/tls/certs/motion.crt'.",
"DTLSPRIVATEKEY": "Verknüpfen Sie mit dem privaten Schlüssel des Zertifikats (.key-Datei). Standardwert: '/etc/pki/tls/private/motion.key'.",
"SAVE_PERMISSIONS": "Jeder Abschnitt, der ausstehende Änderungen enthält, wird gespeichert",
- "CUSTOM_DASHBOARDS_PERMISSIONS": "Berechtigungen für benutzerdefinierte Dashboards werden im Werkzeuge-Modul verwaltet",
+ "CUSTOM_DASHBOARDS_PERMISSIONS": "Berechtigungen für benutzerdefinierte Dashboards werden im Modul Tools verwaltet",
"APIKEY": "Verwenden Sie die Schaltfläche \"API-Schlüsselmanager\" in der Symbolleiste, um diesen Schlüssel zu verwalten",
- "ENABLEAUTOMATICSCREENRECORDING": "Funktionalität ist nur für Sprachkanäle verfügbar",
- "BLOCKED": "Zugriff sperren/entsperren",
- "DISABLED": "Auswählen zum Aktivieren",
- "WHATSAPPCAPACITY": "Maximale Anzahl gleichzeitiger Whatsapp-Interaktionen pro Agent (0 = unbegrenzt)",
+ "ENABLEAUTOMATICSCREENRECORDING": "Die Funktionalität ist nur für Sprachkanäle verfügbar",
+ "BLOCKED": "Zugriff sperren / entsperren",
+ "DISABLED": "Zum Deaktivieren auswählen / Zum Reaktivieren deaktivieren",
+ "WHATSAPPCAPACITY": "Maximale Anzahl gleichzeitiger Kanalinteraktionen pro Agent (0 = unbegrenzt)",
"MASK_SENSITIVE_DATA": "Maskieren Sie vertrauliche Daten in der gesamten Anwendung (z. B. Telefonnummern und E-Mail-Adressen).",
"WSS_PORT": "Standard: 8089"
},
- "NEW_PASSWORD": "Neues Passwort",
+ "NEW_PASSWORD": "Neues Kennwort",
"CONFIRM_PASSWORD": "Passwort bestätigen",
"CHANGE_PASSWORD": "Passwort ändern",
- "CHANGEPASSWORD_AGENT": "Agent",
- "CHANGEPASSWORD_USER": "Nutzer",
- "CHANGEPASSWORD_TELEPHONE": "Telefon",
- "LOGININPAUSE": "Pause nach Anmelden",
+ "CHANGEPASSWORD_AGENT": "Passwort ändern",
+ "CHANGEPASSWORD_USER": "Passwort ändern",
+ "CHANGEPASSWORD_TELEPHONE": "Passwort ändern",
+ "LOGININPAUSE": "Geben Sie Ihren Benutzernamen und Ihr Passwort In der Pause",
"HOST": "Host",
"NAT": "NAT",
- "CHANSPY": "Listen-In",
+ "CHANSPY": "ChanSpy",
"OTHER_CHANNELS": "Andere Kanäle",
- "CHATCAPACITY": "Kapazität Chats",
- "MAILCAPACITY": "Kapazität E-Mail",
- "FAXCAPACITY": "Kapazität Fax",
- "SMSCAPACITY": "Kapazität SMSW",
- "OPENCHANNELCAPACITY": "Kapazität offener Kanal",
+ "CHATCAPACITY": "Chat Kapazität",
+ "MAILCAPACITY": "E-Kapazität",
+ "FAXCAPACITY": "Fax Kapazität",
+ "SMSCAPACITY": "Sms-Kapazität",
+ "OPENCHANNELCAPACITY": "Offener Kanal Kapazität",
"MOTIONBAR": "Motion Bar",
"SETTINGS": "Einstellungen",
- "AUTOANSWER": "Auto-Antwort",
+ "AUTOANSWER": "\"Autom. Antwort\"",
"ENABLESETTINGS": "Einstellungen aktivieren",
"CALL_FORWARDING": "Anrufweiterleitung",
- "UNCONDITIONAL": "Generell",
- "UNCONDITIONALNUMBER": "Nummer Weiterleitung generell",
- "NOREPLY": "Bei keiner Antwort",
- "NOREPLYNUMBER": "Nummer Weiterleitung keine Antwort",
- "BUSY": "Bei Besetzt",
- "BUSYNUMBER": "Nummer Weiterleitung Besetzt",
- "REMOTE_CONTROL": "Remote-Nebenstelle",
- "REMOTECONTROL": "Remote-Nebenstelle",
- "REMOTECONTROLPORT": "Port Remote-Nebenstelle",
+ "UNCONDITIONAL": "Unbedingte",
+ "UNCONDITIONALNUMBER": "Uneingeschränkte Anzahl",
+ "NOREPLY": "Keine Antwort",
+ "NOREPLYNUMBER": "\"Keine Antwort\"-Nummer",
+ "BUSY": "Besetzt",
+ "BUSYNUMBER": "Nummer besetzt",
+ "REMOTE_CONTROL": "Fernbedienung",
+ "REMOTECONTROL": "Fernbedienung",
+ "REMOTECONTROLPORT": "Fernbedienung",
"SIP": "SIP",
- "SIPEXPIRES": "SIP-Ablaufdatum",
+ "SIPEXPIRES": "SIP läuft [sec]",
"SIPPORT": "SIP-Port",
- "PENALTY": "Verzögerung",
+ "PENALTY": "Strafe",
"ACCOUNTNAME": "Account Name",
"ADD_TELEPHONE": "Telefon hinzufügen",
"EDIT_TELEPHONE": "Telefon bearbeiten",
"DELETE_TELEPHONE": "Telefon löschen",
"TEAMS": "Teams",
"DELETE_TEAM": "Team löschen",
- "AGENTADD_TEAM": "Agenten zu einem Team hinzufügen",
- "EDIT_TEAM": "Team bearbeiten",
+ "AGENTADD_TEAM": "Hinzufügen von Agenten zu einer Gruppe",
+ "EDIT_TEAM": "Team bearbeiten.",
"TYPE": "Typ",
- "TELEPHONES": "Telefonnummern",
- "CALLERID": "Anrufer-ID",
- "ENABLERECORDING": "Aufzeichnung aktiv",
+ "TELEPHONES": "Telefone",
+ "CALLERID": "Die Anrufer-ID",
+ "ENABLERECORDING": "Aktivieren der Aufzeichnung",
"STAFF": "Personal",
- "ID": "ID",
+ "ID": "Id",
"NEW_USER": "Neuer Benutzer",
"NEW_AGENT": "Neuer Agent",
"NEW_TELEPHONE": "Neues Telefon",
"NEW_TEAM": "Neues Team",
"ADD_TEAM": "Team hinzufügen",
- "JOIN_QUEUE": "In Warteschlange beitreten",
+ "JOIN_QUEUE": "Melden Sie Warteschlange",
"CAPACITY": "Kapazität",
"AUTOINTERNAL": "Interne Nummer automatisch generieren",
- "ADD_AGENT_TO_TEAM": "Agenten zum Team hinzufügen",
- "TEAMADD_AGENT": "Zum Team hinzufügen",
- "NO_AVAILABLE_INFO": "Keine Informationen verfügbar",
+ "ADD_AGENT_TO_TEAM": "Hinzufügen von Agenten zu einer Gruppe",
+ "TEAMADD_AGENT": "Agent zu Gruppe hinzufügen",
+ "NO_AVAILABLE_INFO": "Keine verfügbaren Info",
"PERMISSIONS": "Berechtigungen",
- "ADD_AGENT_TO_QUEUE": "Agenten zur Warteschlange hinzufügen",
+ "ADD_AGENT_TO_QUEUE": "Agent zur Warteschlange hinzufügen",
"ALL_MODULES_AVAILABLE": "Alle Module verfügbar",
- "CALLGROUP": "Gruppenanruf",
+ "CALLGROUP": "Gruppenruf",
"PICKUPGROUP": "Übernahmegruppe",
- "QUEUEADD_AGENT_VOICE_OUTBOUND": "Agenten hinzufügen - ausgehende Anrufe",
- "QUEUEADD_AGENT_VOICE_INBOUND": "Agenten hinzufügen - eingehende Anrufe",
- "QUEUEADD_AGENT_CHAT_INBOUND": "Agenten hinzufügen - Chat-Warteschlangen",
- "QUEUEADD_AGENT_MAIL_INBOUND": "Agenten hinzufügen - E-Mail-Warteschlangen",
- "QUEUEADD_AGENT_SMS_INBOUND": "Agenten hinzufügen - SMS-Warteschlangen",
- "QUEUEADD_AGENT_OPENCHANNEL_INBOUND": "Agenten hinzufügen - offener Kanal-Warteschlangen",
- "QUEUEADD_AGENT_FAX_INBOUND": "Agenten hinzufügen - Fax-Warteschlangen",
- "QUEUEADD_USER_VOICE_INBOUND": "Nutzer hinzufügen - eingehende Anrufe",
- "QUEUEADD_USER_CHAT_INBOUND": "Nutzer hinzufügen - eingehende Chats",
- "QUEUEADD_USER_MAIL_INBOUND": "Nutzer hinzufügen - eingehende E-Mails",
- "QUEUEADD_USER_SMS_INBOUND": "Nutzer hinzufügen - eingehende SMS",
- "QUEUEADD_USER_OPENCHANNEL_INBOUND": "Nutzer hinzufügen - eingehender offener Kanal",
- "QUEUEADD_USER_FAX_INBOUND": "Nutzer hinzufügen - eingehende Faxe",
- "ALL_TEAMS": "Alle Teams",
+ "QUEUEADD_AGENT_VOICE_OUTBOUND": "Agent in der Warteschlange Kampagnen hinzufügen",
+ "QUEUEADD_AGENT_VOICE_INBOUND": "Agent Voice Warteschlangen hinzufügen",
+ "QUEUEADD_AGENT_CHAT_INBOUND": "Agent zu chatten Warteschlangen hinzufügen",
+ "QUEUEADD_AGENT_MAIL_INBOUND": "Agent Mail Warteschlangen hinzufügen",
+ "QUEUEADD_AGENT_SMS_INBOUND": "Agent sms-Warteschlangen hinzufügen",
+ "QUEUEADD_AGENT_OPENCHANNEL_INBOUND": "Agent zu offenen Kanal Warteschlangen hinzufügen",
+ "QUEUEADD_AGENT_FAX_INBOUND": "Agent fax Warteschlangen hinzufügen",
+ "QUEUEADD_USER_VOICE_INBOUND": "Benutzer stimme Warteschlangen hinzufügen",
+ "QUEUEADD_USER_CHAT_INBOUND": "Benutzer zu chatten Warteschlangen hinzufügen",
+ "QUEUEADD_USER_MAIL_INBOUND": "Benutzer Mail Warteschlangen hinzufügen",
+ "QUEUEADD_USER_SMS_INBOUND": "Benutzer von SMS-Warteschlangen hinzufügen",
+ "QUEUEADD_USER_OPENCHANNEL_INBOUND": "Benutzer zum offenen Kanal Warteschlangen hinzufügen",
+ "QUEUEADD_USER_FAX_INBOUND": "Benutzer fax Warteschlangen hinzufügen",
+ "ALL_TEAMS": "Alle Mannschaften",
"SELECTED_TEAMS": "Ausgewählte Teams",
"SELECTED_AGENTS": "Ausgewählte Agenten",
- "ALL_QUEUES_VOICE_OUTBOUND": "Alle Warteschlangen - ausgehende Anrufe",
- "SELECTED_QUEUES_VOICE_OUTBOUND": "Gewählte Warteschlangen - ausgehende Anrufe",
- "ALL_QUEUES_VOICE_INBOUND": "Alle Warteschlangen - eingehende Anrufe",
- "SELECTED_QUEUES_VOICE_INBOUND": "Ausgewählte Warteschlangen - eingehende Anrufe",
- "ALL_QUEUES_CHAT_INBOUND": "Alle Warteschlangen - Chat",
- "SELECTED_QUEUES_CHAT_INBOUND": "Ausgewählte Warteschlangen - Chat",
- "ALL_QUEUES_MAIL_INBOUND": "Alle Warteschlangen - E-Mail",
- "SELECTED_QUEUES_MAIL_INBOUND": "Ausgewählte Warteschlangen - E-Mail",
- "ALL_QUEUES_SMS_INBOUND": "Alle Warteschlangen - SMS",
- "SELECTED_QUEUES_SMS_INBOUND": "Ausgewählte Warteschlangen - SMS",
- "ALL_QUEUES_OPENCHANNEL_INBOUND": "Alle Warteschlangen - offener Kanal",
- "SELECTED_QUEUES_OPENCHANNEL_INBOUND": "Ausgewählte Warteschlangen - offener Kanal",
- "ALL_QUEUES_FAX_INBOUND": "Alle Warteschlangen - Fax",
- "SELECTED_QUEUES_FAX_INBOUND": "Ausgewählte Warteschlangen - Fax",
+ "ALL_QUEUES_VOICE_OUTBOUND": "Alle Queue Kampagnen",
+ "SELECTED_QUEUES_VOICE_OUTBOUND": "Ausgewählte Warteschlange Kampagnen",
+ "ALL_QUEUES_VOICE_INBOUND": "Alle Warteschlangen",
+ "SELECTED_QUEUES_VOICE_INBOUND": "Ausgewählte Voice Warteschlangen",
+ "ALL_QUEUES_CHAT_INBOUND": "Alle Chat Warteschlangen",
+ "SELECTED_QUEUES_CHAT_INBOUND": "Ausgewählte Chat-warteschlangen",
+ "ALL_QUEUES_MAIL_INBOUND": "Alle E-Mail-Warteschlangen",
+ "SELECTED_QUEUES_MAIL_INBOUND": "Ausgewählte Mail Warteschlangen",
+ "ALL_QUEUES_SMS_INBOUND": "Alle SMS-Warteschlangen",
+ "SELECTED_QUEUES_SMS_INBOUND": "Ausgewählte SMS-Warteschlangen",
+ "ALL_QUEUES_OPENCHANNEL_INBOUND": "Alle offenen Kanal Warteschlangen",
+ "SELECTED_QUEUES_OPENCHANNEL_INBOUND": "Ausgewählten Offenen Kanal Warteschlangen",
+ "ALL_QUEUES_FAX_INBOUND": "Alle Fax Warteschlangen",
+ "SELECTED_QUEUES_FAX_INBOUND": "Ausgewählte Fax Warteschlangen",
"VOICEMAIL": "Voicemail",
- "SHOWWEBCONTROL": "WebControl anzeigen",
+ "SHOWWEBCONTROL": "Anzeigen Web Control",
"PAGE": "Seite",
"ROWSPERPAGE": "Zeilen pro Seite",
- "OF": "von",
+ "OF": "Von",
"CALLFORWARDING": "Anrufweiterleitung",
- "DND": "Nicht stören",
- "UNANSWEREDCALLBADGE": "Badge unbeantwortete Anrufe",
- "ENABLEDTMFTONE": "DMFT-Töne aktivieren",
- "AUTOANSWERDELAY": "Automatische Antwort nach",
+ "DND": "Während der Pause nicht stören",
+ "UNANSWEREDCALLBADGE": "Zeige unbeantwortete Anruf Abzeichen",
+ "ENABLEDTMFTONE": "Dtmf-Töne aktivieren",
+ "AUTOANSWERDELAY": "Auto Antwortverzögerung",
"ENCRYPTION": "Verschlüsselung",
"CHANNELS": "Kanäle",
"CHAT": "Chat",
- "SMS": "SMS",
+ "SMS": "Sms",
"OPENCHANNEL": "Offener Kanal",
"FAX": "Fax",
- "QUEUEADD_USER_VOICE_OUTBOUND": "Nutzer zu Warteschlange für eingehende Anrufe hinzufügen",
- "MONITOREXTENSION": "Nebenstelle des Nutzers aufzeichnen",
+ "QUEUEADD_USER_VOICE_OUTBOUND": "Benutzer in Warteschlange Kampagnen hinzufügen",
+ "MONITOREXTENSION": "Anrufe an die Nebenstelle des Benutzers aufzeichnen",
"NO_PASSWORD_CHANGE": "Keine Passwortänderung",
"SECURITY_SUITE": "Sicherheitssuite",
- "LAST_PASSWORD_RESET_AT": "Passwort zuletzt zurückgesetzt am:",
- "SIP_WEBRTC": "SIP/WebRTC",
- "SETTINGS_WEBRTC": "Einstellungen",
+ "LAST_PASSWORD_RESET_AT": "Letzte Passwort zurücksetzen um",
+ "SIP_WEBRTC": "Schluck",
+ "SETTINGS_WEBRTC": "die Einstellungen",
"WEBRTC": "WebRTC",
"DTLSCERTFILE": "TLS-Zertifikat",
- "DTLSPRIVATEKEY": "Privater Schlüssel des TLS-Zertifikats",
- "EDITPERMISSIONS": "Berechtigungen verwalten",
- "READANDEDIT": "Lesen und Bearbeiten",
- "READANDEDITANDDELETE": "Lesen, Bearbeiten und Löschen",
- "GENERAL_PERMISSIONS": "Allgemein",
- "ENABLEMESSENGER": "Internen Messenger aktivieren",
- "OUTBOUNDPROXY": "Outbound-Proxy",
+ "DTLSPRIVATEKEY": "Der private Schlüssel des TLS-Zertifikats",
+ "EDITPERMISSIONS": "Bearbeiten von Berechtigungen",
+ "READANDEDIT": "Lesen, Bearbeiten",
+ "READANDEDITANDDELETE": "Lesen, Bearbeiten, Löschen",
+ "GENERAL_PERMISSIONS": "Allgemeines",
+ "ENABLEMESSENGER": "Aktivieren Sie den internen Messenger",
+ "OUTBOUNDPROXY": "Oubound-Proxy",
"PHONE": "Telefon",
"MOBILE": "Handy, Mobiltelefon",
"ALIAS": "Alias",
"ENABLEJAWSINTEGRATION": "Jaws-Integration aktivieren",
"PREFIXREQUIRED": "Präfix erforderlich",
- "ENABLEVIDEORECORDING": "Videoaufzeichnung aktivieren",
+ "ENABLEVIDEORECORDING": "Aktiviere Videoaufnahme",
"OLD_PASSWORD": "Altes Passwort",
"ALL_CHATQUEUES": "Alle Chat-Warteschlangen",
"ALL_CHATWEBSITES": "Alle Chat-Websites",
"ALL_FAXACCOUNTS": "Alle Faxkonten",
- "ALL_FAXQUEUES": "Alle Fax-Warteschlangen",
+ "ALL_FAXQUEUES": "Alle Faxwarteschlangen",
"ALL_MAILACCOUNTS": "Alle E-Mail-Konten",
"ALL_MAILQUEUES": "Alle E-Mail-Warteschlangen",
- "ALL_OPENCHANNELACCOUNTS": "Alle offener Kanal-Konten",
- "ALL_OPENCHANNELQUEUES": "Alle offener Kanal-Warteschlangen",
+ "ALL_OPENCHANNELACCOUNTS": "Alle offenen Channel-Konten",
+ "ALL_OPENCHANNELQUEUES": "Alle offenen Kanalwarteschlangen",
"ALL_PROJECTS": "Alle Cally Square-Projekte",
"ALL_QUEUECAMPAIGNS": "Alle Queue-Kampagnen",
"ALL_SMSACCOUNTS": "Alle SMS-Konten",
"SELECTED_CHATQUEUES": "Ausgewählte E-Mail-Warteschlangen",
"SELECTED_CHATWEBSITES": "Ausgewählte Chat-Websites",
"SELECTED_FAXACCOUNTS": "Ausgewählte Faxkonten",
- "SELECTED_FAXQUEUES": "Ausgewählte Fax-Warteschlangen",
+ "SELECTED_FAXQUEUES": "Ausgewählte Faxwarteschlangen",
"SELECTED_MAILACCOUNTS": "Ausgewählte E-Mail-Konten",
"SELECTED_MAILQUEUES": "Ausgewählte Chat-Warteschlangen",
- "SELECTED_OPENCHANNELACCOUNTS": "Ausgewählte offener Kanal-Konten",
- "SELECTED_OPENCHANNELQUEUES": "Ausgewählte offene Kanal-Warteschlangen",
+ "SELECTED_OPENCHANNELACCOUNTS": "Ausgewählte offene Channel-Konten",
+ "SELECTED_OPENCHANNELQUEUES": "Ausgewählte offene Kanalwarteschlangen",
"SELECTED_PROJECTS": "Ausgewählte Projekte von Cally Square",
"SELECTED_QUEUECAMPAIGNS": "Ausgewählte Queue-Kampagnen",
"SELECTED_SMSACCOUNTS": "Ausgewählte SMS-Konten",
"SELECTED_SMSQUEUES": "Ausgewählte SMS-Warteschlangen",
- "SELECTED_VOICEQUEUES": "Ausgewählte Anruf-Warteschlangen",
+ "SELECTED_VOICEQUEUES": "Ausgewählte Sprachwarteschlangen",
"USERADD_CHATQUEUES": "Chat-Warteschlange zum Benutzer hinzufügen",
"USERADD_CHATWEBSITES": "Chat-Website zum Benutzer hinzufügen",
"USERADD_FAXACCOUNTS": "Faxkonto zum Benutzer hinzufügen",
- "USERADD_FAXQUEUES": "Fax-Warteschlange zum Benutzer hinzufügen",
+ "USERADD_FAXQUEUES": "Faxwarteschlange zum Benutzer hinzufügen",
"USERADD_MAILACCOUNTS": "E-Mail-Konto zum Benutzer hinzufügen",
"USERADD_MAILQUEUES": "E-Mail-Warteschlange zum Benutzer hinzufügen",
- "USERADD_OPENCHANNELACCOUNTS": "Offener Kanal-Konto zum Benutzer hinzufügen",
- "USERADD_OPENCHANNELQUEUES": "Offener Kanal-Warteschlange zum Benutzer hinzufügen",
+ "USERADD_OPENCHANNELACCOUNTS": "Open Channel-Konto zum Benutzer hinzufügen",
+ "USERADD_OPENCHANNELQUEUES": "Open Channel-Warteschlange zum Benutzer hinzufügen",
"USERADD_PROJECTS": "Cally Square-Projekt zum Benutzer hinzufügen",
"USERADD_QUEUECAMPAIGNS": "Queue-Kampagne zum Benutzer hinzufügen",
"USERADD_SMSACCOUNTS": "SMS-Konto zum Benutzer hinzufügen",
"USERADD_SMSQUEUES": "SMS-Warteschlange zum Benutzer hinzufügen",
- "USERADD_VOICEQUEUES": "Anruf-Warteschlange zum Benutzer hinzufügen",
- "HOTDESK": "Wechselnder Arbeitsplatz",
+ "USERADD_VOICEQUEUES": "Sprachwarteschlange zum Benutzer hinzufügen",
+ "HOTDESK": "Heißer Schreibtisch",
"ADD_USERPROFILE": "Benutzerprofil hinzufügen",
- "CANCEL": "Abbrechen",
+ "CANCEL": "Stornieren",
"CLONE_USERPROFILE": "Benutzerprofil klonen",
"CLOSE": "Schließen",
"CONFIRM": "Bestätigen",
"PERMISSIONS_SELECTED_RESOURCES": "Ausgewählte Ressourcen",
"PERMISSIONS_SELECT_REPORT_TYPE": "Wählen Sie den Berichtstyp",
"PERMISSIONS_SELECT_SECTION": "Wählen Sie einen Abschnitt aus",
- "PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE": "Kein Zugriff auf den ausgewählten Bereich",
+ "PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE": "Sie dürfen nicht auf den ausgewählten Bereich zugreifen",
"PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE": "Unbefugte Handlung",
- "PERMISSIONS_WARNING_CLOSE": "Es wurden Änderungen nicht gespeichert. Fortfahren?",
+ "PERMISSIONS_WARNING_CLOSE": "Du hast nicht gespeicherte Änderungen. Möchten Sie den Vorgang wirklich ohne Speichern beenden?",
"PERMISSIONS_WARNING_ENABLE_ALL": "Alle {{sectionName}} Unterabschnitte und ihre Ressourcen werden aktiviert. Sind Sie sicher, dass Sie fortfahren möchten?",
- "QUEUES_ASSOCIATION": "{{channel}} Warteschlangen-Zuweisung",
+ "QUEUES_ASSOCIATION": "{{channel}} Queues Association",
"READ_PERMISSION": "Lesen",
"REPORT_TYPE": "Berichtstyp",
"SECTIONS": "Abschnitte",
"SUMMARY": "Zusammenfassung",
- "TEAMS_ASSOCIATION": "Teamzuweisung",
+ "TEAMS_ASSOCIATION": "Vereinigung der Mannschaften",
"USERPROFILE": "Benutzerprofil",
"USERPROFILES": "Benutzerprofil",
- "PERMISSIONS_UNAUTHORIZED_CREATION_MESSAGE": "Keine Berechtigung zum Erstellen der Ressource",
- "VIDEOSUPPORT": "Unterstützt Video",
+ "PERMISSIONS_UNAUTHORIZED_CREATION_MESSAGE": "Sie dürfen die Ressource nicht erstellen",
+ "VIDEOSUPPORT": "Video-Unterstützung",
"APIKEY": "API-Schlüssel",
"APIKEYMANAGER_USER": "API Key Manager",
- "GENERATE": "Erneut generieren",
+ "GENERATE": "(Regenerieren",
"MANAGE_API_KEY": "API-Schlüsselmanager",
- "REMOVE": "Entfernen",
- "ENABLEAUTOMATICSCREENRECORDING": "Automatische Bildschirmaufzeichnung aktivieren",
- "ENABLESCREENRECORDINGBYAGENT": "Bildschirmaufzeichnung durch Agenten aktivieren",
- "ENABLEVIDEOECORDING": "Videoaufzeichnung aktivieren",
+ "REMOVE": "Löschen",
+ "ENABLEAUTOMATICSCREENRECORDING": "Aktivieren Sie die automatische Bildschirmaufnahme",
+ "ENABLESCREENRECORDINGBYAGENT": "Aktivieren Sie die Bildschirmaufzeichnung nach Agent",
+ "ENABLEVIDEOECORDING": "Videoaufnahme aktivieren",
"BLOCKED": "Gesperrt",
"DISABLED": "Deaktiviert",
- "REGENERATE": "Erneut generieren",
+ "REGENERATE": "Regenerieren",
"ALL_QUEUES_WHATSAPP_INBOUND": "Alle WhatsApp-Warteschlangen",
"ALL_WHATSAPPACCOUNTS": "Alle WhatsApp-Konten",
"ALL_WHATSAPPQUEUES": "Alle Whataspp-Warteschlangen",
- "QUEUEADD_AGENT_WHATSAPP_INBOUND": "Agenten zu WhatsApp-Warteschlangen hinzufügen",
+ "QUEUEADD_AGENT_WHATSAPP_INBOUND": "Agent zu WhatsApp-Warteschlangen hinzufügen",
"QUEUEADD_USER_WHATSAPP_INBOUND": "Benutzer zu WhatsApp-Warteschlangen hinzufügen",
"SELECTED_QUEUES_WHATSAPP_INBOUND": "Ausgewählte WhatsApp-Warteschlangen",
"SELECTED_WHATSAPPACCOUNTS": "Ausgewählte WhatsApp-Konten",
"SELECTED_WHATSAPPQUEUES": "Ausgewählte WhatsApp-Warteschlangen",
"USERADD_WHATSAPPACCOUNTS": "WhatsApp-Konto zum Benutzer hinzufügen",
- "USERADD_WHATSAPPQUEUES": "Whataspp-Warteschlange dem Benutzer hinzufügen",
+ "USERADD_WHATSAPPQUEUES": "Fügen Sie dem Benutzer die Whataspp-Warteschlange hinzu",
"WHATSAPP": "WhatsApp Connector",
- "WHATSAPPCAPACITY": "Kapazität Whatsapp",
+ "WHATSAPPCAPACITY": "WhatsApp Connector-Kapazität",
"MASK_SENSITIVE_DATA": "Sensitive Daten maskieren",
"WSS_PORT": "WSS-Port",
"ATTACHMENTS": "Anhänge",
"CALLYSQUARE_RECORDINGS": "Cally Square-Aufnahmen",
- "CONTACT_MANAGER_LISTS": "Kontaktmanager Listen",
+ "CONTACT_MANAGER_LISTS": "Kontaktmanagerlisten",
"DOWNLOADS": "Downloads",
"DOWNLOAD_PERMISSIONS": "Download-Berechtigungen",
"JSCRIPTY_SESSIONS": "Jscripty-Sitzungen",
"OMNICHANNEL_INTERACTIONS": "Omnichannel-Interaktionen",
- "SCREEN_RECORDINGS": "Bildschirmaufzeichnungen",
- "VOICE_RECORDINGS": "Sprachaufzeichnungen"
+ "SCREEN_RECORDINGS": "Bildschirmaufnahmen",
+ "VOICE_RECORDINGS": "Sprachaufnahmen"
}
}
"BOT": "Voicebot",
"CALL": "Anruf",
"NAME": "Name",
- "TRUNKS": "Trunks",
- "SEARCH_FOR_ANYONE": "Suche",
+ "TRUNKS": "Amtsleitungen",
+ "SEARCH_FOR_ANYONE": "Suche für Jedermann",
"ERRORS": {
- "NAME_REQUIRED": "Name ist erforderlich",
- "HOST_REQUIRED": "Host wird benötigt",
- "DEFAULTUSER_REQUIRED": "Standardbenutzer ist erforderlich",
- "CALLERID_REQUIRED": "Anrufer-ID ist erforderlich",
- "KEY_REQUIRED": "Schlüssel ist erforderlich",
- "CONFIRM_NOT_MATCH": "Die Passwörter stimmen nicht überein",
- "VALIDITYSTART_REQUIRED": "Startzeit ist erforderlich",
- "VALIDITYEND_REQUIRED": "Endzeit ist erforderlich",
+ "NAME_REQUIRED": "Der Name ist erforderlich",
+ "HOST_REQUIRED": "Der Host wird benötigt",
+ "DEFAULTUSER_REQUIRED": "Der Standardbenutzer ist erforderlich",
+ "CALLERID_REQUIRED": "Die Anrufer-ID ist erforderlich",
+ "KEY_REQUIRED": "Der Schlüssel ist erforderlich",
+ "CONFIRM_NOT_MATCH": "Die Kennwörter nicht übereinstimmen",
+ "VALIDITYSTART_REQUIRED": "Die Startzeit ist erforderlich",
+ "VALIDITYEND_REQUIRED": "Das Ende der Zeit ist erforderlich",
"MONTHDAY_REQUIRED": "Tag des Monats ist erforderlich",
- "HOUR_REQUIRED": "Stunde ist erforderlich",
- "CONTENT_REQUIRED": "Inhalt ist erforderlich",
- "URL_REQUIRED": "URL ist erforderlich",
- "URL_MUST_VALID_URL": "URL ungültiges Format",
- "APPLICATION_REQUIRED": "Anwendung ist erforderlich",
- "ARGUMENTS_REQUIRED": "Bedingungen sind erforderlich",
- "NAME_MUST_VALID_PATTERN": "Name ungültiges Format",
- "POLLING_INTERVAL_REQUIRED": "Abfrageintervall ist erforderlich",
- "TITLE_REQUIRED": "Titel ist erforderlich",
- "EMAILADDRESS_REQUIRED": "E-Mail Adresse ist erforderlich",
- "EVENTVARIABLES_REQUIRED": "Variablen sind erforderlich",
- "TYPE_REQUIRED": "Typ ist erforderlich",
- "VALUE_REQUIRED": "Wert ist erforderlich",
- "ACCOUNT_REQUIRED": "Konto ist erforderlich",
- "FIELD_REQUIRED": "Feld ist erforderlich",
- "INTEGRATION_REQUIRED": "Integration ist erforderlich",
- "LIST_REQUIRED": "Liste ist erforderlich",
- "TEMPLATE_REQUIRED": "Vorlage ist erforderlich",
- "AUTOCREATECONTACT_REQUIRED": "Kontakterstellung erforderlich",
- "OUTBOUNDROUTE_REQUIRED": "Ausgehende Route erforderlich",
- "QUEUE_REQUIRED": "Warteschlange erforderlich",
- "TIME_RANGE_TO_REQUIRED": "Zeitintervall erforderlich",
- "WEEK_DAYS_TO_REQUIRED": "Wochentage erforderlich",
- "MONTH_DAYS_TO_REQUIRED": "Tage des Monats erforderlich",
- "MONTH_TO_REQUIRED": "Monat erforderlich",
+ "HOUR_REQUIRED": "Die Stunde ist erforderlich",
+ "CONTENT_REQUIRED": "Der Inhalt ist erforderlich",
+ "URL_REQUIRED": "Die URL ist erforderlich",
+ "URL_MUST_VALID_URL": "Die URL muss gültig sein",
+ "APPLICATION_REQUIRED": "Die Anwendung ist erforderlich",
+ "ARGUMENTS_REQUIRED": "Die Argumente sind erforderlich",
+ "NAME_MUST_VALID_PATTERN": "Der Name muss in einem gültigen Format geschrieben werden",
+ "POLLING_INTERVAL_REQUIRED": "Das Abfrageintervall ist erforderlich",
+ "TITLE_REQUIRED": "Der Titel ist erforderlich",
+ "EMAILADDRESS_REQUIRED": "Die E-Mail Adresse ist erforderlich",
+ "EVENTVARIABLES_REQUIRED": "Pflichtfeld",
+ "TYPE_REQUIRED": "Pflichtfeld",
+ "VALUE_REQUIRED": "Pflichtfeld",
+ "ACCOUNT_REQUIRED": "Pflichtfeld",
+ "FIELD_REQUIRED": "Pflichtfeld",
+ "INTEGRATION_REQUIRED": "Pflichtfeld",
+ "LIST_REQUIRED": "Pflichtfeld",
+ "TEMPLATE_REQUIRED": "Pflichtfeld",
+ "AUTOCREATECONTACT_REQUIRED": "Pflichtfeld",
+ "OUTBOUNDROUTE_REQUIRED": "Pflichtfeld",
+ "QUEUE_REQUIRED": "Pflichtfeld",
+ "TIME_RANGE_TO_REQUIRED": "Pflichtfeld",
+ "WEEK_DAYS_TO_REQUIRED": "Pflichtfeld",
+ "MONTH_DAYS_TO_REQUIRED": "Pflichtfeld",
+ "MONTH_TO_REQUIRED": "Pflichtfeld",
"TIME_RANGE_FROM_INVALID": "Falsches Format",
"TIME_RANGE_TO_INVALID": "Falsches Format",
- "ACTION_REQUIRED": "Aktion erforderlich",
- "CONFIGURATION_REQUIRED": "Konfiguration erforderlich",
- "PROJECT_REQUIRED": "Projekt erforderlich",
- "LOCATION_REQUIRED": "Standort erforderlich",
- "FONTSIZE_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
- "FONTSIZE_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
- "FONTSIZE_REQUIRED": "Schriftgröße erforderlich",
- "PATH_REQUIRED": "Pfad erforderlich",
- "FORMAT_REQUIRED": "Format erforderlich",
- "REPORT_REQUIRED": "Report erforderlich",
- "REFRESH_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
- "REFRESH_REQUIRED": "Aktualisieren erforderlich",
- "TITLE_MAX_LENGTH": "Titel darf eine maximale Länge haben von {{max}} ",
- "NAME_MAX_LENGTH": "Name darf eine maximale Länge haben von {{max}} ",
- "OUTPUT_REQUIRED": "Ausgabe erforderlich",
- "REPORTFOLDER_REQUIRED": "Ordner erforderlich",
- "REPORTSUBFOLDER_REQUIRED": "Unterordner erforderlich",
- "REPORTTYPE_REQUIRED": "Reporttyp erforderlich",
- "AGENT_REQUIRED": "Agent erforderlich",
- "INFO_REQUIRED": "Information erforderlich",
- "SCRIPT_REQUIRED": "Skript erforderlich",
- "TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
- "TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
- "TIMEOUT_REQUIRED": "Timeout erforderlich",
- "AUTOCREATE_FIELD_REQUIRED": "Automatisches Erstellen erforderlich"
+ "ACTION_REQUIRED": "Pflichtfeld",
+ "CONFIGURATION_REQUIRED": "Pflichtfeld",
+ "PROJECT_REQUIRED": "Pflichtfeld",
+ "LOCATION_REQUIRED": "Pflichtfeld",
+ "FONTSIZE_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
+ "FONTSIZE_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
+ "FONTSIZE_REQUIRED": "Pflichtfeld",
+ "PATH_REQUIRED": "Pflichtfeld",
+ "FORMAT_REQUIRED": "Pflichtfeld",
+ "REPORT_REQUIRED": "Pflichtfeld",
+ "REFRESH_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
+ "REFRESH_REQUIRED": "Pflichtfeld",
+ "TITLE_MAX_LENGTH": "Der Wert muss eine maximale Länge von {{max}} haben",
+ "NAME_MAX_LENGTH": "Der Wert muss eine maximale Länge von {{max}} haben",
+ "OUTPUT_REQUIRED": "Pflichtfeld",
+ "REPORTFOLDER_REQUIRED": "Pflichtfeld",
+ "REPORTSUBFOLDER_REQUIRED": "Pflichtfeld",
+ "REPORTTYPE_REQUIRED": "Pflichtfeld",
+ "AGENT_REQUIRED": "Pflichtfeld",
+ "INFO_REQUIRED": "Pflichtfeld",
+ "SCRIPT_REQUIRED": "Pflichtfeld",
+ "TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
+ "TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
+ "TIMEOUT_REQUIRED": "Pflichtfeld",
+ "AUTOCREATE_FIELD_REQUIRED": "Pflichtfeld"
},
"HOST": "Host",
- "SECRET": "Secret",
- "DEFAULTUSER": "Standardnutzer",
+ "SECRET": "Geheimnis",
+ "DEFAULTUSER": "Default User",
"DESCRIPTION": "Beschreibung",
- "ADD_TRUNK": "Trunk hinzufügen",
+ "ADD_TRUNK": "Amtsleitung hinzufügen",
"HELP": {
- "SECRET": "Kennwort für die Authentifizierung, wenden Sie sich an den Systemadministrator.",
+ "SECRET": "Kennwort für die Authentifizierung, wenden Sie sich an den Anbieter.",
"HOST": "Die Domäne oder den Hostnamen für den Anbieter.",
"DEFAULTUSER": "Authentifizierung Benutzernamen, wenden Sie sich an den Anbieter.",
"CALLERID": "Die Anrufer-ID im Format \"name\" <Nummer>.",
- "REGISTRY": "Die SIP-Registry, die von einigen Anbietern, die in der Regel defaultuser:Secret@host.",
- "FROMDOMAIN": "Legt Standardeinstellungen von:domain in SIP-Nachrichten als SIP-ua (Client).",
- "FROMUSER": "SIP-Nutzereinstellungen. Nur gültig für den Typ=peer.",
+ "REGISTRY": "Die amtsleitung Registry, die von einigen Anbietern, die in der Regel defaultuser:Secret@host.",
+ "FROMDOMAIN": "Legt Standardeinstellungen von:domain in SIP-Nachrichten als SIP-ua (Client). Einige Ziele können die obligatorische Identität Name anstatt nur die IP-Adresse.",
+ "FROMUSER": "Rovider wie ihr sie kennt. Dies ist der Benutzer, um anstelle der Anrufer-ID beim Tätigen von Anrufen zu anderen Peer (SIP-Proxy). Nur gültig für den Typ=peer.",
"OUTBOUNDPROXY": "IP-Adresse oder DNS-SRV-Ressourceneintrag name (ausgenommen die _sip._udp-Präfix): SRV Name, den Hostnamen oder die IP-Adresse des ausgehenden SIP-Proxy. Senden Sie ausgehende Signale zu diesem Proxy und nicht direkt an die Geräte. Nur gültig für den Typ=peer.",
- "PORT": "Die Nummer des Ports, zu dem Sie eine Verbindung herstellen möchten.",
- "CONTEXT": "Die nutzbaren Kontext für den Trunk.",
- "TYPE": "Definiert die SIP-Rolle innerhalb der Anwendung. User: Authentifizierung für eingehende Verbindungen; Peer: für ausgehende Verbindungen - Freund: Beide Eigenschaften werden erfüllt",
- "DTMFMODE": "Sendeart von DTMF-Tönen (Dual-Tone Multi-Frequency): RFC2833: Standardeinstellung, DMTF wird über RTP gesendet (außerhalb des Audiostreams) - INBAND DTMF wird innerhalb des Audiostreams gesendet, über die Lautsprecher hörbar. Erfordert eine höhere CPU-Last.",
- "NAT": "Ändert das Verhalten von Sternchen für Clients hinter einer Firewall. Wenn \"Nein\", ignoriert der Asterisk alle anderen Einstellungen und die nat=No.",
+ "PORT": "Die Nummer des Ports, zu dem Sie eine Verbindung herstellen möchten wir auf der anderen Seite.",
+ "CONTEXT": "Die nutzbaren Rahmen für den Trunk.",
+ "TYPE": "Legt das SIP-Rolle innerhalb der Sternchen. User: Wird verwendet, um die Authentifizierung für eingehende - Peer: für ausgehende Anrufe - Freund: Deckt sowohl die Eigenschaften der oben genannten.",
+ "DTMFMODE": "Wie DTMF (Dual-Tone Multi-Frequency): RFC2833: Die Standardeinstellung, die DTMF gesendet mit RTP, aber außerhalb der Audio Stream. INBAND DTMF gesendet wird: Die in der Audio Stream des aktuellen Gesprächs, wird über die Lautsprecher hörbar. Erfordert eine hohe CPU-Last. INFO: Diese Methode ist zwar sehr zuverlässig, es ist nicht für alle TK-Anlagen und viele SIP-Trunk.",
+ "NAT": "Ändert das Verhalten von Sternchen für Clients hinter einer Firewall.Wenn der Komma-getrennten Optionen ist \"Nein\", Asterisk ignoriert alle anderen Einstellungen und die nat=No.",
"QUALIFY": "Legt fest, wann die SIP erreichbar ist.",
"ALLOWCODECS": "Erlaubt Codecs in der Reihenfolge ihrer Präferenz.",
- "INSECURE": "Erlaubt unsichere Einstellungen für peer",
- "CALL_LIMIT": "Maximale Anzahl aller gleichzeitigen ein- und ausgehenden Anrufe",
- "DIRECTMEDIA": "Der Asterisk versucht, den RTP-Stream im Standard direkt zwischen dem Anrufer und dem Angerufenen aufzubauen. Manche Geräte (z.B. Firewalls) unterstützen diese Funktion nicht. Daher kann hier eine Umstellung erfolgen.",
- "CALLCOUNTER": "Aktivieren der Anrufzähler für die Geräte",
- "ADD_PHONE_TO_URI": "Fügt im SIP den user=phone zur URL hinzu",
- "TRUST_REMOTE_PARTY_ID": "Soll der URL der anderen Partei vertraut werden?",
- "SEND_REMOTE_PARTY_ID_HEADER": "Soll die ID der anderen Partei gesendet werden?",
- "ENCRYPTION": "Legt fest, ob die Verbindung über SRTP verschlüsselt vorliegt. Sollte das peer kein SRTP unterstützen, werden Anrufe mit dem HANGUPCAUSE=58 beendet.",
+ "INSECURE": "Legt fest, wie Verbindungen mit Peer, dass unsichere Einstellungen.",
+ "CALL_LIMIT": "Die Anzahl der eingehenden und abgehenden Anrufe, die zu einer Zeit.",
+ "DIRECTMEDIA": "Sternchen standardmäßig versucht, die RTP-Stream direkt aus den Anrufer an den Angerufenen. Einige Geräte werden nicht unterstützt wird (vor allem, wenn einer von Ihnen hinter einem NAT-Gerät befindet). Die Standardeinstellung ist Ja. Wenn Sie alle Clients hinter einem NAT-Gerät befindet, oder aus einem anderen Grund nicht möchten, dass Sternchen in der Audiospur, können Sie diese ausschalten.",
+ "CALLCOUNTER": "Aktivieren Sie die Zähler auf Geräte.",
+ "ADD_PHONE_TO_URI": "Legen Sie fest, ob die Provider ';user=Telefon\" an den URL.",
+ "TRUST_REMOTE_PARTY_ID": "Wenn Remote-Party-ID definieren sollte.",
+ "SEND_REMOTE_PARTY_ID_HEADER": "Status",
+ "ENCRYPTION": "Festlegen, ob die Remote-Party-ID gesendet werden soll (standardmäßig auf Nein).",
"TRANSPORT": "Festlegen der Standardeinstellungen für Transporte. Die Reihenfolge bestimmt den primären Standard.",
- "OTHERFIELDS": "Weitere Felder hinzufügen, in der Trunks conf-Dateien. In Sternchen format (key=value), jedes Feld auf einer Zeile.",
- "EMAILADDRESS": "Mehrere Adressen mit Komma getrennt eingeben: (z. b. John.doe@xcally.com, jane.miller@xcally.com)",
+ "OTHERFIELDS": "Weitere Felder hinzufügen, in der Amtsleitungen conf-Dateien. In Sternchen format (key=value), jedes Feld auf einer Zeile.",
+ "EMAILADDRESS": "Sie können mehrere Adressen mit Kommata (z. b. John.doe@xcally.com, jane.miller@xcally.com)",
"NAME": "Nur Zahlen, Buchstaben und Sonderzeichen (._) werden unterstützt.",
- "EVENTVARIABLES": "Fügt die Event-Variablen der URL hinzu",
+ "EVENTVARIABLES": "Wenn aktiviert, Es fügt alle Event Variablen an die Url",
"T38PT_UDPTL": "Es: Ja, Redundanz, maxdatagram = 400",
"EMAILBCCADDRESS": "Fügen Sie eine oder mehrere durch Kommas getrennte Adressen hinzu (z. B. john.doe@xcally.com, jane.miller@xcally.com).",
"EMAILCCADDRESS": "Fügen Sie eine oder mehrere durch Kommas getrennte Adressen hinzu (z. B. john.doe@xcally.com, jane.miller@xcally.com).",
- "BODY": "(RAW-JSON-Format) Wenn nicht ausgefüllt, wird der Standardwert verwendet",
+ "BODY": "Wenn nicht ausgefüllt, wird der Standardwert gesendet",
"INFO": "Titel einfügen",
"SCRIPT": "Skript einfügen",
"SCRIPT_INFO": "Fügen Sie eine Beschreibung für das Skript ein",
"SCRIPT_TYPE": "Geben Sie eine Typologie für das Skript ein (zB curl, bash ...)",
- "HEADERS": "Hinweis: Der Header-Abschnitt muss im RAW-JSON-Format {\"key\": \"value\"} vorliegen.\nHinweis: Wenn nicht ausgefüllt, wird der Standardwert verwendet",
- "TIMEOUT": "Zeitüberschreitung in Sekunden anfordern. Der Wert muss zwischen 1 und 10 liegen - Standardwert ist 5."
+ "HEADERS": "Hinweis: Der Header-Abschnitt muss im RAW-JSON-Format {\"key\": \"value\"} vorliegen.\nHinweis: Wenn nicht ausgefüllt, wird der Standardwert gesendet",
+ "TIMEOUT": "Zeitüberschreitung in Sekunden anfordern. Der Wert muss zwischen 1 und 10 liegen und der Standardwert ist 5."
},
"EDIT_TRUNK": "Trunk bearbeiten",
- "DELETE_TRUNK": "Trunk löschen",
+ "DELETE_TRUNK": "Löschen Sie Trunk",
"CREATED_AT": "Erstellt am",
"SETTINGS": "Einstellungen",
- "ADVANCED": "Erweitert",
+ "ADVANCED": "Erweiterte",
"OTHER": "Andere",
"ACTIVE": "Aktiv",
"CONTEXT": "Kontext",
- "CALLERID": "Anrufer-ID",
+ "CALLERID": "Die Anrufer-ID",
"TYPE": "Typ",
- "DTMFMODE": "DTMF-Modus",
+ "DTMFMODE": "Mfv-Modus",
"NAT": "NAT",
"QUALIFY": "Qualifizieren",
"ALLOWCODECS": "Codecs erlaubt",
"INSECURE": "Unsicher",
"REGISTRY": "Registrierung",
- "DIRECTMEDIA": "Direct Media",
+ "DIRECTMEDIA": "Direkte Medien",
"CALLCOUNTER": "Anrufzähler",
- "FROMDOMAIN": "From Domain",
- "FROMUSER": "From Nutzer",
- "OUTBOUNDPROXY": "Outbound Proxy",
- "ADD_PHONE_TO_URI": "Telefon zur URL hinzufügen",
- "TRUST_REMOTE_PARTY_ID": "Trust Remote Party ID",
- "SEND_REMOTE_PARTY_ID_HEADER": "Remote Party im Header senden",
+ "FROMDOMAIN": "Aus der Domäne",
+ "FROMUSER": "Vom Benutzer",
+ "OUTBOUNDPROXY": "Ausgehender Proxy",
+ "ADD_PHONE_TO_URI": "Telefon hinzufügen, URL",
+ "TRUST_REMOTE_PARTY_ID": "Vertrauen Gegenstelle ID",
+ "SEND_REMOTE_PARTY_ID_HEADER": "Senden einer Partner-ID Header",
"ENCRYPTION": "Verschlüsselung",
- "PORT": "Port",
- "TRANSPORT": "Transport",
+ "PORT": "Hafen",
+ "TRANSPORT": "Verkehr",
"SAVE": "Speichern",
"VARIABLES": "Variablen",
"ADD_VARIABLE": "Variable hinzufügen",
"EDIT_VARIABLE": "Variable bearbeiten",
"DELETE_VARIABLE": "Variable löschen",
- "SELECTED": "Ausgewählt",
- "SELECT_ALL": "Alles auswählen",
- "SELECT_NONE": "Nichts auswählen",
+ "SELECTED": "Ausgewählte",
+ "SELECT_ALL": "Alle auswählen",
+ "SELECT_NONE": "Wählen Sie \"Keine\"",
"TAGS": "Tags",
- "ADD_TAG": "Tag hinzufügen",
- "EDIT_TAG": "Tag bearbeiten",
- "DELETE_TAG": "Tag löschen",
+ "ADD_TAG": "Variable hinzufügen",
+ "EDIT_TAG": "Variable bearbeiten",
+ "DELETE_TAG": "Variable löschen",
"PAUSES": "Pausen",
"ADD_PAUSE": "Pause hinzufügen",
"EDIT_PAUSE": "Pause bearbeiten",
"DELETE_PAUSE": "Pause löschen",
- "ADD_CANNEDANSWER": "Textvorlage hinzufügen",
- "EDIT_CANNEDANSWER": "Textvorlage bearbeiten",
- "DELETE_CANNEDANSWER": "Testvorlage löschen",
+ "ADD_CANNEDANSWER": "Vordefinierte Antwort hinzufügen",
+ "EDIT_CANNEDANSWER": "Vordefinierte Antwort bearbeiten",
+ "DELETE_CANNEDANSWER": "Vordefinierte Antwort löschen",
"KEY": "Schlüssel",
"VALUE": "Wert",
- "SOUNDS": "Audiodateien",
- "EDIT_SOUND": "Audiodatei bearbeiten",
- "DELETE_SOUND": "Audiodatei löschen",
- "FINISH": "Abschließen",
+ "SOUNDS": "Sounds",
+ "EDIT_SOUND": "Ton bearbeiten",
+ "DELETE_SOUND": "Sound löschen",
+ "FINISH": "Fertig stellen",
"DROP_TO_UPLOAD": "Drop hochladen",
"TRIGGERS": "Trigger",
- "EDIT_TRIGGER": "Trigger bearbeiten",
- "DELETE_TRIGGER": "Trigger löschen",
+ "EDIT_TRIGGER": "Auslöser bearbeiten",
+ "DELETE_TRIGGER": "Auslöser löschen",
"ADD_TRIGGER": "Trigger hinzufügen",
"DELETE": "Löschen",
- "AUTOMATIONS": "Automation",
- "EDIT_AUTOMATION": "Automation bearbeiten",
+ "AUTOMATIONS": "Automatisierungen",
+ "EDIT_AUTOMATION": "Bearbeiten einer Automation",
"DELETE_AUTOMATION": "Automation löschen",
"ADD_AUTOMATION": "Automation hinzufügen",
"INTERVALS": "Intervalle",
"EDIT_INTERVAL": "Intervall bearbeiten",
- "DELETE_INTERVAL": "Intervall löschen",
+ "DELETE_INTERVAL": "Intervall für Löschen.",
"ADD_INTERVAL": "Intervall hinzufügen",
"TOOLS": "Werkzeuge",
- "ID": "ID",
+ "ID": "Id",
"AUDIO": "Audio",
- "DOWNLOAD_SOUND": "Audiodatei herunterladen",
- "UPLOAD_SOUND": "Audiodatei hochladen",
+ "DOWNLOAD_SOUND": "Download Sound",
+ "UPLOAD_SOUND": "Werkzeuge",
"CHANNEL": "Kanal",
"NEW_TRIGGER": "Neue Trigger",
"GENERAL": "Allgemein",
"STATUS": "Status",
"CONDITIONS&ACTIONS": "Bedingungen und Aktionen",
- "ALLCONDITIONS": "Alle Bedingungen werden erfüllt",
- "ANYCONDITIONS": "Einige Bedingungen werden erfüllt",
- "ACTIONS": "Aktionen",
+ "ALLCONDITIONS": "Alle diese Bedingungen erfüllen:",
+ "ANYCONDITIONS": "Treffen diese Voraussetzungen:",
+ "ACTIONS": "Aktionen:",
"NEW_AUTOMATION": "Neue Automation",
"TIMEOUT": "Timeout",
"PEERSTATUS": "Peer Status",
- "CALL_LIMIT": "Anrufe limitieren",
- "OTHERFIELDS": "Weitere Felder",
+ "CALL_LIMIT": "Anrufe beschränken",
+ "OTHERFIELDS": "Andere Felder",
"NEW_VARIABLE": "Neue Variable",
"NEW_TAG": "Neuer Tag",
"NEW_PAUSE": "Neue Pause",
- "NEW_CANNEDANSWER": "Neue Textvorlage",
+ "NEW_CANNEDANSWER": "Neue vordefinierte Antwort",
"CONFIRM_PASSWORD": "Passwort bestätigen",
- "NEW_TRUNK": "Neuer Trunk",
- "FROM": "von",
- "TO": "an",
- "WEEKDAY": "Wochentag",
- "MONTHDAY": "Monatstag",
+ "NEW_TRUNK": "Neue Leitung",
+ "FROM": "Von",
+ "TO": "Zu",
+ "WEEKDAY": "Woche Tag",
+ "MONTHDAY": "Monat Tag",
"MONTH": "Monat",
"ALWAYS": "Immer",
"MON": "Montag",
"PASSWORD": "Passwort",
"CUSTOMDASHBOARDS": "Benutzerdefinierte Dashboards",
"NEW_CUSTOMDASHBOARD": "Neues benutzerdefiniertes Dashboard",
- "ADD_CUSTOMDASHBOARD": "Benutzerdefiniertes Dashboard hinzufügen",
- "EDIT_CUSTOMDASHBOARD": "Benutzerdefiniertes Dashboard bearbeiten",
- "DELETE_CUSTOMDASHBOARD": "Benutzerdefiniertes Dashboard löschen",
- "SCHEDULER": "Berichtsplanung",
- "NEW_SCHEDULE": "Neue Planung",
- "ADD_SCHEDULE": "Planung hinzufügen",
- "EDIT_SCHEDULE": "Planung bearbeiten",
- "DELETE_SCHEDULE": "Planung löschen",
+ "ADD_CUSTOMDASHBOARD": "Hinzufügen von benutzerdefinierten Dashboard",
+ "EDIT_CUSTOMDASHBOARD": "Benutzerdefinierte Dashboards bearbeiten",
+ "DELETE_CUSTOMDASHBOARD": "Benutzerdefiniertes Dashboard löschen.",
+ "SCHEDULER": "Scheduler",
+ "NEW_SCHEDULE": "Neuer Zeitplan",
+ "ADD_SCHEDULE": "Zeitplan hinzufügen",
+ "EDIT_SCHEDULE": "Zeitplan bearbeiten",
+ "DELETE_SCHEDULE": "Zeitplan löschen",
"SENDMAIL": "E-Mail senden",
"CONFIGURATION": "Konfiguration",
"MAIL": "E-Mail",
"REPORTTYPE": "Berichtstyp",
"REPORT": "Bericht",
- "OUTPUT": "Ausgabe",
+ "OUTPUT": "Ausgang",
"EXECUTEON": "Ausführung",
- "REPORTRANGE": "Bereich",
+ "REPORTRANGE": "Berichtsbereich",
"VALIDITYSTART": "Startzeit",
"VALIDITYEND": "Endzeit",
"EXECUTEEVERY": "Alle ausführen",
"MONTHLY": "Monatlich",
"PREVIOUS_DAY": "Vorheriger Tag",
"LAST_SEVEN_DAYS": "Letzte sieben Tage",
- "LAST_THIRTY_DAYS": "Letzte 30 Tage",
+ "LAST_THIRTY_DAYS": "33 verbotenen letzte Tage",
"LAST_MONTH": "Letzter Monat",
- "WEEKDAYS": "Wochentage",
+ "WEEKDAYS": "Woche Tage",
"HOUR": "Stunde",
"DEFAULT": "Standard",
"CSV": "CSV",
"15MIN": "15 Minuten",
"30MIN": "30 Minuten",
"1H": "1 Stunde",
- "VOICE": "Sprachanrufe",
+ "VOICE": "Voice",
"CHAT": "Chat",
"SMS": "SMS",
"OPENCHANNEL": "Offener Kanal",
"ADD_ALLCONDITION": "Bedingung hinzufügen",
"EDIT_ACTION": "Aktion bearbeiten",
"DELETE_ACTION": "Aktion löschen",
- "NEW_ACTION": "Neue Aktion",
+ "NEW_ACTION": "Neue Maßnahme",
"ADD_ACTION": "Aktion hinzufügen",
"QUEUE": "Warteschlange",
"CALL_STATUS": "Anrufstatus",
- "OUTBOUNDROUTE": "Ausgehende Routen",
- "EQUALS": "ist gleich",
- "NOT_EQUALS": "ist nicht gleich",
- "CONTACT_MANAGER": "Kontaktmanager",
+ "OUTBOUNDROUTE": "Abgehende Routen",
+ "EQUALS": "Ist gleich",
+ "NOT_EQUALS": "Nicht gleich",
+ "CONTACT_MANAGER": "Contacts Manager",
"INTEGRATIONS": "Integrationen",
"MOTIONBAR": "Motion Bar",
"JSCRIPTY": "Jscripty",
- "URL_FORWARD": "URL-Weiterleitung",
- "WEB_POPUP": "Web-Popup",
+ "URL_FORWARD": "URL Weiterleitung",
+ "WEB_POPUP": "Web Popup",
"LIST": "Liste",
"INTEGRATION": "Integration",
"TEMPLATE": "Vorlage",
"OPERATOR": "Betreiber",
"NO_INTERVALS_AVAILABLE": "Keine Intervalle zur Verfügung",
"YES": "Ja",
- "NO": "Nein",
+ "NO": "Keine",
"SUBJECT": "Betreff",
- "NO_AVAILABLE_INFO": "Keine Informationen verfügbar",
+ "NO_AVAILABLE_INFO": "Keine verfügbaren Info",
"BROWSER": "Browser",
"INTERVAL": "Intervall",
- "INFO": "Information",
+ "INFO": "Info",
"TIME_RANGE": "Zeitbereich",
- "WEEK_DAYS": "Wochentage",
- "MONTH_DAYS": "Monatstage",
+ "WEEK_DAYS": "Woche Tage",
+ "MONTH_DAYS": "Monat Tage",
"MONTHS": "Monate",
- "DROP_TO_UPLOAD_MESSAGE": "Dateien hier hinein ziehen zum Hochladen. Unterstütze Formate: .mp3, .wav, .gsm; Max. Dateigröße: 15 MB",
+ "DROP_TO_UPLOAD_MESSAGE": "Sie können auch Audiodateien hier ablegen\" hochzuladen. Nur MP3-, WAV-, GSM-Max. 15 MB",
"POLLING_INTERVAL": "Abfrageintervall (Sekunden)",
- "DASHBOARD": "Dashboard",
- "NEW_DASHBOARDITEM": "Neues Dashboard-Widget",
+ "DASHBOARD": "Armaturenbrett",
+ "NEW_DASHBOARDITEM": "Neue Dashboard Widget",
"COUNTER": "Zähler",
"IFRAME": "IFrame",
"CLOCK": "Uhr",
- "ADD_DASHBOARDITEM": "Dashboard-Widget hinzufügen",
- "EDIT_WIDGET": "Widget bearbeiten",
- "DELETE_WIDGET": "Widget löschen",
- "FLIP_WIDGET": "Widget drehen",
+ "ADD_DASHBOARDITEM": "Dashboard Widget hinzufügen",
+ "EDIT_WIDGET": "Bearbeiten Widget",
+ "DELETE_WIDGET": "Löschen Widget",
+ "FLIP_WIDGET": "Flip Widget",
"TITLE": "Titel",
"UPDATE": "Aktualisieren",
"LAYOUT": "Layout",
"FOREGROUND_COLOR": "Vordergrundfarbe",
"FOREGROUND_TITLE_COLOR": "Vordergrund Titel Farbe",
"THEME": "Thema",
- "LIGHT": "Hell",
+ "LIGHT": "Licht",
"DARK": "Dunkel",
"TIMEZONE": "Zeitzone",
- "DIGITAL_FORMAT": "Digitales Datumsformat",
+ "DIGITAL_FORMAT": "Digitale Datum Format",
"TOOLS_QUERY": "Abfrage",
- "SELECT": "Auswählen",
+ "SELECT": "Wählen Sie",
"WHERE": "Wo",
"BACK": "Zurück",
"PROJECT": "Projekt",
- "GOTOREALTIME_TRUNK": "Zum Echtzeitmonitoring SIP-Trunks gehen",
- "GOTO_TRUNK": "Zum SIP-Trunk gehen",
- "CRON": "CrOn",
+ "GOTOREALTIME_TRUNK": "In Echtzeit, Trunk gehen",
+ "GOTO_TRUNK": "Um die Leitungsbündel gehen",
+ "CRON": "Cron",
"MINUTES": "Minuten",
"HOURLY": "Stündlich",
"YEARLY": "Jährlich",
"EVERY": "Jede",
"MINUTE": "Minute",
- "ON_SECOND": "Zur Sekunde",
- "HOUR_ON_MINUTE": "Stunde zur Minute",
- "AND_SECOND": "und Sekunde",
- "DAY_AT": "Am Tag",
+ "ON_SECOND": "Im 2.",
+ "HOUR_ON_MINUTE": "Stunde Minute",
+ "AND_SECOND": "Und 2.",
+ "DAY_AT": "Tag an",
"START_TIME": "Startzeit",
- "ON_THE": "Am",
- "OF_EVERY": "An jedem",
+ "ON_THE": "Auf der",
+ "OF_EVERY": "Jedes",
"MONTH_AT": "Monat",
- "AT": "Um",
+ "AT": "An",
"LAST": "Letzte",
"LASTUNIT": "Einheit",
"MAILACCOUNT": "E-Mail Konto",
- "OF": "von",
+ "OF": "Von",
"PAST_THE_HOUR": "Nach der vollen Stunde",
"DAY": "Tag",
"WEEK": "Woche",
"YEAR": "Jahr",
- "ON": "Am",
+ "ON": "Auf",
"PAI": "P-Asserted-Identity",
"PAGE": "Seite",
"ROWSPERPAGE": "Zeilen pro Seite",
- "OUTBOUND_ROUTE": "Ausgehende Routen",
- "EVENTVARIABLES": "Event-Variablen",
+ "OUTBOUND_ROUTE": "Abgehende Routen",
+ "EVENTVARIABLES": "Bei Variablen",
"FAX": "Fax",
"INTERACTION": "Interaktion",
"MESSAGE": "Nachricht",
"T38PT_UDPTL": "T38 pt Udptl",
- "AUTOCREATECONTACT": "Automatische Kontakterstellung",
+ "AUTOCREATECONTACT": "Erstellen Sie automatisch",
"COLOR": "Farbe",
- "LOCATION": "Standort",
- "NEW_TAB": "Neuer Tab",
+ "LOCATION": "Lage",
+ "NEW_TAB": "Neue Registerkarte",
"NEW_WINDOW": "Neues Fenster",
- "WINDOWWIDTH": "Fensterbreite (px)",
+ "WINDOWWIDTH": "Fenster Breite (px)",
"WINDOWHEIGHT": "Fensterhöhe (px)",
"EDIT_DASHBOARDITEM": "Dashboard-Widget bearbeiten",
"FONTSIZE": "Schriftgröße",
"FOREGROUND": "Vordergrund",
"NONE": "Keiner",
"TOTAL": "Gesamt",
- "ABANDONED": "Abgebrochen",
+ "ABANDONED": "Verlassen",
"WAITING": "Warten",
- "TALKING": "im Gespräch",
- "ANSWERED": "Beantwortet",
- "UNMANAGED": "Nicht bearbeitet",
+ "TALKING": "Reden",
+ "ANSWERED": "Antwortete",
+ "UNMANAGED": "Nicht verwaltet",
"CUSTOMTYPE": "Benutzerdefiniert [Pfad]",
"WEBREPORT": "Webbericht",
"PIECHART": "Kuchendiagramm",
"MULTIBARCHART": "Multibar-Diagramm",
"MOVE_WIDGET": "Widget verschieben",
- "USERADD_CUSTOMDASHBOARD": "Berechtigungen hinzufügen",
- "GOTODASHBOARD_CUSTOMDASHBOARD": "Vorschau Dashboard",
- "GOTO_CUSTOMDASHBOARD": "Vorschau Dashboard",
+ "USERADD_CUSTOMDASHBOARD": "Hinzufügen von Benutzerberechtigungen",
+ "GOTODASHBOARD_CUSTOMDASHBOARD": "Gehe zum Vorschau-Dashboard",
+ "GOTO_CUSTOMDASHBOARD": "Gehe zum Vorschau-Dashboard",
"METRIC": "Metrisch",
- "FILTERVOICEQUEUES": "Anruf-Warteschlangen filtern",
+ "FILTERVOICEQUEUES": "Voice-Warteschlangen filtern",
"SERIE1": "Serie 1",
"SERIE2": "Serie 2",
"SERIE3": "Serie 3",
"ALL_USERS": "Alle Nutzer",
"SELECTED_USERS": "Ausgewählte Benutzer",
"ADD_WIDGET": "Widget hinzufügen",
- "NEXTCONTACT": "Nächster Kontakt",
+ "NEXTCONTACT": "Nächster",
"SENDIFEMPTY": "Senden, wenn leer",
- "CANCEL": "Abbrechen",
+ "CANCEL": "Stornieren",
"UPLOADING": "Hochladen",
- "EMAILBCCADDRESS": "BCC",
- "EMAILCCADDRESS": "CC",
- "RUN_SCHEDULE": "Zeitplanung ausführen",
- "ADD_DISPOSITION": "Qualifizierung hinzufügen",
- "DELETE_DISPOSITION": "Qualifizierung löschen",
- "DISPOSITIONS": "Qualifizierungen",
- "EDIT_DISPOSITION": "Qualifizierung bearbeiten",
- "NEW_DISPOSITION": "Neue Qualifizierung",
- "CLONE_TRUNK": "Trunk klonen",
- "BODY": "Textinhalt",
- "CANNEDANSWERS": "Textvorlagen",
+ "EMAILBCCADDRESS": "Bcc",
+ "EMAILCCADDRESS": "Cc",
+ "RUN_SCHEDULE": "Zeitplan ausführen",
+ "ADD_DISPOSITION": "Disposition hinzufügen",
+ "DELETE_DISPOSITION": "Disposition löschen",
+ "DISPOSITIONS": "Dispositionen",
+ "EDIT_DISPOSITION": "Disposition bearbeiten",
+ "NEW_DISPOSITION": "Neue Disposition",
+ "CLONE_TRUNK": "Klon-Trunk",
+ "BODY": "Karosserie",
+ "CANNEDANSWERS": "Vordefinierte Antworten",
"REPORTFOLDER": "Berichtsordner",
- "REPORTSUBFOLDER": "Unterordner",
- "PREVIOUSCONTACT": "Vorherigen Kontakt",
+ "REPORTSUBFOLDER": "Unterordner melden",
+ "PREVIOUSCONTACT": "Bisherige",
"VIDEOSUPPORT": "Video-Unterstützung",
"AGENT": "Agent",
"HEADERS": "Überschriften",
"SCRIPT": "Skript",
- "SCRIPT_INFO": "Information",
+ "SCRIPT_INFO": "Info",
"SCRIPT_TYPE": "Art",
"MOTION_TAB": "Neue Registerkarte \"Agent Dashboard\"",
"WHATSAPP": "WhatsApp Connector",
"AUTOCREATE_FIELD": "Feld automatisch erstellen",
- "GLOBALS": "Globale Werte",
+ "GLOBALS": "Globals",
"SEARCH_FIELDS": "Suchfelder",
"STANDARD": "Standard",
"MOTION_BAR": "Motion Bar",
"ALL": "Alle",
- "ALL_DISPOSITIONS": "Alle Qualifizierungen",
- "FIRST_LEVEL_DISPOSITION": "Qualifizierung der ersten Ebene",
- "LEVEL": "Ebene",
- "SECOND_LEVEL_DISPOSITION": "Qualifizierung der zweiten Ebene",
- "SELECT_LEVEL": "Ebene auswählen",
- "TITLEFONTSIZE": "Schriftgröße Titel"
+ "ALL_DISPOSITIONS": "Alle Dispositionen",
+ "FIRST_LEVEL_DISPOSITION": "First Level Disposition",
+ "LEVEL": "Niveau",
+ "SECOND_LEVEL_DISPOSITION": "Disposition der zweiten Ebene",
+ "SELECT_LEVEL": "Wählen Sie eine Ebene",
+ "TITLEFONTSIZE": "Schrifttitelgröße"
}
}
"LINK": "Link [https://]",
"BACKGROUND": "Background",
"FOREGROUND": "Foreground",
- "IGNOREDIALERCONTACTID": "Ignore dialer contact Id",
"NONE": "None",
"TOTAL": "Total",
"ABANDONED": "Abandoned",
"TYPE_REQUIRED": "Mandatory field",
"VALUE_REQUIRED": "Mandatory field",
"ACCOUNT_REQUIRED": "Mandatory field",
- "IGNOREDIALERCONTACTID_REQUIRED": "Ignore dialer contact Id field is required",
"FIELD_REQUIRED": "Mandatory field",
"NAME_REQUIRED": "Mandatory field",
"HOST_REQUIRED": "Mandatory field",
"LINK": "Link [https://]",
"BACKGROUND": "Background",
"FOREGROUND": "Foreground",
- "IGNOREDIALERCONTACTID": "Ignora il contact Id del dialer",
"NONE": "Nessuno",
"TOTAL": "Totale",
"ABANDONED": "Abbandonate",
"TYPE_REQUIRED": "Campo obbligatorio",
"VALUE_REQUIRED": "Campo obbligatorio",
"ACCOUNT_REQUIRED": "Campo obbligatorio",
- "IGNOREDIALERCONTACTID_REQUIRED": "Campo obbligatorio",
"FIELD_REQUIRED": "Campo obbligatorio",
"TIME_RANGE_TO_REQUIRED": "Campo obbligatorio",
"WEEK_DAYS_TO_REQUIRED": "Campo obbligatorio",
"SERVICELEVEL": "مستوى الخدمة",
"SECOND_LEVEL_DISPOSITION": "ترتيب المستوى الثاني",
"THIRD_LEVEL_DISPOSITION": "الترتيب الثالث",
- "TEAMADD_VOICEPREFIX": "أضف الفريق إلى البادئة",
"ALIAS": "الاسم المستعار"
}
}
"SERVICELEVEL": "Úroveň služby",
"SECOND_LEVEL_DISPOSITION": "Dispozice druhé úrovně",
"THIRD_LEVEL_DISPOSITION": "Dispozice třetí úrovně",
- "TEAMADD_VOICEPREFIX": "Přidat tým k předponě",
"ALIAS": "Alias"
}
}
"SERVICELEVEL": "Serviceniveau",
"SECOND_LEVEL_DISPOSITION": "Andet niveau disposition",
"THIRD_LEVEL_DISPOSITION": "Tredje niveau disposition",
- "TEAMADD_VOICEPREFIX": "Føj team til præfiks",
"ALIAS": "Alias"
}
}
{
"VOICE": {
- "GOTO_VOICEQUEUE": "Zur Anruf-Warteschlange gehen",
- "GOTOREALTIME_VOICEQUEUE": "Zur Echtzeitansicht Anruf-Warteschlange gehen",
+ "GOTO_VOICEQUEUE": "Zu Realtime Voice Warteschlangen gehen",
+ "GOTOREALTIME_VOICEQUEUE": "Zu Realtime Voice Warteschlangen gehen",
"NAME": "Name",
"LOGOUT": "An-/Abmelden",
- "VOICEQUEUES": "Anruf-Warteschlangen",
- "SEARCH_FOR_ANYONE": "Suche",
+ "VOICEQUEUES": "Voice Warteschlangen",
+ "SEARCH_FOR_ANYONE": "Suche für Jedermann",
"BACK": "Zurück",
- "SELECTED": "Ausgewählt",
- "SELECT_ALL": "Alles auswählen",
- "SELECT_NONE": "Nichts auswählen",
- "DELETE_VOICEDISPOSITION": "Qualifizierung löschen",
- "EDIT_VOICEDISPOSITION": "Qualifizierung bearbeiten",
- "EDIT_VOICEQUEUE": "Anruf-Warteschlange bearbeiten",
- "DELETE_VOICEQUEUE": "Anruf-Warteschlange löschen",
- "MOHSOUNDS": "MOH-Töne",
+ "SELECTED": "Ausgewählte",
+ "SELECT_ALL": "Alle auswählen",
+ "SELECT_NONE": "Wählen Sie \"Keine\"",
+ "DELETE_VOICEDISPOSITION": "Disposition löschen",
+ "EDIT_VOICEDISPOSITION": "Edit Voice Disposition",
+ "EDIT_VOICEQUEUE": "Edit Voice Warteschlange",
+ "DELETE_VOICEQUEUE": "Warteschlange löschen",
+ "MOHSOUNDS": "Die MOH-Sounds",
"STRATEGY": "Strategie",
"DESCRIPTION": "Beschreibung",
- "ADD_VOICEQUEUE": "Warteschlangen hinzufügen",
+ "ADD_VOICEQUEUE": "Hinzufügen von Warteschlangen",
"CREATED_AT": "Erstellt am",
- "CANT_PLAY_GSM_AUDIO_FILES": "Nicht GSM-Audiodateien",
+ "CANT_PLAY_GSM_AUDIO_FILES": "Nicht gsm-Audiodateien",
"APPLICATIONS_LIST": "Liste der Anwendungen",
"LEGEND": {
"CUSTOM_APPLICATION": "(*) - Benutzerdefinierte Anwendung."
},
"ERRORS": {
- "NAME_REQUIRED": "Name ist erforderlich",
- "APPLICATION_NAME_REQUIRED": "Name der Anwendung ist erforderlich",
- "TIMEOUT_REQUIRED": "Timeout ist erforderlich",
- "PHONENUMBER_REQUIRED": "Telefonnummer ist erforderlich",
- "CONTEXT_REQUIRED": "Kontext ist erforderlich",
- "DESTINATIONPATTERN_REQUIRED": "Ziel-Pattern ist erforderlich",
- "FULLNAME_REQUIRED": "Vollständiger Name ist erforderlich",
- "EMAIL_REQUIRED": "E-Mail ist erforderlich",
- "EMAIL_MUST_VALID": "E-Mail Format ungültig",
- "MAILBOX_REQUIRED": "Mailbox ist erforderlich",
- "PASSWORD_REQUIRED": "Passwort ist erforderlich",
- "CONFIRM_NOT_MATCH": "Die Passwörter stimmen nicht überein",
- "TIMEZONE_REQUIRED": "Zeitzone ist erforderlich",
- "PREFIX_REQUIRED": "Präfix ist erforderlich",
- "OPTIONS_REQUIRED": "Bedingungen sind Erforderlich",
- "AFTERCALLWORKDURATION_REQUIRED": "Dauer Nacharbeit ist erforderlich",
- "TECHNOLOGY/RESOURCE_REQUIRED": "Ressource ist erforderlich",
- "PHONE_REQUIRED": "Telefonnummer ist erforderlich",
- "VALUE_REQUIRED": "Wert ist erforderlich",
- "EXTENSION_REQUIRED": "Nebenstelle ist erforderlich",
- "PRIORITY_REQUIRED": "Priorität ist erforderlich",
- "NAME_MUST_VALID_PATTERN": "Format Name ungültig",
- "APPLICATION_REQUIRED": "Anwendung ist erforderlich",
- "TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Timeout muss größer oder gleich sein als",
- "MAXLENGTH_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Die max. Länge muss größer oder gleich sein als",
- "RETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wiederversuche muss größer oder gleich sein als",
- "WRAPUPTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Nacharbeit Zeit muss größer oder gleich sein als",
- "WEIGHT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Gewichtung muss größer oder gleich sein als",
- "ANNOUNCEFREQUENCY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Frequenz der Ansagen muss größer oder gleich sein als",
- "MINANNOUNCEFREQUENCY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Min. Frequenz der Ansagen muss größer oder gleich sein als",
- "PERIODICANNOUNCEFREQUENCY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wiederholende Frequenz der Ansagen muss größer oder gleich sein als",
- "AFTERCALLWORKDURATION_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Nacharbeit Zeit muss größer oder gleich sein als",
- "MEMBERDELAY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Verzögerung muss größer oder gleich sein als",
- "POSITION_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Position muss größer oder gleich sein als",
- "CUTDIGITS_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Schnitt muss größer oder gleich sein als",
- "MAXSECONDS_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Max. Sekundenmuss größer oder gleich sein als",
- "MAXMESSAGES_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Max. Nachrichten muss größer oder gleich sein als",
- "MAXMESSAGES_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Max. Nachrichten muss kleiner oder gleich sein als",
+ "NAME_REQUIRED": "Der Name ist erforderlich",
+ "APPLICATION_NAME_REQUIRED": "Der Name der Anwendung ist erforderlich",
+ "TIMEOUT_REQUIRED": "Der Timeout ist erforderlich",
+ "PHONENUMBER_REQUIRED": "Die Telefonnummer ist erforderlich",
+ "CONTEXT_REQUIRED": "Der Rahmen ist erforderlich",
+ "DESTINATIONPATTERN_REQUIRED": "Das Ziel-pattern ist erforderlich",
+ "FULLNAME_REQUIRED": "Der vollständige Name ist erforderlich",
+ "EMAIL_REQUIRED": "Die E-Mail ist erforderlich",
+ "EMAIL_MUST_VALID": "Die e-Mail muss in einem gültigen Format",
+ "MAILBOX_REQUIRED": "Die Mailbox ist erforderlich",
+ "PASSWORD_REQUIRED": "Das Kennwort ist erforderlich",
+ "CONFIRM_NOT_MATCH": "Die Kennwörter stimmen nicht überein.",
+ "TIMEZONE_REQUIRED": "Die Zeitzone ist erforderlich",
+ "PREFIX_REQUIRED": "Das Präfix ist erforderlich",
+ "OPTIONS_REQUIRED": "Die Optionen sind Erforderlich",
+ "AFTERCALLWORKDURATION_REQUIRED": "Die Arbeit nach Anruf Dauer ist erforderlich",
+ "TECHNOLOGY/RESOURCE_REQUIRED": "Die Technologie/Ressource erforderlich ist",
+ "PHONE_REQUIRED": "Die Telefonnummer ist erforderlich",
+ "VALUE_REQUIRED": "Der Wert ist erforderlich",
+ "EXTENSION_REQUIRED": "Die Verlängerung ist erforderlich",
+ "PRIORITY_REQUIRED": "Die Priorität ist erforderlich",
+ "NAME_MUST_VALID_PATTERN": "Der Name muss in einem gültigen Format geschrieben werden",
+ "APPLICATION_REQUIRED": "Die Anwendung ist erforderlich",
+ "TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Timeout muss größer als oder gleich",
+ "MAXLENGTH_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Die max. Länge muss größer als oder gleich",
+ "RETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Die Wiederholung muss größer als oder gleich",
+ "WRAPUPTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Die Nachlese Zeit muss größer als oder gleich",
+ "WEIGHT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Das Gewicht muss größer als oder gleich",
+ "ANNOUNCEFREQUENCY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Die Häufigkeit verkünden muss größer als oder gleich",
+ "MINANNOUNCEFREQUENCY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Die Min Frequenz ankündigen muss größer als oder gleich",
+ "PERIODICANNOUNCEFREQUENCY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Die periodische Frequenz ankündigen muss größer als oder gleich",
+ "AFTERCALLWORKDURATION_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Die Arbeit nach Anruf Dauer muss größer als oder gleich",
+ "MEMBERDELAY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Die Verzögerung muss größer als oder gleich",
+ "POSITION_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Die Position muss größer als oder gleich",
+ "CUTDIGITS_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Den Schnitt stellen muss größer als oder gleich",
+ "MAXSECONDS_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Muss die Max Sekunden größer als oder gleich",
+ "MAXMESSAGES_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Die Max Meldungen muss größer als oder gleich",
+ "MAXMESSAGES_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Die Max Meldungen muss kleiner als oder gleich",
"CALLERIDALL_MUST_VALID_PATTERN": "Falsches Format",
"OUTBOUNDROUTE_REQUIRED": "Pflichtfeld",
"VARIABLE_REQUIRED": "Pflichtfeld",
"TRUNK_REQUIRED": "Pflichtfeld",
"MANDATORYDISPOSITIONPAUSEID_REQUIRED": "Pflichtfeld",
"PROJECT_REQUIRED": "Pflichtfeld",
- "PENALTY_REQUIRED": "Wert für Verzögerung erforderlich"
+ "PENALTY_REQUIRED": "Sie müssen einen Wert für die Strafe angeben"
},
"GENERAL": "Allgemein",
"TIMEOUT": "Timeout",
"MAXLENGTH": "Maximale Länge",
- "RETRY": "Bitte erneut versuchen",
- "WRAPUPTIME": "Nacharbeit",
- "WEIGHT": "Gewichtung",
- "JOINWHENEMPTY": "Beitreten, wenn leer",
- "LEAVEWHENEMPTY": "Verlassen, wenn leer",
+ "RETRY": "Versuchen Sie es erneut",
+ "WRAPUPTIME": "-Zeit",
+ "WEIGHT": "Gewicht",
+ "JOINWHENEMPTY": "Melden Sie wenn sie leer sind",
+ "LEAVEWHENEMPTY": "Wenn sie leer lassen",
"HELP": {
- "TIMEOUT": "Zeitüberschreitung in Sekunden",
- "MAXLENGTH": "Maximaler Anrufer in der Warteschlange. Wenn Wert 0, dann keine Begrenzung.",
- "RETRY": "Klingelzeit in Sekunden pro Mitglied. Danach erfolgt ein weiterer Versuch bei der nächsten freien Nebenstelle.",
- "WRAPUPTIME": "Nacharbeitszeit in Sekunden, bis ein Nutzer nach einem Anruf wieder verfügbar ist.",
- "WEIGHT": "Gewichtung der Warteschlange. Ein höherer Wert bedeutet eine Priorisierung gegenüber anderen Warteschlangen.",
- "JOINWHENEMPTY": "Legt fest, ob ein Anruf in die Warteschlange eintreten kann, wenn dort keine Nutzer angemeldet sind.",
- "LEAVEWHENEMPTY": "Wirft den Anruf aus der Warteschlange, wenn dort kein Nutzer angemeldet ist.",
- "ANNOUNCEFREQUENCY": "Intervall für automatische Ansagen der Wartezeit, Position, etc. Der Wert 0 deaktiviert diese Option.",
- "MINANNOUNCEFREQUENCY": "Minimales Intervall für die Ansagen der Wartezeit. Verhindert, dass ein Nutzer bei häufigen Wechsel der Warteposition zu viele Ansagen erhält.",
- "PERIODICANNOUNCEFREQUENCY": "Legt fest, wie oft die sich wiederholenden Ansagen gespielt werden sollen",
- "ANNOUNCEPOSITIONLIMIT": "Wird verwendet, wenn der Wert für die Warteposition auf \"Limitierung\" oder \"Mehr\" gestellt wird.",
- "AFTERCALLWORKDURATION": "Die Dauer der Nacharbeit nach einem Anruf",
- "MEMBERDELAY": "Erstellt eine Verzögerung des Anrufes für bestimmte Agenten. Kann zum Skillbasierten Routing verwendet werden.",
- "MUSICONHOLD": "Legt die Haltemusik auf Basis der Warteschlange fest",
- "ANNOUNCETOAGENT": "Legt fest, ob der Agent vor Annahme des Anrufes einen Hinweis auf die eingehende Warteschlange hört",
- "RANDOMPERIODICANNOUNCE": "Bei ja, werden die zugewiesenen Ansagen zufällig abgespielt",
- "ANNOUNCEHOLDTIME": "Spielt die geschätzte Wartezeit zusammen oder ohne die sich wiederholenden Ansagen ab.",
- "ANNOUNCECALLERPOSITION": "Definiert die Ansage der Warteposition für den Anrufer. Nein = Niemals; Ja = Immer; Limitierung = nur, wenn die Zeit innerhalb dem eingetragenen Wert liegt; Mehr = nur, wenn die Zeit oberhalb dem eingetragenen Wert liegt ",
- "REPORTHOLDTIMEAGENT": "Haltezeiten der Agenten in den Berichten verwenden",
- "PERIODICANNOUNCE": "Sich wiederholende Ansagen; können je nach Konfiguration in definierter Reihenfolge oder zufällig abgespielt werden.",
- "HOLDTIMEANNOUNCE": "Ansage der Wartezeit. Leer lassen zum Überspringen",
- "YOUARENEXTANNOUNCE": "Ansage \"Sie sind an erster Position der Warteschlange\", Leer lassen zum Überspringen",
- "THEREAREANNOUNCE": "Ansage \"Es befinden sich..\" Leer lassen zum Überspringen",
- "WAITINGCALLSANNOUNCE": "Ansage \"...Anrufe in der Warteschlange\" Leer lassen zum Überspringen",
- "ESTIMATEDHOLDTIMEANNOUNCE": "Ansage: \"Die geschätzte Wartezeit beträgt derzeit...\" Leer lassen zum Überspringen",
- "MINUTESANNOUNCE": "Ansage \"Minuten\"",
- "MINUTEANNOUNCE": "Ansage \"Minute\"",
- "SECONDSANNOUNCE": "Ansage \"Sekunden\" Leer lassen zum Überspringen",
- "THANKYOUANNOUNCE": "Ansage \"Vielen Dank für Ihre Geduld\" Leer lassen zum Überspringen",
- "AFTERCALLWORK": "Wenn aktiviert, erhalten die Agenten eine kurze Pause nach jedem Anruf",
- "AUTOPAUSE": "Aktiviert/Deaktiviert die automatische Pause der Agenten, bei einem verpassten Anruf. Hinweis: bezieht sich dann auf alle Anruf-Warteschlangen des Agenten.",
- "RINGINUSE": "Verhindert das Klingeln bei Agenten, deren Nebenstelle in Verwendung ist",
- "TIMEOUTRESTART": "Wenn ja, wird die Zeitüberschreitung bei Agenten mit \"Besetzt\" oder \"Verbindungsfehler\"-Status übersprungen",
- "CONTEXT": "Ermöglicht einem Anrufer, durch Drücken einer einzelnen Taste, die Warteschlange zu verlassen.",
- "SETINTERFACEVARIABLES": "Definiert die Variablen im Interface, welche bei einem Anruf übergeben werden können. ",
- "SETQUEUEVARIABLES": "Definiert die Variablen in der Warteschlange, welche bei einem Anruf übergeben werden können. ",
- "SETQUEUEENTRYVARIABLES": "Definiert die Variablen beim Eintritt in die Warteschlange, welche bei einem Anruf übergeben werden können. ",
+ "TIMEOUT": "Gibt die Anzahl von Sekunden an, die das Gerät.",
+ "MAXLENGTH": "Gibt die maximale Anzahl der Anrufer, die in der Warteschlange. Ein Wert von Null bedeutet, dass eine unbegrenzte Anzahl von Anrufern in der Warteschlange sind erlaubt.",
+ "RETRY": "Gibt die Anzahl der Sekunden, die gewartet wird, bevor das nächste Mitglied in die Warteschlange, wenn der Wert für die Zeitüberschreitung erschöpft ist, während versucht wird, den ein Mitglied der Warteschlange.",
+ "WRAPUPTIME": "Die Anzahl der Sekunden, die ein Mitglied in einer Warteschlange verfügbar, nachdem Sie einen Anruf.",
+ "WEIGHT": "Legt das Gewicht einer Warteschlange. Eine Warteschlange mit einem höheren Gewicht definiert werden erste Priorität, wenn Mitglieder, die mit mehreren Warteschlangen.",
+ "JOINWHENEMPTY": "Steuert, ob ein Anrufer wird zur Warteschlange hinzugefügt werden, wenn keine Mitglieder verfügbar sind.",
+ "LEAVEWHENEMPTY": "Zur Kontrolle, ob die Anrufer aus der Warteschlange, wenn die Mitglieder nicht mehr bereit sind, Anrufe zu beantworten.",
+ "ANNOUNCEFREQUENCY": "Legt fest, wie oft sollten wir den Anrufer ankündigen und/oder geschätzte Wartezeit in der Warteschlange. Setzen Sie diesen Wert auf Null, um die Funktion zu deaktivieren.",
+ "MINANNOUNCEFREQUENCY": "Gibt die minimale Zeit, die verstreichen müssen, bevor wir Ihnen die Anrufer in der Warteschlange wieder. Dieser wird verwendet, wenn der Anrufer die Position kann sich häufig ändern, um zu verhindern, dass der Anrufer hören mehrere Updates in einem kurzen Zeitraum.",
+ "PERIODICANNOUNCEFREQUENCY": "Gibt an, wie oft wir sollten regelmäßige Ansagen, die dem Anrufer vorgespielt werden.",
+ "ANNOUNCEPOSITIONLIMIT": "Sie kann verwendet werden, wenn Sie definiert haben, verkünden-Position entweder als Begrenzung oder mehr.",
+ "AFTERCALLWORKDURATION": "Die Dauer der Pause durch die Option \"Arbeit nach Anruf",
+ "MEMBERDELAY": "Sie kann verwendet werden, wenn Sie wollen, dass es eine Verzögerung, bevor der Anrufer und Mitglied der Warteschlange, die miteinander verbunden sind.",
+ "MUSICONHOLD": "Setzt die Musik klasse verwendet werden, die von einer bestimmten Warteschlange an.",
+ "ANNOUNCETOAGENT": "Für die Wiedergabe einer Ansage auf den Agenten, der den Anruf entgegengenommen hat, ihn wissen zu lassen, was der Anrufer die Warteschlange aus.",
+ "RANDOMPERIODICANNOUNCE": "Falls auf Ja eingestellt, wird die festgelegte regelmäßige Mitteilungen in einer zufälligen Reihenfolge.",
+ "ANNOUNCEHOLDTIME": "Legt fest, ob die geschätzte Wartezeit gespielt werden sollte zusammen mit den regelmäßigen Ankündigungen.",
+ "ANNOUNCECALLERPOSITION": "Legt fest, ob es sich bei dem Anrufer seine Position in der Warteschlange mitgeteilt werden sollten. Wenn die Einstellung Nein lautet, die Position wird nicht bekannt gegeben. Falls auf Ja eingestellt, wird die Position des Anrufers wird immer bekannt gegeben. Wenn der Wert überschritten wird, wird der Anrufer hört ihre Position in der Warteschlange nur, wenn er sich innerhalb der Grenze von AK-Position. Wenn der Wert auf Mehr, hört der Anrufer ihre Position, wenn es über die Zahl von AK-Position.",
+ "REPORTHOLDTIMEAGENT": "Die Berichterstattung über die CLI des Anrufers mit der Zeit in der Warteschleife in der Warteschlange vor.",
+ "PERIODICANNOUNCE": "Eine Reihe von regelmäßigen Mitteilungen gespielt zu werden, in der Reihenfolge wiedergegeben, in der sie definiert sind.",
+ "HOLDTIMEANNOUNCE": "Wenn nicht definiert, wird die Standardeinstellung (\"Hold\"). Wenn Sie auf einen leeren Wert, wird die Aufforderung werden nicht gespielt.",
+ "YOUARENEXTANNOUNCE": "Wenn nicht definiert, wird die Standardeinstellung (\"Sie sind jetzt in erster Linie\"). Wenn Sie auf einen leeren Wert, wird die Aufforderung werden nicht gespielt.",
+ "THEREAREANNOUNCE": "Wenn nicht definiert, wird die Standardeinstellung (\"Es gibt\"). Wenn Sie auf einen leeren Wert, wird die Aufforderung werden nicht gespielt.",
+ "WAITINGCALLSANNOUNCE": "Wenn nicht definiert, wird die Standardeinstellung (\"Wartende Anrufe\"). Wenn Sie auf einen leeren Wert, wird die Aufforderung werden nicht gespielt.",
+ "ESTIMATEDHOLDTIMEANNOUNCE": "Wenn nicht definiert, wird die Standardeinstellung (\"Die voraussichtliche Wartezeit ist\"). Wenn Sie auf einen leeren Wert, wird die Aufforderung werden nicht gespielt.",
+ "MINUTESANNOUNCE": "Wenn nicht definiert, wird die Standardeinstellung (\"min\"). Wenn Sie auf einen leeren Wert, wird die Aufforderung werden nicht gespielt.",
+ "MINUTEANNOUNCE": "Wenn nicht definiert, wird die Standardeinstellung (\"min\"). Wenn Sie auf einen leeren Wert, wird die Aufforderung werden nicht gespielt.",
+ "SECONDSANNOUNCE": "Wenn nicht definiert, wird die Standardeinstellung (\"Sekunden\"). Wenn Sie auf einen leeren Wert, wird die Aufforderung werden nicht gespielt.",
+ "THANKYOUANNOUNCE": "Wenn nicht definiert, wird die Standardeinstellung (\"Vielen Dank für Ihre Geduld.\"). Wenn Sie auf einen leeren Wert, wird die Aufforderung werden nicht gespielt.",
+ "AFTERCALLWORK": "Wenn der Agent aktiv ist, wird auf eine Pause nach einer abgeschlossenen Anruf in der Warteschlange",
+ "AUTOPAUSE": "Aktiviert/Deaktiviert die automatische Unterbrechung der Mitglieder, die es versäumen, um einen Anruf zu beantworten. Wenn aktiv, wird diese Mitgliedstaaten angehalten zu werden in allen Warteschlangen er Mitglied ist.",
+ "RINGINUSE": "Verwendet werden, um zu vermeiden, Senden von Anrufen an Mitglieder, deren Status im Einsatz ist.",
+ "TIMEOUTRESTART": "Falls auf Ja eingestellt, wird das Timeout für einen Agenten zu beantworten, wenn entweder ein Besetztzeichen oder wird mit dem Status \"Überlastung des Kanals.",
+ "CONTEXT": "Ermöglicht einem Anrufer zu beenden, die die Warteschlange durch Drücken einer einzigen Taste MFV-Ziffer. Wenn Sie einen Kontext angegeben ist und der Anrufer gibt eine Zahl, Ziffer wird versuchen, die angepasst werden können, im Rahmen festgelegt, und es wird auch weiterhin die Ausführung Nummernplan.",
+ "SETINTERFACEVARIABLES": "Falls auf Ja eingestellt, kurz vor dem Anrufer, die mit einer Warteschlange, die einige Variablen werden(siehe wiki)",
+ "SETQUEUEVARIABLES": "Falls auf Ja eingestellt, kurz vor dem Anrufer, die mit einer Warteschlange und kurz vor dem Anrufer die Warteschlange verlassen einige Variablen werden(siehe wiki)",
+ "SETQUEUEENTRYVARIABLES": "Falls auf Ja eingestellt, kurz vor dem Anrufer, die mit einer Warteschlange, die einige Variablen werden(siehe wiki)",
"RECORDING": "Aktivieren der Aufzeichnung",
- "VOICEMAIL_CONTEXT": "Kontext der verwendeten Nebenstellen",
+ "VOICEMAIL_CONTEXT": "Im Rahmen der relativen Erweiterung.",
"NAME": "Nur Zahlen, Buchstaben und Sonderzeichen (._) werden unterstützt.",
"CALLERIDALL": "Unterstützte Formate: \"CallerId\" & lt; number & gt;",
"CALLER_ID": "Unterstützte Formate: \"CallerId\" & lt; number & gt;",
- "MANDATORYDISPOSITIONPAUSEID": "Pausenstatus, welcher während einer erforderlichen Qualifizierung verwendet wird",
- "SERVICELEVEL": "Zweite Einstellungen für Service-Level (Standard = 0, kein SL). Wird für Service Level-Statistiken verwendet (Anrufe werden innerhalb des Service Level-Zeitrahmens beantwortet)",
- "MONITORFORMAT": "Gibt das Format der Aufzeichnungsdatei an. Bei 'inaktiv', werden Anrufe nicht aufgezeichnet"
+ "MANDATORYDISPOSITIONPAUSEID": "Pausenstatus, der während der Zwangsdisposition festgelegt werden soll",
+ "SERVICELEVEL": "Zweite Einstellungen für Service Level (Standard = 0, kein SL). Wird für Service Level-Statistiken verwendet (Anrufe werden innerhalb des Service Level-Zeitrahmens beantwortet)",
+ "MONITORFORMAT": "Gibt das Format der Aufnahmedatei an. Wenn es auf 'inaktiv' gesetzt ist, werden Anrufe nicht aufgezeichnet",
+ "SAVE_ROUTES": "Die Streckenführung wurde geändert. Denken Sie daran, zu speichern, wenn Sie Ihre Änderungen nicht verlieren möchten."
},
- "MUSICONHOLD": "Wartemusik",
- "ANNOUNCETOAGENT": "Ansage an Agenten",
- "ANNOUNCEMENTS": "Ansagen",
- "ADVANCED": "Erweitert",
- "ANNOUNCEFREQUENCY": "Ansagefrequenz",
- "MINANNOUNCEFREQUENCY": "Min. Ansagefrequenz",
- "PERIODICANNOUNCEFREQUENCY": "Frequenz wiederholende Ansagen",
- "RANDOMPERIODICANNOUNCE": "Zufällige Ansagen",
- "ANNOUNCEHOLDTIME": "Wartezeit ansagen",
- "ANNOUNCECALLERPOSITION": "Warteposition ansagen",
- "ANNOUNCEPOSITIONLIMIT": "Limitierung Warteposition ansagen",
- "REPORTHOLDTIMEAGENT": "Haltezeit in Agentenbericht",
- "PERIODICANNOUNCE": "Wiederholende Ansagen",
- "HOLDTIMEANNOUNCE": "Wartezeit ansagen",
- "YOUARENEXTANNOUNCE": "Erste Position",
- "THEREAREANNOUNCE": "Es befinden sich",
- "WAITINGCALLSANNOUNCE": "Wartende Anrufe",
- "ESTIMATEDHOLDTIMEANNOUNCE": "Geschätzte Wartezeit ansagen",
- "MINUTESANNOUNCE": "Minuten",
- "MINUTEANNOUNCE": "Minute",
- "SECONDSANNOUNCE": "Sekunden",
+ "MUSICONHOLD": "Musik auf Halten",
+ "ANNOUNCETOAGENT": "Geben Sie Agent",
+ "ANNOUNCEMENTS": "Ankündigungen",
+ "ADVANCED": "Erweiterte",
+ "ANNOUNCEFREQUENCY": "Frequenz ankündigen",
+ "MINANNOUNCEFREQUENCY": "Minimale Frequenz ankündigen",
+ "PERIODICANNOUNCEFREQUENCY": "Periodische Frequenz ankündigen",
+ "RANDOMPERIODICANNOUNCE": "Random Periodische verkünden",
+ "ANNOUNCEHOLDTIME": "Geben Sie Zeit",
+ "ANNOUNCECALLERPOSITION": "Position des Anrufers bekannt",
+ "ANNOUNCEPOSITIONLIMIT": "Geben Position Limit",
+ "REPORTHOLDTIMEAGENT": "Bericht Agenten",
+ "PERIODICANNOUNCE": "Periodische verkünden",
+ "HOLDTIMEANNOUNCE": "Zeit in der Warteschleife verkünden",
+ "YOUARENEXTANNOUNCE": "\"Sie sind weiter' verkünden",
+ "THEREAREANNOUNCE": "'Es gibt' verkünden",
+ "WAITINGCALLSANNOUNCE": "Wartende Anrufe,",
+ "ESTIMATEDHOLDTIMEANNOUNCE": "Geschätzte Zeit halten,",
+ "MINUTESANNOUNCE": "Minuten ankündigen",
+ "MINUTEANNOUNCE": "Minute verkünden",
+ "SECONDSANNOUNCE": "Sekunden,",
"THANKYOUANNOUNCE": "'Vielen Dank' verkünden",
"AUTOPAUSE": "Auto Pause",
- "AFTERCALLWORK": "Nacharbeit",
- "AFTERCALLWORKDURATION": "Dauer Nacharbeit",
- "RINGINUSE": "Klingeln bei Besetzt",
- "MEMBERDELAY": "Verzögerung",
- "TIMEOUTRESTART": "Zeitüberschreitung",
+ "AFTERCALLWORK": "Arbeit nach Anruf",
+ "AFTERCALLWORKDURATION": "Arbeit nach Anruf Dauer",
+ "RINGINUSE": "Ring in Verwendung",
+ "MEMBERDELAY": "Die Verzögerung",
+ "TIMEOUTRESTART": "Timeout starten",
"MONITORFORMAT": "Aufzeichnungsformat",
- "SETINTERFACEVARIABLES": "Interface-Variablen",
- "SETQUEUEVARIABLES": "Warteschlangen-Variablen",
- "SETQUEUEENTRYVARIABLES": "Warteschlangen-Eintritts-Variablen",
+ "SETINTERFACEVARIABLES": "Die Interface- Variablen",
+ "SETQUEUEVARIABLES": "Die Warteschlange Variablen",
+ "SETQUEUEENTRYVARIABLES": "Die Warteschlange ENTRY-Variablen",
"VARIABLE": "Variable",
- "CONTEXT": "Kontext Austritt aus Warteschlange",
+ "CONTEXT": "Kontext",
"SAVE": "Speichern",
"SETTINGS": "Einstellungen",
- "INBOUNDROUTES": "Eingehende Routen",
+ "INBOUNDROUTES": "Ankommende Routen",
"PHONENUMBER": "Telefonnummer",
"ADD_INBOUNDROUTE": "Eingehende Route hinzufügen",
- "EDIT_INBOUNDROUTE": "Eingehende Route bearbeiten",
- "DELETE_INBOUNDROUTE": "Eingehende Route löschen",
+ "EDIT_INBOUNDROUTE": "Route für eingehende Anrufe bearbeiten.",
+ "DELETE_INBOUNDROUTE": "Löschen der Route für eingehende Anrufe",
"ACTIONS": "Aktionen",
- "OUTBOUNDROUTES": "Ausgehende Routen",
- "DESTINATIONPATTERN": "Ziel-Pattern",
+ "OUTBOUNDROUTES": "Abgehende Routen",
+ "DESTINATIONPATTERN": "Ziel Muster",
"ADD_OUTBOUNDROUTE": "Ausgehende Route hinzufügen",
- "EDIT_OUTBOUNDROUTE": "Ausgehende Route bearbeiten",
- "DELETE_OUTBOUNDROUTE": "Ausgehende Route löschen",
- "CUTDIGITS": "Ziffern",
- "RECORDING": "Aufzeichnung",
+ "EDIT_OUTBOUNDROUTE": "Abgehende Route bearbeiten",
+ "DELETE_OUTBOUNDROUTE": "Abgehende Route löschen",
+ "CUTDIGITS": "Die Ziffern",
+ "RECORDING": "Aufnahme",
"RECORDINGFORMAT": "Aufzeichnungsformat",
"INTERNALROUTES": "Interne Routen",
- "ADD_INTERNALROUTE": "Interne Route hinzufügen",
+ "ADD_INTERNALROUTE": "Fügen Sie interne Routen",
"EDIT_INTERNALROUTE": "Interne Route bearbeiten",
- "DELETE_INTERNALROUTE": "Interne Route löschen",
+ "DELETE_INTERNALROUTE": "Interne Routen löschen",
"CONTEXTS": "Kontexte",
- "ADD_CONTEXT": "Kontext hinzufügen",
+ "ADD_CONTEXT": "Rahmen hinzufügen",
"EDIT_CONTEXT": "Kontext bearbeiten",
- "DELETE_CONTEXT": "Kontext löschen",
- "VOICEMAILS": "Voicemails",
- "ADD_VOICEMAIL": "Voicemail hinzufügen",
- "EDIT_VOICEMAIL": "Voicemail bearbeiten",
+ "DELETE_CONTEXT": "Löschen von Rahmen",
+ "VOICEMAILS": "Von Voicemails",
+ "ADD_VOICEMAIL": "Fügen Sie Voicemail",
+ "EDIT_VOICEMAIL": "Bearbeiten von Voicemail",
"DELETE_VOICEMAIL": "Voicemail löschen",
- "FULLNAME": "Vollständiger Name",
+ "FULLNAME": "Voller Name",
"EMAIL": "E-Mail",
"MAILBOX": "Mailbox",
"PASSWORD": "Passwort",
"CONFIRM_PASSWORD": "Passwort bestätigen",
"TIMEZONE": "Zeitzone",
- "ATTACH": "Anhängen",
+ "ATTACH": "Befestigen Sie",
"ENVELOPE": "Umschlag",
"DELETE": "Löschen",
"EMAILBODY": "E-Mail-Text",
"EMAILSUBJECT": "Betreff der E-Mail",
- "MAXSECONDS": "Max. Sekunden",
+ "MAXSECONDS": "In Sekunden",
"MAXMESSAGES": "Max. Nachrichten",
"MESSAGES": "Nachrichten",
"SORT": "Sortieren",
- "ADD_MUSICONHOLD": "Wartemusik hinzufügen",
- "MUSICONHOLDS": "Wartemusik",
- "EDIT_MUSICONHOLD": "Wartemusik bearbeiten",
- "DELETE_MUSICONHOLD": "Wartemusik löschen",
+ "ADD_MUSICONHOLD": "Hinzufügen von Musik auf Halten",
+ "MUSICONHOLDS": "Musik auf Halten",
+ "EDIT_MUSICONHOLD": "Bearbeiten Musik auf Halten",
+ "DELETE_MUSICONHOLD": "Löschen Sie Musik auf Halten",
"DIRECTORY": "Verzeichnis",
"AUDIOFILES": "Audiodateien",
- "RECORDINGS": "Aufzeichnungen",
- "CHANSPY": "Listen-In",
+ "RECORDINGS": "Aufnahmen",
+ "CHANSPY": "ChanSpy",
"PREFIX": "Präfix",
"OPTIONS": "Optionen",
- "AUTH": "Authentifizierung",
- "ADD_CHANSPY": "Listen-In hinzufügen",
- "EDIT_CHANSPY": "Listen-In bearbeiten",
- "DELETE_CHANSPY": "Listen-In löschen",
+ "AUTH": "Auth",
+ "ADD_CHANSPY": "Fügen Sie ChanSpy",
+ "EDIT_CHANSPY": "Bearbeiten Sie ChanSpy",
+ "DELETE_CHANSPY": "Löschen Sie ChanSpy",
"AGENTS": "Agenten",
"TELEPHONES": "Telefone",
"QUEUES": "Warteschlangen",
- "QUEUE_CALLS": "Anrufe in Warteschlange",
- "QUEUE_PARAMETERS": "Warteschlangen Parameter",
+ "QUEUE_CALLS": "Anrufe aus einer Warteschlange",
+ "QUEUE_PARAMETERS": "Queue Parameter",
"ABANDONED_CALLS": "Abgebrochene Anrufe",
"OUTBOUND_CALLS": "Ausgehende Anrufe",
"AGI": "AGI",
- "DIAL": "Wählen",
+ "DIAL": "Kurzwahl",
"CALLYSQUARE": "CallySquare",
- "INTERNALDIAL": "Interner Anruf",
- "EXTERNALDIAL": "Externer Anruf",
- "RINGGROUP": "Rufgruppe",
+ "INTERNALDIAL": "Interne Wahl",
+ "EXTERNALDIAL": "Externes Wählen",
+ "RINGGROUP": "Ring-Gruppe",
"PLAYBACK": "Wiedergabe",
"QUEUE": "Warteschlange",
- "SET": "Einstellen",
+ "SET": "Set",
"VOICEMAIL": "Voicemail",
"GOTO": "Gehe zu",
"HANGUP": "Auflegen",
- "CUSTOM": "Benutzerdefiniert",
+ "CUSTOM": "Benutzerdefinierte",
"PROJECT": "Cally-Square Projekt",
"TECHNOLOGY/RESOURCE": "Technologie-/Ressourcen",
"URL": "URL",
- "EDIT_APP": "App bearbeiten.",
+ "EDIT_APP": "Anwendung bearbeiten.",
"EDIT_INTERVAL": "Intervall bearbeiten",
- "DELETE_APP": "App löschen",
+ "DELETE_APP": "Anwendung löschen",
"INTERVALS": "Intervalle",
"USER": "Benutzer",
- "TRUNK": "Trunk",
+ "TRUNK": "Amtsleitung",
"PHONE": "Telefon",
"AUDIO_FILES": "Audiodateien",
- "ANNOUNCE_OVERRIDES": "Überschreibungen ankündigen",
+ "ANNOUNCE_OVERRIDES": "Überschreibt ankündigen",
"MACRO": "Makro",
"GOSUB": "GoSub",
"RULE": "Regel",
"ANSWER": "Antwort",
"VALUE": "Wert",
"MAILBOX@CONTEXT": "Mailbox@Kontext",
- "EXTENSION": "Nebenstelle",
+ "EXTENSION": "Erweiterung",
"PRIORITY": "Priorität",
- "HANGUP_CAUSE": "Ablehnungsgrund",
- "OUTBOUNDDIAL": "Extern wählen",
- "CALLER_ID": "Anrufer-ID",
+ "HANGUP_CAUSE": "Ursache auflegen",
+ "OUTBOUNDDIAL": "Wählen Sie für abgehende Anrufe",
+ "CALLER_ID": "Die Anrufer-ID",
"NO_MESSAGE_AVAILABLE": "Keine Meldungen vorhanden",
"NO_SOUND_AVAILABLE": "Kein Ton verfügbar",
- "VOICERECORDINGS": "Sprachaufzeichnungen",
- "CHANSPIES": "Listen-Ins",
- "VOICE": "Anrufe",
+ "VOICERECORDINGS": "Sprachaufnahmen",
+ "CHANSPIES": "Chan Spies",
+ "VOICE": "Voice",
"REALTIME": "Echtzeit",
- "ID": "ID",
+ "ID": "Id",
"VOICEMAIL_CONTEXT": "Kontext",
"NO_MOHSOUND_AVAILABLE": "Keine Wartemusik verfügbar",
"FILE": "Datei",
- "ADD_MOHSOUND": "Musik bei Halten hinzufügen",
- "DOWNLOAD_MOHSOUND": "Musik bei Halten herunterladen",
- "DELETE_MOHSOUND": "Musik bei Halten löschen",
+ "ADD_MOHSOUND": "Hinzufügen von Musik auf Halten sound",
+ "DOWNLOAD_MOHSOUND": "Download Music-on-Hold sound",
+ "DELETE_MOHSOUND": "Löschen Sie Music On Hold sound",
"UNIQUEID": "Eindeutige ID",
"AGENT": "Agent",
"TYPE": "Typ",
"RATING": "Bewertung",
"AUDIO": "Audio",
"DATE": "Datum",
- "NEW_VOICEQUEUE": "Neue Anruf-Warteschlange",
- "NEW_INBOUNDROUTE": "Neue eingehende Route",
- "NEW_OUTBOUNDROUTE": "Neue ausgehende Route",
- "NEW_INTERNALROUTE": "Neue interne Route",
- "NEW_CONTEXT": "Neuer Kontext",
+ "NEW_VOICEQUEUE": "Neue Stimme der Warteschlange",
+ "NEW_INBOUNDROUTE": "Neue Route für eingehende Anrufe",
+ "NEW_OUTBOUNDROUTE": "Neue abgehende Route",
+ "NEW_INTERNALROUTE": "Neue interne Routen",
+ "NEW_CONTEXT": "Neue Kontext",
"NEW_VOICEMAIL": "Neue Voicemail",
- "NEW_MUSICONHOLD": "Neue Haltemusik",
- "NEW_CHANSPY": "Neuer Listen-In",
- "PENALTY": "Verzögerung",
- "ADD_TEAM_TO_VOICEQUEUE": "Team zur Warteschlange hinzufügen",
- "ADD_AGENT_TO_VOICEQUEUE": "Agenten zur Warteschlange hinzufügen",
- "EDIT_DIAL": "Wählen anpassen",
+ "NEW_MUSICONHOLD": "Neue Musik auf Halten",
+ "NEW_CHANSPY": "Neue ChanSpy",
+ "PENALTY": "Strafe",
+ "ADD_TEAM_TO_VOICEQUEUE": "Team hinzufügen, Warteschlange",
+ "ADD_AGENT_TO_VOICEQUEUE": "Hinzufügen von Agenten der Warteschlange an die Mailbox",
+ "EDIT_DIAL": "Wählen Sie Bearbeiten.",
"EDIT_AGI": "AGI bearbeiten",
- "EDIT_INTERNALDIAL": "Internes Wählen bearbeiten",
- "EDIT_EXTERNALDIAL": "Externes Wählen bearbeiten",
- "EDIT_RINGGROUP": "Rufgruppe bearbeiten",
- "EDIT_PLAYBACK": "Wiedergabe bearbeiten",
- "EDIT_QUEUE": "Warteschlange bearbeiten",
- "EDIT_SET": "Set bearbeiten",
- "EDIT_GOTO": "Gehe zu bearbeiten",
- "EDIT_HANGUP": "Auflegen bearbeiten",
- "EDIT_CUSTOM": "Benutzerdef. Einstellungen bearbeiten",
+ "EDIT_INTERNALDIAL": "Interne Wahl bearbeiten.",
+ "EDIT_EXTERNALDIAL": "Wählen Sie Externen bearbeiten",
+ "EDIT_RINGGROUP": "Gruppe bearbeiten",
+ "EDIT_PLAYBACK": "Bearbeiten Sie die Wiedergabe",
+ "EDIT_QUEUE": "Bearbeiten von Warteschlangen",
+ "EDIT_SET": "Bearbeiten",
+ "EDIT_GOTO": "Gehe zu bearbeiten.",
+ "EDIT_HANGUP": "Bearbeiten Sie Auflegen",
+ "EDIT_CUSTOM": "Bearbeiten von benutzerdefinierten",
"DURATION": "Dauer",
- "RECEIVED_AT": "Eingegangen am",
+ "RECEIVED_AT": "Empfangen am",
"YES": "Ja",
- "NO": "Nein",
- "HANGUPCAUSE_1": "1 = Nummer nicht zugewiesen",
- "HANGUPCAUSE_16": "16 = Beenden durch Nutzer",
- "HANGUPCAUSE_17": "17 = Besetzt",
- "HANGUPCAUSE_18": "18 = Keine Antwort (Nebenstelle nicht verbunden)",
+ "NO": "Keine",
+ "HANGUPCAUSE_1": "1 = Nicht zugewiesene Nummer",
+ "HANGUPCAUSE_16": "16 = Normail Anruf löschen",
+ "HANGUPCAUSE_17": "17 = Benutzer besetzt",
+ "HANGUPCAUSE_18": "18 = Keine Reaktion (Telefon Gerät nicht verbunden)",
"HANGUPCAUSE_21": "21 = Anruf abgelehnt",
- "HANGUPCAUSE_22": "22 = Nummer geändert",
- "HANGUPCAUSE_27": "27 = Ziel nicht verfügbar",
- "HANGUPCAUSE_38": "38 = Netzwerk nicht verfügbar",
+ "HANGUPCAUSE_22": "22 = Anzahl geändert",
+ "HANGUPCAUSE_27": "27 = Ziel nicht in Ordnung",
+ "HANGUPCAUSE_38": "38 = Netzwerk aus, um",
"HANGUPCAUSE_41": "41 = vorübergehende Störung",
- "RANDOM": "Zufall",
+ "RANDOM": "Random",
"ALPHABETICAL": "Alphabetisch",
"NO_APPS_AVAILABLE": "Keine Anwendungen verfügbar",
- "DOWNLOAD_VOICERECORDING": "Sprachaufzeichnung herunterladen",
- "DELETE_VOICERECORDING": "Sprachaufzeichnung löschen",
- "INTERNAL": "Intern",
+ "DOWNLOAD_VOICERECORDING": "Download Voice Recording",
+ "DELETE_VOICERECORDING": "Löschen von Voice Recording",
+ "INTERNAL": "Interne",
"PHONE_STATE": "Telefonstatus",
"PHONE_STATUS": "Telefonstatus",
"TRUNK_STATUS": "Trunk Status",
"REGISTERED": "Registriert",
- "UNREGISTERED": "Nicht registriert",
+ "UNREGISTERED": "Unregistrierte",
"LAGGED": "Zurück",
"REACHABLE": "Erreichbar",
"UNREACHABLE": "Nicht erreichbar",
"UNKNOWN": "Unbekannt",
- "NOT_INUSE": "Nicht in Verwendung",
- "INUSE": "In Verwendung",
+ "NOT_INUSE": "Nicht in Gebrauch",
+ "INUSE": "Im Einsatz",
"BUSY": "Besetzt",
"INVALID": "Ungültig",
"UNAVAILABLE": "Nicht verfügbar",
"RINGING": "Klingeln",
- "ONHOLD": "Halten",
- "RING": "Klingeln",
- "UP": "Nach Oben",
- "INFO": "Information",
- "TRUNKS": "Trunks",
+ "ONHOLD": "Auf Halten",
+ "RING": "Ring",
+ "UP": "Bis",
+ "INFO": "Info",
+ "TRUNKS": "Amtsleitungen",
"REGISTRY": "Registrierung",
- "NO_REGISTRY": "Keine Registrierung",
+ "NO_REGISTRY": "Keine registry",
"LOGGED_IN": "Angemeldet",
"PAUSED": "Angehalten",
- "WAITING": "Wartezustand",
- "TALKING": "Im Gespräch",
- "DID": "DID",
+ "WAITING": "Warten",
+ "TALKING": "Sprechen",
+ "DID": "Haben",
"CALLER": "Anrufer",
- "TOTAL": "Gesamt",
+ "TOTAL": "Insgesamt",
"ANSWERED": "Beantwortet",
"ABANDONED": "Abgebrochen",
- "UNMANAGED": "Nicht bearbeitet",
- "AVG_HOLD_TIME": "Durchschnittliche Wartezeit",
- "AVG_DURATION": "Durchschnittliche Dauer",
- "AVG_BILLABLE": "Durchschnittliche abrechenbare Zeit",
- "SOURCE": "Ursprung",
+ "UNMANAGED": "Nicht verwaltete",
+ "AVG_HOLD_TIME": "Durchschnittl. Warteschleifenzeit",
+ "AVG_DURATION": "Av-Dauer",
+ "AVG_BILLABLE": "Avg Fakturierbaren",
+ "SOURCE": "Quelle",
"DESTINATION": "Ziel",
"REJECTED": "Abgelehnt",
"FAILED": "Fehlgeschlagen",
- "CALLED": "Angerufen",
+ "CALLED": "Aufgerufen",
"CONNECTED": "Verbunden",
"NO_RATING": "Keine Bewertung",
- "EDIT_VOICERECORDING": "Sprachaufzeichnungen verwalten",
+ "EDIT_VOICERECORDING": "Edit Voice Recording",
"APPLICATION_NAME": "Name der Anwendung",
"ARGUMENTS": "Argumente",
- "NO_AVAILABLE_INFO": "Keine Informationen verfügbar",
- "ADD_AGENT_TO_QUEUE": "Agenten zur Warteschlange hinzufügen",
- "DEFAULT_PAUSE": "Standard Pause",
+ "NO_AVAILABLE_INFO": "Keine verfügbaren Info",
+ "ADD_AGENT_TO_QUEUE": "Agent zur Warteschlange hinzufügen",
+ "DEFAULT_PAUSE": "Standard PAUSE",
"PAUSE": "Pause",
- "UNPAUSE": "Fortsetzen",
- "REDIRECT_TO_NUMBER": "Weiterleiten an Nummer",
- "REDIRECT_TO_AGENT": "Weiterleiten an Agenten",
- "AGENTADD_VOICEQUEUE": "Agenten zu Anruf-Warteschlange hinzufügen",
+ "UNPAUSE": "Pause",
+ "REDIRECT_TO_NUMBER": "Umleiten zu: Anzahl",
+ "REDIRECT_TO_AGENT": "Umleiten zu: Agent",
+ "AGENTADD_VOICEQUEUE": "Hinzufügen von Agenten der Warteschlange an die Mailbox",
"APPLICATION": "Anwendung",
"FILES": "Dateien",
"FORMAT": "Format",
"MODE": "Modus",
"RECORD": "Datensatz",
- "TEAMADD_VOICEQUEUE": "Team zur Anruf-Warteschlange hinzufügen",
- "NEW_MOHSOUND": "Neue Wartemusik",
- "DOWNLOAD_MESSAGE": "Herunterladen",
+ "TEAMADD_VOICEQUEUE": "Hinzufügen Team voicequeue",
+ "NEW_MOHSOUND": "Neue Musik auf Halten",
+ "DOWNLOAD_MESSAGE": "Download",
"DELETE_MESSAGE": "Löschen",
"QUEUE_PARAMS": "Queue Parameter",
- "TOTAL_OFFERED": "Gesamt",
+ "TOTAL_OFFERED": "Insgesamt",
"READY": "Bereit",
- "AGENTADD_QUEUE": "Agenten zur Warteschlange hinzufügen",
- "AGENTSADD_QUEUE": "Agenten zur Warteschlangen hinzufügen",
- "ALL_TEAMS": "Alle Teams",
+ "AGENTADD_QUEUE": "Agent hinzufügen Warteschlangen zu Voice",
+ "AGENTSADD_QUEUE": "Hinzufügen von Agenten der Warteschlange an die Mailbox",
+ "ALL_TEAMS": "Alle Mannschaften",
"SELECTED_TEAMS": "Ausgewählte Teams",
"ALL_AGENTS": "Alle Agenten",
"SELECTED_AGENTS": "Ausgewählte Agenten",
"CLOSING": "Schließen",
"TAGS": "Tags",
"WAITING_FOR_AGENT": "Warten auf Agenten",
- "EDIT_OUTBOUNDDIAL": "Wählverhalten ausgehend bearbeiten",
- "ACCOUNTNAME": "Kontoname",
+ "EDIT_OUTBOUNDDIAL": "Bearbeiten ausgehenden DFÜ",
+ "ACCOUNTNAME": "Konto Name",
"PAGE": "Seite",
"ROWSPERPAGE": "Zeilen pro Seite",
- "OF": "von",
- "DISPOSITION": "Qualifizierung",
+ "OF": "Von",
+ "DISPOSITION": "Disposition",
"WAITING_FOR_AGENTS": "Warten auf Agenten",
"CHAT": "Chat",
"MAIL": "E-Mail",
"OPENCHANNEL": "Offener Kanal",
"FAX": "Fax",
"NO_AGENT_ONLINE": "Kein Agent Online",
- "PARTIALPAUSE": "Teilpause",
+ "PARTIALPAUSE": "Teilweise Pause",
"STATUS": "Status",
"TIMER": "Timer",
"ALL": "Alle",
"IDLE": "Leerlauf",
- "EDIT_TRUNK": "Trunk bearbeiten",
+ "EDIT_TRUNK": "Bearbeiten Trunk",
"ACTIVE": "Aktiv",
- "CLEAR": "Leeren",
+ "CLEAR": "klar",
"CALLS": "Anrufe",
- "STARTEDAT": "Startdatum",
- "ENDEDAT": "Enddatum",
- "TAG": "Tag",
- "DETAILS": "Details",
+ "STARTEDAT": "Fing an bei",
+ "ENDEDAT": "Beendet bei",
+ "TAG": "Etikett",
+ "DETAILS": "Einzelheiten",
"BILLABLESECONDS": "Abrechenbare Sekunden",
- "ANSWEREDAT": "Beantwortet am",
- "NOTE": "Notiz",
+ "ANSWEREDAT": "Beantwortet bei",
+ "NOTE": "Hinweis",
"CLOSE": "Schließen",
- "SELECT_DATE": "Startdatum auswählen",
- "SELECT_TYPE": "Typ auswählen",
- "ABANDONEDCALLS": "Abgebrochene Anrufe",
+ "SELECT_DATE": "Wählen Sie Startdatum",
+ "SELECT_TYPE": "Art auswählen",
+ "ABANDONEDCALLS": "Verlassene Warteschlangenanrufe",
"ADD_VOICEPREFIX": "Präfix hinzufügen",
- "AGENTADD_VOICEPREFIX": "Agentenpräfix hinzufügen",
+ "AGENTADD_VOICEPREFIX": "Fügen Sie Agent zu Präfix hinzu",
"DELETE_VOICEPREFIX": "Präfix löschen",
"EDIT_VOICEPREFIX": "Präfix bearbeiten",
"NEW_VOICEPREFIX": "Neues Präfix",
- "VOICEPREFIXES": "Präfixe für Sprachanrufe",
+ "VOICEPREFIXES": "Vorgegebene Präfixe",
"CALLERIDALL": "Anruferidentifikation",
"OUTBOUNDROUTE": "Ausgehende Route",
- "LOGIN_TIME": "Zeit angemeldet",
- "PAUSE_TIME": "Zeit in Pause",
+ "LOGIN_TIME": "Login-Zeit",
+ "PAUSE_TIME": "Pausenzeit",
"DIALER": "Dialer",
- "INBOUND": "Eingehend",
+ "INBOUND": "Eingehende",
"OUTBOUND": "Ausgehend",
- "MANDATORYDISPOSITION": "Qualifikation erforderlich",
- "MANDATORYDISPOSITIONPAUSEID": "PausenID bei erforderlicher Qualifizierung",
- "TEAMS_ASSOCIATION": "Teamzuweisung",
+ "MANDATORYDISPOSITION": "Zwingende Disposition",
+ "MANDATORYDISPOSITIONPAUSEID": "Status der obligatorischen Dispositionspause",
+ "TEAMS_ASSOCIATION": "Vereinigung der Mannschaften",
"CANT_DOWNLOAD_THIS_FILE": "Diese Datei kann nicht heruntergeladen werden",
"FILE_NOT_FOUND": "Datei nicht gefunden",
"SCREENRECORDING": "Bildschirmaufzeichnung verwalten",
- "START_SCREENRECORDING": "Bildschirmaufzeichnung starten",
- "STOP_SCREENRECORDING": "Bildschirmaufzeichnung beenden",
- "TOOLTIP_SCREENRECORDING_OFF": "Bildschirmaufzeichnung verfügbar",
- "TOOLTIP_SCREENRECORDING_ON": "Bildschirmaufzeichnung läuft",
- "WRONG_EXTENSION": "Ungültige Dateiendung",
+ "START_SCREENRECORDING": "Starten Sie die Bildschirmaufnahme",
+ "STOP_SCREENRECORDING": "Beenden Sie die Bildschirmaufnahme",
+ "TOOLTIP_SCREENRECORDING_OFF": "Bildschirmaufnahme verfügbar",
+ "TOOLTIP_SCREENRECORDING_ON": "Bildschirmaufnahme läuft",
+ "WRONG_EXTENSION": "Die Datei weist die falsche Erweiterung auf",
"DOWNLOADTRANSCRIBE_VOICERECORDING": "Transkript herunterladen",
"FAILUREREASON": "Fehlergrund",
- "RUNSENTIMENT_VOICERECORDING": "Starten Sprachaufzeichnung inkl. Sentiment",
- "RUNTRANSCRIBESENTIMENT_VOICERECORDING": "Transkription und Sentinemtaufzeichnung starten",
- "RUNTRANSCRIBE_VOICERECORDING": "Transkription starten",
- "SENTIMENT": "Sentiment",
- "SENTIMENTANALYSIS": "Sentiment-Analyse",
+ "RUNSENTIMENT_VOICERECORDING": "Führen Sie Sentiment",
+ "RUNTRANSCRIBESENTIMENT_VOICERECORDING": "Führen Sie Transcribe & Sentiment aus",
+ "RUNTRANSCRIBE_VOICERECORDING": "Führen Sie Transcribe aus",
+ "SENTIMENT": "Gefühl",
+ "SENTIMENTANALYSIS": "Stimmungsanalyse",
"SENTIMENT_MIXED": "Gemischt",
"SENTIMENT_NEGATIVE": "Negativ",
"SENTIMENT_NEUTRAL": "Neutral",
"SENTIMENT_POSITIVE": "Positiv",
"TEXT": "Text",
"TRANSCRIBE": "Transkribieren",
- "TRANSCRIBESTATUS_COMPLETED": "Transkription abgeschlossen",
- "TRANSCRIBESTATUS_FAILED": "Transkription fehlgeschlagen",
+ "TRANSCRIBESTATUS_COMPLETED": "Abgeschlossen",
+ "TRANSCRIBESTATUS_FAILED": "Gescheitert",
"TRANSCRIBESTATUS_IN_PROGRESS": "In Bearbeitung",
"TRANSCRIBESTATUS_NEW": "Neu",
"TRANSCRIPT": "Transkript",
"TRANSCRIPTANALYSIS": "Transkript & Analyse",
"SERVICELEVEL": "Service Level",
- "SECOND_LEVEL_DISPOSITION": "Qualifizierung der zweiten Ebene",
- "THIRD_LEVEL_DISPOSITION": "Qualifizierung der dritten Ebene",
- "TEAMADD_VOICEPREFIX": "Team zum Präfix hinzufügen",
+ "SECOND_LEVEL_DISPOSITION": "Disposition der zweiten Ebene",
+ "THIRD_LEVEL_DISPOSITION": "Disposition der dritten Ebene",
"ALIAS": "Alias"
}
}
"ADD_VOICEPREFIX": "Add Prefix",
"EDIT_VOICEPREFIX": "Edit Prefix",
"AGENTADD_VOICEPREFIX": "Add Agent to Prefix",
- "TEAMADD_VOICEPREFIX": "Add Team to Prefix",
"DELETE_VOICEPREFIX": "Delete Prefix",
"OUTBOUNDROUTE": "Outbound Route",
"CALLERIDALL": "Caller Id",
"SERVICELEVEL": "Nivel de servicio",
"SECOND_LEVEL_DISPOSITION": "Tipificación de segundo nivel",
"THIRD_LEVEL_DISPOSITION": "Tipificación de tercer nivel",
- "TEAMADD_VOICEPREFIX": "Agregar equipo al prefijo",
"ALIAS": "Alias"
}
}
"SERVICELEVEL": "Teenuse tase",
"SECOND_LEVEL_DISPOSITION": "Teise taseme korraldus",
"THIRD_LEVEL_DISPOSITION": "Kolmanda taseme korraldus",
- "TEAMADD_VOICEPREFIX": "Lisa meeskond eesliidesse",
"ALIAS": "Teise nimega"
}
}
"SERVICELEVEL": "سطح سرویس",
"SECOND_LEVEL_DISPOSITION": "دفع سطح دوم",
"THIRD_LEVEL_DISPOSITION": "دفع سطح سوم",
- "TEAMADD_VOICEPREFIX": "اضافه کردن تیم به پیشوند",
"ALIAS": "نام مستعار"
}
}
"SERVICELEVEL": "Palvelutaso",
"SECOND_LEVEL_DISPOSITION": "Toisen tason sijoitus",
"THIRD_LEVEL_DISPOSITION": "Kolmannen tason sijoitus",
- "TEAMADD_VOICEPREFIX": "Lisää joukkue etuliitteeseen",
"ALIAS": "Alias"
}
}
"SERVICELEVEL": "Niveau de service",
"SECOND_LEVEL_DISPOSITION": "Disposition de deuxième niveau",
"THIRD_LEVEL_DISPOSITION": "Disposition de troisième niveau",
- "TEAMADD_VOICEPREFIX": "Ajouter une équipe au préfixe",
"ALIAS": "Alias"
}
}
"SERVICELEVEL": "רמת שירות",
"SECOND_LEVEL_DISPOSITION": "נטייה בדרגה שנייה",
"THIRD_LEVEL_DISPOSITION": "נטייה ברמה השלישית",
- "TEAMADD_VOICEPREFIX": "הוסף צוות לקידומת",
"ALIAS": "כינוי"
}
}
"SERVICELEVEL": "सेवा का स्तर",
"SECOND_LEVEL_DISPOSITION": "दूसरा स्तर विवाद",
"THIRD_LEVEL_DISPOSITION": "तीसरे स्तर का विवाद",
- "TEAMADD_VOICEPREFIX": "उपसर्ग में टीम जोड़ें",
"ALIAS": "उपनाम"
}
}
"SERVICELEVEL": "Tingkat layanan",
"SECOND_LEVEL_DISPOSITION": "Disposisi Tingkat Kedua",
"THIRD_LEVEL_DISPOSITION": "Disposisi Tingkat Ketiga",
- "TEAMADD_VOICEPREFIX": "Tambahkan Tim ke Awalan",
"ALIAS": "Alias"
}
}
"ADD_VOICEPREFIX": "Aggiungi Prefisso",
"EDIT_VOICEPREFIX": "Modifica Prefisso",
"AGENTADD_VOICEPREFIX": "Aggiungi Agente al Prefisso",
- "TEAMADD_VOICEPREFIX": "Aggiungi Team al Prefisso",
"DELETE_VOICEPREFIX": "Elimina Prefisso",
"OUTBOUNDROUTE": "Rotta Outbound",
"CALLERIDALL": "Numero Chiamante",
"SERVICELEVEL": "サービスレベル",
"SECOND_LEVEL_DISPOSITION": "第2レベルの気質",
"THIRD_LEVEL_DISPOSITION": "第3レベルの気質",
- "TEAMADD_VOICEPREFIX": "プレフィックスにチームを追加",
"ALIAS": "エイリアス"
}
}
"SERVICELEVEL": "서비스 수준",
"SECOND_LEVEL_DISPOSITION": "두 번째 수준 처리",
"THIRD_LEVEL_DISPOSITION": "3 단계 처리",
- "TEAMADD_VOICEPREFIX": "접두사에 팀 추가",
"ALIAS": "별명"
}
}
"SERVICELEVEL": "Aptarnavimo lygis",
"SECOND_LEVEL_DISPOSITION": "Antro lygio disponavimas",
"THIRD_LEVEL_DISPOSITION": "Trečiojo lygio disponavimas",
- "TEAMADD_VOICEPREFIX": "Pridėti komandą prie priešdėlio",
"ALIAS": "Pseudonimas"
}
}
"SERVICELEVEL": "Pakalpojuma līmenis",
"SECOND_LEVEL_DISPOSITION": "Otrā līmeņa izvietojums",
"THIRD_LEVEL_DISPOSITION": "Trešā līmeņa izvietojums",
- "TEAMADD_VOICEPREFIX": "Pievienot komandu prefiksam",
"ALIAS": "Pseidonīms"
}
}
"SERVICELEVEL": "Service Level",
"SECOND_LEVEL_DISPOSITION": "Tweede niveau dispositie",
"THIRD_LEVEL_DISPOSITION": "Dispositie op het derde niveau",
- "TEAMADD_VOICEPREFIX": "Team toevoegen aan voorvoegsel",
"ALIAS": "Alias"
}
}
"SERVICELEVEL": "Service nivå",
"SECOND_LEVEL_DISPOSITION": "Andre nivå disposisjon",
"THIRD_LEVEL_DISPOSITION": "Tredje nivå disposisjon",
- "TEAMADD_VOICEPREFIX": "Legg Team til prefiks",
"ALIAS": "Alias"
}
}
"SERVICELEVEL": "Poziom usług",
"SECOND_LEVEL_DISPOSITION": "Dyspozycja drugiego poziomu",
"THIRD_LEVEL_DISPOSITION": "Dyspozycja trzeciego poziomu",
- "TEAMADD_VOICEPREFIX": "Dodaj drużynę do prefiksu",
"ALIAS": "Alias"
}
}
"SERVICELEVEL": "Nível de serviço",
"SECOND_LEVEL_DISPOSITION": "Disposição de Segundo Nível",
"THIRD_LEVEL_DISPOSITION": "Disposição de terceiro nível",
- "TEAMADD_VOICEPREFIX": "Adicionar equipe ao prefixo",
"ALIAS": "Pseudônimo"
}
}
"SERVICELEVEL": "Nível de serviço",
"SECOND_LEVEL_DISPOSITION": "Disposição de Segundo Nível",
"THIRD_LEVEL_DISPOSITION": "Disposição de terceiro nível",
- "TEAMADD_VOICEPREFIX": "Adicionar equipe ao prefixo",
"ALIAS": "Pseudônimo"
}
}
"SERVICELEVEL": "Уровень обслуживания",
"SECOND_LEVEL_DISPOSITION": "Расположение второго уровня",
"THIRD_LEVEL_DISPOSITION": "Расположение третьего уровня",
- "TEAMADD_VOICEPREFIX": "Добавить команду к префиксу",
"ALIAS": "Псевдоним"
}
}
"SERVICELEVEL": "Servicenivå",
"SECOND_LEVEL_DISPOSITION": "Andra nivån disposition",
"THIRD_LEVEL_DISPOSITION": "Tredje nivåens disposition",
- "TEAMADD_VOICEPREFIX": "Lägg till Team i prefixet",
"ALIAS": "Alias"
}
}
"SERVICELEVEL": "Servis seviyesi",
"SECOND_LEVEL_DISPOSITION": "İkinci Düzey Tasarruf",
"THIRD_LEVEL_DISPOSITION": "Üçüncü Düzey Tasarruf",
- "TEAMADD_VOICEPREFIX": "Önek'e Takım Ekle",
"ALIAS": "takma ad"
}
}
"SERVICELEVEL": "服务等级",
"SECOND_LEVEL_DISPOSITION": "二级处置",
"THIRD_LEVEL_DISPOSITION": "第三级处置",
- "TEAMADD_VOICEPREFIX": "将团队添加到前缀",
"ALIAS": "别名"
}
}
"SERVICELEVEL": "服務等級",
"SECOND_LEVEL_DISPOSITION": "二級處置",
"THIRD_LEVEL_DISPOSITION": "第三級處置",
- "TEAMADD_VOICEPREFIX": "將團隊添加到前綴",
"ALIAS": "別名"
}
}
"LASTMESSAGE": "اخر رسالة",
"LEXREGION": "منطقة",
"LIST": "قائمة",
- "LOGGED_IN": "تم تسجيل الدخول",
+ "LOGGED_IN": "تم تسجيل الدخول (SIP متصل)",
"LOGIN_TIME": "وقت تسجيل الدخول",
"LOGOUT": "تسجيل خروج",
"MANDATORYDISPOSITION": "الترتيب الإلزامي",
"LASTMESSAGE": "Poslední zpráva",
"LEXREGION": "Kraj",
"LIST": "Seznam",
- "LOGGED_IN": "Přihlášen",
+ "LOGGED_IN": "Přihlášen (připojeno SIP)",
"LOGIN_TIME": "Čas přihlášení",
"LOGOUT": "Odhlásit se",
"MANDATORYDISPOSITION": "Povinná dispozice",
"LASTMESSAGE": "Sidste meddelelse",
"LEXREGION": "Område",
"LIST": "Liste",
- "LOGGED_IN": "Logget ind",
+ "LOGGED_IN": "Logget ind (SIP tilsluttet)",
"LOGIN_TIME": "Login tid",
"LOGOUT": "Log ud",
"MANDATORYDISPOSITION": "Obligatorisk disposition",
"ERRORS": {
"ACCESSKEYID_REQUIRED": "Pflichtfeld",
"ACCOUNTSID_REQUIRED": "Pflichtfeld",
- "AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
- "AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
+ "AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein als",
+ "AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
"AGENTTRANSFERTIMEOUT_REQUIRED": "Pflichtfeld",
"AGENT_REQUIRED": "Pflichtfeld",
"AGENT_TIMEOUT_REQUIRED": "Pflichtfeld",
"CONDITION_REQUIRED": "Pflichtfeld",
"DESCRIPTION_REQUIRED": "Pflichtfeld",
"DISPOSITION_REQUIRED": "Pflichtfeld",
- "FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
+ "FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein als",
"FALSEPRIORITY_REQUIRED": "Pflichtfeld",
- "KEY_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
+ "KEY_MAX_LENGTH": "Der Wert muss eine maximale Länge von {{max}} haben",
"KEY_REQUIRED": "Pflichtfeld",
"LANGUAGE_REQUIRED": "Pflichtfeld",
"LEXREGION_REQUIRED": "Pflichtfeld",
"MANDATORYDISPOSITIONPAUSEID_REQUIRED": "Pflichtfeld",
"NAME_REQUIRED": "Pflichtfeld",
"PHONE_REQUIRED": "Pflichtfeld",
- "PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
+ "PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein als",
"PRIORITY_REQUIRED": "Pflichtfeld",
- "QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
- "QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
+ "QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein als",
+ "QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
"QUEUETRANSFERTIMEOUT_REQUIRED": "Pflichtfeld",
"QUEUE_REQUIRED": "Pflichtfeld",
"SECRETACCESSKEY_REQUIRED": "Pflichtfeld",
"TAG_REQUIRED": "Pflichtfeld",
"TEXT_REQUIRED": "Pflichtfeld",
- "TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
- "TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
+ "TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein als",
+ "TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
"TIMEOUT_REQUIRED": "Pflichtfeld",
"TIMES_REQUIRED": "Pflichtfeld",
"TOKEN_REQUIRED": "Pflichtfeld",
- "TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
+ "TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein als",
"TRUEPRIORITY_REQUIRED": "Pflichtfeld",
"TYPE_REQUIRED": "Pflichtfeld",
"VALUE_REQUIRED": "Pflichtfeld",
"VARIABLE_REQUIRED": "Pflichtfeld",
- "WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
- "WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
+ "WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein als",
+ "WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
"WAITFORTHEASSIGNEDAGENT_REQUIRED": "Pflichtfeld",
- "WELCOMEMESSAGE_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
+ "WELCOMEMESSAGE_MAX_LENGTH": "Der Wert muss eine maximale Länge von {{max}} haben",
"WELCOMEMESSAGE_REQUIRED": "Pflichtfeld",
"CLIENTEMAIL_REQUIRED": "Pflichtfeld",
"PRIVATEKEY_REQUIRED": "Pflichtfeld",
"PROJECTID_REQUIRED": "Pflichtfeld"
},
"HELP": {
- "LIST": "Liste für die Zuordnung von Kontakten",
- "MANDATORYDISPOSITION": "Qualifizierung erforderlich",
- "MANDATORYDISPOSITIONPAUSEID": "PausenID bei erforderlicher Qualifizierung",
+ "LIST": "Kontaktmanagerliste zum Zuordnen von Kontakten",
+ "MANDATORYDISPOSITION": "Obligatorische Disposition",
+ "MANDATORYDISPOSITIONPAUSEID": "Pause, um zu verwenden, wenn die obligatorische Disposition aktiviert ist",
"MOTIONPROXY": "Das Feld muss das folgende Format haben: <Protokoll>: // <IP-Adresse> [: <Port>]. Beispiel: https: //X.Y.Z.W",
"NAME": "Es werden nur Zahlen, Buchstaben und bestimmte Zeichen (._) unterstützt",
"RECEIVEURL": "Dies ist die automatisch generierte API-Zeichenfolge, die Sie zum Empfangen der Nachrichten in Ihrem Konto von Ihrem WhatsApp Connector-Anbieter verwenden müssen (POST-Methode muss verwendet werden): Klicken Sie auf die Schaltfläche in der Zwischenablage, um sie zu kopieren",
- "WELCOMEMESSAGE": "Dies ist die erste Antwortnachricht, welche bei einer neuen Interaktion gesendet wird"
+ "WELCOMEMESSAGE": "Dies ist die erste Antwortnachricht, die an neue Interaktionen gesendet wird"
},
"ACCESSKEYID": "Zugriffsschlüssel-ID",
- "ACCOUNTSID": "Konto-ID",
+ "ACCOUNTSID": "Konto-SID",
"ACTIONS": "Aktionen",
"ADD_NOTE": "Notiz hinzufügen",
- "ADD_WHATSAPPACCOUNT": "Whatsapp Konto konzufügen",
- "ADD_WHATSAPPCANNEDANSWER": "Textvorlage hinzufügen",
- "ADD_WHATSAPPDISPOSITION": "Whatsapp-Qualifizierung hinzufügen",
+ "ADD_WHATSAPPACCOUNT": "Hinzufügen",
+ "ADD_WHATSAPPCANNEDANSWER": "Vordefinierte Antwort hinzufügen",
+ "ADD_WHATSAPPDISPOSITION": "WhatsApp Disposition hinzufügen",
"ADD_WHATSAPPQUEUE": "WhatsApp-Warteschlange hinzufügen",
- "ADVANCED": "Erweitert",
+ "ADVANCED": "Fortgeschrittene",
"AGENT": "Agent",
- "AGENTADD_QUEUE": "Agenten zur Warteschlange hinzufügen",
- "AGENTADD_WHATSAPPACCOUNT": "Agenten zum WhatsApp-Konto hinzufügen",
- "AGENTADD_WHATSAPPQUEUE": "Agenten zur WhatsApp-Warteschlange hinzufügen",
+ "AGENTADD_QUEUE": "Agent zur WhatsApp-Warteschlange hinzufügen",
+ "AGENTADD_WHATSAPPACCOUNT": "Agent zum WhatsApp-Konto hinzufügen",
+ "AGENTADD_WHATSAPPQUEUE": "Agent zur WhatsApp-Warteschlange hinzufügen",
"AGENTS": "Agenten",
- "AGENTSADD_QUEUE": "Agenten zur Warteschlange hinzufügen",
- "AGENTTRANSFER": "Transfer Agent",
- "AGENTTRANSFERTIMEOUT": "Timeout Agententransfer",
- "AGENT_TIMEOUT": "Timeout Agent",
+ "AGENTSADD_QUEUE": "Hinzufügen von Agenten zur WhatsApp-Warteschlange",
+ "AGENTTRANSFER": "Agententransfer",
+ "AGENTTRANSFERTIMEOUT": "Zeitüberschreitung bei der Agentenübertragung",
+ "AGENT_TIMEOUT": "Agent Timeout",
"ALL": "Alles",
"ALL_AGENTS": "Alle Agenten",
"ALL_TEAMS": "Alle Teams",
"AUTHTOKEN": "Auth Token",
"AUTOREPLY": "Automatische Antwort",
"BACK": "Zurück",
- "BOTNAME": "Botname",
+ "BOTNAME": "Bot Name",
"BUSY": "Beschäftigt",
- "CANNEDANSWERS": "Textvorlagen",
- "CANNED_ANSWER_NOT_FOUND": "Keine Textvorlagen gefunden",
- "CANNED_ANSWER_SEARCH": "Suchen nach Textvorlagen",
+ "CANNEDANSWERS": "Vordefinierte Antworten",
+ "CANNED_ANSWER_NOT_FOUND": "Es wurden keine vordefinierten Antworten gefunden",
+ "CANNED_ANSWER_SEARCH": "Geben Sie einen Text ein, um eine vordefinierte Antwort zu suchen",
"CAPACITY": "Kapazität",
"CLOSE": "Schließen",
"CLOSED": "Geschlossen",
"CLOSEMETHOD": "Methode schließen",
"CLOSEURL": "URL schließen",
- "COMMAND": "Eingabe",
+ "COMMAND": "Befehl",
"CONDITION": "Bedingung",
"CONTACT": "Kontakt",
- "CREATED_AT": "Erstellt am",
- "DEFAULT_PAUSE": "Standard Pause",
+ "CREATED_AT": "Hergestellt in",
+ "DEFAULT_PAUSE": "STANDARD PAUSE",
"DELETE": "Löschen",
"DELETE_INTERACTION": "Interaktion löschen",
"DELETE_SELECTED": "Ausgewählte löschen",
"DELETE_WHATSAPPACCOUNT": "WhatsApp-Konto löschen",
- "DELETE_WHATSAPPCANNEDANSWER": "Textvorlage löschen",
- "DELETE_WHATSAPPDISPOSITION": "Qualifizierung löschen",
+ "DELETE_WHATSAPPCANNEDANSWER": "Vordefinierte Antwort löschen",
+ "DELETE_WHATSAPPDISPOSITION": "WhatsApp-Disposition löschen",
"DELETE_WHATSAPPQUEUE": "WhatsApp-Warteschlange löschen",
"DESCRIPTION": "Beschreibung",
"DIALOGFLOW": "DialogFlow",
- "DISPOSITION": "Qualifizierung",
- "DISPOSITIONS": "Qualifizierungen",
- "DOWNLOAD_INTERACTION": "Interaktion herunterladen",
- "DOWNLOAD_WITHOUT_ATTACHMENTS": "Herunterladen ohne Anhänge",
- "DOWNLOAD_WITH_ATTACHMENTS": "Herunterladen inkl. Anhänge",
- "EDIT_AGENT": "Agenten bearbeiten",
- "EDIT_AMAZONLEX": "Lex-Konfiguration bearbeiten",
+ "DISPOSITION": "Anordnung",
+ "DISPOSITIONS": "Dispositionen",
+ "DOWNLOAD_INTERACTION": "Herunterladen",
+ "DOWNLOAD_WITHOUT_ATTACHMENTS": "Ohne Anhänge herunterladen",
+ "DOWNLOAD_WITH_ATTACHMENTS": "Mit Anhängen herunterladen",
+ "EDIT_AGENT": "Agent bearbeiten",
+ "EDIT_AMAZONLEX": "Bearbeiten Sie die Lex-Konfiguration",
"EDIT_AUTOREPLY": "Automatische Antwort bearbeiten",
- "EDIT_CLOSE": "Bearbeitung abschließen",
- "EDIT_DIALOGFLOW": "DialogFlow-Konfiguration bearbeiten",
- "EDIT_GOTOIF": "GoToIf bearbeiten",
- "EDIT_GOTOP": "GoTop bearbeiten",
+ "EDIT_CLOSE": "Bearbeiten Schließen",
+ "EDIT_DIALOGFLOW": "Bearbeiten Sie die DialogFlow-Konfiguration",
+ "EDIT_GOTOIF": "Bearbeiten Sie Gotoif",
+ "EDIT_GOTOP": "Gotop bearbeiten",
"EDIT_NOOP": "Noop bearbeiten",
"EDIT_QUEUE": "Warteschlange bearbeiten",
"EDIT_SYSTEM": "System bearbeiten",
"EDIT_TAG": "Tag bearbeiten",
"EDIT_WHATSAPPACCOUNT": "WhatsApp-Konto bearbeiten",
- "EDIT_WHATSAPPCANNEDANSWER": "Textvorlage bearbeiten",
- "EDIT_WHATSAPPDISPOSITION": "Whatsapp-Qualifizierung bearbeiten",
- "EDIT_WHATSAPPQUEUE": "Whatsapp-Warteschlange bearbeiten",
- "FALSEPRIORITY": "Priorität falsch",
- "GENERAL": "Allgemein",
+ "EDIT_WHATSAPPCANNEDANSWER": "Vordefinierte Antwort bearbeiten",
+ "EDIT_WHATSAPPDISPOSITION": "WhatsApp-Disposition bearbeiten",
+ "EDIT_WHATSAPPQUEUE": "Bearbeiten Sie die WhatsApp-Warteschlange",
+ "FALSEPRIORITY": "Falsche Priorität",
+ "GENERAL": "Allgemeines",
"GOTOIF": "Gotoif",
"GOTOP": "Zum Seitenanfang",
- "GOTOREALTIME_WHATSAPPQUEUE": "Zur Echtzeitansicht gehen",
- "GO_TO_WHATSAPPACCOUNTS": "Zum Whatsapp-Konto gehen",
- "ID": "ID",
+ "GOTOREALTIME_WHATSAPPQUEUE": "Wechseln Sie zur WhatsApp-Warteschlange in Echtzeit",
+ "GO_TO_WHATSAPPACCOUNTS": "Gehe zu Konto",
+ "ID": "Ich würde",
"IDLE": "Leerlauf",
"INSERT_MESSAGE_HERE": "Nachricht hier einfügen",
"INTERACTIONS": "Interaktionen",
- "INTERACTIONS_WHATSAPPACCOUNT": "Zu Interaktionen gehen",
+ "INTERACTIONS_WHATSAPPACCOUNT": "Gehen Sie zu Interaktionen",
"KEY": "Schlüssel",
"LANGUAGE": "Sprache",
"LASTMESSAGE": "Letzte Nachricht",
- "LEXREGION": "LexRegion",
- "LIST": "Liste",
- "LOGGED_IN": "Eingeloggt",
+ "LEXREGION": "Region",
+ "LIST": "Aufführen",
+ "LOGGED_IN": "Eingeloggt (SIP verbunden)",
"LOGIN_TIME": "Anmeldezeit",
"LOGOUT": "Ausloggen",
- "MANDATORYDISPOSITION": "Qualifizierung erforderlich",
- "MANDATORYDISPOSITIONPAUSEID": "Qualifizierung pausieren, sofern erforderlich",
+ "MANDATORYDISPOSITION": "Obligatorische Disposition",
+ "MANDATORYDISPOSITIONPAUSEID": "Pause, um zu verwenden, wenn die obligatorische Disposition aktiviert ist",
"MORE": "Mehr",
- "MOTIONPROXY": "Proxy",
+ "MOTIONPROXY": "Proxy- oder Bewegungsdomäne",
"MULTI_SELECT_TOGGLE": "Mehrfachauswahl umschalten",
"NAME": "Name",
"NEW_WHATSAPPACCOUNT": "Neues WhatsApp-Konto",
- "NEW_WHATSAPPCANNEDANSWER": "Neue WhatsApp-Textvorlage",
- "NEW_WHATSAPPDISPOSITION": "Neue WhatsApp-Quailifizierung",
+ "NEW_WHATSAPPCANNEDANSWER": "Neue vordefinierte WhatsApp-Antwort",
+ "NEW_WHATSAPPDISPOSITION": "Neue WhatsApp-Disposition",
"NEW_WHATSAPPQUEUE": "Neue WhatsApp-Warteschlange",
"NOOP": "Noop",
- "NOTE": "Anmerkung",
+ "NOTE": "Hinweis",
"NOTIFICATION": "Benachrichtigung",
- "NOTIFICATIONSHAKE": "Schütteln",
- "NOTIFICATIONSOUND": "Klingeln",
+ "NOTIFICATIONSHAKE": "Shake",
+ "NOTIFICATIONSOUND": "Klang",
"NOTIFICATIONTEMPLATE": "Vorlage",
"NO_AGENT_ONLINE": "Kein Agent online",
- "NO_AVAILABLE_INFO": "Keine Informationen verfügbar",
- "NO_INTERACTION_AVAILABLE": "Keine neuen Interaktionen verfügbar",
- "NO_WHATSAPPCANNEDANSWER_AVAILABLE": "Keine Textvorlagen verfügbar",
- "NO_WHATSAPPDISPOSITION_AVAILABLE": "Keine Qualifizierungen verfügbar",
+ "NO_AVAILABLE_INFO": "Keine verfügbaren Informationen",
+ "NO_INTERACTION_AVAILABLE": "Keine Interaktionen verfügbar",
+ "NO_WHATSAPPCANNEDANSWER_AVAILABLE": "Keine vordefinierten WhatsApp-Antworten verfügbar",
+ "NO_WHATSAPPDISPOSITION_AVAILABLE": "Keine WhatsApp-Dispositionen verfügbar",
"NO_WHATSAPP_ACCOUNTS_AVAILABLE": "Keine WhatsApp-Konten verfügbar",
"OF": "von",
"OPENED": "Geöffnet",
"PROXY": "Proxy",
"QUEUE": "Warteschlange",
"QUEUES": "Warteschlangen",
- "QUEUETRANSFER": "Transfer an Warteschlange",
- "QUEUETRANSFERTIMEOUT": "Zeitüberschreitung bei der Warteschlangentransfer",
+ "QUEUETRANSFER": "Warteschlangenübertragung",
+ "QUEUETRANSFERTIMEOUT": "Zeitüberschreitung bei der Warteschlangenübertragung",
"READY": "Bereit",
"REALTIME": "Echtzeit",
- "RECEIVEURL": "URL für Erhalt",
+ "RECEIVEURL": "URL erhalten",
"REFRESH_INTERACTIONS": "Interaktionen aktualisieren",
- "REMOTE": "Remote",
+ "REMOTE": "Fernbedienung",
"ROWSPERPAGE": "Zeilen pro Seite",
- "SAVE": "Speichern",
+ "SAVE": "sparen",
"SCREENRECORDING": "Bildschirmaufzeichnung verwalten",
"SEARCH_FOR_ANYONE": "Suche",
- "SECRETACCESSKEY": "Geheimer Schlüssel",
+ "SECRETACCESSKEY": "Zugriffsschlüsselgeheimnis",
"SELECTED": "Ausgewählt",
"SELECTED_AGENTS": "Ausgewählte Agenten",
"SELECTED_TEAMS": "Ausgewählte Teams",
- "SELECT_ALL": "Alles auswählen",
- "SELECT_NONE": "Nichts auswählen",
+ "SELECT_ALL": "Wählen Sie Alle",
+ "SELECT_NONE": "Nichts ausgewählt",
"SEND": "Senden",
- "SETTINGS": "Einstellungen",
- "SPYINTERACTION": "Mitlesen",
- "STARTEDAT": "Startdatum",
- "START_SCREENRECORDING": "Bildschirmaufzeichnung starten",
+ "SETTINGS": "die Einstellungen",
+ "SPYINTERACTION": "Spionage-Interaktion",
+ "STARTEDAT": "Fing an bei",
+ "START_SCREENRECORDING": "Bildschirmaufnahme starten",
"STATUS": "Status",
"STOP_SCREENRECORDING": "Bildschirmaufzeichnung stoppen",
"STRATEGY": "Strategie",
"SYSTEM": "System",
- "TAG": "Tag",
- "TAGS": "Tags",
+ "TAG": "Etikett",
+ "TAGS": "Stichworte",
"TEAMADD_WHATSAPPQUEUE": "Team zur WhatsApp-Warteschlange hinzufügen",
- "TEAMS_ASSOCIATION": "Teamzuweisung",
+ "TEAMS_ASSOCIATION": "Mannschaftsverband",
"TEXT": "Text",
- "TIMEOUT": "Zeitüberschreitung",
+ "TIMEOUT": "Auszeit",
"TIMER": "Timer",
- "TIMES": "Zeiten",
- "TO": "an",
- "TOKEN": "Token",
- "TOOLTIP_SCREENRECORDING_OFF": "Bildschirmaufzeichnung verfügbar",
- "TOOLTIP_SCREENRECORDING_ON": "Bildschirmaufzeichnung läuft",
- "TRANSFER": "Weiterleiten",
+ "TIMES": "Mal",
+ "TO": "Zu",
+ "TOKEN": "Zeichen",
+ "TOOLTIP_SCREENRECORDING_OFF": "Bildschirmaufnahme verfügbar",
+ "TOOLTIP_SCREENRECORDING_ON": "Bildschirmaufnahme läuft",
+ "TRANSFER": "Transfer",
"TRUEPRIORITY": "Wahre Priorität",
- "TYPE": "Typ",
+ "TYPE": "Art",
"UNPAUSE": "Pause beenden",
"VALUE": "Wert",
"VARIABLE": "Variable",
- "WAITFORTHEASSIGNEDAGENT": "Auf den zugewiesenen Mitarbeiter warten",
+ "WAITFORTHEASSIGNEDAGENT": "Warten Sie auf den zugewiesenen Agenten",
"WAITING": "Warten",
"WELCOMEMESSAGE": "Willkommensnachricht",
"WHATSAPP": "WhatsApp Connector",
"WHATSAPPACCOUNTS": "WhatsApp-Konten",
- "WHATSAPPCANNEDANSWERS": "WhatsApp-Textvorlagen",
- "WHATSAPPDISPOSITIONS": "WhatsApp-Qualifizierungen",
+ "WHATSAPPCANNEDANSWERS": "WhatsApp vordefinierte Antworten",
+ "WHATSAPPDISPOSITIONS": "WhatsApp Dispositionen",
"WHATSAPPQUEUES": "WhatsApp-Warteschlangen",
- "CLIENTEMAIL": "Kunden E-Mail",
+ "CLIENTEMAIL": "Kunden-E-Mail",
"DIALOGFLOWV2": "Dialogflow V2",
"EDIT_DIALOGFLOWV2": "Dialogflow V2 bearbeiten",
- "PRIVATEKEY": "Privater Schlüssel",
+ "PRIVATEKEY": "Privat Schlüssel",
"PROJECTID": "Projekt-ID"
}
}
"AUTHTOKEN": "Auth Token",
"AUTOREPLY": "Auto Reply",
"BACK": "Back",
- "BASEURL": "Base URL",
"BOTNAME": "Bot Name",
"BUSY": "Busy",
"CANNED_ANSWER_NOT_FOUND": "No Canned Answers were found",
"AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less or equal than",
"AGENTTRANSFERTIMEOUT_REQUIRED": "Mandatory Field",
"AUTHTOKEN_REQUIRED": "Mandatory Field",
- "BASEURL_REQUIRED": "Mandatory Field",
"BOTNAME_REQUIRED": "Mandatory Field",
"COMMAND_REQUIRED": "Mandatory Field",
"CONDITION_REQUIRED": "Mandatory Field",
"LASTMESSAGE": "Last Message",
"LEXREGION": "Region",
"LIST": "List",
- "LOGGED_IN": "Logged In",
+ "LOGGED_IN": "Logged In (SIP Connected)",
"LOGIN_TIME": "Login Time",
"LOGOUT": "Logout",
"MANDATORYDISPOSITION": "Mandatory Disposition",
"READY": "Ready",
"REALTIME": "Realtime",
"RECEIVEURL": "Receive URL",
- "DELIVERYREPORTURL": "Delivery report URL",
"REFRESH_INTERACTIONS": "Refresh Interactions",
"REMOTE": "Remote",
"ROWSPERPAGE": "Rows per page",
"LASTMESSAGE": "Ultimo mensaje",
"LEXREGION": "Región",
"LIST": "Lista",
- "LOGGED_IN": "Conectado",
+ "LOGGED_IN": "Conectado (SIP conectado)",
"LOGIN_TIME": "Hora de inicio de sesión",
"LOGOUT": "Cerrar sesión",
"MANDATORYDISPOSITION": "Tipificación obligatoria",
"LASTMESSAGE": "Viimane sõnum",
"LEXREGION": "Piirkond",
"LIST": "Loend",
- "LOGGED_IN": "Sisse logitud",
+ "LOGGED_IN": "Sisse logitud (SIP ühendatud)",
"LOGIN_TIME": "Sisselogimise aeg",
"LOGOUT": "Logi välja",
"MANDATORYDISPOSITION": "Kohustuslik käsutamine",
"LASTMESSAGE": "آخرین پیام",
"LEXREGION": "منطقه",
"LIST": "لیست",
- "LOGGED_IN": "ورود به سیستم",
+ "LOGGED_IN": "ورود به سیستم (SIP متصل)",
"LOGIN_TIME": "زمان ورود",
"LOGOUT": "خروج",
"MANDATORYDISPOSITION": "اختیار اجباری",
"LASTMESSAGE": "Viimeinen viesti",
"LEXREGION": "alue",
"LIST": "Lista",
- "LOGGED_IN": "Sisäänkirjautunut",
+ "LOGGED_IN": "Sisäänkirjautunut (SIP kytketty)",
"LOGIN_TIME": "Sisäänkirjautumisaika",
"LOGOUT": "Kirjautua ulos",
"MANDATORYDISPOSITION": "Pakollinen sijoittaminen",
"LASTMESSAGE": "Dernier message",
"LEXREGION": "Région",
"LIST": "liste",
- "LOGGED_IN": "Connecté",
+ "LOGGED_IN": "Connecté (SIP connecté)",
"LOGIN_TIME": "Heure de connexion",
"LOGOUT": "Se déconnecter",
"MANDATORYDISPOSITION": "Disposition obligatoire",
"LASTMESSAGE": "הודעה אחרונה",
"LEXREGION": "אזור",
"LIST": "רשימה",
- "LOGGED_IN": "מחובר",
+ "LOGGED_IN": "מחובר (SIP מחובר)",
"LOGIN_TIME": "זמן כניסה",
"LOGOUT": "להתנתק",
"MANDATORYDISPOSITION": "התנהגות חובה",
"LASTMESSAGE": "आखिरी सन्देश",
"LEXREGION": "क्षेत्र",
"LIST": "सूची",
- "LOGGED_IN": "लॉग इन",
+ "LOGGED_IN": "लॉग इन (SIP कनेक्टेड)",
"LOGIN_TIME": "लॉग इन टाइम",
"LOGOUT": "लॉग आउट",
"MANDATORYDISPOSITION": "अनिवार्य विवाद",
"LASTMESSAGE": "Pesan Terakhir",
"LEXREGION": "Wilayah",
"LIST": "Daftar",
- "LOGGED_IN": "Masuk",
+ "LOGGED_IN": "Masuk (SIP Terhubung)",
"LOGIN_TIME": "Waktu Login",
"LOGOUT": "Keluar",
"MANDATORYDISPOSITION": "Disposisi Wajib",
"DELETE_WHATSAPPDISPOSITION": "Elimina la disposizione di WhatsApp",
"DIALOGFLOW": "DialogFlow",
"DISPOSITION": "Disposizione",
- "DISPOSITIONS": "Disposizioni",
+ "DISPOSITIONS": "disposizioni",
"DOWNLOAD_INTERACTION": "Scarica",
"DOWNLOAD_WITHOUT_ATTACHMENTS": "Scarica senza allegati",
"DOWNLOAD_WITH_ATTACHMENTS": "Scarica con allegati",
"FALSEPRIORITY": "Priorità falsa",
"GOTOP": "Andare in cima",
"GO_TO_WHATSAPPACCOUNTS": "Vai all'account",
- "INTERACTIONS": "Interazioni",
+ "INTERACTIONS": "interazioni",
"INTERACTIONS_WHATSAPPACCOUNT": "Vai a Interazioni",
"KEY": "Chiave",
"LEXREGION": "Regione",
"QUEUETRANSFER": "Trasferimento in coda",
"QUEUETRANSFERTIMEOUT": "Timeout trasferimento coda",
"RECEIVEURL": "Ricevi URL",
- "DELIVERYREPORTURL": "Consegna URL",
"REFRESH_INTERACTIONS": "Aggiorna interazioni",
"REMOTE": "A distanza",
"SECRETACCESSKEY": "Chiave di accesso segreta",
"TOKEN": "Gettone",
"TRANSFER": "Trasferimento",
"TRUEPRIORITY": "Vera priorità",
- "TYPE": "Genere",
+ "TYPE": "genere",
"VALUE": "Valore",
"VARIABLE": "Variabile",
"WAITFORTHEASSIGNEDAGENT": "Attendi l'agente assegnato",
"LASTMESSAGE": "最後のメッセージ",
"LEXREGION": "領域",
"LIST": "リスト",
- "LOGGED_IN": "ログイン済み",
+ "LOGGED_IN": "ログイン済み(SIP接続済み)",
"LOGIN_TIME": "ログイン時間",
"LOGOUT": "ログアウト",
"MANDATORYDISPOSITION": "強制処分",
"LASTMESSAGE": "마지막 메시지",
"LEXREGION": "부위",
"LIST": "명부",
- "LOGGED_IN": "로그인 됨",
+ "LOGGED_IN": "로그인 됨 (SIP 연결됨)",
"LOGIN_TIME": "로그인 시간",
"LOGOUT": "로그 아웃",
"MANDATORYDISPOSITION": "필수 처분",
"LASTMESSAGE": "Paskutinė žinutė",
"LEXREGION": "Regionas",
"LIST": "Sąrašas",
- "LOGGED_IN": "Prisijungęs",
+ "LOGGED_IN": "Prisijungęs (prijungtas prie SIP)",
"LOGIN_TIME": "Prisijungimo laikas",
"LOGOUT": "Atsijungti",
"MANDATORYDISPOSITION": "Privalomas nusistatymas",
"LASTMESSAGE": "Pēdējā ziņa",
"LEXREGION": "Novads",
"LIST": "Saraksts",
- "LOGGED_IN": "Pieteicies",
+ "LOGGED_IN": "Pieteicies (savienots ar SIP)",
"LOGIN_TIME": "Pieteikšanās laiks",
"LOGOUT": "Izlogoties",
"MANDATORYDISPOSITION": "Obligāta rīcība",
"LASTMESSAGE": "Laatste bericht",
"LEXREGION": "Regio",
"LIST": "Lijst",
- "LOGGED_IN": "Ingelogd",
+ "LOGGED_IN": "Ingelogd (SIP verbonden)",
"LOGIN_TIME": "Login Tijd",
"LOGOUT": "Uitloggen",
"MANDATORYDISPOSITION": "Verplichte dispositie",
"LASTMESSAGE": "Siste melding",
"LEXREGION": "Region",
"LIST": "Liste",
- "LOGGED_IN": "Logget inn",
+ "LOGGED_IN": "Logget inn (SIP-tilkoblet)",
"LOGIN_TIME": "Innloggingstid",
"LOGOUT": "Logg ut",
"MANDATORYDISPOSITION": "Obligatorisk disposisjon",
"LASTMESSAGE": "Ostatnia wiadomość",
"LEXREGION": "Region",
"LIST": "Lista",
- "LOGGED_IN": "Zalogowano",
+ "LOGGED_IN": "Zalogowano (połączenie SIP)",
"LOGIN_TIME": "Czas logowania",
"LOGOUT": "Wyloguj",
"MANDATORYDISPOSITION": "Obowiązkowa dyspozycja",
"LASTMESSAGE": "Última mensagem",
"LEXREGION": "Região",
"LIST": "Lista",
- "LOGGED_IN": "Conectado",
+ "LOGGED_IN": "Conectado (SIP conectado)",
"LOGIN_TIME": "Hora de Login",
"LOGOUT": "Sair",
"MANDATORYDISPOSITION": "Disposição Obrigatória",
"LASTMESSAGE": "Última mensagem",
"LEXREGION": "Região",
"LIST": "Lista",
- "LOGGED_IN": "Conectado",
+ "LOGGED_IN": "Conectado (SIP conectado)",
"LOGIN_TIME": "Hora de Login",
"LOGOUT": "Sair",
"MANDATORYDISPOSITION": "Disposição Obrigatória",
"LASTMESSAGE": "Последнее сообщение",
"LEXREGION": "Область",
"LIST": "Список",
- "LOGGED_IN": "Авторизован",
+ "LOGGED_IN": "Авторизован (SIP подключен)",
"LOGIN_TIME": "Время входа",
"LOGOUT": "Выйти",
"MANDATORYDISPOSITION": "Обязательное распоряжение",
"LASTMESSAGE": "Senaste meddelandet",
"LEXREGION": "Område",
"LIST": "Lista",
- "LOGGED_IN": "Inloggad",
+ "LOGGED_IN": "Inloggad (SIP ansluten)",
"LOGIN_TIME": "Inloggningstid",
"LOGOUT": "Logga ut",
"MANDATORYDISPOSITION": "Obligatorisk disposition",
"LASTMESSAGE": "Son Mesaj",
"LEXREGION": "bölge",
"LIST": "Liste",
- "LOGGED_IN": "Oturum Açıldı",
+ "LOGGED_IN": "Oturum Açıldı (SIP Bağlı)",
"LOGIN_TIME": "Giriş Zamanı",
"LOGOUT": "Çıkış Yap",
"MANDATORYDISPOSITION": "Zorunlu Elden Çıkarma",
"LASTMESSAGE": "最后留言",
"LEXREGION": "地区",
"LIST": "清单",
- "LOGGED_IN": "已登录",
+ "LOGGED_IN": "已登录(已连接SIP)",
"LOGIN_TIME": "登录时间",
"LOGOUT": "登出",
"MANDATORYDISPOSITION": "强制性",
"LASTMESSAGE": "最後留言",
"LEXREGION": "地區",
"LIST": "清單",
- "LOGGED_IN": "已登錄",
+ "LOGGED_IN": "已登錄(已連接SIP)",
"LOGIN_TIME": "登錄時間",
"LOGOUT": "登出",
"MANDATORYDISPOSITION": "強制性",
"CHAT": "CHAT",
"ACTIVITY": "Aktivität",
"FRIENDS": "Freunde",
- "APP_SERVERS": "Server Anwendung",
- "USER_STATS": "Benutzer Statistiken",
- "EVENTS": "Ereignisse",
- "NOTES": "Notizen",
- "QUICK_SETTINGS": "Schnelleinstellungen",
+ "APP_SERVERS": "Anwendungsserver",
+ "USER_STATS": "Benutzer Stats",
+ "EVENTS": "Veranstaltungen",
+ "NOTES": "Hinweise",
+ "QUICK_SETTINGS": "Schnelle Einstellungen",
"NOTIFICATIONS": "Benachrichtigungen",
"CLOUD_SYNC": "Cloud Synchronisieren",
- "RETRO_THRUSTERS": "Retro Thrusters",
- "RECENT": "Neuste",
+ "RETRO_THRUSTERS": "Retro Triebwerke",
+ "RECENT": "Die jüngsten",
"START_NEW_CHAT": "Neuen Chat starten",
"BACK": "Zurück",
- "CALL": "Anrufen",
+ "CALL": "Anruf",
"MORE": "Mehr",
"SEND_MESSAGE": "Nachricht senden",
- "REPLY_PLACEHOLDER": "Nachricht eingeben und Enter drücken zum Senden",
- "CONTACT_XCALLY_MOTION_SUPPORT": "Support kontaktieren",
+ "REPLY_PLACEHOLDER": "Geben Sie ein, und drücken Sie die Eingabetaste, um Nachricht senden",
+ "CONTACT_XCALLY_MOTION_SUPPORT": "Kontakt xCALLY Motion Support",
"EXPIRATION_DATE": "Ablaufdatum",
"EXPIRATION_REASON": "Ablauf Grund",
"LICENSE": "Lizenz",
- "NEW_TOKEN": "Neuer Token",
- "OLD_TOKEN": "Alter Token",
+ "NEW_TOKEN": "Neue Token",
+ "OLD_TOKEN": "Alte Token",
"SEND_EMAIL_TO": "E-Mail senden an",
"TOKEN": "Token",
- "EXPIRATION_REASON_MESSAGE": "Ihre Lizenz ist abgelaufen oder Ihre eindeutige ID wurde aufgrund einer Änderung an Ihrem System aktualisiert. Bitte den Support kontaktieren",
- "GRAY_PERIOD_EXPIRATION": "Ablauf Testphase",
+ "EXPIRATION_REASON_MESSAGE": "Ihre Lizenz ist abgelaufen oder Ihre Maschine eindeutige Id wurde aufgrund einer Änderung an Ihrem System aktualisiert. Die xCALLY Motion Support Team Ihre alte und Ihre neue uuid senden Kontakt.",
+ "GRAY_PERIOD_EXPIRATION": "Grau Zeitraum Ablauf",
"ERRORS": {
"NAME_REQUIRED": "Pflichtfeld"
},
- "EXPIRATION_GRAY_PERIOD": "Ablauf Testphase",
- "NO_AVAILABLE_GROUPS": "Keine Gruppen verfügbar",
- "SAVE": "Speichern",
- "INFO": "Information",
+ "EXPIRATION_GRAY_PERIOD": "Ablauf Grauzeit",
+ "NO_AVAILABLE_GROUPS": "Keine verfügbaren Gruppen",
+ "SAVE": "sparen",
+ "INFO": "Info",
"NEW_CHATGROUP": "Neue Gruppe",
"NAME": "Name",
"MEMBERS": "Mitglieder",
"DELETE": "Löschen",
"SEARCH": "Suche",
"USERS": "Benutzer",
- "EXPIRATION_REASON_MESSAGE_GRAY": "Ihre Lizenz ist abgelaufen oder wurde deaktiviert. Bitte den Support kontaktieren.",
- "EXPIRATION_REASON_MESSAGE_CHANGED": "Ihre Lizenz ist abgelaufen oder Ihre eindeutige ID wurde aufgrund einer Änderung an Ihrem System aktualisiert. Bitte den Support kontaktieren",
- "MESSENGER_DISABLED": "Internes Messaging für diesen Benutzer nicht aktiviert",
+ "EXPIRATION_REASON_MESSAGE_GRAY": "Ihre Lizenz ist abgelaufen oder wurde deaktiviert. Kontaktieren Sie xCALLY Motion Support Team.",
+ "EXPIRATION_REASON_MESSAGE_CHANGED": "Die eindeutige ID Ihres Rechners wurde aufgrund einer Änderung Ihres Systems aktualisiert. Kontaktieren Sie xCALLY Motion Support Team, das sowohl Ihren alten als auch Ihren neuen UUID sendet.",
+ "MESSENGER_DISABLED": "Das interne Messaging ist für diesen Agenten deaktiviert!",
"WARNING": "Warnung"
}
}
{
"RESETPASSWORD": {
- "TITLE": "Passwort zurücksetzen",
- "EMAIL_ADRESS": "E-Mail Adresse",
- "PASSWORD": "Passwort",
- "PASSWORD_CONFIRM": "Passwort bestätigen",
- "UPDATE_PASSWORD": "Passwort zurücksetzen",
+ "TITLE": "Ihr Kennwort zurücksetzen",
+ "EMAIL_ADRESS": "E-mail Adresse",
+ "PASSWORD": "Kennwort",
+ "PASSWORD_CONFIRM": "Kennwort (bestätigen)",
+ "UPDATE_PASSWORD": "Kennwort zurücksetzen",
"GO_BACK": "Zurück zum Login",
- "PASSWORD_RESET": "Passwort zurücksetzen",
- "PASSWORD_RESET_MESSAGE": "Das Passwort wurde erfolgreich zurückgesetzt. Sie können sich nun erneut anmelden",
- "PASSWORD_RESET_ERROR": "Fehler beim Zurücksetzen des Passwortes",
+ "PASSWORD_RESET": "Kennwort zurücksetzen",
+ "PASSWORD_RESET_MESSAGE": "Ihr Passwort wurde korrekt zurückgesetzt wurde, können Sie sich jetzt!",
+ "PASSWORD_RESET_ERROR": "Passwort Fehler zurücksetzen",
"ERRORS": {
- "EMAIL_REQUIRED": "E-Mail Adresse erfoderlich",
- "EMAIL_MUST_VALID": "E-Mail Adresse ungültig",
- "PASSWORD_REQUIRED": "Passwort erforderlich",
+ "EMAIL_REQUIRED": "Im Feld \"E-Mail ist erforderlich",
+ "EMAIL_MUST_VALID": "E-Mail muss eine gültige e-mail Adresse",
+ "PASSWORD_REQUIRED": "Kennwort Feld ist erforderlich.",
"CONFIRM_NOT_MATCH": "Die Passwörter stimmen nicht überein.",
- "SECURE_PASSWORD_PATTERN": "Muss mindestens 8 Zeichen enthalten, Minimum von 1 Kleinbuchstabe, 1 Großbuchstabe, 1 Zahl und 1 Sonderzeichen ~!?*@#$%^&-_=+[{]}."
+ "SECURE_PASSWORD_PATTERN": "Muss mindestens 8 Zeichen enthalten, mit einem Minimum von 1 Kleinbuchstaben, Großbuchstaben, 1 numerisches und 1 Sonderzeichen ~!?*@#$%^&-_=+[{]}."
}
}
}
{
"TOOLBAR": {
- "TOGGLE_NAVIGATION": "Navigation umschalten",
- "TOGGLE_NAVIGATION_FOLD": "Navigation einklappen",
- "TOGGLE_NAVIGATION_MODE": "Navigation Moduswechsel",
+ "TOGGLE_NAVIGATION": "Navigation wechseln",
+ "TOGGLE_NAVIGATION_FOLD": "Navigation wechseln Fach",
+ "TOGGLE_NAVIGATION_MODE": "Navigation Modus umschalten",
"SEARCH": "Suche",
- "USER_SETTINGS": "Nutzereinstellungen",
- "TOGGLE_QUICK_PANEL": "Schnelles Panel umschalten",
+ "USER_SETTINGS": "Benutzereinstellungen",
+ "TOGGLE_QUICK_PANEL": "Um schnelle Panel",
"ENGLISH": "Englisch",
"ITALIAN": "Italienisch",
"FRENCH": "Französisch",
"CHINESESIMPLIFIED": "Vereinfachtes Chinesisch",
"CHINESETRADITIONAL": "Traditionelles Chinesisch",
"DUTCH": "Niederländisch",
- "FINNISH": "Finnisch",
+ "FINNISH": "Finnische",
"DANISH": "Dänisch",
"PORTUGUESE": "Portugiesisch",
"NORWEGIAN": "Norwegisch",
"HINDI": "Hindi",
"TURKISH": "Türkisch",
"PERSIAN": "Persisch",
- "LOGIN_TIME": "Zeit angemeldet",
- "PAUSE_TIME": "Zeit in Pause",
+ "LOGIN_TIME": "Login Zeit",
+ "PAUSE_TIME": "Pausenzeit",
"PREVIEW": "Vorschau",
"CONFIRM_PASSWORD": "Passwort bestätigen",
"NEW_PASSWORD": "Neues Passwort",
"OLD_PASSWORD": "Altes Passwort",
"SAVE": "Speichern",
"TRIAL_VERSION": "Testversion",
- "SOMEONE_LOGGED_YOU_OUT": "Sie wurden von einem anderen Benutzer abgemeldet. Erneut anmelden?",
+ "SOMEONE_LOGGED_YOU_OUT": "Jemand eingeloggt haben, möchten Sie angemeldet bleiben?",
"STAY_LOGGED": "Angemeldet bleiben",
"WARNING": "Warnung",
"PAUSE": "Pause",
- "RESUME": "Fortsetzen",
- "NO_PAUSES_AVAILABLE": "Keine Pausen verfügbar",
- "LATVIAN": "Lettisch",
+ "RESUME": "Lebenslauf",
+ "NO_PAUSES_AVAILABLE": "Keine Pausen zur Verfügung",
+ "LATVIAN": "Lettische",
"POLISH": "Polnisch",
"ERRORS": {
"FIELD_REQUIRED": "Pflichtfeld",
"PASSWORD_REQUIRED": "Pflichtfeld",
"CONFIRM_NOT_MATCH": "Die Passwörter stimmen nicht überein",
- "SECURE_PASSWORD_PATTERN": "Das Passwort muss mindestens 8 Zeichen lang sein und 1 Kleinbuchstaben, 1 Großbuchstaben, 1 Zahl und 1 Sonderzeichen enthalten.",
- "PASSWORD_OLDPASSWORD_MATCH": "Die Passwörter stimmen nicht überein"
+ "SECURE_PASSWORD_PATTERN": "Das Passwort muss mindestens 8 Zeichen lang sein und 1 Kleinbuchstabe, 1 Großbuchstabe, 1 Zahl und 1 Sonderzeichen haben ~! @",
+ "PASSWORD_OLDPASSWORD_MATCH": "Das neue Passwort muss sich vom vorherigen Passwort unterscheiden"
},
"RESETPASSWORD": "Passwort zurücksetzen",
- "PASSWORD_EXPIRE_REMAINING_DAYS": "Verbleibende Tage, bis zum Ablauf des Passwortes",
+ "PASSWORD_EXPIRE_REMAINING_DAYS": "Verbleibende Tage, bevor Ihr Passwort abläuft",
"BROWSER_COMPATIBILITY": "Browserkompatibilität [Chrome, Opera, Safari]",
"RECORDING": "Aufzeichnung",
- "INVALID_LICENSE": "Lizenz ungültig",
+ "INVALID_LICENSE": "Ungültige Lizenz",
"BROWSER": "Browser",
"OS": "Betriebssystem",
- "REQUIREMENTS": "Anforderungen",
+ "REQUIREMENTS": "Bedarf",
"LICENSE": "Lizenz",
"HTTPS": "HTTPS",
"WEBRTCSUPPORT": "WebRTC-Unterstützung",
- "REGISTERED": "Registriert",
+ "REGISTERED": "Eingetragen",
"NOT_REGISTERED": "Nicht registriert",
- "WEBRTC_LICENSE_NOT_ENABELD": "WebRTC-Lizenz ist nicht aktiviert",
- "ATTENDED_TRANSFER": "Warmer Transfer",
+ "WEBRTC_LICENSE_NOT_ENABELD": "Die WebRTC-Lizenz ist nicht aktiviert",
+ "ATTENDED_TRANSFER": "Begleiteter Tranfer",
"TRANSFER": "Transfer",
"TARGET": "Ziel",
- "CANCEL": "Abbrechen",
+ "CANCEL": "Stornieren",
"FILENAME": "Dateiname",
"STATUS": "Status",
"ACTIONS": "Aktionen",
- "SPEAKER": "Lautsprecher",
- "RINGING": "Klingeln",
+ "SPEAKER": "Redner",
+ "RINGING": "Klingelton",
"MICROPHONE": "Mikrofon",
"PROFILE": "Profil",
- "SERVICES": "Dienste",
+ "SERVICES": "Dienstleistungen",
"AUDIO": "Audio",
"FULLNAME": "Vollständiger Name",
"NAME": "Name",
"INTERNAL": "Intern",
- "RINGINGDEVICE": "Klingeln auf Gerät",
- "SPEAKERDEVICE": "Verwendeter Lautsprecher",
- "MICROPHONEDEVICE": "Verwendetes Mikrofon",
+ "RINGINGDEVICE": "Klingelgerät",
+ "SPEAKERDEVICE": "Lautsprechergerät",
+ "MICROPHONEDEVICE": "Mikrofon Gerät",
"CHANGEPASSWORD": "Passwort ändern",
- "SETTINGS": "Einstellungen",
+ "SETTINGS": "die Einstellungen",
"AUTOANSWER": "Automatische Antwort",
"INDONESIAN": "Indonesisch",
"ARABIC": "Arabisch",
- "CALL": "Anrufen",
+ "CALL": "Anruf",
"PREFIXES": "Präfixe",
"HEBREW": "Hebräisch",
- "ESTONIAN": "Estnisch",
+ "ESTONIAN": "estnisch",
"CZECH": "Tschechisch",
- "BRAZILIAN": "Brasilianisch",
- "CONFERENCE": "Konferenz mit 2 aktiven Sitzungen",
- "CHANGE_LANGUAGE_MESSAGE": "Bitte Seite aktualisieren, um Änderungen zu übernehmen",
+ "BRAZILIAN": "Brasilianer",
+ "CONFERENCE": "Konferenz mit 2 aktiven Sessions",
+ "CHANGE_LANGUAGE_MESSAGE": "Denken Sie daran, die Seite zu aktualisieren, um die RTL-Unterstützung anzuwenden (falls aktiviert).",
"CHANGE_LANGUAGE_TITLE": "Sprache ändern",
"WEBRTC_AUDIO_DEVICES_NOT_AVAILABLE": "Keine Audiogeräte verfügbar",
"WEBRTC_MICROPHONE_NOT_AVAILABLE": "Kein Mikrofon vorhanden",
"WEBRTC_SPEAKER_NOT_AVAILABLE": "Kein Lautsprecher verfügbar",
"NO_AVAILABLE_INFO": "Keine verfügbaren Informationen",
- "LITHUANIAN": "Litauisch",
+ "LITHUANIAN": "litauisch",
"NOTIFICATION_TITLE": "Neue Benachrichtigung von {{Absender}}",
"NOTIFICATION_TITLE_RECIPIENT": "an {{Empfänger}}",
"USER_FORCE_LOGOUT": "{{ip}} hat sich mit Ihren Anmeldeinformationen angemeldet.\nMehrfachanmeldungen sind nicht zulässig",
<link rel="stylesheet" href="styles/vendor.def00a0c.css">
- <link rel="stylesheet" href="styles/app.d488371f.css">
+ <link rel="stylesheet" href="styles/app.0b303223.css">
<!-- <link href='//fonts.googleapis.com/css?family=Roboto:400,100,100italic,300,300italic,400italic,500,500italic,700italic,700,900,900italic'
rel='stylesheet' type='text/css'> -->
<script src="assets/plugins/angular-material-form-builder/dist/angular-material-form-builder.min.js"></script>
<!-- ANGULAR-MATERIAL-FORM-BUILDER -->
- <script src="scripts/app.8df45af7.js"></script>
+ <script src="scripts/app.b6932ccd.js"></script>
<!-- CKEDITOR -->
<script src="assets/plugins/ckeditor/ckeditor.js"></script>
-!function(){"use strict";angular.module("app.auth",[])}(),function(){"use strict";angular.module("app.core",["ngAnimate","ngAria","ngCookies","ngMessages","ngResource","ngSanitize","ngMaterial","pascalprecht.translate","ui.router","ui.router.state.events","gridster","ds.clock","angucomplete-alt"])}(),function(){"use strict";function e(e,n){e.state("app.errors_error-404",{url:"/errors/error-404",views:{"main@":{templateUrl:"app/core/layouts/content-only.html",controller:"MainController as vm"},"content@app.errors_error-404":{templateUrl:"app/errors/404/error-404.html",controller:"Error404Controller as vm"}},params:{status:404,statusText:"",data:{},config:{}},bodyClass:"error-404"}),n.addPart("app/errors/404")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.errors.error-404",[]).config(e)}(),function(){"use strict";function e(e,n){e.state("app.errors_error-500",{url:"/errors/error-500",views:{"main@":{templateUrl:"app/core/layouts/content-only.html",controller:"MainController as vm"},"content@app.errors_error-500":{templateUrl:"app/errors/500/error-500.html",controller:"Error500Controller as vm"}},params:{status:500,statusText:"",data:{},config:{}},bodyClass:"error-500"}),n.addPart("app/errors/500")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.errors.error-500",[]).config(e)}(),function(){"use strict";angular.module("app.errors",["app.errors.error-404","app.errors.error-500"])}(),function(){"use strict";function e(e){e.addPart("app/footer")}e.$inject=["$translatePartialLoaderProvider"],angular.module("app.footer",[]).config(e)}(),function(){"use strict";function e(e,n){e.state("app.forgot",{url:"/forgot",views:{"main@":{templateUrl:"app/core/layouts/content-only.html",controller:"MainController as vm"},"content@app.forgot":{templateUrl:"app/forgot/forgot.html",controller:"ForgotPasswordController as vm"}},bodyClass:"forgot"}),n.addPart("app/forgot")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.forgot",[]).config(e)}(),function(){"use strict";function e(e){e.addPart("app/header")}e.$inject=["$translatePartialLoaderProvider"],angular.module("app.header",[]).config(e)}(),function(){"use strict";angular.module("motion",["angular-toasty","app.core","app.auth","app.navigation","app.toolbar","app.quick-panel","app.header","app.footer","app.dashboards","app.staff","app.contactmanager","app.voice","app.chat","app.mail","app.sms","app.openchannel","app.fax","app.tools","app.callysquare","app.analytics","app.integrations","app.settings","app.motiondialer","app.help","app.jscripty","app.marketplace","app.plugins","app.video","app.whatsapp","app.login","app.forgot","app.reset","app.errors"])}(),function(){"use strict";function e(e,n){e.state("app.login",{url:"/login?token&userId",views:{"main@":{templateUrl:"app/core/layouts/content-only.html",controller:"MainController as vm"},"content@app.login":{templateUrl:"app/login/login.html",controller:"LoginController as vm"}},bodyClass:"login"}),n.addPart("app/login")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.login",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.analytics",{abstract:!0,url:"/analytics"}).state("app.analytics.metrics",{url:"/metrics",views:{"content@app":{templateUrl:"app/main/apps/analytics/views/metrics/metrics.html",controller:"MetricsController as vm"}},resolve:{metrics:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("analyticMetric@get",{fields:"createdAt,updatedAt,id,name,table,metric,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Metrics",fields:"createdAt,updatedAt,id,name,table,metric,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1201})}]},authenticate:!0,permissionId:1201,bodyClass:"analytics"}).state("app.analytics.extractedReports",{url:"/extractedReports",views:{"content@app":{templateUrl:"app/main/apps/analytics/views/extractedReports/extractedReports.html",controller:"ExtractedReportsController as vm"}},resolve:{extractedReports:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("analyticExtractedReport@get",{fields:"createdAt,updatedAt,id,name,basename,savename,type,startDate,endDate,status,output,reportId,reportType",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ExtractedReports",fields:"createdAt,updatedAt,id,name,basename,savename,type,startDate,endDate,status,output,reportId,reportType",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1202})}]},authenticate:!0,permissionId:1202,bodyClass:"analytics"}),n.addPart("app/main/apps/analytics")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.analytics",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.analytics.reports"]).config(e)}(),function(){"use strict";function e(e){e.state("app.analytics.reports",{url:"/reports",views:{"content@app":{templateUrl:"app/main/apps/analytics/views/reports/reports.html",controller:"ReportsController as vm"}},resolve:{treeReports:["apiResolver",function(e){return e.resolve("analyticTreeReport@get",{fields:"id,tree",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1203})}]},authenticate:!0,permissionId:1203,bodyClass:"analytics"}).state("app.analytics.reports.edit",{url:"/:id?tab",views:{"content@app":{templateUrl:"app/main/apps/analytics/views/reports/edit/view.html",controller:"ReportController as vm"}},resolve:{report:["apiResolver","$stateParams","$q","describeTable",function(e,n,a,i){var s;return e.resolve("analyticCustomReport@get",{fields:"createdAt,updatedAt,id,name,description,table,conditions,joins",id:n.id}).then(function(e){var n=[];if((s=e).joins)try{s.joins=JSON.parse(s.joins);for(var t=0;t<s.joins.length;t+=1)n.push(i.getColumns(s.joins[t].foreignTable))}catch(e){console.log(e)}return a.all(n)}).then(function(e){for(var n=0;n<e.length;n+=1)s.joins[n].foreignTableFields=_.difference(_.keys(e[n]),["$promise","$resolved"]);return s})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1203})}]},authenticate:!0,permissionId:1203,bodyClass:"analytics"})}e.$inject=["$stateProvider"],angular.module("app.analytics.reports",["ngJsTree"]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.callysquare",{abstract:!0,url:"/callysquare"}).state("app.callysquare.odbcs",{url:"/odbcs",views:{"content@app":{templateUrl:"app/main/apps/callysquare/views/odbcs/odbcs.html",controller:"OdbcsController as vm"}},resolve:{odbcs:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("squareOdbc@get",{fields:"createdAt,updatedAt,id,name,dsn,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ODBC",fields:"createdAt,updatedAt,id,name,dsn,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1101})}]},authenticate:!0,permissionId:1101,bodyClass:"callysquare"}).state("app.callysquare.squareRecordings",{url:"/squareRecordings",views:{"content@app":{templateUrl:"app/main/apps/callysquare/views/squareRecordings/squareRecordings.html",controller:"SquareRecordingsController as vm"}},resolve:{squareRecordings:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("squareRecording@get",{fields:"createdAt,updatedAt,id,filename,projectName,uniqueid,callerid,extension,audio,savePath,format",sort:"-createdAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SquareRecordings",fields:"createdAt,updatedAt,id,filename,projectName,uniqueid,callerid,extension,audio,savePath,format",sort:"-createdAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadCallySquareRecordings",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1102})}]},authenticate:!0,permissionId:1102,bodyClass:"callysquare"}),n.addPart("app/main/apps/callysquare")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.callysquare",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.callysquare.projects"]).config(e)}(),function(){"use strict";function e(e){e.state("app.callysquare.projects",{url:"/projects",views:{"content@app":{templateUrl:"app/main/apps/callysquare/views/projects/projects.html",controller:"ProjectsController as vm"}},resolve:{projects:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("squareProject@get",{fields:"id,name,description,notes",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SquareProjects",fields:"id,name,description,notes",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1103})}]},authenticate:!0,permissionId:1103,bodyClass:"callysquare"}).state("app.callysquare.projects.edit",{url:"/:id",views:{"content@app":{templateUrl:"app/main/apps/callysquare/views/projects/edit/view.html",controller:"ProjectController as vm"}},params:{crudPermissions:void 0},resolve:{project:["apiResolver","$stateParams",function(e,n){return e.resolve("squareProject@get",{id:n.id})}],users:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,fullname,role",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Users",mergeResources:!0,fields:"id,fullname,role",sort:"name",nolimit:!0})}],trunks:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("trunk@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Trunks",fields:"id,name",sort:"name",nolimit:!0})}],queues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{type:"inbound",fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoiceQueues",type:"inbound",fields:"id,name",sort:"name",nolimit:!0})}],sounds:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("sound@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Sounds",fields:"id,name",sort:"name",nolimit:!0})}],variables:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("variable@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Variables",fields:"id,name",sort:"name",nolimit:!0})}],databases:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("squareOdbc@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ODBC",fields:"id,name",sort:"name",nolimit:!0})}],projects:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("squareProject@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SquareProjects",fields:"id,name",sort:"name",nolimit:!0})}],contexts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceContext@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Contexts",fields:"id,name",sort:"name",nolimit:!0})}],intervals:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("interval@get",{fields:"id,name,IntervalId",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Intervals",fields:"id,name,IntervalId",sort:"name",nolimit:!0})}],mailAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("mailAccount@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"MailAccounts",fields:"id,name",sort:"name",nolimit:!0})}],templates:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("template@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Templates",fields:"id,name",sort:"name",nolimit:!0})}],lists:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmList@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Lists",fields:"id,name",sort:"name",nolimit:!0})}],smsAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("smsAccount@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SmsAccounts",fields:"id,name",sort:"name",nolimit:!0})}],pauses:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("pause@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Pauses",fields:"id,name",sort:"name",nolimit:!0})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1103})}]},authenticate:!0,permissionId:1103,bodyClass:"callysquare"})}e.$inject=["$stateProvider"],angular.module("app.callysquare.projects",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.chat",{abstract:!0,url:"/chat"}).state("app.chat.chatQueues",{url:"/chatQueues",views:{"content@app":{templateUrl:"app/main/apps/chat/views/chatQueues/chatQueues.html",controller:"ChatQueuesController as vm"}},resolve:{chatQueues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("chatQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"chat",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ChatQueues",fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"chat",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:501})}]},authenticate:!0,permissionId:501,bodyClass:"chat"}).state("app.chat.chatQueues.edit",{url:"/:id?tab",params:{chatQueue:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/chat/views/chatQueues/edit/view.html",controller:"ChatQueueController as vm"}},resolve:{chatQueue:["apiResolver","$stateParams",function(e,n){return e.resolve("chatQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:501})}]},authenticate:!0,permissionId:501,bodyClass:"chat"}).state("app.chat.chatWebsites",{url:"/chatWebsites",views:{"content@app":{templateUrl:"app/main/apps/chat/views/chatWebsites/chatWebsites.html",controller:"ChatWebsitesController as vm"}},resolve:{chatWebsites:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("chatWebsite@get",{fields:"createdAt,updatedAt,id,token,agentIdentifier,customerAlias,messageFontSize,name,key,address,remote,ListId,fidelity,timeout,agentAlias,closingQuestion,formSubmitSuccessMessage,formSubmitFailureMessage,color,color_focus,color_button,textColor,backgroundColor,fontSize,header_shape,showAgentAvatar,showCustomerAvatar,alignment,verticalAlignment,messagesAlignment,defaultTitle,animation,defaultWhiteLabel,whiteLabel,defaultLogo,conditionAgreement,autoclose,enableUnmanagedNote,unmanagedMessage,skipUnmanaged,sendUnmanaged,enableCustomerWriting,waitingTitle,waitingMessage,closingMessage,noteTitle,placeholderMessage,skipMessageButton,enableRating,ratingType,ratingStarsNumber,enableFeedback,feedbackTitle,forwardTranscript,forwardTranscriptMessage,closingMessageButton,download_transcript,enableCustomerAttachment,enableSendButton,enableCustomerCheckmarks,systemAlias,enquiry_enable,enquiry_forwarding,enquiry_forwarding_address,name_title,username_placeholder,email_title,email_placeholder,header_online,hideWhenOffline,header_offline,start_chat_button,offline_chat_button,offlineMessageSubject,offlineMessageBody,offline_message,message_title,enquiry_message_placeholder,enquiry_button,rating_message,rating_send,rating_skip,onlineForm,offlineForm,mapKey,mapKeyOffline,forwardOffline,MailAccountId,openNewInteraction,forwardOfflineAddress,subjectOffline,IntervalId,timezone,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout,vidaooEscalation,vidaooApiKey,vidaooTopic,vidaooNote,vidaooMetadata",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ChatWebsites",fields:"createdAt,updatedAt,id,token,agentIdentifier,customerAlias,messageFontSize,name,key,address,remote,ListId,fidelity,timeout,agentAlias,closingQuestion,formSubmitSuccessMessage,formSubmitFailureMessage,color,color_focus,color_button,textColor,backgroundColor,fontSize,header_shape,showAgentAvatar,showCustomerAvatar,alignment,verticalAlignment,messagesAlignment,defaultTitle,animation,defaultWhiteLabel,whiteLabel,defaultLogo,conditionAgreement,autoclose,enableUnmanagedNote,unmanagedMessage,skipUnmanaged,sendUnmanaged,enableCustomerWriting,waitingTitle,waitingMessage,closingMessage,noteTitle,placeholderMessage,skipMessageButton,enableRating,ratingType,ratingStarsNumber,enableFeedback,feedbackTitle,forwardTranscript,forwardTranscriptMessage,closingMessageButton,download_transcript,enableCustomerAttachment,enableSendButton,enableCustomerCheckmarks,systemAlias,enquiry_enable,enquiry_forwarding,enquiry_forwarding_address,name_title,username_placeholder,email_title,email_placeholder,header_online,hideWhenOffline,header_offline,start_chat_button,offline_chat_button,offlineMessageSubject,offlineMessageBody,offline_message,message_title,enquiry_message_placeholder,enquiry_button,rating_message,rating_send,rating_skip,onlineForm,offlineForm,mapKey,mapKeyOffline,forwardOffline,MailAccountId,openNewInteraction,forwardOfflineAddress,subjectOffline,IntervalId,timezone,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout,vidaooEscalation,vidaooApiKey,vidaooTopic,vidaooNote,vidaooMetadata",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:502})}]},authenticate:!0,permissionId:502,bodyClass:"chat"}).state("app.chat.chatWebsites.edit",{url:"/:id?tab",params:{chatWebsite:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/chat/views/chatWebsites/edit/view.html",controller:"ChatWebsiteController as vm"}},resolve:{chatWebsite:["apiResolver","$stateParams",function(e,n){return e.resolve("chatWebsite@get",{fields:"createdAt,updatedAt,id,token,agentIdentifier,customerAlias,messageFontSize,name,key,address,remote,ListId,fidelity,timeout,agentAlias,closingQuestion,formSubmitSuccessMessage,formSubmitFailureMessage,color,color_focus,color_button,textColor,backgroundColor,fontSize,header_shape,showAgentAvatar,showCustomerAvatar,alignment,verticalAlignment,messagesAlignment,defaultTitle,animation,defaultWhiteLabel,whiteLabel,defaultLogo,conditionAgreement,autoclose,enableUnmanagedNote,unmanagedMessage,skipUnmanaged,sendUnmanaged,enableCustomerWriting,waitingTitle,waitingMessage,closingMessage,noteTitle,placeholderMessage,skipMessageButton,enableRating,ratingType,ratingStarsNumber,enableFeedback,feedbackTitle,forwardTranscript,forwardTranscriptMessage,closingMessageButton,download_transcript,enableCustomerAttachment,enableSendButton,enableCustomerCheckmarks,systemAlias,enquiry_enable,enquiry_forwarding,enquiry_forwarding_address,name_title,username_placeholder,email_title,email_placeholder,header_online,hideWhenOffline,header_offline,start_chat_button,offline_chat_button,offlineMessageSubject,offlineMessageBody,offline_message,message_title,enquiry_message_placeholder,enquiry_button,rating_message,rating_send,rating_skip,onlineForm,offlineForm,mapKey,mapKeyOffline,forwardOffline,MailAccountId,openNewInteraction,forwardOfflineAddress,subjectOffline,IntervalId,timezone,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout,vidaooEscalation,vidaooApiKey,vidaooTopic,vidaooNote,vidaooMetadata",id:n.id})}],userProfile:["apiResolver","Auth",function(e,n){return n.isAdmin()?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadAttachments,downloadOmnichannelInteractions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:502})}]},authenticate:!0,permissionId:502,bodyClass:"chat"}),n.addPart("app/main/apps/chat")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.chat",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.chat.realtime"]).config(e)}(),function(){"use strict";function e(e){e.state("app.chat.realtime",{url:"/realtime",views:{"content@app":{templateUrl:"app/main/apps/chat/views/realtime/realtime.html",controller:"ChatRealtimeController as vm"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:510})}]},authenticate:!0,permissionId:510}).state("app.chat.realtime.agents",{url:"/agents",controller:"AgentsChatRealtimeController as vm",templateUrl:"app/main/apps/chat/views/realtime/agents/view.html",resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{nolimit:!0})}],agents:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}],rpcAgents:["apiResolver",function(e){return e.resolve("rpc@getAgents")}]},authenticate:!0,permissionId:510}).state("app.chat.realtime.queues",{url:"/queues",controller:"QueuesChatRealtimeController as vm",templateUrl:"app/main/apps/chat/views/realtime/queues/view.html",resolve:{queues:["apiResolver","Auth",function(e,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"ChatQueues":void 0,channel:"chat",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:501})}]},authenticate:!0,permissionId:510})}e.$inject=["$stateProvider"],angular.module("app.chat.realtime",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.contactmanager",{abstract:!0,url:"/contactmanager"}).state("app.contactmanager.lists",{url:"/lists",views:{"content@app":{templateUrl:"app/main/apps/contactmanager/views/lists/lists.html",controller:"ListsController as vm"}},resolve:{lists:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmList@get",{fields:"createdAt,updatedAt,id,name,description,dialPrefix",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Lists",fields:"createdAt,updatedAt,id,name,description,dialPrefix",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadContactManagerLists",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:301})}]},authenticate:!0,permissionId:301,bodyClass:"contactmanager"}).state("app.contactmanager.lists.edit",{url:"/:id?tab",params:{list:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/contactmanager/views/lists/edit/view.html",controller:"ListController as vm"}},resolve:{list:["apiResolver","$stateParams",function(e,n){return e.resolve("cmList@get",{fields:"createdAt,updatedAt,id,name,description,dialPrefix",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:301})}]},authenticate:!0,permissionId:301,bodyClass:"contactmanager"}).state("app.contactmanager.companies",{url:"/companies",views:{"content@app":{templateUrl:"app/main/apps/contactmanager/views/companies/companies.html",controller:"CompaniesController as vm"}},resolve:{companies:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmCompany@get",{fields:"createdAt,updatedAt,id,name,phone,vat,fax,companyId,type,website,emailDomain,email,description,sStreet,sPostalCode,sCity,sCountry,street,postalCode,city,country",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Companies",fields:"createdAt,updatedAt,id,name,phone,vat,fax,companyId,type,website,emailDomain,email,description,sStreet,sPostalCode,sCity,sCountry,street,postalCode,city,country",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:302})}]},authenticate:!0,permissionId:302,bodyClass:"contactmanager"}).state("app.contactmanager.companies.edit",{url:"/:id?tab",params:{company:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/contactmanager/views/companies/edit/view.html",controller:"CompanyController as vm"}},resolve:{company:["apiResolver","$stateParams",function(e,n){return e.resolve("cmCompany@get",{fields:"createdAt,updatedAt,id,name,phone,vat,fax,companyId,type,website,emailDomain,email,description,sStreet,sPostalCode,sCity,sCountry,street,postalCode,city,country",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:302})}]},authenticate:!0,permissionId:302,bodyClass:"contactmanager"}).state("app.contactmanager.globalCustomFields",{url:"/globalCustomFields",views:{"content@app":{templateUrl:"app/main/apps/contactmanager/views/globalCustomFields/globalCustomFields.html",controller:"GlobalCustomFieldsController as vm"}},resolve:{globalCustomFields:["apiResolver","Auth",function(e,n){return e.resolve("cmCustomField@get",{fields:"createdAt,updatedAt,id,alias,type,values,required,clickToAction,actionType",sort:"-updatedAt",ListId:"null",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:304})}]},authenticate:!0,permissionId:304,bodyClass:"contactmanager"}),n.addPart("app/main/apps/contactmanager")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.contactmanager",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.contactmanager.contacts"]).config(e)}(),function(){"use strict";function e(e){e.state("app.contactmanager.contacts",{url:"/contacts?ListId&CompanyId",views:{"content@app":{templateUrl:"app/main/apps/contactmanager/views/contacts/contacts.html",controller:"ContactsController as vm"}},resolve:{contacts:["apiResolver","Auth","$stateParams",function(e,n,t){return n.hasRole("admin")?e.resolve("cmContact@get",_.merge({includeAll:!0,sort:"-updatedAt",limit:10,offset:0},t)):e.resolve("userProfile@getResources",_.merge({id:n.getCurrentUser().userProfileId,section:"Contacts",includeAll:!0,sort:"-updatedAt",limit:10,offset:0},t))}],lists:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmList@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Lists",fields:"id,name",sort:"-updatedAt",nolimit:!0})}],listsMap:["lists",function(e){for(var n={},t=0;t<e.rows.length;t++)n[e.rows[t].id]=e.rows[t].name;return n}],companies:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmCompany@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Companies",fields:"id,name",sort:"name",nolimit:!0})}],companiesMap:["companies",function(e){for(var n={},t=0;t<e.rows.length;t++)n[e.rows[t].id]=e.rows[t].name;return n}],tags:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("tag@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Tags",fields:"id,name",sort:"name",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:303})}]},authenticate:!0,permissionId:303,bodyClass:"contactmanager"}).state("app.contactmanager.contacts.edit",{url:"/:id?tab",params:{crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/contactmanager/views/contacts/edit/view.html",controller:"ContactController as vm"}},resolve:{contact:["apiResolver","$stateParams",function(e,n){return e.resolve("cmContact@get",{id:n.id}).then(function(e){return e.dateOfBirth&&(e.dateOfBirth=new Date(e.dateOfBirth)),e}).catch(function(e){console.error(e)})}],hoppers:["apiResolver","$stateParams",function(e,n){return e.resolve("cmContact@getHoppers",{id:n.id,fields:"id,phone,scheduledat,priority,recallme,VoiceQueueId,CampaignId,UserId",sort:"-updatedAt",limit:10,offset:0})}],finals:["apiResolver","$stateParams",function(e,n){return e.resolve("cmContact@getHopperFinals",{id:n.id,fields:"id,uniqueid,calleridnum,statedesc,starttime,disposition",sort:"-updatedAt",limit:10,offset:0})}],histories:["apiResolver","$stateParams",function(e,n){return e.resolve("cmContact@getHopperHistories",{id:n.id,fields:"id,uniqueid,calleridnum,statedesc,scheduledat,starttime,endtime",sort:"-updatedAt",limit:10,offset:0})}],jscriptySessions:["apiResolver","$stateParams",function(e,n){return e.resolve("cmContact@getJscriptySessions",{id:n.id,fields:"id,starttime,endtime,membername,projectname",sort:"-starttime",limit:10,offset:0})}],companies:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmCompany@get"):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Companies"})}],lists:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmList@get",{fields:"id,name",sort:"-updatedAt",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Lists",fields:"id,name",sort:"-updatedAt",nolimit:!0})}],customFields:["apiResolver","contact",function(e,n){return n.ListId?e.resolve("cmList@getCustomFields",{id:n.ListId}):null}],tags:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("tag@get",{sort:"name"}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Tags"})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:303})}]},authenticate:!0,permissionId:303,bodyClass:"contactmanager"})}e.$inject=["$stateProvider"],angular.module("app.contactmanager.contacts",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.dashboards",{abstract:!0,url:"/dashboards"}),n.addPart("app/main/apps/dashboards")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.dashboards",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.dashboards.general","app.dashboards.custom"]).config(e)}(),function(){"use strict";function e(e){e.state("app.dashboards.custom",{url:"/custom/:id",views:{"content@app":{templateUrl:"app/main/apps/dashboards/views/custom/custom.html",controller:"DashboardCustomController as vm"}},resolve:{voiceQueues:["apiResolver","Auth",function(n,e){var a;return(e.hasRole("admin")?n.resolve("voiceQueue@get",{fields:"id,name",nolimit:!0}):n.resolve("userProfile@getResources",{id:e.getCurrentUser().userProfileId,section:"VoiceQueues",mergeResources:!0,fields:"id,name",channel:"voice",nolimit:!0})).then(function(e){return a=e,n.resolve("rpc@getVoiceQueues")}).then(function(e){if(e)for(var n,t=0;t<e.rows.length;t+=1)(n=_.find(a.rows,{id:e.rows[t].id}))&&_.merge(n,_.pick(e.rows[t],["waiting","total","talking","answered","unmanaged","abandoned"]));return a})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:100})}]},authenticate:!0,bodyClass:"dashboards"})}e.$inject=["$stateProvider"],angular.module("app.dashboards.custom",[]).config(e)}(),function(){"use strict";function e(e){e.state("app.dashboards.general",{url:"/general",views:{"content@app":{templateProvider:["$stateParams","$templateFactory","Auth",function(e,n,t){return t.isAgent()?n.fromUrl("app/main/apps/dashboards/views/general/agent/agent.general.html",e):n.fromUrl("app/main/apps/dashboards/views/general/user/user.general.html",e)}],controllerProvider:["Auth",function(e){return e.isAgent()?"AgentDashboardGeneralController as vm":"UserDashboardGeneralController as vm"}]}},resolve:{globalUserLists:["apiResolver","Auth",function(e,n){return e.resolve("user@getLists",{id:n.getCurrentUser().id,sort:"name",nolimit:!0})}],globalLists:["apiResolver",function(e){return e.resolve("cmList@get",{sort:"name",nolimit:!0})}],globalTags:["apiResolver",function(e){return e.resolve("tag@get",{sort:"name",nolimit:!0})}],globalCompanies:["apiResolver",function(e){return e.resolve("cmCompany@get",{sort:"name",nolimit:!0})}]},authenticate:!0,bodyClass:"dashboards"})}e.$inject=["$stateProvider"],angular.module("app.dashboards.general",["ngMaterialDateRangePicker","app.dashboards.general.user"]).config(e)}(),function(){"use strict";function e(e){e.state("app.dashboards.general.voice",{url:"/voice",data:{selectedTab:0},views:{voice:{templateUrl:"app/main/apps/dashboards/views/general/user/voice/user.general.voice.html",controller:"UserVoiceDashboardGeneralController as vm"}},resolve:{rpcQueues:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueues")}],inboundQueues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{fields:"id,name",type:"inbound",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoiceQueues",fields:"id,name",type:"inbound",channel:"voice",nolimit:!0})}],outbound:["apiResolver",function(e){return e.resolve("rpc@getOutbound")}]},authenticate:!0,bodyClass:"dashboards"}).state("app.dashboards.general.dialer",{url:"/dialer",data:{selectedTab:1},views:{dialer:{templateUrl:"app/main/apps/dashboards/views/general/user/dialer/user.general.dialer.html",controller:"UserVoiceDashboardDialerController as vm"}},resolve:{rpcQueues:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueues")}],outboundQueues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{fields:"id,name",type:"outbound",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"QueueCampaigns",fields:"id,name",type:"outbound",channel:"voice",nolimit:!0})}],rpcCampaigns:["apiResolver",function(e){return e.resolve("rpc@getCampaigns")}]},authenticate:!0,bodyClass:"dashboards"}).state("app.dashboards.general.chat",{url:"/chat",data:{selectedTab:2},views:{chat:{templateUrl:"app/main/apps/dashboards/views/general/user/chat/user.general.chat.html",controller:"UserChatDashboardGeneralController as vm"}},resolve:{chatInteractions:["apiResolver",function(e){return e.resolve("chatInteraction@get",{createdAt:{$gte:moment().startOf("day").utcOffset(0,!0).format(),$lte:moment().endOf("day").utcOffset(0,!0).format()},nolimit:!0})}],chatWebsites:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("chatWebsite@get",{fields:"createdAt,updatedAt,id,token,agentIdentifier,customerAlias,messageFontSize,name,key,address,remote,ListId,fidelity,timeout,agentAlias,closingQuestion,formSubmitSuccessMessage,formSubmitFailureMessage,color,color_focus,color_button,textColor,backgroundColor,fontSize,header_shape,showAgentAvatar,showCustomerAvatar,alignment,verticalAlignment,messagesAlignment,defaultTitle,animation,defaultWhiteLabel,whiteLabel,defaultLogo,conditionAgreement,autoclose,enableUnmanagedNote,unmanagedMessage,skipUnmanaged,sendUnmanaged,enableCustomerWriting,waitingTitle,waitingMessage,closingMessage,noteTitle,placeholderMessage,skipMessageButton,enableRating,ratingType,ratingStarsNumber,enableFeedback,forwardTranscript,forwardTranscriptMessage,closingMessageButton,download_transcript,enableCustomerAttachment,systemAlias,enquiry_enable,enquiry_forwarding,enquiry_forwarding_address,name_title,username_placeholder,email_title,email_placeholder,header_online,hideWhenOffline,header_offline,start_chat_button,offline_chat_button,offlineMessageSubject,offlineMessageBody,header_offline,offline_message,message_title,enquiry_message_placeholder,enquiry_button,rating_message,rating_send,rating_skip,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl,onlineForm,offlineForm,mapKey,mapKeyOffline,forwardTranscript,forwardOffline,forwardOfflineAddress,IntervalId,timezone,waitForTheAssignedAgent,description,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ChatWebsites",fields:"createdAt,updatedAt,id,token,agentIdentifier,customerAlias,messageFontSize,name,key,address,remote,ListId,fidelity,timeout,agentAlias,closingQuestion,formSubmitSuccessMessage,formSubmitFailureMessage,color,color_focus,color_button,textColor,backgroundColor,fontSize,header_shape,showAgentAvatar,showCustomerAvatar,alignment,verticalAlignment,messagesAlignment,defaultTitle,animation,defaultWhiteLabel,whiteLabel,defaultLogo,conditionAgreement,autoclose,enableUnmanagedNote,unmanagedMessage,skipUnmanaged,sendUnmanaged,enableCustomerWriting,waitingTitle,waitingMessage,closingMessage,noteTitle,placeholderMessage,skipMessageButton,enableRating,ratingType,ratingStarsNumber,enableFeedback,forwardTranscript,forwardTranscriptMessage,closingMessageButton,download_transcript,enableCustomerAttachment,systemAlias,enquiry_enable,enquiry_forwarding,enquiry_forwarding_address,name_title,username_placeholder,email_title,email_placeholder,header_online,hideWhenOffline,header_offline,start_chat_button,offline_chat_button,offlineMessageSubject,offlineMessageBody,header_offline,offline_message,message_title,enquiry_message_placeholder,enquiry_button,rating_message,rating_send,rating_skip,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl,onlineForm,offlineForm,mapKey,mapKeyOffline,forwardTranscript,forwardOffline,forwardOfflineAddress,IntervalId,timezone,waitForTheAssignedAgent,description,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,bodyClass:"dashboards"}).state("app.dashboards.general.mail",{url:"/mail",data:{selectedTab:3},views:{mail:{templateUrl:"app/main/apps/dashboards/views/general/user/mail/user.general.mail.html",controller:"UserMailDashboardGeneralController as vm"}},resolve:{mailInteractions:["apiResolver",function(e){return e.resolve("mailInteraction@get",{createdAt:{$gte:moment().startOf("day").utcOffset(0,!0).format(),$lte:moment().endOf("day").utcOffset(0,!0).format()},nolimit:!0})}],mailAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("mailAccount@get",{fields:"createdAt,updatedAt,id,name,key,email,ListId,active,cservice,Imap.service,Imap.host,Imap.port,Imap.tls,Imap.authentication,Imap.user,Imap.password,Imap.mailbox,Imap.connTimeout,Imap.authTimeout,Smtp.service,Smtp.host,Smtp.port,Smtp.secure,Smtp.authentication,Smtp.user,Smtp.pass,cauthentication,cuser,cpassword,fontFamily,fontSize,template,markAsUnread,waitForTheAssignedAgent,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"MailAccounts",fields:"createdAt,updatedAt,id,name,key,email,ListId,active,cservice,Imap.service,Imap.host,Imap.port,Imap.tls,Imap.authentication,Imap.user,Imap.password,Imap.mailbox,Imap.connTimeout,Imap.authTimeout,Smtp.service,Smtp.host,Smtp.port,Smtp.secure,Smtp.authentication,Smtp.user,Smtp.pass,cauthentication,cuser,cpassword,fontFamily,fontSize,template,markAsUnread,waitForTheAssignedAgent,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,bodyClass:"dashboards"}).state("app.dashboards.general.sms",{url:"/sms",data:{selectedTab:4},views:{sms:{templateUrl:"app/main/apps/dashboards/views/general/user/sms/user.general.sms.html",controller:"UserSmsDashboardGeneralController as vm"}},resolve:{smsInteractions:["apiResolver",function(e){return e.resolve("smsInteraction@get",{createdAt:{$gte:moment().startOf("day").utcOffset(0,!0).format(),$lte:moment().endOf("day").utcOffset(0,!0).format()},nolimit:!0})}],smsAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("smsAccount@get",{fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,phone,type,accountSid,authId,authToken,smsMethod,applicationId,accountId,username,password,senderString,deliveryReport,waitForTheAssignedAgent,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SmsAccounts",fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,phone,type,accountSid,authId,authToken,smsMethod,applicationId,accountId,username,password,senderString,deliveryReport,waitForTheAssignedAgent,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,bodyClass:"dashboards"}).state("app.dashboards.general.openchannel",{url:"/openchannel",data:{selectedTab:5},views:{openchannel:{templateUrl:"app/main/apps/dashboards/views/general/user/openchannel/user.general.openchannel.html",controller:"UserOpenchannelDashboardGeneralController as vm"}},resolve:{openchannelInteractions:["apiResolver",function(e){return e.resolve("openchannelInteraction@get",{createdAt:{$gte:moment().startOf("day").utcOffset(0,!0).format(),$lte:moment().endOf("day").utcOffset(0,!0).format()},nolimit:!0})}],openchannelAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("openchannelAccount@get",{fields:"createdAt,updatedAt,id,name,key,token,replyUri,ListId,waitForTheAssignedAgent,mapKey,description,receiveUri,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"OpenchannelAccounts",fields:"createdAt,updatedAt,id,name,key,token,replyUri,ListId,waitForTheAssignedAgent,mapKey,description,receiveUri,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",nolimit:!0})}]},authenticate:!0,bodyClass:"dashboards"}).state("app.dashboards.general.fax",{url:"/fax",data:{selectedTab:6},views:{fax:{templateUrl:"app/main/apps/dashboards/views/general/user/fax/user.general.fax.html",controller:"UserFaxDashboardGeneralController as vm"}},resolve:{faxInteractions:["apiResolver",function(e){return e.resolve("faxInteraction@get",{createdAt:{$gte:moment().startOf("day").utcOffset(0,!0).format(),$lte:moment().endOf("day").utcOffset(0,!0).format()},nolimit:!0})}],faxAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("faxAccount@get",{fields:"createdAt,updatedAt,id,name,key,headerinfo,TrunkId,localstationid,ListId,waitForTheAssignedAgent,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"FaxAccounts",fields:"createdAt,updatedAt,id,name,key,headerinfo,TrunkId,localstationid,ListId,waitForTheAssignedAgent,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,bodyClass:"dashboards"}).state("app.dashboards.general.whatsapp",{url:"/whatsapp",data:{selectedTab:7},views:{whatsapp:{templateUrl:"app/main/apps/dashboards/views/general/user/whatsapp/user.general.whatsapp.html",controller:"UserWhatsappDashboardGeneralController as vm"}},resolve:{whatsappInteractions:["apiResolver",function(e){return e.resolve("whatsappInteraction@get",{createdAt:{$gte:moment().startOf("day").utcOffset(0,!0).format(),$lte:moment().endOf("day").utcOffset(0,!0).format()},nolimit:!0})}],whatsappAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("whatsappAccount@get",{fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,phone,type,accountSid,authId,authToken,whatsappMethod,username,password,senderString,deliveryReport,waitForTheAssignedAgent,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"WhatsappAccounts",fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,phone,type,accountSid,authId,authToken,whatsappMethod,username,password,senderString,deliveryReport,waitForTheAssignedAgent,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,bodyClass:"dashboards"})}e.$inject=["$stateProvider"],angular.module("app.dashboards.general.user",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.fax",{abstract:!0,url:"/fax"}).state("app.fax.faxQueues",{url:"/faxQueues",views:{"content@app":{templateUrl:"app/main/apps/fax/views/faxQueues/faxQueues.html",controller:"FaxQueuesController as vm"}},resolve:{faxQueues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("faxQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"fax",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"FaxQueues",fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"fax",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:901})}]},authenticate:!0,permissionId:901,bodyClass:"fax"}).state("app.fax.faxQueues.edit",{url:"/:id?tab",params:{faxQueue:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/fax/views/faxQueues/edit/view.html",controller:"FaxQueueController as vm"}},resolve:{faxQueue:["apiResolver","$stateParams",function(e,n){return e.resolve("faxQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:901})}]},authenticate:!0,permissionId:901,bodyClass:"fax"}).state("app.fax.faxAccounts",{url:"/faxAccounts",views:{"content@app":{templateUrl:"app/main/apps/fax/views/faxAccounts/faxAccounts.html",controller:"FaxAccountsController as vm"}},resolve:{faxAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("faxAccount@get",{fields:"createdAt,updatedAt,id,name,key,headerinfo,TrunkId,localstationid,ListId,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"FaxAccounts",fields:"createdAt,updatedAt,id,name,key,headerinfo,TrunkId,localstationid,ListId,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:902})}]},authenticate:!0,permissionId:902,bodyClass:"fax"}).state("app.fax.faxAccounts.edit",{url:"/:id?tab",params:{faxAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/fax/views/faxAccounts/edit/view.html",controller:"FaxAccountController as vm"}},resolve:{faxAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("faxAccount@get",{fields:"createdAt,updatedAt,id,name,key,headerinfo,TrunkId,localstationid,ListId,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",id:n.id})}],userProfile:["apiResolver","Auth",function(e,n){return n.isAdmin()?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadOmnichannelInteractions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:902})}]},authenticate:!0,permissionId:902,bodyClass:"fax"}),n.addPart("app/main/apps/fax")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.fax",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.fax.realtime"]).config(e)}(),function(){"use strict";function e(e){e.state("app.fax.realtime",{url:"/realtime",views:{"content@app":{templateUrl:"app/main/apps/fax/views/realtime/realtime.html",controller:"FaxRealtimeController as vm"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:910})}]},authenticate:!0,permissionId:910}).state("app.fax.realtime.agents",{url:"/agents",controller:"AgentsFaxRealtimeController as vm",templateUrl:"app/main/apps/fax/views/realtime/agents/view.html",resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{nolimit:!0})}],agents:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}],rpcAgents:["apiResolver",function(e){return e.resolve("rpc@getAgents")}]},authenticate:!0,permissionId:910}).state("app.fax.realtime.trunks",{url:"/trunks",controller:"TrunksFaxRealtimeController as vm",templateUrl:"app/main/apps/fax/views/realtime/trunks/view.html",resolve:{trunks:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("trunk@get",{fields:"id,name",active:!0,sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Trunks",fields:"id,name",active:!0,sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1011})}],rpcTrunks:["apiResolver",function(e){return e.resolve("rpc@getTrunks")}]},authenticate:!0,permissionId:910}).state("app.fax.realtime.queues",{url:"/queues",controller:"QueuesFaxRealtimeController as vm",templateUrl:"app/main/apps/fax/views/realtime/queues/view.html",resolve:{queues:["apiResolver","Auth",function(e,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"FaxQueues":void 0,channel:"fax",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:901})}]},authenticate:!0,permissionId:910}).state("app.fax.realtime.accounts",{url:"/accounts",controller:"FaxAccountsRealtimeController as vm",templateUrl:"app/main/apps/fax/views/realtime/accounts/view.html",resolve:{faxAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("faxAccount@get",{sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"FaxAccounts",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:902})}],rpcFaxAccounts:["apiResolver",function(e){return e.resolve("rpc@getFaxAccounts")}]},authenticate:!0,permissionId:910})}e.$inject=["$stateProvider"],angular.module("app.fax.realtime",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.help",{abstract:!0,url:"/help"}),n.addPart("app/main/apps/help")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.help",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.help.about"]).config(e)}(),function(){"use strict";function e(e){e.state("app.help.about",{url:"/about",views:{"content@app":{templateUrl:"app/main/apps/help/views/about/about.html",controller:"AboutController as vm"}},resolve:{info:["apiResolver",function(e){return e.resolve("version@get")}]},authenticate:!0,permissionId:1600,bodyClass:"help"})}e.$inject=["$stateProvider"],angular.module("app.help.about",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.integrations",{abstract:!0,url:"/integrations"}).state("app.integrations.zendeskAccounts",{url:"/zendeskAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/zendeskAccounts/zendeskAccounts.html",controller:"ZendeskAccountsController as vm"}},resolve:{zendeskAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intZendeskAccount@get",{fields:"createdAt,updatedAt,id,name,type,username,remoteUri,authType,password,token,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ZendeskAccounts",fields:"createdAt,updatedAt,id,name,type,username,remoteUri,authType,password,token,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1301})}]},authenticate:!0,permissionId:1301,bodyClass:"integrations"}).state("app.integrations.zendeskAccounts.edit",{url:"/:id?tab",params:{zendeskAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/zendeskAccounts/edit/view.html",controller:"ZendeskAccountController as vm"}},resolve:{zendeskAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("intZendeskAccount@get",{fields:"createdAt,updatedAt,id,name,type,username,remoteUri,authType,password,token,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1301})}]},authenticate:!0,permissionId:1301,bodyClass:"integrations"}).state("app.integrations.salesforceAccounts",{url:"/salesforceAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/salesforceAccounts/salesforceAccounts.html",controller:"SalesforceAccountsController as vm"}},resolve:{salesforceAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intSalesforceAccount@get",{fields:"createdAt,updatedAt,id,name,type,username,remoteUri,password,clientId,clientSecret,securityToken,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SalesforceAccounts",fields:"createdAt,updatedAt,id,name,type,username,remoteUri,password,clientId,clientSecret,securityToken,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1302})}]},authenticate:!0,permissionId:1302,bodyClass:"integrations"}).state("app.integrations.salesforceAccounts.edit",{url:"/:id?tab",params:{salesforceAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/salesforceAccounts/edit/view.html",controller:"SalesforceAccountController as vm"}},resolve:{salesforceAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("intSalesforceAccount@get",{fields:"createdAt,updatedAt,id,name,type,username,remoteUri,password,clientId,clientSecret,securityToken,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1302})}]},authenticate:!0,permissionId:1302,bodyClass:"integrations"}).state("app.integrations.freshdeskAccounts",{url:"/freshdeskAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/freshdeskAccounts.html",controller:"FreshdeskAccountsController as vm"}},resolve:{freshdeskAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intFreshdeskAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"FreshdeskAccounts",fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1303})}]},authenticate:!0,permissionId:1303,bodyClass:"integrations"}).state("app.integrations.freshdeskAccounts.edit",{url:"/:id?tab",params:{freshdeskAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/edit/view.html",controller:"FreshdeskAccountController as vm"}},resolve:{freshdeskAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("intFreshdeskAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1303})}]},authenticate:!0,permissionId:1303,bodyClass:"integrations"}).state("app.integrations.sugarcrmAccounts",{url:"/sugarcrmAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/sugarcrmAccounts.html",controller:"SugarcrmAccountsController as vm"}},resolve:{sugarcrmAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intSugarcrmAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,password,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SugarcrmAccounts",fields:"createdAt,updatedAt,id,name,username,remoteUri,password,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1305})}]},authenticate:!0,permissionId:1305,bodyClass:"integrations"}).state("app.integrations.sugarcrmAccounts.edit",{url:"/:id?tab",params:{sugarcrmAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/edit/view.html",controller:"SugarcrmAccountController as vm"}},resolve:{sugarcrmAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("intSugarcrmAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,password,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1305})}]},authenticate:!0,permissionId:1305,bodyClass:"integrations"}).state("app.integrations.deskAccounts",{url:"/deskAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/deskAccounts/deskAccounts.html",controller:"DeskAccountsController as vm"}},resolve:{deskAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intDeskAccount@get",{fields:"createdAt,updatedAt,id,name,type,remoteUri,authType,username,password,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"DeskAccounts",fields:"createdAt,updatedAt,id,name,type,remoteUri,authType,username,password,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1306})}]},authenticate:!0,permissionId:1306,bodyClass:"integrations"}).state("app.integrations.deskAccounts.edit",{url:"/:id?tab",params:{deskAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/deskAccounts/edit/view.html",controller:"DeskAccountController as vm"}},resolve:{deskAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("intDeskAccount@get",{fields:"createdAt,updatedAt,id,name,type,remoteUri,authType,username,password,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1306})}]},authenticate:!0,permissionId:1306,bodyClass:"integrations"}).state("app.integrations.zohoAccounts",{url:"/zohoAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/zohoAccounts/zohoAccounts.html",controller:"ZohoAccountsController as vm"}},resolve:{zohoAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intZohoAccount@get",{fields:"createdAt,updatedAt,id,name,host,zone,clientId,clientSecret,code,refreshToken,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ZohoAccounts",fields:"createdAt,updatedAt,id,name,host,zone,clientId,clientSecret,code,refreshToken,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1307})}]},authenticate:!0,permissionId:1307,bodyClass:"integrations"}).state("app.integrations.zohoAccounts.edit",{url:"/:id?tab",params:{zohoAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/zohoAccounts/edit/view.html",controller:"ZohoAccountController as vm"}},resolve:{zohoAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("intZohoAccount@get",{fields:"createdAt,updatedAt,id,name,host,zone,clientId,clientSecret,code,refreshToken,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1307})}]},authenticate:!0,permissionId:1307,bodyClass:"integrations"}).state("app.integrations.vtigerAccounts",{url:"/vtigerAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/vtigerAccounts/vtigerAccounts.html",controller:"VtigerAccountsController as vm"}},resolve:{vtigerAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intVtigerAccount@get",{fields:"createdAt,updatedAt,id,name,description,username,accessKey,remoteUri,serverUrl",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VtigerAccounts",fields:"createdAt,updatedAt,id,name,description,username,accessKey,remoteUri,serverUrl",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1308})}]},authenticate:!0,permissionId:1308,bodyClass:"integrations"}).state("app.integrations.vtigerAccounts.edit",{url:"/:id?tab",params:{vtigerAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/vtigerAccounts/edit/view.html",controller:"VtigerAccountController as vm"}},resolve:{vtigerAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("intVtigerAccount@get",{fields:"createdAt,updatedAt,id,name,description,username,accessKey,remoteUri,serverUrl",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1308})}]},authenticate:!0,permissionId:1308,bodyClass:"integrations"}).state("app.integrations.dynamics365Accounts",{url:"/dynamics365Accounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/dynamics365Accounts/dynamics365Accounts.html",controller:"Dynamics365AccountsController as vm"}},resolve:{dynamics365Accounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intDynamics365Account@get",{fields:"createdAt,updatedAt,id,name,username,password,remoteUri,tenantId,clientId,clientSecret,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Dynamics365Accounts",fields:"createdAt,updatedAt,id,name,username,password,remoteUri,tenantId,clientId,clientSecret,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1309})}]},authenticate:!0,permissionId:1309,bodyClass:"integrations"}).state("app.integrations.dynamics365Accounts.edit",{url:"/:id?tab",params:{dynamics365Account:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/dynamics365Accounts/edit/view.html",controller:"Dynamics365AccountController as vm"}},resolve:{dynamics365Account:["apiResolver","$stateParams",function(e,n){return e.resolve("intDynamics365Account@get",{fields:"createdAt,updatedAt,id,name,username,password,remoteUri,tenantId,clientId,clientSecret,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1309})}]},authenticate:!0,permissionId:1309,bodyClass:"integrations"}).state("app.integrations.servicenowAccounts",{url:"/servicenowAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/servicenowAccounts/servicenowAccounts.html",controller:"ServicenowAccountsController as vm"}},resolve:{servicenowAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intServicenowAccount@get",{fields:"createdAt,updatedAt,id,name,username,password,email,remoteUri,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ServicenowAccounts",fields:"createdAt,updatedAt,id,name,username,password,email,remoteUri,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1310})}]},authenticate:!0,permissionId:1310,bodyClass:"integrations"}).state("app.integrations.servicenowAccounts.edit",{url:"/:id?tab",params:{servicenowAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/servicenowAccounts/edit/view.html",controller:"ServicenowAccountController as vm"}},resolve:{servicenowAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("intServicenowAccount@get",{fields:"createdAt,updatedAt,id,name,username,password,email,remoteUri,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1310})}]},authenticate:!0,permissionId:1310,bodyClass:"integrations"}).state("app.integrations.freshsalesAccounts",{url:"/freshsalesAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/freshsalesAccounts/freshsalesAccounts.html",controller:"FreshsalesAccountsController as vm"}},resolve:{freshsalesAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intFreshsalesAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"FreshsalesAccounts",fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1304})}]},authenticate:!0,permissionId:1304,bodyClass:"integrations"}).state("app.integrations.freshsalesAccounts.edit",{url:"/:id?tab",params:{freshsalesAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/freshsalesAccounts/edit/view.html",controller:"FreshsalesAccountController as vm"}},resolve:{freshsalesAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("intFreshsalesAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1304})}]},authenticate:!0,permissionId:1304,bodyClass:"integrations"}),n.addPart("app/main/apps/integrations")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.integrations",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter"]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.jscripty",{abstract:!0,url:"/jscripty"}).state("app.jscripty.projects",{url:"/projects",views:{"content@app":{templateUrl:"app/main/apps/jscripty/views/projects/projects.html",controller:"JscriptyProjectsController as vm"}},resolve:{projects:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("jscriptyProject@get",{fields:"createdAt,updatedAt,id,name,enableUncompleteSave,sendUnpauseOnSubmit,description,formData",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Projects",fields:"createdAt,updatedAt,id,name,enableUncompleteSave,sendUnpauseOnSubmit,description,formData",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadJscriptySessions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1701})}]},authenticate:!0,permissionId:1701,bodyClass:"jscripty"}).state("app.jscripty.projects.edit",{url:"/:id?tab",params:{project:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/jscripty/views/projects/edit/view.html",controller:"JscriptyProjectController as vm"}},resolve:{project:["apiResolver","$stateParams",function(e,n){return e.resolve("jscriptyProject@get",{fields:"createdAt,updatedAt,id,name,enableUncompleteSave,sendUnpauseOnSubmit,description,formData",id:n.id})}],userProfile:["apiResolver","Auth",function(e,n){return n.isAdmin()?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadJscriptySessions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1701})}]},authenticate:!0,permissionId:1701,bodyClass:"jscripty"}),n.addPart("app/main/apps/jscripty")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.jscripty",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter"]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.mail",{abstract:!0,url:"/mail"}).state("app.mail.mailQueues",{url:"/mailQueues",views:{"content@app":{templateUrl:"app/main/apps/mail/views/mailQueues/mailQueues.html",controller:"MailQueuesController as vm"}},resolve:{mailQueues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("mailQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"mail",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"MailQueues",fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"mail",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:601})}]},authenticate:!0,permissionId:601,bodyClass:"mail"}).state("app.mail.mailQueues.edit",{url:"/:id?tab",params:{mailQueue:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/mail/views/mailQueues/edit/view.html",controller:"MailQueueController as vm"}},resolve:{mailQueue:["apiResolver","$stateParams",function(e,n){return e.resolve("mailQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:601})}]},authenticate:!0,permissionId:601,bodyClass:"mail"}).state("app.mail.mailAccounts",{url:"/mailAccounts",views:{"content@app":{templateUrl:"app/main/apps/mail/views/mailAccounts/mailAccounts.html",controller:"MailAccountsController as vm"}},resolve:{mailAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("mailAccount@get",{fields:"createdAt,updatedAt,id,name,key,email,ListId,active,cservice,Imap.service,Imap.host,Imap.port,Imap.tls,Imap.authentication,Imap.user,Imap.password,Imap.mailbox,Imap.connTimeout,Imap.authTimeout,Smtp.service,Smtp.host,Smtp.port,Smtp.secure,Smtp.authentication,Smtp.user,Smtp.pass,cauthentication,cuser,cpassword,fontFamily,fontSize,template,markAsUnread,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"MailAccounts",fields:"createdAt,updatedAt,id,name,key,email,ListId,active,cservice,Imap.service,Imap.host,Imap.port,Imap.tls,Imap.authentication,Imap.user,Imap.password,Imap.mailbox,Imap.connTimeout,Imap.authTimeout,Smtp.service,Smtp.host,Smtp.port,Smtp.secure,Smtp.authentication,Smtp.user,Smtp.pass,cauthentication,cuser,cpassword,fontFamily,fontSize,template,markAsUnread,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:602})}]},authenticate:!0,permissionId:602,bodyClass:"mail"}).state("app.mail.mailAccounts.edit",{url:"/:id?tab",params:{mailAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/mail/views/mailAccounts/edit/view.html",controller:"MailAccountController as vm"}},resolve:{mailAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("mailAccount@get",{fields:"createdAt,updatedAt,id,name,key,email,ListId,active,cservice,Imap.service,Imap.host,Imap.port,Imap.tls,Imap.authentication,Imap.user,Imap.password,Imap.mailbox,Imap.connTimeout,Imap.authTimeout,Smtp.service,Smtp.host,Smtp.port,Smtp.secure,Smtp.authentication,Smtp.user,Smtp.pass,cauthentication,cuser,cpassword,fontFamily,fontSize,template,markAsUnread,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",id:n.id})}],userProfile:["apiResolver","Auth",function(e,n){return n.isAdmin()?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadAttachments,downloadOmnichannelInteractions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:602})}]},authenticate:!0,permissionId:602,bodyClass:"mail"}).state("app.mail.mailSubtatuses",{url:"/mailSubtatuses",views:{"content@app":{templateUrl:"app/main/apps/mail/views/mailSubtatuses/mailSubtatuses.html",controller:"MailSubstatusesController as vm"}},resolve:{mailSubtatuses:["apiResolver","Auth",function(e,n){return e.resolve("mailSubstatus@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:603})}]},authenticate:!0,permissionId:603,bodyClass:"mail"}),n.addPart("app/main/apps/mail")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.mail",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.mail.realtime"]).config(e)}(),function(){"use strict";function e(e){e.state("app.mail.realtime",{url:"/realtime",views:{"content@app":{templateUrl:"app/main/apps/mail/views/realtime/realtime.html",controller:"MailRealtimeController as vm"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:610})}]},authenticate:!0,permissionId:610}).state("app.mail.realtime.agents",{url:"/agents",controller:"AgentsMailRealtimeController as vm",templateUrl:"app/main/apps/mail/views/realtime/agents/view.html",resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{nolimit:!0})}],agents:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}],rpcAgents:["apiResolver",function(e){return e.resolve("rpc@getAgents")}]},authenticate:!0,permissionId:610}).state("app.mail.realtime.queues",{url:"/queues",controller:"QueuesMailRealtimeController as vm",templateUrl:"app/main/apps/mail/views/realtime/queues/view.html",resolve:{queues:["apiResolver","Auth",function(e,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"MailQueues":void 0,channel:"mail",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:601})}]},authenticate:!0,permissionId:610}).state("app.mail.realtime.accounts",{url:"/accounts",controller:"MailAccountsRealtimeController as vm",templateUrl:"app/main/apps/mail/views/realtime/accounts/view.html",resolve:{mailAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("mailAccount@get",{sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"MailAccounts",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:602})}],rpcMailAccounts:["apiResolver",function(e){return e.resolve("rpc@getMailAccounts")}]},authenticate:!0,permissionId:610})}e.$inject=["$stateProvider"],angular.module("app.mail.realtime",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.marketplace",{abstract:!0,url:"/marketplace"}).state("app.marketplace.plugins",{url:"/plugins",views:{"content@app":{templateUrl:"app/main/apps/marketplace/views/plugins/plugins.html",controller:"MarketplacePluginsController as vm"}},resolve:{plugins:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("plugin@get",{fields:"createdAt,updatedAt,id,name,type,active,description,icon,sidebar,path,adminUrl,agentUrl,scriptName,scriptPath,version",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Plugins",fields:"createdAt,updatedAt,id,name,type,active,description,icon,sidebar,path,adminUrl,agentUrl,scriptName,scriptPath,version",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1801})}]},authenticate:!0,permissionId:1801,bodyClass:"marketplace"}).state("app.marketplace.plugins.edit",{url:"/:id?tab",params:{plugin:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/marketplace/views/plugins/edit/view.html",controller:"MarketplacePluginController as vm"}},resolve:{plugin:["apiResolver","$stateParams",function(e,n){return e.resolve("plugin@get",{fields:"createdAt,updatedAt,id,name,type,active,description,icon,sidebar,path,adminUrl,agentUrl,scriptName,scriptPath,version",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1801})}]},authenticate:!0,permissionId:1801,bodyClass:"marketplace"}),n.addPart("app/main/apps/marketplace")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.marketplace",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter"]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.motiondialer",{abstract:!0,url:"/motiondialer"}).state("app.motiondialer.queueCampaigns",{url:"/queueCampaigns",views:{"content@app":{templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/queueCampaigns.html",controller:"QueueCampaignsController as vm"}},resolve:{queueCampaigns:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{fields:"createdAt,updatedAt,id,name,dialActive,TrunkId,TrunkBackupId,type,IntervalId,dialCheckDuplicateType,dialCutDigit,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar,dialOrderByScheduledAt,dialRecallMeTimeout,dialRecallInQueue,dialGlobalInterval,dialTimezone,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength,dialMethod,dialPowerLevel,dialPredictiveOptimization,dialPredictiveOptimizationPercentage,dialPredictiveInterval,dialLimitQueue,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialRandomLastDigitCallerIdNumber,dialOriginateTimeout,dialPrefix,dialQueueOptions,dialQueueTimeout,strategy,timeout,retry,wrapuptime,weight,musiconhold,dialQueueProject,dialQueueProject2,dialAgiAfterHangupAgent,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,description,mandatoryDisposition,mandatoryDispositionPauseId,dialPredictiveIntervalMaxThreshold,dialPredictiveIntervalMinThreshold",type:"outbound",sort:"-updatedAt",channel:"voice",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"QueueCampaigns",fields:"createdAt,updatedAt,id,name,dialActive,TrunkId,TrunkBackupId,type,IntervalId,dialCheckDuplicateType,dialCutDigit,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar,dialOrderByScheduledAt,dialRecallMeTimeout,dialRecallInQueue,dialGlobalInterval,dialTimezone,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength,dialMethod,dialPowerLevel,dialPredictiveOptimization,dialPredictiveOptimizationPercentage,dialPredictiveInterval,dialLimitQueue,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialRandomLastDigitCallerIdNumber,dialOriginateTimeout,dialPrefix,dialQueueOptions,dialQueueTimeout,strategy,timeout,retry,wrapuptime,weight,musiconhold,dialQueueProject,dialQueueProject2,dialAgiAfterHangupAgent,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,description,mandatoryDisposition,mandatoryDispositionPauseId,dialPredictiveIntervalMaxThreshold,dialPredictiveIntervalMinThreshold",type:"outbound",sort:"-updatedAt",channel:"voice",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1501})}]},authenticate:!0,permissionId:1501,bodyClass:"motiondialer"}).state("app.motiondialer.queueCampaigns.edit",{url:"/:id?tab",params:{queueCampaign:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/view.html",controller:"QueueCampaignController as vm"}},resolve:{queueCampaign:["apiResolver","$stateParams",function(e,n){return e.resolve("voiceQueue@get",{fields:"createdAt,updatedAt,id,name,dialActive,TrunkId,TrunkBackupId,type,IntervalId,dialCheckDuplicateType,dialCutDigit,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar,dialOrderByScheduledAt,dialRecallMeTimeout,dialRecallInQueue,dialGlobalInterval,dialTimezone,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength,dialMethod,dialPowerLevel,dialPredictiveOptimization,dialPredictiveOptimizationPercentage,dialPredictiveInterval,dialLimitQueue,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialRandomLastDigitCallerIdNumber,dialOriginateTimeout,dialPrefix,dialQueueOptions,dialQueueTimeout,strategy,timeout,retry,wrapuptime,weight,musiconhold,dialQueueProject,dialQueueProject2,dialAgiAfterHangupAgent,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,description,mandatoryDisposition,mandatoryDispositionPauseId,dialPredictiveIntervalMaxThreshold,dialPredictiveIntervalMinThreshold",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1501})}]},authenticate:!0,permissionId:1501,bodyClass:"motiondialer"}).state("app.motiondialer.ivrCampaigns",{url:"/ivrCampaigns",views:{"content@app":{templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/ivrCampaigns.html",controller:"IvrCampaignsController as vm"}},resolve:{ivrCampaigns:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("campaign@get",{fields:"createdAt,updatedAt,id,name,active,TrunkId,TrunkBackupId,type,IntervalId,dialCheckDuplicateType,dialCutDigit,SquareProjectId,limitCalls,description,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialRandomLastDigitCallerIdNumber,dialOriginateTimeout,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,dialOrderByScheduledAt,dialGlobalInterval,dialTimezone,dialPrefix,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength",type:"ivr",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"IvrCampaigns",fields:"createdAt,updatedAt,id,name,active,TrunkId,TrunkBackupId,type,IntervalId,dialCheckDuplicateType,dialCutDigit,SquareProjectId,limitCalls,description,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialRandomLastDigitCallerIdNumber,dialOriginateTimeout,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,dialOrderByScheduledAt,dialGlobalInterval,dialTimezone,dialPrefix,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength",type:"ivr",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1502})}]},authenticate:!0,permissionId:1502,bodyClass:"motiondialer"}).state("app.motiondialer.ivrCampaigns.edit",{url:"/:id?tab",params:{ivrCampaign:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/view.html",controller:"IvrCampaignController as vm"}},resolve:{ivrCampaign:["apiResolver","$stateParams",function(e,n){return e.resolve("campaign@get",{fields:"createdAt,updatedAt,id,name,active,TrunkId,TrunkBackupId,type,IntervalId,dialCheckDuplicateType,dialCutDigit,SquareProjectId,limitCalls,description,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialRandomLastDigitCallerIdNumber,dialOriginateTimeout,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,dialOrderByScheduledAt,dialGlobalInterval,dialTimezone,dialPrefix,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1502})}]},authenticate:!0,permissionId:1502,bodyClass:"motiondialer"}),n.addPart("app/main/apps/motiondialer")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.motiondialer",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.motiondialer.realtime"]).config(e)}(),function(){"use strict";function e(e){e.state("app.motiondialer.realtime",{url:"/realtime",views:{"content@app":{templateUrl:"app/main/apps/motiondialer/views/realtime/realtime.html",controller:"MotionDialerRealtimeController as vm"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1510})}]},authenticate:!0,permissionId:1510}).state("app.motiondialer.realtime.agents",{url:"/agents",controller:"AgentsMotionDialerRealtimeController as vm",templateUrl:"app/main/apps/motiondialer/views/realtime/agents/view.html",resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{nolimit:!0})}],agents:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}],rpcAgents:["apiResolver",function(e){return e.resolve("rpc@getAgents")}]},authenticate:!0,permissionId:1510}).state("app.motiondialer.realtime.queues",{url:"/queues",controller:"QueuesMotionDialerRealtimeController as vm",templateUrl:"app/main/apps/motiondialer/views/realtime/queues/view.html",resolve:{queues:["apiResolver","Auth",function(e,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"QueueCampaigns":void 0,channel:"voice",type:"outbound",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1501})}]},authenticate:!0,permissionId:1510}).state("app.motiondialer.realtime.queue_calls",{url:"/queue_calls",controller:"QueueCallsMotionDialerRealtimeController as vm",templateUrl:"app/main/apps/motiondialer/views/realtime/queue_calls/view.html",resolve:{agents:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,role,context",role:"agent",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,role,context",role:"agent",nolimit:!0})}],queues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{type:"outbound",sort:"-updatedAt",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"QueueCampaigns",channel:"voice",type:"outbound",sort:"-updatedAt",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1501})}],rpcVoiceQueuesChannels:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueuesChannels")}]},authenticate:!0,permissionId:1510}).state("app.motiondialer.realtime.abandonedcalls",{url:"/abandonedcalls",controller:"AbandonedCallsMotionDialerRealtimeController as vm",templateUrl:"app/main/apps/motiondialer/views/realtime/abandonedcalls/view.html",resolve:{agents:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,role,context",role:"agent",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,role,context",role:"agent",nolimit:!0})}],queues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{type:"outbound",sort:"-updatedAt",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"QueueCampaigns",channel:"voice",type:"outbound",sort:"-updatedAt",nolimit:!0})}],dispositions:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("disposition@get",{fields:"createdAt,updatedAt,id,name,level,ParentId",sort:"name",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Dispositions",fields:"createdAt,updatedAt,id,name",sort:"name",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1501})}]},authenticate:!0,permissionId:1510}).state("app.motiondialer.realtime.queue_params",{url:"/queue_params",controller:"QueueParamsMotionDialerRealtimeController as vm",templateUrl:"app/main/apps/motiondialer/views/realtime/queue_params/view.html",resolve:{queues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{type:"outbound",fields:"id,name",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"QueueCampaigns",channel:"voice",type:"outbound",sort:"-updatedAt",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1501})}],rpcQueues:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueues")}]},authenticate:!0,permissionId:1510}).state("app.motiondialer.realtime.ivr_campaigns",{url:"/ivr_campaigns",controller:"IvrCampaignsMotionDialerRealtimeController as vm",templateUrl:"app/main/apps/motiondialer/views/realtime/ivr_campaigns/view.html",resolve:{campaigns:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("campaign@get",{sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"IvrCampaigns",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1502})}],rpcCampaigns:["apiResolver",function(e){return e.resolve("rpc@getCampaigns")}]},authenticate:!0,permissionId:1510})}e.$inject=["$stateProvider"],angular.module("app.motiondialer.realtime",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.openchannel",{abstract:!0,url:"/openchannel"}).state("app.openchannel.openchannelQueues",{url:"/openchannelQueues",views:{"content@app":{templateUrl:"app/main/apps/openchannel/views/openchannelQueues/openchannelQueues.html",controller:"OpenchannelQueuesController as vm"}},resolve:{openchannelQueues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("openchannelQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"openchannel",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"OpenchannelQueues",fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"openchannel",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:801})}]},authenticate:!0,permissionId:801,bodyClass:"openchannel"}).state("app.openchannel.openchannelQueues.edit",{url:"/:id?tab",params:{openchannelQueue:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/view.html",controller:"OpenchannelQueueController as vm"}},resolve:{openchannelQueue:["apiResolver","$stateParams",function(e,n){return e.resolve("openchannelQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:801})}]},authenticate:!0,permissionId:801,bodyClass:"openchannel"}).state("app.openchannel.openchannelAccounts",{url:"/openchannelAccounts",views:{"content@app":{templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/openchannelAccounts.html",controller:"OpenchannelAccountsController as vm"}},resolve:{openchannelAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("openchannelAccount@get",{fields:"createdAt,updatedAt,id,name,key,token,replyUri,ListId,waitForTheAssignedAgent,mapKey,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUri,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"OpenchannelAccounts",fields:"createdAt,updatedAt,id,name,key,token,replyUri,ListId,waitForTheAssignedAgent,mapKey,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUri,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:802})}]},authenticate:!0,permissionId:802,bodyClass:"openchannel"}).state("app.openchannel.openchannelAccounts.edit",{url:"/:id?tab",params:{openchannelAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/view.html",controller:"OpenchannelAccountController as vm"}},resolve:{openchannelAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("openchannelAccount@get",{fields:"createdAt,updatedAt,id,name,key,token,replyUri,ListId,waitForTheAssignedAgent,mapKey,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUri,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",id:n.id})}],userProfile:["apiResolver","Auth",function(e,n){return n.isAdmin()?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadAttachments,downloadOmnichannelInteractions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:802})}]},authenticate:!0,permissionId:802,bodyClass:"openchannel"}),n.addPart("app/main/apps/openchannel")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.openchannel",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.openchannel.realtime"]).config(e)}(),function(){"use strict";function e(e){e.state("app.openchannel.realtime",{url:"/realtime",views:{"content@app":{templateUrl:"app/main/apps/openchannel/views/realtime/realtime.html",controller:"OpenchannelRealtimeController as vm"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:810})}]},authenticate:!0,permissionId:810}).state("app.openchannel.realtime.agents",{url:"/agents",controller:"AgentsOpenchannelRealtimeController as vm",templateUrl:"app/main/apps/openchannel/views/realtime/agents/view.html",resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{nolimit:!0})}],agents:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}],rpcAgents:["apiResolver",function(e){return e.resolve("rpc@getAgents")}]},authenticate:!0,permissionId:810}).state("app.openchannel.realtime.queues",{url:"/queues",controller:"QueuesOpenchannelRealtimeController as vm",templateUrl:"app/main/apps/openchannel/views/realtime/queues/view.html",resolve:{queues:["apiResolver","Auth",function(e,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"OpenchannelQueues":void 0,channel:"openchannel",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:801})}]},authenticate:!0,permissionId:810})}e.$inject=["$stateProvider"],angular.module("app.openchannel.realtime",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.plugins",{abstract:!0,url:"/plugins"}),n.addPart("app/main/apps/plugins")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.plugins",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.plugins.plugin"]).config(e)}(),function(){"use strict";function e(e){e.state("app.plugins.plugin",{url:"/plugin/:id",views:{"content@app":{templateUrl:"app/main/apps/plugins/views/plugin/plugin.html",controller:"PluginController as vm"}},resolve:{},authenticate:!0,bodyClass:"plugins"})}e.$inject=["$stateProvider"],angular.module("app.plugins.plugin",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.settings",{abstract:!0,url:"/settings"}).state("app.settings.generals",{url:"/generals",views:{"content@app":{templateUrl:"app/main/apps/settings/views/generals/generals.html",controller:"GeneralsController as vm"}},resolve:{generals:["apiResolver",function(e){return e.resolve("setting@get",{fields:"createdAt,updatedAt,id,min_internal,securePassword,callRecordingEncryption,chatTimeout,phoneBarAutoUpdater,defaultScreenRecordingPath,phoneBarAutoUpdaterUrl,enableEmailPreview,split,splitSizeCsv,splitSizePdf,splitSizeXlsx,searchOnEnterKey,messagesAlignment,phoneBarRememberMeEnabled,rtlSupport,allowedLoginAttempts,blockDuration,loginMailFrequency,language,bucket,transcribe,transcribeRegion,transcribeAccountId,sentiment,sentimentRegion,sentimentAccountId,googleSsoEnabled,enforcePasswordHistory,passwordHistoryLimit,enablePrivacyPolicyEmail,privacyPolicyEmail,enablePrivacyPolicyName,privacyPolicyName,enablePrivacyPolicyNumber,privacyPolicyNumber,chatInteractionsReloadTimeout,mailInteractionsReloadTimeout,openchannelInteractionsReloadTimeout,smsInteractionsReloadTimeout,whatsappInteractionsReloadTimeout,stopRecordingOnTransfer",limit:10,offset:0})}]},authenticate:!0,permissionId:1400,bodyClass:"settings"}).state("app.settings.smtps",{url:"/smtps",views:{"content@app":{templateUrl:"app/main/apps/settings/views/smtps/smtps.html",controller:"SmtpController as vm"}},resolve:{smtps:["apiResolver",function(e){return e.resolve("mailAccount@get",{fields:"createdAt,updatedAt,id,service,name,email,Smtp.service,Smtp.host,Smtp.port,Smtp.secure,Smtp.authentication,Smtp.user,Smtp.pass,description",service:"1",limit:10,offset:0})}]},authenticate:!0,permissionId:1400,bodyClass:"settings"}).state("app.settings.networks",{url:"/networks",views:{"content@app":{templateUrl:"app/main/apps/settings/views/networks/networks.html",controller:"NetworksController as vm"}},resolve:{networks:["apiResolver",function(e){return e.resolve("network@get",{fields:"createdAt,updatedAt,id,type,value,username,password",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1400,bodyClass:"settings"}).state("app.settings.customizations",{url:"/customizations",views:{"content@app":{templateUrl:"app/main/apps/settings/views/customizations/customizations.html",controller:"CustomizationsController as vm"}},resolve:{customizations:["apiResolver",function(e){return e.resolve("setting@get",{fields:"createdAt,updatedAt,id,defaultLogo,defaultLoginLogo,defaultFavicon,defaultHeaderWhiteLabel,headerWhiteLabel,defaultPageTitle,pageTitle,defaultPreferred",limit:10,offset:0})}]},authenticate:!0,permissionId:1400,bodyClass:"settings"}).state("app.settings.cloudProviders",{url:"/cloudProviders",views:{"content@app":{templateUrl:"app/main/apps/settings/views/cloudProviders/cloudProviders.html",controller:"CloudProvidersController as vm"}},resolve:{cloudProviders:["apiResolver",function(e){return e.resolve("cloudProvider@get",{fields:"createdAt,updatedAt,id,name,service,data2,data1",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1400,bodyClass:"settings"}),n.addPart("app/main/apps/settings")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.settings",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.settings.updates","app.settings.license","app.settings.system"]).config(e)}(),function(){"use strict";function e(e){e.state("app.settings.license",{url:"/license",views:{"content@app":{templateUrl:"app/main/apps/settings/views/license/license.html",controller:"LicenseController as vm"}},authenticate:!0,permissionId:1400,bodyClass:"settings"})}e.$inject=["$stateProvider"],angular.module("app.settings.license",[]).config(e)}(),function(){"use strict";function e(e){e.state("app.settings.system",{url:"/system?tab",views:{"content@app":{templateUrl:"app/main/apps/settings/views/system/system.html",controller:"SystemController as vm"}},resolve:{system:["apiResolver",function(e){return e.resolve("system@get")}],processes:["apiResolver",function(e){return e.resolve("pm2@get")}]},authenticate:!0,permissionId:1400,bodyClass:"settings"})}e.$inject=["$stateProvider"],angular.module("app.settings.system",[]).config(e)}(),function(){"use strict";function e(e){e.state("app.settings.updates",{url:"/updates",views:{"content@app":{templateUrl:"app/main/apps/settings/views/updates/updates.html",controller:"UpdatesController as vm"}},resolve:{version:["apiResolver",function(e){return e.resolve("version@get",{latest:!0})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1400})}]},authenticate:!0,permissionId:1400,bodyClass:"settings"})}e.$inject=["$stateProvider"],angular.module("app.settings.updates",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.sms",{abstract:!0,url:"/sms"}).state("app.sms.smsQueues",{url:"/smsQueues",views:{"content@app":{templateUrl:"app/main/apps/sms/views/smsQueues/smsQueues.html",controller:"SmsQueuesController as vm"}},resolve:{smsQueues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("smsQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"sms",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SmsQueues",fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"sms",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:701})}]},authenticate:!0,permissionId:701,bodyClass:"sms"}).state("app.sms.smsQueues.edit",{url:"/:id?tab",params:{smsQueue:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/sms/views/smsQueues/edit/view.html",controller:"SmsQueueController as vm"}},resolve:{smsQueue:["apiResolver","$stateParams",function(e,n){return e.resolve("smsQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:701})}]},authenticate:!0,permissionId:701,bodyClass:"sms"}).state("app.sms.smsAccounts",{url:"/smsAccounts",views:{"content@app":{templateUrl:"app/main/apps/sms/views/smsAccounts/smsAccounts.html",controller:"SmsAccountsController as vm"}},resolve:{smsAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("smsAccount@get",{fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,type,phone,accountSid,authId,authToken,smsMethod,username,password,baseUrl,apiKey,accountId,applicationId,senderString,deliveryReport,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SmsAccounts",fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,type,phone,accountSid,authId,authToken,smsMethod,username,password,baseUrl,apiKey,accountId,applicationId,senderString,deliveryReport,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:702})}]},authenticate:!0,permissionId:702,bodyClass:"sms"}).state("app.sms.smsAccounts.edit",{url:"/:id?tab",params:{smsAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/sms/views/smsAccounts/edit/view.html",controller:"SmsAccountController as vm"}},resolve:{smsAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("smsAccount@get",{fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,type,phone,accountSid,authId,authToken,smsMethod,username,password,baseUrl,apiKey,accountId,applicationId,senderString,deliveryReport,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",id:n.id})}],userProfile:["apiResolver","Auth",function(e,n){return n.isAdmin()?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadOmnichannelInteractions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:702})}]},authenticate:!0,permissionId:702,bodyClass:"sms"}),n.addPart("app/main/apps/sms")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.sms",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.sms.realtime"]).config(e)}(),function(){"use strict";function e(e){e.state("app.sms.realtime",{url:"/realtime",views:{"content@app":{templateUrl:"app/main/apps/sms/views/realtime/realtime.html",controller:"SmsRealtimeController as vm"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:710})}]},authenticate:!0,permissionId:710}).state("app.sms.realtime.agents",{url:"/agents",controller:"AgentsSmsRealtimeController as vm",templateUrl:"app/main/apps/sms/views/realtime/agents/view.html",resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{nolimit:!0})}],agents:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}],rpcAgents:["apiResolver",function(e){return e.resolve("rpc@getAgents")}]},authenticate:!0,permissionId:710}).state("app.sms.realtime.queues",{url:"/queues",controller:"QueuesSmsRealtimeController as vm",templateUrl:"app/main/apps/sms/views/realtime/queues/view.html",resolve:{queues:["apiResolver","Auth",function(e,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"SmsQueues":void 0,channel:"sms",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:701})}]},authenticate:!0,permissionId:710})}e.$inject=["$stateProvider"],angular.module("app.sms.realtime",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.staff",{abstract:!0,url:"/staff"}).state("app.staff.users",{url:"/users",views:{"content@app":{templateUrl:"app/main/apps/staff/views/users/users.html",controller:"UsersController as vm"}},resolve:{users:["apiResolver","Auth",function(e,n){return e.resolve("user@get",{fields:"createdAt,updatedAt,role,userProfileId,id,fullname,name,email,phone,mobile,userpic,password,description,autointernal,internal,transport,nat,allow,context,callgroup,pickupgroup,passwordResetAt,apiKey,videosupport,disabled,blocked",role:"admin,user",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:201})}]},authenticate:!0,permissionId:201,bodyClass:"staff"}).state("app.staff.users.edit",{url:"/:id?tab",params:{user:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/staff/views/users/edit/view.html",controller:"UserController as vm"}},resolve:{user:["apiResolver","$stateParams",function(e,n){return e.resolve("user@get",{fields:"createdAt,updatedAt,role,userProfileId,id,fullname,name,email,phone,mobile,userpic,password,description,autointernal,internal,transport,nat,allow,context,callgroup,pickupgroup,passwordResetAt,apiKey,videosupport,disabled,blocked",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:201})}]},authenticate:!0,permissionId:201,bodyClass:"staff"}).state("app.staff.agents",{url:"/agents",views:{"content@app":{templateUrl:"app/main/apps/staff/views/agents/agents.html",controller:"AgentsController as vm"}},resolve:{agents:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"createdAt,updatedAt,id,role,fullname,name,alias,showWebBar,email,phone,mobile,userpic,password,hotdesk,autointernal,internal,loginInPause,description,dtlscertfile,dtlsprivatekey,wssPort,voicemail,transport,host,nat,type,allow,callerid,context,callgroup,pickupgroup,chanspy,videosupport,extensionMonitor,chatCapacity,mailCapacity,smsCapacity,openchannelCapacity,faxCapacity,whatsappCapacity,phoneBarEnableSettings,phoneBarAutoAnswer,phoneBarAutoAnswerDelay,phoneBarRingInUse,phoneBarEnableRecording,phoneBarEnableDtmfTone,phoneBarDnd,phoneBarUnansweredCallBadge,phoneBarEnableJaws,phoneBarOutboundProxy,phoneBarUnconditional,phoneBarUnconditionalNumber,phoneBarRemoteControl,phoneBarRemoteControlPort,phoneBarExpires,phoneBarListenPort,permissions,allowmessenger,phoneBarPrefixRequired,passwordResetAt,disabled,blocked,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording,privacyEnabled,downloadAttachments,downloadOmnichannelInteractions,downloadVoiceRecordings",role:"agent",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"createdAt,updatedAt,id,role,fullname,name,alias,showWebBar,email,phone,mobile,userpic,password,hotdesk,autointernal,internal,loginInPause,description,dtlscertfile,dtlsprivatekey,wssPort,voicemail,transport,host,nat,type,allow,callerid,context,callgroup,pickupgroup,chanspy,videosupport,extensionMonitor,chatCapacity,mailCapacity,smsCapacity,openchannelCapacity,faxCapacity,whatsappCapacity,phoneBarEnableSettings,phoneBarAutoAnswer,phoneBarAutoAnswerDelay,phoneBarRingInUse,phoneBarEnableRecording,phoneBarEnableDtmfTone,phoneBarDnd,phoneBarUnansweredCallBadge,phoneBarEnableJaws,phoneBarOutboundProxy,phoneBarUnconditional,phoneBarUnconditionalNumber,phoneBarRemoteControl,phoneBarRemoteControlPort,phoneBarExpires,phoneBarListenPort,permissions,allowmessenger,phoneBarPrefixRequired,passwordResetAt,disabled,blocked,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording,privacyEnabled,downloadAttachments,downloadOmnichannelInteractions,downloadVoiceRecordings",role:"agent",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}]},authenticate:!0,permissionId:202,bodyClass:"staff"}).state("app.staff.agents.edit",{url:"/:id?tab",params:{agent:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/staff/views/agents/edit/view.html",controller:"AgentController as vm"}},resolve:{agent:["apiResolver","$stateParams",function(e,n){return e.resolve("user@get",{fields:"createdAt,updatedAt,id,role,fullname,name,alias,showWebBar,email,phone,mobile,userpic,password,hotdesk,autointernal,internal,loginInPause,description,dtlscertfile,dtlsprivatekey,wssPort,voicemail,transport,host,nat,type,allow,callerid,context,callgroup,pickupgroup,chanspy,videosupport,extensionMonitor,chatCapacity,mailCapacity,smsCapacity,openchannelCapacity,faxCapacity,whatsappCapacity,phoneBarEnableSettings,phoneBarAutoAnswer,phoneBarAutoAnswerDelay,phoneBarRingInUse,phoneBarEnableRecording,phoneBarEnableDtmfTone,phoneBarDnd,phoneBarUnansweredCallBadge,phoneBarEnableJaws,phoneBarOutboundProxy,phoneBarUnconditional,phoneBarUnconditionalNumber,phoneBarRemoteControl,phoneBarRemoteControlPort,phoneBarExpires,phoneBarListenPort,permissions,allowmessenger,phoneBarPrefixRequired,passwordResetAt,disabled,blocked,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording,privacyEnabled,downloadAttachments,downloadOmnichannelInteractions,downloadVoiceRecordings",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}]},authenticate:!0,permissionId:202,bodyClass:"staff"}).state("app.staff.telephones",{url:"/telephones",views:{"content@app":{templateUrl:"app/main/apps/staff/views/telephones/telephones.html",controller:"TelephonesController as vm"}},resolve:{telephones:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"createdAt,updatedAt,id,role,fullname,name,email,password,description,autointernal,internal,voicemail,transport,nat,allow,callerid,context,callgroup,pickupgroup,videosupport,encryption,phone,mobile",role:"telephone",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Telephones",fields:"createdAt,updatedAt,id,role,fullname,name,email,password,description,autointernal,internal,voicemail,transport,nat,allow,callerid,context,callgroup,pickupgroup,videosupport,encryption,phone,mobile",role:"telephone",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:203})}]},authenticate:!0,permissionId:203,bodyClass:"staff"}).state("app.staff.telephones.edit",{url:"/:id?tab",params:{telephone:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/staff/views/telephones/edit/view.html",controller:"TelephoneController as vm"}},resolve:{telephone:["apiResolver","$stateParams",function(e,n){return e.resolve("user@get",{fields:"createdAt,updatedAt,id,role,fullname,name,email,password,description,autointernal,internal,voicemail,transport,nat,allow,callerid,context,callgroup,pickupgroup,videosupport,encryption,phone,mobile",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:203})}]},authenticate:!0,permissionId:203,bodyClass:"staff"}).state("app.staff.teams",{url:"/teams",views:{"content@app":{templateUrl:"app/main/apps/staff/views/teams/teams.html",controller:"TeamsController as vm"}},resolve:{teams:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("team@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Teams",fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:204})}]},authenticate:!0,permissionId:204,bodyClass:"staff"}).state("app.staff.userProfiles",{url:"/userProfiles",views:{"content@app":{templateUrl:"app/main/apps/staff/views/userProfiles/userProfiles.html",controller:"UserProfilesController as vm"}},resolve:{userProfiles:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"createdAt,updatedAt,id,name,description,crudPermissions,privacyEnabled,downloadAttachments,downloadCallySquareRecordings,downloadContactManagerLists,downloadJscriptySessions,downloadOmnichannelInteractions,downloadScreenRecordings,downloadVoiceRecordings",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:205})}]},authenticate:!0,permissionId:205,bodyClass:"staff"}).state("app.staff.userProfiles.edit",{url:"/:id?tab",params:{userProfile:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/staff/views/userProfiles/edit/view.html",controller:"UserProfileController as vm"}},resolve:{userProfile:["apiResolver","$stateParams",function(e,n){return e.resolve("userProfile@get",{fields:"createdAt,updatedAt,id,name,description,crudPermissions,privacyEnabled,downloadAttachments,downloadCallySquareRecordings,downloadContactManagerLists,downloadJscriptySessions,downloadOmnichannelInteractions,downloadScreenRecordings,downloadVoiceRecordings",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:205})}]},authenticate:!0,permissionId:205,bodyClass:"staff"}),n.addPart("app/main/apps/staff")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.staff",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter"]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.tools",{abstract:!0,url:"/tools"}).state("app.tools.cannedAnswers",{url:"/cannedAnswers",views:{"content@app":{templateUrl:"app/main/apps/tools/views/cannedAnswers/cannedAnswers.html",controller:"CannedAnswersController as vm"}},resolve:{cannedAnswers:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cannedAnswer@get",{fields:"createdAt,updatedAt,id,key,value,description",sort:"-updatedAt",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"CannedAnswers",fields:"createdAt,updatedAt,id,key,value,description",sort:"-updatedAt",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1001})}]},authenticate:!0,permissionId:1001,bodyClass:"tools"}).state("app.tools.customDashboards",{url:"/customDashboards",views:{"content@app":{templateUrl:"app/main/apps/tools/views/customDashboards/customDashboards.html",controller:"CustomDashboardsController as vm"}},resolve:{customDashboards:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("dashboard@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"CustomDashboards",fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1003})}]},authenticate:!0,permissionId:1003,bodyClass:"tools"}).state("app.tools.customDashboards.edit",{url:"/:id?tab",params:{customDashboard:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/tools/views/customDashboards/edit/view.html",controller:"CustomDashboardController as vm"}},resolve:{customDashboard:["apiResolver","$stateParams",function(e,n){return e.resolve("dashboard@get",{fields:"createdAt,updatedAt,id,name,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1003})}]},authenticate:!0,permissionId:1003,bodyClass:"tools"}).state("app.tools.intervals",{url:"/intervals",views:{"content@app":{templateUrl:"app/main/apps/tools/views/intervals/intervals.html",controller:"IntervalsController as vm"}},resolve:{intervals:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("interval@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",IntervalId:"null",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Intervals",fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",IntervalId:"null",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1004})}]},authenticate:!0,permissionId:1004,bodyClass:"tools"}).state("app.tools.intervals.edit",{url:"/:id?tab",params:{interval:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/tools/views/intervals/edit/view.html",controller:"IntervalController as vm"}},resolve:{interval:["apiResolver","$stateParams",function(e,n){return e.resolve("interval@get",{fields:"createdAt,updatedAt,id,name,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1004})}]},authenticate:!0,permissionId:1004,bodyClass:"tools"}).state("app.tools.pauses",{url:"/pauses",views:{"content@app":{templateUrl:"app/main/apps/tools/views/pauses/pauses.html",controller:"PausesController as vm"}},resolve:{pauses:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("pause@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Pauses",fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1005})}]},authenticate:!0,permissionId:1005,bodyClass:"tools"}).state("app.tools.schedules",{url:"/schedules",views:{"content@app":{templateUrl:"app/main/apps/tools/views/schedules/schedules.html",controller:"SchedulesController as vm"}},resolve:{schedules:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("schedule@get",{fields:"createdAt,updatedAt,id,name,CustomReportId,DefaultReportId,output,active,startAt,endAt,cron,subtractNumber,subtractUnit,sendMail,MailAccountId,email,cc,bcc,sendIfEmpty,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Scheduler",fields:"createdAt,updatedAt,id,name,CustomReportId,DefaultReportId,output,active,startAt,endAt,cron,subtractNumber,subtractUnit,sendMail,MailAccountId,email,cc,bcc,sendIfEmpty,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1006})}]},authenticate:!0,permissionId:1006,bodyClass:"tools"}).state("app.tools.sounds",{url:"/sounds",views:{"content@app":{templateUrl:"app/main/apps/tools/views/sounds/sounds.html",controller:"SoundsController as vm"}},resolve:{sounds:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("sound@get",{fields:"createdAt,updatedAt,id,save_name,converted_format,name,audio,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Sounds",fields:"createdAt,updatedAt,id,save_name,converted_format,name,audio,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1007})}]},authenticate:!0,permissionId:1007,bodyClass:"tools"}).state("app.tools.tags",{url:"/tags",views:{"content@app":{templateUrl:"app/main/apps/tools/views/tags/tags.html",controller:"TagsController as vm"}},resolve:{tags:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("tag@get",{fields:"createdAt,updatedAt,id,name,description,color",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Tags",fields:"createdAt,updatedAt,id,name,description,color",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1008})}]},authenticate:!0,permissionId:1008,bodyClass:"tools"}).state("app.tools.templates",{url:"/templates",views:{"content@app":{templateUrl:"app/main/apps/tools/views/templates/templates.html",controller:"TemplatesController as vm"}},resolve:{templates:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("template@get",{fields:"createdAt,updatedAt,id,name,html,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Templates",fields:"createdAt,updatedAt,id,name,html,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1009})}]},authenticate:!0,permissionId:1009,bodyClass:"tools"}).state("app.tools.trunks",{url:"/trunks",views:{"content@app":{templateUrl:"app/main/apps/tools/views/trunks/trunks.html",controller:"TrunksController as vm"}},resolve:{trunks:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("trunk@get",{fields:"createdAt,updatedAt,id,name,active,host,secret,defaultuser,context,callerid,type,dtmfmode,nat,qualify,allow,insecure,call_limit,registry,description,directmedia,callcounter,fromdomain,fromuser,outboundproxy,usereqphone,trustrpid,sendrpid,encryption,port,transport,t38pt_udptl,videosupport,otherFields",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Trunks",fields:"createdAt,updatedAt,id,name,active,host,secret,defaultuser,context,callerid,type,dtmfmode,nat,qualify,allow,insecure,call_limit,registry,description,directmedia,callcounter,fromdomain,fromuser,outboundproxy,usereqphone,trustrpid,sendrpid,encryption,port,transport,t38pt_udptl,videosupport,otherFields",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1011})}]},authenticate:!0,permissionId:1011,bodyClass:"tools"}).state("app.tools.trunks.edit",{url:"/:id?tab",params:{trunk:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/tools/views/trunks/edit/view.html",controller:"TrunkController as vm"}},resolve:{trunk:["apiResolver","$stateParams",function(e,n){return e.resolve("trunk@get",{fields:"createdAt,updatedAt,id,name,active,host,secret,defaultuser,context,callerid,type,dtmfmode,nat,qualify,allow,insecure,call_limit,registry,description,directmedia,callcounter,fromdomain,fromuser,outboundproxy,usereqphone,trustrpid,sendrpid,encryption,port,transport,t38pt_udptl,videosupport,otherFields",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1011})}]},authenticate:!0,permissionId:1011,bodyClass:"tools"}).state("app.tools.variables",{url:"/variables",views:{"content@app":{templateUrl:"app/main/apps/tools/views/variables/variables.html",controller:"VariablesController as vm"}},resolve:{variables:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("variable@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Variables",fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1012})}]},authenticate:!0,permissionId:1012,bodyClass:"tools"}),n.addPart("app/main/apps/tools")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.tools",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.tools.dispositions","app.tools.triggers"]).config(e)}(),function(){"use strict";function e(e){e.state("app.tools.dispositions",{url:"/dispositions",views:{"content@app":{templateUrl:"app/main/apps/tools/views/dispositions/dispositions.html",controller:"DispositionsController as vm"}},resolve:{dispositions:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("disposition@get",{fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",WhatsappAccountId:"null",ListId:"null",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Dispositions",fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",WhatsappAccountId:"null",ListId:"null",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1002})}]},authenticate:!0,permissionId:1002,bodyClass:"tools"})}e.$inject=["$stateProvider"],angular.module("app.tools.dispositions",[]).config(e)}(),function(){"use strict";function e(e){e.state("app.tools.triggers",{url:"/triggers",views:{"content@app":{templateUrl:"app/main/apps/tools/views/triggers/triggers.html",controller:"TriggersController as vm"}},resolve:{triggers:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("trigger@get",{fields:"createdAt,updatedAt,id,name,channel,status,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Triggers",fields:"createdAt,updatedAt,id,name,channel,status,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1010})}]},authenticate:!0,permissionId:1010,bodyClass:"tools"}).state("app.tools.triggers.edit",{url:"/:id?tab",params:{trigger:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/tools/views/triggers/edit/view.html",controller:"TriggerController as vm"}},resolve:{trigger:["apiResolver","$stateParams",function(e,n){return e.resolve("trigger@get",{fields:"createdAt,updatedAt,id,name,channel,status,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1010})}]},authenticate:!0,permissionId:1010,bodyClass:"tools"})}e.$inject=["$stateProvider"],angular.module("app.tools.triggers",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.video",{abstract:!0,url:"/video"}).state("app.video.screenRecordings",{url:"/screenRecordings",views:{"content@app":{templateUrl:"app/main/apps/video/views/screenRecordings/screenRecordings.html",controller:"ScreenRecordingsController as vm"}},resolve:{screenRecordings:["apiResolver","Auth","msUtils",function(e,n,t){return n.hasRole("admin")?e.resolve("screenRecording@get",{fields:"createdAt,updatedAt,id,interactionid,channel,format,value,rating,UserId,duration,startedAt,closedAt",createdAt:t.firstLastDayMonth(),includeAll:"true",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ScreenRecordings",fields:"createdAt,updatedAt,id,interactionid,channel,format,value,rating,UserId,duration,startedAt,closedAt",createdAt:t.firstLastDayMonth(),includeAll:"true",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadScreenRecordings",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:2001})}]},authenticate:!0,permissionId:2001,bodyClass:"video"}),n.addPart("app/main/apps/video")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.video",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter"]).config(e)}(),function(){"use strict";function e(e){e.state("app.voice.inboundRoutes",{url:"/inboundRoutes",views:{"content@app":{templateUrl:"app/main/apps/voice/views/inboundRoutes/inboundRoutes.html",controller:"InboundRoutesController as vm"}},resolve:{inboundRoutes:["apiResolver","Auth",function(e,n){return n.isAdmin()?e.resolve("voiceExtension@get",{fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",type:"inbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"InboundRoutes",fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",type:"inbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:402})}]},authenticate:!0,permissionId:402,bodyClass:"voice"}).state("app.voice.inboundRoutes.edit",{url:"/:id?tab",params:{inboundRoute:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/voice/views/inboundRoutes/edit/view.html",controller:"InboundRouteController as vm"}},resolve:{inboundRoute:["apiResolver","$stateParams",function(e,n){return e.resolve("voiceExtension@get",{fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",id:n.id})}],contexts:["apiResolver",function(e){return e.resolve("voiceContext@get",{fields:"id,name",sort:"name"})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:402})}]},authenticate:!0,permissionId:402,bodyClass:"voice"})}e.$inject=["$stateProvider"],angular.module("app.voice.inboundRoutes",[]).config(e)}(),function(){"use strict";function e(e){e.state("app.voice.internalRoutes",{url:"/internalRoutes",views:{"content@app":{templateUrl:"app/main/apps/voice/views/internalRoutes/internalRoutes.html",controller:"InternalRoutesController as vm"}},resolve:{internalRoutes:["apiResolver","Auth",function(e,n){return n.isAdmin()?e.resolve("voiceExtension@get",{fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",type:"internal",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"InternalRoutes",fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",type:"internal",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:404})}]},authenticate:!0,permissionId:404,bodyClass:"voice"}).state("app.voice.internalRoutes.edit",{url:"/:id?tab",params:{internalRoute:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/voice/views/internalRoutes/edit/view.html",controller:"InternalRouteController as vm"}},resolve:{internalRoute:["apiResolver","$stateParams",function(e,n){return e.resolve("voiceExtension@get",{fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",id:n.id})}],contexts:["apiResolver",function(e){return e.resolve("voiceContext@get",{fields:"id,name",sort:"name"})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:404})}]},authenticate:!0,permissionId:404,bodyClass:"voice"})}e.$inject=["$stateProvider"],angular.module("app.voice.internalRoutes",[]).config(e)}(),function(){"use strict";function e(e){e.state("app.voice.outboundRoutes",{url:"/outboundRoutes",views:{"content@app":{templateUrl:"app/main/apps/voice/views/outboundRoutes/outboundRoutes.html",controller:"OutboundRoutesController as vm"}},resolve:{outboundRoutes:["apiResolver","Auth",function(e,n){return n.isAdmin()?e.resolve("voiceExtension@get",{fields:"id,appdata,type,exten,context,recordingFormat,cutdigits,description,alias,createdAt,updatedAt",type:"outbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"OutboundRoutes",fields:"id,appdata,type,exten,context,recordingFormat,cutdigits,description,alias,createdAt,updatedAt",type:"outbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:403})}]},authenticate:!0,permissionId:403,bodyClass:"voice"}).state("app.voice.outboundRoutes.edit",{url:"/:id?tab",params:{outboundRoute:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/voice/views/outboundRoutes/edit/view.html",controller:"OutboundRouteController as vm"}},resolve:{outboundRoute:["apiResolver","$stateParams",function(e,n){return e.resolve("voiceExtension@get",{fields:"id,appdata,type,exten,context,recordingFormat,cutdigits,description,alias,createdAt,updatedAt",id:n.id})}],contexts:["apiResolver",function(e){return e.resolve("voiceContext@get",{fields:"id,name",sort:"name"})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:403})}]},authenticate:!0,permissionId:403,bodyClass:"voice"})}e.$inject=["$stateProvider"],angular.module("app.voice.outboundRoutes",[]).config(e)}(),function(){"use strict";function e(e){e.state("app.voice.realtime",{url:"/realtime",views:{"content@app":{templateUrl:"app/main/apps/voice/views/realtime/realtime.html",controller:"VoiceRealtimeController as vm"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:411})}]},authenticate:!0,permissionId:411}).state("app.voice.realtime.agents",{url:"/agents",controller:"AgentsVoiceRealtimeController as vm",templateUrl:"app/main/apps/voice/views/realtime/agents/view.html",resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{nolimit:!0})}],agents:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}],rpcAgents:["apiResolver",function(e){return e.resolve("rpc@getAgents")}]},authenticate:!0,permissionId:411}).state("app.voice.realtime.telephones",{url:"/telephones",controller:"TelephonesVoiceRealtimeController as vm",templateUrl:"app/main/apps/voice/views/realtime/telephones/view.html",resolve:{telephones:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,fullname,userpic,internal",role:"telephone",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Telephones",fields:"id,fullname,userpic,internal",role:"telephone",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:203})}],rpcTelephones:["apiResolver",function(e){return e.resolve("rpc@getTelephones")}]},authenticate:!0,permissionId:411}).state("app.voice.realtime.trunks",{url:"/trunks",controller:"TrunksVoiceRealtimeController as vm",templateUrl:"app/main/apps/voice/views/realtime/trunks/view.html",resolve:{trunks:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("trunk@get",{fields:"id,name",active:!0,sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Trunks",fields:"id,name",active:!0,sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1011})}],rpcTrunks:["apiResolver",function(e){return e.resolve("rpc@getTrunks")}]},authenticate:!0,permissionId:411}).state("app.voice.realtime.queues",{url:"/queues",controller:"QueuesVoiceRealtimeController as vm",templateUrl:"app/main/apps/voice/views/realtime/queues/view.html",resolve:{queues:["apiResolver","Auth",function(e,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"VoiceQueues":void 0,channel:"voice",type:"inbound",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:401})}]},authenticate:!0,permissionId:411}).state("app.voice.realtime.queue_calls",{url:"/queue_calls",controller:"QueueCallsVoiceRealtimeController as vm",templateUrl:"app/main/apps/voice/views/realtime/queue_calls/view.html",resolve:{agents:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,role,context",role:"agent",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,role,context",role:"agent",nolimit:!0})}],queues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{type:"inbound",sort:"-updatedAt",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoiceQueues",channel:"voice",type:"inbound",sort:"-updatedAt",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:401})}],rpcVoiceQueuesChannels:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueuesChannels")}]},authenticate:!0,permissionId:411}).state("app.voice.realtime.abandonedcalls",{url:"/abandonedcalls",controller:"AbandonedCallsVoiceRealtimeController as vm",templateUrl:"app/main/apps/voice/views/realtime/abandonedcalls/view.html",resolve:{agents:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,role,context",role:"agent",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,role,context",role:"agent",nolimit:!0})}],queues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{type:"inbound",sort:"-updatedAt",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoiceQueues",channel:"voice",type:"inbound",sort:"-updatedAt",nolimit:!0})}],dispositions:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("disposition@get",{fields:"createdAt,updatedAt,id,name,level,ParentId",sort:"name",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Dispositions",fields:"createdAt,updatedAt,id,name",sort:"name",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:401})}]},authenticate:!0,permissionId:411}).state("app.voice.realtime.queue_params",{url:"/queue_params",controller:"QueueParamsVoiceRealtimeController as vm",templateUrl:"app/main/apps/voice/views/realtime/queue_params/view.html",resolve:{queues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{type:"inbound",fields:"id,name",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoiceQueues",channel:"voice",type:"inbound",sort:"-updatedAt",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:401})}],rpcQueues:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueues")}]},authenticate:!0,permissionId:411}).state("app.voice.realtime.outbound_calls",{url:"/outbound_calls",controller:"OutboundCallsVoiceRealtimeController as vm",templateUrl:"app/main/apps/voice/views/realtime/outbound_calls/view.html",resolve:{rpcCalls:["apiResolver",function(e){return e.resolve("rpc@getOutboundChannels")}]},authenticate:!0,permissionId:411})}e.$inject=["$stateProvider"],angular.module("app.voice.realtime",[]).config(e)}(),function(){"use strict";function e(e,n){e.state("app.voice",{abstract:!0,url:"/voice"}).state("app.voice.voiceQueues",{url:"/voiceQueues",views:{"content@app":{templateUrl:"app/main/apps/voice/views/voiceQueues/voiceQueues.html",controller:"VoiceQueuesController as vm"}},resolve:{voiceQueues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{fields:"createdAt,updatedAt,id,name,type,strategy,timeout,maxlen,retry,wrapuptime,weight,joinempty,leavewhenempty,musiconhold,announce,description,periodic_announce,queue_reporthold,queue_youarenext,queue_thereare,queue_callswaiting,queue_holdtime,queue_minutes,queue_minute,queue_seconds,queue_thankyou,announce_frequency,min_announce_frequency,periodic_announce_frequency,random_periodic_announce,announce_holdtime,announce_position,announce_position_limit,reportholdtime,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar,servicelevel,mandatoryDisposition,mandatoryDispositionPauseId",type:"inbound",sort:"-updatedAt",channel:"voice",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoiceQueues",fields:"createdAt,updatedAt,id,name,type,strategy,timeout,maxlen,retry,wrapuptime,weight,joinempty,leavewhenempty,musiconhold,announce,description,periodic_announce,queue_reporthold,queue_youarenext,queue_thereare,queue_callswaiting,queue_holdtime,queue_minutes,queue_minute,queue_seconds,queue_thankyou,announce_frequency,min_announce_frequency,periodic_announce_frequency,random_periodic_announce,announce_holdtime,announce_position,announce_position_limit,reportholdtime,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar,servicelevel,mandatoryDisposition,mandatoryDispositionPauseId",type:"inbound",sort:"-updatedAt",channel:"voice",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:401})}]},authenticate:!0,permissionId:401,bodyClass:"voice"}).state("app.voice.voiceQueues.edit",{url:"/:id?tab",params:{voiceQueue:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/voice/views/voiceQueues/edit/view.html",controller:"VoiceQueueController as vm"}},resolve:{voiceQueue:["apiResolver","$stateParams",function(e,n){return e.resolve("voiceQueue@get",{fields:"createdAt,updatedAt,id,name,type,strategy,timeout,maxlen,retry,wrapuptime,weight,joinempty,leavewhenempty,musiconhold,announce,description,periodic_announce,queue_reporthold,queue_youarenext,queue_thereare,queue_callswaiting,queue_holdtime,queue_minutes,queue_minute,queue_seconds,queue_thankyou,announce_frequency,min_announce_frequency,periodic_announce_frequency,random_periodic_announce,announce_holdtime,announce_position,announce_position_limit,reportholdtime,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar,servicelevel,mandatoryDisposition,mandatoryDispositionPauseId",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:401})}]},authenticate:!0,permissionId:401,bodyClass:"voice"}).state("app.voice.contexts",{url:"/contexts",views:{"content@app":{templateUrl:"app/main/apps/voice/views/contexts/contexts.html",controller:"ContextsController as vm"}},resolve:{contexts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceContext@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",defaultEntry:"false",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Contexts",fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",defaultEntry:"false",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:405})}]},authenticate:!0,permissionId:405,bodyClass:"voice"}).state("app.voice.voicemails",{url:"/voicemails",views:{"content@app":{templateUrl:"app/main/apps/voice/views/voicemails/voicemails.html",controller:"VoicemailsController as vm"}},resolve:{voicemails:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceMail@get",{fields:"createdAt,updatedAt,id,customer_id,fullname,email,password,mailbox,context,tz,attach,envelope,delete,emailbody,emailsubject,maxsecs,maxmsg",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Voicemails",fields:"createdAt,updatedAt,id,customer_id,fullname,email,password,mailbox,context,tz,attach,envelope,delete,emailbody,emailsubject,maxsecs,maxmsg",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:406})}]},authenticate:!0,permissionId:406,bodyClass:"voice"}).state("app.voice.voicemails.edit",{url:"/:id?tab",params:{voicemail:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/voice/views/voicemails/edit/view.html",controller:"VoicemailController as vm"}},resolve:{voicemail:["apiResolver","$stateParams",function(e,n){return e.resolve("voiceMail@get",{fields:"createdAt,updatedAt,id,customer_id,fullname,email,password,mailbox,context,tz,attach,envelope,delete,emailbody,emailsubject,maxsecs,maxmsg",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:406})}]},authenticate:!0,permissionId:406,bodyClass:"voice"}).state("app.voice.musiconholds",{url:"/musiconholds",views:{"content@app":{templateUrl:"app/main/apps/voice/views/musiconholds/musiconholds.html",controller:"MusicOnHoldsController as vm"}},resolve:{musiconholds:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceMusicOnHold@get",{fields:"createdAt,updatedAt,id,name,mode,directory,application,format,sort",defaultEntry:"false",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"MusicOnHolds",fields:"createdAt,updatedAt,id,name,mode,directory,application,format,sort",defaultEntry:"false",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:407})}]},authenticate:!0,permissionId:407,bodyClass:"voice"}).state("app.voice.musiconholds.edit",{url:"/:id?tab",params:{musiconhold:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/voice/views/musiconholds/edit/view.html",controller:"MusicOnHoldController as vm"}},resolve:{musiconhold:["apiResolver","$stateParams",function(e,n){return e.resolve("voiceMusicOnHold@get",{fields:"createdAt,updatedAt,id,name,mode,directory,application,format,sort",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:407})}]},authenticate:!0,permissionId:407,bodyClass:"voice"}).state("app.voice.voiceRecordings",{url:"/voiceRecordings",views:{"content@app":{templateUrl:"app/main/apps/voice/views/voiceRecordings/voiceRecordings.html",controller:"VoiceRecordingsController as vm"}},resolve:{voiceRecordings:["apiResolver","Auth","msUtils",function(e,n,t){return n.hasRole("admin")?e.resolve("voiceRecording@get",{fields:"createdAt,updatedAt,id,format,value,type,uniqueid,calleridnum,exten,connectedlinenum,queue,membername,rating,audio,userDisposition,userSecondDisposition,userThirdDisposition,transcribeStatus,fileText,failureReason,sentiment,sPositive,sNegative,sNeutral,sMixed",sort:"-createdAt",createdAt:t.firstLastDayMonth(),limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoiceRecordings",fields:"createdAt,updatedAt,id,format,value,type,uniqueid,calleridnum,exten,connectedlinenum,queue,membername,rating,audio,userDisposition,userSecondDisposition,userThirdDisposition,transcribeStatus,fileText,failureReason,sentiment,sPositive,sNegative,sNeutral,sMixed",sort:"-createdAt",createdAt:t.firstLastDayMonth(),limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadVoiceRecordings",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:408})}]},authenticate:!0,permissionId:408,bodyClass:"voice"}).state("app.voice.voiceRecordings.edit",{url:"/:id?tab",params:{voiceRecording:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/voice/views/voiceRecordings/edit/view.html",controller:"VoiceRecordingController as vm"}},resolve:{voiceRecording:["apiResolver","$stateParams",function(e,n){return e.resolve("voiceRecording@get",{fields:"createdAt,updatedAt,id,format,value,type,uniqueid,calleridnum,exten,connectedlinenum,queue,membername,rating,audio,userDisposition,userSecondDisposition,userThirdDisposition,transcribeStatus,fileText,failureReason,sentiment,sPositive,sNegative,sNeutral,sMixed",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:408})}]},authenticate:!0,permissionId:408,bodyClass:"voice"}).state("app.voice.chanSpies",{url:"/chanSpies",views:{"content@app":{templateUrl:"app/main/apps/voice/views/chanSpies/chanSpies.html",controller:"ChanSpiesController as vm"}},resolve:{chanSpies:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceChanSpy@get",{fields:"createdAt,updatedAt,id,name,prefix,options,auth,password,record,recordingFormat,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ChanSpies",fields:"createdAt,updatedAt,id,name,prefix,options,auth,password,record,recordingFormat,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:409})}]},authenticate:!0,permissionId:409,bodyClass:"voice"}).state("app.voice.voicePrefixes",{url:"/voicePrefixes",views:{"content@app":{templateUrl:"app/main/apps/voice/views/voicePrefixes/voicePrefixes.html",controller:"VoicePrefixesController as vm"}},resolve:{voicePrefixes:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voicePrefix@get",{fields:"createdAt,updatedAt,id,name,VoiceExtensionId,callerIdAll,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoicePrefixes",fields:"createdAt,updatedAt,id,name,VoiceExtensionId,callerIdAll,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:410})}]},authenticate:!0,permissionId:410,bodyClass:"voice"}),n.addPart("app/main/apps/voice")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.voice",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.voice.inboundRoutes","app.voice.outboundRoutes","app.voice.internalRoutes","app.voice.realtime"]).config(e)}(),function(){"use strict";function e(e){e.state("app.whatsapp.realtime",{url:"/realtime",views:{"content@app":{templateUrl:"app/main/apps/whatsapp/views/realtime/realtime.html",controller:"WhatsappRealtimeController as vm"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:2110})}]},authenticate:!0,permissionId:2110}).state("app.whatsapp.realtime.agents",{url:"/agents",controller:"AgentsWhatsappRealtimeController as vm",templateUrl:"app/main/apps/whatsapp/views/realtime/agents/view.html",resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{nolimit:!0})}],agents:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}],rpcAgents:["apiResolver",function(e){return e.resolve("rpc@getAgents")}]},authenticate:!0,permissionId:2110}).state("app.whatsapp.realtime.queues",{url:"/queues",controller:"QueuesWhatsappRealtimeController as vm",templateUrl:"app/main/apps/whatsapp/views/realtime/queues/view.html",resolve:{queues:["apiResolver","Auth",function(e,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"WhatsappQueues":void 0,channel:"whatsapp",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:2101})}]},authenticate:!0,permissionId:2110})}e.$inject=["$stateProvider"],angular.module("app.whatsapp.realtime",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.whatsapp",{abstract:!0,url:"/whatsapp"}).state("app.whatsapp.whatsappQueues",{url:"/whatsappQueues",views:{"content@app":{templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/whatsappQueues.html",controller:"WhatsappQueuesController as vm"}},resolve:{whatsappQueues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("whatsappQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"whatsapp",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"WhatsappQueues",fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"whatsapp",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:2101})}]},authenticate:!0,permissionId:2101,bodyClass:"whatsapp"}).state("app.whatsapp.whatsappQueues.edit",{url:"/:id?tab",params:{whatsappQueue:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/edit/view.html",controller:"WhatsappQueueController as vm"}},resolve:{whatsappQueue:["apiResolver","$stateParams",function(e,n){return e.resolve("whatsappQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:2101})}]},authenticate:!0,permissionId:2101,bodyClass:"whatsapp"}).state("app.whatsapp.whatsappAccounts",{url:"/whatsappAccounts",views:{"content@app":{templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/whatsappAccounts.html",controller:"WhatsappAccountsController as vm"}},resolve:{whatsappAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("whatsappAccount@get",{fields:"createdAt,updatedAt,id,name,key,ListId,remote,token,type,accountSid,authToken,phone,receiveUrl,deliveryReportUrl,notificationShake,notificationSound,notificationTemplate,queueTransfer,queueTransferTimeout,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,agentTransfer,agentTransferTimeout,description,baseUrl",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"WhatsappAccounts",fields:"createdAt,updatedAt,id,name,key,ListId,remote,token,type,accountSid,authToken,phone,receiveUrl,deliveryReportUrl,notificationShake,notificationSound,notificationTemplate,queueTransfer,queueTransferTimeout,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,agentTransfer,agentTransferTimeout,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:2102})}]},authenticate:!0,permissionId:2102,bodyClass:"whatsapp"}).state("app.whatsapp.whatsappAccounts.edit",{url:"/:id?tab",params:{whatsappAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/edit/view.html",controller:"WhatsappAccountController as vm"}},resolve:{whatsappAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("whatsappAccount@get",{fields:"createdAt,updatedAt,id,name,key,ListId,remote,token,type,accountSid,authToken,phone,receiveUrl,deliveryReportUrl,notificationShake,notificationSound,notificationTemplate,queueTransfer,queueTransferTimeout,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,agentTransfer,agentTransferTimeout,description,baseUrl",id:n.id})}],userProfile:["apiResolver","Auth",function(e,n){return n.isAdmin()?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadOmnichannelInteractions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:2102})}]},authenticate:!0,permissionId:2102,bodyClass:"whatsapp"}),n.addPart("app/main/apps/whatsapp")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.whatsapp",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.whatsapp.realtime"]).config(e)}(),function(){"use strict";angular.module("app.navigation",[]).config(function(){})}(),function(){"use strict";function e(e,n){e.addPart("app/quick-panel")}e.$inject=["$translatePartialLoaderProvider","msApiProvider"],angular.module("app.quick-panel",[]).config(e)}(),function(){"use strict";function e(e,n){e.state("app.reset",{url:"/reset/:token",views:{"main@":{templateUrl:"app/core/layouts/content-only.html",controller:"MainController as vm"},"content@app.reset":{templateUrl:"app/reset/reset.html",controller:"ResetPasswordController as vm"}},bodyClass:"reset"}),n.addPart("app/reset")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.reset",[]).config(e)}(),function(){"use strict";function e(e){e.addPart("app/toolbar")}e.$inject=["$translatePartialLoaderProvider"],angular.module("app.toolbar",[]).config(e)}(),function(){"use strict";function e(e){e.interceptors.push("authInterceptor")}e.$inject=["$httpProvider"],angular.module("app.auth").config(e)}(),function(){"use strict";function e(e){e.onBefore({to:function(e){return!0===e.authenticate}},function(e){var n=e.injector().get("Auth"),t=e.router.stateService;return n.isLoggedIn()?n.retrieveUser().catch(function(){return t.target("app.login",void 0,{reload:!0})}):t.target("app.login",void 0,{reload:!0})}),e.onStart({to:function(e){return"app.login"!==e.name}},function(e){var n=e.injector().get("Auth"),t=e.router.stateService,a=e.$to();if(n.hasRole("agent")&&"app.dashboards.general"!=a.name)return t.target("app.dashboards.general",{redirect:!1},{reload:!0})}),e.onFinish({to:function(e){return e.permissionId}},function(e){var n=e.injector().get("Auth"),t=e.router.stateService,a=e.$to();if(n.hasRole("user")){if(!n.hasPermission(a.permissionId))return t.target("app.dashboards.general",{redirect:!1},{reload:!0});var i=e.params().id?Number(e.params().id):void 0;if(i)return n.hasResourcePermission(a.permissionId,i).catch(function(){return t.target(a.parent.name,{redirect:!1},{reload:!0})})}}),e.onFinish({to:function(e){return"app.dashboards.general"===e.parent.name}},function(e){var n=e.injector().get("Auth"),t=e.router.stateService;e.$to();if(n.hasRole("user")&&!n.hasPermission(100))return t.target("app.dashboards.general",{redirect:!1},{reload:!0})})}e.$inject=["$transitions"],angular.module("app.auth").run(e)}(),function(){"use strict";function e(a,i,o,n,s,r,l){var d;return{getToken:e,getCurrentUser:function(){return d},getPermissions:h,hasChildrenPermissions:function(e){return!!e&&_.some(e,function(e){return t(e)})},hasModulePermissions:function(i){return o(function(a,n){g()?a(!0):r.userProfileSection.get({userProfileId:d.userProfileId}).$promise.then(function(e){var n=e&&e.rows?e.rows:[];if(_.isEmpty(n))a(!1);else{var t=_.filter(n,function(e){return e.enabled});a(_.some(t,["category",i]))}}).catch(function(e){n(e)})})},hasModulesPermissions:function(s){return o(function(a,n){var i={};g()?(s.forEach(function(e){i[e]=!0}),a(i)):r.userProfileSection.get({userProfileId:d.userProfileId}).$promise.then(function(e){var n=e&&e.rows?e.rows:[];if(_.isEmpty(n))a({});else{var t=_(n).filter(function(e){return e.enabled&&_.includes(s,e.category)}).uniqBy(function(e){return e.category}).map(function(e){return e.category}).value();t.forEach(function(e){i[e]=!0}),a(i)}}).catch(function(e){n(e)})})},hasRole:function(e){return!!d&&d.role===e},hasPermission:t,hasResourcePermission:function(e,s){return o(function(a,i){return r.userProfileSection.get({userProfileId:d.userProfileId,sectionId:e}).$promise.then(function(e){var n=e.rows[0];if(n.autoAssociation)return a();var t=l.getActiveItem().node;return t.permissions&&!1===t.permissions.association?a():r.userProfileResource.get({sectionId:n.id,nolimit:!0}).$promise.then(function(e){var n=e.rows;_.some(n,["resourceId",s])?a():i()})}).catch(function(e){i("Error retrieving user profile permissions",e)})})},hasSectionPermissions:function(a){return o(function(e,n){var t={};return f().then(function(){_.includes(d.permissions,a)&&(t[a]=!0),e(t)}).catch(function(e){n(e)})})},hasSectionsPermissions:function(a){return o(function(e,n){var t={};if(!g())return f().then(function(){a.forEach(function(e){_.includes(d.permissions,e)&&(t[e]=!0)}),e(t)}).catch(function(e){n(e)});a.forEach(function(e){t[e]=!0}),e(t)})},isAgent:p,isAdmin:g,isLoggedIn:function(){return!!e()},isTelephone:function(){return"telephone"===d.role},isUser:v,login:function(e){return o(function(n,t){r.auth.local(e).$promise.then(function(e){return i.put("motion.token",e.token),r.user.get({id:e.id}).$promise}).then(function(e){(d=e).lastLoginAt=moment().format("YYYY-MM-DD HH:mm:ss"),b("LOCAL_LOGIN")}).then(function(){if(p()&&1===d.showWebBar&&d.hotdesk)return a.show({controller:"HotDeskDialogController",controllerAs:"vm",templateUrl:"app/auth/services/hotdesk/dialog.html",parent:angular.element(s.body),clickOutsideToClose:!1,resolve:{telephones:["apiResolver",function(e){return e.resolve("user@get",{fields:"id,fullname,name,internal",role:"telephone",nolimit:!0})}]}})}).then(function(e){return p()&&0!==d.showWebBar?c(e):g()||v()?m(!0):void 0}).then(function(e){d=_.assign(d,e),n()}).catch(function(e){t(e)})})},logout:function(t){return o(function(e,n){t?(u(),e()):o.resolve().then(function(){return p()&&0!==d.showWebBar?o(function(e,n){r.user.logout({id:d.id,device:"web"}).$promise.then(function(){e()}).catch(function(e){n(e)})}):g()||v()?m(!1):void 0}).then(function(){u(),e()}).catch(function(e){n(e)})})},parseCrudPermissions:function(e){return g()?{readOnly:!1,canEdit:!0,canDelete:!0}:e?{readOnly:!(!_.includes(e,"r")||1!==e.length),canEdit:!!_.includes(e,"e"),canDelete:!!_.includes(e,"d")}:{readOnly:!0,canEdit:!1,canDelete:!1}},queueLogin:c,reloadPermissions:f,removeCookies:u,retrieveUser:function(){return o(function(n,t){r.user.whoami().$promise.then(function(n){return"user"===n.role?h(n.userProfileId).then(function(e){return n.permissions=e,n}):n}).then(function(e){n(d=e)}).catch(function(e){t(e)})})},setCurrentUser:function(e){d=_.merge(d,e)},getAuthenticationType:function(){return n.localStorage["motion.authenticationtype"]||"NONE"},loginSSO:function(e){return b("SSO_LOGIN"),"/api/auth/"+e}};function e(){return i.get("motion.token")}function c(e){return o(function(n,t){r.user.login({id:d.id,device:"web",intrf:e}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}function m(a){return o(function(n,t){var e={online:a,lastLoginAt:a?moment().format("YYYY-MM-DD HH:mm:ss"):void 0};r.user.update({id:d.id},e).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}function u(){i.remove("motion.token"),d&&(n.localStorage.removeItem("motion.user:"+d.id),n.localStorage.removeItem("motion.authenticationtype"),d=null)}function p(){return"agent"===d.role}function g(){return"admin"===d.role}function v(){return"user"===d.role}function t(e){return!!d&&_.includes(d.permissions,e)}function h(e){var a=[];return o(function(n,t){return e||n(a),r.userProfile.getSections({id:e}).$promise.then(function(e){for(var n=0;n<e.length;n++){var t=e[n];a.push(t.sectionId),t.subsections&&(a=_.concat(a,t.subsections))}return a}).then(function(e){n(e)}).catch(function(e){t("Error retrieving user profile permissions",e)})})}function f(){return o(function(n,t){h(d.userProfileId).then(function(e){d.permissions=e,n()}).catch(function(e){t(e)})})}function b(e){n.localStorage["motion.authenticationtype"]=e}}e.$inject=["$mdDialog","$cookies","$q","$window","$document","api","msNavigationService"],angular.module("app.auth").factory("Auth",e)}(),function(){"use strict";function e(n,e){this.telephones=e,this.closeDialog=function(e){n.hide(e)},e.count&&(this.name=e.rows[0].name)}e.$inject=["$mdDialog","telephones"],angular.module("app.auth").controller("HotDeskDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i){var s;return{request:function(e){var n=t.get("motion.token");return e.headers=e.headers||{},i.isSameOrigin(e.url)&&n&&(e.headers.Authorization="Bearer "+n),e},responseError:function(e){switch(e.status){case 401:t.remove("motion.token"),(s||(s=a.get("$state"))).go("app.login")}return n.reject(e)}}}e.$inject=["$rootScope","$q","$cookies","$injector","Util"],angular.module("app.auth").factory("authInterceptor",e)}(),function(){"use strict";function e(n){var t={safeCb:function(e){return angular.isFunction(e)?e:angular.noop},urlParse:function(e){var n=document.createElement("a");return n.href=e,""===n.host&&(n.href=n.href),n},isSameOrigin:function(i,e){return i=t.urlParse(i),(e=(e=e&&[].concat(e)||[]).map(t.urlParse)).push(n.location),1<=(e=e.filter(function(e){var n=i.hostname===e.hostname,t=i.protocol===e.protocol,a=i.port===e.port||""===e.port&&("80"===i.port||"443"===i.port);return n&&t&&a})).length}};return t}e.$inject=["$window"],angular.module("app.auth").factory("Util",e)}(),function(){"use strict";angular.module("app.core").provider("motionConfig",function(){var t={disableCustomScrollbars:!1,disableMdInkRippleOnMobile:!0,disableCustomScrollbarsOnMobile:!0};this.config=function(e){t=angular.extend({},t,e)},this.$get=function(){var e={getConfig:function(e){if(angular.isUndefined(t[e]))return!1;return t[e]},setConfig:function(e,n){t[e]=n}};return e}})}(),function(){"use strict";function e(e,n,t,a){n.debugEnabled(!0),e.config({tabindex:!1}),a.config({disableCustomScrollbars:!1,disableCustomScrollbarsOnMobile:!0,disableMdInkRippleOnMobile:!0}),t.config({wheelPropagation:!0})}e.$inject=["$ariaProvider","$logProvider","msScrollConfigProvider","motionConfigProvider"],angular.module("app.core").config(e)}(),function(){"use strict";function e(e,n,t){(n.generate(),t.getConfig("disableMdInkRippleOnMobile")&&e.isMobile())&&angular.element("body").attr("md-no-ink",!0);e.isMobile()&&angular.element("html").addClass("is-mobile");var a=e.detectBrowser();if(a){var i=a.browser+" "+a.version+" "+a.os;angular.element("html").addClass(i)}}e.$inject=["msUtils","motionGenerator","motionConfig"],angular.module("app.core").run(e)}(),function(){"use strict";function e(n,e,t,a,i,s){var l=this;function o(){var e=_.filter(l.searchOptions.conditions,["disabled",!1]),o=[],r="";if(_(e).groupBy("name").forEach(function(e){var n=e[0],t=1<e.length,a=n.query.column;if(t){var i=_(e).groupBy(function(e){return e.query.operator}).mapValues(function(e){return _.chain(e).map(function(e){return e.query.value}).flattenDeep().value()}).value(),s=[];_.keys(i).forEach(function(e){var n=i[e],t=e;_.includes(["$between","$in","$notIn"],e)?t+="["+n+"]":n.forEach(function(e){t+="["+e+"]"}),s.push(t)}),r+=a+":="+s.join(":=")}else r=a+":="+n.query.operator+"["+n.query.value+"]";o.push(r)}),0!==o.length){var n="["+l.searchOptions.matchType+"]";return n+=o.join("||")}}function r(){var e=n.localStorage.getItem("motion2."+s+":"+l.currentUser.id);return e?JSON.parse(e):{}}function d(e){n.localStorage.setItem("motion2."+s+":"+l.currentUser.id,JSON.stringify(e))}function c(){if(s){var e=r();e.advancedSearch=_.omit(l.searchOptions,"fields"),d(e)}}function m(){return!!r().advancedSearch}l.currentUser=t.getCurrentUser(),l.searchOptions={matchType:"$and",conditions:[],fields:i},l.toolbarColor=a,l.onInit=function(){if(s){var e=r();e.hasOwnProperty("advancedSearch")&&(l.searchOptions=_.merge(l.searchOptions,e.advancedSearch))}},l.applyFilter=function(){c(),e.hide({apply:!0,value:o()})},l.clearConditions=function(){l.searchOptions.conditions=[],function(){if(s){var e=r();delete e.advancedSearch,e.query&&delete e.query.search,d(e)}}()},l.minimize=function(){c(),e.hide({apply:!m(),value:o()||m()?!_.isEmpty(l.searchOptions.conditions):void 0})},l.close=function(){e.hide({apply:!m(),value:o()||m()?!_.isEmpty(l.searchOptions.conditions):void 0})}}e.$inject=["$window","$mdDialog","Auth","color","fields","storagePath"],angular.module("app.core").controller("AdvancedSearchController",e)}(),function(){"use strict";function e(a){return{restrict:"A",link:function(e,n,t){e.$watch(t.focusOn,function(e){a(function(){e?n[0].focus():n[0].blur()})})}}}e.$inject=["$timeout"],angular.module("app.core").directive("focusOn",e)}(),function(){"use strict";function e(o,l,d){return{restrict:"E",compile:function(e,n){var s;return n.code||(s=e.html(),e.empty()),function(t,a,r){r.code&&(s=t.$eval(r.code));var i=t.$eval(r.shouldInterpolate);l.when(s).then(function(e){if(e){i&&(e=d(e)(t));var n=angular.element('<pre><code class="highlight" ng-non-bindable></code></pre>');a.append(n),o(function(){!function(e,n){var t=n.find("code"),a=e.split("\n"),i=(a=a.filter(function(e){return e.trim().length}))[0].match(/^\s*/)[0],s=new RegExp("^"+i);a=a.map(function(e){return e.replace(s,"").replace(/\s+$/,"")});var o=hljs.highlight(r.language||r.lang,a.join("\n"),!0);o.value=o.value.replace(/=<span class="hljs-value">""<\/span>/gi,"").replace("<head>","").replace("<head/>",""),t.append(o.value).addClass("highlight")}(e,n)},34,!1)}})}}}}e.$inject=["$timeout","$q","$interpolate"],angular.module("app.core").directive("hljs",e)}(),function(){"use strict";function e(a,i,s,o){var r=this;function n(){var a=r.selectedField.options&&!_.isEmpty(r.selectedField.options.extraOperators),i=r.selectedField.options&&!_.isEmpty(r.selectedField.options.excludedOperators);r.availableOperators=_.filter(r.operators,function(n){var e=!n.applyTo||_.includes(n.applyTo,r.selectedField.type);n.isExtra=a&&_.some(r.selectedField.options.extraOperators,function(e){return e===n.type});var t=_.includes(n.excludeFrom,r.selectedField.type)||i&&_.includes(r.selectedField.options.excludedOperators,n.type);if((e||n.isExtra)&&!t)return n})}function t(){!r.value||_.isArray(r.value)&&_.isEmpty(r.value)?r.isValidCondition=!1:r.selectedOperator&&"$between"===r.selectedOperator.type?r.isValidCondition=!(!r.endRangeValue||!r.isValidRange):r.isValidCondition=!0}function e(){"number"===r.selectedField.type?_.isNumber(r.endRangeValue)?r.isValidRange=Number(r.endRangeValue)>Number(r.value):r.isValidRange=!0:"date"===r.selectedField.type&&(r.maxDateRange=moment(r.endRangeValue).subtract(1,"day"),r.isValidRange=!0),t()}function l(){var e=c();r.options.conditions.push(e),u()}function d(){var e=c(),n=_.findIndex(r.options.conditions,"style");r.options.conditions.splice(n,1,e),u(),r.pendingCondition.style=null,r.pendingCondition=void 0}function c(){return{name:r.selectedField.name,operator:a.instant("DASHBOARDS."+r.selectedOperator.translate),value:r.value,endValue:r.endRangeValue,displayValue:m(r.value),displayEndValue:m(r.endRangeValue),query:{column:r.selectedField.column,operator:r.selectedOperator.type,value:function(){var e,n=r.value,t=r.endRangeValue;switch(r.selectedField.type){case"date":var a=moment(n).utcOffset(0,!0).format("YYYY-MM-DD");if("$between"===r.selectedOperator.type){var i=moment(t).utcOffset(0,!0).format("YYYY-MM-DD");e=[a,i]}else e=a;break;case"number":e="$between"===r.selectedOperator.type?[n,t]:n;break;case"multiselect":var s=r.selectedField.options.field||"id";e=_.map(n,s);break;case"select":e=n.id;break;case"autocomplete":e=r.selectedOperator.isExtra?n:n.id;break;default:e=n}return e}()},disabled:!1}}function m(e){var n;if(e){switch(r.selectedField.type){case"date":n=moment(e).format("YYYY-MM-DD");break;case"multiselect":var t=_.map(e,function(e){return e.name});n="$eq"===r.selectedOperator.type?t.join(" or "):t.join(" and ");break;case"select":n=e.name;break;case"autocomplete":n=r.selectedOperator.isExtra?e:e.displayValue;break;default:n=e}return n}}function u(){r.value=null,r.endRangeValue=null,r.minDateRange=null,r.maxDateRange=null,r.isValidCondition=!1}r.operators=r.availableOperators=[{type:"$eq",symbol:"=",translate:"EQUALS",excludeFrom:["multiselect"]},{type:"$ne",symbol:"≠",translate:"IS_NOT_EQUAL",excludeFrom:["multiselect"]},{type:"$in",symbol:"∈",translate:"IS_AMONG",applyTo:["multiselect"]},{type:"$notIn",symbol:"∉",translate:"IS_NOT_AMONG",applyTo:["multiselect"]},{type:"$substring",symbol:"⊃",translate:"CONTAINS",applyTo:["text"]},{type:"$startsWith",symbol:"a..",translate:"STARTS_WITH",applyTo:["text"]},{type:"$endsWith",symbol:"..a",translate:"ENDS_WITH",applyTo:["text"]},{type:"$lt",symbol:"<",translate:"IS_LESS_THAN",applyTo:["date","number"]},{type:"$gt",symbol:">",translate:"IS_GREATER_THAN",applyTo:["date","number"]},{type:"$lte",symbol:"≤",translate:"IS_LESS_THAN_OR_EQUAL_TO",applyTo:["date","number"]},{type:"$gte",symbol:"≥",translate:"IS_GREATER_THAN_OR_EQUAL_TO",applyTo:["date","number"]},{type:"$between",symbol:"≬",translate:"IS_BETWEEN",applyTo:["date","number"]}],r.addCondition=l,r.editCondition=function(e){r.pendingCondition=e,r.pendingCondition.style="md-amber-200-bg",r.selectedField=_.find(r.options.fields,["name",r.pendingCondition.name]),n(),r.selectedOperator=_.find(r.availableOperators,["type",r.pendingCondition.query.operator]),"date"===r.selectedField.type&&"string"==typeof r.pendingCondition.value?(r.value=new Date(r.pendingCondition.value),r.minDateRange=moment(r.value).add(1,"day"),r.endRangeValue=r.pendingCondition.endValue?new Date(r.pendingCondition.endValue):void 0):(r.value=r.pendingCondition.value,r.endRangeValue=r.pendingCondition.endValue);r.isValidRange=!0,r.isValidCondition=!0},r.updateCondition=d,r.cancelUpdateCondition=function(){r.pendingCondition.style=null,r.pendingCondition=void 0},r.setConditionStatus=function(e){e.style=e.disabled?void 0:"chip-disabled",e.disabled=!e.disabled},r.removeCondition=function(){_.isEmpty(r.options.conditions)&&r.clearFilter()},r.getValues=function(){var n=angular.copy(r.selectedField.options.route);if("autocomplete"===r.selectedField.type)for(var e=0;e<Object.keys(n.params).length;e++){var t=Object.keys(n.params)[e];"@autocomplete"===n.params[t]&&(n.params[t]=r.searchText)}{if(!r.selectedField.values)return s[n.model][n.action](n.params).$promise.then(function(e){if("autocomplete"!==r.selectedField.type)return r.selectedField.values=e.rows;var n=r.searchText?_.filter(e.rows,function(e){e.displayValue="";for(var n=0;n<r.selectedField.options.searchFields.length;n++){var t=r.selectedField.options.searchFields[n],a=e[t]||"";e.displayValue+=a+" "}return _.trimEnd(e.displayValue),_.includes(e.displayValue.toLowerCase(),r.searchText.toLowerCase())}):[];return i.when(n)}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:n.model.toUpperCase()+"."+n.action.toUpperCase(),msg:e.data?JSON.stringify(e.data.message):e.toString()})});r.selectedField.values.forEach(function(e){e.translate&&(e.name=a.instant(e.translate))})}},r.onFieldChange=function(){r.value=void 0,r.endRangeValue=void 0,r.searchText=void 0,r.isValidCondition=!1,n(),r.autoSelectOperator=1===r.availableOperators.length,r.autoSelectOperator||(r.selectedOperator=void 0)},r.onOperatorChange=function(e){r.isValidRange=!0,r.selectedOperator&&(e?e.applyTo?0<_.difference(r.selectedOperator.applyTo,e.applyTo).length&&(r.value=null):r.selectedOperator.applyTo&&(r.value=null):r.value=null,"between"!=r.selectedOperator.type&&(r.endRangeValue=null),r.selectedField.options&&!_.isEmpty(r.selectedField.options.extraOperators)&&(r.selectedOperator.isExtra=_.some(r.selectedField.options.extraOperators,function(e){return e===r.selectedOperator.type})));t()},r.onValueChange=function(){r.selectedOperator&&"$between"===r.selectedOperator.type?"number"===r.selectedField.type?e():"date"===r.selectedField.type&&(r.minDateRange=moment(r.value).add(1,"day"),t()):t()},r.checkRange=e,r.handleKeyboardAction=function(){r.pendingCondition?d():l()}}e.$inject=["$translate","$q","api","toasty"],angular.module("app.core").directive("msAdvancedSearch",function(){return{restrict:"E",scope:{options:"=",clearFilter:"&"},controller:e,controllerAs:"vm",bindToController:!0,templateUrl:"app/core/directives/ms-advanced-search/ms-advanced-search.html"}})}(),function(){"use strict";angular.module("app.core").directive("msCard",function(){return{restrict:"E",scope:{templatePath:"=template",card:"=ngModel",vm:"=viewModel"},template:'<div class="ms-card-content-wrapper" ng-include="templatePath" onload="cardTemplateLoaded()"></div>',compile:function(e){return e.addClass("ms-card"),function(e,n){e.cardTemplateLoaded=function(){e.$emit("msCard::cardTemplateLoaded",n)}}}}})}(),function(){"use strict";angular.module("app.core").directive("msChipColor",function(){return{restrict:"A",link:function(e,i,n){n.$observe("msChipColor",function(e){var n=i.parent().parent();if(n.hasClass("md-background-bg md-hue-3")||n.addClass("md-background-bg md-hue-3"),_.isEmpty(e)){var t=n[0].className.split(" "),a=t.indexOf("md-hue-3");t.length=a+1,n[0].className=t.join(" ")}else n.addClass(e)})}}})}(),function(){"use strict";angular.module("app.core").directive("msClickToCall",function(){return{restrict:"E",scope:{type:"=",disabled:"=",target:"=",prefix:"=",license:"="},controller:["$scope","$rootScope","$http","$translate","$document","$mdDialog","Auth","toasty","api",function(t,n,a,i,s,o,e,r,l){function d(e){switch(t.currentUser.showWebBar){case 0:return m("http://127.0.0.1:"+(t.currentUser.phoneBarRemoteControlPort||"9888")+"/api/originate/"+c(e));case 2:return n.$broadcast("webrtc::call",{target:c(e)})}}function c(e){return _.isNil(e)?"":e.replace(/[^\w.+#*\-]+/g,"")}function m(e){return a.get(e).success(function(){r.success({title:"Successful call",msg:"Call properly handled!"})}).error(function(e){r.error({title:"PhoneBar API Error",msg:i.instant("CONTACTMANAGER.ERRORS.PHONEBAR_API")})})}t.currentUser=e.getCurrentUser(),t.privacy=t.currentUser.privacyEnabled,t.showMenu=function(){return t.target&&t.target.indexOf("@")<0&&t.target!=t.currentUser.internal&&t.target!=t.currentUser.name&&(0==t.currentUser.showWebBar&&t.currentUser.phoneBarRemoteControl||2==t.currentUser.showWebBar&&t.license.webrtc)&&!t.disabled},t.call=function(e){return 2!==t.currentUser.showWebBar?(n=e,l.user.getVoicePrefixes({id:t.currentUser.id}).$promise.then(function(e){if(e.count)return o.show({controller:"PrefixDialogController",controllerAs:"vm",templateUrl:"assets/ms-phonebar/prefix/dialog.html",parent:angular.element(s.body),clickOutsideToClose:!0,locals:{prefixes:e,required:t.currentUser.phoneBarPrefixRequired}})}).then(function(e){t.currentUser.phoneBarPrefixRequired?e&&-1!==e&&d(e+n):e&&-1!==e?d(e+n):e||d(n)})):d(e);var n},t.transfer=function(e){switch(t.currentUser.showWebBar){case 0:return m("http://127.0.0.1:"+(t.currentUser.phoneBarRemoteControlPort||"9888")+"/api/transfer?number="+c(e));case 2:n.$broadcast("webrtc::transfer",{target:c(e)})}}}],templateUrl:"app/core/directives/ms-click-to-call/ms-click-to-call.html"}})}(),function(){"use strict";function e(i){return{require:"ngModel",priority:1,link:function(e,n,t,a){a.$formatters.push(i.formatter),a.$parsers.push(i.parser)}}}e.$inject=["msDatepickerFixConfig"],angular.module("app.core").provider("msDatepickerFixConfig",function(){var n={formatter:function(e){return e?""===e?e:new Date(e):""},parser:function(e){return e?moment(e).add(moment(e).utcOffset(),"m").toDate():""}};this.config=function(e){n=angular.extend({},n,e)},this.$get=function(){return n}}).directive("msDatepickerFix",e)}(),function(){"use strict";function e(s){return{restrict:"E",scope:{id:"=",model:"=",element:"=",title:"=",path:"="},replace:!0,link:function(n,e){var t=!1,a={};a.id=n.id,_.isNil(n.path)||(a.path=n.path);var i=document.createElement(n.element);i.setAttribute("preload","none"),i.setAttribute("controls","true"),"audio"===n.element&&i.setAttribute("style","width: 265px;"),"video"===n.element&&i.setAttribute("style","max-width: 500px;"),i.setAttribute("title",n.title),i.setAttribute("src"," "),i.onplay=function(e){t||(t=!0,e.preventDefault(),s[n.model].download(a).$promise.then(function(e){var n=[e.buffer],t=new Blob(n,{type:e.type});i.setAttribute("type",e.type),i.setAttribute("src",URL.createObjectURL(t)),i.play()}).catch(function(e){console.error(e)}))},e.append(i)}}}e.$inject=["api"],angular.module("app.core").directive("msDialogRecording",e)}(),function(){"use strict";function e(i){return{restrict:"A",link:function(t,a){a.bind("click",function(e){var n=i('<div layout="row" class="spinner-overlay" layout-sm="column" layout-align="center center" aria-label="wait"><md-progress-circular md-mode="indeterminate"></md-progress-circular></div>')(t);a.closest("md-dialog").prepend(n)})}}}e.$inject=["$compile"],angular.module("app.core").directive("msDialogSpinner",e)}(),function(){"use strict";function e(){var o=this;function a(e,n,t,a){var i=[];if(0<=t)i.push(e[t]),n.push(e[t]),e.splice(t,1);else{for(var s=0;s<e.length;s++)void 0!==e[s].isValid&&e[s].isValid&&n.push(e[s]);for(s=e.length-1;0<=s;s--)e[s].isValid&&e.splice(s,1);i=n}o.options.transferCallback&&o.options.transferCallback(i,a)}o.canTransfer=function(e,n,t){if(void 0!==e.isValid&&e.isValid)return t?a(n.selectedItems,n.items,n.selectedItems.indexOf(e),t):a(n.items,n.selectedItems,n.items.indexOf(e),t)},o.transfer=a,o.getLine=function(e,n){var t="";if(_.isNil(n))return t;{if(_.isArray(n)){for(var a=0;a<n.length;a++)t+=" "+(e[n[a]]?e[n[a]]:"");return t}return e[n]?e[n]:""}}}angular.module("app.core").directive("msDualMultiselect",function(){return{restrict:"E",scope:{options:"=",readOnly:"=",addDisabled:"<"},controller:e,controllerAs:"vm",bindToController:!0,templateUrl:"app/core/directives/ms-dual-multiselect/ms-dual-multiselect.html"}})}(),function(){"use strict";function e(a){return{restrict:"E",replace:!0,scope:{onReply:"&",ngModel:"=",ctrlMethods:"=",pickerPosition:"=",search:"=",recentEmojis:"=",placeholder:"="},template:'<textarea class="emojionearea"></textarea>',link:function(t,e){var n=e.emojioneArea({pickerPosition:t.pickerPosition,search:t.search,recentEmojis:t.recentEmojis,placeholder:a.instant(t.placeholder||"Type a message"),attributes:{spellcheck:!0},events:{keyup:function(e,n){t.ngModel=this.getText(),t.onReply({event:n,body:this.getText()})},emojibtn_click:function(){t.ngModel=this.getText()}}});t.ngModel&&n[0].emojioneArea.setText(t.ngModel),t.internalControl=t.ctrlMethods||{},t.internalControl.setText=function(e){n[0].emojioneArea.setText(e)},t.internalControl.getText=function(){return n[0].emojioneArea.getText()},t.$watch("ngModel",function(e){e||n[0].emojioneArea.setText("")})}}}e.$inject=["$translate"],angular.module("app.core").directive("msEmojiArea",e)}(),function(){"use strict";angular.module("app.core").directive("msFontFamily",function(){return{restrict:"E",scope:{ngModel:"="},controller:["$scope",function(e){e.fonts=[{option:"Arial",value:"Arial,Helvetica,sans-serif"},{option:"Century Gothic",value:"Century Gothic,Futura,Didact Gothic,san-serif"},{option:"Calibri",value:"Calibri, Verdana, Geneva, sans-serif"},{option:"Comic Sans MS",value:"Comic Sans MS,cursive"},{option:"Courier New",value:"Courier New,Courier,monospace"},{option:"Georgia",value:"Georgia,serif"},{option:"Lucida Sans Unicode",value:"Lucida Sans Unicode,Lucida Grande,sans-serif"},{option:"Tahoma",value:"Tahoma,Geneva,sans-serif"},{option:"Times New Roman",value:"Times New Roman,Times,serif"},{option:"Trebuchet MS",value:"Trebuchet MS,Helvetica,sans-serif"},{option:"Verdana",value:"Verdana,Geneva,sans-serif"}]}],templateUrl:"app/core/directives/ms-font-family/ms-font-family.html"}})}(),function(){"use strict";angular.module("app.core").controller("MsFormWizardController",function(){var n=this;function e(){return n.forms.length}function t(){return 0===n.selectedIndex}function a(){return n.selectedIndex===e()-1}n.forms=[],n.selectedIndex=0,n.registerForm=function(e){n.forms.push(e)},n.previousStep=function(){if(t())return;n.selectedIndex--},n.nextStep=function(){if(a())return;n.selectedIndex++},n.firstStep=function(){n.selectedIndex=0},n.lastStep=function(){n.selectedIndex=e()-1},n.totalSteps=e,n.isFirstStep=t,n.isLastStep=a,n.currentStepInvalid=function(){return angular.isDefined(n.forms[n.selectedIndex])&&n.forms[n.selectedIndex].$invalid},n.previousStepInvalid=function(){return 0<n.selectedIndex&&angular.isDefined(n.forms[n.selectedIndex-1])&&n.forms[n.selectedIndex-1].$invalid},n.formsIncomplete=function(){for(var e=0;e<n.forms.length;e++)if(n.forms[e].$invalid)return!0;return!1},n.resetForm=function(){for(var e=n.selectedIndex=0;e<n.forms.length;e++)n.forms[e].$setPristine(),n.forms[e].$setUntouched()}}).directive("msFormWizard",function(){return{restrict:"E",scope:!0,controller:"MsFormWizardController as msWizard",compile:function(e){return e.addClass("ms-form-wizard"),function(){}}}}).directive("msFormWizardForm",function(){return{restrict:"A",require:["form","^msFormWizard"],compile:function(e){return e.addClass("ms-form-wizard-form"),function(e,n,t,a){var i=a[0],s=a[1];s.registerForm(i)}}}})}(),function(){"use strict";function e(i){return{restrict:"E",scope:{onClose:"&"},transclude:!0,templateUrl:"app/core/directives/ms-info-bar/ms-info-bar.html",link:function(e,n){var t=i.find("ms-info-bar-active"),a="ms-info-bar-active";t.addClass(a),e.removeInfoBar=function(){t.removeClass(a),n.remove(),e.onClose&&e.onClose(),e.$destroy()}}}}e.$inject=["$document"],angular.module("app.core").directive("msInfoBar",e)}(),function(){"use strict";function e(r,a,l,e){var d=this,n={columnCount:5,respectItemOrder:!1,reLayoutDebounce:400,responsive:{md:3,sm:2,xs:1}},t=!0;function i(){t&&e.cancel(t),t=e(function(){!function(){d.containerPos=d.container[0].getBoundingClientRect(),function(){d.columnCount=d.options.columnCount,l("gt-md")?d.columnCount=d.options.columnCount:l("md")?d.columnCount=d.columnCount>d.options.responsive.md?d.options.responsive.md:d.columnCount:l("sm")?d.columnCount=d.columnCount>d.options.responsive.sm?d.options.responsive.sm:d.columnCount:d.columnCount=d.options.responsive.xs;d.columnWidth=d.containerPos.width/d.columnCount}(),r.$broadcast("msMasonry:relayoutStarted"),d.items=d.container.find("ms-masonry-item");for(var e=Array.apply(null,new Array(d.columnCount)).map(function(){return 0}),n=0;n<d.items.length;n++){var t,a,i,s,o=d.items[n];(o=angular.element(o)).scope()&&o.scope().$broadcast("msMasonryItem:startReLayout"),o.css({width:d.columnWidth}),d.options.respectItemOrder?(i=n%d.columnCount,s=e[i]):(s=Math.min.apply(Math,e),i=e.indexOf(s)),e[i]=s+o[0].getBoundingClientRect().height,t=Math.round(i*d.columnWidth),a=s,o.css({transform:"translate3d("+t+"px,"+a+"px,0px)"}),o.addClass("placed"),o.scope()&&o.scope().$broadcast("msMasonryItem:finishReLayout")}}(),r.$broadcast("msMasonry:relayoutFinished")},d.options.reLayoutDebounce)}d.options=null,d.container=[],d.containerPos="",d.columnWidth="",d.items=[],d.reLayout=i,d.initialize=function(){d.options=d.options?angular.extend(n,d.options):n,r.$watch(function(){return d.container.width()},function(e,n){e!==n&&i()})},d.waitImagesLoaded=function(e,n){if("undefined"!=typeof imagesLoaded){var t=a.imagesLoaded(e);t.on("done",function(){n()})}else n()},r.$on("msMasonry:relayout",function(){i()})}function n(o){return{restrict:"AEC",controller:"msMasonryController",compile:function(i,s){return{pre:function(e,n,t,a){a.options=angular.fromJson(s.options||"{}"),a.container=i},post:function(e,n,t,a){o(function(){a.initialize()})}}}}}e.$inject=["$scope","$window","$mdMedia","$timeout"],n.$inject=["$timeout"],angular.module("app.core").controller("msMasonryController",e).directive("msMasonry",n).directive("msMasonryItem",function(){return{restrict:"AEC",require:"^msMasonry",priority:1,link:function(e,n,t,a){a.waitImagesLoaded(n,function(){a.reLayout()}),e.$on("msMasonryItem:finishReLayout",function(){e.$watch(function(){return n.height()},function(e,n){e!==n&&a.reLayout()})}),n.on("$destroy",function(){a.reLayout()})}}})}(),function(){"use strict";function e(t,e,a,i){var s=this;function o(e,n){s.selectedPalette=e,s.selectedHues=n}function r(){o(!(s.selectedColor={palette:"",hue:"",class:""}),!1),d()}function l(e,n){s.selectedColor={palette:e,hue:n,class:"md-"+e+"-"+n+"-bg",bgColorValue:i.rgba(s.palettes[e][n].value),fgColorValue:i.rgba(s.palettes[e][n].contrast)},"obj"!==s.msModelType||angular.equals(s.selectedColor,s.modelCtrl.$viewValue)||d(),o(e,s.palettes[e]),t.$selectedColor=s.selectedColor}function d(){"class"===s.msModelType?s.modelCtrl.$setViewValue(s.selectedColor.class):"obj"===s.msModelType&&s.modelCtrl.$setViewValue(s.selectedColor)}s.palettes=e,s.selectedPalette=!1,s.selectedHues=!1,t.$selectedColor={},s.activateHueSelection=o,s.selectColor=function(e,n){l(e,n),d(),a.hide()},s.removeColor=r,t.$watch("ngModel",function(){if(!s.modelCtrl.$viewValue||""===s.modelCtrl.$viewValue)return void r();var e,n;if("class"===s.msModelType){var t=s.modelCtrl.$viewValue.split("-");n=5<=t.length?(e=t[1]+"-"+t[2],t[3]):(e=t[1],t[2])}else"obj"===s.msModelType&&(e=s.modelCtrl.$viewValue.palette,n=s.modelCtrl.$viewValue.hue||500);l(e,n)})}e.$inject=["$scope","$mdColorPalette","$mdMenu","motionGenerator"],angular.module("app.core").controller("msMaterialColorPickerController",e).directive("msMaterialColorPicker",function(){return{require:["msMaterialColorPicker","ngModel"],restrict:"E",scope:{ngModel:"=",msModelType:"@?"},controller:"msMaterialColorPickerController as vm",transclude:!0,templateUrl:"app/core/directives/ms-material-color-picker/ms-material-color-picker.html",link:function(e,n,t,a,i){var s=a[0];s.modelCtrl=a[1],s.msModelType=e.msModelType||"class",i(e,function(e){(e=e.filter(function(e,n){return 1===n.nodeType})).length&&n.find("ms-color-picker-button").replaceWith(e)})}}})}(),function(){"use strict";function e(p,g,v){return{restrict:"A",link:function(e,n,t){var a="true"===t.msNavIsFolded,i=!1,s=angular.element(p[0].body),o=angular.element('<div id="ms-nav-fold-open-overlay"></div>'),r=angular.element('<div id="ms-nav-fold-close-overlay"></div>'),l=n.parent();function d(){s.addClass("ms-nav-folded"),g.$broadcast("msNav::forceCollapse"),n.scrollTop(0),l.append(o),o.on("mouseenter touchstart",function(e){c(e),i=!0})}function c(e){angular.isDefined(e)&&e.preventDefault(),s.addClass("ms-nav-folded-open"),g.$broadcast("msNav::expandMatchingToggles"),l.find(o).remove(),l.parent().append(r),r.on("mouseenter touchstart",function(e){m(e),i=!1})}function m(e){angular.isDefined(e)&&e.preventDefault(),g.$broadcast("msNav::forceCollapse"),n.scrollTop(0),s.removeClass("ms-nav-folded-open"),l.parent().find(r).remove(),l.append(o),o.on("mouseenter touchstart",function(e){c(e),i=!0})}function u(){s.removeClass("ms-nav-folded ms-nav-folded-open"),g.$broadcast("msNav::expandMatchingToggles"),n.off("mouseenter mouseleave")}v.setFoldable(e,n,a),a?d():u(),e.toggleFold=function(){(a=!a)?d():u()},e.openFolded=c,e.closeFolded=m,e.isNavFoldedOpen=function(){return i},e.$on("$destroy",function(){o.off("mouseenter touchstart"),r.off("mouseenter touchstart"),n.off("mouseenter mouseleave")})}}}function n(t,a,i){return{restrict:"E",scope:{},controller:"MsNavController",compile:function(e){return e.addClass("ms-nav"),function(e){t.$broadcast("msNav::expandMatchingToggles");var n=t.$on("$stateChangeSuccess",function(){t.$broadcast("msNav::expandMatchingToggles"),a.when("navigation").then(function(e){e.close(),i.isNavFoldedOpen()&&i.closeFolded()})});e.$on("$destroy",function(){n()})}}}}function t(m,u,p,g){return{restrict:"A",require:"^msNav",scope:!0,compile:function(e,n){return e.addClass("ms-nav-toggle"),angular.isUndefined(n.collapsed)&&(n.collapsed=!0),e.attr("collapsed",n.collapsed),function(a,i,e,t){var s={expanded:"expanded",expandAnimation:"expand-animation",collapseAnimation:"collapse-animation"},n=i.find("a"),o=[],r=/\(.*\)/g;function l(){return"true"===i.attr("collapsed")}function d(){var e=u.defer();if(!l())return e.reject({error:!0}),e.promise;i.attr("collapsed",!1);var n=angular.element(i.find("ms-nav-toggle-items")[0]);n.css({position:"absolute",visibility:"hidden",display:"block",height:"auto"});var t=n[0].offsetHeight;return n.css({position:"",visibility:"",display:"",height:""}),a.$evalAsync(function(){p.animate(n,{display:"block",height:"0px"},{height:t+"px"},s.expandAnimation).then(function(){n.addClass(s.expanded),n.css({height:""}),e.resolve({success:!0})})}),e.promise}function c(){var e=u.defer();if(l())return e.reject({error:!0}),e.promise;i.attr("collapsed",!0);var n=angular.element(i.find("ms-nav-toggle-items")[0]),t=n[0].offsetHeight;return a.$evalAsync(function(){p.animate(n,{height:t+"px"},{height:"0px"},s.collapseAnimation).then(function(){n.removeClass(s.expanded),n.css({display:"",height:""}),e.resolve({success:!0})})}),e.promise}angular.forEach(n,function(e){var n=angular.element(e).attr("ui-sref");angular.isUndefined(n)||(n=n.replace(r,""),o.push(n))}),t.setToggleItem(i,a),i.children(".ms-nav-button").on("click",function(){if(t.isDisabled())return;t.disable(),l()?(t.clearLockedItems(),a.$emit("msNav::pushToLockedList"),m.$broadcast("msNav::collapse"),d().then(function(){t.enable()})):a.$broadcast("msNav::forceCollapse")}),a.$on("$destroy",function(){i.children(".ms-nav-button").off("click")}),a.$on("msNav::collapse",function(){var e=t.getLockedItems(),n=!1;angular.forEach(e,function(e){angular.equals(e.scope,a)&&(n=!0)}),n||c().then(function(){t.enable()})}),a.$on("msNav::forceCollapse",function(){c().then(function(){t.enable()})}),a.$on("msNav::expandMatchingToggles",function(){var n=g.current.name,t=!1;angular.forEach(o,function(e){n===e&&(t=!0)}),t?d():c()}),a.$on("msNav::pushToLockedList",function(){t.setLockedItem(i,a)})}}}}e.$inject=["$document","$rootScope","msNavFoldService"],n.$inject=["$rootScope","$mdComponentRegistry","msNavFoldService"],t.$inject=["$rootScope","$q","$animate","$state"],angular.module("app.core").factory("msNavFoldService",function(){var t={};return{setFoldable:function(e,n){t={scope:e,element:n}},isNavFoldedOpen:function(){return t.scope.isNavFoldedOpen()},toggleFold:function(){t.scope.toggleFold()},openFolded:function(){t.scope.openFolded()},closeFolded:function(){t.scope.closeFolded()}}}).directive("msNavIsFolded",e).controller("MsNavController",function(){var e=this,n=!1,t=[],a=[];e.isDisabled=function(){return n},e.enable=function(){n=!1},e.disable=function(){n=!0},e.setToggleItem=function(e,n){t.push({element:e,scope:n})},e.getLockedItems=function(){return a},e.setLockedItem=function(e,n){a.push({element:e,scope:n})},e.clearLockedItems=function(){a=[]}}).directive("msNav",n).directive("msNavTitle",function(){return{restrict:"A",compile:function(e){return e.addClass("ms-nav-title"),function(){}}}}).directive("msNavButton",function(){return{restrict:"AE",compile:function(e){return e.addClass("ms-nav-button"),function(){}}}}).directive("msNavToggle",t)}(),function(){"use strict";function e(e,n){e.root?this.navigation=n.getNavigation(e.root):this.navigation=n.getNavigation(),this.toggleHorizontalMobileMenu=function(){angular.element("body").toggleClass("ms-navigation-horizontal-mobile-menu-active")},n.sort()}function n(c,m,u,p){return{restrict:"E",scope:{folded:"=",root:"@"},controller:"MsNavigationController as vm",templateUrl:"app/core/directives/ms-navigation/templates/vertical.html",transclude:!0,compile:function(e){return e.addClass("ms-navigation"),function(e,n){var t=angular.element("body"),a=angular.element('<div id="ms-navigation-fold-expander"></div>'),i=angular.element('<div id="ms-navigation-fold-collapser"></div>'),s=u("navigation");function o(e){if(p.setFolded(e),e)c.$broadcast("msNavigation::collapse"),t.addClass("ms-navigation-folded"),r();else{var n=p.getActiveItem();n&&n.scope.$emit("msNavigation::stateMatched"),t.removeClass("ms-navigation-folded ms-navigation-folded-open"),i.remove()}}function r(){n.parent().append(a),m(function(){a.on("mouseenter touchstart",l)})}function l(e){e&&e.preventDefault(),p.setFoldedOpen(!0);var n=p.getActiveItem();n&&n.scope.$emit("msNavigation::stateMatched"),t.addClass("ms-navigation-folded-open"),a.remove(),t.find("#main").append(i),i.on("mouseenter touchstart",d)}function d(e){e&&e.preventDefault(),p.setFoldedOpen(!1),c.$broadcast("msNavigation::collapse"),t.removeClass("ms-navigation-folded-open"),i.remove(),r()}p.setNavigationScope(e),function(){null===p.getFolded()&&p.setFolded(e.folded);p.getFolded()&&(m(function(){c.$broadcast("msNavigation::collapse")}),t.addClass("ms-navigation-folded"),r())}(),e.$watch(function(){return s.isLockedOpen()},function(e,n){if(!angular.isUndefined(e)&&!angular.equals(e,n)&&p.getFolded())if(e)c.$broadcast("msNavigation::collapse");else{var t=p.getActiveItem();t&&t.scope.$emit("msNavigation::stateMatched")}}),e.$watch("folded",function(e,n){angular.isUndefined(e)||angular.equals(e,n)||o(e)}),e.toggleFolded=function(){o(!p.getFolded())},e.$on("$stateChangeStart",function(){s.close()}),e.$on("$destroy",function(){i.off("mouseenter touchstart"),a.off("mouseenter touchstart")})}}}}function t(t,e,a,i,n,s){var o=this;o.element=e,o.node=t.node,o.hasChildren=void 0,o.collapsed=void 0,o.collapsable=void 0,o.group=void 0,o.animateHeightClass="animate-height",o.toggleCollapsed=function(){o.collapsed?o.expand():o.collapse()},o.collapse=function(){var e=o.element.children("ul"),n=e[0].offsetHeight;t.$evalAsync(function(){o.collapsed=!0,o.element.addClass("collapsing"),i.animate(e,{display:"block",height:n+"px"},{height:"0px"},o.animateHeightClass).then(function(){e.css({display:"",height:""}),o.element.removeClass("collapsing")}),t.$broadcast("msNavigation::collapse")})},o.expand=function(){var e=o.element.children("ul");e.css({position:"absolute",visibility:"hidden",display:"block",height:"auto"});var n=e[0].offsetHeight;e.css({position:"",visibility:"",display:"",height:""}),t.$evalAsync(function(){o.collapsed=!1,o.element.addClass("expanding"),i.animate(e,{display:"block",height:"0px"},{height:n+"px"},o.animateHeightClass).then(function(){e.css({height:""}),o.element.removeClass("expanding")}),a.$broadcast("msNavigation::collapse",o.node._path)})},o.getClass=function(){return o.node.class},o.isHidden=function(){if(angular.isDefined(o.node.hidden)&&angular.isFunction(o.node.hidden))return o.node.hidden();return!1},function(){o.hasChildren=0<o.node.children.length,o.group=!(!angular.isDefined(o.node.group)||!0!==o.node.group),!o.hasChildren||o.group?o.collapsable=!1:o.collapsable=!(!angular.isUndefined(o.node.collapsable)&&"boolean"==typeof o.node.collapsable&&!0!==o.node.collapsable);o.collapsable?o.collapsed=!(!angular.isUndefined(o.node.collapsed)&&"boolean"==typeof o.node.collapsed&&!0!==o.node.collapsed):o.collapsed=!1;if(o.node.state===n.current.name||n.includes(o.node.state)){if(angular.isDefined(o.node.stateParams)&&angular.isDefined(n.params)&&!angular.equals(o.node.stateParams,n.params))return;t.$emit("msNavigation::stateMatched"),s.setActiveItem(o.node,t)}t.$on("msNavigation::stateMatched",function(){o.collapsable&&o.collapsed&&t.$evalAsync(function(){o.collapsed=!1})}),t.$on("msNavigation::collapse",function(e,n){if(!o.collapsed&&o.collapsable)if(angular.isUndefined(n))o.collapse();else{var t=n.split("."),a=[],i=s.getActiveItem();if(i&&(a=i.node._path.split(".")),-1<t.indexOf(o.node._id))return;if(-1<a.indexOf(o.node._id))return;o.collapse()}}),t.$on("$stateChangeSuccess",function(){if(o.node.state===n.current.name){if(angular.isDefined(o.node.stateParams)&&angular.isDefined(n.params)&&!angular.equals(o.node.stateParams,n.params))return;s.setActiveItem(o.node,t),a.$broadcast("msNavigation::collapse",o.node._path)}if(n.includes(o.node.state)){if(angular.isDefined(o.node.stateParams)&&angular.isDefined(n.params)&&!angular.equals(o.node.stateParams,n.params))return;t.$emit("msNavigation::stateMatched")}})}()}function a(n){return{restrict:"E",scope:{root:"@"},controller:"MsNavigationController as vm",templateUrl:"app/core/directives/ms-navigation/templates/horizontal.html",transclude:!0,compile:function(e){return e.addClass("ms-navigation-horizontal"),function(e){n.setNavigationScope(e)}}}}function i(t,e,n,a,i){var s=this;s.element=e,s.node=t.node,s.hasChildren=void 0,s.group=void 0,s.getClass=function(){return s.node.class},function(){if(s.isActive=!1,s.hasChildren=0<s.node.children.length,s.group=!(!angular.isDefined(s.node.group)||!0!==s.node.group),s.node.state===a.current.name||a.includes(s.node.state)){if(angular.isDefined(s.node.stateParams)&&angular.isDefined(a.params)&&!angular.equals(s.node.stateParams,a.params))return;t.$emit("msNavigation::stateMatched"),i.setActiveItem(s.node,t)}t.$on("msNavigation::stateMatched",function(){s.hasChildren&&t.$evalAsync(function(){s.isActive=!0})}),t.$on("msNavigation::clearActive",function(){if(s.hasChildren){var e=[],n=i.getActiveItem();n&&(e=n.node._path.split(".")),-1<e.indexOf(s.node._id)?t.$evalAsync(function(){s.isActive=!0}):t.$evalAsync(function(){s.isActive=!1})}}),t.$on("$stateChangeSuccess",function(){if(s.node.state===a.current.name||a.includes(s.node.state)){if(angular.isDefined(s.node.stateParams)&&angular.isDefined(a.params)&&!angular.equals(s.node.stateParams,a.params))return;i.setActiveItem(s.node,t),n.$broadcast("msNavigation::clearActive")}})}()}function s(i){return{restrict:"A",require:"^msNavigationHorizontalNode",compile:function(e){return e.addClass("ms-navigation-horizontal-item"),function(e,n,t,a){n.on("click",function(){if(!a.hasChildren||i("gt-md"))return;n.toggleClass("expanded")}),e.$on("$destroy",function(){n.off("click")})}}}}e.$inject=["$scope","msNavigationService"],n.$inject=["$rootScope","$timeout","$mdSidenav","msNavigationService"],t.$inject=["$scope","$element","$rootScope","$animate","$state","msNavigationService"],a.$inject=["msNavigationService"],i.$inject=["$scope","$element","$rootScope","$state","msNavigationService"],s.$inject=["$mdMedia"],angular.module("app.core").provider("msNavigationService",function(){var r=angular.injector(["ng"]).get("$log"),l=[];function d(e,n){if(angular.isString(e)){for(var t=e.split("."),a=t[t.length-1],i=function(e){var n=l;if(1===e.length)return n;e.pop();for(var t=0;t<e.length;t++){for(var a=e[t],i=!0,s=0;s<n.length;s++)if(n[s]._id===a){n=n[s].children,i=!1;break}if(i){var o={_id:a,_path:e.join("."),title:a,weight:1,children:[]};n.push(o),n=o.children}}return n}(t),s=!1,o=0;o<i.length;o++)if(i[o]._id===a){s=i[o];break}s?(angular.extend(s,n),s.uisref=u(s)):(n.children=[],!angular.isUndefined(n.weight)&&angular.isNumber(n.weight)||(n.weight=1),n._id=a,n._path=e,n.uisref=u(n),i.push(n))}else r.error("path must be a string (eg. `dashboard.project`)")}function c(e){if(angular.isString(e)){for(var n=l,t=e.split("."),a=0;a<t.length;a++)for(var i=t[a],s=0;s<n.length;s++)if(n[s]._id===i){if(n[s]._path===e)return n.splice(s,1),!0;n=n[s].children;break}return!1}r.error("path must be a string (eg. `dashboard.project`)")}function m(e){e||(e=l).sort(a);for(var n=0;n<e.length;n++){var t=e[n].children;1<t.length&&t.sort(a),0<t.length&&m(t)}}function a(e,n){return parseInt(e.weight)-parseInt(n.weight)}function u(e){var n="";return angular.isDefined(e.state)&&(n=e.state,angular.isDefined(e.stateParams)&&angular.isObject(e.stateParams)&&(n=n+"("+angular.toJson(e.stateParams)+")")),n}this.saveItem=d,this.deleteItem=c,this.sortByWeight=m,this.$get=function(){var t=null,n=null,a=null,i=null,e={saveItem:d,deleteItem:c,sort:m,clearNavigation:function(){l=[],n&&(n.vm.navigation=l)},setActiveItem:function(e,n){t={node:e,scope:n}},getActiveItem:function(){return t},getNavigation:s,getFlatNavigation:o,setNavigationScope:function(e){n=e},setFolded:function(e){a=e},getFolded:function(){return a},setFoldedOpen:function(e){i=e},getFoldedOpen:function(){return i},toggleFolded:function(){n.toggleFolded()},getSectionId:function(n,t){var e=o(),a=_.find(e,function(e){return t?e.route===n&&e.title.toLowerCase()===t.toLowerCase():e.route===n});return a?a.id:0}};return e;function s(e){if(e){for(var n=0;n<l.length;n++)if(l[n]._id===e)return[l[n]];return null}return l}function o(e){var n=s(e);return function e(n){var t=[];for(var a=0;a<n.length;a++){var i=angular.copy(n[a]);i.children=[],t.push(i),0<n[a].children.length&&(t=t.concat(e(n[a].children)))}return t}(n)}}}).controller("MsNavigationController",e).directive("msNavigation",n).controller("MsNavigationNodeController",t).directive("msNavigationNode",function(){return{restrict:"A",bindToController:{node:"=msNavigationNode"},controller:"MsNavigationNodeController as vm",compile:function(e){return e.addClass("ms-navigation-node"),function(e,n,t,a){n.addClass(a.getClass()),a.group&&n.addClass("group")}}}}).directive("msNavigationItem",function(){return{restrict:"A",require:"^msNavigationNode",compile:function(e){return e.addClass("ms-navigation-item"),function(e,n,t,a){a.collapsable&&n.on("click",a.toggleCollapsed),e.$on("$destroy",function(){n.off("click")})}}}}).directive("msNavigationHorizontal",a).controller("MsNavigationHorizontalNodeController",i).directive("msNavigationHorizontalNode",function(){return{restrict:"A",bindToController:{node:"=msNavigationHorizontalNode"},controller:"MsNavigationHorizontalNodeController as vm",compile:function(e){return e.addClass("ms-navigation-horizontal-node"),function(e,n,t,a){n.addClass(a.getClass()),a.group&&n.addClass("group")}}}}).directive("msNavigationHorizontalItem",s)}(),function(){"use strict";function e(u,t,p,e,a,i,n,g,s,v,h,f,b,o,A){var E=this,r=["ringingId","speakerId","microphoneId","ringingVolume","speakerVolume","microphoneVolume","ringingMute","speakerMute","microphoneMute"],l=JSON.parse(n.localStorage.getItem("motion2.user:"+E.conf.id))||{webrtc:{ringingVolume:.5,speakerVolume:.5,microphoneVolume:1,ringingMute:!1,speakerMute:!1,microphoneMute:!1}};function d(l){var d,c,m;return E.initDeviceInProgress=!0,navigator.mediaDevices.getUserMedia({audio:!0}).then(function(e){return E.soundPlayer.setAttribute("src","assets/ms-phonebar/sounds/silence.ogg"),E.soundPlayer.play().catch(function(e){console.log(e.message)}),e.getTracks().forEach(function(e){e.stop()}),navigator.mediaDevices.enumerateDevices()}).then(function(e){var n=_.filter(e,function(e){return"audioinput"===e.kind&&"default"!==e.deviceId&&"communications"!==e.deviceId});if(0<n.length){var t=_.find(e,function(e){return"default"===e.deviceId&&"audioinput"===e.kind});if(m=_.find(n,function(e){return e.groupId===t.groupId}),E.conf.microphoneId&&!l){var a=_.find(n,function(e){return e.deviceId===E.conf.microphoneId});a&&(m=a)}E.conf.microphoneId=m.deviceId}else v.warning({title:g.instant("TOOLBAR.WARNING"),msg:g.instant("TOOLBAR.WEBRTC_MICROPHONE_NOT_AVAILABLE"),clickToClose:!0,showClose:!0,shake:!1,timeout:!1,position:"bottom-right"});E.conf.microphoneId?E.sessionConf.mediaConstraints.audio={deviceId:E.conf.microphoneId}:E.sessionConf.mediaConstraints.audio=!0,R("microphone",!1);var i=_.filter(e,function(e){return"audiooutput"===e.kind&&"default"!==e.deviceId&&"communications"!==e.deviceId});if(0<i.length){var s=_.find(e,function(e){return"default"===e.deviceId&&"audiooutput"===e.kind});if(c=d=_.find(i,function(e){return e.groupId===s.groupId}),E.conf.speakerId&&!l){var o=_.find(i,function(e){return e.deviceId===E.conf.speakerId});o&&(c=o)}if(E.conf.speakerId=c.deviceId,E.conf.ringingId&&!l){var r=_.find(i,function(e){return e.deviceId===E.conf.ringingId});r&&(d=r)}E.conf.ringingId=d.deviceId}else v.warning({title:g.instant("TOOLBAR.WARNING"),msg:g.instant("TOOLBAR.WEBRTC_SPEAKER_NOT_AVAILABLE"),clickToClose:!0,showClose:!0,shake:!1,timeout:!1,position:"bottom-right"});return R("speaker",!1)}).then(function(){return R("ringing",!1)}).then(function(){if(jabra)return jabra.init().then(function(){return E.isJabraInitialized=!0,jabra.getInstallInfo()}).then(function(){return jabra.getUserDeviceMediaExt()}).then(function(e){m&&c&&d&&e&&_.includes([m.groupId,c.groupId,d.groupId],e.deviceInfo.browserGroupId)&&(console.log("Jabra library correctly initialized and device correctly installed"),E.isJabraEnabled=!0,jabra.onHook(),jabra.addEventListener("acceptcall",function(e){var n=_.last(E.sessions);n?"incoming"===n.direction&&n.isInProgress()?E.answer(n):console.error("Unable to find a valid call to answer",e):console.error("Unable to answer the call",e)}.bind(this)),jabra.addEventListener("mute",function(){R("microphone",E.conf.microphoneMute=!0)}.bind(this)),jabra.addEventListener("unmute",function(){E.conf.microphoneMute=!1,R("microphone",!0)}.bind(this)),jabra.addEventListener("flash",function(){E.jabraSession.localHold?E.unhold(E.jabraSession):E.hold(E.jabraSession)}.bind(this)),jabra.addEventListener("endcall",function(){new Promise(function(e){for(var n=null,t=0;t<E.sessions.length;t++)_.has(E.sessions[t],"localHold")&&E.sessions[t].localHold||(n=E.sessions[t]);e(n)}).then(function(e){null!==e&&E.terminate(e)})}.bind(this)))}).catch(function(e){console.warn("Error initializing Jabra integration",e)})}).catch(function(e){console.error("Unable to init media devices",e),"NotFoundError"===e.name&&v.warning({title:g.instant("TOOLBAR.WARNING"),msg:g.instant("TOOLBAR.WEBRTC_AUDIO_DEVICES_NOT_AVAILABLE"),clickToClose:!0,showClose:!0,shake:!1,timeout:!1,position:"bottom-right"})}).finally(function(){E.initDeviceInProgress=!1,y(),DetectRTC.load(function(){E.conf.hasMicrophone=DetectRTC.hasMicrophone,E.conf.hasSpeakers="Chrome"!==DetectRTC.browser.name&&"Edge"!==DetectRTC.browser.name&&"Opera"!==DetectRTC.browser.name||DetectRTC.hasSpeakers,E.conf.isWebRTCSupported=DetectRTC.isWebRTCSupported,E.conf.osName=DetectRTC.osName,E.conf.osVersion=DetectRTC.osVersion,E.conf.browserName=DetectRTC.browser.name,E.conf.browserVersion=DetectRTC.browser.version,E.conf.license&&E.conf.isWebRTCSupported&&E.conf.hasMicrophone&&E.conf.hasSpeakers&&"https"===E.conf.protocol&&("chrome"===E.conf.browserName.toLowerCase()||"opera"===E.conf.browserName.toLowerCase()||"safari"===E.conf.browserName.toLowerCase())?E.register||E.ua.start():E.conf.license||v.warning({title:g.instant("TOOLBAR.WARNING"),msg:g.instant("TOOLBAR.WEBRTC_LICENSE_NOT_ENABELD"),clickToClose:!0,showClose:!0,shake:!1,timeout:!1,position:"bottom-right"})}.bind(this))})}function y(){l.webrtc=_.pick(E.conf,r),n.localStorage.setItem("motion2.user:"+E.conf.id,JSON.stringify(l))}function S(e,n,t){console.debug("addCall -> target, inbound, fullname",e,n,t),E.calls.unshift({target:e,fullname:t||e,inbound:n,time:moment().format("HH:mm")}),50<E.calls.length&&E.calls.pop()}function T(e){console.debug("answer -> session",e),e.notification&&(e.notification.close(),e.notification=null),E.conf.microphoneId?E.sessionConf.mediaConstraints.audio={deviceId:E.conf.microphoneId}:E.sessionConf.mediaConstraints.audio=!0,e.answer(E.sessionConf),E.isJabraEnabled&&(jabra.offHook(),E.jabraSession=e)}function I(e,n){console.debug("terminate -> session",e),e.notification&&(e.notification.close(),e.notification=null);var t={};if(n?t.status_code=n:e.isEstablished()||(t.status_code=603),e.terminate(t),E.isJabraEnabled)if(0===E.sessions.length)e.localHold&&jabra.resume(),jabra.onHook(),E.jabraSession=null;else{var a=_.last(E.sessions);a.localHold?(jabra.onHook(),jabra.hold(),E.jabraSession=a):jabra.offHook()}}function C(t){return console.debug("getVoiceChannels -> session",t),h.rpc.getVoiceChannels().$promise.then(function(e){var n=_.find(e.rows,function(e){return e.sipcalllinkedid===t.call_id?e:e.sipcalluniqueid===t.call_id?e:null});n&&(t.monitor=n.monitor,t.uniqueid=n.uniqueid,t.monitors=n.monitors)})}function O(e){console.debug("onAddstream -> data",e),this.remotePlayer.srcObject=e.stream,this.remotePlayer.play()}function w(){E.canGoInConference=!1,E.isInConference=!1,E.currentconferenceSessions=[]}function R(e,n){switch(e){case"ringing":E.soundPlayer.muted=E.conf.ringingMute,E.conf.ringingId&&E.soundPlayer.setSinkId(E.conf.ringingId).then(function(){E.soundPlayer.volume=E.conf.ringingVolume}).then(function(){n&&y()}).catch(function(e){console.info(e.message,E.conf.ringingId)});break;case"speaker":E.remotePlayer.muted=E.conf.speakerMute,E.conf.speakerId&&E.remotePlayer.setSinkId(E.conf.speakerId).then(function(){E.remotePlayer.volume=E.conf.speakerVolume}).then(function(){n&&y()}).catch(function(e){console.info(e.message,E.conf.speakerId)});break;case"microphone":for(var t=0;t<E.sessions.length;t+=1)E.conf.microphoneMute?E.sessions[t].mute():E.sessions[t].unmute();jabra&&E.isJabraEnabled&&(E.conf.microphoneMute?jabra.mute():jabra.unmute()),n&&y();break;default:console.log("unknown device")}}function c(){E.target="",document.getElementById("ms-target").blur(),document.getElementById("ms-target").value="",u.$broadcast("angucomplete-alt:clearInput","ms-target-wrap")}function m(n){return h.user.getVoicePrefixes({id:E.conf.id}).$promise.then(function(e){if(e.count)return a.show({controller:"PrefixDialogController",controllerAs:"vm",templateUrl:"assets/ms-phonebar/prefix/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{prefixes:e,required:E.conf.phoneBarPrefixRequired}})}).then(function(e){if(E.conf.phoneBarPrefixRequired){if(e&&-1!==e)return e+n}else{if(e&&-1!==e)return e+n;if(!e)return n}})}function x(){if(E.isInConference){var e=E.sessions[0].connection.getReceivers()[0],n=E.sessions[1].connection.getReceivers()[0],t=new MediaStream;t.addTrack(e.track),t.addTrack(n.track);var a=document.getElementById("remote-audio");a.srcObject=t;var i=a.play();void 0!==i&&i.then(function(){}).catch(function(e){console.log(e)})}}function N(e,n,t,a){return console.debug("onReferCallback -> session, textContent, position, delay",e,n,t,a),function(){i.show(i.simple().textContent(n).position(t).hideDelay(a)),I(e)}}function D(n){return console.debug("findSessionBySessionId -> sessionId, vm_pb.sessions",n,E.sessions),_.find(E.sessions,function(e){return e.call_id==n})}function P(e,n){return console.debug("callCallback -> url, params",e,n),s({url:e,method:"GET",params:n})}e(function(){},999),E.currentUser=b.getCurrentUser(),E.direction="right",E.selectedMode="md-scale",E.target="",E.showDialpad=!1,E.soundPlayer=document.getElementById(E.conf.soundPlayerId),E.remotePlayer=document.getElementById(E.conf.remotePlayerId),E.soundPlayer.volume=1,E.sessionConf={mediaConstraints:{audio:!0,video:!1},pcConfig:{iceServers:[]}},E.sessions=[],E.calls=[],E.callbackQueue=[],E.canGoInConference=!1,E.isInConference=!1,E.currentConferenceSessions=[],E.ua=new JsSIP.UA({sockets:[new JsSIP.WebSocketInterface("wss://"+E.conf.host+":"+E.conf.wssPort+"/ws")],uri:new JsSIP.URI("sip",E.conf.name,E.conf.host,5060,null,null).toString(),authorization_user:E.conf.name,ha1:E.conf.ha1,realm:E.conf.realm,user_agent:E.conf.ua,session_timers_refresh_method:"invite",register_expires:E.conf.phoneBarExpires||60,register:!0}),E.conf=_.merge(l.webrtc,E.conf),E.initDeviceInProgress=!1,E.isJabraEnabled=!1,E.isJabraInitialized=!1,E.jabraSession=null,E.jabraClicked=!1,E.buttonClicked=!1,E.originateInProgress=!1,t.bind("keyup",function(e){switch(e.keyCode){case 27:p(function(){E.showDialpad=!1})}}),E.$onInit=function(){d(!1),navigator.mediaDevices.ondevicechange=function(){E.initDeviceInProgress||(E.initDeviceInProgress=!0,jabra&&E.isJabraInitialized?jabra.shutdown().then(function(){E.isJabraInitialized=!1,d(!(E.isJabraEnabled=!1))}).catch(function(e){console.error("Unable to shutdown Jabra library",e)}):d(!0))};var e=[h.network.get({type:"turn",nolimit:!0}).$promise,h.network.get({type:"stun",nolimit:!0}).$promise];Promise.all(e).then(function(e){var n=e[0].rows,t=e[1].rows,a=[],i=[];t.forEach(function(e){i.push("stun:"+e.value)}),a.push({urls:i}),n.forEach(function(e){var n={urls:"turn:"+e.value};e.username&&(n.username=e.username),e.password&&(n.credential=e.password),a.push(n)}),E.sessionConf.pcConfig={iceServers:a}}),this.ua.on("registered",function(){this.registered=!0}.bind(this)),this.ua.on("unregistered",function(){this.registered=!1}.bind(this)),this.ua.on("newRTCSession",function(e){console.debug("onNewRTCSession -> data",e);var n,t,a,i,s,o=e.session,r=!0,l="",d=0;switch(e.originator){case"local":o.outgoing=!0,o.name=e.request.ruri.user,o.user=e.request.ruri.user,S(o.user,!1),t=e.request.extraHeaders,a="X-callback-url",s=_.find(t,function(e){return _.startsWith(e,a)}),n=!!s&&_.trim(s.replace(a,"").replace(i||":","")),E.isJabraEnabled&&(E.jabraSession&&jabra.resume(),E.jabraSession=o,jabra.offHook());break;case"remote":var c=b.getCurrentUser();if(c.voicePause&&c.phoneBarDnd||E.originateInProgress)r=!1;else if(o.incoming=!0,o.name=e.request.from.display_name,o.user=e.request.from.uri.user,l=e.request.getHeader("X-Answer-Mode")||"",d=e.request.getHeader("X-Answer-After")||0,function(n){console.debug("getNotification -> session",n);var e=n.name?n.name+" <"+n.user+">":n.user;E.currentUser.privacyEnabled&&(e=A.mask(e)),f.create("Incoming call from: ",e,null,function(){T(n)},function(){I(n)},E.conf.autoAnswer).then(function(e){n.notification=e}).catch(function(e){console.error("Error creating notification for incoming call",e)})}(e.session),S(e.session.user,!0),E.isJabraEnabled&&jabra.ring(),E.conf.autoAnswer&&p(function(){o.isInProgress()&&(o.autoAnswer=!0,T(o))},E.conf.autoAnswerDelay?1e3*E.conf.autoAnswerDelay:0),console.debug("xAnswerMode",l),console.debug("xAnswerAfterSec",d),"auto"==l.toLowerCase()){var m=0==d?500:1e3*d;console.debug("auto answer enabled after:"+m+" ms"),p(function(){o.isInProgress()&&(o.autoAnswer=!0,T(o))},m)}}r?(o.call_id=e.request.call_id,n&&P(E.callbackQueue[o.call_id]=n,{call_id:o.call_id}).then(function(){console.log('callbackurl:"'+n+'" called successfully')}).catch(function(e){console.log('fail callbackurl:"'+n+'" err:',e)}),o.connection&&(o.connection.onaddstream=O.bind(this)),o.iceCandidateTimeout=null,o.on("progress",function(e,n){console.debug("onProgress -> session, data",e,n);var t=!1;switch(n.originator){case"local":this.conf.ringingMute||(this.soundPlayer.setAttribute("src","assets/ms-phonebar/sounds/incoming-call.ogg"),t=!0);break;case"remote":this.putOtherCallsOnHold(e),this.soundPlayer.setAttribute("src","assets/ms-phonebar/sounds/outgoing-call.ogg"),t=!0}E.originateInProgress&&(E.originateInProgress=!1),t&&(this.soundPlayer.loop="loop",this.soundPlayer.play().catch(function(e){console.log(e.message)})),C(e).then(function(){var n=E.callbackQueue[e.call_id];n&&P(n,{uniqueid:e.uniqueid,call_id:e.call_id,number_called:e.user}).then(function(){console.log('callbackurl:"'+n+'" called successfully')}).catch(function(e){console.log('fail callbackurl:"'+n+'" err:',e)}).finally(function(){delete E.callbackQueue[e.call_id]})}).catch(function(e){console.error("Unable to retrieve voice channels",e)})}.bind(this,o)),o.on("confirmed",function(e,n){console.debug("onConfirmed -> session, data",e,n);var t=document.getElementById("div_session_"+e.id.substr(0,32));t&&$(t).scope().$broadcast("timer-start"),e.confirmed=!0,"remote"===n.originator&&e.connection&&(e.connection.onaddstream=O.bind(this),_.head(e.connection.getRemoteStreams())&&(this.remotePlayer.srcObject=_.head(e.connection.getRemoteStreams()),this.remotePlayer.play())),this.soundPlayer.pause(),this.soundPlayer.loop=null,this.putOtherCallsOnHold(e),e.autoAnswer&&(this.soundPlayer.setAttribute("src","assets/ms-phonebar/sounds/beep.ogg"),this.soundPlayer.play().catch(function(e){console.log("Unable to play autoAnswer notification",e)})),E.canGoInConference=2==E.sessions.length,C(e).catch(function(e){console.error("Unable to retrieve voice channels",e)})}.bind(this,o)),o.on("hold",function(e,n){console.debug("onHold -> session, data",e,n),"local"===n.originator&&(e.localHold=!0)}.bind(this,o)),o.on("unhold",function(e,n){console.debug("onUnhold -> session, data",e,n),"local"===n.originator&&(e.localHold=!1)}.bind(this,o)),o.on("ended",function(e,n){if(console.debug("onEnded -> session, data",e,n),E.isInConference&&_.includes(E.currentConferenceSessions,e.id)&&(w(),E.buttonClicked=!0),_.remove(this.sessions,{id:e.id}),2!==E.sessions.length&&(E.canGoInConference=!1),E.isJabraEnabled)if(0===E.sessions.length)e.localHold&&jabra.resume(),jabra.onHook(),E.jabraSession=null;else{var t=_.last(E.sessions);t.localHold?(jabra.onHook(),jabra.hold(),E.jabraSession=t):jabra.offHook()}0===E.sessions.length&&E.currentUser.voicePause&&h.user.pause({id:E.currentUser.id,type:_.startsWith(E.currentUser.pauseType,"#")?E.currentUser.pauseType.substring(1):E.currentUser.pauseType}).$promise.catch(function(e){v.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:PAUSEUSER",msg:e.status?JSON.stringify(e.data):e.toString()})})}.bind(this,o)),o.on("failed",function(e,n){if(console.debug("onFailed -> session, data",e,n),this.soundPlayer.pause(),this.soundPlayer.loop=null,e.notification&&e.notification.close(),E.isInConference&&_.includes(E.currentConferenceSessions,e.id)&&w(),E.originateInProgress&&(E.originateInProgress=!1),_.remove(this.sessions,{id:e.id}),2!==E.sessions.length&&(E.canGoInConference=!1),E.isJabraEnabled)if(0===E.sessions.length)e.localHold&&jabra.resume(),jabra.onHook(),E.jabraSession=null;else{var t=_.last(E.sessions);t.localHold?(jabra.onHook(),jabra.hold(),E.jabraSession=t):jabra.offHook()}}.bind(this,o)),o.on("icecandidate",function(e,n){console.debug("onIcecandidate -> session, data",e,n),null!==e.iceCandidateTimeout&&clearTimeout(e.iceCandidateTimeout),e.iceCandidateTimeout=setTimeout(n.ready,1e3)}.bind(this,o)),E.sessions.push(o),p(function(){u.$apply(),console.debug("onNewRTCSession -> vm_pb.sessions",E.sessions)})):I(o,486)}.bind(this)),o.on("webbar:originate",function(e){console.debug("originateHook -> payload",e);var n=e.callNumber,t=e.callerId,a=e.callbackUrl;E.conf.microphoneId?E.sessionConf.mediaConstraints.audio={deviceId:E.conf.microphoneId}:E.sessionConf.mediaConstraints.audio=!0;var i=n.replace(/ /g,"");if(i=(i=i.replace(/\(/g,"")).replace(/\)/g,"")){var s=angular.copy(E.sessionConf);s.extraHeaders=[],t&&s.extraHeaders.push("X-CID: "+t),a&&s.extraHeaders.push("X-callback-url: "+a),E.originateInProgress=!0,E.ua.call(i,s)}}.bind(this)),o.on("webbar:hangup",function(e){console.debug("hangupHook -> payload",e);var n=E.sessions;if(e.sessionId&&((n=[]).push(D(e.sessionId)),0==n.length))console.warn("call with session Id "+e.sessionId+" not found");else for(var t=0;t<n.length;t++){var a=n[t];console.log("hangupHook -> sessionToHangup",a),E.terminate(a)}}.bind(this)),o.on("webbar:answer",function(e){var n;console.debug("answerHook -> payload",e),n=e.sessionId?D(e.sessionId):_.find(E.sessions,function(e){return e.incoming&&!e.confirmed}),e.sessionId&&!n&&console.warn("call with session Id "+e.sessionId+" not found"),n&&E.answer(n)}.bind(this)),o.on("webbar:hold",function(e){console.debug("holdHook -> payload",e);var n=E.sessions;if(e.sessionId&&((n=[]).push(D(e.sessionId)),0==n.length))console.warn("call with session Id "+e.sessionId+" not found");else for(var t=0;t<n.length;t++){var a=n[t];E.hold(a)}}.bind(this)),o.on("webbar:unhold",function(e){if(console.debug("holdHook -> payload",e),e.sessionId){var n=D(e.sessionId);n?E.unhold(n):console.warn("call with session Id "+e.sessionId+" not found")}else console.error("sessionId required")}.bind(this)),o.on("webbar:transfer",function(e){if(console.debug("transferHook -> payload",e),e.sessionId)if(e.transferNumber){var n=D(e.sessionId);n?n.refer(e.transferNumber,{eventHandlers:{requestSucceeded:N(n,"requestSucceeded","top right",3e3),requestFailed:N(n,"requestFailed","top right",3e3)}}):console.warn("call with session Id "+e.sessionId+" not found")}else console.error("transferNumber required");else console.error("sessionId required")}.bind(this)),o.on("webbar:stopmonitors",function(e){if(e.agentId===E.currentUser.id){var n=_.find(E.sessions,["uniqueid",e.uniqueid]);if(!n)return;n.monitors.forEach(function(e){e.status="pause"}),n.monitor=!1}}.bind(this))}.bind(this),E.type=function(e,n){var t=e;switch(E.target||(E.target=""),n&&(E.target+=e,u.$broadcast("angucomplete-alt:changeInput","ms-target-wrap",E.target)),e){case"*":t="asterisk";break;case"#":t="pound"}E.conf.enableDtmfTone&&(E.soundPlayer.setAttribute("src","assets/ms-phonebar/sounds/dialpad/"+t+".ogg"),E.soundPlayer.play().catch(function(e){console.log(e.message)}));for(var a=0;a<E.sessions.length;a+=1)E.sessions[a].isEstablished()&&!E.sessions[a].isOnHold().local&&E.sessions[a].sendDTMF(e)},E.call=function(){if(E.target&&E.target!==E.conf.name&&E.target!==E.conf.internal){E.conf.microphoneId?E.sessionConf.mediaConstraints.audio={deviceId:E.conf.microphoneId}:E.sessionConf.mediaConstraints.audio=!0;var e=E.target.replace(/ /g,"");return m(e=(e=e.replace(/\(/g,"")).replace(/\)/g,"")).then(function(e){e&&E.ua.call(e,E.sessionConf)}).then(function(){c()})}},E.hold=function(e){console.debug("hold -> session",e),e.hold({useUpdate:!1}),E.isJabraEnabled&&(jabra.hold(),jabra.onHook())},E.refer=function(n){console.debug("refer -> session",n);var e=a.prompt().title("Transfer").textContent("Type the target").placeholder("Target").ariaLabel("Target").ok("Transfer").cancel("Cancel");a.show(e).then(function(e){return m(e)}).then(function(e){n.refer(e,{eventHandlers:{requestSucceeded:N(n,"requestSucceeded","top right",3e3),requestFailed:N(n,"requestFailed","top right",3e3)}})})},E.record=function(e){console.debug("record -> session",e),a.show({controller:"RecordDialogController",controllerAs:"vm",templateUrl:"assets/ms-phonebar/record/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{session:e,sessions:E.sessions}})},E.unhold=function(e){console.debug("unhold -> session",e),e.unhold({useUpdate:!1}),E.putOtherCallsOnHold(e),E.isJabraEnabled&&(jabra.offHook(),jabra.resume())},E.answer=T,E.terminate=I,E.selectSession=function(e){console.debug("selectSession -> session",e),E.unhold(e)},E.typeWrapper=function(e){switch(e.key.toLowerCase()){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":case"*":case"#":E.type(e.key);break;case"enter":E.call()}},E.toggleDialpad=function(){E.showDialpad=!E.showDialpad},E.referAttended=function(e){console.debug("referAttended -> session",e),a.show({controller:"ReferAttendedDialogController",controllerAs:"vm",templateUrl:"assets/ms-phonebar/referAttended/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{session:e,sessions:_.reject(E.sessions,{id:e.id}),isJabraEnabled:E.isJabraEnabled}})},E.closeDialpad=function(){E.showDialpad=!1},E.initDevice=R,E.putOtherCallsOnHold=function(e){if(console.debug("putOtherCallsOnHold -> session",e),1<E.sessions.length)for(var n=0;n<E.sessions.length;n+=1)E.sessions[n].id===e.id||E.sessions[n].isOnHold().remote||E.sessions[n].hold({useUpdate:!1})},E.targetChanged=function(e){e?/^(\w|\.|\+|#|\*|\(|\)|\s|-)*$/.test(e)?(E.target=e,u.$broadcast("angucomplete-alt:changeInput","ms-target-wrap",E.target)):E.target?u.$broadcast("angucomplete-alt:changeInput","ms-target-wrap",E.target):c():c()},E.targetSelected=function(e){e&&(E.target=e.originalObject.target,E.call(),c())},E.start3WayConf=function(){E.isInConference=!0,E.canGoInConference=!1,E.currentConferenceSessions.push(E.sessions[0].id),E.currentConferenceSessions.push(E.sessions[1].id);var e=new AudioContext,n=E.sessions[0].connection.getSenders()[0],t=E.sessions[0].connection.getReceivers()[0];t.track.addEventListener("unmute",function(){setTimeout(function(){x()},1e3)},!1);var a=E.sessions[1].connection.getSenders()[0],i=E.sessions[1].connection.getReceivers()[0];i.track.addEventListener("unmute",function(){setTimeout(function(){x()},1e3)},!1),E.sessions[0].unhold({useUpdate:!1}),E.sessions[1].unhold({useUpdate:!1}),t.track.enabled=!0,i.track.enabled=!0;var s=new MediaStream,o=e.createMediaStreamDestination();o=(e=new AudioContext).createMediaStreamDestination();var r=e.createMediaStreamSource(new MediaStream([i.track]));r.connect(o),(r=e.createMediaStreamSource(new MediaStream([n.track]))).connect(o),n.replaceTrack(o.stream.getTracks()[0]).then(function(){}),o=e.createMediaStreamDestination(),(r=e.createMediaStreamSource(new MediaStream([t.track]))).connect(o),(r=e.createMediaStreamSource(new MediaStream([a.track]))).connect(o),a.replaceTrack(o.stream.getTracks()[0]).then(function(){s.addTrack(t.track),s.addTrack(i.track);var e=document.getElementById("remote-audio");e.srcObject=s;var n=e.play();void 0!==n&&n.then(function(){}).catch(function(e){console.log(e)})})},E.patchConference=x,u.$on("webrtc::settings",function(e){a.show({controller:"SettingsController",controllerAs:"vm",templateUrl:"assets/ms-phonebar/settings/settings.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,resolve:{devices:function(){return navigator.mediaDevices.enumerateDevices()}},locals:{conf:E.conf}}).then(function(e){e&&(E.conf=e,E.initDeviceInProgress||(E.initDeviceInProgress=!0,jabra&&E.isJabraInitialized?jabra.shutdown().then(function(){E.isJabraInitialized=!1,d(E.isJabraEnabled=!1)}).catch(function(e){console.error("Unable to shutdown Jabra library",e)}):d(!1)))})}),u.$on("webrtc::logout",function(){E.ua.stop(),jabra&&E.isJabraInitialized&&jabra.shutdown(),navigator.mediaDevices.ondevicechange=function(){}}),u.$on("webrtc::call",function(e,n){console.debug("onRemoteCall -> evt, data",e,n),n.target&&(E.target=n.target,E.call())}),u.$on("webrtc::transfer",function(e,n){if(console.debug("onRemoteTransfer -> evt, data",e,n),n.target)for(var t=0;t<E.sessions.length;t+=1)if(E.sessions[t].isEstablished()&&!E.sessions[t].isOnHold().local)return m(n.target).then(function(e){e&&E.sessions[t].refer(e,{eventHandlers:{requestSucceeded:N(E.sessions[t],"requestSucceeded","top right",3e3),requestFailed:N(E.sessions[t],"requestFailed","top right",3e3)}})})}),u.$on("$destroy",function(){console.debug("$destroy event fired"),o.removeAllListeners("webbar:originate"),o.removeAllListeners("webbar:hangup"),o.removeAllListeners("webbar:answer"),o.removeAllListeners("webbar:hold"),o.removeAllListeners("webbar:unhold"),o.removeAllListeners("webbar:transfer"),o.removeAllListeners("webbar:stopmonitors")})}e.$inject=["$scope","$document","$timeout","$interval","$mdDialog","$mdToast","$window","$translate","$http","toasty","api","motNotification","Auth","socket","privacyManager"],angular.module("app.core").controller("MsPhonebarController",e).directive("msPhonebar",function(){return{restrict:"E",scope:{conf:"=",sessions:"="},require:"msPhonebar",controller:"MsPhonebarController",controllerAs:"vm_pb",bindToController:!0,templateUrl:"assets/ms-phonebar/ms-phonebar.html"}})}(),function(){"use strict";function e(n,e,t){var a=this;a.prefixes=e,a.required=t,a.closeDialog=function(e){n.hide(e)},a.keyPress=function(e){13===e.keyCode&&this.call()},a.call=function(){n.hide(a.prefix)}}e.$inject=["$mdDialog","prefixes","required"],angular.module("app.core").controller("PrefixDialogController",e)}(),function(){"use strict";function e(i){return{restrict:"C",controller:["$scope","$element",function(e,n){function t(){n.css("display","inline"),i(a,1e3)}function a(){n.css("display","none"),i(t,1e3)}t()}],replace:!0}}function n(n,i,s,e,t){var o=this;function a(n,e){console.log("startMonitor");var t=i.defer(),a=(e||n.filename.replace(/^.*[\\\/]/,"")).split(".")[0];return s.rpc.startMonitor({uniqueid:o.session.uniqueid,filename:a,format:"wav"}).$promise.then(function(e){n.filename=a+".wav",n.mixmonitorid=e.mixmonitorid,n.status="rec",o.session.monitor=!0,t.resolve(n)}).catch(function(e){t.reject(e)}),t.promise}o.title="Record",o.sessions=e,o.session=t,o.closeDialog=function(){n.hide()},o.addRecording=function(){var e=n.prompt({skipHide:!0}).title("Start new recording").textContent("Type the file name.").placeholder("File name").ariaLabel("File name").initialValue(function(){function e(){return Math.floor(65536*(1+Math.random())).toString(16).substring(1)}return e()+e()+"-"+e()+"-"+e()+"-"+e()+"-"+e()+e()+e()}()).ok("Start").cancel("Cancel");n.show(e).then(function(e){return a({},e)}).then(function(e){o.session.monitors.push(e)})},o.stop=function(n){return console.log("stopMonitor"),s.rpc.stopMonitor({uniqueid:o.session.uniqueid,mixmonitorid:n.mixmonitorid}).$promise.then(function(e){n.status="pause",o.session.monitor=_.includes(o.session.monitors,{status:"rec"})}).catch(function(e){console.error(e)})},o.start=a}e.$inject=["$timeout"],n.$inject=["$mdDialog","$q","api","sessions","session"],angular.module("app.core").directive("msBlink",e).controller("RecordDialogController",n)}(),function(){"use strict";function e(n,s,a,i,e){var o=this;function r(e,n,t,a,i){return console.debug("onTransferCallback -> session, textContent, position, delay",e,n,t,a),function(){s.show(s.simple().textContent(n).position(t).hideDelay(a)),e.terminate(),jabra&&i&&jabra.onHook(),l()}}function l(e){n.hide(e)}o.title="Refer Attended",o.sessions=a,o.session=i,o.isJabraEnabled=e,o.sessionTarget=null,a.length&&(o.target=a[0].user),o.closeDialog=l,o.transfer=function(){var e,n,t=_.find(a,function(e){if(e.user===o.target)return e});n=t.outgoing?(e=t,o.session):(e=o.session,t);n.refer(e.user,{replaces:e,eventHandlers:{requestSucceeded:r(i,"requestSucceeded","top right",3e3,o.isJabraEnabled),requestFailed:r(i,"requestFailed","top right",3e3,o.isJabraEnabled)}})}}e.$inject=["$mdDialog","$mdToast","sessions","session","isJabraEnabled"],angular.module("app.core").controller("ReferAttendedDialogController",e)}(),function(){"use strict";function e(e,s,n){var t=this;function a(e,n,t){var a;if(s[t]){if(a=_.find(e,function(e){return e.deviceId===s[t]}))return a.deviceId;var i=_.findIndex(e,function(e){return e.kind===n});if(0<=i)return e[i].deviceId}else(a=_.find(e,function(e){return e.kind===n}))&&(s[t]=a.deviceId);return s[t]||null}_.remove(n,function(e){return"audioinput"===e.kind&&("default"===e.deviceId||"communications"===e.deviceId)||"audiooutput"===e.kind&&("default"===e.deviceId||"communications"===e.deviceId)}),s.ringingId=a(n,"audiooutput","ringingId"),s.speakerId=a(n,"audiooutput","speakerId"),s.microphoneId=a(n,"audioinput","microphoneId"),s.ringingVolume=s.ringingVolume||.5,s.speakerVolume=s.speakerVolume||.5,s.microphoneVolume=s.microphoneVolume||1,s.ringingMute=s.ringingMute||!1,s.speakerMute=s.speakerMute||!1,s.microphoneMute=s.microphoneMute||!1,t.conf=angular.copy(s),t.devices=n,t.saveSettings=function(){e.hide(t.conf)},t.closeDialog=function(){e.hide()},t.isCompatibleBrowser=function(){return"chrome"===t.conf.browserName.toLowerCase()||"opera"===t.conf.browserName.toLowerCase()||"safari"===t.conf.browserName.toLowerCase()}}e.$inject=["$mdDialog","conf","devices"],angular.module("app.toolbar").controller("SettingsController",e)}(),function(){"use strict";function e(t,a){var i=this;function s(e){var n=e.key,t={param:i.query[n],resources:e.options,placeholder:e.placeholder,ngValue:e.ngValue};a.setPlaceholder(t).then(function(e){i.placeholders[n]=e})}i.pickerModels={},i.placeholders={},i.localizationMap=t.localizationMap,i.onMultiselectInit=function(e){s(e)},i.onDateRangeInit=function(e){var n=e.key;i.query[n]?i.pickerModels[n]=t.setSelectedDate(i.query[n]):i.pickerModels[n]={dateStart:null}},i.onMultiselectSelection=function(e,n){n&&(s(e),i.search())},i.onDateRangeSelection=function(e){var n=e.key;i.pickerModels[n].dateStart?!0===e.useFromToKeys?i.query[n]={from:moment(i.pickerModels[n].dateStart).utcOffset(0,!0).format(),to:moment(i.pickerModels[n].dateEnd).utcOffset(0,!0).add(23,"hours").add(59,"minutes").add(59,"seconds").format()}:i.query[n]={$gte:moment(i.pickerModels[n].dateStart).utcOffset(0,!0).format(),$lte:moment(i.pickerModels[n].dateEnd).utcOffset(0,!0).add(23,"hours").add(59,"minutes").add(59,"seconds").format()}:i.query[n]=void 0;i.search()},i.clearDate=function(e){var n=e.key;i.pickerModels[n]={dateStart:null},delete i.query[n],i.search()},i.clearSelection=function(e){var n=e.key,t=e.ngValue||"id";i.query[n]=!1===e.clearAll?[_.head(e.options)[t]]:[],s(e),i.search()},i.selectAll=function(e){var n=e.key,t=e.ngValue||"id";i.query[n]=_.map(e.options,t),s(e),i.search()}}function n(p,e){var g={localizationMap:e,setSelectedDate:function(e){var n=e.$gte?new Date(moment.utc(e.$gte).format("YYYY-MM-DD")):new Date(moment.utc(e.from).format("YYYY-MM-DD")),t=e.$lte?new Date(moment.utc(e.$lte).format("YYYY-MM-DD")):new Date(moment.utc(e.to).format("YYYY-MM-DD")),a={dateStart:new Date(n.getFullYear(),n.getMonth(),n.getDate()),dateEnd:new Date(t.getFullYear(),t.getMonth(),t.getDate())};return a.selectedTemplateName=(i=a,moment(i.dateStart).isSame(i.dateEnd)?(u=i,moment().startOf("day").isSame(u.dateStart)?g.localizationMap.Today:(m=i,moment().subtract(1,"days").startOf("day").isSame(m.dateStart)?g.localizationMap.Yesterday:p("date")(i.dateStart,"dd MMM yyyy"))):(c=i,moment().startOf("isoWeek").isSame(c.dateStart,"day")&&moment().endOf("isoWeek").isSame(c.dateEnd,"day")?g.localizationMap["This Week"]:(d=i,moment().subtract(1,"weeks").startOf("isoWeek").isSame(d.dateStart,"day")&&moment().subtract(1,"weeks").endOf("isoWeek").isSame(d.dateEnd,"day")?g.localizationMap["Last Week"]:(l=i,moment().startOf("month").isSame(l.dateStart,"day")&&moment().endOf("month").isSame(l.dateEnd,"day")?g.localizationMap["This Month"]:(r=i,moment().subtract(1,"months").startOf("month").isSame(r.dateStart,"day")&&moment().subtract(1,"months").endOf("month").isSame(r.dateEnd,"day")?g.localizationMap["Last Month"]:(o=i,moment().startOf("year").isSame(o.dateStart,"day")&&moment().endOf("year").isSame(o.dateEnd,"day")?g.localizationMap["This Year"]:(s=i,moment().subtract(1,"years").startOf("year").isSame(s.dateStart,"day")&&moment().subtract(1,"years").endOf("year").isSame(s.dateEnd,"day")?g.localizationMap["Last Year"]:p("date")(i.dateStart,"dd"+(i.dateStart.getMonth()!==i.dateEnd.getMonth()||i.dateStart.getFullYear()!==i.dateEnd.getFullYear()?" MMM":"")+(i.dateStart.getFullYear()!==i.dateEnd.getFullYear()?" yyyy":""))+" - "+p("date")(i.dateEnd,"dd MMM yyyy")))))))),a;var i,s,o,r,l,d,c,m,u}};return g}n.$inject=["$filter","dateFilterLocalizationFactory"],e.$inject=["dateRangeManager","quickFilterManager"],angular.module("app.core").directive("msQuickFilter",function(){return{restrict:"E",scope:{query:"=",filters:"=",search:"&"},controller:e,controllerAs:"vm",bindToController:!0,templateUrl:"app/core/directives/ms-quick-filter/ms-quick-filter.html"}}).factory("dateRangeManager",n)}(),function(){"use strict";angular.module("app.core").directive("msRandomClass",function(){return{restrict:"A",scope:{msRandomClass:"="},link:function(e,n){var t=e.msRandomClass[Math.floor(Math.random()*e.msRandomClass.length)];n.addClass(t)}}})}(),function(){"use strict";function e(i){return{restrict:"E",scope:{id:"=",model:"=",download:"="},replace:!0,link:function(n,e){var t=!1,a=document.createElement("audio");n.download||a.setAttribute("controlsList","nodownload"),a.setAttribute("preload","none"),a.setAttribute("controls",""),a.setAttribute("style","width: 265px;"),a.setAttribute("src"," "),a.onplay=function(e){t||(t=!0,e.preventDefault(),i[n.model||"voiceRecording"].download({id:n.id}).$promise.then(function(e){var n=[e.buffer],t=new Blob(n,{type:e.type});a.setAttribute("type",e.type),a.setAttribute("src",URL.createObjectURL(t)),a.play()}).catch(function(e){console.error(e)}))},e.append(a)}}}e.$inject=["api"],angular.module("app.core").directive("msRecording",e)}(),function(){"use strict";angular.module("app.core").directive("msResponsiveTable",function(){return{restrict:"A",link:function(e,n){var t=angular.element('<div class="ms-responsive-table-wrapper"></div>');n.after(t),t.append(n)}}})}(),function(){"use strict";function e(s,o,n,t){return{restrict:"AE",compile:function(e){if(!(t.getConfig("disableCustomScrollbars")||t.getConfig("disableCustomScrollbarsOnMobile")&&n.isMobile()))return e.addClass("ms-scroll"),function(e,n,t){var a={};function i(){PerfectScrollbar.update(n[0])}t.msScroll&&(a=e.$eval(t.msScroll)),a=angular.extend({},o.getConfig(),a),s(function(){PerfectScrollbar.initialize(n[0],a)},0),n.on("mouseenter",i),e.$watch(function(){return n.prop("scrollHeight")},function(e,n){angular.isUndefined(e)||angular.equals(e,n)||i()}),e.$watch(function(){return n.prop("scrollWidth")},function(e,n){angular.isUndefined(e)||angular.equals(e,n)||i()}),e.$on("$destroy",function(){n.off("mouseenter"),PerfectScrollbar.destroy(n[0])})}}}}e.$inject=["$timeout","msScrollConfig","msUtils","motionConfig"],angular.module("app.core").provider("msScrollConfig",function(){var n={wheelSpeed:1,wheelPropagation:!1,swipePropagation:!0,minScrollbarLength:null,maxScrollbarLength:null,useBothWheelAxes:!1,useKeyboard:!0,suppressScrollX:!1,suppressScrollY:!1,scrollXMarginOffset:0,scrollYMarginOffset:0,stopPropagationOnClick:!0};this.config=function(e){n=angular.extend({},n,e)},this.$get=function(){var e={getConfig:function(){return n}};return e}}).directive("msScroll",e)}(),function(){"use strict";function e(n,i,s,e){var o=this;function t(){angular.isArray(o.onSearch)?a(o.onSearch):o.onResultClick?(o.resultsLoading=!0,n.$parent.$eval("vm.search(query)",{query:o.query.filter}).then(function(e){a(e)}).catch(function(){a([])}).finally(function(){o.resultsLoading=!1})):o.onSearch()}function a(e){o.expanded&&(void 0===e||angular.isArray(e)||null===e)&&(o.selectedResultIndex=0,o.results=e)}function r(){o.expanded=!0,o.displayOn=!0,n.expand()}function l(e){!1!==e&&(o.query.filter=void 0,o.onResultClick?a(null):t()),o.expanded=!1,n.collapse()}function d(e){o.onResultClick&&o.onResultClick({item:e}),l()}function c(){var e=i.find(".ms-search-bar-results"),n=angular.element(e.find(".result")[o.selectedResultIndex]);if(e&&n){var t=n.position().top-8,a=n.position().top+n.outerHeight()+8;o.ignoreMouseEvents=!0,s.cancel(o.mouseEventIgnoreTimeout),o.mouseEventIgnoreTimeout=s(function(){o.ignoreMouseEvents=!1},250),e.scrollTop()>t&&e.scrollTop(t),a>e.height()+e.scrollTop()&&e.scrollTop(a-e.height())}}o.queryOptions={debounce:o.debounce||0},o.searchOnEnterKey=e.get().searchOnEnterKey||!1,o.resultsLoading=!1,o.results=null,o.selectedResultIndex=0,o.ignoreMouseEvents=!1,o.expandBar=r,o.collapseBar=l,o.blurCollapse=function(){if(!o.collapseOnBlur)return;l()},o.onKeyDown=function(e){var n=e.keyCode;-1<[27,38,40].indexOf(n)&&e.preventDefault();switch(n){case 13:if(!o.onResultClick)return t();if(!o.results)return;d(o.results[o.selectedResultIndex]);break;case 27:l();break;case 38:0<=o.selectedResultIndex-1&&(o.selectedResultIndex--,c());break;case 40:if(!o.results)return;o.selectedResultIndex+1<o.results.length&&(o.selectedResultIndex++,c())}},o.absorbEvent=function(e){e.preventDefault()},o.handleMouseenter=function(e){if(o.ignoreMouseEvents)return;o.selectedResultIndex=e},o.handleResultClick=d,n.$watch("vm.displayOn",function(e){angular.isUndefined(e)||(!0!==e||o.expanded?e||!1===o.expanded||l(!1):r())}),n.$watch("vm.query.filter",function(e,n){if(!angular.isUndefined(e)&&0!==e.length&&!angular.equals(e,n)&&!1!==o.displayOn){if(o.expanded){if(!0===o.searchOnEnterKey&&!o.onResultClick)return;if(o.minChars&&o.minChars>e.length)return}else r();t()}})}function n(a){return{restrict:"E",scope:{query:"=?",debounce:"=?",direction:"@",iconColor:"@",onSearch:"&",onResultClick:"&?",onExpand:"&?",onCollapse:"&?",collapseOnBlur:"<?",minChars:"<?",displayOn:"=?"},controller:e,controllerAs:"vm",bindToController:!0,templateUrl:"app/core/directives/ms-search-bar/ms-search-bar.html",compile:function(e){return e.addClass("ms-search-bar"),{post:function(n,t){n.collapse=function(){if(t.removeClass("expanded"),"down"===n.vm.direction){t.removeClass("down");var e=t.closest("md-toolbar");e&&e.removeClass("h-128")}a.find("body").removeClass("ms-search-bar-expanded")},n.expand=function(){if(t.addClass("expanded"),"down"===n.vm.direction){t.addClass("down");var e=t.closest("md-toolbar");e&&e.addClass("h-128")}a.find("body").addClass("ms-search-bar-expanded")}}}}}}e.$inject=["$scope","$element","$timeout","settingsManager"],n.$inject=["$document"],angular.module("app.core").controller("MsSearchBarController",e).directive("msSearchBar",n)}(),function(){"use strict";function e(e,t,i,o,r,l){var d=this;d.query="",d.queryOptions={debounce:300},d.resultsLoading=!1,d.selectedResultIndex=0,d.ignoreMouseEvents=!1,d.mobileBarActive=!1,d.results=null,d.shortcuts=[],d.sortableOptions={ghostClass:"ghost",forceFallback:!0,fallbackClass:"dragging",onSort:function(){d.saveShortcuts()}},d.populateResults=function(){for(var e=[],n=l.getFlatNavigation(),t=r.defer(),a=0;a<n.length;a++)n[a].uisref&&e.push(n[a]);if(d.query){e=e.filter(function(e){if(-1<angular.lowercase(e.title).search(angular.lowercase(d.query)))return!0});for(var i=0;i<e.length;i++){e[i].hasShortcut=!1;for(var s=0;s<d.shortcuts.length;s++)if(d.shortcuts[s]._id===e[i]._id){e[i].hasShortcut=!0;break}}}else 0<d.shortcuts.length&&(e=d.shortcuts);return d.selectedResultIndex=0,o(function(){t.resolve(e)},250),t.promise},d.loadShortcuts=function(){var e=r.defer(),n=angular.fromJson(t.get("motion.shortcuts"));angular.isUndefined(n)&&(n=[{title:"Agents",icon:"icon-account-multiple",state:"app.staff.agents",weight:5,children:[],uisref:"app.staff.agents",hasShortcut:!0},{title:"License",icon:"icon-cog",state:"app.settings.license",weight:10,children:[],uisref:"app.settings.license",hasShortcut:!0}],t.put("motion.shortcuts",angular.toJson(n)));return e.resolve(n),e.promise},d.saveShortcuts=function(){var e=r.defer();return t.put("motion.shortcuts",angular.toJson(d.shortcuts)),o(function(){e.resolve({success:!0})},250),e.promise},d.addShortcut=function(e){e.hasShortcut=!0,d.shortcuts.push(e),d.saveShortcuts()},d.removeShortcut=function(e){e.hasShortcut=!1;for(var n=0;n<d.shortcuts.length;n++)d.shortcuts[n]._id===e._id&&(d.shortcuts.splice(n,1),d.query||(0===d.shortcuts.length?d.results=null:n>=d.shortcuts.length&&(d.selectedResultIndex=d.shortcuts.length-1)));d.saveShortcuts()},d.handleResultClick=function(e){e.hasShortcut?d.removeShortcut(e):d.addShortcut(e)},d.absorbEvent=function(e){e.preventDefault()},d.handleKeydown=function(e){var n=e.keyCode;-1<[38,40].indexOf(n)&&e.preventDefault();switch(n){case 13:d.handleResultClick(d.results[d.selectedResultIndex]);break;case 38:0<=d.selectedResultIndex-1&&(d.selectedResultIndex--,d.ensureSelectedResultIsVisible());break;case 40:d.selectedResultIndex+1<d.results.length&&(d.selectedResultIndex++,d.ensureSelectedResultIsVisible())}},d.handleMouseenter=function(e){if(d.ignoreMouseEvents)return;d.selectedResultIndex=e},d.temporarilyIgnoreMouseEvents=function(){d.ignoreMouseEvents=!0,o.cancel(d.mouseEventIgnoreTimeout),d.mouseEventIgnoreTimeout=o(function(){d.ignoreMouseEvents=!1},250)},d.ensureSelectedResultIsVisible=function(){var e=i.find("#ms-shortcut-add-menu").find(".results"),n=angular.element(e.find(".result")[d.selectedResultIndex]);if(e&&n){var t=n.position().top-8,a=n.position().top+n.outerHeight()+8;d.temporarilyIgnoreMouseEvents(),e.scrollTop()>t&&e.scrollTop(t),a>e.height()+e.scrollTop()&&e.scrollTop(a-e.height())}},d.toggleMobileBar=function(){d.mobileBarActive=!d.mobileBarActive},d.loadShortcuts().then(function(e){d.shortcuts=e,0<d.shortcuts.length&&(d.results=e)}),e.$watch("MsShortcuts.query",function(e,n){angular.isUndefined(e)||angular.equals(e,n)||(d.resultsLoading=!0,d.populateResults().then(function(e){d.results=e},function(){d.results=[]}).finally(function(){d.resultsLoading=!1}))})}e.$inject=["$scope","$cookies","$document","$timeout","$q","msNavigationService"],angular.module("app.core").controller("MsShortcutsController",e).directive("msShortcuts",function(){return{restrict:"E",scope:{},require:"msShortcuts",controller:"MsShortcutsController as MsShortcuts",bindToController:{},templateUrl:"app/core/directives/ms-shortcuts/ms-shortcuts.html",compile:function(e){return e.addClass("ms-shortcuts"),function(e,n){}}}})}(),function(){"use strict";angular.module("app.core").directive("msSidenavHelper",function(){return{restrict:"A",require:"^mdSidenav",link:function(e,n,t,a){e.$watch(function(){return a.isOpen()&&!a.isLockedOpen()},function(e){angular.isUndefined(e)||(n.parent().toggleClass("full-height",e),angular.element("html").toggleClass("sidenav-open",e))})}}})}(),function(){"use strict";function e(a){return{restrict:"E",link:function(e,n){var t=e.$on("msSplashScreen::remove",function(){a.leave(n).then(function(){t(),e=n=null})})}}}e.$inject=["$animate"],angular.module("app.core").directive("msSplashScreen",e)}(),function(){"use strict";function e(e){var i=this;function n(){i.setCurrentStep(1)}function t(e){return o(e)?i.steps[e-1].scope.optionalStep:null}function a(e){return o(e)?!!i.steps[e-1].scope.hideStep:null}function s(e){return o(e)?!!t(e)||i.steps[e-1].form.$valid:null}function o(e){return!(angular.isUndefined(e)||e<1||e>i.steps.length)}i.mainForm=void 0,i.orientation="horizontal",i.steps=[],i.currentStep=void 0,i.currentStepNumber=1,i.setOrientation=function(e){i.orientation=e||"horizontal"},i.registerMainForm=function(e){i.mainForm=e},i.registerStep=function(e,n,t){var a={element:e,scope:n,form:t,stepNumber:n.step||i.steps.length+1,stepTitle:n.stepTitle,stepTitleTranslate:n.stepTitleTranslate};return i.steps.push(a),i.steps.sort(function(e,n){return e.stepNumber-n.stepNumber}),a},i.setupSteps=function(){i.setCurrentStep(i.currentStepNumber)},i.resetForm=function(){e(function(){for(var e=0;e<i.steps.length;e++)i.steps[e].form.$setPristine(),i.steps[e].form.$setUntouched();i.mainForm.$setPristine(),i.mainForm.$setUntouched(),n()})},i.setCurrentStep=function(e){if(!o(e))return;if(i.currentStepNumber=e,"horizontal"===i.orientation){for(var n=0;n<i.steps.length;n++)i.steps[n].element.hide();i.steps[i.currentStepNumber-1].element.show()}else if("vertical"===i.orientation){for(var t=0;t<i.steps.length;t++)i.steps[t].element.find(".ms-stepper-step-content").hide();i.steps[i.currentStepNumber-1].element.find(".ms-stepper-step-content").show()}},i.gotoStep=function(e){if(a(e))return;i.setCurrentStep(e)},i.gotoPreviousStep=function(){for(var e=i.currentStepNumber-1,n=e;1<=n;n--)if(!a(n)){e=n;break}i.setCurrentStep(e)},i.gotoNextStep=function(){for(var e=i.currentStepNumber+1,n=e;n<=i.steps.length;n++)if(!a(n)){e=n;break}i.setCurrentStep(e)},i.gotoFirstStep=n,i.gotoLastStep=function(){i.setCurrentStep(i.steps.length)},i.isFirstStep=function(){return 1===i.currentStepNumber},i.isLastStep=function(){return i.currentStepNumber===i.steps.length},i.isStepCurrent=function(e){return o(e)?i.currentStepNumber===e:null},i.isStepDisabled=function(e){if(!o(e))return null;for(var n=!1,t=1;t<e;t++)if(!s(t)){n=!0;break}return n},i.isStepOptional=t,i.isStepHidden=a,i.filterHiddenStep=function(e){return!a(e.stepNumber)},i.isStepValid=s,i.isStepNumberValid=o,i.isFormValid=function(){return i.mainForm.$valid}}function n(o){return{restrict:"A",scope:{},require:["form","msVerticalStepper"],priority:1001,controller:"MsStepperController as MsStepper",bindToController:{model:"=ngModel"},transclude:!0,templateUrl:"app/core/directives/ms-stepper/templates/vertical/vertical.html",compile:function(e){return e.addClass("ms-stepper"),function(e,n,t,a){var i=a[0],s=a[1];o(function(){s.setOrientation("vertical"),s.registerMainForm(i),s.setupSteps()})}}}}e.$inject=["$timeout"],n.$inject=["$timeout"],angular.module("app.core").controller("MsStepperController",e).directive("msHorizontalStepper",function(){return{restrict:"A",scope:{},require:["form","msHorizontalStepper"],priority:1001,controller:"MsStepperController as MsStepper",bindToController:{model:"=ngModel"},transclude:!0,templateUrl:"app/core/directives/ms-stepper/templates/horizontal/horizontal.html",compile:function(e){return e.addClass("ms-stepper"),function(e,n,t,a){var i=a[0],s=a[1];s.setOrientation("horizontal"),s.registerMainForm(i),s.setupSteps()}}}}).directive("msHorizontalStepperStep",function(){return{restrict:"E",require:["form","^msHorizontalStepper"],priority:1e3,scope:{step:"=?",stepTitle:"=?",stepTitleTranslate:"=?",optionalStep:"=?",hideStep:"=?"},compile:function(e){return e.addClass("ms-stepper-step"),function(e,n,t,a){var i=a[0],s=a[1];e.optionalStep=angular.isDefined(t.optionalStep),s.registerStep(n,e,i),n.hide()}}}}).directive("msVerticalStepper",n).directive("msVerticalStepperStep",function(){return{restrict:"E",require:["form","^msVerticalStepper"],priority:1e3,scope:{step:"=?",stepTitle:"=?",stepTitleTranslate:"=?",optionalStep:"=?",hideStep:"=?"},transclude:!0,templateUrl:"app/core/directives/ms-stepper/templates/vertical/step/vertical-step.html",compile:function(e){return e.addClass("ms-stepper-step"),function(e,n,t,a){var i=a[0],s=a[1];e.optionalStep=angular.isDefined(t.optionalStep),e.stepInfo=s.registerStep(n,e,i),e.MsStepper=s,n.find(".ms-stepper-step-content").hide()}}}})}(),function(){"use strict";function e(e){return{restrict:"E",scope:{},transclude:!0,controller:"MsTabScrollController",controllerAs:"vm",bindToController:!0,templateUrl:"app/core/directives/ms-tab-scroll/ms-tab-scroll.html",compile:function(e){return e.addClass("ms-tab-scroll"),function(e,n){}}}}e.$inject=["$document"],angular.module("app.core").controller("MsTabScrollController",function(){function n(){var e=document.getElementById("bar-container"),n=document.getElementById("tab-container");return n.scrollWidth>e.scrollWidth&&0==e.scrollLeft&&0==n.scrollLeft?"right":n.scrollWidth>e.scrollWidth&&n.scrollLeft>e.scrollLeft&&e.scrollWidth+n.scrollLeft>=n.scrollWidth?"left":n.scrollWidth>e.scrollWidth&&n.scrollLeft>e.scrollLeft&&e.scrollWidth+n.scrollLeft<n.scrollWidth?"both":"none"}this.onTabScroll=function(e){"left"==e?$("#tab-container").stop().animate({scrollLeft:"-=400"},1e3):$("#tab-container").stop().animate({scrollLeft:"+=400"},1e3)},this.canScroll=function(e){switch(n()){case"both":return!0;case"left":return"left"==e;case"right":return"right"==e;case"none":default:return!1}}}).directive("msTabScroll",e)}(),function(){"use strict";function e(m,u){return{scope:!0,require:"^msTimeline",compile:function(e){return e.addClass("ms-timeline-item").addClass("hidden"),function(e,t,n,a){var i=72,s=!1,o=!1,r=a.getScrollEl();!function(){t.find("ms-card")?e.$on("msCard::cardTemplateLoaded",function(e,n){var t=angular.element(n[0]);d(t).then(function(){m(function(){s=!0})})}):d(t).then(function(){m(function(){s=!0})});r.on("scroll",c),c()}();var l=e.$watch(function(){return s&&o},function(e,n){angular.equals(e,n)||e&&(t.removeClass("hidden").addClass("animate"),l())},!0);function d(e){var n=u.defer(),t=e.find("img");return 0<t.length?t.on("load",function(){n.resolve("Image is loaded")}):n.resolve("No images"),n.promise}function c(){r.scrollTop()+r.height()>t.position().top+i&&(m(function(){o=!0}),r.off("scroll",c))}}}}}e.$inject=["$timeout","$q"],angular.module("app.core").controller("MsTimelineController",function(){var n=this;n.scrollEl=void 0,n.setScrollEl=function(e){n.scrollEl=e},n.getScrollEl=function(){return n.scrollEl}}).directive("msTimeline",function(){return{scope:{msTimeline:"=?",loadMore:"&?msTimelineLoadMore"},controller:"MsTimelineController",compile:function(e){return e.addClass("ms-timeline"),function(e,n,t,a){var i=angular.element('<div class="ms-timeline-loader md-accent-bg md-whiteframe-4dp"><span class="spinner animate-rotate"></span></div>');n.append(i);var s={scrollEl:"#content"};s=angular.extend(s,e.msTimeline,{});var o=angular.element(s.scrollEl);a.setScrollEl(o);var r=144;function l(){o.scrollTop()+o.height()+r>i.position().top&&(i.addClass("show"),c(),e.loadMore&&e.loadMore().then(function(){i.removeClass("show"),d()},function(){i.remove()}))}function d(){o.on("scroll",l)}function c(){o.off("scroll",l)}d(),e.$on("$destroy",function(){c()})}}}}).directive("msTimelineItem",e)}(),function(){"use strict";function e(a,e,n,i,t){var r=this;function s(){!function(){r.millis=l().diff(moment(r.startingTime));var e=moment.duration(r.millis),n=e.seconds(),t=e.minutes(),a=e.hours(),i=e.days(),s=e.months(),o=e.years();r.seconds=n<10?"0"+n:n,r.minutes=t<10?"0"+t:t,r.hours=a<10?"0"+a:a,r.days=i<10?"0"+i:i,r.months=s<10?"0"+s:s,r.years=o<10?"0"+o:o,r.timer=0<r.days?r.days+"d ":r.hours+":"+r.minutes+":"+r.seconds}(),r.timeoutId=setTimeout(function(){s(),a.$digest()},r.interval)}function l(e){var n=(e||moment()).utcOffset(a.serverDateOffset).format("YYYY-MM-DD HH:mm:ss");return moment(n)}function o(){n(function(n,t){try{if(a.serverDateOffset)return void n(l());i.setting.getDate().$promise.then(function(e){a.serverDateOffset=e.offset,n(moment(e.now))})}catch(e){t(e)}}).then(function(e){var n=r.startTime?moment(r.startTime):void 0;r.startTime?n.isAfter(e,"hour")||n.isBefore(e,"hour")?r.startingTime=l(n):r.startingTime=n:r.startingTime=e,s()}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.setting.getDate",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}o(),a.$watch("vm.startTime",function(e,n){angular.isUndefined(e)||0!==e.length&&(angular.equals(e,n)||o())}),a.$on("timer-start",function(){r.startTime=void 0,o()}),e.bind("$destroy",function(){r.timeoutId&&clearTimeout(r.timeoutId)})}e.$inject=["$scope","$element","$q","api","toasty"],angular.module("app.core").directive("timer",function(){return{restrict:"EA",replace:!1,scope:{startTime:"=?",interval:"=?"},template:"<span ng-cloak>{{ vm.timer }}</span>",compile:function(){return{pre:function(e,n,t){e.interval=t.interval||1e3}}},controller:e,controllerAs:"vm",bindToController:!0}})}(),function(){"use strict";angular.module("app.core").directive("msTimezone",function(){return{restrict:"E",scope:{ngModel:"="},controller:["$scope",function(e){e.timezone=[{name:"Europe/Andorra",utcOffset:60,offsetStr:"+01:00",countries:["AD"]},{name:"Asia/Dubai",utcOffset:240,offsetStr:"+04:00",countries:["AE","OM"]},{name:"Asia/Kabul",utcOffset:270,offsetStr:"+04:30",countries:["AF"]},{name:"Europe/Tirane",utcOffset:60,offsetStr:"+01:00",countries:["AL"]},{name:"Asia/Yerevan",utcOffset:240,offsetStr:"+04:00",countries:["AM"]},{name:"Antarctica/Rothera",utcOffset:-180,offsetStr:"-03:00",countries:["AQ"]},{name:"Antarctica/Palmer",utcOffset:-180,offsetStr:"-03:00",countries:["AQ"]},{name:"Antarctica/Mawson",utcOffset:300,offsetStr:"+05:00",countries:["AQ"]},{name:"Antarctica/Davis",utcOffset:420,offsetStr:"+07:00",countries:["AQ"]},{name:"Antarctica/Casey",utcOffset:480,offsetStr:"+08:00",countries:["AQ"]},{name:"Antarctica/Vostok",utcOffset:360,offsetStr:"+06:00",countries:["AQ"]},{name:"Antarctica/DumontDUrville",utcOffset:600,offsetStr:"+10:00",countries:["AQ"]},{name:"Antarctica/Syowa",utcOffset:180,offsetStr:"+03:00",countries:["AQ"]},{name:"Antarctica/Troll",utcOffset:0,offsetStr:"+00:00",countries:["AQ"]},{name:"America/Argentina/Buenos_Aires",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Cordoba",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Salta",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Jujuy",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Tucuman",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Catamarca",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/La_Rioja",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/San_Juan",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Mendoza",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/San_Luis",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Rio_Gallegos",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Ushuaia",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"Pacific/Pago_Pago",utcOffset:-660,offsetStr:"-11:00",countries:["AS","UM"]},{name:"Europe/Vienna",utcOffset:60,offsetStr:"+01:00",countries:["AT"]},{name:"Australia/Lord_Howe",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},{name:"Antarctica/Macquarie",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},{name:"Australia/Hobart",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},{name:"Australia/Currie",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},{name:"Australia/Melbourne",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},{name:"Australia/Sydney",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},{name:"Australia/Broken_Hill",utcOffset:630,offsetStr:"+10:30",countries:["AU"]},{name:"Australia/Brisbane",utcOffset:600,offsetStr:"+10:00",countries:["AU"]},{name:"Australia/Lindeman",utcOffset:600,offsetStr:"+10:00",countries:["AU"]},{name:"Australia/Adelaide",utcOffset:630,offsetStr:"+10:30",countries:["AU"]},{name:"Australia/Darwin",utcOffset:570,offsetStr:"+09:30",countries:["AU"]},{name:"Australia/Perth",utcOffset:480,offsetStr:"+08:00",countries:["AU"]},{name:"Australia/Eucla",utcOffset:525,offsetStr:"+08:45",countries:["AU"]},{name:"Asia/Baku",utcOffset:240,offsetStr:"+04:00",countries:["AZ"]},{name:"America/Barbados",utcOffset:-240,offsetStr:"-04:00",countries:["BB"]},{name:"Asia/Dhaka",utcOffset:360,offsetStr:"+06:00",countries:["BD"]},{name:"Europe/Brussels",utcOffset:60,offsetStr:"+01:00",countries:["BE"]},{name:"Europe/Sofia",utcOffset:120,offsetStr:"+02:00",countries:["BG"]},{name:"Atlantic/Bermuda",utcOffset:-240,offsetStr:"-04:00",countries:["BM"]},{name:"Asia/Brunei",utcOffset:480,offsetStr:"+08:00",countries:["BN"]},{name:"America/La_Paz",utcOffset:-240,offsetStr:"-04:00",countries:["BO"]},{name:"America/Noronha",utcOffset:-120,offsetStr:"-02:00",countries:["BR"]},{name:"America/Belem",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Fortaleza",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Recife",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Araguaina",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Maceio",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Bahia",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Sao_Paulo",utcOffset:-120,offsetStr:"-02:00",countries:["BR"]},{name:"America/Campo_Grande",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Cuiaba",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Santarem",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Porto_Velho",utcOffset:-240,offsetStr:"-04:00",countries:["BR"]},{name:"America/Boa_Vista",utcOffset:-240,offsetStr:"-04:00",countries:["BR"]},{name:"America/Manaus",utcOffset:-240,offsetStr:"-04:00",countries:["BR"]},{name:"America/Eirunepe",utcOffset:-300,offsetStr:"-05:00",countries:["BR"]},{name:"America/Rio_Branco",utcOffset:-300,offsetStr:"-05:00",countries:["BR"]},{name:"America/Nassau",utcOffset:-300,offsetStr:"-05:00",countries:["BS"]},{name:"Asia/Thimphu",utcOffset:360,offsetStr:"+06:00",countries:["BT"]},{name:"Europe/Minsk",utcOffset:180,offsetStr:"+03:00",countries:["BY"]},{name:"America/Belize",utcOffset:-360,offsetStr:"-06:00",countries:["BZ"]},{name:"America/St_Johns",utcOffset:-210,offsetStr:"-03:30",countries:["CA"]},{name:"America/Halifax",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},{name:"America/Glace_Bay",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},{name:"America/Moncton",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},{name:"America/Goose_Bay",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},{name:"America/Blanc-Sablon",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},{name:"America/Toronto",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},{name:"America/Nipigon",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},{name:"America/Thunder_Bay",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},{name:"America/Iqaluit",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},{name:"America/Pangnirtung",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},{name:"America/Resolute",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},{name:"America/Atikokan",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},{name:"America/Rankin_Inlet",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},{name:"America/Winnipeg",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},{name:"America/Rainy_River",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},{name:"America/Regina",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},{name:"America/Swift_Current",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},{name:"America/Edmonton",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Cambridge_Bay",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Yellowknife",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Inuvik",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Creston",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Dawson_Creek",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Fort_Nelson",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Vancouver",utcOffset:-480,offsetStr:"-08:00",countries:["CA"]},{name:"America/Whitehorse",utcOffset:-480,offsetStr:"-08:00",countries:["CA"]},{name:"America/Dawson",utcOffset:-480,offsetStr:"-08:00",countries:["CA"]},{name:"Indian/Cocos",utcOffset:390,offsetStr:"+06:30",countries:["CC"]},{name:"Europe/Zurich",utcOffset:60,offsetStr:"+01:00",countries:["CH","DE","LI"]},{name:"Africa/Abidjan",utcOffset:0,offsetStr:"+00:00",countries:["CI","BF","GM","GN","ML","MR","SH","SL","SN","ST","TG"]},{name:"Pacific/Rarotonga",utcOffset:-600,offsetStr:"-10:00",countries:["CK"]},{name:"America/Santiago",utcOffset:-180,offsetStr:"-03:00",countries:["CL"]},{name:"Pacific/Easter",utcOffset:-300,offsetStr:"-05:00",countries:["CL"]},{name:"Asia/Shanghai",utcOffset:480,offsetStr:"+08:00",countries:["CN"]},{name:"Asia/Urumqi",utcOffset:360,offsetStr:"+06:00",countries:["CN"]},{name:"America/Bogota",utcOffset:-300,offsetStr:"-05:00",countries:["CO"]},{name:"America/Costa_Rica",utcOffset:-360,offsetStr:"-06:00",countries:["CR"]},{name:"America/Havana",utcOffset:-300,offsetStr:"-05:00",countries:["CU"]},{name:"Atlantic/Cape_Verde",utcOffset:-60,offsetStr:"-01:00",countries:["CV"]},{name:"America/Curacao",utcOffset:-240,offsetStr:"-04:00",countries:["CW","AW","BQ","SX"]},{name:"Indian/Christmas",utcOffset:420,offsetStr:"+07:00",countries:["CX"]},{name:"Asia/Nicosia",utcOffset:120,offsetStr:"+02:00",countries:["CY"]},{name:"Europe/Prague",utcOffset:60,offsetStr:"+01:00",countries:["CZ","SK"]},{name:"Europe/Berlin",utcOffset:60,offsetStr:"+01:00",countries:["DE"]},{name:"Europe/Copenhagen",utcOffset:60,offsetStr:"+01:00",countries:["DK"]},{name:"America/Santo_Domingo",utcOffset:-240,offsetStr:"-04:00",countries:["DO"]},{name:"Africa/Algiers",utcOffset:60,offsetStr:"+01:00",countries:["DZ"]},{name:"America/Guayaquil",utcOffset:-300,offsetStr:"-05:00",countries:["EC"]},{name:"Pacific/Galapagos",utcOffset:-360,offsetStr:"-06:00",countries:["EC"]},{name:"Europe/Tallinn",utcOffset:120,offsetStr:"+02:00",countries:["EE"]},{name:"Africa/Cairo",utcOffset:120,offsetStr:"+02:00",countries:["EG"]},{name:"Africa/El_Aaiun",utcOffset:0,offsetStr:"+00:00",countries:["EH"]},{name:"Europe/Madrid",utcOffset:60,offsetStr:"+01:00",countries:["ES"]},{name:"Africa/Ceuta",utcOffset:60,offsetStr:"+01:00",countries:["ES"]},{name:"Atlantic/Canary",utcOffset:0,offsetStr:"+00:00",countries:["ES"]},{name:"Europe/Helsinki",utcOffset:120,offsetStr:"+02:00",countries:["FI","AX"]},{name:"Pacific/Fiji",utcOffset:720,offsetStr:"+12:00",countries:["FJ"]},{name:"Atlantic/Stanley",utcOffset:-180,offsetStr:"-03:00",countries:["FK"]},{name:"Pacific/Chuuk",utcOffset:600,offsetStr:"+10:00",countries:["FM"]},{name:"Pacific/Pohnpei",utcOffset:660,offsetStr:"+11:00",countries:["FM"]},{name:"Pacific/Kosrae",utcOffset:660,offsetStr:"+11:00",countries:["FM"]},{name:"Atlantic/Faroe",utcOffset:0,offsetStr:"+00:00",countries:["FO"]},{name:"Europe/Paris",utcOffset:60,offsetStr:"+01:00",countries:["FR"]},{name:"Europe/London",utcOffset:0,offsetStr:"+00:00",countries:["GB","GG","IM","JE"]},{name:"Asia/Tbilisi",utcOffset:240,offsetStr:"+04:00",countries:["GE"]},{name:"America/Cayenne",utcOffset:-180,offsetStr:"-03:00",countries:["GF"]},{name:"Africa/Accra",utcOffset:0,offsetStr:"+00:00",countries:["GH"]},{name:"Europe/Gibraltar",utcOffset:60,offsetStr:"+01:00",countries:["GI"]},{name:"America/Godthab",utcOffset:-180,offsetStr:"-03:00",countries:["GL"]},{name:"America/Danmarkshavn",utcOffset:0,offsetStr:"+00:00",countries:["GL"]},{name:"America/Scoresbysund",utcOffset:-60,offsetStr:"-01:00",countries:["GL"]},{name:"America/Thule",utcOffset:-240,offsetStr:"-04:00",countries:["GL"]},{name:"Europe/Athens",utcOffset:120,offsetStr:"+02:00",countries:["GR"]},{name:"Atlantic/South_Georgia",utcOffset:-120,offsetStr:"-02:00",countries:["GS"]},{name:"America/Guatemala",utcOffset:-360,offsetStr:"-06:00",countries:["GT"]},{name:"Pacific/Guam",utcOffset:600,offsetStr:"+10:00",countries:["GU","MP"]},{name:"Africa/Bissau",utcOffset:0,offsetStr:"+00:00",countries:["GW"]},{name:"America/Guyana",utcOffset:-240,offsetStr:"-04:00",countries:["GY"]},{name:"Asia/Hong_Kong",utcOffset:480,offsetStr:"+08:00",countries:["HK"]},{name:"America/Tegucigalpa",utcOffset:-360,offsetStr:"-06:00",countries:["HN"]},{name:"America/Port-au-Prince",utcOffset:-300,offsetStr:"-05:00",countries:["HT"]},{name:"Europe/Budapest",utcOffset:60,offsetStr:"+01:00",countries:["HU"]},{name:"Asia/Jakarta",utcOffset:420,offsetStr:"+07:00",countries:["ID"]},{name:"Asia/Pontianak",utcOffset:420,offsetStr:"+07:00",countries:["ID"]},{name:"Asia/Makassar",utcOffset:480,offsetStr:"+08:00",countries:["ID"]},{name:"Asia/Jayapura",utcOffset:540,offsetStr:"+09:00",countries:["ID"]},{name:"Europe/Dublin",utcOffset:0,offsetStr:"+00:00",countries:["IE"]},{name:"Asia/Jerusalem",utcOffset:120,offsetStr:"+02:00",countries:["IL"]},{name:"Asia/Kolkata",utcOffset:330,offsetStr:"+05:30",countries:["IN"]},{name:"Indian/Chagos",utcOffset:360,offsetStr:"+06:00",countries:["IO"]},{name:"Asia/Baghdad",utcOffset:180,offsetStr:"+03:00",countries:["IQ"]},{name:"Asia/Tehran",utcOffset:210,offsetStr:"+03:30",countries:["IR"]},{name:"Atlantic/Reykjavik",utcOffset:0,offsetStr:"+00:00",countries:["IS"]},{name:"Europe/Rome",utcOffset:60,offsetStr:"+01:00",countries:["IT","SM","VA"]},{name:"America/Jamaica",utcOffset:-300,offsetStr:"-05:00",countries:["JM"]},{name:"Asia/Amman",utcOffset:120,offsetStr:"+02:00",countries:["JO"]},{name:"Asia/Tokyo",utcOffset:540,offsetStr:"+09:00",countries:["JP"]},{name:"Africa/Nairobi",utcOffset:180,offsetStr:"+03:00",countries:["KE","DJ","ER","ET","KM","MG","SO","TZ","UG","YT"]},{name:"Asia/Bishkek",utcOffset:360,offsetStr:"+06:00",countries:["KG"]},{name:"Pacific/Tarawa",utcOffset:720,offsetStr:"+12:00",countries:["KI"]},{name:"Pacific/Enderbury",utcOffset:780,offsetStr:"+13:00",countries:["KI"]},{name:"Pacific/Kiritimati",utcOffset:840,offsetStr:"+14:00",countries:["KI"]},{name:"Asia/Pyongyang",utcOffset:510,offsetStr:"+08:30",countries:["KP"]},{name:"Asia/Seoul",utcOffset:540,offsetStr:"+09:00",countries:["KR"]},{name:"America/Cayman",utcOffset:-300,offsetStr:"-05:00",countries:["KY"]},{name:"Asia/Almaty",utcOffset:360,offsetStr:"+06:00",countries:["KZ"]},{name:"Asia/Qyzylorda",utcOffset:360,offsetStr:"+06:00",countries:["KZ"]},{name:"Asia/Aqtobe",utcOffset:300,offsetStr:"+05:00",countries:["KZ"]},{name:"Asia/Aqtau",utcOffset:300,offsetStr:"+05:00",countries:["KZ"]},{name:"Asia/Oral",utcOffset:300,offsetStr:"+05:00",countries:["KZ"]},{name:"Asia/Beirut",utcOffset:120,offsetStr:"+02:00",countries:["LB"]},{name:"Asia/Colombo",utcOffset:330,offsetStr:"+05:30",countries:["LK"]},{name:"Africa/Monrovia",utcOffset:0,offsetStr:"+00:00",countries:["LR"]},{name:"Europe/Vilnius",utcOffset:120,offsetStr:"+02:00",countries:["LT"]},{name:"Europe/Luxembourg",utcOffset:60,offsetStr:"+01:00",countries:["LU"]},{name:"Europe/Riga",utcOffset:120,offsetStr:"+02:00",countries:["LV"]},{name:"Africa/Tripoli",utcOffset:120,offsetStr:"+02:00",countries:["LY"]},{name:"Africa/Casablanca",utcOffset:0,offsetStr:"+00:00",countries:["MA"]},{name:"Europe/Monaco",utcOffset:60,offsetStr:"+01:00",countries:["MC"]},{name:"Europe/Chisinau",utcOffset:120,offsetStr:"+02:00",countries:["MD"]},{name:"Pacific/Majuro",utcOffset:720,offsetStr:"+12:00",countries:["MH"]},{name:"Pacific/Kwajalein",utcOffset:720,offsetStr:"+12:00",countries:["MH"]},{name:"Asia/Rangoon",utcOffset:390,offsetStr:"+06:30",countries:["MM"]},{name:"Asia/Ulaanbaatar",utcOffset:480,offsetStr:"+08:00",countries:["MN"]},{name:"Asia/Hovd",utcOffset:420,offsetStr:"+07:00",countries:["MN"]},{name:"Asia/Choibalsan",utcOffset:480,offsetStr:"+08:00",countries:["MN"]},{name:"Asia/Macau",utcOffset:480,offsetStr:"+08:00",countries:["MO"]},{name:"America/Martinique",utcOffset:-240,offsetStr:"-04:00",countries:["MQ"]},{name:"Europe/Malta",utcOffset:60,offsetStr:"+01:00",countries:["MT"]},{name:"Indian/Mauritius",utcOffset:240,offsetStr:"+04:00",countries:["MU"]},{name:"Indian/Maldives",utcOffset:300,offsetStr:"+05:00",countries:["MV"]},{name:"America/Mexico_City",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},{name:"America/Cancun",utcOffset:-300,offsetStr:"-05:00",countries:["MX"]},{name:"America/Merida",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},{name:"America/Monterrey",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},{name:"America/Matamoros",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},{name:"America/Mazatlan",utcOffset:-420,offsetStr:"-07:00",countries:["MX"]},{name:"America/Chihuahua",utcOffset:-420,offsetStr:"-07:00",countries:["MX"]},{name:"America/Ojinaga",utcOffset:-420,offsetStr:"-07:00",countries:["MX"]},{name:"America/Hermosillo",utcOffset:-420,offsetStr:"-07:00",countries:["MX"]},{name:"America/Tijuana",utcOffset:-480,offsetStr:"-08:00",countries:["MX"]},{name:"America/Santa_Isabel",utcOffset:-480,offsetStr:"-08:00",countries:["MX"]},{name:"America/Bahia_Banderas",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},{name:"Asia/Kuala_Lumpur",utcOffset:480,offsetStr:"+08:00",countries:["MY"]},{name:"Asia/Kuching",utcOffset:480,offsetStr:"+08:00",countries:["MY"]},{name:"Africa/Maputo",utcOffset:120,offsetStr:"+02:00",countries:["MZ","BI","BW","CD","MW","RW","ZM","ZW"]},{name:"Africa/Windhoek",utcOffset:120,offsetStr:"+02:00",countries:["NA"]},{name:"Pacific/Noumea",utcOffset:660,offsetStr:"+11:00",countries:["NC"]},{name:"Pacific/Norfolk",utcOffset:660,offsetStr:"+11:00",countries:["NF"]},{name:"Africa/Lagos",utcOffset:60,offsetStr:"+01:00",countries:["NG","AO","BJ","CD","CF","CG","CM","GA","GQ","NE"]},{name:"America/Managua",utcOffset:-360,offsetStr:"-06:00",countries:["NI"]},{name:"Europe/Amsterdam",utcOffset:60,offsetStr:"+01:00",countries:["NL"]},{name:"Europe/Oslo",utcOffset:60,offsetStr:"+01:00",countries:["NO","SJ"]},{name:"Asia/Kathmandu",utcOffset:345,offsetStr:"+05:45",countries:["NP"]},{name:"Pacific/Nauru",utcOffset:720,offsetStr:"+12:00",countries:["NR"]},{name:"Pacific/Niue",utcOffset:-660,offsetStr:"-11:00",countries:["NU"]},{name:"Pacific/Auckland",utcOffset:780,offsetStr:"+13:00",countries:["NZ","AQ"]},{name:"Pacific/Chatham",utcOffset:825,offsetStr:"+13:45",countries:["NZ"]},{name:"America/Panama",utcOffset:-300,offsetStr:"-05:00",countries:["PA"]},{name:"America/Lima",utcOffset:-300,offsetStr:"-05:00",countries:["PE"]},{name:"Pacific/Tahiti",utcOffset:-600,offsetStr:"-10:00",countries:["PF"]},{name:"Pacific/Marquesas",utcOffset:-570,offsetStr:"-09:30",countries:["PF"]},{name:"Pacific/Gambier",utcOffset:-540,offsetStr:"-09:00",countries:["PF"]},{name:"Pacific/Port_Moresby",utcOffset:600,offsetStr:"+10:00",countries:["PG"]},{name:"Pacific/Bougainville",utcOffset:660,offsetStr:"+11:00",countries:["PG"]},{name:"Asia/Manila",utcOffset:480,offsetStr:"+08:00",countries:["PH"]},{name:"Asia/Karachi",utcOffset:300,offsetStr:"+05:00",countries:["PK"]},{name:"Europe/Warsaw",utcOffset:60,offsetStr:"+01:00",countries:["PL"]},{name:"America/Miquelon",utcOffset:-180,offsetStr:"-03:00",countries:["PM"]},{name:"Pacific/Pitcairn",utcOffset:-480,offsetStr:"-08:00",countries:["PN"]},{name:"America/Puerto_Rico",utcOffset:-240,offsetStr:"-04:00",countries:["PR"]},{name:"Asia/Gaza",utcOffset:120,offsetStr:"+02:00",countries:["PS"]},{name:"Asia/Hebron",utcOffset:120,offsetStr:"+02:00",countries:["PS"]},{name:"Europe/Lisbon",utcOffset:0,offsetStr:"+00:00",countries:["PT"]},{name:"Atlantic/Madeira",utcOffset:0,offsetStr:"+00:00",countries:["PT"]},{name:"Atlantic/Azores",utcOffset:-60,offsetStr:"-01:00",countries:["PT"]},{name:"Pacific/Palau",utcOffset:540,offsetStr:"+09:00",countries:["PW"]},{name:"America/Asuncion",utcOffset:-180,offsetStr:"-03:00",countries:["PY"]},{name:"Asia/Qatar",utcOffset:180,offsetStr:"+03:00",countries:["QA","BH"]},{name:"Indian/Reunion",utcOffset:240,offsetStr:"+04:00",countries:["RE","TF"]},{name:"Europe/Bucharest",utcOffset:120,offsetStr:"+02:00",countries:["RO"]},{name:"Europe/Belgrade",utcOffset:60,offsetStr:"+01:00",countries:["RS","BA","HR","ME","MK","SI"]},{name:"Europe/Kaliningrad",utcOffset:120,offsetStr:"+02:00",countries:["RU"]},{name:"Europe/Moscow",utcOffset:180,offsetStr:"+03:00",countries:["RU"]},{name:"Europe/Simferopol",utcOffset:180,offsetStr:"+03:00",countries:["RU"]},{name:"Europe/Volgograd",utcOffset:180,offsetStr:"+03:00",countries:["RU"]},{name:"Europe/Samara",utcOffset:240,offsetStr:"+04:00",countries:["RU"]},{name:"Asia/Yekaterinburg",utcOffset:300,offsetStr:"+05:00",countries:["RU"]},{name:"Asia/Omsk",utcOffset:360,offsetStr:"+06:00",countries:["RU"]},{name:"Asia/Novosibirsk",utcOffset:360,offsetStr:"+06:00",countries:["RU"]},{name:"Asia/Novokuznetsk",utcOffset:420,offsetStr:"+07:00",countries:["RU"]},{name:"Asia/Krasnoyarsk",utcOffset:420,offsetStr:"+07:00",countries:["RU"]},{name:"Asia/Irkutsk",utcOffset:480,offsetStr:"+08:00",countries:["RU"]},{name:"Asia/Chita",utcOffset:480,offsetStr:"+08:00",countries:["RU"]},{name:"Asia/Yakutsk",utcOffset:540,offsetStr:"+09:00",countries:["RU"]},{name:"Asia/Khandyga",utcOffset:540,offsetStr:"+09:00",countries:["RU"]},{name:"Asia/Vladivostok",utcOffset:600,offsetStr:"+10:00",countries:["RU"]},{name:"Asia/Sakhalin",utcOffset:600,offsetStr:"+10:00",countries:["RU"]},{name:"Asia/Ust-Nera",utcOffset:600,offsetStr:"+10:00",countries:["RU"]},{name:"Asia/Magadan",utcOffset:600,offsetStr:"+10:00",countries:["RU"]},{name:"Asia/Srednekolymsk",utcOffset:660,offsetStr:"+11:00",countries:["RU"]},{name:"Asia/Kamchatka",utcOffset:720,offsetStr:"+12:00",countries:["RU"]},{name:"Asia/Anadyr",utcOffset:720,offsetStr:"+12:00",countries:["RU"]},{name:"Asia/Riyadh",utcOffset:180,offsetStr:"+03:00",countries:["SA","KW","YE"]},{name:"Pacific/Guadalcanal",utcOffset:660,offsetStr:"+11:00",countries:["SB"]},{name:"Indian/Mahe",utcOffset:240,offsetStr:"+04:00",countries:["SC"]},{name:"Africa/Khartoum",utcOffset:180,offsetStr:"+03:00",countries:["SD","SS"]},{name:"Europe/Stockholm",utcOffset:60,offsetStr:"+01:00",countries:["SE"]},{name:"Asia/Singapore",utcOffset:480,offsetStr:"+08:00",countries:["SG"]},{name:"America/Paramaribo",utcOffset:-180,offsetStr:"-03:00",countries:["SR"]},{name:"America/El_Salvador",utcOffset:-360,offsetStr:"-06:00",countries:["SV"]},{name:"Asia/Damascus",utcOffset:120,offsetStr:"+02:00",countries:["SY"]},{name:"America/Grand_Turk",utcOffset:-240,offsetStr:"-04:00",countries:["TC"]},{name:"Africa/Ndjamena",utcOffset:60,offsetStr:"+01:00",countries:["TD"]},{name:"Indian/Kerguelen",utcOffset:300,offsetStr:"+05:00",countries:["TF"]},{name:"Asia/Bangkok",utcOffset:420,offsetStr:"+07:00",countries:["TH","KH","LA","VN"]},{name:"Asia/Dushanbe",utcOffset:300,offsetStr:"+05:00",countries:["TJ"]},{name:"Pacific/Fakaofo",utcOffset:780,offsetStr:"+13:00",countries:["TK"]},{name:"Asia/Dili",utcOffset:540,offsetStr:"+09:00",countries:["TL"]},{name:"Asia/Ashgabat",utcOffset:300,offsetStr:"+05:00",countries:["TM"]},{name:"Africa/Tunis",utcOffset:60,offsetStr:"+01:00",countries:["TN"]},{name:"Pacific/Tongatapu",utcOffset:780,offsetStr:"+13:00",countries:["TO"]},{name:"Europe/Istanbul",utcOffset:120,offsetStr:"+02:00",countries:["TR"]},{name:"America/Port_of_Spain",utcOffset:-240,offsetStr:"-04:00",countries:["TT","AG","AI","BL","DM","GD","GP","KN","LC","MF","MS","VC","VG","VI"]},{name:"Pacific/Funafuti",utcOffset:720,offsetStr:"+12:00",countries:["TV"]},{name:"Asia/Taipei",utcOffset:480,offsetStr:"+08:00",countries:["TW"]},{name:"Europe/Kiev",utcOffset:120,offsetStr:"+02:00",countries:["UA"]},{name:"Europe/Uzhgorod",utcOffset:120,offsetStr:"+02:00",countries:["UA"]},{name:"Europe/Zaporozhye",utcOffset:120,offsetStr:"+02:00",countries:["UA"]},{name:"Pacific/Wake",utcOffset:720,offsetStr:"+12:00",countries:["UM"]},{name:"America/New_York",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Detroit",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Kentucky/Louisville",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Kentucky/Monticello",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Indiana/Indianapolis",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Indiana/Vincennes",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Indiana/Winamac",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Indiana/Marengo",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Indiana/Petersburg",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Indiana/Vevay",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Chicago",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/Indiana/Tell_City",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/Indiana/Knox",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/Menominee",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/North_Dakota/Center",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/North_Dakota/New_Salem",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/North_Dakota/Beulah",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/Denver",utcOffset:-420,offsetStr:"-07:00",countries:["US"]},{name:"America/Boise",utcOffset:-420,offsetStr:"-07:00",countries:["US"]},{name:"America/Phoenix",utcOffset:-420,offsetStr:"-07:00",countries:["US"]},{name:"America/Los_Angeles",utcOffset:-480,offsetStr:"-08:00",countries:["US"]},{name:"America/Metlakatla",utcOffset:-480,offsetStr:"-08:00",countries:["US"]},{name:"America/Anchorage",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},{name:"America/Juneau",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},{name:"America/Sitka",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},{name:"America/Yakutat",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},{name:"America/Nome",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},{name:"America/Adak",utcOffset:-600,offsetStr:"-10:00",countries:["US"]},{name:"Pacific/Honolulu",utcOffset:-600,offsetStr:"-10:00",countries:["US","UM"]},{name:"America/Montevideo",utcOffset:-180,offsetStr:"-03:00",countries:["UY"]},{name:"Asia/Samarkand",utcOffset:300,offsetStr:"+05:00",countries:["UZ"]},{name:"Asia/Tashkent",utcOffset:300,offsetStr:"+05:00",countries:["UZ"]},{name:"America/Caracas",utcOffset:-270,offsetStr:"-04:30",countries:["VE"]},{name:"Asia/Ho_Chi_Minh",utcOffset:420,offsetStr:"+07:00",countries:["VN"]},{name:"Pacific/Efate",utcOffset:660,offsetStr:"+11:00",countries:["VU"]},{name:"Pacific/Wallis",utcOffset:720,offsetStr:"+12:00",countries:["WF"]},{name:"Pacific/Apia",utcOffset:840,offsetStr:"+14:00",countries:["WS"]},{name:"Africa/Johannesburg",utcOffset:120,offsetStr:"+02:00",countries:["ZA","LS","SZ"]}]}],templateUrl:"app/core/directives/ms-timezone/ms-timezone.html"}})}(),function(){"use strict";angular.module("app.core").controller("MsWidgetEngineCounterController",function(){var a=this;a.filter=[],a.filtered=!1,a.fontSize=20,a.getCount=function(e){var n=0;if(e){a.fontSize=e.attrs[2]&&e.attrs[2].value?parseInt(e.attrs[2].value)-parseInt(e.attrs[2].value)%2:20,e.attrs[1].value&&e.attrs[1].value.length?(a.filtered=!0,a.filter=_.intersection(e.voiceQueuesSelected,e.attrs[1].value)):(a.filtered=!1,a.filter=e.voiceQueuesSelected);for(var t=0;t<e.voiceQueues.rows.length;t+=1)_.includes(a.filter,e.voiceQueues.rows[t].id)&&(n+=e.voiceQueues.rows[t][e.attrs[0].value]?parseInt(e.voiceQueues.rows[t][e.attrs[0].value]):0)}return n}})}(),function(){"use strict";function e(o,e){var r=this;r.filter=[],r.filtered=!1,r.properties=[],r.multiBarChart={labels:["QUEUE_NAME"],series:["TOTAL"],data:[[50]],options:{responsive:!0,legend:{display:!0,fontColor:"#2196f3"},scales:{xAxes:[{gridLines:{display:!0},ticks:{fontColor:"#2196f3",stepSize:1,beginAtZero:!0}}],yAxes:[{gridLines:{display:!1},ticks:{fontColor:"#2196f3"}}]}}},r.getMultiBarChart=function(e){e&&(e.attrs&&function(e){r.properties=_.map(_.filter(e.attrs,function(e){return e.name&&0<=e.name.indexOf("attrSerie")&&e.value&&"null"!==e.value}),"value"),e.attrs[3].value&&e.attrs[3].value.length?(r.filtered=!0,r.filter=_.intersection(e.voiceQueuesSelected,e.attrs[3].value)):(r.filtered=!1,r.filter=e.voiceQueuesSelected);if(r.multiBarChart.series.length>r.properties.length){var n=r.multiBarChart.series.length-r.properties.length;r.multiBarChart.series.splice(0,n),r.multiBarChart.data.splice(0,n)}for(var t=0;t<r.properties.length;t+=1){if(r.multiBarChart.series[t]=o.instant("TOOLS."+r.properties[t].toUpperCase()),_.isNil(r.multiBarChart.data[t])&&(r.multiBarChart.data[t]=[]),r.multiBarChart.labels.length>r.filter.length){var a=r.multiBarChart.labels.length-r.filter.length;r.multiBarChart.labels.splice(0,a),r.multiBarChart.data[t].splice(0,a)}for(var i=0,s=0;i<e.voiceQueues.rows.length;i+=1)_.includes(r.filter,e.voiceQueues.rows[i].id)&&(r.multiBarChart.labels[s]=e.voiceQueues.rows[i].name,r.multiBarChart.data[t][s]=e.voiceQueues.rows[i][r.properties[t]]?parseInt(e.voiceQueues.rows[i][r.properties[t]]):0,s+=1)}}(e),e.foreground&&function(e){r.multiBarChart.options.legend.fontColor=e.foreground;for(var n=0;n<r.multiBarChart.options.scales.xAxes.length;n+=1)r.multiBarChart.options.scales.xAxes[n].ticks.fontColor=e.foreground;for(var t=0;t<r.multiBarChart.options.scales.yAxes.length;t+=1)r.multiBarChart.options.scales.yAxes[t].ticks.fontColor=e.foreground}(e))}}e.$inject=["$translate","socket"],angular.module("app.core").controller("MsWidgetEngineMultibarChartController",e)}(),function(){"use strict";function e(s){var o=this;o.filter=[],o.filtered=!1,o.properties=[],o.pieChart={labels:["ANSWERED"],data:[30],options:{responsive:!0,legend:{display:!0}}},o.getPieChart=function(e){e&&(e.attrs&&function(e){o.properties=_.map(_.filter(e.attrs,function(e){return e.name&&0<=e.name.indexOf("attrSerie")&&e.value&&"null"!==e.value}),"value"),e.attrs[3].value&&e.attrs[3].value.length?(o.filtered=!0,o.filter=_.intersection(e.voiceQueuesSelected,e.attrs[3].value)):(o.filtered=!1,o.filter=e.voiceQueuesSelected);if(o.pieChart.labels.length>o.properties.length){var n=o.pieChart.labels.length-o.properties.length;o.pieChart.labels.splice(0,n),o.pieChart.data.splice(0,n)}for(var t=0,a=0;t<o.properties.length;t+=1){o.pieChart.labels[t]=s.instant("TOOLS."+o.properties[t].toUpperCase());for(var i=0;i<e.voiceQueues.rows.length;i+=1)_.includes(o.filter,e.voiceQueues.rows[i].id)&&(a+=e.voiceQueues.rows[i][o.properties[t]]?parseInt(e.voiceQueues.rows[i][o.properties[t]]):0);o.pieChart.data[t]=a,a=0}}(e),e.foreground&&(n=e,o.pieChart.options.legend.fontColor=n.foreground));var n}}e.$inject=["$translate"],angular.module("app.core").controller("MsWidgetEnginePieChartController",e)}(),function(){"use strict";function e(e,t,a,i){var s=this;function n(e){s.results=e||{count:0,rows:[]}}function o(){s.query.offset=(s.query.page-1)*s.query.limit,s.promise=i[s.reportRoute].run(s.query,n).$promise}s.countDown=0,s.refresh=0,s.title="",s.columns=[],s.results={rows:[],count:0},s.query={limit:10,page:1,startDate:moment().startOf("day").format("YYYY-MM-DD HH:mm:ss"),endDate:moment().endOf("day").format("YYYY-MM-DD HH:mm:ss"),output:"web"},s.onInit=function e(n){n&&n.attrs&&(n.attrs[0]&&n.attrs[0].value&&(s.query.id=n.attrs[0].value,i.analyticFieldReport.get({fields:"field,alias",nolimit:!0,DefaultReportId:"default"===n.attrs[0].type?n.attrs[0].value:void 0,CustomReportId:"custom"===n.attrs[0].type?n.attrs[0].value:void 0}).$promise.then(function(e){switch(e&&e.rows&&(s.columns=e.rows),n.attrs[0].type){case"default":s.reportRoute="analyticDefaultReport";break;case"custom":s.reportRoute="analyticCustomReport"}return i[s.reportRoute].get({id:n.attrs[0].value,fields:"id,name"}).$promise}).then(function(e){e&&e.name&&(s.title=e.name),o()}).catch(function(e){console.log(e)})),n.attrs[1]&&n.attrs[1].value&&(s.refresh=parseInt(n.attrs[1].value),!_.isNaN(s.refresh)&&0<s.refresh?(s.countDown=parseInt(n.attrs[1].value),s.interval=a(function(){s.countDown-=1},1e3,0),s.timeout=t(function(){s.interval&&a.cancel(s.interval),e(n)},1e3*s.refresh)):(s.interval&&a.cancel(s.interval),s.timeout&&t.cancel(s.timeout))))},s.getResults=o,s.valueReplacer=function(e,n){moment(n,"YYYY-MM-DDTHH:mm:ssZ",!0).isValid()&&(n=moment(n,"").format("YYYY-MM-DD HH:mm:ss"));return n},e.$on("$destroy",function(){s.interval&&a.cancel(s.interval),s.timeout&&t.cancel(s.timeout)})}e.$inject=["$scope","$timeout","$interval","api"],angular.module("app.core").controller("MsWidgetEngineWebReportController",e)}(),function(){"use strict";function e(e,n){this.getTrustedURL=function(e){return n.trustAsResourceUrl(e)}}function n(e){return{restrict:"E",scope:{config:"=?",onEdit:"&?",onDelete:"&?"},require:"msWidgetEngine",controller:"MsWidgetEngineController",controllerAs:"vm",bindToController:!0,templateUrl:"app/core/directives/ms-widget-engine/ms-widget-engine.html"}}e.$inject=["$mdDialog","$sce"],n.$inject=["$document"],angular.module("app.core").controller("MsWidgetEngineController",e).directive("msWidgetEngine",n)}(),function(){"use strict";function e(e,n){var t=this;t.flipped=!1,t.flip=function(){if(!angular.isDefined(e.flippable)||!0!==e.flippable)return;t.flipped=!t.flipped,n.toggleClass("flipped",t.flipped)}}e.$inject=["$scope","$element"],angular.module("app.core").controller("MsWidgetController",e).directive("msWidget",function(){return{restrict:"E",scope:{flippable:"=?"},controller:"MsWidgetController",transclude:!0,compile:function(e){return e.addClass("ms-widget"),function(e,n,t,a,i){i(function(e){n.empty(),n.append(e)})}}}}).directive("msWidgetFront",function(){return{restrict:"E",require:"^msWidget",transclude:!0,compile:function(e){return e.addClass("ms-widget-front"),function(e,n,t,a,i){i(function(e){n.empty(),n.append(e)}),e.flipWidget=a.flip}}}}).directive("msWidgetBack",function(){return{restrict:"E",require:"^msWidget",transclude:!0,compile:function(e){return e.addClass("ms-widget-back"),function(e,n,t,a,i){i(function(e){n.empty(),n.append(e)}),e.flipWidget=a.flip}}}})}(),function(){"use strict";function e(s,n,o,r){return{restrict:"A",require:"?ngModel",link:function(t,a,e,i){o.isAdmin()||o.isTelephone()||(""!==e.privacy||o.getCurrentUser().privacyEnabled)&&!1!==t.$eval(e.privacy)&&(i?(i.$formatters.push(function(e){if(!e)return e;var n=r.mask(e);return i.$setViewValue(n),i.$render(),i.$viewValue}),i.$parsers.push(function(){return i.$modelValue}),a[0].disabled=!0):n(function(){s(a.contents())(t);var e=a.text();if(e){var n=r.mask(e);a.text(n)}}))}}}e.$inject=["$compile","$timeout","Auth","privacyManager"],angular.module("app.core").directive("privacy",e)}(),function(){"use strict";function e(o,r,i,l,d){var e={get:function(s,a){return o(function(n,t){0===a.offset&&(s=void 0);var e=_.merge({},a);i.cmContact.getJourney(e).$promise.then(function(e){var a,n=_(e.rows).uniqBy(function(e){return e.channel}).map("channel").value();return(a=n,o(function(e,n){var t=a.map(function(n){if("voice"!==n){var e="get"+_.startCase(n)+("chat"===n?"Websites":"Accounts");return i.user[e]({id:l.getCurrentUser().id,attributes:["id","name"],nolimit:!0}).$promise.then(function(e){c[n]=e.rows})}});return o.all(t).then(function(){e()}).catch(function(e){n(e)})})).then(function(){return e.rows.forEach(function(e){var n;e.canOpen=function(e){switch(e.channel){case"chat":return!!c.chat&&_.some(c.chat,["id",e.ChatWebsiteId]);case"fax":return!!c.fax&&_.some(c.fax,["id",e.FaxAccountId]);case"mail":return!!c.mail&&_.some(c.mail,["id",e.MailAccountId]);case"openchannel":return!!c.openchannel&&_.some(c.openchannel,["id",e.OpenchannelAccountId]);case"sms":return!!c.sms&&_.some(c.sms,["id",e.SmsAccountId]);case"voice":return!0;case"whatsapp":return!!c.whatsapp&&_.some(c.whatsapp,["id",e.WhatsappAccountId]);default:return!1}}(e),e.dispositionsValues=(n=e).disposition?"("+_.compact([n.disposition,n.secondDisposition,n.thirdDisposition]).join(" - ")+")":"("+r.instant("DASHBOARDS.NO_DISPOSITION_SET")+")",e.style=function(e){switch(e.channel){case"chat":return{color:"green-A700",icon:"icon-hangouts"};case"fax":return{color:"blue-grey-A200",icon:"icon-deskphone"};case"mail":return{color:"teal",icon:"icon-email"};case"openchannel":return{color:"amber-A200",icon:"icon-google-earth"};case"sms":return{color:"orange",icon:"icon-message-text"};case"voice":return{color:"blue-A700",icon:"icon-phone"};case"whatsapp":return{color:"lime-A700",icon:"icon-whatsapp"}}}(e)}),a=s,i=e,o(function(e,n){try{var t={journey:a?_.union(a,i.rows):i.rows};t.loadMore=0<i.count-t.journey.length,e(t)}catch(e){n(e)}});var a,i})}).then(function(e){n(e)}).catch(function(e){d.error({title:r.instant("CONTACTMANAGER.CUSTOMER_JOURNEY"),msg:r.instant("CONTACTMANAGER.NOTIFICATIONS.NO_DATA_ERROR")}),t(e)})})},getQuery:function(){return{range:{from:moment().subtract(3,"M").startOf("month").format("YYYY-MM-DD HH:mm:ss"),to:moment().endOf("month").format("YYYY-MM-DD HH:mm:ss")},limit:10,offset:0}},getQuickFilters:function(){return[{name:"Channel",key:"channel",type:"select",label:"INTEGRATIONS.CHANNEL",customOptions:[{value:void 0,translate:"DASHBOARDS.ALL"},{value:"voice",translate:"DASHBOARDS.VOICE"},{value:"chat",translate:"DASHBOARDS.CHAT"},{value:"mail",translate:"DASHBOARDS.MAIL"},{value:"sms",translate:"DASHBOARDS.SMS"},{value:"fax",translate:"DASHBOARDS.FAX"},{value:"openchannel",translate:"DASHBOARDS.OPENCHANNEL"},{value:"whatsapp",translate:"DASHBOARDS.WHATSAPP"}]},{name:"Start Date",key:"range",type:"date",label:"DASHBOARDS.SELECT_DATE",useFromToKeys:!0}]}},c={};return e}e.$inject=["$q","$translate","api","Auth","toasty"],angular.module("app.core").factory("customerJourneyManager",e)}(),function(){"use strict";function e(t,a,n,i,s){var o={},r={},l={},d={};function c(){r=i.getCurrentUser();var e=n.localStorage.getItem("motion2.home:"+r.id);if(l=e?JSON.parse(e).currentSidebarTab:"dashboard",d=n.localStorage.getItem("motion2.home."+l+":"+r.id)){var a=JSON.parse(d);a.drafts?r.privacyEnabled&&Object.keys(a.drafts).forEach(function(e){var n=a.drafts[e].title,t=n.split(/-(.+)/)[1].trim();a.drafts[e].title=n.replace(t,s.mask(t))}):a.drafts={},d=a}else d={drafts:{}};return d.drafts}function m(){_.isEmpty(o.drafts)?delete d.drafts:d.drafts=o.drafts,n.localStorage.setItem("motion2.home."+l+":"+r.id,JSON.stringify(d))}return o.init=function(){o.drafts=c()},o.getByInteraction=function(n){return o.drafts=c(),_.find(_.values(o.drafts),function(e){return e.interaction&&e.interaction.id===n})},o.removeByInteraction=function(n){o.drafts=c();var e=_.find(_.values(o.drafts),function(e){return e.interaction&&e.interaction.id===n});e&&(delete o.drafts[e.id],m())},o.add=function(e){o.drafts=c();var n=a.instant("DASHBOARDS.UNTITLED");e.contact?n=e.contact.firstName||e.contact.email:_.isEmpty(e.message.subject)||(n=e.message.subject);var t={type:"draft",title:e.account.key+" - "+n,channel:e.channel,content:e.message,account:e.account,interaction:e.interaction,id:_.random(1e10),openedAt:new Date,saved:!1};o.drafts[t.id]=t,m()},o.update=function(e){o.drafts=c();var n=o.drafts[e.id];n&&(n.content=e.message,o.drafts[e.id]=n,m())},o.open=function(e){o.drafts=c();var n=o.drafts[e];n&&t.$broadcast("open"+_.startCase(l)+"Draft",n)},o.remove=function(e){o.drafts=c(),o.drafts[e]&&(delete o.drafts[e],m())},o}e.$inject=["$rootScope","$translate","$window","Auth","privacyManager"],angular.module("app.core").factory("draftManager",e)}(),function(){"use strict";function e(i){function s(e,n){var t=i.localStorage.getItem(e),a=t?JSON.parse(t):{};return n?a[n]:a}function o(e,n){return i.localStorage.setItem(e,JSON.stringify(n))}return{get:s,set:o,update:function(e,n,t){var a=s(e);t?a[t]=n:a=n;return o(e,a)}}}e.$inject=["$window"],angular.module("app.core").factory("localStorageManager",e)}(),function(){"use strict";function e(i){function s(e,n){var t=i.get(),a=0;if(t)switch(n){case"email":a=t.privacyPolicyEmail;break;case"number":a=t.privacyPolicyNumber;break;default:a=t.privacyPolicyName}return _.isNil(a)?e:0===a||a>e.length?e.replace(/./g,"*"):e.substring(0,e.length-a).padEnd(e.length,"*")}function o(e){return _.startsWith(e,"<")&&_.endsWith(e,">")&&(e=e.substring(1,e.length-1)),/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)}function r(e){if(_.startsWith(e,"<")&&_.endsWith(e,">")){var n=!0;e=e.substring(1,e.length-1)}var t=e.split("@")[0],a=e.split("@")[1],i="";return n&&(i+="<"),i+=s(t,"email"),i+="@",i+=s(a,"email"),n&&(i+=">"),i}return{mask:function n(e){t=e,e=t.replace(/\s\s+/g," ").trim();var t;{if(o(e))return r(e);if(/^[+]?[0-9|.|\-|\s]*$/.test(e))return s(e,"number");var a=[],i=e.split(" ");return 1===i.length?s(e):(i.forEach(function(e){a.push(n(e))}),a.join(" "))}}}}e.$inject=["settingsManager"],angular.module("app.core").factory("privacyManager",e)}(),function(){"use strict";function e(e,s){return{setPlaceholder:function(a){var i;return e(function(n,e){try{if(_.isEmpty(a.resources))i=s.instant("DASHBOARDS.NONE");else if(_.isEmpty(a.param))i=a.placeholder?s.instant(a.placeholder):s.instant("DASHBOARDS.CHOOSE");else if(a.param.length===a.resources.length)i=s.instant("DASHBOARDS.ALL");else{var t=a.ngValue||"id";i=_(a.resources).filter(function(e){return _.includes(a.param,e[t])}).map("name").value().join(", ")}n(i)}catch(e){console.log("QuickFilterManager::setPlaceholder",e),n(null)}})}}}e.$inject=["$q","$translate"],angular.module("app.core").factory("quickFilterManager",e)}(),function(){"use strict";angular.module("app.core").factory("realtimeManager",function(){var a=["loggedIn","available","waiting","talking","paused"],i=["loggedIn","available","waiting","talking","pTalking","originated","message","dialActive","dialMethod","Trunk","paused","startPredictive","startProgressive","erlangCalls","erlangCallToSecond","erlangAbandonmentRate","erlangBusyFactor","dialPredictiveInterval","dialPredictiveIntervalMaxThreshold","dialPredictiveIntervalMinThreshold","predictiveIntervalAvailable","predictiveIntervalTotalCalls","predictiveIntervalAnsweredCalls","predictiveIntervalDroppedCallsTimeout","predictiveIntervalDroppedCallsCallersExit","predictiveIntervalAvgHoldtime","predictiveIntervalAvgTalktime"];function s(e){var n=_.filter(e.agents,["busy",!0]).length,t=e.loggedInDb-e.available-e.paused-e.talking-e.waiting;t<0&&(t=0),e.busy=t<n?n:t}function o(e){return!_.every([e.chatPause,e.faxPause,e.mailPause,e.openchannelPause,e.smsPause,e.voicePause,e.whatsappPause],function(e){return e})}return{updateBusyCounter:s,isPartialPause:o,updateQueue:function(e,n,t,a){var i=t.paused;!1===e.online?(t.online=!1,n.loggedInDb-=1,t.paused?(t.paused=!1,n.paused-=1):n.available-=1):t.online?o(e)||!e[a+"Pause"]||t.paused?!e[a+"Pause"]&&t.paused?(t.paused=!1,t.talking||t.busy||(n.paused-=1,n.available+=1)):e[a+"Pause"]&&t.paused&&(t.talking||t.busy||(n.busy-=1,i||(n.paused+=1))):(t.paused=!0,t.talking||t.busy||(i||(n.paused+=1),0<n.available&&(n.available-=1))):(t.online=!0,n.loggedInDb+=1,n.available+=1);s(n)},updateVoiceQueue:function(e,n){e.loggedIn===e.available&&0<e.waiting&&(e.available-=e.waiting);var t=e.loggedIn-e.available-e.talking-e.waiting-n.paused;t<0?(n.paused-=Math.abs(t),n.waitingOrTalking=!0):0<t&&n.waitingOrTalking&&(n.paused+=1,delete n.waitingOrTalking);_.merge(n,_.pick(e,"inbound"===n.type?a:i)),"outbound"===n.type&&_.isNil(e.startPredictive)&&(n.startPredictive=void 0);s(n)}}})}(),function(){"use strict";angular.module("app.core").factory("settingsManager",function(){var n={};return{get:function(){return n},set:function(e){e&&(n=e.toJSON())}}})}(),function(){"use strict";function e(c,m){function u(e,n,t){if(_.isEmpty(n))return t;for(var a=0;a<n.length;a++){var i=n[a].key,s=_.find(e,function(e){return e[i]===n[a].value});s&&(_.some(t,["id",s.id])||(s.canSelect=!1,t.push(s)))}return t}return{getResources:function(a,i,s,o,r,l,d){return c(function(t,n){o||(o={}),d||(d="get"),a[s][d](o).$promise.then(function(e){var t=e.rows;if("admin"===i.role)return t;var n=m.getSectionId(s,l);return a.userProfileSection.get({userProfileId:i.userProfileId,sectionId:n}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;return n?n.autoAssociation?t:a.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(t,{id:e.resourceId})});return u(t,r,n)}):c.resolve().then(function(){return e=s,_.includes(["voiceContext"],e)?(o.defaultEntry=1,a[s][d](o).$promise.then(function(e){return e.rows})):[];var e}).then(function(e){return u(t,r,e)})})}).then(function(e){var n={rows:_.orderBy(e,[o.sort]),count:e.length};t(n)}).catch(function(e){n(e)})})}}}e.$inject=["$q","msNavigationService"],angular.module("app.core").factory("userProfileManager",e)}(),function(){"use strict";angular.module("app.core").filter("altDate",function(){return function(e){var n=Date.now()-new Date(e);return n<36e5?moment(e).fromNow():n<864e5?moment(e).format("HH:mm"):n<6048e5?moment(e).format("dddd"):moment(e).calendar()}})}(),function(){"use strict";function e(n){return function(e){return n.trustAsHtml(e)}}e.$inject=["$sce"],angular.module("app.core").filter("toTrusted",e).filter("htmlToPlaintext",function(){return function(e){return String(e).replace(/<[^>]+>/gm,"")}}).filter("nospace",function(){return function(e){return e?e.replace(/ /g,""):""}}).filter("humanizeDoc",function(){return function(e){if(e)return"directive"===e.type?e.name.replace(/([A-Z])/g,function(e){return"-"+e.toLowerCase()}):e.label||e.name}})}(),function(){"use strict";angular.module("app.core").filter("capitalize",function(){return function(e){return e?_.capitalize(e):""}})}(),function(){"use strict";angular.module("app.core").filter("filterByIds",function(){return function(e,n){if(0===e.length||!n)return e;if(0===n.length)return[];for(var t=[],a=0;a<e.length;a++){for(var i=e[a],s=!1,o=0;o<n.length;o++){var r=n[o];if(i.id===r){s=!0;break}}s&&t.push(i)}return t}})}(),function(){"use strict";angular.module("app.core").filter("filterByPropIds",function(){return function(e,n,t){if(0===e.length||!t||0===t.length)return e;for(var a=[],i=0;i<e.length;i++){for(var s=e[i],o=!1,r=0;r<t.length;r++){var l=t[r];if(-1<s[n].indexOf(l)){o=!0;break}}o&&a.push(s)}return a}})}(),function(){"use strict";angular.module("app.core").filter("orderByDate",function(){return function(e){var n=[];return angular.forEach(e,function(e){n.push(e)}),n.sort(function(e,n){return e.hasOwnProperty("openedAt")&&n.hasOwnProperty("openedAt")?e.openedAt>n.openedAt?1:-1:1}),n}})}(),function(){"use strict";angular.module("app.core").filter("secToTime",function(){return function(e){e&&(e=e.toString().replace(",",""));var n=Math.floor(e/86400),t=e%86400,a=new Date(1e3*t).toISOString().substring(11,19);return a.replace(/^(\d+)/,function(e){return(""+(Number(e)+24*n)).padStart(2,"0")})}})}(),function(){"use strict";angular.module("app.core").filter("snakecase",function(){return function(e){return e?_.snakeCase(e):""}})}(),function(){"use strict";angular.module("app.core").filter("startcase",function(){return function(e){return e?_.startCase(e):""}})}(),function(){"use strict";angular.module("app.core").filter("filterByTags",function(){return function(e,t){if(0===e.length||0===t.length)return e;var a=[];return e.forEach(function(e){var n=t.every(function(n){var t=!1;return e.tags.forEach(function(e){e.name!==n.name||(t=!0)}),t});n&&a.push(e)}),a}}).filter("filterSingleByTags",function(){return function(e,n){if(0!==e.length&&0!==n.length){if(e.length<n.length)return[];var t=[],a=n.every(function(n){var t=!1;return e.forEach(function(e){e.name!==n.name||(t=!0)}),t});return a&&t.push(e),t}}})}(),function(){"use strict";angular.module("app.core").filter("toInteger",function(){return function(e){if(e&&"string"==typeof e)return parseInt(e)}})}(),function(){"use strict";function m(e,n,t,a){this.id=Math.random().toString(36).substring(2,15)+Math.random().toString(36).substring(2,15),this.title=e,this.body=n,this.accept=t,this.reject=a,this.close=i}function u(){return/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor)}function i(){var t=this;navigator.serviceWorker.ready.then(function(e){e.getNotifications().then(function(e){var n=_.find(e,function(e){return e.data.id===t.id});n&&n.close()})})}angular.module("app.dashboards").provider("motNotification",function(){return{$get:[function(){var d,t,c=[];"serviceWorker"in navigator&&u()?navigator.serviceWorker.register("notification.js").then(function(e){(d=e).update(),d.installing?t=d.installing:d.waiting?t=d.waiting:d.active&&(t=d.active)}).catch(function(e){console.error("Service worker registration failed",e)}):console.error("Service Worker is not supported");return navigator.serviceWorker.addEventListener("message",function(e){if(e.source===t){var n=_.find(c,{id:e.data.id});if(n)switch(e.data.action){case"accept":n.accept&&n.accept();break;case"reject":n.reject&&n.reject()}}}),{create:function(e,i,s,o,r,l){return new Promise(function(t,n){var a;u()&&(window.document.hidden||window.document.mozHidden||window.document.webkitHidden)?(a=new m(e||"MyTitle",i||"MyBody",o,r),c.push(a),a?window.Notification.requestPermission().then(function(e){if("granted"===e)return d.showNotification(a.title,{body:a.body,requireInteraction:!0,icon:s||"assets/images/business/queueCampaigns.jpg",data:{id:a.id},actions:[{action:"accept",title:"Accept"},{action:"reject",title:"Reject"}]})}).then(function(e){if(l){for(var n=0;n<c.length;n++)c[n].close();t()}else t(a)}).catch(function(e){n(e)}):n(new Error("Notification creating error"))):t()})}}}]}})}(),function(){"use strict";function e(l,d,c){return{resolve:function(e,n){var t=e.split("@"),a=t[0],i=t[1],s=n||{};if(!a||!i)return d.error("apiResolver.resolve requires correct action parameter (ResourceName@methodName)"),!1;var o=l.defer(),r=function(e){for(var n=e.split("."),t=c,a=0;a<n.length;a++){if(angular.isUndefined(t[n[a]])){d.error('Resource part "'+n[a]+'" is not defined!'),t=!1;break}t=t[n[a]]}return t||!1}(a);r?r[i](s,function(e){o.resolve(e)},function(e){o.reject(e)}):(d.error('Resource "'+a+'" is not defined in the api service!'),o.reject('Resource "'+a+'" is not defined in the api service!'));return o.promise}}}e.$inject=["$q","$log","api"],angular.module("app.core").factory("apiResolver",e)}(),function(){"use strict";function e(e){return{showLoadingIndicator:function(){e.loadingProgress=!0},hideLoadingIndicator:function(){e.loadingProgress=!1}}}e.$inject=["$rootScope"],angular.module("app.core").factory("LoadingIndicatorService",e)}(),function(){"use strict";angular.module("app.core").provider("msApi",function(){var t=angular.injector(["ng"]).get("$log"),a="",v=[];function n(e){a=e}function i(){return a}function s(e,n){angular.isString(e)?angular.isArray(n)?v[e]={url:a+(n[0]||""),paramDefaults:n[1]||[],actions:n[2]||[],options:n[3]||{}}:t.error('"resource" must be an array and it must follow $resource definition'):t.error('"path" must be a string (eg. `dashboard.project`)')}this.setBaseUrl=n,this.getBaseUrl=i,this.getApiObject=function(){return v},this.register=s,this.$get=["$log","$q","$resource","$rootScope",function(m,u,p,g){var e={setBaseUrl:n,getBaseUrl:i,register:s,resolve:function(e,n){g.$broadcast("msApi::resolveStart");var t=e.split("@"),a=t[0],i=t[1],s=n||{};if(!a||!i)return m.error("msApi.resolve requires correct action parameter (resourceName@methodName)"),!1;var o=u.defer(),r=v[a];if(r){var l=p(r.url,r.paramDefaults,r.actions,r.options);l[i](s,function(e){o.resolve(e),g.$broadcast("msApi::resolveSuccess")},function(e){o.reject(e),g.$broadcast("msApi::resolveError")})}else m.error('Resource "'+a+'" is not defined in the api service!'),o.reject('Resource "'+a+'" is not defined in the api service!');return o.promise},request:function(e,n,t,a){g.$broadcast("msApi::requestStart");var i=e.split("@"),s=i[0],o=i[1],r=n||{};if(!s||!o)return m.error("msApi.resolve requires correct action parameter (resourceName@methodName)"),!1;var l=u.defer(),d=v[s];if(d){var c=p(d.url,d.paramDefaults,d.actions,d.options);c[o](r,function(e){g.$broadcast("msApi::requestSuccess"),l.resolve(e),angular.isDefined(t)&&angular.isFunction(t)&&t(e)},function(e){g.$broadcast("msApi::requestError"),l.reject(e),angular.isDefined(a)&&angular.isFunction(a)&&a(e)})}else m.error('Resource "'+s+'" is not defined in the api service!'),l.reject('Resource "'+s+'" is not defined in the api service!');return l.promise}};return e}]})}(),function(){"use strict";function e(l){var e=new MobileDetect(l.navigator.userAgent),d=null;return{exists:function(e,n){return-1<n.indexOf(e)},detectBrowser:function(){if(d)return d;var e=[{string:l.navigator.userAgent,subString:"Edge",versionSearch:"Edge",identity:"Edge"},{string:l.navigator.userAgent,subString:"Chrome",identity:"Chrome"},{string:l.navigator.userAgent,subString:"OmniWeb",versionSearch:"OmniWeb/",identity:"OmniWeb"},{string:l.navigator.vendor,subString:"Apple",versionSearch:"Version",identity:"Safari"},{prop:l.opera,identity:"Opera"},{string:l.navigator.vendor,subString:"iCab",identity:"iCab"},{string:l.navigator.vendor,subString:"KDE",identity:"Konqueror"},{string:l.navigator.userAgent,subString:"Firefox",identity:"Firefox"},{string:l.navigator.vendor,subString:"Camino",identity:"Camino"},{string:l.navigator.userAgent,subString:"Netscape",identity:"Netscape"},{string:l.navigator.userAgent,subString:"MSIE",identity:"Explorer",versionSearch:"MSIE"},{string:l.navigator.userAgent,subString:"Trident/7",identity:"Explorer",versionSearch:"rv"},{string:l.navigator.userAgent,subString:"Gecko",identity:"Mozilla",versionSearch:"rv"},{string:l.navigator.userAgent,subString:"Mozilla",identity:"Netscape",versionSearch:"Mozilla"}],n=[{string:l.navigator.platform,subString:"Win",identity:"Windows"},{string:l.navigator.platform,subString:"Mac",identity:"Mac"},{string:l.navigator.platform,subString:"Linux",identity:"Linux"},{string:l.navigator.platform,subString:"iPhone",identity:"iPhone"},{string:l.navigator.platform,subString:"iPod",identity:"iPod"},{string:l.navigator.platform,subString:"iPad",identity:"iPad"},{string:l.navigator.platform,subString:"Android",identity:"Android"}],i="";function t(e){for(var n=0;n<e.length;n++){var t=e[n].string,a=e[n].prop;if(i=e[n].versionSearch||e[n].identity,t){if(-1!==t.indexOf(e[n].subString))return e[n].identity}else if(a)return e[n].identity}}function a(e){var n=e.indexOf(i);if(-1!==n)return parseInt(e.substring(n+i.length+1))}var s=t(e)||"unknown-browser",o=a(l.navigator.userAgent)||a(l.navigator.appVersion)||"unknown-version",r=t(n)||"unknown-os";return s=s.toLowerCase(),o=s+"-"+o,r=r.toLowerCase(),d={browser:s,version:o,os:r}},guidGenerator:function(){var e=function(){return(65536*(1+Math.random())||0).toString(16).substring(1)};return e()+e()+e()+e()+e()+e()},isMobile:function(){return e.mobile()},toggleInArray:function(e,n){-1===n.indexOf(e)?n.push(e):n.splice(n.indexOf(e),1)},firstLastDayMonth:function(){return{$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()}}}}e.$inject=["$window"],angular.module("app.core").factory("msUtils",e)}(),function(){"use strict";function e(e,n){var t=this;t.themes=n.themes,t.layoutModes=[{label:"Boxed",value:"boxed"},{label:"Wide",value:"wide"}],t.layoutStyles=[{label:"Vertical Navigation",value:"verticalNavigation",figure:"/assets/images/theme-options/vertical-nav.jpg"},{label:"Vertical Navigation with Fullwidth Toolbar",value:"verticalNavigationFullwidthToolbar",figure:"/assets/images/theme-options/vertical-nav-with-full-toolbar.jpg"},{label:"Vertical Navigation with Fullwidth Toolbar 2",value:"verticalNavigationFullwidthToolbar2",figure:"/assets/images/theme-options/vertical-nav-with-full-toolbar-2.jpg"},{label:"Horizontal Navigation",value:"horizontalNavigation",figure:"/assets/images/theme-options/horizontal-nav.jpg"},{label:"Content with Toolbar",value:"contentWithToolbar",figure:"/assets/images/theme-options/content-with-toolbar.jpg"},{label:"Content Only",value:"contentOnly",figure:"/assets/images/theme-options/content-only.jpg"}],t.layoutMode="wide",t.layoutStyle=e.get("motion.layoutStyle")||"verticalNavigation",t.setActiveTheme=function(e){n.setActiveTheme(e)},t.getActiveTheme=function(){return n.themes.active},t.updateLayoutMode=function(){angular.element("body").toggleClass("boxed","boxed"===t.layoutMode)},t.updateLayoutStyle=function(){e.put("motion.layoutStyle",t.layoutStyle),location.reload()}}function n(n){return{restrict:"E",scope:{},controller:"MsThemeOptionsController as vm",templateUrl:"app/core/theme-options/theme-options.html",compile:function(e){return e.addClass("ms-theme-options"),function(e){e.toggleOptionsSidenav=function(){n("motion-theme-options").toggle()}}}}}e.$inject=["$cookies","motionTheming"],n.$inject=["$mdSidenav"],angular.module("app.core").controller("MsThemeOptionsController",e).directive("msThemeOptions",n)}(),function(){"use strict";function e(i,a,s){var o={};return{generate:function(){var e=angular.copy(s.getRegisteredThemes()),a=angular.copy(s.getRegisteredPalettes());angular.forEach(e,function(t){o[t.name]={},angular.forEach(t.colors,function(e,n){o[t.name][n]={name:e.name,levels:{default:{color:l(a[e.name][e.hues.default].value),contrast1:l(a[e.name][e.hues.default].contrast,1),contrast2:l(a[e.name][e.hues.default].contrast,2),contrast3:l(a[e.name][e.hues.default].contrast,3),contrast4:l(a[e.name][e.hues.default].contrast,4)},hue1:{color:l(a[e.name][e.hues["hue-1"]].value),contrast1:l(a[e.name][e.hues["hue-1"]].contrast,1),contrast2:l(a[e.name][e.hues["hue-1"]].contrast,2),contrast3:l(a[e.name][e.hues["hue-1"]].contrast,3),contrast4:l(a[e.name][e.hues["hue-1"]].contrast,4)},hue2:{color:l(a[e.name][e.hues["hue-2"]].value),contrast1:l(a[e.name][e.hues["hue-2"]].contrast,1),contrast2:l(a[e.name][e.hues["hue-2"]].contrast,2),contrast3:l(a[e.name][e.hues["hue-2"]].contrast,3),contrast4:l(a[e.name][e.hues["hue-2"]].contrast,4)},hue3:{color:l(a[e.name][e.hues["hue-3"]].value),contrast1:l(a[e.name][e.hues["hue-3"]].contrast,1),contrast2:l(a[e.name][e.hues["hue-3"]].contrast,2),contrast3:l(a[e.name][e.hues["hue-3"]].contrast,3),contrast4:l(a[e.name][e.hues["hue-3"]].contrast,4)}}}})}),function(e){var n=angular.copy(e);angular.forEach(n,function(t){angular.forEach(t,function(e,n){t[n]=e.levels,t[n].color=e.levels.default.color,t[n].contrast1=e.levels.default.contrast1,t[n].contrast2=e.levels.default.contrast2,t[n].contrast3=e.levels.default.contrast3,t[n].contrast4=e.levels.default.contrast4,delete t[n].default})}),s.setThemesList(n);var t=i.get("motion.selectedTheme");t?s.setActiveTheme(t):s.setActiveTheme("default")}(o);var r={};angular.forEach(o,function(e,n){var t,a,i,s,o;(r={})["@themeName"]=n,angular.forEach(e,function(e,a){angular.forEach(e.levels,function(e,t){angular.forEach(e,function(e,n){r["@"+a+d(t)+d(n)]=e})})}),t=r,a=new RegExp(Object.keys(t).join("|"),"gi"),i='/* Content hack because they wont fix */\n/* https://github.com/angular/material/pull/8067 */\n[md-theme="@themeName"] md-content.md-hue-1,\nmd-content.md-@themeName-theme.md-hue-1 {\n color: @backgroundHue1Contrast1;\n background-color: @backgroundHue1Color;\n}\n\n[md-theme="@themeName"] md-content.md-hue-2,\nmd-content.md-@themeName-theme.md-hue-2 {\n color: @backgroundHue2Contrast1;\n background-color: @backgroundHue2Color;\n}\n\n[md-theme="@themeName"] md-content.md-hue-3,\n md-content.md-@themeName-theme.md-hue-3 {\n color: @backgroundHue3Contrast1;\n background-color: @backgroundHue3Color;\n}\n\n/* Text Colors */\n[md-theme="@themeName"] a {\n color: @accentDefaultColor;\n}\n\n[md-theme="@themeName"] .secondary-text,\n[md-theme="@themeName"] .icon {\n color: @backgroundDefaultContrast2;\n}\n\n[md-theme="@themeName"] .hint-text,\n[md-theme="@themeName"] .disabled-text {\n color: @backgroundDefaultContrast3;\n}\n\n[md-theme="@themeName"] .fade-text,\n[md-theme="@themeName"] .divider {\n color: @backgroundDefaultContrast4;\n}\n\n/* Primary */\n[md-theme="@themeName"] .md-primary-bg {\n background-color: @primaryDefaultColor;\n color: @primaryDefaultContrast1;\n}\n\n[md-theme="@themeName"] .md-primary-bg .secondary-text,\n[md-theme="@themeName"] .md-primary-bg .icon {\n color: @primaryDefaultContrast2;\n}\n\n[md-theme="@themeName"] .md-primary-bg .hint-text,\n[md-theme="@themeName"] .md-primary-bg .disabled-text {\n color: @primaryDefaultContrast3;\n}\n\n[md-theme="@themeName"] .md-primary-bg .fade-text,\n[md-theme="@themeName"] .md-primary-bg .divider {\n color: @primaryDefaultContrast4;\n}\n\n/* Primary, Hue-1 */\n[md-theme="@themeName"] .md-primary-bg.md-hue-1 {\n background-color: @primaryHue1Color;\n color: @primaryHue1Contrast1;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-1 .secondary-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-1 .icon {\n color: @primaryHue1Contrast2;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-1 .hint-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-1 .disabled-text {\n color: @primaryHue1Contrast3;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-1 .fade-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-1 .divider {\n color: @primaryHue1Contrast4;\n}\n\n/* Primary, Hue-2 */\n[md-theme="@themeName"] .md-primary-bg.md-hue-2 {\n background-color: @primaryHue2Color;\n color: @primaryHue2Contrast1;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-2 .secondary-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-2 .icon {\n color: @primaryHue2Contrast2;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-2 .hint-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-2 .disabled-text {\n color: @primaryHue2Contrast3;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-2 .fade-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-2 .divider {\n color: @primaryHue2Contrast4;\n}\n\n/* Primary, Hue-3 */\n[md-theme="@themeName"] .md-primary-bg.md-hue-3 {\n background-color: @primaryHue3Color;\n color: @primaryHue3Contrast1;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-3 .secondary-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-3 .icon {\n color: @primaryHue3Contrast1;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-3 .hint-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-3 .disabled-text {\n color: @primaryHue3Contrast3;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-3 .fade-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-3 .divider {\n color: @primaryHue3Contrast4;\n}\n\n/* Primary foreground */\n[md-theme="@themeName"] .md-primary-fg {\n color: @primaryDefaultColor !important;\n}\n\n/* Primary foreground, Hue-1 */\n[md-theme="@themeName"] .md-primary-fg.md-hue-1 {\n color: @primaryHue1Color !important;\n}\n\n/* Primary foreground, Hue-2 */\n[md-theme="@themeName"] .md-primary-fg.md-hue-2 {\n color: @primaryHue2Color !important;\n}\n\n/* Primary foreground, Hue-3 */\n[md-theme="@themeName"] .md-primary-fg.md-hue-3 {\n color: @primaryHue3Color !important;\n}\n\n/* Accent */\n[md-theme="@themeName"] .md-accent-bg {\n background-color: @accentDefaultColor;\n color: @accentDefaultContrast1;\n}\n\n[md-theme="@themeName"] .md-accent-bg .secondary-text,\n[md-theme="@themeName"] .md-accent-bg .icon {\n color: @accentDefaultContrast2;\n}\n\n[md-theme="@themeName"] .md-accent-bg .hint-text,\n[md-theme="@themeName"] .md-accent-bg .disabled-text {\n color: @accentDefaultContrast3;\n}\n\n[md-theme="@themeName"] .md-accent-bg .fade-text,\n[md-theme="@themeName"] .md-accent-bg .divider {\n color: @accentDefaultContrast4;\n}\n\n/* Accent, Hue-1 */\n[md-theme="@themeName"] .md-accent-bg.md-hue-1 {\n background-color: @accentHue1Color;\n color: @accentHue1Contrast1;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-1 .secondary-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-1 .icon {\n color: @accentHue1Contrast2;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-1 .hint-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-1 .disabled-text {\n color: @accentHue1Contrast3;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-1 .fade-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-1 .divider {\n color: @accentHue1Contrast4;\n}\n\n/* Accent, Hue-2 */\n[md-theme="@themeName"] .md-accent-bg.md-hue-2 {\n background-color: @accentHue2Color;\n color: @accentHue2Contrast1;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-2 .secondary-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-2 .icon {\n color: @accentHue2Contrast2;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-2 .hint-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-2 .disabled-text {\n color: @accentHue2Contrast3;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-2 .fade-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-2 .divider {\n color: @accentHue2Contrast4;\n}\n\n/* Accent, Hue-3 */\n[md-theme="@themeName"] .md-accent-bg.md-hue-3 {\n background-color: @accentHue3Color;\n color: @accentHue3Contrast1;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-3 .secondary-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-3 .icon {\n color: @accentHue3Contrast1;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-3 .hint-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-3 .disabled-text {\n color: @accentHue3Contrast3;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-3 .fade-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-3 .divider {\n color: @accentHue3Contrast4;\n}\n\n/* Accent foreground */\n[md-theme="@themeName"] .md-accent-fg {\n color: @accentDefaultColor !important;\n}\n\n/* Accent foreground, Hue-1 */\n[md-theme="@themeName"] .md-accent-fg.md-hue-1 {\n color: @accentHue1Color !important;\n}\n\n/* Accent foreground, Hue-2 */\n[md-theme="@themeName"] .md-accent-fg.md-hue-2 {\n color: @accentHue2Color !important;\n}\n\n/* Accent foreground, Hue-3 */\n[md-theme="@themeName"] .md-accent-fg.md-hue-3 {\n color: @accentHue3Color !important;\n}\n\n/* Warn */\n[md-theme="@themeName"] .md-warn-bg {\n background-color: @warnDefaultColor;\n color: @warnDefaultContrast1;\n}\n\n[md-theme="@themeName"] .md-warn-bg .secondary-text,\n[md-theme="@themeName"] .md-warn-bg .icon {\n color: @warnDefaultContrast2;\n}\n\n[md-theme="@themeName"] .md-warn-bg .hint-text,\n[md-theme="@themeName"] .md-warn-bg .disabled-text {\n color: @warnDefaultContrast3;\n}\n\n[md-theme="@themeName"] .md-warn-bg .fade-text,\n[md-theme="@themeName"] .md-warn-bg .divider {\n color: @warnDefaultContrast4;\n}\n\n/* Warn, Hue-1 */\n[md-theme="@themeName"] .md-warn-bg.md-hue-1 {\n background-color: @warnHue1Color;\n color: @warnHue1Contrast1;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-1 .secondary-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-1 .icon {\n color: @warnHue1Contrast2;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-1 .hint-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-1 .disabled-text {\n color: @warnHue1Contrast3;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-1 .fade-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-1 .divider {\n color: @warnHue1Contrast4;\n}\n\n/* Warn, Hue-2 */\n[md-theme="@themeName"] .md-warn-bg.md-hue-2 {\n background-color: @warnHue2Color;\n color: @warnHue2Contrast1;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-2 .secondary-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-2 .icon {\n color: @warnHue2Contrast2;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-2 .hint-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-2 .disabled-text {\n color: @warnHue2Contrast3;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-2 .fade-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-2 .divider {\n color: @warnHue2Contrast4;\n}\n\n/* Warn, Hue-3 */\n[md-theme="@themeName"] .md-warn-bg.md-hue-3 {\n background-color: @warnHue3Color;\n color: @warnHue3Contrast1;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-3 .secondary-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-3 .icon {\n color: @warnHue3Contrast1;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-3 .hint-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-3 .disabled-text {\n color: @warnHue3Contrast3;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-3 .fade-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-3 .divider {\n color: @warnHue3Contrast4;\n}\n\n/* Warn foreground */\n[md-theme="@themeName"] .md-warn-fg {\n color: @warnDefaultColor !important;\n}\n\n/* Warn foreground, Hue-1 */\n[md-theme="@themeName"] .md-warn-fg.md-hue-1 {\n color: @warnHue1Color !important;\n}\n\n/* Warn foreground, Hue-2 */\n[md-theme="@themeName"] .md-warn-fg.md-hue-2 {\n color: @warnHue2Color !important;\n}\n\n/* Warn foreground, Hue-3 */\n[md-theme="@themeName"] .md-warn-fg.md-hue-3 {\n color: @warnHue3Color !important;\n}\n\n/* Background */\n[md-theme="@themeName"] .md-background-bg {\n background-color: @backgroundDefaultColor;\n color: @backgroundDefaultContrast1;\n}\n\n[md-theme="@themeName"] .md-background-bg .secondary-text,\n[md-theme="@themeName"] .md-background-bg .icon {\n color: @backgroundDefaultContrast2;\n}\n\n[md-theme="@themeName"] .md-background-bg .hint-text,\n[md-theme="@themeName"] .md-background-bg .disabled-text {\n color: @backgroundDefaultContrast3;\n}\n\n[md-theme="@themeName"] .md-background-bg .fade-text,\n[md-theme="@themeName"] .md-background-bg .divider {\n color: @backgroundDefaultContrast4;\n}\n\n/* Background, Hue-1 */\n[md-theme="@themeName"] .md-background-bg.md-hue-1 {\n background-color: @backgroundHue1Color;\n color: @backgroundHue1Contrast1;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-1 .secondary-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-1 .icon {\n color: @backgroundHue1Contrast2;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-1 .hint-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-1 .disabled-text {\n color: @backgroundHue1Contrast3;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-1 .fade-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-1 .divider {\n color: @backgroundHue1Contrast4;\n}\n\n/* Background, Hue-2 */\n[md-theme="@themeName"] .md-background-bg.md-hue-2 {\n background-color: @backgroundHue2Color;\n color: @backgroundHue2Contrast1;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-2 .secondary-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-2 .icon {\n color: @backgroundHue2Contrast2;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-2 .hint-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-2 .disabled-text {\n color: @backgroundHue2Contrast3;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-2 .fade-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-2 .divider {\n color: @backgroundHue2Contrast4;\n}\n\n/* Background, Hue-3 */\n[md-theme="@themeName"] .md-background-bg.md-hue-3 {\n background-color: @backgroundHue3Color;\n color: @backgroundHue3Contrast1;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-3 .secondary-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-3 .icon {\n color: @backgroundHue3Contrast1;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-3 .hint-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-3 .disabled-text {\n color: @backgroundHue3Contrast3;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-3 .fade-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-3 .divider {\n color: @backgroundHue3Contrast4;\n}\n\n/* Background foreground */\n[md-theme="@themeName"] .md-background-fg {\n color: @backgroundDefaultColor !important;\n}\n\n/* Background foreground, Hue-1 */\n[md-theme="@themeName"] .md-background-fg.md-hue-1 {\n color: @backgroundHue1Color !important;\n}\n\n/* Background foreground, Hue-2 */\n[md-theme="@themeName"] .md-background-fg.md-hue-2 {\n color: @backgroundHue2Color !important;\n}\n\n/* Background foreground, Hue-3 */\n[md-theme="@themeName"] .md-background-fg.md-hue-3 {\n color: @backgroundHue3Color !important;\n}'.replace(a,function(e){return t[e]}),s=angular.element("head"),(o=angular.element('<style type="text/css"></style>')).html(i),s.append(o)})},rgba:l};function l(e,n){var t=n||!1;return 4===e.length&&255===e[0]&&255===e[1]&&255===e[2]&&e.splice(3,4),t&&(e=function(e,n){var t={white:{1:"1",2:"0.7",3:"0.3",4:"0.12"},black:{1:"0.87",2:"0.54",3:"0.26",4:"0.12"}};255===e[0]&&255===e[1]&&255===e[2]?e[3]=t.white[n]:0===e[0]&&0===e[1]&&0===e[2]&&(e[3]=t.black[n]);return e}(e,t)),3===e.length?"rgb("+e.join(",")+")":4===e.length?"rgba("+e.join(",")+")":void a.error("Invalid number of arguments supplied in the color array: "+e.length+"\nThe array must have 3 or 4 colors.")}function d(e){return e.charAt(0).toUpperCase()+e.slice(1)}}e.$inject=["$cookies","$log","motionTheming"],angular.module("app.core").factory("motionGenerator",e)}(),function(){"use strict";angular.module("app.core").constant("motionPalettes",[{name:"motion-blue",options:{50:"#ebf1fa",100:"#c2d4ef",200:"#9ab8e5",300:"#78a0dc",400:"#5688d3",500:"#3470ca",600:"#2e62b1",700:"#275498",800:"#21467e",900:"#1a3865",A100:"#c2d4ef",A200:"#9ab8e5",A400:"#5688d3",A700:"#275498",contrastDefaultColor:"light",contrastDarkColors:"50 100 200 A100",contrastStrongLightColors:"300 400"}},{name:"motion-paleblue",options:{50:"#ececee",100:"#c5c6cb",200:"#9ea1a9",300:"#7d818c",400:"#5c616f",500:"#3c4252",600:"#353a48",700:"#2d323e",800:"#262933",900:"#1e2129",A100:"#c5c6cb",A200:"#9ea1a9",A400:"#5c616f",A700:"#2d323e",contrastDefaultColor:"light",contrastDarkColors:"50 100 200 A100",contrastStrongLightColors:"300 400"}}])}(),function(){"use strict";angular.module("app.core").constant("motionThemes",{default:{primary:{name:"motion-paleblue",hues:{default:"700","hue-1":"500","hue-2":"600","hue-3":"400"}},accent:{name:"light-blue",hues:{default:"600","hue-1":"400","hue-2":"700","hue-3":"A100"}},warn:{name:"red"},background:{name:"grey",hues:{default:"A100","hue-1":"A100","hue-2":"100","hue-3":"300"}}},pinkTheme:{primary:{name:"blue-grey",hues:{default:"800","hue-1":"600","hue-2":"400","hue-3":"A100"}},accent:{name:"pink",hues:{default:"400","hue-1":"300","hue-2":"600","hue-3":"A100"}},warn:{name:"blue"},background:{name:"grey",hues:{default:"A100","hue-1":"A100","hue-2":"100","hue-3":"300"}}},tealTheme:{primary:{name:"motion-blue",hues:{default:"900","hue-1":"600","hue-2":"500","hue-3":"A100"}},accent:{name:"teal",hues:{default:"500","hue-1":"400","hue-2":"600","hue-3":"A100"}},warn:{name:"deep-orange"},background:{name:"grey",hues:{default:"A100","hue-1":"A100","hue-2":"100","hue-3":"300"}}}})}(),function(){"use strict";function e(t,e,n){var a;angular.injector(["ngCookies"]).invoke(["$cookies",function(e){a=e}]);var i=a.getObject("motion.customTheme");i&&(n.custom=i),t.alwaysWatchTheme(!0),angular.forEach(e,function(e){t.definePalette(e.name,e.options)}),angular.forEach(n,function(e,n){t.theme(n).primaryPalette(e.primary.name,e.primary.hues).accentPalette(e.accent.name,e.accent.hues).warnPalette(e.warn.name,e.warn.hues).backgroundPalette(e.background.name,e.background.hues)})}e.$inject=["$mdThemingProvider","motionPalettes","motionThemes"],angular.module("app.core").config(e)}(),function(){"use strict";function e(n,t,e){var a={getRegisteredPalettes:function(){return e.PALETTES},getRegisteredThemes:function(){return e.THEMES},setActiveTheme:function(e){if(angular.isUndefined(a.themes.list[e]))return angular.isUndefined(a.themes.list.default)?void t.error('You must have at least one theme named "default"'):(t.warn('The theme "'+e+'" does not exist! Falling back to the "default" theme.'),a.themes.active.name="default",a.themes.active.theme=a.themes.list.default,void n.put("motion.selectedTheme",a.themes.active.name));a.themes.active.name=e,a.themes.active.theme=a.themes.list[e],n.put("motion.selectedTheme",e)},setThemesList:function(e){a.themes.list=e},themes:{list:{},active:{name:"",theme:{}}}};return a}e.$inject=["$cookies","$log","$mdTheming"],angular.module("app.core").service("motionTheming",e)}(),function(){"use strict";function e(n,s,o,r){this.search=function(n){for(var e=[],t=r.getFlatNavigation(),a=o.defer(),i=0;i<t.length;i+=1)t[i].uisref&&e.push(t[i]);n&&(e=e.filter(function(e){if(-1<angular.lowercase(e.title).search(angular.lowercase(n)))return!0}));return s(function(){a.resolve(e)},1e3),a.promise},this.searchResultClick=function(e){e.uisref&&(e.stateParams?n.go(e.state,e.stateParams):n.go(e.state))}}e.$inject=["$state","$timeout","$q","msNavigationService"],angular.module("app.errors.error-404").controller("Error404Controller",e)}(),function(){"use strict";function e(e,n){var t=this;t.code="",t.send=!1,t.error=e.params,t.sendReport=function(){n.post("/api/jira",t.error).then(function(e){t.send=!0,e.data&&(t.code=e.data.id)},function(e){t.send=!1})}}e.$inject=["$state","$http"],angular.module("app.errors.error-500").controller("Error500Controller",e)}(),function(){"use strict";function e(e,n){var t=this;t.currentUser=e.getCurrentUser(),t.cookieAlertHide=n.get("motion.cookieAlertHide:"+t.currentUser.id)||!1,t.cookieAlertOnClose=function(){n.put("motion.cookieAlertHide:"+t.currentUser.id,!0)}}e.$inject=["Auth","$cookies"],angular.module("app.footer").controller("FooterController",e)}(),function(){"use strict";function e(e,n,t,a,i){var s=this;s.form={},s.forgotPassword=function(){return i.auth.forgot(s.form).$promise.then(function(){n.success({title:t.instant("FORGOTPASSWORD.LINK_SENT"),msg:t.instant("FORGOTPASSWORD.LINNK_SENT_MESSAGE")})}).catch(function(e){e&&n.error({title:t.instant("FORGOTPASSWORD.PASSWORD_RESET_ERROR"),msg:e.data?e.data.message||e.message||e:e.message||e})})},s.onInit=function(){e.isLoggedIn()&&a.go("app.dashboards.general")}}e.$inject=["Auth","toasty","$translate","$state","api"],angular.module("app.forgot").controller("ForgotPasswordController",e)}(),function(){"use strict";function e(e,n){var t=this;t.currentUser=e.getCurrentUser(),t.newsAlertHide=n.get("motion.newsAlertHide:"+t.currentUser.id)||!1,t.newsAlertOnClose=function(){n.put("motion.newsAlertHide:"+t.currentUser.id,!0)}}e.$inject=["Auth","$cookies"],angular.module("app.header").controller("HeaderController",e)}(),function(){"use strict";function e(e,o){var r={getResourcesByRole:function(e,n,t,a,i,s){return o.getResources(r,e,n,t,a,i,s)}};return r.baseUrl="api/",r.auth=e(r.baseUrl+"auth/local",{},{local:{method:"post",url:r.baseUrl+"auth/local"},forgot:{method:"post",url:r.baseUrl+"auth/local/forgot"},reset:{method:"post",url:r.baseUrl+"auth/local/reset/:token",params:{token:"@token"}},user:{method:"get",url:r.baseUrl+"auth/local/user/:token",params:{token:"@token"}},google:{method:"post",url:r.baseUrl+"auth/google"}}),r.jira=e(r.baseUrl+"jira"),r.rpc=e(r.baseUrl+"rpc",{},{startMonitor:{method:"get",url:r.baseUrl+"rpc/voice/channels/:uniqueid/mixmonitor",params:{uniqueid:"@uniqueid"}},stopMonitor:{method:"get",url:r.baseUrl+"rpc/voice/channels/:uniqueid/stopmixmonitor",params:{uniqueid:"@uniqueid"}},getVoiceChannels:{method:"get",url:r.baseUrl+"rpc/voice/channels"},getVoiceQueues:{method:"get",url:r.baseUrl+"rpc/voice/queues"},getChatQueues:{method:"get",url:r.baseUrl+"rpc/chat/queues"},getMailQueues:{method:"get",url:r.baseUrl+"rpc/mail/queues"},getSmsQueues:{method:"get",url:r.baseUrl+"rpc/sms/queues"},getWhatsappQueues:{method:"get",url:r.baseUrl+"rpc/whatsapp/queues"},getOpenchannelQueues:{method:"get",url:r.baseUrl+"rpc/openchannel/queues"},getFaxQueues:{method:"get",url:r.baseUrl+"rpc/fax/queues"},getVoiceQueuesPreview:{method:"get",url:r.baseUrl+"rpc/voice/queues/preview/:id"},getVoiceQueuesChannels:{method:"get",url:r.baseUrl+"rpc/voice/queues/channels"},getVoiceQueuesChannel:{method:"get",url:r.baseUrl+"rpc/voice/queues/channels/:uniqueid"},getVoiceQueuesChannelHangup:{method:"get",url:r.baseUrl+"rpc/voice/queues/channels/:uniqueid/hangup"},getVoiceQueuesChannelRedirect:{method:"get",url:r.baseUrl+"rpc/voice/queues/channels/:uniqueid/redirect/:exten"},getOutbound:{method:"get",url:r.baseUrl+"rpc/outbound"},getOutboundChannels:{method:"get",url:r.baseUrl+"rpc/outbound/channels"},getAgents:{method:"get",url:r.baseUrl+"rpc/agents"},setAgentCapacity:{method:"put",url:r.baseUrl+"rpc/agents/:id/capacity",params:{id:"@id"}},getTelephones:{method:"get",url:r.baseUrl+"rpc/telephones"},getTrunks:{method:"get",url:r.baseUrl+"rpc/trunks"},getCampaigns:{method:"get",url:r.baseUrl+"rpc/campaigns"},getMailAccounts:{method:"get",url:r.baseUrl+"rpc/mail/accounts"},getFaxAccounts:{method:"get",url:r.baseUrl+"rpc/fax/accounts"},getChatQueuesWaitingInteractions:{method:"get",url:r.baseUrl+"rpc/chat/queues/waitinginteractions"},getMailQueuesWaitingInteractions:{method:"get",url:r.baseUrl+"rpc/mail/queues/waitinginteractions"},getOpenchannelQueuesWaitingInteractions:{method:"get",url:r.baseUrl+"rpc/openchannel/queues/waitinginteractions"},getOpenchannelQueuesIdWaitingInteractions:{method:"get",url:r.baseUrl+"rpc/openchannel/queues/:id/waitinginteractions"},getSmsQueuesWaitingInteractions:{method:"get",url:r.baseUrl+"rpc/sms/queues/waitinginteractions"},getFaxQueuesWaitingInteractions:{method:"get",url:r.baseUrl+"rpc/fax/queues/waitinginteractions"},getWhatsappQueuesWaitingInteractions:{method:"get",url:r.baseUrl+"rpc/whatsapp/queues/waitinginteractions"},mailQueueNotify:{method:"post",url:r.baseUrl+"rpc/mail/queues/:id/notify",params:{id:"@id"}},chatQueueNotify:{method:"post",url:r.baseUrl+"rpc/chat/queues/:id/notify",params:{id:"@id"}},faxQueueNotify:{method:"post",url:r.baseUrl+"rpc/fax/queues/:id/notify",params:{id:"@id"}},smsQueueNotify:{method:"post",url:r.baseUrl+"rpc/sms/queues/:id/notify",params:{id:"@id"}},openchannelQueueNotify:{method:"post",url:r.baseUrl+"rpc/openchannel/queues/:id/notify",params:{id:"@id"}},agentNotify:{method:"post",url:r.baseUrl+"rpc/agents/:id/notify",params:{id:"@id"}}}),r.version=e(r.baseUrl+"version",{},{fetch:{method:"get",url:r.baseUrl+"version/fetch"},reset:{method:"get",url:r.baseUrl+"version/reset"},pull:{method:"get",url:r.baseUrl+"version/pull"},restart:{method:"get",url:r.baseUrl+"version/restart"},migrations:{method:"get",url:r.baseUrl+"version/migrations"}}),r.system=e(r.baseUrl+"system",{},{killProcess:{method:"get",url:r.baseUrl+"system/process/:pid/kill",params:{pid:"@pid"}}}),r.pm2=e(r.baseUrl+"pm2/:id",{id:"@id"},{update:{method:"put",isArray:!0}}),r.user=e(r.baseUrl+"users/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"users/describe"},clone:{method:"post",url:r.baseUrl+"users/:id/clone",params:{includeAll:"@includeAll"}},addContacts:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/contacts"},bulkCreate:{isArray:!1,method:"post",url:r.baseUrl+"users/create_many"},changePassword:{isArray:!1,method:"put",url:r.baseUrl+"users/:id/password"},addQueues:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/queues"},removeQueues:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/queues"},addAvatar:{isArray:!1,method:"post",url:r.baseUrl+"users/:id/avatar"},getAvatar:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/avatar"},getOpenTabs:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/open_tabs"},getContacts:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/contacts"},getQueues:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/queues"},getVoiceQueuesRt:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/queues_rt"},getGroups:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/groups"},getRecordings:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/recordings"},getScreenRecordings:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/screen_recordings"},getChatInteractions:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/chat/interactions"},getOpenchannelInteractions:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/openchannel/interactions"},getMailInteractions:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/mail/interactions"},getSmsInteractions:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/sms/interactions"},getFaxInteractions:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/fax/interactions"},getWhatsappInteractions:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/whatsapp/interactions"},login:{isArray:!1,method:"post",url:r.baseUrl+"users/:id/login"},logout:{isArray:!1,method:"post",url:r.baseUrl+"users/:id/logout"},pause:{isArray:!1,method:"post",url:r.baseUrl+"users/:id/pause"},unpause:{isArray:!1,method:"post",url:r.baseUrl+"users/:id/unpause"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/teams"},getLists:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/lists"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/agents"},addChatInteractions:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/chat_interactions"},removeChatInteractions:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/chat_interactions"},addMailInteractions:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/mail_interactions"},removeMailInteractions:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/mail_interactions"},addFaxInteractions:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/fax_interactions"},removeFaxInteractions:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/fax_interactions"},addSmsInteractions:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/sms_interactions"},removeSmsInteractions:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/sms_interactions"},addOpenchannelInteractions:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/openchannel_interactions"},removeOpenchannelInteractions:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/openchannel_interactions"},addWhatsappInteractions:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/whatsapp_interactions"},removeWhatsappInteractions:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/whatsapp_interactions"},getVoicePrefixes:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/prefixes"},getFaxAccounts:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/fax_accounts"},addFaxAccounts:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/fax_accounts"},removeFaxAccounts:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/fax_accounts"},getMailAccounts:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/mail_accounts"},addMailAccounts:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/mail_accounts"},removeMailAccounts:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/mail_accounts"},getOpenchannelAccounts:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/openchannel_accounts"},addOpenchannelAccounts:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/openchannel_accounts"},removeOpenchannelAccounts:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/openchannel_accounts"},getSmsAccounts:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/sms_accounts"},addSmsAccounts:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/sms_accounts"},removeSmsAccounts:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/sms_accounts"},getChatWebsites:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/chat_websites"},addChatWebsites:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/chat_websites"},removeChatWebsites:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/chat_websites"},getWhatsappAccounts:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/whatsapp_accounts"},addWhatsappAccounts:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/whatsapp_accounts"},removeWhatsappAccounts:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/whatsapp_accounts"},getSquareProjects:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/square_projects"},addSquareProjects:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/square_projects"},removeSquareProjects:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/square_projects"},getScheduledCalls:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/scheduled_calls"},getApiKey:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/api_key"},createApiKey:{isArray:!1,method:"post",url:r.baseUrl+"users/:id/api_key"},removeApiKey:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/api_key"},whoami:{isArray:!1,method:"get",url:r.baseUrl+"users/whoami"},getPresence:{isArray:!1,method:"get",url:r.baseUrl+"users/presence"}}),r.voiceChanSpy=e(r.baseUrl+"voice/chanspy/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/chanspy/describe"},clone:{method:"post",url:r.baseUrl+"voice/chanspy/:id/clone",params:{includeAll:"@includeAll"}}}),r.voiceContext=e(r.baseUrl+"voice/contexts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/contexts/describe"},clone:{method:"post",url:r.baseUrl+"voice/contexts/:id/clone",params:{includeAll:"@includeAll"}}}),r.voiceExtension=e(r.baseUrl+"voice/extensions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/extensions/describe"},clone:{method:"post",url:r.baseUrl+"voice/extensions/:id/clone",params:{includeAll:"@includeAll"}},addApplications:{isArray:!1,method:"post",url:r.baseUrl+"voice/extensions/:id/applications"}}),r.voiceMusicOnHold=e(r.baseUrl+"voice/mohs/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/mohs/describe"},clone:{method:"post",url:r.baseUrl+"voice/mohs/:id/clone",params:{includeAll:"@includeAll"}},addSound:{isArray:!1,method:"post",url:r.baseUrl+"voice/mohs/:id/sounds"},removeSound:{isArray:!1,method:"delete",url:r.baseUrl+"voice/mohs/:id/sounds/:id2"},getSounds:{isArray:!1,method:"get",url:r.baseUrl+"voice/mohs/:id/sounds"}}),r.voiceQueue=e(r.baseUrl+"voice/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/queues/describe"},clone:{method:"post",url:r.baseUrl+"voice/queues/:id/clone",params:{includeAll:"@includeAll"}},getHoppers:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/hoppers"},getHopperHistories:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/hopper_histories"},getHopperFinals:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/hopper_finals"},getHopperBlacks:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/hopper_black"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"voice/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"voice/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"voice/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"voice/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/users"},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/members"},getLists:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/lists"},addLists:{isArray:!0,method:"post",url:r.baseUrl+"voice/queues/:id/lists"},removeLists:{isArray:!0,method:"delete",url:r.baseUrl+"voice/queues/:id/lists"},getBlackLists:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/blacklists"},addBlackLists:{isArray:!0,method:"post",url:r.baseUrl+"voice/queues/:id/blacklists"},removeBlackLists:{isArray:!0,method:"delete",url:r.baseUrl+"voice/queues/:id/blacklists"}}),r.voiceRecording=e(r.baseUrl+"voice/recordings/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/recordings/describe"},clone:{method:"post",url:r.baseUrl+"voice/recordings/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"voice/recordings/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}},downloads:{isArray:!1,method:"get",url:r.baseUrl+"voice/recordings/:id/downloads"},runTranscribe:{isArray:!1,method:"post",url:r.baseUrl+"voice/recordings/:id/transcribe"},downloadTranscribe:{isArray:!1,method:"get",url:r.baseUrl+"voice/recordings/:id/transcribe",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.screenRecording=e(r.baseUrl+"screen/recordings/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"screen/recordings/describe"},clone:{method:"post",url:r.baseUrl+"screen/recordings/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"screen/recordings/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.voiceMail=e(r.baseUrl+"voice/mails/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/mails/describe"},clone:{method:"post",url:r.baseUrl+"voice/mails/:id/clone",params:{includeAll:"@includeAll"}},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"voice/mails/:id/messages"}}),r.voiceMailMessage=e(r.baseUrl+"voice/mails/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/mails/messages/describe"},clone:{method:"post",url:r.baseUrl+"voice/mails/messages/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"voice/mails/messages/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.voiceCallReport=e(r.baseUrl+"voice/calls/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/calls/reports/describe"},clone:{method:"post",url:r.baseUrl+"voice/calls/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.voiceDialReport=e(r.baseUrl+"voice/dials/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/dials/reports/describe"},clone:{method:"post",url:r.baseUrl+"voice/dials/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.voiceAgentReport=e(r.baseUrl+"voice/agents/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/agents/reports/describe"},clone:{method:"post",url:r.baseUrl+"voice/agents/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.voiceQueueReport=e(r.baseUrl+"voice/queues/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/queues/reports/describe"},clone:{method:"post",url:r.baseUrl+"voice/queues/reports/:id/clone",params:{includeAll:"@includeAll"}},getVoiceQueuesReport:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/reports/index"}}),r.memberReport=e(r.baseUrl+"members/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"members/reports/describe"},clone:{method:"post",url:r.baseUrl+"members/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.trunk=e(r.baseUrl+"trunks/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"trunks/describe"},clone:{method:"post",url:r.baseUrl+"trunks/:id/clone",params:{includeAll:"@includeAll"}}}),r.voiceTransferReport=e(r.baseUrl+"voice/transfers/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/transfers/reports/describe"},clone:{method:"post",url:r.baseUrl+"voice/transfers/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.mailServerOut=e(r.baseUrl+"mail/out_servers/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/out_servers/describe"},clone:{method:"post",url:r.baseUrl+"mail/out_servers/:id/clone",params:{includeAll:"@includeAll"}}}),r.mailAccount=e(r.baseUrl+"mail/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/accounts/describe"},clone:{method:"post",url:r.baseUrl+"mail/accounts/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:r.baseUrl+"mail/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:r.baseUrl+"mail/accounts/:id/dispositions"},addAnswer:{isArray:!1,method:"post",url:r.baseUrl+"mail/accounts/:id/canned_answers"},getAnswers:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/canned_answers"},removeAnswers:{isArray:!1,method:"delete",url:r.baseUrl+"mail/accounts/:id/canned_answers"},getImap:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/in_servers"},addImap:{isArray:!1,method:"post",url:r.baseUrl+"mail/accounts/:id/in_servers"},removeImap:{isArray:!1,method:"delete",url:r.baseUrl+"mail/accounts/:id/in_servers"},getSmtp:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/out_servers"},addSmtp:{isArray:!1,method:"post",url:r.baseUrl+"mail/accounts/:id/out_servers"},removeSmtp:{isArray:!1,method:"delete",url:r.baseUrl+"mail/accounts/:id/out_servers"},addInteraction:{isArray:!1,method:"post",url:r.baseUrl+"mail/accounts/:id/interactions"},getInteractions:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/interactions"},addApplications:{isArray:!1,method:"post",url:r.baseUrl+"mail/accounts/:id/applications"},getApplications:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/applications"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/messages"},send:{isArray:!1,method:"post",url:r.baseUrl+"mail/accounts/:id/send"},verifySmtp:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/verify"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"mail/accounts/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"mail/accounts/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/users"}}),r.mailQueue=e(r.baseUrl+"mail/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/queues/describe"},clone:{method:"post",url:r.baseUrl+"mail/queues/:id/clone",params:{includeAll:"@includeAll"}},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"mail/queues/:id/members"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"mail/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"mail/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"mail/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"mail/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"mail/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"mail/queues/:id/users"}}),r.mailSubstatus=e(r.baseUrl+"mail/substatuses/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/substatuses/describe"},clone:{method:"post",url:r.baseUrl+"mail/substatuses/:id/clone",params:{includeAll:"@includeAll"}}}),r.mailInteraction=e(r.baseUrl+"mail/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/interactions/describe"},clone:{method:"post",url:r.baseUrl+"mail/interactions/:id/clone",params:{includeAll:"@includeAll"}},addMessage:{isArray:!1,method:"post",url:r.baseUrl+"mail/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"mail/interactions/:id/messages"},addTags:{isArray:!1,method:"post",url:r.baseUrl+"mail/interactions/:id/tags"},removeTags:{isArray:!1,method:"delete",url:r.baseUrl+"mail/interactions/:id/tags"},download:{isArray:!1,method:"get",url:r.baseUrl+"mail/interactions/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.mailMessage=e(r.baseUrl+"mail/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/messages/describe"},clone:{method:"post",url:r.baseUrl+"mail/messages/:id/clone",params:{includeAll:"@includeAll"}},accept:{isArray:!1,method:"put",url:r.baseUrl+"mail/messages/:id/accept"},reject:{isArray:!1,method:"put",url:r.baseUrl+"mail/messages/:id/reject"},download:{isArray:!1,method:"get",url:r.baseUrl+"mail/messages/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.mailApplication=e(r.baseUrl+"mail/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/applications/describe"},clone:{method:"post",url:r.baseUrl+"mail/applications/:id/clone",params:{includeAll:"@includeAll"}}}),r.mailQueueReport=e(r.baseUrl+"mail/reports/queue/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/reports/queue/describe"},clone:{method:"post",url:r.baseUrl+"mail/reports/queue/:id/clone",params:{includeAll:"@includeAll"}}}),r.dashboard=e(r.baseUrl+"dashboards/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"dashboards/describe"},clone:{method:"post",url:r.baseUrl+"dashboards/:id/clone",params:{includeAll:"@includeAll"}},addItem:{isArray:!1,method:"post",url:r.baseUrl+"dashboards/:id/items"},getItems:{isArray:!1,method:"get",url:r.baseUrl+"dashboards/:id/items"}}),r.dashboardItem=e(r.baseUrl+"dashboards/items/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"dashboards/items/describe"},clone:{method:"post",url:r.baseUrl+"dashboards/items/:id/clone",params:{includeAll:"@includeAll"}}}),r.faxAccount=e(r.baseUrl+"fax/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"fax/accounts/describe"},clone:{method:"post",url:r.baseUrl+"fax/accounts/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:r.baseUrl+"fax/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:r.baseUrl+"fax/accounts/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:r.baseUrl+"fax/accounts/:id/dispositions"},addAnswer:{isArray:!1,method:"post",url:r.baseUrl+"fax/accounts/:id/canned_answers"},getAnswers:{isArray:!1,method:"get",url:r.baseUrl+"fax/accounts/:id/canned_answers"},removeAnswers:{isArray:!1,method:"delete",url:r.baseUrl+"fax/accounts/:id/canned_answers"},addInteraction:{isArray:!1,method:"post",url:r.baseUrl+"fax/accounts/:id/interactions"},getInteractions:{isArray:!1,method:"get",url:r.baseUrl+"fax/accounts/:id/interactions"},addApplications:{isArray:!1,method:"post",url:r.baseUrl+"fax/accounts/:id/applications"},getApplications:{isArray:!1,method:"get",url:r.baseUrl+"fax/accounts/:id/applications"},addAccountApplications:{isArray:!1,method:"post",url:r.baseUrl+"fax/accounts/addaccountapplications"},updateAccountApplications:{isArray:!1,method:"post",url:r.baseUrl+"fax/accounts/updateaccountapplications"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"fax/accounts/:id/messages"},send:{isArray:!1,method:"post",url:r.baseUrl+"fax/accounts/:id/send"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"fax/accounts/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"fax/accounts/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"fax/accounts/:id/users"}}),r.faxApplication=e(r.baseUrl+"fax/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"fax/applications/describe"},clone:{method:"post",url:r.baseUrl+"fax/applications/:id/clone",params:{includeAll:"@includeAll"}}}),r.faxInteraction=e(r.baseUrl+"fax/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"fax/interactions/describe"},clone:{method:"post",url:r.baseUrl+"fax/interactions/:id/clone",params:{includeAll:"@includeAll"}},addMessage:{isArray:!1,method:"post",url:r.baseUrl+"fax/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"fax/interactions/:id/messages"},addTags:{isArray:!1,method:"post",url:r.baseUrl+"fax/interactions/:id/tags"},removeTags:{isArray:!1,method:"delete",url:r.baseUrl+"fax/interactions/:id/tags"},download:{isArray:!1,method:"get",url:r.baseUrl+"fax/interactions/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.faxMessage=e(r.baseUrl+"fax/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"fax/messages/describe"},clone:{method:"post",url:r.baseUrl+"fax/messages/:id/clone",params:{includeAll:"@includeAll"}},accept:{isArray:!1,method:"put",url:r.baseUrl+"fax/messages/:id/accept"},reject:{isArray:!1,method:"put",url:r.baseUrl+"fax/messages/:id/reject"},download:{isArray:!1,method:"get",url:r.baseUrl+"fax/messages/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.faxQueue=e(r.baseUrl+"fax/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"fax/queues/describe"},clone:{method:"post",url:r.baseUrl+"fax/queues/:id/clone",params:{includeAll:"@includeAll"}},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"fax/queues/:id/members"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"fax/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"fax/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"fax/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"fax/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"fax/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"fax/queues/:id/users"}}),r.faxQueueReport=e(r.baseUrl+"fax/reports/queue/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"fax/reports/queue/describe"},clone:{method:"post",url:r.baseUrl+"fax/reports/queue/:id/clone",params:{includeAll:"@includeAll"}}}),r.smsAccount=e(r.baseUrl+"sms/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sms/accounts/describe"},clone:{method:"post",url:r.baseUrl+"sms/accounts/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:r.baseUrl+"sms/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:r.baseUrl+"sms/accounts/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:r.baseUrl+"sms/accounts/:id/dispositions"},addAnswer:{isArray:!1,method:"post",url:r.baseUrl+"sms/accounts/:id/canned_answers"},getAnswers:{isArray:!1,method:"get",url:r.baseUrl+"sms/accounts/:id/canned_answers"},removeAnswers:{isArray:!1,method:"delete",url:r.baseUrl+"sms/accounts/:id/canned_answers"},notify:{isArray:!1,method:"post",url:r.baseUrl+"sms/accounts/:id/notify"},addApplications:{isArray:!1,method:"post",url:r.baseUrl+"sms/accounts/:id/applications"},getApplications:{isArray:!1,method:"get",url:r.baseUrl+"sms/accounts/:id/applications"},getInteractions:{isArray:!1,method:"get",url:r.baseUrl+"sms/accounts/:id/interactions"},send:{isArray:!1,method:"post",url:r.baseUrl+"sms/accounts/:id/send"},status:{isArray:!1,method:"post",url:r.baseUrl+"sms/accounts/:id/status"},statusGet:{isArray:!1,method:"get",url:r.baseUrl+"sms/accounts/:id/status"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"sms/accounts/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"sms/accounts/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"sms/accounts/:id/users"}}),r.smsApplication=e(r.baseUrl+"sms/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sms/applications/describe"},clone:{method:"post",url:r.baseUrl+"sms/applications/:id/clone",params:{includeAll:"@includeAll"}}}),r.smsInteraction=e(r.baseUrl+"sms/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sms/interactions/describe"},clone:{method:"post",url:r.baseUrl+"sms/interactions/:id/clone",params:{includeAll:"@includeAll"}},addMessage:{isArray:!1,method:"post",url:r.baseUrl+"sms/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"sms/interactions/:id/messages"},addTags:{isArray:!1,method:"post",url:r.baseUrl+"sms/interactions/:id/tags"},removeTags:{isArray:!1,method:"delete",url:r.baseUrl+"sms/interactions/:id/tags"},download:{isArray:!1,method:"get",url:r.baseUrl+"sms/interactions/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.smsMessage=e(r.baseUrl+"sms/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sms/messages/describe"},clone:{method:"post",url:r.baseUrl+"sms/messages/:id/clone",params:{includeAll:"@includeAll"}},accept:{isArray:!1,method:"put",url:r.baseUrl+"sms/messages/:id/accept"},reject:{isArray:!1,method:"put",url:r.baseUrl+"sms/messages/:id/reject"},status:{isArray:!1,method:"post",url:r.baseUrl+"sms/messages/:id/status"}}),r.smsQueue=e(r.baseUrl+"sms/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sms/queues/describe"},clone:{method:"post",url:r.baseUrl+"sms/queues/:id/clone",params:{includeAll:"@includeAll"}},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"sms/queues/:id/members"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"sms/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"sms/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"sms/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"sms/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"sms/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"sms/queues/:id/users"}}),r.openchannelAccount=e(r.baseUrl+"openchannel/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"openchannel/accounts/describe"},clone:{method:"post",url:r.baseUrl+"openchannel/accounts/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:r.baseUrl+"openchannel/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/accounts/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:r.baseUrl+"openchannel/accounts/:id/dispositions"},addAnswer:{isArray:!1,method:"post",url:r.baseUrl+"openchannel/accounts/:id/canned_answers"},getAnswers:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/accounts/:id/canned_answers"},removeAnswers:{isArray:!1,method:"delete",url:r.baseUrl+"openchannel/accounts/:id/canned_answers"},notify:{isArray:!1,method:"post",url:r.baseUrl+"openchannel/accounts/:id/notify"},addApplications:{isArray:!1,method:"post",url:r.baseUrl+"openchannel/accounts/:id/applications"},getApplications:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/accounts/:id/applications"},getInteractions:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/accounts/:id/interactions"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"openchannel/accounts/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"openchannel/accounts/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/accounts/:id/users"},send:{isArray:!1,method:"post",url:r.baseUrl+"openchannel/accounts/:id/send"}}),r.openchannelApplication=e(r.baseUrl+"openchannel/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"openchannel/applications/describe"},clone:{method:"post",url:r.baseUrl+"openchannel/applications/:id/clone",params:{includeAll:"@includeAll"}}}),r.openchannelInteraction=e(r.baseUrl+"openchannel/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"openchannel/interactions/describe"},clone:{method:"post",url:r.baseUrl+"openchannel/interactions/:id/clone",params:{includeAll:"@includeAll"}},addMessage:{isArray:!1,method:"post",url:r.baseUrl+"openchannel/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/interactions/:id/messages"},addTags:{isArray:!1,method:"post",url:r.baseUrl+"openchannel/interactions/:id/tags"},removeTags:{isArray:!1,method:"delete",url:r.baseUrl+"openchannel/interactions/:id/tags"},download:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/interactions/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.openchannelMessage=e(r.baseUrl+"openchannel/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"openchannel/messages/describe"},clone:{method:"post",url:r.baseUrl+"openchannel/messages/:id/clone",params:{includeAll:"@includeAll"}},accept:{isArray:!1,method:"put",url:r.baseUrl+"openchannel/messages/:id/accept"},reject:{isArray:!1,method:"put",url:r.baseUrl+"openchannel/messages/:id/reject"}}),r.openchannelQueue=e(r.baseUrl+"openchannel/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"openchannel/queues/describe"},clone:{method:"post",url:r.baseUrl+"openchannel/queues/:id/clone",params:{includeAll:"@includeAll"}},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/queues/:id/members"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"openchannel/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"openchannel/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"openchannel/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"openchannel/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/queues/:id/users"}}),r.chatWebsite=e(r.baseUrl+"chat/websites/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/websites/describe"},clone:{method:"post",url:r.baseUrl+"chat/websites/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:r.baseUrl+"chat/websites/:id/dispositions"},addAnswer:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/canned_answers"},getAnswers:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/canned_answers"},removeAnswers:{isArray:!1,method:"delete",url:r.baseUrl+"chat/websites/:id/canned_answers"},addLogo:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/logo"},addAvatar:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/avatar"},addCustomerAvatar:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/customer_avatar"},addSystemAvatar:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/system_avatar"},getLogo:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/logo"},getAvatar:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/avatar"},getCustomerAvatar:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/customer_avatar"},getSystemAvatar:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/system_avatar"},notify:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/notify"},offline:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/offline"},addInteraction:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/interactions"},getInteractions:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/interactions"},getSnippet:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/snippet"},addApplications:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/applications"},getApplications:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/applications"},addProactiveActions:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/proactive_actions"},getProactiveActions:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/proactive_actions"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/fields"},getOfflineMessages:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/offline_messages"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"chat/websites/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"chat/websites/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/users"}}),r.openchannelQueueReport=e(r.baseUrl+"openchannel/reports/queue/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"openchannel/reports/queue/describe"},clone:{method:"post",url:r.baseUrl+"openchannel/reports/queue/:id/clone",params:{includeAll:"@includeAll"}}}),r.chatApplication=e(r.baseUrl+"chat/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/applications/describe"},clone:{method:"post",url:r.baseUrl+"chat/applications/:id/clone",params:{includeAll:"@includeAll"}}}),r.chatInteraction=e(r.baseUrl+"chat/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/interactions/describe"},clone:{method:"post",url:r.baseUrl+"chat/interactions/:id/clone",params:{includeAll:"@includeAll"}},createVidaooSession:{isArray:!1,method:"post",url:r.baseUrl+"chat/interactions/:id/vidaoo"},customUpdate:{isArray:!1,method:"put",url:r.baseUrl+"chat/interactions/:id/custom_update"},abandon:{isArray:!1,method:"put",url:r.baseUrl+"chat/interactions/:id/abandon"},attachmentUpload:{isArray:!1,method:"post",url:r.baseUrl+"chat/interactions/:id/attachment_upload"},attachmentDownload:{isArray:!1,method:"get",url:r.baseUrl+"chat/interactions/:id/attachment_download"},close:{isArray:!1,method:"put",url:r.baseUrl+"chat/interactions/:id/close"},addMessage:{isArray:!1,method:"post",url:r.baseUrl+"chat/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"chat/interactions/:id/messages"},getMyMessages:{isArray:!1,method:"get",url:r.baseUrl+"chat/interactions/:id/my_messages"},addTags:{isArray:!1,method:"post",url:r.baseUrl+"chat/interactions/:id/tags"},removeTags:{isArray:!1,method:"delete",url:r.baseUrl+"chat/interactions/:id/tags"},download:{isArray:!1,method:"get",url:r.baseUrl+"chat/interactions/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.chatMessage=e(r.baseUrl+"chat/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/messages/describe"},clone:{method:"post",url:r.baseUrl+"chat/messages/:id/clone",params:{includeAll:"@includeAll"}},accept:{isArray:!1,method:"put",url:r.baseUrl+"chat/messages/:id/accept"},reject:{isArray:!1,method:"put",url:r.baseUrl+"chat/messages/:id/reject"}}),r.chatOfflineMessage=e(r.baseUrl+"chat/offline_messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/offline_messages/describe"},clone:{method:"post",url:r.baseUrl+"chat/offline_messages/:id/clone",params:{includeAll:"@includeAll"}}}),r.chatQueue=e(r.baseUrl+"chat/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/queues/describe"},clone:{method:"post",url:r.baseUrl+"chat/queues/:id/clone",params:{includeAll:"@includeAll"}},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"chat/queues/:id/members"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"chat/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"chat/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"chat/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"chat/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"chat/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"chat/queues/:id/users"}}),r.chatGroup=e(r.baseUrl+"chat/groups/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/groups/describe"},clone:{method:"post",url:r.baseUrl+"chat/groups/:id/clone",params:{includeAll:"@includeAll"}},getUnread:{isArray:!1,method:"get",url:r.baseUrl+"chat/groups/:id/unread"},addMembers:{isArray:!0,method:"post",url:r.baseUrl+"chat/groups/:id/members"},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"chat/groups/:id/members"},removeMembers:{isArray:!1,method:"delete",url:r.baseUrl+"chat/groups/:id/members"},addMessage:{isArray:!1,method:"post",url:r.baseUrl+"chat/groups/:id/messages"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"chat/groups/:id/messages"}}),r.chatProactiveAction=e(r.baseUrl+"chat/proactive_actions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/proactive_actions/describe"},clone:{method:"post",url:r.baseUrl+"chat/proactive_actions/:id/clone",params:{includeAll:"@includeAll"}}}),r.cmCompany=e(r.baseUrl+"cm/companies/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/companies/describe"},clone:{method:"post",url:r.baseUrl+"cm/companies/:id/clone",params:{includeAll:"@includeAll"}},addContacts:{isArray:!1,method:"post",url:r.baseUrl+"cm/companies/:id/contacts"},getContacts:{isArray:!1,method:"get",url:r.baseUrl+"cm/companies/:id/contacts"}}),r.cmContact=e(r.baseUrl+"cm/contacts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/contacts/describe"},clone:{method:"post",url:r.baseUrl+"cm/contacts/:id/clone",params:{includeAll:"@includeAll"}},merge:{isArray:!1,method:"post",url:r.baseUrl+"cm/contacts/merge"},bulkCreate:{isArray:!1,method:"post",url:r.baseUrl+"cm/contacts/create_many"},getTags:{isArray:!1,method:"get",url:r.baseUrl+"cm/contacts/:id/tags"},setTags:{isArray:!0,method:"post",url:r.baseUrl+"cm/contacts/:id/tags"},getHoppers:{isArray:!1,method:"get",url:r.baseUrl+"cm/contacts/:id/hoppers"},getHopperHistories:{isArray:!1,method:"get",url:r.baseUrl+"cm/contacts/:id/hopper_histories"},getHopperFinals:{isArray:!1,method:"get",url:r.baseUrl+"cm/contacts/:id/hopper_finals"},getJscriptySessions:{isArray:!1,method:"get",url:r.baseUrl+"cm/contacts/:id/jscripty_sessions"},uploadCsv:{isArray:!1,method:"post",url:r.baseUrl+"cm/contacts/csv"},upload:{isArray:!1,method:"post",url:r.baseUrl+"cm/contacts/upload"},import:{isArray:!1,method:"post",url:r.baseUrl+"cm/contacts/upload/:id"},getJourney:{isArray:!1,method:"get",url:r.baseUrl+"cm/contacts/:id/journey"}}),r.cmHopper=e(r.baseUrl+"cm/hopper/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/hopper/describe"},clone:{method:"post",url:r.baseUrl+"cm/hopper/:id/clone",params:{includeAll:"@includeAll"}},getPreview:{isArray:!1,method:"post",url:r.baseUrl+"cm/hopper/preview"},getOpenContacts:{isArray:!1,method:"get",url:r.baseUrl+"cm/hopper/opencontacts"}}),r.cmHopperBlack=e(r.baseUrl+"cm/hopper_black/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/hopper_black/describe"},clone:{method:"post",url:r.baseUrl+"cm/hopper_black/:id/clone",params:{includeAll:"@includeAll"}}}),r.cmHopperFinal=e(r.baseUrl+"cm/hopper_final/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/hopper_final/describe"},clone:{method:"post",url:r.baseUrl+"cm/hopper_final/:id/clone",params:{includeAll:"@includeAll"}},countContactsQueueCampaignHopperFinal:{isArray:!0,method:"get",url:r.baseUrl+"cm/hopper_final/voice/queue/countAttributes/:id"},countContactsIvrCampaignHopperFinal:{isArray:!0,method:"get",url:r.baseUrl+"cm/hopper_final/campaign/countAttributes/:id"},moveContactsQueueCampaignHopperFinal:{isArray:!0,method:"post",url:r.baseUrl+"cm/hopper_final/voice/queue/moveContacts/:id"},moveContactsIvrCampaignHopperFinal:{isArray:!0,method:"post",url:r.baseUrl+"cm/hopper_final/voice/campaign/moveContacts/:id"},checkContactHopper:{isArray:!1,method:"post",url:r.baseUrl+"cm/hopper_final/checkContactHopper"}}),r.cmHopperHistory=e(r.baseUrl+"cm/hopper_history/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/hopper_history/describe"},clone:{method:"post",url:r.baseUrl+"cm/hopper_history/:id/clone",params:{includeAll:"@includeAll"}}}),r.cmCustomField=e(r.baseUrl+"cm/custom_fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/custom_fields/describe"},clone:{method:"post",url:r.baseUrl+"cm/custom_fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.action=e(r.baseUrl+"actions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"actions/describe"},clone:{method:"post",url:r.baseUrl+"actions/:id/clone",params:{includeAll:"@includeAll"}}}),r.automation=e(r.baseUrl+"automations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"automations/describe"},clone:{method:"post",url:r.baseUrl+"automations/:id/clone",params:{includeAll:"@includeAll"}},addConditions:{isArray:!1,method:"post",url:r.baseUrl+"automations/:id/conditions"},getConditions:{isArray:!1,method:"get",url:r.baseUrl+"automations/:id/conditions"},addActions:{isArray:!1,method:"post",url:r.baseUrl+"automations/:id/actions"},getActions:{isArray:!1,method:"get",url:r.baseUrl+"automations/:id/actions"}}),r.cannedAnswer=e(r.baseUrl+"canned_answers/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"canned_answers/describe"},clone:{method:"post",url:r.baseUrl+"canned_answers/:id/clone",params:{includeAll:"@includeAll"}}}),r.disposition=e(r.baseUrl+"dispositions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"dispositions/describe"},clone:{method:"post",url:r.baseUrl+"dispositions/:id/clone",params:{includeAll:"@includeAll"}}}),r.condition=e(r.baseUrl+"conditions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"conditions/describe"},clone:{method:"post",url:r.baseUrl+"conditions/:id/clone",params:{includeAll:"@includeAll"}}}),r.interval=e(r.baseUrl+"intervals/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"intervals/describe"},clone:{method:"post",url:r.baseUrl+"intervals/:id/clone",params:{includeAll:"@includeAll"}},addInterval:{isArray:!1,method:"post",url:r.baseUrl+"intervals/:id/sub_intervals"},getIntervals:{isArray:!1,method:"get",url:r.baseUrl+"intervals/:id/sub_intervals"},addIntervals:{isArray:!0,method:"post",url:r.baseUrl+"intervals/:id/sub_intervals/create_many"}}),r.pause=e(r.baseUrl+"pauses/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"pauses/describe"},clone:{method:"post",url:r.baseUrl+"pauses/:id/clone",params:{includeAll:"@includeAll"}}}),r.cdr=e(r.baseUrl+"cdr/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cdr/describe"},clone:{method:"post",url:r.baseUrl+"cdr/:id/clone",params:{includeAll:"@includeAll"}}}),r.voiceQueuesLog=e(r.baseUrl+"voiceQueuesLog/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voiceQueuesLog/describe"},clone:{method:"post",url:r.baseUrl+"voiceQueuesLog/:id/clone",params:{includeAll:"@includeAll"}}}),r.schedule=e(r.baseUrl+"schedules/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"schedules/describe"},clone:{method:"post",url:r.baseUrl+"schedules/:id/clone",params:{includeAll:"@includeAll"}},run:{isArray:!1,method:"get",url:r.baseUrl+"schedules/:id/run"}}),r.sound=e(r.baseUrl+"sounds/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sounds/describe"},clone:{method:"post",url:r.baseUrl+"sounds/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"sounds/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}},delete:{isArray:!1,method:"delete",url:r.baseUrl+"sounds/:id"}}),r.tag=e(r.baseUrl+"tags/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"tags/describe"},clone:{method:"post",url:r.baseUrl+"tags/:id/clone",params:{includeAll:"@includeAll"}}}),r.template=e(r.baseUrl+"templates/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"templates/describe"},clone:{method:"post",url:r.baseUrl+"templates/:id/clone",params:{includeAll:"@includeAll"}}}),r.trigger=e(r.baseUrl+"triggers/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"triggers/describe"},clone:{method:"post",url:r.baseUrl+"triggers/:id/clone",params:{includeAll:"@includeAll"}},addAllCondition:{isArray:!1,method:"post",url:r.baseUrl+"triggers/:id/all_conditions"},addAnyCondition:{isArray:!1,method:"post",url:r.baseUrl+"triggers/:id/any_conditions"},getAllConditions:{isArray:!1,method:"get",url:r.baseUrl+"triggers/:id/all_conditions"},getAnyConditions:{isArray:!1,method:"get",url:r.baseUrl+"triggers/:id/any_conditions"},addAction:{isArray:!1,method:"post",url:r.baseUrl+"triggers/:id/actions"},getActions:{isArray:!1,method:"get",url:r.baseUrl+"triggers/:id/actions"}}),r.variable=e(r.baseUrl+"variables/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"variables/describe"},clone:{method:"post",url:r.baseUrl+"variables/:id/clone",params:{includeAll:"@includeAll"}}}),r.integration=e(r.baseUrl+"integrations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/:id/clone",params:{includeAll:"@includeAll"}}}),r.integrationReport=e(r.baseUrl+"integrations/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/reports/describe"},clone:{method:"post",url:r.baseUrl+"integrations/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.analyticCustomReport=e(r.baseUrl+"analytics/custom_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"analytics/custom_reports/describe"},clone:{method:"post",url:r.baseUrl+"analytics/custom_reports/:id/clone",params:{includeAll:"@includeAll"}},preview:{isArray:!0,method:"get",url:r.baseUrl+"analytics/custom_reports/:id/preview"},run:{isArray:!1,method:"get",url:r.baseUrl+"analytics/custom_reports/:id/run"},query:{isArray:!1,method:"get",url:r.baseUrl+"analytics/custom_reports/:id/query"}}),r.analyticDefaultReport=e(r.baseUrl+"analytics/default_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"analytics/default_reports/describe"},clone:{method:"post",url:r.baseUrl+"analytics/default_reports/:id/clone",params:{includeAll:"@includeAll"}},preview:{isArray:!0,method:"get",url:r.baseUrl+"analytics/default_reports/:id/preview"},run:{isArray:!1,method:"get",url:r.baseUrl+"analytics/default_reports/:id/run"},query:{isArray:!1,method:"get",url:r.baseUrl+"analytics/default_reports/:id/query"}}),r.analyticExtractedReport=e(r.baseUrl+"analytics/extracted_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"analytics/extracted_reports/describe"},clone:{method:"post",url:r.baseUrl+"analytics/extracted_reports/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"analytics/extracted_reports/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.analyticMetric=e(r.baseUrl+"analytics/metrics/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"analytics/metrics/describe"},clone:{method:"post",url:r.baseUrl+"analytics/metrics/:id/clone",params:{includeAll:"@includeAll"}}}),r.analyticFieldReport=e(r.baseUrl+"analytics/field_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"analytics/field_reports/describe"},clone:{method:"post",url:r.baseUrl+"analytics/field_reports/:id/clone",params:{includeAll:"@includeAll"}},bulkCreate:{method:"post",url:r.baseUrl+"analytics/field_reports/create_many",isArray:!0},bulkDestroy:{method:"delete",url:r.baseUrl+"analytics/field_reports/destroy_many",isArray:!0},addFields:{isArray:!0,method:"post",url:r.baseUrl+"analytics/field_reports/:id/create_many"}}),r.analyticTreeReport=e(r.baseUrl+"analytics/tree_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"analytics/tree_reports/describe"},clone:{method:"post",url:r.baseUrl+"analytics/tree_reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.intSalesforceAccount=e(r.baseUrl+"integrations/salesforce/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/salesforce/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/salesforce/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/salesforce/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/salesforce/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/salesforce/accounts/:id/fields"}}),r.intSalesforceConfiguration=e(r.baseUrl+"integrations/salesforce/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/salesforce/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/salesforce/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/salesforce/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/salesforce/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/salesforce/configurations/:id/descriptions"}}),r.intSalesforceField=e(r.baseUrl+"integrations/salesforce/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/salesforce/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/salesforce/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intSugarcrmAccount=e(r.baseUrl+"integrations/sugarcrm/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/sugarcrm/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/sugarcrm/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/sugarcrm/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/sugarcrm/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/sugarcrm/accounts/:id/fields"}}),r.intSugarcrmConfiguration=e(r.baseUrl+"integrations/sugarcrm/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/sugarcrm/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/sugarcrm/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/sugarcrm/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/sugarcrm/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/sugarcrm/configurations/:id/descriptions"}}),r.intSugarcrmField=e(r.baseUrl+"integrations/sugarcrm/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/sugarcrm/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/sugarcrm/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intDeskAccount=e(r.baseUrl+"integrations/desk/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/desk/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/desk/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/desk/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/desk/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/desk/accounts/:id/fields"}}),r.intDeskConfiguration=e(r.baseUrl+"integrations/desk/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/desk/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/desk/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/desk/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/desk/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/desk/configurations/:id/descriptions"},getTags:{isArray:!1,method:"get",url:r.baseUrl+"integrations/desk/configurations/:id/tags"},setTags:{isArray:!0,method:"post",url:r.baseUrl+"integrations/desk/configurations/:id/tags"}}),r.intDeskField=e(r.baseUrl+"integrations/desk/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/desk/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/desk/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intZohoAccount=e(r.baseUrl+"integrations/zoho/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/zoho/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/zoho/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zoho/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/zoho/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zoho/accounts/:id/fields"}}),r.intZohoConfiguration=e(r.baseUrl+"integrations/zoho/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/zoho/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/zoho/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zoho/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zoho/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zoho/configurations/:id/descriptions"}}),r.intZohoField=e(r.baseUrl+"integrations/zoho/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/zoho/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/zoho/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intZendeskAccount=e(r.baseUrl+"integrations/zendesk/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/zendesk/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/zendesk/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zendesk/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/zendesk/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zendesk/accounts/:id/fields"}}),r.intZendeskConfiguration=e(r.baseUrl+"integrations/zendesk/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/zendesk/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/zendesk/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zendesk/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zendesk/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zendesk/configurations/:id/descriptions"},getTags:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zendesk/configurations/:id/tags"},setTags:{isArray:!0,method:"post",url:r.baseUrl+"integrations/zendesk/configurations/:id/tags"}}),r.intZendeskField=e(r.baseUrl+"integrations/zendesk/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/zendesk/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/zendesk/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intFreshdeskAccount=e(r.baseUrl+"integrations/freshdesk/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/freshdesk/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/freshdesk/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshdesk/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/freshdesk/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshdesk/accounts/:id/fields"}}),r.intFreshdeskConfiguration=e(r.baseUrl+"integrations/freshdesk/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/freshdesk/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/freshdesk/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshdesk/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshdesk/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshdesk/configurations/:id/descriptions"},getTags:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshdesk/configurations/:id/tags"},setTags:{isArray:!0,method:"post",url:r.baseUrl+"integrations/freshdesk/configurations/:id/tags"}}),r.intFreshdeskField=e(r.baseUrl+"integrations/freshdesk/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/freshdesk/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/freshdesk/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intVtigerAccount=e(r.baseUrl+"integrations/vtiger/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/vtiger/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/vtiger/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/vtiger/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/vtiger/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/vtiger/accounts/:id/fields"}}),r.intVtigerConfiguration=e(r.baseUrl+"integrations/vtiger/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/vtiger/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/vtiger/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/vtiger/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/vtiger/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/vtiger/configurations/:id/descriptions"}}),r.intVtigerField=e(r.baseUrl+"integrations/vtiger/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/vtiger/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/vtiger/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intServicenowAccount=e(r.baseUrl+"integrations/servicenow/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/servicenow/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/servicenow/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/servicenow/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/servicenow/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/servicenow/accounts/:id/fields"}}),r.intServicenowConfiguration=e(r.baseUrl+"integrations/servicenow/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/servicenow/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/servicenow/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/servicenow/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/servicenow/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/servicenow/configurations/:id/descriptions"}}),r.intServicenowField=e(r.baseUrl+"integrations/servicenow/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/servicenow/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/servicenow/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intDynamics365Account=e(r.baseUrl+"integrations/dynamics365/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/dynamics365/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/dynamics365/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/dynamics365/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/dynamics365/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/dynamics365/accounts/:id/fields"}}),r.intDynamics365Configuration=e(r.baseUrl+"integrations/dynamics365/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/dynamics365/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/dynamics365/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/dynamics365/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/dynamics365/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/dynamics365/configurations/:id/descriptions"}}),r.intDynamics365Field=e(r.baseUrl+"integrations/dynamics365/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/dynamics365/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/dynamics365/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intFreshsalesAccount=e(r.baseUrl+"integrations/freshsales/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/freshsales/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/freshsales/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshsales/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/freshsales/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshsales/accounts/:id/fields"}}),r.intFreshsalesConfiguration=e(r.baseUrl+"integrations/freshsales/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/freshsales/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/freshsales/configurations/:id/clone",params:{includeAll:"@includeAll"}},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshsales/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshsales/configurations/:id/descriptions"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshsales/configurations/:id/fields"}}),r.intFreshsalesField=e(r.baseUrl+"integrations/freshsales/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/freshsales/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/freshsales/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.network=e(r.baseUrl+"networks/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"networks/describe"},clone:{method:"post",url:r.baseUrl+"networks/:id/clone",params:{includeAll:"@includeAll"}}}),r.chatQueueReport=e(r.baseUrl+"chat/reports/queue/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/reports/queue/describe"},clone:{method:"post",url:r.baseUrl+"chat/reports/queue/:id/clone",params:{includeAll:"@includeAll"}}}),r.chatInternalMessage=e(r.baseUrl+"chat/internal/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/internal/messages/describe"},clone:{method:"post",url:r.baseUrl+"chat/internal/messages/:id/clone",params:{includeAll:"@includeAll"}},getUsers:{isArray:!1,method:"get",url:r.baseUrl+"chat/internal/messages/users"}}),r.jscriptyAnswerReport=e(r.baseUrl+"jscripty/answers/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"jscripty/answers/reports/describe"},clone:{method:"post",url:r.baseUrl+"jscripty/answers/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.jscriptyQuestionReport=e(r.baseUrl+"jscripty/questions/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"jscripty/questions/reports/describe"},clone:{method:"post",url:r.baseUrl+"jscripty/questions/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.jscriptySessionReport=e(r.baseUrl+"jscripty/sessions/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"jscripty/sessions/reports/describe"},clone:{method:"post",url:r.baseUrl+"jscripty/sessions/reports/:id/clone",params:{includeAll:"@includeAll"}},getQuestions:{isArray:!1,method:"get",url:r.baseUrl+"jscripty/sessions/reports/:id/questions"}}),r.smsQueueReport=e(r.baseUrl+"sms/reports/queue/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sms/reports/queue/describe"},clone:{method:"post",url:r.baseUrl+"sms/reports/queue/:id/clone",params:{includeAll:"@includeAll"}}}),r.squareReport=e(r.baseUrl+"square/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"square/reports/describe"},clone:{method:"post",url:r.baseUrl+"square/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.squareReportDetail=e(r.baseUrl+"square/details/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"square/details/reports/describe"},clone:{method:"post",url:r.baseUrl+"square/details/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.jscriptyProject=e(r.baseUrl+"jscripty/projects/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"jscripty/projects/describe"},clone:{method:"post",url:r.baseUrl+"jscripty/projects/:id/clone",params:{includeAll:"@includeAll"}},getSessions:{isArray:!1,method:"get",url:r.baseUrl+"jscripty/projects/:id/sessions"},getAnswers:{isArray:!1,method:"get",url:r.baseUrl+"jscripty/projects/:id/answers"},getSummary:{isArray:!1,method:"get",url:r.baseUrl+"jscripty/projects/:id/summary",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.setting=e(r.baseUrl+"settings/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"settings/describe"},clone:{method:"post",url:r.baseUrl+"settings/:id/clone",params:{includeAll:"@includeAll"}},addLogo:{isArray:!1,method:"post",url:r.baseUrl+"settings/:id/logo"},addLogoLogin:{isArray:!1,method:"post",url:r.baseUrl+"settings/:id/logo_login"},getLogo:{isArray:!1,method:"get",url:r.baseUrl+"settings/:id/logo"},getLogoLogin:{isArray:!1,method:"get",url:r.baseUrl+"settings/:id/logo_login"},gdpr:{isArray:!1,method:"get",url:r.baseUrl+"settings/:id/gdpr"},addPreferred:{isArray:!1,method:"post",url:r.baseUrl+"settings/:id/preferred"},getPreferred:{isArray:!1,method:"get",url:r.baseUrl+"settings/:id/preferred"},addFavicon:{isArray:!1,method:"post",url:r.baseUrl+"settings/:id/favicon"},getFavicon:{isArray:!1,method:"get",url:r.baseUrl+"settings/:id/favicon"},getDate:{isArray:!1,method:"get",url:r.baseUrl+"settings/now"}}),r.squareOdbc=e(r.baseUrl+"square/odbc/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"square/odbc/describe"},clone:{method:"post",url:r.baseUrl+"square/odbc/:id/clone",params:{includeAll:"@includeAll"}},test:{isArray:!1,method:"get",url:r.baseUrl+"square/odbc/:id/test"}}),r.squareProject=e(r.baseUrl+"square/projects/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"square/projects/describe"},clone:{method:"post",url:r.baseUrl+"square/projects/:id/clone",params:{includeAll:"@includeAll"}},addUsers:{isArray:!0,method:"post",url:r.baseUrl+"square/projects/:id/users"},removeUsers:{isArray:!1,method:"delete",url:r.baseUrl+"square/projects/:id/users"},getUsers:{isArray:!1,method:"get",url:r.baseUrl+"square/projects/:id/users"}}),r.squareRecording=e(r.baseUrl+"square/recordings/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"square/recordings/describe"},clone:{method:"post",url:r.baseUrl+"square/recordings/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"square/recordings/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.squareMessage=e(r.baseUrl+"square/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"square/messages/describe"},clone:{method:"post",url:r.baseUrl+"square/messages/:id/clone",params:{includeAll:"@includeAll"}}}),r.team=e(r.baseUrl+"teams/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"teams/describe"},clone:{method:"post",url:r.baseUrl+"teams/:id/clone",params:{includeAll:"@includeAll"}},getQueues:{isArray:!0,method:"get",url:r.baseUrl+"teams/:id/queues"},addQueues:{isArray:!0,method:"post",url:r.baseUrl+"teams/:id/queues"},removeQueues:{isArray:!1,method:"delete",url:r.baseUrl+"teams/:id/queues"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"teams/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"teams/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"teams/:id/users"}}),r.license=e(r.baseUrl+"license/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"license/describe"},clone:{method:"post",url:r.baseUrl+"license/:id/clone",params:{includeAll:"@includeAll"}}}),r.campaign=e(r.baseUrl+"campaigns/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"campaigns/describe"},clone:{method:"post",url:r.baseUrl+"campaigns/:id/clone",params:{includeAll:"@includeAll"}},getHoppers:{isArray:!1,method:"get",url:r.baseUrl+"campaigns/:id/hoppers"},getHopperHistories:{isArray:!1,method:"get",url:r.baseUrl+"campaigns/:id/hopper_histories"},getHopperFinals:{isArray:!1,method:"get",url:r.baseUrl+"campaigns/:id/hopper_finals"},getHopperBlacks:{isArray:!1,method:"get",url:r.baseUrl+"campaigns/:id/hopper_black"},getLists:{isArray:!1,method:"get",url:r.baseUrl+"campaigns/:id/lists"},addLists:{isArray:!0,method:"post",url:r.baseUrl+"campaigns/:id/lists"},removeLists:{isArray:!0,method:"delete",url:r.baseUrl+"campaigns/:id/lists"},getBlackLists:{isArray:!1,method:"get",url:r.baseUrl+"campaigns/:id/blacklists"},addBlackLists:{isArray:!0,method:"post",url:r.baseUrl+"campaigns/:id/blacklists"},removeBlackLists:{isArray:!0,method:"delete",url:r.baseUrl+"campaigns/:id/blacklists"}}),r.migration=e(r.baseUrl+"migrations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"migrations/describe"},clone:{method:"post",url:r.baseUrl+"migrations/:id/clone",params:{includeAll:"@includeAll"}}}),r.attachment=e(r.baseUrl+"attachments/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"attachments/describe"},clone:{method:"post",url:r.baseUrl+"attachments/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"attachments/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.plugin=e(r.baseUrl+"plugins/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"plugins/describe"},clone:{method:"post",url:r.baseUrl+"plugins/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"plugins/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}},upload:{isArray:!1,method:"post",url:r.baseUrl+"plugins/"},delete:{isArray:!1,method:"delete",url:r.baseUrl+"plugins/:id"},webhookGet:{isArray:!1,method:"get",url:r.baseUrl+"plugins/webhook"},webhookPost:{isArray:!1,method:"post",url:r.baseUrl+"plugins/webhook"}}),r.mailTransferReport=e(r.baseUrl+"mail/reports/transfer/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/reports/transfer/describe"},clone:{method:"post",url:r.baseUrl+"mail/reports/transfer/:id/clone",params:{includeAll:"@includeAll"}}}),r.chatTransferReport=e(r.baseUrl+"chat/reports/transfer/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/reports/transfer/describe"},clone:{method:"post",url:r.baseUrl+"chat/reports/transfer/:id/clone",params:{includeAll:"@includeAll"}}}),r.faxTransferReport=e(r.baseUrl+"fax/reports/transfer/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"fax/reports/transfer/describe"},clone:{method:"post",url:r.baseUrl+"fax/reports/transfer/:id/clone",params:{includeAll:"@includeAll"}}}),r.openchannelTransferReport=e(r.baseUrl+"openchannel/reports/transfer/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"openchannel/reports/transfer/describe"},clone:{method:"post",url:r.baseUrl+"openchannel/reports/transfer/:id/clone",params:{includeAll:"@includeAll"}}}),r.smsTransferReport=e(r.baseUrl+"sms/reports/transfer/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sms/reports/transfer/describe"},clone:{method:"post",url:r.baseUrl+"sms/reports/transfer/:id/clone",params:{includeAll:"@includeAll"}}}),r.cmList=e(r.baseUrl+"cm/lists/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/lists/describe"},clone:{method:"post",url:r.baseUrl+"cm/lists/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:r.baseUrl+"cm/lists/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:r.baseUrl+"cm/lists/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:r.baseUrl+"cm/lists/:id/dispositions"},addContacts:{isArray:!1,method:"post",url:r.baseUrl+"cm/lists/:id/contacts"},getContacts:{isArray:!0,method:"get",url:r.baseUrl+"cm/lists/:id/contacts"},getContactsCsv:{isArray:!1,method:"get",url:r.baseUrl+"cm/lists/:id/contacts/csv",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}},addCustomField:{isArray:!1,method:"post",url:r.baseUrl+"cm/lists/:id/fields"},getCustomFields:{isArray:!1,method:"get",url:r.baseUrl+"cm/lists/:id/fields"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"cm/lists/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"cm/lists/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"cm/lists/:id/users"}}),r.voicePrefix=e(r.baseUrl+"voice/prefixes/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/prefixes/describe"},clone:{method:"post",url:r.baseUrl+"voice/prefixes/:id/clone",params:{includeAll:"@includeAll"}},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"voice/prefixes/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"voice/prefixes/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"voice/prefixes/:id/users"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"voice/prefixes/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"voice/prefixes/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"voice/prefixes/:id/teams"}}),r.userProfile=e(r.baseUrl+"userProfiles/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"userProfiles/describe"},clone:{method:"post",url:r.baseUrl+"userProfiles/:id/clone",params:{includeAll:"@includeAll"}},addSections:{isArray:!0,method:"post",url:r.baseUrl+"userProfiles/:id/sections"},removeSections:{isArray:!1,method:"delete",url:r.baseUrl+"userProfiles/:id/sections"},getSections:{isArray:!0,method:"get",url:r.baseUrl+"userProfiles/:id/sections"},addResources:{isArray:!0,method:"post",url:r.baseUrl+"userProfiles/:id/resources"},removeResources:{isArray:!1,method:"delete",url:r.baseUrl+"userProfiles/:id/resources"},getResources:{isArray:!1,method:"get",url:r.baseUrl+"userProfiles/:id/resources"}}),r.userProfileSection=e(r.baseUrl+"userProfile/sections/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"userProfile/sections/describe"},clone:{method:"post",url:r.baseUrl+"userProfile/sections/:id/clone",params:{includeAll:"@includeAll"}}}),r.userProfileResource=e(r.baseUrl+"userProfile/resources/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"userProfile/resources/describe"},clone:{method:"post",url:r.baseUrl+"userProfile/resources/:id/clone",params:{includeAll:"@includeAll"}}}),r.userNotification=e(r.baseUrl+"userNotifications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"userNotifications/describe"},clone:{method:"post",url:r.baseUrl+"userNotifications/:id/clone",params:{includeAll:"@includeAll"}},sendUserNotification:{isArray:!1,method:"post",url:r.baseUrl+"userNotifications/"}}),r.whatsappAccount=e(r.baseUrl+"whatsapp/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"whatsapp/accounts/describe"},clone:{method:"post",url:r.baseUrl+"whatsapp/accounts/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/accounts/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:r.baseUrl+"whatsapp/accounts/:id/dispositions"},addAnswer:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/accounts/:id/canned_answers"},getAnswers:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/accounts/:id/canned_answers"},removeAnswers:{isArray:!1,method:"delete",url:r.baseUrl+"whatsapp/accounts/:id/canned_answers"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"whatsapp/accounts/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"whatsapp/accounts/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/accounts/:id/users"},addApplications:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/accounts/:id/applications"},getApplications:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/accounts/:id/applications"},notify:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/accounts/:id/notify"},send:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/accounts/:id/send"}}),r.whatsappApplication=e(r.baseUrl+"whatsapp/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"whatsapp/applications/describe"},clone:{method:"post",url:r.baseUrl+"whatsapp/applications/:id/clone",params:{includeAll:"@includeAll"}}}),r.whatsappInteraction=e(r.baseUrl+"whatsapp/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"whatsapp/interactions/describe"},clone:{method:"post",url:r.baseUrl+"whatsapp/interactions/:id/clone",params:{includeAll:"@includeAll"}},addMessage:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/interactions/:id/messages"},addTags:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/interactions/:id/tags"},removeTags:{isArray:!1,method:"delete",url:r.baseUrl+"whatsapp/interactions/:id/tags"},download:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/interactions/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.whatsappMessage=e(r.baseUrl+"whatsapp/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"whatsapp/messages/describe"},clone:{method:"post",url:r.baseUrl+"whatsapp/messages/:id/clone",params:{includeAll:"@includeAll"}},accept:{isArray:!1,method:"put",url:r.baseUrl+"whatsapp/messages/:id/accept"},reject:{isArray:!1,method:"put",url:r.baseUrl+"whatsapp/messages/:id/reject"},status:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/messages/:id/status"}}),r.whatsappQueueReport=e(r.baseUrl+"whatsapp/reports/queue/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"whatsapp/reports/queue/describe"},clone:{method:"post",url:r.baseUrl+"whatsapp/reports/queue/:id/clone",params:{includeAll:"@includeAll"}}}),r.whatsappTransferReport=e(r.baseUrl+"whatsapp/reports/transfer/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"whatsapp/reports/transfer/describe"},clone:{method:"post",url:r.baseUrl+"whatsapp/reports/transfer/:id/clone",params:{includeAll:"@includeAll"}}}),r.whatsappQueue=e(r.baseUrl+"whatsapp/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"whatsapp/queues/describe"},clone:{method:"post",url:r.baseUrl+"whatsapp/queues/:id/clone",params:{includeAll:"@includeAll"}},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/queues/:id/members"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"whatsapp/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"whatsapp/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"whatsapp/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"whatsapp/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/queues/:id/users"}}),r.cloudProvider=e(r.baseUrl+"cloudProviders/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cloudProviders/describe"},clone:{method:"post",url:r.baseUrl+"cloudProviders/:id/clone",params:{includeAll:"@includeAll"}}}),r.realtime=e(r.baseUrl+"realtime",{},{getQueues:{isArray:!1,method:"get",url:r.baseUrl+"realtime/queues"}}),r}e.$inject=["$resource","userProfileManager"],angular.module("motion").factory("api",e)}(),function(){"use strict";function e(e,n){n.setConfig({position:"top-right",sound:!1,html:!0,theme:"material"}),e.useLoader("$translatePartialLoader",{urlTemplate:"{part}/i18n/{lang}.json"}),e.preferredLanguage("en"),e.fallbackLanguage("en"),e.useSanitizeValueStrategy(null)}e.$inject=["$translateProvider","toastyConfigProvider"],angular.module("motion").config(e)}(),function(){"use strict";angular.module("motion")}(),function(){"use strict";function e(e,n,t,a){var i=this;i.themes=e.themes,i.direction="ltr";var s=t.get("motion.language");s&&(n.use(s),0<=["ar","fa","he"].indexOf(s)&&a.setting.get({id:1}).$promise.then(function(e){e&&e.rtlSupport&&(i.direction="rtl")}).catch(function(e){e&&toasty.error({title:"Error",msg:e.data?e.data.message||e.message||e:e.message||e})}))}e.$inject=["motionTheming","$translate","$cookies","api"],angular.module("motion").controller("IndexController",e)}(),function(){"use strict";function e(a,i){return function(e){var n=new Date,t=new Date(e);return t.getDate()===n.getDate()&&t.getMonth()===n.getMonth()&&t.getFullYear()===n.getFullYear()?a("date")(t.getTime(),"shortTime"):t.getDate()===n.getDate()-1&&t.getMonth()===n.getMonth()&&t.getFullYear()===n.getFullYear()?i.instant("DASHBOARDS.YESTERDAY")+" "+a("date")(t.getTime(),"shortTime"):a("date")(t.getTime(),"MMM d, y h:mm a")}}function n(e){return{Today:e.instant("DASHBOARDS.TODAY"),Yesterday:e.instant("DASHBOARDS.YESTERDAY"),"This Week":e.instant("DASHBOARDS.THIS_WEEK"),"Last Week":e.instant("DASHBOARDS.LAST_WEEK"),"This Month":e.instant("DASHBOARDS.THIS_MONTH"),"Last Month":e.instant("DASHBOARDS.LAST_MONTH"),"This Year":e.instant("DASHBOARDS.THIS_YEAR"),"Last Year":e.instant("DASHBOARDS.LAST_YEAR"),January:e.instant("DASHBOARDS.JANUARY"),February:e.instant("DASHBOARDS.FEBRUARY"),March:e.instant("DASHBOARDS.MARCH"),April:e.instant("DASHBOARDS.APRIL"),May:e.instant("DASHBOARDS.MAY"),June:e.instant("DASHBOARDS.JUNE"),July:e.instant("DASHBOARDS.JULY"),August:e.instant("DASHBOARDS.AUGUST"),September:e.instant("DASHBOARDS.SEPTEMBER"),October:e.instant("DASHBOARDS.OCTOBER"),November:e.instant("DASHBOARDS.NOVEMBER"),December:e.instant("DASHBOARDS.DECEMBER"),Mon:e.instant("DASHBOARDS.MON"),Tue:e.instant("DASHBOARDS.TUE"),Wed:e.instant("DASHBOARDS.WED"),Thu:e.instant("DASHBOARDS.THU"),Fri:e.instant("DASHBOARDS.FRI"),Sat:e.instant("DASHBOARDS.SAT"),Sun:e.instant("DASHBOARDS.SUN")}}e.$inject=["$filter","$translate"],n.$inject=["$translate"],angular.module("motion").filter("limitObjectFromTo",function(){return function(e,n,t){var a,i={},s=0;for(a in e)if(t<=s&&(i[a]=e[a]),++s===t+n)break;return i}}).filter("formatdate",e).factory("IndexFactory",function(){var e=[{value:"jan"},{value:"feb"},{value:"mar"},{value:"apr"},{value:"may"},{value:"jun"},{value:"jul"},{value:"aug"},{value:"sep"},{value:"oct"},{value:"nov"},{value:"dec"}],n=[{value:"1"},{value:"2"},{value:"3"},{value:"4"},{value:"5"},{value:"6"},{value:"7"},{value:"8"},{value:"9"},{value:"10"},{value:"11"},{value:"12"}],t=[{value:"mon"},{value:"tue"},{value:"wed"},{value:"thu"},{value:"fri"},{value:"sat"},{value:"sun"}],a=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31];return{getMonthName:function(){return e},getMonthNumber:function(){return n},getDaysOfWeek:function(){return t},getDaysOfMonth:function(){return a}}}).factory("dateFilterLocalizationFactory",n).factory("Sequence",function(){return{enqueue:function(e){this.tail=this.tail?this.tail.finally(e):e()}}})}(),function(){"use strict";function e(e,n,t){var a;t.html5Mode(!0),n.otherwise("/dashboards/general"),angular.injector(["ngCookies"]).invoke(["$cookies",function(e){a=e}]);var i=a.get("motion.layoutStyle")||"verticalNavigation",s={verticalNavigation:{main:"app/core/layouts/vertical-navigation.html",toolbar:"app/toolbar/layouts/vertical-navigation/toolbar.html",navigation:"app/navigation/layouts/vertical-navigation/navigation.html",header:"app/header/layouts/vertical-navigation/header.html",footer:"app/footer/layouts/vertical-navigation/footer.html"},verticalNavigationFullwidthToolbar:{main:"app/core/layouts/vertical-navigation-fullwidth-toolbar.html",toolbar:"app/toolbar/layouts/vertical-navigation-fullwidth-toolbar/toolbar.html",navigation:"app/navigation/layouts/vertical-navigation/navigation.html"},verticalNavigationFullwidthToolbar2:{main:"app/core/layouts/vertical-navigation-fullwidth-toolbar-2.html",toolbar:"app/toolbar/layouts/vertical-navigation-fullwidth-toolbar-2/toolbar.html",navigation:"app/navigation/layouts/vertical-navigation-fullwidth-toolbar-2/navigation.html"},horizontalNavigation:{main:"app/core/layouts/horizontal-navigation.html",toolbar:"app/toolbar/layouts/horizontal-navigation/toolbar.html",navigation:"app/navigation/layouts/horizontal-navigation/navigation.html"},contentOnly:{main:"app/core/layouts/content-only.html",toolbar:"",navigation:""},contentWithToolbar:{main:"app/core/layouts/content-with-toolbar.html",toolbar:"app/toolbar/layouts/content-with-toolbar/toolbar.html",navigation:""}};e.state("app",{abstract:!0,views:{"main@":{templateUrl:s[i].main,controller:"MainController as vm"},"toolbar@app":{templateUrl:s[i].toolbar,controller:"ToolbarController as vm"},"navigation@app":{templateUrl:s[i].navigation,controller:"NavigationController as vm"},"quickPanel@app":{templateUrl:"app/quick-panel/quick-panel.html",controller:"QuickPanelController as vm"},"header@app":{templateUrl:s[i].header,controller:"HeaderController as vm"},"footer@app":{templateUrl:s[i].footer,controller:"FooterController as vm"}},resolve:{license:["apiResolver",function(e){return e.resolve("license@get")}],setting:["apiResolver","settingsManager",function(e,n){return e.resolve("setting@get",{id:1}).then(function(e){return n.set(e),e})}]}})}e.$inject=["$stateProvider","$urlRouterProvider","$locationProvider"],angular.module("motion").config(e)}(),function(){"use strict";function e(e,n){e.onStart({},n.showLoadingIndicator),e.onFinish({},n.hideLoadingIndicator)}e.$inject=["$transitions","LoadingIndicatorService"],angular.module("motion").run(e)}(),function(){"use strict";function e(a,e){var i,o={};function s(){a.$broadcast("socket:connect"),i&&i.connected||(i=io({query:e.getCurrentUser()?"id="+e.getCurrentUser().id:void 0,transports:["websocket","polling"]})).once("disconnect",n)}function n(e){i.once("connect",s),"logout"===e?i.removeAllListeners():a.$broadcast("socket:disconnect"),i&&i.connected&&i.disconnect()}function r(e,n,t){o[e]||(o[e]=[]),o[e].push({wrapper:n,fn:t})}return{connect:s,disconnect:n,getListeners:function(e){return e?o[e]:o},on:function(e,n){n=n||angular.noop,i||s();var t=function(){var e=arguments;a.$applyAsync(function(){n.apply(i,e)})};r(e,t,n),i.on(e,t)},onWithoutApply:function(e,n){n=n||angular.noop,i||s();var t=function(){n.apply(i,arguments)};r(e,t,n),i.on(e,t)},emit:function(e,n,t){t=t||angular.noop,i||s(),i.emit(e,n,function(){var e=arguments;a.$applyAsync(function(){t.apply(i,e)})})},removeAllListeners:function(e){var n;i||s(),i.removeAllListeners(e),n=e,_.isEmpty(o[n])||delete o[n]},removeListener:function(e,n){i||s();var t=function(e,n){var t=o[e];if(!_.isEmpty(t))for(var a=0;a<t.length;a++){var i=t[a];if(i.fn===n){var s=i.wrapper;return t.splice(a,1),s}}}(e,n);i.removeListener(e,t)}}}e.$inject=["$rootScope","Auth"],angular.module("motion").factory("socket",e)}(),function(){"use strict";function e(n,t,e,a,i,s,o){var r=this;r.progresslogin=!1,r.googleSsoEnabled=!1,r.login=function(){return r.progresslogin=!0,r.message="",s.login(r.form).then(function(){return n.go("app.dashboards.general")}).catch(function(e){r.message=e.data?e.data.message:e.message}).finally(function(){r.progresslogin=!1})},r.loginOauth=function(e){r.message="",t.location.href=s.loginSSO(e)},r.onInit=function(){{if(n.params.token&&n.params.userId)return s.removeCookies(),r.progresslogin=!0,e.put("motion.token",n.params.token),i.user.get({id:n.params.userId}).$promise.then(function(e){e&&(s.setCurrentUser(e),n.go("app.dashboards.general"))}).finally(function(){r.progresslogin=!1});s.isLoggedIn()&&n.go("app.dashboards.general")}r.googleSsoEnabled=o.googleSsoEnabled},r.onInit()}e.$inject=["$state","$window","$cookies","$timeout","api","Auth","setting"],angular.module("app.login").controller("LoginController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="ANALYTICS.EDIT_EXTRACTEDREPORT",g.extractedReport=angular.copy(l),g.extractedReports=r,g.newExtractedReport=!1,g.extractedReport||(g.extractedReport={},g.title="ANALYTICS.NEW_EXTRACTEDREPORT",g.newExtractedReport=!0),g.addNewExtractedReport=function(){g.errors=[],d.analyticExtractedReport.save(g.extractedReport).$promise.then(function(e){g.extractedReports.unshift(e.toJSON()),o.success({title:"ExtractedReport properly created",msg:g.extractedReport.name?g.extractedReport.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.analyticExtractedReport.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticExtractedReport.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveExtractedReport=function(){g.errors=[],d.analyticExtractedReport.update({id:g.extractedReport.id},g.extractedReport).$promise.then(function(e){var n=_.find(g.extractedReports,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"ExtractedReport properly saved!",msg:g.extractedReport.name?g.extractedReport.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.analyticExtractedReport.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticExtractedReport.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteExtractedReport=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The extractedReport will be deleted.").ariaLabel("Delete ExtractedReport").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.analyticExtractedReport.delete({id:g.extractedReport.id}).$promise.then(function(){_.remove(g.extractedReports,{id:g.extractedReport.id}),o.success({title:"ExtractedReport properly deleted!",msg:(g.extractedReport.name||"extractedReport")+" has been deleted!"}),v(g.extractedReport)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.analyticExtractedReport.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticExtractedReport.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","extractedReports","extractedReport","api","Auth","license","setting","crudPermissions"],angular.module("app.analytics").controller("CreateOrEditExtractedReportDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.extractedReports=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="extractedReports",f.listOrder="",f.listOrderAsc=null,f.selectedExtractedReports=[],f.query={fields:"createdAt,updatedAt,id,name,basename,savename,type,startDate,endDate,status,output,reportId,reportType",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditExtractedReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/extractedReports/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{extractedReport:e,extractedReports:f.extractedReports.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.downloadfile2=function(s,e){return m.analyticExtractedReport.download({id:s.id}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=s.savename;var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticExtractedReport.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("extractedReport")+"?").htmlContent("<b>"+(e.name||"extractedReport")+"</b> will be deleted.").ariaLabel("delete extractedReport").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getExtractedReports=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.analyticExtractedReport.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ExtractedReports",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditExtractedReport=function(e,n){i.show({controller:"CreateOrEditExtractedReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/extractedReports/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{extractedReport:n,extractedReports:f.extractedReports.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteExtractedReport=y,f.exportSelectedExtractedReports=function(){var e=angular.copy(f.selectedExtractedReports);return f.selectedExtractedReports=[],e},f.deleteSelectedExtractedReports=function(e){var n=i.confirm().title("Are you sure want to delete the selected extractedReports?").htmlContent("<b>"+f.selectedExtractedReports.length+" selected</b> will be deleted.").ariaLabel("delete ExtractedReports").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedExtractedReports.forEach(function(e){y(e)}),f.selectedExtractedReports=[]})},f.deselectExtractedReports=function(){f.selectedExtractedReports=[]},f.selectAllExtractedReports=function(){f.selectedExtractedReports=f.extractedReports.rows};var b=!0,A=1;function E(e){f.extractedReports=e||{count:0,rows:[]}}function y(e){m.analyticExtractedReport.delete({id:e.id}).$promise.then(function(){_.remove(f.extractedReports.rows,{id:e.id}),f.extractedReports.count-=1,f.extractedReports.rows.length||f.getExtractedReports(),p.success({title:_.startCase("ExtractedReport")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEanalyticExtractedReport"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEanalyticExtractedReport",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getExtractedReports())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","extractedReports","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.analytics").controller("ExtractedReportsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="ANALYTICS.EDIT_METRIC",g.metric=angular.copy(l),g.metrics=r,g.newMetric=!1,g.metric||(g.metric={table:"report_agent"},g.title="ANALYTICS.NEW_METRIC",g.newMetric=!0),g.addNewMetric=function(){g.errors=[],d.analyticMetric.save(g.metric).$promise.then(function(e){g.metrics.unshift(e.toJSON()),o.success({title:"Metric properly created",msg:g.metric.name?g.metric.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.analyticMetric.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticMetric.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveMetric=function(){g.errors=[],d.analyticMetric.update({id:g.metric.id},g.metric).$promise.then(function(e){var n=_.find(g.metrics,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Metric properly saved!",msg:g.metric.name?g.metric.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.analyticMetric.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticMetric.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteMetric=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The metric will be deleted.").ariaLabel("Delete Metric").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.analyticMetric.delete({id:g.metric.id}).$promise.then(function(){_.remove(g.metrics,{id:g.metric.id}),o.success({title:"Metric properly deleted!",msg:(g.metric.name||"metric")+" has been deleted!"}),v(g.metric)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.analyticMetric.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticMetric.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","metrics","metric","api","Auth","license","setting","crudPermissions"],angular.module("app.analytics").controller("CreateOrEditMetricDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.metrics=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="metrics",f.listOrder="",f.listOrderAsc=null,f.selectedMetrics=[],f.query={fields:"createdAt,updatedAt,id,name,table,metric,description",sort:"-updatedAt",limit:10,page:1},f.arraytable=_.keyBy([{option:"Agent Report",value:"'report_agent'"},{option:"Call Report",value:"'report_call'"},{option:"CDR",value:"'cdr'"},{option:"Chat Website",value:"'chat_websites'"},{option:"Chat Interaction",value:"'chat_interactions'"},{option:"Chat Messages",value:"'chat_messages'"},{option:"Chat Offline Messages",value:"'chat_offline_messages'"},{option:"Chat Queues",value:"'chat_queues'"},{option:"Chat Report Queue",value:"'report_chat_queue'"},{option:"Chat Report Transfer",value:"'report_chat_transfer'"},{option:"Companies",value:"'cm_companies'"},{option:"Call transfer report",value:"'report_call_transfer'"},{option:"Contacts",value:"'cm_contacts'"},{option:"CSquare Report",value:"'report_square'"},{option:"CSquare Details Report",value:"'report_square_details'"},{option:"Dial Report",value:"'report_dial'"},{option:"Dialer Hopper Processing",value:"'cm_hopper'"},{option:"Dialer Hopper Logs",value:"'cm_hopper_history'"},{option:"Dialer Hopper Final",value:"'cm_hopper_final'"},{option:"Email Account",value:"'mail_accounts'"},{option:"Email Interaction",value:"'mail_interactions'"},{option:"Email Messages",value:"'mail_messages'"},{option:"Email Queues",value:"'mail_queues'"},{option:"Email Report Queue",value:"'report_mail_queue'"},{option:"Email Report Transfer",value:"'report_mail_transfer'"},{option:"Fax Account",value:"'fax_accounts'"},{option:"Fax Interaction",value:"'fax_interactions'"},{option:"Fax Messages",value:"'fax_messages'"},{option:"Fax Queues",value:"'fax_queues'"},{option:"Fax Report Queue",value:"'report_fax_queue'"},{option:"Fax Report Transfer",value:"'report_fax_transfer'"},{option:"Jscripty Sessions",value:"'report_jscripty_sessions'"},{option:"Jscripty Questions",value:"'report_jscripty_questions'"},{option:"Jscripty Answers",value:"'report_jscripty_answers'"},{option:"Lists",value:"'cm_lists'"},{option:"Member Report",value:"'report_member'"},{option:"Openchannel Account",value:"'openchannel_accounts'"},{option:"Openchannel Interaction",value:"'openchannel_interactions'"},{option:"Openchannel Messages",value:"'openchannel_messages'"},{option:"Openchannel Queues",value:"'openchannel_queues'"},{option:"Openchannel Report Queue",value:"'report_openchannel_queue'"},{option:"Openchannel Report Transfer",value:"'report_openchannel_transfer'"},{option:"Queue Report",value:"'report_queue'"},{option:"SMS Account",value:"'sms_accounts'"},{option:"SMS Interaction",value:"'sms_interactions'"},{option:"SMS Messages",value:"'sms_messages'"},{option:"SMS Queues",value:"'sms_queues'"},{option:"SMS Report Queue",value:"'report_sms_queue'"},{option:"SMS Report Transfer",value:"'report_sms_transfer'"},{option:"Users",value:"'users'"},{option:"Voice Recordings",value:"'voice_recordings'"},{option:"Whatsapp Account",value:"'whatsapp_accounts'"},{option:"Whatsapp Interaction",value:"'whatsapp_interactions'"},{option:"Whatsapp Messages",value:"'whatsapp_messages'"},{option:"Whatsapp Queues",value:"'whatsapp_queues'"},{option:"Whatsapp Report Queue",value:"'report_whatsapp_queue'"},{option:"Whatsapp Report Transfer",value:"'report_whatsapp_transfer'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editdialog=function(e,n){i.show({controller:"CreateOrEditMetricDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/metrics/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{metric:e,metrics:f.metrics.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("metric")+"?").htmlContent("<b>"+(e.name||"metric")+"</b> will be deleted.").ariaLabel("delete metric").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getMetrics=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.analyticMetric.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Metrics",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditMetric=function(e,n){i.show({controller:"CreateOrEditMetricDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/metrics/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{metric:n,metrics:f.metrics.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteMetric=y,f.exportSelectedMetrics=function(){var e=angular.copy(f.selectedMetrics);return f.selectedMetrics=[],e},f.deleteSelectedMetrics=function(e){var n=i.confirm().title("Are you sure want to delete the selected metrics?").htmlContent("<b>"+f.selectedMetrics.length+" selected</b> will be deleted.").ariaLabel("delete Metrics").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedMetrics.forEach(function(e){y(e)}),f.selectedMetrics=[]})},f.deselectMetrics=function(){f.selectedMetrics=[]},f.selectAllMetrics=function(){f.selectedMetrics=f.metrics.rows};var b=!0,A=1;function E(e){f.metrics=e||{count:0,rows:[]}}function y(e){m.analyticMetric.delete({id:e.id}).$promise.then(function(){_.remove(f.metrics.rows,{id:e.id}),f.metrics.count-=1,f.metrics.rows.length||f.getMetrics(),p.success({title:_.startCase("Metric")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEanalyticMetric"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEanalyticMetric",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getMetrics())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","metrics","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.analytics").controller("MetricsController",e)}(),function(){"use strict";function e(e,n,a,t,i,s,o){var r=this;function l(){n.hide()}r.errors=[],r.report=angular.copy(t),r.report.name+="-copy",r.treeCustomData=o,r.treeCustomConfig={core:{multiple:!1,animation:!0,error:function(e){console.error("treeCtrl: error from js tree - "+angular.toJson(e))},check_callback:!0,worker:!0},version:1,plugins:["wholerow"]},r.treeCustomEvents={select_node:function(e,n){r.currentNode=n.node}},r.copyReport=function(){var t;r.errors=[],i.analyticCustomReport.save({name:r.report.name,description:r.report.description,table:r.report.table,conditions:r.report.conditions,joins:r.report.joins,parent:r.currentNode.id}).$promise.then(function(e){t=e,a.success({title:"Report properly copied!",msg:r.report.name?r.report.name+" has been copied!":""});var n={fields:"field,alias,function,format,groupBy,orderBy,custom,MetricId",nolimit:!0};return n["analyticCustomReport"===s?"CustomReportId":"DefaultReportId"]=r.report.id,i.analyticFieldReport.get(n).$promise}).then(function(e){var e=_.map(e.rows,function(e){return _.extend({},e,{CustomReportId:t.id})});return i.analyticFieldReport.bulkCreate(e).$promise}).then(function(){a.success({title:"Fields copied!",msg:"Fields has been copied!"}),l()}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:COPYREPORT",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},r.closeDialog=l}e.$inject=["$location","$mdDialog","toasty","report","api","apiName","treeCustomData"],angular.module("app.analytics").controller("CopyReportDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;function m(){n.hide()}c.errors=[],c.joinTables=[],c.title="ANALYTICS.EDIT_REPORT",c.crudPermissions=d,c.report=angular.copy(i),c.reports=a,c.newReport=!1,c.tables=l.getMap(),c.joinTypes=[{key:"join",value:"Join"},{key:"left_join",value:"Left Join"},{key:"right_join",value:"Right Join"},{key:"cross_join",value:"Cross Join"}],c.report||(c.report={name:"",table:"report_agent",description:"",parent:r.id},c.title="ANALYTICS.NEW_REPORT",c.newReport=!0),c.addNewReport=function(){c.errors=[],c.report.joins=_.map(c.joinTables||[],function(e){return{parentKey:e.parentKey,foreignTable:e.name,foreignKey:e.foreignKey,type:e.type.toLowerCase()}}),c.report.joins=JSON.stringify(c.report.joins),s[o].save(c.report).$promise.then(function(e){c.reports.unshift(e),t.success({title:"Report properly created",msg:c.report.name?c.report.name+" has been created!":""}),m()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.analyticReport.save"}];for(var n=0;n<e.data.errors.length;n++)t.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticReport.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.saveReport=function(){c.errors=[],s[o].update({id:c.report.id},c.report).$promise.then(function(e){var n=_.find(c.reports,{id:e.id});n&&_.merge(n,e),t.success({title:"Report properly saved!",msg:c.report.name?c.report.name+" has been saved!":""}),m()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.analyticReport.update"}];for(var n=0;n<e.data.errors.length;n++)t.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticReport.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.deleteReport=function(){c.errors=[];var e=n.confirm().title("Are you sure?").content("The report will be deleted.").ariaLabel("Delete Report").ok("Delete").cancel("Cancel").targetEvent(event);n.show(e).then(function(){s[o].delete({id:c.report.id}).$promise.then(function(){_.remove(c.reports,{id:c.report.id}),t.success({title:"Report properly deleted!",msg:c.report.name?c.report.name+" has been deleted!":""}),m()}).catch(function(e){c.errors=e.data.errors||[{message:e.toString(),type:"api.analyticReport.delete"}]})},function(){})},c.closeDialog=m,c.selectedTableChange=function(e){e&&(delete c.selectedItem,c.joinTables.push(e))},c.removeJoin=function(e){c.joinTables.splice(e,1)},c.getFields=function(n,t,e){var a=_.find(c.tables,{name:e});a&&a.api&&s[a.api].describe().$promise.then(function(e){n[t]=_.difference(_.keys(e),["$promise","$resolved"])}).catch(function(e){console.error(e)})}}e.$inject=["$location","$mdDialog","toasty","reports","report","api","apiName","currentNode","describeTable","crudPermissions"],angular.module("app.analytics").controller("CreateOrEditReportDialogController",e)}(),function(){"use strict";function e(i,s,o,e){var r=this;r.report={},r.conditions=e.getConditions,r.init=function(e,n){r.report=e,r.report.condition=angular.fromJson(e.conditions)||{group:{operator:"AND",rules:[]}},r.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1};for(var t=0;t<r.report.condition.group.rules.length;t++)if(r.report.condition.group.rules[t].field){var a=r.report.condition.group.rules[t].field.split(".");1===a.length&&(r.report.condition.group.rules[t].field=r.report.table+"."+r.report.condition.group.rules[t].field)}s.getColumns(r.report.table).then(function(e){r.columns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt"])}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DESCRIBE",msg:e.data?JSON.stringify(e.data):e.toString()})})},r.addCondition=function(e){e.unshift({condition:"=",field:"",value:""})},r.addGroup=function(e){e.push({group:{operator:"AND",rules:[]}})},r.deleteConfirm=function(e,n,t){var a=i.confirm().title("Are you sure want to delete the item?").htmlContent("The item will be deleted.").ariaLabel("delete item").targetEvent(t).ok("OK").cancel("CANCEL");i.show(a).then(function(){e.splice(n,1)},function(){console.log("CANCEL")})},r.isValueByCondition=function(e){return!_.includes(["IS NULL","IS NOT NULL","IS EMPTY","IS NOT EMPTY"],e)}}e.$inject=["$mdDialog","describeTable","toasty","sqlUtil"],angular.module("app.analytics").controller("ReportConditionsController",e)}(),function(){"use strict";function e(a){var i={report_call_transfer:"voiceTransferReport",cm_companies:"cmCompany",cm_contacts:"cmContact",cm_hopper:"cmHopper",cm_hopper_final:"cmHopperFinal",cm_hopper_history:"cmHopperHistory",cm_lists:"cmList",chat_websites:"chatWebsite",chat_queues:"chatQueue",chat_interactions:"chatInteraction",chat_messages:"chatMessage",chat_offline_messages:"chatOfflineMessage",report_chat_queue:"chatQueueReport",report_chat_transfer:"chatTransferReport",mail_accounts:"mailAccount",mail_queues:"mailQueue",mail_interactions:"mailInteraction",mail_messages:"mailMessage",report_mail_queue:"mailQueueReport",report_mail_transfer:"mailTransferReport",openchannel_accounts:"openchannelAccount",openchannel_queues:"openchannelQueue",openchannel_interactions:"openchannelInteraction",openchannel_messages:"openchannelMessage",report_openchannel_queue:"openchannelQueueReport",report_openchannel_transfer:"openchannelTransferReport",sms_accounts:"smsAccount",sms_queues:"smsQueue",sms_interactions:"smsInteraction",sms_messages:"smsMessage",report_sms_queue:"smsQueueReport",report_sms_transfer:"smsTransferReport",fax_accounts:"faxAccount",fax_queues:"faxQueue",fax_interactions:"faxInteraction",fax_messages:"faxMessage",report_fax_transfer:"faxTransferReport",report_fax_queue:"faxQueueReport",report_call:"voiceCallReport",report_agent:"voiceAgentReport",report_square:"squareReport",report_member:"memberReport",report_queue:"voiceQueueReport",report_square_details:"squareReportDetail",report_dial:"voiceDialReport",report_jscripty_sessions:"jscriptySessionReport",report_jscripty_questions:"jscriptyQuestionReport",report_jscripty_answers:"jscriptyAnswerReport",users:"user",voice_recordings:"voiceRecording",cdr:"cdr",whatsapp_accounts:"whatsappAccount",whatsapp_queues:"whatsappQueue",whatsapp_interactions:"whatsappInteraction",whatsapp_messages:"whatsappMessage",report_whatsapp_queue:"whatsappQueueReport",report_whatsapp_transfer:"whatsappTransferReport"};return{getMap:function(){var t=[];return _.forIn(i,function(e,n){t.push({name:n,api:e})}),t},getColumns:function(e){var n=i[e],t={};return"cm_contacts"===e&&(t.analytics=!0),a[n].describe(t).$promise}}}e.$inject=["api"],angular.module("app.analytics").factory("describeTable",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;(u.errors=[],u.title="Edit Report Field",u.report=i,u.reportField=angular.copy(o),u.reportFields=s,u.metrics=r,u.columns=l,u.sqlUtil=d,u.newReportField=!1,u.crudPermissions=m,u.reportField)?(u.reportField.type=u.reportField.custom?"custom":u.reportField.MetricId?"metric":"column",u.reportField.field&&!u.reportField.custom&&_.isNil(u.reportField.MetricId)&&1===u.reportField.field.split(".").length&&(u.reportField.field=u.report.table+"."+u.reportField.field)):(u.reportField={type:"column",function:null,format:null,groupBy:!1,orderBy:null},u.title="New Report Field",u.newReportField=!0);function p(){t.hide()}u.addNewReportField=function(){u.errors=[],u.reportField.custom="custom"===u.reportField.type,u.reportField.MetricId="metric"===u.reportField.type?u.reportField.MetricId:null,u.reportField.CustomReportId=u.report.id,c.analyticFieldReport.save(u.reportField).$promise.then(function(e){u.reportFields.push(e),a.success({title:"Report field properly created",msg:u.reportField.field?u.reportField.field+" has been created!":u.reportField.type+" has been created!"}),p()}).catch(function(e){u.errors=e.data.errors||[{message:e.toString(),type:"api.analyticFieldReport.save"}]})},u.saveReportField=function(){u.errors=[],u.reportField.custom="custom"===u.reportField.type,u.reportField.MetricId="metric"===u.reportField.type?u.reportField.MetricId:null,c.analyticFieldReport.update({id:u.reportField.id},u.reportField).$promise.then(function(e){var n=_.find(u.reportFields,{id:e.id});n&&_.merge(n,e),a.success({title:"Report Field properly saved!",msg:u.reportField.field?u.reportField.field+" has been saved!":""}),p()}).catch(function(e){u.errors=e.data.errors||[{message:e.toString(),type:"api.analyticFieldReport.update"}]})},u.deleteReportField=function(e){u.errors=[];var n=t.confirm().title("Are you sure?").content("The field will be deleted.").ariaLabel("Delete Report").ok("Delete").cancel("Cancel").targetEvent(e);t.show(n).then(function(){c.analyticFieldReport.delete({id:u.reportField.id}).$promise.then(function(){_.remove(u.reportFields,{id:u.reportField.id}),a.success({title:"Report Field properly deleted!",msg:u.reportField.field?u.reportField.field+" has been deleted!":""}),p()}).catch(function(e){u.errors=e.data.errors||[{message:e.toString(),type:"api.analyticReportField.delete"}]})},function(){})},u.closeDialog=p}e.$inject=["$scope","$location","$mdDialog","toasty","report","reportFields","reportField","metrics","columns","sqlUtil","api","crudPermissions"],angular.module("app.analytics").controller("CreateOrEditReportFieldDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;c.report={},c.reportFields={count:0,rows:[]},c.functions=_.keyBy(l.getFunctions,"value"),c.formats=_.keyBy(l.getFormats,"value"),c.groupBy=_.keyBy(l.getGroupBy,"value"),c.orderBy=_.keyBy(l.getOrderBy,"value"),c.selectedReportFields=[],c.query={fields:"createdAt,updatedAt,id,field,alias,function,format,groupBy,orderBy,custom,MetricId",nolimit:!0},c.sortableTable={animation:100,onSort:function(e){o.analyticFieldReport.addFields({id:c.report.id},e.models).$promise.then(function(e){c.reportFields.rows=e}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ADDFIELDS"})})}},c.init=function(e,n){c.report=e,c.query.CustomReportId=c.report.id,c.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},c.sortableTable.disabled=!c.crudPermissions.canEdit,r.getColumns(c.report.table).then(function(e){return c.columns=_.difference(_.keys(e),["$promise","$resolved"]),o.analyticMetric.get({fields:"id,name,metric,table",nolimit:!0}).$promise}).then(function(e){c.metrics=e.rows}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DESCRIBE",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.getReportFields()},c.deleteConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>"+e.field+"</b> will be deleted.").ariaLabel("delete field").targetEvent(n).ok("OK").cancel("CANCEL");a.show(t).then(function(){p(e)},function(){console.log("CANCEL")})},c.success=u,c.getReportFields=function(){c.promise=o.analyticFieldReport.get(c.query,u).$promise},c.createOrEditReportField=function(e,n){a.show({controller:"CreateOrEditReportFieldDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/edit/field/dialog.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,locals:{report:c.report,reportField:n,reportFields:c.reportFields.rows,metrics:c.metrics,columns:c.columns,setting:null,crudPermissions:c.crudPermissions}})},c.deleteReportField=p,c.deleteSelectedReportFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+c.selectedReportFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){c.selectedReportFields.forEach(function(e){p(e)}),c.selectedReportFields=[]})},c.getMetricName=function(e){var n=_.find(c.metrics,{id:e});return n?n.name:d.instant("ANALYTICS.NO_METRIC_FOUND")},c.getMetricValue=function(e){var n=_.find(c.metrics,{id:e});return n?n.metric:d.instant("ANALYTICS.NO_METRIC_FOUND")};var m=!0;function u(e){c.reportFields=e||{count:0,rows:[]}}function p(e){o.analyticFieldReport.delete({id:e.id}).$promise.then(function(){c.selectedReportFields=[],_.remove(c.reportFields.rows,{id:e.id}),c.reportFields.count-=1,c.reportFields.rows.length||c.getReportFields(),s.success({title:"Field deleted!",msg:e.field?e.field+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}n.$watch("vm_rf.query.filter",function(e,n){m?t(function(){m=!1}):c.getReportFields()})}e.$inject=["$cookies","$scope","$timeout","$mdDialog","$document","toasty","api","describeTable","sqlUtil","$translate"],angular.module("app.analytics").controller("ReportFieldsController",e)}(),function(){"use strict";angular.module("app.analytics").factory("sqlUtil",function(){return{getFunctions:[{value:"SUM",option:function(e){return"SUM ("+e+")"}},{value:"COUNT",option:function(e){return"COUNT ("+e+")"}},{value:"COUNT DISTINCT",option:function(e){return"COUNT (DISTINCT "+e+")"}},{value:"MAX",option:function(e){return"MAX ("+e+")"}},{value:"MIN",option:function(e){return"MIN ("+e+")"}},{value:"AVG",option:function(e){return"AVG ("+e+")"}},{value:"GROUP_CONCAT",option:function(e){return"GROUP_CONCAT ("+e+")"}},{value:"GROUP_CONCAT ASC",option:function(e){return"GROUP_CONCAT ("+e+" ORDER BY "+e+" ASC)"}},{value:"GROUP_CONCAT DESC",option:function(e){return"GROUP_CONCAT ("+e+" ORDER BY "+e+" DESC)"}}],getFormats:[{value:"SEC_TO_TIME",option:function(e){return"SEC_TO_TIME ("+e+")"}},{value:"DATE",option:function(e){return"DATE ("+e+")"}},{value:"HOUR",option:function(e){return"HOUR ("+e+")"}},{value:"ROUND",option:function(e){return"ROUND ("+e+")"}},{value:"UNIX_TIMESTAMP",option:function(e){return"UNIX_TIMESTAMP ("+e+")"}}],getGroupBy:[{value:!1,option:function(){return"No"}},{value:!0,option:function(e){return"GROUP BY "+e}}],getOrderBy:[{value:"ASC",option:function(e){return"ORDER BY "+e+" ASC"}},{value:"DESC",option:function(e){return"ORDER BY "+e+" DESC"}}],getConditions:["=","!=","<","<=",">",">=","LIKE","NOT LIKE","IS NULL","IS NOT NULL","IS EMPTY","IS NOT EMPTY"]}})}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this;function r(e){return _.isArray(e)}o.report=a||{},o.userProfileSection=s&&1==s.count?s.rows[0]:null,o.crudPermissions=i.parseCrudPermissions(o.userProfileSection?o.userProfileSection.crudPermissions:null),o.selectedTab=e.params.tab||0,o.gotoReports=function(){e.go("app.analytics.reports",{},{reload:"app.analytics.reports"})},o.saveReport=function(){o.report.conditions=angular.toJson(o.report.condition),t.analyticCustomReport.update({id:o.report.id},_.omit(o.report,"joins")).$promise.then(function(){n.success({title:"Report updated!",msg:o.report.name?o.report.name+" has been updated!":""})}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETreport",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.previewReport=function(){o.columns=[],o.rows=[],o.error=!1,t.analyticFieldReport.get({fields:"field,alias",nolimit:!0,CustomReportId:o.report.id}).$promise.then(function(e){return o.columns=e?e.rows:[],t.analyticCustomReport.preview({id:o.report.id}).$promise}).then(function(e){o.rows=e}).catch(function(e){console.log(e),o.error={title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:analyticFieldReport",msg:e.data?e.data.message:e.toString(),sql:e.data&&e.data.parent?e.data.parent.sql:"NO QUERY"},n.error(o.error)})},o.queryReport=function(){return o.queryResult="Loading...",t.analyticCustomReport.query({id:o.report.id}).$promise.then(function(e){o.queryResult=e.sql}).catch(function(e){o.queryResult="",console.log(e),o.error={title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:analyticFieldReport",msg:e.data?e.data.message:e.toString(),sql:e.data&&e.data.parent?e.data.parent.sql:"NO QUERY"},n.error(o.error)})},o.mapArray=function(e,n){if(r(e))return _.map(e,n).join(",");return""},o.isArray=r,o.valueReplacer=function(e,n){moment(n,"YYYY-MM-DDTHH:mm:ssZ",!0).isValid()&&(n=moment(n,"").format("YYYY-MM-DD HH:mm:ss"));return n}}e.$inject=["$state","toasty","api","report","Auth","userProfileSection"],angular.module("app.analytics").controller("ReportController",e)}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this;o.errors=[],o.report=angular.copy(a),o.valueReplacer=function(e,n){moment(n,"YYYY-MM-DDTHH:mm:ssZ",!0).isValid()&&(n=moment(n,"").format("YYYY-MM-DD HH:mm:ss"));return n},o.closeDialog=function(){n.hide()},function(){o.columns=[],o.rows=[],o.error=!1;var e={fields:"field,alias",nolimit:!0};e["analyticCustomReport"===s?"CustomReportId":"DefaultReportId"]=o.report.id,o.promise=i.analyticFieldReport.get(e).$promise.then(function(e){return o.columns=e?e.rows:[],i[s].preview({id:o.report.id}).$promise}).then(function(e){o.rows=e}).catch(function(e){console.log(e),o.error={title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:analyticFieldReport",msg:e.data?e.data.message:e.toString(),sql:e.data&&e.data.parent?e.data.parent.sql:"NO QUERY"},t.error(o.error)})}()}e.$inject=["$location","$mdDialog","toasty","report","api","apiName"],angular.module("app.analytics").controller("PreviewReportDialogController",e)}(),function(){"use strict";function e(e,t,a,i,s,o,n,r,l,d,c,m,u){var p=this;p.currentUser=u.getCurrentUser(),p.reports={count:0,rows:[]},p.userProfile=r,p.userProfileSection=l&&1==l.count?l.rows[0]:null,p.crudPermissions=u.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.selectedReports=[],p.query={fields:"createdAt,updatedAt,id,name,description,table,parent,conditions,joins",limit:10,page:1,sort:"-updatedAt"},p.apiName=null,p.currentPath="",p.customTree=!0,p.editstate=function(e,n){s.go("app.analytics.reports.edit",{id:e.id,crudPermissions:p.crudPermissions})},p.copydialog=function(e,n){i.show({controller:"CopyReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/copy/dialog.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{report:e,apiName:p.apiName,treeCustomData:p.treeCustomInstance.jstree(!0).get_json("#")}}).finally(function(){})},p.previewdialog=function(e,n){i.show({controller:"PreviewReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/preview/dialog.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{report:e,apiName:p.apiName}})},p.rundialog=function(e,n){i.show({controller:"RunReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/run/dialog.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{report:e,apiName:p.apiName,currentPath:p.currentPath}})},p.downloadfile=function(a,e){var i;d.analyticMetric.get({fields:"id,name,metric,table",nolimit:!0}).$promise.then(function(e){i=_.keyBy(e.rows,"id");var n={fields:"field,alias,function,format,groupBy,orderBy,custom,MetricId",nolimit:!0};return n["analyticCustomReport"===p.apiName?"CustomReportId":"DefaultReportId"]=a.id,d.analyticFieldReport.get(n).$promise}).then(function(e){for(var n=0;n<e.rows.length;n+=1)e.rows[n].MetricId&&(e.rows[n].field=i[e.rows[n].MetricId].metric,e.rows[n].custom=!0),delete e.rows[n].MetricId;var t=o.document.createElement("a");t.href="data:text/json;charset=utf-8,"+o.encodeURIComponent(angular.toJson({name:a.name,description:a.description,table:a.table,conditions:a.conditions,joins:a.joins,fields:e.rows})),t.download=a.name+".json",t.target="_self",t.click(),m.success({title:"Report downloaded!",msg:a.name?a.name+" has been downloaded!":""})}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DOWNLOADJSON",msg:e.data?JSON.stringify(e.data):e.toString()})})},p.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the report?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete report").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){b(e)},function(){console.log("CANCEL")})},p.success=h,p.getReports=f,p.createOrEditReport=function(e,n){i.show({controller:"CreateOrEditReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{report:n,reports:p.reports.rows,apiName:p.apiName,currentNode:p.currentNode,setting:null,crudPermissions:p.crudPermissions}})},p.importReport=function(e,n,t){if("application/json"===e.file.type){var a=new FileReader;a.onload=function(e){console.log(e.target.result);try{var t=atob(e.target.result.split(",")[1]);t=angular.fromJson(t),d.analyticCustomReport.save({name:t.name,description:t.description,table:t.table,conditions:t.conditions,joins:t.joins,parent:p.currentNode.id}).$promise.then(function(n){p.reports.rows.unshift(n),m.success({title:"Report saved!",msg:n.name?n.name+" has been saved!":""});var e=_.map(t.fields,function(e){return _.extend({},e,{CustomReportId:n.id})});return d.analyticFieldReport.bulkCreate(e).$promise}).then(function(e){m.success({title:"Fields saved!",msg:"Fields has been saved!"})}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETanalyticReport",msg:e.data?JSON.stringify(e.data):e.toString()})})}catch(e){console.error(e),m.error({title:"Decode File Error",msg:e.toString()})}},a.readAsDataURL(e.file)}else m.error({title:"Format Error",msg:"Please use only json files"})},p.deleteReport=b,p.exportSelectedReports=function(){var e=angular.copy(p.selectedReports);return p.selectedReports=[],e},p.deleteSelectedReports=function(e){var n=i.confirm().title("Are you sure want to delete the selected reports?").htmlContent("<b>"+p.selectedReports.length+" selected</b> will be deleted.").ariaLabel("delete Reports").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){p.selectedReports.forEach(function(e){b(e)}),p.selectedReports=[]})},p.deselectReports=function(){p.selectedReports=[]},p.selectAllReports=function(){p.selectedReports=p.reports.rows},p.treeDefaultData=c.rows[0]?angular.fromJson(c.rows[0].tree):[],p.treeCustomData=c.rows[1]?angular.fromJson(c.rows[1].tree):[],p.treeDefaultConfig=S(!1),p.treeCustomConfig=S(!0),p.treeDefaultEvents=T(!1),p.treeCustomEvents=T(!0);var g=!0,v=1;function h(e){p.reports=e||{count:0,rows:[]}}function f(){if(p.query.offset=(p.query.page-1)*p.query.limit,p.apiName)if("admin"===p.currentUser.role||p.userProfileSection.autoAssociation)p.promise=d[p.apiName].get(p.query,h).$promise;else{var a=[];p.promise=d[p.apiName].get(p.query).$promise.then(function(e){return 0<(a=e&&e.rows?e.rows:[]).length?d.userProfileResource.get({sectionId:p.userProfileSection.id,type:"analyticDefaultReport"===p.apiName?"DefaultReports":"CustomReports"}).$promise.then(function(e){var n=e&&e.rows?e.rows:[];if(0<n.length){var t=[];return a.forEach(function(e){_.find(n,["resourceId",e.id])&&t.push(e)}),h({count:t.length,rows:t})}return h(null)}):h(null)})}}function b(e){p.apiName&&d[p.apiName].delete({id:e.id}).$promise.then(function(){_.remove(p.reports.rows,{id:e.id}),p.reports.count-=1,p.reports.rows.length||p.getReports(),m.success({title:"Report deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.analyticreport.delete"}];for(var n=0;n<e.data.errors.length;n++)m.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticreport.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function A(e,n){p.treeDefaultInstance.jstree(!0).deselect_all(),p.treeDefaultInstance.jstree(!0).close_all(),p.currentNode=n.node,p.currentNode.custom=!0,p.currentPath=p.treeCustomInstance.jstree(!0).get_path(p.currentNode).join("/ "),p.apiName="analyticCustomReport",p.query.parent=n.node.id,f()}function E(e,n){p.treeCustomInstance.jstree(!0).deselect_all(),p.treeCustomInstance.jstree(!0).close_all(),p.currentNode=n.node,p.currentNode.custom=!1,p.currentPath=p.treeDefaultInstance.jstree(!0).get_path(p.currentNode).join("/ "),p.apiName="analyticDefaultReport",p.query.parent=n.node.id,f()}function y(e,n){var t=angular.toJson(p.treeCustomInstance.jstree(!0).get_json("#"));d.analyticTreeReport.update({id:2,tree:t}).$promise.then(function(){c.rows[1]&&(c.rows[1].tree=t),m.success({title:"Node Updated",msg:n.node.text?n.node.text+" has been updated!":"Node has been updated!"})}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEanalyticTreeReport",msg:e.data?JSON.stringify(e.data):e.toString()})})}function S(e){return{core:{multiple:!1,animation:!0,error:function(e){console.error("treeCtrl: error from js tree - "+angular.toJson(e))},check_callback:!0,worker:!0},version:1,plugins:e?["contextmenu","dnd","search","state","wholerow"]:["search","state","wholerow"],contextmenu:{items:function(t){var e={};return p.crudPermissions.canEdit&&_.assign(e,{create:{label:n.instant("ANALYTICS.CREATE"),action:function(){t=p.treeCustomInstance.jstree(!0).create_node(t),p.treeCustomInstance.jstree(!0).edit(t)}},rename:{_disabled:"#"===t.parent,label:n.instant("ANALYTICS.RENAME"),action:function(){p.treeCustomInstance.jstree(!0).edit(t)}}}),p.crudPermissions.canDelete&&_.assign(e,{remove:{_disabled:"#"===t.parent,label:n.instant("ANALYTICS.REMOVE"),action:function(){var e=i.confirm().title("Are you sure want to delete the node?").htmlContent("<b>"+(t.text?t.text:"Node")+"</b> and its subnode will be deleted.").ariaLabel("delete node").ok("OK").cancel("CANCEL");i.show(e).then(function(){var e,n=p.treeCustomInstance.jstree(!0).get_parent(t);n=p.treeCustomInstance.jstree(!0).get_node(n),p.treeCustomInstance.jstree(!0).delete_node(t),e=[t.id].concat(t.children_d||[]),d.analyticCustomReport.get({parent:e.join(","),fields:"id,name"}).$promise.then(function(e){e&&e.rows&&e.rows.forEach(function(e){b(e)})}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEreportsByParents",msg:e.data?JSON.stringify(e.data):e.toString()})}),p.treeCustomInstance.jstree(!0).select_node(n)})}}}),e}}}}function T(e){return e?{create_node:y,rename_node:y,move_node:y,delete_node:y,select_node:A}:{select_node:E}}e.$watch("vm.query.filter",function(e,n){g?t(function(){g=!1}):(n||(v=p.query.page),e!==n&&(p.query.page=1),e||(p.query.page=v),p.getReports())}),e.$watch("vm.search",function(e,n){p.treeDefaultInstance&&p.treeDefaultInstance.jstree(!0).search(e),p.treeCustomInstance&&p.treeCustomInstance.jstree(!0).search(e)})}e.$inject=["$scope","$timeout","$document","$mdDialog","$state","$window","$translate","userProfile","userProfileSection","api","treeReports","toasty","Auth"],angular.module("app.analytics").controller("ReportsController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r){var l=this;function d(){l.export={id:l.report.id,name:l.report.name,startDate:new Date(moment().startOf("day")),endDate:new Date(moment().endOf("day")),output:"xlsx",fullPath:r?r+"/"+l.report.name:l.report.name}}function c(){t.hide()}l.errors=[],l.report=angular.copy(n),l.export={},l.runReport=function(n){l.errors=[],l.exportDate=_.assign({},l.export,{startDate:moment(l.export.startDate).format("YYYY-MM-DD HH:mm:ss"),endDate:moment(l.export.endDate).format("YYYY-MM-DD HH:mm:ss")}),i[s].run(l.exportDate).$promise.then(function(e){"web"===l.export.output?t.show({controller:"WebReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/run/web/dialog.html",parent:angular.element(o.body),targetEvent:n,skipHide:!0,locals:{apiName:s,exportDate:l.exportDate,results:e},resolve:{columns:["apiResolver",function(e){var n={fields:"field,alias",nolimit:!0};return n["analyticCustomReport"===s?"CustomReportId":"DefaultReportId"]=l.report.id,e.resolve("analyticFieldReport@get",n)}]}}):(a.success({title:"Report properly run!",msg:l.report.name?l.report.name+" has been run!":""}),c())}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DESCRIBE",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},l.closeDialog=c,(l.refreshDate=d)()}e.$inject=["$location","$mdDialog","toasty","report","api","apiName","$document","currentPath"],angular.module("app.analytics").controller("RunReportDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o){var r=this;function l(e){r.results=e||{count:0,rows:[]}}r.errors=[],r.columns=a?a.rows:[],r.results=i||{rows:[],count:0},r.query={limit:10,page:1},r.closeDialog=function(){e.hide()},r.getResults=function(){o.offset=(r.query.page-1)*r.query.limit,o.limit=r.query.limit,r.promise=t[s].run(o,l).$promise},r.valueReplacer=function(e,n){moment(n,"YYYY-MM-DDTHH:mm:ssZ",!0).isValid()&&(n=moment(n,"").format("YYYY-MM-DD HH:mm:ss"));return n}}e.$inject=["$mdDialog","toasty","api","columns","results","apiName","exportDate"],angular.module("app.analytics").controller("WebReportDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CALLYSQUARE.EDIT_ODBC",g.odbc=angular.copy(l),g.odbcs=r,g.newOdbc=!1,g.odbc||(g.odbc={},g.title="CALLYSQUARE.NEW_ODBC",g.newOdbc=!0),g.addNewOdbc=function(){g.errors=[],d.squareOdbc.save(g.odbc).$promise.then(function(e){g.odbcs.unshift(e.toJSON()),o.success({title:"Odbc properly created",msg:g.odbc.name?g.odbc.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.squareOdbc.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareOdbc.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveOdbc=function(){g.errors=[],d.squareOdbc.update({id:g.odbc.id},g.odbc).$promise.then(function(e){var n=_.find(g.odbcs,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Odbc properly saved!",msg:g.odbc.name?g.odbc.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.squareOdbc.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareOdbc.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteOdbc=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The odbc will be deleted.").ariaLabel("Delete Odbc").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.squareOdbc.delete({id:g.odbc.id}).$promise.then(function(){_.remove(g.odbcs,{id:g.odbc.id}),o.success({title:"Odbc properly deleted!",msg:(g.odbc.name||"odbc")+" has been deleted!"}),v(g.odbc)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.squareOdbc.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareOdbc.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","odbcs","odbc","api","Auth","license","setting","crudPermissions"],angular.module("app.callysquare").controller("CreateOrEditOdbcDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.odbcs=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="odbcs",f.listOrder="",f.listOrderAsc=null,f.selectedODBC=[],f.query={fields:"createdAt,updatedAt,id,name,dsn,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditOdbcDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/odbcs/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{odbc:e,odbcs:f.odbcs.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.testtestOdbc=function(e,n){return m.squareOdbc.test({id:e.id}).$promise.then(function(){p.success({title:"Square ODBC properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"Square ODBC properly tested",msg:e.data?JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("odbc")+"?").htmlContent("<b>"+(e.name||"odbc")+"</b> will be deleted.").ariaLabel("delete odbc").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getODBC=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.squareOdbc.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ODBC",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditOdbc=function(e,n){i.show({controller:"CreateOrEditOdbcDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/odbcs/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{odbc:n,odbcs:f.odbcs.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteOdbc=y,f.exportSelectedODBC=function(){var e=angular.copy(f.selectedODBC);return f.selectedODBC=[],e},f.deleteSelectedODBC=function(e){var n=i.confirm().title("Are you sure want to delete the selected odbcs?").htmlContent("<b>"+f.selectedODBC.length+" selected</b> will be deleted.").ariaLabel("delete Odbcs").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedODBC.forEach(function(e){y(e)}),f.selectedODBC=[]})},f.deselectODBC=function(){f.selectedODBC=[]},f.selectAllODBC=function(){f.selectedODBC=f.odbcs.rows};var b=!0,A=1;function E(e){f.odbcs=e||{count:0,rows:[]}}function y(e){m.squareOdbc.delete({id:e.id}).$promise.then(function(){_.remove(f.odbcs.rows,{id:e.id}),f.odbcs.count-=1,f.odbcs.rows.length||f.getODBC(),p.success({title:_.startCase("Odbc")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEsquareOdbc"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEsquareOdbc",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getODBC())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","odbcs","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.callysquare").controller("OdbcsController",e)}(),function(){"use strict";function e(n,t,a,i,s,e,o,r,l,d){var c=this;function m(e){n.hide(e)}c.errors=[],c.title="CALLYSQUARE.EDIT_PROJECT",c.crudPermissions=d,c.project=angular.copy(o),c.newWindow=!0,c.projects=e,c.newProject=!1,c.openFromEditor=l,c.project||(c.project={name:"",description:""},c.title="CALLYSQUARE.NEW_PROJECT",c.newProject=!0),c.addNewProject=function(){c.errors=[],r.squareProject.save(c.project).$promise.then(function(e){return r.user.addSquareProjects({id:i.getCurrentUser().id,ids:[e.id]}).$promise,e}).then(function(e){c.projects.unshift(e),s.success({title:"Project properly created",msg:c.project.name?c.project.name+" has been created!":""}),m(e),c.openFromEditor&&(c.newWindow?t.open("/callysquare/projects/"+e.id,"_blank"):a.go("app.callysquare.projects.edit",{id:e.id}))}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.save"}];for(var n=0;n<e.data.errors.length;n++)s.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareProject.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.saveProject=function(){c.errors=[],r.squareProject.update({id:c.project.id},c.project).$promise.then(function(e){var n=_.find(c.projects,{id:e.id});n&&_.merge(n,e),s.success({title:"Project properly saved!",msg:c.project.name?c.project.name+" has been saved!":""}),m(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.update"}];for(var n=0;n<e.data.errors.length;n++)s.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareProject.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.deleteProject=function(){c.errors=[];var e=n.confirm().title("Are you sure?").content("The project will be deleted.").ariaLabel("Delete Project").ok("Delete").cancel("Cancel").targetEvent(event);n.show(e).then(function(){r.squareProject.delete({id:c.project.id}).$promise.then(function(){return r.squareProject.getUsers({id:c.project.id}).$promise}).then(function(e){for(var n=[],t=e.rows,a=0;a<t.length;a++)n.push(r.user.removeSquareProjects({id:i.getCurrentUser().id,ids:[c.project.id]}).$promise);return $q.all(n)}).then(function(){_.remove(c.projects,{id:c.project.id}),s.success({title:"Project properly deleted!",msg:c.project.name?c.project.name+" has been deleted!":""}),m(c.project)}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.delete"}]})},function(){})},c.closeDialog=m}e.$inject=["$mdDialog","$window","$state","Auth","toasty","projects","project","api","openFromEditor","crudPermissions"],angular.module("app.callysquare").controller("CreateOrEditSquareProjectDialogController",e)}(),function(){"use strict";function e(n,t,a,e,i,s,o,r,l,d,c,m,u,p,g,v,h,f,b,A,E,y,S,T,I,C,O,w,R,x,N,D){var P=this,L={playback:["file_id"],answer:["timeout"],menu:["file_id","digit","response","retry"],getdigits:["file_id","variable_id","mindigit","maxdigit","retry"],getsecretdigits:["file_id","variable_id","mindigit","maxdigit","hiddendigitsnum","retry"],vswitch:["variable_id"],database:["odbc_id","query"],ext_dial:["trunk_name","phone","timeout"],set:["variable_id"],math:["variable_id"],gotoc:["context","extension","priority"],system:["command"],agi:["command"],gotoif:["condition"],saydigits:["digits"],saynumber:["number"],sayphonetic:["text"],record:["file","timeout"],goal:["goalname"],dial:["sip_id","timeout"],queue:["queue_id","timeout"],callback:["list_id","name","phone","delay"],gotoiftime:["interval_id"],voicemail:["mailbox"],subproject:["project_id"],sendSMS:["sms_account_id","to","sms_text"],sendMail:["account_id","to"],sendFax:["account_id","to","attachment_path"],google_cloud_tts:["apiKey","google_cloud_tts_text_type","text"],tts:["text"],ispeechtts:["text","key","speed"],ispeechasr:["key","timeout"],custom_app:["application"],googleasr:["key","timeout"],awspolly:["aws_access_key_id","aws_secret_access_key","text","aws_text_type"],lumenvoxtts:["text"],sestektts:["text"],lumenvoxasr:["grammar"],sestekasr:["grammar"],tildeasr:["appid","appsecret","uri"],login:["findBy"],pause:["findBy","pause_id"],unpause:["findBy"],logout:["findBy"],dialogflow:["key","text","dialogflow_language"],awslex:["aws_access_key_id","aws_secret_access_key","aws_lex_region","aws_bot_name","text"],sesteknda:["text","ndauth_url","username","password","ndassistant_url"],restapi:["url","method"],mrcpsynth:["text"],mrcprecog:["grammar"],dialogflowV2:["dialogflowV2_project_id","client_email","private_key","dialogflowV2_language","text"]},k={queue:["file_id"],database:["variable_id"],pause:["pause_id"]},M={sendMail:["to","cc","bcc"],voicemail:["mailbox"]};function U(e,n,t,a){return _.map(e,function(e){return{value:e[n],option:e[t],group:a?e[a]:void 0,canSelect:void 0===e.canSelect||e.canSelect}})}function F(){var e=Number(_.find(P.attributes,{name:"sip_id"}).value);if(!_.some(d,{id:e})&&0<e)return t.user.get({id:e,fields:"id,fullname,role"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,d.push(n),P.values.sip_id=U(d,"id","fullname","role")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_USER",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.sip_id=U(d,"id","fullname","role")}function $(){var e=Number(_.find(P.attributes,{name:"list_id"}).value);if(!_.some(E,{id:e})&&0<e)return t.cmList.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,E.push(n),P.values.list_id=U(E,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_LIST",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.list_id=U(E,"id","name")}function q(){var e=Number(_.find(P.attributes,{name:"trunk_id"}).value);if(!_.some(c,{id:e})&&0<e)return t.trunk.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,c.push(n),P.values.trunk_id=U(c,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_TRUNK",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.trunk_id=U(c,"id","name")}function G(){var e=_.find(P.attributes,{name:"trunk_name"}).value;if(!_.some(c,{name:e})&&e)return t.trunk.get({name:e,fields:"id,name"}).$promise.then(function(e){if(0<e.count&&0<e.rows.length){var n=e.rows[0];n.canSelect=!1,c.push(n),P.values.trunk_name=U(c,"name","name")}}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_TRUNK",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.trunk_name=U(c,"name","name")}function H(){var e=Number(_.find(P.attributes,{name:"queue_id"}).value);if(!_.some(m,{id:e})&&0<e)return t.voiceQueue.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,m.push(n),P.values.queue_id=U(m,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_QUEUE",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.queue_id=U(m,"id","name")}function V(){var e=Number(_.find(P.attributes,{name:"file_id"}).value);if(!_.some(u,{id:e})&&0<e)return t.sound.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,u.push(n),P.values.file_id=U(u,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_SOUND",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.file_id=U(u,"id","name")}function B(){var e=Number(_.find(P.attributes,{name:"variable_id"}).value);if(!_.some(p,{id:e})&&0<e)return t.variable.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,p.push(n),P.values.variable_id=U(p,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_VARIABLE",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.variable_id=U(p,"id","name")}function Q(){var e=Number(_.find(P.attributes,{name:"odbc_id"}).value);if(!_.some(g,{id:e})&&0<e)return t.squareOdbc.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,g.push(n),P.values.odbc_id=U(g,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_ODBC",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.odbc_id=U(g,"id","name")}function W(){var e=Number(_.find(P.attributes,{name:"project_id"}).value);if(!_.some(v,{id:e})&&0<e)return t.squareProject.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,v.push(n),P.values.project_id=U(v,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_PROJECT",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.project_id=U(v,"id","name")}function j(){var e=Number(_.find(P.attributes,{name:"context"}).value);if(!_.some(h,{id:e})&&0<e)return t.voiceContext.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,h.push(n),P.values.context=U(h,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_CONTEXT",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.context=U(h,"id","name")}function Y(){var e=Number(_.find(P.attributes,{name:"interval_id"}).value);if(!_.some(f,{id:e})&&0<e)return t.interval.get({id:e,fields:"id,name,IntervalId"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,f.push(n),P.values.interval_id=U(f,"id","name","IntervalId")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_INTERVAL",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.interval_id=U(f,"id","name","IntervalId")}function z(){var e=Number(_.find(P.attributes,{name:"account_id"}).value);if(!_.some(b,{id:e})&&0<e)return t.mailAccount.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,b.push(n),P.values.account_id=U(b,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_MAIL_ACCOUNT",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.account_id=U(b,"id","name")}function J(){var e=Number(_.find(P.attributes,{name:"sms_account_id"}).value);if(!_.some(C,{id:e})&&0<e)return t.smsAccount.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,C.push(n),P.values.sms_account_id=U(C,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_SMS_ACCOUNT",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.sms_account_id=U(C,"id","name")}function K(){var e=Number(_.find(P.attributes,{name:"template_id"}).value);if(!_.some(A,{id:e})&&0<e)return t.template.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,A.push(n),P.values.template_id=U(A,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_TEMPLATE",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.template_id=U(A,"id","name")}function X(){var e=Number(_.find(P.attributes,{name:"pause_id"}).value);if(!_.some(O,{id:e})&&0<e)return t.pause.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,O.push(n),P.values.pause_id=U(O,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_PAUSE",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.pause_id=U(O,"id","name")}P.cellName=y.tagName,P.attributes=_.map(y.attributes,function(e){return{name:e.name,value:e.value,defaultValue:k[P.cellName]&&_.includes(k[P.cellName],e.name),required:L[P.cellName]&&_.includes(L[P.cellName],e.name),help:M[P.cellName]&&_.includes(M[P.cellName],e.name)}}),P.values={authMethod:[{value:"noauth",option:"NO AUTH"},{value:"hmac",option:"HMAC"}],answer:[{value:"yes",option:"Yes"},{value:"no",option:"No"}],ndagenerate_audio:[{value:1,option:"Yes"},{value:0,option:"No"}],ndaactivity_type:[{value:"message",option:"Message"},{value:"conversationUpdate",option:"Conversation Update"},{value:"contactRelationUpdate",option:"Contact Relation Update"},{value:"endOfConversation",option:"End of Conversation"}],hiddendigitspos:[{value:"first",option:"First"},{value:"last",option:"Last"}],recordingFormat:[{value:"wav",option:"Wav"},{value:"gsm",option:"Gsm"}],intkey:[{value:"#",option:"#"},{value:"*",option:"*"}],beep:[{value:"BEEP",option:"Yes"},{value:"NOBEEP",option:"No"}],model:e,ispeech_asr_language:i,ispeech_tts_language:o,languageCode:r,ssmlGender:[{value:"FEMALE",option:"Female"},{value:"MALE",option:"Male"}],google_tts_language:l,google_asr_language:s,google_cloud_tts_text_type:[{value:"text",option:"Text"},{value:"ssml",option:"SSML"}],aws_polly_region:I,aws_polly_voice:T,aws_text_type:[{value:"text",option:"Text"},{value:"ssml",option:"SSML"}],callback_priority:[{option:"Highest",value:4},{option:"High",value:3},{option:"Medium",value:2},{option:"Low",value:1},{option:"Lowest",value:0}],findBy:[{value:"internal",option:"Internal"},{value:"phone",option:"Phone"},{value:"mobile",option:"Mobile"}],dialogflow_language:w,dialogflowV2_language:R,aws_lex_region:x,method:[{value:"GET",option:"GET"},{value:"POST",option:"POST"},{value:"PUT",option:"PUT"},{value:"DELETE",option:"DELETE"}]},P.crudPermissions=D,P.onInit=function(){N.hasRole("admin")?(e={sip_id:U(d,"id","fullname","role"),trunk_name:U(c,"name","name"),trunk_id:U(c,"id","name"),queue_id:U(m,"id","name"),file_id:U(u,"id","name"),variable_id:U(p,"id","name"),odbc_id:U(g,"id","name"),project_id:U(v,"id","name"),context:U(h,"id","name"),interval_id:(t=f,a="id",i="name",s="IntervalId",o=_.filter(t,function(e){return null===e[s]}),r=[],_.forEach(o,function(n){r.push({value:n[a],option:n[i]});var e=_.filter(t,function(e){return e[s]===n.id});_.forEach(e,function(e){r.push({value:e[a],option:" - "+e[i]})})}),r),account_id:U(b,"id","name"),template_id:U(A,"id","name"),list_id:U(E,"id","name"),sms_account_id:U(C,"id","name"),pause_id:U(O,"id","name")},n=_.merge(P.values,e),P.values=n):function(){for(var e=["sip_id","trunk_name","trunk_id","queue_id","file_id","variable_id","odbc_id","project_id","context","interval_id","account_id","template_id","list_id","sms_account_id","pause_id"],n=0;n<P.attributes.length;n++)if(_.includes(e,P.attributes[n].name))switch(P.attributes[n].name){case"sip_id":F();break;case"trunk_name":G();break;case"trunk_id":q();break;case"queue_id":H();break;case"file_id":V();break;case"variable_id":B();break;case"odbc_id":Q();break;case"project_id":W();break;case"context":j();break;case"interval_id":Y();break;case"account_id":z();break;case"template_id":K();break;case"list_id":$();break;case"sms_account_id":J();break;case"pause_id":X()}}();var e,n,t,a,i,s,o,r},P.closeDialog=function(e){e&&S(P.attributes),n.hide()},P.getMap=U}e.$inject=["$mdDialog","api","toasty","ispeechAsrModel","ispeechAsrLanguage","googleAsrLanguage","ispeechTtsLanguage","googleCloudTtslanguageCode","googleTtsLanguage","users","trunks","queues","sounds","variables","databases","projects","contexts","intervals","mailAccounts","templates","lists","cell","saveCallback","awsPollyVoice","awsPollyRegion","smsAccounts","pauses","dialogFlowLanguage","dialogFlowV2Language","awsLexRegion","Auth","crudPermissions"],angular.module("app.callysquare").controller("MxGraphDialogController",e)}(),function(){"use strict";angular.module("app.callysquare").directive("stringToNumber",function(){return{require:"ngModel",link:function(e,n,t,a){a.$parsers.push(function(e){return""+e}),a.$formatters.push(function(e){return parseFloat(e)})}}})}(),function(){"use strict";angular.module("app.callysquare").factory("ispeechAsrModel",function(){return[{value:"0",option:"Default"},{value:"date",option:"Date"},{value:"usmoney",option:"US Money"},{value:"numbersto9",option:"Numbers to 9"},{value:"numbersto99",option:"Numbers to 99"},{value:"numbersto999",option:"Numbers to 999"},{value:"time",option:"Time"},{value:"phonenumber",option:"Phone number"},{value:"streets",option:"Streets"},{value:"citystate",option:"US City/States"}]}).factory("ispeechAsrLanguage",function(){return[{value:"en-US",option:"English (US)"},{value:"en-CA",option:"English (Canada)"},{value:"en-GB",option:"English (UK)"},{value:"en-AU",option:"English (Australia)"},{value:"es-ES",option:"Spanish (Spain)"},{value:"es-MX",option:"Spanish (Mexico)"},{value:"it-IT",option:"Italian (Italy) / Finnish (Finland)"},{value:"fr-FR",option:"German (Germany)"},{value:"fr-CA",option:"French (Canada)"},{value:"pl-PL",option:"Polish (Poland)"},{value:"pt-PT",option:"Portuguese (Portugal)"},{value:"ca-ES",option:"Catalan (Catalan)"},{value:"zh-TW",option:"Chinese (Taiwan)"},{value:"da-DK",option:"Danish (Denmark)"},{value:"ja-JP",option:"Japanese (Japan)"},{value:"ko-KR",option:"Korean (Korea)"},{value:"nl-NL",option:"Dutch (Netherlands)"},{value:"nb-NO",option:"Norwegian (Norway)"},{value:"pt-BR",option:"Portuguese (Brazil)"},{value:"ru-RU",option:"Russian (Russia)"},{value:"sv-SE",option:"Swedish (Sweden)"},{value:"zh-CN",option:"Chinese (China)"},{value:"zh-HK",option:"Chinese (Hong Kong)"}]}).factory("ispeechTtsLanguage",function(){return[{value:"usenglishfemale",option:"US English Female"},{value:"usenglishmale",option:"US English Male"},{value:"ukenglishfemale",option:"UK English Female"},{value:"ukenglishmale",option:"UK English Male"},{value:"auenglishfemale",option:"Australian English"},{value:"usspanishfemale",option:"US Spanish Female"},{value:"usspanishmale",option:"US Spanish Male"},{value:"chchinesefemale",option:"Chinese Female"},{value:"chchinesemale",option:"Chinese Male"},{value:"hkchinesefemale",option:"Hong Kong Cantonese Female"},{value:"twchinesefemale",option:"Taiwan Chinese Female"},{value:"jpjapanesefemale",option:"Japanese Female"},{value:"jpjapanesemale",option:"Japanese Male"},{value:"krkoreanfemale",option:"Korean Female"},{value:"krkoreanmale",option:"Korean Male"},{value:"caenglishfemale",option:"Canadian English Female"},{value:"huhungarianfemale",option:"Hungarian Female"},{value:"brportuguesefemale",option:"Brazilian Portuguese Female"},{value:"eurportuguesefemale",option:"European Portuguese Female"},{value:"eurportuguesemale",option:"European Portuguese Male"},{value:"eurspanishfemale",option:"European Spanish Female"},{value:"eurspanishmale",option:"European Spanish Male"},{value:"eurcatalanfemale",option:"European Catalan Female"},{value:"eurczechfemale",option:"European Czech Female"},{value:"eurdanishfemale",option:"European Danish Female"},{value:"eurfinnishfemale",option:"European Finnish Female"},{value:"eurfrenchfemale",option:"European French Female"},{value:"eurfrenchmale",option:"European French Male"},{value:"eurnorwegianfemale",option:"European Norwegian Female"},{value:"eurdutchfemale",option:"European Dutch Female"},{value:"eurpolishfemale",option:"European Polish Female"},{value:"euritalianfemale",option:"European Italian Female"},{value:"euritalianmale",option:"European Italian Male"},{value:"eurturkishfemale",option:"European Turkish Female"},{value:"eurturkishmale",option:"European Turkish Male"},{value:"eurgermanfemale",option:"European German Female"},{value:"eurgermanmale",option:"European German Male"},{value:"rurussianfemale",option:"Russian Female"},{value:"rurussianmale",option:"Russian Male"},{value:"swswedishfemale",option:"Swedish Female"},{value:"cafrenchfemale",option:"Canadian French Female"},{value:"cafrenchmale",option:"Canadian French Male"}]}).factory("googleCloudTtslanguageCode",function(){return[{value:"af-ZA",option:"Afrikaans (South Africa)"},{value:"ar-XA",option:"Arabic"},{value:"bn-IN",option:"Bengali (India)"},{value:"bg-BG",option:"Bulgarian (Bulgaria)"},{value:"ca-ES",option:"Catalan (Spain)"},{value:"yue-HK",option:"Chinese (Hong Kong)"},{value:"cs-CZ",option:"Czech (Czech Republic)"},{value:"da-DK",option:"Danish (Denmark)"},{value:"nl-BE",option:"Dutch (Belgium)"},{value:"nl-NL",option:"Dutch (Netherlands)"},{value:"en-AU",option:"English (Australian)"},{value:"en-IN",option:"English (India)"},{value:"en-GB",option:"English (UK)"},{value:"en-US",option:"English (US)"},{value:"fi-FI",option:"Finnish (Finland)"},{value:"fil-PH",option:"Filipino (Philippines)"},{value:"fr-CA",option:"French (Canada)"},{value:"fr-FR",option:"French (France)"},{value:"de-DE",option:"German (Germany)"},{value:"el-GR",option:"Greek (Greece)"},{value:"gu-IN",option:"Gujarati (India)"},{value:"hi-IN",option:"Hindi (India)"},{value:"hu-HU",option:"Hungarian (Hungary)"},{value:"is-IS",option:"Icelandic (Iceland)"},{value:"id-ID",option:"Indonesian (Indonesia)"},{value:"it-IT",option:"Italian (Italy)"},{value:"ja-JP",option:"Japanese (Japan)"},{value:"kn-IN",option:"Kannada (India)"},{value:"ko-KR",option:"Korean (South Korea)"},{value:"lv-LV",option:"Latvian (Latvia)"},{value:"ms-MY",option:"Malay (Malaysia)"},{value:"ml-IN",option:"Malayalam (India)"},{value:"cmn-CN",option:"Mandarin Chinese"},{value:"nb-NO",option:"Norwegian (Norway)"},{value:"pl-PL",option:"Polish (Poland)"},{value:"pt-BR",option:"Portuguese (Brazil)"},{value:"pt-PT",option:"Portuguese (Portugal)"},{value:"ro-RO",option:"Romanian (Romania)"},{value:"ru-RU",option:"Russian (Russia)"},{value:"sr-RS",option:"Serbian (Cyrillic)"},{value:"sk-SK",option:"Slovak (Slovakia)"},{value:"es-ES",option:"Spanish (Spain)"},{value:"es-US",option:"Spanish (US)"},{value:"sv-SE",option:"Swedish (Sweden)"},{value:"ta-IN",option:"Tamil (India)"},{value:"te-IN",option:"Telugu (India)\t"},{value:"th-TH",option:"Thai (Thailand)"},{value:"tr-TR",option:"Turkish (Turkey)"},{value:"uk-UA",option:"Ukrainian (Ukraine)"},{value:"vi-VN",option:"Vietnamese (Vietnam)"}]}).factory("googleTtsLanguage",function(){return[{value:"af",option:"Afrikaans"},{value:"sq",option:"Albanian"},{value:"am",option:"Amharic"},{value:"ar",option:"Arabic"},{value:"hy",option:"Armenian"},{value:"az",option:"Azerbaijani"},{value:"eu",option:"Basque"},{value:"be",option:"Belarusian"},{value:"bn",option:"Bengali"},{value:"bh",option:"Bihari"},{value:"bs",option:"Bosnian"},{value:"br",option:"Breton"},{value:"bg",option:"Bulgarian"},{value:"km",option:"Cambodian"},{value:"ca",option:"Catalan"},{value:"zh-CN",option:"Chinese (Simplified)"},{value:"zh-TW",option:"Chinese (Traditional)"},{value:"co",option:"Corsican"},{value:"hr",option:"Croatian"},{value:"cs",option:"Czech"},{value:"da",option:"Danish"},{value:"nl",option:"Dutch"},{value:"en",option:"English"},{value:"eo",option:"Esperanto"},{value:"et",option:"Estonian"},{value:"fo",option:"Faroese"},{value:"tl",option:"Filipino"},{value:"fi",option:"Finnish"},{value:"fr",option:"French"},{value:"fy",option:"Frisian"},{value:"gl",option:"Galician"},{value:"ka",option:"Georgian"},{value:"de",option:"German"},{value:"el",option:"Greek"},{value:"gn",option:"Guarani"},{value:"gu",option:"Gujarati"},{value:"xx-hacker",option:"Hacker"},{value:"ha",option:"Hausa"},{value:"iw",option:"Hebrew"},{value:"hi",option:"Hindi"},{value:"hu",option:"Hungarian"},{value:"is",option:"Icelandic"},{value:"id",option:"Indonesian"},{value:"ia",option:"Interlingua"},{value:"ga",option:"Irish"},{value:"it",option:"Italian"},{value:"jw",option:"Javanese"},{value:"ja",option:"Japanese"},{value:"kn",option:"Kannada"},{value:"kk",option:"Kazakh"},{value:"rw",option:"Kinyarwanda"},{value:"rn",option:"Kirundi"},{value:"xx-klingon",option:"Klingon"},{value:"ku",option:"Kurdish"},{value:"ko",option:"Korean"},{value:"ky",option:"Kyrgyz"},{value:"lo",option:"Laothian"},{value:"la",option:"Latin"},{value:"lv",option:"Latvian"},{value:"ln",option:"Lingala"},{value:"lt",option:"Lithuanian"},{value:"mk",option:"Macedonian"},{value:"mg",option:"Malagasy"},{value:"ml",option:"Malayalam"},{value:"mt",option:"Maltese"},{value:"mi",option:"Maori"},{value:"mr",option:"Marathi"},{value:"mo",option:"Moldavian"},{value:"mn",option:"Mongolian"},{value:"sr-ME",option:"Montenegrin"},{value:"ne",option:"Nepali"},{value:"no",option:"Norwegian"},{value:"nn",option:"Norwegian (Nynorsk)"},{value:"oc",option:"Occitan"},{value:"or",option:"Oriya"},{value:"om",option:"Oromo"},{value:"ps",option:"Pashto"},{value:"fa",option:"Persian"},{value:"xx-pirate",option:"Pirate"},{value:"pl",option:"Polish"},{value:"pt-BR",option:"Portuguese (Brazil)"},{value:"pt-PT",option:"Portuguese (Portugal)"},{value:"pa",option:"Punjabi"},{value:"qu",option:"Quechua"},{value:"ro",option:"Romanian"},{value:"rm",option:"Romansh"},{value:"ru",option:"Russian"},{value:"gd",option:"Scots Gaelic"},{value:"sr",option:"Serbian"},{value:"sh",option:"Serbo-Croatian"},{value:"st",option:"Sesotho"},{value:"sn",option:"Shona"},{value:"sd",option:"Sindhi"},{value:"si",option:"Sinhalese"},{value:"sk",option:"Slovak"},{value:"sl",option:"Slovenian"},{value:"so",option:"Somali"},{value:"es",option:"Spanish"},{value:"su",option:"Sundanese"},{value:"sw",option:"Swahili"},{value:"sv",option:"Swedish"},{value:"tg",option:"Tajik"},{value:"ta",option:"Tamil"},{value:"tt",option:"Tatar"},{value:"te",option:"Telugu"},{value:"th",option:"Thai"},{value:"ti",option:"Tigrinya"},{value:"to",option:"Tonga"},{value:"tr",option:"Turkish"},{value:"tk",option:"Turkmen"},{value:"tw",option:"Twi"},{value:"ug",option:"Uighur"},{value:"uk",option:"Ukrainian"},{value:"ur",option:"Urdu"},{value:"uz",option:"Uzbek"},{value:"vi",option:"Vietnamese"},{value:"cy",option:"Welsh"},{value:"xh",option:"Xhosa"},{value:"yi",option:"Yiddish"},{value:"yo",option:"Yoruba"},{value:"zu",option:"Zulu"}]}).factory("googleAsrLanguage",function(){return[{option:"Afrikaans (South Africa)",value:"af-ZA"},{option:"Albanian (Albania)",value:"sq-AL"},{option:"Amharic (Ethiopia)",value:"am-ET"},{option:"Arabic (Algeria)",value:"ar-DZ"},{option:"Arabic (Bahrain)",value:"ar-BH"},{option:"Arabic (Egypt)",value:"ar-EG"},{option:"Arabic (Iraq)",value:"ar-IQ"},{option:"Arabic (Israel)",value:"ar-IL"},{option:"Arabic (Jordan)",value:"ar-JO"},{option:"Arabic (Kuwait)",value:"ar-KW"},{option:"Arabic (Lebanon)",value:"ar-LB"},{option:"Arabic (Morocco)",value:"ar-MA"},{option:"Arabic (Oman)",value:"ar-OM"},{option:"Arabic (Qatar)",value:"ar-QA"},{option:"Arabic (Saudi Arabia)",value:"ar-SA"},{option:"Arabic (State of Palestine)",value:"ar-PS"},{option:"Arabic (Tunisia)",value:"ar-TN"},{option:"Arabic (United Arab Emirates)",value:"ar-AE"},{option:"Arabic (Yemen)",value:"ar-YE"},{option:"Armenian (Armenia)",value:"hy-AM"},{option:"Azerbaijani (Azerbaijan)",value:"az-AZ"},{option:"Basque (Spain)",value:"eu-ES"},{option:"Bengali (Bangladesh)",value:"bn-BD"},{option:"Bengali (India)",value:"bn-IN"},{option:"Bosnian (Bosnia and Herzegovina)",value:"bs-BA"},{option:"Bulgarian (Bulgaria)",value:"bg-BG"},{option:"Burmese (Myanmar)",value:"my-MM"},{option:"Catalan (Spain)",value:"ca-ES"},{option:"Chinese, Cantonese (Traditional Hong Kong)",value:"yue-Hant-HK"},{option:"Chinese, Mandarin (Simplified, China)",value:"cmn-Hans-CN"},{option:"Croatian (Croatia)",value:"hr-HR"},{option:"Czech (Czech Republic)",value:"cs-CZ"},{option:"Danish (Denmark)",value:"da-DK"},{option:"Dutch (Belgium)",value:"nl-BE"},{option:"Dutch (Netherlands)",value:"nl-NL"},{option:"English (Australia)",value:"en-AU"},{option:"English (Canada)",value:"en-CA"},{option:"English (Ghana)",value:"en-GH"},{option:"English (Hong Kong)",value:"en-HK"},{option:"English (India)",value:"en-IN"},{option:"English (Ireland)",value:"en-IE"},{option:"English (Kenya)",value:"en-KE"},{option:"English (New Zealand)",value:"en-NZ"},{option:"English (Nigeria)",value:"en-NG"},{option:"English (Pakistan)",value:"en-PK"},{option:"English (Philippines)",value:"en-PH"},{option:"English (Singapore)",value:"en-SG"},{option:"English (South Africa)",value:"en-ZA"},{option:"English (Tanzania)",value:"en-TZ"},{option:"English (United Kingdom)",value:"en-GB"},{option:"English (United States)",value:"en-US"},{option:"Estonian (Estonia)",value:"et-EE"},{option:"Filipino (Philippines)",value:"fil-PH"},{option:"Finnish (Finland)",value:"fi-FI"},{option:"French (Belgium)",value:"fr-BE"},{option:"French (Canada)",value:"fr-CA"},{option:"French (France)",value:"fr-FR"},{option:"French (Switzerland)",value:"fr-CH"},{option:"Galician (Spain)",value:"gl-ES"},{option:"Georgian (Georgia)",value:"ka-GE"},{option:"German (Austria)",value:"de-AT"},{option:"German (Germany)",value:"de-DE"},{option:"German (Switzerland)",value:"de-CH"},{option:"Greek (Greece)",value:"el-GR"},{option:"Gujarati (India)",value:"gu-IN"},{option:"Hebrew (Israel)",value:"iw-IL"},{option:"Hindi (India)",value:"hi-IN"},{option:"Hungarian (Hungary)",value:"hu-HU"},{option:"Icelandic (Iceland)",value:"is-IS"},{option:"Indonesian (Indonesia)",value:"id-ID"},{option:"Italian (Italy)",value:"it-IT"},{option:"Italian (Switzerland)",value:"it-CH"},{option:"Japanese (Japan)",value:"ja-JP"},{option:"Javanese (Indonesia)",value:"jv-ID"},{option:"Kannada (India)",value:"kn-IN"},{option:"Kazakh (Kazakhstan)",value:"kk-KZ"},{option:"Khmer (Cambodia)",value:"km-KH"},{option:"Korean (South Korea)",value:"ko-KR"},{option:"Lao (Laos)",value:"lo-LA"},{option:"Latvian (Latvia)",value:"lv-LV"},{option:"Lithuanian (Lithuania)",value:"lt-LT"},{option:"Macedonian (North Macedonia)",value:"mk-MK"},{option:"Malay (Malaysia)",value:"ms-MY"},{option:"Malayalam (India)",value:"ml-IN"},{option:"Marathi (India)",value:"mr-IN"},{option:"Mongolian (Mongolia)",value:"mn-MN"},{option:"Nepali (Nepal)",value:"ne-NP"},{option:"Norwegian Bokmål (Norway)",value:"no-NO"},{option:"Persian (Iran)",value:"fa-IR"},{option:"Polish (Poland)",value:"pl-PL"},{option:"Portuguese (Brazil)",value:"pt-BR"},{option:"Portuguese (Portugal)",value:"pt-PT"},{option:"Punjabi (Gurmukhi India)",value:"pa-Guru-IN"},{option:"Romanian (Romania)",value:"ro-RO"},{option:"Russian (Russia)",value:"ru-RU"},{option:"Serbian (Serbia)",value:"sr-RS"},{option:"Sinhala (Sri Lanka)",value:"si-LK"},{option:"Slovak (Slovakia)",value:"sk-SK"},{option:"Slovenian (Slovenia)",value:"sl-SI"},{option:"Spanish (Argentina)",value:"es-AR"},{option:"Spanish (Bolivia)",value:"es-BO"},{option:"Spanish (Chile)",value:"es-CL"},{option:"Spanish (Colombia)",value:"es-CO"},{option:"Spanish (Costa Rica)",value:"es-CR"},{option:"Spanish (Dominican Republic)",value:"es-DO"},{option:"Spanish (Ecuador)",value:"es-EC"},{option:"Spanish (El Salvador)",value:"es-SV"},{option:"Spanish (Guatemala)",value:"es-GT"},{option:"Spanish (Honduras)",value:"es-HN"},{option:"Spanish (Mexico)",value:"es-MX"},{option:"Spanish (Nicaragua)",value:"es-NI"},{option:"Spanish (Panama)",value:"es-PA"},{option:"Spanish (Paraguay)",value:"es-PY"},{option:"Spanish (Peru)",value:"es-PE"},{option:"Spanish (Puerto Rico)",value:"es-PR"},{option:"Spanish (Spain)",value:"es-ES"},{option:"Spanish (United States)",value:"es-US"},{option:"Spanish (Uruguay)",value:"es-UY"},{option:"Spanish (Venezuela)",value:"es-VE"},{option:"Sundanese (Indonesia)",value:"su-ID"},{option:"Swahili (Kenya)",value:"sw-KE"},{option:"Swahili (Tanzania)",value:"sw-TZ"},{option:"Swedish (Sweden)",value:"sv-SE"},{option:"Tamil (India)",value:"ta-IN"},{option:"Tamil (Malaysia)",value:"ta-MY"},{option:"Tamil (Singapore)",value:"ta-SG"},{option:"Tamil (Sri Lanka)",value:"ta-LK"},{option:"Telugu (India)",value:"te-IN"},{option:"Thai (Thailand)",value:"th-TH"},{option:"Turkish (Turkey)",value:"tr-TR"},{option:"Ukrainian (Ukraine)",value:"uk-UA"},{option:"Urdu (India)",value:"ur-IN"},{option:"Urdu (Pakistan)",value:"ur-PK"},{option:"Uzbek (Uzbekistan)",value:"uz-UZ"},{option:"Vietnamese (Vietnam)",value:"vi-VN"},{option:"Zulu (South Africa)",value:"zu-ZA"}]}).factory("awsPollyVoice",function(){return[{value:"Amy",option:"Amy (English, British, Female)"},{value:"Astrid",option:"Astrid (Swedish, Female)"},{value:"Brian",option:"Brian (English, British, Male)"},{value:"Carla",option:"Carla (Italian, Female)"},{value:"Carmen",option:"Carmen (Romanian, Female)"},{value:"Celine",option:"Celine (French, Female)"},{value:"Chantal",option:"Chantal (French, Canadian, Female)"},{value:"Conchita",option:"Conchita (Spanish, Castilian, Female)"},{value:"Cristiano",option:"Cristiano (Portuguese, Male)"},{value:"Dora",option:"Dora (Icelandic, Female)"},{value:"Emma",option:"Emma (English, British, Female)"},{value:"Enrique",option:"Enrique (Spanish, Castilian, Male)"},{value:"Ewa",option:"Ewa (Polish, Female)"},{value:"Filiz",option:"Filiz (Turkish, Female)"},{value:"Geraint",option:"Geraint (English, Welsh, Male)"},{value:"Giorgio",option:"Giorgio (Italian, Male)"},{value:"Gwineth",option:"Gwineth (Welsh, Female)"},{value:"Hans",option:"Hans (German, Male)"},{value:"Ines",option:"Ines (Portuguese, Female)"},{value:"Ivy",option:"Ivy (English, US, Female)"},{value:"Jacek",option:"Jacek (Polish, Male)"},{value:"Jan",option:"Jan (Polish, Male)"},{value:"Joanna",option:"Joanna (English, US, Female)"},{value:"Joey",option:"Joey (English, US, Male)"},{value:"Justin",option:"Justin (English, US, Male)"},{value:"Karl",option:"Karl (Icelandic, Male)"},{value:"Kendra",option:"Kendra (English, US, Female)"},{value:"Kimberly",option:"Kimberly (English, US, Female)"},{value:"Liv",option:"Liv (Norwegian, Female)"},{value:"Lotte",option:"Lotte (Dutch, Female)"},{value:"Mads",option:"Mads (Danish, Male)"},{value:"Maja",option:"Maja (Polish, Female)"},{value:"Marlene",option:"Marlene (German, Female)"},{value:"Mathieu",option:"Mathieu (French, Male)"},{value:"Maxim",option:"Maxim (Russian, Male)"},{value:"Miguel",option:"Miguel (Spanish, US, Male)"},{value:"Mizuki",option:"Mizuki (Japanese, Female)"},{value:"Naja",option:"Naja (Danish, Female)"},{value:"Nicole",option:"Nicole (English, Austrialian, Female)"},{value:"Penelope",option:"Penelope (Spanish, US, Female)"},{value:"Raveena",option:"Raveena (English, Indian, Female)"},{value:"Ricardo",option:"Ricardo (Portuguese, Brazilian, Male)"},{value:"Ruben",option:"Ruben (Dutch, Male)"},{value:"Russell",option:"Russell (English, Austrialian, Male)"},{value:"Salli",option:"Salli (English, US, Female)"},{value:"Tatyana",option:"Tatyana (Russian, Female)"},{value:"Vitoria",option:"Vitoria (Portuguese, Brazilian, Female)"}]}).factory("awsPollyRegion",function(){return[{value:"us-east-1",option:"US East (N. Virginia)"},{value:"us-east-2",option:"US East (Ohio)"},{value:"us-west-1",option:"US West (N. California)"},{value:"us-west-2",option:"US West (Oregon)"},{value:"ca-central-1",option:"Canada (Central)"},{value:"eu-west-1",option:"EU (Ireland)"},{value:"eu-central-1",option:"EU (Frankfurt)"},{value:"eu-west-2",option:"EU (London)"},{value:"eu-west-3",option:"EU (Paris)"},{value:"ap-southeast-1",option:"Asia Pacific (Singapore)"},{value:"ap-southeast-2",option:"Asia Pacific (Sydney)"},{value:"ap-northeast-2",option:"Asia Pacific (Seoul)"},{value:"ap-northeast-1",option:"Asia Pacific (Tokyo)"},{value:"ap-south-1",option:"Asia Pacific (Mumbai)"},{value:"sa-east-1",option:"South America (São Paulo)"}]}).factory("awsLexRegion",function(){return[{value:"us-east-1",option:"US East (N. Virginia)"},{value:"us-west-2",option:"US West (Oregon)"},{value:"eu-west-1",option:"EU (Ireland)"},{value:"ap-southeast-2",option:"Asia Pacific (Sydney)"}]}).factory("dialogFlowLanguage",function(){return[{value:"da",option:"Danish"},{value:"en",option:"English"},{value:"de",option:"German"},{value:"it",option:"Italian"},{value:"es",option:"Spanish"},{value:"fr",option:"French"},{value:"id",option:"Indonesian"},{value:"ja",option:"Japanese"},{value:"ko",option:"Korean (South Korea)"},{value:"nl",option:"Dutch"},{value:"no",option:"Norwegian"},{value:"pt",option:"Portuguese (European)"},{value:"pt-br",option:"Portuguese (Nrazilian)"},{value:"ru",option:"Russian"},{value:"sv",option:"Swedish"},{value:"th",option:"Thai"},{value:"uk",option:"Ukrainian"},{value:"zh-CN",option:"Chinese (Simplified)"},{value:"zh-HK",option:"Chinese (Hong Kong)"},{value:"zh-TW",option:"Chinese (Traditional)"}]}).factory("dialogFlowV2Language",function(){return[{value:"zh-HK",option:"Chinese (Cantonese)"},{value:"zh-CN",option:"Chinese (Simplified)"},{value:"zh-TW",option:"Chinese (Traditional)"},{value:"da",option:"Danish"},{value:"nl",option:"Dutch"},{value:"en",option:"English"},{value:"en-AU",option:"English (Australia)"},{value:"en-CA",option:"English (Canada)"},{value:"en-GB",option:"English (Great Britain)"},{value:"en-IN",option:"English (India)"},{value:"en-US",option:"English (US)"},{value:"fr",option:"French"},{value:"fr-CA",option:"French (Canada)"},{value:"fr-FR",option:"France (France)"},{value:"de",option:"German"},{value:"hi",option:"Hindi"},{value:"id",option:"Indonesian"},{value:"it",option:"Italian"},{value:"ja",option:"Japanese"},{value:"ko",option:"Korean"},{value:"no",option:"Norwegian"},{value:"pl",option:"Polish"},{value:"pt-BR",option:"Portuguese (Brazil)"},{value:"pt-PT",option:"Portuguese (Portugal)"},{value:"ru",option:"Russian"},{value:"es",option:"Spanish"},{value:"es-419",option:"Spanish (Latin America)"},{value:"es-ES",option:"Spanish (Spain)"},{value:"sw",option:"Swedish"},{value:"th",option:"Thai"},{value:"tr",option:"Turkish"},{value:"uk",option:"Ukrainian"}]})}(),function(){"use strict";function e(n,e,t,a){var i=this;i.project={preproduction:t},i.closeDialog=function(e){e?(a(i.project.preproduction),n.hide(i.project.preproduction)):n.hide()}}e.$inject=["$mdDialog","toasty","currentXML","saveCallback"],angular.module("app.callysquare").controller("MxGraphEditXMLController",e)}(),function(){"use strict";function e(n,t){var a=this;function i(e){e?(t(e),n.hide(e)):n.hide()}a.errors=[],a.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:5242880,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},a.ngFlow={flow:{}},a.dropping=!1,a.closeDialog=i,a.fileAdded=function(e){a.errors=[];_.includes(["xml"],e.getExtension())||a.errors.push({message:"The extension "+e.getExtension()+" is not supported!"});5242880<e.size&&a.errors.push({message:"The file is too big. The max allowed size is 5MB"});if(!a.errors.length){var n=new FileReader;n.onload=function(e){i(e.target.result)},n.readAsText(e.file)}}}e.$inject=["$mdDialog","saveCallback"],angular.module("app.callysquare").controller("MxGraphImportXMLController",e)}(),function(){"use strict";function e(n,t,e,a){var i=this;i.project=_.clone(e),i.closeDialog=function(){n.hide()},i.save=function(){i.errors=[],a.squareProject.update({id:i.project.id},{notes:i.project.notes,description:i.project.description}).$promise.then(function(e){t.success({title:"Project updated!",msg:i.project.name?i.project.name+" has been updated!":""}),n.hide(e)}).catch(function(e){console.error(e),i.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.update"}]})}}e.$inject=["$mdDialog","toasty","project","api"],angular.module("app.callysquare").controller("MxGraphUpdateInfoController",e)}(),function(){"use strict";function e(n,e,t,a,i){var s=this;s.projects=t,s.id="",s.newWindow=!0,s.closeDialog=function(e){s.errors=[],e?(n.hide(),s.newWindow?a.open("/callysquare/projects/"+s.id,"_blank"):i.go("app.callysquare.projects.edit",{id:s.id})):n.hide()}}e.$inject=["$mdDialog","toasty","projects","$window","$state"],angular.module("app.callysquare").controller("MxGraphOpenProjectController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o){var r=this;function l(){return a.squareProject.getUsers({id:r.project.id,fields:"id,name,fullname,internal",nolimit:!0,role:"user"}).$promise.then(function(e){return r.selectedItems=e.rows?_.map(e.rows,function(e){return e}):[],r.dualMultiselectOptions.selectedItems=r.selectedItems,a.user.get({fields:"id,fullname,name,internal",role:"user",nolimit:!0}).$promise}).then(function(e){r.items=e.rows?_.map(e.rows,function(e){return e}):[],r.dualMultiselectOptions.items=_.differenceBy(r.items,r.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETUSERS",msg:e.status?JSON.stringify(e.data):e.toString()})})}r.project=n,r.penalty=0,r.items=[],r.selectedItems=[],r.closeDialog=function(){e.hide()},r.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:s.instant("CALLYSQUARE.ALL_USERS"),labelSelected:s.instant("CALLYSQUARE.SELECTED_USERS"),transferCallback:function(e,n){a.squareProject[n?"removeUsers":"addUsers"]({id:r.project.id,ids:_.map(e,"id"),penalty:r.penalty||0}).$promise.then(function(){t.success({title:"Project properly "+(n?"removed":"added"),msg:"Project has been "+(n?"removed":"added")+"!"}),n||l()}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:squareProjects.ADDUSERS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},l()}e.$inject=["$mdDialog","toasty","api","project","projects","$translate","Auth"],angular.module("app.callysquare").controller("ProjectspermissionaddController",e)}(),function(){"use strict";function e(n,t,e,a,i,s,o){var r=this;r.project=angular.copy(e),r.project.name+="_new",r.project.preproduction=a,r.newWindow=!0,r.closeDialog=function(){n.hide()},r.save=function(){delete r.project.id,i.squareProject.save(r.project).$promise.then(function(e){t.success({title:"Project properly created",msg:r.project.name?r.project.name+" has been created!":""}),n.hide(e),r.newWindow?s.open("/callysquare/projects/"+e.id,"_blank"):o.go("app.callysquare.projects.edit",{id:e.id})}).catch(function(e){console.error(e),r.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.save"}]})}}e.$inject=["$mdDialog","toasty","project","currentXML","api","$window","$state"],angular.module("app.callysquare").controller("MxGraphSaveProjectAsController",e)}(),function(){"use strict";function e(e,t,a,i,s,o,r,n,l,d,c,m,u,p,g,v,h,f,b,A,E,y,S,T){var I=this;I.currentUser=T.getCurrentUser(),I.project=n||{},I.userProfileSection=S&&1==S.count?S.rows[0]:null,I.crudPermissions=T.parseCrudPermissions(I.userProfileSection?I.userProfileSection.crudPermissions:null),I.onInit=function(){new EditorUi(I,new Editor,document.getElementById("geEditor")).openString(I.project.preproduction,I.project.name,I.project)},I.saveOrPublishProject=function(e,n){var t={preproduction:e};n&&(t.production=e);r.squareProject.update({id:I.project.id},t).$promise.then(function(e){o.success({title:"Project "+(n?"published":"saved")+"!",msg:I.project.name?I.project.name+" has been "+(n?"published":"saved")+"!":""}),I.project.preproduction=e.preproduction}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsquareProject",msg:e.data?JSON.stringify(e.data):e.toString()})})},I.openDialog=function(e,n){a.show({controller:"MxGraphDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/dialog/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{users:l.rows||[],trunks:d.rows||[],queues:c.rows||[],sounds:m.rows||[],variables:u.rows||[],databases:p.rows||[],contexts:g.rows||[],projects:v.rows||[],intervals:h.rows||[],mailAccounts:f.rows||[],smsAccounts:E.rows||[],pauses:y.rows||[],templates:b.rows||[],lists:A.rows||[],cell:e,saveCallback:n,crudPermissions:I.crudPermissions}})},I.newProject=function(e){a.show({controller:"CreateOrEditSquareProjectDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/create/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{project:e,projects:v.rows,openFromEditor:!0,license:null,setting:null,crudPermissions:I.crudPermissions}})},I.openProject=function(){a.show({controller:"MxGraphOpenProjectController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/open/open.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{projects:v.rows||[]}})},I.saveProjectAs=function(e){a.show({controller:"MxGraphSaveProjectAsController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/saveAs/saveAs.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{project:I.project,currentXML:e}}).then(function(e){e&&v.rows.push(e)})},I.newVariable=function(n){return i(function(a,n){return r.userProfileSection.get({userProfileId:I.currentUser.userProfileId,sectionId:1012}).$promise.then(function(e){var n=e.rows?e.rows[0]:null,t=T.parseCrudPermissions(n?n.crudPermissions:null);a(t)}).catch(function(e){n(e)})}).then(function(e){e.canEdit?a.show({controller:"CreateOrEditVariableDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/variables/create/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{variable:n,variables:u.rows,license:null,setting:null,crudPermissions:e}}):o.info({title:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_CREATION_MESSAGE")})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"API:NEW_VARIABLE",msg:e.data?JSON.stringify(e.data):e.toString()})})},I.updateInfo=function(e){a.show({controller:"MxGraphUpdateInfoController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/info/info.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{project:I.project}}).then(function(e){e&&_.merge(I.project,e)})},I.editXML=function(e,n){a.show({controller:"MxGraphEditXMLController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/edit/edit.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{currentXML:e,saveCallback:n}}).then(function(e){e&&(I.project.preproduction=e)})},I.importXML=function(e){a.show({controller:"MxGraphImportXMLController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/import/import.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{saveCallback:e}}).then(function(e){e&&(I.project.preproduction=e)})},I.gotoProjects=function(){e.go("app.callysquare.projects",{},{reload:"app.callysquare.projects"})}}e.$inject=["$state","$document","$mdDialog","$q","$translate","toasty","api","project","users","trunks","queues","sounds","variables","databases","contexts","projects","intervals","mailAccounts","templates","lists","smsAccounts","pauses","userProfileSection","Auth"],angular.module("app.callysquare").controller("ProjectController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m,u){var p=this;p.currentUser=u.getCurrentUser(),p.projects=a||{count:0,rows:[]},p.userProfile=i,p.userProfileSection=s&&1==s.count?s.rows[0]:null,p.crudPermissions=u.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.listOrder="",p.listOrderAsc=null,p.selectedProjects=[],p.query={fields:"id,name,description,notes",sort:"-updatedAt",limit:10,page:1},p.editstate=function(e,n){t.go("app.callysquare.projects.edit",{id:e.id,crudPermissions:p.crudPermissions})},p.deleteconfirm=function(e,n){var t=l.confirm().title("Are you sure want to delete the project?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete project").targetEvent(n).ok("OK").cancel("CANCEL");l.show(t).then(function(){f(e)},function(){console.log("CANCEL")})},p.success=h,p.getProjects=function(){p.query.offset=(p.query.page-1)*p.query.limit,u.hasRole("admin")?p.promise=o.squareProject.get(p.query,h).$promise:(p.query.id=p.userProfile.id,p.query.section="SquareProjects",p.promise=o.userProfile.getResources(p.query,h).$promise)},p.createOrEditProject=function(e,n){l.show({controller:"CreateOrEditSquareProjectDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/create/dialog.html",parent:angular.element(d.body),targetEvent:e,clickOutsideToClose:!0,locals:{project:n,projects:p.projects.rows,openFromEditor:null,setting:null,crudPermissions:p.crudPermissions}})},p.deleteProject=f,p.exportSelectedProjects=function(){var e=angular.copy(p.selectedProjects);return p.selectedProjects=[],e},p.deleteSelectedProjects=function(e){var n=l.confirm().title("Are you sure want to delete the selected projects?").htmlContent("<b>"+p.selectedProjects.length+" selected</b> will be deleted.").ariaLabel("delete Projects").targetEvent(e).ok("OK").cancel("CANCEL");l.show(n).then(function(){p.selectedProjects.forEach(function(e){f(e)}),p.selectedProjects=[]})},p.deselectProjects=function(){p.selectedProjects=[]},p.selectAllProjects=function(){p.selectedProjects=p.projects.rows};var g=!0,v=1;function h(e){p.projects=e||{count:0,rows:[]}}function f(e){o.squareProject.delete({id:e.id}).$promise.then(function(){_.remove(p.projects.rows,{id:e.id}),p.projects.count-=1,p.projects.rows.length||p.getProjects(),m.success({title:"Project deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.project.delete"}];for(var n=0;n<e.data.errors.length;n++)m.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.project.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){g?c(function(){g=!1}):(n||(v=p.query.page),e!==n&&(p.query.page=1),e||(p.query.page=v),p.getProjects())})}e.$inject=["$scope","$state","$mdSidenav","projects","userProfile","userProfileSection","api","msUtils","$mdDialog","$document","$timeout","toasty","Auth"],angular.module("app.callysquare").controller("ProjectsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CALLYSQUARE.EDIT_SQUARERECORDING",g.squareRecording=angular.copy(l),g.squareRecordings=r,g.newSquareRecording=!1,g.squareRecording||(g.squareRecording={},g.title="CALLYSQUARE.NEW_SQUARERECORDING",g.newSquareRecording=!0),g.addNewSquareRecording=function(){g.errors=[],d.squareRecording.save(g.squareRecording).$promise.then(function(e){g.squareRecordings.unshift(e.toJSON()),o.success({title:"SquareRecording properly created",msg:g.squareRecording.name?g.squareRecording.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.squareRecording.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSquareRecording=function(){g.errors=[],d.squareRecording.update({id:g.squareRecording.id},g.squareRecording).$promise.then(function(e){var n=_.find(g.squareRecordings,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"SquareRecording properly saved!",msg:g.squareRecording.name?g.squareRecording.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.squareRecording.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareRecording.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSquareRecording=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The squareRecording will be deleted.").ariaLabel("Delete SquareRecording").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.squareRecording.delete({id:g.squareRecording.id}).$promise.then(function(){_.remove(g.squareRecordings,{id:g.squareRecording.id}),o.success({title:"SquareRecording properly deleted!",msg:(g.squareRecording.name||"squareRecording")+" has been deleted!"}),v(g.squareRecording)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.squareRecording.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareRecording.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","squareRecordings","squareRecording","api","Auth","license","setting","crudPermissions"],angular.module("app.callysquare").controller("CreateOrEditSquareRecordingDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.squareRecordings=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="squareRecordings",f.listOrder="",f.listOrderAsc=null,f.selectedSquareRecordings=[],f.query={fields:"createdAt,updatedAt,id,filename,projectName,uniqueid,callerid,extension,audio,savePath,format",sort:"-createdAt",limit:10,page:1},f.downloadfile2=function(s,e){return m.squareRecording.download({id:s.id}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=s.uniqueid+s.format;var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("squareRecording")+"?").htmlContent("<b>"+(e.name||"squareRecording")+"</b> will be deleted.").ariaLabel("delete squareRecording").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getSquareRecordings=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.squareRecording.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="SquareRecordings",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditSquareRecording=function(e,n){i.show({controller:"CreateOrEditSquareRecordingDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/squareRecordings/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{squareRecording:n,squareRecordings:f.squareRecordings.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteSquareRecording=y,f.exportSelectedSquareRecordings=function(){var e=angular.copy(f.selectedSquareRecordings);return f.selectedSquareRecordings=[],e},f.deleteSelectedSquareRecordings=function(e){var n=i.confirm().title("Are you sure want to delete the selected squareRecordings?").htmlContent("<b>"+f.selectedSquareRecordings.length+" selected</b> will be deleted.").ariaLabel("delete SquareRecordings").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedSquareRecordings.forEach(function(e){y(e)}),f.selectedSquareRecordings=[]})},f.deselectSquareRecordings=function(){f.selectedSquareRecordings=[]},f.selectAllSquareRecordings=function(){f.selectedSquareRecordings=f.squareRecordings.rows};var b=!0,A=1;function E(e){f.squareRecordings=e||{count:0,rows:[]}}function y(e){m.squareRecording.delete({id:e.id}).$promise.then(function(){_.remove(f.squareRecordings.rows,{id:e.id}),f.squareRecordings.count-=1,f.squareRecordings.rows.length||f.getSquareRecordings(),p.success({title:_.startCase("SquareRecording")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEsquareRecording"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEsquareRecording",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getSquareRecordings())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","squareRecordings","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.callysquare").controller("SquareRecordingsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.chatQueues=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="chatQueues",f.listOrder="",f.listOrderAsc=null,f.selectedChatQueues=[],f.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"chat",limit:10,page:1},f.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.chat.chatQueues.edit",{id:e.id,chatQueue:e,crudPermissions:f.crudPermissions})},f.teamadddialog=function(e,n){i.show({controller:"ChatQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{chatQueue:e,chatQueues:f.chatQueues?f.chatQueues.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"ChatQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{chatQueue:e,chatQueues:f.chatQueues?f.chatQueues.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("chatQueue")+"?").htmlContent("<b>"+(e.name||"chatQueue")+"</b> will be deleted.").ariaLabel("delete chatQueue").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:510}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.chat.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.chat.realtime.queues",{})}},f.success=E,f.getChatQueues=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.chatQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ChatQueues",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditChatQueue=function(e,n){i.show({controller:"CreateOrEditChatQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatQueue:n,chatQueues:f.chatQueues.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteChatQueue=y,f.exportSelectedChatQueues=function(){var e=angular.copy(f.selectedChatQueues);return f.selectedChatQueues=[],e},f.deleteSelectedChatQueues=function(e){var n=i.confirm().title("Are you sure want to delete the selected chatQueues?").htmlContent("<b>"+f.selectedChatQueues.length+" selected</b> will be deleted.").ariaLabel("delete ChatQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedChatQueues.forEach(function(e){y(e)}),f.selectedChatQueues=[]})},f.deselectChatQueues=function(){f.selectedChatQueues=[]},f.selectAllChatQueues=function(){f.selectedChatQueues=f.chatQueues.rows};var b=!0,A=1;function E(e){f.chatQueues=e||{count:0,rows:[]}}function y(e){m.chatQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.chatQueues.rows,{id:e.id}),f.chatQueues.count-=1,f.chatQueues.rows.length||f.getChatQueues(),p.success({title:_.startCase("ChatQueue")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEchatQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEchatQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getChatQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","chatQueues","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.chat").controller("ChatQueuesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CHAT.EDIT_CHATQUEUE",g.chatQueue=angular.copy(l),g.chatQueues=r,g.newChatQueue=!1,g.chatQueue||(g.chatQueue={strategy:"beepall",timeout:10},g.title="CHAT.NEW_CHATQUEUE",g.newChatQueue=!0),g.addNewChatQueue=function(){g.errors=[],d.chatQueue.save(g.chatQueue).$promise.then(function(e){g.chatQueues.unshift(e.toJSON()),o.success({title:"ChatQueue properly created",msg:g.chatQueue.name?g.chatQueue.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveChatQueue=function(){g.errors=[],d.chatQueue.update({id:g.chatQueue.id},g.chatQueue).$promise.then(function(e){var n=_.find(g.chatQueues,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"ChatQueue properly saved!",msg:g.chatQueue.name?g.chatQueue.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteChatQueue=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The chatQueue will be deleted.").ariaLabel("Delete ChatQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.chatQueue.delete({id:g.chatQueue.id}).$promise.then(function(){_.remove(g.chatQueues,{id:g.chatQueue.id}),o.success({title:"ChatQueue properly deleted!",msg:(g.chatQueue.name||"chatQueue")+" has been deleted!"}),v(g.chatQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","chatQueues","chatQueue","api","Auth","license","setting","crudPermissions"],angular.module("app.chat").controller("CreateOrEditChatQueueDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.chatQueue.getAgents({id:c.chatQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserChatQueue?"penalty "+e.UserChatQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.chatQueue=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.chatQueue.removeAgents({id:c.chatQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.chatQueue.addAgents({id:c.chatQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("CHAT.ALL_AGENTS"),labelSelected:r.instant("CHAT.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","chatQueue","chatQueues","realtime","$translate","Auth","crudPermissions"],angular.module("app.chat").controller("ChatQueueagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.chatQueue.getTeams({id:l.chatQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.chatQueue=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("CHAT.ALL_TEAMS"),labelSelected:t.instant("CHAT.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.chatQueue.removeTeams({id:l.chatQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.chatQueue.addTeams({id:l.chatQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","chatQueue","$translate","Auth","crudPermissions"],angular.module("app.chat").controller("ChatQueueteamaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.chatQueue=c||e.params.chatQueue||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.teamadddialog=function(e,n){t.show({controller:"ChatQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{chatQueue:e,chatQueues:u.chatQueues?u.chatQueues.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){t.show({controller:"ChatQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{chatQueue:e,chatQueues:u.chatQueues?u.chatQueues.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.alert=l.info,u.gotoChatQueues=function(){e.go("app.chat.chatQueues",{},{reload:"app.chat.chatQueues"})},u.saveChatQueue=function(){r.chatQueue.update({id:u.chatQueue.id},u.chatQueue).$promise.then(function(){l.success({title:"ChatQueue updated!",msg:u.chatQueue.name?u.chatQueue.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","chatQueue","userProfileSection"],angular.module("app.chat").controller("ChatQueueController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.chatWebsites=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="chatWebsites",f.listOrder="",f.listOrderAsc=null,f.selectedChatWebsites=[],f.query={fields:"createdAt,updatedAt,id,token,agentIdentifier,customerAlias,messageFontSize,name,key,address,remote,ListId,fidelity,timeout,agentAlias,closingQuestion,formSubmitSuccessMessage,formSubmitFailureMessage,color,color_focus,color_button,textColor,backgroundColor,fontSize,header_shape,showAgentAvatar,showCustomerAvatar,alignment,verticalAlignment,messagesAlignment,defaultTitle,animation,defaultWhiteLabel,whiteLabel,defaultLogo,conditionAgreement,autoclose,enableUnmanagedNote,unmanagedMessage,skipUnmanaged,sendUnmanaged,enableCustomerWriting,waitingTitle,waitingMessage,closingMessage,noteTitle,placeholderMessage,skipMessageButton,enableRating,ratingType,ratingStarsNumber,enableFeedback,feedbackTitle,forwardTranscript,forwardTranscriptMessage,closingMessageButton,download_transcript,enableCustomerAttachment,enableSendButton,enableCustomerCheckmarks,systemAlias,enquiry_enable,enquiry_forwarding,enquiry_forwarding_address,name_title,username_placeholder,email_title,email_placeholder,header_online,hideWhenOffline,header_offline,start_chat_button,offline_chat_button,offlineMessageSubject,offlineMessageBody,offline_message,message_title,enquiry_message_placeholder,enquiry_button,rating_message,rating_send,rating_skip,onlineForm,offlineForm,mapKey,mapKeyOffline,forwardOffline,MailAccountId,openNewInteraction,forwardOfflineAddress,subjectOffline,IntervalId,timezone,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout,vidaooEscalation,vidaooApiKey,vidaooTopic,vidaooNote,vidaooMetadata",sort:"-updatedAt",limit:10,page:1},f.arrayagentIdentifier=_.keyBy([{option:"WebsiteAlias",value:"'website_alias'"},{option:"AgentAlias",value:"'agent_alias'"},{option:"AgentFullname",value:"'agent_fullname'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayheader_shape=_.keyBy([{option:"Rounded",value:"'rounded'"},{option:"Squared",value:"'squared'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayalignment=_.keyBy([{option:"bottom_right",value:"'bottom_right'"},{option:"right",value:"'right'"},{option:"left",value:"'left'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraymessagesAlignment=_.keyBy([{option:"alternate",value:"'alternate'"},{option:"centered",value:"'centered'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayratingType=_.keyBy([{option:"Star",value:"'star'"},{option:"Thumb",value:"'thumb'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.chat.chatWebsites.edit",{id:e.id,chatWebsite:e,crudPermissions:f.crudPermissions})},f.interactionsgoto=function(e,n){t.go("app.chat.chatWebsites.edit",{id:e.id,tab:10})},f.offlinemessagesgoto=function(e,n){t.go("app.chat.chatWebsites.edit",{id:e.id,tab:11})},f.agentadddialog=function(e,n){i.show({controller:"ChatWebsiteagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{chatWebsite:e,chatWebsites:f.chatWebsites?f.chatWebsites.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("chatWebsite")+"?").htmlContent("<b>"+(e.name||"chatWebsite")+"</b> will be deleted.").ariaLabel("delete chatWebsite").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getChatWebsites=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.chatWebsite.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ChatWebsites",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditChatWebsite=function(e,n){i.show({controller:"CreateOrEditChatWebsiteDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:n,chatWebsites:f.chatWebsites.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteChatWebsite=y,f.exportSelectedChatWebsites=function(){var e=angular.copy(f.selectedChatWebsites);return f.selectedChatWebsites=[],e},f.deleteSelectedChatWebsites=function(e){var n=i.confirm().title("Are you sure want to delete the selected chatWebsites?").htmlContent("<b>"+f.selectedChatWebsites.length+" selected</b> will be deleted.").ariaLabel("delete ChatWebsites").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedChatWebsites.forEach(function(e){y(e)}),f.selectedChatWebsites=[]})},f.deselectChatWebsites=function(){f.selectedChatWebsites=[]},f.selectAllChatWebsites=function(){f.selectedChatWebsites=f.chatWebsites.rows},g.hasRole("admin")?m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.lists,{id:e.resourceId})}),t=null;if(f.chatWebsite&&(t=_.find(f.lists,{id:Number(f.chatWebsite.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.lists,{id:t.id});a.canSelect=!1,n.push(a)}f.lists=n})}else{var t=[],a=null;f.chatWebsite&&(a=_.find(f.lists,{id:Number(f.chatWebsite.ListId)}));for(var i=0;i<f.lists.length;i++)a&&f.lists[i].id===a.id&&(f.lists[i].canSelect=!1,t.push(f.lists[i]));f.lists=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),g.hasRole("admin")?m.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){f.interval=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){f.interval=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.interval,{id:e.resourceId})}),t=null;if(f.chatWebsite&&(t=_.find(f.interval,{id:Number(f.chatWebsite.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.interval,{id:t.id});a.canSelect=!1,n.push(a)}f.interval=n})}else{var t=[],a=null;f.chatWebsite&&(a=_.find(f.interval,{id:Number(f.chatWebsite.IntervalId)}));for(var i=0;i<f.interval.length;i++)a&&f.interval[i].id===a.id&&(f.interval[i].canSelect=!1,t.push(f.interval[i]));f.interval=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.chatWebsites=e||{count:0,rows:[]}}function y(e){m.chatWebsite.delete({id:e.id}).$promise.then(function(){_.remove(f.chatWebsites.rows,{id:e.id}),f.chatWebsites.count-=1,f.chatWebsites.rows.length||f.getChatWebsites(),p.success({title:_.startCase("ChatWebsite")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEchatWebsite"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEchatWebsite",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getChatWebsites())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","chatWebsites","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.chat").controller("ChatWebsitesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CHAT.EDIT_CHATWEBSITE",g.chatWebsite=angular.copy(l),g.chatWebsites=r,g.newChatWebsite=!1,g.chatWebsite||(g.chatWebsite={remote:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():""),header_shape:"rounded",alignment:"bottom_right",verticalAlignment:30,messagesAlignment:"alternate",IntervalId:"null",timezone:"null",waitForTheAssignedAgent:10,notificationSound:!0,queueTransferTimeout:300,agentTransferTimeout:300,vidaooTopic:"Generated by XCALLY Motion",vidaooNote:"Meeting generated for interaction #{{interaction.id}} by {{agent.name}}"},g.title="CHAT.NEW_CHATWEBSITE",g.newChatWebsite=!0),n.params.id&&(g.chatWebsite.ChatWebsiteId=n.params.id),g.addNewChatWebsite=function(){g.errors=[],d.chatWebsite.save(g.chatWebsite).$promise.then(function(e){g.chatWebsites.unshift(e.toJSON()),o.success({title:"ChatWebsite properly created",msg:g.chatWebsite.name?g.chatWebsite.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatWebsite.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatWebsite.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveChatWebsite=function(){g.errors=[],d.chatWebsite.update({id:g.chatWebsite.id},g.chatWebsite).$promise.then(function(e){var n=_.find(g.chatWebsites,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"ChatWebsite properly saved!",msg:g.chatWebsite.name?g.chatWebsite.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatWebsite.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatWebsite.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteChatWebsite=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The chatWebsite will be deleted.").ariaLabel("Delete ChatWebsite").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.chatWebsite.delete({id:g.chatWebsite.id}).$promise.then(function(){_.remove(g.chatWebsites,{id:g.chatWebsite.id}),o.success({title:"ChatWebsite properly deleted!",msg:(g.chatWebsite.name||"chatWebsite")+" has been deleted!"}),v(g.chatWebsite)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatWebsite.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatWebsite.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.lists,{id:e.resourceId})}),t=null;if(g.chatWebsite&&(t=_.find(g.lists,{id:Number(g.chatWebsite.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.lists,{id:t.id});a.canSelect=!1,n.push(a)}g.lists=n})}else{var t=[],a=null;g.chatWebsite&&(a=_.find(g.lists,{id:Number(g.chatWebsite.ListId)}));for(var i=0;i<g.lists.length;i++)a&&g.lists[i].id===a.id&&(g.lists[i].canSelect=!1,t.push(g.lists[i]));g.lists=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.hasRole("admin")?d.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){g.interval=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){g.interval=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.interval,{id:e.resourceId})}),t=null;if(g.chatWebsite&&(t=_.find(g.interval,{id:Number(g.chatWebsite.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.interval,{id:t.id});a.canSelect=!1,n.push(a)}g.interval=n})}else{var t=[],a=null;g.chatWebsite&&(a=_.find(g.interval,{id:Number(g.chatWebsite.IntervalId)}));for(var i=0;i<g.interval.length;i++)a&&g.interval[i].id===a.id&&(g.interval[i].canSelect=!1,t.push(g.interval[i]));g.interval=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","chatWebsites","chatWebsite","api","Auth","license","setting","crudPermissions"],angular.module("app.chat").controller("CreateOrEditChatWebsiteDialogController",e)}(),function(){"use strict";function e(o,i,a,s,e){var r=this;function n(e,n){if(r.chatWebsiteApps.rows.length){var t=r.chatWebsiteApps.rows[n]?r.chatWebsiteApps.rows[n]:r.chatWebsiteApps.rows[0];i.show({controller:"EditChatWebsiteApp"+(t.appType||t.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/apps/"+(t.appType||t.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsiteApp:t,chatWebsite:r.chatWebsite,crudPermissions:r.crudPermissions}}).then(function(e){e&&(e.id?r.chatWebsiteApps.rows[n]=e:r.chatWebsiteApps.rows.splice(n,0,e),l())}).catch(function(e){e&&s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function l(){for(var e=1,n=[],t=0;t<r.chatWebsiteApps.rows.length;t++,0){var a=r.chatWebsiteApps.rows[t],i=[],s=[];a.intervals="*,*,*,*"!==a.interval?[a.interval]:a.IntervalId?_.map(_.filter(r.intervals.rows,{IntervalId:a.IntervalId}),"interval"):[],a.context=r.chatWebsite.context,a.exten=r.chatWebsite.exten,a.type&&(a.type=a.type.toLowerCase()),a.priority=i.length?_.last(i).priority+1:e,e=(s.length?_.last(s).priority:a.priority)+1,n=_.concat(n,i,[a],s)}o.chatWebsite.addApplications({id:r.chatWebsite.id},_.sortBy(n,"priority")).$promise.then(function(e){r.chatWebsiteApps.rows=e.rows}).catch(function(e){console.error(e)})}function t(e){r.chatWebsiteApps=e||{count:0,rows:[]}}r.currentUser=e.getCurrentUser(),r.chatWebsite={},r.chatWebsiteApps={count:0,rows:[]},r.selectedChatWebsiteApps=[],r.crudPermissions,r.query={sort:"priority"},r.apps=_.reject(_.sortBy([{app:"Interval",appType:"interval",types:["always","custom","list"],fields:[],isApp:!1},{app:"noop",appType:"noop",type:"noop",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,fields:[{title:"Value",name:"value",type:"text",param:0}]},{app:"system",appType:"system",type:"system",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,extraApi:[{name:"variables",field:{name:"variable",key:"name"},route:"variable",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1012}}],fields:[{title:"Command",name:"command",type:"text",required:!0,param:0},{title:"Variable",name:"variable",type:"apiselect",values:"variables",value:"variable.name",option:"variable.name",defaultValues:[{value:"''",option:"None"}],defaultValue:"''",param:1}]},{app:"gotop",appType:"gotop",type:"goto",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Priority",name:"priority",type:"number",required:!0,min:0,param:0}]},{app:"gotoif",appType:"gotoif",type:"gotoif",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Condition",name:"condition",type:"text",required:!0,param:0},{title:"truepriority",name:"truepriority",type:"number",min:1,required:!0,param:1},{title:"falsepriority",name:"falsepriority",type:"number",min:1,required:!0,param:2}]},{app:"queue",appType:"queue",foreignKey:"ChatQueueId",type:"queue",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"queues",field:{name:"queue",key:"name"},route:"chatQueue",filters:{fields:"id,name,type",sort:"name",nolimit:!0},permissions:{section:501}}],fields:[{title:"Queue",name:"queue",type:"apiselect",values:"queues",value:"queue.name",option:"queue.name",defaultValue:300,required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:300,param:1}]},{app:"agent",appType:"agent",type:"agent",foreignKey:"UserId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"agents",field:{name:"agent",key:"name"},route:"user",filters:{fields:"id,name",role:"agent",sort:"name",nolimit:!0},permissions:{section:202}}],fields:[{title:"Agent",name:"agent",type:"apiselect",values:"agents",value:"agent.name",option:"agent.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:30,param:1}]},{app:"close",appType:"close",type:"close",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Disposition",name:"disposition",type:"text",required:!0,param:0}]},{app:"autoreply",appType:"autoreply",type:"autoreply",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"times",name:"times",type:"select",defaultValue:"1",values:[{option:"One Time",value:"2"},{option:"Always",value:"0"},{option:"First Message",value:"1"}],required:!0,param:0},{title:"Text",name:"text",type:"textarea",required:!0,param:1}]},{app:"tag",appType:"tag",type:"tag",foreignKey:"TagId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"tags",field:{name:"tag",key:"name"},route:"tag",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1008}}],fields:[{title:"Tag",name:"tag",type:"apiselect",values:"tags",value:"tag.name",option:"tag.name",required:!0,param:0}]},{app:"dialogflow",appType:"dialogflow",type:"dialogflow",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Key",name:"key",type:"text",required:!0,param:0},{title:"language",name:"language",type:"select",defaultValue:"'en'",values:[{option:"Danish",value:"'da'"},{option:"English",value:"'en'"},{option:"German",value:"'de'"},{option:"Italian",value:"'it'"},{option:"Spanish",value:"'es'"},{option:"French",value:"'fr'"},{option:"Indonesian",value:"'id'"},{option:"Japanese",value:"'ja'"},{option:"Korean (South Korea)",value:"'ko'"},{option:"Dutch",value:"'nl'"},{option:"Norwegian",value:"'no'"},{option:"Portuguese (European)",value:"'pt'"},{option:"Portuguese (Nrazilian)",value:"'pt-br'"},{option:"Russian",value:"'ru'"},{option:"Swedish",value:"'sv'"},{option:"Thai",value:"'th'"},{option:"Ukrainian",value:"'uk'"},{option:"Chinese (Simplified)",value:"'zh-CN'"},{option:"Chinese (Hong Kong)",value:"'zh-HK'"},{option:"Chinese (Traditional)",value:"'zh-TW'"}],required:!0,param:1},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,param:2,help:!0}]},{app:"dialogflowV2",appType:"dialogflowv2",type:"dialogflowv2",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"ProjectID",name:"projectId",type:"text",required:!0,param:0},{title:"ClientEmail",name:"clientEmail",type:"text",required:!0,param:1},{title:"PrivateKey",name:"privateKey",type:"textarea",required:!0,param:2},{title:"language",name:"language",type:"select",defaultValue:"'en'",values:[{value:"'zh-HK'",option:"Chinese (Cantonese)"},{value:"'zh-CN'",option:"Chinese (Simplified)"},{value:"'zh-TW'",option:"Chinese (Traditional)"},{value:"'da'",option:"Danish"},{value:"'nl'",option:"Dutch"},{value:"'en'",option:"English"},{value:"'en-AU'",option:"English (Australia)"},{value:"'en-CA'",option:"English (Canada)"},{value:"'en-GB'",option:"English (Great Britain)"},{value:"'en-IN'",option:"English (India)"},{value:"'en-US'",option:"English (US)"},{value:"'fr'",option:"French"},{value:"'fr-CA'",option:"French (Canada)"},{value:"'fr-FR'",option:"'France (France)"},{value:"'de'",option:"German"},{value:"'hi'",option:"Hindi"},{value:"'id'",option:"Indonesian"},{value:"'it'",option:"Italian"},{value:"'ja'",option:"Japanese"},{value:"'ko'",option:"Korean"},{value:"'no'",option:"Norwegian"},{value:"'pl'",option:"Polish"},{value:"'pt-BR'",option:"Portuguese (Brazil)"},{value:"'pt-PT'",option:"Portuguese (Portugal)"},{value:"'ru'",option:"Russian"},{value:"'es'",option:"Spanish"},{value:"'es-419'",option:"Spanish (Latin America)"},{value:"'es-ES'",option:"Spanish (Spain)"},{value:"'sw'",option:"Swedish"},{value:"'th'",option:"Thai"},{value:"'tr'",option:"Turkish"},{value:"'uk'",option:"Ukrainian"}],required:!0,param:3},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,param:4,help:!0}]},{app:"amazonlex",appType:"amazonlex",type:"amazonlex",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"accesskeyid",name:"accesskeyid",type:"text",required:!0,param:0},{title:"secretaccesskey",name:"secretaccesskey",type:"text",required:!0,param:1},{title:"lexregion",name:"lexregion",type:"select",defaultValue:"'us-east-1'",values:[{option:"US East (N. Virginia)",value:"'us-east-1'"},{option:"US West (Oregon)",value:"'us-west-2'"},{option:"EU (Ireland)",value:"'eu-west-1'"},{option:"Asia Pacific (Sydney)",value:"'ap-southeast-2'"}],required:!0,param:2},{title:"botname",name:"botname",type:"text",required:!0,param:3},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,param:4,help:!0}]}],["app"]),{isApp:!1}),r.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},r.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){n(e,e.newIndex)},onSort:function(e){l()}},r.init=function(e,n){r.chatWebsite=e,r.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},r.applications.disabled=!r.crudPermissions.canEdit,r.query.id=e.id,r.query.isApp=!0,r.query.nolimit=!0,r.getChatWebsiteApps(),r.getIntervals()},r.deleteConfirm=function(e,n,t){var a=i.confirm().title("Are you sure want to delete the application?").htmlContent("<b>"+e.app+"</b> will be deleted.").ariaLabel("delete application").targetEvent(t).ok("OK").cancel("CANCEL");i.show(a).then(function(){r.chatWebsiteApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})},r.getChatWebsiteApps=function(){r.promise=o.chatWebsite.getApplications(r.query,t).$promise},r.editChatWebsiteApp=n,r.editInterval=function(e,n){if(r.chatWebsiteApps.rows.length){var t=r.chatWebsiteApps.rows[n]?r.chatWebsiteApps.rows[n]:r.chatWebsiteApps.rows[0];i.show({controller:"EditChatWebsiteAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/apps/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:[],crudPermissions:r.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,l())})}},r.deleteChatWebsiteApp=function(e){_.remove(r.chatWebsiteApps.rows,{id:e.id}),l(),s.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},r.deleteSelectedChatWebsiteApps=function(e){var n=i.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+r.selectedChatWebsiteApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){r.selectedChatWebsiteApps.forEach(function(e){_.remove(r.chatWebsiteApps.rows,{id:e.id})}),r.selectedChatWebsiteApps=[],l()})},r.rewriteRouting=l,r.getIntervals=function(){return o.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){r.intervals=e}).catch(function(e){console.error(e)})}}e.$inject=["api","$mdDialog","$document","toasty","Auth"],angular.module("app.chat").controller("ChatWebsiteActionsController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.chatWebsite.getAgents({id:c.chatWebsite.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserChatWebsite?"penalty "+e.UserChatWebsite.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.chatWebsite=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.chatWebsite.removeAgents({id:c.chatWebsite.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.chatWebsite.addAgents({id:c.chatWebsite.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("CHAT.ALL_AGENTS"),labelSelected:r.instant("CHAT.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","chatWebsite","chatWebsites","realtime","$translate","Auth","crudPermissions"],angular.module("app.chat").controller("ChatWebsiteagentaddController",e)}(),function(){"use strict";function e(e,a){var i=this;i.chatWebsite={},i.crudPermissions,i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.chatWebsite.images.unshift(t),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.chatWebsite.images,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e,n){i.chatWebsite=angular.copy(e),i.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.ngFlowOptions.target="/api/chat/websites/:id/avatar".replace(":id",i.chatWebsite.id),i.chatWebsite.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.chat").controller("ChatWebsiteagentAvatarController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.agent=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.agent.appdata)switch(l.agent.appType?l.agent.appType.toLowerCase():l.agent.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.agent.appdata.split(",");l.agent.key=d[0],l.agent.language=d[1],l.agent.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.agent.appdata.split(",");l.agent.projectId=d[0],l.agent.clientEmail=d[1],l.agent.privateKey=d[2],l.agent.language=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.agent.appdata.split(",");l.agent.accesskeyid=d[0],l.agent.secretaccesskey=d[1],l.agent.lexregion=d[2],l.agent.botname=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.agent.appdata.split(",");l.agent.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.agent.text=d.slice(1,d.length).join(",");break;case"message":l.agent.text=l.agent.appdata;break;case"set":l.agent.name=l.agent.appdata.split("=")[0],l.agent.value=l.agent.appdata.split("=")[1];break;case"agi":l.agent.project=l.agent.appdata;break;default:var c=l.agent.appdata.split(",");l.agent.agent=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.agent.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.agent.timeout=30;function m(e){n.hide(e)}l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outbounddial"===l.agent.appType.toLowerCase()&&(l.agent.prefix=l.agent.phone?l.agent.phone.split("$")[0]:void 0,l.agent.callerId=l.agent.callerID?"CALLERID(all)="+l.agent.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outboundDial"===l.agent.appType&&(l.agent.phone=i.cutdigits?(l.agent.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.agent.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.agent.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.agent.options+="U(xcally-mixmonitor-context)"):l.agent.options=l.agent.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.agents,{name:l.agent.agent});n&&(l.agent.UserId=n.id);if(l.agent.appType&&"custom"===l.agent.appType);else switch((l.agent.app||l.agent.appType).toLowerCase()){case"set":l.agent.appdata=l.agent.name+"="+l.agent.value;break;case"custom":break;default:e[0]=l.agent.agent,e[1]=l.agent.timeout,l.agent.appdata=e.join(",")}m(l.agent)},l.closeDialog=m,o.hasRole("admin")?s.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){l.agents=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){l.agents=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.agents,{id:e.resourceId})}),t=null;if(l.agent&&(t=_.find(l.agents,{name:l.agent.agent})),t&&!_.some(n,["id",t.id])){var a=_.find(l.agents,{id:t.id});a.canSelect=!1,n.push(a)}l.agents=n})}else{var t=[],a=null;l.agent&&(a=_.find(l.agents,{name:l.agent.agent}));for(var i=0;i<l.agents.length;i++)a&&l.agents[i].id===a.id&&(l.agents[i].canSelect=!1,t.push(l.agents[i]));l.agents=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppagentDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.amazonlex=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.amazonlex.appdata)switch(l.amazonlex.appType?l.amazonlex.appType.toLowerCase():l.amazonlex.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.amazonlex.appdata.split(",");l.amazonlex.key=d[0],l.amazonlex.language=d[1],l.amazonlex.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.amazonlex.appdata.split(",");l.amazonlex.projectId=d[0],l.amazonlex.clientEmail=d[1],l.amazonlex.privateKey=d[2],l.amazonlex.language=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=d[0],l.amazonlex.secretaccesskey=d[1],l.amazonlex.lexregion=d[2],l.amazonlex.botname=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.amazonlex.appdata.split(",");l.amazonlex.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.amazonlex.text=d.slice(1,d.length).join(",");break;case"message":l.amazonlex.text=l.amazonlex.appdata;break;case"set":l.amazonlex.name=l.amazonlex.appdata.split("=")[0],l.amazonlex.value=l.amazonlex.appdata.split("=")[1];break;case"agi":l.amazonlex.project=l.amazonlex.appdata;break;default:var c=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.amazonlex.secretaccesskey=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.amazonlex.lexregion=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.amazonlex.botname=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.amazonlex.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.amazonlex.lexregion="us-east-1";function m(e){n.hide(e)}l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outbounddial"===l.amazonlex.appType.toLowerCase()&&(l.amazonlex.prefix=l.amazonlex.phone?l.amazonlex.phone.split("$")[0]:void 0,l.amazonlex.callerId=l.amazonlex.callerID?"CALLERID(all)="+l.amazonlex.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outboundDial"===l.amazonlex.appType&&(l.amazonlex.phone=i.cutdigits?(l.amazonlex.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.amazonlex.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.amazonlex.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.amazonlex.options+="U(xcally-mixmonitor-context)"):l.amazonlex.options=l.amazonlex.options.replace("U(xcally-mixmonitor-context)",""));if(l.amazonlex.appType&&"custom"===l.amazonlex.appType);else switch((l.amazonlex.app||l.amazonlex.appType).toLowerCase()){case"set":l.amazonlex.appdata=l.amazonlex.name+"="+l.amazonlex.value;break;case"custom":break;default:e[0]=l.amazonlex.accesskeyid,e[1]=l.amazonlex.secretaccesskey,e[2]=l.amazonlex.lexregion,e[3]=l.amazonlex.botname,e[4]=l.amazonlex.welcomemessage,l.amazonlex.appdata=e.join(",")}m(l.amazonlex)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppamazonlexDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.autoreply=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.autoreply.appdata)switch(l.autoreply.appType?l.autoreply.appType.toLowerCase():l.autoreply.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.autoreply.appdata.split(",");l.autoreply.key=d[0],l.autoreply.language=d[1],l.autoreply.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.autoreply.appdata.split(",");l.autoreply.projectId=d[0],l.autoreply.clientEmail=d[1],l.autoreply.privateKey=d[2],l.autoreply.language=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.autoreply.appdata.split(",");l.autoreply.accesskeyid=d[0],l.autoreply.secretaccesskey=d[1],l.autoreply.lexregion=d[2],l.autoreply.botname=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.autoreply.appdata.split(",");l.autoreply.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.autoreply.text=d.slice(1,d.length).join(",");break;case"message":l.autoreply.text=l.autoreply.appdata;break;case"set":l.autoreply.name=l.autoreply.appdata.split("=")[0],l.autoreply.value=l.autoreply.appdata.split("=")[1];break;case"agi":l.autoreply.project=l.autoreply.appdata;break;default:var c=l.autoreply.appdata.split(",");l.autoreply.times=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.autoreply.text=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.autoreply.times=1;function m(e){n.hide(e)}l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outbounddial"===l.autoreply.appType.toLowerCase()&&(l.autoreply.prefix=l.autoreply.phone?l.autoreply.phone.split("$")[0]:void 0,l.autoreply.callerId=l.autoreply.callerID?"CALLERID(all)="+l.autoreply.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outboundDial"===l.autoreply.appType&&(l.autoreply.phone=i.cutdigits?(l.autoreply.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.autoreply.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.autoreply.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.autoreply.options+="U(xcally-mixmonitor-context)"):l.autoreply.options=l.autoreply.options.replace("U(xcally-mixmonitor-context)",""));if(l.autoreply.appType&&"custom"===l.autoreply.appType);else switch((l.autoreply.app||l.autoreply.appType).toLowerCase()){case"set":l.autoreply.appdata=l.autoreply.name+"="+l.autoreply.value;break;case"custom":break;default:e[0]=l.autoreply.times,e[1]=l.autoreply.text,l.autoreply.appdata=e.join(",")}m(l.autoreply)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppautoreplyDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.close=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.close.appdata)switch(l.close.appType?l.close.appType.toLowerCase():l.close.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.close.appdata.split(",");l.close.key=d[0],l.close.language=d[1],l.close.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.close.appdata.split(",");l.close.projectId=d[0],l.close.clientEmail=d[1],l.close.privateKey=d[2],l.close.language=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.close.appdata.split(",");l.close.accesskeyid=d[0],l.close.secretaccesskey=d[1],l.close.lexregion=d[2],l.close.botname=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.close.appdata.split(",");l.close.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.close.text=d.slice(1,d.length).join(",");break;case"message":l.close.text=l.close.appdata;break;case"set":l.close.name=l.close.appdata.split("=")[0],l.close.value=l.close.appdata.split("=")[1];break;case"agi":l.close.project=l.close.appdata;break;default:var c=l.close.appdata.split(",");l.close.disposition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outbounddial"===l.close.appType.toLowerCase()&&(l.close.prefix=l.close.phone?l.close.phone.split("$")[0]:void 0,l.close.callerId=l.close.callerID?"CALLERID(all)="+l.close.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outboundDial"===l.close.appType&&(l.close.phone=i.cutdigits?(l.close.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.close.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.close.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.close.options+="U(xcally-mixmonitor-context)"):l.close.options=l.close.options.replace("U(xcally-mixmonitor-context)",""));if(l.close.appType&&"custom"===l.close.appType);else switch((l.close.app||l.close.appType).toLowerCase()){case"set":l.close.appdata=l.close.name+"="+l.close.value;break;case"custom":break;default:e[0]=l.close.disposition,l.close.appdata=e.join(",")}m(l.close)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppcloseDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflow=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflow.appdata)switch(l.dialogflow.appType?l.dialogflow.appType.toLowerCase():l.dialogflow.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflow.appdata.split(",");l.dialogflow.key=d[0],l.dialogflow.language=d[1],l.dialogflow.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflow.appdata.split(",");l.dialogflow.projectId=d[0],l.dialogflow.clientEmail=d[1],l.dialogflow.privateKey=d[2],l.dialogflow.language=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflow.appdata.split(",");l.dialogflow.accesskeyid=d[0],l.dialogflow.secretaccesskey=d[1],l.dialogflow.lexregion=d[2],l.dialogflow.botname=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflow.appdata.split(",");l.dialogflow.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflow.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflow.text=l.dialogflow.appdata;break;case"set":l.dialogflow.name=l.dialogflow.appdata.split("=")[0],l.dialogflow.value=l.dialogflow.appdata.split("=")[1];break;case"agi":l.dialogflow.project=l.dialogflow.appdata;break;default:var c=l.dialogflow.appdata.split(",");l.dialogflow.key=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflow.language=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflow.welcomemessage=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}else l.dialogflow.language="en";function m(e){n.hide(e)}l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outbounddial"===l.dialogflow.appType.toLowerCase()&&(l.dialogflow.prefix=l.dialogflow.phone?l.dialogflow.phone.split("$")[0]:void 0,l.dialogflow.callerId=l.dialogflow.callerID?"CALLERID(all)="+l.dialogflow.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outboundDial"===l.dialogflow.appType&&(l.dialogflow.phone=i.cutdigits?(l.dialogflow.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflow.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflow.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflow.options+="U(xcally-mixmonitor-context)"):l.dialogflow.options=l.dialogflow.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflow.appType&&"custom"===l.dialogflow.appType);else switch((l.dialogflow.app||l.dialogflow.appType).toLowerCase()){case"set":l.dialogflow.appdata=l.dialogflow.name+"="+l.dialogflow.value;break;case"custom":break;default:e[0]=l.dialogflow.key,e[1]=l.dialogflow.language,e[2]=l.dialogflow.welcomemessage,l.dialogflow.appdata=e.join(",")}m(l.dialogflow)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppdialogflowDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflowv2=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflowv2.appdata)switch(l.dialogflowv2.appType?l.dialogflowv2.appType.toLowerCase():l.dialogflowv2.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.key=d[0],l.dialogflowv2.language=d[1],l.dialogflowv2.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=d[0],l.dialogflowv2.clientEmail=d[1],l.dialogflowv2.privateKey=d[2],l.dialogflowv2.language=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.accesskeyid=d[0],l.dialogflowv2.secretaccesskey=d[1],l.dialogflowv2.lexregion=d[2],l.dialogflowv2.botname=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflowv2.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflowv2.text=l.dialogflowv2.appdata;break;case"set":l.dialogflowv2.name=l.dialogflowv2.appdata.split("=")[0],l.dialogflowv2.value=l.dialogflowv2.appdata.split("=")[1];break;case"agi":l.dialogflowv2.project=l.dialogflowv2.appdata;break;default:var c=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflowv2.clientEmail=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflowv2.privateKey=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.dialogflowv2.language=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.dialogflowv2.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.dialogflowv2.language="en";function m(e){n.hide(e)}l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outbounddial"===l.dialogflowv2.appType.toLowerCase()&&(l.dialogflowv2.prefix=l.dialogflowv2.phone?l.dialogflowv2.phone.split("$")[0]:void 0,l.dialogflowv2.callerId=l.dialogflowv2.callerID?"CALLERID(all)="+l.dialogflowv2.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outboundDial"===l.dialogflowv2.appType&&(l.dialogflowv2.phone=i.cutdigits?(l.dialogflowv2.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflowv2.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflowv2.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflowv2.options+="U(xcally-mixmonitor-context)"):l.dialogflowv2.options=l.dialogflowv2.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflowv2.appType&&"custom"===l.dialogflowv2.appType);else switch((l.dialogflowv2.app||l.dialogflowv2.appType).toLowerCase()){case"set":l.dialogflowv2.appdata=l.dialogflowv2.name+"="+l.dialogflowv2.value;break;case"custom":break;default:e[0]=l.dialogflowv2.projectId,e[1]=l.dialogflowv2.clientEmail,e[2]=l.dialogflowv2.privateKey,e[3]=l.dialogflowv2.language,e[4]=l.dialogflowv2.welcomemessage,l.dialogflowv2.appdata=e.join(",")}m(l.dialogflowv2)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppdialogflowv2DialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotoif=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotoif.appdata)switch(l.gotoif.appType?l.gotoif.appType.toLowerCase():l.gotoif.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotoif.appdata.split(",");l.gotoif.key=d[0],l.gotoif.language=d[1],l.gotoif.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotoif.appdata.split(",");l.gotoif.projectId=d[0],l.gotoif.clientEmail=d[1],l.gotoif.privateKey=d[2],l.gotoif.language=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotoif.appdata.split(",");l.gotoif.accesskeyid=d[0],l.gotoif.secretaccesskey=d[1],l.gotoif.lexregion=d[2],l.gotoif.botname=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotoif.appdata.split(",");l.gotoif.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotoif.text=d.slice(1,d.length).join(",");break;case"message":l.gotoif.text=l.gotoif.appdata;break;case"set":l.gotoif.name=l.gotoif.appdata.split("=")[0],l.gotoif.value=l.gotoif.appdata.split("=")[1];break;case"agi":l.gotoif.project=l.gotoif.appdata;break;default:var c=l.gotoif.appdata.split(",");l.gotoif.condition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.gotoif.truepriority=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.gotoif.falsepriority=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}function m(e){n.hide(e)}l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outbounddial"===l.gotoif.appType.toLowerCase()&&(l.gotoif.prefix=l.gotoif.phone?l.gotoif.phone.split("$")[0]:void 0,l.gotoif.callerId=l.gotoif.callerID?"CALLERID(all)="+l.gotoif.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outboundDial"===l.gotoif.appType&&(l.gotoif.phone=i.cutdigits?(l.gotoif.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotoif.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotoif.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotoif.options+="U(xcally-mixmonitor-context)"):l.gotoif.options=l.gotoif.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotoif.appType&&"custom"===l.gotoif.appType);else switch((l.gotoif.app||l.gotoif.appType).toLowerCase()){case"set":l.gotoif.appdata=l.gotoif.name+"="+l.gotoif.value;break;case"custom":break;default:e[0]=l.gotoif.condition,e[1]=l.gotoif.truepriority,e[2]=l.gotoif.falsepriority,l.gotoif.appdata=e.join(",")}m(l.gotoif)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppgotoifDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotop.appdata)switch(l.gotop.appType?l.gotop.appType.toLowerCase():l.gotop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotop.appdata.split(",");l.gotop.key=d[0],l.gotop.language=d[1],l.gotop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotop.appdata.split(",");l.gotop.projectId=d[0],l.gotop.clientEmail=d[1],l.gotop.privateKey=d[2],l.gotop.language=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotop.appdata.split(",");l.gotop.accesskeyid=d[0],l.gotop.secretaccesskey=d[1],l.gotop.lexregion=d[2],l.gotop.botname=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotop.appdata.split(",");l.gotop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotop.text=d.slice(1,d.length).join(",");break;case"message":l.gotop.text=l.gotop.appdata;break;case"set":l.gotop.name=l.gotop.appdata.split("=")[0],l.gotop.value=l.gotop.appdata.split("=")[1];break;case"agi":l.gotop.project=l.gotop.appdata;break;default:var c=l.gotop.appdata.split(",");l.gotop.priority=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outbounddial"===l.gotop.appType.toLowerCase()&&(l.gotop.prefix=l.gotop.phone?l.gotop.phone.split("$")[0]:void 0,l.gotop.callerId=l.gotop.callerID?"CALLERID(all)="+l.gotop.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outboundDial"===l.gotop.appType&&(l.gotop.phone=i.cutdigits?(l.gotop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotop.options+="U(xcally-mixmonitor-context)"):l.gotop.options=l.gotop.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotop.appType&&"custom"===l.gotop.appType);else switch((l.gotop.app||l.gotop.appType).toLowerCase()){case"set":l.gotop.appdata=l.gotop.name+"="+l.gotop.value;break;case"custom":break;default:e[0]=l.gotop.priority,l.gotop.appdata=e.join(",")}m(l.gotop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppgotopDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;if(c.currentUser=l.getCurrentUser(),c.errors=[],c.title="TOOLS.EDIT_INTERVAL",c.interval=angular.copy(i),c.intervals=s,c.newInterval=!1,c.types=["always","custom","list"],c.crudPermissions=d,c.daysOfWeek=a.getDaysOfWeek(),c.monthNumber=a.getMonthNumber(),c.monthName=a.getMonthName(),c.daysOfMonth=a.getDaysOfMonth(),c.interval)if("*,*,*,*"!==c.interval.interval){c.type="custom";var m=c.interval.interval.split(","),u=m[0],p=m[1],g=m[2],v=m[3];if("*"!==u){var h,f=u.split("-")[0],b=u.split("-")[1];(h=new Date).setHours(Number(f.split(":")[0])),h.setMinutes(Number(f.split(":")[1])),c.timeRangeFrom=h,(h=new Date).setHours(Number(b.split(":")[0])),h.setMinutes(Number(b.split(":")[1])),c.timeRangeTo=h}"*"!==p&&(c.dayOfWeekFrom=p.split("-")[0],c.dayOfWeekTo=p.split("-")[1]),"*"!==g&&(c.monthDayFrom=g.split("-")[0],c.monthDayTo=g.split("-")[1]),"*"!==v&&(c.monthFrom=v.split("-")[0],c.monthTo=v.split("-")[1])}else c.type="always";else c.interval={interval:"*,*,*,*"},c.type="always",c.title="TOOLS.NEW_INTERVAL",c.newInterval=!0;function A(){switch(c.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==c.timeRangeFrom&&c.timeRangeFrom&&c.timeRangeTo){var n=(c.timeRangeFrom.getHours()<10?"0":"")+c.timeRangeFrom.getHours()+":"+(c.timeRangeFrom.getMinutes()<10?"0":"")+c.timeRangeFrom.getMinutes(),t=(c.timeRangeTo.getHours()<10?"0":"")+c.timeRangeTo.getHours()+":"+(c.timeRangeTo.getMinutes()<10?"0":"")+c.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return c.dayOfWeekFrom?c.dayOfWeekTo?e.push(c.dayOfWeekFrom+"-"+c.dayOfWeekTo):e.push(c.dayOfWeekFrom):e.push("*"),c.monthDayFrom?c.monthDayTo?e.push(c.monthDayFrom+"-"+c.monthDayTo):e.push(c.monthDayFrom):e.push("*"),c.monthFrom?c.monthTo?e.push(c.monthFrom+"-"+c.monthTo):e.push(c.monthFrom):e.push("*"),e.join()}}function E(e){n.hide(e)}e.params.id&&!c.interval.application&&(c.interval.IntervalId=e.params.id),c.interval.IntervalId&&c.interval.application&&(c.type="list"),c.addNewInterval=function(){c.errors=[],c.interval.interval=A(),r.interval.save(c.interval).$promise.then(function(e){c.intervals.push(e),o.success({title:"Interval properly created",msg:c.interval.name?c.interval.name+" has been created!":""}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},c.saveInterval=function(){c.errors=[],c.interval.interval=A(),c.interval.application?("list"!==c.type&&(c.interval.IntervalId=null),E(c.interval)):r.interval.update({id:c.interval.id},c.interval).$promise.then(function(e){var n=_.find(c.intervals,{id:e.id});n&&_.merge(n,e),o.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},c.closeDialog=E,c.interval.application&&(l.hasRole("admin")?r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:c.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=e&&e.rows?e.rows:[],t=[],a=null;c.interval&&(a=_.find(c.intervals,{name:c.interval.IntervalId})),a&&!_.some(n,["resourceId",a.id])&&c.intervals.forEach(function(e){e.id===a.id&&(e.canSelect=!1,t.push(e))}),c.intervals=t})}else c.intervals=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}))}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditChatWebsiteAppintervalDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.noop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.noop.appdata)switch(l.noop.appType?l.noop.appType.toLowerCase():l.noop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.noop.appdata.split(",");l.noop.key=d[0],l.noop.language=d[1],l.noop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.noop.appdata.split(",");l.noop.projectId=d[0],l.noop.clientEmail=d[1],l.noop.privateKey=d[2],l.noop.language=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.noop.appdata.split(",");l.noop.accesskeyid=d[0],l.noop.secretaccesskey=d[1],l.noop.lexregion=d[2],l.noop.botname=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.noop.appdata.split(",");l.noop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.noop.text=d.slice(1,d.length).join(",");break;case"message":l.noop.text=l.noop.appdata;break;case"set":l.noop.name=l.noop.appdata.split("=")[0],l.noop.value=l.noop.appdata.split("=")[1];break;case"agi":l.noop.project=l.noop.appdata;break;default:var c=l.noop.appdata.split(",");l.noop.value=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outbounddial"===l.noop.appType.toLowerCase()&&(l.noop.prefix=l.noop.phone?l.noop.phone.split("$")[0]:void 0,l.noop.callerId=l.noop.callerID?"CALLERID(all)="+l.noop.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outboundDial"===l.noop.appType&&(l.noop.phone=i.cutdigits?(l.noop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.noop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.noop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.noop.options+="U(xcally-mixmonitor-context)"):l.noop.options=l.noop.options.replace("U(xcally-mixmonitor-context)",""));if(l.noop.appType&&"custom"===l.noop.appType);else switch((l.noop.app||l.noop.appType).toLowerCase()){case"set":l.noop.appdata=l.noop.name+"="+l.noop.value;break;case"custom":break;default:e[0]=l.noop.value,l.noop.appdata=e.join(",")}m(l.noop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppnoopDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.queue=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.queue.appdata)switch(l.queue.appType?l.queue.appType.toLowerCase():l.queue.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.queue.appdata.split(",");l.queue.key=d[0],l.queue.language=d[1],l.queue.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.queue.appdata.split(",");l.queue.projectId=d[0],l.queue.clientEmail=d[1],l.queue.privateKey=d[2],l.queue.language=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.queue.appdata.split(",");l.queue.accesskeyid=d[0],l.queue.secretaccesskey=d[1],l.queue.lexregion=d[2],l.queue.botname=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.queue.appdata.split(",");l.queue.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.queue.text=d.slice(1,d.length).join(",");break;case"message":l.queue.text=l.queue.appdata;break;case"set":l.queue.name=l.queue.appdata.split("=")[0],l.queue.value=l.queue.appdata.split("=")[1];break;case"agi":l.queue.project=l.queue.appdata;break;default:var c=l.queue.appdata.split(",");l.queue.queue=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.queue.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.queue.queue=300,l.queue.timeout=300;function m(e){n.hide(e)}l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outbounddial"===l.queue.appType.toLowerCase()&&(l.queue.prefix=l.queue.phone?l.queue.phone.split("$")[0]:void 0,l.queue.callerId=l.queue.callerID?"CALLERID(all)="+l.queue.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outboundDial"===l.queue.appType&&(l.queue.phone=i.cutdigits?(l.queue.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.queue.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.queue.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.queue.options+="U(xcally-mixmonitor-context)"):l.queue.options=l.queue.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.queues,{name:l.queue.queue});n&&(l.queue[_.capitalize("chat")+"QueueId"]=n.id);if(l.queue.appType&&"custom"===l.queue.appType);else switch((l.queue.app||l.queue.appType).toLowerCase()){case"set":l.queue.appdata=l.queue.name+"="+l.queue.value;break;case"custom":break;default:e[0]=l.queue.queue,e[1]=l.queue.timeout,l.queue.appdata=e.join(",")}m(l.queue)},l.closeDialog=m,o.hasRole("admin")?s.chatQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.chatQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:501}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.queues,{id:e.resourceId})}),t=null;if(l.queue&&(t=_.find(l.queues,{name:l.queue.queue})),t&&!_.some(n,["id",t.id])){var a=_.find(l.queues,{id:t.id});a.canSelect=!1,n.push(a)}l.queues=n})}else{var t=[],a=null;l.queue&&(a=_.find(l.queues,{name:l.queue.queue}));for(var i=0;i<l.queues.length;i++)a&&l.queues[i].id===a.id&&(l.queues[i].canSelect=!1,t.push(l.queues[i]));l.queues=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppqueueDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.system=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.system.appdata)switch(l.system.appType?l.system.appType.toLowerCase():l.system.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.system.appdata.split(",");l.system.key=d[0],l.system.language=d[1],l.system.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.system.appdata.split(",");l.system.projectId=d[0],l.system.clientEmail=d[1],l.system.privateKey=d[2],l.system.language=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.system.appdata.split(",");l.system.accesskeyid=d[0],l.system.secretaccesskey=d[1],l.system.lexregion=d[2],l.system.botname=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.system.appdata.split(",");l.system.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.system.text=d.slice(1,d.length).join(",");break;case"message":l.system.text=l.system.appdata;break;case"set":l.system.name=l.system.appdata.split("=")[0],l.system.value=l.system.appdata.split("=")[1];break;case"agi":l.system.project=l.system.appdata;break;default:var c=l.system.appdata.split(",");l.system.command=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.system.variable=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.system.variable="";function m(e){n.hide(e)}l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outbounddial"===l.system.appType.toLowerCase()&&(l.system.prefix=l.system.phone?l.system.phone.split("$")[0]:void 0,l.system.callerId=l.system.callerID?"CALLERID(all)="+l.system.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outboundDial"===l.system.appType&&(l.system.phone=i.cutdigits?(l.system.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.system.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.system.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.system.options+="U(xcally-mixmonitor-context)"):l.system.options=l.system.options.replace("U(xcally-mixmonitor-context)",""));if(l.system.appType&&"custom"===l.system.appType);else switch((l.system.app||l.system.appType).toLowerCase()){case"set":l.system.appdata=l.system.name+"="+l.system.value;break;case"custom":break;default:e[0]=l.system.command,e[1]=l.system.variable,l.system.appdata=e.join(",")}m(l.system)},l.closeDialog=m,o.hasRole("admin")?s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1012}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.variables,{id:e.resourceId})}),t=null;if(l.system&&(t=_.find(l.variables,{name:l.system.variable})),t&&!_.some(n,["id",t.id])){var a=_.find(l.variables,{id:t.id});a.canSelect=!1,n.push(a)}l.variables=n})}else{var t=[],a=null;l.system&&(a=_.find(l.variables,{name:l.system.variable}));for(var i=0;i<l.variables.length;i++)a&&l.variables[i].id===a.id&&(l.variables[i].canSelect=!1,t.push(l.variables[i]));l.variables=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppsystemDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.tag=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.tag.appdata)switch(l.tag.appType?l.tag.appType.toLowerCase():l.tag.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.tag.appdata.split(",");l.tag.key=d[0],l.tag.language=d[1],l.tag.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.tag.appdata.split(",");l.tag.projectId=d[0],l.tag.clientEmail=d[1],l.tag.privateKey=d[2],l.tag.language=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.tag.appdata.split(",");l.tag.accesskeyid=d[0],l.tag.secretaccesskey=d[1],l.tag.lexregion=d[2],l.tag.botname=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.tag.appdata.split(",");l.tag.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.tag.text=d.slice(1,d.length).join(",");break;case"message":l.tag.text=l.tag.appdata;break;case"set":l.tag.name=l.tag.appdata.split("=")[0],l.tag.value=l.tag.appdata.split("=")[1];break;case"agi":l.tag.project=l.tag.appdata;break;default:var c=l.tag.appdata.split(",");l.tag.tag=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outbounddial"===l.tag.appType.toLowerCase()&&(l.tag.prefix=l.tag.phone?l.tag.phone.split("$")[0]:void 0,l.tag.callerId=l.tag.callerID?"CALLERID(all)="+l.tag.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outboundDial"===l.tag.appType&&(l.tag.phone=i.cutdigits?(l.tag.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.tag.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.tag.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.tag.options+="U(xcally-mixmonitor-context)"):l.tag.options=l.tag.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.tags,{name:l.tag.tag});n&&(l.tag.TagId=n.id);if(l.tag.appType&&"custom"===l.tag.appType);else switch((l.tag.app||l.tag.appType).toLowerCase()){case"set":l.tag.appdata=l.tag.name+"="+l.tag.value;break;case"custom":break;default:e[0]=l.tag.tag,l.tag.appdata=e.join(",")}m(l.tag)},l.closeDialog=m,o.hasRole("admin")?s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1008}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.tags,{id:e.resourceId})}),t=null;if(l.tag&&(t=_.find(l.tags,{name:l.tag.tag})),t&&!_.some(n,["id",t.id])){var a=_.find(l.tags,{id:t.id});a.canSelect=!1,n.push(a)}l.tags=n})}else{var t=[],a=null;l.tag&&(a=_.find(l.tags,{name:l.tag.tag}));for(var i=0;i<l.tags.length;i++)a&&l.tags[i].id===a.id&&(l.tags[i].canSelect=!1,t.push(l.tags[i]));l.tags=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtags",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteApptagDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.chatWebsiteChatCannedAnswers=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.chatWebsite.getAnswers(m.query,u).$promise}function g(e){d.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(m.chatWebsiteChatCannedAnswers.rows,{id:e.id}),m.chatWebsiteChatCannedAnswers.count-=1,m.chatWebsiteChatCannedAnswers.rows.length||p(),l.success({title:"ChatCannedAnswer deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETchatWebsite"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.chatWebsite={},m.chatWebsiteChatCannedAnswers={count:0,rows:[]},m.selectedChatWebsiteChatCannedAnswers=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,key,value,description",limit:10,page:1},m.init=function(e,n,t){m.chatWebsite=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.ChatWebsiteId=m.chatWebsite.id,m.query.id=m.chatWebsite.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the chatCannedAnswer?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("chatCannedAnswer #")+e.id||"chatCannedAnswer")+"</b> will be deleted.").ariaLabel("delete chatCannedAnswer").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getChatWebsiteChatCannedAnswers=p,m.createOrEditChatWebsiteChatCannedAnswer=function(e,n){o.show({controller:"CreateOrEditChatCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/chatCannedAnswers/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:m.chatWebsite,chatCannedAnswer:n,chatCannedAnswers:m.chatWebsiteChatCannedAnswers.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedChatWebsiteChatCannedAnswers=function(){var e=angular.copy(m.selectedChatWebsiteChatCannedAnswers);return m.selectedChatWebsiteChatCannedAnswers=[],e},m.deleteChatWebsiteChatCannedAnswer=g,m.deleteSelectedChatWebsiteChatCannedAnswers=function(e){var n=o.confirm().title("Are you sure want to delete the selected chatCannedAnswers?").htmlContent("<b>"+m.selectedChatWebsiteChatCannedAnswers.length+" selected</b> will be deleted.").ariaLabel("delete chatCannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedChatWebsiteChatCannedAnswers.forEach(function(e){g(e)}),m.selectedChatWebsiteChatCannedAnswers=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.chat").controller("ChatWebsiteChatCannedAnswersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CHAT.EDIT_CHATCANNEDANSWER",g.chatCannedAnswer=angular.copy(l),g.chatCannedAnswers=r,g.newChatCannedAnswer=!1,g.chatCannedAnswer||(g.chatCannedAnswer={},g.title="CHAT.NEW_CHATCANNEDANSWER",g.newChatCannedAnswer=!0),n.params.id&&(g.chatCannedAnswer.ChatWebsiteId=n.params.id),g.addNewChatCannedAnswer=function(){g.errors=[],d.cannedAnswer.save(g.chatCannedAnswer).$promise.then(function(e){g.chatCannedAnswers.unshift(e.toJSON()),o.success({title:"ChatCannedAnswer properly created",msg:g.chatCannedAnswer.name?g.chatCannedAnswer.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveChatCannedAnswer=function(){g.errors=[],d.cannedAnswer.update({id:g.chatCannedAnswer.id},g.chatCannedAnswer).$promise.then(function(e){var n=_.find(g.chatCannedAnswers,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"ChatCannedAnswer properly saved!",msg:g.chatCannedAnswer.name?g.chatCannedAnswer.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteChatCannedAnswer=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The chatCannedAnswer will be deleted.").ariaLabel("Delete ChatCannedAnswer").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cannedAnswer.delete({id:g.chatCannedAnswer.id}).$promise.then(function(){_.remove(g.chatCannedAnswers,{id:g.chatCannedAnswer.id}),o.success({title:"ChatCannedAnswer properly deleted!",msg:(g.chatCannedAnswer.name||"chatCannedAnswer")+" has been deleted!"}),v(g.chatCannedAnswer)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","chatCannedAnswers","chatCannedAnswer","api","Auth","license","setting","crudPermissions"],angular.module("app.chat").controller("CreateOrEditChatCannedAnswerDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.dispositions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=l.chatWebsite.getDispositions(m.query,u).$promise}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){p(),d.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.dispositions={count:0,rows:[]},m.selectedDispositions=[],m.crudPermissions,m.levels={first:"1st",second:"2nd",third:"3rd"},m.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},m.init=function(e,n){m.chatWebsite=e||{},m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.ChatWebsiteId=m.chatWebsite.id,m.query.id=m.chatWebsite.id,p()},m.deleteConfirm=function(e,n){var t=_.some(m.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){g(e)})},m.success=u,m.getDispositions=p,m.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:{id:m.chatWebsite.id,field:"ChatWebsiteId",route:"chatWebsite"},license:null,setting:null,crudPermissions:m.crudPermissions}}).then(function(e){e&&p()})},m.deleteDisposition=g,m.exportSelectedDispositions=function(){var e=angular.copy(m.selectedDispositions);return m.selectedDispositions=[],e},m.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:m.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedDispositions.forEach(function(e){g(e)}),m.selectedDispositions=[]})},m.deselectDispositions=function(){m.selectedDispositions=[]},m.selectAllDispositions=function(){m.selectedDispositions=m.dispositions.rows};var v=!0,h=1;e.$watch("vm_dc.query.filter",function(e,n){v?o(function(){v=!1}):(n||(h=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=h),p())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","api","toasty","Auth"],angular.module("app.chat").controller("ChatWebsiteDispositionsController",e)}(),function(){"use strict";function e(t,e,a){var i=this;i.chatWebsite={},i.offlineForm={},i.buttons=[{type:"label",name:"Label",icon:"icon-label"},{type:"chooseFromList",name:"Select",icon:"icon-playlist-plus"},{type:"input",name:"Input",icon:"icon-keyboard"},{type:"textarea",name:"Textarea",icon:"icon-format-text"},{type:"multipleChoices",name:"Radio Buttons",icon:"icon-radiobox-marked"},{type:"checkboxes",name:"Checkboxes",icon:"icon-checkbox-multiple-marked-outline"},{type:"agreement",name:"Agreement",icon:"icon-checkbox-marked-outline"},{type:"upload",name:"Upload",icon:"icon-upload"}],i.init=function(e){i.fields=[],i.customFields=[],i.uselessFields=["id","createdAt","updatedAt","ListId","CompanyId","$promise","$resolved"],i.chatWebsite=e,_.isEmpty(i.chatWebsite.offlineForm)&&(i.chatWebsite.offlineForm={items:[],fromKey:null});a.cmList.getCustomFields({id:i.chatWebsite.ListId}).$promise.then(function(e){for(var n=0;n<e.rows.length;n++)i.customFields.push({key:"cf_"+e.rows[n].id,value:e.rows[n].alias});return a.cmContact.describe().$promise}).then(function(e){for(var n=_.keys(e),t=0;t<n.length;t++)_.includes(i.uselessFields,n[t])||_.startsWith(n[t],"cf_")||i.fields.unshift({key:n[t],value:n[t]});return a.variable.get().$promise}).then(function(e){return i.variables=e.rows,a.mailAccount.get({fields:"id,name",raw:!0}).$promise.then(function(e){i.email_accounts=e.rows})}).catch(function(e){console.error(e)})},i.up=function(e,n){if(0!==n){var t=i.chatWebsite.offlineForm.items[n-1];i.chatWebsite.offlineForm.items[n]=t,i.chatWebsite.offlineForm.items[n-1]=angular.copy(e),i.chatWebsite.offlineForm.fromKey===n?i.chatWebsite.offlineForm.fromKey--:i.chatWebsite.offlineForm.fromKey===n-1&&i.chatWebsite.offlineForm.fromKey++}},i.down=function(e,n){if(n!==i.chatWebsite.offlineForm.items.length-1){var t=i.chatWebsite.offlineForm.items[n+1];i.chatWebsite.offlineForm.items[n]=t,i.chatWebsite.offlineForm.items[n+1]=angular.copy(e),i.chatWebsite.offlineForm.fromKey===n?i.chatWebsite.offlineForm.fromKey++:i.chatWebsite.offlineForm.fromKey===n+1&&i.chatWebsite.offlineForm.fromKey--}},i.add=function(e){i.chatWebsite.offlineForm.items.push({type:e,cmField:null,variable:null})},i.remove=function(e){var n=t.confirm().title("The component will be deleted.").textContent("Are you sure?").ariaLabel("Lucky day").ok("Ok").cancel("Cancel");t.show(n).then(function(){i.chatWebsite.offlineForm.items.splice(e,1)})},i.card_type="offline",i.email_accounts=[]}e.$inject=["$mdDialog","$document","api"],angular.module("app.chat").controller("ChatWebsiteofflineFormController",e)}(),function(){"use strict";function e(t,e,a){var i=this;i.chatWebsite={},i.onlineForm={},i.buttons=[{type:"label",name:"Label",icon:"icon-label"},{type:"chooseFromList",name:"Select",icon:"icon-playlist-plus"},{type:"input",name:"Input",icon:"icon-keyboard"},{type:"textarea",name:"Textarea",icon:"icon-format-text"},{type:"multipleChoices",name:"Radio Buttons",icon:"icon-radiobox-marked"},{type:"checkboxes",name:"Checkboxes",icon:"icon-checkbox-multiple-marked-outline"},{type:"agreement",name:"Agreement",icon:"icon-checkbox-marked-outline"}],i.init=function(e){i.fields=[],i.customFields=[],i.uselessFields=["id","createdAt","updatedAt","ListId","CompanyId","$promise","$resolved"],i.chatWebsite=e,_.isEmpty(i.chatWebsite.onlineForm)&&(i.chatWebsite.onlineForm={items:[],fromKey:null});a.cmList.getCustomFields({id:i.chatWebsite.ListId}).$promise.then(function(e){for(var n=0;n<e.rows.length;n++)i.customFields.push({key:"cf_"+e.rows[n].id,value:e.rows[n].alias});return a.cmContact.describe().$promise}).then(function(e){for(var n=_.keys(e),t=0;t<n.length;t++)_.includes(i.uselessFields,n[t])||_.startsWith(n[t],"cf_")||i.fields.unshift({key:n[t],value:n[t]});return a.variable.get().$promise}).then(function(e){return i.variables=e.rows,a.mailAccount.get({fields:"id,name",raw:!0}).$promise.then(function(e){i.email_accounts=e.rows})}).catch(function(e){console.error(e)})},i.up=function(e,n){if(0!==n){var t=i.chatWebsite.onlineForm.items[n-1];i.chatWebsite.onlineForm.items[n]=t,i.chatWebsite.onlineForm.items[n-1]=angular.copy(e),i.chatWebsite.onlineForm.fromKey===n?i.chatWebsite.onlineForm.fromKey--:i.chatWebsite.onlineForm.fromKey===n-1&&i.chatWebsite.onlineForm.fromKey++}},i.down=function(e,n){if(n!==i.chatWebsite.onlineForm.items.length-1){var t=i.chatWebsite.onlineForm.items[n+1];i.chatWebsite.onlineForm.items[n]=t,i.chatWebsite.onlineForm.items[n+1]=angular.copy(e),i.chatWebsite.onlineForm.fromKey===n?i.chatWebsite.onlineForm.fromKey++:i.chatWebsite.onlineForm.fromKey===n+1&&i.chatWebsite.onlineForm.fromKey--}},i.add=function(e){i.chatWebsite.onlineForm.items.push({type:e,cmField:null,variable:null})},i.remove=function(e){var n=t.confirm().title("The component will be deleted.").textContent("Are you sure?").ariaLabel("Lucky day").ok("Ok").cancel("Cancel");t.show(n).then(function(){i.chatWebsite.onlineForm.fromKey===e&&(i.chatWebsite.onlineForm.fromKey=null),i.chatWebsite.onlineForm.items.splice(e,1),i.chatWebsite.onlineForm.items.length||(i.chatWebsite.onlineForm.fromKey=null)})},i.card_type="online",i.email_accounts=[]}e.$inject=["$mdDialog","$document","api"],angular.module("app.chat").controller("ChatWebsiteonlineFormController",e)}(),function(){"use strict";function e(e,a){var i=this;i.chatWebsite={},i.crudPermissions,i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.chatWebsite.images.unshift(t),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.chatWebsite.images,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e,n){i.chatWebsite=angular.copy(e),i.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.ngFlowOptions.target="/api/chat/websites/:id/customer_avatar".replace(":id",i.chatWebsite.id),i.chatWebsite.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.chat").controller("ChatWebsitecustomerAvatarController",e)}(),function(){"use strict";function e(e,a,n,t,i,s,o,r,l,d,c){var m=this;function u(e){m.chatWebsiteInteractions=e||{count:0,rows:[]};for(var n=0;n<m.chatWebsiteInteractions.rows.length;n+=1){var t=m.chatWebsiteInteractions.rows[n];v(t),t.Owner.name=h(t)}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.chatInteraction.get(m.query,u).$promise}function g(e){d.chatInteraction.delete({id:e.id}).$promise.then(function(){_.remove(m.chatWebsiteInteractions.rows,{id:e.id}),m.chatWebsiteInteractions.count-=1,m.chatWebsiteInteractions.rows.length||p(),l.success({title:"Interaction deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETchatWebsite"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(e){e.Contact?e.contactName=(e.Contact.firstName||"")+" "+(e.Contact.lastName||""):e.contactName=i.instant("DASHBOARDS.UNKNOWN")}function h(e){return e.UserId?e.UserId===m.currentUser.id?i.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">":i.instant("DASHBOARDS.NOT_ASSIGNED")}m.currentUser=c.getCurrentUser(),m.chatWebsite={},m.chatWebsiteInteractions={count:0,rows:[]},m.selectedChatWebsiteInteractions=[],m.crudPermissions,m.query={read:"null",closed:"null",sort:"-createdAt",includeAll:"true",limit:10,page:1},m.init=function(e,n,t){m.chatWebsite=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.ChatWebsiteId=m.chatWebsite.id,m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Customer Ip",column:"customerIp",type:"text",options:{excludedOperators:["$eq","$ne","$startsWith","$endsWith"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},d.tag.get({sort:"name"}).$promise.then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]})},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the interaction?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("interaction #")+e.id||"interaction")+"</b> will be deleted.").ariaLabel("delete interaction").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.chatInteractionDownload=function(s,e,n){return d.chatInteraction.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="interaction"+s.id,a=new Blob(n,{type:e.type});t="chat-interaction"+s.id+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatWebsite.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getChatWebsiteInteractions=p,m.createOrEditChatWebsiteInteraction=function(e,n){o.show({controller:"CreateOrEditInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/interactions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:m.chatWebsite,interaction:n,interactions:m.chatWebsiteInteractions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.spychatInteraction=function(e,t){o.show({controller:"AgentGeneralInteractionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,onShowing:function(e,n){e.vm.init({id:1,channel:"chat",interaction:t,spy:!0},a.$parent.vm.setting)}})},m.openAdvancedSearch=function(){o.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(r.body),clickOutsideToClose:!1,locals:{fields:m.advancedSearch.fields,color:void 0,storagePath:"chat.chatWebsites"},fullscreen:!0}).then(function(e){if(m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply){var n="";n+="||ChatWebsiteId:=$eq["+m.chatWebsite.id+"]",m.query.search=e.value?e.value+=n:e.value,p()}}).catch(function(e){l.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.exportSelectedChatWebsiteInteractions=function(){var e=angular.copy(m.selectedChatWebsiteInteractions);return m.selectedChatWebsiteInteractions=[],e},m.deleteChatWebsiteInteraction=g,m.deleteSelectedChatWebsiteInteractions=function(e){var n=o.confirm().title("Are you sure want to delete the selected interactions?").htmlContent("<b>"+m.selectedChatWebsiteInteractions.length+" selected</b> will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedChatWebsiteInteractions.forEach(function(e){g(e)}),m.selectedChatWebsiteInteractions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.chat").controller("ChatWebsiteInteractionsController",e)}(),function(){"use strict";function e(e,a){var i=this;i.chatWebsite={},i.crudPermissions,i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.chatWebsite.images.unshift(t),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.chatWebsite.images,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e,n){i.chatWebsite=angular.copy(e),i.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.ngFlowOptions.target="/api/chat/websites/:id/logo".replace(":id",i.chatWebsite.id),i.chatWebsite.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.chat").controller("ChatWebsitelogoController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.chatWebsiteOfflineMessages=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.chatWebsite.getOfflineMessages(m.query,u).$promise}function g(e){d.chatOfflineMessage.delete({id:e.id}).$promise.then(function(){_.remove(m.chatWebsiteOfflineMessages.rows,{id:e.id}),m.chatWebsiteOfflineMessages.count-=1,m.chatWebsiteOfflineMessages.rows.length||p(),l.success({title:"OfflineMessage deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETchatWebsite"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.chatWebsite={},m.chatWebsiteOfflineMessages={count:0,rows:[]},m.selectedChatWebsiteOfflineMessages=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,attachments,Contact.firstName,ContactId,ChatWebsiteId",sort:"-createdAt",limit:10,page:1},m.init=function(e,n,t){m.chatWebsite=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.id=m.chatWebsite.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the offlineMessage?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("offlineMessage #")+e.id||"offlineMessage")+"</b> will be deleted.").ariaLabel("delete offlineMessage").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getChatWebsiteOfflineMessages=p,m.createOrEditChatWebsiteOfflineMessage=function(e,n){o.show({controller:"CreateOrEditOfflineMessageDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/offlineMessages/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:m.chatWebsite,offlineMessage:n,offlineMessages:m.chatWebsiteOfflineMessages.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.showOfflineMessageChatWebsiteOfflineMessage=function(e,t){o.show({controller:"ShowOfflineMessageOfflineMessageDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/offlineMessages/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,resolve:{message:["apiResolver","$stateParams",function(e,n){return e.resolve("chatOfflineMessage@get",{fields:"id,body",id:t.id})}],attachments:["apiResolver","$stateParams",function(e,n){return e.resolve("attachment@get",{fields:"id,name",ChatOfflineMessageId:t.id})}]}})},m.exportSelectedChatWebsiteOfflineMessages=function(){var e=angular.copy(m.selectedChatWebsiteOfflineMessages);return m.selectedChatWebsiteOfflineMessages=[],e},m.deleteChatWebsiteOfflineMessage=g,m.deleteSelectedChatWebsiteOfflineMessages=function(e){var n=o.confirm().title("Are you sure want to delete the selected offlineMessages?").htmlContent("<b>"+m.selectedChatWebsiteOfflineMessages.length+" selected</b> will be deleted.").ariaLabel("delete offlineMessages").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedChatWebsiteOfflineMessages.forEach(function(e){g(e)}),m.selectedChatWebsiteOfflineMessages=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.chat").controller("ChatWebsiteOfflineMessagesController",e)}(),function(){"use strict";function e(n,e,t,a,i){var s=this;s.title="CHAT.OFFLINE_MESSAGE",s.message=a,s.attachments=i.rows,s.closeDialog=function(e){n.hide(e)},s.download=function(i){return e.attachment.download({id:i.id}).$promise.then(function(e){if(e){var n=new Blob([e.buffer],{type:e.type}),t=document.createElement("a"),a=window.URL.createObjectURL(n);t.href=a,t.target="_self",t.download=i.name,document.body.appendChild(t),t.click(),setTimeout(function(){document.body.removeChild(t),window.URL.revokeObjectURL(a)},100)}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"ATTACHMENTS:GET",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.isHtml=_.isNil(s.message.body.match(/\s?<!doctype html>|(<html\b[^>]*>|<body\b[^>]*>|<x-[^>]+>)+/i))}e.$inject=["$mdDialog","api","toasty","message","attachments"],angular.module("app.chat").controller("ShowOfflineMessageOfflineMessageDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.chatWebsiteProactiveActions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.chatWebsite.getProactiveActions(m.query,u).$promise}function g(e){d.chatProactiveAction.delete({id:e.id}).$promise.then(function(){_.remove(m.chatWebsiteProactiveActions.rows,{id:e.id}),m.chatWebsiteProactiveActions.count-=1,m.chatWebsiteProactiveActions.rows.length||p(),l.success({title:"ChatProactiveAction deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETchatWebsite"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.chatWebsite={},m.chatWebsiteProactiveActions={count:0,rows:[]},m.selectedChatWebsiteProactiveActions=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,name,type,selector,timeout",limit:10,page:1},m.arraytype=_.keyBy([{option:"MouseOver",value:"'mouseOver'"},{option:"Timeout",value:"'timeout'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),m.init=function(e,n,t){m.chatWebsite=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.ChatWebsiteId=m.chatWebsite.id,m.query.id=m.chatWebsite.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the chatProactiveAction?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("chatProactiveAction #")+e.id||"chatProactiveAction")+"</b> will be deleted.").ariaLabel("delete chatProactiveAction").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getChatWebsiteProactiveActions=p,m.createOrEditChatWebsiteChatProactiveAction=function(e,n){o.show({controller:"CreateOrEditChatProactiveActionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/proactive/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:m.chatWebsite,chatProactiveAction:n,proactive:m.chatWebsiteProactiveActions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedChatWebsiteProactiveActions=function(){var e=angular.copy(m.selectedChatWebsiteProactiveActions);return m.selectedChatWebsiteProactiveActions=[],e},m.deleteChatWebsiteChatProactiveAction=g,m.deleteSelectedChatWebsiteProactiveActions=function(e){var n=o.confirm().title("Are you sure want to delete the selected proactive?").htmlContent("<b>"+m.selectedChatWebsiteProactiveActions.length+" selected</b> will be deleted.").ariaLabel("delete proactive").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedChatWebsiteProactiveActions.forEach(function(e){g(e)}),m.selectedChatWebsiteProactiveActions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.chat").controller("ChatWebsiteProactiveActionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CHAT.EDIT_CHATPROACTIVEACTION",g.chatProactiveAction=angular.copy(l),g.proactive=r,g.newChatProactiveAction=!1,g.chatProactiveAction||(g.chatProactiveAction={type:"mouseOver"},g.title="CHAT.NEW_CHATPROACTIVEACTION",g.newChatProactiveAction=!0),n.params.id&&(g.chatProactiveAction.ChatWebsiteId=n.params.id),g.addNewChatProactiveAction=function(){g.errors=[],d.chatProactiveAction.save(g.chatProactiveAction).$promise.then(function(e){g.proactive.unshift(e.toJSON()),o.success({title:"ChatProactiveAction properly created",msg:g.chatProactiveAction.name?g.chatProactiveAction.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatProactiveAction.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatProactiveAction.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveChatProactiveAction=function(){g.errors=[],d.chatProactiveAction.update({id:g.chatProactiveAction.id},g.chatProactiveAction).$promise.then(function(e){var n=_.find(g.proactive,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"ChatProactiveAction properly saved!",msg:g.chatProactiveAction.name?g.chatProactiveAction.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatProactiveAction.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatProactiveAction.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteChatProactiveAction=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The chatProactiveAction will be deleted.").ariaLabel("Delete ChatProactiveAction").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.chatProactiveAction.delete({id:g.chatProactiveAction.id}).$promise.then(function(){_.remove(g.proactive,{id:g.chatProactiveAction.id}),o.success({title:"ChatProactiveAction properly deleted!",msg:(g.chatProactiveAction.name||"chatProactiveAction")+" has been deleted!"}),v(g.chatProactiveAction)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatProactiveAction.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatProactiveAction.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","proactive","chatProactiveAction","api","Auth","license","setting","crudPermissions"],angular.module("app.chat").controller("CreateOrEditChatProactiveActionDialogController",e)}(),function(){"use strict";function e(e){var n=this;n.chatWebsite={},n.init=function(e){n.chatWebsite=e,n.start="\n\x3c!-- START Motion Chat Script --\x3e",n.script='\n <script src="'+n.chatWebsite.remote+"/api/chat/websites/"+n.chatWebsite.id+"/snippet?token="+n.chatWebsite.token+'"><\/script>',n.end="\n\x3c!-- START Motion Chat Script --\x3e"},n.info={},e.$watch("vm_ac.chatWebsite.remote",function(e){n.script='\n <script src="'+n.chatWebsite.remote+"/api/chat/websites/"+n.chatWebsite.id+"/snippet?token="+n.chatWebsite.token+'"><\/script>'})}e.$inject=["$scope"],angular.module("app.chat").controller("ChatWebsiteScriptController",e)}(),function(){"use strict";function e(e,a){var i=this;i.chatWebsite={},i.crudPermissions,i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.chatWebsite.images.unshift(t),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.chatWebsite.images,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e,n){i.chatWebsite=angular.copy(e),i.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.ngFlowOptions.target="/api/chat/websites/:id/system_avatar".replace(":id",i.chatWebsite.id),i.chatWebsite.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.chat").controller("ChatWebsitesystemAvatarController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;p.currentUser=d.getCurrentUser(),p.license=s,p.setting=o,p.passwordPattern=p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.location=n.protocol()+"://"+n.host(),p.chatWebsite=c||e.params.chatWebsite||{},p.userProfile=m,p.userProfileSection=u&&1==u.count?u.rows[0]:null,p.crudPermissions=d.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.hasModulePermissions={},p.selectedTab=e.params.tab||0,p.agentadddialog=function(e,n){t.show({controller:"ChatWebsiteagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{chatWebsite:e,chatWebsites:p.chatWebsites?p.chatWebsites.rows:[],crudPermissions:p.crudPermissions,realtime:!1}})},p.alert=l.info,p.gotoChatWebsites=function(){e.go("app.chat.chatWebsites",{},{reload:"app.chat.chatWebsites"})},p.saveChatWebsite=function(){r.chatWebsite.update({id:p.chatWebsite.id},p.chatWebsite).$promise.then(function(){l.success({title:"ChatWebsite updated!",msg:p.chatWebsite.name?p.chatWebsite.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.lists,{id:e.resourceId})}),t=null;if(p.chatWebsite&&(t=_.find(p.lists,{id:Number(p.chatWebsite.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.lists,{id:t.id});a.canSelect=!1,n.push(a)}p.lists=n})}else{var t=[],a=null;p.chatWebsite&&(a=_.find(p.lists,{id:Number(p.chatWebsite.ListId)}));for(var i=0;i<p.lists.length;i++)a&&p.lists[i].id===a.id&&(p.lists[i].canSelect=!1,t.push(p.lists[i]));p.lists=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){p.interval=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){p.interval=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.interval,{id:e.resourceId})}),t=null;if(p.chatWebsite&&(t=_.find(p.interval,{id:Number(p.chatWebsite.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.interval,{id:t.id});a.canSelect=!1,n.push(a)}p.interval=n})}else{var t=[],a=null;p.chatWebsite&&(a=_.find(p.interval,{id:Number(p.chatWebsite.IntervalId)}));for(var i=0;i<p.interval.length;i++)a&&p.interval[i].id===a.id&&(p.interval[i].canSelect=!1,t.push(p.interval[i]));p.interval=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.pauses,{id:e.resourceId})});p.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),p.pauses=n})}else p.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","chatWebsite","userProfile","userProfileSection"],angular.module("app.chat").controller("ChatWebsiteController",e)}(),function(){"use strict";function e(e,o,n,t,a,i,s,r,l,d,c,m,u,p,g,v,h,f){var b=this,A=["userpic","online","lastLoginAt","lastPauseAt","pauseType","lastPauseAt","internal","address","chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","chatCapacity","openchannelCapacity","mailCapacity","smsCapacity","whatsappCapacity","faxCapacity","chatCurrentCapacity","openchannelCurrentCapacity","mailCurrentCapacity","smsCurrentCapacity","whatsappCurrentCapacity","faxCurrentCapacity","chatStatus","openchannelStatus","mailStatus","smsStatus","whatsappStatus","faxStatus","voiceStatus","chatStatusTime","openchannelStatusTime","mailStatusTime","smsStatusTime","whatsappStatusTime","faxStatusTime","voiceStatusTime","queue","destconnectedlinenum","screenrecording","phoneBarEnableScreenRecordingByAgent","phoneBarEnableAutomaticScreenRecording"],E=["chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","online"];for(var y in b.currentUser=v.getCurrentUser(),b.availableStates=["ringing","inuse","busy","onhold","not_inuse"],b.pauses=s||{count:0,rows:[]},b.license=h,b.userProfile=p,b.userProfileSection=g&&1==g.count?g.rows[0]:null,b.crudPermissions=v.parseCrudPermissions(b.userProfileSection?b.userProfileSection.crudPermissions:null),b.agents=r?_.keyBy(r.rows?r.rows:[],"id"):{},b.rpcAgents=l?_.keyBy(l.rows?l.rows:[],"id"):{},b.paginatedAgents={},b.load=!1,b.order=[],b.agentInternal={},b.agents)b.agents.hasOwnProperty(y)&&(b.agents[y].init=!0);b.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},b.logout=function(e,n){return d.user.logout({id:e.id,device:"realtime",agent_id:e.id,agent_name:e.name}).$promise.then(function(){m.success({title:"Agent logout",msg:e.fullname+" properly logout"}),b.agents[e.id]&&(b.agents[e.id].online=!1),b.rpcAgents[e.id]&&(b.rpcAgents[e.id].online=!1),T()}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.queueAdd=function(e,n){t.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:[],channel:"chat",direction:"inbound",crudPermissions:b.crudPermissions}})},b.pause=function(n,e){return d.user.pause({id:n.id,type:e}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.unPause=function(n){return d.user.unpause({id:n.id}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.showInfo=function(e){t.show(t.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},b.getAgentStatus=O,b.getAgentGlobalStatus=w,b.isPause=I,b.checkPause=function(e){return"pause"===e},b.isPartialPause=function(e){return"*pause"===e},b.onSave=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(_.omit(e,E),A)),_.merge(b.rpcAgents[e.id],_.pick(_.omit(e,E),A)),w(b.agents[e.id]))},b.onUpdate=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(e,A)),_.merge(b.rpcAgents[e.id],_.pick(e,A)),e.lastPauseAt&&(b.agents[e.id].globalStatusTime=e.lastPauseAt,b.rpcAgents[e.id].globalStatusTime=e.lastPauseAt),w(b.agents[e.id]))},b.onInit=T,b.onConnect=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(_.merge(b.agents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])),_.merge(b.rpcAgents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])))},b.onComplete=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(b.agents[b.agentInternal[e.destaccountcode]]=_.omit(b.agents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]),b.rpcAgents[b.agentInternal[e.destaccountcode]]=_.omit(b.rpcAgents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]))},b.screenRecording=function(e,n){return d.user.update({id:e.id},{screenrecording:n}).$promise.catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.on("user:save",b.onSave),c.on("user:update",b.onUpdate),c.on("user:agentconnect",b.onConnect),c.on("user:agentcomplete",b.onComplete),T();var S=f(function(){b.load&&(b.load=!1,T())},999);function T(e){b.load=!1;var n,t,a=o.defer();b.promise=a.promise,b.filteredAgents=[],b.order=[],_.forIn(b.agents,function(e,n){b.rpcAgents[n]&&_.merge(e,_.pick(_.omit(b.rpcAgents[n],E),A)),w(e),e.online?(b.filteredAgents.push(e),b.agentInternal[e.internal]=n):e.globalStatusTime=_.toNumber(moment().format("x"))}),b.query.globalStatusFilter&&_.remove(b.filteredAgents,function(e){return e.globalStatus!==b.query.globalStatusFilter}),b.query.pauseTypeFilter&&_.remove(b.filteredAgents,function(e){return e.pauseType!==b.query.pauseTypeFilter}),b.query.filter&&_.remove(b.filteredAgents,function(e){return e.fullname.toLowerCase().indexOf(b.query.filter.toLowerCase())<0}),b.filteredAgents=(n=b.filteredAgents,t=_.startsWith(b.query.order,"-")?"desc":"asc",_.orderBy(n,[b.query.order.replace("-","")],[t]));var i=(b.query.page-1)*b.query.limit;b.paginatedAgents=_.drop(b.filteredAgents,i).slice(0,b.query.limit);for(var s=0;s<b.paginatedAgents.length;s+=1)b.order.push(b.paginatedAgents[s].id);a.resolve(),b.load=!0}function I(e){return"pause"===e||"*pause"===e}function C(e){return"idle"===e||"unknown"===e||"unavailable"===e||"ringing"===e||_.isNil(e)}function O(e,n){return"voice"===n?"idle"!==e[n+"Status"]?e[n+"Status"]:e[n+"Pause"]?e[n+"Status"]="pause":"idle":e[n+"Pause"]?e[n+"Status"]="pause":e[n+"Status"]}function w(e){var n="unknown";n=_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"pause":_.some([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"*pause":_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],C)?"idle":"busy",e.globalStatus!==n&&(e.globalStatus=n,e.init?(e.init=!1,e.globalStatusTime=I(n)?_.toNumber(moment(e.lastPauseAt).format("x")):_.max([e.voiceStatusTime,e.chatStatusTime,e.mailStatusTime,e.smsStatusTime,e.whatsappStatusTime,e.openchannelStatusTime,e.faxStatusTime])):e.globalStatusTime=_.toNumber(moment().format("x")))}e.$on("$destroy",function(){c.removeAllListeners("user:save"),c.removeAllListeners("user:update"),c.removeAllListeners("user:agentconnect"),c.removeAllListeners("user:agentcomplete"),S&&(f.cancel(S),S=null)})}e.$inject=["$scope","$q","$timeout","$mdDialog","$document","$filter","pauses","agents","rpcAgents","api","socket","toasty","helperClasses","userProfile","userProfileSection","Auth","license","$interval"],angular.module("app.voice").controller("AgentsChatRealtimeController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c,m){var u=this,p=["loggedIn","available","waiting","paused"],g=n(function(){},999);u.currentUser=c.getCurrentUser(),u.queues=s,u.userProfileSection=d&&1==d.count?d.rows[0]:null,u.crudPermissions=c.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.query={id:c.isUser()?u.currentUser.id:void 0,section:c.isUser()?"ChatQueues":void 0,channel:"chat",sort:"name",limit:10,page:1},u.getQueues=function(){u.query.offset=(u.query.page-1)*u.query.limit,o.realtime.getQueues(u.query).$promise.then(function(e){u.queues=e}).catch(function(e){l.error({title:i.instant("CHAT.CHATQUEUES"),msg:e.status?JSON.stringify(e.data):e.toString()})})},u.editQueue=function(e,n){t.show({controller:"CreateOrEditChatQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatQueue:n,chatQueues:u.queues.rows,license:null,setting:null,crudPermissions:u.crudPermissions}})},u.addAgent=function(e,n){t.show({controller:"ChatQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatQueue:n,chatQueues:u.queues.rows,realtime:!1,crudPermissions:u.crudPermissions}})},r.on("chat_queue:save",function(e){var n=_.find(u.queues.rows,["id",e.id]);n&&_.merge(n,_.pick(e,p))}),r.on("userChatQueue:save",function(e){var n=_.find(u.queues.rows,["id",e.ChatQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),r.on("userChatQueue:remove",function(e){var n=_.find(u.queues.rows,["id",e.ChatQueueId]);n&&(0<n.loggedInDb&&n.loggedInDb--,_.remove(n.agents,["id",e.UserId]))}),r.on("user:update",function(t){u.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&m.updateQueue(t,e,n,"chat")})}),e.$on("$destroy",function(){r.removeAllListeners("chat_queue:save"),r.removeAllListeners("userChatQueue:remove"),r.removeAllListeners("userChatQueue:save"),r.removeAllListeners("user:update"),g&&n.cancel(g)})}e.$inject=["$scope","$mdDialog","$document","$interval","$translate","queues","api","socket","toasty","userProfileSection","Auth","realtimeManager"],angular.module("app.chat").controller("QueuesChatRealtimeController",e)}(),function(){"use strict";angular.module("app.auth").factory("helperClasses",function(){return{status:{registered:"green-300-fg icon-checkbox-marked-circle",unregistered:"red-300-fg icon-close-circle",lagged:"red-300-fg icon-close-circle",reachable:"green-300-fg icon-checkbox-marked-circle",unreachable:"red-300-fg icon-close-circle",unknown:"grey-fg icon-minus-circle"},state:{unknown:"grey-fg icon-phone-hangup",not_inuse:"green-300-fg icon-phone-hangup",inuse:"red-300-fg icon-phone-in-talk",busy:"red-300-fg icon-phone-locked",invalid:"grey-fg icon-phone-hangup",unavailable:"grey-fg icon-phone-hangup",ringing:"blue-300-fg icon-phone-incoming",ringinuse:"blue-300-fg icon-phone-incoming",onhold:"blue-300-fg icon-phone-paused"},channelStatus:{ring:"blue-300-fg icon-phone-incoming",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"},channelStatusOut:{ring:"blue-300-fg icon-phone-outgoing",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"}}})}(),function(){"use strict";function e(e,t,n){switch(this.selectedTab=0,t.current.name){case"app.chat.realtime.agents":this.selectedTab=0;break;case"app.chat.realtime.queues":this.selectedTab=1;break;default:this.selectedTab=0,t.go("app.chat.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.chat.realtime.agents");break;case 1:t.go("app.chat.realtime.queues");break;default:t.go("app.chat.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.chat").controller("ChatRealtimeController",e)}(),function(){"use strict";function e(e,n,a,t,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.companies=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="companies",f.listOrder="",f.listOrderAsc=null,f.selectedCompanies=[],f.query={fields:"createdAt,updatedAt,id,name,phone,vat,fax,companyId,type,website,emailDomain,email,description,sStreet,sPostalCode,sCity,sCountry,street,postalCode,city,country",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){a.go("app.contactmanager.companies.edit",{id:e.id,company:e,crudPermissions:f.crudPermissions})},f.gotocontactsgoto=function(t,e){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:303}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?a.go("app.contactmanager.contacts",{CompanyId:t.id}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});a.go("app.contactmanager.contacts",{CompanyId:t.id})}},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("company")+"?").htmlContent("<b>"+(e.name||"company")+"</b> will be deleted.").ariaLabel("delete company").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getCompanies=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.cmCompany.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Companies",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditCompany=function(e,n){i.show({controller:"CreateOrEditCompanyDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/companies/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{company:n,companies:f.companies.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteCompany=y,f.exportSelectedCompanies=function(){var e=angular.copy(f.selectedCompanies);return f.selectedCompanies=[],e},f.deleteSelectedCompanies=function(e){var n=i.confirm().title("Are you sure want to delete the selected companies?").htmlContent("<b>"+f.selectedCompanies.length+" selected</b> will be deleted.").ariaLabel("delete Companys").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedCompanies.forEach(function(e){y(e)}),f.selectedCompanies=[]})},f.deselectCompanies=function(){f.selectedCompanies=[]},f.selectAllCompanies=function(){f.selectedCompanies=f.companies.rows};var b=!0,A=1;function E(e){f.companies=e||{count:0,rows:[]}}function y(e){m.cmCompany.delete({id:e.id}).$promise.then(function(){_.remove(f.companies.rows,{id:e.id}),f.companies.count-=1,f.companies.rows.length||f.getCompanies(),p.success({title:_.startCase("Company")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEcmCompany"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEcmCompany",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getCompanies())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","companies","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.contactmanager").controller("CompaniesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CONTACTMANAGER.EDIT_COMPANY",g.company=angular.copy(l),g.companies=r,g.newCompany=!1,g.company||(g.company={},g.title="CONTACTMANAGER.NEW_COMPANY",g.newCompany=!0),g.addNewCompany=function(){g.errors=[],d.cmCompany.save(g.company).$promise.then(function(e){g.companies.unshift(e.toJSON()),o.success({title:"Company properly created",msg:g.company.name?g.company.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCompany.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCompany.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveCompany=function(){g.errors=[],d.cmCompany.update({id:g.company.id},g.company).$promise.then(function(e){var n=_.find(g.companies,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Company properly saved!",msg:g.company.name?g.company.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCompany.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCompany.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteCompany=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The company will be deleted.").ariaLabel("Delete Company").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cmCompany.delete({id:g.company.id}).$promise.then(function(){_.remove(g.companies,{id:g.company.id}),o.success({title:"Company properly deleted!",msg:(g.company.name||"company")+" has been deleted!"}),v(g.company)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCompany.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCompany.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","companies","company","api","Auth","license","setting","crudPermissions"],angular.module("app.contactmanager").controller("CreateOrEditCompanyDialogController",e)}(),function(){"use strict";function e(a,e,n,t,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=e.protocol()+"://"+e.host(),u.company=c||a.params.company||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=a.params.tab||0,u.gotogoto=function(t,e){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:303}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?a.go("app.contactmanager.contacts",{CompanyId:t.id}):l.info({title:i.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:i.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});a.go("app.contactmanager.contacts",{CompanyId:t.id})}},u.alert=l.info,u.gotoCompanies=function(){a.go("app.contactmanager.companies",{},{reload:"app.contactmanager.companies"})},u.saveCompany=function(){r.cmCompany.update({id:u.company.id},u.company).$promise.then(function(){l.success({title:"Company updated!",msg:u.company.name?u.company.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmCompany",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","company","userProfileSection"],angular.module("app.contactmanager").controller("CompanyController",e)}(),function(){"use strict";function e(n,i,t,a,e,s,o,r,l,d,c,m,u,p,g,v,h,f,b){var A=this;A.currentUser=f.getCurrentUser(),A.license=b,A.userProfile=r,A.userProfileSection=l&&1==l.count?l.rows[0]:null,A.crudPermissions=f.parseCrudPermissions(A.userProfileSection?A.userProfileSection.crudPermissions:null);var E=60,y=1024*E*1024;A.ngFlowOptions={target:"api/cm/contacts/upload",singleFile:!0,maxChunkRetries:1,chunkSize:y,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},A.contacts=c||{count:0,rows:[]},A.options={hidden:!1,hover:!1,isOpen:!1},A.table="cm_contacts",A.selectedContacts=[],A.lists=m||{rows:[],count:0},A.companies=p||{rows:[],count:0},A.tags=v||{rows:[],count:0},A.listsMap=u,A.companiesMap=g,A.selectedTags=[],A.selectedList=null,A.selectedCompany=null,A.query=_.merge({includeAll:!0,sort:"-updatedAt",limit:10,offset:0,page:1},e),A.editdialog=function(e,n){a.go("app.contactmanager.contacts.edit",{id:e.id,crudPermissions:A.crudPermissions})},A.deleteconfirm=function(e,n){var t=s.confirm().title("Are you sure want to delete the contact?").htmlContent("<b>"+(e.firstName||e.email||e.phone||"Contact")+"</b> will be deleted.").ariaLabel("delete contact").targetEvent(n).ok("OK").cancel("CANCEL");s.show(t).then(function(){C(e)})},A.success=I,A.getContacts=function(){A.query.offset=(A.query.page-1)*A.query.limit,f.hasRole("admin")?A.promise=d.cmContact.get(A.query,I).$promise:(A.query.id=A.userProfile.id,A.query.ListId=A.query.ListId?A.query.ListId:_.map(A.lists.rows,"id"),A.query.CompanyId=A.query.CompanyId?A.query.CompanyId:_(A.companies.rows).filter({canSelect:void 0}).map("id").value(),A.query.section="Contacts",A.promise=d.userProfile.getResources(A.query,I).$promise)},A.getAssignedCompanies=function(){if(!f.hasRole("admin")){var e=_(A.contacts.rows).map(function(e){return{id:e.CompanyId}}).uniqBy("id").filter(function(e){return e.id&&0<e.id}).pullAllBy(A.companies.rows,"id").value();if(!_.isEmpty(e)){var n=[];e.forEach(function(e){n.push(d.cmCompany.get({id:e.id,fields:"id,name"}).$promise)}),o.all(n).then(function(e){e.forEach(function(e){var n=e.toJSON();n.canSelect=!1,A.companies.rows.push(n);var t={};t[n.id]=n.name,A.companiesMap=_.assignIn(A.companiesMap,t)})}).catch(function(e){h.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_COMPANY",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}}},A.mergeContact=function(e,n){s.show({controller:"MergeContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/merge/dialog.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:n.id})}],lists:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmList@get",{fields:"id,name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Lists",fields:"id,name",nolimit:!0})}]},locals:{contacts:A.contacts.rows}})},A.duplicateContact=function(e,n){s.show({controller:"DuplicateContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/duplicate/dialog.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:n.id})}],lists:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmList@get",{fields:"id,name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Lists",fields:"id,name",nolimit:!0})}]},locals:{contacts:A.contacts.rows}})},A.createOrEditContact=function(e,n){n&&n.dateOfBirth&&(n.dateOfBirth=new Date(n.dateOfBirth));s.show({controller:"CreateOrEditContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/create/dialog.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,locals:{ListId:A.query.ListId||a.params.ListId,CompanyId:A.query.CompanyId||a.params.CompanyId,contact:n,contacts:A.contacts.rows,companies:A.companies,lists:A.lists,setting:null,crudPermissions:A.crudPermissions}})},A.deleteContact=C,A.exportSelectedContacts=function(){var e=angular.copy(A.selectedContacts);return A.selectedContacts=[],e},A.deleteSelectedContacts=function(e){var n=s.confirm().title("Are you sure want to delete the selected contacts?").htmlContent("<b>"+A.selectedContacts.length+" selected</b> will be deleted.").ariaLabel("delete Contacts").targetEvent(e).ok("OK").cancel("CANCEL");s.show(n).then(function(){A.selectedContacts.forEach(function(e){C(e)}),A.selectedContacts=[]})},A.deselectContacts=function(){A.selectedContacts=[]},A.selectAllContacts=function(){A.selectedContacts=A.contacts.rows},A.createTag=function(e){var n=s.prompt().title("What would you name your tag?").placeholder("Tag name").ariaLabel("Tag name").targetEvent(e).ok("Ok").cancel("Cancel");return s.show(n).then(function(e){if(e)return d.tag.save({name:e});h.error({title:"Error creating tag!",msg:"Invalid tag name."})}).then(function(e){e&&(A.tags.rows.push(e),h.success({title:"Tag properly created!",msg:e.tag?e.name+" has been created!":""}))})},A.createList=function(e){var n=s.prompt().title("What would you name your list?").placeholder("List name").ariaLabel("List name").targetEvent(e).ok("Ok").cancel("Cancel");return s.show(n).then(function(e){if(e)return d.cmList.save({name:e});h.error({title:"Error creating list!",msg:"Invalid list name."})}).then(function(e){e&&(A.lists.rows.push(e),h.success({title:"List properly created!",msg:e.name?e.name+" has been created!":""}))})},A.createCompany=function(e){var n=s.prompt().title("What would you name your company?").placeholder("Company name").ariaLabel("Company name").targetEvent(e).ok("Ok").cancel("Cancel");return s.show(n).then(function(e){if(e)return d.cmCompany.save({name:e});h.error({title:"Error creating company!",msg:"Invalid company name."})}).then(function(e){e&&(A.companies.rows.push(e),h.success({title:"Company properly created!",msg:e.name?e.name+" has been created!":""}))})},A.importContacts=function(e,n,t){var a=JSON.parse(n);s.show({controller:"ImportContactsDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/import/import.html",parent:angular.element(i.body),clickOutsideToClose:!1,locals:{lists:m,companies:p,file:a.file,fields:a.fields,license:A.license}}).then(function(){A.getContacts()}).catch(function(e){console.error()})},A.hasPermission=function(){return f.hasPermission(303)||f.hasRole("admin")},A.fileAdded=function(e){var n=["csv"];if(!_.includes(n,e.getExtension()))return h.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(e.size>y)return h.error({title:"File too big",msg:"The max allowed size is "+E+"MB"}),!1;return!0},a.params.ListId&&(A.selectedList=a.params.ListId),a.params.CompanyId&&(A.selectedCompany=a.params.CompanyId),n.$watch("vm.options.isOpen",function(e){e?t(function(){n.tooltipVisible=A.options.isOpen},600):n.tooltipVisible=A.options.isOpen});var S=!0,T=1;function I(e){A.contacts=e||{count:0,rows:[]}}function C(e){d.cmContact.delete({id:e.id}).$promise.then(function(){_.remove(A.contacts.rows,{id:e.id}),A.contacts.count-=1,A.contacts.rows.length||A.getContacts(),h.success({title:"Contact deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){A.errors=e.data.errors||[{message:e.toString(),type:"api.contact.delete"}];for(var n=0;n<e.data.errors.length;n++)h.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else h.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contact.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}n.$watch("vm.query.filter",function(e,n){S?t(function(){S=!1}):(n||(T=A.query.page),e!==n&&(A.query.page=1),e||(A.query.page=T),A.getContacts())},!0),n.$watch("vm.selectedList",function(e,n){e!==n&&(A.query.ListId=A.selectedList||void 0,A.getContacts())}),n.$watch("vm.selectedCompany",function(e,n){e!==n&&(A.query.CompanyId=A.selectedCompany||void 0,A.getContacts())}),n.$watch("vm.selectedTags",function(e,n){(e.length||n.length)&&A.getContacts()})}e.$inject=["$scope","$document","$timeout","$state","$stateParams","$mdDialog","$q","userProfile","userProfileSection","api","contacts","lists","listsMap","companies","companiesMap","tags","toasty","Auth","license"],angular.module("app.contactmanager").controller("ContactsController",e)}(),function(){"use strict";function e(t,a,e,n,i,s,o,r,l,d){var c=this;function m(){t.hide()}c.errors=[],c.title="CONTACTMANAGER.EDIT_CONTACT",c.crudPermissions=d,c.contact=angular.copy(s),c.contacts=e||{rows:[],count:0},c.lists=n||{rows:[],count:0},c.companies=i||{rows:[],count:0},c.customFields={rows:[],count:0},c.newContact=!1,c.contact?(delete c.contact.List,c.ListId=c.contact.ListId||void 0):(c.contact={ListId:o?parseInt(o,10):void 0,CompanyId:r?parseInt(r,10):void 0},c.title="CONTACTMANAGER.NEW_CONTACT",c.newContact=!0),c.addNewContact=function(){c.errors=[],l.cmContact.save(c.contact).$promise.then(function(e){c.contacts.unshift(e),a.success({title:"Contact properly created",msg:c.contact.name?c.contact.name+" has been created!":""}),m()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.user.save"}];for(var n=0;n<e.data.errors.length;n++)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contacts.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.saveContact=function(){c.errors=[],l.cmContact.update({id:c.contact.id},c.contact).$promise.then(function(e){var n=_.find(c.contacts,{id:e.id});n&&_.merge(n,e),a.success({title:"Contact properly saved!",msg:c.contact.name?c.contact.name+" has been saved!":""}),m()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.contact.update"}];for(var n=0;n<e.data.errors.length;n++)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contact.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.deleteContact=function(e){c.errors=[];var n=t.confirm().title("Are you sure?").content("The contact will be deleted.").ariaLabel("Delete Contact").ok("Delete").cancel("Cancel").targetEvent(e);t.show(n).then(function(){l.cmContact.delete({id:c.contact.id}).$promise.then(function(){_.remove(c.contacts,{id:c.contact.id}),a.success({title:"Contact properly deleted!",msg:c.contact.name?c.contact.name+" has been deleted!":""}),m()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.contact.delete"}]})},function(){})},c.closeDialog=m,c.getCustomFields=function(e){{if(e)return l.cmList.getCustomFields({id:e}).$promise.then(function(e){if(e){c.customFields=e;var n=_.map(c.customFields.rows,function(e){return"cf_"+e.id});l.cmContact.get({id:c.contact.id,attributes:n,raw:!0}).$promise.then(function(e){c.contact=_.merge(c.contact,e)})}}).catch(function(e){console.error(e)});c.customFields={rows:[],count:0}}},c.getDateFromString=function(e){return null===e?void 0:new Date(e)}}e.$inject=["$mdDialog","toasty","contacts","lists","companies","contact","ListId","CompanyId","api","crudPermissions"],angular.module("app.tools").controller("CreateOrEditContactDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this;function r(){e.hide()}o.errors=[],o.title="CONTACTMANAGER.COPY_CONTACT",o.contact=angular.copy(t),o.lists=i||{rows:[],count:0},o.addNewContact=function(){o.errors=[],delete o.contact.id,o.contact.tags&&!o.contact.tags.length&&delete o.contact.tags;s.cmContact.save(o.contact).$promise.then(function(e){a.unshift(e),n.success({title:"Contact properly created",msg:o.contact.name?o.contact.name+" has been created!":""}),r()}).catch(function(e){console.error(e),o.errors=e.data.errors||[{message:e.toString(),type:"api.contact.save"}]})},o.closeDialog=r}e.$inject=["$mdDialog","toasty","contact","contacts","lists","api"],angular.module("app.tools").controller("DuplicateContactDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l){var d=this;function c(e){a.hide(e)}d.errors=[],d.title="CONTACTMANAGER.EDIT_HOPPER",d.hopper=angular.copy(o),d.hoppers=s,d.newHopper=!1,d.crudPermissions=l,d.hopper||(d.hopper={},d.title="CONTACTMANAGER.NEW_HOPPER",d.newHopper=!0),d.saveHopper=function(){d.errors=[],r.cmHopper.update({id:d.hopper.id},d.hopper).$promise.then(function(e){var n=_.find(d.hoppers,{id:e.id});n&&_.merge(n,e),i.success({title:"Hopper properly saved!",msg:d.hopper.name?d.hopper.name+" has been saved!":""}),c(e)}).catch(function(e){console.error(e),d.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.update"}]})},d.getDateFromString=function(e){return null===e?void 0:new Date(e)},d.closeDialog=c}e.$inject=["$scope","$state","$location","$mdDialog","toasty","hoppers","hopper","api","crudPermissions"],angular.module("app.contactmanager.contacts").controller("EditHopperDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m,u,p,g,v,h,f,b,A,E,y){var S=this;function T(n){return function(e){S[n]=e||{count:0,rows:[]}}}function I(){S.queryHopper.offset=(S.queryHopper.page-1)*S.queryHopper.limit,S.queryHopper.id=S.contact.id,S.promise=r.cmContact.getHoppers(S.queryHopper,T("hoppers")).$promise}function C(){S.queryFinal.offset=(S.queryFinal.page-1)*S.queryFinal.limit,S.queryFinal.id=S.contact.id,S.promise=r.cmContact.getHopperFinals(S.queryFinal,T("finals")).$promise}function O(){S.queryHistory.offset=(S.queryHistory.page-1)*S.queryHistory.limit,S.queryHistory.id=S.contact.id,S.promise=r.cmContact.getHopperHistories(S.queryHistory,T("histories")).$promise}function w(e){S.journeyIsLoading=!0;var n=_.merge(S.journeyOptions,{id:S.contact.id,offset:e||0});return y.get(S.journey,n).then(function(e){S.journey=e.journey,S.canLoadMoreJourney=e.loadMore}).finally(function(){S.journeyIsLoading=!1})}S.currentUser=A.getCurrentUser(),S.license=b,S.journey=[],S.contact=l||{},S.hoppers=d||{rows:[],count:0},S.finals=c||{rows:[],count:0},S.histories=m||{rows:[],count:0},S.companies=p||{rows:[],count:0},S.lists=g||{rows:[],count:0},S.customFields=v||{rows:[],count:0},S.tags=h||{rows:[],count:0},S.jscriptySessions=f||{rows:[],count:0},S.journeyOptions=y.getQuery(),S.quickFilters=y.getQuickFilters(),S.journeyTimelineOptions={scrollEl:"#journey-content"},S.userProfileSection=E&&1==E.count?E.rows[0]:null,S.crudPermissions=A.parseCrudPermissions(S.userProfileSection?S.userProfileSection.crudPermissions:null),S.arraypriority=_.keyBy([{option:"Highest",value:"'4'"},{option:"High",value:"'3'"},{option:"Medium",value:"'2'"},{option:"Low",value:"'1'"},{option:"Lowest",value:"'0'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),S.queryHopper={fields:"id,phone,scheduledat,priority,recallme,VoiceQueueId,CampaignId,UserId",sort:"-updatedAt",limit:10,page:1},S.queryFinal={fields:"id,uniqueid,calleridnum,statedesc,starttime,disposition",sort:"-id",limit:10,page:1},S.queryHistory={fields:"id,uniqueid,calleridnum,statedesc,scheduledat,starttime,endtime",sort:"-id",limit:10,page:1},S.queryJscriptySession={fields:"id,starttime,endtime,membername,projectname",sort:"-starttime",limit:10,page:1},S.selectedTab=n.params.tab||0,S.onInit=function(){A.hasRole("admin")||(function(){if(!_.some(S.companies.rows,{id:S.contact.CompanyId}))r.cmCompany.get({id:S.contact.CompanyId,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,S.companies.rows.push(n)}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_COMPANY",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}(),function(){var e=_.map(S.contact.Tags,function(e){return{id:e.id,name:e.name}});if(!_.isEmpty(e))for(var n=0;n<e.length;n++)_.some(S.tags.rows,{id:e.id})||(e[n].canSelect=!1,S.tags.rows.push(e[n]))}());return r.user.get({fields:"id,fullname",nolimit:!0}).$promise.then(function(e){S.users=e||{count:0,rows:[]},S.usersMap=_.mapValues(_.keyBy(S.users.rows,"id"),"fullname"),S.Tags=_.map(S.contact.Tags,"id")}).finally(function(){S.contact&&w()})},S.gotoContacts=function(){n.go("app.contactmanager.contacts",{},{reload:!0,notify:!0})},S.duplicateContact=function(e){i.show({controller:"DuplicateContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/duplicate/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,resolve:{lists:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmList@get",{fields:"id,name"}):e.resolve("userProfile@getResources",{id:S.currentUser.userProfileId,section:"Lists",fields:"id,name"})}]},locals:{contacts:u.rows,contact:l}})},S.saveContact=function(){r.cmContact.update({id:S.contact.id},S.contact).$promise.then(function(){o.success({title:"Contact updated!",msg:S.contact.name?S.contact.name+" has been updated!":""})}).then(function(){return r.cmContact.setTags({id:S.contact.id,ids:S.Tags}).$promise}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEcontact",msg:e.data?JSON.stringify(e.data):e.toString()})})},S.editCompany=function(e,n){var t=_.find(S.companies.rows,{id:n});i.show({controller:"CreateOrEditCompanyDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/companies/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{companies:[],license:null,setting:null,crudPermissions:!1===t.canSelect?{readOnly:!0,canEdit:!1,canDelete:!1}:r.userProfileSection.get({userProfileId:S.currentUser.userProfileId,sectionId:302}).$promise.then(function(e){var n=e.rows?e.rows[0]:null;return A.parseCrudPermissions(n?n.crudPermissions:null)}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"API:GET_COMPANY_SECTION",msg:e.data?JSON.stringify(e.data):e.toString()})})},resolve:{company:["apiResolver",function(e){return e.resolve("cmCompany@get",{id:n})}]}})},S.onSelectList=function(e){if(S.contact.ListId){var n=i.confirm().title("You are selecting the list number: "+S.contact.ListId).textContent("Warning! You won't select a different list for the contact "+S.contact.firstName||S.contact.lastName||S.contact.id).targetEvent(e).ok("Ok").cancel("Cancel");return i.show(n).then(S.onSelectListSuccess).catch(function(){S.contact.ListId=null})}},S.onSelectListSuccess=function(){return r.cmList.getCustomFields({id:S.contact.ListId}).$promise.then(function(e){S.customFields=e||{rows:[],count:0}}).catch(function(e){console.error(e)})},S.getDateFromString=function(e){return null===e?void 0:new Date(e)},S.getHoppers=I,S.getFinals=C,S.getHistories=O,S.getJscriptySessions=function(){S.queryJscriptySession.offset=(S.queryJscriptySession.page-1)*S.queryJscriptySession.limit,S.queryJscriptySession.id=S.contact.id,S.promise=r.cmContact.getJscriptySessions(S.queryJscriptySession,T("jscriptySessions")).$promise},S.deleteconfirm=function(n,e){var t=i.confirm().title("Are you sure want to delete the agent?").htmlContent("<b>"+(n.phone||"hopper")+"</b> will be deleted.").ariaLabel("delete hopper").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){var e;e=n,r.cmHopper.delete({id:e.id}).$promise.then(function(){_.remove(S.hoppers.rows,{id:e.id}),S.hoppers.count--,S.hoppers.rows.length||S.getHoppers(),o.success({title:"Hopper deleted!",msg:e.phone?e.phone+" has been deleted!":""})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEhopper",msg:e.data?JSON.stringify(e.data):e.toString()})})},function(){console.log("CANCEL")})},S.editHopper=function(e,n){i.show({controller:"CreateOrEditHopperVoiceQueueIdDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hoppers/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{hopper:n,hoppers:S.hoppers.rows,license:null,setting:null,crudPermissions:S.crudPermissions}})},S.createOrEditIvrCampaignHopper=function(e,n){i.show({controller:"CreateOrEditHopperCampaignIdDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hoppers/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{hopper:n,hoppers:S.hoppers.rows,license:null,setting:null,crudPermissions:S.crudPermissions}})},S.getCustomerJourney=w,S.loadMoreJourney=function(){return s(function(e,n){var t=S.journey.length;return e(w(t))})};var R=!0,x=1;e.$watch("vm.queryHopper.filter",function(e,n){R?t(function(){R=!1}):(n||(x=S.queryHopper.page),e!==n&&(S.queryHopper.page=1),e||(S.queryHopper.page=x),I())}),e.$watch("vm.queryFinal.filter",function(e,n){R?t(function(){R=!1}):(n||(x=S.queryFinal.page),e!==n&&(S.queryFinal.page=1),e||(S.queryFinal.page=x),C())}),e.$watch("vm.queryHistory.filter",function(e,n){R?t(function(){R=!1}):(n||(x=S.queryHistory.page),e!==n&&(S.queryHistory.page=1),e||(S.queryHistory.page=x),O())})}e.$inject=["$scope","$timeout","$state","$document","$mdDialog","$q","toasty","api","contact","hoppers","finals","histories","contacts","companies","lists","customFields","tags","jscriptySessions","license","Auth","userProfileSection","customerJourneyManager"],angular.module("app.contactmanager.contacts").controller("ContactController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;g.processing=!1,g.stopping=!0,g.license=p,g.pid=0,g.result={finish:!1,rows:0,affectedRows:0,failedRows:0,duplicatedRows:0,errors:[]},g.contactFields=[{key:"firstName",required:!0},{key:"lastName",required:!1},{key:"phone",required:!0},{key:"mobile",required:!1},{key:"email",required:!1},{key:"dateOfBirth",required:!1},{key:"country",required:!1},{key:"city",required:!1},{key:"street",required:!1},{key:"postalCode",required:!1},{key:"fax",required:!1}],g.motionBullFields=[{key:"UserId",required:!1},{key:"scheduledat",required:!1},{key:"priority",required:!1}],g.binding={},g.duplicate=[],g.lists=s||{rows:[],count:0},g.companies=o||{rows:[],count:0},g.customFields={rows:[],count:0},g.fields=u||[],g.closeDialog=function(){d.removeAllListeners("contact:import:"+v),n.hide()},g.onChangeList=function(){return l.cmList.getCustomFields({id:g.ListId}).$promise.then(function(e){g.customFields=e}).catch(function(e){console.error(e)})},g.uploadCsv=function(){g.processing=moment(),l.cmContact.import({id:m.filename,binding:g.binding,ListId:g.ListId,CompanyId:g.CompanyId,duplicates:g.duplicates,socket_timestamp:v}).$promise.then(function(e){g.stopping=!1,e&&e.pid&&(g.pid=e.pid)}).catch(function(e){g.processing=!1,r.error({title:"Import process failed!",msg:"Please retry with a new file"})})},g.getHeaderErrors=function(){var e=u;return e.push("contact_import_error"),e},g.getArrayErrors=function(){for(var e=[],n=0;n<g.result.errors.length;n+=1){var t=g.result.errors[n].row;t.contact_import_error=g.result.errors[n].message,e.push(t)}return e},g.stopUpload=function(){if(g.stopping=!0,g.pid)return l.system.killProcess({pid:g.pid}).$promise.then(function(e){r.success({title:"CSV import process stopped!",msg:"Import has been stopped!"})}).catch(function(e){r.error({title:"CSV stop import process failed!",msg:"pid is unknown"})})};var v=moment().unix();d.on("contact:import:"+v,function(t){i(function(){if(g.result.rows=t.rows,t.errors)for(var e=0;e<t.errors.length;e++)g.result.errors.push(t.errors[e]);if(t.finish){g.result.finish=!0,g.result.affectedRows=t.affectedRows,g.result.failedRows=g.result.errors.length;var n=g.result.rows-g.result.affectedRows-g.result.errors.length;n&&0<n&&(g.duplicates.length?g.result.duplicatedRows=n:g.result.failedRows+=n),g.result.elapsed=moment().diff(g.processing,"seconds")}})}),c.$on("$destroy",function(){d.removeAllListeners("contact:import:"+v)})}e.$inject=["$cookies","$mdDialog","$interval","$q","$timeout","lists","companies","toasty","api","socket","$scope","file","fields","license"],angular.module("app.tools").controller("ImportContactsDialogController",e)}(),function(){"use strict";function e(i,e,s,n,o,t,r){var a=this;a.errors=[],a.title="CONTACTMANAGER.MERGE_CONTACT",a.contact=angular.copy(n),a.lists=t||[],a.change=function(){a.searchTerm?r.cmContact.get({fields:"id,firstName,lastName,phone,email",filter:a.searchTerm,ListId:n.ListId}).$promise.then(function(e){a.contacts=e.rows}).catch(function(e){console.error(e)}):a.contacts=[]},a.showConfirm=function(e,n,t){var a=i.confirm({skipHide:!0}).title("Would you like to merge your contacs?").textContent("All unfilled values of the contact #"+t.id+" will be overwritten by the fields of the contact #"+n.id+".").targetEvent(e).ok("Ok").cancel("Cancel");i.show(a).then(function(){return r.cmContact.merge({to:t.id,from:n.id}).$promise}).then(function(e){i.hide({new:e,to:t,from:n}),_.remove(o,{id:t.id}),_.remove(o,{id:n.id}),o.unshift(e)}).then(function(){s.success({title:"Contact properly merged!"})}).catch(function(e){e&&e.status&&s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:MERGE_CONTACT",msg:e.data?JSON.stringify(e.data):e.toString()})})},a.closeDialog=function(){i.hide()}}e.$inject=["$mdDialog","$scope","toasty","contact","contacts","lists","api"],angular.module("app.tools").controller("MergeContactDialogController",e)}(),function(){"use strict";function e(a,e,n,t,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){t.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CONTACTMANAGER.EDIT_GLOBALCUSTOMFIELD",g.sortable={animation:800,sort:!0,onSort:function(e){a.globalCustomFieldForm.$pristine=!1}},g.globalCustomField=l,g.globalCustomFields=r,g.newGlobalCustomField=!1,g.globalCustomField||(g.globalCustomField={type:"text",actionType:"voice"},g.title="CONTACTMANAGER.NEW_GLOBALCUSTOMFIELD",g.newGlobalCustomField=!0),a.$watch("vm.globalCustomField.type",function(e,n){if(e!==n)switch(e){case"text":g.globalCustomField.values="";break;case"select":g.globalCustomField.values=[]}}),g.addNewGlobalCustomField=function(){g.errors=[],d.cmCustomField.save(g.globalCustomField).$promise.then(function(e){g.globalCustomFields.unshift(e.toJSON()),o.success({title:"GlobalCustomField properly created",msg:g.globalCustomField.name?g.globalCustomField.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCustomField.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveGlobalCustomField=function(){g.errors=[],d.cmCustomField.update({id:g.globalCustomField.id},g.globalCustomField).$promise.then(function(e){var n=_.find(g.globalCustomFields,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"GlobalCustomField properly saved!",msg:g.globalCustomField.name?g.globalCustomField.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCustomField.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteGlobalCustomField=function(e){g.errors=[];var n=t.confirm().title("Are you sure?").content("The globalCustomField will be deleted.").ariaLabel("Delete GlobalCustomField").ok("Delete").cancel("Cancel").targetEvent(e);t.show(n).then(function(){d.cmCustomField.delete({id:g.globalCustomField.id}).$promise.then(function(){_.remove(g.globalCustomFields,{id:g.globalCustomField.id}),o.success({title:"GlobalCustomField properly deleted!",msg:(g.globalCustomField.name||"globalCustomField")+" has been deleted!"}),v(g.globalCustomField)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCustomField.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.addItem=function(e){e.push({value:"New Item"}),a.globalCustomFieldForm.$pristine=!1},g.removeItem=function(e,n){e.splice(n,1),a.globalCustomFieldForm.$pristine=!1},g.removeItems=function(e){for(var n=e.length,t=0;t<n;t++)e.splice(0,1);a.globalCustomFieldForm.$pristine=!1},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","globalCustomFields","globalCustomField","api","Auth","license","setting","crudPermissions"],angular.module("app.contactmanager").controller("CreateOrEditGlobalCustomFieldDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.globalCustomFields=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="globalCustomFields",f.listOrder="",f.listOrderAsc=null,f.selectedGlobalCustomFields=[],f.query={fields:"createdAt,updatedAt,id,alias,type,values,required,clickToAction,actionType",sort:"-updatedAt",ListId:"null",limit:10,page:1},f.arraytype=_.keyBy([{option:"Text",value:"'text'"},{option:"Select",value:"'select'"},{option:"Number",value:"'number'"},{option:"Switch",value:"'switch'"},{option:"Datetime",value:"'datetime'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayactionType=_.keyBy([{option:"Voice",value:"'voice'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editdialog=function(e,n){i.show({controller:"CreateOrEditGlobalCustomFieldDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/globalCustomFields/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{globalCustomField:e,globalCustomFields:f.globalCustomFields.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("globalCustomField")+"?").htmlContent("<b>"+(e.name||"globalCustomField")+"</b> will be deleted.").ariaLabel("delete globalCustomField").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getGlobalCustomFields=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.cmCustomField.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="GlobalCustomFields",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditGlobalCustomField=function(e,n){i.show({controller:"CreateOrEditGlobalCustomFieldDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/globalCustomFields/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{globalCustomField:n,globalCustomFields:f.globalCustomFields.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteGlobalCustomField=y,f.exportSelectedGlobalCustomFields=function(){var e=angular.copy(f.selectedGlobalCustomFields);return f.selectedGlobalCustomFields=[],e},f.deleteSelectedGlobalCustomFields=function(e){var n=i.confirm().title("Are you sure want to delete the selected globalCustomFields?").htmlContent("<b>"+f.selectedGlobalCustomFields.length+" selected</b> will be deleted.").ariaLabel("delete GlobalCustomFields").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedGlobalCustomFields.forEach(function(e){y(e)}),f.selectedGlobalCustomFields=[]})},f.deselectGlobalCustomFields=function(){f.selectedGlobalCustomFields=[]},f.selectAllGlobalCustomFields=function(){f.selectedGlobalCustomFields=f.globalCustomFields.rows};var b=!0,A=1;function E(e){f.globalCustomFields=e||{count:0,rows:[]}}function y(e){m.cmCustomField.delete({id:e.id}).$promise.then(function(){_.remove(f.globalCustomFields.rows,{id:e.id}),f.globalCustomFields.count-=1,f.globalCustomFields.rows.length||f.getGlobalCustomFields(),p.success({title:_.startCase("GlobalCustomField")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEcmCustomField"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEcmCustomField",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getGlobalCustomFields())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","globalCustomFields","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.contactmanager").controller("GlobalCustomFieldsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CONTACTMANAGER.EDIT_LIST",g.list=angular.copy(l),g.lists=r,g.newList=!1,g.list||(g.list={},g.title="CONTACTMANAGER.NEW_LIST",g.newList=!0),g.addNewList=function(){g.errors=[],d.cmList.save(g.list).$promise.then(function(e){g.lists.unshift(e.toJSON()),o.success({title:"List properly created",msg:g.list.name?g.list.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmList.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmList.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveList=function(){g.errors=[],d.cmList.update({id:g.list.id},g.list).$promise.then(function(e){var n=_.find(g.lists,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"List properly saved!",msg:g.list.name?g.list.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmList.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmList.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteList=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The list will be deleted.").ariaLabel("Delete List").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cmList.delete({id:g.list.id}).$promise.then(function(){_.remove(g.lists,{id:g.list.id}),o.success({title:"List properly deleted!",msg:(g.list.name||"list")+" has been deleted!"}),v(g.list)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmList.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmList.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","lists","list","api","Auth","license","setting","crudPermissions"],angular.module("app.contactmanager").controller("CreateOrEditListDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.cmList.getAgents({id:c.list.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserList?"penalty "+e.UserList.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.list=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.cmList.removeAgents({id:c.list.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.cmList.addAgents({id:c.list.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("CONTACTMANAGER.ALL_AGENTS"),labelSelected:r.instant("CONTACTMANAGER.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","list","lists","realtime","$translate","Auth","crudPermissions"],angular.module("app.contactmanager").controller("ListagentaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.listCustomFields=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.cmList.getCustomFields(m.query,u).$promise}function g(e){d.cmCustomField.delete({id:e.id}).$promise.then(function(){_.remove(m.listCustomFields.rows,{id:e.id}),m.listCustomFields.count-=1,m.listCustomFields.rows.length||p(),l.success({title:"CustomField deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETcmList"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmList",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.list={},m.listCustomFields={count:0,rows:[]},m.selectedListCustomFields=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,alias,type,values,required,clickToAction,actionType",limit:10,page:1},m.arraytype=_.keyBy([{option:"Text",value:"'text'"},{option:"Select",value:"'select'"},{option:"Number",value:"'number'"},{option:"Switch",value:"'switch'"},{option:"Datetime",value:"'datetime'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),m.arrayactionType=_.keyBy([{option:"Voice",value:"'voice'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),m.init=function(e,n){m.list=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.ListId=m.list.id,m.query.id=m.list.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the customField?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("customField #")+e.id||"customField")+"</b> will be deleted.").ariaLabel("delete customField").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getListCustomFields=p,m.createOrEditListCustomField=function(e,n){o.show({controller:"CreateOrEditCustomFieldDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/lists/edit/customFields/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{list:m.list,customField:n,customFields:m.listCustomFields.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedListCustomFields=function(){var e=angular.copy(m.selectedListCustomFields);return m.selectedListCustomFields=[],e},m.deleteListCustomField=g,m.deleteSelectedListCustomFields=function(e){var n=o.confirm().title("Are you sure want to delete the selected customFields?").htmlContent("<b>"+m.selectedListCustomFields.length+" selected</b> will be deleted.").ariaLabel("delete customFields").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedListCustomFields.forEach(function(e){g(e)}),m.selectedListCustomFields=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.contactmanager").controller("ListCustomFieldsController",e)}(),function(){"use strict";function e(a,e,n,t,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){t.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CONTACTMANAGER.EDIT_CUSTOMFIELD",g.sortable={animation:800,sort:!0,onSort:function(e){a.customFieldForm.$pristine=!1}},g.customField=l,g.customFields=r,g.newCustomField=!1,g.customField||(g.customField={type:"text",actionType:"voice"},g.title="CONTACTMANAGER.NEW_CUSTOMFIELD",g.newCustomField=!0),e.params.id&&(g.customField.ListId=e.params.id),a.$watch("vm.customField.type",function(e,n){if(e!==n)switch(e){case"text":g.customField.values="";break;case"select":g.customField.values=[]}}),g.addNewCustomField=function(){g.errors=[],d.cmList.addCustomField({id:e.params.id},g.customField).$promise.then(function(e){g.customFields.unshift(e.toJSON()),o.success({title:"CustomField properly created",msg:g.customField.name?g.customField.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCustomField.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveCustomField=function(){g.errors=[],d.cmCustomField.update({id:g.customField.id},g.customField).$promise.then(function(e){var n=_.find(g.customFields,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"CustomField properly saved!",msg:g.customField.name?g.customField.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCustomField.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteCustomField=function(e){g.errors=[];var n=t.confirm().title("Are you sure?").content("The customField will be deleted.").ariaLabel("Delete CustomField").ok("Delete").cancel("Cancel").targetEvent(e);t.show(n).then(function(){d.cmCustomField.delete({id:g.customField.id}).$promise.then(function(){_.remove(g.customFields,{id:g.customField.id}),o.success({title:"CustomField properly deleted!",msg:(g.customField.name||"customField")+" has been deleted!"}),v(g.customField)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCustomField.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.addItem=function(e){e.push({value:"New Item"}),a.customFieldForm.$pristine=!1},g.removeItem=function(e,n){e.splice(n,1),a.customFieldForm.$pristine=!1},g.removeItems=function(e){for(var n=e.length,t=0;t<n;t++)e.splice(0,1);a.customFieldForm.$pristine=!1},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","customFields","customField","api","Auth","license","setting","crudPermissions"],angular.module("app.contactmanager").controller("CreateOrEditCustomFieldDialogController",e)}(),function(){"use strict";function e(a,e,t,i,s,n,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=n,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=e.protocol()+"://"+e.host(),u.list=c||a.params.list||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=a.params.tab||0,u.gotogoto=function(t,e){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:303}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?a.go("app.contactmanager.contacts",{ListId:t.id}):l.info({title:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});a.go("app.contactmanager.contacts",{ListId:t.id})}},u.agentadddialog=function(e,n){t.show({controller:"ListagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/lists/edit/agentadd/agentadd.html",parent:angular.element(i.body),targetEvent:n,clickOutsideToClose:!0,locals:{list:e,lists:u.lists?u.lists.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.alert=l.info,u.gotoLists=function(){a.go("app.contactmanager.lists",{},{reload:"app.contactmanager.lists"})},u.saveList=function(){r.cmList.update({id:u.list.id},u.list).$promise.then(function(){l.success({title:"List updated!",msg:u.list.name?u.list.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmList",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","list","userProfileSection"],angular.module("app.contactmanager").controller("ListController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.dispositions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=l.cmList.getDispositions(m.query,u).$promise}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){p(),d.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.dispositions={count:0,rows:[]},m.selectedDispositions=[],m.crudPermissions,m.levels={first:"1st",second:"2nd",third:"3rd"},m.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},m.init=function(e,n){m.list=e||{},m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.ListId=m.list.id,m.query.id=m.list.id,p()},m.deleteConfirm=function(e,n){var t=_.some(m.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){g(e)})},m.success=u,m.getDispositions=p,m.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:{id:m.list.id,field:"ListId",route:"cmList"},license:null,setting:null,crudPermissions:m.crudPermissions}}).then(function(e){e&&p()})},m.deleteDisposition=g,m.exportSelectedDispositions=function(){var e=angular.copy(m.selectedDispositions);return m.selectedDispositions=[],e},m.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:m.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedDispositions.forEach(function(e){g(e)}),m.selectedDispositions=[]})},m.deselectDispositions=function(){m.selectedDispositions=[]},m.selectAllDispositions=function(){m.selectedDispositions=m.dispositions.rows};var v=!0,h=1;e.$watch("vm_dc.query.filter",function(e,n){v?o(function(){v=!1}):(n||(h=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=h),p())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","api","toasty","Auth"],angular.module("app.contactmanager").controller("ListDispositionsController",e)}(),function(){"use strict";function e(e,n,a,t,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.lists=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="lists",f.listOrder="",f.listOrderAsc=null,f.selectedLists=[],f.query={fields:"createdAt,updatedAt,id,name,description,dialPrefix",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){a.go("app.contactmanager.lists.edit",{id:e.id,list:e,crudPermissions:f.crudPermissions})},f.gotocontactsgoto=function(t,e){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:303}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?a.go("app.contactmanager.contacts",{ListId:t.id}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});a.go("app.contactmanager.contacts",{ListId:t.id})}},f.exportcsvcontactsexport=function(i,e){return m.cmList.getContactsCsv({id:i.id,nolimit:!0}).$promise.then(function(e){if(void 0!==e.length){var n=[e.buffer],t=new Blob(n,{type:e.type}),a=window.document.createElement("a");a.setAttribute("href",URL.createObjectURL(t)),a.setAttribute("download","exportContacts_"+i.id+".csv"),a.click()}else p.info({title:"EXPORT",msg:"The list is empty"})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmList",msg:e.data?JSON.stringify(e.data):e.toString()})})},f.agentadddialog=function(e,n){i.show({controller:"ListagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/lists/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{list:e,lists:f.lists?f.lists.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("list")+"?").htmlContent("<b>"+(e.name||"list")+"</b> will be deleted.").ariaLabel("delete list").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getLists=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.cmList.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Lists",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditList=function(e,n){i.show({controller:"CreateOrEditListDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/lists/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{list:n,lists:f.lists.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteList=y,f.exportSelectedLists=function(){var e=angular.copy(f.selectedLists);return f.selectedLists=[],e},f.deleteSelectedLists=function(e){var n=i.confirm().title("Are you sure want to delete the selected lists?").htmlContent("<b>"+f.selectedLists.length+" selected</b> will be deleted.").ariaLabel("delete Lists").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedLists.forEach(function(e){y(e)}),f.selectedLists=[]})},f.deselectLists=function(){f.selectedLists=[]},f.selectAllLists=function(){f.selectedLists=f.lists.rows};var b=!0,A=1;function E(e){f.lists=e||{count:0,rows:[]}}function y(e){m.cmList.delete({id:e.id}).$promise.then(function(){_.remove(f.lists.rows,{id:e.id}),f.lists.count-=1,f.lists.rows.length||f.getLists(),p.success({title:_.startCase("List")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEcmList"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEcmList",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getLists())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","lists","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.contactmanager").controller("ListsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l){var d=this;d.currentUser=s.getCurrentUser(),d.userProfile=r,d.userProfileSection=l&&1==l.count?l.rows[0]:null,d.crudPermissions=s.parseCrudPermissions(d.userProfileSection?d.userProfileSection.crudPermissions:null),d.customDashboard={},d.voiceQueues=o&&o.count?o:{count:0,rows:[]},d.voiceQueuesSelected=o&&o.count?_.map(o.rows,"id"):[],d.interval=n(function(){},1e3),d.onChangeVoiceQueues=function(){for(var e=0;e<d.customDashboard.widgets.length;e+=1)d.customDashboard.widgets[e].voiceQueuesSelected=d.voiceQueuesSelected},d.goToEdit=function(){e.go("app.tools.customDashboards.edit",{id:d.customDashboard.id,tab:1})},i.onWithoutApply("voice_queue:save",function(e){var n=_.find(d.voiceQueues.rows,{id:e.id});n&&_.merge(n,_.pick(e,_.keys(n)))}),a.dashboard.get({id:e.params.id}).$promise.then(function(e){if(e)return d.customDashboard=e,d.customDashboard.widgets=[],d.customDashboard.preview=!0,d.customDashboard.draggable={enabled:!1},d.customDashboard.resizable={enabled:!1},a.dashboard.getItems({id:d.customDashboard.id}).$promise}).then(function(e){if(e&&e.count&&e.rows)for(var n=0;n<e.rows.length;n+=1)e.rows[n].templateUrl="app/core/directives/ms-widget-engine/ms-widget-engine-"+e.rows[n].type+"/ms-widget-engine."+e.rows[n].type+".html",e.rows[n].voiceQueues=d.voiceQueues,e.rows[n].voiceQueuesSelected=d.voiceQueuesSelected,d.customDashboard.widgets.push(e.rows[n])}).catch(function(e){d.customDashboard=void 0}),t.$on("$destroy",function(){i.removeAllListeners("voice_queue:save"),d.interval&&n.cancel(d.interval)})}e.$inject=["$state","$interval","$scope","api","socket","Auth","voiceQueues","userProfile","userProfileSection"],angular.module("app.dashboards.custom").controller("DashboardCustomController",e)}(),function(){"use strict";function e(e,i,s,o,r,l,n,d,t,a,c,m,u,p,g,v,h,f,b){var A=this;function E(e){var n={};for(var t in A.tabs)A.tabs.hasOwnProperty(t)&&(n[t]=_.pick(A.tabs[t],["type","title","channel","icon","color","autoCreate","id","saved","badges","openedAt"]),_.isNil(A.tabs[t].contact)||(n[t].contact=_.pick(A.tabs[t].contact,["id","ListId"])),_.isNil(A.tabs[t].calls)||(n[t].calls=A.tabs[t].calls),A.tabs[t].interaction&&(n[t].interaction=_.pick(A.tabs[t].interaction,["id","OpenchannelAccountId","MailAccountId","ChatWebsiteId","FaxAccountId","SmsAccountId","WhatsappAccountId","closed","draft"])));var a=JSON.parse(s.localStorage.getItem("motion2.user:"+A.user.id));a?(a.tabs=n,a.currentTab=A.currentTab,a.autoClose=A.autoClose):a={tabs:n,currentTab:A.currentTab,autoClose:A.autoClose},s.localStorage.setItem("motion2.user:"+A.user.id,JSON.stringify(a)),e&&y(e)}function y(e){if(_.isNil(e)||e&&"interaction"===e.type){var n={id:A.user.id,online:!0,capacity:{mail:0,fax:0,sms:0,whatsapp:0,openchannel:0,chat:0},interaction:{mail:[],fax:[],sms:[],whatsapp:[],openchannel:[],chat:[]}};for(var t in A.tabs)A.tabs.hasOwnProperty(t)&&n.capacity.hasOwnProperty(A.tabs[t].channel)&&A.tabs[t].interaction&&!A.tabs[t].interaction.closed&&(n.capacity[A.tabs[t].channel]+=1,n.interaction[A.tabs[t].channel].push(A.tabs[t].interaction.id));if(!_.isEqual(A.agentCapacity,n.capacity))return A.agentCapacity=n.capacity,d.rpc.setAgentCapacity(n)}}function S(e){A.tabs[e.id]&&(!function(e){if(e.channel&&e.interaction)d.user["remove"+_.upperFirst(e.channel)+"Interactions"]({id:A.user.id,ids:[e.interaction.id]}).$promise.catch(function(e){console.error(e)})}(A.tabs[e.id]),delete A.tabs[e.id],A.currentTab=0,E(e))}function T(e){e.id=_.random(1e10),e.openedAt=(new Date).toISOString(),e.saved=!1,e.badges=0,A.tabs[e.id]=e,A.currentTab=e.id,E(e)}function I(n){return _.find(A.tabs,function(e){return"interaction"===e.type&&e.interaction&&e.interaction.id==n.interactionId&&e.channel==n.channel})}function C(n,t){var e,a,i={type:"contact",title:n?(e=n,a="",e&&(e.firstName||e.lastName?(e.firstName&&(a+=e.firstName+" "),e.lastName&&(a+=e.lastName)):e.phone&&(a=e.phone)),a=A.user.privacyEnabled?b.mask(a):a):o.instant("DASHBOARDS.NEW_CONTACT"),icon:"icon-account-circle",color:"red",contact:n,calls:t?[t]:[],autoCreate:t?t.autoCreate:0};if(t&&(t.answertime||(t.answertime=t.agentconnectAt),(t.agentcompleteAt||t.endtime)&&N(t)),n){var s=_.find(A.tabs,function(e){return e.contact&&e.contact.id?"contact"===e.type&&e.contact&&e.contact.id==n.id:"contact"===e.type&&e.contact&&e.contact.phone==n.phone});if(s){if(t)return d.voiceCallReport.get({uniqueid:t.uniqueid}).$promise.then(function(e){(e&&0<e.rows.length&&(t.disposedAt=_.first(e.rows).endtime),s.calls)?_.find(s.calls,function(e){return e.uniqueid===t.uniqueid})||s.calls.push(t):s.calls=[t];A.currentTab=s.id})}else{if(n.ListId)return d.disposition.get({ListId:n.ListId,nolimit:!0}).$promise.then(function(e){return i.dispositions=e,d.cmList.getCustomFields({id:n.ListId,nolimit:!0}).$promise}).then(function(e){i.customFields=e}).catch(D()).finally(function(){T(i)});T(i)}}else T(i)}function O(n,t){var e=_.find(A.tabs,function(e){return"interaction"===e.type&&e.interaction&&e.interaction.id===t.id&&e.channel===n});e?(e.isDraft=t.isDraft||!1,A.currentTab=e.id):T(e={type:"interaction",title:n?n.toUpperCase():"openchannel",icon:function(e){switch(e){case"chat":return"icon-hangouts";case"mail":return"icon-email";case"sms":return"icon-message-text";case"openchannel":return"icon-google-earth";case"fax":return"icon-deskphone";case"whatsapp":return"icon-whatsapp";default:return"icon-hangouts"}}(n),color:function(e){switch(e){case"chat":return"green-A700";case"mail":return"teal";case"sms":return"orange";case"openchannel":return"amber-A200";case"fax":return"blue-grey-A200";case"whatsapp":return"lime-A700";default:return"grey"}}(n),channel:n,interaction:t,isDraft:t.isDraft||!1})}function w(e){e&&e.uniqueid&&A.notifications[e.uniqueid]&&(a.clear(A.notifications[e.uniqueid]),delete A.notifications[e.uniqueid])}function R(n){var t=n.uniqueid;for(var e in console.debug("onVoiceChannelRemove -> evt",n),A.tabs)if(A.tabs.hasOwnProperty(e)){var a=A.tabs[e];if(a.calls){console.debug("onVoiceChannelRemove -> key, tab, tab.calls",e,a,a.calls);var i=_.findIndex(a.calls,function(e){return e.uniqueid===t});i<0&&0<=(i=_.findIndex(a.calls,function(e){return e.uniqueid===n.linkedid}))&&(t=n.linkedid),0<=i&&!a.calls[i].disposedAt?(console.debug("Allowing disposition for call %s",a.calls[i].uniqueid),N(a.calls[i])):console.debug("Call %s not found or already completed",a.calls[i].uniqueid),a.contact&&a.contact.id&&l(x(t,a.contact.id,a),1e3)}}E()}function x(n,e,t){return function(){if(_.find(t.calls,function(e){return e.uniqueid===n}))return d.voiceCallReport.update({id:n,ContactId:e}).$promise.catch(function(e){console.error(e)})}}function N(e){e.disposedAt=new Date}function D(){return function(e){if(404===e.status)a.warning({title:o.instant("DASHBOARDS.ATTENTION"),msg:o.instant("DASHBOARDS.ACCEPT_ELSEWHERE")});else if(e.data&&e.data.errors&&e.data.errors.length){A.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelMessage.accept"}];for(var n=0;n<e.data.errors.length;n+=1)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelMessage.accept",msg:e.data?JSON.stringify(e.data.message):e.toString()})}}A.license=g,A.setting=v,A.detectBrowser=f.detectBrowser(),A.user=n.getCurrentUser(),A.currentTab=0,A.notifications={},A.tabs={},A.agentCapacity={},A.autoClose=!1,A.globalUserLists=c||{count:0,rows:[]},A.globalLists=m||{count:0,rows:[]},A.globalCompanies=u||{count:0,rows:[]},A.globalTags=p||{count:0,rows:[]},A.onClickTab=function(e){A.currentTab=e,E(A.tabs[e])},A.isActiveTab=function(e){return e===A.currentTab},A.alreadyExistsTab=I,A.addContactTab=C,A.addInteractionTab=O,A.addTab=T,A.removeTab=S,A.updateLocalStorage=E,A.closeTab=function(e){var n=i.confirm().title("interaction"===e.type?"Do you want to close the interaction?":"Are you sure want to close the "+e.type+"?").textContent("interaction"===e.type?"":"The "+e.type+" has been modified. Closing will lose all changes!").ariaLabel("Close Contact").ok("interaction"===e.type?"YES":"OK").cancel("interaction"===e.type?"NO":"CANCEL");{if(!e.saved){var t=A.user.voicePause||A.user.chatPause||A.user.mailPause||A.user.openchannelPause||A.user.faxPause,a=!1;return"interaction"===e.type&&(a=e.interaction.Account.mandatoryDisposition),i.show(n).then(function(){"interaction"===e.type&&i.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(r.body),onRemoving:function(e,n){A.user&&a&&!t&&d.user.unpause({id:A.user.id}).$promise.catch(function(e){console.error(e)})},clickOutsideToClose:!a,escapeToClose:!a,locals:{user:A.user,channel:e.channel,interaction:e.interaction}}),S(e)}).catch(function(){"interaction"===e.type&&S(e)})}var a=!1;if(_.forEach(e.calls,function(e){e.mandatoryDisposition&&(a=!0)}),"contact"===e.type&&0<e.calls.length){if(!a)return n._options.textContent="There is a call that hasn't been disposed yet.",i.show(n).then(function(){S(e)});alert=i.alert().title("Warning").textContent("There is a call that hasn't been disposed yet.").ok("OK"),i.show(alert).finally(function(){alert=void 0})}else S(e)}},t.on("trigger:contactmanager",function(n){if(!_.isNil(n.contacts)&&1===n.contacts.length)return void C(n.contact,n.evt);i.show({controller:"ContactSelectionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/contact/selection/dialog.html",parent:angular.element(r.body),locals:{contacts:n.contacts,callNumber:n.evt.routeId?n.evt.destcalleridnum:n.evt.calleridnum}}).then(function(e){C(e,n.evt)})}),t.on("trigger:jscripty",function(t){return d.jscriptyProject.get({id:t.ProjectId}).$promise.then(function(n){if(n){if(!_.isUndefined(t["xmd-contactid"]))return d.cmContact.get({id:t["xmd-contactid"]}).$promise.then(function(e){try{n.formData=Mustache.render(n.formData,_.merge(t,{user:A.user,contact:e}))}catch(e){console.error(e)}T({type:"jscripty",title:n.name,icon:"icon-script",color:"grey",project:n,call:t,contact:e})}).catch(D());try{n.formData=Mustache.render(n.formData,_.merge(t,{user:A.user}))}catch(e){console.error(e)}T({type:"jscripty",title:n.name,icon:"icon-script",color:"grey",project:n,call:t})}}).catch(D())}),t.on("trigger:bot",function(n){var t=n.calleridname&&"<unknown>"!==n.calleridname?n.calleridname:n.calleridnum,a=n.calleridnum;return d.squareMessage.get({fields:"id",limit:1,offset:0,uniqueid:n.uniqueid}).$promise.then(function(e){e.count&&T({type:"bot",title:t+" <"+a+">",icon:"fas fa-robot",color:"pink",data:{uniqueid:n.uniqueid}})})}),t.on("trigger:browser:url",function(e){if(e&&e.uri)if(e.uri=_.replace(e.uri,"<%3B",""),e.uri=_.replace(e.uri,"=>%3B=",""),e.uriLocation)switch(e.uriLocation){case"0":s.open(e.uri);break;case"1":s.open(e.uri,"_blank","width="+(e.windowWidth||"800")+",height="+e.windowHeight||"600");break;case"2":var n={type:"iframe",title:e.uri,icon:"icon-google-earth",color:"blue",src:e.uri};T(n);break;default:s.open(e.uri)}else s.open(e.uri)}),t.on("trigger:browser:popup",function(e){e&&e.html&&T({type:"popup",title:e.calleridnum||"popup",icon:"icon-tablet",color:"grey",html:e.html})}),t.on("notification:save",function(e){if(e&&e.uniqueid){t=e,h.isSupported()?h.requestPermission().then(function(){var e,n;n={autoClose:!0,duration:10,showOnPageHidden:!0,icon:"../../../../../../../assets/images/avatars/customer.png",body:(e=t).queue?"Queue: "+e.queue:"",focusOnclick:!0,closeOnClick:!0},h.show(e.title,n)},function(e){console.error("Please enable browser notifications!",e)}):console.error("Browser notifications are not supported by the browser. Normal notifications will be used.");var n=I(e);if(n){if(d[e.channel+"Message"])return A.currentTab!==n.id&&(n.badges+=1),d[e.channel+"Message"].accept({id:e.id,UserId:A.user.id}).$promise.catch(D())}else a.wait({title:e.title,msg:e.msg||"",showClose:!1,clickToClose:!1,timeout:!1,sound:e.sound,html:!0,shake:e.shake||!1,onAdd:function(){A.notifications[e.uniqueid]=this.id},onAccept:function(){if(w(e),d[e.channel+"Message"])return d[e.channel+"Message"].accept({id:e.id,UserId:A.user.id,manual:!0}).$promise.then(function(e){O(e.channel,e.interaction),a.success({title:"Message properly accepted!",msg:"Message has been accepted!"})}).catch(D())},onReject:function(){if(w(e),d[e.channel+"Message"])return d[e.channel+"Message"].reject({id:e.id,UserId:A.user.id}).$promise.then(function(e){a.success({title:"Message properly rejected!",msg:"Message has been rejected!"})}).catch(D())}})}var t}),t.on("notification:remove",w),t.on("voice_queue_channel:remove",R),t.on("voice_outbound_channel:remove",R),function(){var e=s.localStorage.getItem("motion2.user:"+A.user.id);if(e)try{e=JSON.parse(e),A.tabs=e.tabs?e.tabs:{},A.currentTab=e.currentTab?e.currentTab:0,A.autoClose=!!e.autoClose&&e.autoClose,y(A.tabs[A.currentTab])}catch(e){console.error(e)}}(),e.$on("$destroy",function(){for(var e in A.notifications)A.notifications.hasOwnProperty(e)&&w({uniqueid:e});t.removeAllListeners("trigger:contactmanager"),t.removeAllListeners("trigger:jscripty"),t.removeAllListeners("trigger:browser:url"),t.removeAllListeners("trigger:browser:popup"),t.removeAllListeners("notification:save"),t.removeAllListeners("notification:remove"),t.removeAllListeners("voice_queue_channel:remove"),t.removeAllListeners("voice_outbound_channel:remove")})}e.$inject=["$scope","$mdDialog","$window","$translate","$document","$timeout","Auth","api","socket","toasty","globalUserLists","globalLists","globalCompanies","globalTags","license","setting","desktopNotification","msUtils","privacyManager"],angular.module("app.dashboards").controller("AgentDashboardGeneralController",e)}(),function(){"use strict";angular.module("app.dashboards").provider("desktopNotification",function(){var f={autoClose:!0,duration:5,showOnPageHidden:!1};return{config:function(e){for(var n in e)f.hasOwnProperty(n)&&null!=e[n]&&(f[n]=e[n])},$get:["$q","$timeout","$window","PERMISSIONS",function(e,u,n,p){var g=n.Notification||n.mozNotification||n.webkitNotification;return{isSupported:v,currentPermission:h,requestPermission:function(){if(!v())return e.reject("Notification API not supported");var t=e.defer();Promise.resolve(g.requestPermission)==g.requestPermission?g.requestPermission().then(function(e){p.GRANTED===e?t.resolve(e):t.reject(e)}):g.requestPermission(function(e,n){p.GRANTED===e?t.resolve(e):t.reject(e)});return t.promise},show:function(e,n){if(n=n||{},!v()||(t=e,a=n,i=angular.isString(t),s=!a.onClick||angular.isFunction(a.onClick),!i||!s)||function(e){if(e||f.showOnPageHidden)return!(window.document.hidden||window.document.mozHidden||window.document.webkitHidden)}(n.showOnPageHidden)||h()!==p.GRANTED)return;var t,a,i,s;var o=new g(e,n),r=n.duration||f.duration,l=void 0===n.autoClose?f.autoClose:n.autoClose;o.onclick=function(){n.onClick&&n.onClick(),n.focusOnclick&&window.focus(),n.closeOnClick&&o.close()},l&&(d=o,c=r,m=1e3*c,u(d.close.bind(d),m,!1));var d,c,m;return o},permissions:{default:p.DEFAULT,granted:p.GRANTED,denied:p.DENIED}};function v(){return!(void 0===g)}function h(){return(g||{}).permission}}]}}).provider("msNavigationAgentService",function(){var r=angular.injector(["ng"]).get("$log"),l=[];function n(e,n){if(angular.isString(e)){for(var t=e.split("."),a=t[t.length-1],i=function(e){var n=l;if(1===e.length)return n;e.pop();for(var t=0;t<e.length;t++){for(var a=e[t],i=!0,s=0;s<n.length;s++)if(n[s]._id===a){n=n[s].children,i=!1;break}if(i){var o={_id:a,_path:e.join("."),title:a,weight:1,children:[]};n.push(o),n=o.children}}return n}(t),s=!1,o=0;o<i.length;o++)if(i[o]._id===a){s=i[o];break}s?(angular.extend(s,n),s.uisref=d(s)):(n.children=[],!angular.isUndefined(n.weight)&&angular.isNumber(n.weight)||(n.weight=1),n._id=a,n._path=e,n.uisref=d(n),i.push(n))}else r.error("path must be a string (eg. `dashboard.project`)")}function d(e){var n="";return angular.isDefined(e.state)&&(n=e.state,angular.isDefined(e.stateParams)&&angular.isObject(e.stateParams)&&(n=n+"("+angular.toJson(e.stateParams)+")")),n}this.saveItem=n,this.deleteItem=function(e){if(!angular.isString(e))return void r.error("path must be a string (eg. `dashboard.project`)");for(var n=l,t=e.split("."),a=0;a<t.length;a++)for(var i=t[a],s=0;s<n.length;s++)if(n[s]._id===i){if(n[s]._path===e)return n.splice(s,1),!0;n=n[s].children;break}return!1},this.$get=function(){var e={saveItem:n,getNavigation:function(e){if(e){for(var n=0;n<l.length;n++)if(l[n]._id===e)return[l[n]];return null}return l}};return e}}).constant("PERMISSIONS",{DEFAULT:"default",GRANTED:"granted",DENIED:"denied"})}(),function(){"use strict";function e(t){var a=this;a.setting={},a.messages={count:0,rows:[]},a.showInteraction=!1,a.init=function(e,n){{if(a.setting=n,a.tab=e,a.tab.saved=!0,a.tab&&a.tab.data&&a.tab.data.uniqueid)return t.squareMessage.get({uniqueid:a.tab.data.uniqueid}).$promise.then(function(e){a.messages=e}).finally(function(){a.showInteraction=!0});a.showInteraction=!0}},a.getMessagesAlignment=function(e){switch(a.setting.messagesAlignment){case"left":return"in"==e.direction?e.direction:"out-left-aligned";case"right":return"in"==e.direction?"in-right-aligned":e.direction;default:return e.direction}}}e.$inject=["api"],angular.module("app.dashboards").controller("AgentGeneralBotController",e)}(),function(){"use strict";function e(a,d,c,t,m,i,u,p,s,o,e,r,n,l){var g=this;function v(){g.errors=[],u.cmContact.save(g.contact).$promise.then(function(e){g.contact.id=e.id,g.newContact=!1;var n=e.firstName||e.phone;return g.tab.title=g.user.privacyEnabled?l.mask(n):n,g.tab.contact=g.contact,u.user.addContacts({id:s.getCurrentUser().id,ids:[e.id]})}).then(function(){g.detailForm.$pristine=!0,g.customFieldsForm.$pristine=!0,p.success({title:"Contact properly created",msg:g.contact.firstName?g.contact.firstName+" has been created!":""})}).then(function(){return u.cmContact.setTags({id:g.contact.id,ids:g.tab.Tags}).$promise}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.contact.save"}];for(var n=0;n<e.data.errors.length;n+=1)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contact.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function h(n){return function(e){g[n]=e||{count:0,rows:[]}}}function f(){g.contact&&g.contact.id&&(g.queryHopper.ContactId=g.contact.id,g.queryHopper.offset=(g.queryHopper.page-1)*g.queryHopper.limit,g.promise=u.cmHopper.get(g.queryHopper,h("hoppers")).$promise)}function b(){g.contact&&g.contact.id&&(g.queryFinal.ContactId=g.contact.id,g.queryFinal.offset=(g.queryFinal.page-1)*g.queryFinal.limit,g.promise=u.cmHopperFinal.get(g.queryFinal,h("finals")).$promise)}function A(){g.contact&&g.contact.id&&(g.queryHistory.ContactId=g.contact.id,g.queryHistory.offset=(g.queryHistory.page-1)*g.queryHistory.limit,g.promise=u.cmHopperHistory.get(g.queryHistory,h("histories")).$promise)}function E(e){return null===e?void 0:new Date(e)}function y(e){g.journeyIsLoading=!0;var n=_.merge(g.journeyOptions,{id:g.contact.id,offset:e||0});return r.get(g.journey,n).then(function(e){g.journey=e.journey,g.canLoadMoreJourney=e.loadMore}).finally(function(){g.journeyIsLoading=!1})}g.user=s.getCurrentUser(),g.detectBrowser=e.detectBrowser(),g.journey=[],g.queryHopper={fields:"id,phone,scheduledat",sort:"-updatedAt",limit:10,page:1},g.queryFinal={fields:"uniqueid,calleridnum,statedesc,starttime,disposition,secondDisposition,thirdDisposition",sort:"-updatedAt",limit:10,page:1},g.queryHistory={fields:"uniqueid,calleridnum,statedesc,scheduledat,starttime,endtime",sort:"-updatedAt",limit:10,page:1},g.hoppers={rows:[],count:0},g.finals={rows:[],count:0},g.histories={rows:[],count:0},g.journeyOptions=r.getQuery(),g.quickFilters=r.getQuickFilters(),g.addNewContact=v,g.saveContact=function(){g.errors=[],u.cmContact.update({id:g.contact.id},g.contact).$promise.then(function(e){var n=e.firstName||e.phone;return g.tab.title=g.user.privacyEnabled?l.mask(n):n,g.tab.contact=g.contact,m.$parent.vm.updateLocalStorage(),u.user.addContacts({id:s.getCurrentUser().id,ids:[e.id]})}).then(function(){return u.cmContact.setTags({id:g.contact.id,ids:g.tab.Tags}).$promise}).then(function(){g.detailForm.$pristine=!0,g.customFieldsForm.$pristine=!0,p.success({title:"Contact properly updated!",msg:g.contact.name?g.contact.name+" has been updated!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.contact.save"}];for(var n=0;n<e.data.errors.length;n+=1)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contact.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.getCustomFields=function(e){return u.cmList.getCustomFields({id:e}).$promise.then(function(e){g.tab.customFields=e}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"LIST:GETCustomFields",msg:e.data?JSON.stringify(e.data):e.toString()})})},g.call=m.$parent.vm.call,g.disposeCall=function(e,i){if(g.newContact)return void p.error({title:"ATTENTION",msg:"Please save the contact before disposing!"});d.show({controller:"DisposeCallDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/contact/dispose/dialog.html",parent:angular.element(c.body),targetEvent:i,clickOutsideToClose:!i.mandatoryDisposition,escapeToClose:!i.mandatoryDisposition,resolve:{globalDispositions:["apiResolver",function(e){return e.resolve("disposition@get",{MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0})}]},onRemoving:function(e,n){g.user&&i.mandatoryDisposition&&u.user.unpause({id:g.user.id}).$promise.catch(function(e){console.error(e)})},locals:{dispositions:g.tab.dispositions,contact:g.contact,call:i,availableCalls:g.tab.calls.length,autoClose:m.$parent.vm.autoClose}}).then(function(e){var n=e[0];for(var t in m.$parent.vm.autoClose=e[1],n&&("BLACKLIST"===n?p.success({title:o.instant("DASHBOARDS.INFO"),msg:o.instant("DASHBOARDS.CALL_DISPOSED")+" "+n}):"RECALLME"===n||"RESCHEDULE"===n||p.success({title:o.instant("DASHBOARDS.INFO"),msg:o.instant("DASHBOARDS.CALL_SAVED")})),m.$parent.$parent.$parent.vm.tabs)if(m.$parent.$parent.$parent.vm.tabs.hasOwnProperty(t)){var a=m.$parent.$parent.$parent.vm.tabs[t];_.remove(a.calls,function(e){return e.uniqueid===i.uniqueid})}0===g.tab.calls.length&&m.$parent.vm.autoClose&&m.$parent.vm.removeTab(g.tab),m.$parent.vm.updateLocalStorage()})},g.checkCallStatus=function(n){return g.checkingCallStatus=!0,u.voiceCallReport.get({uniqueid:n.uniqueid}).$promise.then(function(e){e&&0<e.rows.length&&(n.disposedAt=_.first(e.rows).endtime)}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"VOICE_CALL_REPORT:GET",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){g.checkingCallStatus=!1})},g.duplicateContact=function(e){d.show({controller:"DuplicateContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/duplicate/dialog.html",parent:angular.element(c.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:g.contact.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:s.getCurrentUser().id,fields:"id,name"})}]},locals:{contacts:[]}})},g.mergeContact=function(e){d.show({controller:"MergeContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/merge/dialog.html",parent:angular.element(c.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:g.contact.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:s.getCurrentUser().id,fields:"id,name"})}]},locals:{contacts:[]}}).then(function(e){if(e){for(var n in m.$parent.$parent.$parent.vm.tabs)if(m.$parent.$parent.$parent.vm.tabs.hasOwnProperty(n)){var t=m.$parent.$parent.$parent.vm.tabs[n];t&&t.contact&&(e.from&&e.from.id&&e.from.id===t.contact.id&&m.$parent.$parent.$parent.vm.removeTab(t),e.to&&e.to.id&&e.to.id===t.contact.id&&m.$parent.$parent.$parent.vm.removeTab(t))}e.new&&m.$parent.$parent.$parent.vm.addContactTab(e.new)}})},g.getDateFromString=E,g.addJscriptyTab=function(e){try{e.formData=Mustache.render(e.formData,{contact:g.contact,user:g.user})}catch(e){console.error(e)}try{m.$parent.$parent.$parent.vm.addTab({type:"jscripty",title:e.name,icon:"icon-script",color:"grey",project:e,contact:g.contact})}catch(e){p.error({title:"ERROR OPENING JSCRIPTY PROJECT",msg:"The project cannot be started"+JSON.stringify(e)})}},g.getHoppers=f,g.getFinals=b,g.getHistories=A,g.getJscriptyProjects=function(){if(g.jscriptyProjects)return;return g.loadingJscriptyProjects=!0,u.jscriptyProject.get({fields:"createdAt,updatedAt,id,name,description,createdAt,formData,enableUncompleteSave",sort:"-updatedAt",nolimit:!0}).$promise.then(function(e){g.jscriptyProjects=e||{count:0,rows:[]}}).catch(function(){p.error({title:o.instant("JSCRIPTY.JSCRIPTY"),msg:o.instant("CONTACTMANAGER.NOTIFICATIONS.JSCRIPTY_GET_ERROR")})}).finally(function(){g.loadingJscriptyProjects=!1})},g.getAccounts=function(n){if(g[n+"Accounts"])return;var e="get"+_.startCase(n)+"Accounts";return g.loadingAccounts=!0,u.user[e]({id:g.user.id,attributes:["id","name"],nolimit:!0}).$promise.then(function(e){g[n+"Accounts"]=e||{count:0,rows:[]}}).catch(function(){p.error({title:o.instant(n.toUpperCase()+"."+n.toUpperCase()+"ACCOUNTS"),msg:o.instant("CONTACTMANAGER.NOTIFICATIONS.ACCOUNTS_GET_ERROR",{channel:o.instant("DASHBOARDS."+n.toUpperCase())})})}).finally(function(){g.loadingAccounts=!1})},g.composeInteraction=function(e,o,r,n){var l=o.toLowerCase();d.show({controller:"Compose"+o+"InteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/"+o.toLowerCase()+"/dialog.html",parent:angular.element(c.body),clickOutsideToClose:!1,locals:{account:r,message:{to:"mail"==l?n:n.split(",")},type:"new",interaction:{Contact:g.contact}},fullscreen:!0}).then(function(s){if(!s||_.isNil(s.message)||!s.message.savedAsDraft)return u[l+"Account"].send({id:r.id},s).$promise.then(function(e){if("Mail"===o){var n=e;if(n&&n.Messages&&n.Messages.length){if(s.attachments&&s.attachments.length)for(var t=0;t<s.attachments.length;t+=1)u.attachment.update({id:s.attachments[t].id},{MailMessageId:_.head(n.Messages).id});if(p.success({title:"Message properly sent!",msg:"Message has been sent!"}),n.closed){n.disposition=null;var a=!r.mandatoryDisposition,i=g.user.voicePause||g.user.chatPause||g.user.mailPause||g.user.openchannelPause||g.user.faxPause;d.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(c.body),onRemoving:function(e,n){g.user&&r.mandatoryDisposition&&!i&&u.user.unpause({id:g.user.id}).$promise.catch(function(e){console.error(e)})},clickOutsideToClose:a,escapeToClose:a,locals:{user:g.user,channel:"mail",interaction:n}})}else m.$parent.vm.addInteractionTab("mail",n)}}else p.success({title:"Message properly sent!",msg:"Message has been sent!"}),m.$parent.vm.addInteractionTab(l,e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else"fax"===l?p.error({title:"FAX:SEND",msg:e.data?JSON.stringify(e.data):e.message||e.toString()}):p.error({title:e.status?"API:"+e.status+" - "+e.statusText:o.toUpperCase()+"ACCOUNT:SEND",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})});var e={type:"draft",channel:"mail",account:r,contact:g.contact,id:g.tab.id,openedAt:new Date,saved:!1,title:r.key+" - Untitled",content:s.message},n=a.localStorage.getItem("motion2.home.mail:"+g.user.id);if(n){var t=JSON.parse(n);t.drafts||(t.drafts={}),n=t}else n={drafts:{}};n.drafts[g.tab.id]=e,a.localStorage.setItem("motion2.home.mail:"+g.user.id,JSON.stringify(n))})},g.init=function(n,e){return g.tab=n,m.$watchGroup(["vm.detailForm.$pristine","vm.customFieldsForm.$pristine"],function(e){g.tab.saved=e[0]&&e[1]}),g.license=e,g.contact=g.tab.contact,g.newContact=!1,g.currentTab=0,u.user.get({fields:"id,fullname",nolimit:!0}).$promise.then(function(e){g.users=e||{count:0,rows:[]},g.usersMap=_.mapValues(_.keyBy(g.users.rows,"id"),"fullname")}).then(function(){for(var e=[],n=0;n<g.tab.calls.length;n++){var t=g.tab.calls[n];e.push(u.voiceCallReport.get({uniqueid:t.uniqueid}).$promise.then(function(e){e&&0<e.rows.length&&(t.disposedAt=_.first(e.rows).endtime)}))}return i.all(e)}).then(function(){return u.user.getLists({id:g.user.id,nolimit:!0}).$promise}).then(function(e){if(g.lists=e||{count:0,rows:[]},g.contact&&g.contact.ListId){if(g.list=_.find(g.lists.rows,{id:g.contact.ListId}),g.list)return;return u.cmList.get({id:g.contact.ListId}).$promise.then(function(e){e&&(g.list=e,g.lists.rows=_.unionBy(g.lists.rows,[g.list]))})}}).then(function(){if(g.contact&&g.contact.id){var e={id:g.contact.id,ListId:g.contact.ListId,limit:1,offset:0,sort:"-updatedAt"};return u.cmContact.get(e).$promise.then(function(e){return g.contact=e,g.tab.contact=e,u.user.addContacts({id:g.user.id,ids:[g.contact.id]})}).then(function(){if(g.contact.ListId)return u.disposition.get({ListId:g.contact.ListId,nolimit:!0}).$promise.then(function(e){return g.tab.dispositions=e,u.cmList.getCustomFields({id:g.contact.ListId,nolimit:!0}).$promise}).then(function(e){g.tab.customFields=e})}).then(function(){try{g.tab.companies=m.$parent.$parent.$parent.vm.globalCompanies,g.tab.tags=m.$parent.$parent.$parent.vm.globalTags,g.tab.autoCreate=0}catch(e){}f(),b(),A()}).then(function(){return u.cmContact.getTags({id:g.contact.id}).$promise.then(function(e){g.tab.Tags=_.map(e.rows,"id")})})}return g.newContact=!0,n.autoCreate?v():void 0}).finally(function(){g.contact&&g.contact.id&&(y(),g.contact.dateOfBirth=E(g.contact.dateOfBirth))})},g.hasPermission=function(e){return s.hasPermission(e)},g.openInteraction=function(e){try{return m.$parent.$parent.$parent.vm.addInteractionTab(e.channel,e)}catch(e){p.error({title:o.instant("CONTACTMANAGER.CUSTOMER_JOURNEY"),msg:o.instant("CONTACTMANAGER.NOTIFICATIONS.INTERACTION_OPEN_ERROR")})}},g.getCustomerJourney=y,g.loadMoreJourney=function(){return i(function(e,n){var t=g.journey.length;return e(y(t))})},m.$on("$destroy",function(){}),m.$watch("currentTab",function(e,n){1===g.currentTab&&(f(),b(),A())});var S=!0,T=1;m.$watch("queryHopper.filter",function(e,n){S?t(function(){S=!1}):(n||(T=g.queryHopper.page),e!==n&&(g.queryHopper.page=1),e||(g.queryHopper.page=T),f())}),m.$watch("queryFinal.filter",function(e,n){S?t(function(){S=!1}):(n||(T=g.queryFinal.page),e!==n&&(g.queryFinal.page=1),e||(g.queryFinal.page=T),b())}),m.$watch("queryHistory.filter",function(e,n){S?t(function(){S=!1}):(n||(T=g.queryHistory.page),e!==n&&(g.queryHistory.page=1),e||(g.queryHistory.page=T),A())})}e.$inject=["$window","$mdDialog","$document","$timeout","$scope","$q","api","toasty","Auth","$translate","msUtils","customerJourneyManager","draftManager","privacyManager"],angular.module("app.dashboards").controller("AgentGeneralContactController",e)}(),function(){"use strict";function e(n,i,s,o,e,t,a,r,l,d,c,m){var u=this;function p(){var e=u.selectedDisposition?u.selectedDisposition.name.toLowerCase():void 0;return{id:u.call.uniqueid,disposition:u.firstLevelDisposition?u.firstLevelDisposition.name:null,secondDisposition:u.secondLevelDisposition?u.secondLevelDisposition.name:null,thirdDisposition:u.thirdLevelDisposition?u.thirdLevelDisposition.name:null,dispositionat:moment(),amd:"amd"===e,fax:"fax"===e,blacklist:"blacklist"===e,recallme:"recallme"===e,UserId:"recallme"===e?l.getCurrentUser().id:null,OwnerId:l.getCurrentUser().id}}function g(e){n.hide([e,u.autoClose])}u.isReschedule=!1,u.recallme=!1,u.queueCampaign=void 0,u.queueCampaigns={count:0,rows:[]},u.dispositions=_.orderBy(_.concat([],e.rows,t.rows),["name"],["asc"]),u.contact=r,u.call=a,u.note=u.call.note||void 0,u.dialerCall=!1,u.hasBlackLists=!1,u.availableCalls=c,u.autoClose=m,u.hopper={minDate:new Date,dateTime:new Date},u.call&&u.call.variables&&u.call.variables["xmd-voicequeueid"]?(u.dialerCall=!0,o.voiceQueue.getBlackLists({id:u.call.variables["xmd-voicequeueid"]}).$promise.then(function(e){e&&e.rows&&0<e.rows.length&&(u.hasBlackLists=!0)}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.getBlackLists",msg:e.data?JSON.stringify(e.data):e.toString()})})):o.user.getQueues({id:l.getCurrentUser().id,fields:"id,name,dialActive",channel:"voice",type:"outbound",nolimit:!0}).$promise.then(function(e){u.queueCampaigns=e||{count:0,rows:[]}}).catch(function(e){console.error(e)}),u.onDispositionChange=function(e){switch(e){case"first":u.selectedDisposition=u.firstLevelDisposition,u.anySecondLevelDisposition=_.some(u.dispositions,["ParentId",u.firstLevelDisposition.id]),u.secondLevelDisposition=void 0,u.thirdLevelDisposition=void 0,u.anyThirdLevelDisposition=!1;break;case"second":u.selectedDisposition=u.secondLevelDisposition,u.anyThirdLevelDisposition=_.some(u.dispositions,["ParentId",u.secondLevelDisposition.id]);break;case"third":u.selectedDisposition=u.thirdLevelDisposition}},u.clearDispositionSelection=function(e){"second"===e?(u.secondLevelDisposition=void 0,u.thirdLevelDisposition=void 0,u.selectedDisposition=u.firstLevelDisposition):"third"===e&&(u.thirdLevelDisposition=void 0,u.selectedDisposition=u.secondLevelDisposition)},u.saveDisposition=function(e){u.selectedDisposition=_.isNil(e)?u.selectedDisposition:{name:e},e&&(u.firstLevelDisposition=u.selectedDisposition);u.call.note=u.note,o.voiceCallReport.update({id:u.call.uniqueid,userDisposition:u.firstLevelDisposition?u.firstLevelDisposition.name:null,userSecondDisposition:u.secondLevelDisposition?u.secondLevelDisposition.name:null,userThirdDisposition:u.thirdLevelDisposition?u.thirdLevelDisposition.name:null,note:u.note,UserId:l.getCurrentUser().id,ContactId:u.contact.id}).$promise.catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEVOICECALLREPORT",msg:e.data?JSON.stringify(e.data):e.toString()})}),o.voiceRecording.get({uniqueid:u.call.uniqueid}).$promise.then(function(e){if(e)for(var n=0;n<e.rows.length;n+=1)o.voiceRecording.update({id:e.rows[n].id,userDisposition:u.firstLevelDisposition?u.firstLevelDisposition.name:null,userSecondDisposition:u.secondLevelDisposition?u.secondLevelDisposition.name:null,userThirdDisposition:u.thirdLevelDisposition?u.thirdLevelDisposition.name:null}).$promise.catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEVOICERECORDING",msg:e.data?JSON.stringify(e.data):e.toString()})})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEVOICERECORDING",msg:e.data?JSON.stringify(e.data):e.toString()})}),u.dialerCall&&(o.cmHopperFinal.update(p()).$promise.catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATECMHOPPERFINAL",msg:e.data?JSON.stringify(e.data):e.toString()})}),o.cmHopperHistory.update(p()).$promise.catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATECMHOPPERHISTORY",msg:e.data?JSON.stringify(e.data):e.toString()})}));if(_.isNil(u.selectedDisposition))g(u.selectedDisposition?u.selectedDisposition.name.toUpperCase():"");else switch(u.selectedDisposition.name.toLowerCase()){case"blacklist":u.call&&u.call.variables&&u.call.variables["xmd-voicequeueid"]&&function(e){if(e)o.voiceQueue.getBlackLists({id:e,type:"outbound",fields:"id"}).$promise.then(function(e){var n=[];if(e&&0<e.count){for(var t=0;t<e.rows.length;t+=1){var a=angular.copy(u.contact);delete a.id,a.ListId=e.rows[t].id,n.push(o.cmContact.save(a).$promise)}return i.all(n)}s.success({title:d.instant("DASHBOARDS.INFO"),msg:d.instant("DASHBOARDS.NOTAVAILABLE")+" "+u.selectedDisposition}),u.selectedDisposition=void 0}).then(function(e){e&&g(u.selectedDisposition?u.selectedDisposition.name.toUpperCase():"")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEBLACKLIST",msg:e.data?JSON.stringify(e.data):e.toString()}),g(u.selectedDisposition?u.selectedDisposition.name.toUpperCase():"")})}(u.call.variables["xmd-voicequeueid"]);break;case"reschedule":u.isReschedule=!0,u.recallme=!1;break;case"recallme":u.isReschedule=!0,u.recallme=!0;break;default:g(u.selectedDisposition?u.selectedDisposition.name.toUpperCase():"")}},u.closeDialog=function(){n.cancel()},u.saveReschedule=function(){return u.disable=!0,o.cmHopper.save({phone:u.contact.phone,UserId:u.recallme?l.getCurrentUser().id:null,ContactId:u.contact.id,ListId:u.contact.ListId,VoiceQueueId:u.dialerCall?Number(u.call["xmd-voicequeueid"]):u.queueCampaign?u.queueCampaign.id:null,scheduledat:moment(u.hopper.dateTime).format("YYYY-MM-DD HH:mm:ss"),priority:3,recallme:u.recallme,OwnerId:l.getCurrentUser().id}).$promise.then(function(){u.dialerCall&&o.cmHopperFinal.update({id:u.call.uniqueid,rescheduled:!0,rescheduledat:moment(u.hopper.dateTime).format("YYYY-MM-DD HH:mm:ss"),recallme:u.recallme}).$promise.catch(function(e){console.log(e)})}).then(function(){s.success({title:d.instant("DASHBOARDS.INFO"),msg:d.instant("DASHBOARDS.CALL_DISPOSED")+" "+(u.recallme?d.instant("DASHBOARDS.RECALLME"):d.instant("DASHBOARDS.RESCHEDULE"))})}).catch(function(e){g(u.selectedDisposition?u.selectedDisposition.name.toUpperCase():"")}).finally(function(){u.disable=!1,g(u.selectedDisposition?u.selectedDisposition.name.toUpperCase():"")})}}e.$inject=["$mdDialog","$q","toasty","api","dispositions","globalDispositions","call","contact","Auth","$translate","availableCalls","autoClose"],angular.module("app.staff").controller("DisposeCallDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.call=l,u.contact=r,u.hopper={minDate:new Date,dateTime:new Date},u.closeDialog=function(){a.cancel()},u.saveDialog=function(){return u.disable=!0,o.cmHopper.save({phone:u.contact.phone,UserId:c?d.getCurrentUser().id:null,ContactId:u.contact.id,ListId:u.contact.ListId,VoiceQueueId:Number(u.call["xmd-voicequeueid"]),scheduledat:moment(u.hopper.dateTime).format("YYYY-MM-DD HH:mm:ss"),priority:3,recallme:c,OwnerId:d.getCurrentUser().id}).$promise.then(function(){o.cmHopperFinal.update({id:u.call.uniqueid,rescheduled:!0,rescheduledat:moment(u.hopper.dateTime).format("YYYY-MM-DD HH:mm:ss"),recallme:c}).$promise}).then(function(){s.success({title:m.instant("DASHBOARDS.INFO"),msg:m.instant("DASHBOARDS.CALL_DISPOSED")+" "+(c?m.instant("DASHBOARDS.RECALLME"):m.instant("DASHBOARDS.RESCHEDULE"))}),a.hide()}).catch(function(e){a.cancel(e)}).finally(function(){u.disable=!1})}}e.$inject=["$scope","$state","$location","$mdDialog","$timeout","toasty","api","contact","call","Auth","recallme","$translate"],angular.module("app.staff").controller("RescheduleCallDialogController",e)}(),function(){"use strict";function e(e,a,n,t,i,s){var o=this;o.callNumber=i,o.page=1,o.onInit=function(){n.cmList.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){o.lists=_.chain(e.rows).keyBy("id").mapValues("name").value(),n.cmCustomField.get({fields:"id,alias",nolimit:!0}).$promise.then(function(e){o.customFields=e.rows,o.contacts=_.map(t,function(t){return Object.keys(t).forEach(function(e){if(Number(t[e])===Number(o.callNumber))if(e.startsWith("cf_")){var n=_.find(o.customFields,["id",Number(_.trimStart(e,"cf_"))]);t.matchingField=n?n.alias:a.instant("DASHBOARDS.UNKNOWN")}else t.matchingField=e}),t})})}).then(function(){o.paginatedContacts=_.chunk(t,4)}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmList.get",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},o.selectContact=function(){e.hide(o.selectedContact)}}e.$inject=["$mdDialog","$translate","api","contacts","callNumber","toasty"],angular.module("app.dashboards").controller("ContactSelectionController",e)}(),function(){"use strict";function e(e,n){var t=n(function(){},999);e.$on("$destroy",function(){t&&(n.cancel(t),t=null)})}e.$inject=["$scope","$interval"],angular.module("app.dashboards").controller("AgentHomeAbandonedController",e)}(),function(){"use strict";function e(e,n,a,i,t,s,o,r,l,d){var c=this;function m(){return o.disposition.get({fields:"createdAt,updatedAt,id,name,level,ParentId",sort:"name",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0}).$promise.then(function(e){return c.dispositions=e?e.rows:[],o.user.getQueues({id:r.getCurrentUser().id,fields:"id,name",channel:"voice",type:"outbound",nolimit:!0}).$promise}).then(function(e){c.queues=e||{count:0,rows:[]},c.queuesMap=_.mapValues(_.keyBy(c.queues.rows,"name"),"name"),c.defaultQueues=c.queues.rows?_.map(c.queues.rows,"name").join(","):void 0}).then(function(){c.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Agent",key:"lastAssignedTo",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:c.currentUser.name,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}],ngValue:"name"},{name:"Campaign",key:"queue",type:"multiselect",label:"DASHBOARDS.SELECT_CAMPAIGN",options:c.queues.rows,ngValue:"name",clearAll:!1}]}).catch(function(e){console.log(e)}).finally(function(){var e=t.localStorage.getItem("motion2.home.abandoned.bull.calls:"+c.currentUser.id);if(e)(e=JSON.parse(e)).query&&(c.query=_.merge(e.query,c.query));else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()};c.query.createdAt=n}c.isSearchBarVisible=!!c.query.filter,u()})}function u(){c.query.queue=c.query.queue||c.defaultQueues.split(","),c.query.offset=(c.query.page-1)*c.query.limit;var e={query:c.query};t.localStorage.setItem("motion2.home.abandoned.bull.calls:"+c.currentUser.id,JSON.stringify(e)),c.promise=o.voiceQueueReport.getVoiceQueuesReport(c.query,p).$promise}function p(e){c.abandonedCalls=e||{count:0,rows:[]},c.refresh=!0}c.showTooltip=!1,c.refresh=!0,c.disable=[],c.dispositions={count:0,rows:[]},c.currentUser=r.getCurrentUser(),c.queues={},c.abandonedCalls={count:0,rows:[]},c.query={fields:"id,type,calleridnum,calleridname,queue,queuecallerabandonAt,queuecallerexitAt,queuecallerexitreason,assigned,lastAssignedTo,updatedAt,disposition,secondDisposition,thirdDisposition",type:"outbound",queuecallerexitreason:"TIMEOUT,ABANDONED",sort:"-updatedAt",limit:10,page:1},c.getAbandonedCalls=u,c.refreshAbandonedCalls=function(){c.showTooltip=!1,u()},c.onInit=m,c.reserved=function(e){e&&(c.disable[e.id]=!0,o.voiceQueueReport.update({id:e.id,lastAssignedTo:e.assigned?c.currentUser.name:null,assigned:e.assigned}).$promise.catch(function(e){console.log(e)}).finally(function(){c.disable[e.id]=!1,e.lastAssignedTo=e.assigned?c.currentUser.name:null}))},c.dispose=function(t){a.show({controller:"DisposeAbandonedCallDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/home/abandoned/dispose/dialog.html",parent:angular.element(i.body),targetEvent:t,locals:{dispositions:c.dispositions,call:t}}).then(function(e){if(e){c.disable[t.id]=!0;var n={id:t.id,lastAssignedTo:t.assigned?c.currentUser.name:null,assigned:t.assigned,disposition:e.firstLevel||null,secondDisposition:e.secondLevel||null,thirdDisposition:e.thirdLevel||null};o.voiceQueueReport.update(n).$promise.catch(function(e){console.log(e)}).finally(function(){c.disable[t.id]=!1,t.disposition=e.firstLevel,t.secondDisposition=e.secondLevel,t.thirdDisposition=e.thirdLevel})}})},c.call=e.$parent.$parent.$parent.$parent.vm.call,c.transfer=e.$parent.$parent.$parent.$parent.vm.transfer,c.webcall=e.$parent.$parent.$parent.$parent.vm.webcall,c.webtransfer=e.$parent.$parent.$parent.$parent.vm.webtransfer,l.onWithoutApply("voiceQueueReport:save",function(e){c.queuesMap&&"outbound"===e.type&&c.queuesMap[e.queue]&&(c.showTooltip=!0)}),l.onWithoutApply("voiceQueueReport:update",function(e){if(e){var n=_.findIndex(c.abandonedCalls.rows,["id",e.id]);0<=n&&_.merge(c.abandonedCalls.rows[n],e)}}),m(),e.$on("$destroy",function(){l.removeAllListeners("voiceQueueReport:save"),l.removeAllListeners("voiceQueueReport:update")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeAbandonedBullController",e)}(),function(){"use strict";function e(n,e,t){var a=this;a.dispositions=e,a.call=t,a.note=a.call.note||void 0,a.onDispositionChange=function(e){switch(e){case"first":a.selectedDisposition=a.firstLevelDisposition,a.anySecondLevelDisposition=_.some(a.dispositions,["ParentId",a.firstLevelDisposition.id]),a.secondLevelDisposition=void 0,a.thirdLevelDisposition=void 0,a.anyThirdLevelDisposition=!1;break;case"second":a.selectedDisposition=a.secondLevelDisposition,a.anyThirdLevelDisposition=_.some(a.dispositions,["ParentId",a.secondLevelDisposition.id]);break;case"third":a.selectedDisposition=a.thirdLevelDisposition}},a.clearDispositionSelection=function(e){"second"===e?(a.secondLevelDisposition=void 0,a.thirdLevelDisposition=void 0,a.selectedDisposition=a.firstLevelDisposition):"third"===e&&(a.thirdLevelDisposition=void 0,a.selectedDisposition=a.secondLevelDisposition)},a.saveDisposition=function(){a.call.note=a.note;var e={firstLevel:a.firstLevelDisposition?a.firstLevelDisposition.name:void 0,secondLevel:a.secondLevelDisposition?a.secondLevelDisposition.name:void 0,thirdLevel:a.thirdLevelDisposition?a.thirdLevelDisposition.name:void 0};n.hide(e)},a.closeDialog=function(){n.cancel()}}e.$inject=["$mdDialog","dispositions","call"],angular.module("app.dashboards").controller("DisposeAbandonedCallDialogController",e)}(),function(){"use strict";function e(e,n,a,i,t,s,o,r,l,d){var c=this;function m(){return o.disposition.get({fields:"createdAt,updatedAt,id,name,level,ParentId",sort:"name",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0}).$promise.then(function(e){return c.dispositions=e?e.rows:[],o.user.getQueues({id:r.getCurrentUser().id,fields:"id,name",channel:"voice",type:"inbound",nolimit:!0}).$promise}).then(function(e){c.queues=e||{count:0,rows:[]},c.queuesMap=_.mapValues(_.keyBy(c.queues.rows,"name"),"name"),c.defaultQueues=c.queues.rows?_.map(c.queues.rows,"name").join(","):void 0}).then(function(){c.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Agent",key:"lastAssignedTo",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:c.currentUser.name,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}],ngValue:"name"},{name:"Campaign",key:"queue",type:"multiselect",label:"DASHBOARDS.SELECT_QUEUE",options:c.queues.rows,ngValue:"name",clearAll:!1}]}).catch(function(e){console.log(e)}).finally(function(){var e=t.localStorage.getItem("motion2.home.abandoned.voice.calls:"+c.currentUser.id);if(e)(e=JSON.parse(e)).query&&(c.query=_.merge(e.query,c.query));else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()};c.query.createdAt=n}c.isSearchBarVisible=!!c.query.filter,u()})}function u(){c.query.queue=c.query.queue||c.defaultQueues.split(","),c.query.offset=(c.query.page-1)*c.query.limit;var e={query:c.query};t.localStorage.setItem("motion2.home.abandoned.voice.calls:"+c.currentUser.id,JSON.stringify(e)),c.promise=o.voiceQueueReport.getVoiceQueuesReport(c.query,p).$promise}function p(e){c.abandonedCalls=e||{count:0,rows:[]},c.refresh=!0}c.showTooltip=!1,c.refresh=!0,c.disable=[],c.dispositions={count:0,rows:[]},c.currentUser=r.getCurrentUser(),c.queues={},c.abandonedCalls={count:0,rows:[]},c.query={fields:"id,type,calleridnum,calleridname,queue,queuecallerabandonAt,queuecallerexitAt,queuecallerexitreason,assigned,lastAssignedTo,updatedAt,disposition,secondDisposition,thirdDisposition",type:"inbound",queuecallerexitreason:"TIMEOUT,ABANDONED",sort:"-updatedAt",limit:10,page:1},c.getAbandonedCalls=u,c.refreshAbandonedCalls=function(){c.showTooltip=!1,u()},c.onInit=m,c.reserved=function(e){e&&(c.disable[e.id]=!0,o.voiceQueueReport.update({id:e.id,lastAssignedTo:e.assigned?c.currentUser.name:null,assigned:e.assigned}).$promise.catch(function(e){console.log(e)}).finally(function(){c.disable[e.id]=!1,e.lastAssignedTo=e.assigned?c.currentUser.name:null}))},c.dispose=function(t){a.show({controller:"DisposeAbandonedCallDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/home/abandoned/dispose/dialog.html",parent:angular.element(i.body),targetEvent:t,locals:{dispositions:c.dispositions,call:t}}).then(function(e){if(e){c.disable[t.id]=!0;var n={id:t.id,lastAssignedTo:t.assigned?c.currentUser.name:null,assigned:t.assigned,disposition:e.firstLevel||null,secondDisposition:e.secondLevel||null,thirdDisposition:e.thirdLevel||null};o.voiceQueueReport.update(n).$promise.catch(function(e){console.log(e)}).finally(function(){c.disable[t.id]=!1,t.disposition=e.firstLevel,t.secondDisposition=e.secondLevel,t.thirdDisposition=e.thirdLevel})}})},c.call=e.$parent.$parent.$parent.$parent.vm.call,c.transfer=e.$parent.$parent.$parent.$parent.vm.transfer,c.webcall=e.$parent.$parent.$parent.$parent.vm.webcall,c.webtransfer=e.$parent.$parent.$parent.$parent.vm.webtransfer,l.onWithoutApply("voiceQueueReport:save",function(e){c.queuesMap&&"inbound"===e.type&&c.queuesMap[e.queue]&&(c.showTooltip=!0)}),l.onWithoutApply("voiceQueueReport:update",function(e){if(e){var n=_.findIndex(c.abandonedCalls.rows,["id",e.id]);0<=n&&_.merge(c.abandonedCalls.rows[n],e)}}),m(),e.$on("$destroy",function(){l.removeAllListeners("voiceQueueReport:save"),l.removeAllListeners("voiceQueueReport:update")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeAbandonedVoiceController",e)}(),function(){"use strict";function e(n,a,t,e,i){var s=this;s.user=t.getCurrentUser(),s.license={},s.plugin={},s.setting={},s.sidebar="dashboard",s.draftManager=i,s.navigation=e.getNavigation(),s.addContactTab=n.$parent.vm.addContactTab,s.addInteractionTab=n.$parent.vm.addInteractionTab,s.init=function(e,n){s.license=e,s.setting=n;var t=a.localStorage.getItem("motion2.home:"+s.user.id);if(t){try{t=JSON.parse(t),s.sidebar=t.currentSidebarTab?t.currentSidebarTab:"dashboard"}catch(e){console.error(e),s.sidebar="dashboard"}"mail"===s.sidebar&&s.draftManager.init()}},s.changeSidebarTab=function(e){s.sidebar=e.view,"plugin"===s.sidebar&&(s.plugin=e.stateParams,s.pluginId=e.id,n.$broadcast("pluginUpdated",{plugin:s.plugin}));a.localStorage.setItem("motion2.home:"+s.user.id,JSON.stringify({currentSidebarTab:e.view}))},s.hasPermission=function(e){return t.hasPermission(e)},n.$watch("vm_home.sidebar",function(e,n){"mail"===e?s.draftManager.init():s.draftManager.drafts={}})}e.$inject=["$scope","$window","Auth","msNavigationAgentService","draftManager"],angular.module("app.dashboards").controller("AgentGeneralHomeController",e)}(),function(){"use strict";function e(t,n,i,s,a,o,r,e,l,d){var c=this;function m(e){!c.reloadingInteractions&&0<c.setting.chatInteractionsReloadTimeout&&A(!0),c.searchInProgress=!1,c.reloadingInteractions=!1,c.chatInteractions=e||{count:0,rows:[]};for(var n=0;n<c.chatInteractions.rows.length;n+=1)p(c.chatInteractions.rows[n])}function u(e,n){c.searchInProgress=!0,e||(c.query.page=1),c.query.offset=(c.query.page-1)*c.query.limit;var t=a.localStorage.getItem("motion2.home.chat:"+c.user.id);(t=t?JSON.parse(t):{}).query=c.query,a.localStorage.setItem("motion2.home.chat:"+c.user.id,JSON.stringify(t)),c.promise=r.chatInteraction.get(c.query,m).$promise}function p(e){"Unknown"===e.contactName&&(e.contactName=o.instant("DASHBOARDS.UNKNOWN"))}function g(e){var n=_.find(c.chatInteractions.rows,{id:e.ChatInteractionId});n&&n.Users&&(_.find(n.Users,{id:e.UserId})||n.Users.push({id:e.UserId}))}function v(e){var n=_.find(c.chatInteractions.rows,{id:e.ChatInteractionId});n&&n.Users&&_.remove(n.Users,{id:e.UserId})}function h(e){if(e){var n=_.find(c.chatInteractions.rows,{id:e.id});if(n){if(n.Users=[],e.closed&&(n.unreadMessages=0),c.query.sort){var t=_.startsWith(c.query.sort,"-")?"desc":"asc";c.chatInteractions.rows=_.orderBy(c.chatInteractions.rows,_.trimStart(c.query.sort,"-"),t)}_.merge(n,_.pick(e,_.keys(n)))}else 0===c.setting.chatInteractionsReloadTimeout&&u(c.query.page)}}function f(e){if(e){var n=_.find(c.chatInteractions.rows,{id:e.id});n&&(n.Tags=e.tags||[],_.merge(n,_.pick(e,_.keys(n))))}}function b(e){if(e&&!e.secret){var n=_.find(c.chatInteractions.rows,{id:e.ChatInteractionId});if(n){var t=_.find(n.Messages,{id:e.id});t?_.merge(t,_.pick(e,_.keys(t))):(_.isNil(n.Messages)&&(n.Messages={count:0}),e.read||(n.Messages.count+=1))}}}function A(e){e&&c.interactionsInterval&&n.cancel(c.interactionsInterval),c.interactionsInterval=n(function(){c.reloadingInteractions=!0,c.searchInProgress||u()},1e3*c.setting.chatInteractionsReloadTimeout)}c.user=e.getCurrentUser(),c.license={},c.setting={},c.tags={count:0,rows:[]},c.chatInteractions={count:0,rows:[]},c.query={includeAll:!0,sort:"-updatedAt",limit:10,page:1,read:null,closed:null},c.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Customer Ip",column:"customerIp",type:"text",options:{excludedOperators:["$eq","$ne","$startsWith","$endsWith"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Website",column:"ChatWebsiteId",type:"multiselect",options:{route:{model:"user",action:"getChatWebsites",params:{id:c.user.id,nolimit:!0}}}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},c.sectionColor="green-A700",c.onInit=function(e,n){return c.license=e,c.setting=n,r.user["get"+_.upperFirst("ChatWebsites")]({id:c.user.id,nolimit:!0}).$promise.then(function(e){return c.chatAccounts=e||{count:0,rows:[]},r.tag.get({sort:"name"}).$promise}).then(function(e){c.tags=e||{count:0,rows:[]}}).then(function(){c.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Website",key:"ChatWebsiteId",type:"multiselect",label:"DASHBOARDS.SELECT_ACCOUNT",options:c.chatAccounts.rows,clearAll:!1},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:c.user.id,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:c.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=a.localStorage.getItem("motion2.home.chat:"+c.user.id);if(e)try{(e=JSON.parse(e)).query&&(c.query=_.merge(c.query,e.query),_.isEmpty(c.chatAccounts.rows)?c.query.ChatWebsiteId=[]:_.isEmpty(c.query.ChatWebsiteId)&&(c.query.ChatWebsiteId=_(c.chatAccounts.rows).map("id").take().value()),c.query.sort&&0<=c.query.sort.indexOf("lastMessage")&&(c.query=_.omit(c.query,"sort")),c.query.includeAll=!0,c.isSearchBarVisible=!(c.query.search||!c.query.filter))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()},t={ChatWebsiteId:_.map(c.chatAccounts.rows,"id"),createdAt:n};c.query=_.merge(c.query,t)}l.on("chatInteraction:save",h),l.on("chatInteraction:update",h),l.on("chatInteractionTags:save",f),l.on("chatMessage:save",b),l.on("chatMessage:update",b),l.on("user_has_chat_interactions:save",g),l.on("user_has_chat_interactions:remove",v),u(c.query.page),0<c.setting.chatInteractionsReloadTimeout&&A()})},c.success=m,c.getChatInteractions=u,c.showChatInteraction=function(e,n){t.$parent.vm.addInteractionTab("chat",n)},c.downloadChatInteraction=function(e,s,n){r.chatInteraction.download({id:s.id,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="chat-interaction"+s.id+".zip",a=new Blob(n,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"downloadChatInteraction",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.disposeInteraction=function(e,t){var a=c.user.voicePause||c.user.chatPause||c.user.mailPause||c.user.openchannelPause||c.user.faxPause,n=!t.Account.mandatoryDisposition;i.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(s.body),clickOutsideToClose:n,escapeToClose:n,onRemoving:function(e,n){c.user&&t.Account.mandatoryDisposition&&!a&&r.user.unpause({id:c.user.id}).$promise.catch(function(e){console.error(e)})},locals:{user:c.user,channel:"chat",interaction:t}})},c.getContactLabel=p,c.getAgentLabel=function(e){if(e.UserId)return e.UserId===c.user.id?o.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">";return o.instant("DASHBOARDS.NOT_ASSIGNED")},c.getChatWebsiteLabel=function(e){if(e.Account)return e.Account.key;return o.instant("DASHBOARDS.UNKNOWN")},c.openAdvancedSearch=function(){i.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(s.body),clickOutsideToClose:!1,locals:{color:c.sectionColor,fields:c.advancedSearch.fields,storagePath:"home.chat"},fullscreen:!0}).then(function(e){c.isSearchBarVisible=!(e.value||!c.query.filter),e.apply&&(c.query.search=e.value,u())}).catch(function(e){d.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},t.$on("$destroy",function(){l.removeAllListeners("chatMessage:save"),l.removeAllListeners("chatMessage:update"),l.removeAllListeners("chatInteraction:save"),l.removeAllListeners("chatInteractionTags:save"),l.removeAllListeners("chatInteraction:update"),l.removeAllListeners("user_has_chat_interactions:save"),l.removeAllListeners("user_has_chat_interactions:remove"),c.interactionsInterval&&n.cancel(c.interactionsInterval)})}e.$inject=["$scope","$interval","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeChatController",e)}(),function(){"use strict";function e(t,n,e,a,i,s,o,r){var l=this;function d(e){l.searchInProgress=!1,l.contacts=e||{count:0,rows:[]}}function c(e,n){l.searchInProgress=!0,o.cmContact.describe({id:l.query.ListId}).$promise.then(function(e){return _(e.toJSON()).omit("UserId").values().map(function(e){return function(e){var n={name:_.startCase(e.displayName),column:e.columnName,options:{}};if(e.custom)switch(e.custom.type){case"text":n.type="text";break;case"select":n.type="multiselect",n.values=_.map(JSON.parse(e.custom.values),function(e,n){return{id:n,name:e.value,value:e.value}}),n.options.field="name";break;case"switch":n.type="select",n.values=[{id:1,translate:"DASHBOARDS.ENABLED"},{id:0,translate:"DASHBOARDS.DISABLED"}],n.options.excludedOperators=["$ne"];break;case"number":n.type="number";break;case"datetime":n.type="date"}else switch(e.columnName){case"dateOfBirth":n.type="date";break;case"CompanyId":n.name="Company",n.type="autocomplete",n.options.route={model:"cmCompany",action:"get",params:{fields:"id,name",nolimit:!0}},n.options.searchFields=["name"],n.options.excludedOperators=["$ne"];break;case"ListId":n.name="List",n.type="autocomplete",n.options.route={model:"user",action:"getLists",params:{id:l.currentUser.id,fields:"id,name",nolimit:!0}},n.options.searchFields=["name"],n.options.excludedOperators=["$ne"];break;default:_.includes(e.type.toLowerCase(),"int")?n.type="number":_.includes(e.type.toLowerCase(),"date")?n.type="date":n.type="text"}return n}(e)}).value()}).then(function(e){l.advancedSearch.fields=e;var n=_.findIndex(e,function(e){return _.startsWith(e.column,"cf_")})||e.length-1;n<0&&(n=e.length),l.advancedSearch.fields.splice(n,0,{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"DESCRIBE_CM_CONTACTS",msg:e.data?JSON.stringify(e.data.message):e.toString()})}),e||(l.query.page=1),l.query.offset=(l.query.page-1)*l.query.limit;var t=i.localStorage.getItem("motion2.home.contacts:"+l.currentUser.id);(t=t?JSON.parse(t):{}).query=l.query,i.localStorage.setItem("motion2.home.contacts:"+l.currentUser.id,JSON.stringify(t)),l.promise=o.cmContact.get(l.query,d).$promise}l.currentUser=s.getCurrentUser(),l.lists={},l.contacts={count:0,rows:[]},l.tags={count:0,rows:[]},l.query={includeAll:!0,sort:"-updatedAt",limit:10,page:1},l.advancedSearch={fields:[]},l.sectionColor="red",l.getContacts=c,l.refreshContacts=function(){c()},l.mergeContact=function(e,n){a.show({controller:"MergeContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/merge/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:n.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:l.currentUser.id,fields:"id,name"})}]},locals:{contacts:l.contacts.rows}})},l.duplicateContact=function(e,n){a.show({controller:"DuplicateContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/duplicate/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:n.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:l.currentUser.id,fields:"id,name"})}]},locals:{contacts:l.contacts.rows}})},l.openContact=function(e){return o.cmContact.get({id:e}).$promise.then(function(e){n.$parent.vm.addContactTab(e)})},l.call=n.$parent.vm.call,l.onInit=function(){o.user.getLists({id:l.currentUser.id,fields:"id,name,dialPrefix",sort:"name",nolimit:!0}).$promise.then(function(e){return l.lists=e||{count:0,rows:[]},l.listsMap=_.keyBy(l.lists.rows,"id"),o.tag.get({sort:"name"}).$promise}).then(function(e){l.tags=e||{count:0,rows:[]}}).then(function(){l.quickFilters=[{name:"List",key:"ListId",type:"multiselect",label:"CONTACTMANAGER.SELECT_LIST",options:l.lists.rows,clearAll:!1},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:l.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=i.localStorage.getItem("motion2.home.contacts:"+l.currentUser.id);if(e)try{(e=JSON.parse(e)).query&&(l.query=_.merge(l.query,e.query),_.isEmpty(l.lists.rows)?l.query.ListId=[]:_.isEmpty(l.query.ListId)&&(l.query.ListId=_(l.lists.rows).map("id").take().value()))}catch(e){console.log(e)}else l.query.ListId=_.map(l.lists.rows,"id");l.isSearchBarVisible=!(l.query.search||!l.query.filter),c()})},l.openAdvancedSearch=function(){a.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{color:l.sectionColor,fields:l.advancedSearch.fields,storagePath:"home.contacts"},fullscreen:!0}).then(function(e){l.isSearchBarVisible=!(e.value||!l.query.filter),e.apply&&(l.query.search=e.value,c())}).catch(function(e){r.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}}e.$inject=["$document","$scope","$timeout","$mdDialog","$window","Auth","api","toasty"],angular.module("app.dashboards").controller("AgentHomeContactsController",e)}(),function(){"use strict";function e(e,n){var t=n(function(){},999);e.$on("$destroy",function(){t&&(n.cancel(t),t=null)})}e.$inject=["$scope","$interval"],angular.module("app.dashboards").controller("AgentHomeDashboardController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["type","waiting","dialMethod","dialActive"];function u(e){c.voiceQueuesTotal=e.count?e.count:0,c.voiceQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.voiceQueues,function(e,n){c.rpcVoiceQueues[n]&&(c.voiceQueues[n].waiting=c.rpcVoiceQueues[n].waiting||0)})}c.voiceQueues={},c.voiceQueuesTotal=0,c.rpcVoiceQueues={},c.getVoiceQueues={},c.rpcVoiceQueuesChannels={},c.addVoiceQueuesChannels={},c.deleteVoiceQueuesChannels=[],c.load=!0,c.query={id:r.getCurrentUser().id,fields:"id,name,type,dialMethod,dialActive",channel:"voice",type:"outbound",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=u,c.getVoiceQueues=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.user.getQueues(c.query,u).$promise},c.getSize=function(e){return _.size(e)},c.onSaveQueue=function(e){c.voiceQueues[e.id]&&c.rpcVoiceQueues[e.id]&&(c.rpcVoiceQueues[e.id]=e,_.merge(c.voiceQueues[e.id],_.pick(e,m)))},c.onSaveChannel=function(e){"outbound"===e.type&&(e.queuecallerleaveAt?(delete c.rpcVoiceQueuesChannels[e.uniqueid],c.load&&c.deleteVoiceQueuesChannels.push(e.uniqueid)):(c.rpcVoiceQueuesChannels[e.uniqueid]=e,c.load&&(c.addVoiceQueuesChannels[e.uniqueid]=e)))},c.onUserVoiceQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getVoiceQueues()},c.onSaveVoiceQueue=function(e){_.isNil(e)||(c.rpcVoiceQueues[e.id]=_.pick(e,m))},c.onUpdateVoiceQueue=function(e){_.isNil(e)||(c.rpcVoiceQueues[e.id]&&_.merge(c.rpcVoiceQueues[e.id],_.pick(e,m)),c.voiceQueues[e.id]&&_.merge(c.voiceQueues[e.id],_.pick(e,m)))},c.onRemoveVoiceQueue=function(e){_.isNil(e)||(delete c.rpcVoiceQueues[e.id],delete c.voiceQueues[e.id])},l.onWithoutApply("voice_queue:save",c.onSaveQueue),l.onWithoutApply("voice_queue_channel:save",c.onSaveChannel),l.onWithoutApply("userVoiceQueue:save",c.onUserVoiceQueue),l.onWithoutApply("userVoiceQueue:remove",c.onUserVoiceQueue),l.onWithoutApply("voiceQueue:save",c.onSaveVoiceQueue),l.onWithoutApply("voiceQueue:remove",c.onRemoveVoiceQueue),l.onWithoutApply("voiceQueue:update",c.onUpdateVoiceQueue),o.rpc.getVoiceQueues().$promise.then(function(e){return c.rpcVoiceQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},o.rpc.getVoiceQueuesChannels().$promise}).then(function(e){c.rpcVoiceQueuesChannels=e?_.keyBy(e.rows?_.filter(e.rows,{type:"outbound",queuecallerleaveAt:null}):[],"uniqueid"):{}}).catch(function(e){console.error(e)}).finally(function(){_.merge(c.rpcVoiceQueuesChannels,c.addVoiceQueuesChannels);for(var e=0;e<c.deleteVoiceQueuesChannels.length;e+=1)delete c.rpcVoiceQueuesChannels[c.deleteVoiceQueuesChannels[e]];c.load=!1,c.addVoiceQueuesChannels={},c.deleteVoiceQueuesChannels=[],c.getVoiceQueues()});var p=!0,g=1;e.$watch("vm_dc.query.filter",function(e,n){p?t(function(){p=!1}):(n||(g=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=g),c.getVoiceQueues())}),e.$on("$destroy",function(){l.removeAllListeners("voice_queue:save"),l.removeAllListeners("voice_queue_channel:save"),l.removeAllListeners("userVoiceQueue:save"),l.removeAllListeners("userVoiceQueue:remove"),l.removeAllListeners("voiceQueue:save"),l.removeAllListeners("voiceQueue:update"),l.removeAllListeners("voiceQueue:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardBullController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["id","name","mapAgentsId","waiting"],u=!0;function p(){var e=(c.queryChannels.page-1)*c.queryChannels.limit;c.paginatedInteractions=_.orderBy(c.rpcChatQueuesWaitingInteractions,["joinAt"],["desc"]),c.interactions=_.drop(c.paginatedInteractions,e).slice(0,c.queryChannels.limit)}function g(e){c.chatQueuesTotal=e.count?e.count:0,c.chatQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.chatQueues,function(e,n){c.rpcChatQueues[n]&&(c.chatQueues[n].waiting=c.rpcChatQueues[n].waiting||0)})}function v(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.user.getQueues(c.query,g).$promise}c.chatQueues={},c.chatQueuesTotal=0,c.rpcChatQueues={},c.paginatedInteractions=[],c.deleteChatQueuesWaitingInteractions=[],c.rpcChatQueuesWaitingInteractions={},c.query={id:r.getCurrentUser().id,channel:"chat",fields:"id,name,mapAgentsId,waiting",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=g,c.getChatQueues=v,c.getSize=function(e){return _.size(e)},c.getColorByChannel=function(e){switch(e){case"chat":return"green-A700-bg";case"mail":return"teal-bg";case"sms":return"orange-bg";case"whatsapp":return"lime-A700-bg";case"openchannel":return"amber-A200-bg";case"fax":return"blue-grey-A200-bg";default:return"white-bg"}},c.paginate=p,c.onSaveQueue=function(e){c.chatQueues[e.id]&&c.rpcChatQueues[e.id]&&(_.merge(c.rpcChatQueues[e.id],_.pick(e,m)),_.merge(c.chatQueues[e.id],_.pick(e,m)))},c.onSaveChatQueue=function(e){_.isNil(e)||(c.rpcChatQueues[e.id]=_.pick(e,m))},c.onUpdateChatQueue=function(e){_.isNil(e)||(c.rpcChatQueues[e.id]&&_.merge(c.rpcChatQueues[e.id],_.pick(e,m)),c.chatQueues[e.id]&&_.merge(c.chatQueues[e.id],_.pick(e,m)))},c.onRemoveChatQueue=function(e){_.isNil(e)||(delete c.rpcChatQueues[e.id],delete c.chatQueues[e.id])},c.onSaveUserChatQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getChatQueues()},c.onRemoveUserChatQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getChatQueues()},c.onSaveChatQueueChannel=function(e){c.chatQueues[e.queue_id]&&(c.rpcChatQueuesWaitingInteractions[e.id]=e,p())},c.onRemoveChatQueueChannel=function(e){delete c.rpcChatQueuesWaitingInteractions[e.id],u&&c.deleteChatQueuesWaitingInteractions.push(e.id);p()},l.onWithoutApply("chat_queue:save",c.onSaveQueue),l.onWithoutApply("chatQueue:save",c.onSaveChatQueue),l.onWithoutApply("chatQueue:update",c.onUpdateChatQueue),l.onWithoutApply("chatQueue:remove",c.onRemoveChatQueue),l.onWithoutApply("userChatQueue:save",c.onSaveUserChatQueue),l.onWithoutApply("userChatQueue:remove",c.onRemoveUserChatQueue),l.onWithoutApply("chat_queue_waiting_interaction:save",c.onSaveChatQueueChannel),l.onWithoutApply("chat_queue_waiting_interaction:remove",c.onRemoveChatQueueChannel),o.rpc.getChatQueues().$promise.then(function(e){c.rpcChatQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}).then(function(e){return o.user.getQueues({id:r.getCurrentUser().id,channel:"chat"}).$promise}).then(function(e){return c.myQueues=e.rows,o.rpc.getChatQueuesWaitingInteractions().$promise}).then(function(e){var n=_.filter(e.rows,function(e){return _.find(c.myQueues,{id:e.queue_id})});e.rows=n,e.count=n.length,_.merge(c.rpcChatQueuesWaitingInteractions,e?_.keyBy(e.rows?e.rows:[],"id"):{})}).catch(function(e){console.error(e)}).finally(function(){for(var e=0;e<c.deleteChatQueuesWaitingInteractions.length;e+=1)delete c.rpcChatQueuesWaitingInteractions[c.deleteChatQueuesWaitingInteractions[e]];u=!1,c.deleteChatQueuesWaitingInteractions=[],v(),p()});var h=!0,f=1;e.$watch("vm_dc.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=f),c.getChatQueues())}),e.$on("$destroy",function(){l.removeAllListeners("chat_queue:save"),l.removeAllListeners("chatQueue:save"),l.removeAllListeners("chatQueue:update"),l.removeAllListeners("chatQueue:remove"),l.removeAllListeners("userChatQueue:save"),l.removeAllListeners("userChatQueue:remove"),l.removeAllListeners("chat_queue_waiting_interaction:save"),l.removeAllListeners("chat_queue_waiting_interaction:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardMultiChannelChatController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["id","name","mapAgentsId","waiting"],u=!0;function p(){var e=(c.queryChannels.page-1)*c.queryChannels.limit;c.paginatedInteractions=_.orderBy(c.rpcFaxQueuesWaitingInteractions,["joinAt"],["desc"]),c.interactions=_.drop(c.paginatedInteractions,e).slice(0,c.queryChannels.limit)}function g(e){c.faxQueuesTotal=e.count?e.count:0,c.faxQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.faxQueues,function(e,n){c.rpcFaxQueues[n]&&(c.faxQueues[n].waiting=c.rpcFaxQueues[n].waiting||0)})}function v(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.user.getQueues(c.query,g).$promise}c.faxQueues={},c.faxQueuesTotal=0,c.rpcFaxQueues={},c.paginatedInteractions=[],c.deleteFaxQueuesWaitingInteractions=[],c.rpcFaxQueuesWaitingInteractions={},c.query={id:r.getCurrentUser().id,channel:"fax",fields:"id,name,mapAgentsId,waiting",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=g,c.getFaxQueues=v,c.getSize=function(e){return _.size(e)},c.getColorByChannel=function(e){switch(e){case"chat":return"green-A700-bg";case"mail":return"teal-bg";case"sms":return"orange-bg";case"whatsapp":return"lime-A700-bg";case"openchannel":return"amber-A200-bg";case"fax":return"blue-grey-A200-bg";default:return"white-bg"}},c.paginate=p,c.onSaveQueue=function(e){c.faxQueues[e.id]&&c.rpcFaxQueues[e.id]&&(_.merge(c.rpcFaxQueues[e.id],_.pick(e,m)),_.merge(c.faxQueues[e.id],_.pick(e,m)))},c.onSaveFaxQueue=function(e){_.isNil(e)||(c.rpcFaxQueues[e.id]=_.pick(e,m))},c.onUpdateFaxQueue=function(e){_.isNil(e)||(c.rpcFaxQueues[e.id]&&_.merge(c.rpcFaxQueues[e.id],_.pick(e,m)),c.faxQueues[e.id]&&_.merge(c.faxQueues[e.id],_.pick(e,m)))},c.onRemoveFaxQueue=function(e){_.isNil(e)||(delete c.rpcFaxQueues[e.id],delete c.faxQueues[e.id])},c.onSaveUserFaxQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getFaxQueues()},c.onRemoveUserFaxQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getFaxQueues()},c.onSaveFaxQueueChannel=function(e){c.faxQueues[e.queue_id]&&(c.rpcFaxQueuesWaitingInteractions[e.id]=e,p())},c.onRemoveFaxQueueChannel=function(e){delete c.rpcFaxQueuesWaitingInteractions[e.id],u&&c.deleteFaxQueuesWaitingInteractions.push(e.id);p()},l.onWithoutApply("fax_queue:save",c.onSaveQueue),l.onWithoutApply("faxQueue:save",c.onSaveFaxQueue),l.onWithoutApply("faxQueue:update",c.onUpdateFaxQueue),l.onWithoutApply("faxQueue:remove",c.onRemoveFaxQueue),l.onWithoutApply("userFaxQueue:save",c.onSaveUserFaxQueue),l.onWithoutApply("userFaxQueue:remove",c.onRemoveUserFaxQueue),l.onWithoutApply("fax_queue_waiting_interaction:save",c.onSaveFaxQueueChannel),l.onWithoutApply("fax_queue_waiting_interaction:remove",c.onRemoveFaxQueueChannel),o.rpc.getFaxQueues().$promise.then(function(e){c.rpcFaxQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}).then(function(e){return o.user.getQueues({id:r.getCurrentUser().id,channel:"fax"}).$promise}).then(function(e){return c.myQueues=e.rows,o.rpc.getFaxQueuesWaitingInteractions().$promise}).then(function(e){var n=_.filter(e.rows,function(e){return _.find(c.myQueues,{id:e.queue_id})});e.rows=n,e.count=n.length,_.merge(c.rpcFaxQueuesWaitingInteractions,e?_.keyBy(e.rows?e.rows:[],"id"):{})}).catch(function(e){console.error(e)}).finally(function(){for(var e=0;e<c.deleteFaxQueuesWaitingInteractions.length;e+=1)delete c.rpcFaxQueuesWaitingInteractions[c.deleteFaxQueuesWaitingInteractions[e]];u=!1,c.deleteFaxQueuesWaitingInteractions=[],v(),p()});var h=!0,f=1;e.$watch("vm_dc.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=f),c.getFaxQueues())}),e.$on("$destroy",function(){l.removeAllListeners("fax_queue:save"),l.removeAllListeners("faxQueue:save"),l.removeAllListeners("faxQueue:update"),l.removeAllListeners("faxQueue:remove"),l.removeAllListeners("userFaxQueue:save"),l.removeAllListeners("userFaxQueue:remove"),l.removeAllListeners("fax_queue_waiting_interaction:save"),l.removeAllListeners("fax_queue_waiting_interaction:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardMultiChannelFaxController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["id","name","mapAgentsId","waiting"],u=!0;function p(){var e=(c.queryChannels.page-1)*c.queryChannels.limit;c.paginatedInteractions=_.orderBy(c.rpcMailQueuesWaitingInteractions,["joinAt"],["desc"]),c.interactions=_.drop(c.paginatedInteractions,e).slice(0,c.queryChannels.limit)}function g(e){c.mailQueuesTotal=e.count?e.count:0,c.mailQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.mailQueues,function(e,n){c.rpcMailQueues[n]&&(c.mailQueues[n].waiting=c.rpcMailQueues[n].waiting||0)})}function v(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.user.getQueues(c.query,g).$promise}c.mailQueues={},c.mailQueuesTotal=0,c.rpcMailQueues={},c.paginatedInteractions=[],c.deleteMailQueuesWaitingInteractions=[],c.rpcMailQueuesWaitingInteractions={},c.query={id:r.getCurrentUser().id,channel:"mail",fields:"id,name,mapAgentsId,waiting",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=g,c.getMailQueues=v,c.getSize=function(e){return _.size(e)},c.getColorByChannel=function(e){switch(e){case"chat":return"green-A700-bg";case"mail":return"teal-bg";case"sms":return"orange-bg";case"whatsapp":return"lime-A700-bg";case"openchannel":return"amber-A200-bg";case"fax":return"blue-grey-A200-bg";default:return"white-bg"}},c.paginate=p,c.onSaveQueue=function(e){c.mailQueues[e.id]&&c.rpcMailQueues[e.id]&&(_.merge(c.rpcMailQueues[e.id],_.pick(e,m)),_.merge(c.mailQueues[e.id],_.pick(e,m)))},c.onSaveMailQueue=function(e){_.isNil(e)||(c.rpcMailQueues[e.id]=_.pick(e,m))},c.onUpdateMailQueue=function(e){_.isNil(e)||(c.rpcMailQueues[e.id]&&_.merge(c.rpcMailQueues[e.id],_.pick(e,m)),c.mailQueues[e.id]&&_.merge(c.mailQueues[e.id],_.pick(e,m)))},c.onRemoveMailQueue=function(e){_.isNil(e)||(delete c.rpcMailQueues[e.id],delete c.mailQueues[e.id])},c.onSaveUserMailQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getMailQueues()},c.onRemoveUserMailQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getMailQueues()},c.onSaveMailQueueChannel=function(e){c.mailQueues[e.queue_id]&&(c.rpcMailQueuesWaitingInteractions[e.id]=e,p())},c.onRemoveMailQueueChannel=function(e){delete c.rpcMailQueuesWaitingInteractions[e.id],u&&c.deleteMailQueuesWaitingInteractions.push(e.id);p()},l.onWithoutApply("mail_queue:save",c.onSaveQueue),l.onWithoutApply("mailQueue:save",c.onSaveMailQueue),l.onWithoutApply("mailQueue:update",c.onUpdateMailQueue),l.onWithoutApply("mailQueue:remove",c.onRemoveMailQueue),l.onWithoutApply("userMailQueue:save",c.onSaveUserMailQueue),l.onWithoutApply("userMailQueue:remove",c.onRemoveUserMailQueue),l.onWithoutApply("mail_queue_waiting_interaction:save",c.onSaveMailQueueChannel),l.onWithoutApply("mail_queue_waiting_interaction:remove",c.onRemoveMailQueueChannel),o.rpc.getMailQueues().$promise.then(function(e){c.rpcMailQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}).then(function(e){return o.user.getQueues({id:r.getCurrentUser().id,channel:"mail"}).$promise}).then(function(e){return c.myQueues=e.rows,o.rpc.getMailQueuesWaitingInteractions().$promise}).then(function(e){var n=_.filter(e.rows,function(e){return _.find(c.myQueues,{id:e.queue_id})});e.rows=n,e.count=n.length,_.merge(c.rpcMailQueuesWaitingInteractions,e?_.keyBy(e.rows?e.rows:[],"id"):{})}).catch(function(e){console.error(e)}).finally(function(){for(var e=0;e<c.deleteMailQueuesWaitingInteractions.length;e+=1)delete c.rpcMailQueuesWaitingInteractions[c.deleteMailQueuesWaitingInteractions[e]];u=!1,c.deleteMailQueuesWaitingInteractions=[],v(),p()});var h=!0,f=1;e.$watch("vm_dc.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=f),c.getMailQueues())}),e.$on("$destroy",function(){l.removeAllListeners("mail_queue:save"),l.removeAllListeners("mailQueue:save"),l.removeAllListeners("mailQueue:update"),l.removeAllListeners("mailQueue:remove"),l.removeAllListeners("userMailQueue:save"),l.removeAllListeners("userMailQueue:remove"),l.removeAllListeners("mail_queue_waiting_interaction:save"),l.removeAllListeners("mail_queue_waiting_interaction:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardMultiChannelMailController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["id","name","mapAgentsId","waiting"],u=!0;function p(){var e=(c.queryChannels.page-1)*c.queryChannels.limit;c.paginatedInteractions=_.orderBy(c.rpcOpenchannelQueuesWaitingInteractions,["joinAt"],["desc"]),c.interactions=_.drop(c.paginatedInteractions,e).slice(0,c.queryChannels.limit)}function g(e){c.openchannelQueuesTotal=e.count?e.count:0,c.openchannelQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.openchannelQueues,function(e,n){c.rpcOpenchannelQueues[n]&&(c.openchannelQueues[n].waiting=c.rpcOpenchannelQueues[n].waiting||0)})}function v(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.user.getQueues(c.query,g).$promise}c.openchannelQueues={},c.openchannelQueuesTotal=0,c.rpcOpenchannelQueues={},c.paginatedInteractions=[],c.deleteOpenchannelQueuesWaitingInteractions=[],c.rpcOpenchannelQueuesWaitingInteractions={},c.query={id:r.getCurrentUser().id,channel:"openchannel",fields:"id,name,mapAgentsId,waiting",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=g,c.getOpenchannelQueues=v,c.getSize=function(e){return _.size(e)},c.getColorByChannel=function(e){switch(e){case"chat":return"green-A700-bg";case"mail":return"teal-bg";case"sms":return"orange-bg";case"whatsapp":return"lime-A700-bg";case"openchannel":return"amber-A200-bg";case"fax":return"blue-grey-A200-bg";default:return"white-bg"}},c.paginate=p,c.onSaveQueue=function(e){c.openchannelQueues[e.id]&&c.rpcOpenchannelQueues[e.id]&&(_.merge(c.rpcOpenchannelQueues[e.id],_.pick(e,m)),_.merge(c.openchannelQueues[e.id],_.pick(e,m)))},c.onSaveOpenchannelQueue=function(e){_.isNil(e)||(c.rpcOpenchannelQueues[e.id]=_.pick(e,m))},c.onUpdateOpenchannelQueue=function(e){_.isNil(e)||(c.rpcOpenchannelQueues[e.id]&&_.merge(c.rpcOpenchannelQueues[e.id],_.pick(e,m)),c.openchannelQueues[e.id]&&_.merge(c.openchannelQueues[e.id],_.pick(e,m)))},c.onRemoveOpenchannelQueue=function(e){_.isNil(e)||(delete c.rpcOpenchannelQueues[e.id],delete c.openchannelQueues[e.id])},c.onSaveUserOpenchannelQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getOpenchannelQueues()},c.onRemoveUserOpenchannelQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getOpenchannelQueues()},c.onSaveOpenchannelQueueChannel=function(e){c.openchannelQueues[e.queue_id]&&(c.rpcOpenchannelQueuesWaitingInteractions[e.id]=e,p())},c.onRemoveOpenchannelQueueChannel=function(e){delete c.rpcOpenchannelQueuesWaitingInteractions[e.id],u&&c.deleteOpenchannelQueuesWaitingInteractions.push(e.id);p()},l.onWithoutApply("openchannel_queue:save",c.onSaveQueue),l.onWithoutApply("openchannelQueue:save",c.onSaveOpenchannelQueue),l.onWithoutApply("openchannelQueue:update",c.onUpdateOpenchannelQueue),l.onWithoutApply("openchannelQueue:remove",c.onRemoveOpenchannelQueue),l.onWithoutApply("userOpenchannelQueue:save",c.onSaveUserOpenchannelQueue),l.onWithoutApply("userOpenchannelQueue:remove",c.onRemoveUserOpenchannelQueue),l.onWithoutApply("openchannel_queue_waiting_interaction:save",c.onSaveOpenchannelQueueChannel),l.onWithoutApply("openchannel_queue_waiting_interaction:remove",c.onRemoveOpenchannelQueueChannel),o.rpc.getOpenchannelQueues().$promise.then(function(e){c.rpcOpenchannelQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}).then(function(e){return o.user.getQueues({id:r.getCurrentUser().id,channel:"openchannel"}).$promise}).then(function(e){return c.myQueues=e.rows,o.rpc.getOpenchannelQueuesWaitingInteractions().$promise}).then(function(e){var n=_.filter(e.rows,function(e){return _.find(c.myQueues,{id:e.queue_id})});e.rows=n,e.count=n.length,_.merge(c.rpcOpenchannelQueuesWaitingInteractions,e?_.keyBy(e.rows?e.rows:[],"id"):{})}).catch(function(e){console.error(e)}).finally(function(){for(var e=0;e<c.deleteOpenchannelQueuesWaitingInteractions.length;e+=1)delete c.rpcOpenchannelQueuesWaitingInteractions[c.deleteOpenchannelQueuesWaitingInteractions[e]];u=!1,c.deleteOpenchannelQueuesWaitingInteractions=[],v(),p()});var h=!0,f=1;e.$watch("vm_dc.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=f),c.getOpenchannelQueues())}),e.$on("$destroy",function(){l.removeAllListeners("openchannel_queue:save"),l.removeAllListeners("openchannelQueue:save"),l.removeAllListeners("openchannelQueue:update"),l.removeAllListeners("openchannelQueue:remove"),l.removeAllListeners("userOpenchannelQueue:save"),l.removeAllListeners("userOpenchannelQueue:remove"),l.removeAllListeners("openchannel_queue_waiting_interaction:save"),l.removeAllListeners("openchannel_queue_waiting_interaction:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardMultiChannelOpenchannelController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["id","name","mapAgentsId","waiting"],u=!0;function p(){var e=(c.queryChannels.page-1)*c.queryChannels.limit;c.paginatedInteractions=_.orderBy(c.rpcSmsQueuesWaitingInteractions,["joinAt"],["desc"]),c.interactions=_.drop(c.paginatedInteractions,e).slice(0,c.queryChannels.limit)}function g(e){c.smsQueuesTotal=e.count?e.count:0,c.smsQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.smsQueues,function(e,n){c.rpcSmsQueues[n]&&(c.smsQueues[n].waiting=c.rpcSmsQueues[n].waiting||0)})}function v(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.user.getQueues(c.query,g).$promise}c.smsQueues={},c.smsQueuesTotal=0,c.rpcSmsQueues={},c.paginatedInteractions=[],c.deleteSmsQueuesWaitingInteractions=[],c.rpcSmsQueuesWaitingInteractions={},c.query={id:r.getCurrentUser().id,channel:"sms",fields:"id,name,mapAgentsId,waiting",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=g,c.getSmsQueues=v,c.getSize=function(e){return _.size(e)},c.getColorByChannel=function(e){switch(e){case"chat":return"green-A700-bg";case"mail":return"teal-bg";case"sms":return"orange-bg";case"whatsapp":return"lime-A700-bg";case"openchannel":return"amber-A200-bg";case"fax":return"blue-grey-A200-bg";default:return"white-bg"}},c.paginate=p,c.onSaveQueue=function(e){c.smsQueues[e.id]&&c.rpcSmsQueues[e.id]&&(_.merge(c.rpcSmsQueues[e.id],_.pick(e,m)),_.merge(c.smsQueues[e.id],_.pick(e,m)))},c.onSaveSmsQueue=function(e){_.isNil(e)||(c.rpcSmsQueues[e.id]=_.pick(e,m))},c.onUpdateSmsQueue=function(e){_.isNil(e)||(c.rpcSmsQueues[e.id]&&_.merge(c.rpcSmsQueues[e.id],_.pick(e,m)),c.smsQueues[e.id]&&_.merge(c.smsQueues[e.id],_.pick(e,m)))},c.onRemoveSmsQueue=function(e){_.isNil(e)||(delete c.rpcSmsQueues[e.id],delete c.smsQueues[e.id])},c.onSaveUserSmsQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getSmsQueues()},c.onRemoveUserSmsQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getSmsQueues()},c.onSaveSmsQueueChannel=function(e){c.smsQueues[e.queue_id]&&(c.rpcSmsQueuesWaitingInteractions[e.id]=e,p())},c.onRemoveSmsQueueChannel=function(e){delete c.rpcSmsQueuesWaitingInteractions[e.id],u&&c.deleteSmsQueuesWaitingInteractions.push(e.id);p()},l.onWithoutApply("sms_queue:save",c.onSaveQueue),l.onWithoutApply("smsQueue:save",c.onSaveSmsQueue),l.onWithoutApply("smsQueue:update",c.onUpdateSmsQueue),l.onWithoutApply("smsQueue:remove",c.onRemoveSmsQueue),l.onWithoutApply("userSmsQueue:save",c.onSaveUserSmsQueue),l.onWithoutApply("userSmsQueue:remove",c.onRemoveUserSmsQueue),l.onWithoutApply("sms_queue_waiting_interaction:save",c.onSaveSmsQueueChannel),l.onWithoutApply("sms_queue_waiting_interaction:remove",c.onRemoveSmsQueueChannel),o.rpc.getSmsQueues().$promise.then(function(e){c.rpcSmsQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}).then(function(e){return o.user.getQueues({id:r.getCurrentUser().id,channel:"sms"}).$promise}).then(function(e){return c.myQueues=e.rows,o.rpc.getSmsQueuesWaitingInteractions().$promise}).then(function(e){var n=_.filter(e.rows,function(e){return _.find(c.myQueues,{id:e.queue_id})});e.rows=n,e.count=n.length,_.merge(c.rpcSmsQueuesWaitingInteractions,e?_.keyBy(e.rows?e.rows:[],"id"):{})}).catch(function(e){console.error(e)}).finally(function(){for(var e=0;e<c.deleteSmsQueuesWaitingInteractions.length;e+=1)delete c.rpcSmsQueuesWaitingInteractions[c.deleteSmsQueuesWaitingInteractions[e]];u=!1,c.deleteSmsQueuesWaitingInteractions=[],v(),p()});var h=!0,f=1;e.$watch("vm_dc.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=f),c.getSmsQueues())}),e.$on("$destroy",function(){l.removeAllListeners("sms_queue:save"),l.removeAllListeners("smsQueue:save"),l.removeAllListeners("smsQueue:update"),l.removeAllListeners("smsQueue:remove"),l.removeAllListeners("userSmsQueue:save"),l.removeAllListeners("userSmsQueue:remove"),l.removeAllListeners("sms_queue_waiting_interaction:save"),l.removeAllListeners("sms_queue_waiting_interaction:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardMultiChannelSmsController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["type","waiting","dialMethod","dialActive"];function u(e){c.voiceQueuesTotal=e.count?e.count:0,c.voiceQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.voiceQueues,function(e,n){c.rpcVoiceQueues[n]&&(c.voiceQueues[n].waiting=c.rpcVoiceQueues[n].waiting||0)})}c.voiceQueues={},c.voiceQueuesTotal=0,c.rpcVoiceQueues={},c.getVoiceQueues={},c.rpcVoiceQueuesChannels={},c.addVoiceQueuesChannels={},c.deleteVoiceQueuesChannels=[],c.load=!0,c.query={id:r.getCurrentUser().id,fields:"id,name,type,dialMethod,dialActive",channel:"voice",type:"inbound",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=u,c.getVoiceQueues=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.user.getQueues(c.query,u).$promise},c.getSize=function(e){return _.size(e)},c.onSaveQueue=function(e){c.voiceQueues[e.id]&&c.rpcVoiceQueues[e.id]&&(c.rpcVoiceQueues[e.id]=e,_.merge(c.voiceQueues[e.id],_.pick(e,m)))},c.onSaveChannel=function(e){"inbound"===e.type&&(e.queuecallerleaveAt?(delete c.rpcVoiceQueuesChannels[e.uniqueid],c.load&&c.deleteVoiceQueuesChannels.push(e.uniqueid)):(c.rpcVoiceQueuesChannels[e.uniqueid]=e,c.load&&(c.addVoiceQueuesChannels[e.uniqueid]=e)))},c.onUserVoiceQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getVoiceQueues()},c.onSaveVoiceQueue=function(e){_.isNil(e)||(c.rpcVoiceQueues[e.id]=_.pick(e,m))},c.onUpdateVoiceQueue=function(e){_.isNil(e)||(c.rpcVoiceQueues[e.id]&&_.merge(c.rpcVoiceQueues[e.id],_.pick(e,m)),c.voiceQueues[e.id]&&_.merge(c.voiceQueues[e.id],_.pick(e,m)))},c.onRemoveVoiceQueue=function(e){_.isNil(e)||(delete c.rpcVoiceQueues[e.id],delete c.voiceQueues[e.id])},l.onWithoutApply("voice_queue:save",c.onSaveQueue),l.onWithoutApply("voice_queue_channel:save",c.onSaveChannel),l.onWithoutApply("userVoiceQueue:save",c.onUserVoiceQueue),l.onWithoutApply("userVoiceQueue:remove",c.onUserVoiceQueue),l.onWithoutApply("voiceQueue:save",c.onSaveVoiceQueue),l.onWithoutApply("voiceQueue:remove",c.onRemoveVoiceQueue),l.onWithoutApply("voiceQueue:update",c.onUpdateVoiceQueue),o.user.getQueues(c.query).$promise.then(function(e){return c.myQueues=e,o.rpc.getVoiceQueues().$promise}).then(function(e){for(var n=e.rows,t=_.keyBy(n,"id"),a=0;a<c.myQueues.count;a++){var i=c.myQueues.rows[a];c.rpcVoiceQueues[i.id]=t[i.id]}return o.rpc.getVoiceQueuesChannels().$promise}).then(function(e){c.rpcVoiceQueuesChannels=e?_.keyBy(e.rows?_.filter(e.rows,function(e){return!("inbound"!==e.type||e.queuecallerleaveAt||!_.find(c.myQueues.rows,{name:e.queue}))}):[],"uniqueid"):{}}).catch(function(e){console.error(e)}).finally(function(){_.merge(c.rpcVoiceQueuesChannels,c.addVoiceQueuesChannels);for(var e=0;e<c.deleteVoiceQueuesChannels.length;e+=1)delete c.rpcVoiceQueuesChannels[c.deleteVoiceQueuesChannels[e]];c.load=!1,c.addVoiceQueuesChannels={},c.deleteVoiceQueuesChannels=[],c.getVoiceQueues()});var p=!0,g=1;e.$watch("vm_dc.query.filter",function(e,n){p?t(function(){p=!1}):(n||(g=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=g),c.getVoiceQueues())}),e.$on("$destroy",function(){l.removeAllListeners("voice_queue:save"),l.removeAllListeners("voice_queue_channel:save"),l.removeAllListeners("userVoiceQueue:save"),l.removeAllListeners("userVoiceQueue:remove"),l.removeAllListeners("voiceQueue:save"),l.removeAllListeners("voiceQueue:update"),l.removeAllListeners("voiceQueue:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardVoiceController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["id","name","mapAgentsId","waiting"],u=!0;function p(){var e=(c.queryChannels.page-1)*c.queryChannels.limit;c.paginatedInteractions=_.orderBy(c.rpcWhatsappQueuesWaitingInteractions,["joinAt"],["desc"]),c.interactions=_.drop(c.paginatedInteractions,e).slice(0,c.queryChannels.limit)}function g(e){c.whatsappQueuesTotal=e.count?e.count:0,c.whatsappQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.whatsappQueues,function(e,n){c.rpcWhatsappQueues[n]&&(c.whatsappQueues[n].waiting=c.rpcWhatsappQueues[n].waiting||0)})}function v(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.user.getQueues(c.query,g).$promise}c.whatsappQueues={},c.whatsappQueuesTotal=0,c.rpcWhatsappQueues={},c.paginatedInteractions=[],c.deleteWhatsappQueuesWaitingInteractions=[],c.rpcWhatsappQueuesWaitingInteractions={},c.query={id:r.getCurrentUser().id,channel:"whatsapp",fields:"id,name,mapAgentsId,waiting",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=g,c.getWhatsappQueues=v,c.getSize=function(e){return _.size(e)},c.getColorByChannel=function(e){switch(e){case"chat":return"green-A700-bg";case"mail":return"teal-bg";case"sms":return"orange-bg";case"whatsapp":return"lime-A700-bg";case"openchannel":return"amber-A200-bg";case"fax":return"blue-grey-A200-bg";default:return"white-bg"}},c.paginate=p,c.onSaveQueue=function(e){c.whatsappQueues[e.id]&&c.rpcWhatsappQueues[e.id]&&(_.merge(c.rpcWhatsappQueues[e.id],_.pick(e,m)),_.merge(c.whatsappQueues[e.id],_.pick(e,m)))},c.onSaveWhatsappQueue=function(e){_.isNil(e)||(c.rpcWhatsappQueues[e.id]=_.pick(e,m))},c.onUpdateWhatsappQueue=function(e){_.isNil(e)||(c.rpcWhatsappQueues[e.id]&&_.merge(c.rpcWhatsappQueues[e.id],_.pick(e,m)),c.whatsappQueues[e.id]&&_.merge(c.whatsappQueues[e.id],_.pick(e,m)))},c.onRemoveWhatsappQueue=function(e){_.isNil(e)||(delete c.rpcWhatsappQueues[e.id],delete c.whatsappQueues[e.id])},c.onSaveUserWhatsappQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getWhatsappQueues()},c.onRemoveUserWhatsappQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getWhatsappQueues()},c.onSaveWhatsappQueueChannel=function(e){c.whatsappQueues[e.queue_id]&&(c.rpcWhatsappQueuesWaitingInteractions[e.id]=e,p())},c.onRemoveWhatsappQueueChannel=function(e){delete c.rpcWhatsappQueuesWaitingInteractions[e.id],u&&c.deleteWhatsappQueuesWaitingInteractions.push(e.id);p()},l.onWithoutApply("whatsapp_queue:save",c.onSaveQueue),l.onWithoutApply("whatsappQueue:save",c.onSaveWhatsappQueue),l.onWithoutApply("whatsappQueue:update",c.onUpdateWhatsappQueue),l.onWithoutApply("whatsappQueue:remove",c.onRemoveWhatsappQueue),l.onWithoutApply("userWhatsappQueue:save",c.onSaveUserWhatsappQueue),l.onWithoutApply("userWhatsappQueue:remove",c.onRemoveUserWhatsappQueue),l.onWithoutApply("whatsapp_queue_waiting_interaction:save",c.onSaveWhatsappQueueChannel),l.onWithoutApply("whatsapp_queue_waiting_interaction:remove",c.onRemoveWhatsappQueueChannel),o.rpc.getWhatsappQueues().$promise.then(function(e){c.rpcWhatsappQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}).then(function(e){return o.user.getQueues({id:r.getCurrentUser().id,channel:"whatsapp"}).$promise}).then(function(e){return c.myQueues=e.rows,o.rpc.getWhatsappQueuesWaitingInteractions().$promise}).then(function(e){var n=_.filter(e.rows,function(e){return _.find(c.myQueues,{id:e.queue_id})});e.rows=n,e.count=n.length,_.merge(c.rpcWhatsappQueuesWaitingInteractions,e?_.keyBy(e.rows?e.rows:[],"id"):{})}).catch(function(e){console.error(e)}).finally(function(){for(var e=0;e<c.deleteWhatsappQueuesWaitingInteractions.length;e+=1)delete c.rpcWhatsappQueuesWaitingInteractions[c.deleteWhatsappQueuesWaitingInteractions[e]];u=!1,c.deleteWhatsappQueuesWaitingInteractions=[],v(),p()});var h=!0,f=1;e.$watch("vm_dc.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=f),c.getWhatsappQueues())}),e.$on("$destroy",function(){l.removeAllListeners("whatsapp_queue:save"),l.removeAllListeners("whatsappQueue:save"),l.removeAllListeners("whatsappQueue:update"),l.removeAllListeners("whatsappQueue:remove"),l.removeAllListeners("userWhatsappQueue:save"),l.removeAllListeners("userWhatsappQueue:remove"),l.removeAllListeners("whatsapp_queue_waiting_interaction:save"),l.removeAllListeners("whatsapp_queue_waiting_interaction:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardMultiChannelWhatsappController",e)}(),function(){"use strict";function e(i,t,s,o,a,n,r,e,l,d,c){var m=this;function u(e){!m.reloadingInteractions&&0<m.setting.faxInteractionsReloadTimeout&&function(e){e&&m.interactionsInterval&&t.cancel(m.interactionsInterval);m.interactionsInterval=t(function(){m.reloadingInteractions=!0,m.searchInProgress||p()},1e3*m.setting.faxInteractionsReloadTimeout)}(!0),m.searchInProgress=!1,m.reloadingInteractions=!1,m.faxInteractions=e||{count:0,rows:[]};for(var n=0;n<m.faxInteractions.rows.length;n+=1)g(m.faxInteractions.rows[n])}function p(e,n){m.searchInProgress=!0,e||(m.query.page=1),m.query.offset=(m.query.page-1)*m.query.limit;var t=a.localStorage.getItem("motion2.home.fax:"+m.user.id);(t=t?JSON.parse(t):{}).query=m.query,a.localStorage.setItem("motion2.home.fax:"+m.user.id,JSON.stringify(t)),m.promise=r.faxInteraction.get(m.query,u).$promise}function g(e){e.contactInfo=e.Contact?e.Contact.fax:void 0,"Unknown"===e.contactName&&(e.contactName=n.instant("DASHBOARDS.UNKNOWN"))}function v(e){var n=_.find(m.faxInteractions.rows,{id:e.FaxInteractionId});n&&n.Users&&(_.find(n.Users,{id:e.UserId})||n.Users.push({id:e.UserId}))}function h(e){var n=_.find(m.faxInteractions.rows,{id:e.FaxInteractionId});n&&n.Users&&_.remove(n.Users,{id:e.UserId})}function f(e){if(e){var n=_.find(m.faxInteractions.rows,{id:e.id});if(n){if(n.Users=[],e.closed&&(n.unreadMessages=0),m.query.sort){var t=_.startsWith(m.query.sort,"-")?"desc":"asc";m.faxInteractions.rows=_.orderBy(m.faxInteractions.rows,_.trimStart(m.query.sort,"-"),t)}_.merge(n,_.pick(e,_.keys(n)))}else p(m.query.page)}}function b(e){if(e){var n=_.find(m.faxInteractions.rows,{id:e.id});n&&(n.Tags=e.tags||[],_.merge(n,_.pick(e,_.keys(n))))}}function A(e){if(e&&!e.secret){var n=_.find(m.faxInteractions.rows,{id:e.FaxInteractionId});if(n){var t=_.find(n.Messages,{id:e.id});t?_.merge(t,_.pick(e,_.keys(t))):(_.isNil(n.Messages)&&(n.Messages={count:0}),e.read||(n.Messages.count+=1))}}}m.user=e.getCurrentUser(),m.license={},m.setting={},m.tags={count:0,rows:[]},m.faxInteractions={count:0,rows:[]},m.query={includeAll:!0,sort:"-updatedAt",limit:10,page:1,read:null,closed:null},m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Account",column:"FaxAccountId",type:"multiselect",options:{route:{model:"user",action:"getFaxAccounts",params:{id:m.user.id,nolimit:!0}}}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},m.sectionColor="blue-grey",m.onInit=function(e,n){return m.license=e,m.setting=n,r.user["get"+_.upperFirst("faxAccounts")]({id:m.user.id,nolimit:!0}).$promise.then(function(e){return m.faxAccounts=e||{count:0,rows:[]},r.tag.get({sort:"name"}).$promise}).then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Account",key:"FaxAccountId",type:"multiselect",label:"DASHBOARDS.SELECT_ACCOUNT",options:m.faxAccounts.rows,clearAll:!1},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:m.user.id,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=a.localStorage.getItem("motion2.home.fax:"+m.user.id);if(e)try{(e=JSON.parse(e)).query&&(m.query=_.merge(m.query,e.query),_.isEmpty(m.faxAccounts.rows)?m.query.FaxAccountId=[]:_.isEmpty(m.query.FaxAccountId)&&(m.query.FaxAccountId=_(m.faxAccounts.rows).map("id").take().value()),m.query.sort&&0<=m.query.sort.indexOf("lastMessage")&&(m.query=_.omit(m.query,"sort")),m.query.includeAll=!0,m.isSearchBarVisible=!(m.query.search||!m.query.filter))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()},t={FaxAccountId:_.map(m.faxAccounts.rows,"id"),createdAt:n};m.query=_.merge(m.query,t)}l.on("faxInteraction:save",f),l.on("faxInteraction:update",f),l.on("faxInteractionTags:save",b),l.on("faxMessage:save",A),l.on("faxMessage:update",A),l.on("user_has_fax_interactions:save",v),l.on("user_has_fax_interactions:remove",h),p(m.query.page)})},m.success=u,m.getFaxInteractions=p,m.showFaxInteraction=function(e,n){i.$parent.vm.addInteractionTab("fax",n)},m.downloadFaxInteraction=function(e,s,n){r.faxInteraction.download({id:s.id,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="fax-interaction"+s.id+".zip",a=new Blob(n,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"downloadFaxInteraction",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.disposeInteraction=function(e,t){var a=m.user.voicePause||m.user.chatPause||m.user.mailPause||m.user.openchannelPause||m.user.faxPause,n=!t.Account.mandatoryDisposition;s.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(o.body),clickOutsideToClose:n,escapeToClose:n,onRemoving:function(e,n){m.user&&t.Account.mandatoryDisposition&&!a&&r.user.unpause({id:m.user.id}).$promise.catch(function(e){console.error(e)})},locals:{user:m.user,channel:"fax",interaction:t}})},m.getContactLabel=g,m.getAgentLabel=function(e){if(e.UserId)return e.UserId===m.user.id?n.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">";return n.instant("DASHBOARDS.NOT_ASSIGNED")},m.getFaxAccountLabel=function(e){if(e.Account)return e.Account.key;return n.instant("DASHBOARDS.UNKNOWN")},m.composeFaxInteraction=function(e,a){s.show({controller:"ComposeFaxInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/fax/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{account:a,message:{},type:"new",interaction:{}},fullscreen:!0}).then(function(e){if(e){if(!e.message||!e.message.savedAsDraft){var n=e;return r.faxAccount.send({id:a.id},n).$promise.then(function(e){d.success({title:"Message properly sent!",msg:"Message has been sent!"}),i.$parent.vm.addInteractionTab("fax",e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:"FAX:SEND",msg:e.data?JSON.stringify(e.data):e.message||e.toString()})})}var t={channel:"fax",account:a,message:e.message,contact:e.contact};c.add(t)}})},m.openAdvancedSearch=function(){s.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{color:m.sectionColor,fields:m.advancedSearch.fields,storagePath:"home.fax"},fullscreen:!0}).then(function(e){m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply&&(m.query.search=e.value,p())}).catch(function(e){d.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},i.$on("$destroy",function(){l.removeAllListeners("faxMessage:save"),l.removeAllListeners("faxMessage:update"),l.removeAllListeners("faxInteraction:save"),l.removeAllListeners("faxInteractionTags:save"),l.removeAllListeners("faxInteraction:update"),l.removeAllListeners("user_has_fax_interactions:save"),l.removeAllListeners("user_has_fax_interactions:remove"),m.interactionsInterval&&t.cancel(m.interactionsInterval)})}e.$inject=["$scope","$interval","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty","draftManager"],angular.module("app.dashboards").controller("AgentHomeFaxController",e)}(),function(){"use strict";function e(o,n,r,l,a,t,d,e,i,c,m){var u=this;function s(e){!u.reloadingInteractions&&0<u.setting.mailInteractionsReloadTimeout&&y(!0),u.searchInProgress=!1,u.reloadingInteractions=!1,u.mailInteractions=e||{count:0,rows:[]};for(var n=0;n<u.mailInteractions.rows.length;n+=1)v(u.mailInteractions.rows[n])}function p(e,n){u.searchInProgress=!0,e||(u.query.page=1),(void 0===u.query.closed||null===u.query.closed||u.query.closed)&&delete u.query.substatus,u.query.offset=(u.query.page-1)*u.query.limit;var t=a.localStorage.getItem("motion2.home.mail:"+u.user.id);(t=t?JSON.parse(t):{}).query=u.query,a.localStorage.setItem("motion2.home.mail:"+u.user.id,JSON.stringify(t)),u.promise=d.mailInteraction.get(u.query,s).$promise}function g(e,n){o.$parent.vm.addInteractionTab("mail",n)}function v(e){_.isEmpty(e.to)||!e.Account||_.includes(e.to,e.Account.email)?e.contactInfo=e.Contact?e.Contact.email:void 0:e.contactInfo=e.to.split("<").pop().split(">")[0],"Unknown"===e.contactName&&(e.contactName=t.instant("DASHBOARDS.UNKNOWN"))}function h(e){var n=_.find(u.mailInteractions.rows,{id:e.MailInteractionId});n&&n.Users&&(_.find(n.Users,{id:e.UserId})||n.Users.push({id:e.UserId}))}function f(e){var n=_.find(u.mailInteractions.rows,{id:e.MailInteractionId});n&&n.Users&&_.remove(n.Users,{id:e.UserId})}function b(e){if(e){var n=_.find(u.mailInteractions.rows,{id:e.id});if(n){if(n.Users=[],e.closed&&(n.unreadMessages=0),u.query.sort){var t=_.startsWith(u.query.sort,"-")?"desc":"asc";u.mailInteractions.rows=_.orderBy(u.mailInteractions.rows,_.trimStart(u.query.sort,"-"),t)}_.merge(n,_.pick(e,_.keys(n)))}else 0===u.setting.mailInteractionsReloadTimeout&&p(u.query.page)}}function A(e){if(e){var n=_.find(u.mailInteractions.rows,{id:e.id});n&&(n.Tags=e.tags||[],_.merge(n,_.pick(e,_.keys(n))))}}function E(e){if(e&&!e.secret){var n=_.find(u.mailInteractions.rows,{id:e.MailInteractionId});if(n){var t=_.find(n.Messages,{id:e.id});t?_.merge(t,_.pick(e,_.keys(t))):(_.isNil(n.Messages)&&(n.Messages={count:0}),e.read||(n.Messages.count+=1))}}}function y(e){e&&u.interactionsInterval&&n.cancel(u.interactionsInterval),u.interactionsInterval=n(function(){u.reloadingInteractions=!0,u.searchInProgress||p()},1e3*u.setting.mailInteractionsReloadTimeout)}u.user=e.getCurrentUser(),u.license={},u.setting={},u.tags={count:0,rows:[]},u.mailInteractions={count:0,rows:[]},u.query={includeAll:!0,sort:"-updatedAt",limit:10,page:1,read:null,closed:null},u.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Subject",column:"subject",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Body",column:"plainBody",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Substatus",column:"substatus",type:"multiselect",options:{field:"name",route:{model:"mailSubstatus",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Account",column:"MailAccountId",type:"multiselect",options:{route:{model:"user",action:"getMailAccounts",params:{id:u.user.id,nolimit:!0}}}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},u.sectionColor="teal",u.onInit=function(e,n){return u.license=e,u.setting=n,d.user["get"+_.upperFirst("mailAccounts")]({id:u.user.id,nolimit:!0}).$promise.then(function(e){return u.mailAccounts=e||{count:0,rows:[]},d.tag.get({sort:"name"}).$promise}).then(function(e){u.tags=e||{count:0,rows:[]}}).then(function(){return d.mailSubstatus.get({nolimit:!0}).$promise}).then(function(e){u.subStatuses=e||{count:0,rows:[]}}).then(function(){u.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Substatus",key:"substatus",type:"select",label:"DASHBOARDS.SELECT_SUBSTATUS",options:u.subStatuses.rows,customOptions:[{value:"null",translate:"DASHBOARDS.NONE"},{value:void 0,translate:"DASHBOARDS.ALL"}],ngValue:"name",ngIf:"closed === 0"},{name:"Account",key:"MailAccountId",type:"multiselect",label:"DASHBOARDS.SELECT_ACCOUNT",options:u.mailAccounts.rows,clearAll:!1},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:u.user.id,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:u.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=a.localStorage.getItem("motion2.home.mail:"+u.user.id);if(e)try{(e=JSON.parse(e)).query&&(u.query=_.merge(u.query,e.query),_.isEmpty(u.mailAccounts.rows)?u.query.MailAccountId=[]:_.isEmpty(u.query.MailAccountId)&&(u.query.MailAccountId=_(u.mailAccounts.rows).map("id").take().value()),u.query.sort&&0<=u.query.sort.indexOf("lastMessage")&&(u.query=_.omit(u.query,"sort")),u.query.includeAll=!0,u.isSearchBarVisible=!(u.query.search||!u.query.filter))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()},t={MailAccountId:_.map(u.mailAccounts.rows,"id"),createdAt:n};u.query=_.merge(u.query,t)}i.on("mailInteraction:save",b),i.on("mailInteraction:update",b),i.on("mailInteractionTags:save",A),i.on("mailMessage:save",E),i.on("mailMessage:update",E),i.on("user_has_mail_interactions:save",h),i.on("user_has_mail_interactions:remove",f),p(u.query.page),0<u.setting.mailInteractionsReloadTimeout&&y()})},u.success=s,u.getMailInteractions=p,u.showMailInteraction=g,u.downloadMailInteraction=function(e,s,n){d.mailInteraction.download({id:s.id,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="mail-interaction"+s.id+".zip",a=new Blob(n,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)c.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"downloadMailInteraction",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.disposeInteraction=function(e,t){var a=u.user.voicePause||u.user.chatPause||u.user.mailPause||u.user.openchannelPause||u.user.faxPause,n=!t.Account.mandatoryDisposition;r.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(l.body),clickOutsideToClose:n,escapeToClose:n,onRemoving:function(e,n){u.user&&t.Account.mandatoryDisposition&&!a&&d.user.unpause({id:u.user.id}).$promise.catch(function(e){console.error(e)})},locals:{user:u.user,channel:"mail",interaction:t}})},u.getContactLabel=v,u.getAgentLabel=function(e){if(e.UserId)return e.UserId===u.user.id?t.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">";return t.instant("DASHBOARDS.NOT_ASSIGNED")},u.getMailAccountLabel=function(e){if(e.Account)return e.Account.key;return t.instant("DASHBOARDS.UNKNOWN")},u.composeMailInteraction=function(e,s){r.show({controller:"ComposeMailInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/mail/dialog.html",parent:angular.element(l.body),clickOutsideToClose:!1,locals:{account:s,message:{},type:"new",interaction:{}},fullscreen:!0}).then(function(e){if(e){if(!e.message||!e.message.savedAsDraft){var i=e;return d.mailAccount.send({id:s.id},i).$promise.then(function(e){if(e&&e.Messages&&e.Messages.length){if(i.attachments&&i.attachments.length)for(var n=0;n<i.attachments.length;n+=1)d.attachment.update({id:i.attachments[n].id},{MailMessageId:_.head(e.Messages).id});if(c.success({title:"Message properly sent!",msg:"Message has been sent!"}),e.closed){e.disposition=null;var t=!s.mandatoryDisposition,a=u.user.voicePause||u.user.chatPause||u.user.mailPause||u.user.openchannelPause||u.user.faxPause;r.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(l.body),onRemoving:function(e,n){u.user&&s.mandatoryDisposition&&!a&&d.user.unpause({id:u.user.id}).$promise.catch(function(e){console.error(e)})},clickOutsideToClose:t,escapeToClose:t,locals:{user:u.user,channel:"mail",interaction:e}})}else o.$parent.vm.addInteractionTab("mail",e)}}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)c.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"MAILACCOUNT:SEND",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}var n={channel:"mail",account:s,message:e.message,contact:e.contact};m.add(n)}})},u.openAdvancedSearch=function(){r.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(l.body),clickOutsideToClose:!1,locals:{color:u.sectionColor,fields:u.advancedSearch.fields,storagePath:"home.mail"},fullscreen:!0}).then(function(e){u.isSearchBarVisible=!(e.value||!u.query.filter),e.apply&&(u.query.search=e.value,p())}).catch(function(e){c.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},o.$on("openMailDraft",function(e,s){s.interaction?(s.interaction.isDraft=!0,g(null,s.interaction)):r.show({controller:"ComposeMailInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/mail/dialog.html",parent:angular.element(l.body),clickOutsideToClose:!1,locals:{account:s.account,message:s.content,type:"draft",interaction:{}},fullscreen:!0}).then(function(e){if(e){if(!e.message||!e.message.savedAsDraft){var i=e;return d.mailAccount.send({id:s.account.id},i).$promise.then(function(e){if(m.remove(s.id),e&&e.Messages&&e.Messages.length){if(i.attachments&&i.attachments.length)for(var n=0;n<i.attachments.length;n+=1)d.attachment.update({id:i.attachments[n].id},{MailMessageId:_.head(e.Messages).id});if(c.success({title:"Message properly sent!",msg:"Message has been sent!"}),e.closed){e.disposition=null;var t=!s.account.mandatoryDisposition,a=u.user.voicePause||u.user.chatPause||u.user.mailPause||u.user.openchannelPause||u.user.faxPause;r.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(l.body),onRemoving:function(e,n){u.user&&s.account.mandatoryDisposition&&!a&&d.user.unpause({id:u.user.id}).$promise.catch(function(e){console.error(e)})},clickOutsideToClose:t,escapeToClose:t,locals:{user:u.user,channel:"mail",interaction:e}})}else o.$parent.vm.addInteractionTab("mail",e)}}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)c.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"MAILACCOUNT:SEND",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}var n={id:s.id,channel:"mail",account:e.account,message:e.message};m.update(n)}})}),o.$on("$destroy",function(){i.removeAllListeners("mailMessage:save"),i.removeAllListeners("mailMessage:update"),i.removeAllListeners("mailInteraction:save"),i.removeAllListeners("mailInteractionTags:save"),i.removeAllListeners("mailInteraction:update"),i.removeAllListeners("user_has_mail_interactions:save"),i.removeAllListeners("user_has_mail_interactions:remove"),u.interactionsInterval&&n.cancel(u.interactionsInterval)})}e.$inject=["$scope","$interval","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty","draftManager"],angular.module("app.dashboards").controller("AgentHomeMailController",e)}(),function(){"use strict";function e(t,a,e,i,n,s,o,r){var l=this;function d(e){l.searchInProgress=!1,l.contacts=e||{count:0,rows:[]}}function c(e,n){l.searchInProgress=!0,s.cmContact.describe({id:l.query.ListId}).$promise.then(function(e){return _(e.toJSON()).omit("UserId").values().map(function(e){return function(e){var n={name:_.startCase(e.displayName),column:e.columnName,options:{}};if(e.custom)switch(e.custom.type){case"text":n.type="text";break;case"select":n.type="multiselect",n.values=_.map(JSON.parse(e.custom.values),function(e,n){return{id:n,name:e.value,value:e.value}}),n.options.field="name";break;case"switch":n.type="select",n.values=[{id:1,translate:"DASHBOARDS.ENABLED"},{id:0,translate:"DASHBOARDS.DISABLED"}],n.options.excludedOperators=["$ne"];break;case"number":n.type="number";break;case"datetime":n.type="date"}else switch(e.columnName){case"dateOfBirth":n.type="date";break;case"CompanyId":n.name="Company",n.type="autocomplete",n.options.route={model:"cmCompany",action:"get",params:{fields:"id,name",nolimit:!0}},n.options.searchFields=["name"],n.options.excludedOperators=["$ne"];break;case"ListId":n.name="List",n.type="autocomplete",n.options.route={model:"user",action:"getLists",params:{id:l.currentUser.id,fields:"id,name",nolimit:!0}},n.options.searchFields=["name"],n.options.excludedOperators=["$ne"];break;default:_.includes(e.type.toLowerCase(),"int")?n.type="number":_.includes(e.type.toLowerCase(),"date")?n.type="date":n.type="text"}return n}(e)}).value()}).then(function(e){l.advancedSearch.fields=e;var n=_.findIndex(e,function(e){return _.startsWith(e.column,"cf_")})||e.length-1;n<0&&(n=e.length),l.advancedSearch.fields.splice(n,0,{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"DESCRIBE_CM_CONTACTS",msg:e.data?JSON.stringify(e.data.message):e.toString()})}),e||(l.query.page=1),l.query.offset=(l.query.page-1)*l.query.limit;var t=o.localStorage.getItem("motion2.home.mycontacts:"+l.currentUser.id);(t=t?JSON.parse(t):{}).query=l.query,o.localStorage.setItem("motion2.home.mycontacts:"+l.currentUser.id,JSON.stringify(t)),l.query.search&&(l.advancedQuery=_.omit(l.query,"id")),l.promise=l.query.search?s.cmContact.get(l.advancedQuery,d).$promise:s.user.getContacts(l.query,d).$promise}l.currentUser=n.getCurrentUser(),l.lists={},l.contacts={count:0,rows:[]},l.tags={count:0,rows:[]},l.query={includeAll:!0,id:l.currentUser.id,sort:"-updatedAt",limit:10,page:1},l.advancedSearch={fields:[]},l.sectionColor="red",l.getContacts=c,l.refreshContacts=function(){c()},l.mergeContact=function(e,n){i.show({controller:"MergeContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/merge/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:n.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:l.currentUser.id,fields:"id,name"})}]},locals:{contacts:l.contacts.rows}})},l.duplicateContact=function(e,n){i.show({controller:"DuplicateContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/duplicate/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:n.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:l.currentUser.id,fields:"id,name"})}]},locals:{contacts:l.contacts.rows}})},l.openContact=function(e,n){a.$parent.vm.addContactTab(n)},l.call=a.$parent.vm.call,l.onInit=function(){s.cmList.get({fields:"id,name,dialPrefix",sort:"name",nolimit:!0}).$promise.then(function(e){return l.lists=e||{count:0,rows:[]},l.listsMap=_.keyBy(l.lists.rows,"id"),s.tag.get({sort:"name"}).$promise}).then(function(e){l.tags=e||{count:0,rows:[]}}).then(function(){l.quickFilters=[{name:"List",key:"ListId",type:"multiselect",label:"CONTACTMANAGER.SELECT_LIST",options:l.lists.rows,clearAll:!1},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:l.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=o.localStorage.getItem("motion2.home.mycontacts:"+l.currentUser.id);if(e)try{(e=JSON.parse(e)).query&&(l.query=_.merge(l.query,e.query),_.isEmpty(l.lists.rows)?l.query.ListId=[]:_.isEmpty(l.query.ListId)&&(l.query.ListId=_(l.lists.rows).map("id").take().value()))}catch(e){console.error(e)}else l.query.ListId=_.map(l.lists.rows,"id");l.isSearchBarVisible=!(l.query.search||!l.query.filter),c()})},l.openAdvancedSearch=function(){i.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{color:l.sectionColor,fields:l.advancedSearch.fields,storagePath:"home.mycontacts"},fullscreen:!0}).then(function(e){l.isSearchBarVisible=!(e.value||!l.query.filter),e.apply&&(l.query.search=e.value?e.value+="||User:=$eq["+l.currentUser.id+"]":e.value,c())}).catch(function(e){r.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}}e.$inject=["$document","$scope","$timeout","$mdDialog","Auth","api","$window","toasty"],angular.module("app.dashboards").controller("AgentHomeMyContactsController",e)}(),function(){"use strict";function e(i,n,s,o,a,t,r,e,l,d,c){var m=this;function u(e){!m.reloadingInteractions&&0<m.setting.openchannelInteractionsReloadTimeout&&E(!0),m.searchInProgress=!1,m.reloadingInteractions=!1,m.openchannelInteractions=e||{count:0,rows:[]};for(var n=0;n<m.openchannelInteractions.rows.length;n+=1)g(m.openchannelInteractions.rows[n])}function p(e,n){m.searchInProgress=!0,e||(m.query.page=1),m.query.offset=(m.query.page-1)*m.query.limit;var t=a.localStorage.getItem("motion2.home.openchannel:"+m.user.id);(t=t?JSON.parse(t):{}).query=m.query,a.localStorage.setItem("motion2.home.openchannel:"+m.user.id,JSON.stringify(t)),m.promise=r.openchannelInteraction.get(m.query,u).$promise}function g(e){"Unknown"===e.contactName&&(e.contactName=t.instant("DASHBOARDS.UNKNOWN"))}function v(e){var n=_.find(m.openchannelInteractions.rows,{id:e.OpenchannelInteractionId});n&&n.Users&&(_.find(n.Users,{id:e.UserId})||n.Users.push({id:e.UserId}))}function h(e){var n=_.find(m.openchannelInteractions.rows,{id:e.OpenchannelInteractionId});n&&n.Users&&_.remove(n.Users,{id:e.UserId})}function f(e){if(e){var n=_.find(m.openchannelInteractions.rows,{id:e.id});if(n){if(n.Users=[],e.closed&&(n.unreadMessages=0),m.query.sort){var t=_.startsWith(m.query.sort,"-")?"desc":"asc";m.openchannelInteractions.rows=_.orderBy(m.openchannelInteractions.rows,_.trimStart(m.query.sort,"-"),t)}_.merge(n,_.pick(e,_.keys(n)))}else 0===m.setting.openchannelInteractionsReloadTimeout&&p(m.query.page)}}function b(e){if(e){var n=_.find(m.openchannelInteractions.rows,{id:e.id});n&&(n.Tags=e.tags||[],_.merge(n,_.pick(e,_.keys(n))))}}function A(e){if(e&&!e.secret){var n=_.find(m.openchannelInteractions.rows,{id:e.OpenchannelInteractionId});if(n){var t=_.find(n.Messages,{id:e.id});t?_.merge(t,_.pick(e,_.keys(t))):(_.isNil(n.Messages)&&(n.Messages={count:0}),e.read||(n.Messages.count+=1))}}}function E(e){e&&m.interactionsInterval&&n.cancel(m.interactionsInterval),m.interactionsInterval=n(function(){m.reloadingInteractions=!0,m.searchInProgress||p()},1e3*m.setting.openchannelInteractionsReloadTimeout)}m.user=e.getCurrentUser(),m.license={},m.setting={},m.tags={count:0,rows:[]},m.openchannelInteractions={count:0,rows:[]},m.query={includeAll:!0,sort:"-updatedAt",limit:10,page:1,read:null,closed:null},m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Account",column:"OpenchannelAccountId",type:"multiselect",options:{route:{model:"user",action:"getOpenchannelAccounts",params:{id:m.user.id,nolimit:!0}}}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},m.sectionColor="amber",m.onInit=function(e,n){return m.license=e,m.setting=n,r.user["get"+_.upperFirst("openchannelAccounts")]({id:m.user.id,nolimit:!0}).$promise.then(function(e){return m.openchannelAccounts=e||{count:0,rows:[]},r.tag.get({sort:"name"}).$promise}).then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Account",key:"OpenchannelAccountId",type:"multiselect",label:"DASHBOARDS.SELECT_ACCOUNT",options:m.openchannelAccounts.rows,clearAll:!1},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:m.user.id,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=a.localStorage.getItem("motion2.home.openchannel:"+m.user.id);if(e)try{(e=JSON.parse(e)).query&&(m.query=_.merge(m.query,e.query),_.isEmpty(m.openchannelAccounts.rows)?m.query.OpenchannelAccountId=[]:_.isEmpty(m.query.OpenchannelAccountId)&&(m.query.OpenchannelAccountId=_(m.openchannelAccounts.rows).map("id").take().value()),m.query.sort&&0<=m.query.sort.indexOf("lastMessage")&&(m.query=_.omit(m.query,"sort")),m.query.includeAll=!0,m.isSearchBarVisible=!(m.query.search||!m.query.filter))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()},t={OpenchannelAccountId:_.map(m.openchannelAccounts.rows,"id"),createdAt:n};m.query=_.merge(m.query,t)}l.on("openchannelInteraction:save",f),l.on("openchannelInteraction:update",f),l.on("openchannelInteractionTags:save",b),l.on("openchannelMessage:save",A),l.on("openchannelMessage:update",A),l.on("user_has_openchannel_interactions:save",v),l.on("user_has_openchannel_interactions:remove",h),p(m.query.page),0<m.setting.openchannelInteractionsReloadTimeout&&E()})},m.success=u,m.getOpenchannelInteractions=p,m.showOpenchannelInteraction=function(e,n){i.$parent.vm.addInteractionTab("openchannel",n)},m.downloadOpenchannelInteraction=function(e,s,n){r.openchannelInteraction.download({id:s.id,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="openchannel-interaction"+s.id+".zip",a=new Blob(n,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"downloadOpenchannelInteraction",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.disposeInteraction=function(e,t){var a=m.user.voicePause||m.user.chatPause||m.user.mailPause||m.user.openchannelPause||m.user.faxPause,n=!t.Account.mandatoryDisposition;s.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(o.body),clickOutsideToClose:n,escapeToClose:n,onRemoving:function(e,n){m.user&&t.Account.mandatoryDisposition&&!a&&r.user.unpause({id:m.user.id}).$promise.catch(function(e){console.error(e)})},locals:{user:m.user,channel:"openchannel",interaction:t}})},m.getContactLabel=g,m.getAgentLabel=function(e){if(e.UserId)return e.UserId===m.user.id?t.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">";return t.instant("DASHBOARDS.NOT_ASSIGNED")},m.getOpenchannelAccountLabel=function(e){if(e.Account)return e.Account.key;return t.instant("DASHBOARDS.UNKNOWN")},m.composeOpenchannelInteraction=function(e,a){s.show({controller:"ComposeOpenchannelInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/openchannel/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{account:a,message:{},type:"new",interaction:{}},fullscreen:!0}).then(function(e){if(e){if(!e.message||!e.message.savedAsDraft){var n=e;return r.openchannelAccount.send({id:a.id},n).$promise.then(function(e){d.success({title:"Message properly sent!",msg:"Message has been sent!"}),i.$parent.vm.addInteractionTab("openchannel",e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"OPENCHANNELACCOUNT:SEND",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}var t={channel:"openchannel",account:a,message:e.message,contact:e.contact};c.add(t)}})},m.openAdvancedSearch=function(){s.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{color:m.sectionColor,fields:m.advancedSearch.fields,storagePath:"home.openchannel"},fullscreen:!0}).then(function(e){m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply&&(m.query.search=e.value,p())}).catch(function(e){d.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},i.$on("$destroy",function(){l.removeAllListeners("openchannelMessage:save"),l.removeAllListeners("openchannelMessage:update"),l.removeAllListeners("openchannelInteraction:save"),l.removeAllListeners("openchannelInteractionTags:save"),l.removeAllListeners("openchannelInteraction:update"),l.removeAllListeners("user_has_openchannel_interactions:save"),l.removeAllListeners("user_has_openchannel_interactions:remove"),m.interactionsInterval&&n.cancel(m.interactionsInterval)})}e.$inject=["$scope","$interval","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty","draftManager"],angular.module("app.dashboards").controller("AgentHomeOpenchannelController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l){var d=this;function c(e,n,t){d.license=e,d.setting=n,d.plugin=t}d.currentUser=o.getCurrentUser(),d.plugin={},d.onInit=c,d.getTrustedURL=function(){return s.trustAsResourceUrl(d.plugin.agentUrl)},c(),n.$on("pluginUpdated",function(e,n){d.plugin=n.plugin})}e.$inject=["$document","$scope","$timeout","$mdDialog","$stateParams","$sce","Auth","api","$window"],angular.module("app.dashboards").controller("AgentHomePluginsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l){var d=this;function c(){d.agentsQuery.offset=(d.agentsQuery.page-1)*d.agentsQuery.limit,l.update("motion2.home.presence.agents:"+d.currentUser.id,d.agentsQuery,"query"),i.user.getPresence(d.agentsQuery).$promise.then(function(e){d.agents={count:e.count,rows:_.filter(e.rows,function(e){return e.id!==d.currentUser.id})}}).catch(function(){r.error({title:t.instant("DASHBOARDS.AGENT_PRESENCE"),msg:t.instant("CONTACTMANAGER.NOTIFICATIONS.NO_DATA_ERROR")})})}function m(){d.queuesQuery.offset=(d.queuesQuery.page-1)*d.queuesQuery.limit,l.update("motion2.home.presence.queues:"+d.currentUser.id,d.queuesQuery,"query"),i.voiceQueue.get(d.queuesQuery).$promise.then(function(e){return d.voiceQueues=e||{rows:[],count:0},i.rpc.getVoiceQueuesChannels().$promise.then(function(e){e.rows.forEach(function(e){var n=_.find(d.voiceQueues.rows,["name",e.name]);n&&(n.calls||(n.calls=[]),n.calls.push(e))})})}).catch(function(){r.error({title:t.instant("VOICE.VOICEQUEUES"),msg:t.instant("CONTACTMANAGER.NOTIFICATIONS.NO_DATA_ERROR")})})}function u(e){return 0===d.selectedTab?e:"xcallyQueueExtension"+e}function p(e,n,t,a){var i=_.find(d.agents.rows,["id",e]);i&&(i.status=!1===n?"offline":a?"pause":"unavailable"===t?t:_.includes(["idle","unknown","ringing",null,void 0],t)?"online":"busy")}function g(e){e.id!==d.currentUser.id&&p(e.id,e.online,e.voiceStatus,e.voicePause)}d.currentUser=s.getCurrentUser(),d.agents={count:0,rows:[]},d.agentsQuery={fields:"id,name,internal,online",role:"agent",sort:"name",limit:10,page:1},d.queuesQuery={fields:"id,name",type:"inbound",sort:"name",limit:10,page:1},d.onAgentsTabSelection=function(){if(d.agentsQuery.filter||d.agentsQuery.teams||d.agentsQuery.queues)return;_.merge(d.agentsQuery,l.get("motion2.home.presence.agents:"+d.currentUser.id,"query")),d.isSearchBarVisible=!!d.agentsQuery.filter,a.all([a(function(n,e){i.team.get({fields:"id,name",sort:"name",nolimit:!0}).$promise.then(function(e){d.teams=e||{rows:[],count:0},n()}).catch(function(){r.error({title:t.instant("STAFF.TEAMS"),msg:t.instant("CONTACTMANAGER.NOTIFICATIONS.NO_DATA_ERROR")}),e()})}),a(function(n,e){i.voiceQueue.get({fields:"id,name",type:"inbound",sort:"name",nolimit:!0}).$promise.then(function(e){d.queues=e||{rows:[],count:0},n()}).catch(function(){r.error({title:t.instant("VOICE.VOICEQUEUES"),msg:t.instant("CONTACTMANAGER.NOTIFICATIONS.NO_DATA_ERROR")}),e()})})]).then(function(){d.quickFilters=[{name:"Team",key:"teams",type:"multiselect",label:"DASHBOARDS.SELECT_TEAM",options:d.teams.rows},{name:"Queue",key:"queues",type:"multiselect",label:"DASHBOARDS.SELECT_QUEUE",options:d.queues.rows}],c()}).catch(function(){r.error({title:t.instant("DASHBOARDS.AGENT_PRESENCE"),msg:t.instant("DASHBOARDS.ERRORS.FAILED_INITIALIZATION")})})},d.onQueuesTabSelection=function(){if(d.queuesQuery.filter)return;_.merge(d.queuesQuery,l.get("motion2.home.presence.queues:"+d.currentUser.id,"query")),d.isSearchBarVisible=!!d.queuesQuery.filter,m()},d.getAgents=c,d.getVoiceQueues=m,d.originateCall=function(e){n.$broadcast("webrtc::call",{target:u(e)})},d.transferCall=function(e){n.$broadcast("webrtc::transfer",{target:u(e)})},o.on("user:presence",function(e){if(e.id===d.currentUser.id)return;p(e.id,e.online,e.voiceStatus,e.voicePause)}),o.on("user:update",g),o.on("voice_queue_presence:save",function(e){if(!d.voiceQueues&&d.voiceQueues.rows)return;var n=_.find(d.voiceQueues.rows,["name",e.name]);if(!n)return;n.calls||(n.calls=[]);if(_.some(n.calls,["uniqueid",e.uniqueid]))return;n.calls.push(e)}),o.on("voice_queue_presence:remove",function(e){var n=_.find(d.voiceQueues.rows,["name",e.name]);if(!n)return;_.remove(n.calls,["uniqueid",e.uniqueid])}),e.$on("$destroy",function(){o.removeListener("user:update",g),o.removeAllListeners("user:presence"),o.removeAllListeners("voice_queue_presence:save"),o.removeAllListeners("voice_queue_presence:remove")})}e.$inject=["$scope","$rootScope","$translate","$q","api","Auth","socket","toasty","localStorageManager"],angular.module("app.dashboards").controller("AgentHomePresenceController",e)}(),function(){"use strict";function e(e,t,n,a,o,i){var s=this;function r(e){s.searchInProgress=!1,s.voiceRecordings=e||{count:0,rows:[]}}function l(){s.searchInProgress=!0,s.query.offset=(s.query.page-1)*s.query.limit;var e={query:s.query};t.localStorage.setItem("motion2.home.recordings:"+s.currentUser.id,JSON.stringify(e)),s.promise=a.voiceRecording.get(s.query,r).$promise}s.currentUser=i.getCurrentUser(),s.voiceRecordings={},s.table="voiceRecordings",s.query={UserId:s.currentUser.id,fields:"createdAt,updatedAt,id,format,value,type,uniqueid,calleridnum,exten,connectedlinenum,queue,rating,audio,transcribeStatus,UserId",sort:"-updatedAt",limit:10,page:1,type:null},s.downloadfile=function(i,e){return a.voiceRecording.download({id:i.id,exists:!0}).$promise.then(function(e){var n=[e.buffer],t=new Blob(n,{type:e.type}),a=window.document.createElement("a");a.setAttribute("href",URL.createObjectURL(t)),a.setAttribute("download",i.uniqueid+i.format),a.click()}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceRecording",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.downloadtranscribe=function(s,e){return a.voiceRecording.downloadTranscribe({id:s.id}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=s.uniqueid;var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceRecording",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.success=r,s.getVoiceRecordings=l,s.onInit=function(){s.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Type",key:"type",type:"select",label:"VOICE.SELECT_TYPE",customOptions:[{value:"internal",translate:"VOICE.INTERNAL"},{value:"inbound",translate:"VOICE.INBOUND"},{value:"outbound",translate:"VOICE.OUTBOUND"},{value:"dialer",translate:"VOICE.DIALER"},{value:null,translate:"VOICE.ALL"}]}];var e=t.localStorage.getItem("motion2.home.recordings:"+s.currentUser.id);if(e)try{(e=JSON.parse(e)).query&&(s.query=_.merge(s.query,e.query))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()};s.query.createdAt=n}s.isSearchBarVisible=!!s.query.filter,l()}}e.$inject=["$scope","$window","$timeout","api","toasty","Auth"],angular.module("app.dashboards").controller("AgentHomeRecordingsController",e)}(),function(){"use strict";function e(e,t,a,i,s,o,r,n){var l=this;function d(e){l.searchInProgress=!1,l.scheduledCalls=e||{count:0,rows:[]}}l.currentUser=n.getCurrentUser(),l.priorities=["Lowest","Low","Medium","High","Highest"],l.crudPermissions={readOnly:!1,canEdit:!0,canDelete:!0},l.scheduledCalls={},l.query={id:l.currentUser.id,fields:"id,phone,scheduledat,recallme,priority,UserId,OwnerId",sort:"scheduledat",limit:10,page:1},l.queueCampaigns={rows:[],count:0},l.success=d,l.getScheduledCalls=function(){l.searchInProgress=!0,l.query.id=l.currentUser.id,l.query.includeAll=!0,l.query.offset=(l.query.page-1)*l.query.limit;var e={query:l.query};t.localStorage.setItem("motion2.home.scheduled:"+l.currentUser.id,JSON.stringify(e)),l.promise=r.user.getScheduledCalls(l.query,d).$promise},l.onInit=function(){r.user.getQueues({id:n.getCurrentUser().id,fields:"id,name",channel:"voice",type:"outbound",nolimit:!0}).$promise.then(function(e){l.queueCampaigns=e||{count:0,rows:[]}}).then(function(){l.quickFilters=[{name:"Start Date",key:"scheduledat",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Campaigns",key:"VoiceQueueId",type:"multiselect",label:"MOTIONDIALER.SELECT_CAMPAIGN",options:l.queueCampaigns.rows}]}).catch(function(e){console.error(e)}).finally(function(){var e=t.localStorage.getItem("motion2.home.scheduled:"+l.currentUser.id);if(e)try{(e=JSON.parse(e)).query&&(l.query=_.omit(e.query,["filter"]))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()};l.query.scheduledat=n}l.getScheduledCalls()})},l.isDateBeforeToday=function(e){return moment(e).isBefore(moment())},l.createOrEditQueueCampaignHopper=function(e,n){i.show({controller:"CreateOrEditHopperVoiceQueueIdDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hoppers/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:null,hopper:n,hoppers:l.scheduledCalls.rows,license:null,setting:null,crudPermissions:l.crudPermissions}})},l.deleteConfirm=function(n,e){var t=i.confirm().title("Are you sure want to delete the scheduled call?").htmlContent("<b>Scheduled call</b> will be deleted.").ariaLabel("delete scheduled call").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){var e;e=n,r.cmHopper.delete({id:e.id}).$promise.then(function(){_.remove(l.scheduledCalls.rows,{id:e.id}),l.scheduledCalls.count-=1,l.scheduledCalls.rows.length||l.getScheduledCalls(),o.success({title:"Scheduled call deleted!",msg:e.name?"Scheduled call has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){l.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETE_HOPPER"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETE_HOPPER",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){console.log("CANCEL")})};var c=!0,m=1;e.$watch("vm.query.filter",function(e,n){c?a(function(){c=!1}):(n||(m=l.query.page),e!==n&&(l.query.page=1),e||(l.query.page=m),l.getScheduledCalls())})}e.$inject=["$scope","$window","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.dashboards").controller("AgentHomeScheduledCallsController",e)}(),function(){"use strict";function e(i,n,s,o,a,t,r,e,l,d,c){var m=this;function u(e){!m.reloadingInteractions&&0<m.setting.smsInteractionsReloadTimeout&&E(!0),m.searchInProgress=!1,m.reloadingInteractions=!1,m.smsInteractions=e||{count:0,rows:[]};for(var n=0;n<m.smsInteractions.rows.length;n+=1)g(m.smsInteractions.rows[n])}function p(e,n){m.searchInProgress=!0,e||(m.query.page=1),m.query.offset=(m.query.page-1)*m.query.limit;var t=a.localStorage.getItem("motion2.home.sms:"+m.user.id);(t=t?JSON.parse(t):{}).query=m.query,a.localStorage.setItem("motion2.home.sms:"+m.user.id,JSON.stringify(t)),m.promise=r.smsInteraction.get(m.query,u).$promise}function g(e){e.contactInfo=e.Contact?e.Contact.mobile:void 0,"Unknown"===e.contactName&&(e.contactName=t.instant("DASHBOARDS.UNKNOWN"))}function v(e){var n=_.find(m.smsInteractions.rows,{id:e.SmsInteractionId});n&&n.Users&&(_.find(n.Users,{id:e.UserId})||n.Users.push({id:e.UserId}))}function h(e){var n=_.find(m.smsInteractions.rows,{id:e.SmsInteractionId});n&&n.Users&&_.remove(n.Users,{id:e.UserId})}function f(e){if(e){var n=_.find(m.smsInteractions.rows,{id:e.id});if(n){if(n.Users=[],e.closed&&(n.unreadMessages=0),m.query.sort){var t=_.startsWith(m.query.sort,"-")?"desc":"asc";m.smsInteractions.rows=_.orderBy(m.smsInteractions.rows,_.trimStart(m.query.sort,"-"),t)}_.merge(n,_.pick(e,_.keys(n)))}else 0===m.setting.smsInteractionsReloadTimeout&&p(m.query.page)}}function b(e){if(e){var n=_.find(m.smsInteractions.rows,{id:e.id});n&&(n.Tags=e.tags||[],_.merge(n,_.pick(e,_.keys(n))))}}function A(e){if(e&&!e.secret){var n=_.find(m.smsInteractions.rows,{id:e.SmsInteractionId});if(n){var t=_.find(n.Messages,{id:e.id});t?_.merge(t,_.pick(e,_.keys(t))):(_.isNil(n.Messages)&&(n.Messages={count:0}),e.read||(n.Messages.count+=1))}}}function E(e){e&&m.interactionsInterval&&n.cancel(m.interactionsInterval),m.interactionsInterval=n(function(){m.reloadingInteractions=!0,m.searchInProgress||p()},1e3*m.setting.smsInteractionsReloadTimeout)}m.user=e.getCurrentUser(),m.license={},m.setting={},m.tags={count:0,rows:[]},m.smsInteractions={count:0,rows:[]},m.query={includeAll:!0,sort:"-updatedAt",limit:10,page:1,read:null,closed:null},m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Account",column:"SmsAccountId",type:"multiselect",options:{route:{model:"user",action:"getSmsAccounts",params:{id:m.user.id,nolimit:!0}}}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},m.sectionColor="orange",m.onInit=function(e,n){return m.license=e,m.setting=n,r.user["get"+_.upperFirst("smsAccounts")]({id:m.user.id,nolimit:!0}).$promise.then(function(e){return m.smsAccounts=e||{count:0,rows:[]},r.tag.get({sort:"name"}).$promise}).then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Account",key:"SmsAccountId",type:"multiselect",label:"DASHBOARDS.SELECT_ACCOUNT",options:m.smsAccounts.rows,clearAll:!1},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:m.user.id,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=a.localStorage.getItem("motion2.home.sms:"+m.user.id);if(e)try{(e=JSON.parse(e)).query&&(m.query=_.merge(m.query,e.query),_.isEmpty(m.smsAccounts.rows)?m.query.SmsAccountId=[]:_.isEmpty(m.query.SmsAccountId)&&(m.query.SmsAccountId=_(m.smsAccounts.rows).map("id").take().value()),m.query.sort&&0<=m.query.sort.indexOf("lastMessage")&&(m.query=_.omit(m.query,"sort")),m.query.includeAll=!0,m.isSearchBarVisible=!(m.query.search||!m.query.filter))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()},t={SmsAccountId:_.map(m.smsAccounts.rows,"id"),createdAt:n};m.query=_.merge(m.query,t)}l.on("smsInteraction:save",f),l.on("smsInteraction:update",f),l.on("smsInteractionTags:save",b),l.on("smsMessage:save",A),l.on("smsMessage:update",A),l.on("user_has_sms_interactions:save",v),l.on("user_has_sms_interactions:remove",h),p(m.query.page),0<m.setting.smsInteractionsReloadTimeout&&E()})},m.success=u,m.getSmsInteractions=p,m.showSmsInteraction=function(e,n){i.$parent.vm.addInteractionTab("sms",n)},m.downloadSmsInteraction=function(e,s,n){r.smsInteraction.download({id:s.id,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="sms-interaction"+s.id+".zip",a=new Blob(n,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"downloadSmsInteraction",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.disposeInteraction=function(e,t){var a=m.user.voicePause||m.user.chatPause||m.user.mailPause||m.user.openchannelPause||m.user.faxPause,n=!t.Account.mandatoryDisposition;s.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(o.body),clickOutsideToClose:n,escapeToClose:n,onRemoving:function(e,n){m.user&&t.Account.mandatoryDisposition&&!a&&r.user.unpause({id:m.user.id}).$promise.catch(function(e){console.error(e)})},locals:{user:m.user,channel:"sms",interaction:t}})},m.getContactLabel=g,m.getAgentLabel=function(e){if(e.UserId)return e.UserId===m.user.id?t.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">";return t.instant("DASHBOARDS.NOT_ASSIGNED")},m.getSmsAccountLabel=function(e){if(e.Account)return e.Account.key;return t.instant("DASHBOARDS.UNKNOWN")},m.composeSmsInteraction=function(e,a){s.show({controller:"ComposeSmsInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/sms/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{account:a,message:{},type:"new",interaction:{}},fullscreen:!0}).then(function(e){if(e){if(!e.message||!e.message.savedAsDraft){var n=e;return r.smsAccount.send({id:a.id},n).$promise.then(function(e){d.success({title:"Message properly sent!",msg:"Message has been sent!"}),i.$parent.vm.addInteractionTab("sms",e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SMSACCOUNT:SEND",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}var t={channel:"sms",account:a,message:e.message,contact:e.contact};c.add(t)}})},m.openAdvancedSearch=function(){s.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{color:m.sectionColor,fields:m.advancedSearch.fields,storagePath:"home.sms"},fullscreen:!0}).then(function(e){m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply&&(m.query.search=e.value,p())}).catch(function(e){d.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},i.$on("$destroy",function(){l.removeAllListeners("smsMessage:save"),l.removeAllListeners("smsMessage:update"),l.removeAllListeners("smsInteraction:save"),l.removeAllListeners("smsInteractionTags:save"),l.removeAllListeners("smsInteraction:update"),l.removeAllListeners("user_has_sms_interactions:save"),l.removeAllListeners("user_has_sms_interactions:remove"),m.interactionsInterval&&n.cancel(m.interactionsInterval)})}e.$inject=["$scope","$interval","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty","draftManager"],angular.module("app.dashboards").controller("AgentHomeSmsController",e)}(),function(){"use strict";function e(n,t,a,i,e,s,o,r){var l=this;function d(e){l.searchInProgress=!1,l.voiceCalls=e||{count:0,rows:[]}}function c(){l.searchInProgress=!0,l.query.offset=(l.query.page-1)*l.query.limit;var e={query:l.query};s.localStorage.setItem("motion2.home.voice:"+l.currentUser.id,JSON.stringify(e)),l.promise=a.voiceCallReport.get(l.query,d).$promise}l.currentUser=e.getCurrentUser(),l.voiceCalls={},l.table="voiceCalls",l.query={UserId:l.currentUser.id,fields:"id,type,uniqueid,tag,starttime,endtime,source,destination,userDisposition,userSecondDisposition,userThirdDisposition,note,duration,billableseconds,answertime",sort:"-updatedAt",limit:10,page:1,type:null},l.success=d,l.getVoiceCalls=c,l.onInit=function(){return a.tag.get({sort:"name"}).$promise.then(function(e){l.tags=e||{count:0,rows:[]}}).then(function(){l.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Type",key:"type",type:"select",label:"VOICE.SELECT_TYPE",customOptions:[{value:"internal",translate:"VOICE.INTERNAL"},{value:"inbound",translate:"VOICE.INBOUND"},{value:"outbound",translate:"VOICE.OUTBOUND"},{value:"dialer",translate:"VOICE.DIALER"},{value:null,translate:"VOICE.ALL"}]}]}).catch(function(e){i.error({title:"Init error",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()}),l.tags={count:0,rows:[]}}).finally(function(){var e=s.localStorage.getItem("motion2.home.voice:"+l.currentUser.id);if(e)try{(e=JSON.parse(e)).query&&(l.query=_.merge(l.query,e.query))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()};l.query.createdAt=n}l.isSearchBarVisible=!!l.query.filter,c()})},l.showDetails=function(e){n.show({controller:"AgentHomeVoiceDetailsController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/home/voice/details/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{call:e}})}}e.$inject=["$mdDialog","$document","api","toasty","Auth","$window","$scope","$timeout"],angular.module("app.dashboards").controller("AgentHomeVoiceController",e)}(),function(){"use strict";function e(e,n){this.call=n,this.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","call"],angular.module("app.dashboards").controller("AgentHomeVoiceDetailsController",e)}(),function(){"use strict";function e(i,n,s,o,a,t,r,e,l,d,c){var m=this;function u(e){!m.reloadingInteractions&&0<m.setting.whatsappInteractionsReloadTimeout&&E(!0),m.searchInProgress=!1,m.reloadingInteractions=!1,m.whatsappInteractions=e||{count:0,rows:[]};for(var n=0;n<m.whatsappInteractions.rows.length;n+=1)g(m.whatsappInteractions.rows[n])}function p(e,n){m.searchInProgress=!0,e||(m.query.page=1),m.query.offset=(m.query.page-1)*m.query.limit;var t=a.localStorage.getItem("motion2.home.whatsapp:"+m.user.id);(t=t?JSON.parse(t):{}).query=m.query,a.localStorage.setItem("motion2.home.whatsapp:"+m.user.id,JSON.stringify(t)),m.promise=r.whatsappInteraction.get(m.query,u).$promise}function g(e){e.contactInfo=e.Contact?e.Contact.mobile:void 0,"Unknown"===e.contactName&&(e.contactName=t.instant("DASHBOARDS.UNKNOWN"))}function v(e){var n=_.find(m.whatsappInteractions.rows,{id:e.WhatsappInteractionId});n&&n.Users&&(_.find(n.Users,{id:e.UserId})||n.Users.push({id:e.UserId}))}function h(e){var n=_.find(m.whatsappInteractions.rows,{id:e.WhatsappInteractionId});n&&n.Users&&_.remove(n.Users,{id:e.UserId})}function f(e){if(e){var n=_.find(m.whatsappInteractions.rows,{id:e.id});if(n){if(n.Users=[],e.closed&&(n.unreadMessages=0),m.query.sort){var t=_.startsWith(m.query.sort,"-")?"desc":"asc";m.whatsappInteractions.rows=_.orderBy(m.whatsappInteractions.rows,_.trimStart(m.query.sort,"-"),t)}_.merge(n,_.pick(e,_.keys(n)))}else 0===m.setting.whatsappInteractionsReloadTimeout&&p(m.query.page)}}function b(e){if(e){var n=_.find(m.whatsappInteractions.rows,{id:e.id});n&&(n.Tags=e.tags||[],_.merge(n,_.pick(e,_.keys(n))))}}function A(e){if(e&&!e.secret){var n=_.find(m.whatsappInteractions.rows,{id:e.WhatsappInteractionId});if(n){var t=_.find(n.Messages,{id:e.id});t?_.merge(t,_.pick(e,_.keys(t))):(_.isNil(n.Messages)&&(n.Messages={count:0}),e.read||(n.Messages.count+=1))}}}function E(e){e&&m.interactionsInterval&&n.cancel(m.interactionsInterval),m.interactionsInterval=n(function(){m.reloadingInteractions=!0,m.searchInProgress||p()},1e3*m.setting.whatsappInteractionsReloadTimeout)}m.user=e.getCurrentUser(),m.license={},m.setting={},m.tags={count:0,rows:[]},m.whatsappInteractions={count:0,rows:[]},m.query={includeAll:!0,sort:"-updatedAt",limit:10,page:1,read:null,closed:null},m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Account",column:"WhatsappAccountId",type:"multiselect",options:{route:{model:"user",action:"getWhatsappAccounts",params:{id:m.user.id,nolimit:!0}}}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},m.sectionColor="lime-A700",m.onInit=function(e,n){return m.license=e,m.setting=n,r.user["get"+_.upperFirst("whatsappAccounts")]({id:m.user.id,nolimit:!0}).$promise.then(function(e){return m.whatsappAccounts=e||{count:0,rows:[]},r.tag.get({sort:"name"}).$promise}).then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Account",key:"WhatsappAccountId",type:"multiselect",label:"DASHBOARDS.SELECT_ACCOUNT",options:m.whatsappAccounts.rows,clearAll:!1},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:m.user.id,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=a.localStorage.getItem("motion2.home.whatsapp:"+m.user.id);if(e)try{(e=JSON.parse(e)).query&&(m.query=_.merge(m.query,e.query),_.isEmpty(m.whatsappAccounts.rows)?m.query.WhatsappAccountId=[]:_.isEmpty(m.query.WhatsappAccountId)&&(m.query.WhatsappAccountId=_(m.whatsappAccounts.rows).map("id").take().value()),m.query.sort&&0<=m.query.sort.indexOf("lastMessage")&&(m.query=_.omit(m.query,"sort")),m.query.includeAll=!0,m.isSearchBarVisible=!(m.query.search||!m.query.filter))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()},t={WhatsappAccountId:_.map(m.whatsappAccounts.rows,"id"),createdAt:n};m.query=_.merge(m.query,t)}l.on("whatsappInteraction:save",f),l.on("whatsappInteraction:update",f),l.on("whatsappInteractionTags:save",b),l.on("whatsappMessage:save",A),l.on("whatsappMessage:update",A),l.on("user_has_whatsapp_interactions:save",v),l.on("user_has_whatsapp_interactions:remove",h),p(m.query.page),0<m.setting.whatsappInteractionsReloadTimeout&&E()})},m.success=u,m.getWhatsappInteractions=p,m.showWhatsappInteraction=function(e,n){i.$parent.vm.addInteractionTab("whatsapp",n)},m.downloadWhatsappInteraction=function(e,s,n){r.whatsappInteraction.download({id:s.id,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="whatsapp-interaction"+s.id+".zip",a=new Blob(n,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"downloadWhatsappInteraction",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.disposeInteraction=function(e,t){var a=m.user.voicePause||m.user.chatPause||m.user.mailPause||m.user.openchannelPause||m.user.faxPause,n=!t.Account.mandatoryDisposition;s.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(o.body),clickOutsideToClose:n,escapeToClose:n,onRemoving:function(e,n){m.user&&t.Account.mandatoryDisposition&&!a&&r.user.unpause({id:m.user.id}).$promise.catch(function(e){console.error(e)})},locals:{user:m.user,channel:"whatsapp",interaction:t}})},m.getContactLabel=g,m.getAgentLabel=function(e){if(e.UserId)return e.UserId===m.user.id?t.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">";return t.instant("DASHBOARDS.NOT_ASSIGNED")},m.getWhatsappAccountLabel=function(e){if(e.Account)return e.Account.key;return t.instant("DASHBOARDS.UNKNOWN")},m.composeWhatsappInteraction=function(e,a){s.show({controller:"ComposeWhatsappInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/whatsapp/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{account:a,message:{},type:"new",interaction:{}},fullscreen:!0}).then(function(e){if(e){if(!e.message||!e.message.savedAsDraft){var n=e;return r.whatsappAccount.send({id:a.id},n).$promise.then(function(e){d.success({title:"Message properly sent!",msg:"Message has been sent!"}),i.$parent.vm.addInteractionTab("whatsapp",e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"WHATSAPPACCOUNT:SEND",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}var t={channel:"whatsapp",account:a,message:e.message,contact:e.contact};c.add(t)}})},m.openAdvancedSearch=function(){s.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{color:m.sectionColor,fields:m.advancedSearch.fields,storagePath:"home.whatsapp"},fullscreen:!0}).then(function(e){m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply&&(m.query.search=e.value,p())}).catch(function(e){d.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},i.$on("$destroy",function(){l.removeAllListeners("whatsappMessage:save"),l.removeAllListeners("whatsappMessage:update"),l.removeAllListeners("whatsappInteraction:save"),l.removeAllListeners("whatsappInteractionTags:save"),l.removeAllListeners("whatsappInteraction:update"),l.removeAllListeners("user_has_whatsapp_interactions:save"),l.removeAllListeners("user_has_whatsapp_interactions:remove"),m.interactionsInterval&&n.cancel(m.interactionsInterval)})}e.$inject=["$scope","$interval","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty","draftManager"],angular.module("app.dashboards").controller("AgentHomeWhatsappController",e)}(),function(){"use strict";function e(e,n){var t=this;t.setting={},t.messages={count:0,rows:[]},t.showInteraction=!1,t.init=function(e,n){t.setting=n,t.tab=e,t.tab.saved=!0},t.getTrustedURL=function(){return n.trustAsResourceUrl(t.tab.src)}}e.$inject=["$scope","$sce"],angular.module("app.dashboards").controller("AgentGeneralIframeController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v){var h=this,f=25,b=1024*f*1024;function A(){var e=h.user.voicePause||h.user.chatPause||h.user.mailPause||h.user.openchannelPause||h.user.faxPause,n=!h.tab.interaction.Account.mandatoryDisposition;i.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(t.body),clickOutsideToClose:n,escapeToClose:n,onRemoving:function(){h.user&&h.interaction.Account.mandatoryDisposition&&!e&&l.user.unpause({id:h.user.id}).$promise.catch(function(e){d.error(e.data?e.data.message:e.toString())})},locals:{user:h.user,channel:h.tab.channel,interaction:h.tab.interaction}}).then(function(e){h.tab.saved=Boolean(e),e&&a.$parent.$parent.$parent.vm.closeTab(h.tab)})}function E(e,n){h.tab.message=n,i.show({controller:"ComposeMailInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/mail/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{account:h.account,message:h.tab.message,type:e,interaction:h.interaction},fullscreen:!0,skipHide:Boolean(h.tab.spy)}).then(function(e){if(e)if(e.message&&e.message.savedAsDraft)h.draft?p.update({id:h.draft.id,channel:"mail",account:h.account,message:e.message,contact:h.contact,interaction:h.interaction}):p.add({channel:"mail",account:h.account,message:e.message,contact:h.contact,interaction:h.interaction}),h.draft=p.getByInteraction(h.tab.interaction.id);else{var n=e;n&&S(n),n.Interaction&&h.interaction&&h.interaction.id&&(n.Interaction.id=h.interaction.id,l.mailInteraction.update(n.Interaction).$promise.then(function(e){e&&e.closed?(h.tab.saved=!0,h.interaction.closed=!0,A()):null!==n.Interaction.substatus&&(h.tab.saved=!0,h.tab.interaction.substatus=n.Interaction.substatus,a.$parent.$parent.$parent.vm.closeTab(h.tab))}).catch(function(e){d.error(e.data?e.data.message:e.toString())}))}}).finally(function(){h.tab.isDraft=!1})}function y(){"mail"!==h.tab.channel&&n(function(){var e=angular.element(t.find("md-content[name*='interaction-content-"+h.tab.id+"']"));e&&e[0]&&(e[0].scrollTop=e[0].scrollHeight)},0)}function S(i){if(i)return i["chat"===h.tab.channel?"ChatWebsiteId":_.capitalize(h.tab.channel)+"AccountId"]=h.interaction["chat"===h.tab.channel?"ChatWebsiteId":_.capitalize(h.tab.channel)+"AccountId"],i[_.capitalize(h.tab.channel)+"InteractionId"]=h.interaction.id,i.UserId=h.user.id,i.ContactId=h.interaction.ContactId,i.direction="out",i.secret=Boolean(h.tab.spy||i.secret),l[h.tab.channel+"Message"].save(i).$promise.then(function(e){if(e&&e.id&&!_.isEmpty(i.attachments)){for(var n=[],t=0;t<i.attachments.length;t++){var a=i.attachments[t];a.MailMessageId?n.push(l.attachment.clone({id:a.id},{name:a.name,basename:a.basename,type:a.type,MailMessageId:e.id}).$promise):n.push(l.attachment.update({id:a.id},{MailMessageId:e.id}).$promise)}return s.all(n)}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:SENDMESSAGE",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){"mail"===h.tab.channel&&i.isDraft&&(p.removeByInteraction(h.interaction.id),h.draft=null),h.tab.areaText="",y()})}function T(e){switch(h.tab.channel){case"mail":h.draft.content.originalMessage=e?_.find(h.interaction.Messages,["id",e]):h.interaction.Messages[h.interaction.Messages.length-1],E(h.draft.type,h.draft.content)}}function I(e){h.journeyIsLoading=!0;var n=_.merge(h.journeyOptions,{id:h.contact.id,offset:e||0});return g.get(h.journey,n).then(function(e){h.journey=e.journey,h.canLoadMoreJourney=e.loadMore}).finally(function(){h.journeyIsLoading=!1})}h.showFooter=!1,h.BTNLoadMore=0,h.showInteraction=!1,h.user=c.getCurrentUser(),h.detectBrowser=u.detectBrowser(),h.journey=[],h.acceptedMessages=[],h.ngFlowOptions={target:"api/attachments",singleFile:!0,maxChunkRetries:1,chunkSize:b,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},h.ngFlow={flow:{}},h.selectedMailShowDetails={},h.selectedMailShowSystemMessage={},h.setting={},h.ctrlMethods={},h.embedOptions={fontSmiley:!0,sanitizeHtml:!0,emoji:!0,link:!0,linkTarget:"_blank"},h.journeyOptions=g.getQuery(),h.quickFilters=g.getQuickFilters(),h.init=function(e,n){h.tab=e,h.tab.saved=!0,h.tab.badges=0,h.setting=n||{},h.tab&&h.tab.channel&&h.tab.interaction&&(h.interaction=h.tab.interaction,l[h.tab.channel+"Interaction"].get({id:h.tab.interaction.id,includeAll:!0}).$promise.then(function(e){return e&&(h.interaction=e,h.tab.interaction=e),h.tab.saved=h.interaction.closed,h.queryMessage={id:h.interaction.id,includeAll:!0},"mail"===h.tab.channel?(h.queryMessage.sort="-id",h.queryMessage.offset=0,h.queryMessage.limit=3,h.queryMessage.inlineCss=!0):(h.queryMessage.sort="id",h.queryMessage.nolimit=!0),l[h.tab.channel+"Interaction"].getMessages(h.queryMessage).$promise}).then(function(e){return e&&(h.BTNLoadMore=e.count-h.queryMessage.limit),h.messages=e||{count:0,rows:[]},l["chat"===h.tab.channel?"chatWebsite":h.tab.channel+"Account"].get({id:h.interaction["chat"===h.tab.channel?"ChatWebsiteId":_.capitalize(h.tab.channel)+"AccountId"]}).$promise}).then(function(e){if(h.account=e,h.tab.title=h.account.key||h.account.name,h.interaction.ContactId)return l.cmContact.get({id:h.interaction.ContactId}).$promise}).then(function(e){return e&&(h.contact=e),h.showInteraction=!0,h.contact?h.tab.title+=" - "+(h.user.privacyEnabled?v.mask(h.contact.firstName):h.contact.firstName):h.tab.title+=" - "+r.instant(h.tab.channel.toUpperCase()+".UNKNOWN"),l.user.get({fields:"id,fullname",nolimit:!0}).$promise}).then(function(e){h.users=e||{count:0,rows:[]},h.usersMap=_.mapValues(_.keyBy(h.users.rows,"id"),"fullname")}).then(function(){if(h.tab.channel&&h.interaction)return l.user["add"+_.upperFirst(h.tab.channel)+"Interactions"]({id:h.user.id,ids:[h.interaction.id]})}).then(function(){return l.mailSubstatus.get({sort:"name",nolimit:!0}).$promise}).then(function(e){h.subStatuses=e||{count:0,rows:[]}}).catch(function(){h.showInteraction=!0}).finally(function(){h.contact&&I(),function(){switch(h.user.role){case"admin":return h.downloadPermissions={attachments:!0,interactions:!0};case"agent":return h.downloadPermissions={attachments:h.user.downloadAttachments,interactions:h.user.downloadOmnichannelInteractions};case"user":l.userProfile.get({id:h.user.userProfileId,fields:"downloadAttachments,downloadOmnichannelInteractions"}).$promise.then(function(e){h.downloadPermissions={attachments:e.downloadAttachments,interactions:e.downloadOmnichannelInteractions}}).catch(function(){h.downloadPermissions={attachments:!1,interactions:!1}})}}(),function(){if(!h.tab.spy&&!h.interaction.closed){var t=[];if(h.messages.rows.forEach(function(e){if("in"===e.direction&&!e.read){var n=0===t.length;t.push(l[h.tab.channel+"Message"].accept({id:e.id,UserId:h.user.id,manual:n}).$promise),h.acceptedMessages.push(e.id)}}),"mail"===h.tab.channel){var e=_(h.interaction.Messages).filter({read:!1,direction:"in"}).differenceBy(h.messages.rows,"id").value();e.forEach(function(e){t.push(l.mailMessage.accept({id:e.id,UserId:h.user.id}).$promise),h.acceptedMessages.push(e.id)})}s.all(t)}}(),y(),m.on(h.tab.channel+"Message:save",h.onMessageSave),m.on(h.tab.channel+"Message:update",h.onMessageSave),m.on(h.tab.channel+"Interaction:save",h.onInteractionSave),m.on(h.tab.channel+"Interaction:update",h.onInteractionSave),m.on("user_has_"+h.tab.channel+"_interactions:save",h.onInteractionOpen),m.on("user_has_"+h.tab.channel+"_interactions:remove",h.onInteractionClose),h.tab.areaText=h.tab.areaText?h.tab.areaText:"",h.showFooter=!0,"mail"===h.tab.channel&&(h.draft=p.getByInteraction(h.tab.interaction.id),h.tab.isDraft&&(h.tab.interaction.closed?(p.removeByInteraction(h.tab.interaction.id),h.draft=null):T()))}))},h.getLabelByMessage=function(e){var n="loading...";if(e)return"in"===e.direction?e.Contact?e.Contact.firstName||"Anonymous":n:e.UserId?h.usersMap?h.usersMap[e.UserId]:n:"System"},h.openContact=function(e,n){try{h.tab&&!h.tab.spy&&a.$parent.$parent.$parent.vm.addContactTab(n||h.contact)}catch(e){d.error({title:"ERROR OPEN CONTACT",msg:"Unable to open the contact"})}},h.openInteraction=function(e){try{if(e.MailAccountId)return a.$parent.$parent.$parent.vm.addInteractionTab("mail",e);if(e.ChatWebsiteId)return a.$parent.$parent.$parent.vm.addInteractionTab("chat",e);if(e.SmsAccountId)return a.$parent.$parent.$parent.vm.addInteractionTab("sms",e);if(e.WhatsappAccountId)return a.$parent.$parent.$parent.vm.addInteractionTab("whatsapp",e);if(e.OpenchannelAccountId)return a.$parent.$parent.$parent.vm.addInteractionTab("openchannel",e);if(e.FaxAccountId)return a.$parent.$parent.$parent.vm.addInteractionTab("fax",e)}catch(e){d.error({title:"ERROR OPEN INTERACTION",msg:"Customer Journey can't open the interaction"})}},h.disposeInteraction=A,h.tagInteraction=function(){i.show({controller:"TagInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/tag/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,skipHide:Boolean(h.tab.spy),resolve:{tags:["apiResolver",function(e){return e.resolve("tag@get",{sort:"name",nolimit:!0,fields:"id,name,color"})}]},locals:{channel:h.tab.channel,interaction:h.tab.interaction}})},h.composeMailInteraction=function(n,e){if(e.inReplyTo){var t=_.find(h.messages.rows,{messageId:e.inReplyTo});if(!t)return l.mailMessage.get({messageId:e.inReplyTo}).$promise.then(function(e){E(n,e&&e.count?e.rows[0]:void 0)}).catch(function(e){d.error(e.data?e.data.message:e.toString()),E(n,void 0)});E(n,t)}else E(n,e)},h.composeFaxInteraction=function(e){var n={to:[]};n.to.push(h.contact.fax),i.show({controller:"ComposeFaxInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/fax/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{account:h.account,message:n,type:e},fullscreen:!0}).then(function(e){return l.faxAccount.send({id:h.account.id},e).$promise.then(function(e){d.success({title:"Message properly sent!",msg:"Message has been sent!"}),a.$parent.vm.addInteractionTab("fax",e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:"FAX:SEND",msg:e.data?JSON.stringify(e.data):e.message||e.toString()})})})},h.composeSmsInteraction=function(e,n){i.show({controller:"ComposeSmsInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/sms/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{account:h.account,message:n,type:e},fullscreen:!0,skipHide:Boolean(h.tab.spy)}).then(function(e){e&&S(e)})},h.composeWhatsappInteraction=function(e,n){i.show({controller:"ComposeWhatsappInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/whatsapp/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{account:h.account,message:n,type:e},fullscreen:!0,skipHide:Boolean(h.tab.spy)}).then(function(e){e&&S(e)})},h.composeChatInteraction=function(e,n){i.show({controller:"ComposeChatInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/chat/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{account:h.account,message:n,type:e},fullscreen:!0,skipHide:Boolean(h.tab.spy)}).then(function(e){e&&S(e)})},h.composeOpenchannelInteraction=function(e,n){i.show({controller:"ComposeOpenchannelInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/openchannel/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{account:h.account,message:n,type:e},fullscreen:!0,skipHide:Boolean(h.tab.spy)}).then(function(e){e&&S(e)})},h.transferLastMessage=function(){if(h.interaction){var e=_.findLast(h.messages.rows,function(e){return"in"===e.direction});e?i.show({controller:"TransferMessageDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/transfer/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{account:h.account,interaction:h.interaction,message:e,channel:h.tab.channel},resolve:{agents:["apiResolver",function(e){var n={fields:"id,name",$id:{ne:h.user.id},role:"agent",online:!0,sort:"name",nolimit:!0};return n[h.tab.channel+"Pause"]=!1,e.resolve("user@get",n)}],queues:["apiResolver",function(e){return e.resolve(h.tab.channel+"Queue@get",{fields:"id,name",sort:"name",nolimit:!0})}]}}).then(function(e){h.tab.saved=Boolean(e),e&&a.$parent.$parent.$parent.vm.closeTab(h.tab)}):d.error({title:"Invalid transfer",msg:"Message not found!"})}},h.downloadMessage=function(s,e){h.tab.channel&&s.id&&l[h.tab.channel+"Message"].download({id:s.id,attachments:e}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=h.tab.channel+"-message"+s.id+".eml";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.downloadMessage.get",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},h.downloadInteraction=function(s,e){h.tab.channel&&s.id&&l[h.tab.channel+"Interaction"].download({id:s.id,attachments:e}).$promise.then(function(e){var n=[e.buffer],t=h.tab.channel+"-interaction"+s.id+".zip",a=new Blob(n,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.inteactionMessage.get",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},h.openDraft=T,h.createVidaooSession=function(e){var n={id:e.id,account:e.Account,contact:e.Contact};return l.chatInteraction.createVidaooSession(n).$promise.then(function(){d.success({title:"Start Video Call",msg:"Session properly created."})}).catch(function(){d.error({title:"Start Video Call",msg:"Unable to create session!"})})},h.reply=function(e,n){if(e&&13===e.keyCode&&e.shiftKey)return;if(e&&13!==e.keyCode)return;if(""===n.trim())return;S(function(e){var n={},t="chat"===h.tab.channel?"ChatWebsiteId":_.capitalize(h.tab.channel)+"AccountId";n[t]=h.interaction[t].toString(),n[_.capitalize(h.tab.channel)+"InteractionId"]=h.interaction.id,("sms"===h.tab.channel||"whatsapp"===h.tab.channel)&&(n.phone=h.interaction.phone);e&&(n.UserId=h.user.id,n.ContactId=h.interaction.ContactId,n.body=e);return n}(n.replace(/\n$/,"")))},h.upload=function(){h.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},h.ngFlow.flow.upload()},h.fileAdded=function(e){if(e.size>b)return d.error({title:"File too big",msg:"The max allowed size is "+f+"MB"}),!1;return!0},h.fileSuccess=function(e,n){var t=JSON.parse(n),a=t.name;"chat"===h.tab.channel&&(a='<a href="'+(h.account.remote?h.account.remote:o.protocol()+"://"+o.host())+"/api/chat/interactions/"+h.interaction.id+"/attachment_download?attachId="+t.id+"&token="+h.account.token+'" target="_self">'+t.name+"</a>");S({body:a,AttachmentId:t.id})},h.onMessageSave=function(e){if(e&&h.interaction.id!=e[_.capitalize(h.tab.channel)+"InteractionId"])return;var n=!1;h.messages?n=_.find(h.messages.rows,{id:e.id}):h.messages={rows:[],count:0};n?_.merge(n,e):("mail"===h.tab.channel?h.messages.rows.unshift(e):h.messages.rows.push(e),y())},h.onInteractionSave=function(e){if(e&&h.interaction.id!==e.id)return;e.closed&&(h.tab.saved=!0);_.merge(h.interaction,e)},h.searchTextChange=function(n){var t=s.defer(),a=[],e={},i="chat"===h.tab.channel?"ChatWebsiteId":_.capitalize(h.tab.channel)+"AccountId";return e.filter=n,e[i]=h.account.id,l.cannedAnswer.get(e).$promise.then(function(e){return a=_.concat(a,e.rows),l.cannedAnswer.get({filter:n}).$promise}).then(function(e){a=_.concat(a,_.filter(e.rows,function(e){return!(e.MailAccountId||e.FaxAccountId||e.SmsAccountId||e.WhatsappAccountId||e.OpenchannelAccountId||e.ChatWebsiteId)})),t.resolve(a)}).catch(function(e){t.reject(e)}),t.promise},h.selectedItemChange=function(n){if(n){try{_.templateSettings.interpolate=/{{([\s\S]+?)}}/g;var e=_.template(n.value),t={user:h.user,account:h.account,interaction:h.interaction,contact:h.interaction&&h.interaction.Contact?h.interaction.Contact:{}};""!==h.tab.areaText&&(h.tab.areaText+=" "),h.tab.areaText+=e(t),h.ctrlMethods.setText(h.tab.areaText)}catch(e){""!==h.tab.areaText&&(h.tab.areaText+=" "),h.tab.areaText+=n.value,h.ctrlMethods.setText(h.tab.areaText)}h.selectedItem=null,h.changeDisplayCannedAnswerInputValue()}},h.getMessagesAlignment=function(e){if(e.secret&&h.user.id!=e.UserId)return"in";switch(h.setting.messagesAlignment){case"left":return"in"==e.direction?e.direction:"out-left-aligned";case"right":return"in"==e.direction?"in-right-aligned":e.direction;default:return e.direction}},h.displayCannedAnswerInput=!1,h.changeDisplayCannedAnswerInputValue=function(){h.displayCannedAnswerInput=!h.displayCannedAnswerInput},h.setAs=function(e){h.tab.channel&&h.interaction&&h.interaction.id&&l[h.tab.channel+"Interaction"].update({id:h.interaction.id,substatus:e}).$promise.catch(function(e){d.error(e.data?e.data.message:e.toString())})},h.markAsUnread=function(){if(h.tab.channel&&h.interaction&&h.interaction.id)if(h.acceptedMessages.length)for(var e=0;e<h.acceptedMessages.length;e+=1)l[h.tab.channel+"Message"].update({id:h.acceptedMessages[e],read:!1,UserId:null});else for(var n=0;n<h.messages.rows.length;n+=1)if("in"===h.messages.rows[n].direction){h.messages.rows[n].UserId===h.user.id?l[h.tab.channel+"Message"].update({id:h.messages.rows[n].id,read:!1,UserId:null}):d.error({title:"You can't mark as unread",msg:"You are not the owner of the last message!"});break}h.tab.saved=!0,a.$parent.$parent.$parent.vm.closeTab(h.tab)},h.getAttachments=function(n){return l.attachment.get({MailMessageId:n.id}).$promise.then(function(e){e&&e.rows&&(n.attachments=e.rows)}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"ATTACHMENTS:GET",msg:e.data?JSON.stringify(e.data):e.toString()})})},h.getAttachment=function(i){return l.attachment.download({id:i.id}).$promise.then(function(e){if(e){var n=new Blob([e.buffer],{type:e.type}),t=document.createElement("a"),a=window.URL.createObjectURL(n);t.href=a,t.target="_self",t.download=i.name,document.body.appendChild(t),t.click(),setTimeout(function(){document.body.removeChild(t),window.URL.revokeObjectURL(a)},100)}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"ATTACHMENTS:GET",msg:e.data?JSON.stringify(e.data):e.toString()})})},h.htmlToPlaintext=function(e){return e?String(e).replace(/<[^>]+>/gm,""):""},h.onInteractionOpen=function(e){var n;h.interaction.id==e[_.upperFirst(h.tab.channel)+"InteractionId"]&&(h.interaction.Users&&(n=_.find(h.interaction.Users,{id:e.UserId})),n||h.interaction.Users.push({id:e.UserId}))},h.onInteractionClose=function(e){h.interaction.id==e[_.upperFirst(h.tab.channel)+"InteractionId"]&&h.interaction.Users&&_.remove(h.interaction.Users,{id:e.UserId})},h.getCustomerJourney=I,h.loadNextPage=function(){var t=s.defer();if(h.queryMessage)return h.queryMessage.offset=h.messages.rows.length,l[h.tab.channel+"Interaction"].getMessages(h.queryMessage).$promise.then(function(e){for(var n=0;n<e.rows.length;n+=1)h.messages.rows.push(e.rows[n]),h.interaction.closed||"in"!==e.rows[n].direction||e.rows[n].read||(l[h.tab.channel+"Message"].accept({id:e.rows[n].id,UserId:h.user.id}),h.acceptedMessages.push(e.rows[n].id));return 0<e.rows.length&&(h.BTNLoadMore=h.BTNLoadMore-e.rows.length),t.resolve(e)}).catch(function(e){return t.reject(e)});return t.reject()},h.interactionTimelineOptions={scrollEl:"#interaction-content"},h.loadMoreJourney=function(){return s(function(e){var n=h.journey.length;return e(I(n))})},h.journeyTimelineOptions={scrollEl:"#journey-content"},a.$on("$destroy",function(){m.removeAllListeners(h.tab.channel+"Message:save"),m.removeAllListeners(h.tab.channel+"Message:update"),m.removeAllListeners(h.tab.channel+"Interaction:save"),m.removeAllListeners(h.tab.channel+"Interaction:update"),m.removeAllListeners("user_has_"+h.tab.channel+"_interactions:save"),m.removeAllListeners("user_has_"+h.tab.channel+"_interactions:remove")})}function n(a){return{scope:{ngBindHtmlUnsafe:"="},template:"<div ng-bind-html='trustedHtml'></div>",link:function(t){t.updateView=function(){var e,n=_.replace(t.ngBindHtmlUnsafe,'<div id="xm-mail-content"','<a style="cursor:pointer" class="toggle-details md-accent-color" onclick="document.getElementById(\''+(e="xm-mail-content-"+Math.floor(9999*Math.random()+1))+"').style.display='block'; this.parentNode.removeChild(this)\">See More</a><div id=\""+e+'" style="display:none"');t.trustedHtml=a.trustAsHtml(n)},t.$watch("ngBindHtmlUnsafe",function(e){t.updateView(e)})}}}e.$inject=["$cookies","$timeout","$document","$scope","$mdDialog","$q","$location","$translate","api","toasty","Auth","socket","msUtils","draftManager","customerJourneyManager","privacyManager"],n.$inject=["$sce"],angular.module("app.dashboards").directive("ngBindHtmlUnsafe",n).controller("AgentGeneralInteractionController",e)}(),function(){"use strict";angular.module("app.dashboards").factory("Emojis",function(){return{watchEmbedData:!1,sanitizeHtml:!1,fontSmiley:!1,emoji:!0,link:!0,linkTarget:"_blank",pdf:{embed:!0},image:{embed:!0},audio:{embed:!0},basicVideo:!1,gdevAuth:"xxxxxxxx",video:{embed:!1,width:null,height:null,ytTheme:"dark",details:!1,thumbnailQuality:"medium",autoPlay:!0},twitchtvEmbed:!0,dailymotionEmbed:!0,tedEmbed:!0,dotsubEmbed:!0,liveleakEmbed:!0,ustreamEmbed:!0,soundCloudEmbed:!0,soundCloudOptions:{height:160,themeColor:"f50000",autoPlay:!1,hideRelated:!1,showComments:!0,showUser:!0,showReposts:!1,visual:!1,download:!1},spotifyEmbed:!0,tweetEmbed:!0,tweetOptions:{maxWidth:550,hideMedia:!1,hideThread:!1,align:"none",lang:"en"},code:{highlight:!0,lineNumbers:!1},codepenEmbed:!0,codepenHeight:300,jsfiddleEmbed:!0,jsfiddleHeight:300,jsbinEmbed:!0,jsbinHeight:300,plunkerEmbed:!0,githubgistEmbed:!0,ideoneEmbed:!0,ideoneHeight:300}})}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;switch(p.currentUser=u.getCurrentUser(),p.errors=[],p.separatorKeys=[i.KEY_CODE.ENTER,i.KEY_CODE.COMMA,i.KEY_CODE.TAB],p.searchTextChange=function(n){var t=c.defer(),a=[];return l.cannedAnswer.get({filter:n,ChatAccountId:s.id}).$promise.then(function(e){return a=_.concat(a,e.rows),l.cannedAnswer.get({filter:n}).$promise}).then(function(e){a=_.concat(a,_.filter(e.rows,function(e){return!(e.MailAccountId||e.FaxAccountId||e.SmsAccountId||e.WhatsappAccountId||e.OpenchannelAccountId||e.ChatWebsiteId)})),t.resolve(a)}).catch(function(e){t.reject(e)}),t.promise},p.selectedItemChange=function(n){if(n){try{_.templateSettings.interpolate=/{{([\s\S]+?)}}/g;var e=_.template(n.value),t={user:p.currentUser,account:s};p.message.body+=" "+e(t),p.ctrlMethods.setText(p.message.body)}catch(e){p.message.body+=" "+n.value,p.ctrlMethods.setText(p.message.body)}p.selectedItem=null}},p.note=function(){p.secret=!0},p.addNote=function(){p.message.body&&a.hide({secret:!0,body:p.message.body})},p.ctrlMethods={},p.message={from:s.phone,to:_.isNil(o.to)||_.isEmpty(o.to)?[]:o.to,body:""},p.send=function(e){p.message.to&&p.message.body&&(p.message.to.length?(n=p.message.body,a.hide({to:p.message.to.join(","),body:n})):d.error("To is mandatory"));var n},p.getContact=function(e){var n="";e.firstName&&e.firstName!==e.mobile&&(n+=e.firstName+" ");e.lastName&&e.lastName!==e.mobile&&(n+=e.lastName+" ");return n+="<"+e.mobile+">"},p.closeDialog=function(){a.cancel()},p.contactSearch=function(e){if(s&&s.ListId)return l.cmContact.get({ListId:s.ListId,nolimit:!0,filter:e,fields:"firstName,lastName,mobile"}).$promise.then(function(e){return e.rows});return[]},p.transformContact=function(e){var n=e;if(_.isObject(n))return e.mobile;if(t=n,/^(\+|\d)[0-9]{7,16}$/.test(t))return n;var t;return d.error("Mobile "+n+" is not valid"),null},r){case"note":p.note()}}e.$inject=["$cookies","$timeout","$window","$mdDialog","$mdConstant","account","message","type","api","toasty","$q","$translate","Auth"],angular.module("app.dashboards").controller("ComposeChatInteractionDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this,m=25,u=1024*m*1024;c.separatorKeys=[a.KEY_CODE.ENTER,a.KEY_CODE.COMMA,a.KEY_CODE.TAB],c.message={from:i.localstationid,to:_.isNil(s.to)||_.isEmpty(s.to)?[]:s.to,attachments:[]},c.ngFlowOptions={target:"api/attachments",singleFile:!0,maxChunkRetries:1,chunkSize:u,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},c.ngFlow={flow:{}},c.send=function(e){1===c.message.attachments.length?c.message.to.length?(s.draft=void 0,t.hide({from:c.message.from,to:c.message.to,attach:c.message.attachments.length,attachments:c.message.attachments})):l.error("To is mandatory"):l.error("Attachment is mandatory")},c.upload=function(){c.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},c.ngFlow.flow.upload()},c.fileSuccess=function(e,n){try{(n=JSON.parse(n)).size=e.size,c.message.attachments.push(n)}catch(e){console.error(e)}},c.fileAdded=function(e){var n=["pdf","tif"];if(!_.includes(n,e.getExtension()))return l.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extensions: "+n.join()}),!1;if(e.size>u)return l.error({title:"File too big",msg:"The max allowed size is "+m+"MB"}),!1;return!0},c.getContact=function(e){var n="";e.firstName&&e.firstName!==e.fax&&(n+=e.firstName+" ");e.lastName&&e.lastName!==e.fax&&(n+=e.lastName+" ");return n+="<"+e.fax+">"},c.contactSearch=function(e){return i&&i.ListId?r.cmContact.get({ListId:i.ListId,nolimit:!0,filter:e,fields:"firstName,lastName,fax"}).$promise.then(function(e){return e.rows}):[]},c.transformContact=function(e){var n=e;if(_.isObject(e))return e.fax;if(t=n,!/[&\/\\#,()$~%.'":;*?<>{}\s\\|a-zA-Z\pS!òàùè…_§°çéì-]/.test(t))return n;var t;return l.error("Fax "+n+" is not valid"),null},c.closeDialog=function(){s.draft=c.message,t.cancel()}}e.$inject=["$cookies","$window","$mdDialog","$mdConstant","account","message","type","api","toasty","$q"],angular.module("app.dashboards").controller("ComposeFaxInteractionDialogController",e)}(),function(){"use strict";function e(n,e,i,t,a,s,o,r,l,d,c,m,u,p){var g=this,v=25,h=1024*v*1024;g.currentUser=m.getCurrentUser(),g.secret="note"===r,g.hiddenCC=!0,g.hiddenBCC=!0,g.verifySmtp=!0,g.errors=[],g.separatorKeys=[t.KEY_CODE.ENTER,t.KEY_CODE.COMMA,t.KEY_CODE.TAB],g.searchTextChange=function(n){var t=c.defer(),a=[];return l.cannedAnswer.get({filter:n,MailAccountId:s.id}).$promise.then(function(e){return a=_.concat(a,e.rows),l.cannedAnswer.get({filter:n}).$promise}).then(function(e){a=_.concat(a,_.filter(e.rows,function(e){return!(e.MailAccountId||e.FaxAccountId||e.SmsAccountId||e.WhatsappAccountId||e.OpenchannelAccountId||e.ChatWebsiteId)})),t.resolve(a)}).catch(function(e){t.reject(e)}),t.promise},g.selectedItemChange=function(n){if(n&&n.value&&g.ckEditorInstance)try{var e=_.template(n.value),t={user:g.currentUser,account:s,interaction:u,contact:u&&u.Contact?u.Contact:{}};g.ckEditorInstance.insertHtml(e(t))}catch(e){console.error(e),g.ckEditorInstance.insertHtml(n.value)}document.getElementById("html-area").focus(),g.selectedItem=null},g.onReadyEditor=function(e){try{g.ckEditorInstance=CKEDITOR.instances["html-area"]}catch(e){console.error("Unable to get Html Editor instance",e)}},_.templateSettings.interpolate=/{{([\s\S]+?)}}/g,g.fromTemplate=_.template("{{ name }} <{{ email }}>"),g.replyTemplate=_.template("On {{ date }}, at {{ time }}, {{ from }} wrote:"),g.forwardTemplate=_.template("Begin forwarded message:<br><br><strong>From:</strong> {{ from }}<br><strong>Subject:</strong> {{ subject }}<br><strong>Date:</strong> {{ date }}, at {{ time }}<br><strong>To:</strong> {{ to }}"),g.message={from:g.fromTemplate({name:s.name,email:s.email||s.Smtp.user}),to:[],cc:[],bcc:[],body:S(),type:r,attachments:[],showLastMessage:!0},g.draft=null,g.ckeditor={skin:"office2013",startupFocus:!0,language:"en",allowedContent:!0,extraPlugins:"font,colorbutton,autogrow,autoembed,autocorrect,googlethisterm,pastebase64",toolbarGroups:[{name:"styles",groups:["styles"]},{name:"clipboard",groups:["undo"]},{name:"colors",groups:["colors"]},{name:"basicstyles",groups:["basicstyles"]},{name:"paragraph",groups:["list","indent","align"]}],autoGrow_onStartup:!0,autoGrow_minHeight:g.secret?160:300,autoGrow_maxHeight:e.innerHeight-400,autocorrect_enabled:!0,disableNativeSpellChecker:!1,enterMode:CKEDITOR.ENTER_BR,font_defaultLabel:s.fontFamily?s.fontFamily.split(",")[0]:"Arial",fontSize_defaultLabel:s.fontSize||"12",removePlugins:"magicline"};for(var f=[],b=8;b<=72;b++)f.push(b+"/"+b+"pt");g.ckeditor.fontSize_sizes=f.join(";"),g.ngFlowOptions={target:"api/attachments",singleFile:!0,maxChunkRetries:1,chunkSize:h,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},g.ngFlow={flow:{}},g.reply=function(e){angular.isDefined(o)&&(g.message.type="reply",g.message.to="in"===o.direction?o.from.split(","):o.to.split(","),g.message.subject=_.startsWith(o.subject,"Re:")?o.subject:"Re: "+o.subject,g.message.inReplyTo=o.messageId,g.message.body=S(),g.message.attachments=[],e&&o.cc&&(g.hiddenCC=!1,g.message.cc=o.cc.split(",")),g.message.showLastMessage=!1)},g.newMail=function(){angular.isDefined(o)&&(g.message.type="new",g.message.to=o.to?o.to.split(","):[])},g.forward=function(){if(angular.isDefined(o)){if(g.message.type="forward",g.message.subject=_.startsWith(o.subject,"Fwd:")?o.subject:"Fwd: "+o.subject,g.message.body=S(),o.Attachments&&o.Attachments.length)for(var e=0;e<o.Attachments.length;e++)g.message.attachments.push(o.Attachments[e]);g.message.showLastMessage=!1}},g.editDraft=function(){g.isDraft=!0,angular.isDefined(o)&&(o.savedAsDraft=!1,g.message=angular.copy(o),_.isEmpty(g.message.cc)||(g.hiddenCC=!1),_.isEmpty(g.message.bcc)||(g.hiddenBCC=!1))},g.send=function(e,n,t){if(!A&&g.message.to&&g.message.body)if(g.message.to.length)if(_.isEmpty(g.message.subject)){var a=i.confirm({skipHide:!0}).title("Warning").textContent("This message has no subject. Are you sure you want to send it?").ariaLabel("Warning").targetEvent(e).ok("Send Anyway").cancel("Cancel");i.show(a).then(function(){E(n,t)})}else E(n,t);else d.error("To is mandatory");A=!1},g.note=function(){g.type="note",g.secret=!0,g.message.body='<div style="font-family:'+s.fontFamily+";font-size:"+s.fontSize+'pt"><p></p></div>'},g.addNote=function(){g.message.body&&i.hide({secret:!0,body:g.message.body,attach:g.message.attachments.length,attachments:g.message.attachments})},g.upload=function(e){g.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+n.get("motion.token")},g.ngFlow.flow.upload()},g.fileSuccess=function(e,n){try{(n=JSON.parse(n)).size=e.size,g.message.attachments.push(n)}catch(e){console.error(e)}},g.removeAttachment=function(e){g.message.attachments=_.reject(g.message.attachments,{id:e.id}),e.MailMessageId||l.attachment.delete({id:e.id}).$promise.catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.attachment.delete",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.fileAdded=function(e){if(e.size>h)return d.error({title:"File too big",msg:"The max allowed size is "+v+"MB"}),!1;return!0},g.getContact=function(e){var n="";e.firstName&&e.firstName!==e.email&&(n+=e.firstName+" ");e.lastName&&e.lastName!==e.email&&(n+=e.lastName+" ");return n+="<"+e.email+">"},g.contactSearch=function(e){return s&&s.ListId?l.cmContact.get({ListId:s.ListId,nolimit:!0,filter:e,fields:"firstName,lastName,email"}).$promise.then(function(e){return e.rows}):[]},g.transformContact=function(e,n){if(_.isObject(e))return(g.contact=e).email;if(_.isString(e)){if(y(e))return g.contact={email:e},e;for(var t=e.split(","),a=0;a<t.length;a+=1)y(t[a])?_.isArray(n)&&_.indexOf(n,t[a])<0&&n.push(t[a]):d.error("Email "+t[a]+" is not valid");return g.contact={email:e.split(",")[0]},null}return d.error("Email field is not valid"),null},g.saveDraft=function(){g.message.savedAsDraft=!0,g.draft=p.getByInteraction(u.id);var e={account:s,message:g.message,contact:g.contact,interaction:u};if(g.draft&&!g.isDraft){var n=i.confirm({skipHide:!0}).title(a.instant("DASHBOARDS.DRAFT_SAVE_WARNING_TITLE")).content(a.instant("DASHBOARDS.DRAFT_SAVE_WARNING_MESSAGE")).ariaLabel("Save draft").ok(a.instant("DASHBOARDS.OVERWRITE")).cancel(a.instant("DASHBOARDS.CANCEL"));i.show(n).then(function(){i.hide(e)})}else i.hide(e)},g.closeDialog=function(){i.cancel()},g.loadLastMessage=function(){g.message.body+=T(g.message.type)};var A=!(g.keyPress=function(e){13===e.keyCode&&(A=!0)});switch(r){case"reply":g.reply(!1);break;case"replyAll":g.reply(!0);break;case"forward":g.forward();break;case"draft":g.editDraft();break;case"new":g.newMail();break;case"note":g.note()}function E(e,n){var t={from:g.message.from,to:g.message.to.join(","),cc:g.message.cc.join(","),bcc:g.message.bcc.join(","),subject:g.message.subject,body:g.message.showLastMessage?g.message.body:g.message.body+T(g.message.type),inReplyTo:g.message.inReplyTo,attach:g.message.attachments.length,attachments:g.message.attachments,Interaction:{lastMsgDirection:"out",substatus:n},isDraft:g.isDraft};t.html='<div id="xm-mail-content">'+_.replace(t.body,'<div id="xm-mail-content"',"<div")+"</div>",e&&(t.Interaction.closed=!0),i.hide(t)}function y(e){return/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(e)}function S(){return'<div style="font-family:'+s.fontFamily+";font-size:"+s.fontSize+'pt">'+function(){if(_.isNil(s.template))return"";try{return _.template(s.template)({user:g.currentUser,account:s,interaction:u,contact:u&&u.Contact?u.Contact:{}})}catch(e){return console.error(e),""}}()+"</div>"}function T(e){var n='<div id="xm-mail-content"><blockquote type="cite">';switch(e){case"reply":case"replyAll":n+=g.replyTemplate({date:moment(o.createdAt).format("D MMM YYYY")||"",time:moment(o.createdAt).format("HH:mm")||"",from:_.escape(o.from)||""});break;case"forward":n+=g.forwardTemplate({date:moment(o.createdAt).format("D MMM YYYY")||"",time:moment(o.createdAt).format("HH:mm")||"",from:_.escape(o.from)||"",to:_.escape(o.to)||"",subject:_.escape(o.subject)||""})}var t,a,i=g.message.showLastMessage&&o.originalMessage?o.originalMessage.body:o.body;return n+="<br><br>",n+=(t=i?_.replace(i,'<div id="xm-mail-content"',"<div"):"",(a=t.match(/\<body[^>]*\>([^]*)\<\/body/m))?a[1]:t),n+="</blockquote></div>",e?n:""}l.mailSubstatus.get({nolimit:!0}).$promise.then(function(e){g.subStatuses=e||{count:0,rows:[]}}).catch(function(e){console.error(e)}),g.secret||l.mailAccount.verifySmtp({id:s.id}).$promise.catch(function(e){g.verifySmtp=!1,g.errors.push({message:e.data,type:e.status}),g.errors.push({message:"You can't reply or send an email. Please contact the administrator!",type:"500"})})}e.$inject=["$cookies","$window","$mdDialog","$mdConstant","$translate","account","message","type","api","toasty","$q","Auth","interaction","draftManager"],angular.module("app.dashboards").controller("ComposeMailInteractionDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;switch(p.currentUser=u.getCurrentUser(),p.errors=[],p.separatorKeys=[i.KEY_CODE.ENTER,i.KEY_CODE.COMMA,i.KEY_CODE.TAB],p.searchTextChange=function(n){var t=c.defer(),a=[];return l.cannedAnswer.get({filter:n,OpenchannelAccountId:s.id}).$promise.then(function(e){return a=_.concat(a,e.rows),l.cannedAnswer.get({filter:n}).$promise}).then(function(e){a=_.concat(a,_.filter(e.rows,function(e){return!(e.MailAccountId||e.FaxAccountId||e.SmsAccountId||e.WhatsappAccountId||e.OpenchannelAccountId||e.ChatWebsiteId)})),t.resolve(a)}).catch(function(e){t.reject(e)}),t.promise},p.selectedItemChange=function(n){if(n){try{_.templateSettings.interpolate=/{{([\s\S]+?)}}/g;var e=_.template(n.value),t={user:p.currentUser,account:s};p.message.body+=" "+e(t),p.ctrlMethods.setText(p.message.body)}catch(e){p.message.body+=" "+n.value,p.ctrlMethods.setText(p.message.body)}p.selectedItem=null}},p.note=function(){p.secret=!0},p.addNote=function(){p.message.body&&a.hide({secret:!0,body:p.message.body})},p.ctrlMethods={},p.message={from:s.phone,to:_.isNil(o.to)||_.isEmpty(o.to)?[]:o.to,body:""},p.send=function(e){p.message.to&&p.message.body&&(p.message.to.length?(n=p.message.body,a.hide({to:p.message.to.join(","),body:n})):d.error("To is mandatory"));var n},p.getContact=function(e){var n="";e.firstName&&e.firstName!==e[s.mapKey]&&(n+=e.firstName+" ");e.lastName&&e.lastName!==e[s.mapKey]&&(n+=e.lastName+" ");return n+="<"+e[s.mapKey]+">"},p.closeDialog=function(){a.cancel()},p.contactSearch=function(e){if(s&&s.ListId){var n="firstName,lastName,phone,mobile";return s.mapKey&&(n+=","+s.mapKey),l.cmContact.get({ListId:s.ListId,nolimit:!0,filter:e,fields:n}).$promise.then(function(e){return e.rows})}return[]},p.transformContact=function(e){var n=e;if(_.isObject(n))return e[s.mapKey];return n},r){case"note":p.note()}}e.$inject=["$cookies","$timeout","$window","$mdDialog","$mdConstant","account","message","type","api","toasty","$q","$translate","Auth"],angular.module("app.dashboards").controller("ComposeOpenchannelInteractionDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;switch(p.currentUser=u.getCurrentUser(),p.errors=[],p.separatorKeys=[i.KEY_CODE.ENTER,i.KEY_CODE.COMMA,i.KEY_CODE.TAB],p.searchTextChange=function(n){var t=c.defer(),a=[];return l.cannedAnswer.get({filter:n,SmsAccountId:s.id}).$promise.then(function(e){return a=_.concat(a,e.rows),l.cannedAnswer.get({filter:n}).$promise}).then(function(e){a=_.concat(a,_.filter(e.rows,function(e){return!(e.MailAccountId||e.FaxAccountId||e.SmsAccountId||e.WhatsappAccountId||e.OpenchannelAccountId||e.ChatWebsiteId)})),t.resolve(a)}).catch(function(e){t.reject(e)}),t.promise},p.selectedItemChange=function(n){if(n){try{_.templateSettings.interpolate=/{{([\s\S]+?)}}/g;var e=_.template(n.value),t={user:p.currentUser,account:s};p.message.body+=" "+e(t),p.ctrlMethods.setText(p.message.body)}catch(e){p.message.body+=" "+n.value,p.ctrlMethods.setText(p.message.body)}p.selectedItem=null}},p.note=function(){p.secret=!0},p.addNote=function(){p.message.body&&a.hide({secret:!0,body:p.message.body})},p.ctrlMethods={},p.message={from:s.phone,to:_.isNil(o.to)||_.isEmpty(o.to)?[]:o.to,body:""},p.send=function(e){p.message.to&&p.message.body&&(p.message.to.length?(n=p.message.body,a.hide({to:p.message.to.join(","),body:n})):d.error("To is mandatory"));var n},p.getContact=function(e){var n="";e.firstName&&e.firstName!==e.mobile&&(n+=e.firstName+" ");e.lastName&&e.lastName!==e.mobile&&(n+=e.lastName+" ");return n+="<"+e.mobile+">"},p.closeDialog=function(){a.cancel()},p.contactSearch=function(e){if(s&&s.ListId)return l.cmContact.get({ListId:s.ListId,nolimit:!0,filter:e,fields:"firstName,lastName,mobile"}).$promise.then(function(e){return e.rows});return[]},p.transformContact=function(e){var n=e;if(_.isObject(n))return e.mobile;if(t=n,/^(\+|\d)[0-9]{7,16}$/.test(t))return n;var t;return d.error("Mobile "+n+" is not valid"),null},r){case"note":p.note()}}e.$inject=["$cookies","$timeout","$window","$mdDialog","$mdConstant","account","message","type","api","toasty","$q","$translate","Auth"],angular.module("app.dashboards").controller("ComposeSmsInteractionDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;switch(p.currentUser=u.getCurrentUser(),p.errors=[],p.separatorKeys=[i.KEY_CODE.ENTER,i.KEY_CODE.COMMA,i.KEY_CODE.TAB],p.searchTextChange=function(n){var t=c.defer(),a=[];return l.cannedAnswer.get({filter:n,WhatsappAccountId:s.id}).$promise.then(function(e){return a=_.concat(a,e.rows),l.cannedAnswer.get({filter:n}).$promise}).then(function(e){a=_.concat(a,_.filter(e.rows,function(e){return!(e.MailAccountId||e.FaxAccountId||e.SmsAccountId||e.WhatsappAccountId||e.OpenchannelAccountId||e.ChatWebsiteId)})),t.resolve(a)}).catch(function(e){t.reject(e)}),t.promise},p.selectedItemChange=function(n){if(n){try{_.templateSettings.interpolate=/{{([\s\S]+?)}}/g;var e=_.template(n.value),t={user:p.currentUser,account:s};p.message.body+=" "+e(t),p.ctrlMethods.setText(p.message.body)}catch(e){p.message.body+=" "+n.value,p.ctrlMethods.setText(p.message.body)}p.selectedItem=null}},p.note=function(){p.secret=!0},p.addNote=function(){p.message.body&&a.hide({secret:!0,body:p.message.body})},p.ctrlMethods={},p.message={from:s.phone,to:_.isNil(o.to)||_.isEmpty(o.to)?[]:o.to,body:""},p.send=function(e){p.message.to&&p.message.body&&(p.message.to.length?(n=p.message.body,a.hide({to:p.message.to.join(","),body:n})):d.error("To is mandatory"));var n},p.getContact=function(e){var n="";e.firstName&&e.firstName!==e.mobile&&(n+=e.firstName+" ");e.lastName&&e.lastName!==e.mobile&&(n+=e.lastName+" ");return n+="<"+e.mobile+">"},p.closeDialog=function(){a.cancel()},p.contactSearch=function(e){if(s&&s.ListId)return l.cmContact.get({ListId:s.ListId,nolimit:!0,filter:e,fields:"firstName,lastName,mobile"}).$promise.then(function(e){return e.rows});return[]},p.transformContact=function(e){var n=e;if(_.isObject(n))return e.mobile;if(t=n,/^(\+|\d)[0-9]{7,16}$/.test(t))return n;var t;return d.error("Mobile "+n+" is not valid"),null},r){case"note":p.note()}}e.$inject=["$cookies","$timeout","$window","$mdDialog","$mdConstant","account","message","type","api","toasty","$q","$translate","Auth"],angular.module("app.dashboards").controller("ComposeWhatsappInteractionDialogController",e)}(),function(){"use strict";function e(n,t,a,e,i,s,o){var r=this;function l(e){n.hide(e)}r.errors=[],r.dispositions=[],r.interaction=angular.copy(e),r.interaction.disposition||(r.interaction.disposition=null),r.channel=i,r.apiRoute=r.channel+"Interaction",r.apiAccountRoute=r.channel+("chat"===r.channel?"Website":"Account"),r.accountProperty=_.capitalize(r.channel)+("chat"===r.channel?"Website":"Account")+"Id",r.firstLevelDisposition=null,r.mandatoryDisposition=!1,r.mandatoryDispositionPause="",r.wasUserInPause=s.voicePause||s.chatPause||s.mailPause||s.openchannelPause||s.faxPause,r.onInit=function(){var n=[],t={fields:"id,name,level,ParentId",sort:"name",nolimit:!0};t[r.accountProperty]=e[r.accountProperty],a[r.apiAccountRoute].get({id:e[r.accountProperty]}).$promise.then(function(e){return r.mandatoryDisposition=e.mandatoryDisposition,r.mandatoryDisposition&&(r.mandatoryDispositionPause=e.mandatoryDispositionPause.name),a.disposition.get(t).$promise}).then(function(e){return e.rows.length&&(n=_.concat(n,e.rows)),a.disposition.get({MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0}).$promise}).then(function(e){e.rows.length&&(n=_.concat(n,e.rows))}).catch(function(e){console.error(e)}).finally(function(){r.dispositions=_.orderBy(n,["name"],["asc"]),r.mandatoryDisposition&&!r.wasUserInPause&&a.user.pause({id:s.id,type:r.mandatoryDispositionPause||"DEFAULT PAUSE"}).$promise.then(function(e){}).catch(function(e){console.error(e)})})},r.onDispositionChange=function(e){"first"===e?(r.anySecondLevelDisposition=!!r.firstLevelDisposition&&_.some(r.dispositions,["ParentId",r.firstLevelDisposition.id]),r.firstLevelDisposition||(r.secondLevelDisposition=void 0)):"second"===e&&(r.anyThirdLevelDisposition=_.some(r.dispositions,["ParentId",r.secondLevelDisposition.id]))},r.clearDispositionSelection=function(e){"second"===e?(r.secondLevelDisposition=void 0,r.thirdLevelDisposition=void 0):"third"===e&&(r.thirdLevelDisposition=void 0)},r.saveDisposition=function(){r.errors=[],r.interaction.UserId=s.id,r.interaction.closed=!0,r.interaction.closeReason="agent",r.interaction.disposition=r.firstLevelDisposition?r.firstLevelDisposition.name:null,r.interaction.secondDisposition=r.secondLevelDisposition?r.secondLevelDisposition.name:void 0,r.interaction.thirdDisposition=r.thirdLevelDisposition?r.thirdLevelDisposition.name:void 0,a[r.apiRoute]?a[r.apiRoute].update(_.pick(r.interaction,["MailAccountId","FaxAccountId","SmsAccountId","WhatsappAccountId","ChatWebsiteId","OpenchannelAccountId","closed","closeReason","disposition","secondDisposition","thirdDisposition","id","note","UserId"])).$promise.then(function(e){r.interaction=e,"mail"===r.channel&&o.removeByInteraction(r.interaction.id),t.success({title:"Interaction properly closed!",msg:"Interaction has been closed!"})}).then(function(){l(!0)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){r.errors=e.data.errors||[{message:e.toString(),type:"api.variable.update"}];for(var n=0;n<e.data.errors.length;n++)t.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.variable.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})}):l(!1)},r.closeDialog=l}e.$inject=["$mdDialog","toasty","api","interaction","channel","user","draftManager"],angular.module("app.dashboards").controller("DisposeInteractionDialogController",e)}(),function(){"use strict";function e(n,t,e,a,i,s){var o=this;function r(e){n.hide(e)}o.errors=[],o.tags=s,o.interaction=angular.copy(a),o.interaction.Tags=_.map(o.interaction.Tags,function(e){return{id:e.id,name:e.name,color:e.color}}),o.channel=i,o.autocompleteRequireMatch=!0,o.saveTag=function(){{if(o.errors=[],e[o.apiRoute])return e[o.apiRoute].addTags({id:o.interaction.id,ids:_.map(o.interaction.Tags,"id")}).$promise.then(function(){t.success({title:"Interaction properly tagged!",msg:"Interaction has been tagged!"}),a.Tags=o.interaction.Tags,r(!0)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)t.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.variable.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})});r(!1)}},o.closeDialog=r,o.apiRoute=o.channel+"Interaction"}e.$inject=["$mdDialog","toasty","api","interaction","channel","tags"],angular.module("app.dashboards").controller("TagInteractionDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r,l,d){var c=this;function m(e){n.hide(e)}c.channel=s.toLowerCase(),c.message=o,c.account=r,c.agents=l,c.queues=d,c.transfer={id:0,type:c.account.queueTransfer?"queue":"agent"},c.onTransfer=function(){m(!0),e(function(){var e="agent"===c.transfer.type?"agentNotify":c.channel+"QueueNotify";return a.rpc[e]({id:c.transfer.id,messageId:c.message.id,channel:c.channel}).$promise.then(function(){i.success({title:t.instant("DASHBOARDS.INFO"),msg:"queue"===c.transfer.type?t.instant("DASHBOARDS.NOTIFICATIONS.TRANSFER_QUEUE_EXECUTED"):t.instant("DASHBOARDS.NOTIFICATIONS.TRANSFER_AGENT_EXECUTED")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.rpc.notify"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.rpc.notify",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},5e3)},c.closeDialog=m}e.$inject=["$mdDialog","$timeout","$translate","api","toasty","channel","message","account","agents","queues"],angular.module("app.dashboards").controller("TransferMessageDialogController",e)}(),function(){"use strict";function e(i,m,s,e,u,o,r,t,n,a,l){var p=this;function d(){try{i.$parent.$parent.$parent.vm.updateLocalStorage()}catch(e){o.error({title:"ERROR UPDATE LOCAL TABS",msg:"Error updating locally stored tabs"})}}function c(t,e){var n,a,l=[],d=[],c=r.getCurrentUser();(n=c,a=m.defer(),p.project.sendUnpauseOnSubmit?u.user.unpause({id:n.id}).$promise.then(function(e){a.resolve()}).catch(function(e){console.log("err"),a.resolve()}):a.resolve(),a.promise).then(function(){return u.jscriptySessionReport.save({starttime:p.starttime,membername:p.call&&p.call.membername?p.call.membername:c.name,calleridname:p.call&&p.call.calleridname?p.call.calleridname:void 0,calleridnum:p.call&&p.call.calleridnum?p.call.calleridnum:void 0,queue:p.call&&p.call.queue?p.call.queue:void 0,uniqueid:p.call&&p.call.uniqueid?p.call.uniqueid:void 0,VoiceQueueId:p.call&&p.call["xmd-voicequeueid"]?p.call["xmd-voicequeueid"]:void 0,ProjectId:p.project&&p.project.id?p.project.id:void 0,projectname:p.project&&p.project.name?p.project.name:void 0,ContactId:p.contact&&p.contact.id?p.contact.id:void 0,completed:e}).$promise}).then(function(e){if(e)for(var n=p.getResponseSheetHeaders(),t=p.getResponseSheetRow(),a=p.getQuestionWithResponseList(),i=0;i<n.length;i+=1)if(!_.isEmpty(String(t[i]))){try{l.push(u.jscriptyQuestionReport.save({question:n[i],answer:"date"===a[i].type?moment(String(t[i])).format("YYYY-MM-DD"):"time"===a[i].type?moment(String(t[i])).format("HH:mm"):String(t[i]),questionId:a[i].id,membername:p.call&&p.call.membername?p.call.membername:c.name,calleridname:p.call&&p.call.calleridname?p.call.calleridname:void 0,calleridnum:p.call&&p.call.calleridnum?p.call.calleridnum:void 0,queue:p.call&&p.call.queue?p.call.queue:void 0,uniqueid:p.call&&p.call.uniqueid?p.call.uniqueid:void 0,SessionId:e.id,ProjectId:p.project.id,projectname:p.project.name}))}catch(e){console.error("Unable to convert question",e)}for(var s=String(t[i]).split(";"),o=0;o<s.length;o+=1){var r=s[o].trim();try{d.push(u.jscriptyAnswerReport.save({question:n[i],questionId:a[i].id,answer:"date"===a[i].type?moment(r).format("YYYY-MM-DD"):"time"===a[i].type?moment(r).format("HH:mm"):r,membername:p.call&&p.call.membername?p.call.membername:c.name,calleridname:p.call&&p.call.calleridname?p.call.calleridname:void 0,calleridnum:p.call&&p.call.calleridnum?p.call.calleridnum:void 0,queue:p.call&&p.call.queue?p.call.queue:void 0,uniqueid:p.call&&p.call.uniqueid?p.call.uniqueid:void 0,SessionId:e.id,ProjectId:p.project.id,projectname:p.project.name}))}catch(e){console.error("Unable to convert answer",e)}}}return m.all(l).then(function(){return m.all(d).then(function(){return e})})}).then(function(e){e?t.resolve(!0):t.reject()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.contact.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contact.save",msg:e.data?JSON.stringify(e.data.message):e.toString()});t.reject()})}p.formViewer={},p.showResetButton=!0,p.showIncompleteSubmitButton=!1,p.detectBrowser=l.detectBrowser(),p.onSubmit=function(e,n){var t=m.defer();if(n){var a=s.confirm().title("Would you like to save your survey?").textContent("").ariaLabel("survey").targetEvent(e).ok("YES").cancel("NO");s.show(a).then(function(){c(t,!1)},function(){t.resolve()})}else c(t,!0);return t.promise.then(function(e){e&&(o.success({title:"Session saved",msg:"Your survey session has been properly saved!"}),function(e){try{i.$parent.$parent.$parent.vm.removeTab(e)}catch(e){o.error({title:"ERROR REMOVE TAB",msg:"Error while removing tab"})}}(p.tab))}).catch(function(e){o.error({title:"Session save error",msg:"There has been an error while trying to save your survey session!"})})},p.openContact=function(e,n){try{i.$parent.$parent.$parent.vm.addContactTab(n)}catch(e){o.error({title:"ERROR OPEN CONTACT",msg:"Jscripty can't open the contact"})}},p.isJsonString=function(e){if(_.isNil(e))return!1;try{JSON.parse(e)}catch(e){return!1}return!0},p.getResponseSheet=function(){return e.getResponseSheet(p.project.formData,p.project.responseData,!1)},p.getResponseSheetRow=function(){return e.getResponseSheetRow(p.project.formData,p.project.responseData)},p.getResponseSheetHeaders=function(){return e.getResponseSheetHeaders(p.project.formData,!1)},p.getQuestionWithResponseList=function(){return e.getQuestionWithResponseList(p.project.formData,p.project.responseData)},p.init=function(e){p.tab=e,p.tab&&(p.call=p.tab.call,p.starttime=p.tab.openedAt,p.contact=p.tab.contact,p.project=p.tab.project,p.project&&(_.isObjectLike(p.project.formData)?p.project.formData=p.project.formData:p.isJsonString(p.project.formData)?p.project.formData=JSON.parse(p.project.formData):p.project.formData=void 0,p.project.responseData=p.project.responseData||{},void 0!==p.project.currentPage&&a(function(){n.$broadcast("mwForm.pageEvents.changePage",{page:p.project.currentPage})}),i.$on("mwForm.pageEvents.pageCurrentChanged",function(e,n){if(n.currentPage&&(p.project.currentPage=n.currentPage.number-1,d(),p.project.enableUncompleteSave&&(1<=n.currentPage.number&&n.currentPage.number<p.project.formData.pages.length?p.showIncompleteSubmitButton=!0:p.showIncompleteSubmitButton=!1),p.project.formData&&p.project.formData.pages))for(var t=0,a=p.project.formData.pages.length;t<a;t++)if(n.currentPage.number<t+1&&p.project.formData.pages[t].elements)for(var i=0,s=p.project.formData.pages[t].elements.length;i<s;i++)"question"===p.project.formData.pages[t].elements[i].type&&p.project.formData.pages[t].elements[i].question&&delete p.project.responseData[p.project.formData.pages[t].elements[i].question.id]})))},p.resetViewer=function(e){if(p.formViewer.reset){var n=s.confirm().title(t.instant("JSCRIPTY.DO_YOU_WANT_TO_RESET_SESSION")).content(t.instant("JSCRIPTY.ALL_SURVEY_DATA_WILL_BE_LOST")).textContent("").ariaLabel("survey").targetEvent(e).ok(t.instant("JSCRIPTY.YES")).cancel(t.instant("JSCRIPTY.NO"));s.show(n).then(function(){p.showIncompleteSubmitButton=!1,p.project.currentPage=void 0,d(),p.formViewer.reset()})}}}e.$inject=["$scope","$q","$mdDialog","mwFormResponseUtils","api","toasty","Auth","$translate","$rootScope","$timeout","msUtils"],angular.module("app.dashboards").controller("AgentGeneralJscriptyController",e)}(),function(){"use strict";function e(t,a,e,n,i){var s=this;function o(){return function(e){if(404===e.status)a.info({title:t.instant("DASHBOARDS.ATTENTION"),msg:t.instant("DASHBOARDS.ACCEPT_ELSEWHERE")});else if(e.data&&e.data.errors&&e.data.errors.length){s.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelMessage.accept"}];for(var n=0;n<e.data.errors.length;n+=1)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelMessage.accept",msg:e.data?JSON.stringify(e.data.message):e.toString()})}}s.notification=e,s.user=i.getCurrentUser(),s.accept=function(e){{if(n[s.notification.channel+"Message"])return n[s.notification.channel+"Message"].accept({id:s.notification.id,UserId:s.user.id,manual:!0}).$promise.then(function(e){a.success({title:"Message properly accepted!",msg:"Message has been accepted!"})}).catch(o());a.error({title:"API:ERROR",msg:"API accept message not found: "+s.notification.channel+"Message"})}},s.reject=function(e){{if(n[s.notification.channel+"Message"])return n[s.notification.channel+"Message"].reject({id:s.notification.id,UserId:s.user.id}).$promise.then(function(e){a.success({title:"Message properly rejected!",msg:"Message has been rejected!"})}).catch(o());a.error({title:"API:ERROR",msg:"API reject message not found: "+s.notification.channel+"Message"})}}}e.$inject=["$translate","toasty","notification","api","Auth"],angular.module("app.dashboards").controller("NotificationController",e)}(),function(){"use strict";angular.module("app.dashboards").controller("AgentGeneralPopupController",function(){var n=this;n.init=function(e){n.tab=e,n.tab&&(n.tab.saved=!0,n.html=n.tab.html)}})}(),function(){"use strict";function e(e,n,t,a){var i=this,s=[];function o(e,n){e.closed||e.UserId||!n||(i.inbound.waiting+=1),e.closed||!e.UserId||_.includes(s,e.id)||(i.inbound.talking+=1,s.push(e.id),!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),e.closed&&"abandoned"===e.disposition?(i.inbound.abandoned+=1,!n&&i.inbound.waiting&&(i.inbound.waiting-=1)):e.closed&&!e.UserId&&e.disposition?(i.inbound.unmanaged+=1,!n&&i.inbound.waiting&&(i.inbound.waiting-=1)):e.closed&&e.UserId&&(i.inbound.sumBillable+=moment(e.closedAt).diff(moment(e.read1stAt),i.config.unit),i.inbound.sumHoldTime+=moment(e.read1stAt).diff(moment(e.createdAt),i.config.unit),i.inbound.answered+=1,!n&&i.inbound.talking&&(i.inbound.talking-=1)),n&&(i.inbound.total+=1)}function r(){i.inbound.abandonRate=Math.round((i.inbound.abandoned+i.inbound.unmanaged)/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.answerRate=Math.round(i.inbound.answered/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.avgHoldTime=moment.duration(Math.round(i.inbound.sumHoldTime/i.inbound.answered),i.config.unit).format(i.config.format,i.config),i.inbound.avgTalkTime=moment.duration(Math.round(i.inbound.sumBillable/i.inbound.answered),i.config.unit).format(i.config.format,i.config)}function l(e){return!!_.some(i.chatWebsites,{id:_.toNumber(e.ChatWebsiteId)})}function d(e){var n=moment().utcOffset(0,!0).startOf("day"),t=moment().utcOffset(0,!0).endOf("day");return moment(e).utcOffset(0,!0).isBetween(n,t)}i.config={format:"hh:mm:ss",unit:"seconds",trim:!1},i.inbound={waiting:0,talking:0,answered:0,abandoned:0,unmanaged:0,sumHoldTime:0,sumBillable:0,total:0,avgHoldTime:"00:00:00",avgTalkTime:"00:00:00",answerRate:0,abandonRate:0},i.chatWebsites=a?_.keyBy(a.rows?a.rows:[],"id"):{},i.onSaveChatInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!0),r())},i.onUpdateChatInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!1),r())},n.on("chatInteraction:save",i.onSaveChatInteraction),n.on("chatInteraction:update",i.onUpdateChatInteraction),function(){if(0<Object.keys(i.chatWebsites).length)for(var e=0;e<t.rows.length;e+=1)if(l(t.rows[e])){var n=t.rows[e];o(n,!0),r()}}(),e.$on("$destroy",function(){n.removeAllListeners("chatInteraction:save"),n.removeAllListeners("chatInteraction:update")})}e.$inject=["$scope","socket","chatInteractions","chatWebsites"],angular.module("app.dashboards").controller("UserChatDashboardGeneralController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r){var l=this;function d(){s({queues:l.outboundQueues,rpcQueues:l.rpcQueues}).then(function(e){l.inbound=e})}function c(){o({rpcCampaigns:l.rpcCampaigns}).then(function(e){l.ivr=e})}l.outboundQueues=a?_.keyBy(a.rows?a.rows:[],"id"):{},l.rpcQueues=i?_.keyBy(i.rows?i.rows:[],"id"):{},l.rpcCampaigns=r?_.keyBy(r.rows?r.rows:[],"id"):{},l.ivr={originated:0,limitCalls:0},l.inbound={waiting:0,talking:0,pTalking:0,answered:0,abandoned:0,unmanaged:0,sumHoldTime:0,sumBillable:0,total:0,avgHoldTime:"00:00:00",avgTalkTime:"00:00:00",answerRate:0,abandonRate:0,outboundDropCallsDayCallersExit:0,outboundDropCallsDayTimeout:0},l.onSaveQueue=function(e){l.outboundQueues[e.id]&&l.rpcQueues[e.id]&&(l.rpcQueues[e.id]=e)},l.onSaveCampaign=function(e){l.rpcCampaigns[e.id]&&(l.rpcCampaigns[e.id]=e)},t.onWithoutApply("voice_queue:save",l.onSaveQueue),l.interval=n(function(){d(),c()},999),t.onWithoutApply("campaign:save",l.onSaveCampaign),d(),c(),e.$on("$destroy",function(){t.removeListener("voice_queue:save",l.onSaveQueue),t.removeAllListeners("campaign:save"),l.interval&&n.cancel(l.interval)})}e.$inject=["$scope","$interval","socket","outboundQueues","rpcQueues","initializeRealtimeQueue","initializeRealtimeCampaign","rpcCampaigns"],angular.module("app.dashboards").controller("UserVoiceDashboardDialerController",e)}(),function(){"use strict";function e(e,n,t,a){var i=this,s=[];function o(e,n){e.closed||e.UserId||!n||(i.inbound.waiting+=1),e.closed||!e.UserId||_.includes(s,e.id)||(i.inbound.talking+=1,s.push(e.id),!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),e.closed&&e.UserId&&(i.inbound.sumBillable+=moment(e.closedAt).diff(moment(e.read1stAt),i.config.unit),i.inbound.sumHoldTime+=moment(e.read1stAt).diff(moment(e.createdAt),i.config.unit),i.inbound.answered+=1,!n&&i.inbound.talking&&(i.inbound.talking-=1)),e.closed&&!e.UserId&&(i.inbound.unmanaged+=1,!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),n&&(i.inbound.total+=1)}function r(){i.inbound.abandonRate=Math.round((i.inbound.abandoned+i.inbound.unmanaged)/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.answerRate=Math.round(i.inbound.answered/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.avgHoldTime=moment.duration(Math.round(i.inbound.sumHoldTime/i.inbound.answered),i.config.unit).format(i.config.format,i.config),i.inbound.avgTalkTime=moment.duration(Math.round(i.inbound.sumBillable/i.inbound.answered),i.config.unit).format(i.config.format,i.config)}function l(e){return!!_.some(i.faxAccounts,{id:_.toNumber(e.FaxAccountId)})}function d(e){var n=moment().utcOffset(0,!0).startOf("day"),t=moment().utcOffset(0,!0).endOf("day");return moment(e).utcOffset(0,!0).isBetween(n,t)}i.config={format:"hh:mm:ss",unit:"seconds",trim:!1},i.inbound={waiting:0,talking:0,answered:0,abandoned:0,unmanaged:0,sumHoldTime:0,sumBillable:0,total:0,avgHoldTime:"00:00:00",avgTalkTime:"00:00:00",answerRate:0,abandonRate:0},i.faxAccounts=a?_.keyBy(a.rows?a.rows:[],"id"):{},i.onSaveFaxInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!0),r())},i.onUpdateFaxInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!1),r())},n.on("faxInteraction:save",i.onSaveFaxInteraction),n.on("faxInteraction:update",i.onUpdateFaxInteraction),function(){if(0<Object.keys(i.faxAccounts).length)for(var e=0;e<t.rows.length;e+=1)if(l(t.rows[e])){var n=t.rows[e];o(n,!0),r()}}(),e.$on("$destroy",function(){n.removeAllListeners("faxInteraction:save"),n.removeAllListeners("faxInteraction:update")})}e.$inject=["$scope","socket","faxInteractions","faxAccounts"],angular.module("app.dashboards").controller("UserFaxDashboardGeneralController",e)}(),function(){"use strict";function e(e,n,t,a){var i=this,s=[];function o(e,n){e.closed||e.UserId||!n||(i.inbound.waiting+=1),e.closed||!e.UserId||_.includes(s,e.id)||(i.inbound.talking+=1,s.push(e.id),!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),e.closed&&e.UserId&&(i.inbound.sumBillable+=moment(e.closedAt).diff(moment(e.read1stAt),i.config.unit),i.inbound.sumHoldTime+=moment(e.read1stAt).diff(moment(e.createdAt),i.config.unit),i.inbound.answered+=1,!n&&i.inbound.talking&&(i.inbound.talking-=1)),e.closed&&!e.UserId&&(i.inbound.unmanaged+=1,!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),n&&(i.inbound.total+=1)}function r(){i.inbound.abandonRate=Math.round((i.inbound.abandoned+i.inbound.unmanaged)/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.answerRate=Math.round(i.inbound.answered/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.avgHoldTime=moment.duration(Math.round(i.inbound.sumHoldTime/i.inbound.answered),i.config.unit).format(i.config.format,i.config),i.inbound.avgTalkTime=moment.duration(Math.round(i.inbound.sumBillable/i.inbound.answered),i.config.unit).format(i.config.format,i.config)}function l(e){return!!_.some(i.mailAccounts,{id:_.toNumber(e.MailAccountId)})}function d(e){var n=moment().utcOffset(0,!0).startOf("day"),t=moment().utcOffset(0,!0).endOf("day");return moment(e).utcOffset(0,!0).isBetween(n,t)}i.config={format:"hh:mm:ss",unit:"seconds",trim:!1},i.inbound={waiting:0,talking:0,answered:0,abandoned:0,unmanaged:0,sumHoldTime:0,sumBillable:0,total:0,avgHoldTime:"00:00:00",avgTalkTime:"00:00:00",answerRate:0,abandonRate:0},i.mailAccounts=a?_.keyBy(a.rows?a.rows:[],"id"):{},i.onSaveMailInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!0),r())},i.onUpdateMailInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!1),r())},n.on("mailInteraction:save",i.onSaveMailInteraction),n.on("mailInteraction:update",i.onUpdateMailInteraction),function(){if(0<Object.keys(i.mailAccounts).length)for(var e=0;e<t.rows.length;e+=1)if(l(t.rows[e])){var n=t.rows[e];o(n,!0),r()}}(),e.$on("$destroy",function(){n.removeAllListeners("mailInteraction:save"),n.removeAllListeners("mailInteraction:update")})}e.$inject=["$scope","socket","mailInteractions","mailAccounts"],angular.module("app.dashboards").controller("UserMailDashboardGeneralController",e)}(),function(){"use strict";function e(e,n,t,a){var i=this,s=[];function o(e,n){e.closed||e.UserId||!n||(i.inbound.waiting+=1),e.closed||!e.UserId||_.includes(s,e.id)||(i.inbound.talking+=1,s.push(e.id),!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),e.closed&&e.UserId&&(i.inbound.sumBillable+=moment(e.closedAt).diff(moment(e.read1stAt),i.config.unit),i.inbound.sumHoldTime+=moment(e.read1stAt).diff(moment(e.createdAt),i.config.unit),i.inbound.answered+=1,!n&&i.inbound.talking&&(i.inbound.talking-=1)),e.closed&&!e.UserId&&(i.inbound.unmanaged+=1,!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),n&&(i.inbound.total+=1)}function r(){i.inbound.abandonRate=Math.round((i.inbound.abandoned+i.inbound.unmanaged)/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.answerRate=Math.round(i.inbound.answered/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.avgHoldTime=moment.duration(Math.round(i.inbound.sumHoldTime/i.inbound.answered),i.config.unit).format(i.config.format,i.config),i.inbound.avgTalkTime=moment.duration(Math.round(i.inbound.sumBillable/i.inbound.answered),i.config.unit).format(i.config.format,i.config)}function l(e){return!!_.some(i.openchannelAccounts,{id:_.toNumber(e.OpenchannelAccountId)})}function d(e){var n=moment().utcOffset(0,!0).startOf("day"),t=moment().utcOffset(0,!0).endOf("day");return moment(e).utcOffset(0,!0).isBetween(n,t)}i.config={format:"hh:mm:ss",unit:"seconds",trim:!1},i.inbound={waiting:0,talking:0,answered:0,abandoned:0,unmanaged:0,sumHoldTime:0,sumBillable:0,total:0,avgHoldTime:"00:00:00",avgTalkTime:"00:00:00",answerRate:0,abandonRate:0},i.openchannelAccounts=a?_.keyBy(a.rows?a.rows:[],"id"):{},i.onSaveOpenchannelInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!0),r())},i.onUpdateOpenchannelInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!1),r())},n.on("openchannelInteraction:save",i.onSaveOpenchannelInteraction),n.on("openchannelInteraction:update",i.onUpdateOpenchannelInteraction),function(){if(0<Object.keys(i.openchannelAccounts).length)for(var e=0;e<t.rows.length;e+=1)if(l(t.rows[e])){var n=t.rows[e];o(n,!0),r()}}(),e.$on("$destroy",function(){n.removeAllListeners("openchannelInteraction:save"),n.removeAllListeners("openchannelInteraction:update")})}e.$inject=["$scope","socket","openchannelInteractions","openchannelAccounts"],angular.module("app.dashboards").controller("UserOpenchannelDashboardGeneralController",e)}(),function(){"use strict";function e(e,n,t,a){var i=this,s=[];function o(e,n){e.closed||e.UserId||!n||(i.inbound.waiting+=1),e.closed||!e.UserId||_.includes(s,e.id)||(i.inbound.talking+=1,s.push(e.id),!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),e.closed&&e.UserId&&(i.inbound.sumBillable+=moment(e.closedAt).diff(moment(e.read1stAt),i.config.unit),i.inbound.sumHoldTime+=moment(e.read1stAt).diff(moment(e.createdAt),i.config.unit),i.inbound.answered+=1,!n&&i.inbound.talking&&(i.inbound.talking-=1)),e.closed&&!e.UserId&&(i.inbound.unmanaged+=1,!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),n&&(i.inbound.total+=1)}function r(){i.inbound.abandonRate=Math.round((i.inbound.abandoned+i.inbound.unmanaged)/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.answerRate=Math.round(i.inbound.answered/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.avgHoldTime=moment.duration(Math.round(i.inbound.sumHoldTime/i.inbound.answered),i.config.unit).format(i.config.format,i.config),i.inbound.avgTalkTime=moment.duration(Math.round(i.inbound.sumBillable/i.inbound.answered),i.config.unit).format(i.config.format,i.config)}function l(e){return!!_.some(i.smsAccounts,{id:_.toNumber(e.SmsAccountId)})}function d(e){var n=moment().utcOffset(0,!0).startOf("day"),t=moment().utcOffset(0,!0).endOf("day");return moment(e).utcOffset(0,!0).isBetween(n,t)}i.config={format:"hh:mm:ss",unit:"seconds",trim:!1},i.inbound={waiting:0,talking:0,answered:0,abandoned:0,unmanaged:0,sumHoldTime:0,sumBillable:0,total:0,avgHoldTime:"00:00:00",avgTalkTime:"00:00:00",answerRate:0,abandonRate:0},i.smsAccounts=a?_.keyBy(a.rows?a.rows:[],"id"):{},i.onSaveSmsInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!0),r())},i.onUpdateSmsInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!1),r())},n.on("smsInteraction:save",i.onSaveSmsInteraction),n.on("smsInteraction:update",i.onUpdateSmsInteraction),function(){if(0<Object.keys(i.smsAccounts).length)for(var e=0;e<t.rows.length;e+=1)if(l(t.rows[e])){var n=t.rows[e];o(n,!0),r()}}(),e.$on("$destroy",function(){n.removeAllListeners("smsInteraction:save"),n.removeAllListeners("smsInteraction:update")})}e.$inject=["$scope","socket","smsInteractions","smsAccounts"],angular.module("app.dashboards").controller("UserSmsDashboardGeneralController",e)}(),function(){"use strict";function e(t){var i=[],s=function(){var t=i[0],a={waiting:0,talking:0,pTalking:0,answered:0,abandoned:0,unmanaged:0,sumHoldTime:0,sumBillable:0,total:0,avgHoldTime:"00:00:00",avgTalkTime:"00:00:00",answerRate:0,abandonRate:0,originated:0,outboundDropCallsDayCallersExit:0,outboundDropCallsDayTimeout:0};_.forIn(t.queues,function(e,n){t.rpcQueues[n]&&(a.waiting+=t.rpcQueues[n].waiting||0,a.talking+=(t.rpcQueues[n].talking||0)+(t.rpcQueues[n].pTalking||0),a.answered+=t.rpcQueues[n].answered||0,a.abandoned+=t.rpcQueues[n].abandoned||0,a.sumHoldTime+=t.rpcQueues[n].sumHoldTime||0,a.sumBillable+=t.rpcQueues[n].sumBillable||0,a.total+=t.rpcQueues[n].total||0,a.originated+=t.rpcQueues[n].originated||0,a.outboundDropCallsDayCallersExit+=t.rpcQueues[n].outboundDropCallsDayCallersExit||0,a.outboundDropCallsDayTimeout+=t.rpcQueues[n].outboundDropCallsDayTimeout||0)});var e=a.total-a.answered-a.abandoned;a.unmanaged=0<e?e:0,a.avgHoldTime=Math.round(0<a.total?a.sumHoldTime/a.total:0),a.avgHoldTime=new Date(1e3*a.avgHoldTime).toISOString().substr(11,8),a.avgTalkTime=Math.round(0<a.answered?a.sumBillable/a.answered:0),a.avgTalkTime=new Date(1e3*a.avgTalkTime).toISOString().substr(11,8),a.answerRate=Math.round((0<a.total?a.answered/a.total*100:0)*Math.pow(10,1))/Math.pow(10,1),a.abandonRate=Math.round((0<a.total?a.abandoned/a.total*100:0)*Math.pow(10,1))/Math.pow(10,1),a.outboundDropRate=Math.round((0<a.total?a.outboundDropCallsDayTimeout/a.total*100:0)*Math.pow(10,1))/Math.pow(10,1),a.outboundAbandonRate=Math.round((0<a.total?a.outboundDropCallsDayCallersExit/a.total*100:0)*Math.pow(10,1))/Math.pow(10,1),a.outboundanswerRate=0<100-a.outboundDropRate-a.outboundAbandonRate&&a.total?100-a.outboundDropRate-a.outboundAbandonRate:0,i.shift(),t.defer.resolve(a),0<i.length&&s()};return function(e){var n=t.defer();return i.push({queues:e.queues,rpcQueues:e.rpcQueues,defer:n}),1===i.length&&s(),n.promise}}function n(t){var i=[],s=function(){var t=i[0],a={originated:0,limitCalls:0};_.forIn(t.rpcCampaigns,function(e,n){t.rpcCampaigns[n]&&(a.originated+=t.rpcCampaigns[n].originated||0,a.limitCalls+=t.rpcCampaigns[n].limitCalls||0)}),i.shift(),t.defer.resolve(a),0<i.length&&s()};return function(e){var n=t.defer();return i.push({rpcCampaigns:e.rpcCampaigns,defer:n}),1===i.length&&s(),n.promise}}function t(t,a,e){var i=this;i.license=e,i.onInit=function(){if(i.hasDashboardPermissions=!a.hasRole("user")||a.hasPermission(101),i.hasDashboardPermissions){var e=t.current.name;switch(e){case"app.dashboards.general":n=[],i.license.voice&&n.push("app.dashboards.general.voice"),i.license.dialer&&n.push("app.dashboards.general.dialer"),i.license.chat&&n.push("app.dashboards.general.chat"),i.license.mail&&n.push("app.dashboards.general.mail"),i.license.messaging&&n.push("app.dashboards.general.sms"),i.license.openchannel&&n.push("app.dashboards.general.openchannel"),i.license.fax&&n.push("app.dashboards.general.fax"),i.license.whatsapp&&n.push("app.dashboards.general.whatsapp"),0<n.length&&t.go(_.first(n));break;case"app.dashboards.general.voice":i.selectedTab=0;break;case"app.dashboards.general.dialer":i.selectedTab=1;break;case"app.dashboards.general.chat":i.selectedTab=2;break;case"app.dashboards.general.mail":i.selectedTab=3;break;case"app.dashboards.general.sms":i.selectedTab=4;break;case"app.dashboards.general.openchannel":i.selectedTab=5;break;case"app.dashboards.general.fax":i.selectedTab=6;break;case"app.dashboards.general.whatsapp":i.selectedTab=7}}var n}}e.$inject=["$q"],n.$inject=["$q"],t.$inject=["$state","Auth","license"],angular.module("app.dashboards").factory("initializeRealtimeQueue",e).factory("initializeRealtimeCampaign",n).controller("UserDashboardGeneralController",t)}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this;function r(){s({queues:o.inboundQueues,rpcQueues:o.rpcQueues}).then(function(e){o.inbound=e})}o.inboundQueues=t?_.keyBy(t.rows?t.rows:[],"id"):{},o.rpcQueues=a?_.keyBy(a.rows?a.rows:[],"id"):{},o.inbound={waiting:0,talking:0,answered:0,abandoned:0,unmanaged:0,sumHoldTime:0,sumBillable:0,total:0,avgHoldTime:"00:00:00",avgTalkTime:"00:00:00",answerRate:0,abandonRate:0},o.outbound=i||{answered:0,sumBillable:0,sumDuration:0,sumHoldTime:0,total:0},o.onSaveQueue=function(e){o.inboundQueues[e.id]&&o.rpcQueues[e.id]&&(o.rpcQueues[e.id]=e,r())},o.onSaveOutbound=function(e){o.outbound=e},n.on("voice_queue:save",o.onSaveQueue),n.on("voice_outbound:save",o.onSaveOutbound),r(),e.$on("$destroy",function(){n.removeListener("voice_queue:save",o.onSaveQueue),n.removeAllListeners("voice_outbound:save")})}e.$inject=["$scope","socket","inboundQueues","rpcQueues","outbound","initializeRealtimeQueue"],angular.module("app.dashboards").controller("UserVoiceDashboardGeneralController",e)}(),function(){"use strict";function e(e,n,t,a){var i=this,s=[];function o(e,n){e.closed||e.UserId||!n||(i.inbound.waiting+=1),e.closed||!e.UserId||_.includes(s,e.id)||(i.inbound.talking+=1,s.push(e.id),!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),e.closed&&e.UserId&&(i.inbound.sumBillable+=moment(e.closedAt).diff(moment(e.read1stAt),i.config.unit),i.inbound.sumHoldTime+=moment(e.read1stAt).diff(moment(e.createdAt),i.config.unit),i.inbound.answered+=1,!n&&i.inbound.talking&&(i.inbound.talking-=1)),e.closed&&!e.UserId&&(i.inbound.unmanaged+=1,!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),n&&(i.inbound.total+=1)}function r(){i.inbound.abandonRate=Math.round((i.inbound.abandoned+i.inbound.unmanaged)/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.answerRate=Math.round(i.inbound.answered/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.avgHoldTime=moment.duration(Math.round(i.inbound.sumHoldTime/i.inbound.answered),i.config.unit).format(i.config.format,i.config),i.inbound.avgTalkTime=moment.duration(Math.round(i.inbound.sumBillable/i.inbound.answered),i.config.unit).format(i.config.format,i.config)}function l(e){return!!_.some(i.whatsappAccounts,{id:_.toNumber(e.WhatsappAccountId)})}function d(e){var n=moment().utcOffset(0,!0).startOf("day"),t=moment().utcOffset(0,!0).endOf("day");return moment(e).utcOffset(0,!0).isBetween(n,t)}i.config={format:"hh:mm:ss",unit:"seconds",trim:!1},i.inbound={waiting:0,talking:0,answered:0,abandoned:0,unmanaged:0,sumHoldTime:0,sumBillable:0,total:0,avgHoldTime:"00:00:00",avgTalkTime:"00:00:00",answerRate:0,abandonRate:0},i.whatsappAccounts=a?_.keyBy(a.rows?a.rows:[],"id"):{},i.onSaveWhatsappInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!0),r())},i.onUpdateWhatsappInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!1),r())},n.on("whatsappInteraction:save",i.onSaveWhatsappInteraction),n.on("whatsappInteraction:update",i.onUpdateWhatsappInteraction),function(){if(0<Object.keys(i.whatsappAccounts).length)for(var e=0;e<t.rows.length;e+=1)if(l(t.rows[e])){var n=t.rows[e];o(n,!0),r()}}(),e.$on("$destroy",function(){n.removeAllListeners("whatsappInteraction:save"),n.removeAllListeners("whatsappInteraction:update")})}e.$inject=["$scope","socket","whatsappInteractions","whatsappAccounts"],angular.module("app.dashboards").controller("UserWhatsappDashboardGeneralController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="FAX.EDIT_FAXACCOUNT",g.faxAccount=angular.copy(l),g.faxAccounts=r,g.newFaxAccount=!1,g.faxAccount||(g.faxAccount={waitForTheAssignedAgent:10,notificationSound:!0,queueTransferTimeout:300,agentTransferTimeout:300},g.title="FAX.NEW_FAXACCOUNT",g.newFaxAccount=!0),n.params.id&&(g.faxAccount.FaxAccountId=n.params.id),g.addNewFaxAccount=function(){g.errors=[],d.faxAccount.addAccountApplications(g.faxAccount).$promise.then(function(e){g.faxAccounts.unshift(e.toJSON()),o.success({title:"FaxAccount properly created",msg:g.faxAccount.name?g.faxAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.faxAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveFaxAccount=function(){g.errors=[],d.faxAccount.updateAccountApplications(g.faxAccount).$promise.then(function(e){var n=_.find(g.faxAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"FaxAccount properly saved!",msg:g.faxAccount.name?g.faxAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.faxAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteFaxAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The faxAccount will be deleted.").ariaLabel("Delete FaxAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.faxAccount.delete({id:g.faxAccount.id}).$promise.then(function(){_.remove(g.faxAccounts,{id:g.faxAccount.id}),o.success({title:"FaxAccount properly deleted!",msg:(g.faxAccount.name||"faxAccount")+" has been deleted!"}),v(g.faxAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.faxAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.trunks=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.trunks=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.trunks,{id:e.resourceId})}),t=null;if(g.faxAccount&&(t=_.find(g.trunks,{id:Number(g.faxAccount.TrunkId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.trunks,{id:t.id});a.canSelect=!1,n.push(a)}g.trunks=n})}else{var t=[],a=null;g.faxAccount&&(a=_.find(g.trunks,{id:Number(g.faxAccount.TrunkId)}));for(var i=0;i<g.trunks.length;i++)a&&g.trunks[i].id===a.id&&(g.trunks[i].canSelect=!1,t.push(g.trunks[i]));g.trunks=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.hasRole("admin")?d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.lists,{id:e.resourceId})}),t=null;if(g.faxAccount&&(t=_.find(g.lists,{id:Number(g.faxAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.lists,{id:t.id});a.canSelect=!1,n.push(a)}g.lists=n})}else{var t=[],a=null;g.faxAccount&&(a=_.find(g.lists,{id:Number(g.faxAccount.ListId)}));for(var i=0;i<g.lists.length;i++)a&&g.lists[i].id===a.id&&(g.lists[i].canSelect=!1,t.push(g.lists[i]));g.lists=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","faxAccounts","faxAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.fax").controller("CreateOrEditFaxAccountDialogController",e)}(),function(){"use strict";function e(o,i,a,s,e){var r=this;function n(e,n){if(r.faxAccountApps.rows.length){var t=r.faxAccountApps.rows[n]?r.faxAccountApps.rows[n]:r.faxAccountApps.rows[0];i.show({controller:"EditFaxAccountApp"+(t.appType||t.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/edit/apps/"+(t.appType||t.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxAccountApp:t,faxAccount:r.faxAccount,crudPermissions:r.crudPermissions}}).then(function(e){e&&(e.id?r.faxAccountApps.rows[n]=e:r.faxAccountApps.rows.splice(n,0,e),l())}).catch(function(e){e&&s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function l(){for(var e=1,n=[],t=0;t<r.faxAccountApps.rows.length;t++,0){var a=r.faxAccountApps.rows[t],i=[],s=[];a.intervals="*,*,*,*"!==a.interval?[a.interval]:a.IntervalId?_.map(_.filter(r.intervals.rows,{IntervalId:a.IntervalId}),"interval"):[],a.context=r.faxAccount.context,a.exten=r.faxAccount.exten,a.type&&(a.type=a.type.toLowerCase()),a.priority=i.length?_.last(i).priority+1:e,e=(s.length?_.last(s).priority:a.priority)+1,n=_.concat(n,i,[a],s)}o.faxAccount.addApplications({id:r.faxAccount.id},_.sortBy(n,"priority")).$promise.then(function(e){r.faxAccountApps.rows=e.rows}).catch(function(e){console.error(e)})}function t(e){r.faxAccountApps=e||{count:0,rows:[]}}r.currentUser=e.getCurrentUser(),r.faxAccount={},r.faxAccountApps={count:0,rows:[]},r.selectedFaxAccountApps=[],r.crudPermissions,r.query={sort:"priority"},r.apps=_.reject(_.sortBy([{app:"Interval",appType:"interval",types:["always","custom","list"],fields:[],isApp:!1},{app:"noop",appType:"noop",type:"noop",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,fields:[{title:"Value",name:"value",type:"text",param:0}]},{app:"system",appType:"system",type:"system",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,extraApi:[{name:"variables",field:{name:"variable",key:"name"},route:"variable",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1012}}],fields:[{title:"Command",name:"command",type:"text",required:!0,param:0},{title:"Variable",name:"variable",type:"apiselect",values:"variables",value:"variable.name",option:"variable.name",defaultValues:[{value:"''",option:"None"}],defaultValue:"''",param:1}]},{app:"gotop",appType:"gotop",type:"goto",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Priority",name:"priority",type:"number",required:!0,min:0,param:0}]},{app:"gotoif",appType:"gotoif",type:"gotoif",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Condition",name:"condition",type:"text",required:!0,param:0},{title:"truepriority",name:"truepriority",type:"number",min:1,required:!0,param:1},{title:"falsepriority",name:"falsepriority",type:"number",min:1,required:!0,param:2}]},{app:"queue",appType:"queue",foreignKey:"FaxQueueId",type:"queue",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"queues",field:{name:"queue",key:"name"},route:"faxQueue",filters:{fields:"id,name,type",sort:"name",nolimit:!0},permissions:{section:901}}],fields:[{title:"Queue",name:"queue",type:"apiselect",values:"queues",value:"queue.name",option:"queue.name",defaultValue:300,required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,defaultValue:300,required:!0,param:1}]},{app:"agent",appType:"agent",type:"agent",foreignKey:"UserId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"agents",field:{name:"agent",key:"name"},route:"user",filters:{fields:"id,name",sort:"name",role:"agent",nolimit:!0},permissions:{section:202}}],fields:[{title:"Agent",name:"agent",type:"apiselect",values:"agents",value:"agent.name",option:"agent.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:30,param:1}]},{app:"close",appType:"close",type:"close",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Disposition",name:"disposition",type:"text",required:!0,param:0}]},{app:"tag",appType:"tag",type:"tag",foreignKey:"TagId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"tags",field:{name:"tag",key:"name"},route:"tag",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1008}}],fields:[{title:"Tag",name:"tag",type:"apiselect",values:"tags",value:"tag.name",option:"tag.name",required:!0,param:0}]}],["app"]),{isApp:!1}),r.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},r.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){n(e,e.newIndex)},onSort:function(e){l()}},r.init=function(e,n){r.faxAccount=e,r.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},r.applications.disabled=!r.crudPermissions.canEdit,r.query.id=e.id,r.query.isApp=!0,r.query.nolimit=!0,r.getFaxAccountApps(),r.getIntervals()},r.deleteConfirm=function(e,n,t){var a=i.confirm().title("Are you sure want to delete the application?").htmlContent("<b>"+e.app+"</b> will be deleted.").ariaLabel("delete application").targetEvent(t).ok("OK").cancel("CANCEL");i.show(a).then(function(){r.faxAccountApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})},r.getFaxAccountApps=function(){r.promise=o.faxAccount.getApplications(r.query,t).$promise},r.editFaxAccountApp=n,r.editInterval=function(e,n){if(r.faxAccountApps.rows.length){var t=r.faxAccountApps.rows[n]?r.faxAccountApps.rows[n]:r.faxAccountApps.rows[0];i.show({controller:"EditFaxAccountAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/edit/apps/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:[],crudPermissions:r.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,l())})}},r.deleteFaxAccountApp=function(e){_.remove(r.faxAccountApps.rows,{id:e.id}),l(),s.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},r.deleteSelectedFaxAccountApps=function(e){var n=i.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+r.selectedFaxAccountApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){r.selectedFaxAccountApps.forEach(function(e){_.remove(r.faxAccountApps.rows,{id:e.id})}),r.selectedFaxAccountApps=[],l()})},r.rewriteRouting=l,r.getIntervals=function(){return o.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){r.intervals=e}).catch(function(e){console.error(e)})}}e.$inject=["api","$mdDialog","$document","toasty","Auth"],angular.module("app.fax").controller("FaxAccountActionsController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.faxAccount.getAgents({id:c.faxAccount.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserFaxAccount?"penalty "+e.UserFaxAccount.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.faxAccount=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.faxAccount.removeAgents({id:c.faxAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.faxAccount.addAgents({id:c.faxAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("FAX.ALL_AGENTS"),labelSelected:r.instant("FAX.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","faxAccount","faxAccounts","realtime","$translate","Auth","crudPermissions"],angular.module("app.fax").controller("FaxAccountagentaddController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.agent=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.agent.appdata)switch(l.agent.appType?l.agent.appType.toLowerCase():l.agent.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.agent.appdata.split(",");l.agent.key=d[0],l.agent.language=d[1],l.agent.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.agent.appdata.split(",");l.agent.projectId=d[0],l.agent.clientEmail=d[1],l.agent.privateKey=d[2],l.agent.language=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.agent.appdata.split(",");l.agent.accesskeyid=d[0],l.agent.secretaccesskey=d[1],l.agent.lexregion=d[2],l.agent.botname=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.agent.appdata.split(",");l.agent.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.agent.text=d.slice(1,d.length).join(",");break;case"message":l.agent.text=l.agent.appdata;break;case"set":l.agent.name=l.agent.appdata.split("=")[0],l.agent.value=l.agent.appdata.split("=")[1];break;case"agi":l.agent.project=l.agent.appdata;break;default:var c=l.agent.appdata.split(",");l.agent.agent=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.agent.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.agent.timeout=30;function m(e){n.hide(e)}l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outbounddial"===l.agent.appType.toLowerCase()&&(l.agent.prefix=l.agent.phone?l.agent.phone.split("$")[0]:void 0,l.agent.callerId=l.agent.callerID?"CALLERID(all)="+l.agent.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outboundDial"===l.agent.appType&&(l.agent.phone=i.cutdigits?(l.agent.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.agent.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.agent.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.agent.options+="U(xcally-mixmonitor-context)"):l.agent.options=l.agent.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.agents,{name:l.agent.agent});n&&(l.agent.UserId=n.id);if(l.agent.appType&&"custom"===l.agent.appType);else switch((l.agent.app||l.agent.appType).toLowerCase()){case"set":l.agent.appdata=l.agent.name+"="+l.agent.value;break;case"custom":break;default:e[0]=l.agent.agent,e[1]=l.agent.timeout,l.agent.appdata=e.join(",")}m(l.agent)},l.closeDialog=m,o.hasRole("admin")?s.user.get({fields:"id,name",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){l.agents=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.user.get({fields:"id,name",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){l.agents=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.agents,{id:e.resourceId})}),t=null;if(l.agent&&(t=_.find(l.agents,{name:l.agent.agent})),t&&!_.some(n,["id",t.id])){var a=_.find(l.agents,{id:t.id});a.canSelect=!1,n.push(a)}l.agents=n})}else{var t=[],a=null;l.agent&&(a=_.find(l.agents,{name:l.agent.agent}));for(var i=0;i<l.agents.length;i++)a&&l.agents[i].id===a.id&&(l.agents[i].canSelect=!1,t.push(l.agents[i]));l.agents=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountAppagentDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.close=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.close.appdata)switch(l.close.appType?l.close.appType.toLowerCase():l.close.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.close.appdata.split(",");l.close.key=d[0],l.close.language=d[1],l.close.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.close.appdata.split(",");l.close.projectId=d[0],l.close.clientEmail=d[1],l.close.privateKey=d[2],l.close.language=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.close.appdata.split(",");l.close.accesskeyid=d[0],l.close.secretaccesskey=d[1],l.close.lexregion=d[2],l.close.botname=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.close.appdata.split(",");l.close.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.close.text=d.slice(1,d.length).join(",");break;case"message":l.close.text=l.close.appdata;break;case"set":l.close.name=l.close.appdata.split("=")[0],l.close.value=l.close.appdata.split("=")[1];break;case"agi":l.close.project=l.close.appdata;break;default:var c=l.close.appdata.split(",");l.close.disposition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outbounddial"===l.close.appType.toLowerCase()&&(l.close.prefix=l.close.phone?l.close.phone.split("$")[0]:void 0,l.close.callerId=l.close.callerID?"CALLERID(all)="+l.close.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outboundDial"===l.close.appType&&(l.close.phone=i.cutdigits?(l.close.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.close.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.close.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.close.options+="U(xcally-mixmonitor-context)"):l.close.options=l.close.options.replace("U(xcally-mixmonitor-context)",""));if(l.close.appType&&"custom"===l.close.appType);else switch((l.close.app||l.close.appType).toLowerCase()){case"set":l.close.appdata=l.close.name+"="+l.close.value;break;case"custom":break;default:e[0]=l.close.disposition,l.close.appdata=e.join(",")}m(l.close)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountAppcloseDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotoif=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotoif.appdata)switch(l.gotoif.appType?l.gotoif.appType.toLowerCase():l.gotoif.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotoif.appdata.split(",");l.gotoif.key=d[0],l.gotoif.language=d[1],l.gotoif.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotoif.appdata.split(",");l.gotoif.projectId=d[0],l.gotoif.clientEmail=d[1],l.gotoif.privateKey=d[2],l.gotoif.language=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotoif.appdata.split(",");l.gotoif.accesskeyid=d[0],l.gotoif.secretaccesskey=d[1],l.gotoif.lexregion=d[2],l.gotoif.botname=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotoif.appdata.split(",");l.gotoif.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotoif.text=d.slice(1,d.length).join(",");break;case"message":l.gotoif.text=l.gotoif.appdata;break;case"set":l.gotoif.name=l.gotoif.appdata.split("=")[0],l.gotoif.value=l.gotoif.appdata.split("=")[1];break;case"agi":l.gotoif.project=l.gotoif.appdata;break;default:var c=l.gotoif.appdata.split(",");l.gotoif.condition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.gotoif.truepriority=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.gotoif.falsepriority=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}function m(e){n.hide(e)}l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outbounddial"===l.gotoif.appType.toLowerCase()&&(l.gotoif.prefix=l.gotoif.phone?l.gotoif.phone.split("$")[0]:void 0,l.gotoif.callerId=l.gotoif.callerID?"CALLERID(all)="+l.gotoif.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outboundDial"===l.gotoif.appType&&(l.gotoif.phone=i.cutdigits?(l.gotoif.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotoif.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotoif.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotoif.options+="U(xcally-mixmonitor-context)"):l.gotoif.options=l.gotoif.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotoif.appType&&"custom"===l.gotoif.appType);else switch((l.gotoif.app||l.gotoif.appType).toLowerCase()){case"set":l.gotoif.appdata=l.gotoif.name+"="+l.gotoif.value;break;case"custom":break;default:e[0]=l.gotoif.condition,e[1]=l.gotoif.truepriority,e[2]=l.gotoif.falsepriority,l.gotoif.appdata=e.join(",")}m(l.gotoif)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountAppgotoifDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotop.appdata)switch(l.gotop.appType?l.gotop.appType.toLowerCase():l.gotop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotop.appdata.split(",");l.gotop.key=d[0],l.gotop.language=d[1],l.gotop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotop.appdata.split(",");l.gotop.projectId=d[0],l.gotop.clientEmail=d[1],l.gotop.privateKey=d[2],l.gotop.language=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotop.appdata.split(",");l.gotop.accesskeyid=d[0],l.gotop.secretaccesskey=d[1],l.gotop.lexregion=d[2],l.gotop.botname=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotop.appdata.split(",");l.gotop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotop.text=d.slice(1,d.length).join(",");break;case"message":l.gotop.text=l.gotop.appdata;break;case"set":l.gotop.name=l.gotop.appdata.split("=")[0],l.gotop.value=l.gotop.appdata.split("=")[1];break;case"agi":l.gotop.project=l.gotop.appdata;break;default:var c=l.gotop.appdata.split(",");l.gotop.priority=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outbounddial"===l.gotop.appType.toLowerCase()&&(l.gotop.prefix=l.gotop.phone?l.gotop.phone.split("$")[0]:void 0,l.gotop.callerId=l.gotop.callerID?"CALLERID(all)="+l.gotop.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outboundDial"===l.gotop.appType&&(l.gotop.phone=i.cutdigits?(l.gotop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotop.options+="U(xcally-mixmonitor-context)"):l.gotop.options=l.gotop.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotop.appType&&"custom"===l.gotop.appType);else switch((l.gotop.app||l.gotop.appType).toLowerCase()){case"set":l.gotop.appdata=l.gotop.name+"="+l.gotop.value;break;case"custom":break;default:e[0]=l.gotop.priority,l.gotop.appdata=e.join(",")}m(l.gotop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountAppgotopDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;if(c.currentUser=l.getCurrentUser(),c.errors=[],c.title="TOOLS.EDIT_INTERVAL",c.interval=angular.copy(i),c.intervals=s,c.newInterval=!1,c.types=["always","custom","list"],c.crudPermissions=d,c.daysOfWeek=a.getDaysOfWeek(),c.monthNumber=a.getMonthNumber(),c.monthName=a.getMonthName(),c.daysOfMonth=a.getDaysOfMonth(),c.interval)if("*,*,*,*"!==c.interval.interval){c.type="custom";var m=c.interval.interval.split(","),u=m[0],p=m[1],g=m[2],v=m[3];if("*"!==u){var h,f=u.split("-")[0],b=u.split("-")[1];(h=new Date).setHours(Number(f.split(":")[0])),h.setMinutes(Number(f.split(":")[1])),c.timeRangeFrom=h,(h=new Date).setHours(Number(b.split(":")[0])),h.setMinutes(Number(b.split(":")[1])),c.timeRangeTo=h}"*"!==p&&(c.dayOfWeekFrom=p.split("-")[0],c.dayOfWeekTo=p.split("-")[1]),"*"!==g&&(c.monthDayFrom=g.split("-")[0],c.monthDayTo=g.split("-")[1]),"*"!==v&&(c.monthFrom=v.split("-")[0],c.monthTo=v.split("-")[1])}else c.type="always";else c.interval={interval:"*,*,*,*"},c.type="always",c.title="TOOLS.NEW_INTERVAL",c.newInterval=!0;function A(){switch(c.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==c.timeRangeFrom&&c.timeRangeFrom&&c.timeRangeTo){var n=(c.timeRangeFrom.getHours()<10?"0":"")+c.timeRangeFrom.getHours()+":"+(c.timeRangeFrom.getMinutes()<10?"0":"")+c.timeRangeFrom.getMinutes(),t=(c.timeRangeTo.getHours()<10?"0":"")+c.timeRangeTo.getHours()+":"+(c.timeRangeTo.getMinutes()<10?"0":"")+c.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return c.dayOfWeekFrom?c.dayOfWeekTo?e.push(c.dayOfWeekFrom+"-"+c.dayOfWeekTo):e.push(c.dayOfWeekFrom):e.push("*"),c.monthDayFrom?c.monthDayTo?e.push(c.monthDayFrom+"-"+c.monthDayTo):e.push(c.monthDayFrom):e.push("*"),c.monthFrom?c.monthTo?e.push(c.monthFrom+"-"+c.monthTo):e.push(c.monthFrom):e.push("*"),e.join()}}function E(e){n.hide(e)}e.params.id&&!c.interval.application&&(c.interval.IntervalId=e.params.id),c.interval.IntervalId&&c.interval.application&&(c.type="list"),c.addNewInterval=function(){c.errors=[],c.interval.interval=A(),r.interval.save(c.interval).$promise.then(function(e){c.intervals.push(e),o.success({title:"Interval properly created",msg:c.interval.name?c.interval.name+" has been created!":""}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},c.saveInterval=function(){c.errors=[],c.interval.interval=A(),c.interval.application?("list"!==c.type&&(c.interval.IntervalId=null),E(c.interval)):r.interval.update({id:c.interval.id},c.interval).$promise.then(function(e){var n=_.find(c.intervals,{id:e.id});n&&_.merge(n,e),o.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},c.closeDialog=E,c.interval.application&&(l.hasRole("admin")?r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:c.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=e&&e.rows?e.rows:[],t=[],a=null;c.interval&&(a=_.find(c.intervals,{name:c.interval.IntervalId})),a&&!_.some(n,["resourceId",a.id])&&c.intervals.forEach(function(e){e.id===a.id&&(e.canSelect=!1,t.push(e))}),c.intervals=t})}else c.intervals=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}))}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditFaxAccountAppintervalDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.noop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.noop.appdata)switch(l.noop.appType?l.noop.appType.toLowerCase():l.noop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.noop.appdata.split(",");l.noop.key=d[0],l.noop.language=d[1],l.noop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.noop.appdata.split(",");l.noop.projectId=d[0],l.noop.clientEmail=d[1],l.noop.privateKey=d[2],l.noop.language=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.noop.appdata.split(",");l.noop.accesskeyid=d[0],l.noop.secretaccesskey=d[1],l.noop.lexregion=d[2],l.noop.botname=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.noop.appdata.split(",");l.noop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.noop.text=d.slice(1,d.length).join(",");break;case"message":l.noop.text=l.noop.appdata;break;case"set":l.noop.name=l.noop.appdata.split("=")[0],l.noop.value=l.noop.appdata.split("=")[1];break;case"agi":l.noop.project=l.noop.appdata;break;default:var c=l.noop.appdata.split(",");l.noop.value=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outbounddial"===l.noop.appType.toLowerCase()&&(l.noop.prefix=l.noop.phone?l.noop.phone.split("$")[0]:void 0,l.noop.callerId=l.noop.callerID?"CALLERID(all)="+l.noop.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outboundDial"===l.noop.appType&&(l.noop.phone=i.cutdigits?(l.noop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.noop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.noop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.noop.options+="U(xcally-mixmonitor-context)"):l.noop.options=l.noop.options.replace("U(xcally-mixmonitor-context)",""));if(l.noop.appType&&"custom"===l.noop.appType);else switch((l.noop.app||l.noop.appType).toLowerCase()){case"set":l.noop.appdata=l.noop.name+"="+l.noop.value;break;case"custom":break;default:e[0]=l.noop.value,l.noop.appdata=e.join(",")}m(l.noop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountAppnoopDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.queue=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.queue.appdata)switch(l.queue.appType?l.queue.appType.toLowerCase():l.queue.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.queue.appdata.split(",");l.queue.key=d[0],l.queue.language=d[1],l.queue.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.queue.appdata.split(",");l.queue.projectId=d[0],l.queue.clientEmail=d[1],l.queue.privateKey=d[2],l.queue.language=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.queue.appdata.split(",");l.queue.accesskeyid=d[0],l.queue.secretaccesskey=d[1],l.queue.lexregion=d[2],l.queue.botname=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.queue.appdata.split(",");l.queue.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.queue.text=d.slice(1,d.length).join(",");break;case"message":l.queue.text=l.queue.appdata;break;case"set":l.queue.name=l.queue.appdata.split("=")[0],l.queue.value=l.queue.appdata.split("=")[1];break;case"agi":l.queue.project=l.queue.appdata;break;default:var c=l.queue.appdata.split(",");l.queue.queue=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.queue.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.queue.queue=300,l.queue.timeout=300;function m(e){n.hide(e)}l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outbounddial"===l.queue.appType.toLowerCase()&&(l.queue.prefix=l.queue.phone?l.queue.phone.split("$")[0]:void 0,l.queue.callerId=l.queue.callerID?"CALLERID(all)="+l.queue.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outboundDial"===l.queue.appType&&(l.queue.phone=i.cutdigits?(l.queue.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.queue.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.queue.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.queue.options+="U(xcally-mixmonitor-context)"):l.queue.options=l.queue.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.queues,{name:l.queue.queue});n&&(l.queue[_.capitalize("fax")+"QueueId"]=n.id);if(l.queue.appType&&"custom"===l.queue.appType);else switch((l.queue.app||l.queue.appType).toLowerCase()){case"set":l.queue.appdata=l.queue.name+"="+l.queue.value;break;case"custom":break;default:e[0]=l.queue.queue,e[1]=l.queue.timeout,l.queue.appdata=e.join(",")}m(l.queue)},l.closeDialog=m,o.hasRole("admin")?s.faxQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.faxQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:901}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.queues,{id:e.resourceId})}),t=null;if(l.queue&&(t=_.find(l.queues,{name:l.queue.queue})),t&&!_.some(n,["id",t.id])){var a=_.find(l.queues,{id:t.id});a.canSelect=!1,n.push(a)}l.queues=n})}else{var t=[],a=null;l.queue&&(a=_.find(l.queues,{name:l.queue.queue}));for(var i=0;i<l.queues.length;i++)a&&l.queues[i].id===a.id&&(l.queues[i].canSelect=!1,t.push(l.queues[i]));l.queues=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountAppqueueDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.system=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.system.appdata)switch(l.system.appType?l.system.appType.toLowerCase():l.system.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.system.appdata.split(",");l.system.key=d[0],l.system.language=d[1],l.system.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.system.appdata.split(",");l.system.projectId=d[0],l.system.clientEmail=d[1],l.system.privateKey=d[2],l.system.language=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.system.appdata.split(",");l.system.accesskeyid=d[0],l.system.secretaccesskey=d[1],l.system.lexregion=d[2],l.system.botname=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.system.appdata.split(",");l.system.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.system.text=d.slice(1,d.length).join(",");break;case"message":l.system.text=l.system.appdata;break;case"set":l.system.name=l.system.appdata.split("=")[0],l.system.value=l.system.appdata.split("=")[1];break;case"agi":l.system.project=l.system.appdata;break;default:var c=l.system.appdata.split(",");l.system.command=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.system.variable=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.system.variable="";function m(e){n.hide(e)}l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outbounddial"===l.system.appType.toLowerCase()&&(l.system.prefix=l.system.phone?l.system.phone.split("$")[0]:void 0,l.system.callerId=l.system.callerID?"CALLERID(all)="+l.system.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outboundDial"===l.system.appType&&(l.system.phone=i.cutdigits?(l.system.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.system.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.system.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.system.options+="U(xcally-mixmonitor-context)"):l.system.options=l.system.options.replace("U(xcally-mixmonitor-context)",""));if(l.system.appType&&"custom"===l.system.appType);else switch((l.system.app||l.system.appType).toLowerCase()){case"set":l.system.appdata=l.system.name+"="+l.system.value;break;case"custom":break;default:e[0]=l.system.command,e[1]=l.system.variable,l.system.appdata=e.join(",")}m(l.system)},l.closeDialog=m,o.hasRole("admin")?s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1012}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.variables,{id:e.resourceId})}),t=null;if(l.system&&(t=_.find(l.variables,{name:l.system.variable})),t&&!_.some(n,["id",t.id])){var a=_.find(l.variables,{id:t.id});a.canSelect=!1,n.push(a)}l.variables=n})}else{var t=[],a=null;l.system&&(a=_.find(l.variables,{name:l.system.variable}));for(var i=0;i<l.variables.length;i++)a&&l.variables[i].id===a.id&&(l.variables[i].canSelect=!1,t.push(l.variables[i]));l.variables=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountAppsystemDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.tag=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.tag.appdata)switch(l.tag.appType?l.tag.appType.toLowerCase():l.tag.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.tag.appdata.split(",");l.tag.key=d[0],l.tag.language=d[1],l.tag.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.tag.appdata.split(",");l.tag.projectId=d[0],l.tag.clientEmail=d[1],l.tag.privateKey=d[2],l.tag.language=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.tag.appdata.split(",");l.tag.accesskeyid=d[0],l.tag.secretaccesskey=d[1],l.tag.lexregion=d[2],l.tag.botname=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.tag.appdata.split(",");l.tag.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.tag.text=d.slice(1,d.length).join(",");break;case"message":l.tag.text=l.tag.appdata;break;case"set":l.tag.name=l.tag.appdata.split("=")[0],l.tag.value=l.tag.appdata.split("=")[1];break;case"agi":l.tag.project=l.tag.appdata;break;default:var c=l.tag.appdata.split(",");l.tag.tag=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outbounddial"===l.tag.appType.toLowerCase()&&(l.tag.prefix=l.tag.phone?l.tag.phone.split("$")[0]:void 0,l.tag.callerId=l.tag.callerID?"CALLERID(all)="+l.tag.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outboundDial"===l.tag.appType&&(l.tag.phone=i.cutdigits?(l.tag.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.tag.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.tag.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.tag.options+="U(xcally-mixmonitor-context)"):l.tag.options=l.tag.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.tags,{name:l.tag.tag});n&&(l.tag.TagId=n.id);if(l.tag.appType&&"custom"===l.tag.appType);else switch((l.tag.app||l.tag.appType).toLowerCase()){case"set":l.tag.appdata=l.tag.name+"="+l.tag.value;break;case"custom":break;default:e[0]=l.tag.tag,l.tag.appdata=e.join(",")}m(l.tag)},l.closeDialog=m,o.hasRole("admin")?s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1008}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.tags,{id:e.resourceId})}),t=null;if(l.tag&&(t=_.find(l.tags,{name:l.tag.tag})),t&&!_.some(n,["id",t.id])){var a=_.find(l.tags,{id:t.id});a.canSelect=!1,n.push(a)}l.tags=n})}else{var t=[],a=null;l.tag&&(a=_.find(l.tags,{name:l.tag.tag}));for(var i=0;i<l.tags.length;i++)a&&l.tags[i].id===a.id&&(l.tags[i].canSelect=!1,t.push(l.tags[i]));l.tags=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtags",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountApptagDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.dispositions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=l.faxAccount.getDispositions(m.query,u).$promise}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){p(),d.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.dispositions={count:0,rows:[]},m.selectedDispositions=[],m.crudPermissions,m.levels={first:"1st",second:"2nd",third:"3rd"},m.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},m.init=function(e,n){m.faxAccount=e||{},m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.FaxAccountId=m.faxAccount.id,m.query.id=m.faxAccount.id,p()},m.deleteConfirm=function(e,n){var t=_.some(m.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){g(e)})},m.success=u,m.getDispositions=p,m.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:{id:m.faxAccount.id,field:"FaxAccountId",route:"faxAccount"},license:null,setting:null,crudPermissions:m.crudPermissions}}).then(function(e){e&&p()})},m.deleteDisposition=g,m.exportSelectedDispositions=function(){var e=angular.copy(m.selectedDispositions);return m.selectedDispositions=[],e},m.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:m.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedDispositions.forEach(function(e){g(e)}),m.selectedDispositions=[]})},m.deselectDispositions=function(){m.selectedDispositions=[]},m.selectAllDispositions=function(){m.selectedDispositions=m.dispositions.rows};var v=!0,h=1;e.$watch("vm_dc.query.filter",function(e,n){v?o(function(){v=!1}):(n||(h=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=h),p())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","api","toasty","Auth"],angular.module("app.fax").controller("FaxAccountDispositionsController",e)}(),function(){"use strict";function e(e,a,n,t,i,s,o,r,l,d,c){var m=this;function u(e){m.faxAccountInteractions=e||{count:0,rows:[]};for(var n=0;n<m.faxAccountInteractions.rows.length;n+=1){var t=m.faxAccountInteractions.rows[n];v(t),t.Owner.name=h(t)}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.faxInteraction.get(m.query,u).$promise}function g(e){d.faxInteraction.delete({id:e.id}).$promise.then(function(){_.remove(m.faxAccountInteractions.rows,{id:e.id}),m.faxAccountInteractions.count-=1,m.faxAccountInteractions.rows.length||p(),l.success({title:"Interaction deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETfaxAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfaxAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(e){e.Contact?(e.contactName=(e.Contact.firstName||"")+" "+(e.Contact.lastName||""),e.contactInfo=e.Contact.fax):e.contactName=i.instant("DASHBOARDS.UNKNOWN")}function h(e){return e.UserId?e.UserId===m.currentUser.id?i.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">":i.instant("DASHBOARDS.NOT_ASSIGNED")}m.currentUser=c.getCurrentUser(),m.faxAccount={},m.faxAccountInteractions={count:0,rows:[]},m.selectedFaxAccountInteractions=[],m.crudPermissions,m.query={read:"null",closed:"null",sort:"-createdAt",includeAll:"true",limit:10,page:1},m.init=function(e,n,t){m.faxAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.FaxAccountId=m.faxAccount.id,m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Subject",column:"subject",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},d.tag.get({sort:"name"}).$promise.then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]})},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the interaction?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("interaction #")+e.id||"interaction")+"</b> will be deleted.").ariaLabel("delete interaction").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.faxInteractionDownload=function(s,e,n){return d.faxInteraction.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="interaction"+s.id,a=new Blob(n,{type:e.type});t="fax-interaction"+s.id+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getFaxAccountInteractions=p,m.createOrEditFaxAccountInteraction=function(e,n){o.show({controller:"CreateOrEditInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/edit/interactions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxAccount:m.faxAccount,interaction:n,interactions:m.faxAccountInteractions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.spyfaxInteraction=function(e,t){o.show({controller:"AgentGeneralInteractionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,onShowing:function(e,n){e.vm.init({id:1,channel:"fax",interaction:t,spy:!0},a.$parent.vm.setting)}})},m.openAdvancedSearch=function(){o.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(r.body),clickOutsideToClose:!1,locals:{fields:m.advancedSearch.fields,color:void 0,storagePath:"fax.faxAccounts"},fullscreen:!0}).then(function(e){if(m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply){var n="";n+="||FaxAccountId:=$eq["+m.faxAccount.id+"]",m.query.search=e.value?e.value+=n:e.value,p()}}).catch(function(e){l.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.exportSelectedFaxAccountInteractions=function(){var e=angular.copy(m.selectedFaxAccountInteractions);return m.selectedFaxAccountInteractions=[],e},m.deleteFaxAccountInteraction=g,m.deleteSelectedFaxAccountInteractions=function(e){var n=o.confirm().title("Are you sure want to delete the selected interactions?").htmlContent("<b>"+m.selectedFaxAccountInteractions.length+" selected</b> will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedFaxAccountInteractions.forEach(function(e){g(e)}),m.selectedFaxAccountInteractions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.fax").controller("FaxAccountInteractionsController",e)}(),function(){"use strict";function e(t,e,a,i,s,n,o,r,l,d,c,m,u){var p=this;p.currentUser=d.getCurrentUser(),p.license=n,p.setting=o,p.passwordPattern=p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.location=e.protocol()+"://"+e.host(),p.faxAccount=c||t.params.faxAccount||{},p.userProfile=m,p.userProfileSection=u&&1==u.count?u.rows[0]:null,p.crudPermissions=d.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.hasModulePermissions={},p.selectedTab=t.params.tab||0,p.gotogoto=function(e,n){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:910}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.fax.realtime.accounts",{}):l.info({title:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.fax.realtime.accounts",{})}},p.agentadddialog=function(e,n){a.show({controller:"FaxAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/edit/agentadd/agentadd.html",parent:angular.element(i.body),targetEvent:n,clickOutsideToClose:!0,locals:{faxAccount:e,faxAccounts:p.faxAccounts?p.faxAccounts.rows:[],crudPermissions:p.crudPermissions,realtime:!1}})},p.alert=l.info,p.gotoFaxAccounts=function(){t.go("app.fax.faxAccounts",{},{reload:"app.fax.faxAccounts"})},p.saveFaxAccount=function(){r.faxAccount.updateAccountApplications(p.faxAccount).$promise.then(function(){l.success({title:"FaxAccount updated!",msg:p.faxAccount.name?p.faxAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfaxAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.trunks=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.trunks=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.trunks,{id:e.resourceId})}),t=null;if(p.faxAccount&&(t=_.find(p.trunks,{id:Number(p.faxAccount.TrunkId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.trunks,{id:t.id});a.canSelect=!1,n.push(a)}p.trunks=n})}else{var t=[],a=null;p.faxAccount&&(a=_.find(p.trunks,{id:Number(p.faxAccount.TrunkId)}));for(var i=0;i<p.trunks.length;i++)a&&p.trunks[i].id===a.id&&(p.trunks[i].canSelect=!1,t.push(p.trunks[i]));p.trunks=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.lists,{id:e.resourceId})}),t=null;if(p.faxAccount&&(t=_.find(p.lists,{id:Number(p.faxAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.lists,{id:t.id});a.canSelect=!1,n.push(a)}p.lists=n})}else{var t=[],a=null;p.faxAccount&&(a=_.find(p.lists,{id:Number(p.faxAccount.ListId)}));for(var i=0;i<p.lists.length;i++)a&&p.lists[i].id===a.id&&(p.lists[i].canSelect=!1,t.push(p.lists[i]));p.lists=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.pauses,{id:e.resourceId})});p.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),p.pauses=n})}else p.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","faxAccount","userProfile","userProfileSection"],angular.module("app.fax").controller("FaxAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.faxAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="faxAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedFaxAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,key,headerinfo,TrunkId,localstationid,ListId,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,page:1},f.arrayecm=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayminrate=_.keyBy([{option:"2400",value:"'2400'"},{option:"4800",value:"'4800'"},{option:"7200",value:"'7200'"},{option:"9600",value:"'9600'"},{option:"12000",value:"'12000'"},{option:"14400",value:"'14400'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraymaxrate=_.keyBy([{option:"2400",value:"'2400'"},{option:"4800",value:"'4800'"},{option:"7200",value:"'7200'"},{option:"9600",value:"'9600'"},{option:"12000",value:"'12000'"},{option:"14400",value:"'14400'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraytech=_.keyBy([{option:"SIP",value:"'SIP'"},{option:"IAX",value:"'IAX'"},{option:"DADHI",value:"'DADHI'"},{option:"KHOMP",value:"'KHOMP'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.fax.faxAccounts.edit",{id:e.id,faxAccount:e,crudPermissions:f.crudPermissions})},f.interactionsgoto=function(e,n){t.go("app.fax.faxAccounts.edit",{id:e.id,tab:5})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:910}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.fax.realtime.accounts",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.fax.realtime.accounts",{})}},f.agentadddialog=function(e,n){i.show({controller:"FaxAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{faxAccount:e,faxAccounts:f.faxAccounts?f.faxAccounts.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("faxAccount")+"?").htmlContent("<b>"+(e.name||"faxAccount")+"</b> will be deleted.").ariaLabel("delete faxAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getFaxAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.faxAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="FaxAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditFaxAccount=function(e,n){i.show({controller:"CreateOrEditFaxAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxAccount:n,faxAccounts:f.faxAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteFaxAccount=y,f.exportSelectedFaxAccounts=function(){var e=angular.copy(f.selectedFaxAccounts);return f.selectedFaxAccounts=[],e},f.deleteSelectedFaxAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected faxAccounts?").htmlContent("<b>"+f.selectedFaxAccounts.length+" selected</b> will be deleted.").ariaLabel("delete FaxAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedFaxAccounts.forEach(function(e){y(e)}),f.selectedFaxAccounts=[]})},f.deselectFaxAccounts=function(){f.selectedFaxAccounts=[]},f.selectAllFaxAccounts=function(){f.selectedFaxAccounts=f.faxAccounts.rows},g.hasRole("admin")?m.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.trunks=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.trunks=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(f.trunks,{id:e.resourceId})}),a=null;a=[],f.faxAccounts.rows.forEach(function(e){var n=_.find(f.trunks,{id:Number(e.TrunkId)});a.push(n)}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(f.trunks,{id:e.id});n.canSelect=!1,t.push(n)}}),f.trunks=t})}else{var t=[],a=[];f.faxAccounts.rows.forEach(function(e){var n=_.find(f.trunks,{id:Number(e.TrunkId)});a.push(n)});for(var i=0;i<f.trunks.length;i++){_.some(a,{id:f.trunks[i].id})&&(f.trunks[i].canSelect=!1,t.push(f.trunks[i]))}f.trunks=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),g.hasRole("admin")?m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.lists,{id:e.resourceId})}),t=null;if(f.faxAccount&&(t=_.find(f.lists,{id:Number(f.faxAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.lists,{id:t.id});a.canSelect=!1,n.push(a)}f.lists=n})}else{var t=[],a=null;f.faxAccount&&(a=_.find(f.lists,{id:Number(f.faxAccount.ListId)}));for(var i=0;i<f.lists.length;i++)a&&f.lists[i].id===a.id&&(f.lists[i].canSelect=!1,t.push(f.lists[i]));f.lists=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.faxAccounts=e||{count:0,rows:[]}}function y(e){m.faxAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.faxAccounts.rows,{id:e.id}),f.faxAccounts.count-=1,f.faxAccounts.rows.length||f.getFaxAccounts(),p.success({title:_.startCase("FaxAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEfaxAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEfaxAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getFaxAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","faxAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.fax").controller("FaxAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="FAX.EDIT_FAXQUEUE",g.faxQueue=angular.copy(l),g.faxQueues=r,g.newFaxQueue=!1,g.faxQueue||(g.faxQueue={strategy:"beepall",timeout:10},g.title="FAX.NEW_FAXQUEUE",g.newFaxQueue=!0),g.addNewFaxQueue=function(){g.errors=[],d.faxQueue.save(g.faxQueue).$promise.then(function(e){g.faxQueues.unshift(e.toJSON()),o.success({title:"FaxQueue properly created",msg:g.faxQueue.name?g.faxQueue.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.faxQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveFaxQueue=function(){g.errors=[],d.faxQueue.update({id:g.faxQueue.id},g.faxQueue).$promise.then(function(e){var n=_.find(g.faxQueues,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"FaxQueue properly saved!",msg:g.faxQueue.name?g.faxQueue.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.faxQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteFaxQueue=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The faxQueue will be deleted.").ariaLabel("Delete FaxQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.faxQueue.delete({id:g.faxQueue.id}).$promise.then(function(){_.remove(g.faxQueues,{id:g.faxQueue.id}),o.success({title:"FaxQueue properly deleted!",msg:(g.faxQueue.name||"faxQueue")+" has been deleted!"}),v(g.faxQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.faxQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","faxQueues","faxQueue","api","Auth","license","setting","crudPermissions"],angular.module("app.fax").controller("CreateOrEditFaxQueueDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.faxQueue.getAgents({id:c.faxQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserFaxQueue?"penalty "+e.UserFaxQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.faxQueue=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.faxQueue.removeAgents({id:c.faxQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.faxQueue.addAgents({id:c.faxQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("FAX.ALL_AGENTS"),labelSelected:r.instant("FAX.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","faxQueue","faxQueues","realtime","$translate","Auth","crudPermissions"],angular.module("app.fax").controller("FaxQueueagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.faxQueue.getTeams({id:l.faxQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.faxQueue=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("FAX.ALL_TEAMS"),labelSelected:t.instant("FAX.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.faxQueue.removeTeams({id:l.faxQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.faxQueue.addTeams({id:l.faxQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","faxQueue","$translate","Auth","crudPermissions"],angular.module("app.fax").controller("FaxQueueteamaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.faxQueue=c||e.params.faxQueue||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.teamadddialog=function(e,n){t.show({controller:"FaxQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{faxQueue:e,faxQueues:u.faxQueues?u.faxQueues.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){t.show({controller:"FaxQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{faxQueue:e,faxQueues:u.faxQueues?u.faxQueues.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.alert=l.info,u.gotoFaxQueues=function(){e.go("app.fax.faxQueues",{},{reload:"app.fax.faxQueues"})},u.saveFaxQueue=function(){r.faxQueue.update({id:u.faxQueue.id},u.faxQueue).$promise.then(function(){l.success({title:"FaxQueue updated!",msg:u.faxQueue.name?u.faxQueue.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfaxQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","faxQueue","userProfileSection"],angular.module("app.fax").controller("FaxQueueController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.faxQueues=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="faxQueues",f.listOrder="",f.listOrderAsc=null,f.selectedFaxQueues=[],f.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"fax",limit:10,page:1},f.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.fax.faxQueues.edit",{id:e.id,faxQueue:e,crudPermissions:f.crudPermissions})},f.teamadddialog=function(e,n){i.show({controller:"FaxQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{faxQueue:e,faxQueues:f.faxQueues?f.faxQueues.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"FaxQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{faxQueue:e,faxQueues:f.faxQueues?f.faxQueues.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("faxQueue")+"?").htmlContent("<b>"+(e.name||"faxQueue")+"</b> will be deleted.").ariaLabel("delete faxQueue").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:910}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.fax.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.fax.realtime.queues",{})}},f.success=E,f.getFaxQueues=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.faxQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="FaxQueues",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditFaxQueue=function(e,n){i.show({controller:"CreateOrEditFaxQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxQueue:n,faxQueues:f.faxQueues.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteFaxQueue=y,f.exportSelectedFaxQueues=function(){var e=angular.copy(f.selectedFaxQueues);return f.selectedFaxQueues=[],e},f.deleteSelectedFaxQueues=function(e){var n=i.confirm().title("Are you sure want to delete the selected faxQueues?").htmlContent("<b>"+f.selectedFaxQueues.length+" selected</b> will be deleted.").ariaLabel("delete FaxQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedFaxQueues.forEach(function(e){y(e)}),f.selectedFaxQueues=[]})},f.deselectFaxQueues=function(){f.selectedFaxQueues=[]},f.selectAllFaxQueues=function(){f.selectedFaxQueues=f.faxQueues.rows};var b=!0,A=1;function E(e){f.faxQueues=e||{count:0,rows:[]}}function y(e){m.faxQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.faxQueues.rows,{id:e.id}),f.faxQueues.count-=1,f.faxQueues.rows.length||f.getFaxQueues(),p.success({title:_.startCase("FaxQueue")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEfaxQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEfaxQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getFaxQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","faxQueues","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.fax").controller("FaxQueuesController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){_.forIn(p.faxAccounts,function(e,n){p.rpcFaxAccounts[n]&&_.merge(e,p.rpcFaxAccounts[n])}),_.forIn(p.faxAccounts,function(n,e){var t={id:e,sort:"-id",direction:"in",limit:1,offset:0,$gte:"createdAt,"+moment().startOf("day").format("YYYY-MM-DD HH:mm:ss"),fields:"id,createdAt"};s.faxAccount.getMessages(t).$promise.then(function(e){return e&&(n.in=e.count||0,n.lastIn=e.rows&&e.rows.length?e.rows[0].createdAt:void 0),t.direction="out",s.faxAccount.getMessages(t).$promise}).then(function(e){e&&(n.out=e.count||0,n.lastOut=e.rows&&e.rows.length?e.rows[0].createdAt:void 0)}).catch(function(e){console.log(e)})})}p.currentUser=u.getCurrentUser(),p.count=l&&l.count?l.count:0,p.faxAccounts=l?_.keyBy(l.rows?l.rows:[],"id"):{},p.rpcFaxAccounts=d?_.keyBy(d.rows?d.rows:[],"id"):{},p.userProfile=c,p.userProfileSection=m&&1==m.count?m.rows[0]:null,p.crudPermissions=u.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.query={sort:"-name",limit:10,page:1},p.success=f,p.$onInit=g,p.getFaxAccounts=function(){p.query.offset=(p.query.page-1)*p.query.limit,u.hasRole("admin")?p.promise=s.faxAccount.get(p.query,f).$promise:(p.query.id=p.userProfile.id,p.query.section="FaxAccounts",p.promise=s.userProfile.getResources(p.query,f).$promise)},p.onSave=function(e){p.faxAccounts[e.id]&&_.merge(p.faxAccounts[e.id],e)},p.onFaxMessageSave=function(e){p.faxAccounts[e.FaxAccountId]&&("in"==e.direction?(p.faxAccounts[e.FaxAccountId].in+=1,p.faxAccounts[e.FaxAccountId].lastIn=e.createdAt):(p.faxAccounts[e.FaxAccountId].out+=1,p.faxAccounts[e.FaxAccountId].lastOut=e.createdAt))},p.goToFaxAccount=function(e,n){i.go("app.fax.faxAccounts.edit",{id:n.id,faxAccount:n})},p.order=[],_.forIn(p.faxAccounts,function(e,n){p.order.push(e.id)}),o.on("faxAccount:save",p.onSave),o.on("faxAccount:update",p.onSave),o.on("faxMessage:save",p.onFaxMessageSave);var v=!0,h=1;function f(e){if(p.faxAccounts=e?_.keyBy(e.rows?e.rows:[],"id"):{},e.rows){p.order=[];for(var n=0;n<e.rows.length;n++)p.order.push(e.rows[n].id)}g()}e.$watch("vm.query.filter",function(e,n){v?t(function(){v=!1}):(n||(h=p.query.page),e!==n&&(p.query.page=1),e||(p.query.page=h),p.getFaxAccounts())}),e.$on("$destroy",function(){o.removeAllListeners("faxAccount:save"),o.removeAllListeners("faxAccount:update"),o.removeAllListeners("faxMessage:save")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$state","api","socket","toasty","faxAccounts","rpcFaxAccounts","userProfile","userProfileSection","Auth"],angular.module("app.fax").controller("FaxAccountsRealtimeController",e)}(),function(){"use strict";function e(e,o,n,t,a,i,s,r,l,d,c,m,u,p,g,v,h,f){var b=this,A=["userpic","online","lastLoginAt","lastPauseAt","pauseType","lastPauseAt","internal","address","chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","chatCapacity","openchannelCapacity","mailCapacity","smsCapacity","whatsappCapacity","faxCapacity","chatCurrentCapacity","openchannelCurrentCapacity","mailCurrentCapacity","smsCurrentCapacity","whatsappCurrentCapacity","faxCurrentCapacity","chatStatus","openchannelStatus","mailStatus","smsStatus","whatsappStatus","faxStatus","voiceStatus","chatStatusTime","openchannelStatusTime","mailStatusTime","smsStatusTime","whatsappStatusTime","faxStatusTime","voiceStatusTime","queue","destconnectedlinenum","screenrecording","phoneBarEnableScreenRecordingByAgent","phoneBarEnableAutomaticScreenRecording"],E=["chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","online"];for(var y in b.currentUser=v.getCurrentUser(),b.availableStates=["ringing","inuse","busy","onhold","not_inuse"],b.pauses=s||{count:0,rows:[]},b.license=h,b.userProfile=p,b.userProfileSection=g&&1==g.count?g.rows[0]:null,b.crudPermissions=v.parseCrudPermissions(b.userProfileSection?b.userProfileSection.crudPermissions:null),b.agents=r?_.keyBy(r.rows?r.rows:[],"id"):{},b.rpcAgents=l?_.keyBy(l.rows?l.rows:[],"id"):{},b.paginatedAgents={},b.load=!1,b.order=[],b.agentInternal={},b.agents)b.agents.hasOwnProperty(y)&&(b.agents[y].init=!0);b.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},b.logout=function(e,n){return d.user.logout({id:e.id,device:"realtime",agent_id:e.id,agent_name:e.name}).$promise.then(function(){m.success({title:"Agent logout",msg:e.fullname+" properly logout"}),b.agents[e.id]&&(b.agents[e.id].online=!1),b.rpcAgents[e.id]&&(b.rpcAgents[e.id].online=!1),T()}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.queueAdd=function(e,n){t.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:[],channel:"fax",direction:"inbound",crudPermissions:b.crudPermissions}})},b.pause=function(n,e){return d.user.pause({id:n.id,type:e}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.unPause=function(n){return d.user.unpause({id:n.id}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.showInfo=function(e){t.show(t.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},b.getAgentStatus=O,b.getAgentGlobalStatus=w,b.isPause=I,b.checkPause=function(e){return"pause"===e},b.isPartialPause=function(e){return"*pause"===e},b.onSave=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(_.omit(e,E),A)),_.merge(b.rpcAgents[e.id],_.pick(_.omit(e,E),A)),w(b.agents[e.id]))},b.onUpdate=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(e,A)),_.merge(b.rpcAgents[e.id],_.pick(e,A)),e.lastPauseAt&&(b.agents[e.id].globalStatusTime=e.lastPauseAt,b.rpcAgents[e.id].globalStatusTime=e.lastPauseAt),w(b.agents[e.id]))},b.onInit=T,b.onConnect=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(_.merge(b.agents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])),_.merge(b.rpcAgents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])))},b.onComplete=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(b.agents[b.agentInternal[e.destaccountcode]]=_.omit(b.agents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]),b.rpcAgents[b.agentInternal[e.destaccountcode]]=_.omit(b.rpcAgents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]))},b.screenRecording=function(e,n){return d.user.update({id:e.id},{screenrecording:n}).$promise.catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.on("user:save",b.onSave),c.on("user:update",b.onUpdate),c.on("user:agentconnect",b.onConnect),c.on("user:agentcomplete",b.onComplete),T();var S=f(function(){b.load&&(b.load=!1,T())},999);function T(e){b.load=!1;var n,t,a=o.defer();b.promise=a.promise,b.filteredAgents=[],b.order=[],_.forIn(b.agents,function(e,n){b.rpcAgents[n]&&_.merge(e,_.pick(_.omit(b.rpcAgents[n],E),A)),w(e),e.online?(b.filteredAgents.push(e),b.agentInternal[e.internal]=n):e.globalStatusTime=_.toNumber(moment().format("x"))}),b.query.globalStatusFilter&&_.remove(b.filteredAgents,function(e){return e.globalStatus!==b.query.globalStatusFilter}),b.query.pauseTypeFilter&&_.remove(b.filteredAgents,function(e){return e.pauseType!==b.query.pauseTypeFilter}),b.query.filter&&_.remove(b.filteredAgents,function(e){return e.fullname.toLowerCase().indexOf(b.query.filter.toLowerCase())<0}),b.filteredAgents=(n=b.filteredAgents,t=_.startsWith(b.query.order,"-")?"desc":"asc",_.orderBy(n,[b.query.order.replace("-","")],[t]));var i=(b.query.page-1)*b.query.limit;b.paginatedAgents=_.drop(b.filteredAgents,i).slice(0,b.query.limit);for(var s=0;s<b.paginatedAgents.length;s+=1)b.order.push(b.paginatedAgents[s].id);a.resolve(),b.load=!0}function I(e){return"pause"===e||"*pause"===e}function C(e){return"idle"===e||"unknown"===e||"unavailable"===e||"ringing"===e||_.isNil(e)}function O(e,n){return"voice"===n?"idle"!==e[n+"Status"]?e[n+"Status"]:e[n+"Pause"]?e[n+"Status"]="pause":"idle":e[n+"Pause"]?e[n+"Status"]="pause":e[n+"Status"]}function w(e){var n="unknown";n=_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"pause":_.some([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"*pause":_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],C)?"idle":"busy",e.globalStatus!==n&&(e.globalStatus=n,e.init?(e.init=!1,e.globalStatusTime=I(n)?_.toNumber(moment(e.lastPauseAt).format("x")):_.max([e.voiceStatusTime,e.chatStatusTime,e.mailStatusTime,e.smsStatusTime,e.whatsappStatusTime,e.openchannelStatusTime,e.faxStatusTime])):e.globalStatusTime=_.toNumber(moment().format("x")))}e.$on("$destroy",function(){c.removeAllListeners("user:save"),c.removeAllListeners("user:update"),c.removeAllListeners("user:agentconnect"),c.removeAllListeners("user:agentcomplete"),S&&(f.cancel(S),S=null)})}e.$inject=["$scope","$q","$timeout","$mdDialog","$document","$filter","pauses","agents","rpcAgents","api","socket","toasty","helperClasses","userProfile","userProfileSection","Auth","license","$interval"],angular.module("app.voice").controller("AgentsFaxRealtimeController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c,m){var u=this,p=["loggedIn","available","waiting","paused"],g=n(function(){},999);u.currentUser=c.getCurrentUser(),u.queues=s,u.userProfileSection=d&&1==d.count?d.rows[0]:null,u.crudPermissions=c.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.query={id:c.isUser()?u.currentUser.id:void 0,section:c.isUser()?"FaxQueues":void 0,channel:"fax",sort:"name",limit:10,page:1},u.getQueues=function(){u.query.offset=(u.query.page-1)*u.query.limit,o.realtime.getQueues(u.query).$promise.then(function(e){u.queues=e}).catch(function(e){l.error({title:i.instant("FAX.FAXQUEUES"),msg:e.status?JSON.stringify(e.data):e.toString()})})},u.editQueue=function(e,n){t.show({controller:"CreateOrEditFaxQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxQueue:n,faxQueues:u.queues.rows,license:null,setting:null,crudPermissions:u.crudPermissions}})},u.addAgent=function(e,n){t.show({controller:"FaxQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxQueue:n,faxQueues:u.queues.rows,realtime:!1,crudPermissions:u.crudPermissions}})},r.on("fax_queue:save",function(e){var n=_.find(u.queues.rows,["id",e.id]);n&&_.merge(n,_.pick(e,p))}),r.on("userFaxQueue:save",function(e){var n=_.find(u.queues.rows,["id",e.FaxQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),r.on("userFaxQueue:remove",function(e){var n=_.find(u.queues.rows,["id",e.FaxQueueId]);n&&(0<n.loggedInDb&&n.loggedInDb--,_.remove(n.agents,["id",e.UserId]))}),r.on("user:update",function(t){u.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&m.updateQueue(t,e,n,"fax")})}),e.$on("$destroy",function(){r.removeAllListeners("fax_queue:save"),r.removeAllListeners("userFaxQueue:remove"),r.removeAllListeners("userFaxQueue:save"),r.removeAllListeners("user:update"),g&&n.cancel(g)})}e.$inject=["$scope","$mdDialog","$document","$interval","$translate","queues","api","socket","toasty","userProfileSection","Auth","realtimeManager"],angular.module("app.fax").controller("QueuesFaxRealtimeController",e)}(),function(){"use strict";angular.module("app.auth").factory("helperClasses",function(){return{status:{registered:"green-300-fg icon-checkbox-marked-circle",unregistered:"red-300-fg icon-close-circle",lagged:"red-300-fg icon-close-circle",reachable:"green-300-fg icon-checkbox-marked-circle",unreachable:"red-300-fg icon-close-circle",unknown:"grey-fg icon-minus-circle"},state:{unknown:"grey-fg icon-phone-hangup",not_inuse:"green-300-fg icon-phone-hangup",inuse:"red-300-fg icon-phone-in-talk",busy:"red-300-fg icon-phone-locked",invalid:"grey-fg icon-phone-hangup",unavailable:"grey-fg icon-phone-hangup",ringing:"blue-300-fg icon-phone-incoming",ringinuse:"blue-300-fg icon-phone-incoming",onhold:"blue-300-fg icon-phone-paused"},channelStatus:{ring:"blue-300-fg icon-phone-incoming",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"},channelStatusOut:{ring:"blue-300-fg icon-phone-outgoing",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"}}})}(),function(){"use strict";function e(e,t,n){switch(this.selectedTab=0,t.current.name){case"app.fax.realtime.agents":this.selectedTab=0;break;case"app.fax.realtime.trunks":this.selectedTab=1;break;case"app.fax.realtime.queues":this.selectedTab=2;break;case"app.fax.realtime.accounts":this.selectedTab=3;break;default:this.selectedTab=0,t.go("app.fax.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.fax.realtime.agents");break;case 1:t.go("app.fax.realtime.trunks");break;case 2:t.go("app.fax.realtime.queues");break;case 3:t.go("app.fax.realtime.accounts");break;default:t.go("app.fax.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.fax").controller("FaxRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m){var u=this,p=["status","stateRegistry","registry","host","port","internal","state","status"];function g(){for(var e,n=0;n<u.trunks.length;n+=1)0<=(e=_.findIndex(u.rpcTrunks,["id",u.trunks[n].id]))&&_.merge(u.trunks[n],_.pick(u.rpcTrunks[e],p))}function v(e,n,t){0<=n&&_.merge(e[n],_.pick(t,p))}u.currentUser=m.getCurrentUser(),u.count=a.count,u.trunks=a?a.rows:[],u.rpcTrunks=i&&i.rows?i.rows:[],u.query={fields:"id,name",active:!0,sort:"-updatedAt",limit:10,page:1},u.statusClass=r.status,u.stateClass=r.state,u.userProfile=d,u.userProfileSection=c&&1==c.count?c.rows[0]:null,u.crudPermissions=m.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.success=b,u.$onInit=g,u.showInfo=function(e){n.show(n.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},u.getTrunks=function(){u.query.offset=(u.query.page-1)*u.query.limit,m.hasRole("admin")?u.promise=s.trunk.get(u.query,b).$promise:(u.query.id=u.userProfile.id,u.query.section="Trunks",u.promise=s.userProfile.getResources(u.query,b).$promise)},u.goToTrunk=function(e,n){l.go("app.tools.trunks.edit",{id:n.id})},u.onSave=function(e){var n=_.findIndex(u.trunks,["id",e.id]),t=_.findIndex(u.rpcTrunks,["id",e.id]);v(u.trunks,n,e),v(u.rpcTrunks,t,e)},o.on("trunk:save",u.onSave);var h=!0,f=1;function b(e){u.count=e.count,u.trunks=e&&e.rows?e.rows:[],g()}e.$watch("vm.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=u.query.page),e!==n&&(u.query.page=1),e||(u.query.page=f),u.getTrunks())}),e.$on("$destroy",function(){o.removeAllListeners("trunk:save")})}e.$inject=["$scope","$timeout","$mdDialog","trunks","rpcTrunks","api","socket","helperClasses","$state","userProfile","userProfileSection","Auth"],angular.module("app.fax").controller("TrunksFaxRealtimeController",e)}(),function(){"use strict";function e(e,n){this.info=e,this.license=n}e.$inject=["info","license"],angular.module("app.help.about").controller("AboutController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_DESKACCOUNT",g.deskAccount=angular.copy(l),g.deskAccounts=r,g.newDeskAccount=!1,g.deskAccount||(g.deskAccount={type:"integrationTab",authType:"basic",serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_DESKACCOUNT",g.newDeskAccount=!0),g.addNewDeskAccount=function(){g.errors=[],d.intDeskAccount.save(g.deskAccount).$promise.then(function(e){g.deskAccounts.unshift(e.toJSON()),o.success({title:"DeskAccount properly created",msg:g.deskAccount.name?g.deskAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDeskAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDeskAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveDeskAccount=function(){g.errors=[],d.intDeskAccount.update({id:g.deskAccount.id},g.deskAccount).$promise.then(function(e){var n=_.find(g.deskAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"DeskAccount properly saved!",msg:g.deskAccount.name?g.deskAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDeskAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDeskAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteDeskAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The deskAccount will be deleted.").ariaLabel("Delete DeskAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intDeskAccount.delete({id:g.deskAccount.id}).$promise.then(function(){_.remove(g.deskAccounts,{id:g.deskAccount.id}),o.success({title:"DeskAccount properly deleted!",msg:(g.deskAccount.name||"deskAccount")+" has been deleted!"}),v(g.deskAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDeskAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDeskAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","deskAccounts","deskAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditDeskAccountDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.deskAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="deskAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedDeskAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,type,remoteUri,authType,username,password,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.arraytype=_.keyBy([{option:"Integration_Tab",value:"'integrationTab'"},{option:"New_Tab",value:"'newTab'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayauthType=_.keyBy([{option:"Basic",value:"'basic'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.integrations.deskAccounts.edit",{id:e.id,deskAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intDeskAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"DeskAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"DeskAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("deskAccount")+"?").htmlContent("<b>"+(e.name||"deskAccount")+"</b> will be deleted.").ariaLabel("delete deskAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getDeskAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intDeskAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="DeskAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditDeskAccount=function(e,n){i.show({controller:"CreateOrEditDeskAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/deskAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{deskAccount:n,deskAccounts:f.deskAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteDeskAccount=y,f.exportSelectedDeskAccounts=function(){var e=angular.copy(f.selectedDeskAccounts);return f.selectedDeskAccounts=[],e},f.deleteSelectedDeskAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected deskAccounts?").htmlContent("<b>"+f.selectedDeskAccounts.length+" selected</b> will be deleted.").ariaLabel("delete DeskAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedDeskAccounts.forEach(function(e){y(e)}),f.selectedDeskAccounts=[]})},f.deselectDeskAccounts=function(){f.selectedDeskAccounts=[]},f.selectAllDeskAccounts=function(){f.selectedDeskAccounts=f.deskAccounts.rows};var b=!0,A=1;function E(e){f.deskAccounts=e||{count:0,rows:[]}}function y(e){m.intDeskAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.deskAccounts.rows,{id:e.id}),f.deskAccounts.count-=1,f.deskAccounts.rows.length||f.getDeskAccounts(),p.success({title:_.startCase("DeskAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintDeskAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintDeskAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getDeskAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","deskAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("DeskAccountsController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intDeskField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intDeskField.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intDeskField.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.deskAccount={},o.deskConfiguration={},o.configurations=[],o.selectedDeskConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.deskAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intDeskAccount.getConfigurations({id:o.deskAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getDeskConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getDeskConfiguration=function(e){o.deskConfiguration=o.configurations[e],o.selectedDeskConfiguration=e,i.intDeskConfiguration.getSubjects({id:o.deskConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intDeskConfiguration.getDescriptions({id:o.deskConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intDeskConfiguration.getFields({id:o.deskConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.intDeskConfiguration.getTags({id:o.deskConfiguration.id}).$promise.then(function(e){o.selectedTags=e.rows?_.map(e.rows,"id"):[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditDeskConfiguration=function(e,n){a.show({controller:"CreateOrEditDeskConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/deskAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{deskConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getDeskConfiguration(0)})},o.deleteDeskConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the deskConfiguration?").htmlContent("<b>"+(n.name||"deskConfiguration")+"</b> will be deleted.").ariaLabel("delete deskConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intDeskConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"DeskConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getDeskConfiguration(0)})},function(){console.log("CANCEL")})},o.selectedTags=[],o.selectTagsChanged=function(e){i.intDeskConfiguration.setTags({id:o.deskConfiguration.id,ids:o.selectedTags}).$promise.then(function(){s.success({title:"Tags set!",msg:"Tags has been set!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ADDTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})},i.tag.get({nolimit:!0,sort:"name"}).$promise.then(function(e){o.tags=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}),o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditDeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/deskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.deskConfiguration,account:o.deskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditDeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/deskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.deskConfiguration,account:o.deskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditDeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/deskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.deskConfiguration,account:o.deskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("DeskAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_DESKCONFIGURATION",g.deskConfiguration=angular.copy(l),g.configurations=r,g.newDeskConfiguration=!1,g.deskConfiguration||(g.deskConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_DESKCONFIGURATION",g.newDeskConfiguration=!0),g.addNewDeskConfiguration=function(){g.errors=[],d.intDeskAccount.addConfiguration({id:n.params.id},g.deskConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"DeskConfiguration properly created",msg:g.deskConfiguration.name?g.deskConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDeskConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDeskConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveDeskConfiguration=function(){g.errors=[],d.intDeskConfiguration.update({id:g.deskConfiguration.id},g.deskConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"DeskConfiguration properly saved!",msg:g.deskConfiguration.name?g.deskConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDeskConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDeskConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteDeskConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The deskConfiguration will be deleted.").ariaLabel("Delete DeskConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intDeskConfiguration.delete({id:g.deskConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.deskConfiguration.id}),o.success({title:"DeskConfiguration properly deleted!",msg:(g.deskConfiguration.name||"deskConfiguration")+" has been deleted!"}),v(g.deskConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDeskConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDeskConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","deskConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditDeskConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intDeskField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intDeskField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intDeskField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceDialReportColumns.push("recordingURL")}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETVARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.intDeskAccount.getFields({id:l.id,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditDeskAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.deskAccount=c||e.params.deskAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoDeskAccounts=function(){e.go("app.integrations.deskAccounts",{},{reload:"app.integrations.deskAccounts"})},u.saveDeskAccount=function(){r.intDeskAccount.update({id:u.deskAccount.id},u.deskAccount).$promise.then(function(){l.success({title:"DeskAccount updated!",msg:u.deskAccount.name?u.deskAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintDeskAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","deskAccount","userProfileSection"],angular.module("app.integrations").controller("DeskAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_DYNAMICS365ACCOUNT",g.dynamics365Account=angular.copy(l),g.dynamics365Accounts=r,g.newDynamics365Account=!1,g.dynamics365Account||(g.dynamics365Account={serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_DYNAMICS365ACCOUNT",g.newDynamics365Account=!0),g.addNewDynamics365Account=function(){g.errors=[],d.intDynamics365Account.save(g.dynamics365Account).$promise.then(function(e){g.dynamics365Accounts.unshift(e.toJSON()),o.success({title:"Dynamics365Account properly created",msg:g.dynamics365Account.name?g.dynamics365Account.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDynamics365Account.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDynamics365Account.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveDynamics365Account=function(){g.errors=[],d.intDynamics365Account.update({id:g.dynamics365Account.id},g.dynamics365Account).$promise.then(function(e){var n=_.find(g.dynamics365Accounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Dynamics365Account properly saved!",msg:g.dynamics365Account.name?g.dynamics365Account.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDynamics365Account.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDynamics365Account.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteDynamics365Account=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The dynamics365Account will be deleted.").ariaLabel("Delete Dynamics365Account").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intDynamics365Account.delete({id:g.dynamics365Account.id}).$promise.then(function(){_.remove(g.dynamics365Accounts,{id:g.dynamics365Account.id}),o.success({title:"Dynamics365Account properly deleted!",msg:(g.dynamics365Account.name||"dynamics365Account")+" has been deleted!"}),v(g.dynamics365Account)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDynamics365Account.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDynamics365Account.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","dynamics365Accounts","dynamics365Account","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditDynamics365AccountDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.dynamics365Accounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="dynamics365Accounts",f.listOrder="",f.listOrderAsc=null,f.selectedDynamics365Accounts=[],f.query={fields:"createdAt,updatedAt,id,name,username,password,remoteUri,tenantId,clientId,clientSecret,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.integrations.dynamics365Accounts.edit",{id:e.id,dynamics365Account:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intDynamics365Account.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"Dynamics365Account properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"Dynamics365Account properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("dynamics365Account")+"?").htmlContent("<b>"+(e.name||"dynamics365Account")+"</b> will be deleted.").ariaLabel("delete dynamics365Account").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getDynamics365Accounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intDynamics365Account.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Dynamics365Accounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditDynamics365Account=function(e,n){i.show({controller:"CreateOrEditDynamics365AccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/dynamics365Accounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{dynamics365Account:n,dynamics365Accounts:f.dynamics365Accounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteDynamics365Account=y,f.exportSelectedDynamics365Accounts=function(){var e=angular.copy(f.selectedDynamics365Accounts);return f.selectedDynamics365Accounts=[],e},f.deleteSelectedDynamics365Accounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected dynamics365Accounts?").htmlContent("<b>"+f.selectedDynamics365Accounts.length+" selected</b> will be deleted.").ariaLabel("delete Dynamics365Accounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedDynamics365Accounts.forEach(function(e){y(e)}),f.selectedDynamics365Accounts=[]})},f.deselectDynamics365Accounts=function(){f.selectedDynamics365Accounts=[]},f.selectAllDynamics365Accounts=function(){f.selectedDynamics365Accounts=f.dynamics365Accounts.rows};var b=!0,A=1;function E(e){f.dynamics365Accounts=e||{count:0,rows:[]}}function y(e){m.intDynamics365Account.delete({id:e.id}).$promise.then(function(){_.remove(f.dynamics365Accounts.rows,{id:e.id}),f.dynamics365Accounts.count-=1,f.dynamics365Accounts.rows.length||f.getDynamics365Accounts(),p.success({title:_.startCase("Dynamics365Account")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintDynamics365Account"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintDynamics365Account",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getDynamics365Accounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","dynamics365Accounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("Dynamics365AccountsController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intDynamics365Field.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intDynamics365Field.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intDynamics365Field.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.dynamics365Account={},o.dynamics365Configuration={},o.configurations=[],o.selectedDynamics365Configuration=-1,o.crudPermissions,o.init=function(e,n){o.dynamics365Account=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intDynamics365Account.getConfigurations({id:o.dynamics365Account.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getDynamics365Configuration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getDynamics365Configuration=function(e){o.dynamics365Configuration=o.configurations[e],o.selectedDynamics365Configuration=e,i.intDynamics365Configuration.getSubjects({id:o.dynamics365Configuration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intDynamics365Configuration.getDescriptions({id:o.dynamics365Configuration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intDynamics365Configuration.getFields({id:o.dynamics365Configuration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditDynamics365Configuration=function(e,n){a.show({controller:"CreateOrEditDynamics365ConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/dynamics365Accounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{dynamics365Configuration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getDynamics365Configuration(0)})},o.deleteDynamics365Configuration=function(e,n){var t=a.confirm().title("Are you sure want to delete the dynamics365Configuration?").htmlContent("<b>"+(n.name||"dynamics365Configuration")+"</b> will be deleted.").ariaLabel("delete dynamics365Configuration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intDynamics365Configuration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"Dynamics365Configuration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getDynamics365Configuration(0)})},function(){console.log("CANCEL")})},o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditDynamics365AccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/dynamics365Accounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.dynamics365Configuration,account:o.dynamics365Account,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditDynamics365AccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/dynamics365Accounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.dynamics365Configuration,account:o.dynamics365Account,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditDynamics365AccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/dynamics365Accounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.dynamics365Configuration,account:o.dynamics365Account,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("Dynamics365AccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_DYNAMICS365CONFIGURATION",g.dynamics365Configuration=angular.copy(l),g.configurations=r,g.newDynamics365Configuration=!1,g.dynamics365Configuration||(g.dynamics365Configuration={channel:"voice",type:"inbound",ticketType:"incident"},g.title="INTEGRATIONS.NEW_DYNAMICS365CONFIGURATION",g.newDynamics365Configuration=!0),g.addNewDynamics365Configuration=function(){g.errors=[],d.intDynamics365Account.addConfiguration({id:n.params.id},g.dynamics365Configuration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"Dynamics365Configuration properly created",msg:g.dynamics365Configuration.name?g.dynamics365Configuration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDynamics365Configuration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDynamics365Configuration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveDynamics365Configuration=function(){g.errors=[],d.intDynamics365Configuration.update({id:g.dynamics365Configuration.id},g.dynamics365Configuration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Dynamics365Configuration properly saved!",msg:g.dynamics365Configuration.name?g.dynamics365Configuration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDynamics365Configuration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDynamics365Configuration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteDynamics365Configuration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The dynamics365Configuration will be deleted.").ariaLabel("Delete Dynamics365Configuration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intDynamics365Configuration.delete({id:g.dynamics365Configuration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.dynamics365Configuration.id}),o.success({title:"Dynamics365Configuration properly deleted!",msg:(g.dynamics365Configuration.name||"dynamics365Configuration")+" has been deleted!"}),v(g.dynamics365Configuration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDynamics365Configuration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDynamics365Configuration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","dynamics365Configuration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditDynamics365ConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intDynamics365Field.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intDynamics365Field.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intDynamics365Field.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceDialReportColumns.push("recordingURL")}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETVARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.intDynamics365Account.getFields({id:l.id,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditDynamics365AccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.dynamics365Account=c||e.params.dynamics365Account||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoDynamics365Accounts=function(){e.go("app.integrations.dynamics365Accounts",{},{reload:"app.integrations.dynamics365Accounts"})},u.saveDynamics365Account=function(){r.intDynamics365Account.update({id:u.dynamics365Account.id},u.dynamics365Account).$promise.then(function(){l.success({title:"Dynamics365Account updated!",msg:u.dynamics365Account.name?u.dynamics365Account.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintDynamics365Account",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","dynamics365Account","userProfileSection"],angular.module("app.integrations").controller("Dynamics365AccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_FRESHDESKACCOUNT",g.freshdeskAccount=angular.copy(l),g.freshdeskAccounts=r,g.newFreshdeskAccount=!1,g.freshdeskAccount||(g.freshdeskAccount={serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_FRESHDESKACCOUNT",g.newFreshdeskAccount=!0),g.addNewFreshdeskAccount=function(){g.errors=[],d.intFreshdeskAccount.save(g.freshdeskAccount).$promise.then(function(e){g.freshdeskAccounts.unshift(e.toJSON()),o.success({title:"FreshdeskAccount properly created",msg:g.freshdeskAccount.name?g.freshdeskAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshdeskAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveFreshdeskAccount=function(){g.errors=[],d.intFreshdeskAccount.update({id:g.freshdeskAccount.id},g.freshdeskAccount).$promise.then(function(e){var n=_.find(g.freshdeskAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"FreshdeskAccount properly saved!",msg:g.freshdeskAccount.name?g.freshdeskAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshdeskAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteFreshdeskAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The freshdeskAccount will be deleted.").ariaLabel("Delete FreshdeskAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intFreshdeskAccount.delete({id:g.freshdeskAccount.id}).$promise.then(function(){_.remove(g.freshdeskAccounts,{id:g.freshdeskAccount.id}),o.success({title:"FreshdeskAccount properly deleted!",msg:(g.freshdeskAccount.name||"freshdeskAccount")+" has been deleted!"}),v(g.freshdeskAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshdeskAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","freshdeskAccounts","freshdeskAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditFreshdeskAccountDialogController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intFreshdeskField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intFreshdeskField.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intFreshdeskField.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.freshdeskAccount={},o.freshdeskConfiguration={},o.configurations=[],o.selectedFreshdeskConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.freshdeskAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intFreshdeskAccount.getConfigurations({id:o.freshdeskAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getFreshdeskConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getFreshdeskConfiguration=function(e){o.freshdeskConfiguration=o.configurations[e],o.selectedFreshdeskConfiguration=e,i.intFreshdeskConfiguration.getSubjects({id:o.freshdeskConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intFreshdeskConfiguration.getDescriptions({id:o.freshdeskConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intFreshdeskConfiguration.getFields({id:o.freshdeskConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.intFreshdeskConfiguration.getTags({id:o.freshdeskConfiguration.id}).$promise.then(function(e){o.selectedTags=e.rows?_.map(e.rows,"id"):[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditFreshdeskConfiguration=function(e,n){a.show({controller:"CreateOrEditFreshdeskConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{freshdeskConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getFreshdeskConfiguration(0)})},o.deleteFreshdeskConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the freshdeskConfiguration?").htmlContent("<b>"+(n.name||"freshdeskConfiguration")+"</b> will be deleted.").ariaLabel("delete freshdeskConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intFreshdeskConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"FreshdeskConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getFreshdeskConfiguration(0)})},function(){console.log("CANCEL")})},o.selectedTags=[],o.selectTagsChanged=function(e){i.intFreshdeskConfiguration.setTags({id:o.freshdeskConfiguration.id,ids:o.selectedTags}).$promise.then(function(){s.success({title:"Tags set!",msg:"Tags has been set!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ADDTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})},i.tag.get({nolimit:!0,sort:"name"}).$promise.then(function(e){o.tags=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}),o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditFreshdeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.freshdeskConfiguration,account:o.freshdeskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditFreshdeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.freshdeskConfiguration,account:o.freshdeskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditFreshdeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.freshdeskConfiguration,account:o.freshdeskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("FreshdeskAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_FRESHDESKCONFIGURATION",g.freshdeskConfiguration=angular.copy(l),g.configurations=r,g.newFreshdeskConfiguration=!1,g.freshdeskConfiguration||(g.freshdeskConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_FRESHDESKCONFIGURATION",g.newFreshdeskConfiguration=!0),g.addNewFreshdeskConfiguration=function(){g.errors=[],d.intFreshdeskAccount.addConfiguration({id:n.params.id},g.freshdeskConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"FreshdeskConfiguration properly created",msg:g.freshdeskConfiguration.name?g.freshdeskConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshdeskConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveFreshdeskConfiguration=function(){g.errors=[],d.intFreshdeskConfiguration.update({id:g.freshdeskConfiguration.id},g.freshdeskConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"FreshdeskConfiguration properly saved!",msg:g.freshdeskConfiguration.name?g.freshdeskConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshdeskConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteFreshdeskConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The freshdeskConfiguration will be deleted.").ariaLabel("Delete FreshdeskConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intFreshdeskConfiguration.delete({id:g.freshdeskConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.freshdeskConfiguration.id}),o.success({title:"FreshdeskConfiguration properly deleted!",msg:(g.freshdeskConfiguration.name||"freshdeskConfiguration")+" has been deleted!"}),v(g.freshdeskConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshdeskConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","freshdeskConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditFreshdeskConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intFreshdeskField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intFreshdeskField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intFreshdeskField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceDialReportColumns.push("recordingURL")}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETVARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.intFreshdeskAccount.getFields({id:l.id,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditFreshdeskAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.freshdeskAccount=c||e.params.freshdeskAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoFreshdeskAccounts=function(){e.go("app.integrations.freshdeskAccounts",{},{reload:"app.integrations.freshdeskAccounts"})},u.saveFreshdeskAccount=function(){r.intFreshdeskAccount.update({id:u.freshdeskAccount.id},u.freshdeskAccount).$promise.then(function(){l.success({title:"FreshdeskAccount updated!",msg:u.freshdeskAccount.name?u.freshdeskAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintFreshdeskAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","freshdeskAccount","userProfileSection"],angular.module("app.integrations").controller("FreshdeskAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.freshdeskAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="freshdeskAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedFreshdeskAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.integrations.freshdeskAccounts.edit",{id:e.id,freshdeskAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intFreshdeskAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"FreshdeskAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"FreshdeskAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("freshdeskAccount")+"?").htmlContent("<b>"+(e.name||"freshdeskAccount")+"</b> will be deleted.").ariaLabel("delete freshdeskAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getFreshdeskAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intFreshdeskAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="FreshdeskAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditFreshdeskAccount=function(e,n){i.show({controller:"CreateOrEditFreshdeskAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{freshdeskAccount:n,freshdeskAccounts:f.freshdeskAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteFreshdeskAccount=y,f.exportSelectedFreshdeskAccounts=function(){var e=angular.copy(f.selectedFreshdeskAccounts);return f.selectedFreshdeskAccounts=[],e},f.deleteSelectedFreshdeskAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected freshdeskAccounts?").htmlContent("<b>"+f.selectedFreshdeskAccounts.length+" selected</b> will be deleted.").ariaLabel("delete FreshdeskAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedFreshdeskAccounts.forEach(function(e){y(e)}),f.selectedFreshdeskAccounts=[]})},f.deselectFreshdeskAccounts=function(){f.selectedFreshdeskAccounts=[]},f.selectAllFreshdeskAccounts=function(){f.selectedFreshdeskAccounts=f.freshdeskAccounts.rows};var b=!0,A=1;function E(e){f.freshdeskAccounts=e||{count:0,rows:[]}}function y(e){m.intFreshdeskAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.freshdeskAccounts.rows,{id:e.id}),f.freshdeskAccounts.count-=1,f.freshdeskAccounts.rows.length||f.getFreshdeskAccounts(),p.success({title:_.startCase("FreshdeskAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintFreshdeskAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintFreshdeskAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getFreshdeskAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","freshdeskAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("FreshdeskAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_FRESHSALESACCOUNT",g.freshsalesAccount=angular.copy(l),g.freshsalesAccounts=r,g.newFreshsalesAccount=!1,g.freshsalesAccount||(g.freshsalesAccount={serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_FRESHSALESACCOUNT",g.newFreshsalesAccount=!0),g.addNewFreshsalesAccount=function(){g.errors=[],d.intFreshsalesAccount.save(g.freshsalesAccount).$promise.then(function(e){g.freshsalesAccounts.unshift(e.toJSON()),o.success({title:"FreshsalesAccount properly created",msg:g.freshsalesAccount.name?g.freshsalesAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshsalesAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshsalesAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveFreshsalesAccount=function(){g.errors=[],d.intFreshsalesAccount.update({id:g.freshsalesAccount.id},g.freshsalesAccount).$promise.then(function(e){var n=_.find(g.freshsalesAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"FreshsalesAccount properly saved!",msg:g.freshsalesAccount.name?g.freshsalesAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshsalesAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshsalesAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteFreshsalesAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The freshsalesAccount will be deleted.").ariaLabel("Delete FreshsalesAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intFreshsalesAccount.delete({id:g.freshsalesAccount.id}).$promise.then(function(){_.remove(g.freshsalesAccounts,{id:g.freshsalesAccount.id}),o.success({title:"FreshsalesAccount properly deleted!",msg:(g.freshsalesAccount.name||"freshsalesAccount")+" has been deleted!"}),v(g.freshsalesAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshsalesAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshsalesAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","freshsalesAccounts","freshsalesAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditFreshsalesAccountDialogController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intFreshsalesField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intFreshsalesField.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intFreshsalesField.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.freshsalesAccount={},o.freshsalesConfiguration={},o.configurations=[],o.selectedFreshsalesConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.freshsalesAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intFreshsalesAccount.getConfigurations({id:o.freshsalesAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getFreshsalesConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getFreshsalesConfiguration=function(e){o.freshsalesConfiguration=o.configurations[e],o.selectedFreshsalesConfiguration=e,i.intFreshsalesConfiguration.getSubjects({id:o.freshsalesConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intFreshsalesConfiguration.getDescriptions({id:o.freshsalesConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intFreshsalesConfiguration.getFields({id:o.freshsalesConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditFreshsalesConfiguration=function(e,n){a.show({controller:"CreateOrEditFreshsalesConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshsalesAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{freshsalesConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getFreshsalesConfiguration(0)})},o.deleteFreshsalesConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the freshsalesConfiguration?").htmlContent("<b>"+(n.name||"freshsalesConfiguration")+"</b> will be deleted.").ariaLabel("delete freshsalesConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intFreshsalesConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"FreshsalesConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getFreshsalesConfiguration(0)})},function(){console.log("CANCEL")})},o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditFreshsalesAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshsalesAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.freshsalesConfiguration,account:o.freshsalesAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditFreshsalesAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshsalesAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.freshsalesConfiguration,account:o.freshsalesAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditFreshsalesAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshsalesAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.freshsalesConfiguration,account:o.freshsalesAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("FreshsalesAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_FRESHSALESCONFIGURATION",g.freshsalesConfiguration=angular.copy(l),g.configurations=r,g.newFreshsalesConfiguration=!1,g.freshsalesConfiguration||(g.freshsalesConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_FRESHSALESCONFIGURATION",g.newFreshsalesConfiguration=!0),g.addNewFreshsalesConfiguration=function(){g.errors=[],d.intFreshsalesAccount.addConfiguration({id:n.params.id},g.freshsalesConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"FreshsalesConfiguration properly created",msg:g.freshsalesConfiguration.name?g.freshsalesConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshsalesConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshsalesConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveFreshsalesConfiguration=function(){g.errors=[],d.intFreshsalesConfiguration.update({id:g.freshsalesConfiguration.id},g.freshsalesConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"FreshsalesConfiguration properly saved!",msg:g.freshsalesConfiguration.name?g.freshsalesConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshsalesConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshsalesConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteFreshsalesConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The freshsalesConfiguration will be deleted.").ariaLabel("Delete FreshsalesConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intFreshsalesConfiguration.delete({id:g.freshsalesConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.freshsalesConfiguration.id}),o.success({title:"FreshsalesConfiguration properly deleted!",msg:(g.freshsalesConfiguration.name||"freshsalesConfiguration")+" has been deleted!"}),v(g.freshsalesConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshsalesConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshsalesConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","freshsalesConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditFreshsalesConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intFreshsalesField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intFreshsalesField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intFreshsalesField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceDialReportColumns.push("recordingURL")}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETVARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.intFreshsalesAccount.getFields({id:l.id,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditFreshsalesAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.freshsalesAccount=c||e.params.freshsalesAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoFreshsalesAccounts=function(){e.go("app.integrations.freshsalesAccounts",{},{reload:"app.integrations.freshsalesAccounts"})},u.saveFreshsalesAccount=function(){r.intFreshsalesAccount.update({id:u.freshsalesAccount.id},u.freshsalesAccount).$promise.then(function(){l.success({title:"FreshsalesAccount updated!",msg:u.freshsalesAccount.name?u.freshsalesAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintFreshsalesAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","freshsalesAccount","userProfileSection"],angular.module("app.integrations").controller("FreshsalesAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.freshsalesAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="freshsalesAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedFreshsalesAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.integrations.freshsalesAccounts.edit",{id:e.id,freshsalesAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intFreshsalesAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"FreshsalesAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"FreshsalesAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("freshsalesAccount")+"?").htmlContent("<b>"+(e.name||"freshsalesAccount")+"</b> will be deleted.").ariaLabel("delete freshsalesAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getFreshsalesAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intFreshsalesAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="FreshsalesAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditFreshsalesAccount=function(e,n){i.show({controller:"CreateOrEditFreshsalesAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshsalesAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{freshsalesAccount:n,freshsalesAccounts:f.freshsalesAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteFreshsalesAccount=y,f.exportSelectedFreshsalesAccounts=function(){var e=angular.copy(f.selectedFreshsalesAccounts);return f.selectedFreshsalesAccounts=[],e},f.deleteSelectedFreshsalesAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected freshsalesAccounts?").htmlContent("<b>"+f.selectedFreshsalesAccounts.length+" selected</b> will be deleted.").ariaLabel("delete FreshsalesAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedFreshsalesAccounts.forEach(function(e){y(e)}),f.selectedFreshsalesAccounts=[]})},f.deselectFreshsalesAccounts=function(){f.selectedFreshsalesAccounts=[]},f.selectAllFreshsalesAccounts=function(){f.selectedFreshsalesAccounts=f.freshsalesAccounts.rows};var b=!0,A=1;function E(e){f.freshsalesAccounts=e||{count:0,rows:[]}}function y(e){m.intFreshsalesAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.freshsalesAccounts.rows,{id:e.id}),f.freshsalesAccounts.count-=1,f.freshsalesAccounts.rows.length||f.getFreshsalesAccounts(),p.success({title:_.startCase("FreshsalesAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintFreshsalesAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintFreshsalesAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getFreshsalesAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","freshsalesAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("FreshsalesAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_SALESFORCEACCOUNT",g.salesforceAccount=angular.copy(l),g.salesforceAccounts=r,g.newSalesforceAccount=!1,g.salesforceAccount||(g.salesforceAccount={type:"integrationTab",serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_SALESFORCEACCOUNT",g.newSalesforceAccount=!0),g.addNewSalesforceAccount=function(){g.errors=[],d.intSalesforceAccount.save(g.salesforceAccount).$promise.then(function(e){g.salesforceAccounts.unshift(e.toJSON()),o.success({title:"SalesforceAccount properly created",msg:g.salesforceAccount.name?g.salesforceAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSalesforceAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSalesforceAccount=function(){g.errors=[],d.intSalesforceAccount.update({id:g.salesforceAccount.id},g.salesforceAccount).$promise.then(function(e){var n=_.find(g.salesforceAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"SalesforceAccount properly saved!",msg:g.salesforceAccount.name?g.salesforceAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSalesforceAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSalesforceAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The salesforceAccount will be deleted.").ariaLabel("Delete SalesforceAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intSalesforceAccount.delete({id:g.salesforceAccount.id}).$promise.then(function(){_.remove(g.salesforceAccounts,{id:g.salesforceAccount.id}),o.success({title:"SalesforceAccount properly deleted!",msg:(g.salesforceAccount.name||"salesforceAccount")+" has been deleted!"}),v(g.salesforceAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSalesforceAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","salesforceAccounts","salesforceAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditSalesforceAccountDialogController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function n(){return"Case"===o.salesforceConfiguration.ticketType&&("lead"===o.salesforceConfiguration.moduleCreate||_.includes(["lead","contact_lead","account_contact_lead"],o.salesforceConfiguration.moduleSearch))}function r(){return _.includes(["lead","contact_lead","account_contact_lead"],o.salesforceConfiguration.moduleSearch)}function l(){return _.includes(["contact","contact_lead","account_contact_lead"],o.salesforceConfiguration.moduleSearch)}function d(){return _.includes(["account","account_contact_lead"],o.salesforceConfiguration.moduleSearch)}function c(){return i.intSalesforceConfiguration.update({id:o.salesforceConfiguration.id},o.salesforceConfiguration).$promise.then(function(){s.success({title:"Module updated!",msg:"Module has been updated!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function m(e){i.intSalesforceField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function u(e){i.intSalesforceField.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function p(e){i.intSalesforceField.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.salesforceAccount={},o.salesforceConfiguration={},o.configurations=[],o.selectedSalesforceConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.salesforceAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intSalesforceAccount.getConfigurations({id:o.salesforceAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getSalesforceConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getSalesforceConfiguration=function(e){o.salesforceConfiguration=o.configurations[e],o.salesforceConfiguration.isLead=n(),o.salesforceConfiguration.isLeadSearch=r(),o.salesforceConfiguration.isContactSearch=l(),o.salesforceConfiguration.isAccountSearch=d(),o.selectedSalesforceConfiguration=e,i.intSalesforceConfiguration.getSubjects({id:o.salesforceConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intSalesforceConfiguration.getDescriptions({id:o.salesforceConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intSalesforceConfiguration.getFields({id:o.salesforceConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditSalesforceConfiguration=function(e,n){a.show({controller:"CreateOrEditSalesforceConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{salesforceConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getSalesforceConfiguration(0)})},o.deleteSalesforceConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the salesforceConfiguration?").htmlContent("<b>"+(n.name||"salesforceConfiguration")+"</b> will be deleted.").ariaLabel("delete salesforceConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intSalesforceConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"SalesforceConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getSalesforceConfiguration(0)})},function(){console.log("CANCEL")})},o.selectChangedAdvanced=function(){o.salesforceConfiguration.isLead=n(),o.salesforceConfiguration.isLeadSearch=r(),o.salesforceConfiguration.isContactSearch=l(),o.salesforceConfiguration.isAccountSearch=d(),c()},o.salesforceConfiguration.isLead=!1,o.salesforceConfiguration.isLeadSearch=!1,o.salesforceConfiguration.isContactSearch=!1,o.salesforceConfiguration.isAccountSearch=!1,o.checkIsLead=n,o.checkIsLeadSearch=r,o.checkIsContactSearch=l,o.checkIsAccountSearch=d,o.saveSalesforceConfiguration=c,o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditSalesforceAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.salesforceConfiguration,account:o.salesforceAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){m(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){m(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditSalesforceAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.salesforceConfiguration,account:o.salesforceAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){u(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){u(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditSalesforceAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.salesforceConfiguration,account:o.salesforceAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){p(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){p(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("SalesforceAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_SALESFORCECONFIGURATION",g.salesforceConfiguration=angular.copy(l),g.configurations=r,g.newSalesforceConfiguration=!1,g.salesforceConfiguration||(g.salesforceConfiguration={channel:"voice",type:"inbound",ticketType:"Task"},g.title="INTEGRATIONS.NEW_SALESFORCECONFIGURATION",g.newSalesforceConfiguration=!0),g.addNewSalesforceConfiguration=function(){g.errors=[],d.intSalesforceAccount.addConfiguration({id:n.params.id},g.salesforceConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"SalesforceConfiguration properly created",msg:g.salesforceConfiguration.name?g.salesforceConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSalesforceConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSalesforceConfiguration=function(){g.errors=[],d.intSalesforceConfiguration.update({id:g.salesforceConfiguration.id},g.salesforceConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"SalesforceConfiguration properly saved!",msg:g.salesforceConfiguration.name?g.salesforceConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSalesforceConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSalesforceConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The salesforceConfiguration will be deleted.").ariaLabel("Delete SalesforceConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intSalesforceConfiguration.delete({id:g.salesforceConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.salesforceConfiguration.id}),o.success({title:"SalesforceConfiguration properly deleted!",msg:(g.salesforceConfiguration.name||"salesforceConfiguration")+" has been deleted!"}),v(g.salesforceConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSalesforceConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","salesforceConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditSalesforceConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intSalesforceField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intSalesforceField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intSalesforceField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceDialReportColumns.push("recordingURL")}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETVARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.intSalesforceAccount.getFields({id:l.id,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditSalesforceAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.salesforceAccount=c||e.params.salesforceAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoSalesforceAccounts=function(){e.go("app.integrations.salesforceAccounts",{},{reload:"app.integrations.salesforceAccounts"})},u.saveSalesforceAccount=function(){r.intSalesforceAccount.update({id:u.salesforceAccount.id},u.salesforceAccount).$promise.then(function(){l.success({title:"SalesforceAccount updated!",msg:u.salesforceAccount.name?u.salesforceAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintSalesforceAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","salesforceAccount","userProfileSection"],angular.module("app.integrations").controller("SalesforceAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.salesforceAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="salesforceAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedSalesforceAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,type,username,remoteUri,password,clientId,clientSecret,securityToken,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.arraytype=_.keyBy([{option:"Integration_Tab",value:"'integrationTab'"},{option:"New_Tab",value:"'newTab'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.integrations.salesforceAccounts.edit",{id:e.id,salesforceAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intSalesforceAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"SalesforceAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"SalesforceAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("salesforceAccount")+"?").htmlContent("<b>"+(e.name||"salesforceAccount")+"</b> will be deleted.").ariaLabel("delete salesforceAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getSalesforceAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intSalesforceAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="SalesforceAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditSalesforceAccount=function(e,n){i.show({controller:"CreateOrEditSalesforceAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{salesforceAccount:n,salesforceAccounts:f.salesforceAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteSalesforceAccount=y,f.exportSelectedSalesforceAccounts=function(){var e=angular.copy(f.selectedSalesforceAccounts);return f.selectedSalesforceAccounts=[],e},f.deleteSelectedSalesforceAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected salesforceAccounts?").htmlContent("<b>"+f.selectedSalesforceAccounts.length+" selected</b> will be deleted.").ariaLabel("delete SalesforceAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedSalesforceAccounts.forEach(function(e){y(e)}),f.selectedSalesforceAccounts=[]})},f.deselectSalesforceAccounts=function(){f.selectedSalesforceAccounts=[]},f.selectAllSalesforceAccounts=function(){f.selectedSalesforceAccounts=f.salesforceAccounts.rows};var b=!0,A=1;function E(e){f.salesforceAccounts=e||{count:0,rows:[]}}function y(e){m.intSalesforceAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.salesforceAccounts.rows,{id:e.id}),f.salesforceAccounts.count-=1,f.salesforceAccounts.rows.length||f.getSalesforceAccounts(),p.success({title:_.startCase("SalesforceAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintSalesforceAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintSalesforceAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getSalesforceAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","salesforceAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("SalesforceAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_SERVICENOWACCOUNT",g.servicenowAccount=angular.copy(l),g.servicenowAccounts=r,g.newServicenowAccount=!1,g.servicenowAccount||(g.servicenowAccount={serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_SERVICENOWACCOUNT",g.newServicenowAccount=!0),g.addNewServicenowAccount=function(){g.errors=[],d.intServicenowAccount.save(g.servicenowAccount).$promise.then(function(e){g.servicenowAccounts.unshift(e.toJSON()),o.success({title:"ServicenowAccount properly created",msg:g.servicenowAccount.name?g.servicenowAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intServicenowAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intServicenowAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveServicenowAccount=function(){g.errors=[],d.intServicenowAccount.update({id:g.servicenowAccount.id},g.servicenowAccount).$promise.then(function(e){var n=_.find(g.servicenowAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"ServicenowAccount properly saved!",msg:g.servicenowAccount.name?g.servicenowAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intServicenowAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intServicenowAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteServicenowAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The servicenowAccount will be deleted.").ariaLabel("Delete ServicenowAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intServicenowAccount.delete({id:g.servicenowAccount.id}).$promise.then(function(){_.remove(g.servicenowAccounts,{id:g.servicenowAccount.id}),o.success({title:"ServicenowAccount properly deleted!",msg:(g.servicenowAccount.name||"servicenowAccount")+" has been deleted!"}),v(g.servicenowAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intServicenowAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intServicenowAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","servicenowAccounts","servicenowAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditServicenowAccountDialogController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intServicenowField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intServicenowField.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intServicenowField.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.servicenowAccount={},o.servicenowConfiguration={},o.configurations=[],o.selectedServicenowConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.servicenowAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intServicenowAccount.getConfigurations({id:o.servicenowAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getServicenowConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getServicenowConfiguration=function(e){o.servicenowConfiguration=o.configurations[e],o.selectedServicenowConfiguration=e,i.intServicenowConfiguration.getSubjects({id:o.servicenowConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intServicenowConfiguration.getDescriptions({id:o.servicenowConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intServicenowConfiguration.getFields({id:o.servicenowConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditServicenowConfiguration=function(e,n){a.show({controller:"CreateOrEditServicenowConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/servicenowAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{servicenowConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getServicenowConfiguration(0)})},o.deleteServicenowConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the servicenowConfiguration?").htmlContent("<b>"+(n.name||"servicenowConfiguration")+"</b> will be deleted.").ariaLabel("delete servicenowConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intServicenowConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"ServicenowConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getServicenowConfiguration(0)})},function(){console.log("CANCEL")})},o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditServicenowAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/servicenowAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.servicenowConfiguration,account:o.servicenowAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditServicenowAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/servicenowAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.servicenowConfiguration,account:o.servicenowAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditServicenowAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/servicenowAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.servicenowConfiguration,account:o.servicenowAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("ServicenowAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_SERVICENOWCONFIGURATION",g.servicenowConfiguration=angular.copy(l),g.configurations=r,g.newServicenowConfiguration=!1,g.servicenowConfiguration||(g.servicenowConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_SERVICENOWCONFIGURATION",g.newServicenowConfiguration=!0),g.addNewServicenowConfiguration=function(){g.errors=[],d.intServicenowAccount.addConfiguration({id:n.params.id},g.servicenowConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"ServicenowConfiguration properly created",msg:g.servicenowConfiguration.name?g.servicenowConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intServicenowConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intServicenowConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveServicenowConfiguration=function(){g.errors=[],d.intServicenowConfiguration.update({id:g.servicenowConfiguration.id},g.servicenowConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"ServicenowConfiguration properly saved!",msg:g.servicenowConfiguration.name?g.servicenowConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intServicenowConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intServicenowConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteServicenowConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The servicenowConfiguration will be deleted.").ariaLabel("Delete ServicenowConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intServicenowConfiguration.delete({id:g.servicenowConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.servicenowConfiguration.id}),o.success({title:"ServicenowConfiguration properly deleted!",msg:(g.servicenowConfiguration.name||"servicenowConfiguration")+" has been deleted!"}),v(g.servicenowConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intServicenowConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intServicenowConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","servicenowConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditServicenowConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intServicenowField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intServicenowField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intServicenowField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceDialReportColumns.push("recordingURL")}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETVARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.intServicenowAccount.getFields({id:l.id,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditServicenowAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.servicenowAccount=c||e.params.servicenowAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoServicenowAccounts=function(){e.go("app.integrations.servicenowAccounts",{},{reload:"app.integrations.servicenowAccounts"})},u.saveServicenowAccount=function(){r.intServicenowAccount.update({id:u.servicenowAccount.id},u.servicenowAccount).$promise.then(function(){l.success({title:"ServicenowAccount updated!",msg:u.servicenowAccount.name?u.servicenowAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintServicenowAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","servicenowAccount","userProfileSection"],angular.module("app.integrations").controller("ServicenowAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.servicenowAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="servicenowAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedServicenowAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,username,password,email,remoteUri,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.integrations.servicenowAccounts.edit",{id:e.id,servicenowAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intServicenowAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"ServicenowAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"ServicenowAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("servicenowAccount")+"?").htmlContent("<b>"+(e.name||"servicenowAccount")+"</b> will be deleted.").ariaLabel("delete servicenowAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getServicenowAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intServicenowAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ServicenowAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditServicenowAccount=function(e,n){i.show({controller:"CreateOrEditServicenowAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/servicenowAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{servicenowAccount:n,servicenowAccounts:f.servicenowAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteServicenowAccount=y,f.exportSelectedServicenowAccounts=function(){var e=angular.copy(f.selectedServicenowAccounts);return f.selectedServicenowAccounts=[],e},f.deleteSelectedServicenowAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected servicenowAccounts?").htmlContent("<b>"+f.selectedServicenowAccounts.length+" selected</b> will be deleted.").ariaLabel("delete ServicenowAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedServicenowAccounts.forEach(function(e){y(e)}),f.selectedServicenowAccounts=[]})},f.deselectServicenowAccounts=function(){f.selectedServicenowAccounts=[]},f.selectAllServicenowAccounts=function(){f.selectedServicenowAccounts=f.servicenowAccounts.rows};var b=!0,A=1;function E(e){f.servicenowAccounts=e||{count:0,rows:[]}}function y(e){m.intServicenowAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.servicenowAccounts.rows,{id:e.id}),f.servicenowAccounts.count-=1,f.servicenowAccounts.rows.length||f.getServicenowAccounts(),p.success({title:_.startCase("ServicenowAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintServicenowAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintServicenowAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getServicenowAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","servicenowAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("ServicenowAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_SUGARCRMACCOUNT",g.sugarcrmAccount=angular.copy(l),g.sugarcrmAccounts=r,g.newSugarcrmAccount=!1,g.sugarcrmAccount||(g.sugarcrmAccount={serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_SUGARCRMACCOUNT",g.newSugarcrmAccount=!0),g.addNewSugarcrmAccount=function(){g.errors=[],d.intSugarcrmAccount.save(g.sugarcrmAccount).$promise.then(function(e){g.sugarcrmAccounts.unshift(e.toJSON()),o.success({title:"SugarcrmAccount properly created",msg:g.sugarcrmAccount.name?g.sugarcrmAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSugarcrmAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSugarcrmAccount=function(){g.errors=[],d.intSugarcrmAccount.update({id:g.sugarcrmAccount.id},g.sugarcrmAccount).$promise.then(function(e){var n=_.find(g.sugarcrmAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"SugarcrmAccount properly saved!",msg:g.sugarcrmAccount.name?g.sugarcrmAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSugarcrmAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSugarcrmAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The sugarcrmAccount will be deleted.").ariaLabel("Delete SugarcrmAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intSugarcrmAccount.delete({id:g.sugarcrmAccount.id}).$promise.then(function(){_.remove(g.sugarcrmAccounts,{id:g.sugarcrmAccount.id}),o.success({title:"SugarcrmAccount properly deleted!",msg:(g.sugarcrmAccount.name||"sugarcrmAccount")+" has been deleted!"}),v(g.sugarcrmAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSugarcrmAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","sugarcrmAccounts","sugarcrmAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditSugarcrmAccountDialogController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intSugarcrmField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intSugarcrmField.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intSugarcrmField.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.sugarcrmAccount={},o.sugarcrmConfiguration={},o.configurations=[],o.selectedSugarcrmConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.sugarcrmAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intSugarcrmAccount.getConfigurations({id:o.sugarcrmAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getSugarcrmConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getSugarcrmConfiguration=function(e){o.sugarcrmConfiguration=o.configurations[e],o.selectedSugarcrmConfiguration=e,i.intSugarcrmConfiguration.getSubjects({id:o.sugarcrmConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intSugarcrmConfiguration.getDescriptions({id:o.sugarcrmConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intSugarcrmConfiguration.getFields({id:o.sugarcrmConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditSugarcrmConfiguration=function(e,n){a.show({controller:"CreateOrEditSugarcrmConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{sugarcrmConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getSugarcrmConfiguration(0)})},o.deleteSugarcrmConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the sugarcrmConfiguration?").htmlContent("<b>"+(n.name||"sugarcrmConfiguration")+"</b> will be deleted.").ariaLabel("delete sugarcrmConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intSugarcrmConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"SugarcrmConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getSugarcrmConfiguration(0)})},function(){console.log("CANCEL")})},o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditSugarcrmAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.sugarcrmConfiguration,account:o.sugarcrmAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditSugarcrmAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.sugarcrmConfiguration,account:o.sugarcrmAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditSugarcrmAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.sugarcrmConfiguration,account:o.sugarcrmAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("SugarcrmAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_SUGARCRMCONFIGURATION",g.sugarcrmConfiguration=angular.copy(l),g.configurations=r,g.newSugarcrmConfiguration=!1,g.sugarcrmConfiguration||(g.sugarcrmConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_SUGARCRMCONFIGURATION",g.newSugarcrmConfiguration=!0),g.addNewSugarcrmConfiguration=function(){g.errors=[],d.intSugarcrmAccount.addConfiguration({id:n.params.id},g.sugarcrmConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"SugarcrmConfiguration properly created",msg:g.sugarcrmConfiguration.name?g.sugarcrmConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSugarcrmConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSugarcrmConfiguration=function(){g.errors=[],d.intSugarcrmConfiguration.update({id:g.sugarcrmConfiguration.id},g.sugarcrmConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"SugarcrmConfiguration properly saved!",msg:g.sugarcrmConfiguration.name?g.sugarcrmConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSugarcrmConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSugarcrmConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The sugarcrmConfiguration will be deleted.").ariaLabel("Delete SugarcrmConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intSugarcrmConfiguration.delete({id:g.sugarcrmConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.sugarcrmConfiguration.id}),o.success({title:"SugarcrmConfiguration properly deleted!",msg:(g.sugarcrmConfiguration.name||"sugarcrmConfiguration")+" has been deleted!"}),v(g.sugarcrmConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSugarcrmConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","sugarcrmConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditSugarcrmConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intSugarcrmField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intSugarcrmField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intSugarcrmField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceDialReportColumns.push("recordingURL")}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETVARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.intSugarcrmAccount.getFields({id:l.id,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditSugarcrmAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.sugarcrmAccount=c||e.params.sugarcrmAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoSugarcrmAccounts=function(){e.go("app.integrations.sugarcrmAccounts",{},{reload:"app.integrations.sugarcrmAccounts"})},u.saveSugarcrmAccount=function(){r.intSugarcrmAccount.update({id:u.sugarcrmAccount.id},u.sugarcrmAccount).$promise.then(function(){l.success({title:"SugarcrmAccount updated!",msg:u.sugarcrmAccount.name?u.sugarcrmAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintSugarcrmAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","sugarcrmAccount","userProfileSection"],angular.module("app.integrations").controller("SugarcrmAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.sugarcrmAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="sugarcrmAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedSugarcrmAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,username,remoteUri,password,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.integrations.sugarcrmAccounts.edit",{id:e.id,sugarcrmAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intSugarcrmAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"SugarcrmAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"SugarcrmAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("sugarcrmAccount")+"?").htmlContent("<b>"+(e.name||"sugarcrmAccount")+"</b> will be deleted.").ariaLabel("delete sugarcrmAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getSugarcrmAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intSugarcrmAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="SugarcrmAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditSugarcrmAccount=function(e,n){i.show({controller:"CreateOrEditSugarcrmAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{sugarcrmAccount:n,sugarcrmAccounts:f.sugarcrmAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteSugarcrmAccount=y,f.exportSelectedSugarcrmAccounts=function(){var e=angular.copy(f.selectedSugarcrmAccounts);return f.selectedSugarcrmAccounts=[],e},f.deleteSelectedSugarcrmAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected sugarcrmAccounts?").htmlContent("<b>"+f.selectedSugarcrmAccounts.length+" selected</b> will be deleted.").ariaLabel("delete SugarcrmAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedSugarcrmAccounts.forEach(function(e){y(e)}),f.selectedSugarcrmAccounts=[]})},f.deselectSugarcrmAccounts=function(){f.selectedSugarcrmAccounts=[]},f.selectAllSugarcrmAccounts=function(){f.selectedSugarcrmAccounts=f.sugarcrmAccounts.rows};var b=!0,A=1;function E(e){f.sugarcrmAccounts=e||{count:0,rows:[]}}function y(e){m.intSugarcrmAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.sugarcrmAccounts.rows,{id:e.id}),f.sugarcrmAccounts.count-=1,f.sugarcrmAccounts.rows.length||f.getSugarcrmAccounts(),p.success({title:_.startCase("SugarcrmAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintSugarcrmAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintSugarcrmAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getSugarcrmAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","sugarcrmAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("SugarcrmAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_VTIGERACCOUNT",g.vtigerAccount=angular.copy(l),g.vtigerAccounts=r,g.newVtigerAccount=!1,g.vtigerAccount||(g.vtigerAccount={serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_VTIGERACCOUNT",g.newVtigerAccount=!0),g.addNewVtigerAccount=function(){g.errors=[],d.intVtigerAccount.save(g.vtigerAccount).$promise.then(function(e){g.vtigerAccounts.unshift(e.toJSON()),o.success({title:"VtigerAccount properly created",msg:g.vtigerAccount.name?g.vtigerAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intVtigerAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intVtigerAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveVtigerAccount=function(){g.errors=[],d.intVtigerAccount.update({id:g.vtigerAccount.id},g.vtigerAccount).$promise.then(function(e){var n=_.find(g.vtigerAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"VtigerAccount properly saved!",msg:g.vtigerAccount.name?g.vtigerAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intVtigerAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intVtigerAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteVtigerAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The vtigerAccount will be deleted.").ariaLabel("Delete VtigerAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intVtigerAccount.delete({id:g.vtigerAccount.id}).$promise.then(function(){_.remove(g.vtigerAccounts,{id:g.vtigerAccount.id}),o.success({title:"VtigerAccount properly deleted!",msg:(g.vtigerAccount.name||"vtigerAccount")+" has been deleted!"}),v(g.vtigerAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intVtigerAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intVtigerAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","vtigerAccounts","vtigerAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditVtigerAccountDialogController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intVtigerField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intVtigerField.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intVtigerField.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.vtigerAccount={},o.vtigerConfiguration={},o.configurations=[],o.selectedVtigerConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.vtigerAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intVtigerAccount.getConfigurations({id:o.vtigerAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getVtigerConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getVtigerConfiguration=function(e){o.vtigerConfiguration=o.configurations[e],o.selectedVtigerConfiguration=e,i.intVtigerConfiguration.getSubjects({id:o.vtigerConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intVtigerConfiguration.getDescriptions({id:o.vtigerConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intVtigerConfiguration.getFields({id:o.vtigerConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditVtigerConfiguration=function(e,n){a.show({controller:"CreateOrEditVtigerConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/vtigerAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{vtigerConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getVtigerConfiguration(0)})},o.deleteVtigerConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the vtigerConfiguration?").htmlContent("<b>"+(n.name||"vtigerConfiguration")+"</b> will be deleted.").ariaLabel("delete vtigerConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intVtigerConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"VtigerConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getVtigerConfiguration(0)})},function(){console.log("CANCEL")})},o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditVtigerAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/vtigerAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.vtigerConfiguration,account:o.vtigerAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditVtigerAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/vtigerAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.vtigerConfiguration,account:o.vtigerAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditVtigerAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/vtigerAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.vtigerConfiguration,account:o.vtigerAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("VtigerAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_VTIGERCONFIGURATION",g.vtigerConfiguration=angular.copy(l),g.configurations=r,g.newVtigerConfiguration=!1,g.vtigerConfiguration||(g.vtigerConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_VTIGERCONFIGURATION",g.newVtigerConfiguration=!0),g.addNewVtigerConfiguration=function(){g.errors=[],d.intVtigerAccount.addConfiguration({id:n.params.id},g.vtigerConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"VtigerConfiguration properly created",msg:g.vtigerConfiguration.name?g.vtigerConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intVtigerConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intVtigerConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveVtigerConfiguration=function(){g.errors=[],d.intVtigerConfiguration.update({id:g.vtigerConfiguration.id},g.vtigerConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"VtigerConfiguration properly saved!",msg:g.vtigerConfiguration.name?g.vtigerConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intVtigerConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intVtigerConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteVtigerConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The vtigerConfiguration will be deleted.").ariaLabel("Delete VtigerConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intVtigerConfiguration.delete({id:g.vtigerConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.vtigerConfiguration.id}),o.success({title:"VtigerConfiguration properly deleted!",msg:(g.vtigerConfiguration.name||"vtigerConfiguration")+" has been deleted!"}),v(g.vtigerConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intVtigerConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intVtigerConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","vtigerConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditVtigerConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intVtigerField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intVtigerField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intVtigerField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceDialReportColumns.push("recordingURL")}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETVARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.intVtigerAccount.getFields({id:l.id,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditVtigerAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.vtigerAccount=c||e.params.vtigerAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoVtigerAccounts=function(){e.go("app.integrations.vtigerAccounts",{},{reload:"app.integrations.vtigerAccounts"})},u.saveVtigerAccount=function(){r.intVtigerAccount.update({id:u.vtigerAccount.id},u.vtigerAccount).$promise.then(function(){l.success({title:"VtigerAccount updated!",msg:u.vtigerAccount.name?u.vtigerAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintVtigerAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","vtigerAccount","userProfileSection"],angular.module("app.integrations").controller("VtigerAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.vtigerAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="vtigerAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedVtigerAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,description,username,accessKey,remoteUri,serverUrl",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.integrations.vtigerAccounts.edit",{id:e.id,vtigerAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intVtigerAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"VtigerAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"VtigerAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("vtigerAccount")+"?").htmlContent("<b>"+(e.name||"vtigerAccount")+"</b> will be deleted.").ariaLabel("delete vtigerAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getVtigerAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intVtigerAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="VtigerAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditVtigerAccount=function(e,n){i.show({controller:"CreateOrEditVtigerAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/vtigerAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{vtigerAccount:n,vtigerAccounts:f.vtigerAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteVtigerAccount=y,f.exportSelectedVtigerAccounts=function(){var e=angular.copy(f.selectedVtigerAccounts);return f.selectedVtigerAccounts=[],e},f.deleteSelectedVtigerAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected vtigerAccounts?").htmlContent("<b>"+f.selectedVtigerAccounts.length+" selected</b> will be deleted.").ariaLabel("delete VtigerAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedVtigerAccounts.forEach(function(e){y(e)}),f.selectedVtigerAccounts=[]})},f.deselectVtigerAccounts=function(){f.selectedVtigerAccounts=[]},f.selectAllVtigerAccounts=function(){f.selectedVtigerAccounts=f.vtigerAccounts.rows};var b=!0,A=1;function E(e){f.vtigerAccounts=e||{count:0,rows:[]}}function y(e){m.intVtigerAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.vtigerAccounts.rows,{id:e.id}),f.vtigerAccounts.count-=1,f.vtigerAccounts.rows.length||f.getVtigerAccounts(),p.success({title:_.startCase("VtigerAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintVtigerAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintVtigerAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getVtigerAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","vtigerAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("VtigerAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_ZENDESKACCOUNT",g.zendeskAccount=angular.copy(l),g.zendeskAccounts=r,g.newZendeskAccount=!1,g.zendeskAccount||(g.zendeskAccount={type:"integrationTab",authType:"password",serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_ZENDESKACCOUNT",g.newZendeskAccount=!0),g.addNewZendeskAccount=function(){g.errors=[],d.intZendeskAccount.save(g.zendeskAccount).$promise.then(function(e){g.zendeskAccounts.unshift(e.toJSON()),o.success({title:"ZendeskAccount properly created",msg:g.zendeskAccount.name?g.zendeskAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZendeskAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveZendeskAccount=function(){g.errors=[],d.intZendeskAccount.update({id:g.zendeskAccount.id},g.zendeskAccount).$promise.then(function(e){var n=_.find(g.zendeskAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"ZendeskAccount properly saved!",msg:g.zendeskAccount.name?g.zendeskAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZendeskAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteZendeskAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The zendeskAccount will be deleted.").ariaLabel("Delete ZendeskAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intZendeskAccount.delete({id:g.zendeskAccount.id}).$promise.then(function(){_.remove(g.zendeskAccounts,{id:g.zendeskAccount.id}),o.success({title:"ZendeskAccount properly deleted!",msg:(g.zendeskAccount.name||"zendeskAccount")+" has been deleted!"}),v(g.zendeskAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZendeskAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","zendeskAccounts","zendeskAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditZendeskAccountDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intZendeskField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intZendeskField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intZendeskField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceDialReportColumns.push("recordingURL")}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETVARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.intZendeskAccount.getFields({id:l.id,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditZendeskAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.zendeskAccount=c||e.params.zendeskAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoZendeskAccounts=function(){e.go("app.integrations.zendeskAccounts",{},{reload:"app.integrations.zendeskAccounts"})},u.saveZendeskAccount=function(){r.intZendeskAccount.update({id:u.zendeskAccount.id},u.zendeskAccount).$promise.then(function(){l.success({title:"ZendeskAccount updated!",msg:u.zendeskAccount.name?u.zendeskAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintZendeskAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","zendeskAccount","userProfileSection"],angular.module("app.integrations").controller("ZendeskAccountController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intZendeskField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intZendeskField.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intZendeskField.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.zendeskAccount={},o.zendeskConfiguration={},o.zendeskConfigurations=[],o.selectedZendeskConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.zendeskAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intZendeskAccount.getConfigurations({id:o.zendeskAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.zendeskConfigurations=e.rows?e.rows:[],o.zendeskConfigurations.length&&o.getZendeskConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getZendeskConfiguration=function(e){o.zendeskConfiguration=o.zendeskConfigurations[e],o.selectedZendeskConfiguration=e,i.intZendeskConfiguration.getSubjects({id:o.zendeskConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intZendeskConfiguration.getDescriptions({id:o.zendeskConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intZendeskConfiguration.getFields({id:o.zendeskConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.intZendeskConfiguration.getTags({id:o.zendeskConfiguration.id}).$promise.then(function(e){o.selectedTags=e.rows?_.map(e.rows,"id"):[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditZendeskConfiguration=function(e,n){a.show({controller:"CreateOrEditZendeskConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/edit/zendeskConfigurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{zendeskConfiguration:n,zendeskConfigurations:o.zendeskConfigurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getZendeskConfiguration(0)})},o.deleteZendeskConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the zendeskConfiguration?").htmlContent("<b>"+(n.name||"zendeskConfiguration")+"</b> will be deleted.").ariaLabel("delete zendeskConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intZendeskConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.zendeskConfigurations,{id:n.id}),s.success({title:"ZendeskConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getZendeskConfiguration(0)})},function(){console.log("CANCEL")})},o.selectedTags=[],o.selectTagsChanged=function(e){i.intZendeskConfiguration.setTags({id:o.zendeskConfiguration.id,ids:o.selectedTags}).$promise.then(function(){s.success({title:"Tags set!",msg:"Tags has been set!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ADDTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})},i.tag.get({nolimit:!0,sort:"name"}).$promise.then(function(e){o.tags=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}),o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditZendeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.zendeskConfiguration,account:o.zendeskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditZendeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.zendeskConfiguration,account:o.zendeskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditZendeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.zendeskConfiguration,account:o.zendeskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("ZendeskAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_ZENDESKCONFIGURATION",g.zendeskConfiguration=angular.copy(l),g.zendeskConfigurations=r,g.newZendeskConfiguration=!1,g.zendeskConfiguration||(g.zendeskConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_ZENDESKCONFIGURATION",g.newZendeskConfiguration=!0),g.addNewZendeskConfiguration=function(){g.errors=[],d.intZendeskAccount.addConfiguration({id:n.params.id},g.zendeskConfiguration).$promise.then(function(e){g.zendeskConfigurations.unshift(e.toJSON()),o.success({title:"ZendeskConfiguration properly created",msg:g.zendeskConfiguration.name?g.zendeskConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZendeskConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveZendeskConfiguration=function(){g.errors=[],d.intZendeskConfiguration.update({id:g.zendeskConfiguration.id},g.zendeskConfiguration).$promise.then(function(e){var n=_.find(g.zendeskConfigurations,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"ZendeskConfiguration properly saved!",msg:g.zendeskConfiguration.name?g.zendeskConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZendeskConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteZendeskConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The zendeskConfiguration will be deleted.").ariaLabel("Delete ZendeskConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intZendeskConfiguration.delete({id:g.zendeskConfiguration.id}).$promise.then(function(){_.remove(g.zendeskConfigurations,{id:g.zendeskConfiguration.id}),o.success({title:"ZendeskConfiguration properly deleted!",msg:(g.zendeskConfiguration.name||"zendeskConfiguration")+" has been deleted!"}),v(g.zendeskConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZendeskConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","zendeskConfigurations","zendeskConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditZendeskConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.zendeskAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="zendeskAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedZendeskAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,type,username,remoteUri,authType,password,token,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.arraytype=_.keyBy([{option:"Integration_Tab",value:"'integrationTab'"},{option:"New_Tab",value:"'newTab'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayauthType=_.keyBy([{option:"Password",value:"'password'"},{option:"Token",value:"'token'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.integrations.zendeskAccounts.edit",{id:e.id,zendeskAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intZendeskAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"ZendeskAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"ZendeskAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("zendeskAccount")+"?").htmlContent("<b>"+(e.name||"zendeskAccount")+"</b> will be deleted.").ariaLabel("delete zendeskAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getZendeskAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intZendeskAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ZendeskAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditZendeskAccount=function(e,n){i.show({controller:"CreateOrEditZendeskAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{zendeskAccount:n,zendeskAccounts:f.zendeskAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteZendeskAccount=y,f.exportSelectedZendeskAccounts=function(){var e=angular.copy(f.selectedZendeskAccounts);return f.selectedZendeskAccounts=[],e},f.deleteSelectedZendeskAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected zendeskAccounts?").htmlContent("<b>"+f.selectedZendeskAccounts.length+" selected</b> will be deleted.").ariaLabel("delete ZendeskAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedZendeskAccounts.forEach(function(e){y(e)}),f.selectedZendeskAccounts=[]})},f.deselectZendeskAccounts=function(){f.selectedZendeskAccounts=[]},f.selectAllZendeskAccounts=function(){f.selectedZendeskAccounts=f.zendeskAccounts.rows};var b=!0,A=1;function E(e){f.zendeskAccounts=e||{count:0,rows:[]}}function y(e){m.intZendeskAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.zendeskAccounts.rows,{id:e.id}),f.zendeskAccounts.count-=1,f.zendeskAccounts.rows.length||f.getZendeskAccounts(),p.success({title:_.startCase("ZendeskAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintZendeskAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintZendeskAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getZendeskAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","zendeskAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("ZendeskAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_ZOHOACCOUNT",g.zohoAccount=angular.copy(l),g.zohoAccounts=r,g.newZohoAccount=!1,g.zohoAccount||(g.zohoAccount={host:"zoho.com",zone:"EU",serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_ZOHOACCOUNT",g.newZohoAccount=!0),g.addNewZohoAccount=function(){g.errors=[],d.intZohoAccount.save(g.zohoAccount).$promise.then(function(e){g.zohoAccounts.unshift(e.toJSON()),o.success({title:"ZohoAccount properly created",msg:g.zohoAccount.name?g.zohoAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZohoAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZohoAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveZohoAccount=function(){g.errors=[],d.intZohoAccount.update({id:g.zohoAccount.id},g.zohoAccount).$promise.then(function(e){var n=_.find(g.zohoAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"ZohoAccount properly saved!",msg:g.zohoAccount.name?g.zohoAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZohoAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZohoAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteZohoAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The zohoAccount will be deleted.").ariaLabel("Delete ZohoAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intZohoAccount.delete({id:g.zohoAccount.id}).$promise.then(function(){_.remove(g.zohoAccounts,{id:g.zohoAccount.id}),o.success({title:"ZohoAccount properly deleted!",msg:(g.zohoAccount.name||"zohoAccount")+" has been deleted!"}),v(g.zohoAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZohoAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZohoAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","zohoAccounts","zohoAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditZohoAccountDialogController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intZohoField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intZohoField.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intZohoField.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.zohoAccount={},o.zohoConfiguration={},o.configurations=[],o.selectedZohoConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.zohoAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intZohoAccount.getConfigurations({id:o.zohoAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getZohoConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getZohoConfiguration=function(e){o.zohoConfiguration=o.configurations[e],o.selectedZohoConfiguration=e,i.intZohoConfiguration.getSubjects({id:o.zohoConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intZohoConfiguration.getDescriptions({id:o.zohoConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intZohoConfiguration.getFields({id:o.zohoConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditZohoConfiguration=function(e,n){a.show({controller:"CreateOrEditZohoConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zohoAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{zohoConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getZohoConfiguration(0)})},o.deleteZohoConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the zohoConfiguration?").htmlContent("<b>"+(n.name||"zohoConfiguration")+"</b> will be deleted.").ariaLabel("delete zohoConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intZohoConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"ZohoConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getZohoConfiguration(0)})},function(){console.log("CANCEL")})},o.selectChangedAdvanced=function(){i.intZohoConfiguration.update({id:o.zohoConfiguration.id},o.zohoConfiguration).$promise.then(function(){s.success({title:"Module updated!",msg:"Module has been updated!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditZohoAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zohoAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.zohoConfiguration,account:o.zohoAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditZohoAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zohoAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.zohoConfiguration,account:o.zohoAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditZohoAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zohoAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.zohoConfiguration,account:o.zohoAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("ZohoAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_ZOHOCONFIGURATION",g.zohoConfiguration=angular.copy(l),g.configurations=r,g.newZohoConfiguration=!1,g.zohoConfiguration||(g.zohoConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_ZOHOCONFIGURATION",g.newZohoConfiguration=!0),g.addNewZohoConfiguration=function(){g.errors=[],d.intZohoAccount.addConfiguration({id:n.params.id},g.zohoConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"ZohoConfiguration properly created",msg:g.zohoConfiguration.name?g.zohoConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZohoConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZohoConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveZohoConfiguration=function(){g.errors=[],d.intZohoConfiguration.update({id:g.zohoConfiguration.id},g.zohoConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"ZohoConfiguration properly saved!",msg:g.zohoConfiguration.name?g.zohoConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZohoConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZohoConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteZohoConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The zohoConfiguration will be deleted.").ariaLabel("Delete ZohoConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intZohoConfiguration.delete({id:g.zohoConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.zohoConfiguration.id}),o.success({title:"ZohoConfiguration properly deleted!",msg:(g.zohoConfiguration.name||"zohoConfiguration")+" has been deleted!"}),v(g.zohoConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZohoConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZohoConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","zohoConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditZohoConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intZohoField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intZohoField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intZohoField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceDialReportColumns.push("recordingURL")}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETVARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.intZohoAccount.getFields({id:l.id,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditZohoAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.zohoAccount=c||e.params.zohoAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoZohoAccounts=function(){e.go("app.integrations.zohoAccounts",{},{reload:"app.integrations.zohoAccounts"})},u.saveZohoAccount=function(){r.intZohoAccount.update({id:u.zohoAccount.id},u.zohoAccount).$promise.then(function(){l.success({title:"ZohoAccount updated!",msg:u.zohoAccount.name?u.zohoAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintZohoAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","zohoAccount","userProfileSection"],angular.module("app.integrations").controller("ZohoAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.zohoAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="zohoAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedZohoAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,host,zone,clientId,clientSecret,code,refreshToken,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.arrayhost=_.keyBy([{option:"zoho.com",value:"'zoho.com'"},{option:"zoho.eu",value:"'zoho.eu'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayzone=_.keyBy([{option:"US",value:"'US'"},{option:"AU",value:"'AU'"},{option:"EU",value:"'EU'"},{option:"IN",value:"'IN'"},{option:"CN",value:"'CN'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.integrations.zohoAccounts.edit",{id:e.id,zohoAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intZohoAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"ZohoAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"ZohoAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("zohoAccount")+"?").htmlContent("<b>"+(e.name||"zohoAccount")+"</b> will be deleted.").ariaLabel("delete zohoAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getZohoAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intZohoAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ZohoAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditZohoAccount=function(e,n){i.show({controller:"CreateOrEditZohoAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zohoAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{zohoAccount:n,zohoAccounts:f.zohoAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteZohoAccount=y,f.exportSelectedZohoAccounts=function(){var e=angular.copy(f.selectedZohoAccounts);return f.selectedZohoAccounts=[],e},f.deleteSelectedZohoAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected zohoAccounts?").htmlContent("<b>"+f.selectedZohoAccounts.length+" selected</b> will be deleted.").ariaLabel("delete ZohoAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedZohoAccounts.forEach(function(e){y(e)}),f.selectedZohoAccounts=[]})},f.deselectZohoAccounts=function(){f.selectedZohoAccounts=[]},f.selectAllZohoAccounts=function(){f.selectedZohoAccounts=f.zohoAccounts.rows};var b=!0,A=1;function E(e){f.zohoAccounts=e||{count:0,rows:[]}}function y(e){m.intZohoAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.zohoAccounts.rows,{id:e.id}),f.zohoAccounts.count-=1,f.zohoAccounts.rows.length||f.getZohoAccounts(),p.success({title:_.startCase("ZohoAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintZohoAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintZohoAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getZohoAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","zohoAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("ZohoAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="JSCRIPTY.EDIT_PROJECT",g.project=angular.copy(l),g.projects=r,g.newProject=!1,g.project||(g.project={enableUncompleteSave:!0,sendUnpauseOnSubmit:!0},g.title="JSCRIPTY.NEW_PROJECT",g.newProject=!0),g.addNewProject=function(){g.errors=[],d.jscriptyProject.save(g.project).$promise.then(function(e){g.projects.unshift(e.toJSON()),o.success({title:"Project properly created",msg:g.project.name?g.project.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.jscriptyProject.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.jscriptyProject.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveProject=function(){g.errors=[],d.jscriptyProject.update({id:g.project.id},g.project).$promise.then(function(e){var n=_.find(g.projects,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Project properly saved!",msg:g.project.name?g.project.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.jscriptyProject.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.jscriptyProject.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteProject=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The project will be deleted.").ariaLabel("Delete Project").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.jscriptyProject.delete({id:g.project.id}).$promise.then(function(){_.remove(g.projects,{id:g.project.id}),o.success({title:"Project properly deleted!",msg:(g.project.name||"project")+" has been deleted!"}),v(g.project)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.jscriptyProject.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.jscriptyProject.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","projects","project","api","Auth","license","setting","crudPermissions"],angular.module("app.jscripty").controller("CreateOrEditProjectDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o){var r=this;r.currentUser=i.getCurrentUser(),r.project={},r.localizationMap=o;var l=new Date;r.pickerModel={dateStart:new Date(l.getFullYear(),l.getMonth(),1),dateEnd:new Date(l.getFullYear(),l.getMonth()+1,0),selectedTemplate:"TM"},r.init=function(e,n){r.project=e,r.userProfile=n,r.getAnswers()},r.getSummary=function(){return a.jscriptyProject.getSummary({id:r.project.id,startTime:{$gte:r.pickerModel.dateStart,$lte:moment(r.pickerModel.dateEnd).add(23,"hours").add(59,"minutes").add(59,"seconds").format()},nolimit:!0}).$promise.then(function(e){if(void 0!==e.length){var n=[e.buffer],t=new Blob(n,{type:e.type}),a=window.document.createElement("a");a.setAttribute("href",URL.createObjectURL(t)),a.setAttribute("download","jscriptyProjectSummary_"+r.project.id+".csv"),a.click()}else s.info({title:"EXPORT",msg:"No answers available"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.jscriptyProject.getSummary",msg:e.data?JSON.stringify(e.data):e.toString()})})},r.getAnswers=function(){return r.hasIdAnswers=!1,a.jscriptyProject.getAnswers({id:r.project.id,sort:"-createdAt,questionId",createdAt:{$gte:moment(r.pickerModel.dateStart).add(0,"hours").add(0,"minutes").add(0,"seconds").utcOffset(0,!0).format(),$lte:moment(r.pickerModel.dateEnd).add(23,"hours").add(59,"minutes").add(59,"seconds").utcOffset(0,!0).format()},nolimit:!0}).$promise.then(function(e){if(e&&e.rows&&e.hasOwnProperty("count")){r.answers={};for(var n=0,t=e.count;n<t;n++)e.rows[n].questionId&&(r.hasIdAnswers=!0,r.answers.hasOwnProperty(e.rows[n].questionId)||(r.answers[e.rows[n].questionId]={question:e.rows[n].question,answers:{},sum:0}),""===e.rows[n].answer&&(e.rows[n].answer="NO_ANSWER"),r.answers[e.rows[n].questionId].answers[e.rows[n].answer]?r.answers[e.rows[n].questionId].answers[e.rows[n].answer]+=1:r.answers[e.rows[n].questionId].answers[e.rows[n].answer]=1,r.answers[e.rows[n].questionId].sum+=1)}}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETANSWERS",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$mdDialog","$document","$window","api","Auth","toasty","dateFilterLocalizationFactory"],angular.module("app.jscripty").controller("ProjectAnswersController",e)}(),function(){"use strict";angular.module("app.jscripty").controller("ProjectBuilderController",function(){var n=this;n.project={},n.optionsBuilder={questionTypes:["text","textarea","radio","checkbox","select","number","date","time","email","range","url"],elementTypes:["question","paragraph"]},n.init=function(e){n.project=e,_.isObjectLike(e.formData)?n.project.formData=e.formData:n.isJsonString(e.formData)?n.project.formData=JSON.parse(e.formData):n.project.formData={}},n.isJsonString=function(e){if(_.isNil(e))return!1;try{JSON.parse(e)}catch(e){return!1}return!0}})}(),function(){"use strict";function e(n,t,a,e,i,s,o){var r=this;function l(e){n.hide(e)}r.newProject=!0,r.project=angular.copy(i),r.projects=s,r.title=o.instant("JSCRIPTY.CLONE_PROJECT"),i&&i.name&&(r.title+=": "+i.name),r.cloneProject=function(){return e.jscriptyProject.clone({id:i.id},r.project).$promise.then(function(e){r.projects.unshift(e.toJSON()),a.success({title:"Project properly cloned",msg:r.project.name?r.project.name+" has been cloned!":""}),t.go("app.jscripty.projects.edit",{id:e.id}),l(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){r.errors=e.data.errors||[{message:e.toString(),type:"api.jscriptyProject.clone"}];for(var n=0;n<e.data.errors.length;n+=1)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.jscriptyProject.clone",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},r.closeDialog=l}e.$inject=["$mdDialog","$state","toasty","api","project","projects","$translate"],angular.module("app.jscripty").controller("ProjectcloneController",e)}(),function(){"use strict";function e(a,i,n){var o=this;o.project={},o.responseData={},o.formViewer={},o.init=function(e){o.project=e,n.$on("mwForm.pageEvents.pageCurrentChanged",function(e,n){if(n.currentPage&&o.project.formData&&o.project.formData.pages)for(var t=0,a=o.project.formData.pages.length;t<a;t++)if(n.currentPage.number<t+1&&o.project.formData.pages[t].elements)for(var i=0,s=o.project.formData.pages[t].elements.length;i<s;i++)"question"===o.project.formData.pages[t].elements[i].type&&o.project.formData.pages[t].elements[i].question&&delete o.responseData[o.project.formData.pages[t].elements[i].question.id]})},o.onSubmit=function(e){var n=a.defer(),t=i.confirm().title("Would you like to save your survey?").textContent("").ariaLabel("survey").targetEvent(e).ok("SAVE").cancel("CANCEL");return i.show(t).then(function(){n.resolve(!0)},function(){n.reject()}),n.promise},o.resetViewer=function(){o.formViewer.reset&&o.formViewer.reset()}}e.$inject=["$q","$mdDialog","$scope"],angular.module("app.jscripty").controller("ProjectViewerController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.projectSessions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.jscriptyProject.getSessions(m.query,u).$promise}function g(e){d.jscriptySessionReport.delete({id:e.id}).$promise.then(function(){_.remove(m.projectSessions.rows,{id:e.id}),m.projectSessions.count-=1,m.projectSessions.rows.length||p(),l.success({title:"Session deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETjscriptyProject"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETjscriptyProject",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.project={},m.projectSessions={count:0,rows:[]},m.selectedProjectSessions=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,starttime,endtime,membername,calleridnum,completed",sort:"-starttime",limit:10,page:1},m.init=function(e,n,t){m.project=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.id=m.project.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the session?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("session #")+e.id||"session")+"</b> will be deleted.").ariaLabel("delete session").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getProjectSessions=p,m.createOrEditProjectSession=function(e,n){o.show({controller:"CreateOrEditSessionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/jscripty/views/projects/edit/sessions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{project:m.project,session:n,sessions:m.projectSessions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.showQuestionsProjectSession=function(e,t){o.show({controller:"ShowQuestionsSessionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/jscripty/views/projects/edit/sessions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,resolve:{questions:["apiResolver","$stateParams",function(e,n){return e.resolve("jscriptySessionReport@getQuestions",{fields:"question,answer",sort:"id",id:t.id})}]},locals:{project:m.project,session:t}})},m.exportSelectedProjectSessions=function(){var e=angular.copy(m.selectedProjectSessions);return m.selectedProjectSessions=[],e},m.deleteProjectSession=g,m.deleteSelectedProjectSessions=function(e){var n=o.confirm().title("Are you sure want to delete the selected sessions?").htmlContent("<b>"+m.selectedProjectSessions.length+" selected</b> will be deleted.").ariaLabel("delete sessions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedProjectSessions.forEach(function(e){g(e)}),m.selectedProjectSessions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.jscripty").controller("ProjectSessionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l){this.title="JSCRIPTY.SESSION_RESULTS",this.session=s,this.questions=o,this.project=r,this.closeDialog=function(e){a.hide(e)}}e.$inject=["$scope","$state","$location","$mdDialog","toasty","session","questions","project","api"],angular.module("app.jscripty").controller("ShowQuestionsSessionDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;p.currentUser=d.getCurrentUser(),p.license=s,p.setting=o,p.passwordPattern=p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.location=n.protocol()+"://"+n.host(),p.project=c||e.params.project||{},p.userProfile=m,p.userProfileSection=u&&1==u.count?u.rows[0]:null,p.crudPermissions=d.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.hasModulePermissions={},p.selectedTab=e.params.tab||0,p.clonedialog=function(e,n){t.show({controller:"ProjectcloneController",controllerAs:"vm",templateUrl:"app/main/apps/jscripty/views/projects/edit/clone/clone.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{project:e,projects:p.projects?p.projects.rows:[],crudPermissions:p.crudPermissions}})},p.alert=l.info,p.gotoProjects=function(){e.go("app.jscripty.projects",{},{reload:"app.jscripty.projects"})},p.saveProject=function(){r.jscriptyProject.update({id:p.project.id},p.project).$promise.then(function(){l.success({title:"Project updated!",msg:p.project.name?p.project.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETjscriptyProject",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","project","userProfile","userProfileSection"],angular.module("app.jscripty").controller("JscriptyProjectController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.projects=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="projects",f.listOrder="",f.listOrderAsc=null,f.selectedProjects=[],f.query={fields:"createdAt,updatedAt,id,name,enableUncompleteSave,sendUnpauseOnSubmit,description,formData",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.jscripty.projects.edit",{id:e.id,project:e,crudPermissions:f.crudPermissions})},f.clonedialog=function(e,n){i.show({controller:"ProjectcloneController",controllerAs:"vm",templateUrl:"app/main/apps/jscripty/views/projects/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{project:e,projects:f.projects?f.projects.rows:[],crudPermissions:f.crudPermissions}})},f.sessionsgoto=function(e,n){t.go("app.jscripty.projects.edit",{id:e.id,tab:3})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("project")+"?").htmlContent("<b>"+(e.name||"project")+"</b> will be deleted.").ariaLabel("delete project").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getProjects=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.jscriptyProject.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Projects",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditProject=function(e,n){i.show({controller:"CreateOrEditProjectDialogController",controllerAs:"vm",templateUrl:"app/main/apps/jscripty/views/projects/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{project:n,projects:f.projects.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteProject=y,f.exportSelectedProjects=function(){var e=angular.copy(f.selectedProjects);return f.selectedProjects=[],e},f.deleteSelectedProjects=function(e){var n=i.confirm().title("Are you sure want to delete the selected projects?").htmlContent("<b>"+f.selectedProjects.length+" selected</b> will be deleted.").ariaLabel("delete Projects").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedProjects.forEach(function(e){y(e)}),f.selectedProjects=[]})},f.deselectProjects=function(){f.selectedProjects=[]},f.selectAllProjects=function(){f.selectedProjects=f.projects.rows};var b=!0,A=1;function E(e){f.projects=e||{count:0,rows:[]}}function y(e){m.jscriptyProject.delete({id:e.id}).$promise.then(function(){_.remove(f.projects.rows,{id:e.id}),f.projects.count-=1,f.projects.rows.length||f.getProjects(),p.success({title:_.startCase("Project")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEjscriptyProject"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEjscriptyProject",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getProjects())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","projects","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.jscripty").controller("JscriptyProjectsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MAIL.EDIT_MAILACCOUNT",g.mailAccount=angular.copy(l),g.mailAccounts=r,g.newMailAccount=!1,g.mailAccount||(g.mailAccount={active:!0,cservice:"null",cauthentication:!0,fontSize:13,waitForTheAssignedAgent:10,notificationSound:!0,queueTransferTimeout:300,agentTransferTimeout:300},g.title="MAIL.NEW_MAILACCOUNT",g.newMailAccount=!0),n.params.id&&(g.mailAccount.MailAccountId=n.params.id),g.addNewMailAccount=function(){g.errors=[],d.mailAccount.save(g.mailAccount).$promise.then(function(e){g.mailAccounts.unshift(e.toJSON()),o.success({title:"MailAccount properly created",msg:g.mailAccount.name?g.mailAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveMailAccount=function(){g.errors=[],d.mailAccount.update({id:g.mailAccount.id},g.mailAccount).$promise.then(function(e){var n=_.find(g.mailAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"MailAccount properly saved!",msg:g.mailAccount.name?g.mailAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteMailAccount=function(e){if(g.mailAccount.service)return o.error({title:"Mail Account not deleted!",msg:"You can't remove service account"});g.errors=[];var n=a.confirm().title("Are you sure?").content("The mailAccount will be deleted.").ariaLabel("Delete MailAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.mailAccount.delete({id:g.mailAccount.id}).$promise.then(function(){_.remove(g.mailAccounts,{id:g.mailAccount.id}),o.success({title:"MailAccount properly deleted!",msg:(g.mailAccount.name||"mailAccount")+" has been deleted!"}),v(g.mailAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.lists,{id:e.resourceId})}),t=null;if(g.mailAccount&&(t=_.find(g.lists,{id:Number(g.mailAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.lists,{id:t.id});a.canSelect=!1,n.push(a)}g.lists=n})}else{var t=[],a=null;g.mailAccount&&(a=_.find(g.lists,{id:Number(g.mailAccount.ListId)}));for(var i=0;i<g.lists.length;i++)a&&g.lists[i].id===a.id&&(g.lists[i].canSelect=!1,t.push(g.lists[i]));g.lists=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","mailAccounts","mailAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.mail").controller("CreateOrEditMailAccountDialogController",e)}(),function(){"use strict";function e(o,i,a,s,e){var r=this;function n(e,n){if(r.mailAccountApps.rows.length){var t=r.mailAccountApps.rows[n]?r.mailAccountApps.rows[n]:r.mailAccountApps.rows[0];i.show({controller:"EditMailAccountApp"+(t.appType||t.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/apps/"+(t.appType||t.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailAccountApp:t,mailAccount:r.mailAccount,crudPermissions:r.crudPermissions}}).then(function(e){e&&(e.id?r.mailAccountApps.rows[n]=e:r.mailAccountApps.rows.splice(n,0,e),l())}).catch(function(e){e&&s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function l(){for(var e=1,n=[],t=0;t<r.mailAccountApps.rows.length;t++,0){var a=r.mailAccountApps.rows[t],i=[],s=[];a.intervals="*,*,*,*"!==a.interval?[a.interval]:a.IntervalId?_.map(_.filter(r.intervals.rows,{IntervalId:a.IntervalId}),"interval"):[],a.context=r.mailAccount.context,a.exten=r.mailAccount.exten,a.type&&(a.type=a.type.toLowerCase()),a.priority=i.length?_.last(i).priority+1:e,e=(s.length?_.last(s).priority:a.priority)+1,n=_.concat(n,i,[a],s)}o.mailAccount.addApplications({id:r.mailAccount.id},_.sortBy(n,"priority")).$promise.then(function(e){r.mailAccountApps.rows=e.rows}).catch(function(e){console.error(e)})}function t(e){r.mailAccountApps=e||{count:0,rows:[]}}r.currentUser=e.getCurrentUser(),r.mailAccount={},r.mailAccountApps={count:0,rows:[]},r.selectedMailAccountApps=[],r.crudPermissions,r.query={sort:"priority"},r.apps=_.reject(_.sortBy([{app:"Interval",appType:"interval",types:["always","custom","list"],fields:[],isApp:!1},{app:"noop",appType:"noop",type:"noop",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,fields:[{title:"Value",name:"value",type:"text",param:0}]},{app:"system",appType:"system",type:"system",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,extraApi:[{name:"variables",field:{name:"variable",key:"name"},route:"variable",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1012}}],fields:[{title:"Command",name:"command",type:"text",required:!0,param:0},{title:"Variable",name:"variable",type:"apiselect",values:"variables",value:"variable.name",option:"variable.name",defaultValues:[{value:"''",option:"None"}],defaultValue:"''",param:1}]},{app:"gotop",appType:"gotop",type:"goto",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Priority",name:"priority",type:"number",required:!0,min:0,param:0}]},{app:"gotoif",appType:"gotoif",type:"gotoif",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Condition",name:"condition",type:"text",required:!0,param:0},{title:"truepriority",name:"truepriority",type:"number",min:1,required:!0,param:1},{title:"falsepriority",name:"falsepriority",type:"number",min:1,required:!0,param:2}]},{app:"queue",appType:"queue",foreignKey:"MailQueueId",type:"queue",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"queues",field:{name:"queue",key:"name"},route:"mailQueue",filters:{fields:"id,name,type",sort:"name",nolimit:!0},permissions:{section:601}}],fields:[{title:"Queue",name:"queue",type:"apiselect",values:"queues",value:"queue.name",option:"queue.name",defaultValue:300,required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:300,param:1}]},{app:"agent",appType:"agent",type:"agent",foreignKey:"UserId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"agents",field:{name:"agent",key:"name"},route:"user",filters:{fields:"id,name",sort:"name",nolimit:!0,role:"agent"},permissions:{section:202}}],fields:[{title:"Agent",name:"agent",type:"apiselect",values:"agents",value:"agent.name",option:"agent.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:30,param:1}]},{app:"autoreply",appType:"autoreply",type:"autoreply",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"times",name:"times",type:"select",defaultValue:"1",values:[{option:"One Time",value:"2"},{option:"Always",value:"0"},{option:"First Message",value:"1"}],required:!0,param:0},{title:"Reply_Type",name:"replyType",type:"select",defaultValue:"1",values:[{option:"Reply",value:"0"},{option:"Reply All",value:"1"}],required:!0,param:1},{title:"Text",name:"text",type:"html",required:!0,param:2}]},{app:"close",appType:"close",type:"close",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Disposition",name:"disposition",type:"text",required:!0,param:0}]},{app:"tag",appType:"tag",type:"tag",foreignKey:"TagId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"tags",field:{name:"tag",key:"name"},route:"tag",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1008}}],fields:[{title:"Tag",name:"tag",type:"apiselect",values:"tags",value:"tag.name",option:"tag.name",required:!0,param:0}]}],["app"]),{isApp:!1}),r.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},r.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){n(e,e.newIndex)},onSort:function(e){l()}},r.init=function(e,n){r.mailAccount=e,r.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},r.applications.disabled=!r.crudPermissions.canEdit,r.query.id=e.id,r.query.isApp=!0,r.query.nolimit=!0,r.getMailAccountApps(),r.getIntervals()},r.deleteConfirm=function(e,n,t){var a=i.confirm().title("Are you sure want to delete the application?").htmlContent("<b>"+e.app+"</b> will be deleted.").ariaLabel("delete application").targetEvent(t).ok("OK").cancel("CANCEL");i.show(a).then(function(){r.mailAccountApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})},r.getMailAccountApps=function(){r.promise=o.mailAccount.getApplications(r.query,t).$promise},r.editMailAccountApp=n,r.editInterval=function(e,n){if(r.mailAccountApps.rows.length){var t=r.mailAccountApps.rows[n]?r.mailAccountApps.rows[n]:r.mailAccountApps.rows[0];i.show({controller:"EditMailAccountAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/apps/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:[],crudPermissions:r.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,l())})}},r.deleteMailAccountApp=function(e){_.remove(r.mailAccountApps.rows,{id:e.id}),l(),s.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},r.deleteSelectedMailAccountApps=function(e){var n=i.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+r.selectedMailAccountApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){r.selectedMailAccountApps.forEach(function(e){_.remove(r.mailAccountApps.rows,{id:e.id})}),r.selectedMailAccountApps=[],l()})},r.rewriteRouting=l,r.getIntervals=function(){return o.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){r.intervals=e}).catch(function(e){console.error(e)})}}e.$inject=["api","$mdDialog","$document","toasty","Auth"],angular.module("app.mail").controller("MailAccountActionsController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.mailAccount.getAgents({id:c.mailAccount.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserMailAccount?"penalty "+e.UserMailAccount.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.mailAccount=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.mailAccount.removeAgents({id:c.mailAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.mailAccount.addAgents({id:c.mailAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("MAIL.ALL_AGENTS"),labelSelected:r.instant("MAIL.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","mailAccount","mailAccounts","realtime","$translate","Auth","crudPermissions"],angular.module("app.mail").controller("MailAccountagentaddController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.agent=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.agent.appdata)switch(l.agent.appType?l.agent.appType.toLowerCase():l.agent.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.agent.appdata.split(",");l.agent.key=d[0],l.agent.language=d[1],l.agent.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.agent.appdata.split(",");l.agent.projectId=d[0],l.agent.clientEmail=d[1],l.agent.privateKey=d[2],l.agent.language=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.agent.appdata.split(",");l.agent.accesskeyid=d[0],l.agent.secretaccesskey=d[1],l.agent.lexregion=d[2],l.agent.botname=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.agent.appdata.split(",");l.agent.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.agent.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.agent.text=d.slice(2,d.length).join(",");break;case"message":l.agent.text=l.agent.appdata;break;case"set":l.agent.name=l.agent.appdata.split("=")[0],l.agent.value=l.agent.appdata.split("=")[1];break;case"agi":l.agent.project=l.agent.appdata;break;default:var c=l.agent.appdata.split(",");l.agent.agent=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.agent.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.agent.timeout=30;function m(e){n.hide(e)}l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outbounddial"===l.agent.appType.toLowerCase()&&(l.agent.prefix=l.agent.phone?l.agent.phone.split("$")[0]:void 0,l.agent.callerId=l.agent.callerID?"CALLERID(all)="+l.agent.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outboundDial"===l.agent.appType&&(l.agent.phone=i.cutdigits?(l.agent.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.agent.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.agent.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.agent.options+="U(xcally-mixmonitor-context)"):l.agent.options=l.agent.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.agents,{name:l.agent.agent});n&&(l.agent.UserId=n.id);if(l.agent.appType&&"custom"===l.agent.appType);else switch((l.agent.app||l.agent.appType).toLowerCase()){case"set":l.agent.appdata=l.agent.name+"="+l.agent.value;break;case"custom":break;default:e[0]=l.agent.agent,e[1]=l.agent.timeout,l.agent.appdata=e.join(",")}m(l.agent)},l.closeDialog=m,o.hasRole("admin")?s.user.get({fields:"id,name",sort:"name",nolimit:"true",role:"agent"}).$promise.then(function(e){l.agents=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.user.get({fields:"id,name",sort:"name",nolimit:"true",role:"agent"}).$promise.then(function(e){l.agents=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.agents,{id:e.resourceId})}),t=null;if(l.agent&&(t=_.find(l.agents,{name:l.agent.agent})),t&&!_.some(n,["id",t.id])){var a=_.find(l.agents,{id:t.id});a.canSelect=!1,n.push(a)}l.agents=n})}else{var t=[],a=null;l.agent&&(a=_.find(l.agents,{name:l.agent.agent}));for(var i=0;i<l.agents.length;i++)a&&l.agents[i].id===a.id&&(l.agents[i].canSelect=!1,t.push(l.agents[i]));l.agents=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppagentDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.autoreply=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.autoreply.appdata)switch(l.autoreply.appType?l.autoreply.appType.toLowerCase():l.autoreply.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.autoreply.appdata.split(",");l.autoreply.key=d[0],l.autoreply.language=d[1],l.autoreply.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.autoreply.appdata.split(",");l.autoreply.projectId=d[0],l.autoreply.clientEmail=d[1],l.autoreply.privateKey=d[2],l.autoreply.language=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.autoreply.appdata.split(",");l.autoreply.accesskeyid=d[0],l.autoreply.secretaccesskey=d[1],l.autoreply.lexregion=d[2],l.autoreply.botname=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.autoreply.appdata.split(",");l.autoreply.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.autoreply.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.autoreply.text=d.slice(2,d.length).join(",");break;case"message":l.autoreply.text=l.autoreply.appdata;break;case"set":l.autoreply.name=l.autoreply.appdata.split("=")[0],l.autoreply.value=l.autoreply.appdata.split("=")[1];break;case"agi":l.autoreply.project=l.autoreply.appdata;break;default:var c=l.autoreply.appdata.split(",");l.autoreply.times=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.autoreply.replyType=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.autoreply.text=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}else l.autoreply.times=1,l.autoreply.replyType=1;function m(e){n.hide(e)}l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outbounddial"===l.autoreply.appType.toLowerCase()&&(l.autoreply.prefix=l.autoreply.phone?l.autoreply.phone.split("$")[0]:void 0,l.autoreply.callerId=l.autoreply.callerID?"CALLERID(all)="+l.autoreply.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outboundDial"===l.autoreply.appType&&(l.autoreply.phone=i.cutdigits?(l.autoreply.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.autoreply.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.autoreply.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.autoreply.options+="U(xcally-mixmonitor-context)"):l.autoreply.options=l.autoreply.options.replace("U(xcally-mixmonitor-context)",""));if(l.autoreply.appType&&"custom"===l.autoreply.appType);else switch((l.autoreply.app||l.autoreply.appType).toLowerCase()){case"set":l.autoreply.appdata=l.autoreply.name+"="+l.autoreply.value;break;case"custom":break;default:e[0]=l.autoreply.times,e[1]=l.autoreply.replyType,e[2]=l.autoreply.text,l.autoreply.appdata=e.join(",")}m(l.autoreply)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppautoreplyDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.close=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.close.appdata)switch(l.close.appType?l.close.appType.toLowerCase():l.close.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.close.appdata.split(",");l.close.key=d[0],l.close.language=d[1],l.close.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.close.appdata.split(",");l.close.projectId=d[0],l.close.clientEmail=d[1],l.close.privateKey=d[2],l.close.language=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.close.appdata.split(",");l.close.accesskeyid=d[0],l.close.secretaccesskey=d[1],l.close.lexregion=d[2],l.close.botname=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.close.appdata.split(",");l.close.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.close.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.close.text=d.slice(2,d.length).join(",");break;case"message":l.close.text=l.close.appdata;break;case"set":l.close.name=l.close.appdata.split("=")[0],l.close.value=l.close.appdata.split("=")[1];break;case"agi":l.close.project=l.close.appdata;break;default:var c=l.close.appdata.split(",");l.close.disposition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outbounddial"===l.close.appType.toLowerCase()&&(l.close.prefix=l.close.phone?l.close.phone.split("$")[0]:void 0,l.close.callerId=l.close.callerID?"CALLERID(all)="+l.close.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outboundDial"===l.close.appType&&(l.close.phone=i.cutdigits?(l.close.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.close.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.close.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.close.options+="U(xcally-mixmonitor-context)"):l.close.options=l.close.options.replace("U(xcally-mixmonitor-context)",""));if(l.close.appType&&"custom"===l.close.appType);else switch((l.close.app||l.close.appType).toLowerCase()){case"set":l.close.appdata=l.close.name+"="+l.close.value;break;case"custom":break;default:e[0]=l.close.disposition,l.close.appdata=e.join(",")}m(l.close)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppcloseDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotoif=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotoif.appdata)switch(l.gotoif.appType?l.gotoif.appType.toLowerCase():l.gotoif.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotoif.appdata.split(",");l.gotoif.key=d[0],l.gotoif.language=d[1],l.gotoif.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotoif.appdata.split(",");l.gotoif.projectId=d[0],l.gotoif.clientEmail=d[1],l.gotoif.privateKey=d[2],l.gotoif.language=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotoif.appdata.split(",");l.gotoif.accesskeyid=d[0],l.gotoif.secretaccesskey=d[1],l.gotoif.lexregion=d[2],l.gotoif.botname=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotoif.appdata.split(",");l.gotoif.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotoif.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.gotoif.text=d.slice(2,d.length).join(",");break;case"message":l.gotoif.text=l.gotoif.appdata;break;case"set":l.gotoif.name=l.gotoif.appdata.split("=")[0],l.gotoif.value=l.gotoif.appdata.split("=")[1];break;case"agi":l.gotoif.project=l.gotoif.appdata;break;default:var c=l.gotoif.appdata.split(",");l.gotoif.condition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.gotoif.truepriority=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.gotoif.falsepriority=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}function m(e){n.hide(e)}l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outbounddial"===l.gotoif.appType.toLowerCase()&&(l.gotoif.prefix=l.gotoif.phone?l.gotoif.phone.split("$")[0]:void 0,l.gotoif.callerId=l.gotoif.callerID?"CALLERID(all)="+l.gotoif.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outboundDial"===l.gotoif.appType&&(l.gotoif.phone=i.cutdigits?(l.gotoif.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotoif.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotoif.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotoif.options+="U(xcally-mixmonitor-context)"):l.gotoif.options=l.gotoif.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotoif.appType&&"custom"===l.gotoif.appType);else switch((l.gotoif.app||l.gotoif.appType).toLowerCase()){case"set":l.gotoif.appdata=l.gotoif.name+"="+l.gotoif.value;break;case"custom":break;default:e[0]=l.gotoif.condition,e[1]=l.gotoif.truepriority,e[2]=l.gotoif.falsepriority,l.gotoif.appdata=e.join(",")}m(l.gotoif)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppgotoifDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotop.appdata)switch(l.gotop.appType?l.gotop.appType.toLowerCase():l.gotop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotop.appdata.split(",");l.gotop.key=d[0],l.gotop.language=d[1],l.gotop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotop.appdata.split(",");l.gotop.projectId=d[0],l.gotop.clientEmail=d[1],l.gotop.privateKey=d[2],l.gotop.language=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotop.appdata.split(",");l.gotop.accesskeyid=d[0],l.gotop.secretaccesskey=d[1],l.gotop.lexregion=d[2],l.gotop.botname=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotop.appdata.split(",");l.gotop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotop.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.gotop.text=d.slice(2,d.length).join(",");break;case"message":l.gotop.text=l.gotop.appdata;break;case"set":l.gotop.name=l.gotop.appdata.split("=")[0],l.gotop.value=l.gotop.appdata.split("=")[1];break;case"agi":l.gotop.project=l.gotop.appdata;break;default:var c=l.gotop.appdata.split(",");l.gotop.priority=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outbounddial"===l.gotop.appType.toLowerCase()&&(l.gotop.prefix=l.gotop.phone?l.gotop.phone.split("$")[0]:void 0,l.gotop.callerId=l.gotop.callerID?"CALLERID(all)="+l.gotop.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outboundDial"===l.gotop.appType&&(l.gotop.phone=i.cutdigits?(l.gotop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotop.options+="U(xcally-mixmonitor-context)"):l.gotop.options=l.gotop.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotop.appType&&"custom"===l.gotop.appType);else switch((l.gotop.app||l.gotop.appType).toLowerCase()){case"set":l.gotop.appdata=l.gotop.name+"="+l.gotop.value;break;case"custom":break;default:e[0]=l.gotop.priority,l.gotop.appdata=e.join(",")}m(l.gotop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppgotopDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;if(c.currentUser=l.getCurrentUser(),c.errors=[],c.title="TOOLS.EDIT_INTERVAL",c.interval=angular.copy(i),c.intervals=s,c.newInterval=!1,c.types=["always","custom","list"],c.crudPermissions=d,c.daysOfWeek=a.getDaysOfWeek(),c.monthNumber=a.getMonthNumber(),c.monthName=a.getMonthName(),c.daysOfMonth=a.getDaysOfMonth(),c.interval)if("*,*,*,*"!==c.interval.interval){c.type="custom";var m=c.interval.interval.split(","),u=m[0],p=m[1],g=m[2],v=m[3];if("*"!==u){var h,f=u.split("-")[0],b=u.split("-")[1];(h=new Date).setHours(Number(f.split(":")[0])),h.setMinutes(Number(f.split(":")[1])),c.timeRangeFrom=h,(h=new Date).setHours(Number(b.split(":")[0])),h.setMinutes(Number(b.split(":")[1])),c.timeRangeTo=h}"*"!==p&&(c.dayOfWeekFrom=p.split("-")[0],c.dayOfWeekTo=p.split("-")[1]),"*"!==g&&(c.monthDayFrom=g.split("-")[0],c.monthDayTo=g.split("-")[1]),"*"!==v&&(c.monthFrom=v.split("-")[0],c.monthTo=v.split("-")[1])}else c.type="always";else c.interval={interval:"*,*,*,*"},c.type="always",c.title="TOOLS.NEW_INTERVAL",c.newInterval=!0;function A(){switch(c.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==c.timeRangeFrom&&c.timeRangeFrom&&c.timeRangeTo){var n=(c.timeRangeFrom.getHours()<10?"0":"")+c.timeRangeFrom.getHours()+":"+(c.timeRangeFrom.getMinutes()<10?"0":"")+c.timeRangeFrom.getMinutes(),t=(c.timeRangeTo.getHours()<10?"0":"")+c.timeRangeTo.getHours()+":"+(c.timeRangeTo.getMinutes()<10?"0":"")+c.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return c.dayOfWeekFrom?c.dayOfWeekTo?e.push(c.dayOfWeekFrom+"-"+c.dayOfWeekTo):e.push(c.dayOfWeekFrom):e.push("*"),c.monthDayFrom?c.monthDayTo?e.push(c.monthDayFrom+"-"+c.monthDayTo):e.push(c.monthDayFrom):e.push("*"),c.monthFrom?c.monthTo?e.push(c.monthFrom+"-"+c.monthTo):e.push(c.monthFrom):e.push("*"),e.join()}}function E(e){n.hide(e)}e.params.id&&!c.interval.application&&(c.interval.IntervalId=e.params.id),c.interval.IntervalId&&c.interval.application&&(c.type="list"),c.addNewInterval=function(){c.errors=[],c.interval.interval=A(),r.interval.save(c.interval).$promise.then(function(e){c.intervals.push(e),o.success({title:"Interval properly created",msg:c.interval.name?c.interval.name+" has been created!":""}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},c.saveInterval=function(){c.errors=[],c.interval.interval=A(),c.interval.application?("list"!==c.type&&(c.interval.IntervalId=null),E(c.interval)):r.interval.update({id:c.interval.id},c.interval).$promise.then(function(e){var n=_.find(c.intervals,{id:e.id});n&&_.merge(n,e),o.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},c.closeDialog=E,c.interval.application&&(l.hasRole("admin")?r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:c.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=e&&e.rows?e.rows:[],t=[],a=null;c.interval&&(a=_.find(c.intervals,{name:c.interval.IntervalId})),a&&!_.some(n,["resourceId",a.id])&&c.intervals.forEach(function(e){e.id===a.id&&(e.canSelect=!1,t.push(e))}),c.intervals=t})}else c.intervals=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}))}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditMailAccountAppintervalDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.noop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.noop.appdata)switch(l.noop.appType?l.noop.appType.toLowerCase():l.noop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.noop.appdata.split(",");l.noop.key=d[0],l.noop.language=d[1],l.noop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.noop.appdata.split(",");l.noop.projectId=d[0],l.noop.clientEmail=d[1],l.noop.privateKey=d[2],l.noop.language=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.noop.appdata.split(",");l.noop.accesskeyid=d[0],l.noop.secretaccesskey=d[1],l.noop.lexregion=d[2],l.noop.botname=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.noop.appdata.split(",");l.noop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.noop.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.noop.text=d.slice(2,d.length).join(",");break;case"message":l.noop.text=l.noop.appdata;break;case"set":l.noop.name=l.noop.appdata.split("=")[0],l.noop.value=l.noop.appdata.split("=")[1];break;case"agi":l.noop.project=l.noop.appdata;break;default:var c=l.noop.appdata.split(",");l.noop.value=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outbounddial"===l.noop.appType.toLowerCase()&&(l.noop.prefix=l.noop.phone?l.noop.phone.split("$")[0]:void 0,l.noop.callerId=l.noop.callerID?"CALLERID(all)="+l.noop.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outboundDial"===l.noop.appType&&(l.noop.phone=i.cutdigits?(l.noop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.noop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.noop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.noop.options+="U(xcally-mixmonitor-context)"):l.noop.options=l.noop.options.replace("U(xcally-mixmonitor-context)",""));if(l.noop.appType&&"custom"===l.noop.appType);else switch((l.noop.app||l.noop.appType).toLowerCase()){case"set":l.noop.appdata=l.noop.name+"="+l.noop.value;break;case"custom":break;default:e[0]=l.noop.value,l.noop.appdata=e.join(",")}m(l.noop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppnoopDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.queue=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.queue.appdata)switch(l.queue.appType?l.queue.appType.toLowerCase():l.queue.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.queue.appdata.split(",");l.queue.key=d[0],l.queue.language=d[1],l.queue.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.queue.appdata.split(",");l.queue.projectId=d[0],l.queue.clientEmail=d[1],l.queue.privateKey=d[2],l.queue.language=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.queue.appdata.split(",");l.queue.accesskeyid=d[0],l.queue.secretaccesskey=d[1],l.queue.lexregion=d[2],l.queue.botname=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.queue.appdata.split(",");l.queue.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.queue.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.queue.text=d.slice(2,d.length).join(",");break;case"message":l.queue.text=l.queue.appdata;break;case"set":l.queue.name=l.queue.appdata.split("=")[0],l.queue.value=l.queue.appdata.split("=")[1];break;case"agi":l.queue.project=l.queue.appdata;break;default:var c=l.queue.appdata.split(",");l.queue.queue=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.queue.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.queue.queue=300,l.queue.timeout=300;function m(e){n.hide(e)}l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outbounddial"===l.queue.appType.toLowerCase()&&(l.queue.prefix=l.queue.phone?l.queue.phone.split("$")[0]:void 0,l.queue.callerId=l.queue.callerID?"CALLERID(all)="+l.queue.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outboundDial"===l.queue.appType&&(l.queue.phone=i.cutdigits?(l.queue.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.queue.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.queue.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.queue.options+="U(xcally-mixmonitor-context)"):l.queue.options=l.queue.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.queues,{name:l.queue.queue});n&&(l.queue[_.capitalize("mail")+"QueueId"]=n.id);if(l.queue.appType&&"custom"===l.queue.appType);else switch((l.queue.app||l.queue.appType).toLowerCase()){case"set":l.queue.appdata=l.queue.name+"="+l.queue.value;break;case"custom":break;default:e[0]=l.queue.queue,e[1]=l.queue.timeout,l.queue.appdata=e.join(",")}m(l.queue)},l.closeDialog=m,o.hasRole("admin")?s.mailQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.mailQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:601}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.queues,{id:e.resourceId})}),t=null;if(l.queue&&(t=_.find(l.queues,{name:l.queue.queue})),t&&!_.some(n,["id",t.id])){var a=_.find(l.queues,{id:t.id});a.canSelect=!1,n.push(a)}l.queues=n})}else{var t=[],a=null;l.queue&&(a=_.find(l.queues,{name:l.queue.queue}));for(var i=0;i<l.queues.length;i++)a&&l.queues[i].id===a.id&&(l.queues[i].canSelect=!1,t.push(l.queues[i]));l.queues=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppqueueDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.system=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.system.appdata)switch(l.system.appType?l.system.appType.toLowerCase():l.system.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.system.appdata.split(",");l.system.key=d[0],l.system.language=d[1],l.system.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.system.appdata.split(",");l.system.projectId=d[0],l.system.clientEmail=d[1],l.system.privateKey=d[2],l.system.language=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.system.appdata.split(",");l.system.accesskeyid=d[0],l.system.secretaccesskey=d[1],l.system.lexregion=d[2],l.system.botname=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.system.appdata.split(",");l.system.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.system.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.system.text=d.slice(2,d.length).join(",");break;case"message":l.system.text=l.system.appdata;break;case"set":l.system.name=l.system.appdata.split("=")[0],l.system.value=l.system.appdata.split("=")[1];break;case"agi":l.system.project=l.system.appdata;break;default:var c=l.system.appdata.split(",");l.system.command=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.system.variable=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.system.variable="";function m(e){n.hide(e)}l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outbounddial"===l.system.appType.toLowerCase()&&(l.system.prefix=l.system.phone?l.system.phone.split("$")[0]:void 0,l.system.callerId=l.system.callerID?"CALLERID(all)="+l.system.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outboundDial"===l.system.appType&&(l.system.phone=i.cutdigits?(l.system.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.system.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.system.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.system.options+="U(xcally-mixmonitor-context)"):l.system.options=l.system.options.replace("U(xcally-mixmonitor-context)",""));if(l.system.appType&&"custom"===l.system.appType);else switch((l.system.app||l.system.appType).toLowerCase()){case"set":l.system.appdata=l.system.name+"="+l.system.value;break;case"custom":break;default:e[0]=l.system.command,e[1]=l.system.variable,l.system.appdata=e.join(",")}m(l.system)},l.closeDialog=m,o.hasRole("admin")?s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1012}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.variables,{id:e.resourceId})}),t=null;if(l.system&&(t=_.find(l.variables,{name:l.system.variable})),t&&!_.some(n,["id",t.id])){var a=_.find(l.variables,{id:t.id});a.canSelect=!1,n.push(a)}l.variables=n})}else{var t=[],a=null;l.system&&(a=_.find(l.variables,{name:l.system.variable}));for(var i=0;i<l.variables.length;i++)a&&l.variables[i].id===a.id&&(l.variables[i].canSelect=!1,t.push(l.variables[i]));l.variables=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppsystemDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.tag=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.tag.appdata)switch(l.tag.appType?l.tag.appType.toLowerCase():l.tag.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.tag.appdata.split(",");l.tag.key=d[0],l.tag.language=d[1],l.tag.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.tag.appdata.split(",");l.tag.projectId=d[0],l.tag.clientEmail=d[1],l.tag.privateKey=d[2],l.tag.language=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.tag.appdata.split(",");l.tag.accesskeyid=d[0],l.tag.secretaccesskey=d[1],l.tag.lexregion=d[2],l.tag.botname=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.tag.appdata.split(",");l.tag.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.tag.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.tag.text=d.slice(2,d.length).join(",");break;case"message":l.tag.text=l.tag.appdata;break;case"set":l.tag.name=l.tag.appdata.split("=")[0],l.tag.value=l.tag.appdata.split("=")[1];break;case"agi":l.tag.project=l.tag.appdata;break;default:var c=l.tag.appdata.split(",");l.tag.tag=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outbounddial"===l.tag.appType.toLowerCase()&&(l.tag.prefix=l.tag.phone?l.tag.phone.split("$")[0]:void 0,l.tag.callerId=l.tag.callerID?"CALLERID(all)="+l.tag.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outboundDial"===l.tag.appType&&(l.tag.phone=i.cutdigits?(l.tag.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.tag.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.tag.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.tag.options+="U(xcally-mixmonitor-context)"):l.tag.options=l.tag.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.tags,{name:l.tag.tag});n&&(l.tag.TagId=n.id);if(l.tag.appType&&"custom"===l.tag.appType);else switch((l.tag.app||l.tag.appType).toLowerCase()){case"set":l.tag.appdata=l.tag.name+"="+l.tag.value;break;case"custom":break;default:e[0]=l.tag.tag,l.tag.appdata=e.join(",")}m(l.tag)},l.closeDialog=m,o.hasRole("admin")?s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1008}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.tags,{id:e.resourceId})}),t=null;if(l.tag&&(t=_.find(l.tags,{name:l.tag.tag})),t&&!_.some(n,["id",t.id])){var a=_.find(l.tags,{id:t.id});a.canSelect=!1,n.push(a)}l.tags=n})}else{var t=[],a=null;l.tag&&(a=_.find(l.tags,{name:l.tag.tag}));for(var i=0;i<l.tags.length;i++)a&&l.tags[i].id===a.id&&(l.tags[i].canSelect=!1,t.push(l.tags[i]));l.tags=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtags",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountApptagDialogController",e)}(),function(){"use strict";function e(e,a,n,t,i,s,o,r,l,d,c){var m=this;function u(e){m.mailAccountInteractions=e||{count:0,rows:[]};for(var n=0;n<m.mailAccountInteractions.rows.length;n+=1){var t=m.mailAccountInteractions.rows[n];v(t),t.Owner.name=h(t)}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,(void 0===m.query.closed||null===m.query.closed||m.query.closed)&&delete m.query.substatus,m.promise=d.mailInteraction.get(m.query,u).$promise}function g(e){d.mailInteraction.delete({id:e.id}).$promise.then(function(){_.remove(m.mailAccountInteractions.rows,{id:e.id}),m.mailAccountInteractions.count-=1,m.mailAccountInteractions.rows.length||p(),l.success({title:"Interaction deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETmailAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(e){_.isEmpty(e.to)||_.includes(e.to,m.mailAccount.email)?e.Contact?(e.contactName=(e.Contact.firstName||"")+" "+(e.Contact.lastName||""),e.contactInfo=e.Contact.email||""):e.contactName=i.instant("MAIL.UNKNOWN"):(e.contactName=e.to.split(" <")[0],e.contactInfo=e.to.split("<").pop().split(">")[0])}function h(e){return e.UserId?e.UserId===m.currentUser.id?i.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">":i.instant("DASHBOARDS.NOT_ASSIGNED")}m.currentUser=c.getCurrentUser(),m.mailAccount={},m.mailAccountInteractions={count:0,rows:[]},m.selectedMailAccountInteractions=[],m.crudPermissions,m.query={read:"null",closed:"null",sort:"-createdAt",includeAll:"true",limit:10,page:1},m.init=function(e,n,t){m.mailAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.MailAccountId=m.mailAccount.id,m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Subject",column:"subject",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Body",column:"plainBody",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Substatus",column:"substatus",type:"multiselect",options:{field:"name",route:{model:"mailSubstatus",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},d.tag.get({sort:"name"}).$promise.then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){return d.mailSubstatus.get({nolimit:!0}).$promise.then(function(e){m.subStatuses=e||{count:0,rows:[]}})}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Substatus",key:"substatus",type:"select",label:"DASHBOARDS.SELECT_SUBSTATUS",options:m.subStatuses.rows,customOptions:[{value:"null",translate:"DASHBOARDS.NONE"},{value:void 0,translate:"DASHBOARDS.ALL"}],ngValue:"name",ngIf:"closed === 0"},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]})},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the interaction?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("interaction #")+e.id||"interaction")+"</b> will be deleted.").ariaLabel("delete interaction").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.mailInteractionDownload=function(s,e,n){return d.mailInteraction.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="interaction"+s.id,a=new Blob(n,{type:e.type});t="mail-interaction"+s.id+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getMailAccountInteractions=p,m.createOrEditMailAccountInteraction=function(e,n){o.show({controller:"CreateOrEditInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/interactions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailAccount:m.mailAccount,interaction:n,interactions:m.mailAccountInteractions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.spymailInteraction=function(e,t){o.show({controller:"AgentGeneralInteractionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,onShowing:function(e,n){e.vm.init({id:1,channel:"mail",interaction:t,spy:!0},a.$parent.vm.setting)}})},m.openAdvancedSearch=function(){o.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(r.body),clickOutsideToClose:!1,locals:{fields:m.advancedSearch.fields,color:void 0,storagePath:"mail.mailAccounts"},fullscreen:!0}).then(function(e){if(m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply){var n="";n+="||MailAccountId:=$eq["+m.mailAccount.id+"]",m.query.search=e.value?e.value+=n:e.value,p()}}).catch(function(e){l.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.exportSelectedMailAccountInteractions=function(){var e=angular.copy(m.selectedMailAccountInteractions);return m.selectedMailAccountInteractions=[],e},m.deleteMailAccountInteraction=g,m.deleteSelectedMailAccountInteractions=function(e){var n=o.confirm().title("Are you sure want to delete the selected interactions?").htmlContent("<b>"+m.selectedMailAccountInteractions.length+" selected</b> will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedMailAccountInteractions.forEach(function(e){g(e)}),m.selectedMailAccountInteractions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.mail").controller("MailAccountInteractionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.mailAccountMailCannedAnswers=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.mailAccount.getAnswers(m.query,u).$promise}function g(e){d.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(m.mailAccountMailCannedAnswers.rows,{id:e.id}),m.mailAccountMailCannedAnswers.count-=1,m.mailAccountMailCannedAnswers.rows.length||p(),l.success({title:"MailCannedAnswer deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETmailAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.mailAccount={},m.mailAccountMailCannedAnswers={count:0,rows:[]},m.selectedMailAccountMailCannedAnswers=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,key,value,description",limit:10,page:1},m.init=function(e,n,t){m.mailAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.MailAccountId=m.mailAccount.id,m.query.id=m.mailAccount.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the mailCannedAnswer?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("mailCannedAnswer #")+e.id||"mailCannedAnswer")+"</b> will be deleted.").ariaLabel("delete mailCannedAnswer").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getMailAccountMailCannedAnswers=p,m.createOrEditMailAccountMailCannedAnswer=function(e,n){o.show({controller:"CreateOrEditMailCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/mailCannedAnswers/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailAccount:m.mailAccount,mailCannedAnswer:n,mailCannedAnswers:m.mailAccountMailCannedAnswers.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedMailAccountMailCannedAnswers=function(){var e=angular.copy(m.selectedMailAccountMailCannedAnswers);return m.selectedMailAccountMailCannedAnswers=[],e},m.deleteMailAccountMailCannedAnswer=g,m.deleteSelectedMailAccountMailCannedAnswers=function(e){var n=o.confirm().title("Are you sure want to delete the selected mailCannedAnswers?").htmlContent("<b>"+m.selectedMailAccountMailCannedAnswers.length+" selected</b> will be deleted.").ariaLabel("delete mailCannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedMailAccountMailCannedAnswers.forEach(function(e){g(e)}),m.selectedMailAccountMailCannedAnswers=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.mail").controller("MailAccountMailCannedAnswersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MAIL.EDIT_MAILCANNEDANSWER",g.mailCannedAnswer=angular.copy(l),g.mailCannedAnswers=r,g.newMailCannedAnswer=!1,g.mailCannedAnswer||(g.mailCannedAnswer={},g.title="MAIL.NEW_MAILCANNEDANSWER",g.newMailCannedAnswer=!0),n.params.id&&(g.mailCannedAnswer.MailAccountId=n.params.id),g.addNewMailCannedAnswer=function(){g.errors=[],d.cannedAnswer.save(g.mailCannedAnswer).$promise.then(function(e){g.mailCannedAnswers.unshift(e.toJSON()),o.success({title:"MailCannedAnswer properly created",msg:g.mailCannedAnswer.name?g.mailCannedAnswer.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveMailCannedAnswer=function(){g.errors=[],d.cannedAnswer.update({id:g.mailCannedAnswer.id},g.mailCannedAnswer).$promise.then(function(e){var n=_.find(g.mailCannedAnswers,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"MailCannedAnswer properly saved!",msg:g.mailCannedAnswer.name?g.mailCannedAnswer.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteMailCannedAnswer=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The mailCannedAnswer will be deleted.").ariaLabel("Delete MailCannedAnswer").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cannedAnswer.delete({id:g.mailCannedAnswer.id}).$promise.then(function(){_.remove(g.mailCannedAnswers,{id:g.mailCannedAnswer.id}),o.success({title:"MailCannedAnswer properly deleted!",msg:(g.mailCannedAnswer.name||"mailCannedAnswer")+" has been deleted!"}),v(g.mailCannedAnswer)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","mailCannedAnswers","mailCannedAnswer","api","Auth","license","setting","crudPermissions"],angular.module("app.mail").controller("CreateOrEditMailCannedAnswerDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.dispositions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=l.mailAccount.getDispositions(m.query,u).$promise}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){p(),d.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.dispositions={count:0,rows:[]},m.selectedDispositions=[],m.crudPermissions,m.levels={first:"1st",second:"2nd",third:"3rd"},m.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},m.init=function(e,n){m.mailAccount=e||{},m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.MailAccountId=m.mailAccount.id,m.query.id=m.mailAccount.id,p()},m.deleteConfirm=function(e,n){var t=_.some(m.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){g(e)})},m.success=u,m.getDispositions=p,m.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:{id:m.mailAccount.id,field:"MailAccountId",route:"mailAccount"},license:null,setting:null,crudPermissions:m.crudPermissions}}).then(function(e){e&&p()})},m.deleteDisposition=g,m.exportSelectedDispositions=function(){var e=angular.copy(m.selectedDispositions);return m.selectedDispositions=[],e},m.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:m.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedDispositions.forEach(function(e){g(e)}),m.selectedDispositions=[]})},m.deselectDispositions=function(){m.selectedDispositions=[]},m.selectAllDispositions=function(){m.selectedDispositions=m.dispositions.rows};var v=!0,h=1;e.$watch("vm_dc.query.filter",function(e,n){v?o(function(){v=!1}):(n||(h=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=h),p())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","api","toasty","Auth"],angular.module("app.mail").controller("MailAccountDispositionsController",e)}(),function(){"use strict";function e(t,e,a,i,s,n,o,r,l,d,c,m,u){var p=this;p.currentUser=d.getCurrentUser(),p.license=n,p.setting=o,p.passwordPattern=p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.location=e.protocol()+"://"+e.host(),p.mailAccount=c||t.params.mailAccount||{},p.userProfile=m,p.userProfileSection=u&&1==u.count?u.rows[0]:null,p.crudPermissions=d.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.hasModulePermissions={},p.selectedTab=t.params.tab||0,p.gotogoto=function(e,n){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:610}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.mail.realtime.accounts",{}):l.info({title:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.mail.realtime.accounts",{})}},p.agentadddialog=function(e,n){a.show({controller:"MailAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/agentadd/agentadd.html",parent:angular.element(i.body),targetEvent:n,clickOutsideToClose:!0,locals:{mailAccount:e,mailAccounts:p.mailAccounts?p.mailAccounts.rows:[],crudPermissions:p.crudPermissions,realtime:!1}})},p.alert=l.info,p.gotoMailAccounts=function(){t.go("app.mail.mailAccounts",{},{reload:"app.mail.mailAccounts"})},p.saveMailAccount=function(){r.mailAccount.update({id:p.mailAccount.id},p.mailAccount).$promise.then(function(){l.success({title:"MailAccount updated!",msg:p.mailAccount.name?p.mailAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.lists,{id:e.resourceId})}),t=null;if(p.mailAccount&&(t=_.find(p.lists,{id:Number(p.mailAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.lists,{id:t.id});a.canSelect=!1,n.push(a)}p.lists=n})}else{var t=[],a=null;p.mailAccount&&(a=_.find(p.lists,{id:Number(p.mailAccount.ListId)}));for(var i=0;i<p.lists.length;i++)a&&p.lists[i].id===a.id&&(p.lists[i].canSelect=!1,t.push(p.lists[i]));p.lists=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.pauses,{id:e.resourceId})});p.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),p.pauses=n})}else p.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","mailAccount","userProfile","userProfileSection"],angular.module("app.mail").controller("MailAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.mailAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="mailAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedMailAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,key,email,ListId,active,cservice,Imap.service,Imap.host,Imap.port,Imap.tls,Imap.authentication,Imap.user,Imap.password,Imap.mailbox,Imap.connTimeout,Imap.authTimeout,Smtp.service,Smtp.host,Smtp.port,Smtp.secure,Smtp.authentication,Smtp.user,Smtp.pass,cauthentication,cuser,cpassword,fontFamily,fontSize,template,markAsUnread,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,page:1},f.arraycservice=_.keyBy([{option:"Custom",value:"null"},{option:"Gmail",value:"'gmail'"},{option:"Hotmail",value:"'hotmail'"},{option:"Yahoo",value:"'yahoo'"},{option:"Outlook365",value:"'outlook365'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f["arrayImap.service"]=_.keyBy([{option:"Custom",value:"null"},{option:"Gmail",value:"'gmail'"},{option:"Hotmail",value:"'hotmail'"},{option:"Yahoo",value:"'yahoo'"},{option:"Outlook365",value:"'outlook365'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f["arraySmtp.service"]=_.keyBy([{option:"Custom",value:"null"},{option:"Gmail",value:"'gmail'"},{option:"Hotmail",value:"'hotmail'"},{option:"Yahoo",value:"'yahoo'"},{option:"Outlook365",value:"'outlook365'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.mail.mailAccounts.edit",{id:e.id,mailAccount:e,crudPermissions:f.crudPermissions})},f.verifysmtpverifysmtp=function(e,n){{if(e&&e.id)return m.mailAccount.verifySmtp({id:e.id}).$promise.then(function(){p.success({title:"Smtp properly verified",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"Smtp properly verified",msg:e.data?JSON.stringify(e.data):e.toString()})});p.error({title:"Smtp properly verified",msg:"Smpt id unknown"})}},f.interactionsgoto=function(e,n){t.go("app.mail.mailAccounts.edit",{id:e.id,tab:7})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:610}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.mail.realtime.accounts",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.mail.realtime.accounts",{})}},f.agentadddialog=function(e,n){i.show({controller:"MailAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{mailAccount:e,mailAccounts:f.mailAccounts?f.mailAccounts.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("mailAccount")+"?").htmlContent("<b>"+(e.name||"mailAccount")+"</b> will be deleted.").ariaLabel("delete mailAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getMailAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.mailAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="MailAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditMailAccount=function(e,n){i.show({controller:"CreateOrEditMailAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailAccount:n,mailAccounts:f.mailAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteMailAccount=y,f.exportSelectedMailAccounts=function(){var e=angular.copy(f.selectedMailAccounts);return f.selectedMailAccounts=[],e},f.deleteSelectedMailAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected mailAccounts?").htmlContent("<b>"+f.selectedMailAccounts.length+" selected</b> will be deleted.").ariaLabel("delete MailAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedMailAccounts.forEach(function(e){y(e)}),f.selectedMailAccounts=[]})},f.deselectMailAccounts=function(){f.selectedMailAccounts=[]},f.selectAllMailAccounts=function(){f.selectedMailAccounts=f.mailAccounts.rows},g.hasRole("admin")?m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.lists,{id:e.resourceId})}),t=null;if(f.mailAccount&&(t=_.find(f.lists,{id:Number(f.mailAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.lists,{id:t.id});a.canSelect=!1,n.push(a)}f.lists=n})}else{var t=[],a=null;f.mailAccount&&(a=_.find(f.lists,{id:Number(f.mailAccount.ListId)}));for(var i=0;i<f.lists.length;i++)a&&f.lists[i].id===a.id&&(f.lists[i].canSelect=!1,t.push(f.lists[i]));f.lists=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.mailAccounts=e||{count:0,rows:[]}}function y(e){if(e.service)return p.error({title:"Mail Account not deleted!",msg:"You can't remove service account"});m.mailAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.mailAccounts.rows,{id:e.id}),f.mailAccounts.count-=1,f.mailAccounts.rows.length||f.getMailAccounts(),p.success({title:_.startCase("MailAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEmailAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEmailAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getMailAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","mailAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.mail").controller("MailAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MAIL.EDIT_MAILQUEUE",g.mailQueue=angular.copy(l),g.mailQueues=r,g.newMailQueue=!1,g.mailQueue||(g.mailQueue={strategy:"beepall",timeout:10},g.title="MAIL.NEW_MAILQUEUE",g.newMailQueue=!0),g.addNewMailQueue=function(){g.errors=[],d.mailQueue.save(g.mailQueue).$promise.then(function(e){g.mailQueues.unshift(e.toJSON()),o.success({title:"MailQueue properly created",msg:g.mailQueue.name?g.mailQueue.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveMailQueue=function(){g.errors=[],d.mailQueue.update({id:g.mailQueue.id},g.mailQueue).$promise.then(function(e){var n=_.find(g.mailQueues,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"MailQueue properly saved!",msg:g.mailQueue.name?g.mailQueue.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteMailQueue=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The mailQueue will be deleted.").ariaLabel("Delete MailQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.mailQueue.delete({id:g.mailQueue.id}).$promise.then(function(){_.remove(g.mailQueues,{id:g.mailQueue.id}),o.success({title:"MailQueue properly deleted!",msg:(g.mailQueue.name||"mailQueue")+" has been deleted!"}),v(g.mailQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","mailQueues","mailQueue","api","Auth","license","setting","crudPermissions"],angular.module("app.mail").controller("CreateOrEditMailQueueDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.mailQueue.getAgents({id:c.mailQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserMailQueue?"penalty "+e.UserMailQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.mailQueue=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.mailQueue.removeAgents({id:c.mailQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.mailQueue.addAgents({id:c.mailQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("MAIL.ALL_AGENTS"),labelSelected:r.instant("MAIL.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","mailQueue","mailQueues","realtime","$translate","Auth","crudPermissions"],angular.module("app.mail").controller("MailQueueagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.mailQueue.getTeams({id:l.mailQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.mailQueue=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("MAIL.ALL_TEAMS"),labelSelected:t.instant("MAIL.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.mailQueue.removeTeams({id:l.mailQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.mailQueue.addTeams({id:l.mailQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","mailQueue","$translate","Auth","crudPermissions"],angular.module("app.mail").controller("MailQueueteamaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.mailQueue=c||e.params.mailQueue||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.teamadddialog=function(e,n){t.show({controller:"MailQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{mailQueue:e,mailQueues:u.mailQueues?u.mailQueues.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){t.show({controller:"MailQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{mailQueue:e,mailQueues:u.mailQueues?u.mailQueues.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.alert=l.info,u.gotoMailQueues=function(){e.go("app.mail.mailQueues",{},{reload:"app.mail.mailQueues"})},u.saveMailQueue=function(){r.mailQueue.update({id:u.mailQueue.id},u.mailQueue).$promise.then(function(){l.success({title:"MailQueue updated!",msg:u.mailQueue.name?u.mailQueue.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","mailQueue","userProfileSection"],angular.module("app.mail").controller("MailQueueController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.mailQueues=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="mailQueues",f.listOrder="",f.listOrderAsc=null,f.selectedMailQueues=[],f.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"mail",limit:10,page:1},f.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.mail.mailQueues.edit",{id:e.id,mailQueue:e,crudPermissions:f.crudPermissions})},f.teamadddialog=function(e,n){i.show({controller:"MailQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{mailQueue:e,mailQueues:f.mailQueues?f.mailQueues.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"MailQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{mailQueue:e,mailQueues:f.mailQueues?f.mailQueues.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("mailQueue")+"?").htmlContent("<b>"+(e.name||"mailQueue")+"</b> will be deleted.").ariaLabel("delete mailQueue").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:610}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.mail.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.mail.realtime.queues",{})}},f.success=E,f.getMailQueues=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.mailQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="MailQueues",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditMailQueue=function(e,n){i.show({controller:"CreateOrEditMailQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailQueue:n,mailQueues:f.mailQueues.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteMailQueue=y,f.exportSelectedMailQueues=function(){var e=angular.copy(f.selectedMailQueues);return f.selectedMailQueues=[],e},f.deleteSelectedMailQueues=function(e){var n=i.confirm().title("Are you sure want to delete the selected mailQueues?").htmlContent("<b>"+f.selectedMailQueues.length+" selected</b> will be deleted.").ariaLabel("delete MailQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedMailQueues.forEach(function(e){y(e)}),f.selectedMailQueues=[]})},f.deselectMailQueues=function(){f.selectedMailQueues=[]},f.selectAllMailQueues=function(){f.selectedMailQueues=f.mailQueues.rows};var b=!0,A=1;function E(e){f.mailQueues=e||{count:0,rows:[]}}function y(e){m.mailQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.mailQueues.rows,{id:e.id}),f.mailQueues.count-=1,f.mailQueues.rows.length||f.getMailQueues(),p.success({title:_.startCase("MailQueue")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEmailQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEmailQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getMailQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","mailQueues","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.mail").controller("MailQueuesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MAIL.EDIT_MAILSUBSTATUS",g.mailSubstatus=angular.copy(l),g.mailSubtatuses=r,g.newMailSubstatus=!1,g.mailSubstatus||(g.mailSubstatus={},g.title="MAIL.NEW_MAILSUBSTATUS",g.newMailSubstatus=!0),g.addNewMailSubstatus=function(){g.errors=[],d.mailSubstatus.save(g.mailSubstatus).$promise.then(function(e){g.mailSubtatuses.unshift(e.toJSON()),o.success({title:"MailSubstatus properly created",msg:g.mailSubstatus.name?g.mailSubstatus.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailSubstatus.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailSubstatus.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveMailSubstatus=function(){g.errors=[],d.mailSubstatus.update({id:g.mailSubstatus.id},g.mailSubstatus).$promise.then(function(e){var n=_.find(g.mailSubtatuses,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"MailSubstatus properly saved!",msg:g.mailSubstatus.name?g.mailSubstatus.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailSubstatus.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailSubstatus.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteMailSubstatus=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The mailSubstatus will be deleted.").ariaLabel("Delete MailSubstatus").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.mailSubstatus.delete({id:g.mailSubstatus.id}).$promise.then(function(){_.remove(g.mailSubtatuses,{id:g.mailSubstatus.id}),o.success({title:"MailSubstatus properly deleted!",msg:(g.mailSubstatus.name||"mailSubstatus")+" has been deleted!"}),v(g.mailSubstatus)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailSubstatus.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailSubstatus.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","mailSubtatuses","mailSubstatus","api","Auth","license","setting","crudPermissions"],angular.module("app.mail").controller("CreateOrEditMailSubstatusDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.mailSubtatuses=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="mailSubtatuses",f.listOrder="",f.listOrderAsc=null,f.selectedMailSubstatuses=[],f.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditMailSubstatusDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailSubtatuses/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{mailSubstatus:e,mailSubtatuses:f.mailSubtatuses.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("mailSubstatus")+"?").htmlContent("<b>"+(e.name||"mailSubstatus")+"</b> will be deleted.").ariaLabel("delete mailSubstatus").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getMailSubstatuses=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.mailSubstatus.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="MailSubstatuses",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditMailSubstatus=function(e,n){i.show({controller:"CreateOrEditMailSubstatusDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailSubtatuses/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailSubstatus:n,mailSubtatuses:f.mailSubtatuses.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteMailSubstatus=y,f.exportSelectedMailSubstatuses=function(){var e=angular.copy(f.selectedMailSubstatuses);return f.selectedMailSubstatuses=[],e},f.deleteSelectedMailSubstatuses=function(e){var n=i.confirm().title("Are you sure want to delete the selected mailSubtatuses?").htmlContent("<b>"+f.selectedMailSubstatuses.length+" selected</b> will be deleted.").ariaLabel("delete MailSubstatuss").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedMailSubstatuses.forEach(function(e){y(e)}),f.selectedMailSubstatuses=[]})},f.deselectMailSubstatuses=function(){f.selectedMailSubstatuses=[]},f.selectAllMailSubstatuses=function(){f.selectedMailSubstatuses=f.mailSubtatuses.rows};var b=!0,A=1;function E(e){f.mailSubtatuses=e||{count:0,rows:[]}}function y(e){m.mailSubstatus.delete({id:e.id}).$promise.then(function(){_.remove(f.mailSubtatuses.rows,{id:e.id}),f.mailSubtatuses.count-=1,f.mailSubtatuses.rows.length||f.getMailSubstatuses(),p.success({title:_.startCase("MailSubstatus")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEmailSubstatus"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEmailSubstatus",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getMailSubstatuses())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","mailSubtatuses","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.mail").controller("MailSubstatusesController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){_.forIn(p.mailAccounts,function(e,n){p.rpcMailAccounts[n]&&_.merge(e,p.rpcMailAccounts[n])}),_.forIn(p.mailAccounts,function(n,e){var t={id:e,sort:"-id",direction:"in",limit:1,offset:0,$gte:"createdAt,"+moment().startOf("day").format("YYYY-MM-DD HH:mm:ss"),fields:"id,createdAt"};s.mailAccount.getMessages(t).$promise.then(function(e){return e&&(n.in=e.count||0,n.lastIn=e.rows&&e.rows.length?e.rows[0].createdAt:void 0),t.direction="out",s.mailAccount.getMessages(t).$promise}).then(function(e){e&&(n.out=e.count||0,n.lastOut=e.rows&&e.rows.length?e.rows[0].createdAt:void 0)}).catch(function(e){console.log(e)})})}p.currentUser=u.getCurrentUser(),p.count=l&&l.count?l.count:0,p.mailAccounts=l?_.keyBy(l.rows?l.rows:[],"id"):{},p.rpcMailAccounts=d?_.keyBy(d.rows?d.rows:[],"id"):{},p.userProfile=c,p.userProfileSection=m&&1==m.count?m.rows[0]:null,p.crudPermissions=u.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.query={sort:"-name",limit:10,page:1},p.success=f,p.$onInit=g,p.getMailAccounts=function(){p.query.offset=(p.query.page-1)*p.query.limit,u.hasRole("admin")?p.promise=s.mailAccount.get(p.query,f).$promise:(p.query.id=p.userProfile.id,p.query.section="MailAccounts",p.promise=s.userProfile.getResources(p.query,f).$promise)},p.onSave=function(e){p.mailAccounts[e.id]&&_.merge(p.mailAccounts[e.id],e)},p.onMailMessageSave=function(e){p.mailAccounts[e.MailAccountId]&&("in"==e.direction?(p.mailAccounts[e.MailAccountId].in+=1,p.mailAccounts[e.MailAccountId].lastIn=e.createdAt):(p.mailAccounts[e.MailAccountId].out+=1,p.mailAccounts[e.MailAccountId].lastOut=e.createdAt))},p.goToMailAccount=function(e,n){i.go("app.mail.mailAccounts.edit",{id:n.id,mailAccount:n})},p.verifySmtp=function(e,n){{if(n&&n.id)return s.mailAccount.verifySmtp({id:n.id}).$promise.then(function(){r.success({title:"Smtp properly verified",msg:"Connection succeded!"})}).catch(function(e){r.error({title:"Smtp properly verified",msg:e.data?JSON.stringify(e.data):e.toString()})});r.error({title:"Smtp properly verified",msg:"Smpt id unknown"})}},p.order=[],_.forIn(p.mailAccounts,function(e,n){p.order.push(e.id)}),o.on("mailAccount:save",p.onSave),o.on("mailAccount:update",p.onSave),o.on("mailMessage:save",p.onMailMessageSave);var v=!0,h=1;function f(e){if(p.mailAccounts=e?_.keyBy(e.rows?e.rows:[],"id"):{},e.rows){p.order=[];for(var n=0;n<e.rows.length;n++)p.order.push(e.rows[n].id)}g()}e.$watch("vm.query.filter",function(e,n){v?t(function(){v=!1}):(n||(h=p.query.page),e!==n&&(p.query.page=1),e||(p.query.page=h),p.getMailAccounts())}),e.$on("$destroy",function(){o.removeAllListeners("mailAccount:save"),o.removeAllListeners("mailAccount:update"),o.removeAllListeners("mailMessage:save")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$state","api","socket","toasty","mailAccounts","rpcMailAccounts","userProfile","userProfileSection","Auth"],angular.module("app.mail").controller("MailAccountsRealtimeController",e)}(),function(){"use strict";function e(e,o,n,t,a,i,s,r,l,d,c,m,u,p,g,v,h,f){var b=this,A=["userpic","online","lastLoginAt","lastPauseAt","pauseType","lastPauseAt","internal","address","chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","chatCapacity","openchannelCapacity","mailCapacity","smsCapacity","whatsappCapacity","faxCapacity","chatCurrentCapacity","openchannelCurrentCapacity","mailCurrentCapacity","smsCurrentCapacity","whatsappCurrentCapacity","faxCurrentCapacity","chatStatus","openchannelStatus","mailStatus","smsStatus","whatsappStatus","faxStatus","voiceStatus","chatStatusTime","openchannelStatusTime","mailStatusTime","smsStatusTime","whatsappStatusTime","faxStatusTime","voiceStatusTime","queue","destconnectedlinenum","screenrecording","phoneBarEnableScreenRecordingByAgent","phoneBarEnableAutomaticScreenRecording"],E=["chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","online"];for(var y in b.currentUser=v.getCurrentUser(),b.availableStates=["ringing","inuse","busy","onhold","not_inuse"],b.pauses=s||{count:0,rows:[]},b.license=h,b.userProfile=p,b.userProfileSection=g&&1==g.count?g.rows[0]:null,b.crudPermissions=v.parseCrudPermissions(b.userProfileSection?b.userProfileSection.crudPermissions:null),b.agents=r?_.keyBy(r.rows?r.rows:[],"id"):{},b.rpcAgents=l?_.keyBy(l.rows?l.rows:[],"id"):{},b.paginatedAgents={},b.load=!1,b.order=[],b.agentInternal={},b.agents)b.agents.hasOwnProperty(y)&&(b.agents[y].init=!0);b.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},b.logout=function(e,n){return d.user.logout({id:e.id,device:"realtime",agent_id:e.id,agent_name:e.name}).$promise.then(function(){m.success({title:"Agent logout",msg:e.fullname+" properly logout"}),b.agents[e.id]&&(b.agents[e.id].online=!1),b.rpcAgents[e.id]&&(b.rpcAgents[e.id].online=!1),T()}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.queueAdd=function(e,n){t.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:[],channel:"mail",direction:"inbound",crudPermissions:b.crudPermissions}})},b.pause=function(n,e){return d.user.pause({id:n.id,type:e}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.unPause=function(n){return d.user.unpause({id:n.id}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.showInfo=function(e){t.show(t.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},b.getAgentStatus=O,b.getAgentGlobalStatus=w,b.isPause=I,b.checkPause=function(e){return"pause"===e},b.isPartialPause=function(e){return"*pause"===e},b.onSave=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(_.omit(e,E),A)),_.merge(b.rpcAgents[e.id],_.pick(_.omit(e,E),A)),w(b.agents[e.id]))},b.onUpdate=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(e,A)),_.merge(b.rpcAgents[e.id],_.pick(e,A)),e.lastPauseAt&&(b.agents[e.id].globalStatusTime=e.lastPauseAt,b.rpcAgents[e.id].globalStatusTime=e.lastPauseAt),w(b.agents[e.id]))},b.onInit=T,b.onConnect=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(_.merge(b.agents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])),_.merge(b.rpcAgents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])))},b.onComplete=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(b.agents[b.agentInternal[e.destaccountcode]]=_.omit(b.agents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]),b.rpcAgents[b.agentInternal[e.destaccountcode]]=_.omit(b.rpcAgents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]))},b.screenRecording=function(e,n){return d.user.update({id:e.id},{screenrecording:n}).$promise.catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.on("user:save",b.onSave),c.on("user:update",b.onUpdate),c.on("user:agentconnect",b.onConnect),c.on("user:agentcomplete",b.onComplete),T();var S=f(function(){b.load&&(b.load=!1,T())},999);function T(e){b.load=!1;var n,t,a=o.defer();b.promise=a.promise,b.filteredAgents=[],b.order=[],_.forIn(b.agents,function(e,n){b.rpcAgents[n]&&_.merge(e,_.pick(_.omit(b.rpcAgents[n],E),A)),w(e),e.online?(b.filteredAgents.push(e),b.agentInternal[e.internal]=n):e.globalStatusTime=_.toNumber(moment().format("x"))}),b.query.globalStatusFilter&&_.remove(b.filteredAgents,function(e){return e.globalStatus!==b.query.globalStatusFilter}),b.query.pauseTypeFilter&&_.remove(b.filteredAgents,function(e){return e.pauseType!==b.query.pauseTypeFilter}),b.query.filter&&_.remove(b.filteredAgents,function(e){return e.fullname.toLowerCase().indexOf(b.query.filter.toLowerCase())<0}),b.filteredAgents=(n=b.filteredAgents,t=_.startsWith(b.query.order,"-")?"desc":"asc",_.orderBy(n,[b.query.order.replace("-","")],[t]));var i=(b.query.page-1)*b.query.limit;b.paginatedAgents=_.drop(b.filteredAgents,i).slice(0,b.query.limit);for(var s=0;s<b.paginatedAgents.length;s+=1)b.order.push(b.paginatedAgents[s].id);a.resolve(),b.load=!0}function I(e){return"pause"===e||"*pause"===e}function C(e){return"idle"===e||"unknown"===e||"unavailable"===e||"ringing"===e||_.isNil(e)}function O(e,n){return"voice"===n?"idle"!==e[n+"Status"]?e[n+"Status"]:e[n+"Pause"]?e[n+"Status"]="pause":"idle":e[n+"Pause"]?e[n+"Status"]="pause":e[n+"Status"]}function w(e){var n="unknown";n=_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"pause":_.some([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"*pause":_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],C)?"idle":"busy",e.globalStatus!==n&&(e.globalStatus=n,e.init?(e.init=!1,e.globalStatusTime=I(n)?_.toNumber(moment(e.lastPauseAt).format("x")):_.max([e.voiceStatusTime,e.chatStatusTime,e.mailStatusTime,e.smsStatusTime,e.whatsappStatusTime,e.openchannelStatusTime,e.faxStatusTime])):e.globalStatusTime=_.toNumber(moment().format("x")))}e.$on("$destroy",function(){c.removeAllListeners("user:save"),c.removeAllListeners("user:update"),c.removeAllListeners("user:agentconnect"),c.removeAllListeners("user:agentcomplete"),S&&(f.cancel(S),S=null)})}e.$inject=["$scope","$q","$timeout","$mdDialog","$document","$filter","pauses","agents","rpcAgents","api","socket","toasty","helperClasses","userProfile","userProfileSection","Auth","license","$interval"],angular.module("app.voice").controller("AgentsMailRealtimeController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c,m){var u=this,p=["loggedIn","available","waiting","paused"],g=n(function(){},999);u.currentUser=c.getCurrentUser(),u.queues=s,u.userProfileSection=d&&1==d.count?d.rows[0]:null,u.crudPermissions=c.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.query={id:c.isUser()?u.currentUser.id:void 0,section:c.isUser()?"MailQueues":void 0,channel:"mail",sort:"name",limit:10,page:1},u.getQueues=function(){u.query.offset=(u.query.page-1)*u.query.limit,o.realtime.getQueues(u.query).$promise.then(function(e){u.queues=e}).catch(function(e){l.error({title:i.instant("MAIL.MAILQUEUES"),msg:e.status?JSON.stringify(e.data):e.toString()})})},u.editQueue=function(e,n){t.show({controller:"CreateOrEditMailQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailQueue:n,mailQueues:u.queues.rows,license:null,setting:null,crudPermissions:u.crudPermissions}})},u.addAgent=function(e,n){t.show({controller:"MailQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailQueue:n,mailQueues:u.queues.rows,realtime:!1,crudPermissions:u.crudPermissions}})},r.on("mail_queue:save",function(e){var n=_.find(u.queues.rows,["id",e.id]);n&&_.merge(n,_.pick(e,p))}),r.on("userMailQueue:save",function(e){var n=_.find(u.queues.rows,["id",e.MailQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),r.on("userMailQueue:remove",function(e){var n=_.find(u.queues.rows,["id",e.MailQueueId]);n&&(0<n.loggedInDb&&n.loggedInDb--,_.remove(n.agents,["id",e.UserId]))}),r.on("user:update",function(t){u.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&m.updateQueue(t,e,n,"mail")})}),e.$on("$destroy",function(){r.removeAllListeners("mail_queue:save"),r.removeAllListeners("userMailQueue:remove"),r.removeAllListeners("userMailQueue:save"),r.removeAllListeners("user:update"),g&&n.cancel(g)})}e.$inject=["$scope","$mdDialog","$document","$interval","$translate","queues","api","socket","toasty","userProfileSection","Auth","realtimeManager"],angular.module("app.mail").controller("QueuesMailRealtimeController",e)}(),function(){"use strict";angular.module("app.auth").factory("helperClasses",function(){return{status:{registered:"green-300-fg icon-checkbox-marked-circle",unregistered:"red-300-fg icon-close-circle",lagged:"red-300-fg icon-close-circle",reachable:"green-300-fg icon-checkbox-marked-circle",unreachable:"red-300-fg icon-close-circle",unknown:"grey-fg icon-minus-circle"},state:{unknown:"grey-fg icon-phone-hangup",not_inuse:"green-300-fg icon-phone-hangup",inuse:"red-300-fg icon-phone-in-talk",busy:"red-300-fg icon-phone-locked",invalid:"grey-fg icon-phone-hangup",unavailable:"grey-fg icon-phone-hangup",ringing:"blue-300-fg icon-phone-incoming",ringinuse:"blue-300-fg icon-phone-incoming",onhold:"blue-300-fg icon-phone-paused"},channelStatus:{ring:"blue-300-fg icon-phone-incoming",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"},channelStatusOut:{ring:"blue-300-fg icon-phone-outgoing",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"}}})}(),function(){"use strict";function e(e,t,n){switch(this.selectedTab=0,t.current.name){case"app.mail.realtime.agents":this.selectedTab=0;break;case"app.mail.realtime.queues":this.selectedTab=1;break;case"app.mail.realtime.accounts":this.selectedTab=2;break;default:this.selectedTab=0,t.go("app.mail.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.mail.realtime.agents");break;case 1:t.go("app.mail.realtime.queues");break;case 2:t.go("app.mail.realtime.accounts");break;default:t.go("app.mail.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.mail").controller("MailRealtimeController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MARKETPLACE.EDIT_PLUGIN",g.plugin=angular.copy(l),g.plugins=r,g.newPlugin=!1,g.plugin||(g.plugin={},g.title="MARKETPLACE.NEW_PLUGIN",g.newPlugin=!0),g.addNewPlugin=function(){g.errors=[],d.plugin.save(g.plugin).$promise.then(function(e){g.plugins.unshift(e.toJSON()),o.success({title:"Plugin properly created",msg:g.plugin.name?g.plugin.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.plugin.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.plugin.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.savePlugin=function(){g.errors=[],d.plugin.update({id:g.plugin.id},g.plugin).$promise.then(function(e){var n=_.find(g.plugins,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Plugin properly saved!",msg:g.plugin.name?g.plugin.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.plugin.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.plugin.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deletePlugin=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The plugin will be deleted.").ariaLabel("Delete Plugin").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.plugin.delete({id:g.plugin.id}).$promise.then(function(){_.remove(g.plugins,{id:g.plugin.id}),o.success({title:"Plugin properly deleted!",msg:(g.plugin.name||"plugin")+" has been deleted!"}),v(g.plugin)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.plugin.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.plugin.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","plugins","plugin","api","Auth","license","setting","crudPermissions"],angular.module("app.marketplace").controller("CreateOrEditPluginDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.plugin=c||e.params.plugin||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoPlugins=function(){e.go("app.marketplace.plugins",{},{reload:"app.marketplace.plugins"})},u.savePlugin=function(){r.plugin.update({id:u.plugin.id},u.plugin).$promise.then(function(){l.success({title:"Plugin updated!",msg:u.plugin.name?u.plugin.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETplugin",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","plugin","userProfileSection"],angular.module("app.marketplace").controller("MarketplacePluginController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.plugins=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="plugins",f.listOrder="",f.listOrderAsc=null,f.selectedPlugins=[],f.query={fields:"createdAt,updatedAt,id,name,type,active,description,icon,sidebar,path,adminUrl,agentUrl,scriptName,scriptPath,version",sort:"-updatedAt",limit:10,page:1},f.installing=!1,f.arraysidebar=_.keyBy([{option:"Always",value:"'always'"},{option:"Admin Only",value:"'adminOnly'"},{option:"Agent Only",value:"'agentOnly'"},{option:"Never",value:"'never'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.installplugin=function(e){{if("script"!==e.type)return e.active=!0,m.plugin.update({id:e.id},e).$promise.then(function(){p.success({title:"Plugin installed!",msg:e.name?e.name+" has been installed!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"api.plugin.update"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.plugin.update",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})});f.installing=!0,m.pm2.save({name:e.scriptName,script:e.path+"/"+e.scriptPath}).$promise.then(function(){return e.active=!0,m.plugin.update({id:e.id},e).$promise}).then(function(){f.installing=!1,p.success({title:"Plugin installed!",msg:e.name?e.name+" has been installed!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"api.pm2.save"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.pm2.save",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}},f.editstate=function(e,n){t.go("app.marketplace.plugins.edit",{id:e.id,plugin:e,crudPermissions:f.crudPermissions})},f.stopplugin=function(e,n){var t=i.confirm().title("Are you sure want to stop the plugin attached process?").htmlContent("<b>"+(e.name||"plugin")+"</b> attached process will be stoppped.").ariaLabel("stop plugin process").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){var t;t=e,m.pm2.get().$promise.then(function(e){if(!e||!e.rows)throw new Error("Failed to retrieve pm2 processes");var n=_.find(e.rows,{name:t.scriptName});if(!n)throw new Error("No corresponding process found");m.pm2.update({id:n.pm_id,status:"stopped"}).$promise.then(function(){p.success({title:"Process stopped!",msg:"Attached pm2 process successfully stopped"})})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"api.pm2.update"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.pm2.update",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){console.log("CANCEL")})},f.restartplugin=function(e,n){var t=i.confirm().title("Are you sure want to restart the plugin attached process?").htmlContent("<b>"+(e.name||"plugin")+"</b> attached process will be restarted.").ariaLabel("restart plugin process").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){var t;t=e,m.pm2.get().$promise.then(function(e){if(!e||!e.rows)throw new Error("Failed to retrieve pm2 processes");var n=_.find(e.rows,{name:t.scriptName});if(!n)throw new Error("No corresponding process found");m.pm2.update({id:n.pm_id,status:"online"}).$promise.then(function(){p.success({title:"Process restarted!",msg:"Attached pm2 process successfully restarted"})})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"api.pm2.update"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.pm2.update",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){console.log("CANCEL")})},f.downloadfile2=function(s,e){return m.plugin.download({id:s.id}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=s.name.replace(" ","_").toLowerCase()+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.plugin.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},f.uninstallplugin=function(e,n){var t=i.confirm().title("Are you sure want to uninstall the plugin?").htmlContent("<b>"+(e.name||"plugin")+"</b> will be uninstalled.").ariaLabel("uninstall plugin").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){!function(t){"script"===t.type&&m.pm2.get().$promise.then(function(e){if(!e||!e.rows)throw new Error("Failed to retrieve pm2 processes");var n=_.find(e.rows,{name:t.scriptName});if(!n)throw new Error("No corresponding process found");m.pm2.delete({id:n.pm_id,name:t.scriptName}).$promise}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.pm2.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})});t.active=!1,m.plugin.update({id:t.id},t).$promise.then(function(){p.success({title:"Plugin uninstalled!",msg:t.name?t.name+" has been uninstalled!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"api.plugin.update"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.plugin.update",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}(e)},function(){console.log("CANCEL")})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("plugin")+"?").htmlContent("<b>"+(e.name||"plugin")+"</b> will be deleted.").ariaLabel("delete plugin").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getPlugins=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.plugin.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Plugins",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditPlugin=function(e,n){i.show({controller:"CreateOrEditPluginDialogController",controllerAs:"vm",templateUrl:"app/main/apps/marketplace/views/plugins/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{plugin:n,plugins:f.plugins.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deletePlugin=y,f.exportSelectedPlugins=function(){var e=angular.copy(f.selectedPlugins);return f.selectedPlugins=[],e},f.deleteSelectedPlugins=function(e){var n=i.confirm().title("Are you sure want to delete the selected plugins?").htmlContent("<b>"+f.selectedPlugins.length+" selected</b> will be deleted.").ariaLabel("delete Plugins").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedPlugins.forEach(function(e){y(e)}),f.selectedPlugins=[]})},f.deselectPlugins=function(){f.selectedPlugins=[]},f.selectAllPlugins=function(){f.selectedPlugins=f.plugins.rows},f.uploadPlugin=function(e){i.show({controller:"UploadPluginDialogController",controllerAs:"vm",templateUrl:"app/main/apps/marketplace/views/plugins/upload/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{plugins:f.plugins.rows}})};var b=!0,A=1;function E(e){f.plugins=e||{count:0,rows:[]}}function y(t){t.active&&"script"==t.type&&m.pm2.get().$promise.then(function(e){if(!e||!e.rows)return p.error({title:"Plugin not deleted!",msg:"Failed to retrieve pm2 processes"});var n=_.find(e.rows,{name:t.scriptName});n?m.pm2.delete({id:n.pm_id,name:t.scriptName}).$promise:console.log("No '%s' process found",t.scriptName)}).catch(function(e){return p.error({title:"PM2 process not found!",msg:"Failed to delete the attached pm2 process"})}),m.plugin.delete({id:t.id}).$promise.then(function(){_.remove(f.plugins.rows,{id:t.id}),f.plugins.count-=1,f.plugins.rows.length||f.getPlugins(),p.success({title:_.startCase("Plugin")+" deleted!",msg:t.name?t.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEplugin"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEplugin",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getPlugins())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","plugins","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.marketplace").controller("MarketplacePluginsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this,r=4,l=1024*r*1024;o.currentUser=s.getCurrentUser(),o.errors=[],o.title="MARKETPLACE.UPLOAD_PLUGIN",o.plugins=a,o.uploadPlugins=[],o.uploadState="none",o.plugin={},o.ngFlowOptions={maxChunkRetries:1,chunkSize:l,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0,target:"api/plugins"},o.ngFlow={flow:{}},o.dropping=!1,o.fileAdded=function(e){var n=["zip"];if(!_.includes(n,e.getExtension()))return t.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(e.size>l)return t.error({title:"File too big",msg:"The max allowed size is "+r+"MB"}),!1;return o.plugin={id:e.uniqueIdentifier,file:e},o.uploadPlugins.unshift(o.plugin),!0},o.upload=function(){o.uploadState="uploading",o.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},o.ngFlow.flow.opts.query={role:o.currentUser.role,userProfileId:o.currentUser.userProfileId},o.ngFlow.flow.upload()},o.fileSuccess=function(a,e){o.plugins.unshift(JSON.parse(e)),angular.forEach(o.uploadPlugins,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result}}})},o.uploadError=function(e,n){o.ngFlow.flow.cancel(),t.error({title:"Upload error",msg:"Cannot upload the plugin"}),o.uploadState="failed"},o.uploadComplete=function(){"failed"!==o.uploadState&&(o.uploadState="completed",t.success({title:"Upload completed",msg:o.plugin.file.name+" uploaded successfully"}))},o.closeDialog=function(){n.hide()}}e.$inject=["$cookies","$mdDialog","toasty","plugins","api","Auth"],angular.module("app.marketplace").controller("UploadPluginDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MOTIONDIALER.EDIT_IVRCAMPAIGN",g.ivrCampaign=angular.copy(l),g.ivrCampaigns=r,g.newIvrCampaign=!1,g.ivrCampaign||(g.ivrCampaign={active:!0,type:"ivr",dialCheckDuplicateType:"always",dialCutDigit:0,limitCalls:30,dialRandomLastDigitCallerIdNumber:0,dialOriginateTimeout:30,dialGlobalMaxRetry:4,dialCongestionMaxRetry:3,dialCongestionRetryFrequency:150,dialBusyMaxRetry:3,dialBusyRetryFrequency:150,dialNoAnswerMaxRetry:3,dialNoAnswerRetryFrequency:150,dialNoSuchNumberMaxRetry:3,dialNoSuchNumberRetryFrequency:150,dialDropMaxRetry:3,dialDropRetryFrequency:150,dialAbandonedMaxRetry:3,dialAbandonedRetryFrequency:150,dialMachineMaxRetry:3,dialMachineRetryFrequency:150,dialAgentRejectMaxRetry:3,dialAgentRejectRetryFrequency:150,dialOrderByScheduledAt:"ASC",dialGlobalInterval:"07:00-22:00,*,*,*",dialAMDInitialSilence:2500,dialAMDGreeting:1500,dialAMDAfterGreetingSilence:800,dialAMDTotalAnalysisTime:5e3,dialAMDMinWordLength:100,dialAMDBetweenWordsSilence:50,dialAMDMaximumNumberOfWords:3,dialAMDSilenceThreshold:256,dialAMDMaximumWordLength:5e3},g.title="MOTIONDIALER.NEW_IVRCAMPAIGN",g.newIvrCampaign=!0),g.addNewIvrCampaign=function(){g.errors=[],d.campaign.save(g.ivrCampaign).$promise.then(function(e){g.ivrCampaigns.unshift(e.toJSON()),o.success({title:"IvrCampaign properly created",msg:g.ivrCampaign.name?g.ivrCampaign.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.campaign.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.campaign.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveIvrCampaign=function(){g.errors=[],d.campaign.update({id:g.ivrCampaign.id},g.ivrCampaign).$promise.then(function(e){var n=_.find(g.ivrCampaigns,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"IvrCampaign properly saved!",msg:g.ivrCampaign.name?g.ivrCampaign.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.campaign.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.campaign.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteIvrCampaign=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The ivrCampaign will be deleted.").ariaLabel("Delete IvrCampaign").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.campaign.delete({id:g.ivrCampaign.id}).$promise.then(function(){_.remove(g.ivrCampaigns,{id:g.ivrCampaign.id}),o.success({title:"IvrCampaign properly deleted!",msg:(g.ivrCampaign.name||"ivrCampaign")+" has been deleted!"}),v(g.ivrCampaign)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.campaign.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.campaign.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.trunk.get({fields:"id,name",sort:"name",table:"true"}).$promise.then(function(e){g.trunks=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.trunk.get({fields:"id,name",sort:"name",table:"true"}).$promise.then(function(e){g.trunks=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.trunks,{id:e.resourceId})});g.trunks.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),g.trunks=n})}else g.trunks=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.hasRole("admin")?d.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.projects=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PROJECTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.projects=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1103}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.projects,{id:e.resourceId})}),t=null;if(g.ivrCampaign&&(t=_.find(g.projects,{id:Number(g.ivrCampaign.SquareProjectId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.projects,{id:t.id});a.canSelect=!1,n.push(a)}g.projects=n})}else{var t=[],a=null;g.ivrCampaign&&(a=_.find(g.projects,{id:Number(g.ivrCampaign.SquareProjectId)}));for(var i=0;i<g.projects.length;i++)a&&g.projects[i].id===a.id&&(g.projects[i].canSelect=!1,t.push(g.projects[i]));g.projects=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.hasRole("admin")?d.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){g.interval=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){g.interval=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.interval,{id:e.resourceId})}),t=null;if(g.ivrCampaign&&(t=_.find(g.interval,{id:Number(g.ivrCampaign.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.interval,{id:t.id});a.canSelect=!1,n.push(a)}g.interval=n})}else{var t=[],a=null;g.ivrCampaign&&(a=_.find(g.interval,{id:Number(g.ivrCampaign.IntervalId)}));for(var i=0;i<g.interval.length;i++)a&&g.interval[i].id===a.id&&(g.interval[i].canSelect=!1,t.push(g.interval[i]));g.interval=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","ivrCampaigns","ivrCampaign","api","Auth","license","setting","crudPermissions"],angular.module("app.motiondialer").controller("CreateOrEditIvrCampaignDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l){var d=this;function c(){return a(function(t,n){return a(function(n,t){return s.cmList.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return d.items=e.rows?e.rows:[],r.hasRole("admin")?e:d.section?d.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:d.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return d.allowedItems=_.map(n,function(e){return _.find(d.items,{id:r.hasRole("admin")||d.section.autoAssociation?e.id:e.resourceId})}),d.startingAllowedItems=angular.copy(d.allowedItems),d.items.forEach(function(e){var n=_.find(d.allowedItems,{id:e.id});"admin"===d.currentUser.role?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s[d.apiRoute][d.getApi]({id:d.ivrCampaign.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];d.selectedItems=_.map(n,function(e){return _.find(d.items,{id:e.id})}),d.startingSelectedItems=angular.copy(d.selectedItems),d.dualMultiselectOptions.selectedItems=d.selectedItems,d.dualMultiselectOptions.items=_.differenceBy(d.allowedItems,d.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}d.currentUser=r.getCurrentUser(),d.ivrCampaign=n,d.crudPermissions=l,d.apiRoute="campaign",d.getApi="getBlackLists",d.addApi="addBlackLists",d.removeApi="removeBlackLists",d.items=[],d.allowedItems=[],d.selectedItems=[],d.startingAllowedItems=[],d.startingSelectedItems=[],d.pendingChanges=!1,d.loading=!1,d.dualMultiselectOptions={allowedItems:[],selectedItems:[],showSelectAndDeselectAll:!1,orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("MOTIONDIALER.ALL_LISTS"),labelSelected:t.instant("MOTIONDIALER.SELECTED_LISTS"),transferCallback:function(e,n){var t=_.xorBy(d.startingSelectedItems,d.selectedItems,"id");d.pendingChanges=!_.isEmpty(t)}},d.onInit=function(){return r.hasRole("admin")?c().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:d.currentUser.userProfileId,name:"Lists"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return d.section=e,c()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},d.saveLists=function(){d.loading=!0;var e=_.differenceBy(d.startingSelectedItems,d.selectedItems,"id"),n=_.differenceBy(d.selectedItems,d.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.removeApi]({id:d.ivrCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.addApi]({id:d.ivrCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){d.pendingChanges=!1,d.startingAllowedItems=angular.copy(d.allowedItems),d.startingSelectedItems=angular.copy(d.selectedItems),i.success({title:"SUCCESS",msg:"Lists association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})}).finally(function(){d.loading=!1});var t},d.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","ivrCampaign","$translate","$timeout","Auth","crudPermissions"],angular.module("app.motiondialer").controller("IvrCampaignblacklistaddController",e)}(),function(){"use strict";function e(n,t,a,e,i,s,o){var r=this;function l(e){n.hide(e)}r.newIvrCampaign=!0,r.ivrCampaign=angular.copy(i),r.ivrCampaigns=s,r.title=o.instant("MOTIONDIALER.CLONE_IVRCAMPAIGN"),i&&i.name&&(r.title+=": "+i.name),r.cloneIvrCampaign=function(){return e.campaign.clone({id:i.id},r.ivrCampaign).$promise.then(function(e){r.ivrCampaigns.unshift(e.toJSON()),a.success({title:"IvrCampaign properly cloned",msg:r.ivrCampaign.name?r.ivrCampaign.name+" has been cloned!":""}),t.go("app.motiondialer.ivrCampaigns.edit",{id:e.id}),l(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){r.errors=e.data.errors||[{message:e.toString(),type:"api.campaign.clone"}];for(var n=0;n<e.data.errors.length;n+=1)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.campaign.clone",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},r.closeDialog=l}e.$inject=["$mdDialog","$state","toasty","api","ivrCampaign","ivrCampaigns","$translate"],angular.module("app.motiondialer").controller("IvrCampaigncloneController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.ivrCampaignHopperBlacks=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.campaign.getHopperBlacks(m.query,u).$promise}function g(e){d.hopperBlack.delete({id:e.id}).$promise.then(function(){_.remove(m.ivrCampaignHopperBlacks.rows,{id:e.id}),m.ivrCampaignHopperBlacks.count-=1,m.ivrCampaignHopperBlacks.rows.length||p(),l.success({title:"HopperBlack deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETcampaign"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.ivrCampaign={},m.ivrCampaignHopperBlacks={count:0,rows:[]},m.selectedIvrCampaignHopperBlacks=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,ContactId,phone",sort:"-id",limit:10,page:1},m.init=function(e,n){m.ivrCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.CampaignId=m.ivrCampaign.id,m.query.id=m.ivrCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopperBlack?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopperBlack #")+e.id||"hopperBlack")+"</b> will be deleted.").ariaLabel("delete hopperBlack").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getIvrCampaignHopperBlacks=p,m.createOrEditIvrCampaignHopperBlack=function(e,n){o.show({controller:"CreateOrEditHopperBlackDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hopperBlacks/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:m.ivrCampaign,hopperBlack:n,hopperBlacks:m.ivrCampaignHopperBlacks.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedIvrCampaignHopperBlacks=function(){var e=angular.copy(m.selectedIvrCampaignHopperBlacks);return m.selectedIvrCampaignHopperBlacks=[],e},m.deleteIvrCampaignHopperBlack=g,m.deleteSelectedIvrCampaignHopperBlacks=function(e){var n=o.confirm().title("Are you sure want to delete the selected hopperBlacks?").htmlContent("<b>"+m.selectedIvrCampaignHopperBlacks.length+" selected</b> will be deleted.").ariaLabel("delete hopperBlacks").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedIvrCampaignHopperBlacks.forEach(function(e){g(e)}),m.selectedIvrCampaignHopperBlacks=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("IvrCampaignHopperBlacksController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.ivrCampaignHopperFinals=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.campaign.getHopperFinals(m.query,u).$promise}function g(e){d.hopperFinal.delete({id:e.id}).$promise.then(function(){_.remove(m.ivrCampaignHopperFinals.rows,{id:e.id}),m.ivrCampaignHopperFinals.count-=1,m.ivrCampaignHopperFinals.rows.length||p(),l.success({title:"HopperFinal deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETcampaign"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(a){d.cmHopperFinal.checkContactHopper(a).$promise.then(function(e){l.info({title:"The contact is in the hopper",msg:"Contact ID "+e.ContactId})}).catch(function(e){var n,t;"Not Found"===e.data?d.cmHopper.save((n=a,t={},t.phone=n.calleridnum,t.scheduledat=moment().format("YYYY-MM-DD HH:mm:ss"),t.countbusyretry=0,t.countcongestionretry=0,t.countnoanswerretry=0,t.countglobal=0,t.ContactId=n.ContactId,t.ListId=n.ListId,t.UserId=n.deleted?null:n.UserId,t.VoiceQueueId=n.VoiceQueueId,t.CampaignId=n.CampaignId,t.priority=n.recallme?3:2,t.recallme=!!n.recallme,t)).$promise.then(function(e){var n,t;l.info({title:"Restored Contact",msg:"Contact ID "+e.ContactId}),e.ContactId&&d.cmHopperHistory.save(((t={}).calleridnum=(n=a).calleridnum,t.calleridname=n.calleridname,t.scheduledat=moment().format("YYYY-MM-DD HH:mm:ss"),t.countbusyretry=n.countbusyretry,t.countcongestionretry=n.countcongestionretry,t.countnoanswerretry=n.countnoanswerretry,t.countglobal=n.countglobal,t.ContactId=n.ContactId,t.ListId=n.ListId,t.UserId=c.getCurrentUser().id,t.VoiceQueueId=n.VoiceQueueId,t.CampaignId=n.CampaignId,t.editedat=moment().format("YYYY-MM-DD HH:mm:ss"),t.edited=!0,t.state=25,t.statedesc="Restored",t.campaign=n.campaign,t.campaigntype=n.VoiceQueueId?"queue":"ivr",t))}).catch(function(e){_.isNil(e.data)||"Validation error"!==e.data.message?l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()}):l.info({title:"The contact is in the hopper",msg:"Contact ID "+a.ContactId})}):l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.contacts={},m.ivrCampaign={},m.ivrCampaignHopperFinals={count:0,rows:[]},m.selectedIvrCampaignHopperFinals=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,uniqueid,ContactId,calleridnum,calleridname,statedesc,countcongestionretry,countbusyretry,countnoanswerretry,countnosuchnumberretry,countdropretry,countabandonedretry,countmachineretry,countagentrejectretry,countglobal,scheduledat,starttime,responsetime,endtime,disposition,ListId,UserId,VoiceQueueId,CampaignId,recallme,deleted,campaign",sort:"-id",limit:10,page:1},m.init=function(e,n){m.ivrCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.CampaignId=m.ivrCampaign.id,m.query.id=m.ivrCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopperFinal?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopperFinal #")+e.id||"hopperFinal")+"</b> will be deleted.").ariaLabel("delete hopperFinal").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getIvrCampaignHopperFinals=p,m.createOrEditIvrCampaignHopperFinal=function(e,n){o.show({controller:"CreateOrEditHopperFinalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hopperFinals/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:m.ivrCampaign,hopperFinal:n,hopperFinals:m.ivrCampaignHopperFinals.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedIvrCampaignHopperFinals=function(){var e=angular.copy(m.selectedIvrCampaignHopperFinals);return m.selectedIvrCampaignHopperFinals=[],e},m.deleteIvrCampaignHopperFinal=g,m.deleteSelectedIvrCampaignHopperFinals=function(e){var n=o.confirm().title("Are you sure want to delete the selected hopperFinals?").htmlContent("<b>"+m.selectedIvrCampaignHopperFinals.length+" selected</b> will be deleted.").ariaLabel("delete hopperFinals").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedIvrCampaignHopperFinals.forEach(function(e){g(e)}),m.selectedIvrCampaignHopperFinals=[]})},m.moveIvrCampaignHopperFinal=v,m.moveContactsIvrCampaignHopperFinal=function(e){d.cmHopperFinal.moveContactsIvrCampaignHopperFinal({id:m.query.id,state:e}).$promise.then(function(e){_.isNil(e)&&_.isNil(e[0])?l.info({title:"Restored Contacts",msg:"0"}):l.info({title:"Restored Contacts",msg:JSON.stringify(e[0].affectedRows)})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},m.countContactsIvrCampaignHopperFinal=function(e){d.cmHopperFinal.countContactsIvrCampaignHopperFinal({id:e}).$promise.then(function(e){_.merge(m.contacts,e[0])}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},m.moveConfirm=function(e,n){var t=o.confirm().title("Are you sure want to restore the contact?").htmlContent("<b>Contact</b> will be restored.").ariaLabel("Restore Contact").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){v(e)},function(){console.log("CANCEL")})},m.moveSelectedIvrCampaignHopperFinals=function(e){var n=o.confirm().title("Are you sure want to restore the selected contacts?").htmlContent("<b> Contacts selected</b> will be restored.").ariaLabel("Restore Contacts").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedIvrCampaignHopperFinals.forEach(function(e){v(e)}),m.selectedIvrCampaignHopperFinals=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("IvrCampaignHopperFinalsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.ivrCampaignHopperHistories=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.campaign.getHopperHistories(m.query,u).$promise}function g(e){d.hopperHistory.delete({id:e.id}).$promise.then(function(){_.remove(m.ivrCampaignHopperHistories.rows,{id:e.id}),m.ivrCampaignHopperHistories.count-=1,m.ivrCampaignHopperHistories.rows.length||p(),l.success({title:"HopperHistory deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETcampaign"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.ivrCampaign={},m.ivrCampaignHopperHistories={count:0,rows:[]},m.selectedIvrCampaignHopperHistories=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,uniqueid,ContactId,calleridnum,calleridname,statedesc,scheduledat,starttime,responsetime,endtime",sort:"-id",limit:10,page:1},m.init=function(e,n){m.ivrCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.CampaignId=m.ivrCampaign.id,m.query.id=m.ivrCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopperHistory?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopperHistory #")+e.id||"hopperHistory")+"</b> will be deleted.").ariaLabel("delete hopperHistory").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getIvrCampaignHopperHistories=p,m.createOrEditIvrCampaignHopperHistory=function(e,n){o.show({controller:"CreateOrEditHopperHistoryDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hopperHistories/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:m.ivrCampaign,hopperHistory:n,hopperHistories:m.ivrCampaignHopperHistories.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedIvrCampaignHopperHistories=function(){var e=angular.copy(m.selectedIvrCampaignHopperHistories);return m.selectedIvrCampaignHopperHistories=[],e},m.deleteIvrCampaignHopperHistory=g,m.deleteSelectedIvrCampaignHopperHistories=function(e){var n=o.confirm().title("Are you sure want to delete the selected hopperHistories?").htmlContent("<b>"+m.selectedIvrCampaignHopperHistories.length+" selected</b> will be deleted.").ariaLabel("delete hopperHistories").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedIvrCampaignHopperHistories.forEach(function(e){g(e)}),m.selectedIvrCampaignHopperHistories=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("IvrCampaignHopperHistoriesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.ivrCampaignHoppers=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.campaign.getHoppers(m.query,u).$promise}function g(e){d.cmHopper.delete({id:e.id}).$promise.then(function(){_.remove(m.ivrCampaignHoppers.rows,{id:e.id}),m.ivrCampaignHoppers.count-=1,m.ivrCampaignHoppers.rows.length||p(),l.success({title:"Hopper deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETcampaign"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.ivrCampaign={},m.ivrCampaignHoppers={count:0,rows:[]},m.selectedIvrCampaignHoppers=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,ContactId,phone,countcongestionretry,countbusyretry,countnoanswerretry,countnosuchnumberretry,countdropretry,countabandonedretry,countmachineretry,countagentrejectretry,scheduledat,priority",sort:"-updatedAt",limit:10,page:1},m.arraypriority=_.keyBy([{option:"Highest",value:"'4'"},{option:"High",value:"'3'"},{option:"Medium",value:"'2'"},{option:"Low",value:"'1'"},{option:"Lowest",value:"'0'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),m.init=function(e,n){m.ivrCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.CampaignId=m.ivrCampaign.id,m.query.id=m.ivrCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopper?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopper #")+e.id||"hopper")+"</b> will be deleted.").ariaLabel("delete hopper").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getIvrCampaignHoppers=p,m.createOrEditIvrCampaignHopper=function(e,n){o.show({controller:"CreateOrEditHopperCampaignIdDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hoppers/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:m.ivrCampaign,hopper:n,hoppers:m.ivrCampaignHoppers.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedIvrCampaignHoppers=function(){var e=angular.copy(m.selectedIvrCampaignHoppers);return m.selectedIvrCampaignHoppers=[],e},m.deleteIvrCampaignHopper=g,m.deleteSelectedIvrCampaignHoppers=function(e){var n=o.confirm().title("Are you sure want to delete the selected hoppers?").htmlContent("<b>"+m.selectedIvrCampaignHoppers.length+" selected</b> will be deleted.").ariaLabel("delete hoppers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedIvrCampaignHoppers.forEach(function(e){g(e)}),m.selectedIvrCampaignHoppers=[]})},c.hasRole("admin")?d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){m.agents=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){m.agents=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:m.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(m.agents,{id:e.resourceId})});m.agents.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),m.agents=n})}else m.agents=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("IvrCampaignHoppersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MOTIONDIALER.EDIT_HOPPER",g.hopper=angular.copy(l),g.hoppers=r,g.newHopper=!1,g.hopper||(g.hopper={},g.title="MOTIONDIALER.NEW_HOPPER",g.newHopper=!0),n.params.id&&(g.hopper.CampaignId=n.params.id),g.addNewHopper=function(){g.errors=[],d.cmHopper.save(g.hopper).$promise.then(function(e){g.hoppers.unshift(e.toJSON()),o.success({title:"Hopper properly created",msg:g.hopper.name?g.hopper.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveHopper=function(){var t,a,i,s;g.errors=[],g.hopper.UserId=g.hopper.recallme?g.hopper.UserId:null,g.hopper.OwnerId=c.getCurrentUser().id,d.cmHopper.get({id:g.hopper.id,attributes:["scheduledat"]}).$promise.then(function(e){t=_.isNil(e)||_.isEmpty(e)?moment().format("YYYY-MM-DD HH:mm:ss"):e.scheduledat}).finally(function(){d.cmHopper.update({id:g.hopper.id},_.omit(g.hopper,["VoiceQueueId","CampaignId","ContactId","ListId"])).$promise.then(function(e){a=e,d.cmContact.get({id:a.ContactId,attributes:["firstName","lastName"]}).$promise.then(function(e){_.isNil(e)||_.isNil(e.firstName)||(i=e.firstName,_.isNil(e.lastName)||(i+=" "+e.lastName))}).catch(function(){i=void 0}).finally(function(){d.campaign.get({raw:!1,id:a.CampaignId,attributes:["name"]}).$promise.then(function(e){s=e.name}).catch(function(e){s=void 0}).finally(function(){d.cmHopperHistory.save({state:24,statedesc:"Edited",scheduledat:t,calleridnum:a.phone,calleridname:i,campaigntype:a.VoiceQueueId?"queue":"ivr",campaign:s,editedat:moment().format("YYYY-MM-DD HH:mm:ss"),edited:!0,ListId:a.ListId,UserId:c.getCurrentUser().id,VoiceQueueId:a.VoiceQueueId,CampaignId:a.CampaignId,ContactId:a.ContactId,callback:a.callback,callbackuniqueid:a.callbackuniqueid,countbusyretry:a.countbusyretry,countcongestionretry:a.countcongestionretry,countglobal:a.countglobal,countnoanswerretry:a.countnoanswerretry,followuptime:a.followuptime,recallme:a.recallme})})});var n=_.find(g.hoppers,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Hopper properly saved!",msg:g.hopper.name?g.hopper.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})})},g.deleteHopper=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The hopper will be deleted.").ariaLabel("Delete Hopper").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cmHopper.delete({id:g.hopper.id}).$promise.then(function(){_.remove(g.hoppers,{id:g.hopper.id}),o.success({title:"Hopper properly deleted!",msg:(g.hopper.name||"hopper")+" has been deleted!"}),v(g.hopper)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){g.agents=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){g.agents=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.agents,{id:e.resourceId})});g.agents.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),g.agents=n})}else g.agents=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","hoppers","hopper","api","Auth","license","setting","crudPermissions"],angular.module("app.motiondialer").controller("CreateOrEditHopperCampaignIdDialogController",e)}(),function(){"use strict";function e(t,a){var i=this;i.ivrCampaign={},i.init=function(n){i.ivrCampaign=n,t.cmHopper.get({limit:0,CampaignId:n.id}).$promise.then(function(e){return i.total=e.count||0,t.cmHopper.get({limit:0,CampaignId:n.id,active:!1,countbusyretry:0,countcongestionretry:0,countnoanswerretry:0,countnosuchnumberretry:0,countdropretry:0,countabandonedretry:0,countmachineretry:0,countagentrejectretry:0}).$promise}).then(function(e){return i.fresh=e.count||0,t.cmHopperFinal.get({limit:0,CampaignId:n.id}).$promise}).then(function(e){i.closed=e.count||0}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["api","toasty"],angular.module("app.motiondialer").controller("IvrCampaignHopperStatisticsController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l){var d=this;function c(){return a(function(t,n){return a(function(n,t){return s.cmList.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return d.items=e.rows?e.rows:[],r.hasRole("admin")?e:d.section?d.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:d.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return d.allowedItems=_.map(n,function(e){return _.find(d.items,{id:r.hasRole("admin")||d.section.autoAssociation?e.id:e.resourceId})}),d.startingAllowedItems=angular.copy(d.allowedItems),d.items.forEach(function(e){var n=_.find(d.allowedItems,{id:e.id});"admin"===d.currentUser.role?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s[d.apiRoute][d.getApi]({id:d.ivrCampaign.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];d.selectedItems=_.map(n,function(e){return _.find(d.items,{id:e.id})}),d.startingSelectedItems=angular.copy(d.selectedItems),d.dualMultiselectOptions.selectedItems=d.selectedItems,d.dualMultiselectOptions.items=_.differenceBy(d.allowedItems,d.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}d.currentUser=r.getCurrentUser(),d.ivrCampaign=n,d.crudPermissions=l,d.apiRoute="campaign",d.getApi="getLists",d.addApi="addLists",d.removeApi="removeLists",d.items=[],d.allowedItems=[],d.selectedItems=[],d.startingAllowedItems=[],d.startingSelectedItems=[],d.pendingChanges=!1,d.loading=!1,d.dualMultiselectOptions={allowedItems:[],selectedItems:[],showSelectAndDeselectAll:!1,orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("MOTIONDIALER.ALL_LISTS"),labelSelected:t.instant("MOTIONDIALER.SELECTED_LISTS"),transferCallback:function(e,n){var t=_.xorBy(d.startingSelectedItems,d.selectedItems,"id");d.pendingChanges=!_.isEmpty(t)}},d.onInit=function(){return r.hasRole("admin")?c().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:d.currentUser.userProfileId,name:"Lists"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return d.section=e,c()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},d.saveLists=function(){d.loading=!0;var e=_.differenceBy(d.startingSelectedItems,d.selectedItems,"id"),n=_.differenceBy(d.selectedItems,d.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.removeApi]({id:d.ivrCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.addApi]({id:d.ivrCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){d.pendingChanges=!1,d.startingAllowedItems=angular.copy(d.allowedItems),d.startingSelectedItems=angular.copy(d.selectedItems),i.success({title:"SUCCESS",msg:"Lists association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})}).finally(function(){d.loading=!1});var t},d.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","ivrCampaign","$translate","$timeout","Auth","crudPermissions"],angular.module("app.motiondialer").controller("IvrCampaignlistaddController",e)}(),function(){"use strict";function e(e,n,a,i,s,t,o,r){var l=this;function d(){n.hide()}function c(e,n){var t=n.id;o.enqueue(function(){return i.campaign.removeLists({id:e,ids:t}).$promise.then(function(){return i.campaign.addLists({id:e,ids:t,dialCheckDuplicateType:"never"}).$promise}).then(function(){a.success({title:"Reset Succesfull",msg:"List "+n.name+" has been reset"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:queueCampaign.RESETLIST",msg:e.status?JSON.stringify(e.data):e.toString()})})})}l.selected=[],l.items=t||[],l.loading=!1,l.closeDialog=d,l.exists=function(e,n){return-1<n.indexOf(e)},l.toggle=function(e,n){var t=n.indexOf(e);-1<t?n.splice(t,1):n.push(e)},l.isIndeterminate=function(){return 0!==l.selected.length&&l.selected.length!==l.items.length},l.isChecked=function(){return l.selected.length===l.items.length},l.toggleAll=function(){l.selected.length===l.items.length?l.selected=[]:(0===l.selected.length||0<l.selected.length)&&(l.selected=l.items.slice(0))},l.listSelected=function(){l.loading=!0,r(function(e,n){for(var t=0;t<l.selected.length;t+=1)c(s.id,l.selected[t]);var a;a=e,o.enqueue(function(){return a()})}).finally(function(){l.loading=!1,d()})}}e.$inject=["$scope","$mdDialog","toasty","api","ivrCampaign","listsCampaign","Sequence","$q"],angular.module("app.motiondialer").controller("IvrCampaignresetlistController",e)}(),function(){"use strict";function e(t,e,i,s,a,n,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=n,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=e.protocol()+"://"+e.host(),u.ivrCampaign=c||t.params.ivrCampaign||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=t.params.tab||0,u.clonedialog=function(e,n){i.show({controller:"IvrCampaigncloneController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:u.ivrCampaigns?u.ivrCampaigns.rows:[],crudPermissions:u.crudPermissions}})},u.listadddialog=function(e,n){i.show({controller:"IvrCampaignlistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/listadd/listadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:u.ivrCampaigns?u.ivrCampaigns.rows:[],crudPermissions:u.crudPermissions}})},u.blacklistadddialog=function(e,n){i.show({controller:"IvrCampaignblacklistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/blacklistadd/blacklistadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:u.ivrCampaigns?u.ivrCampaigns.rows:[],crudPermissions:u.crudPermissions}})},u.resetlistdialog=function(n,t){r.campaign.getLists({id:n.id,fields:"id,name",nolimit:!0}).$promise.then(function(a){if(_.isNil(a.rows)||_.isEmpty(a.rows))l.info({title:"Campaign Without Lists"});else if(1===a.rows.length){var e=i.confirm().title("Are you sure want to reset the list "+a.rows[0].name+" ?").htmlContent("<b>"+a.rows[0].name+"</b> will be reset.").ariaLabel("Reset List").targetEvent(t).ok("OK").cancel("CANCEL");i.show(e).then(function(){var e,n,t;e=u.ivrCampaign.id,n=a.rows[0],t=n.id,r.campaign.removeLists({id:e,ids:t}).$promise.then(function(){return r.campaign.addLists({id:e,ids:t,dialCheckDuplicateType:"never"}).$promise}).then(function(){l.success({title:"Reset Succesfull",msg:"List "+n.name+" has been reset"})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ivrCampaign.REMOVELIST",msg:e.status?JSON.stringify(e.data):e.toString()})})})}else i.show({controller:"IvrCampaignresetlistController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/resetlist/resetlist.html",parent:angular.element(s.body),targetEvent:t,clickOutsideToClose:!1,locals:{ivrCampaign:n,listsCampaign:a?a.rows:[]}})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:RESETLIST",msg:e.status?JSON.stringify(e.data):e.toString()})})},u.gotogoto=function(e,n){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:1510}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.motiondialer.realtime.ivr_campaigns",{}):l.info({title:a.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:a.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.motiondialer.realtime.ivr_campaigns",{})}},u.alert=l.info,u.gotoIvrCampaigns=function(){t.go("app.motiondialer.ivrCampaigns",{},{reload:"app.motiondialer.ivrCampaigns"})},u.saveIvrCampaign=function(){r.campaign.update({id:u.ivrCampaign.id},u.ivrCampaign).$promise.then(function(){l.success({title:"IvrCampaign updated!",msg:u.ivrCampaign.name?u.ivrCampaign.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.trunks=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.trunks=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.trunks,{id:e.resourceId})});u.trunks.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),u.trunks=n})}else u.trunks=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.projects=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PROJECTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.projects=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1103}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.projects,{id:e.resourceId})}),t=null;if(u.ivrCampaign&&(t=_.find(u.projects,{id:Number(u.ivrCampaign.SquareProjectId)})),t&&!_.some(n,["id",t.id])){var a=_.find(u.projects,{id:t.id});a.canSelect=!1,n.push(a)}u.projects=n})}else{var t=[],a=null;u.ivrCampaign&&(a=_.find(u.projects,{id:Number(u.ivrCampaign.SquareProjectId)}));for(var i=0;i<u.projects.length;i++)a&&u.projects[i].id===a.id&&(u.projects[i].canSelect=!1,t.push(u.projects[i]));u.projects=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){u.interval=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){u.interval=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.interval,{id:e.resourceId})}),t=null;if(u.ivrCampaign&&(t=_.find(u.interval,{id:Number(u.ivrCampaign.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(u.interval,{id:t.id});a.canSelect=!1,n.push(a)}u.interval=n})}else{var t=[],a=null;u.ivrCampaign&&(a=_.find(u.interval,{id:Number(u.ivrCampaign.IntervalId)}));for(var i=0;i<u.interval.length;i++)a&&u.interval[i].id===a.id&&(u.interval[i].canSelect=!1,t.push(u.interval[i]));u.interval=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","ivrCampaign","userProfileSection"],angular.module("app.motiondialer").controller("IvrCampaignController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.ivrCampaigns=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="ivrCampaigns",f.listOrder="",f.listOrderAsc=null,f.selectedIvrCampaigns=[],f.query={fields:"createdAt,updatedAt,id,name,active,TrunkId,TrunkBackupId,type,IntervalId,dialCheckDuplicateType,dialCutDigit,SquareProjectId,limitCalls,description,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialRandomLastDigitCallerIdNumber,dialOriginateTimeout,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,dialOrderByScheduledAt,dialGlobalInterval,dialTimezone,dialPrefix,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength",type:"ivr",sort:"-updatedAt",limit:10,page:1},f.arraydialCheckDuplicateType=_.keyBy([{option:"ALWAYS",value:"'always'"},{option:"NEVER",value:"'never'"},{option:"ONLY_IF_OPEN",value:"'onlyIfOpen'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraydialOrderByScheduledAt=_.keyBy([{option:"DESC",value:"'DESC'"},{option:"ASC",value:"'ASC'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.motiondialer.ivrCampaigns.edit",{id:e.id,ivrCampaign:e,crudPermissions:f.crudPermissions})},f.clonedialog=function(e,n){i.show({controller:"IvrCampaigncloneController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:f.ivrCampaigns?f.ivrCampaigns.rows:[],crudPermissions:f.crudPermissions}})},f.listadddialog=function(e,n){i.show({controller:"IvrCampaignlistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/listadd/listadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:f.ivrCampaigns?f.ivrCampaigns.rows:[],crudPermissions:f.crudPermissions}})},f.blacklistadddialog=function(e,n){i.show({controller:"IvrCampaignblacklistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/blacklistadd/blacklistadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:f.ivrCampaigns?f.ivrCampaigns.rows:[],crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("ivrCampaign")+"?").htmlContent("<b>"+(e.name||"ivrCampaign")+"</b> will be deleted.").ariaLabel("delete ivrCampaign").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:1510}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.motiondialer.realtime.ivr_campaigns",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.motiondialer.realtime.ivr_campaigns",{})}},f.success=E,f.getIvrCampaigns=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.campaign.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="IvrCampaigns",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditIvrCampaign=function(e,n){i.show({controller:"CreateOrEditIvrCampaignDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:n,ivrCampaigns:f.ivrCampaigns.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteIvrCampaign=y,f.exportSelectedIvrCampaigns=function(){var e=angular.copy(f.selectedIvrCampaigns);return f.selectedIvrCampaigns=[],e},f.deleteSelectedIvrCampaigns=function(e){var n=i.confirm().title("Are you sure want to delete the selected ivrCampaigns?").htmlContent("<b>"+f.selectedIvrCampaigns.length+" selected</b> will be deleted.").ariaLabel("delete IvrCampaigns").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedIvrCampaigns.forEach(function(e){y(e)}),f.selectedIvrCampaigns=[]})},f.deselectIvrCampaigns=function(){f.selectedIvrCampaigns=[]},f.selectAllIvrCampaigns=function(){f.selectedIvrCampaigns=f.ivrCampaigns.rows},g.hasRole("admin")?m.trunk.get({fields:"id,name",sort:"name",table:"true"}).$promise.then(function(e){f.trunks=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.trunk.get({fields:"id,name",sort:"name",table:"true"}).$promise.then(function(e){f.trunks=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.trunks,{id:e.resourceId})});f.trunks.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),f.trunks=n})}else f.trunks=[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),g.hasRole("admin")?m.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.projects=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PROJECTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.projects=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1103}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(f.projects,{id:e.resourceId})}),a=null;a=[],f.ivrCampaigns.rows.forEach(function(e){var n=_.find(f.projects,{id:Number(e.SquareProjectId)});a.push(n)}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(f.projects,{id:e.id});n.canSelect=!1,t.push(n)}}),f.projects=t})}else{var t=[],a=[];f.ivrCampaigns.rows.forEach(function(e){var n=_.find(f.projects,{id:Number(e.SquareProjectId)});a.push(n)});for(var i=0;i<f.projects.length;i++){_.some(a,{id:f.projects[i].id})&&(f.projects[i].canSelect=!1,t.push(f.projects[i]))}f.projects=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}),g.hasRole("admin")?m.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){f.interval=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){f.interval=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.interval,{id:e.resourceId})}),t=null;if(f.ivrCampaign&&(t=_.find(f.interval,{id:Number(f.ivrCampaign.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.interval,{id:t.id});a.canSelect=!1,n.push(a)}f.interval=n})}else{var t=[],a=null;f.ivrCampaign&&(a=_.find(f.interval,{id:Number(f.ivrCampaign.IntervalId)}));for(var i=0;i<f.interval.length;i++)a&&f.interval[i].id===a.id&&(f.interval[i].canSelect=!1,t.push(f.interval[i]));f.interval=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.ivrCampaigns=e||{count:0,rows:[]}}function y(e){m.campaign.delete({id:e.id}).$promise.then(function(){_.remove(f.ivrCampaigns.rows,{id:e.id}),f.ivrCampaigns.count-=1,f.ivrCampaigns.rows.length||f.getIvrCampaigns(),p.success({title:_.startCase("IvrCampaign")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEcampaign"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEcampaign",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getIvrCampaigns())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","ivrCampaigns","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.motiondialer").controller("IvrCampaignsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MOTIONDIALER.EDIT_QUEUECAMPAIGN",g.queueCampaign=angular.copy(l),g.queueCampaigns=r,g.newQueueCampaign=!1,g.queueCampaign||(g.queueCampaign={dialActive:!0,type:"outbound",dialCheckDuplicateType:"always",dialCutDigit:0,autopause:"no",ringinuse:"no",timeoutrestart:"no",setinterfacevar:"no",setqueuevar:"no",setqueueentryvar:"no",dialOrderByScheduledAt:"ASC",dialGlobalInterval:"07:00-22:00,*,*,*",dialAMDInitialSilence:2500,dialAMDGreeting:1500,dialAMDAfterGreetingSilence:800,dialAMDTotalAnalysisTime:5e3,dialAMDMinWordLength:100,dialAMDBetweenWordsSilence:50,dialAMDMaximumNumberOfWords:3,dialAMDSilenceThreshold:256,dialAMDMaximumWordLength:5e3,dialMethod:"progressive",dialPowerLevel:1,dialPredictiveOptimization:"dropRate",dialPredictiveOptimizationPercentage:3,dialPredictiveInterval:10,dialLimitQueue:0,dialRandomLastDigitCallerIdNumber:0,dialOriginateTimeout:30,dialQueueOptions:"tTxX",dialQueueTimeout:3,strategy:"rrmemory",timeout:3,retry:3,weight:1,dialGlobalMaxRetry:4,dialCongestionMaxRetry:3,dialCongestionRetryFrequency:150,dialBusyMaxRetry:3,dialBusyRetryFrequency:150,dialNoAnswerMaxRetry:3,dialNoAnswerRetryFrequency:150,dialNoSuchNumberMaxRetry:3,dialNoSuchNumberRetryFrequency:150,dialDropMaxRetry:3,dialDropRetryFrequency:150,dialAbandonedMaxRetry:3,dialAbandonedRetryFrequency:150,dialMachineMaxRetry:3,dialMachineRetryFrequency:150,dialAgentRejectMaxRetry:3,dialAgentRejectRetryFrequency:150,dialPredictiveIntervalMaxThreshold:20,dialPredictiveIntervalMinThreshold:10},g.title="MOTIONDIALER.NEW_QUEUECAMPAIGN",g.newQueueCampaign=!0),g.addNewQueueCampaign=function(){g.errors=[],d.voiceQueue.save(g.queueCampaign).$promise.then(function(e){g.queueCampaigns.unshift(e.toJSON()),o.success({title:"QueueCampaign properly created",msg:g.queueCampaign.name?g.queueCampaign.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveQueueCampaign=function(){g.errors=[],d.voiceQueue.update({id:g.queueCampaign.id},g.queueCampaign).$promise.then(function(e){var n=_.find(g.queueCampaigns,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"QueueCampaign properly saved!",msg:g.queueCampaign.name?g.queueCampaign.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteQueueCampaign=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The queueCampaign will be deleted.").ariaLabel("Delete QueueCampaign").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceQueue.delete({id:g.queueCampaign.id}).$promise.then(function(){_.remove(g.queueCampaigns,{id:g.queueCampaign.id}),o.success({title:"QueueCampaign properly deleted!",msg:(g.queueCampaign.name||"queueCampaign")+" has been deleted!"}),v(g.queueCampaign)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.trunks=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.trunks=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.trunks,{id:e.resourceId})}),t=null;if(g.queueCampaign&&(t=_.find(g.trunks,{id:Number(g.queueCampaign.TrunkId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.trunks,{id:t.id});a.canSelect=!1,n.push(a)}g.trunks=n})}else{var t=[],a=null;g.queueCampaign&&(a=_.find(g.trunks,{id:Number(g.queueCampaign.TrunkId)}));for(var i=0;i<g.trunks.length;i++)a&&g.trunks[i].id===a.id&&(g.trunks[i].canSelect=!1,t.push(g.trunks[i]));g.trunks=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.hasRole("admin")?d.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){g.interval=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){g.interval=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.interval,{id:e.resourceId})}),t=null;if(g.queueCampaign&&(t=_.find(g.interval,{id:Number(g.queueCampaign.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.interval,{id:t.id});a.canSelect=!1,n.push(a)}g.interval=n})}else{var t=[],a=null;g.queueCampaign&&(a=_.find(g.interval,{id:Number(g.queueCampaign.IntervalId)}));for(var i=0;i<g.interval.length;i++)a&&g.interval[i].id===a.id&&(g.interval[i].canSelect=!1,t.push(g.interval[i]));g.interval=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","queueCampaigns","queueCampaign","api","Auth","license","setting","crudPermissions"],angular.module("app.motiondialer").controller("CreateOrEditQueueCampaignDialogController",e)}(),function(){"use strict";function e(e,l,a,d,n,t,i,s,o,r){var c=this;function m(){return l(function(t,n){return l(function(n,t){return d.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],o.hasRole("admin")?e:c.section?c.section.autoAssociation?e:l(function(n,t){return d.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:o.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),l(function(n,t){return d.voiceQueue.getAgents({id:c.queueCampaign.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserVoiceQueue?"penalty "+e.UserVoiceQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=o.getCurrentUser(),c.queueCampaign=n,c.crudPermissions=r,c.penalty=0,c.realtime=i,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return o.hasRole("admin")?m().catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):l(function(t,n){d.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceWith(c.selectedItems,c.startingSelectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});return(t=e,l(function(e,n){_.isEmpty(t)?e():d.voiceQueue.removeAgents({id:c.queueCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return r=n,l(function(e,n){if(_.isEmpty(r))e();else{for(var t=[],a=_.groupBy(r,"penalty"),i=0;i<Object.keys(a).length;i++){var s=Object.keys(a)[i],o=_.filter(r,["penalty",s]);t.push(d.voiceQueue.addAgents({id:c.queueCampaign.id,ids:_.map(o,"id"),penalty:_.trim(s,"penalty "),realtime:c.realtime||!1}).$promise)}l.all(t).then(function(){e()}).catch(function(e){n(e)})}});var r}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),a.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:s.instant("MOTIONDIALER.ALL_AGENTS"),labelSelected:s.instant("MOTIONDIALER.SELECTED_AGENTS"),transferCallback:function(e,n){n?e.forEach(function(e){e.penalty=void 0}):e.forEach(function(e){e.penalty="penalty "+c.penalty});var t=_.xorWith(c.startingSelectedItems,c.selectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","queueCampaign","queueCampaigns","realtime","$translate","Auth","crudPermissions"],angular.module("app.motiondialer").controller("QueueCampaignagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l){var d=this;function c(){return a(function(t,n){return a(function(n,t){return s.cmList.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return d.items=e.rows?e.rows:[],r.hasRole("admin")?e:d.section?d.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:d.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return d.allowedItems=_.map(n,function(e){return _.find(d.items,{id:r.hasRole("admin")||d.section.autoAssociation?e.id:e.resourceId})}),d.startingAllowedItems=angular.copy(d.allowedItems),d.items.forEach(function(e){var n=_.find(d.allowedItems,{id:e.id});"admin"===d.currentUser.role?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s[d.apiRoute][d.getApi]({id:d.queueCampaign.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];d.selectedItems=_.map(n,function(e){return _.find(d.items,{id:e.id})}),d.startingSelectedItems=angular.copy(d.selectedItems),d.dualMultiselectOptions.selectedItems=d.selectedItems,d.dualMultiselectOptions.items=_.differenceBy(d.allowedItems,d.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}d.currentUser=r.getCurrentUser(),d.queueCampaign=n,d.crudPermissions=l,d.apiRoute="voiceQueue",d.getApi="getBlackLists",d.addApi="addBlackLists",d.removeApi="removeBlackLists",d.items=[],d.allowedItems=[],d.selectedItems=[],d.startingAllowedItems=[],d.startingSelectedItems=[],d.pendingChanges=!1,d.loading=!1,d.dualMultiselectOptions={allowedItems:[],selectedItems:[],showSelectAndDeselectAll:!1,orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("MOTIONDIALER.ALL_LISTS"),labelSelected:t.instant("MOTIONDIALER.SELECTED_LISTS"),transferCallback:function(e,n){var t=_.xorBy(d.startingSelectedItems,d.selectedItems,"id");d.pendingChanges=!_.isEmpty(t)}},d.onInit=function(){return r.hasRole("admin")?c().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:d.currentUser.userProfileId,name:"Lists"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return d.section=e,c()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},d.saveLists=function(){d.loading=!0;var e=_.differenceBy(d.startingSelectedItems,d.selectedItems,"id"),n=_.differenceBy(d.selectedItems,d.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.removeApi]({id:d.queueCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.addApi]({id:d.queueCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){d.pendingChanges=!1,d.startingAllowedItems=angular.copy(d.allowedItems),d.startingSelectedItems=angular.copy(d.selectedItems),i.success({title:"SUCCESS",msg:"Lists association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})}).finally(function(){d.loading=!1});var t},d.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","queueCampaign","$translate","$timeout","Auth","crudPermissions"],angular.module("app.motiondialer").controller("QueueCampaignblacklistaddController",e)}(),function(){"use strict";function e(n,t,a,e,i,s,o){var r=this;function l(e){n.hide(e)}r.newQueueCampaign=!0,r.queueCampaign=angular.copy(i),r.queueCampaigns=s,r.title=o.instant("MOTIONDIALER.CLONE_QUEUECAMPAIGN"),i&&i.name&&(r.title+=": "+i.name),r.cloneQueueCampaign=function(){return e.voiceQueue.clone({id:i.id},r.queueCampaign).$promise.then(function(e){r.queueCampaigns.unshift(e.toJSON()),a.success({title:"QueueCampaign properly cloned",msg:r.queueCampaign.name?r.queueCampaign.name+" has been cloned!":""}),t.go("app.motiondialer.queueCampaigns.edit",{id:e.id}),l(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){r.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.clone"}];for(var n=0;n<e.data.errors.length;n+=1)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.clone",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},r.closeDialog=l}e.$inject=["$mdDialog","$state","toasty","api","queueCampaign","queueCampaigns","$translate"],angular.module("app.motiondialer").controller("QueueCampaigncloneController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.queueCampaignHopperBlacks=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.voiceQueue.getHopperBlacks(m.query,u).$promise}function g(e){d.hopperBlack.delete({id:e.id}).$promise.then(function(){_.remove(m.queueCampaignHopperBlacks.rows,{id:e.id}),m.queueCampaignHopperBlacks.count-=1,m.queueCampaignHopperBlacks.rows.length||p(),l.success({title:"HopperBlack deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETvoiceQueue"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.queueCampaign={},m.queueCampaignHopperBlacks={count:0,rows:[]},m.selectedQueueCampaignHopperBlacks=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,ContactId,phone",sort:"-id",limit:10,page:1},m.init=function(e,n){m.queueCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.VoiceQueueId=m.queueCampaign.id,m.query.id=m.queueCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopperBlack?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopperBlack #")+e.id||"hopperBlack")+"</b> will be deleted.").ariaLabel("delete hopperBlack").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getQueueCampaignHopperBlacks=p,m.createOrEditQueueCampaignHopperBlack=function(e,n){o.show({controller:"CreateOrEditHopperBlackDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hopperBlacks/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:m.queueCampaign,hopperBlack:n,hopperBlacks:m.queueCampaignHopperBlacks.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedQueueCampaignHopperBlacks=function(){var e=angular.copy(m.selectedQueueCampaignHopperBlacks);return m.selectedQueueCampaignHopperBlacks=[],e},m.deleteQueueCampaignHopperBlack=g,m.deleteSelectedQueueCampaignHopperBlacks=function(e){var n=o.confirm().title("Are you sure want to delete the selected hopperBlacks?").htmlContent("<b>"+m.selectedQueueCampaignHopperBlacks.length+" selected</b> will be deleted.").ariaLabel("delete hopperBlacks").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedQueueCampaignHopperBlacks.forEach(function(e){g(e)}),m.selectedQueueCampaignHopperBlacks=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("QueueCampaignHopperBlacksController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.queueCampaignHopperFinals=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.voiceQueue.getHopperFinals(m.query,u).$promise}function g(e){d.hopperFinal.delete({id:e.id}).$promise.then(function(){_.remove(m.queueCampaignHopperFinals.rows,{id:e.id}),m.queueCampaignHopperFinals.count-=1,m.queueCampaignHopperFinals.rows.length||p(),l.success({title:"HopperFinal deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETvoiceQueue"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(a){d.cmHopperFinal.checkContactHopper(a).$promise.then(function(e){l.info({title:"The contact is in the hopper",msg:"Contact ID "+e.ContactId})}).catch(function(e){var n,t;"Not Found"===e.data?d.cmHopper.save((n=a,t={},t.phone=n.calleridnum,t.scheduledat=moment().format("YYYY-MM-DD HH:mm:ss"),t.countbusyretry=0,t.countcongestionretry=0,t.countnoanswerretry=0,t.countglobal=0,t.ContactId=n.ContactId,t.ListId=n.ListId,t.UserId=n.deleted?null:n.UserId,t.VoiceQueueId=n.VoiceQueueId,t.CampaignId=n.CampaignId,t.priority=n.recallme?3:2,t.recallme=!!n.recallme,t)).$promise.then(function(e){var n,t;l.info({title:"Restored Contact",msg:"Contact ID "+e.ContactId}),e.ContactId&&d.cmHopperHistory.save(((t={}).calleridnum=(n=a).calleridnum,t.calleridname=n.calleridname,t.scheduledat=moment().format("YYYY-MM-DD HH:mm:ss"),t.countbusyretry=n.countbusyretry,t.countcongestionretry=n.countcongestionretry,t.countnoanswerretry=n.countnoanswerretry,t.countglobal=n.countglobal,t.ContactId=n.ContactId,t.ListId=n.ListId,t.UserId=c.getCurrentUser().id,t.VoiceQueueId=n.VoiceQueueId,t.CampaignId=n.CampaignId,t.editedat=moment().format("YYYY-MM-DD HH:mm:ss"),t.edited=!0,t.state=25,t.statedesc="Restored",t.campaign=n.campaign,t.campaigntype=n.VoiceQueueId?"queue":"ivr",t))}).catch(function(e){_.isNil(e.data)||"Validation error"!==e.data.message?l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()}):l.info({title:"The contact is in the hopper",msg:"Contact ID "+a.ContactId})}):l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.contacts={},m.queueCampaign={},m.queueCampaignHopperFinals={count:0,rows:[]},m.selectedQueueCampaignHopperFinals=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,uniqueid,ContactId,calleridnum,calleridname,statedesc,countcongestionretry,countbusyretry,countnoanswerretry,countnosuchnumberretry,countdropretry,countabandonedretry,countmachineretry,countagentrejectretry,countglobal,scheduledat,starttime,responsetime,endtime,disposition,secondDisposition,thirdDisposition,ListId,UserId,VoiceQueueId,CampaignId,recallme,deleted,campaign",sort:"-id",limit:10,page:1},m.init=function(e,n){m.queueCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.VoiceQueueId=m.queueCampaign.id,m.query.id=m.queueCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopperFinal?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopperFinal #")+e.id||"hopperFinal")+"</b> will be deleted.").ariaLabel("delete hopperFinal").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getQueueCampaignHopperFinals=p,m.createOrEditQueueCampaignHopperFinal=function(e,n){o.show({controller:"CreateOrEditHopperFinalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hopperFinals/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:m.queueCampaign,hopperFinal:n,hopperFinals:m.queueCampaignHopperFinals.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedQueueCampaignHopperFinals=function(){var e=angular.copy(m.selectedQueueCampaignHopperFinals);return m.selectedQueueCampaignHopperFinals=[],e},m.deleteQueueCampaignHopperFinal=g,m.deleteSelectedQueueCampaignHopperFinals=function(e){var n=o.confirm().title("Are you sure want to delete the selected hopperFinals?").htmlContent("<b>"+m.selectedQueueCampaignHopperFinals.length+" selected</b> will be deleted.").ariaLabel("delete hopperFinals").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedQueueCampaignHopperFinals.forEach(function(e){g(e)}),m.selectedQueueCampaignHopperFinals=[]})},m.moveQueueCampaignHopperFinal=v,m.moveContactsQueueCampaignHopperFinal=function(e){d.cmHopperFinal.moveContactsQueueCampaignHopperFinal({id:m.query.id,state:e}).$promise.then(function(e){_.isNil(e)&&_.isNil(e[0])?l.info({title:"Restored Contacts",msg:"0"}):l.info({title:"Restored Contacts",msg:JSON.stringify(e[0].affectedRows)})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},m.countContactsQueueCampaignHopperFinal=function(e){d.cmHopperFinal.countContactsQueueCampaignHopperFinal({id:e}).$promise.then(function(e){_.merge(m.contacts,e[0])}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},m.moveConfirm=function(e,n){var t=o.confirm().title("Are you sure want to restore the contact?").htmlContent("<b>Contact</b> will be restored.").ariaLabel("Restore Contact").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){v(e)},function(){console.log("CANCEL")})},m.moveSelectedQueueCampaignHopperFinals=function(e){var n=o.confirm().title("Are you sure want to restore the selected contacts?").htmlContent("<b> Contacts selected</b> will be restored.").ariaLabel("Restore Contacts").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedQueueCampaignHopperFinals.forEach(function(e){v(e)}),m.selectedQueueCampaignHopperFinals=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("QueueCampaignHopperFinalsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.queueCampaignHopperHistories=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.voiceQueue.getHopperHistories(m.query,u).$promise}function g(e){d.hopperHistory.delete({id:e.id}).$promise.then(function(){_.remove(m.queueCampaignHopperHistories.rows,{id:e.id}),m.queueCampaignHopperHistories.count-=1,m.queueCampaignHopperHistories.rows.length||p(),l.success({title:"HopperHistory deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETvoiceQueue"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.queueCampaign={},m.queueCampaignHopperHistories={count:0,rows:[]},m.selectedQueueCampaignHopperHistories=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,uniqueid,ContactId,calleridnum,calleridname,statedesc,scheduledat,starttime,responsetime,endtime",sort:"-id",limit:10,page:1},m.init=function(e,n){m.queueCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.VoiceQueueId=m.queueCampaign.id,m.query.id=m.queueCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopperHistory?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopperHistory #")+e.id||"hopperHistory")+"</b> will be deleted.").ariaLabel("delete hopperHistory").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getQueueCampaignHopperHistories=p,m.createOrEditQueueCampaignHopperHistory=function(e,n){o.show({controller:"CreateOrEditHopperHistoryDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hopperHistories/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:m.queueCampaign,hopperHistory:n,hopperHistories:m.queueCampaignHopperHistories.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedQueueCampaignHopperHistories=function(){var e=angular.copy(m.selectedQueueCampaignHopperHistories);return m.selectedQueueCampaignHopperHistories=[],e},m.deleteQueueCampaignHopperHistory=g,m.deleteSelectedQueueCampaignHopperHistories=function(e){var n=o.confirm().title("Are you sure want to delete the selected hopperHistories?").htmlContent("<b>"+m.selectedQueueCampaignHopperHistories.length+" selected</b> will be deleted.").ariaLabel("delete hopperHistories").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedQueueCampaignHopperHistories.forEach(function(e){g(e)}),m.selectedQueueCampaignHopperHistories=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("QueueCampaignHopperHistoriesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.queueCampaignHoppers=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.voiceQueue.getHoppers(m.query,u).$promise}function g(e){d.cmHopper.delete({id:e.id}).$promise.then(function(){_.remove(m.queueCampaignHoppers.rows,{id:e.id}),m.queueCampaignHoppers.count-=1,m.queueCampaignHoppers.rows.length||p(),l.success({title:"Hopper deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETvoiceQueue"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.queueCampaign={},m.queueCampaignHoppers={count:0,rows:[]},m.selectedQueueCampaignHoppers=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,ContactId,phone,countcongestionretry,countbusyretry,countnoanswerretry,countnosuchnumberretry,countdropretry,countabandonedretry,countmachineretry,countagentrejectretry,scheduledat,priority,recallme,UserId",sort:"-updatedAt",limit:10,page:1},m.arraypriority=_.keyBy([{option:"Highest",value:"'4'"},{option:"High",value:"'3'"},{option:"Medium",value:"'2'"},{option:"Low",value:"'1'"},{option:"Lowest",value:"'0'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),m.init=function(e,n){m.queueCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.VoiceQueueId=m.queueCampaign.id,m.query.id=m.queueCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopper?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopper #")+e.id||"hopper")+"</b> will be deleted.").ariaLabel("delete hopper").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getQueueCampaignHoppers=p,m.createOrEditQueueCampaignHopper=function(e,n){o.show({controller:"CreateOrEditHopperVoiceQueueIdDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hoppers/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:m.queueCampaign,hopper:n,hoppers:m.queueCampaignHoppers.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedQueueCampaignHoppers=function(){var e=angular.copy(m.selectedQueueCampaignHoppers);return m.selectedQueueCampaignHoppers=[],e},m.deleteQueueCampaignHopper=g,m.deleteSelectedQueueCampaignHoppers=function(e){var n=o.confirm().title("Are you sure want to delete the selected hoppers?").htmlContent("<b>"+m.selectedQueueCampaignHoppers.length+" selected</b> will be deleted.").ariaLabel("delete hoppers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedQueueCampaignHoppers.forEach(function(e){g(e)}),m.selectedQueueCampaignHoppers=[]})},c.hasRole("admin")?d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){m.agents=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){m.agents=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:m.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(m.agents,{id:e.resourceId})}),t=null;if(m.queueCampaign&&(t=_.find(m.agents,{id:Number(m.queueCampaign.UserId)})),t&&!_.some(n,["id",t.id])){var a=_.find(m.agents,{id:t.id});a.canSelect=!1,n.push(a)}m.agents=n})}else{var t=[],a=null;m.queueCampaign&&(a=_.find(m.agents,{id:Number(m.queueCampaign.UserId)}));for(var i=0;i<m.agents.length;i++)a&&m.agents[i].id===a.id&&(m.agents[i].canSelect=!1,t.push(m.agents[i]));m.agents=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("QueueCampaignHoppersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MOTIONDIALER.EDIT_HOPPER",g.hopper=angular.copy(l),g.hoppers=r,g.newHopper=!1,g.hopper||(g.hopper={},g.title="MOTIONDIALER.NEW_HOPPER",g.newHopper=!0),n.params.id&&(g.hopper.VoiceQueueId=n.params.id),g.addNewHopper=function(){g.errors=[],d.cmHopper.save(g.hopper).$promise.then(function(e){g.hoppers.unshift(e.toJSON()),o.success({title:"Hopper properly created",msg:g.hopper.name?g.hopper.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveHopper=function(){var t,a,i,s;g.errors=[],g.hopper.UserId=g.hopper.recallme?g.hopper.UserId:null,g.hopper.OwnerId=c.getCurrentUser().id,d.cmHopper.get({id:g.hopper.id,attributes:["scheduledat"]}).$promise.then(function(e){t=_.isNil(e)||_.isEmpty(e)?moment().format("YYYY-MM-DD HH:mm:ss"):e.scheduledat}).finally(function(){d.cmHopper.update({id:g.hopper.id},_.omit(g.hopper,["VoiceQueueId","CampaignId","ContactId","ListId"])).$promise.then(function(e){a=e,d.cmContact.get({id:a.ContactId,attributes:["firstName","lastName"]}).$promise.then(function(e){_.isNil(e)||_.isNil(e.firstName)||(i=e.firstName,_.isNil(e.lastName)||(i+=" "+e.lastName))}).catch(function(){i=void 0}).finally(function(){d.voiceQueue.get({raw:!1,id:a.VoiceQueueId,attributes:["name"]}).$promise.then(function(e){s=e.name}).catch(function(e){s=void 0}).finally(function(){d.cmHopperHistory.save({state:24,statedesc:"Edited",scheduledat:t,calleridnum:a.phone,calleridname:i,campaigntype:a.VoiceQueueId?"queue":"ivr",campaign:s,editedat:moment().format("YYYY-MM-DD HH:mm:ss"),edited:!0,ListId:a.ListId,UserId:c.getCurrentUser().id,VoiceQueueId:a.VoiceQueueId,CampaignId:a.CampaignId,ContactId:a.ContactId,callback:a.callback,callbackuniqueid:a.callbackuniqueid,countbusyretry:a.countbusyretry,countcongestionretry:a.countcongestionretry,countglobal:a.countglobal,countnoanswerretry:a.countnoanswerretry,followuptime:a.followuptime,recallme:a.recallme})})});var n=_.find(g.hoppers,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Hopper properly saved!",msg:g.hopper.name?g.hopper.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})})},g.deleteHopper=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The hopper will be deleted.").ariaLabel("Delete Hopper").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cmHopper.delete({id:g.hopper.id}).$promise.then(function(){_.remove(g.hoppers,{id:g.hopper.id}),o.success({title:"Hopper properly deleted!",msg:(g.hopper.name||"hopper")+" has been deleted!"}),v(g.hopper)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){g.agents=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){g.agents=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.agents,{id:e.resourceId})}),t=null;if(g.hopper&&(t=_.find(g.agents,{id:Number(g.hopper.UserId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.agents,{id:t.id});a.canSelect=!1,n.push(a)}g.agents=n})}else{var t=[],a=null;g.hopper&&(a=_.find(g.agents,{id:Number(g.hopper.UserId)}));for(var i=0;i<g.agents.length;i++)a&&g.agents[i].id===a.id&&(g.agents[i].canSelect=!1,t.push(g.agents[i]));g.agents=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","hoppers","hopper","api","Auth","license","setting","crudPermissions"],angular.module("app.motiondialer").controller("CreateOrEditHopperVoiceQueueIdDialogController",e)}(),function(){"use strict";function e(t,a){var i=this;i.queueCampaign={},i.init=function(n){i.queueCampaign=n,t.cmHopper.get({limit:0,VoiceQueueId:n.id}).$promise.then(function(e){return i.total=e.count||0,t.cmHopper.get({limit:0,VoiceQueueId:n.id,active:!1,countbusyretry:0,countcongestionretry:0,countnoanswerretry:0,countnosuchnumberretry:0,countdropretry:0,countabandonedretry:0,countmachineretry:0,countagentrejectretry:0}).$promise}).then(function(e){return i.fresh=e.count||0,t.cmHopperFinal.get({limit:0,VoiceQueueId:n.id}).$promise}).then(function(e){i.closed=e.count||0}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["api","toasty"],angular.module("app.motiondialer").controller("QueueCampaignHopperStatisticsController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l){var d=this;function c(){return a(function(t,n){return a(function(n,t){return s.cmList.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return d.items=e.rows?e.rows:[],r.hasRole("admin")?e:d.section?d.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:d.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return d.allowedItems=_.map(n,function(e){return _.find(d.items,{id:r.hasRole("admin")||d.section.autoAssociation?e.id:e.resourceId})}),d.startingAllowedItems=angular.copy(d.allowedItems),d.items.forEach(function(e){var n=_.find(d.allowedItems,{id:e.id});"admin"===d.currentUser.role?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s[d.apiRoute][d.getApi]({id:d.queueCampaign.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];d.selectedItems=_.map(n,function(e){return _.find(d.items,{id:e.id})}),d.startingSelectedItems=angular.copy(d.selectedItems),d.dualMultiselectOptions.selectedItems=d.selectedItems,d.dualMultiselectOptions.items=_.differenceBy(d.allowedItems,d.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}d.currentUser=r.getCurrentUser(),d.queueCampaign=n,d.crudPermissions=l,d.apiRoute="voiceQueue",d.getApi="getLists",d.addApi="addLists",d.removeApi="removeLists",d.items=[],d.allowedItems=[],d.selectedItems=[],d.startingAllowedItems=[],d.startingSelectedItems=[],d.pendingChanges=!1,d.loading=!1,d.dualMultiselectOptions={allowedItems:[],selectedItems:[],showSelectAndDeselectAll:!1,orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("MOTIONDIALER.ALL_LISTS"),labelSelected:t.instant("MOTIONDIALER.SELECTED_LISTS"),transferCallback:function(e,n){var t=_.xorBy(d.startingSelectedItems,d.selectedItems,"id");d.pendingChanges=!_.isEmpty(t)}},d.onInit=function(){return r.hasRole("admin")?c().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:d.currentUser.userProfileId,name:"Lists"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return d.section=e,c()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},d.saveLists=function(){d.loading=!0;var e=_.differenceBy(d.startingSelectedItems,d.selectedItems,"id"),n=_.differenceBy(d.selectedItems,d.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.removeApi]({id:d.queueCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.addApi]({id:d.queueCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){d.pendingChanges=!1,d.startingAllowedItems=angular.copy(d.allowedItems),d.startingSelectedItems=angular.copy(d.selectedItems),i.success({title:"SUCCESS",msg:"Lists association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})}).finally(function(){d.loading=!1});var t},d.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","queueCampaign","$translate","$timeout","Auth","crudPermissions"],angular.module("app.motiondialer").controller("QueueCampaignlistaddController",e)}(),function(){"use strict";function e(e,n,a,i,s,t,o,r){var l=this;function d(){n.hide()}function c(e,n){var t=n.id;o.enqueue(function(){return i.voiceQueue.removeLists({id:e,ids:t}).$promise.then(function(){return i.voiceQueue.addLists({id:e,ids:t,dialCheckDuplicateType:"never"}).$promise}).then(function(){a.success({title:"Reset Succesfull",msg:"List "+n.name+" has been reset"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:queueCampaign.RESETLIST",msg:e.status?JSON.stringify(e.data):e.toString()})})})}l.selected=[],l.items=t||[],l.loading=!1,l.closeDialog=d,l.exists=function(e,n){return-1<n.indexOf(e)},l.toggle=function(e,n){var t=n.indexOf(e);-1<t?n.splice(t,1):n.push(e)},l.isIndeterminate=function(){return 0!==l.selected.length&&l.selected.length!==l.items.length},l.isChecked=function(){return l.selected.length===l.items.length},l.toggleAll=function(){l.selected.length===l.items.length?l.selected=[]:(0===l.selected.length||0<l.selected.length)&&(l.selected=l.items.slice(0))},l.listSelected=function(){l.loading=!0,r(function(e,n){for(var t=0;t<l.selected.length;t+=1)c(s.id,l.selected[t]);var a;a=e,o.enqueue(function(){return a()})}).finally(function(){l.loading=!1,d()})}}e.$inject=["$scope","$mdDialog","toasty","api","queueCampaign","listsCampaign","Sequence","$q"],angular.module("app.motiondialer").controller("QueueCampaignresetlistController",e)}(),function(){"use strict";function e(e,i,a,s,n,t,o,r){var l=this;function d(){return i(function(t,n){return i(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:i(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),i(function(n,t){return s.voiceQueue.getTeams({id:l.queueCampaign.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.queueCampaign=n,l.crudPermissions=r,l.penalty=0,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"penalty",labelAll:t.instant("MOTIONDIALER.ALL_TEAMS"),labelSelected:t.instant("MOTIONDIALER.SELECTED_TEAMS"),transferCallback:function(e,n){n?e.forEach(function(e){e.penalty=void 0}):e.forEach(function(e){e.penalty="penalty "+l.penalty});var t=_.xorWith(l.startingSelectedItems,l.selectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):i(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceWith(l.selectedItems,l.startingSelectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});return(t=e,i(function(e,n){_.isEmpty(t)?e():s.voiceQueue.removeTeams({id:l.queueCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return a=n,i(function(e,n){if(!_.isEmpty(a)){var t=_.map(a,function(e){return{id:e.id,penalty:_.trim(e.penalty,"penalty ")}});return s.voiceQueue.addTeams({id:l.queueCampaign.id,teams:t}).$promise.then(function(){e()}).catch(function(e){n(e)})}e()});var a}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),a.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","queueCampaign","$translate","Auth","crudPermissions"],angular.module("app.motiondialer").controller("QueueCampaignteamaddController",e)}(),function(){"use strict";function e(t,e,i,s,a,n,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=n,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=e.protocol()+"://"+e.host(),u.queueCampaign=c||t.params.queueCampaign||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=t.params.tab||0,u.clonedialog=function(e,n){i.show({controller:"QueueCampaigncloneController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:u.queueCampaigns?u.queueCampaigns.rows:[],crudPermissions:u.crudPermissions}})},u.listadddialog=function(e,n){i.show({controller:"QueueCampaignlistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/listadd/listadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:u.queueCampaigns?u.queueCampaigns.rows:[],crudPermissions:u.crudPermissions}})},u.blacklistadddialog=function(e,n){i.show({controller:"QueueCampaignblacklistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/blacklistadd/blacklistadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:u.queueCampaigns?u.queueCampaigns.rows:[],crudPermissions:u.crudPermissions}})},u.teamadddialog=function(e,n){i.show({controller:"QueueCampaignteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:u.queueCampaigns?u.queueCampaigns.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){i.show({controller:"QueueCampaignagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:u.queueCampaigns?u.queueCampaigns.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.resetlistdialog=function(n,t){r.voiceQueue.getLists({id:n.id,fields:"id,name",nolimit:!0}).$promise.then(function(a){if(_.isNil(a.rows)||_.isEmpty(a.rows))l.info({title:"Campaign Without Lists"});else if(1===a.rows.length){var e=i.confirm().title("Are you sure want to reset the list "+a.rows[0].name+" ?").htmlContent("<b>"+a.rows[0].name+"</b> will be reset.").ariaLabel("Reset List").targetEvent(t).ok("OK").cancel("CANCEL");i.show(e).then(function(){var e,n,t;e=u.queueCampaign.id,n=a.rows[0],t=n.id,r.voiceQueue.removeLists({id:e,ids:t}).$promise.then(function(){return r.voiceQueue.addLists({id:e,ids:t,dialCheckDuplicateType:"never"}).$promise}).then(function(){l.success({title:"Reset Succesfull",msg:"List "+n.name+" has been reset"})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:queueCampaign.REMOVELIST",msg:e.status?JSON.stringify(e.data):e.toString()})})})}else i.show({controller:"QueueCampaignresetlistController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/resetlist/resetlist.html",parent:angular.element(s.body),targetEvent:t,clickOutsideToClose:!1,locals:{queueCampaign:n,listsCampaign:a?a.rows:[]}})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:RESETLIST",msg:e.status?JSON.stringify(e.data):e.toString()})})},u.gotogoto=function(e,n){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:1510}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.motiondialer.realtime.queues",{}):l.info({title:a.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:a.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.motiondialer.realtime.queues",{})}},u.alert=l.info,u.gotoQueueCampaigns=function(){t.go("app.motiondialer.queueCampaigns",{},{reload:"app.motiondialer.queueCampaigns"})},u.saveQueueCampaign=function(){r.voiceQueue.update({id:u.queueCampaign.id},u.queueCampaign).$promise.then(function(){l.success({title:"QueueCampaign updated!",msg:u.queueCampaign.name?u.queueCampaign.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.voiceMusicOnHold.get({fields:"id,name",nolimit:"true"}).$promise.then(function(e){u.musiconholds=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_MUSICONHOLDS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.voiceMusicOnHold.get({fields:"id,name",nolimit:"true"}).$promise.then(function(e){u.musiconholds=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:407}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;return n?n.autoAssociation?void 0:r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.musiconholds,{id:e.resourceId})}),t=null;if(u.queueCampaign&&(t=_.find(u.musiconholds,{name:u.queueCampaign.musiconhold})),t&&!_.some(n,["id",t.id])){var a=_.find(u.musiconholds,{id:t.id});a.canSelect=!1,n.push(a)}u.musiconholds=n}):r.voiceMusicOnHold.get({fields:"id,name",nolimit:"true",defaultEntry:1}).$promise.then(function(e){u.musiconholds=e.rows||[]})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmusiconholds",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.trunks=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.trunks=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.trunks,{id:e.resourceId})}),t=null;if(u.queueCampaign&&(t=_.find(u.trunks,{id:Number(u.queueCampaign.TrunkId)})),t&&!_.some(n,["id",t.id])){var a=_.find(u.trunks,{id:t.id});a.canSelect=!1,n.push(a)}u.trunks=n})}else{var t=[],a=null;u.queueCampaign&&(a=_.find(u.trunks,{id:Number(u.queueCampaign.TrunkId)}));for(var i=0;i<u.trunks.length;i++)a&&u.trunks[i].id===a.id&&(u.trunks[i].canSelect=!1,t.push(u.trunks[i]));u.trunks=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.projects=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PROJECTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.projects=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1103}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.projects,{id:e.resourceId})}),t=null;if(u.queueCampaign&&(t=_.find(u.projects,{name:u.queueCampaign.dialQueueProject})),t&&!_.some(n,["id",t.id])){var a=_.find(u.projects,{id:t.id});a.canSelect=!1,n.push(a)}u.projects=n})}else{var t=[],a=null;u.queueCampaign&&(a=_.find(u.projects,{name:u.queueCampaign.dialQueueProject}));for(var i=0;i<u.projects.length;i++)a&&u.projects[i].id===a.id&&(u.projects[i].canSelect=!1,t.push(u.projects[i]));u.projects=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){u.interval=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){u.interval=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.interval,{id:e.resourceId})}),t=null;if(u.queueCampaign&&(t=_.find(u.interval,{id:Number(u.queueCampaign.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(u.interval,{id:t.id});a.canSelect=!1,n.push(a)}u.interval=n})}else{var t=[],a=null;u.queueCampaign&&(a=_.find(u.interval,{id:Number(u.queueCampaign.IntervalId)}));for(var i=0;i<u.interval.length;i++)a&&u.interval[i].id===a.id&&(u.interval[i].canSelect=!1,t.push(u.interval[i]));u.interval=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){u.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){u.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.pauses,{id:e.resourceId})});u.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),u.pauses=n})}else u.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","queueCampaign","userProfileSection"],angular.module("app.motiondialer").controller("QueueCampaignController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.queueCampaigns=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="queueCampaigns",f.listOrder="",f.listOrderAsc=null,f.selectedQueueCampaigns=[],f.query={fields:"createdAt,updatedAt,id,name,dialActive,TrunkId,TrunkBackupId,type,IntervalId,dialCheckDuplicateType,dialCutDigit,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar,dialOrderByScheduledAt,dialRecallMeTimeout,dialRecallInQueue,dialGlobalInterval,dialTimezone,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength,dialMethod,dialPowerLevel,dialPredictiveOptimization,dialPredictiveOptimizationPercentage,dialPredictiveInterval,dialLimitQueue,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialRandomLastDigitCallerIdNumber,dialOriginateTimeout,dialPrefix,dialQueueOptions,dialQueueTimeout,strategy,timeout,retry,wrapuptime,weight,musiconhold,dialQueueProject,dialQueueProject2,dialAgiAfterHangupAgent,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,description,mandatoryDisposition,mandatoryDispositionPauseId,dialPredictiveIntervalMaxThreshold,dialPredictiveIntervalMinThreshold",type:"outbound",sort:"-updatedAt",channel:"voice",limit:10,page:1},f.arraydialCheckDuplicateType=_.keyBy([{option:"ALWAYS",value:"'always'"},{option:"NEVER",value:"'never'"},{option:"ONLY_IF_OPEN",value:"'onlyIfOpen'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayautopause=_.keyBy([{option:"Yes",value:"'all'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayringinuse=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraytimeoutrestart=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraymonitor_format=_.keyBy([{option:"Inactive",value:"''"},{option:"wav",value:"'wav'"},{option:"wav49",value:"'wav49'"},{option:"gsm",value:"'gsm'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysetinterfacevar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysetqueuevar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysetqueueentryvar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraydialOrderByScheduledAt=_.keyBy([{option:"DESC",value:"'DESC'"},{option:"ASC",value:"'ASC'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraydialMethod=_.keyBy([{option:"Progressive",value:"'progressive'"},{option:"PowerDialing",value:"'power'"},{option:"Predictive",value:"'predictive'"},{option:"Preview",value:"'preview'"},{option:"BookedProgressive",value:"'booked'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraydialPredictiveOptimization=_.keyBy([{option:"AgentBusyFactor",value:"'agentBusyFactor'"},{option:"DropRate",value:"'dropRate'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraystrategy=_.keyBy([{option:"Round Robin Memory",value:"'rrmemory'"},{option:"Round Robin",value:"'roundrobin'",ngIf:"vm.queueCampaign.dialMethod === 'booked'"},{option:"Least Recent",value:"'leastrecent'",ngIf:"vm.queueCampaign.dialMethod !== 'booked'"},{option:"Fewest Calls",value:"'fewestcalls'",ngIf:"vm.queueCampaign.dialMethod !== 'booked'"},{option:"Random",value:"'random'",ngIf:"vm.queueCampaign.dialMethod !== 'booked'"},{option:"Linear",value:"'linear'",ngIf:"vm.queueCampaign.dialMethod !== 'booked'"},{option:"Weight Random",value:"'wrandom'",ngIf:"vm.queueCampaign.dialMethod !== 'booked'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.motiondialer.queueCampaigns.edit",{id:e.id,queueCampaign:e,crudPermissions:f.crudPermissions})},f.clonedialog=function(e,n){i.show({controller:"QueueCampaigncloneController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:f.queueCampaigns?f.queueCampaigns.rows:[],crudPermissions:f.crudPermissions}})},f.listadddialog=function(e,n){i.show({controller:"QueueCampaignlistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/listadd/listadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:f.queueCampaigns?f.queueCampaigns.rows:[],crudPermissions:f.crudPermissions}})},f.blacklistadddialog=function(e,n){i.show({controller:"QueueCampaignblacklistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/blacklistadd/blacklistadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:f.queueCampaigns?f.queueCampaigns.rows:[],crudPermissions:f.crudPermissions}})},f.teamadddialog=function(e,n){i.show({controller:"QueueCampaignteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:f.queueCampaigns?f.queueCampaigns.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"QueueCampaignagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:f.queueCampaigns?f.queueCampaigns.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("queueCampaign")+"?").htmlContent("<b>"+(e.name||"queueCampaign")+"</b> will be deleted.").ariaLabel("delete queueCampaign").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:1510}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.motiondialer.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.motiondialer.realtime.queues",{})}},f.success=E,f.getQueueCampaigns=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.voiceQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="QueueCampaigns",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditQueueCampaign=function(e,n){i.show({controller:"CreateOrEditQueueCampaignDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:n,queueCampaigns:f.queueCampaigns.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteQueueCampaign=y,f.exportSelectedQueueCampaigns=function(){var e=angular.copy(f.selectedQueueCampaigns);return f.selectedQueueCampaigns=[],e},f.deleteSelectedQueueCampaigns=function(e){var n=i.confirm().title("Are you sure want to delete the selected queueCampaigns?").htmlContent("<b>"+f.selectedQueueCampaigns.length+" selected</b> will be deleted.").ariaLabel("delete QueueCampaigns").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedQueueCampaigns.forEach(function(e){y(e)}),f.selectedQueueCampaigns=[]})},f.deselectQueueCampaigns=function(){f.selectedQueueCampaigns=[]},f.selectAllQueueCampaigns=function(){f.selectedQueueCampaigns=f.queueCampaigns.rows},g.hasRole("admin")?m.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.trunks=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.trunks=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(f.trunks,{id:e.resourceId})}),a=null;a=[],f.queueCampaigns.rows.forEach(function(e){var n=_.find(f.trunks,{id:Number(e.TrunkId)});a.push(n)}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(f.trunks,{id:e.id});n.canSelect=!1,t.push(n)}}),f.trunks=t})}else{var t=[],a=[];f.queueCampaigns.rows.forEach(function(e){var n=_.find(f.trunks,{id:Number(e.TrunkId)});a.push(n)});for(var i=0;i<f.trunks.length;i++){_.some(a,{id:f.trunks[i].id})&&(f.trunks[i].canSelect=!1,t.push(f.trunks[i]))}f.trunks=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),g.hasRole("admin")?m.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){f.interval=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){f.interval=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.interval,{id:e.resourceId})}),t=null;if(f.queueCampaign&&(t=_.find(f.interval,{id:Number(f.queueCampaign.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.interval,{id:t.id});a.canSelect=!1,n.push(a)}f.interval=n})}else{var t=[],a=null;f.queueCampaign&&(a=_.find(f.interval,{id:Number(f.queueCampaign.IntervalId)}));for(var i=0;i<f.interval.length;i++)a&&f.interval[i].id===a.id&&(f.interval[i].canSelect=!1,t.push(f.interval[i]));f.interval=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.queueCampaigns=e||{count:0,rows:[]}}function y(e){m.voiceQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.queueCampaigns.rows,{id:e.id}),f.queueCampaigns.count-=1,f.queueCampaigns.rows.length||f.getQueueCampaigns(),p.success({title:_.startCase("QueueCampaign")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getQueueCampaigns())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","queueCampaigns","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.motiondialer").controller("QueueCampaignsController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(){return[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Agent",key:"lastAssignedTo",type:"select",label:"DASHBOARDS.SELECT_AGENT",options:g.agents.rows,customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}],ngValue:"name"},{name:"Campaign",key:"queue",type:"multiselect",label:"DASHBOARDS.SELECT_CAMPAIGN",options:g.queues.rows,ngValue:"name"}]}function h(){return g.refresh=!1,0===g.queues.count?f(null):(g.query.queue=1===g.queues.count?g.queues.rows[0].name:g.query.queue,void 0===g.query.queue&&(g.query.queue=_.map(g.queues.rows,"name")),_.isEmpty(g.query.queue)?f(null):(g.query.offset=(g.query.page-1)*g.query.limit,i.localStorage.setItem("motion2.realtime.abandoned.bull.abandonedCalls:"+g.currentUser.id,JSON.stringify({query:_.omit(g.query,"queue")})),void(g.promise=o.voiceQueueReport.getVoiceQueuesReport(g.query,f).$promise)))}function f(e){g.abandonedCalls=e||{count:0,rows:[]},!1,g.refresh=!0}g.currentUser=d.getCurrentUser(),g.agents=u||[],g.dispositions=p.rows,g.abandonedCalls={count:0,rows:[]},g.showTooltip=!1,g.refresh=!0,g.userProfile=r,g.userProfileSection=l&&1==l.count?l.rows[0]:null,g.crudPermissions=d.parseCrudPermissions(g.userProfileSection?g.userProfileSection.crudPermissions:null),g.query={fields:"id,type,calleridnum,calleridname,queue,queuecallerabandonAt,queuecallerexitAt,queuecallerexitreason,assigned,lastAssignedTo,updatedAt,disposition,secondDisposition,thirdDisposition",type:"outbound",queuecallerexitreason:"TIMEOUT,ABANDONED",sort:"-updatedAt",limit:10,page:1},g.getAbandonedCalls=h,g.refreshAbandonedCalls=function(){g.showTooltip=!1,h()},g.assignTo=function(e,n){e&&o.voiceQueueReport.update({id:e.id,lastAssignedTo:n?n.name:null,assigned:!!n}).$promise.catch(function(e){console.log(e)})},g.dispose=function(t){n.show({controller:"DisposeAbandonedCallDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/home/abandoned/dispose/dialog.html",parent:angular.element(a.body),targetEvent:t,locals:{dispositions:g.dispositions,call:t}}).then(function(e){if(e){var n={id:t.id,disposition:e.firstLevel||null,secondDisposition:e.secondLevel||null,thirdDisposition:e.thirdLevel||null};o.voiceQueueReport.update(n).$promise.catch(function(e){console.log(e)})}})},g.onSaveVoiceQueueReport=function(e){e&&g.queuesMap&&"outbound"===queue.type&&g.queuesMap[e.queue]&&(g.showTooltip=!0)},g.onUpdateVoiceQueueReport=function(e){if(e){var n=_.findIndex(g.abandonedCalls.rows,["id",e.id]);0<=n&&_.merge(g.abandonedCalls.rows[n],e)}},c.onWithoutApply("voiceQueueReport:save",g.onSaveVoiceQueueReport),c.on("voiceQueueReport:update",g.onUpdateVoiceQueueReport),function(){var e=i.localStorage.getItem("motion2.realtime.abandoned.bull.abandonedCalls:"+g.currentUser.id);if(e)(e=JSON.parse(e))&&e.query&&(g.query=_.merge(e.query,_.omit(g.query,["sort","limit","page"])),g.query=_.omit(g.query,"filter"));else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()};g.query.createdAt=n}d.hasRole("admin")?o.user.getQueues({id:d.getCurrentUser().id,fields:"id,name",channel:"voice",type:"outbound",nolimit:!0}).$promise.then(function(e){g.queues=e||{count:0,rows:[]},g.queuesMap=_.mapValues(_.keyBy(g.queues.rows,"name"),"name")}).catch(function(e){console.error(e)}).finally(function(){g.quickFilters=v(),h()}):o.userProfile.getResources({id:g.currentUser.userProfileId,section:"QueueCampaigns",channel:"voice",type:"outbound",sort:"-updatedAt",nolimit:!0}).$promise.then(function(e){g.queues=e||{count:0,rows:[]},g.queuesMap=_.mapValues(_.keyBy(g.queues.rows,"name"),"name")}).catch(function(e){console.error(e)}).finally(function(){g.quickFilters=v(),h()})}();var b=!0,A=1;e.$watch("vm.query.filter",function(e,n){b?t(function(){b=!1}):(n||(A=g.query.page),e!==n&&(g.query.page=1),e||(g.query.page=A),h())}),e.$on("$destroy",function(){c.removeAllListeners("voiceQueueReport:save"),c.removeAllListeners("voiceQueueReport:update")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","userProfile","userProfileSection","Auth","socket","toasty","agents","dispositions"],angular.module("app.motiondialer").controller("AbandonedCallsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,o,n,t,a,i,s,r,l,d,c,m,u,p,g,v,h,f){var b=this,A=["userpic","online","lastLoginAt","lastPauseAt","pauseType","lastPauseAt","internal","address","chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","chatCapacity","openchannelCapacity","mailCapacity","smsCapacity","whatsappCapacity","faxCapacity","chatCurrentCapacity","openchannelCurrentCapacity","mailCurrentCapacity","smsCurrentCapacity","whatsappCurrentCapacity","faxCurrentCapacity","chatStatus","openchannelStatus","mailStatus","smsStatus","whatsappStatus","faxStatus","voiceStatus","chatStatusTime","openchannelStatusTime","mailStatusTime","smsStatusTime","whatsappStatusTime","faxStatusTime","voiceStatusTime","queue","destconnectedlinenum","screenrecording","phoneBarEnableScreenRecordingByAgent","phoneBarEnableAutomaticScreenRecording"],E=["chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","online"];for(var y in b.currentUser=v.getCurrentUser(),b.availableStates=["ringing","inuse","busy","onhold","not_inuse"],b.pauses=s||{count:0,rows:[]},b.license=h,b.userProfile=p,b.userProfileSection=g&&1==g.count?g.rows[0]:null,b.crudPermissions=v.parseCrudPermissions(b.userProfileSection?b.userProfileSection.crudPermissions:null),b.agents=r?_.keyBy(r.rows?r.rows:[],"id"):{},b.rpcAgents=l?_.keyBy(l.rows?l.rows:[],"id"):{},b.paginatedAgents={},b.load=!1,b.order=[],b.agentInternal={},b.agents)b.agents.hasOwnProperty(y)&&(b.agents[y].init=!0);b.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},b.logout=function(e,n){return d.user.logout({id:e.id,device:"realtime",agent_id:e.id,agent_name:e.name}).$promise.then(function(){m.success({title:"Agent logout",msg:e.fullname+" properly logout"}),b.agents[e.id]&&(b.agents[e.id].online=!1),b.rpcAgents[e.id]&&(b.rpcAgents[e.id].online=!1),T()}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.queueAdd=function(e,n){t.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:[],channel:"voice",direction:"outbound",crudPermissions:b.crudPermissions}})},b.pause=function(n,e){return d.user.pause({id:n.id,type:e}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.unPause=function(n){return d.user.unpause({id:n.id}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.showInfo=function(e){t.show(t.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},b.getAgentStatus=O,b.getAgentGlobalStatus=w,b.isPause=I,b.checkPause=function(e){return"pause"===e},b.isPartialPause=function(e){return"*pause"===e},b.onSave=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(_.omit(e,E),A)),_.merge(b.rpcAgents[e.id],_.pick(_.omit(e,E),A)),w(b.agents[e.id]))},b.onUpdate=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(e,A)),_.merge(b.rpcAgents[e.id],_.pick(e,A)),e.lastPauseAt&&(b.agents[e.id].globalStatusTime=e.lastPauseAt,b.rpcAgents[e.id].globalStatusTime=e.lastPauseAt),w(b.agents[e.id]))},b.onInit=T,b.onConnect=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(_.merge(b.agents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])),_.merge(b.rpcAgents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])))},b.onComplete=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(b.agents[b.agentInternal[e.destaccountcode]]=_.omit(b.agents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]),b.rpcAgents[b.agentInternal[e.destaccountcode]]=_.omit(b.rpcAgents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]))},b.screenRecording=function(e,n){return d.user.update({id:e.id},{screenrecording:n}).$promise.catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.on("user:save",b.onSave),c.on("user:update",b.onUpdate),c.on("user:agentconnect",b.onConnect),c.on("user:agentcomplete",b.onComplete),T();var S=f(function(){b.load&&(b.load=!1,T())},999);function T(e){b.load=!1;var n,t,a=o.defer();b.promise=a.promise,b.filteredAgents=[],b.order=[],_.forIn(b.agents,function(e,n){b.rpcAgents[n]&&_.merge(e,_.pick(_.omit(b.rpcAgents[n],E),A)),w(e),e.online?(b.filteredAgents.push(e),b.agentInternal[e.internal]=n):e.globalStatusTime=_.toNumber(moment().format("x"))}),b.query.globalStatusFilter&&_.remove(b.filteredAgents,function(e){return e.globalStatus!==b.query.globalStatusFilter}),b.query.pauseTypeFilter&&_.remove(b.filteredAgents,function(e){return e.pauseType!==b.query.pauseTypeFilter}),b.query.filter&&_.remove(b.filteredAgents,function(e){return e.fullname.toLowerCase().indexOf(b.query.filter.toLowerCase())<0}),b.filteredAgents=(n=b.filteredAgents,t=_.startsWith(b.query.order,"-")?"desc":"asc",_.orderBy(n,[b.query.order.replace("-","")],[t]));var i=(b.query.page-1)*b.query.limit;b.paginatedAgents=_.drop(b.filteredAgents,i).slice(0,b.query.limit);for(var s=0;s<b.paginatedAgents.length;s+=1)b.order.push(b.paginatedAgents[s].id);a.resolve(),b.load=!0}function I(e){return"pause"===e||"*pause"===e}function C(e){return"idle"===e||"unknown"===e||"unavailable"===e||"ringing"===e||_.isNil(e)}function O(e,n){return"voice"===n?"idle"!==e[n+"Status"]?e[n+"Status"]:e[n+"Pause"]?e[n+"Status"]="pause":"idle":e[n+"Pause"]?e[n+"Status"]="pause":e[n+"Status"]}function w(e){var n="unknown";n=_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"pause":_.some([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"*pause":_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],C)?"idle":"busy",e.globalStatus!==n&&(e.globalStatus=n,e.init?(e.init=!1,e.globalStatusTime=I(n)?_.toNumber(moment(e.lastPauseAt).format("x")):_.max([e.voiceStatusTime,e.chatStatusTime,e.mailStatusTime,e.smsStatusTime,e.whatsappStatusTime,e.openchannelStatusTime,e.faxStatusTime])):e.globalStatusTime=_.toNumber(moment().format("x")))}e.$on("$destroy",function(){c.removeAllListeners("user:save"),c.removeAllListeners("user:update"),c.removeAllListeners("user:agentconnect"),c.removeAllListeners("user:agentcomplete"),S&&(f.cancel(S),S=null)})}e.$inject=["$scope","$q","$timeout","$mdDialog","$document","$filter","pauses","agents","rpcAgents","api","socket","toasty","helperClasses","userProfile","userProfileSection","Auth","license","$interval"],angular.module("app.voice").controller("AgentsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,t,a,i,n,s,o,r,l,d,c,m){var u=this,p=["name","active","limitCalls","message","originated","IntervalId","SquareProjectId","Trunk","TrunkId","ivrAnswerCallsDay","dialQueueProject","ivrTotalCallsDays","description"];function g(){_.forIn(u.campaigns,function(e,n){u.rpcCampaigns[n]&&_.merge(e,_.pick(u.rpcCampaigns[n],p))})}u.currentUser=m.getCurrentUser(),u.count=o.count,u.campaigns=o?_.keyBy(o.rows?o.rows:[],"id"):{},u.rpcCampaigns=s?_.keyBy(s.rows?s.rows:[],"id"):{},u.userProfile=d,u.userProfileSection=c&&1==c.count?c.rows[0]:null,u.crudPermissions=m.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.query={sort:"-updatedAt",limit:10,page:1},u.success=f,u.getCampaigns=function(){u.query.offset=(u.query.page-1)*u.query.limit,m.hasRole("admin")?u.promise=r.campaign.get(u.query,f).$promise:(u.query.id=u.userProfile.id,u.query.section="IvrCampaigns",u.promise=r.userProfile.getResources(u.query,f).$promise)},u.onSave=function(e){u.campaigns[e.id]&&(_.merge(u.campaigns[e.id],_.pick(e,p)),_.merge(u.rpcCampaigns[e.id],_.pick(e,p)))},u.$onInit=g,u.createOrEditIvrCampaign=function(e,n){a.show({controller:"CreateOrEditIvrCampaignDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/create/dialog.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:n,ivrCampaigns:_.values(u.campaigns),license:null,setting:null,crudPermissions:u.crudPermissions}})},l.onWithoutApply("campaign:save",u.onSave),u.interval=n(function(){},999);var v=!0,h=1;function f(e){u.count=e.count,u.campaigns=e?_.keyBy(e.rows?e.rows:[],"id"):{},g()}e.$watch("vm.query.filter",function(e,n){v?t(function(){v=!1}):(n||(h=u.query.page),e!==n&&(u.query.page=1),e||(u.query.page=h),u.getCampaigns())}),e.$on("$destroy",function(){l.removeAllListeners("campaign:save"),u.interval&&n.cancel(u.interval)})}e.$inject=["$scope","$timeout","$mdDialog","$document","$interval","rpcCampaigns","campaigns","api","socket","userProfile","userProfileSection","Auth"],angular.module("app.motiondialer").controller("IvrCampaignsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,n,a,o,t,i,s,r,l,d,c,m,u){var p=this;p.currentUser=u.getCurrentUser(),p.queues=t?_.keyBy(t.rows?t.rows:[],"name"):{},p.rpcVoiceQueuesChannelsTmp=i?_.keyBy(i.rows?_.filter(i.rows,{type:"outbound"}):[],"uniqueid"):{},p.rpcVoiceQueuesChannels={},p.userProfile=c,p.userProfileSection=m&&1==m.count?m.rows[0]:null,p.crudPermissions=u.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.queryChannels={limit:10,page:1},p.getAvailableAgents=function(){p.availableAgents=null,s.rpc.getAgents().$promise.then(function(e){for(var n=[],t=e?e.rows:[],a=_.filter(t,{online:!0,voicePause:!1,voiceStatus:"idle"}),i=0;i<a.length;i++){var s=_.find(o.rows,["id",a[i].id]);s&&n.push(s)}p.availableAgents=n}).catch(function(e){d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},p.getSize=function(e){return _.size(e)},p.$onInit=function(){_.forIn(p.rpcVoiceQueuesChannelsTmp,function(e,n){_.find(p.queues,{name:e.name})&&(p.rpcVoiceQueuesChannels[n]=e)})},p.onSave=function(e){"outbound"===e.type&&_.find(p.queues,{name:e.name})&&(p.rpcVoiceQueuesChannels[e.uniqueid]=e)},p.onRemove=function(e){p.rpcVoiceQueuesChannels[e.uniqueid]&&delete p.rpcVoiceQueuesChannels[e.uniqueid]},p.hangup=function(n){return s.rpc.getVoiceQueuesChannelHangup({uniqueid:n}).$promise.then(function(e){d.success({title:"Channel "+n+" properly hangup!",msg:e.message||""})}).catch(function(e){d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},p.redirectToAgent=function(n,e,t){return s.rpc.getVoiceQueuesChannelRedirect({uniqueid:n,exten:e,context:t}).$promise.then(function(e){d.success({title:"Channel "+n+" properly redirect!",msg:e.message||""})}).catch(function(e){d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},p.redirectToNumber=function(e,n){var t=a.prompt().title("Which number do you want transfer the call to?").placeholder("Number").targetEvent(e).ok("Ok").cancel("Cancel");return a.show(t).then(function(e){return s.rpc.getVoiceQueuesChannelRedirect({uniqueid:n,exten:e}).$promise}).then(function(e){d.success({title:"Channel "+n+" properly redirect!",msg:e.message||""})}).catch(function(e){e&&d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},r.on("voice_queue_channel:save",p.onSave),r.on("voice_queue_channel:remove",p.onRemove),e.$on("$destroy",function(){r.removeAllListeners("voice_queue_channel:save"),r.removeAllListeners("voice_queue_channel:remove")})}e.$inject=["$scope","$timeout","$mdDialog","agents","queues","rpcVoiceQueuesChannels","api","socket","helperClasses","toasty","userProfile","userProfileSection","Auth"],angular.module("app.motiondialer").controller("QueueCallsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["total","answered","sumHoldTime","sumDuration","sumBillable","outboundNoAnswerCallsDay","outboundBusyCallsDay","outboundCongestionCallsDay","outboundNoSuchCallsDay","outboundUnknownCallsDay","outboundDropCallsDayTimeout","outboundDropCallsDayCallersExit","outboundBlacklistCallsDay","outboundOriginateFailureCallsDay","outboundAnswerAgiCallsDay","outboundReCallsDay","outboundRejectCallsDay"];function u(){_.forIn(c.queues,function(e,n){c.rpcQueues[n]&&_.merge(e,_.pick(c.rpcQueues[n],m))})}c.count=a.count,c.queues=a?_.keyBy(a.rows?a.rows:[],"id"):{},c.rpcQueues=i?_.keyBy(i.rows?i.rows:[],"id"):{},c.userProfile=r,c.userProfileSection=l&&1==l.count?l.rows[0]:null,c.crudPermissions=d.parseCrudPermissions(c.userProfileSection?c.userProfileSection.crudPermissions:null),d.hasRole("admin")?c.query={type:"outbound",fields:"id,name",sort:"-updatedAt",limit:10,page:1}:c.query={id:d.getCurrentUser().id,channel:"voice",type:"outbound",fields:"id,name",sort:"-updatedAt",limit:10,page:1},c.success=v,c.getQueues=function(){c.query.offset=(c.query.page-1)*c.query.limit,d.hasRole("admin")?c.promise=s.voiceQueue.get(c.query,v).$promise:(c.query.id=c.userProfile.id,c.query.section="QueueCampaigns",c.promise=s.userProfile.getResources(c.query,v).$promise)},c.onSave=function(e){c.queues[e.id]&&_.merge(c.queues[e.id],_.pick(e,m))},c.$onInit=u,o.onWithoutApply("voice_queue:save",c.onSave),c.interval=n(function(){},999);var p=!0,g=1;function v(e){c.count=e.count,c.queues=e?_.keyBy(e.rows?e.rows:[],"id"):{},u()}e.$watch("vm.query.filter",function(e,n){p?t(function(){p=!1}):(n||(g=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=g),c.getQueues())}),e.$on("$destroy",function(){o.removeAllListeners("voice_queue:save"),c.interval&&n.cancel(c.interval)})}e.$inject=["$scope","$timeout","$interval","queues","rpcQueues","api","socket","userProfile","userProfileSection","Auth"],angular.module("app.motiondialer").controller("QueueParamsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c,m){var u=this,p=n(function(){},999);u.currentUser=c.getCurrentUser(),u.queues=s,u.userProfileSection=d&&1==d.count?d.rows[0]:null,u.crudPermissions=c.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.query={id:c.isUser()?u.currentUser.id:void 0,section:c.isUser()?"QueueCampaigns":void 0,channel:"voice",type:"outbound",sort:"name",limit:10,page:1},u.getQueues=function(){u.query.offset=(u.query.page-1)*u.query.limit,o.realtime.getQueues(u.query).$promise.then(function(e){u.queues=e}).catch(function(e){l.error({title:i.instant("VOICE.VOICEQUEUES"),msg:e.status?JSON.stringify(e.data):e.toString()})})},u.editQueue=function(e,n){t.show({controller:"CreateOrEditQueueCampaignDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:n,queueCampaigns:u.queues.rows,license:null,setting:null,crudPermissions:u.crudPermissions}})},u.addAgent=function(e,n){t.show({controller:"QueueCampaignagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:n,queueCampaigns:u.queues.rows,realtime:!0,crudPermissions:u.crudPermissions}})},u.showPredictiveQueueCampaignInfo=function(e,n){t.show({controller:"PredictiveQueueCampaignDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/realtime/queues/predictive/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:n}})},r.onWithoutApply("voice_queue:save",function(e){var n=_.find(u.queues.rows,["id",e.id]);n&&m.updateVoiceQueue(e,n)}),r.on("userVoiceQueueRt:save",function(e){var n=_.find(u.queues.rows,["id",e.MotionDialerQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),r.on("user:agentconnect",function(t){u.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);if(n){if(!t.agentconnected)return;t.queue?n.talking=!0:n.busy=!0,m.updateBusyCounter(e)}})}),r.on("user:agentcomplete",function(t){u.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&(n.talking?n.talking=!1:n.busy&&(n.busy=!1),m.updateBusyCounter(e))})}),r.on("user:update",function(t){u.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&m.updateQueue(t,e,n,"voice")})}),e.$on("$destroy",function(){r.removeAllListeners("voice_queue:save"),r.removeAllListeners("userVoiceQueueRt:save"),r.removeAllListeners("user:agentconnect"),r.removeAllListeners("user:agentcomplete"),r.removeAllListeners("user:update"),p&&n.cancel(p)})}e.$inject=["$scope","$mdDialog","$document","$interval","$translate","queues","api","socket","toasty","userProfileSection","Auth","realtimeManager"],angular.module("app.motiondialer").controller("QueuesMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,n,t){this.queueCampaign=t,this.addMinutes=function(e,n){return moment(e).add("m",n).format("HH:mm:ss")},this.setFormatTime=function(e){return moment(e).format("HH:mm:ss")},this.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$interval","queueCampaign"],angular.module("app.motiondialer").controller("PredictiveQueueCampaignDialogController",e)}(),function(){"use strict";angular.module("app.auth").factory("helperClasses",function(){return{status:{registered:"green-300-fg icon-checkbox-marked-circle",unregistered:"red-300-fg icon-close-circle",lagged:"red-300-fg icon-close-circle",reachable:"green-300-fg icon-checkbox-marked-circle",unreachable:"red-300-fg icon-close-circle",unknown:"grey-fg icon-minus-circle"},state:{unknown:"grey-fg icon-phone-hangup",not_inuse:"green-300-fg icon-phone-hangup",inuse:"red-300-fg icon-phone-in-talk",busy:"red-300-fg icon-phone-locked",invalid:"grey-fg icon-phone-hangup",unavailable:"grey-fg icon-phone-hangup",ringing:"blue-300-fg icon-phone-incoming",ringinuse:"blue-300-fg icon-phone-incoming",onhold:"blue-300-fg icon-phone-paused"},channelStatus:{ring:"blue-300-fg icon-phone-incoming",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"},channelStatusOut:{ring:"blue-300-fg icon-phone-outgoing",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"}}})}(),function(){"use strict";function e(e,t,n){switch(this.selectedTab=0,t.current.name){case"app.motiondialer.realtime.agents":this.selectedTab=0;break;case"app.motiondialer.realtime.queues":this.selectedTab=1;break;case"app.motiondialer.realtime.queue_calls":this.selectedTab=2;break;case"app.motiondialer.realtime.abandonedcalls":this.selectedTab=3;break;case"app.motiondialer.realtime.queue_params":this.selectedTab=4;break;case"app.motiondialer.realtime.ivr_campaigns":this.selectedTab=5;break;default:this.selectedTab=0,t.go("app.motiondialer.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.motiondialer.realtime.agents");break;case 1:t.go("app.motiondialer.realtime.queues");break;case 2:t.go("app.motiondialer.realtime.queue_calls");break;case 3:t.go("app.motiondialer.realtime.abandonedcalls");break;case 4:t.go("app.motiondialer.realtime.queue_params");break;case 5:t.go("app.motiondialer.realtime.ivr_campaigns");break;default:t.go("app.motiondialer.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.motiondialer").controller("MotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="OPENCHANNEL.EDIT_OPENCHANNELACCOUNT",g.openchannelAccount=angular.copy(l),g.openchannelAccounts=r,g.newOpenchannelAccount=!1,g.openchannelAccount||(g.openchannelAccount={waitForTheAssignedAgent:10,notificationSound:!0,queueTransferTimeout:300,agentTransferTimeout:300},g.title="OPENCHANNEL.NEW_OPENCHANNELACCOUNT",g.newOpenchannelAccount=!0),n.params.id&&(g.openchannelAccount.OpenchannelAccountId=n.params.id),g.addNewOpenchannelAccount=function(){g.errors=[],d.openchannelAccount.save(g.openchannelAccount).$promise.then(function(e){g.openchannelAccounts.unshift(e.toJSON()),o.success({title:"OpenchannelAccount properly created",msg:g.openchannelAccount.name?g.openchannelAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveOpenchannelAccount=function(){g.errors=[],d.openchannelAccount.update({id:g.openchannelAccount.id},g.openchannelAccount).$promise.then(function(e){var n=_.find(g.openchannelAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"OpenchannelAccount properly saved!",msg:g.openchannelAccount.name?g.openchannelAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteOpenchannelAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The openchannelAccount will be deleted.").ariaLabel("Delete OpenchannelAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.openchannelAccount.delete({id:g.openchannelAccount.id}).$promise.then(function(){_.remove(g.openchannelAccounts,{id:g.openchannelAccount.id}),o.success({title:"OpenchannelAccount properly deleted!",msg:(g.openchannelAccount.name||"openchannelAccount")+" has been deleted!"}),v(g.openchannelAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.lists,{id:e.resourceId})}),t=null;if(g.openchannelAccount&&(t=_.find(g.lists,{id:Number(g.openchannelAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.lists,{id:t.id});a.canSelect=!1,n.push(a)}g.lists=n})}else{var t=[],a=null;g.openchannelAccount&&(a=_.find(g.lists,{id:Number(g.openchannelAccount.ListId)}));for(var i=0;i<g.lists.length;i++)a&&g.lists[i].id===a.id&&(g.lists[i].canSelect=!1,t.push(g.lists[i]));g.lists=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","openchannelAccounts","openchannelAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.openchannel").controller("CreateOrEditOpenchannelAccountDialogController",e)}(),function(){"use strict";function e(o,i,a,s,e){var r=this;function n(e,n){if(r.openchannelAccountApps.rows.length){var t=r.openchannelAccountApps.rows[n]?r.openchannelAccountApps.rows[n]:r.openchannelAccountApps.rows[0];i.show({controller:"EditOpenchannelAccountApp"+(t.appType||t.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/apps/"+(t.appType||t.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelAccountApp:t,openchannelAccount:r.openchannelAccount,crudPermissions:r.crudPermissions}}).then(function(e){e&&(e.id?r.openchannelAccountApps.rows[n]=e:r.openchannelAccountApps.rows.splice(n,0,e),l())}).catch(function(e){e&&s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function l(){for(var e=1,n=[],t=0;t<r.openchannelAccountApps.rows.length;t++,0){var a=r.openchannelAccountApps.rows[t],i=[],s=[];a.intervals="*,*,*,*"!==a.interval?[a.interval]:a.IntervalId?_.map(_.filter(r.intervals.rows,{IntervalId:a.IntervalId}),"interval"):[],a.context=r.openchannelAccount.context,a.exten=r.openchannelAccount.exten,a.type&&(a.type=a.type.toLowerCase()),a.priority=i.length?_.last(i).priority+1:e,e=(s.length?_.last(s).priority:a.priority)+1,n=_.concat(n,i,[a],s)}o.openchannelAccount.addApplications({id:r.openchannelAccount.id},_.sortBy(n,"priority")).$promise.then(function(e){r.openchannelAccountApps.rows=e.rows}).catch(function(e){console.error(e)})}function t(e){r.openchannelAccountApps=e||{count:0,rows:[]}}r.currentUser=e.getCurrentUser(),r.openchannelAccount={},r.openchannelAccountApps={count:0,rows:[]},r.selectedOpenchannelAccountApps=[],r.crudPermissions,r.query={sort:"priority"},r.apps=_.reject(_.sortBy([{app:"dialogflow",appType:"dialogflow",type:"dialogflow",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Key",name:"key",type:"text",required:!0,param:0},{title:"language",name:"language",type:"select",defaultValue:"'en'",values:[{option:"Danish",value:"'da'"},{option:"English",value:"'en'"},{option:"German",value:"'de'"},{option:"Italian",value:"'it'"},{option:"Spanish",value:"'es'"},{option:"French",value:"'fr'"},{option:"Indonesian",value:"'id'"},{option:"Japanese",value:"'ja'"},{option:"Korean (South Korea)",value:"'ko'"},{option:"Dutch",value:"'nl'"},{option:"Norwegian",value:"'no'"},{option:"Portuguese (European)",value:"'pt'"},{option:"Portuguese (Nrazilian)",value:"'pt-br'"},{option:"Russian",value:"'ru'"},{option:"Swedish",value:"'sv'"},{option:"Thai",value:"'th'"},{option:"Ukrainian",value:"'uk'"},{option:"Chinese (Simplified)",value:"'zh-CN'"},{option:"Chinese (Hong Kong)",value:"'zh-HK'"},{option:"Chinese (Traditional)",value:"'zh-TW'"}],required:!0,param:1},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,required:!1,param:2,help:!0}]},{app:"dialogflowV2",appType:"dialogflowv2",type:"dialogflowv2",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"ProjectID",name:"projectId",type:"text",required:!0,param:0},{title:"ClientEmail",name:"clientEmail",type:"text",required:!0,param:1},{title:"PrivateKey",name:"privateKey",type:"textarea",required:!0,param:2},{title:"language",name:"language",type:"select",defaultValue:"'en'",values:[{value:"'zh-HK'",option:"Chinese (Cantonese)"},{value:"'zh-CN'",option:"Chinese (Simplified)"},{value:"'zh-TW'",option:"Chinese (Traditional)"},{value:"'da'",option:"Danish"},{value:"'nl'",option:"Dutch"},{value:"'en'",option:"English"},{value:"'en-AU'",option:"English (Australia)"},{value:"'en-CA'",option:"English (Canada)"},{value:"'en-GB'",option:"English (Great Britain)"},{value:"'en-IN'",option:"English (India)"},{value:"'en-US'",option:"English (US)"},{value:"'fr'",option:"French"},{value:"'fr-CA'",option:"French (Canada)"},{value:"'fr-FR'",option:"'France (France)"},{value:"'de'",option:"German"},{value:"'hi'",option:"Hindi"},{value:"'id'",option:"Indonesian"},{value:"'it'",option:"Italian"},{value:"'ja'",option:"Japanese"},{value:"'ko'",option:"Korean"},{value:"'no'",option:"Norwegian"},{value:"'pl'",option:"Polish"},{value:"'pt-BR'",option:"Portuguese (Brazil)"},{value:"'pt-PT'",option:"Portuguese (Portugal)"},{value:"'ru'",option:"Russian"},{value:"'es'",option:"Spanish"},{value:"'es-419'",option:"Spanish (Latin America)"},{value:"'es-ES'",option:"Spanish (Spain)"},{value:"'sw'",option:"Swedish"},{value:"'th'",option:"Thai"},{value:"'tr'",option:"Turkish"},{value:"'uk'",option:"Ukrainian"}],required:!0,param:3},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,param:4,help:!0}]},{app:"amazonlex",appType:"amazonlex",type:"amazonlex",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"accesskeyid",name:"accesskeyid",type:"text",required:!0,param:0},{title:"secretaccesskey",name:"secretaccesskey",type:"text",required:!0,param:1},{title:"lexregion",name:"lexregion",type:"select",defaultValue:"'us-east-1'",values:[{option:"US East (N. Virginia)",value:"'us-east-1'"},{option:"US West (Oregon)",value:"'us-west-2'"},{option:"EU (Ireland)",value:"'eu-west-1'"},{option:"Asia Pacific (Sydney)",value:"'ap-southeast-2'"}],required:!0,param:2},{title:"botname",name:"botname",type:"text",required:!0,param:3},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,required:!1,param:4,help:!0}]},{app:"Interval",appType:"interval",types:["always","custom","list"],fields:[],isApp:!1},{app:"noop",appType:"noop",type:"noop",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,fields:[{title:"Value",name:"value",type:"text",param:0}]},{app:"system",appType:"system",type:"system",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,extraApi:[{name:"variables",field:{name:"variable",key:"name"},route:"variable",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1012}}],fields:[{title:"Command",name:"command",type:"text",required:!0,param:0},{title:"Variable",name:"variable",type:"apiselect",values:"variables",value:"variable.name",option:"variable.name",defaultValues:[{value:"''",option:"None"}],defaultValue:"''",param:1}]},{app:"gotop",appType:"gotop",type:"goto",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Priority",name:"priority",type:"number",required:!0,min:0,param:0}]},{app:"gotoif",appType:"gotoif",type:"gotoif",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Condition",name:"condition",type:"text",required:!0,param:0},{title:"truepriority",name:"truepriority",type:"number",min:1,required:!0,param:1},{title:"falsepriority",name:"falsepriority",type:"number",min:1,required:!0,param:2}]},{app:"queue",appType:"queue",foreignKey:"OpenchannelQueueId",type:"queue",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"queues",field:{name:"queue",key:"name"},route:"openchannelQueue",filters:{fields:"id,name,type",sort:"name",nolimit:!0},permissions:{section:801}}],fields:[{title:"Queue",name:"queue",type:"apiselect",values:"queues",value:"queue.name",option:"queue.name",defaultValue:300,required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,defaultValue:300,required:!0,param:1}]},{app:"agent",appType:"agent",type:"agent",foreignKey:"UserId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"agents",field:{name:"agent",key:"name"},route:"user",filters:{fields:"id,name",sort:"name",role:"agent",nolimit:!0},permissions:{section:202}}],fields:[{title:"Agent",name:"agent",type:"apiselect",values:"agents",value:"agent.name",option:"agent.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:30,param:1}]},{app:"autoreply",appType:"autoreply",type:"autoreply",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"times",name:"times",type:"select",defaultValue:"1",values:[{option:"One Time",value:"2"},{option:"Always",value:"0"},{option:"First Message",value:"1"}],required:!0,param:0},{title:"Text",name:"text",type:"textarea",required:!0,param:1}]},{app:"close",appType:"close",type:"close",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Disposition",name:"disposition",type:"text",required:!0,param:0}]},{app:"tag",appType:"tag",type:"tag",foreignKey:"TagId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"tags",field:{name:"tag",key:"name"},route:"tag",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1008}}],fields:[{title:"Tag",name:"tag",type:"apiselect",values:"tags",value:"tag.name",option:"tag.name",required:!0,param:0}]}],["app"]),{isApp:!1}),r.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},r.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){n(e,e.newIndex)},onSort:function(e){l()}},r.init=function(e,n){r.openchannelAccount=e,r.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},r.applications.disabled=!r.crudPermissions.canEdit,r.query.id=e.id,r.query.isApp=!0,r.query.nolimit=!0,r.getOpenchannelAccountApps(),r.getIntervals()},r.deleteConfirm=function(e,n,t){var a=i.confirm().title("Are you sure want to delete the application?").htmlContent("<b>"+e.app+"</b> will be deleted.").ariaLabel("delete application").targetEvent(t).ok("OK").cancel("CANCEL");i.show(a).then(function(){r.openchannelAccountApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})},r.getOpenchannelAccountApps=function(){r.promise=o.openchannelAccount.getApplications(r.query,t).$promise},r.editOpenchannelAccountApp=n,r.editInterval=function(e,n){if(r.openchannelAccountApps.rows.length){var t=r.openchannelAccountApps.rows[n]?r.openchannelAccountApps.rows[n]:r.openchannelAccountApps.rows[0];i.show({controller:"EditOpenchannelAccountAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/apps/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:[],crudPermissions:r.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,l())})}},r.deleteOpenchannelAccountApp=function(e){_.remove(r.openchannelAccountApps.rows,{id:e.id}),l(),s.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},r.deleteSelectedOpenchannelAccountApps=function(e){var n=i.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+r.selectedOpenchannelAccountApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){r.selectedOpenchannelAccountApps.forEach(function(e){_.remove(r.openchannelAccountApps.rows,{id:e.id})}),r.selectedOpenchannelAccountApps=[],l()})},r.rewriteRouting=l,r.getIntervals=function(){return o.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){r.intervals=e}).catch(function(e){console.error(e)})}}e.$inject=["api","$mdDialog","$document","toasty","Auth"],angular.module("app.openchannel").controller("OpenchannelAccountActionsController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.openchannelAccount.getAgents({id:c.openchannelAccount.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserOpenchannelAccount?"penalty "+e.UserOpenchannelAccount.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.openchannelAccount=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.openchannelAccount.removeAgents({id:c.openchannelAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.openchannelAccount.addAgents({id:c.openchannelAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("OPENCHANNEL.ALL_AGENTS"),labelSelected:r.instant("OPENCHANNEL.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","openchannelAccount","openchannelAccounts","realtime","$translate","Auth","crudPermissions"],angular.module("app.openchannel").controller("OpenchannelAccountagentaddController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.agent=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.agent.appdata)switch(l.agent.appType?l.agent.appType.toLowerCase():l.agent.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.agent.appdata.split(",");l.agent.key=d[0],l.agent.language=d[1],l.agent.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.agent.appdata.split(",");l.agent.projectId=d[0],l.agent.clientEmail=d[1],l.agent.privateKey=d[2],l.agent.language=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.agent.appdata.split(",");l.agent.accesskeyid=d[0],l.agent.secretaccesskey=d[1],l.agent.lexregion=d[2],l.agent.botname=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.agent.appdata.split(",");l.agent.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.agent.text=d.slice(1,d.length).join(",");break;case"message":l.agent.text=l.agent.appdata;break;case"set":l.agent.name=l.agent.appdata.split("=")[0],l.agent.value=l.agent.appdata.split("=")[1];break;case"agi":l.agent.project=l.agent.appdata;break;default:var c=l.agent.appdata.split(",");l.agent.agent=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.agent.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.agent.timeout=30;function m(e){n.hide(e)}l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outbounddial"===l.agent.appType.toLowerCase()&&(l.agent.prefix=l.agent.phone?l.agent.phone.split("$")[0]:void 0,l.agent.callerId=l.agent.callerID?"CALLERID(all)="+l.agent.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outboundDial"===l.agent.appType&&(l.agent.phone=i.cutdigits?(l.agent.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.agent.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.agent.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.agent.options+="U(xcally-mixmonitor-context)"):l.agent.options=l.agent.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.agents,{name:l.agent.agent});n&&(l.agent.UserId=n.id);if(l.agent.appType&&"custom"===l.agent.appType);else switch((l.agent.app||l.agent.appType).toLowerCase()){case"set":l.agent.appdata=l.agent.name+"="+l.agent.value;break;case"custom":break;default:e[0]=l.agent.agent,e[1]=l.agent.timeout,l.agent.appdata=e.join(",")}m(l.agent)},l.closeDialog=m,o.hasRole("admin")?s.user.get({fields:"id,name",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){l.agents=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.user.get({fields:"id,name",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){l.agents=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.agents,{id:e.resourceId})}),t=null;if(l.agent&&(t=_.find(l.agents,{name:l.agent.agent})),t&&!_.some(n,["id",t.id])){var a=_.find(l.agents,{id:t.id});a.canSelect=!1,n.push(a)}l.agents=n})}else{var t=[],a=null;l.agent&&(a=_.find(l.agents,{name:l.agent.agent}));for(var i=0;i<l.agents.length;i++)a&&l.agents[i].id===a.id&&(l.agents[i].canSelect=!1,t.push(l.agents[i]));l.agents=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppagentDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.amazonlex=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.amazonlex.appdata)switch(l.amazonlex.appType?l.amazonlex.appType.toLowerCase():l.amazonlex.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.amazonlex.appdata.split(",");l.amazonlex.key=d[0],l.amazonlex.language=d[1],l.amazonlex.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.amazonlex.appdata.split(",");l.amazonlex.projectId=d[0],l.amazonlex.clientEmail=d[1],l.amazonlex.privateKey=d[2],l.amazonlex.language=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=d[0],l.amazonlex.secretaccesskey=d[1],l.amazonlex.lexregion=d[2],l.amazonlex.botname=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.amazonlex.appdata.split(",");l.amazonlex.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.amazonlex.text=d.slice(1,d.length).join(",");break;case"message":l.amazonlex.text=l.amazonlex.appdata;break;case"set":l.amazonlex.name=l.amazonlex.appdata.split("=")[0],l.amazonlex.value=l.amazonlex.appdata.split("=")[1];break;case"agi":l.amazonlex.project=l.amazonlex.appdata;break;default:var c=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.amazonlex.secretaccesskey=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.amazonlex.lexregion=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.amazonlex.botname=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.amazonlex.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.amazonlex.lexregion="us-east-1";function m(e){n.hide(e)}l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outbounddial"===l.amazonlex.appType.toLowerCase()&&(l.amazonlex.prefix=l.amazonlex.phone?l.amazonlex.phone.split("$")[0]:void 0,l.amazonlex.callerId=l.amazonlex.callerID?"CALLERID(all)="+l.amazonlex.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outboundDial"===l.amazonlex.appType&&(l.amazonlex.phone=i.cutdigits?(l.amazonlex.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.amazonlex.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.amazonlex.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.amazonlex.options+="U(xcally-mixmonitor-context)"):l.amazonlex.options=l.amazonlex.options.replace("U(xcally-mixmonitor-context)",""));if(l.amazonlex.appType&&"custom"===l.amazonlex.appType);else switch((l.amazonlex.app||l.amazonlex.appType).toLowerCase()){case"set":l.amazonlex.appdata=l.amazonlex.name+"="+l.amazonlex.value;break;case"custom":break;default:e[0]=l.amazonlex.accesskeyid,e[1]=l.amazonlex.secretaccesskey,e[2]=l.amazonlex.lexregion,e[3]=l.amazonlex.botname,e[4]=l.amazonlex.welcomemessage,l.amazonlex.appdata=e.join(",")}m(l.amazonlex)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppamazonlexDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.autoreply=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.autoreply.appdata)switch(l.autoreply.appType?l.autoreply.appType.toLowerCase():l.autoreply.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.autoreply.appdata.split(",");l.autoreply.key=d[0],l.autoreply.language=d[1],l.autoreply.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.autoreply.appdata.split(",");l.autoreply.projectId=d[0],l.autoreply.clientEmail=d[1],l.autoreply.privateKey=d[2],l.autoreply.language=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.autoreply.appdata.split(",");l.autoreply.accesskeyid=d[0],l.autoreply.secretaccesskey=d[1],l.autoreply.lexregion=d[2],l.autoreply.botname=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.autoreply.appdata.split(",");l.autoreply.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.autoreply.text=d.slice(1,d.length).join(",");break;case"message":l.autoreply.text=l.autoreply.appdata;break;case"set":l.autoreply.name=l.autoreply.appdata.split("=")[0],l.autoreply.value=l.autoreply.appdata.split("=")[1];break;case"agi":l.autoreply.project=l.autoreply.appdata;break;default:var c=l.autoreply.appdata.split(",");l.autoreply.times=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.autoreply.text=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.autoreply.times=1;function m(e){n.hide(e)}l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outbounddial"===l.autoreply.appType.toLowerCase()&&(l.autoreply.prefix=l.autoreply.phone?l.autoreply.phone.split("$")[0]:void 0,l.autoreply.callerId=l.autoreply.callerID?"CALLERID(all)="+l.autoreply.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outboundDial"===l.autoreply.appType&&(l.autoreply.phone=i.cutdigits?(l.autoreply.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.autoreply.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.autoreply.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.autoreply.options+="U(xcally-mixmonitor-context)"):l.autoreply.options=l.autoreply.options.replace("U(xcally-mixmonitor-context)",""));if(l.autoreply.appType&&"custom"===l.autoreply.appType);else switch((l.autoreply.app||l.autoreply.appType).toLowerCase()){case"set":l.autoreply.appdata=l.autoreply.name+"="+l.autoreply.value;break;case"custom":break;default:e[0]=l.autoreply.times,e[1]=l.autoreply.text,l.autoreply.appdata=e.join(",")}m(l.autoreply)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppautoreplyDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.close=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.close.appdata)switch(l.close.appType?l.close.appType.toLowerCase():l.close.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.close.appdata.split(",");l.close.key=d[0],l.close.language=d[1],l.close.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.close.appdata.split(",");l.close.projectId=d[0],l.close.clientEmail=d[1],l.close.privateKey=d[2],l.close.language=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.close.appdata.split(",");l.close.accesskeyid=d[0],l.close.secretaccesskey=d[1],l.close.lexregion=d[2],l.close.botname=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.close.appdata.split(",");l.close.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.close.text=d.slice(1,d.length).join(",");break;case"message":l.close.text=l.close.appdata;break;case"set":l.close.name=l.close.appdata.split("=")[0],l.close.value=l.close.appdata.split("=")[1];break;case"agi":l.close.project=l.close.appdata;break;default:var c=l.close.appdata.split(",");l.close.disposition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outbounddial"===l.close.appType.toLowerCase()&&(l.close.prefix=l.close.phone?l.close.phone.split("$")[0]:void 0,l.close.callerId=l.close.callerID?"CALLERID(all)="+l.close.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outboundDial"===l.close.appType&&(l.close.phone=i.cutdigits?(l.close.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.close.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.close.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.close.options+="U(xcally-mixmonitor-context)"):l.close.options=l.close.options.replace("U(xcally-mixmonitor-context)",""));if(l.close.appType&&"custom"===l.close.appType);else switch((l.close.app||l.close.appType).toLowerCase()){case"set":l.close.appdata=l.close.name+"="+l.close.value;break;case"custom":break;default:e[0]=l.close.disposition,l.close.appdata=e.join(",")}m(l.close)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppcloseDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflow=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflow.appdata)switch(l.dialogflow.appType?l.dialogflow.appType.toLowerCase():l.dialogflow.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflow.appdata.split(",");l.dialogflow.key=d[0],l.dialogflow.language=d[1],l.dialogflow.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflow.appdata.split(",");l.dialogflow.projectId=d[0],l.dialogflow.clientEmail=d[1],l.dialogflow.privateKey=d[2],l.dialogflow.language=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflow.appdata.split(",");l.dialogflow.accesskeyid=d[0],l.dialogflow.secretaccesskey=d[1],l.dialogflow.lexregion=d[2],l.dialogflow.botname=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflow.appdata.split(",");l.dialogflow.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflow.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflow.text=l.dialogflow.appdata;break;case"set":l.dialogflow.name=l.dialogflow.appdata.split("=")[0],l.dialogflow.value=l.dialogflow.appdata.split("=")[1];break;case"agi":l.dialogflow.project=l.dialogflow.appdata;break;default:var c=l.dialogflow.appdata.split(",");l.dialogflow.key=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflow.language=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflow.welcomemessage=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}else l.dialogflow.language="en";function m(e){n.hide(e)}l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outbounddial"===l.dialogflow.appType.toLowerCase()&&(l.dialogflow.prefix=l.dialogflow.phone?l.dialogflow.phone.split("$")[0]:void 0,l.dialogflow.callerId=l.dialogflow.callerID?"CALLERID(all)="+l.dialogflow.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outboundDial"===l.dialogflow.appType&&(l.dialogflow.phone=i.cutdigits?(l.dialogflow.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflow.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflow.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflow.options+="U(xcally-mixmonitor-context)"):l.dialogflow.options=l.dialogflow.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflow.appType&&"custom"===l.dialogflow.appType);else switch((l.dialogflow.app||l.dialogflow.appType).toLowerCase()){case"set":l.dialogflow.appdata=l.dialogflow.name+"="+l.dialogflow.value;break;case"custom":break;default:e[0]=l.dialogflow.key,e[1]=l.dialogflow.language,e[2]=l.dialogflow.welcomemessage,l.dialogflow.appdata=e.join(",")}m(l.dialogflow)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppdialogflowDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflowv2=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflowv2.appdata)switch(l.dialogflowv2.appType?l.dialogflowv2.appType.toLowerCase():l.dialogflowv2.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.key=d[0],l.dialogflowv2.language=d[1],l.dialogflowv2.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=d[0],l.dialogflowv2.clientEmail=d[1],l.dialogflowv2.privateKey=d[2],l.dialogflowv2.language=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.accesskeyid=d[0],l.dialogflowv2.secretaccesskey=d[1],l.dialogflowv2.lexregion=d[2],l.dialogflowv2.botname=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflowv2.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflowv2.text=l.dialogflowv2.appdata;break;case"set":l.dialogflowv2.name=l.dialogflowv2.appdata.split("=")[0],l.dialogflowv2.value=l.dialogflowv2.appdata.split("=")[1];break;case"agi":l.dialogflowv2.project=l.dialogflowv2.appdata;break;default:var c=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflowv2.clientEmail=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflowv2.privateKey=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.dialogflowv2.language=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.dialogflowv2.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.dialogflowv2.language="en";function m(e){n.hide(e)}l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outbounddial"===l.dialogflowv2.appType.toLowerCase()&&(l.dialogflowv2.prefix=l.dialogflowv2.phone?l.dialogflowv2.phone.split("$")[0]:void 0,l.dialogflowv2.callerId=l.dialogflowv2.callerID?"CALLERID(all)="+l.dialogflowv2.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outboundDial"===l.dialogflowv2.appType&&(l.dialogflowv2.phone=i.cutdigits?(l.dialogflowv2.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflowv2.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflowv2.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflowv2.options+="U(xcally-mixmonitor-context)"):l.dialogflowv2.options=l.dialogflowv2.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflowv2.appType&&"custom"===l.dialogflowv2.appType);else switch((l.dialogflowv2.app||l.dialogflowv2.appType).toLowerCase()){case"set":l.dialogflowv2.appdata=l.dialogflowv2.name+"="+l.dialogflowv2.value;break;case"custom":break;default:e[0]=l.dialogflowv2.projectId,e[1]=l.dialogflowv2.clientEmail,e[2]=l.dialogflowv2.privateKey,e[3]=l.dialogflowv2.language,e[4]=l.dialogflowv2.welcomemessage,l.dialogflowv2.appdata=e.join(",")}m(l.dialogflowv2)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppdialogflowv2DialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotoif=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotoif.appdata)switch(l.gotoif.appType?l.gotoif.appType.toLowerCase():l.gotoif.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotoif.appdata.split(",");l.gotoif.key=d[0],l.gotoif.language=d[1],l.gotoif.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotoif.appdata.split(",");l.gotoif.projectId=d[0],l.gotoif.clientEmail=d[1],l.gotoif.privateKey=d[2],l.gotoif.language=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotoif.appdata.split(",");l.gotoif.accesskeyid=d[0],l.gotoif.secretaccesskey=d[1],l.gotoif.lexregion=d[2],l.gotoif.botname=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotoif.appdata.split(",");l.gotoif.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotoif.text=d.slice(1,d.length).join(",");break;case"message":l.gotoif.text=l.gotoif.appdata;break;case"set":l.gotoif.name=l.gotoif.appdata.split("=")[0],l.gotoif.value=l.gotoif.appdata.split("=")[1];break;case"agi":l.gotoif.project=l.gotoif.appdata;break;default:var c=l.gotoif.appdata.split(",");l.gotoif.condition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.gotoif.truepriority=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.gotoif.falsepriority=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}function m(e){n.hide(e)}l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outbounddial"===l.gotoif.appType.toLowerCase()&&(l.gotoif.prefix=l.gotoif.phone?l.gotoif.phone.split("$")[0]:void 0,l.gotoif.callerId=l.gotoif.callerID?"CALLERID(all)="+l.gotoif.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outboundDial"===l.gotoif.appType&&(l.gotoif.phone=i.cutdigits?(l.gotoif.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotoif.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotoif.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotoif.options+="U(xcally-mixmonitor-context)"):l.gotoif.options=l.gotoif.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotoif.appType&&"custom"===l.gotoif.appType);else switch((l.gotoif.app||l.gotoif.appType).toLowerCase()){case"set":l.gotoif.appdata=l.gotoif.name+"="+l.gotoif.value;break;case"custom":break;default:e[0]=l.gotoif.condition,e[1]=l.gotoif.truepriority,e[2]=l.gotoif.falsepriority,l.gotoif.appdata=e.join(",")}m(l.gotoif)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppgotoifDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotop.appdata)switch(l.gotop.appType?l.gotop.appType.toLowerCase():l.gotop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotop.appdata.split(",");l.gotop.key=d[0],l.gotop.language=d[1],l.gotop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotop.appdata.split(",");l.gotop.projectId=d[0],l.gotop.clientEmail=d[1],l.gotop.privateKey=d[2],l.gotop.language=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotop.appdata.split(",");l.gotop.accesskeyid=d[0],l.gotop.secretaccesskey=d[1],l.gotop.lexregion=d[2],l.gotop.botname=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotop.appdata.split(",");l.gotop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotop.text=d.slice(1,d.length).join(",");break;case"message":l.gotop.text=l.gotop.appdata;break;case"set":l.gotop.name=l.gotop.appdata.split("=")[0],l.gotop.value=l.gotop.appdata.split("=")[1];break;case"agi":l.gotop.project=l.gotop.appdata;break;default:var c=l.gotop.appdata.split(",");l.gotop.priority=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outbounddial"===l.gotop.appType.toLowerCase()&&(l.gotop.prefix=l.gotop.phone?l.gotop.phone.split("$")[0]:void 0,l.gotop.callerId=l.gotop.callerID?"CALLERID(all)="+l.gotop.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outboundDial"===l.gotop.appType&&(l.gotop.phone=i.cutdigits?(l.gotop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotop.options+="U(xcally-mixmonitor-context)"):l.gotop.options=l.gotop.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotop.appType&&"custom"===l.gotop.appType);else switch((l.gotop.app||l.gotop.appType).toLowerCase()){case"set":l.gotop.appdata=l.gotop.name+"="+l.gotop.value;break;case"custom":break;default:e[0]=l.gotop.priority,l.gotop.appdata=e.join(",")}m(l.gotop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppgotopDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;if(c.currentUser=l.getCurrentUser(),c.errors=[],c.title="TOOLS.EDIT_INTERVAL",c.interval=angular.copy(i),c.intervals=s,c.newInterval=!1,c.types=["always","custom","list"],c.crudPermissions=d,c.daysOfWeek=a.getDaysOfWeek(),c.monthNumber=a.getMonthNumber(),c.monthName=a.getMonthName(),c.daysOfMonth=a.getDaysOfMonth(),c.interval)if("*,*,*,*"!==c.interval.interval){c.type="custom";var m=c.interval.interval.split(","),u=m[0],p=m[1],g=m[2],v=m[3];if("*"!==u){var h,f=u.split("-")[0],b=u.split("-")[1];(h=new Date).setHours(Number(f.split(":")[0])),h.setMinutes(Number(f.split(":")[1])),c.timeRangeFrom=h,(h=new Date).setHours(Number(b.split(":")[0])),h.setMinutes(Number(b.split(":")[1])),c.timeRangeTo=h}"*"!==p&&(c.dayOfWeekFrom=p.split("-")[0],c.dayOfWeekTo=p.split("-")[1]),"*"!==g&&(c.monthDayFrom=g.split("-")[0],c.monthDayTo=g.split("-")[1]),"*"!==v&&(c.monthFrom=v.split("-")[0],c.monthTo=v.split("-")[1])}else c.type="always";else c.interval={interval:"*,*,*,*"},c.type="always",c.title="TOOLS.NEW_INTERVAL",c.newInterval=!0;function A(){switch(c.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==c.timeRangeFrom&&c.timeRangeFrom&&c.timeRangeTo){var n=(c.timeRangeFrom.getHours()<10?"0":"")+c.timeRangeFrom.getHours()+":"+(c.timeRangeFrom.getMinutes()<10?"0":"")+c.timeRangeFrom.getMinutes(),t=(c.timeRangeTo.getHours()<10?"0":"")+c.timeRangeTo.getHours()+":"+(c.timeRangeTo.getMinutes()<10?"0":"")+c.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return c.dayOfWeekFrom?c.dayOfWeekTo?e.push(c.dayOfWeekFrom+"-"+c.dayOfWeekTo):e.push(c.dayOfWeekFrom):e.push("*"),c.monthDayFrom?c.monthDayTo?e.push(c.monthDayFrom+"-"+c.monthDayTo):e.push(c.monthDayFrom):e.push("*"),c.monthFrom?c.monthTo?e.push(c.monthFrom+"-"+c.monthTo):e.push(c.monthFrom):e.push("*"),e.join()}}function E(e){n.hide(e)}e.params.id&&!c.interval.application&&(c.interval.IntervalId=e.params.id),c.interval.IntervalId&&c.interval.application&&(c.type="list"),c.addNewInterval=function(){c.errors=[],c.interval.interval=A(),r.interval.save(c.interval).$promise.then(function(e){c.intervals.push(e),o.success({title:"Interval properly created",msg:c.interval.name?c.interval.name+" has been created!":""}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},c.saveInterval=function(){c.errors=[],c.interval.interval=A(),c.interval.application?("list"!==c.type&&(c.interval.IntervalId=null),E(c.interval)):r.interval.update({id:c.interval.id},c.interval).$promise.then(function(e){var n=_.find(c.intervals,{id:e.id});n&&_.merge(n,e),o.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},c.closeDialog=E,c.interval.application&&(l.hasRole("admin")?r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:c.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=e&&e.rows?e.rows:[],t=[],a=null;c.interval&&(a=_.find(c.intervals,{name:c.interval.IntervalId})),a&&!_.some(n,["resourceId",a.id])&&c.intervals.forEach(function(e){e.id===a.id&&(e.canSelect=!1,t.push(e))}),c.intervals=t})}else c.intervals=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}))}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditOpenchannelAccountAppintervalDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.noop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.noop.appdata)switch(l.noop.appType?l.noop.appType.toLowerCase():l.noop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.noop.appdata.split(",");l.noop.key=d[0],l.noop.language=d[1],l.noop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.noop.appdata.split(",");l.noop.projectId=d[0],l.noop.clientEmail=d[1],l.noop.privateKey=d[2],l.noop.language=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.noop.appdata.split(",");l.noop.accesskeyid=d[0],l.noop.secretaccesskey=d[1],l.noop.lexregion=d[2],l.noop.botname=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.noop.appdata.split(",");l.noop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.noop.text=d.slice(1,d.length).join(",");break;case"message":l.noop.text=l.noop.appdata;break;case"set":l.noop.name=l.noop.appdata.split("=")[0],l.noop.value=l.noop.appdata.split("=")[1];break;case"agi":l.noop.project=l.noop.appdata;break;default:var c=l.noop.appdata.split(",");l.noop.value=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outbounddial"===l.noop.appType.toLowerCase()&&(l.noop.prefix=l.noop.phone?l.noop.phone.split("$")[0]:void 0,l.noop.callerId=l.noop.callerID?"CALLERID(all)="+l.noop.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outboundDial"===l.noop.appType&&(l.noop.phone=i.cutdigits?(l.noop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.noop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.noop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.noop.options+="U(xcally-mixmonitor-context)"):l.noop.options=l.noop.options.replace("U(xcally-mixmonitor-context)",""));if(l.noop.appType&&"custom"===l.noop.appType);else switch((l.noop.app||l.noop.appType).toLowerCase()){case"set":l.noop.appdata=l.noop.name+"="+l.noop.value;break;case"custom":break;default:e[0]=l.noop.value,l.noop.appdata=e.join(",")}m(l.noop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppnoopDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.queue=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.queue.appdata)switch(l.queue.appType?l.queue.appType.toLowerCase():l.queue.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.queue.appdata.split(",");l.queue.key=d[0],l.queue.language=d[1],l.queue.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.queue.appdata.split(",");l.queue.projectId=d[0],l.queue.clientEmail=d[1],l.queue.privateKey=d[2],l.queue.language=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.queue.appdata.split(",");l.queue.accesskeyid=d[0],l.queue.secretaccesskey=d[1],l.queue.lexregion=d[2],l.queue.botname=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.queue.appdata.split(",");l.queue.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.queue.text=d.slice(1,d.length).join(",");break;case"message":l.queue.text=l.queue.appdata;break;case"set":l.queue.name=l.queue.appdata.split("=")[0],l.queue.value=l.queue.appdata.split("=")[1];break;case"agi":l.queue.project=l.queue.appdata;break;default:var c=l.queue.appdata.split(",");l.queue.queue=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.queue.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.queue.queue=300,l.queue.timeout=300;function m(e){n.hide(e)}l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outbounddial"===l.queue.appType.toLowerCase()&&(l.queue.prefix=l.queue.phone?l.queue.phone.split("$")[0]:void 0,l.queue.callerId=l.queue.callerID?"CALLERID(all)="+l.queue.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outboundDial"===l.queue.appType&&(l.queue.phone=i.cutdigits?(l.queue.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.queue.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.queue.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.queue.options+="U(xcally-mixmonitor-context)"):l.queue.options=l.queue.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.queues,{name:l.queue.queue});n&&(l.queue[_.capitalize("openChannel")+"QueueId"]=n.id);if(l.queue.appType&&"custom"===l.queue.appType);else switch((l.queue.app||l.queue.appType).toLowerCase()){case"set":l.queue.appdata=l.queue.name+"="+l.queue.value;break;case"custom":break;default:e[0]=l.queue.queue,e[1]=l.queue.timeout,l.queue.appdata=e.join(",")}m(l.queue)},l.closeDialog=m,o.hasRole("admin")?s.openchannelQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.openchannelQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:801}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.queues,{id:e.resourceId})}),t=null;if(l.queue&&(t=_.find(l.queues,{name:l.queue.queue})),t&&!_.some(n,["id",t.id])){var a=_.find(l.queues,{id:t.id});a.canSelect=!1,n.push(a)}l.queues=n})}else{var t=[],a=null;l.queue&&(a=_.find(l.queues,{name:l.queue.queue}));for(var i=0;i<l.queues.length;i++)a&&l.queues[i].id===a.id&&(l.queues[i].canSelect=!1,t.push(l.queues[i]));l.queues=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppqueueDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.system=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.system.appdata)switch(l.system.appType?l.system.appType.toLowerCase():l.system.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.system.appdata.split(",");l.system.key=d[0],l.system.language=d[1],l.system.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.system.appdata.split(",");l.system.projectId=d[0],l.system.clientEmail=d[1],l.system.privateKey=d[2],l.system.language=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.system.appdata.split(",");l.system.accesskeyid=d[0],l.system.secretaccesskey=d[1],l.system.lexregion=d[2],l.system.botname=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.system.appdata.split(",");l.system.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.system.text=d.slice(1,d.length).join(",");break;case"message":l.system.text=l.system.appdata;break;case"set":l.system.name=l.system.appdata.split("=")[0],l.system.value=l.system.appdata.split("=")[1];break;case"agi":l.system.project=l.system.appdata;break;default:var c=l.system.appdata.split(",");l.system.command=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.system.variable=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.system.variable="";function m(e){n.hide(e)}l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outbounddial"===l.system.appType.toLowerCase()&&(l.system.prefix=l.system.phone?l.system.phone.split("$")[0]:void 0,l.system.callerId=l.system.callerID?"CALLERID(all)="+l.system.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outboundDial"===l.system.appType&&(l.system.phone=i.cutdigits?(l.system.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.system.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.system.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.system.options+="U(xcally-mixmonitor-context)"):l.system.options=l.system.options.replace("U(xcally-mixmonitor-context)",""));if(l.system.appType&&"custom"===l.system.appType);else switch((l.system.app||l.system.appType).toLowerCase()){case"set":l.system.appdata=l.system.name+"="+l.system.value;break;case"custom":break;default:e[0]=l.system.command,e[1]=l.system.variable,l.system.appdata=e.join(",")}m(l.system)},l.closeDialog=m,o.hasRole("admin")?s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1012}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.variables,{id:e.resourceId})}),t=null;if(l.system&&(t=_.find(l.variables,{name:l.system.variable})),t&&!_.some(n,["id",t.id])){var a=_.find(l.variables,{id:t.id});a.canSelect=!1,n.push(a)}l.variables=n})}else{var t=[],a=null;l.system&&(a=_.find(l.variables,{name:l.system.variable}));for(var i=0;i<l.variables.length;i++)a&&l.variables[i].id===a.id&&(l.variables[i].canSelect=!1,t.push(l.variables[i]));l.variables=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppsystemDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.tag=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.tag.appdata)switch(l.tag.appType?l.tag.appType.toLowerCase():l.tag.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.tag.appdata.split(",");l.tag.key=d[0],l.tag.language=d[1],l.tag.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.tag.appdata.split(",");l.tag.projectId=d[0],l.tag.clientEmail=d[1],l.tag.privateKey=d[2],l.tag.language=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.tag.appdata.split(",");l.tag.accesskeyid=d[0],l.tag.secretaccesskey=d[1],l.tag.lexregion=d[2],l.tag.botname=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.tag.appdata.split(",");l.tag.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.tag.text=d.slice(1,d.length).join(",");break;case"message":l.tag.text=l.tag.appdata;break;case"set":l.tag.name=l.tag.appdata.split("=")[0],l.tag.value=l.tag.appdata.split("=")[1];break;case"agi":l.tag.project=l.tag.appdata;break;default:var c=l.tag.appdata.split(",");l.tag.tag=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outbounddial"===l.tag.appType.toLowerCase()&&(l.tag.prefix=l.tag.phone?l.tag.phone.split("$")[0]:void 0,l.tag.callerId=l.tag.callerID?"CALLERID(all)="+l.tag.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outboundDial"===l.tag.appType&&(l.tag.phone=i.cutdigits?(l.tag.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.tag.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.tag.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.tag.options+="U(xcally-mixmonitor-context)"):l.tag.options=l.tag.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.tags,{name:l.tag.tag});n&&(l.tag.TagId=n.id);if(l.tag.appType&&"custom"===l.tag.appType);else switch((l.tag.app||l.tag.appType).toLowerCase()){case"set":l.tag.appdata=l.tag.name+"="+l.tag.value;break;case"custom":break;default:e[0]=l.tag.tag,l.tag.appdata=e.join(",")}m(l.tag)},l.closeDialog=m,o.hasRole("admin")?s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1008}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.tags,{id:e.resourceId})}),t=null;if(l.tag&&(t=_.find(l.tags,{name:l.tag.tag})),t&&!_.some(n,["id",t.id])){var a=_.find(l.tags,{id:t.id});a.canSelect=!1,n.push(a)}l.tags=n})}else{var t=[],a=null;l.tag&&(a=_.find(l.tags,{name:l.tag.tag}));for(var i=0;i<l.tags.length;i++)a&&l.tags[i].id===a.id&&(l.tags[i].canSelect=!1,t.push(l.tags[i]));l.tags=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtags",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountApptagDialogController",e)}(),function(){"use strict";function e(e,a,n,t,i,s,o,r,l,d,c){var m=this;function u(e){m.openchannelAccountInteractions=e||{count:0,rows:[]};for(var n=0;n<m.openchannelAccountInteractions.rows.length;n+=1){var t=m.openchannelAccountInteractions.rows[n];v(t),t.Owner.name=h(t)}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.openchannelInteraction.get(m.query,u).$promise}function g(e){d.openchannelInteraction.delete({id:e.id}).$promise.then(function(){_.remove(m.openchannelAccountInteractions.rows,{id:e.id}),m.openchannelAccountInteractions.count-=1,m.openchannelAccountInteractions.rows.length||p(),l.success({title:"Interaction deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETopenchannelAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(e){e.from?e.contactName=e.from:e.Contact?e.contactName=(e.Contact.firstName||"")+" "+(e.Contact.lastName||""):e.contactName=i.instant("OPENCHANNEL.UNKNOWN")}function h(e){return e.UserId?e.UserId===m.currentUser.id?i.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">":i.instant("DASHBOARDS.NOT_ASSIGNED")}m.currentUser=c.getCurrentUser(),m.openchannelAccount={},m.openchannelAccountInteractions={count:0,rows:[]},m.selectedOpenchannelAccountInteractions=[],m.crudPermissions,m.query={read:"null",closed:"null",sort:"-createdAt",includeAll:"true",limit:10,page:1},m.init=function(e,n,t){m.openchannelAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.OpenchannelAccountId=m.openchannelAccount.id,m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Subject",column:"subject",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},d.tag.get({sort:"name"}).$promise.then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]})},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the interaction?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("interaction #")+e.id||"interaction")+"</b> will be deleted.").ariaLabel("delete interaction").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.openchannelInteractionDownload=function(s,e,n){return d.openchannelInteraction.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="interaction"+s.id,a=new Blob(n,{type:e.type});t="openchannel-interaction"+s.id+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getOpenchannelAccountInteractions=p,m.createOrEditOpenchannelAccountInteraction=function(e,n){o.show({controller:"CreateOrEditInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/interactions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelAccount:m.openchannelAccount,interaction:n,interactions:m.openchannelAccountInteractions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.spyopenchannelInteraction=function(e,t){o.show({controller:"AgentGeneralInteractionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,onShowing:function(e,n){e.vm.init({id:1,channel:"openchannel",interaction:t,spy:!0},a.$parent.vm.setting)}})},m.openAdvancedSearch=function(){o.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(r.body),clickOutsideToClose:!1,locals:{fields:m.advancedSearch.fields,color:void 0,storagePath:"openchannel.openchannelAccounts"},fullscreen:!0}).then(function(e){if(m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply){var n="";n+="||OpenchannelAccountId:=$eq["+m.openchannelAccount.id+"]",m.query.search=e.value?e.value+=n:e.value,p()}}).catch(function(e){l.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.exportSelectedOpenchannelAccountInteractions=function(){var e=angular.copy(m.selectedOpenchannelAccountInteractions);return m.selectedOpenchannelAccountInteractions=[],e},m.deleteOpenchannelAccountInteraction=g,m.deleteSelectedOpenchannelAccountInteractions=function(e){var n=o.confirm().title("Are you sure want to delete the selected interactions?").htmlContent("<b>"+m.selectedOpenchannelAccountInteractions.length+" selected</b> will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedOpenchannelAccountInteractions.forEach(function(e){g(e)}),m.selectedOpenchannelAccountInteractions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.openchannel").controller("OpenchannelAccountInteractionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.openchannelAccountOpenchannelCannedAnswers=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.openchannelAccount.getAnswers(m.query,u).$promise}function g(e){d.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(m.openchannelAccountOpenchannelCannedAnswers.rows,{id:e.id}),m.openchannelAccountOpenchannelCannedAnswers.count-=1,m.openchannelAccountOpenchannelCannedAnswers.rows.length||p(),l.success({title:"OpenchannelCannedAnswer deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETopenchannelAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.openchannelAccount={},m.openchannelAccountOpenchannelCannedAnswers={count:0,rows:[]},m.selectedOpenchannelAccountOpenchannelCannedAnswers=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,key,value,description",limit:10,page:1},m.init=function(e,n,t){m.openchannelAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.OpenchannelAccountId=m.openchannelAccount.id,m.query.id=m.openchannelAccount.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the openchannelCannedAnswer?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("openchannelCannedAnswer #")+e.id||"openchannelCannedAnswer")+"</b> will be deleted.").ariaLabel("delete openchannelCannedAnswer").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getOpenchannelAccountOpenchannelCannedAnswers=p,m.createOrEditOpenchannelAccountOpenchannelCannedAnswer=function(e,n){o.show({controller:"CreateOrEditOpenchannelCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/openchannelCannedAnswers/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelAccount:m.openchannelAccount,openchannelCannedAnswer:n,openchannelCannedAnswers:m.openchannelAccountOpenchannelCannedAnswers.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedOpenchannelAccountOpenchannelCannedAnswers=function(){var e=angular.copy(m.selectedOpenchannelAccountOpenchannelCannedAnswers);return m.selectedOpenchannelAccountOpenchannelCannedAnswers=[],e},m.deleteOpenchannelAccountOpenchannelCannedAnswer=g,m.deleteSelectedOpenchannelAccountOpenchannelCannedAnswers=function(e){var n=o.confirm().title("Are you sure want to delete the selected openchannelCannedAnswers?").htmlContent("<b>"+m.selectedOpenchannelAccountOpenchannelCannedAnswers.length+" selected</b> will be deleted.").ariaLabel("delete openchannelCannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedOpenchannelAccountOpenchannelCannedAnswers.forEach(function(e){g(e)}),m.selectedOpenchannelAccountOpenchannelCannedAnswers=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.openchannel").controller("OpenchannelAccountOpenchannelCannedAnswersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="OPENCHANNEL.EDIT_OPENCHANNELCANNEDANSWER",g.openchannelCannedAnswer=angular.copy(l),g.openchannelCannedAnswers=r,g.newOpenchannelCannedAnswer=!1,g.openchannelCannedAnswer||(g.openchannelCannedAnswer={},g.title="OPENCHANNEL.NEW_OPENCHANNELCANNEDANSWER",g.newOpenchannelCannedAnswer=!0),n.params.id&&(g.openchannelCannedAnswer.OpenchannelAccountId=n.params.id),g.addNewOpenchannelCannedAnswer=function(){g.errors=[],d.cannedAnswer.save(g.openchannelCannedAnswer).$promise.then(function(e){g.openchannelCannedAnswers.unshift(e.toJSON()),o.success({title:"OpenchannelCannedAnswer properly created",msg:g.openchannelCannedAnswer.name?g.openchannelCannedAnswer.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveOpenchannelCannedAnswer=function(){g.errors=[],d.cannedAnswer.update({id:g.openchannelCannedAnswer.id},g.openchannelCannedAnswer).$promise.then(function(e){var n=_.find(g.openchannelCannedAnswers,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"OpenchannelCannedAnswer properly saved!",msg:g.openchannelCannedAnswer.name?g.openchannelCannedAnswer.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteOpenchannelCannedAnswer=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The openchannelCannedAnswer will be deleted.").ariaLabel("Delete OpenchannelCannedAnswer").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cannedAnswer.delete({id:g.openchannelCannedAnswer.id}).$promise.then(function(){_.remove(g.openchannelCannedAnswers,{id:g.openchannelCannedAnswer.id}),o.success({title:"OpenchannelCannedAnswer properly deleted!",msg:(g.openchannelCannedAnswer.name||"openchannelCannedAnswer")+" has been deleted!"}),v(g.openchannelCannedAnswer)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","openchannelCannedAnswers","openchannelCannedAnswer","api","Auth","license","setting","crudPermissions"],angular.module("app.openchannel").controller("CreateOrEditOpenchannelCannedAnswerDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.dispositions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=l.openchannelAccount.getDispositions(m.query,u).$promise}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){p(),d.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.dispositions={count:0,rows:[]},m.selectedDispositions=[],m.crudPermissions,m.levels={first:"1st",second:"2nd",third:"3rd"},m.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},m.init=function(e,n){m.openchannelAccount=e||{},m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.OpenchannelAccountId=m.openchannelAccount.id,m.query.id=m.openchannelAccount.id,p()},m.deleteConfirm=function(e,n){var t=_.some(m.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){g(e)})},m.success=u,m.getDispositions=p,m.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:{id:m.openchannelAccount.id,field:"OpenchannelAccountId",route:"openchannelAccount"},license:null,setting:null,crudPermissions:m.crudPermissions}}).then(function(e){e&&p()})},m.deleteDisposition=g,m.exportSelectedDispositions=function(){var e=angular.copy(m.selectedDispositions);return m.selectedDispositions=[],e},m.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:m.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedDispositions.forEach(function(e){g(e)}),m.selectedDispositions=[]})},m.deselectDispositions=function(){m.selectedDispositions=[]},m.selectAllDispositions=function(){m.selectedDispositions=m.dispositions.rows};var v=!0,h=1;e.$watch("vm_dc.query.filter",function(e,n){v?o(function(){v=!1}):(n||(h=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=h),p())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","api","toasty","Auth"],angular.module("app.openchannel").controller("OpenchannelAccountDispositionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;p.currentUser=d.getCurrentUser(),p.license=s,p.setting=o,p.passwordPattern=p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.location=n.protocol()+"://"+n.host(),p.openchannelAccount=c||e.params.openchannelAccount||{},p.userProfile=m,p.userProfileSection=u&&1==u.count?u.rows[0]:null,p.crudPermissions=d.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.hasModulePermissions={},p.selectedTab=e.params.tab||0,p.agentadddialog=function(e,n){t.show({controller:"OpenchannelAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{openchannelAccount:e,openchannelAccounts:p.openchannelAccounts?p.openchannelAccounts.rows:[],crudPermissions:p.crudPermissions,realtime:!1}})},p.alert=l.info,p.gotoOpenchannelAccounts=function(){e.go("app.openchannel.openchannelAccounts",{},{reload:"app.openchannel.openchannelAccounts"})},p.saveOpenchannelAccount=function(){r.openchannelAccount.update({id:p.openchannelAccount.id},p.openchannelAccount).$promise.then(function(){l.success({title:"OpenchannelAccount updated!",msg:p.openchannelAccount.name?p.openchannelAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.lists,{id:e.resourceId})}),t=null;if(p.openchannelAccount&&(t=_.find(p.lists,{id:Number(p.openchannelAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.lists,{id:t.id});a.canSelect=!1,n.push(a)}p.lists=n})}else{var t=[],a=null;p.openchannelAccount&&(a=_.find(p.lists,{id:Number(p.openchannelAccount.ListId)}));for(var i=0;i<p.lists.length;i++)a&&p.lists[i].id===a.id&&(p.lists[i].canSelect=!1,t.push(p.lists[i]));p.lists=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.cmContact.describe({id:p.openchannelAccount.ListId}).$promise.then(function(e){p.fields=[];e=_.values(e.toJSON());for(var n=["id","createdAt","updatedAt","deletedAt","scheduledat","ListId","CompanyId"],t=0;t<e.length;t++)_.includes(n,e[t].columnName)||p.fields.push(e[t])}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_FIELDS",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.pauses,{id:e.resourceId})});p.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),p.pauses=n})}else p.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","openchannelAccount","userProfile","userProfileSection"],angular.module("app.openchannel").controller("OpenchannelAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.openchannelAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="openchannelAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedOpenchannelAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,key,token,replyUri,ListId,waitForTheAssignedAgent,mapKey,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUri,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.openchannel.openchannelAccounts.edit",{id:e.id,openchannelAccount:e,crudPermissions:f.crudPermissions})},f.interactionsgoto=function(e,n){t.go("app.openchannel.openchannelAccounts.edit",{id:e.id,tab:5})},f.agentadddialog=function(e,n){i.show({controller:"OpenchannelAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{openchannelAccount:e,openchannelAccounts:f.openchannelAccounts?f.openchannelAccounts.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("openchannelAccount")+"?").htmlContent("<b>"+(e.name||"openchannelAccount")+"</b> will be deleted.").ariaLabel("delete openchannelAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getOpenchannelAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.openchannelAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="OpenchannelAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditOpenchannelAccount=function(e,n){i.show({controller:"CreateOrEditOpenchannelAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelAccount:n,openchannelAccounts:f.openchannelAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteOpenchannelAccount=y,f.exportSelectedOpenchannelAccounts=function(){var e=angular.copy(f.selectedOpenchannelAccounts);return f.selectedOpenchannelAccounts=[],e},f.deleteSelectedOpenchannelAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected openchannelAccounts?").htmlContent("<b>"+f.selectedOpenchannelAccounts.length+" selected</b> will be deleted.").ariaLabel("delete OpenchannelAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedOpenchannelAccounts.forEach(function(e){y(e)}),f.selectedOpenchannelAccounts=[]})},f.deselectOpenchannelAccounts=function(){f.selectedOpenchannelAccounts=[]},f.selectAllOpenchannelAccounts=function(){f.selectedOpenchannelAccounts=f.openchannelAccounts.rows},g.hasRole("admin")?m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.lists,{id:e.resourceId})}),t=null;if(f.openchannelAccount&&(t=_.find(f.lists,{id:Number(f.openchannelAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.lists,{id:t.id});a.canSelect=!1,n.push(a)}f.lists=n})}else{var t=[],a=null;f.openchannelAccount&&(a=_.find(f.lists,{id:Number(f.openchannelAccount.ListId)}));for(var i=0;i<f.lists.length;i++)a&&f.lists[i].id===a.id&&(f.lists[i].canSelect=!1,t.push(f.lists[i]));f.lists=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.openchannelAccounts=e||{count:0,rows:[]}}function y(e){m.openchannelAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.openchannelAccounts.rows,{id:e.id}),f.openchannelAccounts.count-=1,f.openchannelAccounts.rows.length||f.getOpenchannelAccounts(),p.success({title:_.startCase("OpenchannelAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEopenchannelAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEopenchannelAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getOpenchannelAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","openchannelAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.openchannel").controller("OpenchannelAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="OPENCHANNEL.EDIT_OPENCHANNELQUEUE",g.openchannelQueue=angular.copy(l),g.openchannelQueues=r,g.newOpenchannelQueue=!1,g.openchannelQueue||(g.openchannelQueue={strategy:"beepall",timeout:10},g.title="OPENCHANNEL.NEW_OPENCHANNELQUEUE",g.newOpenchannelQueue=!0),g.addNewOpenchannelQueue=function(){g.errors=[],d.openchannelQueue.save(g.openchannelQueue).$promise.then(function(e){g.openchannelQueues.unshift(e.toJSON()),o.success({title:"OpenchannelQueue properly created",msg:g.openchannelQueue.name?g.openchannelQueue.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveOpenchannelQueue=function(){g.errors=[],d.openchannelQueue.update({id:g.openchannelQueue.id},g.openchannelQueue).$promise.then(function(e){var n=_.find(g.openchannelQueues,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"OpenchannelQueue properly saved!",msg:g.openchannelQueue.name?g.openchannelQueue.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteOpenchannelQueue=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The openchannelQueue will be deleted.").ariaLabel("Delete OpenchannelQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.openchannelQueue.delete({id:g.openchannelQueue.id}).$promise.then(function(){_.remove(g.openchannelQueues,{id:g.openchannelQueue.id}),o.success({title:"OpenchannelQueue properly deleted!",msg:(g.openchannelQueue.name||"openchannelQueue")+" has been deleted!"}),v(g.openchannelQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","openchannelQueues","openchannelQueue","api","Auth","license","setting","crudPermissions"],angular.module("app.openchannel").controller("CreateOrEditOpenchannelQueueDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.openchannelQueue.getAgents({id:c.openchannelQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserOpenchannelQueue?"penalty "+e.UserOpenchannelQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.openchannelQueue=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.openchannelQueue.removeAgents({id:c.openchannelQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.openchannelQueue.addAgents({id:c.openchannelQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("OPENCHANNEL.ALL_AGENTS"),labelSelected:r.instant("OPENCHANNEL.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","openchannelQueue","openchannelQueues","realtime","$translate","Auth","crudPermissions"],angular.module("app.openchannel").controller("OpenchannelQueueagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.openchannelQueue.getTeams({id:l.openchannelQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.openchannelQueue=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("OPENCHANNEL.ALL_TEAMS"),labelSelected:t.instant("OPENCHANNEL.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.openchannelQueue.removeTeams({id:l.openchannelQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.openchannelQueue.addTeams({id:l.openchannelQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","openchannelQueue","$translate","Auth","crudPermissions"],angular.module("app.openchannel").controller("OpenchannelQueueteamaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.openchannelQueue=c||e.params.openchannelQueue||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.teamadddialog=function(e,n){t.show({controller:"OpenchannelQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{openchannelQueue:e,openchannelQueues:u.openchannelQueues?u.openchannelQueues.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){t.show({controller:"OpenchannelQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{openchannelQueue:e,openchannelQueues:u.openchannelQueues?u.openchannelQueues.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.alert=l.info,u.gotoOpenchannelQueues=function(){e.go("app.openchannel.openchannelQueues",{},{reload:"app.openchannel.openchannelQueues"})},u.saveOpenchannelQueue=function(){r.openchannelQueue.update({id:u.openchannelQueue.id},u.openchannelQueue).$promise.then(function(){l.success({title:"OpenchannelQueue updated!",msg:u.openchannelQueue.name?u.openchannelQueue.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","openchannelQueue","userProfileSection"],angular.module("app.openchannel").controller("OpenchannelQueueController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.openchannelQueues=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="openchannelQueues",f.listOrder="",f.listOrderAsc=null,f.selectedOpenchannelQueues=[],f.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"openchannel",limit:10,page:1},f.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.openchannel.openchannelQueues.edit",{id:e.id,openchannelQueue:e,crudPermissions:f.crudPermissions})},f.teamadddialog=function(e,n){i.show({controller:"OpenchannelQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{openchannelQueue:e,openchannelQueues:f.openchannelQueues?f.openchannelQueues.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"OpenchannelQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{openchannelQueue:e,openchannelQueues:f.openchannelQueues?f.openchannelQueues.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("openchannelQueue")+"?").htmlContent("<b>"+(e.name||"openchannelQueue")+"</b> will be deleted.").ariaLabel("delete openchannelQueue").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:810}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.openchannel.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.openchannel.realtime.queues",{})}},f.success=E,f.getOpenchannelQueues=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.openchannelQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="OpenchannelQueues",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditOpenchannelQueue=function(e,n){i.show({controller:"CreateOrEditOpenchannelQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelQueue:n,openchannelQueues:f.openchannelQueues.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteOpenchannelQueue=y,f.exportSelectedOpenchannelQueues=function(){var e=angular.copy(f.selectedOpenchannelQueues);return f.selectedOpenchannelQueues=[],e},f.deleteSelectedOpenchannelQueues=function(e){var n=i.confirm().title("Are you sure want to delete the selected openchannelQueues?").htmlContent("<b>"+f.selectedOpenchannelQueues.length+" selected</b> will be deleted.").ariaLabel("delete OpenchannelQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedOpenchannelQueues.forEach(function(e){y(e)}),f.selectedOpenchannelQueues=[]})},f.deselectOpenchannelQueues=function(){f.selectedOpenchannelQueues=[]},f.selectAllOpenchannelQueues=function(){f.selectedOpenchannelQueues=f.openchannelQueues.rows};var b=!0,A=1;function E(e){f.openchannelQueues=e||{count:0,rows:[]}}function y(e){m.openchannelQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.openchannelQueues.rows,{id:e.id}),f.openchannelQueues.count-=1,f.openchannelQueues.rows.length||f.getOpenchannelQueues(),p.success({title:_.startCase("OpenchannelQueue")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEopenchannelQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEopenchannelQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getOpenchannelQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","openchannelQueues","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.openchannel").controller("OpenchannelQueuesController",e)}(),function(){"use strict";function e(e,o,n,t,a,i,s,r,l,d,c,m,u,p,g,v,h,f){var b=this,A=["userpic","online","lastLoginAt","lastPauseAt","pauseType","lastPauseAt","internal","address","chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","chatCapacity","openchannelCapacity","mailCapacity","smsCapacity","whatsappCapacity","faxCapacity","chatCurrentCapacity","openchannelCurrentCapacity","mailCurrentCapacity","smsCurrentCapacity","whatsappCurrentCapacity","faxCurrentCapacity","chatStatus","openchannelStatus","mailStatus","smsStatus","whatsappStatus","faxStatus","voiceStatus","chatStatusTime","openchannelStatusTime","mailStatusTime","smsStatusTime","whatsappStatusTime","faxStatusTime","voiceStatusTime","queue","destconnectedlinenum","screenrecording","phoneBarEnableScreenRecordingByAgent","phoneBarEnableAutomaticScreenRecording"],E=["chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","online"];for(var y in b.currentUser=v.getCurrentUser(),b.availableStates=["ringing","inuse","busy","onhold","not_inuse"],b.pauses=s||{count:0,rows:[]},b.license=h,b.userProfile=p,b.userProfileSection=g&&1==g.count?g.rows[0]:null,b.crudPermissions=v.parseCrudPermissions(b.userProfileSection?b.userProfileSection.crudPermissions:null),b.agents=r?_.keyBy(r.rows?r.rows:[],"id"):{},b.rpcAgents=l?_.keyBy(l.rows?l.rows:[],"id"):{},b.paginatedAgents={},b.load=!1,b.order=[],b.agentInternal={},b.agents)b.agents.hasOwnProperty(y)&&(b.agents[y].init=!0);b.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},b.logout=function(e,n){return d.user.logout({id:e.id,device:"realtime",agent_id:e.id,agent_name:e.name}).$promise.then(function(){m.success({title:"Agent logout",msg:e.fullname+" properly logout"}),b.agents[e.id]&&(b.agents[e.id].online=!1),b.rpcAgents[e.id]&&(b.rpcAgents[e.id].online=!1),T()}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.queueAdd=function(e,n){t.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:[],channel:"openchannel",direction:"inbound",crudPermissions:b.crudPermissions}})},b.pause=function(n,e){return d.user.pause({id:n.id,type:e}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.unPause=function(n){return d.user.unpause({id:n.id}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.showInfo=function(e){t.show(t.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},b.getAgentStatus=O,b.getAgentGlobalStatus=w,b.isPause=I,b.checkPause=function(e){return"pause"===e},b.isPartialPause=function(e){return"*pause"===e},b.onSave=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(_.omit(e,E),A)),_.merge(b.rpcAgents[e.id],_.pick(_.omit(e,E),A)),w(b.agents[e.id]))},b.onUpdate=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(e,A)),_.merge(b.rpcAgents[e.id],_.pick(e,A)),e.lastPauseAt&&(b.agents[e.id].globalStatusTime=e.lastPauseAt,b.rpcAgents[e.id].globalStatusTime=e.lastPauseAt),w(b.agents[e.id]))},b.onInit=T,b.onConnect=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(_.merge(b.agents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])),_.merge(b.rpcAgents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])))},b.onComplete=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(b.agents[b.agentInternal[e.destaccountcode]]=_.omit(b.agents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]),b.rpcAgents[b.agentInternal[e.destaccountcode]]=_.omit(b.rpcAgents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]))},b.screenRecording=function(e,n){return d.user.update({id:e.id},{screenrecording:n}).$promise.catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.on("user:save",b.onSave),c.on("user:update",b.onUpdate),c.on("user:agentconnect",b.onConnect),c.on("user:agentcomplete",b.onComplete),T();var S=f(function(){b.load&&(b.load=!1,T())},999);function T(e){b.load=!1;var n,t,a=o.defer();b.promise=a.promise,b.filteredAgents=[],b.order=[],_.forIn(b.agents,function(e,n){b.rpcAgents[n]&&_.merge(e,_.pick(_.omit(b.rpcAgents[n],E),A)),w(e),e.online?(b.filteredAgents.push(e),b.agentInternal[e.internal]=n):e.globalStatusTime=_.toNumber(moment().format("x"))}),b.query.globalStatusFilter&&_.remove(b.filteredAgents,function(e){return e.globalStatus!==b.query.globalStatusFilter}),b.query.pauseTypeFilter&&_.remove(b.filteredAgents,function(e){return e.pauseType!==b.query.pauseTypeFilter}),b.query.filter&&_.remove(b.filteredAgents,function(e){return e.fullname.toLowerCase().indexOf(b.query.filter.toLowerCase())<0}),b.filteredAgents=(n=b.filteredAgents,t=_.startsWith(b.query.order,"-")?"desc":"asc",_.orderBy(n,[b.query.order.replace("-","")],[t]));var i=(b.query.page-1)*b.query.limit;b.paginatedAgents=_.drop(b.filteredAgents,i).slice(0,b.query.limit);for(var s=0;s<b.paginatedAgents.length;s+=1)b.order.push(b.paginatedAgents[s].id);a.resolve(),b.load=!0}function I(e){return"pause"===e||"*pause"===e}function C(e){return"idle"===e||"unknown"===e||"unavailable"===e||"ringing"===e||_.isNil(e)}function O(e,n){return"voice"===n?"idle"!==e[n+"Status"]?e[n+"Status"]:e[n+"Pause"]?e[n+"Status"]="pause":"idle":e[n+"Pause"]?e[n+"Status"]="pause":e[n+"Status"]}function w(e){var n="unknown";n=_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"pause":_.some([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"*pause":_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],C)?"idle":"busy",e.globalStatus!==n&&(e.globalStatus=n,e.init?(e.init=!1,e.globalStatusTime=I(n)?_.toNumber(moment(e.lastPauseAt).format("x")):_.max([e.voiceStatusTime,e.chatStatusTime,e.mailStatusTime,e.smsStatusTime,e.whatsappStatusTime,e.openchannelStatusTime,e.faxStatusTime])):e.globalStatusTime=_.toNumber(moment().format("x")))}e.$on("$destroy",function(){c.removeAllListeners("user:save"),c.removeAllListeners("user:update"),c.removeAllListeners("user:agentconnect"),c.removeAllListeners("user:agentcomplete"),S&&(f.cancel(S),S=null)})}e.$inject=["$scope","$q","$timeout","$mdDialog","$document","$filter","pauses","agents","rpcAgents","api","socket","toasty","helperClasses","userProfile","userProfileSection","Auth","license","$interval"],angular.module("app.voice").controller("AgentsOpenchannelRealtimeController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c,m){var u=this,p=["loggedIn","available","waiting","paused"],g=n(function(){},999);u.currentUser=c.getCurrentUser(),u.queues=s,u.userProfileSection=d&&1==d.count?d.rows[0]:null,u.crudPermissions=c.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.query={id:c.isUser()?u.currentUser.id:void 0,section:c.isUser()?"OpenchannelQueues":void 0,channel:"openchannel",sort:"name",limit:10,page:1},u.getQueues=function(){u.query.offset=(u.query.page-1)*u.query.limit,o.realtime.getQueues(u.query).$promise.then(function(e){u.queues=e}).catch(function(e){l.error({title:i.instant("OPENCHANNEL.OPENCHANNELQUEUES"),msg:e.status?JSON.stringify(e.data):e.toString()})})},u.editQueue=function(e,n){t.show({controller:"CreateOrEditOpenchannelQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelQueue:n,openchannelQueues:u.queues.rows,license:null,setting:null,crudPermissions:u.crudPermissions}})},u.addAgent=function(e,n){t.show({controller:"OpenchannelQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelQueue:n,openchannelQueues:u.queues.rows,realtime:!1,crudPermissions:u.crudPermissions}})},r.on("openchannel_queue:save",function(e){var n=_.find(u.queues.rows,["id",e.id]);n&&_.merge(n,_.pick(e,p))}),r.on("userOpenchannelQueue:save",function(e){var n=_.find(u.queues.rows,["id",e.OpenchannelQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),r.on("userOpenchannelQueue:remove",function(e){var n=_.find(u.queues.rows,["id",e.OpenchannelQueueId]);n&&(0<n.loggedInDb&&n.loggedInDb--,_.remove(n.agents,["id",e.UserId]))}),r.on("user:update",function(t){u.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&m.updateQueue(t,e,n,"openchannel")})}),e.$on("$destroy",function(){r.removeAllListeners("openchannel_queue:save"),r.removeAllListeners("userOpenchannelQueue:remove"),r.removeAllListeners("userOpenchannelQueue:save"),r.removeAllListeners("user:update"),g&&n.cancel(g)})}e.$inject=["$scope","$mdDialog","$document","$interval","$translate","queues","api","socket","toasty","userProfileSection","Auth","realtimeManager"],angular.module("app.openchannel").controller("QueuesOpenchannelRealtimeController",e)}(),function(){"use strict";angular.module("app.auth").factory("helperClasses",function(){return{status:{registered:"green-300-fg icon-checkbox-marked-circle",unregistered:"red-300-fg icon-close-circle",lagged:"red-300-fg icon-close-circle",reachable:"green-300-fg icon-checkbox-marked-circle",unreachable:"red-300-fg icon-close-circle",unknown:"grey-fg icon-minus-circle"},state:{unknown:"grey-fg icon-phone-hangup",not_inuse:"green-300-fg icon-phone-hangup",inuse:"red-300-fg icon-phone-in-talk",busy:"red-300-fg icon-phone-locked",invalid:"grey-fg icon-phone-hangup",unavailable:"grey-fg icon-phone-hangup",ringing:"blue-300-fg icon-phone-incoming",ringinuse:"blue-300-fg icon-phone-incoming",onhold:"blue-300-fg icon-phone-paused"},channelStatus:{ring:"blue-300-fg icon-phone-incoming",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"},channelStatusOut:{ring:"blue-300-fg icon-phone-outgoing",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"}}})}(),function(){"use strict";function e(e,t,n){switch(this.selectedTab=0,t.current.name){case"app.openchannel.realtime.agents":this.selectedTab=0;break;case"app.openchannel.realtime.queues":this.selectedTab=1;break;default:this.selectedTab=0,t.go("app.openchannel.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.openchannel.realtime.agents");break;case 1:t.go("app.openchannel.realtime.queues");break;default:t.go("app.openchannel.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.openchannel").controller("OpenchannelRealtimeController",e)}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this;o.currentUser=s.getCurrentUser(),o.plugin={},o.getTrustedURL=function(){return t.trustAsResourceUrl(o.plugin.adminUrl)},a.plugin.get({id:e.params.id}).$promise.then(function(e){if(e)return o.plugin=e,a.plugin.get({id:o.plugin.id}).$promise}).catch(function(e){o.plugin=void 0})}e.$inject=["$state","$scope","$sce","api","socket","Auth"],angular.module("app.plugins.plugin").controller("PluginController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g){var v=this;v.license=p,v.setting=g,v.currentUser=u.getCurrentUser(),v.cloudProviders=l||{count:0,rows:[]},v.table="cloudProviders",v.listOrder="",v.listOrderAsc=null,v.selectedAiTools=[],v.query={fields:"createdAt,updatedAt,id,name,service,data2,data1",sort:"-updatedAt",limit:10,page:1},v.arrayservice=_.keyBy([{option:"AmazonAWS",value:"'AmazonAWS'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editdialog=function(e,n){i.show({controller:"CreateOrEditCloudProviderDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/cloudProviders/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{cloudProvider:e,cloudProviders:v.cloudProviders.rows,license:v.license,setting:null,crudPermissions:v.crudPermissions}})},v.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("cloudProvider")+"?").htmlContent("<b>"+(e.name||"cloudProvider")+"</b> will be deleted.").ariaLabel("delete cloudProvider").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){A(e)},function(){console.log("CANCEL")})},v.success=b,v.getAiTools=function(){v.query.offset=(v.query.page-1)*v.query.limit,u.hasRole("admin")?v.promise=d.cloudProvider.get(v.query,b).$promise:(v.query.id=v.userProfile.id,v.query.section="AiTools",v.promise=d.userProfile.getResources(v.query,b).$promise)},v.createOrEditCloudProvider=function(e,n){i.show({controller:"CreateOrEditCloudProviderDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/cloudProviders/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{cloudProvider:n,cloudProviders:v.cloudProviders.rows,license:v.license,setting:v.setting,crudPermissions:v.crudPermissions}})},v.deleteCloudProvider=A,v.exportSelectedAiTools=function(){var e=angular.copy(v.selectedAiTools);return v.selectedAiTools=[],e},v.deleteSelectedAiTools=function(e){var n=i.confirm().title("Are you sure want to delete the selected cloudProviders?").htmlContent("<b>"+v.selectedAiTools.length+" selected</b> will be deleted.").ariaLabel("delete CloudProviders").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){v.selectedAiTools.forEach(function(e){A(e)}),v.selectedAiTools=[]})},v.deselectAiTools=function(){v.selectedAiTools=[]},v.selectAllAiTools=function(){v.selectedAiTools=v.cloudProviders.rows};var h=!0,f=1;function b(e){v.cloudProviders=e||{count:0,rows:[]}}function A(e){d.cloudProvider.delete({id:e.id}).$promise.then(function(){_.remove(v.cloudProviders.rows,{id:e.id}),v.cloudProviders.count-=1,v.cloudProviders.rows.length||v.getAiTools(),m.success({title:_.startCase("CloudProvider")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEcloudProvider"}];for(var n=0;n<e.data.errors.length;n++)m.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEcloudProvider",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){h?o(function(){h=!1}):(n||(f=v.query.page),e!==n&&(v.query.page=1),e||(v.query.page=f),v.getAiTools())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","cloudProviders","api","msUtils","toasty","Auth","license","setting"],angular.module("app.settings").controller("CloudProvidersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(e){a.hide(e)}p.currentUser=c.getCurrentUser(),p.errors=[],p.setting=u,p.license=m,p.hasModulePermissions={},p.passwordPattern=p.setting&&p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.title="SETTINGS.EDIT_CLOUDPROVIDER",p.cloudProvider=angular.copy(l),p.cloudProviders=r,p.newCloudProvider=!1,p.cloudProvider||(p.cloudProvider={},p.title="SETTINGS.NEW_CLOUDPROVIDER",p.newCloudProvider=!0),p.addNewCloudProvider=function(){p.errors=[],d.cloudProvider.save(p.cloudProvider).$promise.then(function(e){p.cloudProviders.unshift(e.toJSON()),o.success({title:"CloudProvider properly created",msg:p.cloudProvider.name?p.cloudProvider.name+" has been created!":""}),g(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cloudProvider.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cloudProvider.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.saveCloudProvider=function(){p.errors=[],d.cloudProvider.update({id:p.cloudProvider.id},p.cloudProvider).$promise.then(function(e){var n=_.find(p.cloudProviders,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"CloudProvider properly saved!",msg:p.cloudProvider.name?p.cloudProvider.name+" has been saved!":""}),g(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cloudProvider.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cloudProvider.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.deleteCloudProvider=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The cloudProvider will be deleted.").ariaLabel("Delete CloudProvider").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cloudProvider.delete({id:p.cloudProvider.id}).$promise.then(function(){_.remove(p.cloudProviders,{id:p.cloudProvider.id}),o.success({title:"CloudProvider properly deleted!",msg:(p.cloudProvider.name||"cloudProvider")+" has been deleted!"}),g(p.cloudProvider)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cloudProvider.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cloudProvider.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},p.getDateFromString=function(e){return null===e?void 0:new Date(e)},p.closeDialog=g}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","cloudProviders","cloudProvider","api","Auth","license","setting"],angular.module("app.settings").controller("CreateOrEditCloudProviderDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="SETTINGS.EDIT_CUSTOMIZATION",g.customization=angular.copy(l),g.customizations=r,g.newCustomization=!1,g.customization||(g.customization={},g.title="SETTINGS.NEW_CUSTOMIZATION",g.newCustomization=!0),g.addNewCustomization=function(){g.errors=[],d.setting.save(g.customization).$promise.then(function(e){g.customizations.unshift(e.toJSON()),o.success({title:"Customization properly created",msg:g.customization.name?g.customization.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.setting.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.setting.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveCustomization=function(){g.errors=[],d.setting.update({id:g.customization.id},g.customization).$promise.then(function(e){var n=_.find(g.customizations,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Customization properly saved!",msg:g.customization.name?g.customization.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.setting.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.setting.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteCustomization=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The customization will be deleted.").ariaLabel("Delete Customization").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.setting.delete({id:g.customization.id}).$promise.then(function(){_.remove(g.customizations,{id:g.customization.id}),o.success({title:"Customization properly deleted!",msg:(g.customization.name||"customization")+" has been deleted!"}),v(g.customization)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.setting.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.setting.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","customizations","customization","api","Auth","license","setting","crudPermissions"],angular.module("app.settings").controller("CreateOrEditCustomizationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i){var s=this;s.currentUser=i.getCurrentUser(),s.license=a,s.customizations=e,s.customization={},s.customizations&&s.customizations.rows&&s.customizations.rows.length&&(s.customization=s.customizations.rows[0]),s.saveCustomization=function(){s.customization.id?n.setting.update({id:s.customization.id},s.customization).$promise.then(function(){t.success({title:"Customization updated!",msg:s.customization.name?s.customization.name+" has been updated!":""})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsetting",msg:e.data?JSON.stringify(e.data):e.toString()})}):n.setting.save(s.customization).$promise.then(function(e){_.merge(s.customization,e),t.success({title:"Customization updated!",msg:s.customization.name?s.customization.name+" has been updated!":""})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsetting",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["customizations","api","toasty","license","Auth"],angular.module("app.settings").controller("CustomizationsController",e)}(),function(){"use strict";function e(e,a){var i=this;i.customization={},i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg","ico"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.customization.images.unshift(t),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.customization.images,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e){i.customization=angular.copy(e),i.ngFlowOptions.target="/api/settings/1/favicon".replace(":id",i.customization.id),i.customization.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.settings").controller("CustomizationfaviconController",e)}(),function(){"use strict";function e(e,a){var i=this;i.customization={},i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.customization.images.unshift(t),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.customization.images,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e){i.customization=angular.copy(e),i.ngFlowOptions.target="/api/settings/1/logo".replace(":id",i.customization.id),i.customization.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.settings").controller("CustomizationlogoController",e)}(),function(){"use strict";function e(e,a){var i=this;i.customization={},i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.customization.images.unshift(t),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.customization.images,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e){i.customization=angular.copy(e),i.ngFlowOptions.target="/api/settings/1/logo_login".replace(":id",i.customization.id),i.customization.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.settings").controller("CustomizationlogologinController",e)}(),function(){"use strict";function e(e,a){var i=this;i.customization={},i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.customization.images.unshift(t),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.customization.images,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e){i.customization=angular.copy(e),i.ngFlowOptions.target="/api/settings/1/preferred".replace(":id",i.customization.id),i.customization.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.settings").controller("CustomizationpreferredController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="SETTINGS.EDIT_GENERAL",g.general=angular.copy(l),g.generals=r,g.newGeneral=!1,g.general||(g.general={min_internal:1e3,chatTimeout:30,phoneBarAutoUpdater:!0,phoneBarAutoUpdaterUrl:"https://www.xcally.com/bar/phonebar/autoupdater.xml",splitSizeCsv:5e3,splitSizePdf:1e3,splitSizeXlsx:5e3,messagesAlignment:"alternate",phoneBarRememberMeEnabled:!0,allowedLoginAttempts:5,blockDuration:10,loginMailFrequency:10,enforcePasswordHistory:!0,passwordHistoryLimit:3},g.title="SETTINGS.NEW_GENERAL",g.newGeneral=!0),g.addNewGeneral=function(){g.errors=[],d.setting.save(g.general).$promise.then(function(e){g.generals.unshift(e.toJSON()),o.success({title:"General properly created",msg:g.general.name?g.general.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.setting.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.setting.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveGeneral=function(){g.errors=[],d.setting.update({id:g.general.id},g.general).$promise.then(function(e){var n=_.find(g.generals,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"General properly saved!",msg:g.general.name?g.general.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.setting.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.setting.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteGeneral=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The general will be deleted.").ariaLabel("Delete General").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.setting.delete({id:g.general.id}).$promise.then(function(){_.remove(g.generals,{id:g.general.id}),o.success({title:"General properly deleted!",msg:(g.general.name||"general")+" has been deleted!"}),v(g.general)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.setting.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.setting.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,d.cloudProvider.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){g.cloudProviders=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_CLOUDPROVIDERS",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","generals","general","api","Auth","license","setting","crudPermissions"],angular.module("app.settings").controller("CreateOrEditGeneralDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i){var s=this;s.currentUser=i.getCurrentUser(),s.license=a,s.generals=e,s.general={},s.generals&&s.generals.rows&&s.generals.rows.length&&(s.general=s.generals.rows[0]),_.isNil(s.general.privacyPolicyEmail)||(s.general.enablePrivacyPolicyEmail=!0),_.isNil(s.general.privacyPolicyName)||(s.general.enablePrivacyPolicyName=!0),_.isNil(s.general.privacyPolicyNumber)||(s.general.enablePrivacyPolicyNumber=!0),n.cloudProvider.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){s.cloudProviders=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_CLOUDPROVIDERS",msg:e.data?JSON.stringify(e.data):e.toString()})}),s.saveGeneral=function(){s.general.enablePrivacyPolicyEmail||(s.general.privacyPolicyEmail=null),s.general.enablePrivacyPolicyNumber||(s.general.privacyPolicyNumber=null),s.general.enablePrivacyPolicyName||(s.general.privacyPolicyName=null),s.general.id?n.setting.update({id:s.general.id},s.general).$promise.then(function(){t.success({title:"General updated!",msg:s.general.name?s.general.name+" has been updated!":""})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsetting",msg:e.data?JSON.stringify(e.data):e.toString()})}):n.setting.save(s.general).$promise.then(function(e){_.merge(s.general,e),t.success({title:"General updated!",msg:s.general.name?s.general.name+" has been updated!":""})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsetting",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.onPrivacyPolicyChange=function(e){switch(e){case"email":s.general.enablePrivacyPolicyEmail&&!s.general.privacyPolicyEmail&&(s.general.privacyPolicyEmail=0);break;case"name":s.general.enablePrivacyPolicyName&&!s.general.privacyPolicyName&&(s.general.privacyPolicyName=0);break;case"number":s.general.enablePrivacyPolicyNumber&&!s.general.privacyPolicyNumber&&(s.general.privacyPolicyNumber=0)}}}e.$inject=["generals","api","toasty","license","Auth"],angular.module("app.settings").controller("GeneralsController",e)}(),function(){"use strict";function e(n,t,a,i,e,s){var o=this;o.license=i||{},o.agents=0,o.users=0,o.telephones=0,o.channels=[{name:"voice",icon:"icon-phone"},{name:"chat",icon:"icon-hangouts"},{name:"mail",icon:"icon-email"},{name:"messaging",icon:"icon-message-text"},{name:"fax",icon:"icon-deskphone"},{name:"openchannel",icon:"icon-google-earth"},{name:"whatsapp",icon:"icon-whatsapp"}],o.modules=[{name:"cm",icon:"icon-account-circle"},{name:"dialer",icon:"icon-crosshairs"},{name:"jscripty",icon:"icon-console"}],o.addons=[{name:"webrtc",icon:"icon-server-plus"},{name:"jaws",icon:"icon-fish"},{name:"custom",icon:"icon-table-edit"},{name:"screenrecording",icon:"icon-video"},{name:"ai",icon:"icon-text-to-speech"}],o.sessions=[{name:"callysquare",icon:"icon-sitemap",restart:!0,label:"channels",enabled:"voice"},{name:"virtual",icon:"icon-dots-horizontal",restart:!1,label:"sessions",enabled:"chat"}],o.others=[{name:"update",icon:"icon-cloud-download"}],o.requestLicense=function(e){t.show({controller:"RequestLicenseDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/license/request/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{license:i,channels:o.channels,modules:o.modules,addons:o.addons,sessions:o.sessions,others:o.others}})},o.updateLicense=function(e){t.show({controller:"UpdateLicenseDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/license/update/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{license:i}})},o.gotoProcess=function(e){a.go("app.settings.system",{tab:1})},s.user.get({fields:"id",role:"agent",online:!0}).$promise.then(function(e){return o.agents=e&&e.count?e.count:0,s.user.get({fields:"id",role:"user,admin"}).$promise}).then(function(e){return o.users=e&&e.count?e.count:0,s.user.get({fields:"id",role:"telephone"}).$promise}).then(function(e){o.telephones=e&&e.count?e.count:0}).catch(function(e){console.log(e)})}e.$inject=["$document","$mdDialog","$state","license","toasty","api"],angular.module("app.settings.license").controller("LicenseController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(){e.hide()}m.errors=[],m.user=d.getCurrentUser(),m.license=angular.copy(t),m.channels=a,m.modules=i,m.addons=s,m.sessions=o,m.others=r,m.license.name=m.user.fullname,m.license.email=m.user.email,m.sendRequest=function(){for(var e in m.errors=[],m.table="||FIELD||OLD||NEW||\n",m.license)m.license.hasOwnProperty(e)&&!_.includes(["$promise","$resolved"],e)&&(t[e]===m.license[e]?m.table+="|"+e+"|"+(void 0!==t[e]?t[e]:"")+"|"+m.license[e]+"|\n":m.table+="|"+e+"|{color:red}"+(void 0!==t[e]?t[e]:"")+"{color}|*"+m.license[e]+"*|\n");l.jira.save({key:"MOTLICENSE",summary:"Motion License Request",description:m.table,issuetype:"License Request"}).$promise.then(function(e){n.success({title:"Request sent!",msg:c.instant("SETTINGS.LICENSE_REQUEST_SENT"),timeout:15e3}),u()}).catch(function(e){console.error(e),m.errors=[{message:c.instant("SETTINGS.JIRA_ERROR_MESSAGE"),type:"api.jira"}]})},m.closeDialog=u}e.$inject=["$mdDialog","toasty","license","channels","modules","addons","sessions","others","api","Auth","$translate"],angular.module("app.settings.license").controller("RequestLicenseDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i){var s=this;s.errors=[],s.license=angular.copy(t),s.licenseKey,s.updateLicense=function(){return a.license.update({id:1,key:s.licenseKey}).$promise.then(function(e){e&&(e.demo?n.error({title:"License update failed!",msg:"Invalid license key"}):n.success({title:"License properly updated!",msg:"The license has been updated!"}))}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATElicense",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","toasty","license","api","$translate"],angular.module("app.settings.license").controller("UpdateLicenseDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(e){a.hide(e)}p.currentUser=c.getCurrentUser(),p.errors=[],p.setting=u,p.license=m,p.hasModulePermissions={},p.passwordPattern=p.setting&&p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.title="SETTINGS.EDIT_NETWORK",p.network=angular.copy(l),p.networks=r,p.newNetwork=!1,p.network||(p.network={type:"localnet"},p.title="SETTINGS.NEW_NETWORK",p.newNetwork=!0),p.addNewNetwork=function(){p.errors=[],d.network.save(p.network).$promise.then(function(e){p.networks.unshift(e.toJSON()),o.success({title:"Network properly created",msg:p.network.name?p.network.name+" has been created!":""}),g(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.network.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.network.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.saveNetwork=function(){p.errors=[],d.network.update({id:p.network.id},p.network).$promise.then(function(e){var n=_.find(p.networks,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Network properly saved!",msg:p.network.name?p.network.name+" has been saved!":""}),g(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.network.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.network.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.deleteNetwork=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The network will be deleted.").ariaLabel("Delete Network").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.network.delete({id:p.network.id}).$promise.then(function(){_.remove(p.networks,{id:p.network.id}),o.success({title:"Network properly deleted!",msg:(p.network.name||"network")+" has been deleted!"}),g(p.network)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.network.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.network.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},p.getDateFromString=function(e){return null===e?void 0:new Date(e)},p.closeDialog=g}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","networks","network","api","Auth","license","setting"],angular.module("app.settings").controller("CreateOrEditNetworkDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g){var v=this;v.license=p,v.setting=g,v.currentUser=u.getCurrentUser(),v.networks=l||{count:0,rows:[]},v.table="networks",v.listOrder="",v.listOrderAsc=null,v.selectedNetworks=[],v.query={fields:"createdAt,updatedAt,id,type,value,username,password",sort:"-updatedAt",limit:10,page:1},v.arraytype=_.keyBy([{option:"LocalNET",value:"'localnet'"},{option:"ExternIP",value:"'externip'"},{option:"Turn",value:"'turn'"},{option:"Stun",value:"'stun'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editdialog=function(e,n){i.show({controller:"CreateOrEditNetworkDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/networks/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{network:e,networks:v.networks.rows,license:v.license,setting:null,crudPermissions:v.crudPermissions}})},v.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("network")+"?").htmlContent("<b>"+(e.name||"network")+"</b> will be deleted.").ariaLabel("delete network").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){A(e)},function(){console.log("CANCEL")})},v.success=b,v.getNetworks=function(){v.query.offset=(v.query.page-1)*v.query.limit,u.hasRole("admin")?v.promise=d.network.get(v.query,b).$promise:(v.query.id=v.userProfile.id,v.query.section="Networks",v.promise=d.userProfile.getResources(v.query,b).$promise)},v.createOrEditNetwork=function(e,n){i.show({controller:"CreateOrEditNetworkDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/networks/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{network:n,networks:v.networks.rows,license:v.license,setting:v.setting,crudPermissions:v.crudPermissions}})},v.deleteNetwork=A,v.exportSelectedNetworks=function(){var e=angular.copy(v.selectedNetworks);return v.selectedNetworks=[],e},v.deleteSelectedNetworks=function(e){var n=i.confirm().title("Are you sure want to delete the selected networks?").htmlContent("<b>"+v.selectedNetworks.length+" selected</b> will be deleted.").ariaLabel("delete Networks").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){v.selectedNetworks.forEach(function(e){A(e)}),v.selectedNetworks=[]})},v.deselectNetworks=function(){v.selectedNetworks=[]},v.selectAllNetworks=function(){v.selectedNetworks=v.networks.rows};var h=!0,f=1;function b(e){v.networks=e||{count:0,rows:[]}}function A(e){d.network.delete({id:e.id}).$promise.then(function(){_.remove(v.networks.rows,{id:e.id}),v.networks.count-=1,v.networks.rows.length||v.getNetworks(),m.success({title:_.startCase("Network")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEnetwork"}];for(var n=0;n<e.data.errors.length;n++)m.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEnetwork",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){h?o(function(){h=!1}):(n||(f=v.query.page),e!==n&&(v.query.page=1),e||(v.query.page=f),v.getNetworks())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","networks","api","msUtils","toasty","Auth","license","setting"],angular.module("app.settings").controller("NetworksController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="SETTINGS.EDIT_SMTP",g.smtp=angular.copy(l),g.smtps=r,g.newSmtp=!1,g.smtp||(g.smtp={service:!0},g.title="SETTINGS.NEW_SMTP",g.newSmtp=!0),g.addNewSmtp=function(){g.errors=[],d.mailAccount.save(g.smtp).$promise.then(function(e){g.smtps.unshift(e.toJSON()),o.success({title:"Smtp properly created",msg:g.smtp.name?g.smtp.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSmtp=function(){g.errors=[],d.mailAccount.update({id:g.smtp.id},g.smtp).$promise.then(function(e){var n=_.find(g.smtps,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Smtp properly saved!",msg:g.smtp.name?g.smtp.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSmtp=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The smtp will be deleted.").ariaLabel("Delete Smtp").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.mailAccount.delete({id:g.smtp.id}).$promise.then(function(){_.remove(g.smtps,{id:g.smtp.id}),o.success({title:"Smtp properly deleted!",msg:(g.smtp.name||"smtp")+" has been deleted!"}),v(g.smtp)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","smtps","smtp","api","Auth","license","setting","crudPermissions"],angular.module("app.settings").controller("CreateOrEditSmtpDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i){var s=this;s.currentUser=i.getCurrentUser(),s.license=a,s.smtps=e,s.smtp={},s.smtps&&s.smtps.rows&&s.smtps.rows.length?s.smtp=s.smtps.rows[0]:s.smtp={service:!0,Smtp:{service:null}},s.saveSmtp=function(){s.smtp.id?n.mailAccount.update({id:s.smtp.id},s.smtp).$promise.then(function(){t.success({title:"Smtp updated!",msg:s.smtp.name?s.smtp.name+" has been updated!":""})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data):e.toString()})}):n.mailAccount.save(s.smtp).$promise.then(function(e){_.merge(s.smtp,e),t.success({title:"Smtp updated!",msg:s.smtp.name?s.smtp.name+" has been updated!":""})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.verifySmtp=function(){s.smtp.id&&n.mailAccount.verifySmtp({id:s.smtp.id}).$promise.then(function(){t.success({title:"Smtp verified!",msg:s.smtp.name?s.smtp.name+" has been verified!":""})}).catch(function(e){t.error({title:"Smtp not verified! Remember to save before to verify!",msg:e.data?JSON.stringify(e.data):e.toString(),timeout:1e4})})}}e.$inject=["smtps","api","toasty","license","Auth"],angular.module("app.settings").controller("SmtpController",e)}(),function(){"use strict";function e(e,i,s,n,t,a,o,r){var l,d=this;d.system=t||{},d.processes=a?a.rows:[],d.processLimit=7,d.selectedTab=n.params.tab||0,d.getInfo=function(){return r.system.get().$promise.then(function(e){_.merge(d.system,e)}).catch(d.cancelInterval)},d.getProcesses=function(){return r.pm2.get().$promise.then(function(e){_.merge(d.processes,e?e.rows:[])}).catch(d.cancelInterval)},d.cancelInterval=function(e){i.cancel(l)},d.updateProcess=function(e,n,t){var a=s.confirm().title("Would you like to change the status of the process #"+n+"?").textContent("The status will be changed to: "+t.toUpperCase()).ariaLabel("Lucky day").targetEvent(e).ok("Ok").cancel("Cancel");s.show(a).then(function(){return r.pm2.update({id:n,status:t})}).then(function(){i(d.getProcesses,1e3,1)}).then(function(){o.success({title:"Process updated!",msg:"Status properly changed to: "+t})})},l=i(d.getInfo,5e3),e.$on("$destroy",function(){d.cancelInterval()})}e.$inject=["$scope","$interval","$mdDialog","$state","system","processes","toasty","api"],angular.module("app.settings.system").controller("SystemController",e)}(),function(){"use strict";function e(e,n,t,a,i){var s=this;s.title="SETTINGS.UPDATE",s.progress=0,s.updating=!0,s.output="Waiting...",s.success=!0,s.interval=n(function(){s.progress<90&&(s.progress+=1)},1e3),s.closeDialog=function(){e.hide()},s.reload=function(){t.location.reload()},s.stopInterval=function(){angular.isDefined(s.interval)&&(n.cancel(s.interval),s.interval=void 0);s.progress=100,s.updating=!1},i.version.fetch().$promise.then(function(e){return s.output=e.output+"...",i.version.reset().$promise}).then(function(e){return s.output=e.output+"...",i.version.pull().$promise}).then(function(e){return s.output=e.output+"...",i.version.migrations().$promise}).then(function(e){return s.output=e.output+"...",i.version.restart().$promise}).then(function(e){s.output="Waiting to restart motion...",a(function(){s.stopInterval()},3e4)}).catch(function(e){s.success=!1,s.stopInterval(),s.output=JSON.stringify(e)})}e.$inject=["$mdDialog","$interval","$window","$timeout","api"],angular.module("app.settings").controller("UpdateDialogController",e)}(),function(){"use strict";function e(t,e,a,n,i){this.version=n||{},this.updateConfirm=function(e){var n=t.confirm().title("Would you like to update your system?").htmlContent('The system request time for the update should be below 1 minute.<br><br>Do you agree the terms of this <a href="http://www.xcally.com/support/eula-xcally-license-en.pdf" target="_blank">End User License Agreement<a>?').ariaLabel("").targetEvent(e).clickOutsideToClose(!0).parent(angular.element(a.body)).ok("I agree").cancel("Disagree");t.show(n).then(function(){t.show({controller:"UpdateDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/updates/update/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!1})})}}e.$inject=["$mdDialog","$interval","$document","version","toasty"],angular.module("app.settings").controller("UpdatesController",e)}(),function(){"use strict";function e(e,o,n,t,a,i,s,r,l,d,c,m,u,p,g,v,h,f){var b=this,A=["userpic","online","lastLoginAt","lastPauseAt","pauseType","lastPauseAt","internal","address","chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","chatCapacity","openchannelCapacity","mailCapacity","smsCapacity","whatsappCapacity","faxCapacity","chatCurrentCapacity","openchannelCurrentCapacity","mailCurrentCapacity","smsCurrentCapacity","whatsappCurrentCapacity","faxCurrentCapacity","chatStatus","openchannelStatus","mailStatus","smsStatus","whatsappStatus","faxStatus","voiceStatus","chatStatusTime","openchannelStatusTime","mailStatusTime","smsStatusTime","whatsappStatusTime","faxStatusTime","voiceStatusTime","queue","destconnectedlinenum","screenrecording","phoneBarEnableScreenRecordingByAgent","phoneBarEnableAutomaticScreenRecording"],E=["chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","online"];for(var y in b.currentUser=v.getCurrentUser(),b.availableStates=["ringing","inuse","busy","onhold","not_inuse"],b.pauses=s||{count:0,rows:[]},b.license=h,b.userProfile=p,b.userProfileSection=g&&1==g.count?g.rows[0]:null,b.crudPermissions=v.parseCrudPermissions(b.userProfileSection?b.userProfileSection.crudPermissions:null),b.agents=r?_.keyBy(r.rows?r.rows:[],"id"):{},b.rpcAgents=l?_.keyBy(l.rows?l.rows:[],"id"):{},b.paginatedAgents={},b.load=!1,b.order=[],b.agentInternal={},b.agents)b.agents.hasOwnProperty(y)&&(b.agents[y].init=!0);b.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},b.logout=function(e,n){return d.user.logout({id:e.id,device:"realtime",agent_id:e.id,agent_name:e.name}).$promise.then(function(){m.success({title:"Agent logout",msg:e.fullname+" properly logout"}),b.agents[e.id]&&(b.agents[e.id].online=!1),b.rpcAgents[e.id]&&(b.rpcAgents[e.id].online=!1),T()}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.queueAdd=function(e,n){t.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:[],channel:"sms",direction:"inbound",crudPermissions:b.crudPermissions}})},b.pause=function(n,e){return d.user.pause({id:n.id,type:e}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.unPause=function(n){return d.user.unpause({id:n.id}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.showInfo=function(e){t.show(t.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},b.getAgentStatus=O,b.getAgentGlobalStatus=w,b.isPause=I,b.checkPause=function(e){return"pause"===e},b.isPartialPause=function(e){return"*pause"===e},b.onSave=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(_.omit(e,E),A)),_.merge(b.rpcAgents[e.id],_.pick(_.omit(e,E),A)),w(b.agents[e.id]))},b.onUpdate=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(e,A)),_.merge(b.rpcAgents[e.id],_.pick(e,A)),e.lastPauseAt&&(b.agents[e.id].globalStatusTime=e.lastPauseAt,b.rpcAgents[e.id].globalStatusTime=e.lastPauseAt),w(b.agents[e.id]))},b.onInit=T,b.onConnect=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(_.merge(b.agents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])),_.merge(b.rpcAgents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])))},b.onComplete=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(b.agents[b.agentInternal[e.destaccountcode]]=_.omit(b.agents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]),b.rpcAgents[b.agentInternal[e.destaccountcode]]=_.omit(b.rpcAgents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]))},b.screenRecording=function(e,n){return d.user.update({id:e.id},{screenrecording:n}).$promise.catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.on("user:save",b.onSave),c.on("user:update",b.onUpdate),c.on("user:agentconnect",b.onConnect),c.on("user:agentcomplete",b.onComplete),T();var S=f(function(){b.load&&(b.load=!1,T())},999);function T(e){b.load=!1;var n,t,a=o.defer();b.promise=a.promise,b.filteredAgents=[],b.order=[],_.forIn(b.agents,function(e,n){b.rpcAgents[n]&&_.merge(e,_.pick(_.omit(b.rpcAgents[n],E),A)),w(e),e.online?(b.filteredAgents.push(e),b.agentInternal[e.internal]=n):e.globalStatusTime=_.toNumber(moment().format("x"))}),b.query.globalStatusFilter&&_.remove(b.filteredAgents,function(e){return e.globalStatus!==b.query.globalStatusFilter}),b.query.pauseTypeFilter&&_.remove(b.filteredAgents,function(e){return e.pauseType!==b.query.pauseTypeFilter}),b.query.filter&&_.remove(b.filteredAgents,function(e){return e.fullname.toLowerCase().indexOf(b.query.filter.toLowerCase())<0}),b.filteredAgents=(n=b.filteredAgents,t=_.startsWith(b.query.order,"-")?"desc":"asc",_.orderBy(n,[b.query.order.replace("-","")],[t]));var i=(b.query.page-1)*b.query.limit;b.paginatedAgents=_.drop(b.filteredAgents,i).slice(0,b.query.limit);for(var s=0;s<b.paginatedAgents.length;s+=1)b.order.push(b.paginatedAgents[s].id);a.resolve(),b.load=!0}function I(e){return"pause"===e||"*pause"===e}function C(e){return"idle"===e||"unknown"===e||"unavailable"===e||"ringing"===e||_.isNil(e)}function O(e,n){return"voice"===n?"idle"!==e[n+"Status"]?e[n+"Status"]:e[n+"Pause"]?e[n+"Status"]="pause":"idle":e[n+"Pause"]?e[n+"Status"]="pause":e[n+"Status"]}function w(e){var n="unknown";n=_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"pause":_.some([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"*pause":_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],C)?"idle":"busy",e.globalStatus!==n&&(e.globalStatus=n,e.init?(e.init=!1,e.globalStatusTime=I(n)?_.toNumber(moment(e.lastPauseAt).format("x")):_.max([e.voiceStatusTime,e.chatStatusTime,e.mailStatusTime,e.smsStatusTime,e.whatsappStatusTime,e.openchannelStatusTime,e.faxStatusTime])):e.globalStatusTime=_.toNumber(moment().format("x")))}e.$on("$destroy",function(){c.removeAllListeners("user:save"),c.removeAllListeners("user:update"),c.removeAllListeners("user:agentconnect"),c.removeAllListeners("user:agentcomplete"),S&&(f.cancel(S),S=null)})}e.$inject=["$scope","$q","$timeout","$mdDialog","$document","$filter","pauses","agents","rpcAgents","api","socket","toasty","helperClasses","userProfile","userProfileSection","Auth","license","$interval"],angular.module("app.voice").controller("AgentsSmsRealtimeController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c,m){var u=this,p=["loggedIn","available","waiting","paused"],g=n(function(){},999);u.currentUser=c.getCurrentUser(),u.queues=s,u.userProfileSection=d&&1==d.count?d.rows[0]:null,u.crudPermissions=c.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.query={id:c.isUser()?u.currentUser.id:void 0,section:c.isUser()?"SmsQueues":void 0,channel:"sms",sort:"name",limit:10,page:1},u.getQueues=function(){u.query.offset=(u.query.page-1)*u.query.limit,o.realtime.getQueues(u.query).$promise.then(function(e){u.queues=e}).catch(function(e){l.error({title:i.instant("SMS.SMSQUEUES"),msg:e.status?JSON.stringify(e.data):e.toString()})})},u.editQueue=function(e,n){t.show({controller:"CreateOrEditSmsQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsQueue:n,smsQueues:u.queues.rows,license:null,setting:null,crudPermissions:u.crudPermissions}})},u.addAgent=function(e,n){t.show({controller:"SmsQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsQueue:n,smsQueues:u.queues.rows,realtime:!1,crudPermissions:u.crudPermissions}})},r.on("sms_queue:save",function(e){var n=_.find(u.queues.rows,["id",e.id]);n&&_.merge(n,_.pick(e,p))}),r.on("userSmsQueue:save",function(e){var n=_.find(u.queues.rows,["id",e.SmsQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),r.on("userSmsQueue:remove",function(e){var n=_.find(u.queues.rows,["id",e.SmsQueueId]);n&&(0<n.loggedInDb&&n.loggedInDb--,_.remove(n.agents,["id",e.UserId]))}),r.on("user:update",function(t){u.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&m.updateQueue(t,e,n,"sms")})}),e.$on("$destroy",function(){r.removeAllListeners("sms_queue:save"),r.removeAllListeners("userSmsQueue:remove"),r.removeAllListeners("userSmsQueue:save"),r.removeAllListeners("user:update"),g&&n.cancel(g)})}e.$inject=["$scope","$mdDialog","$document","$interval","$translate","queues","api","socket","toasty","userProfileSection","Auth","realtimeManager"],angular.module("app.sms").controller("QueuesSmsRealtimeController",e)}(),function(){"use strict";angular.module("app.auth").factory("helperClasses",function(){return{status:{registered:"green-300-fg icon-checkbox-marked-circle",unregistered:"red-300-fg icon-close-circle",lagged:"red-300-fg icon-close-circle",reachable:"green-300-fg icon-checkbox-marked-circle",unreachable:"red-300-fg icon-close-circle",unknown:"grey-fg icon-minus-circle"},state:{unknown:"grey-fg icon-phone-hangup",not_inuse:"green-300-fg icon-phone-hangup",inuse:"red-300-fg icon-phone-in-talk",busy:"red-300-fg icon-phone-locked",invalid:"grey-fg icon-phone-hangup",unavailable:"grey-fg icon-phone-hangup",ringing:"blue-300-fg icon-phone-incoming",ringinuse:"blue-300-fg icon-phone-incoming",onhold:"blue-300-fg icon-phone-paused"},channelStatus:{ring:"blue-300-fg icon-phone-incoming",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"},channelStatusOut:{ring:"blue-300-fg icon-phone-outgoing",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"}}})}(),function(){"use strict";function e(e,t,n){switch(this.selectedTab=0,t.current.name){case"app.sms.realtime.agents":this.selectedTab=0;break;case"app.sms.realtime.queues":this.selectedTab=1;break;default:this.selectedTab=0,t.go("app.sms.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.sms.realtime.agents");break;case 1:t.go("app.sms.realtime.queues");break;default:t.go("app.sms.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.sms").controller("SmsRealtimeController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="SMS.EDIT_SMSACCOUNT",g.smsAccount=angular.copy(l),g.smsAccounts=r,g.newSmsAccount=!1,g.smsAccount||(g.smsAccount={remote:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():""),type:"twilio",waitForTheAssignedAgent:10,notificationSound:!0,queueTransferTimeout:300,agentTransferTimeout:300},g.title="SMS.NEW_SMSACCOUNT",g.newSmsAccount=!0),n.params.id&&(g.smsAccount.SmsAccountId=n.params.id),g.addNewSmsAccount=function(){g.errors=[],d.smsAccount.save(g.smsAccount).$promise.then(function(e){g.smsAccounts.unshift(e.toJSON()),o.success({title:"SmsAccount properly created",msg:g.smsAccount.name?g.smsAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.smsAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSmsAccount=function(){g.errors=[],d.smsAccount.update({id:g.smsAccount.id},g.smsAccount).$promise.then(function(e){var n=_.find(g.smsAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"SmsAccount properly saved!",msg:g.smsAccount.name?g.smsAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.smsAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSmsAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The smsAccount will be deleted.").ariaLabel("Delete SmsAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.smsAccount.delete({id:g.smsAccount.id}).$promise.then(function(){_.remove(g.smsAccounts,{id:g.smsAccount.id}),o.success({title:"SmsAccount properly deleted!",msg:(g.smsAccount.name||"smsAccount")+" has been deleted!"}),v(g.smsAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.smsAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.lists,{id:e.resourceId})}),t=null;if(g.smsAccount&&(t=_.find(g.lists,{id:Number(g.smsAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.lists,{id:t.id});a.canSelect=!1,n.push(a)}g.lists=n})}else{var t=[],a=null;g.smsAccount&&(a=_.find(g.lists,{id:Number(g.smsAccount.ListId)}));for(var i=0;i<g.lists.length;i++)a&&g.lists[i].id===a.id&&(g.lists[i].canSelect=!1,t.push(g.lists[i]));g.lists=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","smsAccounts","smsAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.sms").controller("CreateOrEditSmsAccountDialogController",e)}(),function(){"use strict";function e(o,i,a,s,e){var r=this;function n(e,n){if(r.smsAccountApps.rows.length){var t=r.smsAccountApps.rows[n]?r.smsAccountApps.rows[n]:r.smsAccountApps.rows[0];i.show({controller:"EditSmsAccountApp"+(t.appType||t.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/apps/"+(t.appType||t.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsAccountApp:t,smsAccount:r.smsAccount,crudPermissions:r.crudPermissions}}).then(function(e){e&&(e.id?r.smsAccountApps.rows[n]=e:r.smsAccountApps.rows.splice(n,0,e),l())}).catch(function(e){e&&s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function l(){for(var e=1,n=[],t=0;t<r.smsAccountApps.rows.length;t++,0){var a=r.smsAccountApps.rows[t],i=[],s=[];a.intervals="*,*,*,*"!==a.interval?[a.interval]:a.IntervalId?_.map(_.filter(r.intervals.rows,{IntervalId:a.IntervalId}),"interval"):[],a.context=r.smsAccount.context,a.exten=r.smsAccount.exten,a.type&&(a.type=a.type.toLowerCase()),a.priority=i.length?_.last(i).priority+1:e,e=(s.length?_.last(s).priority:a.priority)+1,n=_.concat(n,i,[a],s)}o.smsAccount.addApplications({id:r.smsAccount.id},_.sortBy(n,"priority")).$promise.then(function(e){r.smsAccountApps.rows=e.rows}).catch(function(e){console.error(e)})}function t(e){r.smsAccountApps=e||{count:0,rows:[]}}r.currentUser=e.getCurrentUser(),r.smsAccount={},r.smsAccountApps={count:0,rows:[]},r.selectedSmsAccountApps=[],r.crudPermissions,r.query={sort:"priority"},r.apps=_.reject(_.sortBy([{app:"Interval",appType:"interval",types:["always","custom","list"],fields:[],isApp:!1},{app:"noop",appType:"noop",type:"noop",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,fields:[{title:"Value",name:"value",type:"text",param:0}]},{app:"system",appType:"system",type:"system",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,extraApi:[{name:"variables",field:{name:"variable",key:"name"},route:"variable",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1012}}],fields:[{title:"Command",name:"command",type:"text",required:!0,param:0},{title:"Variable",name:"variable",type:"apiselect",values:"variables",value:"variable.name",option:"variable.name",defaultValues:[{value:"''",option:"None"}],defaultValue:"''",param:1}]},{app:"gotop",appType:"gotop",type:"goto",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Priority",name:"priority",type:"number",required:!0,min:0,param:0}]},{app:"gotoif",appType:"gotoif",type:"gotoif",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Condition",name:"condition",type:"text",required:!0,param:0},{title:"truepriority",name:"truepriority",type:"number",min:1,required:!0,param:1},{title:"falsepriority",name:"falsepriority",type:"number",min:1,required:!0,param:2}]},{app:"queue",appType:"queue",foreignKey:"SmsQueueId",type:"queue",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"queues",field:{name:"queue",key:"name"},route:"smsQueue",filters:{fields:"id,name,type",sort:"name",nolimit:!0},permissions:{section:701}}],fields:[{title:"Queue",name:"queue",type:"apiselect",values:"queues",value:"queue.name",option:"queue.name",defaultValue:300,required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:300,param:1}]},{app:"agent",appType:"agent",type:"agent",foreignKey:"UserId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"agents",field:{name:"agent",key:"name"},route:"user",filters:{fields:"id,name",sort:"name",nolimit:!0,role:"agent"},permissions:{section:202}}],fields:[{title:"Agent",name:"agent",type:"apiselect",values:"agents",value:"agent.name",option:"agent.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:30,param:1}]},{app:"autoreply",appType:"autoreply",type:"autoreply",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"times",name:"times",type:"select",defaultValue:"1",values:[{option:"One Time",value:"2"},{option:"Always",value:"0"},{option:"First Message",value:"1"}],required:!0,param:0},{title:"Text",name:"text",type:"textarea",required:!0,param:1}]},{app:"close",appType:"close",type:"close",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Disposition",name:"disposition",type:"text",required:!0,param:0}]},{app:"tag",appType:"tag",type:"tag",foreignKey:"TagId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"tags",field:{name:"tag",key:"name"},route:"tag",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1008}}],fields:[{title:"Tag",name:"tag",type:"apiselect",values:"tags",value:"tag.name",option:"tag.name",required:!0,param:0}]},{app:"dialogflow",appType:"dialogflow",type:"dialogflow",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Key",name:"key",type:"text",required:!0,param:0},{title:"language",name:"language",type:"select",defaultValue:"'en'",values:[{option:"Danish",value:"'da'"},{option:"English",value:"'en'"},{option:"German",value:"'de'"},{option:"Italian",value:"'it'"},{option:"Spanish",value:"'es'"},{option:"French",value:"'fr'"},{option:"Indonesian",value:"'id'"},{option:"Japanese",value:"'ja'"},{option:"Korean (South Korea)",value:"'ko'"},{option:"Dutch",value:"'nl'"},{option:"Norwegian",value:"'no'"},{option:"Portuguese (European)",value:"'pt'"},{option:"Portuguese (Nrazilian)",value:"'pt-br'"},{option:"Russian",value:"'ru'"},{option:"Swedish",value:"'sv'"},{option:"Thai",value:"'th'"},{option:"Ukrainian",value:"'uk'"},{option:"Chinese (Simplified)",value:"'zh-CN'"},{option:"Chinese (Hong Kong)",value:"'zh-HK'"},{option:"Chinese (Traditional)",value:"'zh-TW'"}],required:!0,param:1},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,required:!1,param:2,help:!0}]},{app:"dialogflowV2",appType:"dialogflowv2",type:"dialogflowv2",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"ProjectID",name:"projectId",type:"text",required:!0,param:0},{title:"ClientEmail",name:"clientEmail",type:"text",required:!0,param:1},{title:"PrivateKey",name:"privateKey",type:"textarea",required:!0,param:2},{title:"language",name:"language",type:"select",defaultValue:"'en'",values:[{value:"'zh-HK'",option:"Chinese (Cantonese)"},{value:"'zh-CN'",option:"Chinese (Simplified)"},{value:"'zh-TW'",option:"Chinese (Traditional)"},{value:"'da'",option:"Danish"},{value:"'nl'",option:"Dutch"},{value:"'en'",option:"English"},{value:"'en-AU'",option:"English (Australia)"},{value:"'en-CA'",option:"English (Canada)"},{value:"'en-GB'",option:"English (Great Britain)"},{value:"'en-IN'",option:"English (India)"},{value:"'en-US'",option:"English (US)"},{value:"'fr'",option:"French"},{value:"'fr-CA'",option:"French (Canada)"},{value:"'fr-FR'",option:"'France (France)"},{value:"'de'",option:"German"},{value:"'hi'",option:"Hindi"},{value:"'id'",option:"Indonesian"},{value:"'it'",option:"Italian"},{value:"'ja'",option:"Japanese"},{value:"'ko'",option:"Korean"},{value:"'no'",option:"Norwegian"},{value:"'pl'",option:"Polish"},{value:"'pt-BR'",option:"Portuguese (Brazil)"},{value:"'pt-PT'",option:"Portuguese (Portugal)"},{value:"'ru'",option:"Russian"},{value:"'es'",option:"Spanish"},{value:"'es-419'",option:"Spanish (Latin America)"},{value:"'es-ES'",option:"Spanish (Spain)"},{value:"'sw'",option:"Swedish"},{value:"'th'",option:"Thai"},{value:"'tr'",option:"Turkish"},{value:"'uk'",option:"Ukrainian"}],required:!0,param:3},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,param:4,help:!0}]},{app:"amazonlex",appType:"amazonlex",type:"amazonlex",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"accesskeyid",name:"accesskeyid",type:"text",required:!0,param:0},{title:"secretaccesskey",name:"secretaccesskey",type:"text",required:!0,param:1},{title:"lexregion",name:"lexregion",type:"select",defaultValue:"'us-east-1'",values:[{option:"US East (N. Virginia)",value:"'us-east-1'"},{option:"US West (Oregon)",value:"'us-west-2'"},{option:"EU (Ireland)",value:"'eu-west-1'"},{option:"Asia Pacific (Sydney)",value:"'ap-southeast-2'"}],required:!0,param:2},{title:"botname",name:"botname",type:"text",required:!0,param:3},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,required:!1,param:4,help:!0}]}],["app"]),{isApp:!1}),r.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},r.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){n(e,e.newIndex)},onSort:function(e){l()}},r.init=function(e,n){r.smsAccount=e,r.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},r.applications.disabled=!r.crudPermissions.canEdit,r.query.id=e.id,r.query.isApp=!0,r.query.nolimit=!0,r.getSmsAccountApps(),r.getIntervals()},r.deleteConfirm=function(e,n,t){var a=i.confirm().title("Are you sure want to delete the application?").htmlContent("<b>"+e.app+"</b> will be deleted.").ariaLabel("delete application").targetEvent(t).ok("OK").cancel("CANCEL");i.show(a).then(function(){r.smsAccountApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})},r.getSmsAccountApps=function(){r.promise=o.smsAccount.getApplications(r.query,t).$promise},r.editSmsAccountApp=n,r.editInterval=function(e,n){if(r.smsAccountApps.rows.length){var t=r.smsAccountApps.rows[n]?r.smsAccountApps.rows[n]:r.smsAccountApps.rows[0];i.show({controller:"EditSmsAccountAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/apps/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:[],crudPermissions:r.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,l())})}},r.deleteSmsAccountApp=function(e){_.remove(r.smsAccountApps.rows,{id:e.id}),l(),s.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},r.deleteSelectedSmsAccountApps=function(e){var n=i.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+r.selectedSmsAccountApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){r.selectedSmsAccountApps.forEach(function(e){_.remove(r.smsAccountApps.rows,{id:e.id})}),r.selectedSmsAccountApps=[],l()})},r.rewriteRouting=l,r.getIntervals=function(){return o.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){r.intervals=e}).catch(function(e){console.error(e)})}}e.$inject=["api","$mdDialog","$document","toasty","Auth"],angular.module("app.sms").controller("SmsAccountActionsController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.smsAccount.getAgents({id:c.smsAccount.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserSmsAccount?"penalty "+e.UserSmsAccount.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.smsAccount=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.smsAccount.removeAgents({id:c.smsAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.smsAccount.addAgents({id:c.smsAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("SMS.ALL_AGENTS"),labelSelected:r.instant("SMS.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","smsAccount","smsAccounts","realtime","$translate","Auth","crudPermissions"],angular.module("app.sms").controller("SmsAccountagentaddController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.agent=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.agent.appdata)switch(l.agent.appType?l.agent.appType.toLowerCase():l.agent.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.agent.appdata.split(",");l.agent.key=d[0],l.agent.language=d[1],l.agent.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.agent.appdata.split(",");l.agent.projectId=d[0],l.agent.clientEmail=d[1],l.agent.privateKey=d[2],l.agent.language=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.agent.appdata.split(",");l.agent.accesskeyid=d[0],l.agent.secretaccesskey=d[1],l.agent.lexregion=d[2],l.agent.botname=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.agent.appdata.split(",");l.agent.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.agent.text=d.slice(1,d.length).join(",");break;case"message":l.agent.text=l.agent.appdata;break;case"set":l.agent.name=l.agent.appdata.split("=")[0],l.agent.value=l.agent.appdata.split("=")[1];break;case"agi":l.agent.project=l.agent.appdata;break;default:var c=l.agent.appdata.split(",");l.agent.agent=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.agent.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.agent.timeout=30;function m(e){n.hide(e)}l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outbounddial"===l.agent.appType.toLowerCase()&&(l.agent.prefix=l.agent.phone?l.agent.phone.split("$")[0]:void 0,l.agent.callerId=l.agent.callerID?"CALLERID(all)="+l.agent.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outboundDial"===l.agent.appType&&(l.agent.phone=i.cutdigits?(l.agent.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.agent.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.agent.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.agent.options+="U(xcally-mixmonitor-context)"):l.agent.options=l.agent.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.agents,{name:l.agent.agent});n&&(l.agent.UserId=n.id);if(l.agent.appType&&"custom"===l.agent.appType);else switch((l.agent.app||l.agent.appType).toLowerCase()){case"set":l.agent.appdata=l.agent.name+"="+l.agent.value;break;case"custom":break;default:e[0]=l.agent.agent,e[1]=l.agent.timeout,l.agent.appdata=e.join(",")}m(l.agent)},l.closeDialog=m,o.hasRole("admin")?s.user.get({fields:"id,name",sort:"name",nolimit:"true",role:"agent"}).$promise.then(function(e){l.agents=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.user.get({fields:"id,name",sort:"name",nolimit:"true",role:"agent"}).$promise.then(function(e){l.agents=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.agents,{id:e.resourceId})}),t=null;if(l.agent&&(t=_.find(l.agents,{name:l.agent.agent})),t&&!_.some(n,["id",t.id])){var a=_.find(l.agents,{id:t.id});a.canSelect=!1,n.push(a)}l.agents=n})}else{var t=[],a=null;l.agent&&(a=_.find(l.agents,{name:l.agent.agent}));for(var i=0;i<l.agents.length;i++)a&&l.agents[i].id===a.id&&(l.agents[i].canSelect=!1,t.push(l.agents[i]));l.agents=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppagentDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.amazonlex=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.amazonlex.appdata)switch(l.amazonlex.appType?l.amazonlex.appType.toLowerCase():l.amazonlex.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.amazonlex.appdata.split(",");l.amazonlex.key=d[0],l.amazonlex.language=d[1],l.amazonlex.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.amazonlex.appdata.split(",");l.amazonlex.projectId=d[0],l.amazonlex.clientEmail=d[1],l.amazonlex.privateKey=d[2],l.amazonlex.language=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=d[0],l.amazonlex.secretaccesskey=d[1],l.amazonlex.lexregion=d[2],l.amazonlex.botname=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.amazonlex.appdata.split(",");l.amazonlex.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.amazonlex.text=d.slice(1,d.length).join(",");break;case"message":l.amazonlex.text=l.amazonlex.appdata;break;case"set":l.amazonlex.name=l.amazonlex.appdata.split("=")[0],l.amazonlex.value=l.amazonlex.appdata.split("=")[1];break;case"agi":l.amazonlex.project=l.amazonlex.appdata;break;default:var c=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.amazonlex.secretaccesskey=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.amazonlex.lexregion=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.amazonlex.botname=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.amazonlex.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.amazonlex.lexregion="us-east-1";function m(e){n.hide(e)}l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outbounddial"===l.amazonlex.appType.toLowerCase()&&(l.amazonlex.prefix=l.amazonlex.phone?l.amazonlex.phone.split("$")[0]:void 0,l.amazonlex.callerId=l.amazonlex.callerID?"CALLERID(all)="+l.amazonlex.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outboundDial"===l.amazonlex.appType&&(l.amazonlex.phone=i.cutdigits?(l.amazonlex.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.amazonlex.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.amazonlex.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.amazonlex.options+="U(xcally-mixmonitor-context)"):l.amazonlex.options=l.amazonlex.options.replace("U(xcally-mixmonitor-context)",""));if(l.amazonlex.appType&&"custom"===l.amazonlex.appType);else switch((l.amazonlex.app||l.amazonlex.appType).toLowerCase()){case"set":l.amazonlex.appdata=l.amazonlex.name+"="+l.amazonlex.value;break;case"custom":break;default:e[0]=l.amazonlex.accesskeyid,e[1]=l.amazonlex.secretaccesskey,e[2]=l.amazonlex.lexregion,e[3]=l.amazonlex.botname,e[4]=l.amazonlex.welcomemessage,l.amazonlex.appdata=e.join(",")}m(l.amazonlex)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppamazonlexDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.autoreply=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.autoreply.appdata)switch(l.autoreply.appType?l.autoreply.appType.toLowerCase():l.autoreply.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.autoreply.appdata.split(",");l.autoreply.key=d[0],l.autoreply.language=d[1],l.autoreply.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.autoreply.appdata.split(",");l.autoreply.projectId=d[0],l.autoreply.clientEmail=d[1],l.autoreply.privateKey=d[2],l.autoreply.language=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.autoreply.appdata.split(",");l.autoreply.accesskeyid=d[0],l.autoreply.secretaccesskey=d[1],l.autoreply.lexregion=d[2],l.autoreply.botname=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.autoreply.appdata.split(",");l.autoreply.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.autoreply.text=d.slice(1,d.length).join(",");break;case"message":l.autoreply.text=l.autoreply.appdata;break;case"set":l.autoreply.name=l.autoreply.appdata.split("=")[0],l.autoreply.value=l.autoreply.appdata.split("=")[1];break;case"agi":l.autoreply.project=l.autoreply.appdata;break;default:var c=l.autoreply.appdata.split(",");l.autoreply.times=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.autoreply.text=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.autoreply.times=1;function m(e){n.hide(e)}l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outbounddial"===l.autoreply.appType.toLowerCase()&&(l.autoreply.prefix=l.autoreply.phone?l.autoreply.phone.split("$")[0]:void 0,l.autoreply.callerId=l.autoreply.callerID?"CALLERID(all)="+l.autoreply.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outboundDial"===l.autoreply.appType&&(l.autoreply.phone=i.cutdigits?(l.autoreply.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.autoreply.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.autoreply.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.autoreply.options+="U(xcally-mixmonitor-context)"):l.autoreply.options=l.autoreply.options.replace("U(xcally-mixmonitor-context)",""));if(l.autoreply.appType&&"custom"===l.autoreply.appType);else switch((l.autoreply.app||l.autoreply.appType).toLowerCase()){case"set":l.autoreply.appdata=l.autoreply.name+"="+l.autoreply.value;break;case"custom":break;default:e[0]=l.autoreply.times,e[1]=l.autoreply.text,l.autoreply.appdata=e.join(",")}m(l.autoreply)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppautoreplyDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.close=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.close.appdata)switch(l.close.appType?l.close.appType.toLowerCase():l.close.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.close.appdata.split(",");l.close.key=d[0],l.close.language=d[1],l.close.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.close.appdata.split(",");l.close.projectId=d[0],l.close.clientEmail=d[1],l.close.privateKey=d[2],l.close.language=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.close.appdata.split(",");l.close.accesskeyid=d[0],l.close.secretaccesskey=d[1],l.close.lexregion=d[2],l.close.botname=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.close.appdata.split(",");l.close.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.close.text=d.slice(1,d.length).join(",");break;case"message":l.close.text=l.close.appdata;break;case"set":l.close.name=l.close.appdata.split("=")[0],l.close.value=l.close.appdata.split("=")[1];break;case"agi":l.close.project=l.close.appdata;break;default:var c=l.close.appdata.split(",");l.close.disposition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outbounddial"===l.close.appType.toLowerCase()&&(l.close.prefix=l.close.phone?l.close.phone.split("$")[0]:void 0,l.close.callerId=l.close.callerID?"CALLERID(all)="+l.close.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outboundDial"===l.close.appType&&(l.close.phone=i.cutdigits?(l.close.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.close.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.close.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.close.options+="U(xcally-mixmonitor-context)"):l.close.options=l.close.options.replace("U(xcally-mixmonitor-context)",""));if(l.close.appType&&"custom"===l.close.appType);else switch((l.close.app||l.close.appType).toLowerCase()){case"set":l.close.appdata=l.close.name+"="+l.close.value;break;case"custom":break;default:e[0]=l.close.disposition,l.close.appdata=e.join(",")}m(l.close)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppcloseDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflow=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflow.appdata)switch(l.dialogflow.appType?l.dialogflow.appType.toLowerCase():l.dialogflow.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflow.appdata.split(",");l.dialogflow.key=d[0],l.dialogflow.language=d[1],l.dialogflow.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflow.appdata.split(",");l.dialogflow.projectId=d[0],l.dialogflow.clientEmail=d[1],l.dialogflow.privateKey=d[2],l.dialogflow.language=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflow.appdata.split(",");l.dialogflow.accesskeyid=d[0],l.dialogflow.secretaccesskey=d[1],l.dialogflow.lexregion=d[2],l.dialogflow.botname=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflow.appdata.split(",");l.dialogflow.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflow.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflow.text=l.dialogflow.appdata;break;case"set":l.dialogflow.name=l.dialogflow.appdata.split("=")[0],l.dialogflow.value=l.dialogflow.appdata.split("=")[1];break;case"agi":l.dialogflow.project=l.dialogflow.appdata;break;default:var c=l.dialogflow.appdata.split(",");l.dialogflow.key=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflow.language=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflow.welcomemessage=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}else l.dialogflow.language="en";function m(e){n.hide(e)}l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outbounddial"===l.dialogflow.appType.toLowerCase()&&(l.dialogflow.prefix=l.dialogflow.phone?l.dialogflow.phone.split("$")[0]:void 0,l.dialogflow.callerId=l.dialogflow.callerID?"CALLERID(all)="+l.dialogflow.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outboundDial"===l.dialogflow.appType&&(l.dialogflow.phone=i.cutdigits?(l.dialogflow.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflow.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflow.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflow.options+="U(xcally-mixmonitor-context)"):l.dialogflow.options=l.dialogflow.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflow.appType&&"custom"===l.dialogflow.appType);else switch((l.dialogflow.app||l.dialogflow.appType).toLowerCase()){case"set":l.dialogflow.appdata=l.dialogflow.name+"="+l.dialogflow.value;break;case"custom":break;default:e[0]=l.dialogflow.key,e[1]=l.dialogflow.language,e[2]=l.dialogflow.welcomemessage,l.dialogflow.appdata=e.join(",")}m(l.dialogflow)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppdialogflowDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflowv2=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflowv2.appdata)switch(l.dialogflowv2.appType?l.dialogflowv2.appType.toLowerCase():l.dialogflowv2.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.key=d[0],l.dialogflowv2.language=d[1],l.dialogflowv2.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=d[0],l.dialogflowv2.clientEmail=d[1],l.dialogflowv2.privateKey=d[2],l.dialogflowv2.language=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.accesskeyid=d[0],l.dialogflowv2.secretaccesskey=d[1],l.dialogflowv2.lexregion=d[2],l.dialogflowv2.botname=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflowv2.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflowv2.text=l.dialogflowv2.appdata;break;case"set":l.dialogflowv2.name=l.dialogflowv2.appdata.split("=")[0],l.dialogflowv2.value=l.dialogflowv2.appdata.split("=")[1];break;case"agi":l.dialogflowv2.project=l.dialogflowv2.appdata;break;default:var c=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflowv2.clientEmail=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflowv2.privateKey=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.dialogflowv2.language=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.dialogflowv2.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.dialogflowv2.language="en";function m(e){n.hide(e)}l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outbounddial"===l.dialogflowv2.appType.toLowerCase()&&(l.dialogflowv2.prefix=l.dialogflowv2.phone?l.dialogflowv2.phone.split("$")[0]:void 0,l.dialogflowv2.callerId=l.dialogflowv2.callerID?"CALLERID(all)="+l.dialogflowv2.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outboundDial"===l.dialogflowv2.appType&&(l.dialogflowv2.phone=i.cutdigits?(l.dialogflowv2.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflowv2.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflowv2.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflowv2.options+="U(xcally-mixmonitor-context)"):l.dialogflowv2.options=l.dialogflowv2.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflowv2.appType&&"custom"===l.dialogflowv2.appType);else switch((l.dialogflowv2.app||l.dialogflowv2.appType).toLowerCase()){case"set":l.dialogflowv2.appdata=l.dialogflowv2.name+"="+l.dialogflowv2.value;break;case"custom":break;default:e[0]=l.dialogflowv2.projectId,e[1]=l.dialogflowv2.clientEmail,e[2]=l.dialogflowv2.privateKey,e[3]=l.dialogflowv2.language,e[4]=l.dialogflowv2.welcomemessage,l.dialogflowv2.appdata=e.join(",")}m(l.dialogflowv2)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppdialogflowv2DialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotoif=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotoif.appdata)switch(l.gotoif.appType?l.gotoif.appType.toLowerCase():l.gotoif.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotoif.appdata.split(",");l.gotoif.key=d[0],l.gotoif.language=d[1],l.gotoif.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotoif.appdata.split(",");l.gotoif.projectId=d[0],l.gotoif.clientEmail=d[1],l.gotoif.privateKey=d[2],l.gotoif.language=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotoif.appdata.split(",");l.gotoif.accesskeyid=d[0],l.gotoif.secretaccesskey=d[1],l.gotoif.lexregion=d[2],l.gotoif.botname=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotoif.appdata.split(",");l.gotoif.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotoif.text=d.slice(1,d.length).join(",");break;case"message":l.gotoif.text=l.gotoif.appdata;break;case"set":l.gotoif.name=l.gotoif.appdata.split("=")[0],l.gotoif.value=l.gotoif.appdata.split("=")[1];break;case"agi":l.gotoif.project=l.gotoif.appdata;break;default:var c=l.gotoif.appdata.split(",");l.gotoif.condition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.gotoif.truepriority=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.gotoif.falsepriority=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}function m(e){n.hide(e)}l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outbounddial"===l.gotoif.appType.toLowerCase()&&(l.gotoif.prefix=l.gotoif.phone?l.gotoif.phone.split("$")[0]:void 0,l.gotoif.callerId=l.gotoif.callerID?"CALLERID(all)="+l.gotoif.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outboundDial"===l.gotoif.appType&&(l.gotoif.phone=i.cutdigits?(l.gotoif.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotoif.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotoif.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotoif.options+="U(xcally-mixmonitor-context)"):l.gotoif.options=l.gotoif.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotoif.appType&&"custom"===l.gotoif.appType);else switch((l.gotoif.app||l.gotoif.appType).toLowerCase()){case"set":l.gotoif.appdata=l.gotoif.name+"="+l.gotoif.value;break;case"custom":break;default:e[0]=l.gotoif.condition,e[1]=l.gotoif.truepriority,e[2]=l.gotoif.falsepriority,l.gotoif.appdata=e.join(",")}m(l.gotoif)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppgotoifDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotop.appdata)switch(l.gotop.appType?l.gotop.appType.toLowerCase():l.gotop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotop.appdata.split(",");l.gotop.key=d[0],l.gotop.language=d[1],l.gotop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotop.appdata.split(",");l.gotop.projectId=d[0],l.gotop.clientEmail=d[1],l.gotop.privateKey=d[2],l.gotop.language=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotop.appdata.split(",");l.gotop.accesskeyid=d[0],l.gotop.secretaccesskey=d[1],l.gotop.lexregion=d[2],l.gotop.botname=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotop.appdata.split(",");l.gotop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotop.text=d.slice(1,d.length).join(",");break;case"message":l.gotop.text=l.gotop.appdata;break;case"set":l.gotop.name=l.gotop.appdata.split("=")[0],l.gotop.value=l.gotop.appdata.split("=")[1];break;case"agi":l.gotop.project=l.gotop.appdata;break;default:var c=l.gotop.appdata.split(",");l.gotop.priority=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outbounddial"===l.gotop.appType.toLowerCase()&&(l.gotop.prefix=l.gotop.phone?l.gotop.phone.split("$")[0]:void 0,l.gotop.callerId=l.gotop.callerID?"CALLERID(all)="+l.gotop.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outboundDial"===l.gotop.appType&&(l.gotop.phone=i.cutdigits?(l.gotop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotop.options+="U(xcally-mixmonitor-context)"):l.gotop.options=l.gotop.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotop.appType&&"custom"===l.gotop.appType);else switch((l.gotop.app||l.gotop.appType).toLowerCase()){case"set":l.gotop.appdata=l.gotop.name+"="+l.gotop.value;break;case"custom":break;default:e[0]=l.gotop.priority,l.gotop.appdata=e.join(",")}m(l.gotop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppgotopDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;if(c.currentUser=l.getCurrentUser(),c.errors=[],c.title="TOOLS.EDIT_INTERVAL",c.interval=angular.copy(i),c.intervals=s,c.newInterval=!1,c.types=["always","custom","list"],c.crudPermissions=d,c.daysOfWeek=a.getDaysOfWeek(),c.monthNumber=a.getMonthNumber(),c.monthName=a.getMonthName(),c.daysOfMonth=a.getDaysOfMonth(),c.interval)if("*,*,*,*"!==c.interval.interval){c.type="custom";var m=c.interval.interval.split(","),u=m[0],p=m[1],g=m[2],v=m[3];if("*"!==u){var h,f=u.split("-")[0],b=u.split("-")[1];(h=new Date).setHours(Number(f.split(":")[0])),h.setMinutes(Number(f.split(":")[1])),c.timeRangeFrom=h,(h=new Date).setHours(Number(b.split(":")[0])),h.setMinutes(Number(b.split(":")[1])),c.timeRangeTo=h}"*"!==p&&(c.dayOfWeekFrom=p.split("-")[0],c.dayOfWeekTo=p.split("-")[1]),"*"!==g&&(c.monthDayFrom=g.split("-")[0],c.monthDayTo=g.split("-")[1]),"*"!==v&&(c.monthFrom=v.split("-")[0],c.monthTo=v.split("-")[1])}else c.type="always";else c.interval={interval:"*,*,*,*"},c.type="always",c.title="TOOLS.NEW_INTERVAL",c.newInterval=!0;function A(){switch(c.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==c.timeRangeFrom&&c.timeRangeFrom&&c.timeRangeTo){var n=(c.timeRangeFrom.getHours()<10?"0":"")+c.timeRangeFrom.getHours()+":"+(c.timeRangeFrom.getMinutes()<10?"0":"")+c.timeRangeFrom.getMinutes(),t=(c.timeRangeTo.getHours()<10?"0":"")+c.timeRangeTo.getHours()+":"+(c.timeRangeTo.getMinutes()<10?"0":"")+c.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return c.dayOfWeekFrom?c.dayOfWeekTo?e.push(c.dayOfWeekFrom+"-"+c.dayOfWeekTo):e.push(c.dayOfWeekFrom):e.push("*"),c.monthDayFrom?c.monthDayTo?e.push(c.monthDayFrom+"-"+c.monthDayTo):e.push(c.monthDayFrom):e.push("*"),c.monthFrom?c.monthTo?e.push(c.monthFrom+"-"+c.monthTo):e.push(c.monthFrom):e.push("*"),e.join()}}function E(e){n.hide(e)}e.params.id&&!c.interval.application&&(c.interval.IntervalId=e.params.id),c.interval.IntervalId&&c.interval.application&&(c.type="list"),c.addNewInterval=function(){c.errors=[],c.interval.interval=A(),r.interval.save(c.interval).$promise.then(function(e){c.intervals.push(e),o.success({title:"Interval properly created",msg:c.interval.name?c.interval.name+" has been created!":""}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},c.saveInterval=function(){c.errors=[],c.interval.interval=A(),c.interval.application?("list"!==c.type&&(c.interval.IntervalId=null),E(c.interval)):r.interval.update({id:c.interval.id},c.interval).$promise.then(function(e){var n=_.find(c.intervals,{id:e.id});n&&_.merge(n,e),o.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},c.closeDialog=E,c.interval.application&&(l.hasRole("admin")?r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:c.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=e&&e.rows?e.rows:[],t=[],a=null;c.interval&&(a=_.find(c.intervals,{name:c.interval.IntervalId})),a&&!_.some(n,["resourceId",a.id])&&c.intervals.forEach(function(e){e.id===a.id&&(e.canSelect=!1,t.push(e))}),c.intervals=t})}else c.intervals=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}))}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditSmsAccountAppintervalDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.noop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.noop.appdata)switch(l.noop.appType?l.noop.appType.toLowerCase():l.noop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.noop.appdata.split(",");l.noop.key=d[0],l.noop.language=d[1],l.noop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.noop.appdata.split(",");l.noop.projectId=d[0],l.noop.clientEmail=d[1],l.noop.privateKey=d[2],l.noop.language=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.noop.appdata.split(",");l.noop.accesskeyid=d[0],l.noop.secretaccesskey=d[1],l.noop.lexregion=d[2],l.noop.botname=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.noop.appdata.split(",");l.noop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.noop.text=d.slice(1,d.length).join(",");break;case"message":l.noop.text=l.noop.appdata;break;case"set":l.noop.name=l.noop.appdata.split("=")[0],l.noop.value=l.noop.appdata.split("=")[1];break;case"agi":l.noop.project=l.noop.appdata;break;default:var c=l.noop.appdata.split(",");l.noop.value=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outbounddial"===l.noop.appType.toLowerCase()&&(l.noop.prefix=l.noop.phone?l.noop.phone.split("$")[0]:void 0,l.noop.callerId=l.noop.callerID?"CALLERID(all)="+l.noop.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outboundDial"===l.noop.appType&&(l.noop.phone=i.cutdigits?(l.noop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.noop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.noop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.noop.options+="U(xcally-mixmonitor-context)"):l.noop.options=l.noop.options.replace("U(xcally-mixmonitor-context)",""));if(l.noop.appType&&"custom"===l.noop.appType);else switch((l.noop.app||l.noop.appType).toLowerCase()){case"set":l.noop.appdata=l.noop.name+"="+l.noop.value;break;case"custom":break;default:e[0]=l.noop.value,l.noop.appdata=e.join(",")}m(l.noop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppnoopDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.queue=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.queue.appdata)switch(l.queue.appType?l.queue.appType.toLowerCase():l.queue.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.queue.appdata.split(",");l.queue.key=d[0],l.queue.language=d[1],l.queue.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.queue.appdata.split(",");l.queue.projectId=d[0],l.queue.clientEmail=d[1],l.queue.privateKey=d[2],l.queue.language=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.queue.appdata.split(",");l.queue.accesskeyid=d[0],l.queue.secretaccesskey=d[1],l.queue.lexregion=d[2],l.queue.botname=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.queue.appdata.split(",");l.queue.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.queue.text=d.slice(1,d.length).join(",");break;case"message":l.queue.text=l.queue.appdata;break;case"set":l.queue.name=l.queue.appdata.split("=")[0],l.queue.value=l.queue.appdata.split("=")[1];break;case"agi":l.queue.project=l.queue.appdata;break;default:var c=l.queue.appdata.split(",");l.queue.queue=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.queue.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.queue.queue=300,l.queue.timeout=300;function m(e){n.hide(e)}l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outbounddial"===l.queue.appType.toLowerCase()&&(l.queue.prefix=l.queue.phone?l.queue.phone.split("$")[0]:void 0,l.queue.callerId=l.queue.callerID?"CALLERID(all)="+l.queue.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outboundDial"===l.queue.appType&&(l.queue.phone=i.cutdigits?(l.queue.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.queue.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.queue.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.queue.options+="U(xcally-mixmonitor-context)"):l.queue.options=l.queue.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.queues,{name:l.queue.queue});n&&(l.queue[_.capitalize("sms")+"QueueId"]=n.id);if(l.queue.appType&&"custom"===l.queue.appType);else switch((l.queue.app||l.queue.appType).toLowerCase()){case"set":l.queue.appdata=l.queue.name+"="+l.queue.value;break;case"custom":break;default:e[0]=l.queue.queue,e[1]=l.queue.timeout,l.queue.appdata=e.join(",")}m(l.queue)},l.closeDialog=m,o.hasRole("admin")?s.smsQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.smsQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:701}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.queues,{id:e.resourceId})}),t=null;if(l.queue&&(t=_.find(l.queues,{name:l.queue.queue})),t&&!_.some(n,["id",t.id])){var a=_.find(l.queues,{id:t.id});a.canSelect=!1,n.push(a)}l.queues=n})}else{var t=[],a=null;l.queue&&(a=_.find(l.queues,{name:l.queue.queue}));for(var i=0;i<l.queues.length;i++)a&&l.queues[i].id===a.id&&(l.queues[i].canSelect=!1,t.push(l.queues[i]));l.queues=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppqueueDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.system=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.system.appdata)switch(l.system.appType?l.system.appType.toLowerCase():l.system.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.system.appdata.split(",");l.system.key=d[0],l.system.language=d[1],l.system.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.system.appdata.split(",");l.system.projectId=d[0],l.system.clientEmail=d[1],l.system.privateKey=d[2],l.system.language=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.system.appdata.split(",");l.system.accesskeyid=d[0],l.system.secretaccesskey=d[1],l.system.lexregion=d[2],l.system.botname=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.system.appdata.split(",");l.system.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.system.text=d.slice(1,d.length).join(",");break;case"message":l.system.text=l.system.appdata;break;case"set":l.system.name=l.system.appdata.split("=")[0],l.system.value=l.system.appdata.split("=")[1];break;case"agi":l.system.project=l.system.appdata;break;default:var c=l.system.appdata.split(",");l.system.command=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.system.variable=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.system.variable="";function m(e){n.hide(e)}l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outbounddial"===l.system.appType.toLowerCase()&&(l.system.prefix=l.system.phone?l.system.phone.split("$")[0]:void 0,l.system.callerId=l.system.callerID?"CALLERID(all)="+l.system.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outboundDial"===l.system.appType&&(l.system.phone=i.cutdigits?(l.system.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.system.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.system.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.system.options+="U(xcally-mixmonitor-context)"):l.system.options=l.system.options.replace("U(xcally-mixmonitor-context)",""));if(l.system.appType&&"custom"===l.system.appType);else switch((l.system.app||l.system.appType).toLowerCase()){case"set":l.system.appdata=l.system.name+"="+l.system.value;break;case"custom":break;default:e[0]=l.system.command,e[1]=l.system.variable,l.system.appdata=e.join(",")}m(l.system)},l.closeDialog=m,o.hasRole("admin")?s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1012}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.variables,{id:e.resourceId})}),t=null;if(l.system&&(t=_.find(l.variables,{name:l.system.variable})),t&&!_.some(n,["id",t.id])){var a=_.find(l.variables,{id:t.id});a.canSelect=!1,n.push(a)}l.variables=n})}else{var t=[],a=null;l.system&&(a=_.find(l.variables,{name:l.system.variable}));for(var i=0;i<l.variables.length;i++)a&&l.variables[i].id===a.id&&(l.variables[i].canSelect=!1,t.push(l.variables[i]));l.variables=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppsystemDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.tag=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.tag.appdata)switch(l.tag.appType?l.tag.appType.toLowerCase():l.tag.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.tag.appdata.split(",");l.tag.key=d[0],l.tag.language=d[1],l.tag.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.tag.appdata.split(",");l.tag.projectId=d[0],l.tag.clientEmail=d[1],l.tag.privateKey=d[2],l.tag.language=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.tag.appdata.split(",");l.tag.accesskeyid=d[0],l.tag.secretaccesskey=d[1],l.tag.lexregion=d[2],l.tag.botname=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.tag.appdata.split(",");l.tag.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.tag.text=d.slice(1,d.length).join(",");break;case"message":l.tag.text=l.tag.appdata;break;case"set":l.tag.name=l.tag.appdata.split("=")[0],l.tag.value=l.tag.appdata.split("=")[1];break;case"agi":l.tag.project=l.tag.appdata;break;default:var c=l.tag.appdata.split(",");l.tag.tag=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outbounddial"===l.tag.appType.toLowerCase()&&(l.tag.prefix=l.tag.phone?l.tag.phone.split("$")[0]:void 0,l.tag.callerId=l.tag.callerID?"CALLERID(all)="+l.tag.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outboundDial"===l.tag.appType&&(l.tag.phone=i.cutdigits?(l.tag.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.tag.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.tag.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.tag.options+="U(xcally-mixmonitor-context)"):l.tag.options=l.tag.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.tags,{name:l.tag.tag});n&&(l.tag.TagId=n.id);if(l.tag.appType&&"custom"===l.tag.appType);else switch((l.tag.app||l.tag.appType).toLowerCase()){case"set":l.tag.appdata=l.tag.name+"="+l.tag.value;break;case"custom":break;default:e[0]=l.tag.tag,l.tag.appdata=e.join(",")}m(l.tag)},l.closeDialog=m,o.hasRole("admin")?s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1008}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.tags,{id:e.resourceId})}),t=null;if(l.tag&&(t=_.find(l.tags,{name:l.tag.tag})),t&&!_.some(n,["id",t.id])){var a=_.find(l.tags,{id:t.id});a.canSelect=!1,n.push(a)}l.tags=n})}else{var t=[],a=null;l.tag&&(a=_.find(l.tags,{name:l.tag.tag}));for(var i=0;i<l.tags.length;i++)a&&l.tags[i].id===a.id&&(l.tags[i].canSelect=!1,t.push(l.tags[i]));l.tags=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtags",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountApptagDialogController",e)}(),function(){"use strict";function e(e,a,n,t,i,s,o,r,l,d,c){var m=this;function u(e){m.smsAccountInteractions=e||{count:0,rows:[]};for(var n=0;n<m.smsAccountInteractions.rows.length;n+=1){var t=m.smsAccountInteractions.rows[n];v(t),t.Owner.name=h(t)}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.smsInteraction.get(m.query,u).$promise}function g(e){d.smsInteraction.delete({id:e.id}).$promise.then(function(){_.remove(m.smsAccountInteractions.rows,{id:e.id}),m.smsAccountInteractions.count-=1,m.smsAccountInteractions.rows.length||p(),l.success({title:"Interaction deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETsmsAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(e){e.Contact?(e.contactName=(e.Contact.firstName||"")+" "+(e.Contact.lastName||""),e.contactInfo=e.Contact.mobile):e.contactName=i.instant("DASHBOARDS.UNKNOWN")}function h(e){return e.UserId?e.UserId===m.currentUser.id?i.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">":i.instant("DASHBOARDS.NOT_ASSIGNED")}m.currentUser=c.getCurrentUser(),m.smsAccount={},m.smsAccountInteractions={count:0,rows:[]},m.selectedSmsAccountInteractions=[],m.crudPermissions,m.query={read:"null",closed:"null",sort:"-createdAt",includeAll:"true",limit:10,page:1},m.init=function(e,n,t){m.smsAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.SmsAccountId=m.smsAccount.id,m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Subject",column:"subject",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},d.tag.get({sort:"name"}).$promise.then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]})},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the interaction?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("interaction #")+e.id||"interaction")+"</b> will be deleted.").ariaLabel("delete interaction").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.smsInteractionDownload=function(s,e,n){return d.smsInteraction.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="interaction"+s.id,a=new Blob(n,{type:e.type});t="sms-interaction"+s.id+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getSmsAccountInteractions=p,m.createOrEditSmsAccountInteraction=function(e,n){o.show({controller:"CreateOrEditInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/interactions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsAccount:m.smsAccount,interaction:n,interactions:m.smsAccountInteractions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.spysmsInteraction=function(e,t){o.show({controller:"AgentGeneralInteractionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,onShowing:function(e,n){e.vm.init({id:1,channel:"sms",interaction:t,spy:!0},a.$parent.vm.setting)}})},m.openAdvancedSearch=function(){o.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(r.body),clickOutsideToClose:!1,locals:{fields:m.advancedSearch.fields,color:void 0,storagePath:"sms.smsAccounts"},fullscreen:!0}).then(function(e){if(m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply){var n="";n+="||SmsAccountId:=$eq["+m.smsAccount.id+"]",m.query.search=e.value?e.value+=n:e.value,p()}}).catch(function(e){l.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.exportSelectedSmsAccountInteractions=function(){var e=angular.copy(m.selectedSmsAccountInteractions);return m.selectedSmsAccountInteractions=[],e},m.deleteSmsAccountInteraction=g,m.deleteSelectedSmsAccountInteractions=function(e){var n=o.confirm().title("Are you sure want to delete the selected interactions?").htmlContent("<b>"+m.selectedSmsAccountInteractions.length+" selected</b> will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedSmsAccountInteractions.forEach(function(e){g(e)}),m.selectedSmsAccountInteractions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.sms").controller("SmsAccountInteractionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.smsAccountSmsCannedAnswers=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.smsAccount.getAnswers(m.query,u).$promise}function g(e){d.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(m.smsAccountSmsCannedAnswers.rows,{id:e.id}),m.smsAccountSmsCannedAnswers.count-=1,m.smsAccountSmsCannedAnswers.rows.length||p(),l.success({title:"SmsCannedAnswer deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETsmsAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.smsAccount={},m.smsAccountSmsCannedAnswers={count:0,rows:[]},m.selectedSmsAccountSmsCannedAnswers=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,key,value,description",limit:10,page:1},m.init=function(e,n,t){m.smsAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.SmsAccountId=m.smsAccount.id,m.query.id=m.smsAccount.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the smsCannedAnswer?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("smsCannedAnswer #")+e.id||"smsCannedAnswer")+"</b> will be deleted.").ariaLabel("delete smsCannedAnswer").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getSmsAccountSmsCannedAnswers=p,m.createOrEditSmsAccountSmsCannedAnswer=function(e,n){o.show({controller:"CreateOrEditSmsCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/smsCannedAnswers/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsAccount:m.smsAccount,smsCannedAnswer:n,smsCannedAnswers:m.smsAccountSmsCannedAnswers.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedSmsAccountSmsCannedAnswers=function(){var e=angular.copy(m.selectedSmsAccountSmsCannedAnswers);return m.selectedSmsAccountSmsCannedAnswers=[],e},m.deleteSmsAccountSmsCannedAnswer=g,m.deleteSelectedSmsAccountSmsCannedAnswers=function(e){var n=o.confirm().title("Are you sure want to delete the selected smsCannedAnswers?").htmlContent("<b>"+m.selectedSmsAccountSmsCannedAnswers.length+" selected</b> will be deleted.").ariaLabel("delete smsCannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedSmsAccountSmsCannedAnswers.forEach(function(e){g(e)}),m.selectedSmsAccountSmsCannedAnswers=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.sms").controller("SmsAccountSmsCannedAnswersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="SMS.EDIT_SMSCANNEDANSWER",g.smsCannedAnswer=angular.copy(l),g.smsCannedAnswers=r,g.newSmsCannedAnswer=!1,g.smsCannedAnswer||(g.smsCannedAnswer={},g.title="SMS.NEW_SMSCANNEDANSWER",g.newSmsCannedAnswer=!0),n.params.id&&(g.smsCannedAnswer.SmsAccountId=n.params.id),g.addNewSmsCannedAnswer=function(){g.errors=[],d.cannedAnswer.save(g.smsCannedAnswer).$promise.then(function(e){g.smsCannedAnswers.unshift(e.toJSON()),o.success({title:"SmsCannedAnswer properly created",msg:g.smsCannedAnswer.name?g.smsCannedAnswer.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSmsCannedAnswer=function(){g.errors=[],d.cannedAnswer.update({id:g.smsCannedAnswer.id},g.smsCannedAnswer).$promise.then(function(e){var n=_.find(g.smsCannedAnswers,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"SmsCannedAnswer properly saved!",msg:g.smsCannedAnswer.name?g.smsCannedAnswer.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSmsCannedAnswer=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The smsCannedAnswer will be deleted.").ariaLabel("Delete SmsCannedAnswer").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cannedAnswer.delete({id:g.smsCannedAnswer.id}).$promise.then(function(){_.remove(g.smsCannedAnswers,{id:g.smsCannedAnswer.id}),o.success({title:"SmsCannedAnswer properly deleted!",msg:(g.smsCannedAnswer.name||"smsCannedAnswer")+" has been deleted!"}),v(g.smsCannedAnswer)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","smsCannedAnswers","smsCannedAnswer","api","Auth","license","setting","crudPermissions"],angular.module("app.sms").controller("CreateOrEditSmsCannedAnswerDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.dispositions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=l.smsAccount.getDispositions(m.query,u).$promise}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){p(),d.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.dispositions={count:0,rows:[]},m.selectedDispositions=[],m.crudPermissions,m.levels={first:"1st",second:"2nd",third:"3rd"},m.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},m.init=function(e,n){m.smsAccount=e||{},m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.SmsAccountId=m.smsAccount.id,m.query.id=m.smsAccount.id,p()},m.deleteConfirm=function(e,n){var t=_.some(m.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){g(e)})},m.success=u,m.getDispositions=p,m.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:{id:m.smsAccount.id,field:"SmsAccountId",route:"smsAccount"},license:null,setting:null,crudPermissions:m.crudPermissions}}).then(function(e){e&&p()})},m.deleteDisposition=g,m.exportSelectedDispositions=function(){var e=angular.copy(m.selectedDispositions);return m.selectedDispositions=[],e},m.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:m.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedDispositions.forEach(function(e){g(e)}),m.selectedDispositions=[]})},m.deselectDispositions=function(){m.selectedDispositions=[]},m.selectAllDispositions=function(){m.selectedDispositions=m.dispositions.rows};var v=!0,h=1;e.$watch("vm_dc.query.filter",function(e,n){v?o(function(){v=!1}):(n||(h=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=h),p())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","api","toasty","Auth"],angular.module("app.sms").controller("SmsAccountDispositionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;p.currentUser=d.getCurrentUser(),p.license=s,p.setting=o,p.passwordPattern=p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.location=n.protocol()+"://"+n.host(),p.smsAccount=c||e.params.smsAccount||{},p.userProfile=m,p.userProfileSection=u&&1==u.count?u.rows[0]:null,p.crudPermissions=d.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.hasModulePermissions={},p.selectedTab=e.params.tab||0,p.agentadddialog=function(e,n){t.show({controller:"SmsAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{smsAccount:e,smsAccounts:p.smsAccounts?p.smsAccounts.rows:[],crudPermissions:p.crudPermissions,realtime:!1}})},p.alert=l.info,p.gotoSmsAccounts=function(){e.go("app.sms.smsAccounts",{},{reload:"app.sms.smsAccounts"})},p.saveSmsAccount=function(){r.smsAccount.update({id:p.smsAccount.id},p.smsAccount).$promise.then(function(){l.success({title:"SmsAccount updated!",msg:p.smsAccount.name?p.smsAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.lists,{id:e.resourceId})}),t=null;if(p.smsAccount&&(t=_.find(p.lists,{id:Number(p.smsAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.lists,{id:t.id});a.canSelect=!1,n.push(a)}p.lists=n})}else{var t=[],a=null;p.smsAccount&&(a=_.find(p.lists,{id:Number(p.smsAccount.ListId)}));for(var i=0;i<p.lists.length;i++)a&&p.lists[i].id===a.id&&(p.lists[i].canSelect=!1,t.push(p.lists[i]));p.lists=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.pauses,{id:e.resourceId})});p.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),p.pauses=n})}else p.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","smsAccount","userProfile","userProfileSection"],angular.module("app.sms").controller("SmsAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.smsAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="smsAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedSmsAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,type,phone,accountSid,authId,authToken,smsMethod,username,password,baseUrl,apiKey,accountId,applicationId,senderString,deliveryReport,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,page:1},f.arraytype=_.keyBy([{option:"Twilio",value:"'twilio'"},{option:"Skebby",value:"'skebby'"},{option:"Connectel",value:"'connectel'"},{option:"ClickSend",value:"'clicksend'"},{option:"Plivo",value:"'plivo'"},{option:"Infobip",value:"'infobip'"},{option:"Clickatell",value:"'clickatell'"},{option:"Bandwidth",value:"'bandwidth'"},{option:"CSCTelecom",value:"'csc'"},{option:"Intelepeer",value:"'intelepeer'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysmsMethod=_.keyBy([{option:"Basic",value:"'SI'"},{option:"Classic",value:"'TI'"},{option:"Classic+",value:"'GP'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.sms.smsAccounts.edit",{id:e.id,smsAccount:e,crudPermissions:f.crudPermissions})},f.interactionsgoto=function(e,n){t.go("app.sms.smsAccounts.edit",{id:e.id,tab:5})},f.agentadddialog=function(e,n){i.show({controller:"SmsAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{smsAccount:e,smsAccounts:f.smsAccounts?f.smsAccounts.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("smsAccount")+"?").htmlContent("<b>"+(e.name||"smsAccount")+"</b> will be deleted.").ariaLabel("delete smsAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getSmsAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.smsAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="SmsAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditSmsAccount=function(e,n){i.show({controller:"CreateOrEditSmsAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsAccount:n,smsAccounts:f.smsAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteSmsAccount=y,f.exportSelectedSmsAccounts=function(){var e=angular.copy(f.selectedSmsAccounts);return f.selectedSmsAccounts=[],e},f.deleteSelectedSmsAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected smsAccounts?").htmlContent("<b>"+f.selectedSmsAccounts.length+" selected</b> will be deleted.").ariaLabel("delete SmsAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedSmsAccounts.forEach(function(e){y(e)}),f.selectedSmsAccounts=[]})},f.deselectSmsAccounts=function(){f.selectedSmsAccounts=[]},f.selectAllSmsAccounts=function(){f.selectedSmsAccounts=f.smsAccounts.rows},g.hasRole("admin")?m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.lists,{id:e.resourceId})}),t=null;if(f.smsAccount&&(t=_.find(f.lists,{id:Number(f.smsAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.lists,{id:t.id});a.canSelect=!1,n.push(a)}f.lists=n})}else{var t=[],a=null;f.smsAccount&&(a=_.find(f.lists,{id:Number(f.smsAccount.ListId)}));for(var i=0;i<f.lists.length;i++)a&&f.lists[i].id===a.id&&(f.lists[i].canSelect=!1,t.push(f.lists[i]));f.lists=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.smsAccounts=e||{count:0,rows:[]}}function y(e){m.smsAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.smsAccounts.rows,{id:e.id}),f.smsAccounts.count-=1,f.smsAccounts.rows.length||f.getSmsAccounts(),p.success({title:_.startCase("SmsAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEsmsAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEsmsAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getSmsAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","smsAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.sms").controller("SmsAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="SMS.EDIT_SMSQUEUE",g.smsQueue=angular.copy(l),g.smsQueues=r,g.newSmsQueue=!1,g.smsQueue||(g.smsQueue={strategy:"beepall",timeout:10},g.title="SMS.NEW_SMSQUEUE",g.newSmsQueue=!0),g.addNewSmsQueue=function(){g.errors=[],d.smsQueue.save(g.smsQueue).$promise.then(function(e){g.smsQueues.unshift(e.toJSON()),o.success({title:"SmsQueue properly created",msg:g.smsQueue.name?g.smsQueue.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.smsQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSmsQueue=function(){g.errors=[],d.smsQueue.update({id:g.smsQueue.id},g.smsQueue).$promise.then(function(e){var n=_.find(g.smsQueues,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"SmsQueue properly saved!",msg:g.smsQueue.name?g.smsQueue.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.smsQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSmsQueue=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The smsQueue will be deleted.").ariaLabel("Delete SmsQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.smsQueue.delete({id:g.smsQueue.id}).$promise.then(function(){_.remove(g.smsQueues,{id:g.smsQueue.id}),o.success({title:"SmsQueue properly deleted!",msg:(g.smsQueue.name||"smsQueue")+" has been deleted!"}),v(g.smsQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.smsQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","smsQueues","smsQueue","api","Auth","license","setting","crudPermissions"],angular.module("app.sms").controller("CreateOrEditSmsQueueDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.smsQueue.getAgents({id:c.smsQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserSmsQueue?"penalty "+e.UserSmsQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.smsQueue=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.smsQueue.removeAgents({id:c.smsQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.smsQueue.addAgents({id:c.smsQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("SMS.ALL_AGENTS"),labelSelected:r.instant("SMS.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","smsQueue","smsQueues","realtime","$translate","Auth","crudPermissions"],angular.module("app.sms").controller("SmsQueueagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.smsQueue.getTeams({id:l.smsQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.smsQueue=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("SMS.ALL_TEAMS"),labelSelected:t.instant("SMS.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.smsQueue.removeTeams({id:l.smsQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.smsQueue.addTeams({id:l.smsQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","smsQueue","$translate","Auth","crudPermissions"],angular.module("app.sms").controller("SmsQueueteamaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.smsQueue=c||e.params.smsQueue||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.teamadddialog=function(e,n){t.show({controller:"SmsQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{smsQueue:e,smsQueues:u.smsQueues?u.smsQueues.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){t.show({controller:"SmsQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{smsQueue:e,smsQueues:u.smsQueues?u.smsQueues.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.alert=l.info,u.gotoSmsQueues=function(){e.go("app.sms.smsQueues",{},{reload:"app.sms.smsQueues"})},u.saveSmsQueue=function(){r.smsQueue.update({id:u.smsQueue.id},u.smsQueue).$promise.then(function(){l.success({title:"SmsQueue updated!",msg:u.smsQueue.name?u.smsQueue.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","smsQueue","userProfileSection"],angular.module("app.sms").controller("SmsQueueController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.smsQueues=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="smsQueues",f.listOrder="",f.listOrderAsc=null,f.selectedSmsQueues=[],f.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"sms",limit:10,page:1},f.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.sms.smsQueues.edit",{id:e.id,smsQueue:e,crudPermissions:f.crudPermissions})},f.teamadddialog=function(e,n){i.show({controller:"SmsQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{smsQueue:e,smsQueues:f.smsQueues?f.smsQueues.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"SmsQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{smsQueue:e,smsQueues:f.smsQueues?f.smsQueues.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("smsQueue")+"?").htmlContent("<b>"+(e.name||"smsQueue")+"</b> will be deleted.").ariaLabel("delete smsQueue").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:710}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.sms.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.sms.realtime.queues",{})}},f.success=E,f.getSmsQueues=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.smsQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="SmsQueues",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditSmsQueue=function(e,n){i.show({controller:"CreateOrEditSmsQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsQueue:n,smsQueues:f.smsQueues.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteSmsQueue=y,f.exportSelectedSmsQueues=function(){var e=angular.copy(f.selectedSmsQueues);return f.selectedSmsQueues=[],e},f.deleteSelectedSmsQueues=function(e){var n=i.confirm().title("Are you sure want to delete the selected smsQueues?").htmlContent("<b>"+f.selectedSmsQueues.length+" selected</b> will be deleted.").ariaLabel("delete SmsQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedSmsQueues.forEach(function(e){y(e)}),f.selectedSmsQueues=[]})},f.deselectSmsQueues=function(){f.selectedSmsQueues=[]},f.selectAllSmsQueues=function(){f.selectedSmsQueues=f.smsQueues.rows};var b=!0,A=1;function E(e){f.smsQueues=e||{count:0,rows:[]}}function y(e){m.smsQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.smsQueues.rows,{id:e.id}),f.smsQueues.count-=1,f.smsQueues.rows.length||f.getSmsQueues(),p.success({title:_.startCase("SmsQueue")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEsmsQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEsmsQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getSmsQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","smsQueues","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.sms").controller("SmsQueuesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.agents=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="agents",f.listOrder="",f.listOrderAsc=null,f.selectedAgents=[],f.query={fields:"createdAt,updatedAt,id,role,fullname,name,alias,showWebBar,email,phone,mobile,userpic,password,hotdesk,autointernal,internal,loginInPause,description,dtlscertfile,dtlsprivatekey,wssPort,voicemail,transport,host,nat,type,allow,callerid,context,callgroup,pickupgroup,chanspy,videosupport,extensionMonitor,chatCapacity,mailCapacity,smsCapacity,openchannelCapacity,faxCapacity,whatsappCapacity,phoneBarEnableSettings,phoneBarAutoAnswer,phoneBarAutoAnswerDelay,phoneBarRingInUse,phoneBarEnableRecording,phoneBarEnableDtmfTone,phoneBarDnd,phoneBarUnansweredCallBadge,phoneBarEnableJaws,phoneBarOutboundProxy,phoneBarUnconditional,phoneBarUnconditionalNumber,phoneBarRemoteControl,phoneBarRemoteControlPort,phoneBarExpires,phoneBarListenPort,permissions,allowmessenger,phoneBarPrefixRequired,passwordResetAt,disabled,blocked,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording,privacyEnabled,downloadAttachments,downloadOmnichannelInteractions,downloadVoiceRecordings",role:"agent",sort:"-updatedAt",limit:10,page:1},f.arrayshowWebBar=_.keyBy([{option:"Phonebar",value:"0"},{option:"External",value:"1"},{option:"WebRTC",value:"2"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraytransport=_.keyBy([{option:"udp",value:"'udp'"},{option:"tcp",value:"'tcp'"},{option:"ws",value:"'ws'",ngIf:"vm.agent.showWebBar == 1"},{option:"wss",value:"'wss'",ngIf:"vm.agent.showWebBar == 1"},{option:"tls",value:"'tls'",ngIf:"vm.agent.showWebBar == 1"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraynat=_.keyBy([{option:"force_rport",value:"'force_rport'"},{option:"comedia",value:"'comedia'"},{option:"yes",value:"'yes'"},{option:"no",value:"'no'"},{option:"never",value:"'never'"},{option:"route",value:"'route'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraytype=_.keyBy([{option:"Friend",value:"'friend'"},{option:"User",value:"'user'"},{option:"Peer",value:"'peer'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayallow=_.keyBy([{option:"ulaw",value:"'ulaw'"},{option:"alaw",value:"'alaw'"},{option:"gsm",value:"'gsm'"},{option:"g722",value:"'g722'"},{option:"g729",value:"'g729'"},{option:"opus",value:"'opus'"},{option:"h264",value:"'h264'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayvideosupport=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"},{option:"Always",value:"'always'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayextensionMonitor=_.keyBy([{option:"Inactive",value:"''"},{option:"wav",value:"'wav'"},{option:"wav49",value:"'WAV'"},{option:"gsm",value:"'gsm'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.staff.agents.edit",{id:e.id,agent:e,crudPermissions:f.crudPermissions})},f.teamadddialog=function(e,n){i.show({controller:"AgentteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:f.agents?f.agents.rows:[],crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("agent")+"?").htmlContent("<b>"+(e.name||"agent")+"</b> will be deleted.").ariaLabel("delete agent").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getAgents=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.user.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Agents",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditAgent=function(e,n){i.show({controller:"CreateOrEditAgentDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{agent:n,agents:f.agents.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteAgent=y,f.exportSelectedAgents=function(){var e=angular.copy(f.selectedAgents);return f.selectedAgents=[],e},f.deleteSelectedAgents=function(e){var n=i.confirm().title("Are you sure want to delete the selected agents?").htmlContent("<b>"+f.selectedAgents.length+" selected</b> will be deleted.").ariaLabel("delete Agents").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedAgents.forEach(function(e){y(e)}),f.selectedAgents=[]})},f.deselectAgents=function(){f.selectedAgents=[]},f.selectAllAgents=function(){f.selectedAgents=f.agents.rows};var b=!0,A=1;function E(e){f.agents=e||{count:0,rows:[]}}function y(e){m.user.delete({id:e.id}).$promise.then(function(){_.remove(f.agents.rows,{id:e.id}),f.agents.count-=1,f.agents.rows.length||f.getAgents(),p.success({title:_.startCase("Agent")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEuser"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEuser",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getAgents())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","agents","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.staff").controller("AgentsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="STAFF.EDIT_AGENT",g.agent=angular.copy(l),g.agents=r,g.newAgent=!1,g.agent||(g.agent={role:"agent",showWebBar:"0",autointernal:!0,wssPort:8089,type:"friend",context:"from-sip",phoneBarRemoteControl:!0,phoneBarRemoteControlPort:9888,allowmessenger:!0,downloadAttachments:!0,downloadOmnichannelInteractions:!0,downloadVoiceRecordings:!0},g.title="STAFF.NEW_AGENT",g.newAgent=!0),g.addNewAgent=function(){g.errors=[],d.user.save(g.agent).$promise.then(function(e){g.agents.unshift(e.toJSON()),o.success({title:"Agent properly created",msg:g.agent.name?g.agent.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveAgent=function(){g.errors=[],d.user.update({id:g.agent.id},g.agent).$promise.then(function(e){var n=_.find(g.agents,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Agent properly saved!",msg:g.agent.name?g.agent.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteAgent=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The agent will be deleted.").ariaLabel("Delete Agent").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.user.delete({id:g.agent.id}).$promise.then(function(){_.remove(g.agents,{id:g.agent.id}),o.success({title:"Agent properly deleted!",msg:(g.agent.name||"agent")+" has been deleted!"}),v(g.agent)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","agents","agent","api","Auth","license","setting","crudPermissions"],angular.module("app.staff").controller("CreateOrEditAgentDialogController",e)}(),function(){"use strict";function e(e,a){var i=this;i.agent={},i.crudPermissions,i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.agent.images.unshift(t),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.agent.images,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e,n){i.agent=angular.copy(e),i.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.ngFlowOptions.target="api/users/"+i.agent.id+"/avatar",i.agent.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.staff").controller("Agentchange_avatarController",e)}(),function(){"use strict";function e(t,e,n,a,i,s,o){var r=this;function l(){e.hide()}r.currentUser=o.getCurrentUser(),r.errors=[],r.setting=s,r.passwordPattern=r.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",r.agent=i,r.password="",r.oldPassword="",r.savePassword=function(){r.errors=[];var e={id:r.agent.id,newPassword:r.password};r.currentUser.id==r.agent.id&&(e.oldPassword=r.oldPassword);a.user.changePassword(e).$promise.then(function(){n.success({title:"Agent password properly updated!"}),l()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.agent.save",msg:e.data?JSON.stringify(e.data.message):e.toString()}),r.errors=e.data.errors||[{message:e.toString(),type:"api.agent.changePassword"}]})},r.closeDialog=l,t.$watch("vm.password",function(e,n){_.isNil(r.oldPassword)||(e===r.oldPassword?t.agentForm.password.$setValidity("oldPasswordMatch",!1):t.agentForm.password.$setValidity("oldPasswordMatch",!0))})}e.$inject=["$scope","$mdDialog","toasty","api","agent","setting","Auth"],angular.module("app.staff").controller("AgentchangepasswordController",e)}(),function(){"use strict";function e(e,n,i,t,s){var o=this;o.agent={},o.navigation=t.getNavigation(),o.crudPermissions,o.init=function(e,n){o.agent=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1}},o.onChange=function(n,t){if((t||n).enabled){if(t)t.enabled=!0,o.agent.permissions.push(t.id);else for(var e=0;e<n.children.length;e++)n.children[e].enabled=!0,o.agent.permissions.push(n.children[e].id);n.enabled=!0,o.agent.permissions.push(n.id)}else if(t)t.enabled=!1,_.remove(o.agent.permissions,function(e){return t.id===e}),_.filter(n.children,{enabled:!1}).length===n.children.length&&(n.enabled=!1,_.remove(o.agent.permissions,function(e){return n.id===e}));else{n.enabled=!1,_.remove(o.agent.permissions,function(e){return n.id===e});for(var a=0;a<n.children.length;a++)n.children[a].enabled=!1,_.remove(o.agent.permissions,function(e){return n.children[a].id===e})}return i.user.update({id:o.agent.id,permissions:_.uniq(o.agent.permissions)}).$promise.then(function(){s.success({title:"agent updated!",msg:o.agent.name?o.agent.name+" has been updated!":""})}).catch(function(e){console.error(e)})}}e.$inject=["$document","$mdDialog","api","msNavigationAgentService","toasty"],angular.module("app.staff").controller("AgentPermissionsController",e)}(),function(){"use strict";function e(e,l,a,d,n,t,i,s,o,r){var c=this;function m(){return l(function(t,n){return l(function(n,t){return d[c.apiName].get({fields:"id,name,strategy,type",channel:"bull"===c.channel?"voice":c.channel,type:c.direction,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],o.hasRole("admin")?e:c.section?c.section.autoAssociation?e:l(function(n,t){return d.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:o.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),l(function(n,t){return d.user.getQueues({id:c.agent.id,fields:"id,name,strategy,type,penalty",nolimit:!0,type:c.direction,channel:c.channel}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return"voice"===c.channel&&(n.penalty=void 0!==n&&void 0!==e.UserVoiceQueue?"penalty "+e.UserVoiceQueue.penalty:"penalty 0"),n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=o.getCurrentUser(),c.agent=n,c.crudPermissions=r,c.penalty=0,c.channel=t,c.direction=i,c.apiName=c.channel+"Queue",c.title=s.instant("STAFF.QUEUEADD_AGENT_"+c.channel.toUpperCase()+"_"+c.direction.toUpperCase()),c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"type",line3:"voice"===c.channel?"penalty":"",labelAll:s.instant("STAFF.ALL_QUEUES_"+c.channel.toUpperCase()+"_"+c.direction.toUpperCase()),labelSelected:s.instant("STAFF.SELECTED_QUEUES_"+c.channel.toUpperCase()+"_"+c.direction.toUpperCase()),transferCallback:function(e,n){n?e.forEach(function(e){e.penalty=void 0}):e.forEach(function(e){e.penalty="penalty "+c.penalty});var t=_.xorWith(c.startingSelectedItems,c.selectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});c.pendingChanges=!_.isEmpty(t)}},c.onInit=function(){return o.hasRole("admin")?m().catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.status?JSON.stringify(e.data):e.toString()})}):l(function(t,n){var e;switch(c.channel){case"voice":switch(c.direction){case"inbound":e="VoiceQueues";break;case"outbound":e="QueueCampaigns"}break;case"chat":e="ChatQueues";break;case"mail":e="MailQueues";break;case"sms":e="SmsQueues";break;case"openchannel":e="OpenchannelQueues";break;case"fax":e="FaxQueues"}d.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:e}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveQueues=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceWith(c.selectedItems,c.startingSelectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});return(t=e,l(function(e,n){_.isEmpty(t)?e():d.user.removeQueues({id:c.agent.id,ids:_.map(t,"id"),channel:c.channel}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return r=n,l(function(e,n){if(_.isEmpty(r))e();else if("voice"===c.channel){for(var t=[],a=_.groupBy(r,"penalty"),i=0;i<Object.keys(a).length;i++){var s=Object.keys(a)[i],o=_.filter(r,["penalty",s]);t.push(d.user.addQueues({id:c.agent.id,ids:_.map(o,"id"),channel:c.channel,penalty:_.trim(s,"penalty ")}).$promise)}l.all(t).then(function(){e()}).catch(function(e){n(e)})}else d.user.addQueues({id:c.agent.id,ids:_.map(r,"id"),channel:c.channel}).$promise.then(function(){e()}).catch(function(e){n(e)})});var r}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),a.success({title:"SUCCESS",msg:"Queues association has been updated!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:QUEUES_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","agent","channel","direction","$translate","Auth","crudPermissions"],angular.module("app.staff").controller("AgentqueueaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.user.getTeams({id:l.agent.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.agent=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("STAFF.ALL_TEAMS"),labelSelected:t.instant("STAFF.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.user.removeTeams({id:l.agent.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.user.addTeams({id:l.agent.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","agent","$translate","Auth","crudPermissions"],angular.module("app.staff").controller("AgentteamaddController",e)}(),function(){"use strict";function e(e,n,i,s,t,a,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=a,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.agent=c||e.params.agent||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.queueaddchannel=function(e,n,t,a){i.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(s.body),targetEvent:t,clickOutsideToClose:!0,locals:{agent:e,agents:u.agents?u.agents.rows:[],channel:n,direction:a||"inbound",crudPermissions:u.crudPermissions}})},u.teamadddialog=function(e,n){i.show({controller:"AgentteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:u.agents?u.agents.rows:[],crudPermissions:u.crudPermissions}})},u.changepassworddialog=function(e,n){i.show({controller:"AgentchangepasswordController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/changepassword/changepassword.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,setting:o,agents:u.agents?u.agents.rows:[],crudPermissions:u.crudPermissions}})},u.onEnableScreenRecordingByAgentSelection=function(){["phoneBarEnableAutomaticScreenRecording"].forEach(function(e){u.agent.phoneBarEnableScreenRecordingByAgent&&(u.agent[e]=!u.agent.phoneBarEnableScreenRecordingByAgent)})},u.onEnableAutomaticScreenRecordingSelection=function(){["phoneBarEnableScreenRecordingByAgent"].forEach(function(e){u.agent.phoneBarEnableAutomaticScreenRecording&&(u.agent[e]=!u.agent.phoneBarEnableAutomaticScreenRecording)})},u.alert=l.info,u.gotoAgents=function(){e.go("app.staff.agents",{},{reload:"app.staff.agents"})},u.saveAgent=function(){u.agent=_.omit(u.agent,"userpic"),r.user.update({id:u.agent.id},u.agent).$promise.then(function(){l.success({title:"Agent updated!",msg:u.agent.name?u.agent.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETuser",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_CONTEXTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:405}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;return n?n.autoAssociation?void 0:r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.contexts,{id:e.resourceId})}),t=null;if(u.agent&&(t=_.find(u.contexts,{name:u.agent.context})),t&&!_.some(n,["id",t.id])){var a=_.find(u.contexts,{id:t.id});a.canSelect=!1,n.push(a)}u.contexts=n}):r.voiceContext.get({fields:"id,name",sort:"name",defaultEntry:1}).$promise.then(function(e){u.contexts=e.rows||[]})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","agent","userProfileSection"],angular.module("app.staff").controller("AgentController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="STAFF.EDIT_TEAM",g.team=angular.copy(l),g.teams=r,g.newTeam=!1,g.team||(g.team={},g.title="STAFF.NEW_TEAM",g.newTeam=!0),g.addNewTeam=function(){g.errors=[],d.team.save(g.team).$promise.then(function(e){g.teams.unshift(e.toJSON()),o.success({title:"Team properly created",msg:g.team.name?g.team.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.team.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.team.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveTeam=function(){g.errors=[],d.team.update({id:g.team.id},g.team).$promise.then(function(e){var n=_.find(g.teams,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Team properly saved!",msg:g.team.name?g.team.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.team.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.team.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteTeam=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The team will be deleted.").ariaLabel("Delete Team").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.team.delete({id:g.team.id}).$promise.then(function(){_.remove(g.teams,{id:g.team.id}),o.success({title:"Team properly deleted!",msg:(g.team.name||"team")+" has been deleted!"}),v(g.team)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.team.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.team.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","teams","team","api","Auth","license","setting","crudPermissions"],angular.module("app.staff").controller("CreateOrEditTeamDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.team.getAgents({id:c.team.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserTeam?"penalty "+e.UserTeam.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.team=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.team.removeAgents({id:c.team.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.team.addAgents({id:c.team.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("STAFF.ALL_AGENTS"),labelSelected:r.instant("STAFF.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","team","teams","realtime","$translate","Auth","crudPermissions"],angular.module("app.staff").controller("TeamagentaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.teams=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="teams",f.listOrder="",f.listOrderAsc=null,f.selectedTeams=[],f.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditTeamDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/teams/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{team:e,teams:f.teams.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"TeamagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/teams/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{team:e,teams:f.teams?f.teams.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("team")+"?").htmlContent("<b>"+(e.name||"team")+"</b> will be deleted.").ariaLabel("delete team").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getTeams=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.team.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Teams",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditTeam=function(e,n){i.show({controller:"CreateOrEditTeamDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/teams/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{team:n,teams:f.teams.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteTeam=y,f.exportSelectedTeams=function(){var e=angular.copy(f.selectedTeams);return f.selectedTeams=[],e},f.deleteSelectedTeams=function(e){var n=i.confirm().title("Are you sure want to delete the selected teams?").htmlContent("<b>"+f.selectedTeams.length+" selected</b> will be deleted.").ariaLabel("delete Teams").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedTeams.forEach(function(e){y(e)}),f.selectedTeams=[]})},f.deselectTeams=function(){f.selectedTeams=[]},f.selectAllTeams=function(){f.selectedTeams=f.teams.rows};var b=!0,A=1;function E(e){f.teams=e||{count:0,rows:[]}}function y(e){m.team.delete({id:e.id}).$promise.then(function(){_.remove(f.teams.rows,{id:e.id}),f.teams.count-=1,f.teams.rows.length||f.getTeams(),p.success({title:_.startCase("Team")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEteam"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEteam",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getTeams())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","teams","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.staff").controller("TeamsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="STAFF.EDIT_TELEPHONE",g.telephone=angular.copy(l),g.telephones=r,g.newTelephone=!1,g.telephone||(g.telephone={role:"telephone",autointernal:!0,context:"from-sip"},g.title="STAFF.NEW_TELEPHONE",g.newTelephone=!0),g.addNewTelephone=function(){g.errors=[],d.user.save(g.telephone).$promise.then(function(e){g.telephones.unshift(e.toJSON()),o.success({title:"Telephone properly created",msg:g.telephone.name?g.telephone.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveTelephone=function(){g.errors=[],d.user.update({id:g.telephone.id},g.telephone).$promise.then(function(e){var n=_.find(g.telephones,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Telephone properly saved!",msg:g.telephone.name?g.telephone.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteTelephone=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The telephone will be deleted.").ariaLabel("Delete Telephone").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.user.delete({id:g.telephone.id}).$promise.then(function(){_.remove(g.telephones,{id:g.telephone.id}),o.success({title:"Telephone properly deleted!",msg:(g.telephone.name||"telephone")+" has been deleted!"}),v(g.telephone)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","telephones","telephone","api","Auth","license","setting","crudPermissions"],angular.module("app.staff").controller("CreateOrEditTelephoneDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i,s,o){var r=this;function l(){e.hide()}r.currentUser=o.getCurrentUser(),r.errors=[],r.setting=s,r.passwordPattern=r.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",r.telephone=i,r.password="",r.oldPassword="",r.savePassword=function(){r.errors=[];var e={id:r.telephone.id,newPassword:r.password};r.currentUser.id==r.telephone.id&&(e.oldPassword=r.oldPassword);a.user.changePassword(e).$promise.then(function(){n.success({title:"Telephone password properly updated!"}),l()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.telephone.save",msg:e.data?JSON.stringify(e.data.message):e.toString()}),r.errors=e.data.errors||[{message:e.toString(),type:"api.telephone.changePassword"}]})},r.closeDialog=l,t.$watch("vm.password",function(e,n){_.isNil(r.oldPassword)||(e===r.oldPassword?t.telephoneForm.password.$setValidity("oldPasswordMatch",!1):t.telephoneForm.password.$setValidity("oldPasswordMatch",!0))})}e.$inject=["$scope","$mdDialog","toasty","api","telephone","setting","Auth"],angular.module("app.staff").controller("TelephonechangepasswordController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.telephone=c||e.params.telephone||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.changepassworddialog=function(e,n){t.show({controller:"TelephonechangepasswordController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/telephones/edit/changepassword/changepassword.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{telephone:e,setting:o,telephones:u.telephones?u.telephones.rows:[],crudPermissions:u.crudPermissions}})},u.alert=l.info,u.gotoTelephones=function(){e.go("app.staff.telephones",{},{reload:"app.staff.telephones"})},u.saveTelephone=function(){r.user.update({id:u.telephone.id},u.telephone).$promise.then(function(){l.success({title:"Telephone updated!",msg:u.telephone.name?u.telephone.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETuser",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_CONTEXTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:405}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;return n?n.autoAssociation?void 0:r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.contexts,{id:e.resourceId})}),t=null;if(u.telephone&&(t=_.find(u.contexts,{name:u.telephone.context})),t&&!_.some(n,["id",t.id])){var a=_.find(u.contexts,{id:t.id});a.canSelect=!1,n.push(a)}u.contexts=n}):r.voiceContext.get({fields:"id,name",sort:"name",defaultEntry:1}).$promise.then(function(e){u.contexts=e.rows||[]})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","telephone","userProfileSection"],angular.module("app.staff").controller("TelephoneController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.telephones=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="telephones",f.listOrder="",f.listOrderAsc=null,f.selectedTelephones=[],f.query={fields:"createdAt,updatedAt,id,role,fullname,name,email,password,description,autointernal,internal,voicemail,transport,nat,allow,callerid,context,callgroup,pickupgroup,videosupport,encryption,phone,mobile",role:"telephone",sort:"-updatedAt",limit:10,page:1},f.arraytransport=_.keyBy([{option:"udp",value:"'udp'"},{option:"tcp",value:"'tcp'"},{option:"ws",value:"'ws'"},{option:"wss",value:"'wss'"},{option:"tls",value:"'tls'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraynat=_.keyBy([{option:"force_rport",value:"'force_rport'"},{option:"comedia",value:"'comedia'"},{option:"yes",value:"'yes'"},{option:"no",value:"'no'"},{option:"never",value:"'never'"},{option:"route",value:"'route'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayallow=_.keyBy([{option:"ulaw",value:"'ulaw'"},{option:"alaw",value:"'alaw'"},{option:"gsm",value:"'gsm'"},{option:"g722",value:"'g722'"},{option:"g729",value:"'g729'"},{option:"opus",value:"'opus'"},{option:"h264",value:"'h264'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayvideosupport=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"},{option:"Always",value:"'always'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayencryption=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.staff.telephones.edit",{id:e.id,telephone:e,crudPermissions:f.crudPermissions})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("telephone")+"?").htmlContent("<b>"+(e.name||"telephone")+"</b> will be deleted.").ariaLabel("delete telephone").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getTelephones=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.user.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Telephones",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditTelephone=function(e,n){i.show({controller:"CreateOrEditTelephoneDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/telephones/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{telephone:n,telephones:f.telephones.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteTelephone=y,f.exportSelectedTelephones=function(){var e=angular.copy(f.selectedTelephones);return f.selectedTelephones=[],e},f.deleteSelectedTelephones=function(e){var n=i.confirm().title("Are you sure want to delete the selected telephones?").htmlContent("<b>"+f.selectedTelephones.length+" selected</b> will be deleted.").ariaLabel("delete Telephones").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedTelephones.forEach(function(e){y(e)}),f.selectedTelephones=[]})},f.deselectTelephones=function(){f.selectedTelephones=[]},f.selectAllTelephones=function(){f.selectedTelephones=f.telephones.rows};var b=!0,A=1;function E(e){f.telephones=e||{count:0,rows:[]}}function y(e){m.user.delete({id:e.id}).$promise.then(function(){_.remove(f.telephones.rows,{id:e.id}),f.telephones.count-=1,f.telephones.rows.length||f.getTelephones(),p.success({title:_.startCase("Telephone")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEuser"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEuser",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getTelephones())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","telephones","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.staff").controller("TelephonesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="STAFF.EDIT_USERPROFILE",g.userProfile=angular.copy(l),g.userProfiles=r,g.newUserProfile=!1,g.userProfile||(g.userProfile={crudPermissions:["r"],downloadAttachments:!0,downloadCallySquareRecordings:!0,downloadContactManagerLists:!0,downloadJscriptySessions:!0,downloadOmnichannelInteractions:!0,downloadScreenRecordings:!0,downloadVoiceRecordings:!0},g.title="STAFF.NEW_USERPROFILE",g.newUserProfile=!0),g.addNewUserProfile=function(){g.errors=[],d.userProfile.save(g.userProfile).$promise.then(function(e){var n,t;t=[],(n=e).crudPermissions.forEach(function(e){var n;switch(e){case"r":n="READ_PERMISSION";break;case"e":n="EDIT_PERMISSION";break;case"d":n="DELETE_PERMISSION"}t.push(s.instant("STAFF."+n))}),n.selectedcrudPermissions=t.join(", "),g.userProfiles.unshift(e.toJSON()),o.success({title:"UserProfile properly created",msg:g.userProfile.name?g.userProfile.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.userProfile.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.userProfile.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveUserProfile=function(){g.errors=[],d.userProfile.update({id:g.userProfile.id},g.userProfile).$promise.then(function(e){var n=_.find(g.userProfiles,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"UserProfile properly saved!",msg:g.userProfile.name?g.userProfile.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.userProfile.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.userProfile.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteUserProfile=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The userProfile will be deleted.").ariaLabel("Delete UserProfile").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.userProfile.delete({id:g.userProfile.id}).$promise.then(function(){_.remove(g.userProfiles,{id:g.userProfile.id}),o.success({title:"UserProfile properly deleted!",msg:(g.userProfile.name||"userProfile")+" has been deleted!"}),v(g.userProfile)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.userProfile.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.userProfile.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","userProfiles","userProfile","api","Auth","license","setting","crudPermissions"],angular.module("app.staff").controller("CreateOrEditUserProfileDialogController",e)}(),function(){"use strict";function e(n,a,i,e,t,s,o){var r=this;function l(e){n.hide(e)}r.newUserProfile=!0,r.userProfile=angular.copy(t),r.userProfiles=s,r.title=o.instant("STAFF.CLONE_USERPROFILE"),t&&t.name&&(r.title+=": "+t.name),r.cloneUserProfile=function(){return e.userProfile.clone({id:t.id},r.userProfile).$promise.then(function(e){var n,t;t=[],(n=e).crudPermissions.forEach(function(e){var n;switch(e){case"r":n="READ_PERMISSION";break;case"e":n="EDIT_PERMISSION";break;case"d":n="DELETE_PERMISSION"}t.push(o.instant("STAFF."+n))}),n.selectedcrudPermissions=t.join(", "),r.userProfiles.unshift(e.toJSON()),i.success({title:"UserProfile properly cloned",msg:r.userProfile.name?r.userProfile.name+" has been cloned!":""}),a.go("app.staff.userProfiles.edit",{id:e.id}),l(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){r.errors=e.data.errors||[{message:e.toString(),type:"api.userProfile.clone"}];for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.userProfile.clone",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},r.closeDialog=l}e.$inject=["$mdDialog","$state","toasty","api","userProfile","userProfiles","$translate"],angular.module("app.staff").controller("UserProfilecloneController",e)}(),function(){"use strict";function e(t,o,r,l,d,e,n,c){var m=this;function u(e,n){switch(e.allResourcesEnabled="full"===n,n){case"full":return _.find(m.statusList,["tag","full"]);case"partial":return _.find(m.statusList,["tag","partial"]);case"disabled":return _.find(m.statusList,["tag","disabled"]);case"unlicensed":return _.find(m.statusList,["tag","unlicensed"]);case"unknown":default:return _.find(m.statusList,["tag","unknown"])}}function p(e){return l(function(n,t){var o,a;void 0!==e.channel&&_.includes(e.route,"Queue")?(a=e,l(function(n,t){var e=void 0!==a.channel&&"bull"===a.channel?"outbound":"inbound";return d[a.route].get({fields:"id,name,strategy,type",channel:"bull"===a.channel?"voice":a.channel,type:e,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})).then(function(e){n(e)}).catch(function(e){t(e)}):(o=e,l(function(a,n){switch(o.route){case"voiceExtension":var e;switch(o.title){case"InboundRoutes":e="inbound";break;case"OutboundRoutes":e="outbound";break;case"InternalRoutes":e="internal"}break;case"interval":var t=!0;break;case"disposition":var i=!0;break;case"user":var s;switch(o.title){case"Agents":s="agent";break;case"Telephones":s="telephone";break;case"Users":s="user"}}if("Reports"===o.title){if(!o.reportType)return d.analyticDefaultReport.get({nolimit:!0}).$promise.then(function(t){d.analyticCustomReport.get({nolimit:!0}).$promise.then(function(e){var n=_.union(t.rows,e.rows);a({count:n.length,rows:n.rows})})}).catch(function(e){n(e)});switch(o.reportType){case"default":o.route="analyticDefaultReport";break;case"custom":o.route="analyticCustomReport"}}return d[o.route].get({role:s||void 0,type:e||void 0,VoiceExtensionId:e?"null":void 0,IntervalId:t?"null":void 0,MailAccountId:i?"null":void 0,FaxAccountId:i?"null":void 0,SmsAccountId:i?"null":void 0,OpenchannelAccountId:i?"null":void 0,ChatWebsiteId:i?"null":void 0,WhatsappAccountId:i?"null":void 0,ListId:i?"null":void 0,nolimit:!0}).$promise.then(function(e){a(e)}).catch(function(e){n(e)})})).then(function(e){n(e)}).catch(function(e){t(e)})})}function g(e,n,t){var a=e&&0<e.length?e[0]:null;if(!a)return t;var i,s,o=_.find(n,["sectionId",a.id]);return o?(n=_.remove(n,["sectionId",a.id]),(i=a,s=o.id,l(function(n,t){d.userProfileResource.get({sectionId:s}).$promise.then(function(n){return p(i).then(function(e){return _.differenceBy(n.rows,e.rows,"id")})}).then(function(e){_.isEmpty(e)?n():t()}).catch(function(e){t(e)})})).then(function(){return t="full",g(e.shift(),n,t)}).catch(function(e){return l.reject(e)})):void 0}function a(a){var t="Marketplace"===a.title?"AppZone":a.title;m.license?void 0===a.permissions||a.permissions.association?void 0===a.license||m.license[a.license]?d.userProfileSection.get({userProfileId:m.userProfile.id,category:t}).$promise.then(function(e){var n=e&&e.rows&&0<e.rows.length?e.rows:[];if("Dashboards"===a.title)return _.isEmpty(n)?"disabled":n[0].autoAssociation?"full":d.userProfileResource.get({sectionId:n[0].id,resourceId:101}).$promise.then(function(e){return(e&&e.rows?e.rows[0]:null)?"full":"partial"});var t=_.filter(a.children,function(e){return void 0!==e.permissions&&e.permissions.hidden?void 0:e});return n.length!==t.length?0===n.length?"disabled":"partial":_.every(n,["autoAssociation",!0])?"full":g(_.filter(t,function(e){return void 0===e.permissions||e.permissions.association?e:void 0}),n,"partial")}).then(function(e){a.status=u(a,e)}).catch(function(e){var n=e?"unknown":"partial";a.status=u(a,n),e&&c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GETRESOURCES("+t.toUpperCase()+")",msg:e.status?JSON.stringify(e.data):e.toString()})}):a.status=u(a,"unlicensed"):d.userProfileSection.get({userProfileId:m.userProfile.id,sectionId:a.id}).$promise.then(function(e){var n=(e&&1===e.rows.length?e.rows[0]:null)?"full":"disabled";a.status=u(a,n)}):a.status=u(a,"unknown")}m.userProfile={},m.license={},m.navigation=e.getNavigation(),m.modules=m.navigation[0].children,m.statusList=[{id:0,name:"Fully Enabled",color:"green-A700-bg",info:"All resources enabled",tag:"full"},{id:1,name:"Partially Enabled",color:"orange-A700-bg",info:"Some resources enabled",tag:"partial"},{id:2,name:"Disabled",color:"grey-A400-bg",info:"No resources enabled",tag:"disabled"},{id:3,name:"Unlicensed",color:"red-A700-bg",info:"Module not included in the license",tag:"unlicensed"},{id:4,name:"Unknown",color:"grey-A700-bg",info:"Unknown status",tag:"unknown"}],m.dashboardSections=[{title:"Dashboards",translate:"DASHBOARDS.DASHBOARDS",id:100}],m.init=function(e,n){m.userProfile=e,m.license=n},m.onChangeEnableAllResources=function(n){var e=void 0!==n.permissions&&!n.permissions.association,a="Marketplace"===n.title?"AppZone":n.title;if("Fully Enabled"!==n.status.name){var i=[];if(e)return i.push({category:a,sectionId:n.id,name:a,enabled:!0,crudPermissions:"red"}),d.userProfile.addSections({id:m.userProfile.id},i).$promise.then(function(){n.status=u(n,"full"),c.success({title:r.instant("STAFF.NOTIFICATIONS.PERMISSIONS_ENABLED_ALL_SUCCESS_TITLE",{sectionName:r.instant(n.translate),userProfileName:m.userProfile.name}),msg:r.instant("STAFF.NOTIFICATIONS.PERMISSIONS_ENABLED_ALL_SUCCESS_MESSAGE_NO_RESOURCES",{sectionName:r.instant(n.translate),userProfileName:m.userProfile.name})})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:USERPROFILE.ADDSECTIONS",msg:e.status?JSON.stringify(e.data):e.toString()})});var t=o.confirm({skipHide:!0}).title("Warning").textContent(r.instant("STAFF.PERMISSIONS_WARNING_ENABLE_ALL",{sectionName:r.instant(n.translate)})).ariaLabel("Warning").ok(r.instant("STAFF.CONFIRM")).cancel(r.instant("STAFF.CANCEL"));o.show(t).then(function(){switch(a){case"Dashboards":_.map(m.dashboardSections,function(e){i.push({category:a,sectionId:e.id,name:e.title,enabled:!0,autoAssociation:!0,crudPermissions:_.map(m.userProfile.crudPermissions).join("")})});break;default:_.map(n.children,function(e){var n=!(void 0===e.permissions||!e.permissions.hidden);if(!n){var t=e.title;switch(a){case"CallySquare":t="Projects"===t?"SquareProjects":t}i.push({category:a,sectionId:e.id,name:t,enabled:!0,autoAssociation:!0,crudPermissions:_.map(m.userProfile.crudPermissions).join("")})}})}return d.userProfile.addSections({id:m.userProfile.id},i).$promise.then(function(){n.status=u(n,"full"),c.success({title:r.instant("STAFF.NOTIFICATIONS.PERMISSIONS_ENABLED_ALL_SUCCESS_TITLE",{sectionName:r.instant(n.translate),userProfileName:m.userProfile.name}),msg:r.instant("STAFF.NOTIFICATIONS.PERMISSIONS_ENABLED_ALL_SUCCESS_MESSAGE",{sectionName:r.instant(n.translate),userProfileName:m.userProfile.name})})})}).catch(function(e){e?c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:USERPROFILE.ADDSECTIONS",msg:e.status?JSON.stringify(e.data):e.toString()}):n.status=u(n,n.status.tag)})}else if("Fully Enabled"===n.status.name){n.status=u(n,"disabled");var s=[];switch(a){case"Settings":case"Help":s=[n.id];break;case"Dashboards":s=_.map(m.dashboardSections,function(e){return e.id});break;default:s=_.map(n.children,function(e){return e.id})}return d.userProfile.removeSections({id:m.userProfile.id,ids:s}).$promise.then(function(){c.success({title:r.instant("STAFF.NOTIFICATIONS.PERMISSIONS_DISABLED_ALL_SUCCESS_TITLE",{sectionName:r.instant(n.translate),userProfileName:m.userProfile.name}),msg:r.instant("STAFF.NOTIFICATIONS.PERMISSIONS_DISABLED_ALL_SUCCESS_MESSAGE",{sectionName:r.instant(n.translate),userProfileName:m.userProfile.name})})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:USERPROFILE.REMOVESECTIONS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},m.manageResources=function(e,n){o.show({controller:"UserProfilepermissionsmanageController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/userProfiles/edit/permissionsmanage/permissionsmanage.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!1,locals:{userProfile:m.userProfile,userProfiles:[],section:e}}).then(function(){a(e)})},m.checkSectionResources=a}e.$inject=["$document","$mdDialog","$translate","$q","api","msNavigationService","Auth","toasty"],angular.module("app.staff").controller("UserProfilePermissionsController",e)}(),function(){"use strict";function e(n,t,i,o,r,e,a,l,s,d){var c=this;function m(){var a=void 0!==c.selectedSection.pending&&c.selectedSection.pending;return i(function(t,n){r.userProfileSection.get({userProfileId:c.userProfile.id,sectionId:c.selectedSection.id}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;a||(c.selectedSection.enabled=!!n&&!!n.enabled,c.selectedSection.autoAssociation=!!n&&!!n.autoAssociation,c.selectedSection.crudPermissions=v(n?n.crudPermissions:c.userProfile.crudPermissions)),t(n)}).catch(function(e){n(e)})})}function u(){return i(function(n,t){c.loadedSection?r.userProfileResource.get({sectionId:c.loadedSection.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)}):n(null)})}function p(){return i(function(n,t){void 0!==c.selectedSection.channel&&_.includes(c.selectedSection.route,"Queue")?i(function(n,t){var e=void 0!==c.selectedSection.channel&&"bull"===c.selectedSection.channel?"outbound":"inbound";return r[c.selectedSection.route].get({fields:"id,name,strategy,type",channel:"bull"===c.selectedSection.channel?"voice":c.selectedSection.channel,type:e,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){n(e)}).catch(function(e){t(e)}):i(function(n,t){var e,a;if("voiceExtension"===c.selectedSection.route)switch(c.selectedSection.title){case"InboundRoutes":e="inbound";break;case"OutboundRoutes":e="outbound";break;case"InternalRoutes":e="internal"}if("user"===c.selectedSection.route)switch(c.selectedSection.title){case"Agents":a="agent";break;case"Telephones":a="telephone";break;case"Users":a="user"}if("interval"===c.selectedSection.route)var i=!0;if("disposition"===c.selectedSection.route)var s=!0;if("Reports"===c.selectedSection.title&&(c.selectedSection.route="default"===c.selectedSection.reportType?"analyticDefaultReport":"analyticCustomReport"),"Dashboards"!==c.selectedSection.title)return r[c.selectedSection.route].get({role:a||void 0,type:e||void 0,VoiceExtensionId:e?"null":void 0,IntervalId:i?"null":void 0,MailAccountId:s?"null":void 0,FaxAccountId:s?"null":void 0,SmsAccountId:s?"null":void 0,OpenchannelAccountId:s?"null":void 0,ChatWebsiteId:s?"null":void 0,WhatsappAccountId:s?"null":void 0,ListId:s?"null":void 0,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)});n({count:1,rows:[{id:101,name:l.instant("DASHBOARDS.GENERAL")}]})}).then(function(e){n(e)}).catch(function(e){t(e)})})}function g(){var i=void 0!==c.selectedSection.pending&&c.selectedSection.pending,s=[];return u().then(function(e){var n;return s=e&&e.rows?e.rows:[],"Reports"===c.selectedSection.title&&(c.associatedReports=c.associatedReports?c.associatedReports:s,n=c.associatedReports,s=_.filter(n,{type:"default"===c.selectedSection.reportType?"DefaultReports":"CustomReports"})),void 0===c.selectedSection.permissions||c.selectedSection.permissions.association?p():{rows:[]}}).then(function(e){c.items=e.rows?_.map(e.rows,function(e){var n,t;return"Reports"===c.selectedSection.title&&(e.fullPath=(n=e.parent,t=c.treeStructure[0].text,t=function e(n,t,a){if(!a||_.isEmpty(a.children))return n;var a=_.find(a.children,function(e){return _.includes(t,e.id)?e:void 0});return n+=a?"/"+a.text:"",e(n,t,a)}(t,n,c.treeStructure[0])).replace(" ","_")),e.isValid=!0,e}):[],i||(c.selectedSection.selectedItems=_.map(s,function(e){return _.find(c.items,{id:e.resourceId})}));var n,t=_.differenceBy(c.selectedSection.selectedItems,c.items,"id");switch(_.isEmpty(t)||(c.selectedSection.selectedItems=_.pullAllBy(c.selectedSection.selectedItems,t,"id")),c.selectedSection.title){case"Contexts":c.selectedSection.selectedItems=_.filter(c.items,function(e){return e.defaultEntry?(e.isValid=!1,e):void 0!==_.find(s,{resourceId:e.id})?(e.isValid=!0,e):void 0});break;case"MusicOnHolds":c.selectedSection.selectedItems=_.filter(c.items,function(e){return e.defaultEntry?(e.isValid=!1,e):void 0!==_.find(s,{resourceId:e.id})?(e.isValid=!0,e):void 0});break;case"Reports":var a=(n=c.allReportsSelected,_.filter(n,function(e){return _.startsWith(e.parent,"default"===c.selectedSection.reportType?"motion":"custom")}));c.selectedSection.selectedItems=b(c.selectedSection.selectedItems),c.selectedSection.selectedItems=_.unionBy(c.selectedSection.selectedItems,a,"id")}c.dualMultiselectOptions.selectedItems=c.selectedSection.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.items,c.dualMultiselectOptions.selectedItems,"id")}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET"+c.selectedSection.title.toUpperCase(),msg:e.status?JSON.stringify(e.data):e.toString()})})}function v(e){return e&&(c.selectedSection.allowEdit=!!_.includes(e,"e"),c.selectedSection.allowDelete=!!_.includes(e,"d")),function(){var e=["r"];if(c.selectedSection.allowEdit)e.push("e");else{var n=_.indexOf(e,["e"]);0<n&&c.selectedSection.crudPermissions.replace("e","")}if(c.selectedSection.allowDelete)e.push("d");else{var n=_.indexOf(e,["d"]);0<n&&c.selectedSection.crudPermissions.replace("d","")}return e}()}function h(e){var n=_.findIndex(c.subsections,function(e){return e.id==c.selectedSection.id});c.subsections[n].pending=e,f()}function f(){return c.pendingChanges=_.some(c.subsections,["pending",!0])}function b(e){return _.remove(e,function(e){return _.startsWith(e.parent,"default"===c.selectedSection.reportType?"motion":"custom")})}function A(){_.isEmpty(c.selectedSection.selectedItems)?c.allReportsSelected=_.remove(c.allReportsSelected,function(e){return e.type===("default"===c.selectedSection.reportType?"CustomReports":"DefaultReports")}):c.selectedSection.selectedItems.forEach(function(e){_.some(c.allReportsSelected,{id:e.id,parent:e.parent})||c.allReportsSelected.push(e)})}c.userProfile=e,c.penalty=0,c.section=angular.copy(d),c.title=l.instant("STAFF.PERMISSIONS_SECTION_TITLE",{sectionName:l.instant(c.section.translate)}),c.items=[],c.selectedItems=[],c.subsections=_.filter(c.section.children,function(e){return void 0!==e.permissions&&e.permissions.hidden?void 0:e}),c.dashboardSections=[{title:"Dashboards",translate:"DASHBOARDS.DASHBOARDS",id:100}],c.dashboardItems=[],"Dashboards"===c.section.title&&(c.dashboardItems=c.subsections,c.subsections=c.dashboardSections),c.selectedSection=null,c.loadedSection=null,c.allReportsSelected=[],c.closeDialog=function(e){if(c.pendingChanges){var n=t.confirm({skipHide:!0}).title("Warning").textContent(l.instant("STAFF.PERMISSIONS_WARNING_CLOSE")).ariaLabel("Warning").targetEvent(e).ok(l.instant("STAFF.CLOSE")).cancel(l.instant("STAFF.CANCEL"));t.show(n).then(function(){t.hide()})}else t.hide()},c.onChangeSection=function(){return m().then(function(e){if(c.loadedSection=e,"Reports"===c.selectedSection.title)return i(function(n,t){r.analyticTreeReport.get({}).$promise.then(function(e){c.treeReports=e.rows||[],n(c.treeReports)}).catch(function(e){t(e)})}).then(function(){if(!c.selectedSection.reportType)return u().then(function(e){c.allReportsSelected=e?_.map(e.rows,function(e){return{id:e.resourceId,name:e.name,type:e.type}}):[]})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TREE_REPORT_STRUCTURE",msg:e.data?JSON.stringify(e.data):e.toString()})});g()}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET"+c.selectedSection.title.toUpperCase(),msg:e.status?JSON.stringify(e.data):e.toString()})})},c.onChangeVisibility=function(){c.selectedSection.enabled=!c.selectedSection.enabled,h(!0)},c.onChangeAutoAssociation=function(){if(!c.selectedSection.autoAssociation){for(var e=[],n=0;n<c.dualMultiselectOptions.items.length;n++)e.push(c.dualMultiselectOptions.items[n]),c.dualMultiselectOptions.selectedItems.push(c.dualMultiselectOptions.items[n]);c.dualMultiselectOptions.items=[],c.dualMultiselectOptions.transferCallback(e,!1)}h(!0)},c.onChangeReportType=function(){c.treeStructure="default"===c.selectedSection.reportType?c.treeReports[0]?angular.fromJson(c.treeReports[0].tree):[]:c.treeReports[1]?angular.fromJson(c.treeReports[1].tree):[],c.selectedSection.selectedItems&&(c.allReportsSelected=b(c.allReportsSelected),A());g()},c.setPermission=function(e){"edit"===e?c.selectedSection.allowEdit=!c.selectedSection.allowEdit:"delete"===e&&(c.selectedSection.allowDelete=!c.selectedSection.allowDelete);c.selectedSection.crudPermissions=v(),h(!0)},c.saveSection=function(){var a="Marketplace"===c.section.title?"AppZone":c.section.title,e=_(c.subsections).filter({pending:!0}).map(function(e){var n="CallySquare"===a&&"Projects"===e.title?"SquareProjects":e.title,t="Reports"===n?c.allReportsSelected:e.selectedItems;return"Integrations"===a&&(e.autoAssociation=!0),{category:a,sectionId:e.id,name:n,enabled:e.enabled,autoAssociation:e.autoAssociation,crudPermissions:_.map(e.crudPermissions).join(""),Resources:_.map(t,function(e){return{name:e.name,resourceId:e.id,type:function(e,n){if("Reports"!==e)return e;{if(n.parent){var t=_.startsWith(n.parent,"motion")?"Default":"Custom";return t+e}return n.type}}(n,e)}})}}).value();return r.userProfile.addSections({id:c.userProfile.id},e).$promise.then(function(){c.subsections.forEach(function(e){e.pending=void 0}),c.associatedReports=null,f(),"Reports"!==c.selectedSection.title||c.selectedSection.reportType||n.userProfileForm.$setPristine(),o.success({title:l.instant("STAFF.NOTIFICATIONS.PERMISSIONS_SAVED_SUCCESS_TITLE",{sectionName:l.instant(a.translate)}),msg:l.instant("STAFF.NOTIFICATIONS.PERMISSIONS_SAVED_SUCCESS_MESSAGE")})}).then(function(){return m().then(function(e){c.loadedSection=e})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:USERPROFILE.ADDSECTIONS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",line4:"fullPath",labelAll:l.instant("STAFF.PERMISSIONS_ALL_RESOURCES"),labelSelected:l.instant("STAFF.PERMISSIONS_SELECTED_RESOURCES"),transferCallback:function(e,n){h(!0),n?(c.selectedSection.selectedItems=_.pullAllBy(c.selectedSection.selectedItems,e,"id"),c.selectedSection.autoAssociation=!1):c.selectedSection.selectedItems=_.unionBy(c.selectedSection.selectedItems,e,"id"),"Reports"===c.selectedSection.title&&A()}}}e.$inject=["$scope","$mdDialog","$q","toasty","api","userProfile","userProfiles","$translate","Auth","section"],angular.module("app.staff").controller("UserProfilepermissionsmanageController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.userProfile=c||e.params.userProfile||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.permissionsmanagedialog=function(e,n){t.show({controller:"UserProfilepermissionsmanageController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/userProfiles/edit/permissionsmanage/permissionsmanage.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{userProfile:e,userProfiles:u.userProfiles?u.userProfiles.rows:[],crudPermissions:u.crudPermissions}})},u.clonedialog=function(e,n){t.show({controller:"UserProfilecloneController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/userProfiles/edit/clone/clone.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{userProfile:e,userProfiles:u.userProfiles?u.userProfiles.rows:[],crudPermissions:u.crudPermissions}})},u.alert=l.info,u.gotoUserProfiles=function(){e.go("app.staff.userProfiles",{},{reload:"app.staff.userProfiles"})},u.saveUserProfile=function(){r.userProfile.update({id:u.userProfile.id},u.userProfile).$promise.then(function(){l.success({title:"UserProfile updated!",msg:u.userProfile.name?u.userProfile.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETuserProfile",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","userProfile","userProfileSection"],angular.module("app.staff").controller("UserProfileController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.userProfiles=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="userProfiles",f.listOrder="",f.listOrderAsc=null,f.selectedUserProfiles=[],f.query={fields:"createdAt,updatedAt,id,name,description,crudPermissions,privacyEnabled,downloadAttachments,downloadCallySquareRecordings,downloadContactManagerLists,downloadJscriptySessions,downloadOmnichannelInteractions,downloadScreenRecordings,downloadVoiceRecordings",sort:"-updatedAt",limit:10,page:1},f.arraycrudPermissions=_.keyBy([{option:"Read_permission",value:"'r'",disabled:!0},{option:"Edit_permission",value:"'e'"},{option:"Delete_permission",value:"'d'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.userProfiles&&0<f.userProfiles.count&&f.userProfiles.rows.forEach(function(e){var n=[];e.crudPermissions.forEach(function(e){n.push(f.arraycrudPermissions[e].option)});var t=[];n.forEach(function(e){t.push(r.instant("STAFF."+e.toUpperCase()))}),e.selectedcrudPermissions=t.join(", ")}),f.editstate=function(e,n){t.go("app.staff.userProfiles.edit",{id:e.id,userProfile:e,crudPermissions:f.crudPermissions})},f.clonedialog=function(e,n){i.show({controller:"UserProfilecloneController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/userProfiles/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{userProfile:e,userProfiles:f.userProfiles?f.userProfiles.rows:[],crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("userProfile")+"?").htmlContent("<b>"+(e.name||"userProfile")+"</b> will be deleted.").ariaLabel("delete userProfile").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getUserProfiles=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.userProfile.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="UserProfiles",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditUserProfile=function(e,n){i.show({controller:"CreateOrEditUserProfileDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/userProfiles/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{userProfile:n,userProfiles:f.userProfiles.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteUserProfile=y,f.exportSelectedUserProfiles=function(){var e=angular.copy(f.selectedUserProfiles);return f.selectedUserProfiles=[],e},f.deleteSelectedUserProfiles=function(e){var n=i.confirm().title("Are you sure want to delete the selected userProfiles?").htmlContent("<b>"+f.selectedUserProfiles.length+" selected</b> will be deleted.").ariaLabel("delete UserProfiles").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedUserProfiles.forEach(function(e){y(e)}),f.selectedUserProfiles=[]})},f.deselectUserProfiles=function(){f.selectedUserProfiles=[]},f.selectAllUserProfiles=function(){f.selectedUserProfiles=f.userProfiles.rows};var b=!0,A=1;function E(e){f.userProfiles=e||{count:0,rows:[]}}function y(e){m.userProfile.delete({id:e.id}).$promise.then(function(){_.remove(f.userProfiles.rows,{id:e.id}),f.userProfiles.count-=1,f.userProfiles.rows.length||f.getUserProfiles(),p.success({title:_.startCase("UserProfile")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEuserProfile"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEuserProfile",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getUserProfiles())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","userProfiles","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.staff").controller("UserProfilesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="STAFF.EDIT_USER",g.user=angular.copy(l),g.users=r,g.newUser=!1,g.user||(g.user={role:"user",autointernal:!0,context:"from-sip"},g.title="STAFF.NEW_USER",g.newUser=!0),g.addNewUser=function(){g.errors=[],d.user.save(g.user).$promise.then(function(e){g.users.unshift(e.toJSON()),o.success({title:"User properly created",msg:g.user.name?g.user.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveUser=function(){g.errors=[],d.user.update({id:g.user.id},g.user).$promise.then(function(e){var n=_.find(g.users,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"User properly saved!",msg:g.user.name?g.user.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteUser=function(e){if(c.getCurrentUser().id===g.user.id)return o.error({title:"User not deleted!",msg:"You can't remove yourself"});g.errors=[];var n=a.confirm().title("Are you sure?").content("The user will be deleted.").ariaLabel("Delete User").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.user.delete({id:g.user.id}).$promise.then(function(){_.remove(g.users,{id:g.user.id}),o.success({title:"User properly deleted!",msg:(g.user.name||"user")+" has been deleted!"}),v(g.user)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,d.userProfile.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.userProfiles=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_USERPROFILES",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","users","user","api","Auth","license","setting","crudPermissions"],angular.module("app.staff").controller("CreateOrEditUserDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i){var s=this;function o(){e.hide()}s.currentUser=i.getCurrentUser(),s.errors=[],s.user=a,s.generateApiKey=function(){s.errors=[],t.user.createApiKey({id:s.user.id}).$promise.then(function(e){s.user.apiKey=e.api_key||"N/A",n.success({title:"User API key updated!"}),o()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.createApiKey",msg:e.data?JSON.stringify(e.data.message):e.toString()}),s.errors=e.data.errors||[{message:e.toString(),type:"api.user.createApiKey"}]})},s.removeApiKey=function(){s.errors=[],t.user.removeApiKey({id:s.user.id}).$promise.then(function(){s.user.apiKey="N/A",n.success({title:"User API key removed!"}),o()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.removeApiKey",msg:e.data?JSON.stringify(e.data.message):e.toString()}),s.errors=e.data.errors||[{message:e.toString(),type:"api.user.removeApiKey"}]})},s.closeDialog=o}e.$inject=["$mdDialog","toasty","api","user","Auth"],angular.module("app.staff").controller("UserapikeymanagerController",e)}(),function(){"use strict";function e(e,a){var i=this;i.user={},i.crudPermissions,i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.user.images.unshift(t),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.user.images,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e,n){i.user=angular.copy(e),i.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.ngFlowOptions.target="api/users/"+i.user.id+"/avatar",i.user.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.staff").controller("Userchange_avatarController",e)}(),function(){"use strict";function e(t,e,n,a,i,s,o){var r=this;function l(){e.hide()}r.currentUser=o.getCurrentUser(),r.errors=[],r.setting=s,r.passwordPattern=r.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",r.user=i,r.password="",r.oldPassword="",r.savePassword=function(){r.errors=[];var e={id:r.user.id,newPassword:r.password};r.currentUser.id==r.user.id&&(e.oldPassword=r.oldPassword);a.user.changePassword(e).$promise.then(function(){n.success({title:"User password properly updated!"}),l()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.save",msg:e.data?JSON.stringify(e.data.message):e.toString()}),r.errors=e.data.errors||[{message:e.toString(),type:"api.user.changePassword"}]})},r.closeDialog=l,t.$watch("vm.password",function(e,n){_.isNil(r.oldPassword)||(e===r.oldPassword?t.userForm.password.$setValidity("oldPasswordMatch",!1):t.userForm.password.$setValidity("oldPasswordMatch",!0))})}e.$inject=["$scope","$mdDialog","toasty","api","user","setting","Auth"],angular.module("app.staff").controller("UserchangepasswordController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.user=c||e.params.user||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.apikeymanagerdialog=function(e,n){t.show({controller:"UserapikeymanagerController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/users/edit/apikeymanager/apikeymanager.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{user:e,users:u.users?u.users.rows:[],crudPermissions:u.crudPermissions}})},u.changepassworddialog=function(e,n){t.show({controller:"UserchangepasswordController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/users/edit/changepassword/changepassword.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{user:e,setting:o,users:u.users?u.users.rows:[],crudPermissions:u.crudPermissions}})},u.alert=l.info,u.gotoUsers=function(){e.go("app.staff.users",{},{reload:"app.staff.users"})},u.saveUser=function(){u.user=_.omit(u.user,"userpic"),r.user.update({id:u.user.id},u.user).$promise.then(function(){l.success({title:"User updated!",msg:u.user.name?u.user.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETuser",msg:e.data?JSON.stringify(e.data):e.toString()})})},r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_CONTEXTS",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.userProfile.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.userProfiles=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_USERPROFILES",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.user.getApiKey({id:u.user.id}).$promise.then(function(e){u.user.apiKey=e.api_key?e.api_key:"N/A"}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_APIKEY",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","user","userProfileSection"],angular.module("app.staff").controller("UserController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.users=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="users",f.listOrder="",f.listOrderAsc=null,f.selectedUsers=[],f.query={fields:"createdAt,updatedAt,role,userProfileId,id,fullname,name,email,phone,mobile,userpic,password,description,autointernal,internal,transport,nat,allow,context,callgroup,pickupgroup,passwordResetAt,apiKey,videosupport,disabled,blocked",role:"admin,user",sort:"-updatedAt",limit:10,page:1},f.arrayrole=_.keyBy([{option:"Admin",value:"'admin'"},{option:"User",value:"'user'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraytransport=_.keyBy([{option:"udp",value:"'udp'"},{option:"tcp",value:"'tcp'"},{option:"ws",value:"'ws'"},{option:"wss",value:"'wss'"},{option:"tls",value:"'tls'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraynat=_.keyBy([{option:"force_rport",value:"'force_rport'"},{option:"comedia",value:"'comedia'"},{option:"yes",value:"'yes'"},{option:"no",value:"'no'"},{option:"never",value:"'never'"},{option:"route",value:"'route'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayallow=_.keyBy([{option:"ulaw",value:"'ulaw'"},{option:"alaw",value:"'alaw'"},{option:"gsm",value:"'gsm'"},{option:"g722",value:"'g722'"},{option:"g729",value:"'g729'"},{option:"opus",value:"'opus'"},{option:"h264",value:"'h264'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayvideosupport=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"},{option:"Always",value:"'always'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.staff.users.edit",{id:e.id,user:e,crudPermissions:f.crudPermissions})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("user")+"?").htmlContent("<b>"+(e.name||"user")+"</b> will be deleted.").ariaLabel("delete user").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getUsers=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.user.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Users",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditUser=function(e,n){i.show({controller:"CreateOrEditUserDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/users/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{user:n,users:f.users.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteUser=y,f.exportSelectedUsers=function(){var e=angular.copy(f.selectedUsers);return f.selectedUsers=[],e},f.deleteSelectedUsers=function(e){var n=i.confirm().title("Are you sure want to delete the selected users?").htmlContent("<b>"+f.selectedUsers.length+" selected</b> will be deleted.").ariaLabel("delete Users").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedUsers.forEach(function(e){y(e)}),f.selectedUsers=[]})},f.deselectUsers=function(){f.selectedUsers=[]},f.selectAllUsers=function(){f.selectedUsers=f.users.rows},m.userProfile.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.userProfiles=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_USERPROFILES",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.users=e||{count:0,rows:[]}}function y(e){m.user.delete({id:e.id}).$promise.then(function(){_.remove(f.users.rows,{id:e.id}),f.users.count-=1,f.users.rows.length||f.getUsers(),p.success({title:_.startCase("User")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEuser"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEuser",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getUsers())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","users","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.staff").controller("UsersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.cannedAnswers=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="cannedAnswers",f.listOrder="",f.listOrderAsc=null,f.selectedCannedAnswers=[],f.query={fields:"createdAt,updatedAt,id,key,value,description",sort:"-updatedAt",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/cannedAnswers/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{cannedAnswer:e,cannedAnswers:f.cannedAnswers.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("cannedAnswer")+"?").htmlContent("<b>"+(e.name||"cannedAnswer")+"</b> will be deleted.").ariaLabel("delete cannedAnswer").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getCannedAnswers=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.cannedAnswer.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="CannedAnswers",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditCannedAnswer=function(e,n){i.show({controller:"CreateOrEditCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/cannedAnswers/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{cannedAnswer:n,cannedAnswers:f.cannedAnswers.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteCannedAnswer=y,f.exportSelectedCannedAnswers=function(){var e=angular.copy(f.selectedCannedAnswers);return f.selectedCannedAnswers=[],e},f.deleteSelectedCannedAnswers=function(e){var n=i.confirm().title("Are you sure want to delete the selected cannedAnswers?").htmlContent("<b>"+f.selectedCannedAnswers.length+" selected</b> will be deleted.").ariaLabel("delete CannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedCannedAnswers.forEach(function(e){y(e)}),f.selectedCannedAnswers=[]})},f.deselectCannedAnswers=function(){f.selectedCannedAnswers=[]},f.selectAllCannedAnswers=function(){f.selectedCannedAnswers=f.cannedAnswers.rows};var b=!0,A=1;function E(e){f.cannedAnswers=e||{count:0,rows:[]}}function y(e){m.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(f.cannedAnswers.rows,{id:e.id}),f.cannedAnswers.count-=1,f.cannedAnswers.rows.length||f.getCannedAnswers(),p.success({title:_.startCase("CannedAnswer")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEcannedAnswer"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEcannedAnswer",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getCannedAnswers())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","cannedAnswers","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("CannedAnswersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_CANNEDANSWER",g.cannedAnswer=angular.copy(l),g.cannedAnswers=r,g.newCannedAnswer=!1,g.cannedAnswer||(g.cannedAnswer={},g.title="TOOLS.NEW_CANNEDANSWER",g.newCannedAnswer=!0),g.addNewCannedAnswer=function(){g.errors=[],d.cannedAnswer.save(g.cannedAnswer).$promise.then(function(e){g.cannedAnswers.unshift(e.toJSON()),o.success({title:"CannedAnswer properly created",msg:g.cannedAnswer.name?g.cannedAnswer.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveCannedAnswer=function(){g.errors=[],d.cannedAnswer.update({id:g.cannedAnswer.id},g.cannedAnswer).$promise.then(function(e){var n=_.find(g.cannedAnswers,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"CannedAnswer properly saved!",msg:g.cannedAnswer.name?g.cannedAnswer.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteCannedAnswer=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The cannedAnswer will be deleted.").ariaLabel("Delete CannedAnswer").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cannedAnswer.delete({id:g.cannedAnswer.id}).$promise.then(function(){_.remove(g.cannedAnswers,{id:g.cannedAnswer.id}),o.success({title:"CannedAnswer properly deleted!",msg:(g.cannedAnswer.name||"cannedAnswer")+" has been deleted!"}),v(g.cannedAnswer)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","cannedAnswers","cannedAnswer","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditCannedAnswerDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_CUSTOMDASHBOARD",g.customDashboard=angular.copy(l),g.customDashboards=r,g.newCustomDashboard=!1,g.customDashboard||(g.customDashboard={},g.title="TOOLS.NEW_CUSTOMDASHBOARD",g.newCustomDashboard=!0),g.addNewCustomDashboard=function(){g.errors=[],d.dashboard.save(g.customDashboard).$promise.then(function(e){g.customDashboards.unshift(e.toJSON()),o.success({title:"CustomDashboard properly created",msg:g.customDashboard.name?g.customDashboard.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.dashboard.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.dashboard.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveCustomDashboard=function(){g.errors=[],d.dashboard.update({id:g.customDashboard.id},g.customDashboard).$promise.then(function(e){var n=_.find(g.customDashboards,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"CustomDashboard properly saved!",msg:g.customDashboard.name?g.customDashboard.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.dashboard.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.dashboard.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteCustomDashboard=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The customDashboard will be deleted.").ariaLabel("Delete CustomDashboard").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.dashboard.delete({id:g.customDashboard.id}).$promise.then(function(){_.remove(g.customDashboards,{id:g.customDashboard.id}),o.success({title:"CustomDashboard properly deleted!",msg:(g.customDashboard.name||"customDashboard")+" has been deleted!"}),v(g.customDashboard)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.dashboard.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.dashboard.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","customDashboards","customDashboard","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditCustomDashboardDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.customDashboards=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="customDashboards",f.listOrder="",f.listOrderAsc=null,f.selectedCustomDashboards=[],f.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.tools.customDashboards.edit",{id:e.id,customDashboard:e,crudPermissions:f.crudPermissions})},f.clonedialog=function(e,n){i.show({controller:"CustomDashboardcloneController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/customDashboards/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{customDashboard:e,customDashboards:f.customDashboards?f.customDashboards.rows:[],crudPermissions:f.crudPermissions}})},f.gotodashboardgoto=function(e,n){t.go("app.dashboards.custom",{id:e.id})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("customDashboard")+"?").htmlContent("<b>"+(e.name||"customDashboard")+"</b> will be deleted.").ariaLabel("delete customDashboard").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getCustomDashboards=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.dashboard.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="CustomDashboards",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditCustomDashboard=function(e,n){i.show({controller:"CreateOrEditCustomDashboardDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/customDashboards/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{customDashboard:n,customDashboards:f.customDashboards.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteCustomDashboard=y,f.exportSelectedCustomDashboards=function(){var e=angular.copy(f.selectedCustomDashboards);return f.selectedCustomDashboards=[],e},f.deleteSelectedCustomDashboards=function(e){var n=i.confirm().title("Are you sure want to delete the selected customDashboards?").htmlContent("<b>"+f.selectedCustomDashboards.length+" selected</b> will be deleted.").ariaLabel("delete CustomDashboards").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedCustomDashboards.forEach(function(e){y(e)}),f.selectedCustomDashboards=[]})},f.deselectCustomDashboards=function(){f.selectedCustomDashboards=[]},f.selectAllCustomDashboards=function(){f.selectedCustomDashboards=f.customDashboards.rows};var b=!0,A=1;function E(e){f.customDashboards=e||{count:0,rows:[]}}function y(e){m.dashboard.delete({id:e.id}).$promise.then(function(){_.remove(f.customDashboards.rows,{id:e.id}),f.customDashboards.count-=1,f.customDashboards.rows.length||f.getCustomDashboards(),p.success({title:_.startCase("CustomDashboard")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdashboard"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdashboard",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getCustomDashboards())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","customDashboards","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("CustomDashboardsController",e)}(),function(){"use strict";function e(n,t,a,e,i,s,o){var r=this;function l(e){n.hide(e)}r.newCustomDashboard=!0,r.customDashboard=angular.copy(i),r.customDashboards=s,r.title=o.instant("TOOLS.CLONE_CUSTOMDASHBOARD"),i&&i.name&&(r.title+=": "+i.name),r.cloneCustomDashboard=function(){return e.dashboard.clone({id:i.id,includeAll:!0},r.customDashboard).$promise.then(function(e){r.customDashboards.unshift(e.toJSON()),a.success({title:"CustomDashboard properly cloned",msg:r.customDashboard.name?r.customDashboard.name+" has been cloned!":""}),t.go("app.tools.customDashboards.edit",{id:e.id}),l(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){r.errors=e.data.errors||[{message:e.toString(),type:"api.dashboard.clone"}];for(var n=0;n<e.data.errors.length;n+=1)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.dashboard.clone",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},r.closeDialog=l}e.$inject=["$mdDialog","$state","toasty","api","customDashboard","customDashboards","$translate"],angular.module("app.tools").controller("CustomDashboardcloneController",e)}(),function(){"use strict";function e(t,a,e,i,s){var o=this;function r(e,n,t){return s.dashboardItem.update(t).$promise.catch(function(e){console.error(e)})}o.customDashboard={},o.voiceQueues=s.rpc.getVoiceQueues({fields:"id,name"}),o.init=function(e,n){return o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},o.customDashboard=e,o.customDashboard.draggable={enabled:!0,handle:".draggable",stop:r},o.customDashboard.resizable={enabled:!0,handle:".resizable",stop:r},o.customDashboard.widgets=[],s.dashboard.getItems({id:e.id}).$promise.then(function(e){if(e&&e.count&&e.rows)for(var n=0;n<e.rows.length;n+=1)e.rows[n].voiceQueues=o.voiceQueues,e.rows[n].voiceQueuesSelected=_.map(o.voiceQueues.rows,"id"),e.rows[n].templateUrl="app/core/directives/ms-widget-engine/ms-widget-engine-"+e.rows[n].type+"/ms-widget-engine."+e.rows[n].type+".html",o.customDashboard.widgets.push(e.rows[n])}).catch(function(e){console.error(e)})},o.createOrEditWidget=function(e){if(e&&e.attrs)for(var n=0;n<e.attrs.length;n+=1)"attrReport"===e.attrs[n].name&&(e.reportType=e.attrs[n].type),e[e.attrs[n].name]=e.attrs[n].value;t.show({controller:"CreateOrEditDashboardItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/customDashboards/edit/dashboard/dialog.html",parent:angular.element(a.body),clickOutsideToClose:!0,locals:{dashboarditem:e,dashboard:o.customDashboard.widgets,license:null,setting:null,crudPermissions:o.crudPermissions}}).then(function(e){if(e)for(var n=0;n<o.customDashboard.widgets.length;n+=1)o.customDashboard.widgets[n].id===e.id&&(o.customDashboard.widgets[n].attrs=e.attrs,o.customDashboard.widgets[n].voiceQueues=o.voiceQueues,o.customDashboard.widgets[n].voiceQueuesSelected=_.map(o.voiceQueues.rows,"id"),o.customDashboard.widgets[n].templateUrl="app/core/directives/ms-widget-engine/ms-widget-engine-"+o.customDashboard.widgets[n].type+"/ms-widget-engine."+o.customDashboard.widgets[n].type+".html")})},o.deleteWidget=function(n){var e=t.confirm().title("Would you like to delete "+n.title+"?").textContent("").ariaLabel("Delete Widget").ok("YES").cancel("NO");t.show(e).then(function(){return s.dashboardItem.delete({id:n.id}).$promise.then(function(e){_.remove(o.customDashboard.widgets,{id:n.id}),i.success({title:"Widget deleted!",msg:n.name?n.name+" has been deleted!":"Widget has been deleted!"})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){o.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETE.customDashboard"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdashboard",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()});console.error(e)})})}}e.$inject=["$mdDialog","$document","socket","toasty","api"],angular.module("app.tools").controller("CustomDashboardItemsController",e)}(),function(){"use strict";function e(n,e,t,a,o,i,s,r,l,d,c,m,u,p){var g=this;g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_DASHBOARDITEM",g.dashboarditem=angular.copy(l),g.dashboard=r,g.newDashboardItem=!1,g.selectedReport=[],g.query={fields:"createdAt,updatedAt,id,name,description,table,parent,conditions,joins",limit:10,page:1,sort:"-updatedAt"},g.dashboarditem?"web-report"==g.dashboarditem.type&&(g.apiName="custom"===g.dashboarditem.reportType?"analyticCustomReport":"analyticDefaultReport",d[g.apiName].get({fields:"id,name,parent"}).$promise.then(function(e){g.currentReport=_.find(e.rows,{id:g.dashboarditem.attrReport}),g.dashboarditem.report=g.currentReport.name,g.query.parent=g.currentReport.parent})):(g.dashboarditem={type:"counter",titleFontSize:12,attrUrl:"https://",attrHourFormat:"HH:mm:ss",attrTimezone:"0.00",attrMetric:"total",attrSerie1:"total",attrSerie2:"null",attrSerie3:"null",attrRefresh:10,attrFontSize:20,foreground:"#2196f3",background:"#ffffff"},g.title="TOOLS.NEW_DASHBOARDITEM",g.newDashboardItem=!0),g.addNewDashboardItem=function(){g.errors=[],d.dashboard.addItem({id:e.params.id},g.dashboarditem).$promise.then(function(e){g.dashboard.unshift(e.toJSON()),s.success({title:"DashboardItem properly created",msg:g.dashboarditem.name?g.dashboarditem.name+" has been created!":""}),I(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.dashboardItem.save"}];for(var n=0;n<e.data.errors.length;n+=1)s.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.dashboardItem.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveDashboardItem=function(){g.errors=[],d.dashboardItem.update({id:g.dashboarditem.id},g.dashboarditem).$promise.then(function(e){var n=_.find(g.dashboard,{id:e.id});n&&_.merge(n,e.toJSON()),s.success({title:"DashboardItem properly saved!",msg:g.dashboarditem.name?g.dashboarditem.name+" has been saved!":""}),I(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.dashboardItem.update"}];for(var n=0;n<e.data.errors.length;n++)s.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.dashboardItem.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteDashboardItem=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The dashboarditem will be deleted.").ariaLabel("Delete DashboardItem").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.dashboardItem.delete({id:g.dashboarditem.id}).$promise.then(function(){_.remove(g.dashboard,{id:g.dashboarditem.id}),s.success({title:"DashboardItem properly deleted!",msg:(g.dashboarditem.name||"dashboarditem")+" has been deleted!"}),I(g.dashboarditem)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.dashboardItem.delete"}];for(var n=0;n<e.data.errors.length;n++)s.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.dashboardItem.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.getReports=S,g.selectReport=function(){if(g.dashboarditem.report=g.selectedReport[0].name,g.dashboarditem.attrReport=g.selectedReport[0].id,g.dashboarditem.reportType=g.currentNode.custom?"custom":"default",!g.newDashboardItem){var e={name:"attrReport",type:g.dashboarditem.reportType,value:g.selectedReport[0].id};g.dashboarditem.attrs.splice(_.findIndex(g.dashboarditem.attrs,1,e))}n.dashboarditemForm.report.$setDirty(),a.hide()},g.closeReportDialog=function(){a.hide()},g.searchReport=function(){g.treeDefaultData=g.treeReports[0]?angular.fromJson(g.treeReports[0].tree):[],g.treeCustomData=g.treeReports[1]?angular.fromJson(g.treeReports[1].tree):[],g.treeConfig=(n={core:{multiple:!1,animation:!0,error:function(e){console.error("treeCtrl: error from js tree - "+angular.toJson(e))},check_callback:!0,worker:!0},version:1,plugins:["wholerow"]},"admin"!==g.currentUser.role?d.userProfileSection.get({fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:g.currentUser.userProfileId,sectionId:1203}).$promise.then(function(e){return g.userProfileSection=e&&1==e.count?e.rows[0]:null,n}).catch(function(e){s.error({title:"ERROR",msg:e.message})}):n),g.treeDefaultEvents=f(!1),g.treeCustomEvents=f(!0),a.show({controller:function(){return g},controllerAs:"vm",templateUrl:"app/main/apps/tools/views/customDashboards/partialViews/reports/treeReports.html",autoWrap:!0,skipHide:!0});var n},g.closeDialog=I,d.analyticTreeReport.get({}).$promise.then(function(e){g.treeReports=e.rows||[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TREEREPORTS",msg:e.data?JSON.stringify(e.data):e.toString()})});var v=[{id:401,type:"inbound"},{id:1501,type:"outbound"}],h=null;function f(e){return e?{loaded:E,select_node:b}:{loaded:y,select_node:A}}function b(e,n){g.treeDefaultInstance.jstree(!0).deselect_all(),g.treeDefaultInstance.jstree(!0).close_all(),g.currentNode=n.node,g.currentNode.custom=!0,g.currentPath=g.treeCustomInstance.jstree(!0).get_path(g.currentNode).join("/ "),g.apiName="analyticCustomReport",g.query.parent=n.node.id,S()}function A(e,n){g.treeCustomInstance.jstree(!0).deselect_all(),g.treeCustomInstance.jstree(!0).close_all(),g.currentNode=n.node,g.currentNode.custom=!1,g.currentPath=g.treeDefaultInstance.jstree(!0).get_path(g.currentNode).join("/ "),g.apiName="analyticDefaultReport",g.query.parent=n.node.id,S()}function E(){if(!g.newDashboardItem&&"analyticCustomReport"===g.apiName){var e=g.treeCustomInstance.jstree(!0).get_node(g.query.parent);b(0,{node:e,selected:e.id})}}function y(){if(!g.newDashboardItem&&"analyticDefaultReport"===g.apiName){var e=g.treeDefaultInstance.jstree(!0).get_node(g.query.parent);A(0,{node:e,selected:e.id})}}function S(){if(g.query.offset=(g.query.page-1)*g.query.limit,g.apiName)if("admin"===g.currentUser.role)g.promise=d[g.apiName].get(g.query,T).$promise;else{if(!g.userProfileSection)return T(null);if(g.userProfileSection.autoAssociation)g.promise=d[g.apiName].get(g.query,T).$promise;else{var a=[];g.promise=d[g.apiName].get(g.query).$promise.then(function(e){return 0<(a=e&&e.rows?e.rows:[]).length?d.userProfileResource.get({sectionId:g.userProfileSection.id,type:"analyticDefaultReport"===g.apiName?"DefaultReports":"CustomReports"}).$promise.then(function(e){var n=e&&e.rows?e.rows:[];if(0<n.length){var t=[];return a.forEach(function(e){_.find(n,["resourceId",e.id])&&t.push(e)}),T({count:t.length,rows:t})}return T(null)}):T(null)}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_REPORTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}}}function T(e){g.reports=e||{count:0,rows:[]},g.newDashboardItem||g.selectedReport.push(_.find(g.reports.rows,{id:g.currentReport.id}))}function I(e){a.hide(e)}c.hasRole("admin")?d.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){g.voiceQueues=e.rows||[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VOICEQUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){h=e.rows||[]}).then(function(){for(var e=[],n=0;n<v.length;n++)e.push(d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:v[n].id}).$promise);return o.all(e)}).then(function(e){for(var n=_.map(e,function(e){return e&&e.rows?e.rows[0]:null}),t=[],a=0;a<v.length;a++){var i=_.find(n,["sectionId",v[a].id]);if(i)if(i.autoAssociation){var s=[];h.forEach(function(e){e.type===v[a].type&&s.push(e)}),t.push({rows:s,count:s.length})}else t.push(d.userProfileResource.get({sectionId:i.id}).$promise)}return o.all(t)}).then(function(e){var n=[],t=null;g.dashboarditem&&(t=_.find(h,{id:Number(g.dashboarditem.attrVoiceQueues)}));for(var a=0;a<e.length;a++){(e[a].rows||[]).forEach(function(e){n.push(e)})}t&&!_.some(n,["resourceId",t.id])&&h.forEach(function(e){e.id===t.id&&(e.canSelect=!1,n.push(e))}),g.voiceQueues=n}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","dashboard","dashboarditem","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditDashboardItemDialogController",e)}(),function(){"use strict";function e(t,e,a,i,n,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=e.protocol()+"://"+e.host(),u.customDashboard=c||t.params.customDashboard||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=t.params.tab||0,u.clonedialog=function(e,n){a.show({controller:"CustomDashboardcloneController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/customDashboards/edit/clone/clone.html",parent:angular.element(i.body),targetEvent:n,clickOutsideToClose:!0,locals:{customDashboard:e,customDashboards:u.customDashboards?u.customDashboards.rows:[],crudPermissions:u.crudPermissions}})},u.gotogoto=function(e,n){t.go("app.dashboards.custom",{id:e.id})},u.alert=l.info,u.gotoCustomDashboards=function(){t.go("app.tools.customDashboards",{},{reload:"app.tools.customDashboards"})},u.saveCustomDashboard=function(){r.dashboard.update({id:u.customDashboard.id},u.customDashboard).$promise.then(function(){l.success({title:"CustomDashboard updated!",msg:u.customDashboard.name?u.customDashboard.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETdashboard",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","customDashboard","userProfileSection"],angular.module("app.tools").controller("CustomDashboardController",e)}(),function(){"use strict";function e(a,i,o,r,e,l,d,n,t,s,c){var m=this;if(m.currentUser=n.getCurrentUser(),m.disposition=angular.copy(e),m.setting=c,m.license=s,m.crudPermissions=t,m.newDisposition=!1,m.errors=[],m.disposition||(m.disposition={level:"first"},m.newDisposition=!0),l){var u=l.field;m.disposition[u]=l.id}function p(){return o(function(t,n){d.disposition.get({fields:"id,name,level,ParentId",sort:"id",nolimit:"true"}).$promise.then(function(e){var n=e.rows||[];return t(n)}).catch(function(e){n(e)})})}function g(e){"first"===e.level?m.firstLevelDisposition=e:(m.anySecondLevelDisposition=!0,m.secondLevelDisposition=e,m.firstLevelDisposition=_.find(m.dispositions,["id",m.secondLevelDisposition.ParentId]),m.firstLevelDisposition||p().then(function(){m.firstLevelDisposition=_.find(m.allDispositions,["id",m.secondLevelDisposition.ParentId]),m.firstLevelDisposition.canSelect=!1,m.dispositions.push(m.firstLevelDisposition)}))}function v(e){a.hide(e)}m.onInit=function(){var n="disposition";l?n=l.route:"user"===m.currentUser.role&&(n="userProfile");var t="get";l?t="getDispositions":"user"===m.currentUser.role&&(t="getResources");var e={fields:"id,name,level,ParentId",id:l?l.id:void 0,section:"user"===m.currentUser.role?"Dispositions":void 0,MailAccountId:l?void 0:"null",FaxAccountId:l?void 0:"null",SmsAccountId:l?void 0:"null",OpenchannelAccountId:l?void 0:"null",ChatWebsiteId:l?void 0:"null",WhatsappAccountId:l?void 0:"null",ListId:l?void 0:"null",sort:"id",nolimit:"true"};(a=n,i=t,s=e,o(function(t,n){d[a][i](s).$promise.then(function(e){var n=e.rows||[];return t(n)}).catch(function(e){n(e)})})).then(function(e){m.dispositions=angular.copy(e),m.newDisposition||function(){if("first"===m.disposition.level)return;if(m.parentDisposition=_.find(m.dispositions,["id",m.disposition.ParentId]),!m.parentDisposition)return p().then(function(e){m.allDispositions=e;for(var n=0;n<m.allDispositions.length;n++){var t=m.allDispositions[n];if(t.id===m.disposition.ParentId){g(t),t.canSelect=!1,m.dispositions.push(t);break}}});g(m.parentDisposition)}()}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:["api",n,t].join(":"),msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})});var a,i,s},m.onFirstLevelSelection=function(){m.secondLevelDisposition=void 0,m.anySecondLevelDisposition=_.some(m.dispositions,function(e){return e.ParentId===m.firstLevelDisposition.id&&e.id!=m.disposition.id})},m.addNewDisposition=function(){m.errors=[],m.secondLevelDisposition?(m.disposition.ParentId=m.secondLevelDisposition.id,m.disposition.level="third"):m.firstLevelDisposition&&(m.disposition.ParentId=m.firstLevelDisposition.id,m.disposition.level="second");d.disposition.save(m.disposition).$promise.then(function(e){m.dispositions.unshift(e.toJSON()),r.success({title:i.instant("TOOLS.NOTIFICATIONS.DISPOSITION_CREATED_SUCCESS_TITLE")}),v(!0)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.save"}];for(var n=0;n<e.data.errors.length;n+=1)r.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.disposition.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.saveDisposition=function(){m.errors=[],m.secondLevelDisposition?(m.disposition.ParentId=m.secondLevelDisposition.id,m.disposition.level="third"):m.firstLevelDisposition&&(m.disposition.ParentId=m.firstLevelDisposition.id,m.disposition.level="second");d.disposition.update({id:m.disposition.id},m.disposition).$promise.then(function(e){var n=_.find(m.dispositions,{id:e.id});n&&_.merge(n,e.toJSON()),r.success({title:i.instant("TOOLS.NOTIFICATIONS.DISPOSITION_SAVED_SUCCESS_TITLE")}),v(!0)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.update"}];for(var n=0;n<e.data.errors.length;n++)r.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.disposition.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.deleteDisposition=function(e){m.errors=[];var n=_.some(m.dispositions,["ParentId",m.disposition.id]),t=a.confirm({skipHide:!0}).title(i.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(i.instant("TOOLS.NOTIFICATIONS."+(n?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:m.disposition.name})).ariaLabel("Delete disposition").ok(i.instant("TOOLS.DELETE")).cancel(i.instant("TOOLS.CANCEL")).targetEvent(e);a.show(t).then(function(){d.disposition.delete({id:m.disposition.id}).$promise.then(function(){r.success({title:i.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")}),v(!0)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.delete"}];for(var n=0;n<e.data.errors.length;n++)r.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.disposition.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})})},m.clearSelection=function(e){"first"===e?(m.firstLevelDisposition=void 0,m.secondLevelDisposition=void 0,m.anySecondLevelDisposition=!1):m.secondLevelDisposition=void 0},m.closeDialog=v}e.$inject=["$mdDialog","$translate","$q","toasty","disposition","model","api","Auth","crudPermissions","license","setting"],angular.module("app.tools").controller("CreateOrEditDispositionDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v){var h=this;function f(e){h.dispositions=e||{count:0,rows:[]}}function b(){h.query.offset=(h.query.page-1)*h.query.limit,p.isAdmin()?h.promise=m.disposition.get(h.query,f).$promise:(h.query.id=h.userProfile.id,h.query.section="Dispositions",h.promise=m.userProfile.getResources(h.query,f).$promise)}function A(e){m.disposition.delete({id:e.id}).$promise.then(function(){b(),u.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){h.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)u.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else u.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}h.license=g,h.setting=v,h.currentUser=p.getCurrentUser(),h.dispositions=l||{count:0,rows:[]},h.userProfile=d,h.userProfileSection=c&&1==c.count?c.rows[0]:null,h.crudPermissions=p.parseCrudPermissions(h.userProfileSection?h.userProfileSection.crudPermissions:null),h.selectedDispositions=[],h.levels={first:"1st",second:"2nd",third:"3rd"},h.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",WhatsappAccountId:"null",ListId:"null",limit:10,page:1},h.deleteconfirm=function(e,n){var t=_.some(h.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){A(e)})},h.success=f,h.getDispositions=b,h.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:null,license:h.license,setting:h.setting,crudPermissions:h.crudPermissions}}).then(function(e){!0===e&&b()})},h.deleteDisposition=A,h.exportSelectedDispositions=function(){var e=angular.copy(h.selectedDispositions);return h.selectedDispositions=[],e},h.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:h.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){h.selectedDispositions.forEach(function(e){A(e)}),h.selectedDispositions=[]})},h.deselectDispositions=function(){h.selectedDispositions=[]},h.selectAllDispositions=function(){h.selectedDispositions=h.dispositions.rows};var E=!0,y=1;e.$watch("vm.query.filter",function(e,n){E?o(function(){E=!1}):(n||(y=h.query.page),e!==n&&(h.query.page=1),e||(h.query.page=y),b())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","dispositions","userProfile","userProfileSection","api","toasty","Auth","license","setting"],angular.module("app.tools").controller("DispositionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_INTERVAL",g.interval=angular.copy(l),g.intervals=r,g.newInterval=!1,g.interval||(g.interval={},g.title="TOOLS.NEW_INTERVAL",g.newInterval=!0),g.addNewInterval=function(){g.errors=[],d.interval.save(g.interval).$promise.then(function(e){g.intervals.unshift(e.toJSON()),o.success({title:"Interval properly created",msg:g.interval.name?g.interval.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.interval.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveInterval=function(){g.errors=[],d.interval.update({id:g.interval.id},g.interval).$promise.then(function(e){var n=_.find(g.intervals,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Interval properly saved!",msg:g.interval.name?g.interval.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.interval.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteInterval=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The interval will be deleted.").ariaLabel("Delete Interval").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.interval.delete({id:g.interval.id}).$promise.then(function(){_.remove(g.intervals,{id:g.interval.id}),o.success({title:"Interval properly deleted!",msg:(g.interval.name||"interval")+" has been deleted!"}),v(g.interval)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.interval.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.interval.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","intervals","interval","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditIntervalDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;if(c.currentUser=l.getCurrentUser(),c.errors=[],c.title="TOOLS.EDIT_INTERVAL",c.interval=angular.copy(i),c.intervals=s,c.newInterval=!1,c.types=["always","custom"],c.crudPermissions=d,c.daysOfWeek=a.getDaysOfWeek(),c.monthNumber=a.getMonthNumber(),c.monthName=a.getMonthName(),c.daysOfMonth=a.getDaysOfMonth(),c.interval)if("*,*,*,*"!==c.interval.interval){c.type="custom";var m=c.interval.interval.split(","),u=m[0],p=m[1],g=m[2],v=m[3];if("*"!==u){var h,f=u.split("-")[0],b=u.split("-")[1];(h=new Date).setHours(Number(f.split(":")[0])),h.setMinutes(Number(f.split(":")[1])),c.timeRangeFrom=h,(h=new Date).setHours(Number(b.split(":")[0])),h.setMinutes(Number(b.split(":")[1])),c.timeRangeTo=h}"*"!==p&&(c.dayOfWeekFrom=p.split("-")[0],c.dayOfWeekTo=p.split("-")[1]),"*"!==g&&(c.monthDayFrom=g.split("-")[0],c.monthDayTo=g.split("-")[1]),"*"!==v&&(c.monthFrom=v.split("-")[0],c.monthTo=v.split("-")[1])}else c.type="always";else c.interval={interval:"*,*,*,*"},c.type="always",c.title="TOOLS.NEW_INTERVAL",c.newInterval=!0;function A(){switch(c.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==c.timeRangeFrom&&c.timeRangeFrom&&c.timeRangeTo){var n=(c.timeRangeFrom.getHours()<10?"0":"")+c.timeRangeFrom.getHours()+":"+(c.timeRangeFrom.getMinutes()<10?"0":"")+c.timeRangeFrom.getMinutes(),t=(c.timeRangeTo.getHours()<10?"0":"")+c.timeRangeTo.getHours()+":"+(c.timeRangeTo.getMinutes()<10?"0":"")+c.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return c.dayOfWeekFrom?c.dayOfWeekTo?e.push(c.dayOfWeekFrom+"-"+c.dayOfWeekTo):e.push(c.dayOfWeekFrom):e.push("*"),c.monthDayFrom?c.monthDayTo?e.push(c.monthDayFrom+"-"+c.monthDayTo):e.push(c.monthDayFrom):e.push("*"),c.monthFrom?c.monthTo?e.push(c.monthFrom+"-"+c.monthTo):e.push(c.monthFrom):e.push("*"),e.join()}}function E(e){n.hide(e)}e.params.id&&!c.interval.application&&(c.interval.IntervalId=e.params.id),c.interval.IntervalId&&c.interval.application&&(c.type="list"),c.addNewInterval=function(){c.errors=[],c.interval.interval=A(),r.interval.save(c.interval).$promise.then(function(e){c.intervals.push(e),o.success({title:"Interval properly created",msg:c.interval.name?c.interval.name+" has been created!":""}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},c.saveInterval=function(){c.errors=[],c.interval.interval=A(),c.interval.application?("list"!==c.type&&(c.interval.IntervalId=null),E(c.interval)):r.interval.update({id:c.interval.id},c.interval).$promise.then(function(e){var n=_.find(c.intervals,{id:e.id});n&&_.merge(n,e),o.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},c.closeDialog=E,c.interval.application&&(l.hasRole("admin")?r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:c.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=e&&e.rows?e.rows:[],t=[],a=null;c.interval&&(a=_.find(c.intervals,{name:c.interval.IntervalId})),a&&!_.some(n,["resourceId",a.id])&&c.intervals.forEach(function(e){e.id===a.id&&(e.canSelect=!1,t.push(e))}),c.intervals=t})}else c.intervals=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}))}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditAppintervalDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.intervalIntervals=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.interval.getIntervals(m.query,u).$promise}function g(e){d.interval.delete({id:e.id}).$promise.then(function(){_.remove(m.intervalIntervals.rows,{id:e.id}),m.intervalIntervals.count-=1,m.intervalIntervals.rows.length||p(),l.success({title:"Interval deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETinterval"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.interval={},m.intervalIntervals={count:0,rows:[]},m.selectedIntervalIntervals=[],m.crudPermissions,m.sortableTable={animation:100,onSort:function(e){d.interval.addIntervals({id:m.interval.id},e.models).$promise.then(function(e){m.intervalIntervals.rows=e}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:SORTABLETABLE",msg:e.data?JSON.stringify(e.data):e.toString()})})}},m.query={fields:"createdAt,updatedAt,id,name,interval",nolimit:"true",limit:10,page:1},m.init=function(e,n){m.interval=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.sortableTable.disabled=!m.crudPermissions.canEdit,m.query.id=m.interval.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the interval?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("interval #")+e.id||"interval")+"</b> will be deleted.").ariaLabel("delete interval").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getIntervalIntervals=p,m.createOrEditIntervalInterval=function(e,n){o.show({controller:"EditAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/intervals/edit/apps/interval/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:m.interval,interval:n,intervals:m.intervalIntervals.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedIntervalIntervals=function(){var e=angular.copy(m.selectedIntervalIntervals);return m.selectedIntervalIntervals=[],e},m.deleteIntervalInterval=g,m.deleteSelectedIntervalIntervals=function(e){var n=o.confirm().title("Are you sure want to delete the selected intervals?").htmlContent("<b>"+m.selectedIntervalIntervals.length+" selected</b> will be deleted.").ariaLabel("delete intervals").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedIntervalIntervals.forEach(function(e){g(e)}),m.selectedIntervalIntervals=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.tools").controller("IntervalIntervalsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_INTERVAL",g.interval=angular.copy(l),g.intervals=r,g.newInterval=!1,g.interval||(g.interval={},g.title="TOOLS.NEW_INTERVAL",g.newInterval=!0),g.addNewInterval=function(){g.errors=[],d.interval.save(g.interval).$promise.then(function(e){g.intervals.unshift(e.toJSON()),o.success({title:"Interval properly created",msg:g.interval.name?g.interval.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.interval.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveInterval=function(){g.errors=[],d.interval.update({id:g.interval.id},g.interval).$promise.then(function(e){var n=_.find(g.intervals,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Interval properly saved!",msg:g.interval.name?g.interval.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.interval.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteInterval=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The interval will be deleted.").ariaLabel("Delete Interval").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.interval.delete({id:g.interval.id}).$promise.then(function(){_.remove(g.intervals,{id:g.interval.id}),o.success({title:"Interval properly deleted!",msg:(g.interval.name||"interval")+" has been deleted!"}),v(g.interval)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.interval.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.interval.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","intervals","interval","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditIntervalDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.interval=c||e.params.interval||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoIntervals=function(){e.go("app.tools.intervals",{},{reload:"app.tools.intervals"})},u.saveInterval=function(){r.interval.update({id:u.interval.id},u.interval).$promise.then(function(){l.success({title:"Interval updated!",msg:u.interval.name?u.interval.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","interval","userProfileSection"],angular.module("app.tools").controller("IntervalController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.intervals=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="intervals",f.listOrder="",f.listOrderAsc=null,f.selectedIntervals=[],f.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",IntervalId:"null",limit:10,page:1},f.editstate=function(e,n){t.go("app.tools.intervals.edit",{id:e.id,interval:e,crudPermissions:f.crudPermissions})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("interval")+"?").htmlContent("<b>"+(e.name||"interval")+"</b> will be deleted.").ariaLabel("delete interval").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getIntervals=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.interval.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Intervals",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditInterval=function(e,n){i.show({controller:"CreateOrEditIntervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/intervals/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:n,intervals:f.intervals.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteInterval=y,f.exportSelectedIntervals=function(){var e=angular.copy(f.selectedIntervals);return f.selectedIntervals=[],e},f.deleteSelectedIntervals=function(e){var n=i.confirm().title("Are you sure want to delete the selected intervals?").htmlContent("<b>"+f.selectedIntervals.length+" selected</b> will be deleted.").ariaLabel("delete Intervals").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedIntervals.forEach(function(e){y(e)}),f.selectedIntervals=[]})},f.deselectIntervals=function(){f.selectedIntervals=[]},f.selectAllIntervals=function(){f.selectedIntervals=f.intervals.rows};var b=!0,A=1;function E(e){f.intervals=e||{count:0,rows:[]}}function y(e){m.interval.delete({id:e.id}).$promise.then(function(){_.remove(f.intervals.rows,{id:e.id}),f.intervals.count-=1,f.intervals.rows.length||f.getIntervals(),p.success({title:_.startCase("Interval")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEinterval"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEinterval",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getIntervals())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","intervals","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("IntervalsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_PAUSE",g.pause=angular.copy(l),g.pauses=r,g.newPause=!1,g.pause||(g.pause={},g.title="TOOLS.NEW_PAUSE",g.newPause=!0),g.addNewPause=function(){g.errors=[],d.pause.save(g.pause).$promise.then(function(e){g.pauses.unshift(e.toJSON()),o.success({title:"Pause properly created",msg:g.pause.name?g.pause.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.pause.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.pause.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.savePause=function(){g.errors=[],d.pause.update({id:g.pause.id},g.pause).$promise.then(function(e){var n=_.find(g.pauses,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Pause properly saved!",msg:g.pause.name?g.pause.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.pause.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.pause.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deletePause=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The pause will be deleted.").ariaLabel("Delete Pause").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.pause.delete({id:g.pause.id}).$promise.then(function(){_.remove(g.pauses,{id:g.pause.id}),o.success({title:"Pause properly deleted!",msg:(g.pause.name||"pause")+" has been deleted!"}),v(g.pause)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.pause.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.pause.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","pauses","pause","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditPauseDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.pauses=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="pauses",f.listOrder="",f.listOrderAsc=null,f.selectedPauses=[],f.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditPauseDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/pauses/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{pause:e,pauses:f.pauses.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("pause")+"?").htmlContent("<b>"+(e.name||"pause")+"</b> will be deleted.").ariaLabel("delete pause").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getPauses=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.pause.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Pauses",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditPause=function(e,n){i.show({controller:"CreateOrEditPauseDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/pauses/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{pause:n,pauses:f.pauses.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deletePause=y,f.exportSelectedPauses=function(){var e=angular.copy(f.selectedPauses);return f.selectedPauses=[],e},f.deleteSelectedPauses=function(e){var n=i.confirm().title("Are you sure want to delete the selected pauses?").htmlContent("<b>"+f.selectedPauses.length+" selected</b> will be deleted.").ariaLabel("delete Pauses").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedPauses.forEach(function(e){y(e)}),f.selectedPauses=[]})},f.deselectPauses=function(){f.selectedPauses=[]},f.selectAllPauses=function(){f.selectedPauses=f.pauses.rows};var b=!0,A=1;function E(e){f.pauses=e||{count:0,rows:[]}}function y(e){m.pause.delete({id:e.id}).$promise.then(function(){_.remove(f.pauses.rows,{id:e.id}),f.pauses.count-=1,f.pauses.rows.length||f.getPauses(),p.success({title:_.startCase("Pause")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEpause"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEpause",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getPauses())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","pauses","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("PausesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;if(g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_SCHEDULE",g.schedule=angular.copy(l),g.schedules=r,g.newSchedule=!1,g.selectedReport=[],g.query={fields:"createdAt,updatedAt,id,name,description,table,parent,conditions,joins",limit:10,page:1,sort:"-updatedAt"},g.schedule){g.apiName=g.schedule.DefaultReportId?"analyticDefaultReport":"analyticCustomReport";var v=g.schedule.DefaultReportId?g.schedule.DefaultReportId:g.schedule.CustomReportId;d[g.apiName].get({fields:"id,name,parent"}).$promise.then(function(e){g.currentReport=_.find(e.rows,{id:v}),g.schedule.report=g.currentReport.name,g.query.parent=g.currentReport.parent})}else g.schedule={output:"xlsx",active:!0,startAt:new Date,endAt:new Date(Date.now()+2592e6),cron:"0 0 * * *",subtractNumber:1,subtractUnit:"days",sendMail:!1,sendIfEmpty:!0},g.title="TOOLS.NEW_SCHEDULE",g.newSchedule=!0;function h(e){return e?{loaded:A,select_node:f}:{loaded:E,select_node:b}}function f(e,n){g.treeDefaultInstance.jstree(!0).deselect_all(),g.treeDefaultInstance.jstree(!0).close_all(),g.currentNode=n.node,g.currentNode.custom=!0,g.currentPath=g.treeCustomInstance.jstree(!0).get_path(g.currentNode).join("/ "),g.apiName="analyticCustomReport",g.query.parent=n.node.id,y()}function b(e,n){g.treeCustomInstance.jstree(!0).deselect_all(),g.treeCustomInstance.jstree(!0).close_all(),g.currentNode=n.node,g.currentNode.custom=!1,g.currentPath=g.treeDefaultInstance.jstree(!0).get_path(g.currentNode).join("/ "),g.apiName="analyticDefaultReport",g.query.parent=n.node.id,y()}function A(){if(!g.newSchedule&&"analyticCustomReport"===g.apiName){var e=g.treeCustomInstance.jstree(!0).get_node(g.query.parent);f(0,{node:e,selected:e.id})}}function E(){if(!g.newSchedule&&"analyticDefaultReport"===g.apiName){var e=g.treeDefaultInstance.jstree(!0).get_node(g.query.parent);b(0,{node:e,selected:e.id})}}function y(){if(g.query.offset=(g.query.page-1)*g.query.limit,g.apiName)if("admin"===g.currentUser.role)g.promise=d[g.apiName].get(g.query,S).$promise;else{if(!g.userProfileSection)return S(null);if(g.userProfileSection.autoAssociation)g.promise=d[g.apiName].get(g.query,S).$promise;else{var a=[];g.promise=d[g.apiName].get(g.query).$promise.then(function(e){return 0<(a=e&&e.rows?e.rows:[]).length?d.userProfileResource.get({sectionId:g.userProfileSection.id,type:"analyticDefaultReport"===g.apiName?"DefaultReports":"CustomReports"}).$promise.then(function(e){var n=e&&e.rows?e.rows:[];if(0<n.length){var t=[];return a.forEach(function(e){_.find(n,["resourceId",e.id])&&t.push(e)}),S({count:t.length,rows:t})}return S(null)}):S(null)}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_REPORTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}}}function S(e){g.reports=e||{count:0,rows:[]},g.newSchedule||g.selectedReport.push(_.find(g.reports.rows,{id:g.currentReport.id}))}function T(e){a.hide(e)}g.addNewSchedule=function(){g.errors=[],d.schedule.save(g.schedule).$promise.then(function(e){g.schedules.unshift(e.toJSON()),o.success({title:"Schedule properly created",msg:g.schedule.name?g.schedule.name+" has been created!":""}),T(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.schedule.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.schedule.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSchedule=function(){g.errors=[],d.schedule.update({id:g.schedule.id},g.schedule).$promise.then(function(e){var n=_.find(g.schedules,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Schedule properly saved!",msg:g.schedule.name?g.schedule.name+" has been saved!":""}),T(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.schedule.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.schedule.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSchedule=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The schedule will be deleted.").ariaLabel("Delete Schedule").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.schedule.delete({id:g.schedule.id}).$promise.then(function(){_.remove(g.schedules,{id:g.schedule.id}),o.success({title:"Schedule properly deleted!",msg:(g.schedule.name||"schedule")+" has been deleted!"}),T(g.schedule)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.schedule.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.schedule.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.getReports=y,g.selectReport=function(){g.schedule.report=g.selectedReport[0].name,g.currentNode.custom?(g.schedule.CustomReportId=g.selectedReport[0].id,delete g.schedule.DefaultReportId):(g.schedule.DefaultReportId=g.selectedReport[0].id,delete g.schedule.CustomReportId);e.scheduleForm.report.$setDirty(),a.hide()},g.closeReportDialog=function(){a.hide()},g.searchReport=function(){g.treeDefaultData=g.treeReports[0]?angular.fromJson(g.treeReports[0].tree):[],g.treeCustomData=g.treeReports[1]?angular.fromJson(g.treeReports[1].tree):[],g.treeConfig=(n={core:{multiple:!1,animation:!0,error:function(e){console.error("treeCtrl: error from js tree - "+angular.toJson(e))},check_callback:!0,worker:!0},version:1,plugins:["wholerow"]},"admin"!==g.currentUser.role?d.userProfileSection.get({fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:g.currentUser.userProfileId,sectionId:1203}).$promise.then(function(e){return g.userProfileSection=e&&1==e.count?e.rows[0]:null,n}).catch(function(e){o.error({title:"ERROR",msg:e.message})}):n),g.treeDefaultEvents=h(!1),g.treeCustomEvents=h(!0),a.show({controller:function(){return g},controllerAs:"vm",templateUrl:"app/main/apps/tools/views/schedules/partialViews/reports/treeReports.html",autoWrap:!0,skipHide:!0});var n},g.closeDialog=T,d.analyticTreeReport.get({}).$promise.then(function(e){g.treeReports=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TREEREPORTS",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.hasRole("admin")?d.mailAccount.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.mailAccounts=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_MAILACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.mailAccount.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.mailAccounts=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:602}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.mailAccounts,{id:e.resourceId})}),t=null;if(g.schedule&&(t=_.find(g.mailAccounts,{id:Number(g.schedule.MailAccountId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.mailAccounts,{id:t.id});a.canSelect=!1,n.push(a)}g.mailAccounts=n})}else{var t=[],a=null;g.schedule&&(a=_.find(g.mailAccounts,{id:Number(g.schedule.MailAccountId)}));for(var i=0;i<g.mailAccounts.length;i++)a&&g.mailAccounts[i].id===a.id&&(g.mailAccounts[i].canSelect=!1,t.push(g.mailAccounts[i]));g.mailAccounts=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","schedules","schedule","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditScheduleDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.schedules=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="schedules",f.listOrder="",f.listOrderAsc=null,f.selectedScheduler=[],f.query={fields:"createdAt,updatedAt,id,name,CustomReportId,DefaultReportId,output,active,startAt,endAt,cron,subtractNumber,subtractUnit,sendMail,MailAccountId,email,cc,bcc,sendIfEmpty,description",sort:"-updatedAt",limit:10,page:1},f.arrayoutput=_.keyBy([{option:"CSV",value:"'csv'"},{option:"PDF",value:"'pdf'"},{option:"Excel",value:"'xlsx'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysubtractUnit=_.keyBy([{option:"Minutes",value:"'minutes'"},{option:"Hours",value:"'hours'"},{option:"Days",value:"'days'"},{option:"Weeks",value:"'weeks'"},{option:"Months",value:"'months'"},{option:"Quarters",value:"'quarters'"},{option:"Years",value:"'years'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editdialog=function(e,n){i.show({controller:"CreateOrEditScheduleDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/schedules/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{schedule:e,schedules:f.schedules.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.runconfirm=function(e,n){var t=i.confirm().title("Are you sure want to run the schedule?").htmlContent("<b>"+(e.name||"schedule")+"</b> will be run.").ariaLabel("delete schedule").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){return m.schedule.run({id:e.id}).$promise},function(){console.log("CANCEL")})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("schedule")+"?").htmlContent("<b>"+(e.name||"schedule")+"</b> will be deleted.").ariaLabel("delete schedule").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getScheduler=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.schedule.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Scheduler",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditSchedule=function(e,n){i.show({controller:"CreateOrEditScheduleDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/schedules/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{schedule:n,schedules:f.schedules.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteSchedule=y,f.exportSelectedScheduler=function(){var e=angular.copy(f.selectedScheduler);return f.selectedScheduler=[],e},f.deleteSelectedScheduler=function(e){var n=i.confirm().title("Are you sure want to delete the selected schedules?").htmlContent("<b>"+f.selectedScheduler.length+" selected</b> will be deleted.").ariaLabel("delete Schedules").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedScheduler.forEach(function(e){y(e)}),f.selectedScheduler=[]})},f.deselectScheduler=function(){f.selectedScheduler=[]},f.selectAllScheduler=function(){f.selectedScheduler=f.schedules.rows},m.analyticTreeReport.get({}).$promise.then(function(e){f.treeReports=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TREEREPORTS",msg:e.data?JSON.stringify(e.data):e.toString()})}),g.hasRole("admin")?m.mailAccount.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.mailAccounts=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_MAILACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.mailAccount.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.mailAccounts=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:602}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.mailAccounts,{id:e.resourceId})}),t=null;if(f.schedule&&(t=_.find(f.mailAccounts,{id:Number(f.schedule.MailAccountId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.mailAccounts,{id:t.id});a.canSelect=!1,n.push(a)}f.mailAccounts=n})}else{var t=[],a=null;f.schedule&&(a=_.find(f.mailAccounts,{id:Number(f.schedule.MailAccountId)}));for(var i=0;i<f.mailAccounts.length;i++)a&&f.mailAccounts[i].id===a.id&&(f.mailAccounts[i].canSelect=!1,t.push(f.mailAccounts[i]));f.mailAccounts=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.schedules=e||{count:0,rows:[]}}function y(e){m.schedule.delete({id:e.id}).$promise.then(function(){_.remove(f.schedules.rows,{id:e.id}),f.schedules.count-=1,f.schedules.rows.length||f.getScheduler(),p.success({title:_.startCase("Schedule")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEschedule"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEschedule",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getScheduler())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","schedules","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("SchedulesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_SOUND",g.sound=angular.copy(l),g.sounds=r,g.newSound=!1,g.sound||(g.sound={},g.title="TOOLS.NEW_SOUND",g.newSound=!0),g.addNewSound=function(){g.errors=[],d.sound.save(g.sound).$promise.then(function(e){g.sounds.unshift(e.toJSON()),o.success({title:"Sound properly created",msg:g.sound.name?g.sound.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.sound.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.sound.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSound=function(){g.errors=[],d.sound.update({id:g.sound.id},g.sound).$promise.then(function(e){var n=_.find(g.sounds,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Sound properly saved!",msg:g.sound.name?g.sound.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.sound.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.sound.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSound=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The sound will be deleted.").ariaLabel("Delete Sound").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.sound.delete({id:g.sound.id}).$promise.then(function(){_.remove(g.sounds,{id:g.sound.id}),o.success({title:"Sound properly deleted!",msg:(g.sound.name||"sound")+" has been deleted!"}),v(g.sound)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.sound.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.sound.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","sounds","sound","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditSoundDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.sounds=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="sounds",f.listOrder="",f.listOrderAsc=null,f.selectedSounds=[],f.query={fields:"createdAt,updatedAt,id,save_name,converted_format,name,audio,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditSoundDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/sounds/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{sound:e,sounds:f.sounds.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.downloadfile2=function(s,e){return m.sound.download({id:s.id}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=s.converted_format?s.save_name+"."+s.converted_format:s.save_name;var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.sound.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("sound")+"?").htmlContent("<b>"+(e.name||"sound")+"</b> will be deleted.").ariaLabel("delete sound").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getSounds=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.sound.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Sounds",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditSound=function(e,n){i.show({controller:"CreateOrEditSoundDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/sounds/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{sound:n,sounds:f.sounds.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteSound=y,f.exportSelectedSounds=function(){var e=angular.copy(f.selectedSounds);return f.selectedSounds=[],e},f.deleteSelectedSounds=function(e){var n=i.confirm().title("Are you sure want to delete the selected sounds?").htmlContent("<b>"+f.selectedSounds.length+" selected</b> will be deleted.").ariaLabel("delete Sounds").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedSounds.forEach(function(e){y(e)}),f.selectedSounds=[]})},f.deselectSounds=function(){f.selectedSounds=[]},f.selectAllSounds=function(){f.selectedSounds=f.sounds.rows},f.uploadSound=function(e){i.show({controller:"UploadSoundDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/sounds/upload/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{sounds:f.sounds.rows}})};var b=!0,A=1;function E(e){f.sounds=e||{count:0,rows:[]}}function y(e){m.sound.delete({id:e.id}).$promise.then(function(){_.remove(f.sounds.rows,{id:e.id}),f.sounds.count-=1,f.sounds.rows.length||f.getSounds(),p.success({title:_.startCase("Sound")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEsound"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEsound",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getSounds())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","sounds","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("SoundsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this,r=15,l=1024*r*1024;o.currentUser=s.getCurrentUser(),o.errors=[],o.title="TOOLS.UPLOAD_SOUND",o.sounds=a,o.uploadSounds=[],o.uploadState="none",o.sound={},o.ngFlowOptions={maxChunkRetries:1,chunkSize:l,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0,target:"api/sounds"},o.ngFlow={flow:{}},o.dropping=!1,o.fileAdded=function(e){var n=["wav","mp3","gsm"];if(!_.includes(n,e.getExtension()))return t.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(e.size>l)return t.error({title:"File too big",msg:"The max allowed size is "+r+"MB"}),!1;return o.sound={id:e.uniqueIdentifier,file:e},o.uploadSounds.unshift(o.sound),!0},o.upload=function(){o.uploadState="uploading",o.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},o.ngFlow.flow.opts.query={role:o.currentUser.role,userProfileId:o.currentUser.userProfileId},o.ngFlow.flow.upload()},o.fileSuccess=function(a,e){o.sounds.unshift(JSON.parse(e)),angular.forEach(o.uploadSounds,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result}}})},o.uploadError=function(e,n){o.ngFlow.flow.cancel(),t.error({title:"Upload error",msg:"Cannot upload the sound"}),o.uploadState="failed"},o.uploadComplete=function(){"failed"!==o.uploadState&&(o.uploadState="completed",t.success({title:"Upload completed",msg:o.sound.file.name+" uploaded successfully"}))},o.closeDialog=function(){n.hide()}}e.$inject=["$cookies","$mdDialog","toasty","sounds","api","Auth"],angular.module("app.tools").controller("UploadSoundDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_TAG",g.tag=angular.copy(l),g.tags=r,g.newTag=!1,g.tag||(g.tag={},g.title="TOOLS.NEW_TAG",g.newTag=!0),g.addNewTag=function(){g.errors=[],d.tag.save(g.tag).$promise.then(function(e){g.tags.unshift(e.toJSON()),o.success({title:"Tag properly created",msg:g.tag.name?g.tag.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.tag.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.tag.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveTag=function(){g.errors=[],d.tag.update({id:g.tag.id},g.tag).$promise.then(function(e){var n=_.find(g.tags,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Tag properly saved!",msg:g.tag.name?g.tag.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.tag.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.tag.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteTag=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The tag will be deleted.").ariaLabel("Delete Tag").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.tag.delete({id:g.tag.id}).$promise.then(function(){_.remove(g.tags,{id:g.tag.id}),o.success({title:"Tag properly deleted!",msg:(g.tag.name||"tag")+" has been deleted!"}),v(g.tag)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.tag.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.tag.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","tags","tag","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditTagDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.tags=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="tags",f.listOrder="",f.listOrderAsc=null,f.selectedTags=[],f.query={fields:"createdAt,updatedAt,id,name,description,color",sort:"name,-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditTagDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/tags/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{tag:e,tags:f.tags.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("tag")+"?").htmlContent("<b>"+(e.name||"tag")+"</b> will be deleted.").ariaLabel("delete tag").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getTags=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.tag.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Tags",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditTag=function(e,n){i.show({controller:"CreateOrEditTagDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/tags/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{tag:n,tags:f.tags.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteTag=y,f.exportSelectedTags=function(){var e=angular.copy(f.selectedTags);return f.selectedTags=[],e},f.deleteSelectedTags=function(e){var n=i.confirm().title("Are you sure want to delete the selected tags?").htmlContent("<b>"+f.selectedTags.length+" selected</b> will be deleted.").ariaLabel("delete Tags").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedTags.forEach(function(e){y(e)}),f.selectedTags=[]})},f.deselectTags=function(){f.selectedTags=[]},f.selectAllTags=function(){f.selectedTags=f.tags.rows};var b=!0,A=1;function E(e){f.tags=e||{count:0,rows:[]}}function y(e){m.tag.delete({id:e.id}).$promise.then(function(){_.remove(f.tags.rows,{id:e.id}),f.tags.count-=1,f.tags.rows.length||f.getTags(),p.success({title:_.startCase("Tag")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEtag"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEtag",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getTags())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","tags","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("TagsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_TEMPLATE",g.template=angular.copy(l),g.templates=r,g.newTemplate=!1,g.template||(g.template={},g.title="TOOLS.NEW_TEMPLATE",g.newTemplate=!0),g.addNewTemplate=function(){g.errors=[],d.template.save(g.template).$promise.then(function(e){g.templates.unshift(e.toJSON()),o.success({title:"Template properly created",msg:g.template.name?g.template.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.template.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.template.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveTemplate=function(){g.errors=[],d.template.update({id:g.template.id},g.template).$promise.then(function(e){var n=_.find(g.templates,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Template properly saved!",msg:g.template.name?g.template.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.template.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.template.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteTemplate=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The template will be deleted.").ariaLabel("Delete Template").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.template.delete({id:g.template.id}).$promise.then(function(){_.remove(g.templates,{id:g.template.id}),o.success({title:"Template properly deleted!",msg:(g.template.name||"template")+" has been deleted!"}),v(g.template)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.template.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.template.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","templates","template","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditTemplateDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.templates=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="templates",f.listOrder="",f.listOrderAsc=null,f.selectedTemplates=[],f.query={fields:"createdAt,updatedAt,id,name,html,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditTemplateDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/templates/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{template:e,templates:f.templates.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("template")+"?").htmlContent("<b>"+(e.name||"template")+"</b> will be deleted.").ariaLabel("delete template").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getTemplates=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.template.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Templates",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditTemplate=function(e,n){i.show({controller:"CreateOrEditTemplateDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/templates/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{template:n,templates:f.templates.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteTemplate=y,f.exportSelectedTemplates=function(){var e=angular.copy(f.selectedTemplates);return f.selectedTemplates=[],e},f.deleteSelectedTemplates=function(e){var n=i.confirm().title("Are you sure want to delete the selected templates?").htmlContent("<b>"+f.selectedTemplates.length+" selected</b> will be deleted.").ariaLabel("delete Templates").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedTemplates.forEach(function(e){y(e)}),f.selectedTemplates=[]})},f.deselectTemplates=function(){f.selectedTemplates=[]},f.selectAllTemplates=function(){f.selectedTemplates=f.templates.rows};var b=!0,A=1;function E(e){f.templates=e||{count:0,rows:[]}}function y(e){m.template.delete({id:e.id}).$promise.then(function(){_.remove(f.templates.rows,{id:e.id}),f.templates.count-=1,f.templates.rows.length||f.getTemplates(),p.success({title:_.startCase("Template")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEtemplate"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEtemplate",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getTemplates())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","templates","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("TemplatesController",e)}(),function(){"use strict";function e(t,a,i,e,n,s,o,r,l,d){var c=this;function m(e){t.hide(e)}c.currentUser=o.getCurrentUser(),c.trigger=angular.copy(n),c.triggers=angular.copy(e),c.setting=l,c.license=r,c.crudPermissions=d,c.newTrigger=!1,c.errors=[],c.trigger||(c.trigger={channel:"voice"},c.newTrigger=!0),c.addNewTrigger=function(){c.errors=[],s.trigger.save(c.trigger).$promise.then(function(e){c.triggers.unshift(e.toJSON()),i.success({title:a.instant("TOOLS.NOTIFICATIONS.TRIGGER_CREATED_SUCCESS_TITLE")}),m(c.triggers)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.trigger.save"}];for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.trigger.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.saveTrigger=function(){c.errors=[],s.trigger.update({id:c.trigger.id},c.trigger).$promise.then(function(){c.triggers=_.map(c.triggers,function(e){return e.id===c.trigger.id?c.trigger:e}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.TRIGGER_SAVED_SUCCESS_TITLE")}),m(c.triggers)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.trigger.update"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.trigger.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.deleteTrigger=function(e){c.errors=[];var n=t.confirm({skipHide:!0}).title(a.instant("TOOLS.NOTIFICATIONS.TRIGGER_DELETE_TITLE")).content(a.instant("TOOLS.NOTIFICATIONS.TRIGGER_DELETE_MESSAGE",{name:c.trigger.name})).ariaLabel("Delete trigger").ok(a.instant("TOOLS.DELETE")).cancel(a.instant("TOOLS.CANCEL")).targetEvent(e);t.show(n).then(function(){s.trigger.delete({id:c.trigger.id}).$promise.then(function(){c.triggers=_.filter(c.triggers,function(e){return e.id!==c.trigger.id}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.TRIGGER_DELETED_SUCCESS_TITLE")}),m(c.triggers)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.trigger.delete"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.trigger.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},c.closeDialog=m}e.$inject=["$mdDialog","$translate","toasty","triggers","trigger","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditTriggerDialogController",e)}(),function(){"use strict";function e(e,a,n,i,t,s,o,r){var l=this;function d(){_.some(l.triggerActions.rows,["action","contactManager"])&&(l.lists||(r.isAdmin()?o.cmList.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.lists=e.rows||[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):o.cmList.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.lists=e.rows||[]}).then(function(){return o.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return o.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(l.lists,{id:e.resourceId})}),a=null;a=[],l.triggerActions.rows.forEach(function(e){if("contactManager"===e.action){var n=_.find(l.lists,{id:Number(e.data1)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(l.lists,{id:e.id});n.canSelect=!1,t.push(n)}}),l.lists=t})}else{var t=[],a=[];l.triggerActions.rows.forEach(function(e){if("contactManager"===e.action){var n=_.find(l.lists,{id:Number(e.data1)});a.push(n)}});for(var i=0;i<l.lists.length;i++)_.some(a,{id:l.lists[i].id})&&(l.lists[i].canSelect=!1,t.push(l.lists[i]));l.lists=t}}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}))),_.some(l.triggerActions.rows,["action","integration"])&&_(l.triggerActions.rows).map(function(e){return"integration"===e.action?e.data1:void 0}).compact().uniq().value().forEach(function(e){var n=e+"Accounts";if(!l[n]){var t="int"+_.startCase(e)+"Account";o[t.replace(/\s+/g,"")].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){l[n]=e.rows||[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+n.toUpperCase()+"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}}),_.some(l.triggerActions.rows,function(e){return _.includes(["motionbar","browser"],e.action)})&&(l.templates||(r.isAdmin()?o.template.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){l.templates=e.rows||[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEMPLATES",msg:e.data?JSON.stringify(e.data):e.toString()})}):o.template.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){l.templates=e.rows||[]}).then(function(){return o.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1009}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return o.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(l.templates,{id:e.resourceId})}),a=null;a=[],l.triggerActions.rows.forEach(function(e){if(_.includes(["motionbar","browser"],e.action)){var n=_.find(l.templates,{id:Number(e.data2)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(l.templates,{id:e.id});n.canSelect=!1,t.push(n)}}),l.templates=t})}else{var t=[],a=[];l.triggerActions.rows.forEach(function(e){if(_.includes(["motionbar","browser"],e.action)){var n=_.find(l.templates,{id:Number(e.data2)});a.push(n)}});for(var i=0;i<l.templates.length;i++)_.some(a,{id:l.templates[i].id})&&(l.templates[i].canSelect=!1,t.push(l.templates[i]));l.templates=t}}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEMPLATES",msg:e.data?JSON.stringify(e.data):e.toString()})}))),_.some(l.triggerActions.rows,["action","jscripty"])&&(l.projects||(r.isAdmin()?o.jscriptyProject.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.projects=e.rows||[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PROJECTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):o.jscriptyProject.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.projects=e.rows||[]}).then(function(){return o.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1701}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return o.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(l.projects,{id:e.resourceId})}),a=null;a=[],l.triggerActions.rows.forEach(function(e){if("jscripty"===e.action){var n=_.find(l.projects,{id:Number(e.data1)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(l.projects,{id:e.id});n.canSelect=!1,t.push(n)}}),l.projects=t})}else{var t=[],a=[];l.triggerActions.rows.forEach(function(e){if("jscripty"===e.action){var n=_.find(l.projects,{id:Number(e.data1)});a.push(n)}});for(var i=0;i<l.projects.length;i++)_.some(a,{id:l.projects[i].id})&&(l.projects[i].canSelect=!1,t.push(l.projects[i]));l.projects=t}}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})})))}function c(e){l.triggerActions=e||{count:0,rows:[]},d()}function m(){l.query.offset=(l.query.page-1)*l.query.limit,l.promise=o.trigger.getActions(l.query,c).$promise}function u(e,n){o.action.delete({id:e.id}).$promise.then(function(){m(),n&&s.success({title:a.instant("TOOLS.NOTIFICATIONS.ACTION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){l.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETtrigger"}];for(var n=0;n<e.data.errors.length;n++)s.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrigger",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}l.currentUser=r.getCurrentUser(),l.trigger={},l.triggerActions={count:0,rows:[]},l.selectedTriggerActions=[],l.query={fields:"id,action,contact,data1,data2,data3,data4,data5,data6,data7,createdAt,updatedAt",limit:10,page:1},l.integrationTypes={zendesk:"Zendesk",salesforce:"Salesforce",sugarcrm:"SugarCRM",freshdesk:"Freshdesk",desk:"Desk",zoho:"Zoho",vtiger:"vTiger",dynamics365:"Dynamics365",servicenow:"ServiceNow",freshsales:"Freshsales"},l.motionBarOptions={0:"Popup",1:"CTI URL",2:"Windows App"},l.onInit=function(e,n){l.trigger=e,l.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},l.query.ActionId=l.trigger.id,l.query.id=l.trigger.id,m()},l.success=c,l.getTriggerActions=m,l.createOrEditTriggerAction=function(e,n){i.show({controller:"CreateOrEditActionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/triggers/edit/actions/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{trigger:l.trigger,action:n,actions:l.triggerActions.rows,license:null,setting:null,crudPermissions:l.crudPermissions}}).then(function(e){e&&(l.triggerActions={count:e.length,rows:e},d())})},l.exportSelectedTriggerActions=function(){var e=angular.copy(l.selectedTriggerActions);return l.selectedTriggerActions=[],e},l.deleteConfirm=function(e,n){var t=i.confirm().title(a.instant("TOOLS.NOTIFICATIONS.ACTION_DELETE_TITLE")).ariaLabel("Delete action").targetEvent(n).ok("OK").cancel(a.instant("TOOLS.CANCEL"));i.show(t).then(function(){u(e,!0)})},l.deleteSelectedTriggerActions=function(e){var n=i.confirm().title(a.instant("TOOLS.NOTIFICATIONS.ACTIONS_DELETE_TITLE")).content(a.instant("TOOLS.NOTIFICATIONS.ACTIONS_DELETE_MESSAGE",{total:l.selectedTriggerActions.length})).ariaLabel("Delete actions").targetEvent(e).ok("OK").cancel(a.instant("TOOLS.CANCEL"));i.show(n).then(function(){l.selectedTriggerActions.forEach(function(e){u(e)}),l.selectedTriggerActions=[],s.success({title:a.instant("TOOLS.NOTIFICATIONS.ACTIONS_DELETED_SUCCESS_TITLE")})})}}e.$inject=["$scope","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.tools").controller("TriggerActionsController",e)}(),function(){"use strict";function e(n,t,a,i,e,s,o,r,l,d,c,m){var u=this;function p(){return new Promise(function(n,t){l.hasSectionsPermissions([1301,1302,1303,1304,1305,1306,1307,1308,1309,1310]).then(function(e){u.hasSectionPermissions=_.merge(u.hasSectionPermissions,e),n(u.hasSectionPermissions)}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_SECTIONS_PERMISSIONS",msg:e.data?JSON.stringify(e.data):e.toString()}),t()})})}function g(){r.cmList.getCustomFields({id:u.action.data1,ListId:u.action.data1}).$promise.then(function(e){u.listFields=_.filter(e.rows,["type","text"]),u.listFields.forEach(function(e){e.columnName="cf_"+e.id})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LIST_CUSTOM_FIELDS",msg:e.data?JSON.stringify(e.data):e.toString()})})}function v(){l.isAdmin()?r.template.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){u.templates=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEMPLATES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.template.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){u.templates=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1009}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u.templates,{id:e.resourceId})}),a=null;a=[],u.actions.forEach(function(e){if(_.includes(["motionbar","browser"],e.action)){var n=_.find(u.templates,{id:Number(e.data2)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u.templates,{id:e.id});n.canSelect=!1,t.push(n)}}),u.templates=t})}else{var t=[],a=[];u.actions.forEach(function(e){if(_.includes(["motionbar","browser"],e.action)){var n=_.find(u.templates,{id:Number(e.data2)});a.push(n)}});for(var i=0;i<u.templates.length;i++){_.some(a,{id:u.templates[i].id})&&(u.templates[i].canSelect=!1,t.push(u.templates[i]))}u.templates=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEMPLATES",msg:e.data?JSON.stringify(e.data):e.toString()})})}function h(){switch(u.action.action){case"contactManager":u.lists||(l.isAdmin()?r.cmList.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){u.lists=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.cmList.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){u.lists=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u.lists,{id:e.resourceId})}),a=null;a=[],u.actions.forEach(function(e){if("contactManager"===e.action){var n=_.find(u.lists,{id:Number(e.data1)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u.lists,{id:e.id});n.canSelect=!1,t.push(n)}}),u.lists=t})}else{var t=[],a=[];u.actions.forEach(function(e){if("contactManager"===e.action){var n=_.find(u.lists,{id:Number(e.data1)});a.push(n)}});for(var i=0;i<u.lists.length;i++)_.some(a,{id:u.lists[i].id})&&(u.lists[i].canSelect=!1,t.push(u.lists[i]));u.lists=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})})),u.contactFields||r.cmContact.describe({}).$promise.then(function(e){u.contactFields=[],u.customFields=[];for(var n=_.values(e.toJSON()),t=0;t<n.length;t++)_.includes(u.allowedStandardFields,n[t].columnName)?u.contactFields.push(n[t]):_.startsWith(n[t].columnName,"cf_")&&"text"===n[t].custom.type&&u.customFields.push(n[t])}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DESCRIBE_CM_CONTACT",msg:e.data?JSON.stringify(e.data):e.toString()})}),u.action.data3=u.action.data3?u.action.data3.split(","):["phone"],"1"!==u.action.data2||u.action.data4||(u.action.data4="phone");break;case"jscripty":u.projects||(l.isAdmin()?r.jscriptyProject.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){u.projects=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PROJECTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.jscriptyProject.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){u.projects=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1701}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u.projects,{id:e.resourceId})}),a=null;a=[],u.actions.forEach(function(e){if("jscripty"===e.action){var n=_.find(u.projects,{id:Number(e.data1)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u.projects,{id:e.id});n.canSelect=!1,t.push(n)}}),u.projects=t})}else{var t=[],a=[];u.actions.forEach(function(e){if("jscripty"===e.action){var n=_.find(u.projects,{id:Number(e.data1)});a.push(n)}});for(var i=0;i<u.projects.length;i++)_.some(a,{id:u.projects[i].id})&&(u.projects[i].canSelect=!1,t.push(u.projects[i]));u.projects=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}));break;case"urlForward":u.action.data5||(u.action.data5=5)}}function f(){u.editAccount||(u.action.data2=void 0,u.action.data3=void 0),u.action.isIntegrationDisabled=!u.newAction&&!function(){switch(u.action.data1){case"zendesk":return u.hasSectionPermissions[1301];case"salesforce":return u.hasSectionPermissions[1302];case"sugarcrm":return u.hasSectionPermissions[1305];case"freshdesk":return u.hasSectionPermissions[1303];case"desk":return u.hasSectionPermissions[1306];case"zoho":return u.hasSectionPermissions[1307];case"vtiger":return u.hasSectionPermissions[1308];case"dynamics365":return u.hasSectionPermissions[1309];case"servicenow":return u.hasSectionPermissions[1310];case"freshsales":return u.hasSectionPermissions[1304]}}();var e="int"+_.capitalize(u.action.data1)+"Account";r[e].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){u.accounts=e.rows||[],u.editAccount=!1}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+u.action.data1.toUpperCase()+"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){u.action.data3=u.action.data3?u.action.data3:void 0;var e="int"+_.capitalize(u.action.data1)+"Configuration";r[e].get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){u.configurations=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+u.action.data1.toUpperCase()+"CONFIGURATIONS",msg:e.data?JSON.stringify(e.data):e.toString()})})}function A(){var e=angular.copy(u.action);return _.isArray(e.data3)&&(e.data3=u.action.data3.join(",")),e}function E(e){t.hide(e)}u.currentUser=l.getCurrentUser(),void 0!==s&&"urlForward"===s.action&&s.data5&&(s.data5=parseInt(s.data5)),u.action=angular.copy(s),u.actions=angular.copy(e),u.setting=c,u.license=d,u.crudPermissions=m,u.newAction=!1,u.errors=[],u.trigger=angular.copy(o),u.action?function(){switch(u.editAccount=!0,u.action.action){case"integration":return new Promise(function(e){e(p())}).then(function(){return u.editAccount||(u.action.data2=void 0,u.action.data3=void 0,h()),f()}).then(function(){return b()});case"motionbar":case"browser":v()}u.editAccount=!1}():(u.action={},u.newAction=!0),u.action.ActionId=n.params.id||void 0,u.allowedStandardFields=["phone","mobile","fax"],u.addNewAction=function(){u.errors=[];var e=A();r.trigger.addAction({id:n.params.id},e).$promise.then(function(e){u.actions.unshift(e.toJSON()),i.success({title:a.instant("TOOLS.NOTIFICATIONS.ACTION_CREATED_SUCCESS_TITLE")}),E(u.actions)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.action.save"}];for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.action.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveAction=function(){u.errors=[];var n=A();r.action.update({id:n.id},n).$promise.then(function(){u.actions=_.map(u.actions,function(e){return e.id===n.id?n:e}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.ACTION_SAVED_SUCCESS_TITLE")}),E(u.actions)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.action.update"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.action.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteAction=function(e){u.errors=[];var n=t.confirm({skipHide:!0}).title(a.instant("TOOLS.NOTIFICATIONS.ACTION_DELETE_TITLE")).ariaLabel("Delete action").ok(a.instant("TOOLS.DELETE")).cancel(a.instant("TOOLS.CANCEL")).targetEvent(e);t.show(n).then(function(){r.action.delete({id:u.action.id}).$promise.then(function(){u.actions=_.filter(u.actions,function(e){return e.id!==u.action.id}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.ACTION_DELETED_SUCCESS_TITLE")}),E(u.actions)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.action.delete"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.action.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.onActionInit=function(){l.hasModulePermissions("Integrations").then(function(e){u.hasIntegrationsPermissions=e}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_MODULE_PERMISSIONS",msg:e.data?JSON.stringify(e.data):e.toString()})}),u.action.action&&h()},u.onIntegrationInit=p,u.onSearchFieldsInit=function(){u.newAction||g()},u.onActionSelection=function(){u.newAction&&(u.action.data1=void 0,u.action.data2=void 0,u.action.data3=void 0,u.action.data4=void 0,u.action.data5="urlForward"===u.action.action?5:void 0,h())},u.onIntegrationSelection=f,u.onListSelection=function(){g()},u.onTypeSelection=function(){"0"!==u.action.data1||u.templates?(u.action.data2=void 0,u.action.data4="1"===u.action.data1?0:void 0):v()},u.onAutocreateSelection=function(){"0"===u.action.data2&&(u.action.data4=void 0);u.action.data4||"1"!==u.action.data2||(u.action.data4="phone")},u.onIntegrationAccountSelection=b,u.closeDialog=E,u.onActionLocationChange=function(){u.editAccount||(u.action.data5=void 0,u.action.data6=void 0)}}e.$inject=["$state","$mdDialog","$translate","toasty","actions","action","trigger","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditActionDialogController",e)}(),function(){"use strict";function e(e,l,a,n,i,t,d,c,m){var u=this;function s(){var o,r;"voice"===u.trigger.channel?(_.some(u.allConditions.rows,["field","queue"])&&(u.queues||(o=[{id:401,type:"inbound"},{id:1501,type:"outbound"}],r=null,m.isAdmin()?c.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){u.queues=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VOICEQUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):c.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){r=e.rows||[]}).then(function(){for(var e=[],n=0;n<o.length;n++)e.push(c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:o[n].id}).$promise);return l.all(e)}).then(function(e){for(var n=_.map(e,function(e){return e&&e.rows?e.rows[0]:null}),t=[],a=0;a<o.length;a++){var i=_.find(n,["sectionId",o[a].id]);if(i)if(i.autoAssociation){var s=[];r.forEach(function(e){e.type===o[a].type&&s.push(e)}),t.push({rows:s,count:s.length})}else t.push(c.userProfileResource.get({sectionId:i.id}).$promise.then(function(e){return{count:e.count,rows:_.map(e.rows,function(e){return e.id=e.resourceId,delete e.resourceId,e})}}))}return l.all(t)}).then(function(e){var t=[],a=[];u.allConditions.rows.forEach(function(e){if("queue"===e.field){var n=_.find(r,{name:e.value});a.push(n)}});for(var n=0;n<e.length;n++)(e[n].rows||[]).forEach(function(e){t.push(e)});_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(r,{id:e.id});n.canSelect=!1,t.push(n)}}),u.queues=t}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}))),_.some(u.allConditions.rows,["field","routeId"])&&(u.outboundRoutes||(m.isAdmin()?c.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){u.outboundRoutes=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}):c.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){u.outboundRoutes=e.rows||[]}).then(function(){return c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:403}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return c.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u.outboundRoutes,{id:e.resourceId})}),a=null;a=[],u.triggerAllConditions.rows.forEach(function(e){if("routeId"===e.field){var n=_.find(u.outboundRoutes,{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u.outboundRoutes,{id:e.id});n.canSelect=!1,t.push(n)}}),u.outboundRoutes=t})}else{var t=[],a=[];u.allConditions.rows.forEach(function(e){if("routeId"===e.field){var n=_.find(u.outboundRoutes,{id:Number(e.value)});a.push(n)}});for(var i=0;i<u.outboundRoutes.length;i++)_.some(a,{id:u.outboundRoutes[i].id})&&(u.outboundRoutes[i].canSelect=!1,t.push(u.outboundRoutes[i]));u.outboundRoutes=t}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}))),_.some(u.allConditions.rows,["field","agent"])&&(u.agents||(m.isAdmin()?c.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){u.agents=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):c.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){u.agents=e.rows||[]}).then(function(){return c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return c.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u.agents,{id:e.resourceId})}),a=null;a=[],u.triggerAllConditions.rows.forEach(function(e){if("agent"===e.field){var n=_.find(u.agents,{name:e.value});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u.agents,{id:e.id});n.canSelect=!1,t.push(n)}}),u.agents=t})}else{var t=[],a=[];u.allConditions.rows.forEach(function(e){if("agent"===e.field){var n=_.find(u.agents,{name:e.value});a.push(n)}});for(var i=0;i<u.agents.length;i++)_.some(a,{id:u.agents[i].id})&&(u.agents[i].canSelect=!1,t.push(u.agents[i]));u.agents=t}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})})))):function(){var e,s=u.trigger.channel+("chat"===u.trigger.channel?"Websites":"Accounts"),n=u.trigger.channel+("chat"===u.trigger.channel?"Website":"Account");switch(u.trigger.channel){case"chat":e=502;break;case"fax":e=902;break;case"mail":e=602;break;case"openchannel":e=802;break;case"sms":e=702;break;case"whatsapp":e=2102}m.isAdmin()?c[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){u[s]=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+u.trigger.channel.toUpperCase()+u.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):c[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){u[s]=e.rows||[]}).then(function(){return c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:e}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return c.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u[s],{id:e.resourceId})}),a=null;a=[],u.allConditions.rows.forEach(function(e){if("account"===e.field){var n=_.find(u[s],{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u[s],{id:e.id});n.canSelect=!1,t.push(n)}}),u[s]=t})}else{var t=[],a=[];u.allConditions.rows.forEach(function(e){if("account"===e.field){var n=_.find(u[s],{id:Number(e.value)});a.push(n)}});for(var i=0;i<u[s].length;i++)_.some(a,{id:u[s][i].id})&&(u[s][i].canSelect=!1,t.push(u[s][i]));u[s]=t}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+u.trigger.channel.toUpperCase()+u.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}()}function o(e){u.allConditions=e||{count:0,rows:[]},s()}function r(){u.query.offset=(u.query.page-1)*u.query.limit,u.promise=c.trigger.getAllConditions(u.query,o).$promise}function p(e,n){c.condition.delete({id:e.id}).$promise.then(function(){r(),n&&d.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETtrigger"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrigger",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}u.currentUser=m.getCurrentUser(),u.trigger={},u.allConditions={count:0,rows:[]},u.selectedAllConditions=[],u.query={fields:"id,field,operator,value,createdAt,updatedAt",limit:10,page:1},u.fields={queue:"Queue",lastevent:"Call_Status",routeId:"OutboundRoute",agent:"Agent",account:"Account",interaction:"Interaction",message:"Message"},u.callStatuses={abandoned:"Abandon",timeout:"Timeout",complete:"Hangup",rejected:"Reject",called:"Ring",connect:"Answer",nosuchnumber:"NoSuchNumber",busy:"Busy",noanswer:"NoAnswer",congestion:"Congestion",agentreject:"AgentReject",amd:"AMD"},u.messageStatuses={in:"Incoming",out:"Outgoing",accept:"Accepted",reject:"Rejected"},u.onInit=function(e,n){u.trigger=e,u.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},u.query.TriggerAllId=u.trigger.id,u.query.id=u.trigger.id,r()},u.success=o,u.getAllConditions=r,u.createOrEditAllCondition=function(e,n){i.show({controller:"CreateOrEditAllConditionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/triggers/edit/allconditions/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{trigger:u.trigger,allCondition:n,allConditions:u.allConditions.rows,license:null,setting:null,crudPermissions:u.crudPermissions}}).then(function(e){e&&(u.allConditions={count:e.length,rows:e},s())})},u.exportSelectedAllConditions=function(){var e=angular.copy(u.selectedAllConditions);return u.selectedAllConditions=[],e},u.deleteConfirm=function(e,n){var t=i.confirm().title(a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETE_TITLE")).ariaLabel("Delete condition").targetEvent(n).ok("OK").cancel(a.instant("TOOLS.CANCEL"));i.show(t).then(function(){p(e,!0)})},u.deleteSelectedAllConditions=function(e){var n=i.confirm().title(a.instant("TOOLS.NOTIFICATIONS.CONDITIONS_DELETE_TITLE")).content(a.instant("TOOLS.NOTIFICATIONS.CONDITIONS_DELETE_MESSAGE",{total:u.selectedAllConditions.length})).ariaLabel("Delete conditions").targetEvent(e).ok("OK").cancel(a.instant("TOOLS.CANCEL"));i.show(n).then(function(){u.selectedAllConditions.forEach(function(e){p(e)}),u.selectedAllConditions=[],d.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITIONS_DELETED_SUCCESS_TITLE")})})}}e.$inject=["$scope","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.tools").controller("TriggerAllConditionsController",e)}(),function(){"use strict";function e(e,t,l,a,i,n,s,o,d,c,r,m,u){var p=this;function g(){switch(p.allCondition.field){case"queue":p.queues||(o=[{id:401,type:"inbound"},{id:1501,type:"outbound"}],r=null,c.isAdmin()?d.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){p.queues=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VOICEQUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){r=e.rows||[]}).then(function(){for(var e=[],n=0;n<o.length;n++)e.push(d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:o[n].id}).$promise);return l.all(e)}).then(function(e){for(var n=_.map(e,function(e){return e&&e.rows?e.rows[0]:null}),t=[],a=0;a<o.length;a++){var i=_.find(n,["sectionId",o[a].id]);if(i)if(i.autoAssociation){var s=[];r.forEach(function(e){e.type===o[a].type&&s.push(e)}),t.push({rows:s,count:s.length})}else t.push(d.userProfileResource.get({sectionId:i.id}).$promise.then(function(e){return{count:e.count,rows:_.map(e.rows,function(e){return e.id=e.resourceId,delete e.resourceId,e})}}))}return l.all(t)}).then(function(e){var t=[],a=[];p.allConditions.forEach(function(e){if("queue"===e.field){var n=_.find(r,{name:e.value});a.push(n)}});for(var n=0;n<e.length;n++)(e[n].rows||[]).forEach(function(e){t.push(e)});_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(r,{id:e.id});n.canSelect=!1,t.push(n)}}),p.queues=t}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}));break;case"routeId":p.outboundRoutes||(c.isAdmin()?d.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){p.outboundRoutes=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){p.outboundRoutes=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:403}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(p.outboundRoutes,{id:e.resourceId})}),a=null;a=[],p.allConditions.forEach(function(e){if("routeId"===e.field){var n=_.find(p.outboundRoutes,{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(p.outboundRoutes,{id:e.id});n.canSelect=!1,t.push(n)}}),p.outboundRoutes=t})}else{var t=[],a=[];p.allConditions.forEach(function(e){if("routeId"===e.field){var n=_.find(p.outboundRoutes,{id:Number(e.value)});a.push(n)}});for(var i=0;i<p.outboundRoutes.length;i++)_.some(a,{id:p.outboundRoutes[i].id})&&(p.outboundRoutes[i].canSelect=!1,t.push(p.outboundRoutes[i]));p.outboundRoutes=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}));break;case"agent":p.agents||(c.isAdmin()?d.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){p.agents=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){p.agents=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(p.agents,{id:e.resourceId})}),a=null;a=[],p.allConditions.forEach(function(e){if("agent"===e.field){var n=_.find(p.agents,{name:e.value});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(p.agents,{id:e.id});n.canSelect=!1,t.push(n)}}),p.agents=t})}else{var t=[],a=[];p.allConditions.forEach(function(e){if("agent"===e.field){var n=_.find(p.agents,{name:e.value});a.push(n)}});for(var i=0;i<p.agents.length;i++)_.some(a,{id:p.agents[i].id})&&(p.agents[i].canSelect=!1,t.push(p.agents[i]));p.agents=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}));break;case"account":!function(){var e,n=p.trigger.channel+("chat"===p.trigger.channel?"Website":"Account");switch(p.trigger.channel){case"chat":e=502;break;case"fax":e=902;break;case"mail":e=602;break;case"openchannel":e=802;break;case"sms":e=702;break;case"whatsapp":e=2102}c.isAdmin()?d[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.accounts=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+p.trigger.channel.toUpperCase()+p.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.accounts=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:e}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(p.accounts,{id:e.resourceId})}),a=null;a=[],p.allConditions.forEach(function(e){if("account"===e.field){var n=_.find(p.accounts,{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(p.accounts,{id:e.id});n.canSelect=!1,t.push(n)}}),p.accounts=t})}else{var t=[],a=[];p.allConditions.forEach(function(e){if("account"===e.field){var n=_.find(p.accounts,{id:Number(e.value)});a.push(n)}});for(var i=0;i<p.accounts.length;i++)_.some(a,{id:p.accounts[i].id})&&(p.accounts[i].canSelect=!1,t.push(p.accounts[i]));p.accounts=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+p.trigger.channel.toUpperCase()+p.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}()}var o,r}function v(e){t.hide(e)}p.currentUser=c.getCurrentUser(),p.allCondition=angular.copy(s),p.allConditions=angular.copy(n),p.setting=m,p.license=r,p.crudPermissions=u,p.hasModulePermissions={},p.newAllCondition=!1,p.errors=[],p.trigger=angular.copy(o),p.allCondition?g():(p.allCondition={operator:"equals"},p.newAllCondition=!0),p.allCondition.TriggerAllId=e.params.id||void 0,p.callStatuses=[{name:"Abandon",value:"abandoned"},{name:"Timeout",value:"timeout"},{name:"Hangup",value:"complete"},{name:"Reject",value:"rejected"},{name:"Ring",value:"called"},{name:"Answer",value:"connect"},{name:"NoSuchNumber",value:"nosuchnumber"},{name:"Busy",value:"busy"},{name:"NoAnswer",value:"noanswer"},{name:"Congestion",value:"congestion"},{name:"AgentReject",value:"agentreject"},{name:"AMD",value:"amd"}],p.onFieldSelection=function(){g()},p.addNewAllCondition=function(){p.errors=[],d.trigger.addAllCondition({id:e.params.id},p.allCondition).$promise.then(function(e){p.allConditions.unshift(e.toJSON()),i.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_CREATED_SUCCESS_TITLE")}),v(p.allConditions)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.condition.save"}];for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.condition.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.saveAllCondition=function(){p.errors=[],d.condition.update({id:p.allCondition.id},p.allCondition).$promise.then(function(){p.allConditions=_.map(p.allConditions,function(e){return e.id===p.allCondition.id?p.allCondition:e}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_SAVED_SUCCESS_TITLE")}),v(p.allConditions)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.condition.update"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.condition.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.deleteAllCondition=function(e){p.errors=[];var n=t.confirm({skipHide:!0}).title(a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETE_TITLE")).ariaLabel("Delete condition").ok(a.instant("TOOLS.DELETE")).cancel(a.instant("TOOLS.CANCEL")).targetEvent(e);t.show(n).then(function(){d.condition.delete({id:p.allCondition.id}).$promise.then(function(){p.allConditions=_.filter(p.allConditions,function(e){return e.id!==p.allCondition.id}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETED_SUCCESS_TITLE")}),v(p.allConditions)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.condition.delete"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.condition.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},p.closeDialog=v}e.$inject=["$state","$mdDialog","$q","$translate","toasty","allConditions","allCondition","trigger","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditAllConditionDialogController",e)}(),function(){"use strict";function e(e,l,a,n,i,t,d,c,m){var u=this;function s(){var o,r;"voice"===u.trigger.channel?(_.some(u.anyConditions.rows,["field","queue"])&&(u.queues||(o=[{id:401,type:"inbound"},{id:1501,type:"outbound"}],r=null,m.isAdmin()?c.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){u.queues=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VOICEQUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):c.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){r=e.rows||[]}).then(function(){for(var e=[],n=0;n<o.length;n++)e.push(c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:o[n].id}).$promise);return l.all(e)}).then(function(e){for(var n=_.map(e,function(e){return e&&e.rows?e.rows[0]:null}),t=[],a=0;a<o.length;a++){var i=_.find(n,["sectionId",o[a].id]);if(i)if(i.autoAssociation){var s=[];r.forEach(function(e){e.type===o[a].type&&s.push(e)}),t.push({rows:s,count:s.length})}else t.push(c.userProfileResource.get({sectionId:i.id}).$promise.then(function(e){return{count:e.count,rows:_.map(e.rows,function(e){return e.id=e.resourceId,delete e.resourceId,e})}}))}return l.all(t)}).then(function(e){var t=[],a=[];u.anyConditions.rows.forEach(function(e){if("queue"===e.field){var n=_.find(r,{name:e.value});a.push(n)}});for(var n=0;n<e.length;n++)(e[n].rows||[]).forEach(function(e){t.push(e)});_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(r,{id:e.id});n.canSelect=!1,t.push(n)}}),u.queues=t}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}))),_.some(u.anyConditions.rows,["field","routeId"])&&(u.outboundRoutes||(m.isAdmin()?c.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){u.outboundRoutes=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}):c.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){u.outboundRoutes=e.rows||[]}).then(function(){return c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:403}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return c.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u.outboundRoutes,{id:e.resourceId})}),a=null;a=[],u.anyConditions.rows.forEach(function(e){if("routeId"===e.field){var n=_.find(u.outboundRoutes,{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u.outboundRoutes,{id:e.id});n.canSelect=!1,t.push(n)}}),u.outboundRoutes=t})}else{var t=[],a=[];u.anyConditions.rows.forEach(function(e){if("routeId"===e.field){var n=_.find(u.outboundRoutes,{id:Number(e.value)});a.push(n)}});for(var i=0;i<u.outboundRoutes.length;i++)_.some(a,{id:u.outboundRoutes[i].id})&&(u.outboundRoutes[i].canSelect=!1,t.push(u.outboundRoutes[i]));u.outboundRoutes=t}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}))),_.some(u.anyConditions.rows,["field","agent"])&&(u.agents||(m.isAdmin()?c.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){u.agents=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):c.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){u.agents=e.rows||[]}).then(function(){return c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return c.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u.agents,{id:e.resourceId})}),a=null;a=[],u.anyConditions.rows.forEach(function(e){if("agent"===e.field){var n=_.find(u.agents,{name:e.value});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u.agents,{id:e.id});n.canSelect=!1,t.push(n)}}),u.agents=t})}else{var t=[],a=[];u.anyConditions.rows.forEach(function(e){if("agent"===e.field){var n=_.find(u.agents,{name:e.value});a.push(n)}});for(var i=0;i<u.agents.length;i++)_.some(a,{id:u.agents[i].id})&&(u.agents[i].canSelect=!1,t.push(u.agents[i]));u.agents=t}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})})))):function(){var e,s=u.trigger.channel+("chat"===u.trigger.channel?"Websites":"Accounts"),n=u.trigger.channel+("chat"===u.trigger.channel?"Website":"Account");switch(u.trigger.channel){case"chat":e=502;break;case"fax":e=902;break;case"mail":e=602;break;case"openchannel":e=802;break;case"sms":e=702;break;case"whatsapp":e=2102}m.isAdmin()?c[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){u[s]=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+u.trigger.channel.toUpperCase()+u.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):c[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){u[s]=e.rows||[]}).then(function(){return c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:e}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return c.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u[s],{id:e.resourceId})}),a=null;a=[],u.anyConditions.rows.forEach(function(e){if("account"===e.field){var n=_.find(u[s],{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u[s],{id:e.id});n.canSelect=!1,t.push(n)}}),u[s]=t})}else{var t=[],a=[];u.anyConditions.rows.forEach(function(e){if("account"===e.field){var n=_.find(u[s],{id:Number(e.value)});a.push(n)}});for(var i=0;i<u[s].length;i++)_.some(a,{id:u[s][i].id})&&(u[s][i].canSelect=!1,t.push(u[s][i]));u[s]=t}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+u.trigger.channel.toUpperCase()+u.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}()}function o(e){u.anyConditions=e||{count:0,rows:[]},s()}function r(){u.query.offset=(u.query.page-1)*u.query.limit,u.promise=c.trigger.getAnyConditions(u.query,o).$promise}function p(e,n){c.condition.delete({id:e.id}).$promise.then(function(){r(),n&&d.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETtrigger"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrigger",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}u.currentUser=m.getCurrentUser(),u.trigger={},u.anyConditions={count:0,rows:[]},u.selectedAnyConditions=[],u.query={fields:"id,field,operator,value,createdAt,updatedAt",limit:10,page:1},u.fields={queue:"Queue",lastevent:"Call_Status",routeId:"OutboundRoute",agent:"Agent",account:"Account",interaction:"Interaction",message:"Message"},u.callStatuses={abandoned:"Abandon",timeout:"Timeout",complete:"Hangup",rejected:"Reject",called:"Ring",connect:"Answer",nosuchnumber:"NoSuchNumber",busy:"Busy",noanswer:"NoAnswer",congestion:"Congestion",agentreject:"AgentReject",amd:"AMD"},u.messageStatuses={in:"Incoming",out:"Outgoing",accept:"Accepted",reject:"Rejected"},u.onInit=function(e,n){u.trigger=e,u.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},u.query.TriggerAnyId=u.trigger.id,u.query.id=u.trigger.id,r()},u.success=o,u.getAnyConditions=r,u.createOrEditAnyCondition=function(e,n){i.show({controller:"CreateOrEditAnyConditionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/triggers/edit/anyconditions/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{trigger:u.trigger,anyCondition:n,anyConditions:u.anyConditions.rows,license:null,setting:null,crudPermissions:u.crudPermissions}}).then(function(e){e&&(u.anyConditions={count:e.length,rows:e},s())})},u.exportSelectedAnyConditions=function(){var e=angular.copy(u.selectedAnyConditions);return u.selectedAnyConditions=[],e},u.deleteConfirm=function(e,n){var t=i.confirm().title(a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETE_TITLE")).ariaLabel("Delete condition").targetEvent(n).ok("OK").cancel(a.instant("TOOLS.CANCEL"));i.show(t).then(function(){p(e,!0)})},u.deleteAnyCondition=p,u.deleteSelectedAnyConditions=function(e){var n=i.confirm().title(a.instant("TOOLS.NOTIFICATIONS.CONDITIONS_DELETE_TITLE")).content(a.instant("TOOLS.NOTIFICATIONS.CONDITIONS_DELETE_MESSAGE",{total:u.selectedAnyConditions.length})).ariaLabel("Delete conditions").targetEvent(e).ok("OK").cancel(a.instant("TOOLS.CANCEL"));i.show(n).then(function(){u.selectedAnyConditions.forEach(function(e){p(e)}),u.selectedAnyConditions=[],d.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITIONS_DELETED_SUCCESS_TITLE")})})}}e.$inject=["$scope","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.tools").controller("TriggerAnyConditionsController",e)}(),function(){"use strict";function e(e,t,l,a,i,n,s,o,d,c,r,m,u){var p=this;function g(){switch(p.anyCondition.field){case"queue":p.queues||(o=[{id:401,type:"inbound"},{id:1501,type:"outbound"}],r=null,c.isAdmin()?d.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){p.queues=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VOICEQUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){r=e.rows||[]}).then(function(){for(var e=[],n=0;n<o.length;n++)e.push(d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:o[n].id}).$promise);return l.all(e)}).then(function(e){for(var n=_.map(e,function(e){return e&&e.rows?e.rows[0]:null}),t=[],a=0;a<o.length;a++){var i=_.find(n,["sectionId",o[a].id]);if(i)if(i.autoAssociation){var s=[];r.forEach(function(e){e.type===o[a].type&&s.push(e)}),t.push({rows:s,count:s.length})}else t.push(d.userProfileResource.get({sectionId:i.id}).$promise.then(function(e){return{count:e.count,rows:_.map(e.rows,function(e){return e.id=e.resourceId,delete e.resourceId,e})}}))}return l.all(t)}).then(function(e){var t=[],a=[];p.anyConditions.forEach(function(e){if("queue"===e.field){var n=_.find(r,{name:e.value});a.push(n)}});for(var n=0;n<e.length;n++)(e[n].rows||[]).forEach(function(e){t.push(e)});_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(r,{id:e.id});n.canSelect=!1,t.push(n)}}),p.queues=t}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}));break;case"routeId":p.outboundRoutes||(c.isAdmin()?d.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){p.outboundRoutes=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){p.outboundRoutes=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:403}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(p.outboundRoutes,{id:e.resourceId})}),a=null;a=[],p.anyConditions.forEach(function(e){if("routeId"===e.field){var n=_.find(p.outboundRoutes,{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(p.outboundRoutes,{id:e.id});n.canSelect=!1,t.push(n)}}),p.outboundRoutes=t})}else{var t=[],a=[];p.anyConditions.forEach(function(e){if("routeId"===e.field){var n=_.find(p.outboundRoutes,{id:Number(e.value)});a.push(n)}});for(var i=0;i<p.outboundRoutes.length;i++)_.some(a,{id:p.outboundRoutes[i].id})&&(p.outboundRoutes[i].canSelect=!1,t.push(p.outboundRoutes[i]));p.outboundRoutes=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}));break;case"agent":p.agents||(c.isAdmin()?d.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){p.agents=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){p.agents=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(p.agents,{id:e.resourceId})}),a=null;a=[],p.anyConditions.forEach(function(e){if("agent"===e.field){var n=_.find(p.agents,{name:e.value});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(p.agents,{id:e.id});n.canSelect=!1,t.push(n)}}),p.agents=t})}else{var t=[],a=[];p.anyConditions.forEach(function(e){if("agent"===e.field){var n=_.find(p.agents,{name:e.value});a.push(n)}});for(var i=0;i<p.agents.length;i++)_.some(a,{id:p.agents[i].id})&&(p.agents[i].canSelect=!1,t.push(p.agents[i]));p.agents=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}));break;case"account":!function(){var e,n=p.trigger.channel+("chat"===p.trigger.channel?"Website":"Account");switch(p.trigger.channel){case"chat":e=502;break;case"fax":e=902;break;case"mail":e=602;break;case"openchannel":e=802;break;case"sms":e=702;break;case"whatsapp":e=2102}c.isAdmin()?d[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.accounts=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+p.trigger.channel.toUpperCase()+p.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.accounts=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:e}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(p.accounts,{id:e.resourceId})}),a=null;a=[],p.anyConditions.forEach(function(e){if("account"===e.field){var n=_.find(p.accounts,{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(p.accounts,{id:e.id});n.canSelect=!1,t.push(n)}}),p.accounts=t})}else{var t=[],a=[];p.anyConditions.forEach(function(e){if("account"===e.field){var n=_.find(p.accounts,{id:Number(e.value)});a.push(n)}});for(var i=0;i<p.accounts.length;i++)_.some(a,{id:p.accounts[i].id})&&(p.accounts[i].canSelect=!1,t.push(p.accounts[i]));p.accounts=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+p.trigger.channel.toUpperCase()+p.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}()}var o,r}function v(e){t.hide(e)}p.currentUser=c.getCurrentUser(),p.anyCondition=angular.copy(s),p.anyConditions=angular.copy(n),p.setting=m,p.license=r,p.crudPermissions=u,p.hasModulePermissions={},p.newAnyCondition=!1,p.errors=[],p.trigger=angular.copy(o),p.anyCondition?g():(p.anyCondition={operator:"equals"},p.newAnyCondition=!0),p.anyCondition.TriggerAnyId=e.params.id||void 0,p.callStatuses=[{name:"Abandon",value:"abandoned"},{name:"Timeout",value:"timeout"},{name:"Hangup",value:"complete"},{name:"Reject",value:"rejected"},{name:"Ring",value:"called"},{name:"Answer",value:"connect"},{name:"NoSuchNumber",value:"nosuchnumber"},{name:"Busy",value:"busy"},{name:"NoAnswer",value:"noanswer"},{name:"Congestion",value:"congestion"},{name:"AgentReject",value:"agentreject"},{name:"AMD",value:"amd"}],p.onFieldSelection=function(){g()},p.addNewAnyCondition=function(){p.errors=[],d.trigger.addAnyCondition({id:e.params.id},p.anyCondition).$promise.then(function(e){p.anyConditions.unshift(e.toJSON()),i.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_CREATED_SUCCESS_TITLE")}),v(p.anyConditions)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.condition.save"}];for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.condition.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.saveAnyCondition=function(){p.errors=[],d.condition.update({id:p.anyCondition.id},p.anyCondition).$promise.then(function(){p.anyConditions=_.map(p.anyConditions,function(e){return e.id===p.anyCondition.id?p.anyCondition:e}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_SAVED_SUCCESS_TITLE")}),v(p.anyConditions)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.condition.update"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.condition.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.deleteAnyCondition=function(e){p.errors=[];var n=t.confirm({skipHide:!0}).title(a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETE_TITLE")).ariaLabel("Delete condition").ok(a.instant("TOOLS.DELETE")).cancel(a.instant("TOOLS.CANCEL")).targetEvent(e);t.show(n).then(function(){d.condition.delete({id:p.anyCondition.id}).$promise.then(function(){p.anyConditions=_.filter(p.anyConditions,function(e){return e.id!==p.allCondition.id}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETED_SUCCESS_TITLE")}),v(p.anyConditions)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.condition.delete"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.condition.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},p.closeDialog=v}e.$inject=["$state","$mdDialog","$q","$translate","toasty","anyConditions","anyCondition","trigger","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditAnyConditionDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l){var d=this;d.currentUser=o.getCurrentUser(),d.license=t,d.setting=a,d.trigger=r||e.params.trigger||{},d.selectedTab=e.params.tab||0,e.params.crudPermissions?d.crudPermissions=e.params.crudPermissions:(d.userProfileSection=l&&1==l.count?l.rows[0]:null,d.crudPermissions=o.parseCrudPermissions(d.userProfileSection?d.userProfileSection.crudPermissions:null)),d.gotoTriggers=function(){e.go("app.tools.triggers",{},{reload:"app.tools.triggers"})},d.saveTrigger=function(){i.trigger.update({id:d.trigger.id},d.trigger).$promise.then(function(){s.success({title:n.instant("TOOLS.NOTIFICATIONS.TRIGGER_SAVED_SUCCESS_TITLE")})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrigger",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$translate","license","setting","api","toasty","Auth","trigger","userProfileSection"],angular.module("app.tools").controller("TriggerController",e)}(),function(){"use strict";function e(e,n,a,t,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){n.go("app.tools.triggers.edit",{id:e.id,trigger:e,crudPermissions:g.crudPermissions})}function h(e){g.triggers=e||{count:0,rows:[]}}function f(){g.query.offset=(g.query.page-1)*g.query.limit,m.isAdmin()?g.promise=d.trigger.get(g.query,h).$promise:(g.query.id=g.userProfile.id,g.query.section="Triggers",g.promise=d.userProfile.getResources(g.query,h).$promise)}function b(e,n){d.trigger.delete({id:e.id}).$promise.then(function(){f(),n&&c.success({title:s.instant("TOOLS.NOTIFICATIONS.TRIGGER_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEtrigger"}];for(var n=0;n<e.data.errors.length;n++)c.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEtrigger",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}g.license=u,g.setting=p,g.currentUser=m.getCurrentUser(),g.triggers=o||{count:0,rows:[]},g.userProfile=r,g.userProfileSection=l&&1==l.count?l.rows[0]:null,g.crudPermissions=m.parseCrudPermissions(g.userProfileSection?g.userProfileSection.crudPermissions:null),g.selectedTriggers=[],g.query={fields:"id,name,channel,status,description,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},g.goToEditState=v,g.createOrEditTrigger=function(e,n){if(g.crudPermissions.readOnly||g.crudPermissions.canDelete&&!g.crudPermissions.canEdit)return void v(n);a.show({controller:"CreateOrEditTriggerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/triggers/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{trigger:n,triggers:g.triggers.rows,license:g.license,setting:g.setting,crudPermissions:g.crudPermissions}}).then(function(e){e&&(g.triggers={count:e.length,rows:e})})},g.success=h,g.getTriggers=f,g.deleteconfirm=function(e,n){var t=a.confirm().title(s.instant("TOOLS.NOTIFICATIONS.TRIGGER_DELETE_TITLE")).content(s.instant("TOOLS.NOTIFICATIONS.TRIGGER_DELETE_MESSAGE",{name:e.name})).ariaLabel("Delete trigger").targetEvent(n).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(t).then(function(){b(e,!0)})},g.exportSelectedTriggers=function(){var e=angular.copy(g.selectedTriggers);return g.selectedTriggers=[],e},g.deleteSelectedTriggers=function(e){var n=a.confirm().title(s.instant("TOOLS.NOTIFICATIONS.TRIGGERS_DELETE_TITLE")).content(s.instant("TOOLS.NOTIFICATIONS.TRIGGERS_DELETE_MESSAGE",{total:g.selectedTriggers.length})).ariaLabel("Delete triggers").targetEvent(e).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(n).then(function(){g.selectedTriggers.forEach(function(e){b(e)}),g.selectedTriggers=[],c.success({title:s.instant("TOOLS.NOTIFICATIONS.TRIGGERS_DELETED_SUCCESS_TITLE")})})},g.deselectTriggers=function(){g.selectedTriggers=[]},g.selectAllTriggers=function(){g.selectedTriggers=g.triggers.rows};var A=!0,E=1;e.$watch("vm.query.filter",function(e,n){A?i(function(){A=!1}):(n||(E=g.query.page),e!==n&&(g.query.page=1),e||(g.query.page=E),f())})}e.$inject=["$scope","$state","$mdDialog","$document","$timeout","$translate","triggers","userProfile","userProfileSection","api","toasty","Auth","license","setting"],angular.module("app.tools").controller("TriggersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_TRUNK",g.trunk=angular.copy(l),g.trunks=r,g.newTrunk=!1,g.trunk||(g.trunk={active:!0,type:"friend",dtmfmode:"rfc2833",qualify:"yes",t38pt_udptl:"no"},g.title="TOOLS.NEW_TRUNK",g.newTrunk=!0),g.addNewTrunk=function(){g.errors=[],d.trunk.save(g.trunk).$promise.then(function(e){g.trunks.unshift(e.toJSON()),o.success({title:"Trunk properly created",msg:g.trunk.name?g.trunk.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.trunk.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.trunk.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveTrunk=function(){g.errors=[],d.trunk.update({id:g.trunk.id},g.trunk).$promise.then(function(e){var n=_.find(g.trunks,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Trunk properly saved!",msg:g.trunk.name?g.trunk.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.trunk.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.trunk.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteTrunk=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The trunk will be deleted.").ariaLabel("Delete Trunk").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.trunk.delete({id:g.trunk.id}).$promise.then(function(){_.remove(g.trunks,{id:g.trunk.id}),o.success({title:"Trunk properly deleted!",msg:(g.trunk.name||"trunk")+" has been deleted!"}),v(g.trunk)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.trunk.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.trunk.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","trunks","trunk","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditTrunkDialogController",e)}(),function(){"use strict";function e(n,t,a,e,i,s,o){var r=this;function l(e){n.hide(e)}r.newTrunk=!0,r.trunk=angular.copy(i),r.trunks=s,r.title=o.instant("TOOLS.CLONE_TRUNK"),i&&i.name&&(r.title+=": "+i.name),r.cloneTrunk=function(){return e.trunk.clone({id:i.id},r.trunk).$promise.then(function(e){r.trunks.unshift(e.toJSON()),a.success({title:"Trunk properly cloned",msg:r.trunk.name?r.trunk.name+" has been cloned!":""}),t.go("app.tools.trunks.edit",{id:e.id}),l(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){r.errors=e.data.errors||[{message:e.toString(),type:"api.trunk.clone"}];for(var n=0;n<e.data.errors.length;n+=1)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.trunk.clone",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},r.closeDialog=l}e.$inject=["$mdDialog","$state","toasty","api","trunk","trunks","$translate"],angular.module("app.tools").controller("TrunkcloneController",e)}(),function(){"use strict";function e(t,e,a,i,s,n,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=n,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=e.protocol()+"://"+e.host(),u.trunk=c||t.params.trunk||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=t.params.tab||0,u.gotogoto=function(e,n){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:411}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.voice.realtime.trunks",{}):l.info({title:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.voice.realtime.trunks",{})}},u.clonedialog=function(e,n){a.show({controller:"TrunkcloneController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/trunks/edit/clone/clone.html",parent:angular.element(i.body),targetEvent:n,clickOutsideToClose:!0,locals:{trunk:e,trunks:u.trunks?u.trunks.rows:[],crudPermissions:u.crudPermissions}})},u.alert=l.info,u.gotoTrunks=function(){t.go("app.tools.trunks",{},{reload:"app.tools.trunks"})},u.saveTrunk=function(){r.trunk.update({id:u.trunk.id},u.trunk).$promise.then(function(){l.success({title:"Trunk updated!",msg:u.trunk.name?u.trunk.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunk",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_CONTEXTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:405}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;return n?n.autoAssociation?void 0:r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.contexts,{id:e.resourceId})}),t=null;if(u.trunk&&(t=_.find(u.contexts,{name:u.trunk.context})),t&&!_.some(n,["id",t.id])){var a=_.find(u.contexts,{id:t.id});a.canSelect=!1,n.push(a)}u.contexts=n}):r.voiceContext.get({fields:"id,name",sort:"name",defaultEntry:1}).$promise.then(function(e){u.contexts=e.rows||[]})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","trunk","userProfileSection"],angular.module("app.tools").controller("TrunkController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.trunks=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="trunks",f.listOrder="",f.listOrderAsc=null,f.selectedTrunks=[],f.query={fields:"createdAt,updatedAt,id,name,active,host,secret,defaultuser,context,callerid,type,dtmfmode,nat,qualify,allow,insecure,call_limit,registry,description,directmedia,callcounter,fromdomain,fromuser,outboundproxy,usereqphone,trustrpid,sendrpid,encryption,port,transport,t38pt_udptl,videosupport,otherFields",sort:"-updatedAt",limit:10,page:1},f.arraytype=_.keyBy([{option:"Friend",value:"'friend'"},{option:"User",value:"'user'"},{option:"Peer",value:"'peer'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraydtmfmode=_.keyBy([{option:"rfc2833",value:"'rfc2833'"},{option:"info",value:"'info'"},{option:"shortinfo",value:"'shortinfo'"},{option:"inband",value:"'inband'"},{option:"auto",value:"'auto'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraynat=_.keyBy([{option:"force_rport",value:"'force_rport'"},{option:"comedia",value:"'comedia'"},{option:"yes",value:"'yes'"},{option:"no",value:"'no'"},{option:"never",value:"'never'"},{option:"route",value:"'route'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayqualify=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayallow=_.keyBy([{option:"ulaw",value:"'ulaw'"},{option:"alaw",value:"'alaw'"},{option:"gsm",value:"'gsm'"},{option:"g723",value:"'g723'"},{option:"g726",value:"'g726'"},{option:"g722",value:"'g722'"},{option:"g729",value:"'g729'"},{option:"ilbc",value:"'ilbc'"},{option:"opus",value:"'opus'"},{option:"h264",value:"'h264'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayinsecure=_.keyBy([{option:"port",value:"'port'"},{option:"invite",value:"'invite'"},{option:"very",value:"'very'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraydirectmedia=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"},{option:"nonat",value:"'nonat'"},{option:"update",value:"'update'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraycallcounter=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayusereqphone=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraytrustrpid=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysendrpid=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"},{option:"pai",value:"'pai'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayencryption=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraytransport=_.keyBy([{option:"udp",value:"'udp'"},{option:"tcp",value:"'tcp'"},{option:"ws",value:"'ws'"},{option:"wss",value:"'wss'"},{option:"tls",value:"'tls'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayvideosupport=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"},{option:"Always",value:"'always'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.tools.trunks.edit",{id:e.id,trunk:e,crudPermissions:f.crudPermissions})},f.clonedialog=function(e,n){i.show({controller:"TrunkcloneController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/trunks/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{trunk:e,trunks:f.trunks?f.trunks.rows:[],crudPermissions:f.crudPermissions}})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:411}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.voice.realtime.trunks",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.voice.realtime.trunks",{})}},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("trunk")+"?").htmlContent("<b>"+(e.name||"trunk")+"</b> will be deleted.").ariaLabel("delete trunk").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getTrunks=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.trunk.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Trunks",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditTrunk=function(e,n){i.show({controller:"CreateOrEditTrunkDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/trunks/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{trunk:n,trunks:f.trunks.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteTrunk=y,f.exportSelectedTrunks=function(){var e=angular.copy(f.selectedTrunks);return f.selectedTrunks=[],e},f.deleteSelectedTrunks=function(e){var n=i.confirm().title("Are you sure want to delete the selected trunks?").htmlContent("<b>"+f.selectedTrunks.length+" selected</b> will be deleted.").ariaLabel("delete Trunks").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedTrunks.forEach(function(e){y(e)}),f.selectedTrunks=[]})},f.deselectTrunks=function(){f.selectedTrunks=[]},f.selectAllTrunks=function(){f.selectedTrunks=f.trunks.rows};var b=!0,A=1;function E(e){f.trunks=e||{count:0,rows:[]}}function y(e){m.trunk.delete({id:e.id}).$promise.then(function(){_.remove(f.trunks.rows,{id:e.id}),f.trunks.count-=1,f.trunks.rows.length||f.getTrunks(),p.success({title:_.startCase("Trunk")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEtrunk"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEtrunk",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getTrunks())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","trunks","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("TrunksController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_VARIABLE",g.variable=angular.copy(l),g.variables=r,g.newVariable=!1,g.variable||(g.variable={},g.title="TOOLS.NEW_VARIABLE",g.newVariable=!0),g.addNewVariable=function(){g.errors=[],d.variable.save(g.variable).$promise.then(function(e){g.variables.unshift(e.toJSON()),o.success({title:"Variable properly created",msg:g.variable.name?g.variable.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.variable.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.variable.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveVariable=function(){g.errors=[],d.variable.update({id:g.variable.id},g.variable).$promise.then(function(e){var n=_.find(g.variables,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Variable properly saved!",msg:g.variable.name?g.variable.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.variable.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.variable.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteVariable=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The variable will be deleted.").ariaLabel("Delete Variable").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.variable.delete({id:g.variable.id}).$promise.then(function(){_.remove(g.variables,{id:g.variable.id}),o.success({title:"Variable properly deleted!",msg:(g.variable.name||"variable")+" has been deleted!"}),v(g.variable)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.variable.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.variable.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","variables","variable","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditVariableDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.variables=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="variables",f.listOrder="",f.listOrderAsc=null,f.selectedVariables=[],f.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditVariableDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/variables/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{variable:e,variables:f.variables.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("variable")+"?").htmlContent("<b>"+(e.name||"variable")+"</b> will be deleted.").ariaLabel("delete variable").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getVariables=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.variable.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Variables",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditVariable=function(e,n){i.show({controller:"CreateOrEditVariableDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/variables/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{variable:n,variables:f.variables.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteVariable=y,f.exportSelectedVariables=function(){var e=angular.copy(f.selectedVariables);return f.selectedVariables=[],e},f.deleteSelectedVariables=function(e){var n=i.confirm().title("Are you sure want to delete the selected variables?").htmlContent("<b>"+f.selectedVariables.length+" selected</b> will be deleted.").ariaLabel("delete Variables").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedVariables.forEach(function(e){y(e)}),f.selectedVariables=[]})},f.deselectVariables=function(){f.selectedVariables=[]},f.selectAllVariables=function(){f.selectedVariables=f.variables.rows};var b=!0,A=1;function E(e){f.variables=e||{count:0,rows:[]}}function y(e){m.variable.delete({id:e.id}).$promise.then(function(){_.remove(f.variables.rows,{id:e.id}),f.variables.count-=1,f.variables.rows.length||f.getVariables(),p.success({title:_.startCase("Variable")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvariable"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvariable",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getVariables())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","variables","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("VariablesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VIDEO.EDIT_SCREENRECORDING",g.screenRecording=angular.copy(l),g.screenRecordings=r,g.newscreenRecording=!1,g.screenRecording||(g.screenRecording={},g.title="VIDEO.NEW_SCREENRECORDING",g.newscreenRecording=!0),g.addNewscreenRecording=function(){g.errors=[],d.screenRecording.save(g.screenRecording).$promise.then(function(e){g.screenRecordings.unshift(e.toJSON()),o.success({title:"screenRecording properly created",msg:g.screenRecording.name?g.screenRecording.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.screenRecording.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.screenRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.savescreenRecording=function(){g.errors=[],d.screenRecording.update({id:g.screenRecording.id},g.screenRecording).$promise.then(function(e){var n=_.find(g.screenRecordings,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"screenRecording properly saved!",msg:g.screenRecording.name?g.screenRecording.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.screenRecording.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.screenRecording.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deletescreenRecording=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The screenRecording will be deleted.").ariaLabel("Delete screenRecording").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.screenRecording.delete({id:g.screenRecording.id}).$promise.then(function(){_.remove(g.screenRecordings,{id:g.screenRecording.id}),o.success({title:"screenRecording properly deleted!",msg:(g.screenRecording.name||"screenRecording")+" has been deleted!"}),v(g.screenRecording)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.screenRecording.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.screenRecording.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,d.user.get({fields:"id,name,fullname",sort:"name",nolimit:"true"}).$promise.then(function(e){g.users=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_USERS",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","screenRecordings","screenRecording","api","Auth","license","setting","crudPermissions"],angular.module("app.video").controller("CreateOrEditscreenRecordingDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c,m=this;if(m.loading=!1,m.recording=Object.assign({},i),m.route="screenRecording",m.element=l,m.actionOptions=Object.assign({},s),m.path=r,m.label=o,m.app="video",m.model="screenRecording",console.log("TCL: vm.path",m.path),console.log("TCL: vm.recording[vm.path]",m.recording[m.path]),m.filename=-1<m.recording[m.path].indexOf("/")?m.recording[m.path].substring(m.recording[m.path].lastIndexOf("/")+1):-1<m.recording[m.path].indexOf("\\")?m.recording[m.path].substring(m.recording[m.path].lastIndexOf("\\")+1):m.recording[m.path],m.format=!1,_.isNil(m.recording.format)&&(m.recording.format=m.filename.slice(m.filename.lastIndexOf("."))),(".wav"===m.recording.format&&"audio"===m.element||".mp4"===m.recording.format&&"video"===m.element)&&(m.format=!0),m.found=!0,m.format&&(c=d.defer(),a.screenRecording.download({id:m.recording.id,path:String(m.path)}).$promise.then(function(e){m.format=!0,m.found=!0,c.resolve()}).catch(function(e){console.log("err"),m.format=!1,m.found=!1,c.resolve()}),c.promise),!_.isNil(s.properties)&&s.properties){if(m.properties=Object.assign({},i),Object.keys(i).forEach(function(e){String(e[0].toUpperCase())===String(e[0])&&delete m.properties[e]}),m.propertiesDefault={},!_.isNil(s.propertiesList)&&0<s.propertiesList.length){m.propertiesDefault=Object.assign({},i);var u=s.propertiesList,p=Object.keys(i),g=!0;p.forEach(function(n){g=!0,u.forEach(function(e){String(n)===String(e)&&(g=!1)}),g&&delete m.propertiesDefault[n]}),m.properties=m.propertiesDefault}if(!_.isNil(s.extraData)&&0<s.extraData.length){m.propertiesExtra={};for(var v=s.extraData,h=0;h<v.length;h++)for(var f=v[h].values,b=v[h].model,A=0;A<f.length;A++)m.propertiesExtra[f[A].text]=i[b][f[A].key];m.properties=Object.assign({},m.propertiesDefault,m.propertiesExtra)}}m.closeDialog=function(){n.hide()}}e.$inject=["$scope","$mdDialog","toasty","api","recording","actionOptions","label","varPath","elementTag","$q"],angular.module("app.video").controller("screenRecordingplayController",e)}(),function(){"use strict";function e(e,n,t,a,r,l,i,o,s,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.screenRecordings=s||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="screenRecordings",f.listOrder="",f.listOrderAsc=null,f.selectedScreenRecordings=[],f.query={fields:"createdAt,updatedAt,id,interactionid,channel,format,value,rating,UserId,duration,startedAt,closedAt",createdAt:"@msUtils.firstLastDayMonth()",includeAll:"true",sort:"-updatedAt",limit:10,page:1},f.query.createdAt=u.firstLastDayMonth(),f.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE_RANGE"}],f.playrecording=function(e,n,t,a,i){var s={route:"screenRecording",name:"screenRecordings",model:"screenRecording",singular:"screenRecording"},a=String(a),o=String(t);console.log("TCL: path",String(t)),r.show({controller:"screenRecordingplayController",controllerAs:"vm",templateUrl:"app/main/apps/video/views/screenRecordings/partialViews/play.html",parent:angular.element(l.body),targetEvent:n,clickOutsideToClose:!0,locals:{recording:e,recordings:f.screenRecordings.rows,license:f.license,setting:null,item:s,actionOptions:{upperTitle:!1,lowerTitle:!0,properties:!0,propertiesIcon:"icon-video",propertiesList:["format","interactionid","duration","startedAt","closedAt","createdAt"],extraData:[{model:"User",values:[{key:"name",text:"agentname"}]}]},label:a,varPath:o,elementTag:String(i)}})},f.downloadfile2=function(e,n){var t=!1,a=_.isNil(e.format)?e.value.substring(e.value.lastIndexOf(".")):e.format;t=".mp4"===a;var s=-1<e.value.lastIndexOf("/")?e.value.substring(e.value.lastIndexOf("/")+1):-1<e.value.lastIndexOf("\\")?e.value.substring(e.value.lastIndexOf("\\")+1):e.value;return m.screenRecording.download({id:e.id}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=s;var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else"404"===String(e.status)&&!1===t?p.info({title:o.instant("VIDEO.CANT_DOWNLOAD_THIS_FILE"),msg:o.instant("VIDEO.WRONG_EXTENSION")}):"404"===String(e.status)?p.info({title:o.instant("VIDEO.CANT_DOWNLOAD_THIS_FILE"),msg:o.instant("VIDEO.FILE_NOT_FOUND")}):p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.screenRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},f.deleteconfirm=function(e,n){var t=r.confirm().title("Are you sure want to delete the "+_.startCase("screenRecording")+"?").htmlContent("<b>"+(e.name||"screenRecording")+"</b> will be deleted.").ariaLabel("delete screenRecording").targetEvent(n).ok("OK").cancel("CANCEL");r.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getScreenRecordings=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.screenRecording.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ScreenRecordings",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditscreenRecording=function(e,n){r.show({controller:"CreateOrEditscreenRecordingDialogController",controllerAs:"vm",templateUrl:"app/main/apps/video/views/screenRecordings/create/dialog.html",parent:angular.element(l.body),targetEvent:e,clickOutsideToClose:!0,locals:{screenRecording:n,screenRecordings:f.screenRecordings.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deletescreenRecording=y,f.exportSelectedScreenRecordings=function(){var e=angular.copy(f.selectedScreenRecordings);return f.selectedScreenRecordings=[],e},f.deleteSelectedScreenRecordings=function(e){var n=r.confirm().title("Are you sure want to delete the selected screenRecordings?").htmlContent("<b>"+f.selectedScreenRecordings.length+" selected</b> will be deleted.").ariaLabel("delete screenRecordings").targetEvent(e).ok("OK").cancel("CANCEL");r.show(n).then(function(){f.selectedScreenRecordings.forEach(function(e){y(e)}),f.selectedScreenRecordings=[]})},f.deselectScreenRecordings=function(){f.selectedScreenRecordings=[]},f.selectAllScreenRecordings=function(){f.selectedScreenRecordings=f.screenRecordings.rows},f.convertDuration=function(e){var n=Math.floor(e/1e3%60),t=Math.floor(e/6e4%60),a=Math.floor(e/36e5%24),i=a<10?"0"+String(a):String(a),s=t<10?"0"+String(t):String(t),o=n<10?"0"+String(n):String(n);return i+":"+s+":"+o},m.user.get({fields:"id,name,fullname",sort:"name",nolimit:"true"}).$promise.then(function(e){f.users=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_USERS",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.screenRecordings=e||{count:0,rows:[]}}function y(e){m.screenRecording.delete({id:e.id}).$promise.then(function(){_.remove(f.screenRecordings.rows,{id:e.id}),f.screenRecordings.count-=1,f.screenRecordings.rows.length||f.getScreenRecordings(),p.success({title:_.startCase("screenRecording")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEscreenRecording"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEscreenRecording",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?i(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getScreenRecordings())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","screenRecordings","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.video").controller("ScreenRecordingsController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l){var d=this;function c(e){return _.isEmpty(e)||isNaN(e)?e:parseInt(e,10)}function m(e){switch(e){case"sound":if(!d.application.appdata)return;return[{key:"save_name",value:d.application.appdata.split("/").pop()}];case"squareProject":if(!d.application.project)return;return[{key:"name",value:d.application.project.split(",")[1]}];case"tag":if(!d.application.tag)return;return[{key:"name",value:d.application.tag}];case"trunk":if(!d.application.trunk)return;return[{key:"name",value:d.application.trunk}];case"user":if(!d.application.user&&!d.application.users)return;return d.application.user?[{key:"name",value:d.application.user.split("/")[1]}]:_.map(d.application.users,function(e){return{key:"name",value:e.split("/")[1]}});case"variable":if(!d.application.name)return;return[{key:"name",value:d.application.name}];case"voiceContext":if(!d.application.context)return;return[{key:"name",value:d.application.context}];case"voiceMail":if(!d.application.voiceMail)return;return[{key:"mailbox",value:d.application.voiceMail.split("@")[0]}];case"voiceQueue":if(!d.application.queue)return;return[{key:"name",value:d.application.queue}]}}function u(){o.getResourcesByRole(d.currentUser,"trunk",{fields:"id,name",sort:"name",nolimit:"true"},m("trunk")).then(function(e){d.trunks=e}).catch(function(){s.error({title:i.instant("TOOLS.TRUNKS"),msg:i.instant("VOICE.NOTIFICATIONS.TRUNKS_GET_ERROR")})})}function p(){o.getResourcesByRole(d.currentUser,"sound",{fields:"id,name,save_name",sort:"name",nolimit:"true"},m("sound")).then(function(e){d.sounds=e}).catch(function(){s.error({title:i.instant("TOOLS.SOUNDS"),msg:i.instant("VOICE.NOTIFICATIONS.SOUNDS_GET_ERROR")})})}function g(){var e={fields:"id,name,role",sort:"name",nolimit:"true"},n=m("user"),t=[o.getResourcesByRole(d.currentUser,"user",_.merge(e,{role:"agent"}),n,"Agents"),o.getResourcesByRole(d.currentUser,"user",_.merge(e,{role:"telephone"}),n,"Telephones")];a.all(t).then(function(e){var n=_(e).flatMap(function(e){return e.rows}).orderBy([function(e){return e.name.toLowerCase()}]).value();d.users={rows:n,count:n.length}}).catch(function(){s.error({title:i.instant("STAFF.USERS"),msg:i.instant("VOICE.NOTIFICATIONS.USERS_GET_ERROR")})})}function v(){(d.application.appdata||"custom"===d.application.appType)&&e.hide(d.application),e.hide()}d.currentUser=r.getCurrentUser(),d.application=angular.copy(n),d.crudPermissions=l,d.errors=[],d.init=function(){d.application.appdata&&function(){var e=[];switch(d.application.appType){case"agi":d.application.project=d.application.appdata;break;case"dial":e=d.application.appdata.split(","),d.application.tech=c(e[0]),d.application.timeout=c(e[1]),d.application.options=c(e[2]),d.application.url=c(e[3]);break;case"externalDial":e=d.application.appdata.split(","),d.application.trunk=e[0].split("/")[1],d.application.phone=e[0].split("/")[2],d.application.timeout=c(e[1]),d.application.options=c(e[2]),d.application.url=c(e[3]);break;case"goTo":e=d.application.appdata.split(","),d.application.context=c(e[0]),d.application.extension=c(e[1]),d.application.priority=c(e[2]);break;case"internalDial":e=d.application.appdata.split(","),d.application.user=c(e[0]),d.application.timeout=c(e[1]),d.application.options=c(e[2]),d.application.url=c(e[3]);break;case"outboundDial":e=d.application.appdata.split(","),d.application.trunk=e[0].split("/")[1],d.application.phone=e[0].split("/")[2],d.application.timeout=c(e[1]),d.application.options=c(e[2]),d.application.url=c(e[3]),d.application.prefix=d.application.phone?d.application.phone.split("$")[0]:void 0,d.application.callerId=d.application.callerID?"CALLERID(all)="+d.application.callerID:void 0;break;case"playback":e=d.application.appdata.split(","),d.application.appdata=c(e[0]),d.application.options=c(e[1]);break;case"queue":e=d.application.appdata.split(","),d.application.queue=c(e[0]),d.application.options=c(e[1]),d.application.URL=c(e[2]),d.application.sound=c(e[3]),d.application.timeout=c(e[4]),d.application.agi=c(e[5]),d.application.macro=c(e[6]),d.application.gosub=c(e[7]),d.application.rule=c(e[8]),d.application.position=c(e[9]);break;case"ringGroup":e=d.application.appdata.split(","),d.application.users=e[0].split("&"),d.application.timeout=c(e[1]),d.application.options=c(e[2]),d.application.url=c(e[3]);break;case"set":e=d.application.appdata.split("="),d.application.name=e[0],d.application.value=e[1];break;case"voicemail":e=d.application.appdata.split(","),d.application.voiceMail=c(e[0]),d.application.options=c(e[1])}}();switch(d.application.appType){case"agi":o.getResourcesByRole(d.currentUser,"squareProject",{fields:"id,name",sort:"name",nolimit:"true"},m("squareProject")).then(function(e){d.projects=e}).catch(function(){s.error({title:i.instant("CALLYSQUARE.CALLYSQUARE")+" "+i.instant("CALLYSQUARE.PROJECTS"),msg:i.instant("VOICE.NOTIFICATIONS.CALLYSQUARE_PROJECTS_GET_ERROR")})});break;case"externalDial":u();break;case"goTo":o.getResourcesByRole(d.currentUser,"voiceContext",{fields:"id,name",sort:"name",nolimit:"true"},m("voiceContext")).then(function(e){d.contexts=e}).catch(function(){s.error({title:i.instant("VOICE.CONTEXTS"),msg:i.instant("VOICE.NOTIFICATIONS.VOICE_CONTEXTS_GET_ERROR")})});break;case"internalDial":g();break;case"outboundDial":o.getResourcesByRole(d.currentUser,"tag",{fields:"id,name",sort:"name",nolimit:"true"},m("tag")).then(function(e){d.tags=e}).catch(function(){s.error({title:i.instant("TOOLS.TAGS"),msg:i.instant("VOICE.NOTIFICATIONS.TAGS_GET_ERROR")})}),u();break;case"playback":p();break;case"queue":p(),o.getResourcesByRole(d.currentUser,"voiceQueue",{type:"inbound",fields:"id,name,type",sort:"name",nolimit:"true"},m("voiceQueue")).then(function(e){d.queues=e}).catch(function(){s.error({title:i.instant("VOICE.VOICEQUEUES"),msg:i.instant("VOICE.NOTIFICATIONS.QUEUES_GET_ERROR")})});break;case"ringGroup":g();break;case"set":o.getResourcesByRole(d.currentUser,"variable",{fields:"id,name",sort:"name",nolimit:"true"},m("variable")).then(function(e){d.variables=e}).catch(function(){s.error({title:i.instant("TOOLS.VARIABLES"),msg:i.instant("VOICE.NOTIFICATIONS.VARIABLES_GET_ERROR")})});break;case"voicemail":o.getResourcesByRole(d.currentUser,"voiceMail",{fields:"id,mailbox",sort:"mailbox",nolimit:"true"},m("voiceMail")).then(function(e){d.voiceMails=e}).catch(function(){s.error({title:i.instant("VOICE.VOICEMAILS"),msg:i.instant("VOICE.NOTIFICATIONS.VOICEMAILS_GET_ERROR")})})}},d.saveRoutingApp=function(){d.errors=[],function(){var e=[];switch(d.application.appType){case"agi":d.application.appdata=d.application.project;break;case"dial":e[0]=d.application.tech,e[1]=d.application.timeout,e[2]=d.application.options,e[3]=d.application.url,d.application.appdata=e.join(",");break;case"externalDial":e[0]=["SIP",d.application.trunk,d.application.phone].join("/"),e[1]=d.application.timeout,e[2]=d.application.options,e[3]=d.application.url,d.application.appdata=e.join(",");break;case"goTo":e[0]=d.application.context,e[1]=d.application.extension,e[2]=d.application.priority,d.application.appdata=e.join(",");break;case"internalDial":e[0]=d.application.user,e[1]=d.application.timeout,e[2]=d.application.options,e[3]=d.application.url,d.application.appdata=e.join(",");break;case"outboundDial":d.application.phone=t.cutdigits?(d.application.prefix||"")+"${EXTEN:"+t.cutdigits+"}":(d.application.prefix||"")+"${EXTEN}","none"===t.recordingFormat?d.application.options=d.application.options.replace("U(xcally-mixmonitor-context)",""):d.application.options.indexOf("U(xcally-mixmonitor-context)")<0&&(d.application.options+="U(xcally-mixmonitor-context)"),e[0]=["SIP",d.application.trunk,d.application.phone].join("/"),e[1]=d.application.timeout,e[2]=d.application.options,e[3]=d.application.url,d.application.appdata=e.join(",");break;case"playback":e[0]=d.application.appdata,e[1]=d.application.options,d.application.appdata=e.join(",");break;case"queue":e[0]=d.application.queue,e[1]=d.application.options,e[2]=d.application.URL,e[3]=d.application.sound,e[4]=d.application.timeout,e[5]=d.application.agi,e[6]=d.application.macro,e[7]=d.application.gosub,e[8]=d.application.rule,e[9]=d.application.position,d.application.appdata=e.join(",");break;case"ringGroup":e[0]=d.application.users.join("&"),e[1]=d.application.timeout,e[2]=d.application.options,e[3]=d.application.url,d.application.appdata=e.join(",");break;case"set":e[0]=d.application.name,e[1]=d.application.value,d.application.appdata=e.join("=");break;case"voicemail":e[0]=d.application.voiceMail,e[1]=d.application.options,d.application.appdata=e.join(",")}}(),v()},d.closeDialog=v}e.$inject=["$mdDialog","$q","$translate","toasty","application","route","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditRoutingAppDialogController",e)}(),function(){"use strict";function e(n,t,e,a,i,s,o,r,l){var d=this;function c(){var e=[{key:"name",value:d.interval.IntervalId}];s.getResourcesByRole(d.currentUser,"interval",{fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0},e).then(function(e){d.intervals=e}).catch(function(){i.error({title:t.instant("TOOLS.INTERVALS"),msg:t.instant("VOICE.NOTIFICATIONS.INTERVALS_GET_ERROR")})})}function m(e){n.hide(e)}d.currentUser=o.getCurrentUser(),d.interval=angular.copy(e),d.intervals=a||{rows:[],count:0},d.types=["always","custom","list"],d.crudPermissions=r,d.errors=[],d.daysOfWeek=l.getDaysOfWeek(),d.monthNumber=l.getMonthNumber(),d.monthName=l.getMonthName(),d.daysOfMonth=l.getDaysOfMonth(),d.initialize=function(){if("*,*,*,*"===d.interval.interval)return d.type=d.interval.IntervalId&&d.interval.application?"list":"always",void("list"===d.type&&c());d.type="custom";var e=d.interval.interval.split(","),n=e[0],t=e[1],a=e[2],i=e[3];if("*"!==n){var s,o=n.split("-")[0],r=n.split("-")[1];(s=new Date).setHours(Number(o.split(":")[0])),s.setMinutes(Number(o.split(":")[1])),d.timeRangeFrom=s,(s=new Date).setHours(Number(r.split(":")[0])),s.setMinutes(Number(r.split(":")[1])),d.timeRangeTo=s}"*"!==t&&(d.dayOfWeekFrom=t.split("-")[0],d.dayOfWeekTo=t.split("-")[1]);"*"!==a&&(d.monthDayFrom=a.split("-")[0],d.monthDayTo=a.split("-")[1]);"*"!==i&&(d.monthFrom=i.split("-")[0],d.monthTo=i.split("-")[1])},d.onTypeChange=function(){"list"===d.type&&0===d.intervals.count&&c()},d.saveInterval=function(){d.errors=[],d.interval.interval=function(){if(["always","list"].includes(d.type))return"*,*,*,*";var e=[];if("*"!==d.timeRangeFrom&&d.timeRangeFrom&&d.timeRangeTo){var n=(d.timeRangeFrom.getHours()<10?"0":"")+d.timeRangeFrom.getHours()+":"+(d.timeRangeFrom.getMinutes()<10?"0":"")+d.timeRangeFrom.getMinutes(),t=(d.timeRangeTo.getHours()<10?"0":"")+d.timeRangeTo.getHours()+":"+(d.timeRangeTo.getMinutes()<10?"0":"")+d.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return d.dayOfWeekFrom?d.dayOfWeekTo?e.push(d.dayOfWeekFrom+"-"+d.dayOfWeekTo):e.push(d.dayOfWeekFrom):e.push("*"),d.monthDayFrom?d.monthDayTo?e.push(d.monthDayFrom+"-"+d.monthDayTo):e.push(d.monthDayFrom):e.push("*"),d.monthFrom?d.monthTo?e.push(d.monthFrom+"-"+d.monthTo):e.push(d.monthFrom):e.push("*"),e.join()}(),"list"!==d.type&&(d.interval.IntervalId=null);m(d.interval)},d.closeDialog=m}e.$inject=["$mdDialog","$translate","interval","intervals","toasty","api","Auth","crudPermissions","IndexFactory"],angular.module("app.voice").controller("EditRoutingIntervalDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.chanSpies=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="chanSpies",f.listOrder="",f.listOrderAsc=null,f.selectedChanSpies=[],f.query={fields:"createdAt,updatedAt,id,name,prefix,options,auth,password,record,recordingFormat,description",sort:"-updatedAt",limit:10,page:1},f.arrayoptions=_.keyBy([{option:"b: Only spy on channels involved in a bridged call.",value:"'b'"},{option:"B: Instead of whispering on a single channel barge in on both channels involved in the call.",value:"'B'"},{option:"E: Exit when the spied-on channel hangs up.",value:"'E'"},{option:"o: Only listen to audio coming from this channel.",value:"'o'"},{option:"q: Don't play a beep when beginning to spy on a channel, or speak the selected channel name.",value:"'q'"},{option:"s: Skip the playback of the channel type (i.e. SIP, IAX, etc) when speaking the selected channel name.",value:"'s'"},{option:"S: Stop when no more channels are left to spy on.",value:"'S'"},{option:"w: Enable whisper mode, so the spying channel can talk to the spied-on channel.",value:"'w'"},{option:"W: Enable private whisper mode, so the spying channel can talk to the spied-on channel but cannot listen to that channel.",value:"'W'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayrecordingFormat=_.keyBy([{option:"wav",value:"'wav'"},{option:"gsm",value:"'gsm'"},{option:"wav49",value:"'WAV'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editdialog=function(e,n){i.show({controller:"CreateOrEditchanSpyDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/chanSpies/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{chanSpy:e,chanSpies:f.chanSpies.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("chanSpy")+"?").htmlContent("<b>"+(e.name||"chanSpy")+"</b> will be deleted.").ariaLabel("delete chanSpy").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getChanSpies=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.voiceChanSpy.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ChanSpies",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditchanSpy=function(e,n){i.show({controller:"CreateOrEditchanSpyDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/chanSpies/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{chanSpy:n,chanSpies:f.chanSpies.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deletechanSpy=y,f.exportSelectedChanSpies=function(){var e=angular.copy(f.selectedChanSpies);return f.selectedChanSpies=[],e},f.deleteSelectedChanSpies=function(e){var n=i.confirm().title("Are you sure want to delete the selected chanSpies?").htmlContent("<b>"+f.selectedChanSpies.length+" selected</b> will be deleted.").ariaLabel("delete chanSpys").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedChanSpies.forEach(function(e){y(e)}),f.selectedChanSpies=[]})},f.deselectChanSpies=function(){f.selectedChanSpies=[]},f.selectAllChanSpies=function(){f.selectedChanSpies=f.chanSpies.rows};var b=!0,A=1;function E(e){f.chanSpies=e||{count:0,rows:[]}}function y(e){m.voiceChanSpy.delete({id:e.id}).$promise.then(function(){_.remove(f.chanSpies.rows,{id:e.id}),f.chanSpies.count-=1,f.chanSpies.rows.length||f.getChanSpies(),p.success({title:_.startCase("chanSpy")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceChanSpy"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceChanSpy",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getChanSpies())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","chanSpies","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.voice").controller("ChanSpiesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_CHANSPY",g.chanSpy=angular.copy(l),g.chanSpies=r,g.newchanSpy=!1,g.chanSpy||(g.chanSpy={recordingFormat:"wav"},g.title="VOICE.NEW_CHANSPY",g.newchanSpy=!0),g.addNewchanSpy=function(){g.errors=[],d.voiceChanSpy.save(g.chanSpy).$promise.then(function(e){g.chanSpies.unshift(e.toJSON()),o.success({title:"chanSpy properly created",msg:g.chanSpy.name?g.chanSpy.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceChanSpy.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceChanSpy.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.savechanSpy=function(){g.errors=[],d.voiceChanSpy.update({id:g.chanSpy.id},g.chanSpy).$promise.then(function(e){var n=_.find(g.chanSpies,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"chanSpy properly saved!",msg:g.chanSpy.name?g.chanSpy.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceChanSpy.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceChanSpy.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deletechanSpy=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The chanSpy will be deleted.").ariaLabel("Delete chanSpy").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceChanSpy.delete({id:g.chanSpy.id}).$promise.then(function(){_.remove(g.chanSpies,{id:g.chanSpy.id}),o.success({title:"chanSpy properly deleted!",msg:(g.chanSpy.name||"chanSpy")+" has been deleted!"}),v(g.chanSpy)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceChanSpy.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceChanSpy.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","chanSpies","chanSpy","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditchanSpyDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.contexts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="contexts",f.listOrder="",f.listOrderAsc=null,f.selectedContexts=[],f.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",defaultEntry:"false",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditContextDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/contexts/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{context:e,contexts:f.contexts.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("context")+"?").htmlContent("<b>"+(e.name||"context")+"</b> will be deleted.").ariaLabel("delete context").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getContexts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.voiceContext.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Contexts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditContext=function(e,n){i.show({controller:"CreateOrEditContextDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/contexts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{context:n,contexts:f.contexts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteContext=y,f.exportSelectedContexts=function(){var e=angular.copy(f.selectedContexts);return f.selectedContexts=[],e},f.deleteSelectedContexts=function(e){var n=i.confirm().title("Are you sure want to delete the selected contexts?").htmlContent("<b>"+f.selectedContexts.length+" selected</b> will be deleted.").ariaLabel("delete Contexts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedContexts.forEach(function(e){y(e)}),f.selectedContexts=[]})},f.deselectContexts=function(){f.selectedContexts=[]},f.selectAllContexts=function(){f.selectedContexts=f.contexts.rows};var b=!0,A=1;function E(e){f.contexts=e||{count:0,rows:[]}}function y(e){m.voiceContext.delete({id:e.id}).$promise.then(function(){_.remove(f.contexts.rows,{id:e.id}),f.contexts.count-=1,f.contexts.rows.length||f.getContexts(),p.success({title:_.startCase("Context")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceContext"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceContext",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getContexts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","contexts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.voice").controller("ContextsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_CONTEXT",g.context=angular.copy(l),g.contexts=r,g.newContext=!1,g.context||(g.context={},g.title="VOICE.NEW_CONTEXT",g.newContext=!0),g.addNewContext=function(){g.errors=[],d.voiceContext.save(g.context).$promise.then(function(e){g.contexts.unshift(e.toJSON()),o.success({title:"Context properly created",msg:g.context.name?g.context.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceContext.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceContext.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveContext=function(){g.errors=[],d.voiceContext.update({id:g.context.id},g.context).$promise.then(function(e){var n=_.find(g.contexts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Context properly saved!",msg:g.context.name?g.context.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceContext.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceContext.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteContext=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The context will be deleted.").ariaLabel("Delete Context").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceContext.delete({id:g.context.id}).$promise.then(function(){_.remove(g.contexts,{id:g.context.id}),o.success({title:"Context properly deleted!",msg:(g.context.name||"context")+" has been deleted!"}),v(g.context)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceContext.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceContext.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","contexts","context","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditContextDialogController",e)}(),function(){"use strict";function e(t,e,a,i,n,s,o,r,l){var d=this;function c(t){return e(function(e,n){o.voiceExtension.addApplications({id:t},d.applications?d.applications.rows:[]).$promise.then(function(){e()}).catch(function(e){n(e)})})}function m(e){t.hide(e)}d.currentUser=r.getCurrentUser(),d.crudPermissions=l,d.inboundRoute=angular.copy(s),d.inboundRoutes=n,d.newInboundRoute=!1,d.hasModulePermissions={},d.errors=[],d.initialize=function(){d.inboundRoute||(d.inboundRoute={appdata:"Inbound Call",type:"inbound",context:"from-sip"},d.newInboundRoute=!0);e=[{key:"name",value:d.inboundRoute.context}],o.getResourcesByRole(d.currentUser,"voiceContext",{fields:"id,name",sort:"name",nolimit:!0},e).then(function(e){d.contexts=e}).catch(function(){i.error({title:a.instant("VOICE.CONTEXTS"),msg:a.instant("VOICE.NOTIFICATIONS.VOICE_CONTEXTS_GET_ERROR")})});var e},d.getRouting=function(){if(d.newinboundRoute)return;var e={sort:"priority",VoiceExtensionId:d.inboundRoute.id,isApp:!0,nolimit:!0};o.voiceExtension.get(e).$promise.then(function(e){d.applications=e||{count:0,rows:[]}})},d.addNewInboundRoute=function(){d.errors=[],o.voiceExtension.save(d.inboundRoute).$promise.then(function(e){c(e.id).then(function(){d.inboundRoutes.unshift(e.toJSON()),i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_CREATED_SUCCESS_TITLE")}),m(e)})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.save"}];for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},d.saveInboundRoute=function(){d.errors=[],o.voiceExtension.update({id:d.inboundRoute.id},d.inboundRoute).$promise.then(function(e){var n=_.find(d.inboundRoutes,{id:e.id});if(n&&_.merge(n,e.toJSON()),d.applications)return c(d.inboundRoute.id)}).then(function(){i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_SAVED_SUCCESS_TITLE")}),m(s)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.update"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},d.deleteInboundRoute=function(e){d.errors=[];var n=t.confirm().title(a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_TITLE")).content(a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_MESSAGE",{name:d.inboundRoute.exten})).ariaLabel("Delete inbound route").ok(a.instant("TOOLS.DELETE")).cancel(a.instant("TOOLS.CANCEL")).targetEvent(e);t.show(n).then(function(){o.voiceExtension.delete({id:d.inboundRoute.id}).$promise.then(function(){_.remove(d.inboundRoutes,{id:d.inboundRoute.id}),i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETED_SUCCESS_TITLE")}),m(d.inboundRoute)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.delete"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})})},d.closeDialog=m}e.$inject=["$mdDialog","$q","$translate","toasty","inboundRoutes","inboundRoute","api","Auth","crudPermissions"],angular.module("app.voice").controller("CreateOrEditInboundRouteDialogController",e)}(),function(){"use strict";function e(e,i,a,n,s,o,r,t,l,d,c){var m=this;function u(e,n){1===m.applications.rows.length&&1===n&&(n=0);var t=m.applications.rows[n];i.show({controller:"EditRoutingAppDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/routing/dialog.html",parent:angular.element(a.body),targetEvent:e,locals:{application:t,route:m.inboundRoute,crudPermissions:m.crudPermissions}}).then(function(e){e?(m.applications.rows[n].appdata===e.appdata&&"custom"!==e.appType||p(),m.applications.rows[n]=e):t.id||m.applications.rows.splice(n,1)}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}function p(){m.pendingChanges=!0}m.currentUser=t.getCurrentUser(),m.inboundRoute=l||e.params.inboundRoute||{},m.contexts=d,m.userProfileSection=c&&1==c.count?c.rows[0]:null,m.crudPermissions=t.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={sort:"priority",VoiceExtensionId:m.inboundRoute.id,isApp:!0,nolimit:!0},m.apps=[{app:"AGI",appAlias:"CallySquare",appType:"agi",context:"from-sip",type:"Inbound",interval:"*,*,*,*"},{app:"Dial",appType:"dial",context:"from-sip",type:"Inbound",options:"xX",interval:"*,*,*,*"},{app:"Dial",appType:"internalDial",context:"from-sip",type:"Inbound",options:"xX",interval:"*,*,*,*"},{app:"Dial",appType:"externalDial",context:"from-sip",type:"Inbound",interval:"*,*,*,*",options:"xX"},{app:"Dial",appType:"ringGroup",context:"from-sip",type:"Inbound",interval:"*,*,*,*",options:"xX"},{app:"Playback",appType:"playback",context:"from-sip",type:"Inbound",interval:"*,*,*,*",answer:!0},{app:"Queue",appType:"queue",context:"from-sip",type:"Inbound",options:"xX",appdata:",xX,,,300,,,,,",interval:"*,*,*,*",answer:!0},{app:"Set",appType:"set",context:"from-sip",type:"Inbound",separator:"=",interval:"*,*,*,*"},{app:"Voicemail",appType:"voicemail",context:"from-sip",type:"Inbound",interval:"*,*,*,*"},{app:"goto",appType:"goTo",context:"from-sip",type:"Inbound",interval:"*,*,*,*"},{app:"hangup",appType:"hangup",context:"from-sip",type:"Inbound",interval:"*,*,*,*"},{app:null,appType:"custom",type:"Inbound",interval:"*,*,*,*"}],m.sortableAppsOptions={group:{name:"apps",pull:"clone",put:!1},animation:100,sort:!1},m.sortableRoutingOptions={group:{name:"apps",put:!0},animation:100,disabled:!m.crudPermissions.canEdit,onAdd:function(e){u(e,e.newIndex)},onUpdate:function(){p()}},m.selectedApplications=[],m.onInit=function(){if(t.isAdmin())return;e=[{key:"name",value:m.inboundRoute.context}],o.getResourcesByRole(m.currentUser,"voiceContext",{fields:"id,name",sort:"name",nolimit:!0},e).then(function(e){m.contexts=e}).catch(function(){r.error({title:s.instant("VOICE.CONTEXTS"),msg:s.instant("VOICE.NOTIFICATIONS.VOICE_CONTEXTS_GET_ERROR")})});var e},m.onActionsTabSelection=function(){m.applications||o.voiceExtension.get(m.query).$promise.then(function(e){m.applications=e||{count:0,rows:[]}})},m.gotoInboundRoutes=function(){e.go("app.voice.inboundRoutes",{},{reload:"app.voice.inboundRoutes"})},m.saveInboundRoute=function(){o.voiceExtension.update({id:m.inboundRoute.id},m.inboundRoute).$promise.then(function(){n(function(n,t){if(!m.applications)return n();o.voiceExtension.addApplications({id:m.inboundRoute.id},m.applications.rows).$promise.then(function(e){m.applications.rows=e.rows,n()}).catch(function(e){t(e)})}).then(function(){m.pendingChanges=!1,r.success({title:s.instant("VOICE.NOTIFICATIONS.EXTENSION_SAVED_SUCCESS_TITLE")})})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceExtension",msg:e.data?JSON.stringify(e.data):e.toString()})})},m.editApplication=u,m.editInterval=function(e,n){var t=m.applications.rows[n];i.show({controller:"EditRoutingIntervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/routing/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:void 0,crudPermissions:m.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,p())})},m.deleteApplication=function(e,n,t){var a=i.confirm().title(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATION_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATION_DELETE_MESSAGE",{name:e.app})).ariaLabel("Delete application").targetEvent(t).ok("OK").cancel(s.instant("TOOLS.CANCEL"));i.show(a).then(function(){m.applications.rows.splice(n,1),p()})},m.deleteSelectedApplications=function(e){var n=i.confirm().title(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATIONS_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATIONS_DELETE_MESSAGE",{total:m.selectedApplications.length})).ariaLabel("Delete applications").targetEvent(e).ok("OK").cancel(s.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedApplications.forEach(function(e){_.remove(m.applications.rows,{id:e.id})}),m.selectedApplications=[],p()})}}e.$inject=["$state","$mdDialog","$document","$q","$translate","api","toasty","Auth","inboundRoute","contexts","userProfileSection"],angular.module("app.voice").controller("InboundRouteController",e)}(),function(){"use strict";function e(e,n,a,t,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){g.inboundRoutes=e||{count:0,rows:[]}}function h(){g.query.offset=(g.query.page-1)*g.query.limit,m.isAdmin()?g.promise=d.voiceExtension.get(g.query,v).$promise:(g.query.id=g.userProfile.id,g.query.section="InboundRoutes",g.promise=d.userProfile.getResources(g.query,v).$promise)}function f(e){d.voiceExtension.delete({id:e.id}).$promise.then(function(){_.remove(g.inboundRoutes.rows,{id:e.id}),g.inboundRoutes.count-=1,g.inboundRoutes.rows.length||h(),c.success({title:s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceExtension"}];for(var n=0;n<e.data.errors.length;n++)c.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceExtension",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}g.license=u,g.setting=p,g.currentUser=m.getCurrentUser(),g.inboundRoutes=o,g.userProfile=r,g.userProfileSection=l&&1==l.count?l.rows[0]:null,g.crudPermissions=m.parseCrudPermissions(g.userProfileSection?g.userProfileSection.crudPermissions:null),g.selectedInboundRoutes=[],g.query={fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",type:"inbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,page:1},g.editRoute=function(e){n.go("app.voice.inboundRoutes.edit",{id:e.id,inboundRoute:e,crudPermissions:g.crudPermissions})},g.createOrEditInboundRoute=function(e,n){a.show({controller:"CreateOrEditInboundRouteDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/inboundRoutes/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{inboundRoute:n,inboundRoutes:g.inboundRoutes.rows,crudPermissions:g.crudPermissions}})},g.success=v,g.getInboundRoutes=h,g.deleteConfirm=function(e,n){var t=a.confirm().title(s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_MESSAGE",{name:e.exten})).ariaLabel("Delete extension").targetEvent(n).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(t).then(function(){f(e)})},g.exportSelectedInboundRoutes=function(){var e=angular.copy(g.selectedInboundRoutes);return g.selectedInboundRoutes=[],e},g.deleteSelectedInboundRoutes=function(e){var n=a.confirm().title(s.instant("VOICE.NOTIFICATIONS.EXTENSIONS_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.EXTENSIONS_DELETE_MESSAGE",{total:g.selectedInboundRoutes.length})).ariaLabel("Delete extensions").targetEvent(e).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(n).then(function(){g.selectedInboundRoutes.forEach(function(e){f(e)}),g.selectedInboundRoutes=[]})};var b=!0,A=1;e.$watch("vm.query.filter",function(e,n){b?i(function(){b=!1}):(n||(A=g.query.page),e!==n&&(g.query.page=1),e||(g.query.page=A),h())})}e.$inject=["$scope","$state","$mdDialog","$document","$timeout","$translate","inboundRoutes","userProfile","userProfileSection","api","toasty","Auth","license","setting"],angular.module("app.voice").controller("InboundRoutesController",e)}(),function(){"use strict";function e(t,e,a,i,n,s,o,r,l){var d=this;function c(t){return e(function(e,n){o.voiceExtension.addApplications({id:t},d.applications?d.applications.rows:[]).$promise.then(function(){e()}).catch(function(e){n(e)})})}function m(e){t.hide(e)}d.currentUser=r.getCurrentUser(),d.crudPermissions=l,d.internalRoute=angular.copy(s),d.internalRoutes=n,d.newInternalRoute=!1,d.hasModulePermissions={},d.errors=[],d.initialize=function(){d.internalRoute||(d.internalRoute={appdata:"Internal Call",type:"internal",context:"from-sip"},d.newInternalRoute=!0);e=[{key:"name",value:d.internalRoute.context}],o.getResourcesByRole(d.currentUser,"voiceContext",{fields:"id,name",sort:"name",nolimit:!0},e).then(function(e){d.contexts=e}).catch(function(){i.error({title:a.instant("VOICE.CONTEXTS"),msg:a.instant("VOICE.NOTIFICATIONS.VOICE_CONTEXTS_GET_ERROR")})});var e},d.getRouting=function(){if(d.newInternalRoute)return;var e={sort:"priority",VoiceExtensionId:d.internalRoute.id,isApp:!0,nolimit:!0};o.voiceExtension.get(e).$promise.then(function(e){d.applications=e||{count:0,rows:[]}})},d.addNewInternalRoute=function(){d.errors=[],o.voiceExtension.save(d.internalRoute).$promise.then(function(e){c(e.id).then(function(){d.internalRoutes.unshift(e.toJSON()),i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_CREATED_SUCCESS_TITLE")}),m(e)})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.save"}];for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},d.saveInternalRoute=function(){d.errors=[],o.voiceExtension.update({id:d.internalRoute.id},d.internalRoute).$promise.then(function(e){var n=_.find(d.internalRoutes,{id:e.id});if(n&&_.merge(n,e.toJSON()),d.applications)return c(d.internalRoute.id)}).then(function(){i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_SAVED_SUCCESS_TITLE")}),m(s)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.update"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},d.deleteInternalRoute=function(e){d.errors=[];var n=t.confirm().title(a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_TITLE")).content(a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_MESSAGE",{name:d.internalRoute.exten})).ariaLabel("Delete internal route").ok(a.instant("TOOLS.DELETE")).cancel(a.instant("TOOLS.CANCEL")).targetEvent(e);t.show(n).then(function(){o.voiceExtension.delete({id:d.internalRoute.id}).$promise.then(function(){_.remove(d.internalRoutes,{id:d.internalRoute.id}),i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETED_SUCCESS_TITLE")}),m(d.internalRoute)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.delete"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})})},d.closeDialog=m}e.$inject=["$mdDialog","$q","$translate","toasty","internalRoutes","internalRoute","api","Auth","crudPermissions"],angular.module("app.voice").controller("CreateOrEditInternalRouteDialogController",e)}(),function(){"use strict";function e(e,i,a,n,s,o,r,t,l,d,c){var m=this;function u(e,n){1===m.applications.rows.length&&1===n&&(n=0);var t=m.applications.rows[n];i.show({controller:"EditRoutingAppDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/routing/dialog.html",parent:angular.element(a.body),targetEvent:e,locals:{application:t,route:m.internalRoute,crudPermissions:m.crudPermissions}}).then(function(e){e?(m.applications.rows[n].appdata===e.appdata&&"custom"!==e.appType||p(),m.applications.rows[n]=e):t.id||m.applications.rows.splice(n,1)}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}function p(){m.pendingChanges=!0}m.currentUser=t.getCurrentUser(),m.internalRoute=l||e.params.internalRoute||{},m.contexts=d,m.userProfileSection=c&&1==c.count?c.rows[0]:null,m.crudPermissions=t.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={sort:"priority",VoiceExtensionId:m.internalRoute.id,isApp:!0,nolimit:!0},m.apps=[{app:"AGI",appAlias:"CallySquare",appType:"agi",context:"from-sip",type:"Internal",interval:"*,*,*,*"},{app:"Dial",appType:"dial",context:"from-sip",type:"Internal",options:"xX",interval:"*,*,*,*"},{app:"Dial",appType:"internalDial",context:"from-sip",type:"Internal",options:"xX",interval:"*,*,*,*"},{app:"Dial",appType:"externalDial",context:"from-sip",type:"Internal",interval:"*,*,*,*",options:"xX"},{app:"Dial",appType:"ringGroup",context:"from-sip",type:"Internal",interval:"*,*,*,*",options:"xX"},{app:"Playback",appType:"playback",context:"from-sip",type:"Internal",interval:"*,*,*,*",answer:!0},{app:"Queue",appType:"queue",context:"from-sip",type:"Internal",options:"xX",appdata:",xX,,,300,,,,,",interval:"*,*,*,*",answer:!0},{app:"Set",appType:"set",context:"from-sip",type:"Internal",separator:"=",interval:"*,*,*,*"},{app:"Voicemail",appType:"voicemail",context:"from-sip",type:"Internal",interval:"*,*,*,*"},{app:"goto",appType:"goTo",context:"from-sip",type:"Internal",interval:"*,*,*,*"},{app:"hangup",appType:"hangup",context:"from-sip",type:"Internal",interval:"*,*,*,*"},{app:null,appType:"custom",type:"Internal",interval:"*,*,*,*"}],m.sortableAppsOptions={group:{name:"apps",pull:"clone",put:!1},animation:100,sort:!1},m.sortableRoutingOptions={group:{name:"apps",put:!0},animation:100,disabled:!m.crudPermissions.canEdit,onAdd:function(e){u(e,e.newIndex)},onUpdate:function(){p()}},m.selectedApplications=[],m.onInit=function(){if(t.isAdmin())return;e=[{key:"name",value:m.internalRoute.context}],o.getResourcesByRole(m.currentUser,"voiceContext",{fields:"id,name",sort:"name",nolimit:!0},e).then(function(e){m.contexts=e}).catch(function(){r.error({title:s.instant("VOICE.CONTEXTS"),msg:s.instant("VOICE.NOTIFICATIONS.VOICE_CONTEXTS_GET_ERROR")})});var e},m.onActionsTabSelection=function(){m.applications||o.voiceExtension.get(m.query).$promise.then(function(e){m.applications=e||{count:0,rows:[]}})},m.gotoInternalRoutes=function(){e.go("app.voice.internalRoutes",{},{reload:"app.voice.internalRoutes"})},m.saveInternalRoute=function(){o.voiceExtension.update({id:m.internalRoute.id},m.internalRoute).$promise.then(function(){n(function(n,t){if(!m.applications)return n();o.voiceExtension.addApplications({id:m.internalRoute.id},m.applications.rows).$promise.then(function(e){m.applications.rows=e.rows,n()}).catch(function(e){t(e)})}).then(function(){m.pendingChanges=!1,r.success({title:s.instant("VOICE.NOTIFICATIONS.EXTENSION_SAVED_SUCCESS_TITLE")})})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceExtension",msg:e.data?JSON.stringify(e.data):e.toString()})})},m.editApplication=u,m.editInterval=function(e,n){var t=m.applications.rows[n];i.show({controller:"EditRoutingIntervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/routing/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:void 0,crudPermissions:m.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,p())})},m.deleteApplication=function(e,n,t){var a=i.confirm().title(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATION_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATION_DELETE_MESSAGE",{name:e.app})).ariaLabel("Delete application").targetEvent(t).ok("OK").cancel(s.instant("TOOLS.CANCEL"));i.show(a).then(function(){m.applications.rows.splice(n,1),p()})},m.deleteSelectedApplications=function(e){var n=i.confirm().title(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATIONS_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATIONS_DELETE_MESSAGE",{total:m.selectedApplications.length})).ariaLabel("Delete applications").targetEvent(e).ok("OK").cancel(s.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedApplications.forEach(function(e){_.remove(m.applications.rows,{id:e.id})}),m.selectedApplications=[],p()})}}e.$inject=["$state","$mdDialog","$document","$q","$translate","api","toasty","Auth","internalRoute","contexts","userProfileSection"],angular.module("app.voice").controller("InternalRouteController",e)}(),function(){"use strict";function e(e,n,a,t,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){g.internalRoutes=e||{count:0,rows:[]}}function h(){g.query.offset=(g.query.page-1)*g.query.limit,m.isAdmin()?g.promise=d.voiceExtension.get(g.query,v).$promise:(g.query.id=g.userProfile.id,g.query.section="InternalRoutes",g.promise=d.userProfile.getResources(g.query,v).$promise)}function f(e){d.voiceExtension.delete({id:e.id}).$promise.then(function(){_.remove(g.internalRoutes.rows,{id:e.id}),g.internalRoutes.count-=1,g.internalRoutes.rows.length||h(),c.success({title:s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceExtension"}];for(var n=0;n<e.data.errors.length;n++)c.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceExtension",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}g.license=u,g.setting=p,g.currentUser=m.getCurrentUser(),g.internalRoutes=o,g.userProfile=r,g.userProfileSection=l&&1==l.count?l.rows[0]:null,g.crudPermissions=m.parseCrudPermissions(g.userProfileSection?g.userProfileSection.crudPermissions:null),g.selectedInternalRoutes=[],g.query={fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",type:"internal",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,page:1},g.editRoute=function(e){n.go("app.voice.internalRoutes.edit",{id:e.id,internalRoute:e,crudPermissions:g.crudPermissions})},g.createOrEditInternalRoute=function(e,n){a.show({controller:"CreateOrEditInternalRouteDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/internalRoutes/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{internalRoute:n,internalRoutes:g.internalRoutes.rows,crudPermissions:g.crudPermissions}})},g.success=v,g.getInternalRoutes=h,g.deleteConfirm=function(e,n){var t=a.confirm().title(s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_MESSAGE",{name:e.exten})).ariaLabel("Delete extension").targetEvent(n).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(t).then(function(){f(e)})},g.exportSelectedInternalRoutes=function(){var e=angular.copy(g.selectedInternalRoutes);return g.selectedInternalRoutes=[],e},g.deleteSelectedInternalRoutes=function(e){var n=a.confirm().title(s.instant("VOICE.NOTIFICATIONS.EXTENSIONS_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.EXTENSIONS_DELETE_MESSAGE",{total:g.selectedInternalRoutes.length})).ariaLabel("Delete extensions").targetEvent(e).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(n).then(function(){g.selectedInternalRoutes.forEach(function(e){f(e)}),g.selectedInternalRoutes=[]})};var b=!0,A=1;e.$watch("vm.query.filter",function(e,n){b?i(function(){b=!1}):(n||(A=g.query.page),e!==n&&(g.query.page=1),e||(g.query.page=A),h())})}e.$inject=["$scope","$state","$mdDialog","$document","$timeout","$translate","internalRoutes","userProfile","userProfileSection","api","toasty","Auth","license","setting"],angular.module("app.voice").controller("InternalRoutesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_MUSICONHOLD",g.musiconhold=angular.copy(l),g.musiconholds=r,g.newMusicOnHold=!1,g.musiconhold||(g.musiconhold={mode:"files"},g.title="VOICE.NEW_MUSICONHOLD",g.newMusicOnHold=!0),g.addNewMusicOnHold=function(){g.errors=[],d.voiceMusicOnHold.save(g.musiconhold).$promise.then(function(e){g.musiconholds.unshift(e.toJSON()),o.success({title:"MusicOnHold properly created",msg:g.musiconhold.name?g.musiconhold.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMusicOnHold.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveMusicOnHold=function(){g.errors=[],d.voiceMusicOnHold.update({id:g.musiconhold.id},g.musiconhold).$promise.then(function(e){var n=_.find(g.musiconholds,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"MusicOnHold properly saved!",msg:g.musiconhold.name?g.musiconhold.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMusicOnHold.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteMusicOnHold=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The musiconhold will be deleted.").ariaLabel("Delete MusicOnHold").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceMusicOnHold.delete({id:g.musiconhold.id}).$promise.then(function(){_.remove(g.musiconholds,{id:g.musiconhold.id}),o.success({title:"MusicOnHold properly deleted!",msg:(g.musiconhold.name||"musiconhold")+" has been deleted!"}),v(g.musiconhold)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMusicOnHold.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","musiconholds","musiconhold","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditMusicOnHoldDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.musiconholdMohSounds=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.voiceMusicOnHold.getSounds(m.query,u).$promise}function g(e){d.voiceMusicOnHold.removeSound({id:t.params.id,id2:e.id}).$promise.then(function(){_.remove(m.musiconholdMohSounds.rows,{id:e.id}),m.musiconholdMohSounds.count-=1,m.musiconholdMohSounds.rows.length||p(),l.success({title:"MohSound deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETvoiceMusicOnHold"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMusicOnHold",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.musiconhold={},m.musiconholdMohSounds={count:0,rows:[]},m.selectedMusicOnHoldMohSounds=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,save_name,converted_format,audio",limit:10,page:1},m.init=function(e,n){m.musiconhold=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.VoiceMusicOnHoldId=m.musiconhold.id,m.query.id=m.musiconhold.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the mohSound?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("mohSound #")+e.id||"mohSound")+"</b> will be deleted.").ariaLabel("delete mohSound").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.voiceMusicOnHoldDownload=function(s,e,n){return d.sound.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="mohSound"+s.id,a=new Blob(n,{type:e.type});t=s.converted_format?s.save_name+"."+s.converted_format:s.save_name;var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMusicOnHold.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getMusicOnHoldMohSounds=p,m.createOrEditMusicOnHoldMohSound=function(e,n){o.show({controller:"CreateOrEditMohSoundDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/musiconholds/edit/mohSounds/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{musiconhold:m.musiconhold,mohSound:n,mohSounds:m.musiconholdMohSounds.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedMusicOnHoldMohSounds=function(){var e=angular.copy(m.selectedMusicOnHoldMohSounds);return m.selectedMusicOnHoldMohSounds=[],e},m.deleteMusicOnHoldMohSound=g,m.deleteSelectedMusicOnHoldMohSounds=function(e){var n=o.confirm().title("Are you sure want to delete the selected mohSounds?").htmlContent("<b>"+m.selectedMusicOnHoldMohSounds.length+" selected</b> will be deleted.").ariaLabel("delete mohSounds").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedMusicOnHoldMohSounds.forEach(function(e){g(e)}),m.selectedMusicOnHoldMohSounds=[]})},c.hasRole("admin")?d.sound.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){m.sounds=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_SOUNDS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.sound.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){m.sounds=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:m.currentUser.userProfileId,sectionId:1007}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(m.sounds,{id:e.resourceId})}),t=null;if(m.musiconhold&&(t=_.find(m.sounds,{id:Number(m.musiconhold.id)})),t&&!_.some(n,["id",t.id])){var a=_.find(m.sounds,{id:t.id});a.canSelect=!1,n.push(a)}m.sounds=n})}else{var t=[],a=null;m.musiconhold&&(a=_.find(m.sounds,{id:Number(m.musiconhold.id)}));for(var i=0;i<m.sounds.length;i++)a&&m.sounds[i].id===a.id&&(m.sounds[i].canSelect=!1,t.push(m.sounds[i]));m.sounds=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.voice").controller("MusicOnHoldMohSoundsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_MOHSOUND",g.mohSound=angular.copy(l),g.mohSounds=r,g.newMohSound=!1,g.mohSound||(g.mohSound={},g.title="VOICE.NEW_MOHSOUND",g.newMohSound=!0),n.params.id&&(g.mohSound.VoiceMusicOnHoldId=n.params.id),g.addNewMohSound=function(){g.errors=[],d.voiceMusicOnHold.addSound({id:n.params.id},g.mohSound).$promise.then(function(e){g.mohSounds.unshift(e.toJSON()),o.success({title:"MohSound properly created",msg:g.mohSound.name?g.mohSound.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMusicOnHold.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveMohSound=function(){g.errors=[],d.voiceMusicOnHold.update({id:g.mohSound.id},g.mohSound).$promise.then(function(e){var n=_.find(g.mohSounds,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"MohSound properly saved!",msg:g.mohSound.name?g.mohSound.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMusicOnHold.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteMohSound=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The mohSound will be deleted.").ariaLabel("Delete MohSound").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceMusicOnHold.delete({id:g.mohSound.id}).$promise.then(function(){_.remove(g.mohSounds,{id:g.mohSound.id}),o.success({title:"MohSound properly deleted!",msg:(g.mohSound.name||"mohSound")+" has been deleted!"}),v(g.mohSound)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMusicOnHold.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.sound.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){g.sounds=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_SOUNDS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.sound.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){g.sounds=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1007}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.sounds,{id:e.resourceId})}),t=null;if(g.mohSound&&(t=_.find(g.sounds,{id:Number(g.mohSound.id)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.sounds,{id:t.id});a.canSelect=!1,n.push(a)}g.sounds=n})}else{var t=[],a=null;g.mohSound&&(a=_.find(g.sounds,{id:Number(g.mohSound.id)}));for(var i=0;i<g.sounds.length;i++)a&&g.sounds[i].id===a.id&&(g.sounds[i].canSelect=!1,t.push(g.sounds[i]));g.sounds=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","mohSounds","mohSound","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditMohSoundDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.musiconhold=c||e.params.musiconhold||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoMusicOnHolds=function(){e.go("app.voice.musiconholds",{},{reload:"app.voice.musiconholds"})},u.saveMusicOnHold=function(){r.voiceMusicOnHold.update({id:u.musiconhold.id},u.musiconhold).$promise.then(function(){l.success({title:"MusicOnHold updated!",msg:u.musiconhold.name?u.musiconhold.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMusicOnHold",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","musiconhold","userProfileSection"],angular.module("app.voice").controller("MusicOnHoldController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.musiconholds=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="musiconholds",f.listOrder="",f.listOrderAsc=null,f.selectedMusicOnHolds=[],f.query={fields:"createdAt,updatedAt,id,name,mode,directory,application,format,sort",defaultEntry:"false",limit:10,page:1},f.arraymode=_.keyBy([{option:"Files",value:"'files'"},{option:"Custom",value:"'custom'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysort=_.keyBy([{option:"Random",value:"'random'"},{option:"Alphabetical",value:"'alpha'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.voice.musiconholds.edit",{id:e.id,musiconhold:e,crudPermissions:f.crudPermissions})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("musiconhold")+"?").htmlContent("<b>"+(e.name||"musiconhold")+"</b> will be deleted.").ariaLabel("delete musiconhold").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getMusicOnHolds=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.voiceMusicOnHold.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="MusicOnHolds",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditMusicOnHold=function(e,n){i.show({controller:"CreateOrEditMusicOnHoldDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/musiconholds/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{musiconhold:n,musiconholds:f.musiconholds.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteMusicOnHold=y,f.exportSelectedMusicOnHolds=function(){var e=angular.copy(f.selectedMusicOnHolds);return f.selectedMusicOnHolds=[],e},f.deleteSelectedMusicOnHolds=function(e){var n=i.confirm().title("Are you sure want to delete the selected musiconholds?").htmlContent("<b>"+f.selectedMusicOnHolds.length+" selected</b> will be deleted.").ariaLabel("delete MusicOnHolds").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedMusicOnHolds.forEach(function(e){y(e)}),f.selectedMusicOnHolds=[]})},f.deselectMusicOnHolds=function(){f.selectedMusicOnHolds=[]},f.selectAllMusicOnHolds=function(){f.selectedMusicOnHolds=f.musiconholds.rows};var b=!0,A=1;function E(e){f.musiconholds=e||{count:0,rows:[]}}function y(e){m.voiceMusicOnHold.delete({id:e.id}).$promise.then(function(){_.remove(f.musiconholds.rows,{id:e.id}),f.musiconholds.count-=1,f.musiconholds.rows.length||f.getMusicOnHolds(),p.success({title:_.startCase("MusicOnHold")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceMusicOnHold"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceMusicOnHold",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getMusicOnHolds())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","musiconholds","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.voice").controller("MusicOnHoldsController",e)}(),function(){"use strict";function e(t,e,a,i,n,s,o,r,l){var d=this;function c(t){return e(function(e,n){o.voiceExtension.addApplications({id:t},d.applications?d.applications.rows:[]).$promise.then(function(){e()}).catch(function(e){n(e)})})}function m(e){t.hide(e)}d.currentUser=r.getCurrentUser(),d.crudPermissions=l,d.outboundRoute=angular.copy(s),d.outboundRoutes=n,d.newOutboundRoute=!1,d.hasModulePermissions={},d.errors=[],d.initialize=function(){d.outboundRoute||(d.outboundRoute={appdata:"Outbound Call",type:"outbound",context:"from-sip",recordingFormat:"none"},d.newOutboundRoute=!0);e=[{key:"name",value:d.outboundRoute.context}],o.getResourcesByRole(d.currentUser,"voiceContext",{fields:"id,name",sort:"name",nolimit:!0},e).then(function(e){d.contexts=e}).catch(function(){i.error({title:a.instant("VOICE.CONTEXTS"),msg:a.instant("VOICE.NOTIFICATIONS.VOICE_CONTEXTS_GET_ERROR")})});var e},d.getRouting=function(){if(d.newOutboundRoute)return;var e={sort:"priority",VoiceExtensionId:d.outboundRoute.id,isApp:!0,nolimit:!0};o.voiceExtension.get(e).$promise.then(function(e){d.applications=e||{count:0,rows:[]}})},d.addNewOutboundRoute=function(){d.errors=[],o.voiceExtension.save(d.outboundRoute).$promise.then(function(e){c(e.id).then(function(){d.outboundRoutes.unshift(e.toJSON()),i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_CREATED_SUCCESS_TITLE")}),m(e)})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.save"}];for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},d.saveOutboundRoute=function(){d.errors=[],o.voiceExtension.update({id:d.outboundRoute.id},d.outboundRoute).$promise.then(function(e){var n=_.find(d.outboundRoutes,{id:e.id});if(n&&_.merge(n,e.toJSON()),d.applications)return c(d.outboundRoute.id)}).then(function(){i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_SAVED_SUCCESS_TITLE")}),m(s)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.update"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},d.deleteOutboundRoute=function(e){d.errors=[];var n=t.confirm().title(a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_TITLE")).content(a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_MESSAGE",{name:d.outboundRoute.exten})).ariaLabel("Delete outbound route").ok(a.instant("TOOLS.DELETE")).cancel(a.instant("TOOLS.CANCEL")).targetEvent(e);t.show(n).then(function(){o.voiceExtension.delete({id:d.outboundRoute.id}).$promise.then(function(){_.remove(d.outboundRoutes,{id:d.outboundRoute.id}),i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETED_SUCCESS_TITLE")}),m(d.outboundRoute)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.delete"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})})},d.closeDialog=m}e.$inject=["$mdDialog","$q","$translate","toasty","outboundRoutes","outboundRoute","api","Auth","crudPermissions"],angular.module("app.voice").controller("CreateOrEditOutboundRouteDialogController",e)}(),function(){"use strict";function e(e,i,a,n,s,o,r,t,l,d,c){var m=this;function u(e,n){1===m.applications.rows.length&&1===n&&(n=0);var t=m.applications.rows[n];i.show({controller:"EditRoutingAppDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/routing/dialog.html",parent:angular.element(a.body),targetEvent:e,locals:{application:t,route:m.outboundRoute,crudPermissions:m.crudPermissions}}).then(function(e){e?(m.applications.rows[n].appdata===e.appdata&&"custom"!==e.appType||p(),m.applications.rows[n]=e):t.id||m.applications.rows.splice(n,1)}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}function p(){m.pendingChanges=!0}m.currentUser=t.getCurrentUser(),m.outboundRoute=l||e.params.outboundRoute||{},m.contexts=d,m.userProfileSection=c&&1==c.count?c.rows[0]:null,m.crudPermissions=t.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={sort:"priority",VoiceExtensionId:m.outboundRoute.id,isApp:!0,nolimit:!0},m.apps=[{app:"Dial",appType:"outboundDial",context:"from-sip",type:"Outbound",options:"xX",interval:"*,*,*,*"},{app:null,appType:"custom",type:"Outbound",interval:"*,*,*,*"}],m.sortableAppsOptions={group:{name:"apps",pull:"clone",put:!1},animation:100,sort:!1},m.sortableRoutingOptions={group:{name:"apps",put:!0},animation:100,disabled:!m.crudPermissions.canEdit,onAdd:function(e){u(e,e.newIndex)},onUpdate:function(){p()}},m.selectedApplications=[],m.onInit=function(){if(t.isAdmin())return;e=[{key:"name",value:m.outboundRoute.context}],o.getResourcesByRole(m.currentUser,"voiceContext",{fields:"id,name",sort:"name",nolimit:!0},e).then(function(e){m.contexts=e}).catch(function(){r.error({title:s.instant("VOICE.CONTEXTS"),msg:s.instant("VOICE.NOTIFICATIONS.VOICE_CONTEXTS_GET_ERROR")})});var e},m.onActionsTabSelection=function(){m.applications||o.voiceExtension.get(m.query).$promise.then(function(e){m.applications=e||{count:0,rows:[]}})},m.gotoOutboundRoutes=function(){e.go("app.voice.outboundRoutes",{},{reload:"app.voice.outboundRoutes"})},m.saveOutboundRoute=function(){o.voiceExtension.update({id:m.outboundRoute.id},m.outboundRoute).$promise.then(function(){n(function(n,t){if(!m.applications)return n();o.voiceExtension.addApplications({id:m.outboundRoute.id},m.applications.rows).$promise.then(function(e){m.applications.rows=e.rows,n()}).catch(function(e){t(e)})}).then(function(){m.pendingChanges=!1,r.success({title:s.instant("VOICE.NOTIFICATIONS.EXTENSION_SAVED_SUCCESS_TITLE")})})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceExtension",msg:e.data?JSON.stringify(e.data):e.toString()})})},m.editApplication=u,m.editInterval=function(e,n){var t=m.applications.rows[n];i.show({controller:"EditRoutingIntervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/routing/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:void 0,crudPermissions:m.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,p())})},m.deleteApplication=function(e,n,t){var a=i.confirm().title(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATION_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATION_DELETE_MESSAGE",{name:e.app})).ariaLabel("Delete application").targetEvent(t).ok("OK").cancel(s.instant("TOOLS.CANCEL"));i.show(a).then(function(){m.applications.rows.splice(n,1),p()})},m.deleteSelectedApplications=function(e){var n=i.confirm().title(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATIONS_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATIONS_DELETE_MESSAGE",{total:m.selectedApplications.length})).ariaLabel("Delete applications").targetEvent(e).ok("OK").cancel(s.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedApplications.forEach(function(e){_.remove(m.applications.rows,{id:e.id})}),m.selectedApplications=[],p()})}}e.$inject=["$state","$mdDialog","$document","$q","$translate","api","toasty","Auth","outboundRoute","contexts","userProfileSection"],angular.module("app.voice").controller("OutboundRouteController",e)}(),function(){"use strict";function e(e,n,a,t,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){g.outboundRoutes=e||{count:0,rows:[]}}function h(){g.query.offset=(g.query.page-1)*g.query.limit,m.isAdmin()?g.promise=d.voiceExtension.get(g.query,v).$promise:(g.query.id=g.userProfile.id,g.query.section="OutboundRoutes",g.promise=d.userProfile.getResources(g.query,v).$promise)}function f(e){d.voiceExtension.delete({id:e.id}).$promise.then(function(){_.remove(g.outboundRoutes.rows,{id:e.id}),g.outboundRoutes.count-=1,g.outboundRoutes.rows.length||h(),c.success({title:s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceExtension"}];for(var n=0;n<e.data.errors.length;n++)c.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceExtension",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}g.license=u,g.setting=p,g.currentUser=m.getCurrentUser(),g.outboundRoutes=o,g.userProfile=r,g.userProfileSection=l&&1==l.count?l.rows[0]:null,g.crudPermissions=m.parseCrudPermissions(g.userProfileSection?g.userProfileSection.crudPermissions:null),g.selectedOutboundRoutes=[],g.query={fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",type:"outbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,page:1},g.editRoute=function(e){n.go("app.voice.outboundRoutes.edit",{id:e.id,outboundRoute:e,crudPermissions:g.crudPermissions})},g.createOrEditOutboundRoute=function(e,n){a.show({controller:"CreateOrEditOutboundRouteDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/outboundRoutes/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{outboundRoute:n,outboundRoutes:g.outboundRoutes.rows,crudPermissions:g.crudPermissions}})},g.success=v,g.getOutboundRoutes=h,g.deleteConfirm=function(e,n){var t=a.confirm().title(s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_MESSAGE",{name:e.exten})).ariaLabel("Delete extension").targetEvent(n).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(t).then(function(){f(e)})},g.exportSelectedOutboundRoutes=function(){var e=angular.copy(g.selectedOutboundRoutes);return g.selectedOutboundRoutes=[],e},g.deleteSelectedOutboundRoutes=function(e){var n=a.confirm().title(s.instant("VOICE.NOTIFICATIONS.EXTENSIONS_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.EXTENSIONS_DELETE_MESSAGE",{total:g.selectedOutboundRoutes.length})).ariaLabel("Delete extensions").targetEvent(e).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(n).then(function(){g.selectedOutboundRoutes.forEach(function(e){f(e)}),g.selectedOutboundRoutes=[]})};var b=!0,A=1;e.$watch("vm.query.filter",function(e,n){b?i(function(){b=!1}):(n||(A=g.query.page),e!==n&&(g.query.page=1),e||(g.query.page=A),h())})}e.$inject=["$scope","$state","$mdDialog","$document","$timeout","$translate","outboundRoutes","userProfile","userProfileSection","api","toasty","Auth","license","setting"],angular.module("app.voice").controller("OutboundRoutesController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(){return[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Agent",key:"lastAssignedTo",type:"select",label:"DASHBOARDS.SELECT_AGENT",options:g.agents.rows,customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}],ngValue:"name"},{name:"Campaign",key:"queue",type:"multiselect",label:"DASHBOARDS.SELECT_CAMPAIGN",options:g.queues.rows,ngValue:"name"}]}function h(){return g.refresh=!1,0===g.queues.count?f(null):(g.query.queue=1===g.queues.count?g.queues.rows[0].name:g.query.queue,void 0===g.query.queue&&(g.query.queue=_.map(g.queues.rows,"name")),_.isEmpty(g.query.queue)?f(null):(g.query.offset=(g.query.page-1)*g.query.limit,i.localStorage.setItem("motion2.realtime.abandoned.voice.abandonedCalls:"+g.currentUser.id,JSON.stringify({query:_.omit(g.query,"queue")})),void(g.promise=o.voiceQueueReport.getVoiceQueuesReport(g.query,f).$promise)))}function f(e){g.abandonedCalls=e||{count:0,rows:[]},!1,g.refresh=!0}g.currentUser=d.getCurrentUser(),g.agents=u||[],g.dispositions=p.rows,g.abandonedCalls={count:0,rows:[]},g.showTooltip=!1,g.refresh=!0,g.userProfile=r,g.userProfileSection=l&&1==l.count?l.rows[0]:null,g.crudPermissions=d.parseCrudPermissions(g.userProfileSection?g.userProfileSection.crudPermissions:null),g.query={fields:"id,type,calleridnum,calleridname,queue,queuecallerabandonAt,queuecallerexitAt,queuecallerexitreason,assigned,lastAssignedTo,updatedAt,disposition,secondDisposition,thirdDisposition",type:"inbound",queuecallerexitreason:"TIMEOUT,ABANDONED",sort:"-updatedAt",limit:10,page:1},g.getAbandonedCalls=h,g.refreshAbandonedCalls=function(){g.showTooltip=!1,h()},g.assignTo=function(e,n){e&&o.voiceQueueReport.update({id:e.id,lastAssignedTo:n?n.name:null,assigned:!!n}).$promise.catch(function(e){console.log(e)})},g.dispose=function(t){n.show({controller:"DisposeAbandonedCallDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/home/abandoned/dispose/dialog.html",parent:angular.element(a.body),targetEvent:t,locals:{dispositions:g.dispositions,call:t}}).then(function(e){if(e){var n={id:t.id,disposition:e.firstLevel||null,secondDisposition:e.secondLevel||null,thirdDisposition:e.thirdLevel||null};o.voiceQueueReport.update(n).$promise.catch(function(e){console.log(e)})}})},g.onSaveVoiceQueueReport=function(e){e&&g.queuesMap&&"inbound"===queue.type&&g.queuesMap[e.queue]&&(g.showTooltip=!0)},g.onUpdateVoiceQueueReport=function(e){if(e){var n=_.findIndex(g.abandonedCalls.rows,["id",e.id]);0<=n&&_.merge(g.abandonedCalls.rows[n],e)}},c.onWithoutApply("voiceQueueReport:save",g.onSaveVoiceQueueReport),c.on("voiceQueueReport:update",g.onUpdateVoiceQueueReport),function(){var e=i.localStorage.getItem("motion2.realtime.abandoned.voice.abandonedCalls:"+g.currentUser.id);if(e)(e=JSON.parse(e))&&e.query&&(g.query=_.merge(e.query,_.omit(g.query,["sort","limit","page"])),g.query=_.omit(g.query,"filter"));else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()};g.query.createdAt=n}d.hasRole("admin")?o.user.getQueues({id:d.getCurrentUser().id,fields:"id,name",channel:"voice",type:"inbound",nolimit:!0}).$promise.then(function(e){g.queues=e||{count:0,rows:[]},g.queuesMap=_.mapValues(_.keyBy(g.queues.rows,"name"),"name")}).catch(function(e){console.error(e)}).finally(function(){g.quickFilters=v(),h()}):o.userProfile.getResources({id:g.currentUser.userProfileId,section:"VoiceQueues",channel:"voice",type:"inbound",sort:"-updatedAt",nolimit:!0}).$promise.then(function(e){g.queues=e||{count:0,rows:[]},g.queuesMap=_.mapValues(_.keyBy(g.queues.rows,"name"),"name")}).catch(function(e){console.error(e)}).finally(function(){g.quickFilters=v(),h()})}();var b=!0,A=1;e.$watch("vm.query.filter",function(e,n){b?t(function(){b=!1}):(n||(A=g.query.page),e!==n&&(g.query.page=1),e||(g.query.page=A),h())}),e.$on("$destroy",function(){c.removeAllListeners("voiceQueueReport:save"),c.removeAllListeners("voiceQueueReport:update")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","userProfile","userProfileSection","Auth","socket","toasty","agents","dispositions"],angular.module("app.voice").controller("AbandonedCallsVoiceRealtimeController",e)}(),function(){"use strict";function e(e,o,n,t,a,i,s,r,l,d,c,m,u,p,g,v,h,f){var b=this,A=["userpic","online","lastLoginAt","lastPauseAt","pauseType","lastPauseAt","internal","address","chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","chatCapacity","openchannelCapacity","mailCapacity","smsCapacity","whatsappCapacity","faxCapacity","chatCurrentCapacity","openchannelCurrentCapacity","mailCurrentCapacity","smsCurrentCapacity","whatsappCurrentCapacity","faxCurrentCapacity","chatStatus","openchannelStatus","mailStatus","smsStatus","whatsappStatus","faxStatus","voiceStatus","chatStatusTime","openchannelStatusTime","mailStatusTime","smsStatusTime","whatsappStatusTime","faxStatusTime","voiceStatusTime","queue","destconnectedlinenum","screenrecording","phoneBarEnableScreenRecordingByAgent","phoneBarEnableAutomaticScreenRecording","routealias"],E=["chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","online"];for(var y in b.currentUser=v.getCurrentUser(),b.availableStates=["ringing","inuse","busy","onhold","not_inuse"],b.pauses=s||{count:0,rows:[]},b.license=h,b.userProfile=p,b.userProfileSection=g&&1==g.count?g.rows[0]:null,b.crudPermissions=v.parseCrudPermissions(b.userProfileSection?b.userProfileSection.crudPermissions:null),b.agents=r?_.keyBy(r.rows?r.rows:[],"id"):{},b.rpcAgents=l?_.keyBy(l.rows?l.rows:[],"id"):{},b.paginatedAgents={},b.load=!1,b.order=[],b.agentInternal={},b.agents)b.agents.hasOwnProperty(y)&&(b.agents[y].init=!0);b.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},b.logout=function(e,n){return d.user.logout({id:e.id,device:"realtime",agent_id:e.id,agent_name:e.name}).$promise.then(function(){m.success({title:"Agent logout",msg:e.fullname+" properly logout"}),b.agents[e.id]&&(b.agents[e.id].online=!1),b.rpcAgents[e.id]&&(b.rpcAgents[e.id].online=!1),T()}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.queueAdd=function(e,n){t.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:[],channel:"voice",direction:"inbound",crudPermissions:b.crudPermissions}})},b.pause=function(n,e){return d.user.pause({id:n.id,type:e}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.unPause=function(n){return d.user.unpause({id:n.id}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.showInfo=function(e){t.show(t.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},b.getAgentStatus=O,b.getAgentGlobalStatus=w,b.isPause=I,b.checkPause=function(e){return"pause"===e},b.isPartialPause=function(e){return"*pause"===e},b.onSave=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(_.omit(e,E),A)),_.merge(b.rpcAgents[e.id],_.pick(_.omit(e,E),A)),w(b.agents[e.id]))},b.onUpdate=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(e,A)),_.merge(b.rpcAgents[e.id],_.pick(e,A)),e.lastPauseAt&&(b.agents[e.id].globalStatusTime=e.lastPauseAt,b.rpcAgents[e.id].globalStatusTime=e.lastPauseAt),w(b.agents[e.id]))},b.onInit=T,b.onConnect=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(_.merge(b.agents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])),_.merge(b.rpcAgents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])))},b.onComplete=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(b.agents[b.agentInternal[e.destaccountcode]]=_.omit(b.agents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]),b.rpcAgents[b.agentInternal[e.destaccountcode]]=_.omit(b.rpcAgents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]))},b.screenRecording=function(e,n){return d.user.update({id:e.id},{screenrecording:n}).$promise.catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.on("user:save",b.onSave),c.on("user:update",b.onUpdate),c.on("user:agentconnect",b.onConnect),c.on("user:agentcomplete",b.onComplete),T();var S=f(function(){b.load&&(b.load=!1,T())},999);function T(e){b.load=!1;var n,t,a=o.defer();b.promise=a.promise,b.filteredAgents=[],b.order=[],_.forIn(b.agents,function(e,n){b.rpcAgents[n]&&_.merge(e,_.pick(_.omit(b.rpcAgents[n],E),A)),w(e),e.online?(b.filteredAgents.push(e),b.agentInternal[e.internal]=n):e.globalStatusTime=_.toNumber(moment().format("x"))}),b.query.globalStatusFilter&&_.remove(b.filteredAgents,function(e){return e.globalStatus!==b.query.globalStatusFilter}),b.query.pauseTypeFilter&&_.remove(b.filteredAgents,function(e){return e.pauseType!==b.query.pauseTypeFilter}),b.query.filter&&_.remove(b.filteredAgents,function(e){return e.fullname.toLowerCase().indexOf(b.query.filter.toLowerCase())<0}),b.filteredAgents=(n=b.filteredAgents,t=_.startsWith(b.query.order,"-")?"desc":"asc",_.orderBy(n,[b.query.order.replace("-","")],[t]));var i=(b.query.page-1)*b.query.limit;b.paginatedAgents=_.drop(b.filteredAgents,i).slice(0,b.query.limit);for(var s=0;s<b.paginatedAgents.length;s+=1)b.order.push(b.paginatedAgents[s].id);a.resolve(),b.load=!0}function I(e){return"pause"===e||"*pause"===e}function C(e){return"idle"===e||"unknown"===e||"unavailable"===e||"ringing"===e||_.isNil(e)}function O(e,n){return"voice"===n?"idle"!==e[n+"Status"]?e[n+"Status"]:e[n+"Pause"]?e[n+"Status"]="pause":"idle":e[n+"Pause"]?e[n+"Status"]="pause":e[n+"Status"]}function w(e){var n="unknown";n=_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"pause":_.some([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"*pause":_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],C)?"idle":"busy",e.globalStatus!==n&&(e.globalStatus=n,e.init?(e.init=!1,e.globalStatusTime=I(n)?_.toNumber(moment(e.lastPauseAt).format("x")):_.max([e.voiceStatusTime,e.chatStatusTime,e.mailStatusTime,e.smsStatusTime,e.whatsappStatusTime,e.openchannelStatusTime,e.faxStatusTime])):e.globalStatusTime=_.toNumber(moment().format("x")))}e.$on("$destroy",function(){c.removeAllListeners("user:save"),c.removeAllListeners("user:update"),c.removeAllListeners("user:agentconnect"),c.removeAllListeners("user:agentcomplete"),S&&(f.cancel(S),S=null)})}e.$inject=["$scope","$q","$timeout","$mdDialog","$document","$filter","pauses","agents","rpcAgents","api","socket","toasty","helperClasses","userProfile","userProfileSection","Auth","license","$interval"],angular.module("app.voice").controller("AgentsVoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,s){var o=this;o.calls=i||{rows:[],count:0},o.query={limit:10,page:1},o.channelStatus=s.channelStatusOut,o.onSave=function(e){var n=_.find(o.calls.rows,{channel:e.channel});e.channelstatedesc=e.dialstatus?"up":"ring",n?_.merge(n,e):e.channel&&o.calls.rows.push(e)},o.onRemove=function(e){var n=_.findIndex(o.calls.rows,{channel:e.channel});0<=n&&(o.calls.rows[n].status="hangup");t(function(){o.calls.rows.splice(n,1)},5e3)},a.on("voice_outbound_channel:save",o.onSave),a.on("voice_outbound_channel:remove",o.onRemove),e.$on("$destroy",function(){a.removeAllListeners("voice_outbound_channel:save"),a.removeAllListeners("voice_outbound_channel:remove")})}e.$inject=["$scope","$timeout","api","socket","rpcCalls","helperClasses"],angular.module("app.voice").controller("OutboundCallsVoiceRealtimeController",e)}(),function(){"use strict";function e(e,n,a,o,t,i,s,r,l,d,c,m,u){var p=this;p.currentUser=u.getCurrentUser(),p.queues=t?_.keyBy(t.rows?t.rows:[],"name"):{},p.rpcVoiceQueuesChannelsTmp=i?_.keyBy(i.rows?_.filter(i.rows,{type:"inbound"}):[],"uniqueid"):{},p.rpcVoiceQueuesChannels={},p.userProfile=c,p.userProfileSection=m&&1==m.count?m.rows[0]:null,p.crudPermissions=u.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.queryChannels={limit:10,page:1},p.getAvailableAgents=function(){p.availableAgents=null,s.rpc.getAgents().$promise.then(function(e){for(var n=[],t=e?e.rows:[],a=_.filter(t,{online:!0,voicePause:!1,voiceStatus:"idle"}),i=0;i<a.length;i++){var s=_.find(o.rows,["id",a[i].id]);s&&n.push(s)}p.availableAgents=n}).catch(function(e){d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},p.getSize=function(e){return _.size(e)},p.$onInit=function(){_.forIn(p.rpcVoiceQueuesChannelsTmp,function(e,n){_.find(p.queues,{name:e.name})&&(p.rpcVoiceQueuesChannels[n]=e)})},p.onSave=function(e){"inbound"===e.type&&_.find(p.queues,{name:e.name})&&(p.rpcVoiceQueuesChannels[e.uniqueid]=e)},p.onRemove=function(e){p.rpcVoiceQueuesChannels[e.uniqueid]&&delete p.rpcVoiceQueuesChannels[e.uniqueid]},p.hangup=function(n){return s.rpc.getVoiceQueuesChannelHangup({uniqueid:n}).$promise.then(function(e){d.success({title:"Channel "+n+" properly hangup!",msg:e.message||""})}).catch(function(e){d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},p.redirectToAgent=function(n,e,t){return s.rpc.getVoiceQueuesChannelRedirect({uniqueid:n,exten:e,context:t}).$promise.then(function(e){d.success({title:"Channel "+n+" properly redirect!",msg:e.message||""})}).catch(function(e){d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},p.redirectToNumber=function(e,n){var t=a.prompt().title("Which number do you want transfer the call to?").placeholder("Number").targetEvent(e).ok("Ok").cancel("Cancel");return a.show(t).then(function(e){return s.rpc.getVoiceQueuesChannelRedirect({uniqueid:n,exten:e}).$promise}).then(function(e){d.success({title:"Channel "+n+" properly redirect!",msg:e.message||""})}).catch(function(e){e&&d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},r.on("voice_queue_channel:save",p.onSave),r.on("voice_queue_channel:remove",p.onRemove),e.$on("$destroy",function(){r.removeAllListeners("voice_queue_channel:save"),r.removeAllListeners("voice_queue_channel:remove")})}e.$inject=["$scope","$timeout","$mdDialog","agents","queues","rpcVoiceQueuesChannels","api","socket","helperClasses","toasty","userProfile","userProfileSection","Auth"],angular.module("app.voice").controller("QueueCallsVoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["total","answered","unmanaged","abandoned","sumHoldTime","sumDuration","sumBillable"];function u(){_.forIn(c.queues,function(e,n){c.rpcQueues[n]&&_.merge(e,_.pick(c.rpcQueues[n],m))})}c.count=a.count,c.queues=a?_.keyBy(a.rows?a.rows:[],"id"):{},c.rpcQueues=i?_.keyBy(i.rows?i.rows:[],"id"):{},c.userProfile=r,c.userProfileSection=l&&1==l.count?l.rows[0]:null,c.crudPermissions=d.parseCrudPermissions(c.userProfileSection?c.userProfileSection.crudPermissions:null),d.hasRole("admin")?c.query={type:"inbound",fields:"id,name",sort:"-updatedAt",limit:10,page:1}:c.query={id:d.getCurrentUser().id,channel:"voice",type:"inbound",fields:"id,name",sort:"-updatedAt",limit:10,page:1},c.success=v,c.getQueues=function(){c.query.offset=(c.query.page-1)*c.query.limit,d.hasRole("admin")?c.promise=s.voiceQueue.get(c.query,v).$promise:(c.query.id=c.userProfile.id,c.query.section="VoiceQueues",c.promise=s.userProfile.getResources(c.query,v).$promise)},c.onSave=function(e){c.queues[e.id]&&_.merge(c.queues[e.id],_.pick(e,m))},c.$onInit=u,o.onWithoutApply("voice_queue:save",c.onSave),c.interval=n(function(){},999);var p=!0,g=1;function v(e){c.count=e.count,c.queues=e?_.keyBy(e.rows?e.rows:[],"id"):{},u()}e.$watch("vm.query.filter",function(e,n){p?t(function(){p=!1}):(n||(g=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=g),c.getQueues())}),e.$on("$destroy",function(){o.removeAllListeners("voice_queue:save"),c.interval&&n.cancel(c.interval)})}e.$inject=["$scope","$timeout","$interval","queues","rpcQueues","api","socket","userProfile","userProfileSection","Auth"],angular.module("app.voice").controller("QueueParamsVoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c,m){var u=this,p=n(function(){},999);u.currentUser=c.getCurrentUser(),u.queues=s,u.userProfileSection=d&&1==d.count?d.rows[0]:null,u.crudPermissions=c.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.query={id:c.isUser()?u.currentUser.id:void 0,section:c.isUser()?"VoiceQueues":void 0,channel:"voice",type:"inbound",sort:"name",limit:10,page:1},u.getQueues=function(){u.query.offset=(u.query.page-1)*u.query.limit,o.realtime.getQueues(u.query).$promise.then(function(e){u.queues=e}).catch(function(e){l.error({title:i.instant("VOICE.VOICEQUEUES"),msg:e.status?JSON.stringify(e.data):e.toString()})})},u.editQueue=function(e,n){t.show({controller:"CreateOrEditVoiceQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{voiceQueue:n,voiceQueues:u.queues.rows,license:null,setting:null,crudPermissions:u.crudPermissions}})},u.addAgent=function(e,n){t.show({controller:"VoiceQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{voiceQueue:n,voiceQueues:u.queues.rows,realtime:!0,crudPermissions:u.crudPermissions}})},r.onWithoutApply("voice_queue:save",function(e){var n=_.find(u.queues.rows,["id",e.id]);n&&m.updateVoiceQueue(e,n)}),r.on("userVoiceQueue:save",function(e){var n=_.find(u.queues.rows,["id",e.VoiceQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),r.on("userVoiceQueue:remove",function(e){var n=_.find(u.queues.rows,["id",e.VoiceQueueId]);n&&(0<n.loggedInDb&&n.loggedInDb--,_.remove(n.agents,["id",e.UserId]))}),r.on("user:agentconnect",function(t){u.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);if(n){if(!t.agentconnected)return;t.queue?n.talking=!0:n.busy=!0,m.updateBusyCounter(e)}})}),r.on("user:agentcomplete",function(t){u.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&(n.talking?n.talking=!1:n.busy&&(n.busy=!1),m.updateBusyCounter(e))})}),r.on("user:update",function(t){u.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&m.updateQueue(t,e,n,"voice")})}),e.$on("$destroy",function(){r.removeAllListeners("voice_queue:save"),r.removeAllListeners("userVoiceQueue:remove"),r.removeAllListeners("userVoiceQueue:save"),r.removeAllListeners("user:agentconnect"),r.removeAllListeners("user:agentcomplete"),r.removeAllListeners("user:update"),p&&n.cancel(p)})}e.$inject=["$scope","$mdDialog","$document","$interval","$translate","queues","api","socket","toasty","userProfileSection","Auth","realtimeManager"],angular.module("app.voice").controller("QueuesVoiceRealtimeController",e)}(),function(){"use strict";angular.module("app.auth").factory("helperClasses",function(){return{status:{registered:"green-300-fg icon-checkbox-marked-circle",unregistered:"red-300-fg icon-close-circle",lagged:"red-300-fg icon-close-circle",reachable:"green-300-fg icon-checkbox-marked-circle",unreachable:"red-300-fg icon-close-circle",unknown:"grey-fg icon-minus-circle"},state:{unknown:"grey-fg icon-phone-hangup",not_inuse:"green-300-fg icon-phone-hangup",inuse:"red-300-fg icon-phone-in-talk",busy:"red-300-fg icon-phone-locked",invalid:"grey-fg icon-phone-hangup",unavailable:"grey-fg icon-phone-hangup",ringing:"blue-300-fg icon-phone-incoming",ringinuse:"blue-300-fg icon-phone-incoming",onhold:"blue-300-fg icon-phone-paused"},channelStatus:{ring:"blue-300-fg icon-phone-incoming",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"},channelStatusOut:{ring:"blue-300-fg icon-phone-outgoing",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"}}})}(),function(){"use strict";function e(e,t,n){var a=this;switch(a.selectedTab=0,t.current.name){case"app.voice.realtime.agents":a.selectedTab=0;break;case"app.voice.realtime.telephones":a.selectedTab=1;break;case"app.voice.realtime.trunks":a.selectedTab=2;break;case"app.voice.realtime.queues":a.selectedTab=3;break;case"app.voice.realtime.queue_calls":a.selectedTab=4;break;case"app.voice.realtime.abandonedcalls":a.selectedTab=5;break;case"app.voice.realtime.queue_params":a.selectedTab=6;break;case"app.voice.realtime.outbound_calls":a.selectedTab=7;break;default:a.selectedTab=0,t.go("app.voice.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.voice.realtime.agents");break;case 1:t.go("app.voice.realtime.telephones");break;case 2:t.go("app.voice.realtime.trunks");break;case 3:t.go("app.voice.realtime.queues");break;case 4:t.go("app.voice.realtime.queue_calls");break;case 5:t.go("app.voice.realtime.abandonedcalls");break;case 6:t.go("app.voice.realtime.queue_params");break;case 7:t.go("app.voice.realtime.outbound_calls");break;default:t.go("app.voice.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.voice").controller("VoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c){var m=this,u=["fullname","internal","state","status"];function p(){_.forIn(m.telephones,function(e,n){m.rpcTelephones[n]&&_.merge(e,_.pick(m.rpcTelephones[n],u))})}m.count=a.count,m.attributes=["fullname","internal","state","status","address"],m.telephones=a?_.keyBy(a.rows?a.rows:[],"id"):{},m.rpcTelephones=i?_.keyBy(i.rows?i.rows:[],"id"):{},m.userProfile=l,m.userProfileSection=d&&1==d.count?d.rows[0]:null,m.crudPermissions=c.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={fields:"id,fullname,internal",role:"telephone",sort:"-updatedAt",limit:10,page:1},m.statusClass=r.status,m.stateClass=r.state,m.success=h,m.$onInit=p,m.showInfo=function(e){n.show(n.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},m.getTelephones=function(){m.query.offset=(m.query.page-1)*m.query.limit,c.hasRole("admin")?m.promise=s.user.get(m.query,h).$promise:(m.query.id=m.userProfile.id,m.query.section="Telephones",m.promise=s.userProfile.getResources(m.query,h).$promise)},m.onSave=function(e){m.telephones[e.id]&&_.merge(m.telephones[e.id],_.pick(e,u))},o.on("telephone:save",m.onSave);var g=!0,v=1;function h(e){m.telephones=e?_.keyBy(e.rows?e.rows:[],"id"):{},p()}e.$watch("vm.query.filter",function(e,n){g?t(function(){g=!1}):(n||(v=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=v),m.getTelephones())}),e.$on("$destroy",function(){o.removeAllListeners("telephone:save")})}e.$inject=["$scope","$timeout","$mdDialog","telephones","rpcTelephones","api","socket","helperClasses","userProfile","userProfileSection","Auth"],angular.module("app.voice").controller("TelephonesVoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m){var u=this,p=["status","stateRegistry","registry","host","port","internal","state","status"];function g(){for(var e,n=0;n<u.trunks.length;n+=1)0<=(e=_.findIndex(u.rpcTrunks,["id",u.trunks[n].id]))&&_.merge(u.trunks[n],_.pick(u.rpcTrunks[e],p))}function v(e,n,t){0<=n&&_.merge(e[n],_.pick(t,p))}u.currentUser=m.getCurrentUser(),u.count=a.count,u.trunks=a?a.rows:[],u.rpcTrunks=i&&i.rows?i.rows:[],u.query={fields:"id,name",active:!0,sort:"-updatedAt",limit:10,page:1},u.statusClass=r.status,u.stateClass=r.state,u.userProfile=d,u.userProfileSection=c&&1==c.count?c.rows[0]:null,u.crudPermissions=m.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.success=b,u.$onInit=g,u.showInfo=function(e){n.show(n.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},u.getTrunks=function(){u.query.offset=(u.query.page-1)*u.query.limit,m.hasRole("admin")?u.promise=s.trunk.get(u.query,b).$promise:(u.query.id=u.userProfile.id,u.query.section="Trunks",u.promise=s.userProfile.getResources(u.query,b).$promise)},u.goToTrunk=function(e,n){l.go("app.tools.trunks.edit",{id:n.id})},u.onSave=function(e){var n=_.findIndex(u.trunks,["id",e.id]),t=_.findIndex(u.rpcTrunks,["id",e.id]);v(u.trunks,n,e),v(u.rpcTrunks,t,e)},o.on("trunk:save",u.onSave);var h=!0,f=1;function b(e){u.count=e.count,u.trunks=e&&e.rows?e.rows:[],g()}e.$watch("vm.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=u.query.page),e!==n&&(u.query.page=1),e||(u.query.page=f),u.getTrunks())}),e.$on("$destroy",function(){o.removeAllListeners("trunk:save")})}e.$inject=["$scope","$timeout","$mdDialog","trunks","rpcTrunks","api","socket","helperClasses","$state","userProfile","userProfileSection","Auth"],angular.module("app.voice").controller("TrunksVoiceRealtimeController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_VOICEMAIL",g.voicemail=angular.copy(l),g.voicemails=r,g.newVoicemail=!1,g.voicemail||(g.voicemail={attach:"no"},g.title="VOICE.NEW_VOICEMAIL",g.newVoicemail=!0),g.addNewVoicemail=function(){g.errors=[],d.voiceMail.save(g.voicemail).$promise.then(function(e){g.voicemails.unshift(e.toJSON()),o.success({title:"Voicemail properly created",msg:g.voicemail.name?g.voicemail.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMail.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMail.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveVoicemail=function(){g.errors=[],d.voiceMail.update({id:g.voicemail.id},g.voicemail).$promise.then(function(e){var n=_.find(g.voicemails,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Voicemail properly saved!",msg:g.voicemail.name?g.voicemail.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMail.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMail.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteVoicemail=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The voicemail will be deleted.").ariaLabel("Delete Voicemail").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceMail.delete({id:g.voicemail.id}).$promise.then(function(){_.remove(g.voicemails,{id:g.voicemail.id}),o.success({title:"Voicemail properly deleted!",msg:(g.voicemail.name||"voicemail")+" has been deleted!"}),v(g.voicemail)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMail.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMail.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","voicemails","voicemail","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditVoicemailDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.voicemailMessages=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.voiceMail.getMessages(m.query,u).$promise}function g(e){d.voiceMailMessage.delete({id:e.id}).$promise.then(function(){_.remove(m.voicemailMessages.rows,{id:e.id}),m.voicemailMessages.count-=1,m.voicemailMessages.rows.length||p(),l.success({title:"Message deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETvoiceMail"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMail",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.voicemail={},m.voicemailMessages={count:0,rows:[]},m.selectedVoicemailMessages=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,callerid,duration,audio,stamp,msg_id",sort:"-stamp",limit:10,page:1},m.init=function(e,n){m.voicemail=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.id=m.voicemail.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the message?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("message #")+e.id||"message")+"</b> will be deleted.").ariaLabel("delete message").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.voiceMailMessageDownload=function(s,e,n){return d.voiceMailMessage.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="message"+s.id,a=new Blob(n,{type:e.type});t=s.msg_id+".wav";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMail.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getVoicemailMessages=p,m.createOrEditVoicemailMessage=function(e,n){o.show({controller:"CreateOrEditMessageDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voicemails/edit/messages/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{voicemail:m.voicemail,message:n,messages:m.voicemailMessages.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedVoicemailMessages=function(){var e=angular.copy(m.selectedVoicemailMessages);return m.selectedVoicemailMessages=[],e},m.deleteVoicemailMessage=g,m.deleteSelectedVoicemailMessages=function(e){var n=o.confirm().title("Are you sure want to delete the selected messages?").htmlContent("<b>"+m.selectedVoicemailMessages.length+" selected</b> will be deleted.").ariaLabel("delete messages").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedVoicemailMessages.forEach(function(e){g(e)}),m.selectedVoicemailMessages=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.voice").controller("VoicemailMessagesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.voicemail=c||e.params.voicemail||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoVoicemails=function(){e.go("app.voice.voicemails",{},{reload:"app.voice.voicemails"})},u.saveVoicemail=function(){r.voiceMail.update({id:u.voicemail.id},u.voicemail).$promise.then(function(){l.success({title:"Voicemail updated!",msg:u.voicemail.name?u.voicemail.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMail",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_CONTEXTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:405}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;return n?n.autoAssociation?void 0:r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.contexts,{id:e.resourceId})}),t=null;if(u.voicemail&&(t=_.find(u.contexts,{name:u.voicemail.context})),t&&!_.some(n,["id",t.id])){var a=_.find(u.contexts,{id:t.id});a.canSelect=!1,n.push(a)}u.contexts=n}):r.voiceContext.get({fields:"id,name",sort:"name",defaultEntry:1}).$promise.then(function(e){u.contexts=e.rows||[]})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","voicemail","userProfileSection"],angular.module("app.voice").controller("VoicemailController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.voicemails=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="voicemails",f.listOrder="",f.listOrderAsc=null,f.selectedVoicemails=[],f.query={fields:"createdAt,updatedAt,id,customer_id,fullname,email,password,mailbox,context,tz,attach,envelope,delete,emailbody,emailsubject,maxsecs,maxmsg",sort:"-updatedAt",limit:10,page:1},f.arrayattach=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayenvelope=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraydelete=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.voice.voicemails.edit",{id:e.id,voicemail:e,crudPermissions:f.crudPermissions})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("voicemail")+"?").htmlContent("<b>"+(e.name||"voicemail")+"</b> will be deleted.").ariaLabel("delete voicemail").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getVoicemails=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.voiceMail.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Voicemails",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditVoicemail=function(e,n){i.show({controller:"CreateOrEditVoicemailDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voicemails/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{voicemail:n,voicemails:f.voicemails.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteVoicemail=y,f.exportSelectedVoicemails=function(){var e=angular.copy(f.selectedVoicemails);return f.selectedVoicemails=[],e},f.deleteSelectedVoicemails=function(e){var n=i.confirm().title("Are you sure want to delete the selected voicemails?").htmlContent("<b>"+f.selectedVoicemails.length+" selected</b> will be deleted.").ariaLabel("delete Voicemails").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedVoicemails.forEach(function(e){y(e)}),f.selectedVoicemails=[]})},f.deselectVoicemails=function(){f.selectedVoicemails=[]},f.selectAllVoicemails=function(){f.selectedVoicemails=f.voicemails.rows};var b=!0,A=1;function E(e){f.voicemails=e||{count:0,rows:[]}}function y(e){m.voiceMail.delete({id:e.id}).$promise.then(function(){_.remove(f.voicemails.rows,{id:e.id}),f.voicemails.count-=1,f.voicemails.rows.length||f.getVoicemails(),p.success({title:_.startCase("Voicemail")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceMail"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceMail",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getVoicemails())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","voicemails","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.voice").controller("VoicemailsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_VOICEPREFIX",g.voicePrefix=angular.copy(l),g.voicePrefixes=r,g.newvoicePrefix=!1,g.voicePrefix||(g.voicePrefix={},g.title="VOICE.NEW_VOICEPREFIX",g.newvoicePrefix=!0),g.addNewvoicePrefix=function(){g.errors=[],d.voicePrefix.save(g.voicePrefix).$promise.then(function(e){g.voicePrefixes.unshift(e.toJSON()),o.success({title:"voicePrefix properly created",msg:g.voicePrefix.name?g.voicePrefix.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voicePrefix.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voicePrefix.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.savevoicePrefix=function(){g.errors=[],d.voicePrefix.update({id:g.voicePrefix.id},g.voicePrefix).$promise.then(function(e){var n=_.find(g.voicePrefixes,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"voicePrefix properly saved!",msg:g.voicePrefix.name?g.voicePrefix.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voicePrefix.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voicePrefix.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deletevoicePrefix=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The voicePrefix will be deleted.").ariaLabel("Delete voicePrefix").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voicePrefix.delete({id:g.voicePrefix.id}).$promise.then(function(){_.remove(g.voicePrefixes,{id:g.voicePrefix.id}),o.success({title:"voicePrefix properly deleted!",msg:(g.voicePrefix.name||"voicePrefix")+" has been deleted!"}),v(g.voicePrefix)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voicePrefix.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voicePrefix.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){g.outboundRoutes=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){g.outboundRoutes=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:403}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.outboundRoutes,{id:e.resourceId})}),t=null;if(g.voicePrefix&&(t=_.find(g.outboundRoutes,{id:Number(g.voicePrefix.VoiceExtensionId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.outboundRoutes,{id:t.id});a.canSelect=!1,n.push(a)}g.outboundRoutes=n})}else{var t=[],a=null;g.voicePrefix&&(a=_.find(g.outboundRoutes,{id:Number(g.voicePrefix.VoiceExtensionId)}));for(var i=0;i<g.outboundRoutes.length;i++)a&&g.outboundRoutes[i].id===a.id&&(g.outboundRoutes[i].canSelect=!1,t.push(g.outboundRoutes[i]));g.outboundRoutes=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GEToutboundRoutes",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","voicePrefixes","voicePrefix","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditvoicePrefixDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.voicePrefix.getAgents({id:c.voicePrefix.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UservoicePrefix?"penalty "+e.UservoicePrefix.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.voicePrefix=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.voicePrefix.removeAgents({id:c.voicePrefix.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.voicePrefix.addAgents({id:c.voicePrefix.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("VOICE.ALL_AGENTS"),labelSelected:r.instant("VOICE.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","voicePrefix","voicePrefixes","realtime","$translate","Auth","crudPermissions"],angular.module("app.voice").controller("voicePrefixagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.voicePrefix.getTeams({id:l.voicePrefix.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.voicePrefix=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("VOICE.ALL_TEAMS"),labelSelected:t.instant("VOICE.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.voicePrefix.removeTeams({id:l.voicePrefix.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.voicePrefix.addTeams({id:l.voicePrefix.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","voicePrefix","$translate","Auth","crudPermissions"],angular.module("app.voice").controller("voicePrefixteamaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.voicePrefixes=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="voicePrefixes",f.listOrder="",f.listOrderAsc=null,f.selectedVoicePrefixes=[],f.query={fields:"createdAt,updatedAt,id,name,VoiceExtensionId,callerIdAll,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditvoicePrefixDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voicePrefixes/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{voicePrefix:e,voicePrefixes:f.voicePrefixes.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"voicePrefixagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voicePrefixes/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{voicePrefix:e,voicePrefixes:f.voicePrefixes?f.voicePrefixes.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.teamadddialog=function(e,n){i.show({controller:"voicePrefixteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voicePrefixes/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{voicePrefix:e,voicePrefixes:f.voicePrefixes?f.voicePrefixes.rows:[],crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("voicePrefix")+"?").htmlContent("<b>"+(e.name||"voicePrefix")+"</b> will be deleted.").ariaLabel("delete voicePrefix").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getVoicePrefixes=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.voicePrefix.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="VoicePrefixes",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditvoicePrefix=function(e,n){i.show({controller:"CreateOrEditvoicePrefixDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voicePrefixes/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{voicePrefix:n,voicePrefixes:f.voicePrefixes.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deletevoicePrefix=y,f.exportSelectedVoicePrefixes=function(){var e=angular.copy(f.selectedVoicePrefixes);return f.selectedVoicePrefixes=[],e},f.deleteSelectedVoicePrefixes=function(e){var n=i.confirm().title("Are you sure want to delete the selected voicePrefixes?").htmlContent("<b>"+f.selectedVoicePrefixes.length+" selected</b> will be deleted.").ariaLabel("delete voicePrefixs").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedVoicePrefixes.forEach(function(e){y(e)}),f.selectedVoicePrefixes=[]})},f.deselectVoicePrefixes=function(){f.selectedVoicePrefixes=[]},f.selectAllVoicePrefixes=function(){f.selectedVoicePrefixes=f.voicePrefixes.rows},g.hasRole("admin")?m.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){f.outboundRoutes=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){f.outboundRoutes=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:403}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.outboundRoutes,{id:e.resourceId})}),t=null;if(f.voicePrefix&&(t=_.find(f.outboundRoutes,{id:Number(f.voicePrefix.VoiceExtensionId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.outboundRoutes,{id:t.id});a.canSelect=!1,n.push(a)}f.outboundRoutes=n})}else{var t=[],a=null;f.voicePrefix&&(a=_.find(f.outboundRoutes,{id:Number(f.voicePrefix.VoiceExtensionId)}));for(var i=0;i<f.outboundRoutes.length;i++)a&&f.outboundRoutes[i].id===a.id&&(f.outboundRoutes[i].canSelect=!1,t.push(f.outboundRoutes[i]));f.outboundRoutes=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GEToutboundRoutes",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.voicePrefixes=e||{count:0,rows:[]}}function y(e){m.voicePrefix.delete({id:e.id}).$promise.then(function(){_.remove(f.voicePrefixes.rows,{id:e.id}),f.voicePrefixes.count-=1,f.voicePrefixes.rows.length||f.getVoicePrefixes(),p.success({title:_.startCase("voicePrefix")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoicePrefix"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoicePrefix",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getVoicePrefixes())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","voicePrefixes","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.voice").controller("VoicePrefixesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_VOICEQUEUE",g.voiceQueue=angular.copy(l),g.voiceQueues=r,g.newVoiceQueue=!1,g.voiceQueue||(g.voiceQueue={type:"inbound",strategy:"ringall",timeout:15,retry:2,random_periodic_announce:"no",announce_holdtime:"no",announce_position:"no",reportholdtime:"no",autopause:"no",ringinuse:"no",timeoutrestart:"no",setinterfacevar:"no",setqueuevar:"no",setqueueentryvar:"no"},g.title="VOICE.NEW_VOICEQUEUE",g.newVoiceQueue=!0),g.addNewVoiceQueue=function(){g.errors=[],d.voiceQueue.save(g.voiceQueue).$promise.then(function(e){g.voiceQueues.unshift(e.toJSON()),o.success({title:"VoiceQueue properly created",msg:g.voiceQueue.name?g.voiceQueue.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveVoiceQueue=function(){g.errors=[],d.voiceQueue.update({id:g.voiceQueue.id},g.voiceQueue).$promise.then(function(e){var n=_.find(g.voiceQueues,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"VoiceQueue properly saved!",msg:g.voiceQueue.name?g.voiceQueue.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteVoiceQueue=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The voiceQueue will be deleted.").ariaLabel("Delete VoiceQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceQueue.delete({id:g.voiceQueue.id}).$promise.then(function(){_.remove(g.voiceQueues,{id:g.voiceQueue.id}),o.success({title:"VoiceQueue properly deleted!",msg:(g.voiceQueue.name||"voiceQueue")+" has been deleted!"}),v(g.voiceQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","voiceQueues","voiceQueue","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditVoiceQueueDialogController",e)}(),function(){"use strict";function e(e,l,a,d,n,t,i,s,o,r){var c=this;function m(){return l(function(t,n){return l(function(n,t){return d.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],o.hasRole("admin")?e:c.section?c.section.autoAssociation?e:l(function(n,t){return d.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:o.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),l(function(n,t){return d.voiceQueue.getAgents({id:c.voiceQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserVoiceQueue?"penalty "+e.UserVoiceQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=o.getCurrentUser(),c.voiceQueue=n,c.crudPermissions=r,c.penalty=0,c.realtime=i,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return o.hasRole("admin")?m().catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):l(function(t,n){d.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceWith(c.selectedItems,c.startingSelectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});return(t=e,l(function(e,n){_.isEmpty(t)?e():d.voiceQueue.removeAgents({id:c.voiceQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return r=n,l(function(e,n){if(_.isEmpty(r))e();else{for(var t=[],a=_.groupBy(r,"penalty"),i=0;i<Object.keys(a).length;i++){var s=Object.keys(a)[i],o=_.filter(r,["penalty",s]);t.push(d.voiceQueue.addAgents({id:c.voiceQueue.id,ids:_.map(o,"id"),penalty:_.trim(s,"penalty "),realtime:c.realtime||!1}).$promise)}l.all(t).then(function(){e()}).catch(function(e){n(e)})}});var r}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),a.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:s.instant("VOICE.ALL_AGENTS"),labelSelected:s.instant("VOICE.SELECTED_AGENTS"),transferCallback:function(e,n){n?e.forEach(function(e){e.penalty=void 0}):e.forEach(function(e){e.penalty="penalty "+c.penalty});var t=_.xorWith(c.startingSelectedItems,c.selectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","voiceQueue","voiceQueues","realtime","$translate","Auth","crudPermissions"],angular.module("app.voice").controller("VoiceQueueagentaddController",e)}(),function(){"use strict";function e(e,i,a,s,n,t,o,r){var l=this;function d(){return i(function(t,n){return i(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:i(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),i(function(n,t){return s.voiceQueue.getTeams({id:l.voiceQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.voiceQueue=n,l.crudPermissions=r,l.penalty=0,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"penalty",labelAll:t.instant("VOICE.ALL_TEAMS"),labelSelected:t.instant("VOICE.SELECTED_TEAMS"),transferCallback:function(e,n){n?e.forEach(function(e){e.penalty=void 0}):e.forEach(function(e){e.penalty="penalty "+l.penalty});var t=_.xorWith(l.startingSelectedItems,l.selectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):i(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceWith(l.selectedItems,l.startingSelectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});return(t=e,i(function(e,n){_.isEmpty(t)?e():s.voiceQueue.removeTeams({id:l.voiceQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return a=n,i(function(e,n){if(!_.isEmpty(a)){var t=_.map(a,function(e){return{id:e.id,penalty:_.trim(e.penalty,"penalty ")}});return s.voiceQueue.addTeams({id:l.voiceQueue.id,teams:t}).$promise.then(function(){e()}).catch(function(e){n(e)})}e()});var a}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),a.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","voiceQueue","$translate","Auth","crudPermissions"],angular.module("app.voice").controller("VoiceQueueteamaddController",e)}(),function(){"use strict";function e(t,e,a,i,s,n,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=n,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=e.protocol()+"://"+e.host(),u.voiceQueue=c||t.params.voiceQueue||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=t.params.tab||0,u.teamadddialog=function(e,n){a.show({controller:"VoiceQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/teamadd/teamadd.html",parent:angular.element(i.body),targetEvent:n,clickOutsideToClose:!0,locals:{voiceQueue:e,voiceQueues:u.voiceQueues?u.voiceQueues.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){a.show({controller:"VoiceQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/agentadd/agentadd.html",parent:angular.element(i.body),targetEvent:n,clickOutsideToClose:!0,locals:{voiceQueue:e,voiceQueues:u.voiceQueues?u.voiceQueues.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.gotogoto=function(e,n){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:411}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.voice.realtime.queues",{}):l.info({title:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.voice.realtime.queues",{})}},u.alert=l.info,u.gotoVoiceQueues=function(){t.go("app.voice.voiceQueues",{},{reload:"app.voice.voiceQueues"})},u.saveVoiceQueue=function(){r.voiceQueue.update({id:u.voiceQueue.id},u.voiceQueue).$promise.then(function(){l.success({title:"VoiceQueue updated!",msg:u.voiceQueue.name?u.voiceQueue.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.voiceMusicOnHold.get({fields:"id,name",nolimit:"true"}).$promise.then(function(e){u.musiconholds=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_MUSICONHOLDS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.voiceMusicOnHold.get({fields:"id,name",nolimit:"true"}).$promise.then(function(e){u.musiconholds=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:407}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;return n?n.autoAssociation?void 0:r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.musiconholds,{id:e.resourceId})}),t=null;if(u.voiceQueue&&(t=_.find(u.musiconholds,{name:u.voiceQueue.musiconhold})),t&&!_.some(n,["id",t.id])){var a=_.find(u.musiconholds,{id:t.id});a.canSelect=!1,n.push(a)}u.musiconholds=n}):r.voiceMusicOnHold.get({fields:"id,name",nolimit:"true",defaultEntry:1}).$promise.then(function(e){u.musiconholds=e.rows||[]})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmusiconholds",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.sound.get({fields:"id,name,save_name",sort:"name",nolimit:"true"}).$promise.then(function(e){u.sounds=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_SOUNDS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.sound.get({fields:"id,name,save_name",sort:"name",nolimit:"true"}).$promise.then(function(e){u.sounds=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1007}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.sounds,{id:e.resourceId})});u.sounds.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),u.sounds=n})}else u.sounds=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){u.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){u.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.pauses,{id:e.resourceId})});u.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),u.pauses=n})}else u.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","voiceQueue","userProfileSection"],angular.module("app.voice").controller("VoiceQueueController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.voiceQueues=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="voiceQueues",f.listOrder="",f.listOrderAsc=null,f.selectedVoiceQueues=[],f.query={fields:"createdAt,updatedAt,id,name,type,strategy,timeout,maxlen,retry,wrapuptime,weight,joinempty,leavewhenempty,musiconhold,announce,description,periodic_announce,queue_reporthold,queue_youarenext,queue_thereare,queue_callswaiting,queue_holdtime,queue_minutes,queue_minute,queue_seconds,queue_thankyou,announce_frequency,min_announce_frequency,periodic_announce_frequency,random_periodic_announce,announce_holdtime,announce_position,announce_position_limit,reportholdtime,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar,servicelevel,mandatoryDisposition,mandatoryDispositionPauseId",type:"inbound",sort:"-updatedAt",channel:"voice",limit:10,page:1},f.arraystrategy=_.keyBy([{option:"Ringall",value:"'ringall'"},{option:"Round Robin Memory",value:"'rrmemory'"},{option:"Least Recent",value:"'leastrecent'"},{option:"Fewest Calls",value:"'fewestcalls'"},{option:"Random",value:"'random'"},{option:"Linear",value:"'linear'"},{option:"Weight Random",value:"'wrandom'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayjoinempty=_.keyBy([{option:"no",value:"'no'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'no'"},{option:"yes",value:"'yes'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'yes'"},{option:"strict",value:"'strict'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'strict'"},{option:"loose",value:"'loose'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'loose'"},{option:"paused",value:"'paused'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'paused'"},{option:"penalty",value:"'penalty'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'penalty'"},{option:"inuse",value:"'inuse'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'inuse'"},{option:"ringing",value:"'ringing'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'ringing'"},{option:"unavailable",value:"'unavailable'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'unavailable'"},{option:"invalid",value:"'invalid'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'invalid'"},{option:"unknown",value:"'unknown'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'unknown'"},{option:"wrapup",value:"'wrapup'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'wrapup'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayleavewhenempty=_.keyBy([{option:"no",value:"'no'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'no'"},{option:"yes",value:"'yes'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'yes'"},{option:"strict",value:"'strict'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'strict'"},{option:"loose",value:"'loose'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'loose'"},{option:"paused",value:"'paused'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'paused'"},{option:"penalty",value:"'penalty'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'penalty'"},{option:"inuse",value:"'inuse'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'inuse'"},{option:"ringing",value:"'ringing'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'ringing'"},{option:"unavailable",value:"'unavailable'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'unavailable'"},{option:"invalid",value:"'invalid'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'invalid'"},{option:"unknown",value:"'unknown'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'unknown'"},{option:"wrapup",value:"'wrapup'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'wrapup'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayrandom_periodic_announce=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayannounce_holdtime=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"},{option:"Once",value:"'once'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayannounce_position=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"},{option:"Limit",value:"'limit'"},{option:"More",value:"'more'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayreportholdtime=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayautopause=_.keyBy([{option:"Yes",value:"'all'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayringinuse=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraytimeoutrestart=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraymonitor_format=_.keyBy([{option:"Inactive",value:"''"},{option:"wav",value:"'wav'"},{option:"wav49",value:"'wav49'"},{option:"gsm",value:"'gsm'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysetinterfacevar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysetqueuevar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysetqueueentryvar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.voice.voiceQueues.edit",{id:e.id,voiceQueue:e,crudPermissions:f.crudPermissions})},f.teamadddialog=function(e,n){i.show({controller:"VoiceQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{voiceQueue:e,voiceQueues:f.voiceQueues?f.voiceQueues.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"VoiceQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{voiceQueue:e,voiceQueues:f.voiceQueues?f.voiceQueues.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("voiceQueue")+"?").htmlContent("<b>"+(e.name||"voiceQueue")+"</b> will be deleted.").ariaLabel("delete voiceQueue").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:411}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.voice.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.voice.realtime.queues",{})}},f.success=E,f.getVoiceQueues=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.voiceQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="VoiceQueues",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditVoiceQueue=function(e,n){i.show({controller:"CreateOrEditVoiceQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{voiceQueue:n,voiceQueues:f.voiceQueues.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteVoiceQueue=y,f.exportSelectedVoiceQueues=function(){var e=angular.copy(f.selectedVoiceQueues);return f.selectedVoiceQueues=[],e},f.deleteSelectedVoiceQueues=function(e){var n=i.confirm().title("Are you sure want to delete the selected voiceQueues?").htmlContent("<b>"+f.selectedVoiceQueues.length+" selected</b> will be deleted.").ariaLabel("delete VoiceQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedVoiceQueues.forEach(function(e){y(e)}),f.selectedVoiceQueues=[]})},f.deselectVoiceQueues=function(){f.selectedVoiceQueues=[]},f.selectAllVoiceQueues=function(){f.selectedVoiceQueues=f.voiceQueues.rows};var b=!0,A=1;function E(e){f.voiceQueues=e||{count:0,rows:[]}}function y(e){m.voiceQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.voiceQueues.rows,{id:e.id}),f.voiceQueues.count-=1,f.voiceQueues.rows.length||f.getVoiceQueues(),p.success({title:_.startCase("VoiceQueue")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getVoiceQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","voiceQueues","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.voice").controller("VoiceQueuesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_VOICERECORDING",g.voiceRecording=angular.copy(l),g.voiceRecordings=r,g.newVoiceRecording=!1,g.voiceRecording||(g.voiceRecording={},g.title="VOICE.NEW_VOICERECORDING",g.newVoiceRecording=!0),g.addNewVoiceRecording=function(){g.errors=[],d.voiceRecording.save(g.voiceRecording).$promise.then(function(e){g.voiceRecordings.unshift(e.toJSON()),o.success({title:"VoiceRecording properly created",msg:g.voiceRecording.name?g.voiceRecording.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceRecording.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveVoiceRecording=function(){g.errors=[],d.voiceRecording.update({id:g.voiceRecording.id},g.voiceRecording).$promise.then(function(e){var n=_.find(g.voiceRecordings,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"VoiceRecording properly saved!",msg:g.voiceRecording.name?g.voiceRecording.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceRecording.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceRecording.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteVoiceRecording=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The voiceRecording will be deleted.").ariaLabel("Delete VoiceRecording").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceRecording.delete({id:g.voiceRecording.id}).$promise.then(function(){_.remove(g.voiceRecordings,{id:g.voiceRecording.id}),o.success({title:"VoiceRecording properly deleted!",msg:(g.voiceRecording.name||"voiceRecording")+" has been deleted!"}),v(g.voiceRecording)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceRecording.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceRecording.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","voiceRecordings","voiceRecording","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditVoiceRecordingDialogController",e)}(),function(){"use strict";function e(e,n){var t=this;t.voiceRecording={},t.init=function(e){t.voiceRecording=e}}e.$inject=["api","toasty"],angular.module("app.voice").controller("VoiceRecordingSentimentStatisticsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.voiceRecording=c||e.params.voiceRecording||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoVoiceRecordings=function(){e.go("app.voice.voiceRecordings",{},{reload:"app.voice.voiceRecordings"})},u.saveVoiceRecording=function(){r.voiceRecording.update({id:u.voiceRecording.id},u.voiceRecording).$promise.then(function(){l.success({title:"VoiceRecording updated!",msg:u.voiceRecording.name?u.voiceRecording.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceRecording",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","voiceRecording","userProfileSection"],angular.module("app.voice").controller("VoiceRecordingController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,l,r,d,c,m,u,p,g,v,h){var f=this;function b(n,e){return m.voiceRecording.runTranscribe({id:n.id,runSentiment:!1}).$promise.then(function(e){p.success({title:l.instant("VOICE.RUNTRANSCRIBE_VOICERECORDING"),msg:l.instant("VOICE.RUNTRANSCRIBE_VOICERECORDING")+" succeded!"}),n.transcribeStatus=e.transcribeStatus}).catch(function(e){p.error({title:l.instant("VOICE.RUNTRANSCRIBE_VOICERECORDING"),msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})}function A(n,e){return m.voiceRecording.runTranscribe({id:n.id,runSentiment:!0}).$promise.then(function(e){p.success({title:l.instant("VOICE.RUNTRANSCRIBESENTIMENT_VOICERECORDING"),msg:l.instant("VOICE.RUNTRANSCRIBESENTIMENT_VOICERECORDING")+" succeded!"}),n.transcribeStatus=e.transcribeStatus}).catch(function(e){p.error({title:l.instant("VOICE.RUNTRANSCRIBESENTIMENT_VOICERECORDING"),msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})}function E(e,n){return m.voiceRecording.runTranscribe({id:e.id,runSentiment:!0}).$promise.then(function(e){p.success({title:l.instant("VOICE.RUNSENTIMENT_VOICERECORDING"),msg:l.instant("VOICE.RUNSENTIMENT_VOICERECORDING")+" succeded!"})}).catch(function(e){p.error({title:l.instant("VOICE.RUNSENTIMENT_VOICERECORDING"),msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})}f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.voiceRecordings=r||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="voiceRecordings",f.listOrder="",f.listOrderAsc=null,f.selectedVoiceRecordings=[],f.query={fields:"createdAt,updatedAt,id,format,value,type,uniqueid,calleridnum,exten,connectedlinenum,queue,membername,rating,audio,userDisposition,userSecondDisposition,userThirdDisposition,transcribeStatus,fileText,failureReason,sentiment,sPositive,sNegative,sNeutral,sMixed",sort:"-createdAt",createdAt:"@msUtils.firstLastDayMonth()",limit:10,page:1},f.query.createdAt=u.firstLastDayMonth(),f.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE_RANGE"}],f.editstate=function(e,n){t.go("app.voice.voiceRecordings.edit",{id:e.id,voiceRecording:e,crudPermissions:f.crudPermissions})},f.runtranscriberuntranscribesentiment=b,f.runtranscribesentimentruntranscribesentiment=A,f.runsentimentruntranscribesentiment=E,f.downloadtranscribefile2=function(s,e){var t=!1,n=_.isNil(s.format)?s.value.substring(s.value.lastIndexOf(".")):s.format;t=".mp4"===n;-1<s.value.lastIndexOf("/")?s.value.substring(s.value.lastIndexOf("/")+1):-1<s.value.lastIndexOf("\\")?s.value.substring(s.value.lastIndexOf("\\")+1):s.value;return m.voiceRecording.downloadTranscribe({id:s.id}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=s.uniqueid+".txt";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else"404"===String(e.status)&&!1===t?p.info({title:l.instant("VOICE.CANT_DOWNLOAD_THIS_FILE"),msg:l.instant("VOICE.WRONG_EXTENSION")}):"404"===String(e.status)?p.info({title:l.instant("VOICE.CANT_DOWNLOAD_THIS_FILE"),msg:l.instant("VOICE.FILE_NOT_FOUND")}):p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},f.downloadfile2=function(r,e){var t=!1,n=_.isNil(r.format)?r.value.substring(r.value.lastIndexOf(".")):r.format;t=".mp4"===n;-1<r.value.lastIndexOf("/")?r.value.substring(r.value.lastIndexOf("/")+1):-1<r.value.lastIndexOf("\\")?r.value.substring(r.value.lastIndexOf("\\")+1):r.value;return m.voiceRecording.download({id:r.id}).$promise.then(function(e){var n,t,a=[e.buffer],i="download",s=new Blob(a,{type:e.type});n=r.value,t=-1<n.lastIndexOf("/")?n.substring(n.lastIndexOf("/")+1):-1<n.lastIndexOf("\\")?n.substring(n.lastIndexOf("\\")+1):n,i=(t=t.substring(0,t.lastIndexOf(".")))+r.format;var o=window.document.createElement("a");o.setAttribute("href",URL.createObjectURL(s)),o.setAttribute("download",i),document.body.appendChild(o),o.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else"404"===String(e.status)&&!1===t?p.info({title:l.instant("VOICE.CANT_DOWNLOAD_THIS_FILE"),msg:l.instant("VOICE.WRONG_EXTENSION")}):"404"===String(e.status)?p.info({title:l.instant("VOICE.CANT_DOWNLOAD_THIS_FILE"),msg:l.instant("VOICE.FILE_NOT_FOUND")}):p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("voiceRecording")+"?").htmlContent("<b>"+(e.name||"voiceRecording")+"</b> will be deleted.").ariaLabel("delete voiceRecording").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){I(e)},function(){console.log("CANCEL")})},f.success=T,f.getVoiceRecordings=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.voiceRecording.get(f.query,T).$promise:(f.query.id=f.userProfile.id,f.query.section="VoiceRecordings",f.promise=m.userProfile.getResources(f.query,T).$promise)},f.createOrEditVoiceRecording=function(e,n){i.show({controller:"CreateOrEditVoiceRecordingDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceRecordings/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{voiceRecording:n,voiceRecordings:f.voiceRecordings.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteVoiceRecording=I,f.exportSelectedVoiceRecordings=function(){var e=angular.copy(f.selectedVoiceRecordings);return f.selectedVoiceRecordings=[],e},f.deleteSelectedVoiceRecordings=function(e){var n=i.confirm().title("Are you sure want to delete the selected voiceRecordings?").htmlContent("<b>"+f.selectedVoiceRecordings.length+" selected</b> will be deleted.").ariaLabel("delete VoiceRecordings").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedVoiceRecordings.forEach(function(e){I(e)}),f.selectedVoiceRecordings=[]})},f.deselectVoiceRecordings=function(){f.selectedVoiceRecordings=[]},f.selectAllVoiceRecordings=function(){f.selectedVoiceRecordings=f.voiceRecordings.rows},f.runtranscribeSelectedVoiceRecordings=function(n){f.selectedVoiceRecordings.forEach(function(e){b(e,n)}),f.selectedVoiceRecordings=[]},f.runtranscribesentimentSelectedVoiceRecordings=function(n){f.selectedVoiceRecordings.forEach(function(e){A(e,n)}),f.selectedVoiceRecordings=[]},f.runsentimentSelectedVoiceRecordings=function(n){f.selectedVoiceRecordings.forEach(function(e){E(e,n)}),f.selectedVoiceRecordings=[]};var y=!0,S=1;function T(e){f.voiceRecordings=e||{count:0,rows:[]}}function I(e){m.voiceRecording.delete({id:e.id}).$promise.then(function(){_.remove(f.voiceRecordings.rows,{id:e.id}),f.voiceRecordings.count-=1,f.voiceRecordings.rows.length||f.getVoiceRecordings(),p.success({title:_.startCase("VoiceRecording")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceRecording"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceRecording",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){y?o(function(){y=!1}):(n||(S=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=S),f.getVoiceRecordings())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","voiceRecordings","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.voice").controller("VoiceRecordingsController",e)}(),function(){"use strict";function e(e,o,n,t,a,i,s,r,l,d,c,m,u,p,g,v,h,f){var b=this,A=["userpic","online","lastLoginAt","lastPauseAt","pauseType","lastPauseAt","internal","address","chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","chatCapacity","openchannelCapacity","mailCapacity","smsCapacity","whatsappCapacity","faxCapacity","chatCurrentCapacity","openchannelCurrentCapacity","mailCurrentCapacity","smsCurrentCapacity","whatsappCurrentCapacity","faxCurrentCapacity","chatStatus","openchannelStatus","mailStatus","smsStatus","whatsappStatus","faxStatus","voiceStatus","chatStatusTime","openchannelStatusTime","mailStatusTime","smsStatusTime","whatsappStatusTime","faxStatusTime","voiceStatusTime","queue","destconnectedlinenum","screenrecording","phoneBarEnableScreenRecordingByAgent","phoneBarEnableAutomaticScreenRecording"],E=["chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","online"];for(var y in b.currentUser=v.getCurrentUser(),b.availableStates=["ringing","inuse","busy","onhold","not_inuse"],b.pauses=s||{count:0,rows:[]},b.license=h,b.userProfile=p,b.userProfileSection=g&&1==g.count?g.rows[0]:null,b.crudPermissions=v.parseCrudPermissions(b.userProfileSection?b.userProfileSection.crudPermissions:null),b.agents=r?_.keyBy(r.rows?r.rows:[],"id"):{},b.rpcAgents=l?_.keyBy(l.rows?l.rows:[],"id"):{},b.paginatedAgents={},b.load=!1,b.order=[],b.agentInternal={},b.agents)b.agents.hasOwnProperty(y)&&(b.agents[y].init=!0);b.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},b.logout=function(e,n){return d.user.logout({id:e.id,device:"realtime",agent_id:e.id,agent_name:e.name}).$promise.then(function(){m.success({title:"Agent logout",msg:e.fullname+" properly logout"}),b.agents[e.id]&&(b.agents[e.id].online=!1),b.rpcAgents[e.id]&&(b.rpcAgents[e.id].online=!1),T()}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.queueAdd=function(e,n){t.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:[],channel:"whatsapp",direction:"inbound",crudPermissions:b.crudPermissions}})},b.pause=function(n,e){return d.user.pause({id:n.id,type:e}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.unPause=function(n){return d.user.unpause({id:n.id}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.showInfo=function(e){t.show(t.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},b.getAgentStatus=O,b.getAgentGlobalStatus=w,b.isPause=I,b.checkPause=function(e){return"pause"===e},b.isPartialPause=function(e){return"*pause"===e},b.onSave=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(_.omit(e,E),A)),_.merge(b.rpcAgents[e.id],_.pick(_.omit(e,E),A)),w(b.agents[e.id]))},b.onUpdate=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(e,A)),_.merge(b.rpcAgents[e.id],_.pick(e,A)),e.lastPauseAt&&(b.agents[e.id].globalStatusTime=e.lastPauseAt,b.rpcAgents[e.id].globalStatusTime=e.lastPauseAt),w(b.agents[e.id]))},b.onInit=T,b.onConnect=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(_.merge(b.agents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])),_.merge(b.rpcAgents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])))},b.onComplete=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(b.agents[b.agentInternal[e.destaccountcode]]=_.omit(b.agents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]),b.rpcAgents[b.agentInternal[e.destaccountcode]]=_.omit(b.rpcAgents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]))},b.screenRecording=function(e,n){return d.user.update({id:e.id},{screenrecording:n}).$promise.catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.on("user:save",b.onSave),c.on("user:update",b.onUpdate),c.on("user:agentconnect",b.onConnect),c.on("user:agentcomplete",b.onComplete),T();var S=f(function(){b.load&&(b.load=!1,T())},999);function T(e){b.load=!1;var n,t,a=o.defer();b.promise=a.promise,b.filteredAgents=[],b.order=[],_.forIn(b.agents,function(e,n){b.rpcAgents[n]&&_.merge(e,_.pick(_.omit(b.rpcAgents[n],E),A)),w(e),e.online?(b.filteredAgents.push(e),b.agentInternal[e.internal]=n):e.globalStatusTime=_.toNumber(moment().format("x"))}),b.query.globalStatusFilter&&_.remove(b.filteredAgents,function(e){return e.globalStatus!==b.query.globalStatusFilter}),b.query.pauseTypeFilter&&_.remove(b.filteredAgents,function(e){return e.pauseType!==b.query.pauseTypeFilter}),b.query.filter&&_.remove(b.filteredAgents,function(e){return e.fullname.toLowerCase().indexOf(b.query.filter.toLowerCase())<0}),b.filteredAgents=(n=b.filteredAgents,t=_.startsWith(b.query.order,"-")?"desc":"asc",_.orderBy(n,[b.query.order.replace("-","")],[t]));var i=(b.query.page-1)*b.query.limit;b.paginatedAgents=_.drop(b.filteredAgents,i).slice(0,b.query.limit);for(var s=0;s<b.paginatedAgents.length;s+=1)b.order.push(b.paginatedAgents[s].id);a.resolve(),b.load=!0}function I(e){return"pause"===e||"*pause"===e}function C(e){return"idle"===e||"unknown"===e||"unavailable"===e||"ringing"===e||_.isNil(e)}function O(e,n){return"voice"===n?"idle"!==e[n+"Status"]?e[n+"Status"]:e[n+"Pause"]?e[n+"Status"]="pause":"idle":e[n+"Pause"]?e[n+"Status"]="pause":e[n+"Status"]}function w(e){var n="unknown";n=_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"pause":_.some([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"*pause":_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],C)?"idle":"busy",e.globalStatus!==n&&(e.globalStatus=n,e.init?(e.init=!1,e.globalStatusTime=I(n)?_.toNumber(moment(e.lastPauseAt).format("x")):_.max([e.voiceStatusTime,e.chatStatusTime,e.mailStatusTime,e.smsStatusTime,e.whatsappStatusTime,e.openchannelStatusTime,e.faxStatusTime])):e.globalStatusTime=_.toNumber(moment().format("x")))}e.$on("$destroy",function(){c.removeAllListeners("user:save"),c.removeAllListeners("user:update"),c.removeAllListeners("user:agentconnect"),c.removeAllListeners("user:agentcomplete"),S&&(f.cancel(S),S=null)})}e.$inject=["$scope","$q","$timeout","$mdDialog","$document","$filter","pauses","agents","rpcAgents","api","socket","toasty","helperClasses","userProfile","userProfileSection","Auth","license","$interval"],angular.module("app.voice").controller("AgentsWhatsappRealtimeController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c,m){var u=this,p=["loggedIn","available","waiting","paused"],g=n(function(){},999);u.currentUser=c.getCurrentUser(),u.queues=s,u.userProfileSection=d&&1==d.count?d.rows[0]:null,u.crudPermissions=c.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.query={id:c.isUser()?u.currentUser.id:void 0,section:c.isUser()?"WhatsappQueues":void 0,channel:"whatsapp",sort:"name",limit:10,page:1},u.getQueues=function(){u.query.offset=(u.query.page-1)*u.query.limit,o.realtime.getQueues(u.query).$promise.then(function(e){u.queues=e}).catch(function(e){l.error({title:i.instant("WHATSAPP.WHATSAPPQUEUES"),msg:e.status?JSON.stringify(e.data):e.toString()})})},u.editQueue=function(e,n){t.show({controller:"CreateOrEditWhatsappQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{whatsappQueue:n,whatsappQueues:u.queues.rows,license:null,setting:null,crudPermissions:u.crudPermissions}})},u.addAgent=function(e,n){t.show({controller:"WhatsappQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{whatsappQueue:n,whatsappQueues:u.queues.rows,realtime:!1,crudPermissions:u.crudPermissions}})},r.on("whatsapp_queue:save",function(e){var n=_.find(u.queues.rows,["id",e.id]);n&&_.merge(n,_.pick(e,p))}),r.on("userWhatsappQueue:save",function(e){var n=_.find(u.queues.rows,["id",e.WhatsappQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),r.on("userWhatsappQueue:remove",function(e){var n=_.find(u.queues.rows,["id",e.WhatsappQueueId]);n&&(0<n.loggedInDb&&n.loggedInDb--,_.remove(n.agents,["id",e.UserId]))}),r.on("user:update",function(t){u.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&m.updateQueue(t,e,n,"whatsapp")})}),e.$on("$destroy",function(){r.removeAllListeners("whatsapp_queue:save"),r.removeAllListeners("userWhatsappQueue:remove"),r.removeAllListeners("userWhatsappQueue:save"),r.removeAllListeners("user:update"),g&&n.cancel(g)})}e.$inject=["$scope","$mdDialog","$document","$interval","$translate","queues","api","socket","toasty","userProfileSection","Auth","realtimeManager"],angular.module("app.whatsapp").controller("QueuesWhatsappRealtimeController",e)}(),function(){"use strict";angular.module("app.auth").factory("helperClasses",function(){return{status:{registered:"green-300-fg icon-checkbox-marked-circle",unregistered:"red-300-fg icon-close-circle",lagged:"red-300-fg icon-close-circle",reachable:"green-300-fg icon-checkbox-marked-circle",unreachable:"red-300-fg icon-close-circle",unknown:"grey-fg icon-minus-circle"},state:{unknown:"grey-fg icon-phone-hangup",not_inuse:"green-300-fg icon-phone-hangup",inuse:"red-300-fg icon-phone-in-talk",busy:"red-300-fg icon-phone-locked",invalid:"grey-fg icon-phone-hangup",unavailable:"grey-fg icon-phone-hangup",ringing:"blue-300-fg icon-phone-incoming",ringinuse:"blue-300-fg icon-phone-incoming",onhold:"blue-300-fg icon-phone-paused"},channelStatus:{ring:"blue-300-fg icon-phone-incoming",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"},channelStatusOut:{ring:"blue-300-fg icon-phone-outgoing",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"}}})}(),function(){"use strict";function e(e,t,n){switch(this.selectedTab=0,t.current.name){case"app.whatsapp.realtime.agents":this.selectedTab=0;break;case"app.whatsapp.realtime.queues":this.selectedTab=1;break;default:this.selectedTab=0,t.go("app.whatsapp.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.whatsapp.realtime.agents");break;case 1:t.go("app.whatsapp.realtime.queues");break;default:t.go("app.whatsapp.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.whatsapp").controller("WhatsappRealtimeController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(){"twilio"===g.whatsappAccount.type&&(g.whatsappAccount.baseUrl=null)}function h(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="WHATSAPP.EDIT_WHATSAPPACCOUNT",g.whatsappAccount=angular.copy(l),g.whatsappAccounts=r,g.newWhatsappAccount=!1,g.whatsappAccount||(g.whatsappAccount={remote:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():""),type:"twilio",notificationSound:!0,queueTransferTimeout:300,waitForTheAssignedAgent:10,agentTransferTimeout:300},g.title="WHATSAPP.NEW_WHATSAPPACCOUNT",g.newWhatsappAccount=!0),n.params.id&&(g.whatsappAccount.WhatsappAccountId=n.params.id),g.addNewWhatsappAccount=function(){g.errors=[],v(),console.log("AC vm.whatsappAccount:",g.whatsappAccount),d.whatsappAccount.save(g.whatsappAccount).$promise.then(function(e){g.whatsappAccounts.unshift(e.toJSON()),o.success({title:"WhatsappAccount properly created",msg:g.whatsappAccount.name?g.whatsappAccount.name+" has been created!":""}),h(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.whatsappAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.whatsappAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveWhatsappAccount=function(){g.errors=[],v(),d.whatsappAccount.update({id:g.whatsappAccount.id},g.whatsappAccount).$promise.then(function(e){var n=_.find(g.whatsappAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"WhatsappAccount properly saved!",msg:g.whatsappAccount.name?g.whatsappAccount.name+" has been saved!":""}),h(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.whatsappAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.whatsappAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteWhatsappAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The whatsappAccount will be deleted.").ariaLabel("Delete WhatsappAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.whatsappAccount.delete({id:g.whatsappAccount.id}).$promise.then(function(){_.remove(g.whatsappAccounts,{id:g.whatsappAccount.id}),o.success({title:"WhatsappAccount properly deleted!",msg:(g.whatsappAccount.name||"whatsappAccount")+" has been deleted!"}),h(g.whatsappAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.whatsappAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.whatsappAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=h,c.hasRole("admin")?d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.lists,{id:e.resourceId})}),t=null;if(g.whatsappAccount&&(t=_.find(g.lists,{id:Number(g.whatsappAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.lists,{id:t.id});a.canSelect=!1,n.push(a)}g.lists=n})}else{var t=[],a=null;g.whatsappAccount&&(a=_.find(g.lists,{id:Number(g.whatsappAccount.ListId)}));for(var i=0;i<g.lists.length;i++)a&&g.lists[i].id===a.id&&(g.lists[i].canSelect=!1,t.push(g.lists[i]));g.lists=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.hasRole("admin")?d.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){g.pauses=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){g.pauses=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.pauses,{id:e.resourceId})});g.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),g.pauses=n})}else g.pauses=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","whatsappAccounts","whatsappAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.whatsapp").controller("CreateOrEditWhatsappAccountDialogController",e)}(),function(){"use strict";function e(o,i,a,s,e){var r=this;function n(e,n){if(r.whatsappAccountApps.rows.length){var t=r.whatsappAccountApps.rows[n]?r.whatsappAccountApps.rows[n]:r.whatsappAccountApps.rows[0];i.show({controller:"EditWhatsappAccountApp"+(t.appType||t.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/"+(t.appType||t.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{whatsappAccountApp:t,whatsappAccount:r.whatsappAccount,crudPermissions:r.crudPermissions}}).then(function(e){e&&(e.id?r.whatsappAccountApps.rows[n]=e:r.whatsappAccountApps.rows.splice(n,0,e),l())}).catch(function(e){e&&s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function l(){for(var e=1,n=[],t=0;t<r.whatsappAccountApps.rows.length;t++,0){var a=r.whatsappAccountApps.rows[t],i=[],s=[];a.intervals="*,*,*,*"!==a.interval?[a.interval]:a.IntervalId?_.map(_.filter(r.intervals.rows,{IntervalId:a.IntervalId}),"interval"):[],a.context=r.whatsappAccount.context,a.exten=r.whatsappAccount.exten,a.type&&(a.type=a.type.toLowerCase()),a.priority=i.length?_.last(i).priority+1:e,e=(s.length?_.last(s).priority:a.priority)+1,n=_.concat(n,i,[a],s)}o.whatsappAccount.addApplications({id:r.whatsappAccount.id},_.sortBy(n,"priority")).$promise.then(function(e){r.whatsappAccountApps.rows=e.rows}).catch(function(e){console.error(e)})}function t(e){r.whatsappAccountApps=e||{count:0,rows:[]}}r.currentUser=e.getCurrentUser(),r.whatsappAccount={},r.whatsappAccountApps={count:0,rows:[]},r.selectedWhatsappAccountApps=[],r.crudPermissions,r.query={sort:"priority"},r.apps=_.reject(_.sortBy([{app:"Interval",appType:"interval",types:["always","custom","list"],fields:[],isApp:!1},{app:"noop",appType:"noop",type:"noop",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,fields:[{title:"Value",name:"value",type:"text",param:0}]},{app:"system",appType:"system",type:"system",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,extraApi:[{name:"variables",field:{name:"variable",key:"name"},route:"variable",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1012}}],fields:[{title:"Command",name:"command",type:"text",required:!0,param:0},{title:"Variable",name:"variable",type:"apiselect",values:"variables",value:"variable.name",option:"variable.name",defaultValues:[{value:"''",option:"None"}],defaultValue:"''",param:1}]},{app:"gotop",appType:"gotop",type:"goto",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Priority",name:"priority",type:"number",required:!0,min:0,param:0}]},{app:"gotoif",appType:"gotoif",type:"gotoif",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Condition",name:"condition",type:"text",required:!0,param:0},{title:"truepriority",name:"truepriority",type:"number",min:1,required:!0,param:1},{title:"falsepriority",name:"falsepriority",type:"number",min:1,required:!0,param:2}]},{app:"queue",appType:"queue",foreignKey:"WhatsappQueueId",type:"queue",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"queues",field:{name:"queue",key:"name"},route:"whatsappQueue",filters:{fields:"id,name,type",sort:"name",nolimit:!0},permissions:{section:2102}}],fields:[{title:"Queue",name:"queue",type:"apiselect",values:"queues",value:"queue.name",option:"queue.name",defaultValue:300,required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:300,param:1}]},{app:"agent",appType:"agent",type:"agent",foreignKey:"UserId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"agents",field:{name:"agent",key:"name"},route:"user",filters:{fields:"id,name",sort:"name",nolimit:!0,role:"agent"},permissions:{section:202}}],fields:[{title:"Agent",name:"agent",type:"apiselect",values:"agents",value:"agent.name",option:"agent.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:30,param:1}]},{app:"autoreply",appType:"autoreply",type:"autoreply",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"times",name:"times",type:"select",defaultValue:"1",values:[{option:"One Time",value:"2"},{option:"Always",value:"0"},{option:"First Message",value:"1"}],required:!0,param:0},{title:"Text",name:"text",type:"textarea",required:!0,param:1}]},{app:"close",appType:"close",type:"close",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Disposition",name:"disposition",type:"text",required:!0,param:0}]},{app:"tag",appType:"tag",type:"tag",foreignKey:"TagId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"tags",field:{name:"tag",key:"name"},route:"tag",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1008}}],fields:[{title:"Tag",name:"tag",type:"apiselect",values:"tags",value:"tag.name",option:"tag.name",required:!0,param:0}]},{app:"dialogflow",appType:"dialogflow",type:"dialogflow",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Key",name:"key",type:"text",required:!0,param:0},{title:"language",name:"language",type:"select",defaultValue:"'en'",values:[{option:"Danish",value:"'da'"},{option:"English",value:"'en'"},{option:"German",value:"'de'"},{option:"Italian",value:"'it'"},{option:"Spanish",value:"'es'"},{option:"French",value:"'fr'"},{option:"Indonesian",value:"'id'"},{option:"Japanese",value:"'ja'"},{option:"Korean (South Korea)",value:"'ko'"},{option:"Dutch",value:"'nl'"},{option:"Norwegian",value:"'no'"},{option:"Portuguese (European)",value:"'pt'"},{option:"Portuguese (Nrazilian)",value:"'pt-br'"},{option:"Russian",value:"'ru'"},{option:"Swedish",value:"'sv'"},{option:"Thai",value:"'th'"},{option:"Ukrainian",value:"'uk'"},{option:"Chinese (Simplified)",value:"'zh-CN'"},{option:"Chinese (Hong Kong)",value:"'zh-HK'"},{option:"Chinese (Traditional)",value:"'zh-TW'"}],required:!0,param:1},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,required:!1,param:2,help:!0}]},{app:"dialogflowV2",appType:"dialogflowv2",type:"dialogflowv2",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"ProjectID",name:"projectId",type:"text",required:!0,param:0},{title:"ClientEmail",name:"clientEmail",type:"text",required:!0,param:1},{title:"PrivateKey",name:"privateKey",type:"textarea",required:!0,param:2},{title:"language",name:"language",type:"select",defaultValue:"'en'",values:[{value:"'zh-HK'",option:"Chinese (Cantonese)"},{value:"'zh-CN'",option:"Chinese (Simplified)"},{value:"'zh-TW'",option:"Chinese (Traditional)"},{value:"'da'",option:"Danish"},{value:"'nl'",option:"Dutch"},{value:"'en'",option:"English"},{value:"'en-AU'",option:"English (Australia)"},{value:"'en-CA'",option:"English (Canada)"},{value:"'en-GB'",option:"English (Great Britain)"},{value:"'en-IN'",option:"English (India)"},{value:"'en-US'",option:"English (US)"},{value:"'fr'",option:"French"},{value:"'fr-CA'",option:"French (Canada)"},{value:"'fr-FR'",option:"'France (France)"},{value:"'de'",option:"German"},{value:"'hi'",option:"Hindi"},{value:"'id'",option:"Indonesian"},{value:"'it'",option:"Italian"},{value:"'ja'",option:"Japanese"},{value:"'ko'",option:"Korean"},{value:"'no'",option:"Norwegian"},{value:"'pl'",option:"Polish"},{value:"'pt-BR'",option:"Portuguese (Brazil)"},{value:"'pt-PT'",option:"Portuguese (Portugal)"},{value:"'ru'",option:"Russian"},{value:"'es'",option:"Spanish"},{value:"'es-419'",option:"Spanish (Latin America)"},{value:"'es-ES'",option:"Spanish (Spain)"},{value:"'sw'",option:"Swedish"},{value:"'th'",option:"Thai"},{value:"'tr'",option:"Turkish"},{value:"'uk'",option:"Ukrainian"}],required:!0,param:3},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,param:4,help:!0}]},{app:"amazonlex",appType:"amazonlex",type:"amazonlex",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"accesskeyid",name:"accesskeyid",type:"text",required:!0,param:0},{title:"secretaccesskey",name:"secretaccesskey",type:"text",required:!0,param:1},{title:"lexregion",name:"lexregion",type:"select",defaultValue:"'us-east-1'",values:[{option:"US East (N. Virginia)",value:"'us-east-1'"},{option:"US West (Oregon)",value:"'us-west-2'"},{option:"EU (Ireland)",value:"'eu-west-1'"},{option:"Asia Pacific (Sydney)",value:"'ap-southeast-2'"}],required:!0,param:2},{title:"botname",name:"botname",type:"text",required:!0,param:3},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,required:!1,param:4,help:!0}]}],["app"]),{isApp:!1}),r.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},r.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){n(e,e.newIndex)},onSort:function(e){l()}},r.init=function(e,n){r.whatsappAccount=e,r.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},r.applications.disabled=!r.crudPermissions.canEdit,r.query.id=e.id,r.query.isApp=!0,r.query.nolimit=!0,r.getWhatsappAccountApps(),r.getIntervals()},r.deleteConfirm=function(e,n,t){var a=i.confirm().title("Are you sure want to delete the application?").htmlContent("<b>"+e.app+"</b> will be deleted.").ariaLabel("delete application").targetEvent(t).ok("OK").cancel("CANCEL");i.show(a).then(function(){r.whatsappAccountApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})},r.getWhatsappAccountApps=function(){r.promise=o.whatsappAccount.getApplications(r.query,t).$promise},r.editWhatsappAccountApp=n,r.editInterval=function(e,n){if(r.whatsappAccountApps.rows.length){var t=r.whatsappAccountApps.rows[n]?r.whatsappAccountApps.rows[n]:r.whatsappAccountApps.rows[0];i.show({controller:"EditWhatsappAccountAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:[],crudPermissions:r.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,l())})}},r.deleteWhatsappAccountApp=function(e){_.remove(r.whatsappAccountApps.rows,{id:e.id}),l(),s.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},r.deleteSelectedWhatsappAccountApps=function(e){var n=i.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+r.selectedWhatsappAccountApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){r.selectedWhatsappAccountApps.forEach(function(e){_.remove(r.whatsappAccountApps.rows,{id:e.id})}),r.selectedWhatsappAccountApps=[],l()})},r.rewriteRouting=l,r.getIntervals=function(){return o.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){r.intervals=e}).catch(function(e){console.error(e)})}}e.$inject=["api","$mdDialog","$document","toasty","Auth"],angular.module("app.whatsapp").controller("WhatsappAccountActionsController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.whatsappAccount.getAgents({id:c.whatsappAccount.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserWhatsappAccount?"penalty "+e.UserWhatsappAccount.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.whatsappAccount=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.whatsappAccount.removeAgents({id:c.whatsappAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.whatsappAccount.addAgents({id:c.whatsappAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("WHATSAPP.ALL_AGENTS"),labelSelected:r.instant("WHATSAPP.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","whatsappAccount","whatsappAccounts","realtime","$translate","Auth","crudPermissions"],angular.module("app.whatsapp").controller("WhatsappAccountagentaddController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.agent=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.agent.appdata)switch(l.agent.appType?l.agent.appType.toLowerCase():l.agent.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.agent.appdata.split(",");l.agent.key=d[0],l.agent.language=d[1],l.agent.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.agent.appdata.split(",");l.agent.projectId=d[0],l.agent.clientEmail=d[1],l.agent.privateKey=d[2],l.agent.language=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.agent.appdata.split(",");l.agent.accesskeyid=d[0],l.agent.secretaccesskey=d[1],l.agent.lexregion=d[2],l.agent.botname=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.agent.appdata.split(",");l.agent.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.agent.text=d.slice(1,d.length).join(",");break;case"message":l.agent.text=l.agent.appdata;break;case"set":l.agent.name=l.agent.appdata.split("=")[0],l.agent.value=l.agent.appdata.split("=")[1];break;case"agi":l.agent.project=l.agent.appdata;break;default:var c=l.agent.appdata.split(",");l.agent.agent=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.agent.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.agent.timeout=30;function m(e){n.hide(e)}l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outbounddial"===l.agent.appType.toLowerCase()&&(l.agent.prefix=l.agent.phone?l.agent.phone.split("$")[0]:void 0,l.agent.callerId=l.agent.callerID?"CALLERID(all)="+l.agent.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outboundDial"===l.agent.appType&&(l.agent.phone=i.cutdigits?(l.agent.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.agent.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.agent.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.agent.options+="U(xcally-mixmonitor-context)"):l.agent.options=l.agent.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.agents,{name:l.agent.agent});n&&(l.agent.UserId=n.id);if(l.agent.appType&&"custom"===l.agent.appType);else switch((l.agent.app||l.agent.appType).toLowerCase()){case"set":l.agent.appdata=l.agent.name+"="+l.agent.value;break;case"custom":break;default:e[0]=l.agent.agent,e[1]=l.agent.timeout,l.agent.appdata=e.join(",")}m(l.agent)},l.closeDialog=m,o.hasRole("admin")?s.user.get({fields:"id,name",sort:"name",nolimit:"true",role:"agent"}).$promise.then(function(e){l.agents=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.user.get({fields:"id,name",sort:"name",nolimit:"true",role:"agent"}).$promise.then(function(e){l.agents=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.agents,{id:e.resourceId})}),t=null;if(l.agent&&(t=_.find(l.agents,{name:l.agent.agent})),t&&!_.some(n,["id",t.id])){var a=_.find(l.agents,{id:t.id});a.canSelect=!1,n.push(a)}l.agents=n})}else{var t=[],a=null;l.agent&&(a=_.find(l.agents,{name:l.agent.agent}));for(var i=0;i<l.agents.length;i++)a&&l.agents[i].id===a.id&&(l.agents[i].canSelect=!1,t.push(l.agents[i]));l.agents=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppagentDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.amazonlex=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.amazonlex.appdata)switch(l.amazonlex.appType?l.amazonlex.appType.toLowerCase():l.amazonlex.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.amazonlex.appdata.split(",");l.amazonlex.key=d[0],l.amazonlex.language=d[1],l.amazonlex.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.amazonlex.appdata.split(",");l.amazonlex.projectId=d[0],l.amazonlex.clientEmail=d[1],l.amazonlex.privateKey=d[2],l.amazonlex.language=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=d[0],l.amazonlex.secretaccesskey=d[1],l.amazonlex.lexregion=d[2],l.amazonlex.botname=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.amazonlex.appdata.split(",");l.amazonlex.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.amazonlex.text=d.slice(1,d.length).join(",");break;case"message":l.amazonlex.text=l.amazonlex.appdata;break;case"set":l.amazonlex.name=l.amazonlex.appdata.split("=")[0],l.amazonlex.value=l.amazonlex.appdata.split("=")[1];break;case"agi":l.amazonlex.project=l.amazonlex.appdata;break;default:var c=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.amazonlex.secretaccesskey=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.amazonlex.lexregion=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.amazonlex.botname=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.amazonlex.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.amazonlex.lexregion="us-east-1";function m(e){n.hide(e)}l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outbounddial"===l.amazonlex.appType.toLowerCase()&&(l.amazonlex.prefix=l.amazonlex.phone?l.amazonlex.phone.split("$")[0]:void 0,l.amazonlex.callerId=l.amazonlex.callerID?"CALLERID(all)="+l.amazonlex.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outboundDial"===l.amazonlex.appType&&(l.amazonlex.phone=i.cutdigits?(l.amazonlex.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.amazonlex.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.amazonlex.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.amazonlex.options+="U(xcally-mixmonitor-context)"):l.amazonlex.options=l.amazonlex.options.replace("U(xcally-mixmonitor-context)",""));if(l.amazonlex.appType&&"custom"===l.amazonlex.appType);else switch((l.amazonlex.app||l.amazonlex.appType).toLowerCase()){case"set":l.amazonlex.appdata=l.amazonlex.name+"="+l.amazonlex.value;break;case"custom":break;default:e[0]=l.amazonlex.accesskeyid,e[1]=l.amazonlex.secretaccesskey,e[2]=l.amazonlex.lexregion,e[3]=l.amazonlex.botname,e[4]=l.amazonlex.welcomemessage,l.amazonlex.appdata=e.join(",")}m(l.amazonlex)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppamazonlexDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.autoreply=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.autoreply.appdata)switch(l.autoreply.appType?l.autoreply.appType.toLowerCase():l.autoreply.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.autoreply.appdata.split(",");l.autoreply.key=d[0],l.autoreply.language=d[1],l.autoreply.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.autoreply.appdata.split(",");l.autoreply.projectId=d[0],l.autoreply.clientEmail=d[1],l.autoreply.privateKey=d[2],l.autoreply.language=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.autoreply.appdata.split(",");l.autoreply.accesskeyid=d[0],l.autoreply.secretaccesskey=d[1],l.autoreply.lexregion=d[2],l.autoreply.botname=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.autoreply.appdata.split(",");l.autoreply.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.autoreply.text=d.slice(1,d.length).join(",");break;case"message":l.autoreply.text=l.autoreply.appdata;break;case"set":l.autoreply.name=l.autoreply.appdata.split("=")[0],l.autoreply.value=l.autoreply.appdata.split("=")[1];break;case"agi":l.autoreply.project=l.autoreply.appdata;break;default:var c=l.autoreply.appdata.split(",");l.autoreply.times=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.autoreply.text=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.autoreply.times=1;function m(e){n.hide(e)}l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outbounddial"===l.autoreply.appType.toLowerCase()&&(l.autoreply.prefix=l.autoreply.phone?l.autoreply.phone.split("$")[0]:void 0,l.autoreply.callerId=l.autoreply.callerID?"CALLERID(all)="+l.autoreply.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outboundDial"===l.autoreply.appType&&(l.autoreply.phone=i.cutdigits?(l.autoreply.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.autoreply.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.autoreply.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.autoreply.options+="U(xcally-mixmonitor-context)"):l.autoreply.options=l.autoreply.options.replace("U(xcally-mixmonitor-context)",""));if(l.autoreply.appType&&"custom"===l.autoreply.appType);else switch((l.autoreply.app||l.autoreply.appType).toLowerCase()){case"set":l.autoreply.appdata=l.autoreply.name+"="+l.autoreply.value;break;case"custom":break;default:e[0]=l.autoreply.times,e[1]=l.autoreply.text,l.autoreply.appdata=e.join(",")}m(l.autoreply)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppautoreplyDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.close=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.close.appdata)switch(l.close.appType?l.close.appType.toLowerCase():l.close.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.close.appdata.split(",");l.close.key=d[0],l.close.language=d[1],l.close.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.close.appdata.split(",");l.close.projectId=d[0],l.close.clientEmail=d[1],l.close.privateKey=d[2],l.close.language=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.close.appdata.split(",");l.close.accesskeyid=d[0],l.close.secretaccesskey=d[1],l.close.lexregion=d[2],l.close.botname=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.close.appdata.split(",");l.close.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.close.text=d.slice(1,d.length).join(",");break;case"message":l.close.text=l.close.appdata;break;case"set":l.close.name=l.close.appdata.split("=")[0],l.close.value=l.close.appdata.split("=")[1];break;case"agi":l.close.project=l.close.appdata;break;default:var c=l.close.appdata.split(",");l.close.disposition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outbounddial"===l.close.appType.toLowerCase()&&(l.close.prefix=l.close.phone?l.close.phone.split("$")[0]:void 0,l.close.callerId=l.close.callerID?"CALLERID(all)="+l.close.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outboundDial"===l.close.appType&&(l.close.phone=i.cutdigits?(l.close.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.close.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.close.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.close.options+="U(xcally-mixmonitor-context)"):l.close.options=l.close.options.replace("U(xcally-mixmonitor-context)",""));if(l.close.appType&&"custom"===l.close.appType);else switch((l.close.app||l.close.appType).toLowerCase()){case"set":l.close.appdata=l.close.name+"="+l.close.value;break;case"custom":break;default:e[0]=l.close.disposition,l.close.appdata=e.join(",")}m(l.close)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppcloseDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflow=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflow.appdata)switch(l.dialogflow.appType?l.dialogflow.appType.toLowerCase():l.dialogflow.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflow.appdata.split(",");l.dialogflow.key=d[0],l.dialogflow.language=d[1],l.dialogflow.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflow.appdata.split(",");l.dialogflow.projectId=d[0],l.dialogflow.clientEmail=d[1],l.dialogflow.privateKey=d[2],l.dialogflow.language=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflow.appdata.split(",");l.dialogflow.accesskeyid=d[0],l.dialogflow.secretaccesskey=d[1],l.dialogflow.lexregion=d[2],l.dialogflow.botname=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflow.appdata.split(",");l.dialogflow.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflow.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflow.text=l.dialogflow.appdata;break;case"set":l.dialogflow.name=l.dialogflow.appdata.split("=")[0],l.dialogflow.value=l.dialogflow.appdata.split("=")[1];break;case"agi":l.dialogflow.project=l.dialogflow.appdata;break;default:var c=l.dialogflow.appdata.split(",");l.dialogflow.key=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflow.language=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflow.welcomemessage=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}else l.dialogflow.language="en";function m(e){n.hide(e)}l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outbounddial"===l.dialogflow.appType.toLowerCase()&&(l.dialogflow.prefix=l.dialogflow.phone?l.dialogflow.phone.split("$")[0]:void 0,l.dialogflow.callerId=l.dialogflow.callerID?"CALLERID(all)="+l.dialogflow.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outboundDial"===l.dialogflow.appType&&(l.dialogflow.phone=i.cutdigits?(l.dialogflow.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflow.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflow.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflow.options+="U(xcally-mixmonitor-context)"):l.dialogflow.options=l.dialogflow.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflow.appType&&"custom"===l.dialogflow.appType);else switch((l.dialogflow.app||l.dialogflow.appType).toLowerCase()){case"set":l.dialogflow.appdata=l.dialogflow.name+"="+l.dialogflow.value;break;case"custom":break;default:e[0]=l.dialogflow.key,e[1]=l.dialogflow.language,e[2]=l.dialogflow.welcomemessage,l.dialogflow.appdata=e.join(",")}m(l.dialogflow)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppdialogflowDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflowv2=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflowv2.appdata)switch(l.dialogflowv2.appType?l.dialogflowv2.appType.toLowerCase():l.dialogflowv2.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.key=d[0],l.dialogflowv2.language=d[1],l.dialogflowv2.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=d[0],l.dialogflowv2.clientEmail=d[1],l.dialogflowv2.privateKey=d[2],l.dialogflowv2.language=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.accesskeyid=d[0],l.dialogflowv2.secretaccesskey=d[1],l.dialogflowv2.lexregion=d[2],l.dialogflowv2.botname=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflowv2.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflowv2.text=l.dialogflowv2.appdata;break;case"set":l.dialogflowv2.name=l.dialogflowv2.appdata.split("=")[0],l.dialogflowv2.value=l.dialogflowv2.appdata.split("=")[1];break;case"agi":l.dialogflowv2.project=l.dialogflowv2.appdata;break;default:var c=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflowv2.clientEmail=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflowv2.privateKey=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.dialogflowv2.language=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.dialogflowv2.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.dialogflowv2.language="en";function m(e){n.hide(e)}l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outbounddial"===l.dialogflowv2.appType.toLowerCase()&&(l.dialogflowv2.prefix=l.dialogflowv2.phone?l.dialogflowv2.phone.split("$")[0]:void 0,l.dialogflowv2.callerId=l.dialogflowv2.callerID?"CALLERID(all)="+l.dialogflowv2.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outboundDial"===l.dialogflowv2.appType&&(l.dialogflowv2.phone=i.cutdigits?(l.dialogflowv2.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflowv2.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflowv2.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflowv2.options+="U(xcally-mixmonitor-context)"):l.dialogflowv2.options=l.dialogflowv2.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflowv2.appType&&"custom"===l.dialogflowv2.appType);else switch((l.dialogflowv2.app||l.dialogflowv2.appType).toLowerCase()){case"set":l.dialogflowv2.appdata=l.dialogflowv2.name+"="+l.dialogflowv2.value;break;case"custom":break;default:e[0]=l.dialogflowv2.projectId,e[1]=l.dialogflowv2.clientEmail,e[2]=l.dialogflowv2.privateKey,e[3]=l.dialogflowv2.language,e[4]=l.dialogflowv2.welcomemessage,l.dialogflowv2.appdata=e.join(",")}m(l.dialogflowv2)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppdialogflowv2DialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotoif=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotoif.appdata)switch(l.gotoif.appType?l.gotoif.appType.toLowerCase():l.gotoif.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotoif.appdata.split(",");l.gotoif.key=d[0],l.gotoif.language=d[1],l.gotoif.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotoif.appdata.split(",");l.gotoif.projectId=d[0],l.gotoif.clientEmail=d[1],l.gotoif.privateKey=d[2],l.gotoif.language=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotoif.appdata.split(",");l.gotoif.accesskeyid=d[0],l.gotoif.secretaccesskey=d[1],l.gotoif.lexregion=d[2],l.gotoif.botname=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotoif.appdata.split(",");l.gotoif.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotoif.text=d.slice(1,d.length).join(",");break;case"message":l.gotoif.text=l.gotoif.appdata;break;case"set":l.gotoif.name=l.gotoif.appdata.split("=")[0],l.gotoif.value=l.gotoif.appdata.split("=")[1];break;case"agi":l.gotoif.project=l.gotoif.appdata;break;default:var c=l.gotoif.appdata.split(",");l.gotoif.condition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.gotoif.truepriority=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.gotoif.falsepriority=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}function m(e){n.hide(e)}l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outbounddial"===l.gotoif.appType.toLowerCase()&&(l.gotoif.prefix=l.gotoif.phone?l.gotoif.phone.split("$")[0]:void 0,l.gotoif.callerId=l.gotoif.callerID?"CALLERID(all)="+l.gotoif.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outboundDial"===l.gotoif.appType&&(l.gotoif.phone=i.cutdigits?(l.gotoif.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotoif.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotoif.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotoif.options+="U(xcally-mixmonitor-context)"):l.gotoif.options=l.gotoif.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotoif.appType&&"custom"===l.gotoif.appType);else switch((l.gotoif.app||l.gotoif.appType).toLowerCase()){case"set":l.gotoif.appdata=l.gotoif.name+"="+l.gotoif.value;break;case"custom":break;default:e[0]=l.gotoif.condition,e[1]=l.gotoif.truepriority,e[2]=l.gotoif.falsepriority,l.gotoif.appdata=e.join(",")}m(l.gotoif)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppgotoifDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotop.appdata)switch(l.gotop.appType?l.gotop.appType.toLowerCase():l.gotop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotop.appdata.split(",");l.gotop.key=d[0],l.gotop.language=d[1],l.gotop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotop.appdata.split(",");l.gotop.projectId=d[0],l.gotop.clientEmail=d[1],l.gotop.privateKey=d[2],l.gotop.language=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotop.appdata.split(",");l.gotop.accesskeyid=d[0],l.gotop.secretaccesskey=d[1],l.gotop.lexregion=d[2],l.gotop.botname=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotop.appdata.split(",");l.gotop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotop.text=d.slice(1,d.length).join(",");break;case"message":l.gotop.text=l.gotop.appdata;break;case"set":l.gotop.name=l.gotop.appdata.split("=")[0],l.gotop.value=l.gotop.appdata.split("=")[1];break;case"agi":l.gotop.project=l.gotop.appdata;break;default:var c=l.gotop.appdata.split(",");l.gotop.priority=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outbounddial"===l.gotop.appType.toLowerCase()&&(l.gotop.prefix=l.gotop.phone?l.gotop.phone.split("$")[0]:void 0,l.gotop.callerId=l.gotop.callerID?"CALLERID(all)="+l.gotop.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outboundDial"===l.gotop.appType&&(l.gotop.phone=i.cutdigits?(l.gotop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotop.options+="U(xcally-mixmonitor-context)"):l.gotop.options=l.gotop.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotop.appType&&"custom"===l.gotop.appType);else switch((l.gotop.app||l.gotop.appType).toLowerCase()){case"set":l.gotop.appdata=l.gotop.name+"="+l.gotop.value;break;case"custom":break;default:e[0]=l.gotop.priority,l.gotop.appdata=e.join(",")}m(l.gotop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppgotopDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;if(c.currentUser=l.getCurrentUser(),c.errors=[],c.title="TOOLS.EDIT_INTERVAL",c.interval=angular.copy(i),c.intervals=s,c.newInterval=!1,c.types=["always","custom","list"],c.crudPermissions=d,c.daysOfWeek=a.getDaysOfWeek(),c.monthNumber=a.getMonthNumber(),c.monthName=a.getMonthName(),c.daysOfMonth=a.getDaysOfMonth(),c.interval)if("*,*,*,*"!==c.interval.interval){c.type="custom";var m=c.interval.interval.split(","),u=m[0],p=m[1],g=m[2],v=m[3];if("*"!==u){var h,f=u.split("-")[0],b=u.split("-")[1];(h=new Date).setHours(Number(f.split(":")[0])),h.setMinutes(Number(f.split(":")[1])),c.timeRangeFrom=h,(h=new Date).setHours(Number(b.split(":")[0])),h.setMinutes(Number(b.split(":")[1])),c.timeRangeTo=h}"*"!==p&&(c.dayOfWeekFrom=p.split("-")[0],c.dayOfWeekTo=p.split("-")[1]),"*"!==g&&(c.monthDayFrom=g.split("-")[0],c.monthDayTo=g.split("-")[1]),"*"!==v&&(c.monthFrom=v.split("-")[0],c.monthTo=v.split("-")[1])}else c.type="always";else c.interval={interval:"*,*,*,*"},c.type="always",c.title="TOOLS.NEW_INTERVAL",c.newInterval=!0;function A(){switch(c.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==c.timeRangeFrom&&c.timeRangeFrom&&c.timeRangeTo){var n=(c.timeRangeFrom.getHours()<10?"0":"")+c.timeRangeFrom.getHours()+":"+(c.timeRangeFrom.getMinutes()<10?"0":"")+c.timeRangeFrom.getMinutes(),t=(c.timeRangeTo.getHours()<10?"0":"")+c.timeRangeTo.getHours()+":"+(c.timeRangeTo.getMinutes()<10?"0":"")+c.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return c.dayOfWeekFrom?c.dayOfWeekTo?e.push(c.dayOfWeekFrom+"-"+c.dayOfWeekTo):e.push(c.dayOfWeekFrom):e.push("*"),c.monthDayFrom?c.monthDayTo?e.push(c.monthDayFrom+"-"+c.monthDayTo):e.push(c.monthDayFrom):e.push("*"),c.monthFrom?c.monthTo?e.push(c.monthFrom+"-"+c.monthTo):e.push(c.monthFrom):e.push("*"),e.join()}}function E(e){n.hide(e)}e.params.id&&!c.interval.application&&(c.interval.IntervalId=e.params.id),c.interval.IntervalId&&c.interval.application&&(c.type="list"),c.addNewInterval=function(){c.errors=[],c.interval.interval=A(),r.interval.save(c.interval).$promise.then(function(e){c.intervals.push(e),o.success({title:"Interval properly created",msg:c.interval.name?c.interval.name+" has been created!":""}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},c.saveInterval=function(){c.errors=[],c.interval.interval=A(),c.interval.application?("list"!==c.type&&(c.interval.IntervalId=null),E(c.interval)):r.interval.update({id:c.interval.id},c.interval).$promise.then(function(e){var n=_.find(c.intervals,{id:e.id});n&&_.merge(n,e),o.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},c.closeDialog=E,c.interval.application&&(l.hasRole("admin")?r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:c.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=e&&e.rows?e.rows:[],t=[],a=null;c.interval&&(a=_.find(c.intervals,{name:c.interval.IntervalId})),a&&!_.some(n,["resourceId",a.id])&&c.intervals.forEach(function(e){e.id===a.id&&(e.canSelect=!1,t.push(e))}),c.intervals=t})}else c.intervals=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}))}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditWhatsappAccountAppintervalDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.noop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.noop.appdata)switch(l.noop.appType?l.noop.appType.toLowerCase():l.noop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.noop.appdata.split(",");l.noop.key=d[0],l.noop.language=d[1],l.noop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.noop.appdata.split(",");l.noop.projectId=d[0],l.noop.clientEmail=d[1],l.noop.privateKey=d[2],l.noop.language=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.noop.appdata.split(",");l.noop.accesskeyid=d[0],l.noop.secretaccesskey=d[1],l.noop.lexregion=d[2],l.noop.botname=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.noop.appdata.split(",");l.noop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.noop.text=d.slice(1,d.length).join(",");break;case"message":l.noop.text=l.noop.appdata;break;case"set":l.noop.name=l.noop.appdata.split("=")[0],l.noop.value=l.noop.appdata.split("=")[1];break;case"agi":l.noop.project=l.noop.appdata;break;default:var c=l.noop.appdata.split(",");l.noop.value=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outbounddial"===l.noop.appType.toLowerCase()&&(l.noop.prefix=l.noop.phone?l.noop.phone.split("$")[0]:void 0,l.noop.callerId=l.noop.callerID?"CALLERID(all)="+l.noop.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outboundDial"===l.noop.appType&&(l.noop.phone=i.cutdigits?(l.noop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.noop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.noop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.noop.options+="U(xcally-mixmonitor-context)"):l.noop.options=l.noop.options.replace("U(xcally-mixmonitor-context)",""));if(l.noop.appType&&"custom"===l.noop.appType);else switch((l.noop.app||l.noop.appType).toLowerCase()){case"set":l.noop.appdata=l.noop.name+"="+l.noop.value;break;case"custom":break;default:e[0]=l.noop.value,l.noop.appdata=e.join(",")}m(l.noop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppnoopDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.queue=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.queue.appdata)switch(l.queue.appType?l.queue.appType.toLowerCase():l.queue.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.queue.appdata.split(",");l.queue.key=d[0],l.queue.language=d[1],l.queue.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.queue.appdata.split(",");l.queue.projectId=d[0],l.queue.clientEmail=d[1],l.queue.privateKey=d[2],l.queue.language=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.queue.appdata.split(",");l.queue.accesskeyid=d[0],l.queue.secretaccesskey=d[1],l.queue.lexregion=d[2],l.queue.botname=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.queue.appdata.split(",");l.queue.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.queue.text=d.slice(1,d.length).join(",");break;case"message":l.queue.text=l.queue.appdata;break;case"set":l.queue.name=l.queue.appdata.split("=")[0],l.queue.value=l.queue.appdata.split("=")[1];break;case"agi":l.queue.project=l.queue.appdata;break;default:var c=l.queue.appdata.split(",");l.queue.queue=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.queue.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.queue.queue=300,l.queue.timeout=300;function m(e){n.hide(e)}l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outbounddial"===l.queue.appType.toLowerCase()&&(l.queue.prefix=l.queue.phone?l.queue.phone.split("$")[0]:void 0,l.queue.callerId=l.queue.callerID?"CALLERID(all)="+l.queue.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outboundDial"===l.queue.appType&&(l.queue.phone=i.cutdigits?(l.queue.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.queue.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.queue.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.queue.options+="U(xcally-mixmonitor-context)"):l.queue.options=l.queue.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.queues,{name:l.queue.queue});n&&(l.queue[_.capitalize("whatsapp")+"QueueId"]=n.id);if(l.queue.appType&&"custom"===l.queue.appType);else switch((l.queue.app||l.queue.appType).toLowerCase()){case"set":l.queue.appdata=l.queue.name+"="+l.queue.value;break;case"custom":break;default:e[0]=l.queue.queue,e[1]=l.queue.timeout,l.queue.appdata=e.join(",")}m(l.queue)},l.closeDialog=m,o.hasRole("admin")?s.whatsappQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.whatsappQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:2102}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.queues,{id:e.resourceId})}),t=null;if(l.queue&&(t=_.find(l.queues,{name:l.queue.queue})),t&&!_.some(n,["id",t.id])){var a=_.find(l.queues,{id:t.id});a.canSelect=!1,n.push(a)}l.queues=n})}else{var t=[],a=null;l.queue&&(a=_.find(l.queues,{name:l.queue.queue}));for(var i=0;i<l.queues.length;i++)a&&l.queues[i].id===a.id&&(l.queues[i].canSelect=!1,t.push(l.queues[i]));l.queues=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppqueueDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.system=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.system.appdata)switch(l.system.appType?l.system.appType.toLowerCase():l.system.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.system.appdata.split(",");l.system.key=d[0],l.system.language=d[1],l.system.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.system.appdata.split(",");l.system.projectId=d[0],l.system.clientEmail=d[1],l.system.privateKey=d[2],l.system.language=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.system.appdata.split(",");l.system.accesskeyid=d[0],l.system.secretaccesskey=d[1],l.system.lexregion=d[2],l.system.botname=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.system.appdata.split(",");l.system.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.system.text=d.slice(1,d.length).join(",");break;case"message":l.system.text=l.system.appdata;break;case"set":l.system.name=l.system.appdata.split("=")[0],l.system.value=l.system.appdata.split("=")[1];break;case"agi":l.system.project=l.system.appdata;break;default:var c=l.system.appdata.split(",");l.system.command=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.system.variable=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.system.variable="";function m(e){n.hide(e)}l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outbounddial"===l.system.appType.toLowerCase()&&(l.system.prefix=l.system.phone?l.system.phone.split("$")[0]:void 0,l.system.callerId=l.system.callerID?"CALLERID(all)="+l.system.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outboundDial"===l.system.appType&&(l.system.phone=i.cutdigits?(l.system.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.system.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.system.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.system.options+="U(xcally-mixmonitor-context)"):l.system.options=l.system.options.replace("U(xcally-mixmonitor-context)",""));if(l.system.appType&&"custom"===l.system.appType);else switch((l.system.app||l.system.appType).toLowerCase()){case"set":l.system.appdata=l.system.name+"="+l.system.value;break;case"custom":break;default:e[0]=l.system.command,e[1]=l.system.variable,l.system.appdata=e.join(",")}m(l.system)},l.closeDialog=m,o.hasRole("admin")?s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1012}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.variables,{id:e.resourceId})}),t=null;if(l.system&&(t=_.find(l.variables,{name:l.system.variable})),t&&!_.some(n,["id",t.id])){var a=_.find(l.variables,{id:t.id});a.canSelect=!1,n.push(a)}l.variables=n})}else{var t=[],a=null;l.system&&(a=_.find(l.variables,{name:l.system.variable}));for(var i=0;i<l.variables.length;i++)a&&l.variables[i].id===a.id&&(l.variables[i].canSelect=!1,t.push(l.variables[i]));l.variables=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppsystemDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.tag=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.tag.appdata)switch(l.tag.appType?l.tag.appType.toLowerCase():l.tag.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.tag.appdata.split(",");l.tag.key=d[0],l.tag.language=d[1],l.tag.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.tag.appdata.split(",");l.tag.projectId=d[0],l.tag.clientEmail=d[1],l.tag.privateKey=d[2],l.tag.language=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.tag.appdata.split(",");l.tag.accesskeyid=d[0],l.tag.secretaccesskey=d[1],l.tag.lexregion=d[2],l.tag.botname=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.tag.appdata.split(",");l.tag.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.tag.text=d.slice(1,d.length).join(",");break;case"message":l.tag.text=l.tag.appdata;break;case"set":l.tag.name=l.tag.appdata.split("=")[0],l.tag.value=l.tag.appdata.split("=")[1];break;case"agi":l.tag.project=l.tag.appdata;break;default:var c=l.tag.appdata.split(",");l.tag.tag=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outbounddial"===l.tag.appType.toLowerCase()&&(l.tag.prefix=l.tag.phone?l.tag.phone.split("$")[0]:void 0,l.tag.callerId=l.tag.callerID?"CALLERID(all)="+l.tag.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outboundDial"===l.tag.appType&&(l.tag.phone=i.cutdigits?(l.tag.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.tag.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.tag.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.tag.options+="U(xcally-mixmonitor-context)"):l.tag.options=l.tag.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.tags,{name:l.tag.tag});n&&(l.tag.TagId=n.id);if(l.tag.appType&&"custom"===l.tag.appType);else switch((l.tag.app||l.tag.appType).toLowerCase()){case"set":l.tag.appdata=l.tag.name+"="+l.tag.value;break;case"custom":break;default:e[0]=l.tag.tag,l.tag.appdata=e.join(",")}m(l.tag)},l.closeDialog=m,o.hasRole("admin")?s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1008}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.tags,{id:e.resourceId})}),t=null;if(l.tag&&(t=_.find(l.tags,{name:l.tag.tag})),t&&!_.some(n,["id",t.id])){var a=_.find(l.tags,{id:t.id});a.canSelect=!1,n.push(a)}l.tags=n})}else{var t=[],a=null;l.tag&&(a=_.find(l.tags,{name:l.tag.tag}));for(var i=0;i<l.tags.length;i++)a&&l.tags[i].id===a.id&&(l.tags[i].canSelect=!1,t.push(l.tags[i]));l.tags=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtags",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountApptagDialogController",e)}(),function(){"use strict";function e(e,a,n,t,i,s,o,r,l,d,c){var m=this;function u(e){m.whatsappAccountInteractions=e||{count:0,rows:[]};for(var n=0;n<m.whatsappAccountInteractions.rows.length;n+=1){var t=m.whatsappAccountInteractions.rows[n];v(t),t.Owner.name=h(t)}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.whatsappInteraction.get(m.query,u).$promise}function g(e){d.whatsappInteraction.delete({id:e.id}).$promise.then(function(){_.remove(m.whatsappAccountInteractions.rows,{id:e.id}),m.whatsappAccountInteractions.count-=1,m.whatsappAccountInteractions.rows.length||p(),l.success({title:"Interaction deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETwhatsappAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETwhatsappAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(e){e.Contact?e.contactName=(e.Contact.firstName||"")+" "+(e.Contact.lastName||""):e.contactName=i.instant("DASHBOARDS.UNKNOWN")}function h(e){return e.UserId?e.UserId===m.currentUser.id?i.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">":i.instant("DASHBOARDS.NOT_ASSIGNED")}m.currentUser=c.getCurrentUser(),m.whatsappAccount={},m.whatsappAccountInteractions={count:0,rows:[]},m.selectedWhatsappAccountInteractions=[],m.crudPermissions,m.query={read:"null",closed:"null",sort:"-createdAt",includeAll:"true",limit:10,page:1},m.init=function(e,n,t){m.whatsappAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.WhatsappAccountId=m.whatsappAccount.id,m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Subject",column:"subject",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},d.tag.get({sort:"name"}).$promise.then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]})},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the interaction?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("interaction #")+e.id||"interaction")+"</b> will be deleted.").ariaLabel("delete interaction").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.whatsappInteractionDownload=function(s,e,n){return d.whatsappInteraction.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="interaction"+s.id,a=new Blob(n,{type:e.type});t="whatsapp-interaction"+s.id+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.whatsappAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getWhatsappAccountInteractions=p,m.createOrEditWhatsappAccountInteraction=function(e,n){o.show({controller:"CreateOrEditInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/edit/interactions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{whatsappAccount:m.whatsappAccount,interaction:n,interactions:m.whatsappAccountInteractions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.spywhatsappInteraction=function(e,t){o.show({controller:"AgentGeneralInteractionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,onShowing:function(e,n){e.vm.init({id:1,channel:"whatsapp",interaction:t,spy:!0},a.$parent.vm.setting)}})},m.openAdvancedSearch=function(){o.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(r.body),clickOutsideToClose:!1,locals:{fields:m.advancedSearch.fields,color:void 0,storagePath:"whatsapp.whatsappAccounts"},fullscreen:!0}).then(function(e){if(m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply){var n="";n+="||WhatsappAccountId:=$eq["+m.whatsappAccount.id+"]",m.query.search=e.value?e.value+=n:e.value,p()}}).catch(function(e){l.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.exportSelectedWhatsappAccountInteractions=function(){var e=angular.copy(m.selectedWhatsappAccountInteractions);return m.selectedWhatsappAccountInteractions=[],e},m.deleteWhatsappAccountInteraction=g,m.deleteSelectedWhatsappAccountInteractions=function(e){var n=o.confirm().title("Are you sure want to delete the selected interactions?").htmlContent("<b>"+m.selectedWhatsappAccountInteractions.length+" selected</b> will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedWhatsappAccountInteractions.forEach(function(e){g(e)}),m.selectedWhatsappAccountInteractions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.whatsapp").controller("WhatsappAccountInteractionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;p.currentUser=d.getCurrentUser(),p.license=s,p.setting=o,p.passwordPattern=p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.location=n.protocol()+"://"+n.host(),p.whatsappAccount=c||e.params.whatsappAccount||{},p.userProfile=m,p.userProfileSection=u&&1==u.count?u.rows[0]:null,p.crudPermissions=d.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.hasModulePermissions={},p.selectedTab=e.params.tab||0,p.baseUrl=[{name:"US Production",url:"https://us1.whatsapp.api.sinch.com"},{name:"EU Production",url:"https://eu1.whatsapp.api.sinch.com"}],p.agentadddialog=function(e,n){t.show({controller:"WhatsappAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{whatsappAccount:e,whatsappAccounts:p.whatsappAccounts?p.whatsappAccounts.rows:[],crudPermissions:p.crudPermissions,realtime:!1}})},p.alert=l.info,p.gotoWhatsappAccounts=function(){e.go("app.whatsapp.whatsappAccounts",{},{reload:"app.whatsapp.whatsappAccounts"})},p.saveWhatsappAccount=function(){"twilio"===p.whatsappAccount.type&&(p.whatsappAccount.baseUrl=null);r.whatsappAccount.update({id:p.whatsappAccount.id},p.whatsappAccount).$promise.then(function(){l.success({title:"WhatsappAccount updated!",msg:p.whatsappAccount.name?p.whatsappAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETwhatsappAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.lists,{id:e.resourceId})}),t=null;if(p.whatsappAccount&&(t=_.find(p.lists,{id:Number(p.whatsappAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.lists,{id:t.id});a.canSelect=!1,n.push(a)}p.lists=n})}else{var t=[],a=null;p.whatsappAccount&&(a=_.find(p.lists,{id:Number(p.whatsappAccount.ListId)}));for(var i=0;i<p.lists.length;i++)a&&p.lists[i].id===a.id&&(p.lists[i].canSelect=!1,t.push(p.lists[i]));p.lists=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.pauses,{id:e.resourceId})});p.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),p.pauses=n})}else p.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","whatsappAccount","userProfile","userProfileSection"],angular.module("app.whatsapp").controller("WhatsappAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.whatsappAccountWhatsappCannedAnswers=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.whatsappAccount.getAnswers(m.query,u).$promise}function g(e){d.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(m.whatsappAccountWhatsappCannedAnswers.rows,{id:e.id}),m.whatsappAccountWhatsappCannedAnswers.count-=1,m.whatsappAccountWhatsappCannedAnswers.rows.length||p(),l.success({title:"WhatsappCannedAnswer deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETwhatsappAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETwhatsappAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.whatsappAccount={},m.whatsappAccountWhatsappCannedAnswers={count:0,rows:[]},m.selectedWhatsappAccountWhatsappCannedAnswers=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,key,value,description",limit:10,page:1},m.init=function(e,n,t){m.whatsappAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.WhatsappAccountId=m.whatsappAccount.id,m.query.id=m.whatsappAccount.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the whatsappCannedAnswer?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("whatsappCannedAnswer #")+e.id||"whatsappCannedAnswer")+"</b> will be deleted.").ariaLabel("delete whatsappCannedAnswer").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getWhatsappAccountWhatsappCannedAnswers=p,m.createOrEditWhatsappAccountWhatsappCannedAnswer=function(e,n){o.show({controller:"CreateOrEditWhatsappCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/edit/whatsappCannedAnswers/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{whatsappAccount:m.whatsappAccount,whatsappCannedAnswer:n,whatsappCannedAnswers:m.whatsappAccountWhatsappCannedAnswers.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedWhatsappAccountWhatsappCannedAnswers=function(){var e=angular.copy(m.selectedWhatsappAccountWhatsappCannedAnswers);return m.selectedWhatsappAccountWhatsappCannedAnswers=[],e},m.deleteWhatsappAccountWhatsappCannedAnswer=g,m.deleteSelectedWhatsappAccountWhatsappCannedAnswers=function(e){var n=o.confirm().title("Are you sure want to delete the selected whatsappCannedAnswers?").htmlContent("<b>"+m.selectedWhatsappAccountWhatsappCannedAnswers.length+" selected</b> will be deleted.").ariaLabel("delete whatsappCannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedWhatsappAccountWhatsappCannedAnswers.forEach(function(e){g(e)}),m.selectedWhatsappAccountWhatsappCannedAnswers=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.whatsapp").controller("WhatsappAccountWhatsappCannedAnswersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="WHATSAPP.EDIT_WHATSAPPCANNEDANSWER",g.whatsappCannedAnswer=angular.copy(l),g.whatsappCannedAnswers=r,g.newWhatsappCannedAnswer=!1,g.whatsappCannedAnswer||(g.whatsappCannedAnswer={},g.title="WHATSAPP.NEW_WHATSAPPCANNEDANSWER",g.newWhatsappCannedAnswer=!0),n.params.id&&(g.whatsappCannedAnswer.WhatsappAccountId=n.params.id),g.addNewWhatsappCannedAnswer=function(){g.errors=[],d.cannedAnswer.save(g.whatsappCannedAnswer).$promise.then(function(e){g.whatsappCannedAnswers.unshift(e.toJSON()),o.success({title:"WhatsappCannedAnswer properly created",msg:g.whatsappCannedAnswer.name?g.whatsappCannedAnswer.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveWhatsappCannedAnswer=function(){g.errors=[],d.cannedAnswer.update({id:g.whatsappCannedAnswer.id},g.whatsappCannedAnswer).$promise.then(function(e){var n=_.find(g.whatsappCannedAnswers,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"WhatsappCannedAnswer properly saved!",msg:g.whatsappCannedAnswer.name?g.whatsappCannedAnswer.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteWhatsappCannedAnswer=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The whatsappCannedAnswer will be deleted.").ariaLabel("Delete WhatsappCannedAnswer").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cannedAnswer.delete({id:g.whatsappCannedAnswer.id}).$promise.then(function(){_.remove(g.whatsappCannedAnswers,{id:g.whatsappCannedAnswer.id}),o.success({title:"WhatsappCannedAnswer properly deleted!",msg:(g.whatsappCannedAnswer.name||"whatsappCannedAnswer")+" has been deleted!"}),v(g.whatsappCannedAnswer)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","whatsappCannedAnswers","whatsappCannedAnswer","api","Auth","license","setting","crudPermissions"],angular.module("app.whatsapp").controller("CreateOrEditWhatsappCannedAnswerDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.dispositions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=l.whatsappAccount.getDispositions(m.query,u).$promise}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){p(),d.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.dispositions={count:0,rows:[]},m.selectedDispositions=[],m.crudPermissions,m.levels={first:"1st",second:"2nd",third:"3rd"},m.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},m.init=function(e,n){m.whatsappAccount=e||{},m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.WhatsappAccountId=m.whatsappAccount.id,m.query.id=m.whatsappAccount.id,p()},m.deleteConfirm=function(e,n){var t=_.some(m.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){g(e)})},m.success=u,m.getDispositions=p,m.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:{id:m.whatsappAccount.id,field:"WhatsappAccountId",route:"whatsappAccount"},license:null,setting:null,crudPermissions:m.crudPermissions}}).then(function(e){e&&p()})},m.deleteDisposition=g,m.exportSelectedDispositions=function(){var e=angular.copy(m.selectedDispositions);return m.selectedDispositions=[],e},m.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:m.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedDispositions.forEach(function(e){g(e)}),m.selectedDispositions=[]})},m.deselectDispositions=function(){m.selectedDispositions=[]},m.selectAllDispositions=function(){m.selectedDispositions=m.dispositions.rows};var v=!0,h=1;e.$watch("vm_dc.query.filter",function(e,n){v?o(function(){v=!1}):(n||(h=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=h),p())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","api","toasty","Auth"],angular.module("app.whatsapp").controller("WhatsappAccountDispositionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.whatsappAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="whatsappAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedWhatsappAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,key,ListId,remote,token,type,accountSid,authToken,phone,receiveUrl,deliveryReportUrl,notificationShake,notificationSound,notificationTemplate,queueTransfer,queueTransferTimeout,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,agentTransfer,agentTransferTimeout,description,baseUrl",sort:"-updatedAt",limit:10,page:1},f.arraytype=_.keyBy([{option:"Twilio",value:"'twilio'"},{option:"Sinch",value:"'sinch'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.whatsapp.whatsappAccounts.edit",{id:e.id,whatsappAccount:e,crudPermissions:f.crudPermissions})},f.interactionsgoto=function(e,n){t.go("app.whatsapp.whatsappAccounts.edit",{id:e.id,tab:5})},f.agentadddialog=function(e,n){i.show({controller:"WhatsappAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{whatsappAccount:e,whatsappAccounts:f.whatsappAccounts?f.whatsappAccounts.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("whatsappAccount")+"?").htmlContent("<b>"+(e.name||"whatsappAccount")+"</b> will be deleted.").ariaLabel("delete whatsappAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getWhatsappAccounts=function(){console.log("AC getWhatsappAccounts"),f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.whatsappAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="WhatsappAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditWhatsappAccount=function(e,n){i.show({controller:"CreateOrEditWhatsappAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{whatsappAccount:n,whatsappAccounts:f.whatsappAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteWhatsappAccount=y,f.exportSelectedWhatsappAccounts=function(){var e=angular.copy(f.selectedWhatsappAccounts);return f.selectedWhatsappAccounts=[],e},f.deleteSelectedWhatsappAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected whatsappAccounts?").htmlContent("<b>"+f.selectedWhatsappAccounts.length+" selected</b> will be deleted.").ariaLabel("delete WhatsappAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedWhatsappAccounts.forEach(function(e){y(e)}),f.selectedWhatsappAccounts=[]})},f.deselectWhatsappAccounts=function(){f.selectedWhatsappAccounts=[]},f.selectAllWhatsappAccounts=function(){f.selectedWhatsappAccounts=f.whatsappAccounts.rows},g.hasRole("admin")?m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.lists,{id:e.resourceId})}),t=null;if(f.whatsappAccount&&(t=_.find(f.lists,{id:Number(f.whatsappAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.lists,{id:t.id});a.canSelect=!1,n.push(a)}f.lists=n})}else{var t=[],a=null;f.whatsappAccount&&(a=_.find(f.lists,{id:Number(f.whatsappAccount.ListId)}));for(var i=0;i<f.lists.length;i++)a&&f.lists[i].id===a.id&&(f.lists[i].canSelect=!1,t.push(f.lists[i]));f.lists=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),g.hasRole("admin")?m.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){f.pauses=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){f.pauses=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.pauses,{id:e.resourceId})});f.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),f.pauses=n})}else f.pauses=[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.whatsappAccounts=e||{count:0,rows:[]}}function y(e){m.whatsappAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.whatsappAccounts.rows,{id:e.id}),f.whatsappAccounts.count-=1,f.whatsappAccounts.rows.length||f.getWhatsappAccounts(),p.success({title:_.startCase("WhatsappAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEwhatsappAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEwhatsappAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getWhatsappAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","whatsappAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.whatsapp").controller("WhatsappAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="WHATSAPP.EDIT_WHATSAPPQUEUE",g.whatsappQueue=angular.copy(l),g.whatsappQueues=r,g.newWhatsappQueue=!1,g.whatsappQueue||(g.whatsappQueue={strategy:"beepall",timeout:10},g.title="WHATSAPP.NEW_WHATSAPPQUEUE",g.newWhatsappQueue=!0),g.addNewWhatsappQueue=function(){g.errors=[],d.whatsappQueue.save(g.whatsappQueue).$promise.then(function(e){g.whatsappQueues.unshift(e.toJSON()),o.success({title:"WhatsappQueue properly created",msg:g.whatsappQueue.name?g.whatsappQueue.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.whatsappQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.whatsappQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveWhatsappQueue=function(){g.errors=[],d.whatsappQueue.update({id:g.whatsappQueue.id},g.whatsappQueue).$promise.then(function(e){var n=_.find(g.whatsappQueues,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"WhatsappQueue properly saved!",msg:g.whatsappQueue.name?g.whatsappQueue.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.whatsappQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.whatsappQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteWhatsappQueue=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The whatsappQueue will be deleted.").ariaLabel("Delete WhatsappQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.whatsappQueue.delete({id:g.whatsappQueue.id}).$promise.then(function(){_.remove(g.whatsappQueues,{id:g.whatsappQueue.id}),o.success({title:"WhatsappQueue properly deleted!",msg:(g.whatsappQueue.name||"whatsappQueue")+" has been deleted!"}),v(g.whatsappQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.whatsappQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.whatsappQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","whatsappQueues","whatsappQueue","api","Auth","license","setting","crudPermissions"],angular.module("app.whatsapp").controller("CreateOrEditWhatsappQueueDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.whatsappQueue.getAgents({id:c.whatsappQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserWhatsappQueue?"penalty "+e.UserWhatsappQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.whatsappQueue=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.whatsappQueue.removeAgents({id:c.whatsappQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.whatsappQueue.addAgents({id:c.whatsappQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("WHATSAPP.ALL_AGENTS"),labelSelected:r.instant("WHATSAPP.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","whatsappQueue","whatsappQueues","realtime","$translate","Auth","crudPermissions"],angular.module("app.whatsapp").controller("WhatsappQueueagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.whatsappQueue.getTeams({id:l.whatsappQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.whatsappQueue=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("WHATSAPP.ALL_TEAMS"),labelSelected:t.instant("WHATSAPP.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.whatsappQueue.removeTeams({id:l.whatsappQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.whatsappQueue.addTeams({id:l.whatsappQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","whatsappQueue","$translate","Auth","crudPermissions"],angular.module("app.whatsapp").controller("WhatsappQueueteamaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.whatsappQueue=c||e.params.whatsappQueue||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.teamadddialog=function(e,n){t.show({controller:"WhatsappQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{whatsappQueue:e,whatsappQueues:u.whatsappQueues?u.whatsappQueues.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){t.show({controller:"WhatsappQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{whatsappQueue:e,whatsappQueues:u.whatsappQueues?u.whatsappQueues.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.alert=l.info,u.gotoWhatsappQueues=function(){e.go("app.whatsapp.whatsappQueues",{},{reload:"app.whatsapp.whatsappQueues"})},u.saveWhatsappQueue=function(){r.whatsappQueue.update({id:u.whatsappQueue.id},u.whatsappQueue).$promise.then(function(){l.success({title:"WhatsappQueue updated!",msg:u.whatsappQueue.name?u.whatsappQueue.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETwhatsappQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","whatsappQueue","userProfileSection"],angular.module("app.whatsapp").controller("WhatsappQueueController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.whatsappQueues=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="whatsappQueues",f.listOrder="",f.listOrderAsc=null,f.selectedWhatsappQueues=[],f.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"whatsapp",limit:10,page:1},f.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.whatsapp.whatsappQueues.edit",{id:e.id,whatsappQueue:e,crudPermissions:f.crudPermissions})},f.teamadddialog=function(e,n){i.show({controller:"WhatsappQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{whatsappQueue:e,whatsappQueues:f.whatsappQueues?f.whatsappQueues.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"WhatsappQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{whatsappQueue:e,whatsappQueues:f.whatsappQueues?f.whatsappQueues.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("whatsappQueue")+"?").htmlContent("<b>"+(e.name||"whatsappQueue")+"</b> will be deleted.").ariaLabel("delete whatsappQueue").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:2110}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.whatsapp.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.whatsapp.realtime.queues",{})}},f.success=E,f.getWhatsappQueues=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.whatsappQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="WhatsappQueues",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditWhatsappQueue=function(e,n){i.show({controller:"CreateOrEditWhatsappQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{whatsappQueue:n,whatsappQueues:f.whatsappQueues.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteWhatsappQueue=y,f.exportSelectedWhatsappQueues=function(){var e=angular.copy(f.selectedWhatsappQueues);return f.selectedWhatsappQueues=[],e},f.deleteSelectedWhatsappQueues=function(e){var n=i.confirm().title("Are you sure want to delete the selected whatsappQueues?").htmlContent("<b>"+f.selectedWhatsappQueues.length+" selected</b> will be deleted.").ariaLabel("delete WhatsappQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedWhatsappQueues.forEach(function(e){y(e)}),f.selectedWhatsappQueues=[]})},f.deselectWhatsappQueues=function(){f.selectedWhatsappQueues=[]},f.selectAllWhatsappQueues=function(){f.selectedWhatsappQueues=f.whatsappQueues.rows};var b=!0,A=1;function E(e){f.whatsappQueues=e||{count:0,rows:[]}}function y(e){m.whatsappQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.whatsappQueues.rows,{id:e.id}),f.whatsappQueues.count-=1,f.whatsappQueues.rows.length||f.getWhatsappQueues(),p.success({title:_.startCase("WhatsappQueue")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEwhatsappQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEwhatsappQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getWhatsappQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","whatsappQueues","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.whatsapp").controller("WhatsappQueuesController",e)}(),function(){"use strict";function e(n,t,e,s,a,i,o,r,l,d,c){var m=this;function u(e,n){return{id:e,title:n.name||"NONAME",state:"app.dashboards.custom",stateParams:n,weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(e)&&!o.hasRole("admin")}}}function p(e,n){return{id:e,title:n.name||"NONAME",state:"app.plugins.plugin",stateParams:n,weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(e)&&!o.hasRole("admin")}}}function g(e,n){var t={user:_.pick(o.getCurrentUser(),["id","name","fullname","email","role","internal","interface"])};n.agentUrl=Mustache.render(n.agentUrl,t),a.saveItem("apps.home.plugin_"+e,{id:e,title:n.name,translate:n.name,state:"plugin_"+n.id,stateParams:n,view:"plugin",icon:n.icon,weight:12,hidden:function(){return!o.hasPermission(e)}})}function v(e){return _.map(e.children,function(e){return e.id})}i.clear(),m.isAgent=function(){return o.getCurrentUser()&&o.hasRole("agent")},s.saveItem("apps",{title:"APPS",group:!0,weight:1,hidden:function(){return o.hasRole("agent")}}),l.version.get().$promise.then(function(e){m.version=e&&e.current?e.current:"UNKNOWN"}).catch(function(e){m.version="UNKNOWN"}).finally(function(){s.saveItem("version",{title:"VERSION "+m.version,group:!0,weight:2,hidden:function(){return o.hasRole("agent")}})}),o.isLoggedIn()&&(r.gray&&i.warning({msg:e.instant("DASHBOARDS.LICENSE_EXPIRE_REMAINING_DAYS"),showClose:!0,timeout:!1}),l.dashboard.get().$promise.then(function(e){for(var n=0,t=0;t<e.rows.length;t+=1)n=99999+e.rows[t].id,s.saveItem("apps.dashboards.custom_"+n,u(n,e.rows[t]))}),l.plugin.get({active:!0}).$promise.then(function(e){var n=0;if(e.count){var t=_.filter(e.rows,function(e){return"never"!=e.sidebar&&"agentOnly"!=e.sidebar});if(0<t.length){s.saveItem("apps.plugins",{id:1900,title:"Plugins",translate:"PLUGINS.PLUGINS",icon:"icon-apps",permissions:{hidden:!0},weight:17,hidden:function(){return o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}});for(var a=0;a<t.length;a+=1)n=88888+t[a].id,s.saveItem("apps.plugins.plugin_"+n,p(n,t[a]));s.sort()}var i=_.filter(e.rows,function(e){return"never"!=e.sidebar&&"adminOnly"!=e.sidebar});if(0<i.length)for(a=0;a<i.length;a+=1)g(n=88888+i[a].id,i[a])}})),r.custom&&!d.defaultPageTitle&&d.pageTitle&&angular.element("#pageTitle").html(d.pageTitle),s.saveItem("apps.dashboards",{id:100,title:"Dashboards",translate:"DASHBOARDS.DASHBOARDS",icon:"icon-tile-four",weight:2,hidden:function(){return o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.dashboards.general",{id:101,title:"General",route:"",translate:"DASHBOARDS.GENERAL",state:"app.dashboards.general",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(101)&&!o.hasRole("admin")}}),s.saveItem("apps.staff",{id:200,title:"Staff",translate:"STAFF.STAFF",icon:"icon-account-multiple",weight:3,hidden:function(){return o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.staff.users",{id:201,title:"Users",route:"user",translate:"STAFF.USERS",state:"app.staff.users",permissions:{hidden:!0},weight:1,hidden:function(){return o.hasRole("agent")||o.hasRole("user")||!o.hasPermission(201)&&!o.hasRole("admin")}}),s.saveItem("apps.staff.agents",{id:202,title:"Agents",route:"user",translate:"STAFF.AGENTS",state:"app.staff.agents",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(202)&&!o.hasRole("admin")}}),s.saveItem("apps.staff.telephones",{id:203,title:"Telephones",route:"user",translate:"STAFF.TELEPHONES",state:"app.staff.telephones",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(203)&&!o.hasRole("admin")}}),s.saveItem("apps.staff.teams",{id:204,title:"Teams",route:"team",translate:"STAFF.TEAMS",state:"app.staff.teams",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(204)&&!o.hasRole("admin")}}),s.saveItem("apps.staff.userProfiles",{id:205,title:"UserProfiles",route:"userProfile",translate:"STAFF.USERPROFILES",state:"app.staff.userProfiles",permissions:{hidden:!0},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(205)&&!o.hasRole("admin")}}),s.saveItem("apps.contactmanager",{id:300,title:"ContactManager",translate:"CONTACTMANAGER.CONTACTMANAGER",icon:"icon-account-circle",license:"cm",weight:4,hidden:function(){return!r.cm||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.contactmanager.lists",{id:301,title:"Lists",route:"cmList",translate:"CONTACTMANAGER.LISTS",state:"app.contactmanager.lists",weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(301)&&!o.hasRole("admin")}}),s.saveItem("apps.contactmanager.companies",{id:302,title:"Companies",route:"cmCompany",translate:"CONTACTMANAGER.COMPANIES",state:"app.contactmanager.companies",weight:3,hidden:function(){return o.hasRole("agent")||!o.hasPermission(302)&&!o.hasRole("admin")}}),s.saveItem("apps.contactmanager.globalCustomFields",{id:304,title:"GlobalCustomFields",route:"cmCustomField",translate:"CONTACTMANAGER.GLOBALCUSTOMFIELDS",state:"app.contactmanager.globalCustomFields",permissions:{association:!1},weight:4,hidden:function(){return o.hasRole("agent")||!o.hasPermission(304)&&!o.hasRole("admin")}}),s.saveItem("apps.contactmanager.contacts",{id:303,title:"Contacts",route:"",translate:"CONTACTMANAGER.CONTACTS",state:"app.contactmanager.contacts",permissions:{association:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(303)&&!o.hasRole("admin")}}),s.saveItem("apps.voice",{id:400,title:"Voice",translate:"VOICE.VOICE",icon:"icon-phone",license:"voice",weight:5,hidden:function(){return!r.voice||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.voice.voiceQueues",{id:401,title:"VoiceQueues",route:"voiceQueue",channel:"voice",translate:"VOICE.VOICEQUEUES",state:"app.voice.voiceQueues",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(401)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.contexts",{id:405,title:"Contexts",route:"voiceContext",translate:"VOICE.CONTEXTS",state:"app.voice.contexts",weight:5,hidden:function(){return o.hasRole("agent")||!o.hasPermission(405)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.voicemails",{id:406,title:"Voicemails",route:"voiceMail",translate:"VOICE.VOICEMAILS",state:"app.voice.voicemails",weight:6,hidden:function(){return o.hasRole("agent")||!o.hasPermission(406)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.musiconholds",{id:407,title:"MusicOnHolds",route:"voiceMusicOnHold",translate:"VOICE.MUSICONHOLDS",state:"app.voice.musiconholds",weight:7,hidden:function(){return o.hasRole("agent")||!o.hasPermission(407)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.voiceRecordings",{id:408,title:"VoiceRecordings",route:"voiceRecording",translate:"VOICE.VOICERECORDINGS",state:"app.voice.voiceRecordings",permissions:{association:!1,loading:!0},weight:8,hidden:function(){return o.hasRole("agent")||!o.hasPermission(408)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.chanSpies",{id:409,title:"ChanSpies",route:"voiceChanSpy",translate:"VOICE.CHANSPIES",state:"app.voice.chanSpies",weight:9,hidden:function(){return o.hasRole("agent")||!o.hasPermission(409)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.voicePrefixes",{id:410,title:"VoicePrefixes",route:"voicePrefix",translate:"VOICE.VOICEPREFIXES",state:"app.voice.voicePrefixes",weight:10,hidden:function(){return o.hasRole("agent")||!o.hasPermission(410)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.inboundRoutes",{id:402,title:"InboundRoutes",route:"voiceExtension",translate:"VOICE.INBOUNDROUTES",state:"app.voice.inboundRoutes",weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(402)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.outboundRoutes",{id:403,title:"OutboundRoutes",route:"voiceExtension",translate:"VOICE.OUTBOUNDROUTES",state:"app.voice.outboundRoutes",weight:3,hidden:function(){return o.hasRole("agent")||!o.hasPermission(403)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.internalRoutes",{id:404,title:"InternalRoutes",route:"voiceExtension",translate:"VOICE.INTERNALROUTES",state:"app.voice.internalRoutes",weight:4,hidden:function(){return o.hasRole("agent")||!o.hasPermission(404)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.realtime",{id:411,title:"Realtime",route:"",translate:"VOICE.REALTIME",state:"app.voice.realtime",permissions:{association:!1,crud:!1},weight:11,hidden:function(){return o.hasRole("agent")||!o.hasPermission(411)&&!o.hasRole("admin")}}),s.saveItem("apps.chat",{id:500,title:"Chat",translate:"CHAT.CHAT",icon:"icon-hangouts",license:"chat",weight:6,hidden:function(){return!r.chat||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.chat.chatQueues",{id:501,title:"ChatQueues",route:"chatQueue",channel:"chat",translate:"CHAT.CHATQUEUES",state:"app.chat.chatQueues",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(501)&&!o.hasRole("admin")}}),s.saveItem("apps.chat.chatWebsites",{id:502,title:"ChatWebsites",route:"chatWebsite",channel:"chat",translate:"CHAT.CHATWEBSITES",state:"app.chat.chatWebsites",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(502)&&!o.hasRole("admin")}}),s.saveItem("apps.chat.realtime",{id:510,title:"Realtime",route:"",translate:"CHAT.REALTIME",state:"app.chat.realtime",permissions:{association:!1,crud:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(510)&&!o.hasRole("admin")}}),s.saveItem("apps.mail",{id:600,title:"Mail",translate:"MAIL.MAIL",icon:"icon-email",license:"mail",weight:7,hidden:function(){return!r.mail||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.mail.mailQueues",{id:601,title:"MailQueues",route:"mailQueue",channel:"mail",translate:"MAIL.MAILQUEUES",state:"app.mail.mailQueues",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(601)&&!o.hasRole("admin")}}),s.saveItem("apps.mail.mailAccounts",{id:602,title:"MailAccounts",route:"mailAccount",channel:"mail",translate:"MAIL.MAILACCOUNTS",state:"app.mail.mailAccounts",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(602)&&!o.hasRole("admin")}}),s.saveItem("apps.mail.mailSubtatuses",{id:603,title:"MailSubstatuses",route:"mailSubstatus",channel:"mail",translate:"MAIL.MAILSUBSTATUSES",state:"app.mail.mailSubtatuses",permissions:{association:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(603)&&!o.hasRole("admin")}}),s.saveItem("apps.mail.realtime",{id:610,title:"Realtime",route:"",translate:"MAIL.REALTIME",state:"app.mail.realtime",permissions:{association:!1,crud:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(610)&&!o.hasRole("admin")}}),s.saveItem("apps.sms",{id:700,title:"Sms",translate:"SMS.SMS",icon:"icon-message-text",license:"messaging",weight:8,hidden:function(){return!r.messaging||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.sms.smsQueues",{id:701,title:"SmsQueues",route:"smsQueue",channel:"sms",translate:"SMS.SMSQUEUES",state:"app.sms.smsQueues",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(701)&&!o.hasRole("admin")}}),s.saveItem("apps.sms.smsAccounts",{id:702,title:"SmsAccounts",route:"smsAccount",channel:"sms",translate:"SMS.SMSACCOUNTS",state:"app.sms.smsAccounts",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(702)&&!o.hasRole("admin")}}),s.saveItem("apps.sms.realtime",{id:710,title:"Realtime",route:"",translate:"SMS.REALTIME",state:"app.sms.realtime",permissions:{association:!1,crud:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(710)&&!o.hasRole("admin")}}),s.saveItem("apps.openchannel",{id:800,title:"Openchannel",translate:"OPENCHANNEL.OPENCHANNEL",icon:"icon-google-earth",license:"openchannel",weight:9,hidden:function(){return!r.openchannel||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.openchannel.openchannelQueues",{id:801,title:"OpenchannelQueues",route:"openchannelQueue",channel:"openChannel",translate:"OPENCHANNEL.OPENCHANNELQUEUES",state:"app.openchannel.openchannelQueues",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(801)&&!o.hasRole("admin")}}),s.saveItem("apps.openchannel.openchannelAccounts",{id:802,title:"OpenchannelAccounts",route:"openchannelAccount",channel:"openChannel",translate:"OPENCHANNEL.OPENCHANNELACCOUNTS",state:"app.openchannel.openchannelAccounts",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(802)&&!o.hasRole("admin")}}),s.saveItem("apps.openchannel.realtime",{id:810,title:"Realtime",route:"",translate:"OPENCHANNEL.REALTIME",state:"app.openchannel.realtime",permissions:{association:!1,crud:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(810)&&!o.hasRole("admin")}}),s.saveItem("apps.fax",{id:900,title:"Fax",translate:"FAX.FAX",icon:"icon-deskphone",license:"fax",weight:10,hidden:function(){return!r.fax||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.fax.faxQueues",{id:901,title:"FaxQueues",route:"faxQueue",channel:"fax",translate:"FAX.FAXQUEUES",state:"app.fax.faxQueues",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(901)&&!o.hasRole("admin")}}),s.saveItem("apps.fax.faxAccounts",{id:902,title:"FaxAccounts",route:"faxAccount",channel:"fax",translate:"FAX.FAXACCOUNTS",state:"app.fax.faxAccounts",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(902)&&!o.hasRole("admin")}}),s.saveItem("apps.fax.realtime",{id:910,title:"Realtime",route:"",translate:"FAX.REALTIME",state:"app.fax.realtime",permissions:{association:!1,crud:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(910)&&!o.hasRole("admin")}}),s.saveItem("apps.tools",{id:1e3,title:"Tools",translate:"TOOLS.TOOLS",icon:"icon-auto-fix",weight:15,hidden:function(){return o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.tools.cannedAnswers",{id:1001,title:"CannedAnswers",route:"cannedAnswer",translate:"TOOLS.CANNEDANSWERS",state:"app.tools.cannedAnswers",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1001)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.customDashboards",{id:1003,title:"CustomDashboards",route:"dashboard",translate:"TOOLS.CUSTOMDASHBOARDS",state:"app.tools.customDashboards",weight:3,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1003)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.intervals",{id:1004,title:"Intervals",route:"interval",translate:"TOOLS.INTERVALS",state:"app.tools.intervals",weight:4,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1004)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.pauses",{id:1005,title:"Pauses",route:"pause",translate:"TOOLS.PAUSES",state:"app.tools.pauses",weight:5,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1005)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.schedules",{id:1006,title:"Scheduler",route:"schedule",translate:"TOOLS.SCHEDULER",state:"app.tools.schedules",weight:6,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1006)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.sounds",{id:1007,title:"Sounds",route:"sound",translate:"TOOLS.SOUNDS",state:"app.tools.sounds",weight:7,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1007)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.tags",{id:1008,title:"Tags",route:"tag",translate:"TOOLS.TAGS",state:"app.tools.tags",weight:8,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1008)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.templates",{id:1009,title:"Templates",route:"template",translate:"TOOLS.TEMPLATES",state:"app.tools.templates",weight:9,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1009)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.trunks",{id:1011,title:"Trunks",route:"trunk",translate:"TOOLS.TRUNKS",state:"app.tools.trunks",weight:11,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1011)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.variables",{id:1012,title:"Variables",route:"variable",translate:"TOOLS.VARIABLES",state:"app.tools.variables",weight:12,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1012)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.dispositions",{id:1002,title:"Dispositions",route:"disposition",translate:"TOOLS.DISPOSITIONS",state:"app.tools.dispositions",weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1002)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.triggers",{id:1010,title:"Triggers",route:"trigger",translate:"TOOLS.TRIGGERS",state:"app.tools.triggers",weight:10,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1010)&&!o.hasRole("admin")}}),s.saveItem("apps.callysquare",{id:1100,title:"CallySquare",translate:"CALLYSQUARE.CALLYSQUARE",icon:"icon-sitemap",license:"voice",weight:13,hidden:function(){return!r.voice||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.callysquare.odbcs",{id:1101,title:"ODBC",route:"squareOdbc",translate:"CALLYSQUARE.ODBC",state:"app.callysquare.odbcs",weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1101)&&!o.hasRole("admin")}}),s.saveItem("apps.callysquare.squareRecordings",{id:1102,title:"SquareRecordings",route:"squareRecording",translate:"CALLYSQUARE.SQUARERECORDINGS",state:"app.callysquare.squareRecordings",permissions:{association:!1,loading:!0},weight:3,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1102)&&!o.hasRole("admin")}}),s.saveItem("apps.callysquare.projects",{id:1103,title:"Projects",route:"squareProject",translate:"CALLYSQUARE.PROJECTS",state:"app.callysquare.projects",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1103)&&!o.hasRole("admin")}}),s.saveItem("apps.analytics",{id:1200,title:"Analytics",translate:"ANALYTICS.ANALYTICS",icon:"icon-chart-line",weight:16,hidden:function(){return o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.analytics.metrics",{id:1201,title:"Metrics",route:"analyticMetric",translate:"ANALYTICS.METRICS",state:"app.analytics.metrics",weight:3,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1201)&&!o.hasRole("admin")}}),s.saveItem("apps.analytics.extractedReports",{id:1202,title:"ExtractedReports",route:"analyticExtractedReport",translate:"ANALYTICS.EXTRACTEDREPORTS",state:"app.analytics.extractedReports",permissions:{association:!1,loading:!0},weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1202)&&!o.hasRole("admin")}}),s.saveItem("apps.analytics.reports",{id:1203,title:"Reports",route:"",translate:"ANALYTICS.REPORTS",state:"app.analytics.reports",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1203)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations",{id:1300,title:"Integrations",translate:"INTEGRATIONS.INTEGRATIONS",icon:"icon-heart",weight:17,hidden:function(){return o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.zendeskAccounts",{id:1301,title:"ZendeskAccounts",route:"intZendeskAccount",translate:"INTEGRATIONS.ZENDESKACCOUNTS",state:"app.integrations.zendeskAccounts",permissions:{association:!1,loading:!0},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1301)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.salesforceAccounts",{id:1302,title:"SalesforceAccounts",route:"intSalesforceAccount",translate:"INTEGRATIONS.SALESFORCEACCOUNTS",state:"app.integrations.salesforceAccounts",permissions:{association:!1,loading:!0},weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1302)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.freshdeskAccounts",{id:1303,title:"FreshdeskAccounts",route:"intFreshdeskAccount",translate:"INTEGRATIONS.FRESHDESKACCOUNTS",state:"app.integrations.freshdeskAccounts",permissions:{association:!1,loading:!0},weight:3,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1303)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.sugarcrmAccounts",{id:1305,title:"SugarcrmAccounts",route:"intSugarcrmAccount",translate:"INTEGRATIONS.SUGARCRMACCOUNTS",state:"app.integrations.sugarcrmAccounts",permissions:{association:!1,loading:!0},weight:4,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1305)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.deskAccounts",{id:1306,title:"DeskAccounts",route:"intDeskAccount",translate:"INTEGRATIONS.DESKACCOUNTS",state:"app.integrations.deskAccounts",permissions:{association:!1,loading:!0},weight:5,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1306)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.zohoAccounts",{id:1307,title:"ZohoAccounts",route:"intZohoAccount",translate:"INTEGRATIONS.ZOHOACCOUNTS",state:"app.integrations.zohoAccounts",permissions:{association:!1,loading:!0},weight:6,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1307)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.vtigerAccounts",{id:1308,title:"VtigerAccounts",route:"intVtigerAccount",translate:"INTEGRATIONS.VTIGERACCOUNTS",state:"app.integrations.vtigerAccounts",permissions:{association:!1,loading:!0},weight:7,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1308)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.dynamics365Accounts",{id:1309,title:"Dynamics365Accounts",route:"intDynamics365Account",translate:"INTEGRATIONS.DYNAMICS365ACCOUNTS",state:"app.integrations.dynamics365Accounts",permissions:{association:!1,loading:!0},weight:8,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1309)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.servicenowAccounts",{id:1310,title:"ServicenowAccounts",route:"intServicenowAccount",translate:"INTEGRATIONS.SERVICENOWACCOUNTS",state:"app.integrations.servicenowAccounts",permissions:{association:!1,loading:!0},weight:9,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1310)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.freshsalesAccounts",{id:1304,title:"FreshsalesAccounts",route:"intFreshsalesAccount",translate:"INTEGRATIONS.FRESHSALESACCOUNTS",state:"app.integrations.freshsalesAccounts",permissions:{association:!1,loading:!0},weight:10,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1304)&&!o.hasRole("admin")}}),s.saveItem("apps.settings",{id:1400,title:"Settings",translate:"SETTINGS.SETTINGS",icon:"icon-cog",permissions:{hidden:!0},weight:20,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")||o.hasRole("admin")&&!o.getCurrentUser().settingsEnabled}}),s.saveItem("apps.settings.generals",{id:1401,title:"General",route:"setting",translate:"SETTINGS.GENERAL",state:"app.settings.generals",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.settings.smtps",{id:1402,title:"Smtp",route:"mailAccount",translate:"SETTINGS.SMTP",state:"app.settings.smtps",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.settings.networks",{id:1403,title:"Networks",route:"network",translate:"SETTINGS.NETWORKS",state:"app.settings.networks",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.settings.customizations",{id:1407,title:"Customizations",route:"setting",translate:"SETTINGS.CUSTOMIZATIONS",state:"app.settings.customizations",weight:1,hidden:function(){return!r.custom||o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.settings.cloudProviders",{id:1408,title:"AiTools",route:"cloudProvider",translate:"SETTINGS.AITOOLS",state:"app.settings.cloudProviders",weight:1,hidden:function(){return!r.ai||o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.settings.updates",{id:1404,title:"Updates",route:"",translate:"SETTINGS.UPDATES",state:"app.settings.updates",weight:1,hidden:function(){return!r.update||o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.settings.license",{id:1405,title:"License",route:"",translate:"SETTINGS.LICENSE",state:"app.settings.license",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.settings.system",{id:1406,title:"System",route:"",translate:"SETTINGS.SYSTEM",state:"app.settings.system",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.motiondialer",{id:1500,title:"MotionDialer",translate:"MOTIONDIALER.MOTIONDIALER",icon:"icon-fire",license:"dialer",weight:5,hidden:function(){return!r.dialer||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.motiondialer.queueCampaigns",{id:1501,title:"QueueCampaigns",route:"voiceQueue",channel:"bull",translate:"MOTIONDIALER.QUEUECAMPAIGNS",state:"app.motiondialer.queueCampaigns",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1501)&&!o.hasRole("admin")}}),s.saveItem("apps.motiondialer.ivrCampaigns",{id:1502,title:"IvrCampaigns",route:"campaign",translate:"MOTIONDIALER.IVRCAMPAIGNS",state:"app.motiondialer.ivrCampaigns",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1502)&&!o.hasRole("admin")}}),s.saveItem("apps.motiondialer.realtime",{id:1510,title:"Realtime",route:"",translate:"MOTIONDIALER.REALTIME",state:"app.motiondialer.realtime",permissions:{association:!1,crud:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1510)&&!o.hasRole("admin")}}),s.saveItem("apps.help",{id:1600,title:"Help",translate:"HELP.HELP",icon:"icon-help",permissions:{association:!1},weight:21,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1600)&&!o.hasRole("admin")}}),s.saveItem("apps.help.about",{id:1601,title:"About",route:"",translate:"HELP.ABOUT",state:"app.help.about",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1600)&&!o.hasRole("admin")}}),s.saveItem("apps.jscripty",{id:1700,title:"jscripty",translate:"JSCRIPTY.JSCRIPTY",icon:"icon-script",license:"jscripty",weight:14,hidden:function(){return!r.jscripty||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.jscripty.projects",{id:1701,title:"Projects",route:"jscriptyProject",translate:"JSCRIPTY.PROJECTS",state:"app.jscripty.projects",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1701)&&!o.hasRole("admin")}}),s.saveItem("apps.marketplace",{id:1800,title:"Marketplace",translate:"MARKETPLACE.MARKETPLACE",icon:"icon-cart",weight:18,hidden:function(){return o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.marketplace.plugins",{id:1801,title:"Plugins",route:"plugin",translate:"MARKETPLACE.PLUGINS",state:"app.marketplace.plugins",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1801)&&!o.hasRole("admin")}}),s.saveItem("apps.video",{id:2e3,title:"Video",translate:"VIDEO.VIDEO",icon:"icon-video",license:"screenrecording",weight:12,hidden:function(){return!r.screenrecording||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.video.screenRecordings",{id:2001,title:"ScreenRecordings",route:"screenRecording",translate:"VIDEO.SCREENRECORDINGS",state:"app.video.screenRecordings",permissions:{association:!1,loading:!0},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(2001)&&!o.hasRole("admin")}}),s.saveItem("apps.whatsapp",{id:2100,title:"Whatsapp",translate:"WHATSAPP.WHATSAPP",icon:"icon-whatsapp",license:"whatsapp",weight:11,hidden:function(){return!r.whatsapp||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.whatsapp.whatsappQueues",{id:2101,title:"WhatsappQueues",route:"whatsappQueue",channel:"whatsapp",translate:"WHATSAPP.WHATSAPPQUEUES",state:"app.whatsapp.whatsappQueues",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(2101)&&!o.hasRole("admin")}}),s.saveItem("apps.whatsapp.whatsappAccounts",{id:2102,title:"WhatsappAccounts",route:"whatsappAccount",channel:"whatsapp",translate:"WHATSAPP.WHATSAPPACCOUNTS",state:"app.whatsapp.whatsappAccounts",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(2102)&&!o.hasRole("admin")}}),s.saveItem("apps.whatsapp.realtime",{id:2110,title:"Realtime",route:"",translate:"WHATSAPP.REALTIME",state:"app.whatsapp.realtime",permissions:{association:!1,crud:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(2110)&&!o.hasRole("admin")}}),s.sort(),a.saveItem("apps",{title:"APPS",group:!0,weight:1}),a.saveItem("apps.home",{id:100,title:"Home",translate:"DASHBOARDS.HOME",icon:"icon-home",weight:1}),a.saveItem("apps.home.dashboard",{id:101,title:"Dashboard",translate:"DASHBOARDS.DASHBOARD",state:"dashboard",view:"dashboard",icon:"icon-tile-four",iconClass:"cyan-500-fg",weight:1,hidden:function(){return!o.hasPermission(101)}}),a.saveItem("apps.home.agentPresence",{id:115,title:"AgentPresence",translate:"DASHBOARDS.AGENT_PRESENCE",state:"agentPresence",view:"agentPresence",icon:"icon-webcam",iconClass:"xenialab-violet-light-fg",weight:2,hidden:function(){return!o.hasPermission(115)}}),a.saveItem("apps.home.contacts",{id:102,title:"Contacts",translate:"DASHBOARDS.CONTACTS",state:"contacts",view:"contacts",icon:"icon-account-circle",iconClass:"red-fg",weight:3,hidden:function(){return!r.cm||!o.hasPermission(102)}}),a.saveItem("apps.home.mycontacts",{id:103,title:"Contacts",translate:"DASHBOARDS.MYCONTACTS",state:"mycontacts",view:"mycontacts",icon:"icon-account-multiple",iconClass:"red-fg",weight:4,hidden:function(){return!r.cm||!o.hasPermission(103)}}),a.saveItem("apps.home.scheduled",{id:113,title:"Scheduled Calls",translate:"DASHBOARDS.SCHEDULED_CALLS",state:"scheduled",view:"scheduled",icon:"icon-calendar-clock",iconClass:"blue-grey-fg",weight:5,hidden:function(){return!r.dialer||!o.hasPermission(113)}}),a.saveItem("apps.home.voice",{id:110,title:"Voice",translate:"DASHBOARDS.VOICE",state:"voice",view:"voice",icon:"icon-phone",iconClass:"blue-A700-fg",weight:6,hidden:function(){return!r.voice||!o.hasPermission(110)}}),a.saveItem("apps.home.abandoned",{id:111,title:"Abandoned",translate:"DASHBOARDS.ABANDONED",state:"abandoned",view:"abandoned",icon:"icon-phone-missed",iconClass:"blue-fg",weight:7,hidden:function(){return!r.voice||!o.hasPermission(111)}}),a.saveItem("apps.home.recordings",{id:104,title:"Recordings",translate:"DASHBOARDS.RECORDINGS",state:"recordings",view:"recordings",icon:"icon-audiobook",iconClass:"indigo-A100-fg",weight:8,hidden:function(){return!r.voice||!o.hasPermission(104)}}),a.saveItem("apps.home.chat",{id:105,title:"Chat",translate:"DASHBOARDS.CHAT",state:"chat",view:"chat",icon:"icon-hangouts",iconClass:"green-A700-fg",weight:9,hidden:function(){return!r.chat||!o.hasPermission(105)}}),a.saveItem("apps.home.mail",{id:106,title:"Mail",translate:"DASHBOARDS.MAIL",state:"mail",view:"mail",icon:"icon-email",iconClass:"teal-fg",weight:10,hidden:function(){return!r.mail||!o.hasPermission(106)}}),a.saveItem("apps.home.sms",{id:107,title:"Sms",translate:"DASHBOARDS.SMS",state:"sms",view:"sms",icon:"icon-message-text",iconClass:"orange-fg",weight:11,hidden:function(){return!r.messaging||!o.hasPermission(107)}}),a.saveItem("apps.home.openchannel",{id:108,title:"Openchannel",translate:"DASHBOARDS.OPENCHANNEL",state:"openchannel",view:"openchannel",icon:"icon-google-earth",iconClass:"amber-fg",weight:12,hidden:function(){return!r.openchannel||!o.hasPermission(108)}}),a.saveItem("apps.home.fax",{id:109,title:"Fax",translate:"DASHBOARDS.FAX",state:"fax",view:"fax",icon:"icon-deskphone",iconClass:"blue-grey-A200-fg",weight:13,hidden:function(){return!r.fax||!o.hasPermission(109)}}),a.saveItem("apps.home.whatsapp",{id:114,title:"Whatsapp",translate:"DASHBOARDS.WHATSAPP",state:"whatsapp",view:"whatsapp",icon:"icon-whatsapp",iconClass:"lime-A700-fg",weight:14,hidden:function(){return!r.whatsapp||!o.hasPermission(114)}}),n.$on("$viewContentAnimationEnded",function(e){e.targetScope.$id===n.$id&&t.$broadcast("msSplashScreen::remove")}),n.$on("socket:connect",function(){t.toastySocketLost&&(i.clear(t.toastySocketLost),t.toastySocketLost=void 0)}),n.$on("socket:disconnect",function(){t.toastySocketLost||i.warning({title:e.instant("TOOLBAR.WARNING"),msg:e.instant("DASHBOARDS.LOST_CONNECTION"),timeout:!1,onAdd:function(){t.toastySocketLost=this.id}})})}e.$inject=["$scope","$rootScope","$translate","msNavigationService","msNavigationAgentService","toasty","Auth","license","api","setting","socket"],angular.module("motion").controller("MainController",e)}(),function(){"use strict";function e(e,n,t,a,o,r){var i=this;function s(e){if(e&&e.id){var n=99999+e.id;o.saveItem("apps.dashboards.custom_"+n,{id:n,title:e.name||"NONAME",state:"app.dashboards.custom",stateParams:e,weight:2,hidden:function(){return r.hasRole("agent")||!r.hasPermission(n)&&!r.hasRole("admin")}})}}function l(e){if(e&&e.id&&"never"!=e.sidebar)if(e.active){if("always"==e.sidebar||"adminOnly"==e.sidebar){o.saveItem("apps.plugins",{id:1900,title:"Plugins",translate:"PLUGINS.PLUGINS",icon:"icon-apps",weight:17,hidden:function(){return r.hasRole("agent")||!r.hasPermission(1900)&&!r.hasRole("admin")}});var n=88888+e.id;o.saveItem("apps.plugins.plugin_"+n,{id:n,title:e.name||"NONAME",state:"app.plugins.plugin",stateParams:e,weight:2,hidden:function(){return r.hasRole("agent")||!r.hasPermission(n)&&!r.hasRole("admin")}}),o.sort()}}else{n=88888+e.id;t=1900,a=n,i=o.getNavigation(),(s=_.find(i[0].children,{id:t}))&&_.some(s.children,{id:a})&&("always"==e.sidebar||"adminOnly"==e.sidebar)&&(o.deleteItem("apps.plugins.plugin_"+n),d(1900)||o.saveItem("apps.plugins",{id:1900,title:"Plugins",translate:"PLUGINS.PLUGINS",icon:"icon-apps",weight:17,hidden:function(){return!0}}))}var t,a,i,s}function d(e){var n=o.getNavigation(),t=_.find(n[0].children,{id:e});return!!(t&&0<t.children.length)}i.bodyEl=angular.element("body"),i.msScrollOptions={suppressScrollX:!0},i.setting=t,i.$onInit=function(){i.folded="true"===n.get("motion.folded")||!1},i.toggleMsNavigationFolded=function(){i.folded=!i.folded,n.put("motion.folded",i.folded)},i.getLogo=function(){return i.setting.defaultHeaderWhiteLabel?"xCALLY Motion":i.setting.headerWhiteLabel},a.on("dashboard:save",s),a.on("dashboard:update",s),a.on("dashboard:remove",function(e){if(e&&e.id){var n=99999+e.id;o.deleteItem("apps.dashboards.custom_"+n)}}),a.on("plugin:save",l),a.on("plugin:update",l),a.on("plugin:remove",function(e){if(e&&e.id&&"never"!=e.sidebar){var n=88888+e.id;"always"!=e.sidebar&&"adminOnly"!=e.sidebar||(o.deleteItem("apps.plugins.plugin_"+n),d(1900)||o.saveItem("apps.plugins",{id:1900,title:"Plugins",translate:"PLUGINS.PLUGINS",icon:"icon-apps",weight:17,hidden:function(){return!0}}))}}),e.$on("$stateChangeSuccess",function(){i.bodyEl.removeClass("ms-navigation-horizontal-mobile-menu-active")})}e.$inject=["$scope","$cookies","setting","socket","msNavigationService","Auth"],angular.module("app.navigation").controller("NavigationController",e)}(),function(){"use strict";function e(e,a,i,n,t,s,o,r){var l=this;function d(t){o.isSupported()?o.requestPermission().then(function(){var e,n;n={autoClose:!0,duration:10,showOnPageHidden:!0,icon:"api/users/"+(e=t).FromId+"/avatar",body:e.body||"",focusOnclick:!0,closeOnClick:!0},o.show(a.instant("QUICKPANEL.NEW_INTERNAL_MESSAGE"),n)},function(e){console.error("Please enable browser notifications!",e)}):console.error("Browser notifications are not supported by the browser. Normal notifications will be used.")}l.date=moment().format(),l.currentUser=n.getCurrentUser(),l.license=r,l.unreadTotalMessages=0,l.unreadTotalGroupMessages=0,l.userIsNotPhonebar=function(){return"admin"===l.currentUser.role||"user"===l.currentUser.role||"agent"===l.currentUser.role&&0!==l.currentUser.showWebBar},l.onMessageSave=function(e){e.ToId===l.currentUser.id&&e.FromId!==l.currentUser.id&&!e.read&&e.ChatGroupId&&(l.unreadTotalGroupMessages++,d(e));e.ToId!==l.currentUser.id||e.ChatGroupId||(l.unreadTotalMessages+=1,d(e))},l.onMessageUpdate=function(e){e.ToId===l.currentUser.id&&e.read&&0<l.unreadTotalMessages&&!e.ChatGroupId&&(l.unreadTotalMessages-=1);e.ToId==l.currentUser.id&&e.FromId!==l.currentUser.id&&e.ChatGroupId&&e.read&&0<l.unreadTotalGroupMessages&&l.unreadTotalGroupMessages--},t.on("chatInternalMessage:save",l.onMessageSave),t.on("chatInternalMessage:update",l.onMessageUpdate),s.chatInternalMessage.get({fields:"FromId",ToId:l.currentUser.id,read:!1,nolimit:!0,ChatGroupId:"null"}).$promise.then(function(e){return e&&e.count&&(l.unreadTotalMessages=e.count),s.user.getGroups({id:l.currentUser.id}).$promise}).then(function(e){for(var n=[],t=e.rows,a=0;a<t.length;a++)n.push(s.chatGroup.getUnread({id:t[a].id}).$promise);return i.all(n)}).then(function(e){for(var n=0;n<e.length;n++)l.unreadTotalGroupMessages+=e[n].count}).catch(function(e){console.error(e)}),e.$on("$destroy",function(){t.removeAllListeners("chatInternalMessage:save"),t.removeAllListeners("chatInternalMessage:update")})}e.$inject=["$scope","$translate","$q","Auth","socket","api","desktopNotification","license"],angular.module("app.quick-panel").controller("QuickPanelController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;function p(e){var n=angular.element("#chat-dialog");a(function(){n.animate({scrollTop:n[0].scrollHeight},e)},0)}function g(e){return _.isNil(e)?"":e.replace(/[^\w.+#*\-]+/g,"")}function v(e){return m.get(e).success(function(){n.success({title:"Successful call",msg:"Call properly handled!"})}).error(function(e){n.error({title:"PhoneBar API Error",msg:d.instant("CONTACTMANAGER.ERRORS.PHONEBAR_API")})})}u.currentUser=i.getCurrentUser(),u.user=void 0,u.users={count:0,rows:[]},u.standardDate=moment(0).format("YYYY-MM-DD HH:mm:ss"),u.unreadMessage={},u.replyMessage="",u.disabled=!1,u.init=function(e){u.license=e},u.toggleChat=function(e){if(e){if(!e.allowmessenger&&"agent"===e.role)return n.warning({title:d.instant("QUICKPANEL.WARNING"),msg:d.instant("QUICKPANEL.MESSENGER_DISABLED")}),void(u.user=void 0);u.user=e,u.replyMessage="",t.chatInternalMessage.get({sort:"createdAt",FromId:u.currentUser.id+","+e.id,ToId:u.currentUser.id+","+e.id,ChatGroupId:"null"}).$promise.then(function(e){if(e&&e.rows){u.user.messages=e;for(var n=0;n<u.user.messages.rows.length;n+=1)!1===u.user.messages.rows[n].read&&u.user.messages.rows[n].ToId===u.currentUser.id&&t.chatInternalMessage.update({id:u.user.messages.rows[n].id,read:!0})}}).finally(function(){p(0)})}else u.user=void 0},u.reply=function(){u.disabled=!0;Date.now();if(""===u.replyMessage)return void(u.disabled=!1);var e={FromId:u.currentUser.id,ToId:u.user.id,body:u.replyMessage,read:!1};u.replyMessage="",t.chatInternalMessage.save(e).$promise.then(function(e){u.user.messages.rows.push(e),u.user.lastMessageAt=e.createdAt,u.user.lastMessage=e,p(400)}).catch(function(e){}).finally(function(){u.disabled=!1})},u.onMessageSave=function(e){if(e.ToId===u.currentUser.id&&!e.ChatGroupId){u.user&&u.user.id===e.FromId?(u.user.messages.rows.push(e),p(0),t.chatInternalMessage.update({id:e.id,read:!0})):u.unreadMessage[e.FromId]=u.unreadMessage[e.FromId]?u.unreadMessage[e.FromId]+1:1;var n=_.find(u.users.rows,{id:e.FromId});n&&(n.lastMessageAt=e.createdAt,n.lastMessage=e)}},u.onMessageUpdate=function(e){if((e.FromId===u.currentUser.id||e.ToId===u.currentUser.id)&&!e.ChatGroupId){if(u.user){var n=_.find(u.user.messages.rows,{id:e.id});n&&_.merge(n,e)}var t=_.find(u.users.rows,{id:u.currentUser.id===e.FromId?e.ToId:e.FromId});t&&t.lastMessage&&_.merge(t.lastMessage,e),e.ToId===u.currentUser.id&&e.read&&0<u.unreadMessage[e.FromId]&&(u.unreadMessage[e.FromId]-=1)}},u.onUserUpdate=function(e){var n=_.find(u.users.rows,{id:e.id});n&&(_.isNil(e.online)||n.online===e.online||(n.online=e.online),_.isNil(e.allowmessenger)||n.allowmessenger===e.allowmessenger||(n.allowmessenger=e.allowmessenger))},u.webcall=function(e){c.$broadcast("webrtc::call",{target:g(e)})},u.call=function(e){return v("http://127.0.0.1:"+(u.user.phoneBarRemoteControlPort||"9888")+"/api/originate/"+g(e))},u.transfer=function(e){return v("http://127.0.0.1:"+(u.user.phoneBarRemoteControlPort||"9888")+"/api/transfer?number="+g(e))},s.on("chatInternalMessage:save",u.onMessageSave),s.on("chatInternalMessage:update",u.onMessageUpdate),s.on("user:update",u.onUserUpdate),o("quick-panel").onClose(function(){u.user=void 0}),t.chatInternalMessage.get({fields:"FromId",ToId:u.currentUser.id,read:!1,nolimit:!0,ChatGroupId:"null"}).$promise.then(function(e){u.unreadMessage=_.countBy(e.rows,"FromId")}).catch(function(e){}),t.chatInternalMessage.getUsers().$promise.then(function(e){u.users=e}).catch(function(e){console.error(e)}),e.$on("$destroy",function(){s.removeAllListeners("chatInternalMessage:save"),s.removeAllListeners("chatInternalMessage:update"),s.removeAllListeners("user:update")})}e.$inject=["$scope","toasty","api","$timeout","Auth","socket","$mdSidenav","$q","$interval","$translate","$rootScope","$http"],angular.module("app.quick-panel").controller("ChatInternalController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l){var d=this;function c(e){a.hide(e)}d.errors=[],d.title="QUICKPANEL.EDIT_CHATGROUP",d.group=angular.copy(r),d.currentUser=o.getCurrentUser(),d.members=l,d.newChatGroup=!0,d.group||(d.group={write:!0,members:[]},d.title="QUICKPANEL.NEW_CHATGROUP"),d.saveChatGroup=function(){var t;return d.errors=[],s.chatGroup.save({name:d.group.name,write:d.group.write}).$promise.then(function(e){var n=_.map(d.group.members,"id");return n.unshift(d.currentUser.id),t=e,s.chatGroup.addMembers({id:t.id,ids:n}).$promise}).then(function(){i.success({title:"Group properly saved!",msg:t.name+" has been saved!"}),c(t)}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},d.closeDialog=c,d.querySearch=function(e){return e?d.members.rows.filter((n=e,t=angular.lowercase(n),function(e){var n=e.name.toLowerCase();return-1!=n.indexOf(t)})):[];var n,t}}e.$inject=["$scope","$state","$location","$mdDialog","toasty","api","Auth","group","members"],angular.module("app.quick-panel").controller("CreateOrEditChatGroupDialogController",e)}(),function(){"use strict";function e(e,t,a,s,n,o,i,r,l,d){var c=this;function m(){delete c.group}function u(e){var n=angular.element("#chat-group-dialog");a(function(){n.animate({scrollTop:n[0].scrollHeight},e)},0)}c.currentUser=i.getCurrentUser(),c.unreadGroupMessages={},c.groups={},c.participants,c.group,c.init=function(e){return c.license=e,r.user.getGroups({id:c.currentUser.id}).$promise.then(function(e){for(var n=0,t=[];n<e.rows.length;n++)e.rows[n].unreadGroupMessages=0,c.groups[e.rows[n].id]=e.rows[n],t.push(r.chatGroup.getUnread({id:e.rows[n].id}).$promise);return o.all(t)}).then(function(e){for(var n=0;n<e.length;n++)c.groups[e[n].id].unreadGroupMessages+=e[n].count}).catch(function(e){console.error(e)})},c.back=m,c.addGroup=function(e,n){s.show({controller:"CreateOrEditChatGroupDialogController",controllerAs:"vm",templateUrl:"app/quick-panel/tabs/groups/create/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{group:e,me:c.currentUser,license:null,setting:null},resolve:{members:function(){return i.hasRole("admin")?r.user.get({role:"agent"}).$promise:r.userProfile.getResources({id:i.getCurrentUser().userProfileId,section:"Agents",role:"agent"}).$promise}}}).then(function(e){e&&(c.groups[e.id]=e)}).catch(function(e){e&&console.error(e.message)})},c.deleteGroup=function(e,n){var t=s.confirm().title("Are you sure want to delete the selected group?").htmlContent("Group <b>"+e.name+"</b> will be deleted.").ariaLabel("delete Group").targetEvent(n).ok("OK").cancel("CANCEL");s.show(t).then(function(){return r.chatGroup.delete({id:e.id}).$promise}).then(function(){delete c.groups[e.id],d.success({title:"Group properly deleted!",msg:e.name+" has been deleted!"})}).catch(function(e){e&&d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatGroup.delete",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.groupsToArray=function(){return _.values(c.groups)},c.showMessageInfo=function(e,i){s.show({controller:"ShowMessageInfoDialogController",controllerAs:"vm",templateUrl:"app/quick-panel/tabs/groups/info/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{message:i},resolve:{data:function(){var a={messages:[]};return r.chatInternalMessage.get({ChatInternalMessageId:i.id}).$promise.then(function(e){var n=[];a.messages=e.rows,a.messages.unshift(i);for(var t=0;t<a.messages.length;t++)n.push(r.user.get({id:a.messages[t].ToId,fields:"id,name,fullname,userpic"}).$promise);return o.all(n)}).then(function(e){return a.users=e,a}).catch(function(e){e&&console.error(e)})}}}).then(function(){}).catch(function(e){e&&console.error(e.message)})},c.toggleChat=function(n){c.group={id:n.id,write:n.write,messages:{}},r.chatGroup.getMembers({id:n.id,fields:"id,name,fullname"}).$promise.then(function(e){return c.group.membersByKeys=_.keyBy(e.rows,"id"),c.group.members=_.differenceBy(e.rows,[{id:c.currentUser.id}],"id"),c.participants=_.map(c.group.members,"fullname").join(", "),r.chatGroup.getMessages({id:n.id,nolimit:!0}).$promise}).then(function(e){for(var n,t=0,a=[];t<e.count;t++)e.rows[t].ToId===c.currentUser.id&&(n=e.rows[t],c.group.messages[n.id]=n,e.rows[t].ToId!=c.currentUser.id||e.rows[t].FromId===c.currentUser.id||n.read||a.push(r.chatInternalMessage.update({id:n.id,read:!0})));return o.all(a)}).then(function(){u(400)}).catch(function(e){console.error(e.message)})},c.reply=function(){if(!c.replyMessage)return;var t={id:c.group.id,FromId:c.currentUser.id,ToId:c.currentUser.id,body:c.replyMessage,read:!0},a=[];c.replyMessage="",r.chatGroup.addMessage(t).$promise.then(function(e){t.read=!1,t.ChatInternalMessageId=e.id;for(var n=0;n<c.group.members.length;n++)c.group.members[n].id!==c.currentUser.id&&(t.ToId=c.group.members[n].id,a.push(r.chatGroup.addMessage(angular.copy(t)).$promise));return o.all(a)}).catch(function(e){console.log(e)})},l.on("chatInternalMessage:save",function(n){if(!c.group&&n.ToId===c.currentUser.id&&n.FromId!==c.currentUser.id&&!n.read&&n.ChatGroupId){var e=c.groups[n.ChatGroupId];if(!e)return r.chatGroup.get({id:n.ChatGroupId}).$promise.then(function(e){e.unreadGroupMessages=1,c.groups[e.id]=e});e.unreadGroupMessages||(e.unreadGroupMessages=0),e.unreadGroupMessages++}c.group&&n.ChatGroupId===c.group.id&&n.ToId===c.currentUser.id&&r.chatInternalMessage.update({id:n.id,read:!0}).$promise.then(function(){var e;e=n,c.group.messages[e.id]=e,u(400)})}),l.on("chatInternalMessage:update",function(e){e.ToId==c.currentUser.id&&e.FromId!==c.currentUser.id&&e.ChatGroupId&&e.read&&(0<c.groups[e.ChatGroupId].unreadGroupMessages&&c.groups[e.ChatGroupId].unreadGroupMessages--,c.group.messages[e.id]&&(c.group.messages[e.id].read=!0))}),l.on("chatGroup:remove",function(e){c.groups[e.id]&&delete c.groups[e.id]}),n("quick-panel").onClose(m),e.$on("$destroy",function(){l.removeAllListeners("chatInternalMessage:save"),l.removeAllListeners("chatInternalMessage:update"),l.removeAllListeners("chatGroup:remove")})}e.$inject=["$scope","$document","$timeout","$mdDialog","$mdSidenav","$q","Auth","api","socket","toasty"],angular.module("app.quick-panel").controller("ChatGroupController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r){this.data=r,this.title="QUICKPANEL.INFO",this.closeDialog=function(){a.hide()}}e.$inject=["$scope","$state","$location","$mdDialog","toasty","api","Auth","data"],angular.module("app.quick-panel").controller("ShowMessageInfoDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this;o.form={token:s.token},o.setting={},o.resetPassword=function(){return i.auth.reset(o.form).$promise.then(function(){n.success({title:t.instant("RESETPASSWORD.PASSWORD_RESET"),msg:t.instant("RESETPASSWORD.PASSWORD_RESET_MESSAGE")}),a.go("app.login")}).catch(function(e){e&&n.error({title:t.instant("RESETPASSWORD.PASSWORD_RESET_ERROR"),msg:e.data?e.data.message||e.message||e:e.message||e})})},o.onInit=function(){e.isLoggedIn()&&a.go("app.dashboards.general");return i.setting.gdpr({id:1}).$promise.then(function(e){o.setting=e,o.passwordPattern=o.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:""}).catch(function(e){e&&n.error({title:"Error",msg:e.data?e.data.message||e.message||e:e.message||e})})}}e.$inject=["Auth","toasty","$translate","$state","api","$stateParams"],angular.module("app.reset").controller("ResetPasswordController",e)}(),function(){"use strict";function e(t,e,n,a,i,s,o){var r=this;function l(){e.hide()}r.errors=[],r.user=i,r.setting=s,r.reset=o,r.passwordPattern=r.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",r.savePassword=function(){r.errors=[],a.user.changePassword({id:r.user.id},{oldPassword:r.oldPassword,newPassword:r.password}).$promise.then(function(){n.show(n.simple().textContent("Your password properly updated").position("top right").hideDelay(5e3)),l()}).catch(function(e){console.error(e),r.errors=e.data.errors&&e.data.errors.length?e.data.errors:[{message:e.data.message||"Authorization error",type:"api.user.changePassword"}]})},r.closeDialog=l,t.$watch("vm.password",function(e,n){_.isNil(r.oldPassword)||(e===r.oldPassword?t.changePasswordForm.password.$setValidity("oldPasswordMatch",!1):t.changePasswordForm.password.$setValidity("oldPasswordMatch",!0))})}e.$inject=["$scope","$mdDialog","$mdToast","api","user","setting","reset"],angular.module("app.toolbar").controller("ChangePasswordController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l){var d=this;function c(e){_.isNil(e)&&s.cmHopper.update({id:d.preview.id,UserId:null}),a.hide()}d.customFieldsMap=l&&l.rows?_.mapValues(_.keyBy(l.rows,function(e){return"cf_"+e.id}),"name"):{},d.errors=[],d.hopperIds=[],d.preview=o,d.currentUser=r,d.originated=!1,d.disable=!1,d.disableGetContact=!1,d.hopperIds.push(d.preview.id),d.originatePreview=function(){d.originated=!0,d.disable=!0,_.isEmpty(d.preview)?(i.error({title:"Message",msg:"Contact not available"}),d.disable=!1,d.hopperIds=[],c(!0)):s.rpc.getVoiceQueuesPreview({id:d.preview.id}).$promise.then(function(e){c(!0)}).catch(function(e){i.error({title:"Message",msg:e.data}),c(!0)}).finally(function(){d.disable=!1,d.hopperIds=[]})},d.closeDialog=c,d.nextContact=function(){return d.disableGetContact=!0,s.cmHopper.getPreview({hopperIds:d.hopperIds,direction:"next"}).$promise.then(function(e){d.disableGetContact=!1,_.isNil(e)||_.isNil(e.Queue)||!e.Queue.dialActive?(d.hopperIds=[],a.hide(),i.info({title:"PREVIEW",msg:"CAMPAIGN NOT ACTIVE"})):(d.originated||s.cmHopper.update({id:d.preview.id,UserId:null}),d.preview=e,d.hopperIds.push(d.preview.id))}).catch(function(e){if(d.disableGetContact=!1,d.hopperIds=[],404===e.status)d.getFirstAvailableContact();else if(e.data&&e.data.errors&&e.data.errors.length){a.hide();for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else a.hide(),i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api preview",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},d.previousContact=function(){if(d.disableGetContact=!0,1<d.hopperIds.length){var e=_.without(d.hopperIds,d.preview.id);return s.cmHopper.getPreview({hopperIds:e,direction:"prev"}).$promise.then(function(e){d.disableGetContact=!1,_.isNil(e)||_.isNil(e.Queue)||!e.Queue.dialActive?(d.hopperIds=[],a.hide(),i.info({title:"PREVIEW",msg:"CAMPAIGN NOT ACTIVE"})):(_.remove(d.hopperIds,function(e){return e==d.preview.id}),d.originated||s.cmHopper.update({id:d.preview.id,UserId:null}),d.preview=e)}).catch(function(e){if(404===e.status)d.hopperIds=[d.preview.id],i.info({title:"PREVIEW",msg:"PREVIOUS CONTACTS NOT AVAILABLE"});else if(e.data&&e.data.errors&&e.data.errors.length){d.hopperIds=[],a.hide();for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.hopperIds=[],a.hide(),i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api preview",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}},d.getFirstAvailableContact=function(){return d.disableGetContact=!0,i.info({title:"PREVIEW",msg:"CONTACTS NOT AVAILABLE. REWINDING THE LIST"}),s.cmHopper.getPreview({hopperIds:[d.preview.id],direction:"next"}).$promise.then(function(e){_.isNil(e)||_.isNil(e.Queue)||!e.Queue.dialActive?(a.hide(),i.info({title:"PREVIEW",msg:"CAMPAIGN NOT ACTIVE"})):(d.originated||s.cmHopper.update({id:d.preview.id,UserId:null}),d.preview=e,d.hopperIds.push(d.preview.id))}).catch(function(e){if(a.hide(),404===e.status)i.info({title:"PREVIEW",msg:"CONTACTS NOT AVAILABLE"});else if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api preview",msg:e.data?JSON.stringify(e.data.message):e.toString()})}).finally(function(){d.disableGetContact=!1})},d.isCustomField=function(e){return _.startsWith(e,"cf_")},d.isHiddenField=function(e){return _.includes(["Company","CompanyId","ListId","UserId","createdAt","deletedAt","id","priority","scheduledat","tags","updatedAt","facebook","twitter","skype","wechat","teams","viber","line","telegram"],e)},d.isNil=function(e){return _.isNil(e)},e.$on("$destroy",function(){d.originated||s.cmHopper.update({id:d.preview.id,UserId:null})})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","api","preview","currentUser","customFields"],angular.module("app.toolbar").controller("PreviewDialogController",e)}(),function(){"use strict";function e(n,t,s,a,o,e,i,r,l,d,c,m,u,p,g,v,h,f,b,A,E,y){var S,T=this;T.voiceQueues={},T.polling=!0,t.global={search:""},T.pauses=[],T.license=b,T.currentUser=v.getCurrentUser(),T.unreadTotalMessages=0,T.unreadTotalGroupMessages=0,T.contacts=0,"agent"===T.currentUser.role&&(S=E(function(){_.some(T.voiceQueues,{dialMethod:"preview",dialActive:!0})&&T.license.dialer&&T.polling?(T.polling=!1,f.cmHopper.getOpenContacts().$promise.then(function(e){e&&_.isNumber(e.contacts)&&(T.contacts=e.contacts)}).finally(function(){T.polling=!0})):T.contacts=0},14999)),T.setting=A,T.bodyEl=angular.element("body"),T.conf={realm:"asterisk",host:e.host(),protocol:e.protocol(),soundPlayerId:"local-audio",remotePlayerId:"remote-audio",ua:"Motion WebRTC Bar 0.2.0",license:T.license.webrtc,phoneBarExpires:T.currentUser.phoneBarExpires,phoneBarPrefixRequired:T.currentUser.phoneBarPrefixRequired,wssPort:T.currentUser.wssPort},T.webRTCSessions=[],T.query={id:v.getCurrentUser().id,fields:"id,name,type,dialMethod,dialActive",channel:"voice",nolimit:!0},T.userStatusOptions=[{title:"Online",icon:"icon-checkbox-marked-circle",color:"#4CAF50"},{title:"Away",icon:"icon-clock",color:"#FFC107"},{title:"Do not Disturb",icon:"icon-minus-circle",color:"#F44336"},{title:"Invisible",icon:"icon-checkbox-blank-circle-outline",color:"#BDBDBD"},{title:"Offline",icon:"icon-checkbox-blank-circle-outline",color:"#616161"}],T.languages={ar:{title:"Arabic",translation:"TOOLBAR.ARABIC",code:"ar",flag:"ar"},da:{title:"Danish",translation:"TOOLBAR.DANISH",code:"da",flag:"da"},de:{title:"German",translation:"TOOLBAR.GERMAN",code:"de",flag:"de"},en:{title:"English",translation:"TOOLBAR.ENGLISH",code:"en",flag:"us"},es:{title:"Spanish",translation:"TOOLBAR.SPANISH",code:"es",flag:"es"},fa:{title:"Persian",translation:"TOOLBAR.PERSIAN",code:"fa",flag:"fa"},fi:{title:"Finnish",translation:"TOOLBAR.FINNISH",code:"fi",flag:"fi"},fr:{title:"French",translation:"TOOLBAR.FRENCH",code:"fr",flag:"fr"},he:{title:"Hebrew",translation:"TOOLBAR.HEBREW",code:"he",flag:"he"},hi:{title:"Hindi",translation:"TOOLBAR.HINDI",code:"hi",flag:"hi"},id:{title:"Indonesian",translation:"TOOLBAR.INDONESIAN",code:"id",flag:"id"},it:{title:"Italian",translation:"TOOLBAR.ITALIAN",code:"it",flag:"it"},ja:{title:"Japanese",translation:"TOOLBAR.JAPANESE",code:"ja",flag:"ja"},ko:{title:"Korean",translation:"TOOLBAR.KOREAN",code:"ko",flag:"ko"},lv:{title:"Latvian",translation:"TOOLBAR.LATVIAN",code:"lv",flag:"lv"},nl:{title:"Dutch",translation:"TOOLBAR.DUTCH",code:"nl",flag:"nl"},no:{title:"Norwegian",translation:"TOOLBAR.NORWEGIAN",code:"no",flag:"no"},pl:{title:"Polish",translation:"TOOLBAR.POLISH",code:"pl",flag:"pl"},"pt-BR":{title:"Brazilian",translation:"TOOLBAR.BRAZILIAN",code:"pt-BR",flag:"pt-BR"},"pt-PT":{title:"Portuguese",translation:"TOOLBAR.PORTUGUESE",code:"pt-PT",flag:"pt-PT"},ru:{title:"Russian",translation:"TOOLBAR.RUSSIAN",code:"ru",flag:"ru"},sv:{title:"Swedish",translation:"TOOLBAR.SWEDISH",code:"sv",flag:"sv"},tr:{title:"Turkish",translation:"TOOLBAR.TURKISH",code:"tr",flag:"tr"},"zh-CN":{title:"ChineseSimplified",translation:"TOOLBAR.CHINESESIMPLIFIED",code:"zh-CN",flag:"zh-CN"},"zh-TW":{title:"ChineseTraditional",translation:"TOOLBAR.CHINESETRADITIONAL",code:"zh-TW",flag:"zh-TW"}};var I=["ar","fa","he"];function C(){h.connect(),h.on("user:update",T.onUserUpdate),h.on("user:called",T.onUserCalled),h.on("chatInternalMessage:save",T.onInternalMessageSave),h.on("chatInternalMessage:update",T.onInternalMessageUpdate),h.on("userVoiceQueue:save",T.onUserVoiceQueue),h.on("voiceQueue:save",T.onVoiceQueue),h.on("userVoiceQueue:remove",T.onUserVoiceQueue),h.on("voiceQueue:remove",T.onVoiceQueue),h.on("voiceQueue:update",T.onVoiceQueue),h.on("user:forcelogout",D),h.on("userNotification:send",P)}function O(){h.disconnect("logout")}function w(e){T.voiceQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}function R(){T.promise=f.user.getQueues(T.query,w).$promise}function x(e){return O(),v.logout(e).then(function(){return t.$broadcast("webrtc::logout"),a.go("app.login")}).catch(function(e){console.error(e)})}function N(e,n){c.show({controller:"ChangePasswordController",controllerAs:"vm",templateUrl:"app/toolbar/changepassword/changepassword.html",parent:angular.element(m.body),targetEvent:e,clickOutsideToClose:!n,escapeToClose:!n,locals:{user:T.user,setting:A,reset:n}})}function D(e){if(console.debug("onForceLogout -> data",e),e.user.id===T.user.id&&0!==T.user.showWebBar)return O(),v.logout(!0).then(function(){t.$broadcast("webrtc::logout"),c.show(c.alert().parent(angular.element(m.body)).clickOutsideToClose(!1).escapeToClose(!1).title(r.instant("TOOLBAR.WARNING")).textContent(r.instant("TOOLBAR.USER_FORCE_LOGOUT",{ip:e.ip})).ok("OK")).then(function(){return a.go("app.login")})}).catch(function(e){console.error(e)})}function P(e){var n=e;if(T.currentUser.id===n.recipient){var t=r.instant("TOOLBAR.NOTIFICATION_TITLE",{sender:n.sender}),a=n.description?r.instant("TOOLBAR.NOTIFICATION_TITLE_RECIPIENT",{recipient:n.description}):null;p.wait({title:a?t+" "+a:t,msg:n.content,clickToClose:!1,timeout:!1,sound:n.beep,html:!0})}}T.toggleSidenav=function(e){i(e).toggle()},T.logout=x,T.changeLanguage=function(e){if(!T.languages.hasOwnProperty(e.code)){return void l.show({template:'<md-toast id="language-message" layout="column" layout-align="center start"><div class="md-toast-content">Motion supports multiple translations through angular-translate module, but currently we do not support the selected language. If you want to help us, send us a message.</div></md-toast>',hideDelay:7e3,position:"top right",parent:"#content"})}T.selectedLanguage=e,u.put("motion.language",e.code),r.use(e.code),"app.callysquare.projects.edit"===a.current.name&&d.location.reload();0<=I.indexOf(e.code)?p.info({title:r.instant("TOOLBAR.CHANGE_LANGUAGE_TITLE"),msg:r.instant("TOOLBAR.CHANGE_LANGUAGE_MESSAGE")}):n.$parent.$parent.vm.direction="ltr"},T.setUserStatus=function(e){T.userStatus=e},T.toggleHorizontalMobileMenu=function(){T.bodyEl.toggleClass("ms-navigation-horizontal-mobile-menu-active")},T.toggleMsNavigationFolded=function(){g.toggleFolded()},T.search=function(n){for(var e=[],t=g.getFlatNavigation(),a=s.defer(),i=0;i<t.length;i++)t[i].uisref&&e.push(t[i]);n&&(e=e.filter(function(e){if(-1<angular.lowercase(e.title).search(angular.lowercase(n)))return!0}));return o(function(){a.resolve(e)},1e3),a.promise},T.searchResultClick=function(e){e.uisref&&(e.stateParams?a.go(e.state,e.stateParams):a.go(e.state))},T.openSettings=function(e){t.$broadcast("webrtc::settings")},T.changePassword=N,T.isAgent=function(){return v.getCurrentUser()&&v.hasRole("agent")},T.onUserUpdate=function(e){if(e.id===T.user.id)if("agent"===e.role&&_.isBoolean(e.online)&&!e.online)if(0!==T.user.showWebBar){var t;O();var n=c.confirm({title:r.instant("TOOLBAR.WARNING")+"!",htmlContent:"<span>"+r.instant("TOOLBAR.SOMEONE_LOGGED_YOU_OUT")+"</span><br><span>"+r.instant("TOOLBAR.SESSION_TIMEOUT")+"</span>",ariaLabel:r.instant("TOOLBAR.WARNING")+"!",ok:r.instant("TOOLBAR.STAY_LOGGED"),cancel:r.instant("TOOLBAR.LOGOUT"),onComplete:function(e,n){t=setTimeout(function(){c.cancel()},6e4)}});c.show(n).then(function(){return clearTimeout(t),v.queueLogin().then(function(){C(),_.merge(T.user,e),v.setCurrentUser(T.user)})}).catch(function(e){clearTimeout(t),x(!0)})}else x(!0);else _.merge(T.user,e),v.setCurrentUser(T.user)},T.onUserCalled=function(e){if(2===T.currentUser.showWebBar&&"agent"===T.currentUser.role){var n=T.currentUser.privacyEnabled?y.mask(e.calleridnum):e.calleridnum;p.info({title:"WebRTC Popup",msg:"<div> <span>Call from: "+n+"</span><br> <span>Queue: "+e.queue+"</span><br> <span>Extra: "+(e.variables&&e.variables.extravar?e.variables.extravar:"Not defined")+"</span><br> </div>",showClose:!0,timeout:1e4,html:!0})}},T.pause=function(e){var n=e||"DEFAULT PAUSE";_.some(T.webRTCSessions,["confirmed",!0])&&(n="#"+n);return f.user.pause({id:T.user.id,type:n}).$promise.catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:PAUSEUSER",msg:e.status?JSON.stringify(e.data):e.toString()})})},T.unpause=function(){return f.user.unpause({id:T.user.id}).$promise.catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UNPAUSEUSER",msg:e.status?JSON.stringify(e.data):e.toString()})})},T.preview=function(n){return T.disable=!0,f.cmHopper.getPreview().$promise.then(function(e){_.isNil(e)||_.isNil(e.Queue)||!e.Queue.dialActive?p.info({title:"PREVIEW",msg:"CAMPAIGN NOT ACTIVE"}):c.show({controller:"PreviewDialogController",controllerAs:"vm",templateUrl:"app/toolbar/preview/dialog.html",parent:angular.element(m.body),targetEvent:n,clickOutsideToClose:!0,locals:{preview:e,currentUser:T.currentUser},resolve:{customFields:["apiResolver",function(e){return e.resolve("cmCustomField@get",{nolimit:!0})}]}})}).catch(function(e){if(404===e.status)p.info({title:"PREVIEW",msg:"CONTACT NOT AVAILABLE"});else if(e.data&&e.data.errors&&e.data.errors.length){T.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelMessage.accept"}];for(var n=0;n<e.data.errors.length;n+=1)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelMessage.accept",msg:e.data?JSON.stringify(e.data.message):e.toString()})}).finally(function(){T.disable=!1})},T.getLogo=function(){return T.setting.defaultHeaderWhiteLabel?"xCALLY Motion":T.setting.headerWhiteLabel},T.userIsNotPhonebar=function(){return"admin"===T.currentUser.role||"user"===T.currentUser.role||"agent"===T.currentUser.role&&0!==T.currentUser.showWebBar},T.onInternalMessageSave=function(e){e.ToId!==T.currentUser.id||e.ChatGroupId||(T.unreadTotalMessages+=1);e.ToId===T.currentUser.id&&e.FromId!==T.currentUser.id&&!e.read&&e.ChatGroupId&&T.unreadTotalGroupMessages++},T.onInternalMessageUpdate=function(e){e.ToId===T.currentUser.id&&e.read&&0<T.unreadTotalMessages&&!e.ChatGroupId&&(T.unreadTotalMessages-=1);e.ToId===T.currentUser.id&&e.read&&e.ChatGroupId&&0<T.unreadTotalGroupMessages&&T.unreadTotalGroupMessages--},T.onUserVoiceQueue=function(e){_.toInteger(e.UserId)===v.getCurrentUser().id&&R()},T.onVoiceQueue=function(e){R()},function(){T.user=v.getCurrentUser(),T.conf.ha1=T.user.md5secret,T.conf.id=T.user.id,T.conf.name=T.user.name,T.conf.fullname=T.user.fullname,T.conf.internal=T.user.internal,T.conf.recording=T.user.phoneBarEnableRecording,T.conf.autoAnswer=T.user.phoneBarAutoAnswer,T.conf.enableSettings=T.user.phoneBarEnableSettings,T.conf.enableDtmfTone=T.user.phoneBarEnableDtmfTone,T.conf.autoAnswerDelay=T.user.phoneBarAutoAnswerDelay,T.userStatus=T.userStatusOptions[0];var e=u.get("motion.language");e&&T.languages.hasOwnProperty(e)?T.selectedLanguage=T.languages[e]:T.selectedLanguage=T.languages[r.preferredLanguage()];if(f.pause.get({fields:"name",nolimit:!0}).$promise.then(function(e){T.pauses=e.rows?e.rows:[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETPAUSES",msg:e.status?JSON.stringify(e.data):e.toString()})}),"LOCAL_LOGIN"==v.getAuthenticationType()&&T.setting.securePassword)if(T.user.passwordResetAt){var n=moment(T.user.passwordResetAt).add(T.setting.passwordExpiresDays||90,"day");moment().isAfter(n)?N(null,!0):moment().add(15,"day").isAfter(n)&&p.warning({title:r.instant("TOOLBAR.WARNING")+"!",msg:r.instant("TOOLBAR.PASSWORD_EXPIRE_REMAINING_DAYS")+": "+Math.ceil(n.diff(moment(),"days",!0)),timeout:2e4})}else N(null,!0)}(),R(),C(),f.chatInternalMessage.get({fields:"FromId",ToId:T.currentUser.id,read:!1,nolimit:!0}).$promise.then(function(e){T.unreadTotalMessages=e.rows.length}),n.$on("$destroy",function(){h.removeAllListeners("user:called"),h.removeAllListeners("user:update"),h.removeAllListeners("chatInternalMessage:save"),h.removeAllListeners("chatInternalMessage:update"),h.removeAllListeners("userVoiceQueue:save"),h.removeAllListeners("voiceQueue:save"),h.removeAllListeners("userVoiceQueue:remove"),h.removeAllListeners("voiceQueue:remove"),h.removeAllListeners("voiceQueue:update"),h.removeAllListeners("user:forcelogout"),h.removeAllListeners("userNotification:send"),S&&(E.cancel(S),S=null)})}e.$inject=["$scope","$rootScope","$q","$state","$timeout","$location","$mdSidenav","$translate","$mdToast","$window","$mdDialog","$document","$cookies","toasty","msNavigationService","Auth","socket","api","license","setting","$interval","privacyManager"],angular.module("app.toolbar").controller("ToolbarController",e)}();var urlParams=function(e){var n=new Object,t=e.lastIndexOf("?");if(0<t)for(var a=e.substring(t+1).split("&"),i=0;i<a.length;i++)0<(t=a[i].indexOf("="))&&(n[a[i].substring(0,t)]=a[i].substring(t+1));return n}(window.location.href),t0=new Date,MAX_REQUEST_SIZE=10485760,MAX_WIDTH=12e3,MAX_HEIGHT=12e3,EXPORT_URL="http://exp.draw.io/ImageExport2/export",SHARE_HOST="http://localhost:3000",SAVE_URL="api/square/projects/",VARIABLE_URL="/api/variables",STENCIL_PATH="/assets/plugins/square/stencils",SHAPES_PATH="/assets/plugins/square/shapes",IMAGE_PATH="/assets/plugins/square/images",STYLE_PATH="/assets/plugins/square/styles",CSS_PATH="/assets/plugins/square/styles",OPEN_FORM="api/square/projects/open",TEMPLATE_PATH="/assets/plugins/square/templates",RESOURCES_PATH="/assets/plugins/square/resources",RESOURCE_BASE=RESOURCES_PATH+"/grapheditor",CRUD_PERMISSIONS={readOnly:!1,canEdit:!1,canDelete:!1},tapAndHoldStartsConnection=!0,showConnectorImg=!0,mxLoadResources=!1,mxLanguages=["it","fr","ko","es","sv","ru","de","ja","zh-CN","zh-TW","nl","fi","da","pt-BR","pt-PT","no","hi","tr","fa"],mxLanguage="en",match=document.cookie.match(new RegExp("(^| )motion.language=([^;]+)"));match&&mxLanguages.includes(match[2])&&(mxLanguage=match[2]);var mxBasePath="assets/plugins/mxgraph",mxClient={VERSION:"2.0.0.0",IS_IE:0<=navigator.userAgent.indexOf("MSIE"),IS_IE6:0<=navigator.userAgent.indexOf("MSIE 6"),IS_QUIRKS:0<=navigator.userAgent.indexOf("MSIE")&&(null==document.documentMode||5==document.documentMode),VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:0<=navigator.userAgent.indexOf("Mozilla/")&&navigator.userAgent.indexOf("MSIE")<0,IS_OP:0<=navigator.userAgent.indexOf("Opera/"),IS_OT:navigator.userAgent.indexOf("Presto/2.4.")<0&&navigator.userAgent.indexOf("Presto/2.3.")<0&&navigator.userAgent.indexOf("Presto/2.2.")<0&&navigator.userAgent.indexOf("Presto/2.1.")<0&&navigator.userAgent.indexOf("Presto/2.0.")<0&&navigator.userAgent.indexOf("Presto/1.")<0,IS_SF:0<=navigator.userAgent.indexOf("AppleWebKit/")&&navigator.userAgent.indexOf("Chrome/")<0,IS_GC:0<=navigator.userAgent.indexOf("Chrome/"),IS_MT:0<=navigator.userAgent.indexOf("Firefox/")&&navigator.userAgent.indexOf("Firefox/1.")<0&&navigator.userAgent.indexOf("Firefox/2.")<0||0<=navigator.userAgent.indexOf("Iceweasel/")&&navigator.userAgent.indexOf("Iceweasel/1.")<0&&navigator.userAgent.indexOf("Iceweasel/2.")<0||0<=navigator.userAgent.indexOf("SeaMonkey/")&&navigator.userAgent.indexOf("SeaMonkey/1.")<0||0<=navigator.userAgent.indexOf("Iceape/")&&navigator.userAgent.indexOf("Iceape/1.")<0,IS_SVG:0<=navigator.userAgent.indexOf("Firefox/")||0<=navigator.userAgent.indexOf("Iceweasel/")||0<=navigator.userAgent.indexOf("Seamonkey/")||0<=navigator.userAgent.indexOf("Iceape/")||0<=navigator.userAgent.indexOf("Galeon/")||0<=navigator.userAgent.indexOf("Epiphany/")||0<=navigator.userAgent.indexOf("AppleWebKit/")||0<=navigator.userAgent.indexOf("Gecko/")||0<=navigator.userAgent.indexOf("Opera/"),NO_FO:0<=navigator.userAgent.indexOf("Firefox/1.")||0<=navigator.userAgent.indexOf("Iceweasel/1.")||0<=navigator.userAgent.indexOf("Firefox/2.")||0<=navigator.userAgent.indexOf("Iceweasel/2.")||0<=navigator.userAgent.indexOf("SeaMonkey/1.")||0<=navigator.userAgent.indexOf("Iceape/1.")||0<=navigator.userAgent.indexOf("Camino/1.")||0<=navigator.userAgent.indexOf("Epiphany/2.")||0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("MSIE")||0<=navigator.userAgent.indexOf("Mozilla/2."),IS_VML:"MICROSOFT INTERNET EXPLORER"==navigator.appName.toUpperCase(),IS_MAC:0<navigator.userAgent.toUpperCase().indexOf("MACINTOSH"),IS_TOUCH:0<navigator.userAgent.toUpperCase().indexOf("IPAD")||0<navigator.userAgent.toUpperCase().indexOf("IPOD")||0<navigator.userAgent.toUpperCase().indexOf("IPHONE")||0<navigator.userAgent.toUpperCase().indexOf("ANDROID"),IS_LOCAL:document.location.href.indexOf("http://")<0&&document.location.href.indexOf("https://")<0,isBrowserSupported:function(){return mxClient.IS_VML||mxClient.IS_SVG},link:function(e,n,t){if(t=t||document,mxClient.IS_IE6)t.write('<link rel="'+e+'" href="'+n+'" charset="ISO-8859-1" type="text/css"/>');else{var a=t.createElement("link");a.setAttribute("rel",e),a.setAttribute("href",n),a.setAttribute("charset","ISO-8859-1"),a.setAttribute("type","text/css"),t.getElementsByTagName("head")[0].appendChild(a)}},include:function(e){document.write('<script src="'+e+'"><\/script>')},dispose:function(){for(var e=0;e<mxEvent.objects.length;e++)null!=mxEvent.objects[e].mxListenerList&&mxEvent.removeAllListeners(mxEvent.objects[e])}};if(mxClient.IS_OP&&mxClient.IS_OT?mxClient.CSS_PREFIX="O":mxClient.IS_SF||mxClient.IS_GC?mxClient.CSS_PREFIX="Webkit":mxClient.IS_MT?mxClient.CSS_PREFIX="Moz":mxClient.IS_IE&&9<=document.documentMode&&(mxClient.CSS_PREFIX="ms"),void 0===mxLoadResources&&(mxLoadResources=!0),"undefined"==typeof mxResourceExtension&&(mxResourceExtension=".txt"),"undefined"==typeof mxLoadStylesheets&&(mxLoadStylesheets=!0),void 0!==mxBasePath&&0<mxBasePath.length?("/"==mxBasePath.substring(mxBasePath.length-1)&&(mxBasePath=mxBasePath.substring(0,mxBasePath.length-1)),mxClient.basePath=mxBasePath):mxClient.basePath=".","undefined"!=typeof mxImageBasePath&&0<mxImageBasePath.length?("/"==mxImageBasePath.substring(mxImageBasePath.length-1)&&(mxImageBasePath=mxImageBasePath.substring(0,mxImageBasePath.length-1)),mxClient.imageBasePath=mxImageBasePath):mxClient.imageBasePath=mxClient.basePath+"/images",mxClient.language=void 0!==mxLanguage?mxLanguage:mxClient.IS_IE?navigator.userLanguage:navigator.language,mxClient.defaultLanguage="undefined"!=typeof mxDefaultLanguage?mxDefaultLanguage:"en",mxLoadStylesheets&&mxClient.link("stylesheet",mxClient.basePath+"/css/common.css"),void 0!==mxLanguages&&(mxClient.languages=mxLanguages),mxClient.IS_IE){if(9<=document.documentMode)mxClient.IS_VML=!1,mxClient.IS_SVG=!0;else{8==document.documentMode?(document.namespaces.add(mxClient.VML_PREFIX,"urn:schemas-microsoft-com:vml","#default#VML"),document.namespaces.add(mxClient.OFFICE_PREFIX,"urn:schemas-microsoft-com:office:office","#default#VML")):(document.namespaces.add(mxClient.VML_PREFIX,"urn:schemas-microsoft-com:vml"),document.namespaces.add(mxClient.OFFICE_PREFIX,"urn:schemas-microsoft-com:office:office"));var ss=document.createStyleSheet();ss.cssText="v\\:*{behavior:url(#default#VML)}o\\:*{behavior:url(#default#VML)}",mxLoadStylesheets&&mxClient.link("stylesheet",mxClient.basePath+"/css/explorer.css")}window.attachEvent("onunload",mxClient.dispose)}var mxLog={consoleName:"Console",TRACE:!1,DEBUG:!0,WARN:!0,buffer:"",init:function(){if(null==mxLog.window&&null!=document.body){var e=mxLog.consoleName+" - mxGraph "+mxClient.VERSION,n=document.createElement("table");n.setAttribute("width","100%"),n.setAttribute("height","100%");var t=document.createElement("tbody"),a=document.createElement("tr"),i=document.createElement("td");if(i.style.verticalAlign="top",mxLog.textarea=document.createElement("textarea"),mxLog.textarea.setAttribute("readOnly","true"),mxLog.textarea.style.height="100%",mxLog.textarea.style.resize="none",mxLog.textarea.value=mxLog.buffer,mxLog.textarea.style.width=mxClient.IS_NS&&"BackCompat"!=document.compatMode?"99%":"100%",i.appendChild(mxLog.textarea),a.appendChild(i),t.appendChild(a),a=document.createElement("tr"),mxLog.td=document.createElement("td"),mxLog.td.style.verticalAlign="top",mxLog.td.setAttribute("height","30px"),a.appendChild(mxLog.td),t.appendChild(a),n.appendChild(t),mxLog.addButton("Info",function(e){mxLog.info()}),mxLog.addButton("DOM",function(e){e=mxUtils.getInnerHtml(document.body),mxLog.debug(e)}),mxLog.addButton("Trace",function(e){mxLog.TRACE=!mxLog.TRACE,mxLog.TRACE?mxLog.debug("Tracing enabled"):mxLog.debug("Tracing disabled")}),mxLog.addButton("Copy",function(e){try{mxUtils.copy(mxLog.textarea.value)}catch(e){mxUtils.alert(e)}}),mxLog.addButton("Show",function(e){try{mxUtils.popup(mxLog.textarea.value)}catch(e){mxUtils.alert(e)}}),mxLog.addButton("Clear",function(e){mxLog.textarea.value=""}),a=t=0,a="number"==typeof window.innerWidth?(t=window.innerHeight,window.innerWidth):(t=document.documentElement.clientHeight||document.body.clientHeight,document.body.clientWidth),mxLog.window=new mxWindow(e,n,Math.max(0,a-320),Math.max(0,t-210),300,160),mxLog.window.setMaximizable(!0),mxLog.window.setScrollable(!1),mxLog.window.setResizable(!0),mxLog.window.setClosable(!0),mxLog.window.destroyOnClose=!1,(mxClient.IS_NS||mxClient.IS_IE)&&!mxClient.IS_GC&&!mxClient.IS_SF&&"BackCompat"!=document.compatMode){var s=mxLog.window.getElement();e=function(e,n){mxLog.textarea.style.height=Math.max(0,s.offsetHeight-70)+"px"};mxLog.window.addListener(mxEvent.RESIZE_END,e),mxLog.window.addListener(mxEvent.MAXIMIZE,e),mxLog.window.addListener(mxEvent.NORMALIZE,e),mxLog.textarea.style.height="92px"}}},info:function(){mxLog.writeln(mxUtils.toString(navigator))},addButton:function(e,n){var t=document.createElement("button");mxUtils.write(t,e),mxEvent.addListener(t,"click",n),mxLog.td.appendChild(t)},isVisible:function(){return null!=mxLog.window&&mxLog.window.isVisible()},show:function(){mxLog.setVisible(!0)},setVisible:function(e){null==mxLog.window&&mxLog.init(),null!=mxLog.window&&mxLog.window.setVisible(e)},enter:function(e){if(mxLog.TRACE)return mxLog.writeln("Entering "+e),(new Date).getTime()},leave:function(e,n){if(mxLog.TRACE){var t=0!=n?" ("+((new Date).getTime()-n)+" ms)":"";mxLog.writeln("Leaving "+e+t)}},debug:function(){mxLog.DEBUG&&mxLog.writeln.apply(this,arguments)},warn:function(){mxLog.WARN&&mxLog.writeln.apply(this,arguments)},write:function(){for(var e="",n=0;n<arguments.length;n++)e+=arguments[n],n<arguments.length-1&&(e+=" ");null!=mxLog.textarea?(mxLog.textarea.value+=e,0<=navigator.userAgent.indexOf("Presto/2.5")&&(mxLog.textarea.style.visibility="hidden",mxLog.textarea.style.visibility="visible"),mxLog.textarea.scrollTop=mxLog.textarea.scrollHeight):mxLog.buffer+=e},writeln:function(){for(var e="",n=0;n<arguments.length;n++)e+=arguments[n],n<arguments.length-1&&(e+=" ");mxLog.write(e+"\n")}},mxObjectIdentity={FIELD_NAME:"mxObjectId",counter:0,get:function(e){if("object"==typeof e&&null==e[mxObjectIdentity.FIELD_NAME]){var n=mxUtils.getFunctionName(e.constructor);e[mxObjectIdentity.FIELD_NAME]=n+"#"+mxObjectIdentity.counter++}return e[mxObjectIdentity.FIELD_NAME]},clear:function(e){"object"==typeof e&&delete e[mxObjectIdentity.FIELD_NAME]}};function mxDictionary(){this.clear()}mxDictionary.prototype.map=null,mxDictionary.prototype.clear=function(){this.map={}},mxDictionary.prototype.get=function(e){return e=mxObjectIdentity.get(e),this.map[e]},mxDictionary.prototype.put=function(e,n){var t=mxObjectIdentity.get(e),a=this.map[t];return this.map[t]=n,a},mxDictionary.prototype.remove=function(e){e=mxObjectIdentity.get(e);var n=this.map[e];return delete this.map[e],n},mxDictionary.prototype.getKeys=function(){var e,n=[];for(e in this.map)n.push(e);return n},mxDictionary.prototype.getValues=function(){var e,n=[];for(e in this.map)n.push(this.map[e]);return n},mxDictionary.prototype.visit=function(e){for(var n in this.map)e(n,this.map[n])};var mxResources={resources:[],extension:mxResourceExtension,resourcesEncoded:!1,loadDefaultBundle:!0,loadSpecialBundle:!0,isLanguageSupported:function(e){return null==mxClient.languages||0<=mxUtils.indexOf(mxClient.languages,e)},getDefaultBundle:function(e,n){return mxResources.loadDefaultBundle||!mxResources.isLanguageSupported(n)?e+mxResources.extension:null},getSpecialBundle:function(e,n){if(null==mxClient.languages||!this.isLanguageSupported(n)){var t=n.indexOf("-");0<t&&(n=n.substring(0,t))}return mxResources.loadSpecialBundle&&mxResources.isLanguageSupported(n)&&n!=mxClient.defaultLanguage?e+"_"+n+mxResources.extension:null},add:function(e,n){if((n=null!=n?n:mxClient.language)!=mxConstants.NONE){var t=mxResources.getDefaultBundle(e,n);if(null!=t)try{var a=mxUtils.load(t);a.isReady()&&mxResources.parse(a.getText())}catch(e){}if(null!=(t=mxResources.getSpecialBundle(e,n)))try{(a=mxUtils.load(t)).isReady()&&mxResources.parse(a.getText())}catch(e){}}},parse:function(e){if(null!=e){e=e.split("\n");for(var n=0;n<e.length;n++)if("#"!=e[n].charAt(0)){var t=e[n].indexOf("=");if(0<t){var a=e[n].substring(0,t),i=e[n].length;13==e[n].charCodeAt(i-1)&&i--,t=e[n].substring(t+1,i),this.resourcesEncoded?(t=t.replace(/\\(?=u[a-fA-F\d]{4})/g,"%"),mxResources.resources[a]=unescape(t)):mxResources.resources[a]=t}}}},get:function(e,n,t){if(null==(e=mxResources.resources[e])&&(e=t),null!=e&&null!=n){t=[];for(var a=null,i=0;i<e.length;i++){var s=e.charAt(i);"{"==s?a="":null!=a&&"}"==s?(0<=(a=parseInt(a)-1)&&a<n.length&&t.push(n[a]),a=null):null!=a?a+=s:t.push(s)}e=t.join("")}return e}};function mxPoint(e,n){this.x=null!=e?e:0,this.y=null!=n?n:0}function mxRectangle(e,n,t,a){mxPoint.call(this,e,n),this.width=null!=t?t:0,this.height=null!=a?a:0}mxPoint.prototype.x=null,mxPoint.prototype.y=null,mxPoint.prototype.equals=function(e){return e.x==this.x&&e.y==this.y},mxPoint.prototype.clone=function(){return mxUtils.clone(this)},mxRectangle.prototype=new mxPoint,mxRectangle.prototype.constructor=mxRectangle,mxRectangle.prototype.width=null,mxRectangle.prototype.height=null,mxRectangle.prototype.setRect=function(e,n,t,a){this.x=e,this.y=n,this.width=t,this.height=a},mxRectangle.prototype.getCenterX=function(){return this.x+this.width/2},mxRectangle.prototype.getCenterY=function(){return this.y+this.height/2},mxRectangle.prototype.add=function(e){if(null!=e){var n=Math.min(this.x,e.x),t=Math.min(this.y,e.y),a=Math.max(this.x+this.width,e.x+e.width);e=Math.max(this.y+this.height,e.y+e.height),this.x=n,this.y=t,this.width=a-n,this.height=e-t}},mxRectangle.prototype.grow=function(e){this.x-=e,this.y-=e,this.width+=2*e,this.height+=2*e},mxRectangle.prototype.getPoint=function(){return new mxPoint(this.x,this.y)},mxRectangle.prototype.equals=function(e){return e.x==this.x&&e.y==this.y&&e.width==this.width&&e.height==this.height};var mxEffects={animateChanges:function(l,d,c){var m=0,u=function(){for(var e=!1,n=0;n<d.length;n++){var t=d[n];if(t instanceof mxGeometryChange||t instanceof mxTerminalChange||t instanceof mxValueChange||t instanceof mxChildChange||t instanceof mxStyleChange){var a=l.getView().getState(t.cell||t.child,!1);if(null!=a)if(e=!0,t.constructor!=mxGeometryChange||l.model.isEdge(t.cell))mxUtils.setOpacity(a.shape.node,100*m/10);else{var i=l.getView().scale,s=(t.geometry.x-t.previous.x)*i,o=(t.geometry.y-t.previous.y)*i,r=(t.geometry.width-t.previous.width)*i;i=(t.geometry.height-t.previous.height)*i;0==m?(a.x-=s,a.y-=o,a.width-=r,a.height-=i):(a.x+=s/10,a.y+=o/10,a.width+=r/10,a.height+=i/10),l.cellRenderer.redraw(a),mxEffects.cascadeOpacity(l,t.cell,100*m/10)}}}m<10&&e?(m++,window.setTimeout(u,p)):null!=c&&c()},p=30;u()},cascadeOpacity:function(e,n,t){for(var a=e.model.getChildCount(n),i=0;i<a;i++){var s=e.model.getChildAt(n,i),o=e.getView().getState(s);null!=o&&(mxUtils.setOpacity(o.shape.node,t),mxEffects.cascadeOpacity(e,s,t))}if(null!=(n=e.model.getEdges(n)))for(i=0;i<n.length;i++)null!=(a=e.getView().getState(n[i]))&&mxUtils.setOpacity(a.shape.node,t)},fadeOut:function(e,n,t,a,i,s){a=a||40,i=i||30;var o=n||100;if(mxUtils.setOpacity(e,o),s||null==s){var r=function(){o=Math.max(o-a,0),mxUtils.setOpacity(e,o),0<o?window.setTimeout(r,i):(e.style.visibility="hidden",t&&e.parentNode&&e.parentNode.removeChild(e))};window.setTimeout(r,i)}else e.style.visibility="hidden",t&&e.parentNode&&e.parentNode.removeChild(e)}},mxUtils={errorResource:"none"!=mxClient.language?"error":"",closeResource:"none"!=mxClient.language?"close":"",errorImage:mxClient.imageBasePath+"/error.gif",removeCursors:function(e){if(null!=e.style&&(e.style.cursor=""),null!=(e=e.childNodes))for(var n=e.length,t=0;t<n;t+=1)mxUtils.removeCursors(e[t])},getCurrentStyle:mxClient.IS_IE?function(e){return null!=e?e.currentStyle:null}:function(e){return null!=e?window.getComputedStyle(e,""):null},hasScrollbars:function(e){return null!=(e=mxUtils.getCurrentStyle(e))&&("scroll"==e.overflow||"auto"==e.overflow)},bind:function(e,n){return function(){return n.apply(e,arguments)}},eval:function(a){var b=null;if(0<=a.indexOf("function"))try{eval("var _mxJavaScriptExpression="+a),b=_mxJavaScriptExpression,_mxJavaScriptExpression=null}catch(e){mxLog.warn(e.message+" while evaluating "+a)}else try{b=eval(a)}catch(e){mxLog.warn(e.message+" while evaluating "+a)}return b},findNode:function(e,n,t){var a=e.getAttribute(n);if(null!=a&&a==t)return e;for(e=e.firstChild;null!=e;){if(null!=(a=mxUtils.findNode(e,n,t)))return a;e=e.nextSibling}return null},findNodeByAttribute:9<=document.documentMode?function(e,n,t){var a=null;if(null!=e)if(e.nodeType==mxConstants.NODETYPE_ELEMENT&&e.getAttribute(n)==t)a=e;else for(e=e.firstChild;null!=e&&null==a;)a=mxUtils.findNodeByAttribute(e,n,t),e=e.nextSibling;return a}:mxClient.IS_IE?function(e,n,t){return null==e?null:e.ownerDocument.selectSingleNode("//*[@"+n+"='"+t+"']")}:function(e,n,t){return null==e?null:e.ownerDocument.evaluate("//*[@"+n+"='"+t+"']",e.ownerDocument,null,XPathResult.ANY_TYPE,null).iterateNext()},getFunctionName:function(e){var n=null;if(null!=e)if(null!=e.name)n=e.name;else{for(e=e.toString(),n=9;" "==e.charAt(n);)n++;var t=e.indexOf("(",n);n=e.substring(n,t)}return n},indexOf:function(e,n){if(null!=e&&null!=n)for(var t=0;t<e.length;t++)if(e[t]==n)return t;return-1},remove:function(e,n){var t=null;if("object"==typeof n)for(var a=mxUtils.indexOf(n,e);0<=a;)n.splice(a,1),t=e,a=mxUtils.indexOf(n,e);for(var i in n)n[i]==e&&(delete n[i],t=e);return t},isNode:function(e,n,t,a){return!(null==e||isNaN(e.nodeType)||null!=n&&e.nodeName.toLowerCase()!=n.toLowerCase())&&(null==t||e.getAttribute(t)==a)},getChildNodes:function(e,n){n=n||mxConstants.NODETYPE_ELEMENT;for(var t=[],a=e.firstChild;null!=a;)a.nodeType==n&&t.push(a),a=a.nextSibling;return t},createXmlDocument:function(){var e=null;return document.implementation&&document.implementation.createDocument?e=document.implementation.createDocument("","",null):window.ActiveXObject&&(e=new ActiveXObject("Microsoft.XMLDOM")),e},parseXml:mxClient.IS_IE&&(void 0===document.documentMode||document.documentMode<9)?function(e){var n=mxUtils.createXmlDocument();return n.async="false",n.loadXML(e),n}:function(e){return(new DOMParser).parseFromString(e,"text/xml")},clearSelection:document.selection?function(){document.selection.empty()}:window.getSelection?function(){window.getSelection().removeAllRanges()}:void 0,getPrettyXml:function(e,n,t){var a=[];if(null!=e)if(n=n||" ",t=t||"",e.nodeType==mxConstants.NODETYPE_TEXT)a.push(e.nodeValue);else{a.push(t+"<"+e.nodeName);var i=e.attributes;if(null!=i)for(var s=0;s<i.length;s++){var o=mxUtils.htmlEntities(i[s].nodeValue);a.push(" "+i[s].nodeName+'="'+o+'"')}if(null!=(i=e.firstChild)){for(a.push(">\n");null!=i;)a.push(mxUtils.getPrettyXml(i,n,t+n)),i=i.nextSibling;a.push(t+"</"+e.nodeName+">\n")}else a.push("/>\n")}return a.join("")},removeWhitespace:function(e,n){for(var t=n?e.previousSibling:e.nextSibling;null!=t&&t.nodeType==mxConstants.NODETYPE_TEXT;){var a=n?t.previousSibling:t.nextSibling,i=mxUtils.getTextContent(t);0==mxUtils.trim(i).length&&t.parentNode.removeChild(t),t=a}},htmlEntities:function(e,n){return e=(e=(e=(e=(e=(e||"").replace(/&/g,"&")).replace(/"/g,""")).replace(/\'/g,"'")).replace(/</g,"<")).replace(/>/g,">"),(null==n||n)&&(e=e.replace(/\n/g,"
")),e},isVml:function(e){return null!=e&&"urn:schemas-microsoft-com:vml"==e.tagUrn},getXml:function(e,n){var t="";return null!=e&&(t=null==(t=e.xml)?e.innerHTML?e.innerHTML:(new XMLSerializer).serializeToString(e):t.replace(/\r\n\t[\t]*/g,"").replace(/>\r\n/g,">").replace(/\r\n/g,"\n")),t.replace(/\n/g,n||"
")},getTextContent:function(e){var n="";return null!=e&&(null!=e.firstChild&&(e=e.firstChild),n=e.nodeValue||""),n},getInnerHtml:mxClient.IS_IE?function(e){return null!=e?e.innerHTML:""}:function(e){return null!=e?(new XMLSerializer).serializeToString(e):""},getOuterHtml:mxClient.IS_IE?function(e){if(null==e)return"";if(null!=e.outerHTML)return e.outerHTML;var n=[];n.push("<"+e.nodeName);var t=e.attributes;if(null!=t)for(var a=0;a<t.length;a++){var i=t[a].nodeValue;null!=i&&0<i.length&&(n.push(" "),n.push(t[a].nodeName),n.push('="'),n.push(i),n.push('"'))}return 0==e.innerHTML.length?n.push("/>"):(n.push(">"),n.push(e.innerHTML),n.push("</"+e.nodeName+">")),n.join("")}:function(e){return null!=e?(new XMLSerializer).serializeToString(e):""},write:function(e,n){var t=e.ownerDocument.createTextNode(n);return null!=e&&e.appendChild(t),t},writeln:function(e,n){var t=e.ownerDocument.createTextNode(n);return null!=e&&(e.appendChild(t),e.appendChild(document.createElement("br"))),t},br:function(e,n){n=n||1;for(var t=null,a=0;a<n;a++)null!=e&&(t=e.ownerDocument.createElement("br"),e.appendChild(t));return t},button:function(e,n,t){return t=(t=null!=t?t:document).createElement("button"),mxUtils.write(t,e),mxEvent.addListener(t,"click",function(e){n(e)}),t},para:function(e,n){var t=document.createElement("p");return mxUtils.write(t,n),null!=e&&e.appendChild(t),t},addTransparentBackgroundFilter:function(e){e.style.filter+="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+mxClient.imageBasePath+"/transparent.gif', sizingMethod='scale')"},linkAction:function(e,n,t,a,i){return mxUtils.link(e,n,function(){t.execute(a)},i)},linkInvoke:function(e,n,t,a,i,s){return mxUtils.link(e,n,function(){t[a](i)},s)},link:function(e,n,t,a){var i=document.createElement("span");return i.style.color="blue",i.style.textDecoration="underline",i.style.cursor="pointer",null!=a&&(i.style.paddingLeft=a+"px"),mxEvent.addListener(i,"click",t),mxUtils.write(i,n),null!=e&&e.appendChild(i),i},fit:function(e){var n=parseInt(e.offsetLeft),t=parseInt(e.offsetWidth),a=document.body,i=document.documentElement,s=(a.scrollLeft||i.scrollLeft)+(a.clientWidth||i.clientWidth);s<n+t&&(e.style.left=Math.max(a.scrollLeft||i.scrollLeft,s-t)+"px"),n=parseInt(e.offsetTop),t=parseInt(e.offsetHeight),(s=(a.scrollTop||i.scrollTop)+Math.max(a.clientHeight||0,i.clientHeight))<n+t&&(e.style.top=Math.max(a.scrollTop||i.scrollTop,s-t)+"px")},open:function(e){if(mxClient.IS_NS){try{netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect")}catch(e){return mxUtils.alert("Permission to read file denied."),""}var n=Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);return n.initWithPath(e),n.exists()?((e=Components.classes["@mozilla.org/network/file-input-stream;1"].createInstance(Components.interfaces.nsIFileInputStream)).init(n,1,4,null),(n=Components.classes["@mozilla.org/scriptableinputstream;1"].createInstance(Components.interfaces.nsIScriptableInputStream)).init(e),n.read(n.available())):(mxUtils.alert("File not found."),"")}return e=(n=new ActiveXObject("Scripting.FileSystemObject").OpenTextFile(e,1)).readAll(),n.close(),e},save:function(e,n){if(mxClient.IS_NS){try{netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect")}catch(e){return void mxUtils.alert("Permission to write file denied.")}var t=Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);t.initWithPath(e),t.exists()||t.create(0,420);var a=Components.classes["@mozilla.org/network/file-output-stream;1"].createInstance(Components.interfaces.nsIFileOutputStream);a.init(t,34,4,null),a.write(n,n.length),a.flush(),a.close()}else(t=new ActiveXObject("Scripting.FileSystemObject").CreateTextFile(e,!0)).Write(n),t.Close()},saveAs:function(e){var n=document.createElement("iframe");n.setAttribute("src",""),n.style.visibility="hidden",document.body.appendChild(n);try{if(mxClient.IS_NS){var t=n.contentDocument;t.open(),t.write(e),t.close();try{netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"),n.focus(),saveDocument(t)}catch(e){mxUtils.alert("Permission to save document denied.")}}else(t=n.contentWindow.document).write(e),t.execCommand("SaveAs",!1,document.location)}finally{document.body.removeChild(n)}},copy:function(e){if(window.clipboardData)window.clipboardData.setData("Text",e);else{netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");var n=Components.classes["@mozilla.org/widget/clipboard;1"].createInstance(Components.interfaces.nsIClipboard);if(n){var t=Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable);if(t){t.addDataFlavor("text/unicode");var a=Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);a.data=e,t.setTransferData("text/unicode",a,2*e.length),n.setData(t,null,Components.interfaces.nsIClipboard.kGlobalClipboard)}}}},load:function(e){return(e=new mxXmlRequest(e,null,"GET",!1)).send(),e},get:function(e,n,t){return new mxXmlRequest(e,null,"GET").send(n,t)},post:function(e,n,t,a){return new mxXmlRequest(e,n).send(t,a)},submit:function(e,n,t,a){return new mxXmlRequest(e,n).simulate(t,a)},loadInto:function(e,n,t){mxClient.IS_IE?n.onreadystatechange=function(){4==n.readyState&&t()}:n.addEventListener("load",t,!1),n.load(e)},getValue:function(e,n,t){return null==(e=null!=e?e[n]:null)&&(e=t),e},getNumber:function(e,n,t){return null==(e=null!=e?e[n]:null)&&(e=t||0),Number(e)},getColor:function(e,n,t){return null==(e=null!=e?e[n]:null)?e=t:e==mxConstants.NONE&&(e=null),e},clone:function(e,n,t){t=null!=t&&t;var a=null;if(null!=e&&"function"==typeof e.constructor){var i;a=new e.constructor;for(i in e)i!=mxObjectIdentity.FIELD_NAME&&(null==n||mxUtils.indexOf(n,i)<0)&&(a[i]=t||"object"!=typeof e[i]?e[i]:mxUtils.clone(e[i]))}return a},equalPoints:function(e,n){if(null==e&&null!=n||null!=e&&null==n||null!=e&&null!=n&&e.length!=n.length)return!1;if(null!=e&&null!=n)for(var t=0;t<e.length;t++)if(e[t]==n[t]||null!=e[t]&&!e[t].equals(n[t]))return!1;return!0},equalEntries:function(e,n){if(null==e&&null!=n||null!=e&&null==n||null!=e&&null!=n&&e.length!=n.length)return!1;if(null!=e&&null!=n)for(var t in e)if(e[t]!=n[t])return!1;return!0},extend:function(e,n){var t=function(){};t.prototype=n.prototype,e.prototype=new t,e.prototype.constructor=e},toString:function(e){var n,t="";for(n in e)try{if(null==e[n])t+=n+" = [null]\n";else if("function"==typeof e[n])t+=n+" => [Function]\n";else if("object"==typeof e[n])t=t+(n+" => [")+mxUtils.getFunctionName(e[n].constructor)+"]\n";else t+=n+" = "+e[n]+"\n"}catch(e){t+=n+"="+e.message}return t},toRadians:function(e){return Math.PI*e/180},arcToCurves:function(e,n,t,a,i,s,o,r,l){if(r-=e,l-=n,0===t||0===a)return h;t=Math.abs(t),a=Math.abs(a);var d=-r/2,c=-l/2,m=Math.cos(i*Math.PI/180);i=m*d+(h=Math.sin(i*Math.PI/180))*c;d=-1*h*d+m*c;r=m*(c=(s=1<(v=(c=i*i)/(g=t*t)+(p=d*d)/(A=a*a))?(t*=Math.sqrt(v),a*=Math.sqrt(v),0):(v=1,s===o&&(v=-1),v*Math.sqrt((g*A-g*p-A*c)/(g*p+A*c))))*t*d/a)-h*(p=-1*s*a*i/t)+r/2,l=h*c+m*p+l/2,s=0<=(g=Math.atan2((d-p)/a,(i-c)/t)-Math.atan2(0,1))?g:2*Math.PI+g,i=0<=(g=Math.atan2((-d-p)/a,(-i-c)/t)-Math.atan2((d-p)/a,(i-c)/t))?g:2*Math.PI+g,0==o&&0<i?i-=2*Math.PI:0!=o&&i<0&&(i+=2*Math.PI),o=2*i/Math.PI,i/=o=Math.ceil(o<0?-1*o:o),d=8/3*Math.sin(i/4)*Math.sin(i/4)/Math.sin(i/2),c=m*t,m*=a,t*=h,a*=h;for(var u=Math.cos(s),p=-d*(c*(b=Math.sin(s))+a*u),g=-d*(t*b-m*u),v=A=0,h=[],f=0;f<o;++f){s+=i;var b,A=c*(u=Math.cos(s))-a*(b=Math.sin(s))+r,E=(v=t*u+m*b+l,-d*(c*b+a*u));u=-d*(t*b-m*u);h[b=6*f]=Number(p+e),h[b+1]=Number(g+n),h[b+2]=Number(A-E+e),h[b+3]=Number(v-u+n),h[b+4]=Number(A+e),h[b+5]=Number(v+n),p=A+E,g=v+u}return h},getBoundingBox:function(e,n){var t=null;if(null!=e&&null!=n&&0!=n){var a=mxUtils.toRadians(n),i=(t=Math.cos(a),Math.sin(a)),s=new mxPoint(e.x+e.width/2,e.y+e.height/2),o=new mxPoint(e.x,e.y),r=new mxPoint((a=new mxPoint(e.x+e.width,e.y)).x,e.y+e.height),l=new mxPoint(e.x,r.y);o=mxUtils.getRotatedPoint(o,t,i,s),a=mxUtils.getRotatedPoint(a,t,i,s),r=mxUtils.getRotatedPoint(r,t,i,s),l=mxUtils.getRotatedPoint(l,t,i,s);(t=new mxRectangle(o.x,o.y,0,0)).add(new mxRectangle(a.x,a.y,0,0)),t.add(new mxRectangle(r.x,r.y,0,0)),t.add(new mxRectangle(l.x,l.y,0,0))}return t},getRotatedPoint:function(e,n,t,a){a=null!=a?a:new mxPoint;var i=e.x-a.x;return new mxPoint(i*n-(e=e.y-a.y)*t+a.x,e*n+i*t+a.y)},getPortConstraints:function(e,n,t,a){return null==(e=mxUtils.getValue(e.style,mxConstants.STYLE_PORT_CONSTRAINT,null))?a:(a=e.toString(),e=mxConstants.DIRECTION_MASK_NONE,0<=a.indexOf(mxConstants.DIRECTION_NORTH)&&(e|=mxConstants.DIRECTION_MASK_NORTH),0<=a.indexOf(mxConstants.DIRECTION_WEST)&&(e|=mxConstants.DIRECTION_MASK_WEST),0<=a.indexOf(mxConstants.DIRECTION_SOUTH)&&(e|=mxConstants.DIRECTION_MASK_SOUTH),0<=a.indexOf(mxConstants.DIRECTION_EAST)&&(e|=mxConstants.DIRECTION_MASK_EAST),e)},reversePortConstraints:function(e){return(e&mxConstants.DIRECTION_MASK_WEST)<<3|(e&mxConstants.DIRECTION_MASK_NORTH)<<1|(e&mxConstants.DIRECTION_MASK_SOUTH)>>1|(e&mxConstants.DIRECTION_MASK_EAST)>>3},findNearestSegment:function(e,n,t){var a=-1;if(0<e.absolutePoints.length)for(var i=e.absolutePoints[0],s=null,o=1;o<e.absolutePoints.length;o++){var r=e.absolutePoints[o];i=mxUtils.ptSegDistSq(i.x,i.y,r.x,r.y,n,t);(null==s||i<s)&&(s=i,a=o-1),i=r}return a},rectangleIntersectsSegment:function(e,n,t){var a=e.y,i=e.x,s=a+e.height,o=i+e.width;e=n.x;var r=t.x;if(n.x>t.x&&(e=t.x,r=n.x),o<r&&(r=o),e<i&&(e=i),r<e)return!1;i=n.y,o=t.y;var l=t.x-n.x;return 1e-7<Math.abs(l)&&(i=(t=(t.y-n.y)/l)*e+(n=n.y-t*n.x),o=t*r+n),o<i&&(n=o,o=i,i=n),s<o&&(o=s),i<a&&(i=a),!(o<i)},contains:function(e,n,t){return e.x<=n&&e.x+e.width>=n&&e.y<=t&&e.y+e.height>=t},intersects:function(e,n){var t=e.width,a=e.height,i=n.width,s=n.height;if(i<=0||s<=0||t<=0||a<=0)return!1;var o=e.x,r=e.y,l=n.x,d=n.y;s+=d,t+=o,a+=r;return((i=i+l)<l||o<i)&&(s<d||r<s)&&(t<o||l<t)&&(a<r||d<a)},intersectsHotspot:function(e,n,t,a,i,s){if(i=null!=i?i:0,s=null!=s?s:0,0<(a=null!=a?a:1)){var o=e.getCenterX(),r=e.getCenterY(),l=e.width,d=e.height,c=mxUtils.getValue(e.style,mxConstants.STYLE_STARTSIZE)*e.view.scale;return 0<c&&(mxUtils.getValue(e.style,mxConstants.STYLE_HORIZONTAL,!0)?(r=e.y+c/2,d=c):(o=e.x+c/2,l=c)),l=Math.max(i,l*a),d=Math.max(i,d*a),0<s&&(l=Math.min(l,s),d=Math.min(d,s)),a=new mxRectangle(o-l/2,r-d/2,l,d),0!=(o=mxUtils.toRadians(mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION)||0))&&(i=Math.cos(-o),s=Math.sin(-o),o=new mxPoint(e.getCenterX(),e.getCenterY()),n=(e=mxUtils.getRotatedPoint(new mxPoint(n,t),i,s,o)).x,t=e.y),mxUtils.contains(a,n,t)}return!0},getOffset:function(e,n){var t=0,a=0;if(null!=n&&n){var i=document.body,s=document.documentElement;t=t+(i.scrollLeft||s.scrollLeft),a=a+(i.scrollTop||s.scrollTop)}for(;e.offsetParent;)t+=e.offsetLeft,a+=e.offsetTop,e=e.offsetParent;return new mxPoint(t,a)},getScrollOrigin:function(e){for(var n=document.body,t=document.documentElement,a=new mxPoint(n.scrollLeft||t.scrollLeft,n.scrollTop||t.scrollTop);null!=e&&e!=n&&e!=t;)!isNaN(e.scrollLeft)&&!isNaN(e.scrollTop)&&(a.x+=e.scrollLeft,a.y+=e.scrollTop),e=e.parentNode;return a},convertPoint:function(e,n,t){var a=mxUtils.getScrollOrigin(e);return(e=mxUtils.getOffset(e)).x-=a.x,e.y-=a.y,new mxPoint(n-e.x,t-e.y)},ltrim:function(e,n){return e.replace(RegExp("^["+(n||"\\s")+"]+","g"),"")},rtrim:function(e,n){return e.replace(RegExp("["+(n||"\\s")+"]+$","g"),"")},trim:function(e,n){return mxUtils.ltrim(mxUtils.rtrim(e,n),n)},isNumeric:function(e){return null!=e&&(null==e.length||0<e.length&&e.indexOf("0x")<0&&e.indexOf("0X")<0)&&!isNaN(e)},mod:function(e,n){return(e%n+n)%n},intersection:function(e,n,t,a,i,s,o,r){var l=(r-s)*(t-e)-(o-i)*(a-n);return o=((o-i)*(n-s)-(r-s)*(e-i))/l,i=((t-e)*(n-s)-(a-n)*(e-i))/l,0<=o&&o<=1&&0<=i&&i<=1?new mxPoint(e+o*(t-e),n+o*(a-n)):null},ptSegDistSq:function(e,n,t,a,i,s){return t=(i-=e)*(t-=e)+(s-=n)*(a-=n)<=0?0:(e=(i=t-i)*t+(s=a-s)*a)<=0?0:e*e/(t*t+a*a),(i=i*i+s*s-t)<0&&(i=0),i},relativeCcw:function(e,n,t,a,i,s){return 0==(e=(i-=e)*(a-=n)-(s-=n)*(t-=e))&&(0<(e=i*t+s*a)&&((e=(i-t)*t+(s-a)*a)<0&&(e=0))),e<0?-1:0<e?1:0},animateChanges:function(e,n){mxEffects.animateChanges.apply(this,arguments)},cascadeOpacity:function(e,n,t){mxEffects.cascadeOpacity.apply(this,arguments)},fadeOut:function(e,n,t,a,i,s){mxEffects.fadeOut.apply(this,arguments)},setOpacity:function(e,n){mxUtils.isVml(e)?e.style.filter=100<=n?null:"alpha(opacity="+n/5+")":mxClient.IS_IE&&(void 0===document.documentMode||document.documentMode<9)?e.style.filter=100<=n?null:"alpha(opacity="+n+")":e.style.opacity=n/100},createImage:function(e){var n=null;return mxClient.IS_IE6&&"CSS1Compat"!=document.compatMode?((n=document.createElement(mxClient.VML_PREFIX+":image")).setAttribute("src",e),n.style.borderStyle="none"):((n=document.createElement("img")).setAttribute("src",e),n.setAttribute("border","0")),n},sortCells:function(e,i){i=null==i||i;var s=new mxDictionary;return e.sort(function(e,n){var t=s.get(e);null==t&&(t=mxCellPath.create(e).split(mxCellPath.PATH_SEPARATOR),s.put(e,t));var a=s.get(n);return null==a&&(a=mxCellPath.create(n).split(mxCellPath.PATH_SEPARATOR),s.put(n,a)),0==(t=mxCellPath.compare(t,a))?0:0<t==i?1:-1}),e},getStylename:function(e){return null!=e&&(e=e.split(";")[0]).indexOf("=")<0?e:""},getStylenames:function(e){var n=[];if(null!=e){e=e.split(";");for(var t=0;t<e.length;t++)e[t].indexOf("=")<0&&n.push(e[t])}return n},indexOfStylename:function(e,n){if(null!=e&&null!=n)for(var t=e.split(";"),a=0,i=0;i<t.length;i++){if(t[i]==n)return a;a+=t[i].length+1}return-1},addStylename:function(e,n){return mxUtils.indexOfStylename(e,n)<0&&(null==e?e="":0<e.length&&";"!=e.charAt(e.length-1)&&(e+=";"),e+=n),e},removeStylename:function(e,n){var t=[];if(null!=e)for(var a=e.split(";"),i=0;i<a.length;i++)a[i]!=n&&t.push(a[i]);return t.join(";")},removeAllStylenames:function(e){var n=[];if(null!=e){e=e.split(";");for(var t=0;t<e.length;t++)0<=e[t].indexOf("=")&&n.push(e[t])}return n.join(";")},setCellStyles:function(e,n,t,a){if(null!=n&&0<n.length){e.beginUpdate();try{for(var i=0;i<n.length;i++)if(null!=n[i]){var s=mxUtils.setStyle(e.getStyle(n[i]),t,a);e.setStyle(n[i],s)}}finally{e.endUpdate()}}},setStyle:function(e,n,t){var a=null!=t&&(void 0===t.length||0<t.length);if(null==e||0==e.length)a&&(e=n+"="+t);else{var i=e.indexOf(n+"=");i<0?a&&(a=";"==e.charAt(e.length-1)?"":";",e=e+a+n+"="+t):(n=a?n+"="+t:"",t=e.indexOf(";",i),a||t++,e=e.substring(0,i)+n+(i<t?e.substring(t):""))}return e},setCellStyleFlags:function(e,n,t,a,i){if(null!=n&&0<n.length){e.beginUpdate();try{for(var s=0;s<n.length;s++)if(null!=n[s]){var o=mxUtils.setStyleFlag(e.getStyle(n[s]),t,a,i);e.setStyle(n[s],o)}}finally{e.endUpdate()}}},setStyleFlag:function(e,n,t,a){if(null==e||0==e.length)e=a||null==a?n+"="+t:n+"=0";else{var i=e.indexOf(n+"=");if(i<0)i=";"==e.charAt(e.length-1)?"":";",e=a||null==a?e+i+n+"="+t:e+i+n+"=0";else{var s=e.indexOf(";",i),o="";o=s<0?e.substring(i+n.length+1):e.substring(i+n.length+1,s),o=null==a?parseInt(o)^t:a?parseInt(o)|t:parseInt(o)&~t;e=e.substring(0,i)+n+"="+o+(0<=s?e.substring(s):"")}}return e},getAlignmentAsPoint:function(e,n){var t=0,a=0;return e==mxConstants.ALIGN_CENTER?t=-.5:e==mxConstants.ALIGN_RIGHT&&(t=-1),n==mxConstants.ALIGN_MIDDLE?a=-.5:n==mxConstants.ALIGN_BOTTOM&&(a=-1),new mxPoint(t,a)},getSizeForString:function(e,n,t){n=null!=n?n:mxConstants.DEFAULT_FONTSIZE,t=null!=t?t:mxConstants.DEFAULT_FONTFAMILY;var a=document.createElement("div");return a.style.fontFamily=t,a.style.fontSize=Math.round(n)+"px",a.style.lineHeight=Math.round(n*mxConstants.LINE_HEIGHT)+"px",a.style.position="absolute",a.style.whiteSpace="nowrap",a.style.visibility="hidden",a.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",a.style.zoom="1",a.innerHTML=e,document.body.appendChild(a),e=new mxRectangle(0,0,a.offsetWidth,a.offsetHeight),document.body.removeChild(a),e},getViewXml:function(e,n,t,a,i){a=null!=a?a:0,i=null!=i?i:0,n=null!=n?n:1,null==t&&(t=[e.getModel().getRoot()]);var s=e.getView(),o=null,r=s.isEventsEnabled();s.setEventsEnabled(!1);var l=s.drawPane,d=s.overlayPane;e.dialect==mxConstants.DIALECT_SVG?(s.drawPane=document.createElementNS(mxConstants.NS_SVG,"g"),s.canvas.appendChild(s.drawPane),s.overlayPane=document.createElementNS(mxConstants.NS_SVG,"g")):(s.drawPane=s.drawPane.cloneNode(!1),s.canvas.appendChild(s.drawPane),s.overlayPane=s.overlayPane.cloneNode(!1)),s.canvas.appendChild(s.overlayPane);var c=s.getTranslate();s.translate=new mxPoint(a,i),n=new mxTemporaryCellStates(e.getView(),n,t);try{o=(new mxCodec).encode(e.getView())}finally{n.destroy(),s.translate=c,s.canvas.removeChild(s.drawPane),s.canvas.removeChild(s.overlayPane),s.drawPane=l,s.overlayPane=d,s.setEventsEnabled(r)}return o},getScaleForPageCount:function(e,n,t,a){if(e<1)return 1;a=null!=a?a:0;var i=(t=null!=t?t:mxConstants.PAGE_FORMAT_A4_PORTRAIT).width-2*a;t=t.height-2*a,a=n.getGraphBounds().clone(),n=n.getView().getScale(),a.width/=n,a.height/=n,t=(n=a.width)/a.height/(i/t),a=Math.sqrt(e);var s=Math.sqrt(t);if(t=a*s,a/=s,t<1&&e<a){var o=a/e;a=e,t/=o}for(a<1&&e<t&&(o=t/e,t=e,a/=o),o=Math.ceil(t)*Math.ceil(a),s=0;e<o;){o=Math.floor(t)/t;var r=Math.floor(a)/a;if(1==o&&(o=Math.floor(t-1)/t),1==r&&(r=Math.floor(a-1)/a),t*=o=r<o?o:r,a*=o,o=Math.ceil(t)*Math.ceil(a),10<++s)break}return i*t/n*.99999},show:function(e,n,t,a){if(t=null!=t?t:0,a=null!=a?a:0,null==n?n=window.open().document:n.open(),t=-(i=e.getGraphBounds()).x+t,a=-i.y+a,mxClient.IS_IE){for(var i="<html><head>",s=document.getElementsByTagName("base"),o=0;o<s.length;o++)i+=s[o].outerHTML;for(i+="<style>",o=0;o<document.styleSheets.length;o++)try{i+=document.styleSheets(o).cssText}catch(e){}i+="</style></head>",i+="<body>",i+=e.container.innerHTML,i+="</body>",i+="<html>",n.writeln(i),n.close(),null!=(e=n.body.getElementsByTagName("DIV")[0])&&(e.style.position="absolute",e.style.left=t+"px",e.style.top=a+"px")}else{for(n.writeln("<html"),n.writeln("<head>"),s=document.getElementsByTagName("base"),o=0;o<s.length;o++)n.writeln(mxUtils.getOuterHtml(s[o]));for(s=document.getElementsByTagName("link"),o=0;o<s.length;o++)n.writeln(mxUtils.getOuterHtml(s[o]));for(s=document.getElementsByTagName("style"),o=0;o<s.length;o++)n.writeln(mxUtils.getOuterHtml(s[o]));for(n.writeln("</head>"),n.writeln("</html>"),n.close(),null==n.body&&n.documentElement.appendChild(n.createElement("body")),n.body.style.overflow="auto",e=e.container.firstChild;null!=e;)o=e.cloneNode(!0),n.body.appendChild(o),e=e.nextSibling;null!=(e=n.getElementsByTagName("g")[0])&&(e.setAttribute("transform","translate("+t+","+a+")"),(t=e.ownerSVGElement).setAttribute("width",i.width+Math.max(i.x,0)+3),t.setAttribute("height",i.height+Math.max(i.y,0)+3))}return mxUtils.removeCursors(n.body),n},printScreen:function(e){var n=window.open();mxUtils.show(e,n.document),e=function(){n.focus(),n.print(),n.close()},mxClient.IS_GC?n.setTimeout(e,500):e()},popup:function(e,n){if(n){var t=document.createElement("div");t.style.overflow="scroll",t.style.width="636px",t.style.height="460px";var a=document.createElement("pre");a.innerHTML=mxUtils.htmlEntities(e,!1).replace(/\n/g,"<br>").replace(/ /g," "),t.appendChild(a),(t=new mxWindow("Popup Window",t,document.body.clientWidth/2-320,(document.body.clientHeight||document.documentElement.clientHeight)/2-240,640,480,!1,!0)).setClosable(!0),t.setVisible(!0)}else mxClient.IS_NS?((t=window.open()).document.writeln("<pre>"+mxUtils.htmlEntities(e)+"</pre"),t.document.close()):((a=(t=window.open()).document.createElement("pre")).innerHTML=mxUtils.htmlEntities(e,!1).replace(/\n/g,"<br>").replace(/ /g," "),t.document.body.appendChild(a))},alert:function(e){alert(e)},prompt:function(e,n){return prompt(e,n)},confirm:function(e){return confirm(e)},error:function(e,n,t,a){var i=document.createElement("div");i.style.padding="20px";var s=document.createElement("img");s.setAttribute("src",a||mxUtils.errorImage),s.setAttribute("valign","bottom"),s.style.verticalAlign="middle",i.appendChild(s),i.appendChild(document.createTextNode(" ")),i.appendChild(document.createTextNode(" ")),i.appendChild(document.createTextNode(" ")),mxUtils.write(i,e),e=document.body.clientWidth,a=document.body.clientHeight||document.documentElement.clientHeight;var o=new mxWindow(mxResources.get(mxUtils.errorResource)||mxUtils.errorResource,i,(e-n)/2,a/4,n,null,!1,!0);return t&&(mxUtils.br(i),n=document.createElement("p"),t=document.createElement("button"),mxClient.IS_IE?t.style.cssText="float:right":t.setAttribute("style","float:right"),mxEvent.addListener(t,"click",function(e){o.destroy()}),mxUtils.write(t,mxResources.get(mxUtils.closeResource)||mxUtils.closeResource),n.appendChild(t),i.appendChild(n),mxUtils.br(i),o.setClosable(!0)),o.setVisible(!0),o},makeDraggable:function(e,n,t,i,a,s,o,r,l,d){return(e=new mxDragSource(e,t)).dragOffset=new mxPoint(null!=a?a:0,null!=s?s:mxConstants.TOOLTIP_VERTICAL_OFFSET),e.autoscroll=o,e.setGuidesEnabled(!1),null!=l&&(e.highlightDropTargets=l),null!=d&&(e.getDropTarget=d),e.getGraphForEvent=function(e){return"function"==typeof n?n(e):n},null!=i&&(e.createDragElement=function(){return i.cloneNode(!0)},r&&(e.createPreviewElement=function(e){var n=i.cloneNode(!0),t=parseInt(n.style.width),a=parseInt(n.style.height);return n.style.width=Math.round(t*e.view.scale)+"px",n.style.height=Math.round(a*e.view.scale)+"px",n})),e}},mxConstants={DEFAULT_HOTSPOT:.3,MIN_HOTSPOT_SIZE:8,MAX_HOTSPOT_SIZE:0,RENDERING_HINT_EXACT:"exact",RENDERING_HINT_FASTER:"faster",RENDERING_HINT_FASTEST:"fastest",DIALECT_SVG:"svg",DIALECT_VML:"vml",DIALECT_MIXEDHTML:"mixedHtml",DIALECT_PREFERHTML:"preferHtml",DIALECT_STRICTHTML:"strictHtml",NS_SVG:"http://www.w3.org/2000/svg",NS_XHTML:"http://www.w3.org/1999/xhtml",NS_XLINK:"http://www.w3.org/1999/xlink",SHADOWCOLOR:"gray",SHADOW_OFFSET_X:2,SHADOW_OFFSET_Y:3,SHADOW_OPACITY:1,NODETYPE_ELEMENT:1,NODETYPE_ATTRIBUTE:2,NODETYPE_TEXT:3,NODETYPE_CDATA:4,NODETYPE_ENTITY_REFERENCE:5,NODETYPE_ENTITY:6,NODETYPE_PROCESSING_INSTRUCTION:7,NODETYPE_COMMENT:8,NODETYPE_DOCUMENT:9,NODETYPE_DOCUMENTTYPE:10,NODETYPE_DOCUMENT_FRAGMENT:11,NODETYPE_NOTATION:12,TOOLTIP_VERTICAL_OFFSET:16,DEFAULT_VALID_COLOR:"#00FF00",DEFAULT_INVALID_COLOR:"#FF0000",HIGHLIGHT_STROKEWIDTH:3,CURSOR_MOVABLE_VERTEX:"move",CURSOR_MOVABLE_EDGE:"move",CURSOR_LABEL_HANDLE:"default",CURSOR_BEND_HANDLE:"pointer",CURSOR_CONNECT:"pointer",HIGHLIGHT_COLOR:"#00FF00",CONNECT_TARGET_COLOR:"#0000FF",INVALID_CONNECT_TARGET_COLOR:"#FF0000",DROP_TARGET_COLOR:"#0000FF",VALID_COLOR:"#00FF00",INVALID_COLOR:"#FF0000",EDGE_SELECTION_COLOR:"#00FF00",VERTEX_SELECTION_COLOR:"#00FF00",VERTEX_SELECTION_STROKEWIDTH:1,EDGE_SELECTION_STROKEWIDTH:1,VERTEX_SELECTION_DASHED:!0,EDGE_SELECTION_DASHED:!0,GUIDE_COLOR:"#FF0000",GUIDE_STROKEWIDTH:1,OUTLINE_COLOR:"#0099FF",OUTLINE_STROKEWIDTH:mxClient.IS_IE?2:3,HANDLE_SIZE:7,LABEL_HANDLE_SIZE:4,HANDLE_FILLCOLOR:"#00FF00",HANDLE_STROKECOLOR:"black",LABEL_HANDLE_FILLCOLOR:"yellow",CONNECT_HANDLE_FILLCOLOR:"#0000FF",LOCKED_HANDLE_FILLCOLOR:"#FF0000",OUTLINE_HANDLE_FILLCOLOR:"#00FFFF",OUTLINE_HANDLE_STROKECOLOR:"#0033FF",DEFAULT_FONTFAMILY:"Arial,Helvetica",DEFAULT_FONTSIZE:11,LINE_HEIGHT:1.2,DEFAULT_FONTSTYLE:0,DEFAULT_STARTSIZE:40,DEFAULT_MARKERSIZE:6,DEFAULT_IMAGESIZE:24,ENTITY_SEGMENT:30,RECTANGLE_ROUNDING_FACTOR:.15,LINE_ARCSIZE:20,ARROW_SPACING:10,ARROW_WIDTH:30,ARROW_SIZE:30,PAGE_FORMAT_A4_PORTRAIT:new mxRectangle(0,0,826,1169),PAGE_FORMAT_A4_LANDSCAPE:new mxRectangle(0,0,1169,826),PAGE_FORMAT_LETTER_PORTRAIT:new mxRectangle(0,0,850,1100),PAGE_FORMAT_LETTER_LANDSCAPE:new mxRectangle(0,0,1100,850),NONE:"none",STYLE_PERIMETER:"perimeter",STYLE_SOURCE_PORT:"sourcePort",STYLE_TARGET_PORT:"targetPort",STYLE_PORT_CONSTRAINT:"portConstraint",STYLE_OPACITY:"opacity",STYLE_TEXT_OPACITY:"textOpacity",STYLE_OVERFLOW:"overflow",STYLE_ORTHOGONAL:"orthogonal",STYLE_EXIT_X:"exitX",STYLE_EXIT_Y:"exitY",STYLE_EXIT_PERIMETER:"exitPerimeter",STYLE_ENTRY_X:"entryX",STYLE_ENTRY_Y:"entryY",STYLE_ENTRY_PERIMETER:"entryPerimeter",STYLE_WHITE_SPACE:"whiteSpace",STYLE_ROTATION:"rotation",STYLE_FILLCOLOR:"fillColor",STYLE_SWIMLANE_FILLCOLOR:"swimlaneFillColor",STYLE_GRADIENTCOLOR:"gradientColor",STYLE_GRADIENT_DIRECTION:"gradientDirection",STYLE_STROKECOLOR:"strokeColor",STYLE_SEPARATORCOLOR:"separatorColor",STYLE_STROKEWIDTH:"strokeWidth",STYLE_ALIGN:"align",STYLE_VERTICAL_ALIGN:"verticalAlign",STYLE_LABEL_POSITION:"labelPosition",STYLE_VERTICAL_LABEL_POSITION:"verticalLabelPosition",STYLE_IMAGE_ASPECT:"imageAspect",STYLE_IMAGE_ALIGN:"imageAlign",STYLE_IMAGE_VERTICAL_ALIGN:"imageVerticalAlign",STYLE_GLASS:"glass",STYLE_IMAGE:"image",STYLE_IMAGE_WIDTH:"imageWidth",STYLE_IMAGE_HEIGHT:"imageHeight",STYLE_IMAGE_BACKGROUND:"imageBackground",STYLE_IMAGE_BORDER:"imageBorder",STYLE_FLIPH:"flipH",STYLE_FLIPV:"flipV",STYLE_NOLABEL:"noLabel",STYLE_NOEDGESTYLE:"noEdgeStyle",STYLE_LABEL_BACKGROUNDCOLOR:"labelBackgroundColor",STYLE_LABEL_BORDERCOLOR:"labelBorderColor",STYLE_LABEL_PADDING:"labelPadding",STYLE_INDICATOR_SHAPE:"indicatorShape",STYLE_INDICATOR_IMAGE:"indicatorImage",STYLE_INDICATOR_COLOR:"indicatorColor",STYLE_INDICATOR_STROKECOLOR:"indicatorStrokeColor",STYLE_INDICATOR_GRADIENTCOLOR:"indicatorGradientColor",STYLE_INDICATOR_SPACING:"indicatorSpacing",STYLE_INDICATOR_WIDTH:"indicatorWidth",STYLE_INDICATOR_HEIGHT:"indicatorHeight",STYLE_INDICATOR_DIRECTION:"indicatorDirection",STYLE_SHADOW:"shadow",STYLE_SEGMENT:"segment",STYLE_ENDARROW:"endArrow",STYLE_STARTARROW:"startArrow",STYLE_ENDSIZE:"endSize",STYLE_STARTSIZE:"startSize",STYLE_SWIMLANE_LINE:"swimlaneLine",STYLE_ENDFILL:"endFill",STYLE_STARTFILL:"startFill",STYLE_DASHED:"dashed",STYLE_DASH_PATTERN:"dashPattern",STYLE_ROUNDED:"rounded",STYLE_CURVED:"curved",STYLE_ARCSIZE:"arcSize",STYLE_SMOOTH:"smooth",STYLE_SOURCE_PERIMETER_SPACING:"sourcePerimeterSpacing",STYLE_TARGET_PERIMETER_SPACING:"targetPerimeterSpacing",STYLE_PERIMETER_SPACING:"perimeterSpacing",STYLE_SPACING:"spacing",STYLE_SPACING_TOP:"spacingTop",STYLE_SPACING_LEFT:"spacingLeft",STYLE_SPACING_BOTTOM:"spacingBottom",STYLE_SPACING_RIGHT:"spacingRight",STYLE_HORIZONTAL:"horizontal",STYLE_DIRECTION:"direction",STYLE_ELBOW:"elbow",STYLE_FONTCOLOR:"fontColor",STYLE_FONTFAMILY:"fontFamily",STYLE_FONTSIZE:"fontSize",STYLE_FONTSTYLE:"fontStyle",STYLE_AUTOSIZE:"autosize",STYLE_FOLDABLE:"foldable",STYLE_EDITABLE:"editable",STYLE_BENDABLE:"bendable",STYLE_MOVABLE:"movable",STYLE_RESIZABLE:"resizable",STYLE_CLONEABLE:"cloneable",STYLE_DELETABLE:"deletable",STYLE_SHAPE:"shape",STYLE_EDGE:"edgeStyle",STYLE_LOOP:"loopStyle",STYLE_ROUTING_CENTER_X:"routingCenterX",STYLE_ROUTING_CENTER_Y:"routingCenterY",FONT_BOLD:1,FONT_ITALIC:2,FONT_UNDERLINE:4,FONT_SHADOW:8,SHAPE_RECTANGLE:"rectangle",SHAPE_ELLIPSE:"ellipse",SHAPE_DOUBLE_ELLIPSE:"doubleEllipse",SHAPE_RHOMBUS:"rhombus",SHAPE_LINE:"line",SHAPE_IMAGE:"image",SHAPE_ARROW:"arrow",SHAPE_LABEL:"label",SHAPE_CYLINDER:"cylinder",SHAPE_SWIMLANE:"swimlane",SHAPE_CONNECTOR:"connector",SHAPE_ACTOR:"actor",SHAPE_CLOUD:"cloud",SHAPE_TRIANGLE:"triangle",SHAPE_HEXAGON:"hexagon",ARROW_CLASSIC:"classic",ARROW_BLOCK:"block",ARROW_OPEN:"open",ARROW_OVAL:"oval",ARROW_DIAMOND:"diamond",ARROW_DIAMOND_THIN:"diamondThin",ALIGN_LEFT:"left",ALIGN_CENTER:"center",ALIGN_RIGHT:"right",ALIGN_TOP:"top",ALIGN_MIDDLE:"middle",ALIGN_BOTTOM:"bottom",DIRECTION_NORTH:"north",DIRECTION_SOUTH:"south",DIRECTION_EAST:"east",DIRECTION_WEST:"west",DIRECTION_MASK_NONE:0,DIRECTION_MASK_WEST:1,DIRECTION_MASK_NORTH:2,DIRECTION_MASK_SOUTH:4,DIRECTION_MASK_EAST:8,DIRECTION_MASK_ALL:15,ELBOW_VERTICAL:"vertical",ELBOW_HORIZONTAL:"horizontal",EDGESTYLE_ELBOW:"elbowEdgeStyle",EDGESTYLE_ENTITY_RELATION:"entityRelationEdgeStyle",EDGESTYLE_LOOP:"loopEdgeStyle",EDGESTYLE_SIDETOSIDE:"sideToSideEdgeStyle",EDGESTYLE_TOPTOBOTTOM:"topToBottomEdgeStyle",EDGESTYLE_ORTHOGONAL:"orthogonalEdgeStyle",EDGESTYLE_SEGMENT:"segmentEdgeStyle",PERIMETER_ELLIPSE:"ellipsePerimeter",PERIMETER_RECTANGLE:"rectanglePerimeter",PERIMETER_RHOMBUS:"rhombusPerimeter",PERIMETER_TRIANGLE:"trianglePerimeter"};function mxEventObject(e){this.name=e,this.properties=[];for(var n=1;n<arguments.length;n+=2)null!=arguments[n+1]&&(this.properties[arguments[n]]=arguments[n+1])}function mxMouseEvent(e,n){this.evt=e,this.state=n}function mxEventSource(e){this.setEventSource(e)}mxEventObject.prototype.name=null,mxEventObject.prototype.properties=null,mxEventObject.prototype.consumed=!1,mxEventObject.prototype.getName=function(){return this.name},mxEventObject.prototype.getProperties=function(){return this.properties},mxEventObject.prototype.getProperty=function(e){return this.properties[e]},mxEventObject.prototype.isConsumed=function(){return this.consumed},mxEventObject.prototype.consume=function(){this.consumed=!0},mxMouseEvent.prototype.consumed=!1,mxMouseEvent.prototype.evt=null,mxMouseEvent.prototype.graphX=null,mxMouseEvent.prototype.graphY=null,mxMouseEvent.prototype.state=null,mxMouseEvent.prototype.getEvent=function(){return this.evt},mxMouseEvent.prototype.getSource=function(){return mxEvent.getSource(this.evt)},mxMouseEvent.prototype.isSource=function(e){if(null!=e)for(var n=this.getSource();null!=n;){if(n==e.node)return!0;n=n.parentNode}return!1},mxMouseEvent.prototype.getX=function(){return mxEvent.getClientX(this.getEvent())},mxMouseEvent.prototype.getY=function(){return mxEvent.getClientY(this.getEvent())},mxMouseEvent.prototype.getGraphX=function(){return this.graphX},mxMouseEvent.prototype.getGraphY=function(){return this.graphY},mxMouseEvent.prototype.getState=function(){return this.state},mxMouseEvent.prototype.getCell=function(){var e=this.getState();return null!=e?e.cell:null},mxMouseEvent.prototype.isPopupTrigger=function(){return mxEvent.isPopupTrigger(this.getEvent())},mxMouseEvent.prototype.isConsumed=function(){return this.consumed},mxMouseEvent.prototype.consume=function(e){(null==e||e)&&this.evt.preventDefault&&this.evt.preventDefault(),this.evt.returnValue=!1,this.consumed=!0},mxEventSource.prototype.eventListeners=null,mxEventSource.prototype.eventsEnabled=!0,mxEventSource.prototype.eventSource=null,mxEventSource.prototype.isEventsEnabled=function(){return this.eventsEnabled},mxEventSource.prototype.setEventsEnabled=function(e){this.eventsEnabled=e},mxEventSource.prototype.getEventSource=function(){return this.eventSource},mxEventSource.prototype.setEventSource=function(e){this.eventSource=e},mxEventSource.prototype.addListener=function(e,n){null==this.eventListeners&&(this.eventListeners=[]),this.eventListeners.push(e),this.eventListeners.push(n)},mxEventSource.prototype.removeListener=function(e){if(null!=this.eventListeners)for(var n=0;n<this.eventListeners.length;)this.eventListeners[n+1]==e?this.eventListeners.splice(n,2):n+=2},mxEventSource.prototype.fireEvent=function(e,n){if(null!=this.eventListeners&&this.isEventsEnabled()){null==e&&(e=new mxEventObject),null==n&&(n=this.getEventSource()),null==n&&(n=this);for(var t=[n,e],a=0;a<this.eventListeners.length;a+=2){var i=this.eventListeners[a];(null==i||i==e.getName())&&this.eventListeners[a+1].apply(this,t)}}};var mxEvent={objects:[],addListener:function(){var a=function(e,n,t){null==e.mxListenerList&&(e.mxListenerList=[],mxEvent.objects.push(e)),e.mxListenerList.push({name:n,f:t})};return window.addEventListener?function(e,n,t){e.addEventListener(n,t,!1),a(e,n,t)}:function(e,n,t){e.attachEvent("on"+n,t),a(e,n,t)}}(),removeListener:function(){var a=function(e,n,t){if(null!=e.mxListenerList){n=e.mxListenerList.length;for(var a=0;a<n;a++)if(e.mxListenerList[a].f==t){e.mxListenerList.splice(a,1);break}0==e.mxListenerList.length&&(e.mxListenerList=null)}};return window.removeEventListener?function(e,n,t){e.removeEventListener(n,t,!1),a(e,n,t)}:function(e,n,t){e.detachEvent("on"+n,t),a(e,n,t)}}(),removeAllListeners:function(e){var n=e.mxListenerList;if(null!=n)for(;0<n.length;){var t=n[0];mxEvent.removeListener(e,t.name,t.f)}},addGestureListeners:function(e,n,t,a){null!=n&&mxEvent.addListener(e,"mousedown",n),null!=t&&mxEvent.addListener(e,"mousemove",t),null!=a&&mxEvent.addListener(e,"mouseup",a),mxClient.IS_TOUCH&&(null!=n&&mxEvent.addListener(e,"touchstart",n),null!=t&&mxEvent.addListener(e,"touchmove",t),null!=a&&mxEvent.addListener(e,"touchend",a))},removeGestureListeners:function(e,n,t,a){null!=n&&mxEvent.removeListener(e,"mousedown",n),null!=t&&mxEvent.removeListener(e,"mousemove",t),null!=a&&mxEvent.removeListener(e,"mouseup",a),mxClient.IS_TOUCH&&(null!=n&&mxEvent.removeListener(e,"touchstart",n),null!=t&&mxEvent.removeListener(e,"touchmove",t),null!=a&&mxEvent.removeListener(e,"touchend",a))},redirectMouseEvents:function(e,t,n,a,i,s,o){var r=function(e){return"function"==typeof n?n(e):n};mxEvent.addGestureListeners(e,function(e){null!=a?a(e):mxEvent.isConsumed(e)||t.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e,r(e)))},function(e){null!=i?i(e):mxEvent.isConsumed(e)||t.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,r(e)))},function(e){null!=s?s(e):mxEvent.isConsumed(e)||t.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e,r(e)))}),mxEvent.addListener(e,"dblclick",function(e){if(null!=o)o(e);else if(!mxEvent.isConsumed(e)){var n=r(e);t.dblClick(e,null!=n?n.cell:null)}})},release:function(e){if(null!=e&&(mxEvent.removeAllListeners(e),null!=(e=e.childNodes)))for(var n=e.length,t=0;t<n;t+=1)mxEvent.release(e[t])},addMouseWheelListener:function(t){if(null!=t){var e=function(e){null==e&&(e=window.event);var n=0;0!=(n=!mxClient.IS_NS||mxClient.IS_SF||mxClient.IS_GC?e.wheelDelta/120:-e.detail/2)&&t(e,0<n)};mxClient.IS_NS?mxEvent.addListener(window,mxClient.IS_SF||mxClient.IS_GC?"mousewheel":"DOMMouseScroll",e):mxEvent.addListener(document,"mousewheel",e)}},disableContextMenu:mxClient.IS_IE&&(void 0===document.documentMode||document.documentMode<9)?function(e){mxEvent.addListener(e,"contextmenu",function(){return!1})}:function(e){e.setAttribute("oncontextmenu","return false;")},getSource:function(e){return null!=e.srcElement?e.srcElement:e.target},isConsumed:function(e){return null!=e.isConsumed&&e.isConsumed},isLeftMouseButton:function(e){return e.button==(mxClient.IS_IE&&(void 0===document.documentMode||document.documentMode<9)?1:0)},isRightMouseButton:function(e){return 2==e.button},isPopupTrigger:function(e){return mxEvent.isRightMouseButton(e)||mxEvent.isShiftDown(e)&&!mxEvent.isControlDown(e)},isShiftDown:function(e){return null!=e&&e.shiftKey},isAltDown:function(e){return null!=e&&e.altKey},isControlDown:function(e){return null!=e&&e.ctrlKey},isMetaDown:function(e){return null!=e&&e.metaKey},getMainEvent:function(e){return"touchstart"!=e.type&&"touchmove"!=e.type||null==e.touches||null==e.touches[0]?"touchend"==e.type&&null!=e.changedTouches&&null!=e.changedTouches[0]&&(e=e.changedTouches[0]):e=e.touches[0],e},getClientX:function(e){return mxEvent.getMainEvent(e).clientX},getClientY:function(e){return mxEvent.getMainEvent(e).clientY},consume:function(e,n,t){t=null==t||t,(null==n||n)&&(e.preventDefault?(t&&e.stopPropagation(),e.preventDefault()):t&&(e.cancelBubble=!0)),e.isConsumed=!0,e.returnValue=!1},LABEL_HANDLE:-1,ROTATION_HANDLE:-2,MOUSE_DOWN:"mouseDown",MOUSE_MOVE:"mouseMove",MOUSE_UP:"mouseUp",ACTIVATE:"activate",RESIZE_START:"resizeStart",RESIZE:"resize",RESIZE_END:"resizeEnd",MOVE_START:"moveStart",MOVE:"move",MOVE_END:"moveEnd",PAN_START:"panStart",PAN:"pan",PAN_END:"panEnd",MINIMIZE:"minimize",NORMALIZE:"normalize",MAXIMIZE:"maximize",HIDE:"hide",SHOW:"show",CLOSE:"close",DESTROY:"destroy",REFRESH:"refresh",SIZE:"size",SELECT:"select",FIRED:"fired",GET:"get",RECEIVE:"receive",CONNECT:"connect",DISCONNECT:"disconnect",SUSPEND:"suspend",RESUME:"resume",MARK:"mark",SESSION:"session",ROOT:"root",POST:"post",OPEN:"open",SAVE:"save",BEFORE_ADD_VERTEX:"beforeAddVertex",ADD_VERTEX:"addVertex",AFTER_ADD_VERTEX:"afterAddVertex",DONE:"done",EXECUTE:"execute",EXECUTED:"executed",BEGIN_UPDATE:"beginUpdate",START_EDIT:"startEdit",END_UPDATE:"endUpdate",END_EDIT:"endEdit",BEFORE_UNDO:"beforeUndo",UNDO:"undo",REDO:"redo",CHANGE:"change",NOTIFY:"notify",LAYOUT_CELLS:"layoutCells",CLICK:"click",SCALE:"scale",TRANSLATE:"translate",SCALE_AND_TRANSLATE:"scaleAndTranslate",UP:"up",DOWN:"down",ADD:"add",REMOVE:"remove",CLEAR:"clear",ADD_CELLS:"addCells",CELLS_ADDED:"cellsAdded",MOVE_CELLS:"moveCells",CELLS_MOVED:"cellsMoved",RESIZE_CELLS:"resizeCells",CELLS_RESIZED:"cellsResized",TOGGLE_CELLS:"toggleCells",CELLS_TOGGLED:"cellsToggled",ORDER_CELLS:"orderCells",CELLS_ORDERED:"cellsOrdered",REMOVE_CELLS:"removeCells",CELLS_REMOVED:"cellsRemoved",GROUP_CELLS:"groupCells",UNGROUP_CELLS:"ungroupCells",REMOVE_CELLS_FROM_PARENT:"removeCellsFromParent",FOLD_CELLS:"foldCells",CELLS_FOLDED:"cellsFolded",ALIGN_CELLS:"alignCells",LABEL_CHANGED:"labelChanged",CONNECT_CELL:"connectCell",CELL_CONNECTED:"cellConnected",SPLIT_EDGE:"splitEdge",FLIP_EDGE:"flipEdge",START_EDITING:"startEditing",ADD_OVERLAY:"addOverlay",REMOVE_OVERLAY:"removeOverlay",UPDATE_CELL_SIZE:"updateCellSize",ESCAPE:"escape",CLICK:"click",DOUBLE_CLICK:"doubleClick",START:"start",RESET:"reset"};function mxXmlRequest(e,n,t,a,i,s){this.url=e,this.params=n,this.method=t||"POST",this.async=null==a||a,this.username=i,this.password=s}mxXmlRequest.prototype.url=null,mxXmlRequest.prototype.params=null,mxXmlRequest.prototype.method=null,mxXmlRequest.prototype.async=null,mxXmlRequest.prototype.binary=!1,mxXmlRequest.prototype.username=null,mxXmlRequest.prototype.password=null,mxXmlRequest.prototype.request=null,mxXmlRequest.prototype.isBinary=function(){return this.binary},mxXmlRequest.prototype.setBinary=function(e){this.binary=e},mxXmlRequest.prototype.getText=function(){return this.request.responseText},mxXmlRequest.prototype.isReady=function(){return 4==this.request.readyState},mxXmlRequest.prototype.getDocumentElement=function(){var e=this.getXml();return null!=e?e.documentElement:null},mxXmlRequest.prototype.getXml=function(){var e=this.request.responseXML;return(9<=document.documentMode||null==e||null==e.documentElement)&&(e=mxUtils.parseXml(this.request.responseText)),e},mxXmlRequest.prototype.getText=function(){return this.request.responseText},mxXmlRequest.prototype.getStatus=function(){return this.request.status},mxXmlRequest.prototype.create=window.XMLHttpRequest?function(){var e=new XMLHttpRequest;return this.isBinary()&&e.overrideMimeType&&e.overrideMimeType("text/plain; charset=x-user-defined"),e}:"undefined"!=typeof ActiveXObject?function(){return new ActiveXObject("Microsoft.XMLHTTP")}:void 0,mxXmlRequest.prototype.send=function(e,n){this.request=this.create(),null!=this.request&&(null!=e&&(this.request.onreadystatechange=mxUtils.bind(this,function(){this.isReady()&&(e(this),this.onreadystatechaange=null)})),this.request.open(this.method,this.url,this.async,this.username,this.password),this.setRequestHeaders(this.request,this.params),this.request.send(this.params))},mxXmlRequest.prototype.setRequestHeaders=function(e,n){null!=n&&e.setRequestHeader("Content-Type","application/x-www-form-urlencoded")},mxXmlRequest.prototype.simulate=function(e,n){var t=null;(e=e||document)==document&&(t=window.onbeforeunload,window.onbeforeunload=null);var a=e.createElement("form");a.setAttribute("method",this.method),a.setAttribute("action",this.url),null!=n&&a.setAttribute("target",n),a.style.display="none",a.style.visibility="hidden";for(var i=0<this.params.indexOf("&")?this.params.split("&"):this.params.split(),s=0;s<i.length;s++){if(0<(o=i[s].indexOf("="))){var o,r=i[s].substring(0,o),l=i[s].substring(o+1);(o=e.createElement("textarea")).setAttribute("name",r),l=l.replace(/\n/g,"
"),r=e.createTextNode(l),o.appendChild(r),a.appendChild(o)}}e.body.appendChild(a),a.submit(),e.body.removeChild(a),null!=t&&(window.onbeforeunload=t)};var mxClipboard={STEPSIZE:10,insertCount:1,cells:null,isEmpty:function(){return null==mxClipboard.cells},cut:function(e,n){return n=mxClipboard.copy(e,n),mxClipboard.insertCount=0,mxClipboard.removeCells(e,n),n},removeCells:function(e,n){e.removeCells(n)},copy:function(e,n){n=n||e.getSelectionCells();var t=e.getExportableCells(n);return mxClipboard.insertCount=1,mxClipboard.cells=e.cloneCells(t),t},paste:function(e){if(null!=mxClipboard.cells){var n=e.getImportableCells(mxClipboard.cells),t=mxClipboard.insertCount*mxClipboard.STEPSIZE,a=e.getDefaultParent();n=e.importCells(n,t,t,a);mxClipboard.insertCount++,e.setSelectionCells(n)}}};function mxWindow(e,n,t,a,i,s,o,r,l,d){null!=n&&(o=null==o||o,this.content=n,this.init(t,a,i,s,d),this.installMaximizeHandler(),this.installMinimizeHandler(),this.installCloseHandler(),this.setMinimizable(o),this.setTitle(e),(null==r||r)&&this.installMoveHandler(),null!=l&&null!=l.parentNode?l.parentNode.replaceChild(this.div,l):document.body.appendChild(this.div))}function mxForm(e){this.table=document.createElement("table"),this.table.className=e,this.body=document.createElement("tbody"),this.table.appendChild(this.body)}function mxImage(e,n,t){this.src=e,this.width=n,this.height=t}function mxDivResizer(e,n){if("div"==e.nodeName.toLowerCase()){null==n&&(n=window),this.div=e;var t=mxUtils.getCurrentStyle(e);null!=t&&(this.resizeWidth="auto"==t.width,this.resizeHeight="auto"==t.height),mxEvent.addListener(n,"resize",mxUtils.bind(this,function(e){this.handlingResize||(this.handlingResize=!0,this.resize(),this.handlingResize=!1)})),this.resize()}}function mxDragSource(e,n){this.element=e,this.dropHandler=n,mxEvent.addGestureListeners(e,mxUtils.bind(this,this.mouseDown))}function mxToolbar(e){this.container=e}function mxSession(n,e,t,a){this.model=n,this.urlInit=e,this.urlPoll=t,this.urlNotify=a,null!=n&&(this.codec=new mxCodec,this.codec.lookup=function(e){return n.getCell(e)}),n.addListener(mxEvent.NOTIFY,mxUtils.bind(this,function(e,n){var t=n.getProperty("edit");(null!=t&&this.debug||this.connected&&!this.suspended)&&this.notify("<edit>"+this.encodeChanges(t.changes,t.undone)+"</edit>")}))}function mxUndoableEdit(e,n){this.source=e,this.changes=[],this.significant=null==n||n}function mxUndoManager(e){this.size=null!=e?e:100,this.clear()}mxWindow.prototype=new mxEventSource,mxWindow.prototype.constructor=mxWindow,mxWindow.prototype.closeImage=mxClient.imageBasePath+"/close.gif",mxWindow.prototype.minimizeImage=mxClient.imageBasePath+"/minimize.gif",mxWindow.prototype.normalizeImage=mxClient.imageBasePath+"/normalize.gif",mxWindow.prototype.maximizeImage=mxClient.imageBasePath+"/maximize.gif",mxWindow.prototype.resizeImage=mxClient.imageBasePath+"/resize.gif",mxWindow.prototype.visible=!1,mxWindow.prototype.content=!1,mxWindow.prototype.minimumSize=new mxRectangle(0,0,50,40),mxWindow.prototype.title=!1,mxWindow.prototype.content=!1,mxWindow.prototype.destroyOnClose=!0,mxWindow.prototype.init=function(e,n,t,a,i){i=null!=i?i:"mxWindow",this.div=document.createElement("div"),this.div.className=i,this.div.style.left=e+"px",this.div.style.top=n+"px",this.table=document.createElement("table"),this.table.className=i,null!=t&&(mxClient.IS_IE||(this.div.style.width=t+"px"),this.table.style.width=t+"px"),null!=a&&(mxClient.IS_IE||(this.div.style.height=a+"px"),this.table.style.height=a+"px"),e=document.createElement("tbody"),n=document.createElement("tr"),this.title=document.createElement("td"),this.title.className=i+"Title",n.appendChild(this.title),e.appendChild(n),n=document.createElement("tr"),this.td=document.createElement("td"),this.td.className=i+"Pane",this.contentWrapper=document.createElement("div"),this.contentWrapper.className=i+"Pane",this.contentWrapper.style.width="100%",this.contentWrapper.appendChild(this.content),(mxClient.IS_IE||"DIV"!=this.content.nodeName.toUpperCase())&&(this.contentWrapper.style.height="100%"),this.td.appendChild(this.contentWrapper),n.appendChild(this.td),e.appendChild(n),this.table.appendChild(e),this.div.appendChild(this.table),i=mxUtils.bind(this,function(e){this.activate()}),mxEvent.addListener(this.title,"mousedown",i),mxEvent.addListener(this.table,"mousedown",i),mxClient.IS_TOUCH&&(mxEvent.addListener(this.title,"touchstart",i),mxEvent.addListener(this.table,"touchstart",i)),this.hide()},mxWindow.prototype.setTitle=function(e){for(var n=this.title.firstChild;null!=n;){var t=n.nextSibling;n.nodeType==mxConstants.NODETYPE_TEXT&&n.parentNode.removeChild(n),n=t}mxUtils.write(this.title,e||"")},mxWindow.prototype.setScrollable=function(e){navigator.userAgent.indexOf("Presto/2.5")<0&&(this.contentWrapper.style.overflow=e?"auto":"hidden")},mxWindow.prototype.activate=function(){if(mxWindow.activeWindow!=this){var e=null!=(e=mxUtils.getCurrentStyle(this.getElement()))?e.zIndex:3;if(mxWindow.activeWindow){var n=mxWindow.activeWindow.getElement();null!=n&&null!=n.style&&(n.style.zIndex=e)}n=mxWindow.activeWindow,this.getElement().style.zIndex=parseInt(e)+1,(mxWindow.activeWindow=this).fireEvent(new mxEventObject(mxEvent.ACTIVATE,"previousWindow",n))}},mxWindow.prototype.getElement=function(){return this.div},mxWindow.prototype.fit=function(){mxUtils.fit(this.div)},mxWindow.prototype.isResizable=function(){return null!=this.resize&&"none"!=this.resize.style.display},mxWindow.prototype.setResizable=function(e){e?null==this.resize?(this.resize=document.createElement("img"),this.resize.style.position="absolute",this.resize.style.bottom="2px",this.resize.style.right="2px",this.resize.setAttribute("src",mxClient.imageBasePath+"/resize.gif"),this.resize.style.cursor="nw-resize",mxEvent.addGestureListeners(this.resize,mxUtils.bind(this,function(e){this.activate();var a=mxEvent.getClientX(e),i=mxEvent.getClientY(e),s=this.div.offsetWidth,o=this.div.offsetHeight,n=mxUtils.bind(this,function(e){var n=mxEvent.getClientX(e)-a,t=mxEvent.getClientY(e)-i;this.setSize(s+n,o+t),this.fireEvent(new mxEventObject(mxEvent.RESIZE,"event",e)),mxEvent.consume(e)}),t=mxUtils.bind(this,function(e){mxEvent.removeGestureListeners(document,null,n,t),this.fireEvent(new mxEventObject(mxEvent.RESIZE_END,"event",e)),mxEvent.consume(e)});mxEvent.addGestureListeners(document,null,n,t),this.fireEvent(new mxEventObject(mxEvent.RESIZE_START,"event",e)),mxEvent.consume(e)}),null,null),this.div.appendChild(this.resize)):this.resize.style.display="inline":null!=this.resize&&(this.resize.style.display="none")},mxWindow.prototype.setSize=function(e,n){e=Math.max(this.minimumSize.width,e),n=Math.max(this.minimumSize.height,n),mxClient.IS_IE||(this.div.style.width=e+"px",this.div.style.height=n+"px"),this.table.style.width=e+"px",this.table.style.height=n+"px",mxClient.IS_IE||(this.contentWrapper.style.height=this.div.offsetHeight-this.title.offsetHeight-2+"px")},mxWindow.prototype.setMinimizable=function(e){this.minimize.style.display=e?"":"none"},mxWindow.prototype.getMinimumSize=function(){return new mxRectangle(0,0,0,this.title.offsetHeight)},mxWindow.prototype.installMinimizeHandler=function(){this.minimize=document.createElement("img"),this.minimize.setAttribute("src",this.minimizeImage),this.minimize.setAttribute("align","right"),this.minimize.setAttribute("title","Minimize"),this.minimize.style.cursor="pointer",this.minimize.style.marginRight="1px",this.minimize.style.display="none",this.title.appendChild(this.minimize);var t=!1,a=null,i=null,e=mxUtils.bind(this,function(e){if(this.activate(),t)t=!1,this.minimize.setAttribute("src",this.minimizeImage),this.minimize.setAttribute("title","Minimize"),this.contentWrapper.style.display="",this.maximize.style.display=a,mxClient.IS_IE||(this.div.style.height=i),this.table.style.height=i,null!=this.resize&&(this.resize.style.visibility=""),this.fireEvent(new mxEventObject(mxEvent.NORMALIZE,"event",e));else{t=!0,this.minimize.setAttribute("src",this.normalizeImage),this.minimize.setAttribute("title","Normalize"),this.contentWrapper.style.display="none",a=this.maximize.style.display,this.maximize.style.display="none",i=this.table.style.height;var n=this.getMinimumSize();0<n.height&&(mxClient.IS_IE||(this.div.style.height=n.height+"px"),this.table.style.height=n.height+"px"),0<n.width&&(mxClient.IS_IE||(this.div.style.width=n.width+"px"),this.table.style.width=n.width+"px"),null!=this.resize&&(this.resize.style.visibility="hidden"),this.fireEvent(new mxEventObject(mxEvent.MINIMIZE,"event",e))}mxEvent.consume(e)});mxEvent.addListener(this.minimize,"mousedown",e),mxClient.IS_TOUCH&&mxEvent.addListener(this.minimize,"touchstart",e)},mxWindow.prototype.setMaximizable=function(e){this.maximize.style.display=e?"":"none"},mxWindow.prototype.installMaximizeHandler=function(){this.maximize=document.createElement("img"),this.maximize.setAttribute("src",this.maximizeImage),this.maximize.setAttribute("align","right"),this.maximize.setAttribute("title","Maximize"),this.maximize.style.cursor="default",this.maximize.style.marginLeft="1px",this.maximize.style.cursor="pointer",this.maximize.style.display="none",this.title.appendChild(this.maximize);var t=!1,a=null,i=null,s=null,o=null,e=mxUtils.bind(this,function(e){if(this.activate(),"none"!=this.maximize.style.display){if(t)t=!1,this.maximize.setAttribute("src",this.maximizeImage),this.maximize.setAttribute("title","Maximize"),this.contentWrapper.style.display="",this.minimize.style.visibility="",this.div.style.left=a+"px",this.div.style.top=i+"px",mxClient.IS_IE||(this.div.style.height=s,this.div.style.width=o,"auto"!=(n=mxUtils.getCurrentStyle(this.contentWrapper)).overflow&&null==this.resize)||(this.contentWrapper.style.height=this.div.offsetHeight-this.title.offsetHeight-2+"px"),this.table.style.height=s,this.table.style.width=o,null!=this.resize&&(this.resize.style.visibility=""),this.fireEvent(new mxEventObject(mxEvent.NORMALIZE,"event",e));else{if(t=!0,this.maximize.setAttribute("src",this.normalizeImage),this.maximize.setAttribute("title","Normalize"),this.contentWrapper.style.display="",this.minimize.style.visibility="hidden",a=parseInt(this.div.style.left),i=parseInt(this.div.style.top),s=this.table.style.height,o=this.table.style.width,this.div.style.left="0px",this.div.style.top="0px",mxClient.IS_IE||(this.div.style.height=document.body.clientHeight-2+"px",this.div.style.width=document.body.clientWidth-2+"px"),this.table.style.width=document.body.clientWidth-2+"px",this.table.style.height=document.body.clientHeight-2+"px",null!=this.resize&&(this.resize.style.visibility="hidden"),!mxClient.IS_IE){var n=mxUtils.getCurrentStyle(this.contentWrapper);"auto"!=n.overflow&&null==this.resize||(this.contentWrapper.style.height=this.div.offsetHeight-this.title.offsetHeight-2+"px")}this.fireEvent(new mxEventObject(mxEvent.MAXIMIZE,"event",e))}mxEvent.consume(e)}});mxEvent.addGestureListeners(this.maximize,e),mxEvent.addListener(this.title,"dblclick",e)},mxWindow.prototype.installMoveHandler=function(){this.title.style.cursor="move",mxEvent.addGestureListeners(this.title,mxUtils.bind(this,function(e){var a=mxEvent.getClientX(e),i=mxEvent.getClientY(e),s=this.getX(),o=this.getY(),n=mxUtils.bind(this,function(e){var n=mxEvent.getClientX(e)-a,t=mxEvent.getClientY(e)-i;this.setLocation(s+n,o+t),this.fireEvent(new mxEventObject(mxEvent.MOVE,"event",e)),mxEvent.consume(e)}),t=mxUtils.bind(this,function(e){mxEvent.removeGestureListeners(document,null,n,t),this.fireEvent(new mxEventObject(mxEvent.MOVE_END,"event",e)),mxEvent.consume(e)});mxEvent.addGestureListeners(document,null,n,t),this.fireEvent(new mxEventObject(mxEvent.MOVE_START,"event",e)),mxEvent.consume(e)}))},mxWindow.prototype.setLocation=function(e,n){this.div.style.left=e+"px",this.div.style.top=n+"px"},mxWindow.prototype.getX=function(){return parseInt(this.div.style.left)},mxWindow.prototype.getY=function(){return parseInt(this.div.style.top)},mxWindow.prototype.installCloseHandler=function(){this.closeImg=document.createElement("img"),this.closeImg.setAttribute("src",this.closeImage),this.closeImg.setAttribute("align","right"),this.closeImg.setAttribute("title","Close"),this.closeImg.style.marginLeft="2px",this.closeImg.style.cursor="pointer",this.closeImg.style.display="none",this.title.insertBefore(this.closeImg,this.title.firstChild),mxEvent.addGestureListeners(this.closeImg,mxUtils.bind(this,function(e){this.fireEvent(new mxEventObject(mxEvent.CLOSE,"event",e)),this.destroyOnClose?this.destroy():this.setVisible(!1),mxEvent.consume(e)}))},mxWindow.prototype.setImage=function(e){this.image=document.createElement("img"),this.image.setAttribute("src",e),this.image.setAttribute("align","left"),this.image.style.marginRight="4px",this.image.style.marginLeft="0px",this.image.style.marginTop="-2px",this.title.insertBefore(this.image,this.title.firstChild)},mxWindow.prototype.setClosable=function(e){this.closeImg.style.display=e?"":"none"},mxWindow.prototype.isVisible=function(){return null!=this.div&&"hidden"!=this.div.style.visibility},mxWindow.prototype.setVisible=function(e){null!=this.div&&this.isVisible()!=e&&(e?this.show():this.hide())},mxWindow.prototype.show=function(){this.div.style.visibility="",this.activate();var e=mxUtils.getCurrentStyle(this.contentWrapper);mxClient.IS_IE||"auto"!=e.overflow&&null==this.resize||(this.contentWrapper.style.height=this.div.offsetHeight-this.title.offsetHeight-2+"px"),this.fireEvent(new mxEventObject(mxEvent.SHOW))},mxWindow.prototype.hide=function(){this.div.style.visibility="hidden",this.fireEvent(new mxEventObject(mxEvent.HIDE))},mxWindow.prototype.destroy=function(){this.fireEvent(new mxEventObject(mxEvent.DESTROY)),null!=this.div&&(mxEvent.release(this.div),this.div.parentNode.removeChild(this.div),this.div=null),this.contentWrapper=this.content=this.title=null},mxForm.prototype.table=null,mxForm.prototype.body=!1,mxForm.prototype.getTable=function(){return this.table},mxForm.prototype.addButtons=function(e,n){var t=document.createElement("tr"),a=document.createElement("td");t.appendChild(a);a=document.createElement("td");var i=document.createElement("button");mxUtils.write(i,mxResources.get("ok")||"OK"),a.appendChild(i),mxEvent.addListener(i,"click",function(){e()}),i=document.createElement("button"),mxUtils.write(i,mxResources.get("cancel")||"Cancel"),a.appendChild(i),mxEvent.addListener(i,"click",function(){n()}),t.appendChild(a),this.body.appendChild(t)},mxForm.prototype.addText=function(e,n){var t=document.createElement("input");return t.setAttribute("type","text"),t.value=n,this.addField(e,t)},mxForm.prototype.addCheckbox=function(e,n){var t=document.createElement("input");return t.setAttribute("type","checkbox"),this.addField(e,t),n&&(t.checked=!0),t},mxForm.prototype.addTextarea=function(e,n,t){var a=document.createElement("textarea");return mxClient.IS_NS&&t--,a.setAttribute("rows",t||2),a.value=n,this.addField(e,a)},mxForm.prototype.addCombo=function(e,n,t){var a=document.createElement("select");return null!=t&&a.setAttribute("size",t),n&&a.setAttribute("multiple","true"),this.addField(e,a)},mxForm.prototype.addOption=function(e,n,t,a){var i=document.createElement("option");mxUtils.writeln(i,n),i.setAttribute("value",t),a&&i.setAttribute("selected",a),e.appendChild(i)},mxForm.prototype.addField=function(e,n){var t=document.createElement("tr"),a=document.createElement("td");return mxUtils.write(a,e),t.appendChild(a),(a=document.createElement("td")).appendChild(n),t.appendChild(a),this.body.appendChild(t),n},mxImage.prototype.src=null,mxImage.prototype.width=null,mxImage.prototype.height=null,mxDivResizer.prototype.resizeWidth=!0,mxDivResizer.prototype.resizeHeight=!0,mxDivResizer.prototype.handlingResize=!1,mxDivResizer.prototype.resize=function(){var e=this.getDocumentWidth(),n=this.getDocumentHeight(),t=parseInt(this.div.style.left),a=parseInt(this.div.style.right),i=parseInt(this.div.style.top),s=parseInt(this.div.style.bottom);this.resizeWidth&&!isNaN(t)&&!isNaN(a)&&0<=t&&0<=a&&0<e-a-t&&(this.div.style.width=e-a-t+"px"),this.resizeHeight&&!isNaN(i)&&!isNaN(s)&&0<=i&&0<=s&&0<n-i-s&&(this.div.style.height=n-i-s+"px")},mxDivResizer.prototype.getDocumentWidth=function(){return document.body.clientWidth},mxDivResizer.prototype.getDocumentHeight=function(){return document.body.clientHeight},mxDragSource.prototype.element=null,mxDragSource.prototype.dropHandler=null,mxDragSource.prototype.dragOffset=null,mxDragSource.prototype.dragElement=null,mxDragSource.prototype.previewElement=null,mxDragSource.prototype.enabled=!0,mxDragSource.prototype.currentGraph=null,mxDragSource.prototype.currentDropTarget=null,mxDragSource.prototype.currentPoint=null,mxDragSource.prototype.currentGuide=null,mxDragSource.prototype.currentHighlight=null,mxDragSource.prototype.autoscroll=!0,mxDragSource.prototype.guidesEnabled=!0,mxDragSource.prototype.gridEnabled=!0,mxDragSource.prototype.highlightDropTargets=!0,mxDragSource.prototype.dragElementZIndex=100,mxDragSource.prototype.dragElementOpacity=70,mxDragSource.prototype.isEnabled=function(){return this.enabled},mxDragSource.prototype.setEnabled=function(e){this.enabled=e},mxDragSource.prototype.isGuidesEnabled=function(){return this.guidesEnabled},mxDragSource.prototype.setGuidesEnabled=function(e){this.guidesEnabled=e},mxDragSource.prototype.isGridEnabled=function(){return this.gridEnabled},mxDragSource.prototype.setGridEnabled=function(e){this.gridEnabled=e},mxDragSource.prototype.getGraphForEvent=function(e){return null},mxDragSource.prototype.getDropTarget=function(e,n,t){return e.getCellAt(n,t)},mxDragSource.prototype.createDragElement=function(e){return this.element.cloneNode(!0)},mxDragSource.prototype.createPreviewElement=function(e){return null},mxDragSource.prototype.mouseDown=function(e){this.enabled&&!mxEvent.isConsumed(e)&&null==this.mouseMoveHandler&&(this.startDrag(e),this.mouseMoveHandler=mxUtils.bind(this,this.mouseMove),this.mouseUpHandler=mxUtils.bind(this,this.mouseUp),mxEvent.addGestureListeners(document,null,this.mouseMoveHandler,this.mouseUpHandler),mxEvent.consume(e,!0,!1))},mxDragSource.prototype.startDrag=function(e){this.dragElement=this.createDragElement(e),this.dragElement.style.position="absolute",this.dragElement.style.zIndex=this.dragElementZIndex,mxUtils.setOpacity(this.dragElement,this.dragElementOpacity)},mxDragSource.prototype.stopDrag=function(e){null!=this.dragElement&&(null!=this.dragElement.parentNode&&this.dragElement.parentNode.removeChild(this.dragElement),this.dragElement=null)},mxDragSource.prototype.graphContainsEvent=function(e,n){var t=mxEvent.getClientX(n),a=mxEvent.getClientY(n),i=mxUtils.getOffset(e.container),s=mxUtils.getScrollOrigin();return t>=i.x-s.x&&a>=i.y-s.y&&t<=i.x-s.x+e.container.offsetWidth&&a<=i.y-s.y+e.container.offsetHeight},mxDragSource.prototype.mouseMove=function(e){if(null!=(n=this.getGraphForEvent(e))&&!this.graphContainsEvent(n,e)&&(n=null),n!=this.currentGraph&&(null!=this.currentGraph&&this.dragExit(this.currentGraph),this.currentGraph=n,null!=this.currentGraph&&this.dragEnter(this.currentGraph)),null!=this.currentGraph&&this.dragOver(this.currentGraph,e),null==this.dragElement||null!=this.previewElement&&"visible"==this.previewElement.style.visibility)null!=this.dragElement&&(this.dragElement.style.visibility="hidden");else{var n=mxEvent.getClientX(e),t=mxEvent.getClientY(e);null==this.dragElement.parentNode&&document.body.appendChild(this.dragElement),this.dragElement.style.visibility="visible",null!=this.dragOffset&&(n+=this.dragOffset.x,t+=this.dragOffset.y),n+=document.body.scrollLeft||document.documentElement.scrollLeft,t+=document.body.scrollTop||document.documentElement.scrollTop,this.dragElement.style.left=n+"px",this.dragElement.style.top=t+"px"}mxEvent.consume(e)},mxDragSource.prototype.mouseUp=function(e){if(null!=this.currentGraph){if(null!=this.currentPoint&&(null==this.previewElement||"hidden"!=this.previewElement.style.visibility)){var n=this.currentGraph.view.scale,t=this.currentGraph.view.translate;this.drop(this.currentGraph,e,this.currentDropTarget,this.currentPoint.x/n-t.x,this.currentPoint.y/n-t.y)}this.dragExit(this.currentGraph)}this.stopDrag(e),mxEvent.removeGestureListeners(document,null,this.mouseMoveHandler,this.mouseUpHandler),this.currentGraph=this.mouseUpHandler=this.mouseMoveHandler=null,mxEvent.consume(e)},mxDragSource.prototype.dragEnter=function(e){e.isMouseDown=!0,this.previewElement=this.createPreviewElement(e),this.isGuidesEnabled()&&null!=this.previewElement&&(this.currentGuide=new mxGuide(e,e.graphHandler.getGuideStates())),this.highlightDropTargets&&(this.currentHighlight=new mxCellHighlight(e,mxConstants.DROP_TARGET_COLOR))},mxDragSource.prototype.dragExit=function(e){this.currentPoint=this.currentDropTarget=null,e.isMouseDown=!1,null!=this.previewElement&&(null!=this.previewElement.parentNode&&this.previewElement.parentNode.removeChild(this.previewElement),this.previewElement=null),null!=this.currentGuide&&(this.currentGuide.destroy(),this.currentGuide=null),null!=this.currentHighlight&&(this.currentHighlight.destroy(),this.currentHighlight=null)},mxDragSource.prototype.dragOver=function(e,n){var t=mxUtils.getOffset(e.container),a=mxUtils.getScrollOrigin(e.container),i=mxEvent.getClientX(n)-t.x+a.x;t=mxEvent.getClientY(n)-t.y+a.y;if(e.autoScroll&&(null==this.autoscroll||this.autoscroll)&&e.scrollPointToVisible(i,t,e.autoExtend),null!=this.currentHighlight&&e.isDropEnabled()&&(this.currentDropTarget=this.getDropTarget(e,i,t),a=e.getView().getState(this.currentDropTarget),this.currentHighlight.highlight(a)),null!=this.previewElement){null==this.previewElement.parentNode&&(e.container.appendChild(this.previewElement),this.previewElement.style.zIndex="3",this.previewElement.style.position="absolute");a=this.isGridEnabled()&&e.isGridEnabledEvent(n);var s=!0;if(null!=this.currentGuide&&this.currentGuide.isEnabledForEvent(n))s=new mxRectangle(0,0,s=parseInt(this.previewElement.style.width),o=parseInt(this.previewElement.style.height)),t=new mxPoint(i,t),t=this.currentGuide.move(s,t,a),s=!1,i=t.x,t=t.y;else if(a){a=e.view.scale;var o=e.view.translate,r=e.gridSize/2;i=(e.snap(i/a-o.x-r)+o.x)*a,t=(e.snap(t/a-o.y-r)+o.y)*a}null!=this.currentGuide&&s&&this.currentGuide.hide(),null!=this.previewOffset&&(i+=this.previewOffset.x,t+=this.previewOffset.y),this.previewElement.style.left=Math.round(i)+"px",this.previewElement.style.top=Math.round(t)+"px",this.previewElement.style.visibility="visible"}this.currentPoint=new mxPoint(i,t)},mxDragSource.prototype.drop=function(e,n,t,a,i){this.dropHandler(e,n,t,a,i),e.container.focus()},mxToolbar.prototype=new mxEventSource,mxToolbar.prototype.constructor=mxToolbar,mxToolbar.prototype.container=null,mxToolbar.prototype.enabled=!0,mxToolbar.prototype.noReset=!1,mxToolbar.prototype.updateDefaultMode=!0,mxToolbar.prototype.addItem=function(e,n,t,a,i,s){var o=document.createElement(null!=n?"img":"button"),r=i||(null!=s?"mxToolbarMode":"mxToolbarItem");return o.className=r,o.setAttribute("src",n),null!=e&&(null!=n?o.setAttribute("title",e):mxUtils.write(o,e)),this.container.appendChild(o),null!=t&&(mxEvent.addListener(o,"click",t),mxClient.IS_TOUCH&&mxEvent.addListener(o,"touchend",t)),e=mxUtils.bind(this,function(e){null!=a?o.setAttribute("src",n):o.style.backgroundColor=""}),mxEvent.addGestureListeners(o,mxUtils.bind(this,function(e){if(null!=a?o.setAttribute("src",a):o.style.backgroundColor="gray",null!=s){null==this.menu&&(this.menu=new mxPopupMenu,this.menu.init());var n=this.currentImg;this.menu.isMenuShowing()&&this.menu.hideMenu(),n!=o&&(this.currentImg=o,this.menu.factoryMethod=s,n=new mxPoint(o.offsetLeft,o.offsetTop+o.offsetHeight),this.menu.popup(n.x,n.y,null,e),this.menu.isMenuShowing()&&(o.className=r+"Selected",this.menu.hideMenu=function(){mxPopupMenu.prototype.hideMenu.apply(this),o.className=r,this.currentImg=null}))}}),null,e),mxEvent.addListener(o,"mouseout",e),o},mxToolbar.prototype.addCombo=function(e){var n=document.createElement("div");n.style.display="inline",n.className="mxToolbarComboContainer";var t=document.createElement("select");return t.className=e||"mxToolbarCombo",n.appendChild(t),this.container.appendChild(n),t},mxToolbar.prototype.addActionCombo=function(e,n){var t=document.createElement("select");return t.className=n||"mxToolbarCombo",this.addOption(t,e,null),mxEvent.addListener(t,"change",function(e){var n=t.options[t.selectedIndex];t.selectedIndex=0,null!=n.funct&&n.funct(e)}),this.container.appendChild(t),t},mxToolbar.prototype.addOption=function(e,n,t){var a=document.createElement("option");return mxUtils.writeln(a,n),"function"==typeof t?a.funct=t:a.setAttribute("value",t),e.appendChild(a),a},mxToolbar.prototype.addSwitchMode=function(e,n,t,a,i){var s=document.createElement("img");return s.initialClassName=i||"mxToolbarMode",s.className=s.initialClassName,s.setAttribute("src",n),s.altIcon=a,null!=e&&s.setAttribute("title",e),mxEvent.addListener(s,"click",mxUtils.bind(this,function(e){null!=(e=this.selectedMode.altIcon)?(this.selectedMode.altIcon=this.selectedMode.getAttribute("src"),this.selectedMode.setAttribute("src",e)):this.selectedMode.className=this.selectedMode.initialClassName,this.updateDefaultMode&&(this.defaultMode=s),null!=(e=(this.selectedMode=s).altIcon)?(s.altIcon=s.getAttribute("src"),s.setAttribute("src",e)):s.className=s.initialClassName+"Selected",this.fireEvent(new mxEventObject(mxEvent.SELECT)),t()})),this.container.appendChild(s),null==this.defaultMode&&(this.defaultMode=s,this.selectMode(s),t()),s},mxToolbar.prototype.addMode=function(e,n,t,a,i,s){s=null==s||s;var o=document.createElement(null!=n?"img":"button");return o.initialClassName=i||"mxToolbarMode",o.className=o.initialClassName,o.setAttribute("src",n),o.altIcon=a,null!=e&&o.setAttribute("title",e),this.enabled&&s&&(mxEvent.addListener(o,"click",mxUtils.bind(this,function(e){this.selectMode(o,t),this.noReset=!1})),mxEvent.addListener(o,"dblclick",mxUtils.bind(this,function(e){this.selectMode(o,t),this.noReset=!0})),null==this.defaultMode&&(this.defaultMode=o,this.defaultFunction=t,this.selectMode(o,t))),this.container.appendChild(o),o},mxToolbar.prototype.selectMode=function(e,n){if(this.selectedMode!=e){if(null!=this.selectedMode){var t=this.selectedMode.altIcon;null!=t?(this.selectedMode.altIcon=this.selectedMode.getAttribute("src"),this.selectedMode.setAttribute("src",t)):this.selectedMode.className=this.selectedMode.initialClassName}this.selectedMode=e,null!=(t=this.selectedMode.altIcon)?(this.selectedMode.altIcon=this.selectedMode.getAttribute("src"),this.selectedMode.setAttribute("src",t)):this.selectedMode.className=this.selectedMode.initialClassName+"Selected",this.fireEvent(new mxEventObject(mxEvent.SELECT,"function",n))}},mxToolbar.prototype.resetMode=function(e){(e||!this.noReset)&&this.selectedMode!=this.defaultMode&&this.selectMode(this.defaultMode,this.defaultFunction)},mxToolbar.prototype.addSeparator=function(e){return this.addItem(null,e,null)},mxToolbar.prototype.addBreak=function(){mxUtils.br(this.container)},mxToolbar.prototype.addLine=function(){var e=document.createElement("hr");e.style.marginRight="6px",e.setAttribute("size","1"),this.container.appendChild(e)},mxToolbar.prototype.destroy=function(){mxEvent.release(this.container),this.selectedMode=this.defaultFunction=this.defaultMode=this.container=null,null!=this.menu&&this.menu.destroy()},mxSession.prototype=new mxEventSource,mxSession.prototype.constructor=mxSession,mxSession.prototype.model=null,mxSession.prototype.urlInit=null,mxSession.prototype.urlPoll=null,mxSession.prototype.urlNotify=null,mxSession.prototype.codec=null,mxSession.prototype.linefeed="
",mxSession.prototype.escapePostData=!0,mxSession.prototype.significantRemoteChanges=!0,mxSession.prototype.sent=0,mxSession.prototype.received=0,mxSession.prototype.debug=!1,mxSession.prototype.connected=!1,mxSession.prototype.suspended=!1,mxSession.prototype.polling=!1,mxSession.prototype.start=function(){this.debug?(this.connected=!0,this.fireEvent(new mxEventObject(mxEvent.CONNECT))):this.connected||this.get(this.urlInit,mxUtils.bind(this,function(e){this.connected=!0,this.fireEvent(new mxEventObject(mxEvent.CONNECT)),this.poll()}))},mxSession.prototype.suspend=function(){this.connected&&!this.suspended&&(this.suspended=!0,this.fireEvent(new mxEventObject(mxEvent.SUSPEND)))},mxSession.prototype.resume=function(e,n,t){this.connected&&this.suspended&&(this.suspended=!1,this.fireEvent(new mxEventObject(mxEvent.RESUME)),this.polling||this.poll())},mxSession.prototype.stop=function(e){this.connected&&(this.connected=!1),this.fireEvent(new mxEventObject(mxEvent.DISCONNECT,"reason",e))},mxSession.prototype.poll=function(){this.connected&&!this.suspended&&null!=this.urlPoll?(this.polling=!0,this.get(this.urlPoll,mxUtils.bind(this,function(){this.poll()}))):this.polling=!1},mxSession.prototype.notify=function(e,n,t){null!=e&&0<e.length&&(null!=this.urlNotify&&(this.debug?(mxLog.show(),mxLog.debug("mxSession.notify: "+this.urlNotify+" xml="+e)):(e="<message><delta>"+e+"</delta></message>",this.escapePostData&&(e=encodeURIComponent(e)),mxUtils.post(this.urlNotify,"xml="+e,n,t))),this.sent+=e.length,this.fireEvent(new mxEventObject(mxEvent.NOTIFY,"url",this.urlNotify,"xml",e)))},mxSession.prototype.get=function(t,a,n){if(void 0!==mxUtils){var i=mxUtils.bind(this,function(e){null!=n?n(e):this.stop(e)});mxUtils.get(t,mxUtils.bind(this,function(e){if(void 0!==mxUtils)if(e.isReady()&&404!=e.getStatus()){if(this.received+=e.getText().length,this.fireEvent(new mxEventObject(mxEvent.GET,"url",t,"request",e)),this.isValidResponse(e)){if(0<e.getText().length){var n=e.getDocumentElement();null==n?i("Invalid response: "+e.getText()):this.receive(n)}null!=a&&a(e)}}else i("Response not ready")}),function(e){i("Transmission error")})}},mxSession.prototype.isValidResponse=function(e){return e.getText().indexOf("<?php")<0},mxSession.prototype.encodeChanges=function(e,n){for(var t="",a=n?-1:1,i=n?e.length-1:0;0<=i&&i<e.length;i+=a){var s=this.codec.encode(e[i]);t=t+mxUtils.getXml(s,this.linefeed)}return t},mxSession.prototype.receive=function(e){if(null!=e&&e.nodeType==mxConstants.NODETYPE_ELEMENT){var n=e.getAttribute("namespace");for(null!=n&&(this.model.prefix=n+"-"),n=e.firstChild;null!=n;){var t=n.nodeName.toLowerCase();"state"==t?this.processState(n):"delta"==t&&this.processDelta(n),n=n.nextSibling}this.fireEvent(new mxEventObject(mxEvent.RECEIVE,"node",e))}},mxSession.prototype.processState=function(e){new mxCodec(e.ownerDocument).decode(e.firstChild,this.model)},mxSession.prototype.processDelta=function(e){for(e=e.firstChild;null!=e;)"edit"==e.nodeName&&this.processEdit(e),e=e.nextSibling},mxSession.prototype.processEdit=function(e){if(0<(e=this.decodeChanges(e)).length){var n=this.createUndoableEdit(e);this.model.fireEvent(new mxEventObject(mxEvent.CHANGE,"edit",n,"changes",e)),this.model.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",n)),this.fireEvent(new mxEventObject(mxEvent.FIRED,"edit",n))}},mxSession.prototype.createUndoableEdit=function(e){var n=new mxUndoableEdit(this.model,this.significantRemoteChanges);return n.changes=e,n.notify=function(){n.source.fireEvent(new mxEventObject(mxEvent.CHANGE,"edit",n,"changes",n.changes)),n.source.fireEvent(new mxEventObject(mxEvent.NOTIFY,"edit",n,"changes",n.changes))},n},mxSession.prototype.decodeChanges=function(e){this.codec.document=e.ownerDocument;var n=[];for(e=e.firstChild;null!=e;){var t=this.decodeChange(e);null!=t&&n.push(t),e=e.nextSibling}return n},mxSession.prototype.decodeChange=function(e){var n=null;return e.nodeType==mxConstants.NODETYPE_ELEMENT&&(null!=(n="mxRootChange"==e.nodeName?new mxCodec(e.ownerDocument).decode(e):this.codec.decode(e))&&(n.model=this.model,n.execute(),"mxChildChange"==e.nodeName&&null==n.parent&&this.cellRemoved(n.child))),n},mxSession.prototype.cellRemoved=function(e,n){this.codec.putObject(e.getId(),e);for(var t=this.model.getChildCount(e),a=0;a<t;a++)this.cellRemoved(this.model.getChildAt(e,a))},mxUndoableEdit.prototype.source=null,mxUndoableEdit.prototype.changes=null,mxUndoableEdit.prototype.significant=null,mxUndoableEdit.prototype.undone=!1,mxUndoableEdit.prototype.redone=!1,mxUndoableEdit.prototype.isEmpty=function(){return 0==this.changes.length},mxUndoableEdit.prototype.isSignificant=function(){return this.significant},mxUndoableEdit.prototype.add=function(e){this.changes.push(e)},mxUndoableEdit.prototype.notify=function(){},mxUndoableEdit.prototype.die=function(){},mxUndoableEdit.prototype.undo=function(){if(!this.undone){this.source.fireEvent(new mxEventObject(mxEvent.START_EDIT));for(var e=this.changes.length-1;0<=e;e--){var n=this.changes[e];null!=n.execute?n.execute():null!=n.undo&&n.undo(),this.source.fireEvent(new mxEventObject(mxEvent.EXECUTED,"change",n))}this.undone=!0,this.redone=!1,this.source.fireEvent(new mxEventObject(mxEvent.END_EDIT))}this.notify()},mxUndoableEdit.prototype.redo=function(){if(!this.redone){this.source.fireEvent(new mxEventObject(mxEvent.START_EDIT));for(var e=this.changes.length,n=0;n<e;n++){var t=this.changes[n];null!=t.execute?t.execute():null!=t.redo&&t.redo(),this.source.fireEvent(new mxEventObject(mxEvent.EXECUTED,"change",t))}this.undone=!1,this.redone=!0,this.source.fireEvent(new mxEventObject(mxEvent.END_EDIT))}this.notify()},mxUndoManager.prototype=new mxEventSource,mxUndoManager.prototype.constructor=mxUndoManager,mxUndoManager.prototype.size=null,mxUndoManager.prototype.history=null,mxUndoManager.prototype.indexOfNextAdd=0,mxUndoManager.prototype.isEmpty=function(){return 0==this.history.length},mxUndoManager.prototype.clear=function(){this.history=[],this.indexOfNextAdd=0,this.fireEvent(new mxEventObject(mxEvent.CLEAR))},mxUndoManager.prototype.canUndo=function(){return 0<this.indexOfNextAdd},mxUndoManager.prototype.undo=function(){for(;0<this.indexOfNextAdd;){var e=this.history[--this.indexOfNextAdd];if(e.undo(),e.isSignificant()){this.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",e));break}}},mxUndoManager.prototype.canRedo=function(){return this.indexOfNextAdd<this.history.length},mxUndoManager.prototype.redo=function(){for(var e=this.history.length;this.indexOfNextAdd<e;){var n=this.history[this.indexOfNextAdd++];if(n.redo(),n.isSignificant()){this.fireEvent(new mxEventObject(mxEvent.REDO,"edit",n));break}}},mxUndoManager.prototype.undoableEditHappened=function(e){this.trim(),0<this.size&&this.size==this.history.length&&this.history.shift(),this.history.push(e),this.indexOfNextAdd=this.history.length,this.fireEvent(new mxEventObject(mxEvent.ADD,"edit",e))},mxUndoManager.prototype.trim=function(){if(this.history.length>this.indexOfNextAdd)for(var e=this.history.splice(this.indexOfNextAdd,this.history.length-this.indexOfNextAdd),n=0;n<e.length;n++)e[n].die()};var mxUrlConverter=function(e){var t=!0,a=null,i=null;return{isEnabled:function(){return t},setEnabled:function(e){t=e},getBaseUrl:function(){return a},setBaseUrl:function(e){a=e},getBaseDomain:function(){return a},setBaseDomain:function(e){a=e},isRelativeUrl:function(e){return"http://"!=e.substring(0,7)&&"https://"!=e.substring(0,8)&&"data:image"!=e.substring(0,10)},convert:function(e){if(t&&this.isRelativeUrl(e)){if(null==a){i=location.protocol+"//"+location.host;var n=(a=i+location.pathname).lastIndexOf("/");0<n&&(a=a.substring(0,n+1))}e="/"==e.charAt(0)?i+e:a+e}return e}}};function mxPanningManager(s){this.thread=null,this.active=!1,this.dy=this.dx=this.t0y=this.t0x=this.tdy=this.tdx=0,this.scrollbars=!1,this.scrollTop=this.scrollLeft=0,this.mouseListener={mouseDown:function(e,n){},mouseMove:function(e,n){},mouseUp:mxUtils.bind(this,function(e,n){this.active&&this.stop()})},s.addMouseListener(this.mouseListener),mxEvent.addListener(document,"mouseup",mxUtils.bind(this,function(){this.active&&this.stop()}));var o=mxUtils.bind(this,function(){return this.scrollbars=mxUtils.hasScrollbars(s.container),this.scrollLeft=s.container.scrollLeft,this.scrollTop=s.container.scrollTop,window.setInterval(mxUtils.bind(this,function(){if(this.tdx-=this.dx,this.tdy-=this.dy,this.scrollbars){var e=-s.container.scrollLeft-Math.ceil(this.dx),n=-s.container.scrollTop-Math.ceil(this.dy);s.panGraph(e,n),s.panDx=this.scrollLeft-s.container.scrollLeft,s.panDy=this.scrollTop-s.container.scrollTop,s.fireEvent(new mxEventObject(mxEvent.PAN))}else s.panGraph(this.getDx(),this.getDy())}),this.delay)});this.isActive=function(){return active},this.getDx=function(){return Math.round(this.tdx)},this.getDy=function(){return Math.round(this.tdy)},this.start=function(){this.t0x=s.view.translate.x,this.t0y=s.view.translate.y,this.active=!0},this.panTo=function(e,n,t,a){this.active||this.start(),this.scrollLeft=s.container.scrollLeft,this.scrollTop=s.container.scrollTop,a=null!=a?a:0;var i=s.container;this.dx=e+(null!=t?t:0)-i.scrollLeft-i.clientWidth,this.dx<0&&Math.abs(this.dx)<this.border?this.dx=this.border+this.dx:this.dx=this.handleMouseOut?Math.max(this.dx,0):0,0==this.dx&&(this.dx=e-i.scrollLeft,this.dx=0<this.dx&&this.dx<this.border?this.dx-this.border:this.handleMouseOut?Math.min(0,this.dx):0),this.dy=n+a-i.scrollTop-i.clientHeight,this.dy<0&&Math.abs(this.dy)<this.border?this.dy=this.border+this.dy:this.dy=this.handleMouseOut?Math.max(this.dy,0):0,0==this.dy&&(this.dy=n-i.scrollTop,this.dy=0<this.dy&&this.dy<this.border?this.dy-this.border:this.handleMouseOut?Math.min(0,this.dy):0),0!=this.dx||0!=this.dy?(this.dx*=this.damper,this.dy*=this.damper,null==this.thread&&(this.thread=o())):null!=this.thread&&(window.clearInterval(this.thread),this.thread=null)},this.stop=function(){if(this.active)if(this.active=!1,null!=this.thread&&(window.clearInterval(this.thread),this.thread=null),this.tdy=this.tdx=0,this.scrollbars)s.panDx=0,s.panDy=0,s.fireEvent(new mxEventObject(mxEvent.PAN));else{var e=s.panDx,n=s.panDy;0==e&&0==n||(s.panGraph(0,0),s.view.setTranslate(this.t0x+e/s.view.scale,this.t0y+n/s.view.scale))}},this.destroy=function(){s.removeMouseListener(this.mouseListener)}}function mxPopupMenu(e){null!=(this.factoryMethod=e)&&this.init()}function mxAutoSaveManager(e){this.changeHandler=mxUtils.bind(this,function(e,n){this.isEnabled()&&this.graphModelChanged(n.getProperty("edit").changes)}),this.setGraph(e)}function mxAnimation(e){this.delay=null!=e?e:20}function mxMorphing(e,n,t,a){mxAnimation.call(this,a),this.graph=e,this.steps=null!=n?n:6,this.ease=null!=t?t:1.5}function mxImageBundle(e){this.images=[],this.alt=null!=e&&e}function mxImageExport(){}function mxAbstractCanvas2D(){this.converter=this.createUrlConverter(),this.reset()}function mxXmlCanvas2D(e){mxAbstractCanvas2D.call(this),this.root=e,this.writeDefaults()}function mxSvgCanvas2D(e,n){mxAbstractCanvas2D.call(this),this.root=e,this.gradients=[],this.defs=null,this.styleEnabled=null!=n&&n;var t=null;if(e.ownerDocument!=document)for(t=e;null!=t&&"svg"!=t.nodeName;)t=t.parentNode;null!=t&&(0<t.getElementsByTagName("defs").length&&(this.defs=t.getElementsByTagName("defs")[0]),null==this.defs&&(this.defs=this.createElement("defs"),null!=t.firstChild?t.insertBefore(this.defs,t.firstChild):t.appendChild(this.defs)),this.styleEnabled&&this.defs.appendChild(this.createStyle()))}mxPanningManager.prototype.damper=1/6,mxPanningManager.prototype.delay=10,mxPanningManager.prototype.handleMouseOut=!0,mxPanningManager.prototype.border=0,mxPopupMenu.prototype=new mxEventSource,mxPopupMenu.prototype.constructor=mxPopupMenu,mxPopupMenu.prototype.submenuImage=mxClient.imageBasePath+"/submenu.gif",mxPopupMenu.prototype.zIndex=10006,mxPopupMenu.prototype.factoryMethod=null,mxPopupMenu.prototype.useLeftButtonForPopup=!1,mxPopupMenu.prototype.enabled=!0,mxPopupMenu.prototype.itemCount=0,mxPopupMenu.prototype.autoExpand=!1,mxPopupMenu.prototype.smartSeparators=!1,mxPopupMenu.prototype.labels=!0,mxPopupMenu.prototype.init=function(){this.table=document.createElement("table"),this.table.className="mxPopupMenu",this.tbody=document.createElement("tbody"),this.table.appendChild(this.tbody),this.div=document.createElement("div"),this.div.className="mxPopupMenu",this.div.style.display="inline",this.div.style.zIndex=this.zIndex,this.div.appendChild(this.table),mxEvent.disableContextMenu(this.div)},mxPopupMenu.prototype.isEnabled=function(){return this.enabled},mxPopupMenu.prototype.setEnabled=function(e){this.enabled=e},mxPopupMenu.prototype.isPopupTrigger=function(e){return e.isPopupTrigger()||this.useLeftButtonForPopup&&mxEvent.isLeftMouseButton(e.getEvent())},mxPopupMenu.prototype.addItem=function(e,n,t,a,i,s){a=a||this,this.itemCount++,a.willAddSeparator&&(a.containsItems&&this.addSeparator(a,!0),a.willAddSeparator=!1),a.containsItems=!0;var o=document.createElement("tr");o.className="mxPopupMenuItem";var r=document.createElement("td");return r.className="mxPopupMenuIcon",null!=n?((i=document.createElement("img")).src=n,r.appendChild(i)):null!=i&&((n=document.createElement("div")).className=i,r.appendChild(n)),o.appendChild(r),this.labels&&((r=document.createElement("td")).className="mxPopupMenuItem"+(null==s||s?"":" disabled"),mxUtils.write(r,e),r.align="left",o.appendChild(r),(e=document.createElement("td")).className="mxPopupMenuItem"+(null==s||s?"":" disabled"),e.style.paddingRight="6px",e.style.textAlign="right",o.appendChild(e),null==a.div&&this.createSubmenu(a)),a.tbody.appendChild(o),(null==s||s)&&(mxEvent.addGestureListeners(o,mxUtils.bind(this,function(e){this.eventReceiver=o,a.activeRow!=o&&a.activeRow!=a&&(null!=a.activeRow&&null!=a.activeRow.div.parentNode&&this.hideSubmenu(a),null!=o.div&&(this.showSubmenu(a,o),a.activeRow=o)),mxEvent.consume(e)}),mxUtils.bind(this,function(e){a.activeRow!=o&&a.activeRow!=a&&(null!=a.activeRow&&null!=a.activeRow.div.parentNode&&this.hideSubmenu(a),this.autoExpand&&null!=o.div&&(this.showSubmenu(a,o),a.activeRow=o)),o.className="mxPopupMenuItemHover"}),mxUtils.bind(this,function(e){this.eventReceiver==o&&(a.activeRow!=o&&this.hideMenu(),null!=t&&t(e)),this.eventReceiver=null,mxEvent.consume(e)})),mxEvent.addListener(o,"mouseout",mxUtils.bind(this,function(e){o.className="mxPopupMenuItem"}))),o},mxPopupMenu.prototype.createSubmenu=function(e){e.table=document.createElement("table"),e.table.className="mxPopupMenu",e.tbody=document.createElement("tbody"),e.table.appendChild(e.tbody),e.div=document.createElement("div"),e.div.className="mxPopupMenu",e.div.style.position="absolute",e.div.style.display="inline",e.div.style.zIndex=this.zIndex,e.div.appendChild(e.table);var n=document.createElement("img");n.setAttribute("src",this.submenuImage),td=e.firstChild.nextSibling.nextSibling,td.appendChild(n)},mxPopupMenu.prototype.showSubmenu=function(e,n){if(null!=n.div){n.div.style.left=e.div.offsetLeft+n.offsetLeft+n.offsetWidth-1+"px",n.div.style.top=e.div.offsetTop+n.offsetTop+"px",document.body.appendChild(n.div);var t=parseInt(n.div.offsetLeft),a=parseInt(n.div.offsetWidth),i=document.body,s=document.documentElement;t+a>(i.scrollLeft||s.scrollLeft)+(i.clientWidth||s.clientWidth)&&(n.div.style.left=e.div.offsetLeft-a+(mxClient.IS_IE?6:-6)+"px"),mxUtils.fit(n.div)}},mxPopupMenu.prototype.addSeparator=function(e,n){if(e=e||this,this.smartSeparators&&!n)e.willAddSeparator=!0;else if(null!=e.tbody){e.willAddSeparator=!1;var t=document.createElement("tr"),a=document.createElement("td");a.className="mxPopupMenuIcon",a.style.padding="0 0 0 0px",t.appendChild(a),(a=document.createElement("td")).style.padding="0 0 0 0px",a.setAttribute("colSpan","2");var i=document.createElement("hr");i.setAttribute("size","1"),a.appendChild(i),t.appendChild(a),e.tbody.appendChild(t)}},mxPopupMenu.prototype.popup=function(e,n,t,a){if(null!=this.div&&null!=this.tbody&&null!=this.factoryMethod){for(this.div.style.left=e+"px",this.div.style.top=n+"px";null!=this.tbody.firstChild;)mxEvent.release(this.tbody.firstChild),this.tbody.removeChild(this.tbody.firstChild);this.itemCount=0,this.factoryMethod(this,t,a),0<this.itemCount&&(this.showMenu(),this.fireEvent(new mxEventObject(mxEvent.SHOW)))}},mxPopupMenu.prototype.isMenuShowing=function(){return null!=this.div&&this.div.parentNode==document.body},mxPopupMenu.prototype.showMenu=function(){9<=document.documentMode&&(this.div.style.filter="none"),document.body.appendChild(this.div),mxUtils.fit(this.div)},mxPopupMenu.prototype.hideMenu=function(){null!=this.div&&(null!=this.div.parentNode&&this.div.parentNode.removeChild(this.div),this.hideSubmenu(this),this.containsItems=!1)},mxPopupMenu.prototype.hideSubmenu=function(e){null!=e.activeRow&&(this.hideSubmenu(e.activeRow),null!=e.activeRow.div.parentNode&&e.activeRow.div.parentNode.removeChild(e.activeRow.div),e.activeRow=null)},mxPopupMenu.prototype.destroy=function(){null!=this.div&&(mxEvent.release(this.div),null!=this.div.parentNode&&this.div.parentNode.removeChild(this.div),this.div=null)},mxAutoSaveManager.prototype=new mxEventSource,mxAutoSaveManager.prototype.constructor=mxAutoSaveManager,mxAutoSaveManager.prototype.graph=null,mxAutoSaveManager.prototype.autoSaveDelay=10,mxAutoSaveManager.prototype.autoSaveThrottle=2,mxAutoSaveManager.prototype.autoSaveThreshold=5,mxAutoSaveManager.prototype.ignoredChanges=0,mxAutoSaveManager.prototype.lastSnapshot=0,mxAutoSaveManager.prototype.enabled=!0,mxAutoSaveManager.prototype.changeHandler=null,mxAutoSaveManager.prototype.isEnabled=function(){return this.enabled},mxAutoSaveManager.prototype.setEnabled=function(e){this.enabled=e},mxAutoSaveManager.prototype.setGraph=function(e){null!=this.graph&&this.graph.getModel().removeListener(this.changeHandler),this.graph=e,null!=this.graph&&this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler)},mxAutoSaveManager.prototype.save=function(){},mxAutoSaveManager.prototype.graphModelChanged=function(e){(e=((new Date).getTime()-this.lastSnapshot)/1e3)>this.autoSaveDelay||this.ignoredChanges>=this.autoSaveThreshold&&e>this.autoSaveThrottle?(this.save(),this.reset()):this.ignoredChanges++},mxAutoSaveManager.prototype.reset=function(){this.lastSnapshot=(new Date).getTime(),this.ignoredChanges=0},mxAutoSaveManager.prototype.destroy=function(){this.setGraph(null)},mxAnimation.prototype=new mxEventSource,mxAnimation.prototype.constructor=mxAnimation,mxAnimation.prototype.delay=null,mxAnimation.prototype.thread=null,mxAnimation.prototype.startAnimation=function(){null==this.thread&&(this.thread=window.setInterval(mxUtils.bind(this,this.updateAnimation),this.delay))},mxAnimation.prototype.updateAnimation=function(){this.fireEvent(new mxEventObject(mxEvent.EXECUTE))},mxAnimation.prototype.stopAnimation=function(){null!=this.thread&&(window.clearInterval(this.thread),this.thread=null,this.fireEvent(new mxEventObject(mxEvent.DONE)))},mxMorphing.prototype=new mxAnimation,mxMorphing.prototype.constructor=mxMorphing,mxMorphing.prototype.graph=null,mxMorphing.prototype.steps=null,mxMorphing.prototype.step=0,mxMorphing.prototype.ease=null,mxMorphing.prototype.cells=null,mxMorphing.prototype.updateAnimation=function(){var e=new mxCellStatePreview(this.graph);if(null!=this.cells)for(var n=0;n<this.cells.length;n++)this.animateCell(cells[n],e,!1);else this.animateCell(this.graph.getModel().getRoot(),e,!0);this.show(e),(e.isEmpty()||this.step++>=this.steps)&&this.stopAnimation()},mxMorphing.prototype.show=function(e){e.show()},mxMorphing.prototype.animateCell=function(e,n,t){var a=this.graph.getView().getState(e),i=null;if(null!=a&&(i=this.getDelta(a),this.graph.getModel().isVertex(e)&&(0!=i.x||0!=i.y))){var s=this.graph.view.getTranslate(),o=this.graph.view.getScale();i.x+=s.x*o,i.y+=s.y*o,n.moveState(a,-i.x/this.ease,-i.y/this.ease)}if(t&&!this.stopRecursion(a,i))for(a=this.graph.getModel().getChildCount(e),i=0;i<a;i++)this.animateCell(this.graph.getModel().getChildAt(e,i),n,t)},mxMorphing.prototype.stopRecursion=function(e,n){return null!=n&&(0!=n.x||0!=n.y)},mxMorphing.prototype.getDelta=function(e){var n=this.getOriginForCell(e.cell),t=this.graph.getView().getTranslate(),a=this.graph.getView().getScale();return e=new mxPoint(e.x/a-t.x,e.y/a-t.y),new mxPoint((n.x-e.x)*a,(n.y-e.y)*a)},mxMorphing.prototype.getOriginForCell=function(e){var n=null;return null!=e&&(n=this.getOriginForCell(this.graph.getModel().getParent(e)),null!=(e=this.graph.getCellGeometry(e))&&(n.x+=e.x,n.y+=e.y)),null==n&&(n=new mxPoint(-(n=this.graph.view.getTranslate()).x,-n.y)),n},mxImageBundle.prototype.images=null,mxImageBundle.prototype.images=null,mxImageBundle.prototype.putImage=function(e,n,t){this.images[e]={value:n,fallback:t}},mxImageBundle.prototype.getImage=function(e){var n=null;return null!=e&&(null!=(e=this.images[e])&&(n=this.alt?e.fallback:e.value)),n},mxImageExport.prototype.includeOverlays=!1,mxImageExport.prototype.drawState=function(e,n){null!=e&&(this.visitStatesRecursive(e,n,this.drawCellState),this.includeOverlays&&this.visitStatesRecursive(e,n,this.drawOverlays))},mxImageExport.prototype.visitStatesRecursive=function(e,n,t){if(null!=e){t(e,n);for(var a=e.view.graph,i=a.model.getChildCount(e.cell),s=0;s<i;s++){var o=a.view.getState(a.model.getChildAt(e.cell,s));this.visitStatesRecursive(o,n,t)}}},mxImageExport.prototype.drawCellState=function(e,n){e.shape instanceof mxShape&&(n.save(),e.shape.paint(n),n.restore()),null!=e.text&&(n.save(),e.text.paint(n),n.restore())},mxImageExport.prototype.drawOverlays=function(e,t){null!=e.overlays&&e.overlays.visit(function(e,n){n instanceof mxShape&&n.paint(t)})},mxAbstractCanvas2D.prototype.state=null,mxAbstractCanvas2D.prototype.states=null,mxAbstractCanvas2D.prototype.path=null,mxAbstractCanvas2D.prototype.rotateHtml=!0,mxAbstractCanvas2D.prototype.lastX=0,mxAbstractCanvas2D.prototype.lastY=0,mxAbstractCanvas2D.prototype.moveOp="M",mxAbstractCanvas2D.prototype.lineOp="L",mxAbstractCanvas2D.prototype.quadOp="Q",mxAbstractCanvas2D.prototype.curveOp="C",mxAbstractCanvas2D.prototype.closeOp="Z",mxAbstractCanvas2D.prototype.pointerEvents=!1,mxAbstractCanvas2D.prototype.createUrlConverter=function(){return new mxUrlConverter},mxAbstractCanvas2D.prototype.reset=function(){this.state=this.createState(),this.states=[]},mxAbstractCanvas2D.prototype.createState=function(){return{dx:0,dy:0,scale:1,alpha:1,fillColor:null,fillAlpha:1,gradientColor:null,gradientAlpha:1,gradientDirection:null,strokeColor:null,strokeWidth:1,dashed:!1,dashPattern:"3 3",lineCap:"flat",lineJoin:"miter",miterLimit:10,fontColor:"#000000",fontBackgroundColor:null,fontBorderColor:null,fontSize:mxConstants.DEFAULT_FONTSIZE,fontFamily:mxConstants.DEFAULT_FONTFAMILY,fontStyle:0,shadow:!1,shadowColor:mxConstants.SHADOWCOLOR,shadowAlpha:mxConstants.SHADOW_OPACITY,shadowDx:mxConstants.SHADOW_OFFSET_X,shadowDy:mxConstants.SHADOW_OFFSET_Y,rotation:0,rotationCx:0,rotationCy:0}},mxAbstractCanvas2D.prototype.format=function(e){return Math.round(parseFloat(e))},mxAbstractCanvas2D.prototype.addOp=function(){if(null!=this.path&&(this.path.push(arguments[0]),2<arguments.length))for(var e=this.state,n=2;n<arguments.length;n+=2)this.lastX=arguments[n-1],this.lastY=arguments[n],this.path.push(this.format((this.lastX+e.dx)*e.scale)),this.path.push(this.format((this.lastY+e.dy)*e.scale))},mxAbstractCanvas2D.prototype.rotatePoint=function(e,n,t,a,i){return t*=Math.PI/180,mxUtils.getRotatedPoint(new mxPoint(e,n),Math.cos(t),Math.sin(t),new mxPoint(a,i))},mxAbstractCanvas2D.prototype.save=function(){this.states.push(this.state),this.state=mxUtils.clone(this.state)},mxAbstractCanvas2D.prototype.restore=function(){this.state=this.states.pop()},mxAbstractCanvas2D.prototype.scale=function(e){this.state.scale*=e,this.state.strokeWidth*=e},mxAbstractCanvas2D.prototype.translate=function(e,n){this.state.dx+=e,this.state.dy+=n},mxAbstractCanvas2D.prototype.setAlpha=function(e){this.state.alpha=e},mxAbstractCanvas2D.prototype.setFillColor=function(e){e==mxConstants.NONE&&(e=null),this.state.fillColor=e,this.state.gradientColor=null},mxAbstractCanvas2D.prototype.setGradient=function(e,n,t,a,i,s,o,r,l){(t=this.state).fillColor=e,t.fillAlpha=null!=r?r:1,t.gradientColor=n,t.gradientAlpha=null!=l?l:1,t.gradientDirection=o},mxAbstractCanvas2D.prototype.setStrokeColor=function(e){e==mxConstants.NONE&&(e=null),this.state.strokeColor=e},mxAbstractCanvas2D.prototype.setStrokeWidth=function(e){this.state.strokeWidth=e},mxAbstractCanvas2D.prototype.setDashed=function(e){this.state.dashed=e},mxAbstractCanvas2D.prototype.setDashPattern=function(e){this.state.dashPattern=e},mxAbstractCanvas2D.prototype.setLineCap=function(e){this.state.lineCap=e},mxAbstractCanvas2D.prototype.setLineJoin=function(e){this.state.lineJoin=e},mxAbstractCanvas2D.prototype.setMiterLimit=function(e){this.state.miterLimit=e},mxAbstractCanvas2D.prototype.setFontColor=function(e){e==mxConstants.NONE&&(e=null),this.state.fontColor=e},mxAbstractCanvas2D.prototype.setFontBackgroundColor=function(e){e==mxConstants.NONE&&(e=null),this.state.fontBackgroundColor=e},mxAbstractCanvas2D.prototype.setFontBorderColor=function(e){e==mxConstants.NONE&&(e=null),this.state.fontBorderColor=e},mxAbstractCanvas2D.prototype.setFontSize=function(e){this.state.fontSize=e},mxAbstractCanvas2D.prototype.setFontFamily=function(e){this.state.fontFamily=e},mxAbstractCanvas2D.prototype.setFontStyle=function(e){null==e&&(e=0),this.state.fontStyle=e},mxAbstractCanvas2D.prototype.setShadow=function(e){this.state.shadow=e},mxAbstractCanvas2D.prototype.setShadowColor=function(e){e==mxConstants.NONE&&(e=null),this.state.shadowColor=e},mxAbstractCanvas2D.prototype.setShadowAlpha=function(e){this.state.shadowAlpha=e},mxAbstractCanvas2D.prototype.setShadowOffset=function(e,n){this.state.shadowDx=e,this.state.shadowDy=n},mxAbstractCanvas2D.prototype.begin=function(){this.lastY=this.lastX=0,this.path=[]},mxAbstractCanvas2D.prototype.moveTo=function(e,n){this.addOp(this.moveOp,e,n)},mxAbstractCanvas2D.prototype.lineTo=function(e,n){this.addOp(this.lineOp,e,n)},mxAbstractCanvas2D.prototype.quadTo=function(e,n,t,a){this.addOp(this.quadOp,e,n,t,a)},mxAbstractCanvas2D.prototype.curveTo=function(e,n,t,a,i,s){this.addOp(this.curveOp,e,n,t,a,i,s)},mxAbstractCanvas2D.prototype.arcTo=function(e,n,t,a,i,s,o){for(e=mxUtils.arcToCurves(this.lastX,this.lastY,e,n,t,a,i,s,o),n=0;n<e.length;n+=6)this.curveTo(e[n],e[n+1],e[n+2],e[n+3],e[n+4],e[n+5])},mxAbstractCanvas2D.prototype.close=function(e,n,t,a,i,s){this.addOp(this.closeOp)},mxAbstractCanvas2D.prototype.end=function(){},mxUtils.extend(mxXmlCanvas2D,mxAbstractCanvas2D),mxXmlCanvas2D.prototype.textEnabled=!0,mxXmlCanvas2D.prototype.compressed=!0,mxXmlCanvas2D.prototype.writeDefaults=function(){var e;(e=this.createElement("fontfamily")).setAttribute("family",mxConstants.DEFAULT_FONTFAMILY),this.root.appendChild(e),(e=this.createElement("fontsize")).setAttribute("size",mxConstants.DEFAULT_FONTSIZE),this.root.appendChild(e),(e=this.createElement("shadowcolor")).setAttribute("color",mxConstants.SHADOWCOLOR),this.root.appendChild(e),(e=this.createElement("shadowalpha")).setAttribute("alpha",mxConstants.SHADOW_OPACITY),this.root.appendChild(e),(e=this.createElement("shadowoffset")).setAttribute("dx",mxConstants.SHADOW_OFFSET_X),e.setAttribute("dy",mxConstants.SHADOW_OFFSET_Y),this.root.appendChild(e)},mxXmlCanvas2D.prototype.format=function(e){return parseFloat(parseFloat(e).toFixed(2))},mxXmlCanvas2D.prototype.createElement=function(e){return this.root.ownerDocument.createElement(e)},mxXmlCanvas2D.prototype.save=function(){this.compressed&&mxAbstractCanvas2D.prototype.save.apply(this,arguments),this.root.appendChild(this.createElement("save"))},mxXmlCanvas2D.prototype.restore=function(){this.compressed&&mxAbstractCanvas2D.prototype.restore.apply(this,arguments),this.root.appendChild(this.createElement("restore"))},mxXmlCanvas2D.prototype.scale=function(e){if(this.compressed){if(this.state.scale==e)return;mxAbstractCanvas2D.prototype.setAlpha.apply(this,arguments)}var n=this.createElement("scale");n.setAttribute("scale",e),this.root.appendChild(n)},mxXmlCanvas2D.prototype.translate=function(e,n){var t=this.createElement("translate");t.setAttribute("dx",this.format(e)),t.setAttribute("dy",this.format(n)),this.root.appendChild(t)},mxXmlCanvas2D.prototype.rotate=function(e,n,t,a,i){var s=this.createElement("rotate");(0!=e||n||t)&&(s.setAttribute("theta",this.format(e)),s.setAttribute("flipH",n?"1":"0"),s.setAttribute("flipV",t?"1":"0"),s.setAttribute("cx",this.format(a)),s.setAttribute("cy",this.format(i)),this.root.appendChild(s))},mxXmlCanvas2D.prototype.setAlpha=function(e){if(this.compressed){if(this.state.alpha==e)return;mxAbstractCanvas2D.prototype.setAlpha.apply(this,arguments)}var n=this.createElement("alpha");n.setAttribute("alpha",this.format(e)),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setFillColor=function(e){if(e==mxConstants.NONE&&(e=null),this.compressed){if(this.state.fillColor==e)return;mxAbstractCanvas2D.prototype.setFillColor.apply(this,arguments)}var n=this.createElement("fillcolor");n.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setGradient=function(e,n,t,a,i,s,o,r,l){if(null!=e&&null!=n){mxAbstractCanvas2D.prototype.setGradient.apply(this,arguments);var d=this.createElement("gradient");d.setAttribute("c1",e),d.setAttribute("c2",n),d.setAttribute("x",this.format(t)),d.setAttribute("y",this.format(a)),d.setAttribute("w",this.format(i)),d.setAttribute("h",this.format(s)),null!=o&&d.setAttribute("direction",o),null!=r&&d.setAttribute("alpha1",r),null!=l&&d.setAttribute("alpha2",l),this.root.appendChild(d)}},mxXmlCanvas2D.prototype.setStrokeColor=function(e){if(e==mxConstants.NONE&&(e=null),this.compressed){if(this.state.strokeColor==e)return;mxAbstractCanvas2D.prototype.setStrokeColor.apply(this,arguments)}var n=this.createElement("strokecolor");n.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setStrokeWidth=function(e){if(this.compressed){if(this.state.strokeWidth==e)return;mxAbstractCanvas2D.prototype.setStrokeWidth.apply(this,arguments)}var n=this.createElement("strokewidth");n.setAttribute("width",this.format(e)),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setDashed=function(e){if(this.compressed){if(this.state.dashed==e)return;mxAbstractCanvas2D.prototype.setDashed.apply(this,arguments)}var n=this.createElement("dashed");n.setAttribute("dashed",e?"1":"0"),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setDashPattern=function(e){if(this.compressed){if(this.state.dashPattern==e)return;mxAbstractCanvas2D.prototype.setDashPattern.apply(this,arguments)}var n=this.createElement("dashpattern");n.setAttribute("pattern",e),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setLineCap=function(e){if(this.compressed){if(this.state.lineCap==e)return;mxAbstractCanvas2D.prototype.setLineCap.apply(this,arguments)}var n=this.createElement("linecap");n.setAttribute("cap",e),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setLineJoin=function(e){if(this.compressed){if(this.state.lineJoin==e)return;mxAbstractCanvas2D.prototype.setLineJoin.apply(this,arguments)}var n=this.createElement("linejoin");n.setAttribute("join",e),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setMiterLimit=function(e){if(this.compressed){if(this.state.miterLimit==e)return;mxAbstractCanvas2D.prototype.setMiterLimit.apply(this,arguments)}var n=this.createElement("miterlimit");n.setAttribute("limit",e),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setFontColor=function(e){if(this.textEnabled){if(e==mxConstants.NONE&&(e=null),this.compressed){if(this.state.fontColor==e)return;mxAbstractCanvas2D.prototype.setFontColor.apply(this,arguments)}var n=this.createElement("fontcolor");n.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(n)}},mxXmlCanvas2D.prototype.setFontBackgroundColor=function(e){if(this.textEnabled){if(e==mxConstants.NONE&&(e=null),this.compressed){if(this.state.fontBackgroundColor==e)return;mxAbstractCanvas2D.prototype.setFontBackgroundColor.apply(this,arguments)}var n=this.createElement("fontbackgroundcolor");n.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(n)}},mxXmlCanvas2D.prototype.setFontBorderColor=function(e){if(this.textEnabled){if(e==mxConstants.NONE&&(e=null),this.compressed){if(this.state.fontBorderColor==e)return;mxAbstractCanvas2D.prototype.setFontBorderColor.apply(this,arguments)}var n=this.createElement("fontbordercolor");n.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(n)}},mxXmlCanvas2D.prototype.setFontSize=function(e){if(this.textEnabled){if(this.compressed){if(this.state.fontSize==e)return;mxAbstractCanvas2D.prototype.setFontSize.apply(this,arguments)}var n=this.createElement("fontsize");n.setAttribute("size",e),this.root.appendChild(n)}},mxXmlCanvas2D.prototype.setFontFamily=function(e){if(this.textEnabled){if(this.compressed){if(this.state.fontFamily==e)return;mxAbstractCanvas2D.prototype.setFontFamily.apply(this,arguments)}var n=this.createElement("fontfamily");n.setAttribute("family",e),this.root.appendChild(n)}},mxXmlCanvas2D.prototype.setFontStyle=function(e){if(this.textEnabled){if(null==e&&(e=0),this.compressed){if(this.state.fontStyle==e)return;mxAbstractCanvas2D.prototype.setFontStyle.apply(this,arguments)}var n=this.createElement("fontstyle");n.setAttribute("style",e),this.root.appendChild(n)}},mxXmlCanvas2D.prototype.setShadow=function(e){if(this.compressed){if(this.state.shadow==e)return;mxAbstractCanvas2D.prototype.setShadow.apply(this,arguments)}var n=this.createElement("shadow");n.setAttribute("enabled",e?"1":"0"),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setShadowColor=function(e){if(this.compressed){if(e==mxConstants.NONE&&(e=null),this.state.shadowColor==e)return;mxAbstractCanvas2D.prototype.setShadowColor.apply(this,arguments)}var n=this.createElement("shadowcolor");n.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setShadowAlpha=function(e){if(this.compressed){if(this.state.shadowAlpha==e)return;mxAbstractCanvas2D.prototype.setShadowAlpha.apply(this,arguments)}var n=this.createElement("shadowalpha");n.setAttribute("alpha",e),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setShadowOffset=function(e,n){if(this.compressed){if(this.state.shadowDx==e&&this.state.shadowDy==n)return;mxAbstractCanvas2D.prototype.setShadowOffset.apply(this,arguments)}var t=this.createElement("shadowoffset");t.setAttribute("dx",e),t.setAttribute("dy",n),this.root.appendChild(t)},mxXmlCanvas2D.prototype.rect=function(e,n,t,a){var i=this.createElement("rect");i.setAttribute("x",this.format(e)),i.setAttribute("y",this.format(n)),i.setAttribute("w",this.format(t)),i.setAttribute("h",this.format(a)),this.root.appendChild(i)},mxXmlCanvas2D.prototype.roundrect=function(e,n,t,a,i,s){var o=this.createElement("roundrect");o.setAttribute("x",this.format(e)),o.setAttribute("y",this.format(n)),o.setAttribute("w",this.format(t)),o.setAttribute("h",this.format(a)),o.setAttribute("dx",this.format(i)),o.setAttribute("dy",this.format(s)),this.root.appendChild(o)},mxXmlCanvas2D.prototype.ellipse=function(e,n,t,a){var i=this.createElement("ellipse");i.setAttribute("x",this.format(e)),i.setAttribute("y",this.format(n)),i.setAttribute("w",this.format(t)),i.setAttribute("h",this.format(a)),this.root.appendChild(i)},mxXmlCanvas2D.prototype.image=function(e,n,t,a,i,s,o,r){i=this.converter.convert(i);var l=this.createElement("image");l.setAttribute("x",this.format(e)),l.setAttribute("y",this.format(n)),l.setAttribute("w",this.format(t)),l.setAttribute("h",this.format(a)),l.setAttribute("src",i),l.setAttribute("aspect",s?"1":"0"),l.setAttribute("flipH",o?"1":"0"),l.setAttribute("flipV",r?"1":"0"),this.root.appendChild(l)},mxXmlCanvas2D.prototype.begin=function(){this.root.appendChild(this.createElement("begin")),this.lastY=this.lastX=0},mxXmlCanvas2D.prototype.moveTo=function(e,n){var t=this.createElement("move");t.setAttribute("x",this.format(e)),t.setAttribute("y",this.format(n)),this.root.appendChild(t),this.lastX=e,this.lastY=n},mxXmlCanvas2D.prototype.lineTo=function(e,n){var t=this.createElement("line");t.setAttribute("x",this.format(e)),t.setAttribute("y",this.format(n)),this.root.appendChild(t),this.lastX=e,this.lastY=n},mxXmlCanvas2D.prototype.quadTo=function(e,n,t,a){var i=this.createElement("quad");i.setAttribute("x1",this.format(e)),i.setAttribute("y1",this.format(n)),i.setAttribute("x2",this.format(t)),i.setAttribute("y2",this.format(a)),this.root.appendChild(i),this.lastX=t,this.lastY=a},mxXmlCanvas2D.prototype.curveTo=function(e,n,t,a,i,s){var o=this.createElement("curve");o.setAttribute("x1",this.format(e)),o.setAttribute("y1",this.format(n)),o.setAttribute("x2",this.format(t)),o.setAttribute("y2",this.format(a)),o.setAttribute("x3",this.format(i)),o.setAttribute("y3",this.format(s)),this.root.appendChild(o),this.lastX=i,this.lastY=s},mxXmlCanvas2D.prototype.close=function(){this.root.appendChild(this.createElement("close"))},mxXmlCanvas2D.prototype.text=function(e,n,t,a,i,s,o,r,l,d,c,m){if(this.textEnabled&&null!=i){mxUtils.isNode(i)&&(i=mxUtils.getOuterHtml(i));var u=this.createElement("text");u.setAttribute("x",this.format(e)),u.setAttribute("y",this.format(n)),u.setAttribute("w",this.format(t)),u.setAttribute("h",this.format(a)),u.setAttribute("str",i),null!=s&&u.setAttribute("align",s),null!=o&&u.setAttribute("valign",o),u.setAttribute("wrap",r?"1":"0"),null==l&&(l=""),u.setAttribute("format",l),null!=d&&u.setAttribute("fill",d?"1":"0"),null!=c&&u.setAttribute("clip",c?"1":"0"),null!=m&&u.setAttribute("rotation",m),this.root.appendChild(u)}},mxXmlCanvas2D.prototype.stroke=function(){this.root.appendChild(this.createElement("stroke"))},mxXmlCanvas2D.prototype.fill=function(){this.root.appendChild(this.createElement("fill"))},mxXmlCanvas2D.prototype.fillAndStroke=function(){this.root.appendChild(this.createElement("fillstroke"))},mxUtils.extend(mxSvgCanvas2D,mxAbstractCanvas2D),mxSvgCanvas2D.prototype.node=null,mxSvgCanvas2D.prototype.matchHtmlAlignment=!0,mxSvgCanvas2D.prototype.textEnabled=!0,mxSvgCanvas2D.prototype.foEnabled=!0,mxSvgCanvas2D.prototype.strokeTolerance=0,mxSvgCanvas2D.prototype.refCount=0,mxSvgCanvas2D.prototype.blockImagePointerEvents=!1,mxSvgCanvas2D.prototype.reset=function(){mxAbstractCanvas2D.prototype.reset.apply(this,arguments),this.gradients=[]},mxSvgCanvas2D.prototype.createStyle=function(e){return(e=this.createElement("style")).setAttribute("type","text/css"),mxUtils.write(e,"svg{font-family:"+mxConstants.DEFAULT_FONTFAMILY+";font-size:"+mxConstants.DEFAULT_FONTSIZE+";fill:none;stroke-miterlimit:10}"),e},mxSvgCanvas2D.prototype.createElement=function(e,n){if(null!=this.root.ownerDocument.createElementNS)return this.root.ownerDocument.createElementNS(n||mxConstants.NS_SVG,e);var t=this.root.ownerDocument.createElement(e);return null!=n&&t.setAttribute("xmlns",n),t},mxSvgCanvas2D.prototype.createGradientId=function(e,n,t,a,i){return"#"==e.charAt(0)&&(e=e.substring(1)),"#"==n.charAt(0)&&(n=n.substring(1)),e=e.toLowerCase()+"-"+t,n=n.toLowerCase()+"-"+a,(t=null)==i||i==mxConstants.DIRECTION_SOUTH?t="s":i==mxConstants.DIRECTION_EAST?t="e":(a=e,e=n,n=a,i==mxConstants.DIRECTION_NORTH?t="s":i==mxConstants.DIRECTION_WEST&&(t="e")),"mx-gradient-"+e+"-"+n+"-"+t},mxSvgCanvas2D.prototype.getSvgGradient=function(e,n,t,a,i){var s=this.createGradientId(e,n,t,a,i),o=this.gradients[s];if(null==o){var r=this.root.ownerSVGElement,l=0,d=s+"-"+l;if(null!=r)for(o=r.ownerDocument.getElementById(d);null!=o&&o.ownerSVGElement!=r;)d=s+"-"+l++,o=r.ownerDocument.getElementById(d);else d="id"+ ++this.refCount;null==o&&((o=this.createSvgGradient(e,n,t,a,i)).setAttribute("id",d),null!=this.defs?this.defs.appendChild(o):r.appendChild(o)),this.gradients[s]=o}return o.getAttribute("id")},mxSvgCanvas2D.prototype.createSvgGradient=function(e,n,t,a,i){var s=this.createElement("linearGradient");return s.setAttribute("x1","0%"),s.setAttribute("y1","0%"),s.setAttribute("x2","0%"),s.setAttribute("y2","0%"),null==i||i==mxConstants.DIRECTION_SOUTH?s.setAttribute("y2","100%"):i==mxConstants.DIRECTION_EAST?s.setAttribute("x2","100%"):i==mxConstants.DIRECTION_NORTH?s.setAttribute("y1","100%"):i==mxConstants.DIRECTION_WEST&&s.setAttribute("x1","100%"),t=t<1?";stop-opacity:"+t:"",(i=this.createElement("stop")).setAttribute("offset","0%"),i.setAttribute("style","stop-color:"+e+t),s.appendChild(i),t=a<1?";stop-opacity:"+a:"",(i=this.createElement("stop")).setAttribute("offset","100%"),i.setAttribute("style","stop-color:"+n+t),s.appendChild(i),s},mxSvgCanvas2D.prototype.addNode=function(e,n){var t=this.node,a=this.state;if(null!=t){if("path"==t.nodeName){if(!(null!=this.path&&0<this.path.length))return;t.setAttribute("d",this.path.join(" "))}e&&null!=a.fillColor?this.updateFill():this.styleEnabled||("ellipse"!=t.nodeName||!mxClient.IS_NS||mxClient.IS_GC||mxClient.IS_SF?t.setAttribute("fill","none"):t.setAttribute("fill","transparent"),e=!1),n&&null!=a.strokeColor?this.updateStroke():this.styleEnabled||t.setAttribute("stroke","none"),null!=a.transform&&0<a.transform.length&&t.setAttribute("transform",a.transform),a.shadow&&this.root.appendChild(this.createShadow(t)),0<this.strokeTolerance&&!e&&this.root.appendChild(this.createTolerance(t)),this.pointerEvents&&("path"!=t.nodeName||this.path[this.path.length-1]==this.closeOp)&&t.setAttribute("pointer-events","all"),this.root.appendChild(t)}},mxSvgCanvas2D.prototype.updateFill=function(){var e=this.state;e.alpha<1&&this.node.setAttribute("fill-opacity",e.alpha),null!=e.fillColor&&(null!=e.gradientColor?(e=this.getSvgGradient(e.fillColor,e.gradientColor,e.fillAlpha,e.gradientAlpha,e.gradientDirection),this.node.setAttribute("fill","url(#"+e+")")):this.node.setAttribute("fill",e.fillColor.toLowerCase()))},mxSvgCanvas2D.prototype.updateStroke=function(){var e=this.state;this.node.setAttribute("stroke",e.strokeColor.toLowerCase()),e.alpha<1&&this.node.setAttribute("stroke-opacity",e.alpha);var n=Math.max(1,this.format(e.strokeWidth*e.scale));1!=n&&this.node.setAttribute("stroke-width",n),"path"==this.node.nodeName&&this.updateStrokeAttributes(),e.dashed&&this.node.setAttribute("stroke-dasharray",this.createDashPattern(n))},mxSvgCanvas2D.prototype.updateStrokeAttributes=function(){var e=this.state;if(null!=e.lineJoin&&"miter"!=e.lineJoin&&this.node.setAttribute("stroke-linejoin",e.lineJoin),null!=e.lineCap){var n=e.lineCap;"flat"==n&&(n="butt"),"butt"!=n&&this.node.setAttribute("stroke-linecap",n)}null!=e.miterLimit&&(!this.styleEnabled||10!=e.miterLimit)&&this.node.setAttribute("stroke-miterlimit",e.miterLimit)},mxSvgCanvas2D.prototype.createDashPattern=function(e){var n=this.state.dashPattern.split(" "),t=[];if(0<n.length)for(var a=0;a<n.length;a++)t[a]=Number(n[a])*e;return t.join(" ")},mxSvgCanvas2D.prototype.createTolerance=function(e){e=e.cloneNode(!0);var n=parseFloat(e.getAttribute("stroke-width")||1)+this.strokeTolerance;return e.setAttribute("pointer-events","stroke"),e.setAttribute("visibility","hidden"),e.removeAttribute("stroke-dasharray"),e.setAttribute("stroke-width",n),e.setAttribute("fill","none"),e.setAttribute("stroke",mxClient.IS_OP?"none":"white"),e},mxSvgCanvas2D.prototype.createShadow=function(e){e=e.cloneNode(!0);var n=this.state;return"none"!=e.getAttribute("fill")&&e.setAttribute("fill",n.shadowColor),"none"!=e.getAttribute("stroke")&&e.setAttribute("stroke",n.shadowColor),e.setAttribute("transform","translate("+this.format(n.shadowDx*n.scale)+","+this.format(n.shadowDy*n.scale)+")"+(n.transform||"")),e.setAttribute("opacity",n.shadowAlpha),e},mxSvgCanvas2D.prototype.rotate=function(e,n,t,a,i){if(0!=e||n||t){var s=this.state;if(a+=s.dx,i+=s.dy,a*=s.scale,i*=s.scale,s.transform=s.transform||"",n&&t)e+=180;else if(n^t){var o=n?a:0,r=n?-1:1,l=t?i:0,d=t?-1:1;s.transform+="translate("+this.format(o)+","+this.format(l)+")scale("+this.format(r)+","+this.format(d)+")translate("+this.format(-o)+","+this.format(-l)+")"}(n?!t:t)&&(e*=-1),0!=e&&(s.transform+="rotate("+this.format(e)+","+this.format(a)+","+this.format(i)+")"),s.rotation+=e,s.rotationCx=a,s.rotationCy=i}},mxSvgCanvas2D.prototype.begin=function(){mxAbstractCanvas2D.prototype.begin.apply(this,arguments),this.node=this.createElement("path")},mxSvgCanvas2D.prototype.rect=function(e,n,t,a){var i=this.state,s=this.createElement("rect");s.setAttribute("x",this.format((e+i.dx)*i.scale)),s.setAttribute("y",this.format((n+i.dy)*i.scale)),s.setAttribute("width",this.format(t*i.scale)),s.setAttribute("height",this.format(a*i.scale)),this.node=s},mxSvgCanvas2D.prototype.roundrect=function(e,n,t,a,i,s){this.rect(e,n,t,a),0<i&&this.node.setAttribute("rx",this.format(i*this.state.scale)),0<s&&this.node.setAttribute("ry",this.format(s*this.state.scale))},mxSvgCanvas2D.prototype.ellipse=function(e,n,t,a){var i=this.state,s=this.createElement("ellipse");s.setAttribute("cx",Math.round((e+t/2+i.dx)*i.scale)),s.setAttribute("cy",Math.round((n+a/2+i.dy)*i.scale)),s.setAttribute("rx",t/2*i.scale),s.setAttribute("ry",a/2*i.scale),this.node=s},mxSvgCanvas2D.prototype.image=function(e,n,t,a,i,s,o,r){i=this.converter.convert(i),s=null==s||s,o=null!=o&&o,r=null!=r&&r;var l=this.state;e+=l.dx,n+=l.dy;var d=this.createElement("image");if(d.setAttribute("x",this.format(e*l.scale)),d.setAttribute("y",this.format(n*l.scale)),d.setAttribute("width",this.format(t*l.scale)),d.setAttribute("height",this.format(a*l.scale)),null==d.setAttributeNS?d.setAttribute("xlink:href",i):d.setAttributeNS(mxConstants.NS_XLINK,"href",i),s||d.setAttribute("preserveAspectRatio","none"),l.alpha<1&&d.setAttribute("opacity",l.alpha),i=this.state.transform||"",o||r){var c=s=1,m=0,u=0;o&&(s=-1,m=-t-2*e),r&&(c=-1,u=-a-2*n),i+="scale("+s+","+c+")translate("+m+","+u+")"}0<i.length&&d.setAttribute("transform",i),this.root.appendChild(d),this.blockImagePointerEvents&&(d.setAttribute("style","pointer-events:none"),(d=this.createElement("rect")).setAttribute("visibility","hidden"),d.setAttribute("pointer-events","fill"),d.setAttribute("x",this.format(e*l.scale)),d.setAttribute("y",this.format(n*l.scale)),d.setAttribute("width",this.format(t*l.scale)),d.setAttribute("height",this.format(a*l.scale)),this.root.appendChild(d))},mxSvgCanvas2D.prototype.createDiv=function(e,n,t,a,i){return t=this.state,a="display:inline-block;font-size:"+Math.round(t.fontSize)+"px;font-family:"+t.fontFamily+";color:"+t.fontColor+";line-height:"+Math.round(t.fontSize*mxConstants.LINE_HEIGHT)+"px;"+a,(t.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(a+="font-weight:bold;"),(t.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(a+="font-style:italic;"),(t.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&(a+="font-decoration:underline;"),n==mxConstants.ALIGN_CENTER?a+="text-align:center;":n==mxConstants.ALIGN_RIGHT&&(a+="text-align:right;"),n="",null!=t.fontBackgroundColor&&(n+="background-color:"+t.fontBackgroundColor+";"),null!=t.fontBorderColor&&(n+="border:1px solid "+t.fontBorderColor+";"),mxUtils.isNode(e)||((t=document.createElement("textarea")).innerHTML=e.replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/</g,"<").replace(/>/g,">"),e=t.value,i?a+=n:0<n.length&&(e='<div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;'+n+'">'+e+"</div>")),!mxClient.IS_IE&&document.createElementNS?((i=document.createElementNS("http://www.w3.org/1999/xhtml","div")).setAttribute("style",a),mxUtils.isNode(e)?this.root.ownerDocument!=document?i.appendChild(e.cloneNode(!0)):i.appendChild(e):i.innerHTML=e,i):(mxUtils.isNode(e)&&this.root.ownerDocument!=document&&(e=e.outerHTML),e=e.replace(/<br>/g,"<br />").replace(/<hr>/g,"<hr />"),mxUtils.parseXml('<div xmlns="http://www.w3.org/1999/xhtml" style="'+a+'">'+e+"</div>").documentElement)},mxSvgCanvas2D.prototype.text=function(e,n,t,a,i,s,o,r,l,d,c,m){if(this.textEnabled&&null!=i){m=null!=m?m:0;var u=this.state;if(e+=u.dx,n+=u.dy,this.foEnabled&&"html"==l){var p="vertical-align:top;";if(c?(p+="overflow:hidden;",0<a&&(p+="max-height:"+Math.round(a)+"px;"),0<t&&(p+="width:"+Math.round(t)+"px;")):d&&(p+="width:"+Math.round(t)+"px;",0<a&&(p+="max-height:"+Math.round(a)+"px;")),r?(!c&&0<t&&(p+="width:"+Math.round(t)+"px;"),p+="white-space:normal;"):p+="white-space:nowrap;",r=this.createElement("g"),u.alpha<1&&r.setAttribute("opacity",u.alpha),(l=this.createElement("foreignObject")).setAttribute("pointer-events","all"),null!=(p=this.createDiv(i,s,o,p,d))){r.appendChild(l),this.root.appendChild(r);var g=0;if(mxClient.IS_IE&&!mxClient.IS_SVG){var v=document.createElement("div");v.style.cssText=p.getAttribute("style"),v.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",v.style.visibility="hidden",v.innerHTML=mxUtils.isNode(i)?i.outerHTML:i,document.body.appendChild(v),g=v.offsetWidth,a=mxClient.IS_QUIRKS&&0<a&&c?Math.min(a,v.offsetHeight+2):v.offsetHeight,v.parentNode.removeChild(v),l.appendChild(p)}else this.root.ownerDocument!=document?(p.style.visibility="hidden",document.body.appendChild(p),g=p.offsetWidth,a=p.offsetHeight,l.appendChild(p),p.style.visibility=""):(l.appendChild(p),g=p.offsetWidth,a=p.offsetHeight);t=d?Math.max(t,g):g,u.alpha<1&&r.setAttribute("opacity",u.alpha),d=i=0,s==mxConstants.ALIGN_CENTER?i-=t/2:s==mxConstants.ALIGN_RIGHT&&(i-=t),e+=i,o==mxConstants.ALIGN_MIDDLE?d-=a/2:o==mxConstants.ALIGN_BOTTOM&&(d-=a),n+=d,s=1!=u.scale?"scale("+u.scale+")":"",0!=u.rotation&&this.rotateHtml?(s+="rotate("+u.rotation+","+t/2+","+a/2+")",e=(n=this.rotatePoint((e+t/2)*u.scale,(n+a/2)*u.scale,u.rotation,u.rotationCx,u.rotationCy)).x-t*u.scale/2,n=n.y-a*u.scale/2):(e*=u.scale,n*=u.scale),0!=m&&(s+="rotate("+m+","+-i+","+-d+")"),r.setAttribute("transform","translate("+Math.round(e)+","+Math.round(n)+")"+s),l.setAttribute("width",Math.round(Math.max(1,t))),l.setAttribute("height",Math.round(Math.max(1,a)))}}else this.plainText(e,n,t,a,i,s,o,r,d,c,m)}},mxSvgCanvas2D.prototype.createClip=function(e,n,t,a){for(var i="mx-clip-"+(e=Math.round(e))+"-"+(n=Math.round(n))+"-"+(t=Math.round(t))+"-"+(a=Math.round(a)),s=0,o=i+"-"+s;null!=document.getElementById(o);)o=i+"-"+ ++s;return clip=this.createElement("clipPath"),clip.setAttribute("id",o),(i=this.createElement("rect")).setAttribute("x",e),i.setAttribute("y",n),i.setAttribute("width",t),i.setAttribute("height",a),clip.appendChild(i),clip},mxSvgCanvas2D.prototype.plainText=function(e,n,t,a,i,s,o,r,l,d,c){c=null!=c?c:0,r=this.state;var m=Math.round(r.fontSize),u=this.createElement("g"),p=r.transform||"";if(0!=c&&(p+="rotate("+c+","+this.format(e*r.scale)+","+this.format(n*r.scale)+")"),d&&0<t&&0<a){var g=e;c=n,s==mxConstants.ALIGN_CENTER?g-=t/2:s==mxConstants.ALIGN_RIGHT&&(g-=t),o==mxConstants.ALIGN_MIDDLE?c-=a/2:o==mxConstants.ALIGN_BOTTOM&&(c-=a),c=this.createClip(g*r.scale-2,c*r.scale-2,t*r.scale+4,a*r.scale+4),null!=this.defs?this.defs.appendChild(c):this.root.appendChild(c),u.setAttribute("clip-path","url(#"+c.getAttribute("id")+")")}this.updateFont(u,s),"start"!=(c=s==mxConstants.ALIGN_RIGHT?"end":s==mxConstants.ALIGN_CENTER?"middle":"start")&&u.setAttribute("text-anchor",c),(!this.styleEnabled||m!=mxConstants.DEFAULT_FONTSIZE)&&u.setAttribute("font-size",Math.round(m*r.scale)+"px"),0<p.length&&u.setAttribute("transform",p),r.alpha<1&&u.setAttribute("opacity",r.alpha);p=i.split("\n"),g=Math.round(m*mxConstants.LINE_HEIGHT);var v=m+(p.length-1)*g;for(c=n+m-1,o==mxConstants.ALIGN_MIDDLE?c-=(a=(this.matchHtmlAlignment&&d&&0<a?Math.min(v,a):v)/2)+1:o==mxConstants.ALIGN_BOTTOM&&(c-=(a=this.matchHtmlAlignment&&d&&0<a?Math.min(v,a):v)+2),a=0;a<p.length;a++)0<p[a].length&&0<mxUtils.trim(p[a]).length&&((d=this.createElement("text")).setAttribute("x",this.format(e*r.scale)),d.setAttribute("y",this.format(c*r.scale)),mxUtils.write(d,p[a]),u.appendChild(d)),c+=g;this.root.appendChild(u),this.addTextBackground(u,i,e,n,t,v,s,o,l)},mxSvgCanvas2D.prototype.updateFont=function(e){var n=this.state;e.setAttribute("fill",n.fontColor),(!this.styleEnabled||n.fontFamily!=mxConstants.DEFAULT_FONTFAMILY)&&e.setAttribute("font-family",n.fontFamily),(n.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&e.setAttribute("font-weight","bold"),(n.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&e.setAttribute("font-style","italic"),(n.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&e.setAttribute("text-decoration","underline")},mxSvgCanvas2D.prototype.addTextBackground=function(e,n,t,a,i,s,o,r,l){var d=this.state;if(null!=d.fontBackgroundColor||null!=d.fontBorderColor){var c=null;null!=(c=l?(o==mxConstants.ALIGN_CENTER?t-=i/2:o==mxConstants.ALIGN_RIGHT&&(t-=i),r==mxConstants.ALIGN_MIDDLE?a-=s/2:r==mxConstants.ALIGN_BOTTOM&&(a-=s),new mxRectangle((t+1)*d.scale,a*d.scale,(i-2)*d.scale,(s+2)*d.scale)):null!=e.getBBox&&this.root.ownerDocument==document?(c=e.getBBox(),n=mxClient.IS_IE&&mxClient.IS_SVG,new mxRectangle(c.x,c.y+(n?0:1),c.width,c.height+(n?1:0))):((c=document.createElement("div")).style.lineHeight=Math.round(d.fontSize*mxConstants.LINE_HEIGHT)+"px",c.style.fontSize=Math.round(d.fontSize)+"px",c.style.fontFamily=d.fontFamily,c.style.whiteSpace="nowrap",c.style.position="absolute",c.style.visibility="hidden",c.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",c.style.zoom="1",(d.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(c.style.fontWeight="bold"),(d.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(c.style.fontStyle="italic"),n=mxUtils.htmlEntities(n,!1),c.innerHTML=n.replace(/\n/g,"<br/>"),document.body.appendChild(c),i=c.offsetWidth,s=c.offsetHeight,c.parentNode.removeChild(c),o==mxConstants.ALIGN_CENTER?t-=i/2:o==mxConstants.ALIGN_RIGHT&&(t-=i),r==mxConstants.ALIGN_MIDDLE?a-=s/2:r==mxConstants.ALIGN_BOTTOM&&(a-=s),new mxRectangle((t+1)*d.scale,(a+2)*d.scale,i*d.scale,(s+1)*d.scale)))&&((n=this.createElement("rect")).setAttribute("fill",d.fontBackgroundColor||"none"),n.setAttribute("stroke",d.fontBorderColor||"none"),n.setAttribute("x",Math.floor(c.x-1)),n.setAttribute("y",Math.floor(c.y-1)),n.setAttribute("width",Math.ceil(c.width+2)),n.setAttribute("height",Math.ceil(c.height)),d=null!=d.fontBorderColor?Math.max(1,this.format(d.scale)):0,n.setAttribute("stroke-width",d),this.root.ownerDocument==document&&1==mxUtils.mod(d,2)&&n.setAttribute("transform","translate(0.5, 0.5)"),e.insertBefore(n,e.firstChild))}},mxSvgCanvas2D.prototype.stroke=function(){this.addNode(!1,!0)},mxSvgCanvas2D.prototype.fill=function(){this.addNode(!0,!1)},mxSvgCanvas2D.prototype.fillAndStroke=function(){this.addNode(!0,!0)};var mxVmlCanvas2D=function(e){mxAbstractCanvas2D.call(this),this.root=e};function mxGuide(e,n){this.graph=e,this.setStates(n)}function mxStencil(e){this.desc=e,this.parseDescription(),this.parseConstraints()}function mxShape(e){this.stencil=e,this.strokewidth=1,this.rotation=0,this.opacity=100,this.flipV=this.flipH=!1}mxUtils.extend(mxVmlCanvas2D,mxAbstractCanvas2D),mxVmlCanvas2D.prototype.node=null,mxVmlCanvas2D.prototype.textEnabled=!0,mxVmlCanvas2D.prototype.moveOp="m",mxVmlCanvas2D.prototype.lineOp="l",mxVmlCanvas2D.prototype.curveOp="c",mxVmlCanvas2D.prototype.closeOp="x",mxVmlCanvas2D.prototype.rotatedHtmlBackground="",mxVmlCanvas2D.prototype.vmlScale=1,mxVmlCanvas2D.prototype.addNode=function(e,n){var t=this.node,a=this.state;if(null!=t){if("shape"==t.nodeName){if(!(null!=this.path&&0<this.path.length))return;t.path=this.path.join(" ")+" e",t.style.width=this.root.style.width,t.style.height=this.root.style.height,t.coordsize=parseInt(t.style.width)+" "+parseInt(t.style.height)}t.strokeweight=this.format(Math.max(1,a.strokeWidth*a.scale/this.vmlScale))+"px",a.shadow&&this.root.appendChild(this.createShadow(t,e&&null!=a.fillColor,n&&null!=a.strokeColor)),n&&null!=a.strokeColor?(t.stroked="true",t.strokecolor=a.strokeColor):t.stroked="false",t.appendChild(this.createStroke()),e&&null!=a.fillColor?t.appendChild(this.createFill()):!this.pointerEvents||"shape"==t.nodeName&&this.path[this.path.length-1]!=this.closeOp?t.filled="false":t.appendChild(this.createTransparentFill()),this.root.appendChild(t)}},mxVmlCanvas2D.prototype.createTransparentFill=function(){var e=document.createElement(mxClient.VML_PREFIX+":fill");return e.src=mxClient.imageBasePath+"/transparent.gif",e.type="tile",e},mxVmlCanvas2D.prototype.createFill=function(){var e=this.state,n=document.createElement(mxClient.VML_PREFIX+":fill");if(n.color=e.fillColor,null!=e.gradientColor){n.type="gradient",n.method="none",n.color2=e.gradientColor;var t=180-e.rotation;t=e.gradientDirection==mxConstants.DIRECTION_WEST?t-(90+("x"==this.root.style.flip?180:0)):e.gradientDirection==mxConstants.DIRECTION_EAST?t+(90+("x"==this.root.style.flip?180:0)):e.gradientDirection==mxConstants.DIRECTION_NORTH?t-(180+("y"==this.root.style.flip?-180:0)):t+("y"==this.root.style.flip?-180:0);"x"!=this.root.style.flip&&"y"!=this.root.style.flip||(t*=-1),n.angle=mxUtils.mod(t,360),n.opacity=100*e.alpha*e.fillAlpha+"%",n.setAttribute(mxClient.OFFICE_PREFIX+":opacity2",100*e.alpha*e.gradientAlpha+"%")}else e.alpha<1&&(n.opacity=100*e.alpha+"%");return n},mxVmlCanvas2D.prototype.createStroke=function(){var e=this.state,n=document.createElement(mxClient.VML_PREFIX+":stroke");return n.endcap=e.lineCap||"flat",n.joinstyle=e.lineJoin||"miter",n.miterlimit=e.miterLimit||"10",e.alpha<1&&(n.opacity=100*e.alpha+"%"),e.dashed&&(n.dashstyle=this.getVmlDashStyle()),n},mxVmlCanvas2D.prototype.getVmlDashStyle=function(){var e="dash";if(null!=this.state.dashPattern){var n=this.state.dashPattern.split(" ");0<n.length&&1==n[0]&&(e="0 2")}return e},mxVmlCanvas2D.prototype.createShadow=function(e,n,t){var a=this.state,i=-a.rotation*(Math.PI/180),s=Math.cos(i),o=(i=Math.sin(i),a.shadowDx*a.scale),r=a.shadowDy*a.scale;"x"==this.root.style.flip?o*=-1:"y"==this.root.style.flip&&(r*=-1);var l=e.cloneNode(!0);return l.style.marginLeft=Math.round(o*s-r*i)+"px",l.style.marginTop=Math.round(o*i+r*s)+"px",8==document.documentMode&&(l.strokeweight=e.strokeweight,"shape"==e.nodeName&&(l.path=this.path.join(" ")+" e",l.style.width=this.root.style.width,l.style.height=this.root.style.height,l.coordsize=parseInt(e.style.width)+" "+parseInt(e.style.height))),t?(l.strokecolor=a.shadowColor,l.appendChild(this.createShadowStroke())):l.stroked="false",n?l.appendChild(this.createShadowFill()):l.filled="false",l},mxVmlCanvas2D.prototype.createShadowFill=function(){var e=document.createElement(mxClient.VML_PREFIX+":fill");return e.color=this.state.shadowColor,e.opacity=100*this.state.alpha*this.state.shadowAlpha+"%",e},mxVmlCanvas2D.prototype.createShadowStroke=function(){var e=this.createStroke();return e.opacity=100*this.state.alpha*this.state.shadowAlpha+"%",e},mxVmlCanvas2D.prototype.rotate=function(e,n,t,a,i){n&&t?e+=180:n?this.root.style.flip="x":t&&(this.root.style.flip="y"),(n?!t:t)&&(e*=-1),this.root.style.rotation=e,this.state.rotation+=e,this.state.rotationCx=a,this.state.rotationCy=i},mxVmlCanvas2D.prototype.begin=function(){mxAbstractCanvas2D.prototype.begin.apply(this,arguments),this.node=document.createElement(mxClient.VML_PREFIX+":shape"),this.node.style.position="absolute"},mxVmlCanvas2D.prototype.quadTo=function(e,n,t,a){var i=this.state,s=(this.lastX+i.dx)*i.scale,o=(this.lastY+i.dy)*i.scale;e=(e+i.dx)*i.scale;o+=2/3*((n=(n+i.dy)*i.scale)-o);var r=(t=(t+i.dx)*i.scale)+2/3*(e-t);n=(a=(a+i.dy)*i.scale)+2/3*(n-a),this.path.push("c "+this.format(s+2/3*(e-s))+" "+this.format(o)+" "+this.format(r)+" "+this.format(n)+" "+this.format(t)+" "+this.format(a)),this.lastX=t/i.scale-i.dx,this.lastY=a/i.scale-i.dy},mxVmlCanvas2D.prototype.createRect=function(e,n,t,a,i){var s=this.state;return(e=document.createElement(e)).style.position="absolute",e.style.left=this.format((n+s.dx)*s.scale)+"px",e.style.top=this.format((t+s.dy)*s.scale)+"px",e.style.width=this.format(a*s.scale)+"px",e.style.height=this.format(i*s.scale)+"px",e},mxVmlCanvas2D.prototype.rect=function(e,n,t,a){this.node=this.createRect(mxClient.VML_PREFIX+":rect",e,n,t,a)},mxVmlCanvas2D.prototype.roundrect=function(e,n,t,a,i,s){this.node=this.createRect(mxClient.VML_PREFIX+":roundrect",e,n,t,a),this.node.setAttribute("arcsize",Math.max(100*i/t,100*s/a)+"%")},mxVmlCanvas2D.prototype.ellipse=function(e,n,t,a){this.node=this.createRect(mxClient.VML_PREFIX+":oval",e,n,t,a)},mxVmlCanvas2D.prototype.image=function(e,n,t,a,i,s,o,r){var l=null;s?((l=this.createRect(mxClient.VML_PREFIX+":rect",e,n,t,a)).stroked="false",(e=document.createElement(mxClient.VML_PREFIX+":fill")).aspect=s?"atmost":"ignore",e.rotate="true",e.type="frame",e.src=i,l.appendChild(e)):(l=this.createRect(mxClient.VML_PREFIX+":image",e,n,t,a)).src=i,o&&r?l.style.rotation="180":o?l.style.flip="x":r&&(l.style.flip="y"),this.state.alpha<1&&(l.style.filter+="alpha(opacity="+100*this.state.alpha+")"),this.root.appendChild(l)},mxVmlCanvas2D.prototype.createDiv=function(e,n,t,a){t=document.createElement("div");var i=this.state,s="";return null!=i.fontBackgroundColor&&(s+="background-color:"+i.fontBackgroundColor+";"),null!=i.fontBorderColor&&(s+="border:1px solid "+i.fontBorderColor+";"),mxUtils.isNode(e)?t.appendChild(e):0<s.length&&!a?((a=document.createElement("div")).style.cssText=s,a.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",a.style.zoom="1",a.innerHTML=e,t.appendChild(a)):(t.style.cssText=s,t.innerHTML=e),(e=t.style).fontSize=Math.round(i.fontSize/this.vmlScale)+"px",e.fontFamily=i.fontFamily,e.color=i.fontColor,e.verticalAlign="top",e.textAlign=n||"left",e.lineHeight=Math.round(i.fontSize*mxConstants.LINE_HEIGHT/this.vmlScale)+"px",(i.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(e.fontWeight="bold"),(i.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(e.fontStyle="italic"),(i.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&(e.fontDecoration="underline"),t},mxVmlCanvas2D.prototype.text=function(e,n,t,a,i,s,o,r,l,d,c,m){if(this.textEnabled&&null!=i){var u=this.state;if("html"==l){null!=u.rotation&&(e=(n=this.rotatePoint(e,n,u.rotation,u.rotationCx,u.rotationCy)).x,n=n.y),8==document.documentMode?(e+=u.dx,n+=u.dy):(e*=u.scale,n*=u.scale),(l=8==document.documentMode?document.createElement(mxClient.VML_PREFIX+":group"):document.createElement("div")).style.position="absolute",l.style.display="inline",l.style.left=this.format(e)+"px",l.style.top=this.format(n)+"px",l.style.zoom=u.scale;var p=document.createElement("div");p.style.position="relative",p.style.display="inline";var g=(v=mxUtils.getAlignmentAsPoint(s,o)).x,v=v.y;if(i=this.createDiv(i,s,o,d),s=document.createElement("div"),r?(!c&&0<t&&(i.style.width=Math.round(t)+"px"),i.style.whiteSpace="normal"):i.style.whiteSpace="nowrap",r=u.rotation+(m||0),this.rotateHtml&&0!=r?(s.style.display="inline",s.style.zoom="1",s.appendChild(i),8==document.documentMode&&"DIV"!=this.root.nodeName?(p.appendChild(s),l.appendChild(p)):l.appendChild(s)):8==document.documentMode?(p.appendChild(i),l.appendChild(p)):(i.style.display="inline",l.appendChild(i)),"DIV"!=this.root.nodeName?((m=document.createElement(mxClient.VML_PREFIX+":rect")).stroked="false",m.filled="false",m.appendChild(l),this.root.appendChild(m)):this.root.appendChild(l),c?(i.style.overflow="hidden",0<t&&(i.style.width=Math.round(t)+"px"),0<a&&8==document.documentMode&&(i.style.maxHeight=Math.round(a)+"px")):d&&(i.style.width=t+"px",0<a&&(i.style.maxHeight=Math.round(a)+"px")),this.rotateHtml&&0!=r){t=r*(Math.PI/180),r=parseFloat(parseFloat(Math.cos(t)).toFixed(8)),m=parseFloat(parseFloat(Math.sin(-t)).toFixed(8)),(t%=2*Math.PI)<0&&(t+=2*Math.PI),(t%=Math.PI)>Math.PI/2&&(t=Math.PI-t),o=Math.cos(t);var h=Math.sin(t);8==document.documentMode&&(i.style.display="inline-block",s.style.display="inline-block",p.style.display="inline-block"),i.style.visibility="hidden",document.body.appendChild(i),t=i.offsetWidth,p=i.offsetHeight,mxClient.IS_QUIRKS&&(c||d)&&a<p&&(p=a,i.style.height=p+"px"),c=((a=p)-a*o+t*-h)/2-m*t*(g+.5)+r*a*(v+.5),d=(t-t*o+a*-h)/2+r*t*(g+.5)+m*a*(v+.5),"group"==l.nodeName&&"DIV"==this.root.nodeName?((g=document.createElement("div")).style.display="inline-block",g.style.position="absolute",g.style.left=this.format(e+(d-t/2)*u.scale)+"px",g.style.top=this.format(n+(c-a/2)*u.scale)+"px",l.parentNode.appendChild(g),g.appendChild(l)):(u=8==document.documentMode?1:u.scale,l.style.left=this.format(e+(d-t/2)*u)+"px",l.style.top=this.format(n+(c-a/2)*u)+"px"),s.style.filter="progid:DXImageTransform.Microsoft.Matrix(M11="+r+", M12="+m+", M21="+-m+", M22="+r+", sizingMethod='auto expand')",s.style.backgroundColor=this.rotatedHtmlBackground,this.state.alpha<1&&(s.style.filter+="alpha(opacity="+100*this.state.alpha+")"),i.style.visibility="",s.appendChild(i)}else 8!=document.documentMode?(i.style.verticalAlign="top",this.state.alpha<1&&(l.style.filter="alpha(opacity="+100*this.state.alpha+")"),u=i.parentNode,i.style.visibility="hidden",document.body.appendChild(i),t=i.offsetWidth,p=i.offsetHeight,mxClient.IS_QUIRKS&&c&&a<p&&(p=a,i.style.height=p+"px"),a=p,i.style.visibility="",u.appendChild(i),l.style.left=this.format(e+t*g*this.state.scale)+"px",l.style.top=this.format(n+a*v*this.state.scale)+"px"):(this.state.alpha<1&&(i.style.filter="alpha(opacity="+100*this.state.alpha+")"),p.style.left=100*g+"%",p.style.top=100*v+"%")}else this.plainText(e,n,t,a,mxUtils.htmlEntities(i,!1),s,o,r,l,d,c,m)}},mxVmlCanvas2D.prototype.plainText=function(e,n,t,a,i,s,o,r,l,d,c,m){e=(e+(a=this.state).dx)*a.scale,n=(n+a.dy)*a.scale,(t=document.createElement(mxClient.VML_PREFIX+":shape")).style.width="1px",t.style.height="1px",t.stroked="false",(d=document.createElement(mxClient.VML_PREFIX+":fill")).color=a.fontColor,d.opacity=100*a.alpha+"%",t.appendChild(d),(d=document.createElement(mxClient.VML_PREFIX+":path")).textpathok="true",d.v="m "+this.format(0)+" "+this.format(0)+" l "+this.format(1)+" "+this.format(0),t.appendChild(d),(d=document.createElement(mxClient.VML_PREFIX+":textpath")).style.cssText="v-text-align:"+s,d.style.align=s,d.style.fontFamily=a.fontFamily,d.string=i,d.on="true",s=Math.round(a.fontSize*a.scale/this.vmlScale),d.style.fontSize=s+"px",(a.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(d.style.fontWeight="bold"),(a.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(d.style.fontStyle="italic"),(a.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&(d.style.textDecoration="underline"),a=s+((i=i.split("\n")).length-1)*s*mxConstants.LINE_HEIGHT,s=i=0,o==mxConstants.ALIGN_BOTTOM?s=-a/2:o!=mxConstants.ALIGN_MIDDLE&&(s=a/2),null!=m&&(o=(t.style.rotation=m)*(Math.PI/180),i=Math.sin(o)*s,s*=Math.cos(o)),t.appendChild(d),t.style.left=this.format(e-i)+"px",t.style.top=this.format(n+s)+"px",this.root.appendChild(t)},mxVmlCanvas2D.prototype.stroke=function(){this.addNode(!1,!0)},mxVmlCanvas2D.prototype.fill=function(){this.addNode(!0,!1)},mxVmlCanvas2D.prototype.fillAndStroke=function(){this.addNode(!0,!0)},mxGuide.prototype.graph=null,mxGuide.prototype.states=null,mxGuide.prototype.horizontal=!0,mxGuide.prototype.vertical=!0,mxGuide.prototype.guideX=null,mxGuide.prototype.guideY=null,mxGuide.prototype.setStates=function(e){this.states=e},mxGuide.prototype.isEnabledForEvent=function(e){return!0},mxGuide.prototype.getGuideTolerance=function(){return this.graph.gridSize*this.graph.view.scale/2},mxGuide.prototype.createGuideShape=function(e){return(e=new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH)).isDashed=!0,e},mxGuide.prototype.move=function(a,e,n){if(null!=this.states&&(this.horizontal||this.vertical)&&null!=a&&null!=e){var t=this.graph.getView().translate,i=this.graph.getView().scale,s=e.x,o=e.y,r=!1,l=!1,d=f=this.getGuideTolerance(),c=f;(f=a.clone()).x+=e.x,f.y+=e.y;var m=f.x,u=f.x+f.width,p=f.getCenterX(),g=f.y,v=f.y+f.height,h=f.getCenterY();e=function(e){e+=this.graph.panDx;var n=!1;if(Math.abs(e-p)<d?(s=e-a.getCenterX(),d=Math.abs(e-p),n=!0):Math.abs(e-m)<d?(s=e-a.x,d=Math.abs(e-m),n=!0):Math.abs(e-u)<d&&(s=e-a.x-a.width,d=Math.abs(e-u),n=!0),n){null==this.guideX&&(this.guideX=this.createGuideShape(!0),this.guideX.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.guideX.pointerEvents=!1,this.guideX.init(this.graph.getView().getOverlayPane()));var t=this.graph.container;e-=this.graph.panDx,this.guideX.points=[new mxPoint(e,-this.graph.panDy),new mxPoint(e,t.scrollHeight-3-this.graph.panDy)]}r=r||n};for(var f=function(e){e+=this.graph.panDy;var n=!1;if(Math.abs(e-h)<c?(o=e-a.getCenterY(),c=Math.abs(e-h),n=!0):Math.abs(e-g)<c?(o=e-a.y,c=Math.abs(e-g),n=!0):Math.abs(e-v)<c&&(o=e-a.y-a.height,c=Math.abs(e-v),n=!0),n){null==this.guideY&&(this.guideY=this.createGuideShape(!1),this.guideY.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.guideY.pointerEvents=!1,this.guideY.init(this.graph.getView().getOverlayPane()));var t=this.graph.container;e-=this.graph.panDy,this.guideY.points=[new mxPoint(-this.graph.panDx,e),new mxPoint(t.scrollWidth-3-this.graph.panDx,e)]}l=l||n},b=0;b<this.states.length;b++){var A=this.states[b];null!=A&&(this.horizontal&&(e.call(this,A.getCenterX()),e.call(this,A.x),e.call(this,A.x+A.width)),this.vertical&&(f.call(this,A.getCenterY()),f.call(this,A.y),f.call(this,A.y+A.height)))}r||null==this.guideX?null!=this.guideX&&(this.guideX.node.style.visibility="visible",this.guideX.redraw()):this.guideX.node.style.visibility="hidden",l||null==this.guideY?null!=this.guideY&&(this.guideY.node.style.visibility="visible",this.guideY.redraw()):this.guideY.node.style.visibility="hidden",n&&(r||(n=a.x-(this.graph.snap(a.x/i-t.x)+t.x)*i,s=this.graph.snap(s/i)*i-n),l||(t=a.y-(this.graph.snap(a.y/i-t.y)+t.y)*i,o=this.graph.snap(o/i)*i-t)),e=new mxPoint(s,o)}return e},mxGuide.prototype.hide=function(){null!=this.guideX&&(this.guideX.node.style.visibility="hidden"),null!=this.guideY&&(this.guideY.node.style.visibility="hidden")},mxGuide.prototype.destroy=function(){null!=this.guideX&&(this.guideX.destroy(),this.guideX=null),null!=this.guideY&&(this.guideY.destroy(),this.guideY=null)},mxStencil.defaultLocalized=!1,mxStencil.prototype.desc=null,mxStencil.prototype.constraints=null,mxStencil.prototype.aspect=null,mxStencil.prototype.w0=null,mxStencil.prototype.h0=null,mxStencil.prototype.bgNode=null,mxStencil.prototype.fgNode=null,mxStencil.prototype.strokewidth=null,mxStencil.prototype.parseDescription=function(){this.fgNode=this.desc.getElementsByTagName("foreground")[0],this.bgNode=this.desc.getElementsByTagName("background")[0],this.w0=Number(this.desc.getAttribute("w")||100),this.h0=Number(this.desc.getAttribute("h")||100);var e=this.desc.getAttribute("aspect");this.aspect=null!=e?e:"variable",e=this.desc.getAttribute("strokewidth"),this.strokewidth=null!=e?e:"1"},mxStencil.prototype.parseConstraints=function(){var e=this.desc.getElementsByTagName("connections")[0];if(null!=e&&(null!=(e=mxUtils.getChildNodes(e))&&0<e.length)){this.constraints=[];for(var n=0;n<e.length;n++)this.constraints.push(this.parseConstraint(e[n]))}},mxStencil.prototype.parseConstraint=function(e){var n=Number(e.getAttribute("x")),t=Number(e.getAttribute("y"));return e="1"==e.getAttribute("perimeter"),new mxConnectionConstraint(new mxPoint(n,t),e)},mxStencil.prototype.evaluateTextAttribute=function(e,n,t){return n=this.evaluateAttribute(e,n,t),e=e.getAttribute("localized"),(mxStencil.defaultLocalized&&null==e||"1"==e)&&(n=mxResources.get(n)),n},mxStencil.prototype.evaluateAttribute=function(e,n,t){return null==(n=e.getAttribute(n))&&(null!=(e=mxUtils.getTextContent(e))&&("function"==typeof(e=mxUtils.eval(e))&&(n=e(t)))),n},mxStencil.prototype.drawShape=function(e,n,t,a,i,s){this.drawChildren(e,n,t,a,i,s,this.bgNode,!1),this.drawChildren(e,n,t,a,i,s,this.fgNode,!0)},mxStencil.prototype.drawChildren=function(e,n,t,a,i,s,o,r){if(null!=o){var l=mxUtils.getValue(n.style,mxConstants.STYLE_DIRECTION,null);for(t=this.computeAspect(n.style,t,a,i,s,l),a=Math.min(t.width,t.height),a="inherit"==this.strokewidth?Number(mxUtils.getNumber(n.style,mxConstants.STYLE_STROKEWIDTH,1)):Number(this.strokewidth)*a,e.setStrokeWidth(a),o=o.firstChild;null!=o;)o.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(e,n,o,t,r),o=o.nextSibling}},mxStencil.prototype.computeAspect=function(e,n,t,a,i,s){e=n,n=a/this.w0;var o=i/this.h0;if(s="north"==s||"south"==s){o=a/this.h0,n=i/this.w0;var r=(a-i)/2;e+=r,t-=r}return"fixed"==this.aspect&&(n=o=Math.min(n,o),s?(e+=(i-this.w0*n)/2,t+=(a-this.h0*o)/2):(e+=(a-this.w0*n)/2,t+=(i-this.h0*o)/2)),new mxRectangle(e,t,n,o)},mxStencil.prototype.drawNode=function(e,n,t,a,i){var s=t.nodeName,o=a.x,r=a.y,l=a.width,d=a.height,c=Math.min(l,d);if("save"==s)e.save();else if("restore"==s)e.restore();else if("path"==s)for(e.begin(),t=t.firstChild;null!=t;)t.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(e,n,t,a,i),t=t.nextSibling;else if("close"==s)e.close();else if("move"==s)e.moveTo(o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d);else if("line"==s)e.lineTo(o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d);else if("quad"==s)e.quadTo(o+Number(t.getAttribute("x1"))*l,r+Number(t.getAttribute("y1"))*d,o+Number(t.getAttribute("x2"))*l,r+Number(t.getAttribute("y2"))*d);else if("curve"==s)e.curveTo(o+Number(t.getAttribute("x1"))*l,r+Number(t.getAttribute("y1"))*d,o+Number(t.getAttribute("x2"))*l,r+Number(t.getAttribute("y2"))*d,o+Number(t.getAttribute("x3"))*l,r+Number(t.getAttribute("y3"))*d);else if("arc"==s)e.arcTo(Number(t.getAttribute("rx"))*l,Number(t.getAttribute("ry"))*d,Number(t.getAttribute("x-axis-rotation")),Number(t.getAttribute("large-arc-flag")),Number(t.getAttribute("sweep-flag")),o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d);else if("rect"==s)e.rect(o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d,Number(t.getAttribute("w"))*l,Number(t.getAttribute("h"))*d);else if("roundrect"==s)0==(n=t.getAttribute("arcsize"))&&(n=100*mxConstants.RECTANGLE_ROUNDING_FACTOR),c=Number(t.getAttribute("w"))*l,a=Number(t.getAttribute("h"))*d,n=Number(n)/100,n=Math.min(c*n,a*n),e.roundrect(o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d,c,a,n,n);else if("ellipse"==s)e.ellipse(o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d,Number(t.getAttribute("w"))*l,Number(t.getAttribute("h"))*d);else if("image"==s)n=this.evaluateAttribute(t,"src",n),e.image(o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d,Number(t.getAttribute("w"))*l,Number(t.getAttribute("h"))*d,n,!1,"1"==t.getAttribute("flipH"),"1"==t.getAttribute("flipV"));else if("text"==s){if(c=this.evaluateTextAttribute(t,"str",n),a="1"==t.getAttribute("vertical")?-90:0,"0"==t.getAttribute("align-shape")){var m=n.rotation,u=1==mxUtils.getValue(n.style,mxConstants.STYLE_FLIPH,0);n=1==mxUtils.getValue(n.style,mxConstants.STYLE_FLIPV,0),a=u&&n?a-m:u||n?a+m:a-m}a-=t.getAttribute("rotation"),e.text(o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d,0,0,c,t.getAttribute("align")||"left",t.getAttribute("valign")||"top",!1,"",!1,!1,a)}else if("include-shape"==s)null!=(m=mxStencilRegistry.getStencil(t.getAttribute("name")))&&(o+=Number(t.getAttribute("x"))*l,r+=Number(t.getAttribute("y"))*d,c=Number(t.getAttribute("w"))*l,a=Number(t.getAttribute("h"))*d,m.drawShape(e,n,o,r,c,a));else if("fillstroke"==s)e.fillAndStroke();else if("fill"==s)e.fill();else if("stroke"==s)e.stroke();else if("strokewidth"==s)e.setStrokeWidth(Number(t.getAttribute("width"))*c);else if("dashed"==s)e.setDashed("1"==t.getAttribute("dashed"));else if("dashpattern"==s){if(null!=(t=t.getAttribute("pattern"))){for(t=t.split(" "),l=[],d=0;d<t.length;d++)0<t[d].length&&l.push(Number(t[d])*c);t=l.join(" "),e.setDashPattern(t)}}else"strokecolor"==s?e.setStrokeColor(t.getAttribute("color")):"linecap"==s?e.setLineCap(t.getAttribute("cap")):"linejoin"==s?e.setLineJoin(t.getAttribute("join")):"miterlimit"==s?e.setMiterLimit(Number(t.getAttribute("limit"))):"fillcolor"==s?e.setFillColor(t.getAttribute("color")):"alpha"==s?e.setAlpha(t.getAttribute("alpha")):"fontcolor"==s?e.setFontColor(t.getAttribute("color")):"fontstyle"==s?e.setFontStyle(t.getAttribute("style")):"fontfamily"==s?e.setFontFamily(t.getAttribute("family")):"fontsize"==s&&e.setFontSize(Number(t.getAttribute("size"))*c);i&&("fillstroke"==s||"fill"==s||"stroke"==s)&&e.setShadow(!1)},mxShape.prototype.dialect=null,mxShape.prototype.scale=1,mxShape.prototype.bounds=null,mxShape.prototype.points=null,mxShape.prototype.node=null,mxShape.prototype.style=null,mxShape.prototype.style=null,mxShape.prototype.boundingBox=null,mxShape.prototype.stencil=null,mxShape.prototype.svgStrokeTolerance=6,mxShape.prototype.pointerEvents=!0,mxShape.prototype.stencilPointerEvents=!1,mxShape.prototype.vmlScale=1,mxShape.prototype.init=function(e){null==this.node&&(this.node=this.create(e),null!=e&&e.appendChild(this.node))},mxShape.prototype.isParseVml=function(){return!0},mxShape.prototype.isHtmlAllowed=function(){return!1},mxShape.prototype.getSvgScreenOffset=function(){return 1==mxUtils.mod(Math.max(1,Math.round(this.strokewidth*this.scale)),2)?.5:0},mxShape.prototype.create=function(e){return null!=e.ownerSVGElement?this.createSvg(e):8==document.documentMode||this.dialect==mxConstants.DIALECT_SVG||this.dialect!=mxConstants.DIALECT_VML&&this.isHtmlAllowed()?this.createHtml(e):this.createVml(e)},mxShape.prototype.createSvg=function(){return document.createElementNS(mxConstants.NS_SVG,"g")},mxShape.prototype.createVml=function(){var e=document.createElement(mxClient.VML_PREFIX+":group");return e.style.position="absolute",e},mxShape.prototype.createHtml=function(){var e=document.createElement("div");return e.style.position="absolute",e},mxShape.prototype.reconfigure=function(){this.redraw()},mxShape.prototype.redraw=function(){this.updateBoundsFromPoints(),this.checkBounds()?(this.node.style.visibility="","DIV"==this.node.nodeName&&this.isHtmlAllowed()?this.redrawHtmlShape():this.redrawShape(),this.updateBoundingBox()):(this.node.style.visibility="hidden",this.boundingBox=null)},mxShape.prototype.updateBoundsFromPoints=function(){var e=this.points;if(null!=e&&0<e.length&&null!=e[0]){this.bounds=new mxRectangle(Number(e[0].x),Number(e[0].y),1,1);for(var n=1;n<this.points.length;n++)null!=e[n]&&this.bounds.add(new mxRectangle(Number(e[n].x),Number(e[n].y),1,1))}},mxShape.prototype.checkBounds=function(){return null!=this.bounds&&!isNaN(this.bounds.x)&&!isNaN(this.bounds.y)&&!isNaN(this.bounds.width)&&!isNaN(this.bounds.height)&&0<this.bounds.width&&0<this.bounds.height},mxShape.prototype.createVmlGroup=function(){var e=document.createElement(mxClient.VML_PREFIX+":group");return e.style.position="absolute",e.style.width=this.node.style.width,e.style.height=this.node.style.height,e},mxShape.prototype.redrawShape=function(){var e=this.createCanvas();for(e.pointerEvents=this.pointerEvents;this.node.hasChildNodes();)this.node.removeChild(this.node.lastChild);this.paint(e),this.node!=e.root&&this.node.insertAdjacentHTML("beforeend",e.root.outerHTML),"DIV"==this.node.nodeName&&8==document.documentMode&&(this.node.style.filter="",(null==this.stencil||!this.stencilPointerEvents)&&mxUtils.addTransparentBackgroundFilter(this.node)),this.destroyCanvas(e)},mxShape.prototype.createCanvas=function(){var e=null,n=null;if(null!=this.node.ownerSVGElement)(e=new mxSvgCanvas2D(this.node,!1)).strokeTolerance=this.svgStrokeTolerance,e.blockImagePointerEvents=mxClient.IS_NS&&!mxClient.IS_SF&&!mxClient.IS_GC,0!=(n=this.getSvgScreenOffset())?this.node.setAttribute("transform","translate("+n+","+n+")"):this.node.removeAttribute("transform");else{this.updateVmlContainer();var t=Math.max(1,Math.round(this.bounds.width)),a=Math.max(1,Math.round(this.bounds.height));n=8==document.documentMode&&this.isParseVml()?this.createVmlGroup():this.node,e=new mxVmlCanvas2D(n,!1);""!=n.tagUrn&&(n.coordsize=t*this.vmlScale+","+a*this.vmlScale,e.scale(this.vmlScale),e.vmlScale=this.vmlScale),n=this.scale,e.translate(-Math.round(this.bounds.x/n),-Math.round(this.bounds.y/n))}return e},mxShape.prototype.updateVmlContainer=function(){this.node.style.left=Math.round(this.bounds.x)+"px",this.node.style.top=Math.round(this.bounds.y)+"px";var e=Math.max(1,Math.round(this.bounds.width)),n=Math.max(1,Math.round(this.bounds.height));this.node.style.width=e+"px",this.node.style.height=n+"px",this.node.style.overflow="visible"},mxShape.prototype.destroyCanvas=function(e){if(e instanceof mxSvgCanvas2D){for(var n in e.gradients){var t=e.gradients[n];t.mxRefCount=(t.mxRefCount||0)+1}this.releaseSvgGradients(this.oldGradients),this.oldGradients=e.gradients}},mxShape.prototype.paint=function(e){var n=this.scale,t=this.bounds.x/n,a=this.bounds.y/n,i=this.bounds.width/n,s=this.bounds.height/n;if(this.isPaintBoundsInverted()){t=t+(o=(i-s)/2),a=a-o;var o=i;i=s,s=o}if(this.updateTransform(e,t,a,i,s),this.configureCanvas(e,t,a,i,s),null!=this.stencil)this.paintStencilShape(e,t,a,i,s);else if(e.setStrokeWidth(this.strokewidth),null!=this.points){for(t=[],a=0;a<this.points.length;a++)t.push(new mxPoint(this.points[a].x/n,this.points[a].y/n));this.paintEdgeShape(e,t)}else this.paintVertexShape(e,t,a,i,s)},mxShape.prototype.configureCanvas=function(e,n,t,a,i){var s=null;null!=this.style&&(s=this.style.dashPattern),e.setAlpha(this.opacity/100),null!=this.isShadow&&e.setShadow(this.isShadow),null!=this.isDashed&&e.setDashed(this.isDashed),null!=s&&e.setDashPattern(s),null!=this.gradient?(n=this.getGradientBounds(e,n,t,a,i),e.setGradient(this.fill,this.gradient,n.x,n.y,n.width,n.height,this.gradientDirection)):e.setFillColor(this.fill),e.setStrokeColor(this.stroke)},mxShape.prototype.getGradientBounds=function(e,n,t,a,i){return new mxRectangle(n,t,a,i)},mxShape.prototype.updateTransform=function(e,n,t,a,i){e.scale(this.scale),e.rotate(this.getShapeRotation(),this.flipH,this.flipV,n+a/2,t+i/2)},mxShape.prototype.paintStencilShape=function(e,n,t,a,i){this.stencilPointerEvents&&(this.dialect==mxConstants.DIALECT_SVG?this.addTransparentBackgroundRectangle(this.node,n,t,a,i):8!=document.documentMode&&this.setTransparentBackgroundImage(this.node)),this.stencil.drawShape(e,this,n,t,a,i)},mxShape.prototype.paintVertexShape=function(e,n,t,a,i){this.paintBackground(e,n,t,a,i),e.setShadow(!1),this.paintForeground(e,n,t,a,i)},mxShape.prototype.paintBackground=function(e,n,t,a,i){},mxShape.prototype.paintForeground=function(e,n,t,a,i){},mxShape.prototype.paintEdgeShape=function(e,n){},mxShape.prototype.getArcSize=function(e,n){var t=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100;return Math.min(e*t,n*t)},mxShape.prototype.paintGlassEffect=function(e,n,t,a,i,s){var o=Math.ceil(this.strokewidth/2);e.setGradient("#ffffff","#ffffff",n,t,a,.6*i,"south",.9,.1),e.begin(),s+=2*o,this.isRounded?(e.moveTo(n-o+s,t-o),e.quadTo(n-o,t-o,n-o,t-o+s),e.lineTo(n-o,t+.4*i),e.quadTo(n+.5*a,t+.7*i,n+a+o,t+.4*i),e.lineTo(n+a+o,t-o+s),e.quadTo(n+a+o,t-o,n+a+o-s,t-o)):(e.moveTo(n-o,t-o),e.lineTo(n-o,t+.4*i),e.quadTo(n+.5*a,t+.7*i,n+a+o,t+.4*i),e.lineTo(n+a+o,t-o)),e.close(),e.fill()},mxShape.prototype.apply=function(e){this.state=e,this.style=e.style,null!=this.style&&(this.fill=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,this.fill),this.gradient=mxUtils.getValue(this.style,mxConstants.STYLE_GRADIENTCOLOR,this.gradient),this.gradientDirection=mxUtils.getValue(this.style,mxConstants.STYLE_GRADIENT_DIRECTION,this.gradientDirection),this.opacity=mxUtils.getValue(this.style,mxConstants.STYLE_OPACITY,this.opacity),this.stroke=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,this.stroke),this.strokewidth=mxUtils.getNumber(this.style,mxConstants.STYLE_STROKEWIDTH,this.strokewidth),this.spacing=mxUtils.getValue(this.style,mxConstants.STYLE_SPACING,this.spacing),this.startSize=mxUtils.getNumber(this.style,mxConstants.STYLE_STARTSIZE,this.startSize),this.endSize=mxUtils.getNumber(this.style,mxConstants.STYLE_ENDSIZE,this.endSize),this.startArrow=mxUtils.getValue(this.style,mxConstants.STYLE_STARTARROW,this.startArrow),this.endArrow=mxUtils.getValue(this.style,mxConstants.STYLE_ENDARROW,this.endArrow),this.rotation=mxUtils.getValue(this.style,mxConstants.STYLE_ROTATION,this.rotation),this.direction=mxUtils.getValue(this.style,mxConstants.STYLE_DIRECTION,this.direction),this.flipH=1==mxUtils.getValue(this.style,mxConstants.STYLE_FLIPH,0),this.flipV=1==mxUtils.getValue(this.style,mxConstants.STYLE_FLIPV,0),null!=this.stencil&&(this.flipH=1==mxUtils.getValue(this.style,"stencilFlipH",0)||this.flipH,this.flipV=1==mxUtils.getValue(this.style,"stencilFlipV",0)||this.flipV),"north"!=this.direction&&"south"!=this.direction||(e=this.flipH,this.flipH=this.flipV,this.flipV=e),this.isShadow=1==mxUtils.getValue(this.style,mxConstants.STYLE_SHADOW,this.isShadow),this.isDashed=1==mxUtils.getValue(this.style,mxConstants.STYLE_DASHED,this.isDashed),this.isRounded=1==mxUtils.getValue(this.style,mxConstants.STYLE_ROUNDED,this.isRounded),this.glass=1==mxUtils.getValue(this.style,mxConstants.STYLE_GLASS,this.glass),"none"==this.fill&&(this.fill=null),"none"==this.gradient&&(this.gradient=null),"none"==this.stroke&&(this.stroke=null))},mxShape.prototype.setCursor=function(e){null==e&&(e=""),this.cursor=e,null!=this.node&&(this.node.style.cursor=e)},mxShape.prototype.getCursor=function(){return this.cursor},mxShape.prototype.updateBoundingBox=function(){if(null!=this.bounds){var e=this.createBoundingBox();if(null!=e){this.augmentBoundingBox(e);var n=this.getShapeRotation();0!=n&&(e=mxUtils.getBoundingBox(e,n)),e.x=Math.floor(e.x),e.y=Math.floor(e.y),e.width=Math.ceil(e.width),e.height=Math.ceil(e.height)}this.boundingBox=e}},mxShape.prototype.createBoundingBox=function(){var e=this.bounds.clone();if(this.isPaintBoundsInverted()){var n=(e.width-e.height)/2;e.x+=n,e.y-=n,n=e.width,e.width=e.height,e.height=n}return e},mxShape.prototype.augmentBoundingBox=function(e){this.isShadow&&(e.width+=Math.ceil(mxConstants.SHADOW_OFFSET_X*this.scale),e.height+=Math.ceil(mxConstants.SHADOW_OFFSET_Y*this.scale));var n=Math.ceil(this.strokewidth*this.scale);e.grow(Math.ceil(n/2))},mxShape.prototype.isPaintBoundsInverted=function(){return null==this.stencil&&("north"==this.direction||"south"==this.direction)},mxShape.prototype.getRotation=function(){return null!=this.rotation?this.rotation:0},mxShape.prototype.getTextRotation=function(){var e=this.getRotation();return 1!=mxUtils.getValue(this.style,mxConstants.STYLE_HORIZONTAL,1)&&(e+=mxText.prototype.verticalTextRotation),e},mxShape.prototype.getShapeRotation=function(){var e=this.getRotation();return null!=this.direction&&("north"==this.direction?e+=270:"west"==this.direction?e+=180:"south"==this.direction&&(e+=90)),e},mxShape.prototype.addTransparentBackgroundRectangle=function(e,n,t,a,i){(e=document.createElementNS(mxConstants.NS_SVG,"rect")).setAttribute("x",n),e.setAttribute("y",t),e.setAttribute("width",a),e.setAttribute("height",i),e.setAttribute("fill","none"),e.setAttribute("stroke","none"),e.setAttribute("pointer-events","all"),this.node.appendChild(e)},mxShape.prototype.setTransparentBackgroundImage=function(e){e.style.backgroundImage="url('"+mxClient.imageBasePath+"/transparent.gif')"},mxShape.prototype.releaseSvgGradients=function(e){if(null!=e)for(var n in e){var t=e[n];t.mxRefCount=(t.mxRefCount||0)-1,0==t.mxRefCount&&null!=t.parentNode&&t.parentNode.removeChild(t)}},mxShape.prototype.destroy=function(){null!=this.node&&(mxEvent.release(this.node),null!=this.node.parentNode&&this.node.parentNode.removeChild(this.node),this.node=null),this.releaseSvgGradients(this.oldGradients),this.oldGradients=null};var mxStencilRegistry={stencils:[],addStencil:function(e,n){mxStencilRegistry.stencils[e]=n},getStencil:function(e){return mxStencilRegistry.stencils[e]}},mxMarker={markers:[],addMarker:function(e,n){mxMarker.markers[e]=n},createMarker:function(e,n,t,a,i,s,o,r,l,d){var c=mxMarker.markers[t];return null!=c?c(e,n,t,a,i,s,o,r,l,d):null}};function mxActor(e,n,t,a){mxShape.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxCloud(e,n,t,a){mxActor.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxRectangleShape(e,n,t,a){mxShape.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxEllipse(e,n,t,a){mxShape.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxDoubleEllipse(e,n,t,a){mxShape.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxRhombus(e,n,t,a){mxShape.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxPolyline(e,n,t){mxShape.call(this),this.points=e,this.stroke=n,this.strokewidth=null!=t?t:1}function mxArrow(e,n,t,a,i,s,o){mxShape.call(this),this.points=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1,this.arrowWidth=null!=i?i:mxConstants.ARROW_WIDTH,this.spacing=null!=s?s:mxConstants.ARROW_SPACING,this.endSize=null!=o?o:mxConstants.ARROW_SIZE}function mxText(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h,f,b,A){mxShape.call(this),this.value=e,this.bounds=n,this.color=null!=i?i:"black",this.align=null!=t?t:"",this.valign=null!=a?a:"",this.family=null!=s?s:mxConstants.DEFAULT_FONTFAMILY,this.size=null!=o?o:mxConstants.DEFAULT_FONTSIZE,this.fontStyle=null!=r?r:mxConstants.DEFAULT_FONTSTYLE,this.spacing=parseInt(l||2),this.spacingTop=this.spacing+parseInt(d||0),this.spacingRight=this.spacing+parseInt(c||0),this.spacingBottom=this.spacing+parseInt(m||0),this.spacingLeft=this.spacing+parseInt(u||0),this.horizontal=null==p||p,this.background=g,this.border=v,this.wrap=null!=h&&h,this.clipped=null!=f&&f,this.overflow=null!=b?b:"visible",this.labelPadding=null!=A?A:0,this.rotation=0}function mxTriangle(){mxActor.call(this)}function mxHexagon(){mxActor.call(this)}function mxLine(e,n,t){mxShape.call(this),this.bounds=e,this.stroke=n,this.strokewidth=null!=t?t:1}function mxImageShape(e,n,t,a,i){mxShape.call(this),this.bounds=e,this.image=n,this.fill=t,this.stroke=a,this.strokewidth=null!=i?i:1,this.shadow=!1}function mxLabel(e,n,t,a){mxRectangleShape.call(this,e,n,t,a)}function mxCylinder(e,n,t,a){mxShape.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxConnector(e,n,t){mxPolyline.call(this,e,n,t)}function mxSwimlane(e,n,t,a){mxShape.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxGraphLayout(e){this.graph=e}function mxStackLayout(e,n,t,a,i,s){mxGraphLayout.call(this,e),this.horizontal=null==n||n,this.spacing=null!=t?t:0,this.x0=null!=a?a:0,this.y0=null!=i?i:0,this.border=null!=s?s:0}function mxPartitionLayout(e,n,t,a){mxGraphLayout.call(this,e),this.horizontal=null==n||n,this.spacing=t||0,this.border=a||0}function mxCompactTreeLayout(e,n,t){mxGraphLayout.call(this,e),this.horizontal=null==n||n,this.invert=null!=t&&t}function WeightedCellSorter(e,n){this.cell=e,this.weightedValue=n}function mxFastOrganicLayout(e){mxGraphLayout.call(this,e)}function mxCircleLayout(e,n){mxGraphLayout.call(this,e),this.radius=null!=n?n:100}function mxParallelEdgeLayout(e){mxGraphLayout.call(this,e)}function mxCompositeLayout(e,n,t){mxGraphLayout.call(this,e),this.layouts=n,this.master=t}function mxEdgeLabelLayout(e,n){mxGraphLayout.call(this,e)}function mxGraphAbstractHierarchyCell(){this.x=[],this.y=[],this.temp=[]}function mxGraphHierarchyNode(e){mxGraphAbstractHierarchyCell.apply(this,arguments),this.cell=e}function mxGraphHierarchyEdge(e){mxGraphAbstractHierarchyCell.apply(this,arguments),this.edges=e}function mxGraphHierarchyModel(e,n,t,a,i){for(e.getGraph(),this.tightenToSource=i,this.roots=t,this.parent=a,this.vertexMapper={},this.edgeMapper={},this.maxRank=0,t=[],null==n&&(n=this.graph.getChildVertices(a)),this.maxRank=this.SOURCESCANSTARTRANK,this.createInternalCells(e,n,t),a=0;a<n.length;a++){i=t[a].connectsAsSource;for(var s=0;s<i.length;s++){var o=i[s];if(null!=(r=o.edges)&&0<r.length){var r=r[0],l=e.getVisibleTerminal(r,!1);l=mxCellPath.create(l),l=this.vertexMapper[l];t[a]==l&&(l=e.getVisibleTerminal(r,!0),l=mxCellPath.create(l),l=this.vertexMapper[l]),null!=l&&t[a]!=l&&(0==(o.target=l).connectsAsTarget.length&&(l.connectsAsTarget=[]),mxUtils.indexOf(l.connectsAsTarget,o)<0&&l.connectsAsTarget.push(o))}}t[a].temp[0]=1}}function mxHierarchicalLayoutStage(){}function mxMedianHybridCrossingReduction(e){this.layout=e}function MedianCellSorter(){}function mxMinimumCycleRemover(e){this.layout=e}function mxCoordinateAssignment(e,n,t,a,i,s){this.layout=e,this.intraCellSpacing=n,this.interRankCellSpacing=t,this.orientation=a,this.initialX=i,this.parallelEdgeSpacing=s}!function(){function e(e,n,t,a,i,s,o,r,l,d){n=1.118*i*l,r=1.118*s*l,i*=o+l,s*=o+l;var c=a.clone();return c.x-=n,c.y-=r,o=t!=mxConstants.ARROW_CLASSIC?1:.75,a.x+=-i*o-n,a.y+=-s*o-r,function(){e.begin(),e.moveTo(c.x,c.y),e.lineTo(c.x-i-s/2,c.y-s+i/2),t==mxConstants.ARROW_CLASSIC&&e.lineTo(c.x-3*i/4,c.y-3*s/4),e.lineTo(c.x+s/2-i,c.y-s-i/2),e.close(),d?e.fillAndStroke():e.stroke()}}function n(e,n,t,a,i,s,o,r,l,d){r=t==mxConstants.ARROW_DIAMOND?.7071:.9862,n=i*l*r,r*=s*l,i*=o+l,s*=o+l;var c=a.clone();c.x-=n,c.y-=r,a.x+=-i-n,a.y+=-s-r;var m=t==mxConstants.ARROW_DIAMOND?2:3.4;return function(){e.begin(),e.moveTo(c.x,c.y),e.lineTo(c.x-i/2-s/m,c.y+i/m-s/2),e.lineTo(c.x-i,c.y-s),e.lineTo(c.x-i/2+s/m,c.y-s/2-i/m),e.close(),d?e.fillAndStroke():e.stroke()}}mxMarker.addMarker("classic",e),mxMarker.addMarker("block",e),mxMarker.addMarker("open",function(e,n,t,a,i,s,o,r,l,d){n=1.118*i*l,t=1.118*s*l,i*=o+l,s*=o+l;var c=a.clone();return c.x-=n,c.y-=t,a.x+=2*-n,a.y+=2*-t,function(){e.begin(),e.moveTo(c.x-i-s/2,c.y-s+i/2),e.lineTo(c.x,c.y),e.lineTo(c.x+s/2-i,c.y-s-i/2),e.stroke()}}),mxMarker.addMarker("oval",function(e,n,t,a,i,s,o,r,l,d){var c=o/2,m=a.clone();return a.x-=i*c,a.y-=s*c,function(){e.ellipse(m.x-c,m.y-c,o,o),d?e.fillAndStroke():e.stroke()}}),mxMarker.addMarker("diamond",n),mxMarker.addMarker("diamondThin",n)}(),mxUtils.extend(mxActor,mxShape),mxActor.prototype.paintVertexShape=function(e,n,t,a,i){e.translate(n,t),e.begin(),this.redrawPath(e,n,t,a,i),e.fillAndStroke()},mxActor.prototype.redrawPath=function(e,n,t,a,i){n=a/3,e.moveTo(0,i),e.curveTo(0,3*i/5,0,2*i/5,a/2,2*i/5),e.curveTo(a/2-n,2*i/5,a/2-n,0,a/2,0),e.curveTo(a/2+n,0,a/2+n,2*i/5,a/2,2*i/5),e.curveTo(a,2*i/5,a,3*i/5,a,i),e.close()},mxUtils.extend(mxCloud,mxActor),mxCloud.prototype.redrawPath=function(e,n,t,a,i){e.moveTo(.25*a,.25*i),e.curveTo(.05*a,.25*i,0,.5*i,.16*a,.55*i),e.curveTo(0,.66*i,.18*a,.9*i,.31*a,.8*i),e.curveTo(.4*a,i,.7*a,i,.8*a,.8*i),e.curveTo(a,.8*i,a,.6*i,.875*a,.5*i),e.curveTo(a,.3*i,.8*a,.1*i,.625*a,.2*i),e.curveTo(.5*a,.05*i,.3*a,.05*i,.25*a,.25*i),e.close()},mxUtils.extend(mxRectangleShape,mxShape),mxRectangleShape.prototype.isHtmlAllowed=function(){return!this.isRounded&&!this.glass&&0==this.rotation},mxRectangleShape.prototype.paintBackground=function(e,n,t,a,i){if(this.isRounded){var s=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100;s=Math.min(a*s,i*s);e.roundrect(n,t,a,i,s,s)}else e.rect(n,t,a,i);e.fillAndStroke()},mxRectangleShape.prototype.paintForeground=function(e,n,t,a,i){this.glass&&this.paintGlassEffect(e,n,t,a,i,this.getArcSize(a+this.strokewidth,i+this.strokewidth))},mxRectangleShape.prototype.redrawHtmlShape=function(){this.updateHtmlBounds(this.node),this.updateHtmlFilters(this.node),this.updateHtmlColors(this.node)},mxRectangleShape.prototype.updateHtmlBounds=function(e){var n=9<=document.documentMode?0:Math.ceil(this.strokewidth*this.scale);e.style.borderWidth=Math.max(1,n)+"px",e.style.overflow="hidden",e.style.left=Math.round(this.bounds.x-n/2)+"px",e.style.top=Math.round(this.bounds.y-n/2)+"px","CSS1Compat"==document.compatMode&&(n=-n),e.style.width=Math.round(Math.max(0,this.bounds.width+n))+"px",e.style.height=Math.round(Math.max(0,this.bounds.height+n))+"px"},mxRectangleShape.prototype.updateHtmlColors=function(e){var n=this.stroke;null!=n&&n!=mxConstants.NONE?(e.style.borderColor=n,this.isDashed?e.style.borderStyle="dashed":0<this.strokewidth&&(e.style.borderStyle="solid"),e.style.borderWidth=Math.max(1,Math.ceil(this.strokewidth*this.scale))+"px"):e.style.borderWidth="0px",null!=(n=this.fill)&&n!=mxConstants.NONE?(e.style.backgroundColor=n,e.style.backgroundImage="none"):this.pointerEvents?e.style.backgroundColor="transparent":8==document.documentMode?mxUtils.addTransparentBackgroundFilter(e):this.setTransparentBackgroundImage(e)},mxRectangleShape.prototype.updateHtmlFilters=function(e){var n="";if(this.opacity<100&&(n+="alpha(opacity="+this.opacity+")"),this.isShadow&&(n+="progid:DXImageTransform.Microsoft.dropShadow (OffX='"+Math.round(mxConstants.SHADOW_OFFSET_X*this.scale)+"', OffY='"+Math.round(mxConstants.SHADOW_OFFSET_Y*this.scale)+"', Color='"+mxConstants.SHADOWCOLOR+"')"),this.gradient){var t=this.fill,a=this.gradient,i="0",s={east:0,south:1,west:2,north:3},o=null!=this.direction?s[this.direction]:0;null!=this.gradientDirection&&(o=mxUtils.mod(o+s[this.gradientDirection]-1,4)),1==o?(i="1",s=t,t=a,a=s):2==o?(s=t,t=a,a=s):3==o&&(i="1"),n+="progid:DXImageTransform.Microsoft.gradient(startColorStr='"+t+"', endColorStr='"+a+"', gradientType='"+i+"')"}e.style.filter=n},mxUtils.extend(mxEllipse,mxShape),mxEllipse.prototype.paintVertexShape=function(e,n,t,a,i){e.ellipse(n,t,a,i),e.fillAndStroke()},mxUtils.extend(mxDoubleEllipse,mxShape),mxDoubleEllipse.prototype.vmlScale=10,mxDoubleEllipse.prototype.paintBackground=function(e,n,t,a,i){e.ellipse(n,t,a,i),e.fillAndStroke()},mxDoubleEllipse.prototype.paintForeground=function(e,n,t,a,i){var s=Math.min(4,Math.min(a/5,i/5));i-=2*s,0<(a-=2*s)&&0<i&&e.ellipse(n+s,t+s,a,i),e.stroke()},mxUtils.extend(mxRhombus,mxShape),mxRhombus.prototype.paintVertexShape=function(e,n,t,a,i){var s=a/2,o=i/2;e.begin(),e.moveTo(n+s,t),e.lineTo(n+a,t+o),e.lineTo(n+s,t+i),e.lineTo(n,t+o),e.close(),e.fillAndStroke()},mxUtils.extend(mxPolyline,mxShape),mxPolyline.prototype.getRotation=function(){return 0},mxPolyline.prototype.paintEdgeShape=function(e,n){this.paintLine(e,n,this.isRounded)},mxPolyline.prototype.paintLine=function(e,n,t){var a=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2,i=n[0],s=n[n.length-1];e.begin(),e.moveTo(i.x,i.y);for(var o=1;o<n.length-1;o++){var r=n[o],l=i.x-r.x;i=i.y-r.y;if(t&&o<n.length-1&&(0!=l||0!=i)){var d=Math.sqrt(l*l+i*i);l=l*Math.min(a,d/2)/d,i=i*Math.min(a,d/2)/d;e.lineTo(r.x+l,r.y+i),l=(i=n[o+1]).x-r.x,i=i.y-r.y,d=Math.max(1,Math.sqrt(l*l+i*i)),l=l*Math.min(a,d/2)/d,i=i*Math.min(a,d/2)/d,l=r.x+l,i=r.y+i,e.quadTo(r.x,r.y,l,i),r=new mxPoint(l,i)}else e.lineTo(r.x,r.y);i=r}e.lineTo(s.x,s.y),e.stroke()},mxUtils.extend(mxArrow,mxShape),mxArrow.prototype.paintEdgeShape=function(e,n){var t=mxConstants.ARROW_SPACING,a=mxConstants.ARROW_WIDTH,i=mxConstants.ARROW_SIZE,s=n[0],o=n[n.length-1],r=o.x-s.x,l=o.y-s.y,d=(c=Math.sqrt(r*r+l*l))-2*t-i,c=(r=r/c,a*(l=l/c)/3),m=(a=-a*r/3,(i=s.x-c/2+t*r)+c),u=(s=s.y-a/2+t*l)+a,p=m+d*r,g=p+c,v=(d=u+d*l)+a,h=g-3*c,f=v-3*a;e.begin(),e.moveTo(i,s),e.lineTo(m,u),e.lineTo(p,d),e.lineTo(g,v),e.lineTo(o.x-t*r,o.y-t*l),e.lineTo(h,f),e.lineTo(h+c,f+a),e.close(),e.fillAndStroke()},mxUtils.extend(mxText,mxShape),mxText.prototype.baseSpacingTop=0,mxText.prototype.baseSpacingBottom=0,mxText.prototype.baseSpacingLeft=0,mxText.prototype.baseSpacingRight=0,mxText.prototype.replaceLinefeeds=!0,mxText.prototype.verticalTextRotation=-90,mxText.prototype.ignoreClippedStringSize=!0,mxText.prototype.ignoreStringSize=!1,mxText.prototype.isParseVml=function(){return!1},mxText.prototype.isHtmlAllowed=function(){return 8!=document.documentMode},mxText.prototype.getSvgScreenOffset=function(){return 0},mxText.prototype.checkBounds=function(){return!(null==this.bounds||isNaN(this.bounds.x)||isNaN(this.bounds.y)||isNaN(this.bounds.width)||isNaN(this.bounds.height))},mxText.prototype.updateBoundingBox=function(){var e=this.node;8==document.documentMode&&null!=e.firstChild&&(null!=(e=e.firstChild).firstChild&&(e=e.firstChild)),this.boundingBox=this.bounds.clone();var n=this.getTextRotation();if(this.ignoreStringSize||null==e||"fill"==this.overflow||this.clipped&&this.ignoreClippedStringSize)this.boundingBox.x+=this.margin.x*this.boundingBox.width,this.boundingBox.y+=this.margin.y*this.boundingBox.height;else{var t=null,a=null;if(null!=e.ownerSVGElement)if(null!=e.firstChild&&null!=e.firstChild.firstChild&&"foreignObject"==e.firstChild.firstChild.nodeName)e=e.firstChild.firstChild,t=this.wrap?this.bounds.width:parseInt(e.getAttribute("width"))*this.scale,a=parseInt(e.getAttribute("height"))*this.scale;else{if(0==(n=e.getBBox()).width&&0==n.height)return;this.boundingBox=new mxRectangle(n.x,n.y,n.width,n.height),n=0}else a=this.state.view.textDiv,a=null!=this.offsetWidth&&null!=this.offsetHeight?(t=this.wrap?this.bounds.width:this.offsetWidth*this.scale,this.offsetHeight*this.scale):null!=a?(this.updateFont(a),this.updateSize(a),mxUtils.isNode(this.value)?a.innerHTML=this.value.outerHTML:(t=this.replaceLinefeeds?this.value.replace(/\n/g,"<br/>"):this.value,a.innerHTML=t),t=this.wrap?this.bounds.width:a.offsetWidth*this.scale,a.offsetHeight*this.scale):(t=this.wrap?this.bounds.width:e.offsetWidth*this.scale,e.offsetHeight*this.scale);null!=t&&null!=a&&(this.boundingBox=new mxRectangle(this.bounds.x+this.margin.x*t,this.bounds.y+this.margin.y*a,t,a))}null!=this.boundingBox&&(0!=n&&(n=mxUtils.getBoundingBox(this.boundingBox,n),this.boundingBox.x=n.x,this.boundingBox.y=n.y,mxClient.IS_QUIRKS||(this.boundingBox.width=n.width,this.boundingBox.height=n.height)),this.boundingBox.x=Math.floor(this.boundingBox.x),this.boundingBox.y=Math.floor(this.boundingBox.y),this.boundingBox.width=Math.ceil(this.boundingBox.width),this.boundingBox.height=Math.ceil(this.boundingBox.height))},mxText.prototype.getShapeRotation=function(){return 0},mxText.prototype.getTextRotation=function(){return null!=this.state&&null!=this.state.shape?this.state.shape.getTextRotation():0},mxText.prototype.isPaintBoundsInverted=function(){return!this.horizontal&&null!=this.state&&this.state.view.graph.model.isVertex(this.state.cell)},mxText.prototype.configureCanvas=function(e,n,t,a,i){mxShape.prototype.configureCanvas.apply(this,arguments),e.setFontColor(this.color),e.setFontBackgroundColor(this.background),e.setFontBorderColor(this.border),e.setFontFamily(this.family),e.setFontSize(this.size),e.setFontStyle(this.fontStyle)},mxText.prototype.updateVmlContainer=function(){this.node.style.left=Math.round(this.bounds.x)+"px",this.node.style.top=Math.round(this.bounds.y)+"px",this.node.style.width="1px",this.node.style.height="1px",this.node.style.overflow="visible"},mxText.prototype.paint=function(e){var n=this.scale,t=this.bounds.x/n,a=this.bounds.y/n,i=this.bounds.width/n;n=this.bounds.height/n;this.updateTransform(e,t,a,i,n),this.configureCanvas(e,t,a,i,n);var s=mxUtils.isNode(this.value)||this.dialect==mxConstants.DIALECT_STRICTHTML,o=s||e instanceof mxVmlCanvas2D?"html":"",r=this.value;!s&&"html"==o&&(r=mxUtils.htmlEntities(r,!1)),r=!mxUtils.isNode(this.value)&&this.replaceLinefeeds&&"html"==o?r.replace(/\n/g,"<br/>"):r,e.text(t,a,i,n,r,this.align,this.valign,this.wrap,o,"fill"==this.overflow,this.clipped,this.getTextRotation())},mxText.prototype.redrawHtmlShape=function(){var e=this.node.style;e.opacity=this.opacity<1?this.opacity:"",e.overflow="",e.width="",e.height="",this.updateFont(this.node),this.updateSize(this.node),this.updateValue(),this.offsetHeight=this.offsetWidth=null,null!=mxClient.CSS_PREFIX?this.updateHtmlTransform():this.updateHtmlFilter()},mxText.prototype.updateHtmlTransform=function(){var e=this.getTextRotation(),n=this.node.style,t=this.margin.x,a=this.margin.y;0!=e?(n[mxClient.CSS_PREFIX+"TransformOrigin"]=100*-t+"% "+100*-a+"%",n[mxClient.CSS_PREFIX+"Transform"]="translate("+100*t+"%,"+100*a+"%)scale("+this.scale+") rotate("+e+"deg)"):(n[mxClient.CSS_PREFIX+"TransformOrigin"]="0% 0%",n[mxClient.CSS_PREFIX+"Transform"]="scale("+this.scale+")translate("+100*t+"%,"+100*a+"%)"),n.left=Math.round(this.bounds.x)+"px",n.top=Math.round(this.bounds.y)+"px"},mxText.prototype.updateHtmlFilter=function(){var e=this.node.style,n=this.margin.x,t=this.margin.y,a=this.scale;e.filter="";var i=0,s=0;if(null!=(r=null!=this.state?this.state.view.textDiv:null)){if(r.style.overflow="",r.style.height="",r.style.width="",this.updateFont(r),this.updateSize(r),mxUtils.isNode(this.value))r.innerHTML=this.value.outerHTML;else{var o=this.value;this.dialect!=mxConstants.DIALECT_STRICTHTML&&(o=mxUtils.htmlEntities(o,!1)),o=this.replaceLinefeeds?o.replace(/\n/g,"<br/>"):o,r.innerHTML=o}i=r.offsetWidth+2,s=r.offsetHeight+2}else i=this.node.offsetWidth,s=this.node.offsetHeight+1;this.offsetWidth=i,this.offsetHeight=s,r=this.bounds.width/a,o=this.bounds.height/a,mxClient.IS_QUIRKS&&(this.clipped||"fill"==this.overflow)&&0<o?(o=Math.min(o,s),e.height=Math.round(o+1)+"px"):o=s,"fill"!=this.overflow&&(mxClient.IS_QUIRKS&&(this.clipped||this.wrap)&&0<r?(r=Math.min(r,i),e.width=Math.round(r)+"px"):r=i);o*=a;var r=r*a,l=(i=this.getTextRotation()*(Math.PI/180),s=parseFloat(parseFloat(Math.cos(i)).toFixed(8)),parseFloat(parseFloat(Math.sin(-i)).toFixed(8)));(i=i%(2*Math.PI))<0&&(i+=2*Math.PI),(i%=Math.PI)>Math.PI/2&&(i=Math.PI-i);var d=Math.cos(i),c=Math.sin(-i),m=(o-o*d+r*c)/2+l*(n=r*-(n+.5))-s*(t=o*-(t+.5));0!=i&&(e.filter="progid:DXImageTransform.Microsoft.Matrix(M11="+s+", M12="+l+", M21="+-l+", M22="+s+", sizingMethod='auto expand')"),e.zoom=a,e.left=Math.round(this.bounds.x+((r-r*d+o*c)/2-s*n-l*t)-r/2)+"px",e.top=Math.round(this.bounds.y+m-o/2)+"px"},mxText.prototype.updateValue=function(){if(mxUtils.isNode(this.value))this.node.innerHTML="",this.node.appendChild(this.value);else{var e=this.value;this.dialect!=mxConstants.DIALECT_STRICTHTML&&(e=mxUtils.htmlEntities(e,!1));e=this.replaceLinefeeds?e.replace(/\n/g,"<br/>"):e;var n=null!=this.background&&this.background!=mxConstants.NONE?this.background:null,t=null!=this.border&&this.border!=mxConstants.NONE?this.border:null;if(null!=n||null!=t)if("fill"==this.overflow)null!=n&&(this.node.style.backgroundColor=n),null!=t&&(this.node.style.border="1px solid "+t);else{var a="";null!=n&&(a+="background-color:"+n+";"),null!=t&&(a+="border:1px solid "+t+";"),e='<div style="zoom:1;'+a+"display:inline-block;_display:inline;padding-bottom:1px;padding-right:1px;line-height:"+this.node.style.lineHeight+'">'+e+"</div>",this.node.style.lineHeight=""}this.node.innerHTML=e}},mxText.prototype.updateFont=function(e){(e=e.style).lineHeight=Math.round(this.size*mxConstants.LINE_HEIGHT)+"px",e.fontSize=Math.round(this.size)+"px",e.fontFamily=this.family,e.verticalAlign="top",e.color=this.color,e.fontWeight=(this.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD?"bold":"",e.fontStyle=(this.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC?"italic":"",e.fontDecoration=(this.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE?"underline":"",e.textAlign=this.align==mxConstants.ALIGN_CENTER?"center":this.align==mxConstants.ALIGN_RIGHT?"right":"left"},mxText.prototype.updateSize=function(e){var n=Math.round(this.bounds.width/this.scale),t=Math.round(this.bounds.height/this.scale);e=e.style,this.clipped?(e.overflow="hidden",0<t&&(e.maxHeight=t+"px"),0<n&&(e.width=n+"px")):"fill"==this.overflow&&(e.width=n+"px",0<t&&(e.maxHeight=t+"px")),this.wrap?(!this.clipped&&0<n&&(e.width=n+"px"),e.whiteSpace="normal"):e.whiteSpace="nowrap"},mxText.prototype.updateMargin=function(){this.margin=mxUtils.getAlignmentAsPoint(this.align,this.valign)},mxText.prototype.getSpacing=function(){return new mxPoint(this.align==mxConstants.ALIGN_CENTER?(this.spacingLeft-this.spacingRight)/2:this.align==mxConstants.ALIGN_RIGHT?-this.spacingRight-this.baseSpacingRight:this.spacingLeft+this.baseSpacingLeft,this.valign==mxConstants.ALIGN_MIDDLE?(this.spacingTop-this.spacingBottom)/2:this.valign==mxConstants.ALIGN_BOTTOM?-this.spacingBottom-this.baseSpacingBottom:this.spacingTop+this.baseSpacingTop)},mxUtils.extend(mxTriangle,mxActor),mxTriangle.prototype.redrawPath=function(e,n,t,a,i){e.moveTo(0,0),e.lineTo(a,.5*i),e.lineTo(0,i),e.close()},mxUtils.extend(mxHexagon,mxActor),mxHexagon.prototype.redrawPath=function(e,n,t,a,i){e.moveTo(.25*a,0),e.lineTo(.75*a,0),e.lineTo(a,.5*i),e.lineTo(.75*a,i),e.lineTo(.25*a,i),e.lineTo(0,.5*i),e.close()},mxUtils.extend(mxLine,mxShape),mxLine.prototype.paintVertexShape=function(e,n,t,a,i){t+=i/2,e.begin(),e.moveTo(n,t),e.lineTo(n+a,t),e.stroke()},mxUtils.extend(mxImageShape,mxRectangleShape),mxImageShape.prototype.preserveImageAspect=!0,mxImageShape.prototype.getSvgScreenOffset=function(){return mxClient.IS_IE?0:.5},mxImageShape.prototype.apply=function(e){mxShape.prototype.apply.apply(this,arguments),this.gradient=this.stroke=this.fill=null,null!=this.style&&(this.fill=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BACKGROUND),this.stroke=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BORDER),this.preserveImageAspect=1==mxUtils.getNumber(this.style,mxConstants.STYLE_IMAGE_ASPECT,1),this.flipH=this.flipH||1==mxUtils.getValue(this.style,"imageFlipH",0),this.flipV=this.flipV||1==mxUtils.getValue(this.style,"imageFlipV",0))},mxImageShape.prototype.isHtmlAllowed=function(){return!this.preserveImageAspect},mxImageShape.prototype.createHtml=function(){var e=document.createElement("div");return e.style.position="absolute",e},mxImageShape.prototype.paintVertexShape=function(e,n,t,a,i){if(null!=this.image){var s=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BACKGROUND,null),o=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BORDER,null);null==s&&null==o||(e.setFillColor(s),e.setStrokeColor(o),e.rect(n,t,a,i),e.fillAndStroke()),e.image(n,t,a,i,this.image,this.preserveImageAspect,!1,!1)}else mxRectangleShape.prototype.paintBackground.apply(this,arguments)},mxImageShape.prototype.redrawHtmlShape=function(){if(this.node.style.left=Math.round(this.bounds.x)+"px",this.node.style.top=Math.round(this.bounds.y)+"px",this.node.style.width=Math.max(0,Math.round(this.bounds.width))+"px",this.node.style.height=Math.max(0,Math.round(this.bounds.height))+"px",this.node.style.backgroundColor=this.fill||"",this.node.style.borderColor=this.stroke||"",this.node.innerHTML="",null!=this.image){var e=document.createElement(mxClient.IS_IE6||null==mxClient.CSS_PREFIX&&0!=this.rotation?mxClient.VML_PREFIX+":image":"img");e.style.position="absolute",e.src=this.image;var n=this.opacity<100?"alpha(opacity="+this.opacity+")":"";this.node.style.filter=n,this.flipH&&this.flipV?n+="progid:DXImageTransform.Microsoft.BasicImage(rotation=2)":this.flipH?n+="progid:DXImageTransform.Microsoft.BasicImage(mirror=1)":this.flipV&&(n+="progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"),e.style.filter!=n&&(e.style.filter=n),"image"==e.nodeName?e.style.rotation=this.rotation:e.style[mxClient.CSS_PREFIX+"Transform"]="rotate("+this.rotation+"deg)",e.style.width=this.node.style.width,e.style.height=this.node.style.height,this.node.style.backgroundImage="",this.node.appendChild(e)}else this.setTransparentBackgroundImage(this.node)},mxUtils.extend(mxLabel,mxRectangleShape),mxLabel.prototype.imageSize=mxConstants.DEFAULT_IMAGESIZE,mxLabel.prototype.spacing=2,mxLabel.prototype.indicatorSize=10,mxLabel.prototype.indicatorSpacing=2,mxLabel.prototype.init=function(e){mxShape.prototype.init.apply(this,arguments),null!=this.indicatorColor&&null!=this.indicatorShape&&(this.indicator=new this.indicatorShape,this.indicator.dialect=this.dialect,this.indicator.bounds=this.bounds,this.indicator.fill=this.indicatorColor,this.indicator.stroke=this.indicatorColor,this.indicator.gradient=this.indicatorGradientColor,this.indicator.direction=this.indicatorDirection,this.indicator.init(this.node))},mxLabel.prototype.redraw=function(){null!=this.indicator&&(this.indicator.fill=this.indicatorColor,this.indicator.stroke=this.indicatorColor,this.indicator.gradient=this.indicatorGradientColor,this.indicator.direction=this.indicatorDirection),mxShape.prototype.redraw.apply(this,arguments)},mxLabel.prototype.isHtmlAllowed=function(){return mxRectangleShape.prototype.isHtmlAllowed.apply(this,arguments)&&null==this.indicatorColor&&null==this.indicatorShape},mxLabel.prototype.paintForeground=function(e,n,t,a,i){this.paintImage(e,n,t,a,i),this.paintIndicator(e,n,t,a,i),mxRectangleShape.prototype.paintForeground.apply(this,arguments)},mxLabel.prototype.paintImage=function(e,n,t,a,i){null!=this.image&&(n=this.getImageBounds(n,t,a,i),e.image(n.x,n.y,n.width,n.height,this.image,!1,!1,!1))},mxLabel.prototype.getImageBounds=function(e,n,t,a){var i=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_ALIGN,mxConstants.ALIGN_LEFT),s=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE),o=mxUtils.getNumber(this.style,mxConstants.STYLE_IMAGE_WIDTH,mxConstants.DEFAULT_IMAGESIZE),r=mxUtils.getNumber(this.style,mxConstants.STYLE_IMAGE_HEIGHT,mxConstants.DEFAULT_IMAGESIZE),l=mxUtils.getNumber(this.style,mxConstants.STYLE_SPACING,this.spacing)+5;return new mxRectangle(e=i==mxConstants.ALIGN_CENTER?e+(t-o)/2:i==mxConstants.ALIGN_RIGHT?e+(t-o-l):e+l,n=s==mxConstants.ALIGN_TOP?n+l:s==mxConstants.ALIGN_BOTTOM?n+(a-r-l):n+(a-r)/2,o,r)},mxLabel.prototype.paintIndicator=function(e,n,t,a,i){null!=this.indicator?(this.indicator.bounds=this.getIndicatorBounds(n,t,a,i),this.indicator.paint(e)):null!=this.indicatorImage&&(n=this.getIndicatorBounds(n,t,a,i),e.image(n.x,n.y,n.width,n.height,this.indicatorImage,!1,!1,!1))},mxLabel.prototype.getIndicatorBounds=function(e,n,t,a){var i=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_ALIGN,mxConstants.ALIGN_LEFT),s=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE),o=mxUtils.getNumber(this.style,mxConstants.STYLE_INDICATOR_WIDTH,this.indicatorSize),r=mxUtils.getNumber(this.style,mxConstants.STYLE_INDICATOR_HEIGHT,this.indicatorSize),l=this.spacing+5;return new mxRectangle(e=i==mxConstants.ALIGN_RIGHT?e+(t-o-l):i==mxConstants.ALIGN_CENTER?e+(t-o)/2:e+l,n=s==mxConstants.ALIGN_BOTTOM?n+(a-r-l):s==mxConstants.ALIGN_TOP?n+l:n+(a-r)/2,o,r)},mxLabel.prototype.redrawHtmlShape=function(){for(mxRectangleShape.prototype.redrawHtmlShape.apply(this,arguments);this.node.hasChildNodes();)this.node.removeChild(this.node.lastChild);if(null!=this.image){var e=document.createElement("img");e.style.position="relative",e.setAttribute("border","0");var n=this.getImageBounds(this.bounds.x,this.bounds.y,this.bounds.width,this.bounds.height);n.x-=this.bounds.x,n.y-=this.bounds.y,e.style.left=Math.round(n.x)+"px",e.style.top=Math.round(n.y)+"px",e.style.width=Math.round(n.width)+"px",e.style.height=Math.round(n.height)+"px",e.src=this.image,this.node.appendChild(e)}},mxUtils.extend(mxCylinder,mxShape),mxCylinder.prototype.maxHeight=40,mxCylinder.prototype.svgStrokeTolerance=0,mxCylinder.prototype.paintVertexShape=function(e,n,t,a,i){e.translate(n,t),e.begin(),this.redrawPath(e,n,t,a,i,!1),e.fillAndStroke(),e.setShadow(!1),e.begin(),this.redrawPath(e,n,t,a,i,!0),e.stroke()},mxCylinder.prototype.redrawPath=function(e,n,t,a,i,s){n=Math.min(this.maxHeight,Math.round(i/5)),(s&&null!=this.fill||!s&&null==this.fill)&&(e.moveTo(0,n),e.curveTo(0,2*n,a,2*n,a,n),s||(e.stroke(),e.begin())),s||(e.moveTo(0,n),e.curveTo(0,-n/3,a,-n/3,a,n),e.lineTo(a,i-n),e.curveTo(a,i+n/3,0,i+n/3,0,i-n),e.close())},mxUtils.extend(mxConnector,mxPolyline),mxConnector.prototype.paintEdgeShape=function(e,n){var t=this.createMarker(e,n,!0),a=this.createMarker(e,n,!1);null==this.style||1!=this.style[mxConstants.STYLE_CURVED]?this.paintLine(e,n,this.isRounded):this.paintCurvedLine(e,n),e.setFillColor(this.stroke),e.setShadow(!1),e.setDashed(!1),null!=t&&t(),null!=a&&a()},mxConnector.prototype.paintCurvedLine=function(e,n){e.begin();var t=n[0],a=n.length;for(e.moveTo(t.x,t.y),t=1;t<a-2;t++){var i=n[t],s=n[t+1];e.quadTo(i.x,i.y,(i.x+s.x)/2,(i.y+s.y)/2)}i=n[a-2],s=n[a-1],e.quadTo(i.x,i.y,s.x,s.y),e.stroke()},mxConnector.prototype.createMarker=function(e,n,t){var a=n.length,i=t?n[1]:n[a-2],s=(a=(n=t?n[0]:n[a-1]).x-i.x,n.y-i.y),o=(i=a/(o=Math.max(1,Math.sqrt(a*a+s*s))),a=s/o,s=mxUtils.getNumber(this.style,t?mxConstants.STYLE_STARTSIZE:mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE),mxUtils.getValue(this.style,t?mxConstants.STYLE_STARTARROW:mxConstants.STYLE_ENDARROW));return mxMarker.createMarker(e,this,o,n,i,a,s,t,this.strokewidth,0!=this.style[t?mxConstants.STYLE_STARTFILL:mxConstants.STYLE_ENDFILL])},mxConnector.prototype.augmentBoundingBox=function(e){mxShape.prototype.augmentBoundingBox.apply(this,arguments);var n=0;mxUtils.getValue(this.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(n=mxUtils.getNumber(this.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE)+1),mxUtils.getValue(this.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE&&(n=Math.max(n,mxUtils.getNumber(this.style,mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE))+1),e.grow(Math.ceil(n*this.scale))},mxUtils.extend(mxSwimlane,mxShape),mxSwimlane.prototype.imageSize=16,mxSwimlane.prototype.getGradientBounds=function(e,n,t,a,i){return new mxRectangle(n,t,a,Math.min(i,mxUtils.getValue(this.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE)))},mxSwimlane.prototype.getRotation=function(){var e=mxShape.prototype.getRotation.apply(this,arguments);return 1!=mxUtils.getValue(this.style,mxConstants.STYLE_HORIZONTAL,1)&&(e+=mxText.prototype.verticalTextRotation),e},mxSwimlane.prototype.getTextRotation=function(){return this.getRotation()},mxSwimlane.prototype.isPaintBoundsInverted=function(){return mxShape.prototype.isPaintBoundsInverted.apply(this,arguments)||1!=mxUtils.getValue(this.style,mxConstants.STYLE_HORIZONTAL,1)},mxSwimlane.prototype.getArcSize=function(e,n,t){return 3*t*(mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100)},mxSwimlane.prototype.paintVertexShape=function(e,n,t,a,i){var s=Math.min(i,mxUtils.getValue(this.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE)),o=mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_FILLCOLOR,mxConstants.NONE),r=1==mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_LINE,1),l=0;e.translate(n,t),this.isRounded?(l=this.getArcSize(a,i,s),this.paintRoundedSwimlane(e,n,t,a,i,s,l,o,r)):this.paintSwimlane(e,n,t,a,i,s,o,r),o=mxUtils.getValue(this.style,mxConstants.STYLE_SEPARATORCOLOR,mxConstants.NONE),this.paintSeparator(e,a,s,i,o),null!=this.image&&(i=this.getImageBounds(n,s,a,i),e.image(i.x-n,i.y-t,i.width,i.height,this.image,!1,!1,!1)),this.glass&&(e.setShadow(!1),this.paintGlassEffect(e,0,0,a,s,l))},mxSwimlane.prototype.paintSwimlane=function(e,n,t,a,i,s,o,r){o!=mxConstants.NONE&&(e.save(),e.setFillColor(o),e.rect(0,0,a,i),e.fillAndStroke(),e.restore(),e.setShadow(!1)),e.begin(),e.moveTo(0,s),e.lineTo(0,0),e.lineTo(a,0),e.lineTo(a,s),r&&e.close(),e.fillAndStroke(),s<i&&o==mxConstants.NONE&&(e.pointerEvents=!1,e.begin(),e.moveTo(0,s),e.lineTo(0,i),e.lineTo(a,i),e.lineTo(a,s),e.stroke())},mxSwimlane.prototype.paintRoundedSwimlane=function(e,n,t,a,i,s,o,r,l){r!=mxConstants.NONE&&(e.save(),e.setFillColor(r),e.roundrect(0,0,a,i,o,o),e.fillAndStroke(),e.restore(),e.setShadow(!1)),e.begin(),e.moveTo(a,s),e.lineTo(a,o),e.quadTo(a,0,a-Math.min(a/2,o),0),e.lineTo(Math.min(a/2,o),0),e.quadTo(0,0,0,o),e.lineTo(0,s),l&&e.close(),e.fillAndStroke(),s<i&&r==mxConstants.NONE&&(e.pointerEvents=!1,e.begin(),e.moveTo(0,s),e.lineTo(0,i-o),e.quadTo(0,i,Math.min(a/2,o),i),e.lineTo(a-Math.min(a/2,o),i),e.quadTo(a,i,a,i-o),e.lineTo(a,s),e.stroke())},mxSwimlane.prototype.paintSeparator=function(e,n,t,a,i){i!=mxConstants.NONE&&(e.setStrokeColor(i),e.setDashed(!0),e.begin(),e.moveTo(n,t),e.lineTo(n,a),e.stroke(),e.setDashed(!1))},mxSwimlane.prototype.getImageBounds=function(e,n,t,a){return new mxRectangle(e+t-this.imageSize,n,this.imageSize,this.imageSize)},mxGraphLayout.prototype.graph=null,mxGraphLayout.prototype.useBoundingBox=!0,mxGraphLayout.prototype.parent=null,mxGraphLayout.prototype.moveCell=function(e,n,t){},mxGraphLayout.prototype.execute=function(e){},mxGraphLayout.prototype.getGraph=function(){return this.graph},mxGraphLayout.prototype.getConstraint=function(e,n,t,a){return null!=(n=null!=(t=this.graph.view.getState(n))?t.style:this.graph.getCellStyle(n))?n[e]:null},mxGraphLayout.traverse=function(e,n,t,a,i){if(null!=t&&null!=e){n=null==n||n,i=i||[];var s=mxCellPath.create(e);if(null==i[s]&&(null==(a=t(i[s]=e,a))||a)&&0<(a=this.graph.model.getEdgeCount(e)))for(s=0;s<a;s++){var o=this.graph.model.getEdgeAt(e,s),r=this.graph.model.getTerminal(o,!0)==e;n&&!r||(r=this.graph.view.getVisibleTerminal(o,!r),this.traverse(r,n,t,o,i))}}},mxGraphLayout.prototype.isVertexMovable=function(e){return this.graph.isCellMovable(e)},mxGraphLayout.prototype.isVertexIgnored=function(e){return!this.graph.getModel().isVertex(e)||!this.graph.isCellVisible(e)},mxGraphLayout.prototype.isEdgeIgnored=function(e){var n=this.graph.getModel();return!n.isEdge(e)||!this.graph.isCellVisible(e)||null==n.getTerminal(e,!0)||null==n.getTerminal(e,!1)},mxGraphLayout.prototype.setEdgeStyleEnabled=function(e,n){this.graph.setCellStyles(mxConstants.STYLE_NOEDGESTYLE,n?"0":"1",[e])},mxGraphLayout.prototype.setOrthogonalEdge=function(e,n){this.graph.setCellStyles(mxConstants.STYLE_ORTHOGONAL,n?"1":"0",[e])},mxGraphLayout.prototype.getParentOffset=function(e){var n=new mxPoint;if(null!=e&&e!=this.parent){var t=this.graph.getModel();if(t.isAncestor(this.parent,e))for(var a=t.getGeometry(e);e!=this.parent;)n.x+=a.x,n.y+=a.y,e=t.getParent(e),a=t.getGeometry(e)}return n},mxGraphLayout.prototype.setEdgePoints=function(e,n){if(null!=e){var t=this.graph.model,a=t.getGeometry(e);if(null==a?(a=new mxGeometry).setRelative(!0):a=a.clone(),null!=this.parent&&null!=n)for(var i=t.getParent(e),s=(i=this.getParentOffset(i),0);s<n.length;s++)n[s].x-=i.x,n[s].y-=i.y;a.points=n,t.setGeometry(e,a)}},mxGraphLayout.prototype.setVertexLocation=function(e,n,t){var a=this.graph.getModel(),i=a.getGeometry(e),s=null;if(null!=i){if(s=new mxRectangle(n,t,i.width,i.height),this.useBoundingBox){var o=this.graph.getView().getState(e);if(null!=o&&null!=o.text&&null!=o.text.boundingBox){var r=this.graph.getView().scale,l=o.text.boundingBox;o.text.boundingBox.x<o.x&&(n+=(o.x-l.x)/r,s.width=l.width),o.text.boundingBox.y<o.y&&(t+=(o.y-l.y)/r,s.height=l.height)}}null!=this.parent&&(null!=(o=a.getParent(e))&&o!=this.parent&&(n-=(o=this.getParentOffset(o)).x,t-=o.y)),i.x==n&&i.y==t||((i=i.clone()).x=n,i.y=t,a.setGeometry(e,i))}return s},mxGraphLayout.prototype.getVertexBounds=function(e){var n=this.graph.getModel().getGeometry(e);if(this.useBoundingBox&&(null!=(r=this.graph.getView().getState(e))&&null!=r.text&&null!=r.text.boundingBox)){var t=this.graph.getView().scale,a=r.text.boundingBox,i=Math.max(r.x-a.x,0)/t,s=Math.max(r.y-a.y,0)/t,o=Math.max(a.x+a.width-(r.x+r.width),0)/t,r=Math.max(a.y+a.height-(r.y+r.height),0)/t;n=new mxRectangle(n.x-i,n.y-s,n.width+i+o,n.height+s+r)}return null!=this.parent&&(e=this.graph.getModel().getParent(e),n=n.clone(),null!=e&&e!=this.parent&&(e=this.getParentOffset(e),n.x+=e.x,n.y+=e.y)),new mxRectangle(n.x,n.y,n.width,n.height)},mxGraphLayout.prototype.arrangeGroups=function(e,n){this.graph.getModel().beginUpdate();try{for(var t=e.length-1;0<=t;t--){var a=e[t],i=this.graph.getChildVertices(a),s=this.graph.getBoundingBoxFromGeometry(i),o=this.graph.getCellGeometry(a),r=0,l=0;if(this.graph.isSwimlane(a)){var d=this.graph.getStartSize(a);r=d.width,l=d.height}null!=s&&null!=o&&((o=o.clone()).x=o.x+s.x-n-r,o.y=o.y+s.y-n-l,o.width=s.width+2*n+r,o.height=s.height+2*n+l,this.graph.getModel().setGeometry(a,o),this.graph.moveCells(i,n+r-s.x,n+l-s.y))}}finally{this.graph.getModel().endUpdate()}},mxStackLayout.prototype=new mxGraphLayout,mxStackLayout.prototype.constructor=mxStackLayout,mxStackLayout.prototype.horizontal=null,mxStackLayout.prototype.spacing=null,mxStackLayout.prototype.x0=null,mxStackLayout.prototype.y0=null,mxStackLayout.prototype.border=0,mxStackLayout.prototype.keepFirstLocation=!1,mxStackLayout.prototype.fill=!1,mxStackLayout.prototype.resizeParent=!1,mxStackLayout.prototype.resizeLast=!1,mxStackLayout.prototype.wrap=null,mxStackLayout.prototype.isHorizontal=function(){return this.horizontal},mxStackLayout.prototype.moveCell=function(e,n,t){var a=this.graph.getModel(),i=a.getParent(e),s=this.isHorizontal();if(null!=e&&null!=i){var o=0,r=0,l=a.getChildCount(i);for(n=s?n:t,null!=(o=this.graph.getView().getState(i))&&(n-=s?o.x:o.y),o=0;o<l;o++)if((t=a.getChildAt(i,o))!=e&&null!=(t=a.getGeometry(t))){if(t=s?t.x+t.width/2:t.y+t.height/2,r<n&&n<t)break;r=t}s=i.getIndex(e),s=Math.max(0,o-(s<o?1:0)),a.add(i,e,s)}},mxStackLayout.prototype.getParentSize=function(e){var n=this.graph.getModel(),t=n.getGeometry(e);return null!=this.graph.container&&(null==t&&n.isLayer(e)||e==this.graph.getView().currentRoot)&&(t=new mxRectangle(0,0,this.graph.container.offsetWidth-1,this.graph.container.offsetHeight-1)),t},mxStackLayout.prototype.execute=function(e){if(null!=e){var n=this.isHorizontal(),t=this.graph.getModel(),a=this.getParentSize(e),i=0;null!=a&&(i=n?a.height:a.width);i=i-(2*this.spacing+2*this.border);var s=this.x0+this.border,o=this.y0+this.border;if(this.graph.isSwimlane(e)){var r=this.graph.getCellStyle(e),l=mxUtils.getValue(r,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE);n==(r=mxUtils.getValue(r,mxConstants.STYLE_HORIZONTAL,!0))&&(i-=l),n?o+=l:s+=l}t.beginUpdate();try{l=0,r=null;for(var d=t.getChildCount(e),c=0;c<d;c++){var m=t.getChildAt(e,c);if(!this.isVertexIgnored(m)&&this.isVertexMovable(m)){var u=t.getGeometry(m);null!=u&&(u=u.clone(),null!=this.wrap&&null!=r&&(n&&r.x+r.width+u.width+2*this.spacing>this.wrap||!n&&r.y+r.height+u.height+2*this.spacing>this.wrap)&&(r=null,n?o+=l+this.spacing:s+=l+this.spacing,l=0),l=Math.max(l,n?u.height:u.width),null!=r?n?u.x=r.x+r.width+this.spacing:u.y=r.y+r.height+this.spacing:this.keepFirstLocation||(n?u.x=s:u.y=o),n?u.y=o:u.x=s,this.fill&&0<i&&(n?u.height=i:u.width=i),t.setGeometry(m,u),r=u)}}this.resizeParent&&null!=a&&null!=r&&!this.graph.isCellCollapsed(e)?(a=a.clone(),n?a.width=r.x+r.width+this.spacing:a.height=r.y+r.height+this.spacing,t.setGeometry(e,a)):this.resizeLast&&null!=a&&null!=r&&(n?r.width=a.width-r.x-this.spacing:r.height=a.height-r.y-this.spacing)}finally{t.endUpdate()}}},mxPartitionLayout.prototype=new mxGraphLayout,mxPartitionLayout.prototype.constructor=mxPartitionLayout,mxPartitionLayout.prototype.horizontal=null,mxPartitionLayout.prototype.spacing=null,mxPartitionLayout.prototype.border=null,mxPartitionLayout.prototype.resizeVertices=!0,mxPartitionLayout.prototype.isHorizontal=function(){return this.horizontal},mxPartitionLayout.prototype.moveCell=function(e,n,t){var a=(t=this.graph.getModel()).getParent(e);if(null!=e&&null!=a){var i=0,s=0,o=t.getChildCount(a);for(i=0;i<o;i++){var r=t.getChildAt(a,i);if(null!=(r=this.getVertexBounds(r))){if(r=r.x+r.width/2,s<n&&n<r)break;s=r}}n=a.getIndex(e),n=Math.max(0,i-(n<i?1:0)),t.add(a,e,n)}},mxPartitionLayout.prototype.execute=function(e){var n=this.isHorizontal(),t=this.graph.getModel(),a=t.getGeometry(e);if(null!=this.graph.container&&(null==a&&t.isLayer(e)||e==this.graph.getView().currentRoot)&&(a=new mxRectangle(0,0,this.graph.container.offsetWidth-1,this.graph.container.offsetHeight-1)),null!=a){for(var i=[],s=t.getChildCount(e),o=0;o<s;o++){var r=t.getChildAt(e,o);!this.isVertexIgnored(r)&&this.isVertexMovable(r)&&i.push(r)}if(0<(s=i.length)){var l=this.border,d=this.border,c=(c=n?a.height:a.width)-2*this.border;if(e=this.graph.isSwimlane(e)?this.graph.getStartSize(e):new mxRectangle,c-=n?e.height:e.width,l+=e.width,d+=e.height,e=this.border+(s-1)*this.spacing,0<(a=n?(a.width-l-e)/s:(a.height-d-e)/s)){t.beginUpdate();try{for(o=0;o<s;o++){r=i[o];var m=t.getGeometry(r);null!=m&&((m=m.clone()).x=l,m.y=d,n?(this.resizeVertices&&(m.width=a,m.height=c),l+=a+this.spacing):(this.resizeVertices&&(m.height=a,m.width=c),d+=a+this.spacing),t.setGeometry(r,m))}}finally{t.endUpdate()}}}}},mxCompactTreeLayout.prototype=new mxGraphLayout,mxCompactTreeLayout.prototype.constructor=mxCompactTreeLayout,mxCompactTreeLayout.prototype.horizontal=null,mxCompactTreeLayout.prototype.invert=null,mxCompactTreeLayout.prototype.resizeParent=!0,mxCompactTreeLayout.prototype.groupPadding=10,mxCompactTreeLayout.prototype.parentsChanged=null,mxCompactTreeLayout.prototype.moveTree=!1,mxCompactTreeLayout.prototype.levelDistance=10,mxCompactTreeLayout.prototype.nodeDistance=20,mxCompactTreeLayout.prototype.resetEdges=!0,mxCompactTreeLayout.prototype.prefHozEdgeSep=5,mxCompactTreeLayout.prototype.prefVertEdgeOff=4,mxCompactTreeLayout.prototype.minEdgeJetty=8,mxCompactTreeLayout.prototype.channelBuffer=4,mxCompactTreeLayout.prototype.edgeRouting=!0,mxCompactTreeLayout.prototype.isVertexIgnored=function(e){return mxGraphLayout.prototype.isVertexIgnored.apply(this,arguments)||0==this.graph.getConnections(e).length},mxCompactTreeLayout.prototype.isHorizontal=function(){return this.horizontal},mxCompactTreeLayout.prototype.execute=function(e,n){this.parent=e;var t=this.graph.getModel();if(null==n)if(0<this.graph.getEdges(e,t.getParent(e),this.invert,!this.invert,!1).length)n=e;else{if(0<(o=this.graph.findTreeRoots(e,!0,this.invert)).length)for(var a=0;a<o.length;a++)if(!this.isVertexIgnored(o[a])&&0<this.graph.getEdges(o[a],null,this.invert,!this.invert,!1).length){n=o[a];break}}if(null!=n){this.parentsChanged=this.resizeParent?{}:null,t.beginUpdate();try{var i=this.dfs(n,e);if(null!=i){this.layout(i);var s=this.graph.gridSize,o=s;if(!this.moveTree){var r=this.getVertexBounds(n);null!=r&&(s=r.x,o=r.y)}if((r=null)!=(r=this.isHorizontal()?this.horizontalLayout(i,s,o):this.verticalLayout(i,null,s,o))){var l=a=0;r.x<0&&(a=Math.abs(s-r.x)),r.y<0&&(l=Math.abs(o-r.y)),(0!=a||0!=l)&&this.moveNode(i,a,l),this.resizeParent&&this.adjustParents(),this.edgeRouting&&this.localEdgeProcessing(i)}}}finally{t.endUpdate()}}},mxCompactTreeLayout.prototype.moveNode=function(e,n,t){for(e.x+=n,e.y+=t,this.apply(e),e=e.child;null!=e;)this.moveNode(e,n,t),e=e.next},mxCompactTreeLayout.prototype.dfs=function(e,n,t){t=null!=t?t:[];var a=mxCellPath.create(e),i=null;if(null!=e&&null==t[a]&&!this.isVertexIgnored(e)){t[a]=e;i=this.createNode(e),a=this.graph.getModel();var s=null;e=this.graph.getEdges(e,n,this.invert,!this.invert,!1,!0);for(var o=this.graph.getView(),r=0;r<e.length;r++){var l=e[r];if(!this.isEdgeIgnored(l)){this.resetEdges&&this.setEdgePoints(l,null),this.edgeRouting&&(this.setEdgeStyleEnabled(l,!1),this.setEdgePoints(l,null));var d;l=null!=(d=o.getState(l))?d.getVisibleTerminal(this.invert):o.getVisibleTerminal(l,this.invert);null!=(d=this.dfs(l,n,t))&&null!=a.getGeometry(l)&&(null==s?i.child=d:s.next=d,s=d)}}}return i},mxCompactTreeLayout.prototype.layout=function(e){if(null!=e){for(var n=e.child;null!=n;)this.layout(n),n=n.next;null!=e.child?this.attachParent(e,this.join(e)):this.layoutLeaf(e)}},mxCompactTreeLayout.prototype.horizontalLayout=function(e,n,t,a){if(e.x+=n+e.offsetX,e.y+=t+e.offsetY,a=this.apply(e,a),null!=(n=e.child)){a=this.horizontalLayout(n,e.x,e.y,a),t=e.y+n.offsetY;for(var i=n.next;null!=i;)a=this.horizontalLayout(i,e.x+n.offsetX,t,a),t+=i.offsetY,i=i.next}return a},mxCompactTreeLayout.prototype.verticalLayout=function(e,n,t,a,i){if(e.x+=t+e.offsetY,e.y+=a+e.offsetX,i=this.apply(e,i),null!=(n=e.child))for(i=this.verticalLayout(n,e,e.x,e.y,i),t=e.x+n.offsetY,a=n.next;null!=a;)i=this.verticalLayout(a,e,t,e.y+n.offsetX,i),t+=a.offsetY,a=a.next;return i},mxCompactTreeLayout.prototype.attachParent=function(e,n){var t=this.nodeDistance+this.levelDistance,a=(n-e.width)/2-this.nodeDistance,i=a+e.width+2*this.nodeDistance-n;e.child.offsetX=t+e.height,e.child.offsetY=i,e.contour.upperHead=this.createLine(e.height,0,this.createLine(t,i,e.contour.upperHead)),e.contour.lowerHead=this.createLine(e.height,0,this.createLine(t,a,e.contour.lowerHead))},mxCompactTreeLayout.prototype.layoutLeaf=function(e){var n=2*this.nodeDistance;e.contour.upperTail=this.createLine(e.height+n,0),e.contour.upperHead=e.contour.upperTail,e.contour.lowerTail=this.createLine(0,-e.width-n),e.contour.lowerHead=this.createLine(e.height+n,0,e.contour.lowerTail)},mxCompactTreeLayout.prototype.join=function(e){var n=2*this.nodeDistance,t=e.child;e.contour=t.contour;var a=t.width+n,i=a;for(t=t.next;null!=t;){var s=this.merge(e.contour,t.contour);t.offsetY=s+a,t.offsetX=0,i+=s+(a=t.width+n),t=t.next}return i},mxCompactTreeLayout.prototype.merge=function(e,n){for(var t=0,a=0,i=0,s=e.lowerHead,o=n.upperHead;null!=o&&null!=s;){var r=this.offset(t,a,o.dx,o.dy,s.dx,s.dy);a=a+r,i=i+r;t+o.dx<=s.dx?(t+=o.dx,a+=o.dy,o=o.next):(t-=s.dx,a-=s.dy,s=s.next)}return null!=o?(t=this.bridge(e.upperTail,0,0,o,t,a),e.upperTail=null!=t.next?n.upperTail:t,e.lowerTail=n.lowerTail):null==(t=this.bridge(n.lowerTail,t,a,s,0,0)).next&&(e.lowerTail=t),e.lowerHead=n.lowerHead,i},mxCompactTreeLayout.prototype.offset=function(e,n,t,a,i,s){var o;return i<=e||e+t<=0?0:0<(o=0<i*a-t*s?e<0?e*a/t-n:0<e?e*s/i-n:-n:i<e+t?s-(n+(i-e)*a/t):e+t<i?(t+e)*s/i-(n+a):s-(n+a))?o:0},mxCompactTreeLayout.prototype.bridge=function(e,n,t,a,i,s){return n=i+a.dx-n,i=i=0,0==a.dx?i=a.dy:(i=n*a.dy,i/=a.dx),n=this.createLine(n,i,a.next),e.next=this.createLine(0,s+a.dy-i-t,n),n},mxCompactTreeLayout.prototype.createNode=function(e){var n={};return n.cell=e,n.x=0,n.y=0,n.width=0,n.height=0,null!=(e=this.getVertexBounds(e))&&(this.isHorizontal()?(n.width=e.height,n.height=e.width):(n.width=e.width,n.height=e.height)),n.offsetX=0,n.offsetY=0,n.contour={},n},mxCompactTreeLayout.prototype.apply=function(e,n){var t=this.graph.getModel(),a=e.cell,i=t.getGeometry(a);return null!=a&&null!=i&&(this.isVertexMovable(a)&&(i=this.setVertexLocation(a,e.x,e.y),this.resizeParent&&(t=t.getParent(a),a=mxCellPath.create(t),null==this.parentsChanged[a]&&(this.parentsChanged[a]=t))),n=null==n?new mxRectangle(i.x,i.y,i.width,i.height):new mxRectangle(Math.min(n.x,i.x),Math.min(n.y,i.y),Math.max(n.x+n.width,i.x+i.width),Math.max(n.y+n.height,i.y+i.height))),n},mxCompactTreeLayout.prototype.createLine=function(e,n,t){var a={};return a.dx=e,a.dy=n,a.next=t,a},mxCompactTreeLayout.prototype.adjustParents=function(){var e,n=[];for(e in this.parentsChanged)n.push(this.parentsChanged[e]);this.arrangeGroups(mxUtils.sortCells(n,!0),this.groupPadding)},mxCompactTreeLayout.prototype.localEdgeProcessing=function(e){for(this.processNodeOutgoing(e),e=e.child;null!=e;)this.localEdgeProcessing(e),e=e.next},mxCompactTreeLayout.prototype.processNodeOutgoing=function(e){for(var n=e.child,t=e.cell,a=0,i=[];null!=n;){a++;var s=n.x;this.horizontal&&(s=n.y),i.push(new WeightedCellSorter(n,s)),n=n.next}i.sort(WeightedCellSorter.prototype.compare),(s=e.width)>(o=(a+1)*this.prefHozEdgeSep)+2*this.prefHozEdgeSep&&(s-=2*this.prefHozEdgeSep),n=(e=s/a)/2,s>o+2*this.prefHozEdgeSep&&(n+=this.prefHozEdgeSep);s=this.minEdgeJetty-this.prefVertEdgeOff;for(var o=0,r=this.getVertexBounds(t),l=0;l<i.length;l++){for(var d=i[l].cell.cell,c=this.getVertexBounds(d),m=(d=this.graph.getEdgesBetween(t,d,!1),[]),u=0,p=0,g=0;g<d.length;g++)this.horizontal?(u=r.x+r.width,p=r.y+n,m.push(new mxPoint(u,p)),u=r.x+r.width+s,m.push(new mxPoint(u,p)),p=c.y+c.height/2):(u=r.x+n,p=r.y+r.height,m.push(new mxPoint(u,p)),p=r.y+r.height+s,m.push(new mxPoint(u,p)),u=c.x+c.width/2),m.push(new mxPoint(u,p)),this.setEdgePoints(d[g],m);l<a/2?s+=this.prefVertEdgeOff:a/2<l&&(s-=this.prefVertEdgeOff),n+=e,o=Math.max(o,s)}},WeightedCellSorter.prototype.weightedValue=0,WeightedCellSorter.prototype.nudge=!1,WeightedCellSorter.prototype.visited=!1,WeightedCellSorter.prototype.rankIndex=null,WeightedCellSorter.prototype.cell=null,WeightedCellSorter.prototype.compare=function(e,n){return null!=e&&null!=n?n.weightedValue>e.weightedValue?1:n.weightedValue<e.weightedValue?-1:n.nudge?1:-1:0},mxFastOrganicLayout.prototype=new mxGraphLayout,mxFastOrganicLayout.prototype.constructor=mxFastOrganicLayout,mxFastOrganicLayout.prototype.useInputOrigin=!0,mxFastOrganicLayout.prototype.resetEdges=!0,mxFastOrganicLayout.prototype.disableEdgeStyle=!0,mxFastOrganicLayout.prototype.forceConstant=50,mxFastOrganicLayout.prototype.forceConstantSquared=0,mxFastOrganicLayout.prototype.minDistanceLimit=2,mxFastOrganicLayout.prototype.maxDistanceLimit=500,mxFastOrganicLayout.prototype.minDistanceLimitSquared=4,mxFastOrganicLayout.prototype.initialTemp=200,mxFastOrganicLayout.prototype.temperature=0,mxFastOrganicLayout.prototype.maxIterations=0,mxFastOrganicLayout.prototype.iteration=0,mxFastOrganicLayout.prototype.allowedToRun=!0,mxFastOrganicLayout.prototype.isVertexIgnored=function(e){return mxGraphLayout.prototype.isVertexIgnored.apply(this,arguments)||0==this.graph.getConnections(e).length},mxFastOrganicLayout.prototype.execute=function(e){var n=this.graph.getModel();this.vertexArray=[];for(var t=this.graph.getChildVertices(e),a=0;a<t.length;a++)this.isVertexIgnored(t[a])||this.vertexArray.push(t[a]);var i=this.useInputOrigin?this.graph.view.getBounds(this.vertexArray):null,s=this.vertexArray.length;for(this.indices=[],this.dispX=[],this.dispY=[],this.cellLocation=[],this.isMoveable=[],this.neighbours=[],this.radius=[],this.radiusSquared=[],this.forceConstant<.001&&(this.forceConstant=.001),this.forceConstantSquared=this.forceConstant*this.forceConstant,a=0;a<this.vertexArray.length;a++){var o=this.vertexArray[a];this.cellLocation[a]=[];var r=mxCellPath.create(o);this.indices[r]=a;var l=this.getVertexBounds(o),d=l.width,c=l.height,m=l.x,u=l.y;this.cellLocation[a][0]=m+d/2,this.cellLocation[a][1]=u+c/2,this.radius[a]=Math.min(d,c),this.radiusSquared[a]=this.radius[a]*this.radius[a]}n.beginUpdate();try{for(a=0;a<s;a++){this.dispX[a]=0,this.dispY[a]=0,this.isMoveable[a]=this.isVertexMovable(this.vertexArray[a]);var p=this.graph.getConnections(this.vertexArray[a],e);t=this.graph.getOpposites(p,this.vertexArray[a]);for(this.neighbours[a]=[],d=0;d<t.length;d++){this.resetEdges&&this.graph.resetEdge(p[d]),this.disableEdgeStyle&&this.setEdgeStyleEnabled(p[d],!1);r=mxCellPath.create(t[d]);var g=this.indices[r];this.neighbours[a][d]=null!=g?g:a}}for(this.temperature=this.initialTemp,0==this.maxIterations&&(this.maxIterations=20*Math.sqrt(s)),this.iteration=0;this.iteration<this.maxIterations;this.iteration++){if(!this.allowedToRun)return;this.calcRepulsion(),this.calcAttraction(),this.calcPositions(),this.reduceTemperature()}for(e=t=null,a=0;a<this.vertexArray.length;a++)o=this.vertexArray[a],this.isVertexMovable(o)&&(null!=(l=this.getVertexBounds(o))&&(this.cellLocation[a][0]-=l.width/2,this.cellLocation[a][1]-=l.height/2,m=this.graph.snap(this.cellLocation[a][0]),u=this.graph.snap(this.cellLocation[a][1]),this.setVertexLocation(o,m,u),t=null==t?m:Math.min(t,m),e=null==e?u:Math.min(e,u)));a=1-(t||0),o=1-(e||0),null!=i&&(a+=i.x,o+=i.y),this.graph.moveCells(this.vertexArray,a,o)}finally{n.endUpdate()}},mxFastOrganicLayout.prototype.calcPositions=function(){for(var e=0;e<this.vertexArray.length;e++)if(this.isMoveable[e]){(t=Math.sqrt(this.dispX[e]*this.dispX[e]+this.dispY[e]*this.dispY[e]))<.001&&(t=.001);var n=this.dispX[e]/t*Math.min(t,this.temperature),t=this.dispY[e]/t*Math.min(t,this.temperature);this.dispX[e]=0,this.dispY[e]=0,this.cellLocation[e][0]+=n,this.cellLocation[e][1]+=t}},mxFastOrganicLayout.prototype.calcAttraction=function(){for(var e=0;e<this.vertexArray.length;e++)for(var n=0;n<this.neighbours[e].length;n++){var t=this.neighbours[e][n];if(e!=t&&this.isMoveable[e]&&this.isMoveable[t]){(a=(s=this.cellLocation[e][0]-this.cellLocation[t][0])*s+(o=this.cellLocation[e][1]-this.cellLocation[t][1])*o-this.radiusSquared[e]-this.radiusSquared[t])<this.minDistanceLimitSquared&&(a=this.minDistanceLimitSquared);var a,i=Math.sqrt(a),s=s/i*(a=a/this.forceConstant),o=o/i*a;this.dispX[e]-=s,this.dispY[e]-=o,this.dispX[t]+=s,this.dispY[t]+=o}}},mxFastOrganicLayout.prototype.calcRepulsion=function(){for(var e=this.vertexArray.length,n=0;n<e;n++)for(var t=n;t<e;t++){if(!this.allowedToRun)return;if(t!=n&&this.isMoveable[n]&&this.isMoveable[t]){var a=this.cellLocation[n][0]-this.cellLocation[t][0],i=this.cellLocation[n][1]-this.cellLocation[t][1];0==a&&(a=.01+Math.random()),0==i&&(i=.01+Math.random());var s=Math.sqrt(a*a+i*i),o=s-this.radius[n]-this.radius[t];o>this.maxDistanceLimit||(o<this.minDistanceLimit&&(o=this.minDistanceLimit),a=a/s*(o=this.forceConstantSquared/o),i=i/s*o,this.dispX[n]+=a,this.dispY[n]+=i,this.dispX[t]-=a,this.dispY[t]-=i)}}},mxFastOrganicLayout.prototype.reduceTemperature=function(){this.temperature=this.initialTemp*(1-this.iteration/this.maxIterations)},mxCircleLayout.prototype=new mxGraphLayout,mxCircleLayout.prototype.constructor=mxCircleLayout,mxCircleLayout.prototype.radius=null,mxCircleLayout.prototype.moveCircle=!1,mxCircleLayout.prototype.x0=0,mxCircleLayout.prototype.y0=0,mxCircleLayout.prototype.resetEdges=!0,mxCircleLayout.prototype.disableEdgeStyle=!0,mxCircleLayout.prototype.execute=function(e){var n=this.graph.getModel();n.beginUpdate();try{for(var t=0,a=null,i=null,s=[],o=n.getChildCount(e),r=0;r<o;r++){var l=n.getChildAt(e,r);if(this.isVertexIgnored(l))this.isEdgeIgnored(l)||(this.resetEdges&&this.graph.resetEdge(l),this.disableEdgeStyle&&this.setEdgeStyleEnabled(l,!1));else{s.push(l);var d=this.getVertexBounds(l);a=null==a?d.y:Math.min(a,d.y),i=null==i?d.x:Math.min(i,d.x),t=Math.max(t,Math.max(d.width,d.height))}}var c=this.getRadius(s.length,t);this.moveCircle&&(i=this.x0,a=this.y0),this.circle(s,c,i,a)}finally{n.endUpdate()}},mxCircleLayout.prototype.getRadius=function(e,n){return Math.max(e*n/Math.PI,this.radius)},mxCircleLayout.prototype.circle=function(e,n,t,a){for(var i=e.length,s=2*Math.PI/i,o=0;o<i;o++)this.isVertexMovable(e[o])&&this.setVertexLocation(e[o],t+n+n*Math.sin(o*s),a+n+n*Math.cos(o*s))},mxParallelEdgeLayout.prototype=new mxGraphLayout,mxParallelEdgeLayout.prototype.constructor=mxParallelEdgeLayout,mxParallelEdgeLayout.prototype.spacing=20,mxParallelEdgeLayout.prototype.execute=function(e){e=this.findParallels(e),this.graph.model.beginUpdate();try{for(var n in e){var t=e[n];1<t.length&&this.layout(t)}}finally{this.graph.model.endUpdate()}},mxParallelEdgeLayout.prototype.findParallels=function(e){for(var n=this.graph.getModel(),t=[],a=n.getChildCount(e),i=0;i<a;i++){var s=n.getChildAt(e,i);if(!this.isEdgeIgnored(s)){var o=this.getEdgeId(s);null!=o&&(null==t[o]&&(t[o]=[]),t[o].push(s))}}return t},mxParallelEdgeLayout.prototype.getEdgeId=function(e){var n=this.graph.getView(),t=n.getState(e),a=null!=t?t.getVisibleTerminal(!0):n.getVisibleTerminal(e,!0);return e=null!=t?t.getVisibleTerminal(!1):n.getVisibleTerminal(e,!1),null!=a&&null!=e?(a=mxCellPath.create(a),(e=mxCellPath.create(e))<a?e+"-"+a:a+"-"+e):null},mxParallelEdgeLayout.prototype.layout=function(e){var n=e[0];if((o=(t=this.graph.getModel()).getGeometry(t.getTerminal(n,!0)))==(s=t.getGeometry(t.getTerminal(n,!1)))){n=o.x+o.width+this.spacing;for(var t=o.y+o.height/2,a=0;a<e.length;a++)this.route(e[a],n,t),n+=this.spacing}else if(null!=o&&null!=s){n=o.x+o.width/2,t=o.y+o.height/2,a=s.x+s.width/2-n;var i=s.y+s.height/2-t,s=Math.sqrt(a*a+i*i),o=i*this.spacing/s;for(s=a*this.spacing/s,n=n+a/2+o*(e.length-1)/2,t=t+i/2-s*(e.length-1)/2,a=0;a<e.length;a++)this.route(e[a],n,t),n-=o,t+=s}},mxParallelEdgeLayout.prototype.route=function(e,n,t){this.graph.isCellMovable(e)&&this.setEdgePoints(e,[new mxPoint(n,t)])},mxCompositeLayout.prototype=new mxGraphLayout,mxCompositeLayout.prototype.constructor=mxCompositeLayout,mxCompositeLayout.prototype.layouts=null,mxCompositeLayout.prototype.master=null,mxCompositeLayout.prototype.moveCell=function(e,n,t){null!=this.master?this.master.move.apply(this.master,arguments):this.layouts[0].move.apply(this.layouts[0],arguments)},mxCompositeLayout.prototype.execute=function(e){var n=this.graph.getModel();n.beginUpdate();try{for(var t=0;t<this.layouts.length;t++)this.layouts[t].execute.apply(this.layouts[t],arguments)}finally{n.endUpdate()}},mxEdgeLabelLayout.prototype=new mxGraphLayout,mxEdgeLabelLayout.prototype.constructor=mxEdgeLabelLayout,mxEdgeLabelLayout.prototype.execute=function(e){for(var n=this.graph.view,t=this.graph.getModel(),a=[],i=[],s=t.getChildCount(e),o=0;o<s;o++){var r=t.getChildAt(e,o),l=n.getState(r);null!=l&&(this.isVertexIgnored(r)?this.isEdgeIgnored(r)||a.push(l):i.push(l))}this.placeLabels(i,a)},mxEdgeLabelLayout.prototype.placeLabels=function(e,n){var t=this.graph.getModel();t.beginUpdate();try{for(var a=0;a<n.length;a++){var i=n[a];if(null!=i&&null!=i.text&&null!=i.text.boundingBox)for(var s=0;s<e.length;s++){var o=e[s];null!=o&&this.avoid(i,o)}}}finally{t.endUpdate()}},mxEdgeLabelLayout.prototype.avoid=function(e,n){var t=this.graph.getModel(),a=e.text.boundingBox;if(mxUtils.intersects(a,n)){var i=-a.y-a.height+n.y,s=-a.y+n.y+n.height;i=Math.abs(i)<Math.abs(s)?i:s,s=-a.x-a.width+n.x,a=-a.x+n.x+n.width,a=Math.abs(s)<Math.abs(a)?s:a;Math.abs(a)<Math.abs(i)?i=0:a=0,null!=(s=t.getGeometry(e.cell))&&(null!=(s=s.clone()).offset?(s.offset.x+=a,s.offset.y+=i):s.offset=new mxPoint(a,i),t.setGeometry(e.cell,s))}},mxGraphAbstractHierarchyCell.prototype.maxRank=-1,mxGraphAbstractHierarchyCell.prototype.minRank=-1,mxGraphAbstractHierarchyCell.prototype.x=null,mxGraphAbstractHierarchyCell.prototype.y=null,mxGraphAbstractHierarchyCell.prototype.width=0,mxGraphAbstractHierarchyCell.prototype.height=0,mxGraphAbstractHierarchyCell.prototype.nextLayerConnectedCells=null,mxGraphAbstractHierarchyCell.prototype.previousLayerConnectedCells=null,mxGraphAbstractHierarchyCell.prototype.temp=null,mxGraphAbstractHierarchyCell.prototype.getNextLayerConnectedCells=function(e){return null},mxGraphAbstractHierarchyCell.prototype.getPreviousLayerConnectedCells=function(e){return null},mxGraphAbstractHierarchyCell.prototype.isEdge=function(){return!1},mxGraphAbstractHierarchyCell.prototype.isVertex=function(){return!1},mxGraphAbstractHierarchyCell.prototype.getGeneralPurposeVariable=function(e){return null},mxGraphAbstractHierarchyCell.prototype.setGeneralPurposeVariable=function(e,n){return null},mxGraphAbstractHierarchyCell.prototype.setX=function(e,n){this.isVertex()?this.x[0]=n:this.isEdge()&&(this.x[e-this.minRank-1]=n)},mxGraphAbstractHierarchyCell.prototype.getX=function(e){return this.isVertex()?this.x[0]:this.isEdge()?this.x[e-this.minRank-1]:0},mxGraphAbstractHierarchyCell.prototype.setY=function(e,n){this.isVertex()?this.y[0]=n:this.isEdge()&&(this.y[e-this.minRank-1]=n)},mxGraphHierarchyNode.prototype=new mxGraphAbstractHierarchyCell,mxGraphHierarchyNode.prototype.constructor=mxGraphHierarchyNode,mxGraphHierarchyNode.prototype.cell=null,mxGraphHierarchyNode.prototype.connectsAsTarget=[],mxGraphHierarchyNode.prototype.connectsAsSource=[],mxGraphHierarchyNode.prototype.hashCode=!1,mxGraphHierarchyNode.prototype.getRankValue=function(e){return this.maxRank},mxGraphHierarchyNode.prototype.getNextLayerConnectedCells=function(e){if(null==this.nextLayerConnectedCells){this.nextLayerConnectedCells=[],this.nextLayerConnectedCells[0]=[];for(var n=0;n<this.connectsAsTarget.length;n++){var t=this.connectsAsTarget[n];-1==t.maxRank||t.maxRank==e+1?this.nextLayerConnectedCells[0].push(t.source):this.nextLayerConnectedCells[0].push(t)}}return this.nextLayerConnectedCells[0]},mxGraphHierarchyNode.prototype.getPreviousLayerConnectedCells=function(e){if(null==this.previousLayerConnectedCells){this.previousLayerConnectedCells=[],this.previousLayerConnectedCells[0]=[];for(var n=0;n<this.connectsAsSource.length;n++){var t=this.connectsAsSource[n];-1==t.minRank||t.minRank==e-1?this.previousLayerConnectedCells[0].push(t.target):this.previousLayerConnectedCells[0].push(t)}}return this.previousLayerConnectedCells[0]},mxGraphHierarchyNode.prototype.isVertex=function(){return!0},mxGraphHierarchyNode.prototype.getGeneralPurposeVariable=function(e){return this.temp[0]},mxGraphHierarchyNode.prototype.setGeneralPurposeVariable=function(e,n){this.temp[0]=n},mxGraphHierarchyNode.prototype.isAncestor=function(e){if(null!=e&&null!=this.hashCode&&null!=e.hashCode&&this.hashCode.length<e.hashCode.length){if(this.hashCode==e.hashCode)return!0;if(null==this.hashCode||null==this.hashCode)return!1;for(var n=0;n<this.hashCode.length;n++)if(this.hashCode[n]!=e.hashCode[n])return!1;return!0}return!1},mxGraphHierarchyNode.prototype.getCoreCell=function(){return this.cell},mxGraphHierarchyEdge.prototype=new mxGraphAbstractHierarchyCell,mxGraphHierarchyEdge.prototype.constructor=mxGraphHierarchyEdge,mxGraphHierarchyEdge.prototype.edges=null,mxGraphHierarchyEdge.prototype.source=null,mxGraphHierarchyEdge.prototype.target=null,mxGraphHierarchyEdge.prototype.isReversed=!1,mxGraphHierarchyEdge.prototype.invert=function(e){e=this.source,this.source=this.target,this.target=e,this.isReversed=!this.isReversed},mxGraphHierarchyEdge.prototype.getNextLayerConnectedCells=function(e){if(null==this.nextLayerConnectedCells){this.nextLayerConnectedCells=[];for(var n=0;n<this.temp.length;n++)this.nextLayerConnectedCells[n]=[],n==this.temp.length-1?this.nextLayerConnectedCells[n].push(this.source):this.nextLayerConnectedCells[n].push(this)}return this.nextLayerConnectedCells[e-this.minRank-1]},mxGraphHierarchyEdge.prototype.getPreviousLayerConnectedCells=function(e){if(null==this.previousLayerConnectedCells){this.previousLayerConnectedCells=[];for(var n=0;n<this.temp.length;n++)this.previousLayerConnectedCells[n]=[],0==n?this.previousLayerConnectedCells[n].push(this.target):this.previousLayerConnectedCells[n].push(this)}return this.previousLayerConnectedCells[e-this.minRank-1]},mxGraphHierarchyEdge.prototype.isEdge=function(){return!0},mxGraphHierarchyEdge.prototype.getGeneralPurposeVariable=function(e){return this.temp[e-this.minRank-1]},mxGraphHierarchyEdge.prototype.setGeneralPurposeVariable=function(e,n){this.temp[e-this.minRank-1]=n},mxGraphHierarchyEdge.prototype.getCoreCell=function(){return null!=this.edges&&0<this.edges.length?this.edges[0]:null},mxGraphHierarchyModel.prototype.maxRank=null,mxGraphHierarchyModel.prototype.vertexMapper=null,mxGraphHierarchyModel.prototype.edgeMapper=null,mxGraphHierarchyModel.prototype.ranks=null,mxGraphHierarchyModel.prototype.roots=null,mxGraphHierarchyModel.prototype.parent=null,mxGraphHierarchyModel.prototype.dfsCount=0,mxGraphHierarchyModel.prototype.SOURCESCANSTARTRANK=1e8,mxGraphHierarchyModel.prototype.tightenToSource=!1,mxGraphHierarchyModel.prototype.createInternalCells=function(e,n,t){for(var a=e.getGraph(),i=0;i<n.length;i++){t[i]=new mxGraphHierarchyNode(n[i]);var s=mxCellPath.create(n[i]);this.vertexMapper[s]=t[i],s=e.getEdges(n[i]),t[i].connectsAsSource=[];for(var o=0;o<s.length;o++){if((d=e.getVisibleTerminal(s[o],!1))!=n[i]&&d!=n[i]&&e.graph.model.isVertex(d)&&!e.isVertexIgnored(d)){var r=e.getEdgesBetween(n[i],d,!1),l=e.getEdgesBetween(n[i],d,!0),d=mxCellPath.create(r[0]);if(null!=r&&0<r.length&&null==this.edgeMapper[d]&&2*l.length>=r.length){l=new mxGraphHierarchyEdge(r);for(var c=0;c<r.length;c++){var m=r[c];d=mxCellPath.create(m);this.edgeMapper[d]=l,a.resetEdge(m),e.disableEdgeStyle&&(e.setEdgeStyleEnabled(m,!1),e.setOrthogonalEdge(m,!0))}l.source=t[i],mxUtils.indexOf(t[i].connectsAsSource,l)<0&&t[i].connectsAsSource.push(l)}}}t[i].temp[0]=0}},mxGraphHierarchyModel.prototype.initialRank=function(){var e=[];if(null!=this.roots)for(var n=0;n<this.roots.length;n++){var t=mxCellPath.create(this.roots[n]);null!=(t=this.vertexMapper[t])&&e.push(t)}for(var a in this.vertexMapper)(t=this.vertexMapper[a]).temp[0]=-1;for(var i=e.slice();0<e.length;){var s,o;s=(t=e[0]).connectsAsTarget,o=t.connectsAsSource;var r=!0,l=this.SOURCESCANSTARTRANK;for(n=0;n<s.length;n++){var d=s[n];if(5270620!=d.temp[0]){r=!1;break}d=d.source,l=Math.min(l,d.temp[0]-1)}if(r){if(t.temp[0]=l,this.maxRank=Math.min(this.maxRank,l),null!=o)for(n=0;n<o.length;n++)(d=o[n]).temp[0]=5270620,-1==(d=d.target).temp[0]&&(e.push(d),d.temp[0]=-2);e.shift()}else if(n=e.shift(),e.push(t),n==t&&1==e.length)break}for(a in this.vertexMapper)(t=this.vertexMapper[a]).temp[0]-=this.maxRank;for(n=0;n<i.length;n++)for(e=0,s=(t=i[n]).connectsAsSource,a=0;a<s.length;a++)d=(d=s[a]).target,t.temp[0]=Math.max(e,d.temp[0]+1),e=t.temp[0];this.maxRank=this.SOURCESCANSTARTRANK-this.maxRank},mxGraphHierarchyModel.prototype.fixRanks=function(){var s=[];this.ranks=[];for(var e=0;e<this.maxRank+1;e++)s[e]=[],this.ranks[e]=s[e];var n=null;if(null!=this.roots){var t=this.roots;for(n=[],e=0;e<t.length;e++){var a=mxCellPath.create(t[e]);n[e]=this.vertexMapper[a]}}this.visit(function(e,n,t,a,i){if(0==i&&n.maxRank<0&&n.minRank<0&&(s[n.temp[0]].push(n),n.maxRank=n.temp[0],n.minRank=n.temp[0],n.temp[0]=s[n.maxRank].length-1),null!=e&&null!=t&&1<e.maxRank-n.maxRank)for(t.maxRank=e.maxRank,t.minRank=n.maxRank,t.temp=[],t.x=[],t.y=[],e=t.minRank+1;e<t.maxRank;e++)s[e].push(t),t.setGeneralPurposeVariable(e,s[e].length-1)},n,!1,null)},mxGraphHierarchyModel.prototype.visit=function(e,n,t,a){if(null!=n){for(var i=0;i<n.length;i++){var s=n[i];null!=s&&(null==a&&(a={}),t?(s.hashCode=[],s.hashCode[0]=this.dfsCount,s.hashCode[1]=i,this.extendedDfs(null,s,null,e,a,s.hashCode,i,0)):this.dfs(null,s,null,e,a,0))}this.dfsCount++}},mxGraphHierarchyModel.prototype.dfs=function(e,n,t,a,i,s){if(null!=n){var o=mxCellPath.create(n.cell);if(null==i[o])for(a(e,i[o]=n,t,s,0),e=n.connectsAsSource.slice(),t=0;t<e.length;t++)o=e[t],this.dfs(n,o.target,o,a,i,s+1);else a(e,n,t,s,1)}},mxGraphHierarchyModel.prototype.extendedDfs=function(e,n,t,a,i,s,o,r){if(null!=n)if(null==e||null!=n.hashCode&&n.hashCode[0]==e.hashCode[0]||(s=e.hashCode.length+1,n.hashCode=e.hashCode.slice(),n.hashCode[s-1]=o),null==i[o=mxCellPath.create(n.cell)])for(a(e,i[o]=n,t,r,0),e=n.connectsAsSource.slice(),t=0;t<e.length;t++)o=e[t],this.extendedDfs(n,o.target,o,a,i,n.hashCode,t,r+1);else a(e,n,t,r,1)},mxHierarchicalLayoutStage.prototype.execute=function(e){},mxMedianHybridCrossingReduction.prototype=new mxHierarchicalLayoutStage,mxMedianHybridCrossingReduction.prototype.constructor=mxMedianHybridCrossingReduction,mxMedianHybridCrossingReduction.prototype.layout=null,mxMedianHybridCrossingReduction.prototype.maxIterations=24,mxMedianHybridCrossingReduction.prototype.nestedBestRanks=null,mxMedianHybridCrossingReduction.prototype.currentBestCrossings=0,mxMedianHybridCrossingReduction.prototype.iterationsWithoutImprovement=0,mxMedianHybridCrossingReduction.prototype.maxNoImprovementIterations=2,mxMedianHybridCrossingReduction.prototype.execute=function(e){e=this.layout.getModel(),this.nestedBestRanks=[];for(var n=0;n<e.ranks.length;n++)this.nestedBestRanks[n]=e.ranks[n].slice();var t=0,a=this.calculateCrossings(e);for(n=0;n<this.maxIterations&&t<this.maxNoImprovementIterations;n++){this.weightedMedian(n,e),this.transpose(n,e);var i=this.calculateCrossings(e);if(i<a)for(a=i,i=t=0;i<this.nestedBestRanks.length;i++)for(var s=e.ranks[i],o=0;o<s.length;o++){var r=s[o];this.nestedBestRanks[i][r.getGeneralPurposeVariable(i)]=r}else for(t++,i=0;i<this.nestedBestRanks.length;i++)for(s=e.ranks[i],o=0;o<s.length;o++)(r=s[o]).setGeneralPurposeVariable(i,o);if(0==a)break}for(t=[],a=[],n=0;n<e.maxRank+1;n++)a[n]=[],t[n]=a[n];for(n=0;n<this.nestedBestRanks.length;n++)for(i=0;i<this.nestedBestRanks[n].length;i++)a[n].push(this.nestedBestRanks[n][i]);e.ranks=t},mxMedianHybridCrossingReduction.prototype.calculateCrossings=function(e){for(var n=e.ranks.length,t=0,a=1;a<n;a++)t+=this.calculateRankCrossing(a,e);return t},mxMedianHybridCrossingReduction.prototype.calculateRankCrossing=function(e,n){for(var t=0,a=n.ranks[e],i=a.length,s=n.ranks[e-1].length,o=[],r=0;r<i;r++)o[r]=[];for(r=0;r<a.length;r++)for(var l=(c=a[r]).getGeneralPurposeVariable(e),d=c.getPreviousLayerConnectedCells(e),c=0;c<d.length;c++){var m=d[c].getGeneralPurposeVariable(e-1);o[l][m]=201207}for(r=0;r<i;r++)for(c=0;c<s;c++)if(201207==o[r][c]){for(a=r+1;a<i;a++)for(l=0;l<c;l++)201207==o[a][l]&&t++;for(a=0;a<r;a++)for(l=c+1;l<s;l++)201207==o[a][l]&&t++}return t/2},mxMedianHybridCrossingReduction.prototype.transpose=function(e,n){for(var t=!0,a=0;t&&a++<10;)for(var i=1==e%2&&1==a%2,s=(t=!1,0);s<n.ranks.length;s++){for(var o=n.ranks[s],r=[],l=0;l<o.length;l++){(b=(f=o[l]).getGeneralPurposeVariable(s))<0&&(b=l),r[b]=f}var d=b=f=null,c=null,m=null,u=null,p=null,g=null,v=null,h=null;for(l=0;l<o.length-1;l++){if(0==l){for(var f=(v=r[l]).getNextLayerConnectedCells(s),b=v.getPreviousLayerConnectedCells(s),A=(m=[],u=[],0);A<f.length;A++)m[A]=f[A].getGeneralPurposeVariable(s+1);for(A=0;A<b.length;A++)u[A]=b[A].getGeneralPurposeVariable(s-1)}else f=d,b=c,m=p,u=g,v=h;for(d=(h=r[l+1]).getNextLayerConnectedCells(s),c=h.getPreviousLayerConnectedCells(s),p=[],g=[],A=0;A<d.length;A++)p[A]=d[A].getGeneralPurposeVariable(s+1);for(A=0;A<c.length;A++)g[A]=c[A].getGeneralPurposeVariable(s-1);var E=0,y=0;for(A=0;A<m.length;A++)for(var S=0;S<p.length;S++)m[A]>p[S]&&E++,m[A]<p[S]&&y++;for(A=0;A<u.length;A++)for(S=0;S<g.length;S++)u[A]>g[S]&&E++,u[A]<g[S]&&y++;(y<E||y==E&&i)&&(d=v.getGeneralPurposeVariable(s),v.setGeneralPurposeVariable(s,h.getGeneralPurposeVariable(s)),h.setGeneralPurposeVariable(s,d),d=f,c=b,p=m,g=u,h=v,i||(t=!0))}}},mxMedianHybridCrossingReduction.prototype.weightedMedian=function(e,n){var t=0==e%2;if(t)for(var a=n.maxRank-1;0<=a;a--)this.medianRank(a,t);else for(a=1;a<n.maxRank;a++)this.medianRank(a,t)},mxMedianHybridCrossingReduction.prototype.medianRank=function(e,n){for(var t=this.nestedBestRanks[e].length,a=[],i=[],s=0;s<t;s++){var o,r,l=this.nestedBestRanks[e][s],d=new MedianCellSorter;d.cell=l,r=n?e+1:e-1,null!=(o=n?l.getNextLayerConnectedCells(e):l.getPreviousLayerConnectedCells(e))&&0!=o.length?(d.medianValue=this.medianValue(o,r),a.push(d)):i[l.getGeneralPurposeVariable(e)]=!0}for(a.sort(MedianCellSorter.prototype.compare),s=0;s<t;s++)null==i[s]&&(l=a.shift().cell).setGeneralPurposeVariable(e,s)},mxMedianHybridCrossingReduction.prototype.medianValue=function(e,n){for(var t=[],a=0,i=0;i<e.length;i++){var s=e[i];t[a++]=s.getGeneralPurposeVariable(n)}return t.sort(function(e,n){return e-n}),1==a%2?t[Math.floor(a/2)]:2==a?(t[0]+t[1])/2:(s=t[(i=a/2)-1]-t[0],a=t[a-1]-t[i],(t[i-1]*a+t[i]*s)/(s+a))},MedianCellSorter.prototype.medianValue=0,MedianCellSorter.prototype.cell=!1,MedianCellSorter.prototype.compare=function(e,n){return null!=e&&null!=n?n.medianValue>e.medianValue?-1:n.medianValue<e.medianValue?1:0:0},mxMinimumCycleRemover.prototype=new mxHierarchicalLayoutStage,mxMinimumCycleRemover.prototype.constructor=mxMinimumCycleRemover,mxMinimumCycleRemover.prototype.layout=null,mxMinimumCycleRemover.prototype.execute=function(e){var n=this.layout.getModel(),s={},o=mxUtils.clone(n.vertexMapper,null,!0),t=null;if(null!=n.roots){var a=n.roots;t=[];for(e=0;e<a.length;e++){var i=mxCellPath.create(a[e]);t[e]=n.vertexMapper[i]}}if(n.visit(function(e,n,t,a,i){n.isAncestor(e)&&(t.invert(),mxUtils.remove(t,e.connectsAsSource),e.connectsAsTarget.push(t),mxUtils.remove(t,n.connectsAsTarget),n.connectsAsSource.push(t)),e=mxCellPath.create(n.cell),s[e]=n,delete o[e]},t,!0,null),t=null,0<o.lenth&&(t=mxUtils.clone(o,null,!0)),e=mxUtils.clone(s,null,!0),n.visit(function(e,n,t,a,i){n.isAncestor(e)&&(t.invert(),mxUtils.remove(t,e.connectsAsSource),n.connectsAsSource.push(t),e.connectsAsTarget.push(t),mxUtils.remove(t,n.connectsAsTarget)),e=mxCellPath.create(n.cell),s[e]=n,delete o[e]},o,!0,e),a=this.layout.getGraph(),null!=t&&0<t.length)for(n=n.roots,e=0;e<t.length;e++)i=t[e].cell,0==a.getIncomingEdges(i).length&&n.push(i)};var mxHierarchicalEdgeStyle={ORTHOGONAL:1,POLYLINE:2,STRAIGHT:3,CURVE:4};function WeightedCellSorter(e,n){this.cell=e,this.weightedValue=n}function mxHierarchicalLayout(e,n,t){mxGraphLayout.call(this,e),this.orientation=null!=n?n:mxConstants.DIRECTION_NORTH,this.deterministic=null==t||t}function mxGraphModel(e){this.currentEdit=this.createUndoableEdit(),null!=e?this.setRoot(e):this.clear()}function mxRootChange(e,n){this.model=e,this.previous=this.root=n}function mxChildChange(e,n,t,a){this.model=e,this.previous=this.parent=n,this.child=t,this.previousIndex=this.index=a}function mxTerminalChange(e,n,t,a){this.model=e,this.cell=n,this.previous=this.terminal=t,this.source=a}function mxValueChange(e,n,t){this.model=e,this.cell=n,this.previous=this.value=t}function mxStyleChange(e,n,t){this.model=e,this.cell=n,this.previous=this.style=t}function mxGeometryChange(e,n,t){this.model=e,this.cell=n,this.previous=this.geometry=t}function mxCollapseChange(e,n,t){this.model=e,this.cell=n,this.previous=this.collapsed=t}function mxVisibleChange(e,n,t){this.model=e,this.cell=n,this.previous=this.visible=t}function mxCellAttributeChange(e,n,t){this.cell=e,this.attribute=n,this.previous=this.value=t}function mxCell(e,n,t){this.value=e,this.setGeometry(n),this.setStyle(t),null!=this.onInit&&this.onInit()}function mxGeometry(e,n,t,a){mxRectangle.call(this,e,n,t,a)}mxCoordinateAssignment.prototype=new mxHierarchicalLayoutStage,mxCoordinateAssignment.prototype.constructor=mxCoordinateAssignment,mxCoordinateAssignment.prototype.layout=null,mxCoordinateAssignment.prototype.intraCellSpacing=30,mxCoordinateAssignment.prototype.interRankCellSpacing=100,mxCoordinateAssignment.prototype.parallelEdgeSpacing=10,mxCoordinateAssignment.prototype.maxIterations=8,mxCoordinateAssignment.prototype.prefHozEdgeSep=5,mxCoordinateAssignment.prototype.prefVertEdgeOff=2,mxCoordinateAssignment.prototype.minEdgeJetty=12,mxCoordinateAssignment.prototype.channelBuffer=4,mxCoordinateAssignment.prototype.jettyPositions=null,mxCoordinateAssignment.prototype.orientation=mxConstants.DIRECTION_NORTH,mxCoordinateAssignment.prototype.initialX=null,mxCoordinateAssignment.prototype.limitX=null,mxCoordinateAssignment.prototype.currentXDelta=null,mxCoordinateAssignment.prototype.widestRank=null,mxCoordinateAssignment.prototype.rankTopY=null,mxCoordinateAssignment.prototype.rankBottomY=null,mxCoordinateAssignment.prototype.widestRankValue=null,mxCoordinateAssignment.prototype.rankWidths=null,mxCoordinateAssignment.prototype.rankY=null,mxCoordinateAssignment.prototype.fineTuning=!0,mxCoordinateAssignment.prototype.edgeStyle=mxHierarchicalEdgeStyle.POLYLINE,mxCoordinateAssignment.prototype.nextLayerConnectedCache=null,mxCoordinateAssignment.prototype.previousLayerConnectedCache=null,mxCoordinateAssignment.prototype.groupPadding=10,mxCoordinateAssignment.prototype.printStatus=function(){var e=this.layout.getModel();mxLog.show(),mxLog.writeln("======Coord assignment debug=======");for(var n=0;n<e.ranks.length;n++){mxLog.write("Rank ",n," : ");for(var t=e.ranks[n],a=0;a<t.length;a++)mxLog.write(t[a].getGeneralPurposeVariable(n)," ");mxLog.writeln()}mxLog.writeln("====================================")},mxCoordinateAssignment.prototype.execute=function(e){this.jettyPositions=[],e=this.layout.getModel(),this.currentXDelta=0,this.initialCoords(this.layout.getGraph(),e),this.fineTuning&&this.minNode(e);var n=1e8;if(this.fineTuning)for(var t=0;t<this.maxIterations;t++){if(0!=t&&(this.medianPos(t,e),this.minNode(e)),this.currentXDelta<n){for(var a=0;a<e.ranks.length;a++)for(var i=e.ranks[a],s=0;s<i.length;s++){var o=i[s];o.setX(a,o.getGeneralPurposeVariable(a))}n=this.currentXDelta}else for(a=0;a<e.ranks.length;a++)for(i=e.ranks[a],s=0;s<i.length;s++)(o=i[s]).setGeneralPurposeVariable(a,o.getX(a));this.minPath(this.layout.getGraph(),e),this.currentXDelta=0}this.setCellLocations(this.layout.getGraph(),e)},mxCoordinateAssignment.prototype.minNode=function(e){for(var n=[],t=[],a=[],i=0;i<=e.maxRank;i++){a[i]=e.ranks[i];for(var s=0;s<a[i].length;s++){var o=a[i][s];(r=new WeightedCellSorter(o,i)).rankIndex=s,r.visited=!0,n.push(r),t[o=mxCellPath.create(o.getCoreCell())]=r}}for(e=10*n.length,s=0;0<n.length&&s<=e;){i=(r=n.shift()).cell;var r,l=r.weightedValue,d=parseInt(r.rankIndex),c=(o=i.getNextLayerConnectedCells(l),i.getPreviousLayerConnectedCells(l)),m=o.length,u=c.length,p=this.medianXValue(o,l+1),g=this.medianXValue(c,l-1),v=m+u,h=i.getGeneralPurposeVariable(l),f=h;if(0<v&&(f=(p*m+g*u)/v),m=!1,f<h-1?0==d?(i.setGeneralPurposeVariable(l,f),m=!0):(h=(h=(d=a[l][d-1]).getGeneralPurposeVariable(l))+d.width/2+this.intraCellSpacing+i.width/2)<f?(i.setGeneralPurposeVariable(l,f),m=!0):h<i.getGeneralPurposeVariable(l)-1&&(i.setGeneralPurposeVariable(l,h),m=!0):h+1<f&&(d==a[l].length-1?(i.setGeneralPurposeVariable(l,f),m=!0):f<(h=(h=(d=a[l][d+1]).getGeneralPurposeVariable(l))-d.width/2-this.intraCellSpacing-i.width/2)?(i.setGeneralPurposeVariable(l,f),m=!0):h>i.getGeneralPurposeVariable(l)+1&&(i.setGeneralPurposeVariable(l,h),m=!0)),m){for(i=0;i<o.length;i++)l=o[i],null!=(l=t[l=mxCellPath.create(l.getCoreCell())])&&0==l.visited&&(l.visited=!0,n.push(l));for(i=0;i<c.length;i++)l=c[i],null!=(l=t[l=mxCellPath.create(l.getCoreCell())])&&0==l.visited&&(l.visited=!0,n.push(l))}r.visited=!1,s++}},mxCoordinateAssignment.prototype.medianPos=function(e,n){if(0==e%2)for(var t=n.maxRank;0<t;t--)this.rankMedianPosition(t-1,n,t);else for(t=0;t<n.maxRank-1;t++)this.rankMedianPosition(t+1,n,t)},mxCoordinateAssignment.prototype.rankMedianPosition=function(e,n,t){n=n.ranks[e];for(var a=[],i=[],s=0;s<n.length;s++){var o=n[s];a[s]=new WeightedCellSorter,a[s].cell=o,a[s].rankIndex=s;var r=mxCellPath.create(o.getCoreCell());i[r]=a[s];var l=null;l=t<e?o.getPreviousLayerConnectedCells(e):o.getNextLayerConnectedCells(e);a[s].weightedValue=this.calculatedWeightedValue(o,l)}for(a.sort(WeightedCellSorter.prototype.compare),s=0;s<a.length;s++){r=0,o=a[s].cell,r=0,null!=(l=t<e?o.getPreviousLayerConnectedCells(e).slice():o.getNextLayerConnectedCells(e).slice())&&(r=0<(r=l.length)?this.medianXValue(l,t):o.getGeneralPurposeVariable(e));for(var d=0,c=(l=-1e8,a[s].rankIndex-1);0<=c;){var m;if(null!=(m=i[m=mxCellPath.create(n[c].getCoreCell())])){var u=m.cell;m.visited?(l=u.getGeneralPurposeVariable(e)+u.width/2+this.intraCellSpacing+d+o.width/2,c=-1):(d+=u.width+this.intraCellSpacing,c--)}}for(d=0,u=1e8,c=a[s].rankIndex+1;c<a.length;)if(null!=(m=i[m=mxCellPath.create(n[c].getCoreCell())])){var p=m.cell;m.visited?(u=p.getGeneralPurposeVariable(e)-p.width/2-this.intraCellSpacing-d-o.width/2,c=a.length):(d+=p.width+this.intraCellSpacing,c++)}l<=r&&r<=u?o.setGeneralPurposeVariable(e,r):r<l?(o.setGeneralPurposeVariable(e,l),this.currentXDelta+=l-r):u<r&&(o.setGeneralPurposeVariable(e,u),this.currentXDelta+=r-u),a[s].visited=!0}},mxCoordinateAssignment.prototype.calculatedWeightedValue=function(e,n){for(var t=0,a=0;a<n.length;a++){var i=n[a];e.isVertex()&&i.isVertex()?t++:t=e.isEdge()&&i.isEdge()?t+8:t+2}return t},mxCoordinateAssignment.prototype.medianXValue=function(e,n){if(0==e.length)return 0;for(var t=[],a=0;a<e.length;a++)t[a]=e[a].getGeneralPurposeVariable(n);return t.sort(function(e,n){return e-n}),1==e.length%2?t[Math.floor(e.length/2)]:(t[(a=e.length/2)-1]+t[a])/2},mxCoordinateAssignment.prototype.initialCoords=function(e,n){this.calculateWidestRank(e,n);for(var t=this.widestRank;0<=t;t--)t<n.maxRank&&this.rankCoordinates(t,e,n);for(t=this.widestRank+1;t<=n.maxRank;t++)0<t&&this.rankCoordinates(t,e,n)},mxCoordinateAssignment.prototype.rankCoordinates=function(e,n,t){n=t.ranks[e],t=0;for(var a=this.initialX+(this.widestRankValue-this.rankWidths[e])/2,i=!1,s=0;s<n.length;s++){var o=n[s];if(o.isVertex()){var r=this.layout.getVertexBounds(o.cell);null!=r?this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(o.width=r.width,o.height=r.height):(o.width=r.height,o.height=r.width):i=!0,t=Math.max(t,o.height)}else o.isEdge()&&(r=1,null!=o.edges?r=o.edges.length:mxLog.warn("edge.edges is null"),o.width=(r-1)*this.parallelEdgeSpacing);a+=o.width/2,o.setX(e,a),o.setGeneralPurposeVariable(e,a),a+=o.width/2,a+=this.intraCellSpacing}1==i&&mxLog.warn("At least one cell has no bounds")},mxCoordinateAssignment.prototype.calculateWidestRank=function(e,n){var t=-this.interRankCellSpacing,a=0;this.rankWidths=[],this.rankY=[];for(var i=n.maxRank;0<=i;i--){for(var s=0,o=n.ranks[i],r=this.initialX,l=!1,d=0;d<o.length;d++){var c=o[d];if(c.isVertex()){var m=this.layout.getVertexBounds(c.cell);null!=m?this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(c.width=m.width,c.height=m.height):(c.width=m.height,c.height=m.width):l=!0,s=Math.max(s,c.height)}else c.isEdge()&&(m=1,null!=c.edges?m=c.edges.length:mxLog.warn("edge.edges is null"),c.width=(m-1)*this.parallelEdgeSpacing);r+=c.width/2,c.setX(i,r),c.setGeneralPurposeVariable(i,r),r+=c.width/2,(r+=this.intraCellSpacing)>this.widestRankValue&&(this.widestRankValue=r,this.widestRank=i),this.rankWidths[i]=r}for(1==l&&mxLog.warn("At least one cell has no bounds"),this.rankY[i]=t,r=s/2+a/2+this.interRankCellSpacing,a=s,t=this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_WEST?t+r:t-r,d=0;d<o.length;d++)o[d].setY(i,t)}},mxCoordinateAssignment.prototype.minPath=function(e,n){var t,a=n.edgeMapper;for(t in a){var i=a[t];if(!(i.maxRank-i.minRank-1<1)){for(var s=i.getGeneralPurposeVariable(i.minRank+1),o=!0,r=0,l=i.minRank+2;l<i.maxRank;l++){s!=(d=i.getGeneralPurposeVariable(l))?(o=!1,s=d):r++}if(!o){o=s=0;var d=[],c=[],m=i.getGeneralPurposeVariable(i.minRank+1);for(l=i.minRank+1;l<i.maxRank-1;l++){var u=i.getX(l+1);m==u?(d[l-i.minRank-1]=m,s++):this.repositionValid(n,i,l+1,m)?(d[l-i.minRank-1]=m,s++):m=d[l-i.minRank-1]=u}for(m=i.getX(l),l=i.maxRank-1;l>i.minRank+1;l--)m==(u=i.getX(l-1))?(c[l-i.minRank-2]=m,o++):this.repositionValid(n,i,l-1,m)?(c[l-i.minRank-2]=m,o++):(c[l-i.minRank-2]=i.getX(l-1),m=u);if(r<o||r<s)if(s<=o)for(l=i.maxRank-2;l>i.minRank;l--)i.setX(l,c[l-i.minRank-1]);else if(o<s)for(l=i.minRank+2;l<i.maxRank;l++)i.setX(l,d[l-i.minRank-2])}}}},mxCoordinateAssignment.prototype.repositionValid=function(e,n,t,a){e=e.ranks[t];for(var i=-1,s=0;s<e.length;s++)if(n==e[s]){i=s;break}if(i<0)return!1;if(a<(s=n.getGeneralPurposeVariable(t))){if(0==i)return!0;if(!((t=(t=(e=e[i-1]).getGeneralPurposeVariable(t))+e.width/2+this.intraCellSpacing+n.width/2)<=a))return!1}else if(s<a){if(i==e.length-1)return!0;if(!(a<=(t=(t=(e=e[i+1]).getGeneralPurposeVariable(t))-e.width/2-this.intraCellSpacing-n.width/2)))return!1}return!0},mxCoordinateAssignment.prototype.setCellLocations=function(e,n){this.rankTopY=[],this.rankBottomY=[];for(var t=0;t<n.ranks.length;t++)this.rankTopY[t]=Number.MAX_VALUE,this.rankBottomY[t]=0;t=null,this.layout.resizeParent&&(t={});var a,i=n.edgeMapper,s=n.vertexMapper;for(a in s){var o=s[a];if(this.setVertexLocation(o),this.layout.resizeParent){o=e.model.getParent(o.cell);var r=mxCellPath.create(o);null==t[r]&&(t[r]=o)}}for(a in this.layout.resizeParent&&null!=t&&this.adjustParents(t),(this.edgeStyle==mxHierarchicalEdgeStyle.ORTHOGONAL||this.edgeStyle==mxHierarchicalEdgeStyle.POLYLINE||this.edgeStyle==mxHierarchicalEdgeStyle.CURVE)&&this.localEdgeProcessing(n),i)this.setEdgePosition(i[a])},mxCoordinateAssignment.prototype.adjustParents=function(e){var n,t=[];for(n in e)t.push(e[n]);this.layout.arrangeGroups(mxUtils.sortCells(t,!0),this.groupPadding)},mxCoordinateAssignment.prototype.localEdgeProcessing=function(e){for(var n=0;n<e.ranks.length;n++)for(var t=e.ranks[n],a=0;a<t.length;a++){var i=t[a];if(i.isVertex())for(var s=i.getPreviousLayerConnectedCells(n),o=n-1,r=0;r<2;r++){if(-1<o&&o<e.ranks.length&&null!=s&&0<s.length){for(var l=[],d=0;d<s.length;d++){var c=new WeightedCellSorter(s[d],s[d].getX(o));l.push(c)}l.sort(WeightedCellSorter.prototype.compare);var m=(c=i.x[0]-i.width/2)+i.width,u=s=0;for(o=[],d=0;d<l.length;d++){var p,g=l[d].cell;if(g.isVertex()){p=0==r?i.connectsAsSource:i.connectsAsTarget;for(var v=0;v<p.length;v++)p[v].source!=g&&p[v].target!=g||(s+=p[v].edges.length,u++,o.push(p[v]))}else s+=g.edges.length,u++,o.push(g)}for(i.width>(s+1)*this.prefHozEdgeSep+2*this.prefHozEdgeSep&&(c+=this.prefHozEdgeSep,m-=this.prefHozEdgeSep),c+=(l=(m-c)/s)/2,m=this.minEdgeJetty-this.prefVertEdgeOff,d=u=0;d<o.length;d++){for(g=o[d].edges.length,v=mxCellPath.create(o[d].edges[0]),null==(p=this.jettyPositions[v])&&(p=[],this.jettyPositions[v]=p),d<s/2?m+=this.prefVertEdgeOff:s/2<d&&(m-=this.prefVertEdgeOff),v=0;v<g;v++)p[4*v+2*r]=c,c+=l,p[4*v+2*r+1]=m;u=Math.max(u,m)}}s=i.getNextLayerConnectedCells(n),o=n+1}}},mxCoordinateAssignment.prototype.setEdgePosition=function(e){var n=0;if(101207!=e.temp[0]){var t=e.maxRank,a=e.minRank;t==a&&(t=e.source.maxRank,a=e.target.minRank);for(var i=0,s=mxCellPath.create(e.edges[0]),o=(s=this.jettyPositions[s],e.isReversed?e.target.cell:e.source.cell),r=this.layout.graph,l=0;l<e.edges.length;l++){var d=e.edges[l],c=this.layout.getVisibleTerminal(d,!0),m=r.model.getTerminal(d,!0),u=[],p=e.isReversed;if(c!=o&&(p=!p),null!=s){var g=p?2:0,v=p?this.rankTopY[a]:this.rankBottomY[t],h=s[4*i+1+g];p&&(h=-h),v+=h,g=s[4*i+g],m=r.model.getTerminal(d,!0),this.layout.isPort(m)&&r.model.getParent(m)==c&&(g=null!=(g=r.view.getState(m))?g.x:c.geometry.x+e.source.width*m.geometry.x),this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(u.push(new mxPoint(g,v)),this.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&u.push(new mxPoint(g,v+h))):(u.push(new mxPoint(v,g)),this.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&u.push(new mxPoint(v+h,g)))}for(g=e.x.length-1,v=h=-1,c=e.maxRank-1,p&&(g=0,h=e.x.length,v=1,c=e.minRank+1);e.maxRank!=e.minRank&&g!=h;g+=v){m=e.x[g]+n;var f=(this.rankTopY[c]+this.rankBottomY[c+1])/2,b=(this.rankTopY[c-1]+this.rankBottomY[c])/2;if(p){var A=f;f=b,b=A}this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(u.push(new mxPoint(m,f)),u.push(new mxPoint(m,b))):(u.push(new mxPoint(f,m)),u.push(new mxPoint(b,m))),this.limitX=Math.max(this.limitX,m),c+=v}null!=s&&(g=p?2:0,v=p?this.rankBottomY[t]:this.rankTopY[a],h=s[4*i+3-g],p&&(h=-h),v-=h,g=s[4*i+2-g],p=r.model.getTerminal(d,!1),c=this.layout.getVisibleTerminal(d,!1),this.layout.isPort(p)&&r.model.getParent(p)==c&&(g=null!=(g=r.view.getState(p))?g.x:c.geometry.x+e.target.width*p.geometry.x),this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(this.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&u.push(new mxPoint(g,v-h)),u.push(new mxPoint(g,v))):(this.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&u.push(new mxPoint(v-h,g)),u.push(new mxPoint(v,g)))),e.isReversed&&this.processReversedEdge(e,d),this.layout.setEdgePoints(d,u),n=0==n?this.parallelEdgeSpacing:0<n?-n:-n+this.parallelEdgeSpacing,i++}e.temp[0]=101207}},mxCoordinateAssignment.prototype.setVertexLocation=function(e){var n=e.cell,t=e.x[0]-e.width/2,a=e.y[0]-e.height/2;this.rankTopY[e.minRank]=Math.min(this.rankTopY[e.minRank],a),this.rankBottomY[e.minRank]=Math.max(this.rankBottomY[e.minRank],a+e.height),this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?this.layout.setVertexLocation(n,t,a):this.layout.setVertexLocation(n,a,t),this.limitX=Math.max(this.limitX,t+e.width)},mxCoordinateAssignment.prototype.processReversedEdge=function(e,n){},WeightedCellSorter.prototype.weightedValue=0,WeightedCellSorter.prototype.nudge=!1,WeightedCellSorter.prototype.visited=!1,WeightedCellSorter.prototype.rankIndex=null,WeightedCellSorter.prototype.cell=null,WeightedCellSorter.prototype.compare=function(e,n){return null!=e&&null!=n?n.weightedValue>e.weightedValue?-1:n.weightedValue<e.weightedValue?1:n.nudge?-1:1:0},mxHierarchicalLayout.prototype=new mxGraphLayout,mxHierarchicalLayout.prototype.constructor=mxHierarchicalLayout,mxHierarchicalLayout.prototype.roots=null,mxHierarchicalLayout.prototype.resizeParent=!1,mxHierarchicalLayout.prototype.moveParent=!1,mxHierarchicalLayout.prototype.parentBorder=0,mxHierarchicalLayout.prototype.intraCellSpacing=30,mxHierarchicalLayout.prototype.interRankCellSpacing=100,mxHierarchicalLayout.prototype.interHierarchySpacing=60,mxHierarchicalLayout.prototype.parallelEdgeSpacing=10,mxHierarchicalLayout.prototype.orientation=mxConstants.DIRECTION_NORTH,mxHierarchicalLayout.prototype.fineTuning=!0,mxHierarchicalLayout.prototype.tightenToSource=!0,mxHierarchicalLayout.prototype.disableEdgeStyle=!0,mxHierarchicalLayout.prototype.traverseAncestors=!0,mxHierarchicalLayout.prototype.model=null,mxHierarchicalLayout.prototype.edgesCache=null,mxHierarchicalLayout.prototype.getModel=function(){return this.model},mxHierarchicalLayout.prototype.execute=function(e,n){this.parent=e;var t=this.graph.model;if(this.edgesCache={},null!=n||null!=e){if(null!=n&&null!=e){for(var a=[],i=0;i<n.length;i++)t.isAncestor(e,n[i])&&a.push(n[i]);this.roots=a}else this.roots=n;t.beginUpdate();try{this.run(e),this.resizeParent&&!this.graph.isCellCollapsed(e)&&this.graph.updateGroupBounds([e],this.parentBorder,this.moveParent)}finally{t.endUpdate()}}},mxHierarchicalLayout.prototype.findRoots=function(e,n){var t=[];if(null!=e&&null!=n){var a,i=this.graph.model,s=null,o=-1e5;for(a in n){var r=n[a];if(i.isVertex(r)&&this.graph.isCellVisible(r)){for(var l=this.getEdges(r),d=0,c=0,m=0;m<l.length;m++)this.getVisibleTerminal(l[m],!0)==r?d++:c++;0==c&&0<d&&t.push(r),o<(l=d-c)&&(o=l,s=r)}}0==t.length&&null!=s&&t.push(s)}return t},mxHierarchicalLayout.prototype.getEdges=function(e){var n=mxCellPath.create(e);if(null!=this.edgesCache[n])return this.edgesCache[n];for(var t=this.graph.model,a=[],i=this.graph.isCellCollapsed(e),s=t.getChildCount(e),o=0;o<s;o++){var r=t.getChildAt(e,o);this.isPort(r)?a=a.concat(t.getEdges(r,!0,!0)):!i&&this.graph.isCellVisible(r)||(a=a.concat(t.getEdges(r,!0,!0)))}for(a=a.concat(t.getEdges(e,!0,!0)),t=[],o=0;o<a.length;o++)((i=this.getVisibleTerminal(a[o],!0))==(s=this.getVisibleTerminal(a[o],!1))||i!=s&&(s==e&&(null==this.parent||this.graph.isValidAncestor(i,this.parent,this.traverseAncestors))||i==e&&(null==this.parent||this.graph.isValidAncestor(s,this.parent,this.traverseAncestors))))&&t.push(a[o]);return this.edgesCache[n]=t},mxHierarchicalLayout.prototype.getVisibleTerminal=function(e,n){var t=null!=(t=this.graph.view.getState(e))?t.getVisibleTerminal(n):this.graph.view.getVisibleTerminal(e,n);return this.isPort(t)&&(t=this.graph.model.getParent(t)),t},mxHierarchicalLayout.prototype.run=function(e){var n=[],t=[];if(null==this.roots&&null!=e){var a={};this.filterDescendants(e,a),this.roots=[];var i,s=!0;for(i in a)if(null!=a[i]){s=!1;break}for(;!s;){var o=this.findRoots(e,a);for(s=0;s<o.length;s++){var r=[];n.push(r),this.traverse(o[s],!0,null,t,r,n,a)}for(s=0;s<o.length;s++)this.roots.push(o[s]);for(i in s=!0,a)if(null!=a[i]){s=!1;break}}}else for(s=0;s<roots.length;s++)r=[],n.push(r),traverse(roots.get(s),!0,null,t,r,n,null);for(s=t=0;s<n.length;s++){for(i in a=[],r=n[s])a.push(r[i]);this.model=new mxGraphHierarchyModel(this,a,this.roots,e,this.tightenToSource),this.cycleStage(e),this.layeringStage(),this.crossingStage(e),t=this.placementStage(t,e)}},mxHierarchicalLayout.prototype.filterDescendants=function(e,n){var t=this.graph.model;if(t.isVertex(e)&&e!=this.parent&&this.graph.isCellVisible(e)&&(n[mxCellPath.create(e)]=e),this.traverseAncestors||e==this.parent&&this.graph.isCellVisible(e))for(var a=t.getChildCount(e),i=0;i<a;i++){var s=t.getChildAt(e,i);this.isPort(s)||this.filterDescendants(s,n)}},mxHierarchicalLayout.prototype.isPort=function(e){return!!e.geometry.relative},mxHierarchicalLayout.prototype.getEdgesBetween=function(e,n,t){t=null!=t&&t;for(var a=this.getEdges(e),i=[],s=0;s<a.length;s++){var o=this.getVisibleTerminal(a[s],!0),r=this.getVisibleTerminal(a[s],!1);(o==e&&r==n||!t&&o==n&&r==e)&&i.push(a[s])}return i},mxHierarchicalLayout.prototype.traverse=function(e,n,t,a,i,s,o){if(null!=e&&null!=a){var r=mxCellPath.create(e);if(null!=a[r]||null!=o&&null==o[r]){if(null==i[r])for(t=0;t<s.length;t++)if(null!=(e=s[t])[r]){for(l in i)e[l]=i[l];return s.pop(),e}}else{null==i[r]&&(i[r]=e),null==a[r]&&(a[r]=e),delete o[r];var l=this.getEdges(e);for(t=0;t<l.length;t++)r=this.getVisibleTerminal(l[t],!0)==e,(!n||r)&&(r=this.getVisibleTerminal(l[t],!r),i=this.traverse(r,n,l[t],a,i,s,o))}}return i},mxHierarchicalLayout.prototype.cycleStage=function(e){new mxMinimumCycleRemover(this).execute(e)},mxHierarchicalLayout.prototype.layeringStage=function(){this.model.initialRank(),this.model.fixRanks()},mxHierarchicalLayout.prototype.crossingStage=function(e){new mxMedianHybridCrossingReduction(this).execute(e)},mxHierarchicalLayout.prototype.placementStage=function(e,n){var t=new mxCoordinateAssignment(this,this.intraCellSpacing,this.interRankCellSpacing,this.orientation,e,this.parallelEdgeSpacing);return t.fineTuning=this.fineTuning,t.execute(n),t.limitX+this.interHierarchySpacing},mxGraphModel.prototype=new mxEventSource,mxGraphModel.prototype.constructor=mxGraphModel,mxGraphModel.prototype.root=null,mxGraphModel.prototype.cells=null,mxGraphModel.prototype.maintainEdgeParent=!0,mxGraphModel.prototype.createIds=!0,mxGraphModel.prototype.prefix="",mxGraphModel.prototype.postfix="",mxGraphModel.prototype.nextId=0,mxGraphModel.prototype.currentEdit=null,mxGraphModel.prototype.updateLevel=0,mxGraphModel.prototype.endingUpdate=!1,mxGraphModel.prototype.clear=function(){this.setRoot(this.createRoot())},mxGraphModel.prototype.isCreateIds=function(){return this.createIds},mxGraphModel.prototype.setCreateIds=function(e){this.createIds=e},mxGraphModel.prototype.createRoot=function(){var e=new mxCell;return e.insert(new mxCell),e},mxGraphModel.prototype.getCell=function(e){return null!=this.cells?this.cells[e]:null},mxGraphModel.prototype.filterCells=function(e,n){var t=null;if(null!=e){t=[];for(var a=0;a<e.length;a++)n(e[a])&&t.push(e[a])}return t},mxGraphModel.prototype.getDescendants=function(e){return this.filterDescendants(null,e)},mxGraphModel.prototype.filterDescendants=function(e,n){var t=[];n=n||this.getRoot(),(null==e||e(n))&&t.push(n);for(var a=this.getChildCount(n),i=0;i<a;i++){var s=this.getChildAt(n,i);t=t.concat(this.filterDescendants(e,s))}return t},mxGraphModel.prototype.getRoot=function(e){var n=e||this.root;if(null!=e)for(;null!=e;)n=e,e=this.getParent(e);return n},mxGraphModel.prototype.setRoot=function(e){return this.execute(new mxRootChange(this,e)),e},mxGraphModel.prototype.rootChanged=function(e){var n=this.root;return this.root=e,this.nextId=0,this.cells=null,this.cellAdded(e),n},mxGraphModel.prototype.isRoot=function(e){return null!=e&&this.root==e},mxGraphModel.prototype.isLayer=function(e){return this.isRoot(this.getParent(e))},mxGraphModel.prototype.isAncestor=function(e,n){for(;null!=n&&n!=e;)n=this.getParent(n);return n==e},mxGraphModel.prototype.contains=function(e){return this.isAncestor(this.root,e)},mxGraphModel.prototype.getParent=function(e){return null!=e?e.getParent():null},mxGraphModel.prototype.add=function(e,n,t){if(n!=e&&null!=e&&null!=n){null==t&&(t=this.getChildCount(e));var a=e!=this.getParent(n);this.execute(new mxChildChange(this,e,n,t)),this.maintainEdgeParent&&a&&this.updateEdgeParents(n)}return n},mxGraphModel.prototype.cellAdded=function(e){if(null!=e){if(null==e.getId()&&this.createIds&&e.setId(this.createId(e)),null!=e.getId())if((n=this.getCell(e.getId()))!=e){for(;null!=n;)e.setId(this.createId(e)),n=this.getCell(e.getId());null==this.cells&&(this.cells={}),this.cells[e.getId()]=e}mxUtils.isNumeric(e.getId())&&(this.nextId=Math.max(this.nextId,e.getId()));for(var n=this.getChildCount(e),t=0;t<n;t++)this.cellAdded(this.getChildAt(e,t))}},mxGraphModel.prototype.createId=function(e){return e=this.nextId,this.nextId++,this.prefix+e+this.postfix},mxGraphModel.prototype.updateEdgeParents=function(e,n){n=n||this.getRoot(e);for(var t=this.getChildCount(e),a=0;a<t;a++){var i=this.getChildAt(e,a);this.updateEdgeParents(i,n)}for(i=this.getEdgeCount(e),t=[],a=0;a<i;a++)t.push(this.getEdgeAt(e,a));for(a=0;a<t.length;a++)i=t[a],this.isAncestor(n,i)&&this.updateEdgeParent(i,n)},mxGraphModel.prototype.updateEdgeParent=function(e,n){for(var t=this.getTerminal(e,!0),a=this.getTerminal(e,!1),i=null;null!=t&&!this.isEdge(t)&&null!=t.geometry&&t.geometry.relative;)t=this.getParent(t);for(;null!=a&&!this.isEdge(a)&&null!=a.geometry&&a.geometry.relative;)a=this.getParent(a);if(this.isAncestor(n,t)&&this.isAncestor(n,a)&&(null!=(i=t==a?this.getParent(t):this.getNearestCommonAncestor(t,a))&&(this.getParent(i)!=this.root||this.isAncestor(i,e))&&this.getParent(e)!=i)){if(null!=(t=this.getGeometry(e))){var s=this.getOrigin(this.getParent(e)),o=this.getOrigin(i);a=o.x-s.x,s=o.y-s.y;(t=t.clone()).translate(-a,-s),this.setGeometry(e,t)}this.add(i,e,this.getChildCount(i))}},mxGraphModel.prototype.getOrigin=function(e){var n=null;return null!=e?(n=this.getOrigin(this.getParent(e)),this.isEdge(e)||null!=(e=this.getGeometry(e))&&(n.x+=e.x,n.y+=e.y)):n=new mxPoint,n},mxGraphModel.prototype.getNearestCommonAncestor=function(e,n){if(null!=e&&null!=n&&(null!=(s=mxCellPath.create(n))&&0<s.length)){var t=e,a=mxCellPath.create(t);if(s.length<a.length){t=n;var i=a,s=(a=s,i)}for(;null!=t;){if(i=this.getParent(t),0==s.indexOf(a+mxCellPath.PATH_SEPARATOR)&&null!=i)return t;a=mxCellPath.getParentPath(a),t=i}}return null},mxGraphModel.prototype.remove=function(e){return e==this.root?this.setRoot(null):null!=this.getParent(e)&&this.execute(new mxChildChange(this,null,e)),e},mxGraphModel.prototype.cellRemoved=function(e){if(null!=e&&null!=this.cells){for(var n=this.getChildCount(e)-1;0<=n;n--)this.cellRemoved(this.getChildAt(e,n));null!=this.cells&&null!=e.getId()&&delete this.cells[e.getId()]}},mxGraphModel.prototype.parentForCellChanged=function(e,n,t){var a=this.getParent(e);return null!=n?(n!=a||a.getIndex(e)!=t)&&n.insert(e,t):null!=a&&(t=a.getIndex(e),a.remove(t)),this.contains(a)||null==n?null==n&&this.cellRemoved(e):this.cellAdded(e),a},mxGraphModel.prototype.getChildCount=function(e){return null!=e?e.getChildCount():0},mxGraphModel.prototype.getChildAt=function(e,n){return null!=e?e.getChildAt(n):null},mxGraphModel.prototype.getChildren=function(e){return null!=e?e.children:null},mxGraphModel.prototype.getChildVertices=function(e){return this.getChildCells(e,!0,!1)},mxGraphModel.prototype.getChildEdges=function(e){return this.getChildCells(e,!1,!0)},mxGraphModel.prototype.getChildCells=function(e,n,t){n=null!=n&&n,t=null!=t&&t;for(var a=this.getChildCount(e),i=[],s=0;s<a;s++){var o=this.getChildAt(e,s);(!t&&!n||t&&this.isEdge(o)||n&&this.isVertex(o))&&i.push(o)}return i},mxGraphModel.prototype.getTerminal=function(e,n){return null!=e?e.getTerminal(n):null},mxGraphModel.prototype.setTerminal=function(e,n,t){var a=n!=this.getTerminal(e,t);return this.execute(new mxTerminalChange(this,e,n,t)),this.maintainEdgeParent&&a&&this.updateEdgeParent(e,this.getRoot()),n},mxGraphModel.prototype.setTerminals=function(e,n,t){this.beginUpdate();try{this.setTerminal(e,n,!0),this.setTerminal(e,t,!1)}finally{this.endUpdate()}},mxGraphModel.prototype.terminalForCellChanged=function(e,n,t){var a=this.getTerminal(e,t);return null!=n?n.insertEdge(e,t):null!=a&&a.removeEdge(e,t),a},mxGraphModel.prototype.getEdgeCount=function(e){return null!=e?e.getEdgeCount():0},mxGraphModel.prototype.getEdgeAt=function(e,n){return null!=e?e.getEdgeAt(n):null},mxGraphModel.prototype.getDirectedEdgeCount=function(e,n,t){for(var a=0,i=this.getEdgeCount(e),s=0;s<i;s++){var o=this.getEdgeAt(e,s);o!=t&&this.getTerminal(o,n)==e&&a++}return a},mxGraphModel.prototype.getConnections=function(e){return this.getEdges(e,!0,!0,!1)},mxGraphModel.prototype.getIncomingEdges=function(e){return this.getEdges(e,!0,!1,!1)},mxGraphModel.prototype.getOutgoingEdges=function(e){return this.getEdges(e,!1,!0,!1)},mxGraphModel.prototype.getEdges=function(e,n,t,a){n=null==n||n,t=null==t||t,a=null==a||a;for(var i=this.getEdgeCount(e),s=[],o=0;o<i;o++){var r=this.getEdgeAt(e,o),l=this.getTerminal(r,!0),d=this.getTerminal(r,!1);(a&&l==d||l!=d&&(n&&d==e||t&&l==e))&&s.push(r)}return s},mxGraphModel.prototype.getEdgesBetween=function(e,n,t){t=null!=t&&t;var a=this.getEdgeCount(e),i=this.getEdgeCount(n),s=e,o=a;for(i<a&&(o=i,s=n),a=[],i=0;i<o;i++){var r=this.getEdgeAt(s,i),l=this.getTerminal(r,!0),d=this.getTerminal(r,!1);(l==e&&d==n||!t&&(d==e&&l==n))&&a.push(r)}return a},mxGraphModel.prototype.getOpposites=function(e,n,t,a){t=null==t||t,a=null==a||a;var i=[];if(null!=e)for(var s=0;s<e.length;s++){var o=this.getTerminal(e[s],!0),r=this.getTerminal(e[s],!1);o==n&&null!=r&&r!=n&&a?i.push(r):r==n&&null!=o&&o!=n&&t&&i.push(o)}return i},mxGraphModel.prototype.getTopmostCells=function(e){for(var n=[],t=0;t<e.length;t++){for(var a=e[t],i=!0,s=this.getParent(a);null!=s;){if(0<=mxUtils.indexOf(e,s)){i=!1;break}s=this.getParent(s)}i&&n.push(a)}return n},mxGraphModel.prototype.isVertex=function(e){return null!=e&&e.isVertex()},mxGraphModel.prototype.isEdge=function(e){return null!=e&&e.isEdge()},mxGraphModel.prototype.isConnectable=function(e){return null!=e&&e.isConnectable()},mxGraphModel.prototype.getValue=function(e){return null!=e?e.getValue():null},mxGraphModel.prototype.setValue=function(e,n){return this.execute(new mxValueChange(this,e,n)),n},mxGraphModel.prototype.valueForCellChanged=function(e,n){return e.valueChanged(n)},mxGraphModel.prototype.getGeometry=function(e,n){return null!=e?e.getGeometry():null},mxGraphModel.prototype.setGeometry=function(e,n){return n!=this.getGeometry(e)&&this.execute(new mxGeometryChange(this,e,n)),n},mxGraphModel.prototype.geometryForCellChanged=function(e,n){var t=this.getGeometry(e);return e.setGeometry(n),t},mxGraphModel.prototype.getStyle=function(e){return null!=e?e.getStyle():null},mxGraphModel.prototype.setStyle=function(e,n){return n!=this.getStyle(e)&&this.execute(new mxStyleChange(this,e,n)),n},mxGraphModel.prototype.styleForCellChanged=function(e,n){var t=this.getStyle(e);return e.setStyle(n),t},mxGraphModel.prototype.isCollapsed=function(e){return null!=e&&e.isCollapsed()},mxGraphModel.prototype.setCollapsed=function(e,n){return n!=this.isCollapsed(e)&&this.execute(new mxCollapseChange(this,e,n)),n},mxGraphModel.prototype.collapsedStateForCellChanged=function(e,n){var t=this.isCollapsed(e);return e.setCollapsed(n),t},mxGraphModel.prototype.isVisible=function(e){return null!=e&&e.isVisible()},mxGraphModel.prototype.setVisible=function(e,n){return n!=this.isVisible(e)&&this.execute(new mxVisibleChange(this,e,n)),n},mxGraphModel.prototype.visibleStateForCellChanged=function(e,n){var t=this.isVisible(e);return e.setVisible(n),t},mxGraphModel.prototype.execute=function(e){e.execute(),this.beginUpdate(),this.currentEdit.add(e),this.fireEvent(new mxEventObject(mxEvent.EXECUTE,"change",e)),this.fireEvent(new mxEventObject(mxEvent.EXECUTED,"change",e)),this.endUpdate()},mxGraphModel.prototype.beginUpdate=function(){this.updateLevel++,this.fireEvent(new mxEventObject(mxEvent.BEGIN_UPDATE)),1==this.updateLevel&&this.fireEvent(new mxEventObject(mxEvent.START_EDIT))},mxGraphModel.prototype.endUpdate=function(){if(this.updateLevel--,0==this.updateLevel&&this.fireEvent(new mxEventObject(mxEvent.END_EDIT)),!this.endingUpdate){this.endingUpdate=0==this.updateLevel,this.fireEvent(new mxEventObject(mxEvent.END_UPDATE,"edit",this.currentEdit));try{if(this.endingUpdate&&!this.currentEdit.isEmpty()){this.fireEvent(new mxEventObject(mxEvent.BEFORE_UNDO,"edit",this.currentEdit));var e=this.currentEdit;this.currentEdit=this.createUndoableEdit(),e.notify(),this.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",e))}}finally{this.endingUpdate=!1}}},mxGraphModel.prototype.createUndoableEdit=function(){var e=new mxUndoableEdit(this,!0);return e.notify=function(){e.source.fireEvent(new mxEventObject(mxEvent.CHANGE,"edit",e,"changes",e.changes)),e.source.fireEvent(new mxEventObject(mxEvent.NOTIFY,"edit",e,"changes",e.changes))},e},mxGraphModel.prototype.mergeChildren=function(e,n,t){t=null==t||t,this.beginUpdate();try{var a={};for(var i in this.mergeChildrenImpl(e,n,t,a),a){var s=a[i],o=this.getTerminal(s,!0);null!=o&&(o=a[mxCellPath.create(o)],this.setTerminal(s,o,!0)),null!=(o=this.getTerminal(s,!1))&&(o=a[mxCellPath.create(o)],this.setTerminal(s,o,!1))}}finally{this.endUpdate()}},mxGraphModel.prototype.mergeChildrenImpl=function(e,n,t,a){this.beginUpdate();try{for(var i=e.getChildCount(),s=0;s<i;s++){var o=e.getChildAt(s);if("function"==typeof o.getId){var r=o.getId(),l=null==r||this.isEdge(o)&&t?null:this.getCell(r);if(null==l){var d=o.clone();d.setId(r),d.setTerminal(o.getTerminal(!0),!0),d.setTerminal(o.getTerminal(!1),!1),l=n.insert(d),this.cellAdded(l)}a[mxCellPath.create(o)]=l,this.mergeChildrenImpl(o,l,t,a)}}}finally{this.endUpdate()}},mxGraphModel.prototype.getParents=function(e){var n=[];if(null!=e)for(var t={},a=0;a<e.length;a++){var i=this.getParent(e[a]);if(null!=i){var s=mxCellPath.create(i);null==t[s]&&(t[s]=i,n.push(i))}}return n},mxGraphModel.prototype.cloneCell=function(e){return null!=e?this.cloneCells([e],!0)[0]:null},mxGraphModel.prototype.cloneCells=function(e,n){for(var t={},a=[],i=0;i<e.length;i++)null!=e[i]?a.push(this.cloneCellImpl(e[i],t,n)):a.push(null);for(i=0;i<a.length;i++)null!=a[i]&&this.restoreClone(a[i],e[i],t);return a},mxGraphModel.prototype.cloneCellImpl=function(e,n,t){var a=this.cellCloned(e);if(n[mxObjectIdentity.get(e)]=a,t){t=this.getChildCount(e);for(var i=0;i<t;i++){var s=this.cloneCellImpl(this.getChildAt(e,i),n,!0);a.insert(s)}}return a},mxGraphModel.prototype.cellCloned=function(e){return e.clone()},mxGraphModel.prototype.restoreClone=function(e,n,t){null!=(a=this.getTerminal(n,!0))&&(null!=(a=t[mxObjectIdentity.get(a)])&&a.insertEdge(e,!0)),null!=(a=this.getTerminal(n,!1))&&(null!=(a=t[mxObjectIdentity.get(a)])&&a.insertEdge(e,!1));for(var a=this.getChildCount(e),i=0;i<a;i++)this.restoreClone(this.getChildAt(e,i),this.getChildAt(n,i),t)},mxRootChange.prototype.execute=function(){this.root=this.previous,this.previous=this.model.rootChanged(this.previous)},mxChildChange.prototype.execute=function(){var e=this.model.getParent(this.child),n=null!=e?e.getIndex(this.child):0;null==this.previous&&this.connect(this.child,!1),e=this.model.parentForCellChanged(this.child,this.previous,this.previousIndex),null!=this.previous&&this.connect(this.child,!0),this.parent=this.previous,this.previous=e,this.index=this.previousIndex,this.previousIndex=n},mxChildChange.prototype.connect=function(e,n){n=null==n||n;var t=e.getTerminal(!0),a=e.getTerminal(!1);for(null!=t&&(n?this.model.terminalForCellChanged(e,t,!0):this.model.terminalForCellChanged(e,null,!0)),null!=a&&(n?this.model.terminalForCellChanged(e,a,!1):this.model.terminalForCellChanged(e,null,!1)),e.setTerminal(t,!0),e.setTerminal(a,!1),t=this.model.getChildCount(e),a=0;a<t;a++)this.connect(this.model.getChildAt(e,a),n)},mxTerminalChange.prototype.execute=function(){this.terminal=this.previous,this.previous=this.model.terminalForCellChanged(this.cell,this.previous,this.source)},mxValueChange.prototype.execute=function(){this.value=this.previous,this.previous=this.model.valueForCellChanged(this.cell,this.previous)},mxStyleChange.prototype.execute=function(){this.style=this.previous,this.previous=this.model.styleForCellChanged(this.cell,this.previous)},mxGeometryChange.prototype.execute=function(){this.geometry=this.previous,this.previous=this.model.geometryForCellChanged(this.cell,this.previous)},mxCollapseChange.prototype.execute=function(){this.collapsed=this.previous,this.previous=this.model.collapsedStateForCellChanged(this.cell,this.previous)},mxVisibleChange.prototype.execute=function(){this.visible=this.previous,this.previous=this.model.visibleStateForCellChanged(this.cell,this.previous)},mxCellAttributeChange.prototype.execute=function(){var e=this.cell.getAttribute(this.attribute);null==this.previous?this.cell.value.removeAttribute(this.attribute):this.cell.setAttribute(this.attribute,this.previous),this.previous=e},mxCell.prototype.id=null,mxCell.prototype.value=null,mxCell.prototype.geometry=null,mxCell.prototype.style=null,mxCell.prototype.vertex=!1,mxCell.prototype.edge=!1,mxCell.prototype.connectable=!0,mxCell.prototype.visible=!0,mxCell.prototype.collapsed=!1,mxCell.prototype.parent=null,mxCell.prototype.source=null,mxCell.prototype.target=null,mxCell.prototype.children=null,mxCell.prototype.edges=null,mxCell.prototype.mxTransient="id value parent source target children edges".split(" "),mxCell.prototype.getId=function(){return this.id},mxCell.prototype.setId=function(e){this.id=e},mxCell.prototype.getValue=function(){return this.value},mxCell.prototype.setValue=function(e){this.value=e},mxCell.prototype.valueChanged=function(e){var n=this.getValue();return this.setValue(e),n},mxCell.prototype.getGeometry=function(){return this.geometry},mxCell.prototype.setGeometry=function(e){this.geometry=e},mxCell.prototype.getStyle=function(){return this.style},mxCell.prototype.setStyle=function(e){this.style=e},mxCell.prototype.isVertex=function(){return this.vertex},mxCell.prototype.setVertex=function(e){this.vertex=e},mxCell.prototype.isEdge=function(){return this.edge},mxCell.prototype.setEdge=function(e){this.edge=e},mxCell.prototype.isConnectable=function(){return this.connectable},mxCell.prototype.setConnectable=function(e){this.connectable=e},mxCell.prototype.isVisible=function(){return this.visible},mxCell.prototype.setVisible=function(e){this.visible=e},mxCell.prototype.isCollapsed=function(){return this.collapsed},mxCell.prototype.setCollapsed=function(e){this.collapsed=e},mxCell.prototype.getParent=function(){return this.parent},mxCell.prototype.setParent=function(e){this.parent=e},mxCell.prototype.getTerminal=function(e){return e?this.source:this.target},mxCell.prototype.setTerminal=function(e,n){return n?this.source=e:this.target=e,e},mxCell.prototype.getChildCount=function(){return null==this.children?0:this.children.length},mxCell.prototype.getIndex=function(e){return mxUtils.indexOf(this.children,e)},mxCell.prototype.getChildAt=function(e){return null==this.children?null:this.children[e]},mxCell.prototype.insert=function(e,n){return null!=e&&(null==n&&(n=this.getChildCount(),e.getParent()==this&&n--),e.removeFromParent(),e.setParent(this),null==this.children?(this.children=[],this.children.push(e)):this.children.splice(n,0,e)),e},mxCell.prototype.remove=function(e){var n=null;return null!=this.children&&0<=e&&(null!=(n=this.getChildAt(e))&&(this.children.splice(e,1),n.setParent(null))),n},mxCell.prototype.removeFromParent=function(){if(null!=this.parent){var e=this.parent.getIndex(this);this.parent.remove(e)}},mxCell.prototype.getEdgeCount=function(){return null==this.edges?0:this.edges.length},mxCell.prototype.getEdgeIndex=function(e){return mxUtils.indexOf(this.edges,e)},mxCell.prototype.getEdgeAt=function(e){return null==this.edges?null:this.edges[e]},mxCell.prototype.insertEdge=function(e,n){return null!=e&&(e.removeFromTerminal(n),e.setTerminal(this,n),null==this.edges||e.getTerminal(!n)!=this||mxUtils.indexOf(this.edges,e)<0)&&(null==this.edges&&(this.edges=[]),this.edges.push(e)),e},mxCell.prototype.removeEdge=function(e,n){if(null!=e){if(e.getTerminal(!n)!=this&&null!=this.edges){var t=this.getEdgeIndex(e);0<=t&&this.edges.splice(t,1)}e.setTerminal(null,n)}return e},mxCell.prototype.removeFromTerminal=function(e){var n=this.getTerminal(e);null!=n&&n.removeEdge(this,e)},mxCell.prototype.getAttribute=function(e,n){var t=this.getValue();return(null!=t&&t.nodeType==mxConstants.NODETYPE_ELEMENT?t.getAttribute(e):null)||n},mxCell.prototype.setAttribute=function(e,n){var t=this.getValue();null!=t&&t.nodeType==mxConstants.NODETYPE_ELEMENT&&t.setAttribute(e,n)},mxCell.prototype.clone=function(){var e=mxUtils.clone(this,this.mxTransient);return e.setValue(this.cloneValue()),e},mxCell.prototype.cloneValue=function(){var e=this.getValue();return null!=e&&("function"==typeof e.clone?e=e.clone():isNaN(e.nodeType)||(e=e.cloneNode(!0))),e},mxGeometry.prototype=new mxRectangle,mxGeometry.prototype.constructor=mxGeometry,mxGeometry.prototype.TRANSLATE_CONTROL_POINTS=!0,mxGeometry.prototype.alternateBounds=null,mxGeometry.prototype.sourcePoint=null,mxGeometry.prototype.targetPoint=null,mxGeometry.prototype.points=null,mxGeometry.prototype.offset=null,mxGeometry.prototype.relative=!1,mxGeometry.prototype.swap=function(){if(null!=this.alternateBounds){var e=new mxRectangle(this.x,this.y,this.width,this.height);this.x=this.alternateBounds.x,this.y=this.alternateBounds.y,this.width=this.alternateBounds.width,this.height=this.alternateBounds.height,this.alternateBounds=e}},mxGeometry.prototype.getTerminalPoint=function(e){return e?this.sourcePoint:this.targetPoint},mxGeometry.prototype.setTerminalPoint=function(e,n){return n?this.sourcePoint=e:this.targetPoint=e,e},mxGeometry.prototype.translate=function(e,n){if(this.clone(),this.relative||(this.x+=e,this.y+=n),null!=this.sourcePoint&&(this.sourcePoint.x+=e,this.sourcePoint.y+=n),null!=this.targetPoint&&(this.targetPoint.x+=e,this.targetPoint.y+=n),this.TRANSLATE_CONTROL_POINTS&&null!=this.points)for(var t=this.points.length,a=0;a<t;a++){var i=this.points[a];null!=i&&(i.x+=e,i.y+=n)}};var mxCellPath={PATH_SEPARATOR:".",create:function(e){var n="";if(null!=e)for(var t=e.getParent();null!=t;)n=t.getIndex(e)+mxCellPath.PATH_SEPARATOR+n,t=(e=t).getParent();return 1<(e=n.length)&&(n=n.substring(0,e-1)),n},getParentPath:function(e){if(null!=e){var n=e.lastIndexOf(mxCellPath.PATH_SEPARATOR);if(0<=n)return e.substring(0,n);if(0<e.length)return""}return null},resolve:function(e,n){var t=e;if(null!=n)for(var a=n.split(mxCellPath.PATH_SEPARATOR),i=0;i<a.length;i++)t=t.getChildAt(parseInt(a[i]));return t},compare:function(e,n){for(var t=Math.min(e.length,n.length),a=0,i=0;i<t;i++)if(e[i]!=n[i]){a=0==e[i].length||0==n[i].length?e[i]==n[i]?0:e[i]>n[i]?1:-1:(t=parseInt(e[i]))==(i=parseInt(n[i]))?0:i<t?1:-1;break}return 0==a&&((t=e.length)!=(i=n.length)&&(a=i<t?1:-1)),a}},mxPerimeter={RectanglePerimeter:function(e,n,t,a){n=e.getCenterX();var i=e.getCenterY(),s=Math.atan2(t.y-i,t.x-n),o=new mxPoint(0,0),r=Math.PI,l=Math.PI/2-s,d=Math.atan2(e.height,e.width);return s<-r+d||r-d<s?(o.x=e.x,o.y=i-e.width*Math.tan(s)/2):s<-d?(o.y=e.y,o.x=n-e.height*Math.tan(l)/2):s<d?(o.x=e.x+e.width,o.y=i+e.width*Math.tan(s)/2):(o.y=e.y+e.height,o.x=n+e.height*Math.tan(l)/2),a&&(t.x>=e.x&&t.x<=e.x+e.width?o.x=t.x:t.y>=e.y&&t.y<=e.y+e.height&&(o.y=t.y),t.x<e.x?o.x=e.x:t.x>e.x+e.width&&(o.x=e.x+e.width),t.y<e.y?o.y=e.y:t.y>e.y+e.height&&(o.y=e.y+e.height)),o},EllipsePerimeter:function(e,n,t,a){var i=e.x,s=e.y,o=e.width/2,r=e.height/2,l=i+o,d=s+r;n=t.x,t=t.y;var c=parseInt(n-l),m=parseInt(t-d);if(0==c&&0!=m)return new mxPoint(l,d+r*m/Math.abs(m));if(0==c&&0==m)return new mxPoint(n,t);if(a){if(s<=t&&t<=s+e.height)return e=t-d,e=Math.sqrt(o*o*(1-e*e/(r*r)))||0,n<=i&&(e=-e),new mxPoint(l+e,t);if(i<=n&&n<=i+e.width)return e=n-l,e=Math.sqrt(r*r*(1-e*e/(o*o)))||0,t<=s&&(e=-e),new mxPoint(n,d+e)}return d-=(i=m/c)*l,l=i*(o=(-(e=-2*l*(s=o*o*i*i+r*r))+(r=Math.sqrt(e*e-4*s*(o*o*i*i*l*l+r*r*l*l-o*o*r*r))))/(2*s))+d,d=i*(r=(-e-r)/(2*s))+d,i=Math.sqrt(Math.pow(o-n,2)+Math.pow(l-t,2)),n=Math.sqrt(Math.pow(r-n,2)+Math.pow(d-t,2)),s=t=0,s=i<n?(t=o,l):(t=r,d),new mxPoint(t,s)},RhombusPerimeter:function(e,n,t,a){n=e.x;var i=e.y,s=e.width,o=n+s/2,r=i+(e=e.height)/2,l=t.x;if(t=t.y,o==l)return new mxPoint(o,t<r?i:i+e);if(r==t)return new mxPoint(l<o?n:n+s,r);var d=o,c=r;return a&&(n<=l&&l<=n+s?d=l:i<=t&&t<=i+e&&(c=t)),l<o?t<r?mxUtils.intersection(l,t,d,c,o,i,n,r):mxUtils.intersection(l,t,d,c,o,i+e,n,r):t<r?mxUtils.intersection(l,t,d,c,o,i,n+s,r):mxUtils.intersection(l,t,d,c,o,i+e,n+s,r)},TrianglePerimeter:function(e,n,t,a){var i=(n=null!=n?n.style[mxConstants.STYLE_DIRECTION]:null)==mxConstants.DIRECTION_NORTH||n==mxConstants.DIRECTION_SOUTH,s=e.x,o=e.y,r=e.width,l=s+r/2,d=o+(e=e.height)/2,c=new mxPoint(s,o),m=new mxPoint(s+r,d),u=new mxPoint(s,o+e);n==mxConstants.DIRECTION_NORTH?(c=u,m=new mxPoint(l,o),u=new mxPoint(s+r,o+e)):n==mxConstants.DIRECTION_SOUTH?(m=new mxPoint(l,o+e),u=new mxPoint(s+r,o)):n==mxConstants.DIRECTION_WEST&&(c=new mxPoint(s+r,o),m=new mxPoint(s,d),u=new mxPoint(s+r,o+e));var p=t.x-l,g=t.y-d,v=(p=i?Math.atan2(p,g):Math.atan2(g,p),i?Math.atan2(r,e):Math.atan2(e,r));g=!1,g=n==mxConstants.DIRECTION_NORTH||n==mxConstants.DIRECTION_WEST?-v<p&&p<v:p<-Math.PI+v||p>Math.PI-v,v=null;return null==(v=g?a&&(i&&t.x>=c.x&&t.x<=u.x||!i&&t.y>=c.y&&t.y<=u.y)?i?new mxPoint(t.x,c.y):new mxPoint(c.x,t.y):n==mxConstants.DIRECTION_NORTH?new mxPoint(s+r/2+e*Math.tan(p)/2,o+e):n==mxConstants.DIRECTION_SOUTH?new mxPoint(s+r/2-e*Math.tan(p)/2,o):n==mxConstants.DIRECTION_WEST?new mxPoint(s+r,o+e/2+r*Math.tan(p)/2):new mxPoint(s,o+e/2-r*Math.tan(p)/2):(a&&(a=new mxPoint(l,d),t.y>=o&&t.y<=o+e?(a.x=i?l:n==mxConstants.DIRECTION_WEST?s+r:s,a.y=t.y):t.x>=s&&t.x<=s+r&&(a.x=t.x,a.y=i?n==mxConstants.DIRECTION_NORTH?o+e:o:d),l=a.x,d=a.y),i&&t.x<=s+r/2||!i&&t.y<=o+e/2?mxUtils.intersection(t.x,t.y,l,d,c.x,c.y,m.x,m.y):mxUtils.intersection(t.x,t.y,l,d,m.x,m.y,u.x,u.y)))&&(v=new mxPoint(l,d)),v}};function mxPrintPreview(e,n,t,a,i,s,o,r,l){this.graph=e,this.scale=null!=n?n:1/e.pageScale,this.border=null!=a?a:0,this.pageFormat=null!=t?t:e.pageFormat,this.title=null!=r?r:"Printer-friendly version",this.x0=null!=i?i:0,this.y0=null!=s?s:0,this.borderColor=o,this.pageSelector=null==l||l}function mxStylesheet(){this.styles={},this.putDefaultVertexStyle(this.createDefaultVertexStyle()),this.putDefaultEdgeStyle(this.createDefaultEdgeStyle())}function mxCellState(e,n,t){this.view=e,this.cell=n,this.style=t,this.origin=new mxPoint,this.absoluteOffset=new mxPoint}function mxGraphSelectionModel(e){this.graph=e,this.cells=[]}function mxSelectionChange(e,n,t){this.selectionModel=e,this.added=null!=n?n.slice():null,this.removed=null!=t?t.slice():null}function mxCellEditor(e){this.graph=e}function mxCellRenderer(){}mxPrintPreview.prototype.graph=null,mxPrintPreview.prototype.pageFormat=null,mxPrintPreview.prototype.scale=null,mxPrintPreview.prototype.border=0,mxPrintPreview.prototype.x0=0,mxPrintPreview.prototype.y0=0,mxPrintPreview.prototype.autoOrigin=!0,mxPrintPreview.prototype.printOverlays=!1,mxPrintPreview.prototype.borderColor=null,mxPrintPreview.prototype.title=null,mxPrintPreview.prototype.pageSelector=null,mxPrintPreview.prototype.wnd=null,mxPrintPreview.prototype.pageCount=0,mxPrintPreview.prototype.getWindow=function(){return this.wnd},mxPrintPreview.prototype.getDoctype=function(){var e="";return 8==document.documentMode&&(e='<meta http-equiv="X-UA-Compatible" content="IE=8">'),e},mxPrintPreview.prototype.open=function(e){var n=this.graph.cellRenderer.initializeOverlay,t=null;try{if(this.printOverlays&&(this.graph.cellRenderer.initializeOverlay=function(e,n){n.init(e.view.getDrawPane())}),null==this.wnd){this.wnd=window.open();var a=this.wnd.document,i=this.getDoctype();null!=i&&0<i.length&&a.writeln(i),a.writeln("<html>"),a.writeln("<head>"),this.writeHead(a,e),a.writeln("</head>"),a.writeln('<body class="mxPage">'),mxClient.link("stylesheet",mxClient.basePath+"/css/common.css",a),mxClient.IS_VML&&(a.namespaces.add("v","urn:schemas-microsoft-com:vml"),a.namespaces.add("o","urn:schemas-microsoft-com:office:office"),a.createStyleSheet().cssText="v\\:*{behavior:url(#default#VML)}o\\:*{behavior:url(#default#VML)}",mxClient.link("stylesheet",mxClient.basePath+"/css/explorer.css",a));var s=this.graph.getGraphBounds().clone(),o=this.graph.getView().getScale(),r=o/this.scale,l=this.graph.getView().getTranslate();this.autoOrigin||(this.x0=-l.x*this.scale,this.y0=-l.y*this.scale,s.width+=s.x,s.height+=s.y,s.x=0,this.border=s.y=0),s.width/=r,s.height/=r;var d=this.pageFormat.width-2*this.border,c=this.pageFormat.height-2*this.border,m=Math.max(1,Math.ceil((s.width+this.x0)/d)),u=Math.max(1,Math.ceil((s.height+this.y0)/c));this.pageCount=m*u;var p=mxUtils.bind(this,function(){if(this.pageSelector&&(1<u||1<m)){var e=this.createPageSelector(u,m);if(a.body.appendChild(e),mxClient.IS_IE){e.style.position="absolute";var n=function(){e.style.top=a.body.scrollTop+10+"px"};mxEvent.addListener(this.wnd,"scroll",function(e){n()}),mxEvent.addListener(this.wnd,"resize",function(e){n()})}}});if(e=function(e,n){if(null!=this.borderColor&&(e.style.borderColor=this.borderColor,e.style.borderStyle="solid",e.style.borderWidth="1px"),e.style.background="white",n&&(e.style.pageBreakAfter="always"),mxClient.IS_IE?(a.writeln(e.outerHTML),e.parentNode.removeChild(e)):(e.parentNode.removeChild(e),a.body.appendChild(e)),n){var t=a.createElement("hr");t.className="mxPageBreak",a.body.appendChild(t)}},null!=(f=this.getCoverPages(this.pageFormat.width,this.pageFormat.height)))for(var g=0;g<f.length;g++)e(f[g],!0);var v=this.getAppendices(this.pageFormat.width,this.pageFormat.height);for(g=0;g<u;g++)for(var h=g*c/this.scale-this.y0/this.scale+(s.y-l.y*o)/o,f=0;f<m;f++){if(null==this.wnd)return null;var b=f*d/this.scale-this.x0/this.scale+(s.x-l.x*o)/o,A=g*m+f+1;(t=this.renderPage(this.pageFormat.width,this.pageFormat.height,mxUtils.bind(this,function(e){this.addGraphFragment(-b,-h,this.scale,A,e)}))).setAttribute("id","mxPage-"+A),e(t,null!=v||g<u-1||f<m-1)}if(null!=v)for(g=0;g<v.length;g++)e(v[g],g<v.length);a.writeln("</body>"),a.writeln("</html>"),a.close(),p(),mxEvent.release(a.body)}this.wnd.focus()}catch(e){null!=t&&null!=t.parentNode&&t.parentNode.removeChild(t)}finally{this.graph.cellRenderer.initializeOverlay=n}return this.wnd},mxPrintPreview.prototype.writeHead=function(e,n){null!=this.title&&e.writeln("<title>"+this.title+"</title>"),e.writeln('<style type="text/css">'),e.writeln("@media print {"),e.writeln(" table.mxPageSelector { display: none; }"),e.writeln(" hr.mxPageBreak { display: none; }"),e.writeln("}"),e.writeln("@media screen {"),e.writeln(" table.mxPageSelector { position: fixed; right: 10px; top: 10px;font-family: Arial; font-size:10pt; border: solid 1px darkgray;background: white; border-collapse:collapse; }"),e.writeln(" table.mxPageSelector td { border: solid 1px gray; padding:4px; }"),e.writeln(" body.mxPage { background: gray; }"),e.writeln("}"),null!=n&&e.writeln(n),e.writeln("</style>")},mxPrintPreview.prototype.createPageSelector=function(e,n){var t=this.wnd.document,a=t.createElement("table");a.className="mxPageSelector",a.setAttribute("border","0");for(var i=t.createElement("tbody"),s=0;s<e;s++){for(var o=t.createElement("tr"),r=0;r<n;r++){var l=s*n+r+1,d=t.createElement("td");if(!mxClient.IS_NS||mxClient.IS_SF||mxClient.IS_GC){var c=t.createElement("a");c.setAttribute("href","#mxPage-"+l),mxUtils.write(c,l,t),d.appendChild(c)}else mxUtils.write(d,l,t);o.appendChild(d)}i.appendChild(o)}return a.appendChild(i),a},mxPrintPreview.prototype.renderPage=function(e,n,t){var a=document.createElement("div");try{a.style.width=e+"px",a.style.height=n+"px",a.style.overflow="hidden",a.style.pageBreakInside="avoid",a.style.position="relative";var i=document.createElement("div");i.style.top=this.border+"px",i.style.left=this.border+"px",i.style.width=e-2*this.border+"px",i.style.height=n-2*this.border+"px",i.style.overflow="hidden",this.graph.dialect==mxConstants.DIALECT_VML&&(i.style.position="absolute"),a.appendChild(i),document.body.appendChild(a),t(i)}catch(e){throw a.parentNode.removeChild(a),e}return a},mxPrintPreview.prototype.addGraphFragment=function(e,n,t,a,i){a=this.graph.getView();var s=this.graph.container;this.graph.container=i;var o=a.getCanvas(),r=a.getBackgroundPane(),l=a.getDrawPane(),d=a.getOverlayPane();this.graph.dialect==mxConstants.DIALECT_SVG?a.createSvg():this.graph.dialect==mxConstants.DIALECT_VML?a.createVml():a.createHtml();var c=a.isEventsEnabled();a.setEventsEnabled(!1);var m=this.graph.isEnabled();this.graph.setEnabled(!1);var u=a.getTranslate();a.translate=new mxPoint(e,n),e=null;try{var p=[this.graph.getModel().getRoot()];e=new mxTemporaryCellStates(a,t,p)}finally{if(mxClient.IS_IE)a.overlayPane.innerHTML="";else for(t=i.firstChild;null!=t;)p=t.nextSibling,"svg"==(n=t.nodeName.toLowerCase())?(t.setAttribute("width",parseInt(i.style.width)),t.setAttribute("height",parseInt(i.style.height))):"default"!=t.style.cursor&&"table"!=n&&t.parentNode.removeChild(t),t=p;a.overlayPane.parentNode.removeChild(a.overlayPane),this.graph.setEnabled(m),this.graph.container=s,a.canvas=o,a.backgroundPane=r,a.drawPane=l,a.overlayPane=d,a.translate=u,e.destroy(),a.setEventsEnabled(c)}},mxPrintPreview.prototype.getCoverPages=function(){return null},mxPrintPreview.prototype.getAppendices=function(){return null},mxPrintPreview.prototype.print=function(){var e=this.open();null!=e&&e.print()},mxPrintPreview.prototype.close=function(){null!=this.wnd&&(this.wnd.close(),this.wnd=null)},mxStylesheet.prototype.createDefaultVertexStyle=function(){var e={};return e[mxConstants.STYLE_SHAPE]=mxConstants.SHAPE_RECTANGLE,e[mxConstants.STYLE_PERIMETER]=mxPerimeter.RectanglePerimeter,e[mxConstants.STYLE_VERTICAL_ALIGN]=mxConstants.ALIGN_MIDDLE,e[mxConstants.STYLE_ALIGN]=mxConstants.ALIGN_CENTER,e[mxConstants.STYLE_FILLCOLOR]="#C3D9FF",e[mxConstants.STYLE_STROKECOLOR]="#6482B9",e[mxConstants.STYLE_FONTCOLOR]="#774400",e},mxStylesheet.prototype.createDefaultEdgeStyle=function(){var e={};return e[mxConstants.STYLE_SHAPE]=mxConstants.SHAPE_CONNECTOR,e[mxConstants.STYLE_ENDARROW]=mxConstants.ARROW_CLASSIC,e[mxConstants.STYLE_VERTICAL_ALIGN]=mxConstants.ALIGN_MIDDLE,e[mxConstants.STYLE_ALIGN]=mxConstants.ALIGN_CENTER,e[mxConstants.STYLE_STROKECOLOR]="#6482B9",e[mxConstants.STYLE_FONTCOLOR]="#446299",e},mxStylesheet.prototype.putDefaultVertexStyle=function(e){this.putCellStyle("defaultVertex",e)},mxStylesheet.prototype.putDefaultEdgeStyle=function(e){this.putCellStyle("defaultEdge",e)},mxStylesheet.prototype.getDefaultVertexStyle=function(){return this.styles.defaultVertex},mxStylesheet.prototype.getDefaultEdgeStyle=function(){return this.styles.defaultEdge},mxStylesheet.prototype.putCellStyle=function(e,n){this.styles[e]=n},mxStylesheet.prototype.getCellStyle=function(e,n){var t=n;if(null!=e&&0<e.length)for(var a=e.split(";"),i=(t=null!=t&&";"!=e.charAt(0)?mxUtils.clone(t):{},0);i<a.length;i++){var s=(o=a[i]).indexOf("=");if(0<=s){var o,r=o.substring(0,s);(o=o.substring(s+1))==mxConstants.NONE?delete t[r]:mxUtils.isNumeric(o)?t[r]=parseFloat(o):t[r]=o}else if(null!=(o=this.styles[o]))for(r in o)t[r]=o[r]}return t},mxCellState.prototype=new mxRectangle,mxCellState.prototype.constructor=mxCellState,mxCellState.prototype.view=null,mxCellState.prototype.cell=null,mxCellState.prototype.style=null,mxCellState.prototype.invalid=!0,mxCellState.prototype.invalidOrder=!1,mxCellState.prototype.orderChanged=!1,mxCellState.prototype.origin=null,mxCellState.prototype.absolutePoints=null,mxCellState.prototype.absoluteOffset=null,mxCellState.prototype.visibleSourceState=null,mxCellState.prototype.visibleTargetState=null,mxCellState.prototype.terminalDistance=0,mxCellState.prototype.length=0,mxCellState.prototype.segments=null,mxCellState.prototype.shape=null,mxCellState.prototype.text=null,mxCellState.prototype.getPerimeterBounds=function(e,n){if(e=e||0,n=null!=n?n:new mxRectangle(this.x,this.y,this.width,this.height),null!=this.shape&&null!=this.shape.stencil){var t=this.shape.stencil.computeAspect(this.style,n.x,n.y,n.width,n.height);n.x=t.x,n.y=t.y,n.width=this.shape.stencil.w0*t.width,n.height=this.shape.stencil.h0*t.height}return 0!=e&&n.grow(e),n},mxCellState.prototype.setAbsoluteTerminalPoint=function(e,n){n?(null==this.absolutePoints&&(this.absolutePoints=[]),0==this.absolutePoints.length?this.absolutePoints.push(e):this.absolutePoints[0]=e):null==this.absolutePoints?(this.absolutePoints=[],this.absolutePoints.push(null),this.absolutePoints.push(e)):1==this.absolutePoints.length?this.absolutePoints.push(e):this.absolutePoints[this.absolutePoints.length-1]=e},mxCellState.prototype.setCursor=function(e){null!=this.shape&&this.shape.setCursor(e),null!=this.text&&this.text.setCursor(e)},mxCellState.prototype.getVisibleTerminal=function(e){return null!=(e=this.getVisibleTerminalState(e))?e.cell:null},mxCellState.prototype.getVisibleTerminalState=function(e){return e?this.visibleSourceState:this.visibleTargetState},mxCellState.prototype.setVisibleTerminalState=function(e,n){n?this.visibleSourceState=e:this.visibleTargetState=e},mxCellState.prototype.destroy=function(){this.view.graph.cellRenderer.destroy(this)},mxCellState.prototype.clone=function(){var e=new mxCellState(this.view,this.cell,this.style);if(null!=this.absolutePoints){e.absolutePoints=[];for(var n=0;n<this.absolutePoints.length;n++)e.absolutePoints[n]=this.absolutePoints[n].clone()}return null!=this.origin&&(e.origin=this.origin.clone()),null!=this.absoluteOffset&&(e.absoluteOffset=this.absoluteOffset.clone()),null!=this.boundingBox&&(e.boundingBox=this.boundingBox.clone()),e.terminalDistance=this.terminalDistance,e.segments=this.segments,e.length=this.length,e.x=this.x,e.y=this.y,e.width=this.width,e.height=this.height,e},mxGraphSelectionModel.prototype=new mxEventSource,mxGraphSelectionModel.prototype.constructor=mxGraphSelectionModel,mxGraphSelectionModel.prototype.doneResource="none"!=mxClient.language?"done":"",mxGraphSelectionModel.prototype.updatingSelectionResource="none"!=mxClient.language?"updatingSelection":"",mxGraphSelectionModel.prototype.graph=null,mxGraphSelectionModel.prototype.singleSelection=!1,mxGraphSelectionModel.prototype.isSingleSelection=function(){return this.singleSelection},mxGraphSelectionModel.prototype.setSingleSelection=function(e){this.singleSelection=e},mxGraphSelectionModel.prototype.isSelected=function(e){return null!=e&&0<=mxUtils.indexOf(this.cells,e)},mxGraphSelectionModel.prototype.isEmpty=function(){return 0==this.cells.length},mxGraphSelectionModel.prototype.clear=function(){this.changeSelection(null,this.cells)},mxGraphSelectionModel.prototype.setCell=function(e){null!=e&&this.setCells([e])},mxGraphSelectionModel.prototype.setCells=function(e){if(null!=e){this.singleSelection&&(e=[this.getFirstSelectableCell(e)]);for(var n=[],t=0;t<e.length;t++)this.graph.isCellSelectable(e[t])&&n.push(e[t]);this.changeSelection(n,this.cells)}},mxGraphSelectionModel.prototype.getFirstSelectableCell=function(e){if(null!=e)for(var n=0;n<e.length;n++)if(this.graph.isCellSelectable(e[n]))return e[n];return null},mxGraphSelectionModel.prototype.addCell=function(e){null!=e&&this.addCells([e])},mxGraphSelectionModel.prototype.addCells=function(e){if(null!=e){var n=null;this.singleSelection&&(n=this.cells,e=[this.getFirstSelectableCell(e)]);for(var t=[],a=0;a<e.length;a++)!this.isSelected(e[a])&&this.graph.isCellSelectable(e[a])&&t.push(e[a]);this.changeSelection(t,n)}},mxGraphSelectionModel.prototype.removeCell=function(e){null!=e&&this.removeCells([e])},mxGraphSelectionModel.prototype.removeCells=function(e){if(null!=e){for(var n=[],t=0;t<e.length;t++)this.isSelected(e[t])&&n.push(e[t]);this.changeSelection(null,n)}},mxGraphSelectionModel.prototype.changeSelection=function(e,n){if(null!=e&&0<e.length&&null!=e[0]||null!=n&&0<n.length&&null!=n[0]){var t=new mxSelectionChange(this,e,n);t.execute();var a=new mxUndoableEdit(this,!1);a.add(t),this.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",a))}},mxGraphSelectionModel.prototype.cellAdded=function(e){null!=e&&!this.isSelected(e)&&this.cells.push(e)},mxGraphSelectionModel.prototype.cellRemoved=function(e){null!=e&&(0<=(e=mxUtils.indexOf(this.cells,e))&&this.cells.splice(e,1))},mxSelectionChange.prototype.execute=function(){var e=mxLog.enter("mxSelectionChange.execute");if(window.status=mxResources.get(this.selectionModel.updatingSelectionResource)||this.selectionModel.updatingSelectionResource,null!=this.removed)for(var n=0;n<this.removed.length;n++)this.selectionModel.cellRemoved(this.removed[n]);if(null!=this.added)for(n=0;n<this.added.length;n++)this.selectionModel.cellAdded(this.added[n]);n=this.added,this.added=this.removed,this.removed=n,window.status=mxResources.get(this.selectionModel.doneResource)||this.selectionModel.doneResource,mxLog.leave("mxSelectionChange.execute",e),this.selectionModel.fireEvent(new mxEventObject(mxEvent.CHANGE,"added",this.added,"removed",this.removed))},mxCellEditor.prototype.graph=null,mxCellEditor.prototype.textarea=null,mxCellEditor.prototype.editingCell=null,mxCellEditor.prototype.trigger=null,mxCellEditor.prototype.modified=!1,mxCellEditor.prototype.autoSize=!0,mxCellEditor.prototype.emptyLabelText="",mxCellEditor.prototype.textNode="",mxCellEditor.prototype.init=function(){this.textarea=document.createElement("textarea"),this.textarea.className="mxCellEditor",this.textarea.style.position="absolute",this.textarea.style.overflow="visible",this.textarea.setAttribute("cols","20"),this.textarea.setAttribute("rows","4"),mxClient.IS_NS&&(this.textarea.style.resize="none"),mxEvent.addListener(this.textarea,"blur",mxUtils.bind(this,function(e){this.focusLost()})),mxEvent.addListener(this.textarea,"keydown",mxUtils.bind(this,function(e){mxEvent.isConsumed(e)||(113==e.keyCode||this.graph.isEnterStopsCellEditing()&&13==e.keyCode&&!mxEvent.isControlDown(e)&&!mxEvent.isShiftDown(e)?(this.graph.stopEditing(!1),mxEvent.consume(e)):27==e.keyCode?(this.graph.stopEditing(!0),mxEvent.consume(e)):(this.clearOnChange&&(this.clearOnChange=!1,this.textarea.value=""),this.setModified(!0)))})),mxEvent.addListener(this.textarea,"keypress",mxUtils.bind(this,function(e){this.autoSize&&!mxEvent.isConsumed(e)&&setTimeout(mxUtils.bind(this,function(){this.resize()}),0)}))},mxCellEditor.prototype.resize=function(){if(null!=this.textDiv){var e=this.graph.getView().getState(this.editingCell),n=this.graph.isLabelClipped(e.cell),t=this.graph.isWrapping(e.cell);if(this.graph.getModel().isEdge(e.cell))this.bounds.x=e.absoluteOffset.x,this.bounds.y=e.absoluteOffset.y,this.bounds.width=0,this.bounds.height=0;else if(null!=this.bounds){this.bounds.x=e.x,this.bounds.y=e.y,this.bounds.width=e.width,this.bounds.height=e.height,(a=mxUtils.getValue(e.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER))==mxConstants.ALIGN_LEFT?this.bounds.x-=e.width:a==mxConstants.ALIGN_RIGHT&&(this.bounds.x+=e.width),(a=mxUtils.getValue(e.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE))==mxConstants.ALIGN_TOP?this.bounds.y-=e.height:a==mxConstants.ALIGN_BOTTOM&&(this.bounds.y+=e.height)}"\n"!=(a=this.textarea.value).charAt(a.length-1)&&""!=a||(a+=" "),a=mxUtils.htmlEntities(a,!1),t?(this.textDiv.style.whiteSpace="normal",this.textDiv.style.width=this.bounds.width+"px"):a=a.replace(/ /g," "),a=a.replace(/\n/g,"<br/>"),this.textDiv.innerHTML=a;var a=this.textDiv.offsetWidth+30,i=this.textDiv.offsetHeight+16;a=Math.max(a,40),i=Math.max(i,20);n&&(a=Math.min(this.bounds.width-4,a),i=Math.min(this.bounds.height,i));var s=null!=e.text?e.text.margin:null;null==s&&(s=mxUtils.getValue(e.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER),e=mxUtils.getValue(e.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE),s=mxUtils.getAlignmentAsPoint(s,e)),null!=s&&(!n&&t||(this.textarea.style.left=Math.max(0,Math.round(this.bounds.x-s.x*this.bounds.width+s.x*a)-3)+"px"),this.textarea.style.top=Math.max(0,Math.round(this.bounds.y-s.y*this.bounds.height+s.y*i)+4)+"px"),!n&&t||(this.textarea.style.width=a+"px"),this.textarea.style.height=i+"px"}},mxCellEditor.prototype.isModified=function(){return this.modified},mxCellEditor.prototype.setModified=function(e){this.modified=e},mxCellEditor.prototype.focusLost=function(){this.stopEditing(!this.graph.isInvokesStopCellEditing())},mxCellEditor.prototype.startEditing=function(e,n){null==this.textarea&&this.init(),this.stopEditing(!0);var t=this.graph.getView().getState(e);if(null!=t){this.editingCell=e,this.trigger=n,(this.textNode=null)!=t.text&&this.isHideLabel(t)&&(this.textNode=t.text.node,this.textNode.style.visibility="hidden");var a=this.graph.getView().scale,i=(a=mxUtils.getValue(t.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE)*a,mxUtils.getValue(t.style,mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY)),s=mxUtils.getValue(t.style,mxConstants.STYLE_FONTCOLOR,"black"),o=mxUtils.getValue(t.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),r=(mxUtils.getValue(t.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD,l=(mxUtils.getValue(t.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC,d=(mxUtils.getValue(t.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE;this.textarea.style.fontSize=Math.round(a)+"px",this.textarea.style.lineHeight=Math.round(a*mxConstants.LINE_HEIGHT)+"px",this.textarea.style.fontFamily=i,this.textarea.style.textAlign=o,this.textarea.style.color=s,this.textarea.style.fontWeight=r?"bold":"normal",this.textarea.style.fontStyle=l?"italic":"",this.textarea.style.textDecoration=d?"underline":"",this.textarea.style.overflow="auto",this.textarea.style.outline="none",this.bounds=a=this.getEditorBounds(t),this.textarea.style.left=a.x+"px",this.textarea.style.top=a.y+"px",this.textarea.style.width=a.width+"px",this.textarea.style.height=a.height+"px",this.textarea.style.zIndex=5,null==(t=this.getInitialValue(t,n))||0==t.length?(t=this.getEmptyLabelText(),this.clearOnChange=!0):this.clearOnChange=!1,this.setModified(!1),this.textarea.value=t,this.graph.container.appendChild(this.textarea),"none"!=this.textarea.style.display&&(this.autoSize&&(this.textDiv=this.createTextDiv(),document.body.appendChild(this.textDiv),this.resize()),this.textarea.focus(),this.textarea.select())}},mxCellEditor.prototype.createTextDiv=function(){var e=document.createElement("div"),n=e.style;return n.position="absolute",n.whiteSpace="nowrap",n.visibility="hidden",n.display=mxClient.IS_QUIRKS?"inline":"inline-block",n.zoom="1",n.verticalAlign="top",n.lineHeight=this.textarea.style.lineHeight,n.fontSize=this.textarea.style.fontSize,n.fontFamily=this.textarea.style.fontFamily,n.fontWeight=this.textarea.style.fontWeight,n.textAlign=this.textarea.style.textAlign,n.fontStyle=this.textarea.style.fontStyle,n.textDecoration=this.textarea.style.textDecoration,e},mxCellEditor.prototype.stopEditing=function(e){null!=this.editingCell&&(null!=this.textNode&&(this.textNode.style.visibility="visible",this.textNode=null),!e&&this.isModified()&&this.graph.labelChanged(this.editingCell,this.getCurrentValue(),this.trigger),null!=this.textDiv&&(document.body.removeChild(this.textDiv),this.textDiv=null),this.bounds=this.trigger=this.editingCell=null,this.textarea.blur(),this.textarea.parentNode.removeChild(this.textarea))},mxCellEditor.prototype.getInitialValue=function(e,n){return this.graph.getEditingValue(e.cell,n)},mxCellEditor.prototype.getCurrentValue=function(){return this.textarea.value.replace(/\r/g,"")},mxCellEditor.prototype.isHideLabel=function(e){return!0},mxCellEditor.prototype.getMinimumSize=function(e){var n=this.graph.getView().scale;return new mxRectangle(0,0,null==e.text?30:e.text.size*n+20,"left"==this.textarea.style.textAlign?120:40)},mxCellEditor.prototype.getEditorBounds=function(e){var n=this.graph.getModel().isEdge(e.cell),t=this.graph.getView().scale,a=(i=this.getMinimumSize(e)).width,i=i.height,s=parseInt(e.style[mxConstants.STYLE_SPACING]||2)*t,o=parseInt(e.style[mxConstants.STYLE_SPACING_TOP]||0)*t+s,r=parseInt(e.style[mxConstants.STYLE_SPACING_RIGHT]||0)*t+s,l=parseInt(e.style[mxConstants.STYLE_SPACING_BOTTOM]||0)*t+s;t=parseInt(e.style[mxConstants.STYLE_SPACING_LEFT]||0)*t+s,r=new mxRectangle(e.x,e.y,Math.max(a,e.width-t-r),Math.max(i,e.height-o-l));return n?(r.x=e.absoluteOffset.x,r.y=e.absoluteOffset.y,null!=e.text&&null!=e.text.boundingBox&&(0<e.text.boundingBox.x&&(r.x=e.text.boundingBox.x),0<e.text.boundingBox.y&&(r.y=e.text.boundingBox.y))):null!=e.text&&null!=e.text.boundingBox&&(r.x=Math.min(r.x,e.text.boundingBox.x),r.y=Math.min(r.y,e.text.boundingBox.y)),r.x+=t,r.y+=o,null!=e.text&&null!=e.text.boundingBox&&(n?(r.width=Math.max(a,e.text.boundingBox.width),r.height=Math.max(i,e.text.boundingBox.height)):(r.width=Math.max(r.width,e.text.boundingBox.width),r.height=Math.max(r.height,e.text.boundingBox.height))),this.graph.getModel().isVertex(e.cell)&&((n=mxUtils.getValue(e.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER))==mxConstants.ALIGN_LEFT?r.x-=e.width:n==mxConstants.ALIGN_RIGHT&&(r.x+=e.width),(n=mxUtils.getValue(e.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE))==mxConstants.ALIGN_TOP?r.y-=e.height:n==mxConstants.ALIGN_BOTTOM&&(r.y+=e.height)),r},mxCellEditor.prototype.getEmptyLabelText=function(e){return this.emptyLabelText},mxCellEditor.prototype.getEditingCell=function(){return this.editingCell},mxCellEditor.prototype.destroy=function(){null!=this.textarea&&(mxEvent.release(this.textarea),null!=this.textarea.parentNode&&this.textarea.parentNode.removeChild(this.textarea),this.textarea=null)},mxCellRenderer.prototype.defaultEdgeShape=mxConnector,mxCellRenderer.prototype.defaultVertexShape=mxRectangleShape,mxCellRenderer.prototype.defaultTextShape=mxText,mxCellRenderer.prototype.legacyControlPosition=!0,mxCellRenderer.prototype.defaultShapes={},mxCellRenderer.registerShape=function(e,n){mxCellRenderer.prototype.defaultShapes[e]=n},mxCellRenderer.registerShape(mxConstants.SHAPE_RECTANGLE,mxRectangleShape),mxCellRenderer.registerShape(mxConstants.SHAPE_ELLIPSE,mxEllipse),mxCellRenderer.registerShape(mxConstants.SHAPE_RHOMBUS,mxRhombus),mxCellRenderer.registerShape(mxConstants.SHAPE_CYLINDER,mxCylinder),mxCellRenderer.registerShape(mxConstants.SHAPE_CONNECTOR,mxConnector),mxCellRenderer.registerShape(mxConstants.SHAPE_ACTOR,mxActor),mxCellRenderer.registerShape(mxConstants.SHAPE_TRIANGLE,mxTriangle),mxCellRenderer.registerShape(mxConstants.SHAPE_HEXAGON,mxHexagon),mxCellRenderer.registerShape(mxConstants.SHAPE_CLOUD,mxCloud),mxCellRenderer.registerShape(mxConstants.SHAPE_LINE,mxLine),mxCellRenderer.registerShape(mxConstants.SHAPE_ARROW,mxArrow),mxCellRenderer.registerShape(mxConstants.SHAPE_DOUBLE_ELLIPSE,mxDoubleEllipse),mxCellRenderer.registerShape(mxConstants.SHAPE_SWIMLANE,mxSwimlane),mxCellRenderer.registerShape(mxConstants.SHAPE_IMAGE,mxImageShape),mxCellRenderer.registerShape(mxConstants.SHAPE_LABEL,mxLabel),mxCellRenderer.prototype.initialize=function(e,n){var t=e.view.graph.getModel();null!=e.view.graph.container&&null==e.shape&&e.cell!=e.view.currentRoot&&(t.isVertex(e.cell)||t.isEdge(e.cell))&&(this.createShape(e),null==e.shape||null!=n&&!n||(this.initializeShape(e),e.view.graph.ordered||t.isEdge(e.cell)?e.invalidOrder=!0:e.view.graph.keepEdgesInForeground&&null!=this.firstEdge&&(this.firstEdge.parentNode==e.shape.node.parentNode?this.insertState(e,this.firstEdge):this.firstEdge=null),e.shape.scale=e.view.scale,this.createCellOverlays(e),this.installListeners(e)))},mxCellRenderer.prototype.initializeShape=function(e){e.shape.init(e.view.getDrawPane())},mxCellRenderer.prototype.getPreviousStateInContainer=function(e,n){for(var t=null,a=e.view.graph,i=a.getModel(),s=e.cell,o=i.getParent(s);null!=o&&null==t;)t=this.findPreviousStateInContainer(a,o,s,n),s=o,o=i.getParent(s);return t},mxCellRenderer.prototype.findPreviousStateInContainer=function(e,n,t,a){var i=null,s=e.getModel();for(t=null!=t?n.getIndex(t)-1:s.getChildCount(n)-1;0<=t&&null==i;t--)i=this.findPreviousStateInContainer(e,s.getChildAt(n,t),null,a);return null!=i||(null==(i=e.view.getState(n))||null!=i.shape&&null!=i.shape.node&&i.shape.node.parentNode==a)||(i=null),i},mxCellRenderer.prototype.order=function(e){var n=e.shape.node.parentNode,t=this.getPreviousStateInContainer(e,n),a=n.firstChild;null!=t&&(a=t.shape.node,null!=t.text&&null!=t.text.node&&t.text.node.parentNode==n&&(a=t.text.node),a=a.nextSibling),this.insertState(e,a)},mxCellRenderer.prototype.orderEdge=function(e){var n=(t=e.view).graph.getModel();if(t.graph.keepEdgesInForeground)null!=this.firstEdge&&null!=this.firstEdge.parentNode&&this.firstEdge.parentNode==e.shape.node.parentNode||(this.firstEdge=e.shape.node);else if(t.graph.keepEdgesInBackground){var t,a=e.shape.node,i=a.parentNode;n=n.getParent(e.cell);null!=(i=null!=(t=t.getState(n))&&null!=t.shape&&null!=t.shape.node?t.shape.node.nextSibling:i.firstChild)&&i!=a&&this.insertState(e,i)}},mxCellRenderer.prototype.insertState=function(e,n){e.shape.node.parentNode.insertBefore(e.shape.node,n),null!=e.text&&null!=e.text.node&&e.text.node.parentNode==e.shape.node.parentNode&&e.shape.node.parentNode.insertBefore(e.text.node,e.shape.node.nextSibling)},mxCellRenderer.prototype.createShape=function(e){if(null!=e.style){var n=mxStencilRegistry.getStencil(e.style[mxConstants.STYLE_SHAPE]);null!=n?e.shape=new mxShape(n):(n=this.getShapeConstructor(e),e.shape=new n),e.shape.points=e.absolutePoints,e.shape.bounds=new mxRectangle(e.x,e.y,e.width,e.height),e.shape.dialect=e.view.graph.dialect,this.configureShape(e)}},mxCellRenderer.prototype.getShape=function(e){return null!=e?mxCellRenderer.prototype.defaultShapes[e]:null},mxCellRenderer.prototype.getShapeConstructor=function(e){var n=this.getShape(e.style[mxConstants.STYLE_SHAPE]);return null==n&&(n=e.view.graph.getModel().isEdge(e.cell)?this.defaultEdgeShape:this.defaultVertexShape),n},mxCellRenderer.prototype.configureShape=function(e){e.shape.apply(e),e.shape.image=e.view.graph.getImage(e),e.shape.indicatorShape=this.getShape(e.view.graph.getIndicatorShape(e)),e.shape.indicatorColor=e.view.graph.getIndicatorColor(e),e.shape.indicatorGradientColor=e.view.graph.getIndicatorGradientColor(e),e.shape.indicatorDirection=e.style[mxConstants.STYLE_INDICATOR_DIRECTION],e.shape.indicatorImage=e.view.graph.getIndicatorImage(e),this.postConfigureShape(e)},mxCellRenderer.prototype.postConfigureShape=function(e){null!=e.shape&&(this.resolveColor(e,"indicatorColor",mxConstants.STYLE_FILLCOLOR),this.resolveColor(e,"indicatorGradientColor",mxConstants.STYLE_GRADIENTCOLOR),this.resolveColor(e,"fill",mxConstants.STYLE_FILLCOLOR),this.resolveColor(e,"stroke",mxConstants.STYLE_STROKECOLOR),this.resolveColor(e,"gradient",mxConstants.STYLE_GRADIENTCOLOR))},mxCellRenderer.prototype.resolveColor=function(e,n,t){var a=e.shape[n],i=e.view.graph,s=null;"inherit"==a?s=i.model.getParent(e.cell):"swimlane"==a?(s=null!=i.model.getTerminal(e.cell,!1)?i.model.getTerminal(e.cell,!1):e.cell,s=i.getSwimlane(s),t=i.swimlaneIndicatorColorAttribute):"indicated"==a&&(e.shape[n]=e.shape.indicatorColor),null!=s&&(a=i.getView().getState(s),(e.shape[n]=null)!=a&&(e.shape[n]=null!=a.shape&&"indicatorColor"!=n?a.shape[n]:a.style[t]))},mxCellRenderer.prototype.getLabelValue=function(e){return e.view.graph.getLabel(e.cell)},mxCellRenderer.prototype.createLabel=function(t,e){var a=t.view.graph;if(a.getModel().isEdge(t.cell),0<t.style[mxConstants.STYLE_FONTSIZE]||null==t.style[mxConstants.STYLE_FONTSIZE]){var n=a.isHtmlLabel(t.cell)||null!=e&&mxUtils.isNode(e);t.text=new this.defaultTextShape(e,new mxRectangle,t.style[mxConstants.STYLE_ALIGN]||mxConstants.ALIGN_CENTER,a.getVerticalAlign(t),t.style[mxConstants.STYLE_FONTCOLOR],t.style[mxConstants.STYLE_FONTFAMILY],t.style[mxConstants.STYLE_FONTSIZE],t.style[mxConstants.STYLE_FONTSTYLE],t.style[mxConstants.STYLE_SPACING],t.style[mxConstants.STYLE_SPACING_TOP],t.style[mxConstants.STYLE_SPACING_RIGHT],t.style[mxConstants.STYLE_SPACING_BOTTOM],t.style[mxConstants.STYLE_SPACING_LEFT],t.style[mxConstants.STYLE_HORIZONTAL],t.style[mxConstants.STYLE_LABEL_BACKGROUNDCOLOR],t.style[mxConstants.STYLE_LABEL_BORDERCOLOR],a.isWrapping(t.cell)&&a.isHtmlLabel(t.cell),a.isLabelClipped(t.cell),t.style[mxConstants.STYLE_OVERFLOW],t.style[mxConstants.STYLE_LABEL_PADDING]),t.text.opacity=mxUtils.getValue(t.style,mxConstants.STYLE_TEXT_OPACITY,100),t.text.dialect=n?mxConstants.DIALECT_STRICTHTML:t.view.graph.dialect,t.text.state=t,this.initializeLabel(t);var i=!1,s=function(e){var n=t;return(mxClient.IS_TOUCH||i)&&(n=mxEvent.getClientX(e),e=mxEvent.getClientY(e),e=mxUtils.convertPoint(a.container,n,e),n=a.view.getState(a.getCellAt(e.x,e.y))),n};mxEvent.addGestureListeners(t.text.node,mxUtils.bind(this,function(e){this.isLabelEvent(t,e)&&(a.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e,t)),i=a.dialect!=mxConstants.DIALECT_SVG&&"IMG"==mxEvent.getSource(e).nodeName)}),mxUtils.bind(this,function(e){this.isLabelEvent(t,e)&&a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,s(e)))}),mxUtils.bind(this,function(e){this.isLabelEvent(t,e)&&(a.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e,s(e))),i=!1)})),mxEvent.addListener(t.text.node,"dblclick",mxUtils.bind(this,function(e){this.isLabelEvent(t,e)&&(a.dblClick(e,t.cell),mxEvent.consume(e))}))}},mxCellRenderer.prototype.initializeLabel=function(e){var n=e.view.graph;e.text.dialect!=mxConstants.DIALECT_SVG&&(mxClient.IS_SVG&&mxClient.NO_FO?e.text.init(n.container):mxUtils.isVml(e.view.getDrawPane())&&(null!=e.shape.label?e.text.init(e.shape.label):e.text.init(e.shape.node))),null==e.text.node&&(e.text.init(e.view.getDrawPane()),null!=e.shape&&null!=e.text&&e.shape.node.parentNode.insertBefore(e.text.node,e.shape.node.nextSibling))},mxCellRenderer.prototype.createCellOverlays=function(e){var n=e.view.graph.getCellOverlays(e.cell),t=null;if(null!=n){t=new mxDictionary;for(var a=0;a<n.length;a++){var i=null!=e.overlays?e.overlays.remove(n[a]):null;null==i&&((i=new mxImageShape(new mxRectangle,n[a].image.src)).dialect=e.view.graph.dialect,i.preserveImageAspect=!1,i.overlay=n[a],this.initializeOverlay(e,i),this.installCellOverlayListeners(e,n[a],i),null!=n[a].cursor&&(i.node.style.cursor=n[a].cursor)),t.put(n[a],i)}}null!=e.overlays&&e.overlays.visit(function(e,n){n.destroy()}),e.overlays=t},mxCellRenderer.prototype.initializeOverlay=function(e,n){n.init(e.view.getOverlayPane())},mxCellRenderer.prototype.installCellOverlayListeners=function(n,t,e){var a=n.view.graph;mxEvent.addListener(e.node,"click",function(e){a.isEditing()&&a.stopEditing(!a.isInvokesStopCellEditing()),t.fireEvent(new mxEventObject(mxEvent.CLICK,"event",e,"cell",n.cell))}),mxEvent.addGestureListeners(e.node,function(e){mxEvent.consume(e)},function(e){a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,n))}),mxClient.IS_TOUCH&&mxEvent.addListener(e.node,"touchend",function(e){t.fireEvent(new mxEventObject(mxEvent.CLICK,"event",e,"cell",n.cell))})},mxCellRenderer.prototype.createControl=function(t){var a=t.view.graph,e=a.getFoldingImage(t);if(a.foldingEnabled&&null!=e){if(null==t.control){var n=new mxRectangle(0,0,e.width,e.height);t.control=new mxImageShape(n,e.src),t.control.preserveImageAspect=!1,t.control.dialect=a.dialect,this.initControl(t,t.control,!0,function(e){if(a.isEnabled()){var n=!a.isCellCollapsed(t.cell);a.foldCells(n,!1,[t.cell]),mxEvent.consume(e)}})}}else null!=t.control&&(t.control.destroy(),t.control=null)},mxCellRenderer.prototype.initControl=function(n,e,t,a){var i=n.view.graph;return i.isHtmlLabel(n.cell)&&mxClient.NO_FO&&i.dialect==mxConstants.DIALECT_SVG?(e.dialect=mxConstants.DIALECT_PREFERHTML,e.init(i.container),e.node.style.zIndex=1):e.init(n.view.getOverlayPane()),e=e.innerNode||e.node,a&&(i.isEnabled()&&(e.style.cursor="pointer"),mxEvent.addListener(e,"click",a)),t&&mxEvent.addGestureListeners(e,function(e){i.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e,n)),mxEvent.consume(e)},function(e){i.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,n))}),e},mxCellRenderer.prototype.isShapeEvent=function(e,n){return!0},mxCellRenderer.prototype.isLabelEvent=function(e,n){return!0},mxCellRenderer.prototype.installListeners=function(t){var a=t.view.graph,n=function(e){var n=t;return(a.dialect!=mxConstants.DIALECT_SVG&&"IMG"==mxEvent.getSource(e).nodeName||mxClient.IS_TOUCH)&&(n=mxEvent.getClientX(e),e=mxEvent.getClientY(e),e=mxUtils.convertPoint(a.container,n,e),n=a.view.getState(a.getCellAt(e.x,e.y))),n},i=!1;mxEvent.addListener(t.shape.node,"gesturestart",mxUtils.bind(this,function(e){a.lastTouchTime=0,i=!0,mxEvent.consume(e)})),mxEvent.addGestureListeners(t.shape.node,mxUtils.bind(this,function(e){this.isShapeEvent(t,e)&&!i?a.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e,null!=t.shape&&mxEvent.getSource(e)==t.shape.content?null:t)):i&&mxEvent.consume(e)}),mxUtils.bind(this,function(e){this.isShapeEvent(t,e)&&!i?a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,null!=t.shape&&mxEvent.getSource(e)==t.shape.content?null:n(e))):i&&mxEvent.consume(e)}),mxUtils.bind(this,function(e){this.isShapeEvent(t,e)&&!i?a.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e,null!=t.shape&&mxEvent.getSource(e)==t.shape.content?null:n(e))):i&&mxEvent.consume(e)}));var s=mxClient.IS_TOUCH?"gestureend":"dblclick";mxEvent.addListener(t.shape.node,s,mxUtils.bind(this,function(e){i=!1,"gestureend"==s?(a.lastTouchTime=0,a.gestureEnabled&&(a.handleGesture(t,e),mxEvent.consume(e))):this.isShapeEvent(t,e)&&(a.dblClick(e,null!=t.shape&&mxEvent.getSource(e)==t.shape.content?null:t.cell),mxEvent.consume(e))}))},mxCellRenderer.prototype.redrawLabel=function(e,n){var t=this.getLabelValue(e);if(null==e.text&&null!=t&&(mxUtils.isNode(t)||0<t.length)?this.createLabel(e,t):null==e.text||null!=t&&0!=t.length||(e.text.destroy(),e.text=null),null!=e.text){var a=(i=e.view.graph).isWrapping(e.cell),i=i.isLabelClipped(e.cell),s=this.getLabelBounds(e);!n&&e.text.value==t&&e.text.isWrapping==a&&e.text.isClipping==i&&e.text.scale==e.view.scale&&e.text.bounds.equals(s)||(e.text.value=t,e.text.bounds=s,e.text.scale=this.getTextScale(e),e.text.isWrapping=a,e.text.isClipping=i,e.text.redraw())}},mxCellRenderer.prototype.getTextScale=function(e){return e.view.scale},mxCellRenderer.prototype.getLabelBounds=function(e){var n=e.view.graph,t=e.view.scale,a=n.getModel().isEdge(e.cell),i=new mxRectangle(e.absoluteOffset.x,e.absoluteOffset.y);return e.text.updateMargin(),a?(a=e.text.getSpacing(),i.x+=a.x*t,i.y+=a.y*t,null!=(n=n.getCellGeometry(e.cell))&&(i.width=Math.max(0,e.text.margin.x*n.width*t-e.text.spacingLeft*t-e.text.spacingRight*t),i.height=Math.max(0,e.text.margin.y*n.height*t-e.text.spacingTop*t-e.text.spacingBottom*t))):(e.text.isPaintBoundsInverted()&&(a=i.x,i.x=i.y,i.y=a),i.x+=e.x,i.y+=e.y,i.width=Math.max(1,e.width),i.height=Math.max(1,e.height),n.isSwimlane(e.cell)&&(0<(n=n.getStartSize(e.cell)).width?(a=Math.min(i.width,n.width*t),e.shape.flipH&&(i.x+=i.width-a),i.width=a):0<n.height&&(a=Math.min(i.height,n.height*t),e.shape.flipV&&(i.y+=i.height-a),i.height=a)),this.rotateLabelBounds(e,i)),i},mxCellRenderer.prototype.rotateLabelBounds=function(e,n){if(e.text.isPaintBoundsInverted()){var t=(e.width-e.height)/2;n.x+=t,n.y-=t,t=n.width,n.width=n.height,n.height=t}if(n.x-=e.text.margin.x*n.width,n.y-=e.text.margin.y*n.height,"fill"!=e.style[mxConstants.STYLE_OVERFLOW]){t=e.view.scale;var a=e.text.getSpacing();n.x+=a.x*t,n.y+=a.y*t,n.width=Math.max(0,n.width-e.text.spacingLeft*t-e.text.spacingRight*t),n.height=Math.max(0,n.height-e.text.spacingTop*t-e.text.spacingBottom*t)}var i=e.text.getTextRotation();0!=i&&null!=e&&e.view.graph.model.isVertex(e.cell)&&(t=e.getCenterX(),a=e.getCenterY(),n.x!=t||n.y!=a)&&(i*=Math.PI/180,pt=mxUtils.getRotatedPoint(new mxPoint(n.x,n.y),Math.cos(i),Math.sin(i),new mxPoint(t,a)),n.x=pt.x,n.y=pt.y)},mxCellRenderer.prototype.redrawCellOverlays=function(s,o){if(this.createCellOverlays(s),null!=s.overlays){var r=mxUtils.mod(mxUtils.getValue(s.style,mxConstants.STYLE_ROTATION,0),90),e=mxUtils.toRadians(r),l=Math.cos(e),d=Math.sin(e);s.overlays.visit(function(e,n){var t=n.overlay.getBounds(s);if(!s.view.graph.getModel().isEdge(s.cell)&&null!=s.shape&&0!=r){var a=t.getCenterX(),i=t.getCenterY();a=(i=mxUtils.getRotatedPoint(new mxPoint(a,i),l,d,new mxPoint(s.getCenterX(),s.getCenterY()))).x,i=i.y;t.x=Math.round(a-t.width/2),t.y=Math.round(i-t.height/2)}!o&&null!=n.bounds&&n.scale==s.view.scale&&n.bounds.equals(t)||(n.bounds=t,n.scale=s.view.scale,n.redraw())})}},mxCellRenderer.prototype.redrawControl=function(e,n){if(null!=e.control){var t=this.getControlBounds(e),a=this.legacyControlPosition?mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION,0):e.shape.getTextRotation(),i=e.view.scale;!n&&e.control.scale==i&&e.control.bounds.equals(t)&&e.control.rotation==a||(e.control.rotation=a,e.control.bounds=t,e.control.scale=i,e.control.redraw())}},mxCellRenderer.prototype.getControlBounds=function(e){if(null==e.control)return null;var n=e.control.scale,t=e.control.bounds.width/n,a=(n=e.control.bounds.height/n,e.view.scale),i=e.getCenterX(),s=e.getCenterY();if(!e.view.graph.getModel().isEdge(e.cell)&&(i=e.x+t*a,s=e.y+n*a,null!=e.shape)){var o=e.shape.getShapeRotation();if(this.legacyControlPosition)o=mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION,0);else if(e.shape.isPaintBoundsInverted()){var r=(e.width-e.height)/2;i=i+r,s=s-r}0!=o&&(r=mxUtils.toRadians(o),o=Math.cos(r),r=Math.sin(r),i=(s=mxUtils.getRotatedPoint(new mxPoint(i,s),o,r,new mxPoint(e.getCenterX(),e.getCenterY()))).x,s=s.y)}return e.view.graph.getModel().isEdge(e.cell),new mxRectangle(Math.round(i-t/2*a),Math.round(s-n/2*a),Math.round(t*a),Math.round(n*a))},mxCellRenderer.prototype.redraw=function(e,n,t){if(null!=e.shape){var a=!1;e.view.graph.getModel().isEdge(e.cell),reconfigure=null!=n&&n,this.createControl(e),(e.orderChanged||e.invalidOrder)&&(e.view.graph.ordered?this.order(e):this.orderEdge(e)),!e.orderChanged&&mxUtils.equalEntries(e.shape.style,e.style)||(this.configureShape(e),n=!0),delete e.invalidOrder,delete e.orderChanged,!n&&null!=e.shape.bounds&&e.shape.scale==e.view.scale&&e.shape.bounds.equals(e)&&mxUtils.equalPoints(e.shape.points,e.absolutePoints)||(a=!0,e.shape.points=null!=e.absolutePoints?e.absolutePoints.slice():null,e.shape.bounds=new mxRectangle(e.x,e.y,e.width,e.height),e.shape.scale=e.view.scale,null==t||t?e.shape.redraw():e.shape.updateBoundingBox()),(null==t||t)&&(this.redrawLabel(e,a),this.redrawCellOverlays(e,a),this.redrawControl(e,a))}},mxCellRenderer.prototype.destroy=function(e){null!=e.shape&&(null!=e.text&&(e.text.destroy(),e.text=null),null!=e.overlays&&(e.overlays.visit(function(e,n){n.destroy()}),e.overlays=null),null!=e.control&&(e.control.destroy(),e.control=null),e.shape.destroy(),e.shape=null)};var mxEdgeStyle={EntityRelation:function(e,n,t,a,i){var s=e.view,o=s.graph;a=mxUtils.getValue(e.style,mxConstants.STYLE_SEGMENT,mxConstants.ENTITY_SEGMENT)*s.scale;var r=(d=e.absolutePoints)[0],l=d[d.length-1],d=!1;if(null!=r)(n=new mxCellState).x=r.x,n.y=r.y;else{if(null==n)return;var c=mxUtils.getPortConstraints(n,e,!0,mxConstants.DIRECTION_MASK_NONE);c!=mxConstants.DIRECTION_MASK_NONE?d=c==mxConstants.DIRECTION_MASK_WEST:(r=o.getCellGeometry(n.cell)).relative?d=r.x<=.5:null!=t&&(d=t.x+t.width<n.x)}r=!0,null!=l?((t=new mxCellState).x=l.x,t.y=l.y):null!=t&&((c=mxUtils.getPortConstraints(t,e,!1,mxConstants.DIRECTION_MASK_NONE))!=mxConstants.DIRECTION_MASK_NONE?r=c==mxConstants.DIRECTION_MASK_WEST:(e=o.getCellGeometry(t.cell)).relative?r=e.x<=.5:null!=n&&(r=n.x+n.width<t.x)),null!=n&&null!=t&&(e=d?n.x:n.x+n.width,n=s.getRoutingCenterY(n),o=r?t.x:t.x+t.width,t=s.getRoutingCenterY(t),s=new mxPoint(e+(d?-a:a),n),l=new mxPoint(o+(r?-a:a),t),d==r?(a=d?Math.min(e,o)-a:Math.max(e,o)+a,i.push(new mxPoint(a,n)),i.push(new mxPoint(a,t))):(s.x<l.x==d?(a=n+(t-n)/2,i.push(s),i.push(new mxPoint(s.x,a)),i.push(new mxPoint(l.x,a))):i.push(s),i.push(l)))},Loop:function(e,n,t,a,i){if(null!=n){var s=(t=e.view).graph;null!=(a=null!=a&&0<a.length?a[0]:null)&&(a=t.transformControlPoint(e,a),mxUtils.contains(n,a.x,a.y)&&(a=null));var o=0,r=0,l=0,d=0;s=mxUtils.getValue(e.style,mxConstants.STYLE_SEGMENT,s.gridSize)*t.scale;(e=mxUtils.getValue(e.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_WEST))==mxConstants.DIRECTION_NORTH||e==mxConstants.DIRECTION_SOUTH?(o=t.getRoutingCenterX(n),r=s):(l=t.getRoutingCenterY(n),d=s),null==a||a.x<n.x||a.x>n.x+n.width?null!=a?(o=a.x,d=Math.max(Math.abs(l-a.y),d)):e==mxConstants.DIRECTION_NORTH?l=n.y-2*r:e==mxConstants.DIRECTION_SOUTH?l=n.y+n.height+2*r:o=e==mxConstants.DIRECTION_EAST?n.x-2*d:n.x+n.width+2*d:null!=a&&(o=t.getRoutingCenterX(n),r=Math.max(Math.abs(o-a.x),d),l=a.y,d=0),i.push(new mxPoint(o-r,l-d)),i.push(new mxPoint(o+r,l+d))}},ElbowConnector:function(e,n,t,a,i){var s=null!=a&&0<a.length?a[0]:null,o=!1,r=!1;if(null!=n&&null!=t)if(null!=s){var l=Math.min(n.x,t.x),d=Math.max(n.x+n.width,t.x+t.width),c=(r=Math.min(n.y,t.y),Math.max(n.y+n.height,t.y+t.height));o=(s=e.view.transformControlPoint(e,s)).y<r||s.y>c,r=s.x<l||s.x>d}else(o=(l=Math.max(n.x,t.x))==(d=Math.min(n.x+n.width,t.x+t.width)))||(r=(r=Math.max(n.y,t.y))==(c=Math.min(n.y+n.height,t.y+t.height)));r||!o&&e.style[mxConstants.STYLE_ELBOW]!=mxConstants.ELBOW_VERTICAL?mxEdgeStyle.SideToSide(e,n,t,a,i):mxEdgeStyle.TopToBottom(e,n,t,a,i)},SideToSide:function(e,n,t,a,i){var s=e.view;a=null!=a&&0<a.length?a[0]:null;var o=(r=e.absolutePoints)[0],r=r[r.length-1];null!=a&&(a=s.transformControlPoint(e,a)),null!=o&&((n=new mxCellState).x=o.x,n.y=o.y),null!=r&&((t=new mxCellState).x=r.x,t.y=r.y),null!=n&&null!=t&&(e=Math.max(n.x,t.x),o=Math.min(n.x+n.width,t.x+t.width),e=null!=a?a.x:o+(e-o)/2,o=s.getRoutingCenterY(n),s=s.getRoutingCenterY(t),null!=a&&(a.y>=n.y&&a.y<=n.y+n.height&&(o=a.y),a.y>=t.y&&a.y<=t.y+t.height&&(s=a.y)),!mxUtils.contains(t,e,o)&&!mxUtils.contains(n,e,o)&&i.push(new mxPoint(e,o)),!mxUtils.contains(t,e,s)&&!mxUtils.contains(n,e,s)&&i.push(new mxPoint(e,s)),1==i.length&&(null!=a?!mxUtils.contains(t,e,a.y)&&!mxUtils.contains(n,e,a.y)&&i.push(new mxPoint(e,a.y)):(s=Math.max(n.y,t.y),n=Math.min(n.y+n.height,t.y+t.height),i.push(new mxPoint(e,s+(n-s)/2)))))},TopToBottom:function(e,n,t,a,i){var s=e.view;a=null!=a&&0<a.length?a[0]:null;var o=(r=e.absolutePoints)[0],r=r[r.length-1];null!=a&&(a=s.transformControlPoint(e,a)),null!=o&&((n=new mxCellState).x=o.x,n.y=o.y),null!=r&&((t=new mxCellState).x=r.x,t.y=r.y),null!=n&&null!=t&&(o=Math.max(n.y,t.y),r=Math.min(n.y+n.height,t.y+t.height),e=s.getRoutingCenterX(n),null!=a&&a.x>=n.x&&a.x<=n.x+n.width&&(e=a.x),o=null!=a?a.y:r+(o-r)/2,!mxUtils.contains(t,e,o)&&!mxUtils.contains(n,e,o)&&i.push(new mxPoint(e,o)),e=null!=a&&a.x>=t.x&&a.x<=t.x+t.width?a.x:s.getRoutingCenterX(t),!mxUtils.contains(t,e,o)&&!mxUtils.contains(n,e,o)&&i.push(new mxPoint(e,o)),1==i.length&&(null!=a&&1==i.length?!mxUtils.contains(t,a.x,o)&&!mxUtils.contains(n,a.x,o)&&i.push(new mxPoint(a.x,o)):(s=Math.max(n.x,t.x),n=Math.min(n.x+n.width,t.x+t.width),i.push(new mxPoint(s+(n-s)/2,o)))))},SegmentConnector:function(e,n,t,a,i){var s=e.absolutePoints,o=!0,r=null,l=s[0];null==l&&null!=n?l=new mxPoint(e.view.getRoutingCenterX(n),e.view.getRoutingCenterY(n)):null!=l&&(l=l.clone());var d=s.length-1;if(null!=a&&0<a.length){r=e.view.transformControlPoint(e,a[0]);for(var c=n,m=s[0],u=!1,p=!1,g=(u=r,a.length),v=0;v<2;v++){var h=null!=m&&m.x==u.x,f=null!=m&&m.y==u.y,b=null!=c&&u.y>=c.y&&u.y<=c.y+c.height;c=null!=c&&u.x>=c.x&&u.x<=c.x+c.width,u=f||null==m&&b,p=h||null==m&&c;if(null!=m&&!f&&!h&&(b||c)){o=!b;break}if(p||u){o=u,1==v&&(o=0==a.length%2?u:p);break}c=t,m=s[d],u=e.view.transformControlPoint(e,a[g-1])}for(o&&(null!=s[0]&&s[0].y!=r.y||null==s[0]&&null!=n&&(r.y<n.y||r.y>n.y+n.height))?i.push(new mxPoint(l.x,r.y)):!o&&(null!=s[0]&&s[0].x!=r.x||null==s[0]&&null!=n&&(r.x<n.x||r.x>n.x+n.width))&&i.push(new mxPoint(r.x,l.y)),o?l.y=r.y:l.x=r.x,v=0;v<a.length;v++)o=!o,r=e.view.transformControlPoint(e,a[v]),o?l.y=r.y:l.x=r.x,i.push(l.clone())}else r=l,o=!0;if(null==(l=s[d])&&null!=t&&(l=new mxPoint(e.view.getRoutingCenterX(t),e.view.getRoutingCenterY(t))),o&&(null!=s[d]&&s[d].y!=r.y||null==s[d]&&null!=t&&(r.y<t.y||r.y>t.y+t.height))?i.push(new mxPoint(l.x,r.y)):!o&&(null!=s[d]&&s[d].x!=r.x||null==s[d]&&null!=t&&(r.x<t.x||r.x>t.x+t.width))&&i.push(new mxPoint(r.x,l.y)),null==s[0]&&null!=n)for(;1<i.length&&mxUtils.contains(n,i[1].x,i[1].y);)i=i.splice(1,1);if(null==s[d]&&null!=t)for(;1<i.length&&mxUtils.contains(t,i[i.length-1].x,i[i.length-1].y);)i=i.splice(i.length-1,1)},orthBuffer:10,dirVectors:[[-1,0],[0,-1],[1,0],[0,1],[-1,0],[0,-1],[1,0]],wayPoints1:[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],routePatterns:[[[513,2308,2081,2562],[513,1090,514,2184,2114,2561],[513,1090,514,2564,2184,2562],[513,2308,2561,1090,514,2568,2308]],[[514,1057,513,2308,2081,2562],[514,2184,2114,2561],[514,2184,2562,1057,513,2564,2184],[514,1057,513,2568,2308,2561]],[[1090,514,1057,513,2308,2081,2562],[2114,2561],[1090,2562,1057,513,2564,2184],[1090,514,1057,513,2308,2561,2568]],[[2081,2562],[1057,513,1090,514,2184,2114,2561],[1057,513,1090,514,2184,2562,2564],[1057,2561,1090,514,2568,2308]]],inlineRoutePatterns:[[null,[2114,2568],null,null],[null,[514,2081,2114,2568],null,null],[null,[2114,2561],null,null],[[2081,2562],[1057,2114,2568],[2184,2562],null]],vertexSeperations:[],limits:[[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0]],LEFT_MASK:32,TOP_MASK:64,RIGHT_MASK:128,BOTTOM_MASK:256,LEFT:1,TOP:2,RIGHT:4,BOTTOM:8,SIDE_MASK:480,CENTER_MASK:512,SOURCE_MASK:1024,TARGET_MASK:2048,VERTEX_MASK:3072,OrthConnector:function(e,n,t,a,i){var s=e.view.graph,o=null!=n&&s.getModel().isEdge(n.cell);s=null!=t&&s.getModel().isEdge(t.cell);if(null!=a&&0<a.length||o||s)mxEdgeStyle.SegmentConnector(e,n,t,a,i);else{var r=(a=e.absolutePoints)[0],l=a[a.length-1];a=null!=n?n.x:r.x;o=null!=n?n.y:r.y;var d=null!=n?n.width:1,c=null!=n?n.height:1,m=null!=t?t.x:l.x,u=null!=t?t.y:l.y,p=null!=t?t.width:1,g=null!=t?t.height:1,v=(s=e.view.scale*mxEdgeStyle.orthBuffer,[mxConstants.DIRECTION_MASK_ALL,mxConstants.DIRECTION_MASK_ALL]);for(null!=n&&(v[0]=mxUtils.getPortConstraints(n,e,!0,mxConstants.DIRECTION_MASK_ALL)),null!=t&&(v[1]=mxUtils.getPortConstraints(t,e,!1,mxConstants.DIRECTION_MASK_ALL)),e=[0,0],a=[[a,o,d,c],[m,u,p,g]],d=0;d<2;d++)mxEdgeStyle.limits[d][1]=a[d][0]-s,mxEdgeStyle.limits[d][2]=a[d][1]-s,mxEdgeStyle.limits[d][4]=a[d][0]+a[d][2]+s,mxEdgeStyle.limits[d][8]=a[d][1]+a[d][3]+s;for(d=a[0][0]+a[0][2]/2-(a[1][0]+a[1][2]/2),c=a[0][1]+a[0][3]/2-(a[1][1]+a[1][3]/2),d<(o=0)?o=c<0?2:1:c<=0&&(o=3,0==d&&(o=2)),(c=null)!=n&&(c=r),n=[[.5,.5],[.5,.5]],d=0;d<2;d++)null!=c&&(n[d][0]=(c.x-a[d][0])/a[d][2],n[d][0]<.01?e[d]=mxConstants.DIRECTION_MASK_WEST:.99<n[d][0]&&(e[d]=mxConstants.DIRECTION_MASK_EAST),n[d][1]=(c.y-a[d][1])/a[d][3],n[d][1]<.01?e[d]=mxConstants.DIRECTION_MASK_NORTH:.99<n[d][1]&&(e[d]=mxConstants.DIRECTION_MASK_SOUTH)),(c=null)!=t&&(c=l);for(d=a[0][1]-(a[1][1]+a[1][3]),c=a[0][0]-(a[1][0]+a[1][2]),m=a[1][1]-(a[0][1]+a[0][3]),u=a[1][0]-(a[0][0]+a[0][2]),mxEdgeStyle.vertexSeperations[1]=Math.max(c-2*s,0),mxEdgeStyle.vertexSeperations[2]=Math.max(d-2*s,0),mxEdgeStyle.vertexSeperations[4]=Math.max(m-2*s,0),mxEdgeStyle.vertexSeperations[3]=Math.max(u-2*s,0),t=[],l=[],(r=[])[0]=u<=c?mxConstants.DIRECTION_MASK_WEST:mxConstants.DIRECTION_MASK_EAST,l[0]=m<=d?mxConstants.DIRECTION_MASK_NORTH:mxConstants.DIRECTION_MASK_SOUTH,r[1]=mxUtils.reversePortConstraints(r[0]),l[1]=mxUtils.reversePortConstraints(l[0]),c=u<=c?c:u,m=m<=d?d:m,p=!(u=[[0,0],[0,0]]),d=0;d<2;d++)0==e[d]&&(0==(r[d]&v[d])&&(r[d]=mxUtils.reversePortConstraints(r[d])),0==(l[d]&v[d])&&(l[d]=mxUtils.reversePortConstraints(l[d])),u[d][0]=l[d],u[d][1]=r[d]);for(2*s<m&&2*s<c&&(0<(r[0]&v[0])&&0<(l[1]&v[1])?(u[0][0]=r[0],u[0][1]=l[0],u[1][0]=l[1],u[1][1]=r[1],p=!0):0<(l[0]&v[0])&&0<(r[1]&v[1])&&(u[0][0]=l[0],u[0][1]=r[0],u[1][0]=r[1],u[1][1]=l[1],p=!0)),2*s<m&&!p&&(u[0][0]=l[0],u[0][1]=r[0],u[1][0]=l[1],u[1][1]=r[1],p=!0),2*s<c&&!p&&(u[0][0]=r[0],u[0][1]=l[0],u[1][0]=r[1],u[1][1]=l[1]),d=0;d<2;d++)0==e[d]&&(0==(u[d][0]&v[d])&&(u[d][0]=u[d][1]),t[d]=u[d][0]&v[d],t[d]|=(u[d][1]&v[d])<<8,t[d]|=(u[1-d][d]&v[d])<<16,t[d]|=(u[1-d][1-d]&v[d])<<24,0==(15&t[d])&&(t[d]<<=8),0==(3840&t[d])&&(t[d]=15&t[d]|t[d]>>8),0==(983040&t[d])&&(t[d]=65535&t[d]|(251658240&t[d])>>8),e[d]=15&t[d],v[d]==mxConstants.DIRECTION_MASK_WEST||v[d]==mxConstants.DIRECTION_MASK_NORTH||v[d]==mxConstants.DIRECTION_MASK_EAST||v[d]==mxConstants.DIRECTION_MASK_SOUTH)&&(e[d]=v[d]);switch(d=e[0]==mxConstants.DIRECTION_MASK_EAST?3:e[0],v=e[1]==mxConstants.DIRECTION_MASK_EAST?3:e[1],(d-=o)<1&&(d+=4),(v-=o)<1&&(v+=4),v=mxEdgeStyle.routePatterns[d-1][v-1],mxEdgeStyle.wayPoints1[0][0]=a[0][0],mxEdgeStyle.wayPoints1[0][1]=a[0][1],e[0]){case mxConstants.DIRECTION_MASK_WEST:mxEdgeStyle.wayPoints1[0][0]-=s,mxEdgeStyle.wayPoints1[0][1]+=n[0][1]*a[0][3];break;case mxConstants.DIRECTION_MASK_SOUTH:mxEdgeStyle.wayPoints1[0][0]+=n[0][0]*a[0][2],mxEdgeStyle.wayPoints1[0][1]+=a[0][3]+s;break;case mxConstants.DIRECTION_MASK_EAST:mxEdgeStyle.wayPoints1[0][0]+=a[0][2]+s,mxEdgeStyle.wayPoints1[0][1]+=n[0][1]*a[0][3];break;case mxConstants.DIRECTION_MASK_NORTH:mxEdgeStyle.wayPoints1[0][0]+=n[0][0]*a[0][2],mxEdgeStyle.wayPoints1[0][1]-=s}for(r=t=(s=0)<(e[0]&(mxConstants.DIRECTION_MASK_EAST|mxConstants.DIRECTION_MASK_WEST))?0:1,d=l=0;d<v.length;d++){g=(l=15&v[d])==mxConstants.DIRECTION_MASK_EAST?3:l,4<(g+=o)&&(g-=4),c=mxEdgeStyle.dirVectors[g-1],(l=0<g%2?0:1)!=t&&(s++,mxEdgeStyle.wayPoints1[s][0]=mxEdgeStyle.wayPoints1[s-1][0],mxEdgeStyle.wayPoints1[s][1]=mxEdgeStyle.wayPoints1[s-1][1]);var h=0<(v[d]&mxEdgeStyle.TARGET_MASK);p=0<(v[d]&mxEdgeStyle.SOURCE_MASK);15<(m=(m=(v[d]&mxEdgeStyle.SIDE_MASK)>>5)<<o)&&(m>>=4),u=0<(v[d]&mxEdgeStyle.CENTER_MASK),(p||h)&&m<9?(g=0,p=p?0:1,g=u&&0==l?a[p][0]+n[p][0]*a[p][2]:u?a[p][1]+n[p][1]*a[p][3]:mxEdgeStyle.limits[p][m],0==l?0<(m=(g-mxEdgeStyle.wayPoints1[s][0])*c[0])&&(mxEdgeStyle.wayPoints1[s][0]+=c[0]*m):0<(m=(g-mxEdgeStyle.wayPoints1[s][1])*c[1])&&(mxEdgeStyle.wayPoints1[s][1]+=c[1]*m)):u&&(mxEdgeStyle.wayPoints1[s][0]+=c[0]*Math.abs(mxEdgeStyle.vertexSeperations[g]/2),mxEdgeStyle.wayPoints1[s][1]+=c[1]*Math.abs(mxEdgeStyle.vertexSeperations[g]/2)),0<s&&mxEdgeStyle.wayPoints1[s][l]==mxEdgeStyle.wayPoints1[s-1][l]?s--:t=l}for(d=0;d<=s&&(d!=s||((0<(e[1]&(mxConstants.DIRECTION_MASK_EAST|mxConstants.DIRECTION_MASK_WEST))?0:1)==r?0:1)==(s+1)%2);d++)i.push(new mxPoint(mxEdgeStyle.wayPoints1[d][0],mxEdgeStyle.wayPoints1[d][1]))}},getRoutePattern:function(e,n,t,a){var i=e[0]==mxConstants.DIRECTION_MASK_EAST?3:e[0];return e=e[1]==mxConstants.DIRECTION_MASK_EAST?3:e[1],(i-=n)<1&&(i+=4),(e-=n)<1&&(e+=4),n=routePatterns[i-1][e-1],0!=t&&0!=a||null!=inlineRoutePatterns[i-1][e-1]&&(n=inlineRoutePatterns[i-1][e-1]),n}},mxStyleRegistry={values:[],putValue:function(e,n){mxStyleRegistry.values[e]=n},getValue:function(e){return mxStyleRegistry.values[e]},getName:function(e){for(var n in mxStyleRegistry.values)if(mxStyleRegistry.values[n]==e)return n;return null}};function mxGraphView(e){this.graph=e,this.translate=new mxPoint,this.graphBounds=new mxRectangle,this.states=new mxDictionary}function mxCurrentRootChange(e,n){if(this.view=e,this.previous=this.root=n,this.isUp=null==n,!this.isUp)for(var t=this.view.currentRoot,a=this.view.graph.getModel();null!=t;){if(t==n){this.isUp=!0;break}t=a.getParent(t)}}function mxGraph(e,n,t,a){this.mouseListeners=null,this.renderHint=t,this.dialect=mxClient.IS_SVG?mxConstants.DIALECT_SVG:t==mxConstants.RENDERING_HINT_EXACT&&mxClient.IS_VML?mxConstants.DIALECT_VML:t==mxConstants.RENDERING_HINT_FASTEST?mxConstants.DIALECT_STRICTHTML:t==mxConstants.RENDERING_HINT_FASTER?mxConstants.DIALECT_PREFERHTML:mxConstants.DIALECT_MIXEDHTML,this.model=null!=n?n:new mxGraphModel,this.multiplicities=[],this.imageBundles=[],this.cellRenderer=this.createCellRenderer(),this.setSelectionModel(this.createSelectionModel()),this.setStylesheet(null!=a?a:this.createStylesheet()),this.view=this.createGraphView(),this.graphModelChangeListener=mxUtils.bind(this,function(e,n){this.graphModelChanged(n.getProperty("edit").changes)}),this.model.addListener(mxEvent.CHANGE,this.graphModelChangeListener),this.createHandlers(),null!=e&&this.init(e),this.view.revalidate()}function mxCellOverlay(e,n,t,a,i,s){this.image=e,this.tooltip=n,this.align=null!=t?t:this.align,this.verticalAlign=null!=a?a:this.verticalAlign,this.offset=null!=i?i:new mxPoint,this.cursor=null!=s?s:"help"}function mxOutline(e,n){this.source=e,null!=n&&this.init(n)}function mxMultiplicity(e,n,t,a,i,s,o,r,l,d){this.source=e,this.type=n,this.attr=t,this.value=a,this.min=null!=i?i:0,this.max=null!=s?s:"n",this.validNeighbors=o,this.countError=mxResources.get(r)||r,this.typeError=mxResources.get(l)||l,this.validNeighborsAllowed=null==d||d}function mxLayoutManager(e){this.undoHandler=mxUtils.bind(this,function(e,n){this.isEnabled()&&this.beforeUndo(n.getProperty("edit"))}),this.moveHandler=mxUtils.bind(this,function(e,n){this.isEnabled()&&this.cellsMoved(n.getProperty("cells"),n.getProperty("event"))}),this.setGraph(e)}function mxSpaceManager(e,n,t,a){this.resizeHandler=mxUtils.bind(this,function(e,n){this.isEnabled()&&this.cellsResized(n.getProperty("cells"))}),this.foldHandler=mxUtils.bind(this,function(e,n){this.isEnabled()&&this.cellsResized(n.getProperty("cells"))}),this.shiftRightwards=null==n||n,this.shiftDownwards=null==t||t,this.extendParents=null==a||a,this.setGraph(e)}function mxSwimlaneManager(e,n,t,a){this.horizontal=null==n||n,this.addEnabled=null==t||t,this.resizeEnabled=null==a||a,this.addHandler=mxUtils.bind(this,function(e,n){this.isEnabled()&&this.isAddEnabled()&&this.cellsAdded(n.getProperty("cells"))}),this.resizeHandler=mxUtils.bind(this,function(e,n){this.isEnabled()&&this.isResizeEnabled()&&this.cellsResized(n.getProperty("cells"))}),this.setGraph(e)}function mxTemporaryCellStates(e,n,t){if(this.view=e,n=null!=n?n:1,this.oldBounds=e.getGraphBounds(),this.oldStates=e.getStates(),this.oldScale=e.getScale(),e.setStates(new mxDictionary),e.setScale(n),null!=t){n=e.createState(new mxCell);for(var a=0;a<t.length;a++)e.validateBounds(n,t[a]);var i=null;for(a=0;a<t.length;a++){var s=e.validatePoints(n,t[a]);null==i?i=s:i.add(s)}null==i&&(i=new mxRectangle),e.setGraphBounds(i)}}function mxCellStatePreview(e){this.graph=e,this.deltas={}}function mxConnectionConstraint(e,n){this.point=e,this.perimeter=null==n||n}function mxGraphHandler(e){this.graph=e,this.graph.addMouseListener(this),this.panHandler=mxUtils.bind(this,function(){this.updatePreviewShape()}),this.graph.addListener(mxEvent.PAN,this.panHandler)}function mxPanningHandler(e,n){null!=e&&(this.graph=e,this.factoryMethod=n,this.graph.addMouseListener(this),this.init())}function mxCellMarker(e,n,t,a){mxEventSource.call(this),null!=e&&(this.graph=e,this.validColor=null!=n?n:mxConstants.DEFAULT_VALID_COLOR,this.invalidColor=null!=n?t:mxConstants.DEFAULT_INVALID_COLOR,this.hotspot=null!=a?a:mxConstants.DEFAULT_HOTSPOT,this.highlight=new mxCellHighlight(e))}function mxSelectionCellsHandler(e){mxEventSource.call(this),this.graph=e,this.handlers=new mxDictionary,this.graph.addMouseListener(this),this.refreshHandler=mxUtils.bind(this,function(e,n){this.isEnabled()&&this.refresh()}),this.graph.getSelectionModel().addListener(mxEvent.CHANGE,this.refreshHandler),this.graph.getModel().addListener(mxEvent.CHANGE,this.refreshHandler),this.graph.getView().addListener(mxEvent.SCALE,this.refreshHandler),this.graph.getView().addListener(mxEvent.TRANSLATE,this.refreshHandler),this.graph.getView().addListener(mxEvent.SCALE_AND_TRANSLATE,this.refreshHandler),this.graph.getView().addListener(mxEvent.DOWN,this.refreshHandler),this.graph.getView().addListener(mxEvent.UP,this.refreshHandler)}function mxConnectionHandler(e,n){mxEventSource.call(this),null!=e&&(this.graph=e,this.factoryMethod=n,this.init())}function mxConstraintHandler(e){this.graph=e}function mxRubberband(e){null!=e&&(this.graph=e,this.graph.addMouseListener(this),this.panHandler=mxUtils.bind(this,function(){this.repaint()}),this.graph.addListener(mxEvent.PAN,this.panHandler),mxClient.IS_IE&&mxEvent.addListener(window,"unload",mxUtils.bind(this,function(){this.destroy()})))}function mxVertexHandler(e){null!=e&&(this.state=e,this.init())}function mxEdgeHandler(e){null!=e&&(this.state=e,this.init())}function mxElbowEdgeHandler(e){mxEdgeHandler.call(this,e)}function mxEdgeSegmentHandler(e){mxEdgeHandler.call(this,e)}function mxKeyHandler(e,n){null!=e&&(this.graph=e,this.target=n||document.documentElement,this.normalKeys=[],this.shiftKeys=[],this.controlKeys=[],this.controlShiftKeys=[],mxEvent.addListener(this.target,"keydown",mxUtils.bind(this,function(e){this.keyDown(e)})),mxClient.IS_IE&&mxEvent.addListener(window,"unload",mxUtils.bind(this,function(){this.destroy()})))}function mxTooltipHandler(e,n){null!=e&&(this.graph=e,this.delay=n||500,this.graph.addMouseListener(this))}function mxCellTracker(e,n,t){mxCellMarker.call(this,e,n),this.graph.addMouseListener(this),null!=t&&(this.getCell=t),mxClient.IS_IE&&mxEvent.addListener(window,"unload",mxUtils.bind(this,function(){this.destroy()}))}function mxCellHighlight(e,n,t,a){null!=e&&(this.graph=e,this.highlightColor=null!=n?n:mxConstants.DEFAULT_VALID_COLOR,this.strokeWidth=null!=t?t:mxConstants.HIGHLIGHT_STROKEWIDTH,this.dashed=null!=a&&a,this.repaintHandler=mxUtils.bind(this,function(){this.repaint()}),this.graph.getView().addListener(mxEvent.SCALE,this.repaintHandler),this.graph.getView().addListener(mxEvent.TRANSLATE,this.repaintHandler),this.graph.getView().addListener(mxEvent.SCALE_AND_TRANSLATE,this.repaintHandler),this.graph.getModel().addListener(mxEvent.CHANGE,this.repaintHandler),this.resetHandler=mxUtils.bind(this,function(){this.hide()}),this.graph.getView().addListener(mxEvent.DOWN,this.resetHandler),this.graph.getView().addListener(mxEvent.UP,this.resetHandler))}function mxDefaultKeyHandler(n){if(null!=n){this.editor=n,this.handler=new mxKeyHandler(n.graph);var t=this.handler.escape;this.handler.escape=function(e){t.apply(this,arguments),n.hideProperties(),n.fireEvent(new mxEventObject(mxEvent.ESCAPE,"event",e))}}}function mxDefaultPopupMenu(e){this.config=e}function mxDefaultToolbar(e,n){this.editor=n,null!=e&&null!=n&&this.init(e)}function mxEditor(e){this.actions=[],this.addActions(),null!=document.body&&(this.cycleAttributeValues=[],this.popupHandler=new mxDefaultPopupMenu,this.undoManager=new mxUndoManager,this.graph=this.createGraph(),this.toolbar=this.createToolbar(),this.keyHandler=new mxDefaultKeyHandler(this),this.configure(e),this.graph.swimlaneIndicatorColorAttribute=this.cycleAttributeName,!mxClient.IS_LOCAL&&null!=this.urlInit&&(this.session=this.createSession()),null!=this.onInit&&this.onInit(),mxClient.IS_IE&&mxEvent.addListener(window,"unload",mxUtils.bind(this,function(){this.destroy()})))}mxStyleRegistry.putValue(mxConstants.EDGESTYLE_ELBOW,mxEdgeStyle.ElbowConnector),mxStyleRegistry.putValue(mxConstants.EDGESTYLE_ENTITY_RELATION,mxEdgeStyle.EntityRelation),mxStyleRegistry.putValue(mxConstants.EDGESTYLE_LOOP,mxEdgeStyle.Loop),mxStyleRegistry.putValue(mxConstants.EDGESTYLE_SIDETOSIDE,mxEdgeStyle.SideToSide),mxStyleRegistry.putValue(mxConstants.EDGESTYLE_TOPTOBOTTOM,mxEdgeStyle.TopToBottom),mxStyleRegistry.putValue(mxConstants.EDGESTYLE_ORTHOGONAL,mxEdgeStyle.OrthConnector),mxStyleRegistry.putValue(mxConstants.EDGESTYLE_SEGMENT,mxEdgeStyle.SegmentConnector),mxStyleRegistry.putValue(mxConstants.PERIMETER_ELLIPSE,mxPerimeter.EllipsePerimeter),mxStyleRegistry.putValue(mxConstants.PERIMETER_RECTANGLE,mxPerimeter.RectanglePerimeter),mxStyleRegistry.putValue(mxConstants.PERIMETER_RHOMBUS,mxPerimeter.RhombusPerimeter),mxStyleRegistry.putValue(mxConstants.PERIMETER_TRIANGLE,mxPerimeter.TrianglePerimeter),mxGraphView.prototype=new mxEventSource,mxGraphView.prototype.constructor=mxGraphView,mxGraphView.prototype.EMPTY_POINT=new mxPoint,mxGraphView.prototype.doneResource="none"!=mxClient.language?"done":"",mxGraphView.prototype.updatingDocumentResource="none"!=mxClient.language?"updatingDocument":"",mxGraphView.prototype.allowEval=!1,mxGraphView.prototype.captureDocumentGesture=!0,mxGraphView.prototype.optimizeVmlReflows=!0,mxGraphView.prototype.rendering=!0,mxGraphView.prototype.graph=null,mxGraphView.prototype.currentRoot=null,mxGraphView.prototype.graphBounds=null,mxGraphView.prototype.scale=1,mxGraphView.prototype.translate=null,mxGraphView.prototype.updateStyle=!1,mxGraphView.prototype.getGraphBounds=function(){return this.graphBounds},mxGraphView.prototype.setGraphBounds=function(e){this.graphBounds=e},mxGraphView.prototype.getBounds=function(e){var n=null;if(null!=e&&0<e.length)for(var t=this.graph.getModel(),a=0;a<e.length;a++)if(t.isVertex(e[a])||t.isEdge(e[a])){var i=this.getState(e[a]);null!=i&&(null==n?n=new mxRectangle(i.x,i.y,i.width,i.height):n.add(i))}return n},mxGraphView.prototype.setCurrentRoot=function(e){if(this.currentRoot!=e){var n=new mxCurrentRootChange(this,e);n.execute();var t=new mxUndoableEdit(this,!1);t.add(n),this.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",t)),this.graph.sizeDidChange()}return e},mxGraphView.prototype.scaleAndTranslate=function(e,n,t){var a=this.scale,i=new mxPoint(this.translate.x,this.translate.y);this.scale==e&&this.translate.x==n&&this.translate.y==t||(this.scale=e,this.translate.x=n,this.translate.y=t,this.isEventsEnabled()&&(this.revalidate(),this.graph.sizeDidChange())),this.fireEvent(new mxEventObject(mxEvent.SCALE_AND_TRANSLATE,"scale",e,"previousScale",a,"translate",this.translate,"previousTranslate",i))},mxGraphView.prototype.getScale=function(){return this.scale},mxGraphView.prototype.setScale=function(e){var n=this.scale;this.scale!=e&&(this.scale=e,this.isEventsEnabled()&&(this.revalidate(),this.graph.sizeDidChange())),this.fireEvent(new mxEventObject(mxEvent.SCALE,"scale",e,"previousScale",n))},mxGraphView.prototype.getTranslate=function(){return this.translate},mxGraphView.prototype.setTranslate=function(e,n){var t=new mxPoint(this.translate.x,this.translate.y);this.translate.x==e&&this.translate.y==n||(this.translate.x=e,this.translate.y=n,this.isEventsEnabled()&&(this.revalidate(),this.graph.sizeDidChange())),this.fireEvent(new mxEventObject(mxEvent.TRANSLATE,"translate",this.translate,"previousTranslate",t))},mxGraphView.prototype.refresh=function(){null!=this.currentRoot&&this.clear(),this.revalidate()},mxGraphView.prototype.revalidate=function(){this.invalidate(),this.validate()},mxGraphView.prototype.clear=function(e,n,t){var a=this.graph.getModel();if(e=e||a.getRoot(),n=null!=n&&n,t=null==t||t,this.removeState(e),t&&(n||e!=this.currentRoot)){t=a.getChildCount(e);for(var i=0;i<t;i++)this.clear(a.getChildAt(e,i),n)}else this.invalidate(e)},mxGraphView.prototype.invalidate=function(e,n,t,a){var i=this.graph.getModel();if(e=e||i.getRoot(),n=null==n||n,t=null==t||t,a=null!=a&&a,null!=(o=this.getState(e))&&(o.invalid=!0,a&&(o.orderChanged=!0)),n)for(var s=i.getChildCount(e),o=0;o<s;o++){var r=i.getChildAt(e,o);this.invalidate(r,n,t,a)}if(t)for(a=i.getEdgeCount(e),o=0;o<a;o++)this.invalidate(i.getEdgeAt(e,o),n,t)},mxGraphView.prototype.validate=function(e){var n=mxLog.enter("mxGraphView.validate");window.status=mxResources.get(this.updatingDocumentResource)||this.updatingDocumentResource;var t=null;if(this.optimizeVmlReflows&&null!=this.canvas&&null==this.textDiv&&(8==document.documentMode||mxClient.IS_QUIRKS)){t=this.canvas.style.display,this.canvas.style.display="none";var a=document.createElement("div");a.style.position="absolute",a.style.whiteSpace="nowrap",a.style.visibility="hidden",a.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",a.style.zoom="1",document.body.appendChild(a),this.textDiv=a}e=e||(null!=this.currentRoot?this.currentRoot:this.graph.getModel().getRoot()),this.validateBounds(null,e),null==(e=this.validatePoints(null,e))&&(e=new mxRectangle),this.setGraphBounds(e),this.validateBackground(),null!=t&&(this.canvas.style.display=t,document.body.removeChild(this.textDiv),this.textDiv=null),window.status=mxResources.get(this.doneResource)||this.doneResource,mxLog.leave("mxGraphView.validate",n)},mxGraphView.prototype.createBackgroundPageShape=function(e){return new mxRectangleShape(e,"white","black")},mxGraphView.prototype.validateBackground=function(){var e=this.graph.getBackgroundImage();if(null!=e){if(null==this.backgroundImage||this.backgroundImage.image!=e.src){null!=this.backgroundImage&&this.backgroundImage.destroy();var n=new mxRectangle(0,0,1,1);this.backgroundImage=new mxImageShape(n,e.src),this.backgroundImage.dialect=this.graph.dialect,this.backgroundImage.init(this.backgroundPane),this.backgroundImage.redraw()}this.redrawBackgroundImage(this.backgroundImage,e)}else null!=this.backgroundImage&&(this.backgroundImage.destroy(),this.backgroundImage=null);this.graph.pageVisible?(n=this.getBackgroundPageBounds(),null==this.backgroundPageShape?(this.backgroundPageShape=this.createBackgroundPageShape(n),this.backgroundPageShape.scale=this.scale,this.backgroundPageShape.isShadow=!0,this.backgroundPageShape.dialect=this.graph.dialect,this.backgroundPageShape.init(this.backgroundPane),this.backgroundPageShape.redraw(),mxEvent.addListener(this.backgroundPageShape.node,"dblclick",mxUtils.bind(this,function(e){this.graph.dblClick(e)})),mxEvent.addGestureListeners(this.backgroundPageShape.node,mxUtils.bind(this,function(e){this.graph.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e))}),mxUtils.bind(this,function(e){null!=this.graph.tooltipHandler&&this.graph.tooltipHandler.isHideOnHover()&&this.graph.tooltipHandler.hide(),this.graph.isMouseDown&&!mxEvent.isConsumed(e)&&this.graph.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e))}),mxUtils.bind(this,function(e){this.graph.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e))}))):(this.backgroundPageShape.scale=this.scale,this.backgroundPageShape.bounds=n,this.backgroundPageShape.redraw())):null!=this.backgroundPageShape&&(this.backgroundPageShape.destroy(),this.backgroundPageShape=null)},mxGraphView.prototype.getBackgroundPageBounds=function(){var e=this.graph.pageFormat,n=this.scale*this.graph.pageScale;return new mxRectangle(this.scale*this.translate.x,this.scale*this.translate.y,e.width*n,e.height*n)},mxGraphView.prototype.redrawBackgroundImage=function(e,n){e.scale=this.scale,e.bounds.x=this.scale*this.translate.x,e.bounds.y=this.scale*this.translate.y,e.bounds.width=this.scale*n.width,e.bounds.height=this.scale*n.height,e.redraw()},mxGraphView.prototype.validateBounds=function(e,n){var t=this.graph.getModel(),a=this.getState(n,!0);if(null!=a&&a.invalid){if(this.graph.isCellVisible(n)){if(n!=this.currentRoot&&null!=e)if(a.absoluteOffset.x=0,a.absoluteOffset.y=0,a.origin.x=e.origin.x,a.origin.y=e.origin.y,null!=(s=this.graph.getCellGeometry(n))){if(!t.isEdge(n)){var i=s.offset||this.EMPTY_POINT;s.relative?(a.origin.x+=s.x*e.width/this.scale+i.x,a.origin.y+=s.y*e.height/this.scale+i.y):(a.absoluteOffset.x=this.scale*i.x,a.absoluteOffset.y=this.scale*i.y,a.origin.x+=s.x,a.origin.y+=s.y)}if(a.x=this.scale*(this.translate.x+a.origin.x),a.y=this.scale*(this.translate.y+a.origin.y),a.width=this.scale*s.width,a.height=this.scale*s.height,t.isVertex(n)){if(s.relative&&0!=(i=mxUtils.toRadians(e.style[mxConstants.STYLE_ROTATION]||"0"))){var s=Math.cos(i),o=(i=Math.sin(i),new mxPoint(a.getCenterX(),a.getCenterY())),r=new mxPoint(e.getCenterX(),e.getCenterY());s=mxUtils.getRotatedPoint(o,s,i,r);a.x=s.x-a.width/2,a.y=s.y-a.height/2}this.updateVertexLabelOffset(a)}}}else this.removeState(n);null!=(i=this.graph.getChildOffsetForCell(n))&&(a.origin.x+=i.x,a.origin.y+=i.y)}if(null!=a&&(!this.graph.isCellCollapsed(n)||n==this.currentRoot))for(s=t.getChildCount(n),i=0;i<s;i++)o=t.getChildAt(n,i),this.validateBounds(a,o)},mxGraphView.prototype.updateVertexLabelOffset=function(e){var n=mxUtils.getValue(e.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER);n==mxConstants.ALIGN_LEFT?e.absoluteOffset.x-=e.width:n==mxConstants.ALIGN_RIGHT&&(e.absoluteOffset.x+=e.width),(n=mxUtils.getValue(e.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE))==mxConstants.ALIGN_TOP?e.absoluteOffset.y-=e.height:n==mxConstants.ALIGN_BOTTOM&&(e.absoluteOffset.y+=e.height)},mxGraphView.prototype.validatePoints=function(e,n){var t=this.graph.getModel(),a=this.getState(n),i=null;if(null!=a){if(a.invalid){var s=this.graph.getCellGeometry(n);if(null!=s&&t.isEdge(n)){var o=this.getState(this.getVisibleTerminal(n,!0));if(a.setVisibleTerminalState(o,!0),null!=o&&t.isEdge(o.cell)&&!t.isAncestor(o.cell,n)){var r=this.getState(t.getParent(o.cell));this.validatePoints(r,o.cell)}var l=this.getState(this.getVisibleTerminal(n,!1));a.setVisibleTerminalState(l,!1),null!=l&&t.isEdge(l.cell)&&!t.isAncestor(l.cell,n)&&(r=this.getState(t.getParent(l.cell)),this.validatePoints(r,l.cell)),this.updateFixedTerminalPoints(a,o,l),this.updatePoints(a,s.points,o,l),this.updateFloatingTerminalPoints(a,o,l),this.updateEdgeBounds(a),this.updateEdgeLabelOffset(a)}else null!=s&&s.relative&&null!=e&&t.isEdge(e.cell)&&(null!=(s=this.getPoint(e,s))&&(a.x=s.x,a.y=s.y,s.x=s.x/this.scale-this.translate.x,s.y=s.y/this.scale-this.translate.y,a.origin=s,this.childMoved(e,a)));a.invalid=!1,n!=this.currentRoot&&this.graph.cellRenderer.redraw(a,!1,this.isRendering())}(t.isEdge(n)||t.isVertex(n))&&(null!=a.shape&&null!=a.shape.boundingBox&&(i=a.shape.boundingBox.clone()),null!=a.text&&!this.graph.isLabelClipped(a.cell)&&null!=a.text.boundingBox&&(null!=i?i.add(a.text.boundingBox):i=a.text.boundingBox.clone()))}if(null!=a&&(!this.graph.isCellCollapsed(n)||n==this.currentRoot))for(s=t.getChildCount(n),o=0;o<s;o++)r=t.getChildAt(n,o),null!=(r=this.validatePoints(a,r))&&(null==i?i=r:i.add(r));return i},mxGraphView.prototype.childMoved=function(e,n){var t=n.cell;if(!this.graph.isCellCollapsed(t)||t==this.currentRoot)for(var a=this.graph.getModel(),i=a.getChildCount(t),s=0;s<i;s++)this.validateBounds(n,a.getChildAt(t,s))},mxGraphView.prototype.updateFixedTerminalPoints=function(e,n,t){this.updateFixedTerminalPoint(e,n,!0,this.graph.getConnectionConstraint(e,n,!0)),this.updateFixedTerminalPoint(e,t,!1,this.graph.getConnectionConstraint(e,t,!1))},mxGraphView.prototype.updateFixedTerminalPoint=function(e,n,t,a){var i=null;if(null!=a&&(i=this.graph.getConnectionPoint(n,a)),null==i&&null==n){n=this.scale,a=this.translate;var s=e.origin;null!=(i=this.graph.getCellGeometry(e.cell).getTerminalPoint(t))&&(i=new mxPoint(n*(a.x+i.x+s.x),n*(a.y+i.y+s.y)))}e.setAbsoluteTerminalPoint(i,t)},mxGraphView.prototype.updatePoints=function(e,n,t,a){if(null!=e){var i=[];i.push(e.absolutePoints[0]);var s=this.getEdgeStyle(e,n,t,a);if(null!=s)s(e,t=this.getTerminalPort(e,t,!0),a=this.getTerminalPort(e,a,!1),n,i);else if(null!=n)for(s=0;s<n.length;s++)null!=n[s]&&(a=mxUtils.clone(n[s]),i.push(this.transformControlPoint(e,a)));n=e.absolutePoints,i.push(n[n.length-1]),e.absolutePoints=i}},mxGraphView.prototype.transformControlPoint=function(e,n){var t=e.origin;return new mxPoint(this.scale*(n.x+this.translate.x+t.x),this.scale*(n.y+this.translate.y+t.y))},mxGraphView.prototype.getEdgeStyle=function(e,n,t,a){return"string"==typeof(e=null!=t&&t==a?mxUtils.getValue(e.style,mxConstants.STYLE_LOOP,this.graph.defaultLoopStyle):mxUtils.getValue(e.style,mxConstants.STYLE_NOEDGESTYLE,!1)?null:e.style[mxConstants.STYLE_EDGE])&&(null==(n=mxStyleRegistry.getValue(e))&&this.isAllowEval()&&(n=mxUtils.eval(e)),e=n),"function"==typeof e?e:null},mxGraphView.prototype.updateFloatingTerminalPoints=function(e,n,t){var a=e.absolutePoints,i=a[0];null==a[a.length-1]&&null!=t&&this.updateFloatingTerminalPoint(e,t,n,!1),null==i&&null!=n&&this.updateFloatingTerminalPoint(e,n,t,!0)},mxGraphView.prototype.updateFloatingTerminalPoint=function(e,n,t,a){n=this.getTerminalPort(e,n,a);var i=this.getNextPoint(e,t,a),s=this.graph.isOrthogonal(e);t=mxUtils.toRadians(Number(n.style[mxConstants.STYLE_ROTATION]||"0"));var o=new mxPoint(n.getCenterX(),n.getCenterY());if(0!=t){var r=Math.cos(-t),l=Math.sin(-t);i=mxUtils.getRotatedPoint(i,r,l,o)}r=parseFloat(e.style[mxConstants.STYLE_PERIMETER_SPACING]||0),r+=parseFloat(e.style[a?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]||0),n=this.getPerimeterPoint(n,i,0==t&&s,r),0!=t&&(r=Math.cos(t),l=Math.sin(t),n=mxUtils.getRotatedPoint(n,r,l,o)),e.setAbsoluteTerminalPoint(n,a)},mxGraphView.prototype.getTerminalPort=function(e,n,t){return null!=(e=mxUtils.getValue(e.style,t?mxConstants.STYLE_SOURCE_PORT:mxConstants.STYLE_TARGET_PORT))&&(null!=(e=this.getState(this.graph.getModel().getCell(e)))&&(n=e)),n},mxGraphView.prototype.getPerimeterPoint=function(e,n,t,a){var i=null;if(null!=e){var s=this.getPerimeterFunction(e);null!=s&&null!=n&&(0<(a=this.getPerimeterBounds(e,a)).width||0<a.height)&&(i=s(a,e,n,t)),null==i&&(i=this.getPoint(e))}return i},mxGraphView.prototype.getRoutingCenterX=function(e){var n=null!=e.style&&parseFloat(e.style[mxConstants.STYLE_ROUTING_CENTER_X])||0;return e.getCenterX()+n*e.width},mxGraphView.prototype.getRoutingCenterY=function(e){var n=null!=e.style&&parseFloat(e.style[mxConstants.STYLE_ROUTING_CENTER_Y])||0;return e.getCenterY()+n*e.height},mxGraphView.prototype.getPerimeterBounds=function(e,n){return n=null!=n?n:0,null!=e&&(n+=parseFloat(e.style[mxConstants.STYLE_PERIMETER_SPACING]||0)),e.getPerimeterBounds(n*this.scale)},mxGraphView.prototype.getPerimeterFunction=function(e){if("string"==typeof(e=e.style[mxConstants.STYLE_PERIMETER])){var n=mxStyleRegistry.getValue(e);null==n&&this.isAllowEval()&&(n=mxUtils.eval(e)),e=n}return"function"==typeof e?e:null},mxGraphView.prototype.getNextPoint=function(e,n,t){var a=null;return null!=(e=e.absolutePoints)&&(t||2<e.length||null==n)&&(a=e.length,a=e[t?Math.min(1,a-1):Math.max(0,a-2)]),null==a&&null!=n&&(a=new mxPoint(n.getCenterX(),n.getCenterY())),a},mxGraphView.prototype.getVisibleTerminal=function(e,n){for(var t=this.graph.getModel(),a=t.getTerminal(e,n),i=a;null!=a&&a!=this.currentRoot;)this.graph.isCellVisible(i)&&!this.graph.isCellCollapsed(a)||(i=a),a=t.getParent(a);return t.getParent(i)==t.getRoot()&&(i=null),i},mxGraphView.prototype.updateEdgeBounds=function(e){var n=e.absolutePoints;if(e.length=0,null!=n&&0<n.length){var t=n[0],a=n[n.length-1];if(null==t||null==a)e.cell!=this.currentRoot&&this.clear(e.cell,!0);else{if(t.x!=a.x||t.y!=a.y){var i=a.x-t.x,s=a.y-t.y;e.terminalDistance=Math.sqrt(i*i+s*s)}else e.terminalDistance=0;a=0;var o=[];if(null!=(s=t)){t=s.x;for(var r=s.y,l=t,d=r,c=1;c<n.length;c++){var m=n[c];null!=m&&(i=s.x-m.x,s=s.y-m.y,i=Math.sqrt(i*i+s*s),o.push(i),a+=i,s=m,t=Math.min(s.x,t),r=Math.min(s.y,r),l=Math.max(s.x,l),d=Math.max(s.y,d))}e.length=a,e.segments=o,e.x=t,e.y=r,e.width=Math.max(1,l-t),e.height=Math.max(1,d-r)}}}},mxGraphView.prototype.getPoint=function(e,n){var t=e.getCenterX(),a=e.getCenterY();if(null==e.segments||null!=n&&!n.relative)null!=n&&(null!=(d=n.offset)&&(t+=d.x,a+=d.y));else{for(var i=e.absolutePoints.length,s=(.5+(null!=n?n.x/2:0))*e.length,o=e.segments[0],r=0,l=1;r+o<s&&l<i-1;)r+=o,o=e.segments[l++];if(i=0==o?0:(s-r)/o,s=e.absolutePoints[l-1],l=e.absolutePoints[l],null!=s&&null!=l){if(r=t=a=0,null!=n){a=n.y;var d=n.offset;null!=d&&(t=d.x,r=d.y)}d=l.x-s.x,l=l.y-s.y,t=s.x+d*i+((0==o?0:l/o)*a+t)*this.scale,a=s.y+l*i-((0==o?0:d/o)*a-r)*this.scale}}return new mxPoint(t,a)},mxGraphView.prototype.getRelativePoint=function(e,n,t){if(null!=(i=this.graph.getModel().getGeometry(e.cell))){var a=e.absolutePoints.length;if(i.relative&&1<a){for(var i=e.length,s=e.segments,o=e.absolutePoints[0],r=e.absolutePoints[1],l=mxUtils.ptSegDistSq(o.x,o.y,r.x,r.y,n,t),d=0,c=0,m=0,u=2;u<a;u++)c+=s[u-2],r=e.absolutePoints[u],(o=mxUtils.ptSegDistSq(o.x,o.y,r.x,r.y,n,t))<=l&&(l=o,d=u-1,m=c),o=r;return a=s[d],o=e.absolutePoints[d],l=(r=e.absolutePoints[d+1]).x,s=r.y,s=(l=(e=o.x-l)-(l=n-l))*e+(s=(d=o.y-s)-(s=t-s))*d,a<(e=Math.sqrt(s<=0?0:s*s/(e*e+d*d)))&&(e=a),a=Math.sqrt(mxUtils.ptSegDistSq(o.x,o.y,r.x,r.y,n,t)),-1==mxUtils.relativeCcw(o.x,o.y,r.x,r.y,n,t)&&(a=-a),new mxPoint((i/2-m-e)/i*-2,a/this.scale)}}return new mxPoint},mxGraphView.prototype.updateEdgeLabelOffset=function(e){var n=e.absolutePoints;if(e.absoluteOffset.x=e.getCenterX(),e.absoluteOffset.y=e.getCenterY(),null!=n&&0<n.length&&null!=e.segments)if((i=this.graph.getCellGeometry(e.cell)).relative){null!=(t=this.getPoint(e,i))&&(e.absoluteOffset=t)}else{var t=n[0],a=n[n.length-1];if(null!=t&&null!=a){n=a.x-t.x;var i,s=a.y-t.y,o=a=0;null!=(i=i.offset)&&(a=i.x,o=i.y),i=t.y+s/2+o*this.scale,e.absoluteOffset.x=t.x+n/2+a*this.scale,e.absoluteOffset.y=i}}},mxGraphView.prototype.getState=function(e,n){n=n||!1;var t=null;return null!=e&&(t=this.states.get(e),this.graph.isCellVisible(e)&&(null==t&&n&&this.graph.isCellVisible(e)?(t=this.createState(e),this.states.put(e,t)):n&&null!=t&&this.updateStyle&&(t.style=this.graph.getCellStyle(e)))),t},mxGraphView.prototype.isRendering=function(){return this.rendering},mxGraphView.prototype.setRendering=function(e){this.rendering=e},mxGraphView.prototype.isAllowEval=function(){return this.allowEval},mxGraphView.prototype.setAllowEval=function(e){this.allowEval=e},mxGraphView.prototype.getStates=function(){return this.states},mxGraphView.prototype.setStates=function(e){this.states=e},mxGraphView.prototype.getCellStates=function(e){if(null==e)return this.states;for(var n=[],t=0;t<e.length;t++){var a=this.getState(e[t]);null!=a&&n.push(a)}return n},mxGraphView.prototype.removeState=function(e){var n=null;return null!=e&&(null!=(n=this.states.remove(e))&&(this.graph.cellRenderer.destroy(n),n.destroy())),n},mxGraphView.prototype.createState=function(e){var n=this.graph.getCellStyle(e);return e=new mxCellState(this,e,n),this.graph.cellRenderer.initialize(e,this.isRendering()),e},mxGraphView.prototype.getCanvas=function(){return this.canvas},mxGraphView.prototype.getBackgroundPane=function(){return this.backgroundPane},mxGraphView.prototype.getDrawPane=function(){return this.drawPane},mxGraphView.prototype.getOverlayPane=function(){return this.overlayPane},mxGraphView.prototype.isContainerEvent=function(e){return(e=mxEvent.getSource(e))==this.graph.container||e.parentNode==this.backgroundPane||null!=e.parentNode&&e.parentNode.parentNode==this.backgroundPane||e==this.canvas.parentNode||e==this.canvas||e==this.backgroundPane||e==this.drawPane||e==this.overlayPane},mxGraphView.prototype.isScrollEvent=function(e){var n=mxUtils.getOffset(this.graph.container);e=new mxPoint(e.clientX-n.x,e.clientY-n.y);n=this.graph.container.offsetWidth;var t=this.graph.container.clientWidth;return t<n&&e.x>t+2&&e.x<=n||(n=this.graph.container.offsetHeight,(t=this.graph.container.clientHeight)<n&&e.y>t+2&&e.y<=n)},mxGraphView.prototype.init=function(){this.installListeners();var e=this.graph;e.dialect==mxConstants.DIALECT_SVG?this.createSvg():e.dialect==mxConstants.DIALECT_VML?this.createVml():this.createHtml()},mxGraphView.prototype.installListeners=function(){var a=this.graph,i=a.container;if(null!=i){mxEvent.addGestureListeners(i,mxUtils.bind(this,function(e){mxClient.IS_TOUCH&&a.isEditing()&&a.stopEditing(!a.isInvokesStopCellEditing()),this.isContainerEvent(e)&&(!mxClient.IS_IE&&!mxClient.IS_GC&&!mxClient.IS_OP&&!mxClient.IS_SF||!this.isScrollEvent(e))&&a.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e))}),mxUtils.bind(this,function(e){this.isContainerEvent(e)&&a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e))}),mxUtils.bind(this,function(e){this.isContainerEvent(e)&&a.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e))})),mxEvent.addListener(i,"dblclick",mxUtils.bind(this,function(e){a.dblClick(e)}));a.addMouseListener({mouseDown:function(e,n){a.panningHandler.hideMenu()},mouseMove:function(){},mouseUp:function(){}}),this.moveHandler=mxUtils.bind(this,function(e){var n,t;null!=a.tooltipHandler&&a.tooltipHandler.isHideOnHover()&&a.tooltipHandler.hide(),this.captureDocumentGesture&&a.isMouseDown&&!mxEvent.isConsumed(e)&&a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,(n=e,t=null,mxClient.IS_TOUCH&&(t=mxEvent.getClientX(n),n=mxEvent.getClientY(n),n=mxUtils.convertPoint(i,t,n),t=a.view.getState(a.getCellAt(n.x,n.y))),t)))}),this.endHandler=mxUtils.bind(this,function(e){this.captureDocumentGesture&&a.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e))}),mxEvent.addGestureListeners(document,null,this.moveHandler,this.endHandler)}},mxGraphView.prototype.createHtml=function(){var e=this.graph.container;null!=e&&(this.canvas=this.createHtmlPane("100%","100%"),this.backgroundPane=this.createHtmlPane("1px","1px"),this.drawPane=this.createHtmlPane("1px","1px"),this.overlayPane=this.createHtmlPane("1px","1px"),this.canvas.appendChild(this.backgroundPane),this.canvas.appendChild(this.drawPane),this.canvas.appendChild(this.overlayPane),e.appendChild(this.canvas),mxClient.IS_QUIRKS&&(e=mxUtils.bind(this,function(e){e=this.getGraphBounds(),this.updateHtmlCanvasSize(e.x+e.width+this.graph.border,e.y+e.height+this.graph.border)}),mxEvent.addListener(window,"resize",e)))},mxGraphView.prototype.updateHtmlCanvasSize=function(e,n){if(null!=this.graph.container){var t=this.graph.container.offsetHeight;this.canvas.style.width=this.graph.container.offsetWidth<e?e+"px":"100%",this.canvas.style.height=t<n?n+"px":"100%"}},mxGraphView.prototype.createHtmlPane=function(e,n){var t=document.createElement("DIV");return null!=e&&null!=n?(t.style.position="absolute",t.style.left="0px",t.style.top="0px",t.style.width=e,t.style.height=n):t.style.position="relative",t},mxGraphView.prototype.createVml=function(){var e=this.graph.container;if(null!=e){var n=e.offsetWidth,t=e.offsetHeight;this.canvas=this.createVmlPane(n,t),this.backgroundPane=this.createVmlPane(n,t),this.drawPane=this.createVmlPane(n,t),this.overlayPane=this.createVmlPane(n,t),this.canvas.appendChild(this.backgroundPane),this.canvas.appendChild(this.drawPane),this.canvas.appendChild(this.overlayPane),e.appendChild(this.canvas)}},mxGraphView.prototype.createVmlPane=function(e,n){var t=document.createElement(mxClient.VML_PREFIX+":group");return t.style.position="absolute",t.style.left="0px",t.style.top="0px",t.style.width=e+"px",t.style.height=n+"px",t.setAttribute("coordsize",e+","+n),t.setAttribute("coordorigin","0,0"),t},mxGraphView.prototype.createSvg=function(){var e=this.graph.container;this.canvas=document.createElementNS(mxConstants.NS_SVG,"g"),this.backgroundPane=document.createElementNS(mxConstants.NS_SVG,"g"),this.canvas.appendChild(this.backgroundPane),this.drawPane=document.createElementNS(mxConstants.NS_SVG,"g"),this.canvas.appendChild(this.drawPane),this.overlayPane=document.createElementNS(mxConstants.NS_SVG,"g"),this.canvas.appendChild(this.overlayPane);var n=document.createElementNS(mxConstants.NS_SVG,"svg");n.style.width="100%",n.style.height="100%",n.style.display="block",n.appendChild(this.canvas),null!=e&&(e.appendChild(n),"static"==mxUtils.getCurrentStyle(e).position&&(e.style.position="relative"))},mxGraphView.prototype.destroy=function(){var e=null!=this.canvas?this.canvas.ownerSVGElement:null;null==e&&(e=this.canvas),null!=e&&null!=e.parentNode&&(this.clear(this.currentRoot,!0),mxEvent.removeGestureListeners(document,null,this.moveHandler,this.endHandler),mxEvent.release(this.graph.container),e.parentNode.removeChild(e),this.overlayPane=this.drawPane=this.backgroundPane=this.canvas=this.endHandler=this.moveHandler=null)},mxCurrentRootChange.prototype.execute=function(){var e=this.view.currentRoot;this.view.currentRoot=this.previous,this.previous=e,null!=(e=this.view.graph.getTranslateForRoot(this.view.currentRoot))&&(this.view.translate=new mxPoint(-e.x,-e.y)),this.view.fireEvent(new mxEventObject(this.isUp?mxEvent.UP:mxEvent.DOWN,"root",this.view.currentRoot,"previous",this.previous)),this.isUp?(this.view.clear(this.view.currentRoot,!0),this.view.validate()):this.view.refresh(),this.isUp=!this.isUp},mxLoadResources&&mxResources.add(mxClient.basePath+"/resources/graph"),mxGraph.prototype=new mxEventSource,mxGraph.prototype.constructor=mxGraph,mxGraph.prototype.EMPTY_ARRAY=[],mxGraph.prototype.mouseListeners=null,mxGraph.prototype.isMouseDown=!1,mxGraph.prototype.model=null,mxGraph.prototype.view=null,mxGraph.prototype.stylesheet=null,mxGraph.prototype.selectionModel=null,mxGraph.prototype.cellEditor=null,mxGraph.prototype.cellRenderer=null,mxGraph.prototype.multiplicities=null,mxGraph.prototype.renderHint=null,mxGraph.prototype.dialect=null,mxGraph.prototype.gridSize=10,mxGraph.prototype.gridEnabled=!0,mxGraph.prototype.portsEnabled=!0,mxGraph.prototype.doubleTapEnabled=!0,mxGraph.prototype.doubleTapTimeout=700,mxGraph.prototype.doubleTapTolerance=25,mxGraph.prototype.lastTouchY=0,mxGraph.prototype.lastTouchY=0,mxGraph.prototype.lastTouchTime=0,mxGraph.prototype.gestureEnabled=!0,mxGraph.prototype.tolerance=4,mxGraph.prototype.defaultOverlap=.5,mxGraph.prototype.defaultParent=null,mxGraph.prototype.alternateEdgeStyle=null,mxGraph.prototype.backgroundImage=null,mxGraph.prototype.pageVisible=!1,mxGraph.prototype.pageBreaksVisible=!1,mxGraph.prototype.pageBreakColor="gray",mxGraph.prototype.pageBreakDashed=!0,mxGraph.prototype.minPageBreakDist=20,mxGraph.prototype.preferPageSize=!1,mxGraph.prototype.pageFormat=mxConstants.PAGE_FORMAT_A4_PORTRAIT,mxGraph.prototype.pageScale=1.5,mxGraph.prototype.enabled=!0,mxGraph.prototype.escapeEnabled=!0,mxGraph.prototype.invokesStopCellEditing=!0,mxGraph.prototype.enterStopsCellEditing=!1,mxGraph.prototype.useScrollbarsForPanning=!0,mxGraph.prototype.exportEnabled=!0,mxGraph.prototype.importEnabled=!0,mxGraph.prototype.cellsLocked=!1,mxGraph.prototype.cellsCloneable=!0,mxGraph.prototype.foldingEnabled=!0,mxGraph.prototype.cellsEditable=!0,mxGraph.prototype.cellsDeletable=!0,mxGraph.prototype.cellsMovable=!0,mxGraph.prototype.edgeLabelsMovable=!0,mxGraph.prototype.vertexLabelsMovable=!1,mxGraph.prototype.dropEnabled=!1,mxGraph.prototype.splitEnabled=!0,mxGraph.prototype.cellsResizable=!0,mxGraph.prototype.cellsBendable=!0,mxGraph.prototype.cellsSelectable=!0,mxGraph.prototype.cellsDisconnectable=!0,mxGraph.prototype.autoSizeCells=!1,mxGraph.prototype.autoScroll=!0,mxGraph.prototype.timerAutoScroll=!1,mxGraph.prototype.allowAutoPanning=!1,mxGraph.prototype.ignoreScrollbars=!1,mxGraph.prototype.autoExtend=!0,mxGraph.prototype.maximumGraphBounds=null,mxGraph.prototype.minimumGraphSize=null,mxGraph.prototype.minimumContainerSize=null,mxGraph.prototype.maximumContainerSize=null,mxGraph.prototype.resizeContainer=!1,mxGraph.prototype.border=0,mxGraph.prototype.ordered=!0,mxGraph.prototype.keepEdgesInForeground=!1,mxGraph.prototype.keepEdgesInBackground=!0,mxGraph.prototype.allowNegativeCoordinates=!0,mxGraph.prototype.constrainChildren=!0,mxGraph.prototype.extendParents=!0,mxGraph.prototype.extendParentsOnAdd=!0,mxGraph.prototype.collapseToPreferredSize=!0,mxGraph.prototype.zoomFactor=1.2,mxGraph.prototype.keepSelectionVisibleOnZoom=!1,mxGraph.prototype.centerZoom=!0,mxGraph.prototype.resetViewOnRootChange=!0,mxGraph.prototype.resetEdgesOnResize=!1,mxGraph.prototype.resetEdgesOnMove=!1,mxGraph.prototype.resetEdgesOnConnect=!0,mxGraph.prototype.allowLoops=!1,mxGraph.prototype.defaultLoopStyle=mxEdgeStyle.Loop,mxGraph.prototype.multigraph=!0,mxGraph.prototype.connectableEdges=!1,mxGraph.prototype.allowDanglingEdges=!0,mxGraph.prototype.cloneInvalidEdges=!1,mxGraph.prototype.disconnectOnMove=!0,mxGraph.prototype.labelsVisible=!0,mxGraph.prototype.htmlLabels=!1,mxGraph.prototype.swimlaneSelectionEnabled=!0,mxGraph.prototype.swimlaneNesting=!0,mxGraph.prototype.swimlaneIndicatorColorAttribute=mxConstants.STYLE_FILLCOLOR,mxGraph.prototype.imageBundles=null,mxGraph.prototype.minFitScale=.1,mxGraph.prototype.maxFitScale=8,mxGraph.prototype.panDx=0,mxGraph.prototype.panDy=0,mxGraph.prototype.collapsedImage=new mxImage(mxClient.imageBasePath+"/collapsed.gif",9,9),mxGraph.prototype.expandedImage=new mxImage(mxClient.imageBasePath+"/expanded.gif",9,9),mxGraph.prototype.warningImage=new mxImage("/assets/plugins/mxgraph/images/warning.gif",16,16),mxGraph.prototype.alreadyConnectedResource="none"!=mxClient.language?"alreadyConnected":"",mxGraph.prototype.containsValidationErrorsResource="none"!=mxClient.language?"containsValidationErrors":"",mxGraph.prototype.collapseExpandResource="none"!=mxClient.language?"collapse-expand":"",mxGraph.prototype.init=function(e){this.container=e,this.cellEditor=this.createCellEditor(),this.view.init(),this.sizeDidChange(),mxClient.IS_IE&&(mxEvent.addListener(window,"unload",mxUtils.bind(this,function(){this.destroy()})),mxEvent.addListener(e,"selectstart",mxUtils.bind(this,function(){return this.isEditing()}))),8==document.documentMode&&e.insertAdjacentHTML("beforeend",'<v:group style="DISPLAY: none;"></v:group>')},mxGraph.prototype.createHandlers=function(e){this.tooltipHandler=new mxTooltipHandler(this),this.tooltipHandler.setEnabled(!1),this.panningHandler=new mxPanningHandler(this),this.panningHandler.panningEnabled=!1,this.selectionCellsHandler=new mxSelectionCellsHandler(this),this.connectionHandler=new mxConnectionHandler(this),this.connectionHandler.setEnabled(!1),this.graphHandler=new mxGraphHandler(this)},mxGraph.prototype.createSelectionModel=function(){return new mxGraphSelectionModel(this)},mxGraph.prototype.createStylesheet=function(){return new mxStylesheet},mxGraph.prototype.createGraphView=function(){return new mxGraphView(this)},mxGraph.prototype.createCellRenderer=function(){return new mxCellRenderer},mxGraph.prototype.createCellEditor=function(){return new mxCellEditor(this)},mxGraph.prototype.getModel=function(){return this.model},mxGraph.prototype.getView=function(){return this.view},mxGraph.prototype.getStylesheet=function(){return this.stylesheet},mxGraph.prototype.setStylesheet=function(e){this.stylesheet=e},mxGraph.prototype.getSelectionModel=function(){return this.selectionModel},mxGraph.prototype.setSelectionModel=function(e){this.selectionModel=e},mxGraph.prototype.getSelectionCellsForChanges=function(e){for(var n=[],t=0;t<e.length;t++){var a=e[t];if(a.constructor!=mxRootChange){var i=null;a instanceof mxChildChange&&null==a.previous?i=a.child:null!=a.cell&&a.cell instanceof mxCell&&(i=a.cell),null!=i&&mxUtils.indexOf(n,i)<0&&n.push(i)}}return this.getModel().getTopmostCells(n)},mxGraph.prototype.graphModelChanged=function(e){for(var n=0;n<e.length;n++)this.processChange(e[n]);this.removeSelectionCells(this.getRemovedCellsForChanges(e)),this.view.validate(),this.sizeDidChange()},mxGraph.prototype.getRemovedCellsForChanges=function(e){for(var n=[],t=0;t<e.length;t++){var a=e[t];if(a instanceof mxRootChange)break;a instanceof mxChildChange?null!=a.previous&&null==a.parent&&(n=n.concat(this.model.getDescendants(a.child))):a instanceof mxVisibleChange&&(n=n.concat(this.model.getDescendants(a.cell)))}return n},mxGraph.prototype.processChange=function(e){if(e instanceof mxRootChange)this.clearSelection(),this.removeStateForCell(e.previous),this.resetViewOnRootChange&&(this.view.scale=1,this.view.translate.x=0,this.view.translate.y=0),this.fireEvent(new mxEventObject(mxEvent.ROOT));else if(e instanceof mxChildChange){var n=this.model.getParent(e.child);null!=n?this.view.invalidate(e.child,!0,!1,null!=e.previous):(this.removeStateForCell(e.child),this.view.currentRoot==e.child&&this.home()),n!=e.previous&&(null!=n&&this.view.invalidate(n,!1,!1),null!=e.previous&&this.view.invalidate(e.previous,!1,!1))}else e instanceof mxTerminalChange||e instanceof mxGeometryChange?this.view.invalidate(e.cell):e instanceof mxValueChange?this.view.invalidate(e.cell,!1,!1):e instanceof mxStyleChange?(this.view.invalidate(e.cell,!0,!0,!1),this.view.removeState(e.cell)):null!=e.cell&&e.cell instanceof mxCell&&this.removeStateForCell(e.cell)},mxGraph.prototype.removeStateForCell=function(e){for(var n=this.model.getChildCount(e),t=0;t<n;t++)this.removeStateForCell(this.model.getChildAt(e,t));this.view.removeState(e)},mxGraph.prototype.addCellOverlay=function(e,n){null==e.overlays&&(e.overlays=[]),e.overlays.push(n);var t=this.view.getState(e);return null!=t&&this.cellRenderer.redraw(t),this.fireEvent(new mxEventObject(mxEvent.ADD_OVERLAY,"cell",e,"overlay",n)),n},mxGraph.prototype.getCellOverlays=function(e){return e.overlays},mxGraph.prototype.removeCellOverlay=function(e,n){if(null==n)this.removeCellOverlays(e);else{var t=mxUtils.indexOf(e.overlays,n);0<=t?(e.overlays.splice(t,1),0==e.overlays.length&&(e.overlays=null),null!=(t=this.view.getState(e))&&this.cellRenderer.redraw(t),this.fireEvent(new mxEventObject(mxEvent.REMOVE_OVERLAY,"cell",e,"overlay",n))):n=null}return n},mxGraph.prototype.removeCellOverlays=function(e){var n=e.overlays;if(null!=n){e.overlays=null;var t=this.view.getState(e);for(null!=t&&this.cellRenderer.redraw(t),t=0;t<n.length;t++)this.fireEvent(new mxEventObject(mxEvent.REMOVE_OVERLAY,"cell",e,"overlay",n[t]))}return n},mxGraph.prototype.clearCellOverlays=function(e){e=null!=e?e:this.model.getRoot(),this.removeCellOverlays(e);for(var n=this.model.getChildCount(e),t=0;t<n;t++){var a=this.model.getChildAt(e,t);this.clearCellOverlays(a)}},mxGraph.prototype.setCellWarning=function(t,e,n,a){return null!=e&&0<e.length?(e=new mxCellOverlay(n=null!=n?n:this.warningImage,"<font color=red>"+e+"</font>"),a&&e.addListener(mxEvent.CLICK,mxUtils.bind(this,function(e,n){this.isEnabled()&&this.setSelectionCell(t)})),this.addCellOverlay(t,e)):(this.removeCellOverlays(t),null)},mxGraph.prototype.startEditing=function(e){this.startEditingAtCell(null,e)},mxGraph.prototype.startEditingAtCell=function(e,n){null==e&&(null!=(e=this.getSelectionCell())&&!this.isCellEditable(e)&&(e=null)),null!=e&&(this.fireEvent(new mxEventObject(mxEvent.START_EDITING,"cell",e,"event",n)),this.cellEditor.startEditing(e,n))},mxGraph.prototype.getEditingValue=function(e,n){return this.convertValueToString(e)},mxGraph.prototype.stopEditing=function(e){this.cellEditor.stopEditing(e)},mxGraph.prototype.labelChanged=function(e,n,t){this.model.beginUpdate();try{this.cellLabelChanged(e,n,this.isAutoSizeCell(e)),this.fireEvent(new mxEventObject(mxEvent.LABEL_CHANGED,"cell",e,"value",n,"event",t))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellLabelChanged=function(e,n,t){this.model.beginUpdate();try{this.model.setValue(e,n),t&&this.cellSizeUpdated(e,!1)}finally{this.model.endUpdate()}},mxGraph.prototype.escape=function(e){this.stopEditing(!0),this.connectionHandler.reset(),this.graphHandler.reset(),e=this.getSelectionCells();for(var n=0;n<e.length;n++){var t=this.view.getState(e[n]);null!=t&&null!=t.handler&&t.handler.reset()}},mxGraph.prototype.click=function(e){var n=e.getEvent(),t=e.getCell(),a=new mxEventObject(mxEvent.CLICK,"event",n,"cell",t);e.isConsumed()&&a.consume(),this.fireEvent(a),this.isEnabled()&&!mxEvent.isConsumed(n)&&!a.isConsumed()&&(null!=t?this.selectCellForEvent(t,n):(t=null,this.isSwimlaneSelectionEnabled()&&(t=this.getSwimlaneAt(e.getGraphX(),e.getGraphY())),null!=t?this.selectCellForEvent(t,n):this.isToggleEvent(n)||this.clearSelection()))},mxGraph.prototype.dblClick=function(e,n){var t=new mxEventObject(mxEvent.DOUBLE_CLICK,"event",e,"cell",n);this.fireEvent(t),this.isEnabled()&&!mxEvent.isConsumed(e)&&!t.isConsumed()&&null!=n&&this.isCellEditable(n)&&this.startEditingAtCell(n,e)},mxGraph.prototype.scrollPointToVisible=function(e,n,t,a){if(this.timerAutoScroll||!this.ignoreScrollbars&&!mxUtils.hasScrollbars(this.container))this.allowAutoPanning&&!this.panningHandler.active&&(null==this.panningManager&&(this.panningManager=this.createPanningManager()),this.panningManager.panTo(e+this.panDx,n+this.panDy));else{var i=this.container;if(a=null!=a?a:20,e>=i.scrollLeft&&n>=i.scrollTop&&e<=i.scrollLeft+i.clientWidth&&n<=i.scrollTop+i.clientHeight){var s=i.scrollLeft+i.clientWidth-e;if(s<a){if(e=i.scrollLeft,i.scrollLeft+=a-s,t&&e==i.scrollLeft){if(this.dialect==mxConstants.DIALECT_SVG){e=this.view.getDrawPane().ownerSVGElement;var o=this.container.scrollWidth+a-s}else o=Math.max(i.clientWidth,i.scrollWidth)+a-s,e=this.view.getCanvas();e.style.width=o+"px",i.scrollLeft+=a-s}}else(s=e-i.scrollLeft)<a&&(i.scrollLeft-=a-s);(s=i.scrollTop+i.clientHeight-n)<a?(e=i.scrollTop,i.scrollTop+=a-s,e==i.scrollTop&&t&&(this.dialect==mxConstants.DIALECT_SVG?(e=this.view.getDrawPane().ownerSVGElement,n=this.container.scrollHeight+a-s):(n=Math.max(i.clientHeight,i.scrollHeight)+a-s,e=this.view.getCanvas()),e.style.height=n+"px",i.scrollTop+=a-s)):(s=n-i.scrollTop)<a&&(i.scrollTop-=a-s)}}},mxGraph.prototype.createPanningManager=function(){return new mxPanningManager(this)},mxGraph.prototype.getBorderSizes=function(){function e(e){var n=0;n="thin"==e?2:"medium"==e?4:"thick"==e?6:parseInt(e);return isNaN(n)&&(n=0),n}var n=mxUtils.getCurrentStyle(this.container),t=new mxRectangle;return t.x=e(n.borderLeftWidth)+parseInt(n.paddingLeft||0),t.y=e(n.borderTopWidth)+parseInt(n.paddingTop||0),t.width=e(n.borderRightWidth)+parseInt(n.paddingRight||0),t.height=e(n.borderBottomWidth)+parseInt(n.paddingBottom||0),t},mxGraph.prototype.getPreferredPageSize=function(e,n,t){e=this.view.scale;var a=this.view.translate,i=this.pageFormat,s=e*this.pageScale;i=new mxRectangle(0,0,i.width*s,i.height*s);return n=this.pageBreaksVisible?Math.ceil(n/i.width):1,t=this.pageBreaksVisible?Math.ceil(t/i.height):1,new mxRectangle(0,0,n*i.width+2+a.x/e,t*i.height+2+a.y/e)},mxGraph.prototype.sizeDidChange=function(){var e=this.getGraphBounds();if(null!=this.container){var n=this.getBorder(),t=Math.max(0,e.x+e.width+1+n);n=Math.max(0,e.y+e.height+1+n);if(null!=this.minimumContainerSize&&(t=Math.max(t,this.minimumContainerSize.width),n=Math.max(n,this.minimumContainerSize.height)),this.resizeContainer&&this.doResizeContainer(t,n),this.preferPageSize||!mxClient.IS_IE&&this.pageVisible){var a=this.getPreferredPageSize(e,t,n);null!=a&&(t=a.width,n=a.height)}null!=this.minimumGraphSize&&(t=Math.max(t,this.minimumGraphSize.width*this.view.scale),n=Math.max(n,this.minimumGraphSize.height*this.view.scale)),t=Math.ceil(t-1),n=Math.ceil(n-1),this.dialect==mxConstants.DIALECT_SVG?((a=this.view.getDrawPane().ownerSVGElement).style.minWidth=Math.max(1,t)+"px",a.style.minHeight=Math.max(1,n)+"px",a.style.width="100%",a.style.height="100%"):mxClient.IS_QUIRKS?this.view.updateHtmlCanvasSize(Math.max(1,t),Math.max(1,n)):(this.view.canvas.style.minWidth=Math.max(1,t)+"px",this.view.canvas.style.minHeight=Math.max(1,n)+"px"),this.updatePageBreaks(this.pageBreaksVisible,t-1,n-1)}this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",e))},mxGraph.prototype.doResizeContainer=function(e,n){if(mxClient.IS_IE)if(mxClient.IS_QUIRKS){var t=this.getBorderSizes();e+=Math.max(2,t.x+t.width+1),n+=Math.max(2,t.y+t.height+1)}else 9<=document.documentMode?(e+=3,n+=5):(e+=1,n+=1);else n+=1;null!=this.maximumContainerSize&&(e=Math.min(this.maximumContainerSize.width,e),n=Math.min(this.maximumContainerSize.height,n)),this.container.style.width=Math.ceil(e)+"px",this.container.style.height=Math.ceil(n)+"px"},mxGraph.prototype.updatePageBreaks=function(e,n,t){var a=this.view.scale,i=this.view.translate,s=this.pageFormat,o=a*this.pageScale;i=new mxRectangle(a*i.x,a*i.y,s.width*o,s.height*o);if(e=e&&Math.min(i.width,i.height)>this.minPageBreakDist,i.x=mxUtils.mod(i.x,i.width),i.y=mxUtils.mod(i.y,i.height),s=e?Math.ceil((n-i.x)/i.width):0,e=e?Math.ceil((t-i.y)/i.height):0,null==this.horizontalPageBreaks&&0<s&&(this.horizontalPageBreaks=[]),null!=this.horizontalPageBreaks){for(o=0;o<=s;o++){var r=[new mxPoint(i.x+o*i.width,1),new mxPoint(i.x+o*i.width,t)];null!=this.horizontalPageBreaks[o]?(this.horizontalPageBreaks[o].scale=1,this.horizontalPageBreaks[o].points=r,this.horizontalPageBreaks[o].redraw()):((r=new mxPolyline(r,this.pageBreakColor,this.scale)).dialect=this.dialect,r.isDashed=this.pageBreakDashed,r.scale=a,r.init(this.view.backgroundPane),r.redraw(),this.horizontalPageBreaks[o]=r)}for(o=s;o<this.horizontalPageBreaks.length;o++)this.horizontalPageBreaks[o].destroy();this.horizontalPageBreaks.splice(s,this.horizontalPageBreaks.length-s)}if(null==this.verticalPageBreaks&&0<e&&(this.verticalPageBreaks=[]),null!=this.verticalPageBreaks){for(o=0;o<=e;o++)r=[new mxPoint(1,i.y+o*i.height),new mxPoint(n,i.y+o*i.height)],null!=this.verticalPageBreaks[o]?(this.verticalPageBreaks[o].scale=1,this.verticalPageBreaks[o].points=r,this.verticalPageBreaks[o].redraw()):((r=new mxPolyline(r,this.pageBreakColor,a)).dialect=this.dialect,r.isDashed=this.pageBreakDashed,r.scale=a,r.init(this.view.backgroundPane),r.redraw(),this.verticalPageBreaks[o]=r);for(o=e;o<this.verticalPageBreaks.length;o++)this.verticalPageBreaks[o].destroy();this.verticalPageBreaks.splice(e,this.verticalPageBreaks.length-e)}},mxGraph.prototype.getCellStyle=function(e){var n=this.model.getStyle(e),t=null;t=this.model.isEdge(e)?this.stylesheet.getDefaultEdgeStyle():this.stylesheet.getDefaultVertexStyle();return null!=n&&(t=this.postProcessCellStyle(this.stylesheet.getCellStyle(n,t))),null==t&&(t=mxGraph.prototype.EMPTY_ARRAY),t},mxGraph.prototype.postProcessCellStyle=function(e){if(null!=e){var n=e[mxConstants.STYLE_IMAGE],t=this.getImageFromBundles(n);null!=t?e[mxConstants.STYLE_IMAGE]=t:t=n,null!=t&&"data:image/"==t.substring(0,11)&&(0<(n=t.indexOf(","))&&(t=t.substring(0,n)+";base64,"+t.substring(n+1)),e[mxConstants.STYLE_IMAGE]=t)}return e},mxGraph.prototype.setCellStyle=function(e,n){if(null!=(n=n||this.getSelectionCells())){this.model.beginUpdate();try{for(var t=0;t<n.length;t++)this.model.setStyle(n[t],e)}finally{this.model.endUpdate()}}},mxGraph.prototype.toggleCellStyle=function(e,n,t){t=t||this.getSelectionCell(),this.toggleCellStyles(e,n,[t])},mxGraph.prototype.toggleCellStyles=function(e,n,t){var a;(n=null!=n&&n,null!=(t=t||this.getSelectionCells())&&0<t.length)&&(null!=(a=null!=(a=this.view.getState(t[0]))?a.style:this.getCellStyle(t[0]))&&(n=mxUtils.getValue(a,e,n)?0:1,this.setCellStyles(e,n,t)))},mxGraph.prototype.setCellStyles=function(e,n,t){t=t||this.getSelectionCells(),mxUtils.setCellStyles(this.model,t,e,n)},mxGraph.prototype.toggleCellStyleFlags=function(e,n,t){this.setCellStyleFlags(e,n,null,t)},mxGraph.prototype.setCellStyleFlags=function(e,n,t,a){if(null!=(a=a||this.getSelectionCells())&&0<a.length){var i;if(null==t)null!=(i=null!=(i=this.view.getState(a[0]))?i.style:this.getCellStyle(a[0]))&&(t=(parseInt(i[e]||0)&n)!=n);mxUtils.setCellStyleFlags(this.model,a,e,n,t)}},mxGraph.prototype.alignCells=function(e,n,t){if(null==n&&(n=this.getSelectionCells()),null!=n&&1<n.length){if(null==t)for(var a=0;a<n.length;a++){var i=this.getCellGeometry(n[a]);if(null!=i&&!this.model.isEdge(n[a]))if(null==t){if(e==mxConstants.ALIGN_CENTER){t=i.x+i.width/2;break}if(e==mxConstants.ALIGN_RIGHT)t=i.x+i.width;else if(e==mxConstants.ALIGN_TOP)t=i.y;else{if(e==mxConstants.ALIGN_MIDDLE){t=i.y+i.height/2;break}t=e==mxConstants.ALIGN_BOTTOM?i.y+i.height:i.x}}else t=e==mxConstants.ALIGN_RIGHT?Math.max(t,i.x+i.width):e==mxConstants.ALIGN_TOP?Math.min(t,i.y):e==mxConstants.ALIGN_BOTTOM?Math.max(t,i.y+i.height):Math.min(t,i.x)}if(null!=t){this.model.beginUpdate();try{for(a=0;a<n.length;a++)null!=(i=this.getCellGeometry(n[a]))&&!this.model.isEdge(n[a])&&(i=i.clone(),e==mxConstants.ALIGN_CENTER?i.x=t-i.width/2:e==mxConstants.ALIGN_RIGHT?i.x=t-i.width:e==mxConstants.ALIGN_TOP?i.y=t:e==mxConstants.ALIGN_MIDDLE?i.y=t-i.height/2:e==mxConstants.ALIGN_BOTTOM?i.y=t-i.height:i.x=t,this.model.setGeometry(n[a],i));this.fireEvent(new mxEventObject(mxEvent.ALIGN_CELLS,"align",e,"cells",n))}finally{this.model.endUpdate()}}}return n},mxGraph.prototype.flipEdge=function(e){if(null!=e&&null!=this.alternateEdgeStyle){this.model.beginUpdate();try{var n=this.model.getStyle(e);null==n||0==n.length?this.model.setStyle(e,this.alternateEdgeStyle):this.model.setStyle(e,null),this.resetEdge(e),this.fireEvent(new mxEventObject(mxEvent.FLIP_EDGE,"edge",e))}finally{this.model.endUpdate()}}return e},mxGraph.prototype.addImageBundle=function(e){this.imageBundles.push(e)},mxGraph.prototype.removeImageBundle=function(e){for(var n=[],t=0;t<this.imageBundles.length;t++)this.imageBundles[t]!=e&&n.push(this.imageBundles[t]);this.imageBundles=n},mxGraph.prototype.getImageFromBundles=function(e){if(null!=e)for(var n=0;n<this.imageBundles.length;n++){var t=this.imageBundles[n].getImage(e);if(null!=t)return t}return null},mxGraph.prototype.orderCells=function(e,n){null==n&&(n=mxUtils.sortCells(this.getSelectionCells(),!0)),this.model.beginUpdate();try{this.cellsOrdered(n,e),this.fireEvent(new mxEventObject(mxEvent.ORDER_CELLS,"back",e,"cells",n))}finally{this.model.endUpdate()}return n},mxGraph.prototype.cellsOrdered=function(e,n){if(null!=e){this.model.beginUpdate();try{for(var t=0;t<e.length;t++){var a=this.model.getParent(e[t]);n?this.model.add(a,e[t],t):this.model.add(a,e[t],this.model.getChildCount(a)-1)}this.fireEvent(new mxEventObject(mxEvent.CELLS_ORDERED,"back",n,"cells",e))}finally{this.model.endUpdate()}}},mxGraph.prototype.groupCells=function(e,n,t){null==t&&(t=mxUtils.sortCells(this.getSelectionCells(),!0)),t=this.getCellsForGroup(t),null==e&&(e=this.createGroupCell(t));var a=this.getBoundsForGroup(e,t,n);if(0<t.length&&null!=a){var i=this.model.getParent(e);null==i&&(i=this.model.getParent(t[0])),this.model.beginUpdate();try{null==this.getCellGeometry(e)&&this.model.setGeometry(e,new mxGeometry);var s=this.model.getChildCount(i);this.cellsAdded([e],i,s,null,null,!1),s=this.model.getChildCount(e),this.cellsAdded(t,e,s,null,null,!1,!1),this.cellsMoved(t,-a.x,-a.y,!1,!0),this.cellsResized([e],[a]),this.fireEvent(new mxEventObject(mxEvent.GROUP_CELLS,"group",e,"border",n,"cells",t))}finally{this.model.endUpdate()}}return e},mxGraph.prototype.getCellsForGroup=function(e){var n=[];if(null!=e&&0<e.length){var t=this.model.getParent(e[0]);n.push(e[0]);for(var a=1;a<e.length;a++)this.model.getParent(e[a])==t&&n.push(e[a])}return n},mxGraph.prototype.getBoundsForGroup=function(e,n,t){return null!=(n=this.getBoundingBoxFromGeometry(n))&&(this.isSwimlane(e)&&(e=this.getStartSize(e),n.x-=e.width,n.y-=e.height,n.width+=e.width,n.height+=e.height),n.x-=t,n.y-=t,n.width+=2*t,n.height+=2*t),n},mxGraph.prototype.createGroupCell=function(e){return(e=new mxCell("")).setVertex(!0),e.setConnectable(!1),e},mxGraph.prototype.ungroupCells=function(e){var n=[];if(null==e){e=this.getSelectionCells();for(var t=[],a=0;a<e.length;a++)0<this.model.getChildCount(e[a])&&t.push(e[a]);e=t}if(null!=e&&0<e.length){this.model.beginUpdate();try{for(a=0;a<e.length;a++){if(null!=(i=this.model.getChildren(e[a]))&&0<i.length){var i=i.slice(),s=this.model.getParent(e[a]),o=this.model.getChildCount(s);this.cellsAdded(i,s,o,null,null,!0),n=n.concat(i)}}this.cellsRemoved(this.addAllEdges(e)),this.fireEvent(new mxEventObject(mxEvent.UNGROUP_CELLS,"cells",e))}finally{this.model.endUpdate()}}return n},mxGraph.prototype.removeCellsFromParent=function(e){null==e&&(e=this.getSelectionCells()),this.model.beginUpdate();try{var n=this.getDefaultParent(),t=this.model.getChildCount(n);this.cellsAdded(e,n,t,null,null,!0),this.fireEvent(new mxEventObject(mxEvent.REMOVE_CELLS_FROM_PARENT,"cells",e))}finally{this.model.endUpdate()}return e},mxGraph.prototype.updateGroupBounds=function(e,n,t){null==e&&(e=this.getSelectionCells()),n=null!=n?n:0,t=null!=t&&t,this.model.beginUpdate();try{for(var a=0;a<e.length;a++){if(null!=(r=this.getCellGeometry(e[a]))){var i=this.getChildCells(e[a]);if(null!=i&&0<i.length){var s=this.getBoundingBoxFromGeometry(i);if(0<s.width&&0<s.height){var o=this.isSwimlane(e[a])?this.getStartSize(e[a]):new mxRectangle,r=r.clone();t&&(r.x+=s.x-o.width-n,r.y+=s.y-o.height-n),r.width=s.width+o.width+2*n,r.height=s.height+o.height+2*n,this.model.setGeometry(e[a],r),this.moveCells(i,-s.x+o.width+n,-s.y+o.height+n)}}}}}finally{this.model.endUpdate()}return e},mxGraph.prototype.cloneCells=function(e,n){n=null==n||n;var t=null;if(null!=e){for(var a={},i=(t=[],0);i<e.length;i++){a[s=mxCellPath.create(e[i])]=e[i],t.push(e[i])}if(0<t.length){var s=this.view.scale,o=this.view.translate;for(t=this.model.cloneCells(e,!0),i=0;i<e.length;i++)if(!n&&this.model.isEdge(t[i])&&null!=this.getEdgeValidationError(t[i],this.model.getTerminal(t[i],!0),this.model.getTerminal(t[i],!1)))t[i]=null;else{var r=this.model.getGeometry(t[i]);if(null!=r){var l=this.view.getState(e[i]),d=this.view.getState(this.model.getParent(e[i]));if(null!=l&&null!=d){var c=d.origin.x;d=d.origin.y;if(this.model.isEdge(t[i])){l=l.absolutePoints;for(var m=this.model.getTerminal(e[i],!0),u=mxCellPath.create(m);null!=m&&null==a[u];)m=this.model.getParent(m),u=mxCellPath.create(m);for(null==m&&r.setTerminalPoint(new mxPoint(l[0].x/s-o.x,l[0].y/s-o.y),!0),m=this.model.getTerminal(e[i],!1),u=mxCellPath.create(m);null!=m&&null==a[u];)m=this.model.getParent(m),u=mxCellPath.create(m);if(null==m&&(m=l.length-1,r.setTerminalPoint(new mxPoint(l[m].x/s-o.x,l[m].y/s-o.y),!1)),null!=(r=r.points))for(l=0;l<r.length;l++)r[l].x+=c,r[l].y+=d}else r.x+=c,r.y+=d}}}}else t=[]}return t},mxGraph.prototype.insertVertex=function(e,n,t,a,i,s,o,r,l){return n=this.createVertex(e,n,t,a,i,s,o,r,l),this.addCell(n,e)},mxGraph.prototype.createVertex=function(e,n,t,a,i,s,o,r,l){return(e=new mxGeometry(a,i,s,o)).relative=null!=l&&l,(t=new mxCell(t,e,r)).setId(n),t.setVertex(!0),t.setConnectable(!0),t},mxGraph.prototype.insertEdge=function(e,n,t,a,i,s){return n=this.createEdge(e,n,t,a,i,s),this.addEdge(n,e,a,i)},mxGraph.prototype.createEdge=function(e,n,t,a,i,s){return(e=new mxCell(t,new mxGeometry,s)).setId(n),e.setEdge(!0),e.geometry.relative=!0,e},mxGraph.prototype.addEdge=function(e,n,t,a,i){return this.addCell(e,n,i,t,a)},mxGraph.prototype.addCell=function(e,n,t,a,i){return this.addCells([e],n,t,a,i)[0]},mxGraph.prototype.addCells=function(e,n,t,a,i){null==n&&(n=this.getDefaultParent()),null==t&&(t=this.model.getChildCount(n)),this.model.beginUpdate();try{this.cellsAdded(e,n,t,a,i,!1,!0),this.fireEvent(new mxEventObject(mxEvent.ADD_CELLS,"cells",e,"parent",n,"index",t,"source",a,"target",i))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellsAdded=function(e,n,t,a,i,s,o){if(null!=e&&null!=n&&null!=t){this.model.beginUpdate();try{for(var r=null!=(d=s?this.view.getState(n):null)?d.origin:null,l=new mxPoint(0,0),d=0;d<e.length;d++)if(null==e[d])t--;else{var c=this.model.getParent(e[d]);if(null!=r&&e[d]!=n&&n!=c){var m=this.view.getState(c),u=null!=m?m.origin:l;if(null!=(p=this.model.getGeometry(e[d]))){var p,g=u.x-r.x,v=u.y-r.y;(p=p.clone()).translate(g,v),!p.relative&&this.model.isVertex(e[d])&&!this.isAllowNegativeCoordinates()&&(p.x=Math.max(0,p.x),p.y=Math.max(0,p.y)),this.model.setGeometry(e[d],p)}}n==c&&t+d>this.model.getChildCount(n)&&t--,this.model.add(n,e[d],t+d),this.isExtendParentsOnAdd()&&this.isExtendParent(e[d])&&this.extendParent(e[d]),(null==o||o)&&this.constrainChild(e[d]),null!=a&&this.cellConnected(e[d],a,!0),null!=i&&this.cellConnected(e[d],i,!1)}this.fireEvent(new mxEventObject(mxEvent.CELLS_ADDED,"cells",e,"parent",n,"index",t,"source",a,"target",i,"absolute",s))}finally{this.model.endUpdate()}}},mxGraph.prototype.removeCells=function(e,n){n=null==n||n,null==e&&(e=this.getDeletableCells(this.getSelectionCells())),n&&(e=this.getDeletableCells(this.addAllEdges(e))),this.model.beginUpdate();try{this.cellsRemoved(e),this.fireEvent(new mxEventObject(mxEvent.REMOVE_CELLS,"cells",e,"includeEdges",n))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellsRemoved=function(e){if(null!=e&&0<e.length){var n=this.view.scale,t=this.view.translate;this.model.beginUpdate();try{for(var a={},i=0;i<e.length;i++){var s=mxCellPath.create(e[i]);a[s]=e[i]}for(i=0;i<e.length;i++){for(var o=this.getConnections(e[i]),r=0;r<o.length;r++)if(null==a[s=mxCellPath.create(o[r])]){if(null!=(d=this.model.getGeometry(o[r]))){var l=this.view.getState(o[r]);if(null!=l){var d=d.clone(),c=l.getVisibleTerminal(!0)==e[i],m=l.absolutePoints,u=c?0:m.length-1;d.setTerminalPoint(new mxPoint(m[u].x/n-t.x,m[u].y/n-t.y),c),this.model.setTerminal(o[r],null,c),this.model.setGeometry(o[r],d)}}}this.model.remove(e[i])}this.fireEvent(new mxEventObject(mxEvent.CELLS_REMOVED,"cells",e))}finally{this.model.endUpdate()}}},mxGraph.prototype.splitEdge=function(e,n,t,a,i){a=a||0,i=i||0,null==t&&(t=this.cloneCells([e])[0]);var s=this.model.getParent(e),o=this.model.getTerminal(e,!0);this.model.beginUpdate();try{this.cellsMoved(n,a,i,!1,!1),this.cellsAdded(n,s,this.model.getChildCount(s),null,null,!0),this.cellsAdded([t],s,this.model.getChildCount(s),o,n[0],!1),this.cellConnected(e,n[0],!0),this.fireEvent(new mxEventObject(mxEvent.SPLIT_EDGE,"edge",e,"cells",n,"newEdge",t,"dx",a,"dy",i))}finally{this.model.endUpdate()}return t},mxGraph.prototype.toggleCells=function(e,n,t){null==n&&(n=this.getSelectionCells()),t&&(n=this.addAllEdges(n)),this.model.beginUpdate();try{this.cellsToggled(n,e),this.fireEvent(new mxEventObject(mxEvent.TOGGLE_CELLS,"show",e,"cells",n,"includeEdges",t))}finally{this.model.endUpdate()}return n},mxGraph.prototype.cellsToggled=function(e,n){if(null!=e&&0<e.length){this.model.beginUpdate();try{for(var t=0;t<e.length;t++)this.model.setVisible(e[t],n)}finally{this.model.endUpdate()}}},mxGraph.prototype.foldCells=function(e,n,t,a){n=null!=n&&n,null==t&&(t=this.getFoldableCells(this.getSelectionCells(),e)),this.stopEditing(!1),this.model.beginUpdate();try{this.cellsFolded(t,e,n,a),this.fireEvent(new mxEventObject(mxEvent.FOLD_CELLS,"collapse",e,"recurse",n,"cells",t))}finally{this.model.endUpdate()}return t},mxGraph.prototype.cellsFolded=function(e,n,t,a){if(null!=e&&0<e.length){this.model.beginUpdate();try{for(var i=0;i<e.length;i++)if((!a||this.isCellFoldable(e[i],n))&&n!=this.isCellCollapsed(e[i])&&(this.model.setCollapsed(e[i],n),this.swapBounds(e[i],n),this.isExtendParent(e[i])&&this.extendParent(e[i]),t)){var s=this.model.getChildren(e[i]);this.foldCells(s,n,t)}this.fireEvent(new mxEventObject(mxEvent.CELLS_FOLDED,"cells",e,"collapse",n,"recurse",t))}finally{this.model.endUpdate()}}},mxGraph.prototype.swapBounds=function(e,n){if(null!=e){var t=this.model.getGeometry(e);null!=t&&(t=t.clone(),this.updateAlternateBounds(e,t,n),t.swap(),this.model.setGeometry(e,t))}},mxGraph.prototype.updateAlternateBounds=function(e,n,t){if(null!=e&&null!=n){if(t=null!=(t=this.view.getState(e))?t.style:this.getCellStyle(e),null==n.alternateBounds){var a=n;this.collapseToPreferredSize&&(null!=(e=this.getPreferredSizeForCell(e))&&(a=e,0<(e=mxUtils.getValue(t,mxConstants.STYLE_STARTSIZE))&&(a.height=Math.max(a.height,e)))),n.alternateBounds=new mxRectangle(0,0,a.width,a.height)}if(null!=n.alternateBounds){n.alternateBounds.x=n.x,n.alternateBounds.y=n.y;var i=mxUtils.toRadians(t[mxConstants.STYLE_ROTATION]||"0");0!=i&&(e=n.alternateBounds.getCenterX()-n.getCenterX(),t=n.alternateBounds.getCenterY()-n.getCenterY(),a=Math.cos(i),i=Math.sin(i),n.alternateBounds.x+=a*e-i*t-e,n.alternateBounds.y+=i*e+a*t-t)}}},mxGraph.prototype.addAllEdges=function(e){var n=e.slice();return n.concat(this.getAllEdges(e))},mxGraph.prototype.getAllEdges=function(e){var n=[];if(null!=e)for(var t=0;t<e.length;t++){for(var a=this.model.getEdgeCount(e[t]),i=0;i<a;i++)n.push(this.model.getEdgeAt(e[t],i));a=this.model.getChildren(e[t]),n=n.concat(this.getAllEdges(a))}return n},mxGraph.prototype.updateCellSize=function(e,n){n=null!=n&&n,this.model.beginUpdate();try{this.cellSizeUpdated(e,n),this.fireEvent(new mxEventObject(mxEvent.UPDATE_CELL_SIZE,"cell",e,"ignoreChildren",n))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellSizeUpdated=function(e,n){if(null!=e){this.model.beginUpdate();try{var t=this.getPreferredSizeForCell(e),a=this.model.getGeometry(e);if(null!=t&&null!=a){var i=this.isCellCollapsed(e);a=a.clone();if(this.isSwimlane(e)){var s=this.view.getState(e),o=null!=s?s.style:this.getCellStyle(e),r=this.model.getStyle(e);null==r&&(r=""),mxUtils.getValue(o,mxConstants.STYLE_HORIZONTAL,!0)?(r=mxUtils.setStyle(r,mxConstants.STYLE_STARTSIZE,t.height+8),i&&(a.height=t.height+8),a.width=t.width):(r=mxUtils.setStyle(r,mxConstants.STYLE_STARTSIZE,t.width+8),i&&(a.width=t.width+8),a.height=t.height),this.model.setStyle(e,r)}else a.width=t.width,a.height=t.height;if(!n&&!i){var l=this.view.getBounds(this.model.getChildren(e));if(null!=l){var d=this.view.translate,c=this.view.scale,m=(l.y+l.height)/c-a.y-d.y;a.width=Math.max(a.width,(l.x+l.width)/c-a.x-d.x),a.height=Math.max(a.height,m)}}this.cellsResized([e],[a])}}finally{this.model.endUpdate()}}},mxGraph.prototype.getPreferredSizeForCell=function(e){var n=null;if(null!=e){var t=this.view.getState(e),a=null!=t?t.style:this.getCellStyle(e);if(null!=a&&!this.model.isEdge(e)){var i=a[mxConstants.STYLE_FONTSIZE]||mxConstants.DEFAULT_FONTSIZE,s=0;n=0;null==this.getImage(t)&&null==a[mxConstants.STYLE_IMAGE]||a[mxConstants.STYLE_SHAPE]!=mxConstants.SHAPE_LABEL||(a[mxConstants.STYLE_VERTICAL_ALIGN]==mxConstants.ALIGN_MIDDLE&&(s+=parseFloat(a[mxConstants.STYLE_IMAGE_WIDTH])||mxLabel.prototype.imageSize),a[mxConstants.STYLE_ALIGN]!=mxConstants.ALIGN_CENTER&&(n+=parseFloat(a[mxConstants.STYLE_IMAGE_HEIGHT])||mxLabel.prototype.imageSize)),s+=2*(a[mxConstants.STYLE_SPACING]||0),s+=a[mxConstants.STYLE_SPACING_LEFT]||0,s+=a[mxConstants.STYLE_SPACING_RIGHT]||0,n+=2*(a[mxConstants.STYLE_SPACING]||0),n+=a[mxConstants.STYLE_SPACING_TOP]||0,n+=a[mxConstants.STYLE_SPACING_BOTTOM]||0,null!=(t=this.getFoldingImage(t))&&(s+=t.width+8),n=null!=(t=this.getLabel(e))&&0<t.length?(this.isHtmlLabel(e)||(t=t.replace(/\n/g,"<br>")),e=(i=mxUtils.getSizeForString(t,i,a[mxConstants.STYLE_FONTFAMILY])).width+s,n=i.height+n,mxUtils.getValue(a,mxConstants.STYLE_HORIZONTAL,!0)||(a=n,n=e,e=a),this.gridEnabled&&(e=this.snap(e+this.gridSize/2),n=this.snap(n+this.gridSize/2)),new mxRectangle(0,0,e,n)):new mxRectangle(0,0,a=4*this.gridSize,a)}}return n},mxGraph.prototype.handleGesture=function(e,n){if(.2<Math.abs(1-n.scale)){var t=this.view.scale,a=this.view.translate,i=e.width*n.scale,s=e.height*n.scale,o=e.y-(s-e.height)/2;t=new mxRectangle(this.snap((e.x-(i-e.width)/2)/t)-a.x,this.snap(o/t)-a.y,this.snap(i/t),this.snap(s/t));this.resizeCell(e.cell,t)}},mxGraph.prototype.resizeCell=function(e,n){return this.resizeCells([e],[n])[0]},mxGraph.prototype.resizeCells=function(e,n){this.model.beginUpdate();try{this.cellsResized(e,n),this.fireEvent(new mxEventObject(mxEvent.RESIZE_CELLS,"cells",e,"bounds",n))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellsResized=function(e,n){if(null!=e&&null!=n&&e.length==n.length){this.model.beginUpdate();try{for(var t=0;t<e.length;t++){var a=n[t],i=this.model.getGeometry(e[t]);if(null!=i&&(i.x!=a.x||i.y!=a.y||i.width!=a.width||i.height!=a.height)){if((i=i.clone()).relative){var s=i.offset;null!=s&&(s.x+=a.x-i.x,s.y+=a.y-i.y)}else i.x=a.x,i.y=a.y;i.width=a.width,i.height=a.height,!i.relative&&this.model.isVertex(e[t])&&!this.isAllowNegativeCoordinates()&&(i.x=Math.max(0,i.x),i.y=Math.max(0,i.y)),this.model.setGeometry(e[t],i),this.isExtendParent(e[t])&&this.extendParent(e[t])}}this.resetEdgesOnResize&&this.resetEdges(e),this.fireEvent(new mxEventObject(mxEvent.CELLS_RESIZED,"cells",e,"bounds",n))}finally{this.model.endUpdate()}}},mxGraph.prototype.extendParent=function(e){if(null!=e){var n=this.model.getParent(e),t=this.model.getGeometry(n);null!=n&&null!=t&&!this.isCellCollapsed(n)&&(null!=(e=this.model.getGeometry(e))&&(t.width<e.x+e.width||t.height<e.y+e.height))&&((t=t.clone()).width=Math.max(t.width,e.x+e.width),t.height=Math.max(t.height,e.y+e.height),this.cellsResized([n],[t]))}},mxGraph.prototype.importCells=function(e,n,t,a,i){return this.moveCells(e,n,t,!0,a,i)},mxGraph.prototype.moveCells=function(e,n,t,a,i,s){if(n=null!=n?n:0,t=null!=t?t:0,a=null!=a&&a,null!=e&&(0!=n||0!=t||a||null!=i)){this.model.beginUpdate();try{a&&(e=this.cloneCells(e,this.isCloneInvalidEdges()),null==i&&(i=this.getDefaultParent()));var o=this.isAllowNegativeCoordinates();if(null!=i&&this.setAllowNegativeCoordinates(!0),this.cellsMoved(e,n,t,!a&&this.isDisconnectOnMove()&&this.isAllowDanglingEdges(),null==i),this.setAllowNegativeCoordinates(o),null!=i){var r=this.model.getChildCount(i);this.cellsAdded(e,i,r,null,null,!0)}this.fireEvent(new mxEventObject(mxEvent.MOVE_CELLS,"cells",e,"dx",n,"dy",t,"clone",a,"target",i,"event",s))}finally{this.model.endUpdate()}}return e},mxGraph.prototype.cellsMoved=function(e,n,t,a,i){if(null!=e&&(0!=n||0!=t)){this.model.beginUpdate();try{a&&this.disconnectGraph(e);for(var s=0;s<e.length;s++)this.translateCell(e[s],n,t),i&&this.constrainChild(e[s]);this.resetEdgesOnMove&&this.resetEdges(e),this.fireEvent(new mxEventObject(mxEvent.CELLS_MOVED,"cells",e,"dx",t,"dy",t,"disconnect",a))}finally{this.model.endUpdate()}}},mxGraph.prototype.translateCell=function(e,n,t){var a=this.model.getGeometry(e);null!=a&&((a=a.clone()).translate(n,t),!a.relative&&this.model.isVertex(e)&&!this.isAllowNegativeCoordinates()&&(a.x=Math.max(0,a.x),a.y=Math.max(0,a.y)),a.relative&&!this.model.isEdge(e)&&(null==a.offset?a.offset=new mxPoint(n,t):(a.offset.x+=n,a.offset.y+=t)),this.model.setGeometry(e,a))},mxGraph.prototype.getCellContainmentArea=function(e){if(null!=e&&!this.model.isEdge(e)){var n=this.model.getParent(e);if(n==this.getDefaultParent()||n==this.getCurrentRoot())return this.getMaximumGraphBounds();if(null!=n&&n!=this.getDefaultParent())if(null!=(i=this.model.getGeometry(n))){var t=e=0,a=i.width,i=i.height;return this.isSwimlane(n)&&(e=(n=this.getStartSize(n)).width,a-=n.width,t=n.height,i-=n.height),new mxRectangle(e,t,a,i)}}return null},mxGraph.prototype.getMaximumGraphBounds=function(){return this.maximumGraphBounds},mxGraph.prototype.constrainChild=function(e){if(null!=e){var n=this.model.getGeometry(e),t=this.isConstrainChild(e)?this.getCellContainmentArea(e):this.getMaximumGraphBounds();null!=n&&null!=t&&!n.relative&&(n.x<t.x||n.y<t.y||t.width<n.x+n.width||t.height<n.y+n.height)&&(e=this.getOverlap(e),0<t.width&&(n.x=Math.min(n.x,t.x+t.width-(1-e)*n.width)),0<t.height&&(n.y=Math.min(n.y,t.y+t.height-(1-e)*n.height)),n.x=Math.max(n.x,t.x-n.width*e),n.y=Math.max(n.y,t.y-n.height*e))}},mxGraph.prototype.resetEdges=function(e){if(null!=e){for(var n={},t=0;t<e.length;t++){var a=mxCellPath.create(e[t]);n[a]=e[t]}this.model.beginUpdate();try{for(t=0;t<e.length;t++){var i=this.model.getEdges(e[t]);if(null!=i)for(a=0;a<i.length;a++){var s=this.view.getState(i[a]),o=null!=s?s.getVisibleTerminal(!0):this.view.getVisibleTerminal(i[a],!0),r=null!=s?s.getVisibleTerminal(!1):this.view.getVisibleTerminal(i[a],!1),l=mxCellPath.create(o),d=mxCellPath.create(r);(null==n[l]||null==n[d])&&this.resetEdge(i[a])}this.resetEdges(this.model.getChildren(e[t]))}}finally{this.model.endUpdate()}}},mxGraph.prototype.resetEdge=function(e){var n=this.model.getGeometry(e);return null!=n&&null!=n.points&&0<n.points.length&&((n=n.clone()).points=[],this.model.setGeometry(e,n)),e},mxGraph.prototype.getAllConnectionConstraints=function(e,n){return null!=e&&null!=e.shape&&null!=e.shape.stencil?e.shape.stencil.constraints:null},mxGraph.prototype.getConnectionConstraint=function(e,n,t){n=null;var a=e.style[t?mxConstants.STYLE_EXIT_X:mxConstants.STYLE_ENTRY_X];if(null!=a){var i=e.style[t?mxConstants.STYLE_EXIT_Y:mxConstants.STYLE_ENTRY_Y];null!=i&&(n=new mxPoint(parseFloat(a),parseFloat(i)))}return a=!1,null!=n&&(a=mxUtils.getValue(e.style,t?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,!0)),new mxConnectionConstraint(n,a)},mxGraph.prototype.setConnectionConstraint=function(e,n,t,a){if(null!=a){this.model.beginUpdate();try{null==a||null==a.point?(this.setCellStyles(t?mxConstants.STYLE_EXIT_X:mxConstants.STYLE_ENTRY_X,null,[e]),this.setCellStyles(t?mxConstants.STYLE_EXIT_Y:mxConstants.STYLE_ENTRY_Y,null,[e]),this.setCellStyles(t?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,null,[e])):null!=a.point&&(this.setCellStyles(t?mxConstants.STYLE_EXIT_X:mxConstants.STYLE_ENTRY_X,a.point.x,[e]),this.setCellStyles(t?mxConstants.STYLE_EXIT_Y:mxConstants.STYLE_ENTRY_Y,a.point.y,[e]),a.perimeter?this.setCellStyles(t?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,null,[e]):this.setCellStyles(t?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,"0",[e]))}finally{this.model.endUpdate()}}},mxGraph.prototype.getConnectionPoint=function(e,n){var t=null;if(null!=e){var a=this.view.getPerimeterBounds(e),i=new mxPoint(a.getCenterX(),a.getCenterY()),s=e.style[mxConstants.STYLE_DIRECTION],o=0;if(null!=s&&("north"==s?o+=270:"west"==s?o+=180:"south"==s&&(o+=90),"north"==s||"south"==s)){a.x+=a.width/2-a.height/2,a.y+=a.height/2-a.width/2;var r=a.width;a.width=a.height,a.height=r}if(null!=n.point){var l=t=1,d=0,c=0;if(this.getModel().isVertex(e.cell)){var m=e.style[mxConstants.STYLE_FLIPH],u=e.style[mxConstants.STYLE_FLIPV];null!=e.shape.stencil&&(m=1==mxUtils.getValue(e.style,"stencilFlipH",0)||m,u=1==mxUtils.getValue(e.style,"stencilFlipV",0)||u),"north"!=s&&"south"!=s||(r=m,m=u,u=r),m&&(t=-1,d=-a.width),u&&(l=-1,c=-a.height)}t=new mxPoint(a.x+n.point.x*a.width*t-d,a.y+n.point.y*a.height*l-c)}s=e.style[mxConstants.STYLE_ROTATION]||0,n.perimeter?(0!=o&&null!=t&&(r=a=0,90==o?r=1:180==o?a=-1:270==s&&(r=-1),t=mxUtils.getRotatedPoint(t,a,r,i)),null!=t&&n.perimeter&&(t=this.view.getPerimeterPoint(e,t,!1))):s+=o,0!=s&&null!=t&&(o=mxUtils.toRadians(s),a=Math.cos(o),r=Math.sin(o),t=mxUtils.getRotatedPoint(t,a,r,i))}return t},mxGraph.prototype.connectCell=function(e,n,t,a){this.model.beginUpdate();try{var i=this.model.getTerminal(e,t);this.cellConnected(e,n,t,a),this.fireEvent(new mxEventObject(mxEvent.CONNECT_CELL,"edge",e,"terminal",n,"source",t,"previous",i))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellConnected=function(e,n,t,a){if(null!=e){this.model.beginUpdate();try{var i=this.model.getTerminal(e,t);this.setConnectionConstraint(e,n,t,a),this.isPortsEnabled()&&(a=null,this.isPort(n)&&(a=n.getId(),n=this.getTerminalForPort(n,t)),this.setCellStyles(t?mxConstants.STYLE_SOURCE_PORT:mxConstants.STYLE_TARGET_PORT,a,[e])),this.model.setTerminal(e,n,t),this.resetEdgesOnConnect&&this.resetEdge(e),this.fireEvent(new mxEventObject(mxEvent.CELL_CONNECTED,"edge",e,"terminal",n,"source",t,"previous",i))}finally{this.model.endUpdate()}}},mxGraph.prototype.disconnectGraph=function(e){if(null!=e){this.model.beginUpdate();try{for(var n=this.view.scale,t=this.view.translate,a={},i=0;i<e.length;i++){a[mxCellPath.create(e[i])]=e[i]}for(i=0;i<e.length;i++)if(this.model.isEdge(e[i])){if(null!=(r=this.model.getGeometry(e[i]))){var s=this.view.getState(e[i]),o=this.view.getState(this.model.getParent(e[i]));if(null!=s&&null!=o){var r=r.clone(),l=-o.origin.x,d=-o.origin.y,c=s.absolutePoints,m=this.model.getTerminal(e[i],!0);if(null!=m&&this.isCellDisconnectable(e[i],m,!0)){for(var u=mxCellPath.create(m);null!=m&&null==a[u];)m=this.model.getParent(m),u=mxCellPath.create(m);null==m&&(r.setTerminalPoint(new mxPoint(c[0].x/n-t.x+l,c[0].y/n-t.y+d),!0),this.model.setTerminal(e[i],null,!0))}var p=this.model.getTerminal(e[i],!1);if(null!=p&&this.isCellDisconnectable(e[i],p,!1)){for(var g=mxCellPath.create(p);null!=p&&null==a[g];)p=this.model.getParent(p),g=mxCellPath.create(p);if(null==p){var v=c.length-1;r.setTerminalPoint(new mxPoint(c[v].x/n-t.x+l,c[v].y/n-t.y+d),!1),this.model.setTerminal(e[i],null,!1)}}this.model.setGeometry(e[i],r)}}}}finally{this.model.endUpdate()}}},mxGraph.prototype.getCurrentRoot=function(){return this.view.currentRoot},mxGraph.prototype.getTranslateForRoot=function(e){return null},mxGraph.prototype.isPort=function(e){return!1},mxGraph.prototype.getTerminalForPort=function(e,n){return this.model.getParent(e)},mxGraph.prototype.getChildOffsetForCell=function(e){return null},mxGraph.prototype.enterGroup=function(e){null!=(e=e||this.getSelectionCell())&&this.isValidRoot(e)&&(this.view.setCurrentRoot(e),this.clearSelection())},mxGraph.prototype.exitGroup=function(){var e=this.model.getRoot(),n=this.getCurrentRoot();if(null!=n){for(var t=this.model.getParent(n);t!=e&&!this.isValidRoot(t)&&this.model.getParent(t)!=e;)t=this.model.getParent(t);t==e||this.model.getParent(t)==e?this.view.setCurrentRoot(null):this.view.setCurrentRoot(t),null!=this.view.getState(n)&&this.setSelectionCell(n)}},mxGraph.prototype.home=function(){var e=this.getCurrentRoot();null!=e&&(this.view.setCurrentRoot(null),null!=this.view.getState(e)&&this.setSelectionCell(e))},mxGraph.prototype.isValidRoot=function(e){return null!=e},mxGraph.prototype.getGraphBounds=function(){return this.view.getGraphBounds()},mxGraph.prototype.getCellBounds=function(e,n,t){var a=[e];if(n&&(a=a.concat(this.model.getEdges(e))),a=this.view.getBounds(a),t){t=this.model.getChildCount(e);for(var i=0;i<t;i++){var s=this.getCellBounds(this.model.getChildAt(e,i),n,!0);null!=a?a.add(s):a=s}}return a},mxGraph.prototype.getBoundingBoxFromGeometry=function(e,n){n=null!=n&&n;var t=null;if(null!=e)for(var a=0;a<e.length;a++)if(n||this.model.isVertex(e[a])){var i=this.getCellGeometry(e[a]);if(null!=i){var s=i.points;if(null!=s&&0<s.length){for(var o=new mxRectangle(s[0].x,s[0].y,0,0),r=function(e){null!=e&&o.add(new mxRectangle(e.x,e.y,0,0))},l=1;l<s.length;l++)r(s[l]);r(i.getTerminalPoint(!0)),r(i.getTerminalPoint(!1))}null==t?t=new mxRectangle(i.x,i.y,i.width,i.height):t.add(i)}}return t},mxGraph.prototype.refresh=function(e){this.view.clear(e,null==e),this.view.validate(),this.sizeDidChange(),this.fireEvent(new mxEventObject(mxEvent.REFRESH))},mxGraph.prototype.snap=function(e){return this.gridEnabled&&(e=Math.round(e/this.gridSize)*this.gridSize),e},mxGraph.prototype.panGraph=function(e,n){if(this.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.container))this.container.scrollLeft=-e,this.container.scrollTop=-n;else{var t=this.view.getCanvas();if(this.dialect==mxConstants.DIALECT_SVG)if(0==e&&0==n){if(mxClient.IS_IE?t.setAttribute("transform","translate("+e+","+n+")"):t.removeAttribute("transform"),null!=this.shiftPreview1){for(var a=this.shiftPreview1.firstChild;null!=a;){var i=a.nextSibling;this.container.appendChild(a),a=i}for(this.shiftPreview1.parentNode.removeChild(this.shiftPreview1),this.shiftPreview1=null,this.container.appendChild(t.parentNode),a=this.shiftPreview2.firstChild;null!=a;)i=a.nextSibling,this.container.appendChild(a),a=i;this.shiftPreview2.parentNode.removeChild(this.shiftPreview2),this.shiftPreview2=null}}else{if(t.setAttribute("transform","translate("+e+","+n+")"),null==this.shiftPreview1){this.shiftPreview1=document.createElement("div"),this.shiftPreview1.style.position="absolute",this.shiftPreview1.style.overflow="visible",this.shiftPreview2=document.createElement("div"),this.shiftPreview2.style.position="absolute",this.shiftPreview2.style.overflow="visible";var s=this.shiftPreview1;for(a=this.container.firstChild;null!=a;)i=a.nextSibling,a!=t.parentNode?s.appendChild(a):s=this.shiftPreview2,a=i;this.container.insertBefore(this.shiftPreview1,t.parentNode),this.container.appendChild(this.shiftPreview2)}this.shiftPreview1.style.left=e+"px",this.shiftPreview1.style.top=n+"px",this.shiftPreview2.style.left=e+"px",this.shiftPreview2.style.top=n+"px"}else t.style.left=e+"px",t.style.top=n+"px";this.panDx=e,this.panDy=n,this.fireEvent(new mxEventObject(mxEvent.PAN))}},mxGraph.prototype.zoomIn=function(){this.zoom(this.zoomFactor)},mxGraph.prototype.zoomOut=function(){this.zoom(1/this.zoomFactor)},mxGraph.prototype.zoomActual=function(){1==this.view.scale?this.view.setTranslate(0,0):(this.view.translate.x=0,this.view.translate.y=0,this.view.setScale(1))},mxGraph.prototype.zoomTo=function(e,n){this.zoom(e/this.view.scale,n)},mxGraph.prototype.zoom=function(e,n){n=null!=n?n:this.centerZoom;var t=this.view.scale*e,a=this.view.getState(this.getSelectionCell());if(this.keepSelectionVisibleOnZoom&&null!=a)a=new mxRectangle(a.x*e,a.y*e,a.width*e,a.height*e),this.view.scale=t,this.scrollRectToVisible(a)||(this.view.revalidate(),this.view.setScale(t));else if(n&&!mxUtils.hasScrollbars(this.container)){a=this.container.offsetWidth;var i=this.container.offsetHeight;if(1<e){var s=(e-1)/(2*t);a=a*-s,i=i*-s}else a*=s=(1/e-1)/(2*this.view.scale),i*=s;this.view.scaleAndTranslate(t,this.view.translate.x+a,this.view.translate.y+i)}else this.view.setScale(t),mxUtils.hasScrollbars(this.container)&&(i=a=0,n&&(a=this.container.offsetWidth*(e-1)/2,i=this.container.offsetHeight*(e-1)/2),this.container.scrollLeft=Math.round(this.container.scrollLeft*e+a),this.container.scrollTop=Math.round(this.container.scrollTop*e+i))},mxGraph.prototype.zoomToRect=function(e){var n=this.container.clientWidth/e.width/(this.container.clientHeight/e.height);e.x=Math.max(0,e.x),e.y=Math.max(0,e.y);var t=Math.min(this.container.scrollWidth,e.x+e.width),a=Math.min(this.container.scrollHeight,e.y+e.height);e.width=t-e.x,e.height=a-e.y,n<1?(t=((n=e.height/n)-e.height)/2,e.height=n,n=Math.min(e.y,t),e.y-=n,a=Math.min(this.container.scrollHeight,e.y+e.height),e.height=a-e.y):(t=((n*=e.width)-e.width)/2,e.width=n,n=Math.min(e.x,t),e.x-=n,t=Math.min(this.container.scrollWidth,e.x+e.width),e.width=t-e.x),n=this.container.clientWidth/e.width,t=this.view.scale*n,mxUtils.hasScrollbars(this.container)?(this.view.setScale(t),this.container.scrollLeft=Math.round(e.x*n),this.container.scrollTop=Math.round(e.y*n)):this.view.scaleAndTranslate(t,this.view.translate.x-e.x/this.view.scale,this.view.translate.y-e.y/this.view.scale)},mxGraph.prototype.fit=function(e,n){if(null!=this.container){e=null!=e?e:0,n=null!=n&&n;var t=this.container.clientWidth,a=this.container.clientHeight,i=this.view.getGraphBounds();n&&null!=i.x&&null!=i.y&&(i.width+=i.x,i.height+=i.y,i.x=0,i.y=0);var s=this.view.scale,o=i.width/s,r=i.height/s;null!=this.backgroundImage&&(o=Math.max(o,this.backgroundImage.width-i.x/s),r=Math.max(r,this.backgroundImage.height-i.y/s));var l=n?e:2*e;t=Math.floor(100*Math.min(t/(o+l),a/(r+l)))/100;null!=this.minFitScale&&(t=Math.max(t,this.minFitScale)),null!=this.maxFitScale&&(t=Math.min(t,this.maxFitScale)),n?this.view.scale!=t&&this.view.setScale(t):mxUtils.hasScrollbars(this.container)?(this.view.setScale(t),null!=i.x&&(this.container.scrollLeft=Math.round(i.x/s)*t-e-Math.max(0,(this.container.clientWidth-o*t)/2)),null!=i.y&&(this.container.scrollTop=Math.round(i.y/s)*t-e-Math.max(0,(this.container.clientHeight-r*t)/2))):this.view.scaleAndTranslate(t,null!=i.x?Math.floor(this.view.translate.x-i.x/s+e+1):e,null!=i.y?Math.floor(this.view.translate.y-i.y/s+e+1):e)}return this.view.scale},mxGraph.prototype.scrollCellToVisible=function(e,n){var t=-this.view.translate.x,a=-this.view.translate.y,i=this.view.getState(e);null!=i&&(t=new mxRectangle(t+i.x,a+i.y,i.width,i.height),n&&null!=this.container&&(a=this.container.clientWidth,i=this.container.clientHeight,t.x=t.getCenterX()-a/2,t.width=a,t.y=t.getCenterY()-i/2,t.height=i),this.scrollRectToVisible(t)&&this.view.setTranslate(this.view.translate.x,this.view.translate.y))},mxGraph.prototype.scrollRectToVisible=function(e){var n=!1;if(null!=e){var t=this.container.offsetWidth,a=this.container.offsetHeight,i=Math.min(t,e.width),s=Math.min(a,e.height);if(mxUtils.hasScrollbars(this.container)){t=this.container,e.x+=this.view.translate.x,e.y+=this.view.translate.y;var o=t.scrollLeft-e.x;a=Math.max(o-t.scrollLeft,0);0<o?t.scrollLeft-=o+2:0<(o=e.x+i-t.scrollLeft-t.clientWidth)&&(t.scrollLeft+=o+2),i=t.scrollTop-e.y,o=Math.max(0,i-t.scrollTop),0<i?t.scrollTop-=i+2:0<(i=e.y+s-t.scrollTop-t.clientHeight)&&(t.scrollTop+=i+2),!this.useScrollbarsForPanning&&(0!=a||0!=o)&&this.view.setTranslate(a,o)}else{o=-this.view.translate.x;var r=-this.view.translate.y,l=this.view.scale;e.x+i>o+t&&(this.view.translate.x-=(e.x+i-t-o)/l,n=!0),e.y+s>r+a&&(this.view.translate.y-=(e.y+s-a-r)/l,n=!0),e.x<o&&(this.view.translate.x+=(o-e.x)/l,n=!0),e.y<r&&(this.view.translate.y+=(r-e.y)/l,n=!0),n&&(this.view.refresh(),null!=this.selectionCellsHandler&&this.selectionCellsHandler.refresh())}}return n},mxGraph.prototype.getCellGeometry=function(e){return this.model.getGeometry(e)},mxGraph.prototype.isCellVisible=function(e){return this.model.isVisible(e)},mxGraph.prototype.isCellCollapsed=function(e){return this.model.isCollapsed(e)},mxGraph.prototype.isCellConnectable=function(e){return this.model.isConnectable(e)},mxGraph.prototype.isOrthogonal=function(e){var n=e.style[mxConstants.STYLE_ORTHOGONAL];return null!=n?n:(e=this.view.getEdgeStyle(e))==mxEdgeStyle.SegmentConnector||e==mxEdgeStyle.ElbowConnector||e==mxEdgeStyle.SideToSide||e==mxEdgeStyle.TopToBottom||e==mxEdgeStyle.EntityRelation||e==mxEdgeStyle.OrthConnector},mxGraph.prototype.isLoop=function(e){var n=e.getVisibleTerminalState(!0);return e=e.getVisibleTerminalState(!1),null!=n&&n==e},mxGraph.prototype.isCloneEvent=function(e){return mxEvent.isControlDown(e)},mxGraph.prototype.isToggleEvent=function(e){return mxClient.IS_MAC?mxEvent.isMetaDown(e):mxEvent.isControlDown(e)},mxGraph.prototype.isGridEnabledEvent=function(e){return null!=e&&!mxEvent.isAltDown(e)},mxGraph.prototype.isConstrainedEvent=function(e){return mxEvent.isShiftDown(e)},mxGraph.prototype.isForceMarqueeEvent=function(e){return mxEvent.isAltDown(e)},mxGraph.prototype.validationAlert=function(e){mxUtils.alert(e)},mxGraph.prototype.isEdgeValid=function(e,n,t){return null==this.getEdgeValidationError(e,n,t)},mxGraph.prototype.getEdgeValidationError=function(e,n,t){if(null!=e&&!this.isAllowDanglingEdges()&&(null==n||null==t))return"";if(null!=e&&null==this.model.getTerminal(e,!0)&&null==this.model.getTerminal(e,!1))return null;if(!this.allowLoops&&n==t&&null!=n||!this.isValidConnection(n,t))return"";if(null==n||null==t)return this.allowDanglingEdges?null:"";var a="";this.multigraph||(1<(i=this.model.getEdgesBetween(n,t,!0)).length||1==i.length&&i[0]!=e)&&(a+=(mxResources.get(this.alreadyConnectedResource)||this.alreadyConnectedResource)+"\n");var i=this.model.getDirectedEdgeCount(n,!0,e),s=this.model.getDirectedEdgeCount(t,!1,e);if(null!=this.multiplicities)for(var o=0;o<this.multiplicities.length;o++){var r=this.multiplicities[o].check(this,e,n,t,i,s);null!=r&&(a+=r)}return null!=(r=this.validateEdge(e,n,t))&&(a+=r),0<a.length?a:null},mxGraph.prototype.validateEdge=function(e,n,t){return null},mxGraph.prototype.validateGraph=function(e,n){e=null!=e?e:this.model.getRoot(),n=null!=n?n:{};for(var t=!0,a=this.model.getChildCount(e),i=0;i<a;i++){var s=this.model.getChildAt(e,i),o=n;this.isValidRoot(s)&&(o={}),null!=(o=this.validateGraph(s,o))?this.setCellWarning(s,o.replace(/\n/g,"<br>")):this.setCellWarning(s,null),t=t&&null==o}return a="",this.isCellCollapsed(e)&&!t&&(a+=(mxResources.get(this.containsValidationErrorsResource)||this.containsValidationErrorsResource)+"\n"),a=this.model.isEdge(e)?a+(this.getEdgeValidationError(e,this.model.getTerminal(e,!0),this.model.getTerminal(e,!1))||""):a+(this.getCellValidationError(e)||""),null!=(i=this.validateCell(e,n))&&(a+=i),null==this.model.getParent(e)&&this.view.validate(),0<a.length||!t?a:null},mxGraph.prototype.getCellValidationError=function(e){var n=this.model.getDirectedEdgeCount(e,!0),t=this.model.getDirectedEdgeCount(e,!1);e=this.model.getValue(e);var a="";if(null!=this.multiplicities)for(var i=0;i<this.multiplicities.length;i++){var s=this.multiplicities[i];s.source&&mxUtils.isNode(e,s.type,s.attr,s.value)&&(0==s.max&&0<n||1==s.min&&0==n||1==s.max&&1<n)?a+=s.countError+"\n":!s.source&&mxUtils.isNode(e,s.type,s.attr,s.value)&&(0==s.max&&0<t||1==s.min&&0==t||1==s.max&&1<t)&&(a+=s.countError+"\n")}return 0<a.length?a:null},mxGraph.prototype.validateCell=function(e,n){return null},mxGraph.prototype.getBackgroundImage=function(){return this.backgroundImage},mxGraph.prototype.setBackgroundImage=function(e){this.backgroundImage=e},mxGraph.prototype.getFoldingImage=function(e){if(null!=e&&this.foldingEnabled&&!this.getModel().isEdge(e.cell)){var n=this.isCellCollapsed(e.cell);if(this.isCellFoldable(e.cell,!n))return n?this.collapsedImage:this.expandedImage}return null},mxGraph.prototype.convertValueToString=function(e){if(null!=(e=this.model.getValue(e))){if(mxUtils.isNode(e))return e.nodeName;if("function"==typeof e.toString)return e.toString()}return""},mxGraph.prototype.getLabel=function(e){var n="";if(this.labelsVisible&&null!=e){var t=null!=(t=this.view.getState(e))?t.style:this.getCellStyle(e);mxUtils.getValue(t,mxConstants.STYLE_NOLABEL,!1)||(n=this.convertValueToString(e))}return n},mxGraph.prototype.isHtmlLabel=function(e){return this.isHtmlLabels()},mxGraph.prototype.isHtmlLabels=function(){return this.htmlLabels},mxGraph.prototype.setHtmlLabels=function(e){this.htmlLabels=e},mxGraph.prototype.isWrapping=function(e){var n=this.view.getState(e);return null!=(e=null!=n?n.style:this.getCellStyle(e))&&"wrap"==e[mxConstants.STYLE_WHITE_SPACE]},mxGraph.prototype.isLabelClipped=function(e){var n=this.view.getState(e);return null!=(e=null!=n?n.style:this.getCellStyle(e))&&"hidden"==e[mxConstants.STYLE_OVERFLOW]},mxGraph.prototype.getTooltip=function(e,t,n,a){var i=null;return null!=e&&(null==e.control||t!=e.control.node&&t.parentNode!=e.control.node||(i=this.collapseExpandResource,i=mxResources.get(i)||i),null==i&&null!=e.overlays&&e.overlays.visit(function(e,n){null!=i||t!=n.node&&t.parentNode!=n.node||(i=n.overlay.toString())}),null==i&&(null!=(n=this.selectionCellsHandler.getHandler(e.cell))&&"function"==typeof n.getTooltipForNode&&(i=n.getTooltipForNode(t))),null==i&&(i=this.getTooltipForCell(e.cell))),i},mxGraph.prototype.getTooltipForCell=function(e){return null!=e&&null!=e.getTooltip?e.getTooltip():this.convertValueToString(e)},mxGraph.prototype.getCursorForCell=function(e){return null},mxGraph.prototype.getStartSize=function(e){var n=new mxRectangle,t=this.view.getState(e);return null!=(e=null!=t?t.style:this.getCellStyle(e))&&(t=parseInt(mxUtils.getValue(e,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE)),mxUtils.getValue(e,mxConstants.STYLE_HORIZONTAL,!0)?n.height=t:n.width=t),n},mxGraph.prototype.getImage=function(e){return null!=e&&null!=e.style?e.style[mxConstants.STYLE_IMAGE]:null},mxGraph.prototype.getVerticalAlign=function(e){return null!=e&&null!=e.style?e.style[mxConstants.STYLE_VERTICAL_ALIGN]||mxConstants.ALIGN_MIDDLE:null},mxGraph.prototype.getIndicatorColor=function(e){return null!=e&&null!=e.style?e.style[mxConstants.STYLE_INDICATOR_COLOR]:null},mxGraph.prototype.getIndicatorGradientColor=function(e){return null!=e&&null!=e.style?e.style[mxConstants.STYLE_INDICATOR_GRADIENTCOLOR]:null},mxGraph.prototype.getIndicatorShape=function(e){return null!=e&&null!=e.style?e.style[mxConstants.STYLE_INDICATOR_SHAPE]:null},mxGraph.prototype.getIndicatorImage=function(e){return null!=e&&null!=e.style?e.style[mxConstants.STYLE_INDICATOR_IMAGE]:null},mxGraph.prototype.getBorder=function(){return this.border},mxGraph.prototype.setBorder=function(e){this.border=e},mxGraph.prototype.isSwimlane=function(e){var n;if(null!=e&&this.model.getParent(e)!=this.model.getRoot()&&(null!=(n=null!=(n=this.view.getState(e))?n.style:this.getCellStyle(e))&&!this.model.isEdge(e)))return n[mxConstants.STYLE_SHAPE]==mxConstants.SHAPE_SWIMLANE;return!1},mxGraph.prototype.isResizeContainer=function(){return this.resizeContainer},mxGraph.prototype.setResizeContainer=function(e){this.resizeContainer=e},mxGraph.prototype.isEnabled=function(){return this.enabled},mxGraph.prototype.setEnabled=function(e){this.enabled=e},mxGraph.prototype.isEscapeEnabled=function(){return this.escapeEnabled},mxGraph.prototype.setEscapeEnabled=function(e){this.escapeEnabled=e},mxGraph.prototype.isInvokesStopCellEditing=function(){return this.invokesStopCellEditing},mxGraph.prototype.setInvokesStopCellEditing=function(e){this.invokesStopCellEditing=e},mxGraph.prototype.isEnterStopsCellEditing=function(){return this.enterStopsCellEditing},mxGraph.prototype.setEnterStopsCellEditing=function(e){this.enterStopsCellEditing=e},mxGraph.prototype.isCellLocked=function(e){var n=this.model.getGeometry(e);return this.isCellsLocked()||null!=n&&this.model.isVertex(e)&&n.relative},mxGraph.prototype.isCellsLocked=function(){return this.cellsLocked},mxGraph.prototype.setCellsLocked=function(e){this.cellsLocked=e},mxGraph.prototype.getCloneableCells=function(e){return this.model.filterCells(e,mxUtils.bind(this,function(e){return this.isCellCloneable(e)}))},mxGraph.prototype.isCellCloneable=function(e){var n=this.view.getState(e);return e=null!=n?n.style:this.getCellStyle(e),this.isCellsCloneable()&&0!=e[mxConstants.STYLE_CLONEABLE]},mxGraph.prototype.isCellsCloneable=function(){return this.cellsCloneable},mxGraph.prototype.setCellsCloneable=function(e){this.cellsCloneable=e},mxGraph.prototype.getExportableCells=function(e){return this.model.filterCells(e,mxUtils.bind(this,function(e){return this.canExportCell(e)}))},mxGraph.prototype.canExportCell=function(e){return this.exportEnabled},mxGraph.prototype.getImportableCells=function(e){return this.model.filterCells(e,mxUtils.bind(this,function(e){return this.canImportCell(e)}))},mxGraph.prototype.canImportCell=function(e){return this.importEnabled},mxGraph.prototype.isCellSelectable=function(e){return this.isCellsSelectable()},mxGraph.prototype.isCellsSelectable=function(){return this.cellsSelectable},mxGraph.prototype.setCellsSelectable=function(e){this.cellsSelectable=e},mxGraph.prototype.getDeletableCells=function(e){return this.model.filterCells(e,mxUtils.bind(this,function(e){return this.isCellDeletable(e)}))},mxGraph.prototype.isCellDeletable=function(e){var n=this.view.getState(e);return e=null!=n?n.style:this.getCellStyle(e),this.isCellsDeletable()&&0!=e[mxConstants.STYLE_DELETABLE]},mxGraph.prototype.isCellsDeletable=function(){return this.cellsDeletable},mxGraph.prototype.setCellsDeletable=function(e){this.cellsDeletable=e},mxGraph.prototype.isLabelMovable=function(e){return!this.isCellLocked(e)&&(this.model.isEdge(e)&&this.edgeLabelsMovable||this.model.isVertex(e)&&this.vertexLabelsMovable)},mxGraph.prototype.getMovableCells=function(e){return this.model.filterCells(e,mxUtils.bind(this,function(e){return this.isCellMovable(e)}))},mxGraph.prototype.isCellMovable=function(e){var n=null!=(n=this.view.getState(e))?n.style:this.getCellStyle(e);return this.isCellsMovable()&&!this.isCellLocked(e)&&0!=n[mxConstants.STYLE_MOVABLE]},mxGraph.prototype.isCellsMovable=function(){return this.cellsMovable},mxGraph.prototype.setCellsMovable=function(e){this.cellsMovable=e},mxGraph.prototype.isGridEnabled=function(){return this.gridEnabled},mxGraph.prototype.setGridEnabled=function(e){this.gridEnabled=e},mxGraph.prototype.isPortsEnabled=function(){return this.portsEnabled},mxGraph.prototype.setPortsEnabled=function(e){this.portsEnabled=e},mxGraph.prototype.getGridSize=function(){return this.gridSize},mxGraph.prototype.setGridSize=function(e){this.gridSize=e},mxGraph.prototype.getTolerance=function(){return this.tolerance},mxGraph.prototype.setTolerance=function(e){this.tolerance=e},mxGraph.prototype.isVertexLabelsMovable=function(){return this.vertexLabelsMovable},mxGraph.prototype.setVertexLabelsMovable=function(e){this.vertexLabelsMovable=e},mxGraph.prototype.isEdgeLabelsMovable=function(){return this.edgeLabelsMovable},mxGraph.prototype.setEdgeLabelsMovable=function(e){this.edgeLabelsMovable=e},mxGraph.prototype.isSwimlaneNesting=function(){return this.swimlaneNesting},mxGraph.prototype.setSwimlaneNesting=function(e){this.swimlaneNesting=e},mxGraph.prototype.isSwimlaneSelectionEnabled=function(){return this.swimlaneSelectionEnabled},mxGraph.prototype.setSwimlaneSelectionEnabled=function(e){this.swimlaneSelectionEnabled=e},mxGraph.prototype.isMultigraph=function(){return this.multigraph},mxGraph.prototype.setMultigraph=function(e){this.multigraph=e},mxGraph.prototype.isAllowLoops=function(){return this.allowLoops},mxGraph.prototype.setAllowDanglingEdges=function(e){this.allowDanglingEdges=e},mxGraph.prototype.isAllowDanglingEdges=function(){return this.allowDanglingEdges},mxGraph.prototype.setConnectableEdges=function(e){this.connectableEdges=e},mxGraph.prototype.isConnectableEdges=function(){return this.connectableEdges},mxGraph.prototype.setCloneInvalidEdges=function(e){this.cloneInvalidEdges=e},mxGraph.prototype.isCloneInvalidEdges=function(){return this.cloneInvalidEdges},mxGraph.prototype.setAllowLoops=function(e){this.allowLoops=e},mxGraph.prototype.isDisconnectOnMove=function(){return this.disconnectOnMove},mxGraph.prototype.setDisconnectOnMove=function(e){this.disconnectOnMove=e},mxGraph.prototype.isDropEnabled=function(){return this.dropEnabled},mxGraph.prototype.setDropEnabled=function(e){this.dropEnabled=e},mxGraph.prototype.isSplitEnabled=function(){return this.splitEnabled},mxGraph.prototype.setSplitEnabled=function(e){this.splitEnabled=e},mxGraph.prototype.isCellResizable=function(e){var n=null!=(n=this.view.getState(e))?n.style:this.getCellStyle(e);return this.isCellsResizable()&&!this.isCellLocked(e)&&0!=n[mxConstants.STYLE_RESIZABLE]},mxGraph.prototype.isCellsResizable=function(){return this.cellsResizable},mxGraph.prototype.setCellsResizable=function(e){this.cellsResizable=e},mxGraph.prototype.isTerminalPointMovable=function(e,n){return!0},mxGraph.prototype.isCellBendable=function(e){var n=null!=(n=this.view.getState(e))?n.style:this.getCellStyle(e);return this.isCellsBendable()&&!this.isCellLocked(e)&&0!=n[mxConstants.STYLE_BENDABLE]},mxGraph.prototype.isCellsBendable=function(){return this.cellsBendable},mxGraph.prototype.setCellsBendable=function(e){this.cellsBendable=e},mxGraph.prototype.isCellEditable=function(e){var n=null!=(n=this.view.getState(e))?n.style:this.getCellStyle(e);return this.isCellsEditable()&&!this.isCellLocked(e)&&0!=n[mxConstants.STYLE_EDITABLE]},mxGraph.prototype.isCellsEditable=function(){return this.cellsEditable},mxGraph.prototype.setCellsEditable=function(e){this.cellsEditable=e},mxGraph.prototype.isCellDisconnectable=function(e,n,t){return this.isCellsDisconnectable()&&!this.isCellLocked(e)},mxGraph.prototype.isCellsDisconnectable=function(){return this.cellsDisconnectable},mxGraph.prototype.setCellsDisconnectable=function(e){this.cellsDisconnectable=e},mxGraph.prototype.isValidSource=function(e){return null==e&&this.allowDanglingEdges||null!=e&&(!this.model.isEdge(e)||this.connectableEdges)&&this.isCellConnectable(e)},mxGraph.prototype.isValidTarget=function(e){return this.isValidSource(e)},mxGraph.prototype.isValidConnection=function(e,n){return this.isValidSource(e)&&this.isValidTarget(n)},mxGraph.prototype.setConnectable=function(e){this.connectionHandler.setEnabled(e)},mxGraph.prototype.isConnectable=function(e){return this.connectionHandler.isEnabled()},mxGraph.prototype.setTooltips=function(e){this.tooltipHandler.setEnabled(e)},mxGraph.prototype.setPanning=function(e){this.panningHandler.panningEnabled=e},mxGraph.prototype.isEditing=function(e){if(null==this.cellEditor)return!1;var n=this.cellEditor.getEditingCell();return null==e?null!=n:e==n},mxGraph.prototype.isAutoSizeCell=function(e){var n=this.view.getState(e);return e=null!=n?n.style:this.getCellStyle(e),this.isAutoSizeCells()||1==e[mxConstants.STYLE_AUTOSIZE]},mxGraph.prototype.isAutoSizeCells=function(){return this.autoSizeCells},mxGraph.prototype.setAutoSizeCells=function(e){this.autoSizeCells=e},mxGraph.prototype.isExtendParent=function(e){return!this.getModel().isEdge(e)&&this.isExtendParents()},mxGraph.prototype.isExtendParents=function(){return this.extendParents},mxGraph.prototype.setExtendParents=function(e){this.extendParents=e},mxGraph.prototype.isExtendParentsOnAdd=function(){return this.extendParentsOnAdd},mxGraph.prototype.setExtendParentsOnAdd=function(e){this.extendParentsOnAdd=e},mxGraph.prototype.isConstrainChild=function(e){return this.isConstrainChildren()&&!this.getModel().isEdge(this.getModel().getParent(e))},mxGraph.prototype.isConstrainChildren=function(){return this.constrainChildren},mxGraph.prototype.setConstrainChildren=function(e){this.constrainChildren=e},mxGraph.prototype.isAllowNegativeCoordinates=function(){return this.allowNegativeCoordinates},mxGraph.prototype.setAllowNegativeCoordinates=function(e){this.allowNegativeCoordinates=e},mxGraph.prototype.getOverlap=function(e){return this.isAllowOverlapParent(e)?this.defaultOverlap:0},mxGraph.prototype.isAllowOverlapParent=function(e){return!1},mxGraph.prototype.getFoldableCells=function(e,n){return this.model.filterCells(e,mxUtils.bind(this,function(e){return this.isCellFoldable(e,n)}))},mxGraph.prototype.isCellFoldable=function(e,n){var t=null!=(t=this.view.getState(e))?t.style:this.getCellStyle(e);return 0<this.model.getChildCount(e)&&0!=t[mxConstants.STYLE_FOLDABLE]},mxGraph.prototype.isValidDropTarget=function(e,n,t){return null!=e&&(this.isSplitEnabled()&&this.isSplitTarget(e,n,t)||!this.model.isEdge(e)&&(this.isSwimlane(e)||0<this.model.getChildCount(e)&&!this.isCellCollapsed(e)))},mxGraph.prototype.isSplitTarget=function(e,n,t){return!(!this.model.isEdge(e)||null==n||1!=n.length||!this.isCellConnectable(n[0])||null!=this.getEdgeValidationError(e,this.model.getTerminal(e,!0),n[0]))&&(t=this.model.getTerminal(e,!0),e=this.model.getTerminal(e,!1),!this.model.isAncestor(n[0],t)&&!this.model.isAncestor(n[0],e))},mxGraph.prototype.getDropTarget=function(e,n,t){if(!this.isSwimlaneNesting())for(var a=0;a<e.length;a++)if(this.isSwimlane(e[a]))return null;if((a=mxUtils.convertPoint(this.container,mxEvent.getClientX(n),mxEvent.getClientY(n))).x-=this.panDx,a.y-=this.panDy,a=this.getSwimlaneAt(a.x,a.y),null==t)t=a;else if(null!=a){for(var i=this.model.getParent(a);null!=i&&this.isSwimlane(i)&&i!=t;)i=this.model.getParent(i);i==t&&(t=a)}for(;null!=t&&!this.isValidDropTarget(t,e,n)&&!this.model.isLayer(t);)t=this.model.getParent(t);return!this.model.isLayer(t)&&mxUtils.indexOf(e,t)<0?t:null},mxGraph.prototype.getDefaultParent=function(){var e=this.defaultParent;return null==e&&(null==(e=this.getCurrentRoot())&&(e=this.model.getRoot(),e=this.model.getChildAt(e,0))),e},mxGraph.prototype.setDefaultParent=function(e){this.defaultParent=e},mxGraph.prototype.getSwimlane=function(e){for(;null!=e&&!this.isSwimlane(e);)e=this.model.getParent(e);return e},mxGraph.prototype.getSwimlaneAt=function(e,n,t){if(null!=(t=t||this.getDefaultParent()))for(var a=this.model.getChildCount(t),i=0;i<a;i++){var s=this.model.getChildAt(t,i),o=this.getSwimlaneAt(e,n,s);if(null!=o)return o;if(this.isSwimlane(s)&&(o=this.view.getState(s),this.intersects(o,e,n)))return s}return null},mxGraph.prototype.getCellAt=function(e,n,t,a,i){if(a=null==a||a,i=null==i||i,null!=(t=null!=t?t:this.getDefaultParent()))for(var s=this.model.getChildCount(t)-1;0<=s;s--){var o=this.model.getChildAt(t,s),r=this.getCellAt(e,n,o,a,i);if(null!=r)return r;if(this.isCellVisible(o)&&(i&&this.model.isEdge(o)||a&&this.model.isVertex(o))&&(r=this.view.getState(o),this.intersects(r,e,n)))return o}return null},mxGraph.prototype.intersects=function(e,n,t){if(null!=e){var a=e.absolutePoints;if(null!=a){e=this.tolerance*this.tolerance;for(var i=a[0],s=1;s<a.length;s++){var o=a[s];if(mxUtils.ptSegDistSq(i.x,i.y,o.x,o.y,n,t)<=e)return!0;i=o}}else if(0!=(i=mxUtils.toRadians(mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION)||0))&&(a=Math.cos(-i),i=Math.sin(-i),s=new mxPoint(e.getCenterX(),e.getCenterY()),n=(i=mxUtils.getRotatedPoint(new mxPoint(n,t),a,i,s)).x,t=i.y),mxUtils.contains(e,n,t))return!0}return!1},mxGraph.prototype.hitsSwimlaneContent=function(e,n,t){var a=this.getView().getState(e);if(e=this.getStartSize(e),null!=a){var i=this.getView().getScale();if(n-=a.x,t-=a.y,0<e.width&&0<n&&n>e.width*i||0<e.height&&0<t&&t>e.height*i)return!0}return!1},mxGraph.prototype.getChildVertices=function(e){return this.getChildCells(e,!0,!1)},mxGraph.prototype.getChildEdges=function(e){return this.getChildCells(e,!1,!0)},mxGraph.prototype.getChildCells=function(e,n,t){for(e=null!=e?e:this.getDefaultParent(),e=this.model.getChildCells(e,null!=n&&n,null!=t&&t),n=[],t=0;t<e.length;t++)this.isCellVisible(e[t])&&n.push(e[t]);return n},mxGraph.prototype.getConnections=function(e,n){return this.getEdges(e,n,!0,!0,!1)},mxGraph.prototype.getIncomingEdges=function(e,n){return this.getEdges(e,n,!0,!1,!1)},mxGraph.prototype.getOutgoingEdges=function(e,n){return this.getEdges(e,n,!1,!0,!1)},mxGraph.prototype.getEdges=function(e,n,t,a,i,s){t=null==t||t,a=null==a||a,i=null==i||i,s=null!=s&&s;for(var o=[],r=this.isCellCollapsed(e),l=this.model.getChildCount(e),d=0;d<l;d++){var c=this.model.getChildAt(e,d);!r&&this.isCellVisible(c)||(o=o.concat(this.model.getEdges(c,t,a)))}for(o=o.concat(this.model.getEdges(e,t,a)),r=[],d=0;d<o.length;d++)l=null!=(c=this.view.getState(o[d]))?c.getVisibleTerminal(!0):this.view.getVisibleTerminal(o[d],!0),c=null!=c?c.getVisibleTerminal(!1):this.view.getVisibleTerminal(o[d],!1),(i&&l==c||l!=c&&(t&&c==e&&(null==n||this.isValidAncestor(l,n,s))||a&&l==e&&(null==n||this.isValidAncestor(c,n,s))))&&r.push(o[d]);return r},mxGraph.prototype.isValidAncestor=function(e,n,t){return t?this.model.isAncestor(n,e):this.model.getParent(e)==n},mxGraph.prototype.getOpposites=function(e,n,t,a){t=null==t||t,a=null==a||a;var i=[],s={};if(null!=e)for(var o=0;o<e.length;o++){var r=null!=(l=this.view.getState(e[o]))?l.getVisibleTerminal(!0):this.view.getVisibleTerminal(e[o],!0),l=null!=l?l.getVisibleTerminal(!1):this.view.getVisibleTerminal(e[o],!1);if(r==n&&null!=l&&l!=n&&a){var d=mxCellPath.create(l);null==s[d]&&(s[d]=l,i.push(l))}else l==n&&null!=r&&r!=n&&t&&(null==s[d=mxCellPath.create(r)]&&(s[d]=r,i.push(r)))}return i},mxGraph.prototype.getEdgesBetween=function(e,n,t){t=null!=t&&t;for(var a=this.getEdges(e),i=[],s=0;s<a.length;s++){var o=null!=(r=this.view.getState(a[s]))?r.getVisibleTerminal(!0):this.view.getVisibleTerminal(a[s],!0),r=null!=r?r.getVisibleTerminal(!1):this.view.getVisibleTerminal(a[s],!1);(o==e&&r==n||!t&&o==n&&r==e)&&i.push(a[s])}return i},mxGraph.prototype.getPointForEvent=function(e,n){var t=mxUtils.convertPoint(this.container,mxEvent.getClientX(e),mxEvent.getClientY(e)),a=this.view.scale,i=this.view.translate,s=0!=n?this.gridSize/2:0;return t.x=this.snap(t.x/a-i.x-s),t.y=this.snap(t.y/a-i.y-s),t},mxGraph.prototype.getCells=function(e,n,t,a,i,s){if(s=null!=s?s:[],0<t||0<a){var o=e+t,r=n+a;if(null!=(i=i||this.getDefaultParent()))for(var l=this.model.getChildCount(i),d=0;d<l;d++){var c=this.model.getChildAt(i,d),m=this.view.getState(c);if(this.isCellVisible(c)&&null!=m){var u=m;0!=(m=mxUtils.getValue(m.style,mxConstants.STYLE_ROTATION)||0)&&(u=mxUtils.getBoundingBox(u,m)),u.x>=e&&u.y+u.height<=r&&u.y>=n&&u.x+u.width<=o?s.push(c):this.getCells(e,n,t,a,c,s)}}}return s},mxGraph.prototype.getCellsBeyond=function(e,n,t,a,i){var s=[];if((a||i)&&(null==t&&(t=this.getDefaultParent()),null!=t))for(var o=this.model.getChildCount(t),r=0;r<o;r++){var l=this.model.getChildAt(t,r),d=this.view.getState(l);this.isCellVisible(l)&&null!=d&&(!a||d.x>=e)&&(!i||d.y>=n)&&s.push(l)}return s},mxGraph.prototype.findTreeRoots=function(e,n,t){n=null!=n&&n,t=null!=t&&t;var a=[];if(null!=e){for(var i=this.getModel(),s=i.getChildCount(e),o=null,r=0,l=0;l<s;l++){var d=i.getChildAt(e,l);if(this.model.isVertex(d)&&this.isCellVisible(d)){for(var c=this.getConnections(d,n?e:null),m=0,u=0,p=0;p<c.length;p++)this.view.getVisibleTerminal(c[p],!0)==d?m++:u++;(t&&0==m&&0<u||!t&&0==u&&0<m)&&a.push(d),r<(c=t?u-m:m-u)&&(r=c,o=d)}}0==a.length&&null!=o&&a.push(o)}return a},mxGraph.prototype.traverse=function(e,n,t,a,i){if(null!=t&&null!=e){n=null==n||n,i=i||[];var s=mxCellPath.create(e);if(null==i[s]&&(null==(a=t(i[s]=e,a))||a)&&0<(a=this.model.getEdgeCount(e)))for(s=0;s<a;s++){var o=this.model.getEdgeAt(e,s),r=this.model.getTerminal(o,!0)==e;n&&!r||(r=this.model.getTerminal(o,!r),this.traverse(r,n,t,o,i))}}},mxGraph.prototype.isCellSelected=function(e){return this.getSelectionModel().isSelected(e)},mxGraph.prototype.isSelectionEmpty=function(){return this.getSelectionModel().isEmpty()},mxGraph.prototype.clearSelection=function(){return this.getSelectionModel().clear()},mxGraph.prototype.getSelectionCount=function(){return this.getSelectionModel().cells.length},mxGraph.prototype.getSelectionCell=function(){return this.getSelectionModel().cells[0]},mxGraph.prototype.getSelectionCells=function(){return this.getSelectionModel().cells.slice()},mxGraph.prototype.setSelectionCell=function(e){this.getSelectionModel().setCell(e)},mxGraph.prototype.setSelectionCells=function(e){this.getSelectionModel().setCells(e)},mxGraph.prototype.addSelectionCell=function(e){this.getSelectionModel().addCell(e)},mxGraph.prototype.addSelectionCells=function(e){this.getSelectionModel().addCells(e)},mxGraph.prototype.removeSelectionCell=function(e){this.getSelectionModel().removeCell(e)},mxGraph.prototype.removeSelectionCells=function(e){this.getSelectionModel().removeCells(e)},mxGraph.prototype.selectRegion=function(e,n){var t=this.getCells(e.x,e.y,e.width,e.height);return this.selectCellsForEvent(t,n),t},mxGraph.prototype.selectNextCell=function(){this.selectCell(!0)},mxGraph.prototype.selectPreviousCell=function(){this.selectCell()},mxGraph.prototype.selectParentCell=function(){this.selectCell(!1,!0)},mxGraph.prototype.selectChildCell=function(){this.selectCell(!1,!1,!0)},mxGraph.prototype.selectCell=function(e,n,t){var a=0<(i=this.selectionModel).cells.length?i.cells[0]:null;1<i.cells.length&&i.clear();var i=null!=a?this.model.getParent(a):this.getDefaultParent(),s=this.model.getChildCount(i);null==a&&0<s?(e=this.model.getChildAt(i,0),this.setSelectionCell(e)):null!=a&&!n||null==this.view.getState(i)||null==this.model.getGeometry(i)?null!=a&&t?0<this.model.getChildCount(a)&&(e=this.model.getChildAt(a,0),this.setSelectionCell(e)):0<s&&(n=i.getIndex(a),e=e?(n++,this.model.getChildAt(i,n%s)):(n--,this.model.getChildAt(i,n<0?s-1:n)),this.setSelectionCell(e)):this.getCurrentRoot()!=i&&this.setSelectionCell(i)},mxGraph.prototype.selectAll=function(e){e=e||this.getDefaultParent(),null!=(e=this.model.getChildren(e))&&this.setSelectionCells(e)},mxGraph.prototype.selectVertices=function(e){this.selectCells(!0,!1,e)},mxGraph.prototype.selectEdges=function(e){this.selectCells(!1,!0,e)},mxGraph.prototype.selectCells=function(n,t,e){e=e||this.getDefaultParent();var a=mxUtils.bind(this,function(e){return null!=this.view.getState(e)&&0==this.model.getChildCount(e)&&(this.model.isVertex(e)&&n||this.model.isEdge(e)&&t)});e=this.model.filterDescendants(a,e),this.setSelectionCells(e)},mxGraph.prototype.selectCellForEvent=function(e,n){var t=this.isCellSelected(e);this.isToggleEvent(n)?t?this.removeSelectionCell(e):this.addSelectionCell(e):(!t||1!=this.getSelectionCount())&&this.setSelectionCell(e)},mxGraph.prototype.selectCellsForEvent=function(e,n){this.isToggleEvent(n)?this.addSelectionCells(e):this.setSelectionCells(e)},mxGraph.prototype.createHandler=function(e){var n=null;return null!=e&&(n=this.model.isEdge(e.cell)?(n=this.view.getEdgeStyle(e),this.isLoop(e)||n==mxEdgeStyle.ElbowConnector||n==mxEdgeStyle.SideToSide||n==mxEdgeStyle.TopToBottom?new mxElbowEdgeHandler(e):n==mxEdgeStyle.SegmentConnector||n==mxEdgeStyle.OrthConnector?new mxEdgeSegmentHandler(e):new mxEdgeHandler(e)):new mxVertexHandler(e)),n},mxGraph.prototype.addMouseListener=function(e){null==this.mouseListeners&&(this.mouseListeners=[]),this.mouseListeners.push(e)},mxGraph.prototype.removeMouseListener=function(e){if(null!=this.mouseListeners)for(var n=0;n<this.mouseListeners.length;n++)if(this.mouseListeners[n]==e){this.mouseListeners.splice(n,1);break}},mxGraph.prototype.updateMouseEvent=function(e){if(null==e.graphX||null==e.graphY){var n=mxUtils.convertPoint(this.container,e.getX(),e.getY());e.graphX=n.x-this.panDx,e.graphY=n.y-this.panDy}},mxGraph.prototype.fireMouseEvent=function(e,n,t){if(null==t&&(t=this),this.updateMouseEvent(n),e==mxEvent.MOUSE_DOWN&&(this.isMouseDown=!0),mxClient.IS_TOUCH&&this.doubleTapEnabled&&e==mxEvent.MOUSE_DOWN){var a=(new Date).getTime();a-this.lastTouchTime<this.doubleTapTimeout&&Math.abs(this.lastTouchX-n.getX())<this.doubleTapTolerance&&Math.abs(this.lastTouchY-n.getY())<this.doubleTapTolerance?(this.lastTouchTime=0,this.dblClick(n.getEvent(),n.getCell()),n.getEvent().cancelBubble=!0):(this.lastTouchX=n.getX(),this.lastTouchY=n.getY(),this.lastTouchTime=a)}if(a=2!=n.getEvent().detail,mxClient.IS_IE&&"CSS1Compat"==document.compatMode&&((null!=this.lastMouseX&&Math.abs(this.lastMouseX-n.getX())>this.doubleTapTolerance||null!=this.lastMouseY&&Math.abs(this.lastMouseY-n.getY())>this.doubleTapTolerance)&&(a=!0),e==mxEvent.MOUSE_UP&&(this.lastMouseX=n.getX(),this.lastMouseY=n.getY())),(e!=mxEvent.MOUSE_UP||this.isMouseDown)&&a){if(e==mxEvent.MOUSE_UP&&(this.isMouseDown=!1),!this.isEditing()&&(mxClient.IS_OP||mxClient.IS_SF||mxClient.IS_GC||mxClient.IS_IE&&mxClient.IS_SVG||n.getEvent().target!=this.container)){if(e==mxEvent.MOUSE_MOVE&&this.isMouseDown&&this.autoScroll&&this.scrollPointToVisible(n.getGraphX(),n.getGraphY(),this.autoExtend),null!=this.mouseListeners)for(t=[t,n],n.getEvent().returnValue=!0,a=0;a<this.mouseListeners.length;a++){var i=this.mouseListeners[a];e==mxEvent.MOUSE_DOWN?i.mouseDown.apply(i,t):e==mxEvent.MOUSE_MOVE?i.mouseMove.apply(i,t):e==mxEvent.MOUSE_UP&&i.mouseUp.apply(i,t)}e==mxEvent.MOUSE_UP&&this.click(n)}}else e==mxEvent.MOUSE_UP&&(this.isMouseDown=!1)},mxGraph.prototype.destroy=function(){this.destroyed||(this.destroyed=!0,null!=this.tooltipHandler&&this.tooltipHandler.destroy(),null!=this.selectionCellsHandler&&this.selectionCellsHandler.destroy(),null!=this.panningHandler&&this.panningHandler.destroy(),null!=this.connectionHandler&&this.connectionHandler.destroy(),null!=this.graphHandler&&this.graphHandler.destroy(),null!=this.cellEditor&&this.cellEditor.destroy(),null!=this.view&&this.view.destroy(),null!=this.model&&null!=this.graphModelChangeListener&&(this.model.removeListener(this.graphModelChangeListener),this.graphModelChangeListener=null),this.container=null)},mxCellOverlay.prototype=new mxEventSource,mxCellOverlay.prototype.constructor=mxCellOverlay,mxCellOverlay.prototype.image=null,mxCellOverlay.prototype.tooltip=null,mxCellOverlay.prototype.align=mxConstants.ALIGN_RIGHT,mxCellOverlay.prototype.verticalAlign=mxConstants.ALIGN_BOTTOM,mxCellOverlay.prototype.offset=null,mxCellOverlay.prototype.cursor=null,mxCellOverlay.prototype.defaultOverlap=.5,mxCellOverlay.prototype.getBounds=function(e){var n=e.view.graph.getModel().isEdge(e.cell),t=e.view.scale,a=null,i=this.image.width,s=this.image.height;return n?a=1==(n=e.absolutePoints).length%2?n[Math.floor(n.length/2)]:(e=n[(a=n.length/2)-1],n=n[a],new mxPoint(e.x+(n.x-e.x)/2,e.y+(n.y-e.y)/2)):((a=new mxPoint).x=this.align==mxConstants.ALIGN_LEFT?e.x:this.align==mxConstants.ALIGN_CENTER?e.x+e.width/2:e.x+e.width,a.y=this.verticalAlign==mxConstants.ALIGN_TOP?e.y:this.verticalAlign==mxConstants.ALIGN_MIDDLE?e.y+e.height/2:e.y+e.height),new mxRectangle(Math.round(a.x-(i*this.defaultOverlap-this.offset.x)*t),Math.round(a.y-(s*this.defaultOverlap-this.offset.y)*t),i*t,s*t)},mxCellOverlay.prototype.toString=function(){return this.tooltip},mxOutline.prototype.source=null,mxOutline.prototype.outline=null,mxOutline.prototype.graphRenderHint=mxConstants.RENDERING_HINT_FASTER,mxOutline.prototype.enabled=!0,mxOutline.prototype.showViewport=!0,mxOutline.prototype.border=10,mxOutline.prototype.sizerSize=8,mxOutline.prototype.updateOnPan=!1,mxOutline.prototype.sizerImage=null,mxOutline.prototype.suspended=!1,mxOutline.prototype.init=function(e){this.outline=new mxGraph(e,this.source.getModel(),this.graphRenderHint,this.source.getStylesheet()),this.outline.foldingEnabled=!1,this.outline.autoScroll=!1;var n=this.outline.graphModelChanged;this.outline.graphModelChanged=mxUtils.bind(this,function(e){!this.suspended&&null!=this.outline&&n.apply(this.outline,arguments)}),mxClient.IS_SVG&&((e=this.outline.getView().getCanvas().parentNode).setAttribute("shape-rendering","optimizeSpeed"),e.setAttribute("image-rendering","optimizeSpeed")),this.outline.labelsVisible=!1,this.outline.setEnabled(!1),this.updateHandler=mxUtils.bind(this,function(e,n){!this.suspended&&!this.active&&this.update()}),this.source.getModel().addListener(mxEvent.CHANGE,this.updateHandler),this.outline.addMouseListener(this),(e=this.source.getView()).addListener(mxEvent.SCALE,this.updateHandler),e.addListener(mxEvent.TRANSLATE,this.updateHandler),e.addListener(mxEvent.SCALE_AND_TRANSLATE,this.updateHandler),e.addListener(mxEvent.DOWN,this.updateHandler),e.addListener(mxEvent.UP,this.updateHandler),mxEvent.addListener(this.source.container,"scroll",this.updateHandler),this.panHandler=mxUtils.bind(this,function(e){this.updateOnPan&&this.updateHandler.apply(this,arguments)}),this.source.addListener(mxEvent.PAN,this.panHandler),this.refreshHandler=mxUtils.bind(this,function(e){this.outline.setStylesheet(this.source.getStylesheet()),this.outline.refresh()}),this.source.addListener(mxEvent.REFRESH,this.refreshHandler),this.bounds=new mxRectangle(0,0,0,0),this.selectionBorder=new mxRectangleShape(this.bounds,null,mxConstants.OUTLINE_COLOR,mxConstants.OUTLINE_STROKEWIDTH),this.selectionBorder.dialect=this.outline.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.selectionBorder.init(this.outline.getView().getOverlayPane()),mxEvent.redirectMouseEvents(this.selectionBorder.node,this.outline),this.selectionBorder.node.style.background="",this.sizer=this.createSizer(),this.sizer.init(this.outline.getView().getOverlayPane()),this.enabled&&(this.sizer.node.style.cursor="pointer"),mxEvent.addListener(this.sizer.node,mxClient.IS_TOUCH?"touchstart":"mousedown",mxUtils.bind(this,function(e){this.outline.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e))})),this.selectionBorder.node.style.display=this.showViewport?"":"none",this.sizer.node.style.display=this.selectionBorder.node.style.display,this.selectionBorder.node.style.cursor="move",this.update(!1)},mxOutline.prototype.isEnabled=function(){return this.enabled},mxOutline.prototype.setEnabled=function(e){this.enabled=e},mxOutline.prototype.setZoomEnabled=function(e){this.sizer.node.style.visibility=e?"visible":"hidden"},mxOutline.prototype.refresh=function(){this.update(!0)},mxOutline.prototype.createSizer=function(){var e=null!=this.sizerImage?new mxImageShape(new mxRectangle(0,0,this.sizerImage.width,this.sizerImage.height),this.sizerImage.src):new mxRectangleShape(new mxRectangle(0,0,this.sizerSize,this.sizerSize),mxConstants.OUTLINE_HANDLE_FILLCOLOR,mxConstants.OUTLINE_HANDLE_STROKECOLOR);return e.dialect=this.outline.dialect,e},mxOutline.prototype.getSourceContainerSize=function(){return new mxRectangle(0,0,this.source.container.scrollWidth,this.source.container.scrollHeight)},mxOutline.prototype.getOutlineOffset=function(e){return null},mxOutline.prototype.update=function(e){if(null!=this.source){var n=this.source.view.scale,t=new mxRectangle((t=this.source.getGraphBounds()).x/n+this.source.panDx,t.y/n+this.source.panDy,t.width/n,t.height/n),a=new mxRectangle(0,0,this.source.container.clientWidth/n,this.source.container.clientHeight/n);(s=t.clone()).add(a);var i=this.getSourceContainerSize(),s=(a=Math.max(i.width/n,s.width),n=Math.max(i.height/n,s.height),Math.max(0,this.outline.container.clientWidth-this.border));i=Math.max(0,this.outline.container.clientHeight-this.border);if(0<(s=Math.min(s/a,i/n))){this.outline.getView().scale!=s&&(this.outline.getView().scale=s,e=!0),(a=this.outline.getView()).currentRoot!=this.source.getView().currentRoot&&a.setCurrentRoot(this.source.getView().currentRoot);i=(n=this.source.view.translate).x+this.source.panDx;var o=n.y+this.source.panDy;null!=(s=this.getOutlineOffset(s))&&(i+=s.x,o+=s.y),t.x<0&&(i-=t.x),t.y<0&&(o-=t.y),a.translate.x==i&&a.translate.y==o||(a.translate.x=i,a.translate.y=o,e=!0);t=a.translate,i=(s=this.source.getView().scale)/a.scale,o=1/a.scale;var r=this.source.container;this.bounds=new mxRectangle((t.x-n.x-this.source.panDx)/o,(t.y-n.y-this.source.panDy)/o,r.clientWidth/i,r.clientHeight/i),this.bounds.x+=this.source.container.scrollLeft*a.scale/s,this.bounds.y+=this.source.container.scrollTop*a.scale/s,(t=this.selectionBorder.bounds).x==this.bounds.x&&t.y==this.bounds.y&&t.width==this.bounds.width&&t.height==this.bounds.height||(this.selectionBorder.bounds=this.bounds,this.selectionBorder.redraw()),t=this.sizer.bounds,a=new mxRectangle(this.bounds.x+this.bounds.width-t.width/2,this.bounds.y+this.bounds.height-t.height/2,t.width,t.height),t.x==a.x&&t.y==a.y&&t.width==a.width&&t.height==a.height||(this.sizer.bounds=a,"hidden"!=this.sizer.node.style.visibility&&this.sizer.redraw()),e&&this.outline.view.revalidate()}}},mxOutline.prototype.mouseDown=function(e,n){this.enabled&&this.showViewport&&(this.zoom=n.isSource(this.sizer),this.startX=n.getX(),this.startY=n.getY(),this.active=!0,this.source.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.source.container)?(this.dx0=this.source.container.scrollLeft,this.dy0=this.source.container.scrollTop):this.dy0=this.dx0=0),n.consume()},mxOutline.prototype.mouseMove=function(e,n){if(this.active){this.selectionBorder.node.style.display=this.showViewport?"":"none",this.sizer.node.style.display=this.selectionBorder.node.style.display;var t=n.getX()-this.startX,a=n.getY()-this.startY,i=null;if(this.zoom)a=t/((i=this.source.container).clientWidth/i.clientHeight),i=new mxRectangle(this.bounds.x,this.bounds.y,Math.max(1,this.bounds.width+t),Math.max(1,this.bounds.height+a)),this.selectionBorder.bounds=i,this.selectionBorder.redraw();else{var s=this.outline.getView().scale;i=new mxRectangle(this.bounds.x+t,this.bounds.y+a,this.bounds.width,this.bounds.height);this.selectionBorder.bounds=i,this.selectionBorder.redraw(),t=t/s*this.source.getView().scale,a=a/s*this.source.getView().scale,this.source.panGraph(-t-this.dx0,-a-this.dy0)}t=this.sizer.bounds,this.sizer.bounds=new mxRectangle(i.x+i.width-t.width/2,i.y+i.height-t.height/2,t.width,t.height),"hidden"!=this.sizer.node.style.visibility&&this.sizer.redraw(),n.consume()}},mxOutline.prototype.mouseUp=function(e,n){if(this.active){var t=n.getX()-this.startX,a=n.getY()-this.startY;if(0<Math.abs(t)||0<Math.abs(a)){if(this.zoom){a=this.selectionBorder.bounds.width;var i=this.source.getView().scale;this.source.zoomTo(i-t*i/a,!1)}else this.source.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.source.container)||(this.source.panGraph(0,0),t/=this.outline.getView().scale,a/=this.outline.getView().scale,i=this.source.getView().translate,this.source.getView().setTranslate(i.x-t,i.y-a));this.update(),n.consume()}this.index=null,this.active=!1}},mxOutline.prototype.destroy=function(){null!=this.source&&(this.source.removeListener(this.panHandler),this.source.removeListener(this.refreshHandler),this.source.getModel().removeListener(this.updateHandler),this.source.getView().removeListener(this.updateHandler),mxEvent.addListener(this.source.container,"scroll",this.updateHandler),this.source=null),null!=this.outline&&(this.outline.removeMouseListener(this),this.outline.destroy(),this.outline=null),null!=this.selectionBorder&&(this.selectionBorder.destroy(),this.selectionBorder=null),null!=this.sizer&&(this.sizer.destroy(),this.sizer=null)},mxMultiplicity.prototype.type=null,mxMultiplicity.prototype.attr=null,mxMultiplicity.prototype.value=null,mxMultiplicity.prototype.source=null,mxMultiplicity.prototype.min=null,mxMultiplicity.prototype.max=null,mxMultiplicity.prototype.validNeighbors=null,mxMultiplicity.prototype.validNeighborsAllowed=!0,mxMultiplicity.prototype.countError=null,mxMultiplicity.prototype.typeError=null,mxMultiplicity.prototype.check=function(e,n,t,a,i,s){var o="";return(this.source&&this.checkTerminal(e,t,n)||!this.source&&this.checkTerminal(e,a,n))&&(null!=this.countError&&(this.source&&(0==this.max||i>=this.max)||!this.source&&(0==this.max||s>=this.max))&&(o+=this.countError+"\n"),null!=this.validNeighbors&&null!=this.typeError&&0<this.validNeighbors.length&&(this.checkNeighbors(e,n,t,a)||(o+=this.typeError+"\n"))),0<o.length?o:null},mxMultiplicity.prototype.checkNeighbors=function(e,n,t,a){n=e.model.getValue(t),a=e.model.getValue(a),t=!this.validNeighborsAllowed;for(var i=this.validNeighbors,s=0;s<i.length;s++){if(this.source&&this.checkType(e,a,i[s])){t=this.validNeighborsAllowed;break}if(!this.source&&this.checkType(e,n,i[s])){t=this.validNeighborsAllowed;break}}return t},mxMultiplicity.prototype.checkTerminal=function(e,n,t){return n=e.model.getValue(n),this.checkType(e,n,this.type,this.attr,this.value)},mxMultiplicity.prototype.checkType=function(e,n,t,a,i){return null!=n&&(isNaN(n.nodeType)?n==t:mxUtils.isNode(n,t,a,i))},mxLayoutManager.prototype=new mxEventSource,mxLayoutManager.prototype.constructor=mxLayoutManager,mxLayoutManager.prototype.graph=null,mxLayoutManager.prototype.bubbling=!0,mxLayoutManager.prototype.enabled=!0,mxLayoutManager.prototype.updateHandler=null,mxLayoutManager.prototype.moveHandler=null,mxLayoutManager.prototype.isEnabled=function(){return this.enabled},mxLayoutManager.prototype.setEnabled=function(e){this.enabled=e},mxLayoutManager.prototype.isBubbling=function(){return this.bubbling},mxLayoutManager.prototype.setBubbling=function(e){this.bubbling=e},mxLayoutManager.prototype.getGraph=function(){return this.graph},mxLayoutManager.prototype.setGraph=function(e){if(null!=this.graph){var n=this.graph.getModel();n.removeListener(this.undoHandler),this.graph.removeListener(this.moveHandler)}this.graph=e,null!=this.graph&&((n=this.graph.getModel()).addListener(mxEvent.BEFORE_UNDO,this.undoHandler),this.graph.addListener(mxEvent.MOVE_CELLS,this.moveHandler))},mxLayoutManager.prototype.getLayout=function(e){return null},mxLayoutManager.prototype.beforeUndo=function(e){e=this.getCellsForChanges(e.changes);var n=this.getGraph().getModel();if(this.isBubbling())for(var t=n.getParents(e);0<t.length;)e=e.concat(t),t=n.getParents(t);this.layoutCells(mxUtils.sortCells(e,!1))},mxLayoutManager.prototype.cellsMoved=function(e,n){if(null!=e&&null!=n)for(var t=mxUtils.convertPoint(this.getGraph().container,mxEvent.getClientX(n),mxEvent.getClientY(n)),a=this.getGraph().getModel(),i=0;i<e.length;i++){var s=this.getLayout(a.getParent(e[i]));null!=s&&s.moveCell(e[i],t.x,t.y)}},mxLayoutManager.prototype.getCellsForChanges=function(e){for(var n=[],t={},a=0;a<e.length;a++){if((i=e[a])instanceof mxRootChange)return[];for(var i=this.getCellsForChange(i),s=0;s<i.length;s++)if(null!=i[s]){var o=mxCellPath.create(i[s]);null==t[o]&&(t[o]=i[s],n.push(i[s]))}}return n},mxLayoutManager.prototype.getCellsForChange=function(e){var n=this.getGraph().getModel();return e instanceof mxChildChange?[e.child,e.previous,n.getParent(e.child)]:e instanceof mxTerminalChange||e instanceof mxGeometryChange?[e.cell,n.getParent(e.cell)]:[]},mxLayoutManager.prototype.layoutCells=function(e){if(0<e.length){var n=this.getGraph().getModel();n.beginUpdate();try{for(var t=null,a=0;a<e.length;a++)e[a]!=n.getRoot()&&e[a]!=t&&(t=e[a],this.executeLayout(this.getLayout(t),t));this.fireEvent(new mxEventObject(mxEvent.LAYOUT_CELLS,"cells",e))}finally{n.endUpdate()}}},mxLayoutManager.prototype.executeLayout=function(e,n){null!=e&&null!=n&&e.execute(n)},mxLayoutManager.prototype.destroy=function(){this.setGraph(null)},mxSpaceManager.prototype=new mxEventSource,mxSpaceManager.prototype.constructor=mxSpaceManager,mxSpaceManager.prototype.graph=null,mxSpaceManager.prototype.enabled=!0,mxSpaceManager.prototype.shiftRightwards=!0,mxSpaceManager.prototype.shiftDownwards=!0,mxSpaceManager.prototype.extendParents=!0,mxSpaceManager.prototype.resizeHandler=null,mxSpaceManager.prototype.foldHandler=null,mxSpaceManager.prototype.isCellIgnored=function(e){return!this.getGraph().getModel().isVertex(e)},mxSpaceManager.prototype.isCellShiftable=function(e){return this.getGraph().getModel().isVertex(e)&&this.getGraph().isCellMovable(e)},mxSpaceManager.prototype.isEnabled=function(){return this.enabled},mxSpaceManager.prototype.setEnabled=function(e){this.enabled=e},mxSpaceManager.prototype.isShiftRightwards=function(){return this.shiftRightwards},mxSpaceManager.prototype.setShiftRightwards=function(e){this.shiftRightwards=e},mxSpaceManager.prototype.isShiftDownwards=function(){return this.shiftDownwards},mxSpaceManager.prototype.setShiftDownwards=function(e){this.shiftDownwards=e},mxSpaceManager.prototype.isExtendParents=function(){return this.extendParents},mxSpaceManager.prototype.setExtendParents=function(e){this.extendParents=e},mxSpaceManager.prototype.getGraph=function(){return this.graph},mxSpaceManager.prototype.setGraph=function(e){null!=this.graph&&(this.graph.removeListener(this.resizeHandler),this.graph.removeListener(this.foldHandler)),this.graph=e,null!=this.graph&&(this.graph.addListener(mxEvent.RESIZE_CELLS,this.resizeHandler),this.graph.addListener(mxEvent.FOLD_CELLS,this.foldHandler))},mxSpaceManager.prototype.cellsResized=function(e){if(null!=e){var n=this.graph.getModel();n.beginUpdate();try{for(var t=0;t<e.length;t++)if(!this.isCellIgnored(e[t])){this.cellResized(e[t]);break}}finally{n.endUpdate()}}},mxSpaceManager.prototype.cellResized=function(e){var n=this.getGraph(),t=n.getView(),a=n.getModel(),i=t.getState(e),s=t.getState(a.getParent(e));if(null!=i&&null!=s){var o=this.getCellsToShift(i),r=a.getGeometry(e);if(null!=o&&null!=r){var l=t.translate,d=t.scale,c=(t=i.x-s.origin.x-l.x*d,s=i.y-s.origin.y-l.y*d,l=i.x+i.width,i.y+i.height),m=i.width-r.width*d+t-r.x*d,u=i.height-r.height*d+s-r.y*d,p=1-r.width*d/i.width;i=1-r.height*d/i.height;a.beginUpdate();try{for(r=0;r<o.length;r++)o[r]!=e&&this.isCellShiftable(o[r])&&this.shiftCell(o[r],m,u,t,s,l,c,p,i,this.isExtendParents()&&n.isExtendParent(o[r]))}finally{a.endUpdate()}}}},mxSpaceManager.prototype.shiftCell=function(e,n,t,a,i,s,o,r,l,d){var c=(a=this.getGraph()).getView().getState(e);if(null!=c){var m=a.getModel();if(null!=(p=m.getGeometry(e))){m.beginUpdate();try{if(this.isShiftRightwards())if(c.x>=s)(p=p.clone()).translate(-n,0);else{var u=Math.max(0,c.x-x0);(p=p.clone()).translate(-r*u,0)}if(this.isShiftDownwards())if(c.y>=o)(p=p.clone()).translate(0,-t);else{var p,g=Math.max(0,c.y-i);(p=p.clone()).translate(0,-l*g)}p!=m.getGeometry(e)&&(m.setGeometry(e,p),d&&a.extendParent(e))}finally{m.endUpdate()}}}},mxSpaceManager.prototype.getCellsToShift=function(e){var n=this.getGraph(),t=n.getModel().getParent(e.cell),a=this.isShiftDownwards(),i=this.isShiftRightwards();return n.getCellsBeyond(e.x+(a?0:e.width),e.y+(a&&i?0:e.height),t,i,a)},mxSpaceManager.prototype.destroy=function(){this.setGraph(null)},mxSwimlaneManager.prototype=new mxEventSource,mxSwimlaneManager.prototype.constructor=mxSwimlaneManager,mxSwimlaneManager.prototype.graph=null,mxSwimlaneManager.prototype.enabled=!0,mxSwimlaneManager.prototype.horizontal=!0,mxSwimlaneManager.prototype.addEnabled=!0,mxSwimlaneManager.prototype.resizeEnabled=!0,mxSwimlaneManager.prototype.addHandler=null,mxSwimlaneManager.prototype.resizeHandler=null,mxSwimlaneManager.prototype.isEnabled=function(){return this.enabled},mxSwimlaneManager.prototype.setEnabled=function(e){this.enabled=e},mxSwimlaneManager.prototype.isHorizontal=function(){return this.horizontal},mxSwimlaneManager.prototype.setHorizontal=function(e){this.horizontal=e},mxSwimlaneManager.prototype.isAddEnabled=function(){return this.addEnabled},mxSwimlaneManager.prototype.setAddEnabled=function(e){this.addEnabled=e},mxSwimlaneManager.prototype.isResizeEnabled=function(){return this.resizeEnabled},mxSwimlaneManager.prototype.setResizeEnabled=function(e){this.resizeEnabled=e},mxSwimlaneManager.prototype.getGraph=function(){return this.graph},mxSwimlaneManager.prototype.setGraph=function(e){null!=this.graph&&(this.graph.removeListener(this.addHandler),this.graph.removeListener(this.resizeHandler)),this.graph=e,null!=this.graph&&(this.graph.addListener(mxEvent.ADD_CELLS,this.addHandler),this.graph.addListener(mxEvent.CELLS_RESIZED,this.resizeHandler))},mxSwimlaneManager.prototype.isSwimlaneIgnored=function(e){return!this.getGraph().isSwimlane(e)},mxSwimlaneManager.prototype.isCellHorizontal=function(e){if(this.graph.isSwimlane(e)){var n=this.graph.view.getState(e);return e=null!=n?n.style:this.graph.getCellStyle(e),1==mxUtils.getValue(e,mxConstants.STYLE_HORIZONTAL,1)}return!this.isHorizontal()},mxSwimlaneManager.prototype.cellsAdded=function(e){if(null!=e){var n=this.getGraph().getModel();n.beginUpdate();try{for(var t=0;t<e.length;t++)this.isSwimlaneIgnored(e[t])||this.swimlaneAdded(e[t])}finally{n.endUpdate()}}},mxSwimlaneManager.prototype.swimlaneAdded=function(e){for(var n=this.getGraph().getModel(),t=n.getParent(e),a=n.getChildCount(t),i=null,s=0;s<a;s++){var o=n.getChildAt(t,s);if(o!=e&&!this.isSwimlaneIgnored(o)&&null!=(i=n.getGeometry(o)))break}null!=i&&this.resizeSwimlane(e,i.width,i.height)},mxSwimlaneManager.prototype.cellsResized=function(e){if(null!=e){var n=this.getGraph().getModel();n.beginUpdate();try{for(var t=0;t<e.length;t++)if(!this.isSwimlaneIgnored(e[t])){var a=n.getGeometry(e[t]);if(null!=a){for(var i=new mxRectangle(0,0,a.width,a.height),s=o=e[t];null!=s;){var o=s,r=(s=n.getParent(s),this.graph.isSwimlane(s)?this.graph.getStartSize(s):new mxRectangle);i.width+=r.width,i.height+=r.height}this.resizeSwimlane(o,i.width,i.height)}}}finally{n.endUpdate()}}},mxSwimlaneManager.prototype.resizeSwimlane=function(e,n,t){var a=this.getGraph().getModel();a.beginUpdate();try{if(!this.isSwimlaneIgnored(e))if(null!=(r=a.getGeometry(e))){var i=this.isCellHorizontal(e);(i&&r.height!=t||!i&&r.width!=n)&&(r=r.clone(),i?r.height=t:r.width=n,a.setGeometry(e,r))}var s=this.graph.isSwimlane(e)?this.graph.getStartSize(e):new mxRectangle;n-=s.width,t-=s.height;for(var o=a.getChildCount(e),r=0;r<o;r++){var l=a.getChildAt(e,r);this.resizeSwimlane(l,n,t)}}finally{a.endUpdate()}},mxSwimlaneManager.prototype.destroy=function(){this.setGraph(null)},mxTemporaryCellStates.prototype.view=null,mxTemporaryCellStates.prototype.oldStates=null,mxTemporaryCellStates.prototype.oldBounds=null,mxTemporaryCellStates.prototype.oldScale=null,mxTemporaryCellStates.prototype.destroy=function(){this.view.setScale(this.oldScale),this.view.setStates(this.oldStates),this.view.setGraphBounds(this.oldBounds)},mxCellStatePreview.prototype.graph=null,mxCellStatePreview.prototype.deltas=null,mxCellStatePreview.prototype.count=0,mxCellStatePreview.prototype.isEmpty=function(){return 0==this.count},mxCellStatePreview.prototype.moveState=function(e,n,t,a,i){a=null==a||a,i=null==i||i;var s=mxCellPath.create(e.cell),o=this.deltas[s];return null==o?(o=new mxPoint(n,t),this.deltas[s]=o,this.count++):a?(o.X+=n,o.Y+=t):(o.X=n,o.Y=t),i&&this.addEdges(e),o},mxCellStatePreview.prototype.show=function(e){var n,t=this.graph.getModel(),a=t.getRoot();for(n in this.deltas){var i=mxCellPath.resolve(a,n),s=this.graph.view.getState(i),o=this.deltas[n];i=this.graph.view.getState(t.getParent(i));this.translateState(i,s,o.x,o.y)}for(n in this.deltas)i=mxCellPath.resolve(a,n),s=this.graph.view.getState(i),o=this.deltas[n],i=this.graph.view.getState(t.getParent(i)),this.revalidateState(i,s,o.x,o.y,e)},mxCellStatePreview.prototype.translateState=function(e,n,t,a){if(null!=n){var i=this.graph.getModel();if(i.isVertex(n.cell)){n.invalid=!0,this.graph.view.validateBounds(e,n.cell),e=i.getGeometry(n.cell);var s=mxCellPath.create(n.cell);0==t&&0==a||null==e||e.relative&&null==this.deltas[s]||(n.x+=t,n.y+=a)}for(e=i.getChildCount(n.cell),s=0;s<e;s++)this.translateState(n,this.graph.view.getState(i.getChildAt(n.cell,s)),t,a)}},mxCellStatePreview.prototype.revalidateState=function(e,n,t,a,i){if(null!=n){n.invalid=!0,this.graph.view.validatePoints(e,n.cell);var s=mxCellPath.create(n.cell),o=this.graph.getModel(),r=this.graph.getCellGeometry(n.cell);for(0==t&&0==a||null==r||!r.relative||!o.isVertex(n.cell)||null!=e&&!o.isVertex(e.cell)&&null==this.deltas[s]||(n.x+=t,n.y+=a,this.graph.cellRenderer.redraw(n)),null!=i&&i(n),e=o.getChildCount(n.cell),s=0;s<e;s++)this.revalidateState(n,this.graph.view.getState(o.getChildAt(n.cell,s)),t,a,i)}},mxCellStatePreview.prototype.addEdges=function(e){for(var n=this.graph.getModel(),t=n.getEdgeCount(e.cell),a=0;a<t;a++){var i=this.graph.view.getState(n.getEdgeAt(e.cell,a));null!=i&&this.moveState(i,0,0)}},mxConnectionConstraint.prototype.point=null,mxConnectionConstraint.prototype.perimeter=null,mxGraphHandler.prototype.graph=null,mxGraphHandler.prototype.maxCells=mxClient.IS_IE?20:50,mxGraphHandler.prototype.enabled=!0,mxGraphHandler.prototype.highlightEnabled=!0,mxGraphHandler.prototype.cloneEnabled=!0,mxGraphHandler.prototype.moveEnabled=!0,mxGraphHandler.prototype.guidesEnabled=!1,mxGraphHandler.prototype.guide=null,mxGraphHandler.prototype.currentDx=null,mxGraphHandler.prototype.currentDy=null,mxGraphHandler.prototype.updateCursor=!0,mxGraphHandler.prototype.selectEnabled=!0,mxGraphHandler.prototype.removeCellsFromParent=!0,mxGraphHandler.prototype.connectOnDrop=!1,mxGraphHandler.prototype.scrollOnMove=!0,mxGraphHandler.prototype.minimumSize=6,mxGraphHandler.prototype.previewColor="black",mxGraphHandler.prototype.htmlPreview=!1,mxGraphHandler.prototype.shape=null,mxGraphHandler.prototype.scaleGrid=!1,mxGraphHandler.prototype.rotationEnabled=!0,mxGraphHandler.prototype.isEnabled=function(){return this.enabled},mxGraphHandler.prototype.setEnabled=function(e){this.enabled=e},mxGraphHandler.prototype.isCloneEnabled=function(){return this.cloneEnabled},mxGraphHandler.prototype.setCloneEnabled=function(e){this.cloneEnabled=e},mxGraphHandler.prototype.isMoveEnabled=function(){return this.moveEnabled},mxGraphHandler.prototype.setMoveEnabled=function(e){this.moveEnabled=e},mxGraphHandler.prototype.isSelectEnabled=function(){return this.selectEnabled},mxGraphHandler.prototype.setSelectEnabled=function(e){this.selectEnabled=e},mxGraphHandler.prototype.isRemoveCellsFromParent=function(){return this.removeCellsFromParent},mxGraphHandler.prototype.setRemoveCellsFromParent=function(e){this.removeCellsFromParent=e},mxGraphHandler.prototype.getInitialCellForEvent=function(e){return e.getCell()},mxGraphHandler.prototype.isDelayedSelection=function(e){return this.graph.isCellSelected(e)},mxGraphHandler.prototype.mouseDown=function(e,n){if(!n.isConsumed()&&this.isEnabled()&&this.graph.isEnabled()&&!this.graph.isForceMarqueeEvent(n.getEvent())&&null!=n.getState()){var t=this.getInitialCellForEvent(n);if(this.cell=null,this.delayedSelection=this.isDelayedSelection(t),this.isSelectEnabled()&&!this.delayedSelection&&this.graph.selectCellForEvent(t,n.getEvent()),this.isMoveEnabled()){var a=this.graph.model,i=a.getGeometry(t);this.graph.isCellMovable(t)&&(!a.isEdge(t)||1<this.graph.getSelectionCount()||null!=i.points&&0<i.points.length||null==a.getTerminal(t,!0)||null==a.getTerminal(t,!1)||this.graph.allowDanglingEdges||this.graph.isCloneEvent(n.getEvent())&&this.graph.isCellsCloneable())&&this.start(t,n.getX(),n.getY()),this.cellWasClicked=!0,!mxClient.IS_SF&&!mxClient.IS_GC||"SELECT"!=n.getSource().nodeName?n.consume():mxClient.IS_SF&&"SELECT"==n.getSource().nodeName&&(this.cellWasClicked=!1,this.first=null)}}},mxGraphHandler.prototype.getGuideStates=function(){var e=this.graph.getDefaultParent(),n=this.graph.getModel(),t=mxUtils.bind(this,function(e){return null!=this.graph.view.getState(e)&&n.isVertex(e)&&null!=n.getGeometry(e)&&!n.getGeometry(e).relative});return this.graph.view.getCellStates(n.filterDescendants(t,e))},mxGraphHandler.prototype.getCells=function(e){return!this.delayedSelection&&this.graph.isCellMovable(e)?[e]:this.graph.getMovableCells(this.graph.getSelectionCells())},mxGraphHandler.prototype.getPreviewBounds=function(e){return null!=(e=this.getBoundingBox(e))&&(e.grow(-1,-1),e.width<this.minimumSize&&(e.x-=(this.minimumSize-e.width)/2,e.width=this.minimumSize),e.height<this.minimumSize&&(e.y-=(this.minimumSize-e.height)/2,e.height=this.minimumSize)),e},mxGraphHandler.prototype.getBoundingBox=function(e){var n=null;if(null!=e&&0<e.length)for(var t=this.graph.getModel(),a=0;a<e.length;a++)if(t.isVertex(e[a])||t.isEdge(e[a])){var i=this.graph.view.getState(e[a]);if(null!=i){var s=i;t.isVertex(e[a])&&null!=i.shape&&null!=i.shape.boundingBox&&(s=i.shape.boundingBox),null==n?n=new mxRectangle(s.x,s.y,s.width,s.height):n.add(s)}}return n},mxGraphHandler.prototype.createPreviewShape=function(e){return(e=new mxRectangleShape(e,null,this.previewColor)).isDashed=!0,this.htmlPreview?(e.dialect=mxConstants.DIALECT_STRICTHTML,e.init(this.graph.container)):(e.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,e.init(this.graph.getView().getOverlayPane()),e.pointerEvents=!1),e},mxGraphHandler.prototype.start=function(e,n,t){this.cell=e,this.first=mxUtils.convertPoint(this.graph.container,n,t),this.cells=this.getCells(this.cell),this.bounds=this.graph.getView().getBounds(this.cells),this.pBounds=this.getPreviewBounds(this.cells),this.guidesEnabled&&(this.guide=new mxGuide(this.graph,this.getGuideStates()))},mxGraphHandler.prototype.useGuidesForEvent=function(e){return null==this.guide||this.guide.isEnabledForEvent(e.getEvent())},mxGraphHandler.prototype.snap=function(e){var n=this.scaleGrid?this.graph.view.scale:1;return e.x=this.graph.snap(e.x/n)*n,e.y=this.graph.snap(e.y/n)*n,e},mxGraphHandler.prototype.mouseMove=function(e,n){var t=this.graph;if(!n.isConsumed()&&t.isMouseDown&&null!=this.cell&&null!=this.first&&null!=this.bounds){var a=(s=mxUtils.convertPoint(t.container,n.getX(),n.getY())).x-this.first.x,i=s.y-this.first.y,s=t.tolerance;if(null!=this.shape||Math.abs(a)>s||Math.abs(i)>s){null==this.highlight&&(this.highlight=new mxCellHighlight(this.graph,mxConstants.DROP_TARGET_COLOR,3)),null==this.shape&&(this.shape=this.createPreviewShape(this.bounds));var o=t.isGridEnabledEvent(n.getEvent());s=!0;if(null!=this.guide&&this.useGuidesForEvent(n))s=!1,a=(i=this.guide.move(this.bounds,new mxPoint(a,i),o)).x,i=i.y;else if(o){var r=t.getView().translate,l=t.getView().scale;o=this.bounds.x-(t.snap(this.bounds.x/l-r.x)+r.x)*l,r=this.bounds.y-(t.snap(this.bounds.y/l-r.y)+r.y)*l,a=(i=this.snap(new mxPoint(a,i))).x-o,i=i.y-r}for(null!=this.guide&&s&&this.guide.hide(),t.isConstrainedEvent(n.getEvent())&&(Math.abs(a)>Math.abs(i)?i=0:a=0),this.currentDx=a,this.currentDy=i,this.updatePreviewShape(),s=null,i=n.getCell(),t.isDropEnabled()&&this.highlightEnabled&&(s=t.getDropTarget(this.cells,n.getEvent(),i)),o=s,r=t.getModel();null!=o&&o!=this.cells[0];)o=r.getParent(o);l=t.isCloneEvent(n.getEvent())&&t.isCellsCloneable()&&this.isCloneEnabled();var d=!1;null==(a=t.getView().getState(s))||null!=o||r.getParent(this.cell)==s&&!l?(this.target=null,this.connectOnDrop&&null!=i&&1==this.cells.length&&t.getModel().isVertex(i)&&t.isCellConnectable(i)&&(null!=(a=t.getView().getState(i))&&(t=null==t.getEdgeValidationError(null,this.cell,i)?mxConstants.VALID_COLOR:mxConstants.INVALID_CONNECT_TARGET_COLOR,this.setHighlightColor(t),d=!0))):(this.target!=s&&(this.target=s,this.setHighlightColor(mxConstants.DROP_TARGET_COLOR)),d=!0),null!=a&&d?this.highlight.highlight(a):this.highlight.hide()}n.consume(),mxEvent.consume(n.getEvent())}else!this.isMoveEnabled()&&!this.isCloneEnabled()||!this.updateCursor||n.isConsumed()||null==n.getState()||t.isMouseDown||(null==(a=t.getCursorForCell(n.getCell()))&&t.isEnabled()&&t.isCellMovable(n.getCell())&&(a=t.getModel().isEdge(n.getCell())?mxConstants.CURSOR_MOVABLE_EDGE:mxConstants.CURSOR_MOVABLE_VERTEX),n.getState().setCursor(a),n.consume())},mxGraphHandler.prototype.updatePreviewShape=function(){null!=this.shape&&(this.shape.bounds=new mxRectangle(Math.round(this.pBounds.x+this.currentDx-this.graph.panDx),Math.round(this.pBounds.y+this.currentDy-this.graph.panDy),this.pBounds.width,this.pBounds.height),this.shape.redraw())},mxGraphHandler.prototype.setHighlightColor=function(e){null!=this.highlight&&this.highlight.setHighlightColor(e)},mxGraphHandler.prototype.mouseUp=function(e,n){if(!n.isConsumed()){var t=this.graph;if(null!=this.cell&&null!=this.first&&null!=this.shape&&null!=this.currentDx&&null!=this.currentDy){var a=t.getView().scale,i=t.isCloneEvent(n.getEvent())&&t.isCellsCloneable()&&this.isCloneEnabled(),s=this.currentDx/a,o=(a=this.currentDy/a,n.getCell());this.connectOnDrop&&null==this.target&&null!=o&&t.getModel().isVertex(o)&&t.isCellConnectable(o)&&t.isEdgeValid(null,this.cell,o)?t.connectionHandler.connect(this.cell,o,n.getEvent()):(o=this.target,t.isSplitEnabled()&&t.isSplitTarget(o,this.cells,n.getEvent())?t.splitEdge(o,this.cells,null,s,a):this.moveCells(this.cells,s,a,i,this.target,n.getEvent()))}else this.isSelectEnabled()&&this.delayedSelection&&null!=this.cell&&this.selectDelayed(n)}this.cellWasClicked&&n.consume(),this.reset()},mxGraphHandler.prototype.selectDelayed=function(e){this.graph.selectCellForEvent(this.cell,e.getEvent())},mxGraphHandler.prototype.reset=function(){this.destroyShapes(),this.delayedSelection=this.cellWasClicked=!1,this.target=this.cell=this.first=this.guides=this.currentDy=this.currentDx=null},mxGraphHandler.prototype.shouldRemoveCellsFromParent=function(e,n,t){if(this.graph.getModel().isVertex(e)){if(e=this.graph.getView().getState(e),t=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(t),mxEvent.getClientY(t)),0!=(a=mxUtils.toRadians(mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION)||0))){n=Math.cos(-a);var a=Math.sin(-a),i=new mxPoint(e.getCenterX(),e.getCenterY());t=mxUtils.getRotatedPoint(t,n,a,i)}return null!=e&&!mxUtils.contains(e,t.x,t.y)}return!1},mxGraphHandler.prototype.moveCells=function(e,n,t,a,i,s){a&&(e=this.graph.getCloneableCells(e)),null==i&&this.isRemoveCellsFromParent()&&this.shouldRemoveCellsFromParent(this.graph.getModel().getParent(this.cell),e,s)&&(i=this.graph.getDefaultParent()),e=this.graph.moveCells(e,n-this.graph.panDx/this.graph.view.scale,t-this.graph.panDy/this.graph.view.scale,a,i,s),this.isSelectEnabled()&&this.scrollOnMove&&this.graph.scrollCellToVisible(e[0]),a&&this.graph.setSelectionCells(e)},mxGraphHandler.prototype.destroyShapes=function(){null!=this.shape&&(this.shape.destroy(),this.shape=null),null!=this.guide&&(this.guide.destroy(),this.guide=null),null!=this.highlight&&(this.highlight.destroy(),this.highlight=null)},mxGraphHandler.prototype.destroy=function(){this.graph.removeMouseListener(this),this.graph.removeListener(this.panHandler),this.destroyShapes()},mxPanningHandler.prototype=new mxPopupMenu,mxPanningHandler.prototype.constructor=mxPanningHandler,mxPanningHandler.prototype.graph=null,mxPanningHandler.prototype.triggerX=null,mxPanningHandler.prototype.triggerY=null,mxPanningHandler.prototype.usePopupTrigger=!0,mxPanningHandler.prototype.useLeftButtonForPanning=!1,mxPanningHandler.prototype.selectOnPopup=!0,mxPanningHandler.prototype.clearSelectionOnBackground=!0,mxPanningHandler.prototype.ignoreCell=!1,mxPanningHandler.prototype.previewEnabled=!0,mxPanningHandler.prototype.useGrid=!1,mxPanningHandler.prototype.panningEnabled=!0,mxPanningHandler.prototype.isPanningEnabled=function(){return this.panningEnabled},mxPanningHandler.prototype.setPanningEnabled=function(e){this.panningEnabled=e},mxPanningHandler.prototype.init=function(){mxPopupMenu.prototype.init.apply(this),mxEvent.addListener(this.div,mxClient.IS_TOUCH?"touchmove":"mousemove",mxUtils.bind(this,function(e){this.graph.tooltipHandler.hide()}))},mxPanningHandler.prototype.isPanningTrigger=function(e){var n=e.getEvent();return this.useLeftButtonForPanning&&(this.ignoreCell||null==e.getState())&&mxEvent.isLeftMouseButton(n)||mxEvent.isControlDown(n)&&mxEvent.isShiftDown(n)||this.usePopupTrigger&&mxEvent.isPopupTrigger(n)},mxPanningHandler.prototype.mouseDown=function(e,n){if(!n.isConsumed()&&this.isEnabled()){this.hideMenu(),this.dx0=-this.graph.container.scrollLeft,this.dy0=-this.graph.container.scrollTop;var t=mxUtils.convertPoint(this.graph.container,n.getX(),n.getY());this.triggerX=t.x,this.triggerY=t.y,this.popupTrigger=this.isPopupTrigger(n),this.panningTrigger=this.isPanningEnabled()&&this.isPanningTrigger(n),this.startX=n.getX(),this.startY=n.getY(),this.panningTrigger&&this.consumePanningTrigger(n)}},mxPanningHandler.prototype.consumePanningTrigger=function(e){e.consume()},mxPanningHandler.prototype.mouseMove=function(e,n){var t=n.getX()-this.startX,a=n.getY()-this.startY;if(this.active)this.previewEnabled&&(this.useGrid&&(t=this.graph.snap(t),a=this.graph.snap(a)),this.graph.panGraph(t+this.dx0,a+this.dy0)),this.fireEvent(new mxEventObject(mxEvent.PAN,"event",n)),n.consume();else if(this.panningTrigger){var i=this.active;this.active=Math.abs(t)>this.graph.tolerance||Math.abs(a)>this.graph.tolerance,!i&&this.active&&this.fireEvent(new mxEventObject(mxEvent.PAN_START,"event",n))}},mxPanningHandler.prototype.mouseUp=function(e,n){var t=Math.abs(n.getX()-this.startX),a=Math.abs(n.getY()-this.startY);if(this.active){if(!this.graph.useScrollbarsForPanning||!mxUtils.hasScrollbars(this.graph.container)){t=n.getX()-this.startX,a=n.getY()-this.startY,this.useGrid&&(t=this.graph.snap(t),a=this.graph.snap(a));var i=this.graph.getView().scale,s=this.graph.getView().translate;this.graph.panGraph(0,0),this.panGraph(s.x+t/i,s.y+a/i)}this.active=!1,this.fireEvent(new mxEventObject(mxEvent.PAN_END,"event",n)),n.consume()}else this.popupTrigger&&t<this.graph.tolerance&&a<this.graph.tolerance&&(t=this.getCellForPopupEvent(n),this.graph.isEnabled()&&this.selectOnPopup&&null!=t&&!this.graph.isCellSelected(t)?this.graph.setSelectionCell(t):this.clearSelectionOnBackground&&null==t&&this.graph.clearSelection(),this.graph.tooltipHandler.hide(),a=mxUtils.getScrollOrigin(),a=new mxPoint(n.getX()+a.x,n.getY()+a.y),this.popup(a.x+1,a.y+1,t,n.getEvent()),n.consume());this.popupTrigger=this.panningTrigger=!1},mxPanningHandler.prototype.getCellForPopupEvent=function(e){return e.getCell()},mxPanningHandler.prototype.panGraph=function(e,n){this.graph.getView().setTranslate(e,n)},mxPanningHandler.prototype.destroy=function(){this.graph.removeMouseListener(this),mxPopupMenu.prototype.destroy.apply(this)},mxUtils.extend(mxCellMarker,mxEventSource),mxCellMarker.prototype.graph=null,mxCellMarker.prototype.enabled=!0,mxCellMarker.prototype.hotspot=mxConstants.DEFAULT_HOTSPOT,mxCellMarker.prototype.hotspotEnabled=!1,mxCellMarker.prototype.validColor=null,mxCellMarker.prototype.invalidColor=null,mxCellMarker.prototype.currentColor=null,mxCellMarker.prototype.validState=null,mxCellMarker.prototype.markedState=null,mxCellMarker.prototype.setEnabled=function(e){this.enabled=e},mxCellMarker.prototype.isEnabled=function(){return this.enabled},mxCellMarker.prototype.setHotspot=function(e){this.hotspot=e},mxCellMarker.prototype.getHotspot=function(){return this.hotspot},mxCellMarker.prototype.setHotspotEnabled=function(e){this.hotspotEnabled=e},mxCellMarker.prototype.isHotspotEnabled=function(){return this.hotspotEnabled},mxCellMarker.prototype.hasValidState=function(){return null!=this.validState},mxCellMarker.prototype.getValidState=function(){return this.validState},mxCellMarker.prototype.getMarkedState=function(){return this.markedState},mxCellMarker.prototype.reset=function(){(this.validState=null)!=this.markedState&&(this.markedState=null,this.unmark())},mxCellMarker.prototype.process=function(e){var n=null;if(this.isEnabled()){var t=null!=(n=this.getState(e))&&this.isValidState(n);e=this.getMarkerColor(e.getEvent(),n,t),this.validState=t?n:null,n==this.markedState&&e==this.currentColor||(this.currentColor=e,null!=n&&null!=this.currentColor?(this.markedState=n,this.mark()):null!=this.markedState&&(this.markedState=null,this.unmark()))}return n},mxCellMarker.prototype.markCell=function(e,n){var t=this.graph.getView().getState(e);null!=t&&(this.currentColor=null!=n?n:this.validColor,this.markedState=t,this.mark())},mxCellMarker.prototype.mark=function(){this.highlight.setHighlightColor(this.currentColor),this.highlight.highlight(this.markedState),this.fireEvent(new mxEventObject(mxEvent.MARK,"state",this.markedState))},mxCellMarker.prototype.unmark=function(){this.mark()},mxCellMarker.prototype.isValidState=function(e){return!0},mxCellMarker.prototype.getMarkerColor=function(e,n,t){return t?this.validColor:this.invalidColor},mxCellMarker.prototype.getState=function(e){var n=this.graph.getView();return cell=this.getCell(e),null!=(n=this.getStateToMark(n.getState(cell)))&&this.intersects(n,e)?n:null},mxCellMarker.prototype.getCell=function(e){return e.getCell()},mxCellMarker.prototype.getStateToMark=function(e){return e},mxCellMarker.prototype.intersects=function(e,n){return!this.hotspotEnabled||mxUtils.intersectsHotspot(e,n.getGraphX(),n.getGraphY(),this.hotspot,mxConstants.MIN_HOTSPOT_SIZE,mxConstants.MAX_HOTSPOT_SIZE)},mxCellMarker.prototype.destroy=function(){this.graph.getView().removeListener(this.resetHandler),this.graph.getModel().removeListener(this.resetHandler),this.highlight.destroy()},mxUtils.extend(mxSelectionCellsHandler,mxEventSource),mxSelectionCellsHandler.prototype.graph=null,mxSelectionCellsHandler.prototype.enabled=!0,mxSelectionCellsHandler.prototype.refreshHandler=null,mxSelectionCellsHandler.prototype.maxHandlers=100,mxSelectionCellsHandler.prototype.handlers=null,mxSelectionCellsHandler.prototype.isEnabled=function(){return this.enabled},mxSelectionCellsHandler.prototype.setEnabled=function(e){this.enabled=e},mxSelectionCellsHandler.prototype.getHandler=function(e){return this.handlers.get(e)},mxSelectionCellsHandler.prototype.reset=function(){this.handlers.visit(function(e,n){n.reset.apply(n)})},mxSelectionCellsHandler.prototype.refresh=function(){var e=this.handlers;this.handlers=new mxDictionary;for(var n=this.graph.getSelectionCells(),t=0;t<n.length;t++){var a=this.graph.view.getState(n[t]);if(null!=a){var i=e.remove(n[t]);null!=i&&(i.state!=a?(i.destroy(),i=null):i.redraw()),null==i&&(i=this.graph.createHandler(a),this.fireEvent(new mxEventObject(mxEvent.ADD,"state",a))),null!=i&&this.handlers.put(n[t],i)}}e.visit(mxUtils.bind(this,function(e,n){this.fireEvent(new mxEventObject(mxEvent.REMOVE,"state",n.state)),n.destroy()}))},mxSelectionCellsHandler.prototype.mouseDown=function(e,n){if(this.graph.isEnabled()&&this.isEnabled()){var t=[e,n];this.handlers.visit(function(e,n){n.mouseDown.apply(n,t)})}},mxSelectionCellsHandler.prototype.mouseMove=function(e,n){if(this.graph.isEnabled()&&this.isEnabled()){var t=[e,n];this.handlers.visit(function(e,n){n.mouseMove.apply(n,t)})}},mxSelectionCellsHandler.prototype.mouseUp=function(e,n){if(this.graph.isEnabled()&&this.isEnabled()){var t=[e,n];this.handlers.visit(function(e,n){n.mouseUp.apply(n,t)})}},mxSelectionCellsHandler.prototype.destroy=function(){this.graph.removeMouseListener(this),null!=this.refreshHandler&&(this.graph.getSelectionModel().removeListener(this.refreshHandler),this.graph.getModel().removeListener(this.refreshHandler),this.graph.getView().removeListener(this.refreshHandler),this.refreshHandler=null)},mxUtils.extend(mxConnectionHandler,mxEventSource),mxConnectionHandler.prototype.graph=null,mxConnectionHandler.prototype.factoryMethod=!0,mxConnectionHandler.prototype.moveIconFront=!1,mxConnectionHandler.prototype.moveIconBack=!1,mxConnectionHandler.prototype.connectImage=null,mxConnectionHandler.prototype.targetConnectImage=!1,mxConnectionHandler.prototype.enabled=!0,mxConnectionHandler.prototype.select=!0,mxConnectionHandler.prototype.createTarget=!1;mxConnectionHandler.prototype.marker=null,mxConnectionHandler.prototype.constraintHandler=null,mxConnectionHandler.prototype.error=null,mxConnectionHandler.prototype.waypointsEnabled=!1,mxConnectionHandler.prototype.tapAndHoldEnabled=!0,mxConnectionHandler.prototype.tapAndHoldDelay=500,mxConnectionHandler.prototype.tapAndHoldInProgress=!1,mxConnectionHandler.prototype.tapAndHoldValid=!1,mxConnectionHandler.prototype.tapAndHoldTolerance=4,mxConnectionHandler.prototype.initialTouchX=0,mxConnectionHandler.prototype.initialTouchY=0,mxConnectionHandler.prototype.ignoreMouseDown=!1,mxConnectionHandler.prototype.first=null,mxConnectionHandler.prototype.connectIconOffset=new mxPoint(0,mxConstants.TOOLTIP_VERTICAL_OFFSET),mxConnectionHandler.prototype.edgeState=null,mxConnectionHandler.prototype.changeHandler=null,mxConnectionHandler.prototype.drillHandler=null,mxConnectionHandler.prototype.mouseDownCounter=0,mxConnectionHandler.prototype.movePreviewAway=mxClient.IS_VML,mxConnectionHandler.prototype.isEnabled=function(){return this.enabled},mxConnectionHandler.prototype.setEnabled=function(e){this.enabled=e},mxConnectionHandler.prototype.isCreateTarget=function(){return this.createTarget},mxConnectionHandler.prototype.setCreateTarget=function(e){this.createTarget=e},mxConnectionHandler.prototype.createShape=function(){var e=new mxPolyline([],mxConstants.INVALID_COLOR);if(e.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,e.init(this.graph.getView().getOverlayPane()),e.svgStrokeTolerance=0,e.pointerEvents=!1,e.isDashed=!0,this.graph.dialect==mxConstants.DIALECT_SVG)e.node.setAttribute("pointer-events","none");else{var n=mxUtils.bind(this,function(e){return e=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e)),this.graph.view.getState(this.graph.getCellAt(e.x,e.y))});mxEvent.redirectMouseEvents(e.node,this.graph,n)}return e},mxConnectionHandler.prototype.init=function(){this.graph.addMouseListener(this),this.marker=this.createMarker(),this.constraintHandler=new mxConstraintHandler(this.graph),this.changeHandler=mxUtils.bind(this,function(e){null!=this.iconState&&(this.iconState=this.graph.getView().getState(this.iconState.cell)),null!=this.iconState?this.redrawIcons(this.icons,this.iconState):(this.destroyIcons(this.icons),this.previous=null),this.constraintHandler.reset()}),this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler),this.graph.getView().addListener(mxEvent.SCALE,this.changeHandler),this.graph.getView().addListener(mxEvent.TRANSLATE,this.changeHandler),this.graph.getView().addListener(mxEvent.SCALE_AND_TRANSLATE,this.changeHandler),this.drillHandler=mxUtils.bind(this,function(e){this.destroyIcons(this.icons)}),this.graph.addListener(mxEvent.START_EDITING,this.drillHandler),this.graph.getView().addListener(mxEvent.DOWN,this.drillHandler),this.graph.getView().addListener(mxEvent.UP,this.drillHandler)},mxConnectionHandler.prototype.isConnectableCell=function(e){return!0},mxConnectionHandler.prototype.createMarker=function(){var a=new mxCellMarker(this.graph);return a.hotspotEnabled=!0,a.getCell=mxUtils.bind(this,function(e,n){return n=mxCellMarker.prototype.getCell.apply(a,arguments),this.error=null,this.isConnectableCell(n)?(null!=n?this.isConnecting()?null!=this.previous&&(this.error=this.validateConnection(this.previous.cell,n),null!=this.error&&0==this.error.length&&(n=null,this.isCreateTarget()&&(this.error=null))):this.isValidSource(n)||(n=null):this.isConnecting()&&!this.isCreateTarget()&&!this.graph.allowDanglingEdges&&(this.error=""),n):null}),a.isValidState=mxUtils.bind(this,function(e){return this.isConnecting()?null==this.error:mxCellMarker.prototype.isValidState.apply(a,arguments)}),a.getMarkerColor=mxUtils.bind(this,function(e,n,t){return null==this.connectImage||this.isConnecting()?mxCellMarker.prototype.getMarkerColor.apply(a,arguments):null}),a.intersects=mxUtils.bind(this,function(e,n){return!(null==this.connectImage&&!this.isConnecting())||mxCellMarker.prototype.intersects.apply(a,arguments)}),a},mxConnectionHandler.prototype.start=function(e,n,t,a){this.previous=e,this.first=new mxPoint(n,t),this.edgeState=null!=a?a:this.createEdgeState(null),this.marker.currentColor=this.marker.validColor,this.marker.markedState=e,this.marker.mark(),this.fireEvent(new mxEventObject(mxEvent.START,"state",this.previous))},mxConnectionHandler.prototype.isConnecting=function(){return null!=this.first&&null!=this.shape},mxConnectionHandler.prototype.isValidSource=function(e){return this.graph.isValidSource(e)},mxConnectionHandler.prototype.isValidTarget=function(e){return!0},mxConnectionHandler.prototype.validateConnection=function(e,n){return this.isValidTarget(n)?this.graph.getEdgeValidationError(null,e,n):""},mxConnectionHandler.prototype.getConnectImage=function(e){return this.connectImage},mxConnectionHandler.prototype.isMoveIconToFrontForState=function(e){return null!=e.text&&e.text.node.parentNode==this.graph.container||this.moveIconFront},mxConnectionHandler.prototype.createIcons=function(e){if(null==(i=this.getConnectImage(e))||null==e)return null;this.iconState=e;var n=[],t=new mxImageShape(new mxRectangle(0,0,i.width,i.height),i.src,null,null,0);t.preserveImageAspect=!1,this.isMoveIconToFrontForState(e)?(t.dialect=mxConstants.DIALECT_STRICTHTML,t.init(this.graph.container)):(t.dialect=this.graph.dialect==mxConstants.DIALECT_SVG?mxConstants.DIALECT_SVG:mxConstants.DIALECT_VML,t.init(this.graph.getView().getOverlayPane()),this.moveIconBack&&null!=t.node.previousSibling&&t.node.parentNode.insertBefore(t.node,t.node.parentNode.firstChild)),t.node.style.cursor=mxConstants.CURSOR_CONNECT;var a=mxUtils.bind(this,function(){return null!=this.currentState?this.currentState:e}),i=mxUtils.bind(this,function(e){mxEvent.isConsumed(e)||(this.icon=t,this.graph.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e,a())))});return mxEvent.redirectMouseEvents(t.node,this.graph,a,i),n.push(t),this.redrawIcons(n,this.iconState),n},mxConnectionHandler.prototype.redrawIcons=function(e,n){if(null!=e&&null!=e[0]&&null!=n){var t=this.getIconPosition(e[0],n);e[0].bounds.x=t.x,e[0].bounds.y=t.y,e[0].redraw()}},mxConnectionHandler.prototype.getIconPosition=function(e,n){var t=this.graph.getView().scale,a=n.getCenterX(),i=n.getCenterY();if(this.graph.isSwimlane(n.cell)){a=0!=(s=this.graph.getStartSize(n.cell)).width?n.x+s.width*t/2:a,i=0!=s.height?n.y+s.height*t/2:i;if(0!=(s=mxUtils.toRadians(mxUtils.getValue(n.style,mxConstants.STYLE_ROTATION)||0))){t=Math.cos(s);var s=Math.sin(s),o=new mxPoint(n.getCenterX(),n.getCenterY());a=(i=mxUtils.getRotatedPoint(new mxPoint(a,i),t,s,o)).x,i=i.y}}return new mxPoint(a-e.bounds.width/2,i-e.bounds.height/2)},mxConnectionHandler.prototype.destroyIcons=function(e){if(null!=e){this.iconState=null;for(var n=0;n<e.length;n++)e[n].destroy()}},mxConnectionHandler.prototype.isStartEvent=function(e){return!this.graph.isForceMarqueeEvent(e.getEvent())&&(null!=this.constraintHandler.currentFocus&&null!=this.constraintHandler.currentConstraint||null!=this.previous&&null==this.error&&(null==this.icons||null!=this.icons&&null!=this.icon))},mxConnectionHandler.prototype.mouseDown=function(e,n){if(this.mouseDownCounter++,this.isEnabled()&&this.graph.isEnabled()&&!n.isConsumed()&&!this.isConnecting()&&this.isStartEvent(n)){if(null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&null!=this.constraintHandler.currentPoint?(this.sourceConstraint=this.constraintHandler.currentConstraint,this.previous=this.constraintHandler.currentFocus,this.first=this.constraintHandler.currentPoint.clone()):this.first=new mxPoint(n.getGraphX(),n.getGraphY()),this.edgeState=this.createEdgeState(n),this.mouseDownCounter=1,this.waypointsEnabled&&null==this.shape&&(this.waypoints=null,this.shape=this.createShape()),null==this.previous&&null!=this.edgeState){var t=this.graph.getPointForEvent(n.getEvent());this.edgeState.cell.geometry.setTerminalPoint(t,!0)}this.fireEvent(new mxEventObject(mxEvent.START,"state",this.previous)),n.consume()}else if(mxClient.IS_TOUCH&&this.tapAndHoldEnabled&&!this.tapAndHoldInProgress&&this.isEnabled()&&this.graph.isEnabled()&&!this.isConnecting()){this.tapAndHoldInProgress=!0,this.initialTouchX=n.getX(),this.initialTouchY=n.getY();var a=this.graph.view.getState(this.marker.getCell(n));this.tapAndHoldThread&&window.clearTimeout(this.tapAndHoldThread),this.tapAndHoldThread=window.setTimeout(mxUtils.bind(this,function(){this.tapAndHoldValid&&this.tapAndHold(n,a),this.tapAndHoldValid=this.tapAndHoldInProgress=!1}),this.tapAndHoldDelay),this.tapAndHoldValid=!0}this.selectedIcon=this.icon,this.icon=null},mxConnectionHandler.prototype.tapAndHold=function(e,n){null!=n&&(this.marker.currentColor=this.marker.validColor,this.marker.markedState=n,this.marker.mark(),this.first=new mxPoint(e.getGraphX(),e.getGraphY()),this.edgeState=this.createEdgeState(e),this.previous=n,this.fireEvent(new mxEventObject(mxEvent.START,"state",this.previous)))},mxConnectionHandler.prototype.isImmediateConnectSource=function(e){return!this.graph.isCellMovable(e.cell)},mxConnectionHandler.prototype.createEdgeState=function(e){return null},mxConnectionHandler.prototype.updateCurrentState=function(e){var n=this.marker.process(e);this.constraintHandler.update(e,null==this.first),this.currentState=n},mxConnectionHandler.prototype.convertWaypoint=function(e){var n=this.graph.getView().getScale(),t=this.graph.getView().getTranslate();e.x=e.x/n-t.x,e.y=e.y/n-t.y},mxConnectionHandler.prototype.mouseMove=function(e,n){if(this.tapAndHoldValid&&(this.tapAndHoldValid=Math.abs(this.initialTouchX-n.getX())<this.tapAndHoldTolerance&&Math.abs(this.initialTouchY-n.getY())<this.tapAndHoldTolerance),n.isConsumed()||!this.ignoreMouseDown&&null==this.first&&this.graph.isMouseDown)this.constraintHandler.reset();else{if(!this.isEnabled()&&null!=this.currentState&&(this.destroyIcons(this.icons),this.currentState=null),(null!=this.first||this.isEnabled()&&this.graph.isEnabled())&&this.updateCurrentState(n),null!=this.first){var t=this.graph.getView().scale,a=null,i=t=new mxPoint(this.graph.snap(n.getGraphX()/t)*t,this.graph.snap(n.getGraphY()/t)*t);null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&null!=this.constraintHandler.currentPoint&&(a=this.constraintHandler.currentConstraint,i=this.constraintHandler.currentPoint.clone());var s=this.first;if(null!=this.selectedIcon){var o=this.selectedIcon.bounds.width,r=this.selectedIcon.bounds.height;null!=this.currentState&&this.targetConnectImage?(o=this.getIconPosition(this.selectedIcon,this.currentState),this.selectedIcon.bounds.x=o.x,this.selectedIcon.bounds.y=o.y):(o=new mxRectangle(n.getGraphX()+this.connectIconOffset.x,n.getGraphY()+this.connectIconOffset.y,o,r),this.selectedIcon.bounds=o),this.selectedIcon.redraw()}if(null!=this.edgeState){if(this.edgeState.absolutePoints=[null,null!=this.currentState?null:i],this.graph.view.updateFixedTerminalPoint(this.edgeState,this.previous,!0,this.sourceConstraint),null!=this.currentState&&(null==a&&(a=this.graph.getConnectionConstraint(this.edgeState,this.previous,!1)),this.edgeState.setAbsoluteTerminalPoint(null,!1),this.graph.view.updateFixedTerminalPoint(this.edgeState,this.currentState,!1,a)),(s=null)!=this.waypoints)for(s=[],i=0;i<this.waypoints.length;i++)a=this.waypoints[i].clone(),this.convertWaypoint(a),s[i]=a;this.graph.view.updatePoints(this.edgeState,s,this.previous,this.currentState),this.graph.view.updateFloatingTerminalPoints(this.edgeState,this.previous,this.currentState),i=this.edgeState.absolutePoints[this.edgeState.absolutePoints.length-1],s=this.edgeState.absolutePoints[0]}else null!=this.currentState&&null==this.constraintHandler.currentConstraint&&(null!=(o=this.getTargetPerimeterPoint(this.currentState,n))&&(i=o)),null==this.sourceConstraint&&null!=this.previous&&(null!=(o=this.getSourcePerimeterPoint(this.previous,null!=this.waypoints&&0<this.waypoints.length?this.waypoints[0]:i,n))&&(s=o));if(null==this.currentState&&this.movePreviewAway){if(o=s,null!=this.edgeState&&2<this.edgeState.absolutePoints.length&&(null!=(a=this.edgeState.absolutePoints[this.edgeState.absolutePoints.length-2])&&(o=a)),a=i.x-o.x,o=i.y-o.y,0==(r=Math.sqrt(a*a+o*o)))return;i.x-=4*a/r,i.y-=4*o/r}null==this.shape&&(a=Math.abs(t.x-this.first.x),o=Math.abs(t.y-this.first.y),a>this.graph.tolerance||o>this.graph.tolerance)&&(this.shape=this.createShape(),this.updateCurrentState(n)),null!=this.shape&&(null!=this.edgeState?this.shape.points=this.edgeState.absolutePoints:(t=[s],null!=this.waypoints&&(t=t.concat(this.waypoints)),t.push(i),this.shape.points=t),this.drawPreview()),mxEvent.consume(n.getEvent()),n.consume()}else this.isEnabled()&&this.graph.isEnabled()?this.previous!=this.currentState&&null==this.edgeState?(this.destroyIcons(this.icons),(this.icons=null)!=this.currentState&&null==this.error&&(this.icons=this.createIcons(this.currentState),null==this.icons&&(this.currentState.setCursor(mxConstants.CURSOR_CONNECT),n.consume())),this.previous=this.currentState):this.previous==this.currentState&&null!=this.currentState&&null==this.icons&&!this.graph.isMouseDown&&n.consume():this.constraintHandler.reset();if(null!=this.constraintHandler.currentConstraint&&this.marker.reset(),!this.graph.isMouseDown&&null!=this.currentState&&null!=this.icons){for(t=!1,s=n.getSource(),i=0;i<this.icons.length&&!t;i++)t=s==this.icons[i].node||s.parentNode==this.icons[i].node;t||this.updateIcons(this.currentState,this.icons,n)}}},mxConnectionHandler.prototype.getTargetPerimeterPoint=function(e,n){var t=null,a=(i=e.view).getPerimeterFunction(e);if(null!=a){var i,s=null!=this.waypoints&&0<this.waypoints.length?this.waypoints[this.waypoints.length-1]:new mxPoint(this.previous.getCenterX(),this.previous.getCenterY());null!=(i=a(i.getPerimeterBounds(e),this.edgeState,s,!1))&&(t=i)}else t=new mxPoint(e.getCenterX(),e.getCenterY());return t},mxConnectionHandler.prototype.getSourcePerimeterPoint=function(e,n,t){t=null;var a=e.view,i=a.getPerimeterFunction(e),s=new mxPoint(e.getCenterX(),e.getCenterY());if(null!=i){var o=mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION,0),r=-o*(Math.PI/180);0!=o&&(n=mxUtils.getRotatedPoint(new mxPoint(n.x,n.y),Math.cos(r),Math.sin(r),s)),null!=(e=i(a.getPerimeterBounds(e),e,n,!1))&&(0!=o&&(e=mxUtils.getRotatedPoint(new mxPoint(e.x,e.y),Math.cos(-r),Math.sin(-r),s)),t=e)}else t=s;return t},mxConnectionHandler.prototype.updateIcons=function(e,n,t){},mxConnectionHandler.prototype.isStopEvent=function(e){return null!=e.getState()},mxConnectionHandler.prototype.addWaypointForEvent=function(e){var n=mxUtils.convertPoint(this.graph.container,e.getX(),e.getY()),t=Math.abs(n.x-this.first.x);n=Math.abs(n.y-this.first.y);(null!=this.waypoints||1<this.mouseDownCounter&&(t>this.graph.tolerance||n>this.graph.tolerance))&&(null==this.waypoints&&(this.waypoints=[]),t=this.graph.view.scale,n=new mxPoint(this.graph.snap(e.getGraphX()/t)*t,this.graph.snap(e.getGraphY()/t)*t),this.waypoints.push(n))},mxConnectionHandler.prototype.mouseUp=function(e,n){if(!n.isConsumed()&&this.isConnecting()){if(this.waypointsEnabled&&!this.isStopEvent(n))return this.addWaypointForEvent(n),void n.consume();if(null==this.error){var t=null!=this.previous?this.previous.cell:null,a=null;null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&(a=this.constraintHandler.currentFocus.cell),null==a&&this.marker.hasValidState()&&(a=this.marker.validState.cell),this.connect(t,a,n.getEvent(),n.getCell())}else null!=this.previous&&null!=this.marker.validState&&this.previous.cell==this.marker.validState.cell&&this.graph.selectCellForEvent(this.marker.source,evt),0<this.error.length&&this.graph.validationAlert(this.error);this.destroyIcons(this.icons),n.consume()}null!=this.first&&this.reset(),this.tapAndHoldValid=this.tapAndHoldInProgress=!1},mxConnectionHandler.prototype.reset=function(){null!=this.shape&&(this.shape.destroy(),this.shape=null),this.destroyIcons(this.icons),this.icons=null,this.marker.reset(),this.constraintHandler.reset(),this.sourceConstraint=this.error=this.previous=this.edgeState=this.selectedIcon=null,this.mouseDownCounter=0,this.icon=this.first=null,this.fireEvent(new mxEventObject(mxEvent.RESET))},mxConnectionHandler.prototype.drawPreview=function(){var e=null==this.error;this.shape.strokewidth=this.getEdgeWidth(e),e=this.getEdgeColor(e),this.shape.stroke=e,this.shape.redraw()},mxConnectionHandler.prototype.getEdgeColor=function(e){return e?mxConstants.VALID_COLOR:mxConstants.INVALID_COLOR},mxConnectionHandler.prototype.getEdgeWidth=function(e){return e?3:1},mxConnectionHandler.prototype.connect=function(e,n,t,a){if(null!=n||this.isCreateTarget()||this.graph.allowDanglingEdges){var i=this.graph.getModel(),s=null;i.beginUpdate();try{if(null!=e&&null==n&&this.isCreateTarget()&&null!=(n=this.createTargetVertex(t,e))){if(null!=(a=this.graph.getDropTarget([n],t,a))&&this.graph.getModel().isEdge(a))a=this.graph.getDefaultParent();else{var o=this.graph.getView().getState(a);if(null!=o){var r=i.getGeometry(n);r.x-=o.origin.x,r.y-=o.origin.y}}this.graph.addCell(n,a)}var l=this.graph.getDefaultParent();if(null!=e&&null!=n&&i.getParent(e)==i.getParent(n)&&i.getParent(i.getParent(e))!=i.getRoot()&&(l=i.getParent(e),null!=e.geometry&&e.geometry.relative&&null!=n.geometry&&n.geometry.relative&&(l=i.getParent(l))),r=o=null,null!=this.edgeState&&(o=this.edgeState.cell.value,r=this.edgeState.cell.style),null!=(s=this.insertEdge(l,null,o,e,n,r))){this.graph.setConnectionConstraint(s,e,!0,this.sourceConstraint),this.graph.setConnectionConstraint(s,n,!1,this.constraintHandler.currentConstraint),null!=this.edgeState&&i.setGeometry(s,this.edgeState.cell.geometry);var d=i.getGeometry(s);if(null==d&&((d=new mxGeometry).relative=!0,i.setGeometry(s,d)),null!=this.waypoints&&0<this.waypoints.length){var c=this.graph.view.scale,m=this.graph.view.translate;for(d.points=[],e=0;e<this.waypoints.length;e++){var u=this.waypoints[e];d.points.push(new mxPoint(u.x/c-m.x,u.y/c-m.y))}}null==n&&((u=this.graph.getPointForEvent(t,!1)).x-=this.graph.panDx/this.graph.view.scale,u.y-=this.graph.panDy/this.graph.view.scale,d.setTerminalPoint(u,!1)),this.fireEvent(new mxEventObject(mxEvent.CONNECT,"cell",s,"event",t,"target",a))}}catch(e){mxLog.show(),mxLog.debug(e.message)}finally{i.endUpdate()}this.select&&this.selectCells(s,n)}},mxConnectionHandler.prototype.selectCells=function(e,n){this.graph.setSelectionCell(e)},mxConnectionHandler.prototype.insertEdge=function(e,n,t,a,i,s){return null==this.factoryMethod?this.graph.insertEdge(e,n,t,a,i,s):(n=this.createEdge(t,a,i,s),this.graph.addEdge(n,e,a,i))},mxConnectionHandler.prototype.createTargetVertex=function(e,n){for(var t=this.graph.getCellGeometry(n);null!=t&&t.relative;)n=this.graph.getModel().getParent(n),t=this.graph.getCellGeometry(n);var a=this.graph.cloneCells([n])[0];if(null!=(t=this.graph.getModel().getGeometry(a))){var i=this.graph.getPointForEvent(e);if(t.x=this.graph.snap(i.x-t.width/2)-this.graph.panDx/this.graph.view.scale,t.y=this.graph.snap(i.y-t.height/2)-this.graph.panDy/this.graph.view.scale,null!=this.first){var s=this.graph.view.getState(n);if(null!=s){var o=this.getAlignmentTolerance();Math.abs(this.graph.snap(this.first.x)-this.graph.snap(i.x))<=o?t.x=s.x:Math.abs(this.graph.snap(this.first.y)-this.graph.snap(i.y))<=o&&(t.y=s.y)}}}return a},mxConnectionHandler.prototype.getAlignmentTolerance=function(){return this.graph.isGridEnabled()?this.graph.gridSize:this.graph.tolerance},mxConnectionHandler.prototype.createEdge=function(e,n,t,a){var i=null;return null!=this.factoryMethod&&(i=this.factoryMethod(n,t,a)),null==i&&((i=new mxCell(e||"")).setEdge(!0),i.setStyle(a),(e=new mxGeometry).relative=!0,i.setGeometry(e)),i},mxConnectionHandler.prototype.destroy=function(){this.graph.removeMouseListener(this),null!=this.shape&&(this.shape.destroy(),this.shape=null),null!=this.marker&&(this.marker.destroy(),this.marker=null),null!=this.constraintHandler&&(this.constraintHandler.destroy(),this.constraintHandler=null),null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.graph.getView().removeListener(this.changeHandler),this.changeHandler=null),null!=this.drillHandler&&(this.graph.removeListener(this.drillHandler),this.graph.getView().removeListener(this.drillHandler),this.drillHandler=null)},mxConstraintHandler.prototype.pointImage=new mxImage(mxClient.imageBasePath+"/point.gif",5,5),mxConstraintHandler.prototype.graph=null,mxConstraintHandler.prototype.enabled=!0,mxConstraintHandler.prototype.highlightColor=mxConstants.DEFAULT_VALID_COLOR,mxConstraintHandler.prototype.isEnabled=function(){return this.enabled},mxConstraintHandler.prototype.setEnabled=function(e){this.enabled=e},mxConstraintHandler.prototype.reset=function(){if(null!=this.focusIcons){for(var e=0;e<this.focusIcons.length;e++)this.focusIcons[e].destroy();this.focusIcons=null}null!=this.focusHighlight&&(this.focusHighlight.destroy(),this.focusHighlight=null),this.focusPoints=this.currentFocus=this.currentPoint=this.currentFocusArea=this.currentConstraint=null},mxConstraintHandler.prototype.getTolerance=function(){return this.graph.getTolerance()},mxConstraintHandler.prototype.getImageForConstraint=function(e,n,t){return this.pointImage},mxConstraintHandler.prototype.isEventIgnored=function(e,n){return!1},mxConstraintHandler.prototype.update=function(e,n){if(this.isEnabled()&&!this.isEventIgnored(e)){var t=this.getTolerance(),a=new mxRectangle(e.getGraphX()-t,e.getGraphY()-t,2*t,2*t),i=null!=e.getCell()&&this.graph.isCellConnectable(e.getCell());if((null==this.currentFocusArea||!mxUtils.intersects(this.currentFocusArea,a)||null!=e.getState()&&null!=this.currentFocus&&i)&&(this.currentFocusArea=null,e.getState()!=this.currentFocus))if(this.currentFocus=null,this.constraints=null!=e.getState()&&i?this.graph.getAllConnectionConstraints(e.getState(),n):null,null!=this.constraints){if(this.currentFocus=e.getState(),this.currentFocusArea=new mxRectangle(e.getState().x,e.getState().y,e.getState().width,e.getState().height),null!=this.focusIcons){for(i=0;i<this.focusIcons.length;i++)this.focusIcons[i].destroy();this.focusPoints=this.focusIcons=null}for(this.focusIcons=[],this.focusPoints=[],i=0;i<this.constraints.length;i++){var s,o=this.graph.getConnectionPoint(e.getState(),this.constraints[i]),r=(s=this.getImageForConstraint(e.getState(),this.constraints[i],o)).src;(s=new mxImageShape(s=new mxRectangle(o.x-s.width/2,o.y-s.height/2,s.width,s.height),r)).dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_MIXEDHTML:mxConstants.DIALECT_SVG,s.preserveImageAspect=!1,s.init(this.graph.getView().getOverlayPane()),null!=s.node.previousSibling&&s.node.parentNode.insertBefore(s.node,s.node.parentNode.firstChild),r=mxUtils.bind(this,function(){return null!=this.currentFocus?this.currentFocus:e.getState()}),s.redraw(),mxEvent.redirectMouseEvents(s.node,this.graph,r),this.currentFocusArea.add(s.bounds),this.focusIcons.push(s),this.focusPoints.push(o)}this.currentFocusArea.grow(t)}else if(null!=this.focusIcons){for(null!=this.focusHighlight&&(this.focusHighlight.destroy(),this.focusHighlight=null),i=0;i<this.focusIcons.length;i++)this.focusIcons[i].destroy();this.focusPoints=this.focusIcons=null}if(this.currentPoint=this.currentConstraint=null,null!=this.focusIcons&&null!=this.constraints&&(null==e.getState()||this.currentFocus==e.getState()))for(i=0;i<this.focusIcons.length;i++)if(mxUtils.intersects(this.focusIcons[i].bounds,a)){this.currentConstraint=this.constraints[i],this.currentPoint=this.focusPoints[i],(t=this.focusIcons[i].bounds.clone()).grow(mxClient.IS_IE?3:2),mxClient.IS_IE&&(t.width-=1,t.height-=1),null==this.focusHighlight?((t=new mxRectangleShape(t,null,this.highlightColor,3)).dialect=this.graph.dialect==mxConstants.DIALECT_SVG?mxConstants.DIALECT_SVG:mxConstants.DIALECT_VML,t.init(this.graph.getView().getOverlayPane()),this.focusHighlight=t,r=mxUtils.bind(this,function(){return null!=this.currentFocus?this.currentFocus:e.getState()}),mxEvent.redirectMouseEvents(t.node,this.graph,r)):(this.focusHighlight.bounds=t,this.focusHighlight.redraw());break}null==this.currentConstraint&&null!=this.focusHighlight&&(this.focusHighlight.destroy(),this.focusHighlight=null)}},mxConstraintHandler.prototype.destroy=function(){this.reset()},mxRubberband.prototype.defaultOpacity=20,mxRubberband.prototype.enabled=!0,mxRubberband.prototype.div=null,mxRubberband.prototype.sharedDiv=null,mxRubberband.prototype.currentX=0,mxRubberband.prototype.currentY=0,mxRubberband.prototype.isEnabled=function(){return this.enabled},mxRubberband.prototype.setEnabled=function(e){this.enabled=e},mxRubberband.prototype.mouseDown=function(e,n){if(!n.isConsumed()&&this.isEnabled()&&this.graph.isEnabled()&&(this.graph.isForceMarqueeEvent(n.getEvent())||null==n.getState())){var t=mxUtils.getOffset(this.graph.container),a=mxUtils.getScrollOrigin(this.graph.container);if(a.x-=t.x,a.y-=t.y,this.start(n.getX()+a.x,n.getY()+a.y),mxClient.IS_NS&&!mxClient.IS_SF&&!mxClient.IS_GC){var i=this.graph.container,s=function(e){e=new mxMouseEvent(e);var n=mxUtils.convertPoint(i,e.getX(),e.getY());return e.graphX=n.x,e.graphY=n.y,e};this.dragHandler=mxUtils.bind(this,function(e){this.mouseMove(this.graph,s(e))}),this.dropHandler=mxUtils.bind(this,function(e){this.mouseUp(this.graph,s(e))}),mxEvent.addListener(document,"mousemove",this.dragHandler),mxEvent.addListener(document,"mouseup",this.dropHandler)}n.consume(!1)}},mxRubberband.prototype.start=function(e,n){this.first=new mxPoint(e,n)},mxRubberband.prototype.mouseMove=function(e,n){if(!n.isConsumed()&&null!=this.first){var t=mxUtils.getScrollOrigin(this.graph.container),a=mxUtils.getOffset(this.graph.container);t.x-=a.x,t.y-=a.y;a=n.getX()+t.x,t=n.getY()+t.y;var i=this.first.x-a,s=this.first.y-t,o=this.graph.tolerance;(null!=this.div||Math.abs(i)>o||Math.abs(s)>o)&&(null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),this.update(a,t),n.consume())}},mxRubberband.prototype.createShape=function(){return null==this.sharedDiv&&(this.sharedDiv=document.createElement("div"),this.sharedDiv.className="mxRubberband",mxUtils.setOpacity(this.sharedDiv,this.defaultOpacity)),this.graph.container.appendChild(this.sharedDiv),this.sharedDiv},mxRubberband.prototype.mouseUp=function(e,n){var t=null!=this.div;this.reset(),t&&(t=new mxRectangle(this.x,this.y,this.width,this.height),this.graph.selectRegion(t,n.getEvent()),n.consume())},mxRubberband.prototype.reset=function(){null!=this.div&&this.div.parentNode.removeChild(this.div),null!=this.dragHandler&&(mxEvent.removeListener(document,"mousemove",this.dragHandler),this.dragHandler=null),null!=this.dropHandler&&(mxEvent.removeListener(document,"mouseup",this.dropHandler),this.dropHandler=null),this.currentY=this.currentX=0,this.div=this.first=null},mxRubberband.prototype.update=function(e,n){this.currentX=e,this.currentY=n,this.repaint()},mxRubberband.prototype.repaint=function(){if(null!=this.div){var e=this.currentX-this.graph.panDx,n=this.currentY-this.graph.panDy;this.x=Math.min(this.first.x,e),this.y=Math.min(this.first.y,n),this.width=Math.max(this.first.x,e)-this.x,this.height=Math.max(this.first.y,n)-this.y,e=mxClient.IS_VML?this.graph.panDy:0,this.div.style.left=this.x+(mxClient.IS_VML?this.graph.panDx:0)+"px",this.div.style.top=this.y+e+"px",this.div.style.width=Math.max(1,this.width)+"px",this.div.style.height=Math.max(1,this.height)+"px"}},mxRubberband.prototype.destroy=function(){this.destroyed||(this.destroyed=!0,this.graph.removeMouseListener(this),this.graph.removeListener(this.panHandler),this.reset(),null!=this.sharedDiv&&(this.sharedDiv=null))},mxVertexHandler.prototype.graph=null,mxVertexHandler.prototype.state=null,mxVertexHandler.prototype.singleSizer=!1,mxVertexHandler.prototype.index=null,mxVertexHandler.prototype.allowHandleBoundsCheck=!0,mxVertexHandler.prototype.handleImage=null,mxVertexHandler.prototype.tolerance=0,mxVertexHandler.prototype.rotationEnabled=!1,mxVertexHandler.prototype.rotationRaster=!0,mxVertexHandler.prototype.init=function(){if(this.graph=this.state.view.graph,this.selectionBounds=this.getSelectionBounds(this.state),this.bounds=new mxRectangle(this.selectionBounds.x,this.selectionBounds.y,this.selectionBounds.width,this.selectionBounds.height),this.selectionBorder=this.createSelectionShape(this.bounds),this.selectionBorder.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.selectionBorder.pointerEvents=!1,this.selectionBorder.init(this.graph.getView().getOverlayPane()),this.graph.isCellMovable(this.state.cell)&&(this.selectionBorder.node.style.cursor=mxConstants.CURSOR_MOVABLE_VERTEX),mxEvent.redirectMouseEvents(this.selectionBorder.node,this.graph,this.state),mxGraphHandler.prototype.maxCells<=0||this.graph.getSelectionCount()<mxGraphHandler.prototype.maxCells){var e=this.graph.isCellResizable(this.state.cell);if(this.sizers=[],e||this.graph.isLabelMovable(this.state.cell)&&2<=this.state.width&&2<=this.state.height){var n=0;e&&(this.singleSizer||(this.sizers.push(this.createSizer("nw-resize",n++)),this.sizers.push(this.createSizer("n-resize",n++)),this.sizers.push(this.createSizer("ne-resize",n++)),this.sizers.push(this.createSizer("w-resize",n++)),this.sizers.push(this.createSizer("e-resize",n++)),this.sizers.push(this.createSizer("sw-resize",n++)),this.sizers.push(this.createSizer("s-resize",n++))),this.sizers.push(this.createSizer("se-resize",n++))),null!=(e=this.graph.model.getGeometry(this.state.cell))&&!e.relative&&!this.graph.isSwimlane(this.state.cell)&&this.graph.isLabelMovable(this.state.cell)&&(this.labelShape=this.createSizer(mxConstants.CURSOR_LABEL_HANDLE,mxEvent.LABEL_HANDLE,mxConstants.LABEL_HANDLE_SIZE,mxConstants.LABEL_HANDLE_FILLCOLOR),this.sizers.push(this.labelShape))}else this.graph.isCellMovable(this.state.cell)&&!this.graph.isCellResizable(this.state.cell)&&this.state.width<2&&this.state.height<2&&(this.labelShape=this.createSizer(mxConstants.CURSOR_MOVABLE_VERTEX,null,null,mxConstants.LABEL_HANDLE_FILLCOLOR),this.sizers.push(this.labelShape))}this.rotationEnabled&&(mxGraphHandler.prototype.maxCells<=0||this.graph.getSelectionCount()<mxGraphHandler.prototype.maxCells)&&(this.rotationShape=this.createSizer("pointer",mxEvent.ROTATION_HANDLE,mxConstants.HANDLE_SIZE+3,mxConstants.HANDLE_FILLCOLOR),this.sizers.push(this.rotationShape)),this.redraw()},mxVertexHandler.prototype.getSelectionBounds=function(e){return new mxRectangle(Math.round(e.x),Math.round(e.y),Math.round(e.width),Math.round(e.height))},mxVertexHandler.prototype.createSelectionShape=function(e){return(e=new mxRectangleShape(e,null,this.getSelectionColor())).strokewidth=this.getSelectionStrokeWidth(),e.isDashed=this.isSelectionDashed(),e},mxVertexHandler.prototype.getSelectionColor=function(){return mxConstants.VERTEX_SELECTION_COLOR},mxVertexHandler.prototype.getSelectionStrokeWidth=function(){return mxConstants.VERTEX_SELECTION_STROKEWIDTH},mxVertexHandler.prototype.isSelectionDashed=function(){return mxConstants.VERTEX_SELECTION_DASHED},mxVertexHandler.prototype.createSizer=function(e,n,t,a){return t=new mxRectangle(0,0,t=t||mxConstants.HANDLE_SIZE,t),(a=this.createSizerShape(t,n,a)).isHtmlAllowed()&&null!=this.state.text&&this.state.text.node.parentNode==this.graph.container?(a.bounds.height-=1,a.bounds.width-=1,a.dialect=mxConstants.DIALECT_STRICTHTML,a.init(this.graph.container)):(a.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_MIXEDHTML:mxConstants.DIALECT_SVG,a.init(this.graph.getView().getOverlayPane())),mxEvent.redirectMouseEvents(a.node,this.graph,this.state),this.graph.isEnabled()&&(a.node.style.cursor=e),this.isSizerVisible(n)||(a.node.style.visibility="hidden"),a},mxVertexHandler.prototype.isSizerVisible=function(e){return!0},mxVertexHandler.prototype.createSizerShape=function(e,n,t){return null!=this.handleImage?(e.width=this.handleImage.width,e.height=this.handleImage.height,new mxImageShape(e,this.handleImage.src)):n==mxEvent.ROTATION_HANDLE?new mxEllipse(e,t||mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR):new mxRectangleShape(e,t||mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)},mxVertexHandler.prototype.moveSizerTo=function(e,n,t){null!=e&&(e.bounds.x=Math.round(n-e.bounds.width/2),e.bounds.y=Math.round(t-e.bounds.height/2),e.redraw())},mxVertexHandler.prototype.getHandleForEvent=function(e){if(e.isSource(this.rotationShape))return mxEvent.ROTATION_HANDLE;if(e.isSource(this.labelShape))return mxEvent.LABEL_HANDLE;if(null!=this.sizers)for(var n=this.tolerance,t=(n=this.allowHandleBoundsCheck&&(mxClient.IS_IE||0<n)?new mxRectangle(e.getGraphX()-n,e.getGraphY()-n,2*n,2*n):null,0);t<this.sizers.length;t++)if(e.isSource(this.sizers[t])||null!=n&&mxUtils.intersects(this.sizers[t].bounds,n))return t;return null},mxVertexHandler.prototype.mouseDown=function(e,n){if(!n.isConsumed()&&this.graph.isEnabled()&&!this.graph.isForceMarqueeEvent(n.getEvent())&&(0<this.tolerance||n.getState()==this.state)){var t=this.getHandleForEvent(n);null!=t&&(this.start(n.getX(),n.getY(),t),n.consume())}},mxVertexHandler.prototype.start=function(e,n,t){e=mxUtils.convertPoint(this.graph.container,e,n),this.startX=e.x,this.startY=e.y,this.index=t,this.selectionBorder.node.style.display=t==mxEvent.ROTATION_HANDLE?"inline":"none",this.preview=this.createSelectionShape(this.bounds),mxClient.IS_SVG&&0!=Number(this.state.style[mxConstants.STYLE_ROTATION]||"0")||null==this.state.text||this.state.text.node.parentNode!=this.graph.container?(this.preview.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.preview.init(this.graph.view.getOverlayPane())):(this.preview.dialect=mxConstants.DIALECT_STRICTHTML,this.preview.init(this.graph.container))},mxVertexHandler.prototype.mouseMove=function(e,n){if(n.isConsumed()||null==this.index)null!=this.getHandleForEvent(n)&&n.consume(!1);else{var t=new mxPoint(n.getGraphX(),n.getGraphY()),a=this.graph.isGridEnabledEvent(n.getEvent()),i=this.graph.getView().scale;if(this.index==mxEvent.LABEL_HANDLE)a&&(t.x=this.graph.snap(t.x/i)*i,t.y=this.graph.snap(t.y/i)*i),this.moveSizerTo(this.sizers[this.sizers.length-1],t.x,t.y);else if(this.index==mxEvent.ROTATION_HANDLE){var s=this.state.x+this.state.width/2-t.x,o=this.state.y+this.state.height/2-t.y;this.currentAlpha=0!=s?180*Math.atan(o/s)/Math.PI+90:o<0?180:0,0<s&&(this.currentAlpha-=180),this.rotationRaster&&(s=t.x-this.state.getCenterX(),o=t.y-this.state.getCenterY(),s=Math.abs(Math.sqrt(s*s+o*o)-this.state.height/2-20),s=Math.max(1,5*Math.min(3,Math.max(0,Math.round(80/Math.abs(s))))),this.currentAlpha=Math.round(this.currentAlpha/s)*s),this.selectionBorder.rotation=this.currentAlpha,this.selectionBorder.redraw()}else{var r=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"),l=Math.cos(-r),d=Math.sin(-r),c=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),m=(s=t.x-this.startX,o=t.y-this.startY,t=this.graph.view.translate,d*s+l*o);s=l*s-d*o;this.bounds=this.union(this.selectionBounds,s,m,this.index,a,i,t),l=Math.cos(r),c=(d=Math.sin(r))*(s=(o=new mxPoint(this.bounds.getCenterX(),this.bounds.getCenterY())).x-c.x)+l*(o=o.y-c.y)-o,this.bounds.x+=l*s-d*o-s,this.bounds.y+=c,this.drawPreview()}n.consume()}},mxVertexHandler.prototype.mouseUp=function(e,n){if(!n.isConsumed()&&null!=this.index&&null!=this.state){var t=new mxPoint(n.getGraphX(),n.getGraphY());this.graph.getModel().beginUpdate();try{if(this.index==mxEvent.ROTATION_HANDLE)null!=this.currentAlpha&&this.rotateCell(this.state.cell,this.currentAlpha-(this.state.style[mxConstants.STYLE_ROTATION]||0));else{var a=this.graph.isGridEnabledEvent(n.getEvent()),i=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"),s=Math.cos(-i),o=Math.sin(-i),r=(t=o*(r=t.x-this.startX)+s*(l=t.y-this.startY),s*r-o*l),l=t,d=this.graph.view.scale;this.resizeCell(this.state.cell,r/d,l/d,this.index,a)}}finally{this.graph.getModel().endUpdate()}this.reset(),n.consume()}},mxVertexHandler.prototype.rotateCell=function(e,n){var t=this.graph.getModel();if(t.isVertex(e)){if(null!=(s=e==this.state?this.state:this.graph.view.getState(e))&&this.graph.setCellStyles(mxConstants.STYLE_ROTATION,(s.style[mxConstants.STYLE_ROTATION]||0)+n,[e]),this.state.cell!=e&&(null!=(s=this.graph.getCellGeometry(e))&&!s.relative))if(0!=n){var a=this.graph.getModel().getParent(e),i=this.graph.getCellGeometry(a);if(!s.relative&&null!=i){var s,o=mxUtils.toRadians(n),r=(a=Math.cos(o),o=Math.sin(o),new mxPoint(s.getCenterX(),s.getCenterY()));i=new mxPoint(i.width/2,i.height/2),a=mxUtils.getRotatedPoint(r,a,o,i);(s=s.clone()).x=a.x-s.width/2,s.y=a.y-s.height/2,t.setGeometry(e,s)}}else(s=s.clone()).x+=dx,s.y+=dy,t.setGeometry(e,s);for(s=t.getChildCount(e),a=0;a<s;a++)this.rotateCell(t.getChildAt(e,a),n)}},mxVertexHandler.prototype.reset=function(){this.index=this.currentAlpha=null,null!=this.preview&&(this.preview.destroy(),this.preview=null),null!=this.selectionBorder&&(this.selectionBorder.node.style.display="inline",this.selectionBounds=this.getSelectionBounds(this.state),this.bounds=new mxRectangle(this.selectionBounds.x,this.selectionBounds.y,this.selectionBounds.width,this.selectionBounds.height),this.drawPreview())},mxVertexHandler.prototype.resizeCell=function(e,n,t,a,i){var s=this.graph.model.getGeometry(e);if(null!=s)if(a==mxEvent.LABEL_HANDLE)a=this.graph.view.scale,n=(this.labelShape.bounds.getCenterX()-this.startX)/a,t=(this.labelShape.bounds.getCenterY()-this.startY)/a,null==(s=s.clone()).offset?s.offset=new mxPoint(n,t):(s.offset.x+=n,s.offset.y+=t),this.graph.model.setGeometry(e,s);else{if(a=this.union(s,n,t,a,i,1,new mxPoint(0,0)),0!=(r=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"))){n=a.getCenterX()-s.getCenterX(),t=a.getCenterY()-s.getCenterY(),i=Math.cos(r);var o=Math.sin(r),r=i*n-o*t-n;n=o*n+i*t-t,t=a.x-s.x;var l=a.y-s.y,d=i*t-o*l;i=o*t+i*l,a.x+=r,a.y+=n,this.graph.isCellCollapsed(e)||0==r&&0==n||(t=s.x-a.x+d,l=s.y-a.y+i,this.moveChildren(e,t,l))}this.graph.resizeCell(e,a)}},mxVertexHandler.prototype.moveChildren=function(e,n,t){for(var a=this.graph.getModel(),i=a.getChildCount(e),s=0;s<i;s++){var o=a.getChildAt(e,s);if(a.isVertex(o)){var r=this.graph.getCellGeometry(o);null!=r&&!r.relative&&((r=r.clone()).x+=n,r.y+=t,a.setGeometry(o,r))}}},mxVertexHandler.prototype.union=function(e,n,t,a,i,s,o){if(this.singleSizer){o=e.x+e.width+n;var r=e.y+e.height+t;return i&&(o=this.graph.snap(o/s)*s,r=this.graph.snap(r/s)*s),(s=new mxRectangle(e.x,e.y,0,0)).add(new mxRectangle(o,r,0,0)),s}var l=(r=e.x-o.x*s)+e.width,d=e.y-o.y*s;return e=d+e.height,4<a?(e+=t,i&&(e=this.graph.snap(e/s)*s)):a<3&&(d+=t,i&&(d=this.graph.snap(d/s)*s)),0==a||3==a||5==a?(r+=n,i&&(r=this.graph.snap(r/s)*s)):2!=a&&4!=a&&7!=a||(l+=n,i&&(l=this.graph.snap(l/s)*s)),e-=d,(i=l-r)<0&&(r+=i,i=Math.abs(i)),e<0&&(d+=e,e=Math.abs(e)),new mxRectangle(r+o.x*s,d+o.y*s,i,e)},mxVertexHandler.prototype.redraw=function(){this.selectionBounds=this.getSelectionBounds(this.state),this.bounds=new mxRectangle(this.state.x,this.state.y,this.state.width,this.state.height);var e=this.state;if(null!=this.sizers){var n=e.x+e.width,t=e.y+e.height;if(this.singleSizer)this.moveSizerTo(this.sizers[0],n,t);else{var a=e.x+e.width/2,i=e.y+e.height/2;if(1<this.sizers.length){var s=mxUtils.toRadians(e.style[mxConstants.STYLE_ROTATION]||"0"),o=Math.cos(s),r=(s=Math.sin(s),new mxPoint(e.getCenterX(),e.getCenterY())),l=mxUtils.getRotatedPoint(new mxPoint(e.x,e.y),o,s,r);this.moveSizerTo(this.sizers[0],l.x,l.y),l.x=a,l.y=e.y,l=mxUtils.getRotatedPoint(l,o,s,r),this.moveSizerTo(this.sizers[1],l.x,l.y),l.x=n,l.y=e.y,l=mxUtils.getRotatedPoint(l,o,s,r),this.moveSizerTo(this.sizers[2],l.x,l.y),l.x=e.x,l.y=i,l=mxUtils.getRotatedPoint(l,o,s,r),this.moveSizerTo(this.sizers[3],l.x,l.y),l.x=n,l.y=i,l=mxUtils.getRotatedPoint(l,o,s,r),this.moveSizerTo(this.sizers[4],l.x,l.y),l.x=e.x,l.y=t,l=mxUtils.getRotatedPoint(l,o,s,r),this.moveSizerTo(this.sizers[5],l.x,l.y),l.x=a,l.y=t,l=mxUtils.getRotatedPoint(l,o,s,r),this.moveSizerTo(this.sizers[6],l.x,l.y),l.x=n,l.y=t,l=mxUtils.getRotatedPoint(l,o,s,r),this.moveSizerTo(this.sizers[7],l.x,l.y),this.moveSizerTo(this.sizers[8],a+e.absoluteOffset.x,i+e.absoluteOffset.y)}else 2<=this.state.width&&2<=this.state.height?this.moveSizerTo(this.sizers[0],a+e.absoluteOffset.x,i+e.absoluteOffset.y):this.moveSizerTo(this.sizers[0],e.x,e.y)}}null!=this.rotationShape&&(s=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"),o=Math.cos(s),s=Math.sin(s),r=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),l=mxUtils.getRotatedPoint(new mxPoint(e.x+e.width/2,e.y-16),o,s,r),this.moveSizerTo(this.rotationShape,l.x,l.y)),this.selectionBorder.rotation=Number(this.state.style[mxConstants.STYLE_ROTATION]||"0"),this.drawPreview()},mxVertexHandler.prototype.drawPreview=function(){null!=this.preview&&(this.preview.bounds=this.bounds,this.preview.node.parentNode==this.graph.container&&(this.preview.bounds.width=Math.max(0,this.preview.bounds.width-1),this.preview.bounds.height=Math.max(0,this.preview.bounds.height-1)),this.preview.rotation=Number(this.state.style[mxConstants.STYLE_ROTATION]||"0"),this.preview.redraw()),this.selectionBorder.bounds=this.bounds,this.selectionBorder.redraw()},mxVertexHandler.prototype.destroy=function(){if(null!=this.preview&&(this.preview.destroy(),this.preview=null),this.selectionBorder.destroy(),this.labelShape=this.selectionBorder=null,null!=this.sizers)for(var e=0;e<this.sizers.length;e++)this.sizers[e].destroy(),this.sizers[e]=null},mxEdgeHandler.prototype.graph=null,mxEdgeHandler.prototype.state=null,mxEdgeHandler.prototype.marker=null,mxEdgeHandler.prototype.constraintHandler=null,mxEdgeHandler.prototype.error=null,mxEdgeHandler.prototype.shape=null,mxEdgeHandler.prototype.bends=null,mxEdgeHandler.prototype.labelShape=null,mxEdgeHandler.prototype.cloneEnabled=!0,mxEdgeHandler.prototype.addEnabled=!1,mxEdgeHandler.prototype.removeEnabled=!1,mxEdgeHandler.prototype.preferHtml=!1,mxEdgeHandler.prototype.allowHandleBoundsCheck=!0,mxEdgeHandler.prototype.snapToTerminals=!1,mxEdgeHandler.prototype.handleImage=null,mxEdgeHandler.prototype.tolerance=0,mxEdgeHandler.prototype.init=function(){if(this.graph=this.state.view.graph,this.marker=this.createMarker(),this.constraintHandler=new mxConstraintHandler(this.graph),this.points=[],this.abspoints=this.getSelectionPoints(this.state),this.shape=this.createSelectionShape(this.abspoints),this.shape.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_MIXEDHTML:mxConstants.DIALECT_SVG,this.shape.init(this.graph.getView().getOverlayPane()),this.shape.svgStrokeTolerance=0,this.shape.node.style.cursor=mxConstants.CURSOR_MOVABLE_EDGE,mxEvent.addListener(this.shape.node,"dblclick",mxUtils.bind(this,function(e){this.graph.dblClick(e,this.state.cell)})),mxEvent.addGestureListeners(this.shape.node,mxUtils.bind(this,function(e){this.addEnabled&&this.isAddPointEvent(e)?this.addPoint(this.state,e):this.graph.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e,this.state))}),mxUtils.bind(this,function(e){var n=this.state.cell;if(null!=this.index){var t=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e));n=this.graph.getCellAt(t.x,t.y);this.graph.isSwimlane(n)&&this.graph.hitsSwimlaneContent(n,t.x,t.y)&&(n=null)}this.graph.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,this.graph.getView().getState(n)))}),mxUtils.bind(this,function(e){this.graph.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e,this.state))})),this.preferHtml=null!=this.state.text&&this.state.text.node.parentNode==this.graph.container,!this.preferHtml){var e=this.state.getVisibleTerminalState(!0);null!=e&&(this.preferHtml=null!=e.text&&e.text.node.parentNode==this.graph.container),this.preferHtml||null!=(e=this.state.getVisibleTerminalState(!1))&&(this.preferHtml=null!=e.text&&e.text.node.parentNode==this.graph.container)}(this.graph.getSelectionCount()<mxGraphHandler.prototype.maxCells||mxGraphHandler.prototype.maxCells<=0)&&(this.bends=this.createBends()),this.label=new mxPoint(this.state.absoluteOffset.x,this.state.absoluteOffset.y),this.labelShape=new mxRectangleShape(new mxRectangle,mxConstants.LABEL_HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR),this.labelShape.pointerEvents=!1,this.initBend(this.labelShape),this.labelShape.node.style.cursor=mxConstants.CURSOR_LABEL_HANDLE,mxEvent.redirectMouseEvents(this.labelShape.node,this.graph,this.state),this.redraw()},mxEdgeHandler.prototype.isAddPointEvent=function(e){return mxEvent.isShiftDown(e)},mxEdgeHandler.prototype.isRemovePointEvent=function(e){return mxEvent.isShiftDown(e)},mxEdgeHandler.prototype.getSelectionPoints=function(e){return e.absolutePoints},mxEdgeHandler.prototype.createSelectionShape=function(e){return(e=new mxPolyline(e,this.getSelectionColor())).strokewidth=this.getSelectionStrokeWidth(),e.isDashed=this.isSelectionDashed(),e},mxEdgeHandler.prototype.getSelectionColor=function(){return mxConstants.EDGE_SELECTION_COLOR},mxEdgeHandler.prototype.getSelectionStrokeWidth=function(){return mxConstants.EDGE_SELECTION_STROKEWIDTH},mxEdgeHandler.prototype.isSelectionDashed=function(){return mxConstants.EDGE_SELECTION_DASHED},mxEdgeHandler.prototype.isConnectableCell=function(e){return!0},mxEdgeHandler.prototype.createMarker=function(){var e=new mxCellMarker(this.graph),a=this;return e.getCell=function(e){var n=mxCellMarker.prototype.getCell.apply(this,arguments);if(!a.isConnectableCell(n))return null;var t=a.graph.getModel();return(n==a.state.cell||null!=n&&!a.graph.connectableEdges&&t.isEdge(n))&&(n=null),n},e.isValidState=function(e){var n=a.graph.getModel();n=null!=(n=a.graph.view.getTerminalPort(e,a.graph.view.getState(n.getTerminal(a.state.cell,!a.isSource)),!a.isSource))?n.cell:null;return a.error=a.validateConnection(a.isSource?e.cell:n,a.isSource?n:e.cell),null==a.error},e},mxEdgeHandler.prototype.validateConnection=function(e,n){return this.graph.getEdgeValidationError(this.state.cell,e,n)},mxEdgeHandler.prototype.createBends=function(){for(var e=this.state.cell,n=[],t=0;t<this.abspoints.length;t++)if(this.isHandleVisible(t)){var a=t==this.abspoints.length-1;if((a=0==t||a)||this.graph.isCellBendable(e)){var i=this.createHandleShape(t);if(this.initBend(i),mxClient.IS_TOUCH&&i.node.setAttribute("pointer-events","none"),this.isHandleEnabled(t))if(mxClient.IS_TOUCH){var s=mxUtils.bind(this,function(e){return e=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e)),this.graph.view.getState(this.graph.getCellAt(e.x,e.y))});mxEvent.redirectMouseEvents(i.node,this.graph,s)}else i.node.style.cursor=mxConstants.CURSOR_BEND_HANDLE,mxEvent.redirectMouseEvents(i.node,this.graph,this.state);n.push(i),a||(this.points.push(new mxPoint(0,0)),i.node.style.visibility="hidden")}}return n},mxEdgeHandler.prototype.isHandleEnabled=function(e){return!0},mxEdgeHandler.prototype.isHandleVisible=function(e){return!0},mxEdgeHandler.prototype.createHandleShape=function(e){return null!=this.handleImage?new mxImageShape(new mxRectangle(0,0,this.handleImage.width,this.handleImage.height),this.handleImage.src):(e=mxConstants.HANDLE_SIZE,this.preferHtml&&(e-=1),new mxRectangleShape(new mxRectangle(0,0,e,e),mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR))},mxEdgeHandler.prototype.initBend=function(e){this.preferHtml?(e.dialect=mxConstants.DIALECT_STRICTHTML,e.init(this.graph.container)):(e.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_MIXEDHTML:mxConstants.DIALECT_SVG,e.init(this.graph.getView().getOverlayPane()))},mxEdgeHandler.prototype.getHandleForEvent=function(e){if(null!=this.bends)for(var n=this.tolerance,t=(n=this.allowHandleBoundsCheck&&(mxClient.IS_IE||0<n)?new mxRectangle(e.getGraphX()-n,e.getGraphY()-n,2*n,2*n):null,0);t<this.bends.length;t++)if((e.isSource(this.bends[t])||null!=n&&mxUtils.intersects(this.bends[t].bounds,n))&&"hidden"!=this.bends[t].node.style.visibility)return t;return!(e.isSource(this.labelShape)&&"hidden"!=this.labelShape.node.style.visibility||e.isSource(this.state.text))||(mxClient.IS_SF||mxClient.IS_GC)&&"SELECT"==e.getSource().nodeName?null:mxEvent.LABEL_HANDLE},mxEdgeHandler.prototype.mouseDown=function(e,n){var t=null;null!=(t=this.getHandleForEvent(n))&&!n.isConsumed()&&this.graph.isEnabled()&&!this.graph.isForceMarqueeEvent(n.getEvent())&&(this.removeEnabled&&this.isRemovePointEvent(n.getEvent())?this.removePoint(this.state,t):(t!=mxEvent.LABEL_HANDLE||this.graph.isLabelMovable(n.getCell()))&&this.start(n.getX(),n.getY(),t),n.consume())},mxEdgeHandler.prototype.start=function(e,n,t){this.startX=e,this.startY=n,this.isSource=null!=this.bends&&0==t,this.isTarget=null!=this.bends&&t==this.bends.length-1,this.isLabel=t==mxEvent.LABEL_HANDLE,this.isSource||this.isTarget?(e=this.state.cell,(null==(n=this.graph.model.getTerminal(e,this.isSource))&&this.graph.isTerminalPointMovable(e,this.isSource)||null!=n&&this.graph.isCellDisconnectable(e,n,this.isSource))&&(this.index=t)):this.index=t},mxEdgeHandler.prototype.clonePreviewState=function(e,n){return this.state.clone()},mxEdgeHandler.prototype.getSnapToTerminalTolerance=function(){return this.graph.gridSize*this.graph.view.scale/2},mxEdgeHandler.prototype.getPointForEvent=function(e){var t=new mxPoint(e.getGraphX(),e.getGraphY()),a=this.getSnapToTerminalTolerance(),n=this.graph.getView(),i=!1,s=!1;if(this.snapToTerminals&&0<a){var o=function(e){if(null!=e){var n=e.x;Math.abs(t.x-n)<a&&(t.x=n,i=!0),e=e.y,Math.abs(t.y-e)<a&&(t.y=e,s=!0)}},r=function(e){null!=e&&o.call(this,new mxPoint(n.getRoutingCenterX(e),n.getRoutingCenterY(e)))};if(r.call(this,this.state.getVisibleTerminalState(!0)),r.call(this,this.state.getVisibleTerminalState(!1)),null!=this.abspoints)for(r=0;r<this.abspoints;r++)r!=this.index&&o.call(this,this.abspoints[r])}return this.graph.isGridEnabledEvent(e.getEvent())&&(e=n.scale,r=n.translate,i||(t.x=(this.graph.snap(t.x/e-r.x)+r.x)*e),s||(t.y=(this.graph.snap(t.y/e-r.y)+r.y)*e)),t},mxEdgeHandler.prototype.getPreviewTerminalState=function(e){this.constraintHandler.update(e,this.isSource),this.marker.process(e),e=this.marker.getValidState();var n=null;return null!=this.constraintHandler.currentFocus&&null!=this.constraintHandler.currentConstraint&&this.marker.reset(),null!=e?n=e:null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&(n=this.constraintHandler.currentFocus),n},mxEdgeHandler.prototype.getPreviewPoints=function(e){var n=null!=(n=this.graph.getCellGeometry(this.state.cell)).points?n.points.slice():null;return this.isSource||this.isTarget?this.graph.resetEdgesOnConnect&&(n=null):(this.convertPoint(e,!1),null==n?n=[e]:n[this.index-1]=e),n},mxEdgeHandler.prototype.updatePreviewState=function(e,n,t){var a=this.isSource?t:this.state.getVisibleTerminalState(!0),i=this.isTarget?t:this.state.getVisibleTerminalState(!1),s=this.graph.getConnectionConstraint(e,a,!0),o=this.graph.getConnectionConstraint(e,i,!1),r=this.constraintHandler.currentConstraint;null==r&&(r=new mxConnectionConstraint),this.isSource?s=r:this.isTarget&&(o=r),(!this.isSource||null!=a)&&e.view.updateFixedTerminalPoint(e,a,!0,s),(!this.isTarget||null!=i)&&e.view.updateFixedTerminalPoint(e,i,!1,o),(this.isSource||this.isTarget)&&null==t&&(e.setAbsoluteTerminalPoint(n,this.isSource),null==this.marker.getMarkedState()&&(this.error=this.graph.allowDanglingEdges?null:"")),e.view.updatePoints(e,this.points,a,i),e.view.updateFloatingTerminalPoints(e,a,i)},mxEdgeHandler.prototype.mouseMove=function(e,n){if(null!=this.index&&null!=this.marker){var t=this.getPointForEvent(n);if(this.isLabel)this.label.x=t.x,this.label.y=t.y;else{this.points=this.getPreviewPoints(t);var a=this.isSource||this.isTarget?this.getPreviewTerminalState(n):null,i=this.clonePreviewState(t,null!=a?a.cell:null);this.updatePreviewState(i,t,a),this.setPreviewColor(null==this.error?this.marker.validColor:this.marker.invalidColor),this.abspoints=i.absolutePoints,this.active=!0}this.drawPreview(),mxEvent.consume(n.getEvent()),n.consume()}else mxClient.IS_IE&&null!=this.getHandleForEvent(n)&&n.consume(!1)},mxEdgeHandler.prototype.mouseUp=function(e,n){if(null!=this.index&&null!=this.marker){var t=this.state.cell;if(n.getX()!=this.startX||n.getY()!=this.startY)if(null!=this.error)0<this.error.length&&this.graph.validationAlert(this.error);else if(this.isLabel)this.moveLabel(this.state,this.label.x,this.label.y);else if(this.isSource||this.isTarget){var a=null;if(null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&(a=this.constraintHandler.currentFocus.cell),null==a&&this.marker.hasValidState()&&(a=this.marker.validState.cell),null!=a)t=this.connect(t,a,this.isSource,this.graph.isCloneEvent(n.getEvent())&&this.cloneEnabled&&this.graph.isCellsCloneable(),n);else if(this.graph.isAllowDanglingEdges()){(a=this.abspoints[this.isSource?0:this.abspoints.length-1]).x=a.x/this.graph.view.scale-this.graph.view.translate.x,a.y=a.y/this.graph.view.scale-this.graph.view.translate.y;var i=this.graph.getView().getState(this.graph.getModel().getParent(t));null!=i&&(a.x-=i.origin.x,a.y-=i.origin.y),a.x-=this.graph.panDx/this.graph.view.scale,a.y-=this.graph.panDy/this.graph.view.scale,this.changeTerminalPoint(t,a,this.isSource)}}else this.active?this.changePoints(t,this.points):(this.graph.getView().invalidate(this.state.cell),this.graph.getView().revalidate(this.state.cell));null!=this.marker&&(this.reset(),t!=this.state.cell&&this.graph.setSelectionCell(t)),n.consume()}},mxEdgeHandler.prototype.reset=function(){this.points=this.label=this.index=this.error=null,this.isTarget=this.isSource=this.isLabel=this.active=!1,this.marker.reset(),this.constraintHandler.reset(),this.setPreviewColor(mxConstants.EDGE_SELECTION_COLOR),this.redraw()},mxEdgeHandler.prototype.setPreviewColor=function(e){null!=this.shape&&(this.shape.stroke=e)},mxEdgeHandler.prototype.convertPoint=function(e,n){var t=this.graph.getView().getScale(),a=this.graph.getView().getTranslate();return n&&(e.x=this.graph.snap(e.x),e.y=this.graph.snap(e.y)),e.x=Math.round(e.x/t-a.x),e.y=Math.round(e.y/t-a.y),null!=(t=this.graph.getView().getState(this.graph.getModel().getParent(this.state.cell)))&&(e.x-=t.origin.x,e.y-=t.origin.y),e},mxEdgeHandler.prototype.moveLabel=function(e,n,t){var a=this.graph.getModel();if(null!=(i=a.getGeometry(e.cell))){var i=i.clone(),s=this.graph.getView().getRelativePoint(e,n,t);i.x=s.x,i.y=s.y;var o=this.graph.getView().scale;i.offset=new mxPoint(0,0),s=this.graph.view.getPoint(e,i),i.offset=new mxPoint((n-s.x)/o,(t-s.y)/o),a.setGeometry(e.cell,i)}},mxEdgeHandler.prototype.connect=function(e,n,t,a,i){var s=(i=this.graph.getModel()).getParent(e);i.beginUpdate();try{if(a){var o=e.clone();i.add(s,o,i.getChildCount(s));var r=i.getTerminal(e,!t);this.graph.connectCell(o,r,!t),e=o}var l=this.constraintHandler.currentConstraint;null==l&&(l=new mxConnectionConstraint),this.graph.connectCell(e,n,t,l)}finally{i.endUpdate()}return e},mxEdgeHandler.prototype.changeTerminalPoint=function(e,n,t){var a=this.graph.getModel(),i=a.getGeometry(e);if(null!=i){a.beginUpdate();try{(i=i.clone()).setTerminalPoint(n,t),a.setGeometry(e,i),this.graph.connectCell(e,null,t,new mxConnectionConstraint)}finally{a.endUpdate()}}},mxEdgeHandler.prototype.changePoints=function(e,n){var t=this.graph.getModel(),a=t.getGeometry(e);null!=a&&((a=a.clone()).points=n,t.setGeometry(e,a))},mxEdgeHandler.prototype.addPoint=function(e,n){var t=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(n),mxEvent.getClientY(n)),a=this.graph.isGridEnabledEvent(n);this.convertPoint(t,a),this.addPointAt(e,t.x,t.y),mxEvent.consume(n)},mxEdgeHandler.prototype.addPointAt=function(e,n,t){var a=this.graph.getCellGeometry(e.cell);if(n=new mxPoint(n,t),null!=a){a=a.clone(),t=this.graph.view.translate;var i=this.graph.view.scale;t=mxUtils.findNearestSegment(e,(n.x+t.x)*i,(n.y+t.y)*i),null==a.points?a.points=[n]:a.points.splice(t,0,n),this.graph.getModel().setGeometry(e.cell,a),this.destroy(),this.init()}},mxEdgeHandler.prototype.removePoint=function(e,n){if(0<n&&n<this.abspoints.length-1){var t=this.graph.getCellGeometry(this.state.cell);null!=t&&null!=t.points&&((t=t.clone()).points.splice(n-1,1),this.graph.getModel().setGeometry(e.cell,t),this.destroy(),this.init())}},mxEdgeHandler.prototype.getHandleFillColor=function(e){e=0==e;var n=this.state.cell,t=this.graph.getModel().getTerminal(n,e),a=mxConstants.HANDLE_FILLCOLOR;return null!=t&&!this.graph.isCellDisconnectable(n,t,e)||null==t&&!this.graph.isTerminalPointMovable(n,e)?a=mxConstants.LOCKED_HANDLE_FILLCOLOR:null!=t&&this.graph.isCellDisconnectable(n,t,e)&&(a=mxConstants.CONNECT_HANDLE_FILLCOLOR),a},mxEdgeHandler.prototype.redraw=function(){this.abspoints=this.state.absolutePoints.slice();var e=this.state.cell,n=mxConstants.LABEL_HANDLE_SIZE;if(this.label=new mxPoint(this.state.absoluteOffset.x,this.state.absoluteOffset.y),this.labelShape.bounds=new mxRectangle(Math.round(this.label.x-n/2),Math.round(this.label.y-n/2),n,n),this.labelShape.redraw(),null!=(n=this.graph.getLabel(e))&&0<n.length&&this.graph.isLabelMovable(e)?this.labelShape.node.style.visibility="visible":this.labelShape.node.style.visibility="hidden",null!=this.bends&&0<this.bends.length){var t=this.abspoints.length-1,a=(e=this.abspoints[0],this.abspoints[0].y);n=this.bends[0].bounds;this.bends[0].bounds=new mxRectangle(Math.round(this.abspoints[0].x-n.width/2),Math.round(a-n.height/2),n.width,n.height),this.bends[0].fill=this.getHandleFillColor(0),this.bends[0].redraw();a=this.abspoints[t];var i=this.abspoints[t].x,s=(t=this.abspoints[t].y,this.bends.length-1);n=this.bends[s].bounds;this.bends[s].bounds=new mxRectangle(Math.round(i-n.width/2),Math.round(t-n.height/2),n.width,n.height),this.bends[s].fill=this.getHandleFillColor(s),this.bends[s].redraw(),this.redrawInnerBends(e,a)}this.drawPreview()},mxEdgeHandler.prototype.redrawInnerBends=function(e,n){var t=this.graph.getModel().getGeometry(this.state.cell).points;if(null!=t){null==this.points&&(this.points=[]);for(var a=1;a<this.bends.length-1;a++)if(null!=this.bends[a])if(null!=this.abspoints[a]){var i=this.abspoints[a].x,s=this.abspoints[a].y,o=this.bends[a].bounds;this.bends[a].node.style.visibility="visible",this.bends[a].bounds=new mxRectangle(Math.round(i-o.width/2),Math.round(s-o.height/2),o.width,o.height),this.bends[a].redraw(),this.points[a-1]=t[a-1]}else this.bends[a].destroy(),this.bends[a]=null}},mxEdgeHandler.prototype.drawPreview=function(){if(this.isLabel){var e=mxConstants.LABEL_HANDLE_SIZE;e=new mxRectangle(Math.round(this.label.x-e/2),Math.round(this.label.y-e/2),e,e);this.labelShape.bounds=e,this.labelShape.redraw()}else this.shape.points=this.abspoints,this.shape.redraw()},mxEdgeHandler.prototype.destroy=function(){if(null!=this.marker&&(this.marker.destroy(),this.marker=null),null!=this.shape&&(this.shape.destroy(),this.shape=null),null!=this.labelShape&&(this.labelShape.destroy(),this.labelShape=null),null!=this.constraintHandler&&(this.constraintHandler.destroy(),this.constraintHandler=null),null!=this.bends)for(var e=0;e<this.bends.length;e++)null!=this.bends[e]&&(this.bends[e].destroy(),this.bends[e]=null)},mxUtils.extend(mxElbowEdgeHandler,mxEdgeHandler),mxElbowEdgeHandler.prototype=new mxEdgeHandler,mxElbowEdgeHandler.prototype.constructor=mxElbowEdgeHandler,mxElbowEdgeHandler.prototype.flipEnabled=!0,mxElbowEdgeHandler.prototype.doubleClickOrientationResource="none"!=mxClient.language?"doubleClickOrientation":"",mxElbowEdgeHandler.prototype.createBends=function(){var e=[],n=this.createHandleShape(0);return this.initBend(n),n.node.style.cursor=mxConstants.CURSOR_BEND_HANDLE,mxEvent.redirectMouseEvents(n.node,this.graph,this.state),e.push(n),mxClient.IS_TOUCH&&n.node.setAttribute("pointer-events","none"),e.push(this.createVirtualBend()),this.points.push(new mxPoint(0,0)),n=this.createHandleShape(2),this.initBend(n),n.node.style.cursor=mxConstants.CURSOR_BEND_HANDLE,mxEvent.redirectMouseEvents(n.node,this.graph,this.state),e.push(n),mxClient.IS_TOUCH&&n.node.setAttribute("pointer-events","none"),e},mxElbowEdgeHandler.prototype.createVirtualBend=function(){var e=this.createHandleShape();this.initBend(e);var n=this.getCursorForBend();return e.node.style.cursor=n,n=mxUtils.bind(this,function(e){!mxEvent.isConsumed(e)&&this.flipEnabled&&(this.graph.flipEdge(this.state.cell,e),mxEvent.consume(e))}),mxEvent.redirectMouseEvents(e.node,this.graph,this.state,null,null,null,n),this.graph.isCellBendable(this.state.cell)||(e.node.style.display="none"),e},mxElbowEdgeHandler.prototype.getCursorForBend=function(){return this.state.style[mxConstants.STYLE_EDGE]==mxEdgeStyle.TopToBottom||this.state.style[mxConstants.STYLE_EDGE]==mxConstants.EDGESTYLE_TOPTOBOTTOM||(this.state.style[mxConstants.STYLE_EDGE]==mxEdgeStyle.ElbowConnector||this.state.style[mxConstants.STYLE_EDGE]==mxConstants.EDGESTYLE_ELBOW)&&this.state.style[mxConstants.STYLE_ELBOW]==mxConstants.ELBOW_VERTICAL?"row-resize":"col-resize"},mxElbowEdgeHandler.prototype.getTooltipForNode=function(e){var n=null;return null==this.bends||null==this.bends[1]||e!=this.bends[1].node&&e.parentNode!=this.bends[1].node||(n=this.doubleClickOrientationResource,n=mxResources.get(n)||n),n},mxElbowEdgeHandler.prototype.convertPoint=function(e,n){var t=this.graph.getView().getScale(),a=this.graph.getView().getTranslate(),i=this.state.origin;n&&(e.x=this.graph.snap(e.x),e.y=this.graph.snap(e.y)),e.x=Math.round(e.x/t-a.x-i.x),e.y=Math.round(e.y/t-a.y-i.y)},mxElbowEdgeHandler.prototype.redrawInnerBends=function(e,n){var t=null==(t=null!=(t=this.graph.getModel().getGeometry(this.state.cell).points)?t[0]:null)?new mxPoint(e.x+(n.x-e.x)/2,e.y+(n.y-e.y)/2):new mxPoint(this.graph.getView().scale*(t.x+this.graph.getView().translate.x+this.state.origin.x),this.graph.getView().scale*(t.y+this.graph.getView().translate.y+this.state.origin.y)),a=(i=this.bends[1].bounds).width,i=i.height;null==this.handleImage&&(i=a=mxConstants.HANDLE_SIZE);var s=new mxRectangle(Math.round(t.x-a/2),Math.round(t.y-i/2),a,i);null==this.handleImage&&"hidden"!=this.labelShape.node.style.visibility&&mxUtils.intersects(s,this.labelShape.bounds)&&(a+=3,i+=3,s=new mxRectangle(Math.round(t.x-a/2),Math.round(t.y-i/2),a,i)),this.bends[1].bounds=s,this.bends[1].redraw()},mxUtils.extend(mxEdgeSegmentHandler,mxEdgeHandler),mxEdgeSegmentHandler.prototype=new mxElbowEdgeHandler,mxEdgeSegmentHandler.prototype.constructor=mxEdgeSegmentHandler,mxEdgeSegmentHandler.prototype.getPreviewPoints=function(e){if(this.isSource||this.isTarget)return mxElbowEdgeHandler.prototype.getPreviewPoints.apply(this,arguments);this.convertPoint(e,!1);var n=this.state.absolutePoints,t=n[0].clone();this.convertPoint(t,!1);for(var a=[],i=1;i<n.length;i++){var s=n[i].clone();this.convertPoint(s,!1),i==this.index&&(t.x==s.x?(t.x=e.x,s.x=e.x):(t.y=e.y,s.y=e.y)),i<n.length-1&&a.push(s),t=s}if(1==a.length){if(t=this.state.view,i=this.state.getVisibleTerminalState(!0),null!=(s=this.state.getVisibleTerminalState(!1))&null!=i){var o=this.state.origin.x,r=this.state.origin.y;mxUtils.contains(s,a[0].x+o,a[0].y+r)?n[1].y==n[2].y?a[0].y=t.getRoutingCenterY(i)-r:a[0].x=t.getRoutingCenterX(i)-o:mxUtils.contains(i,a[0].x+o,a[0].y+r)&&(n[1].y==n[0].y?a[0].y=t.getRoutingCenterY(s)-r:a[0].x=t.getRoutingCenterX(s)-o)}}else 0==a.length&&(a=[e]);return a},mxEdgeSegmentHandler.prototype.createBends=function(){var e=[],n=this.createHandleShape(0);this.initBend(n),n.node.style.cursor=mxConstants.CURSOR_BEND_HANDLE,mxEvent.redirectMouseEvents(n.node,this.graph,this.state),e.push(n),mxClient.IS_TOUCH&&n.node.setAttribute("pointer-events","none");var t=this.state.absolutePoints;if(this.graph.isCellBendable(this.state.cell)){null==this.points&&(this.points=[]);for(var a=0;a<t.length-1;a++)n=this.createVirtualBend(),e.push(n),n.node.style.cursor=0==t[a].x-t[a+1].x?"col-resize":"row-resize",this.points.push(new mxPoint(0,0)),mxClient.IS_TOUCH&&n.node.setAttribute("pointer-events","none")}return n=this.createHandleShape(t.length),this.initBend(n),n.node.style.cursor=mxConstants.CURSOR_BEND_HANDLE,mxEvent.redirectMouseEvents(n.node,this.graph,this.state),e.push(n),mxClient.IS_TOUCH&&n.node.setAttribute("pointer-events","none"),e},mxEdgeSegmentHandler.prototype.redraw=function(){this.refresh(),mxEdgeHandler.prototype.redraw.apply(this,arguments)},mxEdgeSegmentHandler.prototype.refresh=function(){if(null!=this.bends){for(var e=0;e<this.bends.length;e++)null!=this.bends[e]&&(this.bends[e].destroy(),this.bends[e]=null);this.bends=this.createBends()}},mxEdgeSegmentHandler.prototype.redrawInnerBends=function(e,n){if(this.graph.isCellBendable(this.state.cell)){var t=mxConstants.HANDLE_SIZE,a=this.state.absolutePoints;if(null!=a&&1<a.length)for(var i=0;i<this.state.absolutePoints.length-1;i++)if(null!=this.bends[i+1]){e=a[i],n=a[i+1];var s=new mxPoint(e.x+(n.x-e.x)/2,e.y+(n.y-e.y)/2);this.bends[i+1].bounds=new mxRectangle(Math.round(s.x-t/2),Math.round(s.y-t/2),t,t),this.bends[i+1].redraw()}}},mxEdgeSegmentHandler.prototype.changePoints=function(e,n){n=[];var t=this.abspoints;if(1<t.length)for(var a=t[0],i=t[1],s=2;s<t.length;s++){var o=t[s];Math.round(a.x)==Math.round(i.x)&&Math.round(i.x)==Math.round(o.x)||Math.round(a.y)==Math.round(i.y)&&Math.round(i.y)==Math.round(o.y)||(i=(a=i).clone(),this.convertPoint(i,!1),n.push(i)),i=o}mxElbowEdgeHandler.prototype.changePoints.apply(this,arguments)},mxKeyHandler.prototype.graph=null,mxKeyHandler.prototype.target=null,mxKeyHandler.prototype.normalKeys=null,mxKeyHandler.prototype.shiftKeys=null,mxKeyHandler.prototype.controlKeys=null,mxKeyHandler.prototype.controlShiftKeys=null,mxKeyHandler.prototype.enabled=!0,mxKeyHandler.prototype.isEnabled=function(){return this.enabled},mxKeyHandler.prototype.setEnabled=function(e){this.enabled=e},mxKeyHandler.prototype.bindKey=function(e,n){this.normalKeys[e]=n},mxKeyHandler.prototype.bindShiftKey=function(e,n){this.shiftKeys[e]=n},mxKeyHandler.prototype.bindControlKey=function(e,n){this.controlKeys[e]=n},mxKeyHandler.prototype.bindControlShiftKey=function(e,n){this.controlShiftKeys[e]=n},mxKeyHandler.prototype.isControlDown=function(e){return mxEvent.isControlDown(e)},mxKeyHandler.prototype.getFunction=function(e){return null!=e?this.isControlDown(e)?mxEvent.isShiftDown(e)?this.controlShiftKeys[e.keyCode]:this.controlKeys[e.keyCode]:mxEvent.isShiftDown(e)?this.shiftKeys[e.keyCode]:this.normalKeys[e.keyCode]:null},mxKeyHandler.prototype.isGraphEvent=function(e){if((e=mxEvent.getSource(e))==this.target||e.parentNode==this.target||null!=this.graph.cellEditor&&e==this.graph.cellEditor.textarea)return!0;for(;null!=e;){if(e==this.graph.container)return!0;e=e.parentNode}return!1},mxKeyHandler.prototype.keyDown=function(e){if(this.graph.isEnabled()&&!mxEvent.isConsumed(e)&&this.isGraphEvent(e)&&this.isEnabled())if(27==e.keyCode)this.escape(e);else if(!this.graph.isEditing()){var n=this.getFunction(e);null!=n&&(n(e),mxEvent.consume(e))}},mxKeyHandler.prototype.escape=function(e){this.graph.isEscapeEnabled()&&this.graph.escape(e)},mxKeyHandler.prototype.destroy=function(){this.target=null},mxTooltipHandler.prototype.zIndex=10005,mxTooltipHandler.prototype.graph=null,mxTooltipHandler.prototype.delay=null,mxTooltipHandler.prototype.hideOnHover=!1,mxTooltipHandler.prototype.enabled=!0,mxTooltipHandler.prototype.isEnabled=function(){return this.enabled},mxTooltipHandler.prototype.setEnabled=function(e){this.enabled=e},mxTooltipHandler.prototype.isHideOnHover=function(){return this.hideOnHover},mxTooltipHandler.prototype.setHideOnHover=function(e){this.hideOnHover=e},mxTooltipHandler.prototype.init=function(){null!=document.body&&(this.div=document.createElement("div"),this.div.className="mxTooltip",this.div.style.visibility="hidden",this.div.style.zIndex=this.zIndex,document.body.appendChild(this.div),mxEvent.addListener(this.div,"mousedown",mxUtils.bind(this,function(e){this.hideTooltip()})))},mxTooltipHandler.prototype.mouseDown=function(e,n){this.reset(n,!1),this.hideTooltip()},mxTooltipHandler.prototype.mouseMove=function(e,n){n.getX()==this.lastX&&n.getY()==this.lastY||(this.reset(n,!0),(this.isHideOnHover()||n.getState()!=this.state||n.getSource()!=this.node&&(!this.stateSource||null!=n.getState()&&this.stateSource==(n.isSource(n.getState().shape)||!n.isSource(n.getState().text))))&&this.hideTooltip()),this.lastX=n.getX(),this.lastY=n.getY()},mxTooltipHandler.prototype.mouseUp=function(e,n){this.reset(n,!0),this.hideTooltip()},mxTooltipHandler.prototype.resetTimer=function(){null!=this.thread&&(window.clearTimeout(this.thread),this.thread=null)},mxTooltipHandler.prototype.reset=function(e,n){if(this.resetTimer(),n&&this.isEnabled()&&null!=e.getState()&&(null==this.div||"hidden"==this.div.style.visibility)){var t=e.getState(),a=e.getSource(),i=e.getX(),s=e.getY(),o=e.isSource(t.shape)||e.isSource(t.text);this.thread=window.setTimeout(mxUtils.bind(this,function(){if(!this.graph.isEditing()&&!this.graph.panningHandler.isMenuShowing()){var e=this.graph.getTooltip(t,a,i,s);this.show(e,i,s),this.state=t,this.node=a,this.stateSource=o}}),this.delay)}},mxTooltipHandler.prototype.hide=function(){this.resetTimer(),this.hideTooltip()},mxTooltipHandler.prototype.hideTooltip=function(){null!=this.div&&(this.div.style.visibility="hidden")},mxTooltipHandler.prototype.show=function(e,n,t){if(null!=e&&0<e.length){null==this.div&&this.init();var a=mxUtils.getScrollOrigin();this.div.style.left=n+a.x+"px",this.div.style.top=t+mxConstants.TOOLTIP_VERTICAL_OFFSET+a.y+"px",mxUtils.isNode(e)?(this.div.innerHTML="",this.div.appendChild(e)):this.div.innerHTML=e.replace(/\n/g,"<br>"),this.div.style.visibility="",mxUtils.fit(this.div)}},mxTooltipHandler.prototype.destroy=function(){this.graph.removeMouseListener(this),mxEvent.release(this.div),null!=this.div&&null!=this.div.parentNode&&this.div.parentNode.removeChild(this.div),this.div=null},mxUtils.extend(mxCellTracker,mxCellMarker),mxCellTracker.prototype.mouseDown=function(e,n){},mxCellTracker.prototype.mouseMove=function(e,n){this.isEnabled()&&this.process(n)},mxCellTracker.prototype.mouseUp=function(e,n){this.reset()},mxCellTracker.prototype.destroy=function(){this.destroyed||(this.destroyed=!0,this.graph.removeMouseListener(this),mxCellMarker.prototype.destroy.apply(this))},mxCellHighlight.prototype.keepOnTop=!1,mxCellHighlight.prototype.graph=!0,mxCellHighlight.prototype.state=null,mxCellHighlight.prototype.spacing=2,mxCellHighlight.prototype.resetHandler=null,mxCellHighlight.prototype.setHighlightColor=function(e){this.highlightColor=e,null!=this.shape&&(this.shape.stroke=e)},mxCellHighlight.prototype.drawHighlight=function(){this.shape=this.createShape(),this.repaint(),!this.keepOnTop&&this.shape.node.parentNode.firstChild!=this.shape.node&&this.shape.node.parentNode.insertBefore(this.shape.node,this.shape.node.parentNode.firstChild)},mxCellHighlight.prototype.createShape=function(){var e=null;return(e=this.graph.model.isEdge(this.state.cell)?new mxPolyline(this.state.absolutePoints,this.highlightColor,this.strokeWidth):new mxRectangleShape(new mxRectangle,null,this.highlightColor,this.strokeWidth)).dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,e.init(this.graph.getView().getOverlayPane()),mxEvent.redirectMouseEvents(e.node,this.graph,this.state),e.svgStrokeTolerance=0,e.pointerEvents=!1,e.isDashed=this.dashed,e},mxCellHighlight.prototype.repaint=function(){if(null!=this.state&&null!=this.shape){var e=0;this.graph.model.isEdge(this.state.cell)?this.shape.points=this.state.absolutePoints:(this.shape.bounds=new mxRectangle(this.state.x-this.spacing,this.state.y-this.spacing,this.state.width+2*this.spacing,this.state.height+2*this.spacing),e=Number(this.state.style[mxConstants.STYLE_ROTATION]||"0")),null!=this.state.shape&&this.shape.setCursor(this.state.shape.getCursor()),0!=e&&(this.shape.rotation=e),this.shape.redraw()}},mxCellHighlight.prototype.hide=function(){this.highlight(null)},mxCellHighlight.prototype.highlight=function(e){this.state!=e&&(null!=this.shape&&(this.shape.destroy(),this.shape=null),this.state=e,null!=this.state&&this.drawHighlight())},mxCellHighlight.prototype.destroy=function(){this.graph.getView().removeListener(this.repaintHandler),this.graph.getModel().removeListener(this.repaintHandler),this.graph.getView().removeListener(this.resetHandler),this.graph.getModel().removeListener(this.resetHandler),null!=this.shape&&(this.shape.destroy(),this.shape=null)},mxDefaultKeyHandler.prototype.editor=null,mxDefaultKeyHandler.prototype.handler=null,mxDefaultKeyHandler.prototype.bindAction=function(e,n,t){var a=mxUtils.bind(this,function(){this.editor.execute(n)});t?this.handler.bindControlKey(e,a):this.handler.bindKey(e,a)},mxDefaultKeyHandler.prototype.destroy=function(){this.handler.destroy(),this.handler=null},mxDefaultPopupMenu.prototype.imageBasePath=null,mxDefaultPopupMenu.prototype.config=null,mxDefaultPopupMenu.prototype.createMenu=function(e,n,t,a){if(null!=this.config){var i=this.createConditions(e,t,a);this.addItems(e,n,t,a,i,this.config.firstChild,null)}},mxDefaultPopupMenu.prototype.addItems=function(e,n,t,a,i,s,o){for(var r=!1;null!=s;){if("add"==s.nodeName){if(null==(l=s.getAttribute("if"))||i[l]){var l=s.getAttribute("as"),d=(l=mxResources.get(l)||l,mxUtils.eval(mxUtils.getTextContent(s))),c=s.getAttribute("action"),m=s.getAttribute("icon"),u=s.getAttribute("iconCls");r&&(n.addSeparator(o),r=!1),null!=m&&this.imageBasePath&&(m=this.imageBasePath+m),l=this.addAction(n,e,l,m,d,c,t,o,u),this.addItems(e,n,t,a,i,s.firstChild,l)}}else"separator"==s.nodeName&&(r=!0);s=s.nextSibling}},mxDefaultPopupMenu.prototype.addAction=function(e,n,t,a,i,s,o,r,l){return e.addItem(t,a,function(e){"function"==typeof i&&i.call(n,n,o,e),null!=s&&n.execute(s,o,e)},r,l)},mxDefaultPopupMenu.prototype.createConditions=function(e,n,t){var a=e.graph.getModel(),i=a.getChildCount(n),s=[];for(s.nocell=null==n,s.ncells=1<e.graph.getSelectionCount(),s.notRoot=a.getRoot()!=a.getParent(e.graph.getDefaultParent()),s.cell=null!=n,a=null!=n&&1==e.graph.getSelectionCount(),s.nonEmpty=a&&0<i,s.expandable=a&&e.graph.isCellFoldable(n,!1),s.collapsable=a&&e.graph.isCellFoldable(n,!0),s.validRoot=a&&e.graph.isValidRoot(n),s.emptyValidRoot=s.validRoot&&0==i,s.swimlane=a&&e.graph.isSwimlane(n),i=this.config.getElementsByTagName("condition"),a=0;a<i.length;a++){var o=mxUtils.eval(mxUtils.getTextContent(i[a])),r=i[a].getAttribute("name");null!=r&&"function"==typeof o&&(s[r]=o(e,n,t))}return s},mxDefaultToolbar.prototype.editor=null,mxDefaultToolbar.prototype.toolbar=null,mxDefaultToolbar.prototype.resetHandler=null,mxDefaultToolbar.prototype.spacing=4,mxDefaultToolbar.prototype.connectOnDrop=!1,mxDefaultToolbar.prototype.init=function(e){null!=e&&(this.toolbar=new mxToolbar(e),this.toolbar.addListener(mxEvent.SELECT,mxUtils.bind(this,function(e,n){var t=n.getProperty("function");this.editor.insertFunction=null!=t?mxUtils.bind(this,function(){t.apply(this,arguments),this.toolbar.resetMode()}):null})),this.resetHandler=mxUtils.bind(this,function(){null!=this.toolbar&&this.toolbar.resetMode(!0)}),this.editor.graph.addListener(mxEvent.DOUBLE_CLICK,this.resetHandler),this.editor.addListener(mxEvent.ESCAPE,this.resetHandler))},mxDefaultToolbar.prototype.addItem=function(e,n,t,a){var i=mxUtils.bind(this,function(){null!=t&&0<t.length&&this.editor.execute(t)});return this.toolbar.addItem(e,n,i,a)},mxDefaultToolbar.prototype.addSeparator=function(e){e=e||mxClient.imageBasePath+"/separator.gif",this.toolbar.addSeparator(e)},mxDefaultToolbar.prototype.addCombo=function(){return this.toolbar.addCombo()},mxDefaultToolbar.prototype.addActionCombo=function(e){return this.toolbar.addActionCombo(e)},mxDefaultToolbar.prototype.addActionOption=function(e,n,t){var a=mxUtils.bind(this,function(){this.editor.execute(t)});this.addOption(e,n,a)},mxDefaultToolbar.prototype.addOption=function(e,n,t){return this.toolbar.addOption(e,n,t)},mxDefaultToolbar.prototype.addMode=function(e,n,t,a,i){var s=mxUtils.bind(this,function(){this.editor.setMode(t),null!=i&&i(this.editor)});return this.toolbar.addSwitchMode(e,n,s,a)},mxDefaultToolbar.prototype.addPrototype=function(e,n,t,a,i,s){var o=function(){return"function"==typeof t?t():null!=t?t.clone():null},r=mxUtils.bind(this,function(e,n){"function"==typeof i?i(this.editor,o(),e,n):this.drop(o(),e,n),this.toolbar.resetMode(),mxEvent.consume(e)});return e=this.toolbar.addMode(e,n,r,a,null,s),this.installDropHandler(e,function(e,n,t){r(n,t)}),e},mxDefaultToolbar.prototype.drop=function(e,n,t){var a=this.editor.graph,i=a.getModel();if(null!=t&&!i.isEdge(t)&&this.connectOnDrop&&a.isCellConnectable(t))this.connect(e,n,t);else{for(;null!=t&&!a.isValidDropTarget(t,[e],n);)t=i.getParent(t);this.insert(e,n,t)}},mxDefaultToolbar.prototype.insert=function(e,n,t){var a=this.editor.graph;if(a.canImportCell(e)){var i=mxEvent.getClientX(n),s=mxEvent.getClientY(n);i=mxUtils.convertPoint(a.container,i,s);return a.isSplitEnabled()&&a.isSplitTarget(t,[e],n)?a.splitEdge(t,[e],null,i.x,i.y):this.editor.addVertex(t,e,i.x,i.y)}return null},mxDefaultToolbar.prototype.connect=function(e,n,t){var a=(n=this.editor.graph).getModel();if(null!=t&&n.isCellConnectable(e)&&n.isEdgeValid(null,t,e)){var i=null;a.beginUpdate();try{var s=a.getGeometry(t),o=a.getGeometry(e).clone();o.x=s.x+(s.width-o.width)/2,o.y=s.y+(s.height-o.height)/2;var r=this.spacing*n.gridSize,l=20*a.getDirectedEdgeCount(t,!0);this.editor.horizontalFlow?o.x+=(o.width+s.width)/2+r+l:o.y+=(o.height+s.height)/2+r+l,e.setGeometry(o);var d=a.getParent(t);if(n.addCell(e,d),n.constrainChild(e),i=this.editor.createEdge(t,e),null==a.getGeometry(i)){var c=new mxGeometry;c.relative=!0,a.setGeometry(i,c)}n.addEdge(i,d,t,e)}finally{a.endUpdate()}n.setSelectionCells([e,i]),n.scrollCellToVisible(e)}},mxDefaultToolbar.prototype.installDropHandler=function(n,t){var a=document.createElement("img");a.setAttribute("src",n.getAttribute("src"));var i=mxUtils.bind(this,function(e){a.style.width=2*n.offsetWidth+"px",a.style.height=2*n.offsetHeight+"px",mxUtils.makeDraggable(n,this.editor.graph,t,a),mxEvent.removeListener(a,"load",i)});mxClient.IS_IE?i():mxEvent.addListener(a,"load",i)},mxDefaultToolbar.prototype.destroy=function(){null!=this.resetHandler&&(this.editor.graph.removeListener("dblclick",this.resetHandler),this.editor.removeListener("escape",this.resetHandler),this.resetHandler=null),null!=this.toolbar&&(this.toolbar.destroy(),this.toolbar=null)},mxLoadResources&&mxResources.add(mxClient.basePath+"/resources/editor"),mxEditor.prototype=new mxEventSource,mxEditor.prototype.constructor=mxEditor,mxEditor.prototype.askZoomResource="none"!=mxClient.language?"askZoom":"",mxEditor.prototype.lastSavedResource="none"!=mxClient.language?"lastSaved":"",mxEditor.prototype.currentFileResource="none"!=mxClient.language?"currentFile":"",mxEditor.prototype.propertiesResource="none"!=mxClient.language?"properties":"",mxEditor.prototype.tasksResource="none"!=mxClient.language?"tasks":"",mxEditor.prototype.helpResource="none"!=mxClient.language?"help":"",mxEditor.prototype.outlineResource="none"!=mxClient.language?"outline":"",mxEditor.prototype.outline=null,mxEditor.prototype.graph=null,mxEditor.prototype.graphRenderHint=null,mxEditor.prototype.toolbar=null,mxEditor.prototype.session=null,mxEditor.prototype.status=null,mxEditor.prototype.popupHandler=null,mxEditor.prototype.undoManager=null,mxEditor.prototype.keyHandler=null,mxEditor.prototype.actions=null,mxEditor.prototype.dblClickAction="edit",mxEditor.prototype.swimlaneRequired=!1,mxEditor.prototype.disableContextMenu=!0,mxEditor.prototype.insertFunction=null,mxEditor.prototype.forcedInserting=!1,mxEditor.prototype.templates=null,mxEditor.prototype.defaultEdge=null,mxEditor.prototype.defaultEdgeStyle=null,mxEditor.prototype.defaultGroup=null,mxEditor.prototype.groupBorderSize=null,mxEditor.prototype.filename=null,mxEditor.prototype.linefeed="
",mxEditor.prototype.postParameterName="xml",mxEditor.prototype.escapePostData=!0,mxEditor.prototype.urlPost=null,mxEditor.prototype.urlImage=null,mxEditor.prototype.urlInit=null,mxEditor.prototype.urlNotify=null,mxEditor.prototype.urlPoll=null,mxEditor.prototype.horizontalFlow=!1,mxEditor.prototype.layoutDiagram=!1,mxEditor.prototype.swimlaneSpacing=0,mxEditor.prototype.maintainSwimlanes=!1,mxEditor.prototype.layoutSwimlanes=!1,mxEditor.prototype.cycleAttributeValues=null,mxEditor.prototype.cycleAttributeIndex=0,mxEditor.prototype.cycleAttributeName="fillColor",mxEditor.prototype.tasks=null,mxEditor.prototype.tasksWindowImage=null,mxEditor.prototype.tasksTop=20,mxEditor.prototype.help=null,mxEditor.prototype.helpWindowImage=null,mxEditor.prototype.urlHelp=null,mxEditor.prototype.helpWidth=300,mxEditor.prototype.helpHeight=260,mxEditor.prototype.propertiesWidth=240,mxEditor.prototype.propertiesHeight=null,mxEditor.prototype.movePropertiesDialog=!1,mxEditor.prototype.validating=!1,mxEditor.prototype.modified=!1,mxEditor.prototype.isModified=function(){return this.modified},mxEditor.prototype.setModified=function(e){this.modified=e},mxEditor.prototype.addActions=function(){this.addAction("save",function(e){e.save()}),this.addAction("print",function(e){new mxPrintPreview(e.graph,1).open()}),this.addAction("show",function(e){mxUtils.show(e.graph,null,10,10)}),this.addAction("exportImage",function(e){var n=e.getUrlImage();if(null==n||mxClient.IS_LOCAL)e.execute("show");else{var t=mxUtils.getViewXml(e.graph,1);t=mxUtils.getXml(t,"\n");mxUtils.submit(n,e.postParameterName+"="+encodeURIComponent(t),document,"_blank")}}),this.addAction("refresh",function(e){e.graph.refresh()}),this.addAction("cut",function(e){e.graph.isEnabled()&&mxClipboard.cut(e.graph)}),this.addAction("copy",function(e){e.graph.isEnabled()&&mxClipboard.copy(e.graph)}),this.addAction("paste",function(e){e.graph.isEnabled()&&mxClipboard.paste(e.graph)}),this.addAction("delete",function(e){e.graph.isEnabled()&&e.graph.removeCells()}),this.addAction("group",function(e){e.graph.isEnabled()&&e.graph.setSelectionCell(e.groupCells())}),this.addAction("ungroup",function(e){e.graph.isEnabled()&&e.graph.setSelectionCells(e.graph.ungroupCells())}),this.addAction("removeFromParent",function(e){e.graph.isEnabled()&&e.graph.removeCellsFromParent()}),this.addAction("undo",function(e){e.graph.isEnabled()&&e.undo()}),this.addAction("redo",function(e){e.graph.isEnabled()&&e.redo()}),this.addAction("zoomIn",function(e){e.graph.zoomIn()}),this.addAction("zoomOut",function(e){e.graph.zoomOut()}),this.addAction("actualSize",function(e){e.graph.zoomActual()}),this.addAction("fit",function(e){e.graph.fit()}),this.addAction("showProperties",function(e,n){e.showProperties(n)}),this.addAction("selectAll",function(e){e.graph.isEnabled()&&e.graph.selectAll()}),this.addAction("selectNone",function(e){e.graph.isEnabled()&&e.graph.clearSelection()}),this.addAction("selectVertices",function(e){e.graph.isEnabled()&&e.graph.selectVertices()}),this.addAction("selectEdges",function(e){e.graph.isEnabled()&&e.graph.selectEdges()}),this.addAction("edit",function(e,n){e.graph.isEnabled()&&e.graph.isCellEditable(n)&&e.graph.startEditingAtCell(n)}),this.addAction("toBack",function(e,n){e.graph.isEnabled()&&e.graph.orderCells(!0)}),this.addAction("toFront",function(e,n){e.graph.isEnabled()&&e.graph.orderCells(!1)}),this.addAction("enterGroup",function(e,n){e.graph.enterGroup(n)}),this.addAction("exitGroup",function(e){e.graph.exitGroup()}),this.addAction("home",function(e){e.graph.home()}),this.addAction("selectPrevious",function(e){e.graph.isEnabled()&&e.graph.selectPreviousCell()}),this.addAction("selectNext",function(e){e.graph.isEnabled()&&e.graph.selectNextCell()}),this.addAction("selectParent",function(e){e.graph.isEnabled()&&e.graph.selectParentCell()}),this.addAction("selectChild",function(e){e.graph.isEnabled()&&e.graph.selectChildCell()}),this.addAction("collapse",function(e){e.graph.isEnabled()&&e.graph.foldCells(!0)}),this.addAction("collapseAll",function(e){if(e.graph.isEnabled()){var n=e.graph.getChildVertices();e.graph.foldCells(!0,!1,n)}}),this.addAction("expand",function(e){e.graph.isEnabled()&&e.graph.foldCells(!1)}),this.addAction("expandAll",function(e){if(e.graph.isEnabled()){var n=e.graph.getChildVertices();e.graph.foldCells(!1,!1,n)}}),this.addAction("bold",function(e){e.graph.isEnabled()&&e.graph.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,mxConstants.FONT_BOLD)}),this.addAction("italic",function(e){e.graph.isEnabled()&&e.graph.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,mxConstants.FONT_ITALIC)}),this.addAction("underline",function(e){e.graph.isEnabled()&&e.graph.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,mxConstants.FONT_UNDERLINE)}),this.addAction("shadow",function(e){e.graph.isEnabled()&&e.graph.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,mxConstants.FONT_SHADOW)}),this.addAction("alignCellsLeft",function(e){e.graph.isEnabled()&&e.graph.alignCells(mxConstants.ALIGN_LEFT)}),this.addAction("alignCellsCenter",function(e){e.graph.isEnabled()&&e.graph.alignCells(mxConstants.ALIGN_CENTER)}),this.addAction("alignCellsRight",function(e){e.graph.isEnabled()&&e.graph.alignCells(mxConstants.ALIGN_RIGHT)}),this.addAction("alignCellsTop",function(e){e.graph.isEnabled()&&e.graph.alignCells(mxConstants.ALIGN_TOP)}),this.addAction("alignCellsMiddle",function(e){e.graph.isEnabled()&&e.graph.alignCells(mxConstants.ALIGN_MIDDLE)}),this.addAction("alignCellsBottom",function(e){e.graph.isEnabled()&&e.graph.alignCells(mxConstants.ALIGN_BOTTOM)}),this.addAction("alignFontLeft",function(e){e.graph.setCellStyles(mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT)}),this.addAction("alignFontCenter",function(e){e.graph.isEnabled()&&e.graph.setCellStyles(mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER)}),this.addAction("alignFontRight",function(e){e.graph.isEnabled()&&e.graph.setCellStyles(mxConstants.STYLE_ALIGN,mxConstants.ALIGN_RIGHT)}),this.addAction("alignFontTop",function(e){e.graph.isEnabled()&&e.graph.setCellStyles(mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_TOP)}),this.addAction("alignFontMiddle",function(e){e.graph.isEnabled()&&e.graph.setCellStyles(mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE)}),this.addAction("alignFontBottom",function(e){e.graph.isEnabled()&&e.graph.setCellStyles(mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_BOTTOM)}),this.addAction("zoom",function(e){var n=100*e.graph.getView().scale;n=parseFloat(mxUtils.prompt(mxResources.get(e.askZoomResource)||e.askZoomResource,n))/100;isNaN(n)||e.graph.getView().setScale(n)}),this.addAction("toggleTasks",function(e){null!=e.tasks?e.tasks.setVisible(!e.tasks.isVisible()):e.showTasks()}),this.addAction("toggleHelp",function(e){null!=e.help?e.help.setVisible(!e.help.isVisible()):e.showHelp()}),this.addAction("toggleOutline",function(e){null==e.outline?e.showOutline():e.outline.setVisible(!e.outline.isVisible())}),this.addAction("toggleConsole",function(e){mxLog.setVisible(!mxLog.isVisible())})},mxEditor.prototype.createSession=function(){var e=mxUtils.bind(this,function(e){this.fireEvent(new mxEventObject(mxEvent.SESSION,"session",e))});return this.connect(this.urlInit,this.urlPoll,this.urlNotify,e)},mxEditor.prototype.configure=function(e){null!=e&&(new mxCodec(e.ownerDocument).decode(e,this),this.resetHistory())},mxEditor.prototype.resetFirstTime=function(){document.cookie="mxgraph=seen; expires=Fri, 27 Jul 2001 02:47:11 UTC; path=/"},mxEditor.prototype.resetHistory=function(){this.lastSnapshot=(new Date).getTime(),this.undoManager.clear(),this.ignoredChanges=0,this.setModified(!1)},mxEditor.prototype.addAction=function(e,n){this.actions[e]=n},mxEditor.prototype.execute=function(n,e,t){var a=this.actions[n];if(null!=a)try{var i=arguments;i[0]=this,a.apply(this,i)}catch(e){throw mxUtils.error("Cannot execute "+n+": "+e.message,280,!0),e}else mxUtils.error("Cannot find action "+n,280,!0)},mxEditor.prototype.addTemplate=function(e,n){this.templates[e]=n},mxEditor.prototype.getTemplate=function(e){return this.templates[e]},mxEditor.prototype.createGraph=function(){var e=new mxGraph(null,null,this.graphRenderHint);return e.setTooltips(!0),e.setPanning(!0),this.installDblClickHandler(e),this.installUndoHandler(e),this.installDrillHandler(e),this.installChangeHandler(e),this.installInsertHandler(e),e.panningHandler.factoryMethod=mxUtils.bind(this,function(e,n,t){return this.createPopupMenu(e,n,t)}),e.connectionHandler.factoryMethod=mxUtils.bind(this,function(e,n){return this.createEdge(e,n)}),this.createSwimlaneManager(e),this.createLayoutManager(e),e},mxEditor.prototype.createSwimlaneManager=function(e){return(e=new mxSwimlaneManager(e,!1)).isHorizontal=mxUtils.bind(this,function(){return this.horizontalFlow}),e.isEnabled=mxUtils.bind(this,function(){return this.maintainSwimlanes}),e},mxEditor.prototype.createLayoutManager=function(a){var e=new mxLayoutManager(a),i=this;return e.getLayout=function(e){var n=null,t=i.graph.getModel();return null!=t.getParent(e)&&(i.layoutSwimlanes&&a.isSwimlane(e)?(null==i.swimlaneLayout&&(i.swimlaneLayout=i.createSwimlaneLayout()),n=i.swimlaneLayout):i.layoutDiagram&&(a.isValidRoot(e)||null==t.getParent(t.getParent(e)))&&(null==i.diagramLayout&&(i.diagramLayout=i.createDiagramLayout()),n=i.diagramLayout)),n},e},mxEditor.prototype.setGraphContainer=function(e){null==this.graph.container&&(this.graph.init(e),this.rubberband=new mxRubberband(this.graph),this.disableContextMenu&&mxEvent.disableContextMenu(e),mxClient.IS_QUIRKS&&new mxDivResizer(e))},mxEditor.prototype.installDblClickHandler=function(a){a.addListener(mxEvent.DOUBLE_CLICK,mxUtils.bind(this,function(e,n){var t=n.getProperty("cell");null!=t&&a.isEnabled()&&null!=this.dblClickAction&&(this.execute(this.dblClickAction,t),n.consume())}))},mxEditor.prototype.installUndoHandler=function(a){var e=mxUtils.bind(this,function(e,n){var t=n.getProperty("edit");this.undoManager.undoableEditHappened(t)});a.getModel().addListener(mxEvent.UNDO,e),a.getView().addListener(mxEvent.UNDO,e),e=function(e,n){var t=n.getProperty("edit").changes;a.setSelectionCells(a.getSelectionCellsForChanges(t))},this.undoManager.addListener(mxEvent.UNDO,e),this.undoManager.addListener(mxEvent.REDO,e)},mxEditor.prototype.installDrillHandler=function(e){var n=mxUtils.bind(this,function(e){this.fireEvent(new mxEventObject(mxEvent.ROOT))});e.getView().addListener(mxEvent.DOWN,n),e.getView().addListener(mxEvent.UP,n)},mxEditor.prototype.installChangeHandler=function(s){var e=mxUtils.bind(this,function(e,n){this.setModified(!0),1==this.validating&&s.validateGraph();for(var t=n.getProperty("edit").changes,a=0;a<t.length;a++){var i=t[a];if(i instanceof mxRootChange||i instanceof mxValueChange&&i.cell==this.graph.model.root||i instanceof mxCellAttributeChange&&i.cell==this.graph.model.root){this.fireEvent(new mxEventObject(mxEvent.ROOT));break}}});s.getModel().addListener(mxEvent.CHANGE,e)},mxEditor.prototype.installInsertHandler=function(e){var t=this;e.addMouseListener({mouseDown:function(e,n){null==t.insertFunction||n.isPopupTrigger()||!t.forcedInserting&&null!=n.getState()||(t.graph.clearSelection(),t.insertFunction(n.getEvent(),n.getCell()),this.isActive=!0,n.consume())},mouseMove:function(e,n){this.isActive&&n.consume()},mouseUp:function(e,n){this.isActive&&(this.isActive=!1,n.consume())}})},mxEditor.prototype.createDiagramLayout=function(){var e=this.graph.gridSize,n=new mxStackLayout(this.graph,!this.horizontalFlow,this.swimlaneSpacing,2*e,2*e);return n.isVertexIgnored=function(e){return!n.graph.isSwimlane(e)},n},mxEditor.prototype.createSwimlaneLayout=function(){return new mxCompactTreeLayout(this.graph,this.horizontalFlow)},mxEditor.prototype.createToolbar=function(){return new mxDefaultToolbar(null,this)},mxEditor.prototype.setToolbarContainer=function(e){this.toolbar.init(e),mxClient.IS_QUIRKS&&new mxDivResizer(e)},mxEditor.prototype.setStatusContainer=function(e){null==this.status&&(this.status=e,this.addListener(mxEvent.SAVE,mxUtils.bind(this,function(){var e=(new Date).toLocaleString();this.setStatus((mxResources.get(this.lastSavedResource)||this.lastSavedResource)+": "+e)})),this.addListener(mxEvent.OPEN,mxUtils.bind(this,function(){this.setStatus((mxResources.get(this.currentFileResource)||this.currentFileResource)+": "+this.filename)})),mxClient.IS_QUIRKS&&new mxDivResizer(e))},mxEditor.prototype.setStatus=function(e){null!=this.status&&null!=e&&(this.status.innerHTML=e)},mxEditor.prototype.setTitleContainer=function(n){this.addListener(mxEvent.ROOT,mxUtils.bind(this,function(e){n.innerHTML=this.getTitle()})),mxClient.IS_QUIRKS&&new mxDivResizer(n)},mxEditor.prototype.treeLayout=function(e,n){null!=e&&new mxCompactTreeLayout(this.graph,n).execute(e)},mxEditor.prototype.getTitle=function(){for(var e="",n=this.graph,t=n.getCurrentRoot();null!=t&&null!=n.getModel().getParent(n.getModel().getParent(t));)n.isValidRoot(t)&&(e=" > "+n.convertValueToString(t)+e),t=n.getModel().getParent(t);return this.getRootTitle()+e},mxEditor.prototype.getRootTitle=function(){var e=this.graph.getModel().getRoot();return this.graph.convertValueToString(e)},mxEditor.prototype.undo=function(){this.undoManager.undo()},mxEditor.prototype.redo=function(){this.undoManager.redo()},mxEditor.prototype.groupCells=function(){var e=null!=this.groupBorderSize?this.groupBorderSize:this.graph.gridSize;return this.graph.groupCells(this.createGroup(),e)},mxEditor.prototype.createGroup=function(){return this.graph.getModel().cloneCell(this.defaultGroup)},mxEditor.prototype.open=function(e){if(null!=e){var n=mxUtils.load(e).getXml();this.readGraphModel(n.documentElement),this.filename=e,this.fireEvent(new mxEventObject(mxEvent.OPEN,"filename",e))}},mxEditor.prototype.readGraphModel=function(e){new mxCodec(e.ownerDocument).decode(e,this.graph.getModel()),this.resetHistory()},mxEditor.prototype.save=function(e,n){if(null!=(e=e||this.getUrlPost())&&0<e.length){var t=this.writeGraphModel(n);this.postDiagram(e,t),this.setModified(!1)}this.fireEvent(new mxEventObject(mxEvent.SAVE,"url",e))},mxEditor.prototype.postDiagram=function(n,t){this.escapePostData&&(t=encodeURIComponent(t)),mxUtils.post(n,this.postParameterName+"="+t,mxUtils.bind(this,function(e){this.fireEvent(new mxEventObject(mxEvent.POST,"request",e,"url",n,"data",t))}))},mxEditor.prototype.writeGraphModel=function(e){e=null!=e?e:this.linefeed;var n=(new mxCodec).encode(this.graph.getModel());return mxUtils.getXml(n,e)},mxEditor.prototype.getUrlPost=function(){return this.urlPost},mxEditor.prototype.getUrlImage=function(){return this.urlImage},mxEditor.prototype.connect=function(e,n,t,a){var i=null;return mxClient.IS_LOCAL||((i=new mxSession(this.graph.getModel(),e,n,t)).addListener(mxEvent.RECEIVE,mxUtils.bind(this,function(e,n){null!=n.getProperty("node").getAttribute("namespace")&&this.resetHistory()})),i.addListener(mxEvent.DISCONNECT,a),i.addListener(mxEvent.CONNECT,a),i.addListener(mxEvent.NOTIFY,a),i.addListener(mxEvent.GET,a),i.start()),i},mxEditor.prototype.swapStyles=function(e,n){var t=this.graph.getStylesheet().styles[n];this.graph.getView().getStylesheet().putCellStyle(n,this.graph.getStylesheet().styles[e]),this.graph.getStylesheet().putCellStyle(e,t),this.graph.refresh()},mxEditor.prototype.showProperties=function(e){if(null==(e=e||this.graph.getSelectionCell())&&(null==(e=this.graph.getCurrentRoot())&&(e=this.graph.getModel().getRoot())),null!=e){this.graph.stopEditing(!0);var n=(t=mxUtils.getOffset(this.graph.container)).x+10,t=t.y;if(null==this.properties||this.movePropertiesDialog){var a=this.graph.getCellBounds(e);null!=a&&(n+=a.x+Math.min(200,a.width),t+=a.y)}else n=this.properties.getX(),t=this.properties.getY();this.hideProperties(),null!=(e=this.createProperties(e))&&(this.properties=new mxWindow(mxResources.get(this.propertiesResource)||this.propertiesResource,e,n,t,this.propertiesWidth,this.propertiesHeight,!1),this.properties.setVisible(!0))}},mxEditor.prototype.isPropertiesVisible=function(){return null!=this.properties},mxEditor.prototype.createProperties=function(t){var a=this.graph.getModel(),e=a.getValue(t);if(mxUtils.isNode(e)){var n=new mxForm("properties");n.addText("ID",t.getId()).setAttribute("readonly","true");var i=null,s=null,o=null,r=null,l=null;a.isVertex(t)&&(null!=(i=a.getGeometry(t))&&(s=n.addText("top",i.y),o=n.addText("left",i.x),r=n.addText("width",i.width),l=n.addText("height",i.height)));var d=a.getStyle(t),c=n.addText("Style",d||""),m=e.attributes,u=[];for(e=0;e<m.length;e++)u[e]=n.addTextarea(m[e].nodeName,m[e].nodeValue,"label"==m[e].nodeName?4:2);return e=mxUtils.bind(this,function(){this.hideProperties(),a.beginUpdate();try{null!=i&&((i=i.clone()).x=parseFloat(o.value),i.y=parseFloat(s.value),i.width=parseFloat(r.value),i.height=parseFloat(l.value),a.setGeometry(t,i)),0<c.value.length?a.setStyle(t,c.value):a.setStyle(t,null);for(var e=0;e<m.length;e++){var n=new mxCellAttributeChange(t,m[e].nodeName,u[e].value);a.execute(n)}this.graph.isAutoSizeCell(t)&&this.graph.updateCellSize(t)}finally{a.endUpdate()}}),d=mxUtils.bind(this,function(){this.hideProperties()}),n.addButtons(e,d),n.table}return null},mxEditor.prototype.hideProperties=function(){null!=this.properties&&(this.properties.destroy(),this.properties=null)},mxEditor.prototype.showTasks=function(){if(null==this.tasks){var n=document.createElement("div");n.style.padding="4px",n.style.paddingLeft="20px";var e=document.body.clientWidth;(e=new mxWindow(mxResources.get(this.tasksResource)||this.tasksResource,n,e-220,this.tasksTop,200)).setClosable(!0),e.destroyOnClose=!1;var t=mxUtils.bind(this,function(e){mxEvent.release(n),n.innerHTML="",this.createTasks(n)});this.graph.getModel().addListener(mxEvent.CHANGE,t),this.graph.getSelectionModel().addListener(mxEvent.CHANGE,t),this.graph.addListener(mxEvent.ROOT,t),null!=this.tasksWindowImage&&e.setImage(this.tasksWindowImage),this.tasks=e,this.createTasks(n)}this.tasks.setVisible(!0)},mxEditor.prototype.refreshTasks=function(e){null!=this.tasks&&(e=this.tasks.content,mxEvent.release(e),e.innerHTML="",this.createTasks(e))},mxEditor.prototype.createTasks=function(e){},mxEditor.prototype.showHelp=function(e){if(null==this.help){var n=document.createElement("iframe");n.setAttribute("src",mxResources.get("urlHelp")||this.urlHelp),n.setAttribute("height","100%"),n.setAttribute("width","100%"),n.setAttribute("frameBorder","0"),n.style.backgroundColor="white",e=document.body.clientWidth;var t=document.body.clientHeight||document.documentElement.clientHeight,a=new mxWindow(mxResources.get(this.helpResource)||this.helpResource,n,(e-this.helpWidth)/2,(t-this.helpHeight)/3,this.helpWidth,this.helpHeight);a.setMaximizable(!0),a.setClosable(!0),a.destroyOnClose=!1,a.setResizable(!0),null!=this.helpWindowImage&&a.setImage(this.helpWindowImage),mxClient.IS_NS&&(e=function(e){n.setAttribute("height",a.div.offsetHeight-26+"px")},a.addListener(mxEvent.RESIZE_END,e),a.addListener(mxEvent.MAXIMIZE,e),a.addListener(mxEvent.NORMALIZE,e),a.addListener(mxEvent.SHOW,e)),this.help=a}this.help.setVisible(!0)},mxEditor.prototype.showOutline=function(){if(null==this.outline){var e=document.createElement("div");e.style.overflow="hidden",e.style.width="100%",e.style.height="100%",e.style.background="white",e.style.cursor="move";var n=new mxWindow(mxResources.get(this.outlineResource)||this.outlineResource,e,600,480,200,200,!1),t=new mxOutline(this.graph,e);n.setClosable(!0),n.setResizable(!0),n.destroyOnClose=!1,n.addListener(mxEvent.RESIZE_END,function(){t.update()}),this.outline=n,this.outline.outline=t}this.outline.setVisible(!0),this.outline.outline.update(!0)},mxEditor.prototype.setMode=function(e){"select"==e?(this.graph.panningHandler.useLeftButtonForPanning=!1,this.graph.setConnectable(!1)):"connect"==e?(this.graph.panningHandler.useLeftButtonForPanning=!1,this.graph.setConnectable(!0)):"pan"==e&&(this.graph.panningHandler.useLeftButtonForPanning=!0,this.graph.setConnectable(!1))},mxEditor.prototype.createPopupMenu=function(e,n,t){this.popupHandler.createMenu(this,e,n,t)},mxEditor.prototype.createEdge=function(e,n){var t=null;if(null!=this.defaultEdge)t=this.graph.getModel().cloneCell(this.defaultEdge);else{(t=new mxCell("")).setEdge(!0);var a=new mxGeometry;a.relative=!0,t.setGeometry(a)}return null!=(a=this.getEdgeStyle())&&t.setStyle(a),t},mxEditor.prototype.getEdgeStyle=function(){return this.defaultEdgeStyle},mxEditor.prototype.consumeCycleAttribute=function(e){return null!=this.cycleAttributeValues&&0<this.cycleAttributeValues.length&&this.graph.isSwimlane(e)?this.cycleAttributeValues[this.cycleAttributeIndex++%this.cycleAttributeValues.length]:null},mxEditor.prototype.cycleAttribute=function(e){if(null!=this.cycleAttributeName){var n=this.consumeCycleAttribute(e);null!=n&&e.setStyle(e.getStyle()+";"+this.cycleAttributeName+"="+n)}},mxEditor.prototype.addVertex=function(e,n,t,a){for(var i=this.graph.getModel();null!=e&&!this.graph.isValidDropTarget(e);)e=i.getParent(e);e=null!=e?e:this.graph.getSwimlaneAt(t,a);var s=this.graph.getView().scale,o=i.getGeometry(n),r=i.getGeometry(e);if(this.graph.isSwimlane(n)&&!this.graph.swimlaneNesting)e=null;else{if(null==e&&this.swimlaneRequired)return null;if(null!=e&&null!=r){var l=this.graph.getView().getState(e);if(null!=l){if(t-=l.origin.x*s,a-=l.origin.y*s,this.graph.isConstrainedMoving){r=o.width;var d=o.height,c=l.x+l.width;c<t+r&&(t-=t+r-c),(c=l.y+l.height)<a+d&&(a-=a+d-c)}}else null!=r&&(t-=r.x*s,a-=r.y*s)}}(o=o.clone()).x=this.graph.snap(t/s-this.graph.getView().translate.x-this.graph.gridSize/2),o.y=this.graph.snap(a/s-this.graph.getView().translate.y-this.graph.gridSize/2),n.setGeometry(o),null==e&&(e=this.graph.getDefaultParent()),this.cycleAttribute(n),this.fireEvent(new mxEventObject(mxEvent.BEFORE_ADD_VERTEX,"vertex",n,"parent",e)),i.beginUpdate();try{null!=(n=this.graph.addCell(n,e))&&(this.graph.constrainChild(n),this.fireEvent(new mxEventObject(mxEvent.ADD_VERTEX,"vertex",n)))}finally{i.endUpdate()}return null!=n&&(this.graph.setSelectionCell(n),this.graph.scrollCellToVisible(n),this.fireEvent(new mxEventObject(mxEvent.AFTER_ADD_VERTEX,"vertex",n))),n},mxEditor.prototype.destroy=function(){this.destroyed||(this.destroyed=!0,null!=this.tasks&&this.tasks.destroy(),null!=this.outline&&this.outline.destroy(),null!=this.properties&&this.properties.destroy(),null!=this.keyHandler&&this.keyHandler.destroy(),null!=this.rubberband&&this.rubberband.destroy(),null!=this.toolbar&&this.toolbar.destroy(),null!=this.graph&&this.graph.destroy(),this.templates=this.status=null)};var mxCodecRegistry={codecs:[],aliases:[],register:function(e){if(null!=e){var n=e.getName();mxCodecRegistry.codecs[n]=e;var t=mxUtils.getFunctionName(e.template.constructor);t!=n&&mxCodecRegistry.addAlias(t,n)}return e},addAlias:function(e,n){mxCodecRegistry.aliases[e]=n},getCodec:function(e){var n=null;if(null!=e){n=mxUtils.getFunctionName(e);var t=mxCodecRegistry.aliases[n];if(null!=t&&(n=t),null==(n=mxCodecRegistry.codecs[n]))try{n=new mxObjectCodec(new e),mxCodecRegistry.register(n)}catch(e){}}return n}};function mxCodec(e){this.document=e||mxUtils.createXmlDocument(),this.objects=[]}function mxObjectCodec(e,n,t,a){for(var i in this.template=e,this.exclude=null!=n?n:[],this.idrefs=null!=t?t:[],this.mapping=null!=a?a:[],this.reverse={},this.mapping)this.reverse[this.mapping[i]]=i}mxCodec.prototype.document=null,mxCodec.prototype.objects=null,mxCodec.prototype.encodeDefaults=!1,mxCodec.prototype.putObject=function(e,n){return this.objects[e]=n},mxCodec.prototype.getObject=function(e){var n=null;return null!=e&&(null==(n=this.objects[e])&&(null==(n=this.lookup(e))&&(null!=(e=this.getElementById(e))&&(n=this.decode(e))))),n},mxCodec.prototype.lookup=function(e){return null},mxCodec.prototype.getElementById=function(e,n){return mxUtils.findNodeByAttribute(this.document.documentElement,null!=n?n:"id",e)},mxCodec.prototype.getId=function(e){var n=null;return null!=e&&(null==(n=this.reference(e))&&e instanceof mxCell&&(null==(n=e.getId())&&(0==(n=mxCellPath.create(e)).length&&(n="root")))),n},mxCodec.prototype.reference=function(e){return null},mxCodec.prototype.encode=function(e){var n=null;if(null!=e&&null!=e.constructor){var t=mxCodecRegistry.getCodec(e.constructor);null!=t?n=t.encode(this,e):mxUtils.isNode(e)?n=mxClient.IS_IE?e.cloneNode(!0):this.document.importNode(e,!0):mxLog.warn("mxCodec.encode: No codec for "+mxUtils.getFunctionName(e.constructor))}return n},mxCodec.prototype.decode=function(a,b){var c=null;if(null!=a&&a.nodeType==mxConstants.NODETYPE_ELEMENT){var d=null;try{d=eval(a.nodeName)}catch(e){}try{var f=mxCodecRegistry.getCodec(d);null!=f?c=f.decode(this,a,b):(c=a.cloneNode(!0),c.removeAttribute("as"))}catch(e){mxLog.debug("Cannot decode "+a.nodeName+": "+e.message)}}return c},mxCodec.prototype.encodeCell=function(e,n,t){if(n.appendChild(this.encode(e)),null==t||t){t=e.getChildCount();for(var a=0;a<t;a++)this.encodeCell(e.getChildAt(a),n)}},mxCodec.prototype.isCellCodec=function(e){return null!=e&&"function"==typeof e.isCellCodec&&e.isCellCodec()},mxCodec.prototype.decodeCell=function(e,n){n=null==n||n;var t=null;if(null!=e&&e.nodeType==mxConstants.NODETYPE_ELEMENT){if(t=mxCodecRegistry.getCodec(e.nodeName),!this.isCellCodec(t))for(var a=e.firstChild;null!=a&&!this.isCellCodec(t);)t=mxCodecRegistry.getCodec(a.nodeName),a=a.nextSibling;this.isCellCodec(t)||(t=mxCodecRegistry.getCodec(mxCell)),t=t.decode(this,e),n&&this.insertIntoGraph(t)}return t},mxCodec.prototype.insertIntoGraph=function(e){var n=e.parent,t=e.getTerminal(!0),a=e.getTerminal(!1);e.setTerminal(null,!1),e.setTerminal(null,!0),(e.parent=null)!=n&&n.insert(e),null!=t&&t.insertEdge(e,!0),null!=a&&a.insertEdge(e,!1)},mxCodec.prototype.setAttribute=function(e,n,t){null!=n&&null!=t&&e.setAttribute(n,t)},mxObjectCodec.prototype.template=null,mxObjectCodec.prototype.exclude=null,mxObjectCodec.prototype.idrefs=null,mxObjectCodec.prototype.mapping=null,mxObjectCodec.prototype.reverse=null,mxObjectCodec.prototype.getName=function(){return mxUtils.getFunctionName(this.template.constructor)},mxObjectCodec.prototype.cloneTemplate=function(){return new this.template.constructor},mxObjectCodec.prototype.getFieldName=function(e){if(null!=e){var n=this.reverse[e];null!=n&&(e=n)}return e},mxObjectCodec.prototype.getAttributeName=function(e){if(null!=e){var n=this.mapping[e];null!=n&&(e=n)}return e},mxObjectCodec.prototype.isExcluded=function(e,n,t,a){return n==mxObjectIdentity.FIELD_NAME||0<=mxUtils.indexOf(this.exclude,n)},mxObjectCodec.prototype.isReference=function(e,n,t,a){return 0<=mxUtils.indexOf(this.idrefs,n)},mxObjectCodec.prototype.encode=function(e,n){var t=e.document.createElement(this.getName());return n=this.beforeEncode(e,n,t),this.encodeObject(e,n,t),this.afterEncode(e,n,t)},mxObjectCodec.prototype.encodeObject=function(e,n,t){for(var a in e.setAttribute(t,"id",e.getId(n)),n){var i=a,s=n[i];null!=s&&!this.isExcluded(n,i,s,!0)&&(mxUtils.isNumeric(i)&&(i=null),this.encodeValue(e,n,i,s,t))}},mxObjectCodec.prototype.encodeValue=function(e,n,t,a,i){if(null!=a){if(this.isReference(n,t,a,!0)){var s=e.getId(a);if(null==s)return void mxLog.warn("mxObjectCodec.encode: No ID for "+this.getName()+"."+t+"="+a);a=s}s=this.template[t],(null==t||e.encodeDefaults||s!=a)&&(t=this.getAttributeName(t),this.writeAttribute(e,n,t,a,i))}},mxObjectCodec.prototype.writeAttribute=function(e,n,t,a,i){"object"!=typeof a?this.writePrimitiveAttribute(e,n,t,a,i):this.writeComplexAttribute(e,n,t,a,i)},mxObjectCodec.prototype.writePrimitiveAttribute=function(e,n,t,a,i){a=this.convertValueToXml(a),null==t?(n=e.document.createElement("add"),"function"==typeof a?n.appendChild(e.document.createTextNode(a)):e.setAttribute(n,"value",a),i.appendChild(n)):"function"!=typeof a&&e.setAttribute(i,t,a)},mxObjectCodec.prototype.writeComplexAttribute=function(e,n,t,a,i){null!=(e=e.encode(a))?(null!=t&&e.setAttribute("as",t),i.appendChild(e)):mxLog.warn("mxObjectCodec.encode: No node for "+this.getName()+"."+t+": "+a)},mxObjectCodec.prototype.convertValueToXml=function(e){return void 0!==e.length||1!=e&&0!=e||(e=1==e?"1":"0"),e},mxObjectCodec.prototype.convertValueFromXml=function(e){return mxUtils.isNumeric(e)&&(e=parseFloat(e)),e},mxObjectCodec.prototype.beforeEncode=function(e,n,t){return n},mxObjectCodec.prototype.afterEncode=function(e,n,t){return t},mxObjectCodec.prototype.decode=function(e,n,t){var a=n.getAttribute("id"),i=e.objects[a];return null==i&&(i=t||this.cloneTemplate(),null!=a&&e.putObject(a,i)),n=this.beforeDecode(e,n,i),this.decodeNode(e,n,i),this.afterDecode(e,n,i)},mxObjectCodec.prototype.decodeNode=function(e,n,t){null!=n&&(this.decodeAttributes(e,n,t),this.decodeChildren(e,n,t))},mxObjectCodec.prototype.decodeAttributes=function(e,n,t){if(null!=(n=n.attributes))for(var a=0;a<n.length;a++)this.decodeAttribute(e,n[a],t)},mxObjectCodec.prototype.decodeAttribute=function(e,n,t){var a=n.nodeName;if("as"!=a&&"id"!=a){n="value"==a?n.nodeValue:this.convertValueFromXml(n.nodeValue);var i=this.getFieldName(a);if(this.isReference(t,i,n,!1)){if(null==(e=e.getObject(n)))return void mxLog.warn("mxObjectCodec.decode: No object for "+this.getName()+"."+a+"="+n);n=e}this.isExcluded(t,a,n,!1)||(t[a]=n)}},mxObjectCodec.prototype.decodeChildren=function(e,n,t){for(n=n.firstChild;null!=n;){var a=n.nextSibling;n.nodeType==mxConstants.NODETYPE_ELEMENT&&!this.processInclude(e,n,t)&&this.decodeChild(e,n,t),n=a}},mxObjectCodec.prototype.decodeChild=function(e,n,t){var a=this.getFieldName(n.getAttribute("as"));if(null==a||!this.isExcluded(t,a,n,!1)){var i=this.getFieldTemplate(t,a,n),s=null;"add"==n.nodeName?null==(s=n.getAttribute("value"))&&(s=mxUtils.eval(mxUtils.getTextContent(n))):s=e.decode(n,i),this.addObjectValue(t,a,s,i)}},mxObjectCodec.prototype.getFieldTemplate=function(e,n,t){return(e=e[n])instanceof Array&&0<e.length&&(e=null),e},mxObjectCodec.prototype.addObjectValue=function(e,n,t,a){null!=t&&t!=a&&(null!=n&&0<n.length?e[n]=t:e.push(t))},mxObjectCodec.prototype.processInclude=function(e,n,t){if("include"!=n.nodeName)return!1;if(null!=(n=n.getAttribute("name")))try{var a=mxUtils.load(n).getDocumentElement();null!=a&&e.decode(a,t)}catch(e){}return!0},mxObjectCodec.prototype.beforeDecode=function(e,n,t){return n},mxObjectCodec.prototype.afterDecode=function(e,n,t){return t},mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxCell,["children","edges","overlays","mxTransient"],["parent","source","target"]);return e.isCellCodec=function(){return!0},e.isExcluded=function(e,n,t,a){return mxObjectCodec.prototype.isExcluded.apply(this,arguments)||a&&"value"==n&&t.nodeType==mxConstants.NODETYPE_ELEMENT},e.afterEncode=function(e,n,t){if(null!=n.value&&n.value.nodeType==mxConstants.NODETYPE_ELEMENT){var a=t;(t=mxClient.IS_IE?n.value.cloneNode(!0):e.document.importNode(n.value,!0)).appendChild(a),e=a.getAttribute("id"),t.setAttribute("id",e),a.removeAttribute("id")}return t},e.beforeDecode=function(e,n,t){var a=n,i=this.getName();if(n.nodeName!=i?(null!=(a=n.getElementsByTagName(i)[0])&&a.parentNode==n?(mxUtils.removeWhitespace(a,!0),mxUtils.removeWhitespace(a,!1),a.parentNode.removeChild(a)):a=null,t.value=n.cloneNode(!0),null!=(n=t.value.getAttribute("id"))&&(t.setId(n),t.value.removeAttribute("id"))):t.setId(n.getAttribute("id")),null!=a)for(n=0;n<this.idrefs.length;n++){i=this.idrefs[n];var s=a.getAttribute(i);if(null!=s){a.removeAttribute(i);var o=e.objects[s]||e.lookup(s);null==o&&(null!=(s=e.getElementById(s))&&(o=(mxCodecRegistry.codecs[s.nodeName]||this).decode(e,s))),t[i]=o}}return a},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxGraphModel);return e.encodeObject=function(e,n,t){var a=e.document.createElement("root");e.encodeCell(n.getRoot(),a),t.appendChild(a)},e.decodeChild=function(e,n,t){"root"==n.nodeName?this.decodeRoot(e,n,t):mxObjectCodec.prototype.decodeChild.apply(this,arguments)},e.decodeRoot=function(e,n,t){var a=null;for(n=n.firstChild;null!=n;){var i=e.decodeCell(n);null!=i&&null==i.getParent()&&(a=i),n=n.nextSibling}null!=a&&t.setRoot(a)},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxRootChange,["model","previous","root"]);return e.afterEncode=function(e,n,t){return e.encodeCell(n.root,t),t},e.beforeDecode=function(e,n,t){if(null!=n.firstChild&&n.firstChild.nodeType==mxConstants.NODETYPE_ELEMENT){var a=(n=n.cloneNode(!0)).firstChild;for(t.root=e.decodeCell(a,!1),t=a.nextSibling,a.parentNode.removeChild(a),a=t;null!=a;)t=a.nextSibling,e.decodeCell(a),a.parentNode.removeChild(a),a=t}return n},e.afterDecode=function(e,n,t){return t.previous=t.root,t},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxChildChange,["model","child","previousIndex"],["parent","previous"]);return e.isReference=function(e,n,t,a){return!("child"!=n||null==e.previous&&a)||0<=mxUtils.indexOf(this.idrefs,n)},e.afterEncode=function(e,n,t){return this.isReference(n,"child",n.child,!0)?t.setAttribute("child",e.getId(n.child)):e.encodeCell(n.child,t),t},e.beforeDecode=function(e,n,t){if(null!=n.firstChild&&n.firstChild.nodeType==mxConstants.NODETYPE_ELEMENT){var a=(n=n.cloneNode(!0)).firstChild;for(t.child=e.decodeCell(a,!1),t=a.nextSibling,a.parentNode.removeChild(a),a=t;null!=a;){if(t=a.nextSibling,a.nodeType==mxConstants.NODETYPE_ELEMENT){var i=a.getAttribute("id");null==e.lookup(i)&&e.decodeCell(a)}a.parentNode.removeChild(a),a=t}}else a=n.getAttribute("child"),t.child=e.getObject(a);return n},e.afterDecode=function(e,n,t){return t.child.parent=t.previous,t.previous=t.parent,t.previousIndex=t.index,t},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxTerminalChange,["model","previous"],["cell","terminal"]);return e.afterDecode=function(e,n,t){return t.previous=t.terminal,t},e}());var mxGenericChangeCodec=function(e,a){var n=new mxObjectCodec(e,["model","previous"],["cell"]);return n.afterDecode=function(e,n,t){return mxUtils.isNode(t.cell)&&(t.cell=e.decodeCell(t.cell,!1)),t.previous=t[a],t},n};mxCodecRegistry.register(mxGenericChangeCodec(new mxValueChange,"value")),mxCodecRegistry.register(mxGenericChangeCodec(new mxStyleChange,"style")),mxCodecRegistry.register(mxGenericChangeCodec(new mxGeometryChange,"geometry")),mxCodecRegistry.register(mxGenericChangeCodec(new mxCollapseChange,"collapsed")),mxCodecRegistry.register(mxGenericChangeCodec(new mxVisibleChange,"visible")),mxCodecRegistry.register(mxGenericChangeCodec(new mxCellAttributeChange,"value")),mxCodecRegistry.register(new mxObjectCodec(new mxGraph,"graphListeners eventListeners view container cellRenderer editor selection".split(" "))),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxGraphView);return e.encode=function(e,n){return this.encodeCell(e,n,n.graph.getModel().getRoot())},e.encodeCell=function(e,n,t){var a=n.graph.getModel(),i=n.getState(t),s=a.getParent(t);if(null==s||null!=i){var o=a.getChildCount(t),r=n.graph.getCellGeometry(t),l=null;if(s==a.getRoot()?l="layer":null==s?l="graph":a.isEdge(t)?l="edge":0<o&&null!=r?l="group":a.isVertex(t)&&(l="vertex"),null!=l){var d=e.document.createElement(l);if(null!=n.graph.getLabel(t)&&(d.setAttribute("label",n.graph.getLabel(t)),n.graph.isHtmlLabel(t)&&d.setAttribute("html",!0)),null==s){var c=n.getGraphBounds();null!=c&&(d.setAttribute("x",Math.round(c.x)),d.setAttribute("y",Math.round(c.y)),d.setAttribute("width",Math.round(c.width)),d.setAttribute("height",Math.round(c.height))),d.setAttribute("scale",n.scale)}else if(null!=i&&null!=r){for(c in i.style)"function"==typeof(s=i.style[c])&&"object"==typeof s&&(s=mxStyleRegistry.getName(s)),null!=s&&"function"!=typeof s&&"object"!=typeof s&&d.setAttribute(c,s);if(null!=(s=i.absolutePoints)&&0<s.length){for(r=Math.round(s[0].x)+","+Math.round(s[0].y),c=1;c<s.length;c++)r+=" "+Math.round(s[c].x)+","+Math.round(s[c].y);d.setAttribute("points",r)}else d.setAttribute("x",Math.round(i.x)),d.setAttribute("y",Math.round(i.y)),d.setAttribute("width",Math.round(i.width)),d.setAttribute("height",Math.round(i.height));null!=(c=i.absoluteOffset)&&(0!=c.x&&d.setAttribute("dx",Math.round(c.x)),0!=c.y&&d.setAttribute("dy",Math.round(c.y)))}for(c=0;c<o;c++)null!=(i=this.encodeCell(e,n,a.getChildAt(t,c)))&&d.appendChild(i)}}return d},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxStylesheet);return e.encode=function(e,n){var t,a=e.document.createElement(this.getName());for(t in n.styles){var i=n.styles[t],s=e.document.createElement("add");if(null!=t){for(var o in s.setAttribute("as",t),i){var r=this.getStringValue(o,i[o]);if(null!=r){var l=e.document.createElement("add");l.setAttribute("value",r),l.setAttribute("as",o),s.appendChild(l)}}0<s.childNodes.length&&a.appendChild(s)}}return a},e.getStringValue=function(e,n){var t=typeof n;return"function"==t?n=mxStyleRegistry.getName(style[j]):"object"==t&&(n=null),n},e.decode=function(e,n,t){t=t||new this.template.constructor;var a=n.getAttribute("id");for(null!=a&&(e.objects[a]=t),n=n.firstChild;null!=n;){if(!this.processInclude(e,n,t)&&"add"==n.nodeName&&null!=(a=n.getAttribute("as"))){var i=n.getAttribute("extend"),s=null!=i?mxUtils.clone(t.styles[i]):null;for(null==s&&(null!=i&&mxLog.warn("mxStylesheetCodec.decode: stylesheet "+i+" not found to extend"),s={}),i=n.firstChild;null!=i;){if(i.nodeType==mxConstants.NODETYPE_ELEMENT){var o=i.getAttribute("as");if("add"==i.nodeName){var r=mxUtils.getTextContent(i),l=null;null!=r&&0<r.length?l=mxUtils.eval(r):(l=i.getAttribute("value"),mxUtils.isNumeric(l)&&(l=parseFloat(l))),null!=l&&(s[o]=l)}else"remove"==i.nodeName&&delete s[o]}i=i.nextSibling}t.putCellStyle(a,s)}n=n.nextSibling}return t},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxDefaultKeyHandler);return e.encode=function(e,n){return null},e.decode=function(e,n,t){if(null!=t)for(n=n.firstChild;null!=n;){if(!this.processInclude(e,n,t)&&"add"==n.nodeName){var a=n.getAttribute("as"),i=n.getAttribute("action"),s=n.getAttribute("control");t.bindAction(a,i,s)}n=n.nextSibling}return t},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxDefaultToolbar);return e.encode=function(e,n){return null},e.decode=function(e,n,t){if(null!=t){var a=t.editor;for(n=n.firstChild;null!=n;){if(n.nodeType==mxConstants.NODETYPE_ELEMENT&&!this.processInclude(e,n,t))if("separator"==n.nodeName)t.addSeparator();else if("br"==n.nodeName)t.toolbar.addBreak();else if("hr"==n.nodeName)t.toolbar.addLine();else if("add"==n.nodeName){var i=n.getAttribute("as"),s=(i=mxResources.get(i)||i,n.getAttribute("icon")),o=n.getAttribute("pressedIcon"),r=n.getAttribute("action"),l=n.getAttribute("mode"),d=n.getAttribute("template"),c="0"!=n.getAttribute("toggle"),m=mxUtils.getTextContent(n),u=null;if(null!=r)u=t.addItem(i,s,r,o);else if(null!=l){var p=mxUtils.eval(m);u=t.addMode(i,s,l,o,p)}else if(null!=d||null!=m&&0<m.length)u=a.templates[d],d=n.getAttribute("style"),null!=u&&null!=d&&(u=u.clone()).setStyle(d),(d=null)!=m&&0<m.length&&(d=mxUtils.eval(m)),u=t.addPrototype(i,s,u,o,d,c);else if(0<(o=mxUtils.getChildNodes(n)).length)if(null==s)for(d=t.addActionCombo(i),i=0;i<o.length;i++)"separator"==(c=o[i]).nodeName?t.addOption(d,"---"):"add"==c.nodeName&&(s=c.getAttribute("as"),c=c.getAttribute("action"),t.addActionOption(d,s,c));else{var g=null,v=t.addPrototype(i,s,function(){if(null==(e=a.templates[g.value]))return mxLog.warn("Template "+e+" not found"),null;var e=e.clone(),n=g.options[g.selectedIndex].cellStyle;return null!=n&&e.setStyle(n),e},null,null,c);g=t.addCombo();for(mxEvent.addListener(g,"change",function(){t.toolbar.selectMode(v,function(e){return e=mxUtils.convertPoint(a.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e)),a.addVertex(null,p(),e.x,e.y)}),t.toolbar.noReset=!1}),i=0;i<o.length;i++)"separator"==(c=o[i]).nodeName?t.addOption(g,"---"):"add"==c.nodeName&&(s=c.getAttribute("as"),m=c.getAttribute("template"),t.addOption(g,s,m||d).cellStyle=c.getAttribute("style"))}null!=u&&(null!=(d=n.getAttribute("id"))&&0<d.length&&u.setAttribute("id",d))}n=n.nextSibling}}return t},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxDefaultPopupMenu);return e.encode=function(e,n){return null},e.decode=function(e,n,t){var a=n.getElementsByTagName("include")[0];return null!=a?this.processInclude(e,a,t):null!=t&&(t.config=n),t},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxEditor,"modified lastSnapshot ignoredChanges undoManager graphContainer toolbarContainer".split(" "));return e.afterDecode=function(e,n,t){return null!=(e=n.getAttribute("defaultEdge"))&&(n.removeAttribute("defaultEdge"),t.defaultEdge=t.templates[e]),null!=(e=n.getAttribute("defaultGroup"))&&(n.removeAttribute("defaultGroup"),t.defaultGroup=t.templates[e]),t},e.decodeChild=function(e,n,t){if("Array"==n.nodeName){if("templates"==n.getAttribute("as"))return void this.decodeTemplates(e,n,t)}else if("ui"==n.nodeName)return void this.decodeUi(e,n,t);mxObjectCodec.prototype.decodeChild.apply(this,arguments)},e.decodeUi=function(e,n,t){for(e=n.firstChild;null!=e;){if("add"==e.nodeName){n=e.getAttribute("as");var a=e.getAttribute("element"),i=e.getAttribute("style"),s=null;if(null!=a)null!=(s=document.getElementById(a))&&null!=i&&(s.style.cssText+=";"+i);else{a=parseInt(e.getAttribute("x"));var o=parseInt(e.getAttribute("y")),r=e.getAttribute("width"),l=e.getAttribute("height");(s=document.createElement("div")).style.cssText=i,new mxWindow(mxResources.get(n)||n,s,a,o,r,l,!1,!0).setVisible(!0)}"graph"==n?t.setGraphContainer(s):"toolbar"==n?t.setToolbarContainer(s):"title"==n?t.setTitleContainer(s):"status"==n?t.setStatusContainer(s):"map"==n&&t.setMapContainer(s)}else"resource"==e.nodeName?mxResources.add(e.getAttribute("basename")):"stylesheet"==e.nodeName&&mxClient.link("stylesheet",e.getAttribute("name"));e=e.nextSibling}},e.decodeTemplates=function(e,n,t){null==t.templates&&(t.templates=[]),n=mxUtils.getChildNodes(n);for(var a=0;a<n.length;a++){for(var i=n[a].getAttribute("as"),s=n[a].firstChild;null!=s&&1!=s.nodeType;)s=s.nextSibling;null!=s&&(t.templates[i]=e.decodeCell(s))}},e}()),EditorUi=function(e,n,t){this.projectDesignController=e,this.editor=n||new Editor,this.container=t||document.body;var a=n.graph,i=this;CRUD_PERMISSIONS=this.projectDesignController.crudPermissions;var s=mxUtils.bind(this,function(e){return null==e&&(e=window.event),!!this.isEditingEnabled()&&a.isEditing()});this.container.style.overflow="hidden",(new Image).src=mxPopupMenu.prototype.submenuImage,null!=mxConnectionHandler.prototype.connectImage&&((new Image).src=mxConnectionHandler.prototype.connectImage.src),this.actions=new Actions(this),this.menus=new Menus(this),this.createDivs(),this.refresh(),this.createUi(),this.container==document.body&&(this.menubarContainer.onselectstart=s,this.menubarContainer.onmousedown=s,this.toolbarContainer.onselectstart=s,this.toolbarContainer.onmousedown=s,this.diagramContainer.onselectstart=s,this.diagramContainer.onmousedown=s,this.sidebarContainer.onselectstart=s,this.sidebarContainer.onmousedown=s,this.footerContainer.onselectstart=s,this.footerContainer.onmousedown=s),mxClient.IS_IE&&(void 0===document.documentMode||document.documentMode<9)?(mxEvent.addListener(this.diagramContainer,"contextmenu",s),mxEvent.addListener(this.sidebarContainer,"contextmenu",s)):(this.diagramContainer.oncontextmenu=s,this.sidebarContainer.oncontextmenu=s),a.init(this.diagramContainer),a.refresh(),a.setEnabled(this.isEditingEnabled()),a.container.setAttribute("tabindex","0"),a.container.style.cursor="default",a.container.style.backgroundImage="url("+n.gridImage+")",a.container.style.backgroundPosition="-1px -1px",a.container.focus();var o=a.fireMouseEvent;a.fireMouseEvent=function(e,n,t){e==mxEvent.MOUSE_DOWN&&this.container.focus(),o.apply(this,arguments)},this.createMultiplicities(a.multiplicities,["start","finally","end"],[[1,1],[1,1],[0,0]],[[0,0],[0,0],[1,"n"]]),this.createMultiplicities(a.multiplicities,["answer","hangup","dial","ext_dial","queue","voicemail","callback"],[[1,1],[0,0],[0,1],[0,1],[0,1],[1,1],[0,1]],[[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"]]),this.createMultiplicities(a.multiplicities,["login","pause","unpause","logout"],[[1,2],[1,2],[1,2],[1,2]],[[1,"n"],[1,"n"],[1,"n"],[1,"n"]]),this.createMultiplicities(a.multiplicities,["set","math"],[[1,1],[1,1]],[[1,"n"],[1,"n"]]),this.createMultiplicities(a.multiplicities,["background","playback","menu","saydigits","saynumber","sayphonetic","google_cloud_tts","tts","ispeechtts","awspolly","getdigits","getsecretdigits","lumenvoxtts","sestektts","mrcpsynth"],[[1,"n"],[1,1],[1,"n"],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,"n"],[1,"n"],[1,1],[1,1],[1,1]],[[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"]]),this.createMultiplicities(a.multiplicities,["record"],[[1,1]],[[1,"n"]]),this.createMultiplicities(a.multiplicities,["database","ispeechasr","sendSMS","sendMail","sendFax","googleasr","lumenvoxasr","tildeasr","dialogflow","dialogflowV2","awslex","sesteknda","sestekasr","restapi","mrcprecog"],[[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1]],[[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"]]),this.createMultiplicities(a.multiplicities,["gotoc","gotoif","gotoiftime","vswitch"],[[0,0],[1,2],[1,2],[1,"n"]],[[1,"n"],[1,"n"],[1,"n"],[1,"n"]]),this.createMultiplicities(a.multiplicities,["queuelog","goal"],[[1,1],[1,1]],[[1,"n"],[1,"n"]]),this.createMultiplicities(a.multiplicities,["noop","system","agi","subproject","custom_app"],[[1,1],[1,1],[0,1],[0,1],[0,1]],[[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"]]),a.dblClick=function(e,t){var n=new mxEventObject(mxEvent.DOUBLE_CLICK,"event",e,"cell",t);this.fireEvent(n),mxEvent.isConsumed(e)||n.isConsumed()||(this.getModel().isEdge(t)?0<=["background","gotoif","gotoiftime","menu","getdigits","getsecretdigits","vswitch","login","pause","unpause","logout"].indexOf(t.source.value.tagName)&&this.startEditingAtCell(t):this.getModel().isVertex(t)&&i.projectDesignController.openDialog(t.getValue(),function(e){for(var n=0;n<e.length;n+=1)t.setAttribute(e[n].name,e[n].value);a.refresh(t)}),n.consume())},a.panningHandler.autoExpand=!0,a.panningHandler.factoryMethod=mxUtils.bind(this,function(e,n,t){this.isEditingEnabled()&&this.menus.createPopupMenu(e,n,t)}),n.outline.init(this.outlineContainer),mxEvent.addGestureListeners(document,mxUtils.bind(this,function(e){a.panningHandler.hideMenu()})),mxClient.IS_TOUCH&&(mxEvent.addListener(a.container,"gesturechange",mxUtils.bind(this,function(e){a.view.getDrawPane().setAttribute("transform","scale("+e.scale+")"),a.view.getOverlayPane().style.visibility="hidden"})),mxEvent.addListener(a.container,"gestureend",mxUtils.bind(this,function(e){a.view.getDrawPane().removeAttribute("transform"),a.zoomToCenter=!0,a.zoom(e.scale),a.view.getOverlayPane().style.visibility="visible"})));var r=this.isEditingEnabled()?this.createKeyHandler(n):null;this.getKeyHandler=function(){return r},mxEvent.addListener(window,"resize",mxUtils.bind(this,function(){this.refresh(),a.sizeDidChange(),this.editor.outline.update(!1),this.editor.outline.outline.sizeDidChange()})),this.init(),this.open(),this.refresh()},EditorUi.prototype.splitSize=mxClient.IS_TOUCH?16:8,EditorUi.prototype.menubarHeight=33,EditorUi.prototype.toolbarHeight=36,EditorUi.prototype.footerHeight=0,EditorUi.prototype.hsplitPosition=204,EditorUi.prototype.vsplitPosition=190,EditorUi.prototype.init=function(){this.addUndoListener(),this.addSelectionListener();var e=this.actions.get("paste"),n=function(){e.setEnabled(!mxClipboard.isEmpty())},t=mxClipboard.cut;mxClipboard.cut=function(){t.apply(this,arguments),n()};var a=mxClipboard.copy;mxClipboard.copy=function(){a.apply(this,arguments),n()}},EditorUi.prototype.isEditingEnabled=function(){return!!CRUD_PERMISSIONS.canEdit},EditorUi.prototype.exportXML=function(e){var n=window.document.createElement("a");n.href="data:attachment/text;charset=utf-8,"+encodeURIComponent(e),n.download=this.editor.filename+".xml",n.target="_self",n.click()},EditorUi.prototype.open=function(){try{null!=window.opener&&null!=window.opener.openFile&&window.opener.openFile.setConsumer(mxUtils.bind(this,function(e,n){try{var t=mxUtils.parseXml(e);this.editor.setGraphXml(t.documentElement),this.editor.modified=!1,this.editor.undoManager.clear(),null!=n&&(this.editor.filename=n)}catch(e){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+e.message)}}))}catch(e){}},EditorUi.prototype.openString=function(e,n,t){try{var a=mxUtils.parseXml(e);this.editor.setGraphXml(a.documentElement),this.editor.modified=!1,this.editor.undoManager.clear(),null!=n&&(this.editor.filename=n),null!=t&&(this.editor.data=t)}catch(e){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+e.message)}},EditorUi.prototype.validate=function(e,n){for(var t=this.editor.graph,a=(e=null!=e?e:t.model.getRoot(),n=null!=n?n:{},!0),i=t.model.getChildCount(e),s=0;s<i;s++){var o=t.model.getChildAt(e,s),r=n;t.isValidRoot(o)&&(r={}),null!=(r=this.validate(o,r))?t.setCellWarning(o,r.replace(/\n/g,"<br>")):t.setCellWarning(o,null),a=a&&null==r}if(i="",t.model.isVertex(e))switch(e.value.nodeName){case"start":i=this.validateBlock("start")?"":"Only one Start block is allowed\n";break;case"finally":i=this.validateBlock("finally")?"":"Only one Finally block is allowed\n";break;case"playback":i=0<e.value.getAttribute("file_id")?"":mxResources.get("noAudioSelected")+"\n";break;case"answer":i=0<=e.value.getAttribute("timeout")?"":mxResources.get("invalidTimeout")+"\n";break;case"menu":i=0<e.value.getAttribute("file_id")?"":mxResources.get("noAudioSelected")+"\n",i+=0<e.value.getAttribute("digit")?"":mxResources.get("wrongMaxDigit")+"\n",i+=0<=e.value.getAttribute("response")?"":mxResources.get("invalidTimeout")+"\n",i+=0<=e.value.getAttribute("retry")?"":mxResources.get("invalidRetry")+"\n";break;case"getdigits":i=0<e.value.getAttribute("file_id")?"":mxResources.get("noAudioSelected")+"\n",i+=0<e.value.getAttribute("variable_id")?"":mxResources.get("noVariableSelected")+"\n",i+=0<e.value.getAttribute("mindigit")?"":mxResources.get("wrongMinDigit")+"\n",i+=0<e.value.getAttribute("maxdigit")?"":mxResources.get("wrongMaxDigit")+"\n",i+=0<=e.value.getAttribute("retry")?"":mxResources.get("invalidRetry")+"\n";break;case"getsecretdigits":i=0<e.value.getAttribute("file_id")?"":mxResources.get("noAudioSelected")+"\n",i+=0<e.value.getAttribute("variable_id")?"":mxResources.get("noVariableSelected")+"\n",i+=0<e.value.getAttribute("mindigit")?"":mxResources.get("wrongMinDigit")+"\n",i+=0<e.value.getAttribute("maxdigit")?"":mxResources.get("wrongMaxDigit")+"\n",i+=0<=e.value.getAttribute("hiddendigitsnum")?"":mxResources.get("wrongHiddenDigitsnum")+"\n",i+=0<=e.value.getAttribute("retry")?"":mxResources.get("invalidRetry")+"\n";break;case"vswitch":i=0<e.value.getAttribute("variable_id")?"":mxResources.get("noVariableSelected")+"\n";break;case"database":i=0<e.value.getAttribute("odbc_id")?"":mxResources.get("noDatabaseSelected")+"\n",i+=""!==e.value.getAttribute("query")?"":mxResources.get("missingQuery")+"\n";break;case"set":case"math":i=0<e.value.getAttribute("variable_id")?"":mxResources.get("noVariableSelected")+"\n";break;case"gotoc":i=""!==e.value.getAttribute("context")?"":mxResources.get("noContextSelected")+"\n",i+=""!==e.value.getAttribute("extension")?"":mxResources.get("noExtensionSelected")+"\n",i+=1<=e.value.getAttribute("priority")?"":mxResources.get("invalidPriority")+"\n";break;case"system":case"agi":i=""!==e.value.getAttribute("command")?"":mxResources.get("noCommandSelected")+"\n";break;case"gotoif":i=""!==e.value.getAttribute("condition")?"":mxResources.get("noConditionSelected")+"\n";break;case"saydigits":i=""!==e.value.getAttribute("digits")?"":mxResources.get("noDigitsSelected")+"\n";break;case"saynumber":i=""!==e.value.getAttribute("number")?"":mxResources.get("noNumberSelected")+"\n";break;case"sayphonetic":i=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n";break;case"record":i=""!==e.value.getAttribute("file")?"":mxResources.get("noFileSelected")+"\n",i+=-1<=e.value.getAttribute("timeout")?"":mxResources.get("invalidTimeout")+"\n";break;case"goal":i=""!==e.value.getAttribute("goalname")?"":mxResources.get("noGoalSelected")+"\n";break;case"ext_dial":i="-1"!==e.value.getAttribute("trunk_name")?"":mxResources.get("noTrunkSelected")+"\n",i+=""!==e.value.getAttribute("phone")?"":mxResources.get("noIdentifierSelected")+"\n",i+=0<=e.value.getAttribute("timeout")?"":mxResources.get("invalidTimeout")+"\n";break;case"dial":i=0<e.value.getAttribute("sip_id")?"":mxResources.get("noIdentifierSelected")+"\n",i+=0<=e.value.getAttribute("timeout")?"":mxResources.get("invalidTimeout")+"\n";break;case"queue":i="-1"!==e.value.getAttribute("queue_id")?"":mxResources.get("noQueueSelected")+"\n",i+=0<=e.value.getAttribute("timeout")?"":mxResources.get("invalidTimeout")+"\n";break;case"callback":i="-1"!==e.value.getAttribute("list_id")?"":mxResources.get("noListSelected")+"\n",i+=""!==e.value.getAttribute("name")?"":mxResources.get("noFirstNameSelected")+"\n",i+=""!==e.value.getAttribute("phone")?"":mxResources.get("noPhoneSelected")+"\n",i+=""!==e.value.getAttribute("delay")?"":mxResources.get("invalidDelay")+"\n";break;case"gotoiftime":i=0<e.value.getAttribute("interval_id")?"":mxResources.get("noIntervalSelected")+"\n";break;case"voicemail":i=""!==e.value.getAttribute("mailbox")?"":mxResources.get("noBoxNumberSelected")+"\n";break;case"subproject":i=0<e.value.getAttribute("project_id")?"":mxResources.get("noProjectSelected")+"\n";break;case"sendSMS":i=0<e.value.getAttribute("sms_account_id")?"":mxResources.get("noAccountSelected")+"\n",i+=""!==e.value.getAttribute("to")?"":mxResources.get("noRecipientSelected")+"\n",i+=""!==e.value.getAttribute("sms_text")?"":mxResources.get("noTextSelected")+"\n";break;case"sendMail":i=0<e.value.getAttribute("account_id")?"":mxResources.get("noAccountSelected")+"\n",i+=""!==e.value.getAttribute("to")?"":mxResources.get("noRecipientSelected")+"\n";break;case"sendFax":i=0<e.value.getAttribute("account_id")?"":mxResources.get("noAccountSelected")+"\n",i+=""!==e.value.getAttribute("to")?"":mxResources.get("noRecipientSelected")+"\n",i+=""!==e.value.getAttribute("attachment_path")?"":mxResources.get("noAttachmentSelected")+"\n";break;case"google_cloud_tts":i=""!==e.value.getAttribute("apiKey")?"":mxResources.get("noApiKeySelected")+"\n",i+=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n";break;case"tts":i=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n";break;case"awspolly":i=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n",i+=""!==e.value.getAttribute("aws_access_key_id")?"":mxResources.get("noAccessKeySelected")+"\n",i+=""!==e.value.getAttribute("aws_secret_access_key")?"":mxResources.get("noSecretAccessKeySelected")+"\n";break;case"awslex":i=""!==e.value.getAttribute("aws_bot_name")?"":mxResources.get("noNameSelected")+"\n",i+=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n",i+=""!==e.value.getAttribute("aws_access_key_id")?"":mxResources.get("noAccessKeySelected")+"\n",i+=""!==e.value.getAttribute("aws_secret_access_key")?"":mxResources.get("noSecretAccessKeySelected")+"\n";break;case"ispeechtts":i=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n",i+=""!==e.value.getAttribute("key")?"":mxResources.get("noKeySelected")+"\n",i+=-10<=e.value.getAttribute("speed")&&e.value.getAttribute("speed")<=10?"":mxResources.get("invalidSpeed")+"\n";break;case"lumenvoxtts":case"sestektts":i=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n";break;case"lumenvoxasr":case"sestekasr":i=""!==e.value.getAttribute("grammar")?"":mxResources.get("noGrammarSelected")+"\n";break;case"ispeechasr":case"googleasr":i=""!==e.value.getAttribute("key")?"":mxResources.get("noKeySelected")+"\n",i+=-1<=e.value.getAttribute("timeout")?"":mxResources.get("invalidTimeout")+"\n";break;case"tildeasr":i=""!==e.value.getAttribute("appid")?"":mxResources.get("noAppIdInserted")+"\n",i+=""!==e.value.getAttribute("appsecret")?"":mxResources.get("noAppSecretInserted")+"\n",i+=""!==e.value.getAttribute("uri")?"":mxResources.get("noUrlInserted")+"\n";break;case"custom_app":i=""!==e.value.getAttribute("application")?"":mxResources.get("noApplicationSelected")+"\n";break;case"login":case"pause":case"unpause":case"logout":i=""!==e.value.getAttribute("findBy")?"":mxResources.get("noFindBySelected")+"\n";break;case"sesteknda":i=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n",i+=""!==e.value.getAttribute("ndauth_url")?"":mxResources.get("noUrlInserted")+"\n",i+=""!==e.value.getAttribute("ndassistant_url")?"":mxResources.get("noUrlInserted")+"\n",i+=""!==e.value.getAttribute("username")?"":mxResources.get("noUsernameSelected")+"\n",i+=""!==e.value.getAttribute("password")?"":mxResources.get("noPasswordSelected")+"\n";break;case"restapi":i=""!==e.value.getAttribute("url")?"":mxResources.get("noUrlSelected")+"\n",i+=""!==e.value.getAttribute("method")?"":mxResources.get("noMethodSelected")+"\n";case"mrcpsynth":i=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n";break;case"mrcprecog":i=""!==e.value.getAttribute("grammar")?"":mxResources.get("noGrammarSelected")+"\n";break;case"dialogflow":i=""!==e.value.getAttribute("key")?"":mxResources.get("noKeySelected")+"\n",i+=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n",i+=""!==e.value.getAttribute("dialogflow_language")?"":mxResources.get("noDialogflowLanguageSelected")+"\n";break;case"dialogflowV2":i=""!==e.value.getAttribute("dialogflowV2_project_id")?"":mxResources.get("noDialogflowProjectSelected")+"\n",i+=""!==e.value.getAttribute("client_email")?"":mxResources.get("noClientEmailSelected")+"\n",i+=""!==e.value.getAttribute("private_key")?"":mxResources.get("noPrivateKeySelected")+"\n",i+=""!==e.value.getAttribute("dialogflowV2_language")?"":mxResources.get("noDialogflowLanguageSelected")+"\n",i+=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n"}if(t.model.isEdge(e))switch(t.model.getCell(e.source.getId()).value.nodeName){case"background":case"menu":if(void 0!==e.getValue()){var l=/^[0-9]+$|^[-]{1}$|^[i]{1}$|^[t]{1}$|^[*]{1}$|^[#]{1}$/;String(e.getValue()).split(",").forEach(function(e){i+=l.test(e)?"":mxResources.get("numberOrAll")+"\n"})}else i=i+mxResources.get("numberOrAll")+"\n";break;case"getsecretdigits":case"getdigits":if(void 0!==e.getValue())i+=(l=/^(x|i|-)$/).test(String(e.getValue()))?"":mxResources.get("numberOrInvalidOrDefault")+"\n";else i=i+mxResources.get("numberOrInvalidOrDefault")+"\n";break;case"gotoif":case"gotoiftime":if(void 0!==e.getValue())i+=(l=/^(true){1}$|^(false){1}$/).test(String(e.getValue()))?"":mxResources.get("trueOrFalse")+"\n";else i=i+mxResources.get("trueOrFalse")+"\n";break;case"login":case"pause":case"unpause":case"logout":if(void 0!==e.getValue())i+=(l=/^(success){1}$|^(failure){1}$/).test(String(e.getValue()))?"":mxResources.get("successOrFailure")+"\n";else i=i+mxResources.get("successOrFailure")+"\n"}return t.isCellCollapsed(e)&&!a&&(i+=(mxResources.get(t.containsValidationErrorsResource)||t.containsValidationErrorsResource)+"\n"),i=t.model.isEdge(e)?i+(t.getEdgeValidationError(e,t.model.getTerminal(e,!0),t.model.getTerminal(e,!1))||""):i+(t.getCellValidationError(e)||""),null!=(s=t.validateCell(e,n))&&(i+=s),null==t.model.getParent(e)&&t.view.validate(),0<i.length||!a?i:null},EditorUi.prototype.validateBlock=function(n){var t=this.editor.graph,e=t.getDefaultParent(),a=0;return e.children.forEach(function(e){t.model.isVertex(e)&&e.value.nodeName==n&&a++}),!(1<a)},EditorUi.prototype.getUrl=function(e){var n=null!=e?e:window.location.pathname,t=0<n.indexOf("?")?1:0;for(var a in urlParams)n+=0==t?"?":"&",n+=a+"="+urlParams[a],t++;return n},EditorUi.prototype.addUndoListener=function(){var e=this.actions.get("undo"),n=this.actions.get("redo"),t=this.editor.undoManager,a=function(){e.setEnabled(t.canUndo()),n.setEnabled(t.canRedo())};t.addListener(mxEvent.ADD,a),t.addListener(mxEvent.UNDO,a),t.addListener(mxEvent.REDO,a),t.addListener(mxEvent.CLEAR,a),a()},EditorUi.prototype.addSelectionListener=function(){var e=mxUtils.bind(this,function(){var e=this.editor.graph,n=!e.isSelectionEmpty(),t=!1,a=!1,i=e.getSelectionCells();if(null!=i)for(var s=0;s<i.length;s++){var o=i[s];if(e.getModel().isEdge(o)&&(a=!0),e.getModel().isVertex(o)&&(t=!0),a&&t)break}var r=["cut","copy","delete","duplicate","bold","italic","style","underline","toFront","toBack","dashed","rounded","shadow","tilt","autosize"];for(s=0;s<r.length;s++)this.actions.get(r[s]).setEnabled(n);this.actions.get("curved").setEnabled(a),this.actions.get("rotation").setEnabled(t),this.actions.get("wordWrap").setEnabled(t),this.actions.get("group").setEnabled(1<e.getSelectionCount()),this.actions.get("ungroup").setEnabled(1==e.getSelectionCount()&&0<e.getModel().getChildCount(e.getSelectionCell()));var l=t&&1==e.getSelectionCount();this.actions.get("removeFromGroup").setEnabled(l&&e.getModel().isVertex(e.getModel().getParent(e.getSelectionCell())));var d=["fontFamily","fontSize","alignment","position","text","format","arrange","linewidth","spacing"];for(s=0;s<d.length;s++)this.menus.get(d[s]).setEnabled(n);d=["line","lineend","linestart"];for(s=0;s<d.length;s++)this.menus.get(d[s]).setEnabled(a);this.actions.get("setAsDefaultEdge").setEnabled(a),this.menus.get("align").setEnabled(1<e.getSelectionCount()),this.menus.get("direction").setEnabled(t||a&&e.isLoop(e.view.getState(e.getSelectionCell()))),this.menus.get("navigation").setEnabled(e.foldingEnabled&&(null!=e.view.currentRoot||1==e.getSelectionCount()&&e.isValidRoot(e.getSelectionCell()))),this.actions.get("home").setEnabled(null!=e.view.currentRoot),this.actions.get("exitGroup").setEnabled(null!=e.view.currentRoot);var c=1==e.getSelectionCount()&&e.isValidRoot(e.getSelectionCell());this.actions.get("enterGroup").setEnabled(c),this.actions.get("expand").setEnabled(c),this.actions.get("collapse").setEnabled(c),this.actions.get("editLink").setEnabled(1==e.getSelectionCount()),this.actions.get("openLink").setEnabled(1==e.getSelectionCount()&&null!=e.getLinkForCell(e.getSelectionCell()))});this.editor.graph.getSelectionModel().addListener(mxEvent.CHANGE,e),e()},EditorUi.prototype.refresh=function(){var e=mxClient.IS_IE&&(null==document.documentMode||5==document.documentMode),n=this.container.clientWidth+390,t=this.container.clientHeight+190;this.container==document.body&&(n=document.body.clientWidth||document.documentElement.clientWidth,t=e&&document.body.clientHeight||document.documentElement.clientHeight);var a=Math.max(0,Math.min(this.hsplitPosition,n-this.splitSize-20)),i=Math.max(0,Math.min(this.vsplitPosition,t-this.menubarHeight-this.toolbarHeight-this.splitSize-1));this.menubarContainer.style.height=this.menubarHeight+"px",this.toolbarContainer.style.top=this.menubarHeight+"px",this.toolbarContainer.style.height=this.toolbarHeight+"px";var s=this.menubarHeight+this.toolbarHeight;if(mxClient.IS_QUIRKS||(s+=1),this.sidebarContainer.style.top=s+"px",this.sidebarContainer.style.width=a+"px",this.outlineContainer.style.width=a+"px",this.outlineContainer.style.height=i+"px",this.diagramContainer.style.left=this.isEditingEnabled()?a+this.splitSize+"px":"0px",this.diagramContainer.style.top=this.sidebarContainer.style.top,this.hsplit.style.top=this.sidebarContainer.style.top,this.hsplit.style.bottom=this.outlineContainer.style.bottom,this.hsplit.style.left=a+"px",this.vsplit.style.width=this.sidebarContainer.style.width,this.vsplit.style.bottom=i+this.footerHeight+"px",e){this.menubarContainer.style.width=n+"px",this.toolbarContainer.style.width=this.menubarContainer.style.width;var o=t-i-this.splitSize-this.menubarHeight-this.toolbarHeight;this.sidebarContainer.style.height=o+"px",this.diagramContainer.style.width=n-a-this.splitSize+"px";var r=t-this.menubarHeight-this.toolbarHeight;this.diagramContainer.style.height=r+"px",this.hsplit.style.height=r+"px"}else this.sidebarContainer.style.bottom=i+this.splitSize+"px",this.diagramContainer.style.bottom=this.outlineContainer.style.bottom},EditorUi.prototype.createDivs=function(){this.menubarContainer=this.createDiv("geMenubarContainer"),this.toolbarContainer=this.createDiv("geToolbarContainer"),this.sidebarContainer=this.createDiv("geSidebarContainer"),this.outlineContainer=this.createDiv("geOutlineContainer"),this.diagramContainer=this.createDiv("geDiagramContainer"),this.footerContainer=this.createDiv("geFooterContainer"),this.hsplit=this.createDiv("geHsplit"),this.vsplit=this.createDiv("geVsplit"),this.menubarContainer.style.top="0px",this.menubarContainer.style.left="0px",this.menubarContainer.style.right="0px",this.toolbarContainer.style.left="0px",this.toolbarContainer.style.right="0px",this.sidebarContainer.style.left="0px",this.outlineContainer.style.bottom="0px",this.outlineContainer.style.left="0px",this.diagramContainer.style.overflow="scroll",this.diagramContainer.style.right="0px",this.footerContainer.style.left="0px",this.footerContainer.style.right="0px",this.footerContainer.style.bottom="0px",this.vsplit.style.left="0px",this.vsplit.style.height=this.splitSize+"px",this.hsplit.style.width=this.splitSize+"px"},EditorUi.prototype.createUi=function(){this.menubar=this.menus.createMenubar(this.createDiv("geMenubar")),this.menubarContainer.appendChild(this.menubar.container),this.toolbar=this.createToolbar(this.createDiv("geToolbar")),this.toolbarContainer.appendChild(this.toolbar.container),this.sidebar=this.createSidebar(this.sidebarContainer),this.footerContainer.appendChild(this.createFooter()),this.statusContainer=this.createStatusContainer(),this.editor.addListener("statusChanged",mxUtils.bind(this,function(){this.setStatusText(this.editor.getStatus())})),this.setStatusText(this.editor.getStatus()),this.menubar.container.appendChild(this.statusContainer),this.isEditingEnabled()&&(this.container.appendChild(this.sidebarContainer),this.container.appendChild(this.hsplit),this.container.appendChild(this.vsplit)),this.container.appendChild(this.diagramContainer),this.container.appendChild(this.menubarContainer),this.container.appendChild(this.toolbarContainer),this.container.appendChild(this.outlineContainer),this.container.appendChild(this.footerContainer),this.addSplitHandler(this.hsplit,!0,0,mxUtils.bind(this,function(e){this.hsplitPosition=e,this.refresh(),this.editor.graph.sizeDidChange(),this.editor.outline.update(!1),this.editor.outline.outline.sizeDidChange()})),this.addSplitHandler(this.vsplit,!1,this.footerHeight,mxUtils.bind(this,function(e){this.vsplitPosition=e,this.refresh(),this.editor.outline.update(!1),this.editor.outline.outline.sizeDidChange()}))},EditorUi.prototype.createStatusContainer=function(){var e=document.createElement("a");return e.className="geItem geStatus",e},EditorUi.prototype.createStatusContainer=function(){var e=document.createElement("a");return e.className="geItem geStatus",e},EditorUi.prototype.setStatusText=function(e){this.statusContainer.innerHTML=e},EditorUi.prototype.createToolbar=function(e){return new Toolbar(this,e)},EditorUi.prototype.createSidebar=function(e){return new Sidebar(this,e)},EditorUi.prototype.createFooter=function(){return this.createDiv("geFooter")},EditorUi.prototype.createDiv=function(e){var n=document.createElement("div");return n.className=e,n},EditorUi.prototype.createHeader=function(e){return document.createElement(e)},EditorUi.prototype.createForm=function(e){var n=document.createElement("form");return n.className=e,n},EditorUi.prototype.addSplitHandler=function(n,t,a,i){var s=null,o=null;function r(e){if(null!=s){var n=new mxPoint(mxEvent.getClientX(e),mxEvent.getClientY(e));i(Math.max(0,o+(t?n.x-s.x:s.y-n.y)-a)),mxEvent.consume(e)}}function e(e){r(e),o=s=null}mxEvent.addGestureListeners(n,function(e){s=new mxPoint(mxEvent.getClientX(e),mxEvent.getClientY(e)),o=parseInt(t?n.style.left:n.style.bottom),mxEvent.consume(e)}),mxEvent.addListener(document,"mousemove",r),mxEvent.addListener(document,"touchmove",r),mxEvent.addListener(document,"mouseup",e),mxEvent.addListener(document,"touchend",e)},EditorUi.prototype.executeLayout=function(e,n,t){var a=this.editor.graph,i=a.getSelectionCell();n=null!=this.animate?this.animate:n,a.getModel().beginUpdate();try{e.execute(a.getDefaultParent(),i)}catch(e){throw e}finally{if(n&&navigator.userAgent.indexOf("Camino")<0){var s=new mxMorphing(a);s.addListener(mxEvent.DONE,mxUtils.bind(this,function(){a.getModel().endUpdate()})),s.startAnimation()}else a.getModel().endUpdate()}},EditorUi.prototype.createKeyHandler=function(e){var a=this.editor.graph,o=new mxKeyHandler(a);function n(e){if(!a.isSelectionEmpty()){var n=0,t=0;37==e?n=-1:38==e?t=-1:39==e?n=1:40==e&&(t=1),a.moveCells(a.getSelectionCells(),n,t),a.scrollCellToVisible(a.getSelectionCell())}}o.isControlDown=function(e){return mxEvent.isControlDown(e)||mxClient.IS_MAC&&e.metaKey};var t=mxUtils.bind(this,function(e,n,t,a){var i=this.actions.get(t);if(null!=i){var s=function(){i.enabled&&i.funct()};n?a?o.bindControlShiftKey(e,s):o.bindControlKey(e,s):a?o.bindShiftKey(e,s):o.bindKey(e,s)}});return o.enter=function(){},o.bindKey(8,function(){a.foldCells(!0)}),o.bindKey(13,function(){a.foldCells(!1)}),o.bindKey(33,function(){a.exitGroup()}),o.bindKey(34,function(){a.enterGroup()}),o.bindKey(36,function(){a.home()}),o.bindKey(35,function(){a.refresh()}),o.bindKey(37,function(){n(37)}),o.bindKey(38,function(){n(38)}),o.bindKey(39,function(){n(39)}),o.bindKey(40,function(){n(40)}),o.bindKey(113,function(){a.startEditingAtCell()}),t(46,!1,"delete"),t(82,!0,"tilt"),t(83,!0,"save"),t(83,!0,"saveAs",!0),t(107,!1,"zoomIn"),t(109,!1,"zoomOut"),t(65,!0,"selectAll"),t(86,!0,"selectVertices",!0),t(69,!0,"selectEdges",!0),t(69,!0,"export"),t(66,!0,"toBack"),t(70,!0,"toFront"),t(68,!0,"duplicate"),t(90,!0,"undo"),t(89,!0,"redo"),t(88,!0,"cut"),t(67,!0,"copy"),t(81,!0,"connect"),t(86,!0,"paste"),t(71,!0,"group"),t(71,!0,"grid",!0),t(85,!0,"ungroup"),t(112,!1,"about"),t(80,!0,"publish",!0),o},EditorUi.prototype.createMultiplicities=function(e,n,t,a){for(var i=0;i<n.length;i++)e.push(new mxMultiplicity(!0,n[i],null,null,t[i][0],t[i][1],null,mxResources.get(n[i])+mxResources.get("musthave")+t[i][0]+mxResources.get("outgoingedge"),null)),e.push(new mxMultiplicity(!1,n[i],null,null,a[i][0],a[i][1],null,mxResources.get(n[i])+mxResources.get("musthave")+a[i][0]+mxResources.get("incomingedge"),null))};var useLocalStorage=(mxClient.IS_TOUCH||"local"==urlParams.storage)&&"undefined"!=typeof localStorage,fileSupport=null!=window.File&&null!=window.FileReader&&null!=window.FileList,touchStyle=mxClient.IS_TOUCH||"1"==urlParams.touch,counter=0;try{for(var op=window;null!=op.opener&&!isNaN(op.opener.counter);)op=op.opener;null!=op&&(op.counter++,counter=op.counter)}catch(e){}function Sidebar(e,n){this.editorUi=e,this.container=n,this.palettes=new Object,this.taglist=new Object,this.showTooltips=!0,this.graph=new Graph(document.createElement("div"),null,null,this.editorUi.editor.graph.getStylesheet()),this.graph.resetViewOnRootChange=!1,this.graph.foldingEnabled=!1,this.graph.setConnectable(!1),this.graph.autoScroll=!1,this.graph.setTooltips(!1),this.graph.setEnabled(!1),this.graph.container.style.visibility="hidden",this.graph.container.style.position="absolute",this.graph.container.style.overflow="hidden",this.graph.container.style.height="1px",this.graph.container.style.width="1px",mxClient.IS_IE||mxClient.IS_IE11||(this.graph.container.style.display="none"),document.body.appendChild(this.graph.container),this.pointerUpHandler=mxUtils.bind(this,function(){this.showTooltips=!0}),mxEvent.addListener(document,mxClient.IS_POINTER?"pointerup":"mouseup",this.pointerUpHandler),this.pointerDownHandler=mxUtils.bind(this,function(){this.showTooltips=!1,this.hideTooltip()}),mxEvent.addListener(document,mxClient.IS_POINTER?"pointerdown":"mousedown",this.pointerDownHandler),this.pointerMoveHandler=mxUtils.bind(this,function(e){for(var n=mxEvent.getSource(e);null!=n;){if(n==this.currentElt)return;n=n.parentNode}this.hideTooltip()}),mxEvent.addListener(document,mxClient.IS_POINTER?"pointermove":"mousemove",this.pointerMoveHandler),this.pointerOutHandler=mxUtils.bind(this,function(e){null==e.toElement&&null==e.relatedTarget&&this.hideTooltip()}),mxEvent.addListener(document,mxClient.IS_POINTER?"pointerout":"mouseout",this.pointerOutHandler),mxEvent.addListener(n,"scroll",mxUtils.bind(this,function(){this.showTooltips=!0})),this.init(),mxClient.IS_SVG||((new Image).src=IMAGE_PATH+"/tooltip.png")}function Actions(e){this.editorUi=e,this.actions=new Object,this.init()}function Action(e,n,t,a,i){mxEventSource.call(this),this.label=e,this.funct=n,this.enabled=null==t||t,this.iconCls=a,this.shortcut=i}function Menubar(e,n){this.editorUi=e,this.container=n,mxEvent.addGestureListeners(document,mxUtils.bind(this,function(e){this.hideMenu()}))}function Menu(e,n){mxEventSource.call(this),this.funct=e,this.enabled=null==n||n}function Toolbar(e,n){this.editorUi=e,this.container=n,this.init(),mxEvent.addGestureListeners(document,mxUtils.bind(this,function(e){this.hideMenu()}))}function createCheckbox(e){var n=document.createElement("input");return n.setAttribute("type","checkbox"),e&&n.setAttribute("checked",!0),n}function createDropdownFromApi(e,t,a,i,n,s,o,r){var l=new XMLHttpRequest;l.open("GET",e,!1),l.setRequestHeader("Authorization","Bearer "+n.editor.data.token),l.send(null);var d=[];200===l.status&&(d=JSON.parse(l.response));var c=document.createElement("select"),m=document.createElement("option");return m.text="-- None --",m.value="-1",c.appendChild(m),d.rows.forEach(function(n){r&&n[a]==r||((m=document.createElement("option")).text=n[a],s&&o?(m.value=o,s.forEach(function(e){m.value=m.value.replace("%"+e+"%",n[e])}),m.selected=m.value==t):(m.value=n[i],m.selected=n[i]==t),c.appendChild(m))}),c.className="form-control select2",c}function createDropdownWithOptgroupFromApi(e,n,t,a,i,s){var o=new XMLHttpRequest;o.open("GET",e,!1),o.setRequestHeader("Authorization","Bearer "+i.editor.data.token),o.send(null);var r=[];200===o.status&&(r=JSON.parse(o.response));var l=document.createElement("select"),d=document.createElement("option");d.text="-- None --",d.value="-1",l.appendChild(d);var c=_.groupBy(r.rows,s);for(var m in c)if(c.hasOwnProperty(m)){var u=document.createElement("optgroup");u.label=_.capitalize(m),c[m].forEach(function(e){(d=document.createElement("option")).text=e[t],d.value=e[a],d.selected=e[a]==n,u.appendChild(d)}),l.appendChild(u)}return l.className="form-control select2",l}function createGroupedDropdownFromApi(e,n,t,a,i,s){var o=new XMLHttpRequest;o.open("GET",e,!1),o.setRequestHeader("Authorization","Bearer "+i.editor.data.token),o.send(null);var r=[];200===o.status&&(r=JSON.parse(o.response));var l=document.createElement("select"),d=document.createElement("option");return d.text="-- None --",d.value="0",l.appendChild(d),r.rows.forEach(function(e){(d=document.createElement("option")).className="select-group-father",d.text=e[t].toUpperCase(),d.value=e[a],d.selected=e[a]==n,l.appendChild(d),e[s].forEach(function(e){(d=document.createElement("option")).className="select-group-son",d.text="-"+_.capitalize(e[t]),d.value=e[a],d.selected=e[a]==n,l.appendChild(d)})}),l.className="form-control select2",l}function createDropdownFromArray(e,n){var t=document.createElement("select");for(var a in e){var i=document.createElement("option");i.text=e[a],i.value=a,(0<n||""!=n)&&(i.selected=n===a),t.appendChild(i)}return t.className="form-control select2",t}function createDropdownFromTigerDialList(e){var n=document.createElement("select"),t=[],a=new XMLHttpRequest;try{if(a.open("POST","/api/rest/list/list",!1),a.send(JSON.stringify({page:1,size:6e5})),200===a.status){var i=JSON.parse(a.response);if(0<i.status){var s=i.response.RMI.rows;for(var o in s)t[s[o].id]=s[o].name}}}catch(e){console.log(e)}for(var r in t){var l=document.createElement("option");l.text=t[r],l.value=r,(0<e||""!=e)&&(l.selected=e===r),n.appendChild(l)}return n.className="form-control select2",n}function Dialog(e,n,t,a,i,s,o){var r=0;mxClient.IS_IE&&9!=document.documentMode&&(r=60),t+=r,a+=r;Math.max(0,Math.round((document.body.scrollWidth-t)/2)),Math.max(0,Math.round((Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)-a)/3));var l=e.createDiv("geDialog");l.className="modal fade in center",l.style.display="block",l.style.paddingRight="12px";var d=e.createDiv("geModalDialog");d.className="modal-dialog",d.appendChild(n),l.appendChild(d),null==this.bg&&(this.bg=e.createDiv("background"),this.bg.className="modal-backdrop fade in",mxClient.IS_QUIRKS&&new mxDivResizer(this.bg)),i&&document.body.appendChild(this.bg),document.body.appendChild(l),this.onDialogClose=o,this.container=l}function ImportDialog(t){var e=t.createDiv("modal-content"),n=t.createDiv("modal-header"),a=t.createDiv("modal-body"),i=t.createDiv("modal-footer"),s=t.createHeader("h4");mxUtils.write(s,mxResources.get("import")+" XML");var o=mxUtils.button("",function(){t.hideDialog()});o.className="close",n.appendChild(o),n.appendChild(s);var r=t.createDiv("row"),l=t.createDiv("col-md-12"),d=document.createElement("textarea");d.style.width="100%",d.style.height="374px";var c=document.createElement("input");c.type="file",c.setAttribute("accept","text/xml"),c.addEventListener("change",function(e){var n=e.target.files[0];if(console.log(n),n)if("text/xml"===n.type){var t=new FileReader;t.onload=function(e){var n=e.target.result;mxUtils.write(d,n)},t.readAsText(n)}else alert("Failed to load format file");else alert("Failed to load file")},!1),l.appendChild(c),l.appendChild(d),r.appendChild(l),a.appendChild(r);var m=mxUtils.button(mxResources.get("import"),mxUtils.bind(this,function(e){var n=mxUtils.parseXml(d.value);t.editor.setGraphXml(n.documentElement),t.hideDialog()}));m.className="btn blue";var u=mxUtils.button(mxResources.get("cancel"),function(){t.hideDialog()});u.className="btn default",i.appendChild(m),i.appendChild(u),e.appendChild(n),e.appendChild(a),e.appendChild(i),this.container=e}function AboutDialog(e){var n=e.createDiv("modal-content"),t=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),s=e.createHeader("h4");mxUtils.write(s,mxResources.get("about")+" Cally Square");var o=mxUtils.button("",function(){e.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);var r=document.createElement("img");r.style.border="0px",r.setAttribute("width","176"),r.setAttribute("width","151"),r.setAttribute("src",IMAGE_PATH+"/logo.png"),a.appendChild(r),mxUtils.br(a),mxUtils.write(a,"Powered by Xenialab "+mxClient.VERSION),mxUtils.br(a);var l=document.createElement("a");l.setAttribute("href","http://www.callysquare.com/"),l.setAttribute("target","_blank"),mxUtils.write(l,"www.callysquare.com"),a.appendChild(l),mxUtils.br(a),mxUtils.br(a);var d=mxUtils.button(mxResources.get("close"),function(){e.hideDialog()});d.className="btn default",i.appendChild(d),n.appendChild(t),n.appendChild(a),n.appendChild(i),this.container=n}function SaveDialog(e){var n=e.createDiv("modal-content"),t=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),s=e.createHeader("h4");mxUtils.write(s,mxResources.get("saveAs"));var o=mxUtils.button("",function(){e.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);var r=e.editor.getOrCreateFilename(),l=e.createDiv("row"),d=e.createDiv("col-md-4"),c=e.createDiv("col-md-8"),m=document.createElement("label");m.className="control-label pull-right",mxUtils.write(m,mxResources.get("name")),d.appendChild(m);var u=document.createElement("input");u.setAttribute("value",r+"_copy"),u.setAttribute("id","_name"),u.className="form-control",c.appendChild(u),l.appendChild(d),l.appendChild(c),a.appendChild(l);var p=mxUtils.button(mxResources.get("save"),function(){e.saveAs(u.value),e.hideDialog()});p.className="btn blue";var g=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});g.className="btn default",i.appendChild(p),i.appendChild(g),n.appendChild(t),n.appendChild(a),n.appendChild(i),this.container=n}function NewDialog(e){var n=e.createDiv("modal-content"),t=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),s=e.createHeader("h4");mxUtils.write(s,mxResources.get("new"));var o=mxUtils.button("",function(){e.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);var r=e.editor.getOrCreateFilename(),l=e.createDiv("row"),d=e.createDiv("col-md-4"),c=e.createDiv("col-md-8"),m=document.createElement("label");m.className="control-label pull-right",mxUtils.write(m,mxResources.get("name")),d.appendChild(m);var u=document.createElement("input");u.setAttribute("value",r+"_new"),u.setAttribute("id","_name"),u.className="form-control",c.appendChild(u),l.appendChild(d),l.appendChild(c),a.appendChild(l);var p=mxUtils.button(mxResources.get("new"),function(){e.new(u.value),e.hideDialog()});p.className="btn blue";var g=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});g.className="btn default",i.appendChild(p),i.appendChild(g),n.appendChild(t),n.appendChild(a),n.appendChild(i),this.container=n}function DescriptionDialog(e){console.log(e.editor.data);var n=e.createDiv("modal-content"),t=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),s=e.createHeader("h4");mxUtils.write(s,mxResources.get("description"));var o=mxUtils.button("",function(){e.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);var r=e.createDiv("form-horizontal form-row-seperated"),l="description",d=e.editor.data.description||"",c=e.createDiv("form-group"),m=document.createElement("label");m.className="col-sm-4 control-label",mxUtils.write(m,mxResources.get(l)),c.appendChild(m);var u=document.createElement("input");u.setAttribute("value",d),u.className="form-control",u.setAttribute("id","_description");var p=e.createDiv("col-sm-8");p.appendChild(u),c.appendChild(p),r.appendChild(c),a.appendChild(r);var g=mxUtils.button(mxResources.get("update"),function(){e.description(u.value),e.hideDialog()});g.className="btn blue";var v=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});v.className="btn default",i.appendChild(g),i.appendChild(v),n.appendChild(t),n.appendChild(a),n.appendChild(i),this.container=n}function VariableDialog(e){var n=e.createDiv("modal-content"),t=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),s=e.createHeader("h4");mxUtils.write(s,mxResources.get("variable"));var o=mxUtils.button("",function(){e.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);var r=e.createDiv("form-horizontal form-row-seperated"),l="name",d="_"+l,c="variable name",m=e.createDiv("form-group"),u=document.createElement("label");u.className="col-sm-4 control-label",mxUtils.write(u,mxResources.get(l)),m.appendChild(u);var p=document.createElement("input");p.setAttribute("value",c),p.className="form-control",p.setAttribute("id",d);var g=e.createDiv("col-sm-8");g.appendChild(p),m.appendChild(g),r.appendChild(m),d="_"+(l="description"),c="variable description",m=e.createDiv("form-group last"),(u=document.createElement("label")).className="col-sm-4 control-label",mxUtils.write(u,mxResources.get(l)),m.appendChild(u);var v=document.createElement("input");v.setAttribute("value",c),v.className="form-control",v.setAttribute("id",d),(g=e.createDiv("col-sm-8")).appendChild(v),m.appendChild(g),r.appendChild(m),a.appendChild(r);var h=mxUtils.button(mxResources.get("new"),function(){e.variable(p.value,v.value),e.hideDialog()});h.className="btn blue";var f=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});f.className="btn default",i.appendChild(h),i.appendChild(f),n.appendChild(t),n.appendChild(a),n.appendChild(i),this.container=n}function OpenDialog(e){var n=e.createDiv("modal-content"),t=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),s=e.createHeader("h4");mxUtils.write(s,mxResources.get("open"));var o=mxUtils.button("",function(){e.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);var r=e.createDiv("row"),l=e.createDiv("col-md-4"),d=e.createDiv("col-md-8"),c=document.createElement("label");c.className="control-label pull-right",mxUtils.write(c,mxResources.get("name")),l.appendChild(c);var m=new XMLHttpRequest;m.open("GET","/api/square/projects",!1),m.setRequestHeader("Authorization","Bearer "+e.editor.data.token),m.send(null);var u=[];200===m.status&&(u=JSON.parse(m.response));for(var p=document.createElement("select"),g=0;g<u.length;g++){var v=document.createElement("option");v.text=u[g].name,v.value=u[g].id,p.appendChild(v)}p.className="form-control",d.appendChild(p),r.appendChild(l),r.appendChild(d),a.appendChild(r);var h=mxUtils.button(mxResources.get("open"),function(){console.log(p),console.log(p.value),window.open("square/project/"+p.value,"_blank"),e.hideDialog()});h.className="btn blue";var f=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});f.className="btn default",i.appendChild(h),i.appendChild(f),n.appendChild(t),n.appendChild(a),n.appendChild(i),this.container=n}function RenameDialog(t){var e=t.createDiv("modal-content"),n=t.createDiv("modal-header"),a=t.createDiv("modal-body"),i=t.createDiv("modal-footer"),s=t.createHeader("h4");mxUtils.write(s,mxResources.get("rename"));var o=mxUtils.button("",function(){t.hideDialog()});o.className="close",n.appendChild(o),n.appendChild(s);var r=t.createDiv("row"),l=t.createDiv("col-md-4"),d=t.createDiv("col-md-8"),c=document.createElement("label");c.className="control-label pull-right",mxUtils.write(c,mxResources.get("name")),l.appendChild(c);var m=t.editor.filename,u=document.createElement("input");u.setAttribute("value",m),u.className="form-control",d.appendChild(u),r.appendChild(l),r.appendChild(d),a.appendChild(r);var p=mxUtils.button(mxResources.get("save"),function(){var n=new XMLHttpRequest;n.open("PUT",SAVE_URL+t.editor.data.id,!0),n.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),n.setRequestHeader("Authorization","Bearer "+t.editor.data.token),n.send("name="+u.value),n.onload=function(e){200===n.status?(t.editor.setStatus("Project successfully renamed"),t.editor.filename=u.value):(console.log(n.response),t.editor.setStatus(JSON.parse(n.response).errors[0].message))},n.onerror=function(e){mxUtils.alert(n.statusText)},t.hideDialog()});p.className="btn blue";var g=mxUtils.button(mxResources.get("cancel"),function(){t.hideDialog()});g.className="btn default",i.appendChild(p),i.appendChild(g),e.appendChild(n),e.appendChild(a),e.appendChild(i),this.container=e}function EditFileDialog(n){var e=n.createDiv("modal-content"),t=n.createDiv("modal-header"),a=n.createDiv("modal-body"),i=n.createDiv("modal-footer"),s=n.createHeader("h4");mxUtils.write(s,mxResources.get("edit"));var o=mxUtils.button("",function(){n.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);var r=n.createDiv("row"),l=n.createDiv("col-md-12"),d=document.createElement("textarea");if(d.style.width="100%",d.style.height="374px",d.value=mxUtils.getPrettyXml(n.editor.getGraphXml()),fileSupport){d.addEventListener("dragover",function(e){e.stopPropagation(),e.preventDefault()},!1),d.addEventListener("drop",function(e){if(e.stopPropagation(),e.preventDefault(),0<e.dataTransfer.files.length){var n=e.dataTransfer.files[0],t=new FileReader;t.onload=function(e){d.value=e.target.result},t.readAsText(n)}},!1)}l.appendChild(d),r.appendChild(l),a.appendChild(r);var c=mxUtils.button(mxResources.get("save"),function(){var e=mxUtils.parseXml(d.value);n.editor.setGraphXml(e.documentElement),n.hideDialog()});c.className="btn blue";var m=mxUtils.button(mxResources.get("cancel"),function(){n.hideDialog()});m.className="btn default",i.appendChild(c),i.appendChild(m),e.appendChild(t),e.appendChild(a),e.appendChild(i),this.container=e}function ExportDialog(n){var e=n.createDiv("modal-content"),t=n.createDiv("modal-header"),a=n.createDiv("modal-body form"),i=n.createDiv("modal-footer"),s=n.createHeader("h4");mxUtils.write(s,mxResources.get("export")+" XML");var o=mxUtils.button("",function(){n.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);var r=n.createDiv("form-horizontal form-row-seperated"),l=n.createDiv("form-group last"),d=document.createElement("label");d.className="col-sm-4 control-label",mxUtils.write(d,mxResources.get("filename"));var c=document.createElement("input");c.setAttribute("value",n.editor.getOrCreateFilename()),c.className="form-control";var m=n.createDiv("col-sm-8");m.appendChild(c),l.appendChild(d),l.appendChild(m),r.appendChild(l),a.appendChild(r);var u=mxUtils.button(mxResources.get("export"),mxUtils.bind(this,function(e){n.save(!1);encodeURIComponent(mxUtils.getXml(n.editor.getGraphXml()));new mxXmlRequest(SAVE_URL+n.editor.data.id+"/download","filename="+c.value,"GET").simulate(document,"_blank"),n.hideDialog()}));u.className="btn blue";var p=mxUtils.button(mxResources.get("cancel"),function(){n.hideDialog()});p.className="btn default",i.appendChild(u),i.appendChild(p),e.appendChild(t),e.appendChild(a),e.appendChild(i),this.container=e}function GeneralDialog(i,s){console.log("general");var o=i.editor.graph,e=i.createDiv("md-dialog"),n=i.createDiv("md-toolbar"),t=i.createDiv("md-dialog-content"),a=i.createDiv("md-dialog-actions"),r=i.createHeader("h4");mxUtils.write(r,mxResources.get("edit")+" "+mxResources.get(s.value.nodeName));var l=mxUtils.button("",function(){i.hideDialog()});l.className="close",n.appendChild(l),n.appendChild(r);for(var d=s.value.attributes.length,c=i.createDiv("form-horizontal form-row-seperated"),m=0;m<d;m++){var u,p=s.value.attributes[m].name,g="_"+p,v=s.value.attributes[m].value,h=i.createDiv(m==d-1?"form-group last":"form-group"),f=document.createElement("label");switch(f.className="col-sm-4 control-label",mxUtils.write(f,mxResources.get(p)),h.appendChild(f),p){case"sip_id":u=createDropdownWithOptgroupFromApi("/api/users/all",v,"fullname","id",i,"role");break;case"queue_id":u=createDropdownFromApi("/api/voice/queues",v,"name","name",i);break;case"trunk_name":u=createDropdownFromApi("/api/trunks",v,"name","name",i);break;case"variable_id":u=createDropdownFromApi("/api/variables",v,"name","id",i);break;case"account_id":u="sendMail"==s.value.nodeName?createDropdownFromApi("/api/mail/servers/out",v,"username","id",i):createDropdownFromApi("/api/sms/accounts",v,"name","id",i);break;case"template_id":u=createDropdownFromApi("/api/templates",v,"name","id",i);break;case"context":u=createDropdownFromApi("/api/voice/contexts",v,"name","name",i);break;case"mailbox":u=createDropdownFromApi("/api/voice/voicemails",v,"mailbox","id",i,["mailbox","context"],"%mailbox%@%context%");break;case"model":u=createDropdownFromArray(ISPEECHASRMODEL,v);break;case"ispeech_asr_language":u=createDropdownFromArray(ISPEECHASRLANG,v);break;case"beep":u=createDropdownFromArray(ISPEECHBEEP,v);break;case"hiddendigitspos":u=createDropdownFromArray(SECRETDIGITSPOS,v);break;case"ispeech_tts_language":u=createDropdownFromArray(ISPEECHLANG,v);break;case"google_tts_language":u=createDropdownFromArray(GOOGLETTSLANG,v);break;case"intKey":u=createDropdownFromArray(ASRINTKEYS,v);break;case"recordingFormat":u=createDropdownFromArray(RECORDINGFORMAT,v);break;case"answer":u=createDropdownFromArray(BOOLSELECT,v);break;case"list_id":u=createDropdownFromTigerDialList(v);break;case"interval_id":u=createGroupedDropdownFromApi("/api/intervals",v,"name","id",i,"SubIntervals");break;case"project_id":u=createDropdownFromApi("/api/square/projects",v,"name","id",i,null,null,i.editor.getOrCreateFilename());break;case"odbc_id":u=createDropdownFromApi("/api/square/odbc",v,"name","id",i);break;case"file_id":u=createDropdownFromApi("/api/sounds",v,"display_name","id",i);break;case"timeout":case"digit":case"mindigit":case"maxdigit":case"response":case"retry":case"speed":(u=document.createElement("input")).setAttribute("type","number"),u.setAttribute("min",0),u.setAttribute("max",1e3),u.setAttribute("value",v),u.className="form-control";break;case"text":case"key":case"query":case"condition":case"command":case"body":(u=document.createElement("textarea")).innerHTML=v,u.className="form-control";break;case"sms_text":(u=document.createElement("textarea")).innerHTML=v,u.className="form-control",u.setAttribute("maxlength","160");break;default:(u=document.createElement("input")).setAttribute("value",v),u.className="form-control"}u.setAttribute("id",g);var b=i.createDiv("col-sm-8");if(b.appendChild(u),mxResources.get("help_"+p)){var A=i.createDiv("p");A.className="help-block",mxUtils.write(A,mxResources.get("help_"+p)),b.appendChild(A)}h.appendChild(b),c.appendChild(h)}t.appendChild(c);var E=mxUtils.button(mxResources.get("save"),mxUtils.bind(this,function(e){for(var n=0;n<s.value.attributes.length;n++){var t="_"+s.value.attributes[n].name,a=s.value.attributes[n].name;s.setAttribute(a,document.getElementById(t).value)}o.refresh(s),i.hideDialog()}));E.className="btn blue";var y=mxUtils.button(mxResources.get("cancel"),function(){i.hideDialog()});y.className="btn default",a.appendChild(E),a.appendChild(y),e.appendChild(n),e.appendChild(t),e.appendChild(a),this.container=e}Editor=function(){mxEventSource.call(this),this.init(),this.initStencilRegistry(),this.graph=new Graph,this.outline=new mxOutline(this.graph),this.outline.updateOnPan=!0,this.undoManager=this.createUndoManager(),this.status="",this.filename=null,this.getOrCreateFilename=function(){return this.filename||mxResources.get("drawing",[counter])+".xml"},this.getFilename=function(){return this.filename},this.setStatus=function(e){this.status=e,this.fireEvent(new mxEventObject("statusChanged"))},this.getStatus=function(){return this.status},this.modified=!1,this.graphChangeListener=function(){this.modified=!0},this.graph.getModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){this.graphChangeListener.apply(this,arguments)})),window.onbeforeunload=mxUtils.bind(this,function(){if(this.modified)return mxResources.get("allChangesLost")}),this.graph.resetViewOnRootChange=!1,this.graph.scrollbars=!0,this.graph.background=null},mxUtils.extend(Editor,mxEventSource),Editor.prototype.gridImage=IMAGE_PATH+"/grid.gif",Editor.prototype.transparentImage=IMAGE_PATH+"/transparent.gif",Editor.prototype.setGraphXml=function(e){var n=new mxCodec(e.ownerDocument);if("mxGraphModel"==e.nodeName){this.graph.view.scale=Number(e.getAttribute("scale")||1),this.graph.gridEnabled="0"!=e.getAttribute("grid"),this.graph.graphHandler.guidesEnabled="0"!=e.getAttribute("guides"),this.graph.setTooltips("0"!=e.getAttribute("tooltips")),this.graph.setConnectable("0"!=e.getAttribute("connect")),this.graph.foldingEnabled="0"!=e.getAttribute("fold"),this.graph.scrollbars="0"!=e.getAttribute("scrollbars"),this.graph.scrollbars||(this.graph.container.scrollLeft=0,this.graph.container.scrollTop=0,this.graph.view.translate.x=Number(e.getAttribute("dx")||0),this.graph.view.translate.y=Number(e.getAttribute("dy")||0)),this.graph.pageVisible="1"==e.getAttribute("page"),this.graph.pageBreaksVisible=this.graph.pageVisible,this.graph.preferPageSize=this.graph.pageBreaksVisible;var t=e.getAttribute("pageScale");this.graph.pageScale=null!=t?t:1.5;var a=e.getAttribute("pageWidth"),i=e.getAttribute("pageHeight");null!=a&&null!=i&&(this.graph.pageFormat=new mxRectangle(0,0,parseFloat(a),parseFloat(i)),this.outline.outline.pageFormat=this.graph.pageFormat);var s=e.getAttribute("background");null!=s&&0<s.length&&(this.graph.background=s),n.decode(e,this.graph.getModel()),this.updateGraphComponents()}},Editor.prototype.getGraphXml=function(){var e=new mxCodec(mxUtils.createXmlDocument()).encode(this.graph.getModel());return 0==this.graph.view.translate.x&&0==this.graph.view.translate.y||(e.setAttribute("dx",Math.round(100*this.graph.view.translate.x)/100),e.setAttribute("dy",Math.round(100*this.graph.view.translate.y)/100)),1!=this.graph.view.scale&&e.setAttribute("scale",Math.round(1e3*this.graph.view.scale)/1e3),e.setAttribute("grid",this.graph.isGridEnabled()?"1":"0"),e.setAttribute("guides",this.graph.graphHandler.guidesEnabled?"1":"0"),e.setAttribute("guides",this.graph.graphHandler.guidesEnabled?"1":"0"),e.setAttribute("tooltips",this.graph.tooltipHandler.isEnabled()?"1":"0"),e.setAttribute("connect",this.graph.connectionHandler.isEnabled()?"1":"0"),e.setAttribute("fold",this.graph.foldingEnabled?"1":"0"),e.setAttribute("page",this.graph.pageVisible?"1":"0"),e.setAttribute("pageScale",this.graph.pageScale),e.setAttribute("pageWidth",this.graph.pageFormat.width),e.setAttribute("pageHeight",this.graph.pageFormat.height),this.graph.scrollbars||e.setAttribute("scrollbars","0"),null!=this.graph.background&&e.setAttribute("background",this.graph.background),e},Editor.prototype.updateGraphComponents=function(){var e=this.graph,n=this.outline;if(null!=e.container&&null!=n.outline.container){null!=e.background?"none"==e.background?e.container.style.backgroundColor="transparent":(null!=e.view.backgroundPageShape&&(e.view.backgroundPageShape.fill=e.background,e.view.backgroundPageShape.reconfigure()),e.container.style.backgroundColor=e.background):e.container.style.backgroundColor="",e.pageVisible?(e.container.style.backgroundColor="#ebebeb",e.container.style.borderStyle="solid",e.container.style.borderColor="#e5e5e5",e.container.style.borderTopWidth="1px",e.container.style.borderLeftWidth="1px",e.container.style.borderRightWidth="0px",e.container.style.borderBottomWidth="0px"):e.container.style.border="",n.outline.container.style.backgroundColor=e.container.style.backgroundColor,n.outline.pageVisible==e.pageVisible&&n.outline.pageScale==e.pageScale||(n.outline.pageScale=e.pageScale,n.outline.pageVisible=e.pageVisible,n.outline.view.validate()),e.scrollbars&&"hidden"==e.container.style.overflow&&!touchStyle?e.container.style.overflow="auto":e.scrollbars&&!touchStyle||(e.container.style.overflow="hidden");var t=mxClient.IS_IE&&9<=document.documentMode?"url("+this.transparentImage+")":"none";e.container.style.backgroundImage=!e.pageVisible&&e.isGridEnabled()?"url("+this.gridImage+")":t,null!=e.view.backgroundPageShape&&(e.view.backgroundPageShape.node.style.backgroundImage=this.graph.isGridEnabled()?"url("+this.gridImage+")":"none")}},Editor.prototype.init=function(){mxClient.IS_IE6&&mxClient.link("stylesheet",CSS_PATH+"/grapheditor-ie6.css"),mxResources.loadDefaultBundle=!1,mxResources.add(RESOURCE_BASE),mxConstants.DEFAULT_HOTSPOT=.3;var e=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var t=e.apply(this,arguments);return t.intersects=mxUtils.bind(this,function(e,n){return!!this.isConnecting()||mxCellMarker.prototype.intersects.apply(t,arguments)}),t},mxConstants.SHADOWCOLOR="#d0d0d0",mxConstants.HANDLE_FILLCOLOR="#99ccff",mxConstants.HANDLE_STROKECOLOR="#0088cf",mxConstants.VERTEX_SELECTION_COLOR="#00a8ff",mxConstants.OUTLINE_COLOR="#00a8ff",mxConstants.OUTLINE_HANDLE_FILLCOLOR="#99ccff",mxConstants.OUTLINE_HANDLE_STROKECOLOR="#00a8ff",mxConstants.CONNECT_HANDLE_FILLCOLOR="#cee7ff",mxConstants.EDGE_SELECTION_COLOR="#00a8ff",mxConstants.DEFAULT_VALID_COLOR="#00a8ff",mxConstants.LABEL_HANDLE_FILLCOLOR="#cee7ff",mxConstants.GUIDE_COLOR="#0088cf",mxGraph.prototype.pageBreakColor="#c0c0c0",mxGraph.prototype.pageScale=1,mxRubberband.prototype.defaultOpacity=30,mxGraphView.prototype.createBackgroundPageShape=function(e){return new mxRectangleShape(e,this.graph.background||"white","#cacaca")},mxGraphView.prototype.getBackgroundPageBounds=function(){var e=this.getGraphBounds(),n=0<e.width?e.x/this.scale-this.translate.x:0,t=0<e.height?e.y/this.scale-this.translate.y:0,a=e.width/this.scale,i=e.height/this.scale,s=this.graph.pageFormat,o=this.graph.pageScale,r=s.width*o,l=s.height*o,d=Math.floor(Math.min(0,n)/r),c=Math.floor(Math.min(0,t)/l),m=Math.ceil(Math.max(1,n+a)/r)-d,u=Math.ceil(Math.max(1,t+i)/l)-c;return new mxRectangle(this.scale*(this.translate.x+d*r),this.scale*(this.translate.y+c*l),this.scale*m*r,this.scale*u*l)};var t=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(e,n){t.apply(this,arguments),this.dialect==mxConstants.DIALECT_SVG||null==this.view.backgroundPageShape||this.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.container)||(this.view.backgroundPageShape.node.style.marginLeft=e+"px",this.view.backgroundPageShape.node.style.marginTop=n+"px")};var a=this;mxGraphView.prototype.validateBackground=function(){var e=this.graph.getBackgroundImage();if(null!=e){if(null==this.backgroundImage||this.backgroundImage.image!=e.src){null!=this.backgroundImage&&this.backgroundImage.destroy();var n=new mxRectangle(0,0,1,1);this.backgroundImage=new mxImageShape(n,e.src),this.backgroundImage.dialect=this.graph.dialect,this.backgroundImage.init(this.backgroundPane),this.backgroundImage.redraw()}this.redrawBackgroundImage(this.backgroundImage,e)}else null!=this.backgroundImage&&(this.backgroundImage.destroy(),this.backgroundImage=null);if(this.graph.pageVisible){n=this.getBackgroundPageBounds();null==this.backgroundPageShape?(this.backgroundPageShape=this.createBackgroundPageShape(n),this.backgroundPageShape.scale=1,this.backgroundPageShape.isShadow=!0,this.backgroundPageShape.dialect=mxConstants.DIALECT_STRICTHTML,this.backgroundPageShape.init(this.graph.container),this.graph.container.firstChild.style.position="absolute",this.graph.container.insertBefore(this.backgroundPageShape.node,this.graph.container.firstChild),this.backgroundPageShape.redraw(),this.backgroundPageShape.node.className="geBackgroundPage",this.backgroundPageShape.node.style.backgroundPosition="-1px -1px",mxEvent.addListener(this.backgroundPageShape.node,"dblclick",mxUtils.bind(this,function(e){this.graph.dblClick(e)})),mxEvent.addGestureListeners(this.backgroundPageShape.node,mxUtils.bind(this,function(e){this.graph.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e))}),mxUtils.bind(this,function(e){null!=this.graph.tooltipHandler&&this.graph.tooltipHandler.isHideOnHover()&&this.graph.tooltipHandler.hide(),this.graph.isMouseDown&&!mxEvent.isConsumed(e)&&this.graph.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e))}),mxUtils.bind(this,function(e){this.graph.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e))}))):(this.backgroundPageShape.scale=1,this.backgroundPageShape.bounds=n,this.backgroundPageShape.redraw()),this.backgroundPageShape.node.style.backgroundImage=this.graph.isGridEnabled()?"url("+a.gridImage+")":"none"}else null!=this.backgroundPageShape&&(this.backgroundPageShape.destroy(),this.backgroundPageShape=null)},mxGraph.prototype.updatePageBreaks=function(e,n,t){var a=this.view.scale,i=this.view.translate,s=this.pageFormat,o=a*this.pageScale,r=this.view.getBackgroundPageBounds();n=r.width,t=r.height;var l=new mxRectangle(a*i.x,a*i.y,s.width*o,s.height*o),d=(e=e&&Math.min(l.width,l.height)>this.minPageBreakDist)?Math.ceil(n/l.width)-1:0,c=e?Math.ceil(t/l.height)-1:0,m=r.x+n,u=r.y+t;if(null==this.horizontalPageBreaks&&0<d&&(this.horizontalPageBreaks=[]),null!=this.horizontalPageBreaks){for(var p=0;p<=d;p++){var g=[new mxPoint(r.x+(p+1)*l.width,r.y),new mxPoint(r.x+(p+1)*l.width,u)];if(null!=this.horizontalPageBreaks[p])this.horizontalPageBreaks[p].scale=1,this.horizontalPageBreaks[p].points=g,this.horizontalPageBreaks[p].redraw();else(v=new mxPolyline(g,this.pageBreakColor,this.scale)).dialect=this.dialect,v.isDashed=this.pageBreakDashed,v.addPipe=!1,v.scale=a,v.init(this.view.backgroundPane),v.redraw(),this.horizontalPageBreaks[p]=v}for(p=d;p<this.horizontalPageBreaks.length;p++)this.horizontalPageBreaks[p].destroy();this.horizontalPageBreaks.splice(d,this.horizontalPageBreaks.length-d)}if(null==this.verticalPageBreaks&&0<c&&(this.verticalPageBreaks=[]),null!=this.verticalPageBreaks){for(p=0;p<=c;p++){var v;g=[new mxPoint(r.x,r.y+(p+1)*l.height),new mxPoint(m,r.y+(p+1)*l.height)];if(null!=this.verticalPageBreaks[p])this.verticalPageBreaks[p].scale=1,this.verticalPageBreaks[p].points=g,this.verticalPageBreaks[p].redraw();else(v=new mxPolyline(g,this.pageBreakColor,a)).dialect=this.dialect,v.isDashed=this.pageBreakDashed,v.addPipe=!1,v.scale=a,v.init(this.view.backgroundPane),v.redraw(),this.verticalPageBreaks[p]=v}for(p=c;p<this.verticalPageBreaks.length;p++)this.verticalPageBreaks[p].destroy();this.verticalPageBreaks.splice(c,this.verticalPageBreaks.length-c)}},mxEdgeHandler.prototype.snapToTerminals=!0,mxGraphHandler.prototype.guidesEnabled=!0;var s=mxGraphHandler.prototype.shouldRemoveCellsFromParent;mxGraphHandler.prototype.shouldRemoveCellsFromParent=function(e,n,t){for(var a=0;a<n.length;a++)if(this.graph.getModel().isVertex(n[a])){var i=this.graph.getCellGeometry(n[a]);if(null!=i&&i.relative)return!1}return s.apply(this,arguments)},mxGuide.prototype.isEnabledForEvent=function(e){return!mxEvent.isAltDown(e)};var r=mxPopupMenu.prototype.addItem;mxPopupMenu.prototype.addItem=function(e,n,t,a,i,s){var o=r.apply(this,arguments);return null==s||s||mxEvent.addListener(o,"mousedown",function(e){mxEvent.consume(e)}),o};var o=mxGraphHandler.prototype.getInitialCellForEvent;mxGraphHandler.prototype.getInitialCellForEvent=function(e){var n=this.graph.getModel(),t=n.getParent(this.graph.getSelectionCell()),a=o.apply(this,arguments),i=n.getParent(a);if(null==t||t!=a&&t!=i)for(;!this.graph.isCellSelected(a)&&!this.graph.isCellSelected(i)&&n.isVertex(i)&&!this.graph.isValidRoot(i);)a=i,i=this.graph.getModel().getParent(a);return a};var l=mxGraphHandler.prototype.isDelayedSelection;mxGraphHandler.prototype.isDelayedSelection=function(e){var n=l.apply(this,arguments),t=this.graph.getModel(),a=t.getParent(this.graph.getSelectionCell()),i=t.getParent(e);return(null==a||a!=e&&a!=i)&&(this.graph.isCellSelected(e)||!t.isVertex(i)||this.graph.isValidRoot(i)||(n=!0)),n},mxGraphHandler.prototype.selectDelayed=function(e){var n=e.getCell();null==n&&(n=this.cell);for(var t=this.graph.getModel(),a=t.getParent(n);this.graph.isCellSelected(n)&&t.isVertex(a)&&!this.graph.isValidRoot(a);)n=a,a=t.getParent(n);this.graph.selectCellForEvent(n,e.getEvent())},mxPanningHandler.prototype.getCellForPopupEvent=function(e){for(var n=e.getCell(),t=this.graph.getModel(),a=t.getParent(n);t.isVertex(a)&&!this.graph.isValidRoot(a);)this.graph.isCellSelected(a)&&(n=a),a=t.getParent(a);return n}},Editor.prototype.createUndoManager=function(){var s=this.graph,t=new mxUndoManager,e=function(e,n){t.undoableEditHappened(n.getProperty("edit"))};s.getModel().addListener(mxEvent.UNDO,e),s.getView().addListener(mxEvent.UNDO,e);var n=function(e,n){for(var t=s.getSelectionCellsForChanges(n.getProperty("edit").changes),a=[],i=1;i<t.length;i++)null!=s.view.getState(t[i])&&a.push(t[i]);s.setSelectionCells(a)};return t.addListener(mxEvent.UNDO,n),t.addListener(mxEvent.REDO,n),t},Editor.prototype.initStencilRegistry=function(){mxStencilRegistry.loadStencilSet(STENCIL_PATH+"/general.xml")},mxStencilRegistry.libraries={},mxStencilRegistry.packages=[],mxStencilRegistry.getStencil=function(e){var n=mxStencilRegistry.stencils[e];if(null==n){var t=mxStencilRegistry.getBasenameForStencil(e);if(null!=t){var a=mxStencilRegistry.libraries[t];if(null!=a){if(null==mxStencilRegistry.packages[t]){mxStencilRegistry.packages[t]=1;for(var i=0;i<a.length;i++){var s=a[i];if(".xml"==s.toLowerCase().substring(s.length-4,s.length))mxStencilRegistry.loadStencilSet(s,null);else if(".js"==s.toLowerCase().substring(s.length-3,s.length)){var o=mxUtils.load(s);null!=o&&eval.call(window,o.getText())}}}}else mxStencilRegistry.loadStencilSet(STENCIL_PATH+"/"+t+".xml",null);n=mxStencilRegistry.stencils[e]}}return n},mxStencilRegistry.getBasenameForStencil=function(e){var n=e.split("."),t=null;if(0<n.length&&"mxgraph"==n[0]){t=n[1];for(var a=2;a<n.length-1;a++)t+="/"+n[a]}return t},mxStencilRegistry.loadStencilSet=function(e,n,t){t=null!=t&&t;var a=mxStencilRegistry.packages[e];if(t||null==a){var i=!1;null==a&&(a=mxUtils.load(e).getXml(),mxStencilRegistry.packages[e]=a,i=!0),mxStencilRegistry.parseStencilSet(a,n,i)}},mxStencilRegistry.parseStencilSet=function(e,n,t){t=null==t||t;var a=e.documentElement,i=a.firstChild,s="",o=a.getAttribute("name");for(null!=o&&(s=o+".");null!=i;){if(i.nodeType==mxConstants.NODETYPE_ELEMENT&&null!=(o=i.getAttribute("name"))){s=s.toLowerCase();var r=o.replace(/ /g,"_");if(t&&mxStencilRegistry.addStencil(s+r.toLowerCase(),new mxStencil(i)),null!=n){var l=i.getAttribute("w"),d=i.getAttribute("h");n(s,r,o,l=null==l?80:parseInt(l,10),d=null==d?80:parseInt(d,10))}}i=i.nextSibling}},OpenFile=function(e){this.producer=null,this.consumer=null,this.done=e},OpenFile.prototype.setConsumer=function(e){this.consumer=e,this.execute()},OpenFile.prototype.setData=function(e,n){this.data=e,this.filename=n,this.execute()},OpenFile.prototype.error=function(e){this.cancel(),mxUtils.alert(e)},OpenFile.prototype.execute=function(){null!=this.consumer&&null!=this.data&&(this.consumer(this.data,this.filename),this.cancel())},OpenFile.prototype.cancel=function(){null!=this.done&&this.done()},Sidebar.prototype.init=function(){var e=STENCIL_PATH;this.addSearchPalette(!0),this.addImagePalette("entry",mxResources.get("entry"),e+"/entry/","_128x128.png",["start","finally","end"],[mxResources.get("start"),mxResources.get("finally"),mxResources.get("end")]),this.addImagePalette("call_management",mxResources.get("call_management"),e+"/call_management/","_128x128.png",["answer","hangup","dial","ext_dial","queue","voicemail","callback"],[mxResources.get("answer"),mxResources.get("hangup"),mxResources.get("dial"),mxResources.get("ext_dial"),mxResources.get("queue"),mxResources.get("voicemail"),mxResources.get("callback")]),this.addImagePalette("agent_management",mxResources.get("agent_management"),e+"/agent_management/","_128x128.png",["login","pause","unpause","logout"],[mxResources.get("login"),mxResources.get("pause"),mxResources.get("unpause"),mxResources.get("logout")]),this.addImagePalette("variable",mxResources.get("variable"),e+"/variable/","_128x128.png",["set","math"],[mxResources.get("set"),mxResources.get("math")]),this.addImagePalette("playback",mxResources.get("playback"),e+"/playback/","_128x128.png",["playback","menu","saydigits","saynumber","sayphonetic","getdigits","getsecretdigits"],[mxResources.get("playback"),mxResources.get("menu"),mxResources.get("saydigits"),mxResources.get("saynumber"),mxResources.get("sayphonetic"),mxResources.get("getdigits"),mxResources.get("getsecretdigits")]),this.addImagePalette("recording",mxResources.get("recording"),e+"/recording/","_128x128.png",["record"],[mxResources.get("record")]),this.addImagePalette("tts","TTS",e+"/tts/","_128x128.png",["google_cloud_tts","tts","ispeechtts","awspolly","lumenvoxtts","sestektts","mrcpsynth"],["Google Cloud TTS","GoogleTTS","ISpeechTTS","AWSPolly","LumenvoxTTS","SestekTTS","MRCPSynth"]),this.addImagePalette("asr","ASR",e+"/asr/","_128x128.png",["googleasr","ispeechasr","lumenvoxasr","tildeasr","sestekasr","mrcprecog"],["GoogleASR","ISpeechASR","LumenvoxASR","TildeASR","SestekASR","MRCPRecog"]),this.addImagePalette("integrationServer",mxResources.get("integrationServer"),e+"/integration_server/","_128x128.png",["database","sendMail","sendSMS","dialogflow","dialogflowV2","awslex","sesteknda","restapi"],[mxResources.get("database"),mxResources.get("sendMail"),mxResources.get("sendSMS"),"Dialogflow","DialogflowV2","AWSLex","SestekNDA","RestAPI"]),this.addImagePalette("callflow",mxResources.get("callflow"),e+"/callflow/","_128x128.png",["gotoc","gotoif","gotoiftime","vswitch"],[mxResources.get("gotoc"),mxResources.get("gotoif"),mxResources.get("gotoiftime"),mxResources.get("vswitch")]),this.addImagePalette("stats",mxResources.get("stats"),e+"/stats/","_128x128.png",["goal"],[mxResources.get("goal")]),this.addImagePalette("general",mxResources.get("general"),e+"/general/","_128x128.png",["noop","system","agi","subproject","custom_app"],[mxResources.get("noop"),mxResources.get("system"),mxResources.get("agi"),mxResources.get("subproject"),mxResources.get("custom_app")])},Sidebar.prototype.collapsedImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhDQANAIABAJmZmf///yH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozNUQyRTJFNjZGNUYxMUU1QjZEOThCNDYxMDQ2MzNCQiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozNUQyRTJFNzZGNUYxMUU1QjZEOThCNDYxMDQ2MzNCQiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjFERjc3MEUxNkY1RjExRTVCNkQ5OEI0NjEwNDYzM0JCIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjFERjc3MEUyNkY1RjExRTVCNkQ5OEI0NjEwNDYzM0JCIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Af/+/fz7+vn49/b19PPy8fDv7u3s6+rp6Ofm5eTj4uHg397d3Nva2djX1tXU09LR0M/OzczLysnIx8bFxMPCwcC/vr28u7q5uLe2tbSzsrGwr66trKuqqainpqWko6KhoJ+enZybmpmYl5aVlJOSkZCPjo2Mi4qJiIeGhYSDgoGAf359fHt6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNiYWBfXl1cW1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMCAQAAIfkEAQAAAQAsAAAAAA0ADQAAAhSMj6lrwAjcC1GyahV+dcZJgeIIFgA7":IMAGE_PATH+"/collapsed.gif",Sidebar.prototype.expandedImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhDQANAIABAJmZmf///yH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxREY3NzBERjZGNUYxMUU1QjZEOThCNDYxMDQ2MzNCQiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxREY3NzBFMDZGNUYxMUU1QjZEOThCNDYxMDQ2MzNCQiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjFERjc3MERENkY1RjExRTVCNkQ5OEI0NjEwNDYzM0JCIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjFERjc3MERFNkY1RjExRTVCNkQ5OEI0NjEwNDYzM0JCIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Af/+/fz7+vn49/b19PPy8fDv7u3s6+rp6Ofm5eTj4uHg397d3Nva2djX1tXU09LR0M/OzczLysnIx8bFxMPCwcC/vr28u7q5uLe2tbSzsrGwr66trKuqqainpqWko6KhoJ+enZybmpmYl5aVlJOSkZCPjo2Mi4qJiIeGhYSDgoGAf359fHt6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNiYWBfXl1cW1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMCAQAAIfkEAQAAAQAsAAAAAA0ADQAAAhGMj6nL3QAjVHIu6azbvPtWAAA7":IMAGE_PATH+"/expanded.gif",Sidebar.prototype.tooltipImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAbCAMAAAB7jU7LAAAACVBMVEX///+ZmZn///9Y2COLAAAAA3RSTlP//wDXyg1BAAAAOElEQVR42mXQMQ4AMAgDsWv//+iutcJmIQSk+9dJpVKpVCqVSqVSqZTdncWzF8/NeP7FkxWenPEDOnUBiL3jWx0AAAAASUVORK5CYII=":IMAGE_PATH+"/tooltip.png",Sidebar.prototype.searchImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAEaSURBVHjabNGxS5VxFIfxz71XaWuQUJCG/gCHhgTD9VpEETg4aMOlQRp0EoezObgcd220KQiXmpretTAHQRBdojlQEJyukPdt+b1ywfvAGc7wnHP4nlZd1yKijQW8xzNc4Su+ZOYfQ3T6/f4YNvEJYzjELXp4VVXVz263+7cR2niBxAFeZ2YPi3iHR/gYERPDwhpOsd6sz8x/mfkNG3iOlWFhFj8y89J9KvzGXER0GuEaD42mgwHqUtoljbcRsTBCeINpfM/MgZLKPpaxFxGbOCqDXmILN7hoJrTKH+axhxmcYRxP0MIDnOBDZv5q1XUNIuJxifJp+UNV7t7BFM6xeic0RMQ4Bpl5W/ol7GISx/eEUUTECrbx+f8A8xhiZht9zsgAAAAASUVORK5CYII=":IMAGE_PATH+"/search.png",Sidebar.prototype.enableTooltips=!0,Sidebar.prototype.tooltipBorder=16,Sidebar.prototype.tooltipDelay=300,Sidebar.prototype.dropTargetDelay=200,Sidebar.prototype.thumbWidth=36,Sidebar.prototype.thumbHeight=36,Sidebar.prototype.thumbPadding=5<=document.documentMode?0:1,Sidebar.prototype.thumbBorder=2,Sidebar.prototype.sidebarTitleSize=9,Sidebar.prototype.sidebarTitles=!1,Sidebar.prototype.tooltipTitles=!0,Sidebar.prototype.maxTooltipWidth=400,Sidebar.prototype.maxTooltipHeight=400,Sidebar.prototype.addStencilsToIndex=!0,Sidebar.prototype.defaultImageWidth=80,Sidebar.prototype.defaultImageHeight=80,Sidebar.prototype.getOffset=function(e){return{left:(e=e.getBoundingClientRect()).left+window.scrollX,top:e.top+window.scrollY}},Sidebar.prototype.showTooltip=function(c,m,u,p,g,v){if(this.enableTooltips&&this.showTooltips&&this.currentElt!=c){null!=this.thread&&(window.clearTimeout(this.thread),this.thread=null);var e=mxUtils.bind(this,function(){null==this.tooltip&&(this.tooltip=document.createElement("div"),this.tooltip.className="geSidebarTooltip",this.tooltip.style.zIndex=mxPopupMenu.prototype.zIndex-1,document.body.appendChild(this.tooltip),this.graph2=new Graph(this.tooltip,null,null,this.editorUi.editor.graph.getStylesheet()),this.graph2.resetViewOnRootChange=!1,this.graph2.foldingEnabled=!1,this.graph2.gridEnabled=!1,this.graph2.autoScroll=!1,this.graph2.setTooltips(!1),this.graph2.setConnectable(!1),this.graph2.setEnabled(!1),mxClient.IS_SVG||(this.graph2.view.canvas.style.position="relative"),this.tooltipImage=mxUtils.createImage(this.tooltipImage),this.tooltipImage.className="geSidebarTooltipImage",this.tooltipImage.style.zIndex=mxPopupMenu.prototype.zIndex-1,this.tooltipImage.style.position="absolute",this.tooltipImage.style.width="14px",this.tooltipImage.style.height="27px",document.body.appendChild(this.tooltipImage)),this.graph2.model.clear(),this.graph2.view.setTranslate(this.tooltipBorder,this.tooltipBorder),u>this.maxTooltipWidth||p>this.maxTooltipHeight?this.graph2.view.scale=Math.round(100*Math.min(this.maxTooltipWidth/u,this.maxTooltipHeight/p))/100:this.graph2.view.scale=1,this.tooltip.style.display="block",this.graph2.labelsVisible=null==v||v,this.graph2.addCells(m);var e=this.graph2.getGraphBounds(),n=e.width+2*this.tooltipBorder+4,t=e.height+2*this.tooltipBorder;if(mxClient.IS_QUIRKS?(t+=4,this.tooltip.style.overflow="hidden"):this.tooltip.style.overflow="visible",this.tooltipImage.style.visibility="visible",this.tooltip.style.width=n+"px",this.tooltipTitles&&null!=g&&0<g.length){null==this.tooltipTitle?(this.tooltipTitle=document.createElement("div"),this.tooltipTitle.style.borderTop="1px solid gray",this.tooltipTitle.style.textAlign="center",this.tooltipTitle.style.width="100%",this.tooltipTitle.style.overflow="hidden",mxClient.IS_SVG||(this.tooltipTitle.style.position="absolute"),this.tooltipTitle.style.paddingTop="6px",this.tooltip.appendChild(this.tooltipTitle)):this.tooltipTitle.innerHTML="",this.tooltipTitle.style.display="",mxUtils.write(this.tooltipTitle,g);var a=this.tooltipTitle.offsetHeight+10;t+=a,mxClient.IS_SVG?this.tooltipTitle.style.marginTop=2-a+"px":(t-=6,this.tooltipTitle.style.top=t-a+"px")}else null!=this.tooltipTitle&&null!=this.tooltipTitle.parentNode&&(this.tooltipTitle.style.display="none");this.tooltip.style.height=t+"px";var i=-Math.round(e.x-this.tooltipBorder),s=-Math.round(e.y-this.tooltipBorder),o=document.body,r=document.documentElement,l=(o.clientHeight||r.clientHeight,document.getElementById("vertical-navigation").offsetWidth+this.container.clientWidth),d=Math.max(0,this.getOffset(c).top-this.container.scrollTop-t/2+16);mxClient.IS_SVG?0!=i||0!=s?this.graph2.view.canvas.setAttribute("transform","translate("+i+","+s+")"):this.graph2.view.canvas.removeAttribute("transform"):(this.graph2.view.drawPane.style.left=i+"px",this.graph2.view.drawPane.style.top=s+"px"),this.tooltip.style.position="absolute",this.tooltip.style.left=l+"px",this.tooltip.style.top=d+"px",this.tooltipImage.style.left=l-13+"px",this.tooltipImage.style.top=d+t/2-13+"px"});null!=this.tooltip&&"none"!=this.tooltip.style.display?e():this.thread=window.setTimeout(e,this.tooltipDelay),this.currentElt=c}},Sidebar.prototype.hideTooltip=function(){null!=this.thread&&(window.clearTimeout(this.thread),this.thread=null),null!=this.tooltip&&(this.tooltip.style.display="none",this.tooltipImage.style.visibility="hidden",this.currentElt=null)},Sidebar.prototype.addEntry=function(e,n){if(null!=this.taglist&&null!=e&&0<e.length)for(var t=e.toLowerCase().replace(/[\/\,\(\)]/g," ").split(" "),a=0;a<t.length;a++)if(t[a]=t[a].replace(/\.*\d*$/,""),1<t[a].length){var i=this.taglist[t[a]];null==i&&(i={entries:[],dict:new mxDictionary},this.taglist[t[a]]=i),null==i.dict.get(n)&&(i.dict.put(n,n),i.entries.push(n))}return n},Sidebar.prototype.searchEntries=function(e,n,t,a,i){if(null!=this.taglist&&null!=e){for(var s=e.toLowerCase().split(" "),o=new mxDictionary,r=(t+1)*n,l=[],d=0,c=0;c<s.length;c++)if(0<s[c].length){var m=this.taglist[s[c]],u=new mxDictionary;if(null!=m){var p=m.entries;l=[];for(var g=0;g<p.length;g++){m=p[g];if(0==d==(null==o.get(m))&&(u.put(m,m),l.push(m),c==s.length-1&&l.length==r))return void a(l.slice(t*n,r),r,!0)}}else l=[];o=u,d++}var v=l.length;a(l.slice(t*n,(t+1)*n),v,!1)}else a([])},Sidebar.prototype.filterTags=function(e){if(null==e)return null;for(var n=e.split(" "),t=[],a={},i=0;i<n.length;i++)null==a[n[i]]&&(a[n[i]]="1",t.push(n[i]));return t.join(" ")},Sidebar.prototype.cloneCell=function(e,n){var t=e.clone();return null!=n&&(t.value=n),t},Sidebar.prototype.addSearchPalette=function(e){var n=document.createElement("div");n.style.visibility="hidden",this.container.appendChild(n);var r=document.createElement("div");r.className="geSidebar",r.style.boxSizing="border-box",r.style.overflow="hidden",r.style.width="100%",r.style.padding="8px",r.style.paddingTop="14px",r.style.paddingBottom="0px",e||(r.style.display="none");var t=document.createElement("div");t.style.whiteSpace="nowrap",t.style.textOverflow="clip",t.style.paddingBottom="8px",t.style.cursor="default";var a=document.createElement("input");a.setAttribute("placeholder",mxResources.get("searchShapes")),a.setAttribute("type","text"),a.style.fontSize="12px",a.style.overflow="hidden",a.style.boxSizing="border-box",a.style.border="solid 1px #d5d5d5",a.style.borderRadius="4px",a.style.width="100%",a.style.outline="none",a.style.padding="6px",t.appendChild(a);var i,s=document.createElement("img");s.setAttribute("src",Sidebar.prototype.searchImage),s.setAttribute("title",mxResources.get("search")),s.style.position="relative",s.style.left="-18px",mxClient.IS_QUIRKS?(a.style.height="28px",s.style.top="-4px"):s.style.top="2px",s.style.background="url('"+this.editorUi.editor.transparentImage+"')",t.appendChild(s),r.appendChild(t);var l=document.createElement("center"),d=mxUtils.button(mxResources.get("moreResults"),function(){i()});d.style.display="none",d.style.lineHeight="normal",d.style.marginTop="4px",d.style.marginBottom="8px",l.style.paddingTop="4px",l.style.paddingBottom="8px",l.appendChild(d),r.appendChild(l);var c="",m=!1,u=!1,p=0,g=new Object,v=12,h=mxUtils.bind(this,function(){m=!1,this.currentSearch=null;for(var e=r.firstChild;null!=e;){var n=e.nextSibling;e!=t&&e!=l&&e.parentNode.removeChild(e),e=n}});i=mxUtils.bind(this,function(){if(v=4*Math.max(1,Math.floor(this.container.clientWidth/(this.thumbWidth+10))),this.hideTooltip(),""!=a.value){if(null!=l.parentNode&&(c!=a.value&&(h(),c=a.value,g=new Object,u=!1,p=0),!m&&!u)){d.setAttribute("disabled","true"),d.style.display="",d.style.cursor="wait",d.innerHTML=mxResources.get("loading")+"...",m=!0;var o=new Object;this.currentSearch=o,this.searchEntries(c,v,p,mxUtils.bind(this,function(e,n,t){if(this.currentSearch==o){e=null!=e?e:[],m=!1,p++,l.parentNode.removeChild(l);for(var a=0;a<e.length;a++){var i=e[a]();null==g[i.innerHTML]&&(g[i.innerHTML]="1",r.appendChild(e[a]()))}if(t?(d.removeAttribute("disabled"),d.innerHTML=mxResources.get("moreResults")):(d.innerHTML=mxResources.get("reset"),d.style.display="none",u=!0),d.style.cursor="",0==e.length&&1==p){var s=document.createElement("div");s.className="geTitle",s.style.backgroundColor="transparent",s.style.borderColor="transparent",s.style.color="gray",s.style.padding="0px",s.style.margin="0px 8px 0px 8px",s.style.paddingTop="6px",s.style.textAlign="center",s.style.cursor="default",mxUtils.write(s,mxResources.get("noResultsFor",[c])),r.appendChild(s)}r.appendChild(l)}}),mxUtils.bind(this,function(){d.style.cursor=""}))}}else h(),a.value="",c="",g=new Object,d.style.display="none",u=!1,a.focus()}),mxEvent.addListener(a,"keydown",mxUtils.bind(this,function(e){13==e.keyCode&&i()})),mxEvent.addListener(a,"focus",function(){a.style.paddingRight="",s.style.display="none"}),mxEvent.addListener(a,"blur",function(){a.style.paddingRight="20px",s.style.display=""}),a.style.paddingRight="20px",mxEvent.addListener(a,"keyup",mxUtils.bind(this,function(e){""==a.value?(u=!0,d.style.display="none"):a.value!=c?(d.style.display="none",u=!1):m||(d.style.display=u?"none":"")})),mxEvent.addListener(a,"mousedown",function(e){e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0}),mxEvent.addListener(a,"selectstart",function(e){e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0});var o=document.createElement("div");o.appendChild(r),this.container.appendChild(o),this.palettes.search=[n,o]},Sidebar.prototype.createTitle=function(e){var n=document.createElement("a");return n.setAttribute("href","javascript:void(0);"),n.setAttribute("title",mxResources.get("sidebarTooltip")),n.className="geTitle",mxUtils.write(n,e),n},Sidebar.prototype.createThumb=function(e,n,t,a,i,s,o,r,l){this.graph.labelsVisible=null==s||s;var d=mxClient.NO_FO;mxClient.NO_FO=Editor.prototype.originalNoForeignObject,this.graph.view.scaleAndTranslate(1,0,0),this.graph.addCells(e);var c=this.graph.getGraphBounds(),m=Math.floor(100*Math.min((n-2*this.thumbBorder)/c.width,(t-2*this.thumbBorder)/c.height))/100;this.graph.view.scaleAndTranslate(m,Math.floor((n-c.width*m)/2/m-c.x),Math.floor((t-c.height*m)/2/m-c.y));var u=null;if(this.graph.dialect!=mxConstants.DIALECT_SVG||mxClient.NO_FO?(u=this.graph.container.cloneNode(!1)).innerHTML=this.graph.container.innerHTML:u=this.graph.view.getCanvas().ownerSVGElement.cloneNode(!0),this.graph.getModel().clear(),mxClient.NO_FO=d,mxClient.IS_IE6&&(a.style.backgroundImage="url("+this.editorUi.editor.transparentImage+")"),u.style.position="relative",u.style.overflow="hidden",u.style.cursor="move",u.style.left=this.thumbBorder+"px",u.style.top=this.thumbBorder+"px",u.style.width=n+"px",u.style.height=t+"px",u.style.visibility="",u.style.minWidth="",u.style.minHeight="",a.appendChild(u),this.sidebarTitles&&null!=i&&0!=o){var p=mxClient.IS_QUIRKS?2*this.thumbPadding+2:0;a.style.height=this.thumbHeight+p+this.sidebarTitleSize+8+"px";var g=document.createElement("div");g.style.fontSize=this.sidebarTitleSize+"px",g.style.color="#303030",g.style.textAlign="center",g.style.whiteSpace="nowrap",mxClient.IS_IE&&(g.style.height=this.sidebarTitleSize+12+"px"),g.style.paddingTop="4px",mxUtils.write(g,i),a.appendChild(g)}return c},Sidebar.prototype.createItem=function(n,t,a,e,i,s,o){var r=document.createElement("a");r.setAttribute("href","javascript:void(0);"),r.className="geItem",r.style.overflow="hidden";var l=mxClient.IS_QUIRKS?8+2*this.thumbPadding:2*this.thumbBorder;r.style.width=this.thumbWidth+l+"px",r.style.height=this.thumbHeight+l+"px",r.style.padding=this.thumbPadding+"px",mxEvent.addListener(r,"click",function(e){mxEvent.consume(e)}),this.createThumb(n,this.thumbWidth,this.thumbHeight,r,t,a,e,i,s);var d=new mxRectangle(0,0,i,s);if(1<n.length||n[0].vertex){var c=this.createDragSource(r,this.createDropHandler(n,!0,o,d),this.createDragPreview(i,s),n,d);this.addClickHandler(r,c,n),c.isGuidesEnabled=mxUtils.bind(this,function(){return this.editorUi.editor.graph.graphHandler.guidesEnabled})}else if(null!=n[0]&&n[0].edge){c=this.createDragSource(r,this.createDropHandler(n,!1,o,d),this.createDragPreview(i,s),n,d);this.addClickHandler(r,c,n)}return mxClient.IS_IOS||mxEvent.addGestureListeners(r,null,mxUtils.bind(this,function(e){this.showTooltip(r,n,d.width,d.height,t,a)})),r},Sidebar.prototype.createDropHandler=function(g,v,h,f){return h=null==h||h,mxUtils.bind(this,function(e,n,t,a,i){if(e.isEnabled()){if(0<(g=e.getImportableCells(g)).length){e.stopEditing();var s=null!=t&&e.isValidDropTarget(t,g,n),o=null;if(null==t||s||(t=null),!e.isCellLocked(t||e.getDefaultParent())){e.model.beginUpdate();try{if(a=Math.round(a),i=Math.round(i),v&&e.isSplitTarget(t,g,n)){var r=e.cloneCells(g);e.splitEdge(t,r,null,a-f.width/2,i-f.height/2),o=r}else 0<g.length&&(o=e.importCells(g,a,i,t));if(null!=e.layoutManager){var l=e.layoutManager.getLayout(t);if(null!=l)for(var d=e.view.scale,c=e.view.translate,m=(a+c.x)*d,u=(i+c.y)*d,p=0;p<o.length;p++)l.moveCell(o[p],m,u)}h&&e.fireEvent(new mxEventObject("cellsInserted","cells",o))}finally{e.model.endUpdate()}null!=o&&0<o.length&&(e.scrollCellToVisible(o[0]),e.setSelectionCells(o))}}mxEvent.consume(n)}})},Sidebar.prototype.createDragPreview=function(e,n){var t=document.createElement("div");return t.style.border="1px dashed black",t.style.width=e+"px",t.style.height=n+"px",t},Sidebar.prototype.createDragSource=function(e,n,t){var a=mxUtils.makeDraggable(e,this.editorUi.editor.graph,n,t,0,0,this.editorUi.editor.graph.autoscroll,!0,!0);return a.getDropTarget=function(e,n,t){var a=mxDragSource.prototype.getDropTarget.apply(this,arguments);return e.isValidRoot(a)||(a=null),a},a},Sidebar.prototype.addClickHandler=function(e,a){var i=this.editorUi.editor.graph,s=null;mxEvent.addGestureListeners(e,function(e){s=new mxPoint(mxEvent.getClientX(e),mxEvent.getClientY(e))});var o=a.mouseUp;a.mouseUp=function(e){if(!mxEvent.isPopupTrigger(e)&&null==this.currentGraph&&null!=s){var n=i.tolerance;if(Math.abs(s.x-mxEvent.getClientX(e))<=n&&Math.abs(s.y-mxEvent.getClientY(e))<=n){var t=i.getGridSize();a.drop(i,e,null,t,t)}}o.apply(this,arguments),s=null}},Sidebar.prototype.createVertexTemplateEntry=function(e,n,t,a,i,s,o,r){return r=null!=r&&0<r.length?r:i.toLowerCase(),this.addEntry(r,mxUtils.bind(this,function(){return this.createVertexTemplate(e,n,t,a,i,s,o)}))},Sidebar.prototype.createXmlDocument=function(e,n,t,a){var i=mxUtils.createXmlDocument().createElement(e);return i.setAttribute("label",n),t.forEach(function(e,n){i.setAttribute(e,a[n]?a[n]:"")}),i},Sidebar.prototype.createVertexTemplate=function(e,n,t,a,i,s,o,r){var l=[],d=[];switch(a){case"answer":l=["timeout"],d=["0"];break;case"start":l=["answer"],d=["yes"];break;case"googleasr":l=["key","google_asr_language","timeout","intKey","beep"],d=["","it-IT","10","#","BEEP"];break;case"tildeasr":l=["uri","appid","appsecret","timeout","intKey","beep"],d=["wss://runa.tilde.lv/client/ws/speech/LVASR-ONLINE","","","10","#","BEEP"];break;case"ispeechasr":l=["key","model","ispeech_asr_language","timeout","intKey","beep"],d=["","","it-IT","10","#","BEEP"];break;case"playback":l=["file_id","opts"],d=["0"];break;case"background":l=["file_id","response","digit"],d=["0","5","1"];break;case"menu":l=["file_id","response","digit","retry","variable_id"],d=["0","5","1","1","0"];break;case"getdigits":l=["file_id","response","mindigit","maxdigit","retry","variable_id"],d=["0","5","1","10","1","0"];break;case"getsecretdigits":l=["file_id","response","mindigit","maxdigit","retry","hiddendigitsnum","hiddendigitspos","variable_id"],d=["0","5","1","10","1","0","first","0"];break;case"custom_app":l=["application","options"],d=["",""];break;case"set":l=["variable_id","variable_value"],d=["0",""];break;case"database":l=["odbc_id","query","variable_id"],d=["0","",""];break;case"noop":l=["output"],d=[];break;case"gotoc":l=["context","extension","priority"],d=["","","1"];break;case"system":l=["variable_id","command"],d=[];break;case"agi":l=["command","args"],d=[];break;case"gotoif":l=["condition"],d=[];break;case"gotoiftime":l=["interval_id"],d=["0"];break;case"vswitch":l=["variable_id"],d=["0"];break;case"saydigits":l=["digits","escape_digits"],d=["","#"];break;case"saynumber":l=["number","escape_digits"],d=["","#"];break;case"sayphonetic":l=["text","escape_digits"],d=["","#"];break;case"record":l=["file","recordingFormat","timeout","escape_digits"],d=["","wav","-1","#"];break;case"dial":l=["sip_id","timeout","opts","url"],d=["0","60"];break;case"ext_dial":l=["phone","trunk_name","timeout","opts","url"],d=["","-1","60"];break;case"google_cloud_tts":l=["apiKey","google_cloud_tts_text_type","text","languageCode","ssmlGender"],d=["","text","","en-US","FEMALE"];break;case"tts":l=["text","google_tts_language"],d=["","it"];break;case"ispeechtts":l=["text","key","ispeech_tts_language","speed","intKey"],d=["","","euritalianfemale","0","#"];break;case"lumenvoxtts":case"sestektts":l=["text","options"],d=["",""];break;case"lumenvoxasr":l=["grammar","options"],d=["",""];break;case"sestekasr":l=["grammar","options"],d=["/usr/local/unimrcp/data/grammar.xml",""];break;case"awspolly":l=["aws_access_key_id","aws_secret_access_key","aws_polly_region","aws_polly_voice","text","aws_text_type"],d=["","","eu-west-1","Amy","","text"];break;case"awslex":l=["aws_access_key_id","aws_secret_access_key","aws_lex_region","aws_bot_name","text"],d=["","","eu-west-1","",""];break;case"queue":l=["queue_id","opts","url","file_id","timeout","agi","macro","gosub","position"],d=["-1","xX","","","300"];break;case"voicemail":l=["mailbox","options"],d=["",""];break;case"subproject":l=["project_id"],d=["0"];break;case"math":l=["operation","variable_id"],d=["","0"];break;case"queuelog":l=["queuename","agent","queue_event","data1","data2","data3","data4","data5"],d=[];break;case"goal":l=["goalname"],d=[];break;case"callback":l=["name","lastName","phone","list_id","delay","callback_priority"],d=["{CALLERID(name)}","","{CALLERID(num)}","-1","5","2"];break;case"sendSMS":l=["sms_account_id","to","sms_text"],d=["0"];break;case"sendMail":l=["account_id","to","cc","bcc","subject","text"],d=["0"];break;case"sendFax":l=["account_id","to","choose_attachment","attachment_name","attachment_type","attachment_path"],d=["0"];break;case"login":case"unpause":case"logout":l=["findBy"],d=["internal"];break;case"pause":l=["findBy","pause_id"],d=["internal",""];break;case"dialogflow":l=["key","text","dialogflow_language"],d=["","","it"];break;case"sesteknda":l=["ndauth_url","username","password","ndassistant_url","text","project","ndagenerate_audio","custom_action","custom_action_data","ndaactivity_type"],d=["","","","","","",1,"","","message"];break;case"restapi":l=["url","method","timeout","computedVariables","rawHeaders","rawBody","variable_id"],d=["","GET","5","","","",""];break;case"mrcpsynth":l=["text","options"],d=["",""];break;case"mrcprecog":l=["grammar","options"],d=["",""];break;case"dialogflowV2":l=["dialogflowV2_project_id","client_email","private_key","dialogflowV2_language","text"],d=["","","","en",""];break;default:l=[],d=[]}var c=[new mxCell(this.createXmlDocument(a,i,l,d),new mxGeometry(0,0,n,t),e)];return c[0].vertex=!0,this.createVertexTemplateFromCells(c,n,t,i,s,o,r)},Sidebar.prototype.createVertexTemplateFromCells=function(e,n,t,a,i,s,o){return this.createItem(e,a,i,s,n,t,o)},Sidebar.prototype.createEdgeTemplate=function(e,n,t,a,i,s,o){var r=new mxCell(null!=a?a:"",new mxGeometry(0,0,n,t),e);return r.geometry.setTerminalPoint(new mxPoint(0,t),!0),r.geometry.setTerminalPoint(new mxPoint(n,0),!1),r.geometry.relative=!0,r.edge=!0,this.createEdgeTemplateFromCells([r],n,t,i,s,o)},Sidebar.prototype.createEdgeTemplateFromCells=function(e,n,t,a,i,s){return this.createItem(e,a,i,!0,n,t,s)},Sidebar.prototype.addPaletteFunctions=function(e,n,t,a){this.addPalette(e,n,t,mxUtils.bind(this,function(e){for(var n=0;n<a.length;n++)e.appendChild(a[n](e))}))},Sidebar.prototype.addPalette=function(e,n,t,a){var i=this.createTitle(n);this.container.appendChild(i);var s=document.createElement("div");s.className="geSidebar",mxClient.IS_POINTER&&(s.style.touchAction="none"),mxEvent.addListener(s,"mousemove",mxUtils.bind(this,function(e){mxEvent.getSource(e)==s?s.setAttribute("title",mxResources.get("sidebarTooltip")):s.removeAttribute("title")})),t?(a(s),a=null):s.style.display="none",this.addFoldingHandler(i,s,a);var o=document.createElement("div");return o.appendChild(s),this.container.appendChild(o),null!=e&&(this.palettes[e]=[i,o]),s},Sidebar.prototype.addFoldingHandler=function(t,a,i){var s=!1;(!mxClient.IS_IE||8<=document.documentMode)&&(t.style.backgroundImage="none"==a.style.display?"url('"+this.collapsedImage+"')":"url('"+this.expandedImage+"')"),t.style.backgroundRepeat="no-repeat",t.style.backgroundPosition="0% 50%",mxEvent.addListener(t,"click",mxUtils.bind(this,function(e){if("none"==a.style.display){if(s)a.style.display="block";else if(s=!0,null!=i){t.style.cursor="wait";var n=t.innerHTML;t.innerHTML=mxResources.get("loading")+"...",window.setTimeout(function(){var e=mxClient.NO_FO;mxClient.NO_FO=Editor.prototype.originalNoForeignObject,i(a),mxClient.NO_FO=e,a.style.display="block",t.style.cursor="",t.innerHTML=n},0)}else a.style.display="block";t.style.backgroundImage="url('"+this.expandedImage+"')"}else t.style.backgroundImage="url('"+this.collapsedImage+"')",a.style.display="none";mxEvent.consume(e)}))},Sidebar.prototype.addImagePalette=function(e,n,s,o,r,t,a){for(var l=[],d=0;d<r.length;d++)mxUtils.bind(this,function(e,n,t){if(null==t){var a=e.lastIndexOf("/"),i=e.lastIndexOf(".");t=e.substring(0<=a?a+1:0,0<=i?i:e.length).replace(/[-_]/g," ")}l.push(this.createVertexTemplateEntry("image;html=1;image="+s+e+o,this.defaultImageWidth,this.defaultImageHeight,r[d],n,!1,!0,this.filterTags(t)))})(r[d],null!=t?t[d]:null,null!=a?a[r[d]]:null);this.addPaletteFunctions(e,n,!1,l)},"undefined"!=typeof html4&&(html4.ATTRIBS["a::target"]=0),mxConstants.SHADOW_OPACITY=.25,mxConstants.SHADOWCOLOR="#000000",mxConstants.VML_SHADOWCOLOR="#d0d0d0",mxGraph.prototype.pageBreakColor="#c0c0c0",mxGraph.prototype.pageScale=1,function(){try{if(null!=navigator&&null!=navigator.language){var e=navigator.language.toLowerCase();mxGraph.prototype.pageFormat="en-us"===e||"en-ca"===e||"es-mx"===e?mxConstants.PAGE_FORMAT_LETTER_PORTRAIT:mxConstants.PAGE_FORMAT_A4_PORTRAIT}}catch(e){}}(),mxText.prototype.baseSpacingTop=5,mxText.prototype.baseSpacingBottom=1,mxGraphModel.prototype.ignoreRelativeEdgeParent=!1,mxGraphView.prototype.gridImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhCgAKAJEAAAAAAP///8zMzP///yH5BAEAAAMALAAAAAAKAAoAAAIJ1I6py+0Po2wFADs=":IMAGE_PATH+"/grid.gif",mxGraphView.prototype.gridSteps=4,mxGraphView.prototype.minGridSize=4,mxGraphView.prototype.gridColor="#e0e0e0",mxSvgCanvas2D.prototype.foAltText="[Not supported by viewer]",Graph=function(e,n,t,a){mxGraph.call(this,e,n,t,a),this.setConnectable(!0),this.setDropEnabled(!1),this.setPanning(!0),this.setTooltips(!mxClient.IS_TOUCH),this.setAllowLoops(!1),this.setMultigraph(!1),this.allowAutoPanning=!0,this.resetEdgesOnConnect=!1,this.constrainChildren=!1,this.connectionHandler.targetConnectImage=!0,this.setAllowDanglingEdges(!1),this.connectionHandler.setCreateTarget(!1),this.connectionHandler.isValidSource=function(){return mxConnectionHandler.prototype.isValidSource.apply(this,arguments)&&"2"!=urlParams.connect},this.alternateEdgeStyle="vertical",null==a&&this.loadStylesheet();var i=new mxRubberband(this);this.getRubberband=function(){return i},this.panningHandler.addListener(mxEvent.PAN_START,mxUtils.bind(this,function(){this.container.style.cursor="pointer"})),this.panningHandler.addListener(mxEvent.PAN_END,mxUtils.bind(this,function(){this.container.style.cursor="default"})),this.isHtmlLabel=function(e){var n=this.view.getState(e),t=null!=n?n.style:this.getCellStyle(e);return"1"==t.html||"wrap"==t.whiteSpace},this.cellRenderer.getLabelValue=function(e){var n=mxCellRenderer.prototype.getLabelValue.apply(this,arguments);return"wrap"==e.style.whiteSpace&&1!=e.style.html&&(n=mxUtils.htmlEntities(n,!1)),n},this.isCellLocked=function(e){return!1},this.connectionHandler.tapAndHoldTolerance=16;var s=this.connectionHandler.tapAndHold;this.connectionHandler.tapAndHold=function(e,n){null==n?this.graph.panningHandler.active||(i.start(e.getGraphX(),e.getGraphY()),this.graph.panningHandler.panningTrigger=!1):tapAndHoldStartsConnection?s.apply(this,arguments):this.graph.isCellSelected(n.cell)&&1<this.graph.getSelectionCount()&&this.graph.removeSelectionCell(n.cell)},touchStyle&&this.initTouch()},mxUtils.extend(Graph,mxGraph),Graph.prototype.minFitScale=null,Graph.prototype.maxFitScale=null,Graph.prototype.loadStylesheet=function(){var e=mxUtils.load(STYLE_PATH+"/default.xml").getDocumentElement();new mxCodec(e.ownerDocument).decode(e,this.getStylesheet())},Graph.prototype.flipEdge=function(e){if(null!=e){var n=this.view.getState(e),t=null!=n?n.style:this.getCellStyle(e);if(null!=t){var a=mxUtils.getValue(t,mxConstants.STYLE_ELBOW,mxConstants.ELBOW_HORIZONTAL)==mxConstants.ELBOW_HORIZONTAL?mxConstants.ELBOW_VERTICAL:mxConstants.ELBOW_HORIZONTAL;this.setCellStyles(mxConstants.STYLE_ELBOW,a,[e])}}},Graph.prototype.setDefaultEdge=function(e){if(null!=e&&this.getModel().isEdge(e)){var n=this.getModel().cloneCells([e])[0];null!=n.geometry&&(n.geometry.points=null);var t=n.getStyle();t=mxUtils.setStyle(t,mxConstants.STYLE_ENTRY_X,null),t=mxUtils.setStyle(t,mxConstants.STYLE_ENTRY_Y,null),t=mxUtils.setStyle(t,mxConstants.STYLE_EXIT_X,null),t=mxUtils.setStyle(t,mxConstants.STYLE_EXIT_Y,null),n.setStyle(t),this.connectionHandler.createEdgeState=function(e){return this.graph.view.createState(n)},this.connectionHandler.factoryMethod=function(){return this.graph.cloneCells([n])[0]}}},Graph.prototype.isCellFoldable=function(e){return this.foldingEnabled&&this.isSwimlane(e)},Graph.prototype.isValidRoot=function(e){return this.isSwimlane(e)},Graph.prototype.createGroupCell=function(){var e=mxGraph.prototype.createGroupCell.apply(this,arguments);return e.setStyle("group"),e},Graph.prototype.getTooltipForCell=function(e){var n="";return this.getModel().isVertex(e)?n+=mxResources.get("description_"+e.value.nodeName)||"":this.getModel().isEdge(e)&&(n=mxGraph.prototype.getTooltipForCell.apply(this,arguments)),n},Graph.prototype.convertValueToString=function(e){return null!=e.value&&"object"==typeof e.value?e.value.getAttribute("label"):mxGraph.prototype.convertValueToString.apply(this,arguments)},Graph.prototype.cellLabelChanged=function(e,n,t){if(null!=e.value&&"object"==typeof e.value){var a=e.value.cloneNode(!0);a.setAttribute("label",n),n=a}mxGraph.prototype.cellLabelChanged.apply(this,arguments)},Graph.prototype.setLinkForCell=function(e,n){var t=null;null!=e.value&&"object"==typeof e.value?t=e.value.cloneNode(!0):(t=mxUtils.createXmlDocument().createElement("UserObject")).setAttribute("label",e.value);null!=n&&0<n.length?t.setAttribute("link",n):t.removeAttribute("link"),this.model.setValue(e,t)},Graph.prototype.getLinkForCell=function(e){return null!=e.value&&"object"==typeof e.value?e.value.getAttribute("link"):null},Graph.prototype.initTouch=function(){this.connectionHandler.marker.isEnabled=function(){return null!=this.graph.connectionHandler.first},this.addListener(mxEvent.START_EDITING,function(e,n){this.panningHandler.hideMenu()});var s=!1,o=null;this.updateMouseEvent=function(e){if(mxGraph.prototype.updateMouseEvent.apply(this,arguments),null==e.getState()){var n=this.getCellAt(e.graphX,e.graphY);this.getModel().isEdge(n)&&(e.state=this.view.getState(n),null!=e.state&&null!=e.state.shape&&(this.container.style.cursor=e.state.shape.node.style.cursor))}null==e.getState()&&(this.container.style.cursor="default")},this.fireMouseEvent=function(e,n,t){if(e==mxEvent.MOUSE_DOWN)this.panningHandler.isMenuShowing()?(s=!1,o=null):(o=n.getCell(),s=null!=o?this.isCellSelected(o):this.isSelectionEmpty());else if(e==mxEvent.MOUSE_UP){if(s&&!this.isEditing()){if(!this.panningHandler.isMenuShowing()){var a=mxEvent.getClientX(n.getEvent()),i=mxEvent.getClientY(n.getEvent());this.panningHandler.popup(a+16,i,o,n.getEvent())}return s=!1,o=null,void n.consume()}s=!1,o=null}mxGraph.prototype.fireMouseEvent.apply(this,arguments),e==mxEvent.MOUSE_MOVE&&n.isConsumed()&&(s=!1,o=null)}},function(){if(mxVertexHandler.prototype.rotationEnabled=!0,mxText.prototype.baseSpacingTop=5,mxText.prototype.baseSpacingBottom=1,touchStyle){mxConstants.HANDLE_SIZE=16,mxConstants.LABEL_HANDLE_SIZE=7,mxClient.IS_TOUCH&&(mxVertexHandler.prototype.tolerance=4,mxEdgeHandler.prototype.tolerance=6,Graph.prototype.tolerance=14,Graph.prototype.gridSize=20,mxPanningHandler.prototype.selectOnPopup=!1,mxPanningHandler.prototype.useLeftButtonForPanning=!0,mxPanningHandler.prototype.isPanningTrigger=function(e){var n=e.getEvent();return this.useLeftButtonForPanning&&(this.ignoreCell||null==e.getState())||mxEvent.isControlDown(n)&&mxEvent.isShiftDown(n)||this.usePopupTrigger&&mxEvent.isPopupTrigger(n)});var t=mxGraphHandler.prototype.mouseDown;mxGraphHandler.prototype.mouseDown=function(e,n){t.apply(this,arguments),this.graph.isCellSelected(n.getCell())&&1<this.graph.getSelectionCount()&&(this.delayedSelection=!1)},Graph.prototype.createHandlers=function(e){this.tooltipHandler=new mxTooltipHandler(this),this.tooltipHandler.setEnabled(!1),this.selectionCellsHandler=new mxSelectionCellsHandler(this),this.panningHandler=new mxPanningHandler(this),this.panningHandler.panningEnabled=!1,this.connectionHandler=new mxConnectionHandler(this),this.connectionHandler.setEnabled(!1),this.graphHandler=new mxGraphHandler(this)},mxConnectionHandler.prototype.selectCells=function(e,n){touchStyle&&null!=n?this.graph.setSelectionCell(n):this.graph.setSelectionCell(e)};var a=mxGraph.prototype.dblClick;Graph.prototype.dblClick=function(e,n){if(null==n){var t=mxUtils.convertPoint(this.container,mxEvent.getClientX(e),mxEvent.getClientY(e));n=this.getCellAt(t.x,t.y)}a.call(this,e,n)};var e=new mxImage(IMAGE_PATH+"/touch-handle.png",16,16);mxVertexHandler.prototype.handleImage=e,mxEdgeHandler.prototype.handleImage=e,mxOutline.prototype.sizerImage=e,(new Image).src=e.src;var n=IMAGE_PATH+"/touch-connector.png",i=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){i.apply(this,arguments),showConnectorImg&&this.graph.connectionHandler.isEnabled()&&this.graph.isCellConnectable(this.state.cell)&&!this.graph.isValidRoot(this.state.cell)&&1==this.graph.getSelectionCount()&&(this.connectorImg=mxUtils.createImage(n),this.connectorImg.style.cursor="pointer",this.connectorImg.style.width="29px",this.connectorImg.style.height="29px",this.connectorImg.style.position="absolute",mxClient.IS_TOUCH||(this.connectorImg.setAttribute("title",mxResources.get("connect")),mxEvent.redirectMouseEvents(this.connectorImg,this.graph,this.state)),this.connectorImg.style.padding="2px",mxEvent.addGestureListeners(this.connectorImg,mxUtils.bind(this,function(e){this.graph.panningHandler.hideMenu();var n=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e));this.graph.connectionHandler.start(this.state,n.x,n.y),this.graph.isMouseDown=!0,mxEvent.consume(e)})),this.graph.container.appendChild(this.connectorImg)),this.redrawTools()};var s=mxVertexHandler.prototype.redraw;mxVertexHandler.prototype.redraw=function(){s.apply(this),this.redrawTools()},mxVertexHandler.prototype.redrawTools=function(){null!=this.state&&null!=this.connectorImg&&(mxVertexHandler.prototype.singleSizer?(this.connectorImg.style.left=this.state.x+this.state.width-this.connectorImg.offsetWidth/2+"px",this.connectorImg.style.top=this.state.y-this.connectorImg.offsetHeight/2+"px"):(this.connectorImg.style.left=this.state.x+this.state.width+mxConstants.HANDLE_SIZE/2+4+"px",this.connectorImg.style.top=this.state.y+(this.state.height-this.connectorImg.offsetHeight)/2+"px"))};var o=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(e,n){o.apply(this,arguments),null!=this.connectorImg&&(this.connectorImg.parentNode.removeChild(this.connectorImg),this.connectorImg=null)},(new Image).src=n}else{var r=new mxImage(IMAGE_PATH+"/connector.png",15,15);if(mxConnectionHandler.prototype.connectImage=r,(new Image).src=r.src,"2"==urlParams.connect){r=new mxImage(IMAGE_PATH+"/connector.png",15,15),i=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){i.apply(this,arguments),showConnectorImg&&this.graph.connectionHandler.isEnabled()&&this.graph.isCellConnectable(this.state.cell)&&!this.graph.isValidRoot(this.state.cell)&&1==this.graph.getSelectionCount()&&(mxClient.IS_IE&&!mxClient.IS_SVG?(this.connectorImg=document.createElement("div"),this.connectorImg.style.backgroundImage="url("+r.src+")",this.connectorImg.style.backgroundPosition="center",this.connectorImg.style.backgroundRepeat="no-repeat",this.connectorImg.style.width=r.width+4+"px",this.connectorImg.style.height=r.height+4+"px",this.connectorImg.style.display=mxClient.IS_QUIRKS?"inline":"inline-block"):(this.connectorImg=mxUtils.createImage(r.src),this.connectorImg.style.width=r.width+"px",this.connectorImg.style.height=r.height+"px"),this.connectorImg.style.cursor="pointer",this.connectorImg.style.position="absolute",this.connectorImg.setAttribute("title",mxResources.get("connect")),mxEvent.redirectMouseEvents(this.connectorImg,this.graph,this.state),this.connectorImg.style.padding="2px",mxEvent.addListener(this.connectorImg,"mousedown",mxUtils.bind(this,function(e){this.graph.panningHandler.hideMenu();var n=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e));this.graph.connectionHandler.start(this.state,n.x,n.y),this.graph.isMouseDown=!0,mxEvent.consume(e)})),this.graph.container.appendChild(this.connectorImg)),this.redrawTools()};s=mxVertexHandler.prototype.redraw;mxVertexHandler.prototype.redraw=function(){s.apply(this),this.redrawTools()},mxVertexHandler.prototype.redrawTools=function(){null!=this.state&&null!=this.connectorImg&&(mxVertexHandler.prototype.singleSizer?(this.connectorImg.style.left=this.state.x+this.state.width-this.connectorImg.offsetWidth/2+"px",this.connectorImg.style.top=this.state.y-this.connectorImg.offsetHeight/2+"px"):(this.connectorImg.style.left=this.state.x+this.state.width+mxConstants.HANDLE_SIZE/2+2+"px",this.connectorImg.style.top=this.state.y+(this.state.height-this.connectorImg.offsetHeight)/2+"px"))};o=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(e,n){o.apply(this,arguments),null!=this.connectorImg&&(this.connectorImg.parentNode.removeChild(this.connectorImg),this.connectorImg=null)}}}}(),Actions.prototype.init=function(){var n=this.editorUi,l=n.editor,d=l.graph;this.addAction("new",function(){n.projectDesignController.newProject()},CRUD_PERMISSIONS.canEdit),this.addAction("open",function(){n.projectDesignController.openProject()},CRUD_PERMISSIONS.canEdit),this.addAction("save",function(){n.projectDesignController.saveOrPublishProject(mxUtils.getPrettyXml(l.getGraphXml())),n.editor.modified=!1},CRUD_PERMISSIONS.canEdit,null,"Ctrl+S"),this.addAction("saveAs",function(){n.projectDesignController.saveProjectAs(mxUtils.getPrettyXml(l.getGraphXml()))},CRUD_PERMISSIONS.canEdit,null,"Ctrl+Shift+S"),this.addAction("publish",function(){n.editor.setStatus(""),null===n.validate()?(n.projectDesignController.saveOrPublishProject(mxUtils.getPrettyXml(l.getGraphXml()),!0),n.editor.modified=!1):(n.editor.setStatus("...Error publishing! Please check the project and try again!"),setTimeout(function(){n.editor.setStatus("")},3e3))},CRUD_PERMISSIONS.canEdit,null,"Ctrl+Shift+P"),this.addAction("variable",function(){n.projectDesignController.newVariable()},CRUD_PERMISSIONS.canEdit),this.addAction("import",function(){n.projectDesignController.importXML(function(e){l.setGraphXml(mxUtils.parseXml(e).documentElement)})},CRUD_PERMISSIONS.canEdit),this.addAction("export",function(){n.exportXML(mxUtils.getPrettyXml(l.getGraphXml()))},null,null,"Ctrl+E"),this.addAction("editFile",function(){n.projectDesignController.editXML(mxUtils.getPrettyXml(l.getGraphXml()),function(e){l.setGraphXml(mxUtils.parseXml(e).documentElement)})},CRUD_PERMISSIONS.canEdit),this.addAction("print",function(){mxUtils.printScreen(d)},null,"sprite-print","Ctrl+P"),this.addAction("preview",function(){mxUtils.show(d,null,10,10)}),this.addAction("undo",function(){l.undoManager.undo()},null,"sprite-undo","Ctrl+Z"),this.addAction("redo",function(){l.undoManager.redo()},null,"sprite-redo","Ctrl+Y"),this.addAction("cut",function(){mxClipboard.cut(d)},null,"sprite-cut","Ctrl+X"),this.addAction("copy",function(){mxClipboard.copy(d)},null,"sprite-copy","Ctrl+C"),this.addAction("paste",function(){mxClipboard.paste(d)},!1,"sprite-paste","Ctrl+V"),this.addAction("delete",function(){d.removeCells()},null,null,"Delete"),this.addAction("duplicate",function(){var e=d.gridSize;d.setSelectionCells(d.moveCells(d.getSelectionCells(),e,e,!0))},null,null,"Ctrl+D"),this.addAction("selectVertices",function(){d.selectVertices()},null,null,"Ctrl+Shift+V"),this.addAction("selectEdges",function(){d.selectEdges()},null,null,"Ctrl+Shift+E"),this.addAction("selectAll",function(){d.selectAll()},null,null,"Ctrl+A"),this.addAction("home",function(){d.home()},null,null,"Home"),this.addAction("exitGroup",function(){d.exitGroup()},null,null,"Page Up"),this.addAction("enterGroup",function(){d.enterGroup()},null,null,"Page Down"),this.addAction("expand",function(){d.foldCells(!1)},null,null,"Enter"),this.addAction("collapse",function(){d.foldCells(!0)},null,null,"Backspace"),this.addAction("toFront",function(){d.orderCells(!1)},null,null,"Ctrl+F"),this.addAction("toBack",function(){d.orderCells(!0)},null,null,"Ctrl+B"),this.addAction("group",function(){d.setSelectionCell(d.groupCells(null,0))},null,null,"Ctrl+G"),this.addAction("ungroup",function(){d.setSelectionCells(d.ungroupCells())},null,null,"Ctrl+U"),this.addAction("removeFromGroup",function(){d.removeCellsFromParent()}),this.addAction("editLink",function(){var e=d.getSelectionCell(),n=d.getLinkForCell(e);null==n&&(n=""),null!=(n=mxUtils.prompt(mxResources.get("enterValue"),n))&&d.setLinkForCell(e,n)}),this.addAction("openLink",function(){var e=d.getSelectionCell(),n=d.getLinkForCell(e);null!=n&&window.open(n)}),this.addAction("autosize",function(){var e=d.getSelectionCells();if(null!=e){d.getModel().beginUpdate();try{for(var n=0;n<e.length;n++){var t=e[n];d.getModel().getChildCount(t)?d.updateGroupBounds([t],20):d.updateCellSize(t)}}finally{d.getModel().endUpdate()}}}),this.addAction("wordWrap",function(){var e=d.getView().getState(d.getSelectionCell()),n="wrap";null!=e&&"wrap"==e.style[mxConstants.STYLE_WHITE_SPACE]&&(n=null),d.setCellStyles(mxConstants.STYLE_WHITE_SPACE,n)}),this.addAction("rotation",function(){var e="0",n=d.getView().getState(d.getSelectionCell());null!=n&&(e=n.style[mxConstants.STYLE_ROTATION]||e),null!=(e=mxUtils.prompt(mxResources.get("enterValue")+" ("+mxResources.get("rotation")+" 0-360)",e))&&d.setCellStyles(mxConstants.STYLE_ROTATION,e)}),this.addAction("tilt",function(){var e=d.getSelectionCells();if(null!=e){d.getModel().beginUpdate();try{for(var n=0;n<e.length;n++){var t=e[n];if(d.getModel().isVertex(t)&&0==d.getModel().getChildCount(t)){var a=d.getCellGeometry(t);if(null!=a){(a=a.clone()).x+=a.width/2-a.height/2,a.y+=a.height/2-a.width/2;var i=a.width;a.width=a.height,a.height=i,d.getModel().setGeometry(t,a);var s=d.view.getState(t);if(null!=s){var o=s.style[mxConstants.STYLE_DIRECTION]||"east";"east"==o?o="south":"south"==o?o="west":"west"==o?o="north":"north"==o&&(o="east"),d.setCellStyles(mxConstants.STYLE_DIRECTION,o,[t])}}}}}finally{d.getModel().endUpdate()}}},null,null,"Ctrl+R"),this.addAction("actualSize",function(){d.zoomTo(1)}),this.addAction("zoomIn",function(){d.zoomIn()},null,null,"Add"),this.addAction("zoomOut",function(){d.zoomOut()},null,null,"Subtract"),this.addAction("fitWindow",function(){d.fit()}),this.addAction("fitPage",mxUtils.bind(this,function(){d.pageVisible||this.get("pageView").funct();var e=d.pageFormat,n=d.pageScale,t=d.container.clientWidth-20,a=d.container.clientHeight-20,i=Math.floor(100*Math.min(t/e.width/n,a/e.height/n))/100;d.zoomTo(i),d.container.scrollLeft=Math.round(d.view.translate.x*i-Math.max(10,(d.container.clientWidth-e.width*n*i)/2)),d.container.scrollTop=Math.round(d.view.translate.y*i-Math.max(10,(d.container.clientHeight-e.height*n*i)/2))})),this.addAction("fitPageWidth",mxUtils.bind(this,function(){d.pageVisible||this.get("pageView").funct();var e=d.pageFormat,n=d.pageScale,t=d.container.clientWidth-20,a=Math.floor(100*t/e.width/n)/100;d.zoomTo(a),d.container.scrollLeft=Math.round(d.view.translate.x*a-Math.max(10,(d.container.clientWidth-e.width*n*a)/2)),d.container.scrollTop=Math.round(d.view.translate.y*a-Math.max(10,(d.container.clientHeight-e.height*n*a)/2))})),this.put("customZoom",new Action(mxResources.get("custom"),function(){var e=mxUtils.prompt(mxResources.get("enterValue")+" (%)",parseInt(100*d.getView().getScale()));null!=e&&0<e.length&&!isNaN(parseInt(e))&&d.zoomTo(parseInt(e)/100)}));var e=null;(e=this.addAction("grid",function(){d.setGridEnabled(!d.isGridEnabled()),l.updateGraphComponents()},null,null,"Ctrl+Shift+G")).setToggleAction(!0),e.setSelectedCallback(function(){return d.isGridEnabled()}),(e=this.addAction("guides",function(){d.graphHandler.guidesEnabled=!d.graphHandler.guidesEnabled})).setToggleAction(!0),e.setSelectedCallback(function(){return d.graphHandler.guidesEnabled}),(e=this.addAction("tooltips",function(){d.tooltipHandler.setEnabled(!d.tooltipHandler.isEnabled())})).setToggleAction(!0),e.setSelectedCallback(function(){return d.tooltipHandler.isEnabled()}),(e=this.addAction("navigation",function(){d.foldingEnabled=!d.foldingEnabled,d.view.revalidate()})).setToggleAction(!0),e.setSelectedCallback(function(){return d.foldingEnabled}),(e=this.addAction("scrollbars",function(){if(d.scrollbars=!d.scrollbars,l.updateGraphComponents(),d.scrollbars){var e=d.view.translate.x,n=d.view.translate.y;d.view.translate.x=0,d.view.translate.y=0,d.sizeDidChange(),d.container.scrollLeft-=Math.round(e*d.view.scale),d.container.scrollTop-=Math.round(n*d.view.scale)}else{var t=d.view.translate;d.view.setTranslate(t.x-d.container.scrollLeft/d.view.scale,t.y-d.container.scrollTop/d.view.scale),d.container.scrollLeft=0,d.container.scrollTop=0,d.sizeDidChange()}},!mxClient.IS_TOUCH)).setToggleAction(!0),e.setSelectedCallback(function(){return"auto"==d.container.style.overflow}),(e=this.addAction("pageView",mxUtils.bind(this,function(){d.pageVisible=!d.pageVisible,d.pageBreaksVisible=d.pageVisible,d.preferPageSize=d.pageBreaksVisible,d.view.validate(),d.sizeDidChange(),l.updateGraphComponents(),l.outline.update(),mxUtils.hasScrollbars(d.container)&&(d.pageVisible?(d.container.scrollLeft-=20,d.container.scrollTop-=20):(d.container.scrollLeft+=20,d.container.scrollTop+=20))}))).setToggleAction(!0),e.setSelectedCallback(function(){return d.pageVisible}),(e=this.addAction("connect",function(){d.setConnectable(!d.connectionHandler.isEnabled())},null,null,"Ctrl+Q")).setToggleAction(!0),e.setSelectedCallback(function(){return d.connectionHandler.isEnabled()}),(e=this.addAction("copyConnect",function(){d.connectionHandler.setCreateTarget(!d.connectionHandler.isCreateTarget())})).setToggleAction(!0),e.setSelectedCallback(function(){return d.connectionHandler.isCreateTarget()}),this.addAction("help",function(){window.open("https://wiki.xcallymotion.com/display/XMV/Cally+Square")}),this.put("about",new Action(mxResources.get("about")+" Cally Square",function(){window.open("http://callysquare.com/")},null,null,null));var t=mxUtils.bind(this,function(e,n){this.addAction(e,function(){d.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,n)})});t("bold",mxConstants.FONT_BOLD),t("italic",mxConstants.FONT_ITALIC),t("underline",mxConstants.FONT_UNDERLINE),this.addAction("shadow",function(){d.toggleCellStyles(mxConstants.STYLE_SHADOW)}),this.addAction("dashed",function(){d.toggleCellStyles(mxConstants.STYLE_DASHED)}),this.addAction("rounded",function(){d.toggleCellStyles(mxConstants.STYLE_ROUNDED)}),this.addAction("curved",function(){d.toggleCellStyles(mxConstants.STYLE_CURVED)}),this.addAction("style",function(){var e=d.getSelectionCells();if(null!=e&&0<e.length){var n=d.getModel(),t=mxUtils.prompt(mxResources.get("enterValue")+" ("+mxResources.get("style")+")",n.getStyle(e[0])||"");null!=t&&d.setCellStyle(t,e)}}),this.addAction("setAsDefaultEdge",function(){d.setDefaultEdge(d.getSelectionCell())}),this.addAction("addWaypoint",function(){var e=d.getSelectionCell();if(null!=e&&d.getModel().isEdge(e)){var n=l.graph.selectionCellsHandler.getHandler(e);if(n instanceof mxEdgeHandler){var t=d.view.translate,a=d.view.scale,i=t.x,s=t.y,o=d.getModel().getParent(e),r=d.getCellGeometry(o);d.getModel().isVertex(o)&&null!=r&&(i+=r.x,s+=r.y),n.addPointAt(n.state,d.panningHandler.triggerX/a-i,d.panningHandler.triggerY/a-s)}}}),this.addAction("removeWaypoint",function(){var e=n.actions.get("removeWaypoint");null!=e.handler&&e.handler.removePoint(e.handler.state,e.index)}),this.addAction("image",function(){var e="",n=d.getView().getState(d.getSelectionCell());if(null!=n&&(e=n.style[mxConstants.STYLE_IMAGE]||e),null!=(e=mxUtils.prompt(mxResources.get("enterValue")+" ("+mxResources.get("url")+")",e))&&0<e.length){var t=new Image;t.onload=function(){!function(e,n,t){var a=null,i=d.getSelectionCells();d.getModel().beginUpdate();try{if(0==i.length){var s=d.getGridSize();a=i=[d.insertVertex(d.getDefaultParent(),null,"",s,s,n,t)]}if(d.setCellStyles(mxConstants.STYLE_IMAGE,e,i),d.setCellStyles(mxConstants.STYLE_SHAPE,"image",i),1==d.getSelectionCount()&&null!=n&&null!=t){var o=i[0],r=d.getModel().getGeometry(o);null!=r&&((r=r.clone()).width=n,r.height=t,d.getModel().setGeometry(o,r))}}finally{d.getModel().endUpdate()}null!=a&&(d.setSelectionCells(a),d.scrollCellToVisible(a[0]))}(e,t.width,t.height)},t.onerror=function(){mxUtils.alert(mxResources.get("fileNotFound"))},t.src=e}})},Actions.prototype.addAction=function(e,n,t,a,i){return this.put(e,new Action(mxResources.get(e),n,t,a,i))},Actions.prototype.put=function(e,n){return this.actions[e]=n},Actions.prototype.get=function(e){return this.actions[e]},mxUtils.extend(Action,mxEventSource),Action.prototype.setEnabled=function(e){this.enabled!=e&&(this.enabled=e,this.fireEvent(new mxEventObject("stateChanged")))},Action.prototype.setToggleAction=function(e){this.toggleAction=e},Action.prototype.setSelectedCallback=function(e){this.selectedCallback=e},Action.prototype.isSelected=function(){return this.selectedCallback()},Menus=function(e){this.editorUi=e,this.menus=new Object,this.init(),(new Image).src=IMAGE_PATH+"/checkmark.gif"},Menus.prototype.init=function(){var i=this.editorUi.editor.graph;this.put("fontFamily",new Menu(mxUtils.bind(this,function(e,n){for(var t=["Helvetica","Verdana","Times New Roman","Garamond","Comic Sans MS","Courier New","Georgia","Lucida Console","Tahoma"],a=0;a<t.length;a++){this.styleChange(e,t[a],[mxConstants.STYLE_FONTFAMILY],[t[a]],null,n).firstChild.nextSibling.style.fontFamily=t[a]}e.addSeparator(n),this.promptChange(e,mxResources.get("custom"),"",mxConstants.DEFAULT_FONTFAMILY,mxConstants.STYLE_FONTFAMILY,n)}))),this.put("fontSize",new Menu(mxUtils.bind(this,function(e,n){for(var t=[6,8,9,10,11,12,14,18,24,36,48,72],a=0;a<t.length;a++)this.styleChange(e,t[a],[mxConstants.STYLE_FONTSIZE],[t[a]],null,n);e.addSeparator(n),this.promptChange(e,mxResources.get("custom"),"(pt)","12",mxConstants.STYLE_FONTSIZE,n)}))),this.put("linewidth",new Menu(mxUtils.bind(this,function(e,n){for(var t=[1,2,3,4,8,12,16,24],a=0;a<t.length;a++)this.styleChange(e,t[a]+"px",[mxConstants.STYLE_STROKEWIDTH],[t[a]],null,n);e.addSeparator(n),this.promptChange(e,mxResources.get("custom"),"(px)","1",mxConstants.STYLE_STROKEWIDTH,n)}))),this.put("line",new Menu(mxUtils.bind(this,function(e,n){this.styleChange(e,mxResources.get("straight"),[mxConstants.STYLE_EDGE],[null],null,n),this.styleChange(e,mxResources.get("entityRelation"),[mxConstants.STYLE_EDGE],["entityRelationEdgeStyle"],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("horizontal"),[mxConstants.STYLE_EDGE,mxConstants.STYLE_ELBOW],["elbowEdgeStyle","horizontal"],null,n),this.styleChange(e,mxResources.get("vertical"),[mxConstants.STYLE_EDGE,mxConstants.STYLE_ELBOW],["elbowEdgeStyle","vertical"],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("manual"),[mxConstants.STYLE_EDGE],["segmentEdgeStyle"],null,n),this.styleChange(e,mxResources.get("automatic"),[mxConstants.STYLE_EDGE],["orthogonalEdgeStyle"],null,n)}))),this.put("lineend",new Menu(mxUtils.bind(this,function(e,n){this.styleChange(e,mxResources.get("classic"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_CLASSIC],null,n),this.styleChange(e,mxResources.get("openArrow"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_OPEN],null,n),this.styleChange(e,mxResources.get("block"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_BLOCK],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("oval"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_OVAL],null,n),this.styleChange(e,mxResources.get("diamond"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_DIAMOND],null,n),this.styleChange(e,mxResources.get("diamondThin"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_DIAMOND_THIN],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("none"),[mxConstants.STYLE_ENDARROW],[mxConstants.NONE],null,n),e.addSeparator(n),e.addItem(mxResources.get("transparent"),null,function(){i.toggleCellStyles("endFill",!0)},n,null,!0),e.addSeparator(n),this.promptChange(e,mxResources.get("size"),"(px)",mxConstants.DEFAULT_MARKERSIZE,mxConstants.STYLE_ENDSIZE,n)}))),this.put("linestart",new Menu(mxUtils.bind(this,function(e,n){this.styleChange(e,mxResources.get("classic"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_CLASSIC],null,n),this.styleChange(e,mxResources.get("openArrow"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_OPEN],null,n),this.styleChange(e,mxResources.get("block"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_BLOCK],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("oval"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_OVAL],null,n),this.styleChange(e,mxResources.get("diamond"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_DIAMOND],null,n),this.styleChange(e,mxResources.get("diamondThin"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_DIAMOND_THIN],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("none"),[mxConstants.STYLE_STARTARROW],[mxConstants.NONE],null,n),e.addSeparator(n),e.addItem(mxResources.get("transparent"),null,function(){i.toggleCellStyles("startFill",!0)},n,null,!0),e.addSeparator(n),this.promptChange(e,mxResources.get("size"),"(px)",mxConstants.DEFAULT_MARKERSIZE,mxConstants.STYLE_STARTSIZE,n)}))),this.put("spacing",new Menu(mxUtils.bind(this,function(e,n){var t=this.editorUi.actions.get("shadow").enabled,a=this.get("line").enabled;(t||e.showDisabled)&&(this.promptChange(e,mxResources.get("top"),"(px)","0",mxConstants.STYLE_SPACING_TOP,n,t),this.promptChange(e,mxResources.get("right"),"(px)","0",mxConstants.STYLE_SPACING_RIGHT,n,t),this.promptChange(e,mxResources.get("bottom"),"(px)","0",mxConstants.STYLE_SPACING_BOTTOM,n,t),this.promptChange(e,mxResources.get("left"),"(px)","0",mxConstants.STYLE_SPACING_LEFT,n,t),e.addSeparator(n),this.promptChange(e,mxResources.get("global"),"(px)","0",mxConstants.STYLE_SPACING,n,t),this.promptChange(e,mxResources.get("perimeter"),"(px)","0",mxConstants.STYLE_PERIMETER_SPACING,n,t)),(a||e.showDisabled)&&(e.addSeparator(n),this.promptChange(e,mxResources.get("sourceSpacing"),"(px)","0",mxConstants.STYLE_SOURCE_PERIMETER_SPACING,n,a),this.promptChange(e,mxResources.get("targetSpacing"),"(px)","0",mxConstants.STYLE_TARGET_PERIMETER_SPACING,n,a))}))),this.put("format",new Menu(mxUtils.bind(this,function(e,n){this.addMenuItem(e,"style",n)}))),this.put("text",new Menu(mxUtils.bind(this,function(e,n){var t=this.get("text").enabled;e.addSeparator(n),this.addSubmenu("fontFamily",e,n),this.addSubmenu("fontSize",e,n),this.addMenuItems(e,["-","bold","italic","underline","-"],n),this.addSubmenu("alignment",e,n),this.addMenuItem(e,"wordWrap",n),e.addSeparator(n),this.promptChange(e,mxResources.get("textOpacity"),"(%)","100",mxConstants.STYLE_TEXT_OPACITY,n,t),e.addItem(mxResources.get("hide"),null,function(){i.toggleCellStyles(mxConstants.STYLE_NOLABEL,!1)},n,null,t)}))),this.put("alignment",new Menu(mxUtils.bind(this,function(e,n){this.styleChange(e,mxResources.get("leftAlign"),[mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_LEFT],null,n),this.styleChange(e,mxResources.get("center"),[mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_CENTER],null,n),this.styleChange(e,mxResources.get("rightAlign"),[mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_RIGHT],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("topAlign"),[mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_TOP],null,n),this.styleChange(e,mxResources.get("middle"),[mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_MIDDLE],null,n),this.styleChange(e,mxResources.get("bottomAlign"),[mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_BOTTOM],null,n),e.addSeparator(n),this.addSubmenu("position",e,n),this.addSubmenu("spacing",e,n),e.addSeparator(n);var t=this.get("text").enabled;e.addItem(mxResources.get("vertical"),null,function(){i.toggleCellStyles(mxConstants.STYLE_HORIZONTAL,!0)},n,null,t)}))),this.put("position",new Menu(mxUtils.bind(this,function(e,n){this.styleChange(e,mxResources.get("left"),[mxConstants.STYLE_LABEL_POSITION,mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_LEFT,mxConstants.ALIGN_RIGHT],null,n),this.styleChange(e,mxResources.get("center"),[mxConstants.STYLE_LABEL_POSITION,mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_CENTER,mxConstants.ALIGN_CENTER],null,n),this.styleChange(e,mxResources.get("right"),[mxConstants.STYLE_LABEL_POSITION,mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_LEFT],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("top"),[mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_TOP,mxConstants.ALIGN_BOTTOM],null,n),this.styleChange(e,mxResources.get("middle"),[mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_MIDDLE,mxConstants.ALIGN_MIDDLE],null,n),this.styleChange(e,mxResources.get("bottom"),[mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_BOTTOM,mxConstants.ALIGN_TOP],null,n)}))),this.put("direction",new Menu(mxUtils.bind(this,function(e,n){e.addItem(mxResources.get("flipH"),null,function(){i.toggleCellStyles(mxConstants.STYLE_FLIPH,!1)},n),e.addItem(mxResources.get("flipV"),null,function(){i.toggleCellStyles(mxConstants.STYLE_FLIPV,!1)},n),this.addMenuItems(e,["-","tilt","rotation"],n)}))),this.put("align",new Menu(mxUtils.bind(this,function(e,n){e.addItem(mxResources.get("leftAlign"),null,function(){i.alignCells(mxConstants.ALIGN_LEFT)},n),e.addItem(mxResources.get("center"),null,function(){i.alignCells(mxConstants.ALIGN_CENTER)},n),e.addItem(mxResources.get("rightAlign"),null,function(){i.alignCells(mxConstants.ALIGN_RIGHT)},n),e.addSeparator(n),e.addItem(mxResources.get("topAlign"),null,function(){i.alignCells(mxConstants.ALIGN_TOP)},n),e.addItem(mxResources.get("middle"),null,function(){i.alignCells(mxConstants.ALIGN_MIDDLE)},n),e.addItem(mxResources.get("bottomAlign"),null,function(){i.alignCells(mxConstants.ALIGN_BOTTOM)},n)}))),this.put("layout",new Menu(mxUtils.bind(this,function(e,n){e.addItem(mxResources.get("horizontalFlow"),null,mxUtils.bind(this,function(){var e=new mxHierarchicalLayout(i,mxConstants.DIRECTION_WEST);this.editorUi.executeLayout(e,!0,!0)}),n),e.addItem(mxResources.get("verticalFlow"),null,mxUtils.bind(this,function(){var e=new mxHierarchicalLayout(i,mxConstants.DIRECTION_NORTH);this.editorUi.executeLayout(e,!0,!0)}),n)}))),this.put("navigation",new Menu(mxUtils.bind(this,function(e,n){this.addMenuItems(e,["home","-","exitGroup","enterGroup","-","expand","collapse"],n)}))),this.put("arrange",new Menu(mxUtils.bind(this,function(e,n){this.addMenuItems(e,["toFront","toBack","-"],n),this.addSubmenu("layout",e,n),e.addSeparator(n),this.addMenuItems(e,["-","group","ungroup","removeFromGroup"],n)}))),this.put("view",new Menu(mxUtils.bind(this,function(n,t){this.addMenuItems(n,["actualSize"],t),n.addSeparator();for(var e=[.25,.5,.75,1,2,4],a=0;a<e.length;a++)!function(e){n.addItem(100*e+"%",null,function(){i.zoomTo(e)},t)}(e[a]);this.addMenuItems(n,["-","zoomIn","zoomOut","-","fitWindow","customZoom","-","fitPage","fitPageWidth"],t)}))),this.put("file",new Menu(mxUtils.bind(this,function(e,n){this.addMenuItems(e,["new","open","-","save","saveAs","publish","-","variable","-","import","export","-","editFile","description","-","print"],n)}))),this.put("edit",new Menu(mxUtils.bind(this,function(e,n){this.addMenuItems(e,["undo","redo","-","cut","copy","paste","delete","-","duplicate","-","selectVertices","selectEdges","selectAll"])}))),this.put("help",new Menu(mxUtils.bind(this,function(e,n){this.addMenuItems(e,["help","-","about"])})))},Menus.prototype.put=function(e,n){this.menus[e]=n},Menus.prototype.get=function(e){return this.menus[e]},Menus.prototype.addSubmenu=function(e,n,t){var a=this.get(e).enabled;if(n.showDisabled||a){var i=n.addItem(mxResources.get(e),null,null,t,null,a);this.addMenu(e,n,i)}},Menus.prototype.addMenu=function(e,n,t){var a=this.get(e);null!=a&&(n.showDisabled||a.enabled)&&this.get(e).execute(n,t)},Menus.prototype.styleChange=function(e,n,t,a,i,s){return e.addItem(n,null,mxUtils.bind(this,function(){var e=this.editorUi.editor.graph;e.getModel().beginUpdate();try{for(var n=0;n<t.length;n++)e.setCellStyles(t[n],a[n])}finally{e.getModel().endUpdate()}}),s,i)},Menus.prototype.promptChange=function(e,n,a,i,s,t,o){return e.addItem(n,null,mxUtils.bind(this,function(){var e=this.editorUi.editor.graph,n=i,t=e.getView().getState(e.getSelectionCell());null!=t&&(n=t.style[s]||n),null!=(n=mxUtils.prompt(mxResources.get("enterValue")+(0<a.length?" "+a:""),n))&&0<n.length&&e.setCellStyles(s,n)}),t,null,o)},Menus.prototype.addMenuItem=function(e,n,t){var a=this.editorUi.actions.get(n);if(null==a||!e.showDisabled&&!a.enabled)return null;var i=e.addItem(a.label,null,a.funct,t,null,a.enabled);return a.toggleAction&&a.isSelected()&&this.addCheckmark(i),this.addShortcut(i,a),i},Menus.prototype.addShortcut=function(e,n){if(null!=n.shortcut){var t=e.firstChild.nextSibling.nextSibling,a=document.createElement("span");a.style.color="gray",mxUtils.write(a,n.shortcut),t.appendChild(a)}},Menus.prototype.addCheckmark=function(e){var n=e.firstChild.nextSibling;n.style.backgroundImage="url("+IMAGE_PATH+"/checkmark.gif)",n.style.backgroundRepeat="no-repeat",n.style.backgroundPosition="2px 50%"},Menus.prototype.addMenuItems=function(e,n,t){for(var a=0;a<n.length;a++)"-"==n[a]?e.addSeparator(t):this.addMenuItem(e,n[a],t)},Menus.prototype.createPopupMenu=function(e,n,t){var a=this.editorUi.editor.graph;if(e.smartSeparators=!0,a.isSelectionEmpty()?this.addMenuItems(e,["undo","redo","-","paste","-"]):(this.addMenuItems(e,["delete","-","cut","copy","-","duplicate"]),1==a.getSelectionCount()&&a.getModel().isEdge(a.getSelectionCell())&&this.addMenuItems(e,["setAsDefaultEdge"]),e.addSeparator()),0<a.getSelectionCount()){if(this.addMenuItems(e,["toFront","toBack","-"]),a.getModel().isEdge(a.getSelectionCell())){var i=!1;if(null!=(n=a.getSelectionCell())&&a.getModel().isEdge(n)){var s=a.selectionCellsHandler.getHandler(n);if(s instanceof mxEdgeHandler&&null!=s.bends&&2<s.bends.length){var o=s.getHandleForEvent(new mxMouseEvent(t)),r=this.editorUi.actions.get("removeWaypoint");r.handler=s,i=0<(r.index=o)&&o<s.bends.length}}this.addMenuItems(e,["-",i?"removeWaypoint":"addWaypoint"])}else 1<a.getSelectionCount()&&(e.addSeparator(),this.addMenuItems(e,["group"]));if(e.addSeparator(),1==a.getSelectionCount())null!=a.getLinkForCell(a.getSelectionCell())&&this.addMenuItems(e,["openLink"])}else this.addMenuItems(e,["-","selectVertices","selectEdges","-","selectAll"])},Menus.prototype.createMenubar=function(e){var n=new Menubar(this.editorUi,e),t=[];t=CRUD_PERMISSIONS.canEdit?["file","edit","view","format","text","arrange","help"]:["file","view","help"];for(var a=0;a<t.length;a++)n.addMenu(mxResources.get(t[a]),this.get(t[a]).funct);return n},Menubar.prototype.hideMenu=function(){null!=this.currentMenu&&this.currentMenu.hideMenu()},Menubar.prototype.addMenu=function(e,n){var t=document.createElement("a");return t.setAttribute("href","javascript:void(0);"),t.className="geItem",mxUtils.write(t,e),this.addMenuHandler(t,n),this.container.appendChild(t),t},Menubar.prototype.getOffset=function(e){return{left:(e=e.getBoundingClientRect()).left+window.scrollX,top:e.top+window.scrollY}},Menubar.prototype.addMenuHandler=function(i,s){if(null!=s){var o=!0,n=mxUtils.bind(this,function(e){if(o&&null==i.enabled||i.enabled){this.editorUi.editor.graph.panningHandler.hideMenu();var n=new mxPopupMenu(s);n.div.className+=" geMenubarMenu",n.smartSeparators=!0,n.showDisabled=!0,n.autoExpand=!0,n.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(n,arguments),n.destroy(),this.currentMenu=null,this.currentElt=null});var t=this.getOffset(i).left,a=this.getOffset(i).top+i.offsetHeight;n.popup(t,a,null,e),this.currentMenu=n,this.currentElt=i}o=!0,mxEvent.consume(e)});mxEvent.addListener(i,"mousemove",mxUtils.bind(this,function(e){null!=this.currentMenu&&this.currentElt!=i&&(this.hideMenu(),n(e))})),mxEvent.addListener(i,"mousedown",mxUtils.bind(this,function(){o=this.currentElt!=i})),mxEvent.addListener(i,"click",n)}},mxUtils.extend(Menu,mxEventSource),Menu.prototype.setEnabled=function(e){this.enabled!=e&&(this.enabled=e,this.fireEvent(new mxEventObject("stateChanged")))},Menu.prototype.execute=function(e,n){this.funct(e,n)},Toolbar.prototype.init=function(){CRUD_PERMISSIONS.canEdit?this.addItems(["save","publish","-","print","undo","redo","-","copy","cut","paste","delete","-","duplicate","-","actualSize","zoomIn","zoomOut","-"]):this.addItems(["print","actualSize","zoomIn","zoomOut","-"])},Toolbar.prototype.hideMenu=function(){null!=this.currentMenu&&(this.currentMenu.hideMenu(),this.currentMenu.destroy(),this.currentMenu=null)},Toolbar.prototype.addMenu=function(e,n,t,a){var i=this.editorUi.menus.get(a),s=this.addMenuFunction(e,n,t,i.funct);return i.addListener("stateChanged",function(){s.setEnabled(i.enabled)}),s},Toolbar.prototype.addMenuFunction=function(e,n,t,a){var i=t?this.createLabel(e):this.createButton(e);return this.initElement(i,n),this.addMenuHandler(i,t,a),this.container.appendChild(i),i},Toolbar.prototype.addSeparator=function(){var e=document.createElement("div");return e.className="geSeparator",this.container.appendChild(e),e},Toolbar.prototype.addItems=function(e){for(var n=0;n<e.length;n++){var t=e[n];"-"==t?this.addSeparator():this.addItem("geSprite-"+t.toLowerCase(),t)}},Toolbar.prototype.addItem=function(e,n){var t=this.editorUi.actions.get(n),a=null;return null!=t&&((a=this.addButton(e,t.label,t.funct)).setEnabled(t.enabled),t.addListener("stateChanged",function(){a.setEnabled(t.enabled)})),a},Toolbar.prototype.addButton=function(e,n,t){var a=this.createButton(e);return this.initElement(a,n),this.addClickHandler(a,t),this.container.appendChild(a),a},Toolbar.prototype.addSelectionHandler=function(t){var a=this.editorUi.editor.graph,e=function(){for(var e=!a.isSelectionEmpty(),n=0;n<t.length;n++)t[n].setEnabled(e)};a.getSelectionModel().addListener(mxEvent.CHANGE,e),e()},Toolbar.prototype.addEdgeSelectionHandler=function(a){var i=this.editorUi.editor.graph,e=function(){var e=!1;if(!i.isSelectionEmpty())for(var n=i.getSelectionCells(),t=0;t<n.length;t++)if(i.getModel().isEdge(n[t])){e=!0;break}for(t=0;t<a.length;t++)a[t].setEnabled(e)};i.getSelectionModel().addListener(mxEvent.CHANGE,e),e()},Toolbar.prototype.initElement=function(e,n){e.setAttribute("tabindex","0"),null!=n&&e.setAttribute("title",n),this.addEnabledState(e)},Toolbar.prototype.addEnabledState=function(n){var t=n.className;n.setEnabled=function(e){n.enabled=e,n.className=e?t:t+" geDisabled"},n.setEnabled(!0)},Toolbar.prototype.addClickHandler=function(n,t){null!=t&&mxEvent.addListener(n,"click",function(e){n.enabled&&t(e),mxEvent.consume(e)})},Toolbar.prototype.createButton=function(e){var n=document.createElement("a");n.setAttribute("href","javascript:void(0);"),n.className="geButton";var t=document.createElement("div");return t.className="geSprite "+e,n.appendChild(t),n},Toolbar.prototype.createLabel=function(e,n){var t=document.createElement("a");return t.setAttribute("href","javascript:void(0);"),t.className="geLabel",mxUtils.write(t,e),t},Toolbar.prototype.addMenuHandler=function(n,t,a,i){if(null!=a){var s=this.editorUi.editor.graph,o=null;mxEvent.addListener(n,"click",mxUtils.bind(this,function(e){(null==n.enabled||n.enabled)&&(s.panningHandler.hideMenu(),(o=new mxPopupMenu(a)).div.className+=" geToolbarMenu",o.showDisabled=i,o.labels=t,o.autoExpand=!0,o.popup(n.offsetLeft,n.offsetTop+n.offsetHeight+34,null,e),this.currentMenu=o),mxEvent.consume(e)}))}},Dialog.prototype.close=function(){null!=this.onDialogClose&&(this.onDialogClose(),this.onDialogClose=null),this.container.parentNode.removeChild(this.container),this.bg.parentNode.removeChild(this.bg)},angular.module("motion").run(["$templateCache",function(e){"use strict";e.put("app/auth/services/hotdesk/dialog.html",'<md-dialog aria-label="Telephone">\n <form ng-cloak>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div flex>\n <span class="title" translate="LOGIN.TELEPHONES">Telephones</span>\n </div>\n </div>\n </md-toolbar>\n\n <md-dialog-content>\n <md-select ng-model="vm.name" placeholder="Select a telephone">\n <md-option value="{{telephone.name}}" ng-repeat="telephone in vm.telephones.rows">{{telephone.fullname}}</md-option>\n </md-select>\n </md-dialog-content>\n\n <md-dialog-actions layout="row">\n <md-button ng-click="vm.closeDialog(vm.name)" class="send-button md-accent md-raised" aria-label="call" ng-disabled="!vm.name">\n <span translate="LOGIN.SELECT">SELECT</span>\n </md-button>\n \x3c!-- <md-button ng-click="vm.closeDialog()" class="send-button md-accent md-raised" aria-label="cancel">\n <span translate="LOGIN.CANCEL">Cancel</span>\n </md-button> --\x3e\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/core/dialogs/advanced-search/dialog.html",'<md-dialog class="advanced-search-dialog" aria-label="Advanced search" flex="70" ng-init="vm.onInit()">\n <form ng-cloak>\n <md-toolbar class="advanced-search-dialog-header" ng-class="{{ \'vm.toolbarColor\' }} + \'-bg\'">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div flex>\n <span class="title" translate="DASHBOARDS.ADVANCED_SEARCH"></span>\n </div>\n <div layout="row" layout-align="end center">\n <md-button class="md-icon-button no-margin no-padding" ng-click="vm.minimize()">\n <md-icon class="no-margin" md-font-icon="icon-window-minimize" aria-label="Minimize dialog"></md-icon>\n </md-button>\n <md-button class="md-icon-button no-margin no-padding" ng-click="vm.close()">\n <md-icon class="no-margin" md-font-icon="icon-window-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </div>\n </md-toolbar>\n\n <md-dialog-content>\n <ms-advanced-search options="vm.searchOptions" clear-filter="vm.clearConditions()"></ms-advanced-search>\n </md-dialog-content>\n\n <md-dialog-actions layout="row">\n <md-button class="md-primary md-raised" aria-label="Clear" ng-disabled="vm.searchOptions.conditions.length === 0" translate="DASHBOARDS.CLEAR" translate-attr-aria-label="DASHBOARDS.CLEAR" ng-click="vm.clearConditions()"></md-button>\n <md-button class="md-primary md-accent md-raised" aria-label="Apply" ng-disabled="vm.searchOptions.conditions.length === 0" translate="DASHBOARDS.APPLY" translate-attr-aria-label="DASHBOARDS.APPLY" ng-click="vm.applyFilter()"></md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/core/directives/ms-advanced-search/ms-advanced-search.html",'<div layout="column" class="advanced-search-container" flex>\n <div layout-margin>\n <md-radio-group ng-model="vm.options.matchType" class="md-primary" layout="row">\n <md-radio-button value="$and" class="md-primary">{{ \'DASHBOARDS.MEET_ALL_CONDITIONS\' | translate }}\n </md-radio-button>\n <md-radio-button value="$or">{{ \'DASHBOARDS.MEET_ANY_CONDITIONS\' | translate }}</md-radio-button>\n </md-radio-group>\n </div>\n\n \x3c!-- ACTIVE CONDITIONS --\x3e\n <div layout="row" ng-if="vm.options.conditions.length > 0" class="advanced-search-conditions">\n <md-list>\n <md-list-item>\n <md-chips ng-model="vm.options.conditions" class="advanced-search-chips" readonly="true" md-removable="true" md-on-remove="vm.removeCondition()">\n <md-chip-template ms-chip-color="{{ $chip.style }}">\n <md-menu md-offset="50 0" ng-class="{\'no-click\': vm.pendingCondition}">\n <span>\n <p class="filter-text">{{ $chip.name }}</p>\n <em ng-show="$chip.operator" class="text-lowercase">{{ $chip.operator }}</em>\n <strong>{{ $chip.displayValue }}</strong>\n <em ng-show="$chip.displayEndValue" class="text-lowercase">{{ \'DASHBOARDS.AND\' | translate }}</em>\n <strong>{{ $chip.displayEndValue }}</strong>\n </span>\n <md-menu-content width=2 class="md-dense">\n <md-menu-item ng-hide="$chip.disabled">\n <md-button ng-click="vm.editCondition($chip)">Edit\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.setConditionStatus($chip)">\n {{ $chip.disabled ? \'Enable\' : \'Disable\' }}\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-chip-template>\n <button type="button" md-chip-remove class="md-primary remove-filter">\n <md-icon md-font-icon="icon-cancel" aria-label="Remove Filter"></md-icon>\n </button>\n </md-chips>\n </md-list-item>\n </md-list>\n </div>\n\n \x3c!-- FILTERS --\x3e\n <div layout="row">\n <div layout="row" class="advanced-search-bar" layout-margin flex>\n \x3c!-- FIELD --\x3e\n <md-input-container flex="35">\n <md-icon md-font-icon="icon-filter-variant"></md-icon>\n <md-select class="font-size-12" ng-model="vm.selectedField" ng-change="vm.onFieldChange()" placeholder="{{ \'DASHBOARDS.SELECT_FIELD\' | translate }}" aria-label="Field">\n <md-option ng-value="field" ng-repeat="field in vm.options.fields">{{ field.name }}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!-- OPERATOR --\x3e\n <md-input-container flex="30">\n <md-icon md-font-icon="icon-format-text"></md-icon>\n <md-select class="font-size-12" ng-model="vm.selectedOperator" ng-change="vm.onOperatorChange(oldValue)" ng-focus="oldValue=vm.selectedOperator" md-selected-text="vm.selectedOperator ? (\'DASHBOARDS.\' + vm.selectedOperator.translate | translate) : (\'DASHBOARDS.SELECT_OPERATOR\' | translate)" ng-disabled="!vm.selectedField" aria-label="Operator">\n <md-option ng-value="operator" ng-repeat="operator in vm.availableOperators" ng-selected="vm.autoSelectOperator">\n <div layout="row" class="operators-list">\n <span class="operator-symbol">\n {{ operator.symbol }}\n </span>\n <span>\n {{ \'DASHBOARDS.\' + operator.translate | translate }}\n </span>\n </div>\n </md-option>\n </md-select>\n </md-input-container>\n\n \x3c!-- TEXT INPUT --\x3e\n <md-input-container ng-if="!vm.selectedField.type || vm.selectedField.type === \'text\'" class="no-errors" flex>\n <md-icon md-font-icon="icon-format-text"></md-icon>\n <input type="text" aria-label="Value" ng-model="vm.value" ng-change="vm.onValueChange()" ng-disabled="!vm.selectedField" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" placeholder="{{ \'DASHBOARDS.VALUE\' | translate }}">\n </md-input-container>\n \x3c!-- NUMERIC INPUT --\x3e\n <div ng-if="vm.selectedField.type === \'number\'" flex layout="row" layout-margin class="no-margin">\n <md-input-container class="no-errors" flex>\n <md-icon md-font-icon="icon-numeric"></md-icon>\n <input type="number" aria-label="Value" ng-model="vm.value" ng-change="vm.onValueChange()" ng-disabled="!vm.selectedField" min="0" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" placeholder="{{ vm.selectedOperator.type === \'$between\' ? \'DASHBOARDS.STARTING_VALUE\' : \'DASHBOARDS.VALUE\' | translate }}">\n </md-input-container>\n <md-input-container class="no-errors" ng-if="vm.selectedOperator.type === \'$between\'" ng-class="{\'md-input-invalid\': !vm.isValidRange}" flex>\n <md-icon md-font-icon=" icon-numeric">\n </md-icon>\n <input class="md-input" type="number" aria-label="Value" ng-model="vm.endRangeValue" ng-change="vm.checkRange()" ng-disabled="!vm.value" min="vm.value" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" placeholder="{{ \'DASHBOARDS.ENDING_VALUE\' | translate }}">\n <div ng-if="!vm.isValidRange" class="md-input-message-animation md-input-messages-animation">\n {{ (\'DASHBOARDS.VALUE_RANGE_CHECK\' | translate) + \' \' + vm.value }}\n </div>\n </md-input-container>\n </div>\n \x3c!-- SELECT --\x3e\n <md-input-container ng-if="vm.selectedField.type === \'select\'" flex>\n <md-icon md-font-icon="icon-format-text"></md-icon>\n <md-select class="font-size-12" ng-model="vm.value" md-on-open="vm.getValues()" ng-change="vm.onValueChange()" ng-model-options="{trackBy: \'$value.id\'}" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" placeholder="{{ \'DASHBOARDS.VALUE\' | translate }}" aria-label="Value">\n <md-option ng-value="item" ng-repeat="item in vm.selectedField.values">{{item.name}}\n </md-option>\n </md-select>\n </md-input-container>\n \x3c!-- MULTISELECT --\x3e\n <md-input-container ng-if="vm.selectedField.type === \'multiselect\'" flex>\n <md-icon md-font-icon="icon-format-text"></md-icon>\n <md-select class="font-size-12" multiple ng-model="vm.value" md-on-open="vm.getValues()" ng-change="vm.onValueChange()" ng-model-options="{trackBy: \'$value.id\'}" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" placeholder="{{ \'DASHBOARDS.VALUE\' | translate }}" aria-label="Value">\n <md-option ng-value="item" ng-repeat="item in vm.selectedField.values">{{item.name}}\n </md-option>\n </md-select>\n </md-input-container>\n \x3c!-- DATE INPUT --\x3e\n <div ng-if="vm.selectedField.type === \'date\'" flex layout="row">\n <mdp-date-picker mdp-open-on-click ng-model="vm.value" ng-change="vm.onValueChange()" mdp-max-date="vm.maxDateRange" mdp-placeholder="{{ vm.selectedOperator.type === \'$between\' ? \'DASHBOARDS.STARTING_DATE\' : \'DASHBOARDS.VALUE\' | translate }}" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" flex>\n </mdp-date-picker>\n <mdp-date-picker mdp-open-on-click ng-if="vm.selectedOperator.type === \'$between\'" ng-change="vm.checkRange()" ng-model="vm.endRangeValue" mdp-min-date="vm.minDateRange" mdp-disabled="!vm.value" mdp-placeholder="{{ \'DASHBOARDS.ENDING_DATE\' | translate }}" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" flex>\n </mdp-date-picker>\n </div>\n \x3c!-- AUTOCOMPLETE --\x3e\n <div layout="row" layout-align="start start" ng-if="vm.selectedField.type === \'autocomplete\' && vm.selectedOperator.type != \'$substring\'" class=" autocomplete-input" flex>\n <md-icon md-font-icon="icon-format-text"></md-icon>\n <md-autocomplete md-selected-item="vm.value" md-selected-item-change="vm.onValueChange()" md-items="item in vm.getValues()" md-search-text="vm.searchText" md-item-text="item.displayValue" md-min-length="4" md-no-cache="true" md-floating-label="{{ \'DASHBOARDS.VALUE\' | translate }}" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" flex>\n <md-item-template>\n <span md-highlight-text="vm.searchText" md-highlight-flags="i">{{item.displayValue}}</span>\n </md-item-template>\n </md-autocomplete>\n </div>\n <md-input-container ng-if="vm.selectedField.type === \'autocomplete\' && vm.selectedOperator.type === \'$substring\'" class="no-errors" flex>\n <md-icon md-font-icon="icon-format-text"></md-icon>\n <input type="text" aria-label="Value" ng-model="vm.value" ng-change="vm.onValueChange()" ng-disabled="!vm.selectedField" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" placeholder="{{ \'DASHBOARDS.VALUE\' | translate }}">\n </md-input-container>\n </div>\n <md-button class="md-fab md-mini md-primary mt-20" ng-if="!vm.pendingCondition" ng-disabled="!vm.isValidCondition" aria-label="Add filter" ng-click="vm.addCondition()" translate-attr-aria-label="DASHBOARDS.ADD">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <md-button class="md-fab md-mini mt-20" ng-if="vm.pendingCondition" ng-disabled="!vm.isValidCondition" aria-label="Update filter" ng-click="vm.updateCondition()" translate-attr-aria-label="DASHBOARDS.UPDATE">\n <md-icon md-font-icon="icon-check"></md-icon>\n </md-button>\n <md-button class="md-fab md-mini md-primary mt-20" ng-if="vm.pendingCondition" aria-label="Cancel filter update" ng-click="vm.cancelUpdateCondition()" translate-attr-aria-label="DASHBOARDS.CANCEL">\n <md-icon md-font-icon="icon-close"></md-icon>\n </md-button>\n </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-1/template-1.html",'<div class="template-1">\n <div class="media">\n <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n </div>\n\n <div class="content pv-24 ph-16">\n <div class="title h1" ng-if="card.title">\n {{card.title}}\n </div>\n\n <div class="subtitle secondary-text" ng-if="card.subtitle">\n {{card.subtitle}}\n </div>\n\n <div class="text pt-16" ng-if="card.text">\n {{card.text}}\n </div>\n </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-10/template-10.html",'<div class="template-10 p-16">\n <div class="pb-16" layout="row" layout-align="space-between center">\n <div class="info">\n <div class="title secondary-text" ng-if="card.title">\n {{card.title}}\n </div>\n\n <div class="subtitle h2" ng-if="card.subtitle">\n {{card.subtitle}}\n </div>\n </div>\n\n <div class="media ml-16">\n <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n </div>\n </div>\n\n <div class="text">\n {{card.text}}\n </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-2/template-2.html",'<div class="template-2">\n <div class="header p-16" layout="row" layout-align="start center">\n <div ng-if="card.avatar">\n <img class="avatar mr-16" ng-src="{{card.avatar.src}}" alt="{{card.avatar.alt}}">\n </div>\n\n <div class="info">\n <div class="title" ng-if="card.title">\n {{card.title}}\n </div>\n\n <div class="subtitle secondary-text" ng-if="card.subtitle">\n {{card.subtitle}}\n </div>\n </div>\n </div>\n\n <div class="media">\n <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n </div>\n\n <div class="text p-16" ng-if="card.text">\n {{card.text}}\n </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-3/template-3.html",'<div class="template-3 p-16 teal-bg white-fg" layout="row" layout-align="space-between">\n <div layout="column" layout-align="space-between">\n <div class="info">\n <div class="title h1" ng-if="card.title">\n {{card.title}}\n </div>\n\n <div class="subtitle h3 secondary-text" ng-if="card.subtitle">\n {{card.subtitle}}\n </div>\n </div>\n\n <div class="cta">\n <md-button class="m-0">{{card.cta}}</md-button>\n </div>\n </div>\n\n <div class="media pl-16">\n <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-4/template-4.html",'<div class="template-4">\n <div class="info white-fg ph-16 pv-24">\n <div class="title h1" ng-if="card.title">\n {{card.title}}\n </div>\n\n <div class="text" ng-if="card.text">\n {{card.text}}\n </div>\n </div>\n\n <div class="media">\n <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-5/template-5.html",'<div class="template-5 p-16" layout="row" layout-align="space-between start">\n <div class="info">\n <div class="title secondary-text" ng-if="card.title">\n {{card.title}}\n </div>\n\n <div class="event h2" ng-if="card.event">\n {{card.event}}\n </div>\n </div>\n\n <div class="media ml-16">\n <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-6/template-6.html",'<div class="template-6">\n <div class="content pv-24 ph-16">\n <div class="subtitle secondary-text" ng-if="card.subtitle">\n {{card.subtitle}}\n </div>\n\n <div class="title h2" ng-if="card.title">\n {{card.title}}\n </div>\n\n <div class="text pt-8" ng-if="card.text">\n {{card.text}}\n </div>\n </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-7/template-7.html",'<div class="template-7" layout="row" layout-align="space-between">\n <div class="info" layout="column" layout-align="space-between" layout-fill flex>\n <div class="p-16">\n <div class="title h1" ng-if="card.title">\n {{card.title}}\n </div>\n\n <div class="subtitle h4 secondary-text" ng-if="card.subtitle">\n {{card.subtitle}}\n </div>\n\n <div class="text h4 pt-8" ng-if="card.text">\n {{card.text}}\n </div>\n </div>\n\n <div>\n <md-divider></md-divider>\n <div class="p-8" layout="row">\n <md-icon md-font-icon="icon-star-outline" class="mh-5"></md-icon>\n <md-icon md-font-icon="icon-star-outline" class="mh-5"></md-icon>\n <md-icon md-font-icon="icon-star-outline" class="mh-5"></md-icon>\n <md-icon md-font-icon="icon-star-outline" class="mh-5"></md-icon>\n <md-icon md-font-icon="icon-star-outline" class="mh-5"></md-icon>\n </div>\n </div>\n </div>\n\n <div class="media">\n <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-8/template-8.html",'<div class="template-8">\n <div class="media">\n <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n </div>\n\n <div class="content pv-24 ph-16">\n <div class="title h1" ng-if="card.title">\n {{card.title}}\n </div>\n\n <div class="subtitle secondary-text" ng-if="card.subtitle">\n {{card.subtitle}}\n </div>\n\n <div class="buttons pt-16">\n <md-button class="m-0">{{card.button1}}</md-button>\n <md-button class="m-0 md-accent">{{card.button2}}</md-button>\n </div>\n\n <div class="text pt-16" ng-if="card.text">\n {{card.text}}\n </div>\n </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-9/template-9.html",'<div class="template-9">\n <div class="header p-16" layout="row" layout-align="start center">\n <div ng-if="card.avatar">\n <img class="avatar mr-16" ng-src="{{card.avatar.src}}" alt="{{card.avatar.alt}}">\n </div>\n\n <div class="info">\n <div class="title" ng-if="card.title">\n {{card.title}}\n </div>\n\n <div class="subtitle secondary-text" ng-if="card.subtitle">\n {{card.subtitle}}\n </div>\n\n </div>\n </div>\n\n <div class="text ph-16 pb-16" ng-if="card.text">\n {{card.text}}\n </div>\n\n <div class="media">\n <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n </div>\n\n <div class="buttons m-8">\n <md-button class="md-icon-button mr-16" aria-label="Favorite">\n <md-icon md-font-icon="icon-heart-outline" class="s24"></md-icon>\n </md-button>\n <md-button class="md-icon-button" aria-label="Share">\n <md-icon md-font-icon="icon-share" class="s24"></md-icon>\n </md-button>\n </div>\n\n</div>'),e.put("app/core/directives/ms-click-to-call/ms-click-to-call.html",'<section ng-if="type !== \'button\'">\n <span ng-if="!showMenu()" privacy="{{ privacy }}" ng-cloak>{{target}}</span>\n <md-menu ng-if="showMenu()">\n <a aria-label="Target" ng-click="$mdOpenMenu($event)">\n <span ng-if="prefix" privacy="{{ privacy }}" ng-cloak>{{prefix}}-</span>\n <span privacy="{{ privacy }}" ng-cloak>{{target}}</span>\n </a>\n <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="call(prefix ? prefix + target : target)">\n {{\'DASHBOARDS.CALL_NUMBER\' | translate}} (<span privacy="{{ privacy }}" ng-cloak>{{prefix ? prefix + \'-\' + target : target}}</span>)\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="transfer(prefix ? prefix + target : target)">\n {{\'DASHBOARDS.TRANSFER_NUMBER\' | translate}} (<span privacy="{{ privacy }}" ng-cloak>{{prefix ? prefix + \'-\' + target : target}}</span>)\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n</section>\n<section ng-if="type === \'button\'">\n <md-button ng-if="!showMenu()" ng-disabled="true" class="md-icon-button md-raised md-accent ng-scope md-ink-ripple" title="NEW CALL" aria-label="NEW CALL">\n <md-icon md-font-icon="icon-phone"></md-icon>\n </md-button>\n <md-menu ng-if="showMenu()">\n <md-button class="md-icon-button md-raised md-accent ng-scope md-ink-ripple" title="NEW CALL" ng-click="$mdOpenMenu($event)" aria-label="NEW CALL">\n <md-icon md-font-icon="icon-phone"></md-icon>\n </md-button>\n <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="call(prefix ? prefix + target : target)">\n {{\'DASHBOARDS.CALL_NUMBER\' | translate}} (<span privacy="{{ privacy }}" ng-cloak>{{prefix ? prefix + \'-\' + target : target}}</span>)\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="transfer(target)">\n {{\'DASHBOARDS.TRANSFER_NUMBER\' | translate}} (<span privacy="{{ privacy }}" ng-cloak>{{prefix ? prefix + \'-\' + target : target}}</span>)\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n</section>'),e.put("app/core/directives/ms-dual-multiselect/ms-dual-multiselect.html",'<div ng-cloak layout-gt-sm="row" layout="column">\n <div flex-gt-sm="50" flex="45">\n <md-input-container class="md-icon-float md-block margin-0">\n <md-icon md-font-icon="icon-magnify" aria-label="swap"></md-icon>\n <input ng-model="query" type="text" placeholder="{{ \'STAFF.PERMISSIONS_PLACEHOLDER_SEARCH\' | translate }}">\n </md-input-container>\n <md-content class="border h-300">\n <md-list class="md-dense no-padding" layout-fill layout-align="center center">\n <md-list-item class="md-3-line" ng-class="{\'read-only-mode\': vm.readOnly || vm.addDisabled}" ng-disabled="vm.readOnly || vm.addDisabled" ng-repeat="item in availableItems = (vm.options.items | filter: query) | orderBy: vm.options.orderBy" ng-click="vm.canTransfer(item, vm.options, false)">\n <div class="md-list-item-text" layout="column">\n <h3 ng-if="vm.options.line1">{{vm.getLine(item, vm.options.line1)}}</h3>\n <h4 ng-if="vm.options.line2">{{vm.getLine(item, vm.options.line2)}}</h4>\n <p ng-if="vm.options.line3">{{vm.getLine(item, vm.options.line3)}}</p>\n <p class="ms-dual-multiselect-line-xs" ng-if="vm.options.line4">{{vm.getLine(item, vm.options.line4)}}\n </p>\n </div>\n <md-icon ng-hide="vm.readOnly && !vm.addDisabled" ng-class="{\'add-disabled\': vm.addDisabled}" md-font-icon="icon-arrow-right-bold" aria-label="swap">\n </md-icon>\n <md-divider></md-divider>\n </md-list-item>\n </md-list>\n </md-content>\n <div class="margin-10" layout="row">\n <span class="h4" flex>{{vm.options.labelAll || \'All Items\'}} ({{availableItems.length}})</span>\n <md-icon ng-hide="vm.options.showSelectAndDeselectAll === false || vm.readOnly" ng-class="{\'add-disabled\': vm.addDisabled}" ng-disabled="vm.addDisabled" md-font-icon="icon-chevron-double-right" aria-label="swap" ng-click="vm.transfer(vm.options.items, vm.options.selectedItems, -1, false)"></md-icon>\n </div>\n </div>\n\n <div flex="10" layout="row" layout-align="center center">\n <md-icon md-font-icon="icon-swap-horizontal" aria-label="swap"></md-icon>\n </div>\n\n <div flex-gt-sm="50" flex="45">\n <md-input-container class="md-icon-float md-block margin-0">\n <md-icon md-font-icon="icon-magnify" aria-label="swap"></md-icon>\n <input ng-model="selectedQuery" type="text" placeholder="{{ \'STAFF.PERMISSIONS_PLACEHOLDER_SEARCH\' | translate }}">\n </md-input-container>\n <md-content class="border h-300">\n <md-list class="md-dense no-padding" layout-fill layout-align="center center">\n <md-list-item class="md-3-line" ng-class="{\'read-only-mode\': vm.readOnly || !item.isValid}" ng-disabled="vm.readOnly" ng-repeat="item in associatedItems = (vm.options.selectedItems | filter: selectedQuery) | orderBy: vm.options.orderBy" ng-click="vm.canTransfer(item, vm.options, true)">\n <md-icon ng-class="{\'hidden\': vm.readOnly || !item.isValid}" md-font-icon="icon-arrow-left-bold" aria-label="swap"></md-icon>\n <div class="md-list-item-text" layout="column">\n <h3 ng-if="vm.options.line1">{{vm.getLine(item, vm.options.line1)}}</h3>\n <h4 ng-if="vm.options.line2">{{vm.getLine(item, vm.options.line2)}}</h4>\n <p ng-if="vm.options.line3">{{vm.getLine(item, vm.options.line3)}}</p>\n <p class="ms-dual-multiselect-line-xs" ng-if="vm.options.line4">{{vm.getLine(item, vm.options.line4)}}\n </p>\n </div>\n <md-divider></md-divider>\n </md-list-item>\n </md-list>\n </md-content>\n <div class="margin-10" layout="row">\n <md-icon ng-hide="vm.options.showSelectAndDeselectAll === false || vm.readOnly" md-font-icon="icon-chevron-double-left" aria-label="swap" ng-click="vm.transfer(vm.options.selectedItems, vm.options.items, -1, true)"></md-icon>\n <span class="h4 text-right" flex>{{vm.options.labelSelected || \'Selected Items\'}}\n ({{associatedItems.length}})</span>\n </div>\n </div>\n</div>'),e.put("app/core/directives/ms-font-family/ms-font-family.html",'<md-select ng-model="ngModel" class="no-margin">\n <md-option ng-repeat="font in fonts" ng-value="font.value"><span ng-style="{\'font-family\': font.value}">{{font.option}}</span>\n </md-option>\n</md-select>'),e.put("app/core/directives/ms-info-bar/ms-info-bar.html",'<div id="ms-info-bar" layout="row" layout-align="start center" flex>\n <div id="ms-info-bar-message" ng-transclude flex></div>\n <md-button id="ms-info-bar-close" class="md-icon-button" aria-label="Close" ng-click="removeInfoBar()">\n <md-icon md-font-icon="icon-close s20"></md-icon>\n </md-button>\n</div>'),e.put("app/core/directives/ms-material-color-picker/ms-material-color-picker.html",'<md-menu md-position-mode="target-right target">\n\n <div ng-click="$mdOpenMenu($event)">\n <ms-color-picker-button>\n <md-button aria-label="Row Color" md-menu-origin ng-click="$mdOpenMenu($event)" ng-class="vm.selectedColor.class">\n\n <span ng-show="vm.selectedColor.palette">\n {{vm.selectedColor.palette}} {{vm.selectedColor.hue}}\n </span>\n <span ng-show="!vm.selectedColor.palette">\n Select Color\n </span>\n </md-button>\n </ms-color-picker-button>\n </div>\n\n <md-menu-content class="ms-material-color-picker-menu-content" layout-column>\n\n <header ng-class="vm.selectedColor.class || \'md-accent-bg\'" class="md-whiteframe-4dp" layout="row" layout-align="space-between center">\n <md-button md-prevent-menu-close ng-click="vm.activateHueSelection(false,false)" class="md-icon-button" ng-class="{\'hidden\':!vm.selectedPalette}" aria-label="Palette">\n <md-icon md-font-icon="icon-arrow-left" class="s20"></md-icon>\n </md-button>\n\n <span ng-if="vm.selectedColor.palette">\n {{vm.selectedColor.palette}} {{vm.selectedColor.hue}}\n </span>\n\n <span ng-if="!vm.selectedColor.palette">\n Select Color\n </span>\n\n <md-button class="remove-color-button md-icon-button" ng-click="vm.removeColor()" aria-label="Remove Color">\n <md-icon md-font-icon="icon-delete" class="s20"></md-icon>\n </md-button>\n </header>\n\n <div class="colors" ms-scroll>\n <div ng-show="!vm.selectedPalette" layout="row" layout-wrap>\n <div class="color" ng-class="\'md-\'+palette+\'-500-bg\'" ng-repeat="(palette, hues) in vm.palettes" ng-click="vm.activateHueSelection(palette,hues)" layout="row" layout-align="start end" md-prevent-menu-close md-ink-ripple>\n <span class="label">\n {{palette}}\n </span>\n </div>\n </div>\n\n <div ng-show="vm.selectedPalette" layout="row" layout-wrap>\n <div class="color" ng-class="\'md-\'+vm.selectedPalette+\'-\'+hue+\'-bg\'" ng-repeat="(hue, values) in vm.selectedHues" ng-click="vm.selectColor(vm.selectedPalette,hue)" layout="row" layout-align="start end" md-ink-ripple>\n <span class="label">\n {{hue}}\n </span>\n <i ng-if="vm.selectedPalette == vm.selectedColor.palette && hue == vm.selectedColor.hue" class="s16 icon-check">\n </i>\n </div>\n </div>\n\n </div>\n\n </md-menu-content>\n</md-menu>'),e.put("app/core/directives/ms-navigation/templates/horizontal.html",'<div class="navigation-toggle" hide-gt-sm>\n <md-button class="md-icon-button" ng-click="vm.toggleHorizontalMobileMenu()" aria-label="Toggle Mobile Navigation">\n <md-icon md-font-icon="icon-menu"></md-icon>\n </md-button>\n</div>\n\n<ul class="horizontal">\n <li ng-repeat="node in vm.navigation" ms-navigation-horizontal-node="node" ng-class="{\'has-children\': vm.hasChildren}" ng-include="\'navigation-horizontal-nested.html\'"></li>\n</ul>\n\n\x3c!-- Nested horizontal navigation template --\x3e\n<script type="text/ng-template" id="navigation-horizontal-nested.html">\n\n <div ms-navigation-horizontal-item layout="row" ng-if="!vm.isHidden()">\n\n <div class="ms-navigation-horizontal-button" ng-if="!node.uisref && node.title"\n ng-class="{\'active md-accent-bg md-accent-fg\': vm.isActive}">\n <i class="icon s18 {{node.icon}}" ng-if="node.icon"></i>\n <span class="title" translate="{{node.translate}}" flex>{{node.title}}</span>\n <span class="badge white-fg" style="background: {{node.badge.color}}" ng-if="node.badge">{{node.badge.content}}</span>\n <i class="icon-chevron-right s18 arrow" ng-if="vm.hasChildren"></i>\n </div>\n\n <a class="ms-navigation-horizontal-button" ui-sref="{{node.uisref}}" ui-sref-active="active md-accent-bg"\n ng-class="{\'active md-accent-bg md-accent-fg\': vm.isActive}"\n ng-if="node.uisref && node.title">\n <i class="icon s18 {{node.icon}}" ng-if="node.icon"></i>\n <span class="title" translate="{{node.translate}}" flex>{{node.title}}</span>\n <span class="badge white-fg" style="background: {{node.badge.color}}" ng-if="node.badge">{{node.badge.content}}</span>\n <i class="icon-chevron-right s18 arrow" ng-if="vm.hasChildren"></i>\n </a>\n\n </div>\n\n <ul ng-if="vm.hasChildren && !vm.isHidden()">\n <li ng-repeat="node in node.children" ms-navigation-horizontal-node="node"\n ng-class="{\'has-children\': vm.hasChildren}"\n ng-include="\'navigation-horizontal-nested.html\'"></li>\n </ul>\n\n<\/script>\n\x3c!-- / Nested navigation template --\x3e'),e.put("app/core/directives/ms-navigation/templates/vertical.html",'<ul>\n <li ng-repeat="node in vm.navigation" ms-navigation-node="node" ng-class="{\'collapsed\': vm.collapsed, \'has-children\': vm.hasChildren}" ng-include="\'navigation-nested.html\'"></li>\n</ul>\n\n\x3c!-- Nested navigation template --\x3e\n<script type="text/ng-template" id="navigation-nested.html">\n\n <div id="{{ node.id }}" ms-navigation-item layout="row" ng-if="!vm.isHidden()">\n\n <div class="ms-navigation-button" ng-if="!node.uisref && node.title">\n <i class="icon s16 {{node.icon}}" ng-if="node.icon"></i>\n <span class="title" translate="{{node.translate}}" flex>{{node.title}}</span>\n <span class="badge white-fg margin-right-20" ng-style="{\'background\': node.badge.color}" ng-if="node.badge">{{node.badge.content}}</span>\n <i class="icon-chevron-right s16 arrow" ng-if="vm.collapsable && vm.hasChildren"></i>\n </div>\n\n <a class="ms-navigation-button" ui-sref="{{node.uisref}}" ui-sref-active="active md-accent-bg" ng-if="node.uisref && node.title">\n <i class="icon s16 {{node.icon}}" ng-if="node.icon"></i>\n <span class="title" translate="{{node.translate}}" flex>{{node.title}}</span>\n <span class="badge white-fg margin-right-20" ng-style="{\'background\': node.badge.color}" ng-if="node.badge">{{node.badge.content}}</span>\n <i class="icon-chevron-right s16 arrow" ng-if="vm.collapsable && vm.hasChildren"></i>\n </a>\n\n </div>\n\n <ul ng-if="vm.hasChildren && !vm.isHidden()">\n <li ng-repeat="node in node.children" ms-navigation-node="node"\n ng-class="{\'collapsed\': vm.collapsed, \'has-children\': vm.hasChildren}"\n ng-include="\'navigation-nested.html\'"></li>\n </ul>\n\n<\/script>\n\x3c!-- / Nested navigation template --\x3e'),e.put("assets/ms-phonebar/ms-phonebar-dialpad.html",'\x3c!-- Dialpad --\x3e\n<md-content ng-if="vm_pb.showDialpad" class="num-pad" layout="column">\n <section layout="row" layout-align="start center">\n <span><img class="num-pad-logo" layout-padding src="/api/settings/1/logo" alt="logo" /></span>\n <span class="md-subhead">Dialpad</span>\n <div layout="row" layout-align="end center" flex>\n <md-button class="md-icon-button" ng-click="vm_pb.closeDialpad()">\n <md-icon md-font-icon="icon-close"></md-icon>\n </md-button>\n </div>\n </section>\n <md-divider></md-divider>\n <section layout="row">\n <div class="span4" ng-repeat="item in ::[{n: 1, l: []}, {n: 2, l: [\'a\', \'b\', \'c\']}, {n: 3, l: [\'d\', \'e\', \'f\']}]" ng-click="vm_pb.type(item.n, true)">\n <div class="num">\n <div class="txt">\n {{item.n}} <span class="small">\n <p>\n <span ng-repeat="l in ::item.l">{{l | uppercase}}</span>\n </p>\n </span>\n </div>\n </div>\n </div>\n </section>\n <section layout="row">\n <div class="span4" ng-repeat="item in ::[{n: 4, l: [\'g\', \'h\', \'i\']}, {n: 5, l: [\'j\', \'k\', \'l\']}, {n: 6, l: [\'m\', \'n\', \'o\']}]" ng-click="vm_pb.type(item.n, true)">\n <div class="num">\n <div class="txt">\n {{item.n}} <span class="small">\n <p>\n <span ng-repeat="l in ::item.l">{{l | uppercase}}</span>\n </p>\n </span>\n </div>\n </div>\n </div>\n </section>\n <section layout="row">\n <div class="span4" ng-repeat="item in ::[{n: 7, l: [\'p\', \'q\', \'r\', \'s\']}, {n: 8, l: [\'t\', \'u\', \'v\']}, {n: 9, l: [\'w\', \'x\', \'y\', \'z\']}]" ng-click="vm_pb.type(item.n, true)">\n <div class="num">\n <div class="txt">\n {{item.n}} <span class="small">\n <p>\n <span ng-repeat="l in ::item.l">{{l | uppercase}}</span>\n </p>\n </span>\n </div>\n </div>\n </div>\n </section>\n <section layout="row">\n <div class="span4" ng-repeat="item in ::[{n: \'*\', l: []}]" ng-click="vm_pb.type(item.n, true)">\n <div class="num" layout="column" layout-align="center center">\n <div class="txt" layout="column" layout-align="center center">\n {{item.n}}\n </div>\n </div>\n </div>\n <div class="span4" ng-repeat="item in ::[{n: 0, l: [\'+\']}]" ng-click="vm_pb.type(item.n, true)">\n <div class="num">\n <div class="txt">\n {{item.n}} <span class="small">\n <p>\n <span ng-repeat="l in ::item.l">{{l | uppercase}}</span>\n </p>\n </span>\n </div>\n </div>\n </div>\n <div class="span4" ng-repeat="item in ::[{n: \'#\', l: []}]" ng-click="vm_pb.type(item.n, true)">\n <div class="num" layout="column" layout-align="center center">\n <div class="txt" layout="column" layout-align="center center">\n {{item.n}}\n </div>\n </div>\n </div>\n </section>\n</md-content>\n\x3c!-- Dialpad --\x3e\n\n\x3c!-- Input&Media Area --\x3e\n<div layout="row" layout-align="start center">\n <div layout="row" layout-align="center center">\n \x3c!-- START Ringing Tone--\x3e\n <md-button class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Ringing" ng-click="vm_pb.conf.ringingMute = !vm_pb.conf.ringingMute; vm_pb.initDevice(\'ringing\', true)" ng-disabled="!vm_pb.registered">\n <md-icon md-font-icon="{{vm_pb.conf.ringingMute ? \'icon-bell-off\' : \'icon-bell-ring\'}}" class="icon s14" ng-class="vm_pb.conf.ringingMute ? \'red-fg\' : \'grey-fg\'">\n <md-tooltip><span translate="TOOLBAR.RINGING">Ringing</span></md-tooltip>\n </md-icon>\n </md-button>\n \x3c!-- END Ringing Tone --\x3e\n\n \x3c!-- START Speaker --\x3e\n <md-button class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Speaker" ng-click="vm_pb.conf.speakerMute = !vm_pb.conf.speakerMute; vm_pb.initDevice(\'speaker\', true)" ng-disabled="!vm_pb.registered">\n <md-icon md-font-icon="{{vm_pb.conf.speakerMute ? \'icon-volume-off\' : \'icon-volume\'}}" class="icon s14" ng-class="vm_pb.conf.speakerMute ? \'red-fg\' : \'grey-fg\'">\n <md-tooltip><span translate="TOOLBAR.SPEAKER">Speaker</span></md-tooltip>\n </md-icon>\n </md-button>\n \x3c!-- END Speaker --\x3e\n\n \x3c!-- START Microphone --\x3e\n <md-button class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Microphone" ng-click="vm_pb.conf.microphoneMute = !vm_pb.conf.microphoneMute; vm_pb.initDevice(\'microphone\', true)" ng-disabled="!vm_pb.registered">\n <md-icon md-font-icon="{{vm_pb.conf.microphoneMute ? \'icon-microphone-off\' : \'icon-microphone\'}}" class="icon s14" ng-class="vm_pb.conf.microphoneMute ? \'red-fg\' : \'grey-fg\'">\n <md-tooltip><span translate="TOOLBAR.MICROPHONE">Microphone</span></md-tooltip>\n </md-icon>\n </md-button>\n \x3c!-- END Microphone --\x3e\n\n \x3c!-- START Registered --\x3e\n <span>\n <span class="quantity-indicator md-red-500-bg" ng-class="vm_pb.registered ? \'md-green-500-bg\' : \'md-red-500-bg\'"></span>\n <md-tooltip><span>{{vm_pb.conf.license ? (vm_pb.registered ? \'TOOLBAR.REGISTERED\' : \'TOOLBAR.NOT_REGISTERED\') : \'TOOLBAR.WEBRTC_LICENSE_NOT_ENABELD\' | translate}}\n <timer ng-if="vm_pb.registered"></timer>\n </span>\n </md-tooltip>\n </span>\n \x3c!-- END Registered --\x3e\n </div>\n <div layout="column" layout-align="center start">\n <div layout="row" layout-align="start center">\n \x3c!-- START Target --\x3e\n <angucomplete-alt id="ms-target-wrap" pause="10" local-data="vm_pb.calls" search-fields="target" title-field="target" minlength="0" input-class="input-number" disable-input="!vm_pb.registered" match-class="highlight" template-url="assets/ms-phonebar/ms-phonebar-input.html" input-changed="vm_pb.targetChanged" selected-object="vm_pb.targetSelected" clear-selected="true" ng-keypress="vm_pb.typeWrapper($event)" focus-first="true" disable-autocomplete="vm_pb.currentUser.privacyEnabled" />\n \x3c!-- END Target --\x3e\n\n \x3c!-- Auto Answer --\x3e\n <div ng-if="vm_pb.conf.autoAnswer" class="red-fg" style="padding-left: 10px;">\n <span class="font-size-20">A<span class="font-size-16">A</span></span>\n </div>\n \x3c!-- Auto Answer --\x3e\n\n <md-button class="md-fab md-mini white-bg width-30 height-30" aria-label="Dialpad" ng-click="vm_pb.toggleDialpad()" ng-disabled="!vm_pb.registered">\n <md-icon md-font-icon="icon-apps" class="icon grey-fg s16"></md-icon>\n </md-button>\n <md-button ng-if="vm_pb.target" class="md-fab md-mini white-bg width-25 height-25" aria-label="Call" style="margin-left: 0px;" ng-click="vm_pb.call()">\n <md-icon md-font-icon="icon-phone" class="icon green-fg s12"></md-icon>\n </md-button>\n </div>\n </div>\n</div>\n\x3c!-- Input&Media Area --\x3e\n\n\x3c!-- START 3WC --\x3e\n<md-button ng-if="vm_pb.canGoInConference" class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="3Way" ng-click="vm_pb.start3WayConf(); $event.stopPropagation();">\n <md-icon md-font-icon="icon-account-multiple-plus" class="icon orange-fg s14"></md-icon>\n <md-tooltip><span translate="TOOLBAR.CONFERENCE">Conference</span></md-tooltip>\n</md-button>\n\x3c!-- END 3Way --\x3e\n\n\n<div class="toolbar-separator"></div>\n\n\x3c!-- Sessions Area --\x3e\n<div class="sessions" layout="row" layout-align="start center" flex>\n <div layout="row" layout-align="center center" ng-if="!vm_pb.conf.license">\n <md-icon md-font-icon="icon-account-alert" class="icon s36 red-fg"></md-icon>\n <span layout-margin translate="TOOLBAR.WEBRTC_LICENSE_NOT_ENABELD"></span>\n </div>\n\n <div id="{{\'div_session_\'+session.id.substr(0,32)}}" ng-repeat="session in vm_pb.sessions" class="session" layout="row" ng-click="(vm_pb.sessions.length > 1) && vm_pb.selectSession(session)">\n <md-button ng-if="vm_pb.conf.recording && session.confirmed" class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Record" ng-click="vm_pb.record(session); $event.stopPropagation();">\n <md-icon md-font-icon="icon-radiobox-marked" class="icon s14" ng-class="session.monitor ? \'red-fg\' : \'grey-fg\'"></md-icon>\n </md-button>\n <div layout="column" layout-align="center start">\n <span class="session-info">\n <span ng-if="session.user == session.name" privacy ng-cloak>{{session.user}}</span>\n <span ng-if="session.user != session.name" privacy ng-cloak>{{session.name}}</span> <span ng-if="session.user != session.name" privacy ng-cloak>{{session.user}}</span>\n </span>\n <span class="session-info" layout="row" layout="start center">\n <timer></timer>\n </span>\n </div>\n\n \x3c!-- START Answer --\x3e\n <md-button ng-if="session.incoming && !session.confirmed" class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Anser" ng-click="vm_pb.answer(session); $event.stopPropagation();">\n <md-icon md-font-icon="icon-phone" class="icon green-fg s12"></md-icon>\n </md-button>\n \x3c!-- END Answer --\x3e\n\n \x3c!-- START Hangup --\x3e\n <md-button class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Terminate" ng-click="vm_pb.terminate(session); $event.stopPropagation();">\n <md-icon md-font-icon="icon-phone-hangup" class="icon red-fg s12"></md-icon>\n </md-button>\n \x3c!-- END Hangup --\x3e\n\n \x3c!-- START Hold/Unhold --\x3e\n <md-button ng-if="session.confirmed && !vm_pb.isInConference" class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Hold" ng-click="(session.localHold ? vm_pb.unhold(session) : vm_pb.hold(session)); $event.stopPropagation();">\n <md-icon md-font-icon="{{session.localHold ? \'icon-play\' : \'icon-pause\'}}" class="icon grey-fg s12"></md-icon>\n </md-button>\n \x3c!-- END Hold/Unhold --\x3e\n\n \x3c!-- START Transfer --\x3e\n <md-button ng-if="session.confirmed && !session.localHold && vm_pb.sessions.length == 1 && !vm_pb.isInConference" class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Refer" ng-click="vm_pb.refer(session); $event.stopPropagation();">\n <md-icon md-font-icon="icon-phone-forward" class="icon purple-fg s12"></md-icon>\n </md-button>\n \x3c!-- END transfer --\x3e\n\n \x3c!-- START Attended Transfer --\x3e\n <md-button ng-if="session.confirmed && !session.localHold && vm_pb.sessions.length>1" class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Refer Attended" ng-click="vm_pb.referAttended(session); $event.stopPropagation();">\n <md-icon md-font-icon="icon-phone-forward" class="icon purple-fg s12"></md-icon>\n </md-button>\n \x3c!-- END Attended Transfer --\x3e\n </div>\n</div>\n\x3c!-- Sessions Area --\x3e'),e.put("assets/ms-phonebar/ms-phonebar-input.html",'<div class="angucomplete-holder" ng-class="{\'angucomplete-dropdown-visible\': showDropdown}">\n <input id="ms-target" ng-model="searchStr" ng-disabled="disableInput" type="text" placeholder="{{placeholder}}" ng-focus="onFocusHandler()" class="{{inputClass}}" ng-focus="resetHideResults()" ng-blur="hideResults($event)" autocapitalize="off" autocorrect="off" autocomplete="off" ng-change="inputChangeHandler(searchStr)" />\n <div class="angucomplete-dropdown" ng-show="showDropdown && !(!searching && (!results || results.length == 0))">\n <div class="angucomplete-row" ng-repeat="result in results" ng-click="selectResult(result)" ng-mouseenter="hoverRow($index)" ng-class="{\'angucomplete-selected-row\': $index == currentIndex}">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="{{result.originalObject.inbound ? \'icon-arrow-bottom-left\' : \'icon-arrow-top-right\'}}" class="icon no-margin s22"></md-icon>\n <span style="margin-left: 8px;">({{result.originalObject.time}}) - <span class="angucomplete-title" ng-if="matchClass" ng-bind-html="result.title" privacy ng-cloak></span></span>\n </div>\n </div>\n </div>\n</div>'),e.put("assets/ms-phonebar/ms-phonebar.html",'<div layout="row" layout-align="start center" flex>\n \x3c!-- Audio stream --\x3e\n <audio id="local-audio" autoplay hidden=true></audio>\n <audio id="remote-audio" autoplay hidden=true></audio>\n \x3c!-- Audio stream --\x3e\n\n \x3c!-- WebRtc PhoneBar --\x3e\n <div class="phonebar-container" ng-include="\'assets/ms-phonebar/ms-phonebar-dialpad.html\'" layout="row" layout-align="start center" flex></div>\n \x3c!-- WebRtc PhoneBar --\x3e\n</div>'),e.put("assets/ms-phonebar/prefix/dialog.html",'<md-dialog aria-label="Prefix">\n <form ng-cloak ng-keypress="vm.keyPress($event)">\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div flex>\n <span class="title" translate="TOOLBAR.PREFIXES">Prefixes</span>\n </div>\n <div layout="row" layout-align="end center">\n <md-button class="md-icon-button no-margin no-padding" ng-click="vm.closeDialog(-1)">\n <md-icon class="no-margin" md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </div>\n </md-toolbar>\n\n <md-dialog-content>\n <md-radio-group ng-model="vm.prefix">\n <md-radio-button ng-repeat="prefix in vm.prefixes.rows" value="{{prefix.prefix}}" class="md-primary">{{prefix.name}}</md-radio-button>\n <md-radio-button ng-if="!vm.required" ng-value="null" class="md-primary">no prefix</md-radio-button>\n </md-radio-group>\n </md-dialog-content>\n\n <md-dialog-actions layout="row">\n <md-button ng-click="vm.call()" class="send-button md-accent md-raised" aria-label="call" md-autofocus ng-disabled="!vm.prefix && vm.required">\n <span translate="TOOLBAR.CALL">CALL</span>\n </md-button>\n <md-button ng-click="vm.closeDialog(-1)" class="send-button md-accent md-raised" aria-label="cancel">\n <span translate="TOOLBAR.CANCEL">Cancel</span>\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("assets/ms-phonebar/record/dialog.html",'<md-dialog aria-label="Recording" ng-init="vm.onInit()">\n <form ng-cloak>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div flex>\n <span class="title" translate="TOOLBAR.RECORDING">Recording</span>\n </div>\n <div layout="row" layout-align="end center">\n <md-button class="md-icon-button no-margin no-padding">\n <md-icon class="no-margin" md-font-icon="icon-plus" aria-label="Add" ng-click="vm.addRecording()"></md-icon>\n </md-button>\n <md-button class="md-icon-button no-margin no-padding" ng-click="vm.closeDialog()">\n <md-icon class="no-margin" md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </div>\n </md-toolbar>\n\n <md-table-container>\n <table md-table layout-padding>\n <thead md-head>\n <tr md-row>\n <th md-column><span translate="TOOLBAR.FILENAME">File name</span></th>\n <th md-column><span translate="TOOLBAR.STATUS">Status</span></th>\n <th md-column><span translate="TOOLBAR.ACTIONS">Actions</span></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.session.monitors.length">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="TOOLBAR.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="monitor in vm.session.monitors">\n <td md-cell>{{monitor.filename}}</td>\n <td md-cell class="no-padding">\n <md-icon md-font-icon="icon-radiobox-marked" class="icon s16" ng-class="(monitor.status == \'rec\') ? \'red-fg ms-blink\' : \'grey-fg\'"></md-icon>\n </td>\n <td md-cell class="no-padding">\n <md-button class="md-fab md-mini white-bg width-35 height-35 margin-5" aria-label="Record" ng-click="(monitor.status == \'rec\') ? vm.stop(monitor) : vm.start(monitor)">\n'+" <md-icon md-font-icon=\"{{monitor.status == 'rec' ? 'icon-stop' : 'icon-play'}}\" class=\"icon s16\" ng-class=\"monitor.status == 'rec' ? 'grey-fg' : 'red-fg'\"></md-icon>\n </md-button>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n </form>\n</md-dialog>"),e.put("assets/ms-phonebar/referAttended/dialog.html",'<md-dialog aria-label="Transfer">\n <form ng-cloak>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div flex>\n <span class="title" translate="TOOLBAR.ATTENDED_TRANSFER">Transfer</span>\n </div>\n <div layout="row" layout-align="end center">\n <md-button class="md-icon-button no-margin no-padding" ng-click="vm.closeDialog()">\n <md-icon class="no-margin" md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </div>\n </md-toolbar>\n\n <md-dialog-content>\n <label translate="TOOLBAR.TARGET">Target</label>\n <md-input-container class="md-block">\n <md-select ng-model="vm.target">\n <md-option ng-repeat="session in vm.sessions" ng-value="session.user">\n {{ session.name }}\n </md-option>\n </md-select>\n </md-input-container>\n </md-dialog-content>\n\n <md-dialog-actions layout="row">\n <md-button ng-click="vm.transfer()" class="send-button md-accent md-raised" aria-label="transfer" ng-disabled="!vm.target && !vm.sessionId">\n <span translate="TOOLBAR.TRANSFER">TRANSFER</span>\n </md-button>\n <md-button ng-click="vm.closeDialog()" class="send-button md-accent md-raised" aria-label="cancel">\n <span translate="TOOLBAR.CANCEL">Cancel</span>\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("assets/ms-phonebar/settings/settings.html",'<md-dialog class="md-phonebar-dialog" aria-label="{{vm.name}}">\n <form name="settingsForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title" translate="TOOLBAR.SETTINGS">Settings</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content class="no-padding" ms-scroll>\n <md-tabs md-no-pagination md-stretch-tabs="always">\n <md-tab label="{{ \'TOOLBAR.PROFILE\' | translate}}">\n <md-content layout-padding layout="column">\n <span><span translate="TOOLBAR.FULLNAME">Fullname</span>: {{vm.conf.fullname}}</span>\n <span><span translate="TOOLBAR.NAME">Name</span>: {{vm.conf.name}}</span>\n <span><span translate="TOOLBAR.INTERNAL">Internal</span>: {{vm.conf.internal}}</span>\n <span><span translate="TOOLBAR.BROWSER">Browser</span>: {{vm.conf.browserName}} {{vm.conf.browserVersion}}</span>\n <span><span translate="TOOLBAR.OS">OS</span>: {{vm.conf.osName}} {{vm.conf.osVersion}}</span>\n </md-content>\n </md-tab>\n <md-tab label="{{ \'TOOLBAR.SERVICES\' | translate}}">\n <md-content layout-padding>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.conf.autoAnswer" aria-label="Auto Answer">\n <span translate="TOOLBAR.AUTOANSWER">Auto Answer</span>\n <span>{{ vm.conf.autoAnswerDelay }} [s]</span>\n </md-switch>\n </md-input-container>\n </md-content>\n </md-tab>\n <md-tab label="{{ \'TOOLBAR.AUDIO\' | translate}}">\n <md-content layout-padding>\n <div class="border brad-5" layout-margin>\n <md-input-container class="md-block" ng-if="(vm.devices | filter: { kind: \'audiooutput\' }).length">\n <label translate="TOOLBAR.RINGINGDEVICE">Ringing Device</label>\n <md-select name="ringingDevice" ng-model="vm.conf.ringingId" required>\n <md-option ng-value="device.deviceId" ng-repeat="device in vm.devices | filter: { kind: \'audiooutput\' }">{{ device.label || (\'Speaker \' + ($index + 1)) }}</md-option>\n </md-select>\n <div ng-messages="settingsForm[\'ringingDevice\'].$error" ng-show="settingsForm[\'ringingDevice\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLBAR.ERRORS.FIELD_REQUIRED">Field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div layout="row" layout-align="space-between center">\n <md-switch ng-model="vm.conf.ringingMute" aria-label="Mute">\n Mute\n </md-switch>\n\n <md-slider-container flex="80">\n <md-slider flex step="0.1" min="0" max="1" ng-model="vm.conf.ringingVolume" aria-label="volume"></md-slider>\n </md-slider-container>\n </div>\n </div>\n\n <div class="border brad-5" layout-margin>\n <md-input-container class="md-block" ng-if="(vm.devices | filter: { kind: \'audiooutput\' }).length">\n <label translate="TOOLBAR.SPEAKERDEVICE">Speaker Device</label>\n <md-select name="speakerDevice" ng-model="vm.conf.speakerId" required>\n <md-option ng-value="device.deviceId" ng-repeat="device in vm.devices | filter: { kind: \'audiooutput\' }">{{ device.label || (\'Speaker \' + ($index + 1)) }}</md-option>\n </md-select>\n <div ng-messages="settingsForm[\'speakerDevice\'].$error" ng-show="settingsForm[\'speakerDevice\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLBAR.ERRORS.FIELD_REQUIRED">Field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div layout="row" layout-align="space-between cetner">\n <md-switch ng-model="vm.conf.speakerMute" aria-label="Mute">\n Mute\n </md-switch>\n\n <md-slider-container flex="80">\n <md-slider flex step="0.1" min="0" max="1" ng-model="vm.conf.speakerVolume" aria-label="volume"></md-slider>\n </md-slider-container>\n </div>\n </div>\n\n <div class="border brad-5" layout-margin>\n <md-input-container class="md-block" ng-if="(vm.devices | filter: { kind: \'audioinput\' }).length">\n <label translate="TOOLBAR.MICROPHONEDEVICE">Microphone Device</label>\n <md-select name="microphoneDevice" ng-model="vm.conf.microphoneId" required>\n <md-option ng-value="device.deviceId" ng-repeat="device in vm.devices | filter: { kind: \'audioinput\' }">{{ device.label || (\'Microphone \' + ($index + 1))}}</md-option>\n </md-select>\n <div ng-messages="settingsForm[\'microphoneDevice\'].$error" ng-show="settingsForm[\'microphoneDevice\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLBAR.ERRORS.FIELD_REQUIRED">Field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div layout="row" layout-align="space-between center">\n <md-switch ng-model="vm.conf.microphoneMute" aria-label="Mute">\n Mute\n </md-switch>\n </div>\n </div>\n </md-content>\n </md-tab>\n <md-tab label="{{ \'TOOLBAR.REQUIREMENTS\' | translate}}">\n <md-content layout-padding>\n <md-list>\n <md-list-item>\n <h3 translate="TOOLBAR.LICENSE">License</h3>\n <md-icon class="md-secondary" ng-class="vm.conf.license ? \'green-fg\' : \'red-fg\'" md-font-icon="{{vm.conf.license ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </md-list-item>\n <md-list-item>\n <h3 translate="TOOLBAR.BROWSER_COMPATIBILITY">Browser Compatibility</h3>\n <md-icon class="md-secondary" ng-class="vm.isCompatibleBrowser() ? \'green-fg\' : \'red-fg\'" md-font-icon="{{vm.isCompatibleBrowser() ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </md-list-item>\n <md-list-item>\n <h3 translate="TOOLBAR.HTTPS">HTTPS</h3>\n <md-icon class="md-secondary" ng-class="vm.conf.protocol === \'https\' ? \'green-fg\' : \'red-fg\'" md-font-icon="{{vm.conf.protocol === \'https\' ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </md-list-item>\n <md-list-item>\n <h3 translate="TOOLBAR.WEBRTCSUPPORT">WebRTC Support</h3>\n <md-icon class="md-secondary" ng-class="vm.conf.isWebRTCSupported ? \'green-fg\' : \'red-fg\'" md-font-icon="{{vm.conf.isWebRTCSupported ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </md-list-item>\n <md-list-item>\n <h3 translate="TOOLBAR.MICROPHONE">Microphone</h3>\n <md-icon class="md-secondary" ng-class="vm.conf.hasMicrophone ? \'green-fg\' : \'red-fg\'" md-font-icon="{{vm.conf.hasMicrophone ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </md-list-item>\n <md-list-item>\n <h3 translate="TOOLBAR.SPEAKER">Speaker</h3>\n <md-icon class="md-secondary" ng-class="vm.conf.hasSpeakers ? \'green-fg\' : \'red-fg\'" md-font-icon="{{vm.conf.hasSpeakers ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </md-list-item>\n </md-list>\n </md-content>\n </md-tab>\n </md-tabs>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.saveSettings()" class="send-button md-accent md-raised" ng-disabled="settingsForm.$invalid || settingsForm.$pristine" aria-label="SAVE" translate="TOOLBAR.SAVE" translate-attr-aria-label="TOOLBAR.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/core/directives/ms-quick-filter/ms-quick-filter.html",'<div ng-cloak layout="row" class="quick-filter-container" flex>\n <div ng-repeat="filter in vm.filters" ng-if="filter.ngIf ? $eval(\'vm.query.\' + filter.ngIf) : true" layout="column" class="padding-horizontal-16">\n <span class="font-size-10" translate="{{ filter.label }}" />\n <md-select ng-if="filter.type === \'select\'" class="font-size-12 no-margin" ng-model="vm.query[filter.key]" ng-change="vm.search()" aria-label="Filter {{ filter.name }}">\n <md-option ng-repeat="option in filter.options" ng-value="filter.ngValue ? option[filter.ngValue] : option.id">\n {{ option.name }}</md-option>\n <md-option ng-repeat="option in filter.customOptions" ng-value="option.value" translate="{{ option.translate }}">\n </md-option>\n </md-select>\n\n <md-select ng-if="filter.type === \'multiselect\'" multiple class="font-size-12 no-margin" ng-init="vm.onMultiselectInit(filter)" ng-model="vm.query[filter.key]" ng-disabled="filter.options.length === 0" ng-change="vm.onMultiselectSelection(filter, isOpened)" md-selected-text="vm.placeholders[filter.key]" aria-label="Filter {{ filter.name }}" md-on-open="isOpened = true" md-on-close="isOpened = false">\n <md-option ng-repeat="option in filter.options" ng-value="filter.ngValue ? option[filter.ngValue] : option.id" ng-disabled="filter.clearAll === false && vm.query[filter.key].length === 1 && vm.query[filter.key][0] === (filter.ngValue ? option[filter.ngValue] : option.id)">\n {{ option.name }}</md-option>\n <md-button ng-if="vm.query[filter.key].length < filter.options.length" ng-click="vm.selectAll(filter)" md-no-ink class="md-primary" layout-fill>\n {{\'DASHBOARDS.SELECT_ALL\' | translate}}</md-button>\n <md-button ng-if="vm.query[filter.key].length === filter.options.length" ng-click="vm.clearSelection(filter)" md-no-ink class="md-primary" layout-fill>\n {{\'DASHBOARDS.CLEAR\' | translate}}</md-button>\n </md-select>\n\n <div ng-if="filter.type === \'date\'" layout="row" layout-align="center center">\n <md-date-range ng-init="vm.onDateRangeInit(filter)" localization-map="vm.localizationMap" ng-model="vm.pickerModels[filter.key]" auto-confirm="true" show-template="true" md-on-select="vm.onDateRangeSelection(filter)" placeholder="{{ \'DASHBOARDS.ALL\' | translate }}">\n </md-date-range>\n <md-button ng-if="vm.pickerModels[filter.key].dateStart" ng-click="vm.clearDate(filter)" class="md-icon-button no-margin no-padding width-20 height-20" aria-label="Clear date filter">\n <md-icon md-font-icon="icon-close" class="quick-filter-date-clear-button s16"></md-icon>\n </md-button>\n </div>\n </div>\n</div>'),e.put("app/core/directives/ms-search-bar/ms-search-bar.html",'<div flex layout="row" layout-align="start center">\n <label>\n <md-button class="ms-search-bar-expander md-icon-button" aria-label="Expand Search Bar" ng-click="vm.expandBar()" ng-if="!vm.resultsLoading || !vm.expanded" ng-class="{\'ms-search-button-expanded\': vm.expanded }">\n <md-icon id="ms-search-bar-icon" md-font-icon="icon-magnify" class="s24" ng-class="{\'{{ vm.iconColor }}\': vm.iconColor && !vm.expanded }"></md-icon>\n </md-button>\n <div class="ms-search-bar-loader" layout="row" layout-align="center center" ng-if="vm.resultsLoading && vm.expanded">\n <md-progress-circular class="md-accent" md-diameter="32" md-mode="indeterminate"></md-progress-circular>\n </div>\n </label>\n <input ng-if="vm.expanded" focus-on="vm.expanded" type="text" placeholder="{{ \'TOOLBAR.SEARCH\' | translate }}" flex ng-model="vm.query.filter" ng-model-options="vm.queryOptions" ng-blur="vm.blurCollapse()" ng-keydown="vm.onKeyDown($event)" />\n <md-button class="ms-search-bar-collapser md-icon-button" ng-click="vm.collapseBar()" aria-label="Collapse Search Bar">\n <md-icon md-font-icon="icon-close" class="icon s24"></md-icon>\n </md-button>\n <div class="ms-search-bar-results" ng-if="vm.results" ms-scroll>\n <div class="no-results" ng-if="vm.results.length === 0">{{ \'DASHBOARDS.NO_RESULTS_AVAILABLE\' | translate }}</div>\n <div class="result" ng-repeat="result in vm.results" ng-click="vm.handleResultClick(result)" ng-mouseenter="vm.handleMouseEnter($index)" ng-mousedown="vm.absorbEvent($event)" ng-class="{\'selected\': $index == vm.selectedResultIndex}" md-ink-ripple>\n <div layout="row" layout-align="start center">\n <div class="icon-container" layout="row" layout-align="center center">\n <i ng-if="result.icon" class="icon {{ result.icon }}"></i>\n <div ng-if="!result.icon" class="square md-accent-bg"></div>\n </div>\n <div>\n <div class="title">{{ result.title }}</div>\n <div class="description" ng-if="result.description">{{ result.description }}</div>\n </div>\n </div>\n </div>\n </div>\n</div>'),e.put("app/core/directives/ms-shortcuts/ms-shortcuts.html",'<div class="shortcuts-container" layout="row" layout-align="space-between center" flex ng-class="{\'mobile-bar-active\': MsShortcuts.mobileBarActive}">\n\n <div class="flex-noshrink" layout="row" layout-align="start center" flex>\n <div class="shortcuts hide show-gt-xs" layout="row" layout-align="start center" ms-scroll ng-if="MsShortcuts.shortcuts.length > 0" ng-sortable="MsShortcuts.sortableOptions">\n <div ng-repeat="shortcut in MsShortcuts.shortcuts" layout="row" layout-align="center center">\n <md-button class="md-icon-button shortcut" aria-label="{{shortcut.title}}" ui-sref="{{shortcut.uisref}}">\n <md-icon ng-if="shortcut.icon" md-font-icon="{{shortcut.icon}}" class="icon s24"></md-icon>\n <div ng-if="!shortcut.icon" class="first-letter">{{shortcut.title.charAt(0)}}</div>\n <md-tooltip md-direction="bottom">{{shortcut.title}}</md-tooltip>\n </md-button>\n </div>\n </div>\n\n \x3c!-- <md-menu md-offset="8 56" class="shortcut-menu hide show-gt-xs">\n <md-button class="md-icon-button add-shortcut-button" aria-label="Add shortcut"\n ng-click="$mdOpenMenu($event)">\n <md-icon md-menu-origin md-font-icon="icon-star" class="icon amber-600-fg s24"></md-icon>\n <md-tooltip md-direction="bottom">Click to add/remove shortcut</md-tooltip>\n </md-button>\n\n <md-menu-content>\n <div id="ms-shortcut-add-menu">\n <div class="shortcut-search" layout="row" layout-align="start center">\n <div class="search-icon" layout="row" layout-align="center center"\n ng-if="!MsShortcuts.resultsLoading">\n <md-icon md-menu-align-target md-font-icon="icon-magnify" class="icon s24"></md-icon>\n </div>\n <div class="shortcut-loader" layout="row" layout-align="center center"\n ng-if="MsShortcuts.resultsLoading">\n <md-progress-circular class="md-accent" md-diameter="20" md-mode="indeterminate">\n </md-progress-circular>\n </div>\n\n <input type="text" placeholder="Search" flex\n ng-model="MsShortcuts.query"\n ng-model-options="MsShortcuts.queryOptions"\n ng-keydown="MsShortcuts.handleKeydown($event)">\n </div>\n\n <div class="results" ng-if="MsShortcuts.results" ms-scroll>\n <div class="no-results" ng-if="MsShortcuts.results.length === 0">No Results!</div>\n\n <div class="result" ng-repeat="result in MsShortcuts.results"\n ng-click="MsShortcuts.handleResultClick(result)"\n ng-mouseenter="MsShortcuts.handleMouseenter($index)"\n ng-mousedown="MsShortcuts.absorbEvent($event)"\n ng-class="{\'selected\': $index == MsShortcuts.selectedResultIndex}"\n md-prevent-menu-close="md-prevent-menu-close"\n md-ink-ripple>\n <div layout="row" layout-align="start space-between">\n <div layout="row" layout-align="start center" flex>\n <div class="icon icon-container" layout="row" layout-align="center center">\n <i ng-if="result.icon" class="{{result.icon}}"></i>\n <div ng-if="!result.icon" class="square md-accent-bg"></div>\n </div>\n <div>\n <div class="title">{{result.title}}</div>\n </div>\n </div>\n <md-icon md-font-icon="icon-pin" class="icon s18"\n ng-class="{\'fade-text\': !result.hasShortcut}"></md-icon>\n </div>\n </div>\n </div>\n </div>\n </md-menu-content>\n </md-menu> --\x3e\n </div>\n\n <md-button class="md-icon-button toggle-mobile-menu hide-gt-xs" aria-label="Add shortcut" ng-click="MsShortcuts.toggleMobileBar()">\n <md-icon md-menu-origin md-font-icon="icon-star" class="icon amber-600-fg s24" ng-hide="MsShortcuts.mobileBarActive"></md-icon>\n <md-icon md-menu-origin md-font-icon="icon-close" class="icon s24" ng-hide="!MsShortcuts.mobileBarActive"></md-icon>\n </md-button>\n</div>'),e.put("app/core/directives/ms-stepper/templates/horizontal/horizontal.html",'<div class="ms-stepper-horizontal">\n <div class="ms-stepper-navigation-wrapper">\n <div class="ms-stepper-navigation" layout="row" layout-align="center center">\n <md-button class="ms-stepper-navigation-item" ng-class="{\'current\': MsStepper.isStepCurrent(step.stepNumber), \'valid\': MsStepper.isStepValid(step.stepNumber), \'disabled\': MsStepper.isStepDisabled(step.stepNumber), \'optional\': MsStepper.isStepOptional(step.stepNumber)}" ng-click="MsStepper.gotoStep(step.stepNumber)" ng-disabled="MsStepper.isStepDisabled(step.stepNumber)" ng-repeat="step in MsStepper.steps | filter:MsStepper.filterHiddenStep" layout="row" layout-align="start center">\n\n <div class="step md-accent-bg" layout="row" layout-align="center center">\n <span ng-if="!MsStepper.isStepValid(step.stepNumber) || MsStepper.isStepOptional(step.stepNumber)">\n {{$index + 1}}\n </span>\n <span ng-if="MsStepper.isStepValid(step.stepNumber) && !MsStepper.isStepOptional(step.stepNumber)">\n <i class="icon icon-check s18"></i>\n </span>\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="title" translate="{{step.stepTitleTranslate}}">{{step.stepTitle}}</div>\n <div class="subtitle" ng-if="MsStepper.isStepOptional(step.stepNumber)">Optional</div>\n </div>\n </md-button>\n </div>\n </div>\n\n <div class="ms-stepper-steps" ng-transclude></div>\n\n <div class="ms-stepper-controls" layout="row" layout-align="center center">\n <md-button class="md-accent md-raised" ng-disabled="MsStepper.isFirstStep()" ng-click="MsStepper.gotoPreviousStep()">\n Back\n </md-button>\n\n <div class="ms-stepper-dots">\n <span ng-repeat="step in MsStepper.steps" ng-hide="MsStepper.isStepHidden(step.stepNumber)" ng-class="{\'selected md-accent-bg\':MsStepper.currentStepNumber === $index + 1}">\n </span>\n </div>\n\n <md-button class="md-accent md-raised" ng-if="!MsStepper.isLastStep()" ng-disabled="!MsStepper.isStepValid(MsStepper.currentStepNumber)" ng-click="MsStepper.gotoNextStep()">\n Next\n </md-button>\n\n <md-button type="submit" class="md-accent md-raised" ng-click="MsStepper.resetForm()" ng-if="MsStepper.isLastStep()" ng-disabled="!MsStepper.isFormValid()">\n Submit\n </md-button>\n </div>\n</div>'),e.put("app/core/directives/ms-stepper/templates/vertical/step/vertical-step.html",'<md-button class="ms-stepper-navigation-item" ng-class="{\'current\': MsStepper.isStepCurrent(stepInfo.stepNumber), \'valid\': MsStepper.isStepValid(stepInfo.stepNumber), \'disabled\': MsStepper.isStepDisabled(stepInfo.stepNumber), \'optional\': MsStepper.isStepOptional(stepInfo.stepNumber)}" ng-click="MsStepper.gotoStep(stepInfo.stepNumber)" ng-disabled="MsStepper.isStepDisabled(stepInfo.stepNumber)" ng-hide="MsStepper.isStepHidden(stepInfo.stepNumber)" aria-label="Stepper navigation button" layout="row" layout-align="start center">\n\n <div class="step" layout="row" layout-align="center center">\n <span ng-if="!MsStepper.isStepValid(stepInfo.stepNumber) || MsStepper.isStepOptional(stepInfo.stepNumber)">\n <i class="icon icon-checkbox-blank-circle-outline s18 md-accent-fg"></i>\n </span>\n <span ng-if="MsStepper.isStepValid(stepInfo.stepNumber) && !MsStepper.isStepOptional(stepInfo.stepNumber)">\n <i class="icon icon-check-circle s18 md-accent-fg"></i>\n </span>\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="title" ng-if="stepInfo.stepTitleTranslate">{{stepInfo.stepTitleTranslate | translate }}</div>\n <div class="title" ng-if="!stepInfo.stepTitleTranslate">{{stepInfo.stepTitle}}</div>\n <div class="subtitle" ng-if="MsStepper.isStepOptional(stepInfo.stepNumber)">Optional</div>\n </div>\n</md-button>\n\n<div class="ms-stepper-step-content" ng-transclude></div>\n\n<div class="ms-stepper-controls" layout="row" layout-align="start center" ng-show="MsStepper.isStepCurrent(stepInfo.stepNumber)">\n <md-button class="md-accent md-raised" ng-disabled="MsStepper.isFirstStep()" ng-click="MsStepper.gotoPreviousStep()">\n Back\n </md-button>\n\n <md-button class="md-accent md-raised" ng-if="!MsStepper.isLastStep()" ng-disabled="!MsStepper.isStepValid(MsStepper.currentStepNumber)" ng-click="MsStepper.gotoNextStep()">\n Next\n </md-button>\n\n <md-button type="submit" class="md-accent md-raised" ng-click="MsStepper.resetForm()" ng-if="MsStepper.isLastStep()" ng-disabled="!MsStepper.isFormValid()">\n Submit\n </md-button>\n</div>'),e.put("app/core/directives/ms-stepper/templates/vertical/vertical.html",'<div class="ms-stepper-vertical">\n <div class="ms-stepper-vertical-line"></div>\n <div class="ms-stepper-steps" ng-transclude></div>\n</div>'),e.put("app/core/directives/ms-tab-scroll/ms-tab-scroll.html",'<div layout="row">\n <md-button class="md-icon-button md-mini width-25 no-margin scroll-arrow" ng-click="vm.onTabScroll(\'left\')" ng-if="vm.canScroll(\'left\') == true">\n <md-icon md-font-icon="icon-chevron-left" class="icon s26"></md-icon>\n </md-button>\n <div id="bar-container" layout="row" class="bar-container">\n <div ng-transclude id="tab-container" layout="row" layout-align="start center" class="scroll-container">\n </div>\n </div>\n <md-button class="md-icon-button md-mini width-25 no-margin scroll-arrow" ng-click="vm.onTabScroll(\'right\')" ng-if="vm.canScroll(\'right\') == true">\n <md-icon md-font-icon="icon-chevron-right" class="icon s26"></md-icon>\n </md-button>\n</div>'),e.put("app/core/directives/ms-timezone/ms-timezone.html",'<md-select ng-model="ngModel" class="no-margin">\n <md-option ng-value="null">NONE</md-option>\n <md-option ng-repeat="t in timezone | orderBy:\'utcOffset\'" value="{{t.name}}">{{t.name}} ({{t.offsetStr}})</md-option>\n</md-select>'),e.put("app/core/directives/ms-widget-engine/ms-widget-engine-counter/ms-widget-engine.counter.html",'<div class="pt-8 pb-32" layout="column" layout-align="center center" layout-fill ng-controller="MsWidgetEngineCounterController as vm">\n <div ng-class="\'font-size-\' + (vm.fontSize * 3)" ng-style="{\'color\': widget.foreground}">\n {{ vm.getCount(widget) }}\n </div>\n <div ng-class="\'font-size-\' + vm.fontSize" ng-style="{\'color\': widget.foreground}">{{ \'TOOLS.\' + widget.attrs[0].value | uppercase | translate }}<span ng-if="vm.filtered">*</span></div>\n</div>'),e.put("app/core/directives/ms-widget-engine/ms-widget-engine-multibar-chart/ms-widget-engine.multibar-chart.html",'<div ng-controller="MsWidgetEngineMultibarChartController as vm" ng-init="vm.getMultiBarChart(widget)" layout="column" layout-fill>\n\n <span ng-show="false">{{ vm.getMultiBarChart(widget)}}</span>\n\n <canvas style="overflow:scroll" id="bar" class="chart-horizontal-bar" chart-data="vm.multiBarChart.data" chart-options="vm.multiBarChart.options" chart-series="vm.multiBarChart.series" chart-labels="vm.multiBarChart.labels">\n </canvas>\n</div>'),e.put("app/core/directives/ms-widget-engine/ms-widget-engine-pie-chart/ms-widget-engine.pie-chart.html",'<div ng-controller="MsWidgetEnginePieChartController as vm" ng-init="vm.getPieChart(widget)" layout="column" layout-fill>\n\n <span ng-show="false">{{ vm.getPieChart(widget)}}</span>\n\n <canvas style="overflow:scroll" id="pie" class="chart-pie" chart-data="vm.pieChart.data" chart-labels="vm.pieChart.labels" chart-options="vm.pieChart.options">\n </canvas>\n</div>'),e.put("app/core/directives/ms-widget-engine/ms-widget-engine-web-report/ms-widget-engine.web-report.html",'<div ng-controller="MsWidgetEngineWebReportController as vm" ng-init="vm.onInit(widget)">\n <dl ng-if="vm.error">\n <dt class="text-bold">Query Error</dt>\n <dd>{{vm.error.sql}}</dd>\n <dt>Message</dt>\n <dd>{{vm.error.msg}}</dd>\n </dl>\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm.title}}</span>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm.onInit(widget)" aria-label="refresh">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n <span ng-if="vm.refresh && vm.countDown" class="md-subhead blue-fg">{{vm.countDown}}</span>\n </div>\n </md-toolbar>\n <md-table-container ng-if="!vm.error">\n <table md-table md-progress="vm.promise">\n <thead md-head>\n <tr md-row>\n <th md-column ng-repeat="column in vm.columns">{{column.alias || column.field}}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-repeat="row in vm.results.rows">\n <td md-cell ng-repeat="(key, value) in row">{{ vm.valueReplacer(key, value) }}</td>\n </tr>\n <tr md-row ng-if="!vm.results.rows.length">\n <td md-cell colspan="{{vm.columns.length}}">\n <div layout="row" layout-align="center center">\n <span>No Data</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.results.count}}" md-on-paginate="vm.getResults" md-page-select></md-table-pagination>\n</div>'),e.put("app/core/directives/ms-widget-engine/ms-widget-engine.html",'<div gridster="vm.config">\n <ul>\n <li gridster-item="widget" ng-repeat="widget in vm.config.widgets">\n <md-card layout-fill>\n <md-toolbar class="height-40" ng-style="{\'background-color\': widget.background, \'color\': widget.foreground }">\n <div class="md-toolbar-tools height-40 no-margin" layout="row" layout-align="start center">\n <a ng-href="{{widget.link ? widget.link : \'javascript:void(0)\'}}" ng-style="{\'color\': widget.foreground, \'font-size\': (widget.titleFontSize || 12) }" class="text-truncate" flex>\n {{ widget.title || \'No Title\' }}\n </a>\n <md-button ng-if="!vm.config.preview" class="draggable md-icon-button width-30 no-margin no-padding" aria-label="Move">\n <md-tooltip><span translate="TOOLS.MOVE_WIDGET">Move</span></md-tooltip>\n <md-icon md-font-icon="icon-cursor-move" class="s20" ng-style="{\'color\': widget.foreground}"></md-icon>\n </md-button>\n <md-menu ng-if="!vm.config.preview">\n <md-button ng-click="$mdOpenMenu($event)" class="md-icon-button width-30 no-margin no-padding" aria-label="More">\n <md-icon md-font-icon="icon-dots-vertical" class="s20" ng-style="{\'color\': widget.foreground}"></md-icon>\n </md-button>\n <md-menu-content>\n <md-menu-item>\n <md-button ng-click="vm.onEdit({widget: widget})" translate="TOOLS.EDIT_WIDGET">Edit\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.onDelete({widget: widget})" translate="TOOLS.DELETE_WIDGET">\n Delete</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n\n </div>\n </md-toolbar>\n <md-card-content class="resizable" layout="column" layout-align="center center" flex ng-style="{\'background-color\': widget.background, \'color\': widget.foreground}">\n <div ng-switch="widget.type" layout-fill>\n <iframe ng-switch-when="iframe|custom" ng-switch-when-separator="|" ng-src="{{vm.getTrustedURL(widget.attrs[0].value)}}" frameborder=0 style="border:0px; width:100%; height:100%;"></iframe>\n <ds-widget-clock ng-class="\'font-size-\' + (widget.attrs[2].value || 12)" ng-switch-when="clock" digital-format="widget.attrs[0].value" gmt-offset="widget.attrs[1].value" data-show-digital show-gmt-info></ds-widget-clock>\n <div ng-switch-default layout-fill>\n <div ng-include="widget.templateUrl" layout-fill></div>\n </div>\n </div>\n </md-card-content>\n </md-card>\n </li>\n </ul>\n</div>'),e.put("app/core/layouts/content-only.html",'<div id="layout-content-only" class="template-layout" layout="column" flex>\n <md-content id="content" class="animate-slide-up md-hue-2" ui-view="content" flex></md-content>\n</div>'),e.put("app/core/layouts/content-with-toolbar.html",'<div id="layout-content-with-toolbar" class="template-layout" layout="column" flex>\n <md-toolbar id="toolbar" class="md-menu-toolbar md-whiteframe-1dp" ui-view="toolbar"></md-toolbar>\n <md-content id="content" class="animate-slide-up md-hue-2" ui-view="content" flex></md-content>\n\n <md-sidenav id="quick-panel" class="md-sidenav-right md-whiteframe-4dp" md-component-id="quick-panel" ms-scroll ui-view="quickPanel"></md-sidenav>\n</div>'),e.put("app/core/layouts/horizontal-navigation.html",'<div id="layout-horizontal-navigation" class="template-layout" layout="column" flex>\n\n <div id="toolbar-navigation-container" class="md-whiteframe-1dp" layout="column" layout-align="space-between start">\n <md-toolbar id="toolbar" class="md-menu-toolbar md-whiteframe-1dp" ui-view="toolbar"></md-toolbar>\n <div id="horizontal-navigation" ui-view="navigation" layout="row" layout-align="start end" flex></div>\n </div>\n\n <div id="content-container" flex layout="column">\n <md-content id="content" class="animate-slide-up md-hue-2" ms-scroll ui-view="content" flex></md-content>\n </div>\n\n <md-sidenav id="quick-panel" class="md-sidenav-right md-whiteframe-4dp" md-component-id="quick-panel" ms-scroll ui-view="quickPanel"></md-sidenav>\n\n</div>'),e.put("app/core/layouts/vertical-navigation-fullwidth-toolbar-2.html",'<div id="layout-vertical-navigation-fullwidth-toolbar-2" class="template-layout" layout="column" flex>\n\n <md-toolbar id="toolbar" class="md-menu-toolbar md-whiteframe-1dp md-accent" ui-view="toolbar"></md-toolbar>\n\n <div id="main-container" layout="row" flex>\n <md-sidenav id="vertical-navigation" class="md-primary-bg" md-is-locked-open="$mdMedia(\'gt-sm\')" md-component-id="navigation" ms-scroll ui-view="navigation"></md-sidenav>\n\n <div id="content-container" flex layout="column">\n <md-content id="content" class="animate-slide-up md-hue-2" ms-scroll ui-view="content" flex></md-content>\n </div>\n\n <md-sidenav id="quick-panel" class="md-sidenav-right md-whiteframe-4dp" md-component-id="quick-panel" ms-scroll ui-view="quickPanel"></md-sidenav>\n </div>\n\n\n</div>'),e.put("app/core/layouts/vertical-navigation-fullwidth-toolbar.html",'<div id="layout-vertical-navigation-fullwidth-toolbar" class="template-layout" layout="column" flex>\n\n <md-toolbar id="toolbar" class="md-menu-toolbar md-whiteframe-1dp md-accent" ui-view="toolbar"></md-toolbar>\n\n <div id="main-container" layout="row" flex>\n <md-sidenav id="vertical-navigation" class="md-primary-bg" md-is-locked-open="$mdMedia(\'gt-sm\')" md-component-id="navigation" ms-scroll ui-view="navigation"></md-sidenav>\n\n <div id="content-container" flex layout="column">\n <md-content id="content" class="animate-slide-up md-hue-2" ms-scroll ui-view="content" flex></md-content>\n </div>\n\n <md-sidenav id="quick-panel" class="md-sidenav-right md-whiteframe-4dp" md-component-id="quick-panel" ms-scroll ui-view="quickPanel"></md-sidenav>\n </div>\n\n\n</div>'),e.put("app/core/layouts/vertical-navigation.html",'<div id="header" ui-view="header"></div>\n\n<div id="layout-vertical-navigation" class="template-layout" layout="row" flex>\n\n <md-sidenav id="vertical-navigation" class="md-primary-bg" md-is-locked-open="$mdMedia(\'gt-sm\')" md-component-id="navigation" ms-scroll ui-view="navigation" ng-if="!vm.isAgent()"></md-sidenav>\n\n <div id="content-container" flex layout="column">\n <md-toolbar id="toolbar" class="md-menu-toolbar md-whiteframe-1dp" ui-view="toolbar"></md-toolbar>\n\n <md-content id="content" class="animate-slide-up md-hue-2" ms-scroll ui-view="content" flex></md-content>\n </div>\n\n <md-sidenav id="quick-panel" class="md-sidenav-right md-whiteframe-4dp" md-component-id="quick-panel" ms-scroll ui-view="quickPanel"></md-sidenav>\n\n</div>\n\n<div id="footer" ui-view="footer"></div>'),e.put("app/core/theme-options/theme-options.html",'<div class="ms-theme-options-button md-primary-bg" ng-click="toggleOptionsSidenav()">\n <md-icon md-font-icon="icon-cog" class="white-text"></md-icon>\n</div>\n\n<md-sidenav md-component-id="motion-theme-options" class="md-sidenav-right">\n\n <div class="ms-theme-options-list" layout="column">\n <div class="theme-option layout-options">\n <div class="option-title">Layout Style:</div>\n <md-radio-group layout="row" layout-align="start start" layout-wrap ng-model="vm.layoutStyle" ng-change="vm.updateLayoutStyle()">\n <md-radio-button ng-repeat="layoutStyle in vm.layoutStyles" ng-value="layoutStyle.value">\n <div layout="column" layout-align="center center">\n <img ng-src="{{layoutStyle.figure}}">\n <span class="text-center font-size-12 mt-8">{{layoutStyle.label}}</span>\n </div>\n </md-radio-button>\n </md-radio-group>\n </div>\n\n <md-divider></md-divider>\n\n <div class="theme-option">\n <div class="option-title">Layout Mode:</div>\n <md-radio-group layout="row" layout-align="start center" ng-model="vm.layoutMode" ng-change="vm.updateLayoutMode()">\n <md-radio-button ng-repeat="layoutMode in vm.layoutModes" ng-value="layoutMode.value">\n {{layoutMode.label}}\n </md-radio-button>\n </md-radio-group>\n </div>\n\n <md-divider></md-divider>\n\n <div class="theme-option color-palettes">\n <div class="option-title">Color Palette:</div>\n <div layout="row" layout-align="start start" layout-wrap>\n <md-button ng-repeat="(themeName, theme) in vm.themes.list" class="md-raised theme-button" layout="row" layout-align="center center" aria-label="{{themeName}}" ng-click="vm.setActiveTheme(themeName)" ng-style="{\'background-color\': theme.primary.color,\'border-color\': theme.accent.color,\'color\': theme.primary.contrast1}" ng-class="{active: vm.getActiveTheme().name === themeName}">\n <md-icon ng-style="{\'color\': theme.primary.contrast1}" md-font-icon="icon-palette" class="icon s32"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n</md-sidenav>'),e.put("app/errors/404/error-404.html",'<div id="error-404" layout="column" layout-align="center center">\n <div class="content" layout="column" layout-align="center center">\n <div class="error-code" translate="ERROR404.CODE">404</div>\n\n <div class="message" translate="ERROR404.MESSAGE">Sorry but we couldn’t find the page you are looking for</div>\n <ms-search-bar on-search="vm.search(query)" on-result-click="vm.searchResultClick(item)" debounce="300">Search for anything</ms-search-bar>\n\n \x3c!-- <div class="search md-whiteframe-1dp" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-magnify" class="icon s24"></md-icon>\n <input ng-model="vm.search" type="text" placeholder="Search for anything" translate translate-attr-placeholder="ERROR404.SEARCH" flex>\n </div> --\x3e\n\n <a class="md-button md-raised md-primary back-link" href="/" translate="ERROR404.GO_BACK">Go back to dashboard</a>\n </div>\n</div>'),e.put("app/errors/500/error-500.html",'<div id="error-500" layout="column" layout-align="center center">\n <div ng-if="!vm.send" class="content" layout="column" layout-align="center center">\n <div class="error-code" translate="ERROR500.CODE">500</div>\n <div class="message" translate="ERROR500.MESSAGE">Well, you broke the internet!</div>\n <div class="sub-message" translate="ERROR500.SUBMESSAGE">Just kidding, looks like we have an internal issue, please try again in couple minutes\n </div>\n <a class="md-button md-raised md-primary back-link" href="/" translate="ERROR500.GO_BACK">Go back to dashboard</a>\n <md-button class="md-raised md-warn" ng-click="vm.sendReport()" translate="ERROR500.REPORT">Report this problem</md-button>\n </div>\n <pre ng-if="!vm.send">\n {{vm.error}}\n </pre>\n <div ng-if="vm.send" class="content" layout="column" layout-align="center center">\n <div class="error-code">#{{vm.code}}</div>\n <div class="message" translate="ERROR500.JIRA_MESSAGE">Your request has been received and will be processed shortly.</div>\n <div class="sub-message" translate="ERROR500.JIRA_SUBMESSAGE">Sorry for the inconvenience. If you have any questions or concerns, please do not hesitate to contact us.</div>\n <a class="md-button md-raised md-primary back-link" href="/" translate="ERROR500.GO_BACK">Go back to dashboard</a>\n </div>\n</div>'),e.put("app/footer/layouts/vertical-navigation/footer.html",'<div layout="row" layout-align="start center">\n <ms-info-bar ng-if="!vm.cookieAlertHide" on-close="vm.cookieAlertOnClose()" class="grey-100-bg">\n <div layout="row" layout-align="start center">\n <span translate="FOOTER.COOKIE_LAW" flex class="text-center grey-600-fg"></span>\n </div>\n </ms-info-bar>\n</div>'),e.put("app/forgot/forgot.html",'<div id="forgot-password" class="flex-scrollable" layout="column" ms-scroll ng-init="vm.onInit()">\n <div id="forgot-password-form-wrapper" layout="column" layout-align="center center">\n <div id="forgot-password-form" class="md-whiteframe-8dp">\n\n <img src="/api/settings/1/logo_login" alt="logo_login" class="logo_login" />\n\n <div class="title" translate="FORGOTPASSWORD.TITLE">Recover your password</div>\n\n <form name="forgotPasswordForm" novalidate>\n <md-input-container class="md-block" md-no-float>\n <input type="email" name="email" ng-model="vm.form.email" placeholder="Email address" translate translate-attr-placeholder="FORGOTPASSWORD.EMAIL_ADRESS" ng-pattern="/^.+@.+\\..+$/" required>\n <div ng-messages="forgotPasswordForm.email.$error" role="alert" multiple>\n <div ng-message="required">\n <span translate="FORGOTPASSWORD.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="FORGOTPASSWORD.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n\n <md-button type="button" ng-click="vm.forgotPassword()" class="md-raised md-accent submit-button" aria-label="RESET MY PASSWORD" ng-disabled="forgotPasswordForm.$invalid || forgotPasswordForm.$pristine" translate="FORGOTPASSWORD.SEND_RESET_LINK" translate-attr-aria-label="FORGOTPASSWORD.SEND_RESET_LINK">\n SEND RESET LINK\n </md-button>\n </form>\n\n <div class="login" layout="row" layout-align="center center">\n <a class="link" ui-sref="app.login" translate="FORGOTPASSWORD.GO_BACK">Go back to login</a>\n </div>\n </div>\n </div>\n</div>'),e.put("app/header/layouts/vertical-navigation/header.html",'\x3c!-- <div layout="row" layout-align="start center">\n <ms-info-bar ng-if="vm.currentUser.role == \'admin\' && !vm.newsAlertHide" on-close="vm.newsAlertOnClose()" class="green-600-bg white-fg">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-message-text-outline" class="icon margin-right-10 s20"></md-icon>\n <div flex hide-xs translate="HEADER.NEWS"></div>\n </div>\n </ms-info-bar>\n</div> --\x3e'),e.put("app/login/login.html",'<div id="login" class="flex-scrollable" layout="column" ms-scroll>\n <div id="login-form-wrapper" layout="column" layout-align="center center">\n <div id="login-form" class="md-whiteframe-8dp">\n\n <img src="/api/settings/1/logo_login" alt="logo_login" class="logo_login" />\n \x3c!-- <img src="assets/images/logos/login.png" alt="motion_logo_login" /> --\x3e\n\n <div class="md-subhead padding-top-45" translate="LOGIN.TITLE">Log in to your account</div>\n\n <form name="loginForm" novalidate ng-if="!vm.progressLogin">\n <md-input-container class="md-block" md-no-float>\n <input type="input" name="name" ng-model="vm.form.name" autofocus aria-label="username" translate translate-attr-placeholder="LOGIN.USERNAME" required>\n <div ng-messages="loginForm.name.$error" role="alert" multiple>\n <div ng-message="required">\n <span translate="LOGIN.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" md-no-float>\n <input type="password" name="password" ng-model="vm.form.password" aria-label="password" translate translate-attr-placeholder="LOGIN.PASSWORD" required>\n <div ng-messages="loginForm.password.$error" role="alert" multiple>\n <div ng-message="required">\n <span translate="LOGIN.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="remember-forgot-password" layout="row" layout-xs="column" layout-align="end center">\n \x3c!-- <md-checkbox class="remember-me" ng-model="data.cb1" aria-label="Remember Me">\n <span translate="LOGIN.REMEMBER_ME">Remember Me</span>\n </md-checkbox> --\x3e\n <a ui-sref="app.forgot" class="forgot-password md-accent-color" style="cursor:pointer;" translate="LOGIN.FORGOT_PASSWORD">Forgot Password?</a>\n </div>\n\n <b layout="row" layout-align="center center" class="md-padding" ng-if="vm.message">\n <font color="red">{{vm.message}}</font>\n </b>\n <md-button type="submit" ng-click="vm.login()" class="md-raised md-accent submit-button" aria-label="LOGIN" translate="LOGIN.LOG_IN" translate-attr-aria-label="LOGIN.LOG_IN">\n LOG IN\n </md-button>\n </form>\n\n <md-progress-circular ng-if="vm.progressLogin" md-diameter="96"></md-progress-circular>\n\n <div ng-if="vm.googleSsoEnabled" class="separator">\n <span class="text" translate="LOGIN.OR">OR</span>\n </div>\n\n <md-button ng-if="vm.googleSsoEnabled" ng-click="vm.loginOauth(\'google\')" class="md-raised google">\n <div layout="row" layout-align="center center">\n <span>\n <md-icon md-font-icon="fab fa-google" class="s16"></md-icon>\n <span translate="LOGIN.WITH_GOOGLE">Log in with Google</span>\n </span>\n </div>\n </md-button>\n </div>\n </div>\n</div>'),e.put("app/main/apps/analytics/views/extractedReports/create/dialog.html",'<md-dialog class="extractedReport-dialog" aria-label="New ExtractedReport">\n <form name="extractedReportForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.REPORTNAME">ReportName</label>\n <input type="" name="name" ng-model="vm.extractedReport.name" ng-required="true" autofocus>\n\n <div ng-messages="extractedReportForm[\'name\'].$error" ng-show="extractedReportForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.REPORTNAME_REQUIRED">ReportName field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.NAME">Name</label>\n <input type="" name="basename" ng-model="vm.extractedReport.basename" ng-required="true">\n\n <div ng-messages="extractedReportForm[\'basename\'].$error" ng-show="extractedReportForm[\'basename\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newExtractedReport" ng-click="vm.saveExtractedReport()" class="send-button md-accent md-raised" ng-disabled="extractedReportForm.$invalid || extractedReportForm.$pristine" aria-label="SAVE" translate="ANALYTICS.SAVE" translate-attr-aria-label="ANALYTICS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newExtractedReport" ng-click="vm.addNewExtractedReport()" class="send-button md-accent md-raised" ng-disabled="extractedReportForm.$invalid" aria-label="ADD" translate="ANALYTICS.ADD_EXTRACTEDREPORT" translate-attr-aria-label="ANALYTICS.ADD_EXTRACTEDREPORT">\n ADD EXTRACTEDREPORT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newExtractedReport" ng-click="vm.deleteExtractedReport($event)" aria-label="DELETE" translate translate-attr-aria-label="ANALYTICS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="ANALYTICS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/analytics/views/extractedReports/extractedReports.html",'<div id="extractedReports" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-chart-line" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="ANALYTICS.EXTRACTEDREPORTS">ExtractedReports</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="ANALYTICS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedExtractedReports.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedExtractedReports =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="ANALYTICS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-extractedReports-count">\n <span>{{vm.selectedExtractedReports.length}}</span>\n <span translate="ANALYTICS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="ANALYTICS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllExtractedReports()" translate="ANALYTICS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectExtractedReports()" translate="ANALYTICS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedExtractedReports" csv-label="true" filename="extractedReports.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedExtractedReports($event)" aria-label="delete selected" translate translate-attr-label="ANALYTICS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- EXTRACTEDREPORT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedExtractedReports" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getExtractedReports">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'ANALYTICS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'ANALYTICS.REPORTNAME\' | translate }}</th>\n <th md-column md-order-by="basename">{{ \'ANALYTICS.NAME\' | translate }}</th>\n <th md-column md-order-by="type">{{ \'ANALYTICS.TYPE\' | translate }}</th>\n <th md-column md-order-by="startDate">{{ \'ANALYTICS.DATE_RANGE_FROM\' | translate }}</th>\n <th md-column md-order-by="endDate">{{ \'ANALYTICS.DATE_RANGE_TO\' | translate }}</th>\n <th md-column md-order-by="createdAt">{{ \'ANALYTICS.GENERATED_AT\' | translate }}</th>\n <th md-column md-order-by="status">{{ \'ANALYTICS.STATUS\' | translate }}</th>\n <th md-column md-order-by="output">{{ \'ANALYTICS.OUTPUT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.extractedReports.rows.length">\n <td md-cell colspan="10">\n <div layout="row" layout-align="center center">\n <span translate="ANALYTICS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="extractedReport" md-select-id="id" ng-repeat="extractedReport in vm.extractedReports.rows">\n <td md-cell ng-if="extractedReport.userpic"><img class="avatar" alt="{{extractedReport.name}}" ng-src="api/users/{{extractedReport.id}}/avatar" /></td>\n <td md-cell ng-if="!extractedReport.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{extractedReport.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditExtractedReport($event, extractedReport)" md-cell class="id ">{{extractedReport.id}}</td>\n <td ng-click="vm.createOrEditExtractedReport($event, extractedReport)" md-cell class="name ">{{extractedReport.name}}</td>\n <td ng-click="vm.createOrEditExtractedReport($event, extractedReport)" md-cell class="basename ">{{extractedReport.basename}}</td>\n <td ng-click="vm.createOrEditExtractedReport($event, extractedReport)" md-cell class="type ">{{extractedReport.type}}</td>\n <td ng-click="vm.createOrEditExtractedReport($event, extractedReport)" md-cell class="startDate ">{{extractedReport.startDate | date:\'medium\' }}</td>\n <td ng-click="vm.createOrEditExtractedReport($event, extractedReport)" md-cell class="endDate ">{{extractedReport.endDate | date:\'medium\' }}</td>\n <td ng-click="vm.createOrEditExtractedReport($event, extractedReport)" md-cell class="createdAt ">{{extractedReport.createdAt | date:\'medium\' }}</td>\n <td ng-click="vm.createOrEditExtractedReport($event, extractedReport)" md-cell class="status ">{{extractedReport.status}}</td>\n <td ng-click="vm.createOrEditExtractedReport($event, extractedReport)" md-cell class="output ">{{extractedReport.output}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="ANALYTICS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(extractedReport, $event )" translate="ANALYTICS.EDIT_EXTRACTEDREPORT">\n Edit ExtractedReport\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="extractedReport.status == \'Completed\'">\n\n <md-button ng-click="vm.downloadfile2(extractedReport, $event , \'analytics/extracted_reports\' )" translate="ANALYTICS.DOWNLOAD_EXTRACTEDREPORT">\n Download ExtractedReport\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(extractedReport, $event )" translate="ANALYTICS.DELETE_EXTRACTEDREPORT">\n Delete ExtractedReport\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'ANALYTICS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'ANALYTICS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'ANALYTICS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.extractedReports.count}}" md-on-paginate="vm.getExtractedReports" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / EXTRACTEDREPORT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- NO ADD BUTTON BUTTON --\x3e\n</div>'),e.put("app/main/apps/analytics/views/metrics/create/dialog.html",'<md-dialog class="metric-dialog" aria-label="New Metric">\n <form name="metricForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.metric.name" ng-required="true" autofocus>\n\n <div ng-messages="metricForm[\'name\'].$error" ng-show="metricForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.TABLE">Table</label>\n <md-select name="table" ng-model="vm.metric.table" required>\n <md-option ng-value="\'report_agent\'">Agent Report</md-option>\n <md-option ng-value="\'report_call\'">Call Report</md-option>\n <md-option ng-value="\'cdr\'">CDR</md-option>\n <md-option ng-value="\'chat_websites\'">Chat Website</md-option>\n <md-option ng-value="\'chat_interactions\'">Chat Interaction</md-option>\n <md-option ng-value="\'chat_messages\'">Chat Messages</md-option>\n <md-option ng-value="\'chat_offline_messages\'">Chat Offline Messages</md-option>\n <md-option ng-value="\'chat_queues\'">Chat Queues</md-option>\n <md-option ng-value="\'report_chat_queue\'">Chat Report Queue</md-option>\n <md-option ng-value="\'report_chat_transfer\'">Chat Report Transfer</md-option>\n <md-option ng-value="\'cm_companies\'">Companies</md-option>\n <md-option ng-value="\'report_call_transfer\'">Call transfer report</md-option>\n <md-option ng-value="\'cm_contacts\'">Contacts</md-option>\n <md-option ng-value="\'report_square\'">CSquare Report</md-option>\n <md-option ng-value="\'report_square_details\'">CSquare Details Report</md-option>\n <md-option ng-value="\'report_dial\'">Dial Report</md-option>\n <md-option ng-value="\'cm_hopper\'">Dialer Hopper Processing</md-option>\n <md-option ng-value="\'cm_hopper_history\'">Dialer Hopper Logs</md-option>\n <md-option ng-value="\'cm_hopper_final\'">Dialer Hopper Final</md-option>\n <md-option ng-value="\'mail_accounts\'">Email Account</md-option>\n <md-option ng-value="\'mail_interactions\'">Email Interaction</md-option>\n <md-option ng-value="\'mail_messages\'">Email Messages</md-option>\n <md-option ng-value="\'mail_queues\'">Email Queues</md-option>\n <md-option ng-value="\'report_mail_queue\'">Email Report Queue</md-option>\n <md-option ng-value="\'report_mail_transfer\'">Email Report Transfer</md-option>\n <md-option ng-value="\'fax_accounts\'">Fax Account</md-option>\n <md-option ng-value="\'fax_interactions\'">Fax Interaction</md-option>\n <md-option ng-value="\'fax_messages\'">Fax Messages</md-option>\n <md-option ng-value="\'fax_queues\'">Fax Queues</md-option>\n <md-option ng-value="\'report_fax_queue\'">Fax Report Queue</md-option>\n <md-option ng-value="\'report_fax_transfer\'">Fax Report Transfer</md-option>\n <md-option ng-value="\'report_jscripty_sessions\'">Jscripty Sessions</md-option>\n <md-option ng-value="\'report_jscripty_questions\'">Jscripty Questions</md-option>\n <md-option ng-value="\'report_jscripty_answers\'">Jscripty Answers</md-option>\n <md-option ng-value="\'cm_lists\'">Lists</md-option>\n <md-option ng-value="\'report_member\'">Member Report</md-option>\n <md-option ng-value="\'openchannel_accounts\'">Openchannel Account</md-option>\n <md-option ng-value="\'openchannel_interactions\'">Openchannel Interaction</md-option>\n <md-option ng-value="\'openchannel_messages\'">Openchannel Messages</md-option>\n <md-option ng-value="\'openchannel_queues\'">Openchannel Queues</md-option>\n <md-option ng-value="\'report_openchannel_queue\'">Openchannel Report Queue</md-option>\n <md-option ng-value="\'report_openchannel_transfer\'">Openchannel Report Transfer</md-option>\n <md-option ng-value="\'report_queue\'">Queue Report</md-option>\n <md-option ng-value="\'sms_accounts\'">SMS Account</md-option>\n <md-option ng-value="\'sms_interactions\'">SMS Interaction</md-option>\n <md-option ng-value="\'sms_messages\'">SMS Messages</md-option>\n <md-option ng-value="\'sms_queues\'">SMS Queues</md-option>\n <md-option ng-value="\'report_sms_queue\'">SMS Report Queue</md-option>\n <md-option ng-value="\'report_sms_transfer\'">SMS Report Transfer</md-option>\n <md-option ng-value="\'users\'">Users</md-option>\n <md-option ng-value="\'voice_recordings\'">Voice Recordings</md-option>\n <md-option ng-value="\'whatsapp_accounts\'">Whatsapp Account</md-option>\n <md-option ng-value="\'whatsapp_interactions\'">Whatsapp Interaction</md-option>\n <md-option ng-value="\'whatsapp_messages\'">Whatsapp Messages</md-option>\n <md-option ng-value="\'whatsapp_queues\'">Whatsapp Queues</md-option>\n <md-option ng-value="\'report_whatsapp_queue\'">Whatsapp Report Queue</md-option>\n <md-option ng-value="\'report_whatsapp_transfer\'">Whatsapp Report Transfer</md-option>\n </md-select>\n <div ng-messages="metricForm[\'table\'].$error" ng-show="metricForm[\'table\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.TABLE_REQUIRED">Table field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.METRIC">Metric</label>\n <input type="text" name="metric" ng-model="vm.metric.metric" ng-required="true">\n\n <div ng-messages="metricForm[\'metric\'].$error" ng-show="metricForm[\'metric\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.METRIC_REQUIRED">Metric field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.metric.description">\n\n <div ng-messages="metricForm[\'description\'].$error" ng-show="metricForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newMetric" ng-click="vm.saveMetric()" class="send-button md-accent md-raised" ng-disabled="metricForm.$invalid || metricForm.$pristine" aria-label="SAVE" translate="ANALYTICS.SAVE" translate-attr-aria-label="ANALYTICS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newMetric" ng-click="vm.addNewMetric()" class="send-button md-accent md-raised" ng-disabled="metricForm.$invalid" aria-label="ADD" translate="ANALYTICS.ADD_METRIC" translate-attr-aria-label="ANALYTICS.ADD_METRIC">\n ADD METRIC\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newMetric" ng-click="vm.deleteMetric($event)" aria-label="DELETE" translate translate-attr-aria-label="ANALYTICS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="ANALYTICS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/analytics/views/metrics/metrics.html",'<div id="metrics" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-chart-line" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="ANALYTICS.METRICS">Metrics</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="ANALYTICS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedMetrics.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedMetrics =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="ANALYTICS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-metrics-count">\n <span>{{vm.selectedMetrics.length}}</span>\n <span translate="ANALYTICS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="ANALYTICS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllMetrics()" translate="ANALYTICS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectMetrics()" translate="ANALYTICS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedMetrics" csv-label="true" filename="metrics.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedMetrics($event)" aria-label="delete selected" translate translate-attr-label="ANALYTICS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- METRIC TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedMetrics" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getMetrics">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'ANALYTICS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'ANALYTICS.NAME\' | translate }}</th>\n <th md-column md-order-by="table">{{ \'ANALYTICS.TABLE\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'ANALYTICS.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.metrics.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="ANALYTICS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="metric" md-select-id="id" ng-repeat="metric in vm.metrics.rows">\n <td md-cell ng-if="metric.userpic"><img class="avatar" alt="{{metric.name}}" ng-src="api/users/{{metric.id}}/avatar" /></td>\n <td md-cell ng-if="!metric.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{metric.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditMetric($event, metric)" md-cell class="id ">{{metric.id}}</td>\n <td ng-click="vm.createOrEditMetric($event, metric)" md-cell class="name ">{{metric.name}}</td>\n <td ng-click="vm.createOrEditMetric($event, metric)" md-cell class="table ">{{ vm.arraytable[metric.table].option }}</td>\n <td ng-click="vm.createOrEditMetric($event, metric)" md-cell class="description ">{{metric.description}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="ANALYTICS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(metric, $event )" translate="ANALYTICS.EDIT_METRIC">\n Edit Metric\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(metric, $event )" translate="ANALYTICS.DELETE_METRIC">\n Delete Metric\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'ANALYTICS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'ANALYTICS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'ANALYTICS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.metrics.count}}" md-on-paginate="vm.getMetrics" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / METRIC TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD METRIC BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-metric-button" ng-click="vm.createOrEditMetric($event)" aria-label="add metric" translate translate-attr-aria-label="ANALYTICS.ADD_METRIC">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD METRIC BUTTON --\x3e\n</div>'),e.put("app/main/apps/analytics/views/reports/copy/dialog.html",'<md-dialog class="report-dialog" aria-label="Run Report">\n <form name="reportForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title" translate="ANALYTICS.COPY_REPORT">Copy Report</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.NAME">Name</label>\n <input name="name" ng-model="vm.report.name" required md-autofocus>\n <div ng-messages="reportForm.name.$error" ng-show="reportForm.name.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <div class="md-block">\n <label translate="ANALYTICS.SELECT_NODE">Select Node</label>\n <div js-tree="vm.treeCustomConfig" tree-events-obj="vm.treeCustomEvents" ng-model="vm.treeCustomData" tree="vm.treeCustomInstance"></div>\n </div>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.copyReport()" class="send-button md-accent md-raised" ng-disabled="!vm.currentNode" aria-label="COPY" translate="ANALYTICS.COPY_REPORT" translate-attr-aria-label="ANALYTICS.COPY_REPORT">\n COPY REPORT\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/analytics/views/reports/create/dialog.html",'<md-dialog class="report-dialog" aria-label="New Report">\n <form name="reportForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.NAME">Name</label>\n <input type="" name="name" ng-model="vm.report.name" required md-autofocus>\n <div ng-messages="reportForm.name.$error" ng-show="reportForm.name.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.newReport">\n <label translate="ANALYTICS.TABLE">Table</label>\n <md-select ng-model="vm.report.table" required>\n <md-option ng-repeat="table in vm.tables | orderBy:\'name\'" ng-value="table.name">{{table.name}}</md-option>\n </md-select>\n <div ng-messages="reportForm.table.$error" ng-show="reportForm.table.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.TABLE_REQUIRED">Table field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.report.description">\n <div ng-messages="reportForm.description.$error" ng-show="reportForm.description.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-autocomplete ng-if="vm.newReport" md-selected-item="vm.selectedItem" md-search-text="vm.searchText" md-items="table in vm.tables | filter:vm.searchText" md-item-text="table.name" md-min-length="0" md-selected-item-change="vm.selectedTableChange(table)" placeholder="Select the table to Join">\n <md-item-template>\n <span md-highlight-text="vm.searchText" md-highlight-flags="^i">{{table.name}}</span>\n </md-item-template>\n <md-not-found>\n No states matching "{{vm.searchText}}" were found.\n </md-not-found>\n </md-autocomplete>\n\n <md-card ng-if="vm.newReport" md-theme="default" md-theme-watch ng-repeat="table in vm.joinTables">\n <md-card-title>\n <md-card-title-text layout="row">\n <div layout="row" flex="50">\n <span class="md-subhead">{{table.name}}</span>\n </div>\n <div layout="row" layout-align="end center" flex>\n <md-button class="md-icon-button" ng-click="vm.removeJoin($index)">\n <md-icon md-font-icon="icon-delete" aria-label="alert error"></md-icon>\n </md-button>\n </div>\n </md-card-title-text>\n </md-card-title>\n <md-card-content>\n <md-select ng-model="table.parentKey" placeholder="Select the parent key" ng-init="table.parentFields = []; vm.getFields(table, \'parentFields\', vm.report.table)" required>\n <md-option ng-repeat="field in table.parentFields" ng-value="field">{{field}}</md-option>\n </md-select>\n <md-select ng-model="table.foreignKey" placeholder="Select the foreign key" ng-init="table.foreignFields = []; vm.getFields(table, \'foreignFields\', table.name)" required>\n <md-option ng-repeat="field in table.foreignFields" ng-value="field">{{field}}</md-option>\n </md-select>\n <md-select ng-model="table.type" placeholder="Select join type" required>\n <md-option ng-repeat="join in vm.joinTypes" ng-value="join.key">{{join.value}}</md-option>\n </md-select>\n </md-card-content>\n </md-card>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-if="!vm.newReport" ng-click="vm.saveReport()" class="send-button md-accent md-raised" ng-disabled="reportForm.$invalid || reportForm.$pristine" aria-label="SAVE" translate="ANALYTICS.SAVE" translate-attr-aria-label="ANALYTICS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.newReport" ng-click="vm.addNewReport()" class="send-button md-accent md-raised" ng-disabled="reportForm.$invalid || reportForm.$pristine" aria-label="ADD" translate="ANALYTICS.ADD_REPORT" translate-attr-aria-label="ANALYTICS.ADD_REPORT">\n ADD REPORT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newReport" ng-click="vm.deleteReport($event)" aria-label="DELETE" translate translate-attr-aria-label="ANALYTICS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="ANALYTICS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/analytics/views/reports/edit/condition/group.html",'<md-card class="padding-horizontal-15 padding-top-15">\n <div layout="row" ng-if="vm_rc.crudPermissions.canEdit">\n <md-input-container class="md-block" flex>\n <label translate="ANALYTICS.OPERATOR">Operator</label>\n <md-select ng-model="group.operator" required>\n <md-option value="AND">AND</md-option>\n <md-option value="OR">OR</md-option>\n </md-select>\n <div ng-messages="conditionsForm.operator.$error" ng-show="conditionsForm.operator.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.OPERATOR_REQUIRED">Operator field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-button class="md-raised md-accent" ng-click="vm_rc.addCondition(group.rules)">\n <md-icon md-font-icon="icon-plus"></md-icon> {{\'ANALYTICS.CONDITION\' | translate}}\n </md-button>\n </md-input-container>\n <md-input-container class="md-block">\n <md-button class="md-raised md-accent" ng-click="vm_rc.addGroup(group.rules)">\n <md-icon md-font-icon="icon-plus"></md-icon> {{\'ANALYTICS.GROUP\' | translate}}\n </md-button>\n </md-input-container>\n <div flex></div>\n <md-input-container class="md-block" ng-if="parent">\n <md-button class="md-raised md-warn" ng-click="vm_rc.deleteConfirm(parent, index, $event)">\n <md-icon md-font-icon="icon-delete"></md-icon> {{\'ANALYTICS.GROUP\' | translate}}\n </md-button>\n </md-input-container>\n </div>\n <div layout="column" ng-repeat="rule in group.rules track by $index">\n <div layout="row" ng-if="!rule.group">\n <md-input-container class="md-block" flex>\n <label translate="ANALYTICS.COLUMN">COLUMN</label>\n <md-select name="field" ng-model="rule.field" ng-disabled="!vm_rc.crudPermissions.canEdit" required>\n <md-optgroup label="{{vm_rc.report.table}}">\n <md-option ng-repeat="column in vm_rc.columns" value="{{vm_rc.report.table}}.{{column}}">{{column}}</md-option>\n </md-optgroup>\n <md-optgroup ng-if="vm_rc.report.joins" ng-repeat="join in vm_rc.report.joins" label="{{join.foreignTable}}">\n <md-option ng-repeat="field in join.foreignTableFields" value="{{join.foreignTable}}.{{field}}">{{field}}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="conditionsForm.field.$error" ng-show="conditionsForm.field.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.COLUMN_REQUIRED">Column field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" flex>\n <label translate="ANALYTICS.CONDITION">CONDITION</label>\n <md-select name="condition" ng-model="rule.condition" ng-disabled="!vm_rc.crudPermissions.canEdit" required>\n <md-option ng-repeat="condition in vm_rc.conditions" ng-value="condition">{{condition}}</md-option>\n </md-select>\n <div ng-messages="conditionsForm.condition.$error" ng-show="conditionsForm.condition.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.CONDITION_REQUIRED">Condition field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm_rc.isValueByCondition(rule.condition)" class="md-block" flex>\n <label translate="ANALYTICS.VALUE">VALUE</label>\n <input type="text" name="value" ng-model="rule.value" ng-disabled="!vm_rc.crudPermissions.canEdit" required md-autofocus>\n <div ng-messages="conditionsForm.value.$error" ng-show="conditionsForm.value.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm_rc.crudPermissions.canEdit" flex>\n <md-button class="md-fab md-mini md-warn" aria-label="Delete row" ng-click="vm_rc.deleteConfirm(group.rules, $index, $event)">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </md-input-container>\n </div>\n <div ng-if="rule.group" ng-include="\'app/main/apps/analytics/views/reports/edit/condition/group.html\'" ng-init="parent=group.rules;index=$index;group=rule.group"></div>\n </div>\n</md-card>'),e.put("app/main/apps/analytics/views/reports/edit/field/dialog.html",'<md-dialog class="reportField-dialog" aria-label="New Report Field">\n <form name="reportFieldForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{vm.title}}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <pre></pre>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.reportField.type" ng-change="vm.reportField.field = undefined" required>\n <md-option value="column">Select a column</md-option>\n <md-option value="metric">Select an existing metric</md-option>\n <md-option value="custom">Write a custom metric</md-option>\n </md-select>\n <div ng-messages="reportForm.type.$error" ng-show="reportForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-switch on="vm.reportField.type">\n <md-input-container class="md-block" ng-switch-when="column">\n <label translate="ANALYTICS.COLUMN">Column Name</label>\n <md-select name="column" ng-model="vm.reportField.field" required>\n <md-optgroup label="{{vm.report.table}}">\n <md-option ng-repeat="column in vm.columns" value="{{vm.report.table}}.{{column}}">{{column}}</md-option>\n \x3c!-- <md-option ng-repeat="column in vm.columns" ng-value="">{{column}}</md-option> --\x3e\n </md-optgroup>\n <md-optgroup ng-if="vm.report.joins" ng-repeat="join in vm.report.joins" label="{{join.foreignTable}}">\n <md-option ng-repeat="field in join.foreignTableFields" value="{{join.foreignTable}}.{{field}}">{{field}}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="reportForm.column.$error" ng-show="reportForm.column.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.COLUMN_REQUIRED">Column field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-switch-when="metric">\n <label translate="ANALYTICS.METRIC_NAME">Metric Name</label>\n <md-select name="metric" ng-model="vm.reportField.MetricId" required>\n <md-option ng-repeat="metric in vm.metrics" ng-value="metric.id">{{metric.name}}</md-option>\n </md-select>\n <div ng-messages="reportForm.metric.$error" ng-show="reportForm.metric.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.METRIC_REQUIRED">Metric field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-switch-when="custom">\n <label translate="ANALYTICS.CUSTOM_METRIC">Custom Metric</label>\n <input type="text" name="field" ng-model="vm.reportField.field" required md-autofocus>\n <div ng-messages="reportFieldForm.field.$error" ng-show="reportFieldForm.field.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.CUSTOM_METRIC_REQUIRED">Custom Metric field is required</span>\n </div>\n </div>\n </md-input-container>\n </div>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.reportField.alias" ng-required="vm.reportField.type === \'custom\' || vm.reportField.type === \'metric\'">\n <div ng-messages="reportFieldForm.alias.$error" ng-show="reportFieldForm.alias.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.ALIAS_REQUIRED">Alias field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.reportField.type !== \'metric\'">\n <label translate="ANALYTICS.FUNCTION">Function</label>\n <md-select name="function" ng-model="vm.reportField.function">\n <md-option ng-value="null">No Function</md-option>\n <md-option ng-repeat="function in vm.sqlUtil.getFunctions" ng-value="function.value">{{function.value}}</md-option>\n </md-select>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.reportField.type !== \'metric\'">\n <label translate="ANALYTICS.FORMAT">Format</label>\n <md-select name="format" ng-model="vm.reportField.format">\n <md-option ng-value="null">No Format</md-option>\n <md-option ng-repeat="format in vm.sqlUtil.getFormats" ng-value="format.value">{{format.value}}</md-option>\n </md-select>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.GROUP_BY">Group By</label>\n <md-select name="groupBy" ng-model="vm.reportField.groupBy">\n <md-option ng-repeat="gb in vm.sqlUtil.getGroupBy" ng-value="gb.value">{{gb.value ? \'Yes\' : \'No\'}}</md-option>\n </md-select>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.ORDER_BY">Order By</label>\n <md-select name="orderBy" ng-model="vm.reportField.orderBy">\n <md-option ng-value="null">No Order</md-option>\n <md-option ng-repeat="ob in vm.sqlUtil.getOrderBy" ng-value="ob.value">{{ob.value}}</md-option>\n </md-select>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-if="!vm.newReportField" ng-click="vm.saveReportField()" class="send-button md-accent md-raised" ng-disabled="reportFieldForm.$invalid || reportFieldForm.$pristine" aria-label="SAVE" translate="ANALYTICS.SAVE" translate-attr-aria-label="ANALYTICS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.newReportField" ng-click="vm.addNewReportField()" class="send-button md-accent md-raised" ng-disabled="reportFieldForm.$invalid || reportFieldForm.$pristine" aria-label="ADD" translate="ANALYTICS.ADD_REPORTFIELD" translate-attr-aria-label="ANALYTICS.ADD_REPORTFIELD">\n ADD REPORT FIELD\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newReportField" ng-click="vm.deleteReportField($event)" aria-label="DELETE" translate translate-attr-aria-label="ANALYTICS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="ANALYTICS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/analytics/views/reports/edit/view.html",'<div id="analytics-report" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-reports-button md-icon-button" aria-label="Go to reports" ng-click="vm.gotoReports()" translate translate-attr-aria-label="ANALYTICS.GO_TO_ANALYTICSQUEUES">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="report-image" hide-xs>\n <img ng-src="assets/images/business/reports.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.report.id}} {{vm.report.name}}\n </div>\n <div class="subtitle secondary-text">\n <span translate="ANALYTICS.CREATED_AT"></span> <span>{{vm.report.createdAt | date:\'medium\'}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span>{{vm.report.description}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div>\n <md-button type="submit" ng-click="vm.saveReport()" ng-disabled="generalForm.$pristine && conditionsForm.$pristine" class="send-button md-accent md-raised" translate="ANALYTICS.SAVE" translate-attr-aria-label="ANALYTICS.SAVE">\n SAVE\n </md-button>\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="ANALYTICS.SETTINGS">SETTINGS</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="report-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="ANALYTICS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.NAME">Name</label>\n <input type="text" name="name" ng-disabled="!vm.crudPermissions.canEdit" ng-model="vm.report.name" required md-autofocus>\n <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-disabled="!vm.crudPermissions.canEdit" ng-model="vm.report.description">\n <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="ANALYTICS.FIELDS">FIELDS</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="report-detail-form-container fields md-background-bg md-whiteframe-1dp">\n <div ng-controller="ReportFieldsController as vm_rf" ng-init="vm_rf.init(vm.report, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_rf.selectedReportFields.length">\n <div class="md-toolbar-tools">\n <div layout="row" layout-align="start center">\n <div layout="column" layout-align="start start">\n <div class="md-subhead" translate="ANALYTICS.FIELDS">\n <span translate="ANALYTICS.FIELDS">FIELDS</span>\n </div>\n <div class="h4">\n <span translate="ANALYTICS.TABLE">TABLE</span> <span class="text-bold">{{vm.report.table}}</span>\n </div>\n <div class="h4" ng-if="vm.report.joins && vm.report.joins.length && vm.isArray(vm.report.joins)">\n <span>Join</span> <span class="text-bold">{{ vm.mapArray(vm.report.joins, \'foreignTable\') }}</span>\n </div>\n </div>\n </div>\n <div flex></div>\n <ms-search-bar on-search="vm_rf.query.filter = query" on-collapse="vm_rf.query.filter = undefined" debounce="300"></ms-search-bar>\n <md-button class="md-icon-button" ng-if="vm_rf.crudPermissions.canEdit" ng-click="vm_rf.createOrEditReportField($event)" aria-label="add field" translate translate-attr-label="ANALYTICS.ADD_FIELD">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_rf.selectedReportFields.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_rf.selectedReportFields.length}} {{vm_rf.selectedReportFields.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm_rf.deleteSelectedReportFields($event)" aria-label="delete selected" translate translate-attr-label="ANALYTICS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select="vm_rf.crudPermissions.canDelete" multiple ng-model="vm_rf.selectedReportFields" md-progress="vm_rf.promise">\n <thead md-head md-order="vm_rf.query.sort" md-on-reorder="vm_rf.getReportFields">\n <tr md-row>\n <th md-column width="10px" ng-if="vm_rf.crudPermissions.canEdit">\n <md-icon md-font-icon="icon-drag-vertical"></md-icon>\n </th>\n <th md-column>Type</th>\n <th md-column>Column or Metric</th>\n <th md-column>Alias</th>\n <th md-column>Function</th>\n <th md-column>Format</th>\n <th md-column>Group By</th>\n <th md-column>Order By</th>\n <th md-column width="10px" ng-if="vm_rf.crudPermissions.canEdit"></th>\n </tr>\n </thead>\n <tbody md-body ng-sortable="vm_rf.sortableTable">\n <tr md-row md-select="reportField" md-select-id="id" ng-repeat="reportField in vm_rf.reportFields.rows">\n <td md-cell class="handle" ng-if="vm_rf.crudPermissions.canEdit">\n <md-icon md-font-icon="icon-drag-vertical" class="s16"></md-icon>\n </td>\n <td md-cell>\n <div ng-if="reportField.MetricId && !reportField.custom" ng-click="vm_rf.createOrEditReportField($event, reportField)" class="icon icon-shape-plus s16"></div>\n <div ng-if="!reportField.MetricId && reportField.custom" ng-click="vm_rf.createOrEditReportField($event, reportField)" class="icon icon-pencil-box-outline s16"></div>\n <div ng-if="!reportField.MetricId && !reportField.custom" ng-click="vm_rf.createOrEditReportField($event, reportField)" class="icon icon-view-column s16"></div>\n </td>\n <td md-cell ng-click="vm_rf.createOrEditReportField($event, reportField)">{{reportField.MetricId ? vm_rf.getMetricName(reportField.MetricId) : reportField.field}}</td>\n <td md-cell ng-click="vm_rf.createOrEditReportField($event, reportField)">{{reportField.alias}}</td>\n <td md-cell ng-click="vm_rf.createOrEditReportField($event, reportField)"><span class="text-boxed blue-bg white-fg" ng-if="reportField.function">{{reportField.function}}</span><span ng-if="!reportField.function">--</span></td>\n <td md-cell ng-click="vm_rf.createOrEditReportField($event, reportField)"><span class="text-boxed blue-bg white-fg" ng-if="reportField.format">{{reportField.format}}</span><span ng-if="!reportField.format">--</span></td>\n <td md-cell ng-click="vm_rf.createOrEditReportField($event, reportField)"><span class="text-boxed blue-bg white-fg" ng-if="reportField.groupBy">YES</span><span ng-if="!reportField.groupBy">--</span></td>\n <td md-cell ng-click="vm_rf.createOrEditReportField($event, reportField)"><span class="text-boxed blue-bg white-fg" ng-if="reportField.orderBy">{{reportField.orderBy}}</span><span ng-if="!reportField.orderBy">--</span></td>\n <td md-cell class="actions" ng-if="vm_rf.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="ANALYTICS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm_rf.createOrEditReportField($event, reportField)" translate="ANALYTICS.EDIT_REPORTFIELD">\n Edit Field\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm_rf.deleteConfirm(reportField, $event)" translate="ANALYTICS.DELETE_REPORTFIELD">\n Delete Field\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="ANALYTICS.CONDITIONS">CONDITIONS</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="report-detail-form-container conditions md-background-bg md-whiteframe-1dp">\n <div ng-controller="ReportConditionsController as vm_rc" ng-init="vm_rc.init(vm.report, vm.crudPermissions)">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="ANALYTICS.CONDITION">CONDITION</div>\n </div>\n <form name="conditionsForm" novalidate>\n <div ng-if="vm_rc.report.condition.group" ng-include="\'app/main/apps/analytics/views/reports/edit/condition/group.html\'" ng-init="group=vm_rc.report.condition.group"></div>\n </form>\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab md-on-select="vm.previewReport()">\n <md-tab-label>\n <span translate="ANALYTICS.PREVIEW">PREVIEW</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="report-detail-form-container result md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div ng-if="vm.error" class="h2 secondary-text" translate="ANALYTICS.ERROR">ERROR</div>\n <div ng-if="!vm.error" class="h2 secondary-text" translate="ANALYTICS.LIMITED_RESULT">LIMITED RESULT</div>\n </div>\n <dl ng-if="vm.error">\n <dt class="text-bold" translate="ANALYTICS.QUERY_ERROR">Query Error</dt>\n <dd>{{vm.error.sql}}</dd>\n <dt translate="ANALYTICS.MESSAGE">Message</dt>\n <dd>{{vm.error.msg}}</dd>\n </dl>\n <md-table-container ng-if="!vm.error">\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th ng-repeat="column in vm.columns">{{column.alias || column.field}}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-repeat="row in vm.rows">\n <td md-cell ng-repeat="(key, value) in row">{{ vm.valueReplacer(key, value) }}</td>\n </tr>\n <tr md-row ng-if="!vm.rows.length">\n <td md-cell colspan="{{vm.columns.length}}"><span translate="ANALYTICS.NO_DATA">NO DATA</span></td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab md-on-select="vm.queryReport()">\n <md-tab-label>\n <span>Query</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="report-detail-form-container result md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div ng-if="vm.error" class="h2 secondary-text" translate="ANALYTICS.ERROR">ERROR</div>\n <div ng-if="!vm.error" class="h2 secondary-text">SQL</div>\n </div>\n <dl ng-if="vm.error">\n <dt class="text-bold" translate="ANALYTICS.QUERY_ERROR">Query Error</dt>\n <dd>{{vm.error.sql}}</dd>\n <dt translate="ANALYTICS.MESSAGE">Message</dt>\n <dd>{{vm.error.msg}}</dd>\n </dl>\n <div ng-if="!vm.error">\n {{vm.queryResult}}\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/analytics/views/reports/preview/dialog.html",'<md-dialog aria-label="Run Report">\n <form name="reportForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title" translate="ANALYTICS.PREVIEW_REPORT">Preview Report</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <div class="md-block">\n <div class="pb-16" layout="row" layout-align="start center">\n <div ng-if="vm.error" class="h2 secondary-text" translate="ANALYTICS.ERROR">ERROR</div>\n <div ng-if="!vm.error" class="h2 secondary-text" translate="ANALYTICS.LIMITED_RESULT">LIMITED RESULT</div>\n </div>\n <dl ng-if="vm.error">\n <dt class="text-bold" translate="ANALYTICS.QUERY_ERROR">Query Error</dt>\n <dd>{{vm.error.sql}}</dd>\n <dt translate="ANALYTICS.MESSAGE">Message</dt>\n <dd>{{vm.error.msg}}</dd>\n </dl>\n <md-table-container ng-if="!vm.error">\n <table md-table md-progress="vm.promise">\n <thead md-head>\n <tr md-row>\n <th md-column ng-repeat="column in vm.columns">{{column.alias || column.field}}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-repeat="row in vm.rows">\n <td md-cell ng-repeat="(key, value) in row">{{ vm.valueReplacer(key, value) }}</td>\n </tr>\n <tr md-row ng-if="!vm.rows.length">\n <td md-cell colspan="{{vm.columns.length}}"><span translate="ANALYTICS.NO_DATA">NO DATA</span></td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </div>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div flex></div>\n <md-button type="submit" ng-click="vm.closeDialog()" class="md-raised" aria-label="CLOSE" translate="ANALYTICS.CLOSE" translate-attr-aria-label="ANALYTICS.CLOSE">\n CLOSE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/analytics/views/reports/reports.html",'<div id="reports" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-chart-line" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="ANALYTICS.REPORTS">Reports</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedReports.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedReports =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="ANALYTICS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-reports-count">\n <span>{{vm.selectedReports.length}}</span>\n <span translate="ANALYTICS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="ANALYTICS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllReports()" translate="ANALYTICS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectReports()" translate="ANALYTICS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedReports" csv-label="true" filename="reports.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm.crudPermissions.canDelete && vm.currentNode.custom" class="md-icon-button" ng-click="vm.deleteSelectedReports($event)" aria-label="delete selected" translate translate-attr-label="ANALYTICS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div layout="column" flex="30">\n <md-card class="padding-top-5 padding-horizontal-10 padding-bottom-0">\n \x3c!-- SEARCH --\x3e\n <div layout="row" layout-align="start center">\n <label for="searchFolder" class="m-0">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="margin-horizontal-0 margin-bottom-0 margin-top-10" flex>\n <input id="searchFolder" placeholder="Search folder" type="text" ng-model="vm.search" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="ANALYTICS.SEARCH_FOR_FOLDER">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </md-card>\n <md-card class="padding-10 scrollable" ms-scroll>\n <div js-tree="vm.treeDefaultConfig" tree-events-obj="vm.treeDefaultEvents" ng-model="vm.treeDefaultData" tree="vm.treeDefaultInstance"></div>\n </md-card>\n <md-card class="padding-10 scrollable" ms-scroll>\n <div js-tree="vm.treeCustomConfig" tree-events-obj="vm.treeCustomEvents" ng-model="vm.treeCustomData" tree="vm.treeCustomInstance"></div>\n </md-card>\n </div>\n <md-card flex="70">\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="h2 secondary-text">{{vm.currentNode.text}}</span>\n <p ng-if="vm.currentPath">\n <span class="text-boxed">{{vm.currentPath}}</span>\n </p>\n <div flex></div>\n <ms-search-bar on-search="vm.getReports()" query="vm.query" on-collapse="vm.query.filter = undefined" debounce="300"></ms-search-bar>\n <div flow-init flow-file-added="vm.importReport($file, $event, $flow)">\n <md-button ng-if="vm.crudPermissions.canEdit && vm.currentNode.custom" class="md-icon-button" aria-label="import report" translate translate-attr-label="ANALYTICS.IMPORT_REPORT" flow-btn>\n <md-icon md-font-icon="icon-upload"></md-icon>\n </md-button>\n </div>\n <md-button ng-if="vm.crudPermissions.canEdit && vm.currentNode.custom" class="md-icon-button" ng-click="vm.createOrEditReport($event)" aria-label="add report" translate translate-attr-label="ANALYTICS.ADD_REPORT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedReports" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getReports">\n <tr md-row>\n <th md-column md-order-by="id" width="10px">{{ \'ANALYTICS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'ANALYTICS.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'ANALYTICS.DESCRIPTION\' | translate }}</th>\n <th md-column md-order-by="createdAt">{{ \'ANALYTICS.CREATED_AT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.reports.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="ANALYTICS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="report" md-select-id="id" ng-repeat="report in vm.reports.rows">\n <td ng-click="!vm.crudPermissions.canEdit ? vm.currentNode.custom && vm.editstate(report, $event) : vm.currentNode.custom && vm.createOrEditReport($event, report)" md-cell class="id">{{report.id}}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.currentNode.custom && vm.editstate(report, $event) : vm.currentNode.custom && vm.createOrEditReport($event, report)" md-cell class="name">{{report.name}}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.currentNode.custom && vm.editstate(report, $event) : vm.currentNode.custom && vm.createOrEditReport($event, report)" md-cell class="description">{{report.description}}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.currentNode.custom && vm.editstate(report, $event) : vm.currentNode.custom && vm.createOrEditReport($event, report)" md-cell class="createdAt">{{report.createdAt | date:\'medium\'}}</td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="ANALYTICS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.copydialog(report, $event)" translate="ANALYTICS.COPY_REPORT">\n Copy Report\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.previewdialog(report, $event)" translate="ANALYTICS.PREVIEW_REPORT">\n Preview Report\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.rundialog(report, $event)" translate="ANALYTICS.RUN_REPORT">\n Run Report\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.downloadfile(report, $event)" translate="ANALYTICS.DOWNLOAD_JSON_REPORT">\n Download Json Report\n </md-button>\n </md-menu-item>\n <md-menu-divider ng-if="vm.crudPermissions.canEdit && vm.crudPermissions.canDelete && vm.currentNode.custom">\n </md-menu-divider>\n <md-menu-item ng-if="vm.crudPermissions.canEdit && vm.currentNode.custom">\n <md-button ng-click="vm.editstate(report, $event)" translate="ANALYTICS.EDIT_REPORT">\n Edit Report\n </md-button>\n </md-menu-item>\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete && vm.currentNode.custom">\n <md-button ng-click="vm.deleteconfirm(report, $event)" translate="ANALYTICS.DELETE_REPORT">\n Delete Report\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'ANALYTICS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'ANALYTICS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'ANALYTICS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.reports.count}}" md-on-paginate="vm.getReports" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- NO ADD BUTTON BUTTON --\x3e\n</div>'),e.put("app/main/apps/analytics/views/reports/run/dialog.html",'<md-dialog class="report-dialog" aria-label="Run Report">\n <form name="reportForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title" translate="ANALYTICS.RUN_REPORT">Run Report</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.NAME">Name</label>\n <input name="name" ng-model="vm.export.name" required md-autofocus>\n <div ng-messages="reportForm.name.$error" ng-show="reportForm.name.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.FORMAT">FORMAT</label>\n <md-select name="format" ng-model="vm.export.output" required>\n <md-option value="csv">CSV</md-option>\n <md-option value="xlsx">Excel (XLSX)</md-option>\n <md-option value="pdf">PDF</md-option>\n <md-option value="web">Web</md-option>\n </md-select>\n <div ng-messages="reportForm.format.$error" ng-show="reportForm.format.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.FORMAT_REQUIRED">Format field is required</span>\n </div>\n </div>\n </md-input-container>\n <div layout="row">\n <div class="md-block" flex>\n <mdp-date-picker mdp-open-on-click required name="dateRangeFrom" mdp-placeholder="Date Range From" mdp-format="YYYY-MM-DD" mdp-max-date="vm.dateRangeTo" ng-model="vm.export.startDate">\n <div ng-messages="reportForm.dateRangeFrom.$error" ng-show="reportForm.dateRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.DATE_RANGE_FROM_REQUIRED">Date Range From field is required</span>\n </div>\n <div ng-message="format">\n <span translate="ANALYTICS.ERRORS.DATE_RANGE_FROM_INVALID">Date Range From field is invalid</span>\n </div>\n <div ng-message="maxDate">\n <span translate="ANALYTICS.ERRORS.DATE_RANGE_FROM_MAX_INVALID">Date Range From Max field is invalid</span>\n </div>\n </div>\n </mdp-date-picker>\n </div>\n <div class="md-block" flex>\n <mdp-date-picker mdp-open-on-click required name="dateRangeTo" mdp-placeholder="Date Range To" mdp-format="YYYY-MM-DD" mdp-min-date="vm.dateRangeFrom" ng-model="vm.export.endDate">\n <div ng-messages="reportForm.dateRangeTo.$error" ng-show="reportForm.dateRangeTo.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.DATE_RANGE_TO_REQUIRED">Date Range From field is required</span>\n </div>\n <div ng-message="format">\n <span translate="ANALYTICS.ERRORS.DATE_RANGE_TO_INVALID">Date Range From field is invalid</span>\n </div>\n <div ng-message="minDate">\n <span translate="ANALYTICS.ERRORS.DATE_RANGE_FROM_MIN_INVALID">Date Range From Min field is invalid</span>\n </div>\n </div>\n </mdp-date-picker>\n </div>\n </div>\n <div layout="row">\n <div class="md-block" flex>\n <mdp-time-picker required name="timeRangeFrom" mdp-placeholder="Time Range From" mdp-format="HH:mm:ss" mdp-auto-switch="true" mdp-max-date="vm.dateRangeTo" ng-model="vm.export.startDate">\n <div ng-messages="reportForm.timeRangeFrom.$error" ng-show="reportForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.TIME_RANGE_FROM_REQUIRED">Time Range From field is required</span>\n </div>\n <div ng-message="format">\n <span translate="ANALYTICS.ERRORS.TIME_RANGE_FROM_INVALID">Time Range From field is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n <div class="md-block" flex>\n <mdp-time-picker required name="timeRangeTo" mdp-placeholder="Time Range To" mdp-format="HH:mm:ss" mdp-auto-switch="true" mdp-min-date="vm.dateRangeFrom" ng-model="vm.export.endDate">\n <div ng-messages="reportForm.timeRangeTo.$error" ng-show="reportForm.timeRangeTo.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range From field is required</span>\n </div>\n <div ng-message="format">\n <span translate="ANALYTICS.ERRORS.TIME_RANGE_TO_INVALID">Time Range From field is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </div>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.runReport($event)" class="send-button md-accent md-raised" ng-disabled="reportForm.$invalid" aria-label="RUN" translate="ANALYTICS.RUN_REPORT" translate-attr-aria-label="ANALYTICS.RUN_REPORT">\n RUN REPORT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-click="vm.refreshDate()" aria-label="REFRESH" translate translate-attr-aria-label="ANALYTICS.REFRESH">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <md-tooltip><span translate="ANALYTICS.REFRESH">REFRESH</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/analytics/views/reports/run/web/dialog.html",'<md-dialog class="web-dialog" aria-label="Show Report">\n <form name="reportForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title" translate="ANALYTICS.WEB_REPORT">Web Report</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <div class="md-block">\n <div class="pb-16" layout="row" layout-align="start center">\n <div ng-if="vm.error" class="h2 secondary-text" translate="ANALYTICS.ERROR">ERROR</div>\n </div>\n <dl ng-if="vm.error">\n <dt class="text-bold" translate="ANALYTICS.QUERY_ERROR">Query Error</dt>\n <dd>{{vm.error.sql}}</dd>\n <dt translate="ANALYTICS.MESSAGE">Message</dt>\n <dd>{{vm.error.msg}}</dd>\n </dl>\n <md-table-container ng-if="!vm.error">\n <table md-table md-progress="vm.promise">\n <thead md-head>\n <tr md-row>\n <th md-column ng-repeat="column in vm.columns">{{column.alias || column.field}}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-repeat="row in vm.results.rows">\n <td md-cell ng-repeat="(key, value) in row">{{ vm.valueReplacer(key, value) }}</td>\n </tr>\n <tr md-row ng-if="!vm.results.rows.length">\n <td md-cell colspan="{{vm.columns.length}}">\n <div layout="row" layout-align="center center">\n <span translate="ANALYTICS.NO_DATA">NO DATA</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'ANALYTICS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'ANALYTICS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'ANALYTICS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.results.count}}" md-on-paginate="vm.getResults" md-page-select></md-table-pagination>\n </div>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div flex></div>\n <md-button type="submit" ng-click="vm.closeDialog()" class="md-raised" aria-label="CLOSE" translate="ANALYTICS.CLOSE" translate-attr-aria-label="ANALYTICS.CLOSE">\n CLOSE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/odbcs/create/dialog.html",'<md-dialog class="odbc-dialog" aria-label="New Odbc">\n <form name="odbcForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CALLYSQUARE.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.odbc.name" ng-required="true" autofocus>\n\n <div ng-messages="odbcForm[\'name\'].$error" ng-show="odbcForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CALLYSQUARE.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CALLYSQUARE.DSN">DSN</label>\n <input type="text" name="dsn" ng-model="vm.odbc.dsn" ng-required="true">\n\n <div class="hint"><span translate="CALLYSQUARE.HELP.DSN"></span></div>\n <div ng-messages="odbcForm[\'dsn\'].$error" ng-show="odbcForm[\'dsn\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CALLYSQUARE.ERRORS.DSN_REQUIRED">DSN field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CALLYSQUARE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.odbc.description">\n\n <div ng-messages="odbcForm[\'description\'].$error" ng-show="odbcForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CALLYSQUARE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newOdbc" ng-click="vm.saveOdbc()" class="send-button md-accent md-raised" ng-disabled="odbcForm.$invalid || odbcForm.$pristine" aria-label="SAVE" translate="CALLYSQUARE.SAVE" translate-attr-aria-label="CALLYSQUARE.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newOdbc" ng-click="vm.addNewOdbc()" class="send-button md-accent md-raised" ng-disabled="odbcForm.$invalid" aria-label="ADD" translate="CALLYSQUARE.ADD_ODBC" translate-attr-aria-label="CALLYSQUARE.ADD_ODBC">\n ADD ODBC\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newOdbc" ng-click="vm.deleteOdbc($event)" aria-label="DELETE" translate translate-attr-aria-label="CALLYSQUARE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="CALLYSQUARE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/odbcs/odbcs.html",'<div id="odbcs" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-sitemap" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="CALLYSQUARE.ODBC">ODBC</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="CALLYSQUARE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedODBC.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedODBC =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="CALLYSQUARE.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-odbcs-count">\n <span>{{vm.selectedODBC.length}}</span>\n <span translate="CALLYSQUARE.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="CALLYSQUARE.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllODBC()" translate="CALLYSQUARE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectODBC()" translate="CALLYSQUARE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedODBC" csv-label="true" filename="odbcs.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedODBC($event)" aria-label="delete selected" translate translate-attr-label="CALLYSQUARE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- ODBC TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedODBC" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getODBC">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'CALLYSQUARE.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'CALLYSQUARE.NAME\' | translate }}</th>\n <th md-column md-order-by="dsn">{{ \'CALLYSQUARE.DSN\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'CALLYSQUARE.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.odbcs.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="CALLYSQUARE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="odbc" md-select-id="id" ng-repeat="odbc in vm.odbcs.rows">\n <td md-cell ng-if="odbc.userpic"><img class="avatar" alt="{{odbc.name}}" ng-src="api/users/{{odbc.id}}/avatar" /></td>\n <td md-cell ng-if="!odbc.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{odbc.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditOdbc($event, odbc)" md-cell class="id ">{{odbc.id}}</td>\n <td ng-click="vm.createOrEditOdbc($event, odbc)" md-cell class="name ">{{odbc.name}}</td>\n <td ng-click="vm.createOrEditOdbc($event, odbc)" md-cell class="dsn ">{{odbc.dsn}}</td>\n <td ng-click="vm.createOrEditOdbc($event, odbc)" md-cell class="description ">{{odbc.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CALLYSQUARE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(odbc, $event )" translate="CALLYSQUARE.EDIT_ODBC">\n Edit Odbc\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestOdbc(odbc, $event )" translate="CALLYSQUARE.TEST_ODBC">\n Test Odbc\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(odbc, $event )" translate="CALLYSQUARE.DELETE_ODBC">\n Delete Odbc\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CALLYSQUARE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CALLYSQUARE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CALLYSQUARE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.odbcs.count}}" md-on-paginate="vm.getODBC" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / ODBC TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD ODBC BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-odbc-button" ng-click="vm.createOrEditOdbc($event)" aria-label="add odbc" translate translate-attr-aria-label="CALLYSQUARE.ADD_ODBC">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD ODBC BUTTON --\x3e\n</div>'),e.put("app/main/apps/callysquare/views/projects/create/dialog.html",'<md-dialog class="project-dialog" aria-label="New Project">\n <form name="projectForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{vm.title | translate}}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CALLYSQUARE.NAME">Name</label>\n <input name="name" ng-model="vm.project.name" required md-autofocus ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-disabled="!vm.newProject">\n <div ng-messages="projectForm.name.$error" ng-show="projectForm.name.$touched" role="alert">\n <div ng-message="required">\n <span translate="CALLYSQUARE.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="VOICE.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CALLYSQUARE.DESCRIPTION">Description</label>\n <input name="description" ng-model="vm.project.description">\n <div ng-messages="projectForm.description.$error" ng-show="projectForm.description.$touched" role="alert">\n <div ng-message="required">\n <span translate="CALLYSQUARE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.openFromEditor" class="md-block">\n \x3c!-- Added to check if I\'m opening the dialog directly from the square editor --\x3e\n <md-switch ng-model="vm.newWindow" aria-label="{{\'CALLYSQUARE.OPEN_NEW_WINDOW\' | translate }}"><span translate="CALLYSQUARE.OPEN_NEW_WINDOW"></span></md-switch>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-if="!vm.newProject" ng-click="vm.saveProject()" class="send-button md-accent md-raised" ng-disabled="projectForm.$invalid || projectForm.$pristine" aria-label="SAVE" translate="CALLYSQUARE.SAVE" translate-attr-aria-label="CALLYSQUARE.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.newProject" ng-click="vm.addNewProject()" class="send-button md-accent md-raised" ng-disabled="projectForm.$invalid || projectForm.$pristine" aria-label="ADD" translate="CALLYSQUARE.ADD_PROJECT" translate-attr-aria-label="CALLYSQUARE.ADD_PROJECT">\n ADD PROJECT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newProject" ng-click="vm.deleteProject($event)" aria-label="DELETE" translate translate-attr-aria-label="CALLYSQUARE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="CALLYSQUARE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/projects/edit/dialog/dialog.html",'<md-dialog class="project-dialog" aria-label="New dialog" ng-init="vm.onInit()">\n <form name="dialogForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title"><span translate="CALLYSQUARE.EDIT"></span> <span translate="CALLYSQUARE.{{vm.cellName | uppercase}}"></span></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <md-input-container class="md-block" ng-repeat="attribute in vm.attributes" ng-switch="attribute.name">\n <label translate="CALLYSQUARE.{{attribute.name | uppercase}}">{{attribute.name | ucfirst }}</label>\n\n \x3c!-- START SELECT INPUT --\x3e\n <md-select name="{{attribute.name}}" ng-model="attribute.value" ng-disabled="!vm.crudPermissions.canEdit" ng-switch-when-separator="|" ng-switch-when="answer|trunk_name|trunk_id|queue_id|file_id|variable_id|google_cloud_tts_text_type|google_tts_language|ispeech_tts_language|ispeech_asr_language|google_asr_language|hiddendigitspos|odbc_id|project_id|beep|account_id|interval_id|template_id|list_id|recordingFormat|callback_priority|aws_polly_voice|aws_polly_region|aws_lex_region|sms_account_id|findBy|pause_id|aws_text_type|dialogflow_language|ndagenerate_audio|ndaactivity_type|languageCode|ssmlGender|method|dialogflowV2_language" ng-required="attribute.required">\n <md-option ng-if="attribute.defaultValue" ng-value="\'\'"> - None - </md-option>\n <md-option value="{{v.value}}" ng-repeat="v in vm.values[attribute.name]" ng-disabled="v.canSelect === false">{{v.option}}</md-option>\n <md-option ng-if="!vm.values[attribute.name].length" value="-1">No {{attribute.name}} available!</md-option>\n </md-select>\n \x3c!-- END SELECT INPUT --\x3e\n\n \x3c!-- START SELECT INPUT --\x3e\n <md-select name="{{attribute.name}}" ng-model="attribute.value" ng-disabled="!vm.crudPermissions.canEdit" ng-switch-when-separator="|" ng-switch-when="sip_id" ng-required="attribute.required">\n <md-optgroup label="{{\'CALLYSQUARE.AGENTS\' | translate}}">\n <md-option value="{{v.value}}" ng-repeat="v in vm.values[attribute.name]" ng-if="v.group === \'agent\'" ng-disabled="v.canSelect === false">{{v.option}}</md-option>\n </md-optgroup>\n <md-optgroup label="{{\'CALLYSQUARE.TELEPHONES\' | translate}}">\n <md-option value="{{v.value}}" ng-repeat="v in vm.values[attribute.name]" ng-if="v.group === \'telephone\'" ng-disabled="v.canSelect === false">{{v.option}}</md-option>\n </md-optgroup>\n <md-optgroup label="{{\'CALLYSQUARE.USERS\' | translate}}">\n <md-option value="{{v.value}}" ng-repeat="v in vm.values[attribute.name]" ng-if="v.group === \'admin\' || v.group === \'user\'">{{v.option}}</md-option>\n </md-optgroup>\n <md-option ng-if="!vm.values[attribute.name].length" value="-1">No {{attribute.name}} available!</md-option>\n </md-select>\n \x3c!-- END SELECT INPUT --\x3e\n\n \x3c!-- START NUMBER INPUT --\x3e\n <div ng-switch-when="timeout">\n <div ng-switch="vm.cellName">\n <input ng-switch-when-separator="|" ng-switch-when="answer|ext_dial|dial|queue" type="number" step="any" name="{{attribute.name}}" min="0" ng-model="attribute.value" ng-required="attribute.required" ng-disabled="!vm.crudPermissions.canEdit" string-to-number>\n <input ng-switch-when-separator="|" ng-switch-when="record|ispeechasr|googleasr" type="number" step="any" name="{{attribute.name}}" min="-1" ng-model="attribute.value" ng-required="attribute.required" ng-disabled="!vm.crudPermissions.canEdit" string-to-number>\n <input ng-switch-when-separator="|" ng-switch-when="restapi" type="number" step="any" name="{{attribute.name}}" min="1" ng-model="attribute.value" ng-required="attribute.required" ng-disabled="!vm.crudPermissions.canEdit" string-to-number>\n <input ng-switch-default type="number" step="any" name="{{attribute.name}}" min="0" ng-model="attribute.value" ng-required="attribute.required" ng-disabled="!vm.crudPermissions.canEdit" string-to-number>\n </div>\n </div>\n <input ng-switch-when-separator="|" ng-switch-when="speed" type="number" step="any" name="{{attribute.name}}" min="-10" max="-10" ng-model="attribute.value" ng-required="attribute.required" ng-disabled="!vm.crudPermissions.canEdit" string-to-number>\n <input ng-switch-when-separator="|" ng-switch-when="maxdigit|mindigit|digit" type="number" step="any" name="{{attribute.name}}" min="1" ng-model="attribute.value" ng-required="attribute.required" ng-disabled="!vm.crudPermissions.canEdit" string-to-number>\n <input ng-switch-when-separator="|" ng-switch-when="retry|response|hiddendigitsnum|priority" type="number" step="any" name="{{attribute.name}}" min="1" ng-model="attribute.value" ng-required="attribute.required" ng-disabled="!vm.crudPermissions.canEdit" string-to-number>\n \x3c!-- END NUMBER INPUT --\x3e\n\n \x3c!-- START TEXTAREA INPUT --\x3e\n <textarea name="{{attribute.name}}" ng-model="attribute.value" ng-switch-when-separator="|" ng-switch-when="query|sms_text|condition|text|custom_action_data|headers|body|rawHeaders|rawBody|private_key" ng-required="attribute.required" ng-disabled="!vm.crudPermissions.canEdit"></textarea>\n \x3c!-- END TEXTAREA INPUT --\x3e\n\n \x3c!-- START URL INPUT --\x3e\n <input ng-switch-when-separator="|" ng-switch-when="ndauth_url|ndassistant_url|url" type="url" name="{{attribute.name}}" ng-model="attribute.value" ng-required="attribute.required">\n \x3c!-- END URL INPUT --\x3e\n\n \x3c!-- START TEXT INPUT --\x3e\n <input ng-switch-default name="{{attribute.name}}" ng-model="attribute.value" ng-required="attribute.required" ng-disabled="!vm.crudPermissions.canEdit">\n <div class=\'hint\' ng-if="attribute.name === \'text\' && vm.cellName === \'tts\' ">\n <span translate="CALLYSQUARE.HELP.MAX_TEXT_TTS" class="ng-scope">Max 250 chars are supported</span>\n </div>\n \x3c!-- END TEXT INPUT--\x3e\n\n <div class="hint" ng-if="attribute.help">\n <span translate="CALLYSQUARE.HELP.{{attribute.name | uppercase}}"></span>\n </div>\n <div ng-messages="dialogForm[attribute.name].$error" ng-show="dialogForm[attribute.name].$touched" role="alert">\n <div ng-message="required">\n <span translate="CALLYSQUARE.ERRORS.FIELD_REQUIRED">The field is required</span>\n </div>\n </div>\n </md-input-container>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="vm.crudPermissions.canEdit">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.closeDialog(true)" class="send-button md-accent md-raised" ng-disabled="dialogForm.$invalid || dialogForm.$pristine" aria-label="SAVE" translate="CALLYSQUARE.SAVE" translate-attr-aria-label="CALLYSQUARE.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/projects/edit/edit/edit.html",'<md-dialog class="project-dialog" aria-label="New dialog">\n <form name="editForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title"><span translate="CALLYSQUARE.EDIT_XML"></span></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label>XML</label>\n <textarea name="preproduction" ng-model="vm.project.preproduction"></textarea>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.closeDialog(true)" class="send-button md-accent md-raised" ng-disabled="editForm.$invalid" aria-label="SAVE" translate="CALLYSQUARE.SAVE" translate-attr-aria-label="CALLYSQUARE.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/projects/edit/import/import.html",'<md-dialog class="project-dialog" aria-label="New dialog">\n <form name="importForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title"><span translate="CALLYSQUARE.IMPORT_XML"></span></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <div id="xml-uploader" flow-init="vm.ngFlowOptions" flow-name="vm.ngFlow.flow" flow-file-added="vm.fileAdded($file)" flow-drop flow-drag-enter="vm.dropping=true" flow-drag-leave="vm.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n <div class="drop-text hint-text" layout="row" layout-align="center center">\n <span translate="CALLYSQUARE.DROP_TO_UPLOAD">Drop to upload</span>\n </div>\n\n <div class="upload-button" layout="column" layout-align="center center">\n <md-button class="md-accent md-raised" flow-btn>\n Upload\n </md-button>\n <span class="secondary-text mt-8" translate="CALLYSQUARE.DROP_TO_UPLOAD_MESSAGE">You can also drop files here to upload. Only XML - Max. 5MB</span>\n </div>\n </div>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.closeDialog()" class="send-button md-accent md-raised" ng-disabled="importForm.$invalid" aria-label="CLOSE" translate="CALLYSQUARE.CLOSE" translate-attr-aria-label="CALLYSQUARE.CLOSE">\n CLOSE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/projects/edit/info/info.html",'<md-dialog class="project-dialog" aria-label="New dialog">\n <form name="descriptionFrom" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title"><span translate="CALLYSQUARE.UPDATE_INFO"></span></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CALLYSQUARE.DESCRIPTION">Description</label>\n <input name="description" ng-model="vm.project.description" md-autofocus>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CALLYSQUARE.NOTES">Description</label>\n <textarea name="notes" ng-model="vm.project.notes"></textarea>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.save()" class="send-button md-accent md-raised" ng-disabled="descriptionFrom.$invalid" aria-label="SAVE" translate="CALLYSQUARE.UPDATE_INFO" translate-attr-aria-label="CALLYSQUARE.UPDATE">\n UPDATE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/projects/edit/open/open.html",'<md-dialog class="project-dialog" aria-label="New dialog">\n <form name="openForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title"><span translate="CALLYSQUARE.OPEN_PROJECT"></span></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CALLYSQUARE.PROJECT">Project</label>\n <md-select name="id" ng-model="vm.id" required>\n <md-option value="{{p.id}}" ng-repeat="p in vm.projects">{{p.name}}</md-option>\n </md-select>\n <div ng-messages="openForm.id.$error" ng-show="openForm.id.$touched" role="alert">\n <div ng-message="required">\n <span translate="CALLYSQUARE.ERRORS.PROJECT_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.newWindow" aria-label="{{\'CALLYSQUARE.OPEN_NEW_WINDOW\' | translate }}"><span translate="CALLYSQUARE.OPEN_NEW_WINDOW"></span></md-switch>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.closeDialog(true)" class="send-button md-accent md-raised" ng-disabled="openForm.$invalid" aria-label="SAVE" translate="CALLYSQUARE.OPEN_PROJECT" translate-attr-aria-label="CALLYSQUARE.OPEN">\n OPEN\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/projects/edit/permissionadd/permissionadd.html",'<md-dialog class="projects-dialog" aria-label="projects">\n <form name="projectsForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="CALLYSQUARE.PERMISSIONADD_PROJECTS">Add User Permissions</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/projects/edit/saveAs/saveAs.html",'<md-dialog class="project-dialog" aria-label="New dialog">\n <form name="newForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title"><span translate="CALLYSQUARE.COPY_PROJECT"></span></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CALLYSQUARE.NAME">Name</label>\n <input name="name" ng-model="vm.project.name" required md-autofocus>\n <div ng-messages="newForm.name.$error" ng-show="newForm.name.$touched" role="alert">\n <div ng-message="required">\n <span translate="CALLYSQUARE.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.newWindow" aria-label="{{\'CALLYSQUARE.OPEN_NEW_WINDOW\' | translate }}"><span translate="CALLYSQUARE.OPEN_NEW_WINDOW"></span></md-switch>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.save()" class="send-button md-accent md-raised" ng-disabled="newForm.$invalid" aria-label="SAVE" translate="CALLYSQUARE.COPY_PROJECT" translate-attr-aria-label="CALLYSQUARE.COPY">\n COPY\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/projects/edit/view.html",'<div id="callysquare-project" class="page-layout simple tabbed" layout="column" ng-init="vm.onInit()">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-projects-button md-icon-button" aria-label="Go to projects" ng-click="vm.gotoProjects()" translate translate-attr-aria-label="CALLYSQUARE.GO_TO_PROJECTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="project-image" hide-xs>\n <img ng-src="assets/images/business/cprojects.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.project.id}} {{vm.project.name}}\n </div>\n <div class="subtitle secondary-text text-truncate">\n <span ng-if="vm.project.description">{{vm.project.description}} - </span><span translate="CALLYSQUARE.CREATED_AT"></span> <span>{{vm.project.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-if="vm.crudPermissions.canEdit" ng-click="vm.updateInfo($event)" class="md-fab md-yellow-700-bg md-icon-button" aria-label="edit">\n <md-icon md-font-icon="icon-tooltip-edit"></md-icon>\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <md-content class="callysquare-content">\n\n <div id="geEditor" class="geEditor"></div>\n\n </md-content>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/callysquare/views/projects/projects.html",'<div id="projects" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-vector-square" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="CALLYSQUARE.PROJECTS">Projects</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="CALLYSQUARE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedProjects.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedProjects =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="CALLYSQUARE.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-projects-count">\n <span>{{vm.selectedProjects.length}}</span>\n <span translate="CALLYSQUARE.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="CALLYSQUARE.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllProjects()" translate="CALLYSQUARE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectProjects()" translate="CALLYSQUARE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedProjects" csv-label="true" filename="projects.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm.crudPermissions.canDelete" class="md-icon-button" ng-click="vm.deleteSelectedProjects($event)" aria-label="delete selected" translate translate-attr-label="CALLYSQUARE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n \x3c!-- PROJECT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedProjects" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getProjects">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'CALLYSQUARE.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'CALLYSQUARE.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'CALLYSQUARE.DESCRIPTION\' | translate }}</th>\n <th md-column md-order-by="notes">{{ \'CALLYSQUARE.NOTES\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.projects.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="CALLYSQUARE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="project" md-select-id="id" ng-repeat="project in vm.projects.rows">\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="id ">{{project.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="name ">{{project.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="description ">{{project.description}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="notes ">{{project.notes}}</td>\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CALLYSQUARE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editstate(project, ev)" translate="CALLYSQUARE.EDIT_PROJECT">\n Edit Project\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteconfirm(project, ev)" translate="CALLYSQUARE.DELETE_PROJECT">\n Delete Project\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CALLYSQUARE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CALLYSQUARE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CALLYSQUARE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.projects.count}}" md-on-paginate="vm.getProjects" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / PROJECT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD PROJECT BUTTON --\x3e\n <md-button class="md-fab md-accent md-icon-button" id="add-project-button" ng-if="vm.crudPermissions.canEdit" ng-click="vm.createOrEditProject($event)" aria-label="add project" translate translate-attr-aria-label="CALLYSQUARE.ADD_PROJECT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD PROJECT BUTTON --\x3e\n\n</div>'),e.put("app/main/apps/callysquare/views/squareRecordings/create/dialog.html",'<md-dialog class="squareRecording-dialog" aria-label="New SquareRecording">\n <form name="squareRecordingForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CALLYSQUARE.FILENAME">Filename</label>\n <input type="" name="filename" ng-model="vm.squareRecording.filename" ng-required="true" autofocus>\n\n <div ng-messages="squareRecordingForm[\'filename\'].$error" ng-show="squareRecordingForm[\'filename\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CALLYSQUARE.ERRORS.FILENAME_REQUIRED">Filename field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newSquareRecording" ng-click="vm.saveSquareRecording()" class="send-button md-accent md-raised" ng-disabled="squareRecordingForm.$invalid || squareRecordingForm.$pristine" aria-label="SAVE" translate="CALLYSQUARE.SAVE" translate-attr-aria-label="CALLYSQUARE.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newSquareRecording" ng-click="vm.addNewSquareRecording()" class="send-button md-accent md-raised" ng-disabled="squareRecordingForm.$invalid" aria-label="ADD" translate="CALLYSQUARE.ADD_SQUARERECORDING" translate-attr-aria-label="CALLYSQUARE.ADD_SQUARERECORDING">\n ADD SQUARERECORDING\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newSquareRecording" ng-click="vm.deleteSquareRecording($event)" aria-label="DELETE" translate translate-attr-aria-label="CALLYSQUARE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="CALLYSQUARE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/squareRecordings/squareRecordings.html",'<div id="squareRecordings" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-sitemap" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="CALLYSQUARE.SQUARERECORDINGS">SquareRecordings</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="CALLYSQUARE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedSquareRecordings.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedSquareRecordings =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="CALLYSQUARE.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-squareRecordings-count">\n <span>{{vm.selectedSquareRecordings.length}}</span>\n <span translate="CALLYSQUARE.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="CALLYSQUARE.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllSquareRecordings()" translate="CALLYSQUARE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectSquareRecordings()" translate="CALLYSQUARE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedSquareRecordings" csv-label="true" filename="squareRecordings.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedSquareRecordings($event)" aria-label="delete selected" translate translate-attr-label="CALLYSQUARE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- SQUARERECORDING TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedSquareRecordings" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getSquareRecordings">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="filename">{{ \'CALLYSQUARE.FILENAME\' | translate }}</th>\n <th md-column md-order-by="projectName">{{ \'CALLYSQUARE.PROJECT\' | translate }}</th>\n <th md-column md-order-by="uniqueid">{{ \'CALLYSQUARE.UNIQUEID\' | translate }}</th>\n <th md-column md-order-by="callerid">{{ \'CALLYSQUARE.PHONE\' | translate }}</th>\n <th md-column md-order-by="extension">{{ \'CALLYSQUARE.EXTEN\' | translate }}</th>\n <th md-column>{{ \'CALLYSQUARE.AUDIO\' | translate }}</th>\n <th md-column md-order-by="createdAt">{{ \'CALLYSQUARE.CREATED_AT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.squareRecordings.rows.length">\n <td md-cell colspan="8">\n <div layout="row" layout-align="center center">\n <span translate="CALLYSQUARE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="squareRecording" md-select-id="id" ng-repeat="squareRecording in vm.squareRecordings.rows">\n <td md-cell ng-if="squareRecording.userpic"><img class="avatar" alt="{{squareRecording.name}}" ng-src="api/users/{{squareRecording.id}}/avatar" /></td>\n <td md-cell ng-if="!squareRecording.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{squareRecording.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditSquareRecording($event, squareRecording)" md-cell class="filename ">{{squareRecording.filename}}</td>\n <td ng-click="vm.createOrEditSquareRecording($event, squareRecording)" md-cell class="projectName ">{{squareRecording.projectName}}</td>\n <td ng-click="vm.createOrEditSquareRecording($event, squareRecording)" md-cell class="uniqueid ">{{squareRecording.uniqueid}}</td>\n <td ng-click="vm.createOrEditSquareRecording($event, squareRecording)" md-cell class="callerid ">{{squareRecording.callerid}}</td>\n <td ng-click="vm.createOrEditSquareRecording($event, squareRecording)" md-cell class="extension ">{{squareRecording.extension}}</td>\n <td md-cell class="audio " ng-switch="squareRecording.format">\n \x3c!-- audio recording directive --\x3e\n <ms-recording ng-switch-when=".wav" id="squareRecording.id" model="\'squareRecording\'"></ms-recording>\n \x3c!-- / audio recording directive --\x3e\n <span ng-switch-when=".gsm|.WAV" ng-switch-when-separator="|">\n <em>{{ \'VOICE.CANT_PLAY_GSM_AUDIO_FILES\' | translate }}</em>\n </span>\n </td>\n <td ng-click="vm.createOrEditSquareRecording($event, squareRecording)" md-cell class="createdAt ">{{squareRecording.createdAt | date:\'medium\' }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CALLYSQUARE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.role === \'admin\' || vm.userProfile.downloadCallySquareRecordings">\n\n <md-button ng-click="vm.downloadfile2(squareRecording, $event , \'square/recordings\' )" translate="CALLYSQUARE.DOWNLOAD_SQUARERECORDING">\n Download SquareRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(squareRecording, $event )" translate="CALLYSQUARE.DELETE_SQUARERECORDING">\n Delete SquareRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CALLYSQUARE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CALLYSQUARE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CALLYSQUARE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.squareRecordings.count}}" md-on-paginate="vm.getSquareRecordings" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / SQUARERECORDING TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- NO ADD BUTTON BUTTON --\x3e\n</div>'),e.put("app/main/apps/chat/views/chatQueues/chatQueues.html",'<div id="chatQueues" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-hangouts" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="CHAT.CHATQUEUES">ChatQueues</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="CHAT.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedChatQueues.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedChatQueues =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="CHAT.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-chatQueues-count">\n <span>{{vm.selectedChatQueues.length}}</span>\n <span translate="CHAT.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="CHAT.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllChatQueues()" translate="CHAT.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectChatQueues()" translate="CHAT.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedChatQueues" csv-label="true" filename="chatQueues.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedChatQueues($event)" aria-label="delete selected" translate translate-attr-label="CHAT.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- CHATQUEUE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedChatQueues" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getChatQueues">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'CHAT.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'CHAT.NAME\' | translate }}</th>\n <th md-column md-order-by="strategy">{{ \'CHAT.STRATEGY\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.chatQueues.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="CHAT.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="chatQueue" md-select-id="id" ng-repeat="chatQueue in vm.chatQueues.rows">\n <td md-cell ng-if="chatQueue.userpic"><img class="avatar" alt="{{chatQueue.name}}" ng-src="api/users/{{chatQueue.id}}/avatar" /></td>\n <td md-cell ng-if="!chatQueue.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{chatQueue.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatQueue, ev) : vm.createOrEditChatQueue($event, chatQueue)" md-cell class="id ">{{chatQueue.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatQueue, ev) : vm.createOrEditChatQueue($event, chatQueue)" md-cell class="name ">{{chatQueue.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatQueue, ev) : vm.createOrEditChatQueue($event, chatQueue)" md-cell class="strategy ">{{ vm.arraystrategy[chatQueue.strategy].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CHAT.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(chatQueue, $event )" translate="CHAT.EDIT_CHATQUEUE">\n Edit ChatQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(chatQueue, $event )" translate="CHAT.TEAMADD_CHATQUEUE">\n teamadd ChatQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(chatQueue, $event )" translate="CHAT.AGENTADD_CHATQUEUE">\n agentadd ChatQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(chatQueue, $event )" translate="CHAT.DELETE_CHATQUEUE">\n Delete ChatQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(chatQueue, $event )" translate="CHAT.GOTOREALTIME_CHATQUEUE">\n goToRealtime ChatQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.chatQueues.count}}" md-on-paginate="vm.getChatQueues" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / CHATQUEUE TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD CHATQUEUE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-chatQueue-button" ng-click="vm.createOrEditChatQueue($event)" aria-label="add chatQueue" translate translate-attr-aria-label="CHAT.ADD_CHATQUEUE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD CHATQUEUE BUTTON --\x3e\n</div>'),e.put("app/main/apps/chat/views/chatQueues/create/dialog.html",'<md-dialog class="chatQueue-dialog" aria-label="New ChatQueue">\n <form name="chatQueueForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.chatQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newChatQueue">\n\n <div class="hint"><span translate="CHAT.HELP.NAME"></span></div>\n <div ng-messages="chatQueueForm[\'name\'].$error" ng-show="chatQueueForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="CHAT.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.chatQueue.strategy" required>\n <md-option ng-value="\'beepall\'">Beepall</md-option>\n <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n </md-select>\n <div ng-messages="chatQueueForm[\'strategy\'].$error" ng-show="chatQueueForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.AGENT_TIMEOUT">Agent_Timeout</label>\n <input type="number" name="timeout" ng-model="vm.chatQueue.timeout" min="1" max="2147483" value="10" ng-required="true">\n\n <div ng-messages="chatQueueForm[\'timeout\'].$error" ng-show="chatQueueForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.chatQueue.description">\n\n <div ng-messages="chatQueueForm[\'description\'].$error" ng-show="chatQueueForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newChatQueue" ng-click="vm.saveChatQueue()" class="send-button md-accent md-raised" ng-disabled="chatQueueForm.$invalid || chatQueueForm.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newChatQueue" ng-click="vm.addNewChatQueue()" class="send-button md-accent md-raised" ng-disabled="chatQueueForm.$invalid" aria-label="ADD" translate="CHAT.ADD_CHATQUEUE" translate-attr-aria-label="CHAT.ADD_CHATQUEUE">\n ADD CHATQUEUE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newChatQueue" ng-click="vm.deleteChatQueue($event)" aria-label="DELETE" translate translate-attr-aria-label="CHAT.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="CHAT.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatQueues/edit/agentadd/agentadd.html",'<md-dialog class="chatQueue-dialog" aria-label="chatQueue" ng-init="vm.onInit()">\n <form name="chatQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="CHAT.AGENTADD_CHATQUEUE">Add Agent to chatQueue</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatQueues/edit/teamadd/teamadd.html",'<md-dialog class="chatQueue-dialog" aria-label="chatQueue" ng-init="vm.onInit()">\n <form name="chatQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="CHAT.TEAMS_ASSOCIATION">Teams Association</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatQueues/edit/view.html",'<div id="chat-chatQueue" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-chatQueues-button md-icon-button" aria-label="Go to chatQueues" ng-click="vm.gotoChatQueues()" translate translate-attr-aria-label="CHAT.GO_TO_CHATQUEUES">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="chatQueue-image" hide-xs>\n <img ng-src="assets/images/business/chatQueues.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.chatQueue.id}}\n <span ng-if="vm.chatQueue.name">{{vm.chatQueue.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="CHAT.CREATED_AT"></span> <span>{{vm.chatQueue.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.teamadddialog(vm.chatQueue, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n <md-tooltip><span translate="CHAT.TEAMADD_CHATQUEUE"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.chatQueue, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="CHAT.AGENTADD_CHATQUEUE"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-plus"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveChatQueue()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid)" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatQueue-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="CHAT.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.chatQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="CHAT.HELP.NAME"></span></div>\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="CHAT.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.chatQueue.strategy" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'beepall\'">Beepall</md-option>\n <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n </md-select>\n <div ng-messages="generalForm[\'strategy\'].$error" ng-show="generalForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.AGENT_TIMEOUT">Agent_Timeout</label>\n <input type="number" name="timeout" ng-model="vm.chatQueue.timeout" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'timeout\'].$error" ng-show="generalForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.chatQueue.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/chat/views/chatWebsites/chatWebsites.html",'<div id="chatWebsites" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-hangouts" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="CHAT.CHATWEBSITES">ChatWebsites</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="CHAT.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedChatWebsites.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedChatWebsites =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="CHAT.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-chatWebsites-count">\n <span>{{vm.selectedChatWebsites.length}}</span>\n <span translate="CHAT.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="CHAT.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllChatWebsites()" translate="CHAT.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectChatWebsites()" translate="CHAT.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedChatWebsites" csv-label="true" filename="chatWebsites.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedChatWebsites($event)" aria-label="delete selected" translate translate-attr-label="CHAT.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- CHATWEBSITE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedChatWebsites" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getChatWebsites">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'CHAT.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'CHAT.NAME\' | translate }}</th>\n <th md-column md-order-by="key">{{ \'CHAT.KEY\' | translate }}</th>\n <th md-column md-order-by="address">{{ \'CHAT.MOTIONADDRESS\' | translate }}</th>\n <th md-column md-order-by="remote">{{ \'CHAT.MOTIONPROXY\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'CHAT.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.chatWebsites.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="CHAT.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="chatWebsite" md-select-id="id" ng-repeat="chatWebsite in vm.chatWebsites.rows">\n <td md-cell ng-if="chatWebsite.userpic"><img class="avatar" alt="{{chatWebsite.name}}" ng-src="api/users/{{chatWebsite.id}}/avatar" /></td>\n <td md-cell ng-if="!chatWebsite.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{chatWebsite.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatWebsite, ev) : vm.createOrEditChatWebsite($event, chatWebsite)" md-cell class="id ">{{chatWebsite.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatWebsite, ev) : vm.createOrEditChatWebsite($event, chatWebsite)" md-cell class="name ">{{chatWebsite.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatWebsite, ev) : vm.createOrEditChatWebsite($event, chatWebsite)" md-cell class="key ">{{chatWebsite.key}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatWebsite, ev) : vm.createOrEditChatWebsite($event, chatWebsite)" md-cell class="address ">{{chatWebsite.address}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatWebsite, ev) : vm.createOrEditChatWebsite($event, chatWebsite)" md-cell class="remote ">{{chatWebsite.remote}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatWebsite, ev) : vm.createOrEditChatWebsite($event, chatWebsite)" md-cell class="description ">{{chatWebsite.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CHAT.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(chatWebsite, $event )" translate="CHAT.EDIT_CHATWEBSITE">\n Edit ChatWebsite\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.interactionsgoto(chatWebsite, $event )" translate="CHAT.INTERACTIONS_CHATWEBSITE">\n Interactions ChatWebsite\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.offlinemessagesgoto(chatWebsite, $event )" translate="CHAT.OFFLINEMESSAGES_CHATWEBSITE">\n OfflineMessages ChatWebsite\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(chatWebsite, $event )" translate="CHAT.AGENTADD_CHATWEBSITE">\n AgentAdd ChatWebsite\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(chatWebsite, $event )" translate="CHAT.DELETE_CHATWEBSITE">\n Delete ChatWebsite\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.chatWebsites.count}}" md-on-paginate="vm.getChatWebsites" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / CHATWEBSITE TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD CHATWEBSITE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-chatWebsite-button" ng-click="vm.createOrEditChatWebsite($event)" aria-label="add chatWebsite" translate translate-attr-aria-label="CHAT.ADD_CHATWEBSITE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD CHATWEBSITE BUTTON --\x3e\n</div>'),e.put("app/main/apps/chat/views/chatWebsites/create/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.chatWebsite.name" ng-required="true" autofocus ng-disabled="!vm.newChatWebsite">\n\n <div ng-messages="chatWebsiteForm[\'name\'].$error" ng-show="chatWebsiteForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.KEY">key</label>\n <input type="text" name="key" ng-model="vm.chatWebsite.key" md-maxlength="5" ng-required="true">\n\n <div ng-messages="chatWebsiteForm[\'key\'].$error" ng-show="chatWebsiteForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.MOTIONADDRESS">MotionAddress</label>\n <input type="url" name="address" ng-model="vm.chatWebsite.address" md-maxlength="255" ng-required="true">\n\n <div ng-messages="chatWebsiteForm[\'address\'].$error" ng-show="chatWebsiteForm[\'address\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.MOTIONADDRESS_REQUIRED">MotionAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="CHAT.ERRORS.MOTIONADDRESS_MUST_VALID_URL">MotionAddress must be a valid url http://www.xcally.com</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.MOTIONADDRESS_MAX_LENGTH" translate-values=\'{max: 255}\'>MotionAddress must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.MOTIONPROXY">MotionProxy</label>\n <input type="url" name="remote" ng-model="vm.chatWebsite.remote" md-maxlength="255" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="CHAT.HELP.MOTIONPROXY"></span></div>\n <div ng-messages="chatWebsiteForm[\'remote\'].$error" ng-show="chatWebsiteForm[\'remote\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.MOTIONPROXY_REQUIRED">MotionProxy field is required</span>\n </div>\n <div ng-message="url">\n <span translate="CHAT.ERRORS.MOTIONPROXY_MUST_VALID_URL">MotionProxy must be a valid url http://www.xcally.com</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.MOTIONPROXY_MAX_LENGTH" translate-values=\'{max: 255}\'>MotionProxy must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.LIST">List</label>\n <md-select name="ListId" ng-model="vm.chatWebsite.ListId" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="CHAT.HELP.LIST"></span></div>\n <div ng-messages="chatWebsiteForm[\'ListId\'].$error" ng-show="chatWebsiteForm[\'ListId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.INTERVAL">Interval</label>\n <md-select name="IntervalId" ng-model="vm.chatWebsite.IntervalId">\n <md-option ng-value="null">Always</md-option>\n <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval" ng-disabled="IntervalId.canSelect === false">{{ IntervalId.name }}</md-option>\n </md-select>\n <div ng-messages="chatWebsiteForm[\'IntervalId\'].$error" ng-show="chatWebsiteForm[\'IntervalId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.INTERVAL_REQUIRED">Interval field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.chatWebsite.description">\n\n <div ng-messages="chatWebsiteForm[\'description\'].$error" ng-show="chatWebsiteForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newChatWebsite" ng-click="vm.saveChatWebsite()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteForm.$invalid || chatWebsiteForm.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newChatWebsite" ng-click="vm.addNewChatWebsite()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteForm.$invalid" aria-label="ADD" translate="CHAT.ADD_CHATWEBSITE" translate-attr-aria-label="CHAT.ADD_CHATWEBSITE">\n ADD CHATWEBSITE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newChatWebsite" ng-click="vm.deleteChatWebsite($event)" aria-label="DELETE" translate translate-attr-aria-label="CHAT.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="CHAT.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/agentadd/agentadd.html",'<md-dialog class="chatWebsite-dialog" aria-label="chatWebsite" ng-init="vm.onInit()">\n <form name="chatWebsiteForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="CHAT.AGENTADD_CHATWEBSITE">Add Agent to chatWebsite</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/agent/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.AGENT">Agent</label>\n <md-select name="agent" ng-model="vm.agent.agent" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="agent.name" ng-repeat="agent in vm.agents" ng-disabled="agent.canSelect === false">{{ agent.name }}</md-option>\n </md-select>\n <div ng-messages="chatWebsiteFormApp[\'agent\'].$error" ng-show="chatWebsiteFormApp[\'agent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.agent.timeout" min="0" max="2147483" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'timeout\'].$error" ng-show="chatWebsiteFormApp[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/amazonlex/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.ACCESSKEYID">accesskeyid</label>\n <input type="text" name="accesskeyid" ng-model="vm.amazonlex.accesskeyid" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'accesskeyid\'].$error" ng-show="chatWebsiteFormApp[\'accesskeyid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.ACCESSKEYID_REQUIRED">accesskeyid field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.SECRETACCESSKEY">secretaccesskey</label>\n <input type="text" name="secretaccesskey" ng-model="vm.amazonlex.secretaccesskey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'secretaccesskey\'].$error" ng-show="chatWebsiteFormApp[\'secretaccesskey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.SECRETACCESSKEY_REQUIRED">secretaccesskey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.LEXREGION">lexregion</label>\n <md-select name="lexregion" ng-model="vm.amazonlex.lexregion" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'us-east-1\'">US East (N. Virginia)</md-option>\n <md-option ng-value="\'us-west-2\'">US West (Oregon)</md-option>\n <md-option ng-value="\'eu-west-1\'">EU (Ireland)</md-option>\n <md-option ng-value="\'ap-southeast-2\'">Asia Pacific (Sydney)</md-option>\n </md-select>\n <div ng-messages="chatWebsiteFormApp[\'lexregion\'].$error" ng-show="chatWebsiteFormApp[\'lexregion\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.LEXREGION_REQUIRED">lexregion field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.BOTNAME">botname</label>\n <input type="text" name="botname" ng-model="vm.amazonlex.botname" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'botname\'].$error" ng-show="chatWebsiteFormApp[\'botname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.BOTNAME_REQUIRED">botname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.amazonlex.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="CHAT.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="chatWebsiteFormApp[\'welcomemessage\'].$error" ng-show="chatWebsiteFormApp[\'welcomemessage\'].$touched" role="alert">\n\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/autoreply/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.TIMES">times</label>\n <md-select name="times" ng-model="vm.autoreply.times" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="2">One Time</md-option>\n <md-option ng-value="0">Always</md-option>\n <md-option ng-value="1">First Message</md-option>\n </md-select>\n <div ng-messages="chatWebsiteFormApp[\'times\'].$error" ng-show="chatWebsiteFormApp[\'times\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TIMES_REQUIRED">times field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.TEXT">Text</label>\n <textarea name="text" ng-model="vm.autoreply.text" required></textarea>\n\n <div ng-messages="chatWebsiteFormApp[\'text\'].$error" ng-show="chatWebsiteFormApp[\'text\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TEXT_REQUIRED">Text field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/close/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.DISPOSITION">Disposition</label>\n <input type="text" name="disposition" ng-model="vm.close.disposition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'disposition\'].$error" ng-show="chatWebsiteFormApp[\'disposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.DISPOSITION_REQUIRED">Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/dialogflow/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.dialogflow.key" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'key\'].$error" ng-show="chatWebsiteFormApp[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.KEY_REQUIRED">Key field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflow.language" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'da\'">Danish</md-option>\n <md-option ng-value="\'en\'">English</md-option>\n <md-option ng-value="\'de\'">German</md-option>\n <md-option ng-value="\'it\'">Italian</md-option>\n <md-option ng-value="\'es\'">Spanish</md-option>\n <md-option ng-value="\'fr\'">French</md-option>\n <md-option ng-value="\'id\'">Indonesian</md-option>\n <md-option ng-value="\'ja\'">Japanese</md-option>\n <md-option ng-value="\'ko\'">Korean (South Korea)</md-option>\n <md-option ng-value="\'nl\'">Dutch</md-option>\n <md-option ng-value="\'no\'">Norwegian</md-option>\n <md-option ng-value="\'pt\'">Portuguese (European)</md-option>\n <md-option ng-value="\'pt-br\'">Portuguese (Nrazilian)</md-option>\n <md-option ng-value="\'ru\'">Russian</md-option>\n <md-option ng-value="\'sv\'">Swedish</md-option>\n <md-option ng-value="\'th\'">Thai</md-option>\n <md-option ng-value="\'uk\'">Ukrainian</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese (Simplified)</md-option>\n <md-option ng-value="\'zh-HK\'">Chinese (Hong Kong)</md-option>\n <md-option ng-value="\'zh-TW\'">Chinese (Traditional)</md-option>\n </md-select>\n <div ng-messages="chatWebsiteFormApp[\'language\'].$error" ng-show="chatWebsiteFormApp[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.LANGUAGE_REQUIRED">language field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.dialogflow.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="CHAT.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="chatWebsiteFormApp[\'welcomemessage\'].$error" ng-show="chatWebsiteFormApp[\'welcomemessage\'].$touched" role="alert">\n\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/dialogflowv2/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.PROJECTID">ProjectID</label>\n <input type="text" name="projectId" ng-model="vm.dialogflowv2.projectId" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'projectId\'].$error" ng-show="chatWebsiteFormApp[\'projectId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.PROJECTID_REQUIRED">ProjectID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.CLIENTEMAIL">ClientEmail</label>\n <input type="text" name="clientEmail" ng-model="vm.dialogflowv2.clientEmail" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'clientEmail\'].$error" ng-show="chatWebsiteFormApp[\'clientEmail\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.CLIENTEMAIL_REQUIRED">ClientEmail field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.PRIVATEKEY">PrivateKey</label>\n <textarea name="privateKey" ng-model="vm.dialogflowv2.privateKey" required></textarea>\n\n <div ng-messages="chatWebsiteFormApp[\'privateKey\'].$error" ng-show="chatWebsiteFormApp[\'privateKey\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="CHAT.ERRORS.PRIVATEKEY_REQUIRED">PrivateKey field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflowv2.language" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'zh-HK\'">Chinese (Cantonese)</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese (Simplified)</md-option>\n <md-option ng-value="\'zh-TW\'">Chinese (Traditional)</md-option>\n <md-option ng-value="\'da\'">Danish</md-option>\n <md-option ng-value="\'nl\'">Dutch</md-option>\n <md-option ng-value="\'en\'">English</md-option>\n <md-option ng-value="\'en-AU\'">English (Australia)</md-option>\n <md-option ng-value="\'en-CA\'">English (Canada)</md-option>\n <md-option ng-value="\'en-GB\'">English (Great Britain)</md-option>\n <md-option ng-value="\'en-IN\'">English (India)</md-option>\n <md-option ng-value="\'en-US\'">English (US)</md-option>\n <md-option ng-value="\'fr\'">French</md-option>\n <md-option ng-value="\'fr-CA\'">French (Canada)</md-option>\n <md-option ng-value="\'fr-FR\'">\'France (France)</md-option>\n <md-option ng-value="\'de\'">German</md-option>\n <md-option ng-value="\'hi\'">Hindi</md-option>\n <md-option ng-value="\'id\'">Indonesian</md-option>\n <md-option ng-value="\'it\'">Italian</md-option>\n <md-option ng-value="\'ja\'">Japanese</md-option>\n <md-option ng-value="\'ko\'">Korean</md-option>\n <md-option ng-value="\'no\'">Norwegian</md-option>\n <md-option ng-value="\'pl\'">Polish</md-option>\n <md-option ng-value="\'pt-BR\'">Portuguese (Brazil)</md-option>\n <md-option ng-value="\'pt-PT\'">Portuguese (Portugal)</md-option>\n <md-option ng-value="\'ru\'">Russian</md-option>\n <md-option ng-value="\'es\'">Spanish</md-option>\n <md-option ng-value="\'es-419\'">Spanish (Latin America)</md-option>\n <md-option ng-value="\'es-ES\'">Spanish (Spain)</md-option>\n <md-option ng-value="\'sw\'">Swedish</md-option>\n <md-option ng-value="\'th\'">Thai</md-option>\n <md-option ng-value="\'tr\'">Turkish</md-option>\n <md-option ng-value="\'uk\'">Ukrainian</md-option>\n </md-select>\n <div ng-messages="chatWebsiteFormApp[\'language\'].$error" ng-show="chatWebsiteFormApp[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.LANGUAGE_REQUIRED">language field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.dialogflowv2.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="CHAT.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="chatWebsiteFormApp[\'welcomemessage\'].$error" ng-show="chatWebsiteFormApp[\'welcomemessage\'].$touched" role="alert">\n\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/gotoif/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.CONDITION">Condition</label>\n <input type="text" name="condition" ng-model="vm.gotoif.condition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'condition\'].$error" ng-show="chatWebsiteFormApp[\'condition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.CONDITION_REQUIRED">Condition field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.TRUEPRIORITY">truepriority</label>\n <input type="number" name="truepriority" ng-model="vm.gotoif.truepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'truepriority\'].$error" ng-show="chatWebsiteFormApp[\'truepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TRUEPRIORITY_REQUIRED">truepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">truepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.FALSEPRIORITY">falsepriority</label>\n <input type="number" name="falsepriority" ng-model="vm.gotoif.falsepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'falsepriority\'].$error" ng-show="chatWebsiteFormApp[\'falsepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.FALSEPRIORITY_REQUIRED">falsepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">falsepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/gotop/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.PRIORITY">Priority</label>\n <input type="number" name="priority" ng-model="vm.gotop.priority" min="0" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'priority\'].$error" ng-show="chatWebsiteFormApp[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Priority must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/interval/dialog.html",'<md-dialog class="interval-dialog" aria-label="New Interval">\n <form name="intervalForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select ng-model="vm.type" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="type" ng-repeat=\'type in vm.types\'>{{ type | ucfirst }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.type === \'list\'">\n <label translate="TOOLS.INTERVALS">Intervals</label>\n <md-select ng-model="vm.interval.IntervalId" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals">{{ interval.name }}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!-- TIMERANGE START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.TIME_RANGE">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <div class="md-block" flex>\n <mdp-time-picker name="timeRangeFrom" mdp-placeholder="FROM" ng-model="vm.timeRangeFrom" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <div ng-messages="intervalForm.timeRangeFrom.$error" ng-show="intervalForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_FROM_INVALID">Time Range From field is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n <div class="md-block" flex ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_INVALID">Time Range To field is invalid</span>\n </div>\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </div>\n \x3c!-- TIMERANGE END --\x3e\n\n \x3c!-- DAYSOFWEEK START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.WEEK_DAYS">Week Days</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.dayOfWeekFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container flex class="md-block" ng-if="vm.dayOfWeekFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="dayOfWeekTo" ng-model="vm.dayOfWeekTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- DAYSOFWEEK END --\x3e\n\n \x3c!-- MONTHDAY START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTH_DAYS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthDayFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthDayFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthDayTo" ng-model="vm.monthDayTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTHDAY END --\x3e\n\n \x3c!-- MONTH START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTHS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n </md-select>\n\n </md-input-container>\n\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthTo" ng-model="vm.monthTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTH END --\x3e\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="!vm.newInterval && vm.crudPermissions.canEdit" ng-click="vm.saveInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid || intervalForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.newInterval && vm.crudPermissions.canEdit" ng-click="vm.addNewInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_INTERVAL" translate-attr-aria-label="TOOLS.ADD_INTERVAL">\n ADD INTERVAL\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/noop/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.VALUE">Value</label>\n <input type="text" name="value" ng-model="vm.noop.value" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'value\'].$error" ng-show="chatWebsiteFormApp[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/queue/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.QUEUE">Queue</label>\n <md-select name="queue" ng-model="vm.queue.queue" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="queue.name" ng-repeat="queue in vm.queues" ng-disabled="queue.canSelect === false">{{ queue.name }}</md-option>\n </md-select>\n <div ng-messages="chatWebsiteFormApp[\'queue\'].$error" ng-show="chatWebsiteFormApp[\'queue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.queue.timeout" min="0" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'timeout\'].$error" ng-show="chatWebsiteFormApp[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/system/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.COMMAND">Command</label>\n <input type="text" name="command" ng-model="vm.system.command" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'command\'].$error" ng-show="chatWebsiteFormApp[\'command\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.COMMAND_REQUIRED">Command field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.VARIABLE">Variable</label>\n <md-select name="variable" ng-model="vm.system.variable" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables" ng-disabled="variable.canSelect === false">{{ variable.name }}</md-option>\n </md-select>\n <div ng-messages="chatWebsiteFormApp[\'variable\'].$error" ng-show="chatWebsiteFormApp[\'variable\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.VARIABLE_REQUIRED">Variable field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/tag/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.TAG">Tag</label>\n <md-select name="tag" ng-model="vm.tag.tag" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags" ng-disabled="tag.canSelect === false">{{ tag.name }}</md-option>\n </md-select>\n <div ng-messages="chatWebsiteFormApp[\'tag\'].$error" ng-show="chatWebsiteFormApp[\'tag\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TAG_REQUIRED">Tag field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/chatCannedAnswers/dialog.html",'<md-dialog class="chatCannedAnswer-dialog" aria-label="New ChatCannedAnswer">\n <form name="chatCannedAnswerForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.KEY">Key</label>\n <input type="" name="key" ng-model="vm.chatCannedAnswer.key" md-maxlength="255" ng-required="true" autofocus>\n\n <div ng-messages="chatCannedAnswerForm[\'key\'].$error" ng-show="chatCannedAnswerForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.KEY_REQUIRED">Key field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.VALUE">Value</label>\n <textarea name="value" ng-model="vm.chatCannedAnswer.value" required></textarea>\n\n <div ng-messages="chatCannedAnswerForm[\'value\'].$error" ng-show="chatCannedAnswerForm[\'value\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="CHAT.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.chatCannedAnswer.description">\n\n <div ng-messages="chatCannedAnswerForm[\'description\'].$error" ng-show="chatCannedAnswerForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newChatCannedAnswer" ng-click="vm.saveChatCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="chatCannedAnswerForm.$invalid || chatCannedAnswerForm.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newChatCannedAnswer" ng-click="vm.addNewChatCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="chatCannedAnswerForm.$invalid" aria-label="ADD" translate="CHAT.ADD_CHATCANNEDANSWER" translate-attr-aria-label="CHAT.ADD_CHATCANNEDANSWER">\n ADD CHATCANNEDANSWER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newChatCannedAnswer" ng-click="vm.deleteChatCannedAnswer($event)" aria-label="DELETE" translate translate-attr-aria-label="CHAT.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="CHAT.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/offlineMessages/dialog.html",'<md-dialog class="offlineMessage-dialog" aria-label="New OfflineMessage">\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-content flex layout-padding>\n <pre ng-if="vm.isHtml">{{vm.message.body}}</pre>\n <div ng-if="!vm.isHtml" ng-bind-html-unsafe="vm.message.body"></div>\n\n <span ng-repeat="attachment in vm.attachments">\n <md-button class="md-icon-button no-margin no-padding" ng-click="vm.download(attachment)">\n <md-icon class="no-margin material-icons" aria-label="Attachment">attach_file</md-icon>\n </md-button>\n <span>{{attachment.name}}</span><br />\n </span>\n </md-content>\n\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/proactive/dialog.html",'<md-dialog class="chatProactiveAction-dialog" aria-label="New ChatProactiveAction">\n <form name="chatProactiveActionForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.NAME">Name</label>\n <input type="" name="name" ng-model="vm.chatProactiveAction.name" ng-required="true" autofocus>\n\n <div ng-messages="chatProactiveActionForm[\'name\'].$error" ng-show="chatProactiveActionForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.TYPE">Type</label>\n <md-select name="type" ng-model="vm.chatProactiveAction.type">\n\n <md-option ng-value="\'mouseOver\'"> {{ \'CHAT.MOUSEOVER\' | translate }} </md-option>\n\n <md-option ng-value="\'timeout\'"> {{ \'CHAT.TIMEOUT\' | translate }} </md-option>\n </md-select>\n <div ng-messages="chatProactiveActionForm[\'type\'].$error" ng-show="chatProactiveActionForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatProactiveAction.type === \'mouseOver\'" class="md-block">\n <label translate="CHAT.SELECTOR">Selector</label>\n <input type="" name="selector" ng-model="vm.chatProactiveAction.selector" ng-required="true">\n\n <div ng-messages="chatProactiveActionForm[\'selector\'].$error" ng-show="chatProactiveActionForm[\'selector\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.SELECTOR_REQUIRED">Selector field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatProactiveAction.type === \'timeout\'" class="md-block">\n <label translate="CHAT.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.chatProactiveAction.timeout" min="1" ng-required="true">\n\n <div ng-messages="chatProactiveActionForm[\'timeout\'].$error" ng-show="chatProactiveActionForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newChatProactiveAction" ng-click="vm.saveChatProactiveAction()" class="send-button md-accent md-raised" ng-disabled="chatProactiveActionForm.$invalid || chatProactiveActionForm.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newChatProactiveAction" ng-click="vm.addNewChatProactiveAction()" class="send-button md-accent md-raised" ng-disabled="chatProactiveActionForm.$invalid" aria-label="ADD" translate="CHAT.ADD_CHATPROACTIVEACTION" translate-attr-aria-label="CHAT.ADD_CHATPROACTIVEACTION">\n ADD CHATPROACTIVEACTION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newChatProactiveAction" ng-click="vm.deleteChatProactiveAction($event)" aria-label="DELETE" translate translate-attr-aria-label="CHAT.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="CHAT.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/view.html",'<div id="chat-chatWebsite" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-chatWebsites-button md-icon-button" aria-label="Go to chatWebsites" ng-click="vm.gotoChatWebsites()" translate translate-attr-aria-label="CHAT.GO_TO_CHATWEBSITES">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="chatWebsite-image" hide-xs>\n <img ng-src="assets/images/business/chatWebsites.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.chatWebsite.id}}\n <span ng-if="vm.chatWebsite.name">{{vm.chatWebsite.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="CHAT.CREATED_AT"></span> <span>{{vm.chatWebsite.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.chatWebsite, $event)" class="md-fab md-warn md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="CHAT.AGENTADD_CHATWEBSITE"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveChatWebsite()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (notificationForm.$invalid) || (transferForm.$invalid) || (scriptForm.$invalid) || (intervalForm.$invalid) || (dispositionForm.$invalid) || (appearanceForm.$invalid) || (onlinestatusForm.$invalid) || (offlinestatusForm.$invalid) || (closingformForm.$invalid) || (unmanagedstatusForm.$invalid) || (interactionForm.$invalid) || (whitelabelForm.$invalid) || (logoForm.$invalid) || (agentAvatarForm.$invalid) || (customerAvatarForm.$invalid) || (systemAvatarForm.$invalid) || (chatFormOnlineForm.$invalid) || (chatFormOfflineForm.$invalid) || (proactiveForm.$invalid) || (chatDispositionsForm.$invalid) || (chatCannedAnswersForm.$invalid) || (vidaooForm.$invalid) || (actionsForm.$invalid) || (interactionsForm.$invalid) || (offlineMessagesForm.$invalid)" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatWebsite-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="CHAT.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.chatWebsite.name" ng-required="true" autofocus disabled>\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.KEY">key</label>\n <input type="text" name="key" ng-model="vm.chatWebsite.key" md-maxlength="5" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'key\'].$error" ng-show="generalForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.MOTIONADDRESS">MotionAddress</label>\n <input type="url" name="address" ng-model="vm.chatWebsite.address" md-maxlength="255" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'address\'].$error" ng-show="generalForm[\'address\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.MOTIONADDRESS_REQUIRED">MotionAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="CHAT.ERRORS.MOTIONADDRESS_MUST_VALID_URL">MotionAddress must be a valid url http://www.xcally.com</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.MOTIONADDRESS_MAX_LENGTH" translate-values=\'{max: 255}\'>MotionAddress must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.LIST">List</label>\n <md-select name="ListId" ng-model="vm.chatWebsite.ListId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="CHAT.HELP.LIST"></span></div>\n <div ng-messages="generalForm[\'ListId\'].$error" ng-show="generalForm[\'ListId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.fidelity" class="md-block">\n <label translate="CHAT.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.chatWebsite.timeout" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'timeout\'].$error" ng-show="generalForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.WAITFORTHEASSIGNEDAGENT">WaitForTheAssignedAgent</label>\n <input type="number" name="waitForTheAssignedAgent" ng-model="vm.chatWebsite.waitForTheAssignedAgent" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'waitForTheAssignedAgent\'].$error" ng-show="generalForm[\'waitForTheAssignedAgent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.WAITFORTHEASSIGNEDAGENT_REQUIRED">WaitForTheAssignedAgent field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.chatWebsite.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="chatWebsite-detail-form-container notification md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.NOTIFICATION">NOTIFICATION</div>\n </div>\n <form name="notificationForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.notificationSound" aria-label="notificationSound" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.NOTIFICATIONSOUND">notificationSound</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.notificationShake" aria-label="notificationShake" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.NOTIFICATIONSHAKE">notificationShake</span></md-switch>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="CHAT.NOTIFICATIONTEMPLATE">notificationTemplate</label>\n <textarea aria-label="notificationTemplate notificationTemplate" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', removePlugins: \'magicline\' }" ng-model="vm.chatWebsite.notificationTemplate"></textarea>\n </div>\n\n </form>\n </div>\n <div class="chatWebsite-detail-form-container transfer md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.TRANSFER">TRANSFER</div>\n </div>\n <form name="transferForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.queueTransfer" aria-label="queueTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.QUEUETRANSFER">queueTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.queueTransfer == true" class="md-block">\n <label translate="CHAT.QUEUETRANSFERTIMEOUT">queueTransferTimeout</label>\n <input type="number" name="queueTransferTimeout" ng-model="vm.chatWebsite.queueTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'queueTransferTimeout\'].$error" ng-show="transferForm[\'queueTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.QUEUETRANSFERTIMEOUT_REQUIRED">queueTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.agentTransfer" aria-label="agentTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.AGENTTRANSFER">agentTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.agentTransfer == true" class="md-block">\n <label translate="CHAT.AGENTTRANSFERTIMEOUT">agentTransferTimeout</label>\n <input type="number" name="agentTransferTimeout" ng-model="vm.chatWebsite.agentTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'agentTransferTimeout\'].$error" ng-show="transferForm[\'agentTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.AGENTTRANSFERTIMEOUT_REQUIRED">agentTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatWebsite-detail-form-container script md-background-bg md-whiteframe-1dp">\n <div ng-controller="ChatWebsiteScriptController as vm_ac" ng-init="vm_ac.init(vm.chatWebsite)" class="content" md-background-bg>\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.SCRIPT">SCRIPT</div>\n </div>\n\n <form name="scriptForm" flex="100" novalidate>\n <md-input-container class="md-block">\n <label translate="CHAT.TOKEN">Token</label>\n <input type="text" name="token" ng-model="vm_ac.chatWebsite.token" autofocus ng-disabled="true">\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.MOTIONPROXY">MotionProxy</label>\n <input type="url" name="remote" ng-model="vm_ac.chatWebsite.remote" required>\n <div class="hint"><span translate="CHAT.HELP.MOTIONPROXY"></span></div>\n <div ng-messages="scriptForm[\'remote\'].$error" ng-show="scriptForm[\'remote\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.MOTIONPROXY_REQUIRED">Motion Proxy field is required</span>\n </div>\n <div ng-message="url">\n <span translate="CHAT.ERRORS.MOTIONPROXY_MUST_VALID_URL">Motion Proxy must be a valid url e.g.: http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.WEBSITESCRIPT">WebsiteScript</label>\n <div>\n <pre style="font-size: 13px;">\n {{vm_ac.start}} {{vm_ac.script}} {{vm_ac.end}}\n </pre>\n </div>\n <div class="hint"><span translate="CHAT.HELP.COPYSCRIPTTOCLIPBOARD"></span></div>\n </md-input-container>\n </form>\n </div>\n\n </div>\n <div class="chatWebsite-detail-form-container interval md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.INTERVAL">INTERVAL</div>\n </div>\n <form name="intervalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="CHAT.INTERVAL">Interval</label>\n <md-select name="IntervalId" ng-model="vm.chatWebsite.IntervalId" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Always</md-option>\n <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval" ng-disabled="IntervalId.canSelect === false">{{ IntervalId.name }}</md-option>\n </md-select>\n <div ng-messages="intervalForm[\'IntervalId\'].$error" ng-show="intervalForm[\'IntervalId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.INTERVAL_REQUIRED">Interval field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.TIMEZONE">Timezone</label>\n <ms-timezone name="timezone" ng-model="vm.chatWebsite.timezone" ng-disabled="!vm.crudPermissions.canEdit"></ms-timezone>\n <div class="hint"><span translate="CHAT.HELP.TIMEZONE"></span></div>\n <div ng-messages="intervalForm[\'timezone\'].$error" ng-show="intervalForm[timezone].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TIMEZONE_REQUIRED">Timezone field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="chatWebsite-detail-form-container disposition md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.DISPOSITION">DISPOSITION</div>\n </div>\n <form name="dispositionForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.mandatoryDisposition" class="md-block">\n <label translate="CHAT.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.chatWebsite.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="CHAT.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="dispositionForm[\'mandatoryDispositionPauseId\'].$error" ng-show="dispositionForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.SNIPPET">SNIPPET</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatWebsite-detail-form-container appearance md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.APPEARANCE">APPEARANCE</div>\n </div>\n <form name="appearanceForm" novalidate>\n <div flex md-color-picker ng-model="vm.chatWebsite.color" label="{{\'CHAT.MAINCOLOR\' | translate}}" md-color-hex="true" md-color-rgb="false" md-color-hsl="false" md-color-history="false" md-color-material-palette="false" md-color-alpha-channel="false" open-on-input="true"></div>\n <div flex md-color-picker ng-model="vm.chatWebsite.color_button" label="{{\'CHAT.BUTTONCOLOR\' | translate}}" md-color-hex="true" md-color-rgb="false" md-color-hsl="false" md-color-history="false" md-color-material-palette="false" md-color-alpha-channel="false" open-on-input="true"></div>\n <div flex md-color-picker ng-model="vm.chatWebsite.textColor" label="{{\'CHAT.TEXTCOLOR\' | translate}}" md-color-hex="true" md-color-rgb="false" md-color-hsl="false" md-color-history="false" md-color-material-palette="false" md-color-alpha-channel="false" open-on-input="true"></div>\n <div flex md-color-picker ng-model="vm.chatWebsite.backgroundColor" label="{{\'CHAT.BACKGROUNDCOLOR\' | translate}}" md-color-hex="true" md-color-rgb="false" md-color-hsl="false" md-color-history="false" md-color-material-palette="false" md-color-alpha-channel="false" open-on-input="true"></div>\n <md-input-container class="md-block">\n <label translate="CHAT.FONTSIZE">fontSize</label>\n <input type="number" name="fontSize" ng-model="vm.chatWebsite.fontSize" min="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="appearanceForm[\'fontSize\'].$error" ng-show="appearanceForm[\'fontSize\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.FONTSIZE_REQUIRED">fontSize field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.FONTSIZE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">fontSize must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.HEADERSHAPE">headershape</label>\n <md-select name="header_shape" ng-model="vm.chatWebsite.header_shape" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'rounded\'"> {{ \'CHAT.ROUNDED\' | translate }} </md-option>\n\n <md-option ng-value="\'squared\'"> {{ \'CHAT.SQUARED\' | translate }} </md-option>\n </md-select>\n <div ng-messages="appearanceForm[\'header_shape\'].$error" ng-show="appearanceForm[\'header_shape\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.HEADERSHAPE_REQUIRED">headershape field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.showAgentAvatar" aria-label="ShowAgentAvatar" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.SHOWAGENTAVATAR">ShowAgentAvatar</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.showCustomerAvatar" aria-label="showCustomerAvatar" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.SHOWCUSTOMERAVATAR">showCustomerAvatar</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.SNIPPETSWIPEOUT">snippetSwipeOut</label>\n <md-select name="alignment" ng-model="vm.chatWebsite.alignment" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'bottom_right\'"> {{ \'CHAT.BOTTOM_RIGHT\' | translate }} </md-option>\n\n <md-option ng-value="\'right\'"> {{ \'CHAT.RIGHT\' | translate }} </md-option>\n\n <md-option ng-value="\'left\'"> {{ \'CHAT.LEFT\' | translate }} </md-option>\n </md-select>\n <div ng-messages="appearanceForm[\'alignment\'].$error" ng-show="appearanceForm[\'alignment\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.SNIPPETSWIPEOUT_REQUIRED">snippetSwipeOut field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.alignment !== \'bottom_right\'" class="md-block">\n <label translate="CHAT.VERTICALPOSITION">verticalPosition</label>\n <input type="number" name="verticalAlignment" ng-model="vm.chatWebsite.verticalAlignment" min="0" max="100" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="CHAT.HELP.VERTICALPOSITION"></span></div>\n <div ng-messages="appearanceForm[\'verticalAlignment\'].$error" ng-show="appearanceForm[\'verticalAlignment\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.VERTICALPOSITION_REQUIRED">verticalPosition field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.VERTICALPOSITION_MUST_BE_GREATER_THAN_OR_EQUAL_TO">verticalPosition must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.VERTICALPOSITION_MUST_BE_LESS_THAN_OR_EQUAL_TO">verticalPosition must be a valid greater or equal than</span> <span>100</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.MESSAGESALIGNMENT">messagesAlignment</label>\n <md-select name="messagesAlignment" ng-model="vm.chatWebsite.messagesAlignment" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'alternate\'"> {{ \'CHAT.ALTERNATE\' | translate }} </md-option>\n\n <md-option ng-value="\'centered\'"> {{ \'CHAT.CENTERED\' | translate }} </md-option>\n </md-select>\n <div ng-messages="appearanceForm[\'messagesAlignment\'].$error" ng-show="appearanceForm[\'messagesAlignment\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.MESSAGESALIGNMENT_REQUIRED">messagesAlignment field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.DEFAULTTITLE">defaultTitle</label>\n <input type="text" name="defaultTitle" ng-model="vm.chatWebsite.defaultTitle" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="appearanceForm[\'defaultTitle\'].$error" ng-show="appearanceForm[\'defaultTitle\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.DEFAULTTITLE_REQUIRED">defaultTitle field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.DEFAULTTITLE_MAX_LENGTH" translate-values=\'{max: 255}\'>defaultTitle must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="chatWebsite-detail-form-container onlinestatus md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.ONLINESTATUS">ONLINESTATUS</div>\n </div>\n <form name="onlinestatusForm" novalidate>\n <md-input-container class="md-block">\n <label translate="CHAT.HEADER_ONLINE">header_online</label>\n <input type="text" name="header_online" ng-model="vm.chatWebsite.header_online" md-maxlength="255" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="onlinestatusForm[\'header_online\'].$error" ng-show="onlinestatusForm[\'header_online\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.HEADER_ONLINE_REQUIRED">header_online field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.HEADER_ONLINE_MAX_LENGTH" translate-values=\'{max: 255}\'>header_online must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.START_CHAT_BUTTON">start_chat_button</label>\n <input type="text" name="start_chat_button" ng-model="vm.chatWebsite.start_chat_button" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="onlinestatusForm[\'start_chat_button\'].$error" ng-show="onlinestatusForm[\'start_chat_button\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.START_CHAT_BUTTON_REQUIRED">start_chat_button field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.START_CHAT_BUTTON_MAX_LENGTH" translate-values=\'{max: 255}\'>start_chat_button must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="chatWebsite-detail-form-container offlinestatus md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.OFFLINESTATUS">OFFLINESTATUS</div>\n </div>\n <form name="offlinestatusForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.hideWhenOffline" aria-label="hideWhenOffline" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.HIDEWHENOFFLINE">hideWhenOffline</span></md-switch>\n <div class="hint"><span translate="CHAT.HELP.HIDEWHENOFFLINE"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.HEADER_OFFLINE">header_offline</label>\n <input type="text" name="header_offline" ng-model="vm.chatWebsite.header_offline" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="offlinestatusForm[\'header_offline\'].$error" ng-show="offlinestatusForm[\'header_offline\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.HEADER_OFFLINE_REQUIRED">header_offline field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.HEADER_OFFLINE_MAX_LENGTH" translate-values=\'{max: 255}\'>header_offline must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.OFFLINE_CHAT_BUTTON">offline_chat_button</label>\n <input type="text" name="offline_chat_button" ng-model="vm.chatWebsite.offline_chat_button" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="offlinestatusForm[\'offline_chat_button\'].$error" ng-show="offlinestatusForm[\'offline_chat_button\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.OFFLINE_CHAT_BUTTON_REQUIRED">offline_chat_button field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.OFFLINE_CHAT_BUTTON_MAX_LENGTH" translate-values=\'{max: 255}\'>offline_chat_button must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.OFFLINEMESSAGESUBJECT">offlineMessageSubject</label>\n <input type="text" name="offlineMessageSubject" ng-model="vm.chatWebsite.offlineMessageSubject" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="offlinestatusForm[\'offlineMessageSubject\'].$error" ng-show="offlinestatusForm[\'offlineMessageSubject\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.OFFLINEMESSAGESUBJECT_REQUIRED">offlineMessageSubject field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.OFFLINEMESSAGESUBJECT_MAX_LENGTH" translate-values=\'{max: 255}\'>offlineMessageSubject must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.OFFLINEMESSAGEBODY">offlineMessageBody</label>\n <input type="text" name="offlineMessageBody" ng-model="vm.chatWebsite.offlineMessageBody" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="offlinestatusForm[\'offlineMessageBody\'].$error" ng-show="offlinestatusForm[\'offlineMessageBody\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.OFFLINEMESSAGEBODY_REQUIRED">offlineMessageBody field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.OFFLINEMESSAGEBODY_MAX_LENGTH" translate-values=\'{max: 255}\'>offlineMessageBody must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="chatWebsite-detail-form-container closingform md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.CLOSINGFORM">CLOSINGFORM</div>\n </div>\n <form name="closingformForm" novalidate>\n <md-input-container class="md-block">\n <label translate="CHAT.CLOSINGMESSAGE">closingMessage</label>\n <textarea name="closingMessage" ng-model="vm.chatWebsite.closingMessage" md-maxlength="255" required autofocus></textarea>\n\n <div ng-messages="closingformForm[\'closingMessage\'].$error" ng-show="closingformForm[\'closingMessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="CHAT.ERRORS.CLOSINGMESSAGE_REQUIRED">closingMessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.CLOSINGMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>closingMessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.SKIPMESSAGEBUTTON">skipMessageButton</label>\n <input type="text" name="skipMessageButton" ng-model="vm.chatWebsite.skipMessageButton" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="closingformForm[\'skipMessageButton\'].$error" ng-show="closingformForm[\'skipMessageButton\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.SKIPMESSAGEBUTTON_REQUIRED">skipMessageButton field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.SKIPMESSAGEBUTTON_MAX_LENGTH" translate-values=\'{max: 255}\'>skipMessageButton must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.enableRating" aria-label="enableRating" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.ENABLERATING">enableRating</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.enableRating" class="md-block">\n <label translate="CHAT.RATINGTYPE">ratingType</label>\n <md-select name="ratingType" ng-model="vm.chatWebsite.ratingType" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'star\'">Star</md-option>\n <md-option ng-value="\'thumb\'">Thumb</md-option>\n </md-select>\n <div ng-messages="closingformForm[\'ratingType\'].$error" ng-show="closingformForm[\'ratingType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.RATINGTYPE_REQUIRED">ratingType field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.enableRating && vm.chatWebsite.ratingType === \'star\'" class="md-block">\n <label translate="CHAT.RATINGSTARSNUMBER">ratingStarsNumber</label>\n <input type="number" name="ratingStarsNumber" ng-model="vm.chatWebsite.ratingStarsNumber" min="2" max="5" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="closingformForm[\'ratingStarsNumber\'].$error" ng-show="closingformForm[\'ratingStarsNumber\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.RATINGSTARSNUMBER_REQUIRED">ratingStarsNumber field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.RATINGSTARSNUMBER_MUST_BE_GREATER_THAN_OR_EQUAL_TO">ratingStarsNumber must be a valid greater or equal than</span> <span>2</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.RATINGSTARSNUMBER_MUST_BE_LESS_THAN_OR_EQUAL_TO">ratingStarsNumber must be a valid greater or equal than</span> <span>5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.enableFeedback" aria-label="enableFeedback" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.ENABLEFEEDBACK">enableFeedback</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.enableFeedback" class="md-block">\n <label translate="CHAT.FEEDBACKTITLE">feedbackTitle</label>\n <input type="text" name="feedbackTitle" ng-model="vm.chatWebsite.feedbackTitle" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="closingformForm[\'feedbackTitle\'].$error" ng-show="closingformForm[\'feedbackTitle\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.FEEDBACKTITLE_REQUIRED">feedbackTitle field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.FEEDBACKTITLE_MAX_LENGTH" translate-values=\'{max: 255}\'>feedbackTitle must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.forwardTranscript" aria-label="forwardTranscript" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.FORWARDTRANSCRIPT">forwardTranscript</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.forwardTranscript" class="md-block">\n <label translate="CHAT.FORWARDTRANSCRIPTMESSAGE">forwardTranscriptMessage</label>\n <input type="text" name="forwardTranscriptMessage" ng-model="vm.chatWebsite.forwardTranscriptMessage" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="closingformForm[\'forwardTranscriptMessage\'].$error" ng-show="closingformForm[\'forwardTranscriptMessage\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.FORWARDTRANSCRIPTMESSAGE_REQUIRED">forwardTranscriptMessage field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.FORWARDTRANSCRIPTMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>forwardTranscriptMessage must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.CLOSINGMESSAGEBUTTON">closingMessageButton</label>\n <input type="text" name="closingMessageButton" ng-model="vm.chatWebsite.closingMessageButton" md-maxlength="255" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="closingformForm[\'closingMessageButton\'].$error" ng-show="closingformForm[\'closingMessageButton\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.CLOSINGMESSAGEBUTTON_REQUIRED">closingMessageButton field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.CLOSINGMESSAGEBUTTON_MAX_LENGTH" translate-values=\'{max: 255}\'>closingMessageButton must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="chatWebsite-detail-form-container unmanagedstatus md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.UNMANAGEDSTATUS">UNMANAGEDSTATUS</div>\n </div>\n <form name="unmanagedstatusForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.autoclose" aria-label="autoclose" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.AUTOCLOSE">autoclose</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.enableUnmanagedNote" aria-label="enableUnmanagedNote" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.ENABLEUNMANAGEDNOTE">enableUnmanagedNote</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.UNMANAGEDMESSAGE">unmanagedMessage</label>\n <input type="text" name="unmanagedMessage" ng-model="vm.chatWebsite.unmanagedMessage" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="unmanagedstatusForm[\'unmanagedMessage\'].$error" ng-show="unmanagedstatusForm[\'unmanagedMessage\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.UNMANAGEDMESSAGE_REQUIRED">unmanagedMessage field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.UNMANAGEDMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>unmanagedMessage must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.SKIPUNMANAGED">skipUnmanaged</label>\n <input type="text" name="skipUnmanaged" ng-model="vm.chatWebsite.skipUnmanaged" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="unmanagedstatusForm[\'skipUnmanaged\'].$error" ng-show="unmanagedstatusForm[\'skipUnmanaged\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.SKIPUNMANAGED_REQUIRED">skipUnmanaged field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.SKIPUNMANAGED_MAX_LENGTH" translate-values=\'{max: 255}\'>skipUnmanaged must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.enableUnmanagedNote" class="md-block">\n <label translate="CHAT.SENDUNMANAGED">sendUnmanaged</label>\n <input type="text" name="sendUnmanaged" ng-model="vm.chatWebsite.sendUnmanaged" md-maxlength="255" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="unmanagedstatusForm[\'sendUnmanaged\'].$error" ng-show="unmanagedstatusForm[\'sendUnmanaged\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.SENDUNMANAGED_REQUIRED">sendUnmanaged field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.SENDUNMANAGED_MAX_LENGTH" translate-values=\'{max: 255}\'>sendUnmanaged must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.enableUnmanagedNote" class="md-block">\n <label translate="CHAT.NOTETITLE">noteTitle</label>\n <input type="text" name="noteTitle" ng-model="vm.chatWebsite.noteTitle" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="unmanagedstatusForm[\'noteTitle\'].$error" ng-show="unmanagedstatusForm[\'noteTitle\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.NOTETITLE_REQUIRED">noteTitle field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.NOTETITLE_MAX_LENGTH" translate-values=\'{max: 255}\'>noteTitle must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="chatWebsite-detail-form-container interaction md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.INTERACTION">INTERACTION</div>\n </div>\n <form name="interactionForm" novalidate>\n <md-input-container class="md-block">\n <label translate="CHAT.AGENTIDENTIFIER">agentIdentifier</label>\n <md-select name="agentIdentifier" ng-model="vm.chatWebsite.agentIdentifier" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'website_alias\'"> {{ \'CHAT.WEBSITEALIAS\' | translate }} </md-option>\n\n <md-option ng-value="\'agent_alias\'"> {{ \'CHAT.AGENTALIAS\' | translate }} </md-option>\n\n <md-option ng-value="\'agent_fullname\'"> {{ \'CHAT.AGENTFULLNAME\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="CHAT.HELP.AGENTIDENTIFIER"></span></div>\n <div ng-messages="interactionForm[\'agentIdentifier\'].$error" ng-show="interactionForm[\'agentIdentifier\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.AGENTIDENTIFIER_REQUIRED">agentIdentifier field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.CUSTOMERALIAS">customerAlias</label>\n <input type="text" name="customerAlias" ng-model="vm.chatWebsite.customerAlias" md-maxlength="255" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="interactionForm[\'customerAlias\'].$error" ng-show="interactionForm[\'customerAlias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.CUSTOMERALIAS_REQUIRED">customerAlias field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.CUSTOMERALIAS_MAX_LENGTH" translate-values=\'{max: 255}\'>customerAlias must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.MESSAGEFONTSIZE">messageFontSize</label>\n <input type="number" name="messageFontSize" ng-model="vm.chatWebsite.messageFontSize" min="0" max="20" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="interactionForm[\'messageFontSize\'].$error" ng-show="interactionForm[\'messageFontSize\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.MESSAGEFONTSIZE_REQUIRED">messageFontSize field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.MESSAGEFONTSIZE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">messageFontSize must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.MESSAGEFONTSIZE_MUST_BE_LESS_THAN_OR_EQUAL_TO">messageFontSize must be a valid greater or equal than</span> <span>20</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.agentIdentifier === \'website_alias\'" class="md-block">\n <label translate="CHAT.WEBSITEALIAS">WebsiteAlias</label>\n <input type="text" name="agentAlias" ng-model="vm.chatWebsite.agentAlias" md-maxlength="255" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="CHAT.HELP.WEBSITEALIAS"></span></div>\n <div ng-messages="interactionForm[\'agentAlias\'].$error" ng-show="interactionForm[\'agentAlias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.WEBSITEALIAS_REQUIRED">WebsiteAlias field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.WEBSITEALIAS_MAX_LENGTH" translate-values=\'{max: 255}\'>WebsiteAlias must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.CLOSINGQUESTION">closingQuestion</label>\n <input type="text" name="closingQuestion" ng-model="vm.chatWebsite.closingQuestion" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="interactionForm[\'closingQuestion\'].$error" ng-show="interactionForm[\'closingQuestion\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.CLOSINGQUESTION_REQUIRED">closingQuestion field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.CLOSINGQUESTION_MAX_LENGTH" translate-values=\'{max: 255}\'>closingQuestion must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.FORMSUBMITSUCCESSMESSAGE">formSubmitSuccessMessage</label>\n <input type="text" name="formSubmitSuccessMessage" ng-model="vm.chatWebsite.formSubmitSuccessMessage" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="interactionForm[\'formSubmitSuccessMessage\'].$error" ng-show="interactionForm[\'formSubmitSuccessMessage\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.FORMSUBMITSUCCESSMESSAGE_REQUIRED">formSubmitSuccessMessage field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.FORMSUBMITSUCCESSMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>formSubmitSuccessMessage must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.FORMSUBMITFAILUREMESSAGE">formSubmitFailureMessage</label>\n <input type="text" name="formSubmitFailureMessage" ng-model="vm.chatWebsite.formSubmitFailureMessage" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="interactionForm[\'formSubmitFailureMessage\'].$error" ng-show="interactionForm[\'formSubmitFailureMessage\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.FORMSUBMITFAILUREMESSAGE_REQUIRED">formSubmitFailureMessage field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.FORMSUBMITFAILUREMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>formSubmitFailureMessage must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.enableCustomerWriting" aria-label="enableCustomerWriting" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.ENABLECUSTOMERWRITING">enableCustomerWriting</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="!vm.chatWebsite.enableCustomerWriting" class="md-block">\n <label translate="CHAT.WAITINGTITLE">waitingTitle</label>\n <input type="text" name="waitingTitle" ng-model="vm.chatWebsite.waitingTitle" md-maxlength="255" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="interactionForm[\'waitingTitle\'].$error" ng-show="interactionForm[\'waitingTitle\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.WAITINGTITLE_REQUIRED">waitingTitle field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.WAITINGTITLE_MAX_LENGTH" translate-values=\'{max: 255}\'>waitingTitle must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="!vm.chatWebsite.enableCustomerWriting" class="md-block">\n <label translate="CHAT.WAITINGMESSAGE">waitingMessage</label>\n <textarea name="waitingMessage" ng-model="vm.chatWebsite.waitingMessage" md-maxlength="255" required></textarea>\n\n <div ng-messages="interactionForm[\'waitingMessage\'].$error" ng-show="interactionForm[\'waitingMessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="CHAT.ERRORS.WAITINGMESSAGE_REQUIRED">waitingMessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.WAITINGMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>waitingMessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.PLACEHOLDERMESSAGE">placeholderMessage</label>\n <input type="text" name="placeholderMessage" ng-model="vm.chatWebsite.placeholderMessage" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="interactionForm[\'placeholderMessage\'].$error" ng-show="interactionForm[\'placeholderMessage\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.PLACEHOLDERMESSAGE_REQUIRED">placeholderMessage field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.PLACEHOLDERMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>placeholderMessage must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.download_transcript" aria-label="downloadTranscript" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.DOWNLOADTRANSCRIPT">downloadTranscript</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.enableCustomerAttachment" aria-label="enableCustomerAttachment" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.ENABLECUSTOMERATTACHMENT">enableCustomerAttachment</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.enableSendButton" aria-label="enableSendButton" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.ENABLESENDBUTTON">enableSendButton</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.enableCustomerCheckmarks" aria-label="enableCustomerCheckmarks" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.ENABLECUSTOMERCHECKMARKS">enableCustomerCheckmarks</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.SYSTEMALIAS">systemAlias</label>\n <input type="text" name="systemAlias" ng-model="vm.chatWebsite.systemAlias" md-maxlength="255" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="interactionForm[\'systemAlias\'].$error" ng-show="interactionForm[\'systemAlias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.SYSTEMALIAS_REQUIRED">systemAlias field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.SYSTEMALIAS_MAX_LENGTH" translate-values=\'{max: 255}\'>systemAlias must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div ng-if="vm.license.custom" class="chatWebsite-detail-form-container whitelabel md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.WHITELABEL">WHITELABEL</div>\n </div>\n <form name="whitelabelForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.defaultWhiteLabel" aria-label="default" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.DEFAULT">default</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="!vm.chatWebsite.defaultWhiteLabel" class="md-block">\n <label translate="CHAT.WHITELABEL">whiteLabel</label>\n <textarea name="whiteLabel" ng-model="vm.chatWebsite.whiteLabel" md-maxlength="255" required></textarea>\n\n <div ng-messages="whitelabelForm[\'whiteLabel\'].$error" ng-show="whitelabelForm[\'whiteLabel\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="CHAT.ERRORS.WHITELABEL_REQUIRED">whiteLabel field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.WHITELABEL_MAX_LENGTH" translate-values=\'{max: 255}\'>whiteLabel must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div ng-if="vm.license.custom" class="chatWebsite-detail-form-container logo md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.LOGO">LOGO</div>\n </div>\n <div ng-controller="ChatWebsitelogoController as vm_ca" ng-init="vm_ca.init(vm.chatWebsite, vm.crudPermissions)" class="chatWebsite-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="chatWebsite-image-uploader" flow-init="vm_ca.ngFlowOptions" flow-name="vm_ca.ngFlow.flow" flow-files-submitted="vm_ca.upload()" flow-file-added="vm_ca.fileAdded($file)" flow-file-success="vm_ca.fileSuccess($file, $message)" flow-complete="vm_ca.uploadComplete()" flow-drop flow-drag-enter="vm_ca.dropping=true" flow-drag-leave="vm_ca.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n <div class="drop-text hint-text" layout="row" layout-align="center center">\n <span translate="EC.DROP_TO_UPLOAD">Drop to upload</span>\n </div>\n\n <div class="upload-button" layout="column" layout-align="center center">\n <md-button class="md-accent md-raised" flow-btn ng-disabled="!vm_ca.crudPermissions.canEdit">\n Upload\n </md-button>\n <span class="secondary-text mt-8">You can also drop images here to upload. Only PNG, JPG - Max. 8MB</span>\n </div>\n\n <div layout="row" layout-align="start start" layout-wrap>\n <div ng-repeat="logoimage in vm_ca.chatWebsite.images" ng-switch="logoimage.type">\n <div class="chatWebsite-image uploading" ng-switch-when="uploading" layout="row" layout-align="center center">\n <div class="overlay" layout="column" layout-align="center center">\n <md-progress-linear md-mode="determinate" value="{{logoimage.file.progress() * 100}}">\n </md-progress-linear>\n </div>\n <img class="media" flow-img="logoimage.file">\n </div>\n\n <div class="chatWebsite-image" ng-switch-when="image" layout="row" layout-align="center center">\n <img class="media" ng-src="{{logoimage.url}}">\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n <div class="chatWebsite-detail-form-container agentavatar md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.AGENTAVATAR">AGENTAVATAR</div>\n </div>\n <div ng-controller="ChatWebsiteagentAvatarController as vm_ca" ng-init="vm_ca.init(vm.chatWebsite, vm.crudPermissions)" class="chatWebsite-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="chatWebsite-image-uploader" flow-init="vm_ca.ngFlowOptions" flow-name="vm_ca.ngFlow.flow" flow-files-submitted="vm_ca.upload()" flow-file-added="vm_ca.fileAdded($file)" flow-file-success="vm_ca.fileSuccess($file, $message)" flow-complete="vm_ca.uploadComplete()" flow-drop flow-drag-enter="vm_ca.dropping=true" flow-drag-leave="vm_ca.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n <div class="drop-text hint-text" layout="row" layout-align="center center">\n <span translate="EC.DROP_TO_UPLOAD">Drop to upload</span>\n </div>\n\n <div class="upload-button" layout="column" layout-align="center center">\n <md-button class="md-accent md-raised" flow-btn ng-disabled="!vm_ca.crudPermissions.canEdit">\n Upload\n </md-button>\n <span class="secondary-text mt-8">You can also drop images here to upload. Only PNG, JPG - Max. 8MB</span>\n </div>\n\n <div layout="row" layout-align="start start" layout-wrap>\n <div ng-repeat="agentAvatarimage in vm_ca.chatWebsite.images" ng-switch="agentAvatarimage.type">\n <div class="chatWebsite-image uploading" ng-switch-when="uploading" layout="row" layout-align="center center">\n <div class="overlay" layout="column" layout-align="center center">\n <md-progress-linear md-mode="determinate" value="{{agentAvatarimage.file.progress() * 100}}">\n </md-progress-linear>\n </div>\n <img class="media" flow-img="agentAvatarimage.file">\n </div>\n\n <div class="chatWebsite-image" ng-switch-when="image" layout="row" layout-align="center center">\n <img class="media" ng-src="{{agentAvatarimage.url}}">\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n <div class="chatWebsite-detail-form-container customeravatar md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.CUSTOMERAVATAR">CUSTOMERAVATAR</div>\n </div>\n <div ng-controller="ChatWebsitecustomerAvatarController as vm_ca" ng-init="vm_ca.init(vm.chatWebsite, vm.crudPermissions)" class="chatWebsite-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="chatWebsite-image-uploader" flow-init="vm_ca.ngFlowOptions" flow-name="vm_ca.ngFlow.flow" flow-files-submitted="vm_ca.upload()" flow-file-added="vm_ca.fileAdded($file)" flow-file-success="vm_ca.fileSuccess($file, $message)" flow-complete="vm_ca.uploadComplete()" flow-drop flow-drag-enter="vm_ca.dropping=true" flow-drag-leave="vm_ca.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n <div class="drop-text hint-text" layout="row" layout-align="center center">\n <span translate="EC.DROP_TO_UPLOAD">Drop to upload</span>\n </div>\n\n <div class="upload-button" layout="column" layout-align="center center">\n <md-button class="md-accent md-raised" flow-btn ng-disabled="!vm_ca.crudPermissions.canEdit">\n Upload\n </md-button>\n <span class="secondary-text mt-8">You can also drop images here to upload. Only PNG, JPG - Max. 8MB</span>\n </div>\n\n <div layout="row" layout-align="start start" layout-wrap>\n <div ng-repeat="customerAvatarimage in vm_ca.chatWebsite.images" ng-switch="customerAvatarimage.type">\n <div class="chatWebsite-image uploading" ng-switch-when="uploading" layout="row" layout-align="center center">\n <div class="overlay" layout="column" layout-align="center center">\n <md-progress-linear md-mode="determinate" value="{{customerAvatarimage.file.progress() * 100}}">\n </md-progress-linear>\n </div>\n <img class="media" flow-img="customerAvatarimage.file">\n </div>\n\n <div class="chatWebsite-image" ng-switch-when="image" layout="row" layout-align="center center">\n <img class="media" ng-src="{{customerAvatarimage.url}}">\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n <div class="chatWebsite-detail-form-container systemavatar md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.SYSTEMAVATAR">SYSTEMAVATAR</div>\n </div>\n <div ng-controller="ChatWebsitesystemAvatarController as vm_ca" ng-init="vm_ca.init(vm.chatWebsite, vm.crudPermissions)" class="chatWebsite-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="chatWebsite-image-uploader" flow-init="vm_ca.ngFlowOptions" flow-name="vm_ca.ngFlow.flow" flow-files-submitted="vm_ca.upload()" flow-file-added="vm_ca.fileAdded($file)" flow-file-success="vm_ca.fileSuccess($file, $message)" flow-complete="vm_ca.uploadComplete()" flow-drop flow-drag-enter="vm_ca.dropping=true" flow-drag-leave="vm_ca.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n <div class="drop-text hint-text" layout="row" layout-align="center center">\n <span translate="EC.DROP_TO_UPLOAD">Drop to upload</span>\n </div>\n\n <div class="upload-button" layout="column" layout-align="center center">\n <md-button class="md-accent md-raised" flow-btn ng-disabled="!vm_ca.crudPermissions.canEdit">\n Upload\n </md-button>\n <span class="secondary-text mt-8">You can also drop images here to upload. Only PNG, JPG - Max. 8MB</span>\n </div>\n\n <div layout="row" layout-align="start start" layout-wrap>\n <div ng-repeat="systemAvatarimage in vm_ca.chatWebsite.images" ng-switch="systemAvatarimage.type">\n <div class="chatWebsite-image uploading" ng-switch-when="uploading" layout="row" layout-align="center center">\n <div class="overlay" layout="column" layout-align="center center">\n <md-progress-linear md-mode="determinate" value="{{systemAvatarimage.file.progress() * 100}}">\n </md-progress-linear>\n </div>\n <img class="media" flow-img="systemAvatarimage.file">\n </div>\n\n <div class="chatWebsite-image" ng-switch-when="image" layout="row" layout-align="center center">\n <img class="media" ng-src="{{systemAvatarimage.url}}">\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.ONLINE">ONLINE</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatWebsite-detail-form-container chatformonline md-background-bg md-whiteframe-1dp">\n <div ng-controller="ChatWebsiteonlineFormController as vm_fonc" ng-init="vm_fonc.init(vm.chatWebsite)" class="content" md-background-bg layout="column">\n <div flex>\n \x3c!-- START Buttons --\x3e\n <md-button aria-label="comment" class="md-fab md-mini" ng-click="vm_fonc.add(button.type)" ng-repeat="button in vm_fonc.buttons">\n <md-tooltip md-direction="top">{{button.name}}</md-tooltip>\n <md-icon md-font-icon="{{button.icon}}"></md-icon>\n </md-button>\n \x3c!-- END Buttons --\x3e\n </div>\n\n <div layout="row" flex>\n <div flex="50">\n <md-card>\n <md-card-title>\n <md-card-title-text>\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.BUILDER">BUILDER</div>\n </div>\n </md-card-title-text>\n </md-card-title>\n <md-card-content>\n\n <form name="onlineForm" novalidate>\n\n \x3c!-- START MapKey --\x3e\n <md-input-container class="md-block" ng-if="vm_fonc.chatWebsite.onlineForm.items.length">\n <label translate="CHAT.HELP.MAPKEY">MapKey</label>\n <md-select ng-model="vm_fonc.chatWebsite.mapKey">\n <md-option ng-value="null">None</md-option>\n\n <md-optgroup label="standard">\n <md-option ng-repeat="field in vm_fonc.fields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n\n <md-optgroup label="custom" ng-if="vm_fonc.customFields.length">\n <md-option ng-repeat="field in vm_fonc.customFields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n </md-select>\n </md-input-container>\n \x3c!-- END MapKey --\x3e\n\n \x3c!-- START FromKey --\x3e\n <md-input-container class="md-block" ng-if="vm_fonc.chatWebsite.onlineForm.items.length">\n <label translate="CHAT.HELP.FROMKEY">FromKey</label>\n <md-select ng-model="vm_fonc.chatWebsite.onlineForm.fromKey" md-selected-text="vm_fonc.chatWebsite.onlineForm.fromKey != null ? vm_fonc.chatWebsite.onlineForm.items[vm_fonc.chatWebsite.onlineForm.fromKey].props.title : \'None\'">\n <md-option ng-value="null">None</md-option>\n <md-option ng-repeat="item in vm_fonc.chatWebsite.onlineForm.items" ng-if="item.props.title" ng-value="$index">{{ item.props.title }}</md-option>\n </md-select>\n </md-input-container>\n \x3c!-- END FromKey --\x3e\n\n \x3c!-- START EXPANSION PANELS --\x3e\n <md-expansion-panel ng-repeat="item in vm_fonc.chatWebsite.onlineForm.items track by $index" md-component-id="{{\'onlinePanel\' + $index}}">\n <md-expansion-panel-collapsed md-no-sticky="true">\n <md-button class="md-icon-button" aria-label="Down" ng-click="vm_fonc.down(item, $index); $event.stopPropagation()">\n <md-icon md-font-icon="icon-arrow-down-bold-circle-outline"></md-icon>\n </md-button>\n <md-button class="md-icon-button" aria-label="Up" ng-click="vm_fonc.up(item, $index); $event.stopPropagation()">\n <md-icon md-font-icon="icon-arrow-up-bold-circle-outline"></md-icon>\n </md-button>\n\n <div class="md-title">{{item.props.title || item.type}}</div>\n\n <div flex></div>\n <md-button class="md-icon-button" aria-label="Collapse" ng-click="$panel.collapse()">\n <md-icon md-font-icon="icon-chevron-down"></md-icon>\n </md-button>\n </md-expansion-panel-collapsed>\n\n <md-expansion-panel-expanded>\n <md-expansion-panel-header>\n <md-button class="md-icon-button" aria-label="Down" ng-click="vm_fonc.down(item, $index)">\n <md-icon md-font-icon="icon-arrow-down-bold-circle-outline"></md-icon>\n </md-button>\n <md-button class="md-icon-button" aria-label="Up" ng-click="vm_fonc.up(item, $index)">\n <md-icon md-font-icon="icon-arrow-up-bold-circle-outline"></md-icon>\n </md-button>\n\n <div class="md-title">{{item.props.title || item.type}}</div>\n\n <div flex></div>\n\n <md-button class="md-icon-button md-warn" aria-label="Remove" ng-click="vm_fonc.remove($index)">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n <md-button class="md-icon-button" aria-label="Collapse" ng-click="$panel.collapse()">\n <md-icon md-font-icon="icon-chevron-up"></md-icon>\n </md-button>\n </md-expansion-panel-header>\n\n <md-expansion-panel-content>\n <form-item type="{{item.type}}" item="item" index="$index"></form-item>\n\n <md-input-container class="md-block">\n <label translate="CHAT.VARIABLE">Variable</label>\n <md-select ng-model="item.variable">\n <md-option ng-value="null">None</md-option>\n <md-option ng-repeat="variable in vm_fonc.variables" ng-value="variable.name">{{ variable.name }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="CHAT.CM_FIELD">Contact Manager Field</label>\n <md-select ng-model="item.cmField">\n <md-option ng-value="null">None</md-option>\n\n <md-optgroup label="standard">\n <md-option ng-repeat="field in vm_fonc.fields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n\n <md-optgroup label="custom" ng-if="vm_fonc.customFields.length">\n <md-option ng-repeat="field in vm_fonc.customFields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n </md-select>\n </md-input-container>\n </md-expansion-panel-content>\n\n </md-expansion-panel-expanded>\n </md-expansion-panel>\n \x3c!-- END EXPANSION PANELS --\x3e\n </form>\n </md-card-content>\n </md-card>\n </div>\n <div flex="50">\n <md-card>\n <md-card-title>\n <md-card-title-text>\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.PREVIEW">PREVIEW</div>\n </div>\n </md-card-title-text>\n </md-card-title>\n <md-card-content flex>\n <form-view form="vm_fonc.chatWebsite.onlineForm" flex="100"></form-view>\n </md-card-content>\n </md-card>\n </div>\n </div>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.OFFLINE">OFFLINE</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatWebsite-detail-form-container chatformoffline md-background-bg md-whiteframe-1dp">\n <div ng-controller="ChatWebsiteofflineFormController as vm_fonc" ng-init="vm_fonc.init(vm.chatWebsite)" class="content" md-background-bg layout="column">\n <div flex>\n \x3c!-- START Buttons --\x3e\n <md-button aria-label="comment" class="md-fab md-mini" ng-click="vm_fonc.add(button.type)" ng-repeat="button in vm_fonc.buttons">\n <md-tooltip md-direction="top">{{button.name}}</md-tooltip>\n <md-icon md-font-icon="{{button.icon}}"></md-icon>\n </md-button>\n \x3c!-- END Buttons --\x3e\n </div>\n\n <div layout="row" flex>\n <div flex="50">\n <md-card>\n <md-card-title>\n <md-card-title-text>\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.BUILDER">BUILDER</div>\n </div>\n </md-card-title-text>\n </md-card-title>\n <md-card-content>\n\n <form name="offlineForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm_fonc.chatWebsite.forwardOffline" aria-label="forwardOffline"><span translate="CHAT.FORWARD_OFFLINE">forwardOffline</span></md-switch>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm_fonc.chatWebsite.forwardOffline">\n <label translate="CHAT.FORWARD_OFFLINE_ADDRESS">FORWARD OFFLINE ADDRESS</label>\n <input type="text" name="forwardOfflineAddress" ng-model="vm_fonc.chatWebsite.forwardOfflineAddress">\n <div class="hint"><span translate="CHAT.HELP.FORWARD_OFFLINE"></span></div>\n <div ng-messages="offlineForm[\'forwardOfflineAddress\'].$error" ng-show="offlineForm[\'forwardOfflineAddress\'].$touched" role="alert">\n <div ng-message="email">\n <span translate="CHAT.ERRORS.EMAIL_MUST_BE_VALID">forwardOffline must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <md-switch ng-model="vm_fonc.chatWebsite.openNewInteraction" aria-label="openNewInteraction">\n <span translate="CHAT.OPEN_NEW_INTERACTION">openNewInteraction</span>\n </md-switch>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm_fonc.chatWebsite.openNewInteraction">\n <label translate="CHAT.EMAIL_ACCOUNT">Email account</label>\n <md-select ng-model="vm_fonc.chatWebsite.MailAccountId">\n <md-option ng-value="null">None</md-option>\n <md-option ng-repeat="account in vm_fonc.email_accounts" ng-value="account.id">{{ account.name }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm_fonc.chatWebsite.openNewInteraction && vm_fonc.chatWebsite.offlineForm.items.length">\n <label translate="CHAT.SUBJECT">Subject</label>\n <md-select ng-model="vm_fonc.chatWebsite.subjectOffline" md-selected-text="vm_fonc.chatWebsite.subjectOffline != null ? vm_fonc.chatWebsite.subjectOffline : \'None\'">\n <md-option ng-value="null">None</md-option>\n <md-option ng-repeat="item in vm_fonc.chatWebsite.offlineForm.items" ng-if="item.props.title" ng-value="item.props.title">{{ item.props.title }}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!-- START MapKey --\x3e\n <md-input-container class="md-block" ng-if="vm_fonc.chatWebsite.offlineForm.items.length">\n <label translate="CHAT.HELP.MAPKEY">MapKey</label>\n <md-select ng-model="vm_fonc.chatWebsite.mapKeyOffline">\n <md-option ng-value="null">None</md-option>\n\n <md-optgroup label="standard">\n <md-option ng-repeat="field in vm_fonc.fields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n\n <md-optgroup label="custom" ng-if="vm_fonc.customFields.length">\n <md-option ng-repeat="field in vm_fonc.customFields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n </md-select>\n </md-input-container>\n \x3c!-- END MapKey --\x3e\n\n \x3c!-- START FromKey --\x3e\n <md-input-container class="md-block" ng-if="vm_fonc.chatWebsite.offlineForm.items.length">\n <label translate="CHAT.HELP.FROMKEY">FromKey</label>\n <md-select ng-model="vm_fonc.chatWebsite.offlineForm.fromKey" md-selected-text="vm_fonc.chatWebsite.offlineForm.fromKey != null ? vm_fonc.chatWebsite.offlineForm.items[vm_fonc.chatWebsite.offlineForm.fromKey].props.title : \'None\'">\n <md-option ng-value="null">None</md-option>\n <md-option ng-repeat="item in vm_fonc.chatWebsite.offlineForm.items" ng-if="item.props.title" ng-value="$index">{{ item.props.title }}</md-option>\n </md-select>\n </md-input-container>\n \x3c!-- END FromKey --\x3e\n\n \x3c!-- START EXPANSION PANELS --\x3e\n <md-expansion-panel ng-repeat="item in vm_fonc.chatWebsite.offlineForm.items track by $index" md-component-id="{{\'offlinePanel\' + $index}}">\n <md-expansion-panel-collapsed md-no-sticky="true">\n <md-button class="md-icon-button" aria-label="Down" ng-click="vm_fonc.down(item, $index); $event.stopPropagation()">\n <md-icon md-font-icon="icon-arrow-down-bold-circle-outline"></md-icon>\n </md-button>\n <md-button class="md-icon-button" aria-label="Up" ng-click="vm_fonc.up(item, $index); $event.stopPropagation()">\n <md-icon md-font-icon="icon-arrow-up-bold-circle-outline"></md-icon>\n </md-button>\n\n <div class="md-title">{{item.props.title || item.type}}</div>\n\n <div flex></div>\n <md-button class="md-icon-button" aria-label="Collapse" ng-click="$panel.collapse()">\n <md-icon md-font-icon="icon-chevron-down"></md-icon>\n </md-button>\n </md-expansion-panel-collapsed>\n\n <md-expansion-panel-expanded>\n <md-expansion-panel-header>\n <md-button class="md-icon-button" aria-label="Down" ng-click="vm_fonc.down(item, $index)">\n <md-icon md-font-icon="icon-arrow-down-bold-circle-outline"></md-icon>\n </md-button>\n <md-button class="md-icon-button" aria-label="Up" ng-click="vm_fonc.up(item, $index)">\n <md-icon md-font-icon="icon-arrow-up-bold-circle-outline"></md-icon>\n </md-button>\n\n <div class="md-title">{{item.props.title || item.type}}</div>\n\n <div flex></div>\n\n <md-button class="md-icon-button md-warn" aria-label="Remove" ng-click="vm_fonc.remove($index)">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n <md-button class="md-icon-button" aria-label="Collapse" ng-click="$panel.collapse()">\n <md-icon md-font-icon="icon-chevron-up"></md-icon>\n </md-button>\n </md-expansion-panel-header>\n\n <md-expansion-panel-content>\n <form-item type="{{item.type}}" item="item" index="$index"></form-item>\n\n\n <md-input-container class="md-block" ng-if="item.type != \'upload\'">\n <label translate="CHAT.CM_FIELD">Contact Manager Field</label>\n <md-select ng-model="item.cmField">\n <md-option ng-value="null">None</md-option>\n\n <md-optgroup label="standard">\n <md-option ng-repeat="field in vm_fonc.fields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n\n <md-optgroup label="custom" ng-if="vm_fonc.customFields.length">\n <md-option ng-repeat="field in vm_fonc.customFields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n </md-select>\n </md-input-container>\n </md-expansion-panel-content>\n\n </md-expansion-panel-expanded>\n </md-expansion-panel>\n \x3c!-- END EXPANSION PANELS --\x3e\n </form>\n </md-card-content>\n </md-card>\n </div>\n <div flex="50">\n <md-card>\n <md-card-title>\n <md-card-title-text>\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.PREVIEW">PREVIEW</div>\n </div>\n </md-card-title-text>\n </md-card-title>\n <md-card-content flex>\n <form-view form="vm_fonc.chatWebsite.offlineForm" flex="100"></form-view>\n </md-card-content>\n </md-card>\n </div>\n </div>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.PROACTIVEACTIONS">PROACTIVEACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatWebsite-detail-form-container proactive md-background-bg md-whiteframe-1dp">\n <div ng-controller="ChatWebsiteProactiveActionsController as vm_dc" ng-init="vm_dc.init(vm.chatWebsite, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedChatWebsiteProactiveActions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CHAT.PROACTIVEACTIONS">ProactiveActions</span>\n <ms-search-bar on-search="vm_dc.getChatWebsiteProactiveActions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event)" aria-label="add chatProactiveAction" translate translate-attr-label="CHAT.ADD_CHATPROACTIVEACTION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedChatWebsiteProactiveActions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedChatWebsiteProactiveActions.length}} {{vm_dc.selectedChatWebsiteProactiveActions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedChatWebsiteProactiveActions" csv-label="true" filename="chatWebsites.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedChatWebsiteProactiveActions($event)" aria-label="delete selected" translate translate-attr-label="CHAT.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedChatWebsiteProactiveActions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getChatWebsiteProactiveActions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'CHAT.ID\' | translate }}\n </th>\n <th md-column md-order-by="name">\n {{ \'CHAT.NAME\' | translate }}\n </th>\n <th md-column md-order-by="type">\n {{ \'CHAT.TYPE\' | translate }}\n </th>\n <th md-column md-order-by="selector">\n {{ \'CHAT.SELECTOR\' | translate }}\n </th>\n <th md-column md-order-by="timeout">\n {{ \'CHAT.TIMEOUT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'CHAT.CREATED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="chatProactiveAction" md-select-id="id" ng-repeat="chatProactiveAction in vm_dc.chatWebsiteProactiveActions.rows">\n <td ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" md-cell>\n {{chatProactiveAction.id}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" md-cell>\n {{chatProactiveAction.name}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" md-cell>\n {{ \'CHAT.\' + vm_dc.arraytype[chatProactiveAction.type].option | uppercase | translate }}\n </td>\n\n <td ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" md-cell>\n {{chatProactiveAction.selector}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" md-cell>\n {{chatProactiveAction.timeout}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" md-cell>\n {{ chatProactiveAction.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CHAT.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" translate="CHAT.EDIT_CHATPROACTIVEACTION">\n Edit ChatProactiveAction\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(chatProactiveAction, $event)" translate="CHAT.DELETE_CHATPROACTIVEACTION">\n Delete ChatProactiveAction\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.chatWebsiteProactiveActions.rows.length">\n <td md-cell colspan="8">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="CHAT.NO_CHATPROACTIVEACTION_AVAILABLE">No chatproactiveaction available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.chatWebsiteProactiveActions.count}}" md-on-paginate="vm_dc.getChatWebsiteProactiveActions" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.DISPOSITIONS">DISPOSITIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div ng-controller="ChatWebsiteDispositionsController as vm_dc" ng-init="vm_dc.init(vm.chatWebsite, vm.crudPermissions)">\n <div layout="row">\n <div class="column" flex="20">\n <md-card class="mt-0">\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm_dc.query.level = null; vm_dc.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\n </button>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm_dc.query.level" ng-change="vm_dc.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm_dc.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n <div class="chatWebsite-detail-form-container chatdispositions md-background-bg md-whiteframe-1dp" flex="80">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedChatWebsiteDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CHAT.DISPOSITIONS">Dispositions</span>\n <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditDisposition($event)" aria-label="Add chat dispositions" translate translate-attr-label="CHAT.ADD_DISPOSITION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedDispositions.length}}\n {{vm_dc.selectedDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedDispositions" csv-label="true" filename="chatWebsites.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedDispositions($event)" aria-label="delete selected" translate translate-attr-label="CHAT.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_dc.selectedDispositions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getDispositions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'CHAT.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'CHAT.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'CHAT.DESCRIPTION\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_dc.dispositions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="CHAT.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="disposition" md-select-id="id" ng-repeat="disposition in vm_dc.dispositions.rows">\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm_dc.levels[disposition.level] }}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CHAT.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(disposition, $event)" translate="TOOLS.DELETE_DISPOSITION">\n Delete Disposition\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.dispositions.count}}" md-on-paginate="vm_dc.getDispositions" md-page-select>\n </md-table-pagination>\n </div>\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.CANNEDANSWERS">CANNEDANSWERS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatWebsite-detail-form-container chatcannedanswers md-background-bg md-whiteframe-1dp">\n <div ng-controller="ChatWebsiteChatCannedAnswersController as vm_dc" ng-init="vm_dc.init(vm.chatWebsite, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedChatWebsiteChatCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CHAT.CHATCANNEDANSWERS">ChatCannedAnswers</span>\n <ms-search-bar on-search="vm_dc.getChatWebsiteChatCannedAnswers()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditChatWebsiteChatCannedAnswer($event)" aria-label="add chatCannedAnswer" translate translate-attr-label="CHAT.ADD_CHATCANNEDANSWER">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedChatWebsiteChatCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedChatWebsiteChatCannedAnswers.length}} {{vm_dc.selectedChatWebsiteChatCannedAnswers.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedChatWebsiteChatCannedAnswers" csv-label="true" filename="chatWebsites.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedChatWebsiteChatCannedAnswers($event)" aria-label="delete selected" translate translate-attr-label="CHAT.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedChatWebsiteChatCannedAnswers" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getChatWebsiteChatCannedAnswers">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'CHAT.ID\' | translate }}\n </th>\n <th md-column md-order-by="key">\n {{ \'CHAT.KEY\' | translate }}\n </th>\n <th md-column md-order-by="value">\n {{ \'CHAT.VALUE\' | translate }}\n </th>\n <th md-column md-order-by="description">\n {{ \'CHAT.DESCRIPTION\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'CHAT.CREATED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="chatCannedAnswer" md-select-id="id" ng-repeat="chatCannedAnswer in vm_dc.chatWebsiteChatCannedAnswers.rows">\n <td ng-click="vm_dc.createOrEditChatWebsiteChatCannedAnswer($event, chatCannedAnswer)" md-cell>\n {{chatCannedAnswer.id}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatCannedAnswer($event, chatCannedAnswer)" md-cell>\n {{chatCannedAnswer.key}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatCannedAnswer($event, chatCannedAnswer)" md-cell>\n {{chatCannedAnswer.value}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatCannedAnswer($event, chatCannedAnswer)" md-cell>\n {{chatCannedAnswer.description}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatCannedAnswer($event, chatCannedAnswer)" md-cell>\n {{ chatCannedAnswer.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CHAT.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditChatWebsiteChatCannedAnswer($event, chatCannedAnswer)" translate="CHAT.EDIT_CHATCANNEDANSWER">\n Edit ChatCannedAnswer\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(chatCannedAnswer, $event)" translate="CHAT.DELETE_CHATCANNEDANSWER">\n Delete ChatCannedAnswer\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.chatWebsiteChatCannedAnswers.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="CHAT.NO_CHATCANNEDANSWER_AVAILABLE">No chatcannedanswer available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.chatWebsiteChatCannedAnswers.count}}" md-on-paginate="vm_dc.getChatWebsiteChatCannedAnswers" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.VIDEO">VIDEO</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatWebsite-detail-form-container vidaoo md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.VIDAOO">VIDAOO</div>\n </div>\n <form name="vidaooForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.vidaooEscalation" aria-label="vidaooEscalation" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.VIDAOOESCALATION">vidaooEscalation</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.vidaooEscalation == true" class="md-block">\n <label translate="CHAT.VIDAOOAPIKEY">vidaooApiKey</label>\n <input type="text" name="vidaooApiKey" ng-model="vm.chatWebsite.vidaooApiKey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="vidaooForm[\'vidaooApiKey\'].$error" ng-show="vidaooForm[\'vidaooApiKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.VIDAOOAPIKEY_REQUIRED">vidaooApiKey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.vidaooEscalation == true" class="md-block">\n <label translate="CHAT.VIDAOOTOPIC">vidaooTopic</label>\n <input type="text" name="vidaooTopic" ng-model="vm.chatWebsite.vidaooTopic" value="Generated by XCALLY Motion" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="vidaooForm[\'vidaooTopic\'].$error" ng-show="vidaooForm[\'vidaooTopic\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.VIDAOOTOPIC_REQUIRED">vidaooTopic field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.vidaooEscalation == true" class="md-block">\n <label translate="CHAT.VIDAOONOTE">vidaooNote</label>\n <input type="text" name="vidaooNote" ng-model="vm.chatWebsite.vidaooNote" value="Meeting generated for interaction #{{interaction.id}} by {{agent.name}}" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="vidaooForm[\'vidaooNote\'].$error" ng-show="vidaooForm[\'vidaooNote\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.VIDAOONOTE_REQUIRED">vidaooNote field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.vidaooEscalation == true" class="md-block">\n <label translate="CHAT.VIDAOOMETADATA">vidaooMetadata</label>\n <textarea name="vidaooMetadata" ng-model="vm.chatWebsite.vidaooMetadata"></textarea>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.ACTIONS">ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatWebsite-detail-form-container actions md-background-bg md-whiteframe-1dp">\n <div ng-controller="ChatWebsiteActionsController as vm_ac" ng-init="vm_ac.init(vm.chatWebsite, vm.crudPermissions)" class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- SIDENAV --\x3e\n <div class="navigation-simple sidenav main-sidenav md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="20" ng-if="vm_ac.crudPermissions.canEdit">\n \x3c!-- SIDENAV CONTENT --\x3e\n <md-list class="no-padding">\n <md-subheader class="md-no-sticky">\n <span translate="VOICE.APPLICATIONS_LIST">\n Applications List\n </span>\n </md-subheader>\n </md-list>\n <md-divider></md-divider>\n <md-list ng-sortable="vm_ac.list">\n <md-list-item class="handle" ng-repeat="a in vm_ac.apps">\n <md-icon md-font-icon="{{a.icon}}" class="s16"></md-icon>\n <p class="text-truncate" translate="CHAT.{{(a.appAlias || a.appType) | uppercase}}">{{a.appAlias || a.appType}}</p>\n </md-list-item>\n </md-list>\n \x3c!-- / SIDENAV CONTENT --\x3e\n </div>\n \x3c!-- / SIDENAV --\x3e\n <div flex></div>\n \x3c!-- MAIN --\x3e\n <div class="main scrollable md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="{{vm_ac.crudPermissions.canEdit ? 75 : 100}}">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_ac.selectedChatWebsiteApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">Drag & Drop Routing</span>\n <div flex></div>\n <ms-search-bar on-search="vm_ac.query.filter = query" on-collapse="vm_ac.query.filter = undefined" debounce="300"></ms-search-bar>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_ac.selectedChatWebsiteApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_ac.selectedChatWebsiteApps.length}} {{vm_ac.selectedChatWebsiteApps.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_ac.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_ac.deleteSelectedChatWebsiteApps($event)" aria-label="delete selected" translate translate-attr-label="CHAT.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n \x3c!-- QUEUES TABLE --\x3e\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_ac.selectedChatWebsiteApps">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column width="10px">\n <span translate="VOICE.PRIORITY">Priority</span>\n </th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </th>\n <th md-column width="10px"></th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body ng-sortable="vm_ac.applications">\n <tr md-row md-select="app" md-select-id="id" ng-repeat="app in vm_ac.chatWebsiteApps.rows | filter: vm_ac.query.filter">\n <td md-cell>\n <md-icon md-font-icon="icon-drag-vertical" class="s16 handle"></md-icon>\n </td>\n <td md-cell ng-click="vm_ac.editChatWebsiteApp($event, $index)"><span>{{app.priority}}</span></td>\n <td md-cell ng-click="vm_ac.editChatWebsiteApp($event, $index)">{{app.app.toLowerCase() === \'agi\' ? \'Cally-Square\' : app.app | ucfirst}}<span ng-if="app.appType.toLowerCase() === \'custom\'">*</span></td>\n <td md-cell ng-click="vm_ac.editChatWebsiteApp($event, $index)"><span class="text-truncate actionAppData">{{app.appdata}}</span></td>\n <td md-cell ng-click="vm_ac.editInterval($event, $index)">{{app.IntervalId ? \'From List\' : app.interval}}</td>\n <td md-cell>\n <md-button ng-click="vm_ac.editInterval($event, $index)" class="md-icon-button" aria-label="Interval">\n <md-icon md-font-icon="icon-timer"></md-icon>\n <md-tooltip>\n {{app.IntervalId ? \'From List\' : (app.interval === \'*,*,*,*\' ? \'Always\' : \'Custom\')}}\n </md-tooltip>\n </md-button>\n </td>\n <td md-cell class="actions" ng-if="!vm_ac.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_ac.crudPermissions.canEdit">\n <md-button ng-click="vm_ac.editChatWebsiteApp($event, $index)" translate="VOICE.EDIT_APP">\n Edit App\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_ac.crudPermissions.canEdit">\n <md-button ng-click="vm_ac.editInterval($event, $index)" translate="VOICE.EDIT_INTERVAL">\n Edit Interval\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_ac.crudPermissions.canDelete">\n <md-button ng-click="vm_ac.deleteConfirm(app, $index, $event)" translate="VOICE.DELETE_APP">\n Delete App\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-hide="vm_ac.chatWebsiteApps.rows.length">\n <td md-cell colspan="7">\n <span class="text-boxed-light" translate="VOICE.NO_APPS_AVAILABLE">No apps available</span>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n \x3c!-- / QUEUES TABLE --\x3e\n\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.INTERACTIONS">INTERACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatWebsite-detail-form-container interactions md-background-bg md-whiteframe-1dp">\n <div ng-controller="ChatWebsiteInteractionsController as vm_dc" ng-init="vm_dc.init(vm.chatWebsite, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedChatWebsiteInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CHAT.INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm_dc.getChatWebsiteInteractions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_dc.quickFilters" query="vm_dc.query" search="vm_dc.getChatWebsiteInteractions()"></ms-quick-filter>\n <div layout="column">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini md-accent-bg\': vm_dc.query.search }" aria-label="Filter" translate translate-attr-aria-label="DASHBOARDS.FILTER" ng-click="vm_dc.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm_dc.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'blink\': vm_dc.query.search }"></md-icon>\n </md-button>\n </div>\n <md-button class="md-icon-button" ng-click="vm_dc.getChatWebsiteInteractions()" aria-label="refresh Interactions" translate translate-attr-label="CHAT.REFRESH_INTERACTIONS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedChatWebsiteInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedChatWebsiteInteractions.length}} {{vm_dc.selectedChatWebsiteInteractions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedChatWebsiteInteractions" csv-label="true" filename="chatWebsites.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedChatWebsiteInteractions($event)" aria-label="delete selected" translate translate-attr-label="CHAT.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedChatWebsiteInteractions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getChatWebsiteInteractions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'CHAT.ID\' | translate }}\n </th>\n <th md-column class="no-padding">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column md-order-by="contactName">\n {{ \'CHAT.CONTACT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'CHAT.STARTEDAT\' | translate }}\n </th>\n <th md-column md-order-by="lastMsgAt">\n {{ \'CHAT.LASTMESSAGE\' | translate }}\n </th>\n <th md-column md-order-by="closed">\n {{ \'CHAT.STATUS\' | translate }}\n </th>\n <th md-column>\n {{ \'CHAT.AGENT\' | translate }}\n </th>\n <th md-column md-order-by="tag">\n {{ \'CHAT.TAGS\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="interaction" md-select-id="id" ng-repeat="interaction in vm_dc.chatWebsiteInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td md-cell>\n {{interaction.id}}\n </td>\n <td md-cell class="no-padding">\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="user in interaction.Users">{{ user.fullname | translate }}\n <span ng-if="!$last">, </span>\n </span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg md-primary-bg" layout-margin>{{ interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.attach">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td md-cell privacy ng-cloak>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'margin-bottom-0\' : interaction.contactInfo}" layout-margin>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text margin-top-0" layout-margin>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td md-cell>\n {{ interaction.createdAt | formatdate }}\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}"></md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="text-truncate">{{ interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n </td>\n <td md-cell>\n <span ng-if="interaction.closed === 0" class="green-fg">\n {{ \'CHAT.OPENED\' | translate }}\n <span ng-if="interaction.substatus">\n - {{ interaction.substatus }}\n </span>\n </span>\n <span ng-if="interaction.closed === 1" class="red-fg">\n {{ \'CHAT.CLOSED\' | translate }}\n <span ng-if="interaction.disposition">\n - {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}\n </span>\n <md-tooltip class="multiline">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n </span>\n </td>\n\n <td md-cell>\n {{interaction.Owner.name}}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CHAT.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm_dc.spychatInteraction($event, interaction)" translate="CHAT.SPYINTERACTION">\n Spy Interaction\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.role === \'admin\' || (vm_dc.userProfile.downloadOmnichannelInteractions && vm_dc.userProfile.downloadAttachments)">\n <md-button class="md-primary" ng-click="vm_dc.chatInteractionDownload(interaction, $event, true)" translate="CHAT.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.role === \'admin\' || vm_dc.userProfile.downloadOmnichannelInteractions">\n <md-button class="md-primary" ng-click="vm_dc.chatInteractionDownload(interaction, $event)" translate="CHAT.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(interaction, $event)" translate="CHAT.DELETE_INTERACTION">\n Delete Interaction\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.chatWebsiteInteractions.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="CHAT.NO_INTERACTION_AVAILABLE">No interaction available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.chatWebsiteInteractions.count}}" md-on-paginate="vm_dc.getChatWebsiteInteractions" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.OFFLINEMESSAGES">OFFLINEMESSAGES</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatWebsite-detail-form-container offlinemessages md-background-bg md-whiteframe-1dp">\n <div ng-controller="ChatWebsiteOfflineMessagesController as vm_dc" ng-init="vm_dc.init(vm.chatWebsite, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedChatWebsiteOfflineMessages.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CHAT.OFFLINEMESSAGES">OfflineMessages</span>\n <ms-search-bar on-search="vm_dc.getChatWebsiteOfflineMessages()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedChatWebsiteOfflineMessages.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedChatWebsiteOfflineMessages.length}} {{vm_dc.selectedChatWebsiteOfflineMessages.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedChatWebsiteOfflineMessages" csv-label="true" filename="chatWebsites.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedChatWebsiteOfflineMessages($event)" aria-label="delete selected" translate translate-attr-label="CHAT.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedChatWebsiteOfflineMessages" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getChatWebsiteOfflineMessages">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'CHAT.ID\' | translate }}\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column>\n {{ \'CHAT.CONTACT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'CHAT.CREATED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="offlineMessage" md-select-id="id" ng-repeat="offlineMessage in vm_dc.chatWebsiteOfflineMessages.rows">\n <td md-cell>\n {{offlineMessage.id}}\n </td>\n <td md-cell class="no-padding">\n <div ng-if="offlineMessage.Attachments.length > 0">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td md-cell privacy ng-cloak>\n {{offlineMessage.Contact.firstName}}\n </td>\n <td md-cell>\n {{ offlineMessage.createdAt | formatdate }}\n </td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CHAT.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm_dc.showOfflineMessageChatWebsiteOfflineMessage($event, offlineMessage)" translate="CHAT.SHOW_OFFLINEMESSAGE">\n SHOW OfflineMessage\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(offlineMessage, $event)" translate="CHAT.DELETE_OFFLINEMESSAGE">\n Delete OfflineMessage\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.chatWebsiteOfflineMessages.rows.length">\n <td md-cell colspan="8">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="CHAT.NO_OFFLINEMESSAGE_AVAILABLE">No offlinemessage available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.chatWebsiteOfflineMessages.count}}" md-on-paginate="vm_dc.getChatWebsiteOfflineMessages" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/chat/views/realtime/agents/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CHAT.AGENTS">Agents</span>\n <div flex></div>\n <ms-search-bar on-search="vm.onInit()" query="vm.query" on-collapse="vm.query.filter = undefined; vm.onInit()" debounce="300"></ms-search-bar>\n <md-select ng-model="vm.query.globalStatusFilter" class="md-caption" ng-change="vm.query.pauseTypeFilter = \'\'; vm.onInit()">\n <md-option ng-value="\'\'">{{ \'CHAT.ALL\' | translate }}</md-option>\n <md-option value="pause">{{ \'CHAT.PAUSE\' | translate }}</md-option>\n <md-option value="*pause">{{ \'CHAT.PARTIALPAUSE\' | translate }}</md-option>\n <md-option value="busy">{{ \'CHAT.BUSY\' | translate }}</md-option>\n <md-option value="idle">{{ \'CHAT.IDLE\' | translate }}</md-option>\n </md-select>\n <md-select ng-if="vm.isPause(vm.query.globalStatusFilter)" ng-model="vm.query.pauseTypeFilter" class="md-caption" ng-change="vm.onInit()">\n <md-option ng-value="\'\'">All</md-option>\n <md-option value="DEFAULT PAUSE">DEFAULT PAUSE</md-option>\n <md-option value="ACW">ACW</md-option>\n <md-option value="LOGININPAUSE">LOGININPAUSE</md-option>\n <md-option value="Auto-Pause">AUTOPAUSE</md-option>\n <md-option ng-value="pause.name" ng-repeat="pause in vm.pauses.rows">{{pause.name}}</md-option>\n </md-select>\n </div>\n</md-toolbar>\n\x3c!-- AGENT TABLE --\x3e\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.order" md-on-reorder="vm.onInit">\n <tr md-row border="1">\n <th class="bv text-center" colspan="5">{{ \'CHAT.AGENT\' | translate }}</th>\n <th class="bv bl text-center" colspan="2">{{ \'VOICE.VOICE\' | translate }}</th>\n <th ng-if="vm.license.chat" class="bv bl text-center" colspan="2">{{ \'CHAT.CHAT\' | translate }}</th>\n <th ng-if="vm.license.mail" class="bv bl text-center" colspan="2">{{ \'MAIL.MAIL\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="bv bl text-center" colspan="2">{{ \'SMS.SMS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="bv bl text-center" colspan="2">\n {{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="bv bl text-center" colspan="2">\n {{ \'WHATSAPP.WHATSAPP\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n </tr>\n <tr md-row>\n <th class="bl" colspan="2" md-column md-order-by="fullname">\n {{ \'CHAT.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">\n {{ \'CHAT.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">\n {{ \'CHAT.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">\n {{ \'CHAT.PAUSE_TIME\' | translate }}</th>\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\n <th ng-if="vm.license.chat" class="bl text-center">{{ \'CHAT.STATUS\' | translate }}</th>\n <th ng-if="vm.license.chat" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'CHAT.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.mail" class="bl text-center">{{ \'MAIL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.mail" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'MAIL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.messaging" class="bl text-center">{{ \'SMS.STATUS\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'SMS.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.openchannel" class="bl text-center">{{ \'OPENCHANNEL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'OPENCHANNEL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.fax" class="bl text-center">{{ \'FAX.STATUS\' | translate }}</th>\n <th ng-if="vm.license.fax" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'FAX.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.whatsapp" class="bl text-center">{{ \'WHATSAPP.STATUS\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'WHATSAPP.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.order.length">\n <td md-cell colspan="19">\n <div layout="row" layout-align="center center">\n <span>{{ \'CHAT.NO_AGENT_ONLINE\' | translate }}</span>\n </div>\n </td>\n </tr>\n <tr md-select="vm.agents[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td class="bt padding-5">\n <div layout="row" layout-align="start center">\n <img class="avatar" ng-src="{{vm.agents[value].userpic && \'api/users/\'+vm.agents[value].id+\'/avatar\' || \'assets/images/avatars/profile.png\'}}">\n <div layout="column">\n <span>{{vm.agents[value].fullname}}</span>\n <span>{{vm.agents[value].internal}}</span>\n </div>\n </div>\n </td>\n <td class="bt padding-5">\n <div layout="row" layout-align="start center" ng-if="vm.license.screenrecording && (vm.agents[value].phoneBarEnableScreenRecordingByAgent || vm.agents[value].phoneBarEnableAutomaticScreenRecording)">\n <div class="column" ng-if="vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: green; font-size: 36px;" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'CHAT.TOOLTIP_SCREENRECORDING_ON\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n <div class="column" ng-if="!vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: gray" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'CHAT.TOOLTIP_SCREENRECORDING_OFF\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n </div>\n </td>\n <td class="bt">\n'+" <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','busy':'indigo-100-bg','*pause':'amber-50-bg','pause':'amber-200-bg'}[vm.agents[value].globalStatus]\">{{\n vm.isPause(vm.agents[value].globalStatus) ? '' : vm.agents[value].globalStatus | uppercase }}\n {{ vm.isPause(vm.agents[value].globalStatus) ? (vm.isPartialPause(vm.agents[value].globalStatus) ?\n '*'+vm.agents[value].pauseType || 'DEFAULT PAUSE' : vm.agents[value].pauseType || 'DEFAULT PAUSE') :\n ''}}</span>\n </td>\n <td class=\"bt custom-column\">\n <timer start-time=\"vm.agents[value].lastLoginAt\"></timer>\n </td>\n <td class=\"bt custom-column\">\n <timer ng-if=\"vm.isPause(vm.agents[value].globalStatus) || vm.isPartialPause(vm.agents[value].globalStatus)\" start-time=\"vm.agents[value].lastPauseAt\"></timer>\n </td>\n <td class=\"bt bl\">\n <div layout=\"row\">\n <span ng-if=\"!vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','talking':'indigo-100-bg','ringing':'orange-400-bg','pause':'amber-200-bg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].voiceStatus | uppercase }}</span>\n <span ng-if=\"vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5 orange-400-bg\">ONHOLD</span>\n </div>\n </td>\n <td class=\"bt bl\">\n <div layout=\"column\">\n <span ng-if=\"vm.agents[value].queue\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].queue }}</span>\n <span ng-if=\"vm.agents[value].destconnectedlinenum\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\" privacy ng-cloak>{{\n vm.agents[value].destconnectedlinenum }}</span>\n <span ng-if=\"vm.agents[value].routealias\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].routealias }}</span>\n <span class=\"padding-5\" ng-if=\"vm.agents[value].queue || vm.agents[value].destconnectedlinenum\">\n <timer start-time=\"vm.agents[value].voiceStatusTime\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">\n </timer>\n </span>\n </div>\n </td>\n <td class=\"bt bl\" ng-if=\"vm.license.chat\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].chatStatus]\">{{\n vm.agents[value].chatStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td md-number class=\"bt text-center font-size-20\" ng-if=\"vm.license.chat\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].chatStatus]\">\n {{ vm.agents[value].chatCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.mail\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].mailStatus]\">{{\n vm.agents[value].mailStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.mail\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].mailStatus]\">\n {{ vm.agents[value].mailCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.messaging\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].smsStatus]\">{{\n vm.agents[value].smsStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.messaging\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].smsStatus]\">\n {{ vm.agents[value].smsCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.openchannel\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].openchannelStatus]\">{{\n vm.agents[value].openchannelStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.openchannel\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].openchannelStatus]\">\n {{ vm.agents[value].openchannelCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.fax\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].faxStatus]\">{{\n vm.agents[value].faxStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.fax\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].faxStatus]\">\n {{ vm.agents[value].faxCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.whatsapp\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].whatsappStatus]\">{{\n vm.agents[value].whatsappStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.whatsapp\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].whatsappStatus]\">\n {{ vm.agents[value].whatsappCurrentCapacity }}</td>\n <td class=\"bl bt padding-5 text-center\" ng-if=\"vm.crudPermissions.canEdit\">\n <md-menu>\n <md-button class=\"md-icon-button\" aria-label=\"More\" translate translate-attr-aria-label=\"STAFF.MORE\" ng-click=\"$mdOpenMenu($event)\">\n <md-icon md-font-icon=\"icon-dots-vertical\"></md-icon>\n </md-button>\n <md-menu-content width=\"4\">\n <md-menu-item>\n <md-button ng-click=\"vm.logout(vm.agents[value], $event)\" translate=\"CHAT.LOGOUT\">\n Logout\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click=\"vm.queueAdd(vm.agents[value], $event)\" translate=\"CHAT.AGENTADD_QUEUE\">\n Add Agent In Queue\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.license.screenrecording && vm.agents[value].phoneBarEnableScreenRecordingByAgent\">\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"CHAT.SCREENRECORDING\">Screen Recording\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if=\"!vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], true)\"><em translate=\"CHAT.START_SCREENRECORDING\">Start\n Screen Recording</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], false)\"><em translate=\"CHAT.STOP_SCREENRECORDING\">Stop\n Screen Recording</em></md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item>\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"CHAT.PAUSE\">Pause</md-button>\n <md-menu-content>\n <md-menu-item>\n <md-button ng-disabled=\" vm.agents[value].voicePause && 'DEFAULT PAUSE' === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value])\"><em translate=\"CHAT.DEFAULT_PAUSE\">Default\n Pause</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.pauses.rows.length\" ng-repeat=\"pause in vm.pauses.rows\">\n <md-button ng-disabled=\"vm.agents[value].voicePause && pause.name === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value], pause.name)\">{{pause.name}}\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.isPause(vm.agents[value].globalStatus)\">\n <md-button ng-click=\"vm.unPause(vm.agents[value])\" translate=\"CHAT.UNPAUSE\">\n Unpause\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label=\"{page: '{{'CHAT.PAGE' | translate}}:', rowsPerPage: '{{'CHAT.ROWSPERPAGE' | translate}}:', of: '{{'CHAT.OF' | translate}}'}\" md-limit=\"vm.query.limit\" md-limit-options=\"[10, 15, 20, 50, 100, 250]\" md-page=\"vm.query.page\" md-total=\"{{vm.filteredAgents.length}}\" md-on-paginate=\"vm.onInit\" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e"),e.put("app/main/apps/chat/views/realtime/queues/view.html",'<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CHAT.QUEUES">Queues</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getQueues">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'CHAT.NAME\' | translate }}</th>\n <th md-column>{{ \'CHAT.LOGGED_IN\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'CHAT.PAUSED\' | translate }}</th>\n <th md-column>{{ \'CHAT.WAITING\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.queues.count > 0">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="CHAT.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="queue" md-select-id="id" ng-repeat="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedIn }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CHAT.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.editQueue($event, queue)" translate="CHAT.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.addAgent($event, queue)" translate="CHAT.AGENTSADD_QUEUE">\n Add Agents to queue\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),e.put("app/main/apps/chat/views/realtime/realtime.html",'<div id="realtime" class="page-layout simple tabbed" layout="column" ng-cloak>\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.AGENTS">Agents</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.QUEUES">Queues</span>\n </md-tab-label>\n </md-tab>\n </md-tabs>\n\n <md-card ui-view></md-card>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/contactmanager/views/companies/companies.html",'<div id="companies" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-account-circle" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="CONTACTMANAGER.COMPANIES">Companies</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="CONTACTMANAGER.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedCompanies.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedCompanies =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="CONTACTMANAGER.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-companies-count">\n <span>{{vm.selectedCompanies.length}}</span>\n <span translate="CONTACTMANAGER.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="CONTACTMANAGER.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllCompanies()" translate="CONTACTMANAGER.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectCompanies()" translate="CONTACTMANAGER.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedCompanies" csv-label="true" filename="companies.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedCompanies($event)" aria-label="delete selected" translate translate-attr-label="CONTACTMANAGER.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- COMPANY TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedCompanies" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getCompanies">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'CONTACTMANAGER.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'CONTACTMANAGER.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'CONTACTMANAGER.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.companies.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="company" md-select-id="id" ng-repeat="company in vm.companies.rows">\n <td md-cell ng-if="company.userpic"><img class="avatar" alt="{{company.name}}" ng-src="api/users/{{company.id}}/avatar" /></td>\n <td md-cell ng-if="!company.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{company.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(company, ev) : vm.createOrEditCompany($event, company)" md-cell class="id ">{{company.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(company, ev) : vm.createOrEditCompany($event, company)" md-cell class="name ">{{company.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(company, ev) : vm.createOrEditCompany($event, company)" md-cell class="description ">{{company.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CONTACTMANAGER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(company, $event )" translate="CONTACTMANAGER.EDIT_COMPANY">\n Edit Company\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotocontactsgoto(company, $event )" translate="CONTACTMANAGER.GOTOCONTACTS_COMPANY">\n goToContacts Company\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(company, $event )" translate="CONTACTMANAGER.DELETE_COMPANY">\n Delete Company\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.companies.count}}" md-on-paginate="vm.getCompanies" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / COMPANY TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD COMPANY BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-company-button" ng-click="vm.createOrEditCompany($event)" aria-label="add company" translate translate-attr-aria-label="CONTACTMANAGER.ADD_COMPANY">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD COMPANY BUTTON --\x3e\n</div>'),e.put("app/main/apps/contactmanager/views/companies/create/dialog.html",'<md-dialog class="company-dialog" aria-label="New Company">\n <form name="companyForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.company.name" ng-required="true" autofocus>\n\n <div ng-messages="companyForm[\'name\'].$error" ng-show="companyForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.company.phone">\n\n <div ng-messages="companyForm[\'phone\'].$error" ng-show="companyForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.VAT">Vat</label>\n <input type="text" name="vat" ng-model="vm.company.vat">\n\n <div ng-messages="companyForm[\'vat\'].$error" ng-show="companyForm[\'vat\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.VAT_REQUIRED">Vat field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.FAX">Fax</label>\n <input type="text" name="fax" ng-model="vm.company.fax">\n\n <div ng-messages="companyForm[\'fax\'].$error" ng-show="companyForm[\'fax\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.FAX_REQUIRED">Fax field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.COMPANYID">CompanyId</label>\n <input type="text" name="companyId" ng-model="vm.company.companyId">\n\n <div ng-messages="companyForm[\'companyId\'].$error" ng-show="companyForm[\'companyId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.COMPANYID_REQUIRED">CompanyId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.TYPE">Type</label>\n <input type="text" name="type" ng-model="vm.company.type">\n\n <div ng-messages="companyForm[\'type\'].$error" ng-show="companyForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.WEBSITE">Website</label>\n <input type="text" name="website" ng-model="vm.company.website" md-maxlength="255">\n\n <div ng-messages="companyForm[\'website\'].$error" ng-show="companyForm[\'website\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.WEBSITE_REQUIRED">Website field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CONTACTMANAGER.ERRORS.WEBSITE_MAX_LENGTH" translate-values=\'{max: 255}\'>Website must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.EMAIL_DOMAIN">Email_Domain</label>\n <input type="text" name="emailDomain" ng-model="vm.company.emailDomain">\n\n <div ng-messages="companyForm[\'emailDomain\'].$error" ng-show="companyForm[\'emailDomain\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.EMAIL_DOMAIN_REQUIRED">Email_Domain field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.company.email">\n\n <div ng-messages="companyForm[\'email\'].$error" ng-show="companyForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="email">\n <span translate="CONTACTMANAGER.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.company.description">\n\n <div ng-messages="companyForm[\'description\'].$error" ng-show="companyForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newCompany" ng-click="vm.saveCompany()" class="send-button md-accent md-raised" ng-disabled="companyForm.$invalid || companyForm.$pristine" aria-label="SAVE" translate="CONTACTMANAGER.SAVE" translate-attr-aria-label="CONTACTMANAGER.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newCompany" ng-click="vm.addNewCompany()" class="send-button md-accent md-raised" ng-disabled="companyForm.$invalid" aria-label="ADD" translate="CONTACTMANAGER.ADD_COMPANY" translate-attr-aria-label="CONTACTMANAGER.ADD_COMPANY">\n ADD COMPANY\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newCompany" ng-click="vm.deleteCompany($event)" aria-label="DELETE" translate translate-attr-aria-label="CONTACTMANAGER.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="CONTACTMANAGER.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/companies/edit/view.html",'<div id="contactmanager-company" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-companies-button md-icon-button" aria-label="Go to companies" ng-click="vm.gotoCompanies()" translate translate-attr-aria-label="CONTACTMANAGER.GO_TO_COMPANIES">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="company-image" hide-xs>\n <img ng-src="assets/images/business/companies.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.company.id}}\n <span ng-if="vm.company.name">{{vm.company.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="CONTACTMANAGER.CREATED_AT"></span> <span>{{vm.company.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.gotogoto(vm.company, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n <md-tooltip><span translate="CONTACTMANAGER.GOTO_COMPANY"></span></md-tooltip>\n <md-icon md-font-icon="icon-forward"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveCompany()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (addressForm.$invalid) || (shipmentAddressForm.$invalid)" translate="CONTACTMANAGER.SAVE" translate-attr-aria-label="CONTACTMANAGER.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="CONTACTMANAGER.GENERAL">GENERAL</span>\n </md-tab-label>\n <md-tab-body>\n <div class="company-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CONTACTMANAGER.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.company.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.company.phone" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'phone\'].$error" ng-show="generalForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.VAT">Vat</label>\n <input type="text" name="vat" ng-model="vm.company.vat" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'vat\'].$error" ng-show="generalForm[\'vat\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.VAT_REQUIRED">Vat field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.FAX">Fax</label>\n <input type="text" name="fax" ng-model="vm.company.fax" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'fax\'].$error" ng-show="generalForm[\'fax\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.FAX_REQUIRED">Fax field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.COMPANYID">CompanyId</label>\n <input type="text" name="companyId" ng-model="vm.company.companyId" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'companyId\'].$error" ng-show="generalForm[\'companyId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.COMPANYID_REQUIRED">CompanyId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.TYPE">Type</label>\n <input type="text" name="type" ng-model="vm.company.type" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'type\'].$error" ng-show="generalForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.WEBSITE">Website</label>\n <input type="text" name="website" ng-model="vm.company.website" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'website\'].$error" ng-show="generalForm[\'website\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.WEBSITE_REQUIRED">Website field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CONTACTMANAGER.ERRORS.WEBSITE_MAX_LENGTH" translate-values=\'{max: 255}\'>Website must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.EMAIL_DOMAIN">Email_Domain</label>\n <input type="text" name="emailDomain" ng-model="vm.company.emailDomain" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'emailDomain\'].$error" ng-show="generalForm[\'emailDomain\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.EMAIL_DOMAIN_REQUIRED">Email_Domain field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.company.email" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'email\'].$error" ng-show="generalForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="email">\n <span translate="CONTACTMANAGER.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.company.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CONTACTMANAGER.ADDRESS">ADDRESS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="company-detail-form-container address md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CONTACTMANAGER.ADDRESS">ADDRESS</div>\n </div>\n <form name="addressForm" novalidate>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.STREET">Street</label>\n <input type="text" name="street" ng-model="vm.company.street" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="addressForm[\'street\'].$error" ng-show="addressForm[\'street\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.STREET_REQUIRED">Street field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.POSTAL_CODE">Postal_Code</label>\n <input type="text" name="postalCode" ng-model="vm.company.postalCode" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="addressForm[\'postalCode\'].$error" ng-show="addressForm[\'postalCode\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.POSTAL_CODE_REQUIRED">Postal_Code field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.CITY">City</label>\n <input type="text" name="city" ng-model="vm.company.city" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="addressForm[\'city\'].$error" ng-show="addressForm[\'city\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.CITY_REQUIRED">City field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.COUNTRY">Country</label>\n <input type="text" name="country" ng-model="vm.company.country" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="addressForm[\'country\'].$error" ng-show="addressForm[\'country\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.COUNTRY_REQUIRED">Country field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CONTACTMANAGER.SHIPMENTADDRESS">SHIPMENTADDRESS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="company-detail-form-container shipmentaddress md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CONTACTMANAGER.SHIPMENTADDRESS">SHIPMENTADDRESS</div>\n </div>\n <form name="shipmentAddressForm" novalidate>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.STREET">Street</label>\n <input type="text" name="sStreet" ng-model="vm.company.sStreet" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="shipmentAddressForm[\'sStreet\'].$error" ng-show="shipmentAddressForm[\'sStreet\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.STREET_REQUIRED">Street field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.POSTAL_CODE">Postal_Code</label>\n <input type="text" name="sPostalCode" ng-model="vm.company.sPostalCode" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="shipmentAddressForm[\'sPostalCode\'].$error" ng-show="shipmentAddressForm[\'sPostalCode\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.POSTAL_CODE_REQUIRED">Postal_Code field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.CITY">City</label>\n <input type="text" name="sCity" ng-model="vm.company.sCity" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="shipmentAddressForm[\'sCity\'].$error" ng-show="shipmentAddressForm[\'sCity\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.CITY_REQUIRED">City field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.COUNTRY">Country</label>\n <input type="text" name="sCountry" ng-model="vm.company.sCountry" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="shipmentAddressForm[\'sCountry\'].$error" ng-show="shipmentAddressForm[\'sCountry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.COUNTRY_REQUIRED">Country field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/contactmanager/views/contacts/contacts.html",'<div id="contacts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-account-multiple" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="CONTACTMANAGER.CONTACTS">Contacts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="CONTACTMANAGER.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedContacts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n <div class="close-button-wrapper" ng-click="vm.selectedContacts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="CONTACTMANAGER.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n <div>\n <span class="selected-contacts-count">\n <span>{{vm.selectedContacts.length}}</span>\n <span translate="CONTACTMANAGER.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="CONTACTS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllContacts()" translate="CONTACTMANAGER.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectContacts()" translate="CONTACTMANAGER.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedContacts" csv-label="true" filename="contacts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm.crudPermissions.canDelete" class="md-icon-button" ng-click="vm.deleteSelectedContacts($event)" aria-label="delete selected" translate translate-attr-label="CONTACTS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n <div layout="row">\n <div class="column" flex="20">\n <md-card>\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm.selectedList = null; vm.selectedCompany = null; vm.selectedTags = []">\n <md-icon md-font-icon="icon-refresh"></md-icon>{{ \'CONTACTMANAGER.ALL_CONTACTS\' | translate }}\n </button>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.SELECT_LIST">Select a list</label>\n <md-select placeholder="Select a list" ng-model="vm.selectedList" ng-disabled="vm.lists.count === 0">\n <md-option ng-value="null"><em translate="CONTACTMANAGER.ALL">All</em></md-option>\n <md-option ng-value="list.id" ng-repeat="list in vm.lists.rows">{{list.name}}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.SELECT_COMPANY">Select a company</label>\n <md-select placeholder="Select a company" flex="100" ng-model="vm.selectedCompany" ng-disabled="vm.companies.count === 0">\n <md-option ng-value="null"><em translate="CONTACTMANAGER.ALL">All</em></md-option>\n <md-option ng-value="company.id" ng-repeat="company in vm.companies.rows">{{company.name}}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.SELECT_TAGS">Select one or more tags</label>\n <md-select multiple placeholder="Select one or more tags" flex="100" ng-model="vm.query.tag" ng-change="vm.getContacts()">\n <md-option ng-value="tag.id" ng-repeat="tag in vm.tags.rows">{{tag.name}}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n\n \x3c!-- USER TABLE --\x3e\n <md-card flex="80">\n <md-table-container ng-init="vm.getAssignedCompanies()">\n <table md-table md-row-select multiple ng-model="vm.selectedContacts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getContacts">\n <tr md-row>\n <th md-column md-order-by="id">ID</th>\n <th md-column md-order-by="firstName">{{\'CONTACTMANAGER.FULLNAME\' | translate}}</th>\n <th md-column md-order-by="phone">{{\'CONTACTMANAGER.PHONE\' | translate}}</th>\n <th md-column md-order-by="email">{{\'CONTACTMANAGER.EMAIL\' | translate}}</th>\n <th md-column md-order-by="createdAt">{{\'CONTACTMANAGER.CREATED_AT\' | translate}}</th>\n <th md-column md-order-by="ListId">{{\'CONTACTMANAGER.LIST\' | translate}}</th>\n <th md-column md-order-by="CompanyId">{{\'CONTACTMANAGER.COMPANY\' | translate}}</th>\n <th md-column md-order-by="tags">{{\'CONTACTMANAGER.TAGS\' | translate}}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.contacts.rows.length">\n <td md-cell colspan="8">\n <div layout="row" layout-align="center center">\n <span translate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="contact" md-select-id="id" ng-repeat="contact in vm.contacts.rows">\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : vm.createOrEditContact($event, contact)" md-cell class="id">{{contact.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : vm.createOrEditContact($event, contact)" md-cell class="firstName" privacy ng-cloak>{{contact.firstName}} {{contact.lastName}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : vm.createOrEditContact($event, contact)" md-cell class="phone" privacy ng-cloak>{{contact.phone}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : vm.createOrEditContact($event, contact)" md-cell class="email" privacy ng-cloak>{{contact.email}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : vm.createOrEditContact($event, contact)" md-cell class="createdAt">{{contact.createdAt | date:\'medium\'}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : vm.createOrEditContact($event, contact)" md-cell class="list">{{vm.listsMap[contact.ListId]}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : vm.createOrEditContact($event, contact)" md-cell class="company">{{vm.companiesMap[contact.CompanyId]}}</td>\n <td md-cell class="tag">\n <div ng-if="contact.Tags.length">\n <div ng-if="contact.Tags.length == 1" layout="column" layout-align="center center">\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': contact.Tags[0].color }"></md-icon>\n <span class="text-truncate">{{contact.Tags[0].name}}</span>\n </div>\n <div ng-if="contact.Tags.length > 1" layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in contact.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag"></md-icon>\n </div>\n </div>\n </td>\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CONTACTMANAGER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editdialog(contact, ev)" translate="CONTACTMANAGER.EDIT_CONTACT">\n Edit Contact\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.mergeContact(ev, contact)" translate="CONTACTMANAGER.MERGE_CONTACT">\n Merge Contact\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.duplicateContact(ev, contact)" translate="CONTACTMANAGER.DUPLICATE_CONTACT">\n Duplicate Contact\n </md-button>\n </md-menu-item>\n <md-menu-divider ng-if="vm.crudPermissions.canEdit && vm.crudPermissions.canDelete">\n </md-menu-divider>\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteconfirm(contact, ev)" translate="CONTACTMANAGER.DELETE_CONTACT">\n Delete Contact\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.contacts.count}}" md-on-paginate="vm.getContacts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / USER TABLE --\x3e\n </div>\n </div>\n \x3c!-- / MAIN --\x3e\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD USER BUTTON --\x3e\n <md-fab-speed-dial id="add-contact-button" ng-if="vm.crudPermissions.canEdit" ng-hide="vm.options.hidden" md-direction="up" md-open="vm.options.isOpen" class="md-scale md-fab" ng-class="{ \'md-hover-full\': vm.options.hover }" ng-mouseenter="vm.options.isOpen=true" ng-mouseleave="vm.options.isOpen=false">\n <md-fab-trigger>\n <md-button aria-label="menu" class="md-fab md-accent">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </md-fab-trigger>\n <md-fab-actions>\n <md-button class="md-fab md-mini md-warn" flow-btn flow-init="vm.ngFlowOptions" flow-files-submitted="$flow.upload()" flow-file-success="vm.importContacts($file, $message, $flow)" flow-file-added="vm.fileAdded($file)" aria-label="Select File" translate translate-attr-aria-label="CONTACTMANAGER.IMPORT_CONTACTS">\n <md-tooltip md-direction="left" md-visible="tooltipVisible" md-autohide="false">\n {{\'CONTACTMANAGER.IMPORT_CONTACTS\' | translate}}\n </md-tooltip>\n <md-icon md-font-icon="icon-upload"></md-icon>\n </md-button>\n <md-button class="md-fab md-mini md-accent" ng-click="vm.createOrEditContact($event)" aria-label="add contact" translate translate-attr-aria-label="CONTACTMANAGER.ADD_CONTACT">\n <md-tooltip md-direction="left" md-visible="tooltipVisible" md-autohide="false">\n {{\'CONTACTMANAGER.ADD_CONTACT\' | translate}}\n </md-tooltip>\n <md-icon md-font-icon="icon-account-plus"></md-icon>\n </md-button>\n </md-fab-actions>\n </md-fab-speed-dial>\n \x3c!-- / ADD USER BUTTON --\x3e\n</div>'),e.put("app/main/apps/contactmanager/views/contacts/create/dialog.html",'<md-dialog class="cm-contact-dialog" aria-label="New Contact">\n <form name="contactForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.FIRSTNAME">First name</label>\n <input name="firstName" ng-model="vm.contact.firstName" required md-autofocus privacy="!vm.crudPermissions.canEdit" ng-cloak>\n\n <div ng-messages="contactForm.firstName.$error" ng-show="contactForm.firstName.$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.FIRSTNAME_REQUIRED">First name field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.LASTNAME">Last name</label>\n <input name="lastName" ng-model="vm.contact.lastName" privacy="!vm.crudPermissions.canEdit" ng-cloak>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.PHONE">Phone</label>\n <input name="phone" ng-model="vm.contact.phone" privacy="!vm.crudPermissions.canEdit" ng-cloak>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.EMAIL">Email</label>\n <input name="email" type="email" ng-model="vm.contact.email" privacy="!vm.crudPermissions.canEdit" ng-cloak>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.MOBILE">Mobile</label>\n <input name="mobile" ng-model="vm.contact.mobile" privacy="!vm.crudPermissions.canEdit" ng-cloak>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.FAX">Fax</label>\n <input name="fax" ng-model="vm.contact.fax" privacy="!vm.crudPermissions.canEdit" ng-cloak>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.LIST">List</label>\n <md-select name="list" ng-model="vm.contact.ListId" ng-disabled="vm.contact.id && vm.contact.ListId" ng-init="vm.getCustomFields(vm.contact.ListId)" ng-change="vm.getCustomFields(vm.contact.ListId)" required>\n <md-optgroup label="Lists">\n <md-option ng-value="list.id" ng-repeat="list in vm.lists.rows">{{list.name}}</md-option>\n <md-option ng-value="null"><em translate="CONTACTMANAGER.NONE">None</em></md-option>\n </md-optgroup>\n </md-select>\n\n <div ng-messages="contactForm.list.$error" ng-show="contactForm.list.$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div ng-repeat="customField in vm.customFields.rows" class="md-block" ng-switch="customField.type">\n <div ng-switch-when="datetime">\n <label>{{customField.alias}}</label>\n\n <div ng-init="vm.contact[\'cf_\' + customField.id] = vm.getDateFromString(vm.contact[\'cf_\' + customField.id])">\n <mdp-date-picker mdp-open-on-click ng-required="customField.required" mdp-format="YYYY-MM-DD" ng-model="vm.contact[\'cf_\' + customField.id]"></mdp-date-picker>\n <mdp-time-picker mdp-open-on-click mdp-placeholder="Time" ng-required="customField.required" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.contact[\'cf_\' + customField.id]">\n </mdp-time-picker>\n </div>\n </div>\n\n <div ng-switch-when="select">\n <label>{{customField.alias}}</label>\n\n <md-select ng-model="vm.contact[\'cf_\' + customField.id]" ng-required="customField.required">\n <md-option ng-repeat="value in customField.values" ng-value="value.value">{{value.value}}</md-option>\n <md-option ng-value="null"><em translate="CONTACTMANAGER.NONE">None</em></md-option>\n </md-select>\n </div>\n\n <div ng-switch-when="switch">\n <md-switch aria-label="{{customField.alias}}" ng-model="vm.contact[\'cf_\' + customField.id]" ng-true-value="1" ng-false-value="0">\n {{customField.alias}}\n </md-switch>\n </div>\n\n <md-input-container ng-switch-default>\n <label>{{customField.alias}}</label>\n\n <input type="{{customField.type}}" ng-model="vm.contact[\'cf_\' + customField.id]" ng-required="customField.required">\n </md-input-container>\n </div>\n\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.COMPANY">Company</label>\n <md-select name="company" ng-model="vm.contact.CompanyId">\n <md-option ng-value="company.id" ng-repeat="company in vm.companies.rows" ng-hide="!vm.contact.CompanyId && company.canSelect === false" ng-disabled="company.canSelect === false">\n {{company.name}}</md-option>\n </md-select>\n </md-input-container>\n\n <div ng-if="!vm.allFields" layout="row" layout-align="center center">\n <md-button class="md-accent" ng-click="vm.allFields = true" translate="CONTACTMANAGER.SHOW_ALL_FIELDS">Show All\n Fields</md-button>\n </div>\n\n <md-input-container class="md-block" ng-if="vm.allFields" flex-gt-sm="" ng-init="vm.contact.dateOfBirth = vm.getDateFromString(vm.contact.dateOfBirth)">\n <label translate="CONTACTMANAGER.DATE_OF_BIRTH">Date of Birth</label>\n <mdp-date-picker mdp-open-on-click mdp-format="YYYY-MM-DD" name="dateOfBirth" ng-model="vm.contact.dateOfBirth">\n </mdp-date-picker>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.allFields">\n <label translate="CONTACTMANAGER.COUNTRY">Country</label>\n <input type="text" name="country" ng-model="vm.contact.country">\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.allFields">\n <label translate="CONTACTMANAGER.CITY">City</label>\n <input type="text" name="city" ng-model="vm.contact.city">\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.allFields">\n <label translate="CONTACTMANAGER.STREET">Street</label>\n <input type="text" name="street" ng-model="vm.contact.street">\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.allFields">\n <label translate="CONTACTMANAGER.POSTAL_CODE">Postal Code</label>\n <input type="text" name="postalCode" ng-model="vm.contact.postalCode">\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.allFields">\n <label translate="CONTACTMANAGER.NOTES">Notes</label>\n <input type="text" name="description" ng-model="vm.contact.description">\n </md-input-container>\n\n <div ng-if="vm.allFields" layout="row" layout-align="center center">\n <md-button class="md-accent" ng-click="vm.allFields = false" translate="CONTACTMANAGER.FEWER_FIELDS">Fewer\n Fields</md-button>\n </div>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-if="!vm.newContact" ng-click="vm.saveContact()" class="send-button md-accent md-raised" ng-disabled="contactForm.$invalid || contactForm.$pristine" aria-label="SAVE" translate="CONTACTMANAGER.SAVE" translate-attr-aria-label="CONTACTMANAGER.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.newContact" ng-click="vm.addNewContact()" class="send-button md-accent md-raised" ng-disabled="contactForm.$invalid || contactForm.$pristine" aria-label="ADD" translate="CONTACTMANAGER.ADD_CONTACT" translate-attr-aria-label="CONTACTMANAGER.ADD_CONTACT">\n ADD CONTACT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newContact" ng-click="vm.deleteContact($event)" aria-label="DELETE" translate translate-attr-aria-label="CONTACTMANAGER.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="CONTACTMANAGER.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/contacts/duplicate/dialog.html",'<md-dialog class="cm-contact-dialog" aria-label="{{ \'CONTACTMANAGER.DUPLICATE_CONTACT\' | translate }}">\n <form name="contactForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.LIST">List</label>\n <md-select name="list" ng-model="vm.contact.ListId">\n <md-option ng-value="list.id" ng-repeat="list in vm.lists.rows">{{list.name}}</md-option>\n </md-select>\n\n <div ng-messages="contactForm.list.$error" ng-show="contactForm.list.$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.addNewContact()" class="send-button md-accent md-raised" ng-disabled="contactForm.$invalid" aria-label="ADD" translate="CONTACTMANAGER.ADD_CONTACT" translate-attr-aria-label="CONTACTMANAGER.ADD_CONTACT">\n ADD CONTACT\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/contacts/edit/hoppers/dialog.html",'<md-dialog class="hopper-dialog" aria-label="New Hopper">\n <form name="hopperForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <div flex class="md-block">\n <mdp-date-picker mdp-open-on-click name="scheduledatDate" mdp-placeholder="Date" mdp-format="YYYY-MM-DD" ng-model="vm.hopper.scheduledat" ng-init="vm.hopper.scheduledat = vm.getDateFromString(vm.hopper.scheduledat)">\n <div ng-messages="hopperForm.dateRangeFrom.$error" ng-show="hopperForm.dateRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.DATE_REQUIRED">Date is required</span>\n </div>\n <div ng-message="format">\n <span translate="CONTACTMANAGER.ERRORS.DATE_INVALID">Date is invalid</span>\n </div>\n </div>\n </mdp-date-picker>\n </div>\n\n <div flex class="md-block">\n <mdp-time-picker mdp-open-on-click name="scheduledatTime" mdp-placeholder="Time" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.hopper.scheduledat" ng-init="vm.hopper.scheduledat = vm.getDateFromString(vm.hopper.scheduledat)">\n <div ng-messages="hopperForm.timeRangeFrom.$error" ng-show="hopperForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.TIME_REQUIRED">Time is required</span>\n </div>\n <div ng-message="format">\n <span translate="CONTACTMANAGER.ERRORS.TIME_INVALID">Time is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-if="!vm.newHopper" ng-click="vm.saveHopper()" class="send-button md-accent md-raised" ng-disabled="hopperForm.$invalid || hopperForm.$pristine" aria-label="SAVE" translate="CONTACTMANAGER.SAVE" translate-attr-aria-label="CONTACTMANAGER.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.newHopper" ng-click="vm.addNewHopper()" class="send-button md-accent md-raised" ng-disabled="hopperForm.$invalid" aria-label="ADD" translate="CONTACTMANAGER.ADD_HOPPER" translate-attr-aria-label="CONTACTMANAGER.ADD_HOPPER">\n ADD HOPPER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="!vm.newHopper" ng-click="vm.deleteHopper($event)" aria-label="DELETE" translate translate-attr-aria-label="CONTACTMANAGER.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="CONTACTMANAGER.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/contacts/edit/view.html",'<div id="cm-contact" class="page-layout simple tabbed" layout="column" ng-init="vm.onInit()">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-contacts-button md-icon-button" aria-label="Go to contacts" ng-click="vm.gotoContacts()" translate translate-attr-aria-label="CONTACTMANAGER.GO_TO_CONTACTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="contact-image" hide-xs>\n <img ng-src="assets/images/business/contacts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.contact.id}} {{vm.contact.firstName}} {{vm.contact.lastName}}\n </div>\n <div class="subtitle secondary-text">\n <span translate="CONTACTMANAGER.CREATED_AT"></span> <span>{{vm.contact.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-if="vm.contact.role && vm.contact.role !== \'admin\'" ng-controller="ContactQueueAddButtonController as vm_contact_qa" ng-cloak>\n <md-fab-speed-dial ng-hide="vm_contact_qa.hidden" md-direction="left" md-open="vm_contact_qa.isOpen" class="md-scale md-fab" ng-class="{ \'md-hover-full\': vm_contact_qa.hover }" ng-mouseenter="vm_contact_qa.isOpen=true" ng-mouseleave="vm_contact_qa.isOpen=false">\n <md-fab-trigger>\n <md-button aria-label="menu" class="md-fab md-primary md-icon-button">\n <md-tooltip md-direction="top" md-visible="tooltipVisible">Channels</md-tooltip>\n <md-icon md-font-icon="icon-eye" aria-label="channels"></md-icon>\n </md-button>\n </md-fab-trigger>\n <md-fab-actions>\n <div ng-repeat="channel in vm_contact_qa.channels">\n <md-button aria-label="{{channel.name}}" class="md-fab md-raised md-icon-button md-mini" ng-click="vm_contact_qa.openDialog($event, vm.contact, channel)">\n <md-tooltip md-direction="{{channel.direction}}" md-visible="tooltipVisible" md-autohide="false">\n {{channel.name}}\n </md-tooltip>\n <md-icon md-font-icon="{{channel.icon}}" aria-label="{{channel.name}}"></md-icon>\n </md-button>\n </div>\n </md-fab-actions>\n </md-fab-speed-dial>\n </div>\n\n <div ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.duplicateContact($event)" class="md-fab md-warn md-icon-button" aria-label="DUPLICATE">\n <md-icon md-font-icon="icon-file-multiple"></md-icon>\n </md-button>\n <md-button type="submit" ng-click="vm.saveContact()" class="send-button md-accent md-raised" ng-disabled="detailForm.$pristine && customFieldsForm.$pristine && socialForm.$pristine" translate="CONTACTMANAGER.SAVE" translate-attr-aria-label="CONTACTMANAGER.SAVE">\n SAVE\n </md-button>\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="CONTACTMANAGER.DETAIL">DETAIL</span>\n </md-tab-label>\n\n <md-tab-body>\n <div layout="row">\n <div layout="column" flex="70">\n <md-card class="contact-detail-form-container personal_info md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text text-truncate" translate="CONTACTMANAGER.PERSONAL_INFO">PERSONAL_INFO\n </div>\n </div>\n <form name="detailForm" novalidate>\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n \x3c!-- fistName --\x3e\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.FIRSTNAME">First Name</label>\n <md-icon md-font-icon="icon-account" class="firstname"></md-icon>\n <input type="text" name="firstName" ng-model="vm.contact.firstName" class="text-truncate" required ng-disabled="!vm.crudPermissions.canEdit" privacy="!vm.crudPermissions.canEdit" ng-cloak>\n <div ng-messages="detailForm.firstName.$error" ng-show="detailForm.firstName.$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.FIRSTNAME_REQUIRED">First name field is required</span>\n </div>\n </div>\n </md-input-container>\n <div flex="5"></div>\n \x3c!-- lastName --\x3e\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.LASTNAME">Last Name</label>\n <input type="text" name="lastName" ng-model="vm.contact.lastName" class="text-truncate" ng-disabled="!vm.crudPermissions.canEdit" privacy="!vm.crudPermissions.canEdit" ng-cloak>\n </md-input-container>\n\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n \x3c!-- phone --\x3e\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.PHONE">Phone</label>\n <md-icon md-font-icon="icon-phone"></md-icon>\n <input type="text" name="phone" ng-model="vm.contact.phone" class="text-truncate" ng-disabled="!vm.crudPermissions.canEdit" privacy="!vm.crudPermissions.canEdit" ng-cloak>\n </md-input-container>\n <div flex="5"></div>\n \x3c!-- mobile --\x3e\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.MOBILE">Mobile</label>\n <md-icon md-font-icon="icon-cellphone-iphone"></md-icon>\n <input type="text" name="mobile" ng-model="vm.contact.mobile" class="text-truncate" ng-disabled="!vm.crudPermissions.canEdit" privacy="!vm.crudPermissions.canEdit" ng-cloak>\n </md-input-container>\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n \x3c!-- email --\x3e\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.EMAIL">Email</label>\n <md-icon md-font-icon="icon-email" class="email"></md-icon>\n <input type="email" name="email" ng-model="vm.contact.email" class="text-truncate" ng-disabled="!vm.crudPermissions.canEdit" privacy="!vm.crudPermissions.canEdit" ng-cloak>\n <div ng-messages="detailForm.firstName.$error" ng-show="detailForm.firstName.$touched" role="alert">\n <div ng-message="email">\n <span translate="CONTACTMANAGER.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail\n address</span>\n </div>\n </div>\n </md-input-container>\n <div flex="5"></div>\n \x3c!-- fax --\x3e\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.FAX">Fax</label>\n <md-icon md-font-icon="icon-deskphone"></md-icon>\n <input type="text" name="fax" ng-model="vm.contact.fax" ng-disabled="!vm.crudPermissions.canEdit" privacy="!vm.crudPermissions.canEdit" ng-cloak>\n </md-input-container>\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="" ng-init="vm.contact.dateOfBirth = vm.getDateFromString(vm.contact.dateOfBirth)">\n <label translate="CONTACTMANAGER.DATE_OF_BIRTH">Date of Birth</label>\n <mdp-date-picker mdp-open-on-click mdp-format="YYYY-MM-DD" name="dateOfBirth" ng-model="vm.contact.dateOfBirth" mdp-disabled="!vm.crudPermissions.canEdit"></mdp-date-picker>\n </md-input-container>\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container ng-if="vm.companies.rows.length" class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.COMPANY">Company</label>\n <md-icon md-font-icon="icon-domain"></md-icon>\n <md-select name="company" ng-model="vm.contact.CompanyId" ng-disabled="!vm.crudPermissions.canEdit">\n <md-optgroup label="Companies">\n <md-option ng-value="company.id" ng-repeat="company in vm.companies.rows" ng-disabled="company.canSelect === false">{{company.name}}</md-option>\n <md-option ng-value=" null"><em translate="CONTACTMANAGER.NONE">None</em></md-option>\n </md-optgroup>\n </md-select>\n <md-icon class="pointer" ng-show="vm.contact.CompanyId" md-font-icon="icon-information-outline" ng-click="vm.editCompany($event, vm.contact.CompanyId)"></md-icon>\n </md-input-container>\n <section ng-if="!vm.companies.rows.length" flex-gt-sm="">\n <md-icon md-font-icon="icon-briefcase"></md-icon>\n <label translate="CONTACTMANAGER.NO_COMPANIES">No Companies</label>\n </section>\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container ng-if="vm.tags.rows.length" class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.TAGS">Tags</label>\n <md-icon md-font-icon="icon-tag"></md-icon>\n <md-select ng-model="vm.Tags" multiple ng-disabled="!vm.crudPermissions.canEdit">\n <md-optgroup label="Tags">\n <md-option ng-value="tag.id" ng-repeat="tag in vm.tags.rows" ng-disabled="tag.canSelect === false">{{tag.name}}</md-option>\n </md-optgroup>\n </md-select>\n </md-input-container>\n <section ng-if="!vm.tags.rows.length" flex-gt-sm="">\n <md-icon md-font-icon="icon-tag"></md-icon>\n <label translate="CONTACTMANAGER.NO_TAG">No Tags</label>\n <md-button class="md-accent" translate="CONTACTMANAGER.ADD_TAG">Add Tag</md-button>\n </section>\n </div>\n\n <div ng-if="!vm.allFields" layout="row" layout-align="center center">\n <md-button class="md-accent" ng-click="vm.allFields = true" translate="CONTACTMANAGER.SHOW_ALL_FIELDS">Show All Fields</md-button>\n </div>\n\n <div ng-if="vm.allFields">\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n \x3c!-- country --\x3e\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.COUNTRY">Country</label>\n <md-icon md-font-icon="icon-home" class="country"></md-icon>\n <input type="text" name="country" ng-model="vm.contact.country" class="text-truncate" ng-disabled="!vm.crudPermissions.canEdit">\n </md-input-container>\n <div flex="5"></div>\n \x3c!-- city --\x3e\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.CITY">City</label>\n <input type="text" name="city" ng-model="vm.contact.city" ng-disabled="!vm.crudPermissions.canEdit">\n </md-input-container>\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <div flex="5"></div>\n \x3c!-- street --\x3e\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.STREET">Street</label>\n <input type="text" name="street" ng-model="vm.contact.street" ng-disabled="!vm.crudPermissions.canEdit">\n </md-input-container>\n <div flex="5"></div>\n \x3c!-- postalCode --\x3e\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.POSTALCODE">Postal Code</label>\n <input type="text" name="postalCode" ng-model="vm.contact.postalCode" ng-disabled="!vm.crudPermissions.canEdit">\n </md-input-container>\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate translate-attr-placeholder="CONTACTMANAGER.NOTES">Notes</label>\n <md-icon md-font-icon="icon-note"></md-icon>\n <textarea ng-model="vm.contact.description" type="text" max-rows="4" ng-disabled="!vm.crudPermissions.canEdit"></textarea>\n </md-input-container>\n </div>\n\n <div layout="row" layout-align="center center">\n <md-button class="md-accent" ng-click="vm.allFields = false" translate="CONTACTMANAGER.FEWER_FIELDS">Fewer Fields\n </md-button>\n </div>\n\n </div>\n </form>\n </md-card>\n <md-card class="contact-detail-form-container personal_info md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text text-truncate" translate="CONTACTMANAGER.SOCIAL">Social</div>\n </div>\n <form name="socialForm" novalidate>\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Facebook</label>\n <md-icon md-font-icon="icon-facebook" class="facebook"></md-icon>\n <input type="text" name="facebook" ng-model="vm.contact.facebook" class="text-truncate" ng-disabled="!vm.crudPermissions.canEdit">\n </md-input-container>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Twitter</label>\n <md-icon md-font-icon="icon-twitter" class="twitter"></md-icon>\n <input type="text" name="twitter" ng-model="vm.contact.twitter" class="text-truncate" ng-disabled="!vm.crudPermissions.canEdit">\n </md-input-container>\n </div>\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Line</label>\n <md-icon md-font-icon="fab fa-line"></md-icon>\n <input type="text" name="line" ng-model="vm.contact.line" class="text-truncate">\n </md-input-container>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Viber</label>\n <md-icon md-font-icon="fab fa-viber"></md-icon>\n <input type="text" name="viber" ng-model="vm.contact.viber" class="text-truncate">\n </md-input-container>\n </div>\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label>WeChat</label>\n <md-icon md-font-icon="fab fa-weixin"></md-icon>\n <input type="text" name="wechat" ng-model="vm.contact.wechat" class="text-truncate">\n </md-input-container>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Telegram</label>\n <md-icon md-font-icon="icon-telegram"></md-icon>\n <input type="text" name="telegram" ng-model="vm.contact.telegram" class="text-truncate">\n </md-input-container>\n </div>\n </form>\n </md-card>\n </div>\n\n <div flex></div>\n\n <div class="contact-detail-form-container personal_info md-background-bg md-whiteframe-1dp" flex="25">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text text-truncate" translate="CONTACTMANAGER.CUSTOM_FIELDS">CUSTOM FIELDS\n </div>\n </div>\n <form name="customFieldsForm" novalidate>\n <md-input-container class="md-block">\n <label translate translate-attr-placeholder="CONTACTMANAGER.LIST">List</label>\n <md-select name="list" ng-model="vm.contact.ListId" md-on-close="vm.onSelectList($event)" ng-disabled="vm.contact.ListId">\n <md-optgroup label="Lists">\n <md-option ng-value="list.id" ng-repeat="list in vm.lists.rows">#{{list.id}} - {{list.name}}\n </md-option>\n <md-option ng-value="null"><em translate="CONTACTMANAGER.NONE">None</em></md-option>\n </md-optgroup>\n </md-select>\n </md-input-container>\n <div ng-repeat="customField in vm.customFields.rows" ng-switch="customField.type">\n <md-input-container class="md-block" ng-switch-when="datetime">\n <label>{{customField.alias}}</label>\n <div ng-init="vm.contact[\'cf_\' + customField.id] = vm.getDateFromString(vm.contact[\'cf_\' + customField.id])">\n <mdp-date-picker mdp-open-on-click ng-required="customField.required" mdp-format="YYYY-MM-DD" ng-model="vm.contact[\'cf_\' + customField.id]"></mdp-date-picker>\n <mdp-time-picker mdp-open-on-click mdp-placeholder="Time" ng-required="customField.required" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.contact[\'cf_\' + customField.id]">\n </mdp-time-picker>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-switch-when="select">\n <label>{{customField.alias}}</label>\n <md-select ng-model="vm.contact[\'cf_\' + customField.id]" ng-required="customField.required" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-repeat="value in customField.values" ng-value="value.value">{{value.value}}\n </md-option>\n <md-option ng-value="null"><em translate="CONTACTMANAGER.NONE">None</em></md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-block" ng-switch-when="switch">\n <md-switch aria-label="{{customField.alias}}" ng-model="vm.contact[\'cf_\' + customField.id]" ng-true-value="1" ng-false-value="0">\n {{customField.alias}}\n </md-switch>\n </md-input-container>\n\n <md-input-container class="md-block" ng-switch-default>\n <label>{{customField.alias}}</label>\n <input type="{{customField.type}}" ng-model="vm.contact[\'cf_\' + customField.id]" ng-required="customField.required" ng-disabled="!vm.crudPermissions.canEdit">\n </md-input-container>\n </div>\n </form>\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n\n <md-tab ng-if="vm.license.dialer">\n <md-tab-label>\n <span translate="CONTACTMANAGER.MOTION_BULL">MOTION BULL</span>\n </md-tab-label>\n\n <md-tab-body>\n <div layout="row">\n <div class="contact-detail-form-container personal_info md-background-bg md-whiteframe-1dp" flex>\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CONTACTMANAGER.HOPPER">Hopper</span>\n <div flex></div>\n <ms-search-bar on-search="vm.queryHopper.filter = query;" on-collapse="vm.queryHopper.filter = undefined;" debounce="300"></ms-search-bar>\n <md-button class="md-icon-button" ng-click="vm.getHoppers()" aria-label="reload" translate translate-attr-label="CONTACTMANAGER.RELOAD">\n <md-tooltip>{{\'CONTACTMANAGER.RELOAD\' | translate}}</md-tooltip>\n <md-icon md-font-icon="icon-reload"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n \x3c!-- HOPPER TABLE --\x3e\n <md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.queryHopper.sort" md-on-reorder="vm.getHoppers">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'CONTACTMANAGER.ID\' | translate }}</th>\n <th md-column md-order-by="phone">{{ \'CONTACTMANAGER.PHONE\' | translate }}</th>\n <th md-column md-order-by="scheduledat">{{ \'CONTACTMANAGER.SCHEDULEDAT\' | translate }}</th>\n <th md-column md-order-by="priority">{{ \'MOTIONDIALER.PRIORITY\' | translate }}</th>\n <th md-column md-order-by="recallme">{{ \'CONTACTMANAGER.RECALLME\' | translate }}</th>\n <th md-column md-order-by="VoiceQueueId">{{ \'CONTACTMANAGER.VOICEQUEUEID\' | translate }}</th>\n <th md-column md-order-by="CampaignId">{{ \'CONTACTMANAGER.CAMPAIGNID\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.hoppers.count">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(id, hopper) in vm.hoppers.rows">\n <td md-cell>{{hopper.id}}</td>\n <td md-cell privacy ng-cloak>{{hopper.phone}}</td>\n <td md-cell>{{hopper.scheduledat | date:\'medium\'}}</td>\n <td md-cell>{{ vm.arraypriority[hopper.priority].option }}</td>\n <td md-cell class="recallme ">\n <md-icon md-colors="{color: {{hopper.recallme ? \'\\\'green\\\'\' : \'\\\'red\\\'\'}}}" md-font-icon="{{hopper.recallme? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td md-cell>{{hopper.VoiceQueueId}}</td>\n <td md-cell>{{hopper.CampaignId}}</td>\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CONTACTMANAGER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-if="vm.crudPermissions.canEdit && hopper.VoiceQueueId" ng-click="vm.editHopper($event, hopper)" translate="CONTACTMANAGER.EDIT_HOPPER">\n Edit Hopper\n </md-button>\n <md-button ng-if="vm.crudPermissions.canEdit && hopper.CampaignId" ng-click="vm.createOrEditIvrCampaignHopper($event, hopper)" translate="CONTACTMANAGER.EDIT_HOPPER">\n Edit Hopper\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.crudPermissions.canDelete && vm.deleteconfirm(hopper, $event)" translate="CONTACTMANAGER.DELETE_HOPPER">\n Delete Hopper\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.queryHopper.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.queryHopper.page" md-total="{{vm.hoppers.count}}" md-on-paginate="vm.getHoppers" md-page-select></md-table-pagination>\n \x3c!-- / HOPPER TABLE --\x3e\n </div>\n </div>\n\n <div layout="row">\n <div class="contact-detail-form-container personal_info md-background-bg md-whiteframe-1dp" flex>\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CONTACTMANAGER.FINAL">Final</span>\n <div flex></div>\n <ms-search-bar on-search="vm.queryFinal.filter = query;" on-collapse="vm.queryFinal.filter = undefined;" debounce="300"></ms-search-bar>\n <md-button class="md-icon-button" ng-click="vm.getFinals()" aria-label="reload" translate translate-attr-label="CONTACTMANAGER.RELOAD">\n <md-tooltip>{{\'CONTACTMANAGER.RELOAD\' | translate}}</md-tooltip>\n <md-icon md-font-icon="icon-reload"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n \x3c!-- HOPPER TABLE --\x3e\n <md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.queryFinal.sort" md-on-reorder="vm.getFinals">\n <tr md-row>\n <th md-column md-order-by="uniqueid">{{ \'CONTACTMANAGER.UNIQUEID\' | translate }}</th>\n <th md-column md-order-by="calleridnum">{{ \'CONTACTMANAGER.PHONE\' | translate }}</th>\n <th md-column md-order-by="state">{{ \'CONTACTMANAGER.STATE\' | translate }}</th>\n <th md-column md-order-by="starttime">{{ \'CONTACTMANAGER.STARTTIME\' | translate }}</th>\n <th md-column md-order-by="disposition">{{ \'CONTACTMANAGER.DISPOSITION\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.finals.count">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(id, final) in vm.finals.rows">\n <td md-cell>{{final.uniqueid}}</td>\n <td md-cell privacy ng-cloak>{{final.calleridnum}}</td>\n <td md-cell>{{final.statedesc}}</td>\n <td md-cell>{{final.starttime | date:\'medium\'}}</td>\n <td md-cell>{{final.disposition}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.queryFinal.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.queryFinal.page" md-total="{{vm.finals.count}}" md-on-paginate="vm.getFinals" md-page-select></md-table-pagination>\n \x3c!-- / HOPPER TABLE --\x3e\n </div>\n </div>\n\n <div layout="row">\n <div class="contact-detail-form-container personal_info md-background-bg md-whiteframe-1dp" flex>\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CONTACTMANAGER.HISTORY">History</span>\n <div flex></div>\n <ms-search-bar on-search="vm.queryHistory.filter = query;" on-collapse="vm.queryHistory.filter = undefined;" debounce="300"></ms-search-bar>\n <md-button class="md-icon-button" ng-click="vm.getHistories()" aria-label="reload" translate translate-attr-label="CONTACTMANAGER.RELOAD">\n <md-tooltip>{{\'CONTACTMANAGER.RELOAD\' | translate}}</md-tooltip>\n <md-icon md-font-icon="icon-reload"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n \x3c!-- HOPPER TABLE --\x3e\n <md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.queryHistory.sort" md-on-reorder="vm.getHistories">\n <tr md-row>\n <th md-column md-order-by="uniqueid">{{ \'CONTACTMANAGER.UNIQUEID\' | translate }}</th>\n <th md-column md-order-by="calleridnum">{{ \'CONTACTMANAGER.PHONE\' | translate }}</th>\n <th md-column md-order-by="state">{{ \'CONTACTMANAGER.STATE\' | translate }}</th>\n <th md-column md-order-by="scheduledat">{{ \'CONTACTMANAGER.SCHEDULEDAT\' | translate }}</th>\n <th md-column md-order-by="starttime">{{ \'CONTACTMANAGER.STARTTIME\' | translate }}</th>\n <th md-column md-order-by="endtime">{{ \'CONTACTMANAGER.ENDTIME\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.histories.count">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(id, history) in vm.histories.rows">\n <td md-cell>{{history.uniqueid}}</td>\n <td md-cell privacy ng-cloak>{{history.calleridnum}}</td>\n <td md-cell>{{history.statedesc}}</td>\n <td md-cell>{{history.scheduledat | date:\'medium\'}}</td>\n <td md-cell>{{history.starttime | date:\'medium\'}}</td>\n <td md-cell>{{history.endtime | date:\'medium\'}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.queryHistory.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.queryHistory.page" md-total="{{vm.histories.count}}" md-on-paginate="vm.getHistories" md-page-select></md-table-pagination>\n \x3c!-- / HOPPER TABLE --\x3e\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n\n <md-tab ng-if="vm.license.jscripty">\n <md-tab-label>\n <span translate="CONTACTMANAGER.JSCRIPTY">JSCRIPTY</span>\n </md-tab-label>\n\n <md-tab-body>\n <div layout="row">\n <div class="contact-detail-form-container personal_info md-background-bg md-whiteframe-1dp" flex>\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CONTACTMANAGER.SESSIONS">Sessions</span>\n <div flex></div>\n <ms-search-bar on-search="vm.queryJscriptySession.filter = query;" on-collapse="vm.queryJscriptySession.filter = undefined;" debounce="300"></ms-search-bar>\n </div>\n </md-toolbar>\n\n \x3c!-- SESSION TABLE --\x3e\n <md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.queryJscriptySession.sort" md-on-reorder="vm.getJscriptySessions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'CONTACTMANAGER.ID\' | translate }}</th>\n <th md-column md-order-by="starttime">{{ \'CONTACTMANAGER.STARTTIME\' | translate }}</th>\n <th md-column md-order-by="endtime">{{ \'CONTACTMANAGER.ENDTIME\' | translate }}</th>\n <th md-column md-order-by="agent">{{ \'CONTACTMANAGER.AGENT\' | translate }}</th>\n <th md-column md-order-by="project">{{ \'CONTACTMANAGER.PROJECT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.jscriptySessions.count">\n <td md-cell colspan="6">\n <div layout="row" layout-align="center center">\n <span translate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(id, session) in vm.jscriptySessions.rows">\n <td md-cell>{{session.id}}</td>\n <td md-cell>{{session.starttime | date:\'medium\'}}</td>\n <td md-cell>{{session.endtime | date:\'medium\'}}</td>\n <td md-cell>{{session.membername}}</td>\n <td md-cell>{{session.projectname}}</td>\n <td md-cell class="actions"></td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.queryHopper.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.queryHopper.page" md-total="{{vm.hoppers.count}}" md-on-paginate="vm.getHoppers" md-page-select></md-table-pagination>\n \x3c!-- / SESSION TABLE --\x3e\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="CONTACTMANAGER.CUSTOMER_JOURNEY">CUSTOMER JOURNEY</span>\n </md-tab-label>\n\n <md-tab-body>\n <md-content class="md-padding" id="journey-content">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.html\'">\n </div>\n </md-content>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/contactmanager/views/contacts/import/import.html",'<md-dialog class="import-dialog" aria-label="Import contact">\n <form name="importForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title" translate="CONTACTMANAGER.IMPORT_CONTACTS">Import Contacts</span>\n <md-button ng-if="vm.result.finish || !vm.processing" class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <div md-background-bg layout="row" layout-align="start start">\n <md-progress-linear ng-disabled="!vm.processing || vm.result.finish" md-mode="indeterminate" class="md-warn"></md-progress-linear>\n </div>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <div>\n <md-content ng-show="!vm.processing">\n <div class="form-title" translate="CONTACTMANAGER.CONTACTMANAGER">CONTACT MANAGER</div>\n\n <md-input-container class="md-icon-float md-block" ng-repeat="contactField in vm.contactFields">\n <label>{{\'CONTACTMANAGER.\' + contactField.key | uppercase | translate}}</label>\n <md-select name="{{contactField.key}}" ng-model="vm.binding[contactField.key]" placeholder="{{\'CONTACTMANAGER.\' + contactField.key | uppercase | translate}}" ng-required="contactField.required">\n <md-option ng-value="field" ng-repeat="field in vm.fields">{{ field }}</md-option>\n <md-option ng-value="null" ng-hide="contactField.required">\n <em>{{ \'CONTACTMANAGER.NONE\' | translate }}</em>\n </md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-icon-float md-block">\n <label translate="CONTACTMANAGER.LIST">List</label>\n <md-select name="list" ng-model="vm.ListId" placeholder="Select a list" ng-change="vm.onChangeList()" required>\n <md-option ng-value="list.id" ng-repeat="list in vm.lists.rows">{{list.name}}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-icon-float md-block" ng-repeat="customField in vm.customFields.rows">\n <label>{{customField.alias}}</label>\n <md-select ng-model="vm.binding[\'cf_\' + customField.id]" placeholder="{{customField.alias}}" ng-required="customField.required">\n <md-option ng-value="field" ng-repeat="field in vm.fields">{{ field }}</md-option>\n <md-option ng-value="null" ng-hide="customField.required">\n <em>{{ \'CONTACTMANAGER.NONE\' | translate }}</em>\n </md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-icon-float md-block">\n <label translate="CONTACTMANAGER.COMPANY">Company</label>\n <md-select name="company" ng-model="vm.CompanyId" placeholder="Select a company">\n <md-option ng-value="company.id" ng-repeat="company in vm.companies.rows">{{company.name}}</md-option>\n <md-option ng-value="null">\n <em translate="CONTACTMANAGER.NONE">None</em>\n </md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-icon-float md-block">\n <md-select ng-model="vm.duplicates" placeholder="{{ \'CONTACTMANAGER.CHECK_DUPLICATES\' | translate}}" multiple>\n <md-option ng-value="contactField.key" ng-repeat="contactField in vm.contactFields">{{ \'CONTACTMANAGER.\' + contactField.key | uppercase | translate}}</md-option>\n </md-select>\n </md-input-container>\n\n <div ng-if="vm.license.dialer">\n <div class="form-title" translate="CONTACTMANAGER.MOTIONDIALER">MOTION BULL</div>\n\n <md-input-container class="md-icon-float md-block" ng-repeat="motionBullField in vm.motionBullFields">\n <label>{{\'CONTACTMANAGER.\' + motionBullField.key | uppercase | translate}}</label>\n <md-select name="{{motionBullField.key}}" ng-model="vm.binding[motionBullField.key]" placeholder="{{\'CONTACTMANAGER.\' + motionBullField.key | uppercase | translate}}" ng-required="motionBullField.required">\n <md-option ng-value="field" ng-repeat="field in vm.fields">{{ field }}</md-option>\n <md-option ng-value="null" ng-hide="contactField.required">\n <em>{{ \'CONTACTMANAGER.NONE\' | translate }}</em>\n </md-option>\n </md-select>\n </md-input-container>\n </div>\n\n </md-content>\n\n <div class="error-list" ng-if="vm.result.finish">\n <div class="info" layout="row" layout-align="space-between center">\n <div>\n <div class="message">{{\'CONTACTMANAGER.UPLOAD_COMPLETED\' | translate | uppercase}} ({{vm.result.elapsed}}s)</div>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <div layout="row" ng-if="vm.processing">\n \x3c!-- WIDGET PROCESSING --\x3e\n <ms-widget ng-if="!vm.result.finish" class="h-140" flex>\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg">\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8 orange-fg">\n <span ng-bind="vm.result.rows"></span>\n </div>\n <div ng-if="vm.processing" class="font-weight-500 secondary-text">Please wait, we are processing your contacts...</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n \x3c!-- / WIDGET PROCESSING --\x3e\n \x3c!-- WIDGET SUCCESS --\x3e\n <ms-widget ng-if="vm.result.finish" class="h-140" flex>\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg">\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8 green-fg">\n <span ng-bind="vm.result.affectedRows"></span>\n </div>\n <div class="font-weight-500 secondary-text" translate="CONTACTMANAGER.SUCCESS">Success</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n \x3c!-- / WIDGET SUCCESS --\x3e\n\n \x3c!-- WIDGET FAILURE --\x3e\n <ms-widget ng-if="vm.result.finish" class="h-140" flex>\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg">\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8 red-fg">\n <span ng-bind="vm.result.failedRows"></span>\n </div>\n <div class="font-weight-500 secondary-text" translate="CONTACTMANAGER.FAILURE">Failure</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n \x3c!-- / WIDGET FAILURE --\x3e\n\n \x3c!-- WIDGET DUPLICATES --\x3e\n <ms-widget ng-if="vm.result.duplicatedRows && vm.result.finish" class="h-140" flex>\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg">\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8 orange-fg">\n <span ng-bind="vm.result.duplicatedRows"></span>\n </div>\n <div class="font-weight-500 secondary-text" translate="CONTACTMANAGER.DUPLICATES">Duplicates</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n \x3c!-- / WIDGET DUPLICATES --\x3e\n </div>\n\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row">\n <md-button ng-if="!vm.processing" ng-disabled="importForm.$invalid || importForm.$pristine" ng-click="vm.uploadCsv()" class="md-accent md-raised" aria-label="UPLOAD" translate="CONTACTMANAGER.UPLOAD" translate-attr-aria-label="CONTACTMANAGER.IMPORT">\n IMPORT\n </md-button>\n <md-button ng-if="vm.processing && !vm.result.finish && !vm.stopping" ng-click="vm.stopUpload()" class="md-accent md-raised" aria-label="Stop Upload" translate="CONTACTMANAGER.STOP" translate-attr-aria-label="CONTACTMANAGER.STOP">\n STOP\n </md-button>\n <md-button ng-if="vm.result.finish && vm.result.errors.length" ng-csv="vm.getArrayErrors()" csv-header="vm.getHeaderErrors()" class="md-accent md-raised" aria-label="Export Errors" filename="contacts_import_errors.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon> {{\'CONTACTMANAGER.EXPORT_ERRORS\' | translate}}\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/contacts/merge/dialog.html",'<md-dialog class="cm-contact-dialog" aria-label="Merge Contact">\n <form name="contactForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <md-input-container class="md-block" flex-gt-sm>\n <label>Filter</label>\n <input ng-model="vm.searchTerm" name="searchTerm" ng-model-options="{ debounce: 300 }" ng-change="vm.change()">\n </md-input-container>\n\n <md-list flex>\n <md-subheader class="md-no-sticky" ng-hide="vm.contacts.length"><em>Filter doesn\'t match any contact</em></md-subheader>\n <md-list-item class="md-3-line" ng-repeat="contact in vm.contacts | filter:{ id: \'!\' + vm.contact.id}" ng-click="vm.showConfirm($event, vm.contact, contact)">\n <img ng-src="assets/images/avatars/profile.png" class="md-avatar" alt="{{contact.who}}" />\n <div class="md-list-item-text" layout="column">\n <h3>#{{ contact.id }} - {{ contact.firstName }} {{ contact.lastName }}</h3>\n <h4>{{ contact.email }}</h4>\n <p>{{ contact.phone }}</p>\n </div>\n </md-list-item>\n </md-list>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/globalCustomFields/create/dialog.html",'<md-dialog class="globalCustomField-dialog" aria-label="New GlobalCustomField">\n <form name="globalCustomFieldForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.ALIAS">Alias</label>\n <input type="" name="alias" ng-model="vm.globalCustomField.alias" ng-required="true" autofocus>\n\n <div ng-messages="globalCustomFieldForm[\'alias\'].$error" ng-show="globalCustomFieldForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.ALIAS_REQUIRED">Alias field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.TYPE">Type</label>\n <md-select name="type" ng-model="vm.globalCustomField.type" required ng-disabled="!vm.newGlobalCustomField">\n <md-option ng-value="\'text\'">Text</md-option>\n <md-option ng-value="\'select\'">Select</md-option>\n <md-option ng-value="\'number\'">Number</md-option>\n <md-option ng-value="\'switch\'">Switch</md-option>\n <md-option ng-value="\'datetime\'">Datetime</md-option>\n </md-select>\n <div ng-messages="globalCustomFieldForm[\'type\'].$error" ng-show="globalCustomFieldForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.globalCustomField.type == \'select\'" class="md-block">\n <md-list>\n <md-list-item layout-margin>\n <md-button class="md-fab md-mini md-secondary" ng-click="vm.addItem(vm.globalCustomField.values);">\n <md-tooltip><span translate="CONTACTMANAGER.ADD">ADD</span></md-tooltip>\n <md-icon md-font-icon="icon-plus" aria-label="alert error"></md-icon>\n </md-button>\n <md-button ng-if="vm.globalCustomField.values.length" class="md-fab md-mini md-warn md-secondary" ng-click="vm.removeItems(vm.globalCustomField.values);">\n <md-tooltip><span translate="CONTACTMANAGER.DELETE_ALL">Delete All</span></md-tooltip>\n <md-icon md-font-icon="icon-delete" aria-label="alert error"></md-icon>\n </md-button>\n </md-list-item>\n </md-list>\n <md-list ng-sortable="vm.sortable">\n <md-list-item ng-repeat="item in vm.globalCustomField.values" style="border: 1px solid #ccc!important; border-radius: 7px;" layout-margin>\n <div>\n <md-icon class="s24" style="cursor:move" md-font-icon="icon-drag" aria-label="drag"></md-icon>\n <input type="text" ng-model="item.value" flex>\n </div>\n <md-button class="md-fab md-mini md-warn md-secondary" ng-click="vm.removeItem(vm.globalCustomField.values, $index);">\n <md-tooltip><span translate="CONTACTMANAGER.DELETE">DELETE</span></md-tooltip>\n <md-icon md-font-icon="icon-delete" aria-label="alert error"></md-icon>\n </md-button>\n </md-list-item>\n </md-list>\n <md-list>\n <md-list-item ng-if="!vm.globalCustomField.values.length" layout="row" layout-align="center center">\n <em translate="CONTACTMANAGER.NO_AVAILABLE_ITEMS">No Available Items</em>\n </md-list-item>\n </md-list>\n </div>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.globalCustomField.required" aria-label="Required"><span translate="CONTACTMANAGER.REQUIRED">Required</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.globalCustomField.type == \'text\'" class="md-block">\n <md-switch ng-model="vm.globalCustomField.clickToAction" aria-label="ClickToAction"><span translate="CONTACTMANAGER.CLICKTOACTION">ClickToAction</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.globalCustomField.clickToAction" class="md-block">\n <label translate="CONTACTMANAGER.ACTIONTYPE">ActionType</label>\n <md-select name="actionType" ng-model="vm.globalCustomField.actionType">\n <md-option ng-value="\'voice\'">Voice</md-option>\n </md-select>\n <div ng-messages="globalCustomFieldForm[\'actionType\'].$error" ng-show="globalCustomFieldForm[\'actionType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.ACTIONTYPE_REQUIRED">ActionType field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newGlobalCustomField" ng-click="vm.saveGlobalCustomField()" class="send-button md-accent md-raised" ng-disabled="globalCustomFieldForm.$invalid || globalCustomFieldForm.$pristine" aria-label="SAVE" translate="CONTACTMANAGER.SAVE" translate-attr-aria-label="CONTACTMANAGER.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newGlobalCustomField" ng-click="vm.addNewGlobalCustomField()" class="send-button md-accent md-raised" ng-disabled="globalCustomFieldForm.$invalid" aria-label="ADD" translate="CONTACTMANAGER.ADD_GLOBALCUSTOMFIELD" translate-attr-aria-label="CONTACTMANAGER.ADD_GLOBALCUSTOMFIELD">\n ADD GLOBALCUSTOMFIELD\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newGlobalCustomField" ng-click="vm.deleteGlobalCustomField($event)" aria-label="DELETE" translate translate-attr-aria-label="CONTACTMANAGER.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="CONTACTMANAGER.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/globalCustomFields/globalCustomFields.html",'<div id="globalCustomFields" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-account-circle" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="CONTACTMANAGER.GLOBALCUSTOMFIELDS">GlobalCustomFields</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="CONTACTMANAGER.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedGlobalCustomFields.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedGlobalCustomFields =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="CONTACTMANAGER.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-globalCustomFields-count">\n <span>{{vm.selectedGlobalCustomFields.length}}</span>\n <span translate="CONTACTMANAGER.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="CONTACTMANAGER.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllGlobalCustomFields()" translate="CONTACTMANAGER.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectGlobalCustomFields()" translate="CONTACTMANAGER.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedGlobalCustomFields" csv-label="true" filename="globalCustomFields.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedGlobalCustomFields($event)" aria-label="delete selected" translate translate-attr-label="CONTACTMANAGER.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- GLOBALCUSTOMFIELD TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedGlobalCustomFields" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getGlobalCustomFields">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'CONTACTMANAGER.ID\' | translate }}</th>\n <th md-column md-order-by="alias">{{ \'CONTACTMANAGER.ALIAS\' | translate }}</th>\n <th md-column md-order-by="type">{{ \'CONTACTMANAGER.TYPE\' | translate }}</th>\n <th md-column md-order-by="required">{{ \'CONTACTMANAGER.REQUIRED\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.globalCustomFields.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="globalCustomField" md-select-id="id" ng-repeat="globalCustomField in vm.globalCustomFields.rows">\n <td md-cell ng-if="globalCustomField.userpic"><img class="avatar" alt="{{globalCustomField.name}}" ng-src="api/users/{{globalCustomField.id}}/avatar" /></td>\n <td md-cell ng-if="!globalCustomField.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{globalCustomField.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditGlobalCustomField($event, globalCustomField)" md-cell class="id ">{{globalCustomField.id}}</td>\n <td ng-click="vm.createOrEditGlobalCustomField($event, globalCustomField)" md-cell class="alias ">{{globalCustomField.alias}}</td>\n <td ng-click="vm.createOrEditGlobalCustomField($event, globalCustomField)" md-cell class="type ">{{ vm.arraytype[globalCustomField.type].option }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(globalCustomField, ev) : vm.createOrEditGlobalCustomField($event, globalCustomField)" md-cell class="required ">\n <md-icon md-colors="{color: {{globalCustomField.required ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{globalCustomField.required ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CONTACTMANAGER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(globalCustomField, $event )" translate="CONTACTMANAGER.EDIT_GLOBALCUSTOMFIELD">\n Edit GlobalCustomField\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(globalCustomField, $event )" translate="CONTACTMANAGER.DELETE_GLOBALCUSTOMFIELD">\n Delete GlobalCustomField\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.globalCustomFields.count}}" md-on-paginate="vm.getGlobalCustomFields" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / GLOBALCUSTOMFIELD TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD GLOBALCUSTOMFIELD BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-globalCustomField-button" ng-click="vm.createOrEditGlobalCustomField($event)" aria-label="add globalCustomField" translate translate-attr-aria-label="CONTACTMANAGER.ADD_GLOBALCUSTOMFIELD">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD GLOBALCUSTOMFIELD BUTTON --\x3e\n</div>'),e.put("app/main/apps/contactmanager/views/lists/create/dialog.html",'<md-dialog class="list-dialog" aria-label="New List">\n <form name="listForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.list.name" ng-required="true" autofocus>\n\n <div ng-messages="listForm[\'name\'].$error" ng-show="listForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.list.description">\n\n <div ng-messages="listForm[\'description\'].$error" ng-show="listForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newList" ng-click="vm.saveList()" class="send-button md-accent md-raised" ng-disabled="listForm.$invalid || listForm.$pristine" aria-label="SAVE" translate="CONTACTMANAGER.SAVE" translate-attr-aria-label="CONTACTMANAGER.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newList" ng-click="vm.addNewList()" class="send-button md-accent md-raised" ng-disabled="listForm.$invalid" aria-label="ADD" translate="CONTACTMANAGER.ADD_LIST" translate-attr-aria-label="CONTACTMANAGER.ADD_LIST">\n ADD LIST\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newList" ng-click="vm.deleteList($event)" aria-label="DELETE" translate translate-attr-aria-label="CONTACTMANAGER.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="CONTACTMANAGER.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/lists/edit/agentadd/agentadd.html",'<md-dialog class="list-dialog" aria-label="list" ng-init="vm.onInit()">\n <form name="listForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="CONTACTMANAGER.AGENTADD_LIST">Add Agent to list</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/lists/edit/customFields/dialog.html",'<md-dialog class="customField-dialog" aria-label="New CustomField">\n <form name="customFieldForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.ALIAS">Alias</label>\n <input type="" name="alias" ng-model="vm.customField.alias" ng-required="true" autofocus>\n\n <div ng-messages="customFieldForm[\'alias\'].$error" ng-show="customFieldForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.ALIAS_REQUIRED">Alias field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.TYPE">Type</label>\n <md-select name="type" ng-model="vm.customField.type" required ng-disabled="!vm.newCustomField">\n <md-option ng-value="\'text\'">Text</md-option>\n <md-option ng-value="\'select\'">Select</md-option>\n <md-option ng-value="\'number\'">Number</md-option>\n <md-option ng-value="\'switch\'">Switch</md-option>\n <md-option ng-value="\'datetime\'">Datetime</md-option>\n </md-select>\n <div ng-messages="customFieldForm[\'type\'].$error" ng-show="customFieldForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.customField.type == \'select\'" class="md-block">\n <md-list>\n <md-list-item layout-margin>\n <md-button class="md-fab md-mini md-secondary" ng-click="vm.addItem(vm.customField.values);">\n <md-tooltip><span translate="CONTACTMANAGER.ADD">ADD</span></md-tooltip>\n <md-icon md-font-icon="icon-plus" aria-label="alert error"></md-icon>\n </md-button>\n <md-button ng-if="vm.customField.values.length" class="md-fab md-mini md-warn md-secondary" ng-click="vm.removeItems(vm.customField.values);">\n <md-tooltip><span translate="CONTACTMANAGER.DELETE_ALL">Delete All</span></md-tooltip>\n <md-icon md-font-icon="icon-delete" aria-label="alert error"></md-icon>\n </md-button>\n </md-list-item>\n </md-list>\n <md-list ng-sortable="vm.sortable">\n <md-list-item ng-repeat="item in vm.customField.values" style="border: 1px solid #ccc!important; border-radius: 7px;" layout-margin>\n <div>\n <md-icon class="s24" style="cursor:move" md-font-icon="icon-drag" aria-label="drag"></md-icon>\n <input type="text" ng-model="item.value" flex>\n </div>\n <md-button class="md-fab md-mini md-warn md-secondary" ng-click="vm.removeItem(vm.customField.values, $index);">\n <md-tooltip><span translate="CONTACTMANAGER.DELETE">DELETE</span></md-tooltip>\n <md-icon md-font-icon="icon-delete" aria-label="alert error"></md-icon>\n </md-button>\n </md-list-item>\n </md-list>\n <md-list>\n <md-list-item ng-if="!vm.customField.values.length" layout="row" layout-align="center center">\n <em translate="CONTACTMANAGER.NO_AVAILABLE_ITEMS">No Available Items</em>\n </md-list-item>\n </md-list>\n </div>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.customField.required" aria-label="Required"><span translate="CONTACTMANAGER.REQUIRED">Required</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.customField.type == \'text\'" class="md-block">\n <md-switch ng-model="vm.customField.clickToAction" aria-label="clickToAction"><span translate="CONTACTMANAGER.CLICKTOACTION">clickToAction</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.customField.clickToAction" class="md-block">\n <label translate="CONTACTMANAGER.ACTIONTYPE">actionType</label>\n <md-select name="actionType" ng-model="vm.customField.actionType">\n <md-option ng-value="\'voice\'">Voice</md-option>\n </md-select>\n <div ng-messages="customFieldForm[\'actionType\'].$error" ng-show="customFieldForm[\'actionType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.ACTIONTYPE_REQUIRED">actionType field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newCustomField" ng-click="vm.saveCustomField()" class="send-button md-accent md-raised" ng-disabled="customFieldForm.$invalid || customFieldForm.$pristine" aria-label="SAVE" translate="CONTACTMANAGER.SAVE" translate-attr-aria-label="CONTACTMANAGER.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newCustomField" ng-click="vm.addNewCustomField()" class="send-button md-accent md-raised" ng-disabled="customFieldForm.$invalid" aria-label="ADD" translate="CONTACTMANAGER.ADD_CUSTOMFIELD" translate-attr-aria-label="CONTACTMANAGER.ADD_CUSTOMFIELD">\n ADD CUSTOMFIELD\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newCustomField" ng-click="vm.deleteCustomField($event)" aria-label="DELETE" translate translate-attr-aria-label="CONTACTMANAGER.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="CONTACTMANAGER.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/lists/edit/view.html",'<div id="contactmanager-list" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-lists-button md-icon-button" aria-label="Go to lists" ng-click="vm.gotoLists()" translate translate-attr-aria-label="CONTACTMANAGER.GO_TO_LISTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="list-image" hide-xs>\n <img ng-src="assets/images/business/lists.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.list.id}}\n <span ng-if="vm.list.name">{{vm.list.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="CONTACTMANAGER.CREATED_AT"></span> <span>{{vm.list.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.gotogoto(vm.list, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n <md-tooltip><span translate="CONTACTMANAGER.GOTO_LIST"></span></md-tooltip>\n <md-icon md-font-icon="icon-forward"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.list, $event)" class="md-fab md-warn md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="CONTACTMANAGER.AGENTADD_LIST"></span></md-tooltip>\n <md-icon md-font-icon="icon-eye"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveList()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (customFieldsForm.$invalid) || (voiceDispositionsForm.$invalid)" translate="CONTACTMANAGER.SAVE" translate-attr-aria-label="CONTACTMANAGER.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="CONTACTMANAGER.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="list-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CONTACTMANAGER.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.list.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.list.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.PREFIX">Prefix</label>\n <input type="text" name="dialPrefix" ng-model="vm.list.dialPrefix" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'dialPrefix\'].$error" ng-show="generalForm[\'dialPrefix\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.PREFIX_REQUIRED">Prefix field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CONTACTMANAGER.CUSTOMFIELDS">CUSTOMFIELDS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="list-detail-form-container customfields md-background-bg md-whiteframe-1dp">\n <div ng-controller="ListCustomFieldsController as vm_dc" ng-init="vm_dc.init(vm.list, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedListCustomFields.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CONTACTMANAGER.CUSTOMFIELDS">CustomFields</span>\n <ms-search-bar on-search="vm_dc.getListCustomFields()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditListCustomField($event)" aria-label="add customField" translate translate-attr-label="CONTACTMANAGER.ADD_CUSTOMFIELD">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedListCustomFields.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedListCustomFields.length}} {{vm_dc.selectedListCustomFields.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedListCustomFields" csv-label="true" filename="lists.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedListCustomFields($event)" aria-label="delete selected" translate translate-attr-label="CONTACTMANAGER.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedListCustomFields" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getListCustomFields">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'CONTACTMANAGER.ID\' | translate }}\n </th>\n <th md-column md-order-by="alias">\n {{ \'CONTACTMANAGER.ALIAS\' | translate }}\n </th>\n <th md-column md-order-by="type">\n {{ \'CONTACTMANAGER.TYPE\' | translate }}\n </th>\n <th md-column md-order-by="required">\n {{ \'CONTACTMANAGER.REQUIRED\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="customField" md-select-id="id" ng-repeat="customField in vm_dc.listCustomFields.rows">\n <td ng-click="vm_dc.createOrEditListCustomField($event, customField)" md-cell>\n {{customField.id}}\n </td>\n <td ng-click="vm_dc.createOrEditListCustomField($event, customField)" md-cell>\n {{customField.alias}}\n </td>\n <td ng-click="vm_dc.createOrEditListCustomField($event, customField)" md-cell>\n {{ vm_dc.arraytype[customField.type].option }} </td>\n\n <td ng-click="vm_dc.createOrEditListCustomField($event, customField)" md-cell class="required ">\n <md-icon md-colors="{color: {{customField.required ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{customField.required? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CONTACTMANAGER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditListCustomField($event, customField)" translate="CONTACTMANAGER.EDIT_CUSTOMFIELD">\n Edit CustomField\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(customField, $event)" translate="CONTACTMANAGER.DELETE_CUSTOMFIELD">\n Delete CustomField\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.listCustomFields.rows.length">\n <td md-cell colspan="9">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="CONTACTMANAGER.NO_CUSTOMFIELD_AVAILABLE">No customfield available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.listCustomFields.count}}" md-on-paginate="vm_dc.getListCustomFields" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CONTACTMANAGER.DISPOSITIONS">DISPOSITIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div ng-controller="ListDispositionsController as vm_dc" ng-init="vm_dc.init(vm.list, vm.crudPermissions)">\n <div layout="row">\n <div class="column" flex="20">\n <md-card class="mt-0">\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm_dc.query.level = null; vm_dc.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\n </button>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm_dc.query.level" ng-change="vm_dc.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm_dc.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n <div class="list-detail-form-container voicedispositions md-background-bg md-whiteframe-1dp" flex="80">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedListDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CONTACTMANAGER.DISPOSITIONS">Dispositions</span>\n <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditDisposition($event)" aria-label="Add contactmanager dispositions" translate translate-attr-label="CONTACTMANAGER.ADD_DISPOSITION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedDispositions.length}}\n {{vm_dc.selectedDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedDispositions" csv-label="true" filename="lists.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedDispositions($event)" aria-label="delete selected" translate translate-attr-label="CONTACTMANAGER.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_dc.selectedDispositions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getDispositions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'CONTACTMANAGER.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'CONTACTMANAGER.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'CONTACTMANAGER.DESCRIPTION\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_dc.dispositions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="disposition" md-select-id="id" ng-repeat="disposition in vm_dc.dispositions.rows">\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm_dc.levels[disposition.level] }}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CONTACTMANAGER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(disposition, $event)" translate="TOOLS.DELETE_DISPOSITION">\n Delete Disposition\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.dispositions.count}}" md-on-paginate="vm_dc.getDispositions" md-page-select>\n </md-table-pagination>\n </div>\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/contactmanager/views/lists/lists.html",'<div id="lists" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-account-circle" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="CONTACTMANAGER.LISTS">Lists</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="CONTACTMANAGER.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedLists.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedLists =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="CONTACTMANAGER.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-lists-count">\n <span>{{vm.selectedLists.length}}</span>\n <span translate="CONTACTMANAGER.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="CONTACTMANAGER.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllLists()" translate="CONTACTMANAGER.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectLists()" translate="CONTACTMANAGER.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedLists" csv-label="true" filename="lists.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedLists($event)" aria-label="delete selected" translate translate-attr-label="CONTACTMANAGER.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- LIST TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedLists" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getLists">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'CONTACTMANAGER.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'CONTACTMANAGER.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'CONTACTMANAGER.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.lists.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="list" md-select-id="id" ng-repeat="list in vm.lists.rows">\n <td md-cell ng-if="list.userpic"><img class="avatar" alt="{{list.name}}" ng-src="api/users/{{list.id}}/avatar" /></td>\n <td md-cell ng-if="!list.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{list.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(list, ev) : vm.createOrEditList($event, list)" md-cell class="id ">{{list.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(list, ev) : vm.createOrEditList($event, list)" md-cell class="name ">{{list.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(list, ev) : vm.createOrEditList($event, list)" md-cell class="description ">{{list.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CONTACTMANAGER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(list, $event )" translate="CONTACTMANAGER.EDIT_LIST">\n Edit List\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotocontactsgoto(list, $event )" translate="CONTACTMANAGER.GOTOCONTACTS_LIST">\n goToContacts List\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.role === \'admin\' || vm.userProfile.downloadContactManagerLists">\n\n <md-button ng-click="vm.exportcsvcontactsexport(list, $event )" translate="CONTACTMANAGER.EXPORTCSVCONTACTS_LIST">\n exportCsvContacts List\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(list, $event )" translate="CONTACTMANAGER.AGENTADD_LIST">\n AgentAdd List\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(list, $event )" translate="CONTACTMANAGER.DELETE_LIST">\n Delete List\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.lists.count}}" md-on-paginate="vm.getLists" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / LIST TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD LIST BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-list-button" ng-click="vm.createOrEditList($event)" aria-label="add list" translate translate-attr-aria-label="CONTACTMANAGER.ADD_LIST">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD LIST BUTTON --\x3e\n</div>'),e.put("app/main/apps/dashboards/views/custom/custom.html",'<div ng-if="!vm.customDashboard">\n <p>Custom Dashboard not available...</p>\n</div>\n<div id="dashboard-custom" ng-if="vm.customDashboard" ng-cloak layout-fill>\n <md-content>\n <md-toolbar class="md-default md-accent filter-header">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm.customDashboard.name}}</span>\n <div flex></div>\n <div layout="column">\n <span class="font-size-10" translate="DASHBOARDS.FILTER_VOICE_QUEUES">Filter Voice Queues</span>\n <md-select placeholder="Select one or more queues" class="font-size-12 no-margin w-200" md-on-close="vm.onChangeVoiceQueues()" ng-model="vm.voiceQueuesSelected" multiple aria-label="voiceQueues">\n <md-option ng-value="voiceQueue.id" ng-repeat="voiceQueue in vm.voiceQueues.rows">{{ voiceQueue.name }}</md-option>\n </md-select>\n </div>\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-icon-button" ng-click="vm.goToEdit()" aria-label="goToEdit">\n <md-tooltip md-direction="top"><span translate="DASHBOARDS.EDIT"></span></md-tooltip>\n <md-icon md-font-icon="icon-table-edit"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <ms-widget-engine config="vm.customDashboard"></ms-widget-engine>\n </md-content>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/agent.general.html",'<div id="agent-general" layout="column">\n <div layout="row" layout-align="start center" class="md-primary-bg">\n <md-button class="md-raised no-margin width-50" style="border-radius: 0px" ng-class="{\'md-primary\': !vm.isActiveTab(0)}" ng-click="vm.onClickTab(0)" aria-label="home">\n <md-tooltip md-direction="bottom" md-delay="500">Home</md-tooltip>\n <md-icon md-font-icon="icon-home" class="icon"></md-icon>\n </md-button>\n\n <ms-tab-scroll style="overflow: hidden;">\n <div layout="column" ng-repeat="(key, tab) in vm.tabs | orderByDate " ng-click="vm.onClickTab(tab.id)" ng-class="{\'grey-50-bg\': vm.isActiveTab(tab.id)}">\n <div style="height: 34px" layout="row" layout-align="space-between center">\n <md-icon md-font-icon="{{tab.icon}}" class="icon s16 margin-horizontal-5" ng-class="tab.color + \'-fg\'">\n </md-icon>\n <span class="text-truncate font-size-12" ng-class="vm.isActiveTab(tab.id) ? \'black-fg\' : \'grey-300-fg\'">\n {{tab.title}}\n <span ng-if="tab.badges" class="badge md-white-fg md-red-bg">{{tab.badges}}</span></span>\n <md-button class="md-icon-button md-mini no-margin" ng-class="vm.isActiveTab(tab.id) ? \'md-primary\' : \'grey-300-fg\'" aria-label="close" ng-click="vm.closeTab(tab); $event.stopPropagation()">\n <md-icon md-font-icon="icon-close-circle-outline" class="icon s16"></md-icon>\n </md-button>\n </div>\n <div style="height: 2px" ng-class="vm.isActiveTab(tab.id) ? tab.color + \'-bg\' : \'\'"></div>\n </div>\n </ms-tab-scroll>\n </div>\n <div layout="row" class="agent-content" ng-if="vm.isActiveTab(0)" ng-style="{\'top\': vm.detectBrowser.browser == \'safari\' ? \'100px\' : \'36px\'}" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.html\'" ng-controller="AgentGeneralHomeController as vm_home" ng-init="vm_home.init(vm.license, vm.setting)"></div>\n <div ng-if="!vm.isActiveTab(0)" ng-repeat="(key, tab) in vm.tabs | orderByDate " ng-switch="tab.type">\n <div ng-switch-when="contact">\n <div class="agent-content" ms-scroll ng-if="vm.isActiveTab(tab.id)" ng-style="{\'top\': vm.detectBrowser.browser == \'safari\' ? \'100px\' : \'36px\'}" ng-include="\'app/main/apps/dashboards/views/general/agent/contact/agent.general.contact.html\'" ng-controller="AgentGeneralContactController as vm" ng-init="vm.init(tab,$parent.vm.license)"></div>\n </div>\n <div ng-switch-when="popup">\n <div ng-if="vm.isActiveTab(tab.id)" ms-scroll ng-include="\'app/main/apps/dashboards/views/general/agent/popup/agent.general.popup.html\'" ng-controller="AgentGeneralPopupController as vm" ng-init="vm.init(tab)"></div>\n </div>\n <div ng-switch-when="jscripty">\n <div class="agent-content" ms-scroll ng-if="vm.isActiveTab(tab.id)" ng-style="{\'top\': vm.detectBrowser.browser == \'safari\' ? \'100px\' : \'36px\'}" ng-include="\'app/main/apps/dashboards/views/general/agent/jscripty/agent.general.jscripty.html\'" ng-controller="AgentGeneralJscriptyController as vm" ng-init="vm.init(tab)"></div>\n </div>\n <div ng-switch-when="bot">\n <div id="interaction-app" ng-if="vm.isActiveTab(tab.id)" class="agent-content" ng-style="{\'top\': vm.detectBrowser.browser == \'safari\' ? \'100px\' : \'36px\'}" ng-include="\'app/main/apps/dashboards/views/general/agent/bot/agent.general.bot.html\'" ng-controller="AgentGeneralBotController as vm" ng-init="vm.init(tab, $parent.vm.setting)"></div>\n </div>\n <div ng-switch-when="interaction">\n <div id="interaction-app" ng-if="vm.isActiveTab(tab.id)" class="agent-content" ng-style="{\'top\': vm.detectBrowser.browser == \'safari\' ? \'100px\' : \'36px\'}" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.html\'" ng-controller="AgentGeneralInteractionController as vm" ng-init="vm.init(tab, $parent.vm.setting)">\n </div>\n </div>\n <div ng-switch-when="iframe">\n <div id="iframe" ng-if="vm.isActiveTab(tab.id)" class="agent-content" ng-style="{\'top\': vm.detectBrowser.browser == \'safari\' ? \'100px\' : \'36px\'}" ng-include="\'app/main/apps/dashboards/views/general/agent/iframe/agent.general.iframe.html\'" ng-controller="AgentGeneralIframeController as vm" ng-init="vm.init(tab, $parent.vm.setting)">\n </div>\n </div>\n </div>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/bot/agent.general.bot.html",'\x3c!-- CONTENT CARD --\x3e\n<md-content class="content-card" layout="row" layout-fill>\n\n <div ng-if="!vm.showInteraction" class="start-point" flex layout="column" layout-align="center center">\n <div class="big-circle md-whiteframe-4dp">\n <md-icon class="s128 md-accent pink-fg" md-font-icon="fas fa-robot"></md-icon>\n </div>\n <span class="app-title" translate="DASHBOARDS.WAITING">Waiting</span>\n <span class="hide show-gt-md secondary-text" translate="DASHBOARDS.LOADING_INTERACTION">We are loading the\n interaction...</span>\n </div>\n\n <div ng-if="vm.showInteraction" flex layout="row">\n <md-card flex="100" class="interaction">\n \x3c!-- TOOLBAR --\x3e\n <md-toolbar class="interaction-toolbar">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <md-icon md-font-icon="fas fa-robot" class="s20 pink-fg"></md-icon>\n <div class="padding-left-10" layout="column" layout-align="center start" flex>\n <div class="font-size-14" layout="row" layout-align="start center" layout-fill>\n <span>#{{vm.tab.data.uniqueid}} - {{vm.tab.title}}</span>\n </div>\n </div>\n <div layout="row" layout-align="end center">\n\n </div>\n </div>\n </md-toolbar>\n \x3c!-- / TOOLBAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <md-content id="interaction-content" name="{{\'interaction-content-\' + vm.tab.id}}" flex ms-scroll layout-wrap>\n <div class="interaction-messages">\n \x3c!-- MESSAGES --\x3e\n <div layout="row" ng-repeat="message in vm.messages.rows" class="md-padding message-row" ng-class="vm.getMessagesAlignment(message)">\n <img ng-if="message.direction ===\'in\'" src="assets/images/avatars/customer.png" class="avatar" />\n <img ng-if="message.direction ===\'out\'" class="avatar" src="assets/images/avatars/robot.png">\n\n <div class="bubble" ng-switch="message.direction">\n <div>\n <div ng-switch-when="in" class="time secondary-text">\n {{vm.tab.title}} - {{message.createdAt | date: \'medium\'}}\n </div>\n <div ng-switch-when="out" class="time secondary-text" layout="row" layout-align="end center">\n <div layout-padding>\n System - {{message.createdAt | date: \'medium\'}}\n </div>\n <div>\n <md-icon class="s18" md-font-icon="icon-check-all md-accent"></md-icon>\n </div>\n </div>\n </div>\n <div ng-bind-html="message.body | embed:vm.emojiOptions" class="message" layout="row" layout-align="end center"></div>\n </div>\n </div>\n \x3c!-- / MESSAGES --\x3e\n </div>\n </md-content>\n \x3c!-- / CONTENT --\x3e\n </md-card>\n </div>\n</md-content>\n\x3c!-- / CONTENT CARD --\x3e'),e.put("app/main/apps/dashboards/views/general/agent/contact/agent.general.contact.html",'<md-tabs md-selected="vm.currentTab" md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="DASHBOARDS.DETAIL">Detail</span>\n </md-tab-label>\n <md-tab-body>\n <md-content>\n <div layout="row" class="pr-10">\n <div layout="row" flex="75" class="flex-scrollable only-x">\n <md-card ng-repeat="call in vm.tab.calls track by call.uniqueid" class="call-info-card">\n <md-progress-linear md-mode="indeterminate" ng-if="vm.checkingCallStatus"></md-progress-linear>\n <md-card-header layout="row" layout-align="space-between">\n <span ng-if="call.answertime" class="text-boxed indigo-100-bg ml-0">\n <timer start-time="call.answertime"></timer>\n <md-tooltip md-direction="bottom">\n {{ \'DASHBOARDS.ELAPSED_ANSWERED\' | translate }}\n </md-tooltip>\n </span>\n <span ng-if="call.disposedAt" class="text-boxed amber-200-bg">\n <timer start-time="call.disposedAt"></timer>\n <md-tooltip md-direction="bottom">\n {{ \'DASHBOARDS.ELAPSED_DISPOSED\' | translate }}\n </md-tooltip>\n </span>\n <md-button class="md-icon-button no-margin reload-button" ng-click="vm.checkCallStatus(call)" ng-disabled="vm.checkingCallStatus">\n <md-icon md-font-icon="icon-reload" class="s22"></md-icon>\n <md-tooltip md-direction="bottom">\n {{ \'DASHBOARDS.RELOAD\' | translate }}\n </md-tooltip>\n </md-button>\n </md-card-header>\n <md-divider></md-divider>\n <md-card-content>\n <div layout="column" layout-align="space-between start" class="word-break-all mr-16">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="{{ call.routeId ? \'icon-phone-outgoing\' : \'icon-phone-incoming\'}}" class="s20 mr-5">\n </md-icon>\n <span class="h2" privacy ng-cloak>{{ call.routeId ? call.destcalleridnum : call.calleridnum }}</span>\n </div>\n\n <div class="subtitle h4 secondary-text" ng-if="call.calleridname && call.calleridname != \'<unknown>\' && !call.routeId">\n <md-icon md-font-icon="icon-account" class="s20"></md-icon>\n Name: <span privacy ng-cloak>{{ call.calleridname }}</span>\n </div>\n\n <div class="text h4 pt-8" ng-if="call.queue">\n <md-icon md-font-icon="icon-stackoverflow" class="s20"></md-icon>\n Queue: {{call.queue}}\n </div>\n <div class="text h4 pt-8" ng-if="call.variables.extravar">\n <md-icon md-font-icon="icon-minus" class="s20"></md-icon>\n Extra: {{call.variables.extravar}}\n </div>\n </div>\n <div layout="row" layout-align="center end" class="mt-8">\n <md-button ng-if="call.disposedAt" type="submit" ng-click="vm.disposeCall($event, call)" class="send-button md-accent md-raised mr-0 mv-0">\n {{ \'DASHBOARDS.DISPOSE\' | translate}}\n </md-button>\n </div>\n </md-card-content>\n </md-card>\n </div>\n <div flex="25" layout="row" layout-md="column" layout-sm="column" layout-align="end center" layout-align-md="center center">\n <md-button type="submit" ng-click="vm.mergeContact($event)" class="send-button md-raised md-accent ng-scope" ng-if="!vm.newContact" ng-disabled="vm.detailForm.$invalid || vm.customFieldsForm.$invalid || vm.socialForm.$invalid" aria-label="merge">\n <md-tooltip md-direction="top"><span translate="DASHBOARDS.MERGE"></span></md-tooltip>\n <md-icon md-font-icon="icon-source-fork"></md-icon>\n </md-button>\n <md-button type="submit" ng-click="vm.duplicateContact($event)" class="send-button md-raised md-accent ng-scope" ng-if="!vm.newContact" ng-disabled="vm.detailForm.$invalid || vm.customFieldsForm.$invalid || vm.socialForm.$invalid" aria-label="duplicate">\n <md-tooltip md-direction="top"><span translate="DASHBOARDS.DUPLICATE"></span></md-tooltip>\n <md-icon md-font-icon="icon-content-duplicate"></md-icon>\n </md-button>\n <md-button type="submit" ng-click="vm.addNewContact($event)" class="send-button md-accent md-raised" ng-if="vm.newContact" ng-disabled="vm.detailForm.$invalid || vm.customFieldsForm.$invalid || vm.socialForm.$invalid" aria-label="add">\n {{ \'DASHBOARDS.ADD\'| translate }}\n </md-button>\n <md-button type="submit" ng-click="vm.saveContact($event)" class="send-button md-accent md-raised" ng-if="!vm.newContact" ng-disabled="vm.detailForm.$invalid || vm.customFieldsForm.$invalid || vm.socialForm.$invalid" aria-label="save">\n {{ \'DASHBOARDS.SAVE\' | translate }}\n </md-button>\n </div>\n </div>\n <div layout="row">\n <div layout="column" flex="75">\n <md-card layout-padding>\n <div class="h2 secondary-text text-truncate" translate="DASHBOARDS.PERSONAL_INFO">\n PERSONAL_INFO</div>\n <div class="subtitle secondary-text">\n <span translate="CONTACTMANAGER.CREATED_AT"></span>\n <span>{{vm.contact.createdAt | date:\'medium\'}}</span>\n </div>\n\n <form name="vm.detailForm" novalidate>\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <div layout="row" flex>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="DASHBOARDS.FIRSTNAME">First Name</label>\n <md-icon md-font-icon="icon-account" class="firstname"></md-icon>\n <input type="text" name="firstName" ng-model="vm.contact.firstName" class="text-truncate" required privacy ng-cloak>\n <div ng-messages="vm.detailForm.firstName.$error" ng-show="vm.detailForm.firstName.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.FIRSTNAME_REQUIRED">First name\n field is required</span>\n </div>\n </div>\n </md-input-container>\n <div>\n <md-menu ng-if="!vm.newContact">\n <md-button ng-disabled="!vm.license.jscripty" class="md-icon-button md-raised md-accent ng-scope md-ink-ripple" title="JSCRIPTY PROJECTS" ng-click="$mdOpenMenu($event); vm.getJscriptyProjects();" aria-label="jscripty">\n <md-icon md-font-icon="icon-script"></md-icon>\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if="vm.loadingJscriptyProjects">\n <md-progress-circular class="md-accent margin-auto" md-diameter="32" md-mode="indeterminate">\n </md-progress-circular>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingJscriptyProjects && vm.jscriptyProjects.count > 0" ng-repeat="project in vm.jscriptyProjects.rows">\n <md-button ng-click="vm.addJscriptyTab(project, $event)">\n <md-icon md-font-icon="icon-script"></md-icon>\n {{project.name}}\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingJscriptyProjects && (!vm.jscriptyProjects || vm.jscriptyProjects.count === 0)">\n <md-button disabled translate="DASHBOARDS.NO_JSCRIPTY_PROJECTS_AVAILABLE">\n <md-icon md-font-icon="icon-script"></md-icon>\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </div>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="DASHBOARDS.LASTNAME">Last Name</label>\n <input type="text" name="lastName" ng-model="vm.contact.lastName" class="text-truncate" privacy ng-cloak>\n </md-input-container>\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <div layout="row" flex>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="DASHBOARDS.PHONE">Phone</label>\n <md-icon md-font-icon="icon-phone"></md-icon>\n <input type="text" name="phone" ng-model="vm.contact.phone" class="text-truncate" privacy ng-cloak>\n <div class="hint"><span ng-show="!vm.user.phoneBarRemoteControl || !vm.contact.phone" translate="CONTACTMANAGER.HELP.PHONEBAR_API"></span></div>\n </md-input-container>\n <div>\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="vm.contact.phone" prefix="vm.list ? vm.list.dialPrefix : null" license="vm.license" type="\'button\'"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </div>\n </div>\n <div flex="5"></div>\n <div layout="row" flex>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="DASHBOARDS.MOBILE">Mobile</label>\n <md-icon md-font-icon="icon-cellphone-iphone"></md-icon>\n <input type="text" name="mobile" ng-model="vm.contact.mobile" class="text-truncate" privacy ng-cloak>\n <div class="hint"><span ng-show="!vm.user.phoneBarRemoteControl || !vm.contact.mobile" translate="CONTACTMANAGER.HELP.PHONEBAR_API"></span></div>\n </md-input-container>\n <div>\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="vm.contact.mobile" prefix="vm.list ? vm.list.dialPrefix : null" license="vm.license" type="\'button\'"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </div>\n <div>\n <md-menu ng-if="!vm.newContact">\n <md-button ng-disabled="!vm.license.messaging || !vm.hasPermission(107) || !vm.contact.mobile" class="md-icon-button md-raised md-accent ng-scope md-ink-ripple" title="NEW SMS" ng-click="$mdOpenMenu($event); vm.getAccounts(\'sms\')" aria-label="sms">\n <md-icon md-font-icon="icon-message-text"></md-icon>\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if="vm.loadingAccounts">\n <md-progress-circular class="md-accent margin-auto" md-diameter="32" md-mode="indeterminate">\n </md-progress-circular>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && vm.smsAccounts.count > 0" ng-repeat="account in vm.smsAccounts.rows">\n <md-button ng-click="vm.composeInteraction($event, \'Sms\', account, vm.contact.mobile)">\n <md-icon md-font-icon="icon-message-text"></md-icon>\n {{account.name}}\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && (!vm.smsAccounts || vm.smsAccounts.count === 0)">\n <md-button disabled translate="DASHBOARDS.NO_SMS_ACCOUNTS_AVAILABLE">\n <md-icon md-font-icon="icon-message-text"></md-icon>\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n <div>\n <md-menu ng-if="!vm.newContact">\n <md-button ng-disabled="!vm.license.whatsapp || !vm.hasPermission(114) || !vm.contact.mobile" class="md-icon-button md-raised md-accent ng-scope md-ink-ripple" title="NEW WHATSAPP" ng-click="$mdOpenMenu($event); vm.getAccounts(\'whatsapp\')" aria-label="whatsapp">\n <md-icon md-font-icon="icon-whatsapp"></md-icon>\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if="vm.loadingAccounts">\n <md-progress-circular class="md-accent margin-auto" md-diameter="32" md-mode="indeterminate">\n </md-progress-circular>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && vm.whatsappAccounts.count > 0" ng-repeat="account in vm.whatsappAccounts.rows">\n <md-button ng-click="vm.composeInteraction($event, \'Whatsapp\', account, vm.contact.mobile)">\n <md-icon md-font-icon="icon-whatsapp"></md-icon>\n {{account.name}}\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && (!vm.whatsappAccounts || vm.whatsappAccounts.count === 0)">\n <md-button disabled translate="DASHBOARDS.NO_WHATSAPP_ACCOUNTS_AVAILABLE">\n <md-icon md-font-icon="icon-whatsapp"></md-icon>\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </div>\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <div layout="row" flex>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="DASHBOARDS.EMAIL">Email</label>\n <md-icon md-font-icon="icon-email" class="email"></md-icon>\n <input type="email" name="email" ng-model="vm.contact.email" class="text-truncate" privacy ng-cloak>\n <div ng-messages="vm.detailForm.firstName.$error" ng-show="vm.detailForm.firstName.$touched" role="alert">\n <div ng-message="email">\n <span translate="DASHBOARDS.ERRORS.EMAIL_MUST_VALID">Email must be a\n valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <div>\n <md-menu ng-if="!vm.newContact">\n <md-button ng-disabled="!vm.license.mail || !vm.hasPermission(106) || !vm.contact.email" class="md-icon-button md-raised md-accent ng-scope md-ink-ripple" title="NEW EMAIL" ng-click="$mdOpenMenu($event); vm.getAccounts(\'mail\')" aria-label="email">\n <md-icon md-font-icon="icon-email"></md-icon>\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if="vm.loadingAccounts">\n <md-progress-circular class="md-accent margin-auto" md-diameter="32" md-mode="indeterminate">\n </md-progress-circular>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && vm.mailAccounts.count > 0" ng-repeat="account in vm.mailAccounts.rows">\n <md-button ng-click="vm.composeInteraction($event, \'Mail\', account, vm.contact.email)">\n <md-icon md-font-icon="icon-email"></md-icon>\n {{account.name}}\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && (!vm.mailAccounts || vm.mailAccounts.count === 0)">\n <md-button disabled translate="DASHBOARDS.NO_MAIL_ACCOUNTS_AVAILABLE">\n <md-icon md-font-icon="icon-email"></md-icon>\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </div>\n <div flex="5"></div>\n <div layout="row" flex>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="DASHBOARDS.FAX">Fax</label>\n <md-icon md-font-icon="icon-deskphone"></md-icon>\n <input type="text" name="fax" ng-model="vm.contact.fax" privacy ng-cloak>\n </md-input-container>\n <div>\n <md-menu ng-if="!vm.newContact">\n <md-button ng-disabled="!vm.license.fax || !vm.hasPermission(109) || !vm.contact.fax" class="md-icon-button md-raised md-accent ng-scope md-ink-ripple" title="NEW FAX" ng-click="$mdOpenMenu($event); vm.getAccounts(\'fax\')" aria-label="fax">\n <md-icon md-font-icon="icon-deskphone"></md-icon>\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if="vm.loadingAccounts">\n <md-progress-circular class="md-accent margin-auto" md-diameter="32" md-mode="indeterminate">\n </md-progress-circular>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && vm.faxAccounts.count > 0" ng-repeat="account in vm.faxAccounts.rows">\n <md-button ng-click="vm.composeInteraction($event, \'Fax\', account, vm.contact.fax)">\n <md-icon md-font-icon="icon-deskphone"></md-icon>\n {{account.name}}\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && (!vm.faxAccounts || vm.faxAccounts.count === 0)">\n <md-button disabled translate="DASHBOARDS.NO_FAX_ACCOUNTS_AVAILABLE">\n <md-icon md-font-icon="icon-deskphone"></md-icon>\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </div>\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="DASHBOARDS.DATE_OF_BIRTH">Date of Birth</label>\n <mdp-date-picker mdp-open-on-click mdp-format="YYYY-MM-DD" name="dateOfBirth" ng-model="vm.contact.dateOfBirth"></mdp-date-picker>\n </md-input-container>\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="DASHBOARDS.COMPANY">Company</label>\n <md-icon md-font-icon="icon-domain" class="email"></md-icon>\n <md-select name="company" ng-model="vm.contact.CompanyId">\n <md-option ng-value="company.id" ng-repeat="company in vm.tab.companies.rows">{{company.name}}\n </md-option>\n <md-option ng-value="null"><em translate="DASHBOARDS.NONE">None</em>\n </md-option>\n </md-select>\n </md-input-container>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="DASHBOARDS.TAG">TAG</label>\n <md-icon md-font-icon="icon-tag"></md-icon>\n <md-select ng-model="vm.tab.Tags" multiple>\n <md-option ng-value="tag.id" ng-repeat="tag in vm.tab.tags.rows">\n {{tag.name}}</md-option>\n </md-select>\n </md-input-container>\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="DASHBOARDS.COUNTRY">Country</label>\n <md-icon md-font-icon="icon-home" class="country"></md-icon>\n <input type="text" name="country" ng-model="vm.contact.country" class="text-truncate">\n </md-input-container>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="DASHBOARDS.CITY">City</label>\n <input type="text" name="city" ng-model="vm.contact.city">\n </md-input-container>\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="DASHBOARDS.STREET">Street</label>\n <input type="text" name="street" ng-model="vm.contact.street">\n </md-input-container>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="DASHBOARDS.POSTALCODE">Postal Code</label>\n <input type="text" name="postalCode" ng-model="vm.contact.postalCode">\n </md-input-container>\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate translate-attr-placeholder="DASHBOARDS.NOTES">Notes</label>\n <md-icon md-font-icon="icon-note"></md-icon>\n <textarea ng-model="vm.contact.description" type="text" max-rows="4"></textarea>\n </md-input-container>\n </div>\n </form>\n </md-card>\n <md-card layout-padding>\n <div class="h2 secondary-text text-truncate" translate="DASHBOARDS.SOCIAL">Social</div>\n <form name="vm.socialForm" novalidate>\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Facebook</label>\n <md-icon md-font-icon="icon-facebook" class="facebook"></md-icon>\n <input type="text" name="facebook" ng-model="vm.contact.facebook" class="text-truncate">\n </md-input-container>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Twitter</label>\n <md-icon md-font-icon="icon-twitter" class="twitter"></md-icon>\n <input type="text" name="twitter" ng-model="vm.contact.twitter" class="text-truncate">\n </md-input-container>\n </div>\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Line</label>\n <md-icon md-font-icon="fab fa-line"></md-icon>\n <input type="text" name="line" ng-model="vm.contact.line" class="text-truncate">\n </md-input-container>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Viber</label>\n <md-icon md-font-icon="fab fa-viber"></md-icon>\n <input type="text" name="viber" ng-model="vm.contact.viber" class="text-truncate">\n </md-input-container>\n </div>\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label>WeChat</label>\n <md-icon md-font-icon="fab fa-weixin"></md-icon>\n <input type="text" name="wechat" ng-model="vm.contact.wechat" class="text-truncate">\n </md-input-container>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Telegram</label>\n <md-icon md-font-icon="icon-telegram"></md-icon>\n <input type="text" name="telegram" ng-model="vm.contact.telegram" class="text-truncate">\n </md-input-container>\n </div>\n </form>\n </md-card>\n </div>\n <div flex="25" layout="column" layout-padding>\n <md-card flex="100" layout-padding>\n <div class="h2 secondary-text text-truncate" translate="DASHBOARDS.CUSTOM_FIELDS">CUSTOM\n FIELDS</div>\n <form name="vm.customFieldsForm" novalidate>\n\n \x3c!-- START INPUT LIST --\x3e\n <md-input-container class="md-block">\n <label translate translate-attr-placeholder="DASHBOARDS.LIST">List</label>\n <md-select name="list" ng-disabled="!vm.newContact" ng-model="vm.contact.ListId" ng-change="vm.getCustomFields(vm.contact.ListId)" required>\n <md-optgroup label="Lists">\n <md-option ng-value="list.id" ng-repeat="list in vm.lists.rows">#{{list.id}} - {{list.name}}\n </md-option>\n </md-optgroup>\n </md-select>\n </md-input-container>\n \x3c!-- END INPUT LIST --\x3e\n\n <div ng-repeat="customField in vm.tab.customFields.rows" ng-switch="customField.type">\n <md-input-container class="md-block" ng-switch-when="datetime">\n <label>{{customField.alias}}<span ng-if="customField.required">*</span></label>\n <div ng-init="vm.contact[\'cf_\' + customField.id] = vm.getDateFromString(vm.contact[\'cf_\' + customField.id])">\n <mdp-date-picker mdp-open-on-click ng-required="customField.required" mdp-format="YYYY-MM-DD" ng-model="vm.contact[\'cf_\' + customField.id]">\n </mdp-date-picker>\n <mdp-time-picker mdp-open-on-click mdp-placeholder="Time" ng-required="customField.required" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.contact[\'cf_\' + customField.id]">\n </mdp-time-picker>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-switch-when="select">\n <label>{{customField.alias}}<span ng-if="customField.required">*</span></label>\n <md-select ng-model="vm.contact[\'cf_\' + customField.id]" ng-required="customField.required">\n <md-option ng-repeat="value in customField.values" ng-value="value.value">\n {{value.value}}</md-option>\n <md-option ng-value="null"><em translate="CONTACTMANAGER.NONE">None</em>\n </md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-block" ng-switch-when="switch">\n <md-switch aria-label="{{customField.alias}}" ng-model="vm.contact[\'cf_\' + customField.id]" ng-true-value="1" ng-false-value="0">\n {{customField.alias}}<span ng-if="customField.required">*</span>\n </md-switch>\n </md-input-container>\n\n <md-input-container class="md-block" ng-switch-default>\n <div layout-gt-sm="row" class="layout-gt-sm-row"></div>\n <div layout="row" flex>\n <md-input-container class="md-block" flex-gt-sm="">\n <label>{{customField.alias}}<span ng-if="customField.required">*</span></label>\n <input type="{{customField.type}}" ng-model="vm.contact[\'cf_\' + customField.id]" ng-required="customField.required">\n </md-input-container>\n <ms-click-to-call ng-if="customField.clickToAction && customField.actionType === \'voice\'" target="vm.contact[\'cf_\' + customField.id]" prefix="vm.list ? vm.list.dialPrefix : null" license="vm.license" type="\'button\'"></ms-click-to-call>\n </div>\n </md-input-container>\n </div>\n </form>\n </md-card>\n </div>\n </div>\n </md-content>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="DASHBOARDS.CUSTOMER_JOURNEY">Customer Journey</span>\n </md-tab-label>\n <md-tab-body>\n <md-content class="md-padding" id="journey-content">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.html\'">\n </div>\n </md-content>\n </md-tab-body>\n </md-tab>\n</md-tabs>'),e.put("app/main/apps/dashboards/views/general/agent/contact/dispose/dialog.html",'<md-dialog class="agent-dialog" aria-label="agent dispose">\n <form name="disposition" class="md-inline-form" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title" translate="DASHBOARDS.DISPOSE"></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()" ng-if="!vm.call.mandatoryDisposition">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div ng-if="!vm.isReschedule">\n <md-input-container class="md-block">\n <label translate="DASHBOARDS.DISPOSITION">Disposition</label>\n <md-select name="disposition" ng-model="vm.firstLevelDisposition" ng-change="vm.onDispositionChange(\'first\')" required>\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'first\' } : true">\n {{ disposition.name }}</md-option>\n </md-select>\n <div ng-messages="dispositionForm.disposition.$error" ng-show="dispositionForm.disposition.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.DISPOSITION_REQUIRED">Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.firstLevelDisposition && vm.anySecondLevelDisposition" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="DASHBOARDS.SECOND_LEVEL_DISPOSITION">Second Level Disposition</label>\n <md-select name="secondLevelDisposition" ng-model="vm.secondLevelDisposition" ng-change="vm.onDispositionChange(\'second\')">\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'second\', ParentId: vm.firstLevelDisposition.id } : true">\n {{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.secondLevelDisposition" ng-click="vm.clearDispositionSelection(\'second\')" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear second level disposition selection">\n </md-icon>\n </md-button>\n </div>\n <div ng-if="vm.secondLevelDisposition && vm.anyThirdLevelDisposition" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="DASHBOARDS.THIRD_LEVEL_DISPOSITION">Third Level Disposition</label>\n <md-select name="thirdLevelDisposition" ng-model="vm.thirdLevelDisposition" ng-change="vm.onDispositionChange(\'third\')">\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'third\', ParentId: vm.secondLevelDisposition.id } : true">\n {{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.thirdLevelDisposition" ng-click="vm.clearDispositionSelection(\'third\')" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear third level disposition selection">\n </md-icon>\n </md-button>\n </div>\n <md-input-container class="md-block">\n <label translate="DASHBOARDS.NOTE">Note</label>\n <textarea ng-model="vm.note" md-maxlength="255" max-rows="5" autofocus></textarea>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.availableCalls === 1">\n <md-switch ng-model="vm.autoClose" aria-label="Auto Close">\n <span translate="DASHBOARDS.AUTOCLOSE">Automatically close contact tab after disposal</span>\n </md-switch>\n </md-input-container>\n </div>\n <div ng-if="vm.isReschedule">\n <div layout="row">\n <div flex class="md-block">\n <mdp-date-picker mdp-open-on-click required name="date" mdp-placeholder="Date" mdp-format="YYYY-MM-DD" mdp-min-date="vm.hopper.minDate" ng-model="vm.hopper.dateTime">\n <div ng-messages="disposition.date.$error" ng-show="disposition.date.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.DATE_REQUIRED">Date is required</span>\n </div>\n <div ng-message="format">\n <span translate="DASHBOARDS.ERRORS.DATE_INVALID">Date is invalid</span>\n </div>\n </div>\n </mdp-date-picker>\n </div>\n\n <div flex class="md-block">\n <mdp-time-picker mdp-open-on-click required name="time" mdp-placeholder="Time" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.hopper.dateTime">\n <div ng-messages="disposition.time.$error" ng-show="disposition.time.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.TIME_REQUIRED">Time is required</span>\n </div>\n <div ng-message="format">\n <span translate="DASHBOARDS.ERRORS.TIME_INVALID">Time is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </div>\n <md-input-container ng-if="!vm.dialerCall" class="md-block">\n <label translate="DASHBOARDS.CAMPAIGN">Campaign</label>\n <md-select name="queueCampaign" ng-model="vm.queueCampaign" required>\n <md-option ng-value="queueCampaign" ng-repeat="queueCampaign in vm.queueCampaigns.rows">\n {{ queueCampaign.name }} ({{ queueCampaign.dialActive ? \'Active\' : \'Not Active\' }})</md-option>\n </md-select>\n <div ng-messages="disposition.queueCampaign.$error" ng-show="disposition.queueCampaign.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.CAMPAIGN_REQUIRED">Campaign field is required</span>\n </div>\n </div>\n </md-input-container>\n </div>\n </md-dialog-content>\n <md-dialog-actions ng-if="!vm.isReschedule" layout="row">\n <md-button ng-disabled="disposition.$invalid || disposition.$pristine" class="send-button md-raised md-accent" ng-click="vm.saveDisposition()" ms-dialog-spinner>\n {{(vm.selectedDisposition.name ? \'DASHBOARDS.DISPOSE\' : \'DASHBOARDS.SAVE\') | translate}}\n </md-button>\n <md-button class="send-button md-raised md-primary" translate="DASHBOARDS.RESCHEDULE" ng-click="vm.saveDisposition(\'reschedule\')">\n Reschedule\n </md-button>\n <md-button class="send-button md-accent md-raised" translate="DASHBOARDS.RECALLME" ng-click="vm.saveDisposition(\'recallme\')">\n Recall Me\n </md-button>\n <span flex></span>\n <md-button ng-if="vm.hasBlackLists" class="md-raised md-warn" translate="DASHBOARDS.BLACKLIST" ng-click="vm.saveDisposition(\'blacklist\')">\n Blacklist\n </md-button>\n </md-dialog-actions>\n <md-dialog-actions ng-if="vm.isReschedule" layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.saveReschedule()" class="send-button md-accent md-raised" ng-disabled="disposition.$invalid || disposition.$pristine || vm.disable" aria-label="SAVE" translate="DASHBOARDS.SAVE" translate-attr-aria-label="DASHBOARDS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/contact/reschedule/dialog.html",'<md-dialog class="agent-dialog" aria-label="New Agent">\n <form name="dateTime" class="md-inline-form" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <div layout="row">\n <div flex class="md-block">\n <mdp-date-picker mdp-open-on-click required name="date" mdp-placeholder="Date" mdp-format="YYYY-MM-DD" mdp-min-date="vm.hopper.minDate" ng-model="vm.hopper.dateTime">\n <div ng-messages="dateTime.date.$error" ng-show="dateTime.date.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.DATE_REQUIRED">Date is required</span>\n </div>\n <div ng-message="format">\n <span translate="DASHBOARDS.ERRORS.DATE_INVALID">Date is invalid</span>\n </div>\n </div>\n </mdp-date-picker>\n </div>\n\n <div flex class="md-block">\n <mdp-time-picker mdp-open-on-click required name="time" mdp-placeholder="Time" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.hopper.dateTime">\n <div ng-messages="dateTime.time.$error" ng-show="dateTime.time.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.TIME_REQUIRED">Time is required</span>\n </div>\n <div ng-message="format">\n <span translate="DASHBOARDS.ERRORS.TIME_INVALID">Time is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-disabled="vm.disable" ng-click="vm.saveDialog()" class="send-button md-accent md-raised" ng-disabled="dateTime.$invalid || dateTime.$pristine" aria-label="SAVE" translate="DASHBOARDS.SAVE" translate-attr-aria-label="DASHBOARDS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/contact/selection/dialog.html",'<md-dialog ng-init="vm.onInit()" class="contact-trigger-dialog" aria-label="Select contact" ng-cloak>\n <md-toolbar class="red-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ \'DASHBOARDS.SELECT_CONTACT\' | translate }}</span>\n </div>\n </md-toolbar>\n <md-dialog-content class="h-400 pv-16" ms-scroll>\n <div layout="row" class="p-10">\n <span class="font-size-16">{{ \'DASHBOARDS.MULTIPLE_CONTACTS_FOUND\' | translate }}<strong> {{ vm.callNumber }}</strong>.</span>\n <span class="font-size-16"> {{ \'DASHBOARDS.WHICH_ONE_TO_USE\' | translate }}</span>\n </div>\n <md-grid-list md-cols-xs="1" md-cols="2" md-row-height="fit" ng-class="vm.paginatedContacts[vm.page - 1].length > 2 ? \'two-rows-layout\' : \'one-row-layout\'" flex>\n <md-grid-tile ng-repeat="contact in vm.paginatedContacts[vm.page - 1]" md-rowspan="1">\n <md-card layout="column" class="contact-info" no-padding no-margin ng-click="vm.selectedContact = contact;" ng-class="{ \'light-blue-50-bg\' : vm.selectedContact && vm.selectedContact.id === contact.id }" flex>\n <md-card-title class="pt-16">\n <md-card-title-text layout-align="center start">\n <span class="font-size-16 text-bold">#{{ contact.id }} -\n <span privacy ng-cloak>{{ contact.firstName }} {{ contact.lastName }}</span>\n </span>\n <em class="font-size-12">{{ \'DASHBOARDS.LAST_UPDATED\' | translate }}: {{ contact.updatedAt }}</em>\n <span class="font-size-12">{{ \'DASHBOARDS.LIST\' | translate }}: {{ vm.lists[contact.ListId] }}</span>\n </md-card-title-text>\n <md-button class="md-icon-button no-margin" aria-label="Selected">\n <md-icon md-font-icon="{{ vm.selectedContact && vm.selectedContact.id === contact.id ? \'icon-checkbox-marked-circle\' : \'icon-checkbox-blank-circle-outline\' }}" ng-class="{ \'green-fg\': vm.selectedContact && vm.selectedContact.id === contact.id }"></md-icon>\n </md-button>\n </md-card-title>\n <md-divider></md-divider>\n <md-card-content layout="row" layout-align="center start" class="p-10">\n <span class="font-size-16">{{ \'DASHBOARDS.MATCHING_FIELD\' | translate }}:\n <strong privacy ng-cloak>{{ contact.matchingField }}</strong>\n </span>\n </md-card-content>\n </md-card>\n </md-grid-tile>\n </md-grid-list>\n </md-dialog-content>\n <md-dialog-actions layout="row">\n <div ng-if="vm.paginatedContacts.length > 1" layout="row" layout-align="center center" flex>\n <md-button ng-click="vm.page = vm.page - 1;" class="md-icon-button no-margin" ng-class="{ \'hidden\': vm.page <= 1 }" aria-label="Previous page">\n <md-icon md-font-icon="icon-chevron-double-left"></md-icon>\n </md-button>\n <span>{{ \'DASHBOARDS.PAGE\' | translate }} {{ vm.page }} {{ \'DASHBOARDS.OF\' | translate }}\n {{ vm.paginatedContacts.length }}</span>\n <md-button ng-click="vm.page = vm.page + 1;" class="md-icon-button no-margin" ng-class="{ \'hidden\': !vm.paginatedContacts[vm.page] }" aria-label="Next page">\n <md-icon md-font-icon="icon-chevron-double-right"></md-icon>\n </md-button>\n </div>\n <md-button ng-click="vm.selectContact()" class="select-button md-accent md-raised" ng-disabled="!vm.selectedContact" aria-label="Select" translate="DASHBOARDS.SELECT" translate-attr-aria-label="DASHBOARDS.SELECT">\n SELECT\n </md-button>\n </md-dialog-actions>\n</md-dialog>vc'),e.put("app/main/apps/dashboards/views/general/agent/home/abandoned/agent.general.abandoned.html",'<div ng-cloak>\n <md-content>\n <md-tabs md-selected="vm.selectedTab" md-dynamic-height md-border-bottom>\n <md-tab ng-if="vm_home.hasPermission(110)" label="{{\'DASHBOARDS.VOICE\' | translate}}">\n <md-content ng-if="vm.selectedTab === 0" ng-include="\'app/main/apps/dashboards/views/general/agent/home/abandoned/voice/agent.general.abandoned.voice.html\'" ng-controller="AgentHomeAbandonedVoiceController as vm_voice">\n </md-content>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(110) && vm_home.license.dialer" label="{{\'DASHBOARDS.MOTION_BULL\' | translate}}">\n <md-content ng-if="vm.selectedTab === 1" ng-include="\'app/main/apps/dashboards/views/general/agent/home/abandoned/bull/agent.general.abandoned.bull.html\'" ng-controller="AgentHomeAbandonedBullController as vm_bull">\n </md-content>\n </md-tab>\n </md-tabs>\n </md-content>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/abandoned/bull/agent.general.abandoned.bull.html",'<md-card ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header blue-bg" ng-class="{\'h-128\' : vm_bull.isSearchBarVisible === true}">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.ABANDONEDQUEUECALLS">ABANDONED QUEUE CALLS</span>\n <ms-search-bar on-search="vm_bull.getAbandonedCalls()" query="vm_bull.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm_bull.isSearchBarVisible"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_bull.quickFilters" query="vm_bull.query" search="vm_bull.getAbandonedCalls()"></ms-quick-filter>\n <md-button class="md-icon-button reload-list" ng-click="vm_bull.refresh && vm_bull.refreshAbandonedCalls($event)" aria-label="Reload" translate translate-attr-label="DASHBOARDS.RELOAD">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip ng-if="vm_bull.showTooltip" md-visible="vm_bull.showTooltip">\n {{\'DASHBOARDS.CLICKRELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_bull.promise">\n <thead md-head md-order="vm_bull.query.sort" md-on-reorder="vm_bull.getAbandonedCalls">\n <tr md-row>\n <th md-column md-order-by="id">{{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column md-order-by="calleridname">{{\'DASHBOARDS.FULLNAME\' | translate}}</th>\n <th md-column md-order-by="calleridnum">{{\'DASHBOARDS.PHONE\' | translate}}</th>\n <th md-column md-order-by="queue">{{\'DASHBOARDS.QUEUE\' | translate}}</th>\n <th md-column md-order-by="queuecallerabandonAt">{{\'DASHBOARDS.ABANDONAT\' | translate}}</th>\n <th md-column md-order-by="queuecallerexitAt">{{\'DASHBOARDS.QUEUECALLEREXITAT\' | translate}}</th>\n <th md-column md-order-by="queuecallerexitreason">{{\'DASHBOARDS.QUEUECALLEREXITREASON\' | translate}}\n </th>\n <th md-column md-order-by="disposition">{{\'DASHBOARDS.DISPOSITION\' | translate}}</th>\n <th md-column md-order-by="secondDisposition">{{\'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}</th>\n <th md-column md-order-by="thirdDisposition">{{\'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.RESERVED\' | translate}}</th>\n <th md-column md-order-by="lastAssignedTo">{{\'DASHBOARDS.LASTASSIGNEDTO\' | translate}}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_bull.abandonedCalls.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="abandonedCall in vm_bull.abandonedCalls.rows">\n <td md-cell class="id">{{abandonedCall.id}}</td>\n <td md-cell class="firstName" privacy ng-cloak>{{abandonedCall.calleridname}}</td>\n <td md-cell class="phone">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="abandonedCall.calleridnum" license="vm_home.license" disabled="abandonedCall.lastAssignedTo !== vm_bull.currentUser.name">\n </ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td md-cell class="list">{{vm_bull.queuesMap[abandonedCall.queue]}}</td>\n <td md-cell class="list">\n {{abandonedCall.queuecallerabandonAt ? (abandonedCall.queuecallerabandonAt | formatdate) : (abandonedCall.queuecallerexitAt | formatdate) }}\n </td>\n <td md-cell class="list">\n {{abandonedCall.queuecallerexitAt ? (abandonedCall.queuecallerexitAt | formatdate) : undefined }}\n </td>\n <td md-cell class="list">{{abandonedCall.queuecallerexitreason}}</td>\n <td md-cell class="list">{{ abandonedCall.disposition }}</td>\n <td md-cell class="list">{{ abandonedCall.secondDisposition }}</td>\n <td md-cell class="list">{{ abandonedCall.thirdDisposition }}</td>\n <td md-cell class="actions">\n <md-switch no-margin ng-if="abandonedCall.lastAssignedTo === vm_bull.currentUser.name || !abandonedCall.lastAssignedTo" ng-disabled="vm_bull.disable[abandonedCall.id]" ng-model="abandonedCall.assigned" aria-label="reserved" ng-change="vm_bull.reserved(abandonedCall)">\n </md-switch>\n </td>\n <td md-cell class="list">{{abandonedCall.lastAssignedTo}}</td>\n <td md-cell class="actions">\n <md-menu ng-if="abandonedCall.lastAssignedTo === vm_bull.currentUser.name">\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="1">\n <md-menu-item>\n <md-button ng-click="vm_bull.dispose(abandonedCall)" class="text-capitalize" translate="DASHBOARDS.DISPOSE">Dispose\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-limit="vm_bull.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_bull.query.page" md-total="{{vm_bull.abandonedCalls.count}}" md-on-paginate="vm_bull.getAbandonedCalls" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/abandoned/dispose/dialog.html",'<md-dialog class="agent-dialog" aria-label="agent dispose">\n <form name="disposition" class="md-inline-form" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title" translate="DASHBOARDS.DISPOSE"></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div>\n <md-input-container class="md-block">\n <label translate="DASHBOARDS.DISPOSITION">Disposition</label>\n <md-select name="disposition" ng-model="vm.firstLevelDisposition" ng-change="vm.onDispositionChange(\'first\')" required>\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'first\' } : true">\n {{ disposition.name }}</md-option>\n </md-select>\n <div ng-messages="dispositionForm.disposition.$error" ng-show="dispositionForm.disposition.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.DISPOSITION_REQUIRED">Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.firstLevelDisposition && vm.anySecondLevelDisposition" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="DASHBOARDS.SECOND_LEVEL_DISPOSITION">Second Level Disposition</label>\n <md-select name="secondLevelDisposition" ng-model="vm.secondLevelDisposition" ng-change="vm.onDispositionChange(\'second\')">\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'second\', ParentId: vm.firstLevelDisposition.id } : true">\n {{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.secondLevelDisposition" ng-click="vm.clearDispositionSelection(\'second\')" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear second level disposition selection">\n </md-icon>\n </md-button>\n </div>\n <div ng-if="vm.secondLevelDisposition && vm.anyThirdLevelDisposition" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="DASHBOARDS.THIRD_LEVEL_DISPOSITION">Third Level Disposition</label>\n <md-select name="thirdLevelDisposition" ng-model="vm.thirdLevelDisposition" ng-change="vm.onDispositionChange(\'third\')">\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'third\', ParentId: vm.secondLevelDisposition.id } : true">\n {{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.thirdLevelDisposition" ng-click="vm.clearDispositionSelection(\'third\')" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear third level disposition selection">\n </md-icon>\n </md-button>\n </div>\n <md-input-container class="md-block">\n <label translate="DASHBOARDS.NOTE">Note</label>\n <textarea ng-model="vm.note" md-maxlength="255" max-rows="5" autofocus></textarea>\n </md-input-container>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button ng-disabled="disposition.$invalid || disposition.$pristine" class="send-button md-raised md-accent" ng-click="vm.saveDisposition()">\n'+" {{(vm.selectedDisposition.name ? 'DASHBOARDS.DISPOSE' : 'DASHBOARDS.SAVE') | translate}}\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>"),e.put("app/main/apps/dashboards/views/general/agent/home/abandoned/voice/agent.general.abandoned.voice.html",'<md-card ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header blue-bg" ng-class="{\'h-128\' : vm_voice.isSearchBarVisible === true}">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.ABANDONEDQUEUECALLS">ABANDONED QUEUE CALLS</span>\n <ms-search-bar on-search="vm_voice.getAbandonedCalls()" query="vm_voice.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm_voice.isSearchBarVisible"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_voice.quickFilters" query="vm_voice.query" search="vm_voice.getAbandonedCalls()"></ms-quick-filter>\n <md-button class="md-icon-button reload-list" ng-click="vm_voice.refresh && vm_voice.refreshAbandonedCalls($event)" aria-label="Reload" translate translate-attr-label="DASHBOARDS.RELOAD">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip ng-if="vm_voice.showTooltip" md-visible="vm_voice.showTooltip">\n {{\'DASHBOARDS.CLICKRELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_voice.promise">\n <thead md-head md-order="vm_voice.query.sort" md-on-reorder="vm_voice.getAbandonedCalls">\n <tr md-row>\n <th md-column md-order-by="id">{{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column md-order-by="calleridname">{{\'DASHBOARDS.FULLNAME\' | translate}}</th>\n <th md-column md-order-by="calleridnum">{{\'DASHBOARDS.PHONE\' | translate}}</th>\n <th md-column md-order-by="queue">{{\'DASHBOARDS.QUEUE\' | translate}}</th>\n <th md-column md-order-by="queuecallerabandonAt">{{\'DASHBOARDS.ABANDONAT\' | translate}}</th>\n <th md-column md-order-by="disposition">{{\'DASHBOARDS.DISPOSITION\' | translate}}</th>\n <th md-column md-order-by="secondDisposition">{{\'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}</th>\n <th md-column md-order-by="thirdDisposition">{{\'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.RESERVED\' | translate}}</th>\n <th md-column md-order-by="lastAssignedTo">{{\'DASHBOARDS.LASTASSIGNEDTO\' | translate}}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_voice.abandonedCalls.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="abandonedCall in vm_voice.abandonedCalls.rows">\n <td md-cell class="id">{{abandonedCall.id}}</td>\n <td md-cell class="firstName" privacy ng-cloak>{{abandonedCall.calleridname}}</td>\n <td md-cell class="phone">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="abandonedCall.calleridnum" license="vm_home.license" disabled="abandonedCall.lastAssignedTo !== vm_voice.currentUser.name">\n </ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td md-cell class="list">{{vm_voice.queuesMap[abandonedCall.queue]}}</td>\n <td md-cell class="list">\n {{abandonedCall.queuecallerabandonAt ? (abandonedCall.queuecallerabandonAt | formatdate) : (abandonedCall.queuecallerexitAt | formatdate) }}\n </td>\n <td md-cell class="list">{{ abandonedCall.disposition }}</td>\n <td md-cell class="list">{{ abandonedCall.secondDisposition }}</td>\n <td md-cell class="list">{{ abandonedCall.thirdDisposition }}</td>\n <td md-cell class="actions">\n <md-switch no-margin ng-if="abandonedCall.lastAssignedTo === vm_voice.currentUser.name || !abandonedCall.lastAssignedTo" ng-disabled="vm_voice.disable[abandonedCall.id]" ng-model="abandonedCall.assigned" aria-label="reserved" ng-change="vm_voice.reserved(abandonedCall)">\n </md-switch>\n </td>\n <td md-cell class="list">{{abandonedCall.lastAssignedTo}}</td>\n <td md-cell class="actions">\n <md-menu ng-if="abandonedCall.lastAssignedTo === vm_voice.currentUser.name">\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="1">\n <md-menu-item>\n <md-button ng-click="vm_voice.dispose(abandonedCall)" class="text-capitalize" translate="DASHBOARDS.DISPOSE">Dispose\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-limit="vm_voice.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_voice.query.page" md-total="{{vm_voice.abandonedCalls.count}}" md-on-paginate="vm_voice.getAbandonedCalls" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/agent.general.home.html",'<div layout="column" layout-align="start center" class="md-primary-bg width-50" ms-scroll>\n <div ng-repeat="node in vm_home.navigation">\n <div ng-repeat="home in node.children">\n <md-button ng-repeat="button in home.children | orderBy:\'weight\'" ng-if="!button.hidden()" class="md-raised width-50 height-50 no-margin" style="border-radius: 0px" aria-label="{{button.state}}" ng-click="vm_home.changeSidebarTab(button)" ng-class="{\'md-primary\': vm_home.sidebar != button.state}">\n <md-tooltip md-direction="right" md-delay="500"><span translate="{{button.translate}}"></span>\n </md-tooltip>\n <md-icon md-font-icon="{{button.icon}}" ng-class="button.iconClass"></md-icon>\n </md-button>\n </div>\n </div>\n</div>\n<div layout="column" flex>\n <div layout="column" flex>\n <div ng-switch="vm_home.sidebar" style="overflow-y: auto" flex>\n <div ng-switch-when="agentPresence">\n <div ng-if="vm_home.hasPermission(115)" ng-include="\'app/main/apps/dashboards/views/general/agent/home/presence/agent.general.presence.html\'" ng-controller="AgentHomePresenceController as vm"></div>\n <div ng-if="!vm_home.hasPermission(115)" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="contacts">\n <div ng-if="vm_home.hasPermission(102) && vm_home.license.cm" ng-include="\'app/main/apps/dashboards/views/general/agent/home/contacts/agent.general.contacts.html\'" ng-controller="AgentHomeContactsController as vm"></div>\n <div ng-if="!vm_home.hasPermission(102) || !vm_home.license.cm" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="mycontacts">\n <div ng-if="vm_home.hasPermission(103) && vm_home.license.cm" ng-include="\'app/main/apps/dashboards/views/general/agent/home/mycontacts/agent.general.mycontacts.html\'" ng-controller="AgentHomeMyContactsController as vm"></div>\n <div ng-if="!vm_home.hasPermission(103) || !vm_home.license.cm" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="scheduled">\n <div ng-if="vm_home.hasPermission(113) && vm_home.license.dialer" ng-include="\'app/main/apps/dashboards/views/general/agent/home/scheduled/agent.general.scheduled.html\'" ng-controller="AgentHomeScheduledCallsController as vm"></div>\n <div ng-if="!vm_home.hasPermission(113) || !vm_home.license.dialer" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="voice">\n <div ng-if="vm_home.hasPermission(110) && vm_home.license.voice" ng-include="\'app/main/apps/dashboards/views/general/agent/home/voice/agent.general.voice.html\'" ng-controller="AgentHomeVoiceController as vm"></div>\n <div ng-if="!vm_home.hasPermission(110) || !vm_home.license.voice" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="abandoned">\n <div ng-if="vm_home.hasPermission(111) && vm_home.license.voice" ng-include="\'app/main/apps/dashboards/views/general/agent/home/abandoned/agent.general.abandoned.html\'" ng-controller="AgentHomeAbandonedController as vm"></div>\n <div ng-if="!vm_home.hasPermission(111) || !vm_home.license.voice" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="recordings">\n <div ng-if="vm_home.hasPermission(104) && vm_home.license.voice" ng-include="\'app/main/apps/dashboards/views/general/agent/home/recordings/agent.general.recordings.html\'" ng-controller="AgentHomeRecordingsController as vm"></div>\n <div ng-if="!vm_home.hasPermission(104) || !vm_home.license.voice" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="chat">\n <div ng-if="vm_home.hasPermission(105) && vm_home.license.chat" ng-include="\'app/main/apps/dashboards/views/general/agent/home/chat/agent.general.chat.html\'" ng-controller="AgentHomeChatController as vm" ng-init="vm.onInit(vm_home.license, vm_home.setting)">\n </div>\n <div ng-if="!vm_home.hasPermission(105) || !vm_home.license.chat" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="mail">\n <div ng-if="vm_home.hasPermission(106) && vm_home.license.mail" ng-include="\'app/main/apps/dashboards/views/general/agent/home/mail/agent.general.mail.html\'" ng-controller="AgentHomeMailController as vm" ng-init="vm.onInit(vm_home.license, vm_home.setting)">\n </div>\n <div ng-if="!vm_home.hasPermission(106) || !vm_home.license.mail" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="sms">\n <div ng-if="vm_home.hasPermission(107) && vm_home.license.messaging" ng-include="\'app/main/apps/dashboards/views/general/agent/home/sms/agent.general.sms.html\'" ng-controller="AgentHomeSmsController as vm" ng-init="vm.onInit(vm_home.license, vm_home.setting)">\n </div>\n <div ng-if="!vm_home.hasPermission(107) || !vm_home.license.messaging" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="openchannel">\n <div ng-if="vm_home.hasPermission(108) && vm_home.license.openchannel" ng-include="\'app/main/apps/dashboards/views/general/agent/home/openchannel/agent.general.openchannel.html\'" ng-controller="AgentHomeOpenchannelController as vm" ng-init="vm.onInit(vm_home.license, vm_home.setting)">\n </div>\n <div ng-if="!vm_home.hasPermission(108) || !vm_home.license.openchannel" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="fax">\n <div ng-if="vm_home.hasPermission(109) && vm_home.license.fax" ng-include="\'app/main/apps/dashboards/views/general/agent/home/fax/agent.general.fax.html\'" ng-controller="AgentHomeFaxController as vm" ng-init="vm.onInit(vm_home.license, vm_home.setting)">\n </div>\n <div ng-if="!vm_home.hasPermission(109) || !vm_home.license.fax" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="whatsapp">\n <div ng-if="vm_home.hasPermission(114) && vm_home.license.whatsapp" ng-include="\'app/main/apps/dashboards/views/general/agent/home/whatsapp/agent.general.whatsapp.html\'" ng-controller="AgentHomeWhatsappController as vm" ng-init="vm.onInit(vm_home.license, vm_home.setting)">\n </div>\n <div ng-if="!vm_home.hasPermission(114) || !vm_home.license.whatsapp" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="plugin" layout-fill>\n <div ng-if="vm_home.hasPermission(vm_home.pluginId)" ng-include="\'app/main/apps/dashboards/views/general/agent/home/plugins/agent.general.plugins.html\'" ng-controller="AgentHomePluginsController as vm" ng-init="vm.onInit(vm_home.license, vm_home.setting, vm_home.plugin)" layout-fill></div>\n <div ng-if="!vm_home.hasPermission(vm_home.pluginId)" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-default>\n <div ng-if="vm_home.hasPermission(101)" ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/agent.general.dashboard.html\'" ng-controller=" AgentHomeDashboardController as vm"></div>\n <div ng-if="!vm_home.hasPermission(101)" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n </div>\n </div>\n <div ng-if="(vm_home.draftManager.drafts | json) != \'{}\'" layout="column" class="draft-manager-bar">\n <ms-tab-scroll>\n <div layout="column" ng-repeat="(key, draft) in vm_home.draftManager.drafts" class="grey-50-bg" ng-click="vm_home.draftManager.open(draft.id)">\n <div class="draft-manager-tab" layout="row" layout-align="space-between center">\n <md-icon md-font-icon="icon-pencil" class="icon s16 margin-horizontal-5 black-fg"></md-icon>\n <span class="text-truncate font-size-12 black-fg">{{draft.title}}</span>\n <md-button class="md-icon-button md-mini no-margin md-primary" aria-label="close" ng-click="vm_home.draftManager.remove(draft.id)">\n <md-icon md-font-icon="icon-close-circle-outline" class="icon s16"></md-icon>\n </md-button>\n </div>\n </div>\n </ms-tab-scroll>\n </div>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html",'<md-content layout="row" layout-align="space-around center" flex layout-padding layout-wrap>\n <div layout="column" layout-align="space-around center" flex="50">\n <span class="font-size-40 text-center">{{ \'DASHBOARDS.WELCOME_TO_MOTION\' | translate }}!</span>\n <span class="font-size-30 text-center" translate="DASHBOARDS.WELCOME_MESSAGE">Use the left sidebar to navigate through available sections.</span>\n </div>\n\n <div layout="column" flex="50">\n <img src="assets/images/avatars/permissions.png" alt="permissions">\n </div>\n</md-content>'),e.put("app/main/apps/dashboards/views/general/agent/home/chat/agent.general.chat.html",'<md-card ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.CHAT_INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm.getChatInteractions()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getChatInteractions()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" aria-label="Reload" translate translate-attr-aria-label="DASHBOARDS.RELOAD" ng-click="vm.getChatInteractions()">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n </div>\n </md-toolbar>\n <md-table-container class="interactions-list">\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getChatInteractions">\n <tr md-row>\n <th class="id-header" md-column md-order-by="id">\n {{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column class="no-padding width-5">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding width-5"></th>\n <th md-column class="no-padding width-5"></th>\n <th md-column md-order-by="contactName">{{\'DASHBOARDS.CONTACT\' | translate}}</th>\n <th md-column md-order-by="createdAt">{{\'DASHBOARDS.STARTEDAT\' | translate}}</th>\n <th md-column md-order-by="lastMsgAt">{{\'DASHBOARDS.LAST_MESSAGE\' | translate}}</th>\n <th md-column md-order-by="closed">{{\'DASHBOARDS.STATUS\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.AGENT\' | translate}}</th>\n <th md-column>\n {{\'DASHBOARDS.WEBSITE\' | translate}}\n </th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.chatInteractions.rows.length">\n <td md-cell colspan="13">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INTERACTION">No Available\n Interaction</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="interaction in vm.chatInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td ng-click="vm.showChatInteraction($event, interaction)" md-cell class="id">\n <div layout="row" layout-align="start center">\n <span class="font-size-10">{{interaction.id}}</span>\n </div>\n </td>\n <td md-cell>\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="u in interaction.Users">{{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : u.fullname | translate }}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="!interaction.closed && interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" layout-margin>{{interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="interaction.attach" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td ng-click="vm.showChatInteraction($event, interaction)" md-cell>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'no-margin-bottom\' : interaction.contactInfo}" layout-margin privacy ng-cloak>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text no-margin-top" layout-margin privacy ng-cloak>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td ng-click="vm.showChatInteraction($event, interaction)" md-cell>\n <span class="font-size-10 text-truncate">{{interaction.createdAt | formatdate }}</span>\n </td>\n <td ng-click="vm.showChatInteraction($event, interaction)" md-cell>\n <div layout="row" ng-if="interaction.lastMsgAt">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}">\n </md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="font-size-10 text-truncate">{{interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n <span ng-if="!interaction.lastMsgAt">No messages</span>\n </td>\n <td ng-click="vm.showChatInteraction($event, interaction)" md-cell>\n <span ng-if="interaction.closed" class="red-fg font-size-12">{{ \'DASHBOARDS.CLOSED\' | translate}} <span ng-if="interaction.disposition">-\n {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}</span></span>\n <md-tooltip class="multiline" ng-if="interaction.closed">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n <span ng-if="!interaction.closed" class="green-fg font-size-12"><span translate="DASHBOARDS.OPENED"></span><span ng-if="interaction.substatus"> -\n {{interaction.substatus}}</span></span>\n </td>\n <td ng-click="vm.showChatInteraction($event, interaction)" md-cell class="user">\n <span class="font-size-12 text-truncate width-80">{{ vm.getAgentLabel(interaction) }}</span>\n </td>\n <td ng-click="vm.showChatInteraction($event, interaction)" md-cell class="chatAccount">\n {{ vm.getChatWebsiteLabel(interaction) }}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <div layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">,\n </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </div>\n </td>\n <td md-cell class="actions actions-padding">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="vm.showChatInteraction($event, interaction)" translate="DASHBOARDS.SHOW">\n Show Chat\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions && vm.user.downloadAttachments">\n <md-button ng-click="vm.downloadChatInteraction($event, interaction, true)" translate="CHAT.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions">\n <md-button ng-click="vm.downloadChatInteraction($event, interaction)" translate="CHAT.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!interaction.closed">\n <md-button ng-click="vm.disposeInteraction($event, interaction)" translate="DASHBOARDS.CLOSE_AND_DISPOSE">\n Close and Dispose\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'DASHBOARDS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'DASHBOARDS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'DASHBOARDS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.chatInteractions.count}}" md-on-paginate="vm.getChatInteractions" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/contacts/agent.general.contacts.html",'<md-card ng-init="vm.onInit()">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.CONTACTS">Contacts</span>\n <ms-search-bar on-search="vm.getContacts()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getContacts()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" ng-click="vm.refreshContacts($event)" aria-label="Reload" translate translate-attr-label="DASHBOARDS.RELOAD">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n <md-button ng-if="vm.lists.rows && vm.lists.rows.length" class="md-icon-button create-new" ng-click="vm.openContact()" aria-label="Add contact" translate translate-attr-label="DASHBOARDS.ADD_CONTACT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getContacts">\n <tr md-row>\n <th md-column md-order-by="id">{{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column md-order-by="firstName">{{\'DASHBOARDS.FULLNAME\' | translate}}</th>\n <th md-column md-order-by="phone">{{\'DASHBOARDS.PHONE\' | translate}}</th>\n <th md-column md-order-by="mobile">{{\'DASHBOARDS.MOBILE\' | translate}}</th>\n <th md-column md-order-by="fax">{{\'DASHBOARDS.FAX\' | translate}}</th>\n <th md-column md-order-by="email">{{\'DASHBOARDS.EMAIL\' | translate}}</th>\n <th md-column md-order-by="createdAt">{{\'DASHBOARDS.CREATEDAT\' | translate}}</th>\n <th md-column md-order-by="ListId">{{\'DASHBOARDS.LIST\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.contacts.rows.length">\n <td md-cell colspan="10">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="contact in vm.contacts.rows">\n <td ng-click="vm.openContact(contact.id)" md-cell class="id">{{contact.id}}</td>\n <td ng-click="vm.openContact(contact.id)" md-cell class="firstName" privacy ng-cloak>{{contact.firstName}}\n {{contact.lastName}}</td>\n <td ng-click="vm.openContact(contact.id)" md-cell class="phone">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="contact.phone" prefix="vm.listsMap[contact.ListId].dialPrefix" license="vm_home.license"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td ng-click="vm.openContact(contact.id)" md-cell class="mobile">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="contact.mobile" prefix="vm.listsMap[contact.ListId].dialPrefix" license="vm_home.license"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td ng-click="vm.openContact(contact.id)" md-cell class="fax" privacy ng-cloak>{{contact.fax}}</td>\n <td ng-click="vm.openContact(contact.id)" md-cell class="email" privacy ng-cloak>{{contact.email}}</td>\n <td ng-click="vm.openContact(contact.id)" md-cell class="createdAt">{{contact.createdAt | formatdate}}</td>\n <td ng-click="vm.openContact(contact.id)" md-cell class="list">{{vm.listsMap[contact.ListId].name}}\n <td md-cell class="tag">\n <div ng-if="contact.Tags.length">\n <div ng-if="contact.Tags.length == 1" layout="column" layout-align="center center">\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': contact.Tags[0].color }"></md-icon>\n <span class="text-truncate">{{contact.Tags[0].name}}</span>\n </div>\n <div ng-if="contact.Tags.length > 1" layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in contact.Tags">{{tag.name}}<span ng-if="!$last">,\n </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag"></md-icon>\n </div>\n </div>\n </td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.openContact(contact.id)" translate="DASHBOARDS.EDIT">\n Edit Contact\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.mergeContact($event, contact)" translate="DASHBOARDS.MERGE">\n Merge Contact\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.duplicateContact($event, contact)" translate="DASHBOARDS.DUPLICATE">\n Duplicate Contact\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.contacts.count}}" md-on-paginate="vm.getContacts" md-page-select></md-table-pagination>\n\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/agent.general.dashboard.html",'<div ng-cloak>\n <md-content>\n <md-tabs md-dynamic-height md-border-bottom>\n <md-tab ng-if="vm_home.hasPermission(110) && vm_home.license.voice" label="{{\'DASHBOARDS.VOICE\' | translate}}">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/voice/agent.general.dashboard.voice.html\'" ng-controller="AgentHomeDashboardVoiceController as vm_voice" class="md-padding">\n </md-content>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(110) && vm_home.license.dialer" label="{{\'DASHBOARDS.MOTION_BULL\' | translate}}">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/bull/agent.general.dashboard.bull.html\'" ng-controller="AgentHomeDashboardBullController as vm_bull" class="md-padding">\n </md-content>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(105) && vm_home.license.chat" label="{{\'DASHBOARDS.CHAT\' | translate}}">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/chat/agent.general.dashboard.chat.html\'" ng-controller="AgentHomeDashboardMultiChannelChatController as vm_chat" class="md-padding">\n </md-content>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(106) && vm_home.license.mail" label="{{\'DASHBOARDS.MAIL\' | translate}}">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/mail/agent.general.dashboard.mail.html\'" ng-controller="AgentHomeDashboardMultiChannelMailController as vm_mail" class="md-padding">\n </md-content>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(107) && vm_home.license.messaging" label="{{\'DASHBOARDS.SMS\' | translate}}">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/sms/agent.general.dashboard.sms.html\'" ng-controller="AgentHomeDashboardMultiChannelSmsController as vm_sms" class="md-padding">\n </md-content>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(108) && vm_home.license.openchannel" label="{{\'DASHBOARDS.OPENCHANNEL\' | translate}}">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/openchannel/agent.general.dashboard.openchannel.html\'" ng-controller="AgentHomeDashboardMultiChannelOpenchannelController as vm_openchannel" class="md-padding">\n </md-content>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(109) && vm_home.license.fax" label="{{\'DASHBOARDS.FAX\' | translate}}">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/fax/agent.general.dashboard.fax.html\'" ng-controller="AgentHomeDashboardMultiChannelFaxController as vm_fax" class="md-padding">\n </md-content>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(114) && vm_home.license.whatsapp" label="{{\'DASHBOARDS.WHATSAPP\' | translate}}">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/whatsapp/agent.general.dashboard.whatsapp.html\'" ng-controller="AgentHomeDashboardMultiChannelWhatsappController as vm_whatsapp" class="md-padding">\n </md-content>\n </md-tab>\n </md-tabs>\n </md-content>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/bull/agent.general.dashboard.bull.html",'<div layout="row" ng-cloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header red-900-bg">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.QUEUES">Queues</span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_bull.promise">\n <thead md-head md-order="vm_bull.query.sort" md-on-reorder="vm_bull.getVoiceQueues">\n <tr md-row>\n <th md-column>{{ \'VOICE.NAME\' | translate }}</th>\n <th md-column>{{ \'VOICE.TYPE\' | translate }}</th>\n <th md-column>{{ \'VOICE.WAITING\' | translate }}</th>\n <th ng-if="voiceQueue.type === \'outbound\'" md-column>{{ \'VOICE.ACTIVE\' | translate }}</th>\n \x3c!-- <th md-column md-order-by="active">{{ \'VOICE.ACTIVE\' | translate }}</th> --\x3e\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_bull.getSize(vm_bull.voiceQueues)">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, voiceQueue) in vm_bull.voiceQueues">\n <td md-cell class="name">{{voiceQueue.name}}</td>\n <td ng-if="voiceQueue.type === \'outbound\'" md-cell class="waiting">{{voiceQueue.dialMethod}}</td>\n <td md-cell class="waiting">{{voiceQueue.waiting || 0}}</td>\n <td md-cell ng-if="voiceQueue.type === \'outbound\'" class="dialActive ">\n <md-icon md-colors="{color: {{voiceQueue.dialActive ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{voiceQueue.dialActive ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_bull.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_bull.query.page" md-total="{{vm_bull.voiceQueuesTotal}}" md-on-paginate="vm_bull.getVoiceQueues" md-page-select></md-table-pagination>\n </md-card>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header red-900-bg">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.WAITING_TEXT"></span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'VOICE.DID\' | translate }}</th>\n <th md-column>{{ \'VOICE.QUEUE\' | translate }}</th>\n <th md-column>{{ \'VOICE.CALLER\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_bull.getSize(vm_bull.rpcVoiceQueuesChannels)">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, channel) in vm_bull.rpcVoiceQueuesChannels | limitObjectFromTo: vm_bull.queryChannels.limit:(vm_bull.queryChannels.page - 1) * vm_bull.queryChannels.limit">\n <td md-cell>{{channel.exten}}</td>\n <td md-cell>{{channel.queue}}</td>\n <td md-cell privacy ng-cloak>{{channel.calleridnum}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_bull.queryChannels.limit" md-page="vm_bull.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_bull.getSize(vm_bull.rpcVoiceQueuesChannels)}}" md-page-select>\n </md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/chat/agent.general.dashboard.chat.html",'<div layout="row" ng-cloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_chat.getColorByChannel(\'chat\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.QUEUES">Queues</span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_chat.promise">\n <thead md-head md-order="vm_chat.query.sort" md-on-reorder="vm_chat.getChatQueues">\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.NAME\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.WAITING\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_chat.getSize(vm_chat.chatQueues)">\n <td md-cell colspan="2">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, queue) in vm_chat.chatQueues">\n <td md-cell class="name">{{queue.name}}</td>\n <td md-cell class="waiting">{{queue.waiting || 0}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_chat.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_chat.query.page" md-total="{{vm_chat.chatQueuesTotal}}" md-on-paginate="vm_chat.getChatQueues" md-page-select></md-table-pagination>\n </md-card>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_chat.getColorByChannel(\'chat\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.CHANNEL_WAITING_TEXT"></span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.ACCOUNT\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_QUEUE\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_FROM\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_chat.paginatedInteractions.length">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, interaction) in vm_chat.interactions">\n <td md-cell>{{interaction.account}}</td>\n <td md-cell>{{interaction.queue}}</td>\n <td md-cell>{{interaction.from}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_chat.queryChannels.limit" md-page="vm_chat.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_chat.paginatedInteractions.length}}" md-on-paginate="vm_chat.paginate" md-page-select></md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/fax/agent.general.dashboard.fax.html",'<div layout="row" ng-cloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_fax.getColorByChannel(\'fax\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.QUEUES">Queues</span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_fax.promise">\n <thead md-head md-order="vm_fax.query.sort" md-on-reorder="vm_fax.getFaxQueues">\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.NAME\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.WAITING\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_fax.getSize(vm_fax.faxQueues)">\n <td md-cell colspan="2">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, queue) in vm_fax.faxQueues">\n <td md-cell class="name">{{queue.name}}</td>\n <td md-cell class="waiting">{{queue.waiting || 0}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_fax.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_fax.query.page" md-total="{{vm_fax.faxQueuesTotal}}" md-on-paginate="vm_fax.getFaxQueues" md-page-select></md-table-pagination>\n </md-card>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_fax.getColorByChannel(\'fax\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.CHANNEL_WAITING_TEXT"></span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.ACCOUNT\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_QUEUE\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_FROM\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_fax.paginatedInteractions.length">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, interaction) in vm_fax.interactions">\n <td md-cell>{{interaction.account}}</td>\n <td md-cell>{{interaction.queue}}</td>\n <td md-cell>{{interaction.from}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_fax.queryChannels.limit" md-page="vm_fax.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_fax.paginatedInteractions.length}}" md-on-paginate="vm_fax.paginate" md-page-select></md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/mail/agent.general.dashboard.mail.html",'<div layout="row" ng-cloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_mail.getColorByChannel(\'mail\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.QUEUES">Queues</span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_mail.promise">\n <thead md-head md-order="vm_mail.query.sort" md-on-reorder="vm_mail.getMailQueues">\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.NAME\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.WAITING\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_mail.getSize(vm_mail.mailQueues)">\n <td md-cell colspan="2">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, queue) in vm_mail.mailQueues">\n <td md-cell class="name">{{queue.name}}</td>\n <td md-cell class="waiting">{{queue.waiting || 0}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_mail.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_mail.query.page" md-total="{{vm_mail.mailQueuesTotal}}" md-on-paginate="vm_mail.getMailQueues" md-page-select></md-table-pagination>\n </md-card>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_mail.getColorByChannel(\'mail\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.CHANNEL_WAITING_TEXT"></span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.ACCOUNT\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_QUEUE\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_FROM\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_mail.paginatedInteractions.length">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, interaction) in vm_mail.interactions">\n <td md-cell>{{interaction.account}}</td>\n <td md-cell>{{interaction.queue}}</td>\n <td md-cell>{{interaction.from}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_mail.queryChannels.limit" md-page="vm_mail.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_mail.paginatedInteractions.length}}" md-on-paginate="vm_mail.paginate" md-page-select></md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/openchannel/agent.general.dashboard.openchannel.html",'<div layout="row" ng-cloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_openchannel.getColorByChannel(\'openchannel\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.QUEUES">Queues</span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_openchannel.promise">\n <thead md-head md-order="vm_openchannel.query.sort" md-on-reorder="vm_openchannel.getOpenchannelQueues">\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.NAME\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.WAITING\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_openchannel.getSize(vm_openchannel.openchannelQueues)">\n <td md-cell colspan="2">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, queue) in vm_openchannel.openchannelQueues">\n <td md-cell class="name">{{queue.name}}</td>\n <td md-cell class="waiting">{{queue.waiting || 0}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_openchannel.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_openchannel.query.page" md-total="{{vm_openchannel.openchannelQueuesTotal}}" md-on-paginate="vm_openchannel.getOpenchannelQueues" md-page-select></md-table-pagination>\n </md-card>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_openchannel.getColorByChannel(\'openchannel\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.CHANNEL_WAITING_TEXT"></span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.ACCOUNT\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_QUEUE\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_FROM\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_openchannel.paginatedInteractions.length">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, interaction) in vm_openchannel.interactions">\n <td md-cell>{{interaction.account}}</td>\n <td md-cell>{{interaction.queue}}</td>\n <td md-cell>{{interaction.from}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_openchannel.queryChannels.limit" md-page="vm_openchannel.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_openchannel.paginatedInteractions.length}}" md-on-paginate="vm_openchannel.paginate" md-page-select></md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/sms/agent.general.dashboard.sms.html",'<div layout="row" ng-cloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_sms.getColorByChannel(\'sms\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.QUEUES">Queues</span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_sms.promise">\n <thead md-head md-order="vm_sms.query.sort" md-on-reorder="vm_sms.getSmsQueues">\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.NAME\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.WAITING\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_sms.getSize(vm_sms.smsQueues)">\n <td md-cell colspan="2">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, queue) in vm_sms.smsQueues">\n <td md-cell class="name">{{queue.name}}</td>\n <td md-cell class="waiting">{{queue.waiting || 0}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_sms.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_sms.query.page" md-total="{{vm_sms.smsQueuesTotal}}" md-on-paginate="vm_sms.getSmsQueues" md-page-select></md-table-pagination>\n </md-card>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_sms.getColorByChannel(\'sms\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.CHANNEL_WAITING_TEXT"></span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.ACCOUNT\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_QUEUE\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_FROM\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_sms.paginatedInteractions.length">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, interaction) in vm_sms.interactions">\n <td md-cell>{{interaction.account}}</td>\n <td md-cell>{{interaction.queue}}</td>\n <td md-cell>{{interaction.from}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_sms.queryChannels.limit" md-page="vm_sms.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_sms.paginatedInteractions.length}}" md-on-paginate="vm_sms.paginate" md-page-select></md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/voice/agent.general.dashboard.voice.html",'<div layout="row" ng-cloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header blue-A700-bg ">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.QUEUES">Queues</span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_voice.promise">\n <thead md-head md-order="vm_voice.query.sort" md-on-reorder="vm_voice.getVoiceQueues">\n <tr md-row>\n <th md-column>{{ \'VOICE.NAME\' | translate }}</th>\n <th md-column>{{ \'VOICE.WAITING\' | translate }}</th>\n <th ng-if="voiceQueue.type === \'outbound\'" md-column>{{ \'VOICE.ACTIVE\' | translate }}</th>\n \x3c!-- <th md-column md-order-by="active">{{ \'VOICE.ACTIVE\' | translate }}</th> --\x3e\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_voice.getSize(vm_voice.voiceQueues)">\n <td md-cell colspan="2">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, voiceQueue) in vm_voice.voiceQueues">\n <td md-cell class="name">{{voiceQueue.name}}</td>\n <td ng-if="voiceQueue.type === \'outbound\'" md-cell class="waiting">{{voiceQueue.dialMethod}}</td>\n <td md-cell class="waiting">{{voiceQueue.waiting || 0}}</td>\n <td md-cell ng-if="voiceQueue.type === \'outbound\'" class="dialActive ">\n <md-icon md-colors="{color: {{voiceQueue.dialActive ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{voiceQueue.dialActive ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_voice.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_voice.query.page" md-total="{{vm_voice.voiceQueuesTotal}}" md-on-paginate="vm_voice.getVoiceQueues" md-page-select></md-table-pagination>\n </md-card>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header blue-A700-bg ">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.WAITING_TEXT"></span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'VOICE.DID\' | translate }}</th>\n <th md-column>{{ \'VOICE.QUEUE\' | translate }}</th>\n <th md-column>{{ \'VOICE.CALLER\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_voice.getSize(vm_voice.rpcVoiceQueuesChannels)">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, channel) in vm_voice.rpcVoiceQueuesChannels | limitObjectFromTo: vm_voice.queryChannels.limit:(vm_voice.queryChannels.page - 1) * vm_voice.queryChannels.limit">\n <td md-cell>{{channel.exten}}</td>\n <td md-cell>{{channel.queue}}</td>\n <td md-cell privacy ng-cloak>{{channel.calleridnum}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_voice.queryChannels.limit" md-page="vm_voice.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_voice.getSize(vm_voice.rpcVoiceQueuesChannels)}}" md-page-select>\n </md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/whatsapp/agent.general.dashboard.whatsapp.html",'<div layout="row" ng-cloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_whatsapp.getColorByChannel(\'whatsapp\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.QUEUES">Queues</span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_whatsapp.promise">\n <thead md-head md-order="vm_whatsapp.query.sort" md-on-reorder="vm_whatsapp.getWhatsappQueues">\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.NAME\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.WAITING\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_whatsapp.getSize(vm_whatsapp.whatsappQueues)">\n <td md-cell colspan="2">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, queue) in vm_whatsapp.whatsappQueues">\n <td md-cell class="name">{{queue.name}}</td>\n <td md-cell class="waiting">{{queue.waiting || 0}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_whatsapp.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_whatsapp.query.page" md-total="{{vm_whatsapp.whatsappQueuesTotal}}" md-on-paginate="vm_whatsapp.getWhatsappQueues" md-page-select></md-table-pagination>\n </md-card>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_whatsapp.getColorByChannel(\'whatsapp\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.CHANNEL_WAITING_TEXT"></span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.ACCOUNT\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_QUEUE\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_FROM\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_whatsapp.paginatedInteractions.length">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, interaction) in vm_whatsapp.interactions">\n <td md-cell>{{interaction.account}}</td>\n <td md-cell>{{interaction.queue}}</td>\n <td md-cell>{{interaction.from}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_whatsapp.queryChannels.limit" md-page="vm_whatsapp.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_whatsapp.paginatedInteractions.length}}" md-on-paginate="vm_whatsapp.paginate" md-page-select></md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/fax/agent.general.fax.html",'<md-card ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.FAX_INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm.getFaxInteractions()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getFaxInteractions()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" aria-label="Reload" translate translate-attr-aria-label="DASHBOARDS.RELOAD" ng-click="vm.getFaxInteractions()">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n <md-menu ng-if="vm.faxAccounts.rows && vm.faxAccounts.rows.length">\n <md-button class="md-icon-button create-new" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-repeat="faxAccount in vm.faxAccounts.rows">\n <md-button aria-label="compose" ng-click="vm.composeFaxInteraction($event, faxAccount)">\n {{ faxAccount.name }} ({{ faxAccount.key }})</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </md-toolbar>\n <md-table-container class="interactions-list">\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getFaxInteractions">\n <tr md-row>\n <th class="id-header" md-column md-order-by="id">\n {{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column class="no-padding width-5">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding width-5"></th>\n <th md-column class="no-padding width-5"></th>\n <th md-column md-order-by="contactName">{{\'DASHBOARDS.CONTACT\' | translate}}</th>\n <th md-column md-order-by="createdAt">{{\'DASHBOARDS.STARTEDAT\' | translate}}</th>\n <th md-column md-order-by="lastMsgAt">{{\'DASHBOARDS.LAST_MESSAGE\' | translate}}</th>\n <th md-column md-order-by="closed">{{\'DASHBOARDS.STATUS\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.AGENT\' | translate}}</th>\n <th md-column>\n {{\'DASHBOARDS.ACCOUNT\' | translate}}\n </th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.faxInteractions.rows.length">\n <td md-cell colspan="13">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INTERACTION">No Available\n Interaction</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="interaction in vm.faxInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td ng-click="vm.showFaxInteraction($event, interaction)" md-cell class="id">\n <div layout="row" layout-align="start center">\n <span class="font-size-10">{{interaction.id}}</span>\n </div>\n </td>\n <td md-cell>\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="u in interaction.Users">{{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : u.fullname | translate }}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="!interaction.closed && interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" layout-margin>{{interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="interaction.attach" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td ng-click="vm.showFaxInteraction($event, interaction)" md-cell>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'no-margin-bottom\' : interaction.contactInfo}" layout-margin privacy ng-cloak>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text no-margin-top" layout-margin privacy ng-cloak>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td ng-click="vm.showFaxInteraction($event, interaction)" md-cell>\n <span class="font-size-10 text-truncate">{{interaction.createdAt | formatdate }}</span>\n </td>\n <td ng-click="vm.showFaxInteraction($event, interaction)" md-cell>\n <div layout="row" ng-if="interaction.lastMsgAt">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}">\n </md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="font-size-10 text-truncate">{{interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n <span ng-if="!interaction.lastMsgAt">No messages</span>\n </td>\n <td ng-click="vm.showFaxInteraction($event, interaction)" md-cell>\n <span ng-if="interaction.closed" class="red-fg font-size-12">{{ \'DASHBOARDS.CLOSED\' | translate}} <span ng-if="interaction.disposition">-\n {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}</span></span>\n <md-tooltip class="multiline" ng-if="interaction.closed">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n <span ng-if="!interaction.closed" class="green-fg font-size-12"><span translate="DASHBOARDS.OPENED"></span><span ng-if="interaction.substatus"> -\n {{interaction.substatus}}</span></span>\n </td>\n <td ng-click="vm.showFaxInteraction($event, interaction)" md-cell class="user">\n <span class="font-size-12 text-truncate width-80">{{ vm.getAgentLabel(interaction) }}</span>\n </td>\n <td ng-click="vm.showFaxInteraction($event, interaction)" md-cell class="faxAccount">\n {{ vm.getFaxAccountLabel(interaction) }}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <div layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">,\n </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </div>\n </td>\n <td md-cell class="actions actions-padding">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="vm.showFaxInteraction($event, interaction)" translate="DASHBOARDS.SHOW">\n Show Fax\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions">\n <md-button ng-click="vm.downloadFaxInteraction($event, interaction)" translate="DASHBOARDS.DOWNLOAD">\n Download Fax\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!interaction.closed">\n <md-button ng-click="vm.disposeInteraction($event, interaction)" translate="DASHBOARDS.CLOSE_AND_DISPOSE">\n Close and Dispose\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'DASHBOARDS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'DASHBOARDS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'DASHBOARDS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.faxInteractions.count}}" md-on-paginate="vm.getFaxInteractions" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/mail/agent.general.mail.html",'<md-card ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.MAIL_INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm.getMailInteractions()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getMailInteractions()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" aria-label="Reload" translate translate-attr-aria-label="DASHBOARDS.RELOAD" ng-click="vm.getMailInteractions()">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n <md-menu ng-if="vm.mailAccounts.rows && vm.mailAccounts.rows.length">\n <md-button class="md-icon-button create-new" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-repeat="mailAccount in vm.mailAccounts.rows">\n <md-button aria-label="compose" ng-click="vm.composeMailInteraction($event, mailAccount)">\n {{ mailAccount.name }} ({{ mailAccount.key }})</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </md-toolbar>\n <md-table-container class="interactions-list">\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getMailInteractions">\n <tr md-row>\n <th class="id-header" md-column md-order-by="id">\n {{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column class="no-padding width-5">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding width-5"></th>\n <th md-column class="no-padding width-5"></th>\n <th md-column md-order-by="contactName">{{\'DASHBOARDS.CONTACT\' | translate}}</th>\n <th md-column md-order-by="subject">{{\'DASHBOARDS.SUBJECT\' | translate}}</th>\n <th md-column md-order-by="createdAt">{{\'DASHBOARDS.STARTEDAT\' | translate}}</th>\n <th md-column md-order-by="lastMsgAt">{{\'DASHBOARDS.LAST_MESSAGE\' | translate}}</th>\n <th md-column md-order-by="closed">{{\'DASHBOARDS.STATUS\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.AGENT\' | translate}}</th>\n <th md-column>\n {{\'DASHBOARDS.ACCOUNT\' | translate}}\n </th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.mailInteractions.rows.length">\n <td md-cell colspan="13">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INTERACTION">No Available\n Interaction</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="interaction in vm.mailInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell class="id">\n <div layout="row" layout-align="start center">\n <span class="font-size-10">{{interaction.id}}</span>\n </div>\n </td>\n <td md-cell>\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="u in interaction.Users">{{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : u.fullname | translate }}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="!interaction.closed && interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" layout-margin>{{interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="interaction.attach" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'no-margin-bottom\' : interaction.contactInfo}" layout-margin privacy ng-cloak>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text no-margin-top" layout-margin privacy ng-cloak>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell>\n <div ng-if="vm.setting.enableEmailPreview && interaction.lastMsgText" class="tooltip-preview">\n <span class="text-truncate font-size-12 subject-text">{{ interaction.subject }}</span>\n \x3c!-- ng-style="{top: \'-\' + ((($index % 10) + 1) * 18) + \'px\'}" --\x3e\n <md-card class="tooltip-preview-text">\n <md-card-content><span class="email-preview-message">{{ interaction.lastMsgText }}</span>\n </md-card-content>\n </md-card>\n </div>\n <span ng-if="!interaction.lastMsgText || !vm.setting.enableEmailPreview" class="text-truncate font-size-12">{{ interaction.subject }}</span>\n </td>\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell>\n <span class="font-size-10 text-truncate">{{interaction.createdAt | formatdate }}</span>\n </td>\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell>\n <div layout="row" ng-if="interaction.lastMsgAt">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}">\n </md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="font-size-10 text-truncate">{{interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n <span ng-if="!interaction.lastMsgAt">No messages</span>\n </td>\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell>\n <span ng-if="interaction.closed" class="red-fg font-size-12">{{ \'DASHBOARDS.CLOSED\' | translate}} <span ng-if="interaction.disposition">-\n {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}</span></span>\n <md-tooltip class="multiline" ng-if="interaction.closed">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n <span ng-if="!interaction.closed" class="green-fg font-size-12"><span translate="DASHBOARDS.OPENED"></span><span ng-if="interaction.substatus"> -\n {{interaction.substatus}}</span></span>\n </td>\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell class="user">\n <span class="font-size-12 text-truncate width-80">{{ vm.getAgentLabel(interaction) }}</span>\n </td>\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell class="mailAccount">\n {{ vm.getMailAccountLabel(interaction) }}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <div layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">,\n </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </div>\n </td>\n <td md-cell class="actions actions-padding">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="vm.showMailInteraction($event, interaction)" translate="DASHBOARDS.SHOW">\n Show Mail\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions && vm.user.downloadAttachments">\n <md-button ng-click="vm.downloadMailInteraction($event, interaction, true)" translate="MAIL.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions">\n <md-button ng-click="vm.downloadMailInteraction($event, interaction)" translate="MAIL.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!interaction.closed">\n <md-button ng-click="vm.disposeInteraction($event, interaction)" translate="DASHBOARDS.CLOSE_AND_DISPOSE">\n Close and Dispose\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'DASHBOARDS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'DASHBOARDS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'DASHBOARDS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.mailInteractions.count}}" md-on-paginate="vm.getMailInteractions" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/mycontacts/agent.general.mycontacts.html",'<md-card ng-init="vm.onInit()">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.MYCONTACTS">My Contacts</span>\n <ms-search-bar on-search="vm.getContacts()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getContacts()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" ng-click="vm.refreshContacts($event)" aria-label="Reload" translate translate-attr-label="DASHBOARDS.RELOAD">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n <md-button ng-if="vm.lists.rows && vm.lists.rows.length" class="md-icon-button create-new" ng-click="vm.openContact($event)" aria-label="Add contact" translate translate-attr-label="DASHBOARDS.ADD_CONTACT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getContacts">\n <tr md-row>\n <th md-column md-order-by="id">{{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column md-order-by="firstName">{{\'DASHBOARDS.FULLNAME\' | translate}}</th>\n <th md-column md-order-by="phone">{{\'DASHBOARDS.PHONE\' | translate}}</th>\n <th md-column md-order-by="mobile">{{\'DASHBOARDS.MOBILE\' | translate}}</th>\n <th md-column md-order-by="fax">{{\'DASHBOARDS.FAX\' | translate}}</th>\n <th md-column md-order-by="email">{{\'DASHBOARDS.EMAIL\' | translate}}</th>\n <th md-column md-order-by="createdAt">{{\'DASHBOARDS.CREATEDAT\' | translate}}</th>\n <th md-column md-order-by="ListId">{{\'DASHBOARDS.LIST\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.contacts.rows.length">\n <td md-cell colspan="10">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="contact in vm.contacts.rows">\n <td ng-click="vm.openContact($event, contact)" md-cell class="id">{{contact.id}}</td>\n <td ng-click="vm.openContact($event, contact)" md-cell class="firstName" privacy ng-cloak>\n {{contact.firstName}} {{contact.lastName}}</td>\n <td ng-click="vm.openContact($event, contact)" md-cell class="phone">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="contact.phone" prefix="vm.listsMap[contact.ListId].dialPrefix" license="vm_home.license"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td ng-click="vm.openContact($event, contact)" md-cell class="mobile">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="contact.mobile" prefix="vm.listsMap[contact.ListId].dialPrefix" license="vm_home.license"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td ng-click="vm.openContact($event, contact)" md-cell class="fax" privacy ng-cloak>\n {{contact.fax}}</td>\n <td ng-click="vm.openContact($event, contact)" md-cell class="email" privacy ng-cloak>{{contact.email}}\n </td>\n <td ng-click="vm.openContact($event, contact)" md-cell class="createdAt">{{contact.createdAt |\n formatdate}}</td>\n <td ng-click="vm.openContact($event, contact)" md-cell class="list">\n {{vm.listsMap[contact.ListId].name}}</td>\n <td md-cell class="tag">\n <div ng-if="contact.Tags.length">\n <div ng-if="contact.Tags.length == 1" layout="column" layout-align="center center">\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': contact.Tags[0].color }"></md-icon>\n <span class="text-truncate">{{contact.Tags[0].name}}</span>\n </div>\n <div ng-if="contact.Tags.length > 1" layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in contact.Tags">{{tag.name}}<span ng-if="!$last">,\n </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag"></md-icon>\n </div>\n </div>\n </td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.openContact($event, contact)" translate="DASHBOARDS.EDIT">\n Edit Contact\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.mergeContact($event, contact)" translate="DASHBOARDS.MERGE">\n Merge Contact\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.duplicateContact($event, contact)" translate="DASHBOARDS.DUPLICATE">\n Duplicate Contact\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.contacts.count}}" md-on-paginate="vm.getContacts" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/openchannel/agent.general.openchannel.html",'<md-card ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.OPENCHANNEL_INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm.getOpenchannelInteractions()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getOpenchannelInteractions()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" aria-label="Reload" translate translate-attr-aria-label="DASHBOARDS.RELOAD" ng-click="vm.getOpenchannelInteractions()">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n <md-menu ng-if="vm.openchannelAccounts.rows && vm.openchannelAccounts.rows.length">\n <md-button class="md-icon-button create-new" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-repeat="openchannelAccount in vm.openchannelAccounts.rows">\n <md-button aria-label="compose" ng-click="vm.composeOpenchannelInteraction($event, openchannelAccount)" ng-disabled="!openchannelAccount.replyUri">\n {{ openchannelAccount.name }} ({{ openchannelAccount.key }})</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </md-toolbar>\n <md-table-container class="interactions-list">\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getOpenchannelInteractions">\n <tr md-row>\n <th class="id-header" md-column md-order-by="id">\n {{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column class="no-padding width-5">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding width-5"></th>\n <th md-column class="no-padding width-5"></th>\n <th md-column md-order-by="contactName">{{\'DASHBOARDS.CONTACT\' | translate}}</th>\n <th md-column md-order-by="createdAt">{{\'DASHBOARDS.STARTEDAT\' | translate}}</th>\n <th md-column md-order-by="lastMsgAt">{{\'DASHBOARDS.LAST_MESSAGE\' | translate}}</th>\n <th md-column md-order-by="closed">{{\'DASHBOARDS.STATUS\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.AGENT\' | translate}}</th>\n <th md-column>\n {{\'DASHBOARDS.ACCOUNT\' | translate}}\n </th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.openchannelInteractions.rows.length">\n <td md-cell colspan="13">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INTERACTION">No Available\n Interaction</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="interaction in vm.openchannelInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td ng-click="vm.showOpenchannelInteraction($event, interaction)" md-cell class="id">\n <div layout="row" layout-align="start center">\n <span class="font-size-10">{{interaction.id}}</span>\n </div>\n </td>\n <td md-cell>\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="u in interaction.Users">{{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : u.fullname | translate }}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="!interaction.closed && interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" layout-margin>{{interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="interaction.attach" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td ng-click="vm.showOpenchannelInteraction($event, interaction)" md-cell>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'no-margin-bottom\' : interaction.contactInfo}" layout-margin privacy ng-cloak>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text no-margin-top" layout-margin privacy ng-cloak>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td ng-click="vm.showOpenchannelInteraction($event, interaction)" md-cell>\n <span class="font-size-10 text-truncate">{{interaction.createdAt | formatdate }}</span>\n </td>\n <td ng-click="vm.showOpenchannelInteraction($event, interaction)" md-cell>\n <div layout="row" ng-if="interaction.lastMsgAt">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}">\n </md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="font-size-10 text-truncate">{{interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n <span ng-if="!interaction.lastMsgAt">No messages</span>\n </td>\n <td ng-click="vm.showOpenchannelInteraction($event, interaction)" md-cell>\n <span ng-if="interaction.closed" class="red-fg font-size-12">{{ \'DASHBOARDS.CLOSED\' | translate}} <span ng-if="interaction.disposition">-\n {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}</span></span>\n <md-tooltip class="multiline" ng-if="interaction.closed">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n <span ng-if="!interaction.closed" class="green-fg font-size-12"><span translate="DASHBOARDS.OPENED"></span><span ng-if="interaction.substatus"> -\n {{interaction.substatus}}</span></span>\n </td>\n <td ng-click="vm.showOpenchannelInteraction($event, interaction)" md-cell class="user">\n <span class="font-size-12 text-truncate width-80">{{ vm.getAgentLabel(interaction) }}</span>\n </td>\n <td ng-click="vm.showOpenchannelInteraction($event, interaction)" md-cell class="openchannelAccount">\n {{ vm.getOpenchannelAccountLabel(interaction) }}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <div layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">,\n </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </div>\n </td>\n <td md-cell class="actions actions-padding">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="vm.showOpenchannelInteraction($event, interaction)" translate="DASHBOARDS.SHOW">\n Show Openchannel\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions && vm.user.downloadAttachments">\n <md-button ng-click="vm.downloadOpenchannelInteraction($event, interaction, true)" translate="OPENCHANNEL.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions">\n <md-button ng-click="vm.downloadOpenchannelInteraction($event, interaction)" translate="OPENCHANNEL.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!interaction.closed">\n <md-button ng-click="vm.disposeInteraction($event, interaction)" translate="DASHBOARDS.CLOSE_AND_DISPOSE">\n Close and Dispose\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'DASHBOARDS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'DASHBOARDS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'DASHBOARDS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.openchannelInteractions.count}}" md-on-paginate="vm.getOpenchannelInteractions" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/plugins/agent.general.plugins.html",'<div id="plugin" ng-if="vm.plugin" ng-cloak layout-fill>\n <iframe ng-src="{{vm.getTrustedURL()}}" frameborder=0 style="border:0px; width:100%; height:100%;"></iframe>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/presence/agent.general.presence.html",'<div ng-cloak>\n <md-content>\n <md-tabs md-selected="vm.selectedTab" md-dynamic-height md-border-bottom>\n <md-tab label="{{\'DASHBOARDS.AGENTS\' | translate}}" md-on-select="vm.onAgentsTabSelection()">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/presence/views/agent.general.presence.agents.html\'">\n </md-content>\n </md-tab>\n <md-tab label="{{\'DASHBOARDS.QUEUES\' | translate}}" md-on-select="vm.onQueuesTabSelection()">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/presence/views/agent.general.presence.queues.html\'">\n </md-content>\n </md-tab>\n </md-tabs>\n </md-content>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/presence/views/agent.general.presence.agents.html",'<md-card ngCloak>\n <md-toolbar class="md-table-toolbar md-default table-header xenialab-violet-light-bg" ng-class="{\'h-128\' : vm.isSearchBarVisible === true}">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.AGENTS"></span>\n <ms-search-bar on-search="vm.getAgents()" query="vm.agentsQuery" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.agentsQuery" search="vm.getAgents()"></ms-quick-filter>\n <md-button class="md-icon-button reload-list" aria-label="Reload" translate translate-attr-aria-label="DASHBOARDS.RELOAD" ng-click="vm.getAgents()">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.agentsQuery.sort" md-on-reorder="vm.getAgents">\n <tr md-row>\n <th md-column md-order-by="id">{{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column md-order-by="name">{{\'DASHBOARDS.NAME\' | translate}}</th>\n <th md-column md-order-by="internal">{{\'VOICE.INTERNAL\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.STATUS\' | translate}}</th>\n <th md-column class="no-padding width-70"></th>\n <th md-column class="width-70"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.agents.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="agent in vm.agents.rows">\n <td md-cell>{{agent.id}}</td>\n <td md-cell>{{agent.name}}</td>\n <td md-cell>{{agent.internal}}</td>\n <td md-cell>\n <div layout="row">\n <div layout="column" layout-align="center center">\n <span class="text-boxed width-70 text-center md-background-bg bl bt padding-5" ng-class="{\'online\':\'lime-300-bg\',\'offline\':\'red-A200-bg\',\'pause\':\'amber-200-bg\',\'busy\':\'indigo-100-bg\'}[agent.status]">{{\n agent.status | uppercase }}</span>\n </div>\n </div>\n </td>\n <td md-cell class="no-padding width-70">\n <md-button ng-if="agent.status !== \'offline\'" ng-click="vm.originateCall(agent.name)" class="md-fab md-mini md-raised" aria-label="Dial">\n <md-icon md-font-icon="icon-phone" class="icon green-fg s20">\n <md-tooltip><span translate="VOICE.DIAL"></span></md-tooltip>\n </md-icon>\n </md-button>\n </td>\n <td md-cell class="width-70">\n <md-button ng-if="agent.status !== \'offline\'" ng-click="vm.transferCall(agent.name)" class="md-fab md-mini md-raised" aria-label="Transfer">\n <md-icon md-font-icon="icon-phone-forward" class="icon purple-fg s20">\n <md-tooltip><span translate="DASHBOARDS.TRANSFER"></span></md-tooltip>\n </md-icon>\n </md-button>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-limit="vm.agentsQuery.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.agentsQuery.page" md-total="{{vm.agents.count}}" md-on-paginate="vm.getAgents" md-page-select>\n </md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/presence/views/agent.general.presence.queues.html",'<md-card ngCloak>\n <md-toolbar class="md-table-toolbar md-default table-header xenialab-violet-light-bg" ng-class="{\'h-128\' : vm.isSearchBarVisible === true}">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.QUEUES"></span>\n <ms-search-bar on-search="vm.getVoiceQueues()" query="vm.queuesQuery" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible"></ms-search-bar>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.queuesQuery.sort" md-on-reorder="vm.getVoiceQueues">\n <tr md-row>\n <th md-column md-order-by="id">{{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column md-order-by="name">{{\'DASHBOARDS.NAME\' | translate}}</th>\n <th md-column md-order-by="name">{{\'VOICE.CALLS\' | translate}}</th>\n <th md-column class="no-padding width-70"></th>\n <th md-column class="width-70"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.voiceQueues.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="queue in vm.voiceQueues.rows">\n <td md-cell>{{queue.id}}</td>\n <td md-cell>{{queue.name}}</td>\n <td md-cell>{{queue.calls.length || 0}}</td>\n <td md-cell class="no-padding width-70">\n <md-button ng-click="vm.originateCall(queue.name)" class="md-fab md-mini md-raised" aria-label="Dial">\n <md-icon md-font-icon="icon-phone" class="icon green-fg s20">\n <md-tooltip><span translate="VOICE.DIAL"></span></md-tooltip>\n </md-icon>\n </md-button>\n </td>\n <td md-cell class="width-70">\n <md-button ng-click="vm.transferCall(queue.name)" class="md-fab md-mini md-raised" aria-label="Transfer">\n <md-icon md-font-icon="icon-phone-forward" class="icon purple-fg s20">\n <md-tooltip><span translate="DASHBOARDS.TRANSFER"></span></md-tooltip>\n </md-icon>\n </md-button>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-limit="vm.queuesQuery.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.queuesQuery.page" md-total="{{vm.voiceQueues.count}}" md-on-paginate="vm.getVoiceQueues" md-page-select>\n </md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/recordings/agent.general.recordings.html",'<md-card ng-init="vm.onInit()">\n <md-toolbar class="md-table-toolbar md-default table-header indigo-A100-bg" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.RECORDINGS">Recordings</span>\n <ms-search-bar on-search="vm.getVoiceRecordings()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getVoiceRecordings()">\n </ms-quick-filter>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getVoiceRecordings">\n <tr md-row>\n <th md-column md-order-by="type">{{ \'VOICE.TYPE\' | translate }}</th>\n <th md-column md-order-by="uniqueid">{{ \'VOICE.UNIQUEID\' | translate }}</th>\n <th md-column md-order-by="calleridnum">{{ \'VOICE.CALLER\' | translate }}</th>\n <th md-column md-order-by="exten">{{ \'VOICE.CALLED\' | translate }}</th>\n <th md-column md-order-by="connectedlinenum">{{ \'VOICE.CONNECTED\' | translate }}</th>\n <th md-column md-order-by="queue">{{ \'VOICE.QUEUE\' | translate }}</th>\n <th md-column md-order-by="rating">{{ \'VOICE.RATING\' | translate }}</th>\n <th md-column>{{ \'VOICE.AUDIO\' | translate }}</th>\n <th md-column md-order-by="createdAt">{{ \'VOICE.DATE\' | translate }}</th>\n <th md-column width="10px" ng-if="vm.currentUser.downloadVoiceRecordings"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.voiceRecordings.rows.length">\n <td md-cell colspan="{{ vm.currentUser.downloadVoiceRecordings ? 10 : 9}}">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="voiceRecording in vm.voiceRecordings.rows">\n <td md-cell class="type">{{voiceRecording.type}}</td>\n <td md-cell class="uniqueid">{{voiceRecording.uniqueid}}</td>\n <td md-cell class="calleridnum">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="voiceRecording.calleridnum" license="vm_home.license">\n </ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td md-cell class="exten">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="voiceRecording.exten" license="vm_home.license"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td md-cell class="connectedlinenum">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="voiceRecording.connectedlinenum" license="vm_home.license">\n </ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td md-cell class="queue">{{voiceRecording.queue}}</td>\n <td md-cell class="rating">\n <md-icon md-font-icon="icon-star" style="color:red" ng-show="voiceRecording.rating" ng-repeat="rating in [1,2,3,4,5] | limitTo:voiceRecording.rating"></md-icon><span ng-hide="voiceRecording.rating" translate="VOICE.NO_RATING">No rating</span>\n </td>\n <td md-cell class="audio" ng-switch="voiceRecording.format">\n \x3c!-- audio recording directive --\x3e\n <ms-recording ng-switch-when=".wav" id="voiceRecording.id"></ms-recording>\n \x3c!-- / audio recording directive --\x3e\n <span ng-switch-when=".gsm">\n <em>{{ \'VOICE.CANT_PLAY_GSM_AUDIO_FILES\' | translate }}</em>\n </span>\n </td>\n <td md-cell class="createdAt ">{{voiceRecording.createdAt | date:\'medium\' }}</td>\n <td md-cell class="actions" ng-if="vm.currentUser.downloadVoiceRecordings">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.downloadfile(voiceRecording, $event)" translate="VOICE.DOWNLOAD_VOICERECORDING">\n Download VoiceRecording\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="voiceRecording.transcribeStatus == \'COMPLETED\'">\n <md-button ng-click="vm.downloadtranscribe(voiceRecording, $event)" translate="VOICE.DOWNLOADTRANSCRIBE_VOICERECORDING">\n Download Transcribe\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.voiceRecordings.count}}" md-on-paginate="vm.getVoiceRecordings" md-page-select>\n </md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/scheduled/agent.general.scheduled.html",'<md-card ng-init="vm.onInit()">\n <md-toolbar class="md-table-toolbar md-default table-header blue-grey-bg" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.SCHEDULED_CALLS">Scheduled Calls</span>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getScheduledCalls()">\n </ms-quick-filter>\n <md-button class="md-icon-button reload-list" ng-click="vm.getScheduledCalls()" aria-label="Refresh scheduled calls" translate translate-attr-label="MOTIONDIALER.REFRESH_SCHEDULED_CALLS">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'MOTIONDIALER.REFRESH_SCHEDULED_CALLS\' | translate}}</md-tooltip>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getScheduledCalls">\n <tr md-row>\n <th md-column>{{\'MOTIONDIALER.FULLNAME\' | translate}}</th>\n <th md-column md-order-by="phone">{{ \'MOTIONDIALER.PHONE\' | translate }}</th>\n <th md-column md-order-by="scheduledat">{{ \'MOTIONDIALER.SCHEDULEDAT\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.PRIORITY\' | translate }}</th>\n <th md-column md-order-by="recallme">{{ \'MOTIONDIALER.RECALLME\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.CAMPAIGN\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.scheduledCalls.rows.length">\n <td md-cell colspan="10">\n <div layout="row" layout-align="center center">\n <span translate="MOTIONDIALER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="scheduledCall in vm.scheduledCalls.rows">\n <td md-cell privacy ng-cloak>{{scheduledCall.Contact.firstName}} {{scheduledCall.Contact.lastName}}</td>\n <td md-cell>\n <ms-click-to-call target="scheduledCall.phone" license="vm_home.license"></ms-click-to-call>\n </td>\n <td md-colors="{color: {{ vm.isDateBeforeToday(scheduledCall.scheduledat) ? \'\\\'red\\\'\' : \'\\\'green\\\'\' }}}" md-cell>{{ scheduledCall.scheduledat | date:\'medium\' }}</td>\n <td md-cell>{{ vm.priorities[scheduledCall.priority] }}</td>\n <td md-cell>\n <md-icon md-colors="{color: {{ scheduledCall.recallme && scheduledCall.UserId == vm.currentUser.id ? \'\\\'green\\\'\' : \'\\\'grey\\\'\' }}}" md-font-icon="{{ scheduledCall.recallme && scheduledCall.UserId == vm.currentUser.id ? \'icon-check\' : \'icon-close\' }}">\n </md-icon>\n </td>\n <td md-cell>\n <md-icon md-colors="{color: {{ scheduledCall.Queue.dialActive? \'\\\'green\\\'\' : \'\\\'red\\\'\' }}}" md-font-icon="icon-checkbox-blank-circle"></md-icon> {{scheduledCall.Queue.name}}\n </td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.createOrEditQueueCampaignHopper($event, scheduledCall)" translate="MOTIONDIALER.EDIT_HOPPER">\n Edit Hopper\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deleteConfirm(scheduledCall, $event)" translate="MOTIONDIALER.DELETE_HOPPER">\n Delete Hopper\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.scheduledCalls.count}}" md-on-paginate="vm.getScheduledCalls" md-page-select>\n </md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/sms/agent.general.sms.html",'<md-card ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.SMS_INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm.getSmsInteractions()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getSmsInteractions()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" aria-label="Reload" translate translate-attr-aria-label="DASHBOARDS.RELOAD" ng-click="vm.getSmsInteractions()">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n <md-menu ng-if="vm.smsAccounts.rows && vm.smsAccounts.rows.length">\n <md-button class="md-icon-button create-new" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-repeat="smsAccount in vm.smsAccounts.rows">\n <md-button aria-label="compose" ng-click="vm.composeSmsInteraction($event, smsAccount)">\n {{ smsAccount.name }} ({{ smsAccount.key }})</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </md-toolbar>\n <md-table-container class="interactions-list">\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getSmsInteractions">\n <tr md-row>\n <th class="id-header" md-column md-order-by="id">\n {{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column class="no-padding width-5">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding width-5"></th>\n <th md-column class="no-padding width-5"></th>\n <th md-column md-order-by="contactName">{{\'DASHBOARDS.CONTACT\' | translate}}</th>\n <th md-column md-order-by="createdAt">{{\'DASHBOARDS.STARTEDAT\' | translate}}</th>\n <th md-column md-order-by="lastMsgAt">{{\'DASHBOARDS.LAST_MESSAGE\' | translate}}</th>\n <th md-column md-order-by="closed">{{\'DASHBOARDS.STATUS\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.AGENT\' | translate}}</th>\n <th md-column>\n {{\'DASHBOARDS.ACCOUNT\' | translate}}\n </th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.smsInteractions.rows.length">\n <td md-cell colspan="13">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INTERACTION">No Available\n Interaction</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="interaction in vm.smsInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td ng-click="vm.showSmsInteraction($event, interaction)" md-cell class="id">\n <div layout="row" layout-align="start center">\n <span class="font-size-10">{{interaction.id}}</span>\n </div>\n </td>\n <td md-cell>\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="u in interaction.Users">{{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : u.fullname | translate }}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="!interaction.closed && interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" layout-margin>{{interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="interaction.attach" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td ng-click="vm.showSmsInteraction($event, interaction)" md-cell>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'no-margin-bottom\' : interaction.contactInfo}" layout-margin privacy ng-cloak>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text no-margin-top" layout-margin privacy ng-cloak>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td ng-click="vm.showSmsInteraction($event, interaction)" md-cell>\n <span class="font-size-10 text-truncate">{{interaction.createdAt | formatdate }}</span>\n </td>\n <td ng-click="vm.showSmsInteraction($event, interaction)" md-cell>\n <div layout="row" ng-if="interaction.lastMsgAt">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}">\n </md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="font-size-10 text-truncate">{{interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n <span ng-if="!interaction.lastMsgAt">No messages</span>\n </td>\n <td ng-click="vm.showSmsInteraction($event, interaction)" md-cell>\n <span ng-if="interaction.closed" class="red-fg font-size-12">{{ \'DASHBOARDS.CLOSED\' | translate}} <span ng-if="interaction.disposition">-\n {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}</span></span>\n <md-tooltip class="multiline" ng-if="interaction.closed">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n <span ng-if="!interaction.closed" class="green-fg font-size-12"><span translate="DASHBOARDS.OPENED"></span><span ng-if="interaction.substatus"> -\n {{interaction.substatus}}</span></span>\n </td>\n <td ng-click="vm.showSmsInteraction($event, interaction)" md-cell class="user">\n <span class="font-size-12 text-truncate width-80">{{ vm.getAgentLabel(interaction) }}</span>\n </td>\n <td ng-click="vm.showSmsInteraction($event, interaction)" md-cell class="smsAccount">\n {{ vm.getSmsAccountLabel(interaction) }}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <div layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">,\n </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </div>\n </td>\n <td md-cell class="actions actions-padding">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="vm.showSmsInteraction($event, interaction)" translate="DASHBOARDS.SHOW">\n Show Sms\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions">\n <md-button ng-click="vm.downloadSmsInteraction($event, interaction)" translate="DASHBOARDS.DOWNLOAD">\n Download Sms\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!interaction.closed">\n <md-button ng-click="vm.disposeInteraction($event, interaction)" translate="DASHBOARDS.CLOSE_AND_DISPOSE">\n Close and Dispose\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'DASHBOARDS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'DASHBOARDS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'DASHBOARDS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.smsInteractions.count}}" md-on-paginate="vm.getSmsInteractions" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/voice/agent.general.voice.html",'<md-card ng-init="vm.onInit()">\n <md-toolbar class="md-table-toolbar md-default table-header blue-A700-bg" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.CALLS">Calls</span>\n <ms-search-bar on-search="vm.getVoiceCalls()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getVoiceCalls()">\n </ms-quick-filter>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getVoiceCalls">\n <tr md-row>\n <th md-column md-order-by="id">{{\'VOICE.ID\' | translate}}</th>\n <th md-column md-order-by="type">{{ \'VOICE.TYPE\' | translate }}</th>\n <th md-column md-order-by="source">{{ \'VOICE.SOURCE\' | translate }}</th>\n <th md-column md-order-by="destination">{{ \'VOICE.DESTINATION\' | translate }}</th>\n <th md-column md-order-by="starttime">{{ \'VOICE.STARTEDAT\' | translate }}</th>\n <th md-column md-order-by="endtime">{{ \'VOICE.ENDEDAT\' | translate }}</th>\n <th md-column md-order-by="userDisposition">{{ \'VOICE.DISPOSITION\' | translate }}</th>\n <th md-column md-order-by="userSecondDisposition">{{ \'VOICE.SECOND_LEVEL_DISPOSITION\' | translate }}</th>\n <th md-column md-order-by="userThirdDisposition">{{ \'VOICE.THIRD_LEVEL_DISPOSITION\' | translate }}</th>\n <th md-column>{{ \'VOICE.NOTE\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.voiceCalls.rows.length">\n <td md-cell colspan="10">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="voiceCall in vm.voiceCalls.rows" ng-click="vm.showDetails(voiceCall, $event)">\n <td md-cell class="type">{{voiceCall.id}}</td>\n <td md-cell class="type">{{ \'VOICE.\' + voiceCall.type.toUpperCase() | translate}}</td>\n <td md-cell class="source">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="voiceCall.source" license="vm_home.license"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td md-cell class="destination">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="voiceCall.destination" license="vm_home.license"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td md-cell class="starttime">{{voiceCall.starttime | date:\'medium\' }}</td>\n <td md-cell class="endtime">{{voiceCall.endtime | date:\'medium\' }}</td>\n <td md-cell class="disposition">{{ voiceCall.userDisposition}}</td>\n <td md-cell class="disposition">{{ voiceCall.userSecondDisposition}}</td>\n <td md-cell class="disposition">{{ voiceCall.userThirdDisposition}}</td>\n <td md-cell class="note">\n <md-icon ng-if="voiceCall.note" md-font-icon="icon-clipboard-outline"></md-icon>\n </td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.showDetails(voiceCall, $event)" translate="VOICE.DETAILS">\n Show Details\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.voiceCalls.count}}" md-on-paginate="vm.getVoiceCalls" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/voice/details/dialog.html",'<md-dialog class="details-dialog" aria-label="details">\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span ng-if="!vm.interaction.closed" class="title" translate="VOICE.DETAILS"></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content>\n <md-list flex>\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.UNIQUEID">Uniqueid</p>\n <h4>{{vm.call.uniqueid}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.TYPE">Type</p>\n <h4>{{vm.call.type ? vm.call.type : \'no type\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.SOURCE">Source</p>\n <h4 privacy ng-cloak>{{vm.call.source ? vm.call.source : \'unknown\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.DESTINATION">Destination</p>\n <h4 privacy ng-cloak>{{vm.call.destination ? vm.call.destination : \'unknown\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.STARTEDAT">Started At</p>\n <h4>{{vm.call.starttime | date:\'medium\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.ANSWEREDAT">Answered At</p>\n <h4>{{vm.call.answertime ? (vm.call.answertime | date:\'medium\') : \'--\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.ENDEDAT">Ended At</p>\n <h4>{{vm.call.endtime ? (vm.call.endtime | date:\'medium\') : \'--\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.DURATION">Duration</p>\n <h4>{{vm.call.duration ? vm.call.duration : \'--\'}}s</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.BILLABLESECONDS">Billable Seconds</p>\n <h4>{{vm.call.billableseconds ? vm.call.billableseconds : \'--\'}}s</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.DISPOSITION">Disposition</p>\n <h4>{{vm.call.userDisposition ? vm.call.userDisposition : \'--\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.SECOND_LEVEL_DISPOSITION">Second Level Disposition</p>\n <h4>{{vm.call.userSecondDisposition ? vm.call.userSecondDisposition : \'--\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.THIRD_LEVEL_DISPOSITION">Third Level Disposition</p>\n <h4>{{vm.call.userThirdDisposition ? vm.call.userThirdDisposition : \'--\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.NOTE">Note</p>\n <h4>{{vm.call.note ? vm.call.note : \'--\'}}</h4>\n </div>\n </md-list-item>\n </md-list>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <md-button type="button" ng-click="vm.closeDialog()" class="send-button md-accent md-raised" aria-label="DISPOSE" translate="VOICE.CLOSE" translate-attr-aria-label="VOICE.DISPOSE">\n CLOSE\n </md-button>\n </md-dialog-actions>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/home/whatsapp/agent.general.whatsapp.html",'<md-card ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.WHATSAPP_INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm.getWhatsappInteractions()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getWhatsappInteractions()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" aria-label="Reload" translate translate-attr-aria-label="DASHBOARDS.RELOAD" ng-click="vm.getWhatsappInteractions()">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n <md-menu ng-if="vm.whatsappAccounts.rows && vm.whatsappAccounts.rows.length">\n <md-button class="md-icon-button create-new" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-repeat="whatsappAccount in vm.whatsappAccounts.rows">\n <md-button aria-label="compose" ng-click="vm.composeWhatsappInteraction($event, whatsappAccount)">\n {{ whatsappAccount.name }} ({{ whatsappAccount.key }})</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </md-toolbar>\n <md-table-container class="interactions-list">\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getWhatsappInteractions">\n <tr md-row>\n <th class="id-header" md-column md-order-by="id">\n {{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column class="no-padding width-5">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding width-5"></th>\n <th md-column class="no-padding width-5"></th>\n <th md-column md-order-by="contactName">{{\'DASHBOARDS.CONTACT\' | translate}}</th>\n <th md-column md-order-by="createdAt">{{\'DASHBOARDS.STARTEDAT\' | translate}}</th>\n <th md-column md-order-by="lastMsgAt">{{\'DASHBOARDS.LAST_MESSAGE\' | translate}}</th>\n <th md-column md-order-by="closed">{{\'DASHBOARDS.STATUS\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.AGENT\' | translate}}</th>\n <th md-column>\n {{\'DASHBOARDS.ACCOUNT\' | translate}}\n </th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.whatsappInteractions.rows.length">\n <td md-cell colspan="13">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INTERACTION">No Available\n Interaction</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="interaction in vm.whatsappInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td ng-click="vm.showWhatsappInteraction($event, interaction)" md-cell class="id">\n <div layout="row" layout-align="start center">\n <span class="font-size-10">{{interaction.id}}</span>\n </div>\n </td>\n <td md-cell>\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="u in interaction.Users">{{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : u.fullname | translate }}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="!interaction.closed && interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" layout-margin>{{interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="interaction.attach" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td ng-click="vm.showWhatsappInteraction($event, interaction)" md-cell>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'no-margin-bottom\' : interaction.contactInfo}" layout-margin privacy ng-cloak>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text no-margin-top" layout-margin privacy ng-cloak>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td ng-click="vm.showWhatsappInteraction($event, interaction)" md-cell>\n <span class="font-size-10 text-truncate">{{interaction.createdAt | formatdate }}</span>\n </td>\n <td ng-click="vm.showWhatsappInteraction($event, interaction)" md-cell>\n <div layout="row" ng-if="interaction.lastMsgAt">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}">\n </md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="font-size-10 text-truncate">{{interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n <span ng-if="!interaction.lastMsgAt">No messages</span>\n </td>\n <td ng-click="vm.showWhatsappInteraction($event, interaction)" md-cell>\n <span ng-if="interaction.closed" class="red-fg font-size-12">{{ \'DASHBOARDS.CLOSED\' | translate}} <span ng-if="interaction.disposition">-\n {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}</span></span>\n <md-tooltip class="multiline" ng-if="interaction.closed">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n <span ng-if="!interaction.closed" class="green-fg font-size-12"><span translate="DASHBOARDS.OPENED"></span><span ng-if="interaction.substatus"> -\n {{interaction.substatus}}</span></span>\n </td>\n <td ng-click="vm.showWhatsappInteraction($event, interaction)" md-cell class="user">\n <span class="font-size-12 text-truncate width-80">{{ vm.getAgentLabel(interaction) }}</span>\n </td>\n <td ng-click="vm.showWhatsappInteraction($event, interaction)" md-cell class="whatsappAccount">\n {{ vm.getWhatsappAccountLabel(interaction) }}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <div layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">,\n </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </div>\n </td>\n <td md-cell class="actions actions-padding">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="vm.showWhatsappInteraction($event, interaction)" translate="DASHBOARDS.SHOW">\n Show Whatsapp\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions">\n <md-button ng-click="vm.downloadWhatsappInteraction($event, interaction)" translate="DASHBOARDS.DOWNLOAD">\n Download Whatsapp\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!interaction.closed">\n <md-button ng-click="vm.disposeInteraction($event, interaction)" translate="DASHBOARDS.CLOSE_AND_DISPOSE">\n Close and Dispose\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'DASHBOARDS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'DASHBOARDS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'DASHBOARDS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.whatsappInteractions.count}}" md-on-paginate="vm.getWhatsappInteractions" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/iframe/agent.general.iframe.html",'<md-content layout="row" layout-fill>\n\n <div flex layout="row">\n\n <iframe ng-src="{{vm.getTrustedURL()}}" frameborder=0 style="width: 100%; height: 100%; border:0px;"></iframe>\n\n </div>\n\n</md-content>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",'<md-dialog id="agent-general-dialog" aria-label="Spy Dialog">\n <div id="interaction-app" class="agent-content" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.html\'"></div>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.html",'\x3c!-- CONTENT CARD --\x3e\n<md-content class="content-card" layout="row" layout-fill>\n\n <div ng-if="!vm.showInteraction" class="start-point" flex layout="column" layout-align="center center" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.loading.html\'"></div>\n\n <div ng-if="vm.showInteraction" flex layout="row">\n\n <md-card flex="75" class="interaction">\n\n <md-content class="interaction-agents" layout="row" layout-align="start center" ng-if="!vm.interaction.closed && vm.interaction.Users.length">\n <strong layout-margin translate="DASHBOARDS.CURRENTLY_IN_USE_BY">Currently in use by </strong>\n\n <div ng-repeat="u in vm.interaction.Users">\n <img class="avatar-small" ng-src="api/users/{{u.id}}/avatar">\n <md-tooltip> {{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : vm.usersMap[u.id] | translate }}\n </md-tooltip>\n </div>\n </md-content>\n\n \x3c!-- TOOLBAR --\x3e\n <md-toolbar class="interaction-toolbar" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.html\'">\n </md-toolbar>\n \x3c!-- / TOOLBAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <md-content id="interaction-content" name="{{\'interaction-content-\' + vm.tab.id}}" flex ms-scroll layout-wrap>\n <div class="interaction-messages" ng-switch="vm.tab.channel">\n <div ng-switch-when="mail">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.interaction.mail.html\'">\n </div>\n </div>\n <div ng-switch-default>\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.interaction.html\'">\n </div>\n </div>\n </div>\n </md-content>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- FOOTER --\x3e\n <div ng-if="\n !vm.interaction.closed && ( vm.tab.channel == \'chat\' \n || (vm.tab.channel == \'openchannel\' && vm.account.replyUri) \n || (vm.tab.channel == \'sms\' && !vm.tab.spy) \n || (vm.tab.channel == \'whatsapp\' && !vm.tab.spy) )\n && (vm.user.role !== \'admin\' && vm.user.role !== \'user\')" class="interaction-footer flex-noshrink" layout="row" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.footer.html\'">\n </div>\n \x3c!-- / FOOTER--\x3e\n </md-card>\n\n <md-card layout="column" flex class="info" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.html\'">\n </md-card>\n </div>\n</md-content>\n\x3c!-- / CONTENT CARD --\x3e'),e.put("app/main/apps/dashboards/views/general/agent/interaction/compose/chat/dialog.html",'<md-dialog class="compose-dialog" aria-label="New Message">\n <form class="md-inline-form" name="composeForm" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div layout="row">\n <md-button ng-if="!vm.secret" ng-click="vm.send()" class="md-raised md-blue-bg white-fg" aria-label="Send message">\n <span translate="CHAT.SEND">SEND</span>\n </md-button>\n <md-button ng-if="vm.secret" ng-click="vm.addNote()" class="md-raised md-blue-bg white-fg" aria-label="Add note">\n <span translate="CHAT.ADD_NOTE">Add note</span>\n </md-button>\n </div>\n <span ng-if="!vm.secret" class="title">{{vm.message.from}}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()" aria-label="Close dialog" tranlate translate-aria-label="CHAT.CLOSE_DIALOG">\n <md-icon md-font-icon="icon-close"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container ng-if="!vm.secret" class="md-block to">\n <label translate="CHAT.TO">To</label>\n <md-chips name="to" ng-model="vm.message.to" md-transform-chip="vm.transformContact($chip)" md-separator-keys="vm.separatorKeys" md-require-match="false" md-max-chips="1" required>\n <md-autocomplete md-search-text="vm.searchTo" md-items="contact in vm.contactSearch(vm.searchTo)" md-item-text="contact.mobile" md-min-length="3">\n <md-item-template>\n <span>{{ vm.getContact(contact) }}</span>\n </md-item-template>\n </md-autocomplete>\n </md-chips>\n <div ng-messages="composeForm.to.$error" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TO_REQUIRED">To field is required</span>\n </div>\n </div>\n </md-input-container>\n <ms-emoji-area on-reply="vm.reply(event, body)" ctrl-methods="vm.ctrlMethods" ng-model="vm.message.body" placeholder="\'CHAT.INSERT_MESSAGE_HERE\'" picker-position="\'bottom\'"></ms-emoji-area>\n <md-autocomplete ng-if="!vm.secret" class="padding-top-5" md-selected-item="vm.selectedItem" md-search-text="vm.searchText" md-selected-item-change="vm.selectedItemChange(item)" md-items="item in vm.searchTextChange(vm.searchText)" md-item-text="item.value" md-min-length="1" md-floating-label="{{ \'CHAT.CANNED_ANSWER_SEARCH\' | translate}}" class="input-show-hide no-container-margin">\n <md-item-template>\n <md-icon ng-if="!item.ChatAccountId" md-font-icon="icon-earth" aria-label="alert chat" class="s16"></md-icon>\n <md-icon ng-if="item.ChatAccountId" md-font-icon="icon-message-text" aria-label="alert chat" class="s16 orange-fg"></md-icon>\n <span md-highlight-text="vm.searchText" md-highlight-flags="^i">{{item.key}} - {{item.value}}</span>\n </md-item-template>\n\n <md-not-found>\n <span translate="CHAT.CANNED_ANSWER_NOT_FOUND">No canned answers were found</span>\n </md-not-found>\n </md-autocomplete>\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/compose/fax/dialog.html",'<md-dialog class="compose-dialog" aria-label="New Message">\n <form class="md-inline-form" name="composeForm" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div layout="row">\n <md-button ng-click="vm.send()" class="md-raised md-blue-bg white-fg" aria-label="Send message">\n <span translate="FAX.SEND">SEND</span>\n </md-button>\n <md-button ng-disabled="vm.message.attachments.length === 1" class="md-fab md-mini md-white-bg" aria-label="attachment" translate-attr-aria-label="DASHBOARDS.ATTACHMENT" flow-btn flow-name="vm.ngFlow.flow" flow-files-submitted="vm.upload()" flow-init="vm.ngFlowOptions" flow-file-added="vm.fileAdded($file)" flow-file-success="vm.fileSuccess($file, $message)">\n <md-icon md-font-icon="icon-paperclip" class="red-fg"></md-icon>\n </md-button>\n </div>\n <span class="title">{{vm.message.from}}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()" aria-label="Close dialog" tranlate translate-aria-label="FAX.CLOSE_DIALOG">\n <md-icon md-font-icon="icon-close"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <md-input-container class="md-block to">\n <label translate="FAX.TO">To</label>\n <md-chips name="to" ng-model="vm.message.to" md-transform-chip="vm.transformContact($chip)" md-separator-keys="vm.separatorKeys" md-require-match="false" md-max-chips="1" required>\n <md-autocomplete ng-hide="vm.message.to.length === 1" md-search-text="vm.searchTo" md-items="contact in vm.contactSearch(vm.searchTo)" md-item-text="contact.fax" md-min-length="3">\n <md-item-template>\n <span>{{ vm.getContact(contact) }}</span>\n </md-item-template>\n </md-autocomplete>\n </md-chips>\n <div ng-messages="composeForm.to.$error" ng-if="composeForm.$dirty">\n <div ng-message="required">\n <span translate="FAX.ERRORS.TO_REQUIRED">To field is required</span>\n </div>\n <div ng-message="md-max-chips">You reached the maximum amount of chips</div>\n </div>\n </md-input-container>\n <div class="attachment-list" ng-if="vm.message.attachments.length" layout="row" layout-wrap>\n <div class="attachment" layout="row" layout-align="space-between center" ng-repeat="attachment in vm.message.attachments">\n <div>\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n <span class="filename">{{attachment.name}}</span>\n <span class="size">({{attachment.size | byteFmt: 0}})</span>\n </div>\n <md-button class="md-icon-button" aria-label="Delete attachment" translate translate-attr-aria-label="FAX.DELETE_ATTACHMENT">\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/compose/mail/dialog.html",'<md-dialog class="compose-dialog" aria-label="New Message" ng-class="{\'mail-no-secret\': !vm.secret}" ng-cloak>\n <form class="md-inline-form" name="composeForm" novalidate>\n <md-toolbar ng-class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div layout="row">\n <div ng-if="!vm.secret" class="md-button md-raised blue-bg no-padding">\n <button class="white-fg margin-horizontal-10" aria-label="Send message" ng-disabled="!vm.verifySmtp" ng-click="vm.send($event, false, null)">\n <span>{{ \'MAIL.SEND\' | translate | uppercase }}</span>\n </button>\n <span class="white-fg secondary-text vertical-divider"></span>\n <md-menu>\n <button ng-disabled="!vm.verifySmtp" class="white-fg margin-left-0" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-menu-down" class="icon s24"></md-icon>\n </button>\n <md-menu-content width="2">\n <md-menu-item ng-if="vm.subStatuses.rows.length">\n <md-menu>\n <md-button ng-click="$mdMenu.open()" class="text-capitalize" translate="MAIL.SEND_AS">\n Send as\n </md-button>\n <md-menu-content>\n <md-menu-item ng-repeat="subStatus in vm.subStatuses.rows">\n <md-button ng-click="vm.send($event, false, subStatus.name)">\n {{subStatus.name}}\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.send($event, true, null)" translate="MAIL.SEND_AND_CLOSE">\n Send and Close\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n <md-button ng-if="!vm.secret" class=" md-button md-raised blue-bg white-fg margin-horizontal-10" aria-label="Save draft" ng-click="vm.saveDraft()">\n <span>{{ (vm.isDraft ? \'DASHBOARDS.UPDATE_DRAFT\' : \'DASHBOARDS.SAVE_AS_DRAFT\') | translate | uppercase }}</span>\n </md-button>\n <md-button ng-if="vm.secret" ng-click="vm.addNote()" class="md-raised md-blue-bg white-fg" aria-label="Send message">\n <span translate="MAIL.ADD_NOTE">Add note</span>\n </md-button>\n <md-button ng-disabled="!vm.verifySmtp" class="md-fab md-mini md-white-bg" aria-label="attachment" translate-attr-aria-label="DASHBOARDS.ATTACHMENT" flow-btn flow-name="vm.ngFlow.flow" flow-files-submitted="vm.upload($files)" flow-init="vm.ngFlowOptions" flow-file-success="vm.fileSuccess($file, $message)" flow-file-added="vm.fileAdded($file)">\n <md-icon md-font-icon="icon-paperclip" class="red-fg"></md-icon>\n </md-button>\n </div>\n <span ng-if="!vm.secret" class="title">{{vm.message.from}}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()" aria-label="Close dialog" tranlate translate-aria-label="MAIL.CLOSE_DIALOG">\n <md-icon md-font-icon="icon-close"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container ng-if="!vm.secret" class="md-block to" ng-class="{\'hidden-cc\': vm.hiddenCC, \'hidden-bcc\': vm.hiddenBCC}">\n <label translate="MAIL.TO">To</label>\n <md-chips name="to" ng-model="vm.message.to" ng-keypress="vm.keyPress($event)" md-transform-chip="vm.transformContact($chip, vm.message.to)" md-separator-keys="vm.separatorKeys" md-require-match="false" required>\n <md-autocomplete md-search-text="vm.searchTo" md-items="contact in vm.contactSearch(vm.searchTo)" md-item-text="contact.email" md-min-length="3">\n <md-item-template>\n <span>{{ vm.getContact(contact) }}</span>\n </md-item-template>\n </md-autocomplete>\n </md-chips>\n <div ng-messages="composeForm.to.$error" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.TO_REQUIRED">To field is required</span>\n </div>\n </div>\n <div class="cc-bcc" layout="row" layout-align="start center">\n <div class="show-cc" ng-show="vm.hiddenCC" ng-click="vm.hiddenCC = false">CC</div>\n <div class="show-bcc" ng-show="vm.hiddenBCC" ng-click="vm.hiddenBCC = false">BCC</div>\n </div>\n </md-input-container>\n <md-input-container ng-if="!vm.secret" class="md-block" ng-hide="vm.hiddenCC">\n <label translate="MAIL.CC">Cc</label>\n <md-chips name="cc" ng-model="vm.message.cc" ng-keypress="vm.keyPress($event)" md-transform-chip="vm.transformContact($chip, vm.message.cc)" md-separator-keys="vm.separatorKeys" md-require-match="false" required>\n <md-autocomplete md-search-text="vm.searchCc" md-items="contact in vm.contactSearch(vm.searchCc)" md-item-text="contact.email" md-min-length="3">\n <md-item-template>\n <span>{{ vm.getContact(contact) }}</span>\n </md-item-template>\n </md-autocomplete>\n </md-chips>\n </md-input-container>\n <md-input-container ng-if="!vm.secret" class="md-block" ng-hide="vm.hiddenBCC">\n <label translate="MAIL.BCC">Bcc</label>\n <md-chips name="bcc" ng-model="vm.message.bcc" ng-keypress="vm.keyPress($event)" md-transform-chip="vm.transformContact($chip, vm.message.bcc)" md-separator-keys="vm.separatorKeys" md-require-match="false" required>\n <md-autocomplete md-search-text="vm.searchBcc" md-items="contact in vm.contactSearch(vm.searchBcc)" md-item-text="contact.email" md-min-length="3">\n <md-item-template>\n <span>{{ vm.getContact(contact) }}</span>\n </md-item-template>\n </md-autocomplete>\n </md-chips>\n </md-input-container>\n <md-input-container ng-if="!vm.secret" class="md-block no-margin">\n <label translate="MAIL.SUBJECT">Subject</label>\n <input ng-model="vm.message.subject" type="text" ng-keypress="vm.keyPress($event)">\n </md-input-container>\n <div class="attachment-list" ng-if="vm.message.attachments.length" layout="row" layout-wrap>\n <div class="attachment" layout="row" layout-align="space-between center" ng-repeat="attachment in vm.message.attachments">\n <div>\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n <span class="filename">{{attachment.name}}</span>\n <span class="size" ng-if="attachment.size">({{attachment.size | byteFmt: 0}})</span>\n </div>\n <md-button ng-click="vm.removeAttachment(attachment)" class="md-icon-button" aria-label="Delete attachment" translate translate-attr-aria-label="MAIL.DELETE_ATTACHMENT">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <div class="padding-top-5">\n <textarea ckeditor="vm.ckeditor" id="html-area" ng-model="vm.message.body" md-select-on-focus="" ready="vm.onReadyEditor()"></textarea>\n </div>\n <md-switch ng-if="!vm.message.showLastMessage && !vm.secret" ng-model="vm.message.showLastMessage" ng-change="vm.loadLastMessage()" aria-label="load last message"><span translate="MAIL.SHOW_ORIGINAL_MESSAGE">Show original message</span></md-switch>\n <md-autocomplete ng-if="!vm.secret" md-selected-item="vm.selectedItem" md-search-text="vm.searchText" md-selected-item-change="vm.selectedItemChange(item)" md-items="item in vm.searchTextChange(vm.searchText)" md-item-text="item.value" md-min-length="1" md-floating-label="{{ \'MAIL.CANNED_ANSWER_SEARCH\' | translate}}" class="input-show-hide no-container-margin" ng-keypress="vm.keyPress($event)">\n <md-item-template>\n <md-icon ng-if="!item.MailAccountId" md-font-icon="icon-earth" aria-label="alert email" class="s16">\n </md-icon>\n <md-icon ng-if="item.MailAccountId" md-font-icon="icon-email" aria-label="alert email" class="s16 teal-fg"></md-icon>\n <span md-highlight-text="vm.searchText" md-highlight-flags="^i">{{ item.key }} -\n {{ item.value | htmlToPlaintext }}</span>\n </md-item-template>\n <md-not-found>\n <span translate="MAIL.CANNED_ANSWER_NOT_FOUND">No canned answers were found</span>\n </md-not-found>\n </md-autocomplete>\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/compose/openchannel/dialog.html",'<md-dialog class="compose-dialog" aria-label="New Message">\n <form class="md-inline-form" name="composeForm" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div layout="row">\n <md-button ng-if="!vm.secret" ng-click="vm.send()" class="md-raised md-blue-bg white-fg" aria-label="Send message">\n <span translate="OPENCHANNEL.SEND">SEND</span>\n </md-button>\n <md-button ng-if="vm.secret" ng-click="vm.addNote()" class="md-raised md-blue-bg white-fg" aria-label="Add note">\n <span translate="OPENCHANNEL.ADD_NOTE">Add note</span>\n </md-button>\n </div>\n <span ng-if="!vm.secret" class="title">{{vm.message.from}}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()" aria-label="Close dialog" tranlate translate-aria-label="OPENCHANNEL.CLOSE_DIALOG">\n <md-icon md-font-icon="icon-close"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container ng-if="!vm.secret" class="md-block to">\n <label translate="OPENCHANNEL.TO">To</label>\n <md-chips name="to" ng-model="vm.message.to" md-transform-chip="vm.transformContact($chip)" md-separator-keys="vm.separatorKeys" md-require-match="false" md-max-chips="1" required>\n <md-autocomplete md-search-text="vm.searchTo" md-items="contact in vm.contactSearch(vm.searchTo)" md-item-text="contact.mapkey" md-min-length="3">\n <md-item-template>\n <span>{{ vm.getContact(contact) }}</span>\n </md-item-template>\n </md-autocomplete>\n </md-chips>\n <div ng-messages="composeForm.to.$error" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.TO_REQUIRED">To field is required</span>\n </div>\n </div>\n </md-input-container>\n <ms-emoji-area on-reply="vm.reply(event, body)" ctrl-methods="vm.ctrlMethods" ng-model="vm.message.body" placeholder="\'OPENCHANNEL.INSERT_MESSAGE_HERE\'" picker-position="\'bottom\'"></ms-emoji-area>\n <md-autocomplete ng-if="!vm.secret" class="padding-top-5" md-selected-item="vm.selectedItem" md-search-text="vm.searchText" md-selected-item-change="vm.selectedItemChange(item)" md-items="item in vm.searchTextChange(vm.searchText)" md-item-text="item.value" md-min-length="1" md-floating-label="{{ \'OPENCHANNEL.CANNED_ANSWER_SEARCH\' | translate}}" class="input-show-hide no-container-margin">\n <md-item-template>\n <md-icon ng-if="!item.OpenchannelAccountId" md-font-icon="icon-earth" aria-label="alert openchannel" class="s16"></md-icon>\n <md-icon ng-if="item.OpenchannelAccountId" md-font-icon="icon-message-text" aria-label="alert openchannel" class="s16 orange-fg"></md-icon>\n <span md-highlight-text="vm.searchText" md-highlight-flags="^i">{{item.key}} - {{item.value}}</span>\n </md-item-template>\n <md-not-found>\n <span translate="OPENCHANNEL.CANNED_ANSWER_NOT_FOUND">No canned answers were found</span>\n </md-not-found>\n </md-autocomplete>\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/compose/sms/dialog.html",'<md-dialog class="compose-dialog" aria-label="New Message">\n <form class="md-inline-form" name="composeForm" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div layout="row">\n <md-button ng-if="!vm.secret" ng-click="vm.send()" class="md-raised md-blue-bg white-fg" aria-label="Send message">\n <span translate="SMS.SEND">SEND</span>\n </md-button>\n <md-button ng-if="vm.secret" ng-click="vm.addNote()" class="md-raised md-blue-bg white-fg" aria-label="Add note">\n <span translate="SMS.ADD_NOTE">Add note</span>\n </md-button>\n </div>\n <span ng-if="!vm.secret" class="title">{{vm.message.from}}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()" aria-label="Close dialog" tranlate translate-aria-label="SMS.CLOSE_DIALOG">\n <md-icon md-font-icon="icon-close"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container ng-if="!vm.secret" class="md-block to">\n <label translate="SMS.TO">To</label>\n <md-chips name="to" ng-model="vm.message.to" md-transform-chip="vm.transformContact($chip)" md-separator-keys="vm.separatorKeys" md-require-match="false" md-max-chips="1" required>\n <md-autocomplete md-search-text="vm.searchTo" md-items="contact in vm.contactSearch(vm.searchTo)" md-item-text="contact.mobile" md-min-length="3">\n <md-item-template>\n <span>{{ vm.getContact(contact) }}</span>\n </md-item-template>\n </md-autocomplete>\n </md-chips>\n <div ng-messages="composeForm.to.$error" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.TO_REQUIRED">To field is required</span>\n </div>\n </div>\n </md-input-container>\n <ms-emoji-area on-reply="vm.reply(event, body)" ctrl-methods="vm.ctrlMethods" ng-model="vm.message.body" placeholder="\'SMS.INSERT_MESSAGE_HERE\'" picker-position="\'bottom\'"></ms-emoji-area>\n <md-autocomplete ng-if="!vm.secret" class="padding-top-5" md-selected-item="vm.selectedItem" md-search-text="vm.searchText" md-selected-item-change="vm.selectedItemChange(item)" md-items="item in vm.searchTextChange(vm.searchText)" md-item-text="item.value" md-min-length="1" md-floating-label="{{ \'SMS.CANNED_ANSWER_SEARCH\' | translate}}" class="input-show-hide no-container-margin">\n <md-item-template>\n <md-icon ng-if="!item.SmsAccountId" md-font-icon="icon-earth" aria-label="alert sms" class="s16"></md-icon>\n <md-icon ng-if="item.SmsAccountId" md-font-icon="icon-message-text" aria-label="alert sms" class="s16 orange-fg"></md-icon>\n <span md-highlight-text="vm.searchText" md-highlight-flags="^i">{{item.key}} - {{item.value}}</span>\n </md-item-template>\n <md-not-found>\n <span translate="SMS.CANNED_ANSWER_NOT_FOUND">No canned answers were found</span>\n </md-not-found>\n </md-autocomplete>\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/compose/whatsapp/dialog.html",'<md-dialog class="compose-dialog" aria-label="New Message">\n <form class="md-inline-form" name="composeForm" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div layout="row">\n <md-button ng-if="!vm.secret" ng-click="vm.send()" class="md-raised md-blue-bg white-fg" aria-label="Send message">\n <span translate="WHATSAPP.SEND">SEND</span>\n </md-button>\n <md-button ng-if="vm.secret" ng-click="vm.addNote()" class="md-raised md-blue-bg white-fg" aria-label="Add note">\n <span translate="WHATSAPP.ADD_NOTE">Add note</span>\n </md-button>\n </div>\n <span ng-if="!vm.secret" class="title">{{vm.message.from}}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()" aria-label="Close dialog" tranlate translate-aria-label="WHATSAPP.CLOSE_DIALOG">\n <md-icon md-font-icon="icon-close"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container ng-if="!vm.secret" class="md-block to">\n <label translate="WHATSAPP.TO">To</label>\n <md-chips name="to" ng-model="vm.message.to" md-transform-chip="vm.transformContact($chip)" md-separator-keys="vm.separatorKeys" md-require-match="false" md-max-chips="1" required>\n <md-autocomplete md-search-text="vm.searchTo" md-items="contact in vm.contactSearch(vm.searchTo)" md-item-text="contact.mobile" md-min-length="3">\n <md-item-template>\n <span>{{ vm.getContact(contact) }}</span>\n </md-item-template>\n </md-autocomplete>\n </md-chips>\n <div ng-messages="composeForm.to.$error" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TO_REQUIRED">To field is required</span>\n </div>\n </div>\n </md-input-container>\n <ms-emoji-area on-reply="vm.reply(event, body)" ctrl-methods="vm.ctrlMethods" ng-model="vm.message.body" placeholder="\'WHATSAPP.INSERT_MESSAGE_HERE\'" picker-position="\'bottom\'"></ms-emoji-area>\n <md-autocomplete ng-if="!vm.secret" class="padding-top-5" md-selected-item="vm.selectedItem" md-search-text="vm.searchText" md-selected-item-change="vm.selectedItemChange(item)" md-items="item in vm.searchTextChange(vm.searchText)" md-item-text="item.value" md-min-length="1" md-floating-label="{{ \'WHATSAPP.CANNED_ANSWER_SEARCH\' | translate}}" class="input-show-hide no-container-margin">\n <md-item-template>\n <md-icon ng-if="!item.WhatsappAccountId" md-font-icon="icon-earth" aria-label="alert whatsapp" class="s16">\n </md-icon>\n <md-icon ng-if="item.WhatsappAccountId" md-font-icon="icon-message-text" aria-label="alert whatsapp" class="s16 orange-fg"></md-icon>\n <span md-highlight-text="vm.searchText" md-highlight-flags="^i">{{item.key}} - {{item.value}}</span>\n </md-item-template>\n <md-not-found>\n <span translate="WHATSAPP.CANNED_ANSWER_NOT_FOUND">No canned answers were found</span>\n </md-not-found>\n </md-autocomplete>\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",'<md-dialog class="disposition-dialog" aria-label="disposition" ng-init="vm.onInit()">\n <form name="dispositionForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span ng-if="!vm.interaction.closed" class="title" translate="DASHBOARDS.DISPOSE"></span>\n <span ng-if="vm.interaction.closed" class="title" translate="DASHBOARDS.INFO"></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()" ng-if="!vm.mandatoryDisposition">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="DASHBOARDS.DISPOSITION">Disposition</label>\n <md-select name="disposition" ng-model="vm.firstLevelDisposition" ng-change="vm.onDispositionChange(\'first\')" required>\n <md-option ng-value="null" ng-if="!vm.mandatoryDisposition">NONE</md-option>\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'first\' } : true">\n {{ disposition.name }}</md-option>\n </md-select>\n <div ng-messages="dispositionForm.disposition.$error" ng-show="dispositionForm.disposition.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.DISPOSITION_REQUIRED">Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.firstLevelDisposition && vm.anySecondLevelDisposition" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="DASHBOARDS.SECOND_LEVEL_DISPOSITION">Second Level Disposition</label>\n <md-select name="secondLevelDisposition" ng-model="vm.secondLevelDisposition" ng-change="vm.onDispositionChange(\'second\')">\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'second\', ParentId: vm.firstLevelDisposition.id } : true">\n {{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.secondLevelDisposition" ng-click="vm.clearDispositionSelection(\'second\')" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear second level disposition selection">\n </md-icon>\n </md-button>\n </div>\n <div ng-if="vm.secondLevelDisposition && vm.anyThirdLevelDisposition" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="DASHBOARDS.THIRD_LEVEL_DISPOSITION">Third Level Disposition</label>\n <md-select name="thirdLevelDisposition" ng-model="vm.thirdLevelDisposition">\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'third\', ParentId: vm.secondLevelDisposition.id } : true" ng-disabled="disposition.canSelect === false">{{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.thirdLevelDisposition" ng-click="vm.clearDispositionSelection(\'third\')" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear third level disposition selection">\n </md-icon>\n </md-button>\n </div>\n <md-input-container class="md-block">\n <label translate="DASHBOARDS.NOTE">Note</label>\n <textarea ng-model="vm.interaction.note" md-maxlength="255" max-rows="5" autofocus></textarea>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.saveDisposition()" ms-dialog-spinner class="send-button md-accent md-raised" ng-if="!vm.interaction.closed && (vm.firstLevelDisposition || vm.secondLevelDisposition || vm.thirdLevelDisposition)" aria-label="CLOSE_AND_DISPOSE" translate="DASHBOARDS.CLOSE_AND_DISPOSE" translate-attr-aria-label="DASHBOARDS.CLOSE_AND_DISPOSE">\n CLOSE AND DISPOSE\n </md-button>\n <md-button type="submit" ng-click="vm.saveDisposition(false)" ms-dialog-spinner class="send-button md-accent md-raised" ng-if="!vm.interaction.closed && !vm.firstLevelDisposition" ng-disabled="vm.mandatoryDisposition" aria-label="CLOSE_WITHOUT_DISPOSE" translate="DASHBOARDS.CLOSE_WITHOUT_DISPOSE" translate-attr-aria-label="DASHBOARDS.CLOSE_WITHOUT_DISPOSE">\n CLOSE WITHOUT DISPOSE\n </md-button>\n <md-button type="submit" ng-click="vm.saveDisposition()" ms-dialog-spinner class="send-button md-accent md-raised" ng-if="vm.interaction.closed" ng-disabled="vm.mandatoryDisposition && !vm.firstLevelDisposition" aria-label="DISPOSE" translate="DASHBOARDS.DISPOSE" translate-attr-aria-label="DASHBOARDS.DISPOSE">\n DISPOSE\n </md-button>\n <div ng-if="vm.mandatoryDisposition">\n <md-icon md-font-icon="icon-information-outline" aria-label="Mandatory Disposition"></md-icon>\n <span class="no-margin font-size-12 line-height-30" translate="DASHBOARDS.HELP.MANDATORY_DISPOSITION_ENABLED"></span>\n </div>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/tag/dialog.html",'<md-dialog class="tag-dialog" aria-label="tag">\n <form name="tagForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title" translate="DASHBOARDS.TAGS"></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <md-chips ng-model="vm.interaction.Tags" md-autocomplete-snap md-require-match="vm.autocompleteRequireMatch">\n <md-autocomplete ng-blur="vm.searchText = \'\'" md-min-length="0" md-selected-item-change="vm.selectedItemChange" md-selected-item="vm.selectedItem" md-search-text="vm.searchText" md-items="item in vm.tags.rows | filter:{ name: vm.searchText }" md-item-text="item.name" placeholder="Search for a tag">\n <span md-highlight-text="vm.searchText">{{item.name}}</span>\n </md-autocomplete>\n <md-chip-template>\n <span>\n <strong>{{$chip.name}}</strong>\n </span>\n </md-chip-template>\n </md-chips>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.saveTag(false)" ng-disabled="tagForm.$pristine" class="send-button md-accent md-raised" aria-label="TAG" translate="DASHBOARDS.SAVE" translate-attr-aria-label="DASHBOARDS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/transfer/dialog.html",'<md-dialog class="disposition-dialog" aria-label="disposition">\n <form name="transferForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title" translate="DASHBOARDS.TRANSFER"></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog(false)">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <md-input-container class="md-block">\n <label translate="DASHBOARDS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.transfer.type">\n <md-option ng-value="\'queue\'" ng-if="vm.account.queueTransfer">Queue</md-option>\n <md-option ng-value="\'agent\'" ng-if="vm.account.agentTransfer">Agent</md-option>\n </md-select>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.transfer.type === \'queue\'">\n <label translate="DASHBOARDS.QUEUES">Queues</label>\n <md-select name="queue" ng-model="vm.transfer.id" required>\n <md-option ng-value="queue.id" ng-repeat="queue in vm.queues.rows">{{ queue.name }}</md-option>\n </md-select>\n <div ng-messages="transferForm.queue.$error" ng-show="transferForm.queue.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.transfer.type === \'agent\'">\n <label translate="DASHBOARDS.AGENTS">Agents</label>\n <md-select name="agent" ng-model="vm.transfer.id" required>\n <md-option ng-value="agent.id" ng-repeat="agent in vm.agents.rows">{{\n agent.name }}</md-option>\n </md-select>\n <div ng-messages="transferForm.agent.$error" ng-show="transferForm.agent.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.onTransfer(true)" ng-disabled="transferForm.$pristine" class="send-button md-accent md-raised" aria-label="DASHBOARDS.TRANSFER" translate="DASHBOARDS.TRANSFER" translate-attr-aria-label="DASHBOARDS.TRANSFER">\n TRANSFER\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.footer.html",'\x3c!-- REPLY FORM --\x3e\n<div ng-show="vm.showFooter" layout="column" layout-align="center center" flex>\n <div layout="row" layout-align="center center" style="flex-grow: 1; align-self: stretch" flex>\n \x3c!-- msEmojyArea directive --\x3e\n <ms-emoji-area ng-if="vm.tab.channel != \'fax\'" on-reply="vm.reply(event, body)" ctrl-methods="vm.ctrlMethods" ng-model="vm.tab.areaText" placeholder="vm.tab.channel.toUpperCase() + \'.INSERT_MESSAGE_HERE\'"></ms-emoji-area>\n \x3c!-- / msEmojyArea directive --\x3e\n\n <div layout="row" layout-align="end center">\n <md-button ng-if="vm.tab.channel != \'fax\'" style="margin:1px;" class="md-icon-button md-mini" ng-click="vm.changeDisplayCannedAnswerInputValue()" aria-label="Search canned answer" translate translate-attr-aria-label="DASHBOARDS.SEND_MESSAGE">\n <md-icon md-font-icon="icon-auto-fix" class="green-fg"></md-icon>\n </md-button>\n\n <md-button ng-if="vm.tab.channel == \'openchannel\' || vm.tab.channel == \'chat\' || vm.tab.channel == \'fax\'" style="margin:1px;" class="md-icon-button md-warn md-mini" aria-label="attachment" translate-attr-aria-label="DASHBOARDS.ATTACHMENT" flow-btn flow-name="vm.ngFlow.flow" flow-files-submitted="vm.upload()" flow-init="vm.ngFlowOptions" flow-file-added="vm.fileAdded($file)" flow-file-success="vm.fileSuccess($file, $message)">\n <md-icon md-font-icon="icon-paperclip"></md-icon>\n </md-button>\n </div>\n </div>\n\n <md-autocomplete ng-hide="!vm.displayCannedAnswerInput" md-selected-item="vm.selectedItem" md-search-text="vm.searchText" md-selected-item-change="vm.selectedItemChange(item)" md-items="item in vm.searchTextChange(vm.searchText)" md-item-text="item.value" md-min-length="1" placeholder="{{ \'DASHBOARDS.CANNED_ANSWER_SEARCH\' | translate}}" class="cannedarea input-show-hide">\n <md-item-template>\n <md-icon ng-if="!item[vm.tab.channel === \'chat\' ? \'ChatWebsiteId\' : _.capitalize(vm.tab.channel) + \'AccountId\']" md-font-icon="icon-earth" aria-label="alert channel" class="s16"></md-icon>\n <md-icon ng-if="item[vm.tab.channel === \'chat\' ? \'ChatWebsiteId\' : _.capitalize(vm.tab.channel) + \'AccountId\']" md-font-icon="{{vm.getIconByChannel(vm.tab.channel)}}" aria-label="alert channel" class="s16" ng-class="vm.getColorByChannel(vm.tab.channel) + \'-fg\'"></md-icon>\n <span md-highlight-text="vm.searchText" md-highlight-flags="^i">{{item.key}} - {{item.value}}</span>\n </md-item-template>\n\n <md-not-found>\n <span translate="DASHBOARDS.CANNED_ANSWER_NOT_FOUND">No canned answers were found</span>\n </md-not-found>\n </md-autocomplete>\n</div>\n\x3c!-- / REPLY FORM --\x3e'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.chat.html",'<div ng-init="item = item || vm.interaction">\n <md-list-item class="md-2-line" ng-if="item.browserName">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.BROWSER_NAME">Browser Name</p>\n <h4>{{ item.browserName }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.osName">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.OS_NAME">OS Name</p>\n <h4>{{ item.osName }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.deviceModel">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.DEVICE_MODEL">Device Model</p>\n <h4>{{ item.deviceModel }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.referer">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.REFERER">Referer</p>\n <h4>{{ item.referer }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.customerIp">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.CUSTOMER_IP">Originating IP Address</p>\n <h4>{{ item.customerIp }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.customerPort">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.CUSTOMER_PORT">Originating TCP Port</p>\n <h4>{{ item.customerPort }}</h4>\n </div>\n </md-list-item>\n <md-divider ng-if="item.closed && item.ratingValue != null || item.ratingMessage"></md-divider>\n <md-list-item class="md-2-line" ng-if="item.closed && item.ratingValue != null">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.RATING">Rating</p>\n <md-icon md-font-icon="icon-star" style="color:red" ng-show="!item.ratingType || item.ratingType == \'star\'" ng-repeat="ratingValue in [1,2,3,4,5] | limitTo:item.ratingValue"></md-icon>\n <md-icon md-font-icon="icon-thumb-up" style="color:green" ng-show="item.ratingType && item.ratingType == \'thumb\' && item.ratingValue == 1"></md-icon>\n <md-icon md-font-icon="icon-thumb-down" style="color:red" ng-show="item.ratingType && item.ratingType == \'thumb\' && item.ratingValue == 0"></md-icon>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.ratingMessage">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.FEEDBACK">Feedback</p>\n <h4 style="overflow-wrap: break-word; white-space: normal">{{ item.ratingMessage }}</h4>\n </div>\n </md-list-item>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.html",'<md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex>\n <md-tab>\n <md-tab-label>\n <span translate="DASHBOARDS.CONTACT">Contact</span>\n </md-tab-label>\n <md-tab-body>\n <md-content class="md-padding">\n <form name="contactForm" class="md-inline-form" novalidate>\n <md-input-container class="md-block">\n <md-icon md-font-icon="icon-account"></md-icon>\n <label translate="DASHBOARDS.NAME">Name</label>\n <input type="text" name="firstName" ng-model="vm.contact.firstName" disabled privacy ng-cloak>\n </md-input-container>\n\n <md-input-container class="md-block">\n <md-icon md-font-icon="icon-email"></md-icon>\n <label translate="DASHBOARDS.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.contact.email" disabled privacy ng-cloak>\n </md-input-container>\n\n <md-input-container class="md-block">\n <md-icon md-font-icon="icon-phone"></md-icon>\n <label translate="DASHBOARDS.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.contact.phone" disabled privacy ng-cloak>\n </md-input-container>\n\n <md-input-container class="md-block">\n <md-icon md-font-icon="icon-cellphone-iphone"></md-icon>\n <label translate="DASHBOARDS.MOBILE">Mobile</label>\n <input type="text" name="mobile" ng-model="vm.contact.mobile" disabled privacy ng-cloak>\n </md-input-container>\n\n <md-input-container class="md-block">\n <md-icon md-font-icon="icon-deskphone"></md-icon>\n <label translate="DASHBOARDS.FAX">Fax</label>\n <input type="text" name="fax" ng-model="vm.contact.fax" disabled privacy ng-cloak>\n </md-input-container>\n\n <div ng-if="!vm.tab.spy" layout="row" layout-align="center center">\n <md-button class="md-raised md-accent" ng-click="vm.openContact(ev)" translate="DASHBOARDS.MORE">\n More\n </md-button>\n </div>\n </form>\n </md-content>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="DASHBOARDS.INTERACTION">Interaction</span>\n </md-tab-label>\n <md-tab-body>\n <div layout="column" layout-align="space-between center" class="md-padding">\n <md-icon class="s42" md-font-icon="{{vm.getIconByChannel(vm.tab.channel)}}" ng-class="vm.getColorByChannel(vm.tab.channel) + \'-fg\'"></md-icon>\n <span ng-if="vm.interaction.closed" class="md-background-bg red-fg font-size-14">#{{vm.interaction.id}} - <span translate="DASHBOARDS.CLOSED"></span></span>\n <span ng-if="!vm.interaction.closed" class="md-background-bg green-fg font-size-14">#{{vm.interaction.id}} -\n <span translate="DASHBOARDS.OPENED"></span></span>\n <span ng-if="!vm.interaction.closed && vm.interaction.substatus" class="md-background-bg green-fg font-size-14">{{vm.interaction.substatus}}</span>\n </div>\n <md-divider></md-divider>\n <md-list flex>\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.WEBSITE" ng-if="vm.tab.channel == \'chat\'">Website</p>\n <p translate="DASHBOARDS.ACCOUNT" ng-if="vm.tab.channel != \'chat\'">Account</p>\n <h4>{{vm.account.name}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.AGENT">Agent</p>\n <h4>{{vm.agent.fullname || vm.usersMap[vm.interaction.UserId]}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line" ng-if="vm.interaction.externalUrl">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.EXTERNAL_URL">External URL</p>\n <a href="{{vm.interaction.externalUrl}}" target="_blank">\n <h4>{{vm.interaction.externalUrl}}</h4>\n </a>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.CREATED_AT">Created At</p>\n <h4>{{vm.interaction.createdAt | date: \'medium\'}}</h4>\n </div>\n </md-list-item>\n\n <div ng-switch="vm.tab.channel">\n <div ng-switch-when="chat">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.chat.html\'">\n </div>\n </div>\n <div ng-switch-when="mail">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.mail.html\'">\n </div>\n </div>\n <div ng-switch-when="openchannel">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.openchannel.html\'">\n </div>\n </div>\n </div>\n\n <md-list-item class="md-2-line" ng-if="vm.interaction.Tags.length">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.TAGS">Tags</p>\n <div class="tags padding-bottom-5" layout="row" layout-align="start center" layout-wrap>\n <div class="tag margin-right-5 margin-top-5 margin-bottom-5" layout="row" layout-align="center center" ng-repeat="tag in vm.interaction.Tags">\n <div class="tag-color" ng-style="{\'background\': tag.color}"></div>\n <div class="tag-label">{{tag.name}}</div>\n </div>\n </div>\n </div>\n </md-list-item>\n\n <md-divider ng-if="vm.interaction.closed"></md-divider>\n\n <md-list-item class="md-2-line" ng-if="vm.interaction.closed">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.CLOSED_AT">Closed At</p>\n <h4>{{vm.interaction.closedAt | date: \'medium\'}}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="vm.interaction.closed && vm.interaction.disposition">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.DISPOSITION">Disposition</p>\n <h4>{{ vm.interaction.disposition }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="vm.interaction.closed && vm.interaction.secondDisposition">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.SECOND_LEVEL_DISPOSITION">Second Level Disposition</p>\n <h4>{{ vm.interaction.secondDisposition }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="vm.interaction.closed && vm.interaction.thirdDisposition">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.THIRD_LEVEL_DISPOSITION">Third Level Disposition</p>\n <h4>{{ vm.interaction.thirdDisposition }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-3-line md-long-text" ng-if="vm.interaction.closed && vm.interaction.note">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.NOTE">NOTE</p>\n <h4 style="overflow-wrap: break-word; white-space: normal">{{ vm.interaction.note }}</h4>\n </div>\n </md-list-item>\n </md-list>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="DASHBOARDS.CUSTOMER_JOURNEY">Journey</span>\n </md-tab-label>\n <md-tab-body>\n <md-content class="md-padding">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.html\'">\n </div>\n </md-content>\n </md-tab-body>\n </md-tab>\n</md-tabs>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.all.html",'<md-divider></md-divider>\n<md-list flex>\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.AGENT">Agent</p>\n <h4>{{ vm.agent.fullname || vm.usersMap[item.UserId] || \'DASHBOARDS.NOT_ASSIGNED\' | translate }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.externalUrl">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.EXTERNAL_URL">External URL</p>\n <a href="{{ item.externalUrl }}" target="_blank">\n <h4>{{ item.externalUrl }}</h4>\n </a>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.CREATED_AT">Created At</p>\n <h4>{{ item.createdAt | date: \'medium\' }}</h4>\n </div>\n </md-list-item>\n <div ng-if="item.channel === \'chat\'">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.chat.html\'">\n </div>\n </div>\n <div ng-if="item.channel === \'mail\'">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.mail.html\'">\n </div>\n </div>\n <md-divider ng-if="item.closed"></md-divider>\n <md-list-item class="md-2-line" ng-if="item.closed">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.CLOSED_AT">Closed At</p>\n <h4>{{ item.closedAt | date: \'medium\' }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.closed && item.disposition">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.DISPOSITION">Disposition</p>\n <h4>{{ item.disposition }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.closed && item.secondDisposition">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.SECOND_LEVEL_DISPOSITION">Second Level Disposition</p>\n <h4>{{ item.secondDisposition }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.closed && item.thirdDisposition">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.THIRD_LEVEL_DISPOSITION">Third Level Disposition</p>\n <h4>{{ item.thirdDisposition }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-3-line md-long-text" ng-if="item.closed && item.note">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.NOTE">NOTE</p>\n <h4 style="overflow-wrap: break-word; white-space: normal">{{ item.note }}</h4>\n </div>\n </md-list-item>\n <md-list-item ng-if="item.Tags.length">\n <p class="padding-horizontal-15 grey-fg">Tags</p>\n <div class="tags padding-bottom-5" layout="row" layout-align="start center" layout-wrap>\n <div class="tag margin-right-5 margin-top-5 margin-bottom-5" layout="row" layout-align="center center" ng-repeat="tag in item.Tags">\n <div class="tag-color" ng-style="{\'background\': tag.color}"></div>\n <div class="tag-label">{{ tag.name }}</div>\n </div>\n </div>\n </md-list-item>\n</md-list>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.html",'<div layout-margin layout="row" layout-align="center center">\n <ms-quick-filter filters="vm.quickFilters" query="vm.journeyOptions" search="vm.getCustomerJourney()">\n </ms-quick-filter>\n</div>\n\n<md-content id="journey-content" flex ms-scroll layout-wrap>\n <div ng-if="vm.journeyIsLoading" layout="row" layout-align="center center">\n <md-progress-circular class="md-accent" md-diameter="48" md-mode="indeterminate"></md-progress-circular>\n </div>\n <div id="timeline" layout="column" ng-if="vm.journey && vm.journey.length && !vm.journeyIsLoading" ms-timeline="vm.journeyTimelineOptions" ms-timeline-load-more="vm.loadMoreJourney()">\n \x3c!-- TIMELINE ITEM --\x3e\n <div class="ms-timeline-item" layout-align="center center" ng-repeat="item in vm.journey">\n <div class="timeline-card">\n <md-card class="channel" ng-class="{\'md-grey-200-bg\': item.id == vm.interaction.id}">\n <div layout="row" layout-align="space-between center">\n <div class="header p-6" layout="row" layout-align="start center" ng-cloak>\n <md-button class="md-fab md-mini no-click" aria-label="icon-channel" ng-class="{{ \'item.style.color\' }} + \'-bg\'">\n <md-icon md-font-icon="{{ item.style.icon }}"></md-icon>\n </md-button>\n <div class="info" layout="column" ng-init="item.showMore = false">\n <span class="font-size-12 text-truncate" ng-if="item.destination">\n #{{item.id}} - <span privacy ng-cloak>{{ item.destination }}</span>\n </span>\n <span class="font-size-12 text-truncate" ng-if="!item.destination">\n #{{item.id}} - {{ item.Account.key }}\n </span>\n <span class="font-size-10">{{item.createdAt | date: \'medium\'}}</span>\n <span>\n <a class="toggle-details md-accent-color" ng-click="item.showMore = !item.showMore" translate="{{ item.showMore ? \'DASHBOARDS.HIDE_DETAILS\' : \'DASHBOARDS.SHOW_DETAILS\' }}">\n </a>\n </span>\n </div>\n </div>\n <span>\n <img ng-if="item.UserId" class="avatar" ng-src="api/users/{{item.UserId}}/avatar">\n <md-tooltip md-direction="left">{{item.Owner.fullname || item.User.fullname}}</md-tooltip>\n </span>\n </div>\n <div ng-if="item.showMore">\n <div ng-if="item.channel !== \'voice\'" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.all.html\'">\n </div>\n <div ng-if="item.channel === \'voice\'" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.voice.html\'">\n </div>\n </div>\n <md-divider></md-divider>\n <div ng-if="item.id != vm.interaction.id" layout="row" layout-align="space-around center">\n <div ng-if="item.closed && item.channel !== \'voice\'" class="text-truncate text-boxed-light">\n <span class="red-fg" title="{{ \'DASHBOARDS.STATUS\' | translate}} : {{ \'DASHBOARDS.CLOSED\' | translate }} {{ item.dispositionsValues }}">\n {{ \'DASHBOARDS.STATUS\' | translate}} : {{ \'DASHBOARDS.CLOSED\' | translate}} {{ item.dispositionsValues\n }}\n </span>\n </div>\n <span class="text-boxed md-background-bg green-fg" ng-if="!item.closed && item.channel !== \'voice\'" title="{{ \'DASHBOARDS.STATUS\' | translate}}: {{ \'DASHBOARDS.OPENED\' | translate}}">\n {{ \'DASHBOARDS.STATUS\' | translate}}:\n {{ \'DASHBOARDS.OPENED\' | translate}}\n <span ng-if="item.substatus"> - {{ item.substatus }}</span>\n </span>\n <span ng-if="item.channel === \'voice\'" class="text-boxed md-background-bg red-fg" title="{{ item.userDisposition ? (\'DASHBOARDS.DISPOSITION\' | translate) + \':\' : \'\'}} {{ item.userDisposition ?\n item.userDisposition : (\'DASHBOARDS.NO_DISPOSITION_SET\' | translate) }}">\n {{ item.userDisposition ? (\'DASHBOARDS.DISPOSITION\' | translate) + \':\' : \'\'}} {{ item.userDisposition ?\n item.userDisposition : (\'DASHBOARDS.NO_DISPOSITION_SET\' | translate) }}\n </span>\n <span ng-if="item.channel === \'voice\' && item.userSecondDisposition" class="text-boxed md-background-bg red-fg" title="{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}: {{ item.userSecondDisposition }}">\n {{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:\n {{ item.userSecondDisposition }}\n </span>\n <span ng-if="item.channel === \'voice\' && item.userThirdDisposition" class="text-boxed md-background-bg red-fg" title="{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}: {{ item.userThirdDisposition }}">\n {{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:\n {{ item.userThirdDisposition }}\n </span>\n <div flex></div>\n <md-button ng-if="!vm.tab.spy && vm.user.role === \'agent\' && item.canOpen && item.channel !== \'voice\'" class="md-icon-button" aria-label="go" ng-click="vm.openInteraction(item)">\n <md-icon md-font-icon="icon-open-in-new" class="s20"></md-icon>\n </md-button>\n </div>\n </md-card>\n </div>\n </div>\n\n <div ng-if="vm.canLoadMoreJourney" layout="row" layout-align="center center" class="ng-scope layout-align-center-center layout-row keep-on-top">\n <md-button class="md-raised md-accent md-button ng-scope md-default-theme md-ink-ripple" type="button" ng-click="vm.loadMoreJourney()" translate="DASHBOARDS.MORE">\n </md-button>\n </div>\n </div>\n \x3c!-- / TIMELINE ITEM --\x3e\n</md-content>\n\n<div ng-if="!vm.journey || vm.journey.length === 0" layout="row" layout-align="center center">\n <em translate="DASHBOARDS.NO_DATA_AVAILABLE">No data available</em>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.voice.html",'<md-divider></md-divider>\n\n<md-list flex>\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.TYPE">Type</p>\n <h4>{{ item.type ? item.type : \'no type\' }}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.SOURCE">Source</p>\n <h4 privacy ng-cloak>{{ item.source ? item.source : (\'DASHBOARDS.UNKNOWN\' | translate) }}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.DESTINATION">Destination</p>\n <h4 privacy ng-cloak>{{ item.destination ? item.destination : (\'DASHBOARDS.UNKNOWN\' | translate) }}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.UNIQUEID">Uniqueid</p>\n <h4>{{ item.uniqueid ? item.uniqueid : (\'DASHBOARDS.UNKNOWN\' | translate) }}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.CALLERID">Caller Id</p>\n <h4 privacy ng-cloak>{{ item.callerid ? item.callerid : (\'DASHBOARDS.UNKNOWN\' | translate) }}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.STARTEDAT">Started At</p>\n <h4>{{ item.starttime | date:\'medium\' }}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.END_AT">End At</p>\n <h4>{{ item.endtime | date:\'medium\' }}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.DURATION">Duration</p>\n <h4>{{ item.duration ? item.duration : \'--\' }}s</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.NOTE">Note</p>\n <h4>{{ item.note ? item.note : \'--\' }}</h4>\n </div>\n </md-list-item>\n</md-list>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.mail.html",'<div ng-init="item = item || vm.interaction">\n <md-list-item class="md-2-line" ng-if="item.subject">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.SUBJECT">Subject</p>\n <h4>{{ item.subject }}</h4>\n </div>\n </md-list-item>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.openchannel.html",'<div ng-init="item = item || vm.interaction">\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.VISIBILITY">Visibility</p>\n <h4 translate="{{ item.threadId ? \'DASHBOARDS.PUBLIC\' : \'DASHBOARDS.PRIVATE\'}}"></h4>\n </div>\n </md-list-item>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.interaction.html",'\x3c!-- MESSAGES --\x3e\n<div layout="row" ng-repeat="message in vm.messages.rows" class="md-padding message-row" ng-class="vm.getMessagesAlignment(message)">\n <img ng-if="message.direction ===\'in\'" src="assets/images/avatars/customer.png" class="avatar" />\n <img ng-if="message.direction ===\'out\' && message.UserId && !message.secret" ng-src="api/users/{{message.UserId}}/avatar" class="avatar" />\n <img ng-if="message.direction ===\'out\' && message.UserId && message.secret" ng-src="api/users/{{message.UserId}}/avatar" class="avatar" />\n <img ng-if="message.direction ===\'out\' && !message.UserId" class="avatar" src="assets/images/avatars/robot.png">\n <md-button ng-if="vm.tab.channel === \'fax\'" class="md-fab md-mini no-margin" aria-label="Download" ng-click="vm.downloadMessage(message)">\n <md-icon md-font-icon="icon-download" class="icon s24"></md-icon>\n </md-button>\n\n <div class="bubble" ng-class="{\'md-yellow-200-bg\': message.secret}" ng-switch="message.direction">\n <div ng-if="message.secret">\n <div class="time secondary-text" layout="row" layout-align="end center">\n <div layout-padding>\n <span privacy ng-cloak>{{ vm.getLabelByMessage(message) }}</span>\n <span> - {{message.createdAt | date: \'medium\'}}</span>\n </div>\n <div ng-if="message.id">\n <md-icon class="s18" md-font-icon="icon-lock"></md-icon>\n </div>\n </div>\n </div>\n <div ng-if="!message.secret">\n <div ng-switch-when="in" class="time secondary-text" ng-click="message.Contact && vm.openContact(ev, message.Contact)">\n <span privacy ng-cloak>{{ vm.getLabelByMessage(message) }}</span>\n <span> - {{message.createdAt | date: \'medium\'}}</span>\n </div>\n <div ng-switch-when="out" class="time secondary-text" layout="row" layout-align="end center">\n <div layout-padding>\n <span privacy ng-cloak>{{ vm.getLabelByMessage(message) }}</span>\n <span> - {{message.createdAt | date: \'medium\'}}</span>\n </div>\n <div ng-if="message.id && vm.tab.channel !== \'fax\'">\n <md-icon ng-if="!message.read" class="s18" md-font-icon="icon-check"></md-icon>\n <md-icon ng-if="message.read" class="s18" md-font-icon="icon-check-all md-accent"></md-icon>\n </div>\n <div ng-if="message.id && vm.tab.channel === \'fax\'">\n <md-icon ng-if="!message.read && !(message.failMessage )" class="s18" md-font-icon="icon-check"></md-icon>\n <md-icon ng-if="message.read" class="s18" md-font-icon="icon-check-all md-accent"></md-icon>\n <span ng-if="!message.read && message.failMessage" class="s18 red-900-fg"> {{ message.failMessage }}</span>\n <md-icon ng-if="!message.read && message.failMessage" class="s18 red-900-fg" md-font-icon="icon-close md-accent"></md-icon>\n </div>\n </div>\n </div>\n <div ng-if="message.AttachmentId" layout="row" layout-align="end center">\n <md-button ng-if="vm.downloadPermissions.attachments" class="md-raised md-accent" ng-click="vm.getAttachment({id: message.AttachmentId, name: vm.htmlToPlaintext(message.body)})">\n <span>{{vm.htmlToPlaintext(message.body)}}</span>\n <md-icon md-font-icon="icon-download"></md-icon>\n </md-button>\n <div ng-if="!vm.downloadPermissions.attachments" class="disabled-button">\n <span>{{vm.htmlToPlaintext(message.body)}}</span>\n <md-icon md-font-icon="icon-download"></md-icon>\n </div>\n </div>\n <div ng-if="!message.AttachmentId" class="message" layout="row" layout-align="end center">\n <span ng-bind-html="message.body | embed: vm.embedOptions"></span>\n </div>\n </div>\n</div>\n\x3c!-- / MESSAGES --\x3e'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.interaction.mail.html",'<div ms-timeline="vm.interactionTimelineOptions" ms-timeline-load-more="vm.loadNextPage()">\n <div ng-repeat="message in vm.messages.rows track by message.id" ng-init="vm.selectedMailShowSystemMessage[message.id] = false">\n <md-card ng-if="message.secret" class="md-padding md-yellow-100-bg" layout="column">\n <div layout="row" layout-align="start center">\n <img class="avatar" ng-src="api/users/{{message.UserId}}/avatar">\n <div layout="column">\n <span class="grey-fg">{{vm.agent.fullname || vm.usersMap[message.UserId]}}</span>\n <span class="grey-fg">{{message.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n <div layout="row" layout-align="center center" layout-fill ng-if="message.attach && vm.downloadPermissions.attachments">\n <div flex>\n <md-divider></md-divider>\n </div>\n <md-menu>\n <md-button aria-label="attachments" class="md-icon-button" ng-click="vm.getAttachments(message); $mdOpenMenu($event);">\n <md-tooltip md-direction="bottom"><span translate="MAIL.ATTACHMENTS">Attachments</span>\n </md-tooltip>\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="icon s24"></md-icon>\n <span>{{message.attach}}</span>\n </div>\n </md-button>\n <md-menu-content width="4">\n <div layout="column" layout-align="center center" ng-if="!message.attachments">\n <md-progress-circular md-mode="indeterminate"></md-progress-circular>\n <span translate="MAIL.ATTACHMENTS">Attachments</span>\n </div>\n <md-menu-item ng-if="message.attachments" ng-repeat="attachment in message.attachments">\n <md-button ng-click="vm.getAttachment(attachment)">\n {{ attachment.name || (\'attachment-\' + $index) }}</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n <div flex>\n <md-divider></md-divider>\n </div>\n </div>\n <div class="padding-top-5" ng-bind-html-unsafe="message.body"></div>\n </md-card>\n <div ng-if="!message.secret">\n <div layout="row" layout-align="center center" ng-if="message.direction == \'out\' && !message.UserId && !vm.selectedMailShowSystemMessage[message.id]">\n <md-button class="md-raised blue-grey-300-bg white-fg" ng-click="vm.selectedMailShowSystemMessage[message.id] = !vm.selectedMailShowSystemMessage[message.id]">\n [{{message.createdAt | date: \'medium\'}}] {{ \'MAIL.SHOW_AUTOREPLY\' | translate }}</md-button>\n </div>\n <md-card layout="column" class="md-padding message-row" ng-if="message.direction == \'in\' || (message.direction == \'out\' && (message.UserId || vm.selectedMailShowSystemMessage[message.id]))">\n <md-content class="mail-content">\n <div class="info" layout="row" layout-align="space-between start">\n <div layout="column" layout-align="start start">\n <div layout="row" layout-align="start start">\n <div layout="column" layout-align="start start">\n <div class="name" ng-click="message.Contact && vm.openContact(ev, message.Contact)">\n <strong privacy ng-cloak>{{message.from}}</strong>\n <md-icon ng-if="message.attach" md-font-icon="icon-paperclip" class="s16">\n </md-icon>\n </div>\n <div class="name">\n <div>{{message.subject}}</div>\n </div>\n <div class="name" layout="row" layout-align="start center"><span translate="MAIL.TO">To</span>: <span class="padding-left-5 subject text-truncate" privacy ng-cloak>{{ message.originTo || message.to\n }}</span>\n </div>\n <div class="name padding-top-10" layout="row" layout-align="start center" ng-if="message.direction == \'in\' && message.originCc && message.originCc.indexOf(vm.account.email) >= 0">\n <em><span class="blue-grey" translate="MAIL.YOU_ARE_REGISTERED_AS_A">You are\n registered as a</span> <span class="blue-grey">CC</span></em>\n </div>\n <div class="name padding-top-10" layout="row" layout-align="start center" ng-if="message.direction == \'in\' && message.bcc && message.bcc.indexOf(vm.account.email) >= 0">\n <em><span class="red-fg" translate="MAIL.YOU_ARE_REGISTERED_AS_A">You are\n registered as a</span> <span class="red-fg">BCC</span></em>\n </div>\n </div>\n </div>\n\n <a class="toggle-details md-accent-color" ng-hide="vm.selectedMailShowDetails[message.id]" ng-click="vm.selectedMailShowDetails[message.id] = !vm.selectedMailShowDetails[message.id]" translate="MAIL.SHOW_DETAILS">\n Show Details\n </a>\n <a class="toggle-details md-accent-color" ng-show="vm.selectedMailShowDetails[message.id]" ng-click="vm.selectedMailShowDetails[message.id] = !vm.selectedMailShowDetails[message.id]" translate="MAIL.HIDE_DETAILS">\n Hide Details\n </a>\n <div ng-show="vm.selectedMailShowDetails[message.id]" class="details" layout="row" layout-align="start start">\n <div layout="column">\n <span class="title" translate="MAIL.DATE">Date:</span>\n <span class="title" translate="MAIL.FROM">From:</span>\n <span class="title" translate="MAIL.TO">To:</span>\n \x3c!-- NOTE: Start retrocompatibility with replyCc 2.0.66 --\x3e\n <span class="title" translate="MAIL.CC" ng-if="message.direction === \'in\' && message.originCc">Cc:</span>\n <span class="title" translate="MAIL.CC" ng-if="message.direction === \'in\' && !message.originCc && !message.originTo && message.cc">Cc:</span>\n <span class="title" translate="MAIL.CC" ng-if="message.direction === \'out\' && message.cc">Cc:</span>\n \x3c!-- End retrocompatibility --\x3e\n <span class="title" translate="MAIL.BCC" ng-if="message.bcc">Bcc:</span>\n <span class="title" translate="MAIL.ACCEPTED" ng-if="message.UserId && message.direction ===\'in\'">Accepted:</span>\n </div>\n\n <div layout="column">\n <span class="detail">{{message.createdAt | date:\'medium\'}}</span>\n <span class="detail" privacy ng-cloak>{{message.from}}</span>\n <span class="detail" privacy ng-cloak>{{message.originTo || message.to}}</span>\n \x3c!-- NOTE: Start retrocompatibility with replyCc 2.0.66 --\x3e\n <span class="detail" ng-if="message.direction === \'in\' && message.originCc" privacy ng-cloak>{{\n message.originCc }}</span>\n <span class="detail" ng-if="message.direction === \'in\' && !message.originCc && !message.originTo && message.cc" privacy ng-cloak>{{ message.cc }}</span>\n <span class="detail" ng-if="message.direction === \'out\' && message.cc" privacy ng-cloak>{{ message.cc\n }}</span>\n \x3c!-- End retrocompatibility --\x3e\n <span class="detail" ng-if="message.bcc" privacy ng-cloak>{{message.bcc}}</span>\n <span class="detail" ng-if="message.UserId && message.direction ===\'in\'">{{vm.usersMap[message.UserId]}}</span>\n </div>\n </div>\n </div>\n\n <div layout="row" layout-align="center center">\n <div layout="column" layout-align="center end" class="md-padding">\n <span class="grey-fg" ng-if="message.direction ===\'in\'" privacy>{{message.from.indexOf(vm.contact.email)\n >= 0 ? vm.contact.firstName + \' \' + vm.contact.lastName : \'*\' + message.from}}</span>\n <span class="grey-fg" ng-if="message.direction ===\'out\' && message.UserId">{{vm.agent.fullname ||\n vm.usersMap[message.UserId]}}</span>\n <span class="grey-fg" ng-if="message.direction ===\'out\' && !message.UserId">System</span>\n <span class="grey-fg">{{message.createdAt | date:\'medium\'}}</span>\n </div>\n <img ng-if="message.direction ===\'in\'" ng-src="assets/images/avatars/customer.png" class="avatar" alt="customer" />\n <img ng-if="message.direction ===\'out\' && message.UserId" class="avatar" ng-src="api/users/{{message.UserId}}/avatar">\n <img ng-if="message.direction ===\'out\' && !message.UserId" class="avatar" src="assets/images/avatars/robot.png">\n </div>\n </div>\n\n <div layout="row" layout-align="center center" layout-fill>\n <div flex>\n <md-divider></md-divider>\n </div>\n <div>\n <div class="interaction-reply-button-container">\n <md-tooltip md-direction="bottom"><span translate="DASHBOARDS.DRAFT">Draft</span>\n </md-tooltip>\n <md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="draft" ng-disabled="!vm.draft" ng-click="vm.openDraft(message.id)">\n <md-icon md-font-icon="icon-pencil-box" class="icon s24"></md-icon>\n </md-button>\n </div>\n <md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="reply" ng-click="vm.composeMailInteraction(\'reply\', message)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.REPLY">Reply</span></md-tooltip>\n <md-icon md-font-icon="icon-reply" class="icon s24"></md-icon>\n </md-button>\n <md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="replyAll" ng-click="vm.composeMailInteraction(\'replyAll\', message)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.REPLY_ALL">Reply All</span>\n </md-tooltip>\n <md-icon md-font-icon="icon-reply-all" class="icon s24"></md-icon>\n </md-button>\n <md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="forward" ng-click="vm.composeMailInteraction(\'forward\', message)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.FORWARD">Forward</span>\n </md-tooltip>\n <md-icon md-font-icon="icon-forward" class="icon s24"></md-icon>\n </md-button>\n <md-button ng-if="!message.attach && vm.downloadPermissions.interactions" class="md-icon-button" aria-label="forward" ng-click="vm.downloadMessage(message)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.DOWNLOAD">Download</span>\n </md-tooltip>\n <md-icon md-font-icon="icon-download" class="icon s24"></md-icon>\n </md-button>\n <md-menu ng-if="message.attach && vm.downloadPermissions.interactions" class="no-margin" md-position-mode="target-right target">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu()" aria-label="download">\n <md-tooltip md-direction="bottom"><span translate="MAIL.DOWNLOAD">Download</span>\n </md-tooltip>\n <md-icon md-font-icon="icon-download"></md-icon>\n </md-button>\n <md-menu-content width="2">\n <md-menu-item ng-if="vm.downloadPermissions.attachments">\n <md-button ng-click="vm.downloadMessage(message, true)" translate="MAIL.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.downloadMessage(message)" translate="MAIL.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n <md-menu ng-if="message.attach && vm.downloadPermissions.attachments">\n <md-button aria-label="attachments" class="md-icon-button" ng-click="vm.getAttachments(message); $mdOpenMenu($event);">\n <md-tooltip md-direction="bottom"><span translate="MAIL.ATTACHMENTS">Attachments</span></md-tooltip>\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="icon s24"></md-icon>\n <span>{{message.attach}}</span>\n </div>\n </md-button>\n <md-menu-content width="4">\n <div layout="column" layout-align="center center" ng-if="!message.attachments">\n <md-progress-circular md-mode="indeterminate"></md-progress-circular>\n <span translate="MAIL.ATTACHMENTS">Attachments</span>\n </div>\n <md-menu-item ng-if="message.attachments" ng-repeat="attachment in message.attachments">\n <md-button ng-click="vm.getAttachment(attachment)">\n {{ attachment.name || (\'attachment-\' + $index) }}</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n <div flex>\n <md-divider></md-divider>\n </div>\n </div>\n\n <md-content ng-bind-html-unsafe="message.body"></md-content>\n </md-content>\n </md-card>\n </div>\n <div ng-hide="!(vm.BTNLoadMore > 0)" layout="row" layout-align="center center" class="ng-scope layout-align-center-center layout-row">\n <md-button class="md-raised md-accent md-button ng-scope md-default-theme md-ink-ripple" type="button" ng-disabled="!(vm.BTNLoadMore > 0)" ng-click="vm.loadNextPage()" translate="DASHBOARDS.MORE">\n </md-button>\n </div>\n </div>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.loading.html",'<div class="big-circle md-whiteframe-4dp">\n <md-icon class="s128 md-accent" md-font-icon="{{vm.getIconByChannel(vm.tab.channel)}}" ng-class="vm.getColorByChannel(vm.tab.channel) + \'-fg\'"></md-icon>\n</div>\n<span class="app-title" translate="DASHBOARDS.WAITING">Waiting</span>\n<span class="hide show-gt-md secondary-text" translate="DASHBOARDS.LOADING_INTERACTION">We are loading the\n interaction...</span>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.chat.html",'<md-button class="md-icon-button" aria-label="note" ng-click="vm.composeChatInteraction(\'note\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="CHAT.NOTE">Note</span></md-tooltip>\n <md-icon md-font-icon="icon-note-outline" class="icon s24"></md-icon>\n</md-button>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.fax.html",'<md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="reply" ng-click="vm.composeFaxInteraction(\'new\')">\n <md-tooltip md-direction="bottom"><span translate="FAX.REPLY">Reply</span></md-tooltip>\n <md-icon md-font-icon="icon-reply" class="icon s24"></md-icon>\n</md-button>\n<md-button class="md-icon-button" aria-label="Download" ng-click="vm.downloadInteraction(vm.interaction)" ng-if="vm.downloadPermissions.interactions">\n <md-tooltip md-direction="bottom"><span translate="DASHBOARDS.DOWNLOAD">Download</span></md-tooltip>\n <md-icon md-font-icon="icon-download" class="icon s24"></md-icon>\n</md-button>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.html",'<div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <md-icon md-font-icon="{{vm.getIconByChannel(vm.tab.channel)}}" class="s20" ng-class="vm.getColorByChannel(vm.tab.channel) + \'-fg\'"></md-icon>\n <div class="padding-left-10" layout="column" layout-align="center start" flex>\n <div class="font-size-14" layout="row" layout-align="start center" layout-fill>\n <span>#{{vm.interaction.id}} - {{vm.account.key}}</span>\n <div layout="row" layout-align="center center" class="p-8">\n <md-icon ng-if="vm.tab.channel === \'openchannel\' && vm.interaction.threadId" md-font-icon="fas fa-users" class="s16">\n <md-tooltip><span translate="DASHBOARDS.PUBLIC_INTERACTION">The interaction is public</span></md-tooltip>\n </md-icon>\n <md-icon ng-if="vm.interaction.attach" md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n <span class="red-fg padding-left-25" ng-if="vm.interaction.closed" translate="DASHBOARDS.CLOSED">CLOSED</span>\n <span class="green-fg padding-left-25" ng-if="!vm.interaction.closed"><span translate="DASHBOARDS.OPENED">OPENED</span><span ng-if="vm.interaction.substatus"> -\n {{vm.interaction.substatus}}</span></span>\n <div layout="row" layout-align="center center" class="blue-grey-300-fg padding-left-40" ng-if="!vm.interaction.closed">\n <timer start-time="vm.interaction.createdAt"></timer>\n <md-icon md-font-icon="icon-timelapse" class="s16 padding-left-5"></md-icon>\n </div>\n </div>\n <div class="tags" layout="row" layout-align="start center" ng-if="vm.interaction.Tags.length" ng-class="{\'padding-top-5\': vm.interaction.Tags.length}">\n <div class="tag margin-right-5" layout="row" layout-align="center center" ng-repeat="tag in vm.interaction.Tags">\n <div class="tag-color" ng-style="{\'background\': tag.color}"></div>\n <div class="tag-label">{{tag.name}}</div>\n </div>\n </div>\n </div>\n <div layout="row" layout-align="end center">\n <div ng-switch="vm.tab.channel">\n <div ng-switch-when="mail">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.mail.html\'">\n </div>\n </div>\n <div ng-switch-when="fax">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.fax.html\'">\n </div>\n </div>\n <div ng-switch-when="sms">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.sms.html\'">\n </div>\n </div>\n <div ng-switch-when="whatsapp">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.whatsapp.html\'">\n </div>\n </div>\n <div ng-switch-when="chat">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.chat.html\'">\n </div>\n </div>\n <div ng-switch-when="openchannel">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.openchannel.html\'">\n </div>\n </div>\n </div>\n <md-menu ng-if="[\'fax\', \'sms\', \'whatsapp\'].indexOf(vm.tab.channel) < 0 && vm.downloadPermissions.interactions" class="no-margin" md-position-mode="target-right target">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu()" aria-label="download">\n <md-tooltip md-direction="bottom"><span translate="DASHBOARDS.DOWNLOAD">Download</span></md-tooltip>\n <md-icon md-font-icon="icon-download"></md-icon>\n </md-button>\n <md-menu-content width="2">\n <md-menu-item ng-if="vm.downloadPermissions.attachments">\n <md-button ng-click="vm.downloadInteraction(vm.interaction, true)" translate="DASHBOARDS.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.downloadInteraction(vm.interaction)" translate="DASHBOARDS.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n <md-menu class="no-margin" ng-if="!vm.interaction.disposition" md-position-mode="target-right target">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="2">\n\n <md-menu-item ng-if="vm.tab.channel === \'chat\' && !vm.interaction.closed && !vm.tab.spy && vm.account.vidaooEscalation && vm.account.vidaooApiKey">\n <md-button ng-click="vm.createVidaooSession(vm.interaction)" translate="DASHBOARDS.VIDAOOSESSION">\n Start Video Call\n </md-button>\n </md-menu-item>\n\n <md-menu-item>\n <md-button ng-click="vm.tagInteraction()" translate="DASHBOARDS.TAG">\n Tag\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.account.queueTransfer || vm.account.agentTransfer">\n <md-button ng-click="vm.transferLastMessage()" translate="DASHBOARDS.TRANSFER">\n Transfer\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.interaction.closed && vm.tab.channel == \'mail\' && (vm.subStatuses.rows.length || vm.interaction.substatus != null)">\n <md-menu>\n <md-button ng-click="$mdMenu.open()" class="text-capitalize" translate="DASHBOARDS.SET_AS">\n Set as\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if="vm.interaction.substatus != null">\n <md-button ng-click="vm.setAs(null)" translate="DASHBOARDS.NONE">\n None\n </md-button>\n </md-menu-item>\n <md-menu-item ng-repeat="subStatus in vm.subStatuses.rows">\n <md-button ng-click="vm.setAs(subStatus.name)">\n {{subStatus.name}}\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item ng-if="!vm.interaction.closed && vm.tab.channel == \'mail\' && vm.account.markAsUnread">\n <md-button ng-click="vm.markAsUnread()" translate="DASHBOARDS.MARK_AS_UNREAD">\n Unread\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.tab.spy && !vm.interaction.closed">\n <md-button ng-click="vm.disposeInteraction()" translate="DASHBOARDS.CLOSE_AND_DISPOSE">\n Close and Dispose\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.tab.spy && vm.interaction.closed && !vm.interaction.disposition">\n <md-button ng-click="vm.disposeInteraction(ev)" translate="DASHBOARDS.DISPOSE">\n Dispose\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.mail.html",'<div class="interaction-reply-button-container">\n <md-tooltip md-direction="bottom"><span translate="DASHBOARDS.DRAFT">Draft</span></md-tooltip>\n <md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="draft" ng-disabled="!vm.draft" ng-click="vm.openDraft()">\n <md-icon ng-cloak md-font-icon="icon-pencil-box" class="icon s24" ng-class="vm.draft ? \'red-500-fg\' : \'grey-fg\'"></md-icon>\n </md-button>\n</div>\n<md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="reply" ng-click="vm.composeMailInteraction(\'reply\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.REPLY">Reply</span></md-tooltip>\n <md-icon md-font-icon="icon-reply" class="icon s24"></md-icon>\n</md-button>\n<md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="replyAll" ng-click="vm.composeMailInteraction(\'replyAll\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.REPLY_ALL">Reply All</span></md-tooltip>\n <md-icon md-font-icon="icon-reply-all" class="icon s24"></md-icon>\n</md-button>\n<md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="forward" ng-click="vm.composeMailInteraction(\'forward\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.FORWARD">Forward</span></md-tooltip>\n <md-icon md-font-icon="icon-forward" class="icon s24"></md-icon>\n</md-button>\n<md-button class="md-icon-button" aria-label="note" ng-click="vm.composeMailInteraction(\'note\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.NOTE">Note</span></md-tooltip>\n <md-icon md-font-icon="icon-note-outline" class="icon s24"></md-icon>\n</md-button>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.openchannel.html",'<md-button class="md-icon-button" aria-label="note" ng-click="vm.composeOpenchannelInteraction(\'note\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="OPENCHANNEL.NOTE">Note</span></md-tooltip>\n <md-icon md-font-icon="icon-note-outline" class="icon s24"></md-icon>\n</md-button>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.sms.html",'<md-button class="md-icon-button" aria-label="note" ng-click="vm.composeSmsInteraction(\'note\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="SMS.NOTE">Note</span></md-tooltip>\n <md-icon md-font-icon="icon-note-outline" class="icon s24"></md-icon>\n</md-button>\n<md-button class="md-icon-button" aria-label="Download" ng-click="vm.downloadInteraction(vm.interaction)" ng-if="vm.downloadPermissions.interactions">\n <md-tooltip md-direction="bottom"><span translate="DASHBOARDS.DOWNLOAD">Download</span></md-tooltip>\n <md-icon md-font-icon="icon-download" class="icon s24"></md-icon>\n</md-button>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.whatsapp.html",'<md-button class="md-icon-button" aria-label="note" ng-click="vm.composeWhatsappInteraction(\'note\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="WHATSAPP.NOTE">Note</span></md-tooltip>\n <md-icon md-font-icon="icon-note-outline" class="icon s24"></md-icon>\n</md-button>\n<md-button class="md-icon-button" aria-label="Download" ng-click="vm.downloadInteraction(vm.interaction)" ng-if="vm.downloadPermissions.interactions">\n <md-tooltip md-direction="bottom"><span translate="DASHBOARDS.DOWNLOAD">Download</span></md-tooltip>\n <md-icon md-font-icon="icon-download" class="icon s24"></md-icon>\n</md-button>'),e.put("app/main/apps/dashboards/views/general/agent/jscripty/agent.general.jscripty.html",'<md-content class="md-padding" layout="column" layout-align="center center">\n <div layout="row" layout-align="center center">\n <span ng-if="!vm.tab.saved" class="text-boxed md-green-bg">\n <timer start-time="vm.starttime"></timer>\n </span>\n <span ng-if="vm.contact" class="text-boxed md-gray-bg font-weight-900">{{vm.contact.firstName}} {{vm.contact.lastName}} {{vm.contact.phone}}</span>\n <md-button ng-if="vm.showResetButton" ng-click="vm.resetViewer()" md-no-ink class="md-raised md-accent orange-bg">\n <md-icon md-font-icon="icon-rotate-left" class="icon s16"></md-icon> {{\'JSCRIPTY.RESET_SESSION\' | translate}}\n </md-button>\n <md-button ng-if="vm.contact" ng-click="vm.openContact($event, vm.contact)" md-no-ink class="md-raised md-accent" translate="JSCRIPTY.OPEN_CONTACT"></md-button>\n <md-button ng-if="vm.showIncompleteSubmitButton" ng-click="vm.onSubmit($event, true)" md-no-ink class="md-raised md-accent green-bg" translate="JSCRIPTY.SUBMIT"></md-button>\n </div>\n <h1 ng-if="!vm.project.formData"><span translate="JSCRIPTY.PROJECT_NOT_AVAILABLE">Project is not available. Please contact the administrator</span></h1>\n <mw-form-viewer ng-if="vm.project.formData" form-data="vm.project.formData" response-data="vm.project.responseData" on-submit="vm.onSubmit($event)" template-data="call" api="vm.formViewer"></mw-form-viewer>\n</md-content>'),e.put("app/main/apps/dashboards/views/general/agent/notification/dialog.html",'\x3c!-- <md-toast> --\x3e\n<div class="md-padding" layout="column" layout-align="center center">\n <span class="md-title">#{{vm.notification.id}} {{vm.notification.title}}</span>\n <span class="md-subhead" ng-if="vm.notification.queue">{{vm.notification.queue}}</span>\n <div class="padding-top-5" layout="row">\n <md-button class="md-raised md-accent" ng-click="vm.accept($event)" translate="DASHBOARDS.ACCEPT">\n ACCEPT\n </md-button>\n <md-button class="md-raised md-warn" ng-click="vm.reject($event)" translate="DASHBOARDS.REJECT">\n REJECT\n </md-button>\n </div>\n</div>\n\x3c!-- </md-toast> --\x3e'),e.put("app/main/apps/dashboards/views/general/agent/popup/agent.general.popup.html",'<md-content class="md-padding" flex>\n <div ng-if="vm.html" ng-bind-html="vm.html"></div>\n <h1 ng-if="!vm.html">Template is empty. Please contact the administrator</h1>\n</md-content>'),e.put("app/main/apps/dashboards/views/general/user/chat/user.general.chat.html",'\x3c!-- WIDGET INBOUND --\x3e\n<div class="dashboard-container md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-hangouts" class="m-0 mr-16"></md-icon>\n <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_INTERACTIONS_STATS">Today Interactions STATS</div>\n </div>\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-52 line-height-72">\n {{vm.inbound.waiting || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.WAITING\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.WAITING_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.WAITING\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="orange-fg font-size-52 line-height-72">\n {{vm.inbound.talking || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.OPENED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.OPENED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.OPENED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-52 line-height-72">\n {{vm.inbound.answered || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.MANAGED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.MANAGED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.MANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-grey-fg font-size-52 line-height-72">\n {{vm.inbound.abandoned || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.ABANDONED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.ABANDONED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.ABANDONED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.total || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.TOTAL_OFFERED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.TOTAL_OFFERED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.TOTAL_OFFERED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-42 line-height-72">\n {{ vm.inbound.avgHoldTime || \'00:00:00\' }}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.AVG_HOLD_TIME\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.AVG_HOLD_TIME_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.AVG_HOLD_TIME\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="orange-fg font-size-42 line-height-72">\n {{ vm.inbound.avgTalkTime || \'00:00:00\' }}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.AVG_MANAGED_TIME\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.AVG_MANAGED_TIME_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.AVG_MANAGED_TIME\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-42 line-height-72">\n {{ vm.inbound.answerRate || 0 }}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.MANAGED_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.MANAGED_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.MANAGED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-grey-fg font-size-42 line-height-72">\n {{ vm.inbound.abandonRate || 0 }}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.ABANDONED_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.ABANDONED_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.ABANDONED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.unmanaged || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.UNMANAGED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.UNMANAGED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.UNMANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET INBOUND --\x3e'),e.put("app/main/apps/dashboards/views/general/user/dialer/user.general.dialer.html",'\x3c!-- WIDGET INBOUND --\x3e\n<div class="dashboard-container md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-phone-outgoing" class="m-0 mr-16"></md-icon>\n <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_MOTION_BULL_STATS">Today Motion Bull STATS</div>\n </div>\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-timelapse"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-52 line-height-72">\n {{vm.inbound.waiting || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_WAITING\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_WAITING_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.VOICE_WAITING\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-phone-in-talk"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="orange-fg font-size-52 line-height-72">\n {{(vm.inbound.talking || 0) + (vm.inbound.pTalking || 0)}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_TALKING\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_TALKING_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.VOICE_TALKING\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-phone"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-52 line-height-72">\n {{vm.inbound.answered || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_ANSWERED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_ANSWERED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.VOICE_ANSWERED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-phone-missed"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-grey-fg font-size-52 line-height-72">\n {{vm.inbound.outboundDropCallsDayCallersExit || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_ABANDONED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_ABANDONED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.ABANDON_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-phone-outgoing"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.outboundDropCallsDayTimeout || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.DROPPED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.DROPPED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.DROPPED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-phone-dots"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.originated || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.ORIGINATED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.ORIGINATED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.ORIGINATED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-phone-in-talk"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="orange-fg font-size-42 line-height-72">\n {{ vm.inbound.avgTalkTime || \'00:00:00\' }}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_AVG_TALK_TIME\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_AVG_TALK_TIME_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.VOICE_AVG_TALK_TIME\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-percent"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-42 line-height-72">\n {{ vm.inbound.outboundanswerRate || 0 |number : 1}}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_ANSWER_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_ANSWER_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.VOICE_ANSWER_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-percent"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-grey-fg font-size-42 line-height-72">\n {{ vm.inbound.outboundAbandonRate || 0}}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_ABANDON_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_ABANDON_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.VOICE_ABANDON_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-percent"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-grey-fg font-size-42 line-height-72">\n {{ vm.inbound.outboundDropRate }}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.DROP_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.DROP_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.DROP_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET OUTBOUND --\x3e\n\n\x3c!-- WIDGET INBOUND --\x3e\n<div class="dashboard-container md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-phone-outgoing" class="m-0 mr-16"></md-icon>\n <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_IVR_CAMPAIGNS_STATS">Today IVR campaigns stats</div>\n </div>\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-phone-dots"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.ivr.originated || 0}}/{{vm.ivr.limitCalls || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.ORIGINATED\' | translate | uppercase}}/{{\'DASHBOARDS.LIMITED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.LIMITED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.ORIGINATEDLIMITED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET IVR --\x3e'),e.put("app/main/apps/dashboards/views/general/user/fax/user.general.fax.html",'\x3c!-- WIDGET INBOUND --\x3e\n<div class="dashboard-container md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-deskphone" class="m-0 mr-16"></md-icon>\n <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_INTERACTIONS_STATS">Today Interactions STATS</div>\n </div>\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-52 line-height-72">\n {{vm.inbound.waiting || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.WAITING\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.WAITING_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.WAITING\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="orange-fg font-size-52 line-height-72">\n {{vm.inbound.talking || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.OPENED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.OPENED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.OPENED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-52 line-height-72">\n {{vm.inbound.answered || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.MANAGED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.MANAGED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.MANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.unmanaged || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.UNMANAGED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.UNMANAGED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.UNMANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.total || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.TOTAL_OFFERED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.TOTAL_OFFERED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.TOTAL_OFFERED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="50">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-42 line-height-72">\n {{ vm.inbound.avgHoldTime || \'00:00:00\' }}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.AVG_HOLD_TIME\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.AVG_HOLD_TIME_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.AVG_HOLD_TIME\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-42 line-height-72">\n {{ vm.inbound.answerRate || 0 }}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.MANAGED_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.MANAGED_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.MANAGED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-grey-fg font-size-42 line-height-72">\n {{ vm.inbound.abandonRate || 0 }}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.UNMANAGED_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.UNMANAGED_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.UNMANAGED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET INBOUND --\x3e'),e.put("app/main/apps/dashboards/views/general/user/mail/user.general.mail.html",'\x3c!-- WIDGET INBOUND --\x3e\n<div class="dashboard-container md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-email" class="m-0 mr-16"></md-icon>\n <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_INTERACTIONS_STATS">Today Interactions STATS</div>\n </div>\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-52 line-height-72">\n {{vm.inbound.waiting || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.WAITING\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.WAITING_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.WAITING\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="orange-fg font-size-52 line-height-72">\n {{vm.inbound.talking || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.OPENED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.OPENED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.OPENED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-52 line-height-72">\n {{vm.inbound.answered || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.MANAGED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.MANAGED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.MANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.unmanaged || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.UNMANAGED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.UNMANAGED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.UNMANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.total || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.TOTAL_OFFERED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.TOTAL_OFFERED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.TOTAL_OFFERED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="50">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-42 line-height-72">\n {{ vm.inbound.avgHoldTime || \'00:00:00\' }}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.AVG_HOLD_TIME\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.AVG_HOLD_TIME_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.AVG_HOLD_TIME\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-42 line-height-72">\n {{ vm.inbound.answerRate || 0 }}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.MANAGED_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.MANAGED_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.MANAGED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-grey-fg font-size-42 line-height-72">\n {{ vm.inbound.abandonRate || 0 }}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.UNMANAGED_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.UNMANAGED_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.UNMANAGED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET INBOUND --\x3e'),e.put("app/main/apps/dashboards/views/general/user/openchannel/user.general.openchannel.html",'\x3c!-- WIDGET INBOUND --\x3e\n<div class="dashboard-container md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-google-earth" class="m-0 mr-16"></md-icon>\n <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_INTERACTIONS_STATS">Today Interactions STATS</div>\n </div>\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-52 line-height-72">\n {{vm.inbound.waiting || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.WAITING\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.WAITING_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.WAITING\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="orange-fg font-size-52 line-height-72">\n {{vm.inbound.talking || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.OPENED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.OPENED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.OPENED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-52 line-height-72">\n {{vm.inbound.answered || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.MANAGED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.MANAGED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.MANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.unmanaged || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.UNMANAGED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.UNMANAGED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.UNMANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.total || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.TOTAL_OFFERED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.TOTAL_OFFERED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.TOTAL_OFFERED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="50">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-42 line-height-72">\n {{ vm.inbound.avgHoldTime || \'00:00:00\' }}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.AVG_HOLD_TIME\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.AVG_HOLD_TIME_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.AVG_HOLD_TIME\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-42 line-height-72">\n {{ vm.inbound.answerRate || 0 }}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.MANAGED_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.MANAGED_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.MANAGED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-grey-fg font-size-42 line-height-72">\n {{ vm.inbound.abandonRate || 0 }}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.UNMANAGED_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.UNMANAGED_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.UNMANAGED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET INBOUND --\x3e'),e.put("app/main/apps/dashboards/views/general/user/sms/user.general.sms.html",'\x3c!-- WIDGET INBOUND --\x3e\n<div class="dashboard-container md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-message-text" class="m-0 mr-16"></md-icon>\n <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_INTERACTIONS_STATS">Today Interactions STATS</div>\n </div>\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-52 line-height-72">\n {{vm.inbound.waiting || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.WAITING\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.WAITING_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.WAITING\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="orange-fg font-size-52 line-height-72">\n {{vm.inbound.talking || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.OPENED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.OPENED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.OPENED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-52 line-height-72">\n {{vm.inbound.answered || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.MANAGED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.MANAGED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.MANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.unmanaged || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.UNMANAGED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.UNMANAGED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.UNMANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.total || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.TOTAL_OFFERED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.TOTAL_OFFERED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.TOTAL_OFFERED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="50">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-42 line-height-72">\n {{ vm.inbound.avgHoldTime || \'00:00:00\' }}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.AVG_HOLD_TIME\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.AVG_HOLD_TIME_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.AVG_HOLD_TIME\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-42 line-height-72">\n {{ vm.inbound.answerRate || 0 }}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.MANAGED_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.MANAGED_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.MANAGED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-grey-fg font-size-42 line-height-72">\n {{ vm.inbound.abandonRate || 0 }}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.UNMANAGED_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.UNMANAGED_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.UNMANAGED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET INBOUND --\x3e'),e.put("app/main/apps/dashboards/views/general/user/user.general.html",'<div id="dashboard-general" ng-init="vm.onInit()" class="page-layout simple right-sidenav" layout="row">\n \x3c!-- CENTER --\x3e\n <div class="center" flex ms-scroll>\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs ng-if="vm.hasDashboardPermissions" md-selected="vm.selectedTab" md-dynamic-height>\n <md-tab ng-if="vm.license.voice" label="{{\'DASHBOARDS.VOICE\' | translate}}" ui-sref="app.dashboards.general.voice">\n <div ui-view="voice"></div>\n </md-tab>\n <md-tab ng-if="vm.license.dialer" label="{{\'DASHBOARDS.MOTIONDIALER\' | translate}}" ui-sref="app.dashboards.general.dialer">\n <div ui-view="dialer"></div>\n </md-tab>\n <md-tab ng-if="vm.license.chat" label="{{\'DASHBOARDS.CHAT\' | translate}}" ui-sref="app.dashboards.general.chat">\n <div ui-view="chat"></div>\n </md-tab>\n <md-tab ng-if="vm.license.mail" label="{{\'DASHBOARDS.MAIL\' | translate}}" ui-sref="app.dashboards.general.mail">\n <div ui-view="mail"></div>\n </md-tab>\n <md-tab ng-if="vm.license.messaging" label="{{\'DASHBOARDS.SMS\' | translate}}" ui-sref="app.dashboards.general.sms">\n <div ui-view="sms"></div>\n </md-tab>\n <md-tab ng-if="vm.license.openchannel" label="{{\'DASHBOARDS.OPENCHANNEL\' | translate}}" ui-sref="app.dashboards.general.openchannel">\n <div ui-view="openchannel"></div>\n </md-tab>\n <md-tab ng-if="vm.license.fax" label="{{\'DASHBOARDS.FAX\' | translate}}" ui-sref="app.dashboards.general.fax">\n <div ui-view="fax"></div>\n </md-tab>\n <md-tab ng-if="vm.license.whatsapp" label="{{\'DASHBOARDS.WHATSAPP\' | translate}}" ui-sref="app.dashboards.general.whatsapp">\n <div ui-view="whatsapp"></div>\n </md-tab>\n </md-tabs>\n </div>\n \x3c!-- END CONTENT --\x3e\n\n <md-content ng-if="!vm.hasDashboardPermissions" layout="row" layout-align="space-around center" flex layout-padding layout-wrap>\n <div layout="column" layout-align="space-around center" flex="50">\n <span class="font-size-40 text-center">{{ \'DASHBOARDS.WELCOME_TO_MOTION\' | translate }}!</span>\n <span class="font-size-30 text-center" translate="DASHBOARDS.WELCOME_MESSAGE">Use the left sidebar to\n navigate through available sections.</span>\n </div>\n\n <div layout="column" flex="50">\n <img src="assets/images/avatars/permissions.png" alt="permissions">\n </div>\n </md-content>\n </div>\n</div>'),e.put("app/main/apps/dashboards/views/general/user/voice/user.general.voice.html",'\x3c!-- WIDGET INBOUND --\x3e\n<div class="dashboard-container md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-phone-incoming" class="m-0 mr-16"></md-icon>\n <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_INBOUND_STATS">Today Inbound STATS</div>\n </div>\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-timelapse"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-52 line-height-72">\n {{vm.inbound.waiting || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_WAITING\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_WAITING_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.VOICE_WAITING\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-phone-in-talk"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="orange-fg font-size-52 line-height-72">\n {{vm.inbound.talking || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_TALKING\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_TALKING_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.VOICE_TALKING\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-phone"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-52 line-height-72">\n {{vm.inbound.answered || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_ANSWERED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_ANSWERED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.VOICE_ANSWERED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-phone-missed"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-grey-fg font-size-52 line-height-72">\n {{vm.inbound.abandoned || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_ABANDONED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_ABANDONED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.VOICE_ABANDONED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-phone-incoming"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.total || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_TOTAL_OFFERED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_TOTAL_OFFERED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.VOICE_TOTAL_OFFERED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-timer-sand"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-42 line-height-72">\n {{ vm.inbound.avgHoldTime || \'00:00:00\' }}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_AVG_HOLD_TIME\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_AVG_HOLD_TIME_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.VOICE_AVG_HOLD_TIME\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-phone-in-talk"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="orange-fg font-size-42 line-height-72">\n {{ vm.inbound.avgTalkTime || \'00:00:00\' }}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_AVG_TALK_TIME\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_AVG_TALK_TIME_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.VOICE_AVG_TALK_TIME\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-percent"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-42 line-height-72">\n {{ vm.inbound.answerRate || 0 }}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_ANSWER_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_ANSWER_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.VOICE_ANSWER_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-percent"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-grey-fg font-size-42 line-height-72">\n {{ vm.inbound.abandonRate || 0 }}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_ABANDON_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_ABANDON_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.ABANDON_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-phone-dots"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.unmanaged || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_UNMANAGED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_UNMANAGED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.VOICE_UNMANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET INBOUND --\x3e\n\n\x3c!-- WIDGET OUTBOUND --\x3e\n<div class="dashboard-container md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-phone-outgoing" class="m-0 mr-16"></md-icon>\n <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_OUTBOUND_STATS">Today Outbound STATS</div>\n </div>\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-phone-outgoing"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-52 line-height-72">\n {{vm.outbound.total || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.TOTAL\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.TOTAL_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.TOTAL\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-phone"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-52 line-height-72">\n {{vm.outbound.answered || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.OUTBOUND_ANSWERED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.OUTBOUND_ANSWERED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.OUTBOUND_ANSWERED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-clock"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="orange-fg font-size-42 line-height-72">\n {{vm.outbound.sumDuration || 0 | secToTime | date:\'HH:mm:ss\'}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.TOT_DURATION\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.TOT_DURATION_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.TOT_DURATION\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-division"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-grey-fg font-size-42 line-height-72">\n {{vm.outbound.total ? ((vm.outbound.sumDuration / vm.outbound.total) | number: 0) : 0 | secToTime | date:\'HH:mm:ss\'}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.AVG_DURATION\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.AVG_DURATION_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.AVG_DURATION\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-percent"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-42 line-height-72">\n {{vm.outbound.total ? (vm.outbound.answered / vm.outbound.total * 100) : 0 | number: 1}}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.OUTBOUND_ANSWER_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.OUTBOUND_ANSWER_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.OUTBOUND_ANSWER_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET OUTBOUND --\x3e'),e.put("app/main/apps/dashboards/views/general/user/whatsapp/user.general.whatsapp.html",'\x3c!-- WIDGET INBOUND --\x3e\n<div class="dashboard-container md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-whatsapp" class="m-0 mr-16"></md-icon>\n <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_INTERACTIONS_STATS">Today Interactions STATS</div>\n </div>\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-52 line-height-72">\n {{vm.inbound.waiting || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.WAITING\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.WAITING_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.WAITING\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="orange-fg font-size-52 line-height-72">\n {{vm.inbound.talking || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.OPENED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.OPENED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.OPENED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-52 line-height-72">\n {{vm.inbound.answered || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.MANAGED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.MANAGED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.MANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.unmanaged || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.UNMANAGED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.UNMANAGED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.UNMANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.total || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.TOTAL_OFFERED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.TOTAL_OFFERED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.TOTAL_OFFERED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="50">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-42 line-height-72">\n {{ vm.inbound.avgHoldTime || \'00:00:00\' }}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.AVG_HOLD_TIME\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.AVG_HOLD_TIME_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.AVG_HOLD_TIME\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-42 line-height-72">\n {{ vm.inbound.answerRate || 0 }}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.MANAGED_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.MANAGED_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.MANAGED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-grey-fg font-size-42 line-height-72">\n {{ vm.inbound.abandonRate || 0 }}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.UNMANAGED_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.UNMANAGED_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.UNMANAGED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET INBOUND --\x3e'),e.put("app/main/apps/fax/views/faxAccounts/create/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="FAX.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.faxAccount.name" ng-required="true" autofocus>\n\n <div ng-messages="faxAccountForm[\'name\'].$error" ng-show="faxAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.KEY">key</label>\n <input type="text" name="key" ng-model="vm.faxAccount.key" md-maxlength="5" ng-required="true">\n\n <div ng-messages="faxAccountForm[\'key\'].$error" ng-show="faxAccountForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="FAX.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.TRUNK">trunk</label>\n <md-select name="TrunkId" ng-model="vm.faxAccount.TrunkId" required>\n <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks" ng-disabled="TrunkId.canSelect === false">{{ TrunkId.name }}</md-option>\n </md-select>\n <div ng-messages="faxAccountForm[\'TrunkId\'].$error" ng-show="faxAccountForm[\'TrunkId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.TRUNK_REQUIRED">trunk field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.LOCALSTATIONID">localstationid</label>\n <input type="text" name="localstationid" ng-model="vm.faxAccount.localstationid" ng-required="true">\n\n <div class="hint"><span translate="FAX.HELP.LOCALSTATIONID"></span></div>\n <div ng-messages="faxAccountForm[\'localstationid\'].$error" ng-show="faxAccountForm[\'localstationid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.LOCALSTATIONID_REQUIRED">localstationid field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.LIST">List</label>\n <md-select name="ListId" ng-model="vm.faxAccount.ListId" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div ng-messages="faxAccountForm[\'ListId\'].$error" ng-show="faxAccountForm[\'ListId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.faxAccount.description">\n\n <div ng-messages="faxAccountForm[\'description\'].$error" ng-show="faxAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newFaxAccount" ng-click="vm.saveFaxAccount()" class="send-button md-accent md-raised" ng-disabled="faxAccountForm.$invalid || faxAccountForm.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newFaxAccount" ng-click="vm.addNewFaxAccount()" class="send-button md-accent md-raised" ng-disabled="faxAccountForm.$invalid" aria-label="ADD" translate="FAX.ADD_FAXACCOUNT" translate-attr-aria-label="FAX.ADD_FAXACCOUNT">\n ADD FAXACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newFaxAccount" ng-click="vm.deleteFaxAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="FAX.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="FAX.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/agentadd/agentadd.html",'<md-dialog class="faxAccount-dialog" aria-label="faxAccount" ng-init="vm.onInit()">\n <form name="faxAccountForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="FAX.AGENTADD_FAXACCOUNT">Add Agent to faxAccount</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/agent/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="FAX.AGENT">Agent</label>\n <md-select name="agent" ng-model="vm.agent.agent" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="agent.name" ng-repeat="agent in vm.agents" ng-disabled="agent.canSelect === false">{{ agent.name }}</md-option>\n </md-select>\n <div ng-messages="faxAccountFormApp[\'agent\'].$error" ng-show="faxAccountFormApp[\'agent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.agent.timeout" min="0" max="2147483" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="faxAccountFormApp[\'timeout\'].$error" ng-show="faxAccountFormApp[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="FAX.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/close/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="FAX.DISPOSITION">Disposition</label>\n <input type="text" name="disposition" ng-model="vm.close.disposition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="faxAccountFormApp[\'disposition\'].$error" ng-show="faxAccountFormApp[\'disposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.DISPOSITION_REQUIRED">Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/gotoif/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="FAX.CONDITION">Condition</label>\n <input type="text" name="condition" ng-model="vm.gotoif.condition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="faxAccountFormApp[\'condition\'].$error" ng-show="faxAccountFormApp[\'condition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.CONDITION_REQUIRED">Condition field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.TRUEPRIORITY">truepriority</label>\n <input type="number" name="truepriority" ng-model="vm.gotoif.truepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="faxAccountFormApp[\'truepriority\'].$error" ng-show="faxAccountFormApp[\'truepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.TRUEPRIORITY_REQUIRED">truepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">truepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.FALSEPRIORITY">falsepriority</label>\n <input type="number" name="falsepriority" ng-model="vm.gotoif.falsepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="faxAccountFormApp[\'falsepriority\'].$error" ng-show="faxAccountFormApp[\'falsepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.FALSEPRIORITY_REQUIRED">falsepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">falsepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/gotop/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="FAX.PRIORITY">Priority</label>\n <input type="number" name="priority" ng-model="vm.gotop.priority" min="0" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="faxAccountFormApp[\'priority\'].$error" ng-show="faxAccountFormApp[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Priority must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/interval/dialog.html",'<md-dialog class="interval-dialog" aria-label="New Interval">\n <form name="intervalForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select ng-model="vm.type" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="type" ng-repeat=\'type in vm.types\'>{{ type | ucfirst }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.type === \'list\'">\n <label translate="TOOLS.INTERVALS">Intervals</label>\n <md-select ng-model="vm.interval.IntervalId" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals">{{ interval.name }}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!-- TIMERANGE START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.TIME_RANGE">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <div class="md-block" flex>\n <mdp-time-picker name="timeRangeFrom" mdp-placeholder="FROM" ng-model="vm.timeRangeFrom" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <div ng-messages="intervalForm.timeRangeFrom.$error" ng-show="intervalForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_FROM_INVALID">Time Range From field is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n <div class="md-block" flex ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_INVALID">Time Range To field is invalid</span>\n </div>\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </div>\n \x3c!-- TIMERANGE END --\x3e\n\n \x3c!-- DAYSOFWEEK START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.WEEK_DAYS">Week Days</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.dayOfWeekFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container flex class="md-block" ng-if="vm.dayOfWeekFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="dayOfWeekTo" ng-model="vm.dayOfWeekTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- DAYSOFWEEK END --\x3e\n\n \x3c!-- MONTHDAY START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTH_DAYS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthDayFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthDayFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthDayTo" ng-model="vm.monthDayTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTHDAY END --\x3e\n\n \x3c!-- MONTH START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTHS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n </md-select>\n\n </md-input-container>\n\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthTo" ng-model="vm.monthTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTH END --\x3e\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="!vm.newInterval && vm.crudPermissions.canEdit" ng-click="vm.saveInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid || intervalForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.newInterval && vm.crudPermissions.canEdit" ng-click="vm.addNewInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_INTERVAL" translate-attr-aria-label="TOOLS.ADD_INTERVAL">\n ADD INTERVAL\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/noop/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="FAX.VALUE">Value</label>\n <input type="text" name="value" ng-model="vm.noop.value" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="faxAccountFormApp[\'value\'].$error" ng-show="faxAccountFormApp[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/queue/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="FAX.QUEUE">Queue</label>\n <md-select name="queue" ng-model="vm.queue.queue" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="queue.name" ng-repeat="queue in vm.queues" ng-disabled="queue.canSelect === false">{{ queue.name }}</md-option>\n </md-select>\n <div ng-messages="faxAccountFormApp[\'queue\'].$error" ng-show="faxAccountFormApp[\'queue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.queue.timeout" min="0" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="faxAccountFormApp[\'timeout\'].$error" ng-show="faxAccountFormApp[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="FAX.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/system/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="FAX.COMMAND">Command</label>\n <input type="text" name="command" ng-model="vm.system.command" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="faxAccountFormApp[\'command\'].$error" ng-show="faxAccountFormApp[\'command\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.COMMAND_REQUIRED">Command field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.VARIABLE">Variable</label>\n <md-select name="variable" ng-model="vm.system.variable" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables" ng-disabled="variable.canSelect === false">{{ variable.name }}</md-option>\n </md-select>\n <div ng-messages="faxAccountFormApp[\'variable\'].$error" ng-show="faxAccountFormApp[\'variable\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.VARIABLE_REQUIRED">Variable field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/tag/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="FAX.TAG">Tag</label>\n <md-select name="tag" ng-model="vm.tag.tag" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags" ng-disabled="tag.canSelect === false">{{ tag.name }}</md-option>\n </md-select>\n <div ng-messages="faxAccountFormApp[\'tag\'].$error" ng-show="faxAccountFormApp[\'tag\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.TAG_REQUIRED">Tag field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/view.html",'<div id="fax-faxAccount" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-faxAccounts-button md-icon-button" aria-label="Go to faxAccounts" ng-click="vm.gotoFaxAccounts()" translate translate-attr-aria-label="FAX.GO_TO_FAXACCOUNTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="faxAccount-image" hide-xs>\n <img ng-src="assets/images/business/faxAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.faxAccount.id}}\n <span ng-if="vm.faxAccount.name">{{vm.faxAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="FAX.CREATED_AT"></span> <span>{{vm.faxAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.gotogoto(vm.faxAccount, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n <md-tooltip><span translate="FAX.GOTO_FAXACCOUNT"></span></md-tooltip>\n <md-icon md-font-icon="icon-cast"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.faxAccount, $event)" class="md-fab md-warn md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="FAX.AGENTADD_FAXACCOUNT"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveFaxAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (notificationForm.$invalid) || (transferForm.$invalid) || (advancedForm.$invalid) || (dispositionForm.$invalid) || (faxDispositionsForm.$invalid) || (actionsForm.$invalid) || (interactionsForm.$invalid)" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="FAX.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="faxAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="FAX.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="FAX.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.faxAccount.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.KEY">key</label>\n <input type="text" name="key" ng-model="vm.faxAccount.key" md-maxlength="5" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'key\'].$error" ng-show="generalForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="FAX.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.HEADERINFO">headerinfo</label>\n <input type="text" name="headerinfo" ng-model="vm.faxAccount.headerinfo" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="FAX.HELP.HEADERINFO"></span></div>\n <div ng-messages="generalForm[\'headerinfo\'].$error" ng-show="generalForm[\'headerinfo\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.HEADERINFO_REQUIRED">headerinfo field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.TRUNK">trunk</label>\n <md-select name="TrunkId" ng-model="vm.faxAccount.TrunkId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks" ng-disabled="TrunkId.canSelect === false">{{ TrunkId.name }}</md-option>\n </md-select>\n <div ng-messages="generalForm[\'TrunkId\'].$error" ng-show="generalForm[\'TrunkId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.TRUNK_REQUIRED">trunk field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.LOCALSTATIONID">localstationid</label>\n <input type="text" name="localstationid" ng-model="vm.faxAccount.localstationid" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="FAX.HELP.LOCALSTATIONID"></span></div>\n <div ng-messages="generalForm[\'localstationid\'].$error" ng-show="generalForm[\'localstationid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.LOCALSTATIONID_REQUIRED">localstationid field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.LIST">List</label>\n <md-select name="ListId" ng-model="vm.faxAccount.ListId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div ng-messages="generalForm[\'ListId\'].$error" ng-show="generalForm[\'ListId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.WAITFORTHEASSIGNEDAGENT">WaitForTheAssignedAgent</label>\n <input type="number" name="waitForTheAssignedAgent" ng-model="vm.faxAccount.waitForTheAssignedAgent" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'waitForTheAssignedAgent\'].$error" ng-show="generalForm[\'waitForTheAssignedAgent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.WAITFORTHEASSIGNEDAGENT_REQUIRED">WaitForTheAssignedAgent field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="FAX.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.faxAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="faxAccount-detail-form-container notification md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="FAX.NOTIFICATION">NOTIFICATION</div>\n </div>\n <form name="notificationForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.faxAccount.notificationSound" aria-label="notificationSound" ng-disabled="!vm.crudPermissions.canEdit"><span translate="FAX.NOTIFICATIONSOUND">notificationSound</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.faxAccount.notificationShake" aria-label="notificationShake" ng-disabled="!vm.crudPermissions.canEdit"><span translate="FAX.NOTIFICATIONSHAKE">notificationShake</span></md-switch>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="FAX.NOTIFICATIONTEMPLATE">notificationTemplate</label>\n <textarea aria-label="notificationTemplate notificationTemplate" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', removePlugins: \'magicline\' }" ng-model="vm.faxAccount.notificationTemplate"></textarea>\n </div>\n\n </form>\n </div>\n <div class="faxAccount-detail-form-container transfer md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="FAX.TRANSFER">TRANSFER</div>\n </div>\n <form name="transferForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.faxAccount.queueTransfer" aria-label="queueTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="FAX.QUEUETRANSFER">queueTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.faxAccount.queueTransfer == true" class="md-block">\n <label translate="FAX.QUEUETRANSFERTIMEOUT">queueTransferTimeout</label>\n <input type="number" name="queueTransferTimeout" ng-model="vm.faxAccount.queueTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'queueTransferTimeout\'].$error" ng-show="transferForm[\'queueTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.QUEUETRANSFERTIMEOUT_REQUIRED">queueTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="FAX.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.faxAccount.agentTransfer" aria-label="agentTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="FAX.AGENTTRANSFER">agentTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.faxAccount.agentTransfer == true" class="md-block">\n <label translate="FAX.AGENTTRANSFERTIMEOUT">agentTransferTimeout</label>\n <input type="number" name="agentTransferTimeout" ng-model="vm.faxAccount.agentTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'agentTransferTimeout\'].$error" ng-show="transferForm[\'agentTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.AGENTTRANSFERTIMEOUT_REQUIRED">agentTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="FAX.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="FAX.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <md-tab-body>\n <div class="faxAccount-detail-form-container advanced md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="FAX.ADVANCED">ADVANCED</div>\n </div>\n <form name="advancedForm" novalidate>\n <md-input-container class="md-block">\n <label translate="FAX.ECM">ECM</label>\n <md-select name="ecm" ng-model="vm.faxAccount.ecm" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'yes\'">yes</md-option>\n <md-option ng-value="\'no\'">no</md-option>\n </md-select>\n <div class="hint"><span translate="FAX.HELP.ECM"></span></div>\n <div ng-messages="advancedForm[\'ecm\'].$error" ng-show="advancedForm[\'ecm\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.ECM_REQUIRED">ECM field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.MINRATE">minrate</label>\n <md-select name="minrate" ng-model="vm.faxAccount.minrate" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'2400\'">2400</md-option>\n <md-option ng-value="\'4800\'">4800</md-option>\n <md-option ng-value="\'7200\'">7200</md-option>\n <md-option ng-value="\'9600\'">9600</md-option>\n <md-option ng-value="\'12000\'">12000</md-option>\n <md-option ng-value="\'14400\'">14400</md-option>\n </md-select>\n <div class="hint"><span translate="FAX.HELP.MINRATE"></span></div>\n <div ng-messages="advancedForm[\'minrate\'].$error" ng-show="advancedForm[\'minrate\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.MINRATE_REQUIRED">minrate field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.MAXRATE">maxrate</label>\n <md-select name="maxrate" ng-model="vm.faxAccount.maxrate" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'2400\'">2400</md-option>\n <md-option ng-value="\'4800\'">4800</md-option>\n <md-option ng-value="\'7200\'">7200</md-option>\n <md-option ng-value="\'9600\'">9600</md-option>\n <md-option ng-value="\'12000\'">12000</md-option>\n <md-option ng-value="\'14400\'">14400</md-option>\n </md-select>\n <div class="hint"><span translate="FAX.HELP.MAXRATE"></span></div>\n <div ng-messages="advancedForm[\'maxrate\'].$error" ng-show="advancedForm[\'maxrate\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.MAXRATE_REQUIRED">maxrate field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.MODEM">modem</label>\n <input type="text" name="modem" ng-model="vm.faxAccount.modem" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="FAX.HELP.MODEM"></span></div>\n <div ng-messages="advancedForm[\'modem\'].$error" ng-show="advancedForm[\'modem\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.MODEM_REQUIRED">modem field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.GATEWAY">gateway</label>\n <input type="text" name="gateway" ng-model="vm.faxAccount.gateway" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="FAX.HELP.GATEWAY"></span></div>\n <div ng-messages="advancedForm[\'gateway\'].$error" ng-show="advancedForm[\'gateway\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.GATEWAY_REQUIRED">gateway field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.FAXDETECT">faxdetect</label>\n <input type="text" name="faxdetect" ng-model="vm.faxAccount.faxdetect" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="FAX.HELP.FAXDETECT"></span></div>\n <div ng-messages="advancedForm[\'faxdetect\'].$error" ng-show="advancedForm[\'faxdetect\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.FAXDETECT_REQUIRED">faxdetect field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.T38TIMEOUT">t38timeout</label>\n <input type="number" name="t38timeout" ng-model="vm.faxAccount.t38timeout" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="FAX.HELP.T38TIMEOUT"></span></div>\n <div ng-messages="advancedForm[\'t38timeout\'].$error" ng-show="advancedForm[\'t38timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.T38TIMEOUT_REQUIRED">t38timeout field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.SIP">SIP</label>\n <md-select name="tech" ng-model="vm.faxAccount.tech" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'SIP\'">SIP</md-option>\n <md-option ng-value="\'IAX\'">IAX</md-option>\n <md-option ng-value="\'DADHI\'">DADHI</md-option>\n <md-option ng-value="\'KHOMP\'">KHOMP</md-option>\n </md-select>\n <div ng-messages="advancedForm[\'tech\'].$error" ng-show="advancedForm[\'tech\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.SIP_REQUIRED">SIP field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="faxAccount-detail-form-container disposition md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="FAX.DISPOSITION">DISPOSITION</div>\n </div>\n <form name="dispositionForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.faxAccount.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="FAX.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.faxAccount.mandatoryDisposition" class="md-block">\n <label translate="FAX.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.faxAccount.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="FAX.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="dispositionForm[\'mandatoryDispositionPauseId\'].$error" ng-show="dispositionForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="FAX.DISPOSITIONS">DISPOSITIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div ng-controller="FaxAccountDispositionsController as vm_dc" ng-init="vm_dc.init(vm.faxAccount, vm.crudPermissions)">\n <div layout="row">\n <div class="column" flex="20">\n <md-card class="mt-0">\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm_dc.query.level = null; vm_dc.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\n </button>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm_dc.query.level" ng-change="vm_dc.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm_dc.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n <div class="faxAccount-detail-form-container faxdispositions md-background-bg md-whiteframe-1dp" flex="80">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedFaxAccountDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="FAX.DISPOSITIONS">Dispositions</span>\n <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditDisposition($event)" aria-label="Add fax dispositions" translate translate-attr-label="FAX.ADD_DISPOSITION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedDispositions.length}}\n {{vm_dc.selectedDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedDispositions" csv-label="true" filename="faxAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedDispositions($event)" aria-label="delete selected" translate translate-attr-label="FAX.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_dc.selectedDispositions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getDispositions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'FAX.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'FAX.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'FAX.DESCRIPTION\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_dc.dispositions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="FAX.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="disposition" md-select-id="id" ng-repeat="disposition in vm_dc.dispositions.rows">\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm_dc.levels[disposition.level] }}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="FAX.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(disposition, $event)" translate="TOOLS.DELETE_DISPOSITION">\n Delete Disposition\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'FAX.PAGE\' | translate}}:\', rowsPerPage: \'{{\'FAX.ROWSPERPAGE\' | translate}}:\', of: \'{{\'FAX.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.dispositions.count}}" md-on-paginate="vm_dc.getDispositions" md-page-select>\n </md-table-pagination>\n </div>\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="FAX.ACTIONS">ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="faxAccount-detail-form-container actions md-background-bg md-whiteframe-1dp">\n <div ng-controller="FaxAccountActionsController as vm_ac" ng-init="vm_ac.init(vm.faxAccount, vm.crudPermissions)" class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- SIDENAV --\x3e\n <div class="navigation-simple sidenav main-sidenav md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="20" ng-if="vm_ac.crudPermissions.canEdit">\n \x3c!-- SIDENAV CONTENT --\x3e\n <md-list class="no-padding">\n <md-subheader class="md-no-sticky">\n <span translate="VOICE.APPLICATIONS_LIST">\n Applications List\n </span>\n </md-subheader>\n </md-list>\n <md-divider></md-divider>\n <md-list ng-sortable="vm_ac.list">\n <md-list-item class="handle" ng-repeat="a in vm_ac.apps">\n <md-icon md-font-icon="{{a.icon}}" class="s16"></md-icon>\n <p class="text-truncate" translate="FAX.{{(a.appAlias || a.appType) | uppercase}}">{{a.appAlias || a.appType}}</p>\n </md-list-item>\n </md-list>\n \x3c!-- / SIDENAV CONTENT --\x3e\n </div>\n \x3c!-- / SIDENAV --\x3e\n <div flex></div>\n \x3c!-- MAIN --\x3e\n <div class="main scrollable md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="{{vm_ac.crudPermissions.canEdit ? 75 : 100}}">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_ac.selectedFaxAccountApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">Drag & Drop Routing</span>\n <div flex></div>\n <ms-search-bar on-search="vm_ac.query.filter = query" on-collapse="vm_ac.query.filter = undefined" debounce="300"></ms-search-bar>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_ac.selectedFaxAccountApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_ac.selectedFaxAccountApps.length}} {{vm_ac.selectedFaxAccountApps.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_ac.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_ac.deleteSelectedFaxAccountApps($event)" aria-label="delete selected" translate translate-attr-label="FAX.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n \x3c!-- QUEUES TABLE --\x3e\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_ac.selectedFaxAccountApps">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column width="10px">\n <span translate="VOICE.PRIORITY">Priority</span>\n </th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </th>\n <th md-column width="10px"></th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body ng-sortable="vm_ac.applications">\n <tr md-row md-select="app" md-select-id="id" ng-repeat="app in vm_ac.faxAccountApps.rows | filter: vm_ac.query.filter">\n <td md-cell>\n <md-icon md-font-icon="icon-drag-vertical" class="s16 handle"></md-icon>\n </td>\n <td md-cell ng-click="vm_ac.editFaxAccountApp($event, $index)"><span>{{app.priority}}</span></td>\n <td md-cell ng-click="vm_ac.editFaxAccountApp($event, $index)">{{app.app.toLowerCase() === \'agi\' ? \'Cally-Square\' : app.app | ucfirst}}<span ng-if="app.appType.toLowerCase() === \'custom\'">*</span></td>\n <td md-cell ng-click="vm_ac.editFaxAccountApp($event, $index)"><span class="text-truncate actionAppData">{{app.appdata}}</span></td>\n <td md-cell ng-click="vm_ac.editInterval($event, $index)">{{app.IntervalId ? \'From List\' : app.interval}}</td>\n <td md-cell>\n <md-button ng-click="vm_ac.editInterval($event, $index)" class="md-icon-button" aria-label="Interval">\n <md-icon md-font-icon="icon-timer"></md-icon>\n <md-tooltip>\n {{app.IntervalId ? \'From List\' : (app.interval === \'*,*,*,*\' ? \'Always\' : \'Custom\')}}\n </md-tooltip>\n </md-button>\n </td>\n <td md-cell class="actions" ng-if="!vm_ac.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_ac.crudPermissions.canEdit">\n <md-button ng-click="vm_ac.editFaxAccountApp($event, $index)" translate="VOICE.EDIT_APP">\n Edit App\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_ac.crudPermissions.canEdit">\n <md-button ng-click="vm_ac.editInterval($event, $index)" translate="VOICE.EDIT_INTERVAL">\n Edit Interval\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_ac.crudPermissions.canDelete">\n <md-button ng-click="vm_ac.deleteConfirm(app, $index, $event)" translate="VOICE.DELETE_APP">\n Delete App\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-hide="vm_ac.faxAccountApps.rows.length">\n <td md-cell colspan="7">\n <span class="text-boxed-light" translate="VOICE.NO_APPS_AVAILABLE">No apps available</span>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n \x3c!-- / QUEUES TABLE --\x3e\n\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="FAX.INTERACTIONS">INTERACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="faxAccount-detail-form-container interactions md-background-bg md-whiteframe-1dp">\n <div ng-controller="FaxAccountInteractionsController as vm_dc" ng-init="vm_dc.init(vm.faxAccount, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedFaxAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="FAX.INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm_dc.getFaxAccountInteractions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_dc.quickFilters" query="vm_dc.query" search="vm_dc.getFaxAccountInteractions()"></ms-quick-filter>\n <div layout="column">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini md-accent-bg\': vm_dc.query.search }" aria-label="Filter" translate translate-attr-aria-label="DASHBOARDS.FILTER" ng-click="vm_dc.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm_dc.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'blink\': vm_dc.query.search }"></md-icon>\n </md-button>\n </div>\n <md-button class="md-icon-button" ng-click="vm_dc.getFaxAccountInteractions()" aria-label="refresh Interactions" translate translate-attr-label="FAX.REFRESH_INTERACTIONS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedFaxAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedFaxAccountInteractions.length}} {{vm_dc.selectedFaxAccountInteractions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedFaxAccountInteractions" csv-label="true" filename="faxAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedFaxAccountInteractions($event)" aria-label="delete selected" translate translate-attr-label="FAX.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedFaxAccountInteractions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getFaxAccountInteractions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'FAX.ID\' | translate }}\n </th>\n <th md-column class="no-padding">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column md-order-by="contactName">\n {{ \'FAX.CONTACT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'FAX.STARTEDAT\' | translate }}\n </th>\n <th md-column md-order-by="lastMsgAt">\n {{ \'FAX.LASTMESSAGE\' | translate }}\n </th>\n <th md-column md-order-by="closed">\n {{ \'FAX.STATUS\' | translate }}\n </th>\n <th md-column>\n {{ \'FAX.AGENT\' | translate }}\n </th>\n <th md-column md-order-by="tag">\n {{ \'FAX.TAGS\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="interaction" md-select-id="id" ng-repeat="interaction in vm_dc.faxAccountInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td md-cell>\n {{interaction.id}}\n </td>\n <td md-cell class="no-padding">\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="user in interaction.Users">{{ user.fullname | translate }}\n <span ng-if="!$last">, </span>\n </span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg md-primary-bg" layout-margin>{{ interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.attach">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td md-cell privacy ng-cloak>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'margin-bottom-0\' : interaction.contactInfo}" layout-margin>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text margin-top-0" layout-margin>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td md-cell>\n {{ interaction.createdAt | formatdate }}\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}"></md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="text-truncate">{{ interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n </td>\n <td md-cell>\n <span ng-if="interaction.closed === 0" class="green-fg">\n {{ \'FAX.OPENED\' | translate }}\n <span ng-if="interaction.substatus">\n - {{ interaction.substatus }}\n </span>\n </span>\n <span ng-if="interaction.closed === 1" class="red-fg">\n {{ \'FAX.CLOSED\' | translate }}\n <span ng-if="interaction.disposition">\n - {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}\n </span>\n <md-tooltip class="multiline">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n </span>\n </td>\n\n <td md-cell>\n {{interaction.Owner.name}}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="FAX.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm_dc.spyfaxInteraction($event, interaction)" translate="FAX.SPYINTERACTION">\n Spy Interaction\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.role === \'admin\' || vm_dc.userProfile.downloadOmnichannelInteractions">\n <md-button class="md-primary" ng-click="vm_dc.faxInteractionDownload(interaction, $event)" translate="FAX.DOWNLOAD_INTERACTION">\n Download\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(interaction, $event)" translate="FAX.DELETE_INTERACTION">\n Delete Interaction\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.faxAccountInteractions.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="FAX.NO_INTERACTION_AVAILABLE">No interaction available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'FAX.PAGE\' | translate}}:\', rowsPerPage: \'{{\'FAX.ROWSPERPAGE\' | translate}}:\', of: \'{{\'FAX.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.faxAccountInteractions.count}}" md-on-paginate="vm_dc.getFaxAccountInteractions" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/fax/views/faxAccounts/faxAccounts.html",'<div id="faxAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-deskphone" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="FAX.FAXACCOUNTS">FaxAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="FAX.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedFaxAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedFaxAccounts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="FAX.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-faxAccounts-count">\n <span>{{vm.selectedFaxAccounts.length}}</span>\n <span translate="FAX.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="FAX.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllFaxAccounts()" translate="FAX.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectFaxAccounts()" translate="FAX.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedFaxAccounts" csv-label="true" filename="faxAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedFaxAccounts($event)" aria-label="delete selected" translate translate-attr-label="FAX.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- FAXACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedFaxAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getFaxAccounts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'FAX.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'FAX.NAME\' | translate }}</th>\n <th md-column md-order-by="key">{{ \'FAX.KEY\' | translate }}</th>\n <th md-column md-order-by="TrunkId">{{ \'FAX.TRUNK\' | translate }}</th>\n <th md-column md-order-by="localstationid">{{ \'FAX.LOCALSTATIONID\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'FAX.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.faxAccounts.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="FAX.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="faxAccount" md-select-id="id" ng-repeat="faxAccount in vm.faxAccounts.rows">\n <td md-cell ng-if="faxAccount.userpic"><img class="avatar" alt="{{faxAccount.name}}" ng-src="api/users/{{faxAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!faxAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{faxAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxAccount, ev) : vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="id ">{{faxAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxAccount, ev) : vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="name ">{{faxAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxAccount, ev) : vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="key ">{{faxAccount.key}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxAccount, ev) : vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="TrunkId ">{{ (vm.trunks | filter : {\'id\':faxAccount.TrunkId} : true)[0].name }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxAccount, ev) : vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="localstationid ">{{faxAccount.localstationid}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxAccount, ev) : vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="description ">{{faxAccount.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="FAX.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(faxAccount, $event )" translate="FAX.EDIT_FAXACCOUNT">\n Edit FaxAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.interactionsgoto(faxAccount, $event )" translate="FAX.INTERACTIONS_FAXACCOUNT">\n Interactions FaxAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(faxAccount, $event )" translate="FAX.GOTOREALTIME_FAXACCOUNT">\n goToRealtime FaxAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(faxAccount, $event )" translate="FAX.AGENTADD_FAXACCOUNT">\n AgentAdd FaxAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(faxAccount, $event )" translate="FAX.DELETE_FAXACCOUNT">\n Delete FaxAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'FAX.PAGE\' | translate}}:\', rowsPerPage: \'{{\'FAX.ROWSPERPAGE\' | translate}}:\', of: \'{{\'FAX.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.faxAccounts.count}}" md-on-paginate="vm.getFaxAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / FAXACCOUNT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD FAXACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-faxAccount-button" ng-click="vm.createOrEditFaxAccount($event)" aria-label="add faxAccount" translate translate-attr-aria-label="FAX.ADD_FAXACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD FAXACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/fax/views/faxQueues/create/dialog.html",'<md-dialog class="faxQueue-dialog" aria-label="New FaxQueue">\n <form name="faxQueueForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="FAX.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.faxQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newFaxQueue">\n\n <div class="hint"><span translate="FAX.HELP.NAME"></span></div>\n <div ng-messages="faxQueueForm[\'name\'].$error" ng-show="faxQueueForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="FAX.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.faxQueue.strategy" required>\n <md-option ng-value="\'beepall\'">Beepall</md-option>\n <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n </md-select>\n <div ng-messages="faxQueueForm[\'strategy\'].$error" ng-show="faxQueueForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.AGENT_TIMEOUT">Agent_Timeout</label>\n <input type="number" name="timeout" ng-model="vm.faxQueue.timeout" min="1" max="2147483" value="10" ng-required="true">\n\n <div ng-messages="faxQueueForm[\'timeout\'].$error" ng-show="faxQueueForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="FAX.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.faxQueue.description">\n\n <div ng-messages="faxQueueForm[\'description\'].$error" ng-show="faxQueueForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newFaxQueue" ng-click="vm.saveFaxQueue()" class="send-button md-accent md-raised" ng-disabled="faxQueueForm.$invalid || faxQueueForm.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newFaxQueue" ng-click="vm.addNewFaxQueue()" class="send-button md-accent md-raised" ng-disabled="faxQueueForm.$invalid" aria-label="ADD" translate="FAX.ADD_FAXQUEUE" translate-attr-aria-label="FAX.ADD_FAXQUEUE">\n ADD FAXQUEUE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newFaxQueue" ng-click="vm.deleteFaxQueue($event)" aria-label="DELETE" translate translate-attr-aria-label="FAX.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="FAX.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxQueues/edit/agentadd/agentadd.html",'<md-dialog class="faxQueue-dialog" aria-label="faxQueue" ng-init="vm.onInit()">\n <form name="faxQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="FAX.AGENTADD_FAXQUEUE">Add Agent to faxQueue</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxQueues/edit/teamadd/teamadd.html",'<md-dialog class="faxQueue-dialog" aria-label="faxQueue" ng-init="vm.onInit()">\n <form name="faxQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="FAX.TEAMS_ASSOCIATION">Teams Association</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxQueues/edit/view.html",'<div id="fax-faxQueue" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-faxQueues-button md-icon-button" aria-label="Go to faxQueues" ng-click="vm.gotoFaxQueues()" translate translate-attr-aria-label="FAX.GO_TO_FAXQUEUES">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="faxQueue-image" hide-xs>\n <img ng-src="assets/images/business/faxQueues.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.faxQueue.id}}\n <span ng-if="vm.faxQueue.name">{{vm.faxQueue.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="FAX.CREATED_AT"></span> <span>{{vm.faxQueue.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.teamadddialog(vm.faxQueue, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n <md-tooltip><span translate="FAX.TEAMADD_FAXQUEUE"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.faxQueue, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="FAX.AGENTADD_FAXQUEUE"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-plus"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveFaxQueue()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid)" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="FAX.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="faxQueue-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="FAX.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="FAX.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.faxQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="FAX.HELP.NAME"></span></div>\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="FAX.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.faxQueue.strategy" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'beepall\'">Beepall</md-option>\n <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n </md-select>\n <div ng-messages="generalForm[\'strategy\'].$error" ng-show="generalForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.AGENT_TIMEOUT">Agent_Timeout</label>\n <input type="number" name="timeout" ng-model="vm.faxQueue.timeout" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'timeout\'].$error" ng-show="generalForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="FAX.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.faxQueue.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/fax/views/faxQueues/faxQueues.html",'<div id="faxQueues" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-deskphone" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="FAX.FAXQUEUES">FaxQueues</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="FAX.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedFaxQueues.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedFaxQueues =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="FAX.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-faxQueues-count">\n <span>{{vm.selectedFaxQueues.length}}</span>\n <span translate="FAX.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="FAX.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllFaxQueues()" translate="FAX.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectFaxQueues()" translate="FAX.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedFaxQueues" csv-label="true" filename="faxQueues.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedFaxQueues($event)" aria-label="delete selected" translate translate-attr-label="FAX.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- FAXQUEUE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedFaxQueues" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getFaxQueues">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'FAX.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'FAX.NAME\' | translate }}</th>\n <th md-column md-order-by="strategy">{{ \'FAX.STRATEGY\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.faxQueues.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="FAX.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="faxQueue" md-select-id="id" ng-repeat="faxQueue in vm.faxQueues.rows">\n <td md-cell ng-if="faxQueue.userpic"><img class="avatar" alt="{{faxQueue.name}}" ng-src="api/users/{{faxQueue.id}}/avatar" /></td>\n <td md-cell ng-if="!faxQueue.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{faxQueue.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxQueue, ev) : vm.createOrEditFaxQueue($event, faxQueue)" md-cell class="id ">{{faxQueue.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxQueue, ev) : vm.createOrEditFaxQueue($event, faxQueue)" md-cell class="name ">{{faxQueue.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxQueue, ev) : vm.createOrEditFaxQueue($event, faxQueue)" md-cell class="strategy ">{{ vm.arraystrategy[faxQueue.strategy].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="FAX.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(faxQueue, $event )" translate="FAX.EDIT_FAXQUEUE">\n Edit FaxQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(faxQueue, $event )" translate="FAX.TEAMADD_FAXQUEUE">\n teamadd FaxQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(faxQueue, $event )" translate="FAX.AGENTADD_FAXQUEUE">\n agentadd FaxQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(faxQueue, $event )" translate="FAX.DELETE_FAXQUEUE">\n Delete FaxQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(faxQueue, $event )" translate="FAX.GOTOREALTIME_FAXQUEUE">\n goToRealtime FaxQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'FAX.PAGE\' | translate}}:\', rowsPerPage: \'{{\'FAX.ROWSPERPAGE\' | translate}}:\', of: \'{{\'FAX.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.faxQueues.count}}" md-on-paginate="vm.getFaxQueues" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / FAXQUEUE TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD FAXQUEUE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-faxQueue-button" ng-click="vm.createOrEditFaxQueue($event)" aria-label="add faxQueue" translate translate-attr-aria-label="FAX.ADD_FAXQUEUE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD FAXQUEUE BUTTON --\x3e\n</div>'),e.put("app/main/apps/fax/views/realtime/accounts/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="FAX.ACCOUNTS">Accounts</span>\n <div flex></div>\n <ms-search-bar on-search="vm.vm.getFaxAccounts()" query="vm.query" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n\n\x3c!-- AGENT TABLE --\x3e\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getFaxAccounts">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'FAX.NAME\' | translate}}</th>\n <th md-column>{{\'FAX.KEY\' | translate}}</th>\n <th md-column>{{\'FAX.TOTAL\' | translate}}</th>\n <th md-column>{{\'FAX.IN\' | translate}}</th>\n <th md-column>{{\'FAX.OUT\' | translate}}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.faxAccounts">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="FAX.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="vm.faxAccounts[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td md-cell>{{vm.faxAccounts[value].name}}</td>\n <td md-cell>{{vm.faxAccounts[value].key}}</td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{(vm.faxAccounts[value].in || 0) + (vm.faxAccounts[value].out || 0)}}</span>\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="icon-arrow-down-bold blue-fg"></md-icon>\n </span>\n <span class="md-capture blue-fg">{{vm.faxAccounts[value].in || 0}}</span>\n <span class="text-boxed" ng-if="mailAccount.in">{{vm.faxAccounts[value].lastIn ? (vm.faxAccounts[value].lastIn | date: \'shortTime\') : \'\'}}</span>\n </div>\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="icon-arrow-up-bold green-fg"></md-icon>\n </span>\n <span class="md-capture green-fg">{{vm.faxAccounts[value].out || 0}}</span>\n <span class="text-boxed" ng-if="mailAccount.out">{{vm.faxAccounts[value].lastOut ? (vm.faxAccounts[value].lastOut | date: \'shortTime\') : \'\'}}</span>\n </div>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="4">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.goToFaxAccount($event, vm.faxAccounts[value])" translate="FAX.EDIT_ACCOUNT">\n Edit Account\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'FAX.PAGE\' | translate}}:\', rowsPerPage: \'{{\'FAX.ROWSPERPAGE\' | translate}}:\', of: \'{{\'FAX.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getFaxAccounts" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/fax/views/realtime/agents/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="FAX.AGENTS">Agents</span>\n <div flex></div>\n <ms-search-bar on-search="vm.onInit()" query="vm.query" on-collapse="vm.query.filter = undefined; vm.onInit()" debounce="300"></ms-search-bar>\n <md-select ng-model="vm.query.globalStatusFilter" class="md-caption" ng-change="vm.query.pauseTypeFilter = \'\'; vm.onInit()">\n <md-option ng-value="\'\'">{{ \'FAX.ALL\' | translate }}</md-option>\n <md-option value="pause">{{ \'FAX.PAUSE\' | translate }}</md-option>\n <md-option value="*pause">{{ \'FAX.PARTIALPAUSE\' | translate }}</md-option>\n <md-option value="busy">{{ \'FAX.BUSY\' | translate }}</md-option>\n <md-option value="idle">{{ \'FAX.IDLE\' | translate }}</md-option>\n </md-select>\n <md-select ng-if="vm.isPause(vm.query.globalStatusFilter)" ng-model="vm.query.pauseTypeFilter" class="md-caption" ng-change="vm.onInit()">\n <md-option ng-value="\'\'">All</md-option>\n <md-option value="DEFAULT PAUSE">DEFAULT PAUSE</md-option>\n <md-option value="ACW">ACW</md-option>\n <md-option value="LOGININPAUSE">LOGININPAUSE</md-option>\n <md-option value="Auto-Pause">AUTOPAUSE</md-option>\n <md-option ng-value="pause.name" ng-repeat="pause in vm.pauses.rows">{{pause.name}}</md-option>\n </md-select>\n </div>\n</md-toolbar>\n\x3c!-- AGENT TABLE --\x3e\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.order" md-on-reorder="vm.onInit">\n <tr md-row border="1">\n <th class="bv text-center" colspan="5">{{ \'FAX.AGENT\' | translate }}</th>\n <th class="bv bl text-center" colspan="2">{{ \'VOICE.VOICE\' | translate }}</th>\n <th ng-if="vm.license.chat" class="bv bl text-center" colspan="2">{{ \'CHAT.CHAT\' | translate }}</th>\n <th ng-if="vm.license.mail" class="bv bl text-center" colspan="2">{{ \'MAIL.MAIL\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="bv bl text-center" colspan="2">{{ \'SMS.SMS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="bv bl text-center" colspan="2">\n {{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="bv bl text-center" colspan="2">\n {{ \'WHATSAPP.WHATSAPP\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n </tr>\n <tr md-row>\n <th class="bl" colspan="2" md-column md-order-by="fullname">\n {{ \'FAX.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">\n {{ \'FAX.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">\n {{ \'FAX.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">\n {{ \'FAX.PAUSE_TIME\' | translate }}</th>\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\n <th ng-if="vm.license.chat" class="bl text-center">{{ \'CHAT.STATUS\' | translate }}</th>\n <th ng-if="vm.license.chat" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'CHAT.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.mail" class="bl text-center">{{ \'MAIL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.mail" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'MAIL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.messaging" class="bl text-center">{{ \'SMS.STATUS\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'SMS.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.openchannel" class="bl text-center">{{ \'OPENCHANNEL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'OPENCHANNEL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.fax" class="bl text-center">{{ \'FAX.STATUS\' | translate }}</th>\n <th ng-if="vm.license.fax" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'FAX.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.whatsapp" class="bl text-center">{{ \'WHATSAPP.STATUS\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'WHATSAPP.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.order.length">\n <td md-cell colspan="19">\n <div layout="row" layout-align="center center">\n <span>{{ \'FAX.NO_AGENT_ONLINE\' | translate }}</span>\n </div>\n </td>\n </tr>\n <tr md-select="vm.agents[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td class="bt padding-5">\n <div layout="row" layout-align="start center">\n <img class="avatar" ng-src="{{vm.agents[value].userpic && \'api/users/\'+vm.agents[value].id+\'/avatar\' || \'assets/images/avatars/profile.png\'}}">\n <div layout="column">\n <span>{{vm.agents[value].fullname}}</span>\n <span>{{vm.agents[value].internal}}</span>\n </div>\n </div>\n </td>\n <td class="bt padding-5">\n <div layout="row" layout-align="start center" ng-if="vm.license.screenrecording && (vm.agents[value].phoneBarEnableScreenRecordingByAgent || vm.agents[value].phoneBarEnableAutomaticScreenRecording)">\n <div class="column" ng-if="vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: green; font-size: 36px;" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'FAX.TOOLTIP_SCREENRECORDING_ON\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n <div class="column" ng-if="!vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: gray" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'FAX.TOOLTIP_SCREENRECORDING_OFF\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n </div>\n </td>\n <td class="bt">\n'+" <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','busy':'indigo-100-bg','*pause':'amber-50-bg','pause':'amber-200-bg'}[vm.agents[value].globalStatus]\">{{\n vm.isPause(vm.agents[value].globalStatus) ? '' : vm.agents[value].globalStatus | uppercase }}\n {{ vm.isPause(vm.agents[value].globalStatus) ? (vm.isPartialPause(vm.agents[value].globalStatus) ?\n '*'+vm.agents[value].pauseType || 'DEFAULT PAUSE' : vm.agents[value].pauseType || 'DEFAULT PAUSE') :\n ''}}</span>\n </td>\n <td class=\"bt custom-column\">\n <timer start-time=\"vm.agents[value].lastLoginAt\"></timer>\n </td>\n <td class=\"bt custom-column\">\n <timer ng-if=\"vm.isPause(vm.agents[value].globalStatus) || vm.isPartialPause(vm.agents[value].globalStatus)\" start-time=\"vm.agents[value].lastPauseAt\"></timer>\n </td>\n <td class=\"bt bl\">\n <div layout=\"row\">\n <span ng-if=\"!vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','talking':'indigo-100-bg','ringing':'orange-400-bg','pause':'amber-200-bg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].voiceStatus | uppercase }}</span>\n <span ng-if=\"vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5 orange-400-bg\">ONHOLD</span>\n </div>\n </td>\n <td class=\"bt bl\">\n <div layout=\"column\">\n <span ng-if=\"vm.agents[value].queue\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].queue }}</span>\n <span ng-if=\"vm.agents[value].destconnectedlinenum\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\" privacy ng-cloak>{{\n vm.agents[value].destconnectedlinenum }}</span>\n <span ng-if=\"vm.agents[value].routealias\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].routealias }}</span>\n <span class=\"padding-5\" ng-if=\"vm.agents[value].queue || vm.agents[value].destconnectedlinenum\">\n <timer start-time=\"vm.agents[value].voiceStatusTime\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">\n </timer>\n </span>\n </div>\n </td>\n <td class=\"bt bl\" ng-if=\"vm.license.chat\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].chatStatus]\">{{\n vm.agents[value].chatStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td md-number class=\"bt text-center font-size-20\" ng-if=\"vm.license.chat\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].chatStatus]\">\n {{ vm.agents[value].chatCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.mail\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].mailStatus]\">{{\n vm.agents[value].mailStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.mail\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].mailStatus]\">\n {{ vm.agents[value].mailCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.messaging\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].smsStatus]\">{{\n vm.agents[value].smsStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.messaging\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].smsStatus]\">\n {{ vm.agents[value].smsCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.openchannel\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].openchannelStatus]\">{{\n vm.agents[value].openchannelStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.openchannel\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].openchannelStatus]\">\n {{ vm.agents[value].openchannelCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.fax\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].faxStatus]\">{{\n vm.agents[value].faxStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.fax\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].faxStatus]\">\n {{ vm.agents[value].faxCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.whatsapp\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].whatsappStatus]\">{{\n vm.agents[value].whatsappStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.whatsapp\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].whatsappStatus]\">\n {{ vm.agents[value].whatsappCurrentCapacity }}</td>\n <td class=\"bl bt padding-5 text-center\" ng-if=\"vm.crudPermissions.canEdit\">\n <md-menu>\n <md-button class=\"md-icon-button\" aria-label=\"More\" translate translate-attr-aria-label=\"STAFF.MORE\" ng-click=\"$mdOpenMenu($event)\">\n <md-icon md-font-icon=\"icon-dots-vertical\"></md-icon>\n </md-button>\n <md-menu-content width=\"4\">\n <md-menu-item>\n <md-button ng-click=\"vm.logout(vm.agents[value], $event)\" translate=\"FAX.LOGOUT\">\n Logout\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click=\"vm.queueAdd(vm.agents[value], $event)\" translate=\"FAX.AGENTADD_QUEUE\">\n Add Agent In Queue\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.license.screenrecording && vm.agents[value].phoneBarEnableScreenRecordingByAgent\">\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"FAX.SCREENRECORDING\">Screen Recording\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if=\"!vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], true)\"><em translate=\"FAX.START_SCREENRECORDING\">Start\n Screen Recording</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], false)\"><em translate=\"FAX.STOP_SCREENRECORDING\">Stop\n Screen Recording</em></md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item>\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"FAX.PAUSE\">Pause</md-button>\n <md-menu-content>\n <md-menu-item>\n <md-button ng-disabled=\" vm.agents[value].voicePause && 'DEFAULT PAUSE' === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value])\"><em translate=\"FAX.DEFAULT_PAUSE\">Default\n Pause</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.pauses.rows.length\" ng-repeat=\"pause in vm.pauses.rows\">\n <md-button ng-disabled=\"vm.agents[value].voicePause && pause.name === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value], pause.name)\">{{pause.name}}\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.isPause(vm.agents[value].globalStatus)\">\n <md-button ng-click=\"vm.unPause(vm.agents[value])\" translate=\"FAX.UNPAUSE\">\n Unpause\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label=\"{page: '{{'FAX.PAGE' | translate}}:', rowsPerPage: '{{'FAX.ROWSPERPAGE' | translate}}:', of: '{{'FAX.OF' | translate}}'}\" md-limit=\"vm.query.limit\" md-limit-options=\"[10, 15, 20, 50, 100, 250]\" md-page=\"vm.query.page\" md-total=\"{{vm.filteredAgents.length}}\" md-on-paginate=\"vm.onInit\" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e"),e.put("app/main/apps/fax/views/realtime/queues/view.html",'<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="FAX.QUEUES">Queues</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getQueues">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'FAX.NAME\' | translate }}</th>\n <th md-column>{{ \'FAX.LOGGED_IN\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'FAX.PAUSED\' | translate }}</th>\n <th md-column>{{ \'FAX.WAITING\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.queues.count > 0">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="FAX.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="queue" md-select-id="id" ng-repeat="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedIn }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="FAX.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.editQueue($event, queue)" translate="FAX.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.addAgent($event, queue)" translate="FAX.AGENTSADD_QUEUE">\n Add Agents to queue\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'FAX.PAGE\' | translate}}:\', rowsPerPage: \'{{\'FAX.ROWSPERPAGE\' | translate}}:\', of: \'{{\'FAX.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),e.put("app/main/apps/fax/views/realtime/realtime.html",'<div id="realtime" class="page-layout simple tabbed" layout="column" ng-cloak>\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="FAX.AGENTS">Agents</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="FAX.TRUNKS">Trunks</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="FAX.QUEUES">Queues</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="FAX.ACCOUNTS">Accounts</span>\n </md-tab-label>\n </md-tab>\n </md-tabs>\n\n <md-card ui-view></md-card>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/fax/views/realtime/trunks/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="FAX.TRUNKS">Telephones</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getTrunks()" query="vm.query" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n\n\x3c!-- TRUNKS TABLE --\x3e\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head>\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTrunks">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'FAX.NAME\' | translate }}</th>\n <th md-column>{{ \'FAX.TRUNK_STATUS\' | translate }}</th>\n <th md-column>{{ \'FAX.REGISTRY\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.trunks">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="FAX.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(id, trunk) in vm.trunks">\n <td md-cell>{{trunk.name}}</td>\n <td md-cell>\n <i ng-class="vm.statusClass[trunk.status.toLowerCase()]">\n <md-tooltip>{{\'FAX.\' + trunk.status | uppercase | translate}}</md-tooltip>\n </i>\n <span ng-if="trunk.status === \'registered\'" class="text-boxed">{{trunk.address}}</span>\n </td>\n <td md-cell>\n <i ng-if="trunk.registry" ng-class="(trunk.stateRegistry.toLowerCase() === \'registered\') ? \'green-300-fg icon-checkbox-marked-circle\' : \'red-300-fg icon-close-circle\'">\n <md-tooltip>{{\'FAX.\' + trunk.stateRegistry | uppercase | translate}}</md-tooltip>\n </i>\n <span ng-if="trunk.registry && trunk.host && trunk.port" class="text-boxed">{{trunk.host}}:{{trunk.port}}</span>\n <span ng-if="!trunk.registry" translate="FAX.NO_REGISTRY">\n No Registry\n </span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="4">\n <md-menu-item>\n <md-button ng-click="vm.goToTrunk($event, trunk)" translate="FAX.EDIT_TRUNK">\n Edit Trunk\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'FAX.PAGE\' | translate}}:\', rowsPerPage: \'{{\'FAX.ROWSPERPAGE\' | translate}}:\', of: \'{{\'FAX.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getTrunks" md-page-select></md-table-pagination>\n\x3c!-- / TRUNKS TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/help/views/about/about.html",'<div id="maintenance" class="flex-scrollable" layout="column" ms-scroll>\n <div id="maintenance-form-wrapper" layout="column" layout-align="center center">\n <div id="maintenance-form" class="md-whiteframe-8dp">\n <div>\n <img src="/api/settings/1/logo_login" alt="logo_login" />\n </div>\n\n <br>\n\n <div>\n <div class="info-line">\n <div class="title">Useful pages</div>\n </div>\n <section layout="row" flex layout-sm="column" layout-align="center center" layout-wrap>\n <div layout="column" flex="25" layout-align="center center">\n <a class="md-fab md-mini md-button grey-bg" href="https://wiki.xcallymotion.com/display/XMV" target="_blank">\n <md-icon md-font-icon="icon-wikipedia"></md-icon>\n </a>\n <div class="info"><a href="https://wiki.xcallymotion.com/display/XMV" target="_blank">Wiki</a></div>\n </div>\n\n <div layout="column" flex="25" layout-align="center center">\n <a class="md-fab md-mini md-button md-accent" href="/apidoc" target="_blank">\n <md-icon md-font-icon="icon-apple-mobileme"></md-icon>\n </a>\n <div class="info"><a href="/apidoc" target="_blank">Motion API</a></div>\n </div>\n\n <div layout="column" flex="25" layout-align="center center">\n <a class="md-fab md-mini md-button orange-bg" href="http://www.xcally.com/bar/phonebar/Setup.msi" target="_blank">\n <md-icon md-font-icon="icon-headphones"></md-icon>\n </a>\n <div class="info"><a href="https://www.xcally.com/bar/phonebar/Setup.msi" target="_blank">Phonebar Download</a></div>\n </div>\n\n <div layout="column" flex="25" layout-align="center center">\n <a class="md-fab md-mini md-button green-bg" href="/demo" target="_blank">\n <md-icon md-font-icon="icon-console"></md-icon>\n </a>\n <div class="info"><a href="/demo" target="_blank">Playground</a></div>\n </div>\n\n </section>\n\n <br>\n\n <div class="info-line" ng-if="!vm.license.custom">\n <div class="title">Follow us on</div>\n </div>\n <section ng-if="!vm.license.custom" layout="row" layout-sm="column" layout-align="center center" layout-wrap>\n <a class="md-fab md-mini md-button blue-900-bg" href="https://www.facebook.com/xcallymotion" target="_blank">\n <md-icon md-font-icon="icon-facebook"></md-icon>\n </a>\n\n <a class="md-fab md-mini md-button" href="https://twitter.com/xcallymotion" target="_blank">\n <md-icon md-font-icon="icon-twitter"></md-icon>\n </a>\n <a class="md-fab md-mini md-button md-warn" href="https://plus.google.com/+Xcally" target="_blank">\n <md-icon md-font-icon="icon-google-plus"></md-icon>\n </a>\n <a class="md-fab md-mini md-button light-blue-800-bg" href="https://www.linkedin.com/company/xcally" target="_blank">\n <md-icon md-font-icon="icon-linkedin"></md-icon>\n </a>\n </section>\n\n <br ng-if="!vm.license.custom">\n\n <div class="info-line" ng-if="!vm.license.custom">\n <div class="title" translate="HELP.CONTACT_US">Contact Us</div>\n </div>\n <div class="info-line" ng-if="!vm.license.custom">\n <div class="info"><a href="mailto:support@xcally.com" target="_top">support@xcally.com</a></div>\n </div>\n\n <br ng-if="!vm.license.custom">\n\n <div class="info">xCALLY Motion <u>{{vm.info.current}}</u> | <a href="https://wiki.xcallymotion.com/display/XMV/Motion+GUI#MotionGUI-Version{{vm.info.current}}" target="_blank">Changelog</a></div>\n\n <br>\n\n <div class="info" ng-if="!vm.license.custom">xCALLY© 2016 - 2018 | Powered by Xenialab | <a href="http://www.xcally.com/support/eula-xcally-license-en.pdf" target="_blank">EULA</a></div>\n\n <br ng-if="!vm.license.custom">\n\n <div class="info" ng-if="!vm.license.custom"><a href="https://www.xenialab.com/" target="_blank">www.xenialab.com</a> | <a href="https://www.xcallymotion.com/" target="_blank">www.xcallymotion.com</a></div>\n </div>\n </div>\n </div>\n</div>'),e.put("app/main/apps/integrations/views/deskAccounts/create/dialog.html",'<md-dialog class="deskAccount-dialog" aria-label="New DeskAccount">\n <form name="deskAccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.deskAccount.name" ng-required="true" autofocus>\n\n <div ng-messages="deskAccountForm[\'name\'].$error" ng-show="deskAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.deskAccount.type" required>\n\n <md-option ng-value="\'integrationTab\'"> {{ \'INTEGRATIONS.INTEGRATION_TAB\' | translate }} </md-option>\n\n <md-option ng-value="\'newTab\'"> {{ \'INTEGRATIONS.NEW_TAB\' | translate }} </md-option>\n </md-select>\n <div ng-messages="deskAccountForm[\'type\'].$error" ng-show="deskAccountForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.deskAccount.remoteUri" ng-required="true">\n\n <div ng-messages="deskAccountForm[\'remoteUri\'].$error" ng-show="deskAccountForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.AUTHTYPE">AuthType</label>\n <md-select name="authType" ng-model="vm.deskAccount.authType" required>\n <md-option ng-value="\'basic\'">Basic</md-option>\n </md-select>\n <div ng-messages="deskAccountForm[\'authType\'].$error" ng-show="deskAccountForm[\'authType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.AUTHTYPE_REQUIRED">AuthType field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.deskAccount.authType == \'basic\'" class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.deskAccount.username" ng-required="true">\n\n <div ng-messages="deskAccountForm[\'username\'].$error" ng-show="deskAccountForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.deskAccount.authType == \'basic\'">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.deskAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="deskAccountForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.deskAccount.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="deskAccountForm[\'serverUrl\'].$error" ng-show="deskAccountForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.deskAccount.description">\n\n <div ng-messages="deskAccountForm[\'description\'].$error" ng-show="deskAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newDeskAccount" ng-click="vm.saveDeskAccount()" class="send-button md-accent md-raised" ng-disabled="deskAccountForm.$invalid || deskAccountForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newDeskAccount" ng-click="vm.addNewDeskAccount()" class="send-button md-accent md-raised" ng-disabled="deskAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_DESKACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_DESKACCOUNT">\n ADD DESKACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newDeskAccount" ng-click="vm.deleteDeskAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/deskAccounts/deskAccounts.html",'<div id="deskAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-heart" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="INTEGRATIONS.DESKACCOUNTS">DeskAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedDeskAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedDeskAccounts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="INTEGRATIONS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-deskAccounts-count">\n <span>{{vm.selectedDeskAccounts.length}}</span>\n <span translate="INTEGRATIONS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="INTEGRATIONS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllDeskAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectDeskAccounts()" translate="INTEGRATIONS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedDeskAccounts" csv-label="true" filename="deskAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedDeskAccounts($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- DESKACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedDeskAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getDeskAccounts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'INTEGRATIONS.NAME\' | translate }}</th>\n <th md-column md-order-by="remoteUri">{{ \'INTEGRATIONS.URI\' | translate }}</th>\n <th md-column md-order-by="username">{{ \'INTEGRATIONS.USERNAME\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.deskAccounts.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="deskAccount" md-select-id="id" ng-repeat="deskAccount in vm.deskAccounts.rows">\n <td md-cell ng-if="deskAccount.userpic"><img class="avatar" alt="{{deskAccount.name}}" ng-src="api/users/{{deskAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!deskAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{deskAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(deskAccount, ev) : vm.createOrEditDeskAccount($event, deskAccount)" md-cell class="id ">{{deskAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(deskAccount, ev) : vm.createOrEditDeskAccount($event, deskAccount)" md-cell class="name ">{{deskAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(deskAccount, ev) : vm.createOrEditDeskAccount($event, deskAccount)" md-cell class="remoteUri ">{{deskAccount.remoteUri}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(deskAccount, ev) : vm.createOrEditDeskAccount($event, deskAccount)" md-cell class="username ">{{deskAccount.username}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(deskAccount, $event )" translate="INTEGRATIONS.EDIT_DESKACCOUNT">\n Edit DeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(deskAccount, $event )" translate="INTEGRATIONS.TEST_DESKACCOUNT">\n Test DeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(deskAccount, $event )" translate="INTEGRATIONS.DELETE_DESKACCOUNT">\n Delete DeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.deskAccounts.count}}" md-on-paginate="vm.getDeskAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / DESKACCOUNT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD DESKACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-deskAccount-button" ng-click="vm.createOrEditDeskAccount($event)" aria-label="add deskAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_DESKACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD DESKACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/integrations/views/deskAccounts/edit/configurations/dialog.html",'<md-dialog class="deskConfiguration-dialog" aria-label="New DeskConfiguration">\n <form name="deskConfigurationForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="" name="name" ng-model="vm.deskConfiguration.name" ng-required="true" autofocus>\n\n <div ng-messages="deskConfigurationForm[\'name\'].$error" ng-show="deskConfigurationForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CHANNEL">Channel</label>\n <md-select name="channel" ng-model="vm.deskConfiguration.channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="deskConfigurationForm[\'channel\'].$error" ng-show="deskConfigurationForm[\'channel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.deskConfiguration.type" required>\n\n <md-option ng-value="\'inbound\'"> {{ \'INTEGRATIONS.INBOUND_IN_QUEUE\' | translate }} </md-option>\n\n <md-option ng-value="\'outbound\'"> {{ \'INTEGRATIONS.OUTBOUND_CALL\' | translate }} </md-option>\n </md-select>\n <div ng-messages="deskConfigurationForm[\'type\'].$error" ng-show="deskConfigurationForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newDeskConfiguration" ng-click="vm.saveDeskConfiguration()" class="send-button md-accent md-raised" ng-disabled="deskConfigurationForm.$invalid || deskConfigurationForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newDeskConfiguration" ng-click="vm.addNewDeskConfiguration()" class="send-button md-accent md-raised" ng-disabled="deskConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_DESKCONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_DESKCONFIGURATION">\n ADD DESKCONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newDeskConfiguration" ng-click="vm.deleteDeskConfiguration($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/deskAccounts/edit/item/dialog.html",'<md-dialog class="deskAccount-item-dialog" aria-label="New Item">\n <form name="deskAccountItemForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <div ng-switch="vm.type">\n <div ng-switch-when="subject">\n \x3c!-- SUBJECT SECTION --\x3e\n <div ng-include="\'/subject.html\'"></div>\n \x3c!-- / SUBJECT SECTION --\x3e\n </div>\n <div ng-switch-when="description">\n \x3c!-- DESCRIPTION SECTION --\x3e\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="keyValue">Key Value</md-option>\n </md-select>\n <div ng-messages="deskAccountItemForm.type.$error" ng-show="deskAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="deskAccountItemForm.content.$error" ng-show="deskAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field\n is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.item.type == \'keyValue\'">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.item.key" required md-autofocus>\n <div ng-messages="deskAccountItemForm.key.$error" ng-show="deskAccountItemForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="keyType" ng-model="vm.item.keyType" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="deskAccountItemForm.keyType.$error" ng-show="deskAccountItemForm.keyType.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="keyContent" ng-model="vm.item.keyContent" required md-autofocus>\n <div ng-messages="deskAccountItemForm.keyContent.$error" ng-show="deskAccountItemForm.keyContent.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content\n field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="deskAccountItemForm.variableName.$error" ng-show="deskAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable\n name field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}\n </md-option>\n </md-select>\n </md-input-container>\n </div>\n \x3c!-- / DESCRIPTION SECTION --\x3e\n </div>\n <div ng-switch-when="field">\n \x3c!-- FIELD SECTION --\x3e\n <div ng-if="vm.accountConnected">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.FIELD">FIELD</label>\n \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\n </md-select>\n <div ng-messages="deskAccountItemForm.customField.$error" ng-show="deskAccountItemForm.customField.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\n </div>\n <div ng-if="!vm.accountConnected">\n <p>Account is not connected. Please check your configurations!</p>\n </div>\n \x3c!-- / FIELD SECTION --\x3e\n </div>\n <div ng-switch-default>\n <p>No Item</p>\n </div>\n </div>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="deskAccountItemForm.$invalid || deskAccountItemForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="deskAccountItemForm.$invalid || deskAccountItemForm.$pristine" aria-label="ADD" translate="INTEGRATIONS.ADD" translate-attr-aria-label="INTEGRATIONS.ADD">\n ADD\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newItem" ng-click="vm.deleteItem($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>\n\n<script type="text/ng-template" id="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n <md-option ng-if="vm.customField.options.length" value="picklist">Picklist</md-option>\n </md-select>\n <div ng-messages="deskAccountItemForm.type.$error" ng-show="deskAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <md-select name="option" ng-model="vm.item.content" required>\n <md-option ng-value="option.value" ng-repeat="option in vm.customField.options">{{option.name}}</md-option>\n </md-select>\n\n <div ng-messages="deskAccountItemForm.option.$error" ng-show="deskAccountItemForm.option.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\n <div ng-messages="deskAccountItemForm.content.$error" ng-show="deskAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="deskAccountItemForm.variableName.$error" ng-show="deskAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!--/ value --\x3e\n\n<\/script>\n\n<script type="text/ng-template" id="/subject.html">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="deskAccountItemForm.type.$error" ng-show="deskAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n \n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="deskAccountItemForm.content.$error"\n ng-show="deskAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="deskAccountItemForm.variableName.$error"\n ng-show="deskAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n <\/script>'),e.put("app/main/apps/integrations/views/deskAccounts/edit/view.html",'<div id="integrations-deskAccount" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-deskAccounts-button md-icon-button" aria-label="Go to deskAccounts" ng-click="vm.gotoDeskAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_DESKACCOUNTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="deskAccount-image" hide-xs>\n <img ng-src="assets/images/business/deskAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.deskAccount.id}}\n <span ng-if="vm.deskAccount.name">{{vm.deskAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.deskAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveDeskAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (configurationsForm.$invalid)" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="deskAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.deskAccount.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.deskAccount.type" required ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'integrationTab\'"> {{ \'INTEGRATIONS.INTEGRATION_TAB\' | translate }} </md-option>\n\n <md-option ng-value="\'newTab\'"> {{ \'INTEGRATIONS.NEW_TAB\' | translate }} </md-option>\n </md-select>\n <div ng-messages="generalForm[\'type\'].$error" ng-show="generalForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.deskAccount.remoteUri" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'remoteUri\'].$error" ng-show="generalForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.AUTHTYPE">AuthType</label>\n <md-select name="authType" ng-model="vm.deskAccount.authType" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'basic\'">Basic</md-option>\n </md-select>\n <div ng-messages="generalForm[\'authType\'].$error" ng-show="generalForm[\'authType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.AUTHTYPE_REQUIRED">AuthType field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.deskAccount.authType == \'basic\'" class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.deskAccount.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'username\'].$error" ng-show="generalForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.deskAccount.authType == \'basic\'">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.deskAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="generalForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.deskAccount.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="generalForm[\'serverUrl\'].$error" ng-show="generalForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.deskAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="deskAccount-detail-form-container configurations md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</div>\n </div>\n <div ng-controller="DeskAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.deskAccount, vm.crudPermissions)" layout="row">\n <md-card class="md-whiteframe-1dp" flex="30">\n <div layout="row" layout-align="center center">\n <md-subheader flex="75" class="md-no-sticky">{{ \'INTEGRATIONS.CONFIGURATIONS\' | translate }}</md-subheader>\n <md-button flex="25" ng-if="vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditDeskConfiguration($event)" class="md-icon-button" aria-label="create deskConfiguration">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n <md-list>\n <md-list-item layout="row" layout-align="center center" ng-repeat="deskConfiguration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedDeskConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getDeskConfiguration($index)">\n <span class="text-truncate" flex="80">{{ deskConfiguration.name }}</span>\n <md-menu ng-if="vm_cc.crudPermissions.canDelete">\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteDeskConfiguration($event, deskConfiguration)" translate="INTEGRATIONS.DELETE_DESKCONFIGURATION">\n Delete DeskConfiguration\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-list-item>\n </md-list>\n </md-card>\n <div flex></div>\n <md-card class="md-whiteframe-1dp" flex="65">\n <md-tabs ng-if="vm_cc.configurations.length" md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.SUBJECTS">SUBJECTS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.subject = query" on-collapse="vm_cc.query.subject = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditSubject($event)" aria-label="add subject" translate translate-attr-label="INTEGRATIONS.ADD_SUBJECT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedSubjects.length}} {{vm_cc.selectedSubjects.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedSubjects($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedSubjects">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="subject" md-select-id="id" ng-repeat="subject in vm_cc.subjects | filter: vm_cc.query.subject">\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="id ">{{subject.id}}</td>\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="type ">\n <span ng-if="subject.FieldId">{{subject.nameField || subject.idField}}</span>\n <span ng-if="!subject.FieldId">{{subject.type}}</span>\n </td>\n <td ng-switch="subject.type" ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell>\n <span ng-switch-when="string">{{subject.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{subject.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{subject.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{subject.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditSubject($event, subject)" translate="INTEGRATIONS.EDIT_SUBJECT">\n Edit Subject\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteSubjectConfirm($event, subject)" translate="INTEGRATIONS.DELETE_SUBJECT">\n Delete Subject\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.DESCRIPTIONS">DESCRIPTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.description = query" on-collapse="vm_cc.query.description = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditDescription($event)" aria-label="add description" translate translate-attr-label="INTEGRATIONS.ADD_DESCRIPTION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedDescriptions.length}} {{vm_cc.selectedDescriptions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedDescriptions($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedDescriptions">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="description" md-select-id="id" ng-repeat="description in vm_cc.descriptions | filter: vm_cc.query.description">\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="id ">{{description.id}}</td>\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="type ">\n <span ng-if="description.FieldId">{{description.nameField || description.idField}}</span>\n <span ng-if="!description.FieldId">{{description.type}}</span>\n </td>\n <td ng-switch="description.type" ng-click="vm_cc.createOrEditDescription($event, description)" md-cell>\n <span ng-switch-when="string">{{description.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{description.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{description.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{description.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditDescription($event, description)" translate="INTEGRATIONS.EDIT_DESCRIPTION">\n Edit Description\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteDescriptionConfirm($event, description)" translate="INTEGRATIONS.DELETE_DESCRIPTION">\n Delete Description\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.FIELDS">FIELDS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.field = query" on-collapse="vm_cc.query.field = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditField($event)" aria-label="add field" translate translate-attr-label="INTEGRATIONS.ADD_FIELD">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedFields.length}} {{vm_cc.selectedFields.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedFields($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedFields">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="field" md-select-id="id" ng-repeat="field in vm_cc.fields | filter: vm_cc.query.field">\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="id ">{{field.id}}</td>\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="type ">\n <span ng-if="field.FieldId">{{field.nameField || field.idField}}</span>\n <span ng-if="!field.FieldId">{{field.type}}</span>\n </td>\n <td ng-switch="field.type" ng-click="vm_cc.createOrEditField($event, field)" md-cell>\n <span ng-switch-when="string">{{field.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{field.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{field.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{field.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditField($event, field)" translate="INTEGRATIONS.EDIT_FIELD">\n Edit Field\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteFieldConfirm($event, field)" translate="INTEGRATIONS.DELETE_FIELD">\n Delete Field\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.TAGS">TAGS</span>\n </md-tab-label>\n <md-tab-body>\n <md-table-container class="md-whiteframe-1dp padding-20">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TAGS">Tags</label>\n <md-select ng-model="vm_cc.selectedTags" ng-change="vm_cc.selectTagsChanged($event)" multiple>\n <md-option ng-value="tag.id" ng-repeat="tag in vm_cc.tags">{{ tag.name }}</md-option>\n </md-select>\n </md-input-container>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.configurations.length && vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditDeskConfiguration($event)" layout="row" layout-sm="column" layout-align="center center" layout-wrap>\n <div class="padding-20 md-whiteframe-3dp md-accent-bg" layout="column" layout-align="center center">\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <span aria-label="add configuration" translate translate-attr-label="INTEGRATIONS.ADD_CONFIGURATION">ADD CONFIGURATION</span>\n </div>\n </div>\n </md-card>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/integrations/views/dynamics365Accounts/create/dialog.html",'<md-dialog class="dynamics365Account-dialog" aria-label="New Dynamics365Account">\n <form name="dynamics365AccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.dynamics365Account.name" ng-required="true" autofocus>\n\n <div ng-messages="dynamics365AccountForm[\'name\'].$error" ng-show="dynamics365AccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.dynamics365Account.username" ng-required="true">\n\n <div ng-messages="dynamics365AccountForm[\'username\'].$error" ng-show="dynamics365AccountForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.dynamics365Account.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="dynamics365AccountForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.dynamics365Account.remoteUri" ng-required="true">\n\n <div ng-messages="dynamics365AccountForm[\'remoteUri\'].$error" ng-show="dynamics365AccountForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TENANTID">TenantId</label>\n <input type="text" name="tenantId" ng-model="vm.dynamics365Account.tenantId" ng-required="true">\n\n <div ng-messages="dynamics365AccountForm[\'tenantId\'].$error" ng-show="dynamics365AccountForm[\'tenantId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TENANTID_REQUIRED">TenantId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTID">ClientId</label>\n <input type="text" name="clientId" ng-model="vm.dynamics365Account.clientId" ng-required="true">\n\n <div ng-messages="dynamics365AccountForm[\'clientId\'].$error" ng-show="dynamics365AccountForm[\'clientId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTID_REQUIRED">ClientId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTSECRET">ClientSecret</label>\n <input type="text" name="clientSecret" ng-model="vm.dynamics365Account.clientSecret" ng-required="true">\n\n <div ng-messages="dynamics365AccountForm[\'clientSecret\'].$error" ng-show="dynamics365AccountForm[\'clientSecret\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTSECRET_REQUIRED">ClientSecret field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.dynamics365Account.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="dynamics365AccountForm[\'serverUrl\'].$error" ng-show="dynamics365AccountForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.dynamics365Account.description">\n\n <div ng-messages="dynamics365AccountForm[\'description\'].$error" ng-show="dynamics365AccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newDynamics365Account" ng-click="vm.saveDynamics365Account()" class="send-button md-accent md-raised" ng-disabled="dynamics365AccountForm.$invalid || dynamics365AccountForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newDynamics365Account" ng-click="vm.addNewDynamics365Account()" class="send-button md-accent md-raised" ng-disabled="dynamics365AccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_DYNAMICS365ACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_DYNAMICS365ACCOUNT">\n ADD DYNAMICS365ACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newDynamics365Account" ng-click="vm.deleteDynamics365Account($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/dynamics365Accounts/dynamics365Accounts.html",'<div id="dynamics365Accounts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-heart" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="INTEGRATIONS.DYNAMICS365ACCOUNTS">Dynamics365Accounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedDynamics365Accounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedDynamics365Accounts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="INTEGRATIONS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-dynamics365Accounts-count">\n <span>{{vm.selectedDynamics365Accounts.length}}</span>\n <span translate="INTEGRATIONS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="INTEGRATIONS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllDynamics365Accounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectDynamics365Accounts()" translate="INTEGRATIONS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedDynamics365Accounts" csv-label="true" filename="dynamics365Accounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedDynamics365Accounts($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- DYNAMICS365ACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedDynamics365Accounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getDynamics365Accounts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'INTEGRATIONS.NAME\' | translate }}</th>\n <th md-column md-order-by="username">{{ \'INTEGRATIONS.USERNAME\' | translate }}</th>\n <th md-column md-order-by="remoteUri">{{ \'INTEGRATIONS.URI\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.dynamics365Accounts.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="dynamics365Account" md-select-id="id" ng-repeat="dynamics365Account in vm.dynamics365Accounts.rows">\n <td md-cell ng-if="dynamics365Account.userpic"><img class="avatar" alt="{{dynamics365Account.name}}" ng-src="api/users/{{dynamics365Account.id}}/avatar" /></td>\n <td md-cell ng-if="!dynamics365Account.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{dynamics365Account.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(dynamics365Account, ev) : vm.createOrEditDynamics365Account($event, dynamics365Account)" md-cell class="id ">{{dynamics365Account.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(dynamics365Account, ev) : vm.createOrEditDynamics365Account($event, dynamics365Account)" md-cell class="name ">{{dynamics365Account.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(dynamics365Account, ev) : vm.createOrEditDynamics365Account($event, dynamics365Account)" md-cell class="username ">{{dynamics365Account.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(dynamics365Account, ev) : vm.createOrEditDynamics365Account($event, dynamics365Account)" md-cell class="remoteUri ">{{dynamics365Account.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(dynamics365Account, $event )" translate="INTEGRATIONS.EDIT_DYNAMICS365ACCOUNT">\n Edit Dynamics365Account\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(dynamics365Account, $event )" translate="INTEGRATIONS.TEST_DYNAMICS365ACCOUNT">\n Test Dynamics365Account\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\n\n <md-button ng-click="vm.deleteconfirm(dynamics365Account, $event )" translate="INTEGRATIONS.DELETE_DYNAMICS365ACCOUNT">\n Delete Dynamics365Account\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.dynamics365Accounts.count}}" md-on-paginate="vm.getDynamics365Accounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / DYNAMICS365ACCOUNT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD DYNAMICS365ACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-dynamics365Account-button" ng-click="vm.createOrEditDynamics365Account($event)" aria-label="add dynamics365Account" translate translate-attr-aria-label="INTEGRATIONS.ADD_DYNAMICS365ACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD DYNAMICS365ACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/integrations/views/dynamics365Accounts/edit/configurations/dialog.html",'<md-dialog class="dynamics365Configuration-dialog" aria-label="New Dynamics365Configuration">\n <form name="dynamics365ConfigurationForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="" name="name" ng-model="vm.dynamics365Configuration.name" ng-required="true" autofocus>\n\n <div ng-messages="dynamics365ConfigurationForm[\'name\'].$error" ng-show="dynamics365ConfigurationForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CHANNEL">Channel</label>\n <md-select name="channel" ng-model="vm.dynamics365Configuration.channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="dynamics365ConfigurationForm[\'channel\'].$error" ng-show="dynamics365ConfigurationForm[\'channel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.dynamics365Configuration.type" required>\n\n <md-option ng-value="\'inbound\'"> {{ \'INTEGRATIONS.INBOUND_IN_QUEUE\' | translate }} </md-option>\n\n <md-option ng-value="\'outbound\'"> {{ \'INTEGRATIONS.OUTBOUND_CALL\' | translate }} </md-option>\n </md-select>\n <div ng-messages="dynamics365ConfigurationForm[\'type\'].$error" ng-show="dynamics365ConfigurationForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TICKETTYPE">TicketType</label>\n <md-select name="ticketType" ng-model="vm.dynamics365Configuration.ticketType" required>\n\n <md-option ng-value="\'incident\'"> {{ \'INTEGRATIONS.CASE\' | translate }} </md-option>\n\n <md-option ng-value="\'phonecall\'"> {{ \'INTEGRATIONS.PHONECALL\' | translate }} </md-option>\n </md-select>\n <div ng-messages="dynamics365ConfigurationForm[\'ticketType\'].$error" ng-show="dynamics365ConfigurationForm[\'ticketType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TICKETTYPE_REQUIRED">TicketType field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newDynamics365Configuration" ng-click="vm.saveDynamics365Configuration()" class="send-button md-accent md-raised" ng-disabled="dynamics365ConfigurationForm.$invalid || dynamics365ConfigurationForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newDynamics365Configuration" ng-click="vm.addNewDynamics365Configuration()" class="send-button md-accent md-raised" ng-disabled="dynamics365ConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_DYNAMICS365CONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_DYNAMICS365CONFIGURATION">\n ADD DYNAMICS365CONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newDynamics365Configuration" ng-click="vm.deleteDynamics365Configuration($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/dynamics365Accounts/edit/item/dialog.html",'<md-dialog class="dynamics365Account-item-dialog" aria-label="New Item">\n <form name="dynamics365AccountItemForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <div ng-switch="vm.type">\n <div ng-switch-when="subject">\n \x3c!-- SUBJECT SECTION --\x3e\n <div ng-include="\'/subject.html\'"></div>\n \x3c!-- / SUBJECT SECTION --\x3e\n </div>\n <div ng-switch-when="description">\n \x3c!-- DESCRIPTION SECTION --\x3e\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="keyValue">Key Value</md-option>\n </md-select>\n <div ng-messages="dynamics365AccountItemForm.type.$error" ng-show="dynamics365AccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="dynamics365AccountItemForm.content.$error" ng-show="dynamics365AccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field\n is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.item.type == \'keyValue\'">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.item.key" required md-autofocus>\n <div ng-messages="dynamics365AccountItemForm.key.$error" ng-show="dynamics365AccountItemForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="keyType" ng-model="vm.item.keyType" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="dynamics365AccountItemForm.keyType.$error" ng-show="dynamics365AccountItemForm.keyType.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="keyContent" ng-model="vm.item.keyContent" required md-autofocus>\n <div ng-messages="dynamics365AccountItemForm.keyContent.$error" ng-show="dynamics365AccountItemForm.keyContent.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content\n field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="dynamics365AccountItemForm.variableName.$error" ng-show="dynamics365AccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable\n name field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}\n </md-option>\n </md-select>\n </md-input-container>\n </div>\n \x3c!-- / DESCRIPTION SECTION --\x3e\n </div>\n <div ng-switch-when="field">\n \x3c!-- FIELD SECTION --\x3e\n <div ng-if="vm.accountConnected">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.FIELD">FIELD</label>\n \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\n </md-select>\n <div ng-messages="dynamics365AccountItemForm.customField.$error" ng-show="dynamics365AccountItemForm.customField.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\n </div>\n <div ng-if="!vm.accountConnected">\n <p>Account is not connected. Please check your configurations!</p>\n </div>\n \x3c!-- / FIELD SECTION --\x3e\n </div>\n <div ng-switch-default>\n <p>No Item</p>\n </div>\n </div>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="dynamics365AccountItemForm.$invalid || dynamics365AccountItemForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="dynamics365AccountItemForm.$invalid || dynamics365AccountItemForm.$pristine" aria-label="ADD" translate="INTEGRATIONS.ADD" translate-attr-aria-label="INTEGRATIONS.ADD">\n ADD\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newItem" ng-click="vm.deleteItem($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>\n\n<script type="text/ng-template" id="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n <md-option ng-if="vm.customField.options.length" value="picklist">Picklist</md-option>\n </md-select>\n <div ng-messages="dynamics365AccountItemForm.type.$error" ng-show="dynamics365AccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <md-select name="option" ng-model="vm.item.content" required>\n <md-option ng-value="option.value" ng-repeat="option in vm.customField.options">{{option.name}}</md-option>\n </md-select>\n\n <div ng-messages="dynamics365AccountItemForm.option.$error" ng-show="dynamics365AccountItemForm.option.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\n <div ng-messages="dynamics365AccountItemForm.content.$error" ng-show="dynamics365AccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="dynamics365AccountItemForm.variableName.$error" ng-show="dynamics365AccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!--/ value --\x3e\n\n<\/script>\n\n<script type="text/ng-template" id="/subject.html">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="dynamics365AccountItemForm.type.$error" ng-show="dynamics365AccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n \n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="dynamics365AccountItemForm.content.$error"\n ng-show="dynamics365AccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="dynamics365AccountItemForm.variableName.$error"\n ng-show="dynamics365AccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n <\/script>'),e.put("app/main/apps/integrations/views/dynamics365Accounts/edit/view.html",'<div id="integrations-dynamics365Account" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-dynamics365Accounts-button md-icon-button" aria-label="Go to dynamics365Accounts" ng-click="vm.gotoDynamics365Accounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_DYNAMICS365ACCOUNTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="dynamics365Account-image" hide-xs>\n <img ng-src="assets/images/business/dynamics365Accounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.dynamics365Account.id}}\n <span ng-if="vm.dynamics365Account.name">{{vm.dynamics365Account.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.dynamics365Account.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveDynamics365Account()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (configurationsForm.$invalid)" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="dynamics365Account-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.dynamics365Account.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.dynamics365Account.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'username\'].$error" ng-show="generalForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.dynamics365Account.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="generalForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.dynamics365Account.remoteUri" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'remoteUri\'].$error" ng-show="generalForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TENANTID">TenantId</label>\n <input type="text" name="tenantId" ng-model="vm.dynamics365Account.tenantId" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'tenantId\'].$error" ng-show="generalForm[\'tenantId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TENANTID_REQUIRED">TenantId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTID">ClientId</label>\n <input type="text" name="clientId" ng-model="vm.dynamics365Account.clientId" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'clientId\'].$error" ng-show="generalForm[\'clientId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTID_REQUIRED">ClientId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTSECRET">ClientSecret</label>\n <input type="text" name="clientSecret" ng-model="vm.dynamics365Account.clientSecret" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'clientSecret\'].$error" ng-show="generalForm[\'clientSecret\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTSECRET_REQUIRED">ClientSecret field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.dynamics365Account.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="generalForm[\'serverUrl\'].$error" ng-show="generalForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.dynamics365Account.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="dynamics365Account-detail-form-container configurations md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</div>\n </div>\n <div ng-controller="Dynamics365AccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.dynamics365Account, vm.crudPermissions)" layout="row">\n <md-card class="md-whiteframe-1dp" flex="30">\n <div layout="row" layout-align="center center">\n <md-subheader flex="75" class="md-no-sticky">{{ \'INTEGRATIONS.CONFIGURATIONS\' | translate }}</md-subheader>\n <md-button flex="25" ng-if="vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditDynamics365Configuration($event)" class="md-icon-button" aria-label="create dynamics365Configuration">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n <md-list>\n <md-list-item layout="row" layout-align="center center" ng-repeat="dynamics365Configuration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedDynamics365Configuration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getDynamics365Configuration($index)">\n <span class="text-truncate" flex="80">{{ dynamics365Configuration.name }}</span>\n <md-menu ng-if="vm_cc.crudPermissions.canDelete">\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteDynamics365Configuration($event, dynamics365Configuration)" translate="INTEGRATIONS.DELETE_DYNAMICS365CONFIGURATION">\n Delete Dynamics365Configuration\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-list-item>\n </md-list>\n </md-card>\n <div flex></div>\n <md-card class="md-whiteframe-1dp" flex="65">\n <md-tabs ng-if="vm_cc.configurations.length" md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.SUBJECTS">SUBJECTS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.subject = query" on-collapse="vm_cc.query.subject = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditSubject($event)" aria-label="add subject" translate translate-attr-label="INTEGRATIONS.ADD_SUBJECT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedSubjects.length}} {{vm_cc.selectedSubjects.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedSubjects($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedSubjects">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="subject" md-select-id="id" ng-repeat="subject in vm_cc.subjects | filter: vm_cc.query.subject">\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="id ">{{subject.id}}</td>\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="type ">\n <span ng-if="subject.FieldId">{{subject.nameField || subject.idField}}</span>\n <span ng-if="!subject.FieldId">{{subject.type}}</span>\n </td>\n <td ng-switch="subject.type" ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell>\n <span ng-switch-when="string">{{subject.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{subject.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{subject.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{subject.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditSubject($event, subject)" translate="INTEGRATIONS.EDIT_SUBJECT">\n Edit Subject\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteSubjectConfirm($event, subject)" translate="INTEGRATIONS.DELETE_SUBJECT">\n Delete Subject\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.DESCRIPTIONS">DESCRIPTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.description = query" on-collapse="vm_cc.query.description = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditDescription($event)" aria-label="add description" translate translate-attr-label="INTEGRATIONS.ADD_DESCRIPTION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedDescriptions.length}} {{vm_cc.selectedDescriptions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedDescriptions($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedDescriptions">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="description" md-select-id="id" ng-repeat="description in vm_cc.descriptions | filter: vm_cc.query.description">\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="id ">{{description.id}}</td>\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="type ">\n <span ng-if="description.FieldId">{{description.nameField || description.idField}}</span>\n <span ng-if="!description.FieldId">{{description.type}}</span>\n </td>\n <td ng-switch="description.type" ng-click="vm_cc.createOrEditDescription($event, description)" md-cell>\n <span ng-switch-when="string">{{description.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{description.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{description.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{description.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditDescription($event, description)" translate="INTEGRATIONS.EDIT_DESCRIPTION">\n Edit Description\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteDescriptionConfirm($event, description)" translate="INTEGRATIONS.DELETE_DESCRIPTION">\n Delete Description\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.FIELDS">FIELDS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.field = query" on-collapse="vm_cc.query.field = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditField($event)" aria-label="add field" translate translate-attr-label="INTEGRATIONS.ADD_FIELD">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedFields.length}} {{vm_cc.selectedFields.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedFields($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedFields">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="field" md-select-id="id" ng-repeat="field in vm_cc.fields | filter: vm_cc.query.field">\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="id ">{{field.id}}</td>\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="type ">\n <span ng-if="field.FieldId">{{field.nameField || field.idField}}</span>\n <span ng-if="!field.FieldId">{{field.type}}</span>\n </td>\n <td ng-switch="field.type" ng-click="vm_cc.createOrEditField($event, field)" md-cell>\n <span ng-switch-when="string">{{field.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{field.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{field.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{field.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditField($event, field)" translate="INTEGRATIONS.EDIT_FIELD">\n Edit Field\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteFieldConfirm($event, field)" translate="INTEGRATIONS.DELETE_FIELD">\n Delete Field\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.configurations.length && vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditDynamics365Configuration($event)" layout="row" layout-sm="column" layout-align="center center" layout-wrap>\n <div class="padding-20 md-whiteframe-3dp md-accent-bg" layout="column" layout-align="center center">\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <span aria-label="add configuration" translate translate-attr-label="INTEGRATIONS.ADD_CONFIGURATION">ADD CONFIGURATION</span>\n </div>\n </div>\n </md-card>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/integrations/views/freshdeskAccounts/create/dialog.html",'<md-dialog class="freshdeskAccount-dialog" aria-label="New FreshdeskAccount">\n <form name="freshdeskAccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.freshdeskAccount.name" ng-required="true" autofocus>\n\n <div ng-messages="freshdeskAccountForm[\'name\'].$error" ng-show="freshdeskAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.freshdeskAccount.username" ng-required="true">\n\n <div ng-messages="freshdeskAccountForm[\'username\'].$error" ng-show="freshdeskAccountForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.freshdeskAccount.remoteUri" ng-required="true">\n\n <div ng-messages="freshdeskAccountForm[\'remoteUri\'].$error" ng-show="freshdeskAccountForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.APIKEY">ApiKey</label>\n <input type="text" name="apiKey" ng-model="vm.freshdeskAccount.apiKey" ng-required="true">\n\n <div ng-messages="freshdeskAccountForm[\'apiKey\'].$error" ng-show="freshdeskAccountForm[\'apiKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.APIKEY_REQUIRED">ApiKey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.freshdeskAccount.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="freshdeskAccountForm[\'serverUrl\'].$error" ng-show="freshdeskAccountForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.freshdeskAccount.description">\n\n <div ng-messages="freshdeskAccountForm[\'description\'].$error" ng-show="freshdeskAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newFreshdeskAccount" ng-click="vm.saveFreshdeskAccount()" class="send-button md-accent md-raised" ng-disabled="freshdeskAccountForm.$invalid || freshdeskAccountForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newFreshdeskAccount" ng-click="vm.addNewFreshdeskAccount()" class="send-button md-accent md-raised" ng-disabled="freshdeskAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_FRESHDESKACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_FRESHDESKACCOUNT">\n ADD FRESHDESKACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newFreshdeskAccount" ng-click="vm.deleteFreshdeskAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/freshdeskAccounts/edit/configurations/dialog.html",'<md-dialog class="freshdeskConfiguration-dialog" aria-label="New FreshdeskConfiguration">\n <form name="freshdeskConfigurationForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="" name="name" ng-model="vm.freshdeskConfiguration.name" ng-required="true" autofocus>\n\n <div ng-messages="freshdeskConfigurationForm[\'name\'].$error" ng-show="freshdeskConfigurationForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CHANNEL">Channel</label>\n <md-select name="channel" ng-model="vm.freshdeskConfiguration.channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="freshdeskConfigurationForm[\'channel\'].$error" ng-show="freshdeskConfigurationForm[\'channel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.freshdeskConfiguration.type" required>\n\n <md-option ng-value="\'inbound\'"> {{ \'INTEGRATIONS.INBOUND_IN_QUEUE\' | translate }} </md-option>\n\n <md-option ng-value="\'outbound\'"> {{ \'INTEGRATIONS.OUTBOUND_CALL\' | translate }} </md-option>\n </md-select>\n <div ng-messages="freshdeskConfigurationForm[\'type\'].$error" ng-show="freshdeskConfigurationForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newFreshdeskConfiguration" ng-click="vm.saveFreshdeskConfiguration()" class="send-button md-accent md-raised" ng-disabled="freshdeskConfigurationForm.$invalid || freshdeskConfigurationForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newFreshdeskConfiguration" ng-click="vm.addNewFreshdeskConfiguration()" class="send-button md-accent md-raised" ng-disabled="freshdeskConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_FRESHDESKCONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_FRESHDESKCONFIGURATION">\n ADD FRESHDESKCONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newFreshdeskConfiguration" ng-click="vm.deleteFreshdeskConfiguration($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/freshdeskAccounts/edit/item/dialog.html",'<md-dialog class="freshdeskAccount-item-dialog" aria-label="New Item">\n <form name="freshdeskAccountItemForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <div ng-switch="vm.type">\n <div ng-switch-when="subject">\n \x3c!-- SUBJECT SECTION --\x3e\n <div ng-include="\'/subject.html\'"></div>\n \x3c!-- / SUBJECT SECTION --\x3e\n </div>\n <div ng-switch-when="description">\n \x3c!-- DESCRIPTION SECTION --\x3e\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="keyValue">Key Value</md-option>\n </md-select>\n <div ng-messages="freshdeskAccountItemForm.type.$error" ng-show="freshdeskAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="freshdeskAccountItemForm.content.$error" ng-show="freshdeskAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field\n is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.item.type == \'keyValue\'">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.item.key" required md-autofocus>\n <div ng-messages="freshdeskAccountItemForm.key.$error" ng-show="freshdeskAccountItemForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="keyType" ng-model="vm.item.keyType" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="freshdeskAccountItemForm.keyType.$error" ng-show="freshdeskAccountItemForm.keyType.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="keyContent" ng-model="vm.item.keyContent" required md-autofocus>\n <div ng-messages="freshdeskAccountItemForm.keyContent.$error" ng-show="freshdeskAccountItemForm.keyContent.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content\n field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="freshdeskAccountItemForm.variableName.$error" ng-show="freshdeskAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable\n name field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}\n </md-option>\n </md-select>\n </md-input-container>\n </div>\n \x3c!-- / DESCRIPTION SECTION --\x3e\n </div>\n <div ng-switch-when="field">\n \x3c!-- FIELD SECTION --\x3e\n <div ng-if="vm.accountConnected">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.FIELD">FIELD</label>\n \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\n </md-select>\n <div ng-messages="freshdeskAccountItemForm.customField.$error" ng-show="freshdeskAccountItemForm.customField.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\n </div>\n <div ng-if="!vm.accountConnected">\n <p>Account is not connected. Please check your configurations!</p>\n </div>\n \x3c!-- / FIELD SECTION --\x3e\n </div>\n <div ng-switch-default>\n <p>No Item</p>\n </div>\n </div>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="freshdeskAccountItemForm.$invalid || freshdeskAccountItemForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="freshdeskAccountItemForm.$invalid || freshdeskAccountItemForm.$pristine" aria-label="ADD" translate="INTEGRATIONS.ADD" translate-attr-aria-label="INTEGRATIONS.ADD">\n ADD\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newItem" ng-click="vm.deleteItem($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>\n\n<script type="text/ng-template" id="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n <md-option ng-if="vm.customField.options.length" value="picklist">Picklist</md-option>\n </md-select>\n <div ng-messages="freshdeskAccountItemForm.type.$error" ng-show="freshdeskAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <md-select name="option" ng-model="vm.item.content" required>\n <md-option ng-value="option.value" ng-repeat="option in vm.customField.options">{{option.name}}</md-option>\n </md-select>\n\n <div ng-messages="freshdeskAccountItemForm.option.$error" ng-show="freshdeskAccountItemForm.option.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\n <div ng-messages="freshdeskAccountItemForm.content.$error" ng-show="freshdeskAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="freshdeskAccountItemForm.variableName.$error" ng-show="freshdeskAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!--/ value --\x3e\n\n<\/script>\n\n<script type="text/ng-template" id="/subject.html">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="freshdeskAccountItemForm.type.$error" ng-show="freshdeskAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n \n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="freshdeskAccountItemForm.content.$error"\n ng-show="freshdeskAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="freshdeskAccountItemForm.variableName.$error"\n ng-show="freshdeskAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n <\/script>'),e.put("app/main/apps/integrations/views/freshdeskAccounts/edit/view.html",'<div id="integrations-freshdeskAccount" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-freshdeskAccounts-button md-icon-button" aria-label="Go to freshdeskAccounts" ng-click="vm.gotoFreshdeskAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_FRESHDESKACCOUNTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="freshdeskAccount-image" hide-xs>\n <img ng-src="assets/images/business/freshdeskAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.freshdeskAccount.id}}\n <span ng-if="vm.freshdeskAccount.name">{{vm.freshdeskAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.freshdeskAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveFreshdeskAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (configurationsForm.$invalid)" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="freshdeskAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.freshdeskAccount.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.freshdeskAccount.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'username\'].$error" ng-show="generalForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.freshdeskAccount.remoteUri" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'remoteUri\'].$error" ng-show="generalForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.APIKEY">ApiKey</label>\n <input type="text" name="apiKey" ng-model="vm.freshdeskAccount.apiKey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'apiKey\'].$error" ng-show="generalForm[\'apiKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.APIKEY_REQUIRED">ApiKey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.freshdeskAccount.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="generalForm[\'serverUrl\'].$error" ng-show="generalForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.freshdeskAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="freshdeskAccount-detail-form-container configurations md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</div>\n </div>\n <div ng-controller="FreshdeskAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.freshdeskAccount, vm.crudPermissions)" layout="row">\n <md-card class="md-whiteframe-1dp" flex="30">\n <div layout="row" layout-align="center center">\n <md-subheader flex="75" class="md-no-sticky">{{ \'INTEGRATIONS.CONFIGURATIONS\' | translate }}</md-subheader>\n <md-button flex="25" ng-if="vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditFreshdeskConfiguration($event)" class="md-icon-button" aria-label="create freshdeskConfiguration">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n <md-list>\n <md-list-item layout="row" layout-align="center center" ng-repeat="freshdeskConfiguration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedFreshdeskConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getFreshdeskConfiguration($index)">\n <span class="text-truncate" flex="80">{{ freshdeskConfiguration.name }}</span>\n <md-menu ng-if="vm_cc.crudPermissions.canDelete">\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteFreshdeskConfiguration($event, freshdeskConfiguration)" translate="INTEGRATIONS.DELETE_FRESHDESKCONFIGURATION">\n Delete FreshdeskConfiguration\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-list-item>\n </md-list>\n </md-card>\n <div flex></div>\n <md-card class="md-whiteframe-1dp" flex="65">\n <md-tabs ng-if="vm_cc.configurations.length" md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.SUBJECTS">SUBJECTS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.subject = query" on-collapse="vm_cc.query.subject = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditSubject($event)" aria-label="add subject" translate translate-attr-label="INTEGRATIONS.ADD_SUBJECT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedSubjects.length}} {{vm_cc.selectedSubjects.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedSubjects($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedSubjects">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="subject" md-select-id="id" ng-repeat="subject in vm_cc.subjects | filter: vm_cc.query.subject">\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="id ">{{subject.id}}</td>\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="type ">\n <span ng-if="subject.FieldId">{{subject.nameField || subject.idField}}</span>\n <span ng-if="!subject.FieldId">{{subject.type}}</span>\n </td>\n <td ng-switch="subject.type" ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell>\n <span ng-switch-when="string">{{subject.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{subject.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{subject.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{subject.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditSubject($event, subject)" translate="INTEGRATIONS.EDIT_SUBJECT">\n Edit Subject\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteSubjectConfirm($event, subject)" translate="INTEGRATIONS.DELETE_SUBJECT">\n Delete Subject\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.DESCRIPTIONS">DESCRIPTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.description = query" on-collapse="vm_cc.query.description = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditDescription($event)" aria-label="add description" translate translate-attr-label="INTEGRATIONS.ADD_DESCRIPTION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedDescriptions.length}} {{vm_cc.selectedDescriptions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedDescriptions($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedDescriptions">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="description" md-select-id="id" ng-repeat="description in vm_cc.descriptions | filter: vm_cc.query.description">\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="id ">{{description.id}}</td>\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="type ">\n <span ng-if="description.FieldId">{{description.nameField || description.idField}}</span>\n <span ng-if="!description.FieldId">{{description.type}}</span>\n </td>\n <td ng-switch="description.type" ng-click="vm_cc.createOrEditDescription($event, description)" md-cell>\n <span ng-switch-when="string">{{description.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{description.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{description.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{description.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditDescription($event, description)" translate="INTEGRATIONS.EDIT_DESCRIPTION">\n Edit Description\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteDescriptionConfirm($event, description)" translate="INTEGRATIONS.DELETE_DESCRIPTION">\n Delete Description\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.FIELDS">FIELDS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.field = query" on-collapse="vm_cc.query.field = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditField($event)" aria-label="add field" translate translate-attr-label="INTEGRATIONS.ADD_FIELD">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedFields.length}} {{vm_cc.selectedFields.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedFields($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedFields">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="field" md-select-id="id" ng-repeat="field in vm_cc.fields | filter: vm_cc.query.field">\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="id ">{{field.id}}</td>\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="type ">\n <span ng-if="field.FieldId">{{field.nameField || field.idField}}</span>\n <span ng-if="!field.FieldId">{{field.type}}</span>\n </td>\n <td ng-switch="field.type" ng-click="vm_cc.createOrEditField($event, field)" md-cell>\n <span ng-switch-when="string">{{field.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{field.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{field.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{field.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditField($event, field)" translate="INTEGRATIONS.EDIT_FIELD">\n Edit Field\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteFieldConfirm($event, field)" translate="INTEGRATIONS.DELETE_FIELD">\n Delete Field\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.TAGS">TAGS</span>\n </md-tab-label>\n <md-tab-body>\n <md-table-container class="md-whiteframe-1dp padding-20">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TAGS">Tags</label>\n <md-select ng-model="vm_cc.selectedTags" ng-change="vm_cc.selectTagsChanged($event)" multiple>\n <md-option ng-value="tag.id" ng-repeat="tag in vm_cc.tags">{{ tag.name }}</md-option>\n </md-select>\n </md-input-container>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.configurations.length && vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditFreshdeskConfiguration($event)" layout="row" layout-sm="column" layout-align="center center" layout-wrap>\n <div class="padding-20 md-whiteframe-3dp md-accent-bg" layout="column" layout-align="center center">\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <span aria-label="add configuration" translate translate-attr-label="INTEGRATIONS.ADD_CONFIGURATION">ADD CONFIGURATION</span>\n </div>\n </div>\n </md-card>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/integrations/views/freshdeskAccounts/freshdeskAccounts.html",'<div id="freshdeskAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-heart" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="INTEGRATIONS.FRESHDESKACCOUNTS">FreshdeskAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedFreshdeskAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedFreshdeskAccounts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="INTEGRATIONS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-freshdeskAccounts-count">\n <span>{{vm.selectedFreshdeskAccounts.length}}</span>\n <span translate="INTEGRATIONS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="INTEGRATIONS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllFreshdeskAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectFreshdeskAccounts()" translate="INTEGRATIONS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedFreshdeskAccounts" csv-label="true" filename="freshdeskAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedFreshdeskAccounts($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- FRESHDESKACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedFreshdeskAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getFreshdeskAccounts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'INTEGRATIONS.NAME\' | translate }}</th>\n <th md-column md-order-by="username">{{ \'INTEGRATIONS.USERNAME\' | translate }}</th>\n <th md-column md-order-by="remoteUri">{{ \'INTEGRATIONS.URI\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.freshdeskAccounts.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="freshdeskAccount" md-select-id="id" ng-repeat="freshdeskAccount in vm.freshdeskAccounts.rows">\n <td md-cell ng-if="freshdeskAccount.userpic"><img class="avatar" alt="{{freshdeskAccount.name}}" ng-src="api/users/{{freshdeskAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!freshdeskAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{freshdeskAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshdeskAccount, ev) : vm.createOrEditFreshdeskAccount($event, freshdeskAccount)" md-cell class="id ">{{freshdeskAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshdeskAccount, ev) : vm.createOrEditFreshdeskAccount($event, freshdeskAccount)" md-cell class="name ">{{freshdeskAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshdeskAccount, ev) : vm.createOrEditFreshdeskAccount($event, freshdeskAccount)" md-cell class="username ">{{freshdeskAccount.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshdeskAccount, ev) : vm.createOrEditFreshdeskAccount($event, freshdeskAccount)" md-cell class="remoteUri ">{{freshdeskAccount.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(freshdeskAccount, $event )" translate="INTEGRATIONS.EDIT_FRESHDESKACCOUNT">\n Edit FreshdeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(freshdeskAccount, $event )" translate="INTEGRATIONS.TEST_FRESHDESKACCOUNT">\n Test FreshdeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(freshdeskAccount, $event )" translate="INTEGRATIONS.DELETE_FRESHDESKACCOUNT">\n Delete FreshdeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.freshdeskAccounts.count}}" md-on-paginate="vm.getFreshdeskAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / FRESHDESKACCOUNT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD FRESHDESKACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-freshdeskAccount-button" ng-click="vm.createOrEditFreshdeskAccount($event)" aria-label="add freshdeskAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_FRESHDESKACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD FRESHDESKACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/integrations/views/freshsalesAccounts/create/dialog.html",'<md-dialog class="freshsalesAccount-dialog" aria-label="New FreshsalesAccount">\n <form name="freshsalesAccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.freshsalesAccount.name" ng-required="true" autofocus>\n\n <div ng-messages="freshsalesAccountForm[\'name\'].$error" ng-show="freshsalesAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.freshsalesAccount.username" ng-required="true">\n\n <div ng-messages="freshsalesAccountForm[\'username\'].$error" ng-show="freshsalesAccountForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.freshsalesAccount.remoteUri" ng-required="true">\n\n <div ng-messages="freshsalesAccountForm[\'remoteUri\'].$error" ng-show="freshsalesAccountForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.APIKEY">ApiKey</label>\n <input type="text" name="apiKey" ng-model="vm.freshsalesAccount.apiKey" ng-required="true">\n\n <div ng-messages="freshsalesAccountForm[\'apiKey\'].$error" ng-show="freshsalesAccountForm[\'apiKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.APIKEY_REQUIRED">ApiKey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.freshsalesAccount.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="freshsalesAccountForm[\'serverUrl\'].$error" ng-show="freshsalesAccountForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.freshsalesAccount.description">\n\n <div ng-messages="freshsalesAccountForm[\'description\'].$error" ng-show="freshsalesAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newFreshsalesAccount" ng-click="vm.saveFreshsalesAccount()" class="send-button md-accent md-raised" ng-disabled="freshsalesAccountForm.$invalid || freshsalesAccountForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newFreshsalesAccount" ng-click="vm.addNewFreshsalesAccount()" class="send-button md-accent md-raised" ng-disabled="freshsalesAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_FRESHSALESACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_FRESHSALESACCOUNT">\n ADD FRESHSALESACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newFreshsalesAccount" ng-click="vm.deleteFreshsalesAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/freshsalesAccounts/edit/configurations/dialog.html",'<md-dialog class="freshsalesConfiguration-dialog" aria-label="New FreshsalesConfiguration">\n <form name="freshsalesConfigurationForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="" name="name" ng-model="vm.freshsalesConfiguration.name" ng-required="true" autofocus>\n\n <div ng-messages="freshsalesConfigurationForm[\'name\'].$error" ng-show="freshsalesConfigurationForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CHANNEL">Channel</label>\n <md-select name="channel" ng-model="vm.freshsalesConfiguration.channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="freshsalesConfigurationForm[\'channel\'].$error" ng-show="freshsalesConfigurationForm[\'channel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.freshsalesConfiguration.type" required>\n\n <md-option ng-value="\'inbound\'"> {{ \'INTEGRATIONS.INBOUND_IN_QUEUE\' | translate }} </md-option>\n\n <md-option ng-value="\'outbound\'"> {{ \'INTEGRATIONS.OUTBOUND_CALL\' | translate }} </md-option>\n </md-select>\n <div ng-messages="freshsalesConfigurationForm[\'type\'].$error" ng-show="freshsalesConfigurationForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newFreshsalesConfiguration" ng-click="vm.saveFreshsalesConfiguration()" class="send-button md-accent md-raised" ng-disabled="freshsalesConfigurationForm.$invalid || freshsalesConfigurationForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newFreshsalesConfiguration" ng-click="vm.addNewFreshsalesConfiguration()" class="send-button md-accent md-raised" ng-disabled="freshsalesConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_FRESHSALESCONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_FRESHSALESCONFIGURATION">\n ADD FRESHSALESCONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newFreshsalesConfiguration" ng-click="vm.deleteFreshsalesConfiguration($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/freshsalesAccounts/edit/item/dialog.html",'<md-dialog class="freshsalesAccount-item-dialog" aria-label="New Item">\n <form name="freshsalesAccountItemForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <div ng-switch="vm.type">\n <div ng-switch-when="subject">\n \x3c!-- SUBJECT SECTION --\x3e\n <div ng-include="\'/subject.html\'"></div>\n \x3c!-- / SUBJECT SECTION --\x3e\n </div>\n <div ng-switch-when="description">\n \x3c!-- DESCRIPTION SECTION --\x3e\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="keyValue">Key Value</md-option>\n </md-select>\n <div ng-messages="freshsalesAccountItemForm.type.$error" ng-show="freshsalesAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="freshsalesAccountItemForm.content.$error" ng-show="freshsalesAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field\n is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.item.type == \'keyValue\'">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.item.key" required md-autofocus>\n <div ng-messages="freshsalesAccountItemForm.key.$error" ng-show="freshsalesAccountItemForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="keyType" ng-model="vm.item.keyType" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="freshsalesAccountItemForm.keyType.$error" ng-show="freshsalesAccountItemForm.keyType.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="keyContent" ng-model="vm.item.keyContent" required md-autofocus>\n <div ng-messages="freshsalesAccountItemForm.keyContent.$error" ng-show="freshsalesAccountItemForm.keyContent.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content\n field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="freshsalesAccountItemForm.variableName.$error" ng-show="freshsalesAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable\n name field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}\n </md-option>\n </md-select>\n </md-input-container>\n </div>\n \x3c!-- / DESCRIPTION SECTION --\x3e\n </div>\n <div ng-switch-when="field">\n \x3c!-- FIELD SECTION --\x3e\n <div ng-if="vm.accountConnected">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.FIELD">FIELD</label>\n \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\n </md-select>\n <div ng-messages="freshsalesAccountItemForm.customField.$error" ng-show="freshsalesAccountItemForm.customField.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\n </div>\n <div ng-if="!vm.accountConnected">\n <p>Account is not connected. Please check your configurations!</p>\n </div>\n \x3c!-- / FIELD SECTION --\x3e\n </div>\n <div ng-switch-default>\n <p>No Item</p>\n </div>\n </div>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="freshsalesAccountItemForm.$invalid || freshsalesAccountItemForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="freshsalesAccountItemForm.$invalid || freshsalesAccountItemForm.$pristine" aria-label="ADD" translate="INTEGRATIONS.ADD" translate-attr-aria-label="INTEGRATIONS.ADD">\n ADD\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newItem" ng-click="vm.deleteItem($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>\n\n<script type="text/ng-template" id="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n <md-option ng-if="vm.customField.options.length" value="picklist">Picklist</md-option>\n </md-select>\n <div ng-messages="freshsalesAccountItemForm.type.$error" ng-show="freshsalesAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <md-select name="option" ng-model="vm.item.content" required>\n <md-option ng-value="option.value" ng-repeat="option in vm.customField.options">{{option.name}}</md-option>\n </md-select>\n\n <div ng-messages="freshsalesAccountItemForm.option.$error" ng-show="freshsalesAccountItemForm.option.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\n <div ng-messages="freshsalesAccountItemForm.content.$error" ng-show="freshsalesAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="freshsalesAccountItemForm.variableName.$error" ng-show="freshsalesAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!--/ value --\x3e\n\n<\/script>\n\n<script type="text/ng-template" id="/subject.html">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="freshsalesAccountItemForm.type.$error" ng-show="freshsalesAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n \n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="freshsalesAccountItemForm.content.$error"\n ng-show="freshsalesAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="freshsalesAccountItemForm.variableName.$error"\n ng-show="freshsalesAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n <\/script>'),e.put("app/main/apps/integrations/views/freshsalesAccounts/edit/view.html",'<div id="integrations-freshsalesAccount" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-freshsalesAccounts-button md-icon-button" aria-label="Go to freshsalesAccounts" ng-click="vm.gotoFreshsalesAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_FRESHSALESACCOUNTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="freshsalesAccount-image" hide-xs>\n <img ng-src="assets/images/business/freshsalesAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.freshsalesAccount.id}}\n <span ng-if="vm.freshsalesAccount.name">{{vm.freshsalesAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.freshsalesAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveFreshsalesAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (configurationsForm.$invalid)" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="freshsalesAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.freshsalesAccount.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.freshsalesAccount.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'username\'].$error" ng-show="generalForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.freshsalesAccount.remoteUri" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'remoteUri\'].$error" ng-show="generalForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.APIKEY">ApiKey</label>\n <input type="text" name="apiKey" ng-model="vm.freshsalesAccount.apiKey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'apiKey\'].$error" ng-show="generalForm[\'apiKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.APIKEY_REQUIRED">ApiKey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.freshsalesAccount.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="generalForm[\'serverUrl\'].$error" ng-show="generalForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.freshsalesAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="freshsalesAccount-detail-form-container configurations md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</div>\n </div>\n <div ng-controller="FreshsalesAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.freshsalesAccount, vm.crudPermissions)" layout="row">\n <md-card class="md-whiteframe-1dp" flex="30">\n <div layout="row" layout-align="center center">\n <md-subheader flex="75" class="md-no-sticky">{{ \'INTEGRATIONS.CONFIGURATIONS\' | translate }}</md-subheader>\n <md-button flex="25" ng-if="vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditFreshsalesConfiguration($event)" class="md-icon-button" aria-label="create freshsalesConfiguration">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n <md-list>\n <md-list-item layout="row" layout-align="center center" ng-repeat="freshsalesConfiguration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedFreshsalesConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getFreshsalesConfiguration($index)">\n <span class="text-truncate" flex="80">{{ freshsalesConfiguration.name }}</span>\n <md-menu ng-if="vm_cc.crudPermissions.canDelete">\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteFreshsalesConfiguration($event, freshsalesConfiguration)" translate="INTEGRATIONS.DELETE_FRESHSALESCONFIGURATION">\n Delete FreshsalesConfiguration\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-list-item>\n </md-list>\n </md-card>\n <div flex></div>\n <md-card class="md-whiteframe-1dp" flex="65">\n <md-tabs ng-if="vm_cc.configurations.length" md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.SUBJECTS">SUBJECTS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.subject = query" on-collapse="vm_cc.query.subject = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditSubject($event)" aria-label="add subject" translate translate-attr-label="INTEGRATIONS.ADD_SUBJECT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedSubjects.length}} {{vm_cc.selectedSubjects.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedSubjects($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedSubjects">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="subject" md-select-id="id" ng-repeat="subject in vm_cc.subjects | filter: vm_cc.query.subject">\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="id ">{{subject.id}}</td>\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="type ">\n <span ng-if="subject.FieldId">{{subject.nameField || subject.idField}}</span>\n <span ng-if="!subject.FieldId">{{subject.type}}</span>\n </td>\n <td ng-switch="subject.type" ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell>\n <span ng-switch-when="string">{{subject.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{subject.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{subject.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{subject.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditSubject($event, subject)" translate="INTEGRATIONS.EDIT_SUBJECT">\n Edit Subject\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteSubjectConfirm($event, subject)" translate="INTEGRATIONS.DELETE_SUBJECT">\n Delete Subject\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.DESCRIPTIONS">DESCRIPTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.description = query" on-collapse="vm_cc.query.description = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditDescription($event)" aria-label="add description" translate translate-attr-label="INTEGRATIONS.ADD_DESCRIPTION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedDescriptions.length}} {{vm_cc.selectedDescriptions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedDescriptions($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedDescriptions">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="description" md-select-id="id" ng-repeat="description in vm_cc.descriptions | filter: vm_cc.query.description">\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="id ">{{description.id}}</td>\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="type ">\n <span ng-if="description.FieldId">{{description.nameField || description.idField}}</span>\n <span ng-if="!description.FieldId">{{description.type}}</span>\n </td>\n <td ng-switch="description.type" ng-click="vm_cc.createOrEditDescription($event, description)" md-cell>\n <span ng-switch-when="string">{{description.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{description.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{description.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{description.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditDescription($event, description)" translate="INTEGRATIONS.EDIT_DESCRIPTION">\n Edit Description\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteDescriptionConfirm($event, description)" translate="INTEGRATIONS.DELETE_DESCRIPTION">\n Delete Description\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.configurations.length && vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditFreshsalesConfiguration($event)" layout="row" layout-sm="column" layout-align="center center" layout-wrap>\n <div class="padding-20 md-whiteframe-3dp md-accent-bg" layout="column" layout-align="center center">\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <span aria-label="add configuration" translate translate-attr-label="INTEGRATIONS.ADD_CONFIGURATION">ADD CONFIGURATION</span>\n </div>\n </div>\n </md-card>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/integrations/views/freshsalesAccounts/freshsalesAccounts.html",'<div id="freshsalesAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-heart" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="INTEGRATIONS.FRESHSALESACCOUNTS">FreshsalesAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedFreshsalesAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedFreshsalesAccounts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="INTEGRATIONS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-freshsalesAccounts-count">\n <span>{{vm.selectedFreshsalesAccounts.length}}</span>\n <span translate="INTEGRATIONS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="INTEGRATIONS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllFreshsalesAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectFreshsalesAccounts()" translate="INTEGRATIONS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedFreshsalesAccounts" csv-label="true" filename="freshsalesAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedFreshsalesAccounts($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- FRESHSALESACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedFreshsalesAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getFreshsalesAccounts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'INTEGRATIONS.NAME\' | translate }}</th>\n <th md-column md-order-by="username">{{ \'INTEGRATIONS.USERNAME\' | translate }}</th>\n <th md-column md-order-by="remoteUri">{{ \'INTEGRATIONS.URI\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.freshsalesAccounts.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="freshsalesAccount" md-select-id="id" ng-repeat="freshsalesAccount in vm.freshsalesAccounts.rows">\n <td md-cell ng-if="freshsalesAccount.userpic"><img class="avatar" alt="{{freshsalesAccount.name}}" ng-src="api/users/{{freshsalesAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!freshsalesAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{freshsalesAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshsalesAccount, ev) : vm.createOrEditFreshsalesAccount($event, freshsalesAccount)" md-cell class="id ">{{freshsalesAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshsalesAccount, ev) : vm.createOrEditFreshsalesAccount($event, freshsalesAccount)" md-cell class="name ">{{freshsalesAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshsalesAccount, ev) : vm.createOrEditFreshsalesAccount($event, freshsalesAccount)" md-cell class="username ">{{freshsalesAccount.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshsalesAccount, ev) : vm.createOrEditFreshsalesAccount($event, freshsalesAccount)" md-cell class="remoteUri ">{{freshsalesAccount.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(freshsalesAccount, $event )" translate="INTEGRATIONS.EDIT_FRESHSALESACCOUNT">\n Edit FreshsalesAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(freshsalesAccount, $event )" translate="INTEGRATIONS.TEST_FRESHSALESACCOUNT">\n Test FreshsalesAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(freshsalesAccount, $event )" translate="INTEGRATIONS.DELETE_FRESHSALESACCOUNT">\n Delete FreshsalesAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.freshsalesAccounts.count}}" md-on-paginate="vm.getFreshsalesAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / FRESHSALESACCOUNT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD FRESHSALESACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-freshsalesAccount-button" ng-click="vm.createOrEditFreshsalesAccount($event)" aria-label="add freshsalesAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_FRESHSALESACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD FRESHSALESACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/integrations/views/salesforceAccounts/create/dialog.html",'<md-dialog class="salesforceAccount-dialog" aria-label="New SalesforceAccount">\n <form name="salesforceAccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.salesforceAccount.name" ng-required="true" autofocus>\n\n <div ng-messages="salesforceAccountForm[\'name\'].$error" ng-show="salesforceAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.salesforceAccount.type" required>\n\n <md-option ng-value="\'integrationTab\'"> {{ \'INTEGRATIONS.INTEGRATION_TAB\' | translate }} </md-option>\n\n <md-option ng-value="\'newTab\'"> {{ \'INTEGRATIONS.NEW_TAB\' | translate }} </md-option>\n </md-select>\n <div ng-messages="salesforceAccountForm[\'type\'].$error" ng-show="salesforceAccountForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.salesforceAccount.username" ng-required="true">\n\n <div ng-messages="salesforceAccountForm[\'username\'].$error" ng-show="salesforceAccountForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.salesforceAccount.remoteUri" ng-required="true">\n\n <div ng-messages="salesforceAccountForm[\'remoteUri\'].$error" ng-show="salesforceAccountForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.salesforceAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="salesforceAccountForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTID">ClientId</label>\n <input type="text" name="clientId" ng-model="vm.salesforceAccount.clientId" ng-required="true">\n\n <div ng-messages="salesforceAccountForm[\'clientId\'].$error" ng-show="salesforceAccountForm[\'clientId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTID_REQUIRED">ClientId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTSECRET">ClientSecret</label>\n <input type="text" name="clientSecret" ng-model="vm.salesforceAccount.clientSecret" ng-required="true">\n\n <div ng-messages="salesforceAccountForm[\'clientSecret\'].$error" ng-show="salesforceAccountForm[\'clientSecret\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTSECRET_REQUIRED">ClientSecret field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.SECURITYTOKEN">SecurityToken</label>\n <input type="text" name="securityToken" ng-model="vm.salesforceAccount.securityToken" ng-required="true">\n\n <div ng-messages="salesforceAccountForm[\'securityToken\'].$error" ng-show="salesforceAccountForm[\'securityToken\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.SECURITYTOKEN_REQUIRED">SecurityToken field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.salesforceAccount.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="salesforceAccountForm[\'serverUrl\'].$error" ng-show="salesforceAccountForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.salesforceAccount.description">\n\n <div ng-messages="salesforceAccountForm[\'description\'].$error" ng-show="salesforceAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newSalesforceAccount" ng-click="vm.saveSalesforceAccount()" class="send-button md-accent md-raised" ng-disabled="salesforceAccountForm.$invalid || salesforceAccountForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newSalesforceAccount" ng-click="vm.addNewSalesforceAccount()" class="send-button md-accent md-raised" ng-disabled="salesforceAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_SALESFORCEACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_SALESFORCEACCOUNT">\n ADD SALESFORCEACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newSalesforceAccount" ng-click="vm.deleteSalesforceAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/salesforceAccounts/edit/configurations/dialog.html",'<md-dialog class="salesforceConfiguration-dialog" aria-label="New SalesforceConfiguration">\n <form name="salesforceConfigurationForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="" name="name" ng-model="vm.salesforceConfiguration.name" ng-required="true" autofocus>\n\n <div ng-messages="salesforceConfigurationForm[\'name\'].$error" ng-show="salesforceConfigurationForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CHANNEL">Channel</label>\n <md-select name="channel" ng-model="vm.salesforceConfiguration.channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="salesforceConfigurationForm[\'channel\'].$error" ng-show="salesforceConfigurationForm[\'channel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.salesforceConfiguration.type" required>\n\n <md-option ng-value="\'inbound\'"> {{ \'INTEGRATIONS.INBOUND_IN_QUEUE\' | translate }} </md-option>\n\n <md-option ng-value="\'outbound\'"> {{ \'INTEGRATIONS.OUTBOUND_CALL\' | translate }} </md-option>\n </md-select>\n <div ng-messages="salesforceConfigurationForm[\'type\'].$error" ng-show="salesforceConfigurationForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TICKETTYPE">TicketType</label>\n <md-select name="ticketType" ng-model="vm.salesforceConfiguration.ticketType" required>\n\n <md-option ng-value="\'Task\'"> {{ \'INTEGRATIONS.TASK\' | translate }} </md-option>\n\n <md-option ng-value="\'Case\'"> {{ \'INTEGRATIONS.CASE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="salesforceConfigurationForm[\'ticketType\'].$error" ng-show="salesforceConfigurationForm[\'ticketType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TICKETTYPE_REQUIRED">TicketType field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newSalesforceConfiguration" ng-click="vm.saveSalesforceConfiguration()" class="send-button md-accent md-raised" ng-disabled="salesforceConfigurationForm.$invalid || salesforceConfigurationForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newSalesforceConfiguration" ng-click="vm.addNewSalesforceConfiguration()" class="send-button md-accent md-raised" ng-disabled="salesforceConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_SALESFORCECONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_SALESFORCECONFIGURATION">\n ADD SALESFORCECONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newSalesforceConfiguration" ng-click="vm.deleteSalesforceConfiguration($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/salesforceAccounts/edit/item/dialog.html",'<md-dialog class="salesforceAccount-item-dialog" aria-label="New Item">\n <form name="salesforceAccountItemForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <div ng-switch="vm.type">\n <div ng-switch-when="subject">\n \x3c!-- SUBJECT SECTION --\x3e\n <div ng-include="\'/subject.html\'"></div>\n \x3c!-- / SUBJECT SECTION --\x3e\n </div>\n <div ng-switch-when="description">\n \x3c!-- DESCRIPTION SECTION --\x3e\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="keyValue">Key Value</md-option>\n </md-select>\n <div ng-messages="salesforceAccountItemForm.type.$error" ng-show="salesforceAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="salesforceAccountItemForm.content.$error" ng-show="salesforceAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field\n is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.item.type == \'keyValue\'">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.item.key" required md-autofocus>\n <div ng-messages="salesforceAccountItemForm.key.$error" ng-show="salesforceAccountItemForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="keyType" ng-model="vm.item.keyType" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="salesforceAccountItemForm.keyType.$error" ng-show="salesforceAccountItemForm.keyType.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="keyContent" ng-model="vm.item.keyContent" required md-autofocus>\n <div ng-messages="salesforceAccountItemForm.keyContent.$error" ng-show="salesforceAccountItemForm.keyContent.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content\n field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="salesforceAccountItemForm.variableName.$error" ng-show="salesforceAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable\n name field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}\n </md-option>\n </md-select>\n </md-input-container>\n </div>\n \x3c!-- / DESCRIPTION SECTION --\x3e\n </div>\n <div ng-switch-when="field">\n \x3c!-- FIELD SECTION --\x3e\n <div ng-if="vm.accountConnected">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.FIELD">FIELD</label>\n \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\n </md-select>\n <div ng-messages="salesforceAccountItemForm.customField.$error" ng-show="salesforceAccountItemForm.customField.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\n </div>\n <div ng-if="!vm.accountConnected">\n <p>Account is not connected. Please check your configurations!</p>\n </div>\n \x3c!-- / FIELD SECTION --\x3e\n </div>\n <div ng-switch-default>\n <p>No Item</p>\n </div>\n </div>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="salesforceAccountItemForm.$invalid || salesforceAccountItemForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="salesforceAccountItemForm.$invalid || salesforceAccountItemForm.$pristine" aria-label="ADD" translate="INTEGRATIONS.ADD" translate-attr-aria-label="INTEGRATIONS.ADD">\n ADD\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newItem" ng-click="vm.deleteItem($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>\n\n<script type="text/ng-template" id="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n <md-option ng-if="vm.customField.options.length" value="picklist">Picklist</md-option>\n </md-select>\n <div ng-messages="salesforceAccountItemForm.type.$error" ng-show="salesforceAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <md-select name="option" ng-model="vm.item.content" required>\n <md-option ng-value="option.value" ng-repeat="option in vm.customField.options">{{option.name}}</md-option>\n </md-select>\n\n <div ng-messages="salesforceAccountItemForm.option.$error" ng-show="salesforceAccountItemForm.option.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\n <div ng-messages="salesforceAccountItemForm.content.$error" ng-show="salesforceAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="salesforceAccountItemForm.variableName.$error" ng-show="salesforceAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!--/ value --\x3e\n\n<\/script>\n\n<script type="text/ng-template" id="/subject.html">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="salesforceAccountItemForm.type.$error" ng-show="salesforceAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n \n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="salesforceAccountItemForm.content.$error"\n ng-show="salesforceAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="salesforceAccountItemForm.variableName.$error"\n ng-show="salesforceAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n <\/script>'),e.put("app/main/apps/integrations/views/salesforceAccounts/edit/view.html",'<div id="integrations-salesforceAccount" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-salesforceAccounts-button md-icon-button" aria-label="Go to salesforceAccounts" ng-click="vm.gotoSalesforceAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_SALESFORCEACCOUNTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="salesforceAccount-image" hide-xs>\n <img ng-src="assets/images/business/salesforceAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.salesforceAccount.id}}\n <span ng-if="vm.salesforceAccount.name">{{vm.salesforceAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.salesforceAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveSalesforceAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (configurationsForm.$invalid)" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="salesforceAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.salesforceAccount.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.salesforceAccount.type" required ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'integrationTab\'"> {{ \'INTEGRATIONS.INTEGRATION_TAB\' | translate }} </md-option>\n\n <md-option ng-value="\'newTab\'"> {{ \'INTEGRATIONS.NEW_TAB\' | translate }} </md-option>\n </md-select>\n <div ng-messages="generalForm[\'type\'].$error" ng-show="generalForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.salesforceAccount.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'username\'].$error" ng-show="generalForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.salesforceAccount.remoteUri" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'remoteUri\'].$error" ng-show="generalForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.salesforceAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="generalForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTID">ClientId</label>\n <input type="text" name="clientId" ng-model="vm.salesforceAccount.clientId" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'clientId\'].$error" ng-show="generalForm[\'clientId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTID_REQUIRED">ClientId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTSECRET">ClientSecret</label>\n <input type="text" name="clientSecret" ng-model="vm.salesforceAccount.clientSecret" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'clientSecret\'].$error" ng-show="generalForm[\'clientSecret\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTSECRET_REQUIRED">ClientSecret field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.SECURITYTOKEN">SecurityToken</label>\n <input type="text" name="securityToken" ng-model="vm.salesforceAccount.securityToken" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'securityToken\'].$error" ng-show="generalForm[\'securityToken\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.SECURITYTOKEN_REQUIRED">SecurityToken field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.salesforceAccount.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="generalForm[\'serverUrl\'].$error" ng-show="generalForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.salesforceAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="salesforceAccount-detail-form-container configurations md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</div>\n </div>\n <div ng-controller="SalesforceAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.salesforceAccount, vm.crudPermissions)" layout="row">\n <md-card class="md-whiteframe-1dp" flex="30">\n <div layout="row" layout-align="center center">\n <md-subheader flex="75" class="md-no-sticky">{{ \'INTEGRATIONS.CONFIGURATIONS\' | translate }}</md-subheader>\n <md-button flex="25" ng-if="vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditSalesforceConfiguration($event)" class="md-icon-button" aria-label="create salesforceConfiguration">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n <md-list>\n <md-list-item layout="row" layout-align="center center" ng-repeat="salesforceConfiguration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedSalesforceConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getSalesforceConfiguration($index)">\n <span class="text-truncate" flex="80">{{ salesforceConfiguration.name }}</span>\n <md-menu ng-if="vm_cc.crudPermissions.canDelete">\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteSalesforceConfiguration($event, salesforceConfiguration)" translate="INTEGRATIONS.DELETE_SALESFORCECONFIGURATION">\n Delete SalesforceConfiguration\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-list-item>\n </md-list>\n </md-card>\n <div flex></div>\n <md-card class="md-whiteframe-1dp" flex="65">\n <md-tabs ng-if="vm_cc.configurations.length" md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.SUBJECTS">SUBJECTS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.subject = query" on-collapse="vm_cc.query.subject = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditSubject($event)" aria-label="add subject" translate translate-attr-label="INTEGRATIONS.ADD_SUBJECT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedSubjects.length}} {{vm_cc.selectedSubjects.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedSubjects($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedSubjects">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="subject" md-select-id="id" ng-repeat="subject in vm_cc.subjects | filter: vm_cc.query.subject">\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="id ">{{subject.id}}</td>\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="type ">\n <span ng-if="subject.FieldId">{{subject.nameField || subject.idField}}</span>\n <span ng-if="!subject.FieldId">{{subject.type}}</span>\n </td>\n <td ng-switch="subject.type" ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell>\n <span ng-switch-when="string">{{subject.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{subject.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{subject.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{subject.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditSubject($event, subject)" translate="INTEGRATIONS.EDIT_SUBJECT">\n Edit Subject\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteSubjectConfirm($event, subject)" translate="INTEGRATIONS.DELETE_SUBJECT">\n Delete Subject\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.DESCRIPTIONS">DESCRIPTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.description = query" on-collapse="vm_cc.query.description = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditDescription($event)" aria-label="add description" translate translate-attr-label="INTEGRATIONS.ADD_DESCRIPTION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedDescriptions.length}} {{vm_cc.selectedDescriptions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedDescriptions($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedDescriptions">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="description" md-select-id="id" ng-repeat="description in vm_cc.descriptions | filter: vm_cc.query.description">\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="id ">{{description.id}}</td>\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="type ">\n <span ng-if="description.FieldId">{{description.nameField || description.idField}}</span>\n <span ng-if="!description.FieldId">{{description.type}}</span>\n </td>\n <td ng-switch="description.type" ng-click="vm_cc.createOrEditDescription($event, description)" md-cell>\n <span ng-switch-when="string">{{description.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{description.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{description.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{description.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditDescription($event, description)" translate="INTEGRATIONS.EDIT_DESCRIPTION">\n Edit Description\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteDescriptionConfirm($event, description)" translate="INTEGRATIONS.DELETE_DESCRIPTION">\n Delete Description\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.FIELDS">FIELDS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.field = query" on-collapse="vm_cc.query.field = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditField($event)" aria-label="add field" translate translate-attr-label="INTEGRATIONS.ADD_FIELD">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedFields.length}} {{vm_cc.selectedFields.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedFields($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedFields">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="field" md-select-id="id" ng-repeat="field in vm_cc.fields | filter: vm_cc.query.field">\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="id ">{{field.id}}</td>\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="type ">\n <span ng-if="field.FieldId">{{field.nameField || field.idField}}</span>\n <span ng-if="!field.FieldId">{{field.type}}</span>\n </td>\n <td ng-switch="field.type" ng-click="vm_cc.createOrEditField($event, field)" md-cell>\n <span ng-switch-when="string">{{field.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{field.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{field.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{field.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditField($event, field)" translate="INTEGRATIONS.EDIT_FIELD">\n Edit Field\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteFieldConfirm($event, field)" translate="INTEGRATIONS.DELETE_FIELD">\n Delete Field\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ADVANCED">\n ADVANCED\n </span>\n </md-tab-label>\n <md-tab-body>\n <div layout-margin>\n <label translate="INTEGRATIONS.MODULE_SEARCH"></label>\n <md-select ng-model="vm_cc.salesforceConfiguration.moduleSearch" ng-change="vm_cc.selectChangedAdvanced()" ng-disabled="!vm_cc.crudPermissions.canEdit">\n <md-option ng-value="option.key" ng-repeat="option in [{key: \'account_contact_lead\', value: \'Account & Contact & Lead\'}, {key: \'contact_lead\', value: \'Contact & Lead\'}, {key: \'contact\', value: \'Contact\'}, {key: \'lead\', value: \'Lead\'}, {key: \'account\', value: \'Account\'}]">\n {{ option.value }}</md-option>\n </md-select>\n </div>\n <div layout-margin>\n <label translate="INTEGRATIONS.MODULE_CREATE"></label>\n <md-select ng-model="vm_cc.salesforceConfiguration.moduleCreate" ng-change="vm_cc.selectChangedAdvanced()" ng-disabled="!vm_cc.crudPermissions.canEdit">\n <md-option ng-value="option.key" ng-repeat="option in [{key: \'nothing\', value: \'Nothing\'}, {key: \'contact\', value: \'Contact\'}, {key: \'lead\', value: \'Lead\'}, {key: \'account\', value: \'Account\'}]">\n {{ option.value }}</md-option>\n </md-select>\n </div>\n\n <div layout-margin ng-if="vm_cc.salesforceConfiguration.isLead">\n <label translate="INTEGRATIONS.LEADID"></label>\n <md-input-container class="md-block">\n <input ng-model="vm_cc.salesforceConfiguration.leadId" type="text">\n </md-input-container>\n <div class="hint"><span translate="INTEGRATIONS.HELP.LEADID"></span></div>\n </div>\n\n <div layout-margin ng-if="vm_cc.salesforceConfiguration.isAccountSearch">\n <label translate="INTEGRATIONS.ADDITIONALSEARCHACCOUNT"></label>\n <md-input-container class="md-block">\n <input ng-model="vm_cc.salesforceConfiguration.additionalSearchAccount" type="text">\n </md-input-container>\n <div class="hint"><span translate="INTEGRATIONS.HELP.ADDITIONALSEARCHACCOUNT"></span></div>\n </div>\n\n <div layout-margin ng-if="vm_cc.salesforceConfiguration.isContactSearch">\n <label translate="INTEGRATIONS.ADDITIONALSEARCHCONTACT"></label>\n <md-input-container class="md-block">\n <input ng-model="vm_cc.salesforceConfiguration.additionalSearchContact" type="text">\n </md-input-container>\n <div class="hint"><span translate="INTEGRATIONS.HELP.ADDITIONALSEARCHCONTACT"></span></div>\n </div>\n\n <div layout-margin ng-if="vm_cc.salesforceConfiguration.isLeadSearch">\n <label translate="INTEGRATIONS.ADDITIONALSEARCHLEAD"></label>\n <md-input-container class="md-block">\n <input ng-model="vm_cc.salesforceConfiguration.additionalSearchLead" type="text">\n </md-input-container>\n <div class="hint"><span translate="INTEGRATIONS.HELP.ADDITIONALSEARCHLEAD"></span></div>\n </div>\n\n <md-button type="submit" ng-click="vm_cc.saveSalesforceConfiguration()" ng-disabled="!vm_cc.crudPermissions.canEdit" class="send-button md-accent md-raised" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n </md-tab-body>\n </md-tab>\n\n\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.configurations.length && vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditSalesforceConfiguration($event)" layout="row" layout-sm="column" layout-align="center center" layout-wrap>\n <div class="padding-20 md-whiteframe-3dp md-accent-bg" layout="column" layout-align="center center">\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <span aria-label="add configuration" translate translate-attr-label="INTEGRATIONS.ADD_CONFIGURATION">ADD CONFIGURATION</span>\n </div>\n </div>\n </md-card>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/integrations/views/salesforceAccounts/salesforceAccounts.html",'<div id="salesforceAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-heart" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="INTEGRATIONS.SALESFORCEACCOUNTS">SalesforceAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedSalesforceAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedSalesforceAccounts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="INTEGRATIONS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-salesforceAccounts-count">\n <span>{{vm.selectedSalesforceAccounts.length}}</span>\n <span translate="INTEGRATIONS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="INTEGRATIONS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllSalesforceAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectSalesforceAccounts()" translate="INTEGRATIONS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedSalesforceAccounts" csv-label="true" filename="salesforceAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedSalesforceAccounts($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- SALESFORCEACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedSalesforceAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getSalesforceAccounts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'INTEGRATIONS.NAME\' | translate }}</th>\n <th md-column md-order-by="username">{{ \'INTEGRATIONS.USERNAME\' | translate }}</th>\n <th md-column md-order-by="remoteUri">{{ \'INTEGRATIONS.URI\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.salesforceAccounts.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="salesforceAccount" md-select-id="id" ng-repeat="salesforceAccount in vm.salesforceAccounts.rows">\n <td md-cell ng-if="salesforceAccount.userpic"><img class="avatar" alt="{{salesforceAccount.name}}" ng-src="api/users/{{salesforceAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!salesforceAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{salesforceAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(salesforceAccount, ev) : vm.createOrEditSalesforceAccount($event, salesforceAccount)" md-cell class="id ">{{salesforceAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(salesforceAccount, ev) : vm.createOrEditSalesforceAccount($event, salesforceAccount)" md-cell class="name ">{{salesforceAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(salesforceAccount, ev) : vm.createOrEditSalesforceAccount($event, salesforceAccount)" md-cell class="username ">{{salesforceAccount.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(salesforceAccount, ev) : vm.createOrEditSalesforceAccount($event, salesforceAccount)" md-cell class="remoteUri ">{{salesforceAccount.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(salesforceAccount, $event )" translate="INTEGRATIONS.EDIT_SALESFORCEACCOUNT">\n Edit SalesforceAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(salesforceAccount, $event )" translate="INTEGRATIONS.TEST_SALESFORCEACCOUNT">\n Test SalesforceAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(salesforceAccount, $event )" translate="INTEGRATIONS.DELETE_SALESFORCEACCOUNT">\n Delete SalesforceAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.salesforceAccounts.count}}" md-on-paginate="vm.getSalesforceAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / SALESFORCEACCOUNT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD SALESFORCEACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-salesforceAccount-button" ng-click="vm.createOrEditSalesforceAccount($event)" aria-label="add salesforceAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_SALESFORCEACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD SALESFORCEACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/integrations/views/servicenowAccounts/create/dialog.html",'<md-dialog class="servicenowAccount-dialog" aria-label="New ServicenowAccount">\n <form name="servicenowAccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.servicenowAccount.name" ng-required="true" autofocus>\n\n <div ng-messages="servicenowAccountForm[\'name\'].$error" ng-show="servicenowAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.servicenowAccount.username" ng-required="true">\n\n <div ng-messages="servicenowAccountForm[\'username\'].$error" ng-show="servicenowAccountForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.servicenowAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="servicenowAccountForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.servicenowAccount.email" ng-required="true">\n\n <div ng-messages="servicenowAccountForm[\'email\'].$error" ng-show="servicenowAccountForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="email">\n <span translate="INTEGRATIONS.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.HOST">Host</label>\n <input type="url" name="remoteUri" ng-model="vm.servicenowAccount.remoteUri" ng-required="true">\n\n <div ng-messages="servicenowAccountForm[\'remoteUri\'].$error" ng-show="servicenowAccountForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.HOST_REQUIRED">Host field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.HOST_MUST_VALID_URL">Host must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.servicenowAccount.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="servicenowAccountForm[\'serverUrl\'].$error" ng-show="servicenowAccountForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.servicenowAccount.description">\n\n <div ng-messages="servicenowAccountForm[\'description\'].$error" ng-show="servicenowAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newServicenowAccount" ng-click="vm.saveServicenowAccount()" class="send-button md-accent md-raised" ng-disabled="servicenowAccountForm.$invalid || servicenowAccountForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newServicenowAccount" ng-click="vm.addNewServicenowAccount()" class="send-button md-accent md-raised" ng-disabled="servicenowAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_SERVICENOWACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_SERVICENOWACCOUNT">\n ADD SERVICENOWACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newServicenowAccount" ng-click="vm.deleteServicenowAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/servicenowAccounts/edit/configurations/dialog.html",'<md-dialog class="servicenowConfiguration-dialog" aria-label="New ServicenowConfiguration">\n <form name="servicenowConfigurationForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="" name="name" ng-model="vm.servicenowConfiguration.name" ng-required="true" autofocus>\n\n <div ng-messages="servicenowConfigurationForm[\'name\'].$error" ng-show="servicenowConfigurationForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CHANNEL">Channel</label>\n <md-select name="channel" ng-model="vm.servicenowConfiguration.channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="servicenowConfigurationForm[\'channel\'].$error" ng-show="servicenowConfigurationForm[\'channel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.servicenowConfiguration.type" required>\n\n <md-option ng-value="\'inbound\'"> {{ \'INTEGRATIONS.INBOUND_IN_QUEUE\' | translate }} </md-option>\n\n <md-option ng-value="\'outbound\'"> {{ \'INTEGRATIONS.OUTBOUND_CALL\' | translate }} </md-option>\n </md-select>\n <div ng-messages="servicenowConfigurationForm[\'type\'].$error" ng-show="servicenowConfigurationForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newServicenowConfiguration" ng-click="vm.saveServicenowConfiguration()" class="send-button md-accent md-raised" ng-disabled="servicenowConfigurationForm.$invalid || servicenowConfigurationForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newServicenowConfiguration" ng-click="vm.addNewServicenowConfiguration()" class="send-button md-accent md-raised" ng-disabled="servicenowConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_SERVICENOWCONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_SERVICENOWCONFIGURATION">\n ADD SERVICENOWCONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newServicenowConfiguration" ng-click="vm.deleteServicenowConfiguration($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/servicenowAccounts/edit/item/dialog.html",'<md-dialog class="servicenowAccount-item-dialog" aria-label="New Item">\n <form name="servicenowAccountItemForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <div ng-switch="vm.type">\n <div ng-switch-when="subject">\n \x3c!-- SUBJECT SECTION --\x3e\n <div ng-include="\'/subject.html\'"></div>\n \x3c!-- / SUBJECT SECTION --\x3e\n </div>\n <div ng-switch-when="description">\n \x3c!-- DESCRIPTION SECTION --\x3e\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="keyValue">Key Value</md-option>\n </md-select>\n <div ng-messages="servicenowAccountItemForm.type.$error" ng-show="servicenowAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="servicenowAccountItemForm.content.$error" ng-show="servicenowAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field\n is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.item.type == \'keyValue\'">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.item.key" required md-autofocus>\n <div ng-messages="servicenowAccountItemForm.key.$error" ng-show="servicenowAccountItemForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="keyType" ng-model="vm.item.keyType" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="servicenowAccountItemForm.keyType.$error" ng-show="servicenowAccountItemForm.keyType.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="keyContent" ng-model="vm.item.keyContent" required md-autofocus>\n <div ng-messages="servicenowAccountItemForm.keyContent.$error" ng-show="servicenowAccountItemForm.keyContent.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content\n field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="servicenowAccountItemForm.variableName.$error" ng-show="servicenowAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable\n name field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}\n </md-option>\n </md-select>\n </md-input-container>\n </div>\n \x3c!-- / DESCRIPTION SECTION --\x3e\n </div>\n <div ng-switch-when="field">\n \x3c!-- FIELD SECTION --\x3e\n <div ng-if="vm.accountConnected">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.FIELD">FIELD</label>\n \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\n </md-select>\n <div ng-messages="servicenowAccountItemForm.customField.$error" ng-show="servicenowAccountItemForm.customField.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\n </div>\n <div ng-if="!vm.accountConnected">\n <p>Account is not connected. Please check your configurations!</p>\n </div>\n \x3c!-- / FIELD SECTION --\x3e\n </div>\n <div ng-switch-default>\n <p>No Item</p>\n </div>\n </div>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="servicenowAccountItemForm.$invalid || servicenowAccountItemForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="servicenowAccountItemForm.$invalid || servicenowAccountItemForm.$pristine" aria-label="ADD" translate="INTEGRATIONS.ADD" translate-attr-aria-label="INTEGRATIONS.ADD">\n ADD\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newItem" ng-click="vm.deleteItem($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>\n\n<script type="text/ng-template" id="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n <md-option ng-if="vm.customField.options.length" value="picklist">Picklist</md-option>\n </md-select>\n <div ng-messages="servicenowAccountItemForm.type.$error" ng-show="servicenowAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <md-select name="option" ng-model="vm.item.content" required>\n <md-option ng-value="option.value" ng-repeat="option in vm.customField.options">{{option.name}}</md-option>\n </md-select>\n\n <div ng-messages="servicenowAccountItemForm.option.$error" ng-show="servicenowAccountItemForm.option.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\n <div ng-messages="servicenowAccountItemForm.content.$error" ng-show="servicenowAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="servicenowAccountItemForm.variableName.$error" ng-show="servicenowAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!--/ value --\x3e\n\n<\/script>\n\n<script type="text/ng-template" id="/subject.html">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="servicenowAccountItemForm.type.$error" ng-show="servicenowAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n \n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="servicenowAccountItemForm.content.$error"\n ng-show="servicenowAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="servicenowAccountItemForm.variableName.$error"\n ng-show="servicenowAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n <\/script>'),e.put("app/main/apps/integrations/views/servicenowAccounts/edit/view.html",'<div id="integrations-servicenowAccount" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-servicenowAccounts-button md-icon-button" aria-label="Go to servicenowAccounts" ng-click="vm.gotoServicenowAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_SERVICENOWACCOUNTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="servicenowAccount-image" hide-xs>\n <img ng-src="assets/images/business/servicenowAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.servicenowAccount.id}}\n <span ng-if="vm.servicenowAccount.name">{{vm.servicenowAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.servicenowAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveServicenowAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (configurationsForm.$invalid)" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="servicenowAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.servicenowAccount.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.servicenowAccount.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'username\'].$error" ng-show="generalForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.servicenowAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="generalForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.servicenowAccount.email" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'email\'].$error" ng-show="generalForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="email">\n <span translate="INTEGRATIONS.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.HOST">Host</label>\n <input type="url" name="remoteUri" ng-model="vm.servicenowAccount.remoteUri" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'remoteUri\'].$error" ng-show="generalForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.HOST_REQUIRED">Host field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.HOST_MUST_VALID_URL">Host must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.servicenowAccount.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="generalForm[\'serverUrl\'].$error" ng-show="generalForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.servicenowAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="servicenowAccount-detail-form-container configurations md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</div>\n </div>\n <div ng-controller="ServicenowAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.servicenowAccount, vm.crudPermissions)" layout="row">\n <md-card class="md-whiteframe-1dp" flex="30">\n <div layout="row" layout-align="center center">\n <md-subheader flex="75" class="md-no-sticky">{{ \'INTEGRATIONS.CONFIGURATIONS\' | translate }}</md-subheader>\n <md-button flex="25" ng-if="vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditServicenowConfiguration($event)" class="md-icon-button" aria-label="create servicenowConfiguration">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n <md-list>\n <md-list-item layout="row" layout-align="center center" ng-repeat="servicenowConfiguration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedServicenowConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getServicenowConfiguration($index)">\n <span class="text-truncate" flex="80">{{ servicenowConfiguration.name }}</span>\n <md-menu ng-if="vm_cc.crudPermissions.canDelete">\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteServicenowConfiguration($event, servicenowConfiguration)" translate="INTEGRATIONS.DELETE_SERVICENOWCONFIGURATION">\n Delete ServicenowConfiguration\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-list-item>\n </md-list>\n </md-card>\n <div flex></div>\n <md-card class="md-whiteframe-1dp" flex="65">\n <md-tabs ng-if="vm_cc.configurations.length" md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.SUBJECTS">SUBJECTS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.subject = query" on-collapse="vm_cc.query.subject = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditSubject($event)" aria-label="add subject" translate translate-attr-label="INTEGRATIONS.ADD_SUBJECT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedSubjects.length}} {{vm_cc.selectedSubjects.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedSubjects($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedSubjects">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="subject" md-select-id="id" ng-repeat="subject in vm_cc.subjects | filter: vm_cc.query.subject">\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="id ">{{subject.id}}</td>\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="type ">\n <span ng-if="subject.FieldId">{{subject.nameField || subject.idField}}</span>\n <span ng-if="!subject.FieldId">{{subject.type}}</span>\n </td>\n <td ng-switch="subject.type" ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell>\n <span ng-switch-when="string">{{subject.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{subject.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{subject.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{subject.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditSubject($event, subject)" translate="INTEGRATIONS.EDIT_SUBJECT">\n Edit Subject\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteSubjectConfirm($event, subject)" translate="INTEGRATIONS.DELETE_SUBJECT">\n Delete Subject\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.DESCRIPTIONS">DESCRIPTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.description = query" on-collapse="vm_cc.query.description = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditDescription($event)" aria-label="add description" translate translate-attr-label="INTEGRATIONS.ADD_DESCRIPTION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedDescriptions.length}} {{vm_cc.selectedDescriptions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedDescriptions($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedDescriptions">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="description" md-select-id="id" ng-repeat="description in vm_cc.descriptions | filter: vm_cc.query.description">\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="id ">{{description.id}}</td>\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="type ">\n <span ng-if="description.FieldId">{{description.nameField || description.idField}}</span>\n <span ng-if="!description.FieldId">{{description.type}}</span>\n </td>\n <td ng-switch="description.type" ng-click="vm_cc.createOrEditDescription($event, description)" md-cell>\n <span ng-switch-when="string">{{description.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{description.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{description.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{description.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditDescription($event, description)" translate="INTEGRATIONS.EDIT_DESCRIPTION">\n Edit Description\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteDescriptionConfirm($event, description)" translate="INTEGRATIONS.DELETE_DESCRIPTION">\n Delete Description\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.configurations.length && vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditServicenowConfiguration($event)" layout="row" layout-sm="column" layout-align="center center" layout-wrap>\n <div class="padding-20 md-whiteframe-3dp md-accent-bg" layout="column" layout-align="center center">\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <span aria-label="add configuration" translate translate-attr-label="INTEGRATIONS.ADD_CONFIGURATION">ADD CONFIGURATION</span>\n </div>\n </div>\n </md-card>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/integrations/views/servicenowAccounts/servicenowAccounts.html",'<div id="servicenowAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-heart" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="INTEGRATIONS.SERVICENOWACCOUNTS">ServicenowAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedServicenowAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedServicenowAccounts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="INTEGRATIONS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-servicenowAccounts-count">\n <span>{{vm.selectedServicenowAccounts.length}}</span>\n <span translate="INTEGRATIONS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="INTEGRATIONS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllServicenowAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectServicenowAccounts()" translate="INTEGRATIONS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedServicenowAccounts" csv-label="true" filename="servicenowAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedServicenowAccounts($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- SERVICENOWACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedServicenowAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getServicenowAccounts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'INTEGRATIONS.NAME\' | translate }}</th>\n <th md-column md-order-by="username">{{ \'INTEGRATIONS.USERNAME\' | translate }}</th>\n <th md-column md-order-by="email">{{ \'INTEGRATIONS.EMAIL\' | translate }}</th>\n <th md-column md-order-by="remoteUri">{{ \'INTEGRATIONS.HOST\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.servicenowAccounts.rows.length">\n <td md-cell colspan="6">\n <div layout="row" layout-align="center center">\n <span translate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="servicenowAccount" md-select-id="id" ng-repeat="servicenowAccount in vm.servicenowAccounts.rows">\n <td md-cell ng-if="servicenowAccount.userpic"><img class="avatar" alt="{{servicenowAccount.name}}" ng-src="api/users/{{servicenowAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!servicenowAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{servicenowAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(servicenowAccount, ev) : vm.createOrEditServicenowAccount($event, servicenowAccount)" md-cell class="id ">{{servicenowAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(servicenowAccount, ev) : vm.createOrEditServicenowAccount($event, servicenowAccount)" md-cell class="name ">{{servicenowAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(servicenowAccount, ev) : vm.createOrEditServicenowAccount($event, servicenowAccount)" md-cell class="username ">{{servicenowAccount.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(servicenowAccount, ev) : vm.createOrEditServicenowAccount($event, servicenowAccount)" md-cell class="email ">{{servicenowAccount.email}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(servicenowAccount, ev) : vm.createOrEditServicenowAccount($event, servicenowAccount)" md-cell class="remoteUri ">{{servicenowAccount.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(servicenowAccount, $event )" translate="INTEGRATIONS.EDIT_SERVICENOWACCOUNT">\n Edit ServicenowAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(servicenowAccount, $event )" translate="INTEGRATIONS.TEST_SERVICENOWACCOUNT">\n Test ServicenowAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\n\n <md-button ng-click="vm.deleteconfirm(servicenowAccount, $event )" translate="INTEGRATIONS.DELETE_SERVICENOWACCOUNT">\n Delete ServicenowAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.servicenowAccounts.count}}" md-on-paginate="vm.getServicenowAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / SERVICENOWACCOUNT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD SERVICENOWACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-servicenowAccount-button" ng-click="vm.createOrEditServicenowAccount($event)" aria-label="add servicenowAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_SERVICENOWACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD SERVICENOWACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/integrations/views/sugarcrmAccounts/create/dialog.html",'<md-dialog class="sugarcrmAccount-dialog" aria-label="New SugarcrmAccount">\n <form name="sugarcrmAccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.sugarcrmAccount.name" ng-required="true" autofocus>\n\n <div ng-messages="sugarcrmAccountForm[\'name\'].$error" ng-show="sugarcrmAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.sugarcrmAccount.username" ng-required="true">\n\n <div ng-messages="sugarcrmAccountForm[\'username\'].$error" ng-show="sugarcrmAccountForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.sugarcrmAccount.remoteUri" ng-required="true">\n\n <div ng-messages="sugarcrmAccountForm[\'remoteUri\'].$error" ng-show="sugarcrmAccountForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.sugarcrmAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="sugarcrmAccountForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.sugarcrmAccount.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="sugarcrmAccountForm[\'serverUrl\'].$error" ng-show="sugarcrmAccountForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.sugarcrmAccount.description">\n\n <div ng-messages="sugarcrmAccountForm[\'description\'].$error" ng-show="sugarcrmAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newSugarcrmAccount" ng-click="vm.saveSugarcrmAccount()" class="send-button md-accent md-raised" ng-disabled="sugarcrmAccountForm.$invalid || sugarcrmAccountForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newSugarcrmAccount" ng-click="vm.addNewSugarcrmAccount()" class="send-button md-accent md-raised" ng-disabled="sugarcrmAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_SUGARCRMACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_SUGARCRMACCOUNT">\n ADD SUGARCRMACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newSugarcrmAccount" ng-click="vm.deleteSugarcrmAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/sugarcrmAccounts/edit/configurations/dialog.html",'<md-dialog class="sugarcrmConfiguration-dialog" aria-label="New SugarcrmConfiguration">\n <form name="sugarcrmConfigurationForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="" name="name" ng-model="vm.sugarcrmConfiguration.name" ng-required="true" autofocus>\n\n <div ng-messages="sugarcrmConfigurationForm[\'name\'].$error" ng-show="sugarcrmConfigurationForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CHANNEL">Channel</label>\n <md-select name="channel" ng-model="vm.sugarcrmConfiguration.channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="sugarcrmConfigurationForm[\'channel\'].$error" ng-show="sugarcrmConfigurationForm[\'channel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.sugarcrmConfiguration.type" required>\n\n <md-option ng-value="\'inbound\'"> {{ \'INTEGRATIONS.INBOUND_IN_QUEUE\' | translate }} </md-option>\n\n <md-option ng-value="\'outbound\'"> {{ \'INTEGRATIONS.OUTBOUND_CALL\' | translate }} </md-option>\n </md-select>\n <div ng-messages="sugarcrmConfigurationForm[\'type\'].$error" ng-show="sugarcrmConfigurationForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newSugarcrmConfiguration" ng-click="vm.saveSugarcrmConfiguration()" class="send-button md-accent md-raised" ng-disabled="sugarcrmConfigurationForm.$invalid || sugarcrmConfigurationForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newSugarcrmConfiguration" ng-click="vm.addNewSugarcrmConfiguration()" class="send-button md-accent md-raised" ng-disabled="sugarcrmConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_SUGARCRMCONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_SUGARCRMCONFIGURATION">\n ADD SUGARCRMCONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newSugarcrmConfiguration" ng-click="vm.deleteSugarcrmConfiguration($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/sugarcrmAccounts/edit/item/dialog.html",'<md-dialog class="sugarcrmAccount-item-dialog" aria-label="New Item">\n <form name="sugarcrmAccountItemForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <div ng-switch="vm.type">\n <div ng-switch-when="subject">\n \x3c!-- SUBJECT SECTION --\x3e\n <div ng-include="\'/subject.html\'"></div>\n \x3c!-- / SUBJECT SECTION --\x3e\n </div>\n <div ng-switch-when="description">\n \x3c!-- DESCRIPTION SECTION --\x3e\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="keyValue">Key Value</md-option>\n </md-select>\n <div ng-messages="sugarcrmAccountItemForm.type.$error" ng-show="sugarcrmAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="sugarcrmAccountItemForm.content.$error" ng-show="sugarcrmAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field\n is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.item.type == \'keyValue\'">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.item.key" required md-autofocus>\n <div ng-messages="sugarcrmAccountItemForm.key.$error" ng-show="sugarcrmAccountItemForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="keyType" ng-model="vm.item.keyType" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="sugarcrmAccountItemForm.keyType.$error" ng-show="sugarcrmAccountItemForm.keyType.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="keyContent" ng-model="vm.item.keyContent" required md-autofocus>\n <div ng-messages="sugarcrmAccountItemForm.keyContent.$error" ng-show="sugarcrmAccountItemForm.keyContent.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content\n field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="sugarcrmAccountItemForm.variableName.$error" ng-show="sugarcrmAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable\n name field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}\n </md-option>\n </md-select>\n </md-input-container>\n </div>\n \x3c!-- / DESCRIPTION SECTION --\x3e\n </div>\n <div ng-switch-when="field">\n \x3c!-- FIELD SECTION --\x3e\n <div ng-if="vm.accountConnected">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.FIELD">FIELD</label>\n \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\n </md-select>\n <div ng-messages="sugarcrmAccountItemForm.customField.$error" ng-show="sugarcrmAccountItemForm.customField.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\n </div>\n <div ng-if="!vm.accountConnected">\n <p>Account is not connected. Please check your configurations!</p>\n </div>\n \x3c!-- / FIELD SECTION --\x3e\n </div>\n <div ng-switch-default>\n <p>No Item</p>\n </div>\n </div>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="sugarcrmAccountItemForm.$invalid || sugarcrmAccountItemForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="sugarcrmAccountItemForm.$invalid || sugarcrmAccountItemForm.$pristine" aria-label="ADD" translate="INTEGRATIONS.ADD" translate-attr-aria-label="INTEGRATIONS.ADD">\n ADD\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newItem" ng-click="vm.deleteItem($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>\n\n<script type="text/ng-template" id="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n <md-option ng-if="vm.customField.options.length" value="picklist">Picklist</md-option>\n </md-select>\n <div ng-messages="sugarcrmAccountItemForm.type.$error" ng-show="sugarcrmAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <md-select name="option" ng-model="vm.item.content" required>\n <md-option ng-value="option.value" ng-repeat="option in vm.customField.options">{{option.name}}</md-option>\n </md-select>\n\n <div ng-messages="sugarcrmAccountItemForm.option.$error" ng-show="sugarcrmAccountItemForm.option.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\n <div ng-messages="sugarcrmAccountItemForm.content.$error" ng-show="sugarcrmAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="sugarcrmAccountItemForm.variableName.$error" ng-show="sugarcrmAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!--/ value --\x3e\n\n<\/script>\n\n<script type="text/ng-template" id="/subject.html">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="sugarcrmAccountItemForm.type.$error" ng-show="sugarcrmAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n \n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="sugarcrmAccountItemForm.content.$error"\n ng-show="sugarcrmAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="sugarcrmAccountItemForm.variableName.$error"\n ng-show="sugarcrmAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n <\/script>'),e.put("app/main/apps/integrations/views/sugarcrmAccounts/edit/view.html",'<div id="integrations-sugarcrmAccount" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-sugarcrmAccounts-button md-icon-button" aria-label="Go to sugarcrmAccounts" ng-click="vm.gotoSugarcrmAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_SUGARCRMACCOUNTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="sugarcrmAccount-image" hide-xs>\n <img ng-src="assets/images/business/sugarcrmAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.sugarcrmAccount.id}}\n <span ng-if="vm.sugarcrmAccount.name">{{vm.sugarcrmAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.sugarcrmAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveSugarcrmAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (configurationsForm.$invalid)" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="sugarcrmAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.sugarcrmAccount.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.sugarcrmAccount.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'username\'].$error" ng-show="generalForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.sugarcrmAccount.remoteUri" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'remoteUri\'].$error" ng-show="generalForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.sugarcrmAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="generalForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.sugarcrmAccount.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="generalForm[\'serverUrl\'].$error" ng-show="generalForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.sugarcrmAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="sugarcrmAccount-detail-form-container configurations md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</div>\n </div>\n <div ng-controller="SugarcrmAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.sugarcrmAccount, vm.crudPermissions)" layout="row">\n <md-card class="md-whiteframe-1dp" flex="30">\n <div layout="row" layout-align="center center">\n <md-subheader flex="75" class="md-no-sticky">{{ \'INTEGRATIONS.CONFIGURATIONS\' | translate }}</md-subheader>\n <md-button flex="25" ng-if="vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditSugarcrmConfiguration($event)" class="md-icon-button" aria-label="create sugarcrmConfiguration">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n <md-list>\n <md-list-item layout="row" layout-align="center center" ng-repeat="sugarcrmConfiguration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedSugarcrmConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getSugarcrmConfiguration($index)">\n <span class="text-truncate" flex="80">{{ sugarcrmConfiguration.name }}</span>\n <md-menu ng-if="vm_cc.crudPermissions.canDelete">\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteSugarcrmConfiguration($event, sugarcrmConfiguration)" translate="INTEGRATIONS.DELETE_SUGARCRMCONFIGURATION">\n Delete SugarcrmConfiguration\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-list-item>\n </md-list>\n </md-card>\n <div flex></div>\n <md-card class="md-whiteframe-1dp" flex="65">\n <md-tabs ng-if="vm_cc.configurations.length" md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.SUBJECTS">SUBJECTS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.subject = query" on-collapse="vm_cc.query.subject = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditSubject($event)" aria-label="add subject" translate translate-attr-label="INTEGRATIONS.ADD_SUBJECT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedSubjects.length}} {{vm_cc.selectedSubjects.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedSubjects($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedSubjects">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="subject" md-select-id="id" ng-repeat="subject in vm_cc.subjects | filter: vm_cc.query.subject">\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="id ">{{subject.id}}</td>\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="type ">\n <span ng-if="subject.FieldId">{{subject.nameField || subject.idField}}</span>\n <span ng-if="!subject.FieldId">{{subject.type}}</span>\n </td>\n <td ng-switch="subject.type" ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell>\n <span ng-switch-when="string">{{subject.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{subject.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{subject.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{subject.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditSubject($event, subject)" translate="INTEGRATIONS.EDIT_SUBJECT">\n Edit Subject\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteSubjectConfirm($event, subject)" translate="INTEGRATIONS.DELETE_SUBJECT">\n Delete Subject\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.DESCRIPTIONS">DESCRIPTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.description = query" on-collapse="vm_cc.query.description = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditDescription($event)" aria-label="add description" translate translate-attr-label="INTEGRATIONS.ADD_DESCRIPTION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedDescriptions.length}} {{vm_cc.selectedDescriptions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedDescriptions($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedDescriptions">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="description" md-select-id="id" ng-repeat="description in vm_cc.descriptions | filter: vm_cc.query.description">\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="id ">{{description.id}}</td>\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="type ">\n <span ng-if="description.FieldId">{{description.nameField || description.idField}}</span>\n <span ng-if="!description.FieldId">{{description.type}}</span>\n </td>\n <td ng-switch="description.type" ng-click="vm_cc.createOrEditDescription($event, description)" md-cell>\n <span ng-switch-when="string">{{description.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{description.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{description.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{description.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditDescription($event, description)" translate="INTEGRATIONS.EDIT_DESCRIPTION">\n Edit Description\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteDescriptionConfirm($event, description)" translate="INTEGRATIONS.DELETE_DESCRIPTION">\n Delete Description\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.FIELDS">FIELDS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.field = query" on-collapse="vm_cc.query.field = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditField($event)" aria-label="add field" translate translate-attr-label="INTEGRATIONS.ADD_FIELD">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedFields.length}} {{vm_cc.selectedFields.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedFields($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedFields">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="field" md-select-id="id" ng-repeat="field in vm_cc.fields | filter: vm_cc.query.field">\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="id ">{{field.id}}</td>\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="type ">\n <span ng-if="field.FieldId">{{field.nameField || field.idField}}</span>\n <span ng-if="!field.FieldId">{{field.type}}</span>\n </td>\n <td ng-switch="field.type" ng-click="vm_cc.createOrEditField($event, field)" md-cell>\n <span ng-switch-when="string">{{field.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{field.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{field.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{field.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditField($event, field)" translate="INTEGRATIONS.EDIT_FIELD">\n Edit Field\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteFieldConfirm($event, field)" translate="INTEGRATIONS.DELETE_FIELD">\n Delete Field\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.configurations.length && vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditSugarcrmConfiguration($event)" layout="row" layout-sm="column" layout-align="center center" layout-wrap>\n <div class="padding-20 md-whiteframe-3dp md-accent-bg" layout="column" layout-align="center center">\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <span aria-label="add configuration" translate translate-attr-label="INTEGRATIONS.ADD_CONFIGURATION">ADD CONFIGURATION</span>\n </div>\n </div>\n </md-card>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/integrations/views/sugarcrmAccounts/sugarcrmAccounts.html",'<div id="sugarcrmAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-heart" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="INTEGRATIONS.SUGARCRMACCOUNTS">SugarcrmAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedSugarcrmAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedSugarcrmAccounts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="INTEGRATIONS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-sugarcrmAccounts-count">\n <span>{{vm.selectedSugarcrmAccounts.length}}</span>\n <span translate="INTEGRATIONS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="INTEGRATIONS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllSugarcrmAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectSugarcrmAccounts()" translate="INTEGRATIONS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedSugarcrmAccounts" csv-label="true" filename="sugarcrmAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedSugarcrmAccounts($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- SUGARCRMACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedSugarcrmAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getSugarcrmAccounts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'INTEGRATIONS.NAME\' | translate }}</th>\n <th md-column md-order-by="username">{{ \'INTEGRATIONS.USERNAME\' | translate }}</th>\n <th md-column md-order-by="remoteUri">{{ \'INTEGRATIONS.URI\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.sugarcrmAccounts.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="sugarcrmAccount" md-select-id="id" ng-repeat="sugarcrmAccount in vm.sugarcrmAccounts.rows">\n <td md-cell ng-if="sugarcrmAccount.userpic"><img class="avatar" alt="{{sugarcrmAccount.name}}" ng-src="api/users/{{sugarcrmAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!sugarcrmAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{sugarcrmAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(sugarcrmAccount, ev) : vm.createOrEditSugarcrmAccount($event, sugarcrmAccount)" md-cell class="id ">{{sugarcrmAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(sugarcrmAccount, ev) : vm.createOrEditSugarcrmAccount($event, sugarcrmAccount)" md-cell class="name ">{{sugarcrmAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(sugarcrmAccount, ev) : vm.createOrEditSugarcrmAccount($event, sugarcrmAccount)" md-cell class="username ">{{sugarcrmAccount.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(sugarcrmAccount, ev) : vm.createOrEditSugarcrmAccount($event, sugarcrmAccount)" md-cell class="remoteUri ">{{sugarcrmAccount.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(sugarcrmAccount, $event )" translate="INTEGRATIONS.EDIT_SUGARCRMACCOUNT">\n Edit SugarcrmAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(sugarcrmAccount, $event )" translate="INTEGRATIONS.TEST_SUGARCRMACCOUNT">\n Test SugarcrmAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.deleteconfirm(sugarcrmAccount, $event )" translate="INTEGRATIONS.DELETE_SUGARCRMACCOUNT">\n Delete SugarcrmAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.sugarcrmAccounts.count}}" md-on-paginate="vm.getSugarcrmAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / SUGARCRMACCOUNT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD SUGARCRMACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-sugarcrmAccount-button" ng-click="vm.createOrEditSugarcrmAccount($event)" aria-label="add sugarcrmAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_SUGARCRMACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD SUGARCRMACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/integrations/views/vtigerAccounts/create/dialog.html",'<md-dialog class="vtigerAccount-dialog" aria-label="New VtigerAccount">\n <form name="vtigerAccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.vtigerAccount.name" ng-required="true" autofocus>\n\n <div ng-messages="vtigerAccountForm[\'name\'].$error" ng-show="vtigerAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.vtigerAccount.description">\n\n <div ng-messages="vtigerAccountForm[\'description\'].$error" ng-show="vtigerAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.VTIGER_USER_NAME">vTiger_User_Name</label>\n <input type="text" name="username" ng-model="vm.vtigerAccount.username" ng-required="true">\n\n <div ng-messages="vtigerAccountForm[\'username\'].$error" ng-show="vtigerAccountForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VTIGER_USER_NAME_REQUIRED">vTiger_User_Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.ACCESS_KEY">Access_Key</label>\n <input type="text" name="accessKey" ng-model="vm.vtigerAccount.accessKey" ng-required="true">\n\n <div ng-messages="vtigerAccountForm[\'accessKey\'].$error" ng-show="vtigerAccountForm[\'accessKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.ACCESS_KEY_REQUIRED">Access_Key field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.HOST">Host</label>\n <input type="url" name="remoteUri" ng-model="vm.vtigerAccount.remoteUri" ng-required="true">\n\n <div ng-messages="vtigerAccountForm[\'remoteUri\'].$error" ng-show="vtigerAccountForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.HOST_REQUIRED">Host field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.HOST_MUST_VALID_URL">Host must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.vtigerAccount.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="vtigerAccountForm[\'serverUrl\'].$error" ng-show="vtigerAccountForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newVtigerAccount" ng-click="vm.saveVtigerAccount()" class="send-button md-accent md-raised" ng-disabled="vtigerAccountForm.$invalid || vtigerAccountForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newVtigerAccount" ng-click="vm.addNewVtigerAccount()" class="send-button md-accent md-raised" ng-disabled="vtigerAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_VTIGERACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_VTIGERACCOUNT">\n ADD VTIGERACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newVtigerAccount" ng-click="vm.deleteVtigerAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/vtigerAccounts/edit/configurations/dialog.html",'<md-dialog class="vtigerConfiguration-dialog" aria-label="New VtigerConfiguration">\n <form name="vtigerConfigurationForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="" name="name" ng-model="vm.vtigerConfiguration.name" ng-required="true" autofocus>\n\n <div ng-messages="vtigerConfigurationForm[\'name\'].$error" ng-show="vtigerConfigurationForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CHANNEL">Channel</label>\n <md-select name="channel" ng-model="vm.vtigerConfiguration.channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="vtigerConfigurationForm[\'channel\'].$error" ng-show="vtigerConfigurationForm[\'channel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.vtigerConfiguration.type" required>\n\n <md-option ng-value="\'inbound\'"> {{ \'INTEGRATIONS.INBOUND_IN_QUEUE\' | translate }} </md-option>\n\n <md-option ng-value="\'outbound\'"> {{ \'INTEGRATIONS.OUTBOUND_CALL\' | translate }} </md-option>\n </md-select>\n <div ng-messages="vtigerConfigurationForm[\'type\'].$error" ng-show="vtigerConfigurationForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newVtigerConfiguration" ng-click="vm.saveVtigerConfiguration()" class="send-button md-accent md-raised" ng-disabled="vtigerConfigurationForm.$invalid || vtigerConfigurationForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newVtigerConfiguration" ng-click="vm.addNewVtigerConfiguration()" class="send-button md-accent md-raised" ng-disabled="vtigerConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_VTIGERCONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_VTIGERCONFIGURATION">\n ADD VTIGERCONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newVtigerConfiguration" ng-click="vm.deleteVtigerConfiguration($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/vtigerAccounts/edit/item/dialog.html",'<md-dialog class="vtigerAccount-item-dialog" aria-label="New Item">\n <form name="vtigerAccountItemForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <div ng-switch="vm.type">\n <div ng-switch-when="subject">\n \x3c!-- SUBJECT SECTION --\x3e\n <div ng-include="\'/subject.html\'"></div>\n \x3c!-- / SUBJECT SECTION --\x3e\n </div>\n <div ng-switch-when="description">\n \x3c!-- DESCRIPTION SECTION --\x3e\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="keyValue">Key Value</md-option>\n </md-select>\n <div ng-messages="vtigerAccountItemForm.type.$error" ng-show="vtigerAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="vtigerAccountItemForm.content.$error" ng-show="vtigerAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field\n is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.item.type == \'keyValue\'">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.item.key" required md-autofocus>\n <div ng-messages="vtigerAccountItemForm.key.$error" ng-show="vtigerAccountItemForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="keyType" ng-model="vm.item.keyType" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="vtigerAccountItemForm.keyType.$error" ng-show="vtigerAccountItemForm.keyType.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="keyContent" ng-model="vm.item.keyContent" required md-autofocus>\n <div ng-messages="vtigerAccountItemForm.keyContent.$error" ng-show="vtigerAccountItemForm.keyContent.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content\n field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="vtigerAccountItemForm.variableName.$error" ng-show="vtigerAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable\n name field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}\n </md-option>\n </md-select>\n </md-input-container>\n </div>\n \x3c!-- / DESCRIPTION SECTION --\x3e\n </div>\n <div ng-switch-when="field">\n \x3c!-- FIELD SECTION --\x3e\n <div ng-if="vm.accountConnected">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.FIELD">FIELD</label>\n \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\n </md-select>\n <div ng-messages="vtigerAccountItemForm.customField.$error" ng-show="vtigerAccountItemForm.customField.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\n </div>\n <div ng-if="!vm.accountConnected">\n <p>Account is not connected. Please check your configurations!</p>\n </div>\n \x3c!-- / FIELD SECTION --\x3e\n </div>\n <div ng-switch-default>\n <p>No Item</p>\n </div>\n </div>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="vtigerAccountItemForm.$invalid || vtigerAccountItemForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="vtigerAccountItemForm.$invalid || vtigerAccountItemForm.$pristine" aria-label="ADD" translate="INTEGRATIONS.ADD" translate-attr-aria-label="INTEGRATIONS.ADD">\n ADD\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newItem" ng-click="vm.deleteItem($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>\n\n<script type="text/ng-template" id="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n <md-option ng-if="vm.customField.options.length" value="picklist">Picklist</md-option>\n </md-select>\n <div ng-messages="vtigerAccountItemForm.type.$error" ng-show="vtigerAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <md-select name="option" ng-model="vm.item.content" required>\n <md-option ng-value="option.value" ng-repeat="option in vm.customField.options">{{option.name}}</md-option>\n </md-select>\n\n <div ng-messages="vtigerAccountItemForm.option.$error" ng-show="vtigerAccountItemForm.option.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\n <div ng-messages="vtigerAccountItemForm.content.$error" ng-show="vtigerAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="vtigerAccountItemForm.variableName.$error" ng-show="vtigerAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!--/ value --\x3e\n\n<\/script>\n\n<script type="text/ng-template" id="/subject.html">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="vtigerAccountItemForm.type.$error" ng-show="vtigerAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n \n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="vtigerAccountItemForm.content.$error"\n ng-show="vtigerAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="vtigerAccountItemForm.variableName.$error"\n ng-show="vtigerAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n <\/script>'),e.put("app/main/apps/integrations/views/vtigerAccounts/edit/view.html",'<div id="integrations-vtigerAccount" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-vtigerAccounts-button md-icon-button" aria-label="Go to vtigerAccounts" ng-click="vm.gotoVtigerAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_VTIGERACCOUNTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="vtigerAccount-image" hide-xs>\n <img ng-src="assets/images/business/vtigerAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.vtigerAccount.id}}\n <span ng-if="vm.vtigerAccount.name">{{vm.vtigerAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.vtigerAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveVtigerAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (configurationsForm.$invalid)" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="vtigerAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.vtigerAccount.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.vtigerAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.VTIGER_USER_NAME">vTiger_User_Name</label>\n <input type="text" name="username" ng-model="vm.vtigerAccount.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'username\'].$error" ng-show="generalForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VTIGER_USER_NAME_REQUIRED">vTiger_User_Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.ACCESS_KEY">Access_Key</label>\n <input type="text" name="accessKey" ng-model="vm.vtigerAccount.accessKey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'accessKey\'].$error" ng-show="generalForm[\'accessKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.ACCESS_KEY_REQUIRED">Access_Key field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.HOST">Host</label>\n <input type="url" name="remoteUri" ng-model="vm.vtigerAccount.remoteUri" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'remoteUri\'].$error" ng-show="generalForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.HOST_REQUIRED">Host field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.HOST_MUST_VALID_URL">Host must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.vtigerAccount.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="generalForm[\'serverUrl\'].$error" ng-show="generalForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="vtigerAccount-detail-form-container configurations md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</div>\n </div>\n <div ng-controller="VtigerAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.vtigerAccount, vm.crudPermissions)" layout="row">\n <md-card class="md-whiteframe-1dp" flex="30">\n <div layout="row" layout-align="center center">\n <md-subheader flex="75" class="md-no-sticky">{{ \'INTEGRATIONS.CONFIGURATIONS\' | translate }}</md-subheader>\n <md-button flex="25" ng-if="vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditVtigerConfiguration($event)" class="md-icon-button" aria-label="create vtigerConfiguration">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n <md-list>\n <md-list-item layout="row" layout-align="center center" ng-repeat="vtigerConfiguration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedVtigerConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getVtigerConfiguration($index)">\n <span class="text-truncate" flex="80">{{ vtigerConfiguration.name }}</span>\n <md-menu ng-if="vm_cc.crudPermissions.canDelete">\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteVtigerConfiguration($event, vtigerConfiguration)" translate="INTEGRATIONS.DELETE_VTIGERCONFIGURATION">\n Delete VtigerConfiguration\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-list-item>\n </md-list>\n </md-card>\n <div flex></div>\n <md-card class="md-whiteframe-1dp" flex="65">\n <md-tabs ng-if="vm_cc.configurations.length" md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.SUBJECTS">SUBJECTS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.subject = query" on-collapse="vm_cc.query.subject = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditSubject($event)" aria-label="add subject" translate translate-attr-label="INTEGRATIONS.ADD_SUBJECT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedSubjects.length}} {{vm_cc.selectedSubjects.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedSubjects($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedSubjects">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="subject" md-select-id="id" ng-repeat="subject in vm_cc.subjects | filter: vm_cc.query.subject">\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="id ">{{subject.id}}</td>\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="type ">\n <span ng-if="subject.FieldId">{{subject.nameField || subject.idField}}</span>\n <span ng-if="!subject.FieldId">{{subject.type}}</span>\n </td>\n <td ng-switch="subject.type" ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell>\n <span ng-switch-when="string">{{subject.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{subject.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{subject.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{subject.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditSubject($event, subject)" translate="INTEGRATIONS.EDIT_SUBJECT">\n Edit Subject\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteSubjectConfirm($event, subject)" translate="INTEGRATIONS.DELETE_SUBJECT">\n Delete Subject\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.DESCRIPTIONS">DESCRIPTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.description = query" on-collapse="vm_cc.query.description = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditDescription($event)" aria-label="add description" translate translate-attr-label="INTEGRATIONS.ADD_DESCRIPTION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedDescriptions.length}} {{vm_cc.selectedDescriptions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedDescriptions($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedDescriptions">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="description" md-select-id="id" ng-repeat="description in vm_cc.descriptions | filter: vm_cc.query.description">\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="id ">{{description.id}}</td>\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="type ">\n <span ng-if="description.FieldId">{{description.nameField || description.idField}}</span>\n <span ng-if="!description.FieldId">{{description.type}}</span>\n </td>\n <td ng-switch="description.type" ng-click="vm_cc.createOrEditDescription($event, description)" md-cell>\n <span ng-switch-when="string">{{description.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{description.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{description.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{description.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditDescription($event, description)" translate="INTEGRATIONS.EDIT_DESCRIPTION">\n Edit Description\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteDescriptionConfirm($event, description)" translate="INTEGRATIONS.DELETE_DESCRIPTION">\n Delete Description\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.FIELDS">FIELDS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.field = query" on-collapse="vm_cc.query.field = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditField($event)" aria-label="add field" translate translate-attr-label="INTEGRATIONS.ADD_FIELD">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedFields.length}} {{vm_cc.selectedFields.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedFields($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedFields">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="field" md-select-id="id" ng-repeat="field in vm_cc.fields | filter: vm_cc.query.field">\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="id ">{{field.id}}</td>\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="type ">\n <span ng-if="field.FieldId">{{field.nameField || field.idField}}</span>\n <span ng-if="!field.FieldId">{{field.type}}</span>\n </td>\n <td ng-switch="field.type" ng-click="vm_cc.createOrEditField($event, field)" md-cell>\n <span ng-switch-when="string">{{field.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{field.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{field.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{field.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditField($event, field)" translate="INTEGRATIONS.EDIT_FIELD">\n Edit Field\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteFieldConfirm($event, field)" translate="INTEGRATIONS.DELETE_FIELD">\n Delete Field\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.configurations.length && vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditVtigerConfiguration($event)" layout="row" layout-sm="column" layout-align="center center" layout-wrap>\n <div class="padding-20 md-whiteframe-3dp md-accent-bg" layout="column" layout-align="center center">\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <span aria-label="add configuration" translate translate-attr-label="INTEGRATIONS.ADD_CONFIGURATION">ADD CONFIGURATION</span>\n </div>\n </div>\n </md-card>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/integrations/views/vtigerAccounts/vtigerAccounts.html",'<div id="vtigerAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-heart" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="INTEGRATIONS.VTIGERACCOUNTS">VtigerAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedVtigerAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedVtigerAccounts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="INTEGRATIONS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-vtigerAccounts-count">\n <span>{{vm.selectedVtigerAccounts.length}}</span>\n <span translate="INTEGRATIONS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="INTEGRATIONS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllVtigerAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectVtigerAccounts()" translate="INTEGRATIONS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedVtigerAccounts" csv-label="true" filename="vtigerAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedVtigerAccounts($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- VTIGERACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedVtigerAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getVtigerAccounts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'INTEGRATIONS.NAME\' | translate }}</th>\n <th md-column md-order-by="username">{{ \'INTEGRATIONS.VTIGER_USER_NAME\' | translate }}</th>\n <th md-column md-order-by="remoteUri">{{ \'INTEGRATIONS.HOST\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.vtigerAccounts.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="vtigerAccount" md-select-id="id" ng-repeat="vtigerAccount in vm.vtigerAccounts.rows">\n <td md-cell ng-if="vtigerAccount.userpic"><img class="avatar" alt="{{vtigerAccount.name}}" ng-src="api/users/{{vtigerAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!vtigerAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{vtigerAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(vtigerAccount, ev) : vm.createOrEditVtigerAccount($event, vtigerAccount)" md-cell class="id ">{{vtigerAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(vtigerAccount, ev) : vm.createOrEditVtigerAccount($event, vtigerAccount)" md-cell class="name ">{{vtigerAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(vtigerAccount, ev) : vm.createOrEditVtigerAccount($event, vtigerAccount)" md-cell class="username ">{{vtigerAccount.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(vtigerAccount, ev) : vm.createOrEditVtigerAccount($event, vtigerAccount)" md-cell class="remoteUri ">{{vtigerAccount.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(vtigerAccount, $event )" translate="INTEGRATIONS.EDIT_VTIGERACCOUNT">\n Edit VtigerAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(vtigerAccount, $event )" translate="INTEGRATIONS.TEST_VTIGERACCOUNT">\n Test VtigerAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(vtigerAccount, $event )" translate="INTEGRATIONS.DELETE_VTIGERACCOUNT">\n Delete VtigerAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.vtigerAccounts.count}}" md-on-paginate="vm.getVtigerAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / VTIGERACCOUNT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD VTIGERACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-vtigerAccount-button" ng-click="vm.createOrEditVtigerAccount($event)" aria-label="add vtigerAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_VTIGERACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD VTIGERACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/integrations/views/zendeskAccounts/create/dialog.html",'<md-dialog class="zendeskAccount-dialog" aria-label="New ZendeskAccount">\n <form name="zendeskAccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.zendeskAccount.name" ng-required="true" autofocus>\n\n <div ng-messages="zendeskAccountForm[\'name\'].$error" ng-show="zendeskAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.zendeskAccount.type" required>\n\n <md-option ng-value="\'integrationTab\'"> {{ \'INTEGRATIONS.INTEGRATION_TAB\' | translate }} </md-option>\n\n <md-option ng-value="\'newTab\'"> {{ \'INTEGRATIONS.NEW_TAB\' | translate }} </md-option>\n </md-select>\n <div ng-messages="zendeskAccountForm[\'type\'].$error" ng-show="zendeskAccountForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.zendeskAccount.username" ng-required="true">\n\n <div ng-messages="zendeskAccountForm[\'username\'].$error" ng-show="zendeskAccountForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.zendeskAccount.remoteUri" ng-required="true">\n\n <div ng-messages="zendeskAccountForm[\'remoteUri\'].$error" ng-show="zendeskAccountForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.AUTHTYPE">AuthType</label>\n <md-select name="authType" ng-model="vm.zendeskAccount.authType" required>\n <md-option ng-value="\'password\'">Password</md-option>\n <md-option ng-value="\'token\'">Token</md-option>\n </md-select>\n <div ng-messages="zendeskAccountForm[\'authType\'].$error" ng-show="zendeskAccountForm[\'authType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.AUTHTYPE_REQUIRED">AuthType field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.zendeskAccount.authType == \'password\'">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.zendeskAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="zendeskAccountForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container ng-if="vm.zendeskAccount.authType == \'token\'" class="md-block">\n <label translate="INTEGRATIONS.TOKEN">Token</label>\n <input type="text" name="token" ng-model="vm.zendeskAccount.token" ng-required="true">\n\n <div ng-messages="zendeskAccountForm[\'token\'].$error" ng-show="zendeskAccountForm[\'token\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TOKEN_REQUIRED">Token field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.zendeskAccount.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="zendeskAccountForm[\'serverUrl\'].$error" ng-show="zendeskAccountForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.zendeskAccount.description">\n\n <div ng-messages="zendeskAccountForm[\'description\'].$error" ng-show="zendeskAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newZendeskAccount" ng-click="vm.saveZendeskAccount()" class="send-button md-accent md-raised" ng-disabled="zendeskAccountForm.$invalid || zendeskAccountForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newZendeskAccount" ng-click="vm.addNewZendeskAccount()" class="send-button md-accent md-raised" ng-disabled="zendeskAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_ZENDESKACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_ZENDESKACCOUNT">\n ADD ZENDESKACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newZendeskAccount" ng-click="vm.deleteZendeskAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/zendeskAccounts/edit/item/dialog.html",'<md-dialog class="zendeskAccount-item-dialog" aria-label="New Item">\n <form name="zendeskAccountItemForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <div ng-switch="vm.type">\n <div ng-switch-when="subject">\n \x3c!-- SUBJECT SECTION --\x3e\n <div ng-include="\'/subject.html\'"></div>\n \x3c!-- / SUBJECT SECTION --\x3e\n </div>\n <div ng-switch-when="description">\n \x3c!-- DESCRIPTION SECTION --\x3e\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="keyValue">Key Value</md-option>\n </md-select>\n <div ng-messages="zendeskAccountItemForm.type.$error" ng-show="zendeskAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="zendeskAccountItemForm.content.$error" ng-show="zendeskAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field\n is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.item.type == \'keyValue\'">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.item.key" required md-autofocus>\n <div ng-messages="zendeskAccountItemForm.key.$error" ng-show="zendeskAccountItemForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="keyType" ng-model="vm.item.keyType" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="zendeskAccountItemForm.keyType.$error" ng-show="zendeskAccountItemForm.keyType.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="keyContent" ng-model="vm.item.keyContent" required md-autofocus>\n <div ng-messages="zendeskAccountItemForm.keyContent.$error" ng-show="zendeskAccountItemForm.keyContent.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content\n field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="zendeskAccountItemForm.variableName.$error" ng-show="zendeskAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable\n name field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}\n </md-option>\n </md-select>\n </md-input-container>\n </div>\n \x3c!-- / DESCRIPTION SECTION --\x3e\n </div>\n <div ng-switch-when="field">\n \x3c!-- FIELD SECTION --\x3e\n <div ng-if="vm.accountConnected">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.FIELD">FIELD</label>\n \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\n </md-select>\n <div ng-messages="zendeskAccountItemForm.customField.$error" ng-show="zendeskAccountItemForm.customField.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\n </div>\n <div ng-if="!vm.accountConnected">\n <p>Account is not connected. Please check your configurations!</p>\n </div>\n \x3c!-- / FIELD SECTION --\x3e\n </div>\n <div ng-switch-default>\n <p>No Item</p>\n </div>\n </div>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="zendeskAccountItemForm.$invalid || zendeskAccountItemForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="zendeskAccountItemForm.$invalid || zendeskAccountItemForm.$pristine" aria-label="ADD" translate="INTEGRATIONS.ADD" translate-attr-aria-label="INTEGRATIONS.ADD">\n ADD\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newItem" ng-click="vm.deleteItem($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>\n\n<script type="text/ng-template" id="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n <md-option ng-if="vm.customField.options.length" value="picklist">Picklist</md-option>\n </md-select>\n <div ng-messages="zendeskAccountItemForm.type.$error" ng-show="zendeskAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <md-select name="option" ng-model="vm.item.content" required>\n <md-option ng-value="option.value" ng-repeat="option in vm.customField.options">{{option.name}}</md-option>\n </md-select>\n\n <div ng-messages="zendeskAccountItemForm.option.$error" ng-show="zendeskAccountItemForm.option.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\n <div ng-messages="zendeskAccountItemForm.content.$error" ng-show="zendeskAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="zendeskAccountItemForm.variableName.$error" ng-show="zendeskAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!--/ value --\x3e\n\n<\/script>\n\n<script type="text/ng-template" id="/subject.html">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="zendeskAccountItemForm.type.$error" ng-show="zendeskAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n \n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="zendeskAccountItemForm.content.$error"\n ng-show="zendeskAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="zendeskAccountItemForm.variableName.$error"\n ng-show="zendeskAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n <\/script>'),e.put("app/main/apps/integrations/views/zendeskAccounts/edit/view.html",'<div id="integrations-zendeskAccount" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-zendeskAccounts-button md-icon-button" aria-label="Go to zendeskAccounts" ng-click="vm.gotoZendeskAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_ZENDESKACCOUNTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="zendeskAccount-image" hide-xs>\n <img ng-src="assets/images/business/zendeskAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.zendeskAccount.id}}\n <span ng-if="vm.zendeskAccount.name">{{vm.zendeskAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.zendeskAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveZendeskAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (zendeskConfigurationsForm.$invalid)" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="zendeskAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.zendeskAccount.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.zendeskAccount.type" required ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'integrationTab\'"> {{ \'INTEGRATIONS.INTEGRATION_TAB\' | translate }} </md-option>\n\n <md-option ng-value="\'newTab\'"> {{ \'INTEGRATIONS.NEW_TAB\' | translate }} </md-option>\n </md-select>\n <div ng-messages="generalForm[\'type\'].$error" ng-show="generalForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.zendeskAccount.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'username\'].$error" ng-show="generalForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.zendeskAccount.remoteUri" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'remoteUri\'].$error" ng-show="generalForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.AUTHTYPE">AuthType</label>\n <md-select name="authType" ng-model="vm.zendeskAccount.authType" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'password\'">Password</md-option>\n <md-option ng-value="\'token\'">Token</md-option>\n </md-select>\n <div ng-messages="generalForm[\'authType\'].$error" ng-show="generalForm[\'authType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.AUTHTYPE_REQUIRED">AuthType field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.zendeskAccount.authType == \'password\'">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.zendeskAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="generalForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container ng-if="vm.zendeskAccount.authType == \'token\'" class="md-block">\n <label translate="INTEGRATIONS.TOKEN">Token</label>\n <input type="text" name="token" ng-model="vm.zendeskAccount.token" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'token\'].$error" ng-show="generalForm[\'token\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TOKEN_REQUIRED">Token field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.zendeskAccount.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="generalForm[\'serverUrl\'].$error" ng-show="generalForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.zendeskAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="zendeskAccount-detail-form-container zendeskconfigurations md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.ZENDESKCONFIGURATIONS">ZENDESKCONFIGURATIONS</div>\n </div>\n <div ng-controller="ZendeskAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.zendeskAccount, vm.crudPermissions)" layout="row">\n <md-card class="md-whiteframe-1dp" flex="30">\n <div layout="row" layout-align="center center">\n <md-subheader flex="75" class="md-no-sticky">{{ \'INTEGRATIONS.CONFIGURATIONS\' | translate }}</md-subheader>\n <md-button flex="25" ng-if="vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditZendeskConfiguration($event)" class="md-icon-button" aria-label="create zendeskConfiguration">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n <md-list>\n <md-list-item layout="row" layout-align="center center" ng-repeat="zendeskConfiguration in vm_cc.zendeskConfigurations" class="border-top" md-colors="{background: (vm_cc.selectedZendeskConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getZendeskConfiguration($index)">\n <span class="text-truncate" flex="80">{{ zendeskConfiguration.name }}</span>\n <md-menu ng-if="vm_cc.crudPermissions.canDelete">\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteZendeskConfiguration($event, zendeskConfiguration)" translate="INTEGRATIONS.DELETE_ZENDESKCONFIGURATION">\n Delete ZendeskConfiguration\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-list-item>\n </md-list>\n </md-card>\n <div flex></div>\n <md-card class="md-whiteframe-1dp" flex="65">\n <md-tabs ng-if="vm_cc.zendeskConfigurations.length" md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.SUBJECTS">SUBJECTS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.subject = query" on-collapse="vm_cc.query.subject = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditSubject($event)" aria-label="add subject" translate translate-attr-label="INTEGRATIONS.ADD_SUBJECT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedSubjects.length}} {{vm_cc.selectedSubjects.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedSubjects($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedSubjects">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="subject" md-select-id="id" ng-repeat="subject in vm_cc.subjects | filter: vm_cc.query.subject">\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="id ">{{subject.id}}</td>\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="type ">\n <span ng-if="subject.FieldId">{{subject.nameField || subject.idField}}</span>\n <span ng-if="!subject.FieldId">{{subject.type}}</span>\n </td>\n <td ng-switch="subject.type" ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell>\n <span ng-switch-when="string">{{subject.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{subject.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{subject.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{subject.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditSubject($event, subject)" translate="INTEGRATIONS.EDIT_SUBJECT">\n Edit Subject\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteSubjectConfirm($event, subject)" translate="INTEGRATIONS.DELETE_SUBJECT">\n Delete Subject\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.DESCRIPTIONS">DESCRIPTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.description = query" on-collapse="vm_cc.query.description = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditDescription($event)" aria-label="add description" translate translate-attr-label="INTEGRATIONS.ADD_DESCRIPTION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedDescriptions.length}} {{vm_cc.selectedDescriptions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedDescriptions($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedDescriptions">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="description" md-select-id="id" ng-repeat="description in vm_cc.descriptions | filter: vm_cc.query.description">\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="id ">{{description.id}}</td>\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="type ">\n <span ng-if="description.FieldId">{{description.nameField || description.idField}}</span>\n <span ng-if="!description.FieldId">{{description.type}}</span>\n </td>\n <td ng-switch="description.type" ng-click="vm_cc.createOrEditDescription($event, description)" md-cell>\n <span ng-switch-when="string">{{description.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{description.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{description.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{description.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditDescription($event, description)" translate="INTEGRATIONS.EDIT_DESCRIPTION">\n Edit Description\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteDescriptionConfirm($event, description)" translate="INTEGRATIONS.DELETE_DESCRIPTION">\n Delete Description\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.FIELDS">FIELDS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.field = query" on-collapse="vm_cc.query.field = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditField($event)" aria-label="add field" translate translate-attr-label="INTEGRATIONS.ADD_FIELD">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedFields.length}} {{vm_cc.selectedFields.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedFields($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedFields">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="field" md-select-id="id" ng-repeat="field in vm_cc.fields | filter: vm_cc.query.field">\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="id ">{{field.id}}</td>\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="type ">\n <span ng-if="field.FieldId">{{field.nameField || field.idField}}</span>\n <span ng-if="!field.FieldId">{{field.type}}</span>\n </td>\n <td ng-switch="field.type" ng-click="vm_cc.createOrEditField($event, field)" md-cell>\n <span ng-switch-when="string">{{field.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{field.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{field.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{field.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditField($event, field)" translate="INTEGRATIONS.EDIT_FIELD">\n Edit Field\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteFieldConfirm($event, field)" translate="INTEGRATIONS.DELETE_FIELD">\n Delete Field\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.TAGS">TAGS</span>\n </md-tab-label>\n <md-tab-body>\n <md-table-container class="md-whiteframe-1dp padding-20">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TAGS">Tags</label>\n <md-select ng-model="vm_cc.selectedTags" ng-change="vm_cc.selectTagsChanged($event)" multiple>\n <md-option ng-value="tag.id" ng-repeat="tag in vm_cc.tags">{{ tag.name }}</md-option>\n </md-select>\n </md-input-container>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.zendeskConfigurations.length && vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditZendeskConfiguration($event)" layout="row" layout-sm="column" layout-align="center center" layout-wrap>\n <div class="padding-20 md-whiteframe-3dp md-accent-bg" layout="column" layout-align="center center">\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <span aria-label="add configuration" translate translate-attr-label="INTEGRATIONS.ADD_CONFIGURATION">ADD CONFIGURATION</span>\n </div>\n </div>\n </md-card>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/integrations/views/zendeskAccounts/edit/zendeskConfigurations/dialog.html",'<md-dialog class="zendeskConfiguration-dialog" aria-label="New ZendeskConfiguration">\n <form name="zendeskConfigurationForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="" name="name" ng-model="vm.zendeskConfiguration.name" ng-required="true" autofocus>\n\n <div ng-messages="zendeskConfigurationForm[\'name\'].$error" ng-show="zendeskConfigurationForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CHANNEL">Channel</label>\n <md-select name="channel" ng-model="vm.zendeskConfiguration.channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="zendeskConfigurationForm[\'channel\'].$error" ng-show="zendeskConfigurationForm[\'channel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.zendeskConfiguration.type" required>\n\n <md-option ng-value="\'inbound\'"> {{ \'INTEGRATIONS.INBOUND_IN_QUEUE\' | translate }} </md-option>\n\n <md-option ng-value="\'outbound\'"> {{ \'INTEGRATIONS.OUTBOUND_CALL\' | translate }} </md-option>\n </md-select>\n <div ng-messages="zendeskConfigurationForm[\'type\'].$error" ng-show="zendeskConfigurationForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newZendeskConfiguration" ng-click="vm.saveZendeskConfiguration()" class="send-button md-accent md-raised" ng-disabled="zendeskConfigurationForm.$invalid || zendeskConfigurationForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newZendeskConfiguration" ng-click="vm.addNewZendeskConfiguration()" class="send-button md-accent md-raised" ng-disabled="zendeskConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_ZENDESKCONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_ZENDESKCONFIGURATION">\n ADD ZENDESKCONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newZendeskConfiguration" ng-click="vm.deleteZendeskConfiguration($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/zendeskAccounts/zendeskAccounts.html",'<div id="zendeskAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-heart" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="INTEGRATIONS.ZENDESKACCOUNTS">ZendeskAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedZendeskAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedZendeskAccounts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="INTEGRATIONS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-zendeskAccounts-count">\n <span>{{vm.selectedZendeskAccounts.length}}</span>\n <span translate="INTEGRATIONS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="INTEGRATIONS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllZendeskAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectZendeskAccounts()" translate="INTEGRATIONS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedZendeskAccounts" csv-label="true" filename="zendeskAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedZendeskAccounts($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- ZENDESKACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedZendeskAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getZendeskAccounts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'INTEGRATIONS.NAME\' | translate }}</th>\n <th md-column md-order-by="username">{{ \'INTEGRATIONS.USERNAME\' | translate }}</th>\n <th md-column md-order-by="remoteUri">{{ \'INTEGRATIONS.URI\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.zendeskAccounts.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="zendeskAccount" md-select-id="id" ng-repeat="zendeskAccount in vm.zendeskAccounts.rows">\n <td md-cell ng-if="zendeskAccount.userpic"><img class="avatar" alt="{{zendeskAccount.name}}" ng-src="api/users/{{zendeskAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!zendeskAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{zendeskAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zendeskAccount, ev) : vm.createOrEditZendeskAccount($event, zendeskAccount)" md-cell class="id ">{{zendeskAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zendeskAccount, ev) : vm.createOrEditZendeskAccount($event, zendeskAccount)" md-cell class="name ">{{zendeskAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zendeskAccount, ev) : vm.createOrEditZendeskAccount($event, zendeskAccount)" md-cell class="username ">{{zendeskAccount.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zendeskAccount, ev) : vm.createOrEditZendeskAccount($event, zendeskAccount)" md-cell class="remoteUri ">{{zendeskAccount.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(zendeskAccount, $event )" translate="INTEGRATIONS.EDIT_ZENDESKACCOUNT">\n Edit ZendeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(zendeskAccount, $event )" translate="INTEGRATIONS.TEST_ZENDESKACCOUNT">\n Test ZendeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(zendeskAccount, $event )" translate="INTEGRATIONS.DELETE_ZENDESKACCOUNT">\n Delete ZendeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.zendeskAccounts.count}}" md-on-paginate="vm.getZendeskAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / ZENDESKACCOUNT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD ZENDESKACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-zendeskAccount-button" ng-click="vm.createOrEditZendeskAccount($event)" aria-label="add zendeskAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_ZENDESKACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD ZENDESKACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/integrations/views/zohoAccounts/create/dialog.html",'<md-dialog class="zohoAccount-dialog" aria-label="New ZohoAccount">\n <form name="zohoAccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.zohoAccount.name" ng-required="true" autofocus>\n\n <div ng-messages="zohoAccountForm[\'name\'].$error" ng-show="zohoAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.HOST">Host</label>\n <md-select name="host" ng-model="vm.zohoAccount.host" required>\n <md-option ng-value="\'zoho.com\'">zoho.com</md-option>\n <md-option ng-value="\'zoho.eu\'">zoho.eu</md-option>\n </md-select>\n <div ng-messages="zohoAccountForm[\'host\'].$error" ng-show="zohoAccountForm[\'host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.HOST_REQUIRED">Host field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.ZONE">Zone</label>\n <md-select name="zone" ng-model="vm.zohoAccount.zone" required>\n <md-option ng-value="\'US\'">US</md-option>\n <md-option ng-value="\'AU\'">AU</md-option>\n <md-option ng-value="\'EU\'">EU</md-option>\n <md-option ng-value="\'IN\'">IN</md-option>\n <md-option ng-value="\'CN\'">CN</md-option>\n </md-select>\n <div class="hint"><span translate="INTEGRATIONS.HELP.ZONE"></span></div>\n <div ng-messages="zohoAccountForm[\'zone\'].$error" ng-show="zohoAccountForm[\'zone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.ZONE_REQUIRED">Zone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTID">ClientId</label>\n <input type="text" name="clientId" ng-model="vm.zohoAccount.clientId" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.CLIENTID"></span></div>\n <div ng-messages="zohoAccountForm[\'clientId\'].$error" ng-show="zohoAccountForm[\'clientId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTID_REQUIRED">ClientId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTSECRET">ClientSecret</label>\n <input type="text" name="clientSecret" ng-model="vm.zohoAccount.clientSecret" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.CLIENTSECRET"></span></div>\n <div ng-messages="zohoAccountForm[\'clientSecret\'].$error" ng-show="zohoAccountForm[\'clientSecret\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTSECRET_REQUIRED">ClientSecret field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CODE">Code</label>\n <input type="text" name="code" ng-model="vm.zohoAccount.code" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.CODE"></span></div>\n <div ng-messages="zohoAccountForm[\'code\'].$error" ng-show="zohoAccountForm[\'code\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CODE_REQUIRED">Code field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.zohoAccount.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="zohoAccountForm[\'serverUrl\'].$error" ng-show="zohoAccountForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.zohoAccount.description">\n\n <div ng-messages="zohoAccountForm[\'description\'].$error" ng-show="zohoAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newZohoAccount" ng-click="vm.saveZohoAccount()" class="send-button md-accent md-raised" ng-disabled="zohoAccountForm.$invalid || zohoAccountForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newZohoAccount" ng-click="vm.addNewZohoAccount()" class="send-button md-accent md-raised" ng-disabled="zohoAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_ZOHOACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_ZOHOACCOUNT">\n ADD ZOHOACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newZohoAccount" ng-click="vm.deleteZohoAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/zohoAccounts/edit/configurations/dialog.html",'<md-dialog class="zohoConfiguration-dialog" aria-label="New ZohoConfiguration">\n <form name="zohoConfigurationForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="" name="name" ng-model="vm.zohoConfiguration.name" ng-required="true" autofocus>\n\n <div ng-messages="zohoConfigurationForm[\'name\'].$error" ng-show="zohoConfigurationForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CHANNEL">Channel</label>\n <md-select name="channel" ng-model="vm.zohoConfiguration.channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="zohoConfigurationForm[\'channel\'].$error" ng-show="zohoConfigurationForm[\'channel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.zohoConfiguration.type" required>\n\n <md-option ng-value="\'inbound\'"> {{ \'INTEGRATIONS.INBOUND_IN_QUEUE\' | translate }} </md-option>\n\n <md-option ng-value="\'outbound\'"> {{ \'INTEGRATIONS.OUTBOUND_CALL\' | translate }} </md-option>\n </md-select>\n <div ng-messages="zohoConfigurationForm[\'type\'].$error" ng-show="zohoConfigurationForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newZohoConfiguration" ng-click="vm.saveZohoConfiguration()" class="send-button md-accent md-raised" ng-disabled="zohoConfigurationForm.$invalid || zohoConfigurationForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newZohoConfiguration" ng-click="vm.addNewZohoConfiguration()" class="send-button md-accent md-raised" ng-disabled="zohoConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_ZOHOCONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_ZOHOCONFIGURATION">\n ADD ZOHOCONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newZohoConfiguration" ng-click="vm.deleteZohoConfiguration($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/zohoAccounts/edit/item/dialog.html",'<md-dialog class="zohoAccount-item-dialog" aria-label="New Item">\n <form name="zohoAccountItemForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <div ng-switch="vm.type">\n <div ng-switch-when="subject">\n \x3c!-- SUBJECT SECTION --\x3e\n <div ng-include="\'/subject.html\'"></div>\n \x3c!-- / SUBJECT SECTION --\x3e\n </div>\n <div ng-switch-when="description">\n \x3c!-- DESCRIPTION SECTION --\x3e\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="keyValue">Key Value</md-option>\n </md-select>\n <div ng-messages="zohoAccountItemForm.type.$error" ng-show="zohoAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="zohoAccountItemForm.content.$error" ng-show="zohoAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field\n is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.item.type == \'keyValue\'">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.item.key" required md-autofocus>\n <div ng-messages="zohoAccountItemForm.key.$error" ng-show="zohoAccountItemForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="keyType" ng-model="vm.item.keyType" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="zohoAccountItemForm.keyType.$error" ng-show="zohoAccountItemForm.keyType.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="keyContent" ng-model="vm.item.keyContent" required md-autofocus>\n <div ng-messages="zohoAccountItemForm.keyContent.$error" ng-show="zohoAccountItemForm.keyContent.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content\n field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="zohoAccountItemForm.variableName.$error" ng-show="zohoAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable\n name field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}\n </md-option>\n </md-select>\n </md-input-container>\n </div>\n \x3c!-- / DESCRIPTION SECTION --\x3e\n </div>\n <div ng-switch-when="field">\n \x3c!-- FIELD SECTION --\x3e\n <div ng-if="vm.accountConnected">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.FIELD">FIELD</label>\n \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\n </md-select>\n <div ng-messages="zohoAccountItemForm.customField.$error" ng-show="zohoAccountItemForm.customField.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\n </div>\n <div ng-if="!vm.accountConnected">\n <p>Account is not connected. Please check your configurations!</p>\n </div>\n \x3c!-- / FIELD SECTION --\x3e\n </div>\n <div ng-switch-default>\n <p>No Item</p>\n </div>\n </div>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="zohoAccountItemForm.$invalid || zohoAccountItemForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="zohoAccountItemForm.$invalid || zohoAccountItemForm.$pristine" aria-label="ADD" translate="INTEGRATIONS.ADD" translate-attr-aria-label="INTEGRATIONS.ADD">\n ADD\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newItem" ng-click="vm.deleteItem($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>\n\n<script type="text/ng-template" id="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n <md-option ng-if="vm.customField.options.length" value="picklist">Picklist</md-option>\n </md-select>\n <div ng-messages="zohoAccountItemForm.type.$error" ng-show="zohoAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <md-select name="option" ng-model="vm.item.content" required>\n <md-option ng-value="option.value" ng-repeat="option in vm.customField.options">{{option.name}}</md-option>\n </md-select>\n\n <div ng-messages="zohoAccountItemForm.option.$error" ng-show="zohoAccountItemForm.option.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\n <div ng-messages="zohoAccountItemForm.content.$error" ng-show="zohoAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="zohoAccountItemForm.variableName.$error" ng-show="zohoAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!--/ value --\x3e\n\n<\/script>\n\n<script type="text/ng-template" id="/subject.html">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="zohoAccountItemForm.type.$error" ng-show="zohoAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n \n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="zohoAccountItemForm.content.$error"\n ng-show="zohoAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="zohoAccountItemForm.variableName.$error"\n ng-show="zohoAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n <\/script>'),e.put("app/main/apps/integrations/views/zohoAccounts/edit/view.html",'<div id="integrations-zohoAccount" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-zohoAccounts-button md-icon-button" aria-label="Go to zohoAccounts" ng-click="vm.gotoZohoAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_ZOHOACCOUNTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="zohoAccount-image" hide-xs>\n <img ng-src="assets/images/business/zohoAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.zohoAccount.id}}\n <span ng-if="vm.zohoAccount.name">{{vm.zohoAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.zohoAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveZohoAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (configurationsForm.$invalid)" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="zohoAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.zohoAccount.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.HOST">Host</label>\n <md-select name="host" ng-model="vm.zohoAccount.host" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'zoho.com\'">zoho.com</md-option>\n <md-option ng-value="\'zoho.eu\'">zoho.eu</md-option>\n </md-select>\n <div ng-messages="generalForm[\'host\'].$error" ng-show="generalForm[\'host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.HOST_REQUIRED">Host field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.ZONE">Zone</label>\n <md-select name="zone" ng-model="vm.zohoAccount.zone" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'US\'">US</md-option>\n <md-option ng-value="\'AU\'">AU</md-option>\n <md-option ng-value="\'EU\'">EU</md-option>\n <md-option ng-value="\'IN\'">IN</md-option>\n <md-option ng-value="\'CN\'">CN</md-option>\n </md-select>\n <div class="hint"><span translate="INTEGRATIONS.HELP.ZONE"></span></div>\n <div ng-messages="generalForm[\'zone\'].$error" ng-show="generalForm[\'zone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.ZONE_REQUIRED">Zone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTID">ClientId</label>\n <input type="text" name="clientId" ng-model="vm.zohoAccount.clientId" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.CLIENTID"></span></div>\n <div ng-messages="generalForm[\'clientId\'].$error" ng-show="generalForm[\'clientId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTID_REQUIRED">ClientId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTSECRET">ClientSecret</label>\n <input type="text" name="clientSecret" ng-model="vm.zohoAccount.clientSecret" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.CLIENTSECRET"></span></div>\n <div ng-messages="generalForm[\'clientSecret\'].$error" ng-show="generalForm[\'clientSecret\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTSECRET_REQUIRED">ClientSecret field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CODE">Code</label>\n <input type="text" name="code" ng-model="vm.zohoAccount.code" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.CODE"></span></div>\n <div ng-messages="generalForm[\'code\'].$error" ng-show="generalForm[\'code\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CODE_REQUIRED">Code field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.REFRESHTOKEN">RefreshToken</label>\n <input type="text" name="refreshToken" ng-model="vm.zohoAccount.refreshToken" disabled>\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.REFRESHTOKEN"></span></div>\n <div ng-messages="generalForm[\'refreshToken\'].$error" ng-show="generalForm[\'refreshToken\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.REFRESHTOKEN_REQUIRED">RefreshToken field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.zohoAccount.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="generalForm[\'serverUrl\'].$error" ng-show="generalForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.zohoAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="zohoAccount-detail-form-container configurations md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</div>\n </div>\n <div ng-controller="ZohoAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.zohoAccount, vm.crudPermissions)" layout="row">\n <md-card class="md-whiteframe-1dp" flex="30">\n <div layout="row" layout-align="center center">\n <md-subheader flex="75" class="md-no-sticky">{{ \'INTEGRATIONS.CONFIGURATIONS\' | translate }}</md-subheader>\n <md-button flex="25" ng-if="vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditZohoConfiguration($event)" class="md-icon-button" aria-label="create zohoConfiguration">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n <md-list>\n <md-list-item layout="row" layout-align="center center" ng-repeat="zohoConfiguration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedZohoConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getZohoConfiguration($index)">\n <span class="text-truncate" flex="80">{{ zohoConfiguration.name }}</span>\n <md-menu ng-if="vm_cc.crudPermissions.canDelete">\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteZohoConfiguration($event, zohoConfiguration)" translate="INTEGRATIONS.DELETE_ZOHOCONFIGURATION">\n Delete ZohoConfiguration\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-list-item>\n </md-list>\n </md-card>\n <div flex></div>\n <md-card class="md-whiteframe-1dp" flex="65">\n <md-tabs ng-if="vm_cc.configurations.length" md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.SUBJECTS">SUBJECTS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.subject = query" on-collapse="vm_cc.query.subject = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditSubject($event)" aria-label="add subject" translate translate-attr-label="INTEGRATIONS.ADD_SUBJECT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedSubjects.length}} {{vm_cc.selectedSubjects.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedSubjects($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedSubjects">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="subject" md-select-id="id" ng-repeat="subject in vm_cc.subjects | filter: vm_cc.query.subject">\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="id ">{{subject.id}}</td>\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="type ">\n <span ng-if="subject.FieldId">{{subject.nameField || subject.idField}}</span>\n <span ng-if="!subject.FieldId">{{subject.type}}</span>\n </td>\n <td ng-switch="subject.type" ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell>\n <span ng-switch-when="string">{{subject.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{subject.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{subject.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{subject.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditSubject($event, subject)" translate="INTEGRATIONS.EDIT_SUBJECT">\n Edit Subject\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteSubjectConfirm($event, subject)" translate="INTEGRATIONS.DELETE_SUBJECT">\n Delete Subject\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.DESCRIPTIONS">DESCRIPTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.description = query" on-collapse="vm_cc.query.description = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditDescription($event)" aria-label="add description" translate translate-attr-label="INTEGRATIONS.ADD_DESCRIPTION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedDescriptions.length}} {{vm_cc.selectedDescriptions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedDescriptions($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedDescriptions">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="description" md-select-id="id" ng-repeat="description in vm_cc.descriptions | filter: vm_cc.query.description">\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="id ">{{description.id}}</td>\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="type ">\n <span ng-if="description.FieldId">{{description.nameField || description.idField}}</span>\n <span ng-if="!description.FieldId">{{description.type}}</span>\n </td>\n <td ng-switch="description.type" ng-click="vm_cc.createOrEditDescription($event, description)" md-cell>\n <span ng-switch-when="string">{{description.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{description.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{description.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{description.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditDescription($event, description)" translate="INTEGRATIONS.EDIT_DESCRIPTION">\n Edit Description\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteDescriptionConfirm($event, description)" translate="INTEGRATIONS.DELETE_DESCRIPTION">\n Delete Description\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.FIELDS">FIELDS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.field = query" on-collapse="vm_cc.query.field = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditField($event)" aria-label="add field" translate translate-attr-label="INTEGRATIONS.ADD_FIELD">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedFields.length}} {{vm_cc.selectedFields.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedFields($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedFields">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="field" md-select-id="id" ng-repeat="field in vm_cc.fields | filter: vm_cc.query.field">\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="id ">{{field.id}}</td>\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="type ">\n <span ng-if="field.FieldId">{{field.nameField || field.idField}}</span>\n <span ng-if="!field.FieldId">{{field.type}}</span>\n </td>\n <td ng-switch="field.type" ng-click="vm_cc.createOrEditField($event, field)" md-cell>\n <span ng-switch-when="string">{{field.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{field.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{field.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{field.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditField($event, field)" translate="INTEGRATIONS.EDIT_FIELD">\n Edit Field\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteFieldConfirm($event, field)" translate="INTEGRATIONS.DELETE_FIELD">\n Delete Field\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ADVANCED">\n ADVANCED\n </span>\n </md-tab-label>\n <md-tab-body>\n <div layout-margin>\n <label translate="INTEGRATIONS.MODULE_SEARCH"></label>\n <md-select ng-model="vm_cc.zohoConfiguration.moduleSearch" ng-change="vm_cc.selectChangedAdvanced()" ng-disabled="!vm_cc.crudPermissions.canEdit">\n <md-option ng-value="option.key" ng-repeat="option in [{key: \'contact_lead\', value: \'Contact & Lead\'}, {key: \'contact\', value: \'Contact\'}, {key: \'lead\', value: \'Lead\'}]">\n {{ option.value }}</md-option>\n </md-select>\n </div>\n <div layout-margin>\n <label translate="INTEGRATIONS.MODULE_CREATE"></label>\n <md-select ng-model="vm_cc.zohoConfiguration.moduleCreate" ng-change="vm_cc.selectChangedAdvanced()" ng-disabled="!vm_cc.crudPermissions.canEdit">\n <md-option ng-value="option.key" ng-repeat="option in [{key: \'nothing\', value: \'Nothing\'}, {key: \'contact\', value: \'Contact\'}, {key: \'lead\', value: \'Lead\'}]">\n {{ option.value }}</md-option>\n </md-select>\n </div>\n </md-tab-body>\n </md-tab>\n\n\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.configurations.length && vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditZohoConfiguration($event)" layout="row" layout-sm="column" layout-align="center center" layout-wrap>\n <div class="padding-20 md-whiteframe-3dp md-accent-bg" layout="column" layout-align="center center">\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <span aria-label="add configuration" translate translate-attr-label="INTEGRATIONS.ADD_CONFIGURATION">ADD CONFIGURATION</span>\n </div>\n </div>\n </md-card>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/integrations/views/zohoAccounts/zohoAccounts.html",'<div id="zohoAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-heart" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="INTEGRATIONS.ZOHOACCOUNTS">ZohoAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedZohoAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedZohoAccounts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="INTEGRATIONS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-zohoAccounts-count">\n <span>{{vm.selectedZohoAccounts.length}}</span>\n <span translate="INTEGRATIONS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="INTEGRATIONS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllZohoAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectZohoAccounts()" translate="INTEGRATIONS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedZohoAccounts" csv-label="true" filename="zohoAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedZohoAccounts($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- ZOHOACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedZohoAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getZohoAccounts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'INTEGRATIONS.NAME\' | translate }}</th>\n <th md-column md-order-by="host">{{ \'INTEGRATIONS.HOST\' | translate }}</th>\n <th md-column md-order-by="zone">{{ \'INTEGRATIONS.ZONE\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.zohoAccounts.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="zohoAccount" md-select-id="id" ng-repeat="zohoAccount in vm.zohoAccounts.rows">\n <td md-cell ng-if="zohoAccount.userpic"><img class="avatar" alt="{{zohoAccount.name}}" ng-src="api/users/{{zohoAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!zohoAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{zohoAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zohoAccount, ev) : vm.createOrEditZohoAccount($event, zohoAccount)" md-cell class="id ">{{zohoAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zohoAccount, ev) : vm.createOrEditZohoAccount($event, zohoAccount)" md-cell class="name ">{{zohoAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zohoAccount, ev) : vm.createOrEditZohoAccount($event, zohoAccount)" md-cell class="host ">{{ vm.arrayhost[zohoAccount.host].option }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zohoAccount, ev) : vm.createOrEditZohoAccount($event, zohoAccount)" md-cell class="zone ">{{ vm.arrayzone[zohoAccount.zone].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(zohoAccount, $event )" translate="INTEGRATIONS.EDIT_ZOHOACCOUNT">\n Edit ZohoAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(zohoAccount, $event )" translate="INTEGRATIONS.TEST_ZOHOACCOUNT">\n Test ZohoAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(zohoAccount, $event )" translate="INTEGRATIONS.DELETE_ZOHOACCOUNT">\n Delete ZohoAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.zohoAccounts.count}}" md-on-paginate="vm.getZohoAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / ZOHOACCOUNT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD ZOHOACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-zohoAccount-button" ng-click="vm.createOrEditZohoAccount($event)" aria-label="add zohoAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_ZOHOACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD ZOHOACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/jscripty/views/projects/create/dialog.html",'<md-dialog class="project-dialog" aria-label="New Project">\n <form name="projectForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="JSCRIPTY.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.project.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newProject">\n\n <div class="hint"><span translate="JSCRIPTY.HELP.NAME"></span></div>\n <div ng-messages="projectForm[\'name\'].$error" ng-show="projectForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="JSCRIPTY.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="JSCRIPTY.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="JSCRIPTY.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.project.description">\n\n <div ng-messages="projectForm[\'description\'].$error" ng-show="projectForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="JSCRIPTY.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newProject" ng-click="vm.saveProject()" class="send-button md-accent md-raised" ng-disabled="projectForm.$invalid || projectForm.$pristine" aria-label="SAVE" translate="JSCRIPTY.SAVE" translate-attr-aria-label="JSCRIPTY.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newProject" ng-click="vm.addNewProject()" class="send-button md-accent md-raised" ng-disabled="projectForm.$invalid" aria-label="ADD" translate="JSCRIPTY.ADD_PROJECT" translate-attr-aria-label="JSCRIPTY.ADD_PROJECT">\n ADD PROJECT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newProject" ng-click="vm.deleteProject($event)" aria-label="DELETE" translate translate-attr-aria-label="JSCRIPTY.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="JSCRIPTY.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/jscripty/views/projects/edit/clone/clone.html",'<md-dialog class="project-dialog" aria-label="Clone Project">\n <form name="projectForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="JSCRIPTY.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.project.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newProject">\n\n <div class="hint"><span translate="JSCRIPTY.HELP.NAME"></span></div>\n <div ng-messages="projectForm[\'name\'].$error" ng-show="projectForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="JSCRIPTY.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="JSCRIPTY.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <md-button type="submit" ng-click="vm.cloneProject()" class="send-button md-accent md-raised" ng-disabled="projectForm.$invalid" aria-label="CLONE" translate="JSCRIPTY.CLONE_PROJECT" translate-attr-aria-label="JSCRIPTY.CLONE_PROJECT">\n CLONE PROJECT\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/jscripty/views/projects/edit/sessions/dialog.html",'<md-dialog class="session-dialog" aria-label="New Session">\n <form name="sessionForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <md-list>\n <md-subheader class="md-no-sticky">\n <div class="margin-bottom-5"><span translate="JSCRIPTY.ANSWERS">Answers</span></div>\n <div class="subtitle secondary-text">\n <span translate="JSCRIPTY.STARTTIME" class="ng-scope font-weight-700">Start Time</span>: <span class="ng-binding">{{vm.session.starttime | date:\'medium\'}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="JSCRIPTY.MEMBERNAME" class="ng-scope font-weight-700">Member Name</span>: <span class="ng-binding">{{vm.session.membername}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="JSCRIPTY.PROJECT" class="ng-scope font-weight-700">Project</span>: <span class="ng-binding">{{vm.project.name}}</span>\n </div>\n </md-subheader>\n <md-list-item ng-if="vm.questions.rows.length" class="md-2-line contact-item" ng-repeat="question in vm.questions.rows">\n <div class="md-list-item-text compact">\n <h3>{{$index+1}}. {{question.question}}</h3>\n <p>{{question.answer}}</p>\n </div>\n <md-divider ng-if="!$last"></md-divider>\n </md-list-item>\n <md-list-item ng-if="!vm.questions.rows.length" class="md-2-line contact-item">\n <div class="md-list-item-text compact">\n <h3><span class="text-boxed-light" translate="JSCRIPTY.NO_RESULTS_AVAILABLE">No results available</span></h3>\n </div>\n </md-list-item>\n </md-list>\n\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/jscripty/views/projects/edit/view.html",'<div id="jscripty-project" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-projects-button md-icon-button" aria-label="Go to projects" ng-click="vm.gotoProjects()" translate translate-attr-aria-label="JSCRIPTY.GO_TO_PROJECTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="project-image" hide-xs>\n <img ng-src="assets/images/business/projects.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.project.id}}\n <span ng-if="vm.project.name">{{vm.project.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="JSCRIPTY.CREATED_AT"></span> <span>{{vm.project.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.clonedialog(vm.project, $event)" class="md-fab md-green-500-bg md-icon-button" aria-label="clone">\n <md-tooltip><span translate="JSCRIPTY.CLONE_PROJECT"></span></md-tooltip>\n <md-icon md-font-icon="icon-content-duplicate"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveProject()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (builderForm.$invalid) || (previewForm.$invalid) || (sessionsForm.$invalid) || (answersForm.$invalid)" translate="JSCRIPTY.SAVE" translate-attr-aria-label="JSCRIPTY.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="JSCRIPTY.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="project-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="JSCRIPTY.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="JSCRIPTY.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.project.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="JSCRIPTY.HELP.NAME"></span></div>\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="JSCRIPTY.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="JSCRIPTY.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.project.enableUncompleteSave" aria-label="EnableUncompleteSave" ng-disabled="!vm.crudPermissions.canEdit"><span translate="JSCRIPTY.ENABLEUNCOMPLETESAVE">EnableUncompleteSave</span></md-switch>\n <div class="hint"><span translate="JSCRIPTY.HELP.ENABLEUNCOMPLETESAVE"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.project.sendUnpauseOnSubmit" aria-label="SendUnpauseOnSubmit" ng-disabled="!vm.crudPermissions.canEdit"><span translate="JSCRIPTY.SENDUNPAUSEONSUBMIT">SendUnpauseOnSubmit</span></md-switch>\n <div class="hint"><span translate="JSCRIPTY.HELP.SENDUNPAUSEONSUBMIT"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="JSCRIPTY.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.project.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="JSCRIPTY.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="JSCRIPTY.BUILDER">BUILDER</span>\n </md-tab-label>\n <md-tab-body>\n <div class="project-detail-form-container builder md-background-bg md-whiteframe-1dp">\n <div ng-controller="ProjectBuilderController as vm_bc" ng-init="vm_bc.init(vm.project)">\n <mw-form-builder ng-if="vm_bc.project.formData" form-data="vm_bc.project.formData" options="vm_bc.optionsBuilder" read-only="false"></mw-form-builder>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="JSCRIPTY.PREVIEW">PREVIEW</span>\n </md-tab-label>\n <md-tab-body>\n <div class="project-detail-form-container preview md-background-bg md-whiteframe-1dp">\n <div layout="column" layout-align="center" ng-controller="ProjectViewerController as vm_vc" ng-init="vm_vc.init(vm.project)">\n <div layout="row" layout-align="center">\n <md-button class="md-raised md-accent" aria-label="Reset" ng-click="vm_vc.resetViewer()">\n Reset\n </md-button>\n </div>\n <mw-form-viewer ng-if="vm_vc.project.formData" form-data="vm_vc.project.formData" response-data="vm_vc.responseData" on-submit="vm_vc.onSubmit($event)" api="vm_vc.formViewer"></mw-form-viewer>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="JSCRIPTY.SESSIONS">SESSIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="project-detail-form-container sessions md-background-bg md-whiteframe-1dp">\n <div ng-controller="ProjectSessionsController as vm_dc" ng-init="vm_dc.init(vm.project, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedProjectSessions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="JSCRIPTY.SESSIONS">Sessions</span>\n <ms-search-bar on-search="vm_dc.getProjectSessions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedProjectSessions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedProjectSessions.length}} {{vm_dc.selectedProjectSessions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedProjectSessions" csv-label="true" filename="projects.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedProjectSessions($event)" aria-label="delete selected" translate translate-attr-label="JSCRIPTY.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedProjectSessions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getProjectSessions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'JSCRIPTY.ID\' | translate }}\n </th>\n <th md-column md-order-by="starttime">\n {{ \'JSCRIPTY.STARTTIME\' | translate }}\n </th>\n <th md-column md-order-by="endtime">\n {{ \'JSCRIPTY.ENDTIME\' | translate }}\n </th>\n <th md-column md-order-by="membername">\n {{ \'JSCRIPTY.MEMBERNAME\' | translate }}\n </th>\n <th md-column md-order-by="calleridnum">\n {{ \'JSCRIPTY.CALLERIDNUM\' | translate }}\n </th>\n <th md-column md-order-by="completed">\n {{ \'JSCRIPTY.COMPLETE\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="session" md-select-id="id" ng-repeat="session in vm_dc.projectSessions.rows">\n <td md-cell>\n {{session.id}}\n </td>\n <td md-cell>\n {{ session.starttime | formatdate }}\n </td>\n <td md-cell>\n {{ session.endtime | formatdate }}\n </td>\n <td md-cell>\n {{session.membername}}\n </td>\n <td md-cell>\n {{session.calleridnum}}\n </td>\n <td md-cell class="completed ">\n <md-icon md-colors="{color: {{session.completed ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{session.completed? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="JSCRIPTY.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm_dc.showQuestionsProjectSession($event, session)" translate="JSCRIPTY.SHOW_QUESTIONS_SESSION">\n Results Session\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(session, $event)" translate="JSCRIPTY.DELETE_SESSION">\n Delete Session\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.projectSessions.rows.length">\n <td md-cell colspan="8">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="JSCRIPTY.NO_SESSION_AVAILABLE">No session available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'JSCRIPTY.PAGE\' | translate}}:\', rowsPerPage: \'{{\'JSCRIPTY.ROWSPERPAGE\' | translate}}:\', of: \'{{\'JSCRIPTY.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.projectSessions.count}}" md-on-paginate="vm_dc.getProjectSessions" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="JSCRIPTY.ANSWERS">ANSWERS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="project-detail-form-container answers md-background-bg md-whiteframe-1dp">\n <div ng-controller="ProjectAnswersController as vm_an" ng-init="vm_an.init(vm.project, vm.userProfile)">\n <div class="pb-16" layout="row">\n <div class="h2 secondary-text" translate="JSCRIPTY.ANSWERS" flex>Answers</div>\n <div layout="row" layout-align="space-between center" flex>\n <md-date-range localization-map="vm_an.localizationMap" ng-model="vm_an.pickerModel" auto-confirm="true" show-template="true" md-on-select="vm_an.getAnswers()" placeholder="{{ \'DASHBOARDS.ALL\' | translate }}"></md-date-range>\n <md-button type="button" ng-if="vm_an.currentUser.role === \'admin\' || vm_an.userProfile.downloadJscriptySessions" ng-disabled="!vm_an.answers" ng-click="vm_an.getSummary($event)" class="md-accent md-raised md-button ng-scope md-default-theme md-ink-ripple md-green-500-bg md-icon-button" title="{{\'JSCRIPTY.EXPORT_TO_CSV\' | translate}}">\n <md-icon md-font-icon="icon-file-excel" class="md-default-theme md-font material-icons icon-file-excel"></md-icon>\n </md-button>\n </div>\n </div>\n <div layout="row">\n <md-card class="md-whiteframe-1dp" ng-if="vm_an.answers && vm_an.hasIdAnswers" flex>\n <md-list>\n <md-list-item class="md-2-line contact-item" ng-repeat="(key, question) in vm_an.answers">\n <div class="md-list-item-text compact" layout-padding>\n <h3>{{question.question}}</h3>\n <md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column></th>\n <th md-column>#</th>\n <th md-column>%</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-repeat="(key, value) in question.answers">\n <td md-cell>{{key}}</td>\n <td md-cell width="20px">{{value}}</td>\n <td md-cell width="20px">{{value*100/question.sum | number:1}}</td>\n </tr>\n <tr md-row>\n <td md-cell><b>{{\'JSCRIPTY.TOTAL\' | translate}}</b></td>\n <td md-cell width="20px"><b>{{question.sum}}</b></td>\n <td md-cell width="20px"><b>100</b></td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </div>\n <md-divider ng-if="!$last"></md-divider>\n </md-list-item>\n </md-list>\n </md-card>\n <span ng-if="!vm_an.answers || !vm_an.hasIdAnswers" class="text-boxed-light" translate="JSCRIPTY.NO_ANSWERS_AVAILABLE">No answers available</span>\n </div>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/jscripty/views/projects/projects.html",'<div id="projects" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-script" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="JSCRIPTY.PROJECTS">Projects</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="JSCRIPTY.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedProjects.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedProjects =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="JSCRIPTY.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-projects-count">\n <span>{{vm.selectedProjects.length}}</span>\n <span translate="JSCRIPTY.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="JSCRIPTY.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllProjects()" translate="JSCRIPTY.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectProjects()" translate="JSCRIPTY.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedProjects" csv-label="true" filename="projects.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedProjects($event)" aria-label="delete selected" translate translate-attr-label="JSCRIPTY.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- PROJECT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedProjects" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getProjects">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'JSCRIPTY.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'JSCRIPTY.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'JSCRIPTY.DESCRIPTION\' | translate }}</th>\n <th md-column md-order-by="createdAt">{{ \'JSCRIPTY.CREATED_AT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.projects.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="JSCRIPTY.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="project" md-select-id="id" ng-repeat="project in vm.projects.rows">\n <td md-cell ng-if="project.userpic"><img class="avatar" alt="{{project.name}}" ng-src="api/users/{{project.id}}/avatar" /></td>\n <td md-cell ng-if="!project.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{project.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="id ">{{project.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="name ">{{project.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="description ">{{project.description}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="createdAt ">{{project.createdAt | date:\'medium\' }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="JSCRIPTY.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(project, $event )" translate="JSCRIPTY.EDIT_PROJECT">\n Edit Project\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.clonedialog(project, $event )" translate="JSCRIPTY.CLONE_PROJECT">\n clone Project\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.sessionsgoto(project, $event )" translate="JSCRIPTY.SESSIONS_PROJECT">\n Sessions Project\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.deleteconfirm(project, $event )" translate="JSCRIPTY.DELETE_PROJECT">\n Delete Project\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'JSCRIPTY.PAGE\' | translate}}:\', rowsPerPage: \'{{\'JSCRIPTY.ROWSPERPAGE\' | translate}}:\', of: \'{{\'JSCRIPTY.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.projects.count}}" md-on-paginate="vm.getProjects" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / PROJECT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD PROJECT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-project-button" ng-click="vm.createOrEditProject($event)" aria-label="add project" translate translate-attr-aria-label="JSCRIPTY.ADD_PROJECT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD PROJECT BUTTON --\x3e\n</div>'),e.put("app/main/apps/mail/views/mailAccounts/create/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MAIL.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.mailAccount.name" ng-required="true" autofocus>\n\n <div ng-messages="mailAccountForm[\'name\'].$error" ng-show="mailAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.KEY">key</label>\n <input type="text" name="key" ng-model="vm.mailAccount.key" md-maxlength="5" ng-required="true">\n\n <div ng-messages="mailAccountForm[\'key\'].$error" ng-show="mailAccountForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="MAIL.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.EMAIL_ADDRESS">Email_Address</label>\n <input type="email" name="email" ng-model="vm.mailAccount.email" ng-required="true">\n\n <div ng-messages="mailAccountForm[\'email\'].$error" ng-show="mailAccountForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.EMAIL_ADDRESS_REQUIRED">Email_Address field is required</span>\n </div>\n <div ng-message="email">\n <span translate="MAIL.ERRORS.EMAIL_ADDRESS_MUST_VALID">Email_Address must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.LIST">List</label>\n <md-select name="ListId" ng-model="vm.mailAccount.ListId" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div ng-messages="mailAccountForm[\'ListId\'].$error" ng-show="mailAccountForm[\'ListId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.mailAccount.active" aria-label="Active"><span translate="MAIL.ACTIVE">Active</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.newMailAccount" class="md-block">\n <label translate="MAIL.SERVICE">Service</label>\n <md-select name="cservice" ng-model="vm.mailAccount.cservice" required>\n <md-option ng-value="null">Custom</md-option>\n <md-option ng-value="\'gmail\'">Gmail</md-option>\n <md-option ng-value="\'hotmail\'">Hotmail</md-option>\n <md-option ng-value="\'yahoo\'">Yahoo</md-option>\n <md-option ng-value="\'outlook365\'">Outlook365</md-option>\n </md-select>\n <div ng-messages="mailAccountForm[\'cservice\'].$error" ng-show="mailAccountForm[\'cservice\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.SERVICE_REQUIRED">Service field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Imap.service == null)" class="md-block">\n <label translate="MAIL.IMAP_HOST">IMAP_Host</label>\n <input type="text" name="Imap.host" ng-model="vm.mailAccount.Imap.host" ng-required="true">\n\n <div ng-messages="mailAccountForm[\'Imap.host\'].$error" ng-show="mailAccountForm[\'Imap.host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.IMAP_HOST_REQUIRED">IMAP_Host field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Imap.service == null)" class="md-block">\n <label translate="MAIL.IMAP_PORT">IMAP_Port</label>\n <input type="number" name="Imap.port" ng-model="vm.mailAccount.Imap.port" value="465" ng-required="true">\n\n <div ng-messages="mailAccountForm[\'Imap.port\'].$error" ng-show="mailAccountForm[\'Imap.port\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.IMAP_PORT_REQUIRED">IMAP_Port field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Smtp.service == null)" class="md-block">\n <label translate="MAIL.SMTP_HOST">SMTP_Host</label>\n <input type="text" name="Smtp.host" ng-model="vm.mailAccount.Smtp.host" ng-required="true">\n\n <div ng-messages="mailAccountForm[\'Smtp.host\'].$error" ng-show="mailAccountForm[\'Smtp.host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.SMTP_HOST_REQUIRED">SMTP_Host field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Smtp.service == null)" class="md-block">\n <label translate="MAIL.SMTP_PORT">SMTP_Port</label>\n <input type="number" name="Smtp.port" ng-model="vm.mailAccount.Smtp.port" value="465" ng-required="true">\n\n <div ng-messages="mailAccountForm[\'Smtp.port\'].$error" ng-show="mailAccountForm[\'Smtp.port\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.SMTP_PORT_REQUIRED">SMTP_Port field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.cservice !== undefined && vm.mailAccount.cservice == null && vm.newMailAccount" class="md-block">\n <md-switch ng-model="vm.mailAccount.cauthentication" aria-label="Authentication"><span translate="MAIL.AUTHENTICATION">Authentication</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="(vm.mailAccount.cauthentication == true || vm.mailAccount.cservice != null) && vm.newMailAccount" class="md-block">\n <label translate="MAIL.USERNAME">Username</label>\n <input type="text" name="cuser" ng-model="vm.mailAccount.cuser" ng-required="true">\n\n <div class="hint"><span translate="MAIL.HELP.USERNAME"></span></div>\n <div ng-messages="mailAccountForm[\'cuser\'].$error" ng-show="mailAccountForm[\'cuser\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="(vm.mailAccount.cauthentication == true || vm.mailAccount.cservice != null) && vm.newMailAccount">\n <label translate="MAIL.PASSWORD">Password</label>\n <input type="password" name="cpassword" ng-model="vm.mailAccount.cpassword" placeholder="Password" translate translate-attr-placeholder="MAIL.PASSWORD" required>\n <div class="hint"><span translate="MAIL.HELP.PASSWORD"></span></div>\n <div ng-messages="mailAccountForm[\'cpassword\'].$error" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MAIL.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="MAIL.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.mailAccount.description">\n\n <div ng-messages="mailAccountForm[\'description\'].$error" ng-show="mailAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newMailAccount" ng-click="vm.saveMailAccount()" class="send-button md-accent md-raised" ng-disabled="mailAccountForm.$invalid || mailAccountForm.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newMailAccount" ng-click="vm.addNewMailAccount()" class="send-button md-accent md-raised" ng-disabled="mailAccountForm.$invalid" aria-label="ADD" translate="MAIL.ADD_MAILACCOUNT" translate-attr-aria-label="MAIL.ADD_MAILACCOUNT">\n ADD MAILACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newMailAccount" ng-click="vm.deleteMailAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="MAIL.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="MAIL.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/agentadd/agentadd.html",'<md-dialog class="mailAccount-dialog" aria-label="mailAccount" ng-init="vm.onInit()">\n <form name="mailAccountForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="MAIL.AGENTADD_MAILACCOUNT">Add Agent to mailAccount</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/agent/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MAIL.AGENT">Agent</label>\n <md-select name="agent" ng-model="vm.agent.agent" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="agent.name" ng-repeat="agent in vm.agents" ng-disabled="agent.canSelect === false">{{ agent.name }}</md-option>\n </md-select>\n <div ng-messages="mailAccountFormApp[\'agent\'].$error" ng-show="mailAccountFormApp[\'agent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.agent.timeout" min="0" max="2147483" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="mailAccountFormApp[\'timeout\'].$error" ng-show="mailAccountFormApp[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/autoreply/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MAIL.TIMES">times</label>\n <md-select name="times" ng-model="vm.autoreply.times" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="2">One Time</md-option>\n <md-option ng-value="0">Always</md-option>\n <md-option ng-value="1">First Message</md-option>\n </md-select>\n <div ng-messages="mailAccountFormApp[\'times\'].$error" ng-show="mailAccountFormApp[\'times\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.TIMES_REQUIRED">times field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.REPLY_TYPE">Reply_Type</label>\n <md-select name="replyType" ng-model="vm.autoreply.replyType" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="0">Reply</md-option>\n <md-option ng-value="1">Reply All</md-option>\n </md-select>\n <div ng-messages="mailAccountFormApp[\'replyType\'].$error" ng-show="mailAccountFormApp[\'replyType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.REPLY_TYPE_REQUIRED">Reply_Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="MAIL.TEXT">Text</label>\n <textarea aria-label="Text text" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', removePlugins: \'magicline\' }" ng-model="vm.autoreply.text"></textarea>\n </div>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/close/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MAIL.DISPOSITION">Disposition</label>\n <input type="text" name="disposition" ng-model="vm.close.disposition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="mailAccountFormApp[\'disposition\'].$error" ng-show="mailAccountFormApp[\'disposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.DISPOSITION_REQUIRED">Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/gotoif/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MAIL.CONDITION">Condition</label>\n <input type="text" name="condition" ng-model="vm.gotoif.condition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="mailAccountFormApp[\'condition\'].$error" ng-show="mailAccountFormApp[\'condition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.CONDITION_REQUIRED">Condition field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.TRUEPRIORITY">truepriority</label>\n <input type="number" name="truepriority" ng-model="vm.gotoif.truepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="mailAccountFormApp[\'truepriority\'].$error" ng-show="mailAccountFormApp[\'truepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.TRUEPRIORITY_REQUIRED">truepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">truepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.FALSEPRIORITY">falsepriority</label>\n <input type="number" name="falsepriority" ng-model="vm.gotoif.falsepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="mailAccountFormApp[\'falsepriority\'].$error" ng-show="mailAccountFormApp[\'falsepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.FALSEPRIORITY_REQUIRED">falsepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">falsepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/gotop/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MAIL.PRIORITY">Priority</label>\n <input type="number" name="priority" ng-model="vm.gotop.priority" min="0" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="mailAccountFormApp[\'priority\'].$error" ng-show="mailAccountFormApp[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Priority must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/interval/dialog.html",'<md-dialog class="interval-dialog" aria-label="New Interval">\n <form name="intervalForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select ng-model="vm.type" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="type" ng-repeat=\'type in vm.types\'>{{ type | ucfirst }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.type === \'list\'">\n <label translate="TOOLS.INTERVALS">Intervals</label>\n <md-select ng-model="vm.interval.IntervalId" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals">{{ interval.name }}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!-- TIMERANGE START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.TIME_RANGE">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <div class="md-block" flex>\n <mdp-time-picker name="timeRangeFrom" mdp-placeholder="FROM" ng-model="vm.timeRangeFrom" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <div ng-messages="intervalForm.timeRangeFrom.$error" ng-show="intervalForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_FROM_INVALID">Time Range From field is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n <div class="md-block" flex ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_INVALID">Time Range To field is invalid</span>\n </div>\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </div>\n \x3c!-- TIMERANGE END --\x3e\n\n \x3c!-- DAYSOFWEEK START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.WEEK_DAYS">Week Days</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.dayOfWeekFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container flex class="md-block" ng-if="vm.dayOfWeekFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="dayOfWeekTo" ng-model="vm.dayOfWeekTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- DAYSOFWEEK END --\x3e\n\n \x3c!-- MONTHDAY START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTH_DAYS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthDayFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthDayFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthDayTo" ng-model="vm.monthDayTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTHDAY END --\x3e\n\n \x3c!-- MONTH START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTHS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n </md-select>\n\n </md-input-container>\n\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthTo" ng-model="vm.monthTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTH END --\x3e\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="!vm.newInterval && vm.crudPermissions.canEdit" ng-click="vm.saveInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid || intervalForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.newInterval && vm.crudPermissions.canEdit" ng-click="vm.addNewInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_INTERVAL" translate-attr-aria-label="TOOLS.ADD_INTERVAL">\n ADD INTERVAL\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/noop/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MAIL.VALUE">Value</label>\n <input type="text" name="value" ng-model="vm.noop.value" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="mailAccountFormApp[\'value\'].$error" ng-show="mailAccountFormApp[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/queue/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MAIL.QUEUE">Queue</label>\n <md-select name="queue" ng-model="vm.queue.queue" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="queue.name" ng-repeat="queue in vm.queues" ng-disabled="queue.canSelect === false">{{ queue.name }}</md-option>\n </md-select>\n <div ng-messages="mailAccountFormApp[\'queue\'].$error" ng-show="mailAccountFormApp[\'queue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.queue.timeout" min="0" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="mailAccountFormApp[\'timeout\'].$error" ng-show="mailAccountFormApp[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/system/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MAIL.COMMAND">Command</label>\n <input type="text" name="command" ng-model="vm.system.command" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="mailAccountFormApp[\'command\'].$error" ng-show="mailAccountFormApp[\'command\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.COMMAND_REQUIRED">Command field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.VARIABLE">Variable</label>\n <md-select name="variable" ng-model="vm.system.variable" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables" ng-disabled="variable.canSelect === false">{{ variable.name }}</md-option>\n </md-select>\n <div ng-messages="mailAccountFormApp[\'variable\'].$error" ng-show="mailAccountFormApp[\'variable\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.VARIABLE_REQUIRED">Variable field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/tag/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MAIL.TAG">Tag</label>\n <md-select name="tag" ng-model="vm.tag.tag" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags" ng-disabled="tag.canSelect === false">{{ tag.name }}</md-option>\n </md-select>\n <div ng-messages="mailAccountFormApp[\'tag\'].$error" ng-show="mailAccountFormApp[\'tag\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.TAG_REQUIRED">Tag field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/mailCannedAnswers/dialog.html",'<md-dialog class="mailCannedAnswer-dialog" aria-label="New MailCannedAnswer">\n <form name="mailCannedAnswerForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MAIL.KEY">Key</label>\n <input type="" name="key" ng-model="vm.mailCannedAnswer.key" md-maxlength="255" ng-required="true" autofocus>\n\n <div ng-messages="mailCannedAnswerForm[\'key\'].$error" ng-show="mailCannedAnswerForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.KEY_REQUIRED">Key field is required</span>\n </div>\n </div>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="MAIL.VALUE">Value</label>\n <textarea aria-label="Value value" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', removePlugins: \'magicline\' }" ng-model="vm.mailCannedAnswer.value"></textarea>\n </div>\n <md-input-container class="md-block">\n <label translate="MAIL.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.mailCannedAnswer.description">\n\n <div ng-messages="mailCannedAnswerForm[\'description\'].$error" ng-show="mailCannedAnswerForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newMailCannedAnswer" ng-click="vm.saveMailCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="mailCannedAnswerForm.$invalid || mailCannedAnswerForm.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newMailCannedAnswer" ng-click="vm.addNewMailCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="mailCannedAnswerForm.$invalid" aria-label="ADD" translate="MAIL.ADD_MAILCANNEDANSWER" translate-attr-aria-label="MAIL.ADD_MAILCANNEDANSWER">\n ADD MAILCANNEDANSWER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newMailCannedAnswer" ng-click="vm.deleteMailCannedAnswer($event)" aria-label="DELETE" translate translate-attr-aria-label="MAIL.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="MAIL.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/view.html",'<div id="mail-mailAccount" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-mailAccounts-button md-icon-button" aria-label="Go to mailAccounts" ng-click="vm.gotoMailAccounts()" translate translate-attr-aria-label="MAIL.GO_TO_MAILACCOUNTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="mailAccount-image" hide-xs>\n <img ng-src="assets/images/business/mailAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.mailAccount.id}}\n <span ng-if="vm.mailAccount.name">{{vm.mailAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="MAIL.CREATED_AT"></span> <span>{{vm.mailAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.gotogoto(vm.mailAccount, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n <md-tooltip><span translate="MAIL.GOTO_MAILACCOUNT"></span></md-tooltip>\n <md-icon md-font-icon="icon-cast"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.mailAccount, $event)" class="md-fab md-warn md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="MAIL.AGENTADD_MAILACCOUNT"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveMailAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (notificationForm.$invalid) || (transferForm.$invalid) || (imapForm.$invalid) || (smtpForm.$invalid) || (dispositionForm.$invalid) || (mailDispositionsForm.$invalid) || (mailCannedAnswersForm.$invalid) || (actionsForm.$invalid) || (interactionsForm.$invalid)" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="mailAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MAIL.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MAIL.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.mailAccount.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.KEY">key</label>\n <input type="text" name="key" ng-model="vm.mailAccount.key" md-maxlength="5" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'key\'].$error" ng-show="generalForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="MAIL.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.EMAIL_ADDRESS">Email_Address</label>\n <input type="email" name="email" ng-model="vm.mailAccount.email" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'email\'].$error" ng-show="generalForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.EMAIL_ADDRESS_REQUIRED">Email_Address field is required</span>\n </div>\n <div ng-message="email">\n <span translate="MAIL.ERRORS.EMAIL_ADDRESS_MUST_VALID">Email_Address must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.LIST">List</label>\n <md-select name="ListId" ng-model="vm.mailAccount.ListId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div ng-messages="generalForm[\'ListId\'].$error" ng-show="generalForm[\'ListId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.mailAccount.active" aria-label="Active" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.ACTIVE">Active</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.FONT_FAMILY">Font_Family</label>\n <ms-font-family name="fontFamily" ng-model="vm.mailAccount.fontFamily" required></ms-font-family>\n <div class="hint"><span translate="MAIL.HELP.FONT_FAMILY"></span></div>\n <div ng-messages="generalForm[\'fontFamily\'].$error" ng-show="generalForm[fontFamily].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.FONT_FAMILY_REQUIRED">Font_Family field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.FONT_SIZE">Font_Size</label>\n <input type="number" name="fontSize" ng-model="vm.mailAccount.fontSize" min="8" max="72" value="13" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MAIL.HELP.FONT_SIZE"></span></div>\n <div ng-messages="generalForm[\'fontSize\'].$error" ng-show="generalForm[\'fontSize\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.FONT_SIZE_REQUIRED">Font_Size field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.FONT_SIZE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Font_Size must be a valid greater or equal than</span> <span>8</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.FONT_SIZE_MUST_BE_LESS_THAN_OR_EQUAL_TO">Font_Size must be a valid greater or equal than</span> <span>72</span>\n </div>\n </div>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="MAIL.TEMPLATE">Template</label>\n <textarea aria-label="Template template" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', removePlugins: \'magicline\' }" ng-model="vm.mailAccount.template"></textarea>\n </div>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.mailAccount.markAsUnread" aria-label="mark_as_unread" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.MARK_AS_UNREAD">mark_as_unread</span></md-switch>\n <div class="hint"><span translate="MAIL.HELP.MARK_AS_UNREAD"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.WAITFORTHEASSIGNEDAGENT">WaitForTheAssignedAgent</label>\n <input type="number" name="waitForTheAssignedAgent" ng-model="vm.mailAccount.waitForTheAssignedAgent" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'waitForTheAssignedAgent\'].$error" ng-show="generalForm[\'waitForTheAssignedAgent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.WAITFORTHEASSIGNEDAGENT_REQUIRED">WaitForTheAssignedAgent field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.mailAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="mailAccount-detail-form-container notification md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MAIL.NOTIFICATION">NOTIFICATION</div>\n </div>\n <form name="notificationForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.mailAccount.notificationSound" aria-label="notificationSound" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.NOTIFICATIONSOUND">notificationSound</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.mailAccount.notificationShake" aria-label="notificationShake" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.NOTIFICATIONSHAKE">notificationShake</span></md-switch>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="MAIL.NOTIFICATIONTEMPLATE">notificationTemplate</label>\n <textarea aria-label="notificationTemplate notificationTemplate" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', removePlugins: \'magicline\' }" ng-model="vm.mailAccount.notificationTemplate"></textarea>\n </div>\n\n </form>\n </div>\n <div class="mailAccount-detail-form-container transfer md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MAIL.TRANSFER">TRANSFER</div>\n </div>\n <form name="transferForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.mailAccount.queueTransfer" aria-label="queueTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.QUEUETRANSFER">queueTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.queueTransfer == true" class="md-block">\n <label translate="MAIL.QUEUETRANSFERTIMEOUT">queueTransferTimeout</label>\n <input type="number" name="queueTransferTimeout" ng-model="vm.mailAccount.queueTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'queueTransferTimeout\'].$error" ng-show="transferForm[\'queueTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.QUEUETRANSFERTIMEOUT_REQUIRED">queueTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.mailAccount.agentTransfer" aria-label="agentTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.AGENTTRANSFER">agentTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.agentTransfer == true" class="md-block">\n <label translate="MAIL.AGENTTRANSFERTIMEOUT">agentTransferTimeout</label>\n <input type="number" name="agentTransferTimeout" ng-model="vm.mailAccount.agentTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'agentTransferTimeout\'].$error" ng-show="transferForm[\'agentTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.AGENTTRANSFERTIMEOUT_REQUIRED">agentTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.IMAP">IMAP</span>\n </md-tab-label>\n <md-tab-body>\n <div class="mailAccount-detail-form-container imap md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MAIL.IMAP">IMAP</div>\n </div>\n <form name="imapForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MAIL.SERVICE">Service</label>\n <md-select name="Imap.service" ng-model="vm.mailAccount.Imap.service" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Custom</md-option>\n <md-option ng-value="\'gmail\'">Gmail</md-option>\n <md-option ng-value="\'hotmail\'">Hotmail</md-option>\n <md-option ng-value="\'yahoo\'">Yahoo</md-option>\n <md-option ng-value="\'outlook365\'">Outlook365</md-option>\n </md-select>\n <div ng-messages="imapForm[\'Imap.service\'].$error" ng-show="imapForm[\'Imap.service\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.SERVICE_REQUIRED">Service field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Imap.service == null)" class="md-block">\n <label translate="MAIL.IMAP_HOST">IMAP_Host</label>\n <input type="text" name="Imap.host" ng-model="vm.mailAccount.Imap.host" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="imapForm[\'Imap.host\'].$error" ng-show="imapForm[\'Imap.host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.IMAP_HOST_REQUIRED">IMAP_Host field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Imap.service == null)" class="md-block">\n <label translate="MAIL.IMAP_PORT">IMAP_Port</label>\n <input type="number" name="Imap.port" ng-model="vm.mailAccount.Imap.port" value="465" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="imapForm[\'Imap.port\'].$error" ng-show="imapForm[\'Imap.port\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.IMAP_PORT_REQUIRED">IMAP_Port field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.mailAccount.Imap.tls" aria-label="ssl" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.SSL">ssl</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.Imap.service == null" class="md-block">\n <md-switch ng-model="vm.mailAccount.Imap.authentication" aria-label="Authentication" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.AUTHENTICATION">Authentication</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.Imap.authentication == true || vm.mailAccount.Imap.service != null" class="md-block">\n <label translate="MAIL.USERNAME">Username</label>\n <input type="text" name="Imap.user" ng-model="vm.mailAccount.Imap.user" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MAIL.HELP.USERNAME"></span></div>\n <div ng-messages="imapForm[\'Imap.user\'].$error" ng-show="imapForm[\'Imap.user\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.mailAccount.Imap.authentication == true || vm.mailAccount.Imap.service != null">\n <label translate="MAIL.PASSWORD">Password</label>\n <input type="password" name="Imap.password" ng-model="vm.mailAccount.Imap.password" placeholder="Password" translate translate-attr-placeholder="MAIL.PASSWORD" required>\n <div class="hint"><span translate="MAIL.HELP.PASSWORD"></span></div>\n <div ng-messages="imapForm[\'Imap.password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MAIL.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="MAIL.MAILBOX">mailbox</label>\n <input type="text" name="Imap.mailbox" ng-model="vm.mailAccount.Imap.mailbox" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="imapForm[\'Imap.mailbox\'].$error" ng-show="imapForm[\'Imap.mailbox\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.MAILBOX_REQUIRED">mailbox field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.CONNTIMEOUT">connTimeout</label>\n <input type="number" name="Imap.connTimeout" ng-model="vm.mailAccount.Imap.connTimeout" min="1" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="imapForm[\'Imap.connTimeout\'].$error" ng-show="imapForm[\'Imap.connTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.CONNTIMEOUT_REQUIRED">connTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.CONNTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">connTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.AUTHTIMEOUT">authTimeout</label>\n <input type="number" name="Imap.authTimeout" ng-model="vm.mailAccount.Imap.authTimeout" min="1" value="5" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="imapForm[\'Imap.authTimeout\'].$error" ng-show="imapForm[\'Imap.authTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.AUTHTIMEOUT_REQUIRED">authTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.AUTHTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">authTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.SMTP">SMTP</span>\n </md-tab-label>\n <md-tab-body>\n <div class="mailAccount-detail-form-container smtp md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MAIL.SMTP">SMTP</div>\n </div>\n <form name="smtpForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MAIL.SERVICE">Service</label>\n <md-select name="Smtp.service" ng-model="vm.mailAccount.Smtp.service" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Custom</md-option>\n <md-option ng-value="\'gmail\'">Gmail</md-option>\n <md-option ng-value="\'hotmail\'">Hotmail</md-option>\n <md-option ng-value="\'yahoo\'">Yahoo</md-option>\n <md-option ng-value="\'outlook365\'">Outlook365</md-option>\n </md-select>\n <div ng-messages="smtpForm[\'Smtp.service\'].$error" ng-show="smtpForm[\'Smtp.service\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.SERVICE_REQUIRED">Service field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Smtp.service == null)" class="md-block">\n <label translate="MAIL.SMTP_HOST">SMTP_Host</label>\n <input type="text" name="Smtp.host" ng-model="vm.mailAccount.Smtp.host" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smtpForm[\'Smtp.host\'].$error" ng-show="smtpForm[\'Smtp.host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.SMTP_HOST_REQUIRED">SMTP_Host field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Smtp.service == null)" class="md-block">\n <label translate="MAIL.SMTP_PORT">SMTP_Port</label>\n <input type="number" name="Smtp.port" ng-model="vm.mailAccount.Smtp.port" value="465" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smtpForm[\'Smtp.port\'].$error" ng-show="smtpForm[\'Smtp.port\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.SMTP_PORT_REQUIRED">SMTP_Port field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.Smtp.service == null" class="md-block">\n <md-switch ng-model="vm.mailAccount.Smtp.secure" aria-label="Secure" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.SECURE">Secure</span></md-switch>\n <div class="hint"><span translate="MAIL.HELP.SECURE"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.Smtp.service == null" class="md-block">\n <md-switch ng-model="vm.mailAccount.Smtp.authentication" aria-label="Authentication" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.AUTHENTICATION">Authentication</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.Smtp.authentication == true || vm.mailAccount.Smtp.service != null" class="md-block">\n <label translate="MAIL.USERNAME">Username</label>\n <input type="text" name="Smtp.user" ng-model="vm.mailAccount.Smtp.user" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MAIL.HELP.USERNAME"></span></div>\n <div ng-messages="smtpForm[\'Smtp.user\'].$error" ng-show="smtpForm[\'Smtp.user\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.mailAccount.Smtp.authentication == true || vm.mailAccount.Smtp.service != null">\n <label translate="MAIL.PASSWORD">Password</label>\n <input type="password" name="Smtp.pass" ng-model="vm.mailAccount.Smtp.pass" placeholder="Password" translate translate-attr-placeholder="MAIL.PASSWORD" required>\n <div class="hint"><span translate="MAIL.HELP.PASSWORD"></span></div>\n <div ng-messages="smtpForm[\'Smtp.pass\'].$error" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MAIL.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <md-tab-body>\n <div class="mailAccount-detail-form-container disposition md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MAIL.DISPOSITION">DISPOSITION</div>\n </div>\n <form name="dispositionForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.mailAccount.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.mandatoryDisposition" class="md-block">\n <label translate="MAIL.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.mailAccount.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="MAIL.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="dispositionForm[\'mandatoryDispositionPauseId\'].$error" ng-show="dispositionForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.DISPOSITIONS">DISPOSITIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div ng-controller="MailAccountDispositionsController as vm_dc" ng-init="vm_dc.init(vm.mailAccount, vm.crudPermissions)">\n <div layout="row">\n <div class="column" flex="20">\n <md-card class="mt-0">\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm_dc.query.level = null; vm_dc.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\n </button>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm_dc.query.level" ng-change="vm_dc.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm_dc.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n <div class="mailAccount-detail-form-container maildispositions md-background-bg md-whiteframe-1dp" flex="80">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedMailAccountDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MAIL.DISPOSITIONS">Dispositions</span>\n <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditDisposition($event)" aria-label="Add mail dispositions" translate translate-attr-label="MAIL.ADD_DISPOSITION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedDispositions.length}}\n {{vm_dc.selectedDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedDispositions" csv-label="true" filename="mailAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedDispositions($event)" aria-label="delete selected" translate translate-attr-label="MAIL.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_dc.selectedDispositions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getDispositions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'MAIL.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'MAIL.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'MAIL.DESCRIPTION\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_dc.dispositions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="MAIL.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="disposition" md-select-id="id" ng-repeat="disposition in vm_dc.dispositions.rows">\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm_dc.levels[disposition.level] }}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MAIL.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(disposition, $event)" translate="TOOLS.DELETE_DISPOSITION">\n Delete Disposition\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.dispositions.count}}" md-on-paginate="vm_dc.getDispositions" md-page-select>\n </md-table-pagination>\n </div>\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.CANNEDANSWERS">CANNEDANSWERS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="mailAccount-detail-form-container mailcannedanswers md-background-bg md-whiteframe-1dp">\n <div ng-controller="MailAccountMailCannedAnswersController as vm_dc" ng-init="vm_dc.init(vm.mailAccount, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedMailAccountMailCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MAIL.MAILCANNEDANSWERS">MailCannedAnswers</span>\n <ms-search-bar on-search="vm_dc.getMailAccountMailCannedAnswers()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditMailAccountMailCannedAnswer($event)" aria-label="add mailCannedAnswer" translate translate-attr-label="MAIL.ADD_MAILCANNEDANSWER">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedMailAccountMailCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedMailAccountMailCannedAnswers.length}} {{vm_dc.selectedMailAccountMailCannedAnswers.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedMailAccountMailCannedAnswers" csv-label="true" filename="mailAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedMailAccountMailCannedAnswers($event)" aria-label="delete selected" translate translate-attr-label="MAIL.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedMailAccountMailCannedAnswers" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getMailAccountMailCannedAnswers">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'MAIL.ID\' | translate }}\n </th>\n <th md-column md-order-by="key">\n {{ \'MAIL.KEY\' | translate }}\n </th>\n <th md-column md-order-by="value">\n {{ \'MAIL.VALUE\' | translate }}\n </th>\n <th md-column md-order-by="description">\n {{ \'MAIL.DESCRIPTION\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'MAIL.CREATED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="mailCannedAnswer" md-select-id="id" ng-repeat="mailCannedAnswer in vm_dc.mailAccountMailCannedAnswers.rows">\n <td ng-click="vm_dc.createOrEditMailAccountMailCannedAnswer($event, mailCannedAnswer)" md-cell>\n {{mailCannedAnswer.id}}\n </td>\n <td ng-click="vm_dc.createOrEditMailAccountMailCannedAnswer($event, mailCannedAnswer)" md-cell>\n {{mailCannedAnswer.key}}\n </td>\n <td ng-click="vm_dc.createOrEditMailAccountMailCannedAnswer($event, mailCannedAnswer)" md-cell>{{mailCannedAnswer.value | htmlToPlaintext }}</td>\n <td ng-click="vm_dc.createOrEditMailAccountMailCannedAnswer($event, mailCannedAnswer)" md-cell>\n {{mailCannedAnswer.description}}\n </td>\n <td ng-click="vm_dc.createOrEditMailAccountMailCannedAnswer($event, mailCannedAnswer)" md-cell>\n {{ mailCannedAnswer.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MAIL.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditMailAccountMailCannedAnswer($event, mailCannedAnswer)" translate="MAIL.EDIT_MAILCANNEDANSWER">\n Edit MailCannedAnswer\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(mailCannedAnswer, $event)" translate="MAIL.DELETE_MAILCANNEDANSWER">\n Delete MailCannedAnswer\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.mailAccountMailCannedAnswers.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MAIL.NO_MAILCANNEDANSWER_AVAILABLE">No mailcannedanswer available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.mailAccountMailCannedAnswers.count}}" md-on-paginate="vm_dc.getMailAccountMailCannedAnswers" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.ACTIONS">ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="mailAccount-detail-form-container actions md-background-bg md-whiteframe-1dp">\n <div ng-controller="MailAccountActionsController as vm_ac" ng-init="vm_ac.init(vm.mailAccount, vm.crudPermissions)" class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- SIDENAV --\x3e\n <div class="navigation-simple sidenav main-sidenav md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="20" ng-if="vm_ac.crudPermissions.canEdit">\n \x3c!-- SIDENAV CONTENT --\x3e\n <md-list class="no-padding">\n <md-subheader class="md-no-sticky">\n <span translate="VOICE.APPLICATIONS_LIST">\n Applications List\n </span>\n </md-subheader>\n </md-list>\n <md-divider></md-divider>\n <md-list ng-sortable="vm_ac.list">\n <md-list-item class="handle" ng-repeat="a in vm_ac.apps">\n <md-icon md-font-icon="{{a.icon}}" class="s16"></md-icon>\n <p class="text-truncate" translate="MAIL.{{(a.appAlias || a.appType) | uppercase}}">{{a.appAlias || a.appType}}</p>\n </md-list-item>\n </md-list>\n \x3c!-- / SIDENAV CONTENT --\x3e\n </div>\n \x3c!-- / SIDENAV --\x3e\n <div flex></div>\n \x3c!-- MAIN --\x3e\n <div class="main scrollable md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="{{vm_ac.crudPermissions.canEdit ? 75 : 100}}">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_ac.selectedMailAccountApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">Drag & Drop Routing</span>\n <div flex></div>\n <ms-search-bar on-search="vm_ac.query.filter = query" on-collapse="vm_ac.query.filter = undefined" debounce="300"></ms-search-bar>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_ac.selectedMailAccountApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_ac.selectedMailAccountApps.length}} {{vm_ac.selectedMailAccountApps.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_ac.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_ac.deleteSelectedMailAccountApps($event)" aria-label="delete selected" translate translate-attr-label="MAIL.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n \x3c!-- QUEUES TABLE --\x3e\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_ac.selectedMailAccountApps">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column width="10px">\n <span translate="VOICE.PRIORITY">Priority</span>\n </th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </th>\n <th md-column width="10px"></th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body ng-sortable="vm_ac.applications">\n <tr md-row md-select="app" md-select-id="id" ng-repeat="app in vm_ac.mailAccountApps.rows | filter: vm_ac.query.filter">\n <td md-cell>\n <md-icon md-font-icon="icon-drag-vertical" class="s16 handle"></md-icon>\n </td>\n <td md-cell ng-click="vm_ac.editMailAccountApp($event, $index)"><span>{{app.priority}}</span></td>\n <td md-cell ng-click="vm_ac.editMailAccountApp($event, $index)">{{app.app.toLowerCase() === \'agi\' ? \'Cally-Square\' : app.app | ucfirst}}<span ng-if="app.appType.toLowerCase() === \'custom\'">*</span></td>\n <td md-cell ng-click="vm_ac.editMailAccountApp($event, $index)"><span class="text-truncate actionAppData">{{app.appdata}}</span></td>\n <td md-cell ng-click="vm_ac.editInterval($event, $index)">{{app.IntervalId ? \'From List\' : app.interval}}</td>\n <td md-cell>\n <md-button ng-click="vm_ac.editInterval($event, $index)" class="md-icon-button" aria-label="Interval">\n <md-icon md-font-icon="icon-timer"></md-icon>\n <md-tooltip>\n {{app.IntervalId ? \'From List\' : (app.interval === \'*,*,*,*\' ? \'Always\' : \'Custom\')}}\n </md-tooltip>\n </md-button>\n </td>\n <td md-cell class="actions" ng-if="!vm_ac.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_ac.crudPermissions.canEdit">\n <md-button ng-click="vm_ac.editMailAccountApp($event, $index)" translate="VOICE.EDIT_APP">\n Edit App\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_ac.crudPermissions.canEdit">\n <md-button ng-click="vm_ac.editInterval($event, $index)" translate="VOICE.EDIT_INTERVAL">\n Edit Interval\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_ac.crudPermissions.canDelete">\n <md-button ng-click="vm_ac.deleteConfirm(app, $index, $event)" translate="VOICE.DELETE_APP">\n Delete App\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-hide="vm_ac.mailAccountApps.rows.length">\n <td md-cell colspan="7">\n <span class="text-boxed-light" translate="VOICE.NO_APPS_AVAILABLE">No apps available</span>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n \x3c!-- / QUEUES TABLE --\x3e\n\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.INTERACTIONS">INTERACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="mailAccount-detail-form-container interactions md-background-bg md-whiteframe-1dp">\n <div ng-controller="MailAccountInteractionsController as vm_dc" ng-init="vm_dc.init(vm.mailAccount, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedMailAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MAIL.INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm_dc.getMailAccountInteractions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_dc.quickFilters" query="vm_dc.query" search="vm_dc.getMailAccountInteractions()"></ms-quick-filter>\n <div layout="column">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini md-accent-bg\': vm_dc.query.search }" aria-label="Filter" translate translate-attr-aria-label="DASHBOARDS.FILTER" ng-click="vm_dc.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm_dc.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'blink\': vm_dc.query.search }"></md-icon>\n </md-button>\n </div>\n <md-button class="md-icon-button" ng-click="vm_dc.getMailAccountInteractions()" aria-label="refresh Interactions" translate translate-attr-label="MAIL.REFRESH_INTERACTIONS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedMailAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedMailAccountInteractions.length}} {{vm_dc.selectedMailAccountInteractions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedMailAccountInteractions" csv-label="true" filename="mailAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedMailAccountInteractions($event)" aria-label="delete selected" translate translate-attr-label="MAIL.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedMailAccountInteractions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getMailAccountInteractions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'MAIL.ID\' | translate }}\n </th>\n <th md-column class="no-padding">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column md-order-by="contactName">\n {{ \'MAIL.CONTACT\' | translate }}\n </th>\n <th md-column md-order-by="subject">\n {{ \'MAIL.SUBJECT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'MAIL.STARTEDAT\' | translate }}\n </th>\n <th md-column md-order-by="lastMsgAt">\n {{ \'MAIL.LASTMESSAGE\' | translate }}\n </th>\n <th md-column md-order-by="closed">\n {{ \'MAIL.STATUS\' | translate }}\n </th>\n <th md-column>\n {{ \'MAIL.AGENT\' | translate }}\n </th>\n <th md-column md-order-by="tag">\n {{ \'MAIL.TAGS\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="interaction" md-select-id="id" ng-repeat="interaction in vm_dc.mailAccountInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td md-cell>\n {{interaction.id}}\n </td>\n <td md-cell class="no-padding">\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="user in interaction.Users">{{ user.fullname | translate }}\n <span ng-if="!$last">, </span>\n </span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg md-primary-bg" layout-margin>{{ interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.attach">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td md-cell privacy ng-cloak>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'margin-bottom-0\' : interaction.contactInfo}" layout-margin>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text margin-top-0" layout-margin>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td md-cell>\n <div class="width-300">\n <span class="text-truncate font-size-12">\n {{interaction.subject}}\n </span>\n </div>\n </td>\n <td md-cell>\n {{ interaction.createdAt | formatdate }}\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}"></md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="text-truncate">{{ interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n </td>\n <td md-cell>\n <span ng-if="interaction.closed === 0" class="green-fg">\n {{ \'MAIL.OPENED\' | translate }}\n <span ng-if="interaction.substatus">\n - {{ interaction.substatus }}\n </span>\n </span>\n <span ng-if="interaction.closed === 1" class="red-fg">\n {{ \'MAIL.CLOSED\' | translate }}\n <span ng-if="interaction.disposition">\n - {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}\n </span>\n <md-tooltip class="multiline">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n </span>\n </td>\n\n <td md-cell>\n {{interaction.Owner.name}}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MAIL.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm_dc.spymailInteraction($event, interaction)" translate="MAIL.SPYINTERACTION">\n Spy Interaction\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.role === \'admin\' || (vm_dc.userProfile.downloadOmnichannelInteractions && vm_dc.userProfile.downloadAttachments)">\n <md-button class="md-primary" ng-click="vm_dc.mailInteractionDownload(interaction, $event, true)" translate="MAIL.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.role === \'admin\' || vm_dc.userProfile.downloadOmnichannelInteractions">\n <md-button class="md-primary" ng-click="vm_dc.mailInteractionDownload(interaction, $event)" translate="MAIL.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(interaction, $event)" translate="MAIL.DELETE_INTERACTION">\n Delete Interaction\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.mailAccountInteractions.rows.length">\n <td md-cell colspan="13">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MAIL.NO_INTERACTION_AVAILABLE">No interaction available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.mailAccountInteractions.count}}" md-on-paginate="vm_dc.getMailAccountInteractions" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/mail/views/mailAccounts/mailAccounts.html",'<div id="mailAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-email" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="MAIL.MAILACCOUNTS">MailAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="MAIL.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedMailAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedMailAccounts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="MAIL.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-mailAccounts-count">\n <span>{{vm.selectedMailAccounts.length}}</span>\n <span translate="MAIL.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="MAIL.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllMailAccounts()" translate="MAIL.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectMailAccounts()" translate="MAIL.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedMailAccounts" csv-label="true" filename="mailAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedMailAccounts($event)" aria-label="delete selected" translate translate-attr-label="MAIL.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- MAILACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedMailAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getMailAccounts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'MAIL.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'MAIL.NAME\' | translate }}</th>\n <th md-column md-order-by="key">{{ \'MAIL.KEY\' | translate }}</th>\n <th md-column md-order-by="email">{{ \'MAIL.EMAIL_ADDRESS\' | translate }}</th>\n <th md-column md-order-by="active">{{ \'MAIL.ACTIVE\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'MAIL.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.mailAccounts.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="MAIL.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="mailAccount" md-select-id="id" ng-repeat="mailAccount in vm.mailAccounts.rows">\n <td md-cell ng-if="mailAccount.userpic"><img class="avatar" alt="{{mailAccount.name}}" ng-src="api/users/{{mailAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!mailAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{mailAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailAccount, ev) : vm.createOrEditMailAccount($event, mailAccount)" md-cell class="id ">{{mailAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailAccount, ev) : vm.createOrEditMailAccount($event, mailAccount)" md-cell class="name ">{{mailAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailAccount, ev) : vm.createOrEditMailAccount($event, mailAccount)" md-cell class="key ">{{mailAccount.key}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailAccount, ev) : vm.createOrEditMailAccount($event, mailAccount)" md-cell class="email ">{{mailAccount.email}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailAccount, ev) : vm.createOrEditMailAccount($event, mailAccount)" md-cell class="active ">\n <md-icon md-colors="{color: {{mailAccount.active ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{mailAccount.active ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailAccount, ev) : vm.createOrEditMailAccount($event, mailAccount)" md-cell class="description ">{{mailAccount.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MAIL.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(mailAccount, $event )" translate="MAIL.EDIT_MAILACCOUNT">\n Edit MailAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.verifysmtpverifysmtp(mailAccount, $event )" translate="MAIL.VERIFYSMTP_MAILACCOUNT">\n verifysmtp MailAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.interactionsgoto(mailAccount, $event )" translate="MAIL.INTERACTIONS_MAILACCOUNT">\n Interactions MailAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(mailAccount, $event )" translate="MAIL.GOTOREALTIME_MAILACCOUNT">\n goToRealtime MailAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(mailAccount, $event )" translate="MAIL.AGENTADD_MAILACCOUNT">\n AgentAdd MailAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(mailAccount, $event )" translate="MAIL.DELETE_MAILACCOUNT">\n Delete MailAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.mailAccounts.count}}" md-on-paginate="vm.getMailAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / MAILACCOUNT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD MAILACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-mailAccount-button" ng-click="vm.createOrEditMailAccount($event)" aria-label="add mailAccount" translate translate-attr-aria-label="MAIL.ADD_MAILACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD MAILACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/mail/views/mailQueues/create/dialog.html",'<md-dialog class="mailQueue-dialog" aria-label="New MailQueue">\n <form name="mailQueueForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MAIL.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.mailQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newMailQueue">\n\n <div class="hint"><span translate="MAIL.HELP.NAME"></span></div>\n <div ng-messages="mailQueueForm[\'name\'].$error" ng-show="mailQueueForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MAIL.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.mailQueue.strategy" required>\n <md-option ng-value="\'beepall\'">Beepall</md-option>\n <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n </md-select>\n <div ng-messages="mailQueueForm[\'strategy\'].$error" ng-show="mailQueueForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.AGENT_TIMEOUT">Agent_Timeout</label>\n <input type="number" name="timeout" ng-model="vm.mailQueue.timeout" min="1" max="2147483" value="10" ng-required="true">\n\n <div ng-messages="mailQueueForm[\'timeout\'].$error" ng-show="mailQueueForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.mailQueue.description">\n\n <div ng-messages="mailQueueForm[\'description\'].$error" ng-show="mailQueueForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newMailQueue" ng-click="vm.saveMailQueue()" class="send-button md-accent md-raised" ng-disabled="mailQueueForm.$invalid || mailQueueForm.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newMailQueue" ng-click="vm.addNewMailQueue()" class="send-button md-accent md-raised" ng-disabled="mailQueueForm.$invalid" aria-label="ADD" translate="MAIL.ADD_MAILQUEUE" translate-attr-aria-label="MAIL.ADD_MAILQUEUE">\n ADD MAILQUEUE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newMailQueue" ng-click="vm.deleteMailQueue($event)" aria-label="DELETE" translate translate-attr-aria-label="MAIL.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="MAIL.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailQueues/edit/agentadd/agentadd.html",'<md-dialog class="mailQueue-dialog" aria-label="mailQueue" ng-init="vm.onInit()">\n <form name="mailQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="MAIL.AGENTADD_MAILQUEUE">Add Agent to mailQueue</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailQueues/edit/teamadd/teamadd.html",'<md-dialog class="mailQueue-dialog" aria-label="mailQueue" ng-init="vm.onInit()">\n <form name="mailQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="MAIL.TEAMS_ASSOCIATION">Teams Association</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailQueues/edit/view.html",'<div id="mail-mailQueue" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-mailQueues-button md-icon-button" aria-label="Go to mailQueues" ng-click="vm.gotoMailQueues()" translate translate-attr-aria-label="MAIL.GO_TO_MAILQUEUES">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="mailQueue-image" hide-xs>\n <img ng-src="assets/images/business/mailQueues.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.mailQueue.id}}\n <span ng-if="vm.mailQueue.name">{{vm.mailQueue.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="MAIL.CREATED_AT"></span> <span>{{vm.mailQueue.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.teamadddialog(vm.mailQueue, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n <md-tooltip><span translate="MAIL.TEAMADD_MAILQUEUE"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.mailQueue, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="MAIL.AGENTADD_MAILQUEUE"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-plus"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveMailQueue()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid)" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="mailQueue-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MAIL.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MAIL.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.mailQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="MAIL.HELP.NAME"></span></div>\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MAIL.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.mailQueue.strategy" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'beepall\'">Beepall</md-option>\n <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n </md-select>\n <div ng-messages="generalForm[\'strategy\'].$error" ng-show="generalForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.AGENT_TIMEOUT">Agent_Timeout</label>\n <input type="number" name="timeout" ng-model="vm.mailQueue.timeout" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'timeout\'].$error" ng-show="generalForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.mailQueue.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/mail/views/mailQueues/mailQueues.html",'<div id="mailQueues" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-email" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="MAIL.MAILQUEUES">MailQueues</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="MAIL.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedMailQueues.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedMailQueues =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="MAIL.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-mailQueues-count">\n <span>{{vm.selectedMailQueues.length}}</span>\n <span translate="MAIL.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="MAIL.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllMailQueues()" translate="MAIL.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectMailQueues()" translate="MAIL.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedMailQueues" csv-label="true" filename="mailQueues.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedMailQueues($event)" aria-label="delete selected" translate translate-attr-label="MAIL.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- MAILQUEUE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedMailQueues" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getMailQueues">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'MAIL.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'MAIL.NAME\' | translate }}</th>\n <th md-column md-order-by="strategy">{{ \'MAIL.STRATEGY\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.mailQueues.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="MAIL.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="mailQueue" md-select-id="id" ng-repeat="mailQueue in vm.mailQueues.rows">\n <td md-cell ng-if="mailQueue.userpic"><img class="avatar" alt="{{mailQueue.name}}" ng-src="api/users/{{mailQueue.id}}/avatar" /></td>\n <td md-cell ng-if="!mailQueue.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{mailQueue.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailQueue, ev) : vm.createOrEditMailQueue($event, mailQueue)" md-cell class="id ">{{mailQueue.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailQueue, ev) : vm.createOrEditMailQueue($event, mailQueue)" md-cell class="name ">{{mailQueue.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailQueue, ev) : vm.createOrEditMailQueue($event, mailQueue)" md-cell class="strategy ">{{ vm.arraystrategy[mailQueue.strategy].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MAIL.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(mailQueue, $event )" translate="MAIL.EDIT_MAILQUEUE">\n Edit MailQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(mailQueue, $event )" translate="MAIL.TEAMADD_MAILQUEUE">\n teamadd MailQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(mailQueue, $event )" translate="MAIL.AGENTADD_MAILQUEUE">\n agentadd MailQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(mailQueue, $event )" translate="MAIL.DELETE_MAILQUEUE">\n Delete MailQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(mailQueue, $event )" translate="MAIL.GOTOREALTIME_MAILQUEUE">\n goToRealtime MailQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.mailQueues.count}}" md-on-paginate="vm.getMailQueues" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / MAILQUEUE TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD MAILQUEUE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-mailQueue-button" ng-click="vm.createOrEditMailQueue($event)" aria-label="add mailQueue" translate translate-attr-aria-label="MAIL.ADD_MAILQUEUE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD MAILQUEUE BUTTON --\x3e\n</div>'),e.put("app/main/apps/mail/views/mailSubtatuses/create/dialog.html",'<md-dialog class="mailSubstatus-dialog" aria-label="New MailSubstatus">\n <form name="mailSubstatusForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MAIL.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.mailSubstatus.name" ng-required="true" autofocus>\n\n <div ng-messages="mailSubstatusForm[\'name\'].$error" ng-show="mailSubstatusForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.mailSubstatus.description">\n\n <div ng-messages="mailSubstatusForm[\'description\'].$error" ng-show="mailSubstatusForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newMailSubstatus" ng-click="vm.saveMailSubstatus()" class="send-button md-accent md-raised" ng-disabled="mailSubstatusForm.$invalid || mailSubstatusForm.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newMailSubstatus" ng-click="vm.addNewMailSubstatus()" class="send-button md-accent md-raised" ng-disabled="mailSubstatusForm.$invalid" aria-label="ADD" translate="MAIL.ADD_MAILSUBSTATUS" translate-attr-aria-label="MAIL.ADD_MAILSUBSTATUS">\n ADD MAILSUBSTATUS\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newMailSubstatus" ng-click="vm.deleteMailSubstatus($event)" aria-label="DELETE" translate translate-attr-aria-label="MAIL.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="MAIL.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailSubtatuses/mailSubtatuses.html",'<div id="mailSubtatuses" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-email" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="MAIL.MAILSUBSTATUSES">MailSubstatuses</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="MAIL.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedMailSubstatuses.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedMailSubstatuses =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="MAIL.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-mailSubtatuses-count">\n <span>{{vm.selectedMailSubstatuses.length}}</span>\n <span translate="MAIL.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="MAIL.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllMailSubstatuses()" translate="MAIL.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectMailSubstatuses()" translate="MAIL.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedMailSubstatuses" csv-label="true" filename="mailSubtatuses.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedMailSubstatuses($event)" aria-label="delete selected" translate translate-attr-label="MAIL.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- MAILSUBSTATUS TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedMailSubstatuses" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getMailSubstatuses">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'MAIL.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'MAIL.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'MAIL.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.mailSubtatuses.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="MAIL.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="mailSubstatus" md-select-id="id" ng-repeat="mailSubstatus in vm.mailSubtatuses.rows">\n <td md-cell ng-if="mailSubstatus.userpic"><img class="avatar" alt="{{mailSubstatus.name}}" ng-src="api/users/{{mailSubstatus.id}}/avatar" /></td>\n <td md-cell ng-if="!mailSubstatus.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{mailSubstatus.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditMailSubstatus($event, mailSubstatus)" md-cell class="id ">{{mailSubstatus.id}}</td>\n <td ng-click="vm.createOrEditMailSubstatus($event, mailSubstatus)" md-cell class="name ">{{mailSubstatus.name}}</td>\n <td ng-click="vm.createOrEditMailSubstatus($event, mailSubstatus)" md-cell class="description ">{{mailSubstatus.description}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MAIL.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(mailSubstatus, $event )" translate="MAIL.EDIT_MAILSUBSTATUS">\n Edit MailSubstatus\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(mailSubstatus, $event )" translate="MAIL.DELETE_MAILSUBSTATUS">\n Delete MailSubstatus\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.mailSubtatuses.count}}" md-on-paginate="vm.getMailSubstatuses" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / MAILSUBSTATUS TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD MAILSUBSTATUS BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-mailSubstatus-button" ng-click="vm.createOrEditMailSubstatus($event)" aria-label="add mailSubstatus" translate translate-attr-aria-label="MAIL.ADD_MAILSUBSTATUS">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD MAILSUBSTATUS BUTTON --\x3e\n</div>'),e.put("app/main/apps/mail/views/realtime/accounts/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MAIL.ACCOUNTS">Accounts</span>\n <div flex></div>\n <ms-search-bar on-search="vm.vm.getMailAccounts()" query="vm.query" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n\n\x3c!-- AGENT TABLE --\x3e\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getMailAccounts">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'MAIL.NAME\' | translate}}</th>\n <th md-column>{{\'MAIL.KEY\' | translate}}</th>\n <th md-column>{{\'MAIL.TOTAL\' | translate}}</th>\n <th md-column>{{\'MAIL.IN\' | translate}}</th>\n <th md-column>{{\'MAIL.OUT\' | translate}}</th>\n <th md-column>{{\'MAIL.IMAP_STATUS\' | translate}}</th>\n <th md-column>{{\'MAIL.SMTP_STATUS\' | translate}}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.mailAccounts">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="MAIL.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="vm.mailAccounts[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td md-cell>{{vm.mailAccounts[value].name}}</td>\n <td md-cell>{{vm.mailAccounts[value].key}}</td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{(vm.mailAccounts[value].in || 0) + (vm.mailAccounts[value].out || 0)}}</span>\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="icon-arrow-down-bold blue-fg"></md-icon>\n </span>\n <span class="md-capture blue-fg">{{vm.mailAccounts[value].in || 0}}</span>\n <span class="text-boxed" ng-if="mailAccount.in">{{vm.mailAccounts[value].lastIn ? (vm.mailAccounts[value].lastIn | date: \'shortTime\') : \'\'}}</span>\n </div>\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="icon-arrow-up-bold green-fg"></md-icon>\n </span>\n <span class="md-capture green-fg">{{vm.mailAccounts[value].out || 0}}</span>\n <span class="text-boxed" ng-if="mailAccount.out">{{vm.mailAccounts[value].lastOut ? (vm.mailAccounts[value].lastOut | date: \'shortTime\') : \'\'}}</span>\n </div>\n </td>\n <td md-cell>\n <div layout="row" layout-align="start center">\n <div layout="column" layout-align="center center">\n <md-button class="md-icon-button" aria-label="Status">\n <md-tooltip>{{vm.mailAccounts[value].Imap.messageStatus}}</md-tooltip>\n <div ng-switch="vm.mailAccounts[value].Imap.status">\n <md-icon ng-switch-when="error" md-font-icon="icon-alert yellow-fg"></md-icon>\n <md-icon ng-switch-when="disabled" md-font-icon="icon-close grey-fg"></md-icon>\n <md-icon ng-switch-default md-font-icon="icon-checkbox-marked-circle-outline green-fg"></md-icon>\n </div>\n </md-button>\n <span class="md-caption grey-fg">{{ (\'MAIL.\' + vm.mailAccounts[value].Imap.status.toUpperCase()) | translate}}</span>\n </div>\n <span class="text-boxed" ng-if="vm.mailAccounts[value].active && (vm.mailAccounts[value].Imap.lastSync && vm.mailAccounts[value].Imap.lastSync != \'\')">{{vm.mailAccounts[value].Imap.lastSync | date: \'shortTime\'}}</span>\n </div>\n </td>\n <td md-cell>\n <div layout="row" layout-align="start center" ng-if="vm.mailAccounts[value].Smtp.status">\n <div layout="column" layout-align="center center">\n <md-button class="md-icon-button" aria-label="Status">\n <md-tooltip>{{vm.mailAccounts[value].Smtp.messageStatus}}</md-tooltip>\n <md-icon md-font-icon="{{ vm.mailAccounts[value].Smtp.status == \'error\' ? \'icon-alert yellow-fg\' : \'icon-checkbox-marked-circle-outline green-fg\'}}"></md-icon>\n </md-button>\n <span class="md-caption grey-fg">{{ (\'MAIL.\' + vm.mailAccounts[value].Smtp.status.toUpperCase()) | translate}}</span>\n </div>\n <span class="text-boxed">{{vm.mailAccounts[value].Smtp.lastSync | date: \'shortTime\'}}</span>\n </div>\n <span class="md-caption grey-fg" ng-if="!vm.mailAccounts[value].Smtp.status">{{ \'MAIL.NEVER_VERIFIED\' | translate }}</span>\n </td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="4">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.goToMailAccount($event, vm.mailAccounts[value])" translate="MAIL.EDIT_ACCOUNT">\n Edit Account\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.verifySmtp($event, vm.mailAccounts[value])" translate="MAIL.VERIFY_SMTP">\n Verify Smtp\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getMailAccounts" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/mail/views/realtime/agents/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MAIL.AGENTS">Agents</span>\n <div flex></div>\n <ms-search-bar on-search="vm.onInit()" query="vm.query" on-collapse="vm.query.filter = undefined; vm.onInit()" debounce="300"></ms-search-bar>\n <md-select ng-model="vm.query.globalStatusFilter" class="md-caption" ng-change="vm.query.pauseTypeFilter = \'\'; vm.onInit()">\n <md-option ng-value="\'\'">{{ \'MAIL.ALL\' | translate }}</md-option>\n <md-option value="pause">{{ \'MAIL.PAUSE\' | translate }}</md-option>\n <md-option value="*pause">{{ \'MAIL.PARTIALPAUSE\' | translate }}</md-option>\n <md-option value="busy">{{ \'MAIL.BUSY\' | translate }}</md-option>\n <md-option value="idle">{{ \'MAIL.IDLE\' | translate }}</md-option>\n </md-select>\n <md-select ng-if="vm.isPause(vm.query.globalStatusFilter)" ng-model="vm.query.pauseTypeFilter" class="md-caption" ng-change="vm.onInit()">\n <md-option ng-value="\'\'">All</md-option>\n <md-option value="DEFAULT PAUSE">DEFAULT PAUSE</md-option>\n <md-option value="ACW">ACW</md-option>\n <md-option value="LOGININPAUSE">LOGININPAUSE</md-option>\n <md-option value="Auto-Pause">AUTOPAUSE</md-option>\n <md-option ng-value="pause.name" ng-repeat="pause in vm.pauses.rows">{{pause.name}}</md-option>\n </md-select>\n </div>\n</md-toolbar>\n\x3c!-- AGENT TABLE --\x3e\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.order" md-on-reorder="vm.onInit">\n <tr md-row border="1">\n <th class="bv text-center" colspan="5">{{ \'MAIL.AGENT\' | translate }}</th>\n <th class="bv bl text-center" colspan="2">{{ \'VOICE.VOICE\' | translate }}</th>\n <th ng-if="vm.license.chat" class="bv bl text-center" colspan="2">{{ \'CHAT.CHAT\' | translate }}</th>\n <th ng-if="vm.license.mail" class="bv bl text-center" colspan="2">{{ \'MAIL.MAIL\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="bv bl text-center" colspan="2">{{ \'SMS.SMS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="bv bl text-center" colspan="2">\n {{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="bv bl text-center" colspan="2">\n {{ \'WHATSAPP.WHATSAPP\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n </tr>\n <tr md-row>\n <th class="bl" colspan="2" md-column md-order-by="fullname">\n {{ \'MAIL.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">\n {{ \'MAIL.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">\n {{ \'MAIL.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">\n {{ \'MAIL.PAUSE_TIME\' | translate }}</th>\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\n <th ng-if="vm.license.chat" class="bl text-center">{{ \'CHAT.STATUS\' | translate }}</th>\n <th ng-if="vm.license.chat" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'CHAT.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.mail" class="bl text-center">{{ \'MAIL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.mail" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'MAIL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.messaging" class="bl text-center">{{ \'SMS.STATUS\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'SMS.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.openchannel" class="bl text-center">{{ \'OPENCHANNEL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'OPENCHANNEL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.fax" class="bl text-center">{{ \'FAX.STATUS\' | translate }}</th>\n <th ng-if="vm.license.fax" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'FAX.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.whatsapp" class="bl text-center">{{ \'WHATSAPP.STATUS\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'WHATSAPP.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.order.length">\n <td md-cell colspan="19">\n <div layout="row" layout-align="center center">\n <span>{{ \'MAIL.NO_AGENT_ONLINE\' | translate }}</span>\n </div>\n </td>\n </tr>\n <tr md-select="vm.agents[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td class="bt padding-5">\n <div layout="row" layout-align="start center">\n <img class="avatar" ng-src="{{vm.agents[value].userpic && \'api/users/\'+vm.agents[value].id+\'/avatar\' || \'assets/images/avatars/profile.png\'}}">\n <div layout="column">\n <span>{{vm.agents[value].fullname}}</span>\n <span>{{vm.agents[value].internal}}</span>\n </div>\n </div>\n </td>\n <td class="bt padding-5">\n <div layout="row" layout-align="start center" ng-if="vm.license.screenrecording && (vm.agents[value].phoneBarEnableScreenRecordingByAgent || vm.agents[value].phoneBarEnableAutomaticScreenRecording)">\n <div class="column" ng-if="vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: green; font-size: 36px;" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'MAIL.TOOLTIP_SCREENRECORDING_ON\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n <div class="column" ng-if="!vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: gray" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'MAIL.TOOLTIP_SCREENRECORDING_OFF\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n </div>\n </td>\n <td class="bt">\n'+" <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','busy':'indigo-100-bg','*pause':'amber-50-bg','pause':'amber-200-bg'}[vm.agents[value].globalStatus]\">{{\n vm.isPause(vm.agents[value].globalStatus) ? '' : vm.agents[value].globalStatus | uppercase }}\n {{ vm.isPause(vm.agents[value].globalStatus) ? (vm.isPartialPause(vm.agents[value].globalStatus) ?\n '*'+vm.agents[value].pauseType || 'DEFAULT PAUSE' : vm.agents[value].pauseType || 'DEFAULT PAUSE') :\n ''}}</span>\n </td>\n <td class=\"bt custom-column\">\n <timer start-time=\"vm.agents[value].lastLoginAt\"></timer>\n </td>\n <td class=\"bt custom-column\">\n <timer ng-if=\"vm.isPause(vm.agents[value].globalStatus) || vm.isPartialPause(vm.agents[value].globalStatus)\" start-time=\"vm.agents[value].lastPauseAt\"></timer>\n </td>\n <td class=\"bt bl\">\n <div layout=\"row\">\n <span ng-if=\"!vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','talking':'indigo-100-bg','ringing':'orange-400-bg','pause':'amber-200-bg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].voiceStatus | uppercase }}</span>\n <span ng-if=\"vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5 orange-400-bg\">ONHOLD</span>\n </div>\n </td>\n <td class=\"bt bl\">\n <div layout=\"column\">\n <span ng-if=\"vm.agents[value].queue\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].queue }}</span>\n <span ng-if=\"vm.agents[value].destconnectedlinenum\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\" privacy ng-cloak>{{\n vm.agents[value].destconnectedlinenum }}</span>\n <span ng-if=\"vm.agents[value].routealias\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].routealias }}</span>\n <span class=\"padding-5\" ng-if=\"vm.agents[value].queue || vm.agents[value].destconnectedlinenum\">\n <timer start-time=\"vm.agents[value].voiceStatusTime\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">\n </timer>\n </span>\n </div>\n </td>\n <td class=\"bt bl\" ng-if=\"vm.license.chat\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].chatStatus]\">{{\n vm.agents[value].chatStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td md-number class=\"bt text-center font-size-20\" ng-if=\"vm.license.chat\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].chatStatus]\">\n {{ vm.agents[value].chatCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.mail\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].mailStatus]\">{{\n vm.agents[value].mailStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.mail\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].mailStatus]\">\n {{ vm.agents[value].mailCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.messaging\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].smsStatus]\">{{\n vm.agents[value].smsStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.messaging\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].smsStatus]\">\n {{ vm.agents[value].smsCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.openchannel\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].openchannelStatus]\">{{\n vm.agents[value].openchannelStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.openchannel\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].openchannelStatus]\">\n {{ vm.agents[value].openchannelCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.fax\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].faxStatus]\">{{\n vm.agents[value].faxStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.fax\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].faxStatus]\">\n {{ vm.agents[value].faxCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.whatsapp\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].whatsappStatus]\">{{\n vm.agents[value].whatsappStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.whatsapp\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].whatsappStatus]\">\n {{ vm.agents[value].whatsappCurrentCapacity }}</td>\n <td class=\"bl bt padding-5 text-center\" ng-if=\"vm.crudPermissions.canEdit\">\n <md-menu>\n <md-button class=\"md-icon-button\" aria-label=\"More\" translate translate-attr-aria-label=\"STAFF.MORE\" ng-click=\"$mdOpenMenu($event)\">\n <md-icon md-font-icon=\"icon-dots-vertical\"></md-icon>\n </md-button>\n <md-menu-content width=\"4\">\n <md-menu-item>\n <md-button ng-click=\"vm.logout(vm.agents[value], $event)\" translate=\"MAIL.LOGOUT\">\n Logout\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click=\"vm.queueAdd(vm.agents[value], $event)\" translate=\"MAIL.AGENTADD_QUEUE\">\n Add Agent In Queue\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.license.screenrecording && vm.agents[value].phoneBarEnableScreenRecordingByAgent\">\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"MAIL.SCREENRECORDING\">Screen Recording\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if=\"!vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], true)\"><em translate=\"MAIL.START_SCREENRECORDING\">Start\n Screen Recording</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], false)\"><em translate=\"MAIL.STOP_SCREENRECORDING\">Stop\n Screen Recording</em></md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item>\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"MAIL.PAUSE\">Pause</md-button>\n <md-menu-content>\n <md-menu-item>\n <md-button ng-disabled=\" vm.agents[value].voicePause && 'DEFAULT PAUSE' === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value])\"><em translate=\"MAIL.DEFAULT_PAUSE\">Default\n Pause</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.pauses.rows.length\" ng-repeat=\"pause in vm.pauses.rows\">\n <md-button ng-disabled=\"vm.agents[value].voicePause && pause.name === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value], pause.name)\">{{pause.name}}\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.isPause(vm.agents[value].globalStatus)\">\n <md-button ng-click=\"vm.unPause(vm.agents[value])\" translate=\"MAIL.UNPAUSE\">\n Unpause\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label=\"{page: '{{'MAIL.PAGE' | translate}}:', rowsPerPage: '{{'MAIL.ROWSPERPAGE' | translate}}:', of: '{{'MAIL.OF' | translate}}'}\" md-limit=\"vm.query.limit\" md-limit-options=\"[10, 15, 20, 50, 100, 250]\" md-page=\"vm.query.page\" md-total=\"{{vm.filteredAgents.length}}\" md-on-paginate=\"vm.onInit\" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e"),e.put("app/main/apps/mail/views/realtime/queues/view.html",'<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MAIL.QUEUES">Queues</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getQueues">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'MAIL.NAME\' | translate }}</th>\n <th md-column>{{ \'MAIL.LOGGED_IN\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'MAIL.PAUSED\' | translate }}</th>\n <th md-column>{{ \'MAIL.WAITING\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.queues.count > 0">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="MAIL.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="queue" md-select-id="id" ng-repeat="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedIn }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MAIL.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.editQueue($event, queue)" translate="MAIL.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.addAgent($event, queue)" translate="MAIL.AGENTSADD_QUEUE">\n Add Agents to queue\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),e.put("app/main/apps/mail/views/realtime/realtime.html",'<div id="realtime" class="page-layout simple tabbed" layout="column" ng-cloak>\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.AGENTS">Agents</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.QUEUES">Queues</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.ACCOUNTS">Accounts</span>\n </md-tab-label>\n </md-tab>\n </md-tabs>\n\n <md-card ui-view></md-card>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/marketplace/views/plugins/create/dialog.html",'<md-dialog class="plugin-dialog" aria-label="New Plugin">\n <form name="pluginForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.plugin.name" ng-required="true" autofocus>\n\n <div ng-messages="pluginForm[\'name\'].$error" ng-show="pluginForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.TYPE">Type</label>\n <input type="text" name="type" ng-model="vm.plugin.type" ng-disabled="!vm.newPlugin">\n\n <div ng-messages="pluginForm[\'type\'].$error" ng-show="pluginForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.plugin.active" aria-label="Active" ng-disabled="!vm.newPlugin"><span translate="MARKETPLACE.ACTIVE">Active</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.plugin.description">\n\n <div ng-messages="pluginForm[\'description\'].$error" ng-show="pluginForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.ICON">Icon</label>\n <input type="text" name="icon" ng-model="vm.plugin.icon" ng-required="true">\n\n <div ng-messages="pluginForm[\'icon\'].$error" ng-show="pluginForm[\'icon\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.ICON_REQUIRED">Icon field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.SIDEBAR">Sidebar</label>\n <md-select name="sidebar" ng-model="vm.plugin.sidebar" required>\n <md-option ng-value="\'always\'">Always</md-option>\n <md-option ng-value="\'adminOnly\'">Admin Only</md-option>\n <md-option ng-value="\'agentOnly\'">Agent Only</md-option>\n <md-option ng-value="\'never\'">Never</md-option>\n </md-select>\n <div ng-messages="pluginForm[\'sidebar\'].$error" ng-show="pluginForm[\'sidebar\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.SIDEBAR_REQUIRED">Sidebar field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.sidebar === \'always\' || vm.plugin.sidebar === \'adminOnly\'" class="md-block">\n <label translate="MARKETPLACE.ADMINURL">AdminUrl</label>\n <input type="text" name="adminUrl" ng-model="vm.plugin.adminUrl">\n\n <div ng-messages="pluginForm[\'adminUrl\'].$error" ng-show="pluginForm[\'adminUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.ADMINURL_REQUIRED">AdminUrl field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.sidebar === \'always\' || vm.plugin.sidebar === \'agentOnly\'" class="md-block">\n <label translate="MARKETPLACE.AGENTURL">AgentUrl</label>\n <input type="text" name="agentUrl" ng-model="vm.plugin.agentUrl">\n\n <div ng-messages="pluginForm[\'agentUrl\'].$error" ng-show="pluginForm[\'agentUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.AGENTURL_REQUIRED">AgentUrl field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.type === \'script\'" class="md-block">\n <label translate="MARKETPLACE.SCRIPTNAME">ScriptName</label>\n <input type="text" name="scriptName" ng-model="vm.plugin.scriptName" ng-disabled="!vm.newPlugin">\n\n <div ng-messages="pluginForm[\'scriptName\'].$error" ng-show="pluginForm[\'scriptName\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.SCRIPTNAME_REQUIRED">ScriptName field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.type === \'script\'" class="md-block">\n <label translate="MARKETPLACE.SCRIPTPATH">ScriptPath</label>\n <input type="text" name="scriptPath" ng-model="vm.plugin.scriptPath" ng-required="true">\n\n <div ng-messages="pluginForm[\'scriptPath\'].$error" ng-show="pluginForm[\'scriptPath\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.SCRIPTPATH_REQUIRED">ScriptPath field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.VERSION">Version</label>\n <input type="text" name="version" ng-model="vm.plugin.version" ng-disabled="!vm.newPlugin">\n\n <div ng-messages="pluginForm[\'version\'].$error" ng-show="pluginForm[\'version\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.VERSION_REQUIRED">Version field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newPlugin" ng-click="vm.savePlugin()" class="send-button md-accent md-raised" ng-disabled="pluginForm.$invalid || pluginForm.$pristine" aria-label="SAVE" translate="MARKETPLACE.SAVE" translate-attr-aria-label="MARKETPLACE.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newPlugin" ng-click="vm.addNewPlugin()" class="send-button md-accent md-raised" ng-disabled="pluginForm.$invalid" aria-label="ADD" translate="MARKETPLACE.ADD_PLUGIN" translate-attr-aria-label="MARKETPLACE.ADD_PLUGIN">\n ADD PLUGIN\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newPlugin" ng-click="vm.deletePlugin($event)" aria-label="DELETE" translate translate-attr-aria-label="MARKETPLACE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="MARKETPLACE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/marketplace/views/plugins/edit/view.html",'<div id="marketplace-plugin" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-plugins-button md-icon-button" aria-label="Go to plugins" ng-click="vm.gotoPlugins()" translate translate-attr-aria-label="MARKETPLACE.GO_TO_PLUGINS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="plugin-image" hide-xs>\n <img ng-src="assets/images/business/plugins.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.plugin.id}}\n <span ng-if="vm.plugin.name">{{vm.plugin.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="MARKETPLACE.CREATED_AT"></span> <span>{{vm.plugin.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.savePlugin()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid)" translate="MARKETPLACE.SAVE" translate-attr-aria-label="MARKETPLACE.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="MARKETPLACE.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="plugin-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MARKETPLACE.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.plugin.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.TYPE">Type</label>\n <input type="text" name="type" ng-model="vm.plugin.type" disabled>\n\n <div ng-messages="generalForm[\'type\'].$error" ng-show="generalForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.plugin.active" aria-label="Active" ng-disabled="true"><span translate="MARKETPLACE.ACTIVE">Active</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.plugin.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.ICON">Icon</label>\n <input type="text" name="icon" ng-model="vm.plugin.icon" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'icon\'].$error" ng-show="generalForm[\'icon\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.ICON_REQUIRED">Icon field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.SIDEBAR">Sidebar</label>\n <md-select name="sidebar" ng-model="vm.plugin.sidebar" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'always\'">Always</md-option>\n <md-option ng-value="\'adminOnly\'">Admin Only</md-option>\n <md-option ng-value="\'agentOnly\'">Agent Only</md-option>\n <md-option ng-value="\'never\'">Never</md-option>\n </md-select>\n <div ng-messages="generalForm[\'sidebar\'].$error" ng-show="generalForm[\'sidebar\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.SIDEBAR_REQUIRED">Sidebar field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.sidebar === \'always\' || vm.plugin.sidebar === \'adminOnly\'" class="md-block">\n <label translate="MARKETPLACE.ADMINURL">AdminUrl</label>\n <input type="text" name="adminUrl" ng-model="vm.plugin.adminUrl" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'adminUrl\'].$error" ng-show="generalForm[\'adminUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.ADMINURL_REQUIRED">AdminUrl field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.sidebar === \'always\' || vm.plugin.sidebar === \'agentOnly\'" class="md-block">\n <label translate="MARKETPLACE.AGENTURL">AgentUrl</label>\n <input type="text" name="agentUrl" ng-model="vm.plugin.agentUrl" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'agentUrl\'].$error" ng-show="generalForm[\'agentUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.AGENTURL_REQUIRED">AgentUrl field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.type === \'script\'" class="md-block">\n <label translate="MARKETPLACE.SCRIPTNAME">ScriptName</label>\n <input type="text" name="scriptName" ng-model="vm.plugin.scriptName" disabled>\n\n <div ng-messages="generalForm[\'scriptName\'].$error" ng-show="generalForm[\'scriptName\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.SCRIPTNAME_REQUIRED">ScriptName field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.type === \'script\'" class="md-block">\n <label translate="MARKETPLACE.SCRIPTPATH">ScriptPath</label>\n <input type="text" name="scriptPath" ng-model="vm.plugin.scriptPath" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'scriptPath\'].$error" ng-show="generalForm[\'scriptPath\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.SCRIPTPATH_REQUIRED">ScriptPath field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.VERSION">Version</label>\n <input type="text" name="version" ng-model="vm.plugin.version" disabled>\n\n <div ng-messages="generalForm[\'version\'].$error" ng-show="generalForm[\'version\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.VERSION_REQUIRED">Version field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/marketplace/views/plugins/plugins.html",'<div id="plugins" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-cart" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="MARKETPLACE.PLUGINS">Plugins</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="MARKETPLACE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedPlugins.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedPlugins =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="MARKETPLACE.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-plugins-count">\n <span>{{vm.selectedPlugins.length}}</span>\n <span translate="MARKETPLACE.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="MARKETPLACE.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllPlugins()" translate="MARKETPLACE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectPlugins()" translate="MARKETPLACE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedPlugins" csv-label="true" filename="plugins.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedPlugins($event)" aria-label="delete selected" translate translate-attr-label="MARKETPLACE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n <div ng-if="vm.installing">\n <md-card class="md-whiteframe-1dp padding-20" flex>\n <div layout="column" layout-align="center center">\n <span class="md-title md-accent-fg padding-20 text-bold" translate="MARKETPLACE.INSTALLING">Installing</span>\n <md-progress-linear md-mode="indeterminate" class="md-accent padding-20"></md-progress-linear>\n </div>\n </md-card>\n </div>\n\n \x3c!-- PLUGIN TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedPlugins" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getPlugins">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="name">{{ \'MARKETPLACE.NAME\' | translate }}</th>\n <th md-column md-order-by="type">{{ \'MARKETPLACE.TYPE\' | translate }}</th>\n <th md-column md-order-by="active">{{ \'MARKETPLACE.ACTIVE\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'MARKETPLACE.DESCRIPTION\' | translate }}</th>\n <th md-column md-order-by="version">{{ \'MARKETPLACE.VERSION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.plugins.rows.length">\n <td md-cell colspan="6">\n <div layout="row" layout-align="center center">\n <span translate="MARKETPLACE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="plugin" md-select-id="id" ng-repeat="plugin in vm.plugins.rows">\n <td md-cell ng-if="plugin.userpic"><img class="avatar" alt="{{plugin.name}}" ng-src="api/users/{{plugin.id}}/avatar" /></td>\n <td md-cell ng-if="!plugin.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{plugin.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(plugin, ev) : vm.createOrEditPlugin($event, plugin)" md-cell class="name ">{{plugin.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(plugin, ev) : vm.createOrEditPlugin($event, plugin)" md-cell class="type ">{{plugin.type}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(plugin, ev) : vm.createOrEditPlugin($event, plugin)" md-cell class="active ">\n <md-icon md-colors="{color: {{plugin.active ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{plugin.active ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(plugin, ev) : vm.createOrEditPlugin($event, plugin)" md-cell class="description ">{{plugin.description}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(plugin, ev) : vm.createOrEditPlugin($event, plugin)" md-cell class="version ">{{plugin.version}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MARKETPLACE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit && !plugin.active">\n\n <md-button ng-click="vm.installplugin(plugin, $event )" translate="MARKETPLACE.INSTALL_PLUGIN">\n Install Plugin\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(plugin, $event )" translate="MARKETPLACE.EDIT_PLUGIN">\n Edit Plugin\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit && plugin.active && plugin.type == \'script\'">\n\n <md-button ng-click="vm.stopplugin(plugin, $event )" translate="MARKETPLACE.STOP_PLUGIN">\n Stop Plugin\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit && plugin.active && plugin.type == \'script\'">\n\n <md-button ng-click="vm.restartplugin(plugin, $event )" translate="MARKETPLACE.RESTART_PLUGIN">\n Restart Plugin\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.downloadfile2(plugin, $event , \'plugins\' )" translate="MARKETPLACE.DOWNLOAD_PLUGIN">\n Download Plugin\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit && plugin.active">\n\n <md-button ng-click="vm.uninstallplugin(plugin, $event )" translate="MARKETPLACE.UNINSTALL_PLUGIN">\n Uninstall Plugin\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(plugin, $event )" translate="MARKETPLACE.DELETE_PLUGIN">\n Delete Plugin\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'MARKETPLACE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MARKETPLACE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MARKETPLACE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.plugins.count}}" md-on-paginate="vm.getPlugins" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / PLUGIN TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- UPLOAD PLUGIN BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="upload-plugin-button" ng-click="vm.uploadPlugin($event)" aria-label="upload plugin" translate translate-attr-aria-label="MARKETPLACE.UPLOAD_PLUGIN">\n <md-icon md-font-icon="icon-upload"></md-icon>\n </md-button>\n \x3c!-- / UPLOAD PLUGIN BUTTON --\x3e\n</div>'),e.put("app/main/apps/marketplace/views/plugins/upload/dialog.html",'<md-dialog class="upload-dialog" aria-label="Upload ">\n <form name="uploadForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <div id="plugin-uploader" ng-hide="vm.uploadState == \'uploading\'" flow-init="vm.ngFlowOptions" flow-name="vm.ngFlow.flow" flow-files-submitted="vm.upload()" flow-file-added="vm.fileAdded($file)" flow-file-success="vm.fileSuccess($file, $message)" flow-error="vm.uploadError($file, $message)" flow-complete="vm.uploadComplete()" flow-drop flow-drag-enter="vm.dropping=true" flow-drag-leave="vm.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n <div class="drop-text hint-text" layout="row" layout-align="center center">\n <span translate="MARKETPLACE.DROP_TO_UPLOAD">Drop to upload</span>\n </div>\n\n <div class="upload-button" layout="column" layout-align="center center">\n <md-button class="md-accent md-raised" flow-btn>\n Upload\n </md-button>\n <span class="secondary-text mt-8" translate="MARKETPLACE.DROP_TO_UPLOAD_MESSAGE">You can also drop your file here to upload.</span>\n </div>\n </div>\n\n <div layout="column" layout-align="space-between center" ng-show="vm.uploadState == \'uploading\'">\n <div>\n <span translate="MARKETPLACE.UPLOADING">Uploading</span>\n <span>{{vm.plugin.file.name}}</span>\n </div>\n <md-progress-linear md-mode="indeterminate"></md-progress-linear>\n </div>\n\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center"></div>\n <div layout="row">\n <md-button ng-click="vm.closeDialog()" ng-hide="vm.uploadState == \'uploading\'" class="md-accent md-raised" aria-label="FINISH" translate="MARKETPLACE.FINISH" translate-attr-aria-label="MARKETPLACE.FINISH">\n FINISH\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/ivrCampaigns/create/dialog.html",'<md-dialog class="ivrCampaign-dialog" aria-label="New IvrCampaign">\n <form name="ivrCampaignForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.ivrCampaign.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newIvrCampaign">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NAME"></span></div>\n <div ng-messages="ivrCampaignForm[\'name\'].$error" ng-show="ivrCampaignForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MOTIONDIALER.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.ivrCampaign.active" aria-label="Active"><span translate="MOTIONDIALER.ACTIVE">Active</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.TRUNK">Trunk</label>\n <md-select name="TrunkId" ng-model="vm.ivrCampaign.TrunkId" required>\n <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks" ng-disabled="TrunkId.canSelect === false">{{ TrunkId.name }}</md-option>\n </md-select>\n <div ng-messages="ivrCampaignForm[\'TrunkId\'].$error" ng-show="ivrCampaignForm[\'TrunkId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.TRUNK_REQUIRED">Trunk field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.INTERVAL">Interval</label>\n <md-select name="IntervalId" ng-model="vm.ivrCampaign.IntervalId" required>\n <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval" ng-disabled="IntervalId.canSelect === false">{{ IntervalId.name }}</md-option>\n </md-select>\n <div ng-messages="ivrCampaignForm[\'IntervalId\'].$error" ng-show="ivrCampaignForm[\'IntervalId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.INTERVAL_REQUIRED">Interval field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CHECKDUPLICATE">CheckDuplicate</label>\n <md-select name="dialCheckDuplicateType" ng-model="vm.ivrCampaign.dialCheckDuplicateType" required>\n\n <md-option ng-value="\'always\'"> {{ \'MOTIONDIALER.ALWAYS\' | translate }} </md-option>\n\n <md-option ng-value="\'never\'"> {{ \'MOTIONDIALER.NEVER\' | translate }} </md-option>\n\n <md-option ng-value="\'onlyIfOpen\'"> {{ \'MOTIONDIALER.ONLY_IF_OPEN\' | translate }} </md-option>\n </md-select>\n <div ng-messages="ivrCampaignForm[\'dialCheckDuplicateType\'].$error" ng-show="ivrCampaignForm[\'dialCheckDuplicateType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CHECKDUPLICATE_REQUIRED">CheckDuplicate field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CALLYSQUAREPROJECT">CallySquareProject</label>\n <md-select name="SquareProjectId" ng-model="vm.ivrCampaign.SquareProjectId" required>\n <md-option ng-value="SquareProjectId.id" ng-repeat="SquareProjectId in vm.projects" ng-disabled="SquareProjectId.canSelect === false">{{ SquareProjectId.name }}</md-option>\n </md-select>\n <div ng-messages="ivrCampaignForm[\'SquareProjectId\'].$error" ng-show="ivrCampaignForm[\'SquareProjectId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CALLYSQUAREPROJECT_REQUIRED">CallySquareProject field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CONCURRENTCALLS">ConcurrentCalls</label>\n <input type="number" name="limitCalls" ng-model="vm.ivrCampaign.limitCalls" min="1" max="200" value="30" ng-required="true">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.CONCURRENTCALLS"></span></div>\n <div ng-messages="ivrCampaignForm[\'limitCalls\'].$error" ng-show="ivrCampaignForm[\'limitCalls\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CONCURRENTCALLS_REQUIRED">ConcurrentCalls field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CONCURRENTCALLS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">ConcurrentCalls must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CONCURRENTCALLS_MUST_BE_LESS_THAN_OR_EQUAL_TO">ConcurrentCalls must be a valid greater or equal than</span> <span>200</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.ivrCampaign.description">\n\n <div ng-messages="ivrCampaignForm[\'description\'].$error" ng-show="ivrCampaignForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newIvrCampaign" ng-click="vm.saveIvrCampaign()" class="send-button md-accent md-raised" ng-disabled="ivrCampaignForm.$invalid || ivrCampaignForm.$pristine" aria-label="SAVE" translate="MOTIONDIALER.SAVE" translate-attr-aria-label="MOTIONDIALER.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newIvrCampaign" ng-click="vm.addNewIvrCampaign()" class="send-button md-accent md-raised" ng-disabled="ivrCampaignForm.$invalid" aria-label="ADD" translate="MOTIONDIALER.ADD_IVRCAMPAIGN" translate-attr-aria-label="MOTIONDIALER.ADD_IVRCAMPAIGN">\n ADD IVRCAMPAIGN\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newIvrCampaign" ng-click="vm.deleteIvrCampaign($event)" aria-label="DELETE" translate translate-attr-aria-label="MOTIONDIALER.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="MOTIONDIALER.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/ivrCampaigns/edit/blacklistadd/blacklistadd.html",'<md-dialog class="ivrCampaign-dialog" aria-label="ivrCampaign" ng-init="vm.onInit()">\n <form name="ivrCampaignForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="MOTIONDIALER.BLACKLISTADD_IVRCAMPAIGN">Add List in IVRCAMPAIGN</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect ng-hide="vm.loading" options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n <div ng-hide="!vm.loading" layout-fill style="min-height: 397px;" layout="row" layout-sm="column" layout-align="center center">\n <md-progress-circular class="md-primary md-hue-1" md-diameter="96"></md-progress-circular>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveLists()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/ivrCampaigns/edit/clone/clone.html",'<md-dialog class="ivrCampaign-dialog" aria-label="Clone IvrCampaign">\n <form name="ivrCampaignForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.ivrCampaign.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newIvrCampaign">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NAME"></span></div>\n <div ng-messages="ivrCampaignForm[\'name\'].$error" ng-show="ivrCampaignForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MOTIONDIALER.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <md-button type="submit" ng-click="vm.cloneIvrCampaign()" class="send-button md-accent md-raised" ng-disabled="ivrCampaignForm.$invalid" aria-label="CLONE" translate="MOTIONDIALER.CLONE_IVRCAMPAIGN" translate-attr-aria-label="MOTIONDIALER.CLONE_IVRCAMPAIGN">\n CLONE IVRCAMPAIGN\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/ivrCampaigns/edit/hoppers/dialog.html",'<md-dialog class="hopper-dialog" aria-label="New Hopper">\n <form name="hopperForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <div class="md-block">\n <label translate="MOTIONDIALER.SCHEDULEDAT">ScheduledAt</label>\n <md-content layout="row" class="md-padding">\n <div flex class="md-block">\n <mdp-date-picker mdp-open-on-click name="scheduledatDate" mdp-placeholder="Date" mdp-format="YYYY-MM-DD" ng-model="vm.hopper.scheduledat" ng-init="vm.hopper.scheduledat = vm.getDateFromString(vm.hopper.scheduledat)">\n <div ng-messages="hopperForm.dateRangeFrom.$error" ng-show="hopperForm.dateRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DATE_REQUIRED">Date is required</span>\n </div>\n <div ng-message="format">\n <span translate="MOTIONDIALER.ERRORS.DATE_INVALID">Date is invalid</span>\n </div>\n </div>\n </mdp-date-picker>\n </div>\n <div flex class="md-block">\n <mdp-time-picker mdp-open-on-click name="scheduledatTime" mdp-placeholder="Time" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.hopper.scheduledat" ng-init="vm.hopper.scheduledat = vm.getDateFromString(vm.hopper.scheduledat)">\n <div ng-messages="hopperForm.timeRangeFrom.$error" ng-show="hopperForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.TIME_REQUIRED">Time is required</span>\n </div>\n <div ng-message="format">\n <span translate="MOTIONDIALER.ERRORS.TIME_INVALID">Time is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </md-content>\n </div>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.PRIORITY">Priority</label>\n <md-select name="priority" ng-model="vm.hopper.priority">\n <md-option ng-value="\'4\'">Highest</md-option>\n <md-option ng-value="\'3\'">High</md-option>\n <md-option ng-value="\'2\'">Medium</md-option>\n <md-option ng-value="\'1\'">Low</md-option>\n <md-option ng-value="\'0\'">Lowest</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.PRIORITY"></span></div>\n <div ng-messages="hopperForm[\'priority\'].$error" ng-show="hopperForm[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newHopper" ng-click="vm.saveHopper()" class="send-button md-accent md-raised" ng-disabled="hopperForm.$invalid || hopperForm.$pristine" aria-label="SAVE" translate="MOTIONDIALER.SAVE" translate-attr-aria-label="MOTIONDIALER.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newHopper" ng-click="vm.addNewHopper()" class="send-button md-accent md-raised" ng-disabled="hopperForm.$invalid" aria-label="ADD" translate="MOTIONDIALER.ADD_HOPPER" translate-attr-aria-label="MOTIONDIALER.ADD_HOPPER">\n ADD HOPPER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newHopper" ng-click="vm.deleteHopper($event)" aria-label="DELETE" translate translate-attr-aria-label="MOTIONDIALER.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="MOTIONDIALER.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/ivrCampaigns/edit/listadd/listadd.html",'<md-dialog class="ivrCampaign-dialog" aria-label="ivrCampaign" ng-init="vm.onInit()">\n <form name="ivrCampaignForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="MOTIONDIALER.LISTADD_IVRCAMPAIGN">Add List in IVRCAMPAIGN</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect ng-hide="vm.loading" options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n <div ng-hide="!vm.loading" layout-fill style="min-height: 397px;" layout="row" layout-sm="column" layout-align="center center">\n <md-progress-circular class="md-primary md-hue-1" md-diameter="96"></md-progress-circular>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveLists()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/ivrCampaigns/edit/resetlist/resetlist.html",'<md-dialog class="queueCampaign-dialog" aria-label="queueCampaign">\n <form name="queueCampaignForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="MOTIONDIALER.RESETLIST ">Reset List</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-disabled="vm.loading" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ng-hide="vm.loading">\n <div layout="row" layout-wrap flex>\n <div flex-xs flex="50">\n <md-checkbox aria-label="Select All" ng-checked="vm.isChecked()" md-indeterminate="vm.isIndeterminate()" ng-click="vm.toggleAll()">\n <span ng-if="vm.isChecked()" translate="MOTIONDIALER.UNSELECTALL"></span>\n <span ng-if="!vm.isChecked()" translate="MOTIONDIALER.SELECTALL"></span>\n </md-checkbox>\n </div>\n <div flex-xs flex="50">\n </div>\n <div flex="{{vm.items.length > 10 ? 50 : 100 }}" ng-repeat="item in vm.items">\n <md-checkbox ng-checked="vm.exists(item, vm.selected)" ng-click="vm.toggle(item, vm.selected)">\n {{ item.name | limitTo:40 }}\n </md-checkbox>\n </div>\n </div>\n </md-dialog-content>\n <md-dialog-actions ng-hide="vm.loading" layout="row" layout-align="end center">\n <div>\n </div>\n <md-button type="submit" ng-click="vm.listSelected()" class="send-button md-accent md-raised" ng-disabled="vm.loading" aria-label="RESET" translate="MOTIONDIALER.RESET" translate-attr-aria-label="MOTIONDIALER.RESET">\n SAVE\n </md-button>\n </md-dialog-actions>\n <div ng-hide="!vm.loading" layout-fill style="min-height: 397px;" layout="row" layout-sm="column" layout-align="center center">\n <md-progress-circular class="md-primary md-hue-1" md-diameter="96"></md-progress-circular>\n </div>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/ivrCampaigns/edit/view.html",'<div id="motiondialer-ivrCampaign" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-ivrCampaigns-button md-icon-button" aria-label="Go to ivrCampaigns" ng-click="vm.gotoIvrCampaigns()" translate translate-attr-aria-label="MOTIONDIALER.GO_TO_IVRCAMPAIGNS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="ivrCampaign-image" hide-xs>\n <img ng-src="assets/images/business/ivrCampaigns.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.ivrCampaign.id}}\n <span ng-if="vm.ivrCampaign.name">{{vm.ivrCampaign.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="MOTIONDIALER.CREATED_AT"></span> <span>{{vm.ivrCampaign.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.clonedialog(vm.ivrCampaign, $event)" class="md-fab md-green-500-bg md-icon-button" aria-label="clone">\n <md-tooltip><span translate="MOTIONDIALER.CLONE_IVRCAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-content-duplicate"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.listadddialog(vm.ivrCampaign, $event)" class="md-fab md-green-500-bg md-icon-button" aria-label="listadd">\n <md-tooltip><span translate="MOTIONDIALER.LISTADD_IVRCAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-format-list-numbers"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.blacklistadddialog(vm.ivrCampaign, $event)" class="md-fab md-warn md-icon-button" aria-label="blacklistadd">\n <md-tooltip><span translate="MOTIONDIALER.BLACKLISTADD_IVRCAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-block-helper"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.resetlistdialog(vm.ivrCampaign, $event)" class="md-fab md-warn md-icon-button" aria-label="resetlist">\n <md-tooltip><span translate="MOTIONDIALER.RESETLIST_IVRCAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-restore"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.gotogoto(vm.ivrCampaign, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n <md-tooltip><span translate="MOTIONDIALER.GOTO_IVRCAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-cast"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveIvrCampaign()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (campaignForm.$invalid) || (originateForm.$invalid) || (globalForm.$invalid) || (congestionForm.$invalid) || (busyForm.$invalid) || (noanswerForm.$invalid) || (nosuchnumberForm.$invalid) || (dropForm.$invalid) || (abandonedForm.$invalid) || (machineForm.$invalid) || (agentrejectForm.$invalid) || (advancedForm.$invalid) || (globalintervalForm.$invalid) || (timezoneForm.$invalid) || (amdForm.$invalid) || (hopperStatisticsForm.$invalid) || (hoppersForm.$invalid) || (hopperHistoriesForm.$invalid) || (hopperFinalsForm.$invalid) || (hopperBlacksForm.$invalid)" translate="MOTIONDIALER.SAVE" translate-attr-aria-label="MOTIONDIALER.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="ivrCampaign-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.ivrCampaign.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NAME"></span></div>\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MOTIONDIALER.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.ivrCampaign.active" aria-label="Active" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MOTIONDIALER.ACTIVE">Active</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.TRUNK">Trunk</label>\n <md-select name="TrunkId" ng-model="vm.ivrCampaign.TrunkId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks" ng-disabled="TrunkId.canSelect === false">{{ TrunkId.name }}</md-option>\n </md-select>\n <div ng-messages="generalForm[\'TrunkId\'].$error" ng-show="generalForm[\'TrunkId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.TRUNK_REQUIRED">Trunk field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.BACKUPTRUNK">BackupTrunk</label>\n <md-select name="TrunkBackupId" ng-model="vm.ivrCampaign.TrunkBackupId" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">None</md-option>\n <md-option ng-value="TrunkBackupId.id" ng-repeat="TrunkBackupId in vm.trunks" ng-disabled="TrunkBackupId.canSelect === false">{{ TrunkBackupId.name }}</md-option>\n </md-select>\n <div ng-messages="generalForm[\'TrunkBackupId\'].$error" ng-show="generalForm[\'TrunkBackupId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.BACKUPTRUNK_REQUIRED">BackupTrunk field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.INTERVAL">Interval</label>\n <md-select name="IntervalId" ng-model="vm.ivrCampaign.IntervalId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval" ng-disabled="IntervalId.canSelect === false">{{ IntervalId.name }}</md-option>\n </md-select>\n <div ng-messages="generalForm[\'IntervalId\'].$error" ng-show="generalForm[\'IntervalId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.INTERVAL_REQUIRED">Interval field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CHECKDUPLICATE">CheckDuplicate</label>\n <md-select name="dialCheckDuplicateType" ng-model="vm.ivrCampaign.dialCheckDuplicateType" required ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'always\'"> {{ \'MOTIONDIALER.ALWAYS\' | translate }} </md-option>\n\n <md-option ng-value="\'never\'"> {{ \'MOTIONDIALER.NEVER\' | translate }} </md-option>\n\n <md-option ng-value="\'onlyIfOpen\'"> {{ \'MOTIONDIALER.ONLY_IF_OPEN\' | translate }} </md-option>\n </md-select>\n <div ng-messages="generalForm[\'dialCheckDuplicateType\'].$error" ng-show="generalForm[\'dialCheckDuplicateType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CHECKDUPLICATE_REQUIRED">CheckDuplicate field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CUTDIGIT">CutDigit</label>\n <input type="number" name="dialCutDigit" ng-model="vm.ivrCampaign.dialCutDigit" min="0" max="15" value="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'dialCutDigit\'].$error" ng-show="generalForm[\'dialCutDigit\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CUTDIGIT_REQUIRED">CutDigit field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CUTDIGIT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CutDigit must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CUTDIGIT_MUST_BE_LESS_THAN_OR_EQUAL_TO">CutDigit must be a valid greater or equal than</span> <span>15</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.ivrCampaign.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.CAMPAIGN">CAMPAIGN</span>\n </md-tab-label>\n <md-tab-body>\n <div class="ivrCampaign-detail-form-container campaign md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.CAMPAIGN">CAMPAIGN</div>\n </div>\n <form name="campaignForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CALLYSQUAREPROJECT">CallySquareProject</label>\n <md-select name="SquareProjectId" ng-model="vm.ivrCampaign.SquareProjectId" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="SquareProjectId.id" ng-repeat="SquareProjectId in vm.projects" ng-disabled="SquareProjectId.canSelect === false">{{ SquareProjectId.name }}</md-option>\n </md-select>\n <div ng-messages="campaignForm[\'SquareProjectId\'].$error" ng-show="campaignForm[\'SquareProjectId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CALLYSQUAREPROJECT_REQUIRED">CallySquareProject field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CONCURRENTCALLS">ConcurrentCalls</label>\n <input type="number" name="limitCalls" ng-model="vm.ivrCampaign.limitCalls" min="1" max="200" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.CONCURRENTCALLS"></span></div>\n <div ng-messages="campaignForm[\'limitCalls\'].$error" ng-show="campaignForm[\'limitCalls\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CONCURRENTCALLS_REQUIRED">ConcurrentCalls field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CONCURRENTCALLS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">ConcurrentCalls must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CONCURRENTCALLS_MUST_BE_LESS_THAN_OR_EQUAL_TO">ConcurrentCalls must be a valid greater or equal than</span> <span>200</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="ivrCampaign-detail-form-container originate md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.ORIGINATE">ORIGINATE</div>\n </div>\n <form name="originateForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.ORIGINATECALLERIDNAME">OriginateCallerIdName</label>\n <input type="text" name="dialOriginateCallerIdName" ng-model="vm.ivrCampaign.dialOriginateCallerIdName" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ORIGINATECALLERIDNAME"></span></div>\n <div ng-messages="originateForm[\'dialOriginateCallerIdName\'].$error" ng-show="originateForm[\'dialOriginateCallerIdName\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATECALLERIDNAME_REQUIRED">OriginateCallerIdName field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.ORIGINATECALLERIDNUMBER">OriginateCallerIdNumber</label>\n <input type="text" name="dialOriginateCallerIdNumber" ng-model="vm.ivrCampaign.dialOriginateCallerIdNumber" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ORIGINATECALLERIDNUMBER"></span></div>\n <div ng-messages="originateForm[\'dialOriginateCallerIdNumber\'].$error" ng-show="originateForm[\'dialOriginateCallerIdNumber\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATECALLERIDNUMBER_REQUIRED">OriginateCallerIdNumber field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.RANDOMLASTDIGITCALLERIDNUMBER">RandomLastDigitCallerIdNumber</label>\n <input type="number" name="dialRandomLastDigitCallerIdNumber" ng-model="vm.ivrCampaign.dialRandomLastDigitCallerIdNumber" min="0" max="15" value="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.RANDOMLASTDIGITCALLERIDNUMBER"></span></div>\n <div ng-messages="originateForm[\'dialRandomLastDigitCallerIdNumber\'].$error" ng-show="originateForm[\'dialRandomLastDigitCallerIdNumber\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.RANDOMLASTDIGITCALLERIDNUMBER_REQUIRED">RandomLastDigitCallerIdNumber field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.RANDOMLASTDIGITCALLERIDNUMBER_MUST_BE_GREATER_THAN_OR_EQUAL_TO">RandomLastDigitCallerIdNumber must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.RANDOMLASTDIGITCALLERIDNUMBER_MUST_BE_LESS_THAN_OR_EQUAL_TO">RandomLastDigitCallerIdNumber must be a valid greater or equal than</span> <span>15</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.ORIGINATETIMEOUT">OriginateTimeout</label>\n <input type="number" name="dialOriginateTimeout" ng-model="vm.ivrCampaign.dialOriginateTimeout" min="1" max="999" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ORIGINATETIMEOUT"></span></div>\n <div ng-messages="originateForm[\'dialOriginateTimeout\'].$error" ng-show="originateForm[\'dialOriginateTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATETIMEOUT_REQUIRED">OriginateTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATETIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">OriginateTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATETIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">OriginateTimeout must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.PREFIX">Prefix</label>\n <input type="text" name="dialPrefix" ng-model="vm.ivrCampaign.dialPrefix" ng-pattern="/^\\d+$/" value="" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.PREFIX"></span></div>\n <div ng-messages="originateForm[\'dialPrefix\'].$error" ng-show="originateForm[\'dialPrefix\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.PREFIX_REQUIRED">Prefix field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MOTIONDIALER.ERRORS.PREFIX_MUST_VALID_PATTERN" translate-values="{ regex: \'/^\\d+$/\' }">Prefix must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.RETRYANDFREQUENCY">RETRYANDFREQUENCY</span>\n </md-tab-label>\n <md-tab-body>\n <div class="ivrCampaign-detail-form-container global md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.GLOBAL">GLOBAL</div>\n </div>\n <form name="globalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.GLOBALMAXRETRY">GlobalMaxRetry</label>\n <input type="number" name="dialGlobalMaxRetry" ng-model="vm.ivrCampaign.dialGlobalMaxRetry" min="1" max="999" value="4" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.GLOBALMAXRETRY"></span></div>\n <div ng-messages="globalForm[\'dialGlobalMaxRetry\'].$error" ng-show="globalForm[\'dialGlobalMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.GLOBALMAXRETRY_REQUIRED">GlobalMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.GLOBALMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">GlobalMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.GLOBALMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">GlobalMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="ivrCampaign-detail-form-container congestion md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.CONGESTION">CONGESTION</div>\n </div>\n <form name="congestionForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CONGESTIONMAXRETRY">CongestionMaxRetry</label>\n <input type="number" name="dialCongestionMaxRetry" ng-model="vm.ivrCampaign.dialCongestionMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.CONGESTIONMAXRETRY"></span></div>\n <div ng-messages="congestionForm[\'dialCongestionMaxRetry\'].$error" ng-show="congestionForm[\'dialCongestionMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONMAXRETRY_REQUIRED">CongestionMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CongestionMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">CongestionMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CONGESTIONRETRYTIME">CongestionRetryTime</label>\n <input type="number" name="dialCongestionRetryFrequency" ng-model="vm.ivrCampaign.dialCongestionRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.CONGESTIONRETRYTIME"></span></div>\n <div ng-messages="congestionForm[\'dialCongestionRetryFrequency\'].$error" ng-show="congestionForm[\'dialCongestionRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONRETRYTIME_REQUIRED">CongestionRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CongestionRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">CongestionRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="ivrCampaign-detail-form-container busy md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.BUSY">BUSY</div>\n </div>\n <form name="busyForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.BUSYMAXRETRY">BusyMaxRetry</label>\n <input type="number" name="dialBusyMaxRetry" ng-model="vm.ivrCampaign.dialBusyMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.BUSYMAXRETRY"></span></div>\n <div ng-messages="busyForm[\'dialBusyMaxRetry\'].$error" ng-show="busyForm[\'dialBusyMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.BUSYMAXRETRY_REQUIRED">BusyMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.BUSYMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">BusyMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.BUSYMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">BusyMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.BUSYRETRYTIME">BusyRetryTime</label>\n <input type="number" name="dialBusyRetryFrequency" ng-model="vm.ivrCampaign.dialBusyRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.BUSYRETRYTIME"></span></div>\n <div ng-messages="busyForm[\'dialBusyRetryFrequency\'].$error" ng-show="busyForm[\'dialBusyRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.BUSYRETRYTIME_REQUIRED">BusyRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.BUSYRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">BusyRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.BUSYRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">BusyRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="ivrCampaign-detail-form-container noanswer md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.NOANSWER">NOANSWER</div>\n </div>\n <form name="noanswerForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NOANSWERMAXRETRY">NoAnswerMaxRetry</label>\n <input type="number" name="dialNoAnswerMaxRetry" ng-model="vm.ivrCampaign.dialNoAnswerMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NOANSWERMAXRETRY"></span></div>\n <div ng-messages="noanswerForm[\'dialNoAnswerMaxRetry\'].$error" ng-show="noanswerForm[\'dialNoAnswerMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERMAXRETRY_REQUIRED">NoAnswerMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoAnswerMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoAnswerMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NOANSWERRETRYTIME">NoAnswerRetryTime</label>\n <input type="number" name="dialNoAnswerRetryFrequency" ng-model="vm.ivrCampaign.dialNoAnswerRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NOANSWERRETRYTIME"></span></div>\n <div ng-messages="noanswerForm[\'dialNoAnswerRetryFrequency\'].$error" ng-show="noanswerForm[\'dialNoAnswerRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERRETRYTIME_REQUIRED">NoAnswerRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoAnswerRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoAnswerRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="ivrCampaign-detail-form-container nosuchnumber md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.NOSUCHNUMBER">NOSUCHNUMBER</div>\n </div>\n <form name="nosuchnumberForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NOSUCHNUMBERMAXRETRY">NoSuchNumberMaxRetry</label>\n <input type="number" name="dialNoSuchNumberMaxRetry" ng-model="vm.ivrCampaign.dialNoSuchNumberMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NOSUCHNUMBERMAXRETRY"></span></div>\n <div ng-messages="nosuchnumberForm[\'dialNoSuchNumberMaxRetry\'].$error" ng-show="nosuchnumberForm[\'dialNoSuchNumberMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERMAXRETRY_REQUIRED">NoSuchNumberMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoSuchNumberMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoSuchNumberMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NOSUCHNUMBERRETRYTIME">NoSuchNumberRetryTime</label>\n <input type="number" name="dialNoSuchNumberRetryFrequency" ng-model="vm.ivrCampaign.dialNoSuchNumberRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NOSUCHNUMBERRETRYTIME"></span></div>\n <div ng-messages="nosuchnumberForm[\'dialNoSuchNumberRetryFrequency\'].$error" ng-show="nosuchnumberForm[\'dialNoSuchNumberRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERRETRYTIME_REQUIRED">NoSuchNumberRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoSuchNumberRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoSuchNumberRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="ivrCampaign-detail-form-container drop md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.DROP">DROP</div>\n </div>\n <form name="dropForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DROPMAXRETRY">DropMaxRetry</label>\n <input type="number" name="dialDropMaxRetry" ng-model="vm.ivrCampaign.dialDropMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.DROPMAXRETRY"></span></div>\n <div ng-messages="dropForm[\'dialDropMaxRetry\'].$error" ng-show="dropForm[\'dialDropMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DROPMAXRETRY_REQUIRED">DropMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.DROPMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">DropMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.DROPMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">DropMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DROPRETRYTIME">DropRetryTime</label>\n <input type="number" name="dialDropRetryFrequency" ng-model="vm.ivrCampaign.dialDropRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.DROPRETRYTIME"></span></div>\n <div ng-messages="dropForm[\'dialDropRetryFrequency\'].$error" ng-show="dropForm[\'dialDropRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DROPRETRYTIME_REQUIRED">DropRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.DROPRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">DropRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.DROPRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">DropRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="ivrCampaign-detail-form-container abandoned md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.ABANDONED">ABANDONED</div>\n </div>\n <form name="abandonedForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.ABANDONEDMAXRETRY">AbandonedMaxRetry</label>\n <input type="number" name="dialAbandonedMaxRetry" ng-model="vm.ivrCampaign.dialAbandonedMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ABANDONEDMAXRETRY"></span></div>\n <div ng-messages="abandonedForm[\'dialAbandonedMaxRetry\'].$error" ng-show="abandonedForm[\'dialAbandonedMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDMAXRETRY_REQUIRED">AbandonedMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AbandonedMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">AbandonedMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.ABANDONEDRETRYTIME">AbandonedRetryTime</label>\n <input type="number" name="dialAbandonedRetryFrequency" ng-model="vm.ivrCampaign.dialAbandonedRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ABANDONEDRETRYTIME"></span></div>\n <div ng-messages="abandonedForm[\'dialAbandonedRetryFrequency\'].$error" ng-show="abandonedForm[\'dialAbandonedRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDRETRYTIME_REQUIRED">AbandonedRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AbandonedRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">AbandonedRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="ivrCampaign-detail-form-container machine md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.MACHINE">MACHINE</div>\n </div>\n <form name="machineForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.MACHINEMAXRETRY">MachineMaxRetry</label>\n <input type="number" name="dialMachineMaxRetry" ng-model="vm.ivrCampaign.dialMachineMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.MACHINEMAXRETRY"></span></div>\n <div ng-messages="machineForm[\'dialMachineMaxRetry\'].$error" ng-show="machineForm[\'dialMachineMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MACHINEMAXRETRY_REQUIRED">MachineMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.MACHINEMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MachineMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.MACHINEMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">MachineMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.MACHINERETRYTIME">MachineRetryTime</label>\n <input type="number" name="dialMachineRetryFrequency" ng-model="vm.ivrCampaign.dialMachineRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.MACHINERETRYTIME"></span></div>\n <div ng-messages="machineForm[\'dialMachineRetryFrequency\'].$error" ng-show="machineForm[\'dialMachineRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MACHINERETRYTIME_REQUIRED">MachineRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.MACHINERETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MachineRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.MACHINERETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">MachineRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="ivrCampaign-detail-form-container agentreject md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.AGENTREJECT">AGENTREJECT</div>\n </div>\n <form name="agentrejectForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.AGENTREJECTMAXRETRY">AgentRejectMaxRetry</label>\n <input type="number" name="dialAgentRejectMaxRetry" ng-model="vm.ivrCampaign.dialAgentRejectMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AGENTREJECTMAXRETRY"></span></div>\n <div ng-messages="agentrejectForm[\'dialAgentRejectMaxRetry\'].$error" ng-show="agentrejectForm[\'dialAgentRejectMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTMAXRETRY_REQUIRED">AgentRejectMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AgentRejectMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">AgentRejectMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.AGENTREJECTRETRYTIME">AgentRejectRetryTime</label>\n <input type="number" name="dialAgentRejectRetryFrequency" ng-model="vm.ivrCampaign.dialAgentRejectRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AGENTREJECTRETRYTIME"></span></div>\n <div ng-messages="agentrejectForm[\'dialAgentRejectRetryFrequency\'].$error" ng-show="agentrejectForm[\'dialAgentRejectRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTRETRYTIME_REQUIRED">AgentRejectRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AgentRejectRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">AgentRejectRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <md-tab-body>\n <div class="ivrCampaign-detail-form-container advanced md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.ADVANCED">ADVANCED</div>\n </div>\n <form name="advancedForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DIALORDERBYSCHEDULEDAT">DialOrderByScheduledAt</label>\n <md-select name="dialOrderByScheduledAt" ng-model="vm.ivrCampaign.dialOrderByScheduledAt" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'DESC\'"> {{ \'MOTIONDIALER.DESC\' | translate }} </md-option>\n\n <md-option ng-value="\'ASC\'"> {{ \'MOTIONDIALER.ASC\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.DIALORDERBYSCHEDULEDAT"></span></div>\n <div ng-messages="advancedForm[\'dialOrderByScheduledAt\'].$error" ng-show="advancedForm[\'dialOrderByScheduledAt\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DIALORDERBYSCHEDULEDAT_REQUIRED">DialOrderByScheduledAt field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="ivrCampaign-detail-form-container globalinterval md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.GLOBALINTERVAL">GLOBALINTERVAL</div>\n </div>\n <form name="globalintervalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.GLOBALINTERVAL">GlobalInterval</label>\n <input type="text" name="dialGlobalInterval" ng-model="vm.ivrCampaign.dialGlobalInterval" value="07:00-22:00,*,*,*" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.GLOBALINTERVAL"></span></div>\n <div ng-messages="globalintervalForm[\'dialGlobalInterval\'].$error" ng-show="globalintervalForm[\'dialGlobalInterval\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.GLOBALINTERVAL_REQUIRED">GlobalInterval field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="ivrCampaign-detail-form-container timezone md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.TIMEZONE">TIMEZONE</div>\n </div>\n <form name="timezoneForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.TIMEZONE">Timezone</label>\n <ms-timezone name="dialTimezone" ng-model="vm.ivrCampaign.dialTimezone" autofocus ng-disabled="!vm.crudPermissions.canEdit"></ms-timezone>\n <div class="hint"><span translate="MOTIONDIALER.HELP.TIMEZONE"></span></div>\n <div ng-messages="timezoneForm[\'dialTimezone\'].$error" ng-show="timezoneForm[dialTimezone].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.TIMEZONE_REQUIRED">Timezone field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="ivrCampaign-detail-form-container amd md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.AMD">AMD</div>\n </div>\n <form name="amdForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.ivrCampaign.dialAMDActive" aria-label="AMDActive" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MOTIONDIALER.AMDACTIVE">AMDActive</span></md-switch>\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDACTIVE"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDINITIALSILENCE">AMDInitialSilence</label>\n <input type="number" name="dialAMDInitialSilence" ng-model="vm.ivrCampaign.dialAMDInitialSilence" min="0" value="2500" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDINITIALSILENCE"></span></div>\n <div ng-messages="amdForm[\'dialAMDInitialSilence\'].$error" ng-show="amdForm[\'dialAMDInitialSilence\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDINITIALSILENCE_REQUIRED">AMDInitialSilence field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDINITIALSILENCE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDInitialSilence must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDGREETING">AMDGreeting</label>\n <input type="number" name="dialAMDGreeting" ng-model="vm.ivrCampaign.dialAMDGreeting" min="0" value="1500" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDGREETING"></span></div>\n <div ng-messages="amdForm[\'dialAMDGreeting\'].$error" ng-show="amdForm[\'dialAMDGreeting\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDGREETING_REQUIRED">AMDGreeting field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDGREETING_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDGreeting must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDAFTERGREETINGSILENCE">AMDAfterGreetingSilence</label>\n <input type="number" name="dialAMDAfterGreetingSilence" ng-model="vm.ivrCampaign.dialAMDAfterGreetingSilence" min="0" value="800" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDAFTERGREETINGSILENCE"></span></div>\n <div ng-messages="amdForm[\'dialAMDAfterGreetingSilence\'].$error" ng-show="amdForm[\'dialAMDAfterGreetingSilence\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDAFTERGREETINGSILENCE_REQUIRED">AMDAfterGreetingSilence field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDAFTERGREETINGSILENCE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDAfterGreetingSilence must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDTOTALANALYSISTIME">AMDTotalAnalysisTime</label>\n <input type="number" name="dialAMDTotalAnalysisTime" ng-model="vm.ivrCampaign.dialAMDTotalAnalysisTime" min="0" value="5000" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDTOTALANALYSISTIME"></span></div>\n <div ng-messages="amdForm[\'dialAMDTotalAnalysisTime\'].$error" ng-show="amdForm[\'dialAMDTotalAnalysisTime\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDTOTALANALYSISTIME_REQUIRED">AMDTotalAnalysisTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDTOTALANALYSISTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDTotalAnalysisTime must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDMINWORDLENGTH">AMDMinWordLength</label>\n <input type="number" name="dialAMDMinWordLength" ng-model="vm.ivrCampaign.dialAMDMinWordLength" min="0" value="100" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDMINWORDLENGTH"></span></div>\n <div ng-messages="amdForm[\'dialAMDMinWordLength\'].$error" ng-show="amdForm[\'dialAMDMinWordLength\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDMINWORDLENGTH_REQUIRED">AMDMinWordLength field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDMINWORDLENGTH_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDMinWordLength must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDBETWEENWORDSSILENCE">AMDBetweenWordsSilence</label>\n <input type="number" name="dialAMDBetweenWordsSilence" ng-model="vm.ivrCampaign.dialAMDBetweenWordsSilence" min="0" value="50" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDBETWEENWORDSSILENCE"></span></div>\n <div ng-messages="amdForm[\'dialAMDBetweenWordsSilence\'].$error" ng-show="amdForm[\'dialAMDBetweenWordsSilence\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDBETWEENWORDSSILENCE_REQUIRED">AMDBetweenWordsSilence field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDBETWEENWORDSSILENCE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDBetweenWordsSilence must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDMAXIMUMNUMBEROFWORDS">AMDMaximumNumberOfWords</label>\n <input type="number" name="dialAMDMaximumNumberOfWords" ng-model="vm.ivrCampaign.dialAMDMaximumNumberOfWords" min="0" value="3" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDMAXIMUMNUMBEROFWORDS"></span></div>\n <div ng-messages="amdForm[\'dialAMDMaximumNumberOfWords\'].$error" ng-show="amdForm[\'dialAMDMaximumNumberOfWords\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMNUMBEROFWORDS_REQUIRED">AMDMaximumNumberOfWords field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMNUMBEROFWORDS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDMaximumNumberOfWords must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDSILENCETHRESHOLD">AMDSilenceThreshold</label>\n <input type="number" name="dialAMDSilenceThreshold" ng-model="vm.ivrCampaign.dialAMDSilenceThreshold" min="0" max="32767" value="256" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDSILENCETHRESHOLD"></span></div>\n <div ng-messages="amdForm[\'dialAMDSilenceThreshold\'].$error" ng-show="amdForm[\'dialAMDSilenceThreshold\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDSILENCETHRESHOLD_REQUIRED">AMDSilenceThreshold field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDSILENCETHRESHOLD_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDSilenceThreshold must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.AMDSILENCETHRESHOLD_MUST_BE_LESS_THAN_OR_EQUAL_TO">AMDSilenceThreshold must be a valid greater or equal than</span> <span>32767</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDMAXIMUMWORDLENGTH">AMDMaximumWordLength</label>\n <input type="number" name="dialAMDMaximumWordLength" ng-model="vm.ivrCampaign.dialAMDMaximumWordLength" min="0" value="5000" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDMAXIMUMWORDLENGTH"></span></div>\n <div ng-messages="amdForm[\'dialAMDMaximumWordLength\'].$error" ng-show="amdForm[\'dialAMDMaximumWordLength\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMWORDLENGTH_REQUIRED">AMDMaximumWordLength field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMWORDLENGTH_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDMaximumWordLength must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.HOPPERS">HOPPERS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="ivrCampaign-detail-form-container hopperstatistics md-background-bg md-whiteframe-1dp">\n <div ng-controller="IvrCampaignHopperStatisticsController as vm_hs" ng-init="vm_hs.init(vm.ivrCampaign)">\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.HOPPERWIDGET">Hoppers</span>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm_hs.init(vm.ivrCampaign)" aria-label="refresh Hopper" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{(vm_hs.total || 0) + (vm_hs.closed || 0)}}</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.TOTAL\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{vm_hs.fresh || 0}} ({{vm_hs.total ? ((((vm_hs.fresh || 0) * 100)/((vm_hs.closed || 0) + (vm_hs.total || 0))) | number: 2) : 0}}%)</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.FRESH\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{vm_hs.total ? (vm_hs.total - (vm_hs.fresh || 0)) : 0}} ({{vm_hs.total ? ((((vm_hs.total - (vm_hs.fresh || 0)) * 100)/((vm_hs.closed || 0) + (vm_hs.total || 0))) | number: 2) : 0}}%)</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.OPEN\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{vm_hs.closed ? (vm_hs.closed || 0) : 0}} ({{vm_hs.closed ? ((((vm_hs.closed) * 100)/(vm_hs.closed + (vm_hs.total || 0))) | number: 2) : 0}}%)</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.CLOSED\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n </div>\n\n </div>\n <div class="ivrCampaign-detail-form-container hoppers md-background-bg md-whiteframe-1dp">\n <div ng-controller="IvrCampaignHoppersController as vm_dc" ng-init="vm_dc.init(vm.ivrCampaign, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedIvrCampaignHoppers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.HOPPERS">Hoppers</span>\n <ms-search-bar on-search="vm_dc.getIvrCampaignHoppers()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm_dc.getIvrCampaignHoppers()" aria-label="refresh Hoppers" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedIvrCampaignHoppers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedIvrCampaignHoppers.length}} {{vm_dc.selectedIvrCampaignHoppers.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedIvrCampaignHoppers" csv-label="true" filename="ivrCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedIvrCampaignHoppers($event)" aria-label="delete selected" translate translate-attr-label="MOTIONDIALER.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedIvrCampaignHoppers" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getIvrCampaignHoppers">\n <tr md-row>\n <th md-column md-order-by="ContactId">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="phone">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </th>\n <th md-column md-order-by="countcongestionretry">\n {{ \'MOTIONDIALER.CONGESTION\' | translate }}\n </th>\n <th md-column md-order-by="countbusyretry">\n {{ \'MOTIONDIALER.BUSY\' | translate }}\n </th>\n <th md-column md-order-by="countnoanswerretry">\n {{ \'MOTIONDIALER.NOANSWER\' | translate }}\n </th>\n <th md-column md-order-by="countnosuchnumberretry">\n {{ \'MOTIONDIALER.NOSUCHNUMBER\' | translate }}\n </th>\n <th md-column md-order-by="countdropretry">\n {{ \'MOTIONDIALER.DROP\' | translate }}\n </th>\n <th md-column md-order-by="countabandonedretry">\n {{ \'MOTIONDIALER.ABANDONED\' | translate }}\n </th>\n <th md-column md-order-by="countmachineretry">\n {{ \'MOTIONDIALER.MACHINE\' | translate }}\n </th>\n <th md-column md-order-by="countagentrejectretry">\n {{ \'MOTIONDIALER.AGENTREJECT\' | translate }}\n </th>\n <th md-column md-order-by="scheduledat">\n {{ \'MOTIONDIALER.SCHEDULEDAT\' | translate }}\n </th>\n <th md-column md-order-by="priority">\n {{ \'MOTIONDIALER.PRIORITY\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="hopper" md-select-id="id" ng-repeat="hopper in vm_dc.ivrCampaignHoppers.rows">\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.ContactId}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell privacy ng-cloak>\n {{hopper.phone}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countcongestionretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countbusyretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countnoanswerretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countnosuchnumberretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countdropretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countabandonedretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countmachineretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countagentrejectretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{ hopper.scheduledat | formatdate }}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{ vm_dc.arraypriority[hopper.priority].option }} </td>\n\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" translate="MOTIONDIALER.EDIT_HOPPER">\n Edit Hopper\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(hopper, $event)" translate="MOTIONDIALER.DELETE_HOPPER">\n Delete Hopper\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.ivrCampaignHoppers.rows.length">\n <td md-cell colspan="15">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPER_AVAILABLE">No hopper available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.ivrCampaignHoppers.count}}" md-on-paginate="vm_dc.getIvrCampaignHoppers" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.HISTORY">HISTORY</span>\n </md-tab-label>\n <md-tab-body>\n <div class="ivrCampaign-detail-form-container hopperhistories md-background-bg md-whiteframe-1dp">\n <div ng-controller="IvrCampaignHopperHistoriesController as vm_dc" ng-init="vm_dc.init(vm.ivrCampaign, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedIvrCampaignHopperHistories.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.HOPPERHISTORIES">HopperHistories</span>\n <ms-search-bar on-search="vm_dc.getIvrCampaignHopperHistories()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm_dc.getIvrCampaignHopperHistories()" aria-label="refresh HopperHistories" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERHISTORIES">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedIvrCampaignHopperHistories.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedIvrCampaignHopperHistories.length}} {{vm_dc.selectedIvrCampaignHopperHistories.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedIvrCampaignHopperHistories" csv-label="true" filename="ivrCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedIvrCampaignHopperHistories" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getIvrCampaignHopperHistories">\n <tr md-row>\n <th md-column md-order-by="uniqueid">\n {{ \'MOTIONDIALER.UNIQUEID\' | translate }}\n </th>\n <th md-column md-order-by="ContactId">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="calleridnum">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </th>\n <th md-column md-order-by="calleridname">\n {{ \'MOTIONDIALER.NAME\' | translate }}\n </th>\n <th md-column md-order-by="statedesc">\n {{ \'MOTIONDIALER.STATUS\' | translate }}\n </th>\n <th md-column md-order-by="scheduledat">\n {{ \'MOTIONDIALER.SCHEDULEDAT\' | translate }}\n </th>\n <th md-column md-order-by="starttime">\n {{ \'MOTIONDIALER.STARTTIME\' | translate }}\n </th>\n <th md-column md-order-by="endtime">\n {{ \'MOTIONDIALER.ENDTIME\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="hopperHistory" md-select-id="id" ng-repeat="hopperHistory in vm_dc.ivrCampaignHopperHistories.rows">\n <td md-cell>\n {{hopperHistory.uniqueid}}\n </td>\n <td md-cell>\n {{hopperHistory.ContactId}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperHistory.calleridnum}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperHistory.calleridname}}\n </td>\n <td md-cell>\n {{hopperHistory.statedesc}}\n </td>\n <td md-cell>\n {{ hopperHistory.scheduledat | formatdate }}\n </td>\n <td md-cell>\n {{ hopperHistory.starttime | formatdate }}\n </td>\n <td md-cell>\n {{ hopperHistory.endtime | formatdate }}\n </td>\n <td md-cell class="actions">\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.ivrCampaignHopperHistories.rows.length">\n <td md-cell colspan="11">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPERHISTORY_AVAILABLE">No hopperhistory available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.ivrCampaignHopperHistories.count}}" md-on-paginate="vm_dc.getIvrCampaignHopperHistories" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.FINAL">FINAL</span>\n </md-tab-label>\n <md-tab-body>\n <div class="ivrCampaign-detail-form-container hopperfinals md-background-bg md-whiteframe-1dp">\n <div ng-controller="IvrCampaignHopperFinalsController as vm_dc" ng-init="vm_dc.init(vm.ivrCampaign, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedIvrCampaignHopperFinals.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.HOPPERFINALS">HopperFinals</span>\n <ms-search-bar on-search="vm_dc.getIvrCampaignHopperFinals()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm_dc.getIvrCampaignHopperFinals()" aria-label="refresh HopperFinals" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERFINALS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="vm_dc.countContactsIvrCampaignHopperFinal(vm_dc.query.id); $mdOpenMenu($event);">\n <md-icon md-font-icon="icon-backup-restore"></md-icon>\n <md-tooltip><span translate="MOTIONDIALER.RESTORECONTACTS"></span></md-tooltip>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(3)">\n <span translate="MOTIONDIALER.NOANSWER ">NoAnswer</span>\n <span class="badge">({{vm_dc.contacts.noAnswerContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(5)">\n <span translate="MOTIONDIALER.BUSY ">Busy</span>\n <span class="badge">({{vm_dc.contacts.busyContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(8)">\n <span translate="MOTIONDIALER.CONGESTION ">Congestion</span>\n <span class="badge">({{vm_dc.contacts.congestionContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(10)">\n <span translate="MOTIONDIALER.DROPPED ">Drop</span>\n <span class="badge">({{vm_dc.contacts.dropContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(11)">\n <span translate="MOTIONDIALER.ABANDONED ">Abandoned</span>\n <span class="badge">({{vm_dc.contacts.abandonedContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(22)">\n <span translate="MOTIONDIALER.RECALLFAILEDTIMEOUT">Recall</span>\n <span class="badge">({{vm_dc.contacts.reCallContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(0)">\n <span translate="MOTIONDIALER.NO_SUCH_NUMBER">NoSuchNumber</span>\n <span class="badge">({{vm_dc.contacts.noSuchContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(19)">\n <span translate="MOTIONDIALER.ANSWERING_MACHINE">AnsweringMachine</span>\n <span class="badge">({{vm_dc.contacts.answeringMachine}})</span>\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedIvrCampaignHopperFinals.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedIvrCampaignHopperFinals.length}} {{vm_dc.selectedIvrCampaignHopperFinals.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedIvrCampaignHopperFinals" csv-label="true" filename="ivrCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.moveSelectedIvrCampaignHopperFinals($event)" aria-label="move selected" translate translate-attr-label="MOTIONDIALER.MOVE_SELECTED">\n <md-icon md-font-icon="icon-restore"></md-icon>\n <md-tooltip><span translate="MOTIONDIALER.RESTORECONTACTS"></span></md-tooltip>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedIvrCampaignHopperFinals" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getIvrCampaignHopperFinals">\n <tr md-row>\n <th md-column md-order-by="uniqueid">\n {{ \'MOTIONDIALER.UNIQUEID\' | translate }}\n </th>\n <th md-column md-order-by="ContactId">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="calleridnum">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </th>\n <th md-column md-order-by="calleridname">\n {{ \'MOTIONDIALER.NAME\' | translate }}\n </th>\n <th md-column md-order-by="statedesc">\n {{ \'MOTIONDIALER.STATUS\' | translate }}\n </th>\n <th md-column md-order-by="countcongestionretry">\n {{ \'MOTIONDIALER.CONGESTION\' | translate }}\n </th>\n <th md-column md-order-by="countbusyretry">\n {{ \'MOTIONDIALER.BUSY\' | translate }}\n </th>\n <th md-column md-order-by="countnoanswerretry">\n {{ \'MOTIONDIALER.NOANSWER\' | translate }}\n </th>\n <th md-column md-order-by="countnosuchnumberretry">\n {{ \'MOTIONDIALER.NOSUCHNUMBER\' | translate }}\n </th>\n <th md-column md-order-by="countdropretry">\n {{ \'MOTIONDIALER.DROP\' | translate }}\n </th>\n <th md-column md-order-by="countabandonedretry">\n {{ \'MOTIONDIALER.ABANDONED\' | translate }}\n </th>\n <th md-column md-order-by="countmachineretry">\n {{ \'MOTIONDIALER.MACHINE\' | translate }}\n </th>\n <th md-column md-order-by="countagentrejectretry">\n {{ \'MOTIONDIALER.AGENTREJECT\' | translate }}\n </th>\n <th md-column md-order-by="starttime">\n {{ \'MOTIONDIALER.STARTTIME\' | translate }}\n </th>\n <th md-column md-order-by="endtime">\n {{ \'MOTIONDIALER.ENDTIME\' | translate }}\n </th>\n <th md-column md-order-by="disposition">\n {{ \'MOTIONDIALER.DISPOSITION\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="hopperFinal" md-select-id="id" ng-repeat="hopperFinal in vm_dc.ivrCampaignHopperFinals.rows">\n <td md-cell>\n {{hopperFinal.uniqueid}}\n </td>\n <td md-cell>\n {{hopperFinal.ContactId}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperFinal.calleridnum}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperFinal.calleridname}}\n </td>\n <td md-cell>\n {{hopperFinal.statedesc}}\n </td>\n <td md-cell>\n {{hopperFinal.countcongestionretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countbusyretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countnoanswerretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countnosuchnumberretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countdropretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countabandonedretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countmachineretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countagentrejectretry}}\n </td>\n <td md-cell>\n {{ hopperFinal.starttime | formatdate }}\n </td>\n <td md-cell>\n {{ hopperFinal.endtime | formatdate }}\n </td>\n <td md-cell>\n {{hopperFinal.disposition}}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveConfirm(hopperFinal, $event)" translate="MOTIONDIALER.MOVE_HOPPERFINAL">\n Move HopperFinal\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.ivrCampaignHopperFinals.rows.length">\n <td md-cell colspan="28">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPERFINAL_AVAILABLE">No hopperfinal available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.ivrCampaignHopperFinals.count}}" md-on-paginate="vm_dc.getIvrCampaignHopperFinals" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.BLACKLIST">BLACKLIST</span>\n </md-tab-label>\n <md-tab-body>\n <div class="ivrCampaign-detail-form-container hopperblacks md-background-bg md-whiteframe-1dp">\n <div ng-controller="IvrCampaignHopperBlacksController as vm_dc" ng-init="vm_dc.init(vm.ivrCampaign, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedIvrCampaignHopperBlacks.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.HOPPERBLACKS">HopperBlacks</span>\n <ms-search-bar on-search="vm_dc.getIvrCampaignHopperBlacks()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedIvrCampaignHopperBlacks.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedIvrCampaignHopperBlacks.length}} {{vm_dc.selectedIvrCampaignHopperBlacks.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedIvrCampaignHopperBlacks" csv-label="true" filename="ivrCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedIvrCampaignHopperBlacks" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getIvrCampaignHopperBlacks">\n <tr md-row>\n <th md-column md-order-by="ContactId">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="phone">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="hopperBlack" md-select-id="id" ng-repeat="hopperBlack in vm_dc.ivrCampaignHopperBlacks.rows">\n <td md-cell>\n {{hopperBlack.ContactId}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperBlack.phone}}\n </td>\n <td md-cell class="actions">\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.ivrCampaignHopperBlacks.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPERBLACK_AVAILABLE">No hopperblack available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.ivrCampaignHopperBlacks.count}}" md-on-paginate="vm_dc.getIvrCampaignHopperBlacks" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/motiondialer/views/ivrCampaigns/ivrCampaigns.html",'<div id="ivrCampaigns" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-fire" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="MOTIONDIALER.IVRCAMPAIGNS">IvrCampaigns</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="MOTIONDIALER.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedIvrCampaigns.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedIvrCampaigns =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="MOTIONDIALER.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-ivrCampaigns-count">\n <span>{{vm.selectedIvrCampaigns.length}}</span>\n <span translate="MOTIONDIALER.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="MOTIONDIALER.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllIvrCampaigns()" translate="MOTIONDIALER.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectIvrCampaigns()" translate="MOTIONDIALER.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedIvrCampaigns" csv-label="true" filename="ivrCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedIvrCampaigns($event)" aria-label="delete selected" translate translate-attr-label="MOTIONDIALER.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- IVRCAMPAIGN TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedIvrCampaigns" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getIvrCampaigns">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'MOTIONDIALER.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'MOTIONDIALER.NAME\' | translate }}</th>\n <th md-column md-order-by="active">{{ \'MOTIONDIALER.ACTIVE\' | translate }}</th>\n <th md-column md-order-by="TrunkId">{{ \'MOTIONDIALER.TRUNK\' | translate }}</th>\n <th md-column md-order-by="SquareProjectId">{{ \'MOTIONDIALER.CALLYSQUAREPROJECT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.ivrCampaigns.rows.length">\n <td md-cell colspan="6">\n <div layout="row" layout-align="center center">\n <span translate="MOTIONDIALER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="ivrCampaign" md-select-id="id" ng-repeat="ivrCampaign in vm.ivrCampaigns.rows">\n <td md-cell ng-if="ivrCampaign.userpic"><img class="avatar" alt="{{ivrCampaign.name}}" ng-src="api/users/{{ivrCampaign.id}}/avatar" /></td>\n <td md-cell ng-if="!ivrCampaign.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{ivrCampaign.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(ivrCampaign, ev) : vm.createOrEditIvrCampaign($event, ivrCampaign)" md-cell class="id ">{{ivrCampaign.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(ivrCampaign, ev) : vm.createOrEditIvrCampaign($event, ivrCampaign)" md-cell class="name ">{{ivrCampaign.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(ivrCampaign, ev) : vm.createOrEditIvrCampaign($event, ivrCampaign)" md-cell class="active ">\n <md-icon md-colors="{color: {{ivrCampaign.active ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{ivrCampaign.active ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(ivrCampaign, ev) : vm.createOrEditIvrCampaign($event, ivrCampaign)" md-cell class="TrunkId ">{{ (vm.trunks | filter : {\'id\':ivrCampaign.TrunkId} : true)[0].name }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(ivrCampaign, ev) : vm.createOrEditIvrCampaign($event, ivrCampaign)" md-cell class="SquareProjectId ">{{ (vm.projects | filter : {\'id\':ivrCampaign.SquareProjectId} : true)[0].name }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(ivrCampaign, $event )" translate="MOTIONDIALER.EDIT_IVRCAMPAIGN">\n Edit IvrCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.clonedialog(ivrCampaign, $event )" translate="MOTIONDIALER.CLONE_IVRCAMPAIGN">\n clone IvrCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.listadddialog(ivrCampaign, $event )" translate="MOTIONDIALER.LISTADD_IVRCAMPAIGN">\n listadd IvrCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.blacklistadddialog(ivrCampaign, $event )" translate="MOTIONDIALER.BLACKLISTADD_IVRCAMPAIGN">\n blacklistadd IvrCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(ivrCampaign, $event )" translate="MOTIONDIALER.DELETE_IVRCAMPAIGN">\n Delete IvrCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(ivrCampaign, $event )" translate="MOTIONDIALER.GOTOREALTIME_IVRCAMPAIGN">\n goToRealtime IvrCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.ivrCampaigns.count}}" md-on-paginate="vm.getIvrCampaigns" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / IVRCAMPAIGN TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD IVRCAMPAIGN BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-ivrCampaign-button" ng-click="vm.createOrEditIvrCampaign($event)" aria-label="add ivrCampaign" translate translate-attr-aria-label="MOTIONDIALER.ADD_IVRCAMPAIGN">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD IVRCAMPAIGN BUTTON --\x3e\n</div>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/create/dialog.html",'<md-dialog class="queueCampaign-dialog" aria-label="New QueueCampaign">\n <form name="queueCampaignForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.queueCampaign.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newQueueCampaign">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NAME"></span></div>\n <div ng-messages="queueCampaignForm[\'name\'].$error" ng-show="queueCampaignForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MOTIONDIALER.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.queueCampaign.dialActive" aria-label="Active"><span translate="MOTIONDIALER.ACTIVE">Active</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.TRUNK">Trunk</label>\n <md-select name="TrunkId" ng-model="vm.queueCampaign.TrunkId" required>\n <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks" ng-disabled="TrunkId.canSelect === false">{{ TrunkId.name }}</md-option>\n </md-select>\n <div ng-messages="queueCampaignForm[\'TrunkId\'].$error" ng-show="queueCampaignForm[\'TrunkId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.TRUNK_REQUIRED">Trunk field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod != \'preview\'" class="md-block">\n <label translate="MOTIONDIALER.INTERVAL">Interval</label>\n <md-select name="IntervalId" ng-model="vm.queueCampaign.IntervalId" required>\n <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval" ng-disabled="IntervalId.canSelect === false">{{ IntervalId.name }}</md-option>\n </md-select>\n <div ng-messages="queueCampaignForm[\'IntervalId\'].$error" ng-show="queueCampaignForm[\'IntervalId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.INTERVAL_REQUIRED">Interval field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CHECKDUPLICATE">CheckDuplicate</label>\n <md-select name="dialCheckDuplicateType" ng-model="vm.queueCampaign.dialCheckDuplicateType" required>\n\n <md-option ng-value="\'always\'"> {{ \'MOTIONDIALER.ALWAYS\' | translate }} </md-option>\n\n <md-option ng-value="\'never\'"> {{ \'MOTIONDIALER.NEVER\' | translate }} </md-option>\n\n <md-option ng-value="\'onlyIfOpen\'"> {{ \'MOTIONDIALER.ONLY_IF_OPEN\' | translate }} </md-option>\n </md-select>\n <div ng-messages="queueCampaignForm[\'dialCheckDuplicateType\'].$error" ng-show="queueCampaignForm[\'dialCheckDuplicateType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CHECKDUPLICATE_REQUIRED">CheckDuplicate field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.METHOD">Method</label>\n <md-select name="dialMethod" ng-model="vm.queueCampaign.dialMethod" required>\n <md-option ng-value="\'progressive\'">Progressive</md-option>\n <md-option ng-value="\'power\'">PowerDialing</md-option>\n <md-option ng-value="\'predictive\'">Predictive</md-option>\n <md-option ng-value="\'preview\'">Preview</md-option>\n <md-option ng-value="\'booked\'">BookedProgressive</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.METHOD"></span></div>\n <div ng-messages="queueCampaignForm[\'dialMethod\'].$error" ng-show="queueCampaignForm[\'dialMethod\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.METHOD_REQUIRED">Method field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod == \'power\'" class="md-block">\n <span translate="MOTIONDIALER.POWERLEVEL">PowerLevel</span>\n <div class="hint"><span translate="MOTIONDIALER.HELP.POWERLEVEL"></span></div>\n <md-slider md-discrete flex ng-model="vm.queueCampaign.dialPowerLevel" min="1" max="10" step="0.1" class="md-accent"></md-slider>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod == \'predictive\'" class="md-block">\n <label translate="MOTIONDIALER.PREDICTIVEOPTIMIZATION">PredictiveOptimization</label>\n <md-select name="dialPredictiveOptimization" ng-model="vm.queueCampaign.dialPredictiveOptimization">\n\n <md-option ng-value="\'agentBusyFactor\'"> {{ \'MOTIONDIALER.AGENTBUSYFACTOR\' | translate }} </md-option>\n\n <md-option ng-value="\'dropRate\'"> {{ \'MOTIONDIALER.DROPRATE\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.PREDICTIVEOPTIMIZATION"></span></div>\n <div ng-messages="queueCampaignForm[\'dialPredictiveOptimization\'].$error" ng-show="queueCampaignForm[\'dialPredictiveOptimization\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.PREDICTIVEOPTIMIZATION_REQUIRED">PredictiveOptimization field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod == \'predictive\'" class="md-block">\n <span translate="MOTIONDIALER.PREDICTIVEOPTIMIZATIONPERCENTAGE">PredictiveOptimizationPercentage</span>\n <div class="hint"><span translate="MOTIONDIALER.HELP.PREDICTIVEOPTIMIZATIONPERCENTAGE"></span></div>\n <md-slider md-discrete flex ng-model="vm.queueCampaign.dialPredictiveOptimizationPercentage" min="1" max="95" step="0.1" class="md-accent"></md-slider>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod == \'predictive\'" class="md-block">\n <span translate="MOTIONDIALER.PREDICTIVEINTERVAL">PredictiveInterval</span>\n <div class="hint"><span translate="MOTIONDIALER.HELP.PREDICTIVEINTERVAL"></span></div>\n <md-slider md-discrete flex ng-model="vm.queueCampaign.dialPredictiveInterval" min="5" max="30" step="1" class="md-accent"></md-slider>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod != \'preview\'" class="md-block">\n <label translate="MOTIONDIALER.MAXCONCURRENTCALLS">MaxConcurrentCalls</label>\n <input type="number" name="dialLimitQueue" ng-model="vm.queueCampaign.dialLimitQueue" min="0" max="9999" value="0" ng-required="true">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.MAXCONCURRENTCALLS"></span></div>\n <div ng-messages="queueCampaignForm[\'dialLimitQueue\'].$error" ng-show="queueCampaignForm[\'dialLimitQueue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MAXCONCURRENTCALLS_REQUIRED">MaxConcurrentCalls field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.MAXCONCURRENTCALLS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MaxConcurrentCalls must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.MAXCONCURRENTCALLS_MUST_BE_LESS_THAN_OR_EQUAL_TO">MaxConcurrentCalls must be a valid greater or equal than</span> <span>9999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.QUEUETIMEOUT">QueueTimeout</label>\n <input type="number" name="dialQueueTimeout" ng-model="vm.queueCampaign.dialQueueTimeout" min="1" max="999" value="3" ng-required="true">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.QUEUETIMEOUT"></span></div>\n <div ng-messages="queueCampaignForm[\'dialQueueTimeout\'].$error" ng-show="queueCampaignForm[\'dialQueueTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.QUEUETIMEOUT_REQUIRED">QueueTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.QUEUETIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">QueueTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.QUEUETIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">QueueTimeout must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.AGENTTIMEOUT">AgentTimeout</label>\n <input type="number" name="timeout" ng-model="vm.queueCampaign.timeout" min="0" value="3" ng-required="true">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AGENTTIMEOUT"></span></div>\n <div ng-messages="queueCampaignForm[\'timeout\'].$error" ng-show="queueCampaignForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AGENTTIMEOUT_REQUIRED">AgentTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AGENTTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AgentTimeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.queueCampaign.description">\n\n <div ng-messages="queueCampaignForm[\'description\'].$error" ng-show="queueCampaignForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newQueueCampaign" ng-click="vm.saveQueueCampaign()" class="send-button md-accent md-raised" ng-disabled="queueCampaignForm.$invalid || queueCampaignForm.$pristine" aria-label="SAVE" translate="MOTIONDIALER.SAVE" translate-attr-aria-label="MOTIONDIALER.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newQueueCampaign" ng-click="vm.addNewQueueCampaign()" class="send-button md-accent md-raised" ng-disabled="queueCampaignForm.$invalid" aria-label="ADD" translate="MOTIONDIALER.ADD_QUEUECAMPAIGN" translate-attr-aria-label="MOTIONDIALER.ADD_QUEUECAMPAIGN">\n ADD QUEUECAMPAIGN\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newQueueCampaign" ng-click="vm.deleteQueueCampaign($event)" aria-label="DELETE" translate translate-attr-aria-label="MOTIONDIALER.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="MOTIONDIALER.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/edit/agentadd/agentadd.html",'<md-dialog class="queueCampaign-dialog" aria-label="queueCampaign" ng-init="vm.onInit()">\n <form name="queueCampaignForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="MOTIONDIALER.AGENTADD_QUEUECAMPAIGN">Add Agent to queueCampaign</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <md-input-container flex class="no-margin">\n <label translate="MOTIONDIALER.PENALTY">Penalty</label>\n <input name="penalty" type="number" ng-model="vm.penalty" min="0" placeholder="0" required onkeypress="return event.charCode >= 48 && event.charCode <= 57 && this.value.length < 3">\n <div ng-messages="queueCampaignForm.penalty.$error" role="alert" multiple>\n <div ng-message="required">\n <span>{{ \'VOICE.ERRORS.PENALTY_REQUIRED\' | translate }}</span>\n </div>\n </div>\n </md-input-container>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit" add-disabled="vm.penalty === undefined"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/edit/blacklistadd/blacklistadd.html",'<md-dialog class="queueCampaign-dialog" aria-label="queueCampaign" ng-init="vm.onInit()">\n <form name="queueCampaignForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="MOTIONDIALER.BLACKLISTADD_QUEUECAMPAIGN">Add List in QUEUECAMPAIGN</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect ng-hide="vm.loading" options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n <div ng-hide="!vm.loading" layout-fill style="min-height: 397px;" layout="row" layout-sm="column" layout-align="center center">\n <md-progress-circular class="md-primary md-hue-1" md-diameter="96"></md-progress-circular>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveLists()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/edit/clone/clone.html",'<md-dialog class="queueCampaign-dialog" aria-label="Clone QueueCampaign">\n <form name="queueCampaignForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.queueCampaign.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newQueueCampaign">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NAME"></span></div>\n <div ng-messages="queueCampaignForm[\'name\'].$error" ng-show="queueCampaignForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MOTIONDIALER.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.queueCampaign.dialActive" aria-label="Active"><span translate="MOTIONDIALER.ACTIVE">Active</span></md-switch>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <md-button type="submit" ng-click="vm.cloneQueueCampaign()" class="send-button md-accent md-raised" ng-disabled="queueCampaignForm.$invalid" aria-label="CLONE" translate="MOTIONDIALER.CLONE_QUEUECAMPAIGN" translate-attr-aria-label="MOTIONDIALER.CLONE_QUEUECAMPAIGN">\n CLONE QUEUECAMPAIGN\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/edit/hoppers/dialog.html",'<md-dialog class="hopper-dialog" aria-label="New Hopper">\n <form name="hopperForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <div class="md-block">\n <label translate="MOTIONDIALER.SCHEDULEDAT">ScheduledAt</label>\n <md-content layout="row" class="md-padding">\n <div flex class="md-block">\n <mdp-date-picker mdp-open-on-click name="scheduledatDate" mdp-placeholder="Date" mdp-format="YYYY-MM-DD" ng-model="vm.hopper.scheduledat" ng-init="vm.hopper.scheduledat = vm.getDateFromString(vm.hopper.scheduledat)">\n <div ng-messages="hopperForm.dateRangeFrom.$error" ng-show="hopperForm.dateRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DATE_REQUIRED">Date is required</span>\n </div>\n <div ng-message="format">\n <span translate="MOTIONDIALER.ERRORS.DATE_INVALID">Date is invalid</span>\n </div>\n </div>\n </mdp-date-picker>\n </div>\n <div flex class="md-block">\n <mdp-time-picker mdp-open-on-click name="scheduledatTime" mdp-placeholder="Time" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.hopper.scheduledat" ng-init="vm.hopper.scheduledat = vm.getDateFromString(vm.hopper.scheduledat)">\n <div ng-messages="hopperForm.timeRangeFrom.$error" ng-show="hopperForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.TIME_REQUIRED">Time is required</span>\n </div>\n <div ng-message="format">\n <span translate="MOTIONDIALER.ERRORS.TIME_INVALID">Time is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </md-content>\n </div>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.PRIORITY">Priority</label>\n <md-select name="priority" ng-model="vm.hopper.priority">\n <md-option ng-value="\'4\'">Highest</md-option>\n <md-option ng-value="\'3\'">High</md-option>\n <md-option ng-value="\'2\'">Medium</md-option>\n <md-option ng-value="\'1\'">Low</md-option>\n <md-option ng-value="\'0\'">Lowest</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.PRIORITY"></span></div>\n <div ng-messages="hopperForm[\'priority\'].$error" ng-show="hopperForm[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.hopper.recallme" aria-label="RecallAgent"><span translate="MOTIONDIALER.RECALLAGENT">RecallAgent</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.hopper.recallme" class="md-block">\n <label translate="MOTIONDIALER.AGENT">Agent</label>\n <md-select name="UserId" ng-model="vm.hopper.UserId" required>\n <md-option ng-value="UserId.id" ng-repeat="UserId in vm.agents" ng-disabled="UserId.canSelect === false">{{ UserId.name }}</md-option>\n </md-select>\n <div ng-messages="hopperForm[\'UserId\'].$error" ng-show="hopperForm[\'UserId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newHopper" ng-click="vm.saveHopper()" class="send-button md-accent md-raised" ng-disabled="hopperForm.$invalid || hopperForm.$pristine" aria-label="SAVE" translate="MOTIONDIALER.SAVE" translate-attr-aria-label="MOTIONDIALER.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newHopper" ng-click="vm.addNewHopper()" class="send-button md-accent md-raised" ng-disabled="hopperForm.$invalid" aria-label="ADD" translate="MOTIONDIALER.ADD_HOPPER" translate-attr-aria-label="MOTIONDIALER.ADD_HOPPER">\n ADD HOPPER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newHopper" ng-click="vm.deleteHopper($event)" aria-label="DELETE" translate translate-attr-aria-label="MOTIONDIALER.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="MOTIONDIALER.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/edit/listadd/listadd.html",'<md-dialog class="queueCampaign-dialog" aria-label="queueCampaign" ng-init="vm.onInit()">\n <form name="queueCampaignForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="MOTIONDIALER.LISTADD_QUEUECAMPAIGN">Add List in QUEUECAMPAIGN</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect ng-hide="vm.loading" options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n <div ng-hide="!vm.loading" layout-fill style="min-height: 397px;" layout="row" layout-sm="column" layout-align="center center">\n <md-progress-circular class="md-primary md-hue-1" md-diameter="96"></md-progress-circular>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveLists()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/edit/resetlist/resetlist.html",'<md-dialog class="queueCampaign-dialog" aria-label="queueCampaign">\n <form name="queueCampaignForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="MOTIONDIALER.RESETLIST ">Reset List</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-disabled="vm.loading" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ng-hide="vm.loading">\n <div layout="row" layout-wrap flex>\n <div flex-xs flex="50">\n <md-checkbox aria-label="Select All" ng-checked="vm.isChecked()" md-indeterminate="vm.isIndeterminate()" ng-click="vm.toggleAll()">\n <span ng-if="vm.isChecked()" translate="MOTIONDIALER.UNSELECTALL"></span>\n <span ng-if="!vm.isChecked()" translate="MOTIONDIALER.SELECTALL"></span>\n </md-checkbox>\n </div>\n <div flex-xs flex="50">\n </div>\n <div flex="{{vm.items.length > 10 ? 50 : 100 }}" ng-repeat="item in vm.items">\n <md-checkbox ng-checked="vm.exists(item, vm.selected)" ng-click="vm.toggle(item, vm.selected)">\n {{ item.name | limitTo:40 }}\n </md-checkbox>\n </div>\n </div>\n </md-dialog-content>\n <md-dialog-actions ng-hide="vm.loading" layout="row" layout-align="end center">\n <div>\n </div>\n <md-button type="submit" ng-click="vm.listSelected()" class="send-button md-accent md-raised" ng-disabled="vm.loading" aria-label="RESET" translate="MOTIONDIALER.RESET" translate-attr-aria-label="MOTIONDIALER.RESET">\n SAVE\n </md-button>\n </md-dialog-actions>\n <div ng-hide="!vm.loading" layout-fill style="min-height: 397px;" layout="row" layout-sm="column" layout-align="center center">\n <md-progress-circular class="md-primary md-hue-1" md-diameter="96"></md-progress-circular>\n </div>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/edit/teamadd/teamadd.html",'<md-dialog class="queueCampaign-dialog" aria-label="queueCampaign" ng-init="vm.onInit()">\n <form name="queueCampaignForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="MOTIONDIALER.TEAMS_ASSOCIATION">Teams Association</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <md-input-container flex class="no-margin">\n <label translate="MOTIONDIALER.PENALTY">Penalty</label>\n <input name="penalty" type="number" ng-model="vm.penalty" min="0" placeholder="0" required onkeypress="return event.charCode >= 48 && event.charCode <= 57 && this.value.length < 3">\n <div ng-messages="queueCampaignForm.penalty.$error" role="alert" multiple>\n <div ng-message="required">\n <span>{{ \'VOICE.ERRORS.PENALTY_REQUIRED\' | translate }}</span>\n </div>\n </div>\n </md-input-container>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit" add-disabled="vm.penalty === undefined"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/edit/view.html",'<div id="motiondialer-queueCampaign" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-queueCampaigns-button md-icon-button" aria-label="Go to queueCampaigns" ng-click="vm.gotoQueueCampaigns()" translate translate-attr-aria-label="MOTIONDIALER.GO_TO_QUEUECAMPAIGNS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="queueCampaign-image" hide-xs>\n <img ng-src="assets/images/business/queueCampaigns.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.queueCampaign.id}}\n <span ng-if="vm.queueCampaign.name">{{vm.queueCampaign.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="MOTIONDIALER.CREATED_AT"></span> <span>{{vm.queueCampaign.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.clonedialog(vm.queueCampaign, $event)" class="md-fab md-green-500-bg md-icon-button" aria-label="clone">\n <md-tooltip><span translate="MOTIONDIALER.CLONE_QUEUECAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-content-duplicate"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.listadddialog(vm.queueCampaign, $event)" class="md-fab md-green-500-bg md-icon-button" aria-label="listadd">\n <md-tooltip><span translate="MOTIONDIALER.LISTADD_QUEUECAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-format-list-numbers"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.blacklistadddialog(vm.queueCampaign, $event)" class="md-fab md-warn md-icon-button" aria-label="blacklistadd">\n <md-tooltip><span translate="MOTIONDIALER.BLACKLISTADD_QUEUECAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-block-helper"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.teamadddialog(vm.queueCampaign, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n <md-tooltip><span translate="MOTIONDIALER.TEAMADD_QUEUECAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.queueCampaign, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="MOTIONDIALER.AGENTADD_QUEUECAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-plus"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.resetlistdialog(vm.queueCampaign, $event)" class="md-fab md-warn md-icon-button" aria-label="resetlist">\n <md-tooltip><span translate="MOTIONDIALER.RESETLIST_QUEUECAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-restore"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.gotogoto(vm.queueCampaign, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n <md-tooltip><span translate="MOTIONDIALER.GOTO_QUEUECAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-cast"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveQueueCampaign()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (campaignForm.$invalid) || (queueForm.$invalid) || (originateForm.$invalid) || (globalForm.$invalid) || (congestionForm.$invalid) || (busyForm.$invalid) || (noanswerForm.$invalid) || (nosuchnumberForm.$invalid) || (dropForm.$invalid) || (abandonedForm.$invalid) || (machineForm.$invalid) || (agentrejectForm.$invalid) || (advancedForm.$invalid) || (advancedpreviewForm.$invalid) || (thresholdsForm.$invalid) || (recallmeForm.$invalid) || (globalintervalForm.$invalid) || (timezoneForm.$invalid) || (amdForm.$invalid) || (hopperStatisticsForm.$invalid) || (hoppersForm.$invalid) || (hopperHistoriesForm.$invalid) || (hopperFinalsForm.$invalid) || (hopperBlacksForm.$invalid)" translate="MOTIONDIALER.SAVE" translate-attr-aria-label="MOTIONDIALER.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="queueCampaign-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.queueCampaign.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NAME"></span></div>\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MOTIONDIALER.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.queueCampaign.dialActive" aria-label="Active" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MOTIONDIALER.ACTIVE">Active</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.TRUNK">Trunk</label>\n <md-select name="TrunkId" ng-model="vm.queueCampaign.TrunkId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks" ng-disabled="TrunkId.canSelect === false">{{ TrunkId.name }}</md-option>\n </md-select>\n <div ng-messages="generalForm[\'TrunkId\'].$error" ng-show="generalForm[\'TrunkId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.TRUNK_REQUIRED">Trunk field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.BACKUPTRUNK">BackupTrunk</label>\n <md-select name="TrunkBackupId" ng-model="vm.queueCampaign.TrunkBackupId" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">None</md-option>\n <md-option ng-value="TrunkBackupId.id" ng-repeat="TrunkBackupId in vm.trunks" ng-disabled="TrunkBackupId.canSelect === false">{{ TrunkBackupId.name }}</md-option>\n </md-select>\n <div ng-messages="generalForm[\'TrunkBackupId\'].$error" ng-show="generalForm[\'TrunkBackupId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.BACKUPTRUNK_REQUIRED">BackupTrunk field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod != \'preview\'" class="md-block">\n <label translate="MOTIONDIALER.INTERVAL">Interval</label>\n <md-select name="IntervalId" ng-model="vm.queueCampaign.IntervalId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval" ng-disabled="IntervalId.canSelect === false">{{ IntervalId.name }}</md-option>\n </md-select>\n <div ng-messages="generalForm[\'IntervalId\'].$error" ng-show="generalForm[\'IntervalId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.INTERVAL_REQUIRED">Interval field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CHECKDUPLICATE">CheckDuplicate</label>\n <md-select name="dialCheckDuplicateType" ng-model="vm.queueCampaign.dialCheckDuplicateType" required ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'always\'"> {{ \'MOTIONDIALER.ALWAYS\' | translate }} </md-option>\n\n <md-option ng-value="\'never\'"> {{ \'MOTIONDIALER.NEVER\' | translate }} </md-option>\n\n <md-option ng-value="\'onlyIfOpen\'"> {{ \'MOTIONDIALER.ONLY_IF_OPEN\' | translate }} </md-option>\n </md-select>\n <div ng-messages="generalForm[\'dialCheckDuplicateType\'].$error" ng-show="generalForm[\'dialCheckDuplicateType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CHECKDUPLICATE_REQUIRED">CheckDuplicate field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CUTDIGIT">CutDigit</label>\n <input type="number" name="dialCutDigit" ng-model="vm.queueCampaign.dialCutDigit" min="0" max="15" value="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'dialCutDigit\'].$error" ng-show="generalForm[\'dialCutDigit\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CUTDIGIT_REQUIRED">CutDigit field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CUTDIGIT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CutDigit must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CUTDIGIT_MUST_BE_LESS_THAN_OR_EQUAL_TO">CutDigit must be a valid greater or equal than</span> <span>15</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.queueCampaign.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.CAMPAIGN">CAMPAIGN</span>\n </md-tab-label>\n <md-tab-body>\n <div class="queueCampaign-detail-form-container campaign md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.CAMPAIGN">CAMPAIGN</div>\n </div>\n <form name="campaignForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.METHOD">Method</label>\n <md-select name="dialMethod" ng-model="vm.queueCampaign.dialMethod" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'progressive\'">Progressive</md-option>\n <md-option ng-value="\'power\'">PowerDialing</md-option>\n <md-option ng-value="\'predictive\'">Predictive</md-option>\n <md-option ng-value="\'preview\'">Preview</md-option>\n <md-option ng-value="\'booked\'">BookedProgressive</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.METHOD"></span></div>\n <div ng-messages="campaignForm[\'dialMethod\'].$error" ng-show="campaignForm[\'dialMethod\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.METHOD_REQUIRED">Method field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod == \'power\'" class="md-block">\n <span translate="MOTIONDIALER.POWERLEVEL">PowerLevel</span>\n <div class="hint"><span translate="MOTIONDIALER.HELP.POWERLEVEL"></span></div>\n <md-slider md-discrete flex ng-model="vm.queueCampaign.dialPowerLevel" min="1" max="10" step="0.1" class="md-accent"></md-slider>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod == \'predictive\'" class="md-block">\n <label translate="MOTIONDIALER.PREDICTIVEOPTIMIZATION">PredictiveOptimization</label>\n <md-select name="dialPredictiveOptimization" ng-model="vm.queueCampaign.dialPredictiveOptimization" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'agentBusyFactor\'"> {{ \'MOTIONDIALER.AGENTBUSYFACTOR\' | translate }} </md-option>\n\n <md-option ng-value="\'dropRate\'"> {{ \'MOTIONDIALER.DROPRATE\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.PREDICTIVEOPTIMIZATION"></span></div>\n <div ng-messages="campaignForm[\'dialPredictiveOptimization\'].$error" ng-show="campaignForm[\'dialPredictiveOptimization\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.PREDICTIVEOPTIMIZATION_REQUIRED">PredictiveOptimization field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod == \'predictive\'" class="md-block">\n <span translate="MOTIONDIALER.PREDICTIVEOPTIMIZATIONPERCENTAGE">PredictiveOptimizationPercentage</span>\n <div class="hint"><span translate="MOTIONDIALER.HELP.PREDICTIVEOPTIMIZATIONPERCENTAGE"></span></div>\n <md-slider md-discrete flex ng-model="vm.queueCampaign.dialPredictiveOptimizationPercentage" min="1" max="95" step="0.1" class="md-accent"></md-slider>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod == \'predictive\'" class="md-block">\n <span translate="MOTIONDIALER.PREDICTIVEINTERVAL">PredictiveInterval</span>\n <div class="hint"><span translate="MOTIONDIALER.HELP.PREDICTIVEINTERVAL"></span></div>\n <md-slider md-discrete flex ng-model="vm.queueCampaign.dialPredictiveInterval" min="5" max="30" step="1" class="md-accent"></md-slider>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod != \'preview\'" class="md-block">\n <label translate="MOTIONDIALER.MAXCONCURRENTCALLS">MaxConcurrentCalls</label>\n <input type="number" name="dialLimitQueue" ng-model="vm.queueCampaign.dialLimitQueue" min="0" max="9999" value="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.MAXCONCURRENTCALLS"></span></div>\n <div ng-messages="campaignForm[\'dialLimitQueue\'].$error" ng-show="campaignForm[\'dialLimitQueue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MAXCONCURRENTCALLS_REQUIRED">MaxConcurrentCalls field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.MAXCONCURRENTCALLS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MaxConcurrentCalls must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.MAXCONCURRENTCALLS_MUST_BE_LESS_THAN_OR_EQUAL_TO">MaxConcurrentCalls must be a valid greater or equal than</span> <span>9999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.AGENTTIMEOUT">AgentTimeout</label>\n <input type="number" name="timeout" ng-model="vm.queueCampaign.timeout" min="0" value="3" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AGENTTIMEOUT"></span></div>\n <div ng-messages="campaignForm[\'timeout\'].$error" ng-show="campaignForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AGENTTIMEOUT_REQUIRED">AgentTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AGENTTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AgentTimeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="queueCampaign-detail-form-container queue md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.QUEUE">QUEUE</div>\n </div>\n <form name="queueForm" novalidate>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.QUEUEOPTIONS">QueueOptions</label>\n <input type="text" name="dialQueueOptions" ng-model="vm.queueCampaign.dialQueueOptions" value="tTxX" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="queueForm[\'dialQueueOptions\'].$error" ng-show="queueForm[\'dialQueueOptions\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.QUEUEOPTIONS_REQUIRED">QueueOptions field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.QUEUETIMEOUT">QueueTimeout</label>\n <input type="number" name="dialQueueTimeout" ng-model="vm.queueCampaign.dialQueueTimeout" min="1" max="999" value="3" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.QUEUETIMEOUT"></span></div>\n <div ng-messages="queueForm[\'dialQueueTimeout\'].$error" ng-show="queueForm[\'dialQueueTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.QUEUETIMEOUT_REQUIRED">QueueTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.QUEUETIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">QueueTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.QUEUETIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">QueueTimeout must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'booked\' || vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.queueCampaign.strategy" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'rrmemory\'">Round Robin Memory</md-option>\n <md-option ng-value="\'roundrobin\'" ng-if="vm.queueCampaign.dialMethod === \'booked\'">Round Robin</md-option>\n <md-option ng-value="\'leastrecent\'" ng-if="vm.queueCampaign.dialMethod !== \'booked\'">Least Recent</md-option>\n <md-option ng-value="\'fewestcalls\'" ng-if="vm.queueCampaign.dialMethod !== \'booked\'">Fewest Calls</md-option>\n <md-option ng-value="\'random\'" ng-if="vm.queueCampaign.dialMethod !== \'booked\'">Random</md-option>\n <md-option ng-value="\'linear\'" ng-if="vm.queueCampaign.dialMethod !== \'booked\'">Linear</md-option>\n <md-option ng-value="\'wrandom\'" ng-if="vm.queueCampaign.dialMethod !== \'booked\'">Weight Random</md-option>\n </md-select>\n <div ng-messages="queueForm[\'strategy\'].$error" ng-show="queueForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.RETRY">Retry</label>\n <input type="number" name="retry" ng-model="vm.queueCampaign.retry" min="0" value="3" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.RETRY"></span></div>\n <div ng-messages="queueForm[\'retry\'].$error" ng-show="queueForm[\'retry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.RETRY_REQUIRED">Retry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.RETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Retry must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.WRAPUPTIME">WrapupTime</label>\n <input type="number" name="wrapuptime" ng-model="vm.queueCampaign.wrapuptime" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.WRAPUPTIME"></span></div>\n <div ng-messages="queueForm[\'wrapuptime\'].$error" ng-show="queueForm[\'wrapuptime\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.WRAPUPTIME_REQUIRED">WrapupTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.WRAPUPTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WrapupTime must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.WEIGHT">Weight</label>\n <input type="number" name="weight" ng-model="vm.queueCampaign.weight" min="0" value="1" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.WEIGHT"></span></div>\n <div ng-messages="queueForm[\'weight\'].$error" ng-show="queueForm[\'weight\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.WEIGHT_REQUIRED">Weight field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.WEIGHT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Weight must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.MUSICONHOLD">MusicOnHold</label>\n <md-select name="musiconhold" ng-model="vm.queueCampaign.musiconhold" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="musiconhold.name" ng-repeat="musiconhold in vm.musiconholds" ng-disabled="musiconhold.canSelect === false">{{ musiconhold.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.MUSICONHOLD"></span></div>\n <div ng-messages="queueForm[\'musiconhold\'].$error" ng-show="queueForm[\'musiconhold\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MUSICONHOLD_REQUIRED">MusicOnHold field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.CALLYSQUAREPROJECT">CallySquareProject</label>\n <md-select name="dialQueueProject" ng-model="vm.queueCampaign.dialQueueProject" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">None</md-option>\n <md-option ng-value="dialQueueProject.name" ng-repeat="dialQueueProject in vm.projects" ng-disabled="dialQueueProject.canSelect === false">{{ dialQueueProject.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.CALLYSQUAREPROJECT"></span></div>\n <div ng-messages="queueForm[\'dialQueueProject\'].$error" ng-show="queueForm[\'dialQueueProject\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CALLYSQUAREPROJECT_REQUIRED">CallySquareProject field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.CALLYSQUAREPROJECT2">CallySquareProject2</label>\n <md-select name="dialQueueProject2" ng-model="vm.queueCampaign.dialQueueProject2" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">None</md-option>\n <md-option ng-value="dialQueueProject2.name" ng-repeat="dialQueueProject2 in vm.projects" ng-disabled="dialQueueProject2.canSelect === false">{{ dialQueueProject2.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.CALLYSQUAREPROJECT2"></span></div>\n <div ng-messages="queueForm[\'dialQueueProject2\'].$error" ng-show="queueForm[\'dialQueueProject2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CALLYSQUAREPROJECT2_REQUIRED">CallySquareProject2 field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'preview\' || vm.queueCampaign.dialMethod === \'booked\'" class="md-block">\n <label translate="MOTIONDIALER.CALLYSQUAREPROJECTPREVIEW">CallySquareProjectPreview</label>\n <md-select name="dialQueueProject" ng-model="vm.queueCampaign.dialQueueProject" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">None</md-option>\n <md-option ng-value="dialQueueProject.name" ng-repeat="dialQueueProject in vm.projects" ng-disabled="dialQueueProject.canSelect === false">{{ dialQueueProject.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.CALLYSQUAREPROJECTPREVIEW"></span></div>\n <div ng-messages="queueForm[\'dialQueueProject\'].$error" ng-show="queueForm[\'dialQueueProject\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CALLYSQUAREPROJECTPREVIEW_REQUIRED">CallySquareProjectPreview field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'preview\' || vm.queueCampaign.dialMethod === \'booked\'" class="md-block">\n <label translate="MOTIONDIALER.CALLYSQUAREPROJECTPREVIEW2">CallySquareProjectPreview2</label>\n <md-select name="dialQueueProject2" ng-model="vm.queueCampaign.dialQueueProject2" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">None</md-option>\n <md-option ng-value="dialQueueProject2.name" ng-repeat="dialQueueProject2 in vm.projects" ng-disabled="dialQueueProject2.canSelect === false">{{ dialQueueProject2.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.CALLYSQUAREPROJECTPREVIEW2"></span></div>\n <div ng-messages="queueForm[\'dialQueueProject2\'].$error" ng-show="queueForm[\'dialQueueProject2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CALLYSQUAREPROJECTPREVIEW2_REQUIRED">CallySquareProjectPreview2 field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialQueueProject2 && (vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\')" class="md-block">\n <md-switch ng-model="vm.queueCampaign.dialAgiAfterHangupAgent" aria-label="RunIfHangupAgent" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MOTIONDIALER.RUNIFHANGUPAGENT">RunIfHangupAgent</span></md-switch>\n <div class="hint"><span translate="MOTIONDIALER.HELP.RUNIFHANGUPAGENT"></span></div>\n </md-input-container>\n\n </form>\n </div>\n <div class="queueCampaign-detail-form-container originate md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.ORIGINATE">ORIGINATE</div>\n </div>\n <form name="originateForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.ORIGINATECALLERIDNAME">OriginateCallerIdName</label>\n <input type="text" name="dialOriginateCallerIdName" ng-model="vm.queueCampaign.dialOriginateCallerIdName" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ORIGINATECALLERIDNAME"></span></div>\n <div ng-messages="originateForm[\'dialOriginateCallerIdName\'].$error" ng-show="originateForm[\'dialOriginateCallerIdName\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATECALLERIDNAME_REQUIRED">OriginateCallerIdName field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.ORIGINATECALLERIDNUMBER">OriginateCallerIdNumber</label>\n <input type="text" name="dialOriginateCallerIdNumber" ng-model="vm.queueCampaign.dialOriginateCallerIdNumber" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ORIGINATECALLERIDNUMBER"></span></div>\n <div ng-messages="originateForm[\'dialOriginateCallerIdNumber\'].$error" ng-show="originateForm[\'dialOriginateCallerIdNumber\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATECALLERIDNUMBER_REQUIRED">OriginateCallerIdNumber field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.RANDOMLASTDIGITCALLERIDNUMBER">RandomLastDigitCallerIdNumber</label>\n <input type="number" name="dialRandomLastDigitCallerIdNumber" ng-model="vm.queueCampaign.dialRandomLastDigitCallerIdNumber" min="0" max="15" value="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.RANDOMLASTDIGITCALLERIDNUMBER"></span></div>\n <div ng-messages="originateForm[\'dialRandomLastDigitCallerIdNumber\'].$error" ng-show="originateForm[\'dialRandomLastDigitCallerIdNumber\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.RANDOMLASTDIGITCALLERIDNUMBER_REQUIRED">RandomLastDigitCallerIdNumber field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.RANDOMLASTDIGITCALLERIDNUMBER_MUST_BE_GREATER_THAN_OR_EQUAL_TO">RandomLastDigitCallerIdNumber must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.RANDOMLASTDIGITCALLERIDNUMBER_MUST_BE_LESS_THAN_OR_EQUAL_TO">RandomLastDigitCallerIdNumber must be a valid greater or equal than</span> <span>15</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.ORIGINATETIMEOUT">OriginateTimeout</label>\n <input type="number" name="dialOriginateTimeout" ng-model="vm.queueCampaign.dialOriginateTimeout" min="1" max="999" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ORIGINATETIMEOUT"></span></div>\n <div ng-messages="originateForm[\'dialOriginateTimeout\'].$error" ng-show="originateForm[\'dialOriginateTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATETIMEOUT_REQUIRED">OriginateTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATETIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">OriginateTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATETIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">OriginateTimeout must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.PREFIX">Prefix</label>\n <input type="text" name="dialPrefix" ng-model="vm.queueCampaign.dialPrefix" ng-pattern="/^\\d+$/" value="" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.PREFIX"></span></div>\n <div ng-messages="originateForm[\'dialPrefix\'].$error" ng-show="originateForm[\'dialPrefix\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.PREFIX_REQUIRED">Prefix field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MOTIONDIALER.ERRORS.PREFIX_MUST_VALID_PATTERN" translate-values="{ regex: \'/^\\d+$/\' }">Prefix must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.RETRYANDFREQUENCY">RETRYANDFREQUENCY</span>\n </md-tab-label>\n <md-tab-body>\n <div class="queueCampaign-detail-form-container global md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.GLOBAL">GLOBAL</div>\n </div>\n <form name="globalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.GLOBALMAXRETRY">GlobalMaxRetry</label>\n <input type="number" name="dialGlobalMaxRetry" ng-model="vm.queueCampaign.dialGlobalMaxRetry" min="1" max="999" value="4" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.GLOBALMAXRETRY"></span></div>\n <div ng-messages="globalForm[\'dialGlobalMaxRetry\'].$error" ng-show="globalForm[\'dialGlobalMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.GLOBALMAXRETRY_REQUIRED">GlobalMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.GLOBALMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">GlobalMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.GLOBALMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">GlobalMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="queueCampaign-detail-form-container congestion md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.CONGESTION">CONGESTION</div>\n </div>\n <form name="congestionForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CONGESTIONMAXRETRY">CongestionMaxRetry</label>\n <input type="number" name="dialCongestionMaxRetry" ng-model="vm.queueCampaign.dialCongestionMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.CONGESTIONMAXRETRY"></span></div>\n <div ng-messages="congestionForm[\'dialCongestionMaxRetry\'].$error" ng-show="congestionForm[\'dialCongestionMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONMAXRETRY_REQUIRED">CongestionMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CongestionMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">CongestionMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CONGESTIONRETRYTIME">CongestionRetryTime</label>\n <input type="number" name="dialCongestionRetryFrequency" ng-model="vm.queueCampaign.dialCongestionRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.CONGESTIONRETRYTIME"></span></div>\n <div ng-messages="congestionForm[\'dialCongestionRetryFrequency\'].$error" ng-show="congestionForm[\'dialCongestionRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONRETRYTIME_REQUIRED">CongestionRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CongestionRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">CongestionRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="queueCampaign-detail-form-container busy md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.BUSY">BUSY</div>\n </div>\n <form name="busyForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.BUSYMAXRETRY">BusyMaxRetry</label>\n <input type="number" name="dialBusyMaxRetry" ng-model="vm.queueCampaign.dialBusyMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.BUSYMAXRETRY"></span></div>\n <div ng-messages="busyForm[\'dialBusyMaxRetry\'].$error" ng-show="busyForm[\'dialBusyMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.BUSYMAXRETRY_REQUIRED">BusyMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.BUSYMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">BusyMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.BUSYMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">BusyMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.BUSYRETRYTIME">BusyRetryTime</label>\n <input type="number" name="dialBusyRetryFrequency" ng-model="vm.queueCampaign.dialBusyRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.BUSYRETRYTIME"></span></div>\n <div ng-messages="busyForm[\'dialBusyRetryFrequency\'].$error" ng-show="busyForm[\'dialBusyRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.BUSYRETRYTIME_REQUIRED">BusyRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.BUSYRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">BusyRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.BUSYRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">BusyRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="queueCampaign-detail-form-container noanswer md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.NOANSWER">NOANSWER</div>\n </div>\n <form name="noanswerForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NOANSWERMAXRETRY">NoAnswerMaxRetry</label>\n <input type="number" name="dialNoAnswerMaxRetry" ng-model="vm.queueCampaign.dialNoAnswerMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NOANSWERMAXRETRY"></span></div>\n <div ng-messages="noanswerForm[\'dialNoAnswerMaxRetry\'].$error" ng-show="noanswerForm[\'dialNoAnswerMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERMAXRETRY_REQUIRED">NoAnswerMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoAnswerMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoAnswerMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NOANSWERRETRYTIME">NoAnswerRetryTime</label>\n <input type="number" name="dialNoAnswerRetryFrequency" ng-model="vm.queueCampaign.dialNoAnswerRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NOANSWERRETRYTIME"></span></div>\n <div ng-messages="noanswerForm[\'dialNoAnswerRetryFrequency\'].$error" ng-show="noanswerForm[\'dialNoAnswerRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERRETRYTIME_REQUIRED">NoAnswerRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoAnswerRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoAnswerRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="queueCampaign-detail-form-container nosuchnumber md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.NOSUCHNUMBER">NOSUCHNUMBER</div>\n </div>\n <form name="nosuchnumberForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NOSUCHNUMBERMAXRETRY">NoSuchNumberMaxRetry</label>\n <input type="number" name="dialNoSuchNumberMaxRetry" ng-model="vm.queueCampaign.dialNoSuchNumberMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NOSUCHNUMBERMAXRETRY"></span></div>\n <div ng-messages="nosuchnumberForm[\'dialNoSuchNumberMaxRetry\'].$error" ng-show="nosuchnumberForm[\'dialNoSuchNumberMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERMAXRETRY_REQUIRED">NoSuchNumberMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoSuchNumberMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoSuchNumberMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NOSUCHNUMBERRETRYTIME">NoSuchNumberRetryTime</label>\n <input type="number" name="dialNoSuchNumberRetryFrequency" ng-model="vm.queueCampaign.dialNoSuchNumberRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NOSUCHNUMBERRETRYTIME"></span></div>\n <div ng-messages="nosuchnumberForm[\'dialNoSuchNumberRetryFrequency\'].$error" ng-show="nosuchnumberForm[\'dialNoSuchNumberRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERRETRYTIME_REQUIRED">NoSuchNumberRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoSuchNumberRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoSuchNumberRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="queueCampaign-detail-form-container drop md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.DROP">DROP</div>\n </div>\n <form name="dropForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DROPMAXRETRY">DropMaxRetry</label>\n <input type="number" name="dialDropMaxRetry" ng-model="vm.queueCampaign.dialDropMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.DROPMAXRETRY"></span></div>\n <div ng-messages="dropForm[\'dialDropMaxRetry\'].$error" ng-show="dropForm[\'dialDropMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DROPMAXRETRY_REQUIRED">DropMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.DROPMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">DropMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.DROPMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">DropMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DROPRETRYTIME">DropRetryTime</label>\n <input type="number" name="dialDropRetryFrequency" ng-model="vm.queueCampaign.dialDropRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.DROPRETRYTIME"></span></div>\n <div ng-messages="dropForm[\'dialDropRetryFrequency\'].$error" ng-show="dropForm[\'dialDropRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DROPRETRYTIME_REQUIRED">DropRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.DROPRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">DropRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.DROPRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">DropRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="queueCampaign-detail-form-container abandoned md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.ABANDONED">ABANDONED</div>\n </div>\n <form name="abandonedForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.ABANDONEDMAXRETRY">AbandonedMaxRetry</label>\n <input type="number" name="dialAbandonedMaxRetry" ng-model="vm.queueCampaign.dialAbandonedMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ABANDONEDMAXRETRY"></span></div>\n <div ng-messages="abandonedForm[\'dialAbandonedMaxRetry\'].$error" ng-show="abandonedForm[\'dialAbandonedMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDMAXRETRY_REQUIRED">AbandonedMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AbandonedMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">AbandonedMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.ABANDONEDRETRYTIME">AbandonedRetryTime</label>\n <input type="number" name="dialAbandonedRetryFrequency" ng-model="vm.queueCampaign.dialAbandonedRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ABANDONEDRETRYTIME"></span></div>\n <div ng-messages="abandonedForm[\'dialAbandonedRetryFrequency\'].$error" ng-show="abandonedForm[\'dialAbandonedRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDRETRYTIME_REQUIRED">AbandonedRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AbandonedRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">AbandonedRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="queueCampaign-detail-form-container machine md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.MACHINE">MACHINE</div>\n </div>\n <form name="machineForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.MACHINEMAXRETRY">MachineMaxRetry</label>\n <input type="number" name="dialMachineMaxRetry" ng-model="vm.queueCampaign.dialMachineMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.MACHINEMAXRETRY"></span></div>\n <div ng-messages="machineForm[\'dialMachineMaxRetry\'].$error" ng-show="machineForm[\'dialMachineMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MACHINEMAXRETRY_REQUIRED">MachineMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.MACHINEMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MachineMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.MACHINEMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">MachineMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.MACHINERETRYTIME">MachineRetryTime</label>\n <input type="number" name="dialMachineRetryFrequency" ng-model="vm.queueCampaign.dialMachineRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.MACHINERETRYTIME"></span></div>\n <div ng-messages="machineForm[\'dialMachineRetryFrequency\'].$error" ng-show="machineForm[\'dialMachineRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MACHINERETRYTIME_REQUIRED">MachineRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.MACHINERETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MachineRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.MACHINERETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">MachineRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="queueCampaign-detail-form-container agentreject md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.AGENTREJECT">AGENTREJECT</div>\n </div>\n <form name="agentrejectForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.AGENTREJECTMAXRETRY">AgentRejectMaxRetry</label>\n <input type="number" name="dialAgentRejectMaxRetry" ng-model="vm.queueCampaign.dialAgentRejectMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AGENTREJECTMAXRETRY"></span></div>\n <div ng-messages="agentrejectForm[\'dialAgentRejectMaxRetry\'].$error" ng-show="agentrejectForm[\'dialAgentRejectMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTMAXRETRY_REQUIRED">AgentRejectMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AgentRejectMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">AgentRejectMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.AGENTREJECTRETRYTIME">AgentRejectRetryTime</label>\n <input type="number" name="dialAgentRejectRetryFrequency" ng-model="vm.queueCampaign.dialAgentRejectRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AGENTREJECTRETRYTIME"></span></div>\n <div ng-messages="agentrejectForm[\'dialAgentRejectRetryFrequency\'].$error" ng-show="agentrejectForm[\'dialAgentRejectRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTRETRYTIME_REQUIRED">AgentRejectRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AgentRejectRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">AgentRejectRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <md-tab-body>\n <div ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="queueCampaign-detail-form-container advanced md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.ADVANCED">ADVANCED</div>\n </div>\n <form name="advancedForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.queueCampaign.acw" aria-label="AfterCallWork" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MOTIONDIALER.AFTERCALLWORK">AfterCallWork</span></md-switch>\n <div class="hint"><span translate="MOTIONDIALER.HELP.AFTERCALLWORK"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.acw" class="md-block">\n <label translate="MOTIONDIALER.AFTERCALLWORKDURATION">AfterCallWorkDuration</label>\n <input type="number" name="acwTimeout" ng-model="vm.queueCampaign.acwTimeout" min="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AFTERCALLWORKDURATION"></span></div>\n <div ng-messages="advancedForm[\'acwTimeout\'].$error" ng-show="advancedForm[\'acwTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AFTERCALLWORKDURATION_REQUIRED">AfterCallWorkDuration field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AFTERCALLWORKDURATION_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AfterCallWorkDuration must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.AUTOPAUSE">AutoPause</label>\n <md-select name="autopause" ng-model="vm.queueCampaign.autopause" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'all\'"> {{ \'MOTIONDIALER.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'MOTIONDIALER.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.AUTOPAUSE"></span></div>\n <div ng-messages="advancedForm[\'autopause\'].$error" ng-show="advancedForm[\'autopause\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AUTOPAUSE_REQUIRED">AutoPause field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.RINGINUSE">RingInUse</label>\n <md-select name="ringinuse" ng-model="vm.queueCampaign.ringinuse" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'MOTIONDIALER.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'MOTIONDIALER.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.RINGINUSE"></span></div>\n <div ng-messages="advancedForm[\'ringinuse\'].$error" ng-show="advancedForm[\'ringinuse\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.RINGINUSE_REQUIRED">RingInUse field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.MEMBERDELAY">MemberDelay</label>\n <input type="number" name="memberdelay" ng-model="vm.queueCampaign.memberdelay" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.MEMBERDELAY"></span></div>\n <div ng-messages="advancedForm[\'memberdelay\'].$error" ng-show="advancedForm[\'memberdelay\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MEMBERDELAY_REQUIRED">MemberDelay field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.MEMBERDELAY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MemberDelay must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.TIMEOUTRESTART">TimeoutRestart</label>\n <md-select name="timeoutrestart" ng-model="vm.queueCampaign.timeoutrestart" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'MOTIONDIALER.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'MOTIONDIALER.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.TIMEOUTRESTART"></span></div>\n <div ng-messages="advancedForm[\'timeoutrestart\'].$error" ng-show="advancedForm[\'timeoutrestart\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.TIMEOUTRESTART_REQUIRED">TimeoutRestart field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.MONITORFORMAT">MonitorFormat</label>\n <md-select name="monitor_format" ng-model="vm.queueCampaign.monitor_format" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">Inactive</md-option>\n <md-option ng-value="\'wav\'">wav</md-option>\n <md-option ng-value="\'wav49\'">wav49</md-option>\n <md-option ng-value="\'gsm\'">gsm</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.MONITORFORMAT"></span></div>\n <div ng-messages="advancedForm[\'monitor_format\'].$error" ng-show="advancedForm[\'monitor_format\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MONITORFORMAT_REQUIRED">MonitorFormat field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CONTEXT">Context</label>\n <input type="text" name="context" ng-model="vm.queueCampaign.context" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.CONTEXT"></span></div>\n <div ng-messages="advancedForm[\'context\'].$error" ng-show="advancedForm[\'context\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.SETINTERFACEVARIABLES">SetInterfaceVariables</label>\n <md-select name="setinterfacevar" ng-model="vm.queueCampaign.setinterfacevar" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'MOTIONDIALER.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'MOTIONDIALER.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.SETINTERFACEVARIABLES"></span></div>\n <div ng-messages="advancedForm[\'setinterfacevar\'].$error" ng-show="advancedForm[\'setinterfacevar\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.SETINTERFACEVARIABLES_REQUIRED">SetInterfaceVariables field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.SETQUEUEVARIABLES">SetQueueVariables</label>\n <md-select name="setqueuevar" ng-model="vm.queueCampaign.setqueuevar" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'MOTIONDIALER.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'MOTIONDIALER.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.SETQUEUEVARIABLES"></span></div>\n <div ng-messages="advancedForm[\'setqueuevar\'].$error" ng-show="advancedForm[\'setqueuevar\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.SETQUEUEVARIABLES_REQUIRED">SetQueueVariables field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.SETQUEUEENTRYVARIABLES">SetQueueEntryVariables</label>\n <md-select name="setqueueentryvar" ng-model="vm.queueCampaign.setqueueentryvar" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'MOTIONDIALER.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'MOTIONDIALER.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.SETQUEUEENTRYVARIABLES"></span></div>\n <div ng-messages="advancedForm[\'setqueueentryvar\'].$error" ng-show="advancedForm[\'setqueueentryvar\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.SETQUEUEENTRYVARIABLES_REQUIRED">SetQueueEntryVariables field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DIALORDERBYSCHEDULEDAT">DialOrderByScheduledAt</label>\n <md-select name="dialOrderByScheduledAt" ng-model="vm.queueCampaign.dialOrderByScheduledAt" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'DESC\'"> {{ \'MOTIONDIALER.DESC\' | translate }} </md-option>\n\n <md-option ng-value="\'ASC\'"> {{ \'MOTIONDIALER.ASC\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.DIALORDERBYSCHEDULEDAT"></span></div>\n <div ng-messages="advancedForm[\'dialOrderByScheduledAt\'].$error" ng-show="advancedForm[\'dialOrderByScheduledAt\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DIALORDERBYSCHEDULEDAT_REQUIRED">DialOrderByScheduledAt field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.queueCampaign.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MOTIONDIALER.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.mandatoryDisposition" class="md-block">\n <label translate="MOTIONDIALER.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.queueCampaign.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="advancedForm[\'mandatoryDispositionPauseId\'].$error" ng-show="advancedForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div ng-if="vm.queueCampaign.dialMethod === \'preview\' || vm.queueCampaign.dialMethod === \'booked\'" class="queueCampaign-detail-form-container advancedpreview md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.ADVANCEDPREVIEW">ADVANCEDPREVIEW</div>\n </div>\n <form name="advancedpreviewForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.queueCampaign.acw" aria-label="AfterCallWork" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MOTIONDIALER.AFTERCALLWORK">AfterCallWork</span></md-switch>\n <div class="hint"><span translate="MOTIONDIALER.HELP.AFTERCALLWORK"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.acw" class="md-block">\n <label translate="MOTIONDIALER.AFTERCALLWORKDURATION">AfterCallWorkDuration</label>\n <input type="number" name="acwTimeout" ng-model="vm.queueCampaign.acwTimeout" min="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AFTERCALLWORKDURATION"></span></div>\n <div ng-messages="advancedpreviewForm[\'acwTimeout\'].$error" ng-show="advancedpreviewForm[\'acwTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AFTERCALLWORKDURATION_REQUIRED">AfterCallWorkDuration field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AFTERCALLWORKDURATION_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AfterCallWorkDuration must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.MONITORFORMAT">MonitorFormat</label>\n <md-select name="monitor_format" ng-model="vm.queueCampaign.monitor_format" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">Inactive</md-option>\n <md-option ng-value="\'wav\'">wav</md-option>\n <md-option ng-value="\'wav49\'">wav49</md-option>\n <md-option ng-value="\'gsm\'">gsm</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.MONITORFORMAT"></span></div>\n <div ng-messages="advancedpreviewForm[\'monitor_format\'].$error" ng-show="advancedpreviewForm[\'monitor_format\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MONITORFORMAT_REQUIRED">MonitorFormat field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DIALORDERBYSCHEDULEDAT">DialOrderByScheduledAt</label>\n <md-select name="dialOrderByScheduledAt" ng-model="vm.queueCampaign.dialOrderByScheduledAt" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'DESC\'"> {{ \'MOTIONDIALER.DESC\' | translate }} </md-option>\n\n <md-option ng-value="\'ASC\'"> {{ \'MOTIONDIALER.ASC\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.DIALORDERBYSCHEDULEDAT"></span></div>\n <div ng-messages="advancedpreviewForm[\'dialOrderByScheduledAt\'].$error" ng-show="advancedpreviewForm[\'dialOrderByScheduledAt\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DIALORDERBYSCHEDULEDAT_REQUIRED">DialOrderByScheduledAt field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.queueCampaign.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MOTIONDIALER.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.mandatoryDisposition" class="md-block">\n <label translate="MOTIONDIALER.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.queueCampaign.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="advancedpreviewForm[\'mandatoryDispositionPauseId\'].$error" ng-show="advancedpreviewForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div ng-if="vm.queueCampaign.dialMethod === \'predictive\'" class="queueCampaign-detail-form-container thresholds md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.THRESHOLDS">THRESHOLDS</div>\n </div>\n <form name="thresholdsForm" novalidate>\n <md-input-container ng-if="vm.queueCampaign.dialMethod == \'predictive\'" class="md-block">\n <span translate="MOTIONDIALER.PREDICTIVEMAXTHRESHOLD">PredictiveMaxThreshold</span>\n <div class="hint"><span translate="MOTIONDIALER.HELP.PREDICTIVEMAXTHRESHOLD"></span></div>\n <md-slider md-discrete flex ng-model="vm.queueCampaign.dialPredictiveIntervalMaxThreshold" min="1" max="100" step="1" class="md-accent"></md-slider>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod == \'predictive\'" class="md-block">\n <span translate="MOTIONDIALER.PREDICTIVEMINTHRESHOLD">PredictiveMinThreshold</span>\n <div class="hint"><span translate="MOTIONDIALER.HELP.PREDICTIVEMINTHRESHOLD"></span></div>\n <md-slider md-discrete flex ng-model="vm.queueCampaign.dialPredictiveIntervalMinThreshold" min="1" max="100" step="1" class="md-accent"></md-slider>\n </md-input-container>\n\n </form>\n </div>\n <div class="queueCampaign-detail-form-container recallme md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.RECALLME">RECALLME</div>\n </div>\n <form name="recallmeForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DIALRECALLMETIMEOUT">DialRecallMeTimeout</label>\n <input type="number" name="dialRecallMeTimeout" ng-model="vm.queueCampaign.dialRecallMeTimeout" min="1" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.DIALRECALLMETIMEOUT"></span></div>\n <div ng-messages="recallmeForm[\'dialRecallMeTimeout\'].$error" ng-show="recallmeForm[\'dialRecallMeTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DIALRECALLMETIMEOUT_REQUIRED">DialRecallMeTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.DIALRECALLMETIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">DialRecallMeTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.queueCampaign.dialRecallInQueue" aria-label="DialRecallInQueue" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MOTIONDIALER.DIALRECALLINQUEUE">DialRecallInQueue</span></md-switch>\n <div class="hint"><span translate="MOTIONDIALER.HELP.DIALRECALLINQUEUE"></span></div>\n </md-input-container>\n\n </form>\n </div>\n <div ng-if="vm.queueCampaign.dialMethod != \'preview\'" class="queueCampaign-detail-form-container globalinterval md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.GLOBALINTERVAL">GLOBALINTERVAL</div>\n </div>\n <form name="globalintervalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.GLOBALINTERVAL">GlobalInterval</label>\n <input type="text" name="dialGlobalInterval" ng-model="vm.queueCampaign.dialGlobalInterval" value="07:00-22:00,*,*,*" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.GLOBALINTERVAL"></span></div>\n <div ng-messages="globalintervalForm[\'dialGlobalInterval\'].$error" ng-show="globalintervalForm[\'dialGlobalInterval\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.GLOBALINTERVAL_REQUIRED">GlobalInterval field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div ng-if="vm.queueCampaign.dialMethod != \'preview\'" class="queueCampaign-detail-form-container timezone md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.TIMEZONE">TIMEZONE</div>\n </div>\n <form name="timezoneForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.TIMEZONE">Timezone</label>\n <ms-timezone name="dialTimezone" ng-model="vm.queueCampaign.dialTimezone" autofocus ng-disabled="!vm.crudPermissions.canEdit"></ms-timezone>\n <div class="hint"><span translate="MOTIONDIALER.HELP.TIMEZONE"></span></div>\n <div ng-messages="timezoneForm[\'dialTimezone\'].$error" ng-show="timezoneForm[dialTimezone].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.TIMEZONE_REQUIRED">Timezone field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="queueCampaign-detail-form-container amd md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.AMD">AMD</div>\n </div>\n <form name="amdForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.queueCampaign.dialAMDActive" aria-label="AMDActive" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MOTIONDIALER.AMDACTIVE">AMDActive</span></md-switch>\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDACTIVE"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDINITIALSILENCE">AMDInitialSilence</label>\n <input type="number" name="dialAMDInitialSilence" ng-model="vm.queueCampaign.dialAMDInitialSilence" min="0" value="2500" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDINITIALSILENCE"></span></div>\n <div ng-messages="amdForm[\'dialAMDInitialSilence\'].$error" ng-show="amdForm[\'dialAMDInitialSilence\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDINITIALSILENCE_REQUIRED">AMDInitialSilence field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDINITIALSILENCE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDInitialSilence must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDGREETING">AMDGreeting</label>\n <input type="number" name="dialAMDGreeting" ng-model="vm.queueCampaign.dialAMDGreeting" min="0" value="1500" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDGREETING"></span></div>\n <div ng-messages="amdForm[\'dialAMDGreeting\'].$error" ng-show="amdForm[\'dialAMDGreeting\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDGREETING_REQUIRED">AMDGreeting field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDGREETING_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDGreeting must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDAFTERGREETINGSILENCE">AMDAfterGreetingSilence</label>\n <input type="number" name="dialAMDAfterGreetingSilence" ng-model="vm.queueCampaign.dialAMDAfterGreetingSilence" min="0" value="800" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDAFTERGREETINGSILENCE"></span></div>\n <div ng-messages="amdForm[\'dialAMDAfterGreetingSilence\'].$error" ng-show="amdForm[\'dialAMDAfterGreetingSilence\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDAFTERGREETINGSILENCE_REQUIRED">AMDAfterGreetingSilence field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDAFTERGREETINGSILENCE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDAfterGreetingSilence must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDTOTALANALYSISTIME">AMDTotalAnalysisTime</label>\n <input type="number" name="dialAMDTotalAnalysisTime" ng-model="vm.queueCampaign.dialAMDTotalAnalysisTime" min="0" value="5000" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDTOTALANALYSISTIME"></span></div>\n <div ng-messages="amdForm[\'dialAMDTotalAnalysisTime\'].$error" ng-show="amdForm[\'dialAMDTotalAnalysisTime\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDTOTALANALYSISTIME_REQUIRED">AMDTotalAnalysisTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDTOTALANALYSISTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDTotalAnalysisTime must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDMINWORDLENGTH">AMDMinWordLength</label>\n <input type="number" name="dialAMDMinWordLength" ng-model="vm.queueCampaign.dialAMDMinWordLength" min="0" value="100" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDMINWORDLENGTH"></span></div>\n <div ng-messages="amdForm[\'dialAMDMinWordLength\'].$error" ng-show="amdForm[\'dialAMDMinWordLength\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDMINWORDLENGTH_REQUIRED">AMDMinWordLength field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDMINWORDLENGTH_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDMinWordLength must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDBETWEENWORDSSILENCE">AMDBetweenWordsSilence</label>\n <input type="number" name="dialAMDBetweenWordsSilence" ng-model="vm.queueCampaign.dialAMDBetweenWordsSilence" min="0" value="50" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDBETWEENWORDSSILENCE"></span></div>\n <div ng-messages="amdForm[\'dialAMDBetweenWordsSilence\'].$error" ng-show="amdForm[\'dialAMDBetweenWordsSilence\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDBETWEENWORDSSILENCE_REQUIRED">AMDBetweenWordsSilence field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDBETWEENWORDSSILENCE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDBetweenWordsSilence must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDMAXIMUMNUMBEROFWORDS">AMDMaximumNumberOfWords</label>\n <input type="number" name="dialAMDMaximumNumberOfWords" ng-model="vm.queueCampaign.dialAMDMaximumNumberOfWords" min="0" value="3" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDMAXIMUMNUMBEROFWORDS"></span></div>\n <div ng-messages="amdForm[\'dialAMDMaximumNumberOfWords\'].$error" ng-show="amdForm[\'dialAMDMaximumNumberOfWords\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMNUMBEROFWORDS_REQUIRED">AMDMaximumNumberOfWords field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMNUMBEROFWORDS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDMaximumNumberOfWords must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDSILENCETHRESHOLD">AMDSilenceThreshold</label>\n <input type="number" name="dialAMDSilenceThreshold" ng-model="vm.queueCampaign.dialAMDSilenceThreshold" min="0" max="32767" value="256" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDSILENCETHRESHOLD"></span></div>\n <div ng-messages="amdForm[\'dialAMDSilenceThreshold\'].$error" ng-show="amdForm[\'dialAMDSilenceThreshold\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDSILENCETHRESHOLD_REQUIRED">AMDSilenceThreshold field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDSILENCETHRESHOLD_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDSilenceThreshold must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.AMDSILENCETHRESHOLD_MUST_BE_LESS_THAN_OR_EQUAL_TO">AMDSilenceThreshold must be a valid greater or equal than</span> <span>32767</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDMAXIMUMWORDLENGTH">AMDMaximumWordLength</label>\n <input type="number" name="dialAMDMaximumWordLength" ng-model="vm.queueCampaign.dialAMDMaximumWordLength" min="0" value="5000" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDMAXIMUMWORDLENGTH"></span></div>\n <div ng-messages="amdForm[\'dialAMDMaximumWordLength\'].$error" ng-show="amdForm[\'dialAMDMaximumWordLength\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMWORDLENGTH_REQUIRED">AMDMaximumWordLength field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMWORDLENGTH_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDMaximumWordLength must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.HOPPERS">HOPPERS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="queueCampaign-detail-form-container hopperstatistics md-background-bg md-whiteframe-1dp">\n <div ng-controller="QueueCampaignHopperStatisticsController as vm_hs" ng-init="vm_hs.init(vm.queueCampaign)">\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.HOPPERWIDGET">Hoppers</span>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm_hs.init(vm.queueCampaign)" aria-label="refresh Hopper" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{(vm_hs.total || 0) + (vm_hs.closed || 0)}}</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.TOTAL\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{vm_hs.fresh || 0}} ({{vm_hs.total ? ((((vm_hs.fresh || 0) * 100)/((vm_hs.closed || 0) + (vm_hs.total || 0))) | number: 2) : 0}}%)</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.FRESH\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{vm_hs.total ? (vm_hs.total - (vm_hs.fresh || 0)) : 0}} ({{vm_hs.total ? ((((vm_hs.total - (vm_hs.fresh || 0)) * 100)/((vm_hs.closed || 0) + (vm_hs.total || 0))) | number: 2) : 0}}%)</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.OPEN\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{vm_hs.closed ? (vm_hs.closed || 0) : 0}} ({{vm_hs.closed ? ((((vm_hs.closed) * 100)/(vm_hs.closed + (vm_hs.total || 0))) | number: 2) : 0}}%)</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.CLOSED\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n </div>\n\n </div>\n <div class="queueCampaign-detail-form-container hoppers md-background-bg md-whiteframe-1dp">\n <div ng-controller="QueueCampaignHoppersController as vm_dc" ng-init="vm_dc.init(vm.queueCampaign, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedQueueCampaignHoppers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.HOPPERS">Hoppers</span>\n <ms-search-bar on-search="vm_dc.getQueueCampaignHoppers()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm_dc.getQueueCampaignHoppers()" aria-label="refresh Hoppers" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedQueueCampaignHoppers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedQueueCampaignHoppers.length}} {{vm_dc.selectedQueueCampaignHoppers.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedQueueCampaignHoppers" csv-label="true" filename="queueCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedQueueCampaignHoppers($event)" aria-label="delete selected" translate translate-attr-label="MOTIONDIALER.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedQueueCampaignHoppers" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getQueueCampaignHoppers">\n <tr md-row>\n <th md-column md-order-by="ContactId">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="phone">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </th>\n <th md-column md-order-by="countcongestionretry">\n {{ \'MOTIONDIALER.CONGESTION\' | translate }}\n </th>\n <th md-column md-order-by="countbusyretry">\n {{ \'MOTIONDIALER.BUSY\' | translate }}\n </th>\n <th md-column md-order-by="countnoanswerretry">\n {{ \'MOTIONDIALER.NOANSWER\' | translate }}\n </th>\n <th md-column md-order-by="countnosuchnumberretry">\n {{ \'MOTIONDIALER.NOSUCHNUMBER\' | translate }}\n </th>\n <th md-column md-order-by="countdropretry">\n {{ \'MOTIONDIALER.DROP\' | translate }}\n </th>\n <th md-column md-order-by="countabandonedretry">\n {{ \'MOTIONDIALER.ABANDONED\' | translate }}\n </th>\n <th md-column md-order-by="countmachineretry">\n {{ \'MOTIONDIALER.MACHINE\' | translate }}\n </th>\n <th md-column md-order-by="countagentrejectretry">\n {{ \'MOTIONDIALER.AGENTREJECT\' | translate }}\n </th>\n <th md-column md-order-by="scheduledat">\n {{ \'MOTIONDIALER.SCHEDULEDAT\' | translate }}\n </th>\n <th md-column md-order-by="priority">\n {{ \'MOTIONDIALER.PRIORITY\' | translate }}\n </th>\n <th md-column md-order-by="recallme">\n {{ \'MOTIONDIALER.RECALLAGENT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="hopper" md-select-id="id" ng-repeat="hopper in vm_dc.queueCampaignHoppers.rows">\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.ContactId}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell privacy ng-cloak>\n {{hopper.phone}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countcongestionretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countbusyretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countnoanswerretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countnosuchnumberretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countdropretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countabandonedretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countmachineretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countagentrejectretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{ hopper.scheduledat | formatdate }}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{ vm_dc.arraypriority[hopper.priority].option }} </td>\n\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell class="recallme ">\n <md-icon md-colors="{color: {{hopper.recallme ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{hopper.recallme? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" translate="MOTIONDIALER.EDIT_HOPPER">\n Edit Hopper\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(hopper, $event)" translate="MOTIONDIALER.DELETE_HOPPER">\n Delete Hopper\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.queueCampaignHoppers.rows.length">\n <td md-cell colspan="17">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPER_AVAILABLE">No hopper available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.queueCampaignHoppers.count}}" md-on-paginate="vm_dc.getQueueCampaignHoppers" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.HISTORY">HISTORY</span>\n </md-tab-label>\n <md-tab-body>\n <div class="queueCampaign-detail-form-container hopperhistories md-background-bg md-whiteframe-1dp">\n <div ng-controller="QueueCampaignHopperHistoriesController as vm_dc" ng-init="vm_dc.init(vm.queueCampaign, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedQueueCampaignHopperHistories.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.HOPPERHISTORIES">HopperHistories</span>\n <ms-search-bar on-search="vm_dc.getQueueCampaignHopperHistories()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm_dc.getQueueCampaignHopperHistories()" aria-label="refresh HopperHistories" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERHISTORIES">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedQueueCampaignHopperHistories.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedQueueCampaignHopperHistories.length}} {{vm_dc.selectedQueueCampaignHopperHistories.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedQueueCampaignHopperHistories" csv-label="true" filename="queueCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedQueueCampaignHopperHistories" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getQueueCampaignHopperHistories">\n <tr md-row>\n <th md-column md-order-by="uniqueid">\n {{ \'MOTIONDIALER.UNIQUEID\' | translate }}\n </th>\n <th md-column md-order-by="ContactId">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="calleridnum">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </th>\n <th md-column md-order-by="calleridname">\n {{ \'MOTIONDIALER.NAME\' | translate }}\n </th>\n <th md-column md-order-by="statedesc">\n {{ \'MOTIONDIALER.STATUS\' | translate }}\n </th>\n <th md-column md-order-by="scheduledat">\n {{ \'MOTIONDIALER.SCHEDULEDAT\' | translate }}\n </th>\n <th md-column md-order-by="starttime">\n {{ \'MOTIONDIALER.STARTTIME\' | translate }}\n </th>\n <th md-column md-order-by="endtime">\n {{ \'MOTIONDIALER.ENDTIME\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="hopperHistory" md-select-id="id" ng-repeat="hopperHistory in vm_dc.queueCampaignHopperHistories.rows">\n <td md-cell>\n {{hopperHistory.uniqueid}}\n </td>\n <td md-cell>\n {{hopperHistory.ContactId}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperHistory.calleridnum}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperHistory.calleridname}}\n </td>\n <td md-cell>\n {{hopperHistory.statedesc}}\n </td>\n <td md-cell>\n {{ hopperHistory.scheduledat | formatdate }}\n </td>\n <td md-cell>\n {{ hopperHistory.starttime | formatdate }}\n </td>\n <td md-cell>\n {{ hopperHistory.endtime | formatdate }}\n </td>\n <td md-cell class="actions">\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.queueCampaignHopperHistories.rows.length">\n <td md-cell colspan="11">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPERHISTORY_AVAILABLE">No hopperhistory available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.queueCampaignHopperHistories.count}}" md-on-paginate="vm_dc.getQueueCampaignHopperHistories" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.FINAL">FINAL</span>\n </md-tab-label>\n <md-tab-body>\n <div class="queueCampaign-detail-form-container hopperfinals md-background-bg md-whiteframe-1dp">\n <div ng-controller="QueueCampaignHopperFinalsController as vm_dc" ng-init="vm_dc.init(vm.queueCampaign, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedQueueCampaignHopperFinals.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.HOPPERFINALS">HopperFinals</span>\n <ms-search-bar on-search="vm_dc.getQueueCampaignHopperFinals()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm_dc.getQueueCampaignHopperFinals()" aria-label="refresh HopperFinals" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERFINALS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="vm_dc.countContactsQueueCampaignHopperFinal(vm_dc.query.id); $mdOpenMenu($event);">\n <md-icon md-font-icon="icon-backup-restore"></md-icon>\n <md-tooltip><span translate="MOTIONDIALER.RESTORECONTACTS"></span></md-tooltip>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(3)">\n <span translate="MOTIONDIALER.NOANSWER ">NoAnswer</span>\n <span class="badge">({{vm_dc.contacts.noAnswerContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(5)">\n <span translate="MOTIONDIALER.BUSY ">Busy</span>\n <span class="badge">({{vm_dc.contacts.busyContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(8)">\n <span translate="MOTIONDIALER.CONGESTION ">Congestion</span>\n <span class="badge">({{vm_dc.contacts.congestionContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(10)">\n <span translate="MOTIONDIALER.DROPPED ">Drop</span>\n <span class="badge">({{vm_dc.contacts.dropContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(11)">\n <span translate="MOTIONDIALER.ABANDONED ">Abandoned</span>\n <span class="badge">({{vm_dc.contacts.abandonedContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(22)">\n <span translate="MOTIONDIALER.RECALLFAILEDTIMEOUT">Recall</span>\n <span class="badge">({{vm_dc.contacts.reCallContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(0)">\n <span translate="MOTIONDIALER.NO_SUCH_NUMBER">NoSuchNumber</span>\n <span class="badge">({{vm_dc.contacts.noSuchContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(19)">\n <span translate="MOTIONDIALER.ANSWERING_MACHINE">AnsweringMachine</span>\n <span class="badge">({{vm_dc.contacts.answeringMachine}})</span>\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedQueueCampaignHopperFinals.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedQueueCampaignHopperFinals.length}} {{vm_dc.selectedQueueCampaignHopperFinals.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedQueueCampaignHopperFinals" csv-label="true" filename="queueCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.moveSelectedQueueCampaignHopperFinals($event)" aria-label="move selected" translate translate-attr-label="MOTIONDIALER.MOVE_SELECTED">\n <md-icon md-font-icon="icon-restore"></md-icon>\n <md-tooltip><span translate="MOTIONDIALER.RESTORECONTACTS"></span></md-tooltip>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedQueueCampaignHopperFinals" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getQueueCampaignHopperFinals">\n <tr md-row>\n <th md-column md-order-by="uniqueid">\n {{ \'MOTIONDIALER.UNIQUEID\' | translate }}\n </th>\n <th md-column md-order-by="ContactId">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="calleridnum">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </th>\n <th md-column md-order-by="calleridname">\n {{ \'MOTIONDIALER.NAME\' | translate }}\n </th>\n <th md-column md-order-by="statedesc">\n {{ \'MOTIONDIALER.STATUS\' | translate }}\n </th>\n <th md-column md-order-by="countcongestionretry">\n {{ \'MOTIONDIALER.CONGESTION\' | translate }}\n </th>\n <th md-column md-order-by="countbusyretry">\n {{ \'MOTIONDIALER.BUSY\' | translate }}\n </th>\n <th md-column md-order-by="countnoanswerretry">\n {{ \'MOTIONDIALER.NOANSWER\' | translate }}\n </th>\n <th md-column md-order-by="countnosuchnumberretry">\n {{ \'MOTIONDIALER.NOSUCHNUMBER\' | translate }}\n </th>\n <th md-column md-order-by="countdropretry">\n {{ \'MOTIONDIALER.DROP\' | translate }}\n </th>\n <th md-column md-order-by="countabandonedretry">\n {{ \'MOTIONDIALER.ABANDONED\' | translate }}\n </th>\n <th md-column md-order-by="countmachineretry">\n {{ \'MOTIONDIALER.MACHINE\' | translate }}\n </th>\n <th md-column md-order-by="countagentrejectretry">\n {{ \'MOTIONDIALER.AGENTREJECT\' | translate }}\n </th>\n <th md-column md-order-by="starttime">\n {{ \'MOTIONDIALER.STARTTIME\' | translate }}\n </th>\n <th md-column md-order-by="endtime">\n {{ \'MOTIONDIALER.ENDTIME\' | translate }}\n </th>\n <th md-column md-order-by="disposition">\n {{ \'MOTIONDIALER.DISPOSITION\' | translate }}\n </th>\n <th md-column md-order-by="secondDisposition">\n {{ \'MOTIONDIALER.SECOND_LEVEL_DISPOSITION\' | translate }}\n </th>\n <th md-column md-order-by="thirdDisposition">\n {{ \'MOTIONDIALER.THIRD_LEVEL_DISPOSITION\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="hopperFinal" md-select-id="id" ng-repeat="hopperFinal in vm_dc.queueCampaignHopperFinals.rows">\n <td md-cell>\n {{hopperFinal.uniqueid}}\n </td>\n <td md-cell>\n {{hopperFinal.ContactId}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperFinal.calleridnum}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperFinal.calleridname}}\n </td>\n <td md-cell>\n {{hopperFinal.statedesc}}\n </td>\n <td md-cell>\n {{hopperFinal.countcongestionretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countbusyretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countnoanswerretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countnosuchnumberretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countdropretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countabandonedretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countmachineretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countagentrejectretry}}\n </td>\n <td md-cell>\n {{ hopperFinal.starttime | formatdate }}\n </td>\n <td md-cell>\n {{ hopperFinal.endtime | formatdate }}\n </td>\n <td md-cell>\n {{hopperFinal.disposition}}\n </td>\n <td md-cell>\n {{hopperFinal.secondDisposition}}\n </td>\n <td md-cell>\n {{hopperFinal.thirdDisposition}}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveConfirm(hopperFinal, $event)" translate="MOTIONDIALER.MOVE_HOPPERFINAL">\n Move HopperFinal\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.queueCampaignHopperFinals.rows.length">\n <td md-cell colspan="30">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPERFINAL_AVAILABLE">No hopperfinal available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.queueCampaignHopperFinals.count}}" md-on-paginate="vm_dc.getQueueCampaignHopperFinals" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.BLACKLIST">BLACKLIST</span>\n </md-tab-label>\n <md-tab-body>\n <div class="queueCampaign-detail-form-container hopperblacks md-background-bg md-whiteframe-1dp">\n <div ng-controller="QueueCampaignHopperBlacksController as vm_dc" ng-init="vm_dc.init(vm.queueCampaign, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedQueueCampaignHopperBlacks.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.HOPPERBLACKS">HopperBlacks</span>\n <ms-search-bar on-search="vm_dc.getQueueCampaignHopperBlacks()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedQueueCampaignHopperBlacks.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedQueueCampaignHopperBlacks.length}} {{vm_dc.selectedQueueCampaignHopperBlacks.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedQueueCampaignHopperBlacks" csv-label="true" filename="queueCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedQueueCampaignHopperBlacks" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getQueueCampaignHopperBlacks">\n <tr md-row>\n <th md-column md-order-by="ContactId">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="phone">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="hopperBlack" md-select-id="id" ng-repeat="hopperBlack in vm_dc.queueCampaignHopperBlacks.rows">\n <td md-cell>\n {{hopperBlack.ContactId}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperBlack.phone}}\n </td>\n <td md-cell class="actions">\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.queueCampaignHopperBlacks.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPERBLACK_AVAILABLE">No hopperblack available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.queueCampaignHopperBlacks.count}}" md-on-paginate="vm_dc.getQueueCampaignHopperBlacks" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/queueCampaigns.html",'<div id="queueCampaigns" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-fire" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="MOTIONDIALER.QUEUECAMPAIGNS">QueueCampaigns</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="MOTIONDIALER.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedQueueCampaigns.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedQueueCampaigns =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="MOTIONDIALER.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-queueCampaigns-count">\n <span>{{vm.selectedQueueCampaigns.length}}</span>\n <span translate="MOTIONDIALER.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="MOTIONDIALER.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllQueueCampaigns()" translate="MOTIONDIALER.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectQueueCampaigns()" translate="MOTIONDIALER.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedQueueCampaigns" csv-label="true" filename="queueCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedQueueCampaigns($event)" aria-label="delete selected" translate translate-attr-label="MOTIONDIALER.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- QUEUECAMPAIGN TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedQueueCampaigns" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getQueueCampaigns">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'MOTIONDIALER.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'MOTIONDIALER.NAME\' | translate }}</th>\n <th md-column md-order-by="dialActive">{{ \'MOTIONDIALER.ACTIVE\' | translate }}</th>\n <th md-column md-order-by="TrunkId">{{ \'MOTIONDIALER.TRUNK\' | translate }}</th>\n <th md-column md-order-by="dialMethod">{{ \'MOTIONDIALER.METHOD\' | translate }}</th>\n <th md-column md-order-by="strategy">{{ \'MOTIONDIALER.STRATEGY\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.queueCampaigns.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="MOTIONDIALER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="queueCampaign" md-select-id="id" ng-repeat="queueCampaign in vm.queueCampaigns.rows">\n <td md-cell ng-if="queueCampaign.userpic"><img class="avatar" alt="{{queueCampaign.name}}" ng-src="api/users/{{queueCampaign.id}}/avatar" /></td>\n <td md-cell ng-if="!queueCampaign.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{queueCampaign.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(queueCampaign, ev) : vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="id ">{{queueCampaign.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(queueCampaign, ev) : vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="name ">{{queueCampaign.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(queueCampaign, ev) : vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="dialActive ">\n <md-icon md-colors="{color: {{queueCampaign.dialActive ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{queueCampaign.dialActive ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(queueCampaign, ev) : vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="TrunkId ">{{ (vm.trunks | filter : {\'id\':queueCampaign.TrunkId} : true)[0].name }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(queueCampaign, ev) : vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="dialMethod ">{{ vm.arraydialMethod[queueCampaign.dialMethod].option }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(queueCampaign, ev) : vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="strategy ">{{ vm.arraystrategy[queueCampaign.strategy].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(queueCampaign, $event )" translate="MOTIONDIALER.EDIT_QUEUECAMPAIGN">\n Edit QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.clonedialog(queueCampaign, $event )" translate="MOTIONDIALER.CLONE_QUEUECAMPAIGN">\n clone QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.listadddialog(queueCampaign, $event )" translate="MOTIONDIALER.LISTADD_QUEUECAMPAIGN">\n listadd QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.blacklistadddialog(queueCampaign, $event )" translate="MOTIONDIALER.BLACKLISTADD_QUEUECAMPAIGN">\n blacklistadd QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(queueCampaign, $event )" translate="MOTIONDIALER.TEAMADD_QUEUECAMPAIGN">\n teamadd QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(queueCampaign, $event )" translate="MOTIONDIALER.AGENTADD_QUEUECAMPAIGN">\n agentadd QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(queueCampaign, $event )" translate="MOTIONDIALER.DELETE_QUEUECAMPAIGN">\n Delete QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(queueCampaign, $event )" translate="MOTIONDIALER.GOTOREALTIME_QUEUECAMPAIGN">\n goToRealtime QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.queueCampaigns.count}}" md-on-paginate="vm.getQueueCampaigns" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / QUEUECAMPAIGN TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD QUEUECAMPAIGN BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-queueCampaign-button" ng-click="vm.createOrEditQueueCampaign($event)" aria-label="add queueCampaign" translate translate-attr-aria-label="MOTIONDIALER.ADD_QUEUECAMPAIGN">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD QUEUECAMPAIGN BUTTON --\x3e\n</div>'),e.put("app/main/apps/motiondialer/views/realtime/abandonedcalls/view.html",'<md-toolbar class="md-table-toolbar md-default table-header">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.ABANDONEDQUEUECALLS">ABANDONED QUEUE CALLS</span>\n <ms-search-bar on-search="vm.getAbandonedCalls()" query="vm.query" on-collapse="vm.query.filter = undefined" debounce="300">\n </ms-search-bar>\n <div flex></div>\n\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getAbandonedCalls()"></ms-quick-filter>\n\n <md-button class="md-icon-button" ng-click="vm.refresh && vm.refreshAbandonedCalls($event)" aria-label="Reload" translate translate-attr-label="DASHBOARDS.RELOAD">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip ng-if="vm.showTooltip" md-visible="vm.showTooltip">{{\'DASHBOARDS.CLICKRELOAD\' | translate}}\n </md-tooltip>\n </md-button>\n </div>\n</md-toolbar>\n<md-table-container>\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getAbandonedCalls">\n <tr md-row>\n <th md-column md-order-by="id">ID</th>\n <th md-column md-order-by="calleridname">{{\'DASHBOARDS.FULLNAME\' | translate}}</th>\n <th md-column md-order-by="calleridnum">{{\'DASHBOARDS.PHONE\' | translate}}</th>\n <th md-column md-order-by="queue">{{\'DASHBOARDS.QUEUE\' | translate}}</th>\n <th md-column md-order-by="queuecallerabandonAt">{{\'DASHBOARDS.ABANDONAT\' | translate}}</th>\n <th md-column md-order-by="queuecallerexitAt">{{\'DASHBOARDS.QUEUECALLEREXITAT\' | translate}}</th>\n <th md-column md-order-by="queuecallerexitreason">{{\'DASHBOARDS.QUEUECALLEREXITREASON\' | translate}}</th>\n <th md-column md-order-by="lastAssignedTo">{{\'DASHBOARDS.LASTASSIGNEDTO\' | translate}}</th>\n <th md-column md-order-by="disposition">{{\'DASHBOARDS.DISPOSITION\' | translate}}</th>\n <th md-column md-order-by="disposition">{{\'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}</th>\n <th md-column md-order-by="disposition">{{\'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.abandonedCalls.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="call in vm.abandonedCalls.rows">\n <td md-cell class="id">{{call.id}}</td>\n <td md-cell class="firstName" privacy ng-cloak>{{call.calleridname}}</td>\n <td md-cell class="list" privacy ng-cloak>{{call.calleridnum}}</td>\n <td md-cell class="list">{{vm.queuesMap[call.queue]}}</td>\n <td md-cell class="list">\n {{call.queuecallerabandonAt ? (call.queuecallerabandonAt | formatdate) : (call.queuecallerexitAt | formatdate) }}\n </td>\n <td md-cell class="list">{{call.queuecallerexitAt ? (call.queuecallerexitAt | formatdate) : undefined }}\n </td>\n <td md-cell class="list">{{call.queuecallerexitreason}}</td>\n <td md-cell class="list">{{call.lastAssignedTo}}</td>\n <td md-cell class="list">{{ call.disposition }}</td>\n <td md-cell class="list">{{ call.secondDisposition }}</td>\n <td md-cell class="list">{{ call.thirdDisposition }}</td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="2">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button ng-click="$mdMenu.open()" class="text-capitalize" translate="DASHBOARDS.ASSIGNTO">\n Assigned\n to</md-button>\n <md-menu-content>\n <md-menu-item ng-if="call.lastAssignedTo">\n <md-button ng-click="vm.assignTo(call)"><em translate="DASHBOARDS.NONE">Not Assigned</em>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.agents.rows.length" ng-repeat="agent in vm.agents.rows">\n <md-button ng-click="vm.assignTo(call,agent)">{{agent.name}}</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.dispose(call)" class="text-capitalize" translate="DASHBOARDS.DISPOSE">\n Dispose\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.abandonedCalls.count}}" md-on-paginate="vm.getAbandonedCalls" md-page-select></md-table-pagination>'),e.put("app/main/apps/motiondialer/views/realtime/agents/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.AGENTS">Agents</span>\n <div flex></div>\n <ms-search-bar on-search="vm.onInit()" query="vm.query" on-collapse="vm.query.filter = undefined; vm.onInit()" debounce="300"></ms-search-bar>\n <md-select ng-model="vm.query.globalStatusFilter" class="md-caption" ng-change="vm.query.pauseTypeFilter = \'\'; vm.onInit()">\n <md-option ng-value="\'\'">{{ \'MOTIONDIALER.ALL\' | translate }}</md-option>\n <md-option value="pause">{{ \'MOTIONDIALER.PAUSE\' | translate }}</md-option>\n <md-option value="*pause">{{ \'MOTIONDIALER.PARTIALPAUSE\' | translate }}</md-option>\n <md-option value="busy">{{ \'MOTIONDIALER.BUSY\' | translate }}</md-option>\n <md-option value="idle">{{ \'MOTIONDIALER.IDLE\' | translate }}</md-option>\n </md-select>\n <md-select ng-if="vm.isPause(vm.query.globalStatusFilter)" ng-model="vm.query.pauseTypeFilter" class="md-caption" ng-change="vm.onInit()">\n <md-option ng-value="\'\'">All</md-option>\n <md-option value="DEFAULT PAUSE">DEFAULT PAUSE</md-option>\n <md-option value="ACW">ACW</md-option>\n <md-option value="LOGININPAUSE">LOGININPAUSE</md-option>\n <md-option value="Auto-Pause">AUTOPAUSE</md-option>\n <md-option ng-value="pause.name" ng-repeat="pause in vm.pauses.rows">{{pause.name}}</md-option>\n </md-select>\n </div>\n</md-toolbar>\n\x3c!-- AGENT TABLE --\x3e\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.order" md-on-reorder="vm.onInit">\n <tr md-row border="1">\n <th class="bv text-center" colspan="5">{{ \'MOTIONDIALER.AGENT\' | translate }}</th>\n <th class="bv bl text-center" colspan="2">{{ \'VOICE.VOICE\' | translate }}</th>\n <th ng-if="vm.license.chat" class="bv bl text-center" colspan="2">{{ \'CHAT.CHAT\' | translate }}</th>\n <th ng-if="vm.license.mail" class="bv bl text-center" colspan="2">{{ \'MAIL.MAIL\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="bv bl text-center" colspan="2">{{ \'SMS.SMS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="bv bl text-center" colspan="2">\n {{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="bv bl text-center" colspan="2">\n {{ \'WHATSAPP.WHATSAPP\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n </tr>\n <tr md-row>\n <th class="bl" colspan="2" md-column md-order-by="fullname">\n {{ \'MOTIONDIALER.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">\n {{ \'MOTIONDIALER.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">\n {{ \'MOTIONDIALER.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">\n {{ \'MOTIONDIALER.PAUSE_TIME\' | translate }}</th>\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\n <th ng-if="vm.license.chat" class="bl text-center">{{ \'CHAT.STATUS\' | translate }}</th>\n <th ng-if="vm.license.chat" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'CHAT.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.mail" class="bl text-center">{{ \'MAIL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.mail" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'MAIL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.messaging" class="bl text-center">{{ \'SMS.STATUS\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'SMS.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.openchannel" class="bl text-center">{{ \'OPENCHANNEL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'OPENCHANNEL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.fax" class="bl text-center">{{ \'FAX.STATUS\' | translate }}</th>\n <th ng-if="vm.license.fax" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'FAX.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.whatsapp" class="bl text-center">{{ \'WHATSAPP.STATUS\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'WHATSAPP.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.order.length">\n <td md-cell colspan="19">\n <div layout="row" layout-align="center center">\n <span>{{ \'MOTIONDIALER.NO_AGENT_ONLINE\' | translate }}</span>\n </div>\n </td>\n </tr>\n <tr md-select="vm.agents[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td class="bt padding-5">\n <div layout="row" layout-align="start center">\n <img class="avatar" ng-src="{{vm.agents[value].userpic && \'api/users/\'+vm.agents[value].id+\'/avatar\' || \'assets/images/avatars/profile.png\'}}">\n <div layout="column">\n <span>{{vm.agents[value].fullname}}</span>\n <span>{{vm.agents[value].internal}}</span>\n </div>\n </div>\n </td>\n <td class="bt padding-5">\n <div layout="row" layout-align="start center" ng-if="vm.license.screenrecording && (vm.agents[value].phoneBarEnableScreenRecordingByAgent || vm.agents[value].phoneBarEnableAutomaticScreenRecording)">\n <div class="column" ng-if="vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: green; font-size: 36px;" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'MOTIONDIALER.TOOLTIP_SCREENRECORDING_ON\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n <div class="column" ng-if="!vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: gray" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'MOTIONDIALER.TOOLTIP_SCREENRECORDING_OFF\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n </div>\n </td>\n <td class="bt">\n'+" <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','busy':'indigo-100-bg','*pause':'amber-50-bg','pause':'amber-200-bg'}[vm.agents[value].globalStatus]\">{{\n vm.isPause(vm.agents[value].globalStatus) ? '' : vm.agents[value].globalStatus | uppercase }}\n {{ vm.isPause(vm.agents[value].globalStatus) ? (vm.isPartialPause(vm.agents[value].globalStatus) ?\n '*'+vm.agents[value].pauseType || 'DEFAULT PAUSE' : vm.agents[value].pauseType || 'DEFAULT PAUSE') :\n ''}}</span>\n </td>\n <td class=\"bt custom-column\">\n <timer start-time=\"vm.agents[value].lastLoginAt\"></timer>\n </td>\n <td class=\"bt custom-column\">\n <timer ng-if=\"vm.isPause(vm.agents[value].globalStatus) || vm.isPartialPause(vm.agents[value].globalStatus)\" start-time=\"vm.agents[value].lastPauseAt\"></timer>\n </td>\n <td class=\"bt bl\">\n <div layout=\"row\">\n <span ng-if=\"!vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','talking':'indigo-100-bg','ringing':'orange-400-bg','pause':'amber-200-bg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].voiceStatus | uppercase }}</span>\n <span ng-if=\"vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5 orange-400-bg\">ONHOLD</span>\n </div>\n </td>\n <td class=\"bt bl\">\n <div layout=\"column\">\n <span ng-if=\"vm.agents[value].queue\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].queue }}</span>\n <span ng-if=\"vm.agents[value].destconnectedlinenum\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\" privacy ng-cloak>{{\n vm.agents[value].destconnectedlinenum }}</span>\n <span ng-if=\"vm.agents[value].routealias\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].routealias }}</span>\n <span class=\"padding-5\" ng-if=\"vm.agents[value].queue || vm.agents[value].destconnectedlinenum\">\n <timer start-time=\"vm.agents[value].voiceStatusTime\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">\n </timer>\n </span>\n </div>\n </td>\n <td class=\"bt bl\" ng-if=\"vm.license.chat\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].chatStatus]\">{{\n vm.agents[value].chatStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td md-number class=\"bt text-center font-size-20\" ng-if=\"vm.license.chat\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].chatStatus]\">\n {{ vm.agents[value].chatCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.mail\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].mailStatus]\">{{\n vm.agents[value].mailStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.mail\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].mailStatus]\">\n {{ vm.agents[value].mailCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.messaging\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].smsStatus]\">{{\n vm.agents[value].smsStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.messaging\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].smsStatus]\">\n {{ vm.agents[value].smsCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.openchannel\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].openchannelStatus]\">{{\n vm.agents[value].openchannelStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.openchannel\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].openchannelStatus]\">\n {{ vm.agents[value].openchannelCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.fax\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].faxStatus]\">{{\n vm.agents[value].faxStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.fax\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].faxStatus]\">\n {{ vm.agents[value].faxCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.whatsapp\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].whatsappStatus]\">{{\n vm.agents[value].whatsappStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.whatsapp\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].whatsappStatus]\">\n {{ vm.agents[value].whatsappCurrentCapacity }}</td>\n <td class=\"bl bt padding-5 text-center\" ng-if=\"vm.crudPermissions.canEdit\">\n <md-menu>\n <md-button class=\"md-icon-button\" aria-label=\"More\" translate translate-attr-aria-label=\"STAFF.MORE\" ng-click=\"$mdOpenMenu($event)\">\n <md-icon md-font-icon=\"icon-dots-vertical\"></md-icon>\n </md-button>\n <md-menu-content width=\"4\">\n <md-menu-item>\n <md-button ng-click=\"vm.logout(vm.agents[value], $event)\" translate=\"MOTIONDIALER.LOGOUT\">\n Logout\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click=\"vm.queueAdd(vm.agents[value], $event)\" translate=\"MOTIONDIALER.AGENTADD_QUEUE\">\n Add Agent In Queue\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.license.screenrecording && vm.agents[value].phoneBarEnableScreenRecordingByAgent\">\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"MOTIONDIALER.SCREENRECORDING\">Screen Recording\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if=\"!vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], true)\"><em translate=\"MOTIONDIALER.START_SCREENRECORDING\">Start\n Screen Recording</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], false)\"><em translate=\"MOTIONDIALER.STOP_SCREENRECORDING\">Stop\n Screen Recording</em></md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item>\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"MOTIONDIALER.PAUSE\">Pause</md-button>\n <md-menu-content>\n <md-menu-item>\n <md-button ng-disabled=\" vm.agents[value].voicePause && 'DEFAULT PAUSE' === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value])\"><em translate=\"MOTIONDIALER.DEFAULT_PAUSE\">Default\n Pause</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.pauses.rows.length\" ng-repeat=\"pause in vm.pauses.rows\">\n <md-button ng-disabled=\"vm.agents[value].voicePause && pause.name === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value], pause.name)\">{{pause.name}}\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.isPause(vm.agents[value].globalStatus)\">\n <md-button ng-click=\"vm.unPause(vm.agents[value])\" translate=\"MOTIONDIALER.UNPAUSE\">\n Unpause\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label=\"{page: '{{'MOTIONDIALER.PAGE' | translate}}:', rowsPerPage: '{{'MOTIONDIALER.ROWSPERPAGE' | translate}}:', of: '{{'MOTIONDIALER.OF' | translate}}'}\" md-limit=\"vm.query.limit\" md-limit-options=\"[10, 15, 20, 50, 100, 250]\" md-page=\"vm.query.page\" md-total=\"{{vm.filteredAgents.length}}\" md-on-paginate=\"vm.onInit\" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e"),e.put("app/main/apps/motiondialer/views/realtime/ivr_campaigns/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.IVR_CAMPAIGNS">Ivr Campaigns</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getCampaigns()" query="vm.query" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n\n\x3c!-- QUEUE TABLE --\x3e\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getCampaigns">\n <tr md-row>\n <th md-column>{{\'MOTIONDIALER.NAME\' | translate}}</th>\n <th md-column>{{\'MOTIONDIALER.TOTAL\' | translate}}</th>\n <th md-column>{{\'MOTIONDIALER.TOTAL_MANAGED\' | translate}}</th>\n <th md-column>{{\'MOTIONDIALER.LIMITED\' | translate}}</th>\n <th md-column>{{\'MOTIONDIALER.ORIGINATED\' | translate}}</th>\n <th md-column>{{\'MOTIONDIALER.MESSAGE\' | translate}}</th>\n <th md-column>{{\'MOTIONDIALER.CALLYSQUAREPROJECT\' | translate}}</th>\n <th md-column>{{\'MOTIONDIALER.TRUNK\' | translate }}</th>\n <th md-column>{{\'MOTIONDIALER.ACTIVE\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.campaigns">\n <td md-cell colspan="8">\n <div layout="row" layout-align="center center">\n <span translate="MOTIONDIALER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(id, campaign) in vm.campaigns">\n <td md-cell>\n <span>{{campaign.name}}</span>\n </td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{campaign.ivrTotalCallsDays || 0}}</span>\n </td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{campaign.ivrAnswerCallsDay || 0}} ({{(campaign.ivrTotalCallsDays) ? (campaign.ivrAnswerCallsDay || 0) * 100/(campaign.ivrTotalCallsDays ) : 0 | number:1}}%)</span>\n </td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{campaign.limitCalls || 0}}</span>\n </td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{campaign.originated || 0}}</span>\n </td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{campaign.message ? (\'MOTIONDIALER.\'+campaign.message | translate) : \'--\'}}</span>\n </td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{campaign.dialQueueProject || \'--\'}}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{campaign.Trunk ? campaign.Trunk.name : \'--\'}}</span>\n </td>\n <td md-cell>\n <md-icon md-colors="{color: {{campaign.active ? \'\\\'green\\\'\' : \'\\\'red\\\'\'}}}" md-font-icon="{{campaign.active ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.createOrEditIvrCampaign($event, campaign)" translate="MOTIONDIALER.EDIT_CAMPAIGN">\n Edit Campaign\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getCampaigns" md-page-select></md-table-pagination>\n\x3c!-- / QUEUE TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/motiondialer/views/realtime/queue_calls/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.QUEUE_CALLS">Queue Calls</span>\n </div>\n</md-toolbar>\n\x3c!-- QUEUES TABLE --\x3e\n<md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column width="30px"></th>\n <th md-column>{{ \'MOTIONDIALER.DID\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.QUEUE\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.CALLER\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.AGENT\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.DURATION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.getSize(vm.rpcVoiceQueuesChannels)">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="MOTIONDIALER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, channel) in vm.rpcVoiceQueuesChannels | limitObjectFromTo: vm.queryChannels.limit:(vm.queryChannels.page - 1) * vm.queryChannels.limit">\n <td md-cell>\n <md-icon ng-if="channel.queuecallerleaveAt" md-font-icon="icon-phone-in-talk green-fg"></md-icon>\n <md-icon ng-if="!channel.queuecallerleaveAt" md-font-icon="icon-phone-incoming md-accent"></md-icon>\n </td>\n <td md-cell>{{channel.exten}}</td>\n <td md-cell>{{channel.queue}}</td>\n <td md-cell privacy ng-cloak>{{channel.calleridnum}}</td>\n <td md-cell>\n <span ng-if="channel.queuecallerleaveAt">\n {{channel.connectedlinename}}, {{channel.connectedlinenum}}\n <span class="text-boxed">\n <timer start-time="channel.queuecallerleaveAt"></timer>\n </span>\n </span>\n <span ng-if="!channel.queuecallerleaveAt" class="text-boxed">\n {{ \'MOTIONDIALER.WAITING_FOR_AGENT\' | translate }}\n <timer start-time="channel.queuecallerjoinAt"></timer>\n </span>\n </td>\n <td md-cell>\n <span class="text-boxed">\n <timer start-time="channel.queuecallerjoinAt"></timer>\n </span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="vm.hangup(channel.uniqueid)" translate="MOTIONDIALER.HANGUP">\n Hangup\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.redirectToNumber($event, channel.uniqueid)" translate="MOTIONDIALER.REDIRECT_TO_NUMBER">\n Number\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-menu class="no-margin">\n <md-button ng-mouseenter="vm.getAvailableAgents()" translate="MOTIONDIALER.REDIRECT_TO_AGENT">\n Redirect to Agent</md-button>\n <md-menu-content>\n <md-menu-item ng-if="!vm.availableAgents">\n <md-progress-circular class="md-accent auto-margin" md-diameter="32" md-mode="indeterminate">\n </md-progress-circular>\n </md-menu-item>\n <md-menu-item ng-if="vm.availableAgents.length > 0" ng-repeat="agent in vm.availableAgents">\n <md-button ng-click="vm.redirectToAgent(channel.uniqueid, agent.name, agent.context)">\n {{agent.name}}</md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.availableAgents.length === 0">\n <span>No agents available</span>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n<md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm.queryChannels.limit" md-page="vm.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm.getSize(vm.rpcVoiceQueuesChannels)}}" md-page-select></md-table-pagination>\n\x3c!-- / QUEUES TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/motiondialer/views/realtime/queue_params/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.QUEUE_PARAMETERS">Params</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getQueues()" query="vm.query" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n\n\x3c!-- QUEUE TABLE --\x3e\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getQueues">\n <tr md-row>\n <th md-column>{{\'\n MOTIONDIALER.NAME\' | translate}}</th>\n <th md-column>{{\'\n MOTIONDIALER.TOTAL\' | translate}}</th>\n <th md-column>{{\'\n MOTIONDIALER.TOTAL_OFFERED\' | translate}}</th>\n <th md-column>{{\'\n MOTIONDIALER.MANAGED\' | translate}}</th>\n <th md-column>{{\'\n MOTIONDIALER.ABANDONED\' | translate}}</th>\n <th md-column>{{\'\n MOTIONDIALER.DROPPED\' | translate}}</th>\n <th md-column>{{\'\n MOTIONDIALER.AVG_HOLD_TIME\' | translate}}</th>\n <th md-column>{{\'\n MOTIONDIALER.AVG_DURATION\' | translate}}</th>\n <th md-column>{{\'\n MOTIONDIALER.AVG_BILLABLE\' | translate}}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.queues">\n <td md-cell colspan="8">\n <div layout="row" layout-align="center center">\n <span translate="MOTIONDIALER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(id, queue) in vm.queues">\n <td md-cell>\n <span>{{queue.name}}</span>\n </td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{(queue.answered + queue.outboundNoAnswerCallsDay + queue.outboundBusyCallsDay + queue.outboundCongestionCallsDay + queue.outboundNoSuchCallsDay + queue.outboundUnknownCallsDay + queue.outboundDropCallsDayTimeout + queue.outboundDropCallsDayCallersExit + queue.outboundBlacklistCallsDay + queue.outboundOriginateFailureCallsDay + queue.outboundAnswerAgiCallsDay + queue.outboundReCallsDay + queue.outboundRejectCallsDay )|| 0}}</span>\n </td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{queue.total || 0}}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{queue.answered || 0}} ({{(queue.answered) ? (100 - (((queue.outboundDropCallsDayTimeout || 0) * 100/(queue.total)) | number:1 ) - (((queue.outboundDropCallsDayCallersExit || 0) * 100/(queue.total )) | number:1 ) ) : 0 | number:1}}%)</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{queue.outboundDropCallsDayCallersExit || 0}} ({{(queue.outboundDropCallsDayCallersExit) ? (queue.outboundDropCallsDayCallersExit || 0) * 100/(queue.total ) : 0 | number:1}}%)</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{queue.outboundDropCallsDayTimeout || 0}} ({{(queue.outboundDropCallsDayTimeout) ? (queue.outboundDropCallsDayTimeout || 0) * 100/(queue.total) : 0 | number:1}}%)</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{queue.total ? (queue.sumHoldTime / queue.total) : 0 | number: 0 | secToTime | date:\'HH:mm:ss\'}}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{queue.total ? (queue.sumDuration / queue.total) : 0 | number: 0 | secToTime | date:\'HH:mm:ss\'}}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{queue.answered ? ((queue.sumBillable || 0) / queue.answered) : 0 | number: 0 | secToTime | date:\'HH:mm:ss\'}}</span>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>\n\x3c!-- / QUEUE TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/motiondialer/views/realtime/queues/predictive/dialog.html",'<md-dialog class="predictive-dialog" aria-label="New predictive">\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.queueCampaign.name }} Info</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content class="text-center" ms-scroll>\n <ds-widget-clock data-show-digital></ds-widget-clock>\n <div ng-if="!vm.queueCampaign.startProgressive && !vm.queueCampaign.startPredictive">\n <div class="md-title"><span translate="MOTIONDIALER.PREDICTIVE_IS_NOT_RUNNING">Predictive is not running</span></div>\n </div>\n\n <div ng-if="vm.queueCampaign.startProgressive && !vm.queueCampaign.startPredictive" class="m-10">\n <div layout="row">\n <div flex="" class="column">\n <div class="md-headline"><span translate="MOTIONDIALER.DATA_COLLECTION_IN_PROGRESSIVE">Data collection in progressive</span></div>\n <div class="md-subhead">({{vm.queueCampaign.dialPredictiveInterval}} minutes)</div>\n </div>\n </div>\n\n <div layout="row">\n <div flex="" class="column">\n <div class="md-subhead"><span translate="MOTIONDIALER.STARTTIME">Start Time</span></div>\n <div class="md-headline">{{ vm.setFormatTime(vm.queueCampaign.startProgressive) }}</div>\n </div>\n <div flex="" class="column">\n <div class="md-subhead"><span translate="MOTIONDIALER.ENDTIME">End Time</span></div>\n <div class="md-headline">\n {{ vm.addMinutes(vm.queueCampaign.startProgressive, vm.queueCampaign.dialPredictiveInterval) }}\n </div>\n </div>\n </div>\n <div>\n <span class="text-boxed blue-bg white-fg">\n {{vm.queueCampaign.message ? (\'MOTIONDIALER.\' + vm.queueCampaign.message | translate) : \'--\'}}\n </span>\n </div>\n </div>\n <div ng-if="vm.queueCampaign.startPredictive" class="m-10">\n <div layout="row">\n <div flex="" class="column">\n <div class="md-headline"><span translate="MOTIONDIALER.PREDICTIVE_IS_RUNNING">Predictive is runnning</span></div>\n <div class="md-subhead">({{vm.queueCampaign.dialPredictiveInterval}} minutes)</div>\n </div>\n </div>\n\n <div layout="row">\n <div flex="" class="column">\n <div class="md-subhead"><span translate="MOTIONDIALER.STARTTIME">Start Time</span></div>\n <div class="md-headline">{{ vm.setFormatTime(vm.queueCampaign.startPredictive) }}</div>\n </div>\n <div flex="" class="column">\n <div class="md-subhead"><span translate="MOTIONDIALER.ENDTIME">End Time</span></div>\n <div class="md-headline">\n {{ vm.addMinutes(vm.queueCampaign.startPredictive, vm.queueCampaign.dialPredictiveInterval) }}\n </div>\n </div>\n </div>\n <div>\n <span class="text-boxed blue-bg white-fg">\n {{vm.queueCampaign.message ? (\'MOTIONDIALER.\' + vm.queueCampaign.message | translate) : \'--\'}}\n </span>\n </div>\n <div class="row">\n <md-card>\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead">Predictive - {{ \'MOTIONDIALER.PREVIOUS_INTERVAL\' | translate }}</span>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table>\n <tbody md-body>\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.TOTAL_CALLS">Total Calls</span></td>\n <td md-cell>{{ vm.queueCampaign.predictiveIntervalTotalCalls }}</td>\n </tr>\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.ANSWERED_CALLS">Total Calls</span></td>\n <td md-cell>{{ vm.queueCampaign.predictiveIntervalAnsweredCalls }}</td>\n </tr>\n \x3c!-- Temporaneamente non mostrate perchè contengono anche i dati dell\'intervallo corrente --\x3e\n \x3c!-- <tr md-row>\n <td md-cell>Dropped Calls Timeout</td>\n <td md-cell>{{ vm.queueCampaign.predictiveIntervalDroppedCallsTimeout }}</td>\n </tr>\n <tr md-row>\n <td md-cell>Dropped Calls Caller Exit</td>\n <td md-cell>{{ vm.queueCampaign.predictiveIntervalDroppedCallsCallersExit }}\n </td>\n </tr> --\x3e\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.AVG_HOLD_TIME">AVG Hold Time</span></td>\n <td md-cell>~ {{ vm.queueCampaign.predictiveIntervalAvgHoldtime | number:0 }}s</td>\n </tr>\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.AVG_TALK_TIME">AVG Talk Time</span></td>\n <td md-cell>~ {{ vm.queueCampaign.predictiveIntervalAvgTalktime | number:0 }}s</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-card>\n <md-card>\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead">ErlangB - {{ \'MOTIONDIALER.CURRENT_INTERVAL\' | translate }}</span>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table>\n <tbody md-body>\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.SCHEDULED_CALLS">Scheduled Calls</span></td>\n <td md-cell>{{ vm.queueCampaign.erlangCalls }}</td>\n </tr>\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.ONE_CALL_EVERY">One call every</span></td>\n <td md-cell>~ {{ vm.queueCampaign.erlangCallToSecond | number:0 }}s</td>\n </tr>\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.DROPRATE">Drop Rate</span></td>\n <td md-cell>{{ vm.queueCampaign.erlangAbandonmentRate * 100 | number:2 }}%</td>\n </tr>\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.AGENTBUSYFACTOR">Agent Busy Factor</span></td>\n <td md-cell>{{ vm.queueCampaign.erlangBusyFactor * 100 | number:2 }}%</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-card>\n </div>\n </div>\n\n\n </md-dialog-content>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/realtime/queues/view.html",'<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.QUEUES">Queues</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getQueues">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'MOTIONDIALER.NAME\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.LOGGED_IN\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.PAUSED\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.TALKING\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.BUSY\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.WAITING\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.ORIGINATED_TEXT\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.MESSAGE\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.METHOD\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.TRUNK\' | translate }}</th>\n <th md-column md-order-by="dialActive">{{ \'MOTIONDIALER.ACTIVE\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.queues.count > 0">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span translate="MOTIONDIALER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="queue" md-select-id="id" ng-repeat="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedInDb }} ({{ queue.loggedIn }})</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.talking + queue.pTalking}}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedInDb - queue.available - queue.paused - queue.talking - queue.waiting\n }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.originated }}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{ queue.message ? (\'MOTIONDIALER.\'+queue.message | translate) : \'--\'}}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.dialMethod || 0 }}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{ queue.Trunk ? queue.Trunk.name : \'--\' }}</span>\n </td>\n <td md-cell>\n <md-icon md-colors="{color: {{queue.dialActive ? \'\\\'green\\\'\' : \'\\\'red\\\'\'}}}" md-font-icon="{{queue.dialActive ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.editQueue($event, queue)" translate="MOTIONDIALER.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="queue.dialMethod == \'predictive\'">\n <md-button ng-click="vm.showPredictiveQueueCampaignInfo($event, queue)" translate="MOTIONDIALER.SHOW_PREDICTIVE_QUEUE_CAMPAIGN_INFO">\n Show Predictive Info\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.addAgent($event, queue)" translate="MOTIONDIALER.AGENTSADD_QUEUE">\n Add Agents to queue\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),e.put("app/main/apps/motiondialer/views/realtime/realtime.html",'<div id="realtime" class="page-layout simple tabbed" layout="column" ng-cloak>\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.AGENTS">Agents</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.QUEUES">Queues</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.QUEUE_CALLS">Queue Calls</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.ABANDONEDCALLS">Abandoned Queue Calls</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.QUEUE_PARAMS">Queue Parameters</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.IVR_CAMPAIGNS">Ivr Campaigns</span>\n </md-tab-label>\n </md-tab>\n </md-tabs>\n\n <md-card ui-view></md-card>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/create/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.openchannelAccount.name" ng-required="true" autofocus ng-disabled="!vm.newOpenchannelAccount">\n\n <div ng-messages="openchannelAccountForm[\'name\'].$error" ng-show="openchannelAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.KEY">key</label>\n <input type="text" name="key" ng-model="vm.openchannelAccount.key" md-maxlength="5" ng-required="true">\n\n <div ng-messages="openchannelAccountForm[\'key\'].$error" ng-show="openchannelAccountForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="OPENCHANNEL.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.REPLYURI">replyUri</label>\n <input type="url" name="replyUri" ng-model="vm.openchannelAccount.replyUri">\n\n <div class="hint"><span translate="OPENCHANNEL.HELP.REPLYURI"></span></div>\n <div ng-messages="openchannelAccountForm[\'replyUri\'].$error" ng-show="openchannelAccountForm[\'replyUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.REPLYURI_REQUIRED">replyUri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="OPENCHANNEL.ERRORS.REPLYURI_MUST_VALID_URL">replyUri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.LIST">List</label>\n <md-select name="ListId" ng-model="vm.openchannelAccount.ListId" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="OPENCHANNEL.HELP.LIST"></span></div>\n <div ng-messages="openchannelAccountForm[\'ListId\'].$error" ng-show="openchannelAccountForm[\'ListId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.openchannelAccount.description">\n\n <div ng-messages="openchannelAccountForm[\'description\'].$error" ng-show="openchannelAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newOpenchannelAccount" ng-click="vm.saveOpenchannelAccount()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountForm.$invalid || openchannelAccountForm.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newOpenchannelAccount" ng-click="vm.addNewOpenchannelAccount()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountForm.$invalid" aria-label="ADD" translate="OPENCHANNEL.ADD_OPENCHANNELACCOUNT" translate-attr-aria-label="OPENCHANNEL.ADD_OPENCHANNELACCOUNT">\n ADD OPENCHANNELACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newOpenchannelAccount" ng-click="vm.deleteOpenchannelAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="OPENCHANNEL.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="OPENCHANNEL.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/agentadd/agentadd.html",'<md-dialog class="openchannelAccount-dialog" aria-label="openchannelAccount" ng-init="vm.onInit()">\n <form name="openchannelAccountForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="OPENCHANNEL.AGENTADD_OPENCHANNELACCOUNT">Add Agent to openchannelAccount</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/agent/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.AGENT">Agent</label>\n <md-select name="agent" ng-model="vm.agent.agent" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="agent.name" ng-repeat="agent in vm.agents" ng-disabled="agent.canSelect === false">{{ agent.name }}</md-option>\n </md-select>\n <div ng-messages="openchannelAccountFormApp[\'agent\'].$error" ng-show="openchannelAccountFormApp[\'agent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.agent.timeout" min="0" max="2147483" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'timeout\'].$error" ng-show="openchannelAccountFormApp[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="OPENCHANNEL.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/amazonlex/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.ACCESSKEYID">accesskeyid</label>\n <input type="text" name="accesskeyid" ng-model="vm.amazonlex.accesskeyid" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'accesskeyid\'].$error" ng-show="openchannelAccountFormApp[\'accesskeyid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.ACCESSKEYID_REQUIRED">accesskeyid field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.SECRETACCESSKEY">secretaccesskey</label>\n <input type="text" name="secretaccesskey" ng-model="vm.amazonlex.secretaccesskey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'secretaccesskey\'].$error" ng-show="openchannelAccountFormApp[\'secretaccesskey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.SECRETACCESSKEY_REQUIRED">secretaccesskey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.LEXREGION">lexregion</label>\n <md-select name="lexregion" ng-model="vm.amazonlex.lexregion" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'us-east-1\'">US East (N. Virginia)</md-option>\n <md-option ng-value="\'us-west-2\'">US West (Oregon)</md-option>\n <md-option ng-value="\'eu-west-1\'">EU (Ireland)</md-option>\n <md-option ng-value="\'ap-southeast-2\'">Asia Pacific (Sydney)</md-option>\n </md-select>\n <div ng-messages="openchannelAccountFormApp[\'lexregion\'].$error" ng-show="openchannelAccountFormApp[\'lexregion\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.LEXREGION_REQUIRED">lexregion field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.BOTNAME">botname</label>\n <input type="text" name="botname" ng-model="vm.amazonlex.botname" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'botname\'].$error" ng-show="openchannelAccountFormApp[\'botname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.BOTNAME_REQUIRED">botname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.amazonlex.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="OPENCHANNEL.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="openchannelAccountFormApp[\'welcomemessage\'].$error" ng-show="openchannelAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.WELCOMEMESSAGE_REQUIRED">welcomemessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="OPENCHANNEL.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/autoreply/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.TIMES">times</label>\n <md-select name="times" ng-model="vm.autoreply.times" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="2">One Time</md-option>\n <md-option ng-value="0">Always</md-option>\n <md-option ng-value="1">First Message</md-option>\n </md-select>\n <div ng-messages="openchannelAccountFormApp[\'times\'].$error" ng-show="openchannelAccountFormApp[\'times\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.TIMES_REQUIRED">times field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.TEXT">Text</label>\n <textarea name="text" ng-model="vm.autoreply.text" required></textarea>\n\n <div ng-messages="openchannelAccountFormApp[\'text\'].$error" ng-show="openchannelAccountFormApp[\'text\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.TEXT_REQUIRED">Text field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/close/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.DISPOSITION">Disposition</label>\n <input type="text" name="disposition" ng-model="vm.close.disposition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'disposition\'].$error" ng-show="openchannelAccountFormApp[\'disposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.DISPOSITION_REQUIRED">Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/dialogflow/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.dialogflow.key" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'key\'].$error" ng-show="openchannelAccountFormApp[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.KEY_REQUIRED">Key field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflow.language" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'da\'">Danish</md-option>\n <md-option ng-value="\'en\'">English</md-option>\n <md-option ng-value="\'de\'">German</md-option>\n <md-option ng-value="\'it\'">Italian</md-option>\n <md-option ng-value="\'es\'">Spanish</md-option>\n <md-option ng-value="\'fr\'">French</md-option>\n <md-option ng-value="\'id\'">Indonesian</md-option>\n <md-option ng-value="\'ja\'">Japanese</md-option>\n <md-option ng-value="\'ko\'">Korean (South Korea)</md-option>\n <md-option ng-value="\'nl\'">Dutch</md-option>\n <md-option ng-value="\'no\'">Norwegian</md-option>\n <md-option ng-value="\'pt\'">Portuguese (European)</md-option>\n <md-option ng-value="\'pt-br\'">Portuguese (Nrazilian)</md-option>\n <md-option ng-value="\'ru\'">Russian</md-option>\n <md-option ng-value="\'sv\'">Swedish</md-option>\n <md-option ng-value="\'th\'">Thai</md-option>\n <md-option ng-value="\'uk\'">Ukrainian</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese (Simplified)</md-option>\n <md-option ng-value="\'zh-HK\'">Chinese (Hong Kong)</md-option>\n <md-option ng-value="\'zh-TW\'">Chinese (Traditional)</md-option>\n </md-select>\n <div ng-messages="openchannelAccountFormApp[\'language\'].$error" ng-show="openchannelAccountFormApp[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.LANGUAGE_REQUIRED">language field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.dialogflow.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="OPENCHANNEL.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="openchannelAccountFormApp[\'welcomemessage\'].$error" ng-show="openchannelAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.WELCOMEMESSAGE_REQUIRED">welcomemessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="OPENCHANNEL.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/dialogflowv2/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.PROJECTID">ProjectID</label>\n <input type="text" name="projectId" ng-model="vm.dialogflowv2.projectId" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'projectId\'].$error" ng-show="openchannelAccountFormApp[\'projectId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.PROJECTID_REQUIRED">ProjectID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.CLIENTEMAIL">ClientEmail</label>\n <input type="text" name="clientEmail" ng-model="vm.dialogflowv2.clientEmail" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'clientEmail\'].$error" ng-show="openchannelAccountFormApp[\'clientEmail\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.CLIENTEMAIL_REQUIRED">ClientEmail field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.PRIVATEKEY">PrivateKey</label>\n <textarea name="privateKey" ng-model="vm.dialogflowv2.privateKey" required></textarea>\n\n <div ng-messages="openchannelAccountFormApp[\'privateKey\'].$error" ng-show="openchannelAccountFormApp[\'privateKey\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.PRIVATEKEY_REQUIRED">PrivateKey field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflowv2.language" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'zh-HK\'">Chinese (Cantonese)</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese (Simplified)</md-option>\n <md-option ng-value="\'zh-TW\'">Chinese (Traditional)</md-option>\n <md-option ng-value="\'da\'">Danish</md-option>\n <md-option ng-value="\'nl\'">Dutch</md-option>\n <md-option ng-value="\'en\'">English</md-option>\n <md-option ng-value="\'en-AU\'">English (Australia)</md-option>\n <md-option ng-value="\'en-CA\'">English (Canada)</md-option>\n <md-option ng-value="\'en-GB\'">English (Great Britain)</md-option>\n <md-option ng-value="\'en-IN\'">English (India)</md-option>\n <md-option ng-value="\'en-US\'">English (US)</md-option>\n <md-option ng-value="\'fr\'">French</md-option>\n <md-option ng-value="\'fr-CA\'">French (Canada)</md-option>\n <md-option ng-value="\'fr-FR\'">\'France (France)</md-option>\n <md-option ng-value="\'de\'">German</md-option>\n <md-option ng-value="\'hi\'">Hindi</md-option>\n <md-option ng-value="\'id\'">Indonesian</md-option>\n <md-option ng-value="\'it\'">Italian</md-option>\n <md-option ng-value="\'ja\'">Japanese</md-option>\n <md-option ng-value="\'ko\'">Korean</md-option>\n <md-option ng-value="\'no\'">Norwegian</md-option>\n <md-option ng-value="\'pl\'">Polish</md-option>\n <md-option ng-value="\'pt-BR\'">Portuguese (Brazil)</md-option>\n <md-option ng-value="\'pt-PT\'">Portuguese (Portugal)</md-option>\n <md-option ng-value="\'ru\'">Russian</md-option>\n <md-option ng-value="\'es\'">Spanish</md-option>\n <md-option ng-value="\'es-419\'">Spanish (Latin America)</md-option>\n <md-option ng-value="\'es-ES\'">Spanish (Spain)</md-option>\n <md-option ng-value="\'sw\'">Swedish</md-option>\n <md-option ng-value="\'th\'">Thai</md-option>\n <md-option ng-value="\'tr\'">Turkish</md-option>\n <md-option ng-value="\'uk\'">Ukrainian</md-option>\n </md-select>\n <div ng-messages="openchannelAccountFormApp[\'language\'].$error" ng-show="openchannelAccountFormApp[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.LANGUAGE_REQUIRED">language field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.dialogflowv2.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="OPENCHANNEL.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="openchannelAccountFormApp[\'welcomemessage\'].$error" ng-show="openchannelAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n\n <div ng-message="md-maxlength">\n <span translate="OPENCHANNEL.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/gotoif/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.CONDITION">Condition</label>\n <input type="text" name="condition" ng-model="vm.gotoif.condition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'condition\'].$error" ng-show="openchannelAccountFormApp[\'condition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.CONDITION_REQUIRED">Condition field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.TRUEPRIORITY">truepriority</label>\n <input type="number" name="truepriority" ng-model="vm.gotoif.truepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'truepriority\'].$error" ng-show="openchannelAccountFormApp[\'truepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.TRUEPRIORITY_REQUIRED">truepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">truepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.FALSEPRIORITY">falsepriority</label>\n <input type="number" name="falsepriority" ng-model="vm.gotoif.falsepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'falsepriority\'].$error" ng-show="openchannelAccountFormApp[\'falsepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.FALSEPRIORITY_REQUIRED">falsepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">falsepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/gotop/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.PRIORITY">Priority</label>\n <input type="number" name="priority" ng-model="vm.gotop.priority" min="0" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'priority\'].$error" ng-show="openchannelAccountFormApp[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Priority must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/interval/dialog.html",'<md-dialog class="interval-dialog" aria-label="New Interval">\n <form name="intervalForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select ng-model="vm.type" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="type" ng-repeat=\'type in vm.types\'>{{ type | ucfirst }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.type === \'list\'">\n <label translate="TOOLS.INTERVALS">Intervals</label>\n <md-select ng-model="vm.interval.IntervalId" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals">{{ interval.name }}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!-- TIMERANGE START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.TIME_RANGE">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <div class="md-block" flex>\n <mdp-time-picker name="timeRangeFrom" mdp-placeholder="FROM" ng-model="vm.timeRangeFrom" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <div ng-messages="intervalForm.timeRangeFrom.$error" ng-show="intervalForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_FROM_INVALID">Time Range From field is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n <div class="md-block" flex ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_INVALID">Time Range To field is invalid</span>\n </div>\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </div>\n \x3c!-- TIMERANGE END --\x3e\n\n \x3c!-- DAYSOFWEEK START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.WEEK_DAYS">Week Days</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.dayOfWeekFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container flex class="md-block" ng-if="vm.dayOfWeekFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="dayOfWeekTo" ng-model="vm.dayOfWeekTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- DAYSOFWEEK END --\x3e\n\n \x3c!-- MONTHDAY START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTH_DAYS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthDayFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthDayFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthDayTo" ng-model="vm.monthDayTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTHDAY END --\x3e\n\n \x3c!-- MONTH START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTHS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n </md-select>\n\n </md-input-container>\n\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthTo" ng-model="vm.monthTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTH END --\x3e\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="!vm.newInterval && vm.crudPermissions.canEdit" ng-click="vm.saveInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid || intervalForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.newInterval && vm.crudPermissions.canEdit" ng-click="vm.addNewInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_INTERVAL" translate-attr-aria-label="TOOLS.ADD_INTERVAL">\n ADD INTERVAL\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/noop/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.VALUE">Value</label>\n <input type="text" name="value" ng-model="vm.noop.value" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'value\'].$error" ng-show="openchannelAccountFormApp[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/queue/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.QUEUE">Queue</label>\n <md-select name="queue" ng-model="vm.queue.queue" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="queue.name" ng-repeat="queue in vm.queues" ng-disabled="queue.canSelect === false">{{ queue.name }}</md-option>\n </md-select>\n <div ng-messages="openchannelAccountFormApp[\'queue\'].$error" ng-show="openchannelAccountFormApp[\'queue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.queue.timeout" min="0" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'timeout\'].$error" ng-show="openchannelAccountFormApp[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="OPENCHANNEL.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/system/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.COMMAND">Command</label>\n <input type="text" name="command" ng-model="vm.system.command" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'command\'].$error" ng-show="openchannelAccountFormApp[\'command\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.COMMAND_REQUIRED">Command field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.VARIABLE">Variable</label>\n <md-select name="variable" ng-model="vm.system.variable" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables" ng-disabled="variable.canSelect === false">{{ variable.name }}</md-option>\n </md-select>\n <div ng-messages="openchannelAccountFormApp[\'variable\'].$error" ng-show="openchannelAccountFormApp[\'variable\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.VARIABLE_REQUIRED">Variable field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/tag/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.TAG">Tag</label>\n <md-select name="tag" ng-model="vm.tag.tag" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags" ng-disabled="tag.canSelect === false">{{ tag.name }}</md-option>\n </md-select>\n <div ng-messages="openchannelAccountFormApp[\'tag\'].$error" ng-show="openchannelAccountFormApp[\'tag\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.TAG_REQUIRED">Tag field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/openchannelCannedAnswers/dialog.html",'<md-dialog class="openchannelCannedAnswer-dialog" aria-label="New OpenchannelCannedAnswer">\n <form name="openchannelCannedAnswerForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.KEY">Key</label>\n <input type="" name="key" ng-model="vm.openchannelCannedAnswer.key" md-maxlength="255" ng-required="true" autofocus>\n\n <div ng-messages="openchannelCannedAnswerForm[\'key\'].$error" ng-show="openchannelCannedAnswerForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.KEY_REQUIRED">Key field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.VALUE">Value</label>\n <textarea name="value" ng-model="vm.openchannelCannedAnswer.value" required></textarea>\n\n <div ng-messages="openchannelCannedAnswerForm[\'value\'].$error" ng-show="openchannelCannedAnswerForm[\'value\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.openchannelCannedAnswer.description">\n\n <div ng-messages="openchannelCannedAnswerForm[\'description\'].$error" ng-show="openchannelCannedAnswerForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newOpenchannelCannedAnswer" ng-click="vm.saveOpenchannelCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="openchannelCannedAnswerForm.$invalid || openchannelCannedAnswerForm.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newOpenchannelCannedAnswer" ng-click="vm.addNewOpenchannelCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="openchannelCannedAnswerForm.$invalid" aria-label="ADD" translate="OPENCHANNEL.ADD_OPENCHANNELCANNEDANSWER" translate-attr-aria-label="OPENCHANNEL.ADD_OPENCHANNELCANNEDANSWER">\n ADD OPENCHANNELCANNEDANSWER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newOpenchannelCannedAnswer" ng-click="vm.deleteOpenchannelCannedAnswer($event)" aria-label="DELETE" translate translate-attr-aria-label="OPENCHANNEL.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="OPENCHANNEL.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/view.html",'<div id="openchannel-openchannelAccount" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-openchannelAccounts-button md-icon-button" aria-label="Go to openchannelAccounts" ng-click="vm.gotoOpenchannelAccounts()" translate translate-attr-aria-label="OPENCHANNEL.GO_TO_OPENCHANNELACCOUNTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="openchannelAccount-image" hide-xs>\n <img ng-src="assets/images/business/openchannelAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.openchannelAccount.id}}\n <span ng-if="vm.openchannelAccount.name">{{vm.openchannelAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="OPENCHANNEL.CREATED_AT"></span> <span>{{vm.openchannelAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.openchannelAccount, $event)" class="md-fab md-warn md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="OPENCHANNEL.AGENTADD_OPENCHANNELACCOUNT"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveOpenchannelAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (notificationForm.$invalid) || (transferForm.$invalid) || (proxyForm.$invalid) || (dispositionForm.$invalid) || (openchannelDispositionsForm.$invalid) || (openchannelCannedAnswersForm.$invalid) || (actionsForm.$invalid) || (interactionsForm.$invalid)" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="OPENCHANNEL.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="openchannelAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="OPENCHANNEL.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.openchannelAccount.name" ng-required="true" autofocus disabled>\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.KEY">key</label>\n <input type="text" name="key" ng-model="vm.openchannelAccount.key" md-maxlength="5" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'key\'].$error" ng-show="generalForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="OPENCHANNEL.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.REPLYURI">replyUri</label>\n <input type="url" name="replyUri" ng-model="vm.openchannelAccount.replyUri" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="OPENCHANNEL.HELP.REPLYURI"></span></div>\n <div ng-messages="generalForm[\'replyUri\'].$error" ng-show="generalForm[\'replyUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.REPLYURI_REQUIRED">replyUri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="OPENCHANNEL.ERRORS.REPLYURI_MUST_VALID_URL">replyUri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.LIST">List</label>\n <md-select name="ListId" ng-model="vm.openchannelAccount.ListId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="OPENCHANNEL.HELP.LIST"></span></div>\n <div ng-messages="generalForm[\'ListId\'].$error" ng-show="generalForm[\'ListId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.WAITFORTHEASSIGNEDAGENT">WaitForTheAssignedAgent</label>\n <input type="number" name="waitForTheAssignedAgent" ng-model="vm.openchannelAccount.waitForTheAssignedAgent" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'waitForTheAssignedAgent\'].$error" ng-show="generalForm[\'waitForTheAssignedAgent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.WAITFORTHEASSIGNEDAGENT_REQUIRED">WaitForTheAssignedAgent field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="OPENCHANNEL.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.MAPKEY">MapKey</label>\n <md-select name="mapKey" ng-model="vm.openchannelAccount.mapKey" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">None</md-option>\n <md-optgroup label="standard">\n <md-option ng-value="mapKey.columnName" ng-repeat="mapKey in vm.fields" ng-if="!mapKey.columnName.toString().startsWith(\'cf_\')" ng-disabled="mapKey.canSelect === false">{{ mapKey.displayName }}</md-option>\n </md-optgroup>\n <md-optgroup label="custom">\n <md-option ng-value="mapKey.columnName" ng-repeat="mapKey in vm.fields" ng-if="mapKey.columnName.toString().startsWith(\'cf_\')" ng-disabled="mapKey.canSelect === false">{{ mapKey.displayName }}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="generalForm[\'mapKey\'].$error" ng-show="generalForm[\'mapKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.MAPKEY_REQUIRED">MapKey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.openchannelAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.RECEIVEURI">receiveUri</label>\n <div layout="row" layout-align="center center">\n <button class="md-button md-fab md-mini md-primary" ngclipboard data-clipboard-target="#copytoclipboard-receiveUri" ngclipboard-success="vm.alert({title: \'copied to clipboard\', msg: e.text });" ngclipboard-error="vm.alert({title: \'error\', msg: \'copy to clipboard failed\'});">\n <md-icon md-font-icon="icon-clipboard-text"></md-icon>\n </button>\n <input class="md-input" type="text" id="copytoclipboard-receiveUri" name="receiveUri" ng-value="vm.location + \'/api/openchannel/accounts/\' + vm.openchannelAccount.id + \'/notify\'" ng-readonly="true">\n </div>\n <div class="hint"><span translate="OPENCHANNEL.HELP.RECEIVEURI"></span></div>\n </md-input-container>\n\n </form>\n </div>\n <div class="openchannelAccount-detail-form-container notification md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="OPENCHANNEL.NOTIFICATION">NOTIFICATION</div>\n </div>\n <form name="notificationForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.openchannelAccount.notificationSound" aria-label="notificationSound" ng-disabled="!vm.crudPermissions.canEdit"><span translate="OPENCHANNEL.NOTIFICATIONSOUND">notificationSound</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.openchannelAccount.notificationShake" aria-label="notificationShake" ng-disabled="!vm.crudPermissions.canEdit"><span translate="OPENCHANNEL.NOTIFICATIONSHAKE">notificationShake</span></md-switch>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="OPENCHANNEL.NOTIFICATIONTEMPLATE">notificationTemplate</label>\n <textarea aria-label="notificationTemplate notificationTemplate" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', removePlugins: \'magicline\' }" ng-model="vm.openchannelAccount.notificationTemplate"></textarea>\n </div>\n\n </form>\n </div>\n <div class="openchannelAccount-detail-form-container transfer md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="OPENCHANNEL.TRANSFER">TRANSFER</div>\n </div>\n <form name="transferForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.openchannelAccount.queueTransfer" aria-label="queueTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="OPENCHANNEL.QUEUETRANSFER">queueTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.openchannelAccount.queueTransfer == true" class="md-block">\n <label translate="OPENCHANNEL.QUEUETRANSFERTIMEOUT">queueTransferTimeout</label>\n <input type="number" name="queueTransferTimeout" ng-model="vm.openchannelAccount.queueTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'queueTransferTimeout\'].$error" ng-show="transferForm[\'queueTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.QUEUETRANSFERTIMEOUT_REQUIRED">queueTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="OPENCHANNEL.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.openchannelAccount.agentTransfer" aria-label="agentTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="OPENCHANNEL.AGENTTRANSFER">agentTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.openchannelAccount.agentTransfer == true" class="md-block">\n <label translate="OPENCHANNEL.AGENTTRANSFERTIMEOUT">agentTransferTimeout</label>\n <input type="number" name="agentTransferTimeout" ng-model="vm.openchannelAccount.agentTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'agentTransferTimeout\'].$error" ng-show="transferForm[\'agentTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.AGENTTRANSFERTIMEOUT_REQUIRED">agentTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="OPENCHANNEL.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="OPENCHANNEL.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <md-tab-body>\n <div class="openchannelAccount-detail-form-container proxy md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="OPENCHANNEL.PROXY">PROXY</div>\n </div>\n <form name="proxyForm" novalidate>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.TOKEN">token</label>\n <input type="text" name="token" ng-model="vm.openchannelAccount.token" autofocus disabled>\n\n <div class="hint"><span translate="OPENCHANNEL.HELP.TOKEN"></span></div>\n <div ng-messages="proxyForm[\'token\'].$error" ng-show="proxyForm[\'token\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.TOKEN_REQUIRED">token field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="openchannelAccount-detail-form-container disposition md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="OPENCHANNEL.DISPOSITION">DISPOSITION</div>\n </div>\n <form name="dispositionForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.openchannelAccount.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="OPENCHANNEL.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.openchannelAccount.mandatoryDisposition" class="md-block">\n <label translate="OPENCHANNEL.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.openchannelAccount.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="OPENCHANNEL.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="dispositionForm[\'mandatoryDispositionPauseId\'].$error" ng-show="dispositionForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="OPENCHANNEL.DISPOSITIONS">DISPOSITIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div ng-controller="OpenchannelAccountDispositionsController as vm_dc" ng-init="vm_dc.init(vm.openchannelAccount, vm.crudPermissions)">\n <div layout="row">\n <div class="column" flex="20">\n <md-card class="mt-0">\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm_dc.query.level = null; vm_dc.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\n </button>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm_dc.query.level" ng-change="vm_dc.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm_dc.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n <div class="openchannelAccount-detail-form-container openchanneldispositions md-background-bg md-whiteframe-1dp" flex="80">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedOpenchannelAccountDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="OPENCHANNEL.DISPOSITIONS">Dispositions</span>\n <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditDisposition($event)" aria-label="Add openchannel dispositions" translate translate-attr-label="OPENCHANNEL.ADD_DISPOSITION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedDispositions.length}}\n {{vm_dc.selectedDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedDispositions" csv-label="true" filename="openchannelAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedDispositions($event)" aria-label="delete selected" translate translate-attr-label="OPENCHANNEL.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_dc.selectedDispositions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getDispositions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'OPENCHANNEL.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'OPENCHANNEL.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'OPENCHANNEL.DESCRIPTION\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_dc.dispositions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="OPENCHANNEL.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="disposition" md-select-id="id" ng-repeat="disposition in vm_dc.dispositions.rows">\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm_dc.levels[disposition.level] }}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="OPENCHANNEL.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(disposition, $event)" translate="TOOLS.DELETE_DISPOSITION">\n Delete Disposition\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'OPENCHANNEL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'OPENCHANNEL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'OPENCHANNEL.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.dispositions.count}}" md-on-paginate="vm_dc.getDispositions" md-page-select>\n </md-table-pagination>\n </div>\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="OPENCHANNEL.CANNEDANSWERS">CANNEDANSWERS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="openchannelAccount-detail-form-container openchannelcannedanswers md-background-bg md-whiteframe-1dp">\n <div ng-controller="OpenchannelAccountOpenchannelCannedAnswersController as vm_dc" ng-init="vm_dc.init(vm.openchannelAccount, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedOpenchannelAccountOpenchannelCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="OPENCHANNEL.OPENCHANNELCANNEDANSWERS">OpenchannelCannedAnswers</span>\n <ms-search-bar on-search="vm_dc.getOpenchannelAccountOpenchannelCannedAnswers()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event)" aria-label="add openchannelCannedAnswer" translate translate-attr-label="OPENCHANNEL.ADD_OPENCHANNELCANNEDANSWER">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedOpenchannelAccountOpenchannelCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedOpenchannelAccountOpenchannelCannedAnswers.length}} {{vm_dc.selectedOpenchannelAccountOpenchannelCannedAnswers.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedOpenchannelAccountOpenchannelCannedAnswers" csv-label="true" filename="openchannelAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedOpenchannelAccountOpenchannelCannedAnswers($event)" aria-label="delete selected" translate translate-attr-label="OPENCHANNEL.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedOpenchannelAccountOpenchannelCannedAnswers" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getOpenchannelAccountOpenchannelCannedAnswers">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'OPENCHANNEL.ID\' | translate }}\n </th>\n <th md-column md-order-by="key">\n {{ \'OPENCHANNEL.KEY\' | translate }}\n </th>\n <th md-column md-order-by="value">\n {{ \'OPENCHANNEL.VALUE\' | translate }}\n </th>\n <th md-column md-order-by="description">\n {{ \'OPENCHANNEL.DESCRIPTION\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'OPENCHANNEL.CREATED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="openchannelCannedAnswer" md-select-id="id" ng-repeat="openchannelCannedAnswer in vm_dc.openchannelAccountOpenchannelCannedAnswers.rows">\n <td ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event, openchannelCannedAnswer)" md-cell>\n {{openchannelCannedAnswer.id}}\n </td>\n <td ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event, openchannelCannedAnswer)" md-cell>\n {{openchannelCannedAnswer.key}}\n </td>\n <td ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event, openchannelCannedAnswer)" md-cell>\n {{openchannelCannedAnswer.value}}\n </td>\n <td ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event, openchannelCannedAnswer)" md-cell>\n {{openchannelCannedAnswer.description}}\n </td>\n <td ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event, openchannelCannedAnswer)" md-cell>\n {{ openchannelCannedAnswer.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="OPENCHANNEL.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event, openchannelCannedAnswer)" translate="OPENCHANNEL.EDIT_OPENCHANNELCANNEDANSWER">\n Edit OpenchannelCannedAnswer\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(openchannelCannedAnswer, $event)" translate="OPENCHANNEL.DELETE_OPENCHANNELCANNEDANSWER">\n Delete OpenchannelCannedAnswer\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.openchannelAccountOpenchannelCannedAnswers.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="OPENCHANNEL.NO_OPENCHANNELCANNEDANSWER_AVAILABLE">No openchannelcannedanswer available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'OPENCHANNEL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'OPENCHANNEL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'OPENCHANNEL.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.openchannelAccountOpenchannelCannedAnswers.count}}" md-on-paginate="vm_dc.getOpenchannelAccountOpenchannelCannedAnswers" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="OPENCHANNEL.ACTIONS">ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="openchannelAccount-detail-form-container actions md-background-bg md-whiteframe-1dp">\n <div ng-controller="OpenchannelAccountActionsController as vm_ac" ng-init="vm_ac.init(vm.openchannelAccount, vm.crudPermissions)" class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- SIDENAV --\x3e\n <div class="navigation-simple sidenav main-sidenav md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="20" ng-if="vm_ac.crudPermissions.canEdit">\n \x3c!-- SIDENAV CONTENT --\x3e\n <md-list class="no-padding">\n <md-subheader class="md-no-sticky">\n <span translate="VOICE.APPLICATIONS_LIST">\n Applications List\n </span>\n </md-subheader>\n </md-list>\n <md-divider></md-divider>\n <md-list ng-sortable="vm_ac.list">\n <md-list-item class="handle" ng-repeat="a in vm_ac.apps">\n <md-icon md-font-icon="{{a.icon}}" class="s16"></md-icon>\n <p class="text-truncate" translate="OPENCHANNEL.{{(a.appAlias || a.appType) | uppercase}}">{{a.appAlias || a.appType}}</p>\n </md-list-item>\n </md-list>\n \x3c!-- / SIDENAV CONTENT --\x3e\n </div>\n \x3c!-- / SIDENAV --\x3e\n <div flex></div>\n \x3c!-- MAIN --\x3e\n <div class="main scrollable md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="{{vm_ac.crudPermissions.canEdit ? 75 : 100}}">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_ac.selectedOpenchannelAccountApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">Drag & Drop Routing</span>\n <div flex></div>\n <ms-search-bar on-search="vm_ac.query.filter = query" on-collapse="vm_ac.query.filter = undefined" debounce="300"></ms-search-bar>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_ac.selectedOpenchannelAccountApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_ac.selectedOpenchannelAccountApps.length}} {{vm_ac.selectedOpenchannelAccountApps.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_ac.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_ac.deleteSelectedOpenchannelAccountApps($event)" aria-label="delete selected" translate translate-attr-label="OPENCHANNEL.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n \x3c!-- QUEUES TABLE --\x3e\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_ac.selectedOpenchannelAccountApps">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column width="10px">\n <span translate="VOICE.PRIORITY">Priority</span>\n </th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </th>\n <th md-column width="10px"></th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body ng-sortable="vm_ac.applications">\n <tr md-row md-select="app" md-select-id="id" ng-repeat="app in vm_ac.openchannelAccountApps.rows | filter: vm_ac.query.filter">\n <td md-cell>\n <md-icon md-font-icon="icon-drag-vertical" class="s16 handle"></md-icon>\n </td>\n <td md-cell ng-click="vm_ac.editOpenchannelAccountApp($event, $index)"><span>{{app.priority}}</span></td>\n <td md-cell ng-click="vm_ac.editOpenchannelAccountApp($event, $index)">{{app.app.toLowerCase() === \'agi\' ? \'Cally-Square\' : app.app | ucfirst}}<span ng-if="app.appType.toLowerCase() === \'custom\'">*</span></td>\n <td md-cell ng-click="vm_ac.editOpenchannelAccountApp($event, $index)"><span class="text-truncate actionAppData">{{app.appdata}}</span></td>\n <td md-cell ng-click="vm_ac.editInterval($event, $index)">{{app.IntervalId ? \'From List\' : app.interval}}</td>\n <td md-cell>\n <md-button ng-click="vm_ac.editInterval($event, $index)" class="md-icon-button" aria-label="Interval">\n <md-icon md-font-icon="icon-timer"></md-icon>\n <md-tooltip>\n {{app.IntervalId ? \'From List\' : (app.interval === \'*,*,*,*\' ? \'Always\' : \'Custom\')}}\n </md-tooltip>\n </md-button>\n </td>\n <td md-cell class="actions" ng-if="!vm_ac.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_ac.crudPermissions.canEdit">\n <md-button ng-click="vm_ac.editOpenchannelAccountApp($event, $index)" translate="VOICE.EDIT_APP">\n Edit App\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_ac.crudPermissions.canEdit">\n <md-button ng-click="vm_ac.editInterval($event, $index)" translate="VOICE.EDIT_INTERVAL">\n Edit Interval\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_ac.crudPermissions.canDelete">\n <md-button ng-click="vm_ac.deleteConfirm(app, $index, $event)" translate="VOICE.DELETE_APP">\n Delete App\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-hide="vm_ac.openchannelAccountApps.rows.length">\n <td md-cell colspan="7">\n <span class="text-boxed-light" translate="VOICE.NO_APPS_AVAILABLE">No apps available</span>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n \x3c!-- / QUEUES TABLE --\x3e\n\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="OPENCHANNEL.INTERACTIONS">INTERACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="openchannelAccount-detail-form-container interactions md-background-bg md-whiteframe-1dp">\n <div ng-controller="OpenchannelAccountInteractionsController as vm_dc" ng-init="vm_dc.init(vm.openchannelAccount, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedOpenchannelAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="OPENCHANNEL.INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm_dc.getOpenchannelAccountInteractions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_dc.quickFilters" query="vm_dc.query" search="vm_dc.getOpenchannelAccountInteractions()"></ms-quick-filter>\n <div layout="column">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini md-accent-bg\': vm_dc.query.search }" aria-label="Filter" translate translate-attr-aria-label="DASHBOARDS.FILTER" ng-click="vm_dc.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm_dc.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'blink\': vm_dc.query.search }"></md-icon>\n </md-button>\n </div>\n <md-button class="md-icon-button" ng-click="vm_dc.getOpenchannelAccountInteractions()" aria-label="refresh Interactions" translate translate-attr-label="OPENCHANNEL.REFRESH_INTERACTIONS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedOpenchannelAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedOpenchannelAccountInteractions.length}} {{vm_dc.selectedOpenchannelAccountInteractions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedOpenchannelAccountInteractions" csv-label="true" filename="openchannelAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedOpenchannelAccountInteractions($event)" aria-label="delete selected" translate translate-attr-label="OPENCHANNEL.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedOpenchannelAccountInteractions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getOpenchannelAccountInteractions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'OPENCHANNEL.ID\' | translate }}\n </th>\n <th md-column class="no-padding">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column md-order-by="contactName">\n {{ \'OPENCHANNEL.CONTACT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'OPENCHANNEL.STARTEDAT\' | translate }}\n </th>\n <th md-column md-order-by="lastMsgAt">\n {{ \'OPENCHANNEL.LASTMESSAGE\' | translate }}\n </th>\n <th md-column md-order-by="closed">\n {{ \'OPENCHANNEL.STATUS\' | translate }}\n </th>\n <th md-column>\n {{ \'OPENCHANNEL.AGENT\' | translate }}\n </th>\n <th md-column md-order-by="tag">\n {{ \'OPENCHANNEL.TAGS\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="interaction" md-select-id="id" ng-repeat="interaction in vm_dc.openchannelAccountInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td md-cell>\n {{interaction.id}}\n </td>\n <td md-cell class="no-padding">\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="user in interaction.Users">{{ user.fullname | translate }}\n <span ng-if="!$last">, </span>\n </span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg md-primary-bg" layout-margin>{{ interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.attach">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td md-cell privacy ng-cloak>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'margin-bottom-0\' : interaction.contactInfo}" layout-margin>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text margin-top-0" layout-margin>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td md-cell>\n {{ interaction.createdAt | formatdate }}\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}"></md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="text-truncate">{{ interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n </td>\n <td md-cell>\n <span ng-if="interaction.closed === 0" class="green-fg">\n {{ \'OPENCHANNEL.OPENED\' | translate }}\n <span ng-if="interaction.substatus">\n - {{ interaction.substatus }}\n </span>\n </span>\n <span ng-if="interaction.closed === 1" class="red-fg">\n {{ \'OPENCHANNEL.CLOSED\' | translate }}\n <span ng-if="interaction.disposition">\n - {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}\n </span>\n <md-tooltip class="multiline">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n </span>\n </td>\n\n <td md-cell>\n {{interaction.Owner.name}}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="OPENCHANNEL.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm_dc.spyopenchannelInteraction($event, interaction)" translate="OPENCHANNEL.SPYINTERACTION">\n Spy Interaction\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.role === \'admin\' || (vm_dc.userProfile.downloadOmnichannelInteractions && vm_dc.userProfile.downloadAttachments)">\n <md-button class="md-primary" ng-click="vm_dc.openchannelInteractionDownload(interaction, $event, true)" translate="OPENCHANNEL.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.role === \'admin\' || vm_dc.userProfile.downloadOmnichannelInteractions">\n <md-button class="md-primary" ng-click="vm_dc.openchannelInteractionDownload(interaction, $event)" translate="OPENCHANNEL.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(interaction, $event)" translate="OPENCHANNEL.DELETE_INTERACTION">\n Delete Interaction\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.openchannelAccountInteractions.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="OPENCHANNEL.NO_INTERACTION_AVAILABLE">No interaction available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'OPENCHANNEL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'OPENCHANNEL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'OPENCHANNEL.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.openchannelAccountInteractions.count}}" md-on-paginate="vm_dc.getOpenchannelAccountInteractions" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/openchannelAccounts.html",'<div id="openchannelAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-google-earth" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="OPENCHANNEL.OPENCHANNELACCOUNTS">OpenchannelAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="OPENCHANNEL.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedOpenchannelAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedOpenchannelAccounts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="OPENCHANNEL.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-openchannelAccounts-count">\n <span>{{vm.selectedOpenchannelAccounts.length}}</span>\n <span translate="OPENCHANNEL.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="OPENCHANNEL.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllOpenchannelAccounts()" translate="OPENCHANNEL.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectOpenchannelAccounts()" translate="OPENCHANNEL.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedOpenchannelAccounts" csv-label="true" filename="openchannelAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedOpenchannelAccounts($event)" aria-label="delete selected" translate translate-attr-label="OPENCHANNEL.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- OPENCHANNELACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedOpenchannelAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getOpenchannelAccounts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'OPENCHANNEL.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'OPENCHANNEL.NAME\' | translate }}</th>\n <th md-column md-order-by="key">{{ \'OPENCHANNEL.KEY\' | translate }}</th>\n <th md-column md-order-by="replyUri">{{ \'OPENCHANNEL.REPLYURI\' | translate }}</th>\n <th md-column md-order-by="ListId">{{ \'OPENCHANNEL.LIST\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'OPENCHANNEL.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.openchannelAccounts.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="OPENCHANNEL.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="openchannelAccount" md-select-id="id" ng-repeat="openchannelAccount in vm.openchannelAccounts.rows">\n <td md-cell ng-if="openchannelAccount.userpic"><img class="avatar" alt="{{openchannelAccount.name}}" ng-src="api/users/{{openchannelAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!openchannelAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{openchannelAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelAccount, ev) : vm.createOrEditOpenchannelAccount($event, openchannelAccount)" md-cell class="id ">{{openchannelAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelAccount, ev) : vm.createOrEditOpenchannelAccount($event, openchannelAccount)" md-cell class="name ">{{openchannelAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelAccount, ev) : vm.createOrEditOpenchannelAccount($event, openchannelAccount)" md-cell class="key ">{{openchannelAccount.key}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelAccount, ev) : vm.createOrEditOpenchannelAccount($event, openchannelAccount)" md-cell class="replyUri ">{{openchannelAccount.replyUri}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelAccount, ev) : vm.createOrEditOpenchannelAccount($event, openchannelAccount)" md-cell class="ListId ">{{ (vm.lists | filter : {\'id\':openchannelAccount.ListId} : true)[0].name }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelAccount, ev) : vm.createOrEditOpenchannelAccount($event, openchannelAccount)" md-cell class="description ">{{openchannelAccount.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="OPENCHANNEL.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(openchannelAccount, $event )" translate="OPENCHANNEL.EDIT_OPENCHANNELACCOUNT">\n Edit OpenchannelAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.interactionsgoto(openchannelAccount, $event )" translate="OPENCHANNEL.INTERACTIONS_OPENCHANNELACCOUNT">\n Interactions OpenchannelAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(openchannelAccount, $event )" translate="OPENCHANNEL.AGENTADD_OPENCHANNELACCOUNT">\n AgentAdd OpenchannelAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(openchannelAccount, $event )" translate="OPENCHANNEL.DELETE_OPENCHANNELACCOUNT">\n Delete OpenchannelAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'OPENCHANNEL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'OPENCHANNEL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'OPENCHANNEL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.openchannelAccounts.count}}" md-on-paginate="vm.getOpenchannelAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / OPENCHANNELACCOUNT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD OPENCHANNELACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-openchannelAccount-button" ng-click="vm.createOrEditOpenchannelAccount($event)" aria-label="add openchannelAccount" translate translate-attr-aria-label="OPENCHANNEL.ADD_OPENCHANNELACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD OPENCHANNELACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/openchannel/views/openchannelQueues/create/dialog.html",'<md-dialog class="openchannelQueue-dialog" aria-label="New OpenchannelQueue">\n <form name="openchannelQueueForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.openchannelQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newOpenchannelQueue">\n\n <div class="hint"><span translate="OPENCHANNEL.HELP.NAME"></span></div>\n <div ng-messages="openchannelQueueForm[\'name\'].$error" ng-show="openchannelQueueForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="OPENCHANNEL.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.openchannelQueue.strategy" required>\n <md-option ng-value="\'beepall\'">Beepall</md-option>\n <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n </md-select>\n <div ng-messages="openchannelQueueForm[\'strategy\'].$error" ng-show="openchannelQueueForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.AGENT_TIMEOUT">Agent_Timeout</label>\n <input type="number" name="timeout" ng-model="vm.openchannelQueue.timeout" min="1" max="2147483" value="10" ng-required="true">\n\n <div ng-messages="openchannelQueueForm[\'timeout\'].$error" ng-show="openchannelQueueForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="OPENCHANNEL.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.openchannelQueue.description">\n\n <div ng-messages="openchannelQueueForm[\'description\'].$error" ng-show="openchannelQueueForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newOpenchannelQueue" ng-click="vm.saveOpenchannelQueue()" class="send-button md-accent md-raised" ng-disabled="openchannelQueueForm.$invalid || openchannelQueueForm.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newOpenchannelQueue" ng-click="vm.addNewOpenchannelQueue()" class="send-button md-accent md-raised" ng-disabled="openchannelQueueForm.$invalid" aria-label="ADD" translate="OPENCHANNEL.ADD_OPENCHANNELQUEUE" translate-attr-aria-label="OPENCHANNEL.ADD_OPENCHANNELQUEUE">\n ADD OPENCHANNELQUEUE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newOpenchannelQueue" ng-click="vm.deleteOpenchannelQueue($event)" aria-label="DELETE" translate translate-attr-aria-label="OPENCHANNEL.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="OPENCHANNEL.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelQueues/edit/agentadd/agentadd.html",'<md-dialog class="openchannelQueue-dialog" aria-label="openchannelQueue" ng-init="vm.onInit()">\n <form name="openchannelQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="OPENCHANNEL.AGENTADD_OPENCHANNELQUEUE">Add Agent to openchannelQueue</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelQueues/edit/teamadd/teamadd.html",'<md-dialog class="openchannelQueue-dialog" aria-label="openchannelQueue" ng-init="vm.onInit()">\n <form name="openchannelQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="OPENCHANNEL.TEAMS_ASSOCIATION">Teams Association</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelQueues/edit/view.html",'<div id="openchannel-openchannelQueue" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-openchannelQueues-button md-icon-button" aria-label="Go to openchannelQueues" ng-click="vm.gotoOpenchannelQueues()" translate translate-attr-aria-label="OPENCHANNEL.GO_TO_OPENCHANNELQUEUES">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="openchannelQueue-image" hide-xs>\n <img ng-src="assets/images/business/openchannelQueues.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.openchannelQueue.id}}\n <span ng-if="vm.openchannelQueue.name">{{vm.openchannelQueue.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="OPENCHANNEL.CREATED_AT"></span> <span>{{vm.openchannelQueue.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.teamadddialog(vm.openchannelQueue, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n <md-tooltip><span translate="OPENCHANNEL.TEAMADD_OPENCHANNELQUEUE"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.openchannelQueue, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="OPENCHANNEL.AGENTADD_OPENCHANNELQUEUE"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-plus"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveOpenchannelQueue()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid)" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="OPENCHANNEL.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="openchannelQueue-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="OPENCHANNEL.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.openchannelQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="OPENCHANNEL.HELP.NAME"></span></div>\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="OPENCHANNEL.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.openchannelQueue.strategy" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'beepall\'">Beepall</md-option>\n <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n </md-select>\n <div ng-messages="generalForm[\'strategy\'].$error" ng-show="generalForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.AGENT_TIMEOUT">Agent_Timeout</label>\n <input type="number" name="timeout" ng-model="vm.openchannelQueue.timeout" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'timeout\'].$error" ng-show="generalForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="OPENCHANNEL.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.openchannelQueue.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/openchannel/views/openchannelQueues/openchannelQueues.html",'<div id="openchannelQueues" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-google-earth" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="OPENCHANNEL.OPENCHANNELQUEUES">OpenchannelQueues</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="OPENCHANNEL.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedOpenchannelQueues.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedOpenchannelQueues =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="OPENCHANNEL.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-openchannelQueues-count">\n <span>{{vm.selectedOpenchannelQueues.length}}</span>\n <span translate="OPENCHANNEL.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="OPENCHANNEL.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllOpenchannelQueues()" translate="OPENCHANNEL.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectOpenchannelQueues()" translate="OPENCHANNEL.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedOpenchannelQueues" csv-label="true" filename="openchannelQueues.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedOpenchannelQueues($event)" aria-label="delete selected" translate translate-attr-label="OPENCHANNEL.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- OPENCHANNELQUEUE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedOpenchannelQueues" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getOpenchannelQueues">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'OPENCHANNEL.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'OPENCHANNEL.NAME\' | translate }}</th>\n <th md-column md-order-by="strategy">{{ \'OPENCHANNEL.STRATEGY\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.openchannelQueues.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="OPENCHANNEL.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="openchannelQueue" md-select-id="id" ng-repeat="openchannelQueue in vm.openchannelQueues.rows">\n <td md-cell ng-if="openchannelQueue.userpic"><img class="avatar" alt="{{openchannelQueue.name}}" ng-src="api/users/{{openchannelQueue.id}}/avatar" /></td>\n <td md-cell ng-if="!openchannelQueue.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{openchannelQueue.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelQueue, ev) : vm.createOrEditOpenchannelQueue($event, openchannelQueue)" md-cell class="id ">{{openchannelQueue.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelQueue, ev) : vm.createOrEditOpenchannelQueue($event, openchannelQueue)" md-cell class="name ">{{openchannelQueue.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelQueue, ev) : vm.createOrEditOpenchannelQueue($event, openchannelQueue)" md-cell class="strategy ">{{ vm.arraystrategy[openchannelQueue.strategy].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="OPENCHANNEL.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(openchannelQueue, $event )" translate="OPENCHANNEL.EDIT_OPENCHANNELQUEUE">\n Edit OpenchannelQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(openchannelQueue, $event )" translate="OPENCHANNEL.TEAMADD_OPENCHANNELQUEUE">\n teamadd OpenchannelQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(openchannelQueue, $event )" translate="OPENCHANNEL.AGENTADD_OPENCHANNELQUEUE">\n agentadd OpenchannelQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(openchannelQueue, $event )" translate="OPENCHANNEL.DELETE_OPENCHANNELQUEUE">\n Delete OpenchannelQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(openchannelQueue, $event )" translate="OPENCHANNEL.GOTOREALTIME_OPENCHANNELQUEUE">\n goToRealtime OpenchannelQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'OPENCHANNEL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'OPENCHANNEL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'OPENCHANNEL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.openchannelQueues.count}}" md-on-paginate="vm.getOpenchannelQueues" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / OPENCHANNELQUEUE TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD OPENCHANNELQUEUE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-openchannelQueue-button" ng-click="vm.createOrEditOpenchannelQueue($event)" aria-label="add openchannelQueue" translate translate-attr-aria-label="OPENCHANNEL.ADD_OPENCHANNELQUEUE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD OPENCHANNELQUEUE BUTTON --\x3e\n</div>'),e.put("app/main/apps/openchannel/views/realtime/agents/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="OPENCHANNEL.AGENTS">Agents</span>\n <div flex></div>\n <ms-search-bar on-search="vm.onInit()" query="vm.query" on-collapse="vm.query.filter = undefined; vm.onInit()" debounce="300"></ms-search-bar>\n <md-select ng-model="vm.query.globalStatusFilter" class="md-caption" ng-change="vm.query.pauseTypeFilter = \'\'; vm.onInit()">\n <md-option ng-value="\'\'">{{ \'OPENCHANNEL.ALL\' | translate }}</md-option>\n <md-option value="pause">{{ \'OPENCHANNEL.PAUSE\' | translate }}</md-option>\n <md-option value="*pause">{{ \'OPENCHANNEL.PARTIALPAUSE\' | translate }}</md-option>\n <md-option value="busy">{{ \'OPENCHANNEL.BUSY\' | translate }}</md-option>\n <md-option value="idle">{{ \'OPENCHANNEL.IDLE\' | translate }}</md-option>\n </md-select>\n <md-select ng-if="vm.isPause(vm.query.globalStatusFilter)" ng-model="vm.query.pauseTypeFilter" class="md-caption" ng-change="vm.onInit()">\n <md-option ng-value="\'\'">All</md-option>\n <md-option value="DEFAULT PAUSE">DEFAULT PAUSE</md-option>\n <md-option value="ACW">ACW</md-option>\n <md-option value="LOGININPAUSE">LOGININPAUSE</md-option>\n <md-option value="Auto-Pause">AUTOPAUSE</md-option>\n <md-option ng-value="pause.name" ng-repeat="pause in vm.pauses.rows">{{pause.name}}</md-option>\n </md-select>\n </div>\n</md-toolbar>\n\x3c!-- AGENT TABLE --\x3e\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.order" md-on-reorder="vm.onInit">\n <tr md-row border="1">\n <th class="bv text-center" colspan="5">{{ \'OPENCHANNEL.AGENT\' | translate }}</th>\n <th class="bv bl text-center" colspan="2">{{ \'VOICE.VOICE\' | translate }}</th>\n <th ng-if="vm.license.chat" class="bv bl text-center" colspan="2">{{ \'CHAT.CHAT\' | translate }}</th>\n <th ng-if="vm.license.mail" class="bv bl text-center" colspan="2">{{ \'MAIL.MAIL\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="bv bl text-center" colspan="2">{{ \'SMS.SMS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="bv bl text-center" colspan="2">\n {{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="bv bl text-center" colspan="2">\n {{ \'WHATSAPP.WHATSAPP\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n </tr>\n <tr md-row>\n <th class="bl" colspan="2" md-column md-order-by="fullname">\n {{ \'OPENCHANNEL.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">\n {{ \'OPENCHANNEL.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">\n {{ \'OPENCHANNEL.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">\n {{ \'OPENCHANNEL.PAUSE_TIME\' | translate }}</th>\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\n <th ng-if="vm.license.chat" class="bl text-center">{{ \'CHAT.STATUS\' | translate }}</th>\n <th ng-if="vm.license.chat" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'CHAT.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.mail" class="bl text-center">{{ \'MAIL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.mail" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'MAIL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.messaging" class="bl text-center">{{ \'SMS.STATUS\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'SMS.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.openchannel" class="bl text-center">{{ \'OPENCHANNEL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'OPENCHANNEL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.fax" class="bl text-center">{{ \'FAX.STATUS\' | translate }}</th>\n <th ng-if="vm.license.fax" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'FAX.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.whatsapp" class="bl text-center">{{ \'WHATSAPP.STATUS\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'WHATSAPP.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.order.length">\n <td md-cell colspan="19">\n <div layout="row" layout-align="center center">\n <span>{{ \'OPENCHANNEL.NO_AGENT_ONLINE\' | translate }}</span>\n </div>\n </td>\n </tr>\n <tr md-select="vm.agents[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td class="bt padding-5">\n <div layout="row" layout-align="start center">\n <img class="avatar" ng-src="{{vm.agents[value].userpic && \'api/users/\'+vm.agents[value].id+\'/avatar\' || \'assets/images/avatars/profile.png\'}}">\n <div layout="column">\n <span>{{vm.agents[value].fullname}}</span>\n <span>{{vm.agents[value].internal}}</span>\n </div>\n </div>\n </td>\n <td class="bt padding-5">\n <div layout="row" layout-align="start center" ng-if="vm.license.screenrecording && (vm.agents[value].phoneBarEnableScreenRecordingByAgent || vm.agents[value].phoneBarEnableAutomaticScreenRecording)">\n <div class="column" ng-if="vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: green; font-size: 36px;" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'OPENCHANNEL.TOOLTIP_SCREENRECORDING_ON\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n <div class="column" ng-if="!vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: gray" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'OPENCHANNEL.TOOLTIP_SCREENRECORDING_OFF\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n </div>\n </td>\n <td class="bt">\n'+" <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','busy':'indigo-100-bg','*pause':'amber-50-bg','pause':'amber-200-bg'}[vm.agents[value].globalStatus]\">{{\n vm.isPause(vm.agents[value].globalStatus) ? '' : vm.agents[value].globalStatus | uppercase }}\n {{ vm.isPause(vm.agents[value].globalStatus) ? (vm.isPartialPause(vm.agents[value].globalStatus) ?\n '*'+vm.agents[value].pauseType || 'DEFAULT PAUSE' : vm.agents[value].pauseType || 'DEFAULT PAUSE') :\n ''}}</span>\n </td>\n <td class=\"bt custom-column\">\n <timer start-time=\"vm.agents[value].lastLoginAt\"></timer>\n </td>\n <td class=\"bt custom-column\">\n <timer ng-if=\"vm.isPause(vm.agents[value].globalStatus) || vm.isPartialPause(vm.agents[value].globalStatus)\" start-time=\"vm.agents[value].lastPauseAt\"></timer>\n </td>\n <td class=\"bt bl\">\n <div layout=\"row\">\n <span ng-if=\"!vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','talking':'indigo-100-bg','ringing':'orange-400-bg','pause':'amber-200-bg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].voiceStatus | uppercase }}</span>\n <span ng-if=\"vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5 orange-400-bg\">ONHOLD</span>\n </div>\n </td>\n <td class=\"bt bl\">\n <div layout=\"column\">\n <span ng-if=\"vm.agents[value].queue\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].queue }}</span>\n <span ng-if=\"vm.agents[value].destconnectedlinenum\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\" privacy ng-cloak>{{\n vm.agents[value].destconnectedlinenum }}</span>\n <span ng-if=\"vm.agents[value].routealias\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].routealias }}</span>\n <span class=\"padding-5\" ng-if=\"vm.agents[value].queue || vm.agents[value].destconnectedlinenum\">\n <timer start-time=\"vm.agents[value].voiceStatusTime\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">\n </timer>\n </span>\n </div>\n </td>\n <td class=\"bt bl\" ng-if=\"vm.license.chat\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].chatStatus]\">{{\n vm.agents[value].chatStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td md-number class=\"bt text-center font-size-20\" ng-if=\"vm.license.chat\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].chatStatus]\">\n {{ vm.agents[value].chatCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.mail\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].mailStatus]\">{{\n vm.agents[value].mailStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.mail\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].mailStatus]\">\n {{ vm.agents[value].mailCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.messaging\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].smsStatus]\">{{\n vm.agents[value].smsStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.messaging\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].smsStatus]\">\n {{ vm.agents[value].smsCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.openchannel\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].openchannelStatus]\">{{\n vm.agents[value].openchannelStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.openchannel\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].openchannelStatus]\">\n {{ vm.agents[value].openchannelCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.fax\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].faxStatus]\">{{\n vm.agents[value].faxStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.fax\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].faxStatus]\">\n {{ vm.agents[value].faxCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.whatsapp\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].whatsappStatus]\">{{\n vm.agents[value].whatsappStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.whatsapp\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].whatsappStatus]\">\n {{ vm.agents[value].whatsappCurrentCapacity }}</td>\n <td class=\"bl bt padding-5 text-center\" ng-if=\"vm.crudPermissions.canEdit\">\n <md-menu>\n <md-button class=\"md-icon-button\" aria-label=\"More\" translate translate-attr-aria-label=\"STAFF.MORE\" ng-click=\"$mdOpenMenu($event)\">\n <md-icon md-font-icon=\"icon-dots-vertical\"></md-icon>\n </md-button>\n <md-menu-content width=\"4\">\n <md-menu-item>\n <md-button ng-click=\"vm.logout(vm.agents[value], $event)\" translate=\"OPENCHANNEL.LOGOUT\">\n Logout\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click=\"vm.queueAdd(vm.agents[value], $event)\" translate=\"OPENCHANNEL.AGENTADD_QUEUE\">\n Add Agent In Queue\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.license.screenrecording && vm.agents[value].phoneBarEnableScreenRecordingByAgent\">\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"OPENCHANNEL.SCREENRECORDING\">Screen Recording\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if=\"!vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], true)\"><em translate=\"OPENCHANNEL.START_SCREENRECORDING\">Start\n Screen Recording</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], false)\"><em translate=\"OPENCHANNEL.STOP_SCREENRECORDING\">Stop\n Screen Recording</em></md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item>\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"OPENCHANNEL.PAUSE\">Pause</md-button>\n <md-menu-content>\n <md-menu-item>\n <md-button ng-disabled=\" vm.agents[value].voicePause && 'DEFAULT PAUSE' === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value])\"><em translate=\"OPENCHANNEL.DEFAULT_PAUSE\">Default\n Pause</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.pauses.rows.length\" ng-repeat=\"pause in vm.pauses.rows\">\n <md-button ng-disabled=\"vm.agents[value].voicePause && pause.name === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value], pause.name)\">{{pause.name}}\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.isPause(vm.agents[value].globalStatus)\">\n <md-button ng-click=\"vm.unPause(vm.agents[value])\" translate=\"OPENCHANNEL.UNPAUSE\">\n Unpause\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label=\"{page: '{{'OPENCHANNEL.PAGE' | translate}}:', rowsPerPage: '{{'OPENCHANNEL.ROWSPERPAGE' | translate}}:', of: '{{'OPENCHANNEL.OF' | translate}}'}\" md-limit=\"vm.query.limit\" md-limit-options=\"[10, 15, 20, 50, 100, 250]\" md-page=\"vm.query.page\" md-total=\"{{vm.filteredAgents.length}}\" md-on-paginate=\"vm.onInit\" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e"),e.put("app/main/apps/openchannel/views/realtime/queues/view.html",'<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="OPENCHANNEL.QUEUES">Queues</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getQueues">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'OPENCHANNEL.NAME\' | translate }}</th>\n <th md-column>{{ \'OPENCHANNEL.LOGGED_IN\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'OPENCHANNEL.PAUSED\' | translate }}</th>\n <th md-column>{{ \'OPENCHANNEL.WAITING\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.queues.count > 0">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="OPENCHANNEL.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="queue" md-select-id="id" ng-repeat="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedIn }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="OPENCHANNEL.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.editQueue($event, queue)" translate="OPENCHANNEL.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.addAgent($event, queue)" translate="OPENCHANNEL.AGENTSADD_QUEUE">\n Add Agents to queue\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'OPENCHANNEL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'OPENCHANNEL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'OPENCHANNEL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),e.put("app/main/apps/openchannel/views/realtime/realtime.html",'<div id="realtime" class="page-layout simple tabbed" layout="column" ng-cloak>\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="OPENCHANNEL.AGENTS">Agents</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="OPENCHANNEL.QUEUES">Queues</span>\n </md-tab-label>\n </md-tab>\n </md-tabs>\n\n <md-card ui-view></md-card>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/plugins/views/plugin/plugin.html",'<div ng-if="!vm.plugin">\n <p>Plugin not available...</p>\n</div>\n<div id="plugin" ng-if="vm.plugin" ng-cloak layout-fill>\n <iframe ng-src="{{vm.getTrustedURL()}}" frameborder=0 style="border:0px; width:100%; height:100%;"></iframe>\n</div>'),e.put("app/main/apps/settings/views/cloudProviders/cloudProviders.html",'<div id="cloudProviders" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-cog" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="SETTINGS.AITOOLS">AiTools</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="SETTINGS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedAiTools.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedAiTools =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="SETTINGS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-cloudProviders-count">\n <span>{{vm.selectedAiTools.length}}</span>\n <span translate="SETTINGS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="SETTINGS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllAiTools()" translate="SETTINGS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectAiTools()" translate="SETTINGS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedAiTools" csv-label="true" filename="cloudProviders.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-click="vm.deleteSelectedAiTools($event)" aria-label="delete selected" translate translate-attr-label="SETTINGS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- CLOUDPROVIDER TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedAiTools" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getAiTools">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'SETTINGS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'SETTINGS.NAME\' | translate }}</th>\n <th md-column md-order-by="service">{{ \'SETTINGS.SERVICE\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.cloudProviders.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="SETTINGS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="cloudProvider" md-select-id="id" ng-repeat="cloudProvider in vm.cloudProviders.rows">\n <td md-cell ng-if="cloudProvider.userpic"><img class="avatar" alt="{{cloudProvider.name}}" ng-src="api/users/{{cloudProvider.id}}/avatar" /></td>\n <td md-cell ng-if="!cloudProvider.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{cloudProvider.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditCloudProvider($event, cloudProvider)" md-cell class="id ">{{cloudProvider.id}}</td>\n <td ng-click="vm.createOrEditCloudProvider($event, cloudProvider)" md-cell class="name ">{{cloudProvider.name}}</td>\n <td ng-click="vm.createOrEditCloudProvider($event, cloudProvider)" md-cell class="service ">{{ vm.arrayservice[cloudProvider.service].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="SETTINGS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.editdialog(cloudProvider, $event )" translate="SETTINGS.EDIT_CLOUDPROVIDER">\n Edit CloudProvider\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.deleteconfirm(cloudProvider, $event )" translate="SETTINGS.DELETE_CLOUDPROVIDER">\n Delete CloudProvider\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'SETTINGS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SETTINGS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SETTINGS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.cloudProviders.count}}" md-on-paginate="vm.getAiTools" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / CLOUDPROVIDER TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD CLOUDPROVIDER BUTTON --\x3e\n <md-button class="md-fab md-accent" id="add-cloudProvider-button" ng-click="vm.createOrEditCloudProvider($event)" aria-label="add cloudProvider" translate translate-attr-aria-label="SETTINGS.ADD_CLOUDPROVIDER">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD CLOUDPROVIDER BUTTON --\x3e\n</div>'),e.put("app/main/apps/settings/views/cloudProviders/create/dialog.html",'<md-dialog class="cloudProvider-dialog" aria-label="New CloudProvider">\n <form name="cloudProviderForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SETTINGS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.cloudProvider.name" ng-required="true" autofocus>\n\n <div ng-messages="cloudProviderForm[\'name\'].$error" ng-show="cloudProviderForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.SERVICE">Service</label>\n <md-select name="service" ng-model="vm.cloudProvider.service" required ng-disabled="!vm.newCloudProvider">\n <md-option ng-value="\'AmazonAWS\'">AmazonAWS</md-option>\n </md-select>\n <div ng-messages="cloudProviderForm[\'service\'].$error" ng-show="cloudProviderForm[\'service\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SERVICE_REQUIRED">Service field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.cloudProvider.service == \'AmazonAWS\'" class="md-block">\n <label translate="SETTINGS.ACCESSKEY">AccessKey</label>\n <input type="text" name="data2" ng-model="vm.cloudProvider.data2" ng-required="true">\n\n <div ng-messages="cloudProviderForm[\'data2\'].$error" ng-show="cloudProviderForm[\'data2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.ACCESSKEY_REQUIRED">AccessKey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.cloudProvider.service == \'AmazonAWS\'" class="md-block">\n <label translate="SETTINGS.SECRETACCESSKEY">SecretAccesskey</label>\n <input type="text" name="data1" ng-model="vm.cloudProvider.data1" ng-required="true">\n\n <div ng-messages="cloudProviderForm[\'data1\'].$error" ng-show="cloudProviderForm[\'data1\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SECRETACCESSKEY_REQUIRED">SecretAccesskey field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="!vm.newCloudProvider" ng-click="vm.saveCloudProvider()" class="send-button md-accent md-raised" ng-disabled="cloudProviderForm.$invalid || cloudProviderForm.$pristine" aria-label="SAVE" translate="SETTINGS.SAVE" translate-attr-aria-label="SETTINGS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.newCloudProvider" ng-click="vm.addNewCloudProvider()" class="send-button md-accent md-raised" ng-disabled="cloudProviderForm.$invalid" aria-label="ADD" translate="SETTINGS.ADD_CLOUDPROVIDER" translate-attr-aria-label="SETTINGS.ADD_CLOUDPROVIDER">\n ADD CLOUDPROVIDER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-click="vm.deleteCloudProvider($event)" aria-label="DELETE" translate translate-attr-aria-label="SETTINGS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="SETTINGS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/settings/views/customizations/create/dialog.html",'<md-dialog class="customization-dialog" aria-label="New Customization">\n <form name="customizationForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.customization.defaultLogo" aria-label="Default_Logo"><span translate="SETTINGS.DEFAULT_LOGO">Default_Logo</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.customization.defaultLoginLogo" aria-label="Default_Login_Logo"><span translate="SETTINGS.DEFAULT_LOGIN_LOGO">Default_Login_Logo</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.customization.defaultFavicon" aria-label="Default_Favicon"><span translate="SETTINGS.DEFAULT_FAVICON">Default_Favicon</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.customization.defaultHeaderWhiteLabel" aria-label="Default_Header_WhiteLabel"><span translate="SETTINGS.DEFAULT_HEADER_WHITELABEL">Default_Header_WhiteLabel</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="!vm.customization.defaultHeaderWhiteLabel" class="md-block">\n <label translate="SETTINGS.HEADER_WHITELABEL">Header_WhiteLabel</label>\n <input type="text" name="headerWhiteLabel" ng-model="vm.customization.headerWhiteLabel" ng-required="true">\n\n <div ng-messages="customizationForm[\'headerWhiteLabel\'].$error" ng-show="customizationForm[\'headerWhiteLabel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.HEADER_WHITELABEL_REQUIRED">Header_WhiteLabel field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.customization.defaultPageTitle" aria-label="Default_Page_Title"><span translate="SETTINGS.DEFAULT_PAGE_TITLE">Default_Page_Title</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="!vm.customization.defaultPageTitle" class="md-block">\n <label translate="SETTINGS.PAGE_TITLE">Page_Title</label>\n <input type="text" name="pageTitle" ng-model="vm.customization.pageTitle" ng-required="true">\n\n <div ng-messages="customizationForm[\'pageTitle\'].$error" ng-show="customizationForm[\'pageTitle\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PAGE_TITLE_REQUIRED">Page_Title field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.license.preferred" class="md-block">\n <md-switch ng-model="vm.customization.defaultPreferred" aria-label="Default_Preferred"><span translate="SETTINGS.DEFAULT_PREFERRED">Default_Preferred</span></md-switch>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newCustomization" ng-click="vm.saveCustomization()" class="send-button md-accent md-raised" ng-disabled="customizationForm.$invalid || customizationForm.$pristine" aria-label="SAVE" translate="SETTINGS.SAVE" translate-attr-aria-label="SETTINGS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newCustomization" ng-click="vm.addNewCustomization()" class="send-button md-accent md-raised" ng-disabled="customizationForm.$invalid" aria-label="ADD" translate="SETTINGS.ADD_CUSTOMIZATION" translate-attr-aria-label="SETTINGS.ADD_CUSTOMIZATION">\n ADD CUSTOMIZATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newCustomization" ng-click="vm.deleteCustomization($event)" aria-label="DELETE" translate translate-attr-aria-label="SETTINGS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="SETTINGS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/settings/views/customizations/customizations.html",'<div id="customizations" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-cog" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="SETTINGS.CUSTOMIZATIONS">Customizations</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div>\n <md-button type="submit" ng-click="vm.saveCustomization()" ng-disabled="(customizationsForm.$pristine && logoForm.$pristine && logologinForm.$pristine && preferredForm.$pristine && faviconForm.$pristine) || (customizationsForm.$invalid || logoForm.$invalid || logologinForm.$invalid || preferredForm.$invalid || faviconForm.$invalid)" class="send-button md-accent md-raised" translate="SETTINGS.SAVE" translate-attr-aria-label="SETTINGS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n <div class="customization-detail-form-container customizations md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SETTINGS.CUSTOMIZATIONS">CUSTOMIZATIONS</div>\n </div>\n <form name="customizationsForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.customization.defaultLogo" aria-label="Default_Logo"><span translate="SETTINGS.DEFAULT_LOGO">Default_Logo</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.customization.defaultLoginLogo" aria-label="Default_Login_Logo"><span translate="SETTINGS.DEFAULT_LOGIN_LOGO">Default_Login_Logo</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.customization.defaultFavicon" aria-label="Default_Favicon"><span translate="SETTINGS.DEFAULT_FAVICON">Default_Favicon</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.customization.defaultHeaderWhiteLabel" aria-label="Default_Header_WhiteLabel"><span translate="SETTINGS.DEFAULT_HEADER_WHITELABEL">Default_Header_WhiteLabel</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="!vm.customization.defaultHeaderWhiteLabel" class="md-block">\n <label translate="SETTINGS.HEADER_WHITELABEL">Header_WhiteLabel</label>\n <input type="text" name="headerWhiteLabel" ng-model="vm.customization.headerWhiteLabel" ng-required="true">\n\n <div ng-messages="customizationsForm[\'headerWhiteLabel\'].$error" ng-show="customizationsForm[\'headerWhiteLabel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.HEADER_WHITELABEL_REQUIRED">Header_WhiteLabel field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.customization.defaultPageTitle" aria-label="Default_Page_Title"><span translate="SETTINGS.DEFAULT_PAGE_TITLE">Default_Page_Title</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="!vm.customization.defaultPageTitle" class="md-block">\n <label translate="SETTINGS.PAGE_TITLE">Page_Title</label>\n <input type="text" name="pageTitle" ng-model="vm.customization.pageTitle" ng-required="true">\n\n <div ng-messages="customizationsForm[\'pageTitle\'].$error" ng-show="customizationsForm[\'pageTitle\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PAGE_TITLE_REQUIRED">Page_Title field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.license.preferred" class="md-block">\n <md-switch ng-model="vm.customization.defaultPreferred" aria-label="Default_Preferred"><span translate="SETTINGS.DEFAULT_PREFERRED">Default_Preferred</span></md-switch>\n </md-input-container>\n\n </form>\n </div>\n\n <div ng-if="!vm.customization.defaultLogo" class="customization-detail-form-container logo md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SETTINGS.LOGO">LOGO</div>\n </div>\n <div ng-controller="CustomizationlogoController as vm_cl" ng-init="vm_cl.init(vm.customization)" class="customization-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="customization-image-uploader" flow-init="vm_cl.ngFlowOptions" flow-name="vm_cl.ngFlow.flow" flow-files-submitted="vm_cl.upload()" flow-file-added="vm_cl.fileAdded($file)" flow-file-success="vm_cl.fileSuccess($file, $message)" flow-complete="vm_cl.uploadComplete()" flow-drop flow-drag-enter="vm_cl.dropping=true" flow-drag-leave="vm_cl.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n <div class="drop-text hint-text" layout="row" layout-align="center center">\n <span translate="EC.DROP_TO_UPLOAD">Drop to upload</span>\n </div>\n\n <div class="upload-button" layout="column" layout-align="center center">\n <md-button class="md-accent md-raised" flow-btn>\n Upload\n </md-button>\n <span class="secondary-text mt-8">You can also drop images here to upload. Only PNG, JPG - Max. 8MB</span>\n </div>\n\n <div layout="row" layout-align="start start" layout-wrap>\n <div ng-repeat="logoimage in vm_cl.customization.images" ng-switch="logoimage.type">\n <div class="customization-image uploading" ng-switch-when="uploading" layout="row" layout-align="center center">\n <div class="overlay" layout="column" layout-align="center center">\n <md-progress-linear md-mode="determinate" value="{{logoimage.file.progress() * 100}}">\n </md-progress-linear>\n </div>\n <img class="media" flow-img="logoimage.file">\n </div>\n\n <div class="customization-image" ng-switch-when="image" layout="row" layout-align="center center">\n <img class="media" ng-src="{{logoimage.url}}">\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n\n <div ng-if="!vm.customization.defaultLoginLogo" class="customization-detail-form-container logologin md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SETTINGS.LOGOLOGIN">LOGOLOGIN</div>\n </div>\n <div ng-controller="CustomizationlogologinController as vm_cll" ng-init="vm_cll.init(vm.customization)" class="customization-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="customization-image-uploader" flow-init="vm_cll.ngFlowOptions" flow-name="vm_cll.ngFlow.flow" flow-files-submitted="vm_cll.upload()" flow-file-added="vm_cll.fileAdded($file)" flow-file-success="vm_cll.fileSuccess($file, $message)" flow-complete="vm_cll.uploadComplete()" flow-drop flow-drag-enter="vm_cll.dropping=true" flow-drag-leave="vm_cll.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n <div class="drop-text hint-text" layout="row" layout-align="center center">\n <span translate="EC.DROP_TO_UPLOAD">Drop to upload</span>\n </div>\n\n <div class="upload-button" layout="column" layout-align="center center">\n <md-button class="md-accent md-raised" flow-btn>\n Upload\n </md-button>\n <span class="secondary-text mt-8">You can also drop images here to upload. Only PNG, JPG - Max. 8MB</span>\n </div>\n\n <div layout="row" layout-align="start start" layout-wrap>\n <div ng-repeat="logologinimage in vm_cll.customization.images" ng-switch="logologinimage.type">\n <div class="customization-image uploading" ng-switch-when="uploading" layout="row" layout-align="center center">\n <div class="overlay" layout="column" layout-align="center center">\n <md-progress-linear md-mode="determinate" value="{{logologinimage.file.progress() * 100}}">\n </md-progress-linear>\n </div>\n <img class="media" flow-img="logologinimage.file">\n </div>\n\n <div class="customization-image" ng-switch-when="image" layout="row" layout-align="center center">\n <img class="media" ng-src="{{logologinimage.url}}">\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n\n <div ng-if="!vm.customization.defaultPreferred && vm.license.preferred" class="customization-detail-form-container preferred md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SETTINGS.PREFERRED">PREFERRED</div>\n </div>\n <div ng-controller="CustomizationpreferredController as vm_cp" ng-init="vm_cp.init(vm.customization)" class="customization-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="customization-image-uploader" flow-init="vm_cp.ngFlowOptions" flow-name="vm_cp.ngFlow.flow" flow-files-submitted="vm_cp.upload()" flow-file-added="vm_cp.fileAdded($file)" flow-file-success="vm_cp.fileSuccess($file, $message)" flow-complete="vm_cp.uploadComplete()" flow-drop flow-drag-enter="vm_cp.dropping=true" flow-drag-leave="vm_cp.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n <div class="drop-text hint-text" layout="row" layout-align="center center">\n <span translate="EC.DROP_TO_UPLOAD">Drop to upload</span>\n </div>\n\n <div class="upload-button" layout="column" layout-align="center center">\n <md-button class="md-accent md-raised" flow-btn>\n Upload\n </md-button>\n <span class="secondary-text mt-8">You can also drop images here to upload. Only PNG, JPG - Max. 8MB</span>\n </div>\n\n <div layout="row" layout-align="start start" layout-wrap>\n <div ng-repeat="preferredimage in vm_cp.customization.images" ng-switch="preferredimage.type">\n <div class="customization-image uploading" ng-switch-when="uploading" layout="row" layout-align="center center">\n <div class="overlay" layout="column" layout-align="center center">\n <md-progress-linear md-mode="determinate" value="{{preferredimage.file.progress() * 100}}">\n </md-progress-linear>\n </div>\n <img class="media" flow-img="preferredimage.file">\n </div>\n\n <div class="customization-image" ng-switch-when="image" layout="row" layout-align="center center">\n <img class="media" ng-src="{{preferredimage.url}}">\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n\n <div ng-if="!vm.customization.defaultFavicon" class="customization-detail-form-container favicon md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SETTINGS.FAVICON">FAVICON</div>\n </div>\n <div ng-controller="CustomizationfaviconController as vm_cf" ng-init="vm_cf.init(vm.customization)" class="customization-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="customization-image-uploader" flow-init="vm_cf.ngFlowOptions" flow-name="vm_cf.ngFlow.flow" flow-files-submitted="vm_cf.upload()" flow-file-added="vm_cf.fileAdded($file)" flow-file-success="vm_cf.fileSuccess($file, $message)" flow-complete="vm_cf.uploadComplete()" flow-drop flow-drag-enter="vm_cf.dropping=true" flow-drag-leave="vm_cf.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n <div class="drop-text hint-text" layout="row" layout-align="center center">\n <span translate="EC.DROP_TO_UPLOAD">Drop to upload</span>\n </div>\n\n <div class="upload-button" layout="column" layout-align="center center">\n <md-button class="md-accent md-raised" flow-btn>\n Upload\n </md-button>\n <span class="secondary-text mt-8">You can also drop images here to upload. Only PNG, JPG, ICO - Max. 8MB</span>\n </div>\n\n <div layout="row" layout-align="start start" layout-wrap>\n <div ng-repeat="faviconimage in vm_cf.customization.images" ng-switch="faviconimage.type">\n <div class="customization-image uploading" ng-switch-when="uploading" layout="row" layout-align="center center">\n <div class="overlay" layout="column" layout-align="center center">\n <md-progress-linear md-mode="determinate" value="{{faviconimage.file.progress() * 100}}">\n </md-progress-linear>\n </div>\n <img class="media" flow-img="faviconimage.file">\n </div>\n\n <div class="customization-image" ng-switch-when="image" layout="row" layout-align="center center">\n <img class="media" ng-src="{{faviconimage.url}}">\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/settings/views/generals/create/dialog.html",'<md-dialog class="general-dialog" aria-label="New General">\n <form name="generalForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newGeneral" ng-click="vm.saveGeneral()" class="send-button md-accent md-raised" ng-disabled="generalForm.$invalid || generalForm.$pristine" aria-label="SAVE" translate="SETTINGS.SAVE" translate-attr-aria-label="SETTINGS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newGeneral" ng-click="vm.addNewGeneral()" class="send-button md-accent md-raised" ng-disabled="generalForm.$invalid" aria-label="ADD" translate="SETTINGS.ADD_GENERAL" translate-attr-aria-label="SETTINGS.ADD_GENERAL">\n ADD GENERAL\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newGeneral" ng-click="vm.deleteGeneral($event)" aria-label="DELETE" translate translate-attr-aria-label="SETTINGS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="SETTINGS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/settings/views/generals/generals.html",'<div id="generals" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-cog" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="SETTINGS.GENERAL">General</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div>\n <md-button type="submit" ng-click="vm.saveGeneral()" ng-disabled="(globalForm.$pristine && motionbarForm.$pristine && reportForm.$pristine && agentOmniDesktopInterfaceForm.$pristine && screenRecordingForm.$pristine && securityForm.$pristine && imapGeneralSettingsForm.$pristine && SSOForm.$pristine && aiToolsForm.$pristine) || (globalForm.$invalid || motionbarForm.$invalid || reportForm.$invalid || agentOmniDesktopInterfaceForm.$invalid || screenRecordingForm.$invalid || securityForm.$invalid || imapGeneralSettingsForm.$invalid || SSOForm.$invalid || aiToolsForm.$invalid)" class="send-button md-accent md-raised" translate="SETTINGS.SAVE" translate-attr-aria-label="SETTINGS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n <div class="general-detail-form-container global md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SETTINGS.GLOBAL">GLOBAL</div>\n </div>\n <form name="globalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="SETTINGS.MIN_INTERNAL">Min_Internal</label>\n <input type="number" name="min_internal" ng-model="vm.general.min_internal" min="0" value="1000" ng-required="true" autofocus>\n\n <div ng-messages="globalForm[\'min_internal\'].$error" ng-show="globalForm[\'min_internal\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.MIN_INTERNAL_REQUIRED">Min_Internal field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SETTINGS.ERRORS.MIN_INTERNAL_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Min_Internal must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.CHATTIMEOUT">chatTimeout</label>\n <input type="number" name="chatTimeout" ng-model="vm.general.chatTimeout" min="0" value="30" ng-required="true">\n\n <div ng-messages="globalForm[\'chatTimeout\'].$error" ng-show="globalForm[\'chatTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.CHATTIMEOUT_REQUIRED">chatTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SETTINGS.ERRORS.CHATTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">chatTimeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.rtlSupport" aria-label="RtlSupport"><span translate="SETTINGS.RTLSUPPORT">RtlSupport</span></md-switch>\n <div class="hint"><span translate="SETTINGS.HELP.RTLSUPPORT"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.stopRecordingOnTransfer" aria-label="Stop_Recording_On_Voice_Call_Transfer"><span translate="SETTINGS.STOP_RECORDING_ON_VOICE_CALL_TRANSFER">Stop_Recording_On_Voice_Call_Transfer</span></md-switch>\n </md-input-container>\n\n </form>\n </div>\n\n <div class="general-detail-form-container motionbar md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SETTINGS.MOTIONBAR">MOTIONBAR</div>\n </div>\n <form name="motionbarForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.phoneBarAutoUpdater" aria-label="MotionbarAutoUpdater"><span translate="SETTINGS.MOTIONBARAUTOUPDATER">MotionbarAutoUpdater</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.general.phoneBarAutoUpdater" class="md-block">\n <label translate="SETTINGS.MOTIONBARAUTOUPDATERURL">MotionbarAutoUpdaterUrl</label>\n <input type="url" name="phoneBarAutoUpdaterUrl" ng-model="vm.general.phoneBarAutoUpdaterUrl" value="https://www.xcally.com/bar/phonebar/autoupdater.xml" ng-required="vm.general.phoneBarAutoUpdater">\n\n <div ng-messages="motionbarForm[\'phoneBarAutoUpdaterUrl\'].$error" ng-show="motionbarForm[\'phoneBarAutoUpdaterUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.MOTIONBARAUTOUPDATERURL_REQUIRED">MotionbarAutoUpdaterUrl field is required</span>\n </div>\n <div ng-message="url">\n <span translate="SETTINGS.ERRORS.MOTIONBARAUTOUPDATERURL_MUST_VALID_URL">MotionbarAutoUpdaterUrl must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.phoneBarRememberMeEnabled" aria-label="MotionbarRememberMe"><span translate="SETTINGS.MOTIONBARREMEMBERME">MotionbarRememberMe</span></md-switch>\n <div class="hint"><span translate="SETTINGS.HELP.MOTIONBARREMEMBERME"></span></div>\n </md-input-container>\n\n </form>\n </div>\n\n <div class="general-detail-form-container report md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SETTINGS.REPORT">REPORT</div>\n </div>\n <form name="reportForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.split" aria-label="Split"><span translate="SETTINGS.SPLIT">Split</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.general.split" class="md-block">\n <label translate="SETTINGS.SPLITSIZECSV">SplitSizeCsv</label>\n <input type="number" name="splitSizeCsv" ng-model="vm.general.splitSizeCsv" value="5000">\n\n <div ng-messages="reportForm[\'splitSizeCsv\'].$error" ng-show="reportForm[\'splitSizeCsv\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SPLITSIZECSV_REQUIRED">SplitSizeCsv field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.general.split" class="md-block">\n <label translate="SETTINGS.SPLITSIZEPDF">SplitSizePdf</label>\n <input type="number" name="splitSizePdf" ng-model="vm.general.splitSizePdf" value="1000">\n\n <div ng-messages="reportForm[\'splitSizePdf\'].$error" ng-show="reportForm[\'splitSizePdf\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SPLITSIZEPDF_REQUIRED">SplitSizePdf field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.general.split" class="md-block">\n <label translate="SETTINGS.SPLITSIZEXLSX">SplitSizeXlsx</label>\n <input type="number" name="splitSizeXlsx" ng-model="vm.general.splitSizeXlsx" value="5000">\n\n <div ng-messages="reportForm[\'splitSizeXlsx\'].$error" ng-show="reportForm[\'splitSizeXlsx\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SPLITSIZEXLSX_REQUIRED">SplitSizeXlsx field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n\n <div class="general-detail-form-container agentomnidesktopinterface md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SETTINGS.AGENTOMNIDESKTOPINTERFACE">AGENTOMNIDESKTOPINTERFACE</div>\n </div>\n <form name="agentOmniDesktopInterfaceForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.enableEmailPreview" aria-label="EnableEmailPreview"><span translate="SETTINGS.ENABLEEMAILPREVIEW">EnableEmailPreview</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.searchOnEnterKey" aria-label="Search_On_Enter_Key"><span translate="SETTINGS.SEARCH_ON_ENTER_KEY">Search_On_Enter_Key</span></md-switch>\n <div class="hint"><span translate="SETTINGS.HELP.SEARCH_ON_ENTER_KEY"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.MESSAGESALIGNMENT">messagesAlignment</label>\n <md-select name="messagesAlignment" ng-model="vm.general.messagesAlignment">\n <md-option ng-value="\'alternate\'">Alternate</md-option>\n <md-option ng-value="\'left\'">Left</md-option>\n <md-option ng-value="\'right\'">Right</md-option>\n </md-select>\n <div ng-messages="agentOmniDesktopInterfaceForm[\'messagesAlignment\'].$error" ng-show="agentOmniDesktopInterfaceForm[\'messagesAlignment\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.MESSAGESALIGNMENT_REQUIRED">messagesAlignment field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.CHAT_INTERACTIONS_RELOAD_TIMEOUT">Chat_Interactions_Reload_Timeout</label>\n <input type="number" name="chatInteractionsReloadTimeout" ng-model="vm.general.chatInteractionsReloadTimeout">\n\n <div class="hint"><span translate="SETTINGS.HELP.INTERACTIONS_RELOAD_TIMEOUT"></span></div>\n <div ng-messages="agentOmniDesktopInterfaceForm[\'chatInteractionsReloadTimeout\'].$error" ng-show="agentOmniDesktopInterfaceForm[\'chatInteractionsReloadTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.CHAT_INTERACTIONS_RELOAD_TIMEOUT_REQUIRED">Chat_Interactions_Reload_Timeout field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.MAIL_INTERACTIONS_RELOAD_TIMEOUT">Mail_Interactions_Reload_Timeout</label>\n <input type="number" name="mailInteractionsReloadTimeout" ng-model="vm.general.mailInteractionsReloadTimeout">\n\n <div class="hint"><span translate="SETTINGS.HELP.INTERACTIONS_RELOAD_TIMEOUT"></span></div>\n <div ng-messages="agentOmniDesktopInterfaceForm[\'mailInteractionsReloadTimeout\'].$error" ng-show="agentOmniDesktopInterfaceForm[\'mailInteractionsReloadTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.MAIL_INTERACTIONS_RELOAD_TIMEOUT_REQUIRED">Mail_Interactions_Reload_Timeout field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.OPENCHANNEL_INTERACTIONS_RELOAD_TIMEOUT">Openchannel_Interactions_Reload_Timeout</label>\n <input type="number" name="openchannelInteractionsReloadTimeout" ng-model="vm.general.openchannelInteractionsReloadTimeout">\n\n <div class="hint"><span translate="SETTINGS.HELP.INTERACTIONS_RELOAD_TIMEOUT"></span></div>\n <div ng-messages="agentOmniDesktopInterfaceForm[\'openchannelInteractionsReloadTimeout\'].$error" ng-show="agentOmniDesktopInterfaceForm[\'openchannelInteractionsReloadTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.OPENCHANNEL_INTERACTIONS_RELOAD_TIMEOUT_REQUIRED">Openchannel_Interactions_Reload_Timeout field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.SMS_INTERACTIONS_RELOAD_TIMEOUT">Sms_Interactions_Reload_Timeout</label>\n <input type="number" name="smsInteractionsReloadTimeout" ng-model="vm.general.smsInteractionsReloadTimeout">\n\n <div class="hint"><span translate="SETTINGS.HELP.INTERACTIONS_RELOAD_TIMEOUT"></span></div>\n <div ng-messages="agentOmniDesktopInterfaceForm[\'smsInteractionsReloadTimeout\'].$error" ng-show="agentOmniDesktopInterfaceForm[\'smsInteractionsReloadTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SMS_INTERACTIONS_RELOAD_TIMEOUT_REQUIRED">Sms_Interactions_Reload_Timeout field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.WHATSAPP_INTERACTIONS_RELOAD_TIMEOUT">Whatsapp_Interactions_Reload_Timeout</label>\n <input type="number" name="whatsappInteractionsReloadTimeout" ng-model="vm.general.whatsappInteractionsReloadTimeout">\n\n <div class="hint"><span translate="SETTINGS.HELP.INTERACTIONS_RELOAD_TIMEOUT"></span></div>\n <div ng-messages="agentOmniDesktopInterfaceForm[\'whatsappInteractionsReloadTimeout\'].$error" ng-show="agentOmniDesktopInterfaceForm[\'whatsappInteractionsReloadTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.WHATSAPP_INTERACTIONS_RELOAD_TIMEOUT_REQUIRED">Whatsapp_Interactions_Reload_Timeout field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n\n <div ng-if="vm.license.screenrecording" class="general-detail-form-container screenrecording md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SETTINGS.SCREENRECORDING">SCREENRECORDING</div>\n </div>\n <form name="screenRecordingForm" novalidate>\n <md-input-container class="md-block">\n <label translate="SETTINGS.DEFAULTSCREENRECORDINGPATH">defaultScreenRecordingPath</label>\n <input type="text" name="defaultScreenRecordingPath" ng-model="vm.general.defaultScreenRecordingPath" autofocus>\n\n <div class="hint"><span translate="SETTINGS.HELP.DEFAULTSCREENRECORDINGPATH"></span></div>\n <div ng-messages="screenRecordingForm[\'defaultScreenRecordingPath\'].$error" ng-show="screenRecordingForm[\'defaultScreenRecordingPath\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.DEFAULTSCREENRECORDINGPATH_REQUIRED">defaultScreenRecordingPath field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n\n <div class="general-detail-form-container security md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SETTINGS.SECURITY">SECURITY</div>\n </div>\n <form name="securityForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.securePassword" aria-label="Security_Suite"><span translate="SETTINGS.SECURITY_SUITE">Security_Suite</span></md-switch>\n <div class="hint"><span translate="SETTINGS.HELP.SECURITY_SUITE"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.callRecordingEncryption" aria-label="Call_Recording_Encryption"><span translate="SETTINGS.CALL_RECORDING_ENCRYPTION">Call_Recording_Encryption</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.ALLOWEDLOGINATTEMPTS">allowedLoginAttempts</label>\n <input type="number" name="allowedLoginAttempts" ng-model="vm.general.allowedLoginAttempts" value="5" ng-required="true">\n\n <div ng-messages="securityForm[\'allowedLoginAttempts\'].$error" ng-show="securityForm[\'allowedLoginAttempts\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.ALLOWEDLOGINATTEMPTS_REQUIRED">allowedLoginAttempts field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.BLOCKDURATION">blockDuration</label>\n <input type="number" name="blockDuration" ng-model="vm.general.blockDuration" value="10" ng-required="true">\n\n <div ng-messages="securityForm[\'blockDuration\'].$error" ng-show="securityForm[\'blockDuration\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.BLOCKDURATION_REQUIRED">blockDuration field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.enforcePasswordHistory" aria-label="Enforce_Password_History"><span translate="SETTINGS.ENFORCE_PASSWORD_HISTORY">Enforce_Password_History</span></md-switch>\n <div class="hint"><span translate="SETTINGS.HELP.ENFORCE_PASSWORD_HISTORY"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.general.enforcePasswordHistory" class="md-block">\n <label translate="SETTINGS.PASSWORD_HISTORY_LIMIT">Password_History_Limit</label>\n <input type="number" name="passwordHistoryLimit" ng-model="vm.general.passwordHistoryLimit" min="2" max="5" value="3">\n\n <div class="hint"><span translate="SETTINGS.HELP.PASSWORD_HISTORY_LIMIT"></span></div>\n <div ng-messages="securityForm[\'passwordHistoryLimit\'].$error" ng-show="securityForm[\'passwordHistoryLimit\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PASSWORD_HISTORY_LIMIT_REQUIRED">Password_History_Limit field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SETTINGS.ERRORS.PASSWORD_HISTORY_LIMIT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Password_History_Limit must be a valid greater or equal than</span> <span>2</span>\n </div>\n <div ng-message="max">\n <span translate="SETTINGS.ERRORS.PASSWORD_HISTORY_LIMIT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Password_History_Limit must be a valid greater or equal than</span> <span>5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block no-margin-bottom">\n <md-switch ng-change="vm.onPrivacyPolicyChange(\'email\')" ng-model="vm.general.enablePrivacyPolicyEmail" aria-label="Privacy_Policy_Email"><span translate="SETTINGS.PRIVACY_POLICY_EMAIL">Privacy_Policy_Email</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.general.enablePrivacyPolicyEmail" class="md-block no-margin-top">\n\n <input type="number" name="privacyPolicyEmail" ng-model="vm.general.privacyPolicyEmail" min="0" value="0" ng-required="true">\n\n <div class="hint"><span translate="SETTINGS.HELP.PRIVACY_POLICY"></span></div>\n <div ng-messages="securityForm[\'privacyPolicyEmail\'].$error" ng-show="securityForm[\'privacyPolicyEmail\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PRIVACY_POLICY_EMAIL_REQUIRED">Privacy_Policy_Email field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SETTINGS.ERRORS.PRIVACY_POLICY_EMAIL_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Privacy_Policy_Email must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block no-margin-bottom">\n <md-switch ng-change="vm.onPrivacyPolicyChange(\'name\')" ng-model="vm.general.enablePrivacyPolicyName" aria-label="Privacy_Policy_Name"><span translate="SETTINGS.PRIVACY_POLICY_NAME">Privacy_Policy_Name</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.general.enablePrivacyPolicyName" class="md-block no-margin-top">\n\n <input type="number" name="privacyPolicyName" ng-model="vm.general.privacyPolicyName" min="0" value="0" ng-required="true">\n\n <div class="hint"><span translate="SETTINGS.HELP.PRIVACY_POLICY"></span></div>\n <div ng-messages="securityForm[\'privacyPolicyName\'].$error" ng-show="securityForm[\'privacyPolicyName\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PRIVACY_POLICY_NAME_REQUIRED">Privacy_Policy_Name field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SETTINGS.ERRORS.PRIVACY_POLICY_NAME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Privacy_Policy_Name must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block no-margin-bottom">\n <md-switch ng-change="vm.onPrivacyPolicyChange(\'number\')" ng-model="vm.general.enablePrivacyPolicyNumber" aria-label="Privacy_Policy_Number"><span translate="SETTINGS.PRIVACY_POLICY_NUMBER">Privacy_Policy_Number</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.general.enablePrivacyPolicyNumber" class="md-block no-margin-top">\n\n <input type="number" name="privacyPolicyNumber" ng-model="vm.general.privacyPolicyNumber" min="0" value="0" ng-required="true">\n\n <div class="hint"><span translate="SETTINGS.HELP.PRIVACY_POLICY"></span></div>\n <div ng-messages="securityForm[\'privacyPolicyNumber\'].$error" ng-show="securityForm[\'privacyPolicyNumber\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PRIVACY_POLICY_NUMBER_REQUIRED">Privacy_Policy_Number field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SETTINGS.ERRORS.PRIVACY_POLICY_NUMBER_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Privacy_Policy_Number must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n\n <div class="general-detail-form-container imapgeneralsettings md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SETTINGS.IMAPGENERALSETTINGS">IMAPGENERALSETTINGS</div>\n </div>\n <form name="imapGeneralSettingsForm" novalidate>\n <md-input-container class="md-block">\n <label translate="SETTINGS.LOGINMAILFREQUENCY">loginMailFrequency</label>\n <input type="number" name="loginMailFrequency" ng-model="vm.general.loginMailFrequency" min="10" value="10" ng-required="true" autofocus>\n\n <div class="hint"><span translate="SETTINGS.HELP.LOGINMAILFREQUENCY"></span></div>\n <div ng-messages="imapGeneralSettingsForm[\'loginMailFrequency\'].$error" ng-show="imapGeneralSettingsForm[\'loginMailFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.LOGINMAILFREQUENCY_REQUIRED">loginMailFrequency field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SETTINGS.ERRORS.LOGINMAILFREQUENCY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">loginMailFrequency must be a valid greater or equal than</span> <span>10</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n\n <div class="general-detail-form-container sso md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SETTINGS.SSO">SSO</div>\n </div>\n <form name="SSOForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.googleSsoEnabled" aria-label="Google_SSO_enabled"><span translate="SETTINGS.GOOGLE_SSO_ENABLED">Google_SSO_enabled</span></md-switch>\n </md-input-container>\n\n </form>\n </div>\n\n <div ng-if="vm.license.ai" class="general-detail-form-container aitools md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SETTINGS.AITOOLS">AITOOLS</div>\n </div>\n <form name="aiToolsForm" novalidate>\n <md-input-container class="md-block">\n <label translate="SETTINGS.LANGUAGE">Language</label>\n <md-select name="language" ng-model="vm.general.language" autofocus required>\n <md-option ng-value="\'en-US\'">US English</md-option>\n <md-option ng-value="\'en-AU\'">Australian English</md-option>\n <md-option ng-value="\'en-GB\'">British English</md-option>\n <md-option ng-value="\'en-AB\'">Scottish English</md-option>\n <md-option ng-value="\'en-WL\'">Welsh English</md-option>\n <md-option ng-value="\'en-IE\'">English (Ireland)</md-option>\n <md-option ng-value="\'en-IN\'">Indian English</md-option>\n <md-option ng-value="\'hi-IN\'">Hindi (India)</md-option>\n <md-option ng-value="\'fr-CA\'">Canadian French</md-option>\n <md-option ng-value="\'fr-FR\'">French</md-option>\n <md-option ng-value="\'de-DE\'">German</md-option>\n <md-option ng-value="\'de-CH\'">German (Switzerland)</md-option>\n <md-option ng-value="\'it-IT\'">Italian</md-option>\n <md-option ng-value="\'es-ES\'">Spanish</md-option>\n <md-option ng-value="\'es-Us\'">US Spanish</md-option>\n <md-option ng-value="\'pt-BR\'">Brazilian Portuguese</md-option>\n <md-option ng-value="\'pt-PT\'">Portuguese(Portugal)</md-option>\n <md-option ng-value="\'ar-SA\'">Modern Standard Arabic</md-option>\n <md-option ng-value="\'ar-AE\'">Arabic</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese Mandarin - Mainland</md-option>\n <md-option ng-value="\'ja-JP\'">Japanese (Japan)</md-option>\n <md-option ng-value="\'ko-KR\'">Korean (Korea)</md-option>\n <md-option ng-value="\'he-IL\'">Hebrew (Israel) - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'ms-MY\'">Malay (Malaysia) - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'fa-IR\'">Farsi (Iran) - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'ru-RU\'">Russian (Russia) - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'te-IN\'">Telugu(India) - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'ta-IN\'">Tamil - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'nl-NL\'">Dutch - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'tr-TR\'">Turkish (Turkey) - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'id-ID\'">Indonesian(Indonesia) - This language is not available for the Sentiment Analysis</md-option>\n </md-select>\n <div ng-messages="aiToolsForm[\'language\'].$error" ng-show="aiToolsForm[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.LANGUAGE_REQUIRED">Language field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.BUCKET">Bucket</label>\n <input type="text" name="bucket" ng-model="vm.general.bucket" ng-required="true">\n\n <div ng-messages="aiToolsForm[\'bucket\'].$error" ng-show="aiToolsForm[\'bucket\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.BUCKET_REQUIRED">Bucket field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.transcribe" aria-label="Transcribe"><span translate="SETTINGS.TRANSCRIBE">Transcribe</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.general.transcribe == true" class="md-block">\n <label translate="SETTINGS.TRANSCRIBEREGION">TranscribeRegion</label>\n <md-select name="transcribeRegion" ng-model="vm.general.transcribeRegion" required>\n <md-option ng-value="\'us-east-1\'">US East (N. Virginia)</md-option>\n <md-option ng-value="\'us-east-2\'">US East (Ohio)</md-option>\n <md-option ng-value="\'us-east-2\'">US West (N. California)</md-option>\n <md-option ng-value="\'us-west-2\'">US West (Oregon)</md-option>\n <md-option ng-value="\'ap-south-1\'">Asia Pacific (Mumbai)</md-option>\n <md-option ng-value="\'ap-east-1\'">Asia Pacific (Hong Kong)</md-option>\n <md-option ng-value="\'ap-northeast-2\'">Asia Pacific (Seoul)</md-option>\n <md-option ng-value="\'ap-southeast-1\'">Asia Pacific (Singapore)</md-option>\n <md-option ng-value="\'ap-southeast-2\'">Asia Pacific (Sydney)</md-option>\n <md-option ng-value="\'ap-northeast-1\'">Asia Pacific (Tokyo)</md-option>\n <md-option ng-value="\'ca-central-1\'">Canada (Central)</md-option>\n <md-option ng-value="\'eu-central-1\'">Europe (Frankfurt)</md-option>\n <md-option ng-value="\'eu-west-1\'">Europe (Ireland)</md-option>\n <md-option ng-value="\'eu-west-2\'">Europe (London)</md-option>\n <md-option ng-value="\'eu-west-3\'">Europe (Paris)</md-option>\n <md-option ng-value="\'me-south-1\'">Middle East (Bahrain)</md-option>\n <md-option ng-value="\'sa-east-1\'">South America (São Paulo)</md-option>\n </md-select>\n <div ng-messages="aiToolsForm[\'transcribeRegion\'].$error" ng-show="aiToolsForm[\'transcribeRegion\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.TRANSCRIBEREGION_REQUIRED">TranscribeRegion field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.general.transcribe == true" class="md-block">\n <label translate="SETTINGS.TRANSCRIBEACCOUNT">TranscribeAccount</label>\n <md-select name="transcribeAccountId" ng-model="vm.general.transcribeAccountId" required>\n <md-option ng-value="transcribeAccountId.id" ng-repeat="transcribeAccountId in vm.cloudProviders" ng-disabled="transcribeAccountId.canSelect === false">{{ transcribeAccountId.name }}</md-option>\n </md-select>\n <div ng-messages="aiToolsForm[\'transcribeAccountId\'].$error" ng-show="aiToolsForm[\'transcribeAccountId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.TRANSCRIBEACCOUNT_REQUIRED">TranscribeAccount field is required</span>\n </div>\n </div>\n </md-input-container>\n'+" <md-input-container ng-if=\"vm.general.transcribe == true && vm.general.language != 'he-IL' && vm.general.language != 'ms-MY' && vm.general.language != 'fa-IR' && vm.general.language != 'ru-RU' && vm.general.language != 'te-IN' && vm.general.language != 'ta-IN' && vm.general.language != 'nl-NL' && vm.general.language != 'tr-TR' && vm.general.language != 'id-ID'\" class=\"md-block\">\n <md-switch ng-model=\"vm.general.sentiment\" aria-label=\"SentimentAnalysis\"><span translate=\"SETTINGS.SENTIMENTANALYSIS\">SentimentAnalysis</span></md-switch>\n </md-input-container>\n <md-input-container ng-if=\"vm.general.sentiment == true && vm.general.transcribe == true && vm.general.language != 'he-IL' && vm.general.language != 'ms-MY' && vm.general.language != 'fa-IR' && vm.general.language != 'ru-RU' && vm.general.language != 'te-IN' && vm.general.language != 'ta-IN' && vm.general.language != 'nl-NL' && vm.general.language != 'tr-TR' && vm.general.language != 'id-ID'\" class=\"md-block\">\n <label translate=\"SETTINGS.SENTIMENTREGION\">SentimentRegion</label>\n <md-select name=\"sentimentRegion\" ng-model=\"vm.general.sentimentRegion\" required>\n <md-option ng-value=\"'us-east-1'\">US East (N. Virginia)</md-option>\n <md-option ng-value=\"'us-east-2'\">US East (Ohio)</md-option>\n <md-option ng-value=\"'us-west-2'\">US West (Oregon)</md-option>\n <md-option ng-value=\"'ap-south-1'\">Asia Pacific (Mumbai)</md-option>\n <md-option ng-value=\"'ap-northeast-2'\">Asia Pacific (Seoul)</md-option>\n <md-option ng-value=\"'ap-southeast-1'\">Asia Pacific (Singapore)</md-option>\n <md-option ng-value=\"'ap-southeast-2'\">Asia Pacific (Sydney)</md-option>\n <md-option ng-value=\"'ap-northeast-1'\">Asia Pacific (Tokyo)</md-option>\n <md-option ng-value=\"'ca-central-1'\">Canada (Central)</md-option>\n <md-option ng-value=\"'eu-central-1'\">Europe (Frankfurt)</md-option>\n <md-option ng-value=\"'eu-west-1'\">Europe (Ireland)</md-option>\n <md-option ng-value=\"'eu-west-2'\">Europe (London)</md-option>\n </md-select>\n <div ng-messages=\"aiToolsForm['sentimentRegion'].$error\" ng-show=\"aiToolsForm['sentimentRegion'].$touched\" role=\"alert\">\n <div ng-message=\"required\">\n <span translate=\"SETTINGS.ERRORS.SENTIMENTREGION_REQUIRED\">SentimentRegion field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if=\"vm.general.sentiment == true && vm.general.transcribe == true && vm.general.language != 'he-IL' && vm.general.language != 'ms-MY' && vm.general.language != 'fa-IR' && vm.general.language != 'ru-RU' && vm.general.language != 'te-IN' && vm.general.language != 'ta-IN' && vm.general.language != 'nl-NL' && vm.general.language != 'tr-TR' && vm.general.language != 'id-ID'\" class=\"md-block\">\n <label translate=\"SETTINGS.SENTIMENTACCOUNT\">SentimentAccount</label>\n <md-select name=\"sentimentAccountId\" ng-model=\"vm.general.sentimentAccountId\" required>\n <md-option ng-value=\"sentimentAccountId.id\" ng-repeat=\"sentimentAccountId in vm.cloudProviders\" ng-disabled=\"sentimentAccountId.canSelect === false\">{{ sentimentAccountId.name }}</md-option>\n </md-select>\n <div ng-messages=\"aiToolsForm['sentimentAccountId'].$error\" ng-show=\"aiToolsForm['sentimentAccountId'].$touched\" role=\"alert\">\n <div ng-message=\"required\">\n <span translate=\"SETTINGS.ERRORS.SENTIMENTACCOUNT_REQUIRED\">SentimentAccount field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n</div>"),e.put("app/main/apps/settings/views/license/license.html",'<div id="license" class="page-layout simple fullwidth doc-page">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-cog" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="SETTINGS.LICENSE">LICENSE</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n \x3c!-- <div>\n <md-button type="submit" ng-click="vm.requestLicense()" class="send-button md-raised" translate="SETTINGS.REQUEST_LICENSE" translate-attr-aria-label="SETTINGS.REQUEST_LICENSE">\n REQUEST LICENSE\n </md-button>\n </div> --\x3e\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n \x3c!-- LICENSE CARD --\x3e\n <div layout="row" flex>\n <md-card class="md-whiteframe-1dp padding-20" flex>\n <div layout="row" layout-align="center">\n <div flex layout="row" layout-align="start center">\n <div ng-if="!vm.license.custom">\n <a href="https://www.xcally.com/plans.html" target="_blank" class="md-button md-fab green-A700-bg" aria-label="Eat cake">\n <md-tooltip><span translate="SETTINGS.PRICES">Prices</span></md-tooltip>\n <md-icon md-font-icon="icon-coin"></md-icon>\n </a>\n </div>\n </div>\n <div flex>\n <div ng-switch="vm.license.months" class="text-center">\n <span ng-switch-when="1" class="md-title md-accent-fg text-bold">{{ \'SETTINGS.PLAN\' | translate }}: <span translate="SETTINGS.MONTH_TO_MONTH">MONTH TO MONTH</span></span>\n <span ng-switch-when="12" class="md-title md-accent-fg text-bold">{{ \'SETTINGS.PLAN\' | translate }}: <span translate="SETTINGS.ANNUALLY">ANNUALLY</span></span>\n <span ng-switch-when="36" class="md-title md-accent-fg text-bold">{{ \'SETTINGS.PLAN\' | translate }}: <span translate="SETTINGS.PERPETUAL">PERPETUAL</span></span>\n </div>\n </div>\n <div flex layout="row" layout-align="end center">\n <div>\n <md-button type="submit" ng-click="vm.updateLicense()" class="md-button md-fab md-accent">\n <md-tooltip><span translate="SETTINGS.UPDATE_LICENSE">License</span></md-tooltip>\n <md-icon md-font-icon="icon-pencil"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n\n <span ng-if="!vm.license.demo && !vm.license.gray && vm.license.months != 36" class="md-subhead md-warn-fg text-center">{{ \'SETTINGS.EXPIRATION_DATE\' | translate }}: {{vm.license.expiration | date: \'longDate\'}}</span>\n <span class="text-center padding-bottom-10"> {{ vm.license.machineUuid !== vm.license.uuid ? \'SETTINGS.OLD_TOKEN\' : \'SETTINGS.TOKEN\' | translate }}: <span class="text-italic text-bold">{{vm.license.uuid}}</span></span>\n\n <div layout="column">\n <span ng-if="vm.license.grayReason == \'changed\'" class="blink md-subhead md-warn-fg text-center">{{ \'SETTINGS.NEW_TOKEN_DETECTED\' | translate }}</span>\n <span ng-if="vm.license.grayReason == \'changed\'" class="text-center padding-bottom-10"> {{\'SETTINGS.NEW_TOKEN\' | translate }}: <span class="text-italic text-bold">{{vm.license.machineUuid}}</span></span>\n <span ng-if="vm.license.gray" class="blink md-subhead md-warn-fg text-center">{{ \'SETTINGS.EXPIRATION_GRAY_PERIOD\' | translate }}: {{vm.license.deadline | date: \'longDate\'}}</span>\n <span ng-if="vm.license.gray" class="text-center padding-bottom-10 text-italic text-bold"> {{\'SETTINGS.EXPIRATION_REASON\' | translate }} </span>\n <span ng-if="vm.license.grayReason == \'disabled\'" class="text-center padding-bottom-10"> {{\'SETTINGS.EXPIRATION_REASON_MESSAGE_DISABLED\' | translate }}</span>\n <span ng-if="vm.license.grayReason == \'changed\'" class="text-center padding-bottom-10"> {{\'SETTINGS.EXPIRATION_REASON_MESSAGE_CHANGED\' | translate }}</span>\n <span ng-if="vm.license.grayReason == \'changed\'" class="text-center padding-bottom-10"> {{\'SETTINGS.EXPIRATION_CHANGED_ADVISE\' | translate }}</span>\n <span ng-if="vm.license.grayReason == \'changed\'" class="text-center padding-bottom-10">{{ \'SETTINGS.SEND_EMAIL_TO\' | translate }}: <a href="mailto:license@xcally.com?subject=New%20token%20detected&body=Hi xCALLY, New Token: {{vm.license.machineUuid}}, Old token: {{vm.license.uuid}}">license@xcally.com</a>.</span>\n <span ng-if="vm.license.grayReason == \'disabled\'" class="text-center padding-bottom-10">{{ \'SETTINGS.SEND_EMAIL_TO\' | translate }}: <a href="mailto:license@xcally.com?subject=License%20disabled&body=Hi xCALLY, My Token: {{vm.license.machineUuid}}">license@xcally.com</a>.</span>\n </div>\n\n <div ng-if="vm.license.demo" layout="column">\n <span class="md-subhead md-warn-fg text-center">{{ \'SETTINGS.TRIAL_VERSION\' | translate }}</span>\n <span class="md-subhead md-warn-fg text-center"><a href="https://www.xcally.com/en/index.html#pricing-table2-h" target="_blank">{{ \'SETTINGS.PRICES\' | translate}}</a></span>\n </div>\n\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.STAFF\' | translate }}</md-subheader>\n <md-divider></md-divider>\n <md-list layout="row">\n <md-list-item class="md-2-line" flex="33">\n <md-icon md-font-icon="icon-account" class="md-avatar-icon"></md-icon>\n <div class="md-list-item-text">\n <h3>{{ vm.license.users || 0 }} <span ng-class="{\'red-fg\': vm.license.users <= vm.users && vm.license.users > 0}">({{vm.license.users >= vm.users ? vm.users : vm.license.users}})</span></h3>\n <p translate="SETTINGS.USERS">Users</p>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" flex="33">\n <md-icon md-font-icon="icon-headphones" class="md-avatar-icon"></md-icon>\n <div class="md-list-item-text">\n <h3>{{ vm.license.agents || 0 }} <span ng-class="{\'red-fg\': (vm.license.agents <= vm.agents && vm.license.agents > 0) }">({{vm.license.agents >= vm.agents ? vm.agents : vm.license.agents}})</span></h3>\n <p translate="SETTINGS.AGENTS">Agents</p>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" flex="33">\n <md-icon md-font-icon="icon-phone" class="md-avatar-icon"></md-icon>\n <div class="md-list-item-text">\n <h3>{{ vm.license.telephones || 0 }} <span ng-class="{\'red-fg\': vm.license.telephones <= vm.telephones && vm.license.telephones > 0}">({{vm.license.telephones >= vm.telephones ? vm.telephones : vm.license.telephones}})</span></h3>\n <p translate="SETTINGS.TELEPHONES">Telephones</p>\n </div>\n </md-list-item>\n </md-list>\n\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.CHANNELS\' | translate }}</md-subheader>\n <md-divider></md-divider>\n <md-list layout="row">\n <md-list-item flex="33" class="md-2-line" ng-repeat="channel in vm.channels | limitTo:3">\n <md-icon md-font-icon="{{channel.icon}}" class="md-avatar-icon" ng-class="vm.license[channel.name] ? \'green-A700-bg\' : \'red-A700-bg\'"></md-icon>\n <div class="md-list-item-text">\n <h3 translate="SETTINGS.{{channel.name | uppercase}}"></h3>\n <p ng-class="vm.license[channel.name] ? \'green-A700-fg\' : \'red-A700-fg\'">{{ \'SETTINGS.\' + (vm.license[channel.name] ? \'ENABLED\' : \'DISABLED\') | translate }}</p>\n </div>\n </md-list-item>\n </md-list>\n <md-list layout="row">\n <md-list-item flex="33" class="md-2-line" ng-repeat="channel in vm.channels | limitTo:3:3">\n <md-icon md-font-icon="{{channel.icon}}" class="md-avatar-icon" ng-class="vm.license[channel.name] ? \'green-A700-bg\' : \'red-A700-bg\'"></md-icon>\n <div class="md-list-item-text">\n <h3 translate="SETTINGS.{{channel.name | uppercase}}"></h3>\n <p ng-class="vm.license[channel.name] ? \'green-A700-fg\' : \'red-A700-fg\'">{{ \'SETTINGS.\' + (vm.license[channel.name] ? \'ENABLED\' : \'DISABLED\') | translate }}</p>\n </div>\n </md-list-item>\n </md-list>\n <md-list layout="row">\n <md-list-item flex="33" class="md-2-line" ng-repeat="channel in vm.channels | limitTo:3:6">\n <md-icon md-font-icon="{{channel.icon}}" class="md-avatar-icon" ng-class="vm.license[channel.name] ? \'green-A700-bg\' : \'red-A700-bg\'"></md-icon>\n <div class="md-list-item-text">\n <h3 translate="SETTINGS.{{channel.name | uppercase}}"></h3>\n <p ng-class="vm.license[channel.name] ? \'green-A700-fg\' : \'red-A700-fg\'">{{ \'SETTINGS.\' + (vm.license[channel.name] ? \'ENABLED\' : \'DISABLED\') | translate }}</p>\n </div>\n </md-list-item>\n </md-list>\n\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.MODULES\' | translate }}</md-subheader>\n <md-divider></md-divider>\n <md-list layout="row">\n <md-list-item class="md-2-line" ng-repeat="module in vm.modules" flex="33">\n <md-icon md-font-icon="{{module.icon}}" class="md-avatar-icon" ng-class="vm.license[module.name] ? \'green-A700-bg\' : \'red-A700-bg\'"></md-icon>\n <div class="md-list-item-text">\n <h3 translate="SETTINGS.{{module.name | uppercase}}"></h3>\n <p ng-class="vm.license[module.name] ? \'green-A700-fg\' : \'red-A700-fg\'">{{ \'SETTINGS.\' + (vm.license[module.name] ? \'ENABLED\' : \'DISABLED\') | translate }}</p>\n </div>\n </md-list-item>\n </md-list>\n\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.SESSIONS\' | translate }}</md-subheader>\n <md-divider></md-divider>\n <md-list layout="row">\n <div ng-repeat="session in vm.sessions" flex="33">\n <md-list-item class="md-2-line">\n <md-icon md-font-icon="{{session.icon}}" class="md-avatar-icon" ng-class="vm.license[session.enabled] ? \'green-A700-bg\' : \'red-A700-bg\'"></md-icon>\n <div class="md-list-item-text">\n <div layout="row" layout="start center">\n <h3 translate="SETTINGS.{{session.name | uppercase}}"></h3>\n <button ng-if="session.restart" ng-click="vm.gotoProcess($event)" class="md-mini" aria-label="restart">\n <md-tooltip>Restart</md-tooltip>\n <md-icon md-font-icon="icon-reload"></md-icon>\n </button>\n </div>\n <p ng-if="vm.license[session.name] && vm.license[session.enabled]" class="green-A700-fg">{{vm.license[session.name]}} {{ \'SETTINGS.\' + session.label | uppercase | translate }}</p>\n <p ng-if="!vm.license[session.name] && vm.license[session.enabled]" class="green-A700-fg">UNLIMITED {{ \'SETTINGS.\' + session.label | uppercase | translate }}</p>\n <p ng-if="!vm.license[session.enabled]" class="red-A700-fg">{{ \'SETTINGS.DISABLED\' | translate }}</p>\n </div>\n </md-list-item>\n\n </div>\n </md-list>\n\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.ADDONS\' | translate }}</md-subheader>\n <md-divider></md-divider>\n <md-list layout="row">\n <md-list-item class="md-2-line" ng-repeat="addon in vm.addons | limitTo:3" flex="33">\n <md-icon md-font-icon="{{addon.icon}}" class="md-avatar-icon" ng-class="vm.license[addon.name] ? \'green-A700-bg\' : \'red-A700-bg\'"></md-icon>\n <div class="md-list-item-text">\n <h3 translate="SETTINGS.{{addon.name | uppercase}}"></h3>\n <p ng-class="vm.license[addon.name] ? \'green-A700-fg\' : \'red-A700-fg\'">{{ \'SETTINGS.\' + (vm.license[addon.name] ? \'ENABLED\' : \'DISABLED\') | translate }}</p>\n </div>\n </md-list-item>\n </md-list>\n <md-list layout="row">\n <md-list-item class="md-2-line" ng-repeat="addon in vm.addons | limitTo:3:3" flex="33">\n <md-icon md-font-icon="{{addon.icon}}" class="md-avatar-icon" ng-class="vm.license[addon.name] ? \'green-A700-bg\' : \'red-A700-bg\'"></md-icon>\n <div class="md-list-item-text">\n <h3 translate="SETTINGS.{{addon.name | uppercase}}"></h3>\n <p ng-class="vm.license[addon.name] ? \'green-A700-fg\' : \'red-A700-fg\'">{{ \'SETTINGS.\' + (vm.license[addon.name] ? \'ENABLED\' : \'DISABLED\') | translate }}</p>\n </div>\n </md-list-item>\n </md-list>\n\n\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.OTHERS\' | translate }}</md-subheader>\n <md-divider></md-divider>\n <md-list layout="row">\n <md-list-item class="md-2-line" ng-repeat="other in vm.others | limitTo:3" flex="33">\n <md-icon md-font-icon="{{other.icon}}" class="md-avatar-icon" ng-class="vm.license[other.name] ? \'green-A700-bg\' : \'red-A700-bg\'"></md-icon>\n <div class="md-list-item-text">\n <h3 translate="SETTINGS.{{other.name | uppercase}}"></h3>\n <p ng-class="vm.license[other.name] ? \'green-A700-fg\' : \'red-A700-fg\'">{{ \'SETTINGS.\' + (vm.license[other.name] ? \'ENABLED\' : \'DISABLED\') | translate }}</p>\n </div>\n </md-list-item>\n </md-list>\n <md-list layout="row">\n <md-list-item class="md-2-line" ng-repeat="other in vm.others | limitTo:3:3" flex="33">\n <md-icon md-font-icon="{{other.icon}}" class="md-avatar-icon" ng-class="vm.license[other.name] ? \'green-A700-bg\' : \'red-A700-bg\'"></md-icon>\n <div class="md-list-item-text">\n <h3 translate="SETTINGS.{{other.name | uppercase}}"></h3>\n'+" <p ng-class=\"vm.license[other.name] ? 'green-A700-fg' : 'red-A700-fg'\">{{ 'SETTINGS.' + (vm.license[other.name] ? 'ENABLED' : 'DISABLED') | translate }}</p>\n </div>\n </md-list-item>\n </md-list>\n </md-card>\n </div>\n \x3c!-- / LICENSE CARD --\x3e\n\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- NO ADD BUTTON BUTTON --\x3e\n</div>"),e.put("app/main/apps/settings/views/license/request/dialog.html",'<md-dialog class="request-dialog" aria-label="Send Request">\n <form name="requestForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title" translate="SETTINGS.REQUEST_LICENSE">Request License</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SETTINGS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.license.name" required>\n <div ng-messages="requestForm.name.$error" ng-show="requestForm.name.$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.NAME_REQUIRED">Address field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.license.email" required>\n <div ng-messages="requestForm.email.$error" ng-show="requestForm.email.$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="email">\n <span translate="SETTINGS.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.PLAN">Plan</label>\n <md-select name="plan" ng-model="vm.license.months" required>\n <md-option ng-value="1"><span translate="SETTINGS.MONTH_TO_MONTH">MONTH TO MONTH</span></md-option>\n <md-option ng-value="12"><span translate="SETTINGS.ANNUALLY">ANNUALLY</span></md-option>\n <md-option ng-value="36"><span translate="SETTINGS.PERPETUAL">PERPETUAL</span></md-option>\n </md-select>\n <div ng-messages="requestForm.plan.$error" ng-show="requestForm.plan.$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PLAN_REQUIRED">Plan field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.STAFF\' | translate }}</md-subheader>\n <div layout="row" layout-align="space-between center">\n <md-input-container class="md-block" flex>\n <label translate="SETTINGS.USERS">Users</label>\n <input type="number" name="users" ng-model="vm.license.users" required>\n <div ng-messages="requestForm.users.$error" ng-show="requestForm.users.$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.USERS_REQUIRED">Users field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" flex>\n <label translate="SETTINGS.AGENTS">Agents</label>\n <input type="number" name="agents" ng-model="vm.license.agents" required>\n <div ng-messages="requestForm.agents.$error" ng-show="requestForm.agents.$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.AGENTS_REQUIRED">Agents field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" flex>\n <label translate="SETTINGS.TELEPHONES">Telephones</label>\n <input type="number" name="telephones" ng-model="vm.license.telephones" required>\n <div ng-messages="requestForm.telephones.$error" ng-show="requestForm.telephones.$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.TELEPHONES_REQUIRED">Telephones field is required</span>\n </div>\n </div>\n </md-input-container>\n </div>\n\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.CHANNELS\' | translate }}</md-subheader>\n <div layout="row" layout-align="space-between center">\n <md-switch ng-model="vm.license[channel.name]" aria-label="{{channel.name}}" ng-repeat="channel in vm.channels | limitTo:3"><span translate="SETTINGS.{{channel.name | uppercase}}"></span></md-switch>\n <md-switch ng-model="vm.license[channel.name]" aria-label="{{channel.name}}" ng-repeat="channel in vm.channels | limitTo:3:3"><span translate="SETTINGS.{{channel.name | uppercase}}"></span></md-switch>\n </div>\n\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.MODULES\' | translate }}</md-subheader>\n <div layout="row" layout-align="space-between center">\n <md-switch ng-model="vm.license[module.name]" aria-label="{{module.name}}" ng-repeat="module in vm.modules"><span translate="SETTINGS.{{module.name | uppercase}}"></span></md-switch>\n </div>\n\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.SESSIONS\' | translate }}</md-subheader>\n <div layout="row">\n <md-input-container ng-repeat="session in vm.sessions" class="md-block" flex="50">\n <label>{{ \'SETTINGS.\' + session.name | uppercase | translate }} ({{ \'SETTINGS.\' + session.label | uppercase | translate }})</label>\n <input type="number" name="{{session.name}}" ng-model="vm.license[session.name]" required>\n <div class="hint"><span>0={{ \'SETTINGS.UNLIMITED_CHANNELS\' | translate }}</span></div>\n <div ng-messages="requestForm[session.name].$error" ng-show="requestForm[session.name].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.CHANNEL_REQUIRED">Mandatory field</span>\n </div>\n </div>\n </md-input-container>\n </div>\n\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.ADDONS\' | translate }}</md-subheader>\n <div layout="row" layout-align="space-between center">\n <md-switch ng-model="vm.license[addon.name]" aria-label="{{module.name}}" ng-repeat="addon in vm.addons"><span translate="SETTINGS.{{addon.name | uppercase}}"></span></md-switch>\n </div>\n\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.OTHERS\' | translate }}</md-subheader>\n <div layout="row" layout-align="space-between center">\n <md-switch ng-model="vm.license[other.name]" aria-label="{{other.name}}" ng-repeat="other in vm.others"><span translate="SETTINGS.{{other.name | uppercase}}"></span></md-switch>\n </div>\n\n <md-input-container class="md-block">\n <label translate="SETTINGS.DESCRIPTION">Description</label>\n <textarea name="description" ng-model="vm.license.description"></textarea>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.sendRequest()" class="send-button md-accent md-raised" ng-disabled="requestForm.$invalid || requestForm.$pristine" aria-label="SEND" translate="SETTINGS.SEND" translate-attr-aria-label="SETTINGS.SEND">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/settings/views/license/update/dialog.html",'<md-dialog class="update-dialog" aria-label="Update License">\n <form name="updateForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title" translate="SETTINGS.UPDATE_LICENSE">Update License</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <md-content layout="row">\n <span class="md-title" translate="SETTINGS.UPDATE_LICENSE_MANUALLY">Do you want to update your license manually?</span>\n </md-content>\n <md-input-container class="md-block">\n <label translate="SETTINGS.ENTER_LICENSE">Enter your license</label>\n <textarea name="key" ng-model="vm.licenseKey" required></textarea>\n <div ng-messages="updateForm.name.$error" ng-show="updateForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.LICENSE_REQUIRED">License key field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.updateLicense()" class="send-button md-accent md-raised" ng-disabled="updateForm.$invalid || updateForm.$pristine" aria-label="UPDATE" translate="SETTINGS.UPDATE" translate-attr-aria-label="SETTINGS.UPDATE">\n UPDATE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/settings/views/networks/create/dialog.html",'<md-dialog class="network-dialog" aria-label="New Network">\n <form name="networkForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SETTINGS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.network.type" autofocus required>\n <md-option ng-value="\'localnet\'">LocalNET</md-option>\n <md-option ng-value="\'externip\'">ExternIP</md-option>\n <md-option ng-value="\'turn\'">Turn</md-option>\n <md-option ng-value="\'stun\'">Stun</md-option>\n </md-select>\n <div ng-messages="networkForm[\'type\'].$error" ng-show="networkForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.network.type == \'localnet\'" class="md-block">\n <label translate="SETTINGS.LOCALNETADDRESS">localNetAddress</label>\n <input type="text" name="value" ng-model="vm.network.value" ng-pattern="/^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])/(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/" ng-required="true">\n\n <div class="hint"><span translate="SETTINGS.HELP.LOCALNETADDRESS"></span></div>\n <div ng-messages="networkForm[\'value\'].$error" ng-show="networkForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.LOCALNETADDRESS_REQUIRED">localNetAddress field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="SETTINGS.ERRORS.LOCALNETADDRESS_MUST_VALID_PATTERN" translate-values="{ regex: \'/^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])/(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/\' }">localNetAddress must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.network.type == \'externip\'" class="md-block">\n <label translate="SETTINGS.ADDRESS">Address</label>\n <input type="text" name="value" ng-model="vm.network.value" ng-pattern="/^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/" ng-required="true">\n\n <div class="hint"><span translate="SETTINGS.HELP.ADDRESS"></span></div>\n <div ng-messages="networkForm[\'value\'].$error" ng-show="networkForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.ADDRESS_REQUIRED">Address field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="SETTINGS.ERRORS.ADDRESS_MUST_VALID_PATTERN" translate-values="{ regex: \'/^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/\' }">Address must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.network.type == \'turn\' || vm.network.type == \'stun\'" class="md-block">\n <label translate="SETTINGS.ADDRESS">Address</label>\n <input type="text" name="value" ng-model="vm.network.value" ng-required="true">\n\n <div ng-messages="networkForm[\'value\'].$error" ng-show="networkForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.ADDRESS_REQUIRED">Address field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.network.type == \'turn\'" class="md-block">\n <label translate="SETTINGS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.network.username" ng-required="vm.network.type == \'turn\'">\n\n <div class="hint"><span translate="SETTINGS.HELP.USERNAME"></span></div>\n <div ng-messages="networkForm[\'username\'].$error" ng-show="networkForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.network.type == \'turn\'" class="md-block">\n <label translate="SETTINGS.PASSWORD">Password</label>\n <input type="text" name="password" ng-model="vm.network.password" ng-required="vm.network.type == \'turn\'">\n\n <div class="hint"><span translate="SETTINGS.HELP.PASSWORD"></span></div>\n <div ng-messages="networkForm[\'password\'].$error" ng-show="networkForm[\'password\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="!vm.newNetwork" ng-click="vm.saveNetwork()" class="send-button md-accent md-raised" ng-disabled="networkForm.$invalid || networkForm.$pristine" aria-label="SAVE" translate="SETTINGS.SAVE" translate-attr-aria-label="SETTINGS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.newNetwork" ng-click="vm.addNewNetwork()" class="send-button md-accent md-raised" ng-disabled="networkForm.$invalid" aria-label="ADD" translate="SETTINGS.ADD_NETWORK" translate-attr-aria-label="SETTINGS.ADD_NETWORK">\n ADD NETWORK\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-click="vm.deleteNetwork($event)" aria-label="DELETE" translate translate-attr-aria-label="SETTINGS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="SETTINGS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/settings/views/networks/networks.html",'<div id="networks" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-cog" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="SETTINGS.NETWORKS">Networks</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="SETTINGS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedNetworks.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedNetworks =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="SETTINGS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-networks-count">\n <span>{{vm.selectedNetworks.length}}</span>\n <span translate="SETTINGS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="SETTINGS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllNetworks()" translate="SETTINGS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectNetworks()" translate="SETTINGS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedNetworks" csv-label="true" filename="networks.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-click="vm.deleteSelectedNetworks($event)" aria-label="delete selected" translate translate-attr-label="SETTINGS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- NETWORK TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedNetworks" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getNetworks">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'SETTINGS.ID\' | translate }}</th>\n <th md-column md-order-by="type">{{ \'SETTINGS.TYPE\' | translate }}</th>\n <th md-column md-order-by="value">{{ \'SETTINGS.ADDRESS\' | translate }}</th>\n <th md-column md-order-by="createdAt">{{ \'SETTINGS.CREATED_AT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.networks.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="SETTINGS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="network" md-select-id="id" ng-repeat="network in vm.networks.rows">\n <td md-cell ng-if="network.userpic"><img class="avatar" alt="{{network.name}}" ng-src="api/users/{{network.id}}/avatar" /></td>\n <td md-cell ng-if="!network.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{network.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditNetwork($event, network)" md-cell class="id ">{{network.id}}</td>\n <td ng-click="vm.createOrEditNetwork($event, network)" md-cell class="type ">{{ vm.arraytype[network.type].option }}</td>\n <td ng-click="vm.createOrEditNetwork($event, network)" md-cell class="value ">{{network.value}}</td>\n <td ng-click="vm.createOrEditNetwork($event, network)" md-cell class="createdAt ">{{network.createdAt | date:\'medium\' }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="SETTINGS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.editdialog(network, $event )" translate="SETTINGS.EDIT_NETWORK">\n Edit Network\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.deleteconfirm(network, $event )" translate="SETTINGS.DELETE_NETWORK">\n Delete Network\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'SETTINGS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SETTINGS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SETTINGS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.networks.count}}" md-on-paginate="vm.getNetworks" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / NETWORK TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD NETWORK BUTTON --\x3e\n <md-button class="md-fab md-accent" id="add-network-button" ng-click="vm.createOrEditNetwork($event)" aria-label="add network" translate translate-attr-aria-label="SETTINGS.ADD_NETWORK">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD NETWORK BUTTON --\x3e\n</div>'),e.put("app/main/apps/settings/views/smtps/create/dialog.html",'<md-dialog class="smtp-dialog" aria-label="New Smtp">\n <form name="smtpForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SETTINGS.ACCOUNTNAME">AccountName</label>\n <input type="text" name="name" ng-model="vm.smtp.name" ng-required="true" autofocus>\n\n <div ng-messages="smtpForm[\'name\'].$error" ng-show="smtpForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.ACCOUNTNAME_REQUIRED">AccountName field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.EMAILADDRESS">EmailAddress</label>\n <input type="email" name="email" ng-model="vm.smtp.email" ng-required="true">\n\n <div class="hint"><span translate="SETTINGS.HELP.EMAILADDRESS"></span></div>\n <div ng-messages="smtpForm[\'email\'].$error" ng-show="smtpForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.EMAILADDRESS_REQUIRED">EmailAddress field is required</span>\n </div>\n <div ng-message="email">\n <span translate="SETTINGS.ERRORS.EMAILADDRESS_MUST_VALID">EmailAddress must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.SMTP_SERVICE">SMTP_Service</label>\n <md-select name="Smtp.service" ng-model="vm.smtp.Smtp.service" required>\n <md-option ng-value="null">Custom</md-option>\n <md-option ng-value="\'gmail\'">Gmail</md-option>\n <md-option ng-value="\'hotmail\'">Hotmail</md-option>\n <md-option ng-value="\'yahoo\'">Yahoo</md-option>\n <md-option ng-value="\'outlook365\'">Outlook365</md-option>\n </md-select>\n <div ng-messages="smtpForm[\'Smtp.service\'].$error" ng-show="smtpForm[\'Smtp.service\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SMTP_SERVICE_REQUIRED">SMTP_Service field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smtp.Smtp.service == null" class="md-block">\n <label translate="SETTINGS.SMTP_HOST">SMTP_Host</label>\n <input type="text" name="Smtp.host" ng-model="vm.smtp.Smtp.host" ng-required="true">\n\n <div ng-messages="smtpForm[\'Smtp.host\'].$error" ng-show="smtpForm[\'Smtp.host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SMTP_HOST_REQUIRED">SMTP_Host field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smtp.Smtp.service == null" class="md-block">\n <label translate="SETTINGS.SMTP_PORT">SMTP_Port</label>\n <input type="number" name="Smtp.port" ng-model="vm.smtp.Smtp.port" value="465" ng-required="true">\n\n <div ng-messages="smtpForm[\'Smtp.port\'].$error" ng-show="smtpForm[\'Smtp.port\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SMTP_PORT_REQUIRED">SMTP_Port field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smtp.Smtp.service == null" class="md-block">\n <md-switch ng-model="vm.smtp.Smtp.secure" aria-label="SMTP_Secure"><span translate="SETTINGS.SMTP_SECURE">SMTP_Secure</span></md-switch>\n <div class="hint"><span translate="SETTINGS.HELP.SMTP_SECURE"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.smtp.Smtp.service == null" class="md-block">\n <md-switch ng-model="vm.smtp.Smtp.authentication" aria-label="SMTP_Authentication"><span translate="SETTINGS.SMTP_AUTHENTICATION">SMTP_Authentication</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.smtp.Smtp.authentication == true || vm.smtp.Smtp.service != null" class="md-block">\n <label translate="SETTINGS.SMTP_USERNAME">SMTP_Username</label>\n <input type="text" name="Smtp.user" ng-model="vm.smtp.Smtp.user" ng-required="true">\n\n <div class="hint"><span translate="SETTINGS.HELP.SMTP_USERNAME"></span></div>\n <div ng-messages="smtpForm[\'Smtp.user\'].$error" ng-show="smtpForm[\'Smtp.user\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SMTP_USERNAME_REQUIRED">SMTP_Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.smtp.Smtp.authentication == true || vm.smtp.Smtp.service != null">\n <label translate="SETTINGS.SMTP_PASSWORD">SMTP_Password</label>\n <input type="password" name="Smtp.pass" ng-model="vm.smtp.Smtp.pass" placeholder="Password" translate translate-attr-placeholder="SETTINGS.PASSWORD" required>\n <div class="hint"><span translate="SETTINGS.HELP.SMTP_PASSWORD"></span></div>\n <div ng-messages="smtpForm[\'Smtp.pass\'].$error" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="SETTINGS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="SETTINGS.DESCRIPTION">Description</label>\n <input type="" name="description" ng-model="vm.smtp.description">\n\n <div ng-messages="smtpForm[\'description\'].$error" ng-show="smtpForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newSmtp" ng-click="vm.saveSmtp()" class="send-button md-accent md-raised" ng-disabled="smtpForm.$invalid || smtpForm.$pristine" aria-label="SAVE" translate="SETTINGS.SAVE" translate-attr-aria-label="SETTINGS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newSmtp" ng-click="vm.addNewSmtp()" class="send-button md-accent md-raised" ng-disabled="smtpForm.$invalid" aria-label="ADD" translate="SETTINGS.ADD_SMTP" translate-attr-aria-label="SETTINGS.ADD_SMTP">\n ADD SMTP\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newSmtp" ng-click="vm.deleteSmtp($event)" aria-label="DELETE" translate translate-attr-aria-label="SETTINGS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="SETTINGS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/settings/views/smtps/smtps.html",'<div id="smtps" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-cog" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="SETTINGS.SMTP">Smtp</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div>\n <md-button type="submit" ng-click="vm.verifySmtp()" ng-disabled="!vm.smtp.id" class="send-button md-accent md-raised" translate="SETTINGS.VERIFY" translate-attr-aria-label="SETTINGS.VERIFY">\n VERIFY\n </md-button>\n <md-button type="submit" ng-click="vm.saveSmtp()" ng-disabled="(generalForm.$pristine) || (generalForm.$invalid)" class="send-button md-accent md-raised" translate="SETTINGS.SAVE" translate-attr-aria-label="SETTINGS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n <div class="smtp-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SETTINGS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="SETTINGS.ACCOUNTNAME">AccountName</label>\n <input type="text" name="name" ng-model="vm.smtp.name" ng-required="true" autofocus>\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.ACCOUNTNAME_REQUIRED">AccountName field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.EMAILADDRESS">EmailAddress</label>\n <input type="email" name="email" ng-model="vm.smtp.email" ng-required="true">\n\n <div class="hint"><span translate="SETTINGS.HELP.EMAILADDRESS"></span></div>\n <div ng-messages="generalForm[\'email\'].$error" ng-show="generalForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.EMAILADDRESS_REQUIRED">EmailAddress field is required</span>\n </div>\n <div ng-message="email">\n <span translate="SETTINGS.ERRORS.EMAILADDRESS_MUST_VALID">EmailAddress must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.SMTP_SERVICE">SMTP_Service</label>\n <md-select name="Smtp.service" ng-model="vm.smtp.Smtp.service" required>\n <md-option ng-value="null">Custom</md-option>\n <md-option ng-value="\'gmail\'">Gmail</md-option>\n <md-option ng-value="\'hotmail\'">Hotmail</md-option>\n <md-option ng-value="\'yahoo\'">Yahoo</md-option>\n <md-option ng-value="\'outlook365\'">Outlook365</md-option>\n </md-select>\n <div ng-messages="generalForm[\'Smtp.service\'].$error" ng-show="generalForm[\'Smtp.service\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SMTP_SERVICE_REQUIRED">SMTP_Service field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smtp.Smtp.service == null" class="md-block">\n <label translate="SETTINGS.SMTP_HOST">SMTP_Host</label>\n <input type="text" name="Smtp.host" ng-model="vm.smtp.Smtp.host" ng-required="true">\n\n <div ng-messages="generalForm[\'Smtp.host\'].$error" ng-show="generalForm[\'Smtp.host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SMTP_HOST_REQUIRED">SMTP_Host field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smtp.Smtp.service == null" class="md-block">\n <label translate="SETTINGS.SMTP_PORT">SMTP_Port</label>\n <input type="number" name="Smtp.port" ng-model="vm.smtp.Smtp.port" value="465" ng-required="true">\n\n <div ng-messages="generalForm[\'Smtp.port\'].$error" ng-show="generalForm[\'Smtp.port\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SMTP_PORT_REQUIRED">SMTP_Port field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smtp.Smtp.service == null" class="md-block">\n <md-switch ng-model="vm.smtp.Smtp.secure" aria-label="SMTP_Secure"><span translate="SETTINGS.SMTP_SECURE">SMTP_Secure</span></md-switch>\n <div class="hint"><span translate="SETTINGS.HELP.SMTP_SECURE"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.smtp.Smtp.service == null" class="md-block">\n <md-switch ng-model="vm.smtp.Smtp.authentication" aria-label="SMTP_Authentication"><span translate="SETTINGS.SMTP_AUTHENTICATION">SMTP_Authentication</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.smtp.Smtp.authentication == true || vm.smtp.Smtp.service != null" class="md-block">\n <label translate="SETTINGS.SMTP_USERNAME">SMTP_Username</label>\n <input type="text" name="Smtp.user" ng-model="vm.smtp.Smtp.user" ng-required="true">\n\n <div class="hint"><span translate="SETTINGS.HELP.SMTP_USERNAME"></span></div>\n <div ng-messages="generalForm[\'Smtp.user\'].$error" ng-show="generalForm[\'Smtp.user\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SMTP_USERNAME_REQUIRED">SMTP_Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.smtp.Smtp.authentication == true || vm.smtp.Smtp.service != null">\n <label translate="SETTINGS.SMTP_PASSWORD">SMTP_Password</label>\n <input type="password" name="Smtp.pass" ng-model="vm.smtp.Smtp.pass" placeholder="Password" translate translate-attr-placeholder="SETTINGS.PASSWORD" required>\n <div class="hint"><span translate="SETTINGS.HELP.SMTP_PASSWORD"></span></div>\n <div ng-messages="generalForm[\'Smtp.pass\'].$error" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="SETTINGS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="SETTINGS.DESCRIPTION">Description</label>\n <input type="" name="description" ng-model="vm.smtp.description">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/settings/views/system/system.html",'<div id="system" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-cog" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="SETTINGS.SYSTEM">SYSTEM</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" md-border-bottom flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="SETTINGS.GENERAL">GENERAL</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="system-detail-form-container personal_info md-background-bg md-whiteframe-1dp">\n <md-card class="md-whiteframe-1dp padding-20" layout="row" layout-xs="column" layout-wrap>\n <ms-widget flex="50" flex-xs="100">\n \x3c!-- Front --\x3e\n <ms-widget-front class="white-bg">\n <div class="ph-16 pt-16 pb-8 md-accent-bg">\n <div class="h3">OS</div>\n </div>\n\n <div layout="row" layout-align="start center" layout-wrap>\n <div flex="100" flex-gt-md="100">\n <div class="p-16 pb-32">\n <div class="h4">{{vm.system.system.manufacturer}} {{vm.system.system.model}}</div>\n <div class="h4">{{vm.system.cpu.manufacturer}} {{vm.system.cpu.brand}} - {{vm.system.cpu.speed}} GHz - {{vm.system.cpu.cores}} Cores</div>\n <div class="h4">{{vm.system.os.distro}} - {{vm.system.os.release}} - Kernel: {{vm.system.os.kernel}}</div>\n <div class="h4">Node.js: {{vm.system.node}}</div>\n <div class="h4">Host: {{vm.system.os.hostname}} - Uptime: {{vm.system.time.uptime / 60 | number:0}} m</div>\n <div class="h4">TimeZone: {{vm.system.time.timezone}} ({{vm.system.time.timezoneName}})</div>\n </div>\n </div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n <ms-widget flex="25" flex-xs="100">\n \x3c!-- Front --\x3e\n <ms-widget-front class="white-bg">\n <div class="ph-16 pt-16 pb-8 md-accent-bg md-hue-1">\n <div class="h3">CPU</div>\n </div>\n\n <div layout="row" layout-align="start center" layout-wrap>\n <div flex="100" flex-gt-md="100">\n <div class="p-16 pb-32">\n <div class="pb-8" layout="row" layout-align="space-between start">\n <span class="h3" translate="SETTINGS.AVG_LOAD">AVG Load</span>\n <span class="h3 secondary-text font-weight-500">{{vm.system.currentLoad.avgload * 100 | number:0}}%</span>\n </div>\n <md-progress-linear class="red" md-mode="determinate" value="{{vm.system.currentLoad.avgload * 100 | number:0}}"></md-progress-linear>\n </div>\n </div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n <ms-widget flex="25" flex-xs="100">\n \x3c!-- Front --\x3e\n <ms-widget-front class="white-bg">\n <div class="ph-16 pt-16 pb-8 md-accent-bg md-hue-3">\n <div class="h3">MEM</div>\n </div>\n\n <div layout="row" layout-align="start center" layout-wrap>\n <div flex="100" flex-gt-md="100">\n <div class="p-16 pb-32">\n <div class="h4">{{\'SETTINGS.TOTAL\' | translate}}: {{vm.system.mem.total / 1024 / 1024 / 1024 | number:0}} GB</div>\n <div class="h4">{{\'SETTINGS.FREE\' | translate}}: {{vm.system.mem.available / 1024 / 1024 / 1024 | number:0}} GB</div>\n <div class="h4">{{\'SETTINGS.USED\' | translate}}: {{vm.system.mem.active / 1024 / 1024 / 1024 | number:0}} GB</div>\n </div>\n <div class="p-16 pb-32">\n <div class="pb-8" layout="row" layout-align="space-between start">\n <span class="h3" translate="SETTINGS.USED">Used</span>\n <span class="h3 secondary-text font-weight-500">{{(vm.system.mem.active / vm.system.mem.total) * 100 | number : 0}}%</span>\n </div>\n <md-progress-linear class="md-warn" md-mode="determinate" value="{{(vm.system.mem.active / vm.system.mem.total) * 100 | number : 0 }}"></md-progress-linear>\n\n </div>\n </div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n </md-card>\n\n <md-card class="md-whiteframe-1dp padding-20" layout="row" layout-xs="column" layout-wrap>\n <ms-widget ng-repeat="disk in vm.system.fsSize" flex="25" flex-xs="100">\n \x3c!-- Front --\x3e\n <ms-widget-front class="white-bg">\n <div class="ph-16 pt-16 pb-8 md-accent-bg md-hue-3">\n <div class="h3">DISK {{$index + 1}}</div>\n </div>\n\n <div layout="row" layout-align="start center" layout-wrap>\n <div flex="100" flex-gt-md="100">\n <div class="p-16 pb-32">\n <div class="h4">{{\'SETTINGS.FILE_SYSTEM\' | translate}}: {{disk.fs}}</div>\n <div class="h4">{{\'SETTINGS.MOUNT_POINT\' | translate}}: "{{disk.mount}}"</div>\n <div class="h4">{{\'SETTINGS.TOTAL\' | translate}}: {{disk.size / 1024 / 1024 / 1024 | number:0}} GB</div>\n <div class="h4">{{\'SETTINGS.USED\' | translate}}: {{disk.used / 1024 / 1024 / 1024 | number:0}} GB</div>\n </div>\n <div class="p-16 pb-32">\n <div class="pb-8" layout="row" layout-align="space-between start">\n <span class="h3" translate="SETTINGS.USED">Used</span>\n <span class="h4 secondary-text font-weight-500">{{disk.use | number:0}}%</span>\n </div>\n <md-progress-linear class="red" md-mode="determinate" value="{{disk.use | number:0}}"></md-progress-linear>\n </div>\n </div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n </md-card>\n\n <md-card class="md-whiteframe-1dp padding-20" layout="row" layout-xs="column" layout-wrap>\n <ms-widget ng-repeat="net in vm.system.net" flex="25" flex-xs="100">\n \x3c!-- Front --\x3e\n <ms-widget-front class="white-bg">\n <div class="ph-16 pt-16 pb-8 md-accent-bg md-hue-3">\n <div class="h3">NET {{$index + 1}}</div>\n </div>\n\n <div layout="row" layout-align="start center" layout-wrap>\n <div flex="100" flex-gt-md="100">\n <div class="p-16 pb-32">\n <div class="h4">{{\'SETTINGS.INTERFACE\' | translate}}: {{net.iface}}</div>\n <div class="h4">IPv4: {{net.ip4}}</div>\n <div class="h4">IPv6: {{net.ip6}}</div>\n <div class="h4">MAC: {{net.mac}}</div>\n </div>\n </div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n </md-card>\n\n <md-card class="md-whiteframe-1dp padding-20" layout="row">\n <div flex>\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="SETTINGS.TOP_N_PROCESSES" translate-values="{value: vm.processLimit}"></span>\n <div flex></div>\n <ms-search-bar on-search="vm.searchTerm1 = query" on-collapse="vm.searchTerm1 = undefined" debounce="300"></ms-search-bar>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column>pid</th>\n <th md-column>{{\'SETTINGS.NAME\' | translate}}</th>\n <th md-column>{{\'SETTINGS.STATE\' | translate}}</th>\n <th md-column>pmem</th>\n <th md-column>pcpu</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-repeat="process in vm.system.processes.list | limitTo: vm.processLimit | filter: vm.searchTerm1 | orderBy:\'-pcpu\'">\n <td md-cell>{{process.pid}}</td>\n <td md-cell>{{process.command}}</td>\n <td md-cell>\n <span class="text-boxed white-fg" ng-class="{\n \'green-600-bg\': process.state == \'running\',\n \'yellow-600-bg\': process.state == \'sleeping\',\n \'red-600-bg\': process.state == \'blocked\'}">{{process.state | uppercase}}</span>\n </td>\n <td md-cell>{{process.pmem}}%</td>\n <td md-cell>{{process.pcpu}}%</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </div>\n </md-card>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="SETTINGS.PROCESSES">PROCESSES</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="system-detail-form-container general md-background-bg md-whiteframe-1dp">\n <md-card class="md-whiteframe-1dp padding-20" flex>\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="SETTINGS.MOTION_PROCESS_MANAGEMENT"></span>\n <div flex></div>\n <ms-search-bar on-search="vm.searchTerm2 = query" on-collapse="vm.searchTerm2 = undefined" debounce="300"></ms-search-bar>\n <md-button ng-click="vm.getProcesses()" class="md-icon-button" aria-label="Reload">\n <md-icon md-font-icon="icon-reload" class="s24"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column>id</th>\n <th md-column>pid</th>\n <th md-column>{{\'SETTINGS.NAME\' | translate}}</th>\n <th md-column>{{\'SETTINGS.STATE\' | translate}}</th>\n <th md-column>MEM</th>\n <th md-column>CPU</th>\n <th md-column width="20px">Actions</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-repeat="process in vm.processes | filter: vm.searchTerm2 | orderBy:\'-monit.cpu\'">\n <td md-cell>{{process.pm_id}}</td>\n <td md-cell>{{process.pid}}</td>\n <td md-cell>{{process.name == \'agi\' ? \'agi (Cally Square IVR)\' : process.name}}</td>\n <td md-cell>\n <span class="text-boxed white-fg" ng-class="{\'green-600-bg\': process.pm2_env.status == \'online\', \'red-600-bg\': process.pm2_env.status == \'stopped\'}">{{process.pm2_env.status | uppercase}}</span>\n </td>\n <td md-cell>{{process.monit.memory / 1024 / 1024 | number:0}} MB</td>\n <td md-cell>{{process.monit.cpu}}%</td>\n <td md-cell>\n <md-button ng-if="process.pm2_env.status !== \'online\'" ng-click="vm.updateProcess($event, process.pm_id, \'online\')" class="md-icon-button" aria-label="Play">\n <md-icon md-font-icon="icon-play" class="s24"></md-icon>\n </md-button>\n <md-button ng-if="process.pm2_env.status === \'online\'" ng-click="vm.updateProcess($event, process.pm_id, \'stopped\')" class="md-icon-button" aria-label="Stop">\n <md-icon md-font-icon="icon-stop" class="s24"></md-icon>\n </md-button>\n </td>\n </tr>\n </tbody>\n <tfoot md-foot>\n <tr md-row>\n <td md-cell></td>\n <td md-cell></td>\n <td md-cell></td>\n <td md-cell></td>\n <td md-cell>{{ (vm.processes | map: \'monit.memory\' | sum) / 1024 / 1024 | number:0 }} MB</td>\n <td md-cell></td>\n <td md-cell></td>\n </tr>\n </tfoot>\n </table>\n </md-table-container>\n </md-card>\n <md-card class="md-whiteframe-1dp padding-20" flex>\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="SETTINGS.USEFUL_COMMANDS"></span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column width="30%">{{\'SETTINGS.COMMAND\' | translate}}</th>\n <th md-column>{{\'SETTINGS.DESCRIPTION\' | translate}}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr>\n <td md-cell class="no-border">pm2 list</td>\n <td md-cell class="no-border">{{ \'SETTINGS.PM2_LIST\' | translate}}</td>\n </tr>\n <tr>\n <td md-cell class="no-border">pm2 start <id | name></td>\n <td md-cell class="no-border">{{ \'SETTINGS.PM2_START\' | translate}}</td>\n </tr>\n <tr>\n <td md-cell class="no-border">pm2 stop <id | name | all></td>\n <td md-cell class="no-border">{{ \'SETTINGS.PM2_STOP\' | translate}}</td>\n </tr>\n <tr>\n <td md-cell class="no-border">pm2 restart <id | name></td>\n <td md-cell class="no-border">{{ \'SETTINGS.PM2_RESTART\' | translate}}</td>\n </tr>\n <tr>\n <td md-cell class="no-border">pm2 logs [id | name]</td>\n <td md-cell class="no-border">{{ \'SETTINGS.PM2_LOGS\' | translate}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-card>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/settings/views/updates/update/dialog.html",'<md-dialog aria-label="Update">\n <form name="updateForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n </div>\n </md-toolbar>\n\n <div md-background-bg layout="row" layout-align="start start">\n <md-progress-linear md-mode="determinate" value="{{vm.progress}}" class="md-warn"></md-progress-linear>\n </div>\n\n <md-dialog-content ms-scroll>\n <div layout="row" layout-align="center center">\n <div ng-if="vm.updating" layout="column" layout-align="center center">\n <span class="text-center md-title">Grab a quick coffee and</span>\n <span class="text-center md-title">get back here as soon as completed!</span>\n <span class="text-center md-title">{{vm.output}}</span>\n </div>\n <div ng-if="!vm.updating">\n <div ng-if="vm.success" layout="column" layout-align="center center">\n <span class="text-center md-title">Update Completed! Thank you for your time.</span>\n <span class="text-center md-title">In order to complete the update,</span>\n <span class="text-center md-title">please click on reload button</span>\n </div>\n <div ng-if="!vm.success" layout="column" layout-align="center center">\n <span class="text-center md-title">Update Error!</span>\n <span class="text-center md-title">Please contact your administrator!</span>\n <span class="text-center md-title">{{vm.output}}</span>\n </div>\n </div>\n <img src="assets/images/business/users.jpg" alt="" width="128" height="128" />\n </div>\n </md-dialog-content>\n\n <md-dialog-actions ng-if="!vm.updating" layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.reload()" class="send-button md-warm md-raised" aria-label="RELOAD" translate="SETTINGS.RELOAD" translate-attr-aria-label="SETTINGS.RELOAD">\n RELOAD\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/settings/views/updates/updates.html",'<div id="updates" class="page-layout simple fullwidth doc-page">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-cog" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="SETTINGS.UPDATES">UPDATES</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n \x3c!-- UPDATE CARD --\x3e\n <div layout="row" ng-if="!vm.updating">\n <md-card class="md-whiteframe-1dp padding-20" flex>\n <div layout="column" layout-align="center center">\n\n <span class="md-title md-accent-fg padding-20 text-bold" translate="SETTINGS.CURRENT_VERSION">CURRENT VERSION</span>\n\n <span class="md-display-3 padding-20">{{vm.version.current}}</span>\n\n <md-button href="https://wiki.xcallymotion.com/display/XMV/Motion+GUI#MotionGUI-Version{{vm.version.current}}" target="_blank" class="md-accent" title="CHANGELOG" aria-label="CHANGELOG" translate="SETTINGS.CHANGELOG" translate-attr-aria-label="SETTINGS.CHANGELOG">\n CHANGELOG\n </md-button>\n </div>\n </md-card>\n <md-card class="md-whiteframe-20dp padding-20" flex ng-if="vm.version.current != vm.version.latest">\n <div layout="column" layout-align="center center">\n\n <span class="md-title md-warn-fg padding-20 text-bold" translate="SETTINGS.NEW_VERSION">NEW VERSION</span>\n\n <span class="md-display-3 padding-20">{{vm.version.latest}}</span>\n\n <md-button href="https://wiki.xcallymotion.com/display/XMV/Motion+GUI#MotionGUI-Version{{vm.version.latest}}" target="_blank" class="md-accent" title="CHANGELOG" aria-label="CHANGELOG" translate="SETTINGS.CHANGELOG" translate-attr-aria-label="SETTINGS.CHANGELOG">\n CHANGELOG\n </md-button>\n <md-button ng-click="vm.updateConfirm($event)" class="md-raised md-warn" aria-label="CHANGELOG" translate="SETTINGS.UPDATE" translate-attr-aria-label="SETTINGS.UPDATE">UPDATE</md-button>\n </div>\n </md-card>\n <md-card class="md-whiteframe-1dp padding-20" flex ng-if="vm.version.current == vm.version.latest">\n <div layout="column" layout-align="center center">\n\n <span class="md-title md-warn-fg padding-20 text-bold" translate="SETTINGS.REMOTE_VERSION">REMOTE VERSION</span>\n\n <span class="md-subhead padding-20" translate="SETTINGS.NO_NEW_VERSION_AVAILABLE">NO NEW VERSION AVAILABLE</span>\n </div>\n </md-card>\n </div>\n \x3c!-- / UPDATE CARD --\x3e\n\n <div ng-if="vm.updating">\n <md-card class="md-whiteframe-1dp padding-20" flex>\n <div layout="column" layout-align="center center">\n <span class="md-title md-accent-fg padding-20 text-bold" translate="SETTINGS.UPDATING">...</span>\n <md-progress-linear md-mode="determinate" class="md-accent padding-20" value="{{vm.progress}}"></md-progress-linear>\n <span class="md-display-1 padding-5 text-center">Grab a quick coffee and</span>\n <span class="md-display-1 padding-5 text-center">get back here as soon as completed</span>\n <img src="assets/images/business/users.jpg" alt="" width="40%" height="40%" />\n </div>\n </md-card>\n </div>\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- NO ADD BUTTON BUTTON --\x3e\n</div>'),e.put("app/main/apps/sms/views/realtime/agents/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="SMS.AGENTS">Agents</span>\n <div flex></div>\n <ms-search-bar on-search="vm.onInit()" query="vm.query" on-collapse="vm.query.filter = undefined; vm.onInit()" debounce="300"></ms-search-bar>\n <md-select ng-model="vm.query.globalStatusFilter" class="md-caption" ng-change="vm.query.pauseTypeFilter = \'\'; vm.onInit()">\n <md-option ng-value="\'\'">{{ \'SMS.ALL\' | translate }}</md-option>\n <md-option value="pause">{{ \'SMS.PAUSE\' | translate }}</md-option>\n <md-option value="*pause">{{ \'SMS.PARTIALPAUSE\' | translate }}</md-option>\n <md-option value="busy">{{ \'SMS.BUSY\' | translate }}</md-option>\n <md-option value="idle">{{ \'SMS.IDLE\' | translate }}</md-option>\n </md-select>\n <md-select ng-if="vm.isPause(vm.query.globalStatusFilter)" ng-model="vm.query.pauseTypeFilter" class="md-caption" ng-change="vm.onInit()">\n <md-option ng-value="\'\'">All</md-option>\n <md-option value="DEFAULT PAUSE">DEFAULT PAUSE</md-option>\n <md-option value="ACW">ACW</md-option>\n <md-option value="LOGININPAUSE">LOGININPAUSE</md-option>\n <md-option value="Auto-Pause">AUTOPAUSE</md-option>\n <md-option ng-value="pause.name" ng-repeat="pause in vm.pauses.rows">{{pause.name}}</md-option>\n </md-select>\n </div>\n</md-toolbar>\n\x3c!-- AGENT TABLE --\x3e\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.order" md-on-reorder="vm.onInit">\n <tr md-row border="1">\n <th class="bv text-center" colspan="5">{{ \'SMS.AGENT\' | translate }}</th>\n <th class="bv bl text-center" colspan="2">{{ \'VOICE.VOICE\' | translate }}</th>\n <th ng-if="vm.license.chat" class="bv bl text-center" colspan="2">{{ \'CHAT.CHAT\' | translate }}</th>\n <th ng-if="vm.license.mail" class="bv bl text-center" colspan="2">{{ \'MAIL.MAIL\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="bv bl text-center" colspan="2">{{ \'SMS.SMS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="bv bl text-center" colspan="2">\n {{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="bv bl text-center" colspan="2">\n {{ \'WHATSAPP.WHATSAPP\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n </tr>\n <tr md-row>\n <th class="bl" colspan="2" md-column md-order-by="fullname">\n {{ \'SMS.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">\n {{ \'SMS.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">\n {{ \'SMS.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">\n {{ \'SMS.PAUSE_TIME\' | translate }}</th>\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\n <th ng-if="vm.license.chat" class="bl text-center">{{ \'CHAT.STATUS\' | translate }}</th>\n <th ng-if="vm.license.chat" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'CHAT.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.mail" class="bl text-center">{{ \'MAIL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.mail" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'MAIL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.messaging" class="bl text-center">{{ \'SMS.STATUS\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'SMS.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.openchannel" class="bl text-center">{{ \'OPENCHANNEL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'OPENCHANNEL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.fax" class="bl text-center">{{ \'FAX.STATUS\' | translate }}</th>\n <th ng-if="vm.license.fax" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'FAX.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.whatsapp" class="bl text-center">{{ \'WHATSAPP.STATUS\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'WHATSAPP.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.order.length">\n <td md-cell colspan="19">\n <div layout="row" layout-align="center center">\n <span>{{ \'SMS.NO_AGENT_ONLINE\' | translate }}</span>\n </div>\n </td>\n </tr>\n <tr md-select="vm.agents[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td class="bt padding-5">\n <div layout="row" layout-align="start center">\n <img class="avatar" ng-src="{{vm.agents[value].userpic && \'api/users/\'+vm.agents[value].id+\'/avatar\' || \'assets/images/avatars/profile.png\'}}">\n <div layout="column">\n <span>{{vm.agents[value].fullname}}</span>\n <span>{{vm.agents[value].internal}}</span>\n </div>\n </div>\n </td>\n <td class="bt padding-5">\n <div layout="row" layout-align="start center" ng-if="vm.license.screenrecording && (vm.agents[value].phoneBarEnableScreenRecordingByAgent || vm.agents[value].phoneBarEnableAutomaticScreenRecording)">\n <div class="column" ng-if="vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: green; font-size: 36px;" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'SMS.TOOLTIP_SCREENRECORDING_ON\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n <div class="column" ng-if="!vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: gray" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'SMS.TOOLTIP_SCREENRECORDING_OFF\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n </div>\n </td>\n <td class="bt">\n'+" <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','busy':'indigo-100-bg','*pause':'amber-50-bg','pause':'amber-200-bg'}[vm.agents[value].globalStatus]\">{{\n vm.isPause(vm.agents[value].globalStatus) ? '' : vm.agents[value].globalStatus | uppercase }}\n {{ vm.isPause(vm.agents[value].globalStatus) ? (vm.isPartialPause(vm.agents[value].globalStatus) ?\n '*'+vm.agents[value].pauseType || 'DEFAULT PAUSE' : vm.agents[value].pauseType || 'DEFAULT PAUSE') :\n ''}}</span>\n </td>\n <td class=\"bt custom-column\">\n <timer start-time=\"vm.agents[value].lastLoginAt\"></timer>\n </td>\n <td class=\"bt custom-column\">\n <timer ng-if=\"vm.isPause(vm.agents[value].globalStatus) || vm.isPartialPause(vm.agents[value].globalStatus)\" start-time=\"vm.agents[value].lastPauseAt\"></timer>\n </td>\n <td class=\"bt bl\">\n <div layout=\"row\">\n <span ng-if=\"!vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','talking':'indigo-100-bg','ringing':'orange-400-bg','pause':'amber-200-bg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].voiceStatus | uppercase }}</span>\n <span ng-if=\"vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5 orange-400-bg\">ONHOLD</span>\n </div>\n </td>\n <td class=\"bt bl\">\n <div layout=\"column\">\n <span ng-if=\"vm.agents[value].queue\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].queue }}</span>\n <span ng-if=\"vm.agents[value].destconnectedlinenum\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\" privacy ng-cloak>{{\n vm.agents[value].destconnectedlinenum }}</span>\n <span ng-if=\"vm.agents[value].routealias\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].routealias }}</span>\n <span class=\"padding-5\" ng-if=\"vm.agents[value].queue || vm.agents[value].destconnectedlinenum\">\n <timer start-time=\"vm.agents[value].voiceStatusTime\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">\n </timer>\n </span>\n </div>\n </td>\n <td class=\"bt bl\" ng-if=\"vm.license.chat\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].chatStatus]\">{{\n vm.agents[value].chatStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td md-number class=\"bt text-center font-size-20\" ng-if=\"vm.license.chat\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].chatStatus]\">\n {{ vm.agents[value].chatCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.mail\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].mailStatus]\">{{\n vm.agents[value].mailStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.mail\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].mailStatus]\">\n {{ vm.agents[value].mailCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.messaging\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].smsStatus]\">{{\n vm.agents[value].smsStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.messaging\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].smsStatus]\">\n {{ vm.agents[value].smsCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.openchannel\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].openchannelStatus]\">{{\n vm.agents[value].openchannelStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.openchannel\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].openchannelStatus]\">\n {{ vm.agents[value].openchannelCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.fax\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].faxStatus]\">{{\n vm.agents[value].faxStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.fax\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].faxStatus]\">\n {{ vm.agents[value].faxCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.whatsapp\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].whatsappStatus]\">{{\n vm.agents[value].whatsappStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.whatsapp\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].whatsappStatus]\">\n {{ vm.agents[value].whatsappCurrentCapacity }}</td>\n <td class=\"bl bt padding-5 text-center\" ng-if=\"vm.crudPermissions.canEdit\">\n <md-menu>\n <md-button class=\"md-icon-button\" aria-label=\"More\" translate translate-attr-aria-label=\"STAFF.MORE\" ng-click=\"$mdOpenMenu($event)\">\n <md-icon md-font-icon=\"icon-dots-vertical\"></md-icon>\n </md-button>\n <md-menu-content width=\"4\">\n <md-menu-item>\n <md-button ng-click=\"vm.logout(vm.agents[value], $event)\" translate=\"SMS.LOGOUT\">\n Logout\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click=\"vm.queueAdd(vm.agents[value], $event)\" translate=\"SMS.AGENTADD_QUEUE\">\n Add Agent In Queue\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.license.screenrecording && vm.agents[value].phoneBarEnableScreenRecordingByAgent\">\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"SMS.SCREENRECORDING\">Screen Recording\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if=\"!vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], true)\"><em translate=\"SMS.START_SCREENRECORDING\">Start\n Screen Recording</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], false)\"><em translate=\"SMS.STOP_SCREENRECORDING\">Stop\n Screen Recording</em></md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item>\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"SMS.PAUSE\">Pause</md-button>\n <md-menu-content>\n <md-menu-item>\n <md-button ng-disabled=\" vm.agents[value].voicePause && 'DEFAULT PAUSE' === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value])\"><em translate=\"SMS.DEFAULT_PAUSE\">Default\n Pause</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.pauses.rows.length\" ng-repeat=\"pause in vm.pauses.rows\">\n <md-button ng-disabled=\"vm.agents[value].voicePause && pause.name === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value], pause.name)\">{{pause.name}}\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.isPause(vm.agents[value].globalStatus)\">\n <md-button ng-click=\"vm.unPause(vm.agents[value])\" translate=\"SMS.UNPAUSE\">\n Unpause\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label=\"{page: '{{'SMS.PAGE' | translate}}:', rowsPerPage: '{{'SMS.ROWSPERPAGE' | translate}}:', of: '{{'SMS.OF' | translate}}'}\" md-limit=\"vm.query.limit\" md-limit-options=\"[10, 15, 20, 50, 100, 250]\" md-page=\"vm.query.page\" md-total=\"{{vm.filteredAgents.length}}\" md-on-paginate=\"vm.onInit\" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e"),e.put("app/main/apps/sms/views/realtime/queues/view.html",'<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="SMS.QUEUES">Queues</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getQueues">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'SMS.NAME\' | translate }}</th>\n <th md-column>{{ \'SMS.LOGGED_IN\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'SMS.PAUSED\' | translate }}</th>\n <th md-column>{{ \'SMS.WAITING\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.queues.count > 0">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="SMS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="queue" md-select-id="id" ng-repeat="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedIn }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="SMS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.editQueue($event, queue)" translate="SMS.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.addAgent($event, queue)" translate="SMS.AGENTSADD_QUEUE">\n Add Agents to queue\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'SMS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SMS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SMS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),e.put("app/main/apps/sms/views/realtime/realtime.html",'<div id="realtime" class="page-layout simple tabbed" layout="column" ng-cloak>\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="SMS.AGENTS">Agents</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="SMS.QUEUES">Queues</span>\n </md-tab-label>\n </md-tab>\n </md-tabs>\n\n <md-card ui-view></md-card>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/sms/views/smsAccounts/create/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SMS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.smsAccount.name" ng-required="true" autofocus ng-disabled="!vm.newSmsAccount">\n\n <div ng-messages="smsAccountForm[\'name\'].$error" ng-show="smsAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.KEY">key</label>\n <input type="text" name="key" ng-model="vm.smsAccount.key" md-maxlength="5" ng-required="true">\n\n <div ng-messages="smsAccountForm[\'key\'].$error" ng-show="smsAccountForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="SMS.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.MOTIONPROXY">MotionProxy</label>\n <input type="url" name="remote" ng-model="vm.smsAccount.remote" md-maxlength="255" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="SMS.HELP.MOTIONPROXY"></span></div>\n <div ng-messages="smsAccountForm[\'remote\'].$error" ng-show="smsAccountForm[\'remote\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.MOTIONPROXY_REQUIRED">MotionProxy field is required</span>\n </div>\n <div ng-message="url">\n <span translate="SMS.ERRORS.MOTIONPROXY_MUST_VALID_URL">MotionProxy must be a valid url http://www.xcally.com</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="SMS.ERRORS.MOTIONPROXY_MAX_LENGTH" translate-values=\'{max: 255}\'>MotionProxy must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.LIST">List</label>\n <md-select name="ListId" ng-model="vm.smsAccount.ListId" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="SMS.HELP.LIST"></span></div>\n <div ng-messages="smsAccountForm[\'ListId\'].$error" ng-show="smsAccountForm[\'ListId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.smsAccount.type" required>\n <md-option ng-value="\'twilio\'">Twilio</md-option>\n <md-option ng-value="\'skebby\'">Skebby</md-option>\n <md-option ng-value="\'connectel\'">Connectel</md-option>\n <md-option ng-value="\'clicksend\'">ClickSend</md-option>\n <md-option ng-value="\'plivo\'">Plivo</md-option>\n <md-option ng-value="\'infobip\'">Infobip</md-option>\n <md-option ng-value="\'clickatell\'">Clickatell</md-option>\n <md-option ng-value="\'bandwidth\'">Bandwidth</md-option>\n <md-option ng-value="\'csc\'">CSCTelecom</md-option>\n <md-option ng-value="\'intelepeer\'">Intelepeer</md-option>\n </md-select>\n <div ng-messages="smsAccountForm[\'type\'].$error" ng-show="smsAccountForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.smsAccount.phone" ng-required="true">\n\n <div ng-messages="smsAccountForm[\'phone\'].$error" ng-show="smsAccountForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'twilio\'" class="md-block">\n <label translate="SMS.ACCOUNTSID">AccountSID</label>\n <input type="text" name="accountSid" ng-model="vm.smsAccount.accountSid" ng-required="true">\n\n <div ng-messages="smsAccountForm[\'accountSid\'].$error" ng-show="smsAccountForm[\'accountSid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.ACCOUNTSID_REQUIRED">AccountSID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'plivo\'" class="md-block">\n <label translate="SMS.AUTHID">AuthID</label>\n <input type="text" name="authId" ng-model="vm.smsAccount.authId" ng-required="true">\n\n <div ng-messages="smsAccountForm[\'authId\'].$error" ng-show="smsAccountForm[\'authId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.AUTHID_REQUIRED">AuthID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'twilio\' || vm.smsAccount.type == \'connectel\' || vm.smsAccount.type == \'plivo\'" class="md-block">\n <label translate="SMS.AUTHTOKEN">AuthToken</label>\n <input type="text" name="authToken" ng-model="vm.smsAccount.authToken" ng-required="true">\n\n <div ng-messages="smsAccountForm[\'authToken\'].$error" ng-show="smsAccountForm[\'authToken\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.AUTHTOKEN_REQUIRED">AuthToken field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'skebby\'" class="md-block">\n <label translate="SMS.METHOD">Method</label>\n <md-select name="smsMethod" ng-model="vm.smsAccount.smsMethod" required>\n <md-option ng-value="\'SI\'">Basic</md-option>\n <md-option ng-value="\'TI\'">Classic</md-option>\n <md-option ng-value="\'GP\'">Classic+</md-option>\n </md-select>\n <div ng-messages="smsAccountForm[\'smsMethod\'].$error" ng-show="smsAccountForm[\'smsMethod\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.METHOD_REQUIRED">Method field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'skebby\' || vm.smsAccount.type == \'clicksend\' || vm.smsAccount.type == \'csc\' || vm.smsAccount.type == \'infobip\' || vm.smsAccount.type == \'bandwidth\'" class="md-block">\n <label translate="SMS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.smsAccount.username" ng-required="true">\n\n <div ng-messages="smsAccountForm[\'username\'].$error" ng-show="smsAccountForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.smsAccount.type == \'skebby\' || vm.smsAccount.type == \'clicksend\' || vm.smsAccount.type == \'infobip\' || vm.smsAccount.type == \'bandwidth\'">\n <label translate="SMS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.smsAccount.password" placeholder="Password" translate translate-attr-placeholder="SMS.PASSWORD" required>\n <div ng-messages="smsAccountForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="SMS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container ng-if="vm.smsAccount.type == \'infobip\' || vm.smsAccount.type == \'csc\'" class="md-block">\n <label translate="SMS.BASEURL">BaseURL</label>\n <input type="text" name="baseUrl" ng-model="vm.smsAccount.baseUrl" ng-required="true">\n\n <div ng-messages="smsAccountForm[\'baseUrl\'].$error" ng-show="smsAccountForm[\'baseUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.BASEURL_REQUIRED">BaseURL field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'csc\' || vm.smsAccount.type == \'clickatell\' || vm.smsAccount.type == \'intelepeer\'" class="md-block">\n <label translate="SMS.APIKEY">ApiKey</label>\n <input type="text" name="apiKey" ng-model="vm.smsAccount.apiKey" ng-required="true">\n\n <div ng-messages="smsAccountForm[\'apiKey\'].$error" ng-show="smsAccountForm[\'apiKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.APIKEY_REQUIRED">ApiKey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'bandwidth\'" class="md-block">\n <label translate="SMS.ACCOUNTID">AccountId</label>\n <input type="text" name="accountId" ng-model="vm.smsAccount.accountId" ng-required="true">\n\n <div ng-messages="smsAccountForm[\'accountId\'].$error" ng-show="smsAccountForm[\'accountId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.ACCOUNTID_REQUIRED">AccountId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'bandwidth\'" class="md-block">\n <label translate="SMS.APPLICATIONID">ApplicationID</label>\n <input type="text" name="applicationId" ng-model="vm.smsAccount.applicationId" ng-required="true">\n\n <div ng-messages="smsAccountForm[\'applicationId\'].$error" ng-show="smsAccountForm[\'applicationId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.APPLICATIONID_REQUIRED">ApplicationID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.smsAccount.description">\n\n <div ng-messages="smsAccountForm[\'description\'].$error" ng-show="smsAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newSmsAccount" ng-click="vm.saveSmsAccount()" class="send-button md-accent md-raised" ng-disabled="smsAccountForm.$invalid || smsAccountForm.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newSmsAccount" ng-click="vm.addNewSmsAccount()" class="send-button md-accent md-raised" ng-disabled="smsAccountForm.$invalid" aria-label="ADD" translate="SMS.ADD_SMSACCOUNT" translate-attr-aria-label="SMS.ADD_SMSACCOUNT">\n ADD SMSACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newSmsAccount" ng-click="vm.deleteSmsAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="SMS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="SMS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/agentadd/agentadd.html",'<md-dialog class="smsAccount-dialog" aria-label="smsAccount" ng-init="vm.onInit()">\n <form name="smsAccountForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="SMS.AGENTADD_SMSACCOUNT">Add Agent to smsAccount</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/agent/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SMS.AGENT">Agent</label>\n <md-select name="agent" ng-model="vm.agent.agent" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="agent.name" ng-repeat="agent in vm.agents" ng-disabled="agent.canSelect === false">{{ agent.name }}</md-option>\n </md-select>\n <div ng-messages="smsAccountFormApp[\'agent\'].$error" ng-show="smsAccountFormApp[\'agent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.agent.timeout" min="0" max="2147483" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'timeout\'].$error" ng-show="smsAccountFormApp[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="SMS.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/amazonlex/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SMS.ACCESSKEYID">accesskeyid</label>\n <input type="text" name="accesskeyid" ng-model="vm.amazonlex.accesskeyid" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'accesskeyid\'].$error" ng-show="smsAccountFormApp[\'accesskeyid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.ACCESSKEYID_REQUIRED">accesskeyid field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.SECRETACCESSKEY">secretaccesskey</label>\n <input type="text" name="secretaccesskey" ng-model="vm.amazonlex.secretaccesskey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'secretaccesskey\'].$error" ng-show="smsAccountFormApp[\'secretaccesskey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.SECRETACCESSKEY_REQUIRED">secretaccesskey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.LEXREGION">lexregion</label>\n <md-select name="lexregion" ng-model="vm.amazonlex.lexregion" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'us-east-1\'">US East (N. Virginia)</md-option>\n <md-option ng-value="\'us-west-2\'">US West (Oregon)</md-option>\n <md-option ng-value="\'eu-west-1\'">EU (Ireland)</md-option>\n <md-option ng-value="\'ap-southeast-2\'">Asia Pacific (Sydney)</md-option>\n </md-select>\n <div ng-messages="smsAccountFormApp[\'lexregion\'].$error" ng-show="smsAccountFormApp[\'lexregion\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.LEXREGION_REQUIRED">lexregion field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.BOTNAME">botname</label>\n <input type="text" name="botname" ng-model="vm.amazonlex.botname" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'botname\'].$error" ng-show="smsAccountFormApp[\'botname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.BOTNAME_REQUIRED">botname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.amazonlex.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="SMS.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="smsAccountFormApp[\'welcomemessage\'].$error" ng-show="smsAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="SMS.ERRORS.WELCOMEMESSAGE_REQUIRED">welcomemessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="SMS.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/autoreply/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SMS.TIMES">times</label>\n <md-select name="times" ng-model="vm.autoreply.times" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="2">One Time</md-option>\n <md-option ng-value="0">Always</md-option>\n <md-option ng-value="1">First Message</md-option>\n </md-select>\n <div ng-messages="smsAccountFormApp[\'times\'].$error" ng-show="smsAccountFormApp[\'times\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.TIMES_REQUIRED">times field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.TEXT">Text</label>\n <textarea name="text" ng-model="vm.autoreply.text" required></textarea>\n\n <div ng-messages="smsAccountFormApp[\'text\'].$error" ng-show="smsAccountFormApp[\'text\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="SMS.ERRORS.TEXT_REQUIRED">Text field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/close/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SMS.DISPOSITION">Disposition</label>\n <input type="text" name="disposition" ng-model="vm.close.disposition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'disposition\'].$error" ng-show="smsAccountFormApp[\'disposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.DISPOSITION_REQUIRED">Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/dialogflow/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SMS.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.dialogflow.key" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'key\'].$error" ng-show="smsAccountFormApp[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.KEY_REQUIRED">Key field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflow.language" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'da\'">Danish</md-option>\n <md-option ng-value="\'en\'">English</md-option>\n <md-option ng-value="\'de\'">German</md-option>\n <md-option ng-value="\'it\'">Italian</md-option>\n <md-option ng-value="\'es\'">Spanish</md-option>\n <md-option ng-value="\'fr\'">French</md-option>\n <md-option ng-value="\'id\'">Indonesian</md-option>\n <md-option ng-value="\'ja\'">Japanese</md-option>\n <md-option ng-value="\'ko\'">Korean (South Korea)</md-option>\n <md-option ng-value="\'nl\'">Dutch</md-option>\n <md-option ng-value="\'no\'">Norwegian</md-option>\n <md-option ng-value="\'pt\'">Portuguese (European)</md-option>\n <md-option ng-value="\'pt-br\'">Portuguese (Nrazilian)</md-option>\n <md-option ng-value="\'ru\'">Russian</md-option>\n <md-option ng-value="\'sv\'">Swedish</md-option>\n <md-option ng-value="\'th\'">Thai</md-option>\n <md-option ng-value="\'uk\'">Ukrainian</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese (Simplified)</md-option>\n <md-option ng-value="\'zh-HK\'">Chinese (Hong Kong)</md-option>\n <md-option ng-value="\'zh-TW\'">Chinese (Traditional)</md-option>\n </md-select>\n <div ng-messages="smsAccountFormApp[\'language\'].$error" ng-show="smsAccountFormApp[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.LANGUAGE_REQUIRED">language field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.dialogflow.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="SMS.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="smsAccountFormApp[\'welcomemessage\'].$error" ng-show="smsAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="SMS.ERRORS.WELCOMEMESSAGE_REQUIRED">welcomemessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="SMS.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/dialogflowv2/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SMS.PROJECTID">ProjectID</label>\n <input type="text" name="projectId" ng-model="vm.dialogflowv2.projectId" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'projectId\'].$error" ng-show="smsAccountFormApp[\'projectId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.PROJECTID_REQUIRED">ProjectID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.CLIENTEMAIL">ClientEmail</label>\n <input type="text" name="clientEmail" ng-model="vm.dialogflowv2.clientEmail" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'clientEmail\'].$error" ng-show="smsAccountFormApp[\'clientEmail\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.CLIENTEMAIL_REQUIRED">ClientEmail field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.PRIVATEKEY">PrivateKey</label>\n <textarea name="privateKey" ng-model="vm.dialogflowv2.privateKey" required></textarea>\n\n <div ng-messages="smsAccountFormApp[\'privateKey\'].$error" ng-show="smsAccountFormApp[\'privateKey\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="SMS.ERRORS.PRIVATEKEY_REQUIRED">PrivateKey field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflowv2.language" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'zh-HK\'">Chinese (Cantonese)</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese (Simplified)</md-option>\n <md-option ng-value="\'zh-TW\'">Chinese (Traditional)</md-option>\n <md-option ng-value="\'da\'">Danish</md-option>\n <md-option ng-value="\'nl\'">Dutch</md-option>\n <md-option ng-value="\'en\'">English</md-option>\n <md-option ng-value="\'en-AU\'">English (Australia)</md-option>\n <md-option ng-value="\'en-CA\'">English (Canada)</md-option>\n <md-option ng-value="\'en-GB\'">English (Great Britain)</md-option>\n <md-option ng-value="\'en-IN\'">English (India)</md-option>\n <md-option ng-value="\'en-US\'">English (US)</md-option>\n <md-option ng-value="\'fr\'">French</md-option>\n <md-option ng-value="\'fr-CA\'">French (Canada)</md-option>\n <md-option ng-value="\'fr-FR\'">\'France (France)</md-option>\n <md-option ng-value="\'de\'">German</md-option>\n <md-option ng-value="\'hi\'">Hindi</md-option>\n <md-option ng-value="\'id\'">Indonesian</md-option>\n <md-option ng-value="\'it\'">Italian</md-option>\n <md-option ng-value="\'ja\'">Japanese</md-option>\n <md-option ng-value="\'ko\'">Korean</md-option>\n <md-option ng-value="\'no\'">Norwegian</md-option>\n <md-option ng-value="\'pl\'">Polish</md-option>\n <md-option ng-value="\'pt-BR\'">Portuguese (Brazil)</md-option>\n <md-option ng-value="\'pt-PT\'">Portuguese (Portugal)</md-option>\n <md-option ng-value="\'ru\'">Russian</md-option>\n <md-option ng-value="\'es\'">Spanish</md-option>\n <md-option ng-value="\'es-419\'">Spanish (Latin America)</md-option>\n <md-option ng-value="\'es-ES\'">Spanish (Spain)</md-option>\n <md-option ng-value="\'sw\'">Swedish</md-option>\n <md-option ng-value="\'th\'">Thai</md-option>\n <md-option ng-value="\'tr\'">Turkish</md-option>\n <md-option ng-value="\'uk\'">Ukrainian</md-option>\n </md-select>\n <div ng-messages="smsAccountFormApp[\'language\'].$error" ng-show="smsAccountFormApp[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.LANGUAGE_REQUIRED">language field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.dialogflowv2.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="SMS.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="smsAccountFormApp[\'welcomemessage\'].$error" ng-show="smsAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n\n <div ng-message="md-maxlength">\n <span translate="SMS.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/gotoif/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SMS.CONDITION">Condition</label>\n <input type="text" name="condition" ng-model="vm.gotoif.condition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'condition\'].$error" ng-show="smsAccountFormApp[\'condition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.CONDITION_REQUIRED">Condition field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.TRUEPRIORITY">truepriority</label>\n <input type="number" name="truepriority" ng-model="vm.gotoif.truepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'truepriority\'].$error" ng-show="smsAccountFormApp[\'truepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.TRUEPRIORITY_REQUIRED">truepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">truepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.FALSEPRIORITY">falsepriority</label>\n <input type="number" name="falsepriority" ng-model="vm.gotoif.falsepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'falsepriority\'].$error" ng-show="smsAccountFormApp[\'falsepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.FALSEPRIORITY_REQUIRED">falsepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">falsepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/gotop/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SMS.PRIORITY">Priority</label>\n <input type="number" name="priority" ng-model="vm.gotop.priority" min="0" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'priority\'].$error" ng-show="smsAccountFormApp[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Priority must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/interval/dialog.html",'<md-dialog class="interval-dialog" aria-label="New Interval">\n <form name="intervalForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select ng-model="vm.type" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="type" ng-repeat=\'type in vm.types\'>{{ type | ucfirst }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.type === \'list\'">\n <label translate="TOOLS.INTERVALS">Intervals</label>\n <md-select ng-model="vm.interval.IntervalId" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals">{{ interval.name }}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!-- TIMERANGE START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.TIME_RANGE">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <div class="md-block" flex>\n <mdp-time-picker name="timeRangeFrom" mdp-placeholder="FROM" ng-model="vm.timeRangeFrom" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <div ng-messages="intervalForm.timeRangeFrom.$error" ng-show="intervalForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_FROM_INVALID">Time Range From field is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n <div class="md-block" flex ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_INVALID">Time Range To field is invalid</span>\n </div>\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </div>\n \x3c!-- TIMERANGE END --\x3e\n\n \x3c!-- DAYSOFWEEK START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.WEEK_DAYS">Week Days</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.dayOfWeekFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container flex class="md-block" ng-if="vm.dayOfWeekFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="dayOfWeekTo" ng-model="vm.dayOfWeekTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- DAYSOFWEEK END --\x3e\n\n \x3c!-- MONTHDAY START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTH_DAYS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthDayFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthDayFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthDayTo" ng-model="vm.monthDayTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTHDAY END --\x3e\n\n \x3c!-- MONTH START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTHS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n </md-select>\n\n </md-input-container>\n\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthTo" ng-model="vm.monthTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTH END --\x3e\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="!vm.newInterval && vm.crudPermissions.canEdit" ng-click="vm.saveInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid || intervalForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.newInterval && vm.crudPermissions.canEdit" ng-click="vm.addNewInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_INTERVAL" translate-attr-aria-label="TOOLS.ADD_INTERVAL">\n ADD INTERVAL\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/noop/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SMS.VALUE">Value</label>\n <input type="text" name="value" ng-model="vm.noop.value" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'value\'].$error" ng-show="smsAccountFormApp[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/queue/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SMS.QUEUE">Queue</label>\n <md-select name="queue" ng-model="vm.queue.queue" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="queue.name" ng-repeat="queue in vm.queues" ng-disabled="queue.canSelect === false">{{ queue.name }}</md-option>\n </md-select>\n <div ng-messages="smsAccountFormApp[\'queue\'].$error" ng-show="smsAccountFormApp[\'queue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.queue.timeout" min="0" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'timeout\'].$error" ng-show="smsAccountFormApp[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="SMS.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/system/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SMS.COMMAND">Command</label>\n <input type="text" name="command" ng-model="vm.system.command" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'command\'].$error" ng-show="smsAccountFormApp[\'command\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.COMMAND_REQUIRED">Command field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.VARIABLE">Variable</label>\n <md-select name="variable" ng-model="vm.system.variable" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables" ng-disabled="variable.canSelect === false">{{ variable.name }}</md-option>\n </md-select>\n <div ng-messages="smsAccountFormApp[\'variable\'].$error" ng-show="smsAccountFormApp[\'variable\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.VARIABLE_REQUIRED">Variable field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/tag/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SMS.TAG">Tag</label>\n <md-select name="tag" ng-model="vm.tag.tag" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags" ng-disabled="tag.canSelect === false">{{ tag.name }}</md-option>\n </md-select>\n <div ng-messages="smsAccountFormApp[\'tag\'].$error" ng-show="smsAccountFormApp[\'tag\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.TAG_REQUIRED">Tag field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/smsCannedAnswers/dialog.html",'<md-dialog class="smsCannedAnswer-dialog" aria-label="New SmsCannedAnswer">\n <form name="smsCannedAnswerForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SMS.KEY">Key</label>\n <input type="" name="key" ng-model="vm.smsCannedAnswer.key" md-maxlength="255" ng-required="true" autofocus>\n\n <div ng-messages="smsCannedAnswerForm[\'key\'].$error" ng-show="smsCannedAnswerForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.KEY_REQUIRED">Key field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.VALUE">Value</label>\n <textarea name="value" ng-model="vm.smsCannedAnswer.value" required></textarea>\n\n <div ng-messages="smsCannedAnswerForm[\'value\'].$error" ng-show="smsCannedAnswerForm[\'value\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="SMS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.smsCannedAnswer.description">\n\n <div ng-messages="smsCannedAnswerForm[\'description\'].$error" ng-show="smsCannedAnswerForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newSmsCannedAnswer" ng-click="vm.saveSmsCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="smsCannedAnswerForm.$invalid || smsCannedAnswerForm.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newSmsCannedAnswer" ng-click="vm.addNewSmsCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="smsCannedAnswerForm.$invalid" aria-label="ADD" translate="SMS.ADD_SMSCANNEDANSWER" translate-attr-aria-label="SMS.ADD_SMSCANNEDANSWER">\n ADD SMSCANNEDANSWER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newSmsCannedAnswer" ng-click="vm.deleteSmsCannedAnswer($event)" aria-label="DELETE" translate translate-attr-aria-label="SMS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="SMS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/view.html",'<div id="sms-smsAccount" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-smsAccounts-button md-icon-button" aria-label="Go to smsAccounts" ng-click="vm.gotoSmsAccounts()" translate translate-attr-aria-label="SMS.GO_TO_SMSACCOUNTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="smsAccount-image" hide-xs>\n <img ng-src="assets/images/business/smsAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.smsAccount.id}}\n <span ng-if="vm.smsAccount.name">{{vm.smsAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="SMS.CREATED_AT"></span> <span>{{vm.smsAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.smsAccount, $event)" class="md-fab md-warn md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="SMS.AGENTADD_SMSACCOUNT"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveSmsAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (notificationForm.$invalid) || (transferForm.$invalid) || (proxyForm.$invalid) || (dispositionForm.$invalid) || (smsDispositionsForm.$invalid) || (smsCannedAnswersForm.$invalid) || (actionsForm.$invalid) || (interactionsForm.$invalid)" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="SMS.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="smsAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SMS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="SMS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.smsAccount.name" ng-required="true" autofocus disabled>\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.KEY">key</label>\n <input type="text" name="key" ng-model="vm.smsAccount.key" md-maxlength="5" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'key\'].$error" ng-show="generalForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="SMS.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.LIST">List</label>\n <md-select name="ListId" ng-model="vm.smsAccount.ListId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="SMS.HELP.LIST"></span></div>\n <div ng-messages="generalForm[\'ListId\'].$error" ng-show="generalForm[\'ListId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.smsAccount.type" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'twilio\'">Twilio</md-option>\n <md-option ng-value="\'skebby\'">Skebby</md-option>\n <md-option ng-value="\'connectel\'">Connectel</md-option>\n <md-option ng-value="\'clicksend\'">ClickSend</md-option>\n <md-option ng-value="\'plivo\'">Plivo</md-option>\n <md-option ng-value="\'infobip\'">Infobip</md-option>\n <md-option ng-value="\'clickatell\'">Clickatell</md-option>\n <md-option ng-value="\'bandwidth\'">Bandwidth</md-option>\n <md-option ng-value="\'csc\'">CSCTelecom</md-option>\n <md-option ng-value="\'intelepeer\'">Intelepeer</md-option>\n </md-select>\n <div ng-messages="generalForm[\'type\'].$error" ng-show="generalForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.smsAccount.phone" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'phone\'].$error" ng-show="generalForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'twilio\'" class="md-block">\n <label translate="SMS.ACCOUNTSID">AccountSID</label>\n <input type="text" name="accountSid" ng-model="vm.smsAccount.accountSid" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'accountSid\'].$error" ng-show="generalForm[\'accountSid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.ACCOUNTSID_REQUIRED">AccountSID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'plivo\'" class="md-block">\n <label translate="SMS.AUTHID">AuthID</label>\n <input type="text" name="authId" ng-model="vm.smsAccount.authId" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'authId\'].$error" ng-show="generalForm[\'authId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.AUTHID_REQUIRED">AuthID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'twilio\' || vm.smsAccount.type == \'connectel\' || vm.smsAccount.type == \'plivo\'" class="md-block">\n <label translate="SMS.AUTHTOKEN">AuthToken</label>\n <input type="text" name="authToken" ng-model="vm.smsAccount.authToken" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'authToken\'].$error" ng-show="generalForm[\'authToken\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.AUTHTOKEN_REQUIRED">AuthToken field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'skebby\'" class="md-block">\n <label translate="SMS.METHOD">Method</label>\n <md-select name="smsMethod" ng-model="vm.smsAccount.smsMethod" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'SI\'">Basic</md-option>\n <md-option ng-value="\'TI\'">Classic</md-option>\n <md-option ng-value="\'GP\'">Classic+</md-option>\n </md-select>\n <div ng-messages="generalForm[\'smsMethod\'].$error" ng-show="generalForm[\'smsMethod\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.METHOD_REQUIRED">Method field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'skebby\' || vm.smsAccount.type == \'clicksend\' || vm.smsAccount.type == \'csc\' || vm.smsAccount.type == \'infobip\' || vm.smsAccount.type == \'bandwidth\'" class="md-block">\n <label translate="SMS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.smsAccount.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'username\'].$error" ng-show="generalForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.smsAccount.type == \'skebby\' || vm.smsAccount.type == \'clicksend\' || vm.smsAccount.type == \'infobip\' || vm.smsAccount.type == \'bandwidth\'">\n <label translate="SMS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.smsAccount.password" placeholder="Password" translate translate-attr-placeholder="SMS.PASSWORD" required>\n <div ng-messages="generalForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="SMS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container ng-if="vm.smsAccount.type == \'infobip\' || vm.smsAccount.type == \'csc\'" class="md-block">\n <label translate="SMS.BASEURL">BaseURL</label>\n <input type="text" name="baseUrl" ng-model="vm.smsAccount.baseUrl" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'baseUrl\'].$error" ng-show="generalForm[\'baseUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.BASEURL_REQUIRED">BaseURL field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'csc\' || vm.smsAccount.type == \'clickatell\' || vm.smsAccount.type == \'intelepeer\'" class="md-block">\n <label translate="SMS.APIKEY">ApiKey</label>\n <input type="text" name="apiKey" ng-model="vm.smsAccount.apiKey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'apiKey\'].$error" ng-show="generalForm[\'apiKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.APIKEY_REQUIRED">ApiKey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'bandwidth\'" class="md-block">\n <label translate="SMS.ACCOUNTID">AccountId</label>\n <input type="text" name="accountId" ng-model="vm.smsAccount.accountId" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'accountId\'].$error" ng-show="generalForm[\'accountId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.ACCOUNTID_REQUIRED">AccountId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'bandwidth\'" class="md-block">\n <label translate="SMS.APPLICATIONID">ApplicationID</label>\n <input type="text" name="applicationId" ng-model="vm.smsAccount.applicationId" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'applicationId\'].$error" ng-show="generalForm[\'applicationId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.APPLICATIONID_REQUIRED">ApplicationID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'connectel\' || vm.smsAccount.type == \'clicksend\' || vm.smsAccount.type == \'plivo\'|| vm.smsAccount.type == \'csc\'|| vm.smsAccount.type == \'infobip\' || vm.smsAccount.type == \'intelepeer\'" class="md-block">\n <label translate="SMS.SENDERSTRING">SenderString</label>\n <input type="text" name="senderString" ng-model="vm.smsAccount.senderString" md-maxlength="11" ng-pattern="/^[A-Za-z0-9\\.\\s]*$/i" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'senderString\'].$error" ng-show="generalForm[\'senderString\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.SENDERSTRING_REQUIRED">SenderString field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="SMS.ERRORS.SENDERSTRING_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\s]*$/i\' }">SenderString must be valid pattern </span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="SMS.ERRORS.SENDERSTRING_MAX_LENGTH" translate-values=\'{max: 11}\'>SenderString must have a maximum length equal to 11</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.smsAccount.type == \'skebby\' && vm.smsAccount.smsMethod == \'GP\') || vm.smsAccount.type == \'connectel\' || vm.smsAccount.type == \'clicksend\' || vm.smsAccount.type == \'csc\' || vm.smsAccount.type == \'clickatell\'" class="md-block">\n <md-switch ng-model="vm.smsAccount.deliveryReport" aria-label="deliveryReport" ng-disabled="!vm.crudPermissions.canEdit"><span translate="SMS.DELIVERYREPORT">deliveryReport</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.WAITFORTHEASSIGNEDAGENT">WaitForTheAssignedAgent</label>\n <input type="number" name="waitForTheAssignedAgent" ng-model="vm.smsAccount.waitForTheAssignedAgent" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'waitForTheAssignedAgent\'].$error" ng-show="generalForm[\'waitForTheAssignedAgent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.WAITFORTHEASSIGNEDAGENT_REQUIRED">WaitForTheAssignedAgent field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="SMS.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.smsAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.RECEIVEURL">receiveUrl</label>\n <div layout="row" layout-align="center center">\n <button class="md-button md-fab md-mini md-primary" ngclipboard data-clipboard-target="#copytoclipboard-receiveUrl" ngclipboard-success="vm.alert({title: \'copied to clipboard\', msg: e.text });" ngclipboard-error="vm.alert({title: \'error\', msg: \'copy to clipboard failed\'});">\n <md-icon md-font-icon="icon-clipboard-text"></md-icon>\n </button>\n <input class="md-input" type="text" id="copytoclipboard-receiveUrl" name="receiveUrl" ng-value="vm.smsAccount.remote + \'/api/sms/accounts/\' + vm.smsAccount.id + \'/notify?token=\' + vm.smsAccount.token" ng-readonly="true">\n </div>\n <div class="hint"><span translate="SMS.HELP.RECEIVEURL"></span></div>\n </md-input-container>\n <md-input-container ng-if="( ((vm.smsAccount.type == \'skebby\' && vm.smsAccount.smsMethod == \'GP\') || vm.smsAccount.type == \'connectel\' || vm.smsAccount.type == \'clicksend\' || vm.smsAccount.type == \'csc\' || vm.smsAccount.type == \'clickatell\') && vm.smsAccount.deliveryReport) || vm.smsAccount.type == \'bandwidth\'" class="md-block">\n <label translate="SMS.DELIVERYREPORTURL">deliveryReportUrl</label>\n <div layout="row" layout-align="center center">\n <button class="md-button md-fab md-mini md-primary" ngclipboard data-clipboard-target="#copytoclipboard-deliveryReportUrl" ngclipboard-success="vm.alert({title: \'copied to clipboard\', msg: e.text });" ngclipboard-error="vm.alert({title: \'error\', msg: \'copy to clipboard failed\'});">\n <md-icon md-font-icon="icon-clipboard-text"></md-icon>\n </button>\n <input class="md-input" type="text" id="copytoclipboard-deliveryReportUrl" name="deliveryReportUrl" ng-value="vm.smsAccount.remote + \'/api/sms/accounts/\' + vm.smsAccount.id + \'/status?token=\' + vm.smsAccount.token + (vm.smsAccount.type == \'csc\' ? \'&message-id={message-id}&state={state}\' : \'\')" ng-readonly="true">\n </div>\n <div class="hint"><span translate="SMS.HELP.DELIVERYREPORTURL"></span></div>\n </md-input-container>\n\n </form>\n </div>\n <div class="smsAccount-detail-form-container notification md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SMS.NOTIFICATION">NOTIFICATION</div>\n </div>\n <form name="notificationForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.smsAccount.notificationSound" aria-label="notificationSound" ng-disabled="!vm.crudPermissions.canEdit"><span translate="SMS.NOTIFICATIONSOUND">notificationSound</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.smsAccount.notificationShake" aria-label="notificationShake" ng-disabled="!vm.crudPermissions.canEdit"><span translate="SMS.NOTIFICATIONSHAKE">notificationShake</span></md-switch>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="SMS.NOTIFICATIONTEMPLATE">notificationTemplate</label>\n <textarea aria-label="notificationTemplate notificationTemplate" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', removePlugins: \'magicline\' }" ng-model="vm.smsAccount.notificationTemplate"></textarea>\n </div>\n\n </form>\n </div>\n <div class="smsAccount-detail-form-container transfer md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SMS.TRANSFER">TRANSFER</div>\n </div>\n <form name="transferForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.smsAccount.queueTransfer" aria-label="queueTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="SMS.QUEUETRANSFER">queueTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.queueTransfer == true" class="md-block">\n <label translate="SMS.QUEUETRANSFERTIMEOUT">queueTransferTimeout</label>\n <input type="number" name="queueTransferTimeout" ng-model="vm.smsAccount.queueTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'queueTransferTimeout\'].$error" ng-show="transferForm[\'queueTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.QUEUETRANSFERTIMEOUT_REQUIRED">queueTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="SMS.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.smsAccount.agentTransfer" aria-label="agentTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="SMS.AGENTTRANSFER">agentTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.agentTransfer == true" class="md-block">\n <label translate="SMS.AGENTTRANSFERTIMEOUT">agentTransferTimeout</label>\n <input type="number" name="agentTransferTimeout" ng-model="vm.smsAccount.agentTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'agentTransferTimeout\'].$error" ng-show="transferForm[\'agentTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.AGENTTRANSFERTIMEOUT_REQUIRED">agentTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="SMS.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="SMS.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <md-tab-body>\n <div class="smsAccount-detail-form-container proxy md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SMS.PROXY">PROXY</div>\n </div>\n <form name="proxyForm" novalidate>\n <md-input-container class="md-block">\n <label translate="SMS.TOKEN">token</label>\n <input type="text" name="token" ng-model="vm.smsAccount.token" autofocus disabled>\n\n <div ng-messages="proxyForm[\'token\'].$error" ng-show="proxyForm[\'token\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.TOKEN_REQUIRED">token field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.MOTIONPROXY">MotionProxy</label>\n <input type="url" name="remote" ng-model="vm.smsAccount.remote" md-maxlength="255" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="SMS.HELP.MOTIONPROXY"></span></div>\n <div ng-messages="proxyForm[\'remote\'].$error" ng-show="proxyForm[\'remote\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.MOTIONPROXY_REQUIRED">MotionProxy field is required</span>\n </div>\n <div ng-message="url">\n <span translate="SMS.ERRORS.MOTIONPROXY_MUST_VALID_URL">MotionProxy must be a valid url http://www.xcally.com</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="SMS.ERRORS.MOTIONPROXY_MAX_LENGTH" translate-values=\'{max: 255}\'>MotionProxy must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="smsAccount-detail-form-container disposition md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SMS.DISPOSITION">DISPOSITION</div>\n </div>\n <form name="dispositionForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.smsAccount.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="SMS.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.mandatoryDisposition" class="md-block">\n <label translate="SMS.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.smsAccount.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="SMS.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="dispositionForm[\'mandatoryDispositionPauseId\'].$error" ng-show="dispositionForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="SMS.DISPOSITIONS">DISPOSITIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div ng-controller="SmsAccountDispositionsController as vm_dc" ng-init="vm_dc.init(vm.smsAccount, vm.crudPermissions)">\n <div layout="row">\n <div class="column" flex="20">\n <md-card class="mt-0">\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm_dc.query.level = null; vm_dc.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\n </button>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm_dc.query.level" ng-change="vm_dc.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm_dc.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n <div class="smsAccount-detail-form-container smsdispositions md-background-bg md-whiteframe-1dp" flex="80">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedSmsAccountDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="SMS.DISPOSITIONS">Dispositions</span>\n <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditDisposition($event)" aria-label="Add sms dispositions" translate translate-attr-label="SMS.ADD_DISPOSITION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedDispositions.length}}\n {{vm_dc.selectedDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedDispositions" csv-label="true" filename="smsAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedDispositions($event)" aria-label="delete selected" translate translate-attr-label="SMS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_dc.selectedDispositions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getDispositions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'SMS.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'SMS.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'SMS.DESCRIPTION\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_dc.dispositions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="SMS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="disposition" md-select-id="id" ng-repeat="disposition in vm_dc.dispositions.rows">\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm_dc.levels[disposition.level] }}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="SMS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(disposition, $event)" translate="TOOLS.DELETE_DISPOSITION">\n Delete Disposition\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'SMS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SMS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SMS.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.dispositions.count}}" md-on-paginate="vm_dc.getDispositions" md-page-select>\n </md-table-pagination>\n </div>\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="SMS.CANNEDANSWERS">CANNEDANSWERS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="smsAccount-detail-form-container smscannedanswers md-background-bg md-whiteframe-1dp">\n <div ng-controller="SmsAccountSmsCannedAnswersController as vm_dc" ng-init="vm_dc.init(vm.smsAccount, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedSmsAccountSmsCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="SMS.SMSCANNEDANSWERS">SmsCannedAnswers</span>\n <ms-search-bar on-search="vm_dc.getSmsAccountSmsCannedAnswers()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditSmsAccountSmsCannedAnswer($event)" aria-label="add smsCannedAnswer" translate translate-attr-label="SMS.ADD_SMSCANNEDANSWER">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedSmsAccountSmsCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedSmsAccountSmsCannedAnswers.length}} {{vm_dc.selectedSmsAccountSmsCannedAnswers.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedSmsAccountSmsCannedAnswers" csv-label="true" filename="smsAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedSmsAccountSmsCannedAnswers($event)" aria-label="delete selected" translate translate-attr-label="SMS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedSmsAccountSmsCannedAnswers" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getSmsAccountSmsCannedAnswers">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'SMS.ID\' | translate }}\n </th>\n <th md-column md-order-by="key">\n {{ \'SMS.KEY\' | translate }}\n </th>\n <th md-column md-order-by="value">\n {{ \'SMS.VALUE\' | translate }}\n </th>\n <th md-column md-order-by="description">\n {{ \'SMS.DESCRIPTION\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'SMS.CREATED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="smsCannedAnswer" md-select-id="id" ng-repeat="smsCannedAnswer in vm_dc.smsAccountSmsCannedAnswers.rows">\n <td ng-click="vm_dc.createOrEditSmsAccountSmsCannedAnswer($event, smsCannedAnswer)" md-cell>\n {{smsCannedAnswer.id}}\n </td>\n <td ng-click="vm_dc.createOrEditSmsAccountSmsCannedAnswer($event, smsCannedAnswer)" md-cell>\n {{smsCannedAnswer.key}}\n </td>\n <td ng-click="vm_dc.createOrEditSmsAccountSmsCannedAnswer($event, smsCannedAnswer)" md-cell>\n {{smsCannedAnswer.value}}\n </td>\n <td ng-click="vm_dc.createOrEditSmsAccountSmsCannedAnswer($event, smsCannedAnswer)" md-cell>\n {{smsCannedAnswer.description}}\n </td>\n <td ng-click="vm_dc.createOrEditSmsAccountSmsCannedAnswer($event, smsCannedAnswer)" md-cell>\n {{ smsCannedAnswer.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="SMS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditSmsAccountSmsCannedAnswer($event, smsCannedAnswer)" translate="SMS.EDIT_SMSCANNEDANSWER">\n Edit SmsCannedAnswer\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(smsCannedAnswer, $event)" translate="SMS.DELETE_SMSCANNEDANSWER">\n Delete SmsCannedAnswer\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.smsAccountSmsCannedAnswers.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="SMS.NO_SMSCANNEDANSWER_AVAILABLE">No smscannedanswer available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'SMS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SMS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SMS.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.smsAccountSmsCannedAnswers.count}}" md-on-paginate="vm_dc.getSmsAccountSmsCannedAnswers" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="SMS.ACTIONS">ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="smsAccount-detail-form-container actions md-background-bg md-whiteframe-1dp">\n <div ng-controller="SmsAccountActionsController as vm_ac" ng-init="vm_ac.init(vm.smsAccount, vm.crudPermissions)" class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- SIDENAV --\x3e\n <div class="navigation-simple sidenav main-sidenav md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="20" ng-if="vm_ac.crudPermissions.canEdit">\n \x3c!-- SIDENAV CONTENT --\x3e\n <md-list class="no-padding">\n <md-subheader class="md-no-sticky">\n <span translate="VOICE.APPLICATIONS_LIST">\n Applications List\n </span>\n </md-subheader>\n </md-list>\n <md-divider></md-divider>\n <md-list ng-sortable="vm_ac.list">\n <md-list-item class="handle" ng-repeat="a in vm_ac.apps">\n <md-icon md-font-icon="{{a.icon}}" class="s16"></md-icon>\n <p class="text-truncate" translate="SMS.{{(a.appAlias || a.appType) | uppercase}}">{{a.appAlias || a.appType}}</p>\n </md-list-item>\n </md-list>\n \x3c!-- / SIDENAV CONTENT --\x3e\n </div>\n \x3c!-- / SIDENAV --\x3e\n <div flex></div>\n \x3c!-- MAIN --\x3e\n <div class="main scrollable md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="{{vm_ac.crudPermissions.canEdit ? 75 : 100}}">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_ac.selectedSmsAccountApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">Drag & Drop Routing</span>\n <div flex></div>\n <ms-search-bar on-search="vm_ac.query.filter = query" on-collapse="vm_ac.query.filter = undefined" debounce="300"></ms-search-bar>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_ac.selectedSmsAccountApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_ac.selectedSmsAccountApps.length}} {{vm_ac.selectedSmsAccountApps.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_ac.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_ac.deleteSelectedSmsAccountApps($event)" aria-label="delete selected" translate translate-attr-label="SMS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n \x3c!-- QUEUES TABLE --\x3e\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_ac.selectedSmsAccountApps">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column width="10px">\n <span translate="VOICE.PRIORITY">Priority</span>\n </th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </th>\n <th md-column width="10px"></th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body ng-sortable="vm_ac.applications">\n <tr md-row md-select="app" md-select-id="id" ng-repeat="app in vm_ac.smsAccountApps.rows | filter: vm_ac.query.filter">\n <td md-cell>\n <md-icon md-font-icon="icon-drag-vertical" class="s16 handle"></md-icon>\n </td>\n <td md-cell ng-click="vm_ac.editSmsAccountApp($event, $index)"><span>{{app.priority}}</span></td>\n <td md-cell ng-click="vm_ac.editSmsAccountApp($event, $index)">{{app.app.toLowerCase() === \'agi\' ? \'Cally-Square\' : app.app | ucfirst}}<span ng-if="app.appType.toLowerCase() === \'custom\'">*</span></td>\n <td md-cell ng-click="vm_ac.editSmsAccountApp($event, $index)"><span class="text-truncate actionAppData">{{app.appdata}}</span></td>\n <td md-cell ng-click="vm_ac.editInterval($event, $index)">{{app.IntervalId ? \'From List\' : app.interval}}</td>\n <td md-cell>\n <md-button ng-click="vm_ac.editInterval($event, $index)" class="md-icon-button" aria-label="Interval">\n <md-icon md-font-icon="icon-timer"></md-icon>\n <md-tooltip>\n {{app.IntervalId ? \'From List\' : (app.interval === \'*,*,*,*\' ? \'Always\' : \'Custom\')}}\n </md-tooltip>\n </md-button>\n </td>\n <td md-cell class="actions" ng-if="!vm_ac.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_ac.crudPermissions.canEdit">\n <md-button ng-click="vm_ac.editSmsAccountApp($event, $index)" translate="VOICE.EDIT_APP">\n Edit App\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_ac.crudPermissions.canEdit">\n <md-button ng-click="vm_ac.editInterval($event, $index)" translate="VOICE.EDIT_INTERVAL">\n Edit Interval\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_ac.crudPermissions.canDelete">\n <md-button ng-click="vm_ac.deleteConfirm(app, $index, $event)" translate="VOICE.DELETE_APP">\n Delete App\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-hide="vm_ac.smsAccountApps.rows.length">\n <td md-cell colspan="7">\n <span class="text-boxed-light" translate="VOICE.NO_APPS_AVAILABLE">No apps available</span>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n \x3c!-- / QUEUES TABLE --\x3e\n\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="SMS.INTERACTIONS">INTERACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="smsAccount-detail-form-container interactions md-background-bg md-whiteframe-1dp">\n <div ng-controller="SmsAccountInteractionsController as vm_dc" ng-init="vm_dc.init(vm.smsAccount, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedSmsAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="SMS.INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm_dc.getSmsAccountInteractions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_dc.quickFilters" query="vm_dc.query" search="vm_dc.getSmsAccountInteractions()"></ms-quick-filter>\n <div layout="column">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini md-accent-bg\': vm_dc.query.search }" aria-label="Filter" translate translate-attr-aria-label="DASHBOARDS.FILTER" ng-click="vm_dc.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm_dc.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'blink\': vm_dc.query.search }"></md-icon>\n </md-button>\n </div>\n <md-button class="md-icon-button" ng-click="vm_dc.getSmsAccountInteractions()" aria-label="refresh Interactions" translate translate-attr-label="SMS.REFRESH_INTERACTIONS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedSmsAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedSmsAccountInteractions.length}} {{vm_dc.selectedSmsAccountInteractions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedSmsAccountInteractions" csv-label="true" filename="smsAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedSmsAccountInteractions($event)" aria-label="delete selected" translate translate-attr-label="SMS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedSmsAccountInteractions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getSmsAccountInteractions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'SMS.ID\' | translate }}\n </th>\n <th md-column class="no-padding">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column md-order-by="contactName">\n {{ \'SMS.CONTACT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'SMS.STARTEDAT\' | translate }}\n </th>\n <th md-column md-order-by="lastMsgAt">\n {{ \'SMS.LASTMESSAGE\' | translate }}\n </th>\n <th md-column md-order-by="closed">\n {{ \'SMS.STATUS\' | translate }}\n </th>\n <th md-column>\n {{ \'SMS.AGENT\' | translate }}\n </th>\n <th md-column md-order-by="tag">\n {{ \'SMS.TAGS\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="interaction" md-select-id="id" ng-repeat="interaction in vm_dc.smsAccountInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td md-cell>\n {{interaction.id}}\n </td>\n <td md-cell class="no-padding">\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="user in interaction.Users">{{ user.fullname | translate }}\n <span ng-if="!$last">, </span>\n </span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg md-primary-bg" layout-margin>{{ interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.attach">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td md-cell privacy ng-cloak>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'margin-bottom-0\' : interaction.contactInfo}" layout-margin>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text margin-top-0" layout-margin>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td md-cell>\n {{ interaction.createdAt | formatdate }}\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}"></md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="text-truncate">{{ interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n </td>\n <td md-cell>\n <span ng-if="interaction.closed === 0" class="green-fg">\n {{ \'SMS.OPENED\' | translate }}\n <span ng-if="interaction.substatus">\n - {{ interaction.substatus }}\n </span>\n </span>\n <span ng-if="interaction.closed === 1" class="red-fg">\n {{ \'SMS.CLOSED\' | translate }}\n <span ng-if="interaction.disposition">\n - {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}\n </span>\n <md-tooltip class="multiline">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n </span>\n </td>\n\n <td md-cell>\n {{interaction.Owner.name}}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="SMS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm_dc.spysmsInteraction($event, interaction)" translate="SMS.SPYINTERACTION">\n Spy Interaction\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.role === \'admin\' || vm_dc.userProfile.downloadOmnichannelInteractions">\n <md-button class="md-primary" ng-click="vm_dc.smsInteractionDownload(interaction, $event)" translate="SMS.DOWNLOAD_INTERACTION">\n Download\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(interaction, $event)" translate="SMS.DELETE_INTERACTION">\n Delete Interaction\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.smsAccountInteractions.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="SMS.NO_INTERACTION_AVAILABLE">No interaction available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'SMS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SMS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SMS.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.smsAccountInteractions.count}}" md-on-paginate="vm_dc.getSmsAccountInteractions" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/sms/views/smsAccounts/smsAccounts.html",'<div id="smsAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-message-text" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="SMS.SMSACCOUNTS">SmsAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="SMS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedSmsAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedSmsAccounts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="SMS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-smsAccounts-count">\n <span>{{vm.selectedSmsAccounts.length}}</span>\n <span translate="SMS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="SMS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllSmsAccounts()" translate="SMS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectSmsAccounts()" translate="SMS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedSmsAccounts" csv-label="true" filename="smsAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedSmsAccounts($event)" aria-label="delete selected" translate translate-attr-label="SMS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- SMSACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedSmsAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getSmsAccounts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'SMS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'SMS.NAME\' | translate }}</th>\n <th md-column md-order-by="key">{{ \'SMS.KEY\' | translate }}</th>\n <th md-column md-order-by="ListId">{{ \'SMS.LIST\' | translate }}</th>\n <th md-column md-order-by="type">{{ \'SMS.TYPE\' | translate }}</th>\n <th md-column md-order-by="phone">{{ \'SMS.PHONE\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'SMS.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.smsAccounts.rows.length">\n <td md-cell colspan="8">\n <div layout="row" layout-align="center center">\n <span translate="SMS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="smsAccount" md-select-id="id" ng-repeat="smsAccount in vm.smsAccounts.rows">\n <td md-cell ng-if="smsAccount.userpic"><img class="avatar" alt="{{smsAccount.name}}" ng-src="api/users/{{smsAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!smsAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{smsAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsAccount, ev) : vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="id ">{{smsAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsAccount, ev) : vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="name ">{{smsAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsAccount, ev) : vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="key ">{{smsAccount.key}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsAccount, ev) : vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="ListId ">{{ (vm.lists | filter : {\'id\':smsAccount.ListId} : true)[0].name }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsAccount, ev) : vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="type ">{{ vm.arraytype[smsAccount.type].option }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsAccount, ev) : vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="phone ">{{smsAccount.phone}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsAccount, ev) : vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="description ">{{smsAccount.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="SMS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(smsAccount, $event )" translate="SMS.EDIT_SMSACCOUNT">\n Edit SmsAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.interactionsgoto(smsAccount, $event )" translate="SMS.INTERACTIONS_SMSACCOUNT">\n Interactions SmsAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(smsAccount, $event )" translate="SMS.AGENTADD_SMSACCOUNT">\n AgentAdd SmsAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(smsAccount, $event )" translate="SMS.DELETE_SMSACCOUNT">\n Delete SmsAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'SMS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SMS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SMS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.smsAccounts.count}}" md-on-paginate="vm.getSmsAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / SMSACCOUNT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD SMSACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-smsAccount-button" ng-click="vm.createOrEditSmsAccount($event)" aria-label="add smsAccount" translate translate-attr-aria-label="SMS.ADD_SMSACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD SMSACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/sms/views/smsQueues/create/dialog.html",'<md-dialog class="smsQueue-dialog" aria-label="New SmsQueue">\n <form name="smsQueueForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SMS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.smsQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newSmsQueue">\n\n <div class="hint"><span translate="SMS.HELP.NAME"></span></div>\n <div ng-messages="smsQueueForm[\'name\'].$error" ng-show="smsQueueForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="SMS.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.smsQueue.strategy" required>\n <md-option ng-value="\'beepall\'">Beepall</md-option>\n <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n </md-select>\n <div ng-messages="smsQueueForm[\'strategy\'].$error" ng-show="smsQueueForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.AGENT_TIMEOUT">Agent_Timeout</label>\n <input type="number" name="timeout" ng-model="vm.smsQueue.timeout" min="1" max="2147483" value="10" ng-required="true">\n\n <div ng-messages="smsQueueForm[\'timeout\'].$error" ng-show="smsQueueForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="SMS.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.smsQueue.description">\n\n <div ng-messages="smsQueueForm[\'description\'].$error" ng-show="smsQueueForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newSmsQueue" ng-click="vm.saveSmsQueue()" class="send-button md-accent md-raised" ng-disabled="smsQueueForm.$invalid || smsQueueForm.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newSmsQueue" ng-click="vm.addNewSmsQueue()" class="send-button md-accent md-raised" ng-disabled="smsQueueForm.$invalid" aria-label="ADD" translate="SMS.ADD_SMSQUEUE" translate-attr-aria-label="SMS.ADD_SMSQUEUE">\n ADD SMSQUEUE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newSmsQueue" ng-click="vm.deleteSmsQueue($event)" aria-label="DELETE" translate translate-attr-aria-label="SMS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="SMS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsQueues/edit/agentadd/agentadd.html",'<md-dialog class="smsQueue-dialog" aria-label="smsQueue" ng-init="vm.onInit()">\n <form name="smsQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="SMS.AGENTADD_SMSQUEUE">Add Agent to smsQueue</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsQueues/edit/teamadd/teamadd.html",'<md-dialog class="smsQueue-dialog" aria-label="smsQueue" ng-init="vm.onInit()">\n <form name="smsQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="SMS.TEAMS_ASSOCIATION">Teams Association</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsQueues/edit/view.html",'<div id="sms-smsQueue" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-smsQueues-button md-icon-button" aria-label="Go to smsQueues" ng-click="vm.gotoSmsQueues()" translate translate-attr-aria-label="SMS.GO_TO_SMSQUEUES">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="smsQueue-image" hide-xs>\n <img ng-src="assets/images/business/smsQueues.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.smsQueue.id}}\n <span ng-if="vm.smsQueue.name">{{vm.smsQueue.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="SMS.CREATED_AT"></span> <span>{{vm.smsQueue.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.teamadddialog(vm.smsQueue, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n <md-tooltip><span translate="SMS.TEAMADD_SMSQUEUE"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.smsQueue, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="SMS.AGENTADD_SMSQUEUE"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-plus"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveSmsQueue()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid)" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="SMS.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="smsQueue-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SMS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="SMS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.smsQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="SMS.HELP.NAME"></span></div>\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="SMS.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.smsQueue.strategy" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'beepall\'">Beepall</md-option>\n <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n </md-select>\n <div ng-messages="generalForm[\'strategy\'].$error" ng-show="generalForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.AGENT_TIMEOUT">Agent_Timeout</label>\n <input type="number" name="timeout" ng-model="vm.smsQueue.timeout" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'timeout\'].$error" ng-show="generalForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="SMS.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.smsQueue.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/sms/views/smsQueues/smsQueues.html",'<div id="smsQueues" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-message-text" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="SMS.SMSQUEUES">SmsQueues</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="SMS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedSmsQueues.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedSmsQueues =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="SMS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-smsQueues-count">\n <span>{{vm.selectedSmsQueues.length}}</span>\n <span translate="SMS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="SMS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllSmsQueues()" translate="SMS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectSmsQueues()" translate="SMS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedSmsQueues" csv-label="true" filename="smsQueues.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedSmsQueues($event)" aria-label="delete selected" translate translate-attr-label="SMS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- SMSQUEUE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedSmsQueues" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getSmsQueues">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'SMS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'SMS.NAME\' | translate }}</th>\n <th md-column md-order-by="strategy">{{ \'SMS.STRATEGY\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.smsQueues.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="SMS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="smsQueue" md-select-id="id" ng-repeat="smsQueue in vm.smsQueues.rows">\n <td md-cell ng-if="smsQueue.userpic"><img class="avatar" alt="{{smsQueue.name}}" ng-src="api/users/{{smsQueue.id}}/avatar" /></td>\n <td md-cell ng-if="!smsQueue.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{smsQueue.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsQueue, ev) : vm.createOrEditSmsQueue($event, smsQueue)" md-cell class="id ">{{smsQueue.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsQueue, ev) : vm.createOrEditSmsQueue($event, smsQueue)" md-cell class="name ">{{smsQueue.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsQueue, ev) : vm.createOrEditSmsQueue($event, smsQueue)" md-cell class="strategy ">{{ vm.arraystrategy[smsQueue.strategy].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="SMS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(smsQueue, $event )" translate="SMS.EDIT_SMSQUEUE">\n Edit SmsQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(smsQueue, $event )" translate="SMS.TEAMADD_SMSQUEUE">\n teamadd SmsQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(smsQueue, $event )" translate="SMS.AGENTADD_SMSQUEUE">\n agentadd SmsQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(smsQueue, $event )" translate="SMS.DELETE_SMSQUEUE">\n Delete SmsQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(smsQueue, $event )" translate="SMS.GOTOREALTIME_SMSQUEUE">\n goToRealtime SmsQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'SMS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SMS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SMS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.smsQueues.count}}" md-on-paginate="vm.getSmsQueues" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / SMSQUEUE TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD SMSQUEUE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-smsQueue-button" ng-click="vm.createOrEditSmsQueue($event)" aria-label="add smsQueue" translate translate-attr-aria-label="SMS.ADD_SMSQUEUE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD SMSQUEUE BUTTON --\x3e\n</div>'),e.put("app/main/apps/staff/views/agents/agents.html",'<div id="agents" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-account-multiple" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="STAFF.AGENTS">Agents</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="STAFF.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedAgents.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedAgents =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="STAFF.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-agents-count">\n <span>{{vm.selectedAgents.length}}</span>\n <span translate="STAFF.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="STAFF.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllAgents()" translate="STAFF.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectAgents()" translate="STAFF.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedAgents" csv-label="true" filename="agents.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedAgents($event)" aria-label="delete selected" translate translate-attr-label="STAFF.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- AGENT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedAgents" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getAgents">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="fullname">{{ \'STAFF.FULLNAME\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'STAFF.USERNAME\' | translate }}</th>\n <th md-column md-order-by="showWebBar">{{ \'STAFF.SHOWWEBCONTROL\' | translate }}</th>\n <th md-column md-order-by="email">{{ \'STAFF.EMAIL\' | translate }}</th>\n <th md-column md-order-by="phone">{{ \'STAFF.PHONE\' | translate }}</th>\n <th md-column md-order-by="mobile">{{ \'STAFF.MOBILE\' | translate }}</th>\n <th md-column md-order-by="internal">{{ \'STAFF.INTERNAL\' | translate }}</th>\n <th md-column md-order-by="disabled">{{ \'STAFF.DISABLED\' | translate }}</th>\n <th md-column md-order-by="blocked">{{ \'STAFF.BLOCKED\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.agents.rows.length">\n <td md-cell colspan="10">\n <div layout="row" layout-align="center center">\n <span translate="STAFF.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="agent" md-select-id="id" ng-repeat="agent in vm.agents.rows">\n <td md-cell ng-if="agent.userpic"><img class="avatar" alt="{{agent.name}}" ng-src="api/users/{{agent.id}}/avatar" /></td>\n <td md-cell ng-if="!agent.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{agent.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="fullname font-weight-600">{{agent.fullname}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="name ">{{agent.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="showWebBar ">{{ vm.arrayshowWebBar[agent.showWebBar].option }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="email ">{{agent.email}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="phone ">{{agent.phone}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="mobile ">{{agent.mobile}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="internal ">{{agent.internal}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="disabled ">\n <md-icon md-colors="{color: {{agent.disabled ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{agent.disabled ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="blocked ">\n <md-icon md-colors="{color: {{agent.blocked ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{agent.blocked ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(agent, $event )" translate="STAFF.EDIT_AGENT">\n Edit Agent\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(agent, $event )" translate="STAFF.TEAMADD_AGENT">\n teamadd Agent\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(agent, $event )" translate="STAFF.DELETE_AGENT">\n Delete Agent\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'STAFF.PAGE\' | translate}}:\', rowsPerPage: \'{{\'STAFF.ROWSPERPAGE\' | translate}}:\', of: \'{{\'STAFF.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.agents.count}}" md-on-paginate="vm.getAgents" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / AGENT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD AGENT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-agent-button" ng-click="vm.createOrEditAgent($event)" aria-label="add agent" translate translate-attr-aria-label="STAFF.ADD_AGENT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD AGENT BUTTON --\x3e\n</div>'),e.put("app/main/apps/staff/views/agents/create/dialog.html",'<md-dialog class="agent-dialog" aria-label="New Agent">\n <form name="agentForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="STAFF.FULLNAME">Fullname</label>\n <input type="text" name="fullname" ng-model="vm.agent.fullname" ng-required="true" autofocus>\n\n <div ng-messages="agentForm[\'fullname\'].$error" ng-show="agentForm[\'fullname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.FULLNAME_REQUIRED">Fullname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.USERNAME">Username</label>\n <input type="text" name="name" ng-model="vm.agent.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" ng-disabled="!vm.newAgent">\n\n <div class="hint"><span translate="STAFF.HELP.USERNAME"></span></div>\n <div ng-messages="agentForm[\'name\'].$error" ng-show="agentForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="STAFF.ERRORS.USERNAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Username must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.agent.alias">\n\n <div ng-messages="agentForm[\'alias\'].$error" ng-show="agentForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.ALIAS_REQUIRED">Alias field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.SHOWWEBCONTROL">ShowWebControl</label>\n <md-select name="showWebBar" ng-model="vm.agent.showWebBar">\n <md-option ng-value="0">Phonebar</md-option>\n <md-option ng-value="1">External</md-option>\n <md-option ng-value="2">WebRTC</md-option>\n </md-select>\n <div ng-messages="agentForm[\'showWebBar\'].$error" ng-show="agentForm[\'showWebBar\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.SHOWWEBCONTROL_REQUIRED">ShowWebControl field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.agent.email" ng-required="true">\n\n <div ng-messages="agentForm[\'email\'].$error" ng-show="agentForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="email">\n <span translate="STAFF.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.newAgent">\n <label translate="STAFF.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.agent.password" placeholder="Password" ng-pattern="vm.passwordPattern" translate translate-attr-placeholder="STAFF.PASSWORD" required>\n <div ng-messages="agentForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="STAFF.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.newAgent && (vm.newAgent)">\n <label translate="STAFF.CONFIRM_PASSWORD">Confirm Password</label>\n <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword" required>\n <div ng-messages="agentForm.confirmPassword.$error" role="alert" multiple>\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n </div>\n <div ng-message="passwordMatch">\n <span translate="STAFF.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container ng-if="vm.newAgent" class="md-block">\n <md-switch ng-model="vm.agent.autointernal" aria-label="AutoInternal"><span translate="STAFF.AUTOINTERNAL">AutoInternal</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="!vm.agent.autointernal" class="md-block">\n <label translate="STAFF.INTERNAL">Internal</label>\n <input type="text" name="internal" ng-model="vm.agent.internal" ng-required="true" ng-disabled="!vm.newAgent">\n\n <div ng-messages="agentForm[\'internal\'].$error" ng-show="agentForm[\'internal\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.INTERNAL_REQUIRED">Internal field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.agent.description">\n\n <div ng-messages="agentForm[\'description\'].$error" ng-show="agentForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.newAgent" class="md-block">\n <md-switch ng-model="vm.agent.voicemail" aria-label="Voicemail"><span translate="STAFF.VOICEMAIL">Voicemail</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.agent.showWebBar == 0" class="md-block">\n <md-switch ng-model="vm.agent.phoneBarRemoteControl" aria-label="RemoteControl"><span translate="STAFF.REMOTECONTROL">RemoteControl</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.agent.phoneBarRemoteControl && vm.agent.showWebBar == 0" class="md-block">\n <label translate="STAFF.REMOTECONTROLPORT">RemoteControlPort</label>\n <input type="number" name="phoneBarRemoteControlPort" ng-model="vm.agent.phoneBarRemoteControlPort" value="9888" ng-required="true">\n\n <div ng-messages="agentForm[\'phoneBarRemoteControlPort\'].$error" ng-show="agentForm[\'phoneBarRemoteControlPort\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.REMOTECONTROLPORT_REQUIRED">RemoteControlPort field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.newUser" class="md-block">\n <md-switch ng-model="vm.agent.voicemail" aria-label="Voicemail"><span translate="STAFF.VOICEMAIL">Voicemail</span></md-switch>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newAgent" ng-click="vm.saveAgent()" class="send-button md-accent md-raised" ng-disabled="agentForm.$invalid || agentForm.$pristine" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newAgent" ng-click="vm.addNewAgent()" class="send-button md-accent md-raised" ng-disabled="agentForm.$invalid" aria-label="ADD" translate="STAFF.ADD_AGENT" translate-attr-aria-label="STAFF.ADD_AGENT">\n ADD AGENT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newAgent" ng-click="vm.deleteAgent($event)" aria-label="DELETE" translate translate-attr-aria-label="STAFF.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="STAFF.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/agents/edit/changepassword/changepassword.html",'<md-dialog class="agent-dialog" aria-label="{{vm.name}}">\n <form name="agentForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ \'\n STAFF.CHANGE_PASSWORD\' | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block" ng-if="vm.currentUser.id == vm.agent.id">\n <label translate="STAFF.OLD_PASSWORD">Old Password</label>\n <input type="password" name="oldPassword" ng-model="vm.oldPassword" placeholder="Password" translate translate-attr-placeholder="STAFF.OLD_PASSWORD" required>\n <div ng-messages="agentForm.oldPassword.$error" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.NEW_PASSWORD">New Password</label>\n <input type="password" name="password" ng-model="vm.password" placeholder="Password" translate ng-pattern="vm.passwordPattern" translate-attr-placeholder="STAFF.NEW_PASSWORD" required>\n <div ng-messages="agentForm.password.$error" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PASSWORD_REQUIRED">Password field is\n required</span>\n </div>\n\n\n <div ng-message="pattern">\n <span translate="STAFF.ERRORS.SECURE_PASSWORD_PATTERN">Must contain\n at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric\n character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n <div ng-message="oldPasswordMatch">\n <span translate="STAFF.ERRORS.PASSWORD_OLDPASSWORD_MATCH">New password must be different from old one</span>\n </div>\n\n\n\n\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CONFIRM_PASSWORD">Confirm Password</label>\n <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n <div ng-messages="agentForm.confirmPassword.$error" role="alert" multiple>\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CONFIRM_REQUIRED">Confirm field is\n required</span>\n </div>\n <div ng-message="passwordMatch">\n <span translate="STAFF.ERRORS.CONFIRM_NOT_MATCH">Your password did\n not match</span>\n </div>\n </div>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.savePassword()" class="send-button md-accent md-raised" ng-disabled="agentForm.$invalid || agentForm.$pristine" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",'<md-dialog class="agent-dialog" aria-label="agent" ng-init="vm.onInit()">\n <form name="agentForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2>{{vm.title}}</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <md-input-container flex class="no-margin" ng-if="vm.agent.role === \'agent\' && vm.channel === \'voice\'">\n <label translate="STAFF.PENALTY">Penalty</label>\n <input name="penalty" type="number" ng-model="vm.penalty" min="0" placeholder="0" required onkeypress="return event.charCode >= 48 && event.charCode <= 57 && this.value.length < 3">\n <div ng-messages="agentForm.penalty.$error" role="alert" multiple>\n <div ng-message="required">\n <span>{{ \'VOICE.ERRORS.PENALTY_REQUIRED\' | translate }}</span>\n </div>\n </div>\n </md-input-container>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" add-disabled="vm.channel === \'voice\' && vm.penalty === undefined"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveQueues()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/agents/edit/teamadd/teamadd.html",'<md-dialog class="agent-dialog" aria-label="agent" ng-init="vm.onInit()">\n <form name="agentForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="STAFF.TEAMS_ASSOCIATION">Teams Association</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/agents/edit/view.html",'<div id="staff-agent" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-agents-button md-icon-button" aria-label="Go to agents" ng-click="vm.gotoAgents()" translate translate-attr-aria-label="STAFF.GO_TO_AGENTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="agent-image" hide-xs>\n <img ng-src="assets/images/business/agents.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.agent.id}}\n <span ng-if="vm.agent.name">{{vm.agent.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="STAFF.CREATED_AT"></span> <span>{{vm.agent.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div ng-cloak>\n <md-fab-speed-dial md-direction="left" class="md-scale md-fab">\n <md-fab-trigger>\n <md-button aria-label="menu" class="md-fab md-primary md-icon-button">\n <md-tooltip md-direction="top" md-visible="false"><span translate="STAFF.CHANNELS">Channels</span></md-tooltip>\n <md-icon md-font-icon="icon-stackoverflow" aria-label="queueadd"></md-icon>\n </md-button>\n </md-fab-trigger>\n <md-fab-actions>\n <md-button aria-label="voice" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.agent, \'voice\', $event, \'inbound\')">\n <md-tooltip md-direction="bottom" md-visible="false"><span translate="VOICE.VOICE">Voice</span></md-tooltip>\n <md-icon md-font-icon="icon-phone" aria-label="voice"></md-icon>\n </md-button>\n <md-button ng-if="vm.license.dialer" aria-label="motion bull" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.agent, \'voice\', $event, \'outbound\')">\n <md-tooltip md-direction="bottom" md-visible="false"><span translate="MOTIONDIALER.MOTIONDIALER">Motion Bull</span></md-tooltip>\n <md-icon md-font-icon="icon-fire" aria-label="motion bull"></md-icon>\n </md-button>\n <md-button ng-if="vm.license.chat" aria-label="chat" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.agent, \'chat\', $event)">\n <md-tooltip md-direction="bottom" md-visible="false"><span translate="CHAT.CHAT">Chat</span></md-tooltip>\n <md-icon md-font-icon="icon-hangouts" aria-label="chat"></md-icon>\n </md-button>\n <md-button ng-if="vm.license.mail" aria-label="mail" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.agent, \'mail\', $event)">\n <md-tooltip md-direction="bottom" md-visible="false"><span translate="MAIL.MAIL">Email</span></md-tooltip>\n <md-icon md-font-icon="icon-email" aria-label="mail"></md-icon>\n </md-button>\n <md-button ng-if="vm.license.messaging" aria-label="sms" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.agent, \'sms\', $event)">\n <md-tooltip md-direction="bottom" md-visible="false"><span translate="SMS.SMS">Sms</span></md-tooltip>\n <md-icon md-font-icon="icon-message-text" aria-label="sms"></md-icon>\n </md-button>\n <md-button ng-if="vm.license.openchannel" aria-label="openchannel" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.agent, \'openchannel\', $event)">\n <md-tooltip md-direction="bottom" md-visible="false"><span translate="OPENCHANNEL.OPENCHANNEL">Openchannel</span></md-tooltip>\n <md-icon md-font-icon="icon-google-earth" aria-label="openchannel"></md-icon>\n </md-button>\n <md-button ng-if="vm.license.fax" aria-label="fax" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.agent, \'fax\', $event)">\n <md-tooltip md-direction="bottom" md-visible="false"><span translate="FAX.FAX">Fax</span></md-tooltip>\n <md-icon md-font-icon="icon-deskphone" aria-label="fax"></md-icon>\n </md-button>\n <md-button ng-if="vm.license.whatsapp" aria-label="whatsapp" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.agent, \'whatsapp\', $event)">\n <md-tooltip md-direction="bottom" md-visible="false"><span translate="WHATSAPP.WHATSAPP">whatsapp</span></md-tooltip>\n <md-icon md-font-icon="icon-whatsapp" aria-label="whatsapp"></md-icon>\n </md-button>\n </md-fab-actions>\n </md-fab-speed-dial>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.teamadddialog(vm.agent, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n <md-tooltip><span translate="STAFF.TEAMADD_AGENT"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.changepassworddialog(vm.agent, $event)" class="md-fab md-warn md-icon-button" aria-label="changepassword">\n <md-tooltip><span translate="STAFF.CHANGEPASSWORD_AGENT"></span></md-tooltip>\n <md-icon md-font-icon="icon-key-variant"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveAgent()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(personal_infoForm.$invalid) || (security_suiteForm.$invalid) || (change_avatarForm.$invalid) || (generalForm.$invalid) || (capacityForm.$invalid) || (settingsForm.$invalid) || (remote_controlForm.$invalid) || (sipForm.$invalid) || (callforwardingForm.$invalid) || (settings_webrtcForm.$invalid) || (sip_webrtcForm.$invalid) || (general_permissionsForm.$invalid) || (download_permissionsForm.$invalid) || (permissionsForm.$invalid)" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="STAFF.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="agent-detail-form-container personal_info md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.PERSONAL_INFO">PERSONAL_INFO</div>\n </div>\n <form name="personal_infoForm" novalidate>\n <md-input-container class="md-block">\n <label translate="STAFF.FULLNAME">Fullname</label>\n <input type="text" name="fullname" ng-model="vm.agent.fullname" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="personal_infoForm[\'fullname\'].$error" ng-show="personal_infoForm[\'fullname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.FULLNAME_REQUIRED">Fullname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.USERNAME">Username</label>\n <input type="text" name="name" ng-model="vm.agent.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" disabled>\n\n <div class="hint"><span translate="STAFF.HELP.USERNAME"></span></div>\n <div ng-messages="personal_infoForm[\'name\'].$error" ng-show="personal_infoForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="STAFF.ERRORS.USERNAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Username must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.agent.alias" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="personal_infoForm[\'alias\'].$error" ng-show="personal_infoForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.ALIAS_REQUIRED">Alias field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.SHOWWEBCONTROL">ShowWebControl</label>\n <md-select name="showWebBar" ng-model="vm.agent.showWebBar" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="0">Phonebar</md-option>\n <md-option ng-value="1">External</md-option>\n <md-option ng-value="2">WebRTC</md-option>\n </md-select>\n <div ng-messages="personal_infoForm[\'showWebBar\'].$error" ng-show="personal_infoForm[\'showWebBar\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.SHOWWEBCONTROL_REQUIRED">ShowWebControl field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.agent.email" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="personal_infoForm[\'email\'].$error" ng-show="personal_infoForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="email">\n <span translate="STAFF.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.agent.phone" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="personal_infoForm[\'phone\'].$error" ng-show="personal_infoForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.MOBILE">Mobile</label>\n <input type="text" name="mobile" ng-model="vm.agent.mobile" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="personal_infoForm[\'mobile\'].$error" ng-show="personal_infoForm[\'mobile\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.MOBILE_REQUIRED">Mobile field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.agent.showWebBar == 1" class="md-block">\n <md-switch ng-model="vm.agent.hotdesk" aria-label="Hotdesk" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.HOTDESK">Hotdesk</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.loginInPause" aria-label="LoginInPause" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.LOGININPAUSE">LoginInPause</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.agent.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="personal_infoForm[\'description\'].$error" ng-show="personal_infoForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="agent-detail-form-container security_suite md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.SECURITY_SUITE">SECURITY_SUITE</div>\n </div>\n <form name="security_suiteForm" novalidate>\n <md-input-container ng-if="vm.agent.passwordResetAt != null" class="md-block">\n <label translate="STAFF.LAST_PASSWORD_RESET_AT">Last_Password_Reset_At</label>\n <input type="text" name="passwordResetAt" ng-model="vm.agent.passwordResetAt" autofocus disabled>\n\n <div class="hint"><span translate="STAFF.HELP.LAST_PASSWORD_RESET_AT"></span></div>\n <div ng-messages="security_suiteForm[\'passwordResetAt\'].$error" ng-show="security_suiteForm[\'passwordResetAt\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.LAST_PASSWORD_RESET_AT_REQUIRED">Last_Password_Reset_At field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.agent.passwordResetAt == null" class="md-block">\n <label translate="STAFF.NO_PASSWORD_CHANGE">No_Password_Change</label>\n <input type="text" name="passwordResetAt" ng-model="vm.agent.passwordResetAt" disabled>\n\n <div ng-messages="security_suiteForm[\'passwordResetAt\'].$error" ng-show="security_suiteForm[\'passwordResetAt\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.NO_PASSWORD_CHANGE_REQUIRED">No_Password_Change field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.disabled" aria-label="Disabled" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.DISABLED">Disabled</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.DISABLED"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.agent.disabled == 0" class="md-block">\n <md-switch ng-model="vm.agent.blocked" aria-label="Blocked" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.BLOCKED">Blocked</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.BLOCKED"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.privacyEnabled" aria-label="Mask_Sensitive_Data" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.MASK_SENSITIVE_DATA">Mask_Sensitive_Data</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.MASK_SENSITIVE_DATA"></span></div>\n </md-input-container>\n\n </form>\n </div>\n <div class="agent-detail-form-container change_avatar md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.CHANGE_AVATAR">CHANGE_AVATAR</div>\n </div>\n <div ng-controller="Agentchange_avatarController as vm_ca" ng-init="vm_ca.init(vm.agent, vm.crudPermissions)" class="agent-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="agent-image-uploader" flow-init="vm_ca.ngFlowOptions" flow-name="vm_ca.ngFlow.flow" flow-files-submitted="vm_ca.upload()" flow-file-added="vm_ca.fileAdded($file)" flow-file-success="vm_ca.fileSuccess($file, $message)" flow-complete="vm_ca.uploadComplete()" flow-drop flow-drag-enter="vm_ca.dropping=true" flow-drag-leave="vm_ca.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n <div class="drop-text hint-text" layout="row" layout-align="center center">\n <span translate="EC.DROP_TO_UPLOAD">Drop to upload</span>\n </div>\n\n <div class="upload-button" layout="column" layout-align="center center">\n <md-button class="md-accent md-raised" flow-btn ng-disabled="!vm_ca.crudPermissions.canEdit">\n Upload\n </md-button>\n <span class="secondary-text mt-8">You can also drop images here to upload. Only PNG, JPG - Max. 8MB</span>\n </div>\n\n <div layout="row" layout-align="start start" layout-wrap>\n <div ng-repeat="change_avatarimage in vm_ca.agent.images" ng-switch="change_avatarimage.type">\n <div class="agent-image uploading" ng-switch-when="uploading" layout="row" layout-align="center center">\n <div class="overlay" layout="column" layout-align="center center">\n <md-progress-linear md-mode="determinate" value="{{change_avatarimage.file.progress() * 100}}">\n </md-progress-linear>\n </div>\n <img class="media" flow-img="change_avatarimage.file">\n </div>\n\n <div class="agent-image" ng-switch-when="image" layout="row" layout-align="center center">\n <img class="media" ng-src="{{change_avatarimage.url}}">\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="STAFF.VOICE">VOICE</span>\n </md-tab-label>\n <md-tab-body>\n <div class="agent-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container ng-if="!vm.agent.autointernal" class="md-block">\n <label translate="STAFF.INTERNAL">Internal</label>\n <input type="text" name="internal" ng-model="vm.agent.internal" ng-required="true" autofocus disabled>\n\n <div ng-messages="generalForm[\'internal\'].$error" ng-show="generalForm[\'internal\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.INTERNAL_REQUIRED">Internal field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.agent.showWebBar != 2" class="md-block">\n <label translate="STAFF.TRANSPORT">Transport</label>\n <md-select name="transport" ng-model="vm.agent.transport" multiple ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'udp\'">udp</md-option>\n <md-option ng-value="\'tcp\'">tcp</md-option>\n <md-option ng-value="\'ws\'" ng-if="vm.agent.showWebBar == 1">ws</md-option>\n <md-option ng-value="\'wss\'" ng-if="vm.agent.showWebBar == 1">wss</md-option>\n <md-option ng-value="\'tls\'" ng-if="vm.agent.showWebBar == 1">tls</md-option>\n </md-select>\n <div class="hint"><span translate="STAFF.HELP.TRANSPORT"></span></div>\n <div ng-messages="generalForm[\'transport\'].$error" ng-show="generalForm[\'transport\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.TRANSPORT_REQUIRED">Transport field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.HOST">Host</label>\n <input type="text" name="host" ng-model="vm.agent.host" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.HOST"></span></div>\n <div ng-messages="generalForm[\'host\'].$error" ng-show="generalForm[\'host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.HOST_REQUIRED">Host field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.NAT">NAT</label>\n <md-select name="nat" ng-model="vm.agent.nat" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'force_rport\'">force_rport</md-option>\n <md-option ng-value="\'comedia\'">comedia</md-option>\n <md-option ng-value="\'yes\'">yes</md-option>\n <md-option ng-value="\'no\'">no</md-option>\n <md-option ng-value="\'never\'">never</md-option>\n <md-option ng-value="\'route\'">route</md-option>\n </md-select>\n <div class="hint"><span translate="STAFF.HELP.NAT"></span></div>\n <div ng-messages="generalForm[\'nat\'].$error" ng-show="generalForm[\'nat\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.NAT_REQUIRED">NAT field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.TYPE">Type</label>\n <md-select name="type" ng-model="vm.agent.type" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'friend\'">Friend</md-option>\n <md-option ng-value="\'user\'">User</md-option>\n <md-option ng-value="\'peer\'">Peer</md-option>\n </md-select>\n <div class="hint"><span translate="STAFF.HELP.TYPE"></span></div>\n <div ng-messages="generalForm[\'type\'].$error" ng-show="generalForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.ALLOWCODECS">AllowCodecs</label>\n <md-select name="allow" ng-model="vm.agent.allow" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'ulaw\'">ulaw</md-option>\n <md-option ng-value="\'alaw\'">alaw</md-option>\n <md-option ng-value="\'gsm\'">gsm</md-option>\n <md-option ng-value="\'g722\'">g722</md-option>\n <md-option ng-value="\'g729\'">g729</md-option>\n <md-option ng-value="\'opus\'">opus</md-option>\n <md-option ng-value="\'h264\'">h264</md-option>\n </md-select>\n <div class="hint"><span translate="STAFF.HELP.ALLOWCODECS"></span></div>\n <div ng-messages="generalForm[\'allow\'].$error" ng-show="generalForm[\'allow\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.ALLOWCODECS_REQUIRED">AllowCodecs field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CALLERID">CallerId</label>\n <input type="text" name="callerid" ng-model="vm.agent.callerid" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'callerid\'].$error" ng-show="generalForm[\'callerid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CALLERID_REQUIRED">CallerId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.agent.context" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts" ng-disabled="context.canSelect === false">{{ context.name }}</md-option>\n </md-select>\n <div ng-messages="generalForm[\'context\'].$error" ng-show="generalForm[\'context\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CALLGROUP">Callgroup</label>\n <input type="text" name="callgroup" ng-model="vm.agent.callgroup" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.CALLGROUP"></span></div>\n <div ng-messages="generalForm[\'callgroup\'].$error" ng-show="generalForm[\'callgroup\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CALLGROUP_REQUIRED">Callgroup field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.PICKUPGROUP">Pickupgroup</label>\n <input type="text" name="pickupgroup" ng-model="vm.agent.pickupgroup" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.PICKUPGROUP"></span></div>\n <div ng-messages="generalForm[\'pickupgroup\'].$error" ng-show="generalForm[\'pickupgroup\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PICKUPGROUP_REQUIRED">Pickupgroup field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.chanspy" aria-label="chanSpy" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.CHANSPY">chanSpy</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.VIDEOSUPPORT">Videosupport</label>\n <md-select name="videosupport" ng-model="vm.agent.videosupport" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'yes\'">Yes</md-option>\n <md-option ng-value="\'no\'">No</md-option>\n <md-option ng-value="\'always\'">Always</md-option>\n </md-select>\n <div ng-messages="generalForm[\'videosupport\'].$error" ng-show="generalForm[\'videosupport\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.VIDEOSUPPORT_REQUIRED">Videosupport field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.MONITOREXTENSION">MonitorExtension</label>\n <md-select name="extensionMonitor" ng-model="vm.agent.extensionMonitor" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">Inactive</md-option>\n <md-option ng-value="\'wav\'">wav</md-option>\n <md-option ng-value="\'WAV\'">wav49</md-option>\n <md-option ng-value="\'gsm\'">gsm</md-option>\n </md-select>\n <div ng-messages="generalForm[\'extensionMonitor\'].$error" ng-show="generalForm[\'extensionMonitor\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.MONITOREXTENSION_REQUIRED">MonitorExtension field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="STAFF.OTHER_CHANNELS">OTHER_CHANNELS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="agent-detail-form-container capacity md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.CAPACITY">CAPACITY</div>\n </div>\n <form name="capacityForm" novalidate>\n <md-input-container ng-if="vm.license.chat" class="md-block">\n <label translate="STAFF.CHATCAPACITY">ChatCapacity</label>\n <input type="number" name="chatCapacity" ng-model="vm.agent.chatCapacity" min="0" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.CHATCAPACITY"></span></div>\n <div ng-messages="capacityForm[\'chatCapacity\'].$error" ng-show="capacityForm[\'chatCapacity\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CHATCAPACITY_REQUIRED">ChatCapacity field is required</span>\n </div>\n <div ng-message="min">\n <span translate="STAFF.ERRORS.CHATCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">ChatCapacity must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.license.mail" class="md-block">\n <label translate="STAFF.MAILCAPACITY">MailCapacity</label>\n <input type="number" name="mailCapacity" ng-model="vm.agent.mailCapacity" min="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.MAILCAPACITY"></span></div>\n <div ng-messages="capacityForm[\'mailCapacity\'].$error" ng-show="capacityForm[\'mailCapacity\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.MAILCAPACITY_REQUIRED">MailCapacity field is required</span>\n </div>\n <div ng-message="min">\n <span translate="STAFF.ERRORS.MAILCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MailCapacity must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.license.messaging" class="md-block">\n <label translate="STAFF.SMSCAPACITY">SMSCapacity</label>\n <input type="number" name="smsCapacity" ng-model="vm.agent.smsCapacity" min="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.SMSCAPACITY"></span></div>\n <div ng-messages="capacityForm[\'smsCapacity\'].$error" ng-show="capacityForm[\'smsCapacity\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.SMSCAPACITY_REQUIRED">SMSCapacity field is required</span>\n </div>\n <div ng-message="min">\n <span translate="STAFF.ERRORS.SMSCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">SMSCapacity must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.license.openchannel" class="md-block">\n <label translate="STAFF.OPENCHANNELCAPACITY">OpenchannelCapacity</label>\n <input type="number" name="openchannelCapacity" ng-model="vm.agent.openchannelCapacity" min="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.OPENCHANNELCAPACITY"></span></div>\n <div ng-messages="capacityForm[\'openchannelCapacity\'].$error" ng-show="capacityForm[\'openchannelCapacity\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.OPENCHANNELCAPACITY_REQUIRED">OpenchannelCapacity field is required</span>\n </div>\n <div ng-message="min">\n <span translate="STAFF.ERRORS.OPENCHANNELCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">OpenchannelCapacity must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.license.fax" class="md-block">\n <label translate="STAFF.FAXCAPACITY">FaxCapacity</label>\n <input type="number" name="faxCapacity" ng-model="vm.agent.faxCapacity" min="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.FAXCAPACITY"></span></div>\n <div ng-messages="capacityForm[\'faxCapacity\'].$error" ng-show="capacityForm[\'faxCapacity\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.FAXCAPACITY_REQUIRED">FaxCapacity field is required</span>\n </div>\n <div ng-message="min">\n <span translate="STAFF.ERRORS.FAXCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">FaxCapacity must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.license.whatsapp" class="md-block">\n <label translate="STAFF.WHATSAPPCAPACITY">WhatsappCapacity</label>\n <input type="number" name="whatsappCapacity" ng-model="vm.agent.whatsappCapacity" min="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.WHATSAPPCAPACITY"></span></div>\n <div ng-messages="capacityForm[\'whatsappCapacity\'].$error" ng-show="capacityForm[\'whatsappCapacity\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.WHATSAPPCAPACITY_REQUIRED">WhatsappCapacity field is required</span>\n </div>\n <div ng-message="min">\n <span translate="STAFF.ERRORS.WHATSAPPCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WhatsappCapacity must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab ng-if="vm.agent.showWebBar == 0">\n <md-tab-label>\n <span translate="STAFF.MOTIONBAR">MOTIONBAR</span>\n </md-tab-label>\n <md-tab-body>\n <div class="agent-detail-form-container settings md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.SETTINGS">SETTINGS</div>\n </div>\n <form name="settingsForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarEnableSettings" aria-label="EnableSettings" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ENABLESETTINGS">EnableSettings</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarAutoAnswer" aria-label="AutoAnswer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.AUTOANSWER">AutoAnswer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.agent.phoneBarAutoAnswer" class="md-block">\n <label translate="STAFF.AUTOANSWERDELAY">AutoAnswerDelay</label>\n <input type="number" name="phoneBarAutoAnswerDelay" ng-model="vm.agent.phoneBarAutoAnswerDelay" min="0" value="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="settingsForm[\'phoneBarAutoAnswerDelay\'].$error" ng-show="settingsForm[\'phoneBarAutoAnswerDelay\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.AUTOANSWERDELAY_REQUIRED">AutoAnswerDelay field is required</span>\n </div>\n <div ng-message="min">\n <span translate="STAFF.ERRORS.AUTOANSWERDELAY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AutoAnswerDelay must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarRingInUse" aria-label="RingInUse" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.RINGINUSE">RingInUse</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarEnableRecording" aria-label="EnableRecording" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ENABLERECORDING">EnableRecording</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarEnableDtmfTone" aria-label="EnableDtmfTone" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ENABLEDTMFTONE">EnableDtmfTone</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarDnd" aria-label="Dnd" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.DND">Dnd</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarUnansweredCallBadge" aria-label="UnansweredCallBadge" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.UNANSWEREDCALLBADGE">UnansweredCallBadge</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.agent.showWebBar == 0" class="md-block">\n <md-switch ng-model="vm.agent.phoneBarEnableJaws" aria-label="EnableJawsIntegration" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ENABLEJAWSINTEGRATION">EnableJawsIntegration</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.agent.showWebBar == 0 && vm.license.screenrecording" class="md-block">\n <md-switch ng-change="vm.onEnableScreenRecordingByAgentSelection()" ng-model="vm.agent.phoneBarEnableScreenRecordingByAgent" aria-label="EnableScreenRecordingByAgent" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ENABLESCREENRECORDINGBYAGENT">EnableScreenRecordingByAgent</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.agent.showWebBar == 0 && vm.license.screenrecording" class="md-block">\n <md-switch ng-change="vm.onEnableAutomaticScreenRecordingSelection()" ng-model="vm.agent.phoneBarEnableAutomaticScreenRecording" aria-label="EnableAutomaticScreenRecording" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ENABLEAUTOMATICSCREENRECORDING">EnableAutomaticScreenRecording</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.ENABLEAUTOMATICSCREENRECORDING"></span></div>\n </md-input-container>\n\n </form>\n </div>\n <div class="agent-detail-form-container remote_control md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.REMOTE_CONTROL">REMOTE_CONTROL</div>\n </div>\n <form name="remote_controlForm" novalidate>\n <md-input-container ng-if="vm.agent.showWebBar == 0" class="md-block">\n <md-switch ng-model="vm.agent.phoneBarRemoteControl" aria-label="RemoteControl" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.REMOTECONTROL">RemoteControl</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.agent.phoneBarRemoteControl && vm.agent.showWebBar == 0" class="md-block">\n <label translate="STAFF.REMOTECONTROLPORT">RemoteControlPort</label>\n <input type="number" name="phoneBarRemoteControlPort" ng-model="vm.agent.phoneBarRemoteControlPort" value="9888" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="remote_controlForm[\'phoneBarRemoteControlPort\'].$error" ng-show="remote_controlForm[\'phoneBarRemoteControlPort\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.REMOTECONTROLPORT_REQUIRED">RemoteControlPort field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="agent-detail-form-container sip md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.SIP">SIP</div>\n </div>\n <form name="sipForm" novalidate>\n <md-input-container class="md-block">\n <label translate="STAFF.SIPEXPIRES">SipExpires</label>\n <input type="number" name="phoneBarExpires" ng-model="vm.agent.phoneBarExpires" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.SIPEXPIRES"></span></div>\n <div ng-messages="sipForm[\'phoneBarExpires\'].$error" ng-show="sipForm[\'phoneBarExpires\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.SIPEXPIRES_REQUIRED">SipExpires field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.SIPPORT">SipPort</label>\n <input type="number" name="phoneBarListenPort" ng-model="vm.agent.phoneBarListenPort" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.SIPPORT"></span></div>\n <div ng-messages="sipForm[\'phoneBarListenPort\'].$error" ng-show="sipForm[\'phoneBarListenPort\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.SIPPORT_REQUIRED">SipPort field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="agent-detail-form-container callforwarding md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.CALLFORWARDING">CALLFORWARDING</div>\n </div>\n <form name="callforwardingForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarUnconditional" aria-label="Unconditional" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.UNCONDITIONAL">Unconditional</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.agent.phoneBarUnconditional" class="md-block">\n <label translate="STAFF.UNCONDITIONALNUMBER">UnconditionalNumber</label>\n <input type="text" name="phoneBarUnconditionalNumber" ng-model="vm.agent.phoneBarUnconditionalNumber" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="callforwardingForm[\'phoneBarUnconditionalNumber\'].$error" ng-show="callforwardingForm[\'phoneBarUnconditionalNumber\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.UNCONDITIONALNUMBER_REQUIRED">UnconditionalNumber field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab ng-if="vm.agent.showWebBar == 2">\n <md-tab-label>\n <span translate="STAFF.WEBRTC">WEBRTC</span>\n </md-tab-label>\n <md-tab-body>\n <div class="agent-detail-form-container settings_webrtc md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.SETTINGS_WEBRTC">SETTINGS_WEBRTC</div>\n </div>\n <form name="settings_webrtcForm" novalidate>\n <md-input-container class="md-block">\n <label translate="STAFF.DTLSCERTFILE">dtlscertfile</label>\n <input type="text" name="dtlscertfile" ng-model="vm.agent.dtlscertfile" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.DTLSCERTFILE"></span></div>\n <div ng-messages="settings_webrtcForm[\'dtlscertfile\'].$error" ng-show="settings_webrtcForm[\'dtlscertfile\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DTLSCERTFILE_REQUIRED">dtlscertfile field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.DTLSPRIVATEKEY">dtlsprivatekey</label>\n <input type="text" name="dtlsprivatekey" ng-model="vm.agent.dtlsprivatekey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.DTLSPRIVATEKEY"></span></div>\n <div ng-messages="settings_webrtcForm[\'dtlsprivatekey\'].$error" ng-show="settings_webrtcForm[\'dtlsprivatekey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DTLSPRIVATEKEY_REQUIRED">dtlsprivatekey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.WSS_PORT">WSS_Port</label>\n <input type="number" name="wssPort" ng-model="vm.agent.wssPort" min="0" value="8089" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.WSS_PORT"></span></div>\n <div ng-messages="settings_webrtcForm[\'wssPort\'].$error" ng-show="settings_webrtcForm[\'wssPort\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.WSS_PORT_REQUIRED">WSS_Port field is required</span>\n </div>\n <div ng-message="min">\n <span translate="STAFF.ERRORS.WSS_PORT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WSS_Port must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarEnableSettings" aria-label="EnableSettings" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ENABLESETTINGS">EnableSettings</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarAutoAnswer" aria-label="AutoAnswer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.AUTOANSWER">AutoAnswer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.agent.phoneBarAutoAnswer" class="md-block">\n <label translate="STAFF.AUTOANSWERDELAY">AutoAnswerDelay</label>\n <input type="number" name="phoneBarAutoAnswerDelay" ng-model="vm.agent.phoneBarAutoAnswerDelay" min="0" value="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="settings_webrtcForm[\'phoneBarAutoAnswerDelay\'].$error" ng-show="settings_webrtcForm[\'phoneBarAutoAnswerDelay\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.AUTOANSWERDELAY_REQUIRED">AutoAnswerDelay field is required</span>\n </div>\n <div ng-message="min">\n <span translate="STAFF.ERRORS.AUTOANSWERDELAY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AutoAnswerDelay must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarEnableRecording" aria-label="EnableRecording" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ENABLERECORDING">EnableRecording</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarEnableDtmfTone" aria-label="EnableDtmfTone" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ENABLEDTMFTONE">EnableDtmfTone</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarDnd" aria-label="Dnd" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.DND">Dnd</span></md-switch>\n </md-input-container>\n\n </form>\n </div>\n <div class="agent-detail-form-container sip_webrtc md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.SIP_WEBRTC">SIP_WEBRTC</div>\n </div>\n <form name="sip_webrtcForm" novalidate>\n <md-input-container class="md-block">\n <label translate="STAFF.SIPEXPIRES">SipExpires</label>\n <input type="number" name="phoneBarExpires" ng-model="vm.agent.phoneBarExpires" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.SIPEXPIRES"></span></div>\n <div ng-messages="sip_webrtcForm[\'phoneBarExpires\'].$error" ng-show="sip_webrtcForm[\'phoneBarExpires\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.SIPEXPIRES_REQUIRED">SipExpires field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="STAFF.PERMISSIONS">PERMISSIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="agent-detail-form-container general_permissions md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.GENERAL_PERMISSIONS">GENERAL_PERMISSIONS</div>\n </div>\n <form name="general_permissionsForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.allowmessenger" aria-label="EnableMessenger" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ENABLEMESSENGER">EnableMessenger</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarPrefixRequired" aria-label="PrefixRequired" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.PREFIXREQUIRED">PrefixRequired</span></md-switch>\n </md-input-container>\n\n </form>\n </div>\n <div class="agent-detail-form-container download_permissions md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.DOWNLOAD_PERMISSIONS">DOWNLOAD_PERMISSIONS</div>\n </div>\n <form name="download_permissionsForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.downloadAttachments" aria-label="Attachments" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ATTACHMENTS">Attachments</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.downloadOmnichannelInteractions" aria-label="Omnichannel_Interactions" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.OMNICHANNEL_INTERACTIONS">Omnichannel_Interactions</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.downloadVoiceRecordings" aria-label="Voice_Recordings" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.VOICE_RECORDINGS">Voice_Recordings</span></md-switch>\n </md-input-container>\n\n </form>\n </div>\n <div class="agent-detail-form-container permissions md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.PERMISSIONS">PERMISSIONS</div>\n </div>\n <div ng-controller="AgentPermissionsController as vm_pc" ng-init="vm_pc.init(vm.agent, vm.crudPermissions)" class="agent-detail-form-container">\n <md-list ng-repeat="father in vm_pc.navigation[0].children" ng-include="\'permission-nested.html\'" ng-if="vm_pc.agent.role !== \'admin\' && !father.hidden()"></md-list>\n\n \x3c!-- Nested navigation template --\x3e\n <script type="text/ng-template" id="permission-nested.html">\n <md-list-item>\n <md-icon md-font-icon="{{father.icon}}"></md-icon>\n <p translate="{{father.translate}}">{{ father.title }}</p>\n <md-switch class="md-secondary" ng-model="father.enabled" ng-change="vm_pc.onChange(father)" ng-init="father.enabled = vm_pc.agent.permissions.includes(father.id)" \n ng-disabled="!vm_pc.crudPermissions.canEdit"></md-switch>\n </md-list-item>\n\n <md-divider></md-divider>\n\n <md-list>\n <md-list-item ng-repeat="child in father.children" ng-if="child.id !== 201">\n <md-icon ng-if="child.icon" md-font-icon="{{child.icon}}"></md-icon>\n <p translate="{{child.translate}}">{{ child.title }}</p>\n <md-switch ng-model="child.enabled" ng-change="vm_pc.onChange(father, child)" ng-init="child.enabled = vm_pc.agent.permissions.includes(child.id)"\n ng-disabled="!vm_pc.crudPermissions.canEdit"></md-switch>\n </md-list-item>\n </md-list>\n <\/script>\n \x3c!-- / Nested navigation template --\x3e\n\n <span ng-if="vm_pc.agent.role === \'admin\'" class="md-headline" translate="STAFF.ALL_MODULES_AVAILABLE">All modules are already available.</span>\n\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/staff/views/teams/create/dialog.html",'<md-dialog class="team-dialog" aria-label="New Team">\n <form name="teamForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="STAFF.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.team.name" ng-required="true" autofocus>\n\n <div ng-messages="teamForm[\'name\'].$error" ng-show="teamForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.team.description">\n\n <div ng-messages="teamForm[\'description\'].$error" ng-show="teamForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newTeam" ng-click="vm.saveTeam()" class="send-button md-accent md-raised" ng-disabled="teamForm.$invalid || teamForm.$pristine" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newTeam" ng-click="vm.addNewTeam()" class="send-button md-accent md-raised" ng-disabled="teamForm.$invalid" aria-label="ADD" translate="STAFF.ADD_TEAM" translate-attr-aria-label="STAFF.ADD_TEAM">\n ADD TEAM\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newTeam" ng-click="vm.deleteTeam($event)" aria-label="DELETE" translate translate-attr-aria-label="STAFF.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="STAFF.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/teams/edit/agentadd/agentadd.html",'<md-dialog class="team-dialog" aria-label="team" ng-init="vm.onInit()">\n <form name="teamForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="STAFF.AGENTADD_TEAM">Add Agent to team</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/teams/teams.html",'<div id="teams" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-account-multiple" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="STAFF.TEAMS">Teams</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="STAFF.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedTeams.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedTeams =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="STAFF.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-teams-count">\n <span>{{vm.selectedTeams.length}}</span>\n <span translate="STAFF.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="STAFF.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllTeams()" translate="STAFF.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectTeams()" translate="STAFF.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedTeams" csv-label="true" filename="teams.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedTeams($event)" aria-label="delete selected" translate translate-attr-label="STAFF.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- TEAM TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedTeams" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTeams">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'STAFF.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'STAFF.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'STAFF.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.teams.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="STAFF.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="team" md-select-id="id" ng-repeat="team in vm.teams.rows">\n <td md-cell ng-if="team.userpic"><img class="avatar" alt="{{team.name}}" ng-src="api/users/{{team.id}}/avatar" /></td>\n <td md-cell ng-if="!team.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{team.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditTeam($event, team)" md-cell class="id ">{{team.id}}</td>\n <td ng-click="vm.createOrEditTeam($event, team)" md-cell class="name ">{{team.name}}</td>\n <td ng-click="vm.createOrEditTeam($event, team)" md-cell class="description ">{{team.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(team, $event )" translate="STAFF.EDIT_TEAM">\n Edit Team\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(team, $event )" translate="STAFF.AGENTADD_TEAM">\n AgentAdd Team\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(team, $event )" translate="STAFF.DELETE_TEAM">\n Delete Team\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'STAFF.PAGE\' | translate}}:\', rowsPerPage: \'{{\'STAFF.ROWSPERPAGE\' | translate}}:\', of: \'{{\'STAFF.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.teams.count}}" md-on-paginate="vm.getTeams" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / TEAM TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD TEAM BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-team-button" ng-click="vm.createOrEditTeam($event)" aria-label="add team" translate translate-attr-aria-label="STAFF.ADD_TEAM">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD TEAM BUTTON --\x3e\n</div>'),e.put("app/main/apps/staff/views/telephones/create/dialog.html",'<md-dialog class="telephone-dialog" aria-label="New Telephone">\n <form name="telephoneForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="STAFF.ACCOUNTNAME">Accountname</label>\n <input type="text" name="fullname" ng-model="vm.telephone.fullname" ng-required="true" autofocus>\n\n <div ng-messages="telephoneForm[\'fullname\'].$error" ng-show="telephoneForm[\'fullname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.ACCOUNTNAME_REQUIRED">Accountname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.USERNAME">Username</label>\n <input type="text" name="name" ng-model="vm.telephone.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" ng-disabled="!vm.newTelephone">\n\n <div class="hint"><span translate="STAFF.HELP.USERNAME"></span></div>\n <div ng-messages="telephoneForm[\'name\'].$error" ng-show="telephoneForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="STAFF.ERRORS.USERNAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Username must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.telephone.email" ng-required="true">\n\n <div ng-messages="telephoneForm[\'email\'].$error" ng-show="telephoneForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="email">\n <span translate="STAFF.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.newTelephone">\n <label translate="STAFF.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.telephone.password" placeholder="Password" ng-pattern="vm.passwordPattern" translate translate-attr-placeholder="STAFF.PASSWORD" required>\n <div ng-messages="telephoneForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="STAFF.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.newTelephone && (vm.newTelephone)">\n <label translate="STAFF.CONFIRM_PASSWORD">Confirm Password</label>\n <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword" required>\n <div ng-messages="telephoneForm.confirmPassword.$error" role="alert" multiple>\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n </div>\n <div ng-message="passwordMatch">\n <span translate="STAFF.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="STAFF.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.telephone.description">\n\n <div ng-messages="telephoneForm[\'description\'].$error" ng-show="telephoneForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.newTelephone" class="md-block">\n <md-switch ng-model="vm.telephone.autointernal" aria-label="AutoInternal"><span translate="STAFF.AUTOINTERNAL">AutoInternal</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="!vm.telephone.autointernal" class="md-block">\n <label translate="STAFF.INTERNAL">Internal</label>\n <input type="text" name="internal" ng-model="vm.telephone.internal" ng-required="true" ng-disabled="!vm.newTelephone">\n\n <div ng-messages="telephoneForm[\'internal\'].$error" ng-show="telephoneForm[\'internal\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.INTERNAL_REQUIRED">Internal field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.newTelephone" class="md-block">\n <md-switch ng-model="vm.telephone.voicemail" aria-label="Voicemail"><span translate="STAFF.VOICEMAIL">Voicemail</span></md-switch>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newTelephone" ng-click="vm.saveTelephone()" class="send-button md-accent md-raised" ng-disabled="telephoneForm.$invalid || telephoneForm.$pristine" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newTelephone" ng-click="vm.addNewTelephone()" class="send-button md-accent md-raised" ng-disabled="telephoneForm.$invalid" aria-label="ADD" translate="STAFF.ADD_TELEPHONE" translate-attr-aria-label="STAFF.ADD_TELEPHONE">\n ADD TELEPHONE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newTelephone" ng-click="vm.deleteTelephone($event)" aria-label="DELETE" translate translate-attr-aria-label="STAFF.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="STAFF.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/telephones/edit/changepassword/changepassword.html",'<md-dialog class="telephone-dialog" aria-label="{{vm.name}}">\n <form name="telephoneForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ \'\n STAFF.CHANGE_PASSWORD\' | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block" ng-if="vm.currentUser.id == vm.telephone.id">\n <label translate="STAFF.OLD_PASSWORD">Old Password</label>\n <input type="password" name="oldPassword" ng-model="vm.oldPassword" placeholder="Password" translate translate-attr-placeholder="STAFF.OLD_PASSWORD" required>\n <div ng-messages="telephoneForm.oldPassword.$error" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.NEW_PASSWORD">New Password</label>\n <input type="password" name="password" ng-model="vm.password" placeholder="Password" translate ng-pattern="vm.passwordPattern" translate-attr-placeholder="STAFF.NEW_PASSWORD" required>\n <div ng-messages="telephoneForm.password.$error" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PASSWORD_REQUIRED">Password field is\n required</span>\n </div>\n\n\n <div ng-message="pattern">\n <span translate="STAFF.ERRORS.SECURE_PASSWORD_PATTERN">Must contain\n at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric\n character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n <div ng-message="oldPasswordMatch">\n <span translate="STAFF.ERRORS.PASSWORD_OLDPASSWORD_MATCH">New password must be different from old one</span>\n </div>\n\n\n\n\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CONFIRM_PASSWORD">Confirm Password</label>\n <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n <div ng-messages="telephoneForm.confirmPassword.$error" role="alert" multiple>\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CONFIRM_REQUIRED">Confirm field is\n required</span>\n </div>\n <div ng-message="passwordMatch">\n <span translate="STAFF.ERRORS.CONFIRM_NOT_MATCH">Your password did\n not match</span>\n </div>\n </div>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.savePassword()" class="send-button md-accent md-raised" ng-disabled="telephoneForm.$invalid || telephoneForm.$pristine" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/telephones/edit/view.html",'<div id="staff-telephone" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-telephones-button md-icon-button" aria-label="Go to telephones" ng-click="vm.gotoTelephones()" translate translate-attr-aria-label="STAFF.GO_TO_TELEPHONES">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="telephone-image" hide-xs>\n <img ng-src="assets/images/business/telephones.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.telephone.id}}\n <span ng-if="vm.telephone.name">{{vm.telephone.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="STAFF.CREATED_AT"></span> <span>{{vm.telephone.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.changepassworddialog(vm.telephone, $event)" class="md-fab md-warn md-icon-button" aria-label="changepassword">\n <md-tooltip><span translate="STAFF.CHANGEPASSWORD_TELEPHONE"></span></md-tooltip>\n <md-icon md-font-icon="icon-key-variant"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveTelephone()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(accountForm.$invalid) || (generalForm.$invalid)" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="STAFF.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="telephone-detail-form-container account md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.ACCOUNT">ACCOUNT</div>\n </div>\n <form name="accountForm" novalidate>\n <md-input-container class="md-block">\n <label translate="STAFF.ACCOUNTNAME">Accountname</label>\n <input type="text" name="fullname" ng-model="vm.telephone.fullname" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="accountForm[\'fullname\'].$error" ng-show="accountForm[\'fullname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.ACCOUNTNAME_REQUIRED">Accountname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.USERNAME">Username</label>\n <input type="text" name="name" ng-model="vm.telephone.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" disabled>\n\n <div class="hint"><span translate="STAFF.HELP.USERNAME"></span></div>\n <div ng-messages="accountForm[\'name\'].$error" ng-show="accountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="STAFF.ERRORS.USERNAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Username must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.telephone.email" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="accountForm[\'email\'].$error" ng-show="accountForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="email">\n <span translate="STAFF.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.telephone.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="accountForm[\'description\'].$error" ng-show="accountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.telephone.phone" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="accountForm[\'phone\'].$error" ng-show="accountForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.MOBILE">Mobile</label>\n <input type="text" name="mobile" ng-model="vm.telephone.mobile" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="accountForm[\'mobile\'].$error" ng-show="accountForm[\'mobile\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.MOBILE_REQUIRED">Mobile field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="STAFF.VOICE">VOICE</span>\n </md-tab-label>\n <md-tab-body>\n <div class="telephone-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container ng-if="!vm.telephone.autointernal" class="md-block">\n <label translate="STAFF.INTERNAL">Internal</label>\n <input type="text" name="internal" ng-model="vm.telephone.internal" ng-required="true" autofocus disabled>\n\n <div ng-messages="generalForm[\'internal\'].$error" ng-show="generalForm[\'internal\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.INTERNAL_REQUIRED">Internal field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.TRANSPORT">Transport</label>\n <md-select name="transport" ng-model="vm.telephone.transport" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'udp\'">udp</md-option>\n <md-option ng-value="\'tcp\'">tcp</md-option>\n <md-option ng-value="\'ws\'">ws</md-option>\n <md-option ng-value="\'wss\'">wss</md-option>\n <md-option ng-value="\'tls\'">tls</md-option>\n </md-select>\n <div class="hint"><span translate="STAFF.HELP.TRANSPORT"></span></div>\n <div ng-messages="generalForm[\'transport\'].$error" ng-show="generalForm[\'transport\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.TRANSPORT_REQUIRED">Transport field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.NAT">NAT</label>\n <md-select name="nat" ng-model="vm.telephone.nat" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'force_rport\'">force_rport</md-option>\n <md-option ng-value="\'comedia\'">comedia</md-option>\n <md-option ng-value="\'yes\'">yes</md-option>\n <md-option ng-value="\'no\'">no</md-option>\n <md-option ng-value="\'never\'">never</md-option>\n <md-option ng-value="\'route\'">route</md-option>\n </md-select>\n <div class="hint"><span translate="STAFF.HELP.NAT"></span></div>\n <div ng-messages="generalForm[\'nat\'].$error" ng-show="generalForm[\'nat\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.NAT_REQUIRED">NAT field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.ALLOWCODECS">AllowCodecs</label>\n <md-select name="allow" ng-model="vm.telephone.allow" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'ulaw\'">ulaw</md-option>\n <md-option ng-value="\'alaw\'">alaw</md-option>\n <md-option ng-value="\'gsm\'">gsm</md-option>\n <md-option ng-value="\'g722\'">g722</md-option>\n <md-option ng-value="\'g729\'">g729</md-option>\n <md-option ng-value="\'opus\'">opus</md-option>\n <md-option ng-value="\'h264\'">h264</md-option>\n </md-select>\n <div class="hint"><span translate="STAFF.HELP.ALLOWCODECS"></span></div>\n <div ng-messages="generalForm[\'allow\'].$error" ng-show="generalForm[\'allow\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.ALLOWCODECS_REQUIRED">AllowCodecs field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CALLERID">CallerId</label>\n <input type="text" name="callerid" ng-model="vm.telephone.callerid" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'callerid\'].$error" ng-show="generalForm[\'callerid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CALLERID_REQUIRED">CallerId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.telephone.context" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts" ng-disabled="context.canSelect === false">{{ context.name }}</md-option>\n </md-select>\n <div ng-messages="generalForm[\'context\'].$error" ng-show="generalForm[\'context\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CALLGROUP">Callgroup</label>\n <input type="text" name="callgroup" ng-model="vm.telephone.callgroup" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.CALLGROUP"></span></div>\n <div ng-messages="generalForm[\'callgroup\'].$error" ng-show="generalForm[\'callgroup\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CALLGROUP_REQUIRED">Callgroup field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.PICKUPGROUP">Pickupgroup</label>\n <input type="text" name="pickupgroup" ng-model="vm.telephone.pickupgroup" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.PICKUPGROUP"></span></div>\n <div ng-messages="generalForm[\'pickupgroup\'].$error" ng-show="generalForm[\'pickupgroup\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PICKUPGROUP_REQUIRED">Pickupgroup field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.VIDEOSUPPORT">Videosupport</label>\n <md-select name="videosupport" ng-model="vm.telephone.videosupport" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'yes\'">Yes</md-option>\n <md-option ng-value="\'no\'">No</md-option>\n <md-option ng-value="\'always\'">Always</md-option>\n </md-select>\n <div ng-messages="generalForm[\'videosupport\'].$error" ng-show="generalForm[\'videosupport\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.VIDEOSUPPORT_REQUIRED">Videosupport field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.ENCRYPTION">Encryption</label>\n <md-select name="encryption" ng-model="vm.telephone.encryption" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'yes\'">yes</md-option>\n <md-option ng-value="\'no\'">no</md-option>\n </md-select>\n <div class="hint"><span translate="STAFF.HELP.ENCRYPTION"></span></div>\n <div ng-messages="generalForm[\'encryption\'].$error" ng-show="generalForm[\'encryption\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.ENCRYPTION_REQUIRED">Encryption field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/staff/views/telephones/telephones.html",'<div id="telephones" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-account-multiple" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="STAFF.TELEPHONES">Telephones</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="STAFF.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedTelephones.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedTelephones =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="STAFF.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-telephones-count">\n <span>{{vm.selectedTelephones.length}}</span>\n <span translate="STAFF.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="STAFF.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllTelephones()" translate="STAFF.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectTelephones()" translate="STAFF.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedTelephones" csv-label="true" filename="telephones.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedTelephones($event)" aria-label="delete selected" translate translate-attr-label="STAFF.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- TELEPHONE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedTelephones" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTelephones">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="fullname">{{ \'STAFF.ACCOUNTNAME\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'STAFF.USERNAME\' | translate }}</th>\n <th md-column md-order-by="email">{{ \'STAFF.EMAIL\' | translate }}</th>\n <th md-column md-order-by="internal">{{ \'STAFF.INTERNAL\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.telephones.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="STAFF.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="telephone" md-select-id="id" ng-repeat="telephone in vm.telephones.rows">\n <td md-cell ng-if="telephone.userpic"><img class="avatar" alt="{{telephone.name}}" ng-src="api/users/{{telephone.id}}/avatar" /></td>\n <td md-cell ng-if="!telephone.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{telephone.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(telephone, ev) : vm.createOrEditTelephone($event, telephone)" md-cell class="fullname font-weight-600">{{telephone.fullname}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(telephone, ev) : vm.createOrEditTelephone($event, telephone)" md-cell class="name ">{{telephone.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(telephone, ev) : vm.createOrEditTelephone($event, telephone)" md-cell class="email ">{{telephone.email}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(telephone, ev) : vm.createOrEditTelephone($event, telephone)" md-cell class="internal ">{{telephone.internal}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(telephone, $event )" translate="STAFF.EDIT_TELEPHONE">\n Edit Telephone\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(telephone, $event )" translate="STAFF.DELETE_TELEPHONE">\n Delete Telephone\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'STAFF.PAGE\' | translate}}:\', rowsPerPage: \'{{\'STAFF.ROWSPERPAGE\' | translate}}:\', of: \'{{\'STAFF.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.telephones.count}}" md-on-paginate="vm.getTelephones" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / TELEPHONE TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD TELEPHONE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-telephone-button" ng-click="vm.createOrEditTelephone($event)" aria-label="add telephone" translate translate-attr-aria-label="STAFF.ADD_TELEPHONE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD TELEPHONE BUTTON --\x3e\n</div>'),e.put("app/main/apps/staff/views/userProfiles/create/dialog.html",'<md-dialog class="userProfile-dialog" aria-label="New UserProfile">\n <form name="userProfileForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="STAFF.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.userProfile.name" ng-required="true" autofocus ng-disabled="!vm.newUserProfile">\n\n <div ng-messages="userProfileForm[\'name\'].$error" ng-show="userProfileForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.userProfile.description">\n\n <div ng-messages="userProfileForm[\'description\'].$error" ng-show="userProfileForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CRUDPERMISSIONS">CrudPermissions</label>\n <md-select name="crudPermissions" ng-model="vm.userProfile.crudPermissions" multiple required>\n\n <md-option ng-value="\'r\'" disabled> {{ \'STAFF.READ_PERMISSION\' | translate }} </md-option>\n\n <md-option ng-value="\'e\'"> {{ \'STAFF.EDIT_PERMISSION\' | translate }} </md-option>\n\n <md-option ng-value="\'d\'"> {{ \'STAFF.DELETE_PERMISSION\' | translate }} </md-option>\n </md-select>\n <div ng-messages="userProfileForm[\'crudPermissions\'].$error" ng-show="userProfileForm[\'crudPermissions\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CRUDPERMISSIONS_REQUIRED">CrudPermissions field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.privacyEnabled" aria-label="Mask_Sensitive_Data"><span translate="STAFF.MASK_SENSITIVE_DATA">Mask_Sensitive_Data</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.MASK_SENSITIVE_DATA"></span></div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newUserProfile" ng-click="vm.saveUserProfile()" class="send-button md-accent md-raised" ng-disabled="userProfileForm.$invalid || userProfileForm.$pristine" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newUserProfile" ng-click="vm.addNewUserProfile()" class="send-button md-accent md-raised" ng-disabled="userProfileForm.$invalid" aria-label="ADD" translate="STAFF.ADD_USERPROFILE" translate-attr-aria-label="STAFF.ADD_USERPROFILE">\n ADD USERPROFILE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newUserProfile" ng-click="vm.deleteUserProfile($event)" aria-label="DELETE" translate translate-attr-aria-label="STAFF.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="STAFF.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/userProfiles/edit/clone/clone.html",'<md-dialog class="userProfile-dialog" aria-label="Clone UserProfile">\n <form name="userProfileForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="STAFF.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.userProfile.name" ng-required="true" autofocus ng-disabled="!vm.newUserProfile">\n\n <div ng-messages="userProfileForm[\'name\'].$error" ng-show="userProfileForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.userProfile.description">\n\n <div ng-messages="userProfileForm[\'description\'].$error" ng-show="userProfileForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CRUDPERMISSIONS">CrudPermissions</label>\n <md-select name="crudPermissions" ng-model="vm.userProfile.crudPermissions" multiple required>\n\n <md-option ng-value="\'r\'" disabled> {{ \'STAFF.READ_PERMISSION\' | translate }} </md-option>\n\n <md-option ng-value="\'e\'"> {{ \'STAFF.EDIT_PERMISSION\' | translate }} </md-option>\n\n <md-option ng-value="\'d\'"> {{ \'STAFF.DELETE_PERMISSION\' | translate }} </md-option>\n </md-select>\n <div ng-messages="userProfileForm[\'crudPermissions\'].$error" ng-show="userProfileForm[\'crudPermissions\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CRUDPERMISSIONS_REQUIRED">CrudPermissions field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.privacyEnabled" aria-label="Mask_Sensitive_Data"><span translate="STAFF.MASK_SENSITIVE_DATA">Mask_Sensitive_Data</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.MASK_SENSITIVE_DATA"></span></div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <md-button type="submit" ng-click="vm.cloneUserProfile()" class="send-button md-accent md-raised" ng-disabled="userProfileForm.$invalid" aria-label="CLONE" translate="STAFF.CLONE_USERPROFILE" translate-attr-aria-label="STAFF.CLONE_USERPROFILE">\n CLONE USERPROFILE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/userProfiles/edit/permissionsmanage/permissionsmanage.html",'<md-dialog class="userProfile-dialog" aria-label="userProfile">\n <form name="userProfileForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2>{{vm.title}}</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog($event)">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <div layout="column" class="padding-bottom-10">\n <div layout="row" class="padding-bottom-10">\n <md-input-container flex class="no-margin">\n <label translate="STAFF.SECTIONS">Sections</label>\n <md-select name="sections" ng-model="vm.selectedSection" placeholder="{{\'STAFF.PERMISSIONS_SELECT_SECTION\' | translate}}" ng-change="vm.onChangeSection()" required>\n <md-option ng-value="subsection" ng-repeat="subsection in vm.subsections" ng-selected="{{vm.subsections.length === 1 ? \'true\' : \'false\'}}">{{subsection.translate | translate}}</md-option>\n </md-select>\n </md-input-container>\n <div layout="row" ng-show="vm.selectedSection" class="margin-left-10">\n <md-button ng-switch="vm.selectedSection.enabled" class="md-icon-button md-fab md-mini size-8 padding-10" ng-class="vm.selectedSection.enabled ? \'blue-500-bg\' : \'grey-A400-bg\'" ng-click="vm.onChangeVisibility()" aria-label="Visibility">\n <md-icon ng-switch-when="true" md-font-icon="icon-eye" aria-label="Visible section">\n <md-tooltip>{{\'STAFF.PERMISSIONS_SECTION_HIDE\' | translate}}</md-tooltip>\n </md-icon>\n <md-icon ng-switch-when="false" md-font-icon="icon-eye-off" aria-label="Hidden section">\n <md-tooltip>{{\'STAFF.PERMISSIONS_SECTION_SHOW\' | translate}}</md-tooltip>\n </md-icon>\n </md-button>\n <div>\n <md-button class="md-icon-button md-fab md-mini size-8 green-A700-bg no-margin" ng-disabled="true">\n <md-icon md-font-icon="icon-monitor" class="md-background-fg" aria-label="Read permission">\n <md-tooltip>{{\'STAFF.READ_PERMISSION\' | translate}}</md-tooltip>\n </md-icon>\n </md-button>\n <md-button class="md-icon-button md-fab md-mini size-8 no-margin" ng-class="vm.selectedSection.allowEdit ? \'green-A700-bg\' : \'grey-A400-bg\'" ng-click="vm.setPermission(\'edit\')">\n <md-icon md-font-icon="icon-pencil" aria-label="Edit permission">\n <md-tooltip>{{\'STAFF.EDIT_PERMISSION\' | translate}}</md-tooltip>\n </md-icon>\n </md-button>\n <md-button class="md-icon-button md-fab md-mini size-8 no-margin" ng-class="vm.selectedSection.allowDelete ? \'green-A700-bg\' : \'grey-A400-bg\'" ng-click="vm.setPermission(\'delete\')">\n <md-icon md-font-icon="icon-delete" aria-label="Delete permission">\n <md-tooltip>{{\'STAFF.DELETE_PERMISSION\' | translate}}</md-tooltip>\n </md-icon>\n </md-button>\n </div>\n </div>\n </div>\n <div layout="row" ng-show="vm.selectedSection" class="margin-left-10" ng-if="!vm.selectedSection.permissions || vm.selectedSection.permissions.association">\n <md-switch ng-model="vm.selectedSection.autoAssociation" class="no-margin padding-right-10" aria-label="Auto association" ng-change="vm.onChangeAutoAssociation()">\n </md-switch>\n <p class="no-margin font-size-12 line-height-30">{{\'STAFF.PERMISSIONS_AUTO_ASSOCIATION_INFO\' | translate}}</p>\n </div>\n <div layout="row" ng-show="vm.selectedSection && vm.selectedSection.title === \'Reports\' && !vm.selectedSection.autoAssociation" class="margin-bottom-10 margin-top-30" ng-if="!vm.selectedSection.permissions || vm.selectedSection.permissions.association">\n <md-input-container flex class="no-margin">\n <label translate="STAFF.REPORT_TYPE">Report Type</label>\n <md-select name="type" ng-model="vm.selectedSection.reportType" placeholder="{{\'STAFF.PERMISSIONS_SELECT_REPORT_TYPE\' | translate}}" ng-change="vm.onChangeReportType()" required>\n <md-option ng-value="\'default\'">Default</md-option>\n <md-option ng-value="\'custom\'">Custom</md-option>\n </md-select>\n </md-input-container>\n </div>\n <div ng-show="vm.selectedSection && vm.selectedSection.title === \'Dashboards\'" class="user-profile-section-help margin-bottom-10 margin-top-20">\n <md-icon md-font-icon="icon-help" aria-label="Dashboards help"></md-icon>\n <span class="no-margin font-size-12 line-height-30" translate="STAFF.HELP.CUSTOM_DASHBOARDS_PERMISSIONS"></span>\n </div>\n </div>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" ng-if="!vm.selectedSection.permissions || vm.selectedSection.permissions.association" ng-hide="vm.selectedSection.autoAssociation"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center">\n <div>\n <md-icon md-font-icon="icon-information-outline" aria-label="Delete permission"></md-icon>\n <span class="no-margin font-size-12 line-height-30" translate="STAFF.HELP.SAVE_PERMISSIONS"></span>\n </div>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveSection()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/userProfiles/edit/view.html",'<div id="staff-userProfile" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-userProfiles-button md-icon-button" aria-label="Go to userProfiles" ng-click="vm.gotoUserProfiles()" translate translate-attr-aria-label="STAFF.GO_TO_USERPROFILES">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="userProfile-image" hide-xs>\n <img ng-src="assets/images/business/userProfiles.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.userProfile.id}}\n <span ng-if="vm.userProfile.name">{{vm.userProfile.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="STAFF.CREATED_AT"></span> <span>{{vm.userProfile.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.clonedialog(vm.userProfile, $event)" class="md-fab md-amber-500-bg md-icon-button" aria-label="clone">\n <md-tooltip><span translate="STAFF.CLONE_USERPROFILE"></span></md-tooltip>\n <md-icon md-font-icon="icon-content-duplicate"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveUserProfile()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (modulesForm.$invalid) || (download_permissionsForm.$invalid)" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="STAFF.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="userProfile-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="STAFF.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.userProfile.name" ng-required="true" autofocus disabled>\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.userProfile.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CRUDPERMISSIONS">CrudPermissions</label>\n <md-select name="crudPermissions" ng-model="vm.userProfile.crudPermissions" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'r\'" disabled> {{ \'STAFF.READ_PERMISSION\' | translate }} </md-option>\n\n <md-option ng-value="\'e\'"> {{ \'STAFF.EDIT_PERMISSION\' | translate }} </md-option>\n\n <md-option ng-value="\'d\'"> {{ \'STAFF.DELETE_PERMISSION\' | translate }} </md-option>\n </md-select>\n <div ng-messages="generalForm[\'crudPermissions\'].$error" ng-show="generalForm[\'crudPermissions\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CRUDPERMISSIONS_REQUIRED">CrudPermissions field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.privacyEnabled" aria-label="Mask_Sensitive_Data" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.MASK_SENSITIVE_DATA">Mask_Sensitive_Data</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.MASK_SENSITIVE_DATA"></span></div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="STAFF.PERMISSIONS">PERMISSIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="userProfile-detail-form-container modules md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.MODULES">MODULES</div>\n </div>\n <div ng-controller="UserProfilePermissionsController as vm_pc" ng-init="vm_pc.init(vm.userProfile, vm.license)" class="userProfile-detail-form-container">\n <md-grid-list flex md-cols-gt-xs="2" md-cols-gt-sm="2" md-cols-gt-md="4" md-cols-gt-lg="6" md-row-height-gt-xs="2:1" md-row-height-gt-sm="3:1" md-row-height-gt-md="3:1" gt-xs-gutter="4px" gt-sm-gutter="4px" gt-md-gutter="16px" gt-lg-gutter="16px">\n <md-grid-tile ng-repeat="father in vm_pc.modules" ng-if="vm_pc.userProfile.role !== \'admin\' && !father.permissions.hidden" md-colspan="2">\n <md-card flex-xs flex-gt-xs="90" layout="column" no-padding no-margin>\n <md-card-header>\n <md-card-avatar>\n <md-icon class="md-avatar-icon auto-size" md-font-icon="{{father.icon}}" ng-class="{ true: father.status.color }[true]">\n <md-tooltip>{{ father.status.info }}</md-tooltip>\n </md-icon>\n </md-card-avatar>\n <md-card-header-text layout-align="center start">\n <span class="md-title" translate="{{father.translate}}">{{ father.title }}</span>\n </md-card-header-text>\n <md-card-actions class="no-margin" layout="row" ng-init="vm_pc.checkSectionResources(father)" ng-if="father.status.tag != \'unlicensed\'">\n <md-switch class="auto-height no-margin" ng-model="father.allResourcesEnabled" ng-change="vm_pc.onChangeEnableAllResources(father)" aria-label="Enable all"></md-switch>\n <md-button class="md-mini auto-width" aria-label="Manage" ng-click="vm_pc.manageResources(father)" ng-hide="father.permissions && !father.permissions.association">\n <md-tooltip>{{\'STAFF.PERMISSIONS_MANAGE\' | translate}}\n </md-tooltip>\n <md-icon md-font-icon="icon-cog"></md-icon>\n </md-button>\n </md-card-actions>\n <md-card-header-text ng-if="father.status.tag === \'unlicensed\'" layout-align="center end">\n <span class="md-subhead red-A700-fg">{{ father.status.name }}</span>\n </md-card-header-text>\n </md-card-header>\n </md-card>\n </md-grid-tile>\n </md-grid-list>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="STAFF.DOWNLOADS">DOWNLOADS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="userProfile-detail-form-container download_permissions md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.DOWNLOAD_PERMISSIONS">DOWNLOAD_PERMISSIONS</div>\n </div>\n <form name="download_permissionsForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.downloadAttachments" aria-label="Attachments" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ATTACHMENTS">Attachments</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.downloadCallySquareRecordings" aria-label="CallySquare_Recordings" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.CALLYSQUARE_RECORDINGS">CallySquare_Recordings</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.downloadContactManagerLists" aria-label="Contact_Manager_Lists" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.CONTACT_MANAGER_LISTS">Contact_Manager_Lists</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.downloadJscriptySessions" aria-label="Jscripty_Sessions" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.JSCRIPTY_SESSIONS">Jscripty_Sessions</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.downloadOmnichannelInteractions" aria-label="Omnichannel_Interactions" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.OMNICHANNEL_INTERACTIONS">Omnichannel_Interactions</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.downloadScreenRecordings" aria-label="Screen_Recordings" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.SCREEN_RECORDINGS">Screen_Recordings</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.downloadVoiceRecordings" aria-label="Voice_Recordings" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.VOICE_RECORDINGS">Voice_Recordings</span></md-switch>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/staff/views/userProfiles/userProfiles.html",'<div id="userProfiles" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-account-multiple" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="STAFF.USERPROFILES">UserProfiles</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="STAFF.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedUserProfiles.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedUserProfiles =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="STAFF.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-userProfiles-count">\n <span>{{vm.selectedUserProfiles.length}}</span>\n <span translate="STAFF.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="STAFF.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllUserProfiles()" translate="STAFF.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectUserProfiles()" translate="STAFF.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedUserProfiles" csv-label="true" filename="userProfiles.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedUserProfiles($event)" aria-label="delete selected" translate translate-attr-label="STAFF.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- USERPROFILE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedUserProfiles" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getUserProfiles">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'STAFF.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'STAFF.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'STAFF.DESCRIPTION\' | translate }}</th>\n <th md-column md-order-by="crudPermissions">{{ \'STAFF.CRUDPERMISSIONS\' | translate }}</th>\n <th md-column md-order-by="privacyEnabled">{{ \'STAFF.MASK_SENSITIVE_DATA\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.userProfiles.rows.length">\n <td md-cell colspan="6">\n <div layout="row" layout-align="center center">\n <span translate="STAFF.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="userProfile" md-select-id="id" ng-repeat="userProfile in vm.userProfiles.rows">\n <td md-cell ng-if="userProfile.userpic"><img class="avatar" alt="{{userProfile.name}}" ng-src="api/users/{{userProfile.id}}/avatar" /></td>\n <td md-cell ng-if="!userProfile.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{userProfile.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(userProfile, ev) : vm.createOrEditUserProfile($event, userProfile)" md-cell class="id ">{{userProfile.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(userProfile, ev) : vm.createOrEditUserProfile($event, userProfile)" md-cell class="name ">{{userProfile.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(userProfile, ev) : vm.createOrEditUserProfile($event, userProfile)" md-cell class="description ">{{userProfile.description}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(userProfile, ev) : vm.createOrEditUserProfile($event, userProfile)" md-cell class="crudPermissions ">{{userProfile.selectedcrudPermissions}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(userProfile, ev) : vm.createOrEditUserProfile($event, userProfile)" md-cell class="privacyEnabled ">\n <md-icon md-colors="{color: {{userProfile.privacyEnabled ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{userProfile.privacyEnabled ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(userProfile, $event )" translate="STAFF.EDIT_USERPROFILE">\n Edit UserProfile\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.clonedialog(userProfile, $event )" translate="STAFF.CLONE_USERPROFILE">\n clone UserProfile\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.role === \'admin\' && user.id !== vm.currentUser.id">\n\n <md-button ng-click="vm.deleteconfirm(userProfile, $event )" translate="STAFF.DELETE_USERPROFILE">\n Delete UserProfile\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'STAFF.PAGE\' | translate}}:\', rowsPerPage: \'{{\'STAFF.ROWSPERPAGE\' | translate}}:\', of: \'{{\'STAFF.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.userProfiles.count}}" md-on-paginate="vm.getUserProfiles" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / USERPROFILE TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD USERPROFILE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-userProfile-button" ng-click="vm.createOrEditUserProfile($event)" aria-label="add userProfile" translate translate-attr-aria-label="STAFF.ADD_USERPROFILE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD USERPROFILE BUTTON --\x3e\n</div>'),e.put("app/main/apps/staff/views/users/create/dialog.html",'<md-dialog class="user-dialog" aria-label="New User">\n <form name="userForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="STAFF.ROLE">Role</label>\n <md-select name="role" ng-model="vm.user.role" autofocus required ng-disabled="!vm.newUser">\n <md-option ng-value="\'admin\'">Admin</md-option>\n <md-option ng-value="\'user\'">User</md-option>\n </md-select>\n <div ng-messages="userForm[\'role\'].$error" ng-show="userForm[\'role\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.ROLE_REQUIRED">Role field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.user.role === \'user\'" class="md-block">\n <label translate="STAFF.USERPROFILE">UserProfile</label>\n <md-select name="userProfileId" ng-model="vm.user.userProfileId" required>\n <md-option ng-value="userProfileId.id" ng-repeat="userProfileId in vm.userProfiles" ng-disabled="userProfileId.canSelect === false">{{ userProfileId.name }}</md-option>\n </md-select>\n <div ng-messages="userForm[\'userProfileId\'].$error" ng-show="userForm[\'userProfileId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.USERPROFILE_REQUIRED">UserProfile field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.FULLNAME">Fullname</label>\n <input type="text" name="fullname" ng-model="vm.user.fullname" ng-required="true">\n\n <div ng-messages="userForm[\'fullname\'].$error" ng-show="userForm[\'fullname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.FULLNAME_REQUIRED">Fullname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.USERNAME">Username</label>\n <input type="text" name="name" ng-model="vm.user.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" ng-disabled="!vm.newUser">\n\n <div class="hint"><span translate="STAFF.HELP.USERNAME"></span></div>\n <div ng-messages="userForm[\'name\'].$error" ng-show="userForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="STAFF.ERRORS.USERNAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Username must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.user.email" ng-required="true">\n\n <div ng-messages="userForm[\'email\'].$error" ng-show="userForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="email">\n <span translate="STAFF.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.newUser">\n <label translate="STAFF.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.user.password" placeholder="Password" ng-pattern="vm.passwordPattern" translate translate-attr-placeholder="STAFF.PASSWORD" required>\n <div ng-messages="userForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="STAFF.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.newUser && (vm.newUser)">\n <label translate="STAFF.CONFIRM_PASSWORD">Confirm Password</label>\n <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword" required>\n <div ng-messages="userForm.confirmPassword.$error" role="alert" multiple>\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n </div>\n <div ng-message="passwordMatch">\n <span translate="STAFF.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="STAFF.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.user.description">\n\n <div ng-messages="userForm[\'description\'].$error" ng-show="userForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.newUser" class="md-block">\n <md-switch ng-model="vm.user.autointernal" aria-label="AutoInternal"><span translate="STAFF.AUTOINTERNAL">AutoInternal</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="!vm.user.autointernal" class="md-block">\n <label translate="STAFF.INTERNAL">Internal</label>\n <input type="text" name="internal" ng-model="vm.user.internal" ng-required="true" ng-disabled="!vm.newUser">\n\n <div ng-messages="userForm[\'internal\'].$error" ng-show="userForm[\'internal\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.INTERNAL_REQUIRED">Internal field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newUser" ng-click="vm.saveUser()" class="send-button md-accent md-raised" ng-disabled="userForm.$invalid || userForm.$pristine" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newUser" ng-click="vm.addNewUser()" class="send-button md-accent md-raised" ng-disabled="userForm.$invalid" aria-label="ADD" translate="STAFF.ADD_USER" translate-attr-aria-label="STAFF.ADD_USER">\n ADD USER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newUser" ng-click="vm.deleteUser($event)" aria-label="DELETE" translate translate-attr-aria-label="STAFF.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="STAFF.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/users/edit/apikeymanager/apikeymanager.html",'<md-dialog class="user-dialog" aria-label="{{vm.name}}">\n <form name="userForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ \'\n STAFF.MANAGE_API_KEY\' | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-card layout-fill layout-padding>\n <textarea class="api-key-area" ng-model="vm.user.apiKey" rows="6" disabled></textarea>\n </md-card>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.generateApiKey()" class="send-button md-accent md-raised" aria-label="Generate" translate="{{ vm.user.apiKey === \'N/A\' ? \'STAFF.GENERATE\' : \'STAFF.REGENERATE\' }}" translate-attr-aria-label="STAFF.GENERATE">\n Generate\n </md-button>\n <md-button type="submit" ng-click="vm.removeApiKey()" class="send-button md-accent md-raised" aria-label="Remove" translate="STAFF.REMOVE" translate-attr-aria-label="STAFF.DELETE">\n Delete\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/users/edit/changepassword/changepassword.html",'<md-dialog class="user-dialog" aria-label="{{vm.name}}">\n <form name="userForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ \'\n STAFF.CHANGE_PASSWORD\' | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block" ng-if="vm.currentUser.id == vm.user.id">\n <label translate="STAFF.OLD_PASSWORD">Old Password</label>\n <input type="password" name="oldPassword" ng-model="vm.oldPassword" placeholder="Password" translate translate-attr-placeholder="STAFF.OLD_PASSWORD" required>\n <div ng-messages="userForm.oldPassword.$error" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.NEW_PASSWORD">New Password</label>\n <input type="password" name="password" ng-model="vm.password" placeholder="Password" translate ng-pattern="vm.passwordPattern" translate-attr-placeholder="STAFF.NEW_PASSWORD" required>\n <div ng-messages="userForm.password.$error" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PASSWORD_REQUIRED">Password field is\n required</span>\n </div>\n\n\n <div ng-message="pattern">\n <span translate="STAFF.ERRORS.SECURE_PASSWORD_PATTERN">Must contain\n at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric\n character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n <div ng-message="oldPasswordMatch">\n <span translate="STAFF.ERRORS.PASSWORD_OLDPASSWORD_MATCH">New password must be different from old one</span>\n </div>\n\n\n\n\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CONFIRM_PASSWORD">Confirm Password</label>\n <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n <div ng-messages="userForm.confirmPassword.$error" role="alert" multiple>\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CONFIRM_REQUIRED">Confirm field is\n required</span>\n </div>\n <div ng-message="passwordMatch">\n <span translate="STAFF.ERRORS.CONFIRM_NOT_MATCH">Your password did\n not match</span>\n </div>\n </div>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.savePassword()" class="send-button md-accent md-raised" ng-disabled="userForm.$invalid || userForm.$pristine" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/users/edit/view.html",'<div id="staff-user" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-users-button md-icon-button" aria-label="Go to users" ng-click="vm.gotoUsers()" translate translate-attr-aria-label="STAFF.GO_TO_USERS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="user-image" hide-xs>\n <img ng-src="assets/images/business/users.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.user.id}}\n <span ng-if="vm.user.name">{{vm.user.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="STAFF.CREATED_AT"></span> <span>{{vm.user.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.apikeymanagerdialog(vm.user, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="apikeymanager">\n <md-tooltip><span translate="STAFF.APIKEYMANAGER_USER"></span></md-tooltip>\n <md-icon md-font-icon="fab fa-hubspot"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.changepassworddialog(vm.user, $event)" class="md-fab md-warn md-icon-button" aria-label="changepassword">\n <md-tooltip><span translate="STAFF.CHANGEPASSWORD_USER"></span></md-tooltip>\n <md-icon md-font-icon="icon-key-variant"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveUser()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(personal_infoForm.$invalid) || (security_suiteForm.$invalid) || (change_avatarForm.$invalid) || (generalForm.$invalid)" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="STAFF.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="user-detail-form-container personal_info md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.PERSONAL_INFO">PERSONAL_INFO</div>\n </div>\n <form name="personal_infoForm" novalidate>\n <md-input-container class="md-block">\n <label translate="STAFF.ROLE">Role</label>\n <md-select name="role" ng-model="vm.user.role" autofocus required disabled>\n <md-option ng-value="\'admin\'">Admin</md-option>\n <md-option ng-value="\'user\'">User</md-option>\n </md-select>\n <div ng-messages="personal_infoForm[\'role\'].$error" ng-show="personal_infoForm[\'role\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.ROLE_REQUIRED">Role field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.user.role === \'user\'" class="md-block">\n <label translate="STAFF.USERPROFILE">UserProfile</label>\n <md-select name="userProfileId" ng-model="vm.user.userProfileId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="userProfileId.id" ng-repeat="userProfileId in vm.userProfiles" ng-disabled="userProfileId.canSelect === false">{{ userProfileId.name }}</md-option>\n </md-select>\n <div ng-messages="personal_infoForm[\'userProfileId\'].$error" ng-show="personal_infoForm[\'userProfileId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.USERPROFILE_REQUIRED">UserProfile field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.FULLNAME">Fullname</label>\n <input type="text" name="fullname" ng-model="vm.user.fullname" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="personal_infoForm[\'fullname\'].$error" ng-show="personal_infoForm[\'fullname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.FULLNAME_REQUIRED">Fullname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.USERNAME">Username</label>\n <input type="text" name="name" ng-model="vm.user.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" disabled>\n\n <div class="hint"><span translate="STAFF.HELP.USERNAME"></span></div>\n <div ng-messages="personal_infoForm[\'name\'].$error" ng-show="personal_infoForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="STAFF.ERRORS.USERNAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Username must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.user.email" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="personal_infoForm[\'email\'].$error" ng-show="personal_infoForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="email">\n <span translate="STAFF.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.user.phone" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="personal_infoForm[\'phone\'].$error" ng-show="personal_infoForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.MOBILE">Mobile</label>\n <input type="text" name="mobile" ng-model="vm.user.mobile" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="personal_infoForm[\'mobile\'].$error" ng-show="personal_infoForm[\'mobile\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.MOBILE_REQUIRED">Mobile field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.user.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="personal_infoForm[\'description\'].$error" ng-show="personal_infoForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="user-detail-form-container security_suite md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.SECURITY_SUITE">SECURITY_SUITE</div>\n </div>\n <form name="security_suiteForm" novalidate>\n <md-input-container ng-if="vm.user.passwordResetAt != null" class="md-block">\n <label translate="STAFF.LAST_PASSWORD_RESET_AT">Last_Password_Reset_At</label>\n <input type="text" name="passwordResetAt" ng-model="vm.user.passwordResetAt" autofocus disabled>\n\n <div class="hint"><span translate="STAFF.HELP.LAST_PASSWORD_RESET_AT"></span></div>\n <div ng-messages="security_suiteForm[\'passwordResetAt\'].$error" ng-show="security_suiteForm[\'passwordResetAt\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.LAST_PASSWORD_RESET_AT_REQUIRED">Last_Password_Reset_At field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.user.passwordResetAt == null" class="md-block">\n <label translate="STAFF.NO_PASSWORD_CHANGE">No_Password_Change</label>\n <input type="text" name="passwordResetAt" ng-model="vm.user.passwordResetAt" disabled>\n\n <div ng-messages="security_suiteForm[\'passwordResetAt\'].$error" ng-show="security_suiteForm[\'passwordResetAt\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.NO_PASSWORD_CHANGE_REQUIRED">No_Password_Change field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.APIKEY">ApiKey</label>\n <div layout="row" layout-align="center center">\n <button class="md-button md-fab md-mini md-primary" ngclipboard data-clipboard-target="#copytoclipboard-apiKey" ngclipboard-success="vm.alert({title: \'copied to clipboard\', msg: \'API Key copied!\' });" ngclipboard-error="vm.alert({title: \'error\', msg: \'copy to clipboard failed\'});">\n <md-icon md-font-icon="icon-clipboard-text"></md-icon>\n </button>\n <input class="md-input" type="text" id="copytoclipboard-apiKey" name="apiKey" ng-model="vm.user.apiKey" ng-readonly="true">\n </div>\n <div class="hint"><span translate="STAFF.HELP.APIKEY"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.user.id != vm.currentUser.id && vm.currentUser.role == \'admin\'" class="md-block">\n <md-switch ng-model="vm.user.disabled" aria-label="Disabled" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.DISABLED">Disabled</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.DISABLED"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.user.id != vm.currentUser.id && vm.currentUser.role == \'admin\' && vm.user.disabled == 0" class="md-block">\n <md-switch ng-model="vm.user.blocked" aria-label="Blocked" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.BLOCKED">Blocked</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.BLOCKED"></span></div>\n </md-input-container>\n\n </form>\n </div>\n <div class="user-detail-form-container change_avatar md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.CHANGE_AVATAR">CHANGE_AVATAR</div>\n </div>\n <div ng-controller="Userchange_avatarController as vm_ca" ng-init="vm_ca.init(vm.user, vm.crudPermissions)" class="user-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="user-image-uploader" flow-init="vm_ca.ngFlowOptions" flow-name="vm_ca.ngFlow.flow" flow-files-submitted="vm_ca.upload()" flow-file-added="vm_ca.fileAdded($file)" flow-file-success="vm_ca.fileSuccess($file, $message)" flow-complete="vm_ca.uploadComplete()" flow-drop flow-drag-enter="vm_ca.dropping=true" flow-drag-leave="vm_ca.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n <div class="drop-text hint-text" layout="row" layout-align="center center">\n <span translate="EC.DROP_TO_UPLOAD">Drop to upload</span>\n </div>\n\n <div class="upload-button" layout="column" layout-align="center center">\n <md-button class="md-accent md-raised" flow-btn ng-disabled="!vm_ca.crudPermissions.canEdit">\n Upload\n </md-button>\n <span class="secondary-text mt-8">You can also drop images here to upload. Only PNG, JPG - Max. 8MB</span>\n </div>\n\n <div layout="row" layout-align="start start" layout-wrap>\n <div ng-repeat="change_avatarimage in vm_ca.user.images" ng-switch="change_avatarimage.type">\n <div class="user-image uploading" ng-switch-when="uploading" layout="row" layout-align="center center">\n <div class="overlay" layout="column" layout-align="center center">\n <md-progress-linear md-mode="determinate" value="{{change_avatarimage.file.progress() * 100}}">\n </md-progress-linear>\n </div>\n <img class="media" flow-img="change_avatarimage.file">\n </div>\n\n <div class="user-image" ng-switch-when="image" layout="row" layout-align="center center">\n <img class="media" ng-src="{{change_avatarimage.url}}">\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="STAFF.VOICE">VOICE</span>\n </md-tab-label>\n <md-tab-body>\n <div class="user-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container ng-if="!vm.user.autointernal" class="md-block">\n <label translate="STAFF.INTERNAL">Internal</label>\n <input type="text" name="internal" ng-model="vm.user.internal" ng-required="true" autofocus disabled>\n\n <div ng-messages="generalForm[\'internal\'].$error" ng-show="generalForm[\'internal\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.INTERNAL_REQUIRED">Internal field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.TRANSPORT">Transport</label>\n <md-select name="transport" ng-model="vm.user.transport" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'udp\'">udp</md-option>\n <md-option ng-value="\'tcp\'">tcp</md-option>\n <md-option ng-value="\'ws\'">ws</md-option>\n <md-option ng-value="\'wss\'">wss</md-option>\n <md-option ng-value="\'tls\'">tls</md-option>\n </md-select>\n <div ng-messages="generalForm[\'transport\'].$error" ng-show="generalForm[\'transport\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.TRANSPORT_REQUIRED">Transport field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.NAT">NAT</label>\n <md-select name="nat" ng-model="vm.user.nat" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'force_rport\'">force_rport</md-option>\n <md-option ng-value="\'comedia\'">comedia</md-option>\n <md-option ng-value="\'yes\'">yes</md-option>\n <md-option ng-value="\'no\'">no</md-option>\n <md-option ng-value="\'never\'">never</md-option>\n <md-option ng-value="\'route\'">route</md-option>\n </md-select>\n <div class="hint"><span translate="STAFF.HELP.NAT"></span></div>\n <div ng-messages="generalForm[\'nat\'].$error" ng-show="generalForm[\'nat\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.NAT_REQUIRED">NAT field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.ALLOWCODECS">AllowCodecs</label>\n <md-select name="allow" ng-model="vm.user.allow" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'ulaw\'">ulaw</md-option>\n <md-option ng-value="\'alaw\'">alaw</md-option>\n <md-option ng-value="\'gsm\'">gsm</md-option>\n <md-option ng-value="\'g722\'">g722</md-option>\n <md-option ng-value="\'g729\'">g729</md-option>\n <md-option ng-value="\'opus\'">opus</md-option>\n <md-option ng-value="\'h264\'">h264</md-option>\n </md-select>\n <div class="hint"><span translate="STAFF.HELP.ALLOWCODECS"></span></div>\n <div ng-messages="generalForm[\'allow\'].$error" ng-show="generalForm[\'allow\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.ALLOWCODECS_REQUIRED">AllowCodecs field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.user.context" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts" ng-disabled="context.canSelect === false">{{ context.name }}</md-option>\n </md-select>\n <div ng-messages="generalForm[\'context\'].$error" ng-show="generalForm[\'context\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CALLGROUP">Callgroup</label>\n <input type="text" name="callgroup" ng-model="vm.user.callgroup" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.CALLGROUP"></span></div>\n <div ng-messages="generalForm[\'callgroup\'].$error" ng-show="generalForm[\'callgroup\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CALLGROUP_REQUIRED">Callgroup field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.PICKUPGROUP">Pickupgroup</label>\n <input type="text" name="pickupgroup" ng-model="vm.user.pickupgroup" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.PICKUPGROUP"></span></div>\n <div ng-messages="generalForm[\'pickupgroup\'].$error" ng-show="generalForm[\'pickupgroup\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PICKUPGROUP_REQUIRED">Pickupgroup field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.APIKEY">ApiKey</label>\n <div layout="row" layout-align="center center">\n <button class="md-button md-fab md-mini md-primary" ngclipboard data-clipboard-target="#copytoclipboard-apiKey" ngclipboard-success="vm.alert({title: \'copied to clipboard\', msg: \'API Key copied!\' });" ngclipboard-error="vm.alert({title: \'error\', msg: \'copy to clipboard failed\'});">\n <md-icon md-font-icon="icon-clipboard-text"></md-icon>\n </button>\n <input class="md-input" type="text" id="copytoclipboard-apiKey" name="apiKey" ng-model="vm.user.apiKey" ng-readonly="true">\n </div>\n <div class="hint"><span translate="STAFF.HELP.APIKEY"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.VIDEOSUPPORT">Videosupport</label>\n <md-select name="videosupport" ng-model="vm.user.videosupport" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'yes\'">Yes</md-option>\n <md-option ng-value="\'no\'">No</md-option>\n <md-option ng-value="\'always\'">Always</md-option>\n </md-select>\n <div ng-messages="generalForm[\'videosupport\'].$error" ng-show="generalForm[\'videosupport\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.VIDEOSUPPORT_REQUIRED">Videosupport field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/staff/views/users/users.html",'<div id="users" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-account-multiple" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="STAFF.USERS">Users</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="STAFF.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedUsers.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedUsers =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="STAFF.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-users-count">\n <span>{{vm.selectedUsers.length}}</span>\n <span translate="STAFF.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="STAFF.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllUsers()" translate="STAFF.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectUsers()" translate="STAFF.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedUsers" csv-label="true" filename="users.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- USER TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedUsers" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getUsers">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="role">{{ \'STAFF.ROLE\' | translate }}</th>\n <th md-column md-order-by="userProfileId">{{ \'STAFF.USERPROFILE\' | translate }}</th>\n <th md-column md-order-by="fullname">{{ \'STAFF.FULLNAME\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'STAFF.USERNAME\' | translate }}</th>\n <th md-column md-order-by="email">{{ \'STAFF.EMAIL\' | translate }}</th>\n <th md-column md-order-by="phone">{{ \'STAFF.PHONE\' | translate }}</th>\n <th md-column md-order-by="mobile">{{ \'STAFF.MOBILE\' | translate }}</th>\n <th md-column md-order-by="internal">{{ \'STAFF.INTERNAL\' | translate }}</th>\n <th md-column md-order-by="disabled">{{ \'STAFF.DISABLED\' | translate }}</th>\n <th md-column md-order-by="blocked">{{ \'STAFF.BLOCKED\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.users.rows.length">\n <td md-cell colspan="11">\n <div layout="row" layout-align="center center">\n <span translate="STAFF.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="user" md-select-id="id" ng-repeat="user in vm.users.rows">\n <td md-cell ng-if="user.userpic"><img class="avatar" alt="{{user.name}}" ng-src="api/users/{{user.id}}/avatar" /></td>\n <td md-cell ng-if="!user.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{user.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="role ">{{ vm.arrayrole[user.role].option }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="userProfileId font-weight-600">{{ (vm.userProfiles | filter : {\'id\':user.userProfileId} : true)[0].name }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="fullname font-weight-600">{{user.fullname}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="name ">{{user.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="email ">{{user.email}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="phone ">{{user.phone}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="mobile ">{{user.mobile}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="internal ">{{user.internal}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="disabled ">\n <md-icon md-colors="{color: {{user.disabled ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{user.disabled ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="blocked ">\n <md-icon md-colors="{color: {{user.blocked ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{user.blocked ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(user, $event )" translate="STAFF.EDIT_USER">\n Edit User\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.role === \'admin\' && user.id !== vm.currentUser.id">\n\n <md-button ng-click="vm.deleteconfirm(user, $event )" translate="STAFF.DELETE_USER">\n Delete User\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'STAFF.PAGE\' | translate}}:\', rowsPerPage: \'{{\'STAFF.ROWSPERPAGE\' | translate}}:\', of: \'{{\'STAFF.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.users.count}}" md-on-paginate="vm.getUsers" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / USER TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD USER BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-user-button" ng-click="vm.createOrEditUser($event)" aria-label="add user" translate translate-attr-aria-label="STAFF.ADD_USER">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD USER BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/cannedAnswers/cannedAnswers.html",'<div id="cannedAnswers" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="TOOLS.CANNEDANSWERS">CannedAnswers</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedCannedAnswers.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedCannedAnswers =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="TOOLS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-cannedAnswers-count">\n <span>{{vm.selectedCannedAnswers.length}}</span>\n <span translate="TOOLS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TOOLS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllCannedAnswers()" translate="TOOLS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectCannedAnswers()" translate="TOOLS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedCannedAnswers" csv-label="true" filename="cannedAnswers.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedCannedAnswers($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- CANNEDANSWER TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedCannedAnswers" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getCannedAnswers">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n <th md-column md-order-by="key">{{ \'TOOLS.KEY\' | translate }}</th>\n <th md-column md-order-by="value">{{ \'TOOLS.VALUE\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.cannedAnswers.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="cannedAnswer" md-select-id="id" ng-repeat="cannedAnswer in vm.cannedAnswers.rows">\n <td md-cell ng-if="cannedAnswer.userpic"><img class="avatar" alt="{{cannedAnswer.name}}" ng-src="api/users/{{cannedAnswer.id}}/avatar" /></td>\n <td md-cell ng-if="!cannedAnswer.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{cannedAnswer.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditCannedAnswer($event, cannedAnswer)" md-cell class="id ">{{cannedAnswer.id}}</td>\n <td ng-click="vm.createOrEditCannedAnswer($event, cannedAnswer)" md-cell class="key ">{{cannedAnswer.key}}</td>\n <td ng-click="vm.createOrEditCannedAnswer($event, cannedAnswer)" md-cell class="value ">{{cannedAnswer.value}}</td>\n <td ng-click="vm.createOrEditCannedAnswer($event, cannedAnswer)" md-cell class="description ">{{cannedAnswer.description}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(cannedAnswer, $event )" translate="TOOLS.EDIT_CANNEDANSWER">\n Edit CannedAnswer\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(cannedAnswer, $event )" translate="TOOLS.DELETE_CANNEDANSWER">\n Delete CannedAnswer\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.cannedAnswers.count}}" md-on-paginate="vm.getCannedAnswers" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / CANNEDANSWER TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD CANNEDANSWER BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-cannedAnswer-button" ng-click="vm.createOrEditCannedAnswer($event)" aria-label="add cannedAnswer" translate translate-attr-aria-label="TOOLS.ADD_CANNEDANSWER">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD CANNEDANSWER BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/cannedAnswers/create/dialog.html",'<md-dialog class="cannedAnswer-dialog" aria-label="New CannedAnswer">\n <form name="cannedAnswerForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.cannedAnswer.key" md-maxlength="255" ng-required="true" autofocus>\n\n <div ng-messages="cannedAnswerForm[\'key\'].$error" ng-show="cannedAnswerForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.KEY_REQUIRED">Key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="TOOLS.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 255}\'>Key must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.VALUE">Value</label>\n <textarea name="value" ng-model="vm.cannedAnswer.value" required></textarea>\n\n <div ng-messages="cannedAnswerForm[\'value\'].$error" ng-show="cannedAnswerForm[\'value\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.cannedAnswer.description">\n\n <div ng-messages="cannedAnswerForm[\'description\'].$error" ng-show="cannedAnswerForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newCannedAnswer" ng-click="vm.saveCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="cannedAnswerForm.$invalid || cannedAnswerForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newCannedAnswer" ng-click="vm.addNewCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="cannedAnswerForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_CANNEDANSWER" translate-attr-aria-label="TOOLS.ADD_CANNEDANSWER">\n ADD CANNEDANSWER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newCannedAnswer" ng-click="vm.deleteCannedAnswer($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/customDashboards/create/dialog.html",'<md-dialog class="customDashboard-dialog" aria-label="New CustomDashboard">\n <form name="customDashboardForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.customDashboard.name" ng-required="true" autofocus>\n\n <div ng-messages="customDashboardForm[\'name\'].$error" ng-show="customDashboardForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.customDashboard.description">\n\n <div ng-messages="customDashboardForm[\'description\'].$error" ng-show="customDashboardForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newCustomDashboard" ng-click="vm.saveCustomDashboard()" class="send-button md-accent md-raised" ng-disabled="customDashboardForm.$invalid || customDashboardForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newCustomDashboard" ng-click="vm.addNewCustomDashboard()" class="send-button md-accent md-raised" ng-disabled="customDashboardForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_CUSTOMDASHBOARD" translate-attr-aria-label="TOOLS.ADD_CUSTOMDASHBOARD">\n ADD CUSTOMDASHBOARD\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newCustomDashboard" ng-click="vm.deleteCustomDashboard($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/customDashboards/customDashboards.html",'<div id="customDashboards" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="TOOLS.CUSTOMDASHBOARDS">CustomDashboards</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedCustomDashboards.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedCustomDashboards =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="TOOLS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-customDashboards-count">\n <span>{{vm.selectedCustomDashboards.length}}</span>\n <span translate="TOOLS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TOOLS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllCustomDashboards()" translate="TOOLS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectCustomDashboards()" translate="TOOLS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedCustomDashboards" csv-label="true" filename="customDashboards.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedCustomDashboards($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- CUSTOMDASHBOARD TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedCustomDashboards" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getCustomDashboards">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.customDashboards.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="customDashboard" md-select-id="id" ng-repeat="customDashboard in vm.customDashboards.rows">\n <td md-cell ng-if="customDashboard.userpic"><img class="avatar" alt="{{customDashboard.name}}" ng-src="api/users/{{customDashboard.id}}/avatar" /></td>\n <td md-cell ng-if="!customDashboard.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{customDashboard.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(customDashboard, ev) : vm.createOrEditCustomDashboard($event, customDashboard)" md-cell class="id ">{{customDashboard.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(customDashboard, ev) : vm.createOrEditCustomDashboard($event, customDashboard)" md-cell class="name ">{{customDashboard.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(customDashboard, ev) : vm.createOrEditCustomDashboard($event, customDashboard)" md-cell class="description ">{{customDashboard.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(customDashboard, $event )" translate="TOOLS.EDIT_CUSTOMDASHBOARD">\n Edit CustomDashboard\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.clonedialog(customDashboard, $event )" translate="TOOLS.CLONE_CUSTOMDASHBOARD">\n clone CustomDashboard\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotodashboardgoto(customDashboard, $event )" translate="TOOLS.GOTODASHBOARD_CUSTOMDASHBOARD">\n goToDashboard CustomDashboard\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(customDashboard, $event )" translate="TOOLS.DELETE_CUSTOMDASHBOARD">\n Delete CustomDashboard\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.customDashboards.count}}" md-on-paginate="vm.getCustomDashboards" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / CUSTOMDASHBOARD TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD CUSTOMDASHBOARD BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-customDashboard-button" ng-click="vm.createOrEditCustomDashboard($event)" aria-label="add customDashboard" translate translate-attr-aria-label="TOOLS.ADD_CUSTOMDASHBOARD">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD CUSTOMDASHBOARD BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/customDashboards/edit/clone/clone.html",'<md-dialog class="customDashboard-dialog" aria-label="Clone CustomDashboard">\n <form name="customDashboardForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.customDashboard.name" ng-required="true" autofocus>\n\n <div ng-messages="customDashboardForm[\'name\'].$error" ng-show="customDashboardForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <md-button type="submit" ng-click="vm.cloneCustomDashboard()" class="send-button md-accent md-raised" ng-disabled="customDashboardForm.$invalid" aria-label="CLONE" translate="TOOLS.CLONE_CUSTOMDASHBOARD" translate-attr-aria-label="TOOLS.CLONE_CUSTOMDASHBOARD">\n CLONE CUSTOMDASHBOARD\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/customDashboards/edit/dashboard/dialog.html",'<md-dialog class="dashboarditem-dialog" aria-label="New DashboardItem">\n <form name="dashboarditemForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.dashboarditem.type" autofocus ng-disabled="!vm.newDashboardItem">\n\n <md-option ng-value="\'counter\'"> {{ \'TOOLS.COUNTER\' | translate }} </md-option>\n\n <md-option ng-value="\'multibar-chart\'"> {{ \'TOOLS.MULTIBARCHART\' | translate }} </md-option>\n\n <md-option ng-value="\'pie-chart\'"> {{ \'TOOLS.PIECHART\' | translate }} </md-option>\n\n <md-option ng-value="\'web-report\'"> {{ \'TOOLS.WEBREPORT\' | translate }} </md-option>\n\n <md-option ng-value="\'iframe\'"> {{ \'TOOLS.IFRAME\' | translate }} </md-option>\n\n <md-option ng-value="\'clock\'"> {{ \'TOOLS.CLOCK\' | translate }} </md-option>\n\n <md-option ng-value="\'custom\'"> {{ \'TOOLS.CUSTOMTYPE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="dashboarditemForm[\'type\'].$error" ng-show="dashboarditemForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.TITLE">Title</label>\n <input type="text" name="title" ng-model="vm.dashboarditem.title" md-maxlength="255" ng-required="true">\n\n <div ng-messages="dashboarditemForm[\'title\'].$error" ng-show="dashboarditemForm[\'title\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TITLE_REQUIRED">Title field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="TOOLS.ERRORS.TITLE_MAX_LENGTH" translate-values=\'{max: 255}\'>Title must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.TITLEFONTSIZE">TitleFontSize</label>\n <input type="number" name="titleFontSize" ng-model="vm.dashboarditem.titleFontSize" value="12">\n\n <div ng-messages="dashboarditemForm[\'titleFontSize\'].$error" ng-show="dashboarditemForm[\'titleFontSize\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TITLEFONTSIZE_REQUIRED">TitleFontSize field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.dashboarditem.type == \'iframe\'" class="md-block">\n <label translate="TOOLS.URL">Url</label>\n <input type="url" name="attrUrl" ng-model="vm.dashboarditem.attrUrl" value="https://" ng-required="true">\n\n <div ng-messages="dashboarditemForm[\'attrUrl\'].$error" ng-show="dashboarditemForm[\'attrUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.URL_REQUIRED">Url field is required</span>\n </div>\n <div ng-message="url">\n <span translate="TOOLS.ERRORS.URL_MUST_VALID_URL">Url must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.dashboarditem.type == \'custom\'" class="md-block">\n <label translate="TOOLS.PATH">Path</label>\n <input type="text" name="attrPath" ng-model="vm.dashboarditem.attrPath" ng-required="true">\n\n <div ng-messages="dashboarditemForm[\'attrPath\'].$error" ng-show="dashboarditemForm[\'attrPath\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.PATH_REQUIRED">Path field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.dashboarditem.type == \'clock\'" class="md-block">\n <label translate="TOOLS.FORMAT">Format</label>\n <input type="text" name="attrHourFormat" ng-model="vm.dashboarditem.attrHourFormat" value="HH:mm:ss" ng-required="true">\n\n <div ng-messages="dashboarditemForm[\'attrHourFormat\'].$error" ng-show="dashboarditemForm[\'attrHourFormat\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.FORMAT_REQUIRED">Format field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.dashboarditem.type == \'clock\'" class="md-block">\n <label translate="TOOLS.TIMEZONE">Timezone</label>\n <md-select name="attrTimezone" ng-model="vm.dashboarditem.attrTimezone" required>\n <md-option ng-value="\'-12.00\'">GMT-12.00</md-option>\n <md-option ng-value="\'-11.00\'">GMT-11.00</md-option>\n <md-option ng-value="\'-10.00\'">GMT-10.00</md-option>\n <md-option ng-value="\'-9.00\'">GMT-9.00</md-option>\n <md-option ng-value="\'-8.00\'">GMT-8.00</md-option>\n <md-option ng-value="\'-7.00\'">GMT-7.00</md-option>\n <md-option ng-value="\'-6.00\'">GMT-6.00</md-option>\n <md-option ng-value="\'-5.00\'">GMT-5.00</md-option>\n <md-option ng-value="\'-4.00\'">GMT-4.00</md-option>\n <md-option ng-value="\'-3.30\'">GMT-3.30</md-option>\n <md-option ng-value="\'-3.00\'">GMT-3.00</md-option>\n <md-option ng-value="\'-2.00\'">GMT-2.00</md-option>\n <md-option ng-value="\'-1.00\'">GMT-1.00</md-option>\n <md-option ng-value="\'0.00\'">GMT 0.00</md-option>\n <md-option ng-value="\'1.00\'">GMT+1.00</md-option>\n <md-option ng-value="\'2.00\'">GMT+2.00</md-option>\n <md-option ng-value="\'3.00\'">GMT+3.00</md-option>\n <md-option ng-value="\'3.30\'">GMT+3.30</md-option>\n <md-option ng-value="\'4.00\'">GMT+4.00</md-option>\n <md-option ng-value="\'4.30\'">GMT+4.30</md-option>\n <md-option ng-value="\'5.00\'">GMT+5.00</md-option>\n <md-option ng-value="\'5.30\'">GMT+5.30</md-option>\n <md-option ng-value="\'5.45\'">GMT+5.45</md-option>\n <md-option ng-value="\'6.00\'">GMT+6.00</md-option>\n <md-option ng-value="\'6.30\'">GMT+6.30</md-option>\n <md-option ng-value="\'7.00\'">GMT+7.00</md-option>\n <md-option ng-value="\'8.00\'">GMT+8.00</md-option>\n <md-option ng-value="\'9.00\'">GMT+9.00</md-option>\n <md-option ng-value="\'9.30\'">GMT+9.30</md-option>\n <md-option ng-value="\'10.00\'">GMT+10.00</md-option>\n <md-option ng-value="\'11.00\'">GMT+11.00</md-option>\n <md-option ng-value="\'12.00\'">GMT+12.00</md-option>\n <md-option ng-value="\'13.00\'">GMT+13.00</md-option>\n </md-select>\n <div ng-messages="dashboarditemForm[\'attrTimezone\'].$error" ng-show="dashboarditemForm[\'attrTimezone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIMEZONE_REQUIRED">Timezone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.dashboarditem.type == \'counter\'" class="md-block">\n <label translate="TOOLS.METRIC">Metric</label>\n <md-select name="attrMetric" ng-model="vm.dashboarditem.attrMetric" required>\n\n <md-option ng-value="\'total\'"> {{ \'TOOLS.TOTAL\' | translate }} </md-option>\n\n <md-option ng-value="\'abandoned\'"> {{ \'TOOLS.ABANDONED\' | translate }} </md-option>\n\n <md-option ng-value="\'waiting\'"> {{ \'TOOLS.WAITING\' | translate }} </md-option>\n\n <md-option ng-value="\'talking\'"> {{ \'TOOLS.TALKING\' | translate }} </md-option>\n\n <md-option ng-value="\'answered\'"> {{ \'TOOLS.ANSWERED\' | translate }} </md-option>\n\n <md-option ng-value="\'unmanaged\'"> {{ \'TOOLS.UNMANAGED\' | translate }} </md-option>\n </md-select>\n <div ng-messages="dashboarditemForm[\'attrMetric\'].$error" ng-show="dashboarditemForm[\'attrMetric\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.METRIC_REQUIRED">Metric field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="[\'multibar-chart\', \'pie-chart\'].includes(vm.dashboarditem.type)" class="md-block">\n <label translate="TOOLS.SERIE1">Serie1</label>\n <md-select name="attrSerie1" ng-model="vm.dashboarditem.attrSerie1" required>\n\n <md-option ng-value="\'total\'"> {{ \'TOOLS.TOTAL\' | translate }} </md-option>\n\n <md-option ng-value="\'abandoned\'"> {{ \'TOOLS.ABANDONED\' | translate }} </md-option>\n\n <md-option ng-value="\'waiting\'"> {{ \'TOOLS.WAITING\' | translate }} </md-option>\n\n <md-option ng-value="\'talking\'"> {{ \'TOOLS.TALKING\' | translate }} </md-option>\n\n <md-option ng-value="\'answered\'"> {{ \'TOOLS.ANSWERED\' | translate }} </md-option>\n\n <md-option ng-value="\'unmanaged\'"> {{ \'TOOLS.UNMANAGED\' | translate }} </md-option>\n </md-select>\n <div ng-messages="dashboarditemForm[\'attrSerie1\'].$error" ng-show="dashboarditemForm[\'attrSerie1\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.SERIE1_REQUIRED">Serie1 field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="[\'multibar-chart\', \'pie-chart\'].includes(vm.dashboarditem.type)" class="md-block">\n <label translate="TOOLS.SERIE2">Serie2</label>\n <md-select name="attrSerie2" ng-model="vm.dashboarditem.attrSerie2">\n\n <md-option ng-value="\'null\'"> {{ \'TOOLS.NONE\' | translate }} </md-option>\n\n <md-option ng-value="\'total\'"> {{ \'TOOLS.TOTAL\' | translate }} </md-option>\n\n <md-option ng-value="\'abandoned\'"> {{ \'TOOLS.ABANDONED\' | translate }} </md-option>\n\n <md-option ng-value="\'waiting\'"> {{ \'TOOLS.WAITING\' | translate }} </md-option>\n\n <md-option ng-value="\'talking\'"> {{ \'TOOLS.TALKING\' | translate }} </md-option>\n\n <md-option ng-value="\'answered\'"> {{ \'TOOLS.ANSWERED\' | translate }} </md-option>\n\n <md-option ng-value="\'unmanaged\'"> {{ \'TOOLS.UNMANAGED\' | translate }} </md-option>\n </md-select>\n <div ng-messages="dashboarditemForm[\'attrSerie2\'].$error" ng-show="dashboarditemForm[\'attrSerie2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.SERIE2_REQUIRED">Serie2 field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="[\'multibar-chart\', \'pie-chart\'].includes(vm.dashboarditem.type)" class="md-block">\n <label translate="TOOLS.SERIE3">Serie3</label>\n <md-select name="attrSerie3" ng-model="vm.dashboarditem.attrSerie3">\n\n <md-option ng-value="\'null\'"> {{ \'TOOLS.NONE\' | translate }} </md-option>\n\n <md-option ng-value="\'total\'"> {{ \'TOOLS.TOTAL\' | translate }} </md-option>\n\n <md-option ng-value="\'abandoned\'"> {{ \'TOOLS.ABANDONED\' | translate }} </md-option>\n\n <md-option ng-value="\'waiting\'"> {{ \'TOOLS.WAITING\' | translate }} </md-option>\n\n <md-option ng-value="\'talking\'"> {{ \'TOOLS.TALKING\' | translate }} </md-option>\n\n <md-option ng-value="\'answered\'"> {{ \'TOOLS.ANSWERED\' | translate }} </md-option>\n\n <md-option ng-value="\'unmanaged\'"> {{ \'TOOLS.UNMANAGED\' | translate }} </md-option>\n </md-select>\n <div ng-messages="dashboarditemForm[\'attrSerie3\'].$error" ng-show="dashboarditemForm[\'attrSerie3\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.SERIE3_REQUIRED">Serie3 field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.dashboarditem.type == \'web-report\'" class="md-block">\n <label translate="TOOLS.REPORT">Report</label>\n <input type="search" name="report" ng-model="vm.dashboarditem.report" ng-required="true" autocomplete="off" ng-click="vm.searchReport()">\n <md-icon md-font-icon="icon-magnify" ng-click="vm.searchReport()" aria-label="Search Report"></md-icon>\n <div ng-messages="dashboarditemForm[\'report\'].$error" ng-show="dashboarditemForm[\'report\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.REPORT_REQUIRED">Report field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.dashboarditem.type == \'web-report\'" class="md-block">\n <label translate="TOOLS.REFRESH">Refresh</label>\n <input type="number" name="attrRefresh" ng-model="vm.dashboarditem.attrRefresh" min="5" value="10" ng-required="true">\n\n <div ng-messages="dashboarditemForm[\'attrRefresh\'].$error" ng-show="dashboarditemForm[\'attrRefresh\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.REFRESH_REQUIRED">Refresh field is required</span>\n </div>\n <div ng-message="min">\n <span translate="TOOLS.ERRORS.REFRESH_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Refresh must be a valid greater or equal than</span> <span>5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="[\'multibar-chart\', \'pie-chart\', \'counter\'].includes(vm.dashboarditem.type)" class="md-block">\n <label translate="TOOLS.FILTERVOICEQUEUES">FilterVoiceQueues</label>\n <md-select name="attrVoiceQueues" ng-model="vm.dashboarditem.attrVoiceQueues" multiple>\n <md-option ng-value="attrVoiceQueues.id" ng-repeat="attrVoiceQueues in vm.voiceQueues" ng-disabled="attrVoiceQueues.canSelect === false">{{ attrVoiceQueues.name }}</md-option>\n </md-select>\n <div ng-messages="dashboarditemForm[\'attrVoiceQueues\'].$error" ng-show="dashboarditemForm[\'attrVoiceQueues\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.FILTERVOICEQUEUES_REQUIRED">FilterVoiceQueues field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="[\'counter\', \'clock\'].includes(vm.dashboarditem.type)" class="md-block">\n <label translate="TOOLS.FONTSIZE">FontSize</label>\n <input type="number" name="attrFontSize" ng-model="vm.dashboarditem.attrFontSize" min="12" max="40" value="20" ng-required="true">\n\n <div ng-messages="dashboarditemForm[\'attrFontSize\'].$error" ng-show="dashboarditemForm[\'attrFontSize\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.FONTSIZE_REQUIRED">FontSize field is required</span>\n </div>\n <div ng-message="min">\n <span translate="TOOLS.ERRORS.FONTSIZE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">FontSize must be a valid greater or equal than</span> <span>12</span>\n </div>\n <div ng-message="max">\n <span translate="TOOLS.ERRORS.FONTSIZE_MUST_BE_LESS_THAN_OR_EQUAL_TO">FontSize must be a valid greater or equal than</span> <span>40</span>\n </div>\n </div>\n </md-input-container>\n <div flex md-color-picker ng-model="vm.dashboarditem.foreground" label="{{\'TOOLS.FOREGROUND\' | translate}}" md-color-hex="true" md-color-rgb="false" md-color-hsl="false" md-color-history="false" md-color-material-palette="false" md-color-alpha-channel="false" open-on-input="true"></div>\n <div flex md-color-picker ng-model="vm.dashboarditem.background" label="{{\'TOOLS.BACKGROUND\' | translate}}" md-color-hex="true" md-color-rgb="false" md-color-hsl="false" md-color-history="false" md-color-material-palette="false" md-color-alpha-channel="false" open-on-input="true"></div>\n <md-input-container class="md-block">\n <label translate="TOOLS.LINK">link</label>\n <input type="url" name="link" ng-model="vm.dashboarditem.link">\n\n <div ng-messages="dashboarditemForm[\'link\'].$error" ng-show="dashboarditemForm[\'link\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.LINK_REQUIRED">link field is required</span>\n </div>\n <div ng-message="url">\n <span translate="TOOLS.ERRORS.LINK_MUST_VALID_URL">link must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newDashboardItem" ng-click="vm.saveDashboardItem()" class="send-button md-accent md-raised" ng-disabled="dashboarditemForm.$invalid || dashboarditemForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newDashboardItem" ng-click="vm.addNewDashboardItem()" class="send-button md-accent md-raised" ng-disabled="dashboarditemForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_DASHBOARDITEM" translate-attr-aria-label="TOOLS.ADD_DASHBOARDITEM">\n ADD DASHBOARDITEM\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newDashboardItem" ng-click="vm.deleteDashboardItem($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/customDashboards/edit/view.html",'<div id="tools-customDashboard" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-customDashboards-button md-icon-button" aria-label="Go to customDashboards" ng-click="vm.gotoCustomDashboards()" translate translate-attr-aria-label="TOOLS.GO_TO_CUSTOMDASHBOARDS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="customDashboard-image" hide-xs>\n <img ng-src="assets/images/business/customDashboards.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.customDashboard.id}}\n <span ng-if="vm.customDashboard.name">{{vm.customDashboard.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="TOOLS.CREATED_AT"></span> <span>{{vm.customDashboard.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.clonedialog(vm.customDashboard, $event)" class="md-fab md-green-500-bg md-icon-button" aria-label="clone">\n <md-tooltip><span translate="TOOLS.CLONE_CUSTOMDASHBOARD"></span></md-tooltip>\n <md-icon md-font-icon="icon-content-duplicate"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.gotogoto(vm.customDashboard, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n <md-tooltip><span translate="TOOLS.GOTO_CUSTOMDASHBOARD"></span></md-tooltip>\n <md-icon md-font-icon="icon-forward"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveCustomDashboard()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (dashboardForm.$invalid)" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="TOOLS.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="customDashboard-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="TOOLS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.customDashboard.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.customDashboard.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="TOOLS.DASHBOARD">DASHBOARD</span>\n </md-tab-label>\n <md-tab-body>\n <div class="customDashboard-detail-form-container dashboard md-background-bg md-whiteframe-1dp">\n <div ng-controller="CustomDashboardItemsController as vm_cd" ng-init="vm_cd.init(vm.customDashboard, vm.crudPermissions)" class="customDashboard-detail-form-container no-padding no-margin" layout="column">\n <div ng-if="vm_cd.customDashboard.widgets.length">\n <md-button class="md-fab md-mini md-accent" ng-click="vm_cd.createOrEditWidget()" ng-if="vm_cd.crudPermissions.canEdit" aria-label="add item">\n <md-tooltip>{{ \'TOOLS.ADD_WIDGET\' | translate }}</md-tooltip>\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <md-content flex>\n <ms-widget-engine config="vm_cd.customDashboard" on-edit="vm_cd.createOrEditWidget(widget)" on-delete="vm_cd.deleteWidget(widget)"></ms-widget-engine>\n </md-content>\n </div>\n <div ng-if="!vm_cd.customDashboard.widgets.length" layout="row" layout-align="center center" flex>\n <md-button class="width-130 height-130 md-accent md-raised" ng-click="vm_cd.createOrEditWidget()" aria-label="add item" layout="column">\n <md-icon md-font-icon="icon-plus-circle" class="s50"></md-icon>\n <span layout-wrap translate="TOOLS.ADD_WIDGET"></span>\n </md-button>\n </div>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/tools/views/customDashboards/partialViews/reports/treeReports.html",'<md-dialog class="report-selection-dialog" aria-label="Report Selection" flex="60">\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2>Select Report</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeReportDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content>\n <div class="content" md-background-bg layout="row" layout-align="start start">\n <div layout="column" flex="30">\n <md-card class="padding-10 scrollable" ms-scroll>\n <div js-tree="vm.treeConfig" tree-events-obj="vm.treeDefaultEvents" ng-model="vm.treeDefaultData" tree="vm.treeDefaultInstance"></div>\n </md-card>\n <md-card class="padding-10 scrollable" ms-scroll>\n <div js-tree="vm.treeConfig" tree-events-obj="vm.treeCustomEvents" ng-model="vm.treeCustomData" tree="vm.treeCustomInstance"></div>\n </md-card>\n </div>\n <md-card flex="70">\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="h2 secondary-text">{{vm.currentNode.text}}</span>\n <p ng-if="vm.currentPath">\n <span class="text-boxed">{{vm.currentPath}}</span>\n </p>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select ng-model="vm.selectedReport" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getReports">\n <tr md-row>\n <th md-column md-order-by="id" width="10px">{{ "ANALYTICS.ID" | translate }}</th>\n <th md-column md-order-by="name">{{ "ANALYTICS.NAME" | translate }}</th>\n <th md-column md-order-by="description">{{ "ANALYTICS.DESCRIPTION" | translate }}</th>\n <th md-column md-order-by="createdAt">{{ "ANALYTICS.CREATED_AT" | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.reports.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="ANALYTICS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="report" md-select-id="id" ng-repeat="report in vm.reports.rows">\n <td md-cell class="id">{{ report.id }}</td>\n <td md-cell class="name">{{ report.name }}</td>\n <td md-cell class="description">{{ report.description }}</td>\n <td md-cell class="createdAt">{{ report.createdAt | date: "medium" }}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{ \'ANALYTICS.PAGE\' | translate }}:\', rowsPerPage: \'{{ \'ANALYTICS.ROWSPERPAGE\' | translate }}:\', of: \'{{ \'ANALYTICS.OF\' | translate }}\'}" md-limit="vm.query.limit" md-limit-options="[10]" md-page="vm.query.page" md-total="{{ vm.reports.count }}" md-on-paginate="vm.getReports" md-page-select></md-table-pagination>\n </md-card>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row">\n <span flex></span>\n <md-button class="md-raised" ng-click="vm.closeReportDialog()">CANCEL</md-button>\n <md-button class="md-accent md-raised" ng-click="vm.selectReport()">CONFIRM</md-button>\n </md-dialog-actions>\n</md-dialog>'),e.put("app/main/apps/tools/views/dispositions/create/dialog.html",'<md-dialog ng-init="vm.onInit()" class="disposition-dialog" aria-label="New Disposition">\n <form name="dispositionForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.newDisposition ? \'TOOLS.NEW_DISPOSITION\' : \'TOOLS.EDIT_DISPOSITION\' | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.disposition.name" md-maxlength="255" required md-autofocus>\n <div ng-messages="dispositionForm[\'name\'].$error" ng-show="dispositionForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="TOOLS.ERRORS.NAME_MAX_LENGTH" translate-values=\'{max: 255}\'>Name must have a maximum length\n equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.disposition.description" md-maxlength="255">\n <div ng-messages="dispositionForm[\'description\'].$error" ng-show="dispositionForm[\'description\'].$touched" role="alert">\n <div ng-message="md-maxlength">\n <span translate="TOOLS.ERRORS.DESCRIPTION_MAX_LENGTH" translate-values=\'{max: 255}\'>Description must have a\n maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.newDisposition && vm.dispositions.length > 0 || vm.disposition.ParentId" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="TOOLS.FIRST_LEVEL_DISPOSITION">First Level Disposition</label>\n <md-select name="firstLevelDisposition" ng-model="vm.firstLevelDisposition" ng-change="vm.onFirstLevelSelection()">\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'first\' }" ng-disabled="disposition.canSelect === false">{{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.firstLevelDisposition" ng-click="vm.clearSelection(\'first\'); dispositionForm.$setDirty();" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear first level disposition selection">\n </md-icon>\n </md-button>\n </div>\n <div ng-if="vm.firstLevelDisposition && vm.anySecondLevelDisposition" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="TOOLS.SECOND_LEVEL_DISPOSITION">Second Level Disposition</label>\n <md-select name="secondLevelDisposition" ng-model="vm.secondLevelDisposition">\n <md-option ng-value="disposition" ng-if="disposition.id != vm.disposition.id" ng-repeat="disposition in vm.dispositions | filter: { level: \'second\', ParentId: vm.firstLevelDisposition.id }" ng-disabled="disposition.canSelect === false">{{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.secondLevelDisposition" ng-click="vm.clearSelection(\'second\'); dispositionForm.$setDirty();" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear first level disposition selection">\n </md-icon>\n </md-button>\n </div>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newDisposition" ng-click="vm.saveDisposition()" class="send-button md-accent md-raised" ng-disabled="dispositionForm.$invalid || dispositionForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newDisposition" ng-click="vm.addNewDisposition()" class="send-button md-accent md-raised" ng-disabled="dispositionForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_DISPOSITION" translate-attr-aria-label="TOOLS.ADD_DISPOSITION">\n ADD DISPOSITION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newDisposition" ng-click="vm.deleteDisposition($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/dispositions/dispositions.html",'<div id="dispositions" class="page-layout simple left-sidenav inner-sidenav">\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="TOOLS.DISPOSITIONS">Dispositions</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedDispositions.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n <div class="close-button-wrapper" ng-click="vm.selectedDispositions = []">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="TOOLS.BACK">Back</span>\n </md-button>\n </div>\n <div flex layout="row" layout-align="space-between center">\n <div>\n <span class="selected-dispositions-count">\n <span>{{vm.selectedDispositions.length}}</span>\n <span translate="TOOLS.SELECTED">selected</span>\n </span>\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TOOLS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllDispositions()" translate="TOOLS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectDispositions()" translate="TOOLS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedDispositions" csv-label="true" filename="dispositions.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedDispositions($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n <div layout="row">\n <div class="column" flex="20">\n <md-card>\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm.query.level = null; vm.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\n </button>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm.query.level" ng-change="vm.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n \x3c!-- DISPOSITION TABLE --\x3e\n <md-card flex="80">\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedDispositions" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getDispositions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.dispositions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="disposition" md-select-id="id" ng-repeat="disposition in vm.dispositions.rows">\n <td ng-click="vm.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm.levels[disposition.level] }}</td>\n <td ng-click="vm.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteconfirm(disposition, $event)" translate="TOOLS.DELETE_DISPOSITION">\n Delete Disposition\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.dispositions.count}}" md-on-paginate="vm.getDispositions" md-page-select>\n </md-table-pagination>\n </md-card>\n \x3c!-- / DISPOSITION TABLE --\x3e\n </div>\n \x3c!-- NO RESULTS --\x3e\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n </div>\n \x3c!-- / CONTENT --\x3e\n \x3c!-- ADD DISPOSITION BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-disposition-button" ng-click="vm.createOrEditDisposition($event)" aria-label="add disposition" translate translate-attr-aria-label="TOOLS.ADD_DISPOSITION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD DISPOSITION BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/intervals/create/dialog.html",'<md-dialog class="interval-dialog" aria-label="New Interval">\n <form name="intervalForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.interval.name" ng-required="true" autofocus>\n\n <div ng-messages="intervalForm[\'name\'].$error" ng-show="intervalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.interval.description">\n\n <div ng-messages="intervalForm[\'description\'].$error" ng-show="intervalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newInterval" ng-click="vm.saveInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid || intervalForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newInterval" ng-click="vm.addNewInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_INTERVAL" translate-attr-aria-label="TOOLS.ADD_INTERVAL">\n ADD INTERVAL\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newInterval" ng-click="vm.deleteInterval($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/intervals/edit/apps/interval/dialog.html",'<md-dialog class="interval-dialog" aria-label="New Interval">\n <form name="intervalForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input ng-model="vm.interval.name" type="text" name="name" placeholder="{{\'TOOLS.NAME\' | translate}}" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" md-autofocus required>\n <div ng-messages="intervalForm.name.$error" ng-show="intervalForm.name.$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select ng-model="vm.type" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="type" ng-repeat=\'type in vm.types\'>{{ type | ucfirst }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.type === \'list\'">\n <label translate="TOOLS.INTERVALS">Intervals</label>\n <md-select ng-model="vm.interval.IntervalId" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals">{{ interval.name }}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!-- TIMERANGE START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.TIME_RANGE">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <div class="md-block" flex>\n <mdp-time-picker name="timeRangeFrom" mdp-placeholder="FROM" ng-model="vm.timeRangeFrom" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <div ng-messages="intervalForm.timeRangeFrom.$error" ng-show="intervalForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_FROM_INVALID">Time Range From field is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n <div class="md-block" flex ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_INVALID">Time Range To field is invalid</span>\n </div>\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </div>\n \x3c!-- TIMERANGE END --\x3e\n\n \x3c!-- DAYSOFWEEK START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.WEEK_DAYS">Week Days</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.dayOfWeekFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container flex class="md-block" ng-if="vm.dayOfWeekFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="dayOfWeekTo" ng-model="vm.dayOfWeekTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- DAYSOFWEEK END --\x3e\n\n \x3c!-- MONTHDAY START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTH_DAYS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthDayFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthDayFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthDayTo" ng-model="vm.monthDayTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTHDAY END --\x3e\n\n \x3c!-- MONTH START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTHS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n </md-select>\n\n </md-input-container>\n\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthTo" ng-model="vm.monthTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTH END --\x3e\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="!vm.newInterval && vm.crudPermissions.canEdit" ng-click="vm.saveInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid || intervalForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.newInterval && vm.crudPermissions.canEdit" ng-click="vm.addNewInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_INTERVAL" translate-attr-aria-label="TOOLS.ADD_INTERVAL">\n ADD INTERVAL\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/intervals/edit/intervals/dialog.html",'<md-dialog class="interval-dialog" aria-label="New Interval">\n <form name="intervalForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="" name="name" ng-model="vm.interval.name" ng-required="true" autofocus>\n\n <div ng-messages="intervalForm[\'name\'].$error" ng-show="intervalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newInterval" ng-click="vm.saveInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid || intervalForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newInterval" ng-click="vm.addNewInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_INTERVAL" translate-attr-aria-label="TOOLS.ADD_INTERVAL">\n ADD INTERVAL\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newInterval" ng-click="vm.deleteInterval($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/intervals/edit/view.html",'<div id="tools-interval" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-intervals-button md-icon-button" aria-label="Go to intervals" ng-click="vm.gotoIntervals()" translate translate-attr-aria-label="TOOLS.GO_TO_INTERVALS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="interval-image" hide-xs>\n <img ng-src="assets/images/business/intervals.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.interval.id}}\n <span ng-if="vm.interval.name">{{vm.interval.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="TOOLS.CREATED_AT"></span> <span>{{vm.interval.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveInterval()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (intervalsForm.$invalid)" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="TOOLS.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="interval-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="TOOLS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.interval.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.interval.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="TOOLS.INTERVALS">INTERVALS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="interval-detail-form-container intervals md-background-bg md-whiteframe-1dp">\n <div ng-controller="IntervalIntervalsController as vm_dc" ng-init="vm_dc.init(vm.interval, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedIntervalIntervals.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="TOOLS.INTERVALS">Intervals</span>\n <ms-search-bar on-search="vm_dc.getIntervalIntervals()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditIntervalInterval($event)" aria-label="add interval" translate translate-attr-label="TOOLS.ADD_INTERVAL">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedIntervalIntervals.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedIntervalIntervals.length}} {{vm_dc.selectedIntervalIntervals.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedIntervalIntervals" csv-label="true" filename="intervals.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedIntervalIntervals($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedIntervalIntervals" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getIntervalIntervals">\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column md-order-by="id">\n {{ \'TOOLS.ID\' | translate }}\n </th>\n <th md-column md-order-by="name">\n {{ \'TOOLS.NAME\' | translate }}\n </th>\n <th md-column md-order-by="interval">\n {{ \'TOOLS.INTERVAL\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'TOOLS.CREATED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body ng-sortable="vm_dc.sortableTable">\n <tr md-row md-select="interval" md-select-id="id" ng-repeat="interval in vm_dc.intervalIntervals.rows">\n <td md-cell>\n <md-icon md-font-icon="icon-drag-vertical" class="s16 handle"></md-icon>\n </td>\n <td ng-click="vm_dc.createOrEditIntervalInterval($event, interval)" md-cell>\n {{interval.id}}\n </td>\n <td ng-click="vm_dc.createOrEditIntervalInterval($event, interval)" md-cell>\n {{interval.name}}\n </td>\n <td ng-click="vm_dc.createOrEditIntervalInterval($event, interval)" md-cell>\n {{interval.interval}}\n </td>\n <td ng-click="vm_dc.createOrEditIntervalInterval($event, interval)" md-cell>\n {{ interval.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditIntervalInterval($event, interval)" translate="TOOLS.EDIT_INTERVAL">\n Edit Interval\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(interval, $event)" translate="TOOLS.DELETE_INTERVAL">\n Delete Interval\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.intervalIntervals.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="TOOLS.NO_INTERVALS_AVAILABLE">No intervals available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/tools/views/intervals/intervals.html",'<div id="intervals" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="TOOLS.INTERVALS">Intervals</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedIntervals.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedIntervals =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="TOOLS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-intervals-count">\n <span>{{vm.selectedIntervals.length}}</span>\n <span translate="TOOLS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TOOLS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllIntervals()" translate="TOOLS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectIntervals()" translate="TOOLS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedIntervals" csv-label="true" filename="intervals.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedIntervals($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- INTERVAL TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedIntervals" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getIntervals">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.intervals.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="interval" md-select-id="id" ng-repeat="interval in vm.intervals.rows">\n <td md-cell ng-if="interval.userpic"><img class="avatar" alt="{{interval.name}}" ng-src="api/users/{{interval.id}}/avatar" /></td>\n <td md-cell ng-if="!interval.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{interval.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(interval, ev) : vm.createOrEditInterval($event, interval)" md-cell class="id ">{{interval.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(interval, ev) : vm.createOrEditInterval($event, interval)" md-cell class="name ">{{interval.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(interval, ev) : vm.createOrEditInterval($event, interval)" md-cell class="description ">{{interval.description}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(interval, $event )" translate="TOOLS.EDIT_INTERVAL">\n Edit Interval\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(interval, $event )" translate="TOOLS.DELETE_INTERVAL">\n Delete Interval\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.intervals.count}}" md-on-paginate="vm.getIntervals" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / INTERVAL TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD INTERVAL BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-interval-button" ng-click="vm.createOrEditInterval($event)" aria-label="add interval" translate translate-attr-aria-label="TOOLS.ADD_INTERVAL">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD INTERVAL BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/pauses/create/dialog.html",'<md-dialog class="pause-dialog" aria-label="New Pause">\n <form name="pauseForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.pause.name" ng-required="true" autofocus>\n\n <div ng-messages="pauseForm[\'name\'].$error" ng-show="pauseForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.pause.description">\n\n <div ng-messages="pauseForm[\'description\'].$error" ng-show="pauseForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newPause" ng-click="vm.savePause()" class="send-button md-accent md-raised" ng-disabled="pauseForm.$invalid || pauseForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newPause" ng-click="vm.addNewPause()" class="send-button md-accent md-raised" ng-disabled="pauseForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_PAUSE" translate-attr-aria-label="TOOLS.ADD_PAUSE">\n ADD PAUSE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newPause" ng-click="vm.deletePause($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/pauses/pauses.html",'<div id="pauses" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="TOOLS.PAUSES">Pauses</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedPauses.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedPauses =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="TOOLS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-pauses-count">\n <span>{{vm.selectedPauses.length}}</span>\n <span translate="TOOLS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TOOLS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllPauses()" translate="TOOLS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectPauses()" translate="TOOLS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedPauses" csv-label="true" filename="pauses.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedPauses($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- PAUSE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedPauses" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getPauses">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.pauses.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="pause" md-select-id="id" ng-repeat="pause in vm.pauses.rows">\n <td md-cell ng-if="pause.userpic"><img class="avatar" alt="{{pause.name}}" ng-src="api/users/{{pause.id}}/avatar" /></td>\n <td md-cell ng-if="!pause.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{pause.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditPause($event, pause)" md-cell class="id ">{{pause.id}}</td>\n <td ng-click="vm.createOrEditPause($event, pause)" md-cell class="name ">{{pause.name}}</td>\n <td ng-click="vm.createOrEditPause($event, pause)" md-cell class="description ">{{pause.description}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(pause, $event )" translate="TOOLS.EDIT_PAUSE">\n Edit Pause\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(pause, $event )" translate="TOOLS.DELETE_PAUSE">\n Delete Pause\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.pauses.count}}" md-on-paginate="vm.getPauses" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / PAUSE TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD PAUSE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-pause-button" ng-click="vm.createOrEditPause($event)" aria-label="add pause" translate translate-attr-aria-label="TOOLS.ADD_PAUSE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD PAUSE BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/schedules/create/dialog.html",'<md-dialog class="schedule-dialog" aria-label="New Schedule">\n <form name="scheduleForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.schedule.name" ng-required="true" autofocus>\n\n <div ng-messages="scheduleForm[\'name\'].$error" ng-show="scheduleForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.REPORT">Report</label>\n <input type="search" name="report" ng-model="vm.schedule.report" ng-required="true" autocomplete="off" ng-click="vm.searchReport()">\n <md-icon md-font-icon="icon-magnify" ng-click="vm.searchReport()" aria-label="Search Report"></md-icon>\n <div ng-messages="scheduleForm[\'report\'].$error" ng-show="scheduleForm[\'report\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.REPORT_REQUIRED">Report field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.OUTPUT">Output</label>\n <md-select name="output" ng-model="vm.schedule.output" required>\n <md-option ng-value="\'csv\'">CSV</md-option>\n <md-option ng-value="\'pdf\'">PDF</md-option>\n <md-option ng-value="\'xlsx\'">Excel</md-option>\n </md-select>\n <div ng-messages="scheduleForm[\'output\'].$error" ng-show="scheduleForm[\'output\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.OUTPUT_REQUIRED">Output field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.schedule.active" aria-label="Active"><span translate="TOOLS.ACTIVE">Active</span></md-switch>\n </md-input-container>\n <div class="md-block">\n <label translate="TOOLS.VALIDITYSTART">ValidityStart</label>\n <md-content layout="row" class="md-padding">\n <div flex class="md-block">\n <mdp-date-picker mdp-open-on-click required name="startAtDate" mdp-placeholder="Date" mdp-format="YYYY-MM-DD" ng-model="vm.schedule.startAt" ng-init="vm.schedule.startAt = vm.getDateFromString(vm.schedule.startAt)">\n <div ng-messages="scheduleForm.dateRangeFrom.$error" ng-show="scheduleForm.dateRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DATE_REQUIRED">Date is required</span>\n </div>\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.DATE_INVALID">Date is invalid</span>\n </div>\n </div>\n </mdp-date-picker>\n </div>\n <div flex class="md-block">\n <mdp-time-picker mdp-open-on-click required name="startAtTime" mdp-placeholder="Time" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.schedule.startAt" ng-init="vm.schedule.startAt = vm.getDateFromString(vm.schedule.startAt)">\n <div ng-messages="scheduleForm.timeRangeFrom.$error" ng-show="scheduleForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_REQUIRED">Time is required</span>\n </div>\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_INVALID">Time is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </md-content>\n </div>\n <div class="md-block">\n <label translate="TOOLS.VALIDITYEND">ValidityEnd</label>\n <md-content layout="row" class="md-padding">\n <div flex class="md-block">\n <mdp-date-picker mdp-open-on-click required name="endAtDate" mdp-placeholder="Date" mdp-format="YYYY-MM-DD" ng-model="vm.schedule.endAt" ng-init="vm.schedule.endAt = vm.getDateFromString(vm.schedule.endAt)">\n <div ng-messages="scheduleForm.dateRangeFrom.$error" ng-show="scheduleForm.dateRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DATE_REQUIRED">Date is required</span>\n </div>\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.DATE_INVALID">Date is invalid</span>\n </div>\n </div>\n </mdp-date-picker>\n </div>\n <div flex class="md-block">\n <mdp-time-picker mdp-open-on-click required name="endAtTime" mdp-placeholder="Time" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.schedule.endAt" ng-init="vm.schedule.endAt = vm.getDateFromString(vm.schedule.endAt)">\n <div ng-messages="scheduleForm.timeRangeFrom.$error" ng-show="scheduleForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_REQUIRED">Time is required</span>\n </div>\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_INVALID">Time is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </md-content>\n </div>\n <div flex class="md-block">\n <label> {{ \'TOOLS.CRON\' | translate }} ({{vm.schedule.cron}})</label>\n <cron-selection name="cron" ng-model="vm.schedule.cron" template="assets/angular-cron-jobs/template.html" required></cron-selection>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.LAST">Last</label>\n <input type="number" name="subtractNumber" ng-model="vm.schedule.subtractNumber" value="1" ng-required="true">\n\n <div ng-messages="scheduleForm[\'subtractNumber\'].$error" ng-show="scheduleForm[\'subtractNumber\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.LAST_REQUIRED">Last field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.LASTUNIT">LastUnit</label>\n <md-select name="subtractUnit" ng-model="vm.schedule.subtractUnit" required>\n <md-option ng-value="\'minutes\'">Minutes</md-option>\n <md-option ng-value="\'hours\'">Hours</md-option>\n <md-option ng-value="\'days\'">Days</md-option>\n <md-option ng-value="\'weeks\'">Weeks</md-option>\n <md-option ng-value="\'months\'">Months</md-option>\n <md-option ng-value="\'quarters\'">Quarters</md-option>\n <md-option ng-value="\'years\'">Years</md-option>\n </md-select>\n <div ng-messages="scheduleForm[\'subtractUnit\'].$error" ng-show="scheduleForm[\'subtractUnit\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.LASTUNIT_REQUIRED">LastUnit field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.schedule.sendMail" aria-label="SendMail"><span translate="TOOLS.SENDMAIL">SendMail</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.schedule.sendMail" class="md-block">\n <label translate="TOOLS.MAILACCOUNT">MailAccount</label>\n <md-select name="MailAccountId" ng-model="vm.schedule.MailAccountId" required>\n <md-option ng-value="MailAccountId.id" ng-repeat="MailAccountId in vm.mailAccounts" ng-disabled="MailAccountId.canSelect === false">{{ MailAccountId.name }}</md-option>\n </md-select>\n <div ng-messages="scheduleForm[\'MailAccountId\'].$error" ng-show="scheduleForm[\'MailAccountId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.MAILACCOUNT_REQUIRED">MailAccount field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.schedule.sendMail" class="md-block">\n <label translate="TOOLS.EMAILADDRESS">EmailAddress</label>\n <input type="text" name="email" ng-model="vm.schedule.email" ng-required="true">\n\n <div class="hint"><span translate="TOOLS.HELP.EMAILADDRESS"></span></div>\n <div ng-messages="scheduleForm[\'email\'].$error" ng-show="scheduleForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.EMAILADDRESS_REQUIRED">EmailAddress field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.schedule.sendMail" class="md-block">\n <label translate="TOOLS.EMAILCCADDRESS">EmailCcAddress</label>\n <input type="text" name="cc" ng-model="vm.schedule.cc">\n\n <div class="hint"><span translate="TOOLS.HELP.EMAILCCADDRESS"></span></div>\n <div ng-messages="scheduleForm[\'cc\'].$error" ng-show="scheduleForm[\'cc\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.EMAILCCADDRESS_REQUIRED">EmailCcAddress field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.schedule.sendMail" class="md-block">\n <label translate="TOOLS.EMAILBCCADDRESS">EmailBccAddress</label>\n <input type="text" name="bcc" ng-model="vm.schedule.bcc">\n\n <div class="hint"><span translate="TOOLS.HELP.EMAILBCCADDRESS"></span></div>\n <div ng-messages="scheduleForm[\'bcc\'].$error" ng-show="scheduleForm[\'bcc\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.EMAILBCCADDRESS_REQUIRED">EmailBccAddress field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.schedule.sendMail" class="md-block">\n <md-switch ng-model="vm.schedule.sendIfEmpty" aria-label="SendIfEmpty"><span translate="TOOLS.SENDIFEMPTY">SendIfEmpty</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="" name="description" ng-model="vm.schedule.description">\n\n <div ng-messages="scheduleForm[\'description\'].$error" ng-show="scheduleForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newSchedule" ng-click="vm.saveSchedule()" class="send-button md-accent md-raised" ng-disabled="scheduleForm.$invalid || scheduleForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newSchedule" ng-click="vm.addNewSchedule()" class="send-button md-accent md-raised" ng-disabled="scheduleForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_SCHEDULE" translate-attr-aria-label="TOOLS.ADD_SCHEDULE">\n ADD SCHEDULE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newSchedule" ng-click="vm.deleteSchedule($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/schedules/partialViews/reports/treeReports.html",'<md-dialog class="report-selection-dialog" aria-label="Report Selection" flex="60">\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2>Select Report</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeReportDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content>\n <div class="content" md-background-bg layout="row" layout-align="start start">\n <div layout="column" flex="30">\n <md-card class="padding-10 scrollable" ms-scroll>\n <div js-tree="vm.treeConfig" tree-events-obj="vm.treeDefaultEvents" ng-model="vm.treeDefaultData" tree="vm.treeDefaultInstance"></div>\n </md-card>\n <md-card class="padding-10 scrollable" ms-scroll>\n <div js-tree="vm.treeConfig" tree-events-obj="vm.treeCustomEvents" ng-model="vm.treeCustomData" tree="vm.treeCustomInstance"></div>\n </md-card>\n </div>\n <md-card flex="70">\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="h2 secondary-text">{{vm.currentNode.text}}</span>\n <p ng-if="vm.currentPath">\n <span class="text-boxed">{{vm.currentPath}}</span>\n </p>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select ng-model="vm.selectedReport" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getReports">\n <tr md-row>\n <th md-column md-order-by="id" width="10px">{{ "ANALYTICS.ID" | translate }}</th>\n <th md-column md-order-by="name">{{ "ANALYTICS.NAME" | translate }}</th>\n <th md-column md-order-by="description">{{ "ANALYTICS.DESCRIPTION" | translate }}</th>\n <th md-column md-order-by="createdAt">{{ "ANALYTICS.CREATED_AT" | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.reports.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="ANALYTICS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="report" md-select-id="id" ng-repeat="report in vm.reports.rows">\n <td md-cell class="id">{{ report.id }}</td>\n <td md-cell class="name">{{ report.name }}</td>\n <td md-cell class="description">{{ report.description }}</td>\n <td md-cell class="createdAt">{{ report.createdAt | date: "medium" }}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{ \'ANALYTICS.PAGE\' | translate }}:\', rowsPerPage: \'{{ \'ANALYTICS.ROWSPERPAGE\' | translate }}:\', of: \'{{ \'ANALYTICS.OF\' | translate }}\'}" md-limit="vm.query.limit" md-limit-options="[10]" md-page="vm.query.page" md-total="{{ vm.reports.count }}" md-on-paginate="vm.getReports" md-page-select></md-table-pagination>\n </md-card>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row">\n <span flex></span>\n <md-button class="md-raised" ng-click="vm.closeReportDialog()">CANCEL</md-button>\n <md-button class="md-accent md-raised" ng-click="vm.selectReport()">CONFIRM</md-button>\n </md-dialog-actions>\n</md-dialog>'),e.put("app/main/apps/tools/views/schedules/schedules.html",'<div id="schedules" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="TOOLS.SCHEDULER">Scheduler</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedScheduler.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedScheduler =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="TOOLS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-schedules-count">\n <span>{{vm.selectedScheduler.length}}</span>\n <span translate="TOOLS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TOOLS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllScheduler()" translate="TOOLS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectScheduler()" translate="TOOLS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedScheduler" csv-label="true" filename="schedules.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedScheduler($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- SCHEDULE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedScheduler" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getScheduler">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n <th md-column md-order-by="active">{{ \'TOOLS.ACTIVE\' | translate }}</th>\n <th md-column md-order-by="startAt">{{ \'TOOLS.VALIDITYSTART\' | translate }}</th>\n <th md-column md-order-by="endAt">{{ \'TOOLS.VALIDITYEND\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.schedules.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="schedule" md-select-id="id" ng-repeat="schedule in vm.schedules.rows">\n <td md-cell ng-if="schedule.userpic"><img class="avatar" alt="{{schedule.name}}" ng-src="api/users/{{schedule.id}}/avatar" /></td>\n <td md-cell ng-if="!schedule.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{schedule.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditSchedule($event, schedule)" md-cell class="id ">{{schedule.id}}</td>\n <td ng-click="vm.createOrEditSchedule($event, schedule)" md-cell class="name ">{{schedule.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(schedule, ev) : vm.createOrEditSchedule($event, schedule)" md-cell class="active ">\n <md-icon md-colors="{color: {{schedule.active ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{schedule.active ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.createOrEditSchedule($event, schedule)" md-cell class="startAt ">{{schedule.startAt | date:\'medium\' }}</td>\n <td ng-click="vm.createOrEditSchedule($event, schedule)" md-cell class="endAt ">{{schedule.endAt | date:\'medium\' }}</td>\n <td ng-click="vm.createOrEditSchedule($event, schedule)" md-cell class="description ">{{schedule.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(schedule, $event )" translate="TOOLS.EDIT_SCHEDULE">\n Edit Schedule\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.runconfirm(schedule, $event )" translate="TOOLS.RUN_SCHEDULE">\n Run Schedule\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(schedule, $event )" translate="TOOLS.DELETE_SCHEDULE">\n Delete Schedule\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.schedules.count}}" md-on-paginate="vm.getScheduler" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / SCHEDULE TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD SCHEDULE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-schedule-button" ng-click="vm.createOrEditSchedule($event)" aria-label="add schedule" translate translate-attr-aria-label="TOOLS.ADD_SCHEDULE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD SCHEDULE BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/sounds/create/dialog.html",'<md-dialog class="sound-dialog" aria-label="New Sound">\n <form name="soundForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.sound.name" ng-required="true" autofocus>\n\n <div ng-messages="soundForm[\'name\'].$error" ng-show="soundForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.sound.description">\n\n <div ng-messages="soundForm[\'description\'].$error" ng-show="soundForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newSound" ng-click="vm.saveSound()" class="send-button md-accent md-raised" ng-disabled="soundForm.$invalid || soundForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newSound" ng-click="vm.addNewSound()" class="send-button md-accent md-raised" ng-disabled="soundForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_SOUND" translate-attr-aria-label="TOOLS.ADD_SOUND">\n ADD SOUND\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newSound" ng-click="vm.deleteSound($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/sounds/sounds.html",'<div id="sounds" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="TOOLS.SOUNDS">Sounds</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedSounds.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedSounds =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="TOOLS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-sounds-count">\n <span>{{vm.selectedSounds.length}}</span>\n <span translate="TOOLS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TOOLS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllSounds()" translate="TOOLS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectSounds()" translate="TOOLS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedSounds" csv-label="true" filename="sounds.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedSounds($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- SOUND TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedSounds" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getSounds">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n <th md-column md-order-by="audio">{{ \'TOOLS.AUDIO\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.sounds.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="sound" md-select-id="id" ng-repeat="sound in vm.sounds.rows">\n <td md-cell ng-if="sound.userpic"><img class="avatar" alt="{{sound.name}}" ng-src="api/users/{{sound.id}}/avatar" /></td>\n <td md-cell ng-if="!sound.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{sound.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditSound($event, sound)" md-cell class="id ">{{sound.id}}</td>\n <td ng-click="vm.createOrEditSound($event, sound)" md-cell class="name ">{{sound.name}}</td>\n <td md-cell class="audio ">\n \x3c!-- audio recording directive --\x3e\n <ms-recording id="sound.id" model="\'sound\'"></ms-recording>\n \x3c!-- / audio recording directive --\x3e\n </td>\n <td ng-click="vm.createOrEditSound($event, sound)" md-cell class="description ">{{sound.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(sound, $event )" translate="TOOLS.EDIT_SOUND">\n Edit Sound\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.downloadfile2(sound, $event , \'sounds\' )" translate="TOOLS.DOWNLOAD_SOUND">\n Download Sound\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(sound, $event )" translate="TOOLS.DELETE_SOUND">\n Delete Sound\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.sounds.count}}" md-on-paginate="vm.getSounds" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / SOUND TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- UPLOAD SOUND BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="upload-sound-button" ng-click="vm.uploadSound($event)" aria-label="upload sound" translate translate-attr-aria-label="TOOLS.UPLOAD_SOUND">\n <md-icon md-font-icon="icon-upload"></md-icon>\n </md-button>\n \x3c!-- / UPLOAD SOUND BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/sounds/upload/dialog.html",'<md-dialog class="upload-dialog" aria-label="Upload ">\n <form name="uploadForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <div id="sound-uploader" ng-hide="vm.uploadState == \'uploading\'" flow-init="vm.ngFlowOptions" flow-name="vm.ngFlow.flow" flow-files-submitted="vm.upload()" flow-file-added="vm.fileAdded($file)" flow-file-success="vm.fileSuccess($file, $message)" flow-error="vm.uploadError($file, $message)" flow-complete="vm.uploadComplete()" flow-drop flow-drag-enter="vm.dropping=true" flow-drag-leave="vm.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n <div class="drop-text hint-text" layout="row" layout-align="center center">\n <span translate="TOOLS.DROP_TO_UPLOAD">Drop to upload</span>\n </div>\n\n <div class="upload-button" layout="column" layout-align="center center">\n <md-button class="md-accent md-raised" flow-btn>\n Upload\n </md-button>\n <span class="secondary-text mt-8" translate="TOOLS.DROP_TO_UPLOAD_MESSAGE">You can also drop your file here to upload.</span>\n </div>\n </div>\n\n <div layout="column" layout-align="space-between center" ng-show="vm.uploadState == \'uploading\'">\n <div>\n <span translate="TOOLS.UPLOADING">Uploading</span>\n <span>{{vm.sound.file.name}}</span>\n </div>\n <md-progress-linear md-mode="indeterminate"></md-progress-linear>\n </div>\n\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center"></div>\n <div layout="row">\n <md-button ng-click="vm.closeDialog()" ng-hide="vm.uploadState == \'uploading\'" class="md-accent md-raised" aria-label="FINISH" translate="TOOLS.FINISH" translate-attr-aria-label="TOOLS.FINISH">\n FINISH\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/tags/create/dialog.html",'<md-dialog class="tag-dialog" aria-label="New Tag">\n <form name="tagForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.tag.name" ng-required="true" autofocus>\n\n <div ng-messages="tagForm[\'name\'].$error" ng-show="tagForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.tag.description">\n\n <div ng-messages="tagForm[\'description\'].$error" ng-show="tagForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <div flex md-color-picker ng-model="vm.tag.color" label="{{\'TOOLS.COLOR\' | translate}}" md-color-hex="true" md-color-rgb="false" md-color-hsl="false" md-color-history="false" md-color-material-palette="false" md-color-alpha-channel="false" open-on-input="true"></div>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newTag" ng-click="vm.saveTag()" class="send-button md-accent md-raised" ng-disabled="tagForm.$invalid || tagForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newTag" ng-click="vm.addNewTag()" class="send-button md-accent md-raised" ng-disabled="tagForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_TAG" translate-attr-aria-label="TOOLS.ADD_TAG">\n ADD TAG\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newTag" ng-click="vm.deleteTag($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/tags/tags.html",'<div id="tags" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="TOOLS.TAGS">Tags</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedTags.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedTags =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="TOOLS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-tags-count">\n <span>{{vm.selectedTags.length}}</span>\n <span translate="TOOLS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TOOLS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllTags()" translate="TOOLS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectTags()" translate="TOOLS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedTags" csv-label="true" filename="tags.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedTags($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- TAG TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedTags" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTags">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n <th md-column md-order-by="color">{{ \'TOOLS.COLOR\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.tags.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="tag" md-select-id="id" ng-repeat="tag in vm.tags.rows">\n <td md-cell ng-if="tag.userpic"><img class="avatar" alt="{{tag.name}}" ng-src="api/users/{{tag.id}}/avatar" /></td>\n <td md-cell ng-if="!tag.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{tag.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditTag($event, tag)" md-cell class="id ">{{tag.id}}</td>\n <td ng-click="vm.createOrEditTag($event, tag)" md-cell class="name ">{{tag.name}}</td>\n <td ng-click="vm.createOrEditTag($event, tag)" md-cell class="description ">{{tag.description}}</td>\n <td ng-click="vm.createOrEditTag($event, tag)" md-cell class="color ">{{tag.color}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(tag, $event )" translate="TOOLS.EDIT_TAG">\n Edit Tag\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(tag, $event )" translate="TOOLS.DELETE_TAG">\n Delete Tag\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.tags.count}}" md-on-paginate="vm.getTags" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / TAG TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD TAG BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-tag-button" ng-click="vm.createOrEditTag($event)" aria-label="add tag" translate translate-attr-aria-label="TOOLS.ADD_TAG">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD TAG BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/templates/create/dialog.html",'<md-dialog class="template-dialog" aria-label="New Template">\n <form name="templateForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.template.name" ng-required="true" autofocus>\n\n <div ng-messages="templateForm[\'name\'].$error" ng-show="templateForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="TOOLS.CONTENT">Content</label>\n <textarea aria-label="Content html" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', removePlugins: \'magicline\' }" ng-model="vm.template.html"></textarea>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.template.description">\n\n <div ng-messages="templateForm[\'description\'].$error" ng-show="templateForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newTemplate" ng-click="vm.saveTemplate()" class="send-button md-accent md-raised" ng-disabled="templateForm.$invalid || templateForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newTemplate" ng-click="vm.addNewTemplate()" class="send-button md-accent md-raised" ng-disabled="templateForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_TEMPLATE" translate-attr-aria-label="TOOLS.ADD_TEMPLATE">\n ADD TEMPLATE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newTemplate" ng-click="vm.deleteTemplate($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/templates/templates.html",'<div id="templates" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="TOOLS.TEMPLATES">Templates</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedTemplates.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedTemplates =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="TOOLS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-templates-count">\n <span>{{vm.selectedTemplates.length}}</span>\n <span translate="TOOLS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TOOLS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllTemplates()" translate="TOOLS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectTemplates()" translate="TOOLS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedTemplates" csv-label="true" filename="templates.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedTemplates($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- TEMPLATE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedTemplates" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTemplates">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.templates.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="template" md-select-id="id" ng-repeat="template in vm.templates.rows">\n <td md-cell ng-if="template.userpic"><img class="avatar" alt="{{template.name}}" ng-src="api/users/{{template.id}}/avatar" /></td>\n <td md-cell ng-if="!template.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{template.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditTemplate($event, template)" md-cell class="id ">{{template.id}}</td>\n <td ng-click="vm.createOrEditTemplate($event, template)" md-cell class="name ">{{template.name}}</td>\n <td ng-click="vm.createOrEditTemplate($event, template)" md-cell class="description ">{{template.description}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(template, $event )" translate="TOOLS.EDIT_TEMPLATE">\n Edit Template\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(template, $event )" translate="TOOLS.DELETE_TEMPLATE">\n Delete Template\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.templates.count}}" md-on-paginate="vm.getTemplates" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / TEMPLATE TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD TEMPLATE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-template-button" ng-click="vm.createOrEditTemplate($event)" aria-label="add template" translate translate-attr-aria-label="TOOLS.ADD_TEMPLATE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD TEMPLATE BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/triggers/create/dialog.html",'<md-dialog class="trigger-dialog" aria-label="New Trigger">\n <form name="triggerForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.newTrigger ? \'TOOLS.NEW_TRIGGER\' : \'TOOLS.EDIT_TRIGGER\' | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.trigger.name" required md-autofocus>\n <div ng-messages="triggerForm[\'name\'].$error" ng-show="triggerForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.CHANNEL">Channel</label>\n <md-select name="channel" ng-model="vm.trigger.channel" required ng-disabled="!vm.newTrigger">\n <md-option ng-value="\'voice\'"> {{ \'TOOLS.VOICE\' | translate }} </md-option>\n <md-option ng-value="\'openchannel\'" ng-if="vm.license.openchannel"> {{ \'TOOLS.OPENCHANNEL\' | translate }}\n </md-option>\n <md-option ng-value="\'chat\'" ng-if="vm.license.chat"> {{ \'TOOLS.CHAT\' | translate }} </md-option>\n <md-option ng-value="\'mail\'" ng-if="vm.license.mail"> {{ \'TOOLS.MAIL\' | translate }} </md-option>\n <md-option ng-value="\'sms\'" ng-if="vm.license.messaging"> {{ \'TOOLS.SMS\' | translate }} </md-option>\n <md-option ng-value="\'fax\'" ng-if="vm.license.fax"> {{ \'TOOLS.FAX\' | translate }} </md-option>\n <md-option ng-value="\'whatsapp\'" ng-if="vm.license.whatsapp"> {{ \'TOOLS.WHATSAPP\' | translate }} </md-option>\n </md-select>\n <div ng-messages="triggerForm[\'channel\'].$error" ng-show="triggerForm[\'channel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.trigger.status" aria-label="Status"><span translate="TOOLS.STATUS">Status</span>\n </md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.trigger.description">\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{ error.message }}</span>\n <span class="type">({{ error.type }})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newTrigger" ng-click="vm.saveTrigger()" class="send-button md-accent md-raised" ng-disabled="triggerForm.$invalid || triggerForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newTrigger" ng-click="vm.addNewTrigger()" class="send-button md-accent md-raised" ng-disabled="triggerForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_TRIGGER" translate-attr-aria-label="TOOLS.ADD_TRIGGER">\n ADD TRIGGER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newTrigger" ng-click="vm.deleteTrigger($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/triggers/edit/actions/actions.html",'<div ng-controller="TriggerActionsController as vm_dc" ng-init="vm_dc.onInit(vm.trigger, vm.crudPermissions)">\r\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedTriggerActions.length">\r\n <div class="md-toolbar-tools">\r\n <span class="md-subhead" translate="TOOLS.ACTIONS">Actions</span>\r\n <ms-search-bar on-search="vm_dc.getTriggerActions()" query="vm_dc.query" debounce="300" direction="down">\r\n </ms-search-bar>\r\n <div flex></div>\r\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditTriggerAction($event)" aria-label="add action" translate translate-attr-label="TOOLS.ADD_ACTION">\r\n <md-icon md-font-icon="icon-plus"></md-icon>\r\n </md-button>\r\n </div>\r\n </md-toolbar>\r\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedTriggerActions.length">\r\n <div class="md-toolbar-tools">\r\n <span class="md-subhead">{{ vm_dc.selectedTriggerActions.length }}\r\n {{ vm_dc.selectedTriggerActions.length > 1 ? \'items\' : \'item\' }} selected</span>\r\n <div flex></div>\r\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedTriggerActions" csv-label="true" filename="triggers.csv">\r\n <md-icon md-font-icon="icon-file-excel"></md-icon>\r\n </button>\r\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedTriggerActions($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\r\n <md-icon md-font-icon="icon-delete"></md-icon>\r\n </md-button>\r\n </div>\r\n </md-toolbar>\r\n <md-table-container class="font-size-12">\r\n <table md-table md-row-select multiple ng-model="vm_dc.selectedTriggerActions" md-progress="vm_dc.promise">\r\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getTriggerActions">\r\n <tr md-row>\r\n <th md-column md-order-by="id">\r\n {{ \'TOOLS.ID\' | translate }}\r\n </th>\r\n <th md-column md-order-by="action">\r\n {{ \'TOOLS.ACTION\' | translate }}\r\n </th>\r\n <th md-column md-order-by="data1">\r\n {{ \'TOOLS.TYPE\' | translate }}\r\n </th>\r\n <th md-column md-order-by="data2">\r\n {{ \'TOOLS.INFO\' | translate }}\r\n </th>\r\n <th md-column md-order-by="createdAt">\r\n {{ \'TOOLS.CREATED_AT\' | translate }}\r\n </th>\r\n <th md-column width="10px"></th>\r\n </tr>\r\n </thead>\r\n <tbody md-body>\r\n <tr md-row md-select="action" md-select-id="id" ng-repeat="action in vm_dc.triggerActions.rows">\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" md-cell>\r\n {{ action.id }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" md-cell>\r\n {{ \'TOOLS.\' + (action.action | snakecase | uppercase) | translate }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'browser\'" md-cell>\r\n {{ action.data1 === \'1\' ? \'CTI URL\' : \'Popup\' }} </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'contactManager\'" md-cell>\r\n {{ (vm_dc.lists | filter : {\'id\':(action.data1 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'contactManager\'" md-cell>\r\n {{ action.data2 === \'1\' ? \'TOOLS.YES\' : \'TOOLS.NO\' | uppercase | translate }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'urlForward\'" md-cell>\r\n {{ action.data1 }} </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="!action.data1" md-cell>\r\n {{ action.data1 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="!action.data2" md-cell>\r\n {{ action.data2 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'urlForward\'" md-cell>\r\n {{ action.data2 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'script\' && action.data2" md-cell>\r\n {{ action.data2 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'script\' && action.data1" md-cell>\r\n {{ action.data1 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'jscripty\'" md-cell>\r\n {{ (vm_dc.projects | filter : {\'id\':(action.data1 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\'" md-cell>\r\n {{ vm_dc.integrationTypes[action.data1] }} </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'zendesk\'" md-cell>\r\n {{ (vm_dc.zendeskAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'desk\'" md-cell>\r\n {{ (vm_dc.deskAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'zoho\'" md-cell>\r\n {{ (vm_dc.zohoAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'salesforce\'" md-cell>\r\n {{ (vm_dc.salesforceAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'sugarcrm\'" md-cell>\r\n {{ (vm_dc.sugarcrmAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'freshdesk\'" md-cell>\r\n {{ (vm_dc.freshdeskAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'vtiger\'" md-cell>\r\n {{ (vm_dc.vtigerAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'dynamics365\'" md-cell>\r\n {{ (vm_dc.dynamics365Accounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'servicenow\'" md-cell>\r\n {{ (vm_dc.servicenowAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'freshsales\'" md-cell>\r\n {{ (vm_dc.freshsalesAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'motionbar\'" md-cell>\r\n {{ vm_dc.motionBarOptions[action.data1] }} </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'motionbar\' && action.data1 === \'1\'" md-cell>\r\n {{ action.data2 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'motionbar\' && action.data1 === \'2\'" md-cell>\r\n {{ action.data2 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'motionbar\' && action.data1 === \'0\'" md-cell>\r\n {{ (vm_dc.templates | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'browser\' && action.data1 === \'0\'" md-cell>\r\n {{ (vm_dc.templates | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'browser\' && action.data1 === \'1\'" md-cell>\r\n {{ action.data2 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" md-cell>\r\n {{ action.createdAt | formatdate }}\r\n </td>\r\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\r\n <md-menu>\r\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\r\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\r\n </md-button>\r\n <md-menu-content width="3">\r\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\r\n <md-button ng-click="vm_dc.createOrEditTriggerAction($event, action)" translate="TOOLS.EDIT_ACTION">\r\n Edit Action\r\n </md-button>\r\n </md-menu-item>\r\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\r\n <md-button ng-click="vm_dc.deleteConfirm(action, $event)" translate="TOOLS.DELETE_ACTION">\r\n Delete Action\r\n </md-button>\r\n </md-menu-item>\r\n </md-menu-content>\r\n </md-menu>\r\n </td>\r\n </tr>\r\n <tr md-row ng-if="!vm_dc.triggerActions.rows.length">\r\n <td md-cell colspan="5">\r\n <div layout="row" layout-align="center center">\r\n <span class="text-boxed-light" translate="TOOLS.NO_ACTION_AVAILABLE">No action\r\n available</span>\r\n </div>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </md-table-container>\r\n <md-table-pagination md-label="{page: \'{{ \'TOOLS.PAGE\' | translate }}:\', rowsPerPage: \'{{ \'TOOLS.ROWSPERPAGE\' | translate }}:\', of: \'{{ \'TOOLS.OF\' | translate }}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{ vm_dc.triggerActions.count }}" md-on-paginate="vm_dc.getTriggerActions" md-page-select>\r\n </md-table-pagination>\r\n</div>'),e.put("app/main/apps/tools/views/triggers/edit/actions/create/dialog.html",'<md-dialog class="action-dialog" aria-label="New Action">\n <form name="actionForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.newAction ? \'TOOLS.NEW_ACTION\' : \'TOOLS.EDIT_ACTION\' | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <md-input-container class="md-block">\n <label translate="TOOLS.ACTION">Action</label>\n <md-select name="action" ng-model="vm.action.action" ng-init="vm.onActionInit()" ng-change="vm.onActionSelection()" md-autofocus required ng-disabled="!vm.newAction">\n <md-option ng-value="\'contactManager\'" ng-if="vm.trigger.channel == \'voice\'">\n {{ \'TOOLS.CONTACT_MANAGER\' | translate }} </md-option>\n <md-option ng-value="\'integration\'" ng-if="vm.trigger.channel == \'voice\' && ((vm.newAction && vm.hasIntegrationsPermissions) || !vm.newAction)">\n {{ \'TOOLS.INTEGRATIONS\' | translate }} </md-option>\n <md-option ng-value="\'motionbar\'"> {{ \'TOOLS.MOTIONBAR\' | translate }} </md-option>\n <md-option ng-value="\'jscripty\'"> {{ \'TOOLS.JSCRIPTY\' | translate }} </md-option>\n <md-option ng-value="\'urlForward\'"> {{ \'TOOLS.URL_FORWARD\' | translate }} </md-option>\n <md-option ng-value="\'browser\'"> {{ \'TOOLS.BROWSER\' | translate }} </md-option>\n <md-option ng-value="\'bot\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.BOT\' | translate }} </md-option>\n <md-option ng-value="\'script\'"> {{ \'TOOLS.SCRIPT\' | translate }} </md-option>\n </md-select>\n <div ng-messages="actionForm[\'action\'].$error" ng-show="actionForm[\'action\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.ACTION_REQUIRED">Action field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'jscripty\'" class="md-block">\n <label translate="TOOLS.PROJECT">Project</label>\n <md-select name="data1" ng-model="vm.action.data1" required>\n <md-option ng-value="\'\'+data1.id" ng-repeat="data1 in vm.projects" ng-disabled="data1.canSelect === false">\n {{ data1.name }}</md-option>\n </md-select>\n <div ng-messages="actionForm[\'data1\'].$error" ng-show="actionForm[\'data1\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.PROJECT_REQUIRED">Project field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'browser\'" class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select name="data1" ng-model="vm.action.data1" ng-change="vm.onTypeSelection()" required>\n <md-option ng-value="\'0\'">Popup</md-option>\n <md-option ng-value="\'1\'">CTI URL</md-option>\n </md-select>\n <div ng-messages="actionForm[\'data1\'].$error" ng-show="actionForm[\'data1\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'contactManager\'" class="md-block">\n <label translate="TOOLS.LIST">List</label>\n <md-select name="data1" ng-model="vm.action.data1" ng-change="vm.onListSelection()" required>\n <md-option ng-value="\'\'+data1.id" ng-repeat="data1 in vm.lists" ng-disabled="data1.canSelect === false">\n {{ data1.name }}</md-option>\n </md-select>\n <div ng-messages="actionForm[\'data1\'].$error" ng-show="actionForm[\'data1\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'contactManager\'" class="md-block">\n <label translate="TOOLS.SEARCH_FIELDS">Search fields</label>\n <md-select name="fields" ng-model="vm.action.data3" ng-init="vm.onSearchFieldsInit()" multiple required>\n <md-optgroup label="{{ \'TOOLS.STANDARD\' | translate }}">\n <md-option ng-value="field.columnName" ng-repeat="field in vm.contactFields">\n {{ field.displayName }}</md-option>\n </md-optgroup>\n <md-optgroup label="{{ \'TOOLS.LIST\' | translate }}" ng-if="vm.listFields.length > 0">\n <md-option ng-value="field.columnName" ng-repeat="field in vm.listFields">\n {{ field.name }}</md-option>\n </md-optgroup>\n <md-optgroup label="{{ \'TOOLS.GLOBALS\' | translate }}" ng-if="vm.customFields.length > 0">\n <md-option ng-value="field.columnName" ng-repeat="field in vm.customFields">\n {{ field.displayName }}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="actionForm[\'data3\'].$error" ng-show="actionForm[\'data3\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.SEARCH_FIELDS_REQUIRED">Search fields field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'contactManager\'" class="md-block">\n <label translate="TOOLS.AUTOCREATECONTACT">Create contact automatically</label>\n <md-select name="data2" ng-model="vm.action.data2" ng-change="vm.onAutocreateSelection()" required>\n <md-option ng-value="\'1\'"> {{ \'TOOLS.YES\' | translate }} </md-option>\n <md-option ng-value="\'0\'"> {{ \'TOOLS.NO\' | translate }} </md-option>\n </md-select>\n <div ng-messages="actionForm[\'data2\'].$error" ng-show="actionForm[\'data2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.AUTOCREATECONTACT_REQUIRED">AutoCreateContact field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'contactManager\' && vm.action.data2 === \'1\'" class="md-block">\n <label translate="TOOLS.AUTOCREATE_FIELD">Autocreate field</label>\n <md-select name="autocreateField" ng-model="vm.action.data4" ng-required="vm.action.data2 === \'1\'">\n <md-optgroup label="{{ \'TOOLS.STANDARD\' | translate }}">\n <md-option ng-value="field.columnName" ng-repeat="field in vm.contactFields">\n {{ field.displayName }}</md-option>\n </md-optgroup>\n <md-optgroup label="{{ \'TOOLS.LIST\' | translate }}" ng-if="vm.listFields.length > 0">\n <md-option ng-value="field.columnName" ng-repeat="field in vm.listFields">\n {{ field.name }}</md-option>\n </md-optgroup>\n <md-optgroup label="{{ \'TOOLS.GLOBALS\' | translate }}" ng-if="vm.customFields.length > 0">\n <md-option ng-value="field.columnName" ng-repeat="field in vm.customFields">\n {{ field.displayName }}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="actionForm[\'data4\'].$error" ng-show="actionForm[\'data4\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.AUTOCREATE_FIELD_REQUIRED">Autocreate field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'contactManager\'" class="md-block">\n <label translate="TOOLS.IGNOREDIALERCONTACTID">Ignore dialer contact Id</label>\n <md-select name="data5" ng-model="vm.action.data5" required>\n <md-option ng-value="\'1\'"> {{ \'TOOLS.YES\' | translate }} </md-option>\n <md-option ng-value="\'0\'"> {{ \'TOOLS.NO\' | translate }} </md-option>\n </md-select>\n <div ng-messages="actionForm[\'data5\'].$error" ng-show="actionForm[\'data5\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.IGNOREDIALERCONTACTID_REQUIRED">Ignore dialer contact Id field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'urlForward\'" class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select name="data1" ng-model="vm.action.data1" required>\n <md-option ng-value="\'GET\'">GET</md-option>\n <md-option ng-value="\'POST\'">POST</md-option>\n <md-option ng-value="\'PUT\'">PUT</md-option>\n <md-option ng-value="\'DELETE\'">DELETE</md-option>\n </md-select>\n <div ng-messages="actionForm[\'data1\'].$error" ng-show="actionForm[\'data1\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'urlForward\'" class="md-block">\n <label translate="TOOLS.URL">Url</label>\n <input type="url" name="data2" ng-model="vm.action.data2" ng-required="true">\n <div ng-messages="actionForm[\'data2\'].$error" ng-show="actionForm[\'data2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.URL_REQUIRED">Url field is required</span>\n </div>\n <div ng-message="url">\n <span translate="TOOLS.ERRORS.URL_MUST_VALID_URL">Url must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'urlForward\'" class="md-block">\n <label translate="TOOLS.TIMEOUT">Timeout</label>\n <input type="number" name="data5" ng-model="vm.action.data5" min="1" max="10" ng-required="true">\n <div class="hint"><span translate="TOOLS.HELP.TIMEOUT"></span></div>\n <div ng-messages="actionForm[\'data5\'].$error" ng-show="actionForm[\'data5\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="TOOLS.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or\n equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="TOOLS.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or\n equal than</span> <span>10</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'urlForward\'" class="md-block">\n <label translate="TOOLS.HEADERS">Headers</label>\n <textarea name="data6" ng-model="vm.action.data6"></textarea>\n <div class="hint"><span translate="TOOLS.HELP.HEADERS"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'urlForward\' && (vm.action.data1 == \'POST\' || vm.action.data1 == \'PUT\')" class="md-block">\n <label translate="TOOLS.BODY">Body</label>\n <textarea name="data7" ng-model="vm.action.data7"></textarea>\n <div class="hint"><span translate="TOOLS.HELP.BODY"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'script\'" class="md-block">\n <label translate="TOOLS.SCRIPT_TYPE">Script_Type</label>\n <input type="input" name="data2" ng-model="vm.action.data2">\n <div class="hint"><span translate="TOOLS.HELP.SCRIPT_TYPE"></span></div>\n <div ng-messages="actionForm[\'data2\'].$error" ng-show="actionForm[\'data2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.SCRIPT_TYPE_REQUIRED">Script_Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'script\'" class="md-block">\n <label translate="TOOLS.SCRIPT_INFO">Script_Info</label>\n <input type="input" name="data1" ng-model="vm.action.data1">\n <div class="hint"><span translate="TOOLS.HELP.SCRIPT_INFO"></span></div>\n <div ng-messages="actionForm[\'data1\'].$error" ng-show="actionForm[\'data1\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.SCRIPT_INFO_REQUIRED">Script_Info field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'script\'" class="md-block">\n <label translate="TOOLS.SCRIPT">Script</label>\n <textarea name="data3" ng-model="vm.action.data3" required></textarea>\n <div class="hint"><span translate="TOOLS.HELP.SCRIPT"></span></div>\n <div ng-messages="actionForm[\'data3\'].$error" ng-show="actionForm[\'data3\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.SCRIPT_REQUIRED">Script field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'integration\'" class="md-block">\n <label translate="TOOLS.INTEGRATION">Integration</label>\n <md-select name="data1" ng-model="vm.action.data1" ng-init="vm.onIntegrationInit()" ng-change="vm.onIntegrationSelection()" required>\n <md-option ng-value="\'desk\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1306]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1306])">Desk</md-option>\n <md-option ng-value="\'dynamics365\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1309]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1309])">Dynamics365</md-option>\n <md-option ng-value="\'freshdesk\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1303]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1303])">Freshdesk</md-option>\n <md-option ng-value="\'freshsales\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1304]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1304])">Freshsales</md-option>\n <md-option ng-value="\'salesforce\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1302]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1302])">Salesforce</md-option>\n <md-option ng-value="\'servicenow\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1310]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1310])">ServiceNow</md-option>\n <md-option ng-value="\'sugarcrm\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1305]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1305])">SugarCRM</md-option>\n <md-option ng-value="\'vtiger\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1308]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1308])">vTiger</md-option>\n <md-option ng-value="\'zendesk\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1301]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1301])">Zendesk</md-option>\n <md-option ng-value="\'zoho\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1307]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1307])">Zoho</md-option>\n </md-select>\n <div ng-messages="actionForm[\'data1\'].$error" ng-show="actionForm[\'data1\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.INTEGRATION_REQUIRED">Integration field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'integration\' && vm.action.data1" class="md-block">\n <label translate="TOOLS.ACCOUNT">Account</label>\n <md-select name="data2" ng-model="vm.action.data2" ng-change="vm.onIntegrationAccountSelection()" ng-disabled="vm.action.isIntegrationDisabled" required>\n <md-option ng-value="\'\'+data2.id" ng-repeat="data2 in vm.accounts">{{ data2.name }}</md-option>\n </md-select>\n <div ng-messages="actionForm[\'data2\'].$error" ng-show="actionForm[\'data2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.ACCOUNT_REQUIRED">Account field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'integration\' && vm.action.data1 && vm.action.data2" class="md-block">\n <label translate="TOOLS.CONFIGURATION">Configuration</label>\n <md-select name="data3" ng-model="vm.action.data3" required ng-disabled="vm.action.isIntegrationDisabled">\n <md-option ng-value="\'\'+data3.id" ng-repeat="data3 in vm.configurations | filter : { AccountId: (vm.action.data2 | toInteger) } : true">{{\n data3.name }}</md-option>\n </md-select>\n <div ng-messages="actionForm[\'data3\'].$error" ng-show="actionForm[\'data3\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.CONFIGURATION_REQUIRED">Configuration field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'motionbar\'" class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select name="data1" ng-model="vm.action.data1" ng-change="vm.onTypeSelection()" required>\n <md-option ng-value="\'0\'">Popup</md-option>\n <md-option ng-value="\'1\'">CTI URL</md-option>\n <md-option ng-value="\'2\'">Windows App</md-option>\n </md-select>\n <div ng-messages="actionForm[\'data1\'].$error" ng-show="actionForm[\'data1\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'motionbar\' && vm.action.data1 == \'1\'" class="md-block">\n <label translate="TOOLS.URL">Url</label>\n <input type="url" name="data2" ng-model="vm.action.data2" ng-required="true">\n <div ng-messages="actionForm[\'data2\'].$error" ng-show="actionForm[\'data2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.URL_REQUIRED">Url field is required</span>\n </div>\n <div ng-message="url">\n <span translate="TOOLS.ERRORS.URL_MUST_VALID_URL">Url must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'motionbar\' && vm.action.data1 == \'2\'" class="md-block">\n <label translate="TOOLS.APPLICATION">Application</label>\n <input type="text" name="data2" ng-model="vm.action.data2" ng-required="true">\n <div ng-messages="actionForm[\'data2\'].$error" ng-show="actionForm[\'data2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.APPLICATION_REQUIRED">Application field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'motionbar\' && vm.action.data1 == \'2\'" class="md-block">\n <label translate="TOOLS.ARGUMENTS">Arguments</label>\n <input type="text" name="data3" ng-model="vm.action.data3">\n <div ng-messages="actionForm[\'data3\'].$error" ng-show="actionForm[\'data3\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.ARGUMENTS_REQUIRED">Arguments field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'motionbar\' && vm.action.data1 == \'0\'" class="md-block">\n <label translate="TOOLS.TEMPLATE">Template</label>\n <md-select name="data2" ng-model="vm.action.data2" required>\n <md-option ng-value="\'\'+data2.id" ng-repeat="data2 in vm.templates" ng-disabled="data2.canSelect === false">\n {{ data2.name }}</md-option>\n </md-select>\n <div ng-messages="actionForm[\'data2\'].$error" ng-show="actionForm[\'data2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TEMPLATE_REQUIRED">Template field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'browser\' && vm.action.data1 == \'0\'" class="md-block">\n <label translate="TOOLS.TEMPLATE">Template</label>\n <md-select name="data2" ng-model="vm.action.data2" required>\n <md-option ng-value="\'\'+data2.id" ng-repeat="data2 in vm.templates" ng-disabled="data2.canSelect === false">\n {{ data2.name }}</md-option>\n </md-select>\n <div ng-messages="actionForm[\'data2\'].$error" ng-show="actionForm[\'data2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TEMPLATE_REQUIRED">Template field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'browser\' && vm.action.data1 == \'1\'" class="md-block">\n <label translate="TOOLS.URL">Url</label>\n <input type="url" name="data2" ng-model="vm.action.data2" ng-required="true">\n <div ng-messages="actionForm[\'data2\'].$error" ng-show="actionForm[\'data2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.URL_REQUIRED">Url field is required</span>\n </div>\n <div ng-message="url">\n <span translate="TOOLS.ERRORS.URL_MUST_VALID_URL">Url must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.action.action == \'motionbar\' || vm.action.action == \'browser\') && vm.action.data1 == \'1\'" class="md-block">\n <label translate="TOOLS.EVENTVARIABLES">EventVariables</label>\n <md-select name="data3" ng-model="vm.action.data3" required>\n <md-option ng-value="\'1\'"> {{ \'TOOLS.YES\' | translate }} </md-option>\n <md-option ng-value="\'0\'"> {{ \'TOOLS.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.EVENTVARIABLES"></span></div>\n <div ng-messages="actionForm[\'data3\'].$error" ng-show="actionForm[\'data3\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.EVENTVARIABLES_REQUIRED">EventVariables field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'browser\' && vm.action.data1 == \'1\'" class="md-block">\n <label translate="TOOLS.LOCATION">Location</label>\n <md-select name="data4" ng-model="vm.action.data4" required ng-change="vm.onActionLocationChange()">\n <md-option ng-value="0"> {{ \'TOOLS.NEW_TAB\' | translate }} </md-option>\n <md-option ng-value="1"> {{ \'TOOLS.NEW_WINDOW\' | translate }} </md-option>\n <md-option ng-value="2"> {{ \'TOOLS.MOTION_TAB\' | translate }} </md-option>\n </md-select>\n <div ng-messages="actionForm[\'data4\'].$error" ng-show="actionForm[\'data4\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.LOCATION_REQUIRED">Location field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'browser\' && vm.action.data4 == \'1\'" class="md-block">\n <label translate="TOOLS.WINDOWWIDTH">WindowWidth</label>\n <input type="text" name="data5" ng-model="vm.action.data5">\n <div ng-messages="actionForm[\'data5\'].$error" ng-show="actionForm[\'data5\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.WINDOWWIDTH_REQUIRED">WindowWidth field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'browser\' && vm.action.data4 == \'1\'" class="md-block">\n <label translate="TOOLS.WINDOWHEIGHT">WindowHeight</label>\n <input type="text" name="data6" ng-model="vm.action.data6">\n <div ng-messages="actionForm[\'data6\'].$error" ng-show="actionForm[\'data6\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.WINDOWHEIGHT_REQUIRED">WindowHeight field is required</span>\n </div>\n </div>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newAction" ng-click="vm.saveAction()" class="send-button md-accent md-raised" ng-disabled="actionForm.$invalid || actionForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newAction" ng-click="vm.addNewAction()" class="send-button md-accent md-raised" ng-disabled="actionForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_ACTION" translate-attr-aria-label="TOOLS.ADD_ACTION">\n ADD ACTION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newAction" ng-click="vm.deleteAction($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/triggers/edit/allconditions/allconditions.html",'<div ng-controller="TriggerAllConditionsController as vm_dc" ng-init="vm_dc.onInit(vm.trigger, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedAllConditions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="TOOLS.ALLCONDITIONS">All Conditions</span>\n <ms-search-bar on-search="vm_dc.getAllConditions()" query="vm_dc.query" debounce="300" direction="down">\n </ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditAllCondition($event)" aria-label="add allCondition" translate translate-attr-label="TOOLS.ADD_ALLCONDITION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedAllConditions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{ vm_dc.selectedAllConditions.length }}\n {{ vm_dc.selectedAllConditions.length > 1 ? \'items\' : \'item\' }} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedAllConditions" csv-label="true" filename="triggers.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedAllConditions($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedAllConditions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getAllConditions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'TOOLS.ID\' | translate }}\n </th>\n <th md-column md-order-by="field">\n {{ \'TOOLS.FIELD\' | translate }}\n </th>\n <th md-column md-order-by="operator">\n {{ \'TOOLS.OPERATOR\' | translate }}\n </th>\n <th md-column md-order-by="value">\n {{ \'TOOLS.VALUE\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'TOOLS.CREATED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="allCondition" md-select-id="id" ng-repeat="allCondition in vm_dc.allConditions.rows">\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" md-cell>\n {{ allCondition.id }}\n </td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" md-cell>\n {{ \'TOOLS.\' + vm_dc.fields[allCondition.field] | uppercase | translate }}\n </td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" md-cell>\n {{ \'TOOLS.\' + allCondition.operator | uppercase | translate }}\n </td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="!allCondition.value" md-cell>\n {{ allCondition.value }}\n </td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'chat\' && allCondition.field == \'account\'" md-cell>\n {{ (vm_dc.chatWebsites | filter : {\'id\':(allCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'mail\' && allCondition.field == \'account\'" md-cell>\n {{ (vm_dc.mailAccounts | filter : {\'id\':(allCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'sms\' && allCondition.field == \'account\'" md-cell>\n {{ (vm_dc.smsAccounts | filter : {\'id\':(allCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'whatsapp\' && allCondition.field == \'account\'" md-cell>\n {{ (vm_dc.whatsappAccounts | filter : {\'id\': (allCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'fax\' && allCondition.field == \'account\'" md-cell>\n {{ (vm_dc.faxAccounts | filter : {\'id\': (allCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'openchannel\' && allCondition.field == \'account\'" md-cell>\n {{ (vm_dc.openchannelAccounts | filter : {\'id\': (allCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'voice\' && allCondition.field == \'queue\'" md-cell>\n {{ (vm_dc.queues | filter : {\'name\':allCondition.value} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'voice\' && allCondition.field == \'routeId\'" md-cell>\n {{ (vm_dc.outboundRoutes | filter : {\'id\':(allCondition.value | toInteger)} : true)[0].exten }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'voice\' && allCondition.field == \'agent\'" md-cell>\n {{ (vm_dc.agents | filter : {\'name\':allCondition.value} : true)[0].fullname }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'voice\' && allCondition.field == \'lastevent\'" md-cell>\n {{ vm_dc.callStatuses[allCondition.value] }} </td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel != \'voice\' && allCondition.field == \'interaction\'" md-cell>\n {{ allCondition.value | capitalize }} </td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel != \'voice\' && allCondition.field == \'message\'" md-cell>\n {{ vm_dc.messageStatuses[allCondition.value] }} </td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" md-cell>\n {{ allCondition.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" translate="TOOLS.EDIT_ALLCONDITION">\n Edit AllCondition\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(allCondition, $event)" translate="TOOLS.DELETE_ALLCONDITION">\n Delete AllCondition\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.allConditions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="TOOLS.NO_ALLCONDITION_AVAILABLE">No condition\n available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{ \'TOOLS.PAGE\' | translate }}:\', rowsPerPage: \'{{ \'TOOLS.ROWSPERPAGE\' | translate }}:\', of: \'{{ \'TOOLS.OF\' | translate }}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{ vm_dc.allConditions.count }}" md-on-paginate="vm_dc.getAllConditions" md-page-select>\n </md-table-pagination>\n</div>'),e.put("app/main/apps/tools/views/triggers/edit/allconditions/create/dialog.html",'<md-dialog class="allCondition-dialog" aria-label="New AllCondition">\n <form name="allConditionForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.newAllCondition ? \'TOOLS.NEW_ALLCONDITION\' : \'TOOLS.EDIT_ALLCONDITION\' | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <md-input-container class="md-block">\n <label translate="TOOLS.FIELD">Field</label>\n <md-select name="field" ng-model="vm.allCondition.field" ng-change="vm.onFieldSelection()" md-autofocus required>\n <md-option ng-value="\'queue\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.QUEUE\' | translate }}\n </md-option>\n <md-option ng-value="\'lastevent\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.CALL_STATUS\' | translate }}\n </md-option>\n <md-option ng-value="\'routeId\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.OUTBOUNDROUTE\' | translate }}\n </md-option>\n <md-option ng-value="\'agent\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.AGENT\' | translate }}\n </md-option>\n <md-option ng-value="\'account\'" ng-if="vm.trigger.channel != \'voice\'"> {{ \'TOOLS.ACCOUNT\' | translate }}\n </md-option>\n <md-option ng-value="\'interaction\'" ng-if="vm.trigger.channel != \'voice\'">\n {{ \'TOOLS.INTERACTION\' | translate }} </md-option>\n <md-option ng-value="\'message\'" ng-if="vm.trigger.channel != \'voice\'"> {{ \'TOOLS.MESSAGE\' | translate }}\n </md-option>\n </md-select>\n <div ng-messages="allConditionForm[\'field\'].$error" ng-show="allConditionForm[\'field\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.FIELD_REQUIRED">Field field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.OPERATOR">Operator</label>\n <md-select name="operator" ng-model="vm.allCondition.operator" required>\n <md-option ng-value="\'equals\'"> {{ \'TOOLS.EQUALS\' | translate }} </md-option>\n <md-option ng-value="\'not_equals\'"> {{ \'TOOLS.NOT_EQUALS\' | translate }} </md-option>\n </md-select>\n <div ng-messages="allConditionForm[\'operator\'].$error" ng-show="allConditionForm[\'operator\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.OPERATOR_REQUIRED">Operator field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.allCondition.field == \'account\'" class="md-block">\n <label translate="TOOLS.ACCOUNT">Account</label>\n <md-select name="value" ng-model="vm.allCondition.value" required>\n <md-option ng-value="value.id.toString()" ng-repeat="value in vm.accounts" ng-disabled="value.canSelect === false">\n {{ value.name }}</md-option>\n </md-select>\n <div ng-messages="allConditionForm[\'value\'].$error" ng-show="allConditionForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.ACCOUNT_REQUIRED">Account field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.allCondition.field == \'queue\' && vm.trigger.channel == \'voice\'" class="md-block">\n <label translate="TOOLS.QUEUE">Queue</label>\n <md-select name="value" ng-model="vm.allCondition.value" required>\n <md-option ng-value="value.name" ng-repeat="value in vm.queues" ng-disabled="value.canSelect === false">\n {{ value.name }}</md-option>\n </md-select>\n <div ng-messages="allConditionForm[\'value\'].$error" ng-show="allConditionForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.allCondition.field == \'routeId\' && vm.trigger.channel == \'voice\'" class="md-block">\n <label translate="TOOLS.OUTBOUNDROUTE">OutboundRoute</label>\n <md-select name="value" ng-model="vm.allCondition.value" required>\n <md-option ng-value="value.id.toString()" ng-repeat="value in vm.outboundRoutes" ng-disabled="value.canSelect === false">\n {{ value.exten }}</md-option>\n </md-select>\n <div ng-messages="allConditionForm[\'value\'].$error" ng-show="allConditionForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.OUTBOUNDROUTE_REQUIRED">OutboundRoute field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.allCondition.field == \'agent\' && vm.trigger.channel == \'voice\'" class="md-block">\n <label translate="TOOLS.AGENT">Agent</label>\n <md-select name="value" ng-model="vm.allCondition.value" required>\n <md-option ng-value="value.name" ng-repeat="value in vm.agents" ng-disabled="value.canSelect === false">\n {{ value.fullname }}</md-option>\n </md-select>\n <div ng-messages="allConditionForm[\'value\'].$error" ng-show="allConditionForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.allCondition.field == \'lastevent\'" class="md-block">\n <label translate="TOOLS.VALUE">Value</label>\n <md-select name="value" ng-model="vm.allCondition.value" required>\n <md-option ng-value="status.value" ng-repeat="status in vm.callStatuses">\n {{ status.name }}</md-option>\n </md-select>\n <div ng-messages="allConditionForm[\'value\'].$error" ng-show="allConditionForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container ng-if="vm.allCondition.field == \'interaction\' && vm.trigger.channel != \'voice\'" class="md-block">\n <label translate="TOOLS.VALUE">Value</label>\n <md-select name="value" ng-model="vm.allCondition.value" required>\n <md-option ng-value="\'opened\'">Opened</md-option>\n <md-option ng-value="\'closed\'">Closed</md-option>\n <md-option ng-if="vm.trigger.channel==\'mail\'" ng-value="\'substatus\'">SubStatus</md-option>\n </md-select>\n <div ng-messages="allConditionForm[\'value\'].$error" ng-show="allConditionForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.allCondition.field == \'message\' && vm.trigger.channel != \'voice\'" class="md-block">\n <label translate="TOOLS.VALUE">Value</label>\n <md-select name="value" ng-model="vm.allCondition.value" required>\n <md-option ng-value="\'in\'">Incoming</md-option>\n <md-option ng-value="\'out\'">Outgoing</md-option>\n <md-option ng-value="\'accept\'">Accepted</md-option>\n <md-option ng-value="\'reject\'">Rejected</md-option>\n </md-select>\n <div ng-messages="allConditionForm[\'value\'].$error" ng-show="allConditionForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newAllCondition" ng-click="vm.saveAllCondition()" class="send-button md-accent md-raised" ng-disabled="allConditionForm.$invalid || allConditionForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newAllCondition" ng-click="vm.addNewAllCondition()" class="send-button md-accent md-raised" ng-disabled="allConditionForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_ALLCONDITION" translate-attr-aria-label="TOOLS.ADD_ALLCONDITION">\n ADD ALLCONDITION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newAllCondition" ng-click="vm.deleteAllCondition($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/triggers/edit/anyconditions/anyconditions.html",'<div ng-controller="TriggerAnyConditionsController as vm_dc" ng-init="vm_dc.onInit(vm.trigger, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedAnyConditions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="TOOLS.ANYCONDITIONS">AnyConditions</span>\n <ms-search-bar on-search="vm_dc.getAnyConditions()" query="vm_dc.query" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditAnyCondition($event)" aria-label="add anyCondition" translate translate-attr-label="TOOLS.ADD_ANYCONDITION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedAnyConditions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{ vm_dc.selectedAnyConditions.length }}\n {{ vm_dc.selectedAnyConditions.length > 1 ? \'items\' : \'item\' }} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedAnyConditions" csv-label="true" filename="triggers.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedAnyConditions($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedAnyConditions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getAnyConditions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'TOOLS.ID\' | translate }}\n </th>\n <th md-column md-order-by="field">\n {{ \'TOOLS.FIELD\' | translate }}\n </th>\n <th md-column md-order-by="operator">\n {{ \'TOOLS.OPERATOR\' | translate }}\n </th>\n <th md-column md-order-by="value">\n {{ \'TOOLS.VALUE\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'TOOLS.CREATED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="anyCondition" md-select-id="id" ng-repeat="anyCondition in vm_dc.anyConditions.rows">\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" md-cell>\n {{ anyCondition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" md-cell>\n {{ \'TOOLS.\' + vm_dc.fields[anyCondition.field] | uppercase | translate }}\n </td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" md-cell>\n {{ \'TOOLS.\' + anyCondition.operator | uppercase | translate }}\n </td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="!anyCondition.value" md-cell>\n {{ anyCondition.value }}\n </td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'chat\' && anyCondition.field == \'account\'" md-cell>\n {{ (vm_dc.chatWebsites | filter : {\'id\': (anyCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'mail\' && anyCondition.field == \'account\'" md-cell>\n {{ (vm_dc.mailAccounts | filter : {\'id\':(anyCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'sms\' && anyCondition.field == \'account\'" md-cell>\n {{ (vm_dc.smsAccounts | filter : {\'id\': (anyCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, allCondition)" ng-if="vm.trigger.channel == \'whatsapp\' && anyCondition.field == \'account\'" md-cell>\n {{ (vm_dc.whatsappAccounts | filter : {\'id\':(anyCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'fax\' && anyCondition.field == \'account\'" md-cell>\n {{ (vm_dc.faxAccounts | filter : {\'id\': (anyCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'openchannel\' && anyCondition.field == \'account\'" md-cell>\n {{ (vm_dc.openchannelAccounts | filter : {\'id\': (anyCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'voice\' && anyCondition.field == \'queue\'" md-cell>\n {{ (vm_dc.queues | filter : {\'name\':anyCondition.value} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'voice\' && anyCondition.field == \'routeId\'" md-cell>\n {{ (vm_dc.outboundRoutes | filter : {\'id\': (anyCondition.value | toInteger)} : true)[0].exten }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'voice\' && anyCondition.field == \'agent\'" md-cell>\n {{ (vm_dc.agents | filter : {\'name\':anyCondition.value} : true)[0].fullname }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'voice\' && anyCondition.field == \'lastevent\'" md-cell>\n {{ vm_dc.callStatuses[anyCondition.value] }} </td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel != \'voice\' && anyCondition.field == \'interaction\'" md-cell>\n {{ anyCondition.value | capitalize }} </td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel != \'voice\' && anyCondition.field == \'message\'" md-cell>\n {{ vm_dc.messageStatuses[anyCondition.value] }} </td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" md-cell>\n {{ anyCondition.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" translate="TOOLS.EDIT_ANYCONDITION">\n Edit AnyCondition\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(anyCondition, $event)" translate="TOOLS.DELETE_ANYCONDITION">\n Delete AnyCondition\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.anyConditions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="TOOLS.NO_ANYCONDITION_AVAILABLE">No anycondition\n available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{ \'TOOLS.PAGE\' | translate }}:\', rowsPerPage: \'{{ \'TOOLS.ROWSPERPAGE\' | translate }}:\', of: \'{{ \'TOOLS.OF\' | translate }}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{ vm_dc.anyConditions.count }}" md-on-paginate="vm_dc.getAnyConditions" md-page-select>\n </md-table-pagination>\n</div>'),e.put("app/main/apps/tools/views/triggers/edit/anyconditions/create/dialog.html",'<md-dialog class="anyCondition-dialog" aria-label="New AnyCondition">\n <form name="anyConditionForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.newAnyCondition ? \'TOOLS.NEW_ANYCONDITION\' : \'TOOLS.EDIT_ANYCONDITION\' | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <md-input-container class="md-block">\n <label translate="TOOLS.FIELD">Field</label>\n <md-select name="field" ng-model="vm.anyCondition.field" ng-change="vm.onFieldSelection()" md-autofocus required>\n <md-option ng-value="\'queue\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.QUEUE\' | translate }}\n </md-option>\n <md-option ng-value="\'lastevent\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.CALL_STATUS\' | translate }}\n </md-option>\n <md-option ng-value="\'routeId\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.OUTBOUNDROUTE\' | translate }}\n </md-option>\n <md-option ng-value="\'agent\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.AGENT\' | translate }}\n </md-option>\n <md-option ng-value="\'account\'" ng-if="vm.trigger.channel != \'voice\'"> {{ \'TOOLS.ACCOUNT\' | translate }}\n </md-option>\n <md-option ng-value="\'interaction\'" ng-if="vm.trigger.channel != \'voice\'">\n {{ \'TOOLS.INTERACTION\' | translate }} </md-option>\n <md-option ng-value="\'message\'" ng-if="vm.trigger.channel != \'voice\'"> {{ \'TOOLS.MESSAGE\' | translate }}\n </md-option>\n </md-select>\n <div ng-messages="anyConditionForm[\'field\'].$error" ng-show="anyConditionForm[\'field\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.FIELD_REQUIRED">Field field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.OPERATOR">Operator</label>\n <md-select name="operator" ng-model="vm.anyCondition.operator" required>\n <md-option ng-value="\'equals\'"> {{ \'TOOLS.EQUALS\' | translate }} </md-option>\n <md-option ng-value="\'not_equals\'"> {{ \'TOOLS.NOT_EQUALS\' | translate }} </md-option>\n </md-select>\n <div ng-messages="anyConditionForm[\'operator\'].$error" ng-show="anyConditionForm[\'operator\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.OPERATOR_REQUIRED">Operator field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.anyCondition.field == \'account\'" class="md-block">\n <label translate="TOOLS.ACCOUNT">Account</label>\n <md-select name="value" ng-model="vm.anyCondition.value" required>\n <md-option ng-value="value.id.toString()" ng-repeat="value in vm.accounts" ng-disabled="value.canSelect === false">\n {{ value.name }}</md-option>\n </md-select>\n <div ng-messages="anyConditionForm[\'value\'].$error" ng-show="anyConditionForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.ACCOUNT_REQUIRED">Account field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.anyCondition.field == \'queue\' && vm.trigger.channel == \'voice\'" class="md-block">\n <label translate="TOOLS.QUEUE">Queue</label>\n <md-select name="value" ng-model="vm.anyCondition.value" required>\n <md-option ng-value="value.name" ng-repeat="value in vm.queues" ng-disabled="value.canSelect === false">\n {{ value.name }}</md-option>\n </md-select>\n <div ng-messages="anyConditionForm[\'value\'].$error" ng-show="anyConditionForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.anyCondition.field == \'routeId\' && vm.trigger.channel == \'voice\'" class="md-block">\n <label translate="TOOLS.OUTBOUNDROUTE">OutboundRoute</label>\n <md-select name="value" ng-model="vm.anyCondition.value" required>\n <md-option ng-value="value.id.toString()" ng-repeat="value in vm.outboundRoutes" ng-disabled="value.canSelect === false">\n {{ value.exten }}</md-option>\n </md-select>\n <div ng-messages="anyConditionForm[\'value\'].$error" ng-show="anyConditionForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.OUTBOUNDROUTE_REQUIRED">OutboundRoute field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.anyCondition.field == \'agent\' && vm.trigger.channel == \'voice\'" class="md-block">\n <label translate="TOOLS.AGENT">Agent</label>\n <md-select name="value" ng-model="vm.anyCondition.value" required>\n <md-option ng-value="value.name" ng-repeat="value in vm.agents" ng-disabled="value.canSelect === false">\n {{ value.fullname }}</md-option>\n </md-select>\n <div ng-messages="anyConditionForm[\'value\'].$error" ng-show="anyConditionForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.anyCondition.field == \'lastevent\'" class="md-block">\n <label translate="TOOLS.VALUE">Value</label>\n <md-select name="value" ng-model="vm.anyCondition.value" required>\n <md-option ng-value="status.value" ng-repeat="status in vm.callStatuses">\n {{ status.name }}</md-option>\n </md-select>\n <div ng-messages="anyConditionForm[\'value\'].$error" ng-show="anyConditionForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.anyCondition.field == \'interaction\' && vm.trigger.channel != \'voice\'" class="md-block">\n <label translate="TOOLS.VALUE">Value</label>\n <md-select name="value" ng-model="vm.anyCondition.value" required>\n <md-option ng-value="\'opened\'">Opened</md-option>\n <md-option ng-value="\'closed\'">Closed</md-option>\n <md-option ng-if="vm.trigger.channel==\'mail\'" ng-value="\'substatus\'">SubStatus</md-option>\n </md-select>\n <div ng-messages="anyConditionForm[\'value\'].$error" ng-show="anyConditionForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.anyCondition.field == \'message\' && vm.trigger.channel != \'voice\'" class="md-block">\n <label translate="TOOLS.VALUE">Value</label>\n <md-select name="value" ng-model="vm.anyCondition.value" required>\n <md-option ng-value="\'in\'">Incoming</md-option>\n <md-option ng-value="\'out\'">Outgoing</md-option>\n <md-option ng-value="\'accept\'">Accepted</md-option>\n <md-option ng-value="\'reject\'">Rejected</md-option>\n </md-select>\n <div ng-messages="anyConditionForm[\'value\'].$error" ng-show="anyConditionForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newAnyCondition" ng-click="vm.saveAnyCondition()" class="send-button md-accent md-raised" ng-disabled="anyConditionForm.$invalid || anyConditionForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newAnyCondition" ng-click="vm.addNewAnyCondition()" class="send-button md-accent md-raised" ng-disabled="anyConditionForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_ANYCONDITION" translate-attr-aria-label="TOOLS.ADD_ANYCONDITION">\n ADD ANYCONDITION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newAnyCondition" ng-click="vm.deleteAnyCondition($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/triggers/edit/view.html",'<div id="tools-trigger" class="page-layout simple tabbed" layout="column">\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-triggers-button md-icon-button" aria-label="Go to triggers" ng-click="vm.gotoTriggers()" translate translate-attr-aria-label="TOOLS.GO_TO_TRIGGERS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n <div layout="row" layout-align="start center">\n <div class="trigger-image" hide-xs>\n <img ng-src="assets/images/business/triggers.jpg">\n </div>\n <div layout="column" layout-align="start start">\n <div class="h2">#{{ vm.trigger.id }}\n <span ng-if="vm.trigger.name">{{ vm.trigger.name }}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="TOOLS.CREATED_AT"></span> <span>{{ vm.trigger.createdAt | date:\'medium\' }}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveTrigger()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (allconditionsForm.$invalid) || (anyconditionsForm.$invalid) || (actionsForm.$invalid)" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="TOOLS.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="trigger-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="TOOLS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.trigger.name" required autofocus ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.CHANNEL">Channel</label>\n <md-select name="channel" ng-model="vm.trigger.channel" required disabled>\n <md-option ng-value="\'voice\'"> {{ \'TOOLS.VOICE\' | translate }} </md-option>\n <md-option ng-value="\'openchannel\'" ng-if="vm.license.openchannel">\n {{ \'TOOLS.OPENCHANNEL\' | translate }} </md-option>\n <md-option ng-value="\'chat\'" ng-if="vm.license.chat"> {{ \'TOOLS.CHAT\' | translate }} </md-option>\n <md-option ng-value="\'mail\'" ng-if="vm.license.mail"> {{ \'TOOLS.MAIL\' | translate }} </md-option>\n <md-option ng-value="\'sms\'" ng-if="vm.license.messaging"> {{ \'TOOLS.SMS\' | translate }} </md-option>\n <md-option ng-value="\'fax\'" ng-if="vm.license.fax"> {{ \'TOOLS.FAX\' | translate }} </md-option>\n <md-option ng-value="\'whatsapp\'" ng-if="vm.license.whatsapp"> {{ \'TOOLS.WHATSAPP\' | translate }}\n </md-option>\n </md-select>\n <div ng-messages="generalForm[\'channel\'].$error" ng-show="generalForm[\'channel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.trigger.status" aria-label="Status" ng-disabled="!vm.crudPermissions.canEdit">\n <span translate="TOOLS.STATUS">Status</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.trigger.description" ng-disabled="!vm.crudPermissions.canEdit">\n </md-input-container>\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="TOOLS.CONDITIONS&ACTIONS">CONDITIONS&ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="trigger-detail-form-container allconditions md-background-bg md-whiteframe-1dp" ng-include="\'app/main/apps/tools/views/triggers/edit/allconditions/allconditions.html\'">\n </div>\n <div class="trigger-detail-form-container anyconditions md-background-bg md-whiteframe-1dp" ng-include="\'app/main/apps/tools/views/triggers/edit/anyconditions/anyconditions.html\'">\n </div>\n <div class="trigger-detail-form-container actions md-background-bg md-whiteframe-1dp" ng-include="\'app/main/apps/tools/views/triggers/edit/actions/actions.html\'">\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n </div>\n \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/tools/views/triggers/triggers.html",'<div id="triggers" class="page-layout simple left-sidenav inner-sidenav">\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="TOOLS.TRIGGERS">Triggers</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedTriggers.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n <div class="close-button-wrapper" ng-click="vm.selectedTriggers =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="TOOLS.BACK">Back</span>\n </md-button>\n </div>\n <div flex layout="row" layout-align="space-between center">\n <div>\n <span class="selected-triggers-count">\n <span>{{ vm.selectedTriggers.length }}</span>\n <span translate="TOOLS.SELECTED">Selected</span>\n </span>\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TOOLS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllTriggers()" translate="TOOLS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectTriggers()" translate="TOOLS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedTriggers" csv-label="true" filename="triggers.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedTriggers($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n \x3c!-- TRIGGER TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedTriggers" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTriggers">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n <th md-column md-order-by="channel">{{ \'TOOLS.CHANNEL\' | translate }}</th>\n <th md-column md-order-by="status">{{ \'TOOLS.STATUS\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.triggers.rows.length">\n <td md-cell colspan="6">\n <div layout="row" layout-align="center center">\n <span translate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="trigger" md-select-id="id" ng-repeat="trigger in vm.triggers.rows">\n <td ng-click="vm.createOrEditTrigger($event, trigger)" md-cell class="id ">{{ trigger.id }}</td>\n <td ng-click="vm.createOrEditTrigger($event, trigger)" md-cell class="name ">{{ trigger.name }}</td>\n <td ng-click="vm.createOrEditTrigger($event, trigger)" md-cell class="channel ">\n {{ \'TOOLS.\' + trigger.channel | uppercase | translate }}</td>\n <td ng-click="vm.createOrEditTrigger($event, trigger)" md-cell class="status ">\n <md-icon md-colors="{color: {{ trigger.status ? \'\\\'green\\\'\' : \'\\\'grey\\\'\' }}}" md-font-icon="{{ trigger.status ? \'icon-check\' : \'icon-close\' }}"></md-icon>\n </td>\n <td ng-click="vm.createOrEditTrigger($event, trigger)" md-cell class="description ">\n {{ trigger.description }}</td>\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.goToEditState(trigger)" translate="TOOLS.EDIT_TRIGGER">\n Edit Trigger\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteconfirm(trigger, $event)" translate="TOOLS.DELETE_TRIGGER">\n Delete Trigger\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{ \'TOOLS.PAGE\' | translate }}:\', rowsPerPage: \'{{ \'TOOLS.ROWSPERPAGE\' | translate }}:\', of: \'{{ \'TOOLS.OF\' | translate }}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{ vm.triggers.count }}" md-on-paginate="vm.getTriggers" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / TRIGGER TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n </div>\n \x3c!-- / CONTENT --\x3e\n \x3c!-- ADD TRIGGER BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-trigger-button" ng-click="vm.createOrEditTrigger($event)" aria-label="add trigger" translate translate-attr-aria-label="TOOLS.ADD_TRIGGER">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD TRIGGER BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/trunks/create/dialog.html",'<md-dialog class="trunk-dialog" aria-label="New Trunk">\n <form name="trunkForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.trunk.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newTrunk">\n\n <div class="hint"><span translate="TOOLS.HELP.NAME"></span></div>\n <div ng-messages="trunkForm[\'name\'].$error" ng-show="trunkForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="TOOLS.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.trunk.active" aria-label="active"><span translate="TOOLS.ACTIVE">active</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.HOST">host</label>\n <input type="text" name="host" ng-model="vm.trunk.host" ng-required="true">\n\n <div class="hint"><span translate="TOOLS.HELP.HOST"></span></div>\n <div ng-messages="trunkForm[\'host\'].$error" ng-show="trunkForm[\'host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.HOST_REQUIRED">host field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.SECRET">secret</label>\n <input type="password" name="secret" ng-model="vm.trunk.secret" placeholder="Password" translate translate-attr-placeholder="TOOLS.PASSWORD">\n <div class="hint"><span translate="TOOLS.HELP.SECRET"></span></div>\n <div ng-messages="trunkForm[\'secret\'].$error" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="TOOLS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="TOOLS.DEFAULTUSER">defaultuser</label>\n <input type="text" name="defaultuser" ng-model="vm.trunk.defaultuser">\n\n <div class="hint"><span translate="TOOLS.HELP.DEFAULTUSER"></span></div>\n <div ng-messages="trunkForm[\'defaultuser\'].$error" ng-show="trunkForm[\'defaultuser\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DEFAULTUSER_REQUIRED">defaultuser field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.REGISTRY">registry</label>\n <input type="text" name="registry" ng-model="vm.trunk.registry">\n\n <div class="hint"><span translate="TOOLS.HELP.REGISTRY"></span></div>\n <div ng-messages="trunkForm[\'registry\'].$error" ng-show="trunkForm[\'registry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.REGISTRY_REQUIRED">registry field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.trunk.description">\n\n <div ng-messages="trunkForm[\'description\'].$error" ng-show="trunkForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newTrunk" ng-click="vm.saveTrunk()" class="send-button md-accent md-raised" ng-disabled="trunkForm.$invalid || trunkForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newTrunk" ng-click="vm.addNewTrunk()" class="send-button md-accent md-raised" ng-disabled="trunkForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_TRUNK" translate-attr-aria-label="TOOLS.ADD_TRUNK">\n ADD TRUNK\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newTrunk" ng-click="vm.deleteTrunk($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/trunks/edit/clone/clone.html",'<md-dialog class="trunk-dialog" aria-label="Clone Trunk">\n <form name="trunkForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.trunk.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newTrunk">\n\n <div class="hint"><span translate="TOOLS.HELP.NAME"></span></div>\n <div ng-messages="trunkForm[\'name\'].$error" ng-show="trunkForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="TOOLS.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.trunk.active" aria-label="active"><span translate="TOOLS.ACTIVE">active</span></md-switch>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <md-button type="submit" ng-click="vm.cloneTrunk()" class="send-button md-accent md-raised" ng-disabled="trunkForm.$invalid" aria-label="CLONE" translate="TOOLS.CLONE_TRUNK" translate-attr-aria-label="TOOLS.CLONE_TRUNK">\n CLONE TRUNK\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/trunks/edit/view.html",'<div id="tools-trunk" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-trunks-button md-icon-button" aria-label="Go to trunks" ng-click="vm.gotoTrunks()" translate translate-attr-aria-label="TOOLS.GO_TO_TRUNKS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="trunk-image" hide-xs>\n <img ng-src="assets/images/business/trunks.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.trunk.id}}\n <span ng-if="vm.trunk.name">{{vm.trunk.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="TOOLS.CREATED_AT"></span> <span>{{vm.trunk.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.gotogoto(vm.trunk, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n <md-tooltip><span translate="TOOLS.GOTO_TRUNK"></span></md-tooltip>\n <md-icon md-font-icon="icon-cast"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.clonedialog(vm.trunk, $event)" class="md-fab md-green-500-bg md-icon-button" aria-label="clone">\n <md-tooltip><span translate="TOOLS.CLONE_TRUNK"></span></md-tooltip>\n <md-icon md-font-icon="icon-content-duplicate"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveTrunk()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (advancedForm.$invalid) || (otherFieldsForm.$invalid)" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="TOOLS.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="trunk-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="TOOLS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.trunk.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="TOOLS.HELP.NAME"></span></div>\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="TOOLS.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.trunk.active" aria-label="active" ng-disabled="!vm.crudPermissions.canEdit"><span translate="TOOLS.ACTIVE">active</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.HOST">host</label>\n <input type="text" name="host" ng-model="vm.trunk.host" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="TOOLS.HELP.HOST"></span></div>\n <div ng-messages="generalForm[\'host\'].$error" ng-show="generalForm[\'host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.HOST_REQUIRED">host field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.SECRET">secret</label>\n <input type="password" name="secret" ng-model="vm.trunk.secret" placeholder="Password" translate translate-attr-placeholder="TOOLS.PASSWORD">\n <div class="hint"><span translate="TOOLS.HELP.SECRET"></span></div>\n <div ng-messages="generalForm[\'secret\'].$error" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="TOOLS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="TOOLS.DEFAULTUSER">defaultuser</label>\n <input type="text" name="defaultuser" ng-model="vm.trunk.defaultuser" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="TOOLS.HELP.DEFAULTUSER"></span></div>\n <div ng-messages="generalForm[\'defaultuser\'].$error" ng-show="generalForm[\'defaultuser\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DEFAULTUSER_REQUIRED">defaultuser field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.CONTEXT">context</label>\n <md-select name="context" ng-model="vm.trunk.context" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts" ng-disabled="context.canSelect === false">{{ context.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.CONTEXT"></span></div>\n <div ng-messages="generalForm[\'context\'].$error" ng-show="generalForm[\'context\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.CONTEXT_REQUIRED">context field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.CALLERID">callerid</label>\n <input type="text" name="callerid" ng-model="vm.trunk.callerid" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="TOOLS.HELP.CALLERID"></span></div>\n <div ng-messages="generalForm[\'callerid\'].$error" ng-show="generalForm[\'callerid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.CALLERID_REQUIRED">callerid field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.trunk.type" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'friend\'">Friend</md-option>\n <md-option ng-value="\'user\'">User</md-option>\n <md-option ng-value="\'peer\'">Peer</md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.TYPE"></span></div>\n <div ng-messages="generalForm[\'type\'].$error" ng-show="generalForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DTMFMODE">dtmfmode</label>\n <md-select name="dtmfmode" ng-model="vm.trunk.dtmfmode" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'rfc2833\'">rfc2833</md-option>\n <md-option ng-value="\'info\'">info</md-option>\n <md-option ng-value="\'shortinfo\'">shortinfo</md-option>\n <md-option ng-value="\'inband\'">inband</md-option>\n <md-option ng-value="\'auto\'">auto</md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.DTMFMODE"></span></div>\n <div ng-messages="generalForm[\'dtmfmode\'].$error" ng-show="generalForm[\'dtmfmode\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DTMFMODE_REQUIRED">dtmfmode field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAT">nat</label>\n <md-select name="nat" ng-model="vm.trunk.nat" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'force_rport\'">force_rport</md-option>\n <md-option ng-value="\'comedia\'">comedia</md-option>\n <md-option ng-value="\'yes\'">yes</md-option>\n <md-option ng-value="\'no\'">no</md-option>\n <md-option ng-value="\'never\'">never</md-option>\n <md-option ng-value="\'route\'">route</md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.NAT"></span></div>\n <div ng-messages="generalForm[\'nat\'].$error" ng-show="generalForm[\'nat\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAT_REQUIRED">nat field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.QUALIFY">qualify</label>\n <md-select name="qualify" ng-model="vm.trunk.qualify" required ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'TOOLS.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'TOOLS.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.QUALIFY"></span></div>\n <div ng-messages="generalForm[\'qualify\'].$error" ng-show="generalForm[\'qualify\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.QUALIFY_REQUIRED">qualify field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.ALLOWCODECS">AllowCodecs</label>\n <md-select name="allow" ng-model="vm.trunk.allow" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'ulaw\'">ulaw</md-option>\n <md-option ng-value="\'alaw\'">alaw</md-option>\n <md-option ng-value="\'gsm\'">gsm</md-option>\n <md-option ng-value="\'g723\'">g723</md-option>\n <md-option ng-value="\'g726\'">g726</md-option>\n <md-option ng-value="\'g722\'">g722</md-option>\n <md-option ng-value="\'g729\'">g729</md-option>\n <md-option ng-value="\'ilbc\'">ilbc</md-option>\n <md-option ng-value="\'opus\'">opus</md-option>\n <md-option ng-value="\'h264\'">h264</md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.ALLOWCODECS"></span></div>\n <div ng-messages="generalForm[\'allow\'].$error" ng-show="generalForm[\'allow\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.ALLOWCODECS_REQUIRED">AllowCodecs field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.INSECURE">insecure</label>\n <md-select name="insecure" ng-model="vm.trunk.insecure" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'port\'">port</md-option>\n <md-option ng-value="\'invite\'">invite</md-option>\n <md-option ng-value="\'very\'">very</md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.INSECURE"></span></div>\n <div ng-messages="generalForm[\'insecure\'].$error" ng-show="generalForm[\'insecure\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.INSECURE_REQUIRED">insecure field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.CALL_LIMIT">call_limit</label>\n <input type="number" name="call_limit" ng-model="vm.trunk.call_limit" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="TOOLS.HELP.CALL_LIMIT"></span></div>\n <div ng-messages="generalForm[\'call_limit\'].$error" ng-show="generalForm[\'call_limit\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.CALL_LIMIT_REQUIRED">call_limit field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.trunk.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="TOOLS.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <md-tab-body>\n <div class="trunk-detail-form-container advanced md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="TOOLS.ADVANCED">ADVANCED</div>\n </div>\n <form name="advancedForm" novalidate>\n <md-input-container class="md-block">\n <label translate="TOOLS.REGISTRY">registry</label>\n <input type="text" name="registry" ng-model="vm.trunk.registry" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="TOOLS.HELP.REGISTRY"></span></div>\n <div ng-messages="advancedForm[\'registry\'].$error" ng-show="advancedForm[\'registry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.REGISTRY_REQUIRED">registry field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DIRECTMEDIA">directmedia</label>\n <md-select name="directmedia" ng-model="vm.trunk.directmedia" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'yes\'">yes</md-option>\n <md-option ng-value="\'no\'">no</md-option>\n <md-option ng-value="\'nonat\'">nonat</md-option>\n <md-option ng-value="\'update\'">update</md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.DIRECTMEDIA"></span></div>\n <div ng-messages="advancedForm[\'directmedia\'].$error" ng-show="advancedForm[\'directmedia\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DIRECTMEDIA_REQUIRED">directmedia field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.CALLCOUNTER">callcounter</label>\n <md-select name="callcounter" ng-model="vm.trunk.callcounter" required ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'TOOLS.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'TOOLS.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.CALLCOUNTER"></span></div>\n <div ng-messages="advancedForm[\'callcounter\'].$error" ng-show="advancedForm[\'callcounter\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.CALLCOUNTER_REQUIRED">callcounter field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.FROMDOMAIN">fromdomain</label>\n <input type="text" name="fromdomain" ng-model="vm.trunk.fromdomain" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="TOOLS.HELP.FROMDOMAIN"></span></div>\n <div ng-messages="advancedForm[\'fromdomain\'].$error" ng-show="advancedForm[\'fromdomain\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.FROMDOMAIN_REQUIRED">fromdomain field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.FROMUSER">fromuser</label>\n <input type="text" name="fromuser" ng-model="vm.trunk.fromuser" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="TOOLS.HELP.FROMUSER"></span></div>\n <div ng-messages="advancedForm[\'fromuser\'].$error" ng-show="advancedForm[\'fromuser\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.FROMUSER_REQUIRED">fromuser field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.OUTBOUNDPROXY">outboundproxy</label>\n <input type="text" name="outboundproxy" ng-model="vm.trunk.outboundproxy" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="TOOLS.HELP.OUTBOUNDPROXY"></span></div>\n <div ng-messages="advancedForm[\'outboundproxy\'].$error" ng-show="advancedForm[\'outboundproxy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.OUTBOUNDPROXY_REQUIRED">outboundproxy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.ADD_PHONE_TO_URI">Add_phone_to_URI</label>\n <md-select name="usereqphone" ng-model="vm.trunk.usereqphone" required ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'TOOLS.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'TOOLS.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.ADD_PHONE_TO_URI"></span></div>\n <div ng-messages="advancedForm[\'usereqphone\'].$error" ng-show="advancedForm[\'usereqphone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.ADD_PHONE_TO_URI_REQUIRED">Add_phone_to_URI field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.TRUST_REMOTE_PARTY_ID">Trust_Remote_Party_ID</label>\n <md-select name="trustrpid" ng-model="vm.trunk.trustrpid" required ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'TOOLS.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'TOOLS.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.TRUST_REMOTE_PARTY_ID"></span></div>\n <div ng-messages="advancedForm[\'trustrpid\'].$error" ng-show="advancedForm[\'trustrpid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TRUST_REMOTE_PARTY_ID_REQUIRED">Trust_Remote_Party_ID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.SEND_REMOTE_PARTY_ID_HEADER">Send_Remote_Party_ID_header</label>\n <md-select name="sendrpid" ng-model="vm.trunk.sendrpid" required ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'TOOLS.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'TOOLS.NO\' | translate }} </md-option>\n\n <md-option ng-value="\'pai\'"> {{ \'TOOLS.PAI\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.SEND_REMOTE_PARTY_ID_HEADER"></span></div>\n <div ng-messages="advancedForm[\'sendrpid\'].$error" ng-show="advancedForm[\'sendrpid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.SEND_REMOTE_PARTY_ID_HEADER_REQUIRED">Send_Remote_Party_ID_header field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.ENCRYPTION">encryption</label>\n <md-select name="encryption" ng-model="vm.trunk.encryption" required ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'TOOLS.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'TOOLS.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.ENCRYPTION"></span></div>\n <div ng-messages="advancedForm[\'encryption\'].$error" ng-show="advancedForm[\'encryption\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.ENCRYPTION_REQUIRED">encryption field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.PORT">port</label>\n <input type="number" name="port" ng-model="vm.trunk.port" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="TOOLS.HELP.PORT"></span></div>\n <div ng-messages="advancedForm[\'port\'].$error" ng-show="advancedForm[\'port\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.PORT_REQUIRED">port field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.TRANSPORT">Transport</label>\n <md-select name="transport" ng-model="vm.trunk.transport" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'udp\'">udp</md-option>\n <md-option ng-value="\'tcp\'">tcp</md-option>\n <md-option ng-value="\'ws\'">ws</md-option>\n <md-option ng-value="\'wss\'">wss</md-option>\n <md-option ng-value="\'tls\'">tls</md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.TRANSPORT"></span></div>\n <div ng-messages="advancedForm[\'transport\'].$error" ng-show="advancedForm[\'transport\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TRANSPORT_REQUIRED">Transport field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.T38PT_UDPTL">t38pt_udptl</label>\n <input type="string" name="t38pt_udptl" ng-model="vm.trunk.t38pt_udptl" value="no" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="TOOLS.HELP.T38PT_UDPTL"></span></div>\n <div ng-messages="advancedForm[\'t38pt_udptl\'].$error" ng-show="advancedForm[\'t38pt_udptl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.T38PT_UDPTL_REQUIRED">t38pt_udptl field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.VIDEOSUPPORT">Videosupport</label>\n <md-select name="videosupport" ng-model="vm.trunk.videosupport" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'yes\'">Yes</md-option>\n <md-option ng-value="\'no\'">No</md-option>\n <md-option ng-value="\'always\'">Always</md-option>\n </md-select>\n <div ng-messages="advancedForm[\'videosupport\'].$error" ng-show="advancedForm[\'videosupport\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.VIDEOSUPPORT_REQUIRED">Videosupport field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="TOOLS.OTHERFIELDS">OTHERFIELDS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="trunk-detail-form-container otherfields md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="TOOLS.OTHERFIELDS">OTHERFIELDS</div>\n </div>\n <form name="otherFieldsForm" novalidate>\n <md-input-container class="md-block">\n <label translate="TOOLS.OTHERFIELDS">otherFields</label>\n <textarea name="otherFields" ng-model="vm.trunk.otherFields" autofocus></textarea>\n <div class="hint"><span translate="TOOLS.HELP.OTHERFIELDS"></span></div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/tools/views/trunks/trunks.html",'<div id="trunks" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="TOOLS.TRUNKS">Trunks</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedTrunks.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedTrunks =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="TOOLS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-trunks-count">\n <span>{{vm.selectedTrunks.length}}</span>\n <span translate="TOOLS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TOOLS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllTrunks()" translate="TOOLS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectTrunks()" translate="TOOLS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedTrunks" csv-label="true" filename="trunks.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedTrunks($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- TRUNK TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedTrunks" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTrunks">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n <th md-column md-order-by="active">{{ \'TOOLS.ACTIVE\' | translate }}</th>\n <th md-column md-order-by="host">{{ \'TOOLS.HOST\' | translate }}</th>\n <th md-column md-order-by="registry">{{ \'TOOLS.REGISTRY\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.trunks.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="trunk" md-select-id="id" ng-repeat="trunk in vm.trunks.rows">\n <td md-cell ng-if="trunk.userpic"><img class="avatar" alt="{{trunk.name}}" ng-src="api/users/{{trunk.id}}/avatar" /></td>\n <td md-cell ng-if="!trunk.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{trunk.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(trunk, ev) : vm.createOrEditTrunk($event, trunk)" md-cell class="id ">{{trunk.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(trunk, ev) : vm.createOrEditTrunk($event, trunk)" md-cell class="name ">{{trunk.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(trunk, ev) : vm.createOrEditTrunk($event, trunk)" md-cell class="active ">\n <md-icon md-colors="{color: {{trunk.active ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{trunk.active ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(trunk, ev) : vm.createOrEditTrunk($event, trunk)" md-cell class="host ">{{trunk.host}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(trunk, ev) : vm.createOrEditTrunk($event, trunk)" md-cell class="registry ">{{trunk.registry}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(trunk, ev) : vm.createOrEditTrunk($event, trunk)" md-cell class="description ">{{trunk.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(trunk, $event )" translate="TOOLS.EDIT_TRUNK">\n Edit Trunk\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.clonedialog(trunk, $event )" translate="TOOLS.CLONE_TRUNK">\n clone Trunk\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(trunk, $event )" translate="TOOLS.GOTOREALTIME_TRUNK">\n goToRealtime Trunk\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(trunk, $event )" translate="TOOLS.DELETE_TRUNK">\n Delete Trunk\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.trunks.count}}" md-on-paginate="vm.getTrunks" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / TRUNK TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD TRUNK BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-trunk-button" ng-click="vm.createOrEditTrunk($event)" aria-label="add trunk" translate translate-attr-aria-label="TOOLS.ADD_TRUNK">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD TRUNK BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/variables/create/dialog.html",'<md-dialog class="variable-dialog" aria-label="New Variable">\n <form name="variableForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.variable.name" ng-required="true" autofocus>\n\n <div ng-messages="variableForm[\'name\'].$error" ng-show="variableForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.variable.description">\n\n <div ng-messages="variableForm[\'description\'].$error" ng-show="variableForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newVariable" ng-click="vm.saveVariable()" class="send-button md-accent md-raised" ng-disabled="variableForm.$invalid || variableForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newVariable" ng-click="vm.addNewVariable()" class="send-button md-accent md-raised" ng-disabled="variableForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_VARIABLE" translate-attr-aria-label="TOOLS.ADD_VARIABLE">\n ADD VARIABLE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newVariable" ng-click="vm.deleteVariable($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/variables/variables.html",'<div id="variables" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="TOOLS.VARIABLES">Variables</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedVariables.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedVariables =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="TOOLS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-variables-count">\n <span>{{vm.selectedVariables.length}}</span>\n <span translate="TOOLS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TOOLS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllVariables()" translate="TOOLS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectVariables()" translate="TOOLS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedVariables" csv-label="true" filename="variables.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedVariables($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- VARIABLE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedVariables" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getVariables">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.variables.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="variable" md-select-id="id" ng-repeat="variable in vm.variables.rows">\n <td md-cell ng-if="variable.userpic"><img class="avatar" alt="{{variable.name}}" ng-src="api/users/{{variable.id}}/avatar" /></td>\n <td md-cell ng-if="!variable.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{variable.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditVariable($event, variable)" md-cell class="id ">{{variable.id}}</td>\n <td ng-click="vm.createOrEditVariable($event, variable)" md-cell class="name ">{{variable.name}}</td>\n <td ng-click="vm.createOrEditVariable($event, variable)" md-cell class="description ">{{variable.description}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(variable, $event )" translate="TOOLS.EDIT_VARIABLE">\n Edit Variable\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(variable, $event )" translate="TOOLS.DELETE_VARIABLE">\n Delete Variable\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.variables.count}}" md-on-paginate="vm.getVariables" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / VARIABLE TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD VARIABLE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-variable-button" ng-click="vm.createOrEditVariable($event)" aria-label="add variable" translate translate-attr-aria-label="TOOLS.ADD_VARIABLE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD VARIABLE BUTTON --\x3e\n</div>'),e.put("app/main/apps/video/views/screenRecordings/create/dialog.html",'<md-dialog class="screenRecording-dialog" aria-label="New screenRecording">\n <form name="screenRecordingForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="VIDEO.RATING">Rating</label>\n <md-select name="rating" ng-model="vm.screenRecording.rating" autofocus ng-disabled="!vm.newscreenRecording && !vm.crudPermissions.canEdit">\n <md-option ng-value="null">{{\'VIDEO.NO_RATING\' | translate}}</md-option>\n <md-option value="1">\n <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1]"></md-icon>\n </md-option>\n <md-option value="2">\n <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1,2]"></md-icon>\n </md-option>\n <md-option value="3">\n <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1,2,3]"></md-icon>\n </md-option>\n <md-option value="4">\n <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1,2,3,4]"></md-icon>\n </md-option>\n <md-option value="5">\n <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1,2,3,4,5]"></md-icon>\n </md-option>\n </md-select>\n <div ng-messages="screenRecordingForm[\'rating\'].$error" ng-show="screenRecordingForm[rating].$touched" role="alert">\n <div ng-message="required">\n <span translate="VIDEO.ERRORS.RATING_REQUIRED">Rating field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newscreenRecording" ng-click="vm.savescreenRecording()" class="send-button md-accent md-raised" ng-disabled="screenRecordingForm.$invalid || screenRecordingForm.$pristine" aria-label="SAVE" translate="VIDEO.SAVE" translate-attr-aria-label="VIDEO.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newscreenRecording" ng-click="vm.addNewscreenRecording()" class="send-button md-accent md-raised" ng-disabled="screenRecordingForm.$invalid" aria-label="ADD" translate="VIDEO.ADD_SCREENRECORDING" translate-attr-aria-label="VIDEO.ADD_SCREENRECORDING">\n ADD SCREENRECORDING\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newscreenRecording" ng-click="vm.deletescreenRecording($event)" aria-label="DELETE" translate translate-attr-aria-label="VIDEO.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="VIDEO.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/video/views/screenRecordings/partialViews/play.html",'<md-dialog class="play-dialog" aria-label="play">\n <form name="playForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="{{ vm.app.toUpperCase() }}.{{ vm.label.toUpperCase() }}">Play Recording</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-disabled="vm.loading" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ng-hide="vm.loading">\n <div layout="row" layout-sm flex>\n \x3c!-- VIRTUAL field --\x3e\n <md-card>\n\n <md-card-title ng-if="vm.actionOptions.upperTitle">\n <md-card-title-text>\n <span class="md-headline">{{ vm.filename }}</span>\n <span class="md-subhead"><span translate="{{ vm.app.toUpperCase() }}.UPDATEDAT"></span>: {{ vm.recording.updatedAt}}</span>\n </md-card-title-text>\n </md-card-title>\n\n \x3c!-- video recording directive --\x3e\n <ms-dialog-recording ng-if="vm.format" id="vm.recording.id" title="vm.filename" element="vm.element" model="vm.route" path="vm.path" class="md-card-image"></ms-dialog-recording>\n \x3c!-- / video recording directive --\x3e\n\n <span ng-if="!vm.format">\n <em ng-if="vm.found">{{ vm.app.toUpperCase() + \'.CANT_PLAY_THIS_FILE\' | translate }}</em>\n <em ng-if="!vm.found">{{ vm.app.toUpperCase() + \'.FILE_NOT_FOUND\' | translate }}</em>\n </span>\n\n <md-card-title ng-if="vm.actionOptions.lowerTitle">\n <md-card-title-text>\n <span class="md-headline">{{ vm.filename }}</span>\n <span class="md-subhead"><span translate="{{ vm.app.toUpperCase() }}.UPDATEDAT"></span>:{{ vm.recording.updatedAt}}</span>\n <span ng-if="vm.actionOptions.properties" class="md-subhead"><span translate="{{ vm.app.toUpperCase() }}.PROPERTIES"></span>:</span>\n </md-card-title-text>\n </md-card-title>\n\n <md-card-content ng-if="vm.actionOptions.properties">\n <md-list>\n <md-list-item class="md-2-line" ng-repeat="(key,value) in vm.properties" ng-click="null" ng-if="key != \'value\' && key != \'updatedAt\' && key != \'queue\'">\n\n <md-icon ng-if="vm.icon" class="md-avatar-icon" md-font-icon="vm.actionOptions.propertiesIcon" class="s24"></md-icon>\n\n <div class="md-list-item-text" layout="column">\n <p><b><span translate="{{ vm.app.toUpperCase() }}.{{ key.toUpperCase() }}"></span></b></p>\n <p>{{ value }}\n <p>\n </div>\n </md-list-item>\n </md-list>\n </md-card-content>\n\n\n </md-card>\n </div>\n </md-dialog-content>\n <div ng-hide="!vm.loading" layout-fill style="min-height: 397px;" layout="row" layout-sm="column" layout-align="center center">\n <md-progress-circular class="md-primary md-hue-1" md-diameter="96"></md-progress-circular>\n </div>\n </form>\n</md-dialog>'),e.put("app/main/apps/video/views/screenRecordings/screenRecordings.html",'<div id="screenRecordings" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-video" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="VIDEO.SCREENRECORDINGS">ScreenRecordings</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="VIDEO.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getScreenRecordings()"></ms-quick-filter>\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedScreenRecordings.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedScreenRecordings =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="VIDEO.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-screenRecordings-count">\n <span>{{vm.selectedScreenRecordings.length}}</span>\n <span translate="VIDEO.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="VIDEO.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllScreenRecordings()" translate="VIDEO.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectScreenRecordings()" translate="VIDEO.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedScreenRecordings" csv-label="true" filename="screenRecordings.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedScreenRecordings($event)" aria-label="delete selected" translate translate-attr-label="VIDEO.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- SCREENRECORDING TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedScreenRecordings" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getScreenRecordings">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'VIDEO.ID\' | translate }}</th>\n <th md-column md-order-by="rating">{{ \'VIDEO.RATING\' | translate }}</th>\n <th md-column md-order-by="UserId">{{ \'VIDEO.AGENT\' | translate }}</th>\n <th md-column md-order-by="duration">{{ \'VIDEO.DURATION\' | translate }}</th>\n <th md-column md-order-by="startedAt">{{ \'VIDEO.RECORDSTARTTIME\' | translate }}</th>\n <th md-column md-order-by="closedAt">{{ \'VIDEO.RECORDENDTIME\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.screenRecordings.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="VIDEO.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="screenRecording" md-select-id="id" ng-repeat="screenRecording in vm.screenRecordings.rows">\n <td md-cell ng-if="screenRecording.userpic"><img class="avatar" alt="{{screenRecording.name}}" ng-src="api/users/{{screenRecording.id}}/avatar" /></td>\n <td md-cell ng-if="!screenRecording.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{screenRecording.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditscreenRecording($event, screenRecording)" md-cell class="id ">{{screenRecording.id}}</td>\n <td ng-click="vm.createOrEditscreenRecording($event, screenRecording)" md-cell class="rating ">\n <md-icon md-font-icon="icon-star" style="color:red" ng-show="screenRecording.rating" ng-repeat="rating in [1,2,3,4,5] | limitTo:screenRecording.rating"></md-icon><span ng-hide="screenRecording.rating" translate="VIDEO.NO_RATING">No rating</span>\n </td>\n <td ng-click="vm.createOrEditscreenRecording($event, screenRecording)" md-cell class="UserId ">{{ (vm.users | filter : {\'id\':screenRecording.UserId} : true)[0].fullname }}</td>\n <td md-cell><span ng-bind="vm.convertDuration(screenRecording.duration)"></span></td>\n <td ng-click="vm.createOrEditscreenRecording($event, screenRecording)" md-cell class="startedAt ">{{screenRecording.startedAt | date:\'medium\' }}</td>\n <td ng-click="vm.createOrEditscreenRecording($event, screenRecording)" md-cell class="closedAt ">{{screenRecording.closedAt | date:\'medium\' }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VIDEO.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.playrecording(screenRecording, $event , \'value\' , \'play_screenrecording\' , \'video\' )" translate="VIDEO.PLAY_SCREENRECORDING">\n play screenRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.role === \'admin\' || vm.userProfile.downloadScreenRecordings">\n\n <md-button ng-click="vm.downloadfile2(screenRecording, $event , \'screen/recordings\' )" translate="VIDEO.DOWNLOAD_SCREENRECORDING">\n Download screenRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(screenRecording, $event )" translate="VIDEO.DELETE_SCREENRECORDING">\n Delete screenRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'VIDEO.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VIDEO.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VIDEO.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.screenRecordings.count}}" md-on-paginate="vm.getScreenRecordings" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / SCREENRECORDING TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- NO ADD BUTTON BUTTON --\x3e\n</div>'),e.put("app/main/apps/voice/routing/dialog.html",'<md-dialog ng-init="vm.init()" class="voice-routing-dialog" aria-label="New routing application">\n <form name="routingAppForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ \'VOICE.EDIT_\' + vm.application.appType | uppercase | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ng-switch="vm.application.appType" ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span>({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <div ng-switch-when="agi">\n <div ng-include="\'app/main/apps/voice/routing/views/agi.html\'"></div>\n </div>\n <div ng-switch-when="custom">\n <div ng-include="\'app/main/apps/voice/routing/views/custom.html\'"></div>\n </div>\n <div ng-switch-when="dial">\n <div ng-include="\'app/main/apps/voice/routing/views/dial.html\'"></div>\n </div>\n <div ng-switch-when="externalDial">\n <div ng-include="\'app/main/apps/voice/routing/views/externalDial.html\'"></div>\n </div>\n <div ng-switch-when="goTo">\n <div ng-include="\'app/main/apps/voice/routing/views/goTo.html\'"></div>\n </div>\n <div ng-switch-when="hangup">\n <div ng-include="\'app/main/apps/voice/routing/views/hangup.html\'"></div>\n </div>\n <div ng-switch-when="internalDial">\n <div ng-include="\'app/main/apps/voice/routing/views/internalDial.html\'"></div>\n </div>\n <div ng-switch-when="outboundDial">\n <div ng-include="\'app/main/apps/voice/routing/views/outboundDial.html\'"></div>\n </div>\n <div ng-switch-when="playback">\n <div ng-include="\'app/main/apps/voice/routing/views/playback.html\'"></div>\n </div>\n <div ng-switch-when="queue">\n <div ng-include="\'app/main/apps/voice/routing/views/queue.html\'"></div>\n </div>\n <div ng-switch-when="ringGroup">\n <div ng-include="\'app/main/apps/voice/routing/views/ringGroup.html\'"></div>\n </div>\n <div ng-switch-when="set">\n <div ng-include="\'app/main/apps/voice/routing/views/set.html\'"></div>\n </div>\n <div ng-switch-when="voicemail">\n <div ng-include="\'app/main/apps/voice/routing/views/voicemail.html\'"></div>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveRoutingApp()" class="send-button md-accent md-raised" ng-disabled="routingAppForm.$invalid || routingAppForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/routing/interval/dialog.html",'<md-dialog ng-init="vm.initialize()" class="interval-dialog" aria-label="Edit Interval">\n <form name="intervalForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ \'TOOLS.EDIT_INTERVAL\' | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span>({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select ng-model="vm.type" ng-disabled="!vm.crudPermissions.canEdit" ng-change="vm.onTypeChange()">\n <md-option ng-value="type" ng-repeat=\'type in vm.types\'>{{ type | startcase }}</md-option>\n </md-select>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.type === \'list\'">\n <label translate="TOOLS.INTERVALS">Intervals</label>\n <md-select ng-model="vm.interval.IntervalId" ng-disabled="!vm.crudPermissions.canEdit" required>\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals.rows" ng-disabled="interval.canSelect === false">{{ interval.name }}</md-option>\n </md-select>\n </md-input-container>\n \x3c!-- TIMERANGE START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.TIME_RANGE">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <div class="md-block" flex>\n <mdp-time-picker name="timeRangeFrom" mdp-placeholder="FROM" ng-model="vm.timeRangeFrom" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="intervalForm.timeRangeFrom.$error" ng-show="intervalForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_FROM_INVALID">Time Range From field is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n <div class="md-block" flex ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.crudPermissions.canEdit" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_INVALID">Time Range To field is invalid</span>\n </div>\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </div>\n \x3c!-- TIMERANGE END --\x3e\n \x3c!-- DAYSOFWEEK START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.WEEK_DAYS">Week Days</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.dayOfWeekFrom" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | startcase }}</span></md-option>\n </md-select>\n </md-input-container>\n <md-input-container flex class="md-block" ng-if="vm.dayOfWeekFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="dayOfWeekTo" ng-model="vm.dayOfWeekTo" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | startcase }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- DAYSOFWEEK END --\x3e\n \x3c!-- MONTHDAY START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTH_DAYS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthDayFrom" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n </md-input-container>\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthDayFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthDayTo" ng-model="vm.monthDayTo" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTHDAY END --\x3e\n \x3c!-- MONTH START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTHS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthFrom" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | startcase }}</span></md-option>\n </md-select>\n </md-input-container>\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthTo" ng-model="vm.monthTo" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | startcase }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTH END --\x3e\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit" ng-click="vm.saveInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid || intervalForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/routing/views/agi.html",'<md-input-container class="md-block">\n <label translate="VOICE.PROJECT">Project</label>\n <md-select name="project" ng-model="vm.application.project" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'agi://127.0.0.1/square,{{project.name}}\'" ng-repeat="project in vm.projects.rows" ng-disabled="project.canSelect === false">{{ project.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'project\'].$error" ng-show="routingAppForm[\'project\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PROJECT_REQUIRED">Project field is required</span>\n </div>\n </div>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/custom.html",'<md-input-container class="md-block">\n <label translate="VOICE.APPLICATION_NAME">Application_Name</label>\n <input type="text" name="app" ng-model="vm.application.app" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'app\'].$error" ng-show="routingAppForm[\'app\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.APPLICATION_NAME_REQUIRED">Application_Name field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.ARGUMENTS">Arguments</label>\n <input type="text" name="appdata" ng-model="vm.application.appdata" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'appdata\'].$error" ng-show="routingAppForm[\'appdata\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ARGUMENTS_REQUIRED">Arguments field is required</span>\n </div>\n </div>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/dial.html",'<md-input-container class="md-block">\n <label translate="VOICE.TECHNOLOGY/RESOURCE">Technology/Resource</label>\n <input type="text" name="tech" ng-model="vm.application.tech" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'tech\'].$error" ng-show="routingAppForm[\'tech\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.TECHNOLOGY/RESOURCE_REQUIRED">Technology/Resource field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.application.timeout" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'timeout\'].$error" ng-show="routingAppForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or\n equal than</span> <span>0</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.OPTIONS">Options</label>\n <input type="text" name="options" ng-model="vm.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'options\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.URL">Url</label>\n <input type="text" name="url" ng-model="vm.application.url" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'url\'].$error" ng-show="routingAppForm[\'url\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n </div>\n </div>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/externalDial.html",'<md-input-container class="md-block">\n <label translate="VOICE.TRUNK">Trunk</label>\n <md-select name="trunk" ng-model="vm.application.trunk" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="trunk.name" ng-repeat="trunk in vm.trunks.rows" ng-disabled="trunk.canSelect === false">{{\n trunk.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'trunk\'].$error" ng-show="routingAppForm[\'trunk\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.TRUNK_REQUIRED">Trunk field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.application.phone" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'phone\'].$error" ng-show="routingAppForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.application.timeout" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'timeout\'].$error" ng-show="routingAppForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or\n equal than</span> <span>0</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.OPTIONS">Options</label>\n <input type="text" name="options" ng-model="vm.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'options\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.URL">Url</label>\n <input type="text" name="url" ng-model="vm.application.url" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'url\'].$error" ng-show="routingAppForm[\'url\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n </div>\n </div>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/goTo.html",'<md-input-container class="md-block">\n <label translate="VOICE.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.application.context" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts.rows" ng-disabled="context.canSelect === false">{{\n context.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'context\'].$error" ng-show="routingAppForm[\'context\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.EXTENSION">Extension</label>\n <input type="text" name="extension" ng-model="vm.application.extension" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'extension\'].$error" ng-show="routingAppForm[\'extension\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.EXTENSION_REQUIRED">Extension field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.PRIORITY">Priority</label>\n <input type="text" name="priority" ng-model="vm.application.priority" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'priority\'].$error" ng-show="routingAppForm[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n </div>\n </div>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/hangup.html","<md-input-container class=\"md-block\">\n <label translate=\"VOICE.HANGUP_CAUSE\">Hangup_Cause</label>\n <md-select name=\"appdata\" ng-model=\"vm.application.appdata\" autofocus required ng-disabled=\"!vm.crudPermissions.canEdit\">\n <md-option ng-value=\"'1'\"> {{ 'VOICE.HANGUPCAUSE_1' | translate }} </md-option>\n <md-option ng-value=\"'16'\"> {{ 'VOICE.HANGUPCAUSE_16' | translate }} </md-option>\n <md-option ng-value=\"'17'\"> {{ 'VOICE.HANGUPCAUSE_17' | translate }} </md-option>\n <md-option ng-value=\"'18'\"> {{ 'VOICE.HANGUPCAUSE_18' | translate }} </md-option>\n <md-option ng-value=\"'21'\"> {{ 'VOICE.HANGUPCAUSE_21' | translate }} </md-option>\n <md-option ng-value=\"'22'\"> {{ 'VOICE.HANGUPCAUSE_22' | translate }} </md-option>\n <md-option ng-value=\"'27'\"> {{ 'VOICE.HANGUPCAUSE_27' | translate }} </md-option>\n <md-option ng-value=\"'38'\"> {{ 'VOICE.HANGUPCAUSE_38' | translate }} </md-option>\n <md-option ng-value=\"'41'\"> {{ 'VOICE.HANGUPCAUSE_41' | translate }} </md-option>\n </md-select>\n <div ng-messages=\"routingAppForm['appdata'].$error\" ng-show=\"routingAppForm['appdata'].$touched\" role=\"alert\">\n <div ng-message=\"required\">\n <span translate=\"VOICE.ERRORS.HANGUP_CAUSE_REQUIRED\">Hangup_Cause field is required</span>\n </div>\n </div>\n</md-input-container>"),e.put("app/main/apps/voice/routing/views/internalDial.html",'<md-input-container class="md-block">\n <label translate="VOICE.USER">User</label>\n <md-select name="user" ng-model="vm.application.user" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'SIP/{{user.name}}\'" ng-repeat="user in vm.users.rows" ng-disabled="user.canSelect === false">\n {{ user.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'user\'].$error" ng-show="routingAppForm[\'user\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.USER_REQUIRED">User field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.application.timeout" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'timeout\'].$error" ng-show="routingAppForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or\n equal than</span> <span>0</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.OPTIONS">Options</label>\n <input type="text" name="options" ng-model="vm.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'options\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.URL">Url</label>\n <input type="text" name="url" ng-model="vm.application.url" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'url\'].$error" ng-show="routingAppForm[\'url\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n </div>\n </div>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/outboundDial.html",'<md-input-container class="md-block">\n <label translate="VOICE.TRUNK">Trunk</label>\n <md-select name="trunk" ng-model="vm.application.trunk" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="trunk.name" ng-repeat="trunk in vm.trunks.rows" ng-disabled="trunk.canSelect === false">{{\n trunk.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'trunk\'].$error" ng-show="routingAppForm[\'trunk\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.TRUNK_REQUIRED">Trunk field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.CALLER_ID">Caller_ID</label>\n <input type="text" name="callerID" ng-model="vm.application.callerID" ng-disabled="!vm.crudPermissions.canEdit">\n <div class="hint"><span translate="VOICE.HELP.CALLER_ID"></span></div>\n <div ng-messages="routingAppForm[\'callerID\'].$error" ng-show="routingAppForm[\'callerID\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CALLER_ID_REQUIRED">Caller_ID field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.PREFIX">Prefix</label>\n <input type="text" name="prefix" ng-model="vm.application.prefix" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'prefix\'].$error" ng-show="routingAppForm[\'prefix\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PREFIX_REQUIRED">Prefix field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.TAGS">Tags</label>\n <md-select name="tag" ng-model="vm.application.tag" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'--\'">None</md-option>\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags.rows" ng-disabled="tag.canSelect === false">{{ tag.name }}\n </md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'tag\'].$error" ng-show="routingAppForm[\'tag\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.TAGS_REQUIRED">Tags field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.application.timeout" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'timeout\'].$error" ng-show="routingAppForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or\n equal than</span> <span>0</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.OPTIONS">Options</label>\n <input type="text" name="options" ng-model="vm.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'options\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.URL">Url</label>\n <input type="text" name="url" ng-model="vm.application.url" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'url\'].$error" ng-show="routingAppForm[\'url\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n </div>\n </div>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/playback.html",'<md-input-container class="md-block">\n <label translate="VOICE.AUDIO_FILES">Audio_Files</label>\n <md-select name="sound" ng-model="vm.application.appdata" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/{{sound.save_name}}\'" ng-repeat="sound in vm.sounds.rows" ng-disabled="sound.canSelect === false">{{ sound.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'sound\'].$error" ng-show="routingAppForm[\'sound\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.AUDIO_FILES_REQUIRED">Audio_Files field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.OPTIONS">Options</label>\n <input type="text" name="options" ng-model="vm.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'options\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <md-switch ng-model="vm.application.answer" aria-label="Answer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="VOICE.ANSWER">Answer</span></md-switch>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/queue.html",'<md-input-container class="md-block">\n <label translate="VOICE.QUEUE">Queue</label>\n <md-select name="queue" ng-model="vm.application.queue" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="queue.name" ng-repeat="queue in vm.queues.rows" ng-disabled="queue.canSelect === false">{{\n queue.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'queue\'].$error" ng-show="routingAppForm[\'queue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.OPTIONS">Options</label>\n <input type="text" name="options" ng-model="vm.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'options\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.URL">Url</label>\n <input type="text" name="URL" ng-model="vm.application.URL" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'URL\'].$error" ng-show="routingAppForm[\'URL\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.ANNOUNCE_OVERRIDES">Announce_Overrides</label>\n <md-select name="sound" ng-model="vm.application.sound" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/{{sound.save_name}}\'" ng-repeat="sound in vm.sounds.rows" ng-disabled="sound.canSelect === false">{{ sound.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'sound\'].$error" ng-show="routingAppForm[\'sound\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ANNOUNCE_OVERRIDES_REQUIRED">Announce_Overrides field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.application.timeout" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'timeout\'].$error" ng-show="routingAppForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or\n equal than</span> <span>0</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.AGI">Agi</label>\n <input type="text" name="agi" ng-model="vm.application.agi" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'agi\'].$error" ng-show="routingAppForm[\'agi\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.AGI_REQUIRED">Agi field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.MACRO">Macro</label>\n <input type="text" name="macro" ng-model="vm.application.macro" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'macro\'].$error" ng-show="routingAppForm[\'macro\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MACRO_REQUIRED">Macro field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.GOSUB">GoSub</label>\n <input type="text" name="gosub" ng-model="vm.application.gosub" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'gosub\'].$error" ng-show="routingAppForm[\'gosub\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.GOSUB_REQUIRED">GoSub field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.RULE">Rule</label>\n <input type="text" name="rule" ng-model="vm.application.rule" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'rule\'].$error" ng-show="routingAppForm[\'rule\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.RULE_REQUIRED">Rule field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.POSITION">Position</label>\n <input type="number" name="position" ng-model="vm.application.position" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'position\'].$error" ng-show="routingAppForm[\'position\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.POSITION_REQUIRED">Position field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.POSITION_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Position must be a valid greater or\n equal than</span> <span>0</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <md-switch ng-model="vm.application.answer" aria-label="Answer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="VOICE.ANSWER">Answer</span></md-switch>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/ringGroup.html",'<md-input-container class="md-block">\n <label translate="VOICE.USER">User</label>\n <md-select name="user" ng-model="vm.application.users" autofocus multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'SIP/{{user.name}}\'" ng-repeat="user in vm.users.rows" ng-disabled="user.canSelect === false">\n {{ user.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'user\'].$error" ng-show="routingAppForm[\'user\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.USER_REQUIRED">User field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.application.timeout" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'timeout\'].$error" ng-show="routingAppForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or\n equal than</span> <span>0</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.OPTIONS">Options</label>\n <input type="text" name="options" ng-model="vm.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'options\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.URL">Url</label>\n <input type="text" name="url" ng-model="vm.application.url" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'url\'].$error" ng-show="routingAppForm[\'url\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n </div>\n </div>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/set.html",'<md-input-container class="md-block">\n <label translate="VOICE.VARIABLE">Variable</label>\n <md-select name="variable" ng-model="vm.application.name" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables.rows" ng-disabled="variable.canSelect === false">{{\n variable.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'variable\'].$error" ng-show="routingAppForm[\'variable\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.VARIABLE_REQUIRED">Variable field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.VALUE">Value</label>\n <input type="text" name="value" ng-model="vm.application.value" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'value\'].$error" ng-show="routingAppForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/voicemail.html",'<md-input-container class="md-block">\n <label translate="VOICE.MAILBOX@CONTEXT">Mailbox@Context</label>\n <md-select name="voiceMail" ng-model="vm.application.voiceMail" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'{{voiceMail.mailbox}}@from-voicemail\'" ng-repeat="voiceMail in vm.voiceMails.rows" ng-disabled="voiceMail.canSelect === false">{{ voiceMail.mailbox }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'voiceMail\'].$error" ng-show="routingAppForm[\'voiceMail\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MAILBOX@CONTEXT_REQUIRED">Mailbox@Context field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.OPTIONS">Options</label>\n <input type="text" name="options" ng-model="vm.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'options\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n </div>\n </div>\n</md-input-container>'),e.put("app/main/apps/voice/views/chanSpies/chanSpies.html",'<div id="chanSpies" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="VOICE.CHANSPIES">ChanSpies</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedChanSpies.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedChanSpies =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="VOICE.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-chanSpies-count">\n <span>{{vm.selectedChanSpies.length}}</span>\n <span translate="VOICE.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="VOICE.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllChanSpies()" translate="VOICE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectChanSpies()" translate="VOICE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedChanSpies" csv-label="true" filename="chanSpies.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedChanSpies($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- CHANSPY TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedChanSpies" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getChanSpies">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'VOICE.NAME\' | translate }}</th>\n <th md-column md-order-by="prefix">{{ \'VOICE.PREFIX\' | translate }}</th>\n <th md-column md-order-by="auth">{{ \'VOICE.AUTH\' | translate }}</th>\n <th md-column md-order-by="record">{{ \'VOICE.RECORD\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'VOICE.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.chanSpies.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="chanSpy" md-select-id="id" ng-repeat="chanSpy in vm.chanSpies.rows">\n <td md-cell ng-if="chanSpy.userpic"><img class="avatar" alt="{{chanSpy.name}}" ng-src="api/users/{{chanSpy.id}}/avatar" /></td>\n <td md-cell ng-if="!chanSpy.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{chanSpy.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditchanSpy($event, chanSpy)" md-cell class="id ">{{chanSpy.id}}</td>\n <td ng-click="vm.createOrEditchanSpy($event, chanSpy)" md-cell class="name ">{{chanSpy.name}}</td>\n <td ng-click="vm.createOrEditchanSpy($event, chanSpy)" md-cell class="prefix ">{{chanSpy.prefix}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chanSpy, ev) : vm.createOrEditchanSpy($event, chanSpy)" md-cell class="auth ">\n <md-icon md-colors="{color: {{chanSpy.auth ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{chanSpy.auth ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chanSpy, ev) : vm.createOrEditchanSpy($event, chanSpy)" md-cell class="record ">\n <md-icon md-colors="{color: {{chanSpy.record ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{chanSpy.record ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.createOrEditchanSpy($event, chanSpy)" md-cell class="description ">{{chanSpy.description}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(chanSpy, $event )" translate="VOICE.EDIT_CHANSPY">\n Edit chanSpy\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(chanSpy, $event )" translate="VOICE.DELETE_CHANSPY">\n Delete chanSpy\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.chanSpies.count}}" md-on-paginate="vm.getChanSpies" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / CHANSPY TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD CHANSPY BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-chanSpy-button" ng-click="vm.createOrEditchanSpy($event)" aria-label="add chanSpy" translate translate-attr-aria-label="VOICE.ADD_CHANSPY">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD CHANSPY BUTTON --\x3e\n</div>'),e.put("app/main/apps/voice/views/chanSpies/create/dialog.html",'<md-dialog class="chanSpy-dialog" aria-label="New chanSpy">\n <form name="chanSpyForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="VOICE.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.chanSpy.name" ng-required="true" autofocus>\n\n <div ng-messages="chanSpyForm[\'name\'].$error" ng-show="chanSpyForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.PREFIX">Prefix</label>\n <input type="text" name="prefix" ng-model="vm.chanSpy.prefix" ng-required="true">\n\n <div ng-messages="chanSpyForm[\'prefix\'].$error" ng-show="chanSpyForm[\'prefix\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PREFIX_REQUIRED">Prefix field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.OPTIONS">Options</label>\n <md-select name="options" ng-model="vm.chanSpy.options" multiple required>\n <md-option ng-value="\'b\'">b: Only spy on channels involved in a bridged call.</md-option>\n <md-option ng-value="\'B\'">B: Instead of whispering on a single channel barge in on both channels involved in the call.</md-option>\n <md-option ng-value="\'E\'">E: Exit when the spied-on channel hangs up.</md-option>\n <md-option ng-value="\'o\'">o: Only listen to audio coming from this channel.</md-option>\n <md-option ng-value="\'q\'">q: Don\'t play a beep when beginning to spy on a channel, or speak the selected channel name.</md-option>\n <md-option ng-value="\'s\'">s: Skip the playback of the channel type (i.e. SIP, IAX, etc) when speaking the selected channel name.</md-option>\n <md-option ng-value="\'S\'">S: Stop when no more channels are left to spy on.</md-option>\n <md-option ng-value="\'w\'">w: Enable whisper mode, so the spying channel can talk to the spied-on channel.</md-option>\n <md-option ng-value="\'W\'">W: Enable private whisper mode, so the spying channel can talk to the spied-on channel but cannot listen to that channel.</md-option>\n </md-select>\n <div ng-messages="chanSpyForm[\'options\'].$error" ng-show="chanSpyForm[\'options\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chanSpy.auth" aria-label="Auth"><span translate="VOICE.AUTH">Auth</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.chanSpy.auth">\n <label translate="VOICE.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.chanSpy.password" placeholder="Password" translate translate-attr-placeholder="VOICE.PASSWORD" required>\n <div ng-messages="chanSpyForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="VOICE.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chanSpy.record" aria-label="Record"><span translate="VOICE.RECORD">Record</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.chanSpy.record" class="md-block">\n <label translate="VOICE.RECORDINGFORMAT">recordingFormat</label>\n <md-select name="recordingFormat" ng-model="vm.chanSpy.recordingFormat" required>\n <md-option ng-value="\'wav\'">wav</md-option>\n <md-option ng-value="\'gsm\'">gsm</md-option>\n <md-option ng-value="\'WAV\'">wav49</md-option>\n </md-select>\n <div ng-messages="chanSpyForm[\'recordingFormat\'].$error" ng-show="chanSpyForm[\'recordingFormat\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.RECORDINGFORMAT_REQUIRED">recordingFormat field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.chanSpy.description">\n\n <div ng-messages="chanSpyForm[\'description\'].$error" ng-show="chanSpyForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newchanSpy" ng-click="vm.savechanSpy()" class="send-button md-accent md-raised" ng-disabled="chanSpyForm.$invalid || chanSpyForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newchanSpy" ng-click="vm.addNewchanSpy()" class="send-button md-accent md-raised" ng-disabled="chanSpyForm.$invalid" aria-label="ADD" translate="VOICE.ADD_CHANSPY" translate-attr-aria-label="VOICE.ADD_CHANSPY">\n ADD CHANSPY\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newchanSpy" ng-click="vm.deletechanSpy($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/contexts/contexts.html",'<div id="contexts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="VOICE.CONTEXTS">Contexts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedContexts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedContexts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="VOICE.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-contexts-count">\n <span>{{vm.selectedContexts.length}}</span>\n <span translate="VOICE.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="VOICE.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllContexts()" translate="VOICE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectContexts()" translate="VOICE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedContexts" csv-label="true" filename="contexts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedContexts($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- CONTEXT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedContexts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getContexts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'VOICE.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'VOICE.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.contexts.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="context" md-select-id="id" ng-repeat="context in vm.contexts.rows">\n <td md-cell ng-if="context.userpic"><img class="avatar" alt="{{context.name}}" ng-src="api/users/{{context.id}}/avatar" /></td>\n <td md-cell ng-if="!context.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{context.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditContext($event, context)" md-cell class="id ">{{context.id}}</td>\n <td ng-click="vm.createOrEditContext($event, context)" md-cell class="name ">{{context.name}}</td>\n <td ng-click="vm.createOrEditContext($event, context)" md-cell class="description ">{{context.description}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(context, $event )" translate="VOICE.EDIT_CONTEXT">\n Edit Context\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(context, $event )" translate="VOICE.DELETE_CONTEXT">\n Delete Context\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.contexts.count}}" md-on-paginate="vm.getContexts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / CONTEXT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD CONTEXT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-context-button" ng-click="vm.createOrEditContext($event)" aria-label="add context" translate translate-attr-aria-label="VOICE.ADD_CONTEXT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD CONTEXT BUTTON --\x3e\n</div>'),e.put("app/main/apps/voice/views/contexts/create/dialog.html",'<md-dialog class="context-dialog" aria-label="New Context">\n <form name="contextForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="VOICE.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.context.name" ng-required="true" autofocus>\n\n <div ng-messages="contextForm[\'name\'].$error" ng-show="contextForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.context.description">\n\n <div ng-messages="contextForm[\'description\'].$error" ng-show="contextForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newContext" ng-click="vm.saveContext()" class="send-button md-accent md-raised" ng-disabled="contextForm.$invalid || contextForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newContext" ng-click="vm.addNewContext()" class="send-button md-accent md-raised" ng-disabled="contextForm.$invalid" aria-label="ADD" translate="VOICE.ADD_CONTEXT" translate-attr-aria-label="VOICE.ADD_CONTEXT">\n ADD CONTEXT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newContext" ng-click="vm.deleteContext($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/inboundRoutes/create/dialog.html",'<md-dialog ng-init="vm.initialize()" class="inbound-route-dialog" aria-label="New InboundRoute">\n <form name="inboundrouteForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.newInboundRoute ? \'VOICE.NEW_INBOUNDROUTE\' : \'VOICE.EDIT_INBOUNDROUTE\' | translate\n }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span>({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="VOICE.PHONENUMBER">PhoneNumber</label>\n <input type="text" name="exten" ng-model="vm.inboundRoute.exten" ng-required="true" autofocus>\n <div ng-messages="inboundrouteForm[\'exten\'].$error" ng-show="inboundrouteForm[\'exten\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PHONENUMBER_REQUIRED">PhoneNumber field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.inboundRoute.context" required>\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts.rows" ng-disabled="context.canSelect === false">{{ context.name }}</md-option>\n </md-select>\n <div ng-messages="inboundrouteForm[\'context\'].$error" ng-show="inboundrouteForm[\'context\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.inboundRoute.alias" ng-change="vm.getRouting()">\n <div ng-messages="inboundrouteForm[\'alias\'].$error" ng-show="inboundrouteForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ALIAS_REQUIRED">Alias field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.inboundRoute.description">\n <div ng-messages="inboundrouteForm[\'description\'].$error" ng-show="inboundrouteForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newInboundRoute" ng-click="vm.saveInboundRoute()" class="send-button md-accent md-raised" ng-disabled="inboundrouteForm.$invalid || inboundrouteForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newInboundRoute" ng-click="vm.addNewInboundRoute()" class="send-button md-accent md-raised" ng-disabled="inboundrouteForm.$invalid" aria-label="ADD" translate="VOICE.ADD_INBOUNDROUTE" translate-attr-aria-label="VOICE.ADD_INBOUNDROUTE">\n ADD INBOUNDROUTE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newInboundRoute" ng-click="vm.deleteInboundRoute($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/inboundRoutes/edit/view.html",'<div ng-init="vm.onInit()" id="voice-inbound-route" class="page-layout simple tabbed" layout="column">\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-inbound-routes-button md-icon-button" aria-label="Go to inbound routes" ng-click="vm.gotoInboundRoutes()" translate translate-attr-aria-label="VOICE.GO_TO_INBOUNDROUTES">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n <div layout="row" layout-align="start center">\n <div class="inbound-route-image" hide-xs>\n <img ng-src="assets/images/business/inboundroutes.jpg">\n </div>\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.inboundRoute.id}}\n <span ng-if="vm.inboundRoute.exten">{{vm.inboundRoute.exten}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="VOICE.CREATED_AT"></span> <span>{{vm.inboundRoute.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveInboundRoute()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (actionsForm.$invalid)" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n </div>\n </div>\n \x3c!-- /HEADER --\x3e\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n \x3c!-- SETTINGS TAB --\x3e\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="inbound-route-detail-form-container md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="VOICE.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="VOICE.PHONENUMBER">PhoneNumber</label>\n <input type="text" name="exten" ng-model="vm.inboundRoute.exten" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'exten\'].$error" ng-show="generalForm[\'exten\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PHONENUMBER_REQUIRED">PhoneNumber field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.inboundRoute.context" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts.rows" ng-disabled="context.canSelect === false">{{ context.name }}</md-option>\n </md-select>\n <div ng-messages="generalForm[\'context\'].$error" ng-show="generalForm[\'context\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.inboundRoute.alias" ng-change="vm.onActionsTabSelection()" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'alias\'].$error" ng-show="generalForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ALIAS_REQUIRED">Alias field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.inboundRoute.description" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n \x3c!-- /SETTINGS TAB --\x3e\n \x3c!-- ACTIONS TAB --\x3e\n <md-tab md-on-select="vm.onActionsTabSelection()">\n <md-tab-label>\n <span translate="VOICE.ACTIONS">ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="inbound-route-detail-form-container no-padding no-margin">\n <div class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- APPLICATIONS LIST --\x3e\n <div class="navigation-simple sidenav main-sidenav md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="20" ng-if="vm.crudPermissions.canEdit">\n <md-list class="no-padding">\n <md-subheader class="md-no-sticky">\n <span translate="VOICE.APPLICATIONS_LIST">\n Applications List\n </span>\n </md-subheader>\n </md-list>\n <md-divider class="no-margin"></md-divider>\n <md-list ng-sortable="vm.sortableAppsOptions">\n <md-list-item class="handle" ng-repeat="a in vm.apps">\n <div layout="row">\n <md-icon md-font-icon="icon-apps" class="s16 mr-15"></md-icon>\n <p class="text-truncate" translate="VOICE.{{(a.appAlias || a.appType) | uppercase}}">{{a.appAlias ||\n a.appType}}</p>\n </div>\n </md-list-item>\n </md-list>\n </div>\n \x3c!-- /APPLICATIONS LIST --\x3e\n <div flex></div>\n \x3c!-- ROUTING --\x3e\n <div class="main scrollable md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="{{vm.crudPermissions.canEdit ? 75 : 100}}">\n <div ng-if="vm.pendingChanges" class="p-10 md-amber-300-bg">\n <md-icon md-font-icon="icon-information-outline" aria-label="Save reminder"></md-icon>\n <span class="no-margin font-size-12 line-height-30" translate="VOICE.HELP.SAVE_ROUTES"></span>\n </div>\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm.selectedApplications.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">Drag & Drop Routing</span>\n <div flex></div>\n <ms-search-bar query="vm.query" debounce="300"></ms-search-bar>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm.selectedApplications.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm.selectedApplications.length}}\n {{vm.selectedApplications.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm.crudPermissions.canDelete" class="md-icon-button" ng-click="vm.deleteSelectedApplications($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedApplications">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </th>\n <th md-column width="10px"></th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body ng-sortable="vm.sortableRoutingOptions">\n <tr md-row md-select="a" md-select-id="id" ng-repeat="a in vm.applications.rows | filter:vm.query.filter as results">\n <td md-cell>\n <md-icon md-font-icon="icon-drag-vertical" class="s16 handle"></md-icon>\n </td>\n <td md-cell ng-click="vm.editApplication($event, $index)">{{a.app.toLowerCase() ===\n \'agi\' ? \'Cally-Square\' : a.app | ucfirst}}<span ng-if="a.appType.toLowerCase() === \'custom\'">*</span></td>\n <td md-cell ng-click="vm.editApplication($event, $index)"><span class="text-truncate actionAppData">{{a.appdata}}</span></td>\n <td md-cell ng-click="vm.editInterval($event, $index)">{{a.IntervalId ? \'From List\' :\n a.interval}}</td>\n <td md-cell>\n <md-button ng-click="vm.editInterval($event, $index)" class="md-icon-button" aria-label="Interval">\n <md-icon md-font-icon="icon-timer"></md-icon>\n <md-tooltip>\n {{a.IntervalId ? \'From List\' : (a.interval === \'*,*,*,*\' ? \'Always\' : \'Custom\')}}\n </md-tooltip>\n </md-button>\n </td>\n <td md-cell ng-if="!vm.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editApplication($event, $index)" translate="VOICE.EDIT_APP">\n Edit App\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editInterval($event, $index)" translate="VOICE.EDIT_INTERVAL">\n Edit Interval\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteApplication(a, $index, $event)" translate="VOICE.DELETE_APP">\n Delete App\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-class="{ \'ng-cloak\': results.length > 0 }">\n <td md-cell colspan="6">\n <span class="text-boxed-light" translate="VOICE.NO_APPS_AVAILABLE">No applications\n available</span>\n </td>\n </tr>\n </tbody>\n <tfoot md-foot>\n <tr md-row>\n <td md-cell colspan="7">\n <span><em translate="VOICE.LEGEND.CUSTOM_APPLICATION">(*) - Custom application.</em></span>\n </td>\n </tr>\n </tfoot>\n </table>\n </md-table-container>\n </div>\n \x3c!-- /ROUTING --\x3e\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n \x3c!-- /ACTIONS TAB --\x3e\n </md-tabs>\n </div>\n \x3c!-- /CONTENT --\x3e\n</div>'),e.put("app/main/apps/voice/views/inboundRoutes/inboundRoutes.html",'<div id="inbound-routes" class="page-layout simple left-sidenav inner-sidenav">\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="VOICE.INBOUNDROUTES">InboundRoutes</span>\n </div>\n </div>\n <div layout="row">\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n </div>\n </div>\n <div ng-show="vm.selectedInboundRoutes.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n <div class="close-button-wrapper" ng-click="vm.selectedInboundRoutes = []">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="VOICE.BACK">Back</span>\n </md-button>\n </div>\n <div flex layout="row" layout-align="space-between center">\n <div>\n <span class="selected-inbound-routes-count">\n <span>{{ vm.selectedInboundRoutes.length }}</span>\n <span translate="VOICE.SELECTED">selected</span>\n </span>\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="VOICE.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectedInboundRoutes = vm.inboundRoutes.rows" translate="VOICE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.selectedInboundRoutes = []" translate="VOICE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedInboundRoutes" csv-label="true" filename="inbound_routes.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedInboundRoutes($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n <div class="content" md-background-bg layout="row" layout-align="start start">\n <div class="main scrollable" ms-scroll>\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedInboundRoutes" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getInboundRoutes">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n <th md-column md-order-by="exten">{{ \'VOICE.PHONENUMBER\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'VOICE.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.inboundRoutes.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="route" md-select-id="id" ng-repeat="route in vm.inboundRoutes.rows">\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditInboundRoute($event, route)" md-cell class="id ">{{ route.id }}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditInboundRoute($event, route)" md-cell class="exten ">{{ route.exten }}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditInboundRoute($event, route)" md-cell class="description ">{{ route.description }}</td>\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editRoute(route)" translate="VOICE.EDIT_INBOUNDROUTE">\n Edit InboundRoute\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteConfirm(route, $event)" translate="VOICE.DELETE_INBOUNDROUTE">\n Delete InboundRoute\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{ \'VOICE.PAGE\' | translate }}:\', rowsPerPage: \'{{ \'VOICE.ROWSPERPAGE\' | translate }}:\', of: \'{{ \'VOICE.OF\' | translate }}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{ vm.inboundRoutes.count }}" md-on-paginate="vm.getInboundRoutes" md-page-select>\n </md-table-pagination>\n </md-card>\n </div>\n </div>\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-inbound-route-button" ng-click="vm.createOrEditInboundRoute($event)" aria-label="add inbound route" translate translate-attr-aria-label="VOICE.ADD_INBOUNDROUTE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n</div>'),e.put("app/main/apps/voice/views/internalRoutes/create/dialog.html",'<md-dialog ng-init="vm.initialize()" class="internal-route-dialog" aria-label="New InternalRoute">\n <form name="internalrouteForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.newInternalRoute ? \'VOICE.NEW_INTERNALROUTE\' : \'VOICE.EDIT_INTERNALROUTE\' | translate\n }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span>({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="VOICE.PHONENUMBER">PhoneNumber</label>\n <input type="text" name="exten" ng-model="vm.internalRoute.exten" ng-required="true" autofocus>\n <div ng-messages="internalrouteForm[\'exten\'].$error" ng-show="internalrouteForm[\'exten\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PHONENUMBER_REQUIRED">PhoneNumber field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.internalRoute.context" required>\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts.rows" ng-disabled="context.canSelect === false">{{ context.name }}</md-option>\n </md-select>\n <div ng-messages="internalrouteForm[\'context\'].$error" ng-show="internalrouteForm[\'context\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.internalRoute.alias" ng-change="vm.getRouting()">\n <div ng-messages="internalrouteForm[\'alias\'].$error" ng-show="internalrouteForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ALIAS_REQUIRED">Alias field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.internalRoute.description">\n <div ng-messages="internalrouteForm[\'description\'].$error" ng-show="internalrouteForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newInternalRoute" ng-click="vm.saveInternalRoute()" class="send-button md-accent md-raised" ng-disabled="internalrouteForm.$invalid || internalrouteForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newInternalRoute" ng-click="vm.addNewInternalRoute()" class="send-button md-accent md-raised" ng-disabled="internalrouteForm.$invalid" aria-label="ADD" translate="VOICE.ADD_INTERNALROUTE" translate-attr-aria-label="VOICE.ADD_INTERNALROUTE">\n ADD INTERNALROUTE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newInternalRoute" ng-click="vm.deleteInternalRoute($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/internalRoutes/edit/view.html",'<div ng-init="vm.onInit()" id="voice-internal-route" class="page-layout simple tabbed" layout="column">\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-internal-routes-button md-icon-button" aria-label="Go to internal routes" ng-click="vm.gotoInternalRoutes()" translate translate-attr-aria-label="VOICE.GO_TO_INTERNALROUTES">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n <div layout="row" layout-align="start center">\n <div class="internal-route-image" hide-xs>\n <img ng-src="assets/images/business/internalroutes.jpg">\n </div>\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.internalRoute.id}}\n <span ng-if="vm.internalRoute.exten">{{vm.internalRoute.exten}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="VOICE.CREATED_AT"></span> <span>{{vm.internalRoute.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveInternalRoute()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (actionsForm.$invalid)" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n </div>\n </div>\n \x3c!-- /HEADER --\x3e\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n \x3c!-- SETTINGS TAB --\x3e\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="internal-route-detail-form-container md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="VOICE.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="VOICE.PHONENUMBER">PhoneNumber</label>\n <input type="text" name="exten" ng-model="vm.internalRoute.exten" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'exten\'].$error" ng-show="generalForm[\'exten\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PHONENUMBER_REQUIRED">PhoneNumber field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.internalRoute.context" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts.rows" ng-disabled="context.canSelect === false">{{ context.name }}</md-option>\n </md-select>\n <div ng-messages="generalForm[\'context\'].$error" ng-show="generalForm[\'context\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.internalRoute.alias" ng-change="vm.onActionsTabSelection()" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'alias\'].$error" ng-show="generalForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ALIAS_REQUIRED">Alias field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.internalRoute.description" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n \x3c!-- /SETTINGS TAB --\x3e\n \x3c!-- ACTIONS TAB --\x3e\n <md-tab md-on-select="vm.onActionsTabSelection()">\n <md-tab-label>\n <span translate="VOICE.ACTIONS">ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="internal-route-detail-form-container no-padding no-margin">\n <div class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- APPLICATIONS LIST --\x3e\n <div class="navigation-simple sidenav main-sidenav md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="20" ng-if="vm.crudPermissions.canEdit">\n <md-list class="no-padding">\n <md-subheader class="md-no-sticky">\n <span translate="VOICE.APPLICATIONS_LIST">\n Applications List\n </span>\n </md-subheader>\n </md-list>\n <md-divider class="no-margin"></md-divider>\n <md-list ng-sortable="vm.sortableAppsOptions">\n <md-list-item class="handle" ng-repeat="a in vm.apps">\n <div layout="row">\n <md-icon md-font-icon="icon-apps" class="s16 mr-15"></md-icon>\n <p class="text-truncate" translate="VOICE.{{(a.appAlias || a.appType) | uppercase}}">{{a.appAlias ||\n a.appType}}</p>\n </div>\n </md-list-item>\n </md-list>\n </div>\n \x3c!-- /APPLICATIONS LIST --\x3e\n <div flex></div>\n \x3c!-- ROUTING --\x3e\n <div class="main scrollable md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="{{vm.crudPermissions.canEdit ? 75 : 100}}">\n <div ng-if="vm.pendingChanges" class="p-10 md-amber-300-bg">\n <md-icon md-font-icon="icon-information-outline" aria-label="Save reminder"></md-icon>\n <span class="no-margin font-size-12 line-height-30" translate="VOICE.HELP.SAVE_ROUTES"></span>\n </div>\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm.selectedApplications.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">Drag & Drop Routing</span>\n <div flex></div>\n <ms-search-bar query="vm.query" debounce="300"></ms-search-bar>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm.selectedApplications.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm.selectedApplications.length}}\n {{vm.selectedApplications.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm.crudPermissions.canDelete" class="md-icon-button" ng-click="vm.deleteSelectedApplications($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedApplications">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </th>\n <th md-column width="10px"></th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body ng-sortable="vm.sortableRoutingOptions">\n <tr md-row md-select="a" md-select-id="id" ng-repeat="a in vm.applications.rows | filter:vm.query.filter as results">\n <td md-cell>\n <md-icon md-font-icon="icon-drag-vertical" class="s16 handle"></md-icon>\n </td>\n <td md-cell ng-click="vm.editApplication($event, $index)">{{a.app.toLowerCase() ===\n \'agi\' ? \'Cally-Square\' : a.app | ucfirst}}<span ng-if="a.appType.toLowerCase() === \'custom\'">*</span></td>\n <td md-cell ng-click="vm.editApplication($event, $index)"><span class="text-truncate actionAppData">{{a.appdata}}</span></td>\n <td md-cell ng-click="vm.editInterval($event, $index)">{{a.IntervalId ? \'From List\' :\n a.interval}}</td>\n <td md-cell>\n <md-button ng-click="vm.editInterval($event, $index)" class="md-icon-button" aria-label="Interval">\n <md-icon md-font-icon="icon-timer"></md-icon>\n <md-tooltip>\n {{a.IntervalId ? \'From List\' : (a.interval === \'*,*,*,*\' ? \'Always\' : \'Custom\')}}\n </md-tooltip>\n </md-button>\n </td>\n <td md-cell ng-if="!vm.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editApplication($event, $index)" translate="VOICE.EDIT_APP">\n Edit App\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editInterval($event, $index)" translate="VOICE.EDIT_INTERVAL">\n Edit Interval\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteApplication(a, $index, $event)" translate="VOICE.DELETE_APP">\n Delete App\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-class="{ \'ng-cloak\': results.length > 0 }">\n <td md-cell colspan="6">\n <span class="text-boxed-light" translate="VOICE.NO_APPS_AVAILABLE">No applications\n available</span>\n </td>\n </tr>\n </tbody>\n <tfoot md-foot>\n <tr md-row>\n <td md-cell colspan="7">\n <span><em translate="VOICE.LEGEND.CUSTOM_APPLICATION">(*) - Custom application.</em></span>\n </td>\n </tr>\n </tfoot>\n </table>\n </md-table-container>\n </div>\n \x3c!-- /ROUTING --\x3e\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n \x3c!-- /ACTIONS TAB --\x3e\n </md-tabs>\n </div>\n \x3c!-- /CONTENT --\x3e\n</div>'),e.put("app/main/apps/voice/views/internalRoutes/internalRoutes.html",'<div id="internal-routes" class="page-layout simple left-sidenav inner-sidenav">\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="VOICE.INTERNALROUTES">InternalRoutes</span>\n </div>\n </div>\n <div layout="row">\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n </div>\n </div>\n <div ng-show="vm.selectedInternalRoutes.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n <div class="close-button-wrapper" ng-click="vm.selectedInternalRoutes = []">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="VOICE.BACK">Back</span>\n </md-button>\n </div>\n <div flex layout="row" layout-align="space-between center">\n <div>\n <span class="selected-internal-routes-count">\n <span>{{ vm.selectedInternalRoutes.length }}</span>\n <span translate="VOICE.SELECTED">selected</span>\n </span>\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="VOICE.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectedInternalRoutes = vm.internalRoutes.rows" translate="VOICE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.selectedInternalRoutes = []" translate="VOICE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedInternalRoutes" csv-label="true" filename="internal_routes.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedInternalRoutes($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n <div class="content" md-background-bg layout="row" layout-align="start start">\n <div class="main scrollable" ms-scroll>\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedInternalRoutes" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getInternalRoutes">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n <th md-column md-order-by="exten">{{ \'VOICE.PHONENUMBER\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'VOICE.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.internalRoutes.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="route" md-select-id="id" ng-repeat="route in vm.internalRoutes.rows">\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditInternalRoute($event, route)" md-cell class="id ">{{ route.id }}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditInternalRoute($event, route)" md-cell class="exten ">{{ route.exten }}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditInternalRoute($event, route)" md-cell class="description ">{{ route.description }}</td>\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editRoute(route)" translate="VOICE.EDIT_INTERNALROUTE">\n Edit InternalRoute\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteConfirm(route, $event)" translate="VOICE.DELETE_INTERNALROUTE">\n Delete InternalRoute\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{ \'VOICE.PAGE\' | translate }}:\', rowsPerPage: \'{{ \'VOICE.ROWSPERPAGE\' | translate }}:\', of: \'{{ \'VOICE.OF\' | translate }}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{ vm.internalRoutes.count }}" md-on-paginate="vm.getInternalRoutes" md-page-select>\n </md-table-pagination>\n </md-card>\n </div>\n </div>\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-internal-route-button" ng-click="vm.createOrEditInternalRoute($event)" aria-label="add internal route" translate translate-attr-aria-label="VOICE.ADD_INTERNALROUTE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n</div>'),e.put("app/main/apps/voice/views/musiconholds/create/dialog.html",'<md-dialog class="musiconhold-dialog" aria-label="New MusicOnHold">\n <form name="musiconholdForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="VOICE.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.musiconhold.name" ng-required="true" autofocus ng-disabled="!vm.newMusicOnHold">\n\n <div ng-messages="musiconholdForm[\'name\'].$error" ng-show="musiconholdForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.MODE">Mode</label>\n <md-select name="mode" ng-model="vm.musiconhold.mode" required ng-disabled="!vm.newMusicOnHold">\n\n <md-option ng-value="\'files\'"> {{ \'VOICE.FILES\' | translate }} </md-option>\n\n <md-option ng-value="\'custom\'"> {{ \'VOICE.CUSTOM\' | translate }} </md-option>\n </md-select>\n <div ng-messages="musiconholdForm[\'mode\'].$error" ng-show="musiconholdForm[\'mode\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MODE_REQUIRED">Mode field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.musiconhold.mode == \'custom\'" class="md-block">\n <label translate="VOICE.DIRECTORY">Directory</label>\n <input type="" name="directory" ng-model="vm.musiconhold.directory">\n\n <div ng-messages="musiconholdForm[\'directory\'].$error" ng-show="musiconholdForm[\'directory\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DIRECTORY_REQUIRED">Directory field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.musiconhold.mode == \'custom\'" class="md-block">\n <label translate="VOICE.APPLICATION">Application</label>\n <input type="text" name="application" ng-model="vm.musiconhold.application" ng-required="true">\n\n <div ng-messages="musiconholdForm[\'application\'].$error" ng-show="musiconholdForm[\'application\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.APPLICATION_REQUIRED">Application field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.musiconhold.mode == \'files\'" class="md-block">\n <label translate="VOICE.SORT">Sort</label>\n <md-select name="sort" ng-model="vm.musiconhold.sort">\n\n <md-option ng-value="\'random\'"> {{ \'VOICE.RANDOM\' | translate }} </md-option>\n\n <md-option ng-value="\'alpha\'"> {{ \'VOICE.ALPHABETICAL\' | translate }} </md-option>\n </md-select>\n <div ng-messages="musiconholdForm[\'sort\'].$error" ng-show="musiconholdForm[\'sort\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.SORT_REQUIRED">Sort field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newMusicOnHold" ng-click="vm.saveMusicOnHold()" class="send-button md-accent md-raised" ng-disabled="musiconholdForm.$invalid || musiconholdForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newMusicOnHold" ng-click="vm.addNewMusicOnHold()" class="send-button md-accent md-raised" ng-disabled="musiconholdForm.$invalid" aria-label="ADD" translate="VOICE.ADD_MUSICONHOLD" translate-attr-aria-label="VOICE.ADD_MUSICONHOLD">\n ADD MUSICONHOLD\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newMusicOnHold" ng-click="vm.deleteMusicOnHold($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/musiconholds/edit/mohSounds/dialog.html",'<md-dialog class="mohSound-dialog" aria-label="New MohSound">\n <form name="mohSoundForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="VOICE.FILE">File</label>\n <md-select name="id" ng-model="vm.mohSound.id" autofocus>\n <md-option ng-value="id.id" ng-repeat="id in vm.sounds" ng-disabled="id.canSelect === false">{{ id.name }}</md-option>\n </md-select>\n <div ng-messages="mohSoundForm[\'id\'].$error" ng-show="mohSoundForm[\'id\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.FILE_REQUIRED">File field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newMohSound" ng-click="vm.saveMohSound()" class="send-button md-accent md-raised" ng-disabled="mohSoundForm.$invalid || mohSoundForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newMohSound" ng-click="vm.addNewMohSound()" class="send-button md-accent md-raised" ng-disabled="mohSoundForm.$invalid" aria-label="ADD" translate="VOICE.ADD_MOHSOUND" translate-attr-aria-label="VOICE.ADD_MOHSOUND">\n ADD MOHSOUND\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newMohSound" ng-click="vm.deleteMohSound($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/musiconholds/edit/view.html",'<div id="voice-musiconhold" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-musiconholds-button md-icon-button" aria-label="Go to musiconholds" ng-click="vm.gotoMusicOnHolds()" translate translate-attr-aria-label="VOICE.GO_TO_MUSICONHOLDS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="musiconhold-image" hide-xs>\n <img ng-src="assets/images/business/musiconholds.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.musiconhold.id}}\n <span ng-if="vm.musiconhold.name">{{vm.musiconhold.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="VOICE.CREATED_AT"></span> <span>{{vm.musiconhold.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveMusicOnHold()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (mohSoundsForm.$invalid)" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="musiconhold-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="VOICE.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="VOICE.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.musiconhold.name" ng-required="true" autofocus disabled>\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.MODE">Mode</label>\n <md-select name="mode" ng-model="vm.musiconhold.mode" required disabled>\n\n <md-option ng-value="\'files\'"> {{ \'VOICE.FILES\' | translate }} </md-option>\n\n <md-option ng-value="\'custom\'"> {{ \'VOICE.CUSTOM\' | translate }} </md-option>\n </md-select>\n <div ng-messages="generalForm[\'mode\'].$error" ng-show="generalForm[\'mode\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MODE_REQUIRED">Mode field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.musiconhold.mode == \'custom\'" class="md-block">\n <label translate="VOICE.DIRECTORY">Directory</label>\n <input type="" name="directory" ng-model="vm.musiconhold.directory" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'directory\'].$error" ng-show="generalForm[\'directory\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DIRECTORY_REQUIRED">Directory field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.musiconhold.mode == \'custom\'" class="md-block">\n <label translate="VOICE.APPLICATION">Application</label>\n <input type="text" name="application" ng-model="vm.musiconhold.application" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'application\'].$error" ng-show="generalForm[\'application\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.APPLICATION_REQUIRED">Application field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.musiconhold.mode == \'files\'" class="md-block">\n <label translate="VOICE.SORT">Sort</label>\n <md-select name="sort" ng-model="vm.musiconhold.sort" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'random\'"> {{ \'VOICE.RANDOM\' | translate }} </md-option>\n\n <md-option ng-value="\'alpha\'"> {{ \'VOICE.ALPHABETICAL\' | translate }} </md-option>\n </md-select>\n <div ng-messages="generalForm[\'sort\'].$error" ng-show="generalForm[\'sort\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.SORT_REQUIRED">Sort field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.AUDIOFILES">AUDIOFILES</span>\n </md-tab-label>\n <md-tab-body>\n <div class="musiconhold-detail-form-container mohsounds md-background-bg md-whiteframe-1dp">\n <div ng-controller="MusicOnHoldMohSoundsController as vm_dc" ng-init="vm_dc.init(vm.musiconhold, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedMusicOnHoldMohSounds.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.MOHSOUNDS">MohSounds</span>\n <ms-search-bar on-search="vm_dc.getMusicOnHoldMohSounds()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditMusicOnHoldMohSound($event)" aria-label="add mohSound" translate translate-attr-label="VOICE.ADD_MOHSOUND">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedMusicOnHoldMohSounds.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedMusicOnHoldMohSounds.length}} {{vm_dc.selectedMusicOnHoldMohSounds.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedMusicOnHoldMohSounds" csv-label="true" filename="musiconholds.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedMusicOnHoldMohSounds($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedMusicOnHoldMohSounds" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getMusicOnHoldMohSounds">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'VOICE.ID\' | translate }}\n </th>\n <th md-column md-order-by="audio">\n {{ \'VOICE.AUDIO\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'VOICE.CREATED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="mohSound" md-select-id="id" ng-repeat="mohSound in vm_dc.musiconholdMohSounds.rows">\n <td md-cell>\n {{mohSound.id}}\n </td>\n <td md-cell>\n \x3c!-- audio recording directive --\x3e\n <ms-recording id="mohSound.id" model="\'sound\'"></ms-recording>\n \x3c!-- / audio recording directive --\x3e\n </td>\n <td md-cell>\n {{ mohSound.createdAt | formatdate }}\n </td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(mohSound, $event)" translate="VOICE.DELETE_MOHSOUND">\n Delete MohSound\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.musiconholdMohSounds.rows.length">\n <td md-cell colspan="8">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="VOICE.NO_MOHSOUND_AVAILABLE">No mohsound available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.musiconholdMohSounds.count}}" md-on-paginate="vm_dc.getMusicOnHoldMohSounds" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/voice/views/musiconholds/musiconholds.html",'<div id="musiconholds" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="VOICE.MUSICONHOLDS">MusicOnHolds</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedMusicOnHolds.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedMusicOnHolds =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="VOICE.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-musiconholds-count">\n <span>{{vm.selectedMusicOnHolds.length}}</span>\n <span translate="VOICE.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="VOICE.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllMusicOnHolds()" translate="VOICE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectMusicOnHolds()" translate="VOICE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedMusicOnHolds" csv-label="true" filename="musiconholds.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedMusicOnHolds($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- MUSICONHOLD TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedMusicOnHolds" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getMusicOnHolds">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'VOICE.NAME\' | translate }}</th>\n <th md-column md-order-by="mode">{{ \'VOICE.MODE\' | translate }}</th>\n <th md-column md-order-by="sort">{{ \'VOICE.SORT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.musiconholds.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="musiconhold" md-select-id="id" ng-repeat="musiconhold in vm.musiconholds.rows">\n <td md-cell ng-if="musiconhold.userpic"><img class="avatar" alt="{{musiconhold.name}}" ng-src="api/users/{{musiconhold.id}}/avatar" /></td>\n <td md-cell ng-if="!musiconhold.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{musiconhold.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(musiconhold, ev) : vm.createOrEditMusicOnHold($event, musiconhold)" md-cell class="id ">{{musiconhold.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(musiconhold, ev) : vm.createOrEditMusicOnHold($event, musiconhold)" md-cell class="name ">{{musiconhold.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(musiconhold, ev) : vm.createOrEditMusicOnHold($event, musiconhold)" md-cell class="mode ">{{ \'VOICE.\' + vm.arraymode[musiconhold.mode].option | uppercase | translate }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(musiconhold, ev) : vm.createOrEditMusicOnHold($event, musiconhold)" md-cell class="sort ">{{ \'VOICE.\' + vm.arraysort[musiconhold.sort].option | uppercase | translate }}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(musiconhold, $event )" translate="VOICE.EDIT_MUSICONHOLD">\n Edit MusicOnHold\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(musiconhold, $event )" translate="VOICE.DELETE_MUSICONHOLD">\n Delete MusicOnHold\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.musiconholds.count}}" md-on-paginate="vm.getMusicOnHolds" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / MUSICONHOLD TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD MUSICONHOLD BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-musiconhold-button" ng-click="vm.createOrEditMusicOnHold($event)" aria-label="add musiconhold" translate translate-attr-aria-label="VOICE.ADD_MUSICONHOLD">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD MUSICONHOLD BUTTON --\x3e\n</div>'),e.put("app/main/apps/voice/views/outboundRoutes/create/dialog.html",'<md-dialog ng-init="vm.initialize()" class="outbound-route-dialog" aria-label="New OutboundRoute">\n <form name="outboundrouteForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.newOutboundRoute ? \'VOICE.NEW_OUTBOUNDROUTE\' : \'VOICE.EDIT_OUTBOUNDROUTE\' | translate\n }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span>({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="VOICE.PHONENUMBER">PhoneNumber</label>\n <input type="text" name="exten" ng-model="vm.outboundRoute.exten" ng-required="true" autofocus>\n <div ng-messages="outboundrouteForm[\'exten\'].$error" ng-show="outboundrouteForm[\'exten\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PHONENUMBER_REQUIRED">PhoneNumber field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.outboundRoute.context" required>\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts.rows" ng-disabled="context.canSelect === false">{{ context.name }}</md-option>\n </md-select>\n <div ng-messages="outboundrouteForm[\'context\'].$error" ng-show="outboundrouteForm[\'context\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.RECORDING">Recording</label>\n <md-select name="recordingFormat" ng-model="vm.outboundRoute.recordingFormat" ng-change="vm.getRouting()" required>\n <md-option ng-value="\'none\'">none</md-option>\n <md-option ng-value="\'wav\'">wav</md-option>\n <md-option ng-value="\'WAV\'">wav49</md-option>\n <md-option ng-value="\'gsm\'">gsm</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.RECORDING"></span></div>\n <div ng-messages="outboundrouteForm[\'recordingFormat\'].$error" ng-show="outboundrouteForm[\'recordingFormat\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.RECORDING_REQUIRED">Recording field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CUTDIGITS">CutDigits</label>\n <input type="number" name="cutdigits" ng-model="vm.outboundRoute.cutdigits" min="0">\n <div ng-messages="outboundrouteForm[\'cutdigits\'].$error" ng-show="outboundrouteForm[\'cutdigits\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CUTDIGITS_REQUIRED">CutDigits field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.CUTDIGITS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CutDigits must be a valid greater\n or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.outboundRoute.alias" ng-change="vm.getRouting()">\n <div ng-messages="outboundrouteForm[\'alias\'].$error" ng-show="outboundrouteForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ALIAS_REQUIRED">Alias field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.outboundRoute.description">\n <div ng-messages="outboundrouteForm[\'description\'].$error" ng-show="outboundrouteForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newOutboundRoute" ng-click="vm.saveOutboundRoute()" class="send-button md-accent md-raised" ng-disabled="outboundrouteForm.$invalid || outboundrouteForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newOutboundRoute" ng-click="vm.addNewOutboundRoute()" class="send-button md-accent md-raised" ng-disabled="outboundrouteForm.$invalid" aria-label="ADD" translate="VOICE.ADD_OUTBOUNDROUTE" translate-attr-aria-label="VOICE.ADD_OUTBOUNDROUTE">\n ADD OUTBOUNDROUTE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newOutboundRoute" ng-click="vm.deleteOutboundRoute($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/outboundRoutes/edit/view.html",'<div ng-init="vm.onInit()" id="voice-outbound-route" class="page-layout simple tabbed" layout="column">\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-outbound-routes-button md-icon-button" aria-label="Go to outbound routes" ng-click="vm.gotoOutboundRoutes()" translate translate-attr-aria-label="VOICE.GO_TO_OUTBOUNDROUTES">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n <div layout="row" layout-align="start center">\n <div class="outbound-route-image" hide-xs>\n <img ng-src="assets/images/business/outboundroutes.jpg">\n </div>\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.outboundRoute.id}}\n <span ng-if="vm.outboundRoute.exten">{{vm.outboundRoute.exten}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="VOICE.CREATED_AT"></span> <span>{{vm.outboundRoute.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveOutboundRoute()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (actionsForm.$invalid)" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n </div>\n </div>\n \x3c!-- /HEADER --\x3e\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n \x3c!-- SETTINGS TAB --\x3e\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="outbound-route-detail-form-container md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="VOICE.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="VOICE.PHONENUMBER">PhoneNumber</label>\n <input type="text" name="exten" ng-model="vm.outboundRoute.exten" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'exten\'].$error" ng-show="generalForm[\'exten\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PHONENUMBER_REQUIRED">PhoneNumber field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.outboundRoute.context" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts.rows" ng-disabled="context.canSelect === false">{{ context.name }}</md-option>\n </md-select>\n <div ng-messages="generalForm[\'context\'].$error" ng-show="generalForm[\'context\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.RECORDING">Recording</label>\n <md-select name="recordingFormat" ng-model="vm.outboundRoute.recordingFormat" ng-change="vm.onActionsTabSelection()" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'none\'">none</md-option>\n <md-option ng-value="\'wav\'">wav</md-option>\n <md-option ng-value="\'WAV\'">wav49</md-option>\n <md-option ng-value="\'gsm\'">gsm</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.RECORDING"></span></div>\n <div ng-messages="generalForm[\'recordingFormat\'].$error" ng-show="generalForm[\'recordingFormat\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.RECORDING_REQUIRED">Recording field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CUTDIGITS">CutDigits</label>\n <input type="number" name="cutdigits" ng-model="vm.outboundRoute.cutdigits" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'cutdigits\'].$error" ng-show="generalForm[\'cutdigits\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CUTDIGITS_REQUIRED">CutDigits field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.CUTDIGITS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CutDigits must be a valid\n greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.outboundRoute.alias" ng-change="vm.onActionsTabSelection()" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'alias\'].$error" ng-show="generalForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ALIAS_REQUIRED">Alias field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.outboundRoute.description" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n \x3c!-- /SETTINGS TAB --\x3e\n \x3c!-- ACTIONS TAB --\x3e\n <md-tab md-on-select="vm.onActionsTabSelection()">\n <md-tab-label>\n <span translate="VOICE.ACTIONS">ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="outbound-route-detail-form-container no-padding no-margin">\n <div class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- APPLICATIONS LIST --\x3e\n <div class="navigation-simple sidenav main-sidenav md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="20" ng-if="vm.crudPermissions.canEdit">\n <md-list class="no-padding">\n <md-subheader class="md-no-sticky">\n <span translate="VOICE.APPLICATIONS_LIST">\n Applications List\n </span>\n </md-subheader>\n </md-list>\n <md-divider class="no-margin"></md-divider>\n <md-list ng-sortable="vm.sortableAppsOptions">\n <md-list-item class="handle" ng-repeat="a in vm.apps">\n <div layout="row">\n <md-icon md-font-icon="icon-apps" class="s16 mr-15"></md-icon>\n <p class="text-truncate" translate="VOICE.{{(a.appAlias || a.appType) | uppercase}}">{{a.appAlias ||\n a.appType}}</p>\n </div>\n </md-list-item>\n </md-list>\n </div>\n \x3c!-- /APPLICATIONS LIST --\x3e\n <div flex></div>\n \x3c!-- ROUTING --\x3e\n <div class="main scrollable md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="{{vm.crudPermissions.canEdit ? 75 : 100}}">\n <div ng-if="vm.pendingChanges" class="p-10 md-amber-300-bg">\n <md-icon md-font-icon="icon-information-outline" aria-label="Save reminder"></md-icon>\n <span class="no-margin font-size-12 line-height-30" translate="VOICE.HELP.SAVE_ROUTES"></span>\n </div>\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm.selectedApplications.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">Drag & Drop Routing</span>\n <div flex></div>\n <ms-search-bar query="vm.query" debounce="300"></ms-search-bar>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm.selectedApplications.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm.selectedApplications.length}}\n {{vm.selectedApplications.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm.crudPermissions.canDelete" class="md-icon-button" ng-click="vm.deleteSelectedApplications($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedApplications">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </th>\n <th md-column width="10px"></th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body ng-sortable="vm.sortableRoutingOptions">\n <tr md-row md-select="a" md-select-id="id" ng-repeat="a in vm.applications.rows | filter:vm.query.filter as results">\n <td md-cell>\n <md-icon md-font-icon="icon-drag-vertical" class="s16 handle"></md-icon>\n </td>\n <td md-cell ng-click="vm.editApplication($event, $index)">{{a.app.toLowerCase() ===\n \'agi\' ? \'Cally-Square\' : a.app | ucfirst}}<span ng-if="a.appType.toLowerCase() === \'custom\'">*</span></td>\n <td md-cell ng-click="vm.editApplication($event, $index)"><span class="text-truncate actionAppData">{{a.appdata}}</span></td>\n <td md-cell ng-click="vm.editInterval($event, $index)">{{a.IntervalId ? \'From List\' :\n a.interval}}</td>\n <td md-cell>\n <md-button ng-click="vm.editInterval($event, $index)" class="md-icon-button" aria-label="Interval">\n <md-icon md-font-icon="icon-timer"></md-icon>\n <md-tooltip>\n {{a.IntervalId ? \'From List\' : (a.interval === \'*,*,*,*\' ? \'Always\' : \'Custom\')}}\n </md-tooltip>\n </md-button>\n </td>\n <td md-cell ng-if="!vm.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editApplication($event, $index)" translate="VOICE.EDIT_APP">\n Edit App\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editInterval($event, $index)" translate="VOICE.EDIT_INTERVAL">\n Edit Interval\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteApplication(a, $index, $event)" translate="VOICE.DELETE_APP">\n Delete App\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-class="{ \'ng-cloak\': results.length > 0 }">\n <td md-cell colspan="6">\n <span class="text-boxed-light" translate="VOICE.NO_APPS_AVAILABLE">No applications\n available</span>\n </td>\n </tr>\n </tbody>\n <tfoot md-foot>\n <tr md-row>\n <td md-cell colspan="7">\n <span><em translate="VOICE.LEGEND.CUSTOM_APPLICATION">(*) - Custom application.</em></span>\n </td>\n </tr>\n </tfoot>\n </table>\n </md-table-container>\n </div>\n \x3c!-- /ROUTING --\x3e\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n \x3c!-- /ACTIONS TAB --\x3e\n </md-tabs>\n </div>\n \x3c!-- /CONTENT --\x3e\n</div>'),e.put("app/main/apps/voice/views/outboundRoutes/outboundRoutes.html",'<div id="outbound-routes" class="page-layout simple left-sidenav inner-sidenav">\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="VOICE.OUTBOUNDROUTES">OutboundRoutes</span>\n </div>\n </div>\n <div layout="row">\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n </div>\n </div>\n <div ng-show="vm.selectedOutboundRoutes.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n <div class="close-button-wrapper" ng-click="vm.selectedOutboundRoutes = []">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="VOICE.BACK">Back</span>\n </md-button>\n </div>\n <div flex layout="row" layout-align="space-between center">\n <div>\n <span class="selected-outbound-routes-count">\n <span>{{ vm.selectedOutboundRoutes.length }}</span>\n <span translate="VOICE.SELECTED">selected</span>\n </span>\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="VOICE.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectedOutboundRoutes = vm.outboundRoutes.rows" translate="VOICE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.selectedOutboundRoutes = []" translate="VOICE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedOutboundRoutes" csv-label="true" filename="outbound_routes.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedOutboundRoutes($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n <div class="content" md-background-bg layout="row" layout-align="start start">\n <div class="main scrollable" ms-scroll>\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedOutboundRoutes" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getOutboundRoutes">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n <th md-column md-order-by="exten">{{ \'VOICE.PHONENUMBER\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'VOICE.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.outboundRoutes.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="route" md-select-id="id" ng-repeat="route in vm.outboundRoutes.rows">\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditOutboundRoute($event, route)" md-cell class="id ">{{ route.id }}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditOutboundRoute($event, route)" md-cell class="exten ">{{ route.exten }}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditOutboundRoute($event, route)" md-cell class="description ">{{ route.description }}</td>\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editRoute(route)" translate="VOICE.EDIT_OUTBOUNDROUTE">\n Edit OutboundRoute\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteConfirm(route, $event)" translate="VOICE.DELETE_OUTBOUNDROUTE">\n Delete OutboundRoute\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{ \'VOICE.PAGE\' | translate }}:\', rowsPerPage: \'{{ \'VOICE.ROWSPERPAGE\' | translate }}:\', of: \'{{ \'VOICE.OF\' | translate }}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{ vm.outboundRoutes.count }}" md-on-paginate="vm.getOutboundRoutes" md-page-select>\n </md-table-pagination>\n </md-card>\n </div>\n </div>\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-outbound-route-button" ng-click="vm.createOrEditOutboundRoute($event)" aria-label="add outbound route" translate translate-attr-aria-label="VOICE.ADD_OUTBOUNDROUTE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n</div>'),e.put("app/main/apps/voice/views/realtime/abandonedcalls/view.html",'<md-toolbar class="md-table-toolbar md-default table-header">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.ABANDONEDQUEUECALLS">ABANDONED QUEUE CALLS</span>\n <ms-search-bar on-search="vm.getAbandonedCalls()" query="vm.query" on-collapse="vm.query.filter = undefined" debounce="300">\n </ms-search-bar>\n <div flex></div>\n\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getAbandonedCalls()"></ms-quick-filter>\n\n <md-button class="md-icon-button" ng-click="vm.refresh && vm.refreshAbandonedCalls($event)" aria-label="Reload" translate translate-attr-label="DASHBOARDS.RELOAD">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip ng-if="vm.showTooltip" md-visible="vm.showTooltip">{{\'DASHBOARDS.CLICKRELOAD\' | translate}}\n </md-tooltip>\n </md-button>\n </div>\n</md-toolbar>\n<md-table-container>\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getAbandonedCalls">\n <tr md-row>\n <th md-column md-order-by="id">ID</th>\n <th md-column md-order-by="calleridname">{{\'DASHBOARDS.FULLNAME\' | translate}}</th>\n <th md-column md-order-by="calleridnum">{{\'DASHBOARDS.PHONE\' | translate}}</th>\n <th md-column md-order-by="queue">{{\'DASHBOARDS.QUEUE\' | translate}}</th>\n <th md-column md-order-by="queuecallerabandonAt">{{\'DASHBOARDS.ABANDONAT\' | translate}}</th>\n <th md-column md-order-by="lastAssignedTo">{{\'DASHBOARDS.LASTASSIGNEDTO\' | translate}}</th>\n <th md-column md-order-by="disposition">{{\'DASHBOARDS.DISPOSITION\' | translate}}</th>\n <th md-column md-order-by="disposition">{{\'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}</th>\n <th md-column md-order-by="disposition">{{\'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.abandonedCalls.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="call in vm.abandonedCalls.rows">\n <td md-cell class="id">{{call.id}}</td>\n <td md-cell class="firstName" privacy ng-cloak>{{call.calleridname}}</td>\n <td md-cell class="list" privacy ng-cloak>{{call.calleridnum}}</td>\n <td md-cell class="list">{{vm.queuesMap[call.queue]}}</td>\n <td md-cell class="list">\n {{call.queuecallerabandonAt ? (call.queuecallerabandonAt | formatdate) : (call.queuecallerexitAt | formatdate) }}\n </td>\n <td md-cell class="list">{{call.lastAssignedTo}}</td>\n <td md-cell class="list">{{ call.disposition }}</td>\n <td md-cell class="list">{{ call.secondDisposition }}</td>\n <td md-cell class="list">{{ call.thirdDisposition }}</td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="2">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button ng-click="$mdMenu.open()" class="text-capitalize" translate="DASHBOARDS.ASSIGNTO">\n Assigned\n to</md-button>\n <md-menu-content>\n <md-menu-item ng-if="call.lastAssignedTo">\n <md-button ng-click="vm.assignTo(call)"><em translate="DASHBOARDS.NONE">Not Assigned</em>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.agents.rows.length" ng-repeat="agent in vm.agents.rows">\n <md-button ng-click="vm.assignTo(call,agent)">{{agent.name}}</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.dispose(call)" class="text-capitalize" translate="DASHBOARDS.DISPOSE">\n Dispose\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.abandonedCalls.count}}" md-on-paginate="vm.getAbandonedCalls" md-page-select></md-table-pagination>'),e.put("app/main/apps/voice/views/realtime/agents/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.AGENTS">Agents</span>\n <div flex></div>\n <ms-search-bar on-search="vm.onInit()" query="vm.query" on-collapse="vm.query.filter = undefined; vm.onInit()" debounce="300"></ms-search-bar>\n <md-select ng-model="vm.query.globalStatusFilter" class="md-caption" ng-change="vm.query.pauseTypeFilter = \'\'; vm.onInit()">\n <md-option ng-value="\'\'">{{ \'VOICE.ALL\' | translate }}</md-option>\n <md-option value="pause">{{ \'VOICE.PAUSE\' | translate }}</md-option>\n <md-option value="*pause">{{ \'VOICE.PARTIALPAUSE\' | translate }}</md-option>\n <md-option value="busy">{{ \'VOICE.BUSY\' | translate }}</md-option>\n <md-option value="idle">{{ \'VOICE.IDLE\' | translate }}</md-option>\n </md-select>\n <md-select ng-if="vm.isPause(vm.query.globalStatusFilter)" ng-model="vm.query.pauseTypeFilter" class="md-caption" ng-change="vm.onInit()">\n <md-option ng-value="\'\'">All</md-option>\n <md-option value="DEFAULT PAUSE">DEFAULT PAUSE</md-option>\n <md-option value="ACW">ACW</md-option>\n <md-option value="LOGININPAUSE">LOGININPAUSE</md-option>\n <md-option value="Auto-Pause">AUTOPAUSE</md-option>\n <md-option ng-value="pause.name" ng-repeat="pause in vm.pauses.rows">{{pause.name}}</md-option>\n </md-select>\n </div>\n</md-toolbar>\n\x3c!-- AGENT TABLE --\x3e\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.order" md-on-reorder="vm.onInit">\n <tr md-row border="1">\n <th class="bv text-center" colspan="5">{{ \'VOICE.AGENT\' | translate }}</th>\n <th class="bv bl text-center" colspan="2">{{ \'VOICE.VOICE\' | translate }}</th>\n <th ng-if="vm.license.chat" class="bv bl text-center" colspan="2">{{ \'CHAT.CHAT\' | translate }}</th>\n <th ng-if="vm.license.mail" class="bv bl text-center" colspan="2">{{ \'MAIL.MAIL\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="bv bl text-center" colspan="2">{{ \'SMS.SMS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="bv bl text-center" colspan="2">\n {{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="bv bl text-center" colspan="2">\n {{ \'WHATSAPP.WHATSAPP\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n </tr>\n <tr md-row>\n <th class="bl" colspan="2" md-column md-order-by="fullname">\n {{ \'VOICE.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">\n {{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">\n {{ \'VOICE.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">\n {{ \'VOICE.PAUSE_TIME\' | translate }}</th>\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\n <th ng-if="vm.license.chat" class="bl text-center">{{ \'CHAT.STATUS\' | translate }}</th>\n <th ng-if="vm.license.chat" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'CHAT.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.mail" class="bl text-center">{{ \'MAIL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.mail" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'MAIL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.messaging" class="bl text-center">{{ \'SMS.STATUS\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'SMS.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.openchannel" class="bl text-center">{{ \'OPENCHANNEL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'OPENCHANNEL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.fax" class="bl text-center">{{ \'FAX.STATUS\' | translate }}</th>\n <th ng-if="vm.license.fax" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'FAX.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.whatsapp" class="bl text-center">{{ \'WHATSAPP.STATUS\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'WHATSAPP.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.order.length">\n <td md-cell colspan="19">\n <div layout="row" layout-align="center center">\n <span>{{ \'VOICE.NO_AGENT_ONLINE\' | translate }}</span>\n </div>\n </td>\n </tr>\n <tr md-select="vm.agents[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td class="bt padding-5">\n <div layout="row" layout-align="start center">\n <img class="avatar" ng-src="{{vm.agents[value].userpic && \'api/users/\'+vm.agents[value].id+\'/avatar\' || \'assets/images/avatars/profile.png\'}}">\n <div layout="column">\n <span>{{vm.agents[value].fullname}}</span>\n <span>{{vm.agents[value].internal}}</span>\n </div>\n </div>\n </td>\n <td class="bt padding-5">\n <div layout="row" layout-align="start center" ng-if="vm.license.screenrecording && (vm.agents[value].phoneBarEnableScreenRecordingByAgent || vm.agents[value].phoneBarEnableAutomaticScreenRecording)">\n <div class="column" ng-if="vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: green; font-size: 36px;" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'VOICE.TOOLTIP_SCREENRECORDING_ON\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n <div class="column" ng-if="!vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: gray" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'VOICE.TOOLTIP_SCREENRECORDING_OFF\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n </div>\n </td>\n <td class="bt">\n'+" <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','busy':'indigo-100-bg','*pause':'amber-50-bg','pause':'amber-200-bg'}[vm.agents[value].globalStatus]\">{{\n vm.isPause(vm.agents[value].globalStatus) ? '' : vm.agents[value].globalStatus | uppercase }}\n {{ vm.isPause(vm.agents[value].globalStatus) ? (vm.isPartialPause(vm.agents[value].globalStatus) ?\n '*'+vm.agents[value].pauseType || 'DEFAULT PAUSE' : vm.agents[value].pauseType || 'DEFAULT PAUSE') :\n ''}}</span>\n </td>\n <td class=\"bt custom-column\">\n <timer start-time=\"vm.agents[value].lastLoginAt\"></timer>\n </td>\n <td class=\"bt custom-column\">\n <timer ng-if=\"vm.isPause(vm.agents[value].globalStatus) || vm.isPartialPause(vm.agents[value].globalStatus)\" start-time=\"vm.agents[value].lastPauseAt\"></timer>\n </td>\n <td class=\"bt bl\">\n <div layout=\"row\">\n <span ng-if=\"!vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','talking':'indigo-100-bg','ringing':'orange-400-bg','pause':'amber-200-bg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].voiceStatus | uppercase }}</span>\n <span ng-if=\"vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5 orange-400-bg\">ONHOLD</span>\n </div>\n </td>\n <td class=\"bt bl\">\n <div layout=\"column\">\n <span ng-if=\"vm.agents[value].queue\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].queue }}</span>\n <span ng-if=\"vm.agents[value].destconnectedlinenum\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\" privacy ng-cloak>{{\n vm.agents[value].destconnectedlinenum }}</span>\n <span ng-if=\"vm.agents[value].routealias\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].routealias }}</span>\n <span class=\"padding-5\" ng-if=\"vm.agents[value].queue || vm.agents[value].destconnectedlinenum\">\n <timer start-time=\"vm.agents[value].voiceStatusTime\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">\n </timer>\n </span>\n </div>\n </td>\n <td class=\"bt bl\" ng-if=\"vm.license.chat\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].chatStatus]\">{{\n vm.agents[value].chatStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td md-number class=\"bt text-center font-size-20\" ng-if=\"vm.license.chat\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].chatStatus]\">\n {{ vm.agents[value].chatCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.mail\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].mailStatus]\">{{\n vm.agents[value].mailStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.mail\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].mailStatus]\">\n {{ vm.agents[value].mailCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.messaging\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].smsStatus]\">{{\n vm.agents[value].smsStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.messaging\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].smsStatus]\">\n {{ vm.agents[value].smsCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.openchannel\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].openchannelStatus]\">{{\n vm.agents[value].openchannelStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.openchannel\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].openchannelStatus]\">\n {{ vm.agents[value].openchannelCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.fax\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].faxStatus]\">{{\n vm.agents[value].faxStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.fax\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].faxStatus]\">\n {{ vm.agents[value].faxCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.whatsapp\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].whatsappStatus]\">{{\n vm.agents[value].whatsappStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.whatsapp\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].whatsappStatus]\">\n {{ vm.agents[value].whatsappCurrentCapacity }}</td>\n <td class=\"bl bt padding-5 text-center\" ng-if=\"vm.crudPermissions.canEdit\">\n <md-menu>\n <md-button class=\"md-icon-button\" aria-label=\"More\" translate translate-attr-aria-label=\"STAFF.MORE\" ng-click=\"$mdOpenMenu($event)\">\n <md-icon md-font-icon=\"icon-dots-vertical\"></md-icon>\n </md-button>\n <md-menu-content width=\"4\">\n <md-menu-item>\n <md-button ng-click=\"vm.logout(vm.agents[value], $event)\" translate=\"VOICE.LOGOUT\">\n Logout\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click=\"vm.queueAdd(vm.agents[value], $event)\" translate=\"VOICE.AGENTADD_QUEUE\">\n Add Agent In Queue\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.license.screenrecording && vm.agents[value].phoneBarEnableScreenRecordingByAgent\">\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"VOICE.SCREENRECORDING\">Screen Recording\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if=\"!vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], true)\"><em translate=\"VOICE.START_SCREENRECORDING\">Start\n Screen Recording</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], false)\"><em translate=\"VOICE.STOP_SCREENRECORDING\">Stop\n Screen Recording</em></md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item>\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"VOICE.PAUSE\">Pause</md-button>\n <md-menu-content>\n <md-menu-item>\n <md-button ng-disabled=\" vm.agents[value].voicePause && 'DEFAULT PAUSE' === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value])\"><em translate=\"VOICE.DEFAULT_PAUSE\">Default\n Pause</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.pauses.rows.length\" ng-repeat=\"pause in vm.pauses.rows\">\n <md-button ng-disabled=\"vm.agents[value].voicePause && pause.name === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value], pause.name)\">{{pause.name}}\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.isPause(vm.agents[value].globalStatus)\">\n <md-button ng-click=\"vm.unPause(vm.agents[value])\" translate=\"VOICE.UNPAUSE\">\n Unpause\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label=\"{page: '{{'VOICE.PAGE' | translate}}:', rowsPerPage: '{{'VOICE.ROWSPERPAGE' | translate}}:', of: '{{'VOICE.OF' | translate}}'}\" md-limit=\"vm.query.limit\" md-limit-options=\"[10, 15, 20, 50, 100, 250]\" md-page=\"vm.query.page\" md-total=\"{{vm.filteredAgents.length}}\" md-on-paginate=\"vm.onInit\" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e"),e.put("app/main/apps/voice/views/realtime/outbound_calls/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.OUTBOUND_CALLS">Ooutbound Calls</span>\n </div>\n</md-toolbar>\n\n\x3c!-- OUTBOUNDS TABLE --\x3e\n<md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column width="30px"></th>\n <th md-column>{{ \'VOICE.SOURCE\' | translate }}</th>\n <th md-column>{{ \'VOICE.DESTINATION\' | translate }}</th>\n <th md-column>{{ \'VOICE.ALIAS\' | translate }}</th>\n <th md-column>{{ \'VOICE.DURATION\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.calls.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="call in vm.calls.rows | filter: vm.query.filter | limitTo: vm.query.limit: (vm.query.page - 1) * vm.query.limit">\n <td md-cell>\n <i ng-class="vm.channelStatus[call.channelstatedesc.toLowerCase()]"></i>\n </td>\n <td md-cell privacy ng-cloak>\n {{call.calleridname}}, {{call.calleridnum}}\n <span class="text-boxed" ng-if="call.answered">\n <timer ng-if="call.answertime" start-time="call.answertime"></timer>\n </span>\n </td>\n <td md-cell privacy ng-cloak>{{call.exten}}</td>\n <td md-cell>{{call.routealias}}</td>\n <td md-cell>\n <span class="text-boxed" ng-if="call.channelstatedesc.toLowerCase() !== \'hangup\'">\n <timer ng-if="call.starttime" start-time="call.starttime"></timer>\n </span>\n <span class="text-boxed" ng-if="call.channelstatedesc.toLowerCase() === \'hangup\'" translate="VOICE.CLOSING">Closing</span>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.calls.count}}"></md-table-pagination>\n\x3c!-- / OUTBOUNDS TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/voice/views/realtime/queue_calls/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.QUEUE_CALLS">Queue Calls</span>\n </div>\n</md-toolbar>\n\x3c!-- QUEUES TABLE --\x3e\n<md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column width="30px"></th>\n <th md-column>{{ \'VOICE.DID\' | translate }}</th>\n <th md-column>{{ \'VOICE.ALIAS\' | translate }}</th>\n <th md-column>{{ \'VOICE.QUEUE\' | translate }}</th>\n <th md-column>{{ \'VOICE.CALLER\' | translate }}</th>\n <th md-column>{{ \'VOICE.AGENT\' | translate }}</th>\n <th md-column>{{ \'VOICE.DURATION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.getSize(vm.rpcVoiceQueuesChannels)">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, channel) in vm.rpcVoiceQueuesChannels | limitObjectFromTo: vm.queryChannels.limit:(vm.queryChannels.page - 1) * vm.queryChannels.limit">\n <td md-cell>\n <md-icon ng-if="channel.queuecallerleaveAt" md-font-icon="icon-phone-in-talk green-fg"></md-icon>\n <md-icon ng-if="!channel.queuecallerleaveAt" md-font-icon="icon-phone-incoming md-accent"></md-icon>\n </td>\n <td md-cell>{{channel.exten}}</td>\n <td md-cell>{{channel.routealias}}</td>\n <td md-cell>{{channel.queue}}</td>\n <td md-cell privacy ng-cloak>{{channel.calleridnum}}</td>\n <td md-cell>\n <span ng-if="channel.queuecallerleaveAt">\n {{channel.connectedlinename}}, {{channel.connectedlinenum}}\n <span class="text-boxed">\n <timer start-time="channel.queuecallerleaveAt"></timer>\n </span>\n </span>\n <span ng-if="!channel.queuecallerleaveAt" class="text-boxed">\n {{ \'VOICE.WAITING_FOR_AGENT\' | translate }}\n <timer start-time="channel.queuecallerjoinAt"></timer>\n </span>\n </td>\n <td md-cell>\n <span class="text-boxed">\n <timer start-time="channel.queuecallerjoinAt"></timer>\n </span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="vm.hangup(channel.uniqueid)" translate="VOICE.HANGUP">\n Hangup\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.redirectToNumber($event, channel.uniqueid)" translate="VOICE.REDIRECT_TO_NUMBER">\n Number\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-menu class="no-margin">\n <md-button ng-mouseenter="vm.getAvailableAgents()" translate="VOICE.REDIRECT_TO_AGENT">\n Redirect to Agent</md-button>\n <md-menu-content>\n <md-menu-item ng-if="!vm.availableAgents">\n <md-progress-circular class="md-accent auto-margin" md-diameter="32" md-mode="indeterminate">\n </md-progress-circular>\n </md-menu-item>\n <md-menu-item ng-if="vm.availableAgents.length > 0" ng-repeat="agent in vm.availableAgents">\n <md-button ng-click="vm.redirectToAgent(channel.uniqueid, agent.name, agent.context)">\n {{agent.name}}</md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.availableAgents.length === 0">\n <span>No agents available</span>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n<md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.queryChannels.limit" md-page="vm.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm.getSize(vm.rpcVoiceQueuesChannels)}}" md-page-select></md-table-pagination>\n\x3c!-- / QUEUES TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/voice/views/realtime/queue_params/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.QUEUE_PARAMETERS">Params</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getQueues()" query="vm.query" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n\n\x3c!-- QUEUE TABLE --\x3e\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getQueues">\n <tr md-row>\n <th md-column>{{\'\n VOICE.NAME\' | translate}}</th>\n <th md-column>{{\'\n VOICE.TOTAL_OFFERED\' | translate}}</th>\n <th md-column>{{\'\n VOICE.ANSWERED\' | translate}}</th>\n <th md-column>{{\'\n VOICE.ABANDONED\' | translate}}</th>\n <th md-column>{{\'\n VOICE.UNMANAGED\' | translate}}</th>\n <th md-column>{{\'\n VOICE.AVG_HOLD_TIME\' | translate}}</th>\n <th md-column>{{\'\n VOICE.AVG_DURATION\' | translate}}</th>\n <th md-column>{{\'\n VOICE.AVG_BILLABLE\' | translate}}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.queues">\n <td md-cell colspan="8">\n <div layout="row" layout-align="center center">\n <span translate="MOTIONDIALER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(id, queue) in vm.queues">\n <td md-cell>\n <span>{{queue.name}}</span>\n </td>\n <td md-cell>\n \x3c!-- <span class="font-size-20 grey-fg">{{queue.total || 0}}</span> --\x3e\n <span class="font-size-20 grey-fg">{{ (queue.answered || 0) + (queue.abandoned || 0) + (queue.unmanaged || 0) }}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{queue.answered || 0}} ({{(queue.total) ? (queue.answered || 0) * 100/queue.total : 0 | number:1}}%)</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{queue.abandoned || 0}} ({{(queue.total) ? (queue.abandoned || 0) * 100/queue.total : 0 | number:1}}%)</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{queue.unmanaged || 0}}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{queue.total ? ((queue.sumHoldTime || 0) / queue.total) : 0 | number: 0 | secToTime | date:\'HH:mm:ss\'}}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{(queue.total ? ((queue.sumDuration || 0) / queue.total) : 0) | number: 0 | secToTime | date:\'HH:mm:ss\'}}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{queue.answered ? ((queue.sumBillable || 0) / queue.answered) : 0 | number: 0 | secToTime | date:\'HH:mm:ss\'}}</span>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>\n\x3c!-- / QUEUE TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/voice/views/realtime/queues/view.html",'<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.QUEUES">Queues</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getQueues">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'VOICE.NAME\' | translate }}</th>\n <th md-column>{{ \'VOICE.LOGGED_IN\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'VOICE.PAUSED\' | translate }}</th>\n <th md-column>{{ \'VOICE.TALKING\' | translate }}</th>\n <th md-column>{{ \'VOICE.BUSY\' | translate }}</th>\n <th md-column>{{ \'VOICE.WAITING\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.queues.count > 0">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="queue" md-select-id="id" ng-repeat="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedInDb }} ({{ queue.loggedIn }})</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.talking }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.busy }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.editQueue($event, queue)" translate="VOICE.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.addAgent($event, queue)" translate="VOICE.AGENTSADD_QUEUE">\n Add Agents to queue\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),e.put("app/main/apps/voice/views/realtime/realtime.html",'<div id="realtime" class="page-layout simple tabbed" layout="column" ng-cloak>\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.AGENTS">Agents</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.TELEPHONES">Telephones</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.TRUNKS">Trunks</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.QUEUES">Queues</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.QUEUE_CALLS">Queue Calls</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.ABANDONEDCALLS">Abandoned Queue Calls</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.QUEUE_PARAMS">Queue Parameters</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.OUTBOUND_CALLS">Outbound Calls</span>\n </md-tab-label>\n </md-tab>\n </md-tabs>\n\n <md-card ui-view></md-card>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/voice/views/realtime/telephones/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.TELEPHONES">Telephones</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getTelephones()" query="vm.query" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n\n\x3c!-- AGENT TABLE --\x3e\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTelephones">\n <tr md-row>\n <th md-column md-order-by="fullname">{{ \'VOICE.ACCOUNTNAME\' | translate }}</th>\n <th md-column md-order-by="internal">{{ \'VOICE.INTERNAL\' | translate }}</th>\n <th md-column>{{ \'VOICE.PHONE_STATE\' | translate }}</th>\n <th md-column>{{ \'VOICE.PHONE_STATUS\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.telephones">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="telephone" md-select-id="id" ng-repeat="(id, telephone) in vm.telephones">\n <td md-cell>{{telephone.fullname}}</td>\n <td md-cell>{{telephone.internal}}</td>\n <td md-cell>\n <i ng-class="vm.stateClass[telephone.state]">\n <md-tooltip>{{\'VOICE.\' + telephone.state | uppercase | translate}}</md-tooltip>\n </i>\n </td>\n <td md-cell>\n <i ng-class="vm.statusClass[telephone.status]">\n <md-tooltip>{{\'VOICE.\' + telephone.status | uppercase | translate}}</md-tooltip>\n </i>\n <span ng-if="telephone.status === \'registered\'" class="text-boxed">{{telephone.address}}</span>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getTelephones" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/voice/views/realtime/trunks/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.TRUNKS">Telephones</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getTrunks()" query="vm.query" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n\n\x3c!-- TRUNKS TABLE --\x3e\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head>\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTrunks">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'VOICE.NAME\' | translate }}</th>\n <th md-column>{{ \'VOICE.TRUNK_STATUS\' | translate }}</th>\n <th md-column>{{ \'VOICE.REGISTRY\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.trunks">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(id, trunk) in vm.trunks">\n <td md-cell>{{trunk.name}}</td>\n <td md-cell>\n <i ng-class="vm.statusClass[trunk.status.toLowerCase()]">\n <md-tooltip>{{\'VOICE.\' + trunk.status | uppercase | translate}}</md-tooltip>\n </i>\n <span ng-if="trunk.status === \'registered\'" class="text-boxed">{{trunk.address}}</span>\n </td>\n <td md-cell>\n <i ng-if="trunk.registry" ng-class="(trunk.stateRegistry.toLowerCase() === \'registered\') ? \'green-300-fg icon-checkbox-marked-circle\' : \'red-300-fg icon-close-circle\'">\n <md-tooltip>{{\'VOICE.\' + trunk.stateRegistry | uppercase | translate}}</md-tooltip>\n </i>\n <span ng-if="trunk.registry && trunk.host && trunk.port" class="text-boxed">{{trunk.host}}:{{trunk.port}}</span>\n <span ng-if="!trunk.registry" translate="VOICE.NO_REGISTRY">\n No Registry\n </span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="4">\n <md-menu-item>\n <md-button ng-click="vm.goToTrunk($event, trunk)" translate="VOICE.EDIT_TRUNK">\n Edit Trunk\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getTrunks" md-page-select></md-table-pagination>\n\x3c!-- / TRUNKS TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/voice/views/voicemails/create/dialog.html",'<md-dialog class="voicemail-dialog" aria-label="New Voicemail">\n <form name="voicemailForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="VOICE.FULLNAME">FullName</label>\n <input type="text" name="fullname" ng-model="vm.voicemail.fullname" ng-required="true" autofocus>\n\n <div ng-messages="voicemailForm[\'fullname\'].$error" ng-show="voicemailForm[\'fullname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.FULLNAME_REQUIRED">FullName field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.voicemail.email" ng-required="vm.voicemail.attach === \'yes\'">\n\n <div ng-messages="voicemailForm[\'email\'].$error" ng-show="voicemailForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="email">\n <span translate="VOICE.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.voicemail.password" placeholder="Password" translate translate-attr-placeholder="VOICE.PASSWORD" required>\n <div ng-messages="voicemailForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="VOICE.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.newVoicemail ">\n <label translate="VOICE.CONFIRM_PASSWORD">Confirm Password</label>\n <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword" required>\n <div ng-messages="voicemailForm.confirmPassword.$error" role="alert" multiple>\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n </div>\n <div ng-message="passwordMatch">\n <span translate="VOICE.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="VOICE.MAILBOX">MailBox</label>\n <input type="text" name="mailbox" ng-model="vm.voicemail.mailbox" ng-required="true" ng-disabled="!vm.newVoicemail">\n\n <div ng-messages="voicemailForm[\'mailbox\'].$error" ng-show="voicemailForm[\'mailbox\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MAILBOX_REQUIRED">MailBox field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ATTACH">Attach</label>\n <md-select name="attach" ng-model="vm.voicemail.attach">\n\n <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }} </md-option>\n </md-select>\n <div ng-messages="voicemailForm[\'attach\'].$error" ng-show="voicemailForm[\'attach\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ATTACH_REQUIRED">Attach field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newVoicemail" ng-click="vm.saveVoicemail()" class="send-button md-accent md-raised" ng-disabled="voicemailForm.$invalid || voicemailForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newVoicemail" ng-click="vm.addNewVoicemail()" class="send-button md-accent md-raised" ng-disabled="voicemailForm.$invalid" aria-label="ADD" translate="VOICE.ADD_VOICEMAIL" translate-attr-aria-label="VOICE.ADD_VOICEMAIL">\n ADD VOICEMAIL\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newVoicemail" ng-click="vm.deleteVoicemail($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/voicemails/edit/view.html",'<div id="voice-voicemail" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-voicemails-button md-icon-button" aria-label="Go to voicemails" ng-click="vm.gotoVoicemails()" translate translate-attr-aria-label="VOICE.GO_TO_VOICEMAILS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="voicemail-image" hide-xs>\n <img ng-src="assets/images/business/voicemails.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.voicemail.id}}\n <span ng-if="vm.voicemail.name">{{vm.voicemail.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="VOICE.CREATED_AT"></span> <span>{{vm.voicemail.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveVoicemail()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (advancedForm.$invalid) || (messagesForm.$invalid)" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="voicemail-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="VOICE.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="VOICE.FULLNAME">FullName</label>\n <input type="text" name="fullname" ng-model="vm.voicemail.fullname" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'fullname\'].$error" ng-show="generalForm[\'fullname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.FULLNAME_REQUIRED">FullName field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.voicemail.email" ng-required="vm.voicemail.attach === \'yes\'" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'email\'].$error" ng-show="generalForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="email">\n <span translate="VOICE.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.voicemail.password" placeholder="Password" translate translate-attr-placeholder="VOICE.PASSWORD" required>\n <div ng-messages="generalForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="VOICE.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.newVoicemail ">\n <label translate="VOICE.CONFIRM_PASSWORD">Confirm Password</label>\n <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword" required>\n <div ng-messages="generalForm.confirmPassword.$error" role="alert" multiple>\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n </div>\n <div ng-message="passwordMatch">\n <span translate="VOICE.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="VOICE.MAILBOX">MailBox</label>\n <input type="text" name="mailbox" ng-model="vm.voicemail.mailbox" ng-required="true" disabled>\n\n <div ng-messages="generalForm[\'mailbox\'].$error" ng-show="generalForm[\'mailbox\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MAILBOX_REQUIRED">MailBox field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.VOICEMAIL_CONTEXT">Voicemail_Context</label>\n <md-select name="context" ng-model="vm.voicemail.context" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts" ng-disabled="context.canSelect === false">{{ context.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.VOICEMAIL_CONTEXT"></span></div>\n <div ng-messages="generalForm[\'context\'].$error" ng-show="generalForm[\'context\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.VOICEMAIL_CONTEXT_REQUIRED">Voicemail_Context field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <md-tab-body>\n <div class="voicemail-detail-form-container advanced md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="VOICE.ADVANCED">ADVANCED</div>\n </div>\n <form name="advancedForm" novalidate>\n <md-input-container class="md-block">\n <label translate="VOICE.TIMEZONE">TimeZone</label>\n <input type="text" name="tz" ng-model="vm.voicemail.tz" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="advancedForm[\'tz\'].$error" ng-show="advancedForm[\'tz\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.TIMEZONE_REQUIRED">TimeZone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ATTACH">Attach</label>\n <md-select name="attach" ng-model="vm.voicemail.attach" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }} </md-option>\n </md-select>\n <div ng-messages="advancedForm[\'attach\'].$error" ng-show="advancedForm[\'attach\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ATTACH_REQUIRED">Attach field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ENVELOPE">Envelope</label>\n <md-select name="envelope" ng-model="vm.voicemail.envelope" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }} </md-option>\n </md-select>\n <div ng-messages="advancedForm[\'envelope\'].$error" ng-show="advancedForm[\'envelope\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ENVELOPE_REQUIRED">Envelope field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.DELETE">Delete</label>\n <md-select name="delete" ng-model="vm.voicemail.delete" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }} </md-option>\n </md-select>\n <div ng-messages="advancedForm[\'delete\'].$error" ng-show="advancedForm[\'delete\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DELETE_REQUIRED">Delete field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.EMAILBODY">EmailBody</label>\n <input type="text" name="emailbody" ng-model="vm.voicemail.emailbody" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="advancedForm[\'emailbody\'].$error" ng-show="advancedForm[\'emailbody\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.EMAILBODY_REQUIRED">EmailBody field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.EMAILSUBJECT">EmailSubject</label>\n <input type="text" name="emailsubject" ng-model="vm.voicemail.emailsubject" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="advancedForm[\'emailsubject\'].$error" ng-show="advancedForm[\'emailsubject\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.EMAILSUBJECT_REQUIRED">EmailSubject field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.MAXSECONDS">MaxSeconds</label>\n <input type="number" name="maxsecs" ng-model="vm.voicemail.maxsecs" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="advancedForm[\'maxsecs\'].$error" ng-show="advancedForm[\'maxsecs\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MAXSECONDS_REQUIRED">MaxSeconds field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.MAXSECONDS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MaxSeconds must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.MAXMESSAGES">MaxMessages</label>\n <input type="number" name="maxmsg" ng-model="vm.voicemail.maxmsg" min="0" max="9999" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="advancedForm[\'maxmsg\'].$error" ng-show="advancedForm[\'maxmsg\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MAXMESSAGES_REQUIRED">MaxMessages field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.MAXMESSAGES_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MaxMessages must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="VOICE.ERRORS.MAXMESSAGES_MUST_BE_LESS_THAN_OR_EQUAL_TO">MaxMessages must be a valid greater or equal than</span> <span>9999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.MESSAGES">MESSAGES</span>\n </md-tab-label>\n <md-tab-body>\n <div class="voicemail-detail-form-container messages md-background-bg md-whiteframe-1dp">\n <div ng-controller="VoicemailMessagesController as vm_dc" ng-init="vm_dc.init(vm.voicemail, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedVoicemailMessages.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.MESSAGES">Messages</span>\n <ms-search-bar on-search="vm_dc.getVoicemailMessages()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedVoicemailMessages.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedVoicemailMessages.length}} {{vm_dc.selectedVoicemailMessages.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedVoicemailMessages" csv-label="true" filename="voicemails.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedVoicemailMessages($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedVoicemailMessages" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getVoicemailMessages">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'VOICE.ID\' | translate }}\n </th>\n <th md-column md-order-by="callerid">\n {{ \'VOICE.CALLER_ID\' | translate }}\n </th>\n <th md-column md-order-by="duration">\n {{ \'VOICE.DURATION\' | translate }}\n </th>\n <th md-column md-order-by="audio">\n {{ \'VOICE.AUDIO\' | translate }}\n </th>\n <th md-column md-order-by="stamp">\n {{ \'VOICE.RECEIVED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="message" md-select-id="id" ng-repeat="message in vm_dc.voicemailMessages.rows">\n <td md-cell>\n {{message.id}}\n </td>\n <td md-cell>\n {{message.callerid}}\n </td>\n <td md-cell>\n {{message.duration}}\n </td>\n <td md-cell>\n \x3c!-- audio recording directive --\x3e\n <ms-recording id="message.id" model="\'voiceMailMessage\'"></ms-recording>\n \x3c!-- / audio recording directive --\x3e\n </td>\n <td md-cell>\n {{ message.stamp | formatdate }}\n </td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(message, $event)" translate="VOICE.DELETE_MESSAGE">\n Delete Message\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.voicemailMessages.rows.length">\n <td md-cell colspan="8">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="VOICE.NO_MESSAGE_AVAILABLE">No message available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.voicemailMessages.count}}" md-on-paginate="vm_dc.getVoicemailMessages" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/voice/views/voicemails/voicemails.html",'<div id="voicemails" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="VOICE.VOICEMAILS">Voicemails</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedVoicemails.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedVoicemails =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="VOICE.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-voicemails-count">\n <span>{{vm.selectedVoicemails.length}}</span>\n <span translate="VOICE.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="VOICE.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllVoicemails()" translate="VOICE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectVoicemails()" translate="VOICE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedVoicemails" csv-label="true" filename="voicemails.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedVoicemails($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- VOICEMAIL TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedVoicemails" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getVoicemails">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n <th md-column md-order-by="fullname">{{ \'VOICE.FULLNAME\' | translate }}</th>\n <th md-column md-order-by="email">{{ \'VOICE.EMAIL\' | translate }}</th>\n <th md-column md-order-by="mailbox">{{ \'VOICE.MAILBOX\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.voicemails.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="voicemail" md-select-id="id" ng-repeat="voicemail in vm.voicemails.rows">\n <td md-cell ng-if="voicemail.userpic"><img class="avatar" alt="{{voicemail.name}}" ng-src="api/users/{{voicemail.id}}/avatar" /></td>\n <td md-cell ng-if="!voicemail.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{voicemail.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voicemail, ev) : vm.createOrEditVoicemail($event, voicemail)" md-cell class="id ">{{voicemail.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voicemail, ev) : vm.createOrEditVoicemail($event, voicemail)" md-cell class="fullname ">{{voicemail.fullname}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voicemail, ev) : vm.createOrEditVoicemail($event, voicemail)" md-cell class="email ">{{voicemail.email}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voicemail, ev) : vm.createOrEditVoicemail($event, voicemail)" md-cell class="mailbox ">{{voicemail.mailbox}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(voicemail, $event )" translate="VOICE.EDIT_VOICEMAIL">\n Edit Voicemail\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(voicemail, $event )" translate="VOICE.DELETE_VOICEMAIL">\n Delete Voicemail\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.voicemails.count}}" md-on-paginate="vm.getVoicemails" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / VOICEMAIL TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD VOICEMAIL BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-voicemail-button" ng-click="vm.createOrEditVoicemail($event)" aria-label="add voicemail" translate translate-attr-aria-label="VOICE.ADD_VOICEMAIL">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD VOICEMAIL BUTTON --\x3e\n</div>'),e.put("app/main/apps/voice/views/voicePrefixes/create/dialog.html",'<md-dialog class="voicePrefix-dialog" aria-label="New voicePrefix">\n <form name="voicePrefixForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="VOICE.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.voicePrefix.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus>\n\n <div class="hint"><span translate="VOICE.HELP.NAME"></span></div>\n <div ng-messages="voicePrefixForm[\'name\'].$error" ng-show="voicePrefixForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="VOICE.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.OUTBOUNDROUTE">OutboundRoute</label>\n <md-select name="VoiceExtensionId" ng-model="vm.voicePrefix.VoiceExtensionId" required>\n <md-option ng-value="VoiceExtensionId.id" ng-repeat="VoiceExtensionId in vm.outboundRoutes" ng-disabled="VoiceExtensionId.canSelect === false">{{ VoiceExtensionId.exten }}</md-option>\n </md-select>\n <div ng-messages="voicePrefixForm[\'VoiceExtensionId\'].$error" ng-show="voicePrefixForm[\'VoiceExtensionId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.OUTBOUNDROUTE_REQUIRED">OutboundRoute field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CALLERIDALL">CallerIdAll</label>\n <input type="text" name="callerIdAll" ng-model="vm.voicePrefix.callerIdAll" ng-pattern="/"(.*)"\\s<(.*?)>$/">\n\n <div class="hint"><span translate="VOICE.HELP.CALLERIDALL"></span></div>\n <div ng-messages="voicePrefixForm[\'callerIdAll\'].$error" ng-show="voicePrefixForm[\'callerIdAll\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CALLERIDALL_REQUIRED">CallerIdAll field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="VOICE.ERRORS.CALLERIDALL_MUST_VALID_PATTERN" translate-values="{ regex: \'/"(.*)"\\s<(.*?)>$/\' }">CallerIdAll must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.voicePrefix.description">\n\n <div ng-messages="voicePrefixForm[\'description\'].$error" ng-show="voicePrefixForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newvoicePrefix" ng-click="vm.savevoicePrefix()" class="send-button md-accent md-raised" ng-disabled="voicePrefixForm.$invalid || voicePrefixForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newvoicePrefix" ng-click="vm.addNewvoicePrefix()" class="send-button md-accent md-raised" ng-disabled="voicePrefixForm.$invalid" aria-label="ADD" translate="VOICE.ADD_VOICEPREFIX" translate-attr-aria-label="VOICE.ADD_VOICEPREFIX">\n ADD VOICEPREFIX\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newvoicePrefix" ng-click="vm.deletevoicePrefix($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/voicePrefixes/edit/agentadd/agentadd.html",'<md-dialog class="voicePrefix-dialog" aria-label="voicePrefix" ng-init="vm.onInit()">\n <form name="voicePrefixForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="VOICE.AGENTADD_VOICEPREFIX">Add Agent to voicePrefix</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/voicePrefixes/edit/teamadd/teamadd.html",'<md-dialog class="voicePrefix-dialog" aria-label="voicePrefix" ng-init="vm.onInit()">\n <form name="voicePrefixForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="VOICE.TEAMS_ASSOCIATION">Teams Association</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/voicePrefixes/voicePrefixes.html",'<div id="voicePrefixes" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="VOICE.VOICEPREFIXES">VoicePrefixes</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedVoicePrefixes.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedVoicePrefixes =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="VOICE.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-voicePrefixes-count">\n <span>{{vm.selectedVoicePrefixes.length}}</span>\n <span translate="VOICE.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="VOICE.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllVoicePrefixes()" translate="VOICE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectVoicePrefixes()" translate="VOICE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedVoicePrefixes" csv-label="true" filename="voicePrefixes.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedVoicePrefixes($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- VOICEPREFIX TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedVoicePrefixes" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getVoicePrefixes">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'VOICE.NAME\' | translate }}</th>\n <th md-column md-order-by="VoiceExtensionId">{{ \'VOICE.OUTBOUNDROUTE\' | translate }}</th>\n <th md-column md-order-by="callerIdAll">{{ \'VOICE.CALLERIDALL\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'VOICE.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.voicePrefixes.rows.length">\n <td md-cell colspan="6">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="voicePrefix" md-select-id="id" ng-repeat="voicePrefix in vm.voicePrefixes.rows">\n <td md-cell ng-if="voicePrefix.userpic"><img class="avatar" alt="{{voicePrefix.name}}" ng-src="api/users/{{voicePrefix.id}}/avatar" /></td>\n <td md-cell ng-if="!voicePrefix.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{voicePrefix.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditvoicePrefix($event, voicePrefix)" md-cell class="id ">{{voicePrefix.id}}</td>\n <td ng-click="vm.createOrEditvoicePrefix($event, voicePrefix)" md-cell class="name ">{{voicePrefix.name}}</td>\n <td ng-click="vm.createOrEditvoicePrefix($event, voicePrefix)" md-cell class="VoiceExtensionId ">{{ (vm.outboundRoutes | filter : {\'id\':voicePrefix.VoiceExtensionId} : true)[0].exten }}</td>\n <td ng-click="vm.createOrEditvoicePrefix($event, voicePrefix)" md-cell class="callerIdAll ">{{voicePrefix.callerIdAll}}</td>\n <td ng-click="vm.createOrEditvoicePrefix($event, voicePrefix)" md-cell class="description ">{{voicePrefix.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(voicePrefix, $event )" translate="VOICE.EDIT_VOICEPREFIX">\n Edit voicePrefix\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(voicePrefix, $event )" translate="VOICE.AGENTADD_VOICEPREFIX">\n AgentAdd voicePrefix\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(voicePrefix, $event )" translate="VOICE.TEAMADD_VOICEPREFIX">\n teamadd voicePrefix\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(voicePrefix, $event )" translate="VOICE.DELETE_VOICEPREFIX">\n Delete voicePrefix\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.voicePrefixes.count}}" md-on-paginate="vm.getVoicePrefixes" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / VOICEPREFIX TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD VOICEPREFIX BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-voicePrefix-button" ng-click="vm.createOrEditvoicePrefix($event)" aria-label="add voicePrefix" translate translate-attr-aria-label="VOICE.ADD_VOICEPREFIX">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD VOICEPREFIX BUTTON --\x3e\n</div>'),e.put("app/main/apps/voice/views/voiceQueues/create/dialog.html",'<md-dialog class="voiceQueue-dialog" aria-label="New VoiceQueue">\n <form name="voiceQueueForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="VOICE.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.voiceQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newVoiceQueue">\n\n <div class="hint"><span translate="VOICE.HELP.NAME"></span></div>\n <div ng-messages="voiceQueueForm[\'name\'].$error" ng-show="voiceQueueForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="VOICE.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.voiceQueue.strategy" required>\n <md-option ng-value="\'ringall\'">Ringall</md-option>\n <md-option ng-value="\'rrmemory\'">Round Robin Memory</md-option>\n <md-option ng-value="\'leastrecent\'">Least Recent</md-option>\n <md-option ng-value="\'fewestcalls\'">Fewest Calls</md-option>\n <md-option ng-value="\'random\'">Random</md-option>\n <md-option ng-value="\'linear\'">Linear</md-option>\n <md-option ng-value="\'wrandom\'">Weight Random</md-option>\n </md-select>\n <div ng-messages="voiceQueueForm[\'strategy\'].$error" ng-show="voiceQueueForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.voiceQueue.description">\n\n <div ng-messages="voiceQueueForm[\'description\'].$error" ng-show="voiceQueueForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newVoiceQueue" ng-click="vm.saveVoiceQueue()" class="send-button md-accent md-raised" ng-disabled="voiceQueueForm.$invalid || voiceQueueForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newVoiceQueue" ng-click="vm.addNewVoiceQueue()" class="send-button md-accent md-raised" ng-disabled="voiceQueueForm.$invalid" aria-label="ADD" translate="VOICE.ADD_VOICEQUEUE" translate-attr-aria-label="VOICE.ADD_VOICEQUEUE">\n ADD VOICEQUEUE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newVoiceQueue" ng-click="vm.deleteVoiceQueue($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/voiceQueues/edit/agentadd/agentadd.html",'<md-dialog class="voiceQueue-dialog" aria-label="voiceQueue" ng-init="vm.onInit()">\n <form name="voiceQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="VOICE.AGENTADD_VOICEQUEUE">Add Agent to voiceQueue</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <md-input-container flex class="no-margin">\n <label translate="VOICE.PENALTY">Penalty</label>\n <input name="penalty" type="number" ng-model="vm.penalty" min="0" placeholder="0" required onkeypress="return event.charCode >= 48 && event.charCode <= 57 && this.value.length < 3">\n <div ng-messages="voiceQueueForm.penalty.$error" role="alert" multiple>\n <div ng-message="required">\n <span>{{ \'VOICE.ERRORS.PENALTY_REQUIRED\' | translate }}</span>\n </div>\n </div>\n </md-input-container>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit" add-disabled="vm.penalty === undefined"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/voiceQueues/edit/teamadd/teamadd.html",'<md-dialog class="voiceQueue-dialog" aria-label="voiceQueue" ng-init="vm.onInit()">\n <form name="voiceQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="VOICE.TEAMS_ASSOCIATION">Teams Association</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <md-input-container flex class="no-margin">\n <label translate="VOICE.PENALTY">Penalty</label>\n <input name="penalty" type="number" ng-model="vm.penalty" min="0" placeholder="0" required onkeypress="return event.charCode >= 48 && event.charCode <= 57 && this.value.length < 3">\n <div ng-messages="voiceQueueForm.penalty.$error" role="alert" multiple>\n <div ng-message="required">\n <span>{{ \'VOICE.ERRORS.PENALTY_REQUIRED\' | translate }}</span>\n </div>\n </div>\n </md-input-container>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit" add-disabled="vm.penalty === undefined"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/voiceQueues/edit/view.html",'<div id="voice-voiceQueue" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-voiceQueues-button md-icon-button" aria-label="Go to voiceQueues" ng-click="vm.gotoVoiceQueues()" translate translate-attr-aria-label="VOICE.GO_TO_VOICEQUEUES">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="voiceQueue-image" hide-xs>\n <img ng-src="assets/images/business/voiceQueues.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.voiceQueue.id}}\n <span ng-if="vm.voiceQueue.name">{{vm.voiceQueue.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="VOICE.CREATED_AT"></span> <span>{{vm.voiceQueue.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.teamadddialog(vm.voiceQueue, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n <md-tooltip><span translate="VOICE.TEAMADD_VOICEQUEUE"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.voiceQueue, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="VOICE.AGENTADD_VOICEQUEUE"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-plus"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.gotogoto(vm.voiceQueue, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n <md-tooltip><span translate="VOICE.GOTO_VOICEQUEUE"></span></md-tooltip>\n <md-icon md-font-icon="icon-cast"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveVoiceQueue()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (settingsForm.$invalid) || (announcementsForm.$invalid) || (advancedForm.$invalid)" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="voiceQueue-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="VOICE.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="VOICE.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.voiceQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="VOICE.HELP.NAME"></span></div>\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="VOICE.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.voiceQueue.strategy" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'ringall\'">Ringall</md-option>\n <md-option ng-value="\'rrmemory\'">Round Robin Memory</md-option>\n <md-option ng-value="\'leastrecent\'">Least Recent</md-option>\n <md-option ng-value="\'fewestcalls\'">Fewest Calls</md-option>\n <md-option ng-value="\'random\'">Random</md-option>\n <md-option ng-value="\'linear\'">Linear</md-option>\n <md-option ng-value="\'wrandom\'">Weight Random</md-option>\n </md-select>\n <div ng-messages="generalForm[\'strategy\'].$error" ng-show="generalForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.voiceQueue.timeout" min="0" value="15" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="VOICE.HELP.TIMEOUT"></span></div>\n <div ng-messages="generalForm[\'timeout\'].$error" ng-show="generalForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.MAXLENGTH">MaxLength</label>\n <input type="number" name="maxlen" ng-model="vm.voiceQueue.maxlen" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="VOICE.HELP.MAXLENGTH"></span></div>\n <div ng-messages="generalForm[\'maxlen\'].$error" ng-show="generalForm[\'maxlen\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MAXLENGTH_REQUIRED">MaxLength field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.MAXLENGTH_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MaxLength must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.RETRY">Retry</label>\n <input type="number" name="retry" ng-model="vm.voiceQueue.retry" min="0" value="2" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="VOICE.HELP.RETRY"></span></div>\n <div ng-messages="generalForm[\'retry\'].$error" ng-show="generalForm[\'retry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.RETRY_REQUIRED">Retry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.RETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Retry must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.WRAPUPTIME">WrapupTime</label>\n <input type="number" name="wrapuptime" ng-model="vm.voiceQueue.wrapuptime" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="VOICE.HELP.WRAPUPTIME"></span></div>\n <div ng-messages="generalForm[\'wrapuptime\'].$error" ng-show="generalForm[\'wrapuptime\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.WRAPUPTIME_REQUIRED">WrapupTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.WRAPUPTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WrapupTime must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.WEIGHT">Weight</label>\n <input type="number" name="weight" ng-model="vm.voiceQueue.weight" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="VOICE.HELP.WEIGHT"></span></div>\n <div ng-messages="generalForm[\'weight\'].$error" ng-show="generalForm[\'weight\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.WEIGHT_REQUIRED">Weight field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.WEIGHT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Weight must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.JOINWHENEMPTY">JoinWhenEmpty</label>\n <md-select name="joinempty" ng-model="vm.voiceQueue.joinempty" multiple ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'no\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'no\'">no</md-option>\n <md-option ng-value="\'yes\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'yes\'">yes</md-option>\n <md-option ng-value="\'strict\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'strict\'">strict</md-option>\n <md-option ng-value="\'loose\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'loose\'">loose</md-option>\n <md-option ng-value="\'paused\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'paused\'">paused</md-option>\n <md-option ng-value="\'penalty\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'penalty\'">penalty</md-option>\n <md-option ng-value="\'inuse\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'inuse\'">inuse</md-option>\n <md-option ng-value="\'ringing\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'ringing\'">ringing</md-option>\n <md-option ng-value="\'unavailable\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'unavailable\'">unavailable</md-option>\n <md-option ng-value="\'invalid\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'invalid\'">invalid</md-option>\n <md-option ng-value="\'unknown\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'unknown\'">unknown</md-option>\n <md-option ng-value="\'wrapup\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'wrapup\'">wrapup</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.JOINWHENEMPTY"></span></div>\n <div ng-messages="generalForm[\'joinempty\'].$error" ng-show="generalForm[\'joinempty\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.JOINWHENEMPTY_REQUIRED">JoinWhenEmpty field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.LEAVEWHENEMPTY">LeaveWhenEmpty</label>\n <md-select name="leavewhenempty" ng-model="vm.voiceQueue.leavewhenempty" multiple ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'no\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'no\'">no</md-option>\n <md-option ng-value="\'yes\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'yes\'">yes</md-option>\n <md-option ng-value="\'strict\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'strict\'">strict</md-option>\n <md-option ng-value="\'loose\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'loose\'">loose</md-option>\n <md-option ng-value="\'paused\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'paused\'">paused</md-option>\n <md-option ng-value="\'penalty\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'penalty\'">penalty</md-option>\n <md-option ng-value="\'inuse\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'inuse\'">inuse</md-option>\n <md-option ng-value="\'ringing\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'ringing\'">ringing</md-option>\n <md-option ng-value="\'unavailable\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'unavailable\'">unavailable</md-option>\n <md-option ng-value="\'invalid\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'invalid\'">invalid</md-option>\n <md-option ng-value="\'unknown\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'unknown\'">unknown</md-option>\n <md-option ng-value="\'wrapup\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'wrapup\'">wrapup</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.LEAVEWHENEMPTY"></span></div>\n <div ng-messages="generalForm[\'leavewhenempty\'].$error" ng-show="generalForm[\'leavewhenempty\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.LEAVEWHENEMPTY_REQUIRED">LeaveWhenEmpty field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.MUSICONHOLD">MusicOnHold</label>\n <md-select name="musiconhold" ng-model="vm.voiceQueue.musiconhold" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="musiconhold.name" ng-repeat="musiconhold in vm.musiconholds" ng-disabled="musiconhold.canSelect === false">{{ musiconhold.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.MUSICONHOLD"></span></div>\n <div ng-messages="generalForm[\'musiconhold\'].$error" ng-show="generalForm[\'musiconhold\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MUSICONHOLD_REQUIRED">MusicOnHold field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ANNOUNCETOAGENT">AnnounceToAgent</label>\n <md-select name="announce" ng-model="vm.voiceQueue.announce" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'FALSE\'">None</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + announce.save_name" ng-repeat="announce in vm.sounds" ng-disabled="announce.canSelect === false">{{ announce.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.ANNOUNCETOAGENT"></span></div>\n <div ng-messages="generalForm[\'announce\'].$error" ng-show="generalForm[\'announce\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ANNOUNCETOAGENT_REQUIRED">AnnounceToAgent field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.voiceQueue.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.ANNOUNCEMENTS">ANNOUNCEMENTS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="voiceQueue-detail-form-container settings md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="VOICE.SETTINGS">SETTINGS</div>\n </div>\n <form name="settingsForm" novalidate>\n <md-input-container class="md-block">\n <label translate="VOICE.ANNOUNCEFREQUENCY">AnnounceFrequency</label>\n <input type="number" name="announce_frequency" ng-model="vm.voiceQueue.announce_frequency" min="0" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="VOICE.HELP.ANNOUNCEFREQUENCY"></span></div>\n <div ng-messages="settingsForm[\'announce_frequency\'].$error" ng-show="settingsForm[\'announce_frequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ANNOUNCEFREQUENCY_REQUIRED">AnnounceFrequency field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.ANNOUNCEFREQUENCY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AnnounceFrequency must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.MINANNOUNCEFREQUENCY">MinAnnounceFrequency</label>\n <input type="number" name="min_announce_frequency" ng-model="vm.voiceQueue.min_announce_frequency" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="VOICE.HELP.MINANNOUNCEFREQUENCY"></span></div>\n <div ng-messages="settingsForm[\'min_announce_frequency\'].$error" ng-show="settingsForm[\'min_announce_frequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MINANNOUNCEFREQUENCY_REQUIRED">MinAnnounceFrequency field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.MINANNOUNCEFREQUENCY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MinAnnounceFrequency must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.PERIODICANNOUNCEFREQUENCY">PeriodicAnnounceFrequency</label>\n <input type="number" name="periodic_announce_frequency" ng-model="vm.voiceQueue.periodic_announce_frequency" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="VOICE.HELP.PERIODICANNOUNCEFREQUENCY"></span></div>\n <div ng-messages="settingsForm[\'periodic_announce_frequency\'].$error" ng-show="settingsForm[\'periodic_announce_frequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PERIODICANNOUNCEFREQUENCY_REQUIRED">PeriodicAnnounceFrequency field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.PERIODICANNOUNCEFREQUENCY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">PeriodicAnnounceFrequency must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.RANDOMPERIODICANNOUNCE">RandomPeriodicAnnounce</label>\n <md-select name="random_periodic_announce" ng-model="vm.voiceQueue.random_periodic_announce" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.RANDOMPERIODICANNOUNCE"></span></div>\n <div ng-messages="settingsForm[\'random_periodic_announce\'].$error" ng-show="settingsForm[\'random_periodic_announce\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.RANDOMPERIODICANNOUNCE_REQUIRED">RandomPeriodicAnnounce field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ANNOUNCEHOLDTIME">AnnounceHoldtime</label>\n <md-select name="announce_holdtime" ng-model="vm.voiceQueue.announce_holdtime" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'yes\'">Yes</md-option>\n <md-option ng-value="\'no\'">No</md-option>\n <md-option ng-value="\'once\'">Once</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.ANNOUNCEHOLDTIME"></span></div>\n <div ng-messages="settingsForm[\'announce_holdtime\'].$error" ng-show="settingsForm[\'announce_holdtime\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ANNOUNCEHOLDTIME_REQUIRED">AnnounceHoldtime field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ANNOUNCECALLERPOSITION">AnnounceCallerPosition</label>\n <md-select name="announce_position" ng-model="vm.voiceQueue.announce_position" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'yes\'">Yes</md-option>\n <md-option ng-value="\'no\'">No</md-option>\n <md-option ng-value="\'limit\'">Limit</md-option>\n <md-option ng-value="\'more\'">More</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.ANNOUNCECALLERPOSITION"></span></div>\n <div ng-messages="settingsForm[\'announce_position\'].$error" ng-show="settingsForm[\'announce_position\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ANNOUNCECALLERPOSITION_REQUIRED">AnnounceCallerPosition field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ANNOUNCEPOSITIONLIMIT">AnnouncePositionLimit</label>\n <input type="number" name="announce_position_limit" ng-model="vm.voiceQueue.announce_position_limit" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="VOICE.HELP.ANNOUNCEPOSITIONLIMIT"></span></div>\n <div ng-messages="settingsForm[\'announce_position_limit\'].$error" ng-show="settingsForm[\'announce_position_limit\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ANNOUNCEPOSITIONLIMIT_REQUIRED">AnnouncePositionLimit field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.REPORTHOLDTIMEAGENT">ReportHoldtimeAgent</label>\n <md-select name="reportholdtime" ng-model="vm.voiceQueue.reportholdtime" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.REPORTHOLDTIMEAGENT"></span></div>\n <div ng-messages="settingsForm[\'reportholdtime\'].$error" ng-show="settingsForm[\'reportholdtime\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.REPORTHOLDTIMEAGENT_REQUIRED">ReportHoldtimeAgent field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="voiceQueue-detail-form-container announcements md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="VOICE.ANNOUNCEMENTS">ANNOUNCEMENTS</div>\n </div>\n <form name="announcementsForm" novalidate>\n <md-input-container class="md-block">\n <label translate="VOICE.PERIODICANNOUNCE">PeriodicAnnounce</label>\n <md-select name="periodic_announce" ng-model="vm.voiceQueue.periodic_announce" autofocus multiple ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">Default</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + periodic_announce.save_name" ng-repeat="periodic_announce in vm.sounds" ng-disabled="periodic_announce.canSelect === false">{{ periodic_announce.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.PERIODICANNOUNCE"></span></div>\n <div ng-messages="announcementsForm[\'periodic_announce\'].$error" ng-show="announcementsForm[\'periodic_announce\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PERIODICANNOUNCE_REQUIRED">PeriodicAnnounce field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.HOLDTIMEANNOUNCE">HoldTimeAnnounce</label>\n <md-select name="queue_reporthold" ng-model="vm.voiceQueue.queue_reporthold" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_reporthold.save_name" ng-repeat="queue_reporthold in vm.sounds" ng-disabled="queue_reporthold.canSelect === false">{{ queue_reporthold.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.HOLDTIMEANNOUNCE"></span></div>\n <div ng-messages="announcementsForm[\'queue_reporthold\'].$error" ng-show="announcementsForm[\'queue_reporthold\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.HOLDTIMEANNOUNCE_REQUIRED">HoldTimeAnnounce field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.YOUARENEXTANNOUNCE">YouareNextAnnounce</label>\n <md-select name="queue_youarenext" ng-model="vm.voiceQueue.queue_youarenext" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_youarenext.save_name" ng-repeat="queue_youarenext in vm.sounds" ng-disabled="queue_youarenext.canSelect === false">{{ queue_youarenext.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.YOUARENEXTANNOUNCE"></span></div>\n <div ng-messages="announcementsForm[\'queue_youarenext\'].$error" ng-show="announcementsForm[\'queue_youarenext\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.YOUARENEXTANNOUNCE_REQUIRED">YouareNextAnnounce field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.THEREAREANNOUNCE">ThereareAnnounce</label>\n <md-select name="queue_thereare" ng-model="vm.voiceQueue.queue_thereare" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_thereare.save_name" ng-repeat="queue_thereare in vm.sounds" ng-disabled="queue_thereare.canSelect === false">{{ queue_thereare.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.THEREAREANNOUNCE"></span></div>\n <div ng-messages="announcementsForm[\'queue_thereare\'].$error" ng-show="announcementsForm[\'queue_thereare\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.THEREAREANNOUNCE_REQUIRED">ThereareAnnounce field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.WAITINGCALLSANNOUNCE">WaitingCallsAnnounce</label>\n <md-select name="queue_callswaiting" ng-model="vm.voiceQueue.queue_callswaiting" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_callswaiting.save_name" ng-repeat="queue_callswaiting in vm.sounds" ng-disabled="queue_callswaiting.canSelect === false">{{ queue_callswaiting.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.WAITINGCALLSANNOUNCE"></span></div>\n <div ng-messages="announcementsForm[\'queue_callswaiting\'].$error" ng-show="announcementsForm[\'queue_callswaiting\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.WAITINGCALLSANNOUNCE_REQUIRED">WaitingCallsAnnounce field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ESTIMATEDHOLDTIMEANNOUNCE">EstimatedHoldTimeAnnounce</label>\n <md-select name="queue_holdtime" ng-model="vm.voiceQueue.queue_holdtime" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_holdtime.save_name" ng-repeat="queue_holdtime in vm.sounds" ng-disabled="queue_holdtime.canSelect === false">{{ queue_holdtime.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.ESTIMATEDHOLDTIMEANNOUNCE"></span></div>\n <div ng-messages="announcementsForm[\'queue_holdtime\'].$error" ng-show="announcementsForm[\'queue_holdtime\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ESTIMATEDHOLDTIMEANNOUNCE_REQUIRED">EstimatedHoldTimeAnnounce field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.MINUTESANNOUNCE">MinutesAnnounce</label>\n <md-select name="queue_minutes" ng-model="vm.voiceQueue.queue_minutes" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_minutes.save_name" ng-repeat="queue_minutes in vm.sounds" ng-disabled="queue_minutes.canSelect === false">{{ queue_minutes.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.MINUTESANNOUNCE"></span></div>\n <div ng-messages="announcementsForm[\'queue_minutes\'].$error" ng-show="announcementsForm[\'queue_minutes\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MINUTESANNOUNCE_REQUIRED">MinutesAnnounce field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.MINUTEANNOUNCE">MinuteAnnounce</label>\n <md-select name="queue_minute" ng-model="vm.voiceQueue.queue_minute" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_minute.save_name" ng-repeat="queue_minute in vm.sounds" ng-disabled="queue_minute.canSelect === false">{{ queue_minute.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.MINUTEANNOUNCE"></span></div>\n <div ng-messages="announcementsForm[\'queue_minute\'].$error" ng-show="announcementsForm[\'queue_minute\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MINUTEANNOUNCE_REQUIRED">MinuteAnnounce field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.SECONDSANNOUNCE">SecondsAnnounce</label>\n <md-select name="queue_seconds" ng-model="vm.voiceQueue.queue_seconds" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_seconds.save_name" ng-repeat="queue_seconds in vm.sounds" ng-disabled="queue_seconds.canSelect === false">{{ queue_seconds.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.SECONDSANNOUNCE"></span></div>\n <div ng-messages="announcementsForm[\'queue_seconds\'].$error" ng-show="announcementsForm[\'queue_seconds\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.SECONDSANNOUNCE_REQUIRED">SecondsAnnounce field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.THANKYOUANNOUNCE">ThankYouAnnounce</label>\n <md-select name="queue_thankyou" ng-model="vm.voiceQueue.queue_thankyou" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_thankyou.save_name" ng-repeat="queue_thankyou in vm.sounds" ng-disabled="queue_thankyou.canSelect === false">{{ queue_thankyou.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.THANKYOUANNOUNCE"></span></div>\n <div ng-messages="announcementsForm[\'queue_thankyou\'].$error" ng-show="announcementsForm[\'queue_thankyou\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.THANKYOUANNOUNCE_REQUIRED">ThankYouAnnounce field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <md-tab-body>\n <div class="voiceQueue-detail-form-container advanced md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="VOICE.ADVANCED">ADVANCED</div>\n </div>\n <form name="advancedForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.voiceQueue.acw" aria-label="AfterCallWork" ng-disabled="!vm.crudPermissions.canEdit"><span translate="VOICE.AFTERCALLWORK">AfterCallWork</span></md-switch>\n <div class="hint"><span translate="VOICE.HELP.AFTERCALLWORK"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.voiceQueue.acw" class="md-block">\n <label translate="VOICE.AFTERCALLWORKDURATION">AfterCallWorkDuration</label>\n <input type="number" name="acwTimeout" ng-model="vm.voiceQueue.acwTimeout" min="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="VOICE.HELP.AFTERCALLWORKDURATION"></span></div>\n <div ng-messages="advancedForm[\'acwTimeout\'].$error" ng-show="advancedForm[\'acwTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.AFTERCALLWORKDURATION_REQUIRED">AfterCallWorkDuration field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.AFTERCALLWORKDURATION_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AfterCallWorkDuration must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.AUTOPAUSE">AutoPause</label>\n <md-select name="autopause" ng-model="vm.voiceQueue.autopause" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'all\'"> {{ \'VOICE.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.AUTOPAUSE"></span></div>\n <div ng-messages="advancedForm[\'autopause\'].$error" ng-show="advancedForm[\'autopause\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.AUTOPAUSE_REQUIRED">AutoPause field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.RINGINUSE">RingInUse</label>\n <md-select name="ringinuse" ng-model="vm.voiceQueue.ringinuse" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.RINGINUSE"></span></div>\n <div ng-messages="advancedForm[\'ringinuse\'].$error" ng-show="advancedForm[\'ringinuse\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.RINGINUSE_REQUIRED">RingInUse field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.MEMBERDELAY">MemberDelay</label>\n <input type="number" name="memberdelay" ng-model="vm.voiceQueue.memberdelay" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="VOICE.HELP.MEMBERDELAY"></span></div>\n <div ng-messages="advancedForm[\'memberdelay\'].$error" ng-show="advancedForm[\'memberdelay\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MEMBERDELAY_REQUIRED">MemberDelay field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.MEMBERDELAY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MemberDelay must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.TIMEOUTRESTART">TimeoutRestart</label>\n <md-select name="timeoutrestart" ng-model="vm.voiceQueue.timeoutrestart" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.TIMEOUTRESTART"></span></div>\n <div ng-messages="advancedForm[\'timeoutrestart\'].$error" ng-show="advancedForm[\'timeoutrestart\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.TIMEOUTRESTART_REQUIRED">TimeoutRestart field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.MONITORFORMAT">MonitorFormat</label>\n <md-select name="monitor_format" ng-model="vm.voiceQueue.monitor_format" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">Inactive</md-option>\n <md-option ng-value="\'wav\'">wav</md-option>\n <md-option ng-value="\'wav49\'">wav49</md-option>\n <md-option ng-value="\'gsm\'">gsm</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.MONITORFORMAT"></span></div>\n <div ng-messages="advancedForm[\'monitor_format\'].$error" ng-show="advancedForm[\'monitor_format\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MONITORFORMAT_REQUIRED">MonitorFormat field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CONTEXT">Context</label>\n <input type="text" name="context" ng-model="vm.voiceQueue.context" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="VOICE.HELP.CONTEXT"></span></div>\n <div ng-messages="advancedForm[\'context\'].$error" ng-show="advancedForm[\'context\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.SETINTERFACEVARIABLES">SetInterfaceVariables</label>\n <md-select name="setinterfacevar" ng-model="vm.voiceQueue.setinterfacevar" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.SETINTERFACEVARIABLES"></span></div>\n <div ng-messages="advancedForm[\'setinterfacevar\'].$error" ng-show="advancedForm[\'setinterfacevar\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.SETINTERFACEVARIABLES_REQUIRED">SetInterfaceVariables field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.SETQUEUEVARIABLES">SetQueueVariables</label>\n <md-select name="setqueuevar" ng-model="vm.voiceQueue.setqueuevar" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.SETQUEUEVARIABLES"></span></div>\n <div ng-messages="advancedForm[\'setqueuevar\'].$error" ng-show="advancedForm[\'setqueuevar\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.SETQUEUEVARIABLES_REQUIRED">SetQueueVariables field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.SETQUEUEENTRYVARIABLES">SetQueueEntryVariables</label>\n <md-select name="setqueueentryvar" ng-model="vm.voiceQueue.setqueueentryvar" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.SETQUEUEENTRYVARIABLES"></span></div>\n <div ng-messages="advancedForm[\'setqueueentryvar\'].$error" ng-show="advancedForm[\'setqueueentryvar\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.SETQUEUEENTRYVARIABLES_REQUIRED">SetQueueEntryVariables field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.SERVICELEVEL">ServiceLevel</label>\n <input type="number" name="servicelevel" ng-model="vm.voiceQueue.servicelevel" min="0" max="100" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="VOICE.HELP.SERVICELEVEL"></span></div>\n <div ng-messages="advancedForm[\'servicelevel\'].$error" ng-show="advancedForm[\'servicelevel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.SERVICELEVEL_REQUIRED">ServiceLevel field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.SERVICELEVEL_MUST_BE_GREATER_THAN_OR_EQUAL_TO">ServiceLevel must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="VOICE.ERRORS.SERVICELEVEL_MUST_BE_LESS_THAN_OR_EQUAL_TO">ServiceLevel must be a valid greater or equal than</span> <span>100</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.voiceQueue.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="VOICE.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.voiceQueue.mandatoryDisposition" class="md-block">\n <label translate="VOICE.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.voiceQueue.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="advancedForm[\'mandatoryDispositionPauseId\'].$error" ng-show="advancedForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/voice/views/voiceQueues/voiceQueues.html",'<div id="voiceQueues" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="VOICE.VOICEQUEUES">VoiceQueues</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedVoiceQueues.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedVoiceQueues =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="VOICE.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-voiceQueues-count">\n <span>{{vm.selectedVoiceQueues.length}}</span>\n <span translate="VOICE.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="VOICE.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllVoiceQueues()" translate="VOICE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectVoiceQueues()" translate="VOICE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedVoiceQueues" csv-label="true" filename="voiceQueues.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedVoiceQueues($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- VOICEQUEUE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedVoiceQueues" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getVoiceQueues">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'VOICE.NAME\' | translate }}</th>\n <th md-column md-order-by="strategy">{{ \'VOICE.STRATEGY\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'VOICE.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.voiceQueues.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="voiceQueue" md-select-id="id" ng-repeat="voiceQueue in vm.voiceQueues.rows">\n <td md-cell ng-if="voiceQueue.userpic"><img class="avatar" alt="{{voiceQueue.name}}" ng-src="api/users/{{voiceQueue.id}}/avatar" /></td>\n <td md-cell ng-if="!voiceQueue.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{voiceQueue.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceQueue, ev) : vm.createOrEditVoiceQueue($event, voiceQueue)" md-cell class="id ">{{voiceQueue.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceQueue, ev) : vm.createOrEditVoiceQueue($event, voiceQueue)" md-cell class="name ">{{voiceQueue.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceQueue, ev) : vm.createOrEditVoiceQueue($event, voiceQueue)" md-cell class="strategy ">{{ vm.arraystrategy[voiceQueue.strategy].option }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceQueue, ev) : vm.createOrEditVoiceQueue($event, voiceQueue)" md-cell class="description ">{{voiceQueue.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(voiceQueue, $event )" translate="VOICE.EDIT_VOICEQUEUE">\n Edit VoiceQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(voiceQueue, $event )" translate="VOICE.TEAMADD_VOICEQUEUE">\n teamadd VoiceQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(voiceQueue, $event )" translate="VOICE.AGENTADD_VOICEQUEUE">\n agentadd VoiceQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(voiceQueue, $event )" translate="VOICE.DELETE_VOICEQUEUE">\n Delete VoiceQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(voiceQueue, $event )" translate="VOICE.GOTOREALTIME_VOICEQUEUE">\n goToRealtime VoiceQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.voiceQueues.count}}" md-on-paginate="vm.getVoiceQueues" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / VOICEQUEUE TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD VOICEQUEUE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-voiceQueue-button" ng-click="vm.createOrEditVoiceQueue($event)" aria-label="add voiceQueue" translate translate-attr-aria-label="VOICE.ADD_VOICEQUEUE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD VOICEQUEUE BUTTON --\x3e\n</div>'),e.put("app/main/apps/voice/views/voiceRecordings/create/dialog.html",'<md-dialog class="voiceRecording-dialog" aria-label="New VoiceRecording">\n <form name="voiceRecordingForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="VOICE.RATING">Rating</label>\n <md-select name="rating" ng-model="vm.voiceRecording.rating" autofocus ng-disabled="!vm.newVoiceRecording && !vm.crudPermissions.canEdit">\n <md-option ng-value="null">{{\'VOICE.NO_RATING\' | translate}}</md-option>\n <md-option value="1">\n <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1]"></md-icon>\n </md-option>\n <md-option value="2">\n <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1,2]"></md-icon>\n </md-option>\n <md-option value="3">\n <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1,2,3]"></md-icon>\n </md-option>\n <md-option value="4">\n <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1,2,3,4]"></md-icon>\n </md-option>\n <md-option value="5">\n <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1,2,3,4,5]"></md-icon>\n </md-option>\n </md-select>\n <div ng-messages="voiceRecordingForm[\'rating\'].$error" ng-show="voiceRecordingForm[rating].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.RATING_REQUIRED">Rating field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newVoiceRecording" ng-click="vm.saveVoiceRecording()" class="send-button md-accent md-raised" ng-disabled="voiceRecordingForm.$invalid || voiceRecordingForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newVoiceRecording" ng-click="vm.addNewVoiceRecording()" class="send-button md-accent md-raised" ng-disabled="voiceRecordingForm.$invalid" aria-label="ADD" translate="VOICE.ADD_VOICERECORDING" translate-attr-aria-label="VOICE.ADD_VOICERECORDING">\n ADD VOICERECORDING\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newVoiceRecording" ng-click="vm.deleteVoiceRecording($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/voiceRecordings/edit/view.html",'<div id="voice-voiceRecording" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-voiceRecordings-button md-icon-button" aria-label="Go to voiceRecordings" ng-click="vm.gotoVoiceRecordings()" translate translate-attr-aria-label="VOICE.GO_TO_VOICERECORDINGS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="voiceRecording-image" hide-xs>\n <img ng-src="assets/images/business/voiceRecordings.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.voiceRecording.id}}\n <span ng-if="vm.voiceRecording.name">{{vm.voiceRecording.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="VOICE.CREATED_AT"></span> <span>{{vm.voiceRecording.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveVoiceRecording()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(voiceRecordingsForm.$invalid) || (transcriptForm.$invalid) || (sentimentAnalysisForm.$invalid)" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.GENERAL">GENERAL</span>\n </md-tab-label>\n <md-tab-body>\n <div class="voiceRecording-detail-form-container voicerecordings md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="VOICE.VOICERECORDINGS">VOICERECORDINGS</div>\n </div>\n <form name="voiceRecordingsForm" novalidate>\n <md-input-container class="md-block">\n <label translate="VOICE.TYPE">Type</label>\n <input type="" name="type" ng-model="vm.voiceRecording.type" autofocus disabled>\n\n <div ng-messages="voiceRecordingsForm[\'type\'].$error" ng-show="voiceRecordingsForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.UNIQUEID">UniqueId</label>\n <input type="" name="uniqueid" ng-model="vm.voiceRecording.uniqueid" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'uniqueid\'].$error" ng-show="voiceRecordingsForm[\'uniqueid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.UNIQUEID_REQUIRED">UniqueId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CALLER">Caller</label>\n <input type="" name="calleridnum" ng-model="vm.voiceRecording.calleridnum" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'calleridnum\'].$error" ng-show="voiceRecordingsForm[\'calleridnum\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CALLER_REQUIRED">Caller field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CALLED">Called</label>\n <input type="" name="exten" ng-model="vm.voiceRecording.exten" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'exten\'].$error" ng-show="voiceRecordingsForm[\'exten\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CALLED_REQUIRED">Called field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CONNECTED">Connected</label>\n <input type="" name="connectedlinenum" ng-model="vm.voiceRecording.connectedlinenum" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'connectedlinenum\'].$error" ng-show="voiceRecordingsForm[\'connectedlinenum\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CONNECTED_REQUIRED">Connected field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.QUEUE">Queue</label>\n <input type="" name="queue" ng-model="vm.voiceRecording.queue" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'queue\'].$error" ng-show="voiceRecordingsForm[\'queue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.AGENT">Agent</label>\n <input type="text" name="membername" ng-model="vm.voiceRecording.membername" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'membername\'].$error" ng-show="voiceRecordingsForm[\'membername\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.RATING">Rating</label>\n <md-select name="rating" ng-model="vm.voiceRecording.rating" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">{{\'VOICE.NO_RATING\' | translate}}</md-option>\n <md-option value="1">\n <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1]"></md-icon>\n </md-option>\n <md-option value="2">\n <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1,2]"></md-icon>\n </md-option>\n <md-option value="3">\n <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1,2,3]"></md-icon>\n </md-option>\n <md-option value="4">\n <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1,2,3,4]"></md-icon>\n </md-option>\n <md-option value="5">\n <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1,2,3,4,5]"></md-icon>\n </md-option>\n </md-select>\n <div ng-messages="voiceRecordingsForm[\'rating\'].$error" ng-show="voiceRecordingsForm[rating].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.RATING_REQUIRED">Rating field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.DISPOSITION">Disposition</label>\n <input type="text" name="userDisposition" ng-model="vm.voiceRecording.userDisposition" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'userDisposition\'].$error" ng-show="voiceRecordingsForm[\'userDisposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DISPOSITION_REQUIRED">Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.SECOND_LEVEL_DISPOSITION">Second_Level_Disposition</label>\n <input type="text" name="userSecondDisposition" ng-model="vm.voiceRecording.userSecondDisposition" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'userSecondDisposition\'].$error" ng-show="voiceRecordingsForm[\'userSecondDisposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.SECOND_LEVEL_DISPOSITION_REQUIRED">Second_Level_Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.THIRD_LEVEL_DISPOSITION">Third_Level_Disposition</label>\n <input type="text" name="userThirdDisposition" ng-model="vm.voiceRecording.userThirdDisposition" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'userThirdDisposition\'].$error" ng-show="voiceRecordingsForm[\'userThirdDisposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.THIRD_LEVEL_DISPOSITION_REQUIRED">Third_Level_Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab ng-if="vm.license.ai">\n <md-tab-label>\n <span translate="VOICE.TRANSCRIPTANALYSIS">TRANSCRIPTANALYSIS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="voiceRecording-detail-form-container transcript md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="VOICE.TRANSCRIPT">TRANSCRIPT</div>\n </div>\n <form name="transcriptForm" novalidate>\n <md-input-container ng-if="vm.voiceRecording.transcribeStatus == \'COMPLETED\'" class="md-block">\n <label translate="VOICE.TEXT">Text</label>\n <textarea name="fileText" ng-model="vm.voiceRecording.fileText" autofocus ng-disabled="true"></textarea>\n </md-input-container>\n <md-input-container ng-if="vm.voiceRecording.transcribeStatus == \'FAILED\'" class="md-block">\n <label translate="VOICE.FAILUREREASON">FailureReason</label>\n <textarea name="failureReason" ng-model="vm.voiceRecording.failureReason" ng-disabled="true"></textarea>\n </md-input-container>\n\n </form>\n </div>\n <div class="voiceRecording-detail-form-container sentimentanalysis md-background-bg md-whiteframe-1dp">\n <div ng-controller="VoiceRecordingSentimentStatisticsController as vm_ss" ng-init="vm_ss.init(vm.voiceRecording)">\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.SENTIMENTANALYSIS" style="width: 50px;">Sentiment Analysis</span>\n <div flex></div>\n </div>\n </md-toolbar>\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8 sentiment" ng-class="vm_ss.voiceRecording.sentiment">\n {{vm_ss.voiceRecording.sentiment}}\n </div>\n <div class="font-weight-500 secondary-text">\n {{ \'VOICE.SENTIMENT\' | translate | uppercase }}\n </div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">\n ({{ (vm_ss.voiceRecording.sPositive || 0) * 100 | number: 2 }}%)\n </div>\n <div class="font-weight-500 secondary-text">\n {{ \'VOICE.SENTIMENT_POSITIVE\' | translate | uppercase }}\n </div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">\n ({{ (vm_ss.voiceRecording.sNegative || 0) * 100 | number: 2 }}%)\n </div>\n <div class="font-weight-500 secondary-text">\n {{ \'VOICE.SENTIMENT_NEGATIVE\' | translate | uppercase }}\n </div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">\n ({{ (vm_ss.voiceRecording.sNeutral || 0) * 100 | number: 2 }}%)\n </div>\n <div class="font-weight-500 secondary-text">\n {{ \'VOICE.SENTIMENT_NEUTRAL\' | translate | uppercase }}\n </div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n \x3c!-- WIDGET 5 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">\n ({{ (vm_ss.voiceRecording.sMixed || 0) * 100 | number: 2 }}%)\n </div>\n <div class="font-weight-500 secondary-text">\n {{ \'VOICE.SENTIMENT_MIXED\' | translate | uppercase }}\n </div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n \x3c!-- / WIDGET 5 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/voice/views/voiceRecordings/voiceRecordings.html",'<div id="voiceRecordings" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="VOICE.VOICERECORDINGS">VoiceRecordings</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getVoiceRecordings()"></ms-quick-filter>\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedVoiceRecordings.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedVoiceRecordings =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="VOICE.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-voiceRecordings-count">\n <span>{{vm.selectedVoiceRecordings.length}}</span>\n <span translate="VOICE.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="VOICE.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllVoiceRecordings()" translate="VOICE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectVoiceRecordings()" translate="VOICE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedVoiceRecordings" csv-label="true" filename="voiceRecordings.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.license.ai" ng-click="vm.runtranscribesentimentSelectedVoiceRecordings($event)" aria-label="transcribesentiment selected" translate translate-attr-label="VOICERECORDINGS.TRANSCRIBESENTIMENT_SELECTED">\n <md-icon md-font-icon="icon-text-to-speech"></md-icon>\n <md-tooltip>{{\'VOICE.RUNTRANSCRIBESENTIMENT_VOICERECORDING\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button" ng-if="vm.license.ai" ng-click="vm.runtranscribeSelectedVoiceRecordings($event)" aria-label="transcribe selected" translate translate-attr-label="VOICERECORDINGS.TRANSCRIBE_SELECTED">\n <md-icon md-font-icon="icon-format-size"></md-icon>\n <md-tooltip>{{\'VOICE.RUNTRANSCRIBE_VOICERECORDING\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button" ng-if="vm.license.ai" ng-click="vm.runsentimentSelectedVoiceRecordings($event)" aria-label="transcribe selected" translate translate-attr-label="VOICERECORDINGS.SENTIMENT_SELECTED">\n <md-icon md-font-icon="icon-heart-outline"></md-icon>\n <md-tooltip>{{\'VOICE.RUNSENTIMENT_VOICERECORDING\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedVoiceRecordings($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- VOICERECORDING TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedVoiceRecordings" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getVoiceRecordings">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="type">{{ \'VOICE.TYPE\' | translate }}</th>\n <th md-column md-order-by="uniqueid">{{ \'VOICE.UNIQUEID\' | translate }}</th>\n <th md-column md-order-by="calleridnum">{{ \'VOICE.CALLER\' | translate }}</th>\n <th md-column md-order-by="exten">{{ \'VOICE.CALLED\' | translate }}</th>\n <th md-column md-order-by="connectedlinenum">{{ \'VOICE.CONNECTED\' | translate }}</th>\n <th md-column md-order-by="queue">{{ \'VOICE.QUEUE\' | translate }}</th>\n <th md-column md-order-by="membername">{{ \'VOICE.AGENT\' | translate }}</th>\n <th md-column md-order-by="rating">{{ \'VOICE.RATING\' | translate }}</th>\n <th md-column>{{ \'VOICE.AUDIO\' | translate }}</th>\n <th md-column md-order-by="createdAt">{{ \'VOICE.DATE\' | translate }}</th>\n <th md-column md-order-by="userDisposition">{{ \'VOICE.DISPOSITION\' | translate }}</th>\n <th md-column md-order-by="userSecondDisposition">{{ \'VOICE.SECOND_LEVEL_DISPOSITION\' | translate }}</th>\n <th md-column md-order-by="userThirdDisposition">{{ \'VOICE.THIRD_LEVEL_DISPOSITION\' | translate }}</th>\n <th md-column md-order-by="transcribeStatus" ng-if="vm.license.ai">{{ \'VOICE.TRANSCRIBE\' | translate }}</th>\n <th md-column md-order-by="sentiment" ng-if="vm.license.ai">{{ \'VOICE.SENTIMENTANALYSIS\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.voiceRecordings.rows.length">\n <td md-cell colspan="16">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="voiceRecording" md-select-id="id" ng-repeat="voiceRecording in vm.voiceRecordings.rows">\n <td md-cell ng-if="voiceRecording.userpic"><img class="avatar" alt="{{voiceRecording.name}}" ng-src="api/users/{{voiceRecording.id}}/avatar" /></td>\n <td md-cell ng-if="!voiceRecording.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{voiceRecording.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="type ">{{voiceRecording.type}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="uniqueid ">{{voiceRecording.uniqueid}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="calleridnum " privacy ng-cloak>{{voiceRecording.calleridnum}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="exten " privacy ng-cloak>{{voiceRecording.exten}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="connectedlinenum " privacy ng-cloak>{{voiceRecording.connectedlinenum}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="queue ">{{voiceRecording.queue}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="membername " privacy ng-cloak>{{voiceRecording.membername}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="rating ">\n <md-icon md-font-icon="icon-star" style="color:red" ng-show="voiceRecording.rating" ng-repeat="rating in [1,2,3,4,5] | limitTo:voiceRecording.rating"></md-icon><span ng-hide="voiceRecording.rating" translate="VOICE.NO_RATING">No rating</span>\n </td>\n <td md-cell class="audio " ng-switch="voiceRecording.format">\n \x3c!-- audio recording directive --\x3e\n <ms-recording ng-switch-when=".wav" id="voiceRecording.id" model="\'voiceRecording\'"></ms-recording>\n \x3c!-- / audio recording directive --\x3e\n <span ng-switch-when=".gsm|.WAV" ng-switch-when-separator="|">\n <em>{{ \'VOICE.CANT_PLAY_GSM_AUDIO_FILES\' | translate }}</em>\n </span>\n </td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="createdAt ">{{voiceRecording.createdAt | date:\'medium\' }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="userDisposition ">{{voiceRecording.userDisposition}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="userSecondDisposition ">{{voiceRecording.userSecondDisposition}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="userThirdDisposition ">{{voiceRecording.userThirdDisposition}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="transcribeStatus " ng-if="vm.license.ai">{{ \'VOICE.TRANSCRIBESTATUS_\' + voiceRecording.transcribeStatus | translate}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="sentiment " ng-if="vm.license.ai">{{voiceRecording.sentiment}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(voiceRecording, $event )" translate="VOICE.EDIT_VOICERECORDING">\n Edit VoiceRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="voiceRecording.transcribeStatus == \'NEW\' && vm.license.ai">\n\n <md-button ng-click="vm.runtranscriberuntranscribesentiment(voiceRecording, $event )" translate="VOICE.RUNTRANSCRIBE_VOICERECORDING">\n RunTranscribe VoiceRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="voiceRecording.transcribeStatus == \'NEW\' && vm.license.ai">\n\n <md-button ng-click="vm.runtranscribesentimentruntranscribesentiment(voiceRecording, $event )" translate="VOICE.RUNTRANSCRIBESENTIMENT_VOICERECORDING">\n RunTranscribeSentiment VoiceRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="voiceRecording.transcribeStatus == \'COMPLETED\' && voiceRecording.sentiment == null && vm.license.ai">\n\n <md-button ng-click="vm.runsentimentruntranscribesentiment(voiceRecording, $event )" translate="VOICE.RUNSENTIMENT_VOICERECORDING">\n RunSentiment VoiceRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="voiceRecording.transcribeStatus == \'COMPLETED\' && vm.license.ai">\n\n <md-button ng-click="vm.downloadtranscribefile2(voiceRecording, $event )" translate="VOICE.DOWNLOADTRANSCRIBE_VOICERECORDING">\n DownloadTranscribe VoiceRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.role === \'admin\' || vm.userProfile.downloadVoiceRecordings">\n\n <md-button ng-click="vm.downloadfile2(voiceRecording, $event , \'voice/recordings\' )" translate="VOICE.DOWNLOAD_VOICERECORDING">\n Download VoiceRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(voiceRecording, $event )" translate="VOICE.DELETE_VOICERECORDING">\n Delete VoiceRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.voiceRecordings.count}}" md-on-paginate="vm.getVoiceRecordings" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / VOICERECORDING TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- NO ADD BUTTON BUTTON --\x3e\n</div>'),e.put("app/main/apps/whatsapp/views/realtime/agents/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="WHATSAPP.AGENTS">Agents</span>\n <div flex></div>\n <ms-search-bar on-search="vm.onInit()" query="vm.query" on-collapse="vm.query.filter = undefined; vm.onInit()" debounce="300"></ms-search-bar>\n <md-select ng-model="vm.query.globalStatusFilter" class="md-caption" ng-change="vm.query.pauseTypeFilter = \'\'; vm.onInit()">\n <md-option ng-value="\'\'">{{ \'WHATSAPP.ALL\' | translate }}</md-option>\n <md-option value="pause">{{ \'WHATSAPP.PAUSE\' | translate }}</md-option>\n <md-option value="*pause">{{ \'WHATSAPP.PARTIALPAUSE\' | translate }}</md-option>\n <md-option value="busy">{{ \'WHATSAPP.BUSY\' | translate }}</md-option>\n <md-option value="idle">{{ \'WHATSAPP.IDLE\' | translate }}</md-option>\n </md-select>\n <md-select ng-if="vm.isPause(vm.query.globalStatusFilter)" ng-model="vm.query.pauseTypeFilter" class="md-caption" ng-change="vm.onInit()">\n <md-option ng-value="\'\'">All</md-option>\n <md-option value="DEFAULT PAUSE">DEFAULT PAUSE</md-option>\n <md-option value="ACW">ACW</md-option>\n <md-option value="LOGININPAUSE">LOGININPAUSE</md-option>\n <md-option value="Auto-Pause">AUTOPAUSE</md-option>\n <md-option ng-value="pause.name" ng-repeat="pause in vm.pauses.rows">{{pause.name}}</md-option>\n </md-select>\n </div>\n</md-toolbar>\n\x3c!-- AGENT TABLE --\x3e\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.order" md-on-reorder="vm.onInit">\n <tr md-row border="1">\n <th class="bv text-center" colspan="5">{{ \'WHATSAPP.AGENT\' | translate }}</th>\n <th class="bv bl text-center" colspan="2">{{ \'VOICE.VOICE\' | translate }}</th>\n <th ng-if="vm.license.chat" class="bv bl text-center" colspan="2">{{ \'CHAT.CHAT\' | translate }}</th>\n <th ng-if="vm.license.mail" class="bv bl text-center" colspan="2">{{ \'MAIL.MAIL\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="bv bl text-center" colspan="2">{{ \'SMS.SMS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="bv bl text-center" colspan="2">\n {{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="bv bl text-center" colspan="2">\n {{ \'WHATSAPP.WHATSAPP\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n </tr>\n <tr md-row>\n <th class="bl" colspan="2" md-column md-order-by="fullname">\n {{ \'WHATSAPP.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">\n {{ \'WHATSAPP.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">\n {{ \'WHATSAPP.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">\n {{ \'WHATSAPP.PAUSE_TIME\' | translate }}</th>\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\n <th ng-if="vm.license.chat" class="bl text-center">{{ \'CHAT.STATUS\' | translate }}</th>\n <th ng-if="vm.license.chat" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'CHAT.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.mail" class="bl text-center">{{ \'MAIL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.mail" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'MAIL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.messaging" class="bl text-center">{{ \'SMS.STATUS\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'SMS.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.openchannel" class="bl text-center">{{ \'OPENCHANNEL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'OPENCHANNEL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.fax" class="bl text-center">{{ \'FAX.STATUS\' | translate }}</th>\n <th ng-if="vm.license.fax" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'FAX.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.whatsapp" class="bl text-center">{{ \'WHATSAPP.STATUS\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'WHATSAPP.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.order.length">\n <td md-cell colspan="19">\n <div layout="row" layout-align="center center">\n <span>{{ \'WHATSAPP.NO_AGENT_ONLINE\' | translate }}</span>\n </div>\n </td>\n </tr>\n <tr md-select="vm.agents[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td class="bt padding-5">\n <div layout="row" layout-align="start center">\n <img class="avatar" ng-src="{{vm.agents[value].userpic && \'api/users/\'+vm.agents[value].id+\'/avatar\' || \'assets/images/avatars/profile.png\'}}">\n <div layout="column">\n <span>{{vm.agents[value].fullname}}</span>\n <span>{{vm.agents[value].internal}}</span>\n </div>\n </div>\n </td>\n <td class="bt padding-5">\n <div layout="row" layout-align="start center" ng-if="vm.license.screenrecording && (vm.agents[value].phoneBarEnableScreenRecordingByAgent || vm.agents[value].phoneBarEnableAutomaticScreenRecording)">\n <div class="column" ng-if="vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: green; font-size: 36px;" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'WHATSAPP.TOOLTIP_SCREENRECORDING_ON\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n <div class="column" ng-if="!vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: gray" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'WHATSAPP.TOOLTIP_SCREENRECORDING_OFF\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n </div>\n </td>\n <td class="bt">\n'+" <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','busy':'indigo-100-bg','*pause':'amber-50-bg','pause':'amber-200-bg'}[vm.agents[value].globalStatus]\">{{\n vm.isPause(vm.agents[value].globalStatus) ? '' : vm.agents[value].globalStatus | uppercase }}\n {{ vm.isPause(vm.agents[value].globalStatus) ? (vm.isPartialPause(vm.agents[value].globalStatus) ?\n '*'+vm.agents[value].pauseType || 'DEFAULT PAUSE' : vm.agents[value].pauseType || 'DEFAULT PAUSE') :\n ''}}</span>\n </td>\n <td class=\"bt custom-column\">\n <timer start-time=\"vm.agents[value].lastLoginAt\"></timer>\n </td>\n <td class=\"bt custom-column\">\n <timer ng-if=\"vm.isPause(vm.agents[value].globalStatus) || vm.isPartialPause(vm.agents[value].globalStatus)\" start-time=\"vm.agents[value].lastPauseAt\"></timer>\n </td>\n <td class=\"bt bl\">\n <div layout=\"row\">\n <span ng-if=\"!vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','talking':'indigo-100-bg','ringing':'orange-400-bg','pause':'amber-200-bg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].voiceStatus | uppercase }}</span>\n <span ng-if=\"vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5 orange-400-bg\">ONHOLD</span>\n </div>\n </td>\n <td class=\"bt bl\">\n <div layout=\"column\">\n <span ng-if=\"vm.agents[value].queue\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].queue }}</span>\n <span ng-if=\"vm.agents[value].destconnectedlinenum\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\" privacy ng-cloak>{{\n vm.agents[value].destconnectedlinenum }}</span>\n <span ng-if=\"vm.agents[value].routealias\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].routealias }}</span>\n <span class=\"padding-5\" ng-if=\"vm.agents[value].queue || vm.agents[value].destconnectedlinenum\">\n <timer start-time=\"vm.agents[value].voiceStatusTime\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">\n </timer>\n </span>\n </div>\n </td>\n <td class=\"bt bl\" ng-if=\"vm.license.chat\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].chatStatus]\">{{\n vm.agents[value].chatStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td md-number class=\"bt text-center font-size-20\" ng-if=\"vm.license.chat\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].chatStatus]\">\n {{ vm.agents[value].chatCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.mail\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].mailStatus]\">{{\n vm.agents[value].mailStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.mail\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].mailStatus]\">\n {{ vm.agents[value].mailCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.messaging\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].smsStatus]\">{{\n vm.agents[value].smsStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.messaging\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].smsStatus]\">\n {{ vm.agents[value].smsCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.openchannel\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].openchannelStatus]\">{{\n vm.agents[value].openchannelStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.openchannel\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].openchannelStatus]\">\n {{ vm.agents[value].openchannelCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.fax\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].faxStatus]\">{{\n vm.agents[value].faxStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.fax\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].faxStatus]\">\n {{ vm.agents[value].faxCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.whatsapp\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].whatsappStatus]\">{{\n vm.agents[value].whatsappStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.whatsapp\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].whatsappStatus]\">\n {{ vm.agents[value].whatsappCurrentCapacity }}</td>\n <td class=\"bl bt padding-5 text-center\" ng-if=\"vm.crudPermissions.canEdit\">\n <md-menu>\n <md-button class=\"md-icon-button\" aria-label=\"More\" translate translate-attr-aria-label=\"STAFF.MORE\" ng-click=\"$mdOpenMenu($event)\">\n <md-icon md-font-icon=\"icon-dots-vertical\"></md-icon>\n </md-button>\n <md-menu-content width=\"4\">\n <md-menu-item>\n <md-button ng-click=\"vm.logout(vm.agents[value], $event)\" translate=\"WHATSAPP.LOGOUT\">\n Logout\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click=\"vm.queueAdd(vm.agents[value], $event)\" translate=\"WHATSAPP.AGENTADD_QUEUE\">\n Add Agent In Queue\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.license.screenrecording && vm.agents[value].phoneBarEnableScreenRecordingByAgent\">\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"WHATSAPP.SCREENRECORDING\">Screen Recording\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if=\"!vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], true)\"><em translate=\"WHATSAPP.START_SCREENRECORDING\">Start\n Screen Recording</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], false)\"><em translate=\"WHATSAPP.STOP_SCREENRECORDING\">Stop\n Screen Recording</em></md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item>\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"WHATSAPP.PAUSE\">Pause</md-button>\n <md-menu-content>\n <md-menu-item>\n <md-button ng-disabled=\" vm.agents[value].voicePause && 'DEFAULT PAUSE' === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value])\"><em translate=\"WHATSAPP.DEFAULT_PAUSE\">Default\n Pause</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.pauses.rows.length\" ng-repeat=\"pause in vm.pauses.rows\">\n <md-button ng-disabled=\"vm.agents[value].voicePause && pause.name === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value], pause.name)\">{{pause.name}}\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.isPause(vm.agents[value].globalStatus)\">\n <md-button ng-click=\"vm.unPause(vm.agents[value])\" translate=\"WHATSAPP.UNPAUSE\">\n Unpause\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label=\"{page: '{{'WHATSAPP.PAGE' | translate}}:', rowsPerPage: '{{'WHATSAPP.ROWSPERPAGE' | translate}}:', of: '{{'WHATSAPP.OF' | translate}}'}\" md-limit=\"vm.query.limit\" md-limit-options=\"[10, 15, 20, 50, 100, 250]\" md-page=\"vm.query.page\" md-total=\"{{vm.filteredAgents.length}}\" md-on-paginate=\"vm.onInit\" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e"),e.put("app/main/apps/whatsapp/views/realtime/queues/view.html",'<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="WHATSAPP.QUEUES">Queues</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getQueues">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'WHATSAPP.NAME\' | translate }}</th>\n <th md-column>{{ \'WHATSAPP.LOGGED_IN\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'WHATSAPP.PAUSED\' | translate }}</th>\n <th md-column>{{ \'WHATSAPP.WAITING\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.queues.count > 0">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="WHATSAPP.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="queue" md-select-id="id" ng-repeat="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedIn }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="WHATSAPP.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.editQueue($event, queue)" translate="WHATSAPP.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.addAgent($event, queue)" translate="WHATSAPP.AGENTSADD_QUEUE">\n Add Agents to queue\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'WHATSAPP.PAGE\' | translate}}:\', rowsPerPage: \'{{\'WHATSAPP.ROWSPERPAGE\' | translate}}:\', of: \'{{\'WHATSAPP.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),e.put("app/main/apps/whatsapp/views/realtime/realtime.html",'<div id="realtime" class="page-layout simple tabbed" layout="column" ng-cloak>\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="WHATSAPP.AGENTS">Agents</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="WHATSAPP.QUEUES">Queues</span>\n </md-tab-label>\n </md-tab>\n </md-tabs>\n\n <md-card ui-view></md-card>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/create/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.whatsappAccount.name" ng-required="true" autofocus ng-disabled="!vm.newWhatsappAccount">\n\n <div class="hint"><span translate="WHATSAPP.HELP.NAME"></span></div>\n <div ng-messages="whatsappAccountForm[\'name\'].$error" ng-show="whatsappAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.KEY">key</label>\n <input type="text" name="key" ng-model="vm.whatsappAccount.key" md-maxlength="5" ng-required="true">\n\n <div ng-messages="whatsappAccountForm[\'key\'].$error" ng-show="whatsappAccountForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="WHATSAPP.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.LIST">List</label>\n <md-select name="ListId" ng-model="vm.whatsappAccount.ListId" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="WHATSAPP.HELP.LIST"></span></div>\n <div ng-messages="whatsappAccountForm[\'ListId\'].$error" ng-show="whatsappAccountForm[\'ListId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.MOTIONPROXY">MotionProxy</label>\n <input type="url" name="remote" ng-model="vm.whatsappAccount.remote" md-maxlength="255" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="WHATSAPP.HELP.MOTIONPROXY"></span></div>\n <div ng-messages="whatsappAccountForm[\'remote\'].$error" ng-show="whatsappAccountForm[\'remote\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.MOTIONPROXY_REQUIRED">MotionProxy field is required</span>\n </div>\n <div ng-message="url">\n <span translate="WHATSAPP.ERRORS.MOTIONPROXY_MUST_VALID_URL">MotionProxy must be a valid url http://www.xcally.com</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="WHATSAPP.ERRORS.MOTIONPROXY_MAX_LENGTH" translate-values=\'{max: 255}\'>MotionProxy must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.TYPE">Type</label>\n <md-select name="type" ng-model="vm.whatsappAccount.type">\n <md-option ng-value="\'twilio\'">Twilio</md-option>\n <md-option ng-value="\'sinch\'">Sinch</md-option>\n </md-select>\n <div ng-messages="whatsappAccountForm[\'type\'].$error" ng-show="whatsappAccountForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.whatsappAccount.type == \'twilio\' || vm.whatsappAccount.type == \'sinch\'" class="md-block">\n <label translate="WHATSAPP.ACCOUNTSID">AccountSID</label>\n <input type="text" name="accountSid" ng-model="vm.whatsappAccount.accountSid" ng-required="true">\n\n <div ng-messages="whatsappAccountForm[\'accountSid\'].$error" ng-show="whatsappAccountForm[\'accountSid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.ACCOUNTSID_REQUIRED">AccountSID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.whatsappAccount.type == \'twilio\' || vm.whatsappAccount.type == \'sinch\'" class="md-block">\n <label translate="WHATSAPP.AUTHTOKEN">AuthToken</label>\n <input type="text" name="authToken" ng-model="vm.whatsappAccount.authToken" ng-required="true">\n\n <div ng-messages="whatsappAccountForm[\'authToken\'].$error" ng-show="whatsappAccountForm[\'authToken\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.AUTHTOKEN_REQUIRED">AuthToken field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container ng-if="vm.whatsappAccount.type == \'sinch\'" class="md-block">\n <label translate="WHATSAPP.BASEURL">Base URL</label>\n\n \x3c!-- <input type="text" name="baseUrl" ng-model="vm.whatsappAccount.baseUrl" ng-required="true"> --\x3e\n\n <md-select name="baseUrl" ng-model="vm.whatsappAccount.baseUrl" required>\n <md-option ng-value="\'https://us1.whatsapp.api.sinch.com\'">US Production</md-option>\n <md-option ng-value="\'https://eu1.whatsapp.api.sinch.com\'">EU Production</md-option>\n </md-select>\n\n <div ng-messages="whatsappAccountForm[\'authToken\'].$error" ng-show="whatsappAccountForm[\'authToken\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.AUTHTOKEN_REQUIRED">AuthToken field is required</span>\n </div>\n </div>\n </md-input-container>\n\n\n <md-input-container class="md-block">\n <label translate="WHATSAPP.PHONE">phone</label>\n <input type="text" name="phone" ng-model="vm.whatsappAccount.phone" ng-required="true">\n <div ng-messages="whatsappAccountForm[\'phone\'].$error" ng-show="whatsappAccountForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.PHONE_REQUIRED">phone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.whatsappAccount.description">\n\n <div ng-messages="whatsappAccountForm[\'description\'].$error" ng-show="whatsappAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newWhatsappAccount" ng-click="vm.saveWhatsappAccount()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountForm.$invalid || whatsappAccountForm.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newWhatsappAccount" ng-click="vm.addNewWhatsappAccount()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountForm.$invalid" aria-label="ADD" translate="WHATSAPP.ADD_WHATSAPPACCOUNT" translate-attr-aria-label="WHATSAPP.ADD_WHATSAPPACCOUNT">\n ADD WHATSAPPACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newWhatsappAccount" ng-click="vm.deleteWhatsappAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="WHATSAPP.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="WHATSAPP.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/agentadd/agentadd.html",'<md-dialog class="whatsappAccount-dialog" aria-label="whatsappAccount" ng-init="vm.onInit()">\n <form name="whatsappAccountForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="WHATSAPP.AGENTADD_WHATSAPPACCOUNT">Add Agent to whatsappAccount</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/agent/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.AGENT">Agent</label>\n <md-select name="agent" ng-model="vm.agent.agent" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="agent.name" ng-repeat="agent in vm.agents" ng-disabled="agent.canSelect === false">{{ agent.name }}</md-option>\n </md-select>\n <div ng-messages="whatsappAccountFormApp[\'agent\'].$error" ng-show="whatsappAccountFormApp[\'agent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.agent.timeout" min="0" max="2147483" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'timeout\'].$error" ng-show="whatsappAccountFormApp[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="WHATSAPP.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/amazonlex/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.ACCESSKEYID">accesskeyid</label>\n <input type="text" name="accesskeyid" ng-model="vm.amazonlex.accesskeyid" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'accesskeyid\'].$error" ng-show="whatsappAccountFormApp[\'accesskeyid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.ACCESSKEYID_REQUIRED">accesskeyid field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.SECRETACCESSKEY">secretaccesskey</label>\n <input type="text" name="secretaccesskey" ng-model="vm.amazonlex.secretaccesskey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'secretaccesskey\'].$error" ng-show="whatsappAccountFormApp[\'secretaccesskey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.SECRETACCESSKEY_REQUIRED">secretaccesskey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.LEXREGION">lexregion</label>\n <md-select name="lexregion" ng-model="vm.amazonlex.lexregion" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'us-east-1\'">US East (N. Virginia)</md-option>\n <md-option ng-value="\'us-west-2\'">US West (Oregon)</md-option>\n <md-option ng-value="\'eu-west-1\'">EU (Ireland)</md-option>\n <md-option ng-value="\'ap-southeast-2\'">Asia Pacific (Sydney)</md-option>\n </md-select>\n <div ng-messages="whatsappAccountFormApp[\'lexregion\'].$error" ng-show="whatsappAccountFormApp[\'lexregion\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.LEXREGION_REQUIRED">lexregion field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.BOTNAME">botname</label>\n <input type="text" name="botname" ng-model="vm.amazonlex.botname" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'botname\'].$error" ng-show="whatsappAccountFormApp[\'botname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.BOTNAME_REQUIRED">botname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.amazonlex.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="WHATSAPP.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="whatsappAccountFormApp[\'welcomemessage\'].$error" ng-show="whatsappAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.WELCOMEMESSAGE_REQUIRED">welcomemessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="WHATSAPP.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/autoreply/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.TIMES">times</label>\n <md-select name="times" ng-model="vm.autoreply.times" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="2">One Time</md-option>\n <md-option ng-value="0">Always</md-option>\n <md-option ng-value="1">First Message</md-option>\n </md-select>\n <div ng-messages="whatsappAccountFormApp[\'times\'].$error" ng-show="whatsappAccountFormApp[\'times\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TIMES_REQUIRED">times field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.TEXT">Text</label>\n <textarea name="text" ng-model="vm.autoreply.text" required></textarea>\n\n <div ng-messages="whatsappAccountFormApp[\'text\'].$error" ng-show="whatsappAccountFormApp[\'text\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TEXT_REQUIRED">Text field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/close/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.DISPOSITION">Disposition</label>\n <input type="text" name="disposition" ng-model="vm.close.disposition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'disposition\'].$error" ng-show="whatsappAccountFormApp[\'disposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.DISPOSITION_REQUIRED">Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/dialogflow/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.dialogflow.key" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'key\'].$error" ng-show="whatsappAccountFormApp[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.KEY_REQUIRED">Key field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflow.language" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'da\'">Danish</md-option>\n <md-option ng-value="\'en\'">English</md-option>\n <md-option ng-value="\'de\'">German</md-option>\n <md-option ng-value="\'it\'">Italian</md-option>\n <md-option ng-value="\'es\'">Spanish</md-option>\n <md-option ng-value="\'fr\'">French</md-option>\n <md-option ng-value="\'id\'">Indonesian</md-option>\n <md-option ng-value="\'ja\'">Japanese</md-option>\n <md-option ng-value="\'ko\'">Korean (South Korea)</md-option>\n <md-option ng-value="\'nl\'">Dutch</md-option>\n <md-option ng-value="\'no\'">Norwegian</md-option>\n <md-option ng-value="\'pt\'">Portuguese (European)</md-option>\n <md-option ng-value="\'pt-br\'">Portuguese (Nrazilian)</md-option>\n <md-option ng-value="\'ru\'">Russian</md-option>\n <md-option ng-value="\'sv\'">Swedish</md-option>\n <md-option ng-value="\'th\'">Thai</md-option>\n <md-option ng-value="\'uk\'">Ukrainian</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese (Simplified)</md-option>\n <md-option ng-value="\'zh-HK\'">Chinese (Hong Kong)</md-option>\n <md-option ng-value="\'zh-TW\'">Chinese (Traditional)</md-option>\n </md-select>\n <div ng-messages="whatsappAccountFormApp[\'language\'].$error" ng-show="whatsappAccountFormApp[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.LANGUAGE_REQUIRED">language field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.dialogflow.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="WHATSAPP.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="whatsappAccountFormApp[\'welcomemessage\'].$error" ng-show="whatsappAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.WELCOMEMESSAGE_REQUIRED">welcomemessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="WHATSAPP.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/dialogflowv2/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.PROJECTID">ProjectID</label>\n <input type="text" name="projectId" ng-model="vm.dialogflowv2.projectId" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'projectId\'].$error" ng-show="whatsappAccountFormApp[\'projectId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.PROJECTID_REQUIRED">ProjectID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.CLIENTEMAIL">ClientEmail</label>\n <input type="text" name="clientEmail" ng-model="vm.dialogflowv2.clientEmail" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'clientEmail\'].$error" ng-show="whatsappAccountFormApp[\'clientEmail\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.CLIENTEMAIL_REQUIRED">ClientEmail field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.PRIVATEKEY">PrivateKey</label>\n <textarea name="privateKey" ng-model="vm.dialogflowv2.privateKey" required></textarea>\n\n <div ng-messages="whatsappAccountFormApp[\'privateKey\'].$error" ng-show="whatsappAccountFormApp[\'privateKey\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.PRIVATEKEY_REQUIRED">PrivateKey field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflowv2.language" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'zh-HK\'">Chinese (Cantonese)</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese (Simplified)</md-option>\n <md-option ng-value="\'zh-TW\'">Chinese (Traditional)</md-option>\n <md-option ng-value="\'da\'">Danish</md-option>\n <md-option ng-value="\'nl\'">Dutch</md-option>\n <md-option ng-value="\'en\'">English</md-option>\n <md-option ng-value="\'en-AU\'">English (Australia)</md-option>\n <md-option ng-value="\'en-CA\'">English (Canada)</md-option>\n <md-option ng-value="\'en-GB\'">English (Great Britain)</md-option>\n <md-option ng-value="\'en-IN\'">English (India)</md-option>\n <md-option ng-value="\'en-US\'">English (US)</md-option>\n <md-option ng-value="\'fr\'">French</md-option>\n <md-option ng-value="\'fr-CA\'">French (Canada)</md-option>\n <md-option ng-value="\'fr-FR\'">\'France (France)</md-option>\n <md-option ng-value="\'de\'">German</md-option>\n <md-option ng-value="\'hi\'">Hindi</md-option>\n <md-option ng-value="\'id\'">Indonesian</md-option>\n <md-option ng-value="\'it\'">Italian</md-option>\n <md-option ng-value="\'ja\'">Japanese</md-option>\n <md-option ng-value="\'ko\'">Korean</md-option>\n <md-option ng-value="\'no\'">Norwegian</md-option>\n <md-option ng-value="\'pl\'">Polish</md-option>\n <md-option ng-value="\'pt-BR\'">Portuguese (Brazil)</md-option>\n <md-option ng-value="\'pt-PT\'">Portuguese (Portugal)</md-option>\n <md-option ng-value="\'ru\'">Russian</md-option>\n <md-option ng-value="\'es\'">Spanish</md-option>\n <md-option ng-value="\'es-419\'">Spanish (Latin America)</md-option>\n <md-option ng-value="\'es-ES\'">Spanish (Spain)</md-option>\n <md-option ng-value="\'sw\'">Swedish</md-option>\n <md-option ng-value="\'th\'">Thai</md-option>\n <md-option ng-value="\'tr\'">Turkish</md-option>\n <md-option ng-value="\'uk\'">Ukrainian</md-option>\n </md-select>\n <div ng-messages="whatsappAccountFormApp[\'language\'].$error" ng-show="whatsappAccountFormApp[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.LANGUAGE_REQUIRED">language field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.dialogflowv2.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="WHATSAPP.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="whatsappAccountFormApp[\'welcomemessage\'].$error" ng-show="whatsappAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n\n <div ng-message="md-maxlength">\n <span translate="WHATSAPP.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/gotoif/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.CONDITION">Condition</label>\n <input type="text" name="condition" ng-model="vm.gotoif.condition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'condition\'].$error" ng-show="whatsappAccountFormApp[\'condition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.CONDITION_REQUIRED">Condition field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.TRUEPRIORITY">truepriority</label>\n <input type="number" name="truepriority" ng-model="vm.gotoif.truepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'truepriority\'].$error" ng-show="whatsappAccountFormApp[\'truepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TRUEPRIORITY_REQUIRED">truepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.ERRORS.TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">truepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.FALSEPRIORITY">falsepriority</label>\n <input type="number" name="falsepriority" ng-model="vm.gotoif.falsepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'falsepriority\'].$error" ng-show="whatsappAccountFormApp[\'falsepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.FALSEPRIORITY_REQUIRED">falsepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.ERRORS.FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">falsepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/gotop/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.PRIORITY">Priority</label>\n <input type="number" name="priority" ng-model="vm.gotop.priority" min="0" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'priority\'].$error" ng-show="whatsappAccountFormApp[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.ERRORS.PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Priority must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/interval/dialog.html",'<md-dialog class="interval-dialog" aria-label="New Interval">\n <form name="intervalForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select ng-model="vm.type" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="type" ng-repeat=\'type in vm.types\'>{{ type | ucfirst }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.type === \'list\'">\n <label translate="TOOLS.INTERVALS">Intervals</label>\n <md-select ng-model="vm.interval.IntervalId" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals">{{ interval.name }}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!-- TIMERANGE START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.TIME_RANGE">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <div class="md-block" flex>\n <mdp-time-picker name="timeRangeFrom" mdp-placeholder="FROM" ng-model="vm.timeRangeFrom" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <div ng-messages="intervalForm.timeRangeFrom.$error" ng-show="intervalForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_FROM_INVALID">Time Range From field is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n <div class="md-block" flex ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_INVALID">Time Range To field is invalid</span>\n </div>\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </div>\n \x3c!-- TIMERANGE END --\x3e\n\n \x3c!-- DAYSOFWEEK START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.WEEK_DAYS">Week Days</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.dayOfWeekFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container flex class="md-block" ng-if="vm.dayOfWeekFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="dayOfWeekTo" ng-model="vm.dayOfWeekTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- DAYSOFWEEK END --\x3e\n\n \x3c!-- MONTHDAY START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTH_DAYS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthDayFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthDayFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthDayTo" ng-model="vm.monthDayTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTHDAY END --\x3e\n\n \x3c!-- MONTH START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTHS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n </md-select>\n\n </md-input-container>\n\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthTo" ng-model="vm.monthTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTH END --\x3e\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="!vm.newInterval && vm.crudPermissions.canEdit" ng-click="vm.saveInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid || intervalForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.newInterval && vm.crudPermissions.canEdit" ng-click="vm.addNewInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_INTERVAL" translate-attr-aria-label="TOOLS.ADD_INTERVAL">\n ADD INTERVAL\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/noop/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.VALUE">Value</label>\n <input type="text" name="value" ng-model="vm.noop.value" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'value\'].$error" ng-show="whatsappAccountFormApp[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/queue/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.QUEUE">Queue</label>\n <md-select name="queue" ng-model="vm.queue.queue" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="queue.name" ng-repeat="queue in vm.queues" ng-disabled="queue.canSelect === false">{{ queue.name }}</md-option>\n </md-select>\n <div ng-messages="whatsappAccountFormApp[\'queue\'].$error" ng-show="whatsappAccountFormApp[\'queue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.queue.timeout" min="0" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'timeout\'].$error" ng-show="whatsappAccountFormApp[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="WHATSAPP.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/system/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.COMMAND">Command</label>\n <input type="text" name="command" ng-model="vm.system.command" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'command\'].$error" ng-show="whatsappAccountFormApp[\'command\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.COMMAND_REQUIRED">Command field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.VARIABLE">Variable</label>\n <md-select name="variable" ng-model="vm.system.variable" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables" ng-disabled="variable.canSelect === false">{{ variable.name }}</md-option>\n </md-select>\n <div ng-messages="whatsappAccountFormApp[\'variable\'].$error" ng-show="whatsappAccountFormApp[\'variable\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.VARIABLE_REQUIRED">Variable field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/tag/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.TAG">Tag</label>\n <md-select name="tag" ng-model="vm.tag.tag" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags" ng-disabled="tag.canSelect === false">{{ tag.name }}</md-option>\n </md-select>\n <div ng-messages="whatsappAccountFormApp[\'tag\'].$error" ng-show="whatsappAccountFormApp[\'tag\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TAG_REQUIRED">Tag field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/view.html",'<div id="whatsapp-whatsappAccount" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-whatsappAccounts-button md-icon-button" aria-label="Go to whatsappAccounts" ng-click="vm.gotoWhatsappAccounts()" translate translate-attr-aria-label="WHATSAPP.GO_TO_WHATSAPPACCOUNTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="whatsappAccount-image" hide-xs>\n <img ng-src="assets/images/business/whatsappAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.whatsappAccount.id}}\n <span ng-if="vm.whatsappAccount.name">{{vm.whatsappAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="WHATSAPP.CREATED_AT"></span> <span>{{vm.whatsappAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.whatsappAccount, $event)" class="md-fab md-warn md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="WHATSAPP.AGENTADD_WHATSAPPACCOUNT"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveWhatsappAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (notificationForm.$invalid) || (transferForm.$invalid) || (proxyForm.$invalid) || (dispositionForm.$invalid) || (whatsappDispositionsForm.$invalid) || (whatsappCannedAnswersForm.$invalid) || (actionsForm.$invalid) || (interactionsForm.$invalid)" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="WHATSAPP.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="whatsappAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="WHATSAPP.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.whatsappAccount.name" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="WHATSAPP.HELP.NAME"></span></div>\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.KEY">key</label>\n <input type="text" name="key" ng-model="vm.whatsappAccount.key" md-maxlength="5" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'key\'].$error" ng-show="generalForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="WHATSAPP.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.LIST">List</label>\n <md-select name="ListId" ng-model="vm.whatsappAccount.ListId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="WHATSAPP.HELP.LIST"></span></div>\n <div ng-messages="generalForm[\'ListId\'].$error" ng-show="generalForm[\'ListId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.whatsappAccount.type == \'twilio\' || vm.whatsappAccount.type == \'sinch\'" class="md-block">\n <label translate="WHATSAPP.ACCOUNTSID">AccountSID</label>\n <input type="text" name="accountSid" ng-model="vm.whatsappAccount.accountSid" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'accountSid\'].$error" ng-show="generalForm[\'accountSid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.ACCOUNTSID_REQUIRED">AccountSID field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container ng-if="vm.whatsappAccount.type == \'twilio\' || vm.whatsappAccount.type == \'sinch\'" class="md-block">\n <label translate="WHATSAPP.AUTHTOKEN">AuthToken</label>\n <input type="text" name="authToken" ng-model="vm.whatsappAccount.authToken" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'authToken\'].$error" ng-show="generalForm[\'authToken\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.AUTHTOKEN_REQUIRED">AuthToken field is required</span>\n </div>\n </div>\n </md-input-container>\n\n<label>PIPPO</label>\n<label>{{vm.whatsappAccount.baseUrl}}</label>\n<label>PLUTO</label>\n\n <md-input-container ng-if="vm.whatsappAccount.type == \'sinch\'" class="md-block">\n <label translate="WHATSAPP.BASEURL">BaseURL</label>\n \n <md-select name="baseUrl" ng-model="vm.whatsappAccount.baseUrl" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryBaseUrl.url" ng-repeat="mandatoryBaseUrl in vm.baseUrl" ng-disabled="mandatoryBaseUrl.canSelect === false">{{ mandatoryBaseUrl.name }}</md-option>\n </md-select>\n\n <div ng-messages="generalForm[\'baseUrl\'].$error" ng-show="generalForm[\'baseUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.BASEURL_REQUIRED">Base URL field is required</span>\n </div>\n </div>\n </md-input-container>\n\n\n\n <md-input-container class="md-block">\n <label translate="WHATSAPP.PHONE">phone</label>\n <input type="text" name="phone" ng-model="vm.whatsappAccount.phone" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'phone\'].$error" ng-show="generalForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.PHONE_REQUIRED">phone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.RECEIVEURL">receiveUrl</label>\n\n <div layout="row" layout-align="center center">\n <button class="md-button md-fab md-mini md-primary" ngclipboard data-clipboard-target="#copytoclipboard-receiveUrl" ngclipboard-success="vm.alert({title: \'copied to clipboard\', msg: e.text });" ngclipboard-error="vm.alert({title: \'error\', msg: \'copy to clipboard failed\'});">\n <md-icon md-font-icon="icon-clipboard-text"></md-icon>\n </button>\n <input class="md-input" type="text" id="copytoclipboard-receiveUrl" name="receiveUrl" ng-value="vm.whatsappAccount.remote + \'/api/whatsapp/accounts/\' + vm.whatsappAccount.id + \'/notify?token=\' + vm.whatsappAccount.token" ng-readonly="true">\n </div>\n <div class="hint"><span translate="WHATSAPP.HELP.RECEIVEURL"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.WAITFORTHEASSIGNEDAGENT">WaitForTheAssignedAgent</label>\n <input type="number" name="waitForTheAssignedAgent" ng-model="vm.whatsappAccount.waitForTheAssignedAgent" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'waitForTheAssignedAgent\'].$error" ng-show="generalForm[\'waitForTheAssignedAgent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.WAITFORTHEASSIGNEDAGENT_REQUIRED">WaitForTheAssignedAgent field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="WHATSAPP.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.whatsappAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="whatsappAccount-detail-form-container notification md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="WHATSAPP.NOTIFICATION">NOTIFICATION</div>\n </div>\n <form name="notificationForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.whatsappAccount.notificationShake" aria-label="notificationShake" ng-disabled="!vm.crudPermissions.canEdit"><span translate="WHATSAPP.NOTIFICATIONSHAKE">notificationShake</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.whatsappAccount.notificationSound" aria-label="notificationSound" ng-disabled="!vm.crudPermissions.canEdit"><span translate="WHATSAPP.NOTIFICATIONSOUND">notificationSound</span></md-switch>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="WHATSAPP.NOTIFICATIONTEMPLATE">notificationTemplate</label>\n <textarea aria-label="notificationTemplate notificationTemplate" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', removePlugins: \'magicline\' }" ng-model="vm.whatsappAccount.notificationTemplate"></textarea>\n </div>\n\n </form>\n </div>\n <div class="whatsappAccount-detail-form-container transfer md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="WHATSAPP.TRANSFER">TRANSFER</div>\n </div>\n <form name="transferForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.whatsappAccount.queueTransfer" aria-label="queueTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="WHATSAPP.QUEUETRANSFER">queueTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.whatsappAccount.queueTransfer == true" class="md-block">\n <label translate="WHATSAPP.QUEUETRANSFERTIMEOUT">queueTransferTimeout</label>\n <input type="number" name="queueTransferTimeout" ng-model="vm.whatsappAccount.queueTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'queueTransferTimeout\'].$error" ng-show="transferForm[\'queueTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.QUEUETRANSFERTIMEOUT_REQUIRED">queueTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="WHATSAPP.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.whatsappAccount.agentTransfer" aria-label="agentTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="WHATSAPP.AGENTTRANSFER">agentTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.whatsappAccount.agentTransfer == true" class="md-block">\n <label translate="WHATSAPP.AGENTTRANSFERTIMEOUT">agentTransferTimeout</label>\n <input type="number" name="agentTransferTimeout" ng-model="vm.whatsappAccount.agentTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'agentTransferTimeout\'].$error" ng-show="transferForm[\'agentTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.AGENTTRANSFERTIMEOUT_REQUIRED">agentTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="WHATSAPP.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="WHATSAPP.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <md-tab-body>\n <div class="whatsappAccount-detail-form-container proxy md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="WHATSAPP.PROXY">PROXY</div>\n </div>\n <form name="proxyForm" novalidate>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.MOTIONPROXY">MotionProxy</label>\n <input type="url" name="remote" ng-model="vm.whatsappAccount.remote" md-maxlength="255" value="LOCALIP" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="WHATSAPP.HELP.MOTIONPROXY"></span></div>\n <div ng-messages="proxyForm[\'remote\'].$error" ng-show="proxyForm[\'remote\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.MOTIONPROXY_REQUIRED">MotionProxy field is required</span>\n </div>\n <div ng-message="url">\n <span translate="WHATSAPP.ERRORS.MOTIONPROXY_MUST_VALID_URL">MotionProxy must be a valid url http://www.xcally.com</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="WHATSAPP.ERRORS.MOTIONPROXY_MAX_LENGTH" translate-values=\'{max: 255}\'>MotionProxy must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.TOKEN">token</label>\n <input type="text" name="token" ng-model="vm.whatsappAccount.token" disabled>\n\n <div ng-messages="proxyForm[\'token\'].$error" ng-show="proxyForm[\'token\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TOKEN_REQUIRED">token field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="whatsappAccount-detail-form-container disposition md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="WHATSAPP.DISPOSITION">DISPOSITION</div>\n </div>\n <form name="dispositionForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.whatsappAccount.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="WHATSAPP.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.whatsappAccount.mandatoryDisposition" class="md-block">\n <label translate="WHATSAPP.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.whatsappAccount.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="WHATSAPP.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="dispositionForm[\'mandatoryDispositionPauseId\'].$error" ng-show="dispositionForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="WHATSAPP.DISPOSITIONS">DISPOSITIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div ng-controller="WhatsappAccountDispositionsController as vm_dc" ng-init="vm_dc.init(vm.whatsappAccount, vm.crudPermissions)">\n <div layout="row">\n <div class="column" flex="20">\n <md-card class="mt-0">\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm_dc.query.level = null; vm_dc.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\n </button>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm_dc.query.level" ng-change="vm_dc.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm_dc.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n <div class="whatsappAccount-detail-form-container whatsappdispositions md-background-bg md-whiteframe-1dp" flex="80">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedWhatsappAccountDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="WHATSAPP.DISPOSITIONS">Dispositions</span>\n <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditDisposition($event)" aria-label="Add whatsapp dispositions" translate translate-attr-label="WHATSAPP.ADD_DISPOSITION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedDispositions.length}}\n {{vm_dc.selectedDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedDispositions" csv-label="true" filename="whatsappAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedDispositions($event)" aria-label="delete selected" translate translate-attr-label="WHATSAPP.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_dc.selectedDispositions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getDispositions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'WHATSAPP.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'WHATSAPP.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'WHATSAPP.DESCRIPTION\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_dc.dispositions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="WHATSAPP.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="disposition" md-select-id="id" ng-repeat="disposition in vm_dc.dispositions.rows">\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm_dc.levels[disposition.level] }}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="WHATSAPP.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(disposition, $event)" translate="TOOLS.DELETE_DISPOSITION">\n Delete Disposition\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'WHATSAPP.PAGE\' | translate}}:\', rowsPerPage: \'{{\'WHATSAPP.ROWSPERPAGE\' | translate}}:\', of: \'{{\'WHATSAPP.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.dispositions.count}}" md-on-paginate="vm_dc.getDispositions" md-page-select>\n </md-table-pagination>\n </div>\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="WHATSAPP.CANNEDANSWERS">CANNEDANSWERS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="whatsappAccount-detail-form-container whatsappcannedanswers md-background-bg md-whiteframe-1dp">\n <div ng-controller="WhatsappAccountWhatsappCannedAnswersController as vm_dc" ng-init="vm_dc.init(vm.whatsappAccount, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedWhatsappAccountWhatsappCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="WHATSAPP.WHATSAPPCANNEDANSWERS">WhatsappCannedAnswers</span>\n <ms-search-bar on-search="vm_dc.getWhatsappAccountWhatsappCannedAnswers()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditWhatsappAccountWhatsappCannedAnswer($event)" aria-label="add whatsappCannedAnswer" translate translate-attr-label="WHATSAPP.ADD_WHATSAPPCANNEDANSWER">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedWhatsappAccountWhatsappCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedWhatsappAccountWhatsappCannedAnswers.length}} {{vm_dc.selectedWhatsappAccountWhatsappCannedAnswers.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedWhatsappAccountWhatsappCannedAnswers" csv-label="true" filename="whatsappAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedWhatsappAccountWhatsappCannedAnswers($event)" aria-label="delete selected" translate translate-attr-label="WHATSAPP.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedWhatsappAccountWhatsappCannedAnswers" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getWhatsappAccountWhatsappCannedAnswers">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'WHATSAPP.ID\' | translate }}\n </th>\n <th md-column md-order-by="key">\n {{ \'WHATSAPP.KEY\' | translate }}\n </th>\n <th md-column md-order-by="value">\n {{ \'WHATSAPP.VALUE\' | translate }}\n </th>\n <th md-column md-order-by="description">\n {{ \'WHATSAPP.DESCRIPTION\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'WHATSAPP.CREATED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="whatsappCannedAnswer" md-select-id="id" ng-repeat="whatsappCannedAnswer in vm_dc.whatsappAccountWhatsappCannedAnswers.rows">\n <td ng-click="vm_dc.createOrEditWhatsappAccountWhatsappCannedAnswer($event, whatsappCannedAnswer)" md-cell>\n {{whatsappCannedAnswer.id}}\n </td>\n <td ng-click="vm_dc.createOrEditWhatsappAccountWhatsappCannedAnswer($event, whatsappCannedAnswer)" md-cell>\n {{whatsappCannedAnswer.key}}\n </td>\n <td ng-click="vm_dc.createOrEditWhatsappAccountWhatsappCannedAnswer($event, whatsappCannedAnswer)" md-cell>\n {{whatsappCannedAnswer.value}}\n </td>\n <td ng-click="vm_dc.createOrEditWhatsappAccountWhatsappCannedAnswer($event, whatsappCannedAnswer)" md-cell>\n {{whatsappCannedAnswer.description}}\n </td>\n <td ng-click="vm_dc.createOrEditWhatsappAccountWhatsappCannedAnswer($event, whatsappCannedAnswer)" md-cell>\n {{ whatsappCannedAnswer.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="WHATSAPP.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditWhatsappAccountWhatsappCannedAnswer($event, whatsappCannedAnswer)" translate="WHATSAPP.EDIT_WHATSAPPCANNEDANSWER">\n Edit WhatsappCannedAnswer\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(whatsappCannedAnswer, $event)" translate="WHATSAPP.DELETE_WHATSAPPCANNEDANSWER">\n Delete WhatsappCannedAnswer\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.whatsappAccountWhatsappCannedAnswers.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="WHATSAPP.NO_WHATSAPPCANNEDANSWER_AVAILABLE">No whatsappcannedanswer available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'WHATSAPP.PAGE\' | translate}}:\', rowsPerPage: \'{{\'WHATSAPP.ROWSPERPAGE\' | translate}}:\', of: \'{{\'WHATSAPP.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.whatsappAccountWhatsappCannedAnswers.count}}" md-on-paginate="vm_dc.getWhatsappAccountWhatsappCannedAnswers" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="WHATSAPP.ACTIONS">ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="whatsappAccount-detail-form-container actions md-background-bg md-whiteframe-1dp">\n <div ng-controller="WhatsappAccountActionsController as vm_ac" ng-init="vm_ac.init(vm.whatsappAccount, vm.crudPermissions)" class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- SIDENAV --\x3e\n <div class="navigation-simple sidenav main-sidenav md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="20" ng-if="vm_ac.crudPermissions.canEdit">\n \x3c!-- SIDENAV CONTENT --\x3e\n <md-list class="no-padding">\n <md-subheader class="md-no-sticky">\n <span translate="VOICE.APPLICATIONS_LIST">\n Applications List\n </span>\n </md-subheader>\n </md-list>\n <md-divider></md-divider>\n <md-list ng-sortable="vm_ac.list">\n <md-list-item class="handle" ng-repeat="a in vm_ac.apps">\n <md-icon md-font-icon="{{a.icon}}" class="s16"></md-icon>\n <p class="text-truncate" translate="WHATSAPP.{{(a.appAlias || a.appType) | uppercase}}">{{a.appAlias || a.appType}}</p>\n </md-list-item>\n </md-list>\n \x3c!-- / SIDENAV CONTENT --\x3e\n </div>\n \x3c!-- / SIDENAV --\x3e\n <div flex></div>\n \x3c!-- MAIN --\x3e\n <div class="main scrollable md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="{{vm_ac.crudPermissions.canEdit ? 75 : 100}}">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_ac.selectedWhatsappAccountApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">Drag & Drop Routing</span>\n <div flex></div>\n <ms-search-bar on-search="vm_ac.query.filter = query" on-collapse="vm_ac.query.filter = undefined" debounce="300"></ms-search-bar>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_ac.selectedWhatsappAccountApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_ac.selectedWhatsappAccountApps.length}} {{vm_ac.selectedWhatsappAccountApps.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_ac.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_ac.deleteSelectedWhatsappAccountApps($event)" aria-label="delete selected" translate translate-attr-label="WHATSAPP.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n \x3c!-- QUEUES TABLE --\x3e\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_ac.selectedWhatsappAccountApps">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column width="10px">\n <span translate="VOICE.PRIORITY">Priority</span>\n </th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </th>\n <th md-column width="10px"></th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body ng-sortable="vm_ac.applications">\n <tr md-row md-select="app" md-select-id="id" ng-repeat="app in vm_ac.whatsappAccountApps.rows | filter: vm_ac.query.filter">\n <td md-cell>\n <md-icon md-font-icon="icon-drag-vertical" class="s16 handle"></md-icon>\n </td>\n <td md-cell ng-click="vm_ac.editWhatsappAccountApp($event, $index)"><span>{{app.priority}}</span></td>\n <td md-cell ng-click="vm_ac.editWhatsappAccountApp($event, $index)">{{app.app.toLowerCase() === \'agi\' ? \'Cally-Square\' : app.app | ucfirst}}<span ng-if="app.appType.toLowerCase() === \'custom\'">*</span></td>\n <td md-cell ng-click="vm_ac.editWhatsappAccountApp($event, $index)"><span class="text-truncate actionAppData">{{app.appdata}}</span></td>\n <td md-cell ng-click="vm_ac.editInterval($event, $index)">{{app.IntervalId ? \'From List\' : app.interval}}</td>\n <td md-cell>\n <md-button ng-click="vm_ac.editInterval($event, $index)" class="md-icon-button" aria-label="Interval">\n <md-icon md-font-icon="icon-timer"></md-icon>\n <md-tooltip>\n {{app.IntervalId ? \'From List\' : (app.interval === \'*,*,*,*\' ? \'Always\' : \'Custom\')}}\n </md-tooltip>\n </md-button>\n </td>\n <td md-cell class="actions" ng-if="!vm_ac.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_ac.crudPermissions.canEdit">\n <md-button ng-click="vm_ac.editWhatsappAccountApp($event, $index)" translate="VOICE.EDIT_APP">\n Edit App\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_ac.crudPermissions.canEdit">\n <md-button ng-click="vm_ac.editInterval($event, $index)" translate="VOICE.EDIT_INTERVAL">\n Edit Interval\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_ac.crudPermissions.canDelete">\n <md-button ng-click="vm_ac.deleteConfirm(app, $index, $event)" translate="VOICE.DELETE_APP">\n Delete App\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-hide="vm_ac.whatsappAccountApps.rows.length">\n <td md-cell colspan="7">\n <span class="text-boxed-light" translate="VOICE.NO_APPS_AVAILABLE">No apps available</span>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n \x3c!-- / QUEUES TABLE --\x3e\n\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="WHATSAPP.INTERACTIONS">INTERACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="whatsappAccount-detail-form-container interactions md-background-bg md-whiteframe-1dp">\n <div ng-controller="WhatsappAccountInteractionsController as vm_dc" ng-init="vm_dc.init(vm.whatsappAccount, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedWhatsappAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="WHATSAPP.INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm_dc.getWhatsappAccountInteractions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_dc.quickFilters" query="vm_dc.query" search="vm_dc.getWhatsappAccountInteractions()"></ms-quick-filter>\n <div layout="column">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini md-accent-bg\': vm_dc.query.search }" aria-label="Filter" translate translate-attr-aria-label="DASHBOARDS.FILTER" ng-click="vm_dc.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm_dc.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'blink\': vm_dc.query.search }"></md-icon>\n </md-button>\n </div>\n <md-button class="md-icon-button" ng-click="vm_dc.getWhatsappAccountInteractions()" aria-label="refresh Interactions" translate translate-attr-label="WHATSAPP.REFRESH_INTERACTIONS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedWhatsappAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedWhatsappAccountInteractions.length}} {{vm_dc.selectedWhatsappAccountInteractions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedWhatsappAccountInteractions" csv-label="true" filename="whatsappAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedWhatsappAccountInteractions($event)" aria-label="delete selected" translate translate-attr-label="WHATSAPP.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedWhatsappAccountInteractions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getWhatsappAccountInteractions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'WHATSAPP.ID\' | translate }}\n </th>\n <th md-column class="no-padding">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column md-order-by="contactName">\n {{ \'WHATSAPP.CONTACT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'WHATSAPP.STARTEDAT\' | translate }}\n </th>\n <th md-column md-order-by="lastMsgAt">\n {{ \'WHATSAPP.LASTMESSAGE\' | translate }}\n </th>\n <th md-column md-order-by="closed">\n {{ \'WHATSAPP.STATUS\' | translate }}\n </th>\n <th md-column>\n {{ \'WHATSAPP.AGENT\' | translate }}\n </th>\n <th md-column md-order-by="tag">\n {{ \'WHATSAPP.TAGS\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="interaction" md-select-id="id" ng-repeat="interaction in vm_dc.whatsappAccountInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td md-cell>\n {{interaction.id}}\n </td>\n <td md-cell class="no-padding">\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="user in interaction.Users">{{ user.fullname | translate }}\n <span ng-if="!$last">, </span>\n </span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg md-primary-bg" layout-margin>{{ interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.attach">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td md-cell privacy ng-cloak>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'margin-bottom-0\' : interaction.contactInfo}" layout-margin>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text margin-top-0" layout-margin>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td md-cell>\n {{ interaction.createdAt | formatdate }}\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}"></md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="text-truncate">{{ interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n </td>\n <td md-cell>\n <span ng-if="interaction.closed === 0" class="green-fg">\n {{ \'WHATSAPP.OPENED\' | translate }}\n <span ng-if="interaction.substatus">\n - {{ interaction.substatus }}\n </span>\n </span>\n <span ng-if="interaction.closed === 1" class="red-fg">\n {{ \'WHATSAPP.CLOSED\' | translate }}\n <span ng-if="interaction.disposition">\n - {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}\n </span>\n <md-tooltip class="multiline">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n </span>\n </td>\n\n <td md-cell>\n {{interaction.Owner.name}}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="WHATSAPP.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm_dc.spywhatsappInteraction($event, interaction)" translate="WHATSAPP.SPYINTERACTION">\n Spy Interaction\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.role === \'admin\' || vm_dc.userProfile.downloadOmnichannelInteractions">\n <md-button class="md-primary" ng-click="vm_dc.whatsappInteractionDownload(interaction, $event)" translate="WHATSAPP.DOWNLOAD_INTERACTION">\n Download\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(interaction, $event)" translate="WHATSAPP.DELETE_INTERACTION">\n Delete Interaction\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.whatsappAccountInteractions.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="WHATSAPP.NO_INTERACTION_AVAILABLE">No interaction available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'WHATSAPP.PAGE\' | translate}}:\', rowsPerPage: \'{{\'WHATSAPP.ROWSPERPAGE\' | translate}}:\', of: \'{{\'WHATSAPP.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.whatsappAccountInteractions.count}}" md-on-paginate="vm_dc.getWhatsappAccountInteractions" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/whatsappCannedAnswers/dialog.html",'<md-dialog class="whatsappCannedAnswer-dialog" aria-label="New WhatsappCannedAnswer">\n <form name="whatsappCannedAnswerForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.KEY">Key</label>\n <input type="" name="key" ng-model="vm.whatsappCannedAnswer.key" md-maxlength="255" ng-required="true" autofocus>\n\n <div ng-messages="whatsappCannedAnswerForm[\'key\'].$error" ng-show="whatsappCannedAnswerForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.KEY_REQUIRED">Key field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.VALUE">Value</label>\n <textarea name="value" ng-model="vm.whatsappCannedAnswer.value" required></textarea>\n\n <div ng-messages="whatsappCannedAnswerForm[\'value\'].$error" ng-show="whatsappCannedAnswerForm[\'value\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.whatsappCannedAnswer.description">\n\n <div ng-messages="whatsappCannedAnswerForm[\'description\'].$error" ng-show="whatsappCannedAnswerForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newWhatsappCannedAnswer" ng-click="vm.saveWhatsappCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="whatsappCannedAnswerForm.$invalid || whatsappCannedAnswerForm.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newWhatsappCannedAnswer" ng-click="vm.addNewWhatsappCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="whatsappCannedAnswerForm.$invalid" aria-label="ADD" translate="WHATSAPP.ADD_WHATSAPPCANNEDANSWER" translate-attr-aria-label="WHATSAPP.ADD_WHATSAPPCANNEDANSWER">\n ADD WHATSAPPCANNEDANSWER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newWhatsappCannedAnswer" ng-click="vm.deleteWhatsappCannedAnswer($event)" aria-label="DELETE" translate translate-attr-aria-label="WHATSAPP.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="WHATSAPP.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/whatsappAccounts.html",'<div id="whatsappAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-whatsapp" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="WHATSAPP.WHATSAPPACCOUNTS">WhatsappAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="WHATSAPP.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedWhatsappAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedWhatsappAccounts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="WHATSAPP.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-whatsappAccounts-count">\n <span>{{vm.selectedWhatsappAccounts.length}}</span>\n <span translate="WHATSAPP.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="WHATSAPP.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllWhatsappAccounts()" translate="WHATSAPP.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectWhatsappAccounts()" translate="WHATSAPP.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedWhatsappAccounts" csv-label="true" filename="whatsappAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedWhatsappAccounts($event)" aria-label="delete selected" translate translate-attr-label="WHATSAPP.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- WHATSAPPACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedWhatsappAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getWhatsappAccounts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'WHATSAPP.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'WHATSAPP.NAME\' | translate }}</th>\n <th md-column md-order-by="key">{{ \'WHATSAPP.KEY\' | translate }}</th>\n <th md-column md-order-by="ListId">{{ \'WHATSAPP.LIST\' | translate }}</th>\n <th md-column md-order-by="type">{{ \'WHATSAPP.TYPE\' | translate }}</th>\n <th md-column md-order-by="phone">{{ \'WHATSAPP.PHONE\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'WHATSAPP.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.whatsappAccounts.rows.length">\n <td md-cell colspan="8">\n <div layout="row" layout-align="center center">\n <span translate="WHATSAPP.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="whatsappAccount" md-select-id="id" ng-repeat="whatsappAccount in vm.whatsappAccounts.rows">\n <td md-cell ng-if="whatsappAccount.userpic"><img class="avatar" alt="{{whatsappAccount.name}}" ng-src="api/users/{{whatsappAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!whatsappAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{whatsappAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappAccount, ev) : vm.createOrEditWhatsappAccount($event, whatsappAccount)" md-cell class="id ">{{whatsappAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappAccount, ev) : vm.createOrEditWhatsappAccount($event, whatsappAccount)" md-cell class="name ">{{whatsappAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappAccount, ev) : vm.createOrEditWhatsappAccount($event, whatsappAccount)" md-cell class="key ">{{whatsappAccount.key}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappAccount, ev) : vm.createOrEditWhatsappAccount($event, whatsappAccount)" md-cell class="ListId ">{{ (vm.lists | filter : {\'id\':whatsappAccount.ListId} : true)[0].name }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappAccount, ev) : vm.createOrEditWhatsappAccount($event, whatsappAccount)" md-cell class="type ">{{ vm.arraytype[whatsappAccount.type].option }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappAccount, ev) : vm.createOrEditWhatsappAccount($event, whatsappAccount)" md-cell class="phone ">{{whatsappAccount.phone}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappAccount, ev) : vm.createOrEditWhatsappAccount($event, whatsappAccount)" md-cell class="description ">{{whatsappAccount.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="WHATSAPP.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(whatsappAccount, $event )" translate="WHATSAPP.EDIT_WHATSAPPACCOUNT">\n Edit WhatsappAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.interactionsgoto(whatsappAccount, $event )" translate="WHATSAPP.INTERACTIONS_WHATSAPPACCOUNT">\n Interactions WhatsappAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(whatsappAccount, $event )" translate="WHATSAPP.AGENTADD_WHATSAPPACCOUNT">\n AgentAdd WhatsappAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(whatsappAccount, $event )" translate="WHATSAPP.DELETE_WHATSAPPACCOUNT">\n Delete WhatsappAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'WHATSAPP.PAGE\' | translate}}:\', rowsPerPage: \'{{\'WHATSAPP.ROWSPERPAGE\' | translate}}:\', of: \'{{\'WHATSAPP.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.whatsappAccounts.count}}" md-on-paginate="vm.getWhatsappAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / WHATSAPPACCOUNT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD WHATSAPPACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-whatsappAccount-button" ng-click="vm.createOrEditWhatsappAccount($event)" aria-label="add whatsappAccount" translate translate-attr-aria-label="WHATSAPP.ADD_WHATSAPPACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD WHATSAPPACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/whatsapp/views/whatsappQueues/create/dialog.html",'<md-dialog class="whatsappQueue-dialog" aria-label="New WhatsappQueue">\n <form name="whatsappQueueForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.whatsappQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newWhatsappQueue">\n\n <div class="hint"><span translate="WHATSAPP.HELP.NAME"></span></div>\n <div ng-messages="whatsappQueueForm[\'name\'].$error" ng-show="whatsappQueueForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="WHATSAPP.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.whatsappQueue.strategy" required>\n <md-option ng-value="\'beepall\'">Beepall</md-option>\n <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n </md-select>\n <div ng-messages="whatsappQueueForm[\'strategy\'].$error" ng-show="whatsappQueueForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.AGENT_TIMEOUT">Agent_Timeout</label>\n <input type="number" name="timeout" ng-model="vm.whatsappQueue.timeout" min="1" max="2147483" value="10" ng-required="true">\n\n <div ng-messages="whatsappQueueForm[\'timeout\'].$error" ng-show="whatsappQueueForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="WHATSAPP.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.whatsappQueue.description">\n\n <div ng-messages="whatsappQueueForm[\'description\'].$error" ng-show="whatsappQueueForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newWhatsappQueue" ng-click="vm.saveWhatsappQueue()" class="send-button md-accent md-raised" ng-disabled="whatsappQueueForm.$invalid || whatsappQueueForm.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newWhatsappQueue" ng-click="vm.addNewWhatsappQueue()" class="send-button md-accent md-raised" ng-disabled="whatsappQueueForm.$invalid" aria-label="ADD" translate="WHATSAPP.ADD_WHATSAPPQUEUE" translate-attr-aria-label="WHATSAPP.ADD_WHATSAPPQUEUE">\n ADD WHATSAPPQUEUE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newWhatsappQueue" ng-click="vm.deleteWhatsappQueue($event)" aria-label="DELETE" translate translate-attr-aria-label="WHATSAPP.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="WHATSAPP.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappQueues/edit/agentadd/agentadd.html",'<md-dialog class="whatsappQueue-dialog" aria-label="whatsappQueue" ng-init="vm.onInit()">\n <form name="whatsappQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="WHATSAPP.AGENTADD_WHATSAPPQUEUE">Add Agent to whatsappQueue</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappQueues/edit/teamadd/teamadd.html",'<md-dialog class="whatsappQueue-dialog" aria-label="whatsappQueue" ng-init="vm.onInit()">\n <form name="whatsappQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="WHATSAPP.TEAMS_ASSOCIATION">Teams Association</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappQueues/edit/view.html",'<div id="whatsapp-whatsappQueue" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-whatsappQueues-button md-icon-button" aria-label="Go to whatsappQueues" ng-click="vm.gotoWhatsappQueues()" translate translate-attr-aria-label="WHATSAPP.GO_TO_WHATSAPPQUEUES">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="whatsappQueue-image" hide-xs>\n <img ng-src="assets/images/business/whatsappQueues.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.whatsappQueue.id}}\n <span ng-if="vm.whatsappQueue.name">{{vm.whatsappQueue.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="WHATSAPP.CREATED_AT"></span> <span>{{vm.whatsappQueue.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.teamadddialog(vm.whatsappQueue, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n <md-tooltip><span translate="WHATSAPP.TEAMADD_WHATSAPPQUEUE"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.whatsappQueue, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="WHATSAPP.AGENTADD_WHATSAPPQUEUE"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-plus"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveWhatsappQueue()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid)" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="WHATSAPP.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="whatsappQueue-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="WHATSAPP.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.whatsappQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="WHATSAPP.HELP.NAME"></span></div>\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="WHATSAPP.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.whatsappQueue.strategy" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'beepall\'">Beepall</md-option>\n <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n </md-select>\n <div ng-messages="generalForm[\'strategy\'].$error" ng-show="generalForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.AGENT_TIMEOUT">Agent_Timeout</label>\n <input type="number" name="timeout" ng-model="vm.whatsappQueue.timeout" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'timeout\'].$error" ng-show="generalForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="WHATSAPP.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.whatsappQueue.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/whatsapp/views/whatsappQueues/whatsappQueues.html",'<div id="whatsappQueues" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-whatsapp" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="WHATSAPP.WHATSAPPQUEUES">WhatsappQueues</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="WHATSAPP.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedWhatsappQueues.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedWhatsappQueues =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="WHATSAPP.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-whatsappQueues-count">\n <span>{{vm.selectedWhatsappQueues.length}}</span>\n <span translate="WHATSAPP.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="WHATSAPP.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllWhatsappQueues()" translate="WHATSAPP.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectWhatsappQueues()" translate="WHATSAPP.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedWhatsappQueues" csv-label="true" filename="whatsappQueues.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedWhatsappQueues($event)" aria-label="delete selected" translate translate-attr-label="WHATSAPP.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- WHATSAPPQUEUE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedWhatsappQueues" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getWhatsappQueues">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'WHATSAPP.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'WHATSAPP.NAME\' | translate }}</th>\n <th md-column md-order-by="strategy">{{ \'WHATSAPP.STRATEGY\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.whatsappQueues.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="WHATSAPP.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="whatsappQueue" md-select-id="id" ng-repeat="whatsappQueue in vm.whatsappQueues.rows">\n <td md-cell ng-if="whatsappQueue.userpic"><img class="avatar" alt="{{whatsappQueue.name}}" ng-src="api/users/{{whatsappQueue.id}}/avatar" /></td>\n <td md-cell ng-if="!whatsappQueue.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{whatsappQueue.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappQueue, ev) : vm.createOrEditWhatsappQueue($event, whatsappQueue)" md-cell class="id ">{{whatsappQueue.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappQueue, ev) : vm.createOrEditWhatsappQueue($event, whatsappQueue)" md-cell class="name ">{{whatsappQueue.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappQueue, ev) : vm.createOrEditWhatsappQueue($event, whatsappQueue)" md-cell class="strategy ">{{ vm.arraystrategy[whatsappQueue.strategy].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="WHATSAPP.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(whatsappQueue, $event )" translate="WHATSAPP.EDIT_WHATSAPPQUEUE">\n Edit WhatsappQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(whatsappQueue, $event )" translate="WHATSAPP.TEAMADD_WHATSAPPQUEUE">\n teamadd WhatsappQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(whatsappQueue, $event )" translate="WHATSAPP.AGENTADD_WHATSAPPQUEUE">\n agentadd WhatsappQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(whatsappQueue, $event )" translate="WHATSAPP.DELETE_WHATSAPPQUEUE">\n Delete WhatsappQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(whatsappQueue, $event )" translate="WHATSAPP.GOTOREALTIME_WHATSAPPQUEUE">\n goToRealtime WhatsappQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'WHATSAPP.PAGE\' | translate}}:\', rowsPerPage: \'{{\'WHATSAPP.ROWSPERPAGE\' | translate}}:\', of: \'{{\'WHATSAPP.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.whatsappQueues.count}}" md-on-paginate="vm.getWhatsappQueues" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / WHATSAPPQUEUE TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD WHATSAPPQUEUE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-whatsappQueue-button" ng-click="vm.createOrEditWhatsappQueue($event)" aria-label="add whatsappQueue" translate translate-attr-aria-label="WHATSAPP.ADD_WHATSAPPQUEUE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD WHATSAPPQUEUE BUTTON --\x3e\n</div>'),e.put("app/navigation/layouts/horizontal-navigation/navigation.html",'<div layout="row" layout-align="start center">\n <ms-navigation-horizontal></ms-navigation-horizontal>\n</div>'),e.put("app/navigation/layouts/vertical-navigation-fullwidth-toolbar-2/navigation.html",'<ms-navigation class="scrollable" folded="vm.folded" ms-scroll="vm.msScrollOptions"></ms-navigation>'),e.put("app/navigation/layouts/vertical-navigation/navigation.html",'<md-toolbar class="navigation-header md-whiteframe-1dp" layout="row" layout-align="space-between center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-image"><img src="/api/settings/1/logo" alt="logo" /></span>\n \x3c!-- <span class="logo-image"><img src="assets/images/logos/whisker_32x32.png" alt="motion_whisker_32x32" /></span> --\x3e\n <span class="logo-text text-truncate">{{vm.getLogo() | uppercase}}</span>\n </div>\n <md-icon class="fold-toggle s18" md-font-icon="icon-backburger" hide show-gt-sm ng-click="vm.toggleMsNavigationFolded()"></md-icon>\n</md-toolbar>\n\n<ms-navigation class="scrollable" folded="vm.folded" ms-scroll="vm.msScrollOptions"></ms-navigation>'),e.put("app/quick-panel/quick-panel.html",'<md-content>\n <md-tabs md-no-pagination md-swipe-content md-stretch-tabs="always">\n <md-tab>\n <md-tab-label>\n <span translate="QUICKPANEL.TODAY">TODAY</span>\n </md-tab-label>\n <md-tab-body>\n <md-content class="today-tab scrollable" ms-scroll ng-include="\'app/quick-panel/tabs/today/today-tab.html\'"></md-content>\n </md-tab-body>\n </md-tab>\n <md-tab ng-if="vm.currentUser.allowmessenger || vm.currentUser.role !== \'agent\'" ng-include="\'app/quick-panel/tabs/chat/chat-tab.html\'" ng-controller="ChatInternalController as vm_ct" ng-init="vm_ct.init(vm.license)" md-on-deselect="vm_ct.user = undefined">\n <md-tab-label>\n <div ng-if="vm.unreadTotalMessages" class="md-accent-bg unread-message-count-chat">{{vm.unreadTotalMessages}}</div>\n <span>MESSENGER</span>\n </md-tab-label>\n <md-tab-body>\n <md-content class="chat-tab scrollable" ms-scroll ng-include="\'app/quick-panel/tabs/chat/chat-tab.html\'"></md-content>\n </md-tab-body>\n </md-tab>\n <md-tab ng-if="vm.currentUser.allowmessenger || vm.currentUser.role !== \'agent\'" ng-include="\'app/quick-panel/tabs/groups/group-tab.html\'" ng-controller="ChatGroupController as vm_cg" ng-init="vm_cg.init(vm.license)" md-on-deselect="vm_cg.group = undefined">\n <md-tab-label>\n <div ng-if="vm.unreadTotalGroupMessages" class="md-accent-bg unread-message-count-chat">{{vm.unreadTotalGroupMessages}}</div>\n <span translate="QUICKPANEL.GROUPS">GROUPS</span>\n </md-tab-label>\n <md-tab-body>\n <md-content class="group-tab scrollable" ms-scroll ng-include="\'app/quick-panel/tabs/groups/group-tab.html\'"></md-content>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n</md-content>'),e.put("app/quick-panel/tabs/activity/activity-tab.html",'<md-list class="friends">\n <md-subheader class="md-no-sticky">\n <span translate="QUICKPANEL.FRIENDS">Friends</span>\n </md-subheader>\n\n <md-list-item class="friend md-3-line" ng-repeat="friend in vm.activities.friends">\n <img ng-src="{{friend.avatar}}" class="md-avatar" alt="{{friend.name}}" />\n\n <div class="status {{friend.status}}"></div>\n\n <div ng-if="contact.unread" class="md-accent-bg unread-message-count">{{contact.unread}}</div>\n\n <div class="md-list-item-text">\n <h3 class="message">{{friend.message}}</h3>\n <p class="time">{{friend.time}}</p>\n </div>\n </md-list-item>\n</md-list>\n\n<md-divider></md-divider>\n\n<md-list class="servers">\n <md-subheader class="md-no-sticky">\n <span translate="QUICKPANEL.APP_SERVERS">Application Servers</span>\n </md-subheader>\n\n <md-list-item class="server md-3-line" ng-repeat="server in vm.activities.servers">\n <md-icon md-font-icon="icon-checkbox-blank-circle" class="s16 status" ng-class="server.status"></md-icon>\n\n <div class="md-list-item-text">\n <h3>{{server.location}}</h3>\n <p>{{server.detail}}</p>\n </div>\n </md-list-item>\n</md-list>\n\n<md-divider></md-divider>\n\n<md-list class="stats">\n <md-subheader class="md-no-sticky">\n <span translate="QUICKPANEL.USER_STATS">User Stats</span>\n </md-subheader>\n\n <md-list-item class="stat md-2-line" ng-repeat="stat in vm.activities.stats">\n <div class="md-list-item-text">\n <span>{{stat.title}} ({{stat.current}} / {{stat.total}})</span>\n <md-progress-linear ng-class="stat.status" md-mode="determinate" value="{{stat.percent}}"></md-progress-linear>\n </div>\n </md-list-item>\n</md-list>'),e.put("app/quick-panel/tabs/chat/chat-tab.html",'<div class="main animate-slide-left" ng-hide="vm_ct.user">\n <md-subheader class="md-no-sticky">\n <div class="search" layout="row" layout-align="space-between center">\n <md-icon md-font-icon="icon-magnify" class="icon search-icon"></md-icon>\n <input class="search-input" ng-model="vm_ct.search.$" type="text" placeholder="Search by fullname.." translate translate-attr-placeholder="QUICKPANEL.SEARCH" flex>\n <md-select ng-model="vm_ct.search.online" class="height-50 no-padding no-margin" aria-label="Chat Tab Search">\n <md-option ng-value="undefined">All</md-option>\n <md-option ng-value="true">\n <md-icon md-font-icon="icon-checkbox-blank-circle" class="s12 green-fg"></md-icon>Online\n </md-option>\n <md-option ng-value="false">\n <md-icon md-font-icon="icon-checkbox-blank-circle" class="s12 red-fg"></md-icon>Offline\n </md-option>\n </md-select>\n </div>\n </md-subheader>\n \x3c!-- <select ng-model="vm_ct.filterOnline" class="height-50 no-padding no-margin">\n <option ng-value="undefined">All</option>\n <option ng-value="true"><md-icon md-font-icon="icon-checkbox-blank-circle" class="s12 green-fg"></md-icon>Online</option>\n <option ng-value="false"><md-icon md-font-icon="icon-checkbox-blank-circle" class="s12 red-fg"></md-icon>Offline</option>\n </select> --\x3e\n <md-divider></md-divider>\n <md-list class="recent">\n <md-list-item class="contact md-3-line" ng-if="user.id != vm_ct.currentUser.id" ng-repeat="user in vm_ct.users.rows | orderBy: \'-lastMessageAt\' | filter:vm_ct.search" ng-click="vm_ct.toggleChat(user)">\n <md-divider></md-divider>\n <img ng-src="{{user.userpic ? \'api/users/\' + user.id + \'/avatar\' : \'assets/images/avatars/profile.png\'}}" class="md-avatar" alt="{{user.fullname}}" />\n <div class="status" ng-class="{true: \'online\', false: \'offline\'}[user.online]"></div>\n <div ng-if="vm_ct.unreadMessage[user.id]" class="md-accent-bg unread-message-count">\n {{vm_ct.unreadMessage[user.id]}}</div>\n <div class="md-list-item-text">\n <div layout="row">\n <h3>{{user.fullname}}</h3>\n <md-icon ng-if="!user.allowmessenger && user.role === \'agent\'" class="s16 margin-left-5" ng-style="{\'color\': \'red\' }" md-font-icon="icon-block-helper"></md-icon>\n </div>\n <p>{{user.name}} <{{user.internal}}></p>\n <div layout="row" layout-align="start center">\n <md-icon ng-if="!user.lastMessage.read && user.lastMessage.FromId === vm_ct.currentUser.id" class="s16 no-margin" md-font-icon="icon-check"></md-icon>\n <md-icon ng-if="user.lastMessage.read && user.lastMessage.FromId === vm_ct.currentUser.id" class="s16 no-margin" md-font-icon="icon-check-all md-accent"></md-icon>\n <p>{{user.lastMessage.body | limitTo:20 }}{{user.lastMessage.body.length > 20 ? \'...\' : \'\' }}</p>\n <span flex></span>\n <p class="last-message" ng-if="user.lastMessageAt != vm_ct.standardDate">\n {{user.lastMessageAt | formatdate}}</p>\n </div>\n </div>\n </md-list-item>\n </md-list>\n</div>\n\n<div class="chat animate-slide-right" ng-show="vm_ct.user" layout="column">\n <md-toolbar class="md-accent">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n\n <div layout="row" layout-align="start center">\n <md-button class="md-icon-button" ng-click="vm_ct.toggleChat()" aria-label="Back" translate translate-attr-aria-label="QUICKPANEL.BACK">\n <md-icon md-font-icon="icon-keyboard-backspace"></md-icon>\n </md-button>\n <h4>\n <span>{{vm_ct.user.fullname}}</span>\n </h4>\n </div>\n\n <div layout="row" layout-align="end center">\n <md-button ng-if="vm_ct.license.webrtc && vm_ct.currentUser.role === \'agent\' && vm_ct.currentUser.showWebBar === 2 && vm_ct.user.role === \'agent\'" class="md-icon-button" aria-label="Call" translate translate-attr-aria-label="QUICKPANEL.CALL" ng-click="vm_ct.webcall(vm_ct.user.name)">\n <md-icon md-font-icon="icon-phone"></md-icon>\n </md-button>\n <md-menu ng-if="vm_ct.currentUser.phoneBarRemoteControl && vm_ct.currentUser.role === \'agent\' && vm_ct.currentUser.showWebBar === 0 && vm_ct.user.role === \'agent\'">\n <md-button class="md-icon-button" aria-label="Call" translate translate-attr-aria-label="QUICKPANEL.CALL" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-phone"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-disabled="!vm_ct.currentUser.phoneBarRemoteControl">\n <md-button ng-click="vm_ct.call(vm_ct.user.name)">\n {{\'DASHBOARDS.CALL_NUMBER\' | translate}} ({{vm_ct.user.name}})\n </md-button>\n </md-menu-item>\n <md-menu-item ng-disabled="!vm_ct.currentUser.phoneBarRemoteControl">\n <md-button ng-click="vm_ct.transfer(vm_ct.user.name)">\n {{\'DASHBOARDS.TRANSFER_NUMBER\' | translate}} ({{vm_ct.user.name}})\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </div>\n\n </md-toolbar>\n <md-content flex layout-paddings ms-scroll id="chat-dialog">\n <div layout="row" ng-repeat="message in vm_ct.user.messages.rows" class="md-padding message-row" ng-class="message.FromId === vm_ct.currentUser.id ? \'user\' : \'contact\'">\n <img ng-if="message.FromId === vm_ct.user.id" ng-src="{{vm_ct.user.userpic ? \'api/users/\' + vm_ct.user.id + \'/avatar\' : \'assets/images/avatars/profile.png\'}}" class="avatar" alt="{{vm_ct.user.fullname}}" />\n <img ng-if="message.FromId === vm_ct.currentUser.id" class="avatar" ng-src="{{vm_ct.currentUser.userpic ? \'api/users/\' + vm_ct.currentUser.id + \'/avatar\' : \'assets/images/avatars/profile.png\'}}">\n <div class="bubble" flex>\n <span class="message" ng-bind-html="message.body | embed:{linkTarget:\'_blank\',emoji:false,fontSmiley:false}"></span>\n <div layout="row" layout-align="end center">\n <span class="time secondary-text">{{message.createdAt | formatdate }}</span>\n <md-icon ng-if="!message.read && message.FromId === vm_ct.currentUser.id" class="s16 margin-5" md-font-icon="icon-check"></md-icon>\n <md-icon ng-if="message.read && message.FromId === vm_ct.currentUser.id" class="s16 margin-5" md-font-icon="icon-check-all md-accent"></md-icon>\n </div>\n </div>\n </div>\n </md-content>\n\n <form ng-submit="vm_ct.reply()" layout="row" class="reply" layout-align="start center">\n <textarea ng-keyup="$event.keyCode == 13 && !vm_ct.disabled? vm_ct.reply() : null" flex ng-model="vm_ct.replyMessage" placeholder="Type and hit enter to send message" translate translate-attr-placeholder="QUICKPANEL.REPLY_PLACEHOLDER" autofocus></textarea>\n\n <md-button ng-disable="vm_ct.disabled" class="md-fab md-mini" type="submit" aria-label="Send message" translate translate-attr-aria-label="QUICKPANEL.SEND_MESSAGE">\n <md-icon md-font-icon="icon-send"></md-icon>\n </md-button>\n </form>\n</div>'),e.put("app/quick-panel/tabs/groups/create/dialog.html",'<md-dialog class="group-dialog" aria-label="New ChatGroup">\n <form name="groupForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog(null)">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n \x3c!--START Error--\x3e\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n \x3c!--END Error--\x3e\n\n \x3c!--START NAME--\x3e\n <md-input-container class="md-block">\n <label translate="QUICKPANEL.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.group.name" required autofocus>\n <div ng-messages="groupForm[\'name\'].$error" ng-show="groupForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="QUICKPANEL.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="QUICKPANEL.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n \x3c!--END NAME--\x3e\n\n \x3c!--START Members--\x3e\n <md-input-container class="md-block">\n <label translate="QUICKPANEL.MEMBERS">Members</label>\n <md-contact-chips ng-model="vm.group.members" md-contacts="vm.querySearch($query)" md-contact-name="name" md-contact-image="image" md-require-match="true" md-highlight-flags="i" placeholder="{{\'QUICKPANEL.MEMBERS\' | translate}}">\n </md-contact-chips>\n <div ng-messages="groupForm[\'strategy\'].$error" ng-show="groupForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="QUICKPANEL.ERRORS.MEMBERS_REQUIRED">Members field is required</span>\n </div>\n </div>\n </md-input-container>\n \x3c!--END Members--\x3e\n\n \x3c!--START Writing--\x3e\n <md-input-container class="md-block">\n <md-switch ng-model="vm.group.write" aria-label="Write">\n {{\'QUICKPANEL.ENABLE_WRITING\' | translate}}\n </md-switch>\n </md-input-container>\n \x3c!--END Writing--\x3e\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.newChatGroup" ng-click="vm.saveChatGroup()" class="send-button md-accent md-raised" ng-disabled="groupForm.$invalid || groupForm.$pristine || (vm.group.members.length < 1)" aria-label="SAVE" translate="QUICKPANEL.SAVE" translate-attr-aria-label="QUICKPANEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/quick-panel/tabs/groups/group-tab.html",'<div class="main animate-slide-left" ng-if="!vm_cg.group">\n <md-subheader>\n <div layout="row">\n \x3c!-- START Search --\x3e\n <div class="search" layout="row" layout-align="start center" flex>\n <md-icon md-font-icon="icon-magnify" class="icon search-icon"></md-icon>\n <input ng-model="vm_cg.search" type="text" translate translate-attr-placeholder="QUICKPANEL.SEARCH" flex>\n </div>\n \x3c!-- END Search --\x3e\n\n \x3c!-- START New Group --\x3e\n <md-button ng-if="vm_cg.currentUser.role !== \'agent\'" class="md-icon-button" aria-label="New" ng-click="vm_cg.addGroup(null, $event)">\n <md-icon md-font-icon="icon-account-multiple-plus" class="icon"></md-icon>\n </md-button>\n \x3c!-- END New Group --\x3e\n </div>\n </md-subheader>\n\n <md-divider></md-divider>\n\n \x3c!-- START Groups --\x3e\n <md-list class="recent no-padding">\n \x3c!-- START Group --\x3e\n <md-list-item class="contact" ng-repeat="group in vm_cg.groupsToArray() | filter:vm_cg.search" ng-click="vm_cg.toggleChat(group)">\n <img src="assets/images/avatars/group.png" class="md-avatar" alt="{{group.name}}" />\n <div ng-if="group.unreadGroupMessages" class="md-accent-bg unread-message-count">{{group.unreadGroupMessages}}</div>\n <div class="md-list-item-text">\n <div layout="row">\n <h3>{{group.name}}</h3>\n </div>\n </div>\n\n <md-button ng-if="vm_cg.currentUser.role !== \'agent\'" class="md-secondary md-icon-button" aria-label="Remove" ng-click="vm_cg.deleteGroup(group, $event)">\n <md-icon md-font-icon="icon-delete" class="icon s18"></md-icon>\n </md-button>\n\n <md-divider ng-if="!$last"></md-divider>\n </md-list-item>\n <md-list-item>\n <div ng-if="!vm_cg.groupsToArray().length" layout="row" layout-align="center center" flex>\n <span>{{\'QUICKPANEL.NO_AVAILABLE_GROUPS\' | translate}}</span>\n </div>\n </md-list-item>\n \x3c!-- END Group --\x3e\n </md-list>\n \x3c!-- END Groups --\x3e\n</div>\n\n<div class="chat animate-slide-right" ng-if="vm_cg.group" layout="column">\n <md-toolbar class="md-accent">\n <div class="md-toolbar-tools " layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="vm_cg.back()" aria-label="Back" translate translate-attr-aria-label="QUICKPANEL.BACK" flex="15">\n <md-icon md-font-icon="icon-keyboard-backspace"></md-icon>\n </md-button>\n <h4 flex layout-align="start center" style="max-height: 100%; overflow-y:auto;">\n <span translate="QUICKPANEL.YOU" translate-values=\'{participants: vm_cg.participants}\'></span>\n </h4>\n\n <div layout="row" layout-align="end center">\n <md-button ng-if="vm_cg.license.webrtc && vm_cg.currentUser.role === \'agent\' && vm_cg.currentUser.showWebBar === 2 && vm_cg.user.role === \'agent\' && vm_cg.user.showWebBar === 2" class="md-icon-button" aria-label="Call" translate translate-attr-aria-label="QUICKPANEL.CALL" ng-click="vm_cg.webcall(vm_cg.user.name)">\n <md-icon md-font-icon="icon-phone"></md-icon>\n </md-button>\n </div>\n </div>\n\n </md-toolbar>\n <md-content flex layout-paddings ms-scroll id="chat-group-dialog">\n <div layout="row" ng-repeat="message in vm_cg.group.messages" class="message-row" ng-class="message.FromId === vm_cg.currentUser.id ? \'user\' : \'contact\'">\n <img ng-if="message.FromId !== vm_cg.currentUser.id" ng-src="{{\'api/users/\' + message.FromId + \'/avatar\'}}" class="avatar" alt="{{vm_cg.user.fullname}}" />\n <img ng-if="message.FromId === vm_cg.currentUser.id" class="avatar" ng-src="{{vm_cg.currentUser.userpic ? \'api/users/\' + vm_cg.currentUser.id + \'/avatar\' : \'assets/images/avatars/profile.png\'}}">\n <div class="bubble" flex>\n <div ng-if="message.FromId !== vm_cg.currentUser.id">\n <span style="font-size: 12px;">{{vm_cg.group.membersByKeys[message.FromId].fullname}}</span>\n </div>\n <span class="message" ng-bind-html="message.body | embed:{linkTarget:\'_blank\',emoji:false,fontSmiley:false}"></span>\n <div layout="row" layout-align="end center">\n <span class="time secondary-text" style="margin-top: 0px;">{{message.createdAt | formatdate }}</span>\n <md-icon ng-if="message.FromId === vm_cg.currentUser.id" class="s16 margin-5" style="cursor: pointer;" md-font-icon="icon-information-outline" ng-click="vm_cg.showMessageInfo($event, message)"></md-icon>\n </div>\n </div>\n </div>\n </md-content>\n\n <form ng-if="(vm_cg.currentUser.role !== \'agent\') || vm_cg.group.write" ng-submit="vm_cg.reply()" layout="row" class="reply" layout-align="start center">\n <textarea ng-keyup="$event.keyCode == 13 ? vm_cg.reply() : null" flex ng-model="vm_cg.replyMessage" placeholder="Type and hit enter to send message" translate translate-attr-placeholder="QUICKPANEL.REPLY_PLACEHOLDER" autofocus></textarea>\n\n <md-button class="md-fab md-mini" type="submit" aria-label="Send message" translate translate-attr-aria-label="QUICKPANEL.SEND_MESSAGE">\n <md-icon md-font-icon="icon-send"></md-icon>\n </md-button>\n </form>\n</div>'),e.put("app/quick-panel/tabs/groups/info/dialog.html",'<md-dialog class="group-dialog" aria-label="New ChatGroup">\n <form name="groupForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog(null)">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div ng-if="vm.data.messages[$index].FromId !== vm.data.messages[$index].ToId" ng-repeat="user in vm.data.users" layout-margin>\n <div layout="row">\n <div layout="row" layout-align="start center">\n <img ng-src="{{user.userpic ? \'api/users/\' + user.id + \'/avatar\' : \'assets/images/avatars/profile.png\'}}" class="avatar" alt="{{user.fullname}}" />\n <span>{{user.fullname}}</span>\n </div>\n <div layout="row" layout-align="end center" flex>\n <md-icon class="s16 margin-5" md-font-icon="{{vm.data.messages[$index].read ? \'icon-check-all md-accent\' : \'icon-check\'}}"></md-icon>\n <span class="time secondary-text">{{vm.data.messages[$index].updatedAt | formatdate }}</span>\n </div>\n </div>\n <div>\n <md-divider ng-if="!$last"></md-divider>\n </div>\n </div>\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/quick-panel/tabs/today/today-tab.html",'<md-list class="date">\n <md-subheader class="md-no-sticky"><span translate="QUICKPANEL.TODAY">Today</span></md-subheader>\n <md-list-item class="md-display-1 md-2-line">\n <div class="secondary-text">\n <div translate="QUICKPANEL.{{ (vm.date | date:\'EEEE\').toUpperCase() }}"></div>\n <div layout="row" layout-align="start start">\n <span> {{vm.date | date:\'d\'}}</span>\n <span class="md-subhead">th</span>\n <span translate="QUICKPANEL.{{ (vm.date | date:\'MMMM\').toUpperCase() }}"></span>\n </div>\n </div>\n </md-list-item>\n</md-list>\n\n\x3c!-- <md-divider></md-divider>\n\n<md-list>\n <md-subheader class="md-no-sticky"><span translate="QUICKPANEL.EVENTS">Events</span></md-subheader>\n\n <md-list-item class="md-2-line" ng-repeat="event in vm.events" ng-click="dummyFunction()">\n <div class="md-list-item-text">\n <h3>{{event.title}}</h3>\n\n <p>{{event.detail}}</p>\n </div>\n </md-list-item>\n</md-list>\n\n<md-divider></md-divider>\n\n<md-list>\n <md-subheader class="md-no-sticky"><span translate="QUICKPANEL.NOTES">Notes</span></md-subheader>\n <md-list-item class="md-2-line" ng-repeat="note in vm.notes" ng-click="dummyFunction()">\n <div class="md-list-item-text">\n <h3>{{note.title}}</h3>\n\n <p>{{note.detail}}</p>\n </div>\n </md-list-item>\n</md-list>\n\n<md-divider></md-divider>\n\n<md-list>\n <md-subheader class="md-no-sticky"><span translate="QUICKPANEL.QUICK_SETTINGS">Quick Settings</span></md-subheader>\n\n <md-list-item>\n <h3 translate="QUICKPANEL.NOTIFICATIONS">Notifications</h3>\n <md-switch class="md-secondary" ng-model="vm.settings.notify" aria-label="Notifications" translate\n translate-attr-aria-label="QUICKPANEL.NOTIFICATIONS"></md-switch>\n </md-list-item>\n\n <md-list-item>\n <h3 translate="QUICKPANEL.CLOUD_SYNC">Cloud Sync</h3>\n <md-switch class="md-secondary" ng-model="vm.settings.cloud" aria-label="Cloud Sync" translate\n translate-attr-aria-label="QUICKPANEL.CLOUD_SYNC"></md-switch>\n </md-list-item>\n\n <md-list-item>\n <h3 translate="QUICKPANEL.RETRO_THRUSTERS">Retro Thrusters</h3>\n <md-switch class="md-secondary md-warn" ng-model="vm.settings.retro" aria-label="Retro Thrusters" translate\n translate-attr-aria-label="QUICKPANEL.RETRO_THRUSTERS"></md-switch>\n </md-list-item>\n</md-list> --\x3e'),e.put("app/reset/reset.html",'<div id="reset-password" class="flex-scrollable" layout="column" ng-init="vm.onInit()" ms-scroll>\n <div id="reset-password-form-wrapper" layout="column" layout-align="center center">\n <div id="reset-password-form" class="md-whiteframe-8dp">\n\n <img src="/api/settings/1/logo_login" alt="logo_login" class="logo_login" />\n\n <div class="title" translate="RESETPASSWORD.TITLE">Reset your password</div>\n\n <form name="resetPasswordForm" novalidate>\n\n <md-input-container class="md-block" md-no-float>\n <input type="password" name="password" ng-model="vm.form.password" ng-pattern="vm.passwordPattern" placeholder="Password" translate translate-attr-placeholder="RESETPASSWORD.PASSWORD" required>\n <div ng-messages="resetPasswordForm.password.$error" role="alert">\n <div ng-message="required">\n <span translate="RESETPASSWORD.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="RESETPASSWORD.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" md-no-float>\n <input type="password" name="passwordConfirm" ng-model="vm.form.passwordConfirm" placeholder="Password (Confirm)" match-password="password" translate translate-attr-placeholder="RESETPASSWORD.PASSWORD_CONFIRM">\n <div ng-messages="resetPasswordForm.passwordConfirm.$error" role="alert">\n <div ng-message="passwordMatch">\n <span translate="TOOLBAR.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n </div>\n </div>\n </md-input-container>\n\n <md-button type="button" ng-click="vm.resetPassword()" class="md-raised md-accent submit-button" aria-label="UPDATE MY PASSWORD" ng-disabled="resetPasswordForm.$invalid || resetPasswordForm.$pristine" translate="RESETPASSWORD.UPDATE_PASSWORD" translate-attr-aria-label="RESETPASSWORD.UPDATE_PASSWORD">\n RESET MY PASSWORD\n </md-button>\n </form>\n </div>\n </div>\n</div>'),e.put("app/toolbar/changepassword/changepassword.html",'<md-dialog class="user-dialog" aria-label="{{vm.name}}">\n <form name="changePasswordForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span ng-if="vm.reset" class="title" translate="TOOLBAR.RESETPASSWORD">Reset Password</span>\n <span ng-if="!vm.reset" class="title" translate="TOOLBAR.CHANGEPASSWORD">Change Password</span>\n <md-button ng-if="!vm.reset" class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLBAR.OLD_PASSWORD">Old Password</label>\n <input type="password" name="oldPassword" ng-model="vm.oldPassword" placeholder="Password" translate translate-attr-placeholder="TOOLBAR.OLD_PASSWORD" required>\n <div ng-messages="changePasswordForm.oldPassword.$error" role="alert">\n <div ng-message="required">\n <span translate="TOOLBAR.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLBAR.NEW_PASSWORD">New Password</label>\n <input type="password" name="password" ng-model="vm.password" placeholder="Password" ng-pattern="vm.passwordPattern" translate translate-attr-placeholder="TOOLBAR.NEW_PASSWORD" required>\n <div ng-messages="changePasswordForm.password.$error" role="alert">\n <div ng-message="required">\n <span translate="TOOLBAR.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="TOOLBAR.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n <div ng-message="oldPasswordMatch">\n <span translate="TOOLBAR.ERRORS.PASSWORD_OLDPASSWORD_MATCH">New password must be different from old one</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLBAR.CONFIRM_PASSWORD">Confirm Password</label>\n <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n <div ng-messages="changePasswordForm.confirmPassword.$error" role="alert" multiple>\n <div ng-message="required">\n <span translate="TOOLBAR.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n </div>\n <div ng-message="passwordMatch">\n <span translate="TOOLBAR.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n </div>\n </div>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.savePassword()" class="send-button md-accent md-raised" ng-disabled="changePasswordForm.$invalid || changePasswordForm.$pristine" aria-label="SAVE" translate="TOOLBAR.SAVE" translate-attr-aria-label="TOOLBAR.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/toolbar/layouts/vertical-navigation/toolbar.html",'<div layout="row" layout-align="start center">\n <div layout="row" layout-align="start center" flex>\n <md-button id="navigation-toggle" class="md-icon-button" ng-click="vm.toggleSidenav(\'navigation\')" hide-gt-sm aria-label="Toggle navigation" translate translate-attr-aria-label="TOOLBAR.TOGGLE_NAVIGATION">\n <md-icon md-font-icon="icon-menu" class="icon"></md-icon>\n </md-button>\n\n <ms-shortcuts ng-if="!vm.isAgent()"></ms-shortcuts>\n\n <div class="toolbar-separator"></div>\n\n <div ng-if="vm.license.demo" class="blink md-padding">\n <span class="md-warn-fg" translate="TOOLBAR.TRIAL_VERSION">Trial Version</span>\n </div>\n\n <div ng-if="vm.isAgent()" class="logo" layout-padding-left-8 layout="row" layout-align="start center">\n <span class="logo-image"><img src="/api/settings/1/logo" alt="logo" /></span>\n <span ng-show="vm.isAgent() && (vm.user.showWebBar != 2)" class="logo-text text-truncate">{{ vm.getLogo() |\n uppercase }}</span>\n </div>\n\n \x3c!-- phonebar directive WebRtc type--\x3e\n <ms-phonebar class="ms-phonebar" ng-if="vm.isAgent() && (vm.user.showWebBar == 2)" conf="vm.conf" sessions="vm.webRTCSessions" flex></ms-phonebar>\n \x3c!-- phonebar directive --\x3e\n </div>\n\n <div layout="row" layout-align="start center">\n\n <md-progress-circular id="toolbar-progress" ng-if="$root.loadingProgress" class="md-accent" md-diameter="32">\n </md-progress-circular>\n\n \x3c!-- Pause Management --\x3e\n <div ng-if="vm.isAgent() && (vm.user.showWebBar != 0)" layout="row" layout-align="end center">\n <div class="toolbar-separator"></div>\n\n <div class="border brad-5" layout="row" layout-align="center center" layout-margin>\n <md-button ng-if="vm.user.voicePause" class="md-icon-button no-margin" ng-click="vm.unpause()">\n <md-icon md-font-icon="icon-play-circle-outline" class="icon s24"></md-icon>\n <md-tooltip md-direction="bottom">{{\'TOOLBAR.RESUME\' | translate}}</md-tooltip>\n </md-button>\n\n <md-button ng-disabled="vm.user.voicePause && \'DEFAULT PAUSE\' === vm.user.pauseType" class="md-icon-button no-margin" ng-click="vm.pause()">\n <md-icon md-font-icon="icon-pause-circle-outline" class="icon s24"></md-icon>\n <md-tooltip md-direction="bottom">{{\'TOOLBAR.PAUSE\' | translate}}</md-tooltip>\n </md-button>\n\n <md-menu>\n <md-button aria-label="Pauses" class="md-icon-button no-margin" ng-click="$mdOpenMenu($event)">\n <md-icon md-menu-origin md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="4">\n <md-menu-item ng-if="!vm.pauses.length">\n <md-button disabled="disabled">\n <md-icon md-font-icon="icon-pause-octagon" md-menu-align-target></md-icon>\n {{\'TOOLBAR.NO_PAUSES_AVAILABLE\' | translate}}\n </md-button>\n </md-menu-item>\n <md-menu-item ng-repeat="pause in vm.pauses">\n <md-button ng-disabled="vm.user.voicePause && pause.name === vm.user.pauseType" ng-click="vm.pause(pause.name)">\n <md-icon md-font-icon="icon-pause-circle" md-menu-align-target></md-icon>\n {{pause.name}}\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </div>\n \x3c!-- Pause Management --\x3e\n\n <div class="h5 padding-10" ng-if="vm.isAgent() && (vm.user.showWebBar != 0)">\n <div layout="row" layout-align="space-between center">\n <timer ng-if="vm.user.lastLoginAt" start-time="vm.user.lastLoginAt"></timer>\n <md-tooltip>{{\'TOOLBAR.LOGIN_TIME\' | translate}}</md-tooltip>\n <md-icon md-font-icon="icon-timelapse" class="icon s16"></md-icon>\n </div>\n <div layout="row" layout-align="center center" ng-if="vm.user.voicePause">\n <timer start-time="vm.user.lastPauseAt"></timer>\n <md-tooltip>{{\'TOOLBAR.PAUSE_TIME\' | translate}}</md-tooltip>\n <md-icon md-font-icon="icon-coffee" class="icon s16"></md-icon>\n </div>\n <div ng-if="vm.user.voicePause">\n <span class="blink red-fg">{{vm.user.pauseType || \'default\' | uppercase}}</span>\n </div>\n </div>\n\n <div class="toolbar-separator" ng-if="vm.isAgent() && (vm.user.showWebBar != 0)"></div>\n\n <md-menu-bar id="user-menu">\n <md-menu md-position-mode="left bottom">\n <md-button class="user-button" ng-click="$mdOpenMenu()" aria-label="User settings" translate translate-attr-aria-label="TOOLBAR.USER_SETTINGS">\n <div layout="row" layout-align="space-between center">\n <div class="avatar-wrapper">\n <img md-menu-align-target class="avatar" src="assets/images/avatars/profile.png" ng-if="!vm.user.userpic">\n <img md-menu-align-target class="avatar" ng-src="api/users/{{vm.user.id}}/avatar" ng-if="vm.user.userpic">\n <md-icon md-font-icon ng-class="vm.userStatus.icon" ng-style="{\'color\': vm.userStatus.color }" class="icon status s16"></md-icon>\n </div>\n <div layout="column" layout-align="center center" class="padding-horizontal-5">\n <span class="font-size-14 md-subhead">{{vm.user.fullname}}</span>\n <span class="font-size-12 md-subhead">{{vm.user.name}} <{{vm.user.internal}}></span>\n </div>\n\n <md-icon md-font-icon="icon-chevron-down" class="icon s16" hide-xs></md-icon>\n </div>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm.user.showWebBar == 2 && vm.user.phoneBarEnableSettings" class="md-indent">\n <md-icon md-font-icon="icon-cog" class="icon"></md-icon>\n <md-button ng-click="vm.openSettings($event)" ng-disabled="!vm.license.webrtc"><span translate="TOOLBAR.SETTINGS">SETTINGS</span></md-button>\n </md-menu-item>\n\n <md-menu-item class="md-indent">\n <md-icon md-font-icon="icon-key-variant" class="icon"></md-icon>\n <md-button ng-click="vm.changePassword($event)"><span translate="TOOLBAR.CHANGEPASSWORD">Change\n Password</span></md-button>\n </md-menu-item>\n\n <md-menu-divider></md-menu-divider>\n\n <md-menu-item class="md-indent">\n <md-icon md-font-icon="icon-logout" class="icon"></md-icon>\n <md-button ng-click="vm.logout()">Logout</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-bar>\n\n <div class="toolbar-separator"></div>\n\n <md-button ng-if="vm.user.role === \'agent\' && vm.license.dialer" class="preview-button no-margin" ng-disabled="vm.disable" ng-click="vm.preview($event)" aria-label="Language" md-menu-origin md-menu-align-target>\n <div ng-if="vm.contacts" class="md-accent-bg open-contact-count">{{vm.contacts > 99 ? \'99+\' : vm.contacts}}</div>\n <md-icon md-font-icon="icon-fire" class="icon red-900-fg"></md-icon>\n <md-tooltip><span translate="TOOLBAR.PREVIEW">Preview</span></md-tooltip>\n </md-button>\n\n <ms-search-bar ng-if="vm.user.role !== \'agent\'" on-search="vm.search(query)" on-result-click="vm.searchResultClick(item)" debounce="300" collapse-on-blur="true"></ms-search-bar>\n\n <md-menu id="language-menu" md-offset="0 72" md-position-mode="target-right target" layout="column" layout-align="center center">\n <md-button class="md-icon-button no-margin" ng-click="$mdOpenMenu()" aria-label="Language" md-menu-origin md-menu-align-target>\n <div layout="row" layout-align="center center">\n <img class="flag" ng-src="assets/images/flags/{{vm.selectedLanguage.flag}}.png">\n </div>\n </md-button>\n\n <md-menu-content width="3" id="language-menu-content">\n <md-menu-item ng-repeat="(iso, lang) in vm.languages">\n <md-button ng-click="vm.changeLanguage(lang)" aria-label="{{lang.title}}" translate translate-attr-aria-label="{{lang.title}}">\n <span layout="row" layout-align="start center">\n <img class="flag flag-24" ng-src="assets/images/flags/{{lang.flag}}.png">\n <span translate="{{lang.translation}}">{{lang.title}}</span>\n </span>\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n\n <div class="toolbar-separator"></div>\n\n <md-button ng-if="vm.license.gray && vm.user.role !== \'agent\'" class="md-icon-button" ui-sref="app.settings.license" aria-label="Toggle quick panel">\n <md-icon md-font-icon="icon-alert" class="icon md-warn blink"></md-icon>\n </md-button>\n <md-button ng-if="vm.license.gray && vm.user.role === \'agent\'" class="md-icon-button" aria-label="Toggle quick panel">\n <md-icon md-font-icon="icon-alert" class="icon md-warn blink"></md-icon>\n </md-button>\n\n <div ng-if="vm.license.gray" class="toolbar-separator"></div>\n\n <md-button id="quick-panel-toggle" class="md-icon-button" ng-click="vm.toggleSidenav(\'quick-panel\')" aria-label="Toggle quick panel" translate translate-attr-aria-label="TOOLBAR.TOGGLE_QUICK_PANEL">\n <div ng-if="(vm.unreadTotalMessages + vm.unreadTotalGroupMessages)" class="md-accent-bg unread-message-count">\n {{vm.unreadTotalMessages + vm.unreadTotalGroupMessages}}</div>\n <md-icon md-font-icon="icon-format-list-bulleted" class="icon"></md-icon>\n </md-button>\n </div>\n</div>'),e.put("app/toolbar/preview/dialog.html",'<md-dialog class="preview-dialog" aria-label="preview">\n <form name="previewForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">Preview</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div layout="row" ng-if="vm.preview">\n <div class="md-padding md-margin" layout="column" flex="30">\n <md-input-container ng-if="vm.preview.Contact.id" class="md-block no-margin">\n <label translate="CONTACTMANAGER.ID">ID</label>\n <input type="text" ng-model="vm.preview.Contact.id" disabled="true">\n </md-input-container>\n <md-input-container ng-if="vm.preview.Queue.name" class="md-block no-margin">\n <label translate="VOICE.QUEUE">Queue</label>\n <input type="text" ng-model="vm.preview.Queue.name" disabled="true">\n </md-input-container>\n <md-input-container ng-if="vm.preview.List.name" class="md-block no-margin">\n <label translate="CONTACTMANAGER.LIST">List</label>\n <input type="text" ng-model="vm.preview.List.name" disabled="true">\n </md-input-container>\n <md-input-container ng-if="vm.preview.Contact.tags && vm.preview.Contact.tags.length" class="md-block no-margin">\n <label translate="CONTACTMANAGER.TAGS">Tags</label>\n <input type="text" ng-model="vm.preview.Contact.tags" disabled="true">\n </md-input-container>\n <md-input-container ng-if="vm.preview.Contact.Company && vm.preview.Contact.Company.name" class="md-block no-margin">\n <label translate="CONTACTMANAGER.COMPANY">Company</label>\n <input type="text" ng-model="vm.preview.Contact.Company.name" disabled="true">\n </md-input-container>\n </div>\n <md-divider></md-divider>\n <div class="md-padding md-margin" layout="column" flex="35">\n <md-input-container ng-repeat="(key, value) in vm.preview.Contact" ng-if="!vm.isNil(value) && !vm.isCustomField(key) && !vm.isHiddenField(key)" class="md-block no-margin">\n <label>{{ \'CONTACTMANAGER.\' + key.toUpperCase() | translate}}</label>\n <input type="text" ng-model="value" disabled="true" privacy=\'vm.currentUser.privacyEnabled && (key === "firstName" || key === "lastName" || key === "phone" || key === "mobile" || key === "email" || key === "fax") \' ng-cloak>\n </md-input-container>\n </div>\n <div class="md-padding md-margin" layout="column" flex="35">\n <md-input-container ng-repeat="(key, value) in vm.preview.Contact" ng-if="!vm.isNil(value) && vm.isCustomField(key) && !vm.isHiddenField(key)" class="md-block no-margin">\n <label>{{ vm.customFieldsMap[key] || key }}</label>\n <input type="text" ng-model="value" disabled="true">\n </md-input-container>\n </div>\n </div>\n <div layout="row" ng-if="!vm.preview">\n <span>no contacts available</span>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions class="md-dialog-action-center padding-rigth-15">\n <md-button class="md-icon-button md-primary" ng-hide="vm.hopperIds.length <= 1" ng-disabled="vm.disableGetContact" ng-click="vm.previousContact()" aria-label="PREVIOUSCONTACT" translate-attr-aria-label="TOOLS.PREVIOUSCONTACT">\n <md-icon md-font-icon="icon-chevron-left"></md-icon>\n </md-button>\n <md-button class="md-fab green-bg" aria-label="CALL" translate-attr-aria-label="TOOLS.CALL" ng-disabled="vm.disable" ng-click="vm.originatePreview($event)">\n <md-icon md-font-icon="icon-phone"></md-icon>\n </md-button>\n <md-button class="md-icon-button md-primary" ng-disabled="vm.disableGetContact" ng-click="vm.nextContact()" aria-label="NEXTCONTACT" translate-attr-aria-label="TOOLS.NEXTCONTACT">\n <md-icon md-font-icon="icon-chevron-right"></md-icon>\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>')}]);
\ No newline at end of file
+!function(){"use strict";angular.module("app.auth",[])}(),function(){"use strict";angular.module("app.core",["ngAnimate","ngAria","ngCookies","ngMessages","ngResource","ngSanitize","ngMaterial","pascalprecht.translate","ui.router","ui.router.state.events","gridster","ds.clock","angucomplete-alt"])}(),function(){"use strict";function e(e,n){e.state("app.errors_error-404",{url:"/errors/error-404",views:{"main@":{templateUrl:"app/core/layouts/content-only.html",controller:"MainController as vm"},"content@app.errors_error-404":{templateUrl:"app/errors/404/error-404.html",controller:"Error404Controller as vm"}},params:{status:404,statusText:"",data:{},config:{}},bodyClass:"error-404"}),n.addPart("app/errors/404")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.errors.error-404",[]).config(e)}(),function(){"use strict";function e(e,n){e.state("app.errors_error-500",{url:"/errors/error-500",views:{"main@":{templateUrl:"app/core/layouts/content-only.html",controller:"MainController as vm"},"content@app.errors_error-500":{templateUrl:"app/errors/500/error-500.html",controller:"Error500Controller as vm"}},params:{status:500,statusText:"",data:{},config:{}},bodyClass:"error-500"}),n.addPart("app/errors/500")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.errors.error-500",[]).config(e)}(),function(){"use strict";angular.module("app.errors",["app.errors.error-404","app.errors.error-500"])}(),function(){"use strict";function e(e){e.addPart("app/footer")}e.$inject=["$translatePartialLoaderProvider"],angular.module("app.footer",[]).config(e)}(),function(){"use strict";function e(e,n){e.state("app.forgot",{url:"/forgot",views:{"main@":{templateUrl:"app/core/layouts/content-only.html",controller:"MainController as vm"},"content@app.forgot":{templateUrl:"app/forgot/forgot.html",controller:"ForgotPasswordController as vm"}},bodyClass:"forgot"}),n.addPart("app/forgot")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.forgot",[]).config(e)}(),function(){"use strict";function e(e){e.addPart("app/header")}e.$inject=["$translatePartialLoaderProvider"],angular.module("app.header",[]).config(e)}(),function(){"use strict";angular.module("motion",["angular-toasty","app.core","app.auth","app.navigation","app.toolbar","app.quick-panel","app.header","app.footer","app.dashboards","app.staff","app.contactmanager","app.voice","app.chat","app.mail","app.sms","app.openchannel","app.fax","app.tools","app.callysquare","app.analytics","app.integrations","app.settings","app.motiondialer","app.help","app.jscripty","app.marketplace","app.plugins","app.video","app.whatsapp","app.login","app.forgot","app.reset","app.errors"])}(),function(){"use strict";function e(e,n){e.state("app.login",{url:"/login?token&userId",views:{"main@":{templateUrl:"app/core/layouts/content-only.html",controller:"MainController as vm"},"content@app.login":{templateUrl:"app/login/login.html",controller:"LoginController as vm"}},bodyClass:"login"}),n.addPart("app/login")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.login",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.analytics",{abstract:!0,url:"/analytics"}).state("app.analytics.metrics",{url:"/metrics",views:{"content@app":{templateUrl:"app/main/apps/analytics/views/metrics/metrics.html",controller:"MetricsController as vm"}},resolve:{metrics:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("analyticMetric@get",{fields:"createdAt,updatedAt,id,name,table,metric,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Metrics",fields:"createdAt,updatedAt,id,name,table,metric,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1201})}]},authenticate:!0,permissionId:1201,bodyClass:"analytics"}).state("app.analytics.extractedReports",{url:"/extractedReports",views:{"content@app":{templateUrl:"app/main/apps/analytics/views/extractedReports/extractedReports.html",controller:"ExtractedReportsController as vm"}},resolve:{extractedReports:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("analyticExtractedReport@get",{fields:"createdAt,updatedAt,id,name,basename,savename,type,startDate,endDate,status,output,reportId,reportType",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ExtractedReports",fields:"createdAt,updatedAt,id,name,basename,savename,type,startDate,endDate,status,output,reportId,reportType",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1202})}]},authenticate:!0,permissionId:1202,bodyClass:"analytics"}),n.addPart("app/main/apps/analytics")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.analytics",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.analytics.reports"]).config(e)}(),function(){"use strict";function e(e){e.state("app.analytics.reports",{url:"/reports",views:{"content@app":{templateUrl:"app/main/apps/analytics/views/reports/reports.html",controller:"ReportsController as vm"}},resolve:{treeReports:["apiResolver",function(e){return e.resolve("analyticTreeReport@get",{fields:"id,tree",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1203})}]},authenticate:!0,permissionId:1203,bodyClass:"analytics"}).state("app.analytics.reports.edit",{url:"/:id?tab",views:{"content@app":{templateUrl:"app/main/apps/analytics/views/reports/edit/view.html",controller:"ReportController as vm"}},resolve:{report:["apiResolver","$stateParams","$q","describeTable",function(e,n,a,i){var s;return e.resolve("analyticCustomReport@get",{fields:"createdAt,updatedAt,id,name,description,table,conditions,joins",id:n.id}).then(function(e){var n=[];if((s=e).joins)try{s.joins=JSON.parse(s.joins);for(var t=0;t<s.joins.length;t+=1)n.push(i.getColumns(s.joins[t].foreignTable))}catch(e){console.log(e)}return a.all(n)}).then(function(e){for(var n=0;n<e.length;n+=1)s.joins[n].foreignTableFields=_.difference(_.keys(e[n]),["$promise","$resolved"]);return s})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1203})}]},authenticate:!0,permissionId:1203,bodyClass:"analytics"})}e.$inject=["$stateProvider"],angular.module("app.analytics.reports",["ngJsTree"]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.callysquare",{abstract:!0,url:"/callysquare"}).state("app.callysquare.odbcs",{url:"/odbcs",views:{"content@app":{templateUrl:"app/main/apps/callysquare/views/odbcs/odbcs.html",controller:"OdbcsController as vm"}},resolve:{odbcs:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("squareOdbc@get",{fields:"createdAt,updatedAt,id,name,dsn,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ODBC",fields:"createdAt,updatedAt,id,name,dsn,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1101})}]},authenticate:!0,permissionId:1101,bodyClass:"callysquare"}).state("app.callysquare.squareRecordings",{url:"/squareRecordings",views:{"content@app":{templateUrl:"app/main/apps/callysquare/views/squareRecordings/squareRecordings.html",controller:"SquareRecordingsController as vm"}},resolve:{squareRecordings:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("squareRecording@get",{fields:"createdAt,updatedAt,id,filename,projectName,uniqueid,callerid,extension,audio,savePath,format",sort:"-createdAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SquareRecordings",fields:"createdAt,updatedAt,id,filename,projectName,uniqueid,callerid,extension,audio,savePath,format",sort:"-createdAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadCallySquareRecordings",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1102})}]},authenticate:!0,permissionId:1102,bodyClass:"callysquare"}),n.addPart("app/main/apps/callysquare")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.callysquare",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.callysquare.projects"]).config(e)}(),function(){"use strict";function e(e){e.state("app.callysquare.projects",{url:"/projects",views:{"content@app":{templateUrl:"app/main/apps/callysquare/views/projects/projects.html",controller:"ProjectsController as vm"}},resolve:{projects:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("squareProject@get",{fields:"id,name,description,notes",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SquareProjects",fields:"id,name,description,notes",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1103})}]},authenticate:!0,permissionId:1103,bodyClass:"callysquare"}).state("app.callysquare.projects.edit",{url:"/:id",views:{"content@app":{templateUrl:"app/main/apps/callysquare/views/projects/edit/view.html",controller:"ProjectController as vm"}},params:{crudPermissions:void 0},resolve:{project:["apiResolver","$stateParams",function(e,n){return e.resolve("squareProject@get",{id:n.id})}],users:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,fullname,role",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Users",mergeResources:!0,fields:"id,fullname,role",sort:"name",nolimit:!0})}],trunks:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("trunk@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Trunks",fields:"id,name",sort:"name",nolimit:!0})}],queues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{type:"inbound",fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoiceQueues",type:"inbound",fields:"id,name",sort:"name",nolimit:!0})}],sounds:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("sound@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Sounds",fields:"id,name",sort:"name",nolimit:!0})}],variables:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("variable@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Variables",fields:"id,name",sort:"name",nolimit:!0})}],databases:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("squareOdbc@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ODBC",fields:"id,name",sort:"name",nolimit:!0})}],projects:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("squareProject@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SquareProjects",fields:"id,name",sort:"name",nolimit:!0})}],contexts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceContext@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Contexts",fields:"id,name",sort:"name",nolimit:!0})}],intervals:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("interval@get",{fields:"id,name,IntervalId",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Intervals",fields:"id,name,IntervalId",sort:"name",nolimit:!0})}],mailAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("mailAccount@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"MailAccounts",fields:"id,name",sort:"name",nolimit:!0})}],templates:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("template@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Templates",fields:"id,name",sort:"name",nolimit:!0})}],lists:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmList@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Lists",fields:"id,name",sort:"name",nolimit:!0})}],smsAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("smsAccount@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SmsAccounts",fields:"id,name",sort:"name",nolimit:!0})}],pauses:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("pause@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Pauses",fields:"id,name",sort:"name",nolimit:!0})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1103})}]},authenticate:!0,permissionId:1103,bodyClass:"callysquare"})}e.$inject=["$stateProvider"],angular.module("app.callysquare.projects",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.chat",{abstract:!0,url:"/chat"}).state("app.chat.chatQueues",{url:"/chatQueues",views:{"content@app":{templateUrl:"app/main/apps/chat/views/chatQueues/chatQueues.html",controller:"ChatQueuesController as vm"}},resolve:{chatQueues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("chatQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"chat",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ChatQueues",fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"chat",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:501})}]},authenticate:!0,permissionId:501,bodyClass:"chat"}).state("app.chat.chatQueues.edit",{url:"/:id?tab",params:{chatQueue:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/chat/views/chatQueues/edit/view.html",controller:"ChatQueueController as vm"}},resolve:{chatQueue:["apiResolver","$stateParams",function(e,n){return e.resolve("chatQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:501})}]},authenticate:!0,permissionId:501,bodyClass:"chat"}).state("app.chat.chatWebsites",{url:"/chatWebsites",views:{"content@app":{templateUrl:"app/main/apps/chat/views/chatWebsites/chatWebsites.html",controller:"ChatWebsitesController as vm"}},resolve:{chatWebsites:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("chatWebsite@get",{fields:"createdAt,updatedAt,id,token,agentIdentifier,customerAlias,messageFontSize,name,key,address,remote,ListId,fidelity,timeout,agentAlias,closingQuestion,formSubmitSuccessMessage,formSubmitFailureMessage,color,color_focus,color_button,textColor,backgroundColor,fontSize,header_shape,showAgentAvatar,showCustomerAvatar,alignment,verticalAlignment,messagesAlignment,defaultTitle,animation,defaultWhiteLabel,whiteLabel,defaultLogo,conditionAgreement,autoclose,enableUnmanagedNote,unmanagedMessage,skipUnmanaged,sendUnmanaged,enableCustomerWriting,waitingTitle,waitingMessage,closingMessage,noteTitle,placeholderMessage,skipMessageButton,enableRating,ratingType,ratingStarsNumber,enableFeedback,feedbackTitle,forwardTranscript,forwardTranscriptMessage,closingMessageButton,download_transcript,enableCustomerAttachment,enableSendButton,enableCustomerCheckmarks,systemAlias,enquiry_enable,enquiry_forwarding,enquiry_forwarding_address,name_title,username_placeholder,email_title,email_placeholder,header_online,hideWhenOffline,header_offline,start_chat_button,offline_chat_button,offlineMessageSubject,offlineMessageBody,offline_message,message_title,enquiry_message_placeholder,enquiry_button,rating_message,rating_send,rating_skip,onlineForm,offlineForm,mapKey,mapKeyOffline,forwardOffline,MailAccountId,openNewInteraction,forwardOfflineAddress,subjectOffline,IntervalId,timezone,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout,vidaooEscalation,vidaooApiKey,vidaooTopic,vidaooNote,vidaooMetadata",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ChatWebsites",fields:"createdAt,updatedAt,id,token,agentIdentifier,customerAlias,messageFontSize,name,key,address,remote,ListId,fidelity,timeout,agentAlias,closingQuestion,formSubmitSuccessMessage,formSubmitFailureMessage,color,color_focus,color_button,textColor,backgroundColor,fontSize,header_shape,showAgentAvatar,showCustomerAvatar,alignment,verticalAlignment,messagesAlignment,defaultTitle,animation,defaultWhiteLabel,whiteLabel,defaultLogo,conditionAgreement,autoclose,enableUnmanagedNote,unmanagedMessage,skipUnmanaged,sendUnmanaged,enableCustomerWriting,waitingTitle,waitingMessage,closingMessage,noteTitle,placeholderMessage,skipMessageButton,enableRating,ratingType,ratingStarsNumber,enableFeedback,feedbackTitle,forwardTranscript,forwardTranscriptMessage,closingMessageButton,download_transcript,enableCustomerAttachment,enableSendButton,enableCustomerCheckmarks,systemAlias,enquiry_enable,enquiry_forwarding,enquiry_forwarding_address,name_title,username_placeholder,email_title,email_placeholder,header_online,hideWhenOffline,header_offline,start_chat_button,offline_chat_button,offlineMessageSubject,offlineMessageBody,offline_message,message_title,enquiry_message_placeholder,enquiry_button,rating_message,rating_send,rating_skip,onlineForm,offlineForm,mapKey,mapKeyOffline,forwardOffline,MailAccountId,openNewInteraction,forwardOfflineAddress,subjectOffline,IntervalId,timezone,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout,vidaooEscalation,vidaooApiKey,vidaooTopic,vidaooNote,vidaooMetadata",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:502})}]},authenticate:!0,permissionId:502,bodyClass:"chat"}).state("app.chat.chatWebsites.edit",{url:"/:id?tab",params:{chatWebsite:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/chat/views/chatWebsites/edit/view.html",controller:"ChatWebsiteController as vm"}},resolve:{chatWebsite:["apiResolver","$stateParams",function(e,n){return e.resolve("chatWebsite@get",{fields:"createdAt,updatedAt,id,token,agentIdentifier,customerAlias,messageFontSize,name,key,address,remote,ListId,fidelity,timeout,agentAlias,closingQuestion,formSubmitSuccessMessage,formSubmitFailureMessage,color,color_focus,color_button,textColor,backgroundColor,fontSize,header_shape,showAgentAvatar,showCustomerAvatar,alignment,verticalAlignment,messagesAlignment,defaultTitle,animation,defaultWhiteLabel,whiteLabel,defaultLogo,conditionAgreement,autoclose,enableUnmanagedNote,unmanagedMessage,skipUnmanaged,sendUnmanaged,enableCustomerWriting,waitingTitle,waitingMessage,closingMessage,noteTitle,placeholderMessage,skipMessageButton,enableRating,ratingType,ratingStarsNumber,enableFeedback,feedbackTitle,forwardTranscript,forwardTranscriptMessage,closingMessageButton,download_transcript,enableCustomerAttachment,enableSendButton,enableCustomerCheckmarks,systemAlias,enquiry_enable,enquiry_forwarding,enquiry_forwarding_address,name_title,username_placeholder,email_title,email_placeholder,header_online,hideWhenOffline,header_offline,start_chat_button,offline_chat_button,offlineMessageSubject,offlineMessageBody,offline_message,message_title,enquiry_message_placeholder,enquiry_button,rating_message,rating_send,rating_skip,onlineForm,offlineForm,mapKey,mapKeyOffline,forwardOffline,MailAccountId,openNewInteraction,forwardOfflineAddress,subjectOffline,IntervalId,timezone,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout,vidaooEscalation,vidaooApiKey,vidaooTopic,vidaooNote,vidaooMetadata",id:n.id})}],userProfile:["apiResolver","Auth",function(e,n){return n.isAdmin()?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadAttachments,downloadOmnichannelInteractions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:502})}]},authenticate:!0,permissionId:502,bodyClass:"chat"}),n.addPart("app/main/apps/chat")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.chat",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.chat.realtime"]).config(e)}(),function(){"use strict";function e(e){e.state("app.chat.realtime",{url:"/realtime",views:{"content@app":{templateUrl:"app/main/apps/chat/views/realtime/realtime.html",controller:"ChatRealtimeController as vm"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:510})}]},authenticate:!0,permissionId:510}).state("app.chat.realtime.agents",{url:"/agents",controller:"AgentsChatRealtimeController as vm",templateUrl:"app/main/apps/chat/views/realtime/agents/view.html",resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{nolimit:!0})}],agents:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}],rpcAgents:["apiResolver",function(e){return e.resolve("rpc@getAgents")}]},authenticate:!0,permissionId:510}).state("app.chat.realtime.queues",{url:"/queues",controller:"QueuesChatRealtimeController as vm",templateUrl:"app/main/apps/chat/views/realtime/queues/view.html",resolve:{queues:["apiResolver","Auth",function(e,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"ChatQueues":void 0,channel:"chat",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:501})}]},authenticate:!0,permissionId:510})}e.$inject=["$stateProvider"],angular.module("app.chat.realtime",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.contactmanager",{abstract:!0,url:"/contactmanager"}).state("app.contactmanager.lists",{url:"/lists",views:{"content@app":{templateUrl:"app/main/apps/contactmanager/views/lists/lists.html",controller:"ListsController as vm"}},resolve:{lists:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmList@get",{fields:"createdAt,updatedAt,id,name,description,dialPrefix",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Lists",fields:"createdAt,updatedAt,id,name,description,dialPrefix",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadContactManagerLists",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:301})}]},authenticate:!0,permissionId:301,bodyClass:"contactmanager"}).state("app.contactmanager.lists.edit",{url:"/:id?tab",params:{list:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/contactmanager/views/lists/edit/view.html",controller:"ListController as vm"}},resolve:{list:["apiResolver","$stateParams",function(e,n){return e.resolve("cmList@get",{fields:"createdAt,updatedAt,id,name,description,dialPrefix",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:301})}]},authenticate:!0,permissionId:301,bodyClass:"contactmanager"}).state("app.contactmanager.companies",{url:"/companies",views:{"content@app":{templateUrl:"app/main/apps/contactmanager/views/companies/companies.html",controller:"CompaniesController as vm"}},resolve:{companies:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmCompany@get",{fields:"createdAt,updatedAt,id,name,phone,vat,fax,companyId,type,website,emailDomain,email,description,sStreet,sPostalCode,sCity,sCountry,street,postalCode,city,country",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Companies",fields:"createdAt,updatedAt,id,name,phone,vat,fax,companyId,type,website,emailDomain,email,description,sStreet,sPostalCode,sCity,sCountry,street,postalCode,city,country",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:302})}]},authenticate:!0,permissionId:302,bodyClass:"contactmanager"}).state("app.contactmanager.companies.edit",{url:"/:id?tab",params:{company:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/contactmanager/views/companies/edit/view.html",controller:"CompanyController as vm"}},resolve:{company:["apiResolver","$stateParams",function(e,n){return e.resolve("cmCompany@get",{fields:"createdAt,updatedAt,id,name,phone,vat,fax,companyId,type,website,emailDomain,email,description,sStreet,sPostalCode,sCity,sCountry,street,postalCode,city,country",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:302})}]},authenticate:!0,permissionId:302,bodyClass:"contactmanager"}).state("app.contactmanager.globalCustomFields",{url:"/globalCustomFields",views:{"content@app":{templateUrl:"app/main/apps/contactmanager/views/globalCustomFields/globalCustomFields.html",controller:"GlobalCustomFieldsController as vm"}},resolve:{globalCustomFields:["apiResolver","Auth",function(e,n){return e.resolve("cmCustomField@get",{fields:"createdAt,updatedAt,id,alias,type,values,required,clickToAction,actionType",sort:"-updatedAt",ListId:"null",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:304})}]},authenticate:!0,permissionId:304,bodyClass:"contactmanager"}),n.addPart("app/main/apps/contactmanager")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.contactmanager",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.contactmanager.contacts"]).config(e)}(),function(){"use strict";function e(e){e.state("app.contactmanager.contacts",{url:"/contacts?ListId&CompanyId",views:{"content@app":{templateUrl:"app/main/apps/contactmanager/views/contacts/contacts.html",controller:"ContactsController as vm"}},resolve:{contacts:["apiResolver","Auth","$stateParams",function(e,n,t){return n.hasRole("admin")?e.resolve("cmContact@get",_.merge({includeAll:!0,sort:"-updatedAt",limit:10,offset:0},t)):e.resolve("userProfile@getResources",_.merge({id:n.getCurrentUser().userProfileId,section:"Contacts",includeAll:!0,sort:"-updatedAt",limit:10,offset:0},t))}],lists:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmList@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Lists",fields:"id,name",sort:"-updatedAt",nolimit:!0})}],listsMap:["lists",function(e){for(var n={},t=0;t<e.rows.length;t++)n[e.rows[t].id]=e.rows[t].name;return n}],companies:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmCompany@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Companies",fields:"id,name",sort:"name",nolimit:!0})}],companiesMap:["companies",function(e){for(var n={},t=0;t<e.rows.length;t++)n[e.rows[t].id]=e.rows[t].name;return n}],tags:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("tag@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Tags",fields:"id,name",sort:"name",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:303})}]},authenticate:!0,permissionId:303,bodyClass:"contactmanager"}).state("app.contactmanager.contacts.edit",{url:"/:id?tab",params:{crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/contactmanager/views/contacts/edit/view.html",controller:"ContactController as vm"}},resolve:{contact:["apiResolver","$stateParams",function(e,n){return e.resolve("cmContact@get",{id:n.id}).then(function(e){return e.dateOfBirth&&(e.dateOfBirth=new Date(e.dateOfBirth)),e}).catch(function(e){console.error(e)})}],hoppers:["apiResolver","$stateParams",function(e,n){return e.resolve("cmContact@getHoppers",{id:n.id,fields:"id,phone,scheduledat,priority,recallme,VoiceQueueId,CampaignId,UserId",sort:"-updatedAt",limit:10,offset:0})}],finals:["apiResolver","$stateParams",function(e,n){return e.resolve("cmContact@getHopperFinals",{id:n.id,fields:"id,uniqueid,calleridnum,statedesc,starttime,disposition",sort:"-updatedAt",limit:10,offset:0})}],histories:["apiResolver","$stateParams",function(e,n){return e.resolve("cmContact@getHopperHistories",{id:n.id,fields:"id,uniqueid,calleridnum,statedesc,scheduledat,starttime,endtime",sort:"-updatedAt",limit:10,offset:0})}],jscriptySessions:["apiResolver","$stateParams",function(e,n){return e.resolve("cmContact@getJscriptySessions",{id:n.id,fields:"id,starttime,endtime,membername,projectname",sort:"-starttime",limit:10,offset:0})}],companies:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmCompany@get"):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Companies"})}],lists:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmList@get",{fields:"id,name",sort:"-updatedAt",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Lists",fields:"id,name",sort:"-updatedAt",nolimit:!0})}],customFields:["apiResolver","contact",function(e,n){return n.ListId?e.resolve("cmList@getCustomFields",{id:n.ListId}):null}],tags:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("tag@get"):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Tags"})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:303})}]},authenticate:!0,permissionId:303,bodyClass:"contactmanager"})}e.$inject=["$stateProvider"],angular.module("app.contactmanager.contacts",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.dashboards",{abstract:!0,url:"/dashboards"}),n.addPart("app/main/apps/dashboards")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.dashboards",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.dashboards.general","app.dashboards.custom"]).config(e)}(),function(){"use strict";function e(e){e.state("app.dashboards.custom",{url:"/custom/:id",views:{"content@app":{templateUrl:"app/main/apps/dashboards/views/custom/custom.html",controller:"DashboardCustomController as vm"}},resolve:{voiceQueues:["apiResolver","Auth",function(n,e){var a;return(e.hasRole("admin")?n.resolve("voiceQueue@get",{fields:"id,name",nolimit:!0}):n.resolve("userProfile@getResources",{id:e.getCurrentUser().userProfileId,section:"VoiceQueues",mergeResources:!0,fields:"id,name",channel:"voice",nolimit:!0})).then(function(e){return a=e,n.resolve("rpc@getVoiceQueues")}).then(function(e){if(e)for(var n,t=0;t<e.rows.length;t+=1)(n=_.find(a.rows,{id:e.rows[t].id}))&&_.merge(n,_.pick(e.rows[t],["waiting","total","talking","answered","unmanaged","abandoned"]));return a})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:100})}]},authenticate:!0,bodyClass:"dashboards"})}e.$inject=["$stateProvider"],angular.module("app.dashboards.custom",[]).config(e)}(),function(){"use strict";function e(e){e.state("app.dashboards.general",{url:"/general",views:{"content@app":{templateProvider:["$stateParams","$templateFactory","Auth",function(e,n,t){return t.isAgent()?n.fromUrl("app/main/apps/dashboards/views/general/agent/agent.general.html",e):n.fromUrl("app/main/apps/dashboards/views/general/user/user.general.html",e)}],controllerProvider:["Auth",function(e){return e.isAgent()?"AgentDashboardGeneralController as vm":"UserDashboardGeneralController as vm"}]}},resolve:{globalUserLists:["apiResolver","Auth",function(e,n){return e.resolve("user@getLists",{id:n.getCurrentUser().id,sort:"name",nolimit:!0})}],globalLists:["apiResolver",function(e){return e.resolve("cmList@get",{sort:"name",nolimit:!0})}],globalTags:["apiResolver",function(e){return e.resolve("tag@get",{sort:"name",nolimit:!0})}],globalCompanies:["apiResolver",function(e){return e.resolve("cmCompany@get",{sort:"name",nolimit:!0})}]},authenticate:!0,bodyClass:"dashboards"})}e.$inject=["$stateProvider"],angular.module("app.dashboards.general",["ngMaterialDateRangePicker","app.dashboards.general.user"]).config(e)}(),function(){"use strict";function e(e){e.state("app.dashboards.general.voice",{url:"/voice",data:{selectedTab:0},views:{voice:{templateUrl:"app/main/apps/dashboards/views/general/user/voice/user.general.voice.html",controller:"UserVoiceDashboardGeneralController as vm"}},resolve:{rpcQueues:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueues")}],inboundQueues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{fields:"id,name",type:"inbound",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoiceQueues",fields:"id,name",type:"inbound",channel:"voice",nolimit:!0})}],outbound:["apiResolver",function(e){return e.resolve("rpc@getOutbound")}]},authenticate:!0,bodyClass:"dashboards"}).state("app.dashboards.general.dialer",{url:"/dialer",data:{selectedTab:1},views:{dialer:{templateUrl:"app/main/apps/dashboards/views/general/user/dialer/user.general.dialer.html",controller:"UserVoiceDashboardDialerController as vm"}},resolve:{rpcQueues:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueues")}],outboundQueues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{fields:"id,name",type:"outbound",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"QueueCampaigns",fields:"id,name",type:"outbound",channel:"voice",nolimit:!0})}],rpcCampaigns:["apiResolver",function(e){return e.resolve("rpc@getCampaigns")}]},authenticate:!0,bodyClass:"dashboards"}).state("app.dashboards.general.chat",{url:"/chat",data:{selectedTab:2},views:{chat:{templateUrl:"app/main/apps/dashboards/views/general/user/chat/user.general.chat.html",controller:"UserChatDashboardGeneralController as vm"}},resolve:{chatInteractions:["apiResolver",function(e){return e.resolve("chatInteraction@get",{createdAt:{$gte:moment().startOf("day").utcOffset(0,!0).format(),$lte:moment().endOf("day").utcOffset(0,!0).format()},nolimit:!0})}],chatWebsites:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("chatWebsite@get",{fields:"createdAt,updatedAt,id,token,agentIdentifier,customerAlias,messageFontSize,name,key,address,remote,ListId,fidelity,timeout,agentAlias,closingQuestion,formSubmitSuccessMessage,formSubmitFailureMessage,color,color_focus,color_button,textColor,backgroundColor,fontSize,header_shape,showAgentAvatar,showCustomerAvatar,alignment,verticalAlignment,messagesAlignment,defaultTitle,animation,defaultWhiteLabel,whiteLabel,defaultLogo,conditionAgreement,autoclose,enableUnmanagedNote,unmanagedMessage,skipUnmanaged,sendUnmanaged,enableCustomerWriting,waitingTitle,waitingMessage,closingMessage,noteTitle,placeholderMessage,skipMessageButton,enableRating,ratingType,ratingStarsNumber,enableFeedback,forwardTranscript,forwardTranscriptMessage,closingMessageButton,download_transcript,enableCustomerAttachment,systemAlias,enquiry_enable,enquiry_forwarding,enquiry_forwarding_address,name_title,username_placeholder,email_title,email_placeholder,header_online,hideWhenOffline,header_offline,start_chat_button,offline_chat_button,offlineMessageSubject,offlineMessageBody,header_offline,offline_message,message_title,enquiry_message_placeholder,enquiry_button,rating_message,rating_send,rating_skip,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl,onlineForm,offlineForm,mapKey,mapKeyOffline,forwardTranscript,forwardOffline,forwardOfflineAddress,IntervalId,timezone,waitForTheAssignedAgent,description,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ChatWebsites",fields:"createdAt,updatedAt,id,token,agentIdentifier,customerAlias,messageFontSize,name,key,address,remote,ListId,fidelity,timeout,agentAlias,closingQuestion,formSubmitSuccessMessage,formSubmitFailureMessage,color,color_focus,color_button,textColor,backgroundColor,fontSize,header_shape,showAgentAvatar,showCustomerAvatar,alignment,verticalAlignment,messagesAlignment,defaultTitle,animation,defaultWhiteLabel,whiteLabel,defaultLogo,conditionAgreement,autoclose,enableUnmanagedNote,unmanagedMessage,skipUnmanaged,sendUnmanaged,enableCustomerWriting,waitingTitle,waitingMessage,closingMessage,noteTitle,placeholderMessage,skipMessageButton,enableRating,ratingType,ratingStarsNumber,enableFeedback,forwardTranscript,forwardTranscriptMessage,closingMessageButton,download_transcript,enableCustomerAttachment,systemAlias,enquiry_enable,enquiry_forwarding,enquiry_forwarding_address,name_title,username_placeholder,email_title,email_placeholder,header_online,hideWhenOffline,header_offline,start_chat_button,offline_chat_button,offlineMessageSubject,offlineMessageBody,header_offline,offline_message,message_title,enquiry_message_placeholder,enquiry_button,rating_message,rating_send,rating_skip,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl,onlineForm,offlineForm,mapKey,mapKeyOffline,forwardTranscript,forwardOffline,forwardOfflineAddress,IntervalId,timezone,waitForTheAssignedAgent,description,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,bodyClass:"dashboards"}).state("app.dashboards.general.mail",{url:"/mail",data:{selectedTab:3},views:{mail:{templateUrl:"app/main/apps/dashboards/views/general/user/mail/user.general.mail.html",controller:"UserMailDashboardGeneralController as vm"}},resolve:{mailInteractions:["apiResolver",function(e){return e.resolve("mailInteraction@get",{createdAt:{$gte:moment().startOf("day").utcOffset(0,!0).format(),$lte:moment().endOf("day").utcOffset(0,!0).format()},nolimit:!0})}],mailAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("mailAccount@get",{fields:"createdAt,updatedAt,id,name,key,email,ListId,active,cservice,Imap.service,Imap.host,Imap.port,Imap.tls,Imap.authentication,Imap.user,Imap.password,Imap.mailbox,Imap.connTimeout,Imap.authTimeout,Smtp.service,Smtp.host,Smtp.port,Smtp.secure,Smtp.authentication,Smtp.user,Smtp.pass,cauthentication,cuser,cpassword,fontFamily,fontSize,template,markAsUnread,waitForTheAssignedAgent,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"MailAccounts",fields:"createdAt,updatedAt,id,name,key,email,ListId,active,cservice,Imap.service,Imap.host,Imap.port,Imap.tls,Imap.authentication,Imap.user,Imap.password,Imap.mailbox,Imap.connTimeout,Imap.authTimeout,Smtp.service,Smtp.host,Smtp.port,Smtp.secure,Smtp.authentication,Smtp.user,Smtp.pass,cauthentication,cuser,cpassword,fontFamily,fontSize,template,markAsUnread,waitForTheAssignedAgent,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,bodyClass:"dashboards"}).state("app.dashboards.general.sms",{url:"/sms",data:{selectedTab:4},views:{sms:{templateUrl:"app/main/apps/dashboards/views/general/user/sms/user.general.sms.html",controller:"UserSmsDashboardGeneralController as vm"}},resolve:{smsInteractions:["apiResolver",function(e){return e.resolve("smsInteraction@get",{createdAt:{$gte:moment().startOf("day").utcOffset(0,!0).format(),$lte:moment().endOf("day").utcOffset(0,!0).format()},nolimit:!0})}],smsAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("smsAccount@get",{fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,phone,type,accountSid,authId,authToken,smsMethod,applicationId,accountId,username,password,senderString,deliveryReport,waitForTheAssignedAgent,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SmsAccounts",fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,phone,type,accountSid,authId,authToken,smsMethod,applicationId,accountId,username,password,senderString,deliveryReport,waitForTheAssignedAgent,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,bodyClass:"dashboards"}).state("app.dashboards.general.openchannel",{url:"/openchannel",data:{selectedTab:5},views:{openchannel:{templateUrl:"app/main/apps/dashboards/views/general/user/openchannel/user.general.openchannel.html",controller:"UserOpenchannelDashboardGeneralController as vm"}},resolve:{openchannelInteractions:["apiResolver",function(e){return e.resolve("openchannelInteraction@get",{createdAt:{$gte:moment().startOf("day").utcOffset(0,!0).format(),$lte:moment().endOf("day").utcOffset(0,!0).format()},nolimit:!0})}],openchannelAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("openchannelAccount@get",{fields:"createdAt,updatedAt,id,name,key,token,replyUri,ListId,waitForTheAssignedAgent,mapKey,description,receiveUri,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"OpenchannelAccounts",fields:"createdAt,updatedAt,id,name,key,token,replyUri,ListId,waitForTheAssignedAgent,mapKey,description,receiveUri,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",nolimit:!0})}]},authenticate:!0,bodyClass:"dashboards"}).state("app.dashboards.general.fax",{url:"/fax",data:{selectedTab:6},views:{fax:{templateUrl:"app/main/apps/dashboards/views/general/user/fax/user.general.fax.html",controller:"UserFaxDashboardGeneralController as vm"}},resolve:{faxInteractions:["apiResolver",function(e){return e.resolve("faxInteraction@get",{createdAt:{$gte:moment().startOf("day").utcOffset(0,!0).format(),$lte:moment().endOf("day").utcOffset(0,!0).format()},nolimit:!0})}],faxAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("faxAccount@get",{fields:"createdAt,updatedAt,id,name,key,headerinfo,TrunkId,localstationid,ListId,waitForTheAssignedAgent,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"FaxAccounts",fields:"createdAt,updatedAt,id,name,key,headerinfo,TrunkId,localstationid,ListId,waitForTheAssignedAgent,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,bodyClass:"dashboards"}).state("app.dashboards.general.whatsapp",{url:"/whatsapp",data:{selectedTab:7},views:{whatsapp:{templateUrl:"app/main/apps/dashboards/views/general/user/whatsapp/user.general.whatsapp.html",controller:"UserWhatsappDashboardGeneralController as vm"}},resolve:{whatsappInteractions:["apiResolver",function(e){return e.resolve("whatsappInteraction@get",{createdAt:{$gte:moment().startOf("day").utcOffset(0,!0).format(),$lte:moment().endOf("day").utcOffset(0,!0).format()},nolimit:!0})}],whatsappAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("whatsappAccount@get",{fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,phone,type,accountSid,authId,authToken,whatsappMethod,username,password,senderString,deliveryReport,waitForTheAssignedAgent,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"WhatsappAccounts",fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,phone,type,accountSid,authId,authToken,whatsappMethod,username,password,senderString,deliveryReport,waitForTheAssignedAgent,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,bodyClass:"dashboards"})}e.$inject=["$stateProvider"],angular.module("app.dashboards.general.user",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.fax",{abstract:!0,url:"/fax"}).state("app.fax.faxQueues",{url:"/faxQueues",views:{"content@app":{templateUrl:"app/main/apps/fax/views/faxQueues/faxQueues.html",controller:"FaxQueuesController as vm"}},resolve:{faxQueues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("faxQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"fax",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"FaxQueues",fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"fax",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:901})}]},authenticate:!0,permissionId:901,bodyClass:"fax"}).state("app.fax.faxQueues.edit",{url:"/:id?tab",params:{faxQueue:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/fax/views/faxQueues/edit/view.html",controller:"FaxQueueController as vm"}},resolve:{faxQueue:["apiResolver","$stateParams",function(e,n){return e.resolve("faxQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:901})}]},authenticate:!0,permissionId:901,bodyClass:"fax"}).state("app.fax.faxAccounts",{url:"/faxAccounts",views:{"content@app":{templateUrl:"app/main/apps/fax/views/faxAccounts/faxAccounts.html",controller:"FaxAccountsController as vm"}},resolve:{faxAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("faxAccount@get",{fields:"createdAt,updatedAt,id,name,key,headerinfo,TrunkId,localstationid,ListId,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"FaxAccounts",fields:"createdAt,updatedAt,id,name,key,headerinfo,TrunkId,localstationid,ListId,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:902})}]},authenticate:!0,permissionId:902,bodyClass:"fax"}).state("app.fax.faxAccounts.edit",{url:"/:id?tab",params:{faxAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/fax/views/faxAccounts/edit/view.html",controller:"FaxAccountController as vm"}},resolve:{faxAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("faxAccount@get",{fields:"createdAt,updatedAt,id,name,key,headerinfo,TrunkId,localstationid,ListId,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",id:n.id})}],userProfile:["apiResolver","Auth",function(e,n){return n.isAdmin()?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadOmnichannelInteractions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:902})}]},authenticate:!0,permissionId:902,bodyClass:"fax"}),n.addPart("app/main/apps/fax")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.fax",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.fax.realtime"]).config(e)}(),function(){"use strict";function e(e){e.state("app.fax.realtime",{url:"/realtime",views:{"content@app":{templateUrl:"app/main/apps/fax/views/realtime/realtime.html",controller:"FaxRealtimeController as vm"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:910})}]},authenticate:!0,permissionId:910}).state("app.fax.realtime.agents",{url:"/agents",controller:"AgentsFaxRealtimeController as vm",templateUrl:"app/main/apps/fax/views/realtime/agents/view.html",resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{nolimit:!0})}],agents:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}],rpcAgents:["apiResolver",function(e){return e.resolve("rpc@getAgents")}]},authenticate:!0,permissionId:910}).state("app.fax.realtime.trunks",{url:"/trunks",controller:"TrunksFaxRealtimeController as vm",templateUrl:"app/main/apps/fax/views/realtime/trunks/view.html",resolve:{trunks:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("trunk@get",{fields:"id,name",active:!0,sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Trunks",fields:"id,name",active:!0,sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1011})}],rpcTrunks:["apiResolver",function(e){return e.resolve("rpc@getTrunks")}]},authenticate:!0,permissionId:910}).state("app.fax.realtime.queues",{url:"/queues",controller:"QueuesFaxRealtimeController as vm",templateUrl:"app/main/apps/fax/views/realtime/queues/view.html",resolve:{queues:["apiResolver","Auth",function(e,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"FaxQueues":void 0,channel:"fax",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:901})}]},authenticate:!0,permissionId:910}).state("app.fax.realtime.accounts",{url:"/accounts",controller:"FaxAccountsRealtimeController as vm",templateUrl:"app/main/apps/fax/views/realtime/accounts/view.html",resolve:{faxAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("faxAccount@get",{sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"FaxAccounts",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:902})}],rpcFaxAccounts:["apiResolver",function(e){return e.resolve("rpc@getFaxAccounts")}]},authenticate:!0,permissionId:910})}e.$inject=["$stateProvider"],angular.module("app.fax.realtime",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.help",{abstract:!0,url:"/help"}),n.addPart("app/main/apps/help")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.help",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.help.about"]).config(e)}(),function(){"use strict";function e(e){e.state("app.help.about",{url:"/about",views:{"content@app":{templateUrl:"app/main/apps/help/views/about/about.html",controller:"AboutController as vm"}},resolve:{info:["apiResolver",function(e){return e.resolve("version@get")}]},authenticate:!0,permissionId:1600,bodyClass:"help"})}e.$inject=["$stateProvider"],angular.module("app.help.about",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.integrations",{abstract:!0,url:"/integrations"}).state("app.integrations.zendeskAccounts",{url:"/zendeskAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/zendeskAccounts/zendeskAccounts.html",controller:"ZendeskAccountsController as vm"}},resolve:{zendeskAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intZendeskAccount@get",{fields:"createdAt,updatedAt,id,name,type,username,remoteUri,authType,password,token,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ZendeskAccounts",fields:"createdAt,updatedAt,id,name,type,username,remoteUri,authType,password,token,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1301})}]},authenticate:!0,permissionId:1301,bodyClass:"integrations"}).state("app.integrations.zendeskAccounts.edit",{url:"/:id?tab",params:{zendeskAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/zendeskAccounts/edit/view.html",controller:"ZendeskAccountController as vm"}},resolve:{zendeskAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("intZendeskAccount@get",{fields:"createdAt,updatedAt,id,name,type,username,remoteUri,authType,password,token,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1301})}]},authenticate:!0,permissionId:1301,bodyClass:"integrations"}).state("app.integrations.salesforceAccounts",{url:"/salesforceAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/salesforceAccounts/salesforceAccounts.html",controller:"SalesforceAccountsController as vm"}},resolve:{salesforceAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intSalesforceAccount@get",{fields:"createdAt,updatedAt,id,name,type,username,remoteUri,password,clientId,clientSecret,securityToken,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SalesforceAccounts",fields:"createdAt,updatedAt,id,name,type,username,remoteUri,password,clientId,clientSecret,securityToken,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1302})}]},authenticate:!0,permissionId:1302,bodyClass:"integrations"}).state("app.integrations.salesforceAccounts.edit",{url:"/:id?tab",params:{salesforceAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/salesforceAccounts/edit/view.html",controller:"SalesforceAccountController as vm"}},resolve:{salesforceAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("intSalesforceAccount@get",{fields:"createdAt,updatedAt,id,name,type,username,remoteUri,password,clientId,clientSecret,securityToken,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1302})}]},authenticate:!0,permissionId:1302,bodyClass:"integrations"}).state("app.integrations.freshdeskAccounts",{url:"/freshdeskAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/freshdeskAccounts.html",controller:"FreshdeskAccountsController as vm"}},resolve:{freshdeskAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intFreshdeskAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"FreshdeskAccounts",fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1303})}]},authenticate:!0,permissionId:1303,bodyClass:"integrations"}).state("app.integrations.freshdeskAccounts.edit",{url:"/:id?tab",params:{freshdeskAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/edit/view.html",controller:"FreshdeskAccountController as vm"}},resolve:{freshdeskAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("intFreshdeskAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1303})}]},authenticate:!0,permissionId:1303,bodyClass:"integrations"}).state("app.integrations.sugarcrmAccounts",{url:"/sugarcrmAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/sugarcrmAccounts.html",controller:"SugarcrmAccountsController as vm"}},resolve:{sugarcrmAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intSugarcrmAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,password,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SugarcrmAccounts",fields:"createdAt,updatedAt,id,name,username,remoteUri,password,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1305})}]},authenticate:!0,permissionId:1305,bodyClass:"integrations"}).state("app.integrations.sugarcrmAccounts.edit",{url:"/:id?tab",params:{sugarcrmAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/edit/view.html",controller:"SugarcrmAccountController as vm"}},resolve:{sugarcrmAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("intSugarcrmAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,password,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1305})}]},authenticate:!0,permissionId:1305,bodyClass:"integrations"}).state("app.integrations.deskAccounts",{url:"/deskAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/deskAccounts/deskAccounts.html",controller:"DeskAccountsController as vm"}},resolve:{deskAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intDeskAccount@get",{fields:"createdAt,updatedAt,id,name,type,remoteUri,authType,username,password,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"DeskAccounts",fields:"createdAt,updatedAt,id,name,type,remoteUri,authType,username,password,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1306})}]},authenticate:!0,permissionId:1306,bodyClass:"integrations"}).state("app.integrations.deskAccounts.edit",{url:"/:id?tab",params:{deskAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/deskAccounts/edit/view.html",controller:"DeskAccountController as vm"}},resolve:{deskAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("intDeskAccount@get",{fields:"createdAt,updatedAt,id,name,type,remoteUri,authType,username,password,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1306})}]},authenticate:!0,permissionId:1306,bodyClass:"integrations"}).state("app.integrations.zohoAccounts",{url:"/zohoAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/zohoAccounts/zohoAccounts.html",controller:"ZohoAccountsController as vm"}},resolve:{zohoAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intZohoAccount@get",{fields:"createdAt,updatedAt,id,name,host,zone,clientId,clientSecret,code,refreshToken,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ZohoAccounts",fields:"createdAt,updatedAt,id,name,host,zone,clientId,clientSecret,code,refreshToken,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1307})}]},authenticate:!0,permissionId:1307,bodyClass:"integrations"}).state("app.integrations.zohoAccounts.edit",{url:"/:id?tab",params:{zohoAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/zohoAccounts/edit/view.html",controller:"ZohoAccountController as vm"}},resolve:{zohoAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("intZohoAccount@get",{fields:"createdAt,updatedAt,id,name,host,zone,clientId,clientSecret,code,refreshToken,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1307})}]},authenticate:!0,permissionId:1307,bodyClass:"integrations"}).state("app.integrations.vtigerAccounts",{url:"/vtigerAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/vtigerAccounts/vtigerAccounts.html",controller:"VtigerAccountsController as vm"}},resolve:{vtigerAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intVtigerAccount@get",{fields:"createdAt,updatedAt,id,name,description,username,accessKey,remoteUri,serverUrl",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VtigerAccounts",fields:"createdAt,updatedAt,id,name,description,username,accessKey,remoteUri,serverUrl",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1308})}]},authenticate:!0,permissionId:1308,bodyClass:"integrations"}).state("app.integrations.vtigerAccounts.edit",{url:"/:id?tab",params:{vtigerAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/vtigerAccounts/edit/view.html",controller:"VtigerAccountController as vm"}},resolve:{vtigerAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("intVtigerAccount@get",{fields:"createdAt,updatedAt,id,name,description,username,accessKey,remoteUri,serverUrl",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1308})}]},authenticate:!0,permissionId:1308,bodyClass:"integrations"}).state("app.integrations.dynamics365Accounts",{url:"/dynamics365Accounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/dynamics365Accounts/dynamics365Accounts.html",controller:"Dynamics365AccountsController as vm"}},resolve:{dynamics365Accounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intDynamics365Account@get",{fields:"createdAt,updatedAt,id,name,username,password,remoteUri,tenantId,clientId,clientSecret,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Dynamics365Accounts",fields:"createdAt,updatedAt,id,name,username,password,remoteUri,tenantId,clientId,clientSecret,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1309})}]},authenticate:!0,permissionId:1309,bodyClass:"integrations"}).state("app.integrations.dynamics365Accounts.edit",{url:"/:id?tab",params:{dynamics365Account:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/dynamics365Accounts/edit/view.html",controller:"Dynamics365AccountController as vm"}},resolve:{dynamics365Account:["apiResolver","$stateParams",function(e,n){return e.resolve("intDynamics365Account@get",{fields:"createdAt,updatedAt,id,name,username,password,remoteUri,tenantId,clientId,clientSecret,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1309})}]},authenticate:!0,permissionId:1309,bodyClass:"integrations"}).state("app.integrations.servicenowAccounts",{url:"/servicenowAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/servicenowAccounts/servicenowAccounts.html",controller:"ServicenowAccountsController as vm"}},resolve:{servicenowAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intServicenowAccount@get",{fields:"createdAt,updatedAt,id,name,username,password,email,remoteUri,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ServicenowAccounts",fields:"createdAt,updatedAt,id,name,username,password,email,remoteUri,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1310})}]},authenticate:!0,permissionId:1310,bodyClass:"integrations"}).state("app.integrations.servicenowAccounts.edit",{url:"/:id?tab",params:{servicenowAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/servicenowAccounts/edit/view.html",controller:"ServicenowAccountController as vm"}},resolve:{servicenowAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("intServicenowAccount@get",{fields:"createdAt,updatedAt,id,name,username,password,email,remoteUri,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1310})}]},authenticate:!0,permissionId:1310,bodyClass:"integrations"}).state("app.integrations.freshsalesAccounts",{url:"/freshsalesAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/freshsalesAccounts/freshsalesAccounts.html",controller:"FreshsalesAccountsController as vm"}},resolve:{freshsalesAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intFreshsalesAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"FreshsalesAccounts",fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1304})}]},authenticate:!0,permissionId:1304,bodyClass:"integrations"}).state("app.integrations.freshsalesAccounts.edit",{url:"/:id?tab",params:{freshsalesAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/freshsalesAccounts/edit/view.html",controller:"FreshsalesAccountController as vm"}},resolve:{freshsalesAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("intFreshsalesAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1304})}]},authenticate:!0,permissionId:1304,bodyClass:"integrations"}),n.addPart("app/main/apps/integrations")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.integrations",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter"]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.jscripty",{abstract:!0,url:"/jscripty"}).state("app.jscripty.projects",{url:"/projects",views:{"content@app":{templateUrl:"app/main/apps/jscripty/views/projects/projects.html",controller:"JscriptyProjectsController as vm"}},resolve:{projects:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("jscriptyProject@get",{fields:"createdAt,updatedAt,id,name,enableUncompleteSave,sendUnpauseOnSubmit,description,formData",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Projects",fields:"createdAt,updatedAt,id,name,enableUncompleteSave,sendUnpauseOnSubmit,description,formData",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadJscriptySessions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1701})}]},authenticate:!0,permissionId:1701,bodyClass:"jscripty"}).state("app.jscripty.projects.edit",{url:"/:id?tab",params:{project:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/jscripty/views/projects/edit/view.html",controller:"JscriptyProjectController as vm"}},resolve:{project:["apiResolver","$stateParams",function(e,n){return e.resolve("jscriptyProject@get",{fields:"createdAt,updatedAt,id,name,enableUncompleteSave,sendUnpauseOnSubmit,description,formData",id:n.id})}],userProfile:["apiResolver","Auth",function(e,n){return n.isAdmin()?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadJscriptySessions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1701})}]},authenticate:!0,permissionId:1701,bodyClass:"jscripty"}),n.addPart("app/main/apps/jscripty")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.jscripty",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter"]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.mail",{abstract:!0,url:"/mail"}).state("app.mail.mailQueues",{url:"/mailQueues",views:{"content@app":{templateUrl:"app/main/apps/mail/views/mailQueues/mailQueues.html",controller:"MailQueuesController as vm"}},resolve:{mailQueues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("mailQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"mail",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"MailQueues",fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"mail",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:601})}]},authenticate:!0,permissionId:601,bodyClass:"mail"}).state("app.mail.mailQueues.edit",{url:"/:id?tab",params:{mailQueue:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/mail/views/mailQueues/edit/view.html",controller:"MailQueueController as vm"}},resolve:{mailQueue:["apiResolver","$stateParams",function(e,n){return e.resolve("mailQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:601})}]},authenticate:!0,permissionId:601,bodyClass:"mail"}).state("app.mail.mailAccounts",{url:"/mailAccounts",views:{"content@app":{templateUrl:"app/main/apps/mail/views/mailAccounts/mailAccounts.html",controller:"MailAccountsController as vm"}},resolve:{mailAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("mailAccount@get",{fields:"createdAt,updatedAt,id,name,key,email,ListId,active,cservice,Imap.service,Imap.host,Imap.port,Imap.tls,Imap.authentication,Imap.user,Imap.password,Imap.mailbox,Imap.connTimeout,Imap.authTimeout,Smtp.service,Smtp.host,Smtp.port,Smtp.secure,Smtp.authentication,Smtp.user,Smtp.pass,cauthentication,cuser,cpassword,fontFamily,fontSize,template,markAsUnread,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"MailAccounts",fields:"createdAt,updatedAt,id,name,key,email,ListId,active,cservice,Imap.service,Imap.host,Imap.port,Imap.tls,Imap.authentication,Imap.user,Imap.password,Imap.mailbox,Imap.connTimeout,Imap.authTimeout,Smtp.service,Smtp.host,Smtp.port,Smtp.secure,Smtp.authentication,Smtp.user,Smtp.pass,cauthentication,cuser,cpassword,fontFamily,fontSize,template,markAsUnread,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:602})}]},authenticate:!0,permissionId:602,bodyClass:"mail"}).state("app.mail.mailAccounts.edit",{url:"/:id?tab",params:{mailAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/mail/views/mailAccounts/edit/view.html",controller:"MailAccountController as vm"}},resolve:{mailAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("mailAccount@get",{fields:"createdAt,updatedAt,id,name,key,email,ListId,active,cservice,Imap.service,Imap.host,Imap.port,Imap.tls,Imap.authentication,Imap.user,Imap.password,Imap.mailbox,Imap.connTimeout,Imap.authTimeout,Smtp.service,Smtp.host,Smtp.port,Smtp.secure,Smtp.authentication,Smtp.user,Smtp.pass,cauthentication,cuser,cpassword,fontFamily,fontSize,template,markAsUnread,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",id:n.id})}],userProfile:["apiResolver","Auth",function(e,n){return n.isAdmin()?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadAttachments,downloadOmnichannelInteractions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:602})}]},authenticate:!0,permissionId:602,bodyClass:"mail"}).state("app.mail.mailSubtatuses",{url:"/mailSubtatuses",views:{"content@app":{templateUrl:"app/main/apps/mail/views/mailSubtatuses/mailSubtatuses.html",controller:"MailSubstatusesController as vm"}},resolve:{mailSubtatuses:["apiResolver","Auth",function(e,n){return e.resolve("mailSubstatus@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:603})}]},authenticate:!0,permissionId:603,bodyClass:"mail"}),n.addPart("app/main/apps/mail")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.mail",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.mail.realtime"]).config(e)}(),function(){"use strict";function e(e){e.state("app.mail.realtime",{url:"/realtime",views:{"content@app":{templateUrl:"app/main/apps/mail/views/realtime/realtime.html",controller:"MailRealtimeController as vm"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:610})}]},authenticate:!0,permissionId:610}).state("app.mail.realtime.agents",{url:"/agents",controller:"AgentsMailRealtimeController as vm",templateUrl:"app/main/apps/mail/views/realtime/agents/view.html",resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{nolimit:!0})}],agents:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}],rpcAgents:["apiResolver",function(e){return e.resolve("rpc@getAgents")}]},authenticate:!0,permissionId:610}).state("app.mail.realtime.queues",{url:"/queues",controller:"QueuesMailRealtimeController as vm",templateUrl:"app/main/apps/mail/views/realtime/queues/view.html",resolve:{queues:["apiResolver","Auth",function(e,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"MailQueues":void 0,channel:"mail",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:601})}]},authenticate:!0,permissionId:610}).state("app.mail.realtime.accounts",{url:"/accounts",controller:"MailAccountsRealtimeController as vm",templateUrl:"app/main/apps/mail/views/realtime/accounts/view.html",resolve:{mailAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("mailAccount@get",{sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"MailAccounts",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:602})}],rpcMailAccounts:["apiResolver",function(e){return e.resolve("rpc@getMailAccounts")}]},authenticate:!0,permissionId:610})}e.$inject=["$stateProvider"],angular.module("app.mail.realtime",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.marketplace",{abstract:!0,url:"/marketplace"}).state("app.marketplace.plugins",{url:"/plugins",views:{"content@app":{templateUrl:"app/main/apps/marketplace/views/plugins/plugins.html",controller:"MarketplacePluginsController as vm"}},resolve:{plugins:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("plugin@get",{fields:"createdAt,updatedAt,id,name,type,active,description,icon,sidebar,path,adminUrl,agentUrl,scriptName,scriptPath,version",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Plugins",fields:"createdAt,updatedAt,id,name,type,active,description,icon,sidebar,path,adminUrl,agentUrl,scriptName,scriptPath,version",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1801})}]},authenticate:!0,permissionId:1801,bodyClass:"marketplace"}).state("app.marketplace.plugins.edit",{url:"/:id?tab",params:{plugin:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/marketplace/views/plugins/edit/view.html",controller:"MarketplacePluginController as vm"}},resolve:{plugin:["apiResolver","$stateParams",function(e,n){return e.resolve("plugin@get",{fields:"createdAt,updatedAt,id,name,type,active,description,icon,sidebar,path,adminUrl,agentUrl,scriptName,scriptPath,version",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1801})}]},authenticate:!0,permissionId:1801,bodyClass:"marketplace"}),n.addPart("app/main/apps/marketplace")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.marketplace",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter"]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.motiondialer",{abstract:!0,url:"/motiondialer"}).state("app.motiondialer.queueCampaigns",{url:"/queueCampaigns",views:{"content@app":{templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/queueCampaigns.html",controller:"QueueCampaignsController as vm"}},resolve:{queueCampaigns:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{fields:"createdAt,updatedAt,id,name,dialActive,TrunkId,TrunkBackupId,type,IntervalId,dialCheckDuplicateType,dialCutDigit,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar,dialOrderByScheduledAt,dialRecallMeTimeout,dialRecallInQueue,dialGlobalInterval,dialTimezone,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength,dialMethod,dialPowerLevel,dialPredictiveOptimization,dialPredictiveOptimizationPercentage,dialPredictiveInterval,dialLimitQueue,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialRandomLastDigitCallerIdNumber,dialOriginateTimeout,dialPrefix,dialQueueOptions,dialQueueTimeout,strategy,timeout,retry,wrapuptime,weight,musiconhold,dialQueueProject,dialQueueProject2,dialAgiAfterHangupAgent,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,description,mandatoryDisposition,mandatoryDispositionPauseId,dialPredictiveIntervalMaxThreshold,dialPredictiveIntervalMinThreshold",type:"outbound",sort:"-updatedAt",channel:"voice",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"QueueCampaigns",fields:"createdAt,updatedAt,id,name,dialActive,TrunkId,TrunkBackupId,type,IntervalId,dialCheckDuplicateType,dialCutDigit,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar,dialOrderByScheduledAt,dialRecallMeTimeout,dialRecallInQueue,dialGlobalInterval,dialTimezone,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength,dialMethod,dialPowerLevel,dialPredictiveOptimization,dialPredictiveOptimizationPercentage,dialPredictiveInterval,dialLimitQueue,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialRandomLastDigitCallerIdNumber,dialOriginateTimeout,dialPrefix,dialQueueOptions,dialQueueTimeout,strategy,timeout,retry,wrapuptime,weight,musiconhold,dialQueueProject,dialQueueProject2,dialAgiAfterHangupAgent,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,description,mandatoryDisposition,mandatoryDispositionPauseId,dialPredictiveIntervalMaxThreshold,dialPredictiveIntervalMinThreshold",type:"outbound",sort:"-updatedAt",channel:"voice",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1501})}]},authenticate:!0,permissionId:1501,bodyClass:"motiondialer"}).state("app.motiondialer.queueCampaigns.edit",{url:"/:id?tab",params:{queueCampaign:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/view.html",controller:"QueueCampaignController as vm"}},resolve:{queueCampaign:["apiResolver","$stateParams",function(e,n){return e.resolve("voiceQueue@get",{fields:"createdAt,updatedAt,id,name,dialActive,TrunkId,TrunkBackupId,type,IntervalId,dialCheckDuplicateType,dialCutDigit,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar,dialOrderByScheduledAt,dialRecallMeTimeout,dialRecallInQueue,dialGlobalInterval,dialTimezone,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength,dialMethod,dialPowerLevel,dialPredictiveOptimization,dialPredictiveOptimizationPercentage,dialPredictiveInterval,dialLimitQueue,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialRandomLastDigitCallerIdNumber,dialOriginateTimeout,dialPrefix,dialQueueOptions,dialQueueTimeout,strategy,timeout,retry,wrapuptime,weight,musiconhold,dialQueueProject,dialQueueProject2,dialAgiAfterHangupAgent,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,description,mandatoryDisposition,mandatoryDispositionPauseId,dialPredictiveIntervalMaxThreshold,dialPredictiveIntervalMinThreshold",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1501})}]},authenticate:!0,permissionId:1501,bodyClass:"motiondialer"}).state("app.motiondialer.ivrCampaigns",{url:"/ivrCampaigns",views:{"content@app":{templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/ivrCampaigns.html",controller:"IvrCampaignsController as vm"}},resolve:{ivrCampaigns:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("campaign@get",{fields:"createdAt,updatedAt,id,name,active,TrunkId,TrunkBackupId,type,IntervalId,dialCheckDuplicateType,dialCutDigit,SquareProjectId,limitCalls,description,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialRandomLastDigitCallerIdNumber,dialOriginateTimeout,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,dialOrderByScheduledAt,dialGlobalInterval,dialTimezone,dialPrefix,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength",type:"ivr",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"IvrCampaigns",fields:"createdAt,updatedAt,id,name,active,TrunkId,TrunkBackupId,type,IntervalId,dialCheckDuplicateType,dialCutDigit,SquareProjectId,limitCalls,description,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialRandomLastDigitCallerIdNumber,dialOriginateTimeout,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,dialOrderByScheduledAt,dialGlobalInterval,dialTimezone,dialPrefix,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength",type:"ivr",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1502})}]},authenticate:!0,permissionId:1502,bodyClass:"motiondialer"}).state("app.motiondialer.ivrCampaigns.edit",{url:"/:id?tab",params:{ivrCampaign:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/view.html",controller:"IvrCampaignController as vm"}},resolve:{ivrCampaign:["apiResolver","$stateParams",function(e,n){return e.resolve("campaign@get",{fields:"createdAt,updatedAt,id,name,active,TrunkId,TrunkBackupId,type,IntervalId,dialCheckDuplicateType,dialCutDigit,SquareProjectId,limitCalls,description,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialRandomLastDigitCallerIdNumber,dialOriginateTimeout,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,dialOrderByScheduledAt,dialGlobalInterval,dialTimezone,dialPrefix,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1502})}]},authenticate:!0,permissionId:1502,bodyClass:"motiondialer"}),n.addPart("app/main/apps/motiondialer")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.motiondialer",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.motiondialer.realtime"]).config(e)}(),function(){"use strict";function e(e){e.state("app.motiondialer.realtime",{url:"/realtime",views:{"content@app":{templateUrl:"app/main/apps/motiondialer/views/realtime/realtime.html",controller:"MotionDialerRealtimeController as vm"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1510})}]},authenticate:!0,permissionId:1510}).state("app.motiondialer.realtime.agents",{url:"/agents",controller:"AgentsMotionDialerRealtimeController as vm",templateUrl:"app/main/apps/motiondialer/views/realtime/agents/view.html",resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{nolimit:!0})}],agents:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}],rpcAgents:["apiResolver",function(e){return e.resolve("rpc@getAgents")}]},authenticate:!0,permissionId:1510}).state("app.motiondialer.realtime.queues",{url:"/queues",controller:"QueuesMotionDialerRealtimeController as vm",templateUrl:"app/main/apps/motiondialer/views/realtime/queues/view.html",resolve:{queues:["apiResolver","Auth",function(e,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"QueueCampaigns":void 0,channel:"voice",type:"outbound",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1501})}]},authenticate:!0,permissionId:1510}).state("app.motiondialer.realtime.queue_calls",{url:"/queue_calls",controller:"QueueCallsMotionDialerRealtimeController as vm",templateUrl:"app/main/apps/motiondialer/views/realtime/queue_calls/view.html",resolve:{agents:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,role,context",role:"agent",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,role,context",role:"agent",nolimit:!0})}],queues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{type:"outbound",sort:"-updatedAt",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"QueueCampaigns",channel:"voice",type:"outbound",sort:"-updatedAt",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1501})}],rpcVoiceQueuesChannels:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueuesChannels")}]},authenticate:!0,permissionId:1510}).state("app.motiondialer.realtime.abandonedcalls",{url:"/abandonedcalls",controller:"AbandonedCallsMotionDialerRealtimeController as vm",templateUrl:"app/main/apps/motiondialer/views/realtime/abandonedcalls/view.html",resolve:{agents:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,role,context",role:"agent",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,role,context",role:"agent",nolimit:!0})}],queues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{type:"outbound",sort:"-updatedAt",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"QueueCampaigns",channel:"voice",type:"outbound",sort:"-updatedAt",nolimit:!0})}],dispositions:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("disposition@get",{fields:"createdAt,updatedAt,id,name,level,ParentId",sort:"name",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Dispositions",fields:"createdAt,updatedAt,id,name",sort:"name",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1501})}]},authenticate:!0,permissionId:1510}).state("app.motiondialer.realtime.queue_params",{url:"/queue_params",controller:"QueueParamsMotionDialerRealtimeController as vm",templateUrl:"app/main/apps/motiondialer/views/realtime/queue_params/view.html",resolve:{queues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{type:"outbound",fields:"id,name",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"QueueCampaigns",channel:"voice",type:"outbound",sort:"-updatedAt",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1501})}],rpcQueues:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueues")}]},authenticate:!0,permissionId:1510}).state("app.motiondialer.realtime.ivr_campaigns",{url:"/ivr_campaigns",controller:"IvrCampaignsMotionDialerRealtimeController as vm",templateUrl:"app/main/apps/motiondialer/views/realtime/ivr_campaigns/view.html",resolve:{campaigns:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("campaign@get",{sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"IvrCampaigns",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1502})}],rpcCampaigns:["apiResolver",function(e){return e.resolve("rpc@getCampaigns")}]},authenticate:!0,permissionId:1510})}e.$inject=["$stateProvider"],angular.module("app.motiondialer.realtime",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.openchannel",{abstract:!0,url:"/openchannel"}).state("app.openchannel.openchannelQueues",{url:"/openchannelQueues",views:{"content@app":{templateUrl:"app/main/apps/openchannel/views/openchannelQueues/openchannelQueues.html",controller:"OpenchannelQueuesController as vm"}},resolve:{openchannelQueues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("openchannelQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"openchannel",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"OpenchannelQueues",fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"openchannel",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:801})}]},authenticate:!0,permissionId:801,bodyClass:"openchannel"}).state("app.openchannel.openchannelQueues.edit",{url:"/:id?tab",params:{openchannelQueue:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/view.html",controller:"OpenchannelQueueController as vm"}},resolve:{openchannelQueue:["apiResolver","$stateParams",function(e,n){return e.resolve("openchannelQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:801})}]},authenticate:!0,permissionId:801,bodyClass:"openchannel"}).state("app.openchannel.openchannelAccounts",{url:"/openchannelAccounts",views:{"content@app":{templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/openchannelAccounts.html",controller:"OpenchannelAccountsController as vm"}},resolve:{openchannelAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("openchannelAccount@get",{fields:"createdAt,updatedAt,id,name,key,token,replyUri,ListId,waitForTheAssignedAgent,mapKey,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUri,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"OpenchannelAccounts",fields:"createdAt,updatedAt,id,name,key,token,replyUri,ListId,waitForTheAssignedAgent,mapKey,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUri,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:802})}]},authenticate:!0,permissionId:802,bodyClass:"openchannel"}).state("app.openchannel.openchannelAccounts.edit",{url:"/:id?tab",params:{openchannelAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/view.html",controller:"OpenchannelAccountController as vm"}},resolve:{openchannelAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("openchannelAccount@get",{fields:"createdAt,updatedAt,id,name,key,token,replyUri,ListId,waitForTheAssignedAgent,mapKey,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUri,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",id:n.id})}],userProfile:["apiResolver","Auth",function(e,n){return n.isAdmin()?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadAttachments,downloadOmnichannelInteractions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:802})}]},authenticate:!0,permissionId:802,bodyClass:"openchannel"}),n.addPart("app/main/apps/openchannel")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.openchannel",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.openchannel.realtime"]).config(e)}(),function(){"use strict";function e(e){e.state("app.openchannel.realtime",{url:"/realtime",views:{"content@app":{templateUrl:"app/main/apps/openchannel/views/realtime/realtime.html",controller:"OpenchannelRealtimeController as vm"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:810})}]},authenticate:!0,permissionId:810}).state("app.openchannel.realtime.agents",{url:"/agents",controller:"AgentsOpenchannelRealtimeController as vm",templateUrl:"app/main/apps/openchannel/views/realtime/agents/view.html",resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{nolimit:!0})}],agents:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}],rpcAgents:["apiResolver",function(e){return e.resolve("rpc@getAgents")}]},authenticate:!0,permissionId:810}).state("app.openchannel.realtime.queues",{url:"/queues",controller:"QueuesOpenchannelRealtimeController as vm",templateUrl:"app/main/apps/openchannel/views/realtime/queues/view.html",resolve:{queues:["apiResolver","Auth",function(e,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"OpenchannelQueues":void 0,channel:"openchannel",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:801})}]},authenticate:!0,permissionId:810})}e.$inject=["$stateProvider"],angular.module("app.openchannel.realtime",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.plugins",{abstract:!0,url:"/plugins"}),n.addPart("app/main/apps/plugins")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.plugins",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.plugins.plugin"]).config(e)}(),function(){"use strict";function e(e){e.state("app.plugins.plugin",{url:"/plugin/:id",views:{"content@app":{templateUrl:"app/main/apps/plugins/views/plugin/plugin.html",controller:"PluginController as vm"}},resolve:{},authenticate:!0,bodyClass:"plugins"})}e.$inject=["$stateProvider"],angular.module("app.plugins.plugin",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.settings",{abstract:!0,url:"/settings"}).state("app.settings.generals",{url:"/generals",views:{"content@app":{templateUrl:"app/main/apps/settings/views/generals/generals.html",controller:"GeneralsController as vm"}},resolve:{generals:["apiResolver",function(e){return e.resolve("setting@get",{fields:"createdAt,updatedAt,id,min_internal,securePassword,callRecordingEncryption,chatTimeout,phoneBarAutoUpdater,defaultScreenRecordingPath,phoneBarAutoUpdaterUrl,enableEmailPreview,split,splitSizeCsv,splitSizePdf,splitSizeXlsx,searchOnEnterKey,messagesAlignment,phoneBarRememberMeEnabled,rtlSupport,allowedLoginAttempts,blockDuration,loginMailFrequency,language,bucket,transcribe,transcribeRegion,transcribeAccountId,sentiment,sentimentRegion,sentimentAccountId,googleSsoEnabled,enforcePasswordHistory,passwordHistoryLimit,enablePrivacyPolicyEmail,privacyPolicyEmail,enablePrivacyPolicyName,privacyPolicyName,enablePrivacyPolicyNumber,privacyPolicyNumber,chatInteractionsReloadTimeout,mailInteractionsReloadTimeout,openchannelInteractionsReloadTimeout,smsInteractionsReloadTimeout,whatsappInteractionsReloadTimeout,stopRecordingOnTransfer",limit:10,offset:0})}]},authenticate:!0,permissionId:1400,bodyClass:"settings"}).state("app.settings.smtps",{url:"/smtps",views:{"content@app":{templateUrl:"app/main/apps/settings/views/smtps/smtps.html",controller:"SmtpController as vm"}},resolve:{smtps:["apiResolver",function(e){return e.resolve("mailAccount@get",{fields:"createdAt,updatedAt,id,service,name,email,Smtp.service,Smtp.host,Smtp.port,Smtp.secure,Smtp.authentication,Smtp.user,Smtp.pass,description",service:"1",limit:10,offset:0})}]},authenticate:!0,permissionId:1400,bodyClass:"settings"}).state("app.settings.networks",{url:"/networks",views:{"content@app":{templateUrl:"app/main/apps/settings/views/networks/networks.html",controller:"NetworksController as vm"}},resolve:{networks:["apiResolver",function(e){return e.resolve("network@get",{fields:"createdAt,updatedAt,id,type,value,username,password",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1400,bodyClass:"settings"}).state("app.settings.customizations",{url:"/customizations",views:{"content@app":{templateUrl:"app/main/apps/settings/views/customizations/customizations.html",controller:"CustomizationsController as vm"}},resolve:{customizations:["apiResolver",function(e){return e.resolve("setting@get",{fields:"createdAt,updatedAt,id,defaultLogo,defaultLoginLogo,defaultFavicon,defaultHeaderWhiteLabel,headerWhiteLabel,defaultPageTitle,pageTitle,defaultPreferred",limit:10,offset:0})}]},authenticate:!0,permissionId:1400,bodyClass:"settings"}).state("app.settings.cloudProviders",{url:"/cloudProviders",views:{"content@app":{templateUrl:"app/main/apps/settings/views/cloudProviders/cloudProviders.html",controller:"CloudProvidersController as vm"}},resolve:{cloudProviders:["apiResolver",function(e){return e.resolve("cloudProvider@get",{fields:"createdAt,updatedAt,id,name,service,data2,data1",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1400,bodyClass:"settings"}),n.addPart("app/main/apps/settings")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.settings",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.settings.updates","app.settings.license","app.settings.system"]).config(e)}(),function(){"use strict";function e(e){e.state("app.settings.license",{url:"/license",views:{"content@app":{templateUrl:"app/main/apps/settings/views/license/license.html",controller:"LicenseController as vm"}},authenticate:!0,permissionId:1400,bodyClass:"settings"})}e.$inject=["$stateProvider"],angular.module("app.settings.license",[]).config(e)}(),function(){"use strict";function e(e){e.state("app.settings.system",{url:"/system?tab",views:{"content@app":{templateUrl:"app/main/apps/settings/views/system/system.html",controller:"SystemController as vm"}},resolve:{system:["apiResolver",function(e){return e.resolve("system@get")}],processes:["apiResolver",function(e){return e.resolve("pm2@get")}]},authenticate:!0,permissionId:1400,bodyClass:"settings"})}e.$inject=["$stateProvider"],angular.module("app.settings.system",[]).config(e)}(),function(){"use strict";function e(e){e.state("app.settings.updates",{url:"/updates",views:{"content@app":{templateUrl:"app/main/apps/settings/views/updates/updates.html",controller:"UpdatesController as vm"}},resolve:{version:["apiResolver",function(e){return e.resolve("version@get",{latest:!0})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1400})}]},authenticate:!0,permissionId:1400,bodyClass:"settings"})}e.$inject=["$stateProvider"],angular.module("app.settings.updates",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.sms",{abstract:!0,url:"/sms"}).state("app.sms.smsQueues",{url:"/smsQueues",views:{"content@app":{templateUrl:"app/main/apps/sms/views/smsQueues/smsQueues.html",controller:"SmsQueuesController as vm"}},resolve:{smsQueues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("smsQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"sms",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SmsQueues",fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"sms",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:701})}]},authenticate:!0,permissionId:701,bodyClass:"sms"}).state("app.sms.smsQueues.edit",{url:"/:id?tab",params:{smsQueue:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/sms/views/smsQueues/edit/view.html",controller:"SmsQueueController as vm"}},resolve:{smsQueue:["apiResolver","$stateParams",function(e,n){return e.resolve("smsQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:701})}]},authenticate:!0,permissionId:701,bodyClass:"sms"}).state("app.sms.smsAccounts",{url:"/smsAccounts",views:{"content@app":{templateUrl:"app/main/apps/sms/views/smsAccounts/smsAccounts.html",controller:"SmsAccountsController as vm"}},resolve:{smsAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("smsAccount@get",{fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,type,phone,accountSid,authId,authToken,smsMethod,username,password,baseUrl,apiKey,accountId,applicationId,senderString,deliveryReport,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SmsAccounts",fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,type,phone,accountSid,authId,authToken,smsMethod,username,password,baseUrl,apiKey,accountId,applicationId,senderString,deliveryReport,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:702})}]},authenticate:!0,permissionId:702,bodyClass:"sms"}).state("app.sms.smsAccounts.edit",{url:"/:id?tab",params:{smsAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/sms/views/smsAccounts/edit/view.html",controller:"SmsAccountController as vm"}},resolve:{smsAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("smsAccount@get",{fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,type,phone,accountSid,authId,authToken,smsMethod,username,password,baseUrl,apiKey,accountId,applicationId,senderString,deliveryReport,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",id:n.id})}],userProfile:["apiResolver","Auth",function(e,n){return n.isAdmin()?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadOmnichannelInteractions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:702})}]},authenticate:!0,permissionId:702,bodyClass:"sms"}),n.addPart("app/main/apps/sms")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.sms",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.sms.realtime"]).config(e)}(),function(){"use strict";function e(e){e.state("app.sms.realtime",{url:"/realtime",views:{"content@app":{templateUrl:"app/main/apps/sms/views/realtime/realtime.html",controller:"SmsRealtimeController as vm"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:710})}]},authenticate:!0,permissionId:710}).state("app.sms.realtime.agents",{url:"/agents",controller:"AgentsSmsRealtimeController as vm",templateUrl:"app/main/apps/sms/views/realtime/agents/view.html",resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{nolimit:!0})}],agents:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}],rpcAgents:["apiResolver",function(e){return e.resolve("rpc@getAgents")}]},authenticate:!0,permissionId:710}).state("app.sms.realtime.queues",{url:"/queues",controller:"QueuesSmsRealtimeController as vm",templateUrl:"app/main/apps/sms/views/realtime/queues/view.html",resolve:{queues:["apiResolver","Auth",function(e,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"SmsQueues":void 0,channel:"sms",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:701})}]},authenticate:!0,permissionId:710})}e.$inject=["$stateProvider"],angular.module("app.sms.realtime",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.staff",{abstract:!0,url:"/staff"}).state("app.staff.users",{url:"/users",views:{"content@app":{templateUrl:"app/main/apps/staff/views/users/users.html",controller:"UsersController as vm"}},resolve:{users:["apiResolver","Auth",function(e,n){return e.resolve("user@get",{fields:"createdAt,updatedAt,role,userProfileId,id,fullname,name,email,phone,mobile,userpic,password,description,autointernal,internal,transport,nat,allow,context,callgroup,pickupgroup,passwordResetAt,apiKey,videosupport,disabled,blocked",role:"admin,user",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:201})}]},authenticate:!0,permissionId:201,bodyClass:"staff"}).state("app.staff.users.edit",{url:"/:id?tab",params:{user:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/staff/views/users/edit/view.html",controller:"UserController as vm"}},resolve:{user:["apiResolver","$stateParams",function(e,n){return e.resolve("user@get",{fields:"createdAt,updatedAt,role,userProfileId,id,fullname,name,email,phone,mobile,userpic,password,description,autointernal,internal,transport,nat,allow,context,callgroup,pickupgroup,passwordResetAt,apiKey,videosupport,disabled,blocked",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:201})}]},authenticate:!0,permissionId:201,bodyClass:"staff"}).state("app.staff.agents",{url:"/agents",views:{"content@app":{templateUrl:"app/main/apps/staff/views/agents/agents.html",controller:"AgentsController as vm"}},resolve:{agents:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"createdAt,updatedAt,id,role,fullname,name,alias,showWebBar,email,phone,mobile,userpic,password,hotdesk,autointernal,internal,loginInPause,description,dtlscertfile,dtlsprivatekey,wssPort,voicemail,transport,host,nat,type,allow,callerid,context,callgroup,pickupgroup,chanspy,videosupport,extensionMonitor,chatCapacity,mailCapacity,smsCapacity,openchannelCapacity,faxCapacity,whatsappCapacity,phoneBarEnableSettings,phoneBarAutoAnswer,phoneBarAutoAnswerDelay,phoneBarRingInUse,phoneBarEnableRecording,phoneBarEnableDtmfTone,phoneBarDnd,phoneBarUnansweredCallBadge,phoneBarEnableJaws,phoneBarOutboundProxy,phoneBarUnconditional,phoneBarUnconditionalNumber,phoneBarRemoteControl,phoneBarRemoteControlPort,phoneBarExpires,phoneBarListenPort,permissions,allowmessenger,phoneBarPrefixRequired,passwordResetAt,disabled,blocked,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording,privacyEnabled,downloadAttachments,downloadOmnichannelInteractions,downloadVoiceRecordings",role:"agent",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"createdAt,updatedAt,id,role,fullname,name,alias,showWebBar,email,phone,mobile,userpic,password,hotdesk,autointernal,internal,loginInPause,description,dtlscertfile,dtlsprivatekey,wssPort,voicemail,transport,host,nat,type,allow,callerid,context,callgroup,pickupgroup,chanspy,videosupport,extensionMonitor,chatCapacity,mailCapacity,smsCapacity,openchannelCapacity,faxCapacity,whatsappCapacity,phoneBarEnableSettings,phoneBarAutoAnswer,phoneBarAutoAnswerDelay,phoneBarRingInUse,phoneBarEnableRecording,phoneBarEnableDtmfTone,phoneBarDnd,phoneBarUnansweredCallBadge,phoneBarEnableJaws,phoneBarOutboundProxy,phoneBarUnconditional,phoneBarUnconditionalNumber,phoneBarRemoteControl,phoneBarRemoteControlPort,phoneBarExpires,phoneBarListenPort,permissions,allowmessenger,phoneBarPrefixRequired,passwordResetAt,disabled,blocked,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording,privacyEnabled,downloadAttachments,downloadOmnichannelInteractions,downloadVoiceRecordings",role:"agent",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}]},authenticate:!0,permissionId:202,bodyClass:"staff"}).state("app.staff.agents.edit",{url:"/:id?tab",params:{agent:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/staff/views/agents/edit/view.html",controller:"AgentController as vm"}},resolve:{agent:["apiResolver","$stateParams",function(e,n){return e.resolve("user@get",{fields:"createdAt,updatedAt,id,role,fullname,name,alias,showWebBar,email,phone,mobile,userpic,password,hotdesk,autointernal,internal,loginInPause,description,dtlscertfile,dtlsprivatekey,wssPort,voicemail,transport,host,nat,type,allow,callerid,context,callgroup,pickupgroup,chanspy,videosupport,extensionMonitor,chatCapacity,mailCapacity,smsCapacity,openchannelCapacity,faxCapacity,whatsappCapacity,phoneBarEnableSettings,phoneBarAutoAnswer,phoneBarAutoAnswerDelay,phoneBarRingInUse,phoneBarEnableRecording,phoneBarEnableDtmfTone,phoneBarDnd,phoneBarUnansweredCallBadge,phoneBarEnableJaws,phoneBarOutboundProxy,phoneBarUnconditional,phoneBarUnconditionalNumber,phoneBarRemoteControl,phoneBarRemoteControlPort,phoneBarExpires,phoneBarListenPort,permissions,allowmessenger,phoneBarPrefixRequired,passwordResetAt,disabled,blocked,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording,privacyEnabled,downloadAttachments,downloadOmnichannelInteractions,downloadVoiceRecordings",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}]},authenticate:!0,permissionId:202,bodyClass:"staff"}).state("app.staff.telephones",{url:"/telephones",views:{"content@app":{templateUrl:"app/main/apps/staff/views/telephones/telephones.html",controller:"TelephonesController as vm"}},resolve:{telephones:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"createdAt,updatedAt,id,role,fullname,name,email,password,description,autointernal,internal,voicemail,transport,nat,allow,callerid,context,callgroup,pickupgroup,videosupport,encryption,phone,mobile",role:"telephone",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Telephones",fields:"createdAt,updatedAt,id,role,fullname,name,email,password,description,autointernal,internal,voicemail,transport,nat,allow,callerid,context,callgroup,pickupgroup,videosupport,encryption,phone,mobile",role:"telephone",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:203})}]},authenticate:!0,permissionId:203,bodyClass:"staff"}).state("app.staff.telephones.edit",{url:"/:id?tab",params:{telephone:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/staff/views/telephones/edit/view.html",controller:"TelephoneController as vm"}},resolve:{telephone:["apiResolver","$stateParams",function(e,n){return e.resolve("user@get",{fields:"createdAt,updatedAt,id,role,fullname,name,email,password,description,autointernal,internal,voicemail,transport,nat,allow,callerid,context,callgroup,pickupgroup,videosupport,encryption,phone,mobile",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:203})}]},authenticate:!0,permissionId:203,bodyClass:"staff"}).state("app.staff.teams",{url:"/teams",views:{"content@app":{templateUrl:"app/main/apps/staff/views/teams/teams.html",controller:"TeamsController as vm"}},resolve:{teams:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("team@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Teams",fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:204})}]},authenticate:!0,permissionId:204,bodyClass:"staff"}).state("app.staff.userProfiles",{url:"/userProfiles",views:{"content@app":{templateUrl:"app/main/apps/staff/views/userProfiles/userProfiles.html",controller:"UserProfilesController as vm"}},resolve:{userProfiles:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"createdAt,updatedAt,id,name,description,crudPermissions,privacyEnabled,downloadAttachments,downloadCallySquareRecordings,downloadContactManagerLists,downloadJscriptySessions,downloadOmnichannelInteractions,downloadScreenRecordings,downloadVoiceRecordings",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:205})}]},authenticate:!0,permissionId:205,bodyClass:"staff"}).state("app.staff.userProfiles.edit",{url:"/:id?tab",params:{userProfile:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/staff/views/userProfiles/edit/view.html",controller:"UserProfileController as vm"}},resolve:{userProfile:["apiResolver","$stateParams",function(e,n){return e.resolve("userProfile@get",{fields:"createdAt,updatedAt,id,name,description,crudPermissions,privacyEnabled,downloadAttachments,downloadCallySquareRecordings,downloadContactManagerLists,downloadJscriptySessions,downloadOmnichannelInteractions,downloadScreenRecordings,downloadVoiceRecordings",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:205})}]},authenticate:!0,permissionId:205,bodyClass:"staff"}),n.addPart("app/main/apps/staff")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.staff",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter"]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.tools",{abstract:!0,url:"/tools"}).state("app.tools.cannedAnswers",{url:"/cannedAnswers",views:{"content@app":{templateUrl:"app/main/apps/tools/views/cannedAnswers/cannedAnswers.html",controller:"CannedAnswersController as vm"}},resolve:{cannedAnswers:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cannedAnswer@get",{fields:"createdAt,updatedAt,id,key,value,description",sort:"-updatedAt",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"CannedAnswers",fields:"createdAt,updatedAt,id,key,value,description",sort:"-updatedAt",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1001})}]},authenticate:!0,permissionId:1001,bodyClass:"tools"}).state("app.tools.customDashboards",{url:"/customDashboards",views:{"content@app":{templateUrl:"app/main/apps/tools/views/customDashboards/customDashboards.html",controller:"CustomDashboardsController as vm"}},resolve:{customDashboards:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("dashboard@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"CustomDashboards",fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1003})}]},authenticate:!0,permissionId:1003,bodyClass:"tools"}).state("app.tools.customDashboards.edit",{url:"/:id?tab",params:{customDashboard:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/tools/views/customDashboards/edit/view.html",controller:"CustomDashboardController as vm"}},resolve:{customDashboard:["apiResolver","$stateParams",function(e,n){return e.resolve("dashboard@get",{fields:"createdAt,updatedAt,id,name,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1003})}]},authenticate:!0,permissionId:1003,bodyClass:"tools"}).state("app.tools.intervals",{url:"/intervals",views:{"content@app":{templateUrl:"app/main/apps/tools/views/intervals/intervals.html",controller:"IntervalsController as vm"}},resolve:{intervals:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("interval@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",IntervalId:"null",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Intervals",fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",IntervalId:"null",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1004})}]},authenticate:!0,permissionId:1004,bodyClass:"tools"}).state("app.tools.intervals.edit",{url:"/:id?tab",params:{interval:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/tools/views/intervals/edit/view.html",controller:"IntervalController as vm"}},resolve:{interval:["apiResolver","$stateParams",function(e,n){return e.resolve("interval@get",{fields:"createdAt,updatedAt,id,name,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1004})}]},authenticate:!0,permissionId:1004,bodyClass:"tools"}).state("app.tools.pauses",{url:"/pauses",views:{"content@app":{templateUrl:"app/main/apps/tools/views/pauses/pauses.html",controller:"PausesController as vm"}},resolve:{pauses:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("pause@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Pauses",fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1005})}]},authenticate:!0,permissionId:1005,bodyClass:"tools"}).state("app.tools.schedules",{url:"/schedules",views:{"content@app":{templateUrl:"app/main/apps/tools/views/schedules/schedules.html",controller:"SchedulesController as vm"}},resolve:{schedules:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("schedule@get",{fields:"createdAt,updatedAt,id,name,CustomReportId,DefaultReportId,output,active,startAt,endAt,cron,subtractNumber,subtractUnit,sendMail,MailAccountId,email,cc,bcc,sendIfEmpty,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Scheduler",fields:"createdAt,updatedAt,id,name,CustomReportId,DefaultReportId,output,active,startAt,endAt,cron,subtractNumber,subtractUnit,sendMail,MailAccountId,email,cc,bcc,sendIfEmpty,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1006})}]},authenticate:!0,permissionId:1006,bodyClass:"tools"}).state("app.tools.sounds",{url:"/sounds",views:{"content@app":{templateUrl:"app/main/apps/tools/views/sounds/sounds.html",controller:"SoundsController as vm"}},resolve:{sounds:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("sound@get",{fields:"createdAt,updatedAt,id,save_name,converted_format,name,audio,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Sounds",fields:"createdAt,updatedAt,id,save_name,converted_format,name,audio,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1007})}]},authenticate:!0,permissionId:1007,bodyClass:"tools"}).state("app.tools.tags",{url:"/tags",views:{"content@app":{templateUrl:"app/main/apps/tools/views/tags/tags.html",controller:"TagsController as vm"}},resolve:{tags:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("tag@get",{fields:"createdAt,updatedAt,id,name,description,color",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Tags",fields:"createdAt,updatedAt,id,name,description,color",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1008})}]},authenticate:!0,permissionId:1008,bodyClass:"tools"}).state("app.tools.templates",{url:"/templates",views:{"content@app":{templateUrl:"app/main/apps/tools/views/templates/templates.html",controller:"TemplatesController as vm"}},resolve:{templates:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("template@get",{fields:"createdAt,updatedAt,id,name,html,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Templates",fields:"createdAt,updatedAt,id,name,html,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1009})}]},authenticate:!0,permissionId:1009,bodyClass:"tools"}).state("app.tools.trunks",{url:"/trunks",views:{"content@app":{templateUrl:"app/main/apps/tools/views/trunks/trunks.html",controller:"TrunksController as vm"}},resolve:{trunks:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("trunk@get",{fields:"createdAt,updatedAt,id,name,active,host,secret,defaultuser,context,callerid,type,dtmfmode,nat,qualify,allow,insecure,call_limit,registry,description,directmedia,callcounter,fromdomain,fromuser,outboundproxy,usereqphone,trustrpid,sendrpid,encryption,port,transport,t38pt_udptl,videosupport,otherFields",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Trunks",fields:"createdAt,updatedAt,id,name,active,host,secret,defaultuser,context,callerid,type,dtmfmode,nat,qualify,allow,insecure,call_limit,registry,description,directmedia,callcounter,fromdomain,fromuser,outboundproxy,usereqphone,trustrpid,sendrpid,encryption,port,transport,t38pt_udptl,videosupport,otherFields",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1011})}]},authenticate:!0,permissionId:1011,bodyClass:"tools"}).state("app.tools.trunks.edit",{url:"/:id?tab",params:{trunk:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/tools/views/trunks/edit/view.html",controller:"TrunkController as vm"}},resolve:{trunk:["apiResolver","$stateParams",function(e,n){return e.resolve("trunk@get",{fields:"createdAt,updatedAt,id,name,active,host,secret,defaultuser,context,callerid,type,dtmfmode,nat,qualify,allow,insecure,call_limit,registry,description,directmedia,callcounter,fromdomain,fromuser,outboundproxy,usereqphone,trustrpid,sendrpid,encryption,port,transport,t38pt_udptl,videosupport,otherFields",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1011})}]},authenticate:!0,permissionId:1011,bodyClass:"tools"}).state("app.tools.variables",{url:"/variables",views:{"content@app":{templateUrl:"app/main/apps/tools/views/variables/variables.html",controller:"VariablesController as vm"}},resolve:{variables:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("variable@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Variables",fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1012})}]},authenticate:!0,permissionId:1012,bodyClass:"tools"}),n.addPart("app/main/apps/tools")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.tools",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.tools.dispositions","app.tools.triggers"]).config(e)}(),function(){"use strict";function e(e){e.state("app.tools.dispositions",{url:"/dispositions",views:{"content@app":{templateUrl:"app/main/apps/tools/views/dispositions/dispositions.html",controller:"DispositionsController as vm"}},resolve:{dispositions:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("disposition@get",{fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",WhatsappAccountId:"null",ListId:"null",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Dispositions",fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",WhatsappAccountId:"null",ListId:"null",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1002})}]},authenticate:!0,permissionId:1002,bodyClass:"tools"})}e.$inject=["$stateProvider"],angular.module("app.tools.dispositions",[]).config(e)}(),function(){"use strict";function e(e){e.state("app.tools.triggers",{url:"/triggers",views:{"content@app":{templateUrl:"app/main/apps/tools/views/triggers/triggers.html",controller:"TriggersController as vm"}},resolve:{triggers:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("trigger@get",{fields:"createdAt,updatedAt,id,name,channel,status,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Triggers",fields:"createdAt,updatedAt,id,name,channel,status,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1010})}]},authenticate:!0,permissionId:1010,bodyClass:"tools"}).state("app.tools.triggers.edit",{url:"/:id?tab",params:{trigger:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/tools/views/triggers/edit/view.html",controller:"TriggerController as vm"}},resolve:{trigger:["apiResolver","$stateParams",function(e,n){return e.resolve("trigger@get",{fields:"createdAt,updatedAt,id,name,channel,status,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1010})}]},authenticate:!0,permissionId:1010,bodyClass:"tools"})}e.$inject=["$stateProvider"],angular.module("app.tools.triggers",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.video",{abstract:!0,url:"/video"}).state("app.video.screenRecordings",{url:"/screenRecordings",views:{"content@app":{templateUrl:"app/main/apps/video/views/screenRecordings/screenRecordings.html",controller:"ScreenRecordingsController as vm"}},resolve:{screenRecordings:["apiResolver","Auth","msUtils",function(e,n,t){return n.hasRole("admin")?e.resolve("screenRecording@get",{fields:"createdAt,updatedAt,id,interactionid,channel,format,value,rating,UserId,duration,startedAt,closedAt",createdAt:t.firstLastDayMonth(),includeAll:"true",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ScreenRecordings",fields:"createdAt,updatedAt,id,interactionid,channel,format,value,rating,UserId,duration,startedAt,closedAt",createdAt:t.firstLastDayMonth(),includeAll:"true",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadScreenRecordings",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:2001})}]},authenticate:!0,permissionId:2001,bodyClass:"video"}),n.addPart("app/main/apps/video")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.video",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter"]).config(e)}(),function(){"use strict";function e(e){e.state("app.voice.inboundRoutes",{url:"/inboundRoutes",views:{"content@app":{templateUrl:"app/main/apps/voice/views/inboundRoutes/inboundRoutes.html",controller:"InboundRoutesController as vm"}},resolve:{inboundRoutes:["apiResolver","Auth",function(e,n){return n.isAdmin()?e.resolve("voiceExtension@get",{fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",type:"inbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"InboundRoutes",fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",type:"inbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:402})}]},authenticate:!0,permissionId:402,bodyClass:"voice"}).state("app.voice.inboundRoutes.edit",{url:"/:id?tab",params:{inboundRoute:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/voice/views/inboundRoutes/edit/view.html",controller:"InboundRouteController as vm"}},resolve:{inboundRoute:["apiResolver","$stateParams",function(e,n){return e.resolve("voiceExtension@get",{fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",id:n.id})}],contexts:["apiResolver",function(e){return e.resolve("voiceContext@get",{fields:"id,name",sort:"name"})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:402})}]},authenticate:!0,permissionId:402,bodyClass:"voice"})}e.$inject=["$stateProvider"],angular.module("app.voice.inboundRoutes",[]).config(e)}(),function(){"use strict";function e(e){e.state("app.voice.internalRoutes",{url:"/internalRoutes",views:{"content@app":{templateUrl:"app/main/apps/voice/views/internalRoutes/internalRoutes.html",controller:"InternalRoutesController as vm"}},resolve:{internalRoutes:["apiResolver","Auth",function(e,n){return n.isAdmin()?e.resolve("voiceExtension@get",{fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",type:"internal",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"InternalRoutes",fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",type:"internal",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:404})}]},authenticate:!0,permissionId:404,bodyClass:"voice"}).state("app.voice.internalRoutes.edit",{url:"/:id?tab",params:{internalRoute:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/voice/views/internalRoutes/edit/view.html",controller:"InternalRouteController as vm"}},resolve:{internalRoute:["apiResolver","$stateParams",function(e,n){return e.resolve("voiceExtension@get",{fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",id:n.id})}],contexts:["apiResolver",function(e){return e.resolve("voiceContext@get",{fields:"id,name",sort:"name"})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:404})}]},authenticate:!0,permissionId:404,bodyClass:"voice"})}e.$inject=["$stateProvider"],angular.module("app.voice.internalRoutes",[]).config(e)}(),function(){"use strict";function e(e){e.state("app.voice.outboundRoutes",{url:"/outboundRoutes",views:{"content@app":{templateUrl:"app/main/apps/voice/views/outboundRoutes/outboundRoutes.html",controller:"OutboundRoutesController as vm"}},resolve:{outboundRoutes:["apiResolver","Auth",function(e,n){return n.isAdmin()?e.resolve("voiceExtension@get",{fields:"id,appdata,type,exten,context,recordingFormat,cutdigits,description,alias,createdAt,updatedAt",type:"outbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"OutboundRoutes",fields:"id,appdata,type,exten,context,recordingFormat,cutdigits,description,alias,createdAt,updatedAt",type:"outbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:403})}]},authenticate:!0,permissionId:403,bodyClass:"voice"}).state("app.voice.outboundRoutes.edit",{url:"/:id?tab",params:{outboundRoute:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/voice/views/outboundRoutes/edit/view.html",controller:"OutboundRouteController as vm"}},resolve:{outboundRoute:["apiResolver","$stateParams",function(e,n){return e.resolve("voiceExtension@get",{fields:"id,appdata,type,exten,context,recordingFormat,cutdigits,description,alias,createdAt,updatedAt",id:n.id})}],contexts:["apiResolver",function(e){return e.resolve("voiceContext@get",{fields:"id,name",sort:"name"})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:403})}]},authenticate:!0,permissionId:403,bodyClass:"voice"})}e.$inject=["$stateProvider"],angular.module("app.voice.outboundRoutes",[]).config(e)}(),function(){"use strict";function e(e){e.state("app.voice.realtime",{url:"/realtime",views:{"content@app":{templateUrl:"app/main/apps/voice/views/realtime/realtime.html",controller:"VoiceRealtimeController as vm"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:411})}]},authenticate:!0,permissionId:411}).state("app.voice.realtime.agents",{url:"/agents",controller:"AgentsVoiceRealtimeController as vm",templateUrl:"app/main/apps/voice/views/realtime/agents/view.html",resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{nolimit:!0})}],agents:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}],rpcAgents:["apiResolver",function(e){return e.resolve("rpc@getAgents")}]},authenticate:!0,permissionId:411}).state("app.voice.realtime.telephones",{url:"/telephones",controller:"TelephonesVoiceRealtimeController as vm",templateUrl:"app/main/apps/voice/views/realtime/telephones/view.html",resolve:{telephones:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,fullname,userpic,internal",role:"telephone",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Telephones",fields:"id,fullname,userpic,internal",role:"telephone",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:203})}],rpcTelephones:["apiResolver",function(e){return e.resolve("rpc@getTelephones")}]},authenticate:!0,permissionId:411}).state("app.voice.realtime.trunks",{url:"/trunks",controller:"TrunksVoiceRealtimeController as vm",templateUrl:"app/main/apps/voice/views/realtime/trunks/view.html",resolve:{trunks:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("trunk@get",{fields:"id,name",active:!0,sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Trunks",fields:"id,name",active:!0,sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1011})}],rpcTrunks:["apiResolver",function(e){return e.resolve("rpc@getTrunks")}]},authenticate:!0,permissionId:411}).state("app.voice.realtime.queues",{url:"/queues",controller:"QueuesVoiceRealtimeController as vm",templateUrl:"app/main/apps/voice/views/realtime/queues/view.html",resolve:{queues:["apiResolver","Auth",function(e,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"VoiceQueues":void 0,channel:"voice",type:"inbound",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:401})}]},authenticate:!0,permissionId:411}).state("app.voice.realtime.queue_calls",{url:"/queue_calls",controller:"QueueCallsVoiceRealtimeController as vm",templateUrl:"app/main/apps/voice/views/realtime/queue_calls/view.html",resolve:{agents:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,role,context",role:"agent",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,role,context",role:"agent",nolimit:!0})}],queues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{type:"inbound",sort:"-updatedAt",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoiceQueues",channel:"voice",type:"inbound",sort:"-updatedAt",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:401})}],rpcVoiceQueuesChannels:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueuesChannels")}]},authenticate:!0,permissionId:411}).state("app.voice.realtime.abandonedcalls",{url:"/abandonedcalls",controller:"AbandonedCallsVoiceRealtimeController as vm",templateUrl:"app/main/apps/voice/views/realtime/abandonedcalls/view.html",resolve:{agents:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,role,context",role:"agent",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,role,context",role:"agent",nolimit:!0})}],queues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{type:"inbound",sort:"-updatedAt",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoiceQueues",channel:"voice",type:"inbound",sort:"-updatedAt",nolimit:!0})}],dispositions:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("disposition@get",{fields:"createdAt,updatedAt,id,name,level,ParentId",sort:"name",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Dispositions",fields:"createdAt,updatedAt,id,name",sort:"name",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:401})}]},authenticate:!0,permissionId:411}).state("app.voice.realtime.queue_params",{url:"/queue_params",controller:"QueueParamsVoiceRealtimeController as vm",templateUrl:"app/main/apps/voice/views/realtime/queue_params/view.html",resolve:{queues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{type:"inbound",fields:"id,name",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoiceQueues",channel:"voice",type:"inbound",sort:"-updatedAt",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:401})}],rpcQueues:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueues")}]},authenticate:!0,permissionId:411}).state("app.voice.realtime.outbound_calls",{url:"/outbound_calls",controller:"OutboundCallsVoiceRealtimeController as vm",templateUrl:"app/main/apps/voice/views/realtime/outbound_calls/view.html",resolve:{rpcCalls:["apiResolver",function(e){return e.resolve("rpc@getOutboundChannels")}]},authenticate:!0,permissionId:411})}e.$inject=["$stateProvider"],angular.module("app.voice.realtime",[]).config(e)}(),function(){"use strict";function e(e,n){e.state("app.voice",{abstract:!0,url:"/voice"}).state("app.voice.voiceQueues",{url:"/voiceQueues",views:{"content@app":{templateUrl:"app/main/apps/voice/views/voiceQueues/voiceQueues.html",controller:"VoiceQueuesController as vm"}},resolve:{voiceQueues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{fields:"createdAt,updatedAt,id,name,type,strategy,timeout,maxlen,retry,wrapuptime,weight,joinempty,leavewhenempty,musiconhold,announce,description,periodic_announce,queue_reporthold,queue_youarenext,queue_thereare,queue_callswaiting,queue_holdtime,queue_minutes,queue_minute,queue_seconds,queue_thankyou,announce_frequency,min_announce_frequency,periodic_announce_frequency,random_periodic_announce,announce_holdtime,announce_position,announce_position_limit,reportholdtime,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar,servicelevel,mandatoryDisposition,mandatoryDispositionPauseId",type:"inbound",sort:"-updatedAt",channel:"voice",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoiceQueues",fields:"createdAt,updatedAt,id,name,type,strategy,timeout,maxlen,retry,wrapuptime,weight,joinempty,leavewhenempty,musiconhold,announce,description,periodic_announce,queue_reporthold,queue_youarenext,queue_thereare,queue_callswaiting,queue_holdtime,queue_minutes,queue_minute,queue_seconds,queue_thankyou,announce_frequency,min_announce_frequency,periodic_announce_frequency,random_periodic_announce,announce_holdtime,announce_position,announce_position_limit,reportholdtime,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar,servicelevel,mandatoryDisposition,mandatoryDispositionPauseId",type:"inbound",sort:"-updatedAt",channel:"voice",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:401})}]},authenticate:!0,permissionId:401,bodyClass:"voice"}).state("app.voice.voiceQueues.edit",{url:"/:id?tab",params:{voiceQueue:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/voice/views/voiceQueues/edit/view.html",controller:"VoiceQueueController as vm"}},resolve:{voiceQueue:["apiResolver","$stateParams",function(e,n){return e.resolve("voiceQueue@get",{fields:"createdAt,updatedAt,id,name,type,strategy,timeout,maxlen,retry,wrapuptime,weight,joinempty,leavewhenempty,musiconhold,announce,description,periodic_announce,queue_reporthold,queue_youarenext,queue_thereare,queue_callswaiting,queue_holdtime,queue_minutes,queue_minute,queue_seconds,queue_thankyou,announce_frequency,min_announce_frequency,periodic_announce_frequency,random_periodic_announce,announce_holdtime,announce_position,announce_position_limit,reportholdtime,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar,servicelevel,mandatoryDisposition,mandatoryDispositionPauseId",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:401})}]},authenticate:!0,permissionId:401,bodyClass:"voice"}).state("app.voice.contexts",{url:"/contexts",views:{"content@app":{templateUrl:"app/main/apps/voice/views/contexts/contexts.html",controller:"ContextsController as vm"}},resolve:{contexts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceContext@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",defaultEntry:"false",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Contexts",fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",defaultEntry:"false",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:405})}]},authenticate:!0,permissionId:405,bodyClass:"voice"}).state("app.voice.voicemails",{url:"/voicemails",views:{"content@app":{templateUrl:"app/main/apps/voice/views/voicemails/voicemails.html",controller:"VoicemailsController as vm"}},resolve:{voicemails:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceMail@get",{fields:"createdAt,updatedAt,id,customer_id,fullname,email,password,mailbox,context,tz,attach,envelope,delete,emailbody,emailsubject,maxsecs,maxmsg",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Voicemails",fields:"createdAt,updatedAt,id,customer_id,fullname,email,password,mailbox,context,tz,attach,envelope,delete,emailbody,emailsubject,maxsecs,maxmsg",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:406})}]},authenticate:!0,permissionId:406,bodyClass:"voice"}).state("app.voice.voicemails.edit",{url:"/:id?tab",params:{voicemail:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/voice/views/voicemails/edit/view.html",controller:"VoicemailController as vm"}},resolve:{voicemail:["apiResolver","$stateParams",function(e,n){return e.resolve("voiceMail@get",{fields:"createdAt,updatedAt,id,customer_id,fullname,email,password,mailbox,context,tz,attach,envelope,delete,emailbody,emailsubject,maxsecs,maxmsg",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:406})}]},authenticate:!0,permissionId:406,bodyClass:"voice"}).state("app.voice.musiconholds",{url:"/musiconholds",views:{"content@app":{templateUrl:"app/main/apps/voice/views/musiconholds/musiconholds.html",controller:"MusicOnHoldsController as vm"}},resolve:{musiconholds:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceMusicOnHold@get",{fields:"createdAt,updatedAt,id,name,mode,directory,application,format,sort",defaultEntry:"false",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"MusicOnHolds",fields:"createdAt,updatedAt,id,name,mode,directory,application,format,sort",defaultEntry:"false",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:407})}]},authenticate:!0,permissionId:407,bodyClass:"voice"}).state("app.voice.musiconholds.edit",{url:"/:id?tab",params:{musiconhold:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/voice/views/musiconholds/edit/view.html",controller:"MusicOnHoldController as vm"}},resolve:{musiconhold:["apiResolver","$stateParams",function(e,n){return e.resolve("voiceMusicOnHold@get",{fields:"createdAt,updatedAt,id,name,mode,directory,application,format,sort",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:407})}]},authenticate:!0,permissionId:407,bodyClass:"voice"}).state("app.voice.voiceRecordings",{url:"/voiceRecordings",views:{"content@app":{templateUrl:"app/main/apps/voice/views/voiceRecordings/voiceRecordings.html",controller:"VoiceRecordingsController as vm"}},resolve:{voiceRecordings:["apiResolver","Auth","msUtils",function(e,n,t){return n.hasRole("admin")?e.resolve("voiceRecording@get",{fields:"createdAt,updatedAt,id,format,value,type,uniqueid,calleridnum,exten,connectedlinenum,queue,membername,rating,audio,userDisposition,userSecondDisposition,userThirdDisposition,transcribeStatus,fileText,failureReason,sentiment,sPositive,sNegative,sNeutral,sMixed",sort:"-createdAt",createdAt:t.firstLastDayMonth(),limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoiceRecordings",fields:"createdAt,updatedAt,id,format,value,type,uniqueid,calleridnum,exten,connectedlinenum,queue,membername,rating,audio,userDisposition,userSecondDisposition,userThirdDisposition,transcribeStatus,fileText,failureReason,sentiment,sPositive,sNegative,sNeutral,sMixed",sort:"-createdAt",createdAt:t.firstLastDayMonth(),limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadVoiceRecordings",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:408})}]},authenticate:!0,permissionId:408,bodyClass:"voice"}).state("app.voice.voiceRecordings.edit",{url:"/:id?tab",params:{voiceRecording:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/voice/views/voiceRecordings/edit/view.html",controller:"VoiceRecordingController as vm"}},resolve:{voiceRecording:["apiResolver","$stateParams",function(e,n){return e.resolve("voiceRecording@get",{fields:"createdAt,updatedAt,id,format,value,type,uniqueid,calleridnum,exten,connectedlinenum,queue,membername,rating,audio,userDisposition,userSecondDisposition,userThirdDisposition,transcribeStatus,fileText,failureReason,sentiment,sPositive,sNegative,sNeutral,sMixed",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:408})}]},authenticate:!0,permissionId:408,bodyClass:"voice"}).state("app.voice.chanSpies",{url:"/chanSpies",views:{"content@app":{templateUrl:"app/main/apps/voice/views/chanSpies/chanSpies.html",controller:"ChanSpiesController as vm"}},resolve:{chanSpies:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceChanSpy@get",{fields:"createdAt,updatedAt,id,name,prefix,options,auth,password,record,recordingFormat,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ChanSpies",fields:"createdAt,updatedAt,id,name,prefix,options,auth,password,record,recordingFormat,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:409})}]},authenticate:!0,permissionId:409,bodyClass:"voice"}).state("app.voice.voicePrefixes",{url:"/voicePrefixes",views:{"content@app":{templateUrl:"app/main/apps/voice/views/voicePrefixes/voicePrefixes.html",controller:"VoicePrefixesController as vm"}},resolve:{voicePrefixes:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voicePrefix@get",{fields:"createdAt,updatedAt,id,name,VoiceExtensionId,callerIdAll,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoicePrefixes",fields:"createdAt,updatedAt,id,name,VoiceExtensionId,callerIdAll,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:410})}]},authenticate:!0,permissionId:410,bodyClass:"voice"}),n.addPart("app/main/apps/voice")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.voice",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.voice.inboundRoutes","app.voice.outboundRoutes","app.voice.internalRoutes","app.voice.realtime"]).config(e)}(),function(){"use strict";function e(e){e.state("app.whatsapp.realtime",{url:"/realtime",views:{"content@app":{templateUrl:"app/main/apps/whatsapp/views/realtime/realtime.html",controller:"WhatsappRealtimeController as vm"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:2110})}]},authenticate:!0,permissionId:2110}).state("app.whatsapp.realtime.agents",{url:"/agents",controller:"AgentsWhatsappRealtimeController as vm",templateUrl:"app/main/apps/whatsapp/views/realtime/agents/view.html",resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{nolimit:!0})}],agents:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}],rpcAgents:["apiResolver",function(e){return e.resolve("rpc@getAgents")}]},authenticate:!0,permissionId:2110}).state("app.whatsapp.realtime.queues",{url:"/queues",controller:"QueuesWhatsappRealtimeController as vm",templateUrl:"app/main/apps/whatsapp/views/realtime/queues/view.html",resolve:{queues:["apiResolver","Auth",function(e,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"WhatsappQueues":void 0,channel:"whatsapp",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:2101})}]},authenticate:!0,permissionId:2110})}e.$inject=["$stateProvider"],angular.module("app.whatsapp.realtime",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.whatsapp",{abstract:!0,url:"/whatsapp"}).state("app.whatsapp.whatsappQueues",{url:"/whatsappQueues",views:{"content@app":{templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/whatsappQueues.html",controller:"WhatsappQueuesController as vm"}},resolve:{whatsappQueues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("whatsappQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"whatsapp",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"WhatsappQueues",fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"whatsapp",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:2101})}]},authenticate:!0,permissionId:2101,bodyClass:"whatsapp"}).state("app.whatsapp.whatsappQueues.edit",{url:"/:id?tab",params:{whatsappQueue:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/edit/view.html",controller:"WhatsappQueueController as vm"}},resolve:{whatsappQueue:["apiResolver","$stateParams",function(e,n){return e.resolve("whatsappQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:2101})}]},authenticate:!0,permissionId:2101,bodyClass:"whatsapp"}).state("app.whatsapp.whatsappAccounts",{url:"/whatsappAccounts",views:{"content@app":{templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/whatsappAccounts.html",controller:"WhatsappAccountsController as vm"}},resolve:{whatsappAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("whatsappAccount@get",{fields:"createdAt,updatedAt,id,name,key,ListId,remote,token,type,accountSid,authToken,phone,receiveUrl,deliveryReportUrl,notificationShake,notificationSound,notificationTemplate,queueTransfer,queueTransferTimeout,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,agentTransfer,agentTransferTimeout,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"WhatsappAccounts",fields:"createdAt,updatedAt,id,name,key,ListId,remote,token,type,accountSid,authToken,phone,receiveUrl,deliveryReportUrl,notificationShake,notificationSound,notificationTemplate,queueTransfer,queueTransferTimeout,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,agentTransfer,agentTransferTimeout,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:2102})}]},authenticate:!0,permissionId:2102,bodyClass:"whatsapp"}).state("app.whatsapp.whatsappAccounts.edit",{url:"/:id?tab",params:{whatsappAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/edit/view.html",controller:"WhatsappAccountController as vm"}},resolve:{whatsappAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("whatsappAccount@get",{fields:"createdAt,updatedAt,id,name,key,ListId,remote,token,type,accountSid,authToken,phone,receiveUrl,deliveryReportUrl,notificationShake,notificationSound,notificationTemplate,queueTransfer,queueTransferTimeout,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,agentTransfer,agentTransferTimeout,description",id:n.id})}],userProfile:["apiResolver","Auth",function(e,n){return n.isAdmin()?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadOmnichannelInteractions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:2102})}]},authenticate:!0,permissionId:2102,bodyClass:"whatsapp"}),n.addPart("app/main/apps/whatsapp")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.whatsapp",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.whatsapp.realtime"]).config(e)}(),function(){"use strict";angular.module("app.navigation",[]).config(function(){})}(),function(){"use strict";function e(e,n){e.addPart("app/quick-panel")}e.$inject=["$translatePartialLoaderProvider","msApiProvider"],angular.module("app.quick-panel",[]).config(e)}(),function(){"use strict";function e(e,n){e.state("app.reset",{url:"/reset/:token",views:{"main@":{templateUrl:"app/core/layouts/content-only.html",controller:"MainController as vm"},"content@app.reset":{templateUrl:"app/reset/reset.html",controller:"ResetPasswordController as vm"}},bodyClass:"reset"}),n.addPart("app/reset")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.reset",[]).config(e)}(),function(){"use strict";function e(e){e.addPart("app/toolbar")}e.$inject=["$translatePartialLoaderProvider"],angular.module("app.toolbar",[]).config(e)}(),function(){"use strict";function e(e){e.interceptors.push("authInterceptor")}e.$inject=["$httpProvider"],angular.module("app.auth").config(e)}(),function(){"use strict";function e(e){e.onBefore({to:function(e){return!0===e.authenticate}},function(e){var n=e.injector().get("Auth"),t=e.router.stateService;return n.isLoggedIn()?n.retrieveUser().catch(function(){return t.target("app.login",void 0,{reload:!0})}):t.target("app.login",void 0,{reload:!0})}),e.onStart({to:function(e){return"app.login"!==e.name}},function(e){var n=e.injector().get("Auth"),t=e.router.stateService,a=e.$to();if(n.hasRole("agent")&&"app.dashboards.general"!=a.name)return t.target("app.dashboards.general",{redirect:!1},{reload:!0})}),e.onFinish({to:function(e){return e.permissionId}},function(e){var n=e.injector().get("Auth"),t=e.router.stateService,a=e.$to();if(n.hasRole("user")){if(!n.hasPermission(a.permissionId))return t.target("app.dashboards.general",{redirect:!1},{reload:!0});var i=e.params().id?Number(e.params().id):void 0;if(i)return n.hasResourcePermission(a.permissionId,i).catch(function(){return t.target(a.parent.name,{redirect:!1},{reload:!0})})}}),e.onFinish({to:function(e){return"app.dashboards.general"===e.parent.name}},function(e){var n=e.injector().get("Auth"),t=e.router.stateService;e.$to();if(n.hasRole("user")&&!n.hasPermission(100))return t.target("app.dashboards.general",{redirect:!1},{reload:!0})})}e.$inject=["$transitions"],angular.module("app.auth").run(e)}(),function(){"use strict";function e(a,i,o,n,s,r,l){var d;return{getToken:e,getCurrentUser:function(){return d},getPermissions:h,hasChildrenPermissions:function(e){return!!e&&_.some(e,function(e){return t(e)})},hasModulePermissions:function(i){return o(function(a,n){g()?a(!0):r.userProfileSection.get({userProfileId:d.userProfileId}).$promise.then(function(e){var n=e&&e.rows?e.rows:[];if(_.isEmpty(n))a(!1);else{var t=_.filter(n,function(e){return e.enabled});a(_.some(t,["category",i]))}}).catch(function(e){n(e)})})},hasModulesPermissions:function(s){return o(function(a,n){var i={};g()?(s.forEach(function(e){i[e]=!0}),a(i)):r.userProfileSection.get({userProfileId:d.userProfileId}).$promise.then(function(e){var n=e&&e.rows?e.rows:[];if(_.isEmpty(n))a({});else{var t=_(n).filter(function(e){return e.enabled&&_.includes(s,e.category)}).uniqBy(function(e){return e.category}).map(function(e){return e.category}).value();t.forEach(function(e){i[e]=!0}),a(i)}}).catch(function(e){n(e)})})},hasRole:function(e){return!!d&&d.role===e},hasPermission:t,hasResourcePermission:function(e,s){return o(function(a,i){return r.userProfileSection.get({userProfileId:d.userProfileId,sectionId:e}).$promise.then(function(e){var n=e.rows[0];if(n.autoAssociation)return a();var t=l.getActiveItem().node;return t.permissions&&!1===t.permissions.association?a():r.userProfileResource.get({sectionId:n.id,nolimit:!0}).$promise.then(function(e){var n=e.rows;_.some(n,["resourceId",s])?a():i()})}).catch(function(e){i("Error retrieving user profile permissions",e)})})},hasSectionPermissions:function(a){return o(function(e,n){var t={};return f().then(function(){_.includes(d.permissions,a)&&(t[a]=!0),e(t)}).catch(function(e){n(e)})})},hasSectionsPermissions:function(a){return o(function(e,n){var t={};if(!g())return f().then(function(){a.forEach(function(e){_.includes(d.permissions,e)&&(t[e]=!0)}),e(t)}).catch(function(e){n(e)});a.forEach(function(e){t[e]=!0}),e(t)})},isAgent:p,isAdmin:g,isLoggedIn:function(){return!!e()},isTelephone:function(){return"telephone"===d.role},isUser:v,login:function(e){return o(function(n,t){r.auth.local(e).$promise.then(function(e){return i.put("motion.token",e.token),r.user.get({id:e.id}).$promise}).then(function(e){(d=e).lastLoginAt=moment().format("YYYY-MM-DD HH:mm:ss"),b("LOCAL_LOGIN")}).then(function(){if(p()&&1===d.showWebBar&&d.hotdesk)return a.show({controller:"HotDeskDialogController",controllerAs:"vm",templateUrl:"app/auth/services/hotdesk/dialog.html",parent:angular.element(s.body),clickOutsideToClose:!1,resolve:{telephones:["apiResolver",function(e){return e.resolve("user@get",{fields:"id,fullname,name,internal",role:"telephone",nolimit:!0})}]}})}).then(function(e){return p()&&0!==d.showWebBar?c(e):g()||v()?m(!0):void 0}).then(function(e){d=_.assign(d,e),n()}).catch(function(e){t(e)})})},logout:function(t){return o(function(e,n){t?(u(),e()):o.resolve().then(function(){return p()&&0!==d.showWebBar?o(function(e,n){r.user.logout({id:d.id,device:"web"}).$promise.then(function(){e()}).catch(function(e){n(e)})}):g()||v()?m(!1):void 0}).then(function(){u(),e()}).catch(function(e){n(e)})})},parseCrudPermissions:function(e){return g()?{readOnly:!1,canEdit:!0,canDelete:!0}:e?{readOnly:!(!_.includes(e,"r")||1!==e.length),canEdit:!!_.includes(e,"e"),canDelete:!!_.includes(e,"d")}:{readOnly:!0,canEdit:!1,canDelete:!1}},queueLogin:c,reloadPermissions:f,removeCookies:u,retrieveUser:function(){return o(function(n,t){r.user.whoami().$promise.then(function(n){return"user"===n.role?h(n.userProfileId).then(function(e){return n.permissions=e,n}):n}).then(function(e){n(d=e)}).catch(function(e){t(e)})})},setCurrentUser:function(e){d=_.merge(d,e)},getAuthenticationType:function(){return n.localStorage["motion.authenticationtype"]||"NONE"},loginSSO:function(e){return b("SSO_LOGIN"),"/api/auth/"+e}};function e(){return i.get("motion.token")}function c(e){return o(function(n,t){r.user.login({id:d.id,device:"web",intrf:e}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}function m(a){return o(function(n,t){var e={online:a,lastLoginAt:a?moment().format("YYYY-MM-DD HH:mm:ss"):void 0};r.user.update({id:d.id},e).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}function u(){i.remove("motion.token"),d&&(n.localStorage.removeItem("motion.user:"+d.id),n.localStorage.removeItem("motion.authenticationtype"),d=null)}function p(){return"agent"===d.role}function g(){return"admin"===d.role}function v(){return"user"===d.role}function t(e){return!!d&&_.includes(d.permissions,e)}function h(e){var a=[];return o(function(n,t){return e||n(a),r.userProfile.getSections({id:e}).$promise.then(function(e){for(var n=0;n<e.length;n++){var t=e[n];a.push(t.sectionId),t.subsections&&(a=_.concat(a,t.subsections))}return a}).then(function(e){n(e)}).catch(function(e){t("Error retrieving user profile permissions",e)})})}function f(){return o(function(n,t){h(d.userProfileId).then(function(e){d.permissions=e,n()}).catch(function(e){t(e)})})}function b(e){n.localStorage["motion.authenticationtype"]=e}}e.$inject=["$mdDialog","$cookies","$q","$window","$document","api","msNavigationService"],angular.module("app.auth").factory("Auth",e)}(),function(){"use strict";function e(n,e){this.telephones=e,this.closeDialog=function(e){n.hide(e)},e.count&&(this.name=e.rows[0].name)}e.$inject=["$mdDialog","telephones"],angular.module("app.auth").controller("HotDeskDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i){var s;return{request:function(e){var n=t.get("motion.token");return e.headers=e.headers||{},i.isSameOrigin(e.url)&&n&&(e.headers.Authorization="Bearer "+n),e},responseError:function(e){switch(e.status){case 401:t.remove("motion.token"),(s||(s=a.get("$state"))).go("app.login")}return n.reject(e)}}}e.$inject=["$rootScope","$q","$cookies","$injector","Util"],angular.module("app.auth").factory("authInterceptor",e)}(),function(){"use strict";function e(n){var t={safeCb:function(e){return angular.isFunction(e)?e:angular.noop},urlParse:function(e){var n=document.createElement("a");return n.href=e,""===n.host&&(n.href=n.href),n},isSameOrigin:function(i,e){return i=t.urlParse(i),(e=(e=e&&[].concat(e)||[]).map(t.urlParse)).push(n.location),1<=(e=e.filter(function(e){var n=i.hostname===e.hostname,t=i.protocol===e.protocol,a=i.port===e.port||""===e.port&&("80"===i.port||"443"===i.port);return n&&t&&a})).length}};return t}e.$inject=["$window"],angular.module("app.auth").factory("Util",e)}(),function(){"use strict";angular.module("app.core").provider("motionConfig",function(){var t={disableCustomScrollbars:!1,disableMdInkRippleOnMobile:!0,disableCustomScrollbarsOnMobile:!0};this.config=function(e){t=angular.extend({},t,e)},this.$get=function(){var e={getConfig:function(e){if(angular.isUndefined(t[e]))return!1;return t[e]},setConfig:function(e,n){t[e]=n}};return e}})}(),function(){"use strict";function e(e,n,t,a){n.debugEnabled(!0),e.config({tabindex:!1}),a.config({disableCustomScrollbars:!1,disableCustomScrollbarsOnMobile:!0,disableMdInkRippleOnMobile:!0}),t.config({wheelPropagation:!0})}e.$inject=["$ariaProvider","$logProvider","msScrollConfigProvider","motionConfigProvider"],angular.module("app.core").config(e)}(),function(){"use strict";function e(e,n,t){(n.generate(),t.getConfig("disableMdInkRippleOnMobile")&&e.isMobile())&&angular.element("body").attr("md-no-ink",!0);e.isMobile()&&angular.element("html").addClass("is-mobile");var a=e.detectBrowser();if(a){var i=a.browser+" "+a.version+" "+a.os;angular.element("html").addClass(i)}}e.$inject=["msUtils","motionGenerator","motionConfig"],angular.module("app.core").run(e)}(),function(){"use strict";function e(n,e,t,a,i,s){var l=this;function o(){var e=_.filter(l.searchOptions.conditions,["disabled",!1]),o=[],r="";if(_(e).groupBy("name").forEach(function(e){var n=e[0],t=1<e.length,a=n.query.column;if(t){var i=_(e).groupBy(function(e){return e.query.operator}).mapValues(function(e){return _.chain(e).map(function(e){return e.query.value}).flattenDeep().value()}).value(),s=[];_.keys(i).forEach(function(e){var n=i[e],t=e;_.includes(["$between","$in","$notIn"],e)?t+="["+n+"]":n.forEach(function(e){t+="["+e+"]"}),s.push(t)}),r+=a+":="+s.join(":=")}else r=a+":="+n.query.operator+"["+n.query.value+"]";o.push(r)}),0!==o.length){var n="["+l.searchOptions.matchType+"]";return n+=o.join("||")}}function r(){var e=n.localStorage.getItem("motion2."+s+":"+l.currentUser.id);return e?JSON.parse(e):{}}function d(e){n.localStorage.setItem("motion2."+s+":"+l.currentUser.id,JSON.stringify(e))}function c(){if(s){var e=r();e.advancedSearch=_.omit(l.searchOptions,"fields"),d(e)}}function m(){return!!r().advancedSearch}l.currentUser=t.getCurrentUser(),l.searchOptions={matchType:"$and",conditions:[],fields:i},l.toolbarColor=a,l.onInit=function(){if(s){var e=r();e.hasOwnProperty("advancedSearch")&&(l.searchOptions=_.merge(l.searchOptions,e.advancedSearch))}},l.applyFilter=function(){c(),e.hide({apply:!0,value:o()})},l.clearConditions=function(){l.searchOptions.conditions=[],function(){if(s){var e=r();delete e.advancedSearch,e.query&&delete e.query.search,d(e)}}()},l.minimize=function(){c(),e.hide({apply:!m(),value:o()||m()?!_.isEmpty(l.searchOptions.conditions):void 0})},l.close=function(){e.hide({apply:!m(),value:o()||m()?!_.isEmpty(l.searchOptions.conditions):void 0})}}e.$inject=["$window","$mdDialog","Auth","color","fields","storagePath"],angular.module("app.core").controller("AdvancedSearchController",e)}(),function(){"use strict";function e(a){return{restrict:"A",link:function(e,n,t){e.$watch(t.focusOn,function(e){a(function(){e?n[0].focus():n[0].blur()})})}}}e.$inject=["$timeout"],angular.module("app.core").directive("focusOn",e)}(),function(){"use strict";function e(o,l,d){return{restrict:"E",compile:function(e,n){var s;return n.code||(s=e.html(),e.empty()),function(t,a,r){r.code&&(s=t.$eval(r.code));var i=t.$eval(r.shouldInterpolate);l.when(s).then(function(e){if(e){i&&(e=d(e)(t));var n=angular.element('<pre><code class="highlight" ng-non-bindable></code></pre>');a.append(n),o(function(){!function(e,n){var t=n.find("code"),a=e.split("\n"),i=(a=a.filter(function(e){return e.trim().length}))[0].match(/^\s*/)[0],s=new RegExp("^"+i);a=a.map(function(e){return e.replace(s,"").replace(/\s+$/,"")});var o=hljs.highlight(r.language||r.lang,a.join("\n"),!0);o.value=o.value.replace(/=<span class="hljs-value">""<\/span>/gi,"").replace("<head>","").replace("<head/>",""),t.append(o.value).addClass("highlight")}(e,n)},34,!1)}})}}}}e.$inject=["$timeout","$q","$interpolate"],angular.module("app.core").directive("hljs",e)}(),function(){"use strict";function e(a,i,s,o){var r=this;function n(){var a=r.selectedField.options&&!_.isEmpty(r.selectedField.options.extraOperators),i=r.selectedField.options&&!_.isEmpty(r.selectedField.options.excludedOperators);r.availableOperators=_.filter(r.operators,function(n){var e=!n.applyTo||_.includes(n.applyTo,r.selectedField.type);n.isExtra=a&&_.some(r.selectedField.options.extraOperators,function(e){return e===n.type});var t=_.includes(n.excludeFrom,r.selectedField.type)||i&&_.includes(r.selectedField.options.excludedOperators,n.type);if((e||n.isExtra)&&!t)return n})}function t(){!r.value||_.isArray(r.value)&&_.isEmpty(r.value)?r.isValidCondition=!1:r.selectedOperator&&"$between"===r.selectedOperator.type?r.isValidCondition=!(!r.endRangeValue||!r.isValidRange):r.isValidCondition=!0}function e(){"number"===r.selectedField.type?_.isNumber(r.endRangeValue)?r.isValidRange=Number(r.endRangeValue)>Number(r.value):r.isValidRange=!0:"date"===r.selectedField.type&&(r.maxDateRange=moment(r.endRangeValue).subtract(1,"day"),r.isValidRange=!0),t()}function l(){var e=c();r.options.conditions.push(e),u()}function d(){var e=c(),n=_.findIndex(r.options.conditions,"style");r.options.conditions.splice(n,1,e),u(),r.pendingCondition.style=null,r.pendingCondition=void 0}function c(){return{name:r.selectedField.name,operator:a.instant("DASHBOARDS."+r.selectedOperator.translate),value:r.value,endValue:r.endRangeValue,displayValue:m(r.value),displayEndValue:m(r.endRangeValue),query:{column:r.selectedField.column,operator:r.selectedOperator.type,value:function(){var e,n=r.value,t=r.endRangeValue;switch(r.selectedField.type){case"date":var a=moment(n).utcOffset(0,!0).format("YYYY-MM-DD");if("$between"===r.selectedOperator.type){var i=moment(t).utcOffset(0,!0).format("YYYY-MM-DD");e=[a,i]}else e=a;break;case"number":e="$between"===r.selectedOperator.type?[n,t]:n;break;case"multiselect":var s=r.selectedField.options.field||"id";e=_.map(n,s);break;case"select":e=n.id;break;case"autocomplete":e=r.selectedOperator.isExtra?n:n.id;break;default:e=n}return e}()},disabled:!1}}function m(e){var n;if(e){switch(r.selectedField.type){case"date":n=moment(e).format("YYYY-MM-DD");break;case"multiselect":var t=_.map(e,function(e){return e.name});n="$eq"===r.selectedOperator.type?t.join(" or "):t.join(" and ");break;case"select":n=e.name;break;case"autocomplete":n=r.selectedOperator.isExtra?e:e.displayValue;break;default:n=e}return n}}function u(){r.value=null,r.endRangeValue=null,r.minDateRange=null,r.maxDateRange=null,r.isValidCondition=!1}r.operators=r.availableOperators=[{type:"$eq",symbol:"=",translate:"EQUALS",excludeFrom:["multiselect"]},{type:"$ne",symbol:"≠",translate:"IS_NOT_EQUAL",excludeFrom:["multiselect"]},{type:"$in",symbol:"∈",translate:"IS_AMONG",applyTo:["multiselect"]},{type:"$notIn",symbol:"∉",translate:"IS_NOT_AMONG",applyTo:["multiselect"]},{type:"$substring",symbol:"⊃",translate:"CONTAINS",applyTo:["text"]},{type:"$startsWith",symbol:"a..",translate:"STARTS_WITH",applyTo:["text"]},{type:"$endsWith",symbol:"..a",translate:"ENDS_WITH",applyTo:["text"]},{type:"$lt",symbol:"<",translate:"IS_LESS_THAN",applyTo:["date","number"]},{type:"$gt",symbol:">",translate:"IS_GREATER_THAN",applyTo:["date","number"]},{type:"$lte",symbol:"≤",translate:"IS_LESS_THAN_OR_EQUAL_TO",applyTo:["date","number"]},{type:"$gte",symbol:"≥",translate:"IS_GREATER_THAN_OR_EQUAL_TO",applyTo:["date","number"]},{type:"$between",symbol:"≬",translate:"IS_BETWEEN",applyTo:["date","number"]}],r.addCondition=l,r.editCondition=function(e){r.pendingCondition=e,r.pendingCondition.style="md-amber-200-bg",r.selectedField=_.find(r.options.fields,["name",r.pendingCondition.name]),n(),r.selectedOperator=_.find(r.availableOperators,["type",r.pendingCondition.query.operator]),"date"===r.selectedField.type&&"string"==typeof r.pendingCondition.value?(r.value=new Date(r.pendingCondition.value),r.minDateRange=moment(r.value).add(1,"day"),r.endRangeValue=r.pendingCondition.endValue?new Date(r.pendingCondition.endValue):void 0):(r.value=r.pendingCondition.value,r.endRangeValue=r.pendingCondition.endValue);r.isValidRange=!0,r.isValidCondition=!0},r.updateCondition=d,r.cancelUpdateCondition=function(){r.pendingCondition.style=null,r.pendingCondition=void 0},r.setConditionStatus=function(e){e.style=e.disabled?void 0:"chip-disabled",e.disabled=!e.disabled},r.removeCondition=function(){_.isEmpty(r.options.conditions)&&r.clearFilter()},r.getValues=function(){var n=angular.copy(r.selectedField.options.route);if("autocomplete"===r.selectedField.type)for(var e=0;e<Object.keys(n.params).length;e++){var t=Object.keys(n.params)[e];"@autocomplete"===n.params[t]&&(n.params[t]=r.searchText)}{if(!r.selectedField.values)return s[n.model][n.action](n.params).$promise.then(function(e){if("autocomplete"!==r.selectedField.type)return r.selectedField.values=e.rows;var n=r.searchText?_.filter(e.rows,function(e){e.displayValue="";for(var n=0;n<r.selectedField.options.searchFields.length;n++){var t=r.selectedField.options.searchFields[n],a=e[t]||"";e.displayValue+=a+" "}return _.trimEnd(e.displayValue),_.includes(e.displayValue.toLowerCase(),r.searchText.toLowerCase())}):[];return i.when(n)}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:n.model.toUpperCase()+"."+n.action.toUpperCase(),msg:e.data?JSON.stringify(e.data.message):e.toString()})});r.selectedField.values.forEach(function(e){e.translate&&(e.name=a.instant(e.translate))})}},r.onFieldChange=function(){r.value=void 0,r.endRangeValue=void 0,r.searchText=void 0,r.isValidCondition=!1,n(),r.autoSelectOperator=1===r.availableOperators.length,r.autoSelectOperator||(r.selectedOperator=void 0)},r.onOperatorChange=function(e){r.isValidRange=!0,r.selectedOperator&&(e?e.applyTo?0<_.difference(r.selectedOperator.applyTo,e.applyTo).length&&(r.value=null):r.selectedOperator.applyTo&&(r.value=null):r.value=null,"between"!=r.selectedOperator.type&&(r.endRangeValue=null),r.selectedField.options&&!_.isEmpty(r.selectedField.options.extraOperators)&&(r.selectedOperator.isExtra=_.some(r.selectedField.options.extraOperators,function(e){return e===r.selectedOperator.type})));t()},r.onValueChange=function(){r.selectedOperator&&"$between"===r.selectedOperator.type?"number"===r.selectedField.type?e():"date"===r.selectedField.type&&(r.minDateRange=moment(r.value).add(1,"day"),t()):t()},r.checkRange=e,r.handleKeyboardAction=function(){r.pendingCondition?d():l()}}e.$inject=["$translate","$q","api","toasty"],angular.module("app.core").directive("msAdvancedSearch",function(){return{restrict:"E",scope:{options:"=",clearFilter:"&"},controller:e,controllerAs:"vm",bindToController:!0,templateUrl:"app/core/directives/ms-advanced-search/ms-advanced-search.html"}})}(),function(){"use strict";angular.module("app.core").directive("msCard",function(){return{restrict:"E",scope:{templatePath:"=template",card:"=ngModel",vm:"=viewModel"},template:'<div class="ms-card-content-wrapper" ng-include="templatePath" onload="cardTemplateLoaded()"></div>',compile:function(e){return e.addClass("ms-card"),function(e,n){e.cardTemplateLoaded=function(){e.$emit("msCard::cardTemplateLoaded",n)}}}}})}(),function(){"use strict";angular.module("app.core").directive("msChipColor",function(){return{restrict:"A",link:function(e,i,n){n.$observe("msChipColor",function(e){var n=i.parent().parent();if(n.hasClass("md-background-bg md-hue-3")||n.addClass("md-background-bg md-hue-3"),_.isEmpty(e)){var t=n[0].className.split(" "),a=t.indexOf("md-hue-3");t.length=a+1,n[0].className=t.join(" ")}else n.addClass(e)})}}})}(),function(){"use strict";angular.module("app.core").directive("msClickToCall",function(){return{restrict:"E",scope:{type:"=",disabled:"=",target:"=",prefix:"=",license:"="},controller:["$scope","$rootScope","$http","$translate","$document","$mdDialog","Auth","toasty","api",function(t,n,a,i,s,o,e,r,l){function d(e){switch(t.currentUser.showWebBar){case 0:return m("http://127.0.0.1:"+(t.currentUser.phoneBarRemoteControlPort||"9888")+"/api/originate/"+c(e));case 2:return n.$broadcast("webrtc::call",{target:c(e)})}}function c(e){return _.isNil(e)?"":e.replace(/[^\w.+#*\-]+/g,"")}function m(e){return a.get(e).success(function(){r.success({title:"Successful call",msg:"Call properly handled!"})}).error(function(e){r.error({title:"PhoneBar API Error",msg:i.instant("CONTACTMANAGER.ERRORS.PHONEBAR_API")})})}t.currentUser=e.getCurrentUser(),t.privacy=t.currentUser.privacyEnabled,t.showMenu=function(){return t.target&&t.target.indexOf("@")<0&&t.target!=t.currentUser.internal&&t.target!=t.currentUser.name&&(0==t.currentUser.showWebBar&&t.currentUser.phoneBarRemoteControl||2==t.currentUser.showWebBar&&t.license.webrtc)&&!t.disabled},t.call=function(e){return 2!==t.currentUser.showWebBar?(n=e,l.user.getVoicePrefixes({id:t.currentUser.id}).$promise.then(function(e){if(e.count)return o.show({controller:"PrefixDialogController",controllerAs:"vm",templateUrl:"assets/ms-phonebar/prefix/dialog.html",parent:angular.element(s.body),clickOutsideToClose:!0,locals:{prefixes:e,required:t.currentUser.phoneBarPrefixRequired}})}).then(function(e){t.currentUser.phoneBarPrefixRequired?e&&-1!==e&&d(e+n):e&&-1!==e?d(e+n):e||d(n)})):d(e);var n},t.transfer=function(e){switch(t.currentUser.showWebBar){case 0:return m("http://127.0.0.1:"+(t.currentUser.phoneBarRemoteControlPort||"9888")+"/api/transfer?number="+c(e));case 2:n.$broadcast("webrtc::transfer",{target:c(e)})}}}],templateUrl:"app/core/directives/ms-click-to-call/ms-click-to-call.html"}})}(),function(){"use strict";function e(i){return{require:"ngModel",priority:1,link:function(e,n,t,a){a.$formatters.push(i.formatter),a.$parsers.push(i.parser)}}}e.$inject=["msDatepickerFixConfig"],angular.module("app.core").provider("msDatepickerFixConfig",function(){var n={formatter:function(e){return e?""===e?e:new Date(e):""},parser:function(e){return e?moment(e).add(moment(e).utcOffset(),"m").toDate():""}};this.config=function(e){n=angular.extend({},n,e)},this.$get=function(){return n}}).directive("msDatepickerFix",e)}(),function(){"use strict";function e(s){return{restrict:"E",scope:{id:"=",model:"=",element:"=",title:"=",path:"="},replace:!0,link:function(n,e){var t=!1,a={};a.id=n.id,_.isNil(n.path)||(a.path=n.path);var i=document.createElement(n.element);i.setAttribute("preload","none"),i.setAttribute("controls","true"),"audio"===n.element&&i.setAttribute("style","width: 265px;"),"video"===n.element&&i.setAttribute("style","max-width: 500px;"),i.setAttribute("title",n.title),i.setAttribute("src"," "),i.onplay=function(e){t||(t=!0,e.preventDefault(),s[n.model].download(a).$promise.then(function(e){var n=[e.buffer],t=new Blob(n,{type:e.type});i.setAttribute("type",e.type),i.setAttribute("src",URL.createObjectURL(t)),i.play()}).catch(function(e){console.error(e)}))},e.append(i)}}}e.$inject=["api"],angular.module("app.core").directive("msDialogRecording",e)}(),function(){"use strict";function e(i){return{restrict:"A",link:function(t,a){a.bind("click",function(e){var n=i('<div layout="row" class="spinner-overlay" layout-sm="column" layout-align="center center" aria-label="wait"><md-progress-circular md-mode="indeterminate"></md-progress-circular></div>')(t);a.closest("md-dialog").prepend(n)})}}}e.$inject=["$compile"],angular.module("app.core").directive("msDialogSpinner",e)}(),function(){"use strict";function e(){var o=this;function a(e,n,t,a){var i=[];if(0<=t)i.push(e[t]),n.push(e[t]),e.splice(t,1);else{for(var s=0;s<e.length;s++)void 0!==e[s].isValid&&e[s].isValid&&n.push(e[s]);for(s=e.length-1;0<=s;s--)e[s].isValid&&e.splice(s,1);i=n}o.options.transferCallback&&o.options.transferCallback(i,a)}o.canTransfer=function(e,n,t){if(void 0!==e.isValid&&e.isValid)return t?a(n.selectedItems,n.items,n.selectedItems.indexOf(e),t):a(n.items,n.selectedItems,n.items.indexOf(e),t)},o.transfer=a,o.getLine=function(e,n){var t="";if(_.isNil(n))return t;{if(_.isArray(n)){for(var a=0;a<n.length;a++)t+=" "+(e[n[a]]?e[n[a]]:"");return t}return e[n]?e[n]:""}}}angular.module("app.core").directive("msDualMultiselect",function(){return{restrict:"E",scope:{options:"=",readOnly:"=",addDisabled:"<"},controller:e,controllerAs:"vm",bindToController:!0,templateUrl:"app/core/directives/ms-dual-multiselect/ms-dual-multiselect.html"}})}(),function(){"use strict";function e(a){return{restrict:"E",replace:!0,scope:{onReply:"&",ngModel:"=",ctrlMethods:"=",pickerPosition:"=",search:"=",recentEmojis:"=",placeholder:"="},template:'<textarea class="emojionearea"></textarea>',link:function(t,e){var n=e.emojioneArea({pickerPosition:t.pickerPosition,search:t.search,recentEmojis:t.recentEmojis,placeholder:a.instant(t.placeholder||"Type a message"),attributes:{spellcheck:!0},events:{keyup:function(e,n){t.ngModel=this.getText(),t.onReply({event:n,body:this.getText()})},emojibtn_click:function(){t.ngModel=this.getText()}}});t.ngModel&&n[0].emojioneArea.setText(t.ngModel),t.internalControl=t.ctrlMethods||{},t.internalControl.setText=function(e){n[0].emojioneArea.setText(e)},t.internalControl.getText=function(){return n[0].emojioneArea.getText()},t.$watch("ngModel",function(e){e||n[0].emojioneArea.setText("")})}}}e.$inject=["$translate"],angular.module("app.core").directive("msEmojiArea",e)}(),function(){"use strict";angular.module("app.core").directive("msFontFamily",function(){return{restrict:"E",scope:{ngModel:"="},controller:["$scope",function(e){e.fonts=[{option:"Arial",value:"Arial,Helvetica,sans-serif"},{option:"Century Gothic",value:"Century Gothic,Futura,Didact Gothic,san-serif"},{option:"Calibri",value:"Calibri, Verdana, Geneva, sans-serif"},{option:"Comic Sans MS",value:"Comic Sans MS,cursive"},{option:"Courier New",value:"Courier New,Courier,monospace"},{option:"Georgia",value:"Georgia,serif"},{option:"Lucida Sans Unicode",value:"Lucida Sans Unicode,Lucida Grande,sans-serif"},{option:"Tahoma",value:"Tahoma,Geneva,sans-serif"},{option:"Times New Roman",value:"Times New Roman,Times,serif"},{option:"Trebuchet MS",value:"Trebuchet MS,Helvetica,sans-serif"},{option:"Verdana",value:"Verdana,Geneva,sans-serif"}]}],templateUrl:"app/core/directives/ms-font-family/ms-font-family.html"}})}(),function(){"use strict";angular.module("app.core").controller("MsFormWizardController",function(){var n=this;function e(){return n.forms.length}function t(){return 0===n.selectedIndex}function a(){return n.selectedIndex===e()-1}n.forms=[],n.selectedIndex=0,n.registerForm=function(e){n.forms.push(e)},n.previousStep=function(){if(t())return;n.selectedIndex--},n.nextStep=function(){if(a())return;n.selectedIndex++},n.firstStep=function(){n.selectedIndex=0},n.lastStep=function(){n.selectedIndex=e()-1},n.totalSteps=e,n.isFirstStep=t,n.isLastStep=a,n.currentStepInvalid=function(){return angular.isDefined(n.forms[n.selectedIndex])&&n.forms[n.selectedIndex].$invalid},n.previousStepInvalid=function(){return 0<n.selectedIndex&&angular.isDefined(n.forms[n.selectedIndex-1])&&n.forms[n.selectedIndex-1].$invalid},n.formsIncomplete=function(){for(var e=0;e<n.forms.length;e++)if(n.forms[e].$invalid)return!0;return!1},n.resetForm=function(){for(var e=n.selectedIndex=0;e<n.forms.length;e++)n.forms[e].$setPristine(),n.forms[e].$setUntouched()}}).directive("msFormWizard",function(){return{restrict:"E",scope:!0,controller:"MsFormWizardController as msWizard",compile:function(e){return e.addClass("ms-form-wizard"),function(){}}}}).directive("msFormWizardForm",function(){return{restrict:"A",require:["form","^msFormWizard"],compile:function(e){return e.addClass("ms-form-wizard-form"),function(e,n,t,a){var i=a[0],s=a[1];s.registerForm(i)}}}})}(),function(){"use strict";function e(i){return{restrict:"E",scope:{onClose:"&"},transclude:!0,templateUrl:"app/core/directives/ms-info-bar/ms-info-bar.html",link:function(e,n){var t=i.find("ms-info-bar-active"),a="ms-info-bar-active";t.addClass(a),e.removeInfoBar=function(){t.removeClass(a),n.remove(),e.onClose&&e.onClose(),e.$destroy()}}}}e.$inject=["$document"],angular.module("app.core").directive("msInfoBar",e)}(),function(){"use strict";function e(r,a,l,e){var d=this,n={columnCount:5,respectItemOrder:!1,reLayoutDebounce:400,responsive:{md:3,sm:2,xs:1}},t=!0;function i(){t&&e.cancel(t),t=e(function(){!function(){d.containerPos=d.container[0].getBoundingClientRect(),function(){d.columnCount=d.options.columnCount,l("gt-md")?d.columnCount=d.options.columnCount:l("md")?d.columnCount=d.columnCount>d.options.responsive.md?d.options.responsive.md:d.columnCount:l("sm")?d.columnCount=d.columnCount>d.options.responsive.sm?d.options.responsive.sm:d.columnCount:d.columnCount=d.options.responsive.xs;d.columnWidth=d.containerPos.width/d.columnCount}(),r.$broadcast("msMasonry:relayoutStarted"),d.items=d.container.find("ms-masonry-item");for(var e=Array.apply(null,new Array(d.columnCount)).map(function(){return 0}),n=0;n<d.items.length;n++){var t,a,i,s,o=d.items[n];(o=angular.element(o)).scope()&&o.scope().$broadcast("msMasonryItem:startReLayout"),o.css({width:d.columnWidth}),d.options.respectItemOrder?(i=n%d.columnCount,s=e[i]):(s=Math.min.apply(Math,e),i=e.indexOf(s)),e[i]=s+o[0].getBoundingClientRect().height,t=Math.round(i*d.columnWidth),a=s,o.css({transform:"translate3d("+t+"px,"+a+"px,0px)"}),o.addClass("placed"),o.scope()&&o.scope().$broadcast("msMasonryItem:finishReLayout")}}(),r.$broadcast("msMasonry:relayoutFinished")},d.options.reLayoutDebounce)}d.options=null,d.container=[],d.containerPos="",d.columnWidth="",d.items=[],d.reLayout=i,d.initialize=function(){d.options=d.options?angular.extend(n,d.options):n,r.$watch(function(){return d.container.width()},function(e,n){e!==n&&i()})},d.waitImagesLoaded=function(e,n){if("undefined"!=typeof imagesLoaded){var t=a.imagesLoaded(e);t.on("done",function(){n()})}else n()},r.$on("msMasonry:relayout",function(){i()})}function n(o){return{restrict:"AEC",controller:"msMasonryController",compile:function(i,s){return{pre:function(e,n,t,a){a.options=angular.fromJson(s.options||"{}"),a.container=i},post:function(e,n,t,a){o(function(){a.initialize()})}}}}}e.$inject=["$scope","$window","$mdMedia","$timeout"],n.$inject=["$timeout"],angular.module("app.core").controller("msMasonryController",e).directive("msMasonry",n).directive("msMasonryItem",function(){return{restrict:"AEC",require:"^msMasonry",priority:1,link:function(e,n,t,a){a.waitImagesLoaded(n,function(){a.reLayout()}),e.$on("msMasonryItem:finishReLayout",function(){e.$watch(function(){return n.height()},function(e,n){e!==n&&a.reLayout()})}),n.on("$destroy",function(){a.reLayout()})}}})}(),function(){"use strict";function e(t,e,a,i){var s=this;function o(e,n){s.selectedPalette=e,s.selectedHues=n}function r(){o(!(s.selectedColor={palette:"",hue:"",class:""}),!1),d()}function l(e,n){s.selectedColor={palette:e,hue:n,class:"md-"+e+"-"+n+"-bg",bgColorValue:i.rgba(s.palettes[e][n].value),fgColorValue:i.rgba(s.palettes[e][n].contrast)},"obj"!==s.msModelType||angular.equals(s.selectedColor,s.modelCtrl.$viewValue)||d(),o(e,s.palettes[e]),t.$selectedColor=s.selectedColor}function d(){"class"===s.msModelType?s.modelCtrl.$setViewValue(s.selectedColor.class):"obj"===s.msModelType&&s.modelCtrl.$setViewValue(s.selectedColor)}s.palettes=e,s.selectedPalette=!1,s.selectedHues=!1,t.$selectedColor={},s.activateHueSelection=o,s.selectColor=function(e,n){l(e,n),d(),a.hide()},s.removeColor=r,t.$watch("ngModel",function(){if(!s.modelCtrl.$viewValue||""===s.modelCtrl.$viewValue)return void r();var e,n;if("class"===s.msModelType){var t=s.modelCtrl.$viewValue.split("-");n=5<=t.length?(e=t[1]+"-"+t[2],t[3]):(e=t[1],t[2])}else"obj"===s.msModelType&&(e=s.modelCtrl.$viewValue.palette,n=s.modelCtrl.$viewValue.hue||500);l(e,n)})}e.$inject=["$scope","$mdColorPalette","$mdMenu","motionGenerator"],angular.module("app.core").controller("msMaterialColorPickerController",e).directive("msMaterialColorPicker",function(){return{require:["msMaterialColorPicker","ngModel"],restrict:"E",scope:{ngModel:"=",msModelType:"@?"},controller:"msMaterialColorPickerController as vm",transclude:!0,templateUrl:"app/core/directives/ms-material-color-picker/ms-material-color-picker.html",link:function(e,n,t,a,i){var s=a[0];s.modelCtrl=a[1],s.msModelType=e.msModelType||"class",i(e,function(e){(e=e.filter(function(e,n){return 1===n.nodeType})).length&&n.find("ms-color-picker-button").replaceWith(e)})}}})}(),function(){"use strict";function e(p,g,v){return{restrict:"A",link:function(e,n,t){var a="true"===t.msNavIsFolded,i=!1,s=angular.element(p[0].body),o=angular.element('<div id="ms-nav-fold-open-overlay"></div>'),r=angular.element('<div id="ms-nav-fold-close-overlay"></div>'),l=n.parent();function d(){s.addClass("ms-nav-folded"),g.$broadcast("msNav::forceCollapse"),n.scrollTop(0),l.append(o),o.on("mouseenter touchstart",function(e){c(e),i=!0})}function c(e){angular.isDefined(e)&&e.preventDefault(),s.addClass("ms-nav-folded-open"),g.$broadcast("msNav::expandMatchingToggles"),l.find(o).remove(),l.parent().append(r),r.on("mouseenter touchstart",function(e){m(e),i=!1})}function m(e){angular.isDefined(e)&&e.preventDefault(),g.$broadcast("msNav::forceCollapse"),n.scrollTop(0),s.removeClass("ms-nav-folded-open"),l.parent().find(r).remove(),l.append(o),o.on("mouseenter touchstart",function(e){c(e),i=!0})}function u(){s.removeClass("ms-nav-folded ms-nav-folded-open"),g.$broadcast("msNav::expandMatchingToggles"),n.off("mouseenter mouseleave")}v.setFoldable(e,n,a),a?d():u(),e.toggleFold=function(){(a=!a)?d():u()},e.openFolded=c,e.closeFolded=m,e.isNavFoldedOpen=function(){return i},e.$on("$destroy",function(){o.off("mouseenter touchstart"),r.off("mouseenter touchstart"),n.off("mouseenter mouseleave")})}}}function n(t,a,i){return{restrict:"E",scope:{},controller:"MsNavController",compile:function(e){return e.addClass("ms-nav"),function(e){t.$broadcast("msNav::expandMatchingToggles");var n=t.$on("$stateChangeSuccess",function(){t.$broadcast("msNav::expandMatchingToggles"),a.when("navigation").then(function(e){e.close(),i.isNavFoldedOpen()&&i.closeFolded()})});e.$on("$destroy",function(){n()})}}}}function t(m,u,p,g){return{restrict:"A",require:"^msNav",scope:!0,compile:function(e,n){return e.addClass("ms-nav-toggle"),angular.isUndefined(n.collapsed)&&(n.collapsed=!0),e.attr("collapsed",n.collapsed),function(a,i,e,t){var s={expanded:"expanded",expandAnimation:"expand-animation",collapseAnimation:"collapse-animation"},n=i.find("a"),o=[],r=/\(.*\)/g;function l(){return"true"===i.attr("collapsed")}function d(){var e=u.defer();if(!l())return e.reject({error:!0}),e.promise;i.attr("collapsed",!1);var n=angular.element(i.find("ms-nav-toggle-items")[0]);n.css({position:"absolute",visibility:"hidden",display:"block",height:"auto"});var t=n[0].offsetHeight;return n.css({position:"",visibility:"",display:"",height:""}),a.$evalAsync(function(){p.animate(n,{display:"block",height:"0px"},{height:t+"px"},s.expandAnimation).then(function(){n.addClass(s.expanded),n.css({height:""}),e.resolve({success:!0})})}),e.promise}function c(){var e=u.defer();if(l())return e.reject({error:!0}),e.promise;i.attr("collapsed",!0);var n=angular.element(i.find("ms-nav-toggle-items")[0]),t=n[0].offsetHeight;return a.$evalAsync(function(){p.animate(n,{height:t+"px"},{height:"0px"},s.collapseAnimation).then(function(){n.removeClass(s.expanded),n.css({display:"",height:""}),e.resolve({success:!0})})}),e.promise}angular.forEach(n,function(e){var n=angular.element(e).attr("ui-sref");angular.isUndefined(n)||(n=n.replace(r,""),o.push(n))}),t.setToggleItem(i,a),i.children(".ms-nav-button").on("click",function(){if(t.isDisabled())return;t.disable(),l()?(t.clearLockedItems(),a.$emit("msNav::pushToLockedList"),m.$broadcast("msNav::collapse"),d().then(function(){t.enable()})):a.$broadcast("msNav::forceCollapse")}),a.$on("$destroy",function(){i.children(".ms-nav-button").off("click")}),a.$on("msNav::collapse",function(){var e=t.getLockedItems(),n=!1;angular.forEach(e,function(e){angular.equals(e.scope,a)&&(n=!0)}),n||c().then(function(){t.enable()})}),a.$on("msNav::forceCollapse",function(){c().then(function(){t.enable()})}),a.$on("msNav::expandMatchingToggles",function(){var n=g.current.name,t=!1;angular.forEach(o,function(e){n===e&&(t=!0)}),t?d():c()}),a.$on("msNav::pushToLockedList",function(){t.setLockedItem(i,a)})}}}}e.$inject=["$document","$rootScope","msNavFoldService"],n.$inject=["$rootScope","$mdComponentRegistry","msNavFoldService"],t.$inject=["$rootScope","$q","$animate","$state"],angular.module("app.core").factory("msNavFoldService",function(){var t={};return{setFoldable:function(e,n){t={scope:e,element:n}},isNavFoldedOpen:function(){return t.scope.isNavFoldedOpen()},toggleFold:function(){t.scope.toggleFold()},openFolded:function(){t.scope.openFolded()},closeFolded:function(){t.scope.closeFolded()}}}).directive("msNavIsFolded",e).controller("MsNavController",function(){var e=this,n=!1,t=[],a=[];e.isDisabled=function(){return n},e.enable=function(){n=!1},e.disable=function(){n=!0},e.setToggleItem=function(e,n){t.push({element:e,scope:n})},e.getLockedItems=function(){return a},e.setLockedItem=function(e,n){a.push({element:e,scope:n})},e.clearLockedItems=function(){a=[]}}).directive("msNav",n).directive("msNavTitle",function(){return{restrict:"A",compile:function(e){return e.addClass("ms-nav-title"),function(){}}}}).directive("msNavButton",function(){return{restrict:"AE",compile:function(e){return e.addClass("ms-nav-button"),function(){}}}}).directive("msNavToggle",t)}(),function(){"use strict";function e(e,n){e.root?this.navigation=n.getNavigation(e.root):this.navigation=n.getNavigation(),this.toggleHorizontalMobileMenu=function(){angular.element("body").toggleClass("ms-navigation-horizontal-mobile-menu-active")},n.sort()}function n(c,m,u,p){return{restrict:"E",scope:{folded:"=",root:"@"},controller:"MsNavigationController as vm",templateUrl:"app/core/directives/ms-navigation/templates/vertical.html",transclude:!0,compile:function(e){return e.addClass("ms-navigation"),function(e,n){var t=angular.element("body"),a=angular.element('<div id="ms-navigation-fold-expander"></div>'),i=angular.element('<div id="ms-navigation-fold-collapser"></div>'),s=u("navigation");function o(e){if(p.setFolded(e),e)c.$broadcast("msNavigation::collapse"),t.addClass("ms-navigation-folded"),r();else{var n=p.getActiveItem();n&&n.scope.$emit("msNavigation::stateMatched"),t.removeClass("ms-navigation-folded ms-navigation-folded-open"),i.remove()}}function r(){n.parent().append(a),m(function(){a.on("mouseenter touchstart",l)})}function l(e){e&&e.preventDefault(),p.setFoldedOpen(!0);var n=p.getActiveItem();n&&n.scope.$emit("msNavigation::stateMatched"),t.addClass("ms-navigation-folded-open"),a.remove(),t.find("#main").append(i),i.on("mouseenter touchstart",d)}function d(e){e&&e.preventDefault(),p.setFoldedOpen(!1),c.$broadcast("msNavigation::collapse"),t.removeClass("ms-navigation-folded-open"),i.remove(),r()}p.setNavigationScope(e),function(){null===p.getFolded()&&p.setFolded(e.folded);p.getFolded()&&(m(function(){c.$broadcast("msNavigation::collapse")}),t.addClass("ms-navigation-folded"),r())}(),e.$watch(function(){return s.isLockedOpen()},function(e,n){if(!angular.isUndefined(e)&&!angular.equals(e,n)&&p.getFolded())if(e)c.$broadcast("msNavigation::collapse");else{var t=p.getActiveItem();t&&t.scope.$emit("msNavigation::stateMatched")}}),e.$watch("folded",function(e,n){angular.isUndefined(e)||angular.equals(e,n)||o(e)}),e.toggleFolded=function(){o(!p.getFolded())},e.$on("$stateChangeStart",function(){s.close()}),e.$on("$destroy",function(){i.off("mouseenter touchstart"),a.off("mouseenter touchstart")})}}}}function t(t,e,a,i,n,s){var o=this;o.element=e,o.node=t.node,o.hasChildren=void 0,o.collapsed=void 0,o.collapsable=void 0,o.group=void 0,o.animateHeightClass="animate-height",o.toggleCollapsed=function(){o.collapsed?o.expand():o.collapse()},o.collapse=function(){var e=o.element.children("ul"),n=e[0].offsetHeight;t.$evalAsync(function(){o.collapsed=!0,o.element.addClass("collapsing"),i.animate(e,{display:"block",height:n+"px"},{height:"0px"},o.animateHeightClass).then(function(){e.css({display:"",height:""}),o.element.removeClass("collapsing")}),t.$broadcast("msNavigation::collapse")})},o.expand=function(){var e=o.element.children("ul");e.css({position:"absolute",visibility:"hidden",display:"block",height:"auto"});var n=e[0].offsetHeight;e.css({position:"",visibility:"",display:"",height:""}),t.$evalAsync(function(){o.collapsed=!1,o.element.addClass("expanding"),i.animate(e,{display:"block",height:"0px"},{height:n+"px"},o.animateHeightClass).then(function(){e.css({height:""}),o.element.removeClass("expanding")}),a.$broadcast("msNavigation::collapse",o.node._path)})},o.getClass=function(){return o.node.class},o.isHidden=function(){if(angular.isDefined(o.node.hidden)&&angular.isFunction(o.node.hidden))return o.node.hidden();return!1},function(){o.hasChildren=0<o.node.children.length,o.group=!(!angular.isDefined(o.node.group)||!0!==o.node.group),!o.hasChildren||o.group?o.collapsable=!1:o.collapsable=!(!angular.isUndefined(o.node.collapsable)&&"boolean"==typeof o.node.collapsable&&!0!==o.node.collapsable);o.collapsable?o.collapsed=!(!angular.isUndefined(o.node.collapsed)&&"boolean"==typeof o.node.collapsed&&!0!==o.node.collapsed):o.collapsed=!1;if(o.node.state===n.current.name||n.includes(o.node.state)){if(angular.isDefined(o.node.stateParams)&&angular.isDefined(n.params)&&!angular.equals(o.node.stateParams,n.params))return;t.$emit("msNavigation::stateMatched"),s.setActiveItem(o.node,t)}t.$on("msNavigation::stateMatched",function(){o.collapsable&&o.collapsed&&t.$evalAsync(function(){o.collapsed=!1})}),t.$on("msNavigation::collapse",function(e,n){if(!o.collapsed&&o.collapsable)if(angular.isUndefined(n))o.collapse();else{var t=n.split("."),a=[],i=s.getActiveItem();if(i&&(a=i.node._path.split(".")),-1<t.indexOf(o.node._id))return;if(-1<a.indexOf(o.node._id))return;o.collapse()}}),t.$on("$stateChangeSuccess",function(){if(o.node.state===n.current.name){if(angular.isDefined(o.node.stateParams)&&angular.isDefined(n.params)&&!angular.equals(o.node.stateParams,n.params))return;s.setActiveItem(o.node,t),a.$broadcast("msNavigation::collapse",o.node._path)}if(n.includes(o.node.state)){if(angular.isDefined(o.node.stateParams)&&angular.isDefined(n.params)&&!angular.equals(o.node.stateParams,n.params))return;t.$emit("msNavigation::stateMatched")}})}()}function a(n){return{restrict:"E",scope:{root:"@"},controller:"MsNavigationController as vm",templateUrl:"app/core/directives/ms-navigation/templates/horizontal.html",transclude:!0,compile:function(e){return e.addClass("ms-navigation-horizontal"),function(e){n.setNavigationScope(e)}}}}function i(t,e,n,a,i){var s=this;s.element=e,s.node=t.node,s.hasChildren=void 0,s.group=void 0,s.getClass=function(){return s.node.class},function(){if(s.isActive=!1,s.hasChildren=0<s.node.children.length,s.group=!(!angular.isDefined(s.node.group)||!0!==s.node.group),s.node.state===a.current.name||a.includes(s.node.state)){if(angular.isDefined(s.node.stateParams)&&angular.isDefined(a.params)&&!angular.equals(s.node.stateParams,a.params))return;t.$emit("msNavigation::stateMatched"),i.setActiveItem(s.node,t)}t.$on("msNavigation::stateMatched",function(){s.hasChildren&&t.$evalAsync(function(){s.isActive=!0})}),t.$on("msNavigation::clearActive",function(){if(s.hasChildren){var e=[],n=i.getActiveItem();n&&(e=n.node._path.split(".")),-1<e.indexOf(s.node._id)?t.$evalAsync(function(){s.isActive=!0}):t.$evalAsync(function(){s.isActive=!1})}}),t.$on("$stateChangeSuccess",function(){if(s.node.state===a.current.name||a.includes(s.node.state)){if(angular.isDefined(s.node.stateParams)&&angular.isDefined(a.params)&&!angular.equals(s.node.stateParams,a.params))return;i.setActiveItem(s.node,t),n.$broadcast("msNavigation::clearActive")}})}()}function s(i){return{restrict:"A",require:"^msNavigationHorizontalNode",compile:function(e){return e.addClass("ms-navigation-horizontal-item"),function(e,n,t,a){n.on("click",function(){if(!a.hasChildren||i("gt-md"))return;n.toggleClass("expanded")}),e.$on("$destroy",function(){n.off("click")})}}}}e.$inject=["$scope","msNavigationService"],n.$inject=["$rootScope","$timeout","$mdSidenav","msNavigationService"],t.$inject=["$scope","$element","$rootScope","$animate","$state","msNavigationService"],a.$inject=["msNavigationService"],i.$inject=["$scope","$element","$rootScope","$state","msNavigationService"],s.$inject=["$mdMedia"],angular.module("app.core").provider("msNavigationService",function(){var r=angular.injector(["ng"]).get("$log"),l=[];function d(e,n){if(angular.isString(e)){for(var t=e.split("."),a=t[t.length-1],i=function(e){var n=l;if(1===e.length)return n;e.pop();for(var t=0;t<e.length;t++){for(var a=e[t],i=!0,s=0;s<n.length;s++)if(n[s]._id===a){n=n[s].children,i=!1;break}if(i){var o={_id:a,_path:e.join("."),title:a,weight:1,children:[]};n.push(o),n=o.children}}return n}(t),s=!1,o=0;o<i.length;o++)if(i[o]._id===a){s=i[o];break}s?(angular.extend(s,n),s.uisref=u(s)):(n.children=[],!angular.isUndefined(n.weight)&&angular.isNumber(n.weight)||(n.weight=1),n._id=a,n._path=e,n.uisref=u(n),i.push(n))}else r.error("path must be a string (eg. `dashboard.project`)")}function c(e){if(angular.isString(e)){for(var n=l,t=e.split("."),a=0;a<t.length;a++)for(var i=t[a],s=0;s<n.length;s++)if(n[s]._id===i){if(n[s]._path===e)return n.splice(s,1),!0;n=n[s].children;break}return!1}r.error("path must be a string (eg. `dashboard.project`)")}function m(e){e||(e=l).sort(a);for(var n=0;n<e.length;n++){var t=e[n].children;1<t.length&&t.sort(a),0<t.length&&m(t)}}function a(e,n){return parseInt(e.weight)-parseInt(n.weight)}function u(e){var n="";return angular.isDefined(e.state)&&(n=e.state,angular.isDefined(e.stateParams)&&angular.isObject(e.stateParams)&&(n=n+"("+angular.toJson(e.stateParams)+")")),n}this.saveItem=d,this.deleteItem=c,this.sortByWeight=m,this.$get=function(){var t=null,n=null,a=null,i=null,e={saveItem:d,deleteItem:c,sort:m,clearNavigation:function(){l=[],n&&(n.vm.navigation=l)},setActiveItem:function(e,n){t={node:e,scope:n}},getActiveItem:function(){return t},getNavigation:s,getFlatNavigation:o,setNavigationScope:function(e){n=e},setFolded:function(e){a=e},getFolded:function(){return a},setFoldedOpen:function(e){i=e},getFoldedOpen:function(){return i},toggleFolded:function(){n.toggleFolded()},getSectionId:function(n,t){var e=o(),a=_.find(e,function(e){return t?e.route===n&&e.title.toLowerCase()===t.toLowerCase():e.route===n});return a?a.id:0}};return e;function s(e){if(e){for(var n=0;n<l.length;n++)if(l[n]._id===e)return[l[n]];return null}return l}function o(e){var n=s(e);return function e(n){var t=[];for(var a=0;a<n.length;a++){var i=angular.copy(n[a]);i.children=[],t.push(i),0<n[a].children.length&&(t=t.concat(e(n[a].children)))}return t}(n)}}}).controller("MsNavigationController",e).directive("msNavigation",n).controller("MsNavigationNodeController",t).directive("msNavigationNode",function(){return{restrict:"A",bindToController:{node:"=msNavigationNode"},controller:"MsNavigationNodeController as vm",compile:function(e){return e.addClass("ms-navigation-node"),function(e,n,t,a){n.addClass(a.getClass()),a.group&&n.addClass("group")}}}}).directive("msNavigationItem",function(){return{restrict:"A",require:"^msNavigationNode",compile:function(e){return e.addClass("ms-navigation-item"),function(e,n,t,a){a.collapsable&&n.on("click",a.toggleCollapsed),e.$on("$destroy",function(){n.off("click")})}}}}).directive("msNavigationHorizontal",a).controller("MsNavigationHorizontalNodeController",i).directive("msNavigationHorizontalNode",function(){return{restrict:"A",bindToController:{node:"=msNavigationHorizontalNode"},controller:"MsNavigationHorizontalNodeController as vm",compile:function(e){return e.addClass("ms-navigation-horizontal-node"),function(e,n,t,a){n.addClass(a.getClass()),a.group&&n.addClass("group")}}}}).directive("msNavigationHorizontalItem",s)}(),function(){"use strict";function e(u,t,p,e,a,i,n,g,s,v,h,f,b,o,A){var E=this,r=["ringingId","speakerId","microphoneId","ringingVolume","speakerVolume","microphoneVolume","ringingMute","speakerMute","microphoneMute"],l=JSON.parse(n.localStorage.getItem("motion2.user:"+E.conf.id))||{webrtc:{ringingVolume:.5,speakerVolume:.5,microphoneVolume:1,ringingMute:!1,speakerMute:!1,microphoneMute:!1}};function d(l){var d,c,m;return E.initDeviceInProgress=!0,navigator.mediaDevices.getUserMedia({audio:!0}).then(function(e){return E.soundPlayer.setAttribute("src","assets/ms-phonebar/sounds/silence.ogg"),E.soundPlayer.play().catch(function(e){console.log(e.message)}),e.getTracks().forEach(function(e){e.stop()}),navigator.mediaDevices.enumerateDevices()}).then(function(e){var n=_.filter(e,function(e){return"audioinput"===e.kind&&"default"!==e.deviceId&&"communications"!==e.deviceId});if(0<n.length){var t=_.find(e,function(e){return"default"===e.deviceId&&"audioinput"===e.kind});if(m=_.find(n,function(e){return e.groupId===t.groupId}),E.conf.microphoneId&&!l){var a=_.find(n,function(e){return e.deviceId===E.conf.microphoneId});a&&(m=a)}E.conf.microphoneId=m.deviceId}else v.warning({title:g.instant("TOOLBAR.WARNING"),msg:g.instant("TOOLBAR.WEBRTC_MICROPHONE_NOT_AVAILABLE"),clickToClose:!0,showClose:!0,shake:!1,timeout:!1,position:"bottom-right"});E.conf.microphoneId?E.sessionConf.mediaConstraints.audio={deviceId:E.conf.microphoneId}:E.sessionConf.mediaConstraints.audio=!0,R("microphone",!1);var i=_.filter(e,function(e){return"audiooutput"===e.kind&&"default"!==e.deviceId&&"communications"!==e.deviceId});if(0<i.length){var s=_.find(e,function(e){return"default"===e.deviceId&&"audiooutput"===e.kind});if(c=d=_.find(i,function(e){return e.groupId===s.groupId}),E.conf.speakerId&&!l){var o=_.find(i,function(e){return e.deviceId===E.conf.speakerId});o&&(c=o)}if(E.conf.speakerId=c.deviceId,E.conf.ringingId&&!l){var r=_.find(i,function(e){return e.deviceId===E.conf.ringingId});r&&(d=r)}E.conf.ringingId=d.deviceId}else v.warning({title:g.instant("TOOLBAR.WARNING"),msg:g.instant("TOOLBAR.WEBRTC_SPEAKER_NOT_AVAILABLE"),clickToClose:!0,showClose:!0,shake:!1,timeout:!1,position:"bottom-right"});return R("speaker",!1)}).then(function(){return R("ringing",!1)}).then(function(){if(jabra)return jabra.init().then(function(){return E.isJabraInitialized=!0,jabra.getInstallInfo()}).then(function(){return jabra.getUserDeviceMediaExt()}).then(function(e){m&&c&&d&&e&&_.includes([m.groupId,c.groupId,d.groupId],e.deviceInfo.browserGroupId)&&(console.log("Jabra library correctly initialized and device correctly installed"),E.isJabraEnabled=!0,jabra.onHook(),jabra.addEventListener("acceptcall",function(e){var n=_.last(E.sessions);n?"incoming"===n.direction&&n.isInProgress()?E.answer(n):console.error("Unable to find a valid call to answer",e):console.error("Unable to answer the call",e)}.bind(this)),jabra.addEventListener("mute",function(){R("microphone",E.conf.microphoneMute=!0)}.bind(this)),jabra.addEventListener("unmute",function(){E.conf.microphoneMute=!1,R("microphone",!0)}.bind(this)),jabra.addEventListener("flash",function(){E.jabraSession.localHold?E.unhold(E.jabraSession):E.hold(E.jabraSession)}.bind(this)),jabra.addEventListener("endcall",function(){new Promise(function(e){for(var n=null,t=0;t<E.sessions.length;t++)_.has(E.sessions[t],"localHold")&&E.sessions[t].localHold||(n=E.sessions[t]);e(n)}).then(function(e){null!==e&&E.terminate(e)})}.bind(this)))}).catch(function(e){console.warn("Error initializing Jabra integration",e)})}).catch(function(e){console.error("Unable to init media devices",e),"NotFoundError"===e.name&&v.warning({title:g.instant("TOOLBAR.WARNING"),msg:g.instant("TOOLBAR.WEBRTC_AUDIO_DEVICES_NOT_AVAILABLE"),clickToClose:!0,showClose:!0,shake:!1,timeout:!1,position:"bottom-right"})}).finally(function(){E.initDeviceInProgress=!1,y(),DetectRTC.load(function(){E.conf.hasMicrophone=DetectRTC.hasMicrophone,E.conf.hasSpeakers="Chrome"!==DetectRTC.browser.name&&"Edge"!==DetectRTC.browser.name&&"Opera"!==DetectRTC.browser.name||DetectRTC.hasSpeakers,E.conf.isWebRTCSupported=DetectRTC.isWebRTCSupported,E.conf.osName=DetectRTC.osName,E.conf.osVersion=DetectRTC.osVersion,E.conf.browserName=DetectRTC.browser.name,E.conf.browserVersion=DetectRTC.browser.version,E.conf.license&&E.conf.isWebRTCSupported&&E.conf.hasMicrophone&&E.conf.hasSpeakers&&"https"===E.conf.protocol&&("chrome"===E.conf.browserName.toLowerCase()||"opera"===E.conf.browserName.toLowerCase()||"safari"===E.conf.browserName.toLowerCase())?E.register||E.ua.start():E.conf.license||v.warning({title:g.instant("TOOLBAR.WARNING"),msg:g.instant("TOOLBAR.WEBRTC_LICENSE_NOT_ENABELD"),clickToClose:!0,showClose:!0,shake:!1,timeout:!1,position:"bottom-right"})}.bind(this))})}function y(){l.webrtc=_.pick(E.conf,r),n.localStorage.setItem("motion2.user:"+E.conf.id,JSON.stringify(l))}function S(e,n,t){console.debug("addCall -> target, inbound, fullname",e,n,t),E.calls.unshift({target:e,fullname:t||e,inbound:n,time:moment().format("HH:mm")}),50<E.calls.length&&E.calls.pop()}function T(e){console.debug("answer -> session",e),e.notification&&(e.notification.close(),e.notification=null),E.conf.microphoneId?E.sessionConf.mediaConstraints.audio={deviceId:E.conf.microphoneId}:E.sessionConf.mediaConstraints.audio=!0,e.answer(E.sessionConf),E.isJabraEnabled&&(jabra.offHook(),E.jabraSession=e)}function I(e,n){console.debug("terminate -> session",e),e.notification&&(e.notification.close(),e.notification=null);var t={};if(n?t.status_code=n:e.isEstablished()||(t.status_code=603),e.terminate(t),E.isJabraEnabled)if(0===E.sessions.length)e.localHold&&jabra.resume(),jabra.onHook(),E.jabraSession=null;else{var a=_.last(E.sessions);a.localHold?(jabra.onHook(),jabra.hold(),E.jabraSession=a):jabra.offHook()}}function C(t){return console.debug("getVoiceChannels -> session",t),h.rpc.getVoiceChannels().$promise.then(function(e){var n=_.find(e.rows,function(e){return e.sipcalllinkedid===t.call_id?e:e.sipcalluniqueid===t.call_id?e:null});n&&(t.monitor=n.monitor,t.uniqueid=n.uniqueid,t.monitors=n.monitors)})}function O(e){console.debug("onAddstream -> data",e),this.remotePlayer.srcObject=e.stream,this.remotePlayer.play()}function w(){E.canGoInConference=!1,E.isInConference=!1,E.currentconferenceSessions=[]}function R(e,n){switch(e){case"ringing":E.soundPlayer.muted=E.conf.ringingMute,E.conf.ringingId&&E.soundPlayer.setSinkId(E.conf.ringingId).then(function(){E.soundPlayer.volume=E.conf.ringingVolume}).then(function(){n&&y()}).catch(function(e){console.info(e.message,E.conf.ringingId)});break;case"speaker":E.remotePlayer.muted=E.conf.speakerMute,E.conf.speakerId&&E.remotePlayer.setSinkId(E.conf.speakerId).then(function(){E.remotePlayer.volume=E.conf.speakerVolume}).then(function(){n&&y()}).catch(function(e){console.info(e.message,E.conf.speakerId)});break;case"microphone":for(var t=0;t<E.sessions.length;t+=1)E.conf.microphoneMute?E.sessions[t].mute():E.sessions[t].unmute();jabra&&E.isJabraEnabled&&(E.conf.microphoneMute?jabra.mute():jabra.unmute()),n&&y();break;default:console.log("unknown device")}}function c(){E.target="",document.getElementById("ms-target").blur(),document.getElementById("ms-target").value="",u.$broadcast("angucomplete-alt:clearInput","ms-target-wrap")}function m(n){return h.user.getVoicePrefixes({id:E.conf.id}).$promise.then(function(e){if(e.count)return a.show({controller:"PrefixDialogController",controllerAs:"vm",templateUrl:"assets/ms-phonebar/prefix/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{prefixes:e,required:E.conf.phoneBarPrefixRequired}})}).then(function(e){if(E.conf.phoneBarPrefixRequired){if(e&&-1!==e)return e+n}else{if(e&&-1!==e)return e+n;if(!e)return n}})}function x(){if(E.isInConference){var e=E.sessions[0].connection.getReceivers()[0],n=E.sessions[1].connection.getReceivers()[0],t=new MediaStream;t.addTrack(e.track),t.addTrack(n.track);var a=document.getElementById("remote-audio");a.srcObject=t;var i=a.play();void 0!==i&&i.then(function(){}).catch(function(e){console.log(e)})}}function N(e,n,t,a){return console.debug("onReferCallback -> session, textContent, position, delay",e,n,t,a),function(){i.show(i.simple().textContent(n).position(t).hideDelay(a)),I(e)}}function D(n){return console.debug("findSessionBySessionId -> sessionId, vm_pb.sessions",n,E.sessions),_.find(E.sessions,function(e){return e.call_id==n})}function P(e,n){return console.debug("callCallback -> url, params",e,n),s({url:e,method:"GET",params:n})}e(function(){},999),E.currentUser=b.getCurrentUser(),E.direction="right",E.selectedMode="md-scale",E.target="",E.showDialpad=!1,E.soundPlayer=document.getElementById(E.conf.soundPlayerId),E.remotePlayer=document.getElementById(E.conf.remotePlayerId),E.soundPlayer.volume=1,E.sessionConf={mediaConstraints:{audio:!0,video:!1},pcConfig:{iceServers:[]}},E.sessions=[],E.calls=[],E.callbackQueue=[],E.canGoInConference=!1,E.isInConference=!1,E.currentConferenceSessions=[],E.ua=new JsSIP.UA({sockets:[new JsSIP.WebSocketInterface("wss://"+E.conf.host+":"+E.conf.wssPort+"/ws")],uri:new JsSIP.URI("sip",E.conf.name,E.conf.host,5060,null,null).toString(),authorization_user:E.conf.name,ha1:E.conf.ha1,realm:E.conf.realm,user_agent:E.conf.ua,session_timers_refresh_method:"invite",register_expires:E.conf.phoneBarExpires||60,register:!0}),E.conf=_.merge(l.webrtc,E.conf),E.initDeviceInProgress=!1,E.isJabraEnabled=!1,E.isJabraInitialized=!1,E.jabraSession=null,E.jabraClicked=!1,E.buttonClicked=!1,E.originateInProgress=!1,t.bind("keyup",function(e){switch(e.keyCode){case 27:p(function(){E.showDialpad=!1})}}),E.$onInit=function(){d(!1),navigator.mediaDevices.ondevicechange=function(){E.initDeviceInProgress||(E.initDeviceInProgress=!0,jabra&&E.isJabraInitialized?jabra.shutdown().then(function(){E.isJabraInitialized=!1,d(!(E.isJabraEnabled=!1))}).catch(function(e){console.error("Unable to shutdown Jabra library",e)}):d(!0))};var e=[h.network.get({type:"turn",nolimit:!0}).$promise,h.network.get({type:"stun",nolimit:!0}).$promise];Promise.all(e).then(function(e){var n=e[0].rows,t=e[1].rows,a=[],i=[];t.forEach(function(e){i.push("stun:"+e.value)}),a.push({urls:i}),n.forEach(function(e){var n={urls:"turn:"+e.value};e.username&&(n.username=e.username),e.password&&(n.credential=e.password),a.push(n)}),E.sessionConf.pcConfig={iceServers:a}}),this.ua.on("registered",function(){this.registered=!0}.bind(this)),this.ua.on("unregistered",function(){this.registered=!1}.bind(this)),this.ua.on("newRTCSession",function(e){console.debug("onNewRTCSession -> data",e);var n,t,a,i,s,o=e.session,r=!0,l="",d=0;switch(e.originator){case"local":o.outgoing=!0,o.name=e.request.ruri.user,o.user=e.request.ruri.user,S(o.user,!1),t=e.request.extraHeaders,a="X-callback-url",s=_.find(t,function(e){return _.startsWith(e,a)}),n=!!s&&_.trim(s.replace(a,"").replace(i||":","")),E.isJabraEnabled&&(E.jabraSession&&jabra.resume(),E.jabraSession=o,jabra.offHook());break;case"remote":var c=b.getCurrentUser();if(c.voicePause&&c.phoneBarDnd||E.originateInProgress)r=!1;else if(o.incoming=!0,o.name=e.request.from.display_name,o.user=e.request.from.uri.user,l=e.request.getHeader("X-Answer-Mode")||"",d=e.request.getHeader("X-Answer-After")||0,function(n){console.debug("getNotification -> session",n);var e=n.name?n.name+" <"+n.user+">":n.user;E.currentUser.privacyEnabled&&(e=A.mask(e)),f.create("Incoming call from: ",e,null,function(){T(n)},function(){I(n)},E.conf.autoAnswer).then(function(e){n.notification=e}).catch(function(e){console.error("Error creating notification for incoming call",e)})}(e.session),S(e.session.user,!0),E.isJabraEnabled&&jabra.ring(),E.conf.autoAnswer&&p(function(){o.isInProgress()&&(o.autoAnswer=!0,T(o))},E.conf.autoAnswerDelay?1e3*E.conf.autoAnswerDelay:0),console.debug("xAnswerMode",l),console.debug("xAnswerAfterSec",d),"auto"==l.toLowerCase()){var m=0==d?500:1e3*d;console.debug("auto answer enabled after:"+m+" ms"),p(function(){o.isInProgress()&&(o.autoAnswer=!0,T(o))},m)}}r?(o.call_id=e.request.call_id,n&&P(E.callbackQueue[o.call_id]=n,{call_id:o.call_id}).then(function(){console.log('callbackurl:"'+n+'" called successfully')}).catch(function(e){console.log('fail callbackurl:"'+n+'" err:',e)}),o.connection&&(o.connection.onaddstream=O.bind(this)),o.iceCandidateTimeout=null,o.on("progress",function(e,n){console.debug("onProgress -> session, data",e,n);var t=!1;switch(n.originator){case"local":this.conf.ringingMute||(this.soundPlayer.setAttribute("src","assets/ms-phonebar/sounds/incoming-call.ogg"),t=!0);break;case"remote":this.putOtherCallsOnHold(e),this.soundPlayer.setAttribute("src","assets/ms-phonebar/sounds/outgoing-call.ogg"),t=!0}E.originateInProgress&&(E.originateInProgress=!1),t&&(this.soundPlayer.loop="loop",this.soundPlayer.play().catch(function(e){console.log(e.message)})),C(e).then(function(){var n=E.callbackQueue[e.call_id];n&&P(n,{uniqueid:e.uniqueid,call_id:e.call_id,number_called:e.user}).then(function(){console.log('callbackurl:"'+n+'" called successfully')}).catch(function(e){console.log('fail callbackurl:"'+n+'" err:',e)}).finally(function(){delete E.callbackQueue[e.call_id]})}).catch(function(e){console.error("Unable to retrieve voice channels",e)})}.bind(this,o)),o.on("confirmed",function(e,n){console.debug("onConfirmed -> session, data",e,n);var t=document.getElementById("div_session_"+e.id.substr(0,32));t&&$(t).scope().$broadcast("timer-start"),e.confirmed=!0,"remote"===n.originator&&e.connection&&(e.connection.onaddstream=O.bind(this),_.head(e.connection.getRemoteStreams())&&(this.remotePlayer.srcObject=_.head(e.connection.getRemoteStreams()),this.remotePlayer.play())),this.soundPlayer.pause(),this.soundPlayer.loop=null,this.putOtherCallsOnHold(e),e.autoAnswer&&(this.soundPlayer.setAttribute("src","assets/ms-phonebar/sounds/beep.ogg"),this.soundPlayer.play().catch(function(e){console.log("Unable to play autoAnswer notification",e)})),E.canGoInConference=2==E.sessions.length,C(e).catch(function(e){console.error("Unable to retrieve voice channels",e)})}.bind(this,o)),o.on("hold",function(e,n){console.debug("onHold -> session, data",e,n),"local"===n.originator&&(e.localHold=!0)}.bind(this,o)),o.on("unhold",function(e,n){console.debug("onUnhold -> session, data",e,n),"local"===n.originator&&(e.localHold=!1)}.bind(this,o)),o.on("ended",function(e,n){if(console.debug("onEnded -> session, data",e,n),E.isInConference&&_.includes(E.currentConferenceSessions,e.id)&&(w(),E.buttonClicked=!0),_.remove(this.sessions,{id:e.id}),2!==E.sessions.length&&(E.canGoInConference=!1),E.isJabraEnabled)if(0===E.sessions.length)e.localHold&&jabra.resume(),jabra.onHook(),E.jabraSession=null;else{var t=_.last(E.sessions);t.localHold?(jabra.onHook(),jabra.hold(),E.jabraSession=t):jabra.offHook()}0===E.sessions.length&&E.currentUser.voicePause&&h.user.pause({id:E.currentUser.id,type:_.startsWith(E.currentUser.pauseType,"#")?E.currentUser.pauseType.substring(1):E.currentUser.pauseType}).$promise.catch(function(e){v.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:PAUSEUSER",msg:e.status?JSON.stringify(e.data):e.toString()})})}.bind(this,o)),o.on("failed",function(e,n){if(console.debug("onFailed -> session, data",e,n),this.soundPlayer.pause(),this.soundPlayer.loop=null,e.notification&&e.notification.close(),E.isInConference&&_.includes(E.currentConferenceSessions,e.id)&&w(),E.originateInProgress&&(E.originateInProgress=!1),_.remove(this.sessions,{id:e.id}),2!==E.sessions.length&&(E.canGoInConference=!1),E.isJabraEnabled)if(0===E.sessions.length)e.localHold&&jabra.resume(),jabra.onHook(),E.jabraSession=null;else{var t=_.last(E.sessions);t.localHold?(jabra.onHook(),jabra.hold(),E.jabraSession=t):jabra.offHook()}}.bind(this,o)),o.on("icecandidate",function(e,n){console.debug("onIcecandidate -> session, data",e,n),null!==e.iceCandidateTimeout&&clearTimeout(e.iceCandidateTimeout),e.iceCandidateTimeout=setTimeout(n.ready,1e3)}.bind(this,o)),E.sessions.push(o),p(function(){u.$apply(),console.debug("onNewRTCSession -> vm_pb.sessions",E.sessions)})):I(o,486)}.bind(this)),o.on("webbar:originate",function(e){console.debug("originateHook -> payload",e);var n=e.callNumber,t=e.callerId,a=e.callbackUrl;E.conf.microphoneId?E.sessionConf.mediaConstraints.audio={deviceId:E.conf.microphoneId}:E.sessionConf.mediaConstraints.audio=!0;var i=n.replace(/ /g,"");if(i=(i=i.replace(/\(/g,"")).replace(/\)/g,"")){var s=angular.copy(E.sessionConf);s.extraHeaders=[],t&&s.extraHeaders.push("X-CID: "+t),a&&s.extraHeaders.push("X-callback-url: "+a),E.originateInProgress=!0,E.ua.call(i,s)}}.bind(this)),o.on("webbar:hangup",function(e){console.debug("hangupHook -> payload",e);var n=E.sessions;if(e.sessionId&&((n=[]).push(D(e.sessionId)),0==n.length))console.warn("call with session Id "+e.sessionId+" not found");else for(var t=0;t<n.length;t++){var a=n[t];console.log("hangupHook -> sessionToHangup",a),E.terminate(a)}}.bind(this)),o.on("webbar:answer",function(e){var n;console.debug("answerHook -> payload",e),n=e.sessionId?D(e.sessionId):_.find(E.sessions,function(e){return e.incoming&&!e.confirmed}),e.sessionId&&!n&&console.warn("call with session Id "+e.sessionId+" not found"),n&&E.answer(n)}.bind(this)),o.on("webbar:hold",function(e){console.debug("holdHook -> payload",e);var n=E.sessions;if(e.sessionId&&((n=[]).push(D(e.sessionId)),0==n.length))console.warn("call with session Id "+e.sessionId+" not found");else for(var t=0;t<n.length;t++){var a=n[t];E.hold(a)}}.bind(this)),o.on("webbar:unhold",function(e){if(console.debug("holdHook -> payload",e),e.sessionId){var n=D(e.sessionId);n?E.unhold(n):console.warn("call with session Id "+e.sessionId+" not found")}else console.error("sessionId required")}.bind(this)),o.on("webbar:transfer",function(e){if(console.debug("transferHook -> payload",e),e.sessionId)if(e.transferNumber){var n=D(e.sessionId);n?n.refer(e.transferNumber,{eventHandlers:{requestSucceeded:N(n,"requestSucceeded","top right",3e3),requestFailed:N(n,"requestFailed","top right",3e3)}}):console.warn("call with session Id "+e.sessionId+" not found")}else console.error("transferNumber required");else console.error("sessionId required")}.bind(this)),o.on("webbar:stopmonitors",function(e){if(e.agentId===E.currentUser.id){var n=_.find(E.sessions,["uniqueid",e.uniqueid]);if(!n)return;n.monitors.forEach(function(e){e.status="pause"}),n.monitor=!1}}.bind(this))}.bind(this),E.type=function(e,n){var t=e;switch(E.target||(E.target=""),n&&(E.target+=e,u.$broadcast("angucomplete-alt:changeInput","ms-target-wrap",E.target)),e){case"*":t="asterisk";break;case"#":t="pound"}E.conf.enableDtmfTone&&(E.soundPlayer.setAttribute("src","assets/ms-phonebar/sounds/dialpad/"+t+".ogg"),E.soundPlayer.play().catch(function(e){console.log(e.message)}));for(var a=0;a<E.sessions.length;a+=1)E.sessions[a].isEstablished()&&!E.sessions[a].isOnHold().local&&E.sessions[a].sendDTMF(e)},E.call=function(){if(E.target&&E.target!==E.conf.name&&E.target!==E.conf.internal){E.conf.microphoneId?E.sessionConf.mediaConstraints.audio={deviceId:E.conf.microphoneId}:E.sessionConf.mediaConstraints.audio=!0;var e=E.target.replace(/ /g,"");return m(e=(e=e.replace(/\(/g,"")).replace(/\)/g,"")).then(function(e){e&&E.ua.call(e,E.sessionConf)}).then(function(){c()})}},E.hold=function(e){console.debug("hold -> session",e),e.hold({useUpdate:!1}),E.isJabraEnabled&&(jabra.hold(),jabra.onHook())},E.refer=function(n){console.debug("refer -> session",n);var e=a.prompt().title("Transfer").textContent("Type the target").placeholder("Target").ariaLabel("Target").ok("Transfer").cancel("Cancel");a.show(e).then(function(e){return m(e)}).then(function(e){n.refer(e,{eventHandlers:{requestSucceeded:N(n,"requestSucceeded","top right",3e3),requestFailed:N(n,"requestFailed","top right",3e3)}})})},E.record=function(e){console.debug("record -> session",e),a.show({controller:"RecordDialogController",controllerAs:"vm",templateUrl:"assets/ms-phonebar/record/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{session:e,sessions:E.sessions}})},E.unhold=function(e){console.debug("unhold -> session",e),e.unhold({useUpdate:!1}),E.putOtherCallsOnHold(e),E.isJabraEnabled&&(jabra.offHook(),jabra.resume())},E.answer=T,E.terminate=I,E.selectSession=function(e){console.debug("selectSession -> session",e),E.unhold(e)},E.typeWrapper=function(e){switch(e.key.toLowerCase()){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":case"*":case"#":E.type(e.key);break;case"enter":E.call()}},E.toggleDialpad=function(){E.showDialpad=!E.showDialpad},E.referAttended=function(e){console.debug("referAttended -> session",e),a.show({controller:"ReferAttendedDialogController",controllerAs:"vm",templateUrl:"assets/ms-phonebar/referAttended/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{session:e,sessions:_.reject(E.sessions,{id:e.id}),isJabraEnabled:E.isJabraEnabled}})},E.closeDialpad=function(){E.showDialpad=!1},E.initDevice=R,E.putOtherCallsOnHold=function(e){if(console.debug("putOtherCallsOnHold -> session",e),1<E.sessions.length)for(var n=0;n<E.sessions.length;n+=1)E.sessions[n].id===e.id||E.sessions[n].isOnHold().remote||E.sessions[n].hold({useUpdate:!1})},E.targetChanged=function(e){e?/^(\w|\.|\+|#|\*|\(|\)|\s|-)*$/.test(e)?(E.target=e,u.$broadcast("angucomplete-alt:changeInput","ms-target-wrap",E.target)):E.target?u.$broadcast("angucomplete-alt:changeInput","ms-target-wrap",E.target):c():c()},E.targetSelected=function(e){e&&(E.target=e.originalObject.target,E.call(),c())},E.start3WayConf=function(){E.isInConference=!0,E.canGoInConference=!1,E.currentConferenceSessions.push(E.sessions[0].id),E.currentConferenceSessions.push(E.sessions[1].id);var e=new AudioContext,n=E.sessions[0].connection.getSenders()[0],t=E.sessions[0].connection.getReceivers()[0];t.track.addEventListener("unmute",function(){setTimeout(function(){x()},1e3)},!1);var a=E.sessions[1].connection.getSenders()[0],i=E.sessions[1].connection.getReceivers()[0];i.track.addEventListener("unmute",function(){setTimeout(function(){x()},1e3)},!1),E.sessions[0].unhold({useUpdate:!1}),E.sessions[1].unhold({useUpdate:!1}),t.track.enabled=!0,i.track.enabled=!0;var s=new MediaStream,o=e.createMediaStreamDestination();o=(e=new AudioContext).createMediaStreamDestination();var r=e.createMediaStreamSource(new MediaStream([i.track]));r.connect(o),(r=e.createMediaStreamSource(new MediaStream([n.track]))).connect(o),n.replaceTrack(o.stream.getTracks()[0]).then(function(){}),o=e.createMediaStreamDestination(),(r=e.createMediaStreamSource(new MediaStream([t.track]))).connect(o),(r=e.createMediaStreamSource(new MediaStream([a.track]))).connect(o),a.replaceTrack(o.stream.getTracks()[0]).then(function(){s.addTrack(t.track),s.addTrack(i.track);var e=document.getElementById("remote-audio");e.srcObject=s;var n=e.play();void 0!==n&&n.then(function(){}).catch(function(e){console.log(e)})})},E.patchConference=x,u.$on("webrtc::settings",function(e){a.show({controller:"SettingsController",controllerAs:"vm",templateUrl:"assets/ms-phonebar/settings/settings.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,resolve:{devices:function(){return navigator.mediaDevices.enumerateDevices()}},locals:{conf:E.conf}}).then(function(e){e&&(E.conf=e,E.initDeviceInProgress||(E.initDeviceInProgress=!0,jabra&&E.isJabraInitialized?jabra.shutdown().then(function(){E.isJabraInitialized=!1,d(E.isJabraEnabled=!1)}).catch(function(e){console.error("Unable to shutdown Jabra library",e)}):d(!1)))})}),u.$on("webrtc::logout",function(){E.ua.stop(),jabra&&E.isJabraInitialized&&jabra.shutdown(),navigator.mediaDevices.ondevicechange=function(){}}),u.$on("webrtc::call",function(e,n){console.debug("onRemoteCall -> evt, data",e,n),n.target&&(E.target=n.target,E.call())}),u.$on("webrtc::transfer",function(e,n){if(console.debug("onRemoteTransfer -> evt, data",e,n),n.target)for(var t=0;t<E.sessions.length;t+=1)if(E.sessions[t].isEstablished()&&!E.sessions[t].isOnHold().local)return m(n.target).then(function(e){e&&E.sessions[t].refer(e,{eventHandlers:{requestSucceeded:N(E.sessions[t],"requestSucceeded","top right",3e3),requestFailed:N(E.sessions[t],"requestFailed","top right",3e3)}})})}),u.$on("$destroy",function(){console.debug("$destroy event fired"),o.removeAllListeners("webbar:originate"),o.removeAllListeners("webbar:hangup"),o.removeAllListeners("webbar:answer"),o.removeAllListeners("webbar:hold"),o.removeAllListeners("webbar:unhold"),o.removeAllListeners("webbar:transfer"),o.removeAllListeners("webbar:stopmonitors")})}e.$inject=["$scope","$document","$timeout","$interval","$mdDialog","$mdToast","$window","$translate","$http","toasty","api","motNotification","Auth","socket","privacyManager"],angular.module("app.core").controller("MsPhonebarController",e).directive("msPhonebar",function(){return{restrict:"E",scope:{conf:"=",sessions:"="},require:"msPhonebar",controller:"MsPhonebarController",controllerAs:"vm_pb",bindToController:!0,templateUrl:"assets/ms-phonebar/ms-phonebar.html"}})}(),function(){"use strict";function e(n,e,t){var a=this;a.prefixes=e,a.required=t,a.closeDialog=function(e){n.hide(e)},a.keyPress=function(e){13===e.keyCode&&this.call()},a.call=function(){n.hide(a.prefix)}}e.$inject=["$mdDialog","prefixes","required"],angular.module("app.core").controller("PrefixDialogController",e)}(),function(){"use strict";function e(i){return{restrict:"C",controller:["$scope","$element",function(e,n){function t(){n.css("display","inline"),i(a,1e3)}function a(){n.css("display","none"),i(t,1e3)}t()}],replace:!0}}function n(n,i,s,e,t){var o=this;function a(n,e){console.log("startMonitor");var t=i.defer(),a=(e||n.filename.replace(/^.*[\\\/]/,"")).split(".")[0];return s.rpc.startMonitor({uniqueid:o.session.uniqueid,filename:a,format:"wav"}).$promise.then(function(e){n.filename=a+".wav",n.mixmonitorid=e.mixmonitorid,n.status="rec",o.session.monitor=!0,t.resolve(n)}).catch(function(e){t.reject(e)}),t.promise}o.title="Record",o.sessions=e,o.session=t,o.closeDialog=function(){n.hide()},o.addRecording=function(){var e=n.prompt({skipHide:!0}).title("Start new recording").textContent("Type the file name.").placeholder("File name").ariaLabel("File name").initialValue(function(){function e(){return Math.floor(65536*(1+Math.random())).toString(16).substring(1)}return e()+e()+"-"+e()+"-"+e()+"-"+e()+"-"+e()+e()+e()}()).ok("Start").cancel("Cancel");n.show(e).then(function(e){return a({},e)}).then(function(e){o.session.monitors.push(e)})},o.stop=function(n){return console.log("stopMonitor"),s.rpc.stopMonitor({uniqueid:o.session.uniqueid,mixmonitorid:n.mixmonitorid}).$promise.then(function(e){n.status="pause",o.session.monitor=_.includes(o.session.monitors,{status:"rec"})}).catch(function(e){console.error(e)})},o.start=a}e.$inject=["$timeout"],n.$inject=["$mdDialog","$q","api","sessions","session"],angular.module("app.core").directive("msBlink",e).controller("RecordDialogController",n)}(),function(){"use strict";function e(n,s,a,i,e){var o=this;function r(e,n,t,a,i){return console.debug("onTransferCallback -> session, textContent, position, delay",e,n,t,a),function(){s.show(s.simple().textContent(n).position(t).hideDelay(a)),e.terminate(),jabra&&i&&jabra.onHook(),l()}}function l(e){n.hide(e)}o.title="Refer Attended",o.sessions=a,o.session=i,o.isJabraEnabled=e,o.sessionTarget=null,a.length&&(o.target=a[0].user),o.closeDialog=l,o.transfer=function(){var e,n,t=_.find(a,function(e){if(e.user===o.target)return e});n=t.outgoing?(e=t,o.session):(e=o.session,t);n.refer(e.user,{replaces:e,eventHandlers:{requestSucceeded:r(i,"requestSucceeded","top right",3e3,o.isJabraEnabled),requestFailed:r(i,"requestFailed","top right",3e3,o.isJabraEnabled)}})}}e.$inject=["$mdDialog","$mdToast","sessions","session","isJabraEnabled"],angular.module("app.core").controller("ReferAttendedDialogController",e)}(),function(){"use strict";function e(e,s,n){var t=this;function a(e,n,t){var a;if(s[t]){if(a=_.find(e,function(e){return e.deviceId===s[t]}))return a.deviceId;var i=_.findIndex(e,function(e){return e.kind===n});if(0<=i)return e[i].deviceId}else(a=_.find(e,function(e){return e.kind===n}))&&(s[t]=a.deviceId);return s[t]||null}_.remove(n,function(e){return"audioinput"===e.kind&&("default"===e.deviceId||"communications"===e.deviceId)||"audiooutput"===e.kind&&("default"===e.deviceId||"communications"===e.deviceId)}),s.ringingId=a(n,"audiooutput","ringingId"),s.speakerId=a(n,"audiooutput","speakerId"),s.microphoneId=a(n,"audioinput","microphoneId"),s.ringingVolume=s.ringingVolume||.5,s.speakerVolume=s.speakerVolume||.5,s.microphoneVolume=s.microphoneVolume||1,s.ringingMute=s.ringingMute||!1,s.speakerMute=s.speakerMute||!1,s.microphoneMute=s.microphoneMute||!1,t.conf=angular.copy(s),t.devices=n,t.saveSettings=function(){e.hide(t.conf)},t.closeDialog=function(){e.hide()},t.isCompatibleBrowser=function(){return"chrome"===t.conf.browserName.toLowerCase()||"opera"===t.conf.browserName.toLowerCase()||"safari"===t.conf.browserName.toLowerCase()}}e.$inject=["$mdDialog","conf","devices"],angular.module("app.toolbar").controller("SettingsController",e)}(),function(){"use strict";function e(t,a){var i=this;function s(e){var n=e.key,t={param:i.query[n],resources:e.options,placeholder:e.placeholder,ngValue:e.ngValue};a.setPlaceholder(t).then(function(e){i.placeholders[n]=e})}i.pickerModels={},i.placeholders={},i.localizationMap=t.localizationMap,i.onMultiselectInit=function(e){s(e)},i.onDateRangeInit=function(e){var n=e.key;i.query[n]?i.pickerModels[n]=t.setSelectedDate(i.query[n]):i.pickerModels[n]={dateStart:null}},i.onMultiselectSelection=function(e,n){n&&(s(e),i.search())},i.onDateRangeSelection=function(e){var n=e.key;i.pickerModels[n].dateStart?!0===e.useFromToKeys?i.query[n]={from:moment(i.pickerModels[n].dateStart).utcOffset(0,!0).format(),to:moment(i.pickerModels[n].dateEnd).utcOffset(0,!0).add(23,"hours").add(59,"minutes").add(59,"seconds").format()}:i.query[n]={$gte:moment(i.pickerModels[n].dateStart).utcOffset(0,!0).format(),$lte:moment(i.pickerModels[n].dateEnd).utcOffset(0,!0).add(23,"hours").add(59,"minutes").add(59,"seconds").format()}:i.query[n]=void 0;i.search()},i.clearDate=function(e){var n=e.key;i.pickerModels[n]={dateStart:null},delete i.query[n],i.search()},i.clearSelection=function(e){var n=e.key,t=e.ngValue||"id";i.query[n]=!1===e.clearAll?[_.head(e.options)[t]]:[],s(e),i.search()},i.selectAll=function(e){var n=e.key,t=e.ngValue||"id";i.query[n]=_.map(e.options,t),s(e),i.search()}}function n(p,e){var g={localizationMap:e,setSelectedDate:function(e){var n=e.$gte?new Date(moment.utc(e.$gte).format("YYYY-MM-DD")):new Date(moment.utc(e.from).format("YYYY-MM-DD")),t=e.$lte?new Date(moment.utc(e.$lte).format("YYYY-MM-DD")):new Date(moment.utc(e.to).format("YYYY-MM-DD")),a={dateStart:new Date(n.getFullYear(),n.getMonth(),n.getDate()),dateEnd:new Date(t.getFullYear(),t.getMonth(),t.getDate())};return a.selectedTemplateName=(i=a,moment(i.dateStart).isSame(i.dateEnd)?(u=i,moment().startOf("day").isSame(u.dateStart)?g.localizationMap.Today:(m=i,moment().subtract(1,"days").startOf("day").isSame(m.dateStart)?g.localizationMap.Yesterday:p("date")(i.dateStart,"dd MMM yyyy"))):(c=i,moment().startOf("isoWeek").isSame(c.dateStart,"day")&&moment().endOf("isoWeek").isSame(c.dateEnd,"day")?g.localizationMap["This Week"]:(d=i,moment().subtract(1,"weeks").startOf("isoWeek").isSame(d.dateStart,"day")&&moment().subtract(1,"weeks").endOf("isoWeek").isSame(d.dateEnd,"day")?g.localizationMap["Last Week"]:(l=i,moment().startOf("month").isSame(l.dateStart,"day")&&moment().endOf("month").isSame(l.dateEnd,"day")?g.localizationMap["This Month"]:(r=i,moment().subtract(1,"months").startOf("month").isSame(r.dateStart,"day")&&moment().subtract(1,"months").endOf("month").isSame(r.dateEnd,"day")?g.localizationMap["Last Month"]:(o=i,moment().startOf("year").isSame(o.dateStart,"day")&&moment().endOf("year").isSame(o.dateEnd,"day")?g.localizationMap["This Year"]:(s=i,moment().subtract(1,"years").startOf("year").isSame(s.dateStart,"day")&&moment().subtract(1,"years").endOf("year").isSame(s.dateEnd,"day")?g.localizationMap["Last Year"]:p("date")(i.dateStart,"dd"+(i.dateStart.getMonth()!==i.dateEnd.getMonth()||i.dateStart.getFullYear()!==i.dateEnd.getFullYear()?" MMM":"")+(i.dateStart.getFullYear()!==i.dateEnd.getFullYear()?" yyyy":""))+" - "+p("date")(i.dateEnd,"dd MMM yyyy")))))))),a;var i,s,o,r,l,d,c,m,u}};return g}n.$inject=["$filter","dateFilterLocalizationFactory"],e.$inject=["dateRangeManager","quickFilterManager"],angular.module("app.core").directive("msQuickFilter",function(){return{restrict:"E",scope:{query:"=",filters:"=",search:"&"},controller:e,controllerAs:"vm",bindToController:!0,templateUrl:"app/core/directives/ms-quick-filter/ms-quick-filter.html"}}).factory("dateRangeManager",n)}(),function(){"use strict";angular.module("app.core").directive("msRandomClass",function(){return{restrict:"A",scope:{msRandomClass:"="},link:function(e,n){var t=e.msRandomClass[Math.floor(Math.random()*e.msRandomClass.length)];n.addClass(t)}}})}(),function(){"use strict";function e(i){return{restrict:"E",scope:{id:"=",model:"=",download:"="},replace:!0,link:function(n,e){var t=!1,a=document.createElement("audio");n.download||a.setAttribute("controlsList","nodownload"),a.setAttribute("preload","none"),a.setAttribute("controls",""),a.setAttribute("style","width: 265px;"),a.setAttribute("src"," "),a.onplay=function(e){t||(t=!0,e.preventDefault(),i[n.model||"voiceRecording"].download({id:n.id}).$promise.then(function(e){var n=[e.buffer],t=new Blob(n,{type:e.type});a.setAttribute("type",e.type),a.setAttribute("src",URL.createObjectURL(t)),a.play()}).catch(function(e){console.error(e)}))},e.append(a)}}}e.$inject=["api"],angular.module("app.core").directive("msRecording",e)}(),function(){"use strict";angular.module("app.core").directive("msResponsiveTable",function(){return{restrict:"A",link:function(e,n){var t=angular.element('<div class="ms-responsive-table-wrapper"></div>');n.after(t),t.append(n)}}})}(),function(){"use strict";function e(s,o,n,t){return{restrict:"AE",compile:function(e){if(!(t.getConfig("disableCustomScrollbars")||t.getConfig("disableCustomScrollbarsOnMobile")&&n.isMobile()))return e.addClass("ms-scroll"),function(e,n,t){var a={};function i(){PerfectScrollbar.update(n[0])}t.msScroll&&(a=e.$eval(t.msScroll)),a=angular.extend({},o.getConfig(),a),s(function(){PerfectScrollbar.initialize(n[0],a)},0),n.on("mouseenter",i),e.$watch(function(){return n.prop("scrollHeight")},function(e,n){angular.isUndefined(e)||angular.equals(e,n)||i()}),e.$watch(function(){return n.prop("scrollWidth")},function(e,n){angular.isUndefined(e)||angular.equals(e,n)||i()}),e.$on("$destroy",function(){n.off("mouseenter"),PerfectScrollbar.destroy(n[0])})}}}}e.$inject=["$timeout","msScrollConfig","msUtils","motionConfig"],angular.module("app.core").provider("msScrollConfig",function(){var n={wheelSpeed:1,wheelPropagation:!1,swipePropagation:!0,minScrollbarLength:null,maxScrollbarLength:null,useBothWheelAxes:!1,useKeyboard:!0,suppressScrollX:!1,suppressScrollY:!1,scrollXMarginOffset:0,scrollYMarginOffset:0,stopPropagationOnClick:!0};this.config=function(e){n=angular.extend({},n,e)},this.$get=function(){var e={getConfig:function(){return n}};return e}}).directive("msScroll",e)}(),function(){"use strict";function e(n,i,s,e){var o=this;function t(){angular.isArray(o.onSearch)?a(o.onSearch):o.onResultClick?(o.resultsLoading=!0,n.$parent.$eval("vm.search(query)",{query:o.query.filter}).then(function(e){a(e)}).catch(function(){a([])}).finally(function(){o.resultsLoading=!1})):o.onSearch()}function a(e){o.expanded&&(void 0===e||angular.isArray(e)||null===e)&&(o.selectedResultIndex=0,o.results=e)}function r(){o.expanded=!0,o.displayOn=!0,n.expand()}function l(e){!1!==e&&(o.query.filter=void 0,o.onResultClick?a(null):t()),o.expanded=!1,n.collapse()}function d(e){o.onResultClick&&o.onResultClick({item:e}),l()}function c(){var e=i.find(".ms-search-bar-results"),n=angular.element(e.find(".result")[o.selectedResultIndex]);if(e&&n){var t=n.position().top-8,a=n.position().top+n.outerHeight()+8;o.ignoreMouseEvents=!0,s.cancel(o.mouseEventIgnoreTimeout),o.mouseEventIgnoreTimeout=s(function(){o.ignoreMouseEvents=!1},250),e.scrollTop()>t&&e.scrollTop(t),a>e.height()+e.scrollTop()&&e.scrollTop(a-e.height())}}o.queryOptions={debounce:o.debounce||0},o.searchOnEnterKey=e.get().searchOnEnterKey||!1,o.resultsLoading=!1,o.results=null,o.selectedResultIndex=0,o.ignoreMouseEvents=!1,o.expandBar=r,o.collapseBar=l,o.blurCollapse=function(){if(!o.collapseOnBlur)return;l()},o.onKeyDown=function(e){var n=e.keyCode;-1<[27,38,40].indexOf(n)&&e.preventDefault();switch(n){case 13:if(!o.onResultClick)return t();if(!o.results)return;d(o.results[o.selectedResultIndex]);break;case 27:l();break;case 38:0<=o.selectedResultIndex-1&&(o.selectedResultIndex--,c());break;case 40:if(!o.results)return;o.selectedResultIndex+1<o.results.length&&(o.selectedResultIndex++,c())}},o.absorbEvent=function(e){e.preventDefault()},o.handleMouseenter=function(e){if(o.ignoreMouseEvents)return;o.selectedResultIndex=e},o.handleResultClick=d,n.$watch("vm.displayOn",function(e){angular.isUndefined(e)||(!0!==e||o.expanded?e||!1===o.expanded||l(!1):r())}),n.$watch("vm.query.filter",function(e,n){if(!angular.isUndefined(e)&&0!==e.length&&!angular.equals(e,n)&&!1!==o.displayOn){if(o.expanded){if(!0===o.searchOnEnterKey&&!o.onResultClick)return;if(o.minChars&&o.minChars>e.length)return}else r();t()}})}function n(a){return{restrict:"E",scope:{query:"=?",debounce:"=?",direction:"@",iconColor:"@",onSearch:"&",onResultClick:"&?",onExpand:"&?",onCollapse:"&?",collapseOnBlur:"<?",minChars:"<?",displayOn:"=?"},controller:e,controllerAs:"vm",bindToController:!0,templateUrl:"app/core/directives/ms-search-bar/ms-search-bar.html",compile:function(e){return e.addClass("ms-search-bar"),{post:function(n,t){n.collapse=function(){if(t.removeClass("expanded"),"down"===n.vm.direction){t.removeClass("down");var e=t.closest("md-toolbar");e&&e.removeClass("h-128")}a.find("body").removeClass("ms-search-bar-expanded")},n.expand=function(){if(t.addClass("expanded"),"down"===n.vm.direction){t.addClass("down");var e=t.closest("md-toolbar");e&&e.addClass("h-128")}a.find("body").addClass("ms-search-bar-expanded")}}}}}}e.$inject=["$scope","$element","$timeout","settingsManager"],n.$inject=["$document"],angular.module("app.core").controller("MsSearchBarController",e).directive("msSearchBar",n)}(),function(){"use strict";function e(e,t,i,o,r,l){var d=this;d.query="",d.queryOptions={debounce:300},d.resultsLoading=!1,d.selectedResultIndex=0,d.ignoreMouseEvents=!1,d.mobileBarActive=!1,d.results=null,d.shortcuts=[],d.sortableOptions={ghostClass:"ghost",forceFallback:!0,fallbackClass:"dragging",onSort:function(){d.saveShortcuts()}},d.populateResults=function(){for(var e=[],n=l.getFlatNavigation(),t=r.defer(),a=0;a<n.length;a++)n[a].uisref&&e.push(n[a]);if(d.query){e=e.filter(function(e){if(-1<angular.lowercase(e.title).search(angular.lowercase(d.query)))return!0});for(var i=0;i<e.length;i++){e[i].hasShortcut=!1;for(var s=0;s<d.shortcuts.length;s++)if(d.shortcuts[s]._id===e[i]._id){e[i].hasShortcut=!0;break}}}else 0<d.shortcuts.length&&(e=d.shortcuts);return d.selectedResultIndex=0,o(function(){t.resolve(e)},250),t.promise},d.loadShortcuts=function(){var e=r.defer(),n=angular.fromJson(t.get("motion.shortcuts"));angular.isUndefined(n)&&(n=[{title:"Agents",icon:"icon-account-multiple",state:"app.staff.agents",weight:5,children:[],uisref:"app.staff.agents",hasShortcut:!0},{title:"License",icon:"icon-cog",state:"app.settings.license",weight:10,children:[],uisref:"app.settings.license",hasShortcut:!0}],t.put("motion.shortcuts",angular.toJson(n)));return e.resolve(n),e.promise},d.saveShortcuts=function(){var e=r.defer();return t.put("motion.shortcuts",angular.toJson(d.shortcuts)),o(function(){e.resolve({success:!0})},250),e.promise},d.addShortcut=function(e){e.hasShortcut=!0,d.shortcuts.push(e),d.saveShortcuts()},d.removeShortcut=function(e){e.hasShortcut=!1;for(var n=0;n<d.shortcuts.length;n++)d.shortcuts[n]._id===e._id&&(d.shortcuts.splice(n,1),d.query||(0===d.shortcuts.length?d.results=null:n>=d.shortcuts.length&&(d.selectedResultIndex=d.shortcuts.length-1)));d.saveShortcuts()},d.handleResultClick=function(e){e.hasShortcut?d.removeShortcut(e):d.addShortcut(e)},d.absorbEvent=function(e){e.preventDefault()},d.handleKeydown=function(e){var n=e.keyCode;-1<[38,40].indexOf(n)&&e.preventDefault();switch(n){case 13:d.handleResultClick(d.results[d.selectedResultIndex]);break;case 38:0<=d.selectedResultIndex-1&&(d.selectedResultIndex--,d.ensureSelectedResultIsVisible());break;case 40:d.selectedResultIndex+1<d.results.length&&(d.selectedResultIndex++,d.ensureSelectedResultIsVisible())}},d.handleMouseenter=function(e){if(d.ignoreMouseEvents)return;d.selectedResultIndex=e},d.temporarilyIgnoreMouseEvents=function(){d.ignoreMouseEvents=!0,o.cancel(d.mouseEventIgnoreTimeout),d.mouseEventIgnoreTimeout=o(function(){d.ignoreMouseEvents=!1},250)},d.ensureSelectedResultIsVisible=function(){var e=i.find("#ms-shortcut-add-menu").find(".results"),n=angular.element(e.find(".result")[d.selectedResultIndex]);if(e&&n){var t=n.position().top-8,a=n.position().top+n.outerHeight()+8;d.temporarilyIgnoreMouseEvents(),e.scrollTop()>t&&e.scrollTop(t),a>e.height()+e.scrollTop()&&e.scrollTop(a-e.height())}},d.toggleMobileBar=function(){d.mobileBarActive=!d.mobileBarActive},d.loadShortcuts().then(function(e){d.shortcuts=e,0<d.shortcuts.length&&(d.results=e)}),e.$watch("MsShortcuts.query",function(e,n){angular.isUndefined(e)||angular.equals(e,n)||(d.resultsLoading=!0,d.populateResults().then(function(e){d.results=e},function(){d.results=[]}).finally(function(){d.resultsLoading=!1}))})}e.$inject=["$scope","$cookies","$document","$timeout","$q","msNavigationService"],angular.module("app.core").controller("MsShortcutsController",e).directive("msShortcuts",function(){return{restrict:"E",scope:{},require:"msShortcuts",controller:"MsShortcutsController as MsShortcuts",bindToController:{},templateUrl:"app/core/directives/ms-shortcuts/ms-shortcuts.html",compile:function(e){return e.addClass("ms-shortcuts"),function(e,n){}}}})}(),function(){"use strict";angular.module("app.core").directive("msSidenavHelper",function(){return{restrict:"A",require:"^mdSidenav",link:function(e,n,t,a){e.$watch(function(){return a.isOpen()&&!a.isLockedOpen()},function(e){angular.isUndefined(e)||(n.parent().toggleClass("full-height",e),angular.element("html").toggleClass("sidenav-open",e))})}}})}(),function(){"use strict";function e(a){return{restrict:"E",link:function(e,n){var t=e.$on("msSplashScreen::remove",function(){a.leave(n).then(function(){t(),e=n=null})})}}}e.$inject=["$animate"],angular.module("app.core").directive("msSplashScreen",e)}(),function(){"use strict";function e(e){var i=this;function n(){i.setCurrentStep(1)}function t(e){return o(e)?i.steps[e-1].scope.optionalStep:null}function a(e){return o(e)?!!i.steps[e-1].scope.hideStep:null}function s(e){return o(e)?!!t(e)||i.steps[e-1].form.$valid:null}function o(e){return!(angular.isUndefined(e)||e<1||e>i.steps.length)}i.mainForm=void 0,i.orientation="horizontal",i.steps=[],i.currentStep=void 0,i.currentStepNumber=1,i.setOrientation=function(e){i.orientation=e||"horizontal"},i.registerMainForm=function(e){i.mainForm=e},i.registerStep=function(e,n,t){var a={element:e,scope:n,form:t,stepNumber:n.step||i.steps.length+1,stepTitle:n.stepTitle,stepTitleTranslate:n.stepTitleTranslate};return i.steps.push(a),i.steps.sort(function(e,n){return e.stepNumber-n.stepNumber}),a},i.setupSteps=function(){i.setCurrentStep(i.currentStepNumber)},i.resetForm=function(){e(function(){for(var e=0;e<i.steps.length;e++)i.steps[e].form.$setPristine(),i.steps[e].form.$setUntouched();i.mainForm.$setPristine(),i.mainForm.$setUntouched(),n()})},i.setCurrentStep=function(e){if(!o(e))return;if(i.currentStepNumber=e,"horizontal"===i.orientation){for(var n=0;n<i.steps.length;n++)i.steps[n].element.hide();i.steps[i.currentStepNumber-1].element.show()}else if("vertical"===i.orientation){for(var t=0;t<i.steps.length;t++)i.steps[t].element.find(".ms-stepper-step-content").hide();i.steps[i.currentStepNumber-1].element.find(".ms-stepper-step-content").show()}},i.gotoStep=function(e){if(a(e))return;i.setCurrentStep(e)},i.gotoPreviousStep=function(){for(var e=i.currentStepNumber-1,n=e;1<=n;n--)if(!a(n)){e=n;break}i.setCurrentStep(e)},i.gotoNextStep=function(){for(var e=i.currentStepNumber+1,n=e;n<=i.steps.length;n++)if(!a(n)){e=n;break}i.setCurrentStep(e)},i.gotoFirstStep=n,i.gotoLastStep=function(){i.setCurrentStep(i.steps.length)},i.isFirstStep=function(){return 1===i.currentStepNumber},i.isLastStep=function(){return i.currentStepNumber===i.steps.length},i.isStepCurrent=function(e){return o(e)?i.currentStepNumber===e:null},i.isStepDisabled=function(e){if(!o(e))return null;for(var n=!1,t=1;t<e;t++)if(!s(t)){n=!0;break}return n},i.isStepOptional=t,i.isStepHidden=a,i.filterHiddenStep=function(e){return!a(e.stepNumber)},i.isStepValid=s,i.isStepNumberValid=o,i.isFormValid=function(){return i.mainForm.$valid}}function n(o){return{restrict:"A",scope:{},require:["form","msVerticalStepper"],priority:1001,controller:"MsStepperController as MsStepper",bindToController:{model:"=ngModel"},transclude:!0,templateUrl:"app/core/directives/ms-stepper/templates/vertical/vertical.html",compile:function(e){return e.addClass("ms-stepper"),function(e,n,t,a){var i=a[0],s=a[1];o(function(){s.setOrientation("vertical"),s.registerMainForm(i),s.setupSteps()})}}}}e.$inject=["$timeout"],n.$inject=["$timeout"],angular.module("app.core").controller("MsStepperController",e).directive("msHorizontalStepper",function(){return{restrict:"A",scope:{},require:["form","msHorizontalStepper"],priority:1001,controller:"MsStepperController as MsStepper",bindToController:{model:"=ngModel"},transclude:!0,templateUrl:"app/core/directives/ms-stepper/templates/horizontal/horizontal.html",compile:function(e){return e.addClass("ms-stepper"),function(e,n,t,a){var i=a[0],s=a[1];s.setOrientation("horizontal"),s.registerMainForm(i),s.setupSteps()}}}}).directive("msHorizontalStepperStep",function(){return{restrict:"E",require:["form","^msHorizontalStepper"],priority:1e3,scope:{step:"=?",stepTitle:"=?",stepTitleTranslate:"=?",optionalStep:"=?",hideStep:"=?"},compile:function(e){return e.addClass("ms-stepper-step"),function(e,n,t,a){var i=a[0],s=a[1];e.optionalStep=angular.isDefined(t.optionalStep),s.registerStep(n,e,i),n.hide()}}}}).directive("msVerticalStepper",n).directive("msVerticalStepperStep",function(){return{restrict:"E",require:["form","^msVerticalStepper"],priority:1e3,scope:{step:"=?",stepTitle:"=?",stepTitleTranslate:"=?",optionalStep:"=?",hideStep:"=?"},transclude:!0,templateUrl:"app/core/directives/ms-stepper/templates/vertical/step/vertical-step.html",compile:function(e){return e.addClass("ms-stepper-step"),function(e,n,t,a){var i=a[0],s=a[1];e.optionalStep=angular.isDefined(t.optionalStep),e.stepInfo=s.registerStep(n,e,i),e.MsStepper=s,n.find(".ms-stepper-step-content").hide()}}}})}(),function(){"use strict";function e(e){return{restrict:"E",scope:{},transclude:!0,controller:"MsTabScrollController",controllerAs:"vm",bindToController:!0,templateUrl:"app/core/directives/ms-tab-scroll/ms-tab-scroll.html",compile:function(e){return e.addClass("ms-tab-scroll"),function(e,n){}}}}e.$inject=["$document"],angular.module("app.core").controller("MsTabScrollController",function(){function n(){var e=document.getElementById("bar-container"),n=document.getElementById("tab-container");return n.scrollWidth>e.scrollWidth&&0==e.scrollLeft&&0==n.scrollLeft?"right":n.scrollWidth>e.scrollWidth&&n.scrollLeft>e.scrollLeft&&e.scrollWidth+n.scrollLeft>=n.scrollWidth?"left":n.scrollWidth>e.scrollWidth&&n.scrollLeft>e.scrollLeft&&e.scrollWidth+n.scrollLeft<n.scrollWidth?"both":"none"}this.onTabScroll=function(e){"left"==e?$("#tab-container").stop().animate({scrollLeft:"-=400"},1e3):$("#tab-container").stop().animate({scrollLeft:"+=400"},1e3)},this.canScroll=function(e){switch(n()){case"both":return!0;case"left":return"left"==e;case"right":return"right"==e;case"none":default:return!1}}}).directive("msTabScroll",e)}(),function(){"use strict";function e(m,u){return{scope:!0,require:"^msTimeline",compile:function(e){return e.addClass("ms-timeline-item").addClass("hidden"),function(e,t,n,a){var i=72,s=!1,o=!1,r=a.getScrollEl();!function(){t.find("ms-card")?e.$on("msCard::cardTemplateLoaded",function(e,n){var t=angular.element(n[0]);d(t).then(function(){m(function(){s=!0})})}):d(t).then(function(){m(function(){s=!0})});r.on("scroll",c),c()}();var l=e.$watch(function(){return s&&o},function(e,n){angular.equals(e,n)||e&&(t.removeClass("hidden").addClass("animate"),l())},!0);function d(e){var n=u.defer(),t=e.find("img");return 0<t.length?t.on("load",function(){n.resolve("Image is loaded")}):n.resolve("No images"),n.promise}function c(){r.scrollTop()+r.height()>t.position().top+i&&(m(function(){o=!0}),r.off("scroll",c))}}}}}e.$inject=["$timeout","$q"],angular.module("app.core").controller("MsTimelineController",function(){var n=this;n.scrollEl=void 0,n.setScrollEl=function(e){n.scrollEl=e},n.getScrollEl=function(){return n.scrollEl}}).directive("msTimeline",function(){return{scope:{msTimeline:"=?",loadMore:"&?msTimelineLoadMore"},controller:"MsTimelineController",compile:function(e){return e.addClass("ms-timeline"),function(e,n,t,a){var i=angular.element('<div class="ms-timeline-loader md-accent-bg md-whiteframe-4dp"><span class="spinner animate-rotate"></span></div>');n.append(i);var s={scrollEl:"#content"};s=angular.extend(s,e.msTimeline,{});var o=angular.element(s.scrollEl);a.setScrollEl(o);var r=144;function l(){o.scrollTop()+o.height()+r>i.position().top&&(i.addClass("show"),c(),e.loadMore&&e.loadMore().then(function(){i.removeClass("show"),d()},function(){i.remove()}))}function d(){o.on("scroll",l)}function c(){o.off("scroll",l)}d(),e.$on("$destroy",function(){c()})}}}}).directive("msTimelineItem",e)}(),function(){"use strict";function e(a,e,n,i,t){var r=this;function s(){!function(){r.millis=l().diff(moment(r.startingTime));var e=moment.duration(r.millis),n=e.seconds(),t=e.minutes(),a=e.hours(),i=e.days(),s=e.months(),o=e.years();r.seconds=n<10?"0"+n:n,r.minutes=t<10?"0"+t:t,r.hours=a<10?"0"+a:a,r.days=i<10?"0"+i:i,r.months=s<10?"0"+s:s,r.years=o<10?"0"+o:o,r.timer=0<r.days?r.days+"d ":r.hours+":"+r.minutes+":"+r.seconds}(),r.timeoutId=setTimeout(function(){s(),a.$digest()},r.interval)}function l(e){var n=(e||moment()).utcOffset(a.serverDateOffset).format("YYYY-MM-DD HH:mm:ss");return moment(n)}function o(){n(function(n,t){try{if(a.serverDateOffset)return void n(l());i.setting.getDate().$promise.then(function(e){a.serverDateOffset=e.offset,n(moment(e.now))})}catch(e){t(e)}}).then(function(e){var n=r.startTime?moment(r.startTime):void 0;r.startTime?n.isAfter(e,"hour")||n.isBefore(e,"hour")?r.startingTime=l(n):r.startingTime=n:r.startingTime=e,s()}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.setting.getDate",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}o(),a.$watch("vm.startTime",function(e,n){angular.isUndefined(e)||0!==e.length&&(angular.equals(e,n)||o())}),a.$on("timer-start",function(){r.startTime=void 0,o()}),e.bind("$destroy",function(){r.timeoutId&&clearTimeout(r.timeoutId)})}e.$inject=["$scope","$element","$q","api","toasty"],angular.module("app.core").directive("timer",function(){return{restrict:"EA",replace:!1,scope:{startTime:"=?",interval:"=?"},template:"<span ng-cloak>{{ vm.timer }}</span>",compile:function(){return{pre:function(e,n,t){e.interval=t.interval||1e3}}},controller:e,controllerAs:"vm",bindToController:!0}})}(),function(){"use strict";angular.module("app.core").directive("msTimezone",function(){return{restrict:"E",scope:{ngModel:"="},controller:["$scope",function(e){e.timezone=[{name:"Europe/Andorra",utcOffset:60,offsetStr:"+01:00",countries:["AD"]},{name:"Asia/Dubai",utcOffset:240,offsetStr:"+04:00",countries:["AE","OM"]},{name:"Asia/Kabul",utcOffset:270,offsetStr:"+04:30",countries:["AF"]},{name:"Europe/Tirane",utcOffset:60,offsetStr:"+01:00",countries:["AL"]},{name:"Asia/Yerevan",utcOffset:240,offsetStr:"+04:00",countries:["AM"]},{name:"Antarctica/Rothera",utcOffset:-180,offsetStr:"-03:00",countries:["AQ"]},{name:"Antarctica/Palmer",utcOffset:-180,offsetStr:"-03:00",countries:["AQ"]},{name:"Antarctica/Mawson",utcOffset:300,offsetStr:"+05:00",countries:["AQ"]},{name:"Antarctica/Davis",utcOffset:420,offsetStr:"+07:00",countries:["AQ"]},{name:"Antarctica/Casey",utcOffset:480,offsetStr:"+08:00",countries:["AQ"]},{name:"Antarctica/Vostok",utcOffset:360,offsetStr:"+06:00",countries:["AQ"]},{name:"Antarctica/DumontDUrville",utcOffset:600,offsetStr:"+10:00",countries:["AQ"]},{name:"Antarctica/Syowa",utcOffset:180,offsetStr:"+03:00",countries:["AQ"]},{name:"Antarctica/Troll",utcOffset:0,offsetStr:"+00:00",countries:["AQ"]},{name:"America/Argentina/Buenos_Aires",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Cordoba",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Salta",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Jujuy",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Tucuman",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Catamarca",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/La_Rioja",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/San_Juan",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Mendoza",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/San_Luis",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Rio_Gallegos",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Ushuaia",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"Pacific/Pago_Pago",utcOffset:-660,offsetStr:"-11:00",countries:["AS","UM"]},{name:"Europe/Vienna",utcOffset:60,offsetStr:"+01:00",countries:["AT"]},{name:"Australia/Lord_Howe",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},{name:"Antarctica/Macquarie",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},{name:"Australia/Hobart",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},{name:"Australia/Currie",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},{name:"Australia/Melbourne",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},{name:"Australia/Sydney",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},{name:"Australia/Broken_Hill",utcOffset:630,offsetStr:"+10:30",countries:["AU"]},{name:"Australia/Brisbane",utcOffset:600,offsetStr:"+10:00",countries:["AU"]},{name:"Australia/Lindeman",utcOffset:600,offsetStr:"+10:00",countries:["AU"]},{name:"Australia/Adelaide",utcOffset:630,offsetStr:"+10:30",countries:["AU"]},{name:"Australia/Darwin",utcOffset:570,offsetStr:"+09:30",countries:["AU"]},{name:"Australia/Perth",utcOffset:480,offsetStr:"+08:00",countries:["AU"]},{name:"Australia/Eucla",utcOffset:525,offsetStr:"+08:45",countries:["AU"]},{name:"Asia/Baku",utcOffset:240,offsetStr:"+04:00",countries:["AZ"]},{name:"America/Barbados",utcOffset:-240,offsetStr:"-04:00",countries:["BB"]},{name:"Asia/Dhaka",utcOffset:360,offsetStr:"+06:00",countries:["BD"]},{name:"Europe/Brussels",utcOffset:60,offsetStr:"+01:00",countries:["BE"]},{name:"Europe/Sofia",utcOffset:120,offsetStr:"+02:00",countries:["BG"]},{name:"Atlantic/Bermuda",utcOffset:-240,offsetStr:"-04:00",countries:["BM"]},{name:"Asia/Brunei",utcOffset:480,offsetStr:"+08:00",countries:["BN"]},{name:"America/La_Paz",utcOffset:-240,offsetStr:"-04:00",countries:["BO"]},{name:"America/Noronha",utcOffset:-120,offsetStr:"-02:00",countries:["BR"]},{name:"America/Belem",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Fortaleza",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Recife",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Araguaina",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Maceio",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Bahia",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Sao_Paulo",utcOffset:-120,offsetStr:"-02:00",countries:["BR"]},{name:"America/Campo_Grande",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Cuiaba",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Santarem",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Porto_Velho",utcOffset:-240,offsetStr:"-04:00",countries:["BR"]},{name:"America/Boa_Vista",utcOffset:-240,offsetStr:"-04:00",countries:["BR"]},{name:"America/Manaus",utcOffset:-240,offsetStr:"-04:00",countries:["BR"]},{name:"America/Eirunepe",utcOffset:-300,offsetStr:"-05:00",countries:["BR"]},{name:"America/Rio_Branco",utcOffset:-300,offsetStr:"-05:00",countries:["BR"]},{name:"America/Nassau",utcOffset:-300,offsetStr:"-05:00",countries:["BS"]},{name:"Asia/Thimphu",utcOffset:360,offsetStr:"+06:00",countries:["BT"]},{name:"Europe/Minsk",utcOffset:180,offsetStr:"+03:00",countries:["BY"]},{name:"America/Belize",utcOffset:-360,offsetStr:"-06:00",countries:["BZ"]},{name:"America/St_Johns",utcOffset:-210,offsetStr:"-03:30",countries:["CA"]},{name:"America/Halifax",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},{name:"America/Glace_Bay",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},{name:"America/Moncton",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},{name:"America/Goose_Bay",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},{name:"America/Blanc-Sablon",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},{name:"America/Toronto",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},{name:"America/Nipigon",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},{name:"America/Thunder_Bay",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},{name:"America/Iqaluit",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},{name:"America/Pangnirtung",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},{name:"America/Resolute",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},{name:"America/Atikokan",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},{name:"America/Rankin_Inlet",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},{name:"America/Winnipeg",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},{name:"America/Rainy_River",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},{name:"America/Regina",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},{name:"America/Swift_Current",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},{name:"America/Edmonton",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Cambridge_Bay",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Yellowknife",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Inuvik",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Creston",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Dawson_Creek",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Fort_Nelson",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Vancouver",utcOffset:-480,offsetStr:"-08:00",countries:["CA"]},{name:"America/Whitehorse",utcOffset:-480,offsetStr:"-08:00",countries:["CA"]},{name:"America/Dawson",utcOffset:-480,offsetStr:"-08:00",countries:["CA"]},{name:"Indian/Cocos",utcOffset:390,offsetStr:"+06:30",countries:["CC"]},{name:"Europe/Zurich",utcOffset:60,offsetStr:"+01:00",countries:["CH","DE","LI"]},{name:"Africa/Abidjan",utcOffset:0,offsetStr:"+00:00",countries:["CI","BF","GM","GN","ML","MR","SH","SL","SN","ST","TG"]},{name:"Pacific/Rarotonga",utcOffset:-600,offsetStr:"-10:00",countries:["CK"]},{name:"America/Santiago",utcOffset:-180,offsetStr:"-03:00",countries:["CL"]},{name:"Pacific/Easter",utcOffset:-300,offsetStr:"-05:00",countries:["CL"]},{name:"Asia/Shanghai",utcOffset:480,offsetStr:"+08:00",countries:["CN"]},{name:"Asia/Urumqi",utcOffset:360,offsetStr:"+06:00",countries:["CN"]},{name:"America/Bogota",utcOffset:-300,offsetStr:"-05:00",countries:["CO"]},{name:"America/Costa_Rica",utcOffset:-360,offsetStr:"-06:00",countries:["CR"]},{name:"America/Havana",utcOffset:-300,offsetStr:"-05:00",countries:["CU"]},{name:"Atlantic/Cape_Verde",utcOffset:-60,offsetStr:"-01:00",countries:["CV"]},{name:"America/Curacao",utcOffset:-240,offsetStr:"-04:00",countries:["CW","AW","BQ","SX"]},{name:"Indian/Christmas",utcOffset:420,offsetStr:"+07:00",countries:["CX"]},{name:"Asia/Nicosia",utcOffset:120,offsetStr:"+02:00",countries:["CY"]},{name:"Europe/Prague",utcOffset:60,offsetStr:"+01:00",countries:["CZ","SK"]},{name:"Europe/Berlin",utcOffset:60,offsetStr:"+01:00",countries:["DE"]},{name:"Europe/Copenhagen",utcOffset:60,offsetStr:"+01:00",countries:["DK"]},{name:"America/Santo_Domingo",utcOffset:-240,offsetStr:"-04:00",countries:["DO"]},{name:"Africa/Algiers",utcOffset:60,offsetStr:"+01:00",countries:["DZ"]},{name:"America/Guayaquil",utcOffset:-300,offsetStr:"-05:00",countries:["EC"]},{name:"Pacific/Galapagos",utcOffset:-360,offsetStr:"-06:00",countries:["EC"]},{name:"Europe/Tallinn",utcOffset:120,offsetStr:"+02:00",countries:["EE"]},{name:"Africa/Cairo",utcOffset:120,offsetStr:"+02:00",countries:["EG"]},{name:"Africa/El_Aaiun",utcOffset:0,offsetStr:"+00:00",countries:["EH"]},{name:"Europe/Madrid",utcOffset:60,offsetStr:"+01:00",countries:["ES"]},{name:"Africa/Ceuta",utcOffset:60,offsetStr:"+01:00",countries:["ES"]},{name:"Atlantic/Canary",utcOffset:0,offsetStr:"+00:00",countries:["ES"]},{name:"Europe/Helsinki",utcOffset:120,offsetStr:"+02:00",countries:["FI","AX"]},{name:"Pacific/Fiji",utcOffset:720,offsetStr:"+12:00",countries:["FJ"]},{name:"Atlantic/Stanley",utcOffset:-180,offsetStr:"-03:00",countries:["FK"]},{name:"Pacific/Chuuk",utcOffset:600,offsetStr:"+10:00",countries:["FM"]},{name:"Pacific/Pohnpei",utcOffset:660,offsetStr:"+11:00",countries:["FM"]},{name:"Pacific/Kosrae",utcOffset:660,offsetStr:"+11:00",countries:["FM"]},{name:"Atlantic/Faroe",utcOffset:0,offsetStr:"+00:00",countries:["FO"]},{name:"Europe/Paris",utcOffset:60,offsetStr:"+01:00",countries:["FR"]},{name:"Europe/London",utcOffset:0,offsetStr:"+00:00",countries:["GB","GG","IM","JE"]},{name:"Asia/Tbilisi",utcOffset:240,offsetStr:"+04:00",countries:["GE"]},{name:"America/Cayenne",utcOffset:-180,offsetStr:"-03:00",countries:["GF"]},{name:"Africa/Accra",utcOffset:0,offsetStr:"+00:00",countries:["GH"]},{name:"Europe/Gibraltar",utcOffset:60,offsetStr:"+01:00",countries:["GI"]},{name:"America/Godthab",utcOffset:-180,offsetStr:"-03:00",countries:["GL"]},{name:"America/Danmarkshavn",utcOffset:0,offsetStr:"+00:00",countries:["GL"]},{name:"America/Scoresbysund",utcOffset:-60,offsetStr:"-01:00",countries:["GL"]},{name:"America/Thule",utcOffset:-240,offsetStr:"-04:00",countries:["GL"]},{name:"Europe/Athens",utcOffset:120,offsetStr:"+02:00",countries:["GR"]},{name:"Atlantic/South_Georgia",utcOffset:-120,offsetStr:"-02:00",countries:["GS"]},{name:"America/Guatemala",utcOffset:-360,offsetStr:"-06:00",countries:["GT"]},{name:"Pacific/Guam",utcOffset:600,offsetStr:"+10:00",countries:["GU","MP"]},{name:"Africa/Bissau",utcOffset:0,offsetStr:"+00:00",countries:["GW"]},{name:"America/Guyana",utcOffset:-240,offsetStr:"-04:00",countries:["GY"]},{name:"Asia/Hong_Kong",utcOffset:480,offsetStr:"+08:00",countries:["HK"]},{name:"America/Tegucigalpa",utcOffset:-360,offsetStr:"-06:00",countries:["HN"]},{name:"America/Port-au-Prince",utcOffset:-300,offsetStr:"-05:00",countries:["HT"]},{name:"Europe/Budapest",utcOffset:60,offsetStr:"+01:00",countries:["HU"]},{name:"Asia/Jakarta",utcOffset:420,offsetStr:"+07:00",countries:["ID"]},{name:"Asia/Pontianak",utcOffset:420,offsetStr:"+07:00",countries:["ID"]},{name:"Asia/Makassar",utcOffset:480,offsetStr:"+08:00",countries:["ID"]},{name:"Asia/Jayapura",utcOffset:540,offsetStr:"+09:00",countries:["ID"]},{name:"Europe/Dublin",utcOffset:0,offsetStr:"+00:00",countries:["IE"]},{name:"Asia/Jerusalem",utcOffset:120,offsetStr:"+02:00",countries:["IL"]},{name:"Asia/Kolkata",utcOffset:330,offsetStr:"+05:30",countries:["IN"]},{name:"Indian/Chagos",utcOffset:360,offsetStr:"+06:00",countries:["IO"]},{name:"Asia/Baghdad",utcOffset:180,offsetStr:"+03:00",countries:["IQ"]},{name:"Asia/Tehran",utcOffset:210,offsetStr:"+03:30",countries:["IR"]},{name:"Atlantic/Reykjavik",utcOffset:0,offsetStr:"+00:00",countries:["IS"]},{name:"Europe/Rome",utcOffset:60,offsetStr:"+01:00",countries:["IT","SM","VA"]},{name:"America/Jamaica",utcOffset:-300,offsetStr:"-05:00",countries:["JM"]},{name:"Asia/Amman",utcOffset:120,offsetStr:"+02:00",countries:["JO"]},{name:"Asia/Tokyo",utcOffset:540,offsetStr:"+09:00",countries:["JP"]},{name:"Africa/Nairobi",utcOffset:180,offsetStr:"+03:00",countries:["KE","DJ","ER","ET","KM","MG","SO","TZ","UG","YT"]},{name:"Asia/Bishkek",utcOffset:360,offsetStr:"+06:00",countries:["KG"]},{name:"Pacific/Tarawa",utcOffset:720,offsetStr:"+12:00",countries:["KI"]},{name:"Pacific/Enderbury",utcOffset:780,offsetStr:"+13:00",countries:["KI"]},{name:"Pacific/Kiritimati",utcOffset:840,offsetStr:"+14:00",countries:["KI"]},{name:"Asia/Pyongyang",utcOffset:510,offsetStr:"+08:30",countries:["KP"]},{name:"Asia/Seoul",utcOffset:540,offsetStr:"+09:00",countries:["KR"]},{name:"America/Cayman",utcOffset:-300,offsetStr:"-05:00",countries:["KY"]},{name:"Asia/Almaty",utcOffset:360,offsetStr:"+06:00",countries:["KZ"]},{name:"Asia/Qyzylorda",utcOffset:360,offsetStr:"+06:00",countries:["KZ"]},{name:"Asia/Aqtobe",utcOffset:300,offsetStr:"+05:00",countries:["KZ"]},{name:"Asia/Aqtau",utcOffset:300,offsetStr:"+05:00",countries:["KZ"]},{name:"Asia/Oral",utcOffset:300,offsetStr:"+05:00",countries:["KZ"]},{name:"Asia/Beirut",utcOffset:120,offsetStr:"+02:00",countries:["LB"]},{name:"Asia/Colombo",utcOffset:330,offsetStr:"+05:30",countries:["LK"]},{name:"Africa/Monrovia",utcOffset:0,offsetStr:"+00:00",countries:["LR"]},{name:"Europe/Vilnius",utcOffset:120,offsetStr:"+02:00",countries:["LT"]},{name:"Europe/Luxembourg",utcOffset:60,offsetStr:"+01:00",countries:["LU"]},{name:"Europe/Riga",utcOffset:120,offsetStr:"+02:00",countries:["LV"]},{name:"Africa/Tripoli",utcOffset:120,offsetStr:"+02:00",countries:["LY"]},{name:"Africa/Casablanca",utcOffset:0,offsetStr:"+00:00",countries:["MA"]},{name:"Europe/Monaco",utcOffset:60,offsetStr:"+01:00",countries:["MC"]},{name:"Europe/Chisinau",utcOffset:120,offsetStr:"+02:00",countries:["MD"]},{name:"Pacific/Majuro",utcOffset:720,offsetStr:"+12:00",countries:["MH"]},{name:"Pacific/Kwajalein",utcOffset:720,offsetStr:"+12:00",countries:["MH"]},{name:"Asia/Rangoon",utcOffset:390,offsetStr:"+06:30",countries:["MM"]},{name:"Asia/Ulaanbaatar",utcOffset:480,offsetStr:"+08:00",countries:["MN"]},{name:"Asia/Hovd",utcOffset:420,offsetStr:"+07:00",countries:["MN"]},{name:"Asia/Choibalsan",utcOffset:480,offsetStr:"+08:00",countries:["MN"]},{name:"Asia/Macau",utcOffset:480,offsetStr:"+08:00",countries:["MO"]},{name:"America/Martinique",utcOffset:-240,offsetStr:"-04:00",countries:["MQ"]},{name:"Europe/Malta",utcOffset:60,offsetStr:"+01:00",countries:["MT"]},{name:"Indian/Mauritius",utcOffset:240,offsetStr:"+04:00",countries:["MU"]},{name:"Indian/Maldives",utcOffset:300,offsetStr:"+05:00",countries:["MV"]},{name:"America/Mexico_City",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},{name:"America/Cancun",utcOffset:-300,offsetStr:"-05:00",countries:["MX"]},{name:"America/Merida",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},{name:"America/Monterrey",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},{name:"America/Matamoros",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},{name:"America/Mazatlan",utcOffset:-420,offsetStr:"-07:00",countries:["MX"]},{name:"America/Chihuahua",utcOffset:-420,offsetStr:"-07:00",countries:["MX"]},{name:"America/Ojinaga",utcOffset:-420,offsetStr:"-07:00",countries:["MX"]},{name:"America/Hermosillo",utcOffset:-420,offsetStr:"-07:00",countries:["MX"]},{name:"America/Tijuana",utcOffset:-480,offsetStr:"-08:00",countries:["MX"]},{name:"America/Santa_Isabel",utcOffset:-480,offsetStr:"-08:00",countries:["MX"]},{name:"America/Bahia_Banderas",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},{name:"Asia/Kuala_Lumpur",utcOffset:480,offsetStr:"+08:00",countries:["MY"]},{name:"Asia/Kuching",utcOffset:480,offsetStr:"+08:00",countries:["MY"]},{name:"Africa/Maputo",utcOffset:120,offsetStr:"+02:00",countries:["MZ","BI","BW","CD","MW","RW","ZM","ZW"]},{name:"Africa/Windhoek",utcOffset:120,offsetStr:"+02:00",countries:["NA"]},{name:"Pacific/Noumea",utcOffset:660,offsetStr:"+11:00",countries:["NC"]},{name:"Pacific/Norfolk",utcOffset:660,offsetStr:"+11:00",countries:["NF"]},{name:"Africa/Lagos",utcOffset:60,offsetStr:"+01:00",countries:["NG","AO","BJ","CD","CF","CG","CM","GA","GQ","NE"]},{name:"America/Managua",utcOffset:-360,offsetStr:"-06:00",countries:["NI"]},{name:"Europe/Amsterdam",utcOffset:60,offsetStr:"+01:00",countries:["NL"]},{name:"Europe/Oslo",utcOffset:60,offsetStr:"+01:00",countries:["NO","SJ"]},{name:"Asia/Kathmandu",utcOffset:345,offsetStr:"+05:45",countries:["NP"]},{name:"Pacific/Nauru",utcOffset:720,offsetStr:"+12:00",countries:["NR"]},{name:"Pacific/Niue",utcOffset:-660,offsetStr:"-11:00",countries:["NU"]},{name:"Pacific/Auckland",utcOffset:780,offsetStr:"+13:00",countries:["NZ","AQ"]},{name:"Pacific/Chatham",utcOffset:825,offsetStr:"+13:45",countries:["NZ"]},{name:"America/Panama",utcOffset:-300,offsetStr:"-05:00",countries:["PA"]},{name:"America/Lima",utcOffset:-300,offsetStr:"-05:00",countries:["PE"]},{name:"Pacific/Tahiti",utcOffset:-600,offsetStr:"-10:00",countries:["PF"]},{name:"Pacific/Marquesas",utcOffset:-570,offsetStr:"-09:30",countries:["PF"]},{name:"Pacific/Gambier",utcOffset:-540,offsetStr:"-09:00",countries:["PF"]},{name:"Pacific/Port_Moresby",utcOffset:600,offsetStr:"+10:00",countries:["PG"]},{name:"Pacific/Bougainville",utcOffset:660,offsetStr:"+11:00",countries:["PG"]},{name:"Asia/Manila",utcOffset:480,offsetStr:"+08:00",countries:["PH"]},{name:"Asia/Karachi",utcOffset:300,offsetStr:"+05:00",countries:["PK"]},{name:"Europe/Warsaw",utcOffset:60,offsetStr:"+01:00",countries:["PL"]},{name:"America/Miquelon",utcOffset:-180,offsetStr:"-03:00",countries:["PM"]},{name:"Pacific/Pitcairn",utcOffset:-480,offsetStr:"-08:00",countries:["PN"]},{name:"America/Puerto_Rico",utcOffset:-240,offsetStr:"-04:00",countries:["PR"]},{name:"Asia/Gaza",utcOffset:120,offsetStr:"+02:00",countries:["PS"]},{name:"Asia/Hebron",utcOffset:120,offsetStr:"+02:00",countries:["PS"]},{name:"Europe/Lisbon",utcOffset:0,offsetStr:"+00:00",countries:["PT"]},{name:"Atlantic/Madeira",utcOffset:0,offsetStr:"+00:00",countries:["PT"]},{name:"Atlantic/Azores",utcOffset:-60,offsetStr:"-01:00",countries:["PT"]},{name:"Pacific/Palau",utcOffset:540,offsetStr:"+09:00",countries:["PW"]},{name:"America/Asuncion",utcOffset:-180,offsetStr:"-03:00",countries:["PY"]},{name:"Asia/Qatar",utcOffset:180,offsetStr:"+03:00",countries:["QA","BH"]},{name:"Indian/Reunion",utcOffset:240,offsetStr:"+04:00",countries:["RE","TF"]},{name:"Europe/Bucharest",utcOffset:120,offsetStr:"+02:00",countries:["RO"]},{name:"Europe/Belgrade",utcOffset:60,offsetStr:"+01:00",countries:["RS","BA","HR","ME","MK","SI"]},{name:"Europe/Kaliningrad",utcOffset:120,offsetStr:"+02:00",countries:["RU"]},{name:"Europe/Moscow",utcOffset:180,offsetStr:"+03:00",countries:["RU"]},{name:"Europe/Simferopol",utcOffset:180,offsetStr:"+03:00",countries:["RU"]},{name:"Europe/Volgograd",utcOffset:180,offsetStr:"+03:00",countries:["RU"]},{name:"Europe/Samara",utcOffset:240,offsetStr:"+04:00",countries:["RU"]},{name:"Asia/Yekaterinburg",utcOffset:300,offsetStr:"+05:00",countries:["RU"]},{name:"Asia/Omsk",utcOffset:360,offsetStr:"+06:00",countries:["RU"]},{name:"Asia/Novosibirsk",utcOffset:360,offsetStr:"+06:00",countries:["RU"]},{name:"Asia/Novokuznetsk",utcOffset:420,offsetStr:"+07:00",countries:["RU"]},{name:"Asia/Krasnoyarsk",utcOffset:420,offsetStr:"+07:00",countries:["RU"]},{name:"Asia/Irkutsk",utcOffset:480,offsetStr:"+08:00",countries:["RU"]},{name:"Asia/Chita",utcOffset:480,offsetStr:"+08:00",countries:["RU"]},{name:"Asia/Yakutsk",utcOffset:540,offsetStr:"+09:00",countries:["RU"]},{name:"Asia/Khandyga",utcOffset:540,offsetStr:"+09:00",countries:["RU"]},{name:"Asia/Vladivostok",utcOffset:600,offsetStr:"+10:00",countries:["RU"]},{name:"Asia/Sakhalin",utcOffset:600,offsetStr:"+10:00",countries:["RU"]},{name:"Asia/Ust-Nera",utcOffset:600,offsetStr:"+10:00",countries:["RU"]},{name:"Asia/Magadan",utcOffset:600,offsetStr:"+10:00",countries:["RU"]},{name:"Asia/Srednekolymsk",utcOffset:660,offsetStr:"+11:00",countries:["RU"]},{name:"Asia/Kamchatka",utcOffset:720,offsetStr:"+12:00",countries:["RU"]},{name:"Asia/Anadyr",utcOffset:720,offsetStr:"+12:00",countries:["RU"]},{name:"Asia/Riyadh",utcOffset:180,offsetStr:"+03:00",countries:["SA","KW","YE"]},{name:"Pacific/Guadalcanal",utcOffset:660,offsetStr:"+11:00",countries:["SB"]},{name:"Indian/Mahe",utcOffset:240,offsetStr:"+04:00",countries:["SC"]},{name:"Africa/Khartoum",utcOffset:180,offsetStr:"+03:00",countries:["SD","SS"]},{name:"Europe/Stockholm",utcOffset:60,offsetStr:"+01:00",countries:["SE"]},{name:"Asia/Singapore",utcOffset:480,offsetStr:"+08:00",countries:["SG"]},{name:"America/Paramaribo",utcOffset:-180,offsetStr:"-03:00",countries:["SR"]},{name:"America/El_Salvador",utcOffset:-360,offsetStr:"-06:00",countries:["SV"]},{name:"Asia/Damascus",utcOffset:120,offsetStr:"+02:00",countries:["SY"]},{name:"America/Grand_Turk",utcOffset:-240,offsetStr:"-04:00",countries:["TC"]},{name:"Africa/Ndjamena",utcOffset:60,offsetStr:"+01:00",countries:["TD"]},{name:"Indian/Kerguelen",utcOffset:300,offsetStr:"+05:00",countries:["TF"]},{name:"Asia/Bangkok",utcOffset:420,offsetStr:"+07:00",countries:["TH","KH","LA","VN"]},{name:"Asia/Dushanbe",utcOffset:300,offsetStr:"+05:00",countries:["TJ"]},{name:"Pacific/Fakaofo",utcOffset:780,offsetStr:"+13:00",countries:["TK"]},{name:"Asia/Dili",utcOffset:540,offsetStr:"+09:00",countries:["TL"]},{name:"Asia/Ashgabat",utcOffset:300,offsetStr:"+05:00",countries:["TM"]},{name:"Africa/Tunis",utcOffset:60,offsetStr:"+01:00",countries:["TN"]},{name:"Pacific/Tongatapu",utcOffset:780,offsetStr:"+13:00",countries:["TO"]},{name:"Europe/Istanbul",utcOffset:120,offsetStr:"+02:00",countries:["TR"]},{name:"America/Port_of_Spain",utcOffset:-240,offsetStr:"-04:00",countries:["TT","AG","AI","BL","DM","GD","GP","KN","LC","MF","MS","VC","VG","VI"]},{name:"Pacific/Funafuti",utcOffset:720,offsetStr:"+12:00",countries:["TV"]},{name:"Asia/Taipei",utcOffset:480,offsetStr:"+08:00",countries:["TW"]},{name:"Europe/Kiev",utcOffset:120,offsetStr:"+02:00",countries:["UA"]},{name:"Europe/Uzhgorod",utcOffset:120,offsetStr:"+02:00",countries:["UA"]},{name:"Europe/Zaporozhye",utcOffset:120,offsetStr:"+02:00",countries:["UA"]},{name:"Pacific/Wake",utcOffset:720,offsetStr:"+12:00",countries:["UM"]},{name:"America/New_York",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Detroit",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Kentucky/Louisville",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Kentucky/Monticello",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Indiana/Indianapolis",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Indiana/Vincennes",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Indiana/Winamac",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Indiana/Marengo",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Indiana/Petersburg",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Indiana/Vevay",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Chicago",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/Indiana/Tell_City",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/Indiana/Knox",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/Menominee",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/North_Dakota/Center",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/North_Dakota/New_Salem",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/North_Dakota/Beulah",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/Denver",utcOffset:-420,offsetStr:"-07:00",countries:["US"]},{name:"America/Boise",utcOffset:-420,offsetStr:"-07:00",countries:["US"]},{name:"America/Phoenix",utcOffset:-420,offsetStr:"-07:00",countries:["US"]},{name:"America/Los_Angeles",utcOffset:-480,offsetStr:"-08:00",countries:["US"]},{name:"America/Metlakatla",utcOffset:-480,offsetStr:"-08:00",countries:["US"]},{name:"America/Anchorage",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},{name:"America/Juneau",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},{name:"America/Sitka",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},{name:"America/Yakutat",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},{name:"America/Nome",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},{name:"America/Adak",utcOffset:-600,offsetStr:"-10:00",countries:["US"]},{name:"Pacific/Honolulu",utcOffset:-600,offsetStr:"-10:00",countries:["US","UM"]},{name:"America/Montevideo",utcOffset:-180,offsetStr:"-03:00",countries:["UY"]},{name:"Asia/Samarkand",utcOffset:300,offsetStr:"+05:00",countries:["UZ"]},{name:"Asia/Tashkent",utcOffset:300,offsetStr:"+05:00",countries:["UZ"]},{name:"America/Caracas",utcOffset:-270,offsetStr:"-04:30",countries:["VE"]},{name:"Asia/Ho_Chi_Minh",utcOffset:420,offsetStr:"+07:00",countries:["VN"]},{name:"Pacific/Efate",utcOffset:660,offsetStr:"+11:00",countries:["VU"]},{name:"Pacific/Wallis",utcOffset:720,offsetStr:"+12:00",countries:["WF"]},{name:"Pacific/Apia",utcOffset:840,offsetStr:"+14:00",countries:["WS"]},{name:"Africa/Johannesburg",utcOffset:120,offsetStr:"+02:00",countries:["ZA","LS","SZ"]}]}],templateUrl:"app/core/directives/ms-timezone/ms-timezone.html"}})}(),function(){"use strict";angular.module("app.core").controller("MsWidgetEngineCounterController",function(){var a=this;a.filter=[],a.filtered=!1,a.fontSize=20,a.getCount=function(e){var n=0;if(e){a.fontSize=e.attrs[2]&&e.attrs[2].value?parseInt(e.attrs[2].value)-parseInt(e.attrs[2].value)%2:20,e.attrs[1].value&&e.attrs[1].value.length?(a.filtered=!0,a.filter=_.intersection(e.voiceQueuesSelected,e.attrs[1].value)):(a.filtered=!1,a.filter=e.voiceQueuesSelected);for(var t=0;t<e.voiceQueues.rows.length;t+=1)_.includes(a.filter,e.voiceQueues.rows[t].id)&&(n+=e.voiceQueues.rows[t][e.attrs[0].value]?parseInt(e.voiceQueues.rows[t][e.attrs[0].value]):0)}return n}})}(),function(){"use strict";function e(o,e){var r=this;r.filter=[],r.filtered=!1,r.properties=[],r.multiBarChart={labels:["QUEUE_NAME"],series:["TOTAL"],data:[[50]],options:{responsive:!0,legend:{display:!0,fontColor:"#2196f3"},scales:{xAxes:[{gridLines:{display:!0},ticks:{fontColor:"#2196f3",stepSize:1,beginAtZero:!0}}],yAxes:[{gridLines:{display:!1},ticks:{fontColor:"#2196f3"}}]}}},r.getMultiBarChart=function(e){e&&(e.attrs&&function(e){r.properties=_.map(_.filter(e.attrs,function(e){return e.name&&0<=e.name.indexOf("attrSerie")&&e.value&&"null"!==e.value}),"value"),e.attrs[3].value&&e.attrs[3].value.length?(r.filtered=!0,r.filter=_.intersection(e.voiceQueuesSelected,e.attrs[3].value)):(r.filtered=!1,r.filter=e.voiceQueuesSelected);if(r.multiBarChart.series.length>r.properties.length){var n=r.multiBarChart.series.length-r.properties.length;r.multiBarChart.series.splice(0,n),r.multiBarChart.data.splice(0,n)}for(var t=0;t<r.properties.length;t+=1){if(r.multiBarChart.series[t]=o.instant("TOOLS."+r.properties[t].toUpperCase()),_.isNil(r.multiBarChart.data[t])&&(r.multiBarChart.data[t]=[]),r.multiBarChart.labels.length>r.filter.length){var a=r.multiBarChart.labels.length-r.filter.length;r.multiBarChart.labels.splice(0,a),r.multiBarChart.data[t].splice(0,a)}for(var i=0,s=0;i<e.voiceQueues.rows.length;i+=1)_.includes(r.filter,e.voiceQueues.rows[i].id)&&(r.multiBarChart.labels[s]=e.voiceQueues.rows[i].name,r.multiBarChart.data[t][s]=e.voiceQueues.rows[i][r.properties[t]]?parseInt(e.voiceQueues.rows[i][r.properties[t]]):0,s+=1)}}(e),e.foreground&&function(e){r.multiBarChart.options.legend.fontColor=e.foreground;for(var n=0;n<r.multiBarChart.options.scales.xAxes.length;n+=1)r.multiBarChart.options.scales.xAxes[n].ticks.fontColor=e.foreground;for(var t=0;t<r.multiBarChart.options.scales.yAxes.length;t+=1)r.multiBarChart.options.scales.yAxes[t].ticks.fontColor=e.foreground}(e))}}e.$inject=["$translate","socket"],angular.module("app.core").controller("MsWidgetEngineMultibarChartController",e)}(),function(){"use strict";function e(s){var o=this;o.filter=[],o.filtered=!1,o.properties=[],o.pieChart={labels:["ANSWERED"],data:[30],options:{responsive:!0,legend:{display:!0}}},o.getPieChart=function(e){e&&(e.attrs&&function(e){o.properties=_.map(_.filter(e.attrs,function(e){return e.name&&0<=e.name.indexOf("attrSerie")&&e.value&&"null"!==e.value}),"value"),e.attrs[3].value&&e.attrs[3].value.length?(o.filtered=!0,o.filter=_.intersection(e.voiceQueuesSelected,e.attrs[3].value)):(o.filtered=!1,o.filter=e.voiceQueuesSelected);if(o.pieChart.labels.length>o.properties.length){var n=o.pieChart.labels.length-o.properties.length;o.pieChart.labels.splice(0,n),o.pieChart.data.splice(0,n)}for(var t=0,a=0;t<o.properties.length;t+=1){o.pieChart.labels[t]=s.instant("TOOLS."+o.properties[t].toUpperCase());for(var i=0;i<e.voiceQueues.rows.length;i+=1)_.includes(o.filter,e.voiceQueues.rows[i].id)&&(a+=e.voiceQueues.rows[i][o.properties[t]]?parseInt(e.voiceQueues.rows[i][o.properties[t]]):0);o.pieChart.data[t]=a,a=0}}(e),e.foreground&&(n=e,o.pieChart.options.legend.fontColor=n.foreground));var n}}e.$inject=["$translate"],angular.module("app.core").controller("MsWidgetEnginePieChartController",e)}(),function(){"use strict";function e(e,t,a,i){var s=this;function n(e){s.results=e||{count:0,rows:[]}}function o(){s.query.offset=(s.query.page-1)*s.query.limit,s.promise=i[s.reportRoute].run(s.query,n).$promise}s.countDown=0,s.refresh=0,s.title="",s.columns=[],s.results={rows:[],count:0},s.query={limit:10,page:1,startDate:moment().startOf("day").format("YYYY-MM-DD HH:mm:ss"),endDate:moment().endOf("day").format("YYYY-MM-DD HH:mm:ss"),output:"web"},s.onInit=function e(n){n&&n.attrs&&(n.attrs[0]&&n.attrs[0].value&&(s.query.id=n.attrs[0].value,i.analyticFieldReport.get({fields:"field,alias",nolimit:!0,DefaultReportId:"default"===n.attrs[0].type?n.attrs[0].value:void 0,CustomReportId:"custom"===n.attrs[0].type?n.attrs[0].value:void 0}).$promise.then(function(e){switch(e&&e.rows&&(s.columns=e.rows),n.attrs[0].type){case"default":s.reportRoute="analyticDefaultReport";break;case"custom":s.reportRoute="analyticCustomReport"}return i[s.reportRoute].get({id:n.attrs[0].value,fields:"id,name"}).$promise}).then(function(e){e&&e.name&&(s.title=e.name),o()}).catch(function(e){console.log(e)})),n.attrs[1]&&n.attrs[1].value&&(s.refresh=parseInt(n.attrs[1].value),!_.isNaN(s.refresh)&&0<s.refresh?(s.countDown=parseInt(n.attrs[1].value),s.interval=a(function(){s.countDown-=1},1e3,0),s.timeout=t(function(){s.interval&&a.cancel(s.interval),e(n)},1e3*s.refresh)):(s.interval&&a.cancel(s.interval),s.timeout&&t.cancel(s.timeout))))},s.getResults=o,s.valueReplacer=function(e,n){moment(n,"YYYY-MM-DDTHH:mm:ssZ",!0).isValid()&&(n=moment(n,"").format("YYYY-MM-DD HH:mm:ss"));return n},e.$on("$destroy",function(){s.interval&&a.cancel(s.interval),s.timeout&&t.cancel(s.timeout)})}e.$inject=["$scope","$timeout","$interval","api"],angular.module("app.core").controller("MsWidgetEngineWebReportController",e)}(),function(){"use strict";function e(e,n){this.getTrustedURL=function(e){return n.trustAsResourceUrl(e)}}function n(e){return{restrict:"E",scope:{config:"=?",onEdit:"&?",onDelete:"&?"},require:"msWidgetEngine",controller:"MsWidgetEngineController",controllerAs:"vm",bindToController:!0,templateUrl:"app/core/directives/ms-widget-engine/ms-widget-engine.html"}}e.$inject=["$mdDialog","$sce"],n.$inject=["$document"],angular.module("app.core").controller("MsWidgetEngineController",e).directive("msWidgetEngine",n)}(),function(){"use strict";function e(e,n){var t=this;t.flipped=!1,t.flip=function(){if(!angular.isDefined(e.flippable)||!0!==e.flippable)return;t.flipped=!t.flipped,n.toggleClass("flipped",t.flipped)}}e.$inject=["$scope","$element"],angular.module("app.core").controller("MsWidgetController",e).directive("msWidget",function(){return{restrict:"E",scope:{flippable:"=?"},controller:"MsWidgetController",transclude:!0,compile:function(e){return e.addClass("ms-widget"),function(e,n,t,a,i){i(function(e){n.empty(),n.append(e)})}}}}).directive("msWidgetFront",function(){return{restrict:"E",require:"^msWidget",transclude:!0,compile:function(e){return e.addClass("ms-widget-front"),function(e,n,t,a,i){i(function(e){n.empty(),n.append(e)}),e.flipWidget=a.flip}}}}).directive("msWidgetBack",function(){return{restrict:"E",require:"^msWidget",transclude:!0,compile:function(e){return e.addClass("ms-widget-back"),function(e,n,t,a,i){i(function(e){n.empty(),n.append(e)}),e.flipWidget=a.flip}}}})}(),function(){"use strict";function e(s,n,o,r){return{restrict:"A",require:"?ngModel",link:function(t,a,e,i){o.isAdmin()||o.isTelephone()||(""!==e.privacy||o.getCurrentUser().privacyEnabled)&&!1!==t.$eval(e.privacy)&&(i?(i.$formatters.push(function(e){if(!e)return e;var n=r.mask(e);return i.$setViewValue(n),i.$render(),i.$viewValue}),i.$parsers.push(function(){return i.$modelValue}),a[0].disabled=!0):n(function(){s(a.contents())(t);var e=a.text();if(e){var n=r.mask(e);a.text(n)}}))}}}e.$inject=["$compile","$timeout","Auth","privacyManager"],angular.module("app.core").directive("privacy",e)}(),function(){"use strict";function e(o,r,i,l,d){var e={get:function(s,a){return o(function(n,t){0===a.offset&&(s=void 0);var e=_.merge({},a);i.cmContact.getJourney(e).$promise.then(function(e){var a,n=_(e.rows).uniqBy(function(e){return e.channel}).map("channel").value();return(a=n,o(function(e,n){var t=a.map(function(n){if("voice"!==n){var e="get"+_.startCase(n)+("chat"===n?"Websites":"Accounts");return i.user[e]({id:l.getCurrentUser().id,attributes:["id","name"],nolimit:!0}).$promise.then(function(e){c[n]=e.rows})}});return Promise.all(t).then(function(){e()}).catch(function(e){n(e)})})).then(function(){return e.rows.forEach(function(e){var n;e.canOpen=function(e){switch(e.channel){case"chat":return!!c.chat&&_.some(c.chat,["id",e.ChatWebsiteId]);case"fax":return!!c.fax&&_.some(c.fax,["id",e.FaxAccountId]);case"mail":return!!c.mail&&_.some(c.mail,["id",e.MailAccountId]);case"openchannel":return!!c.openchannel&&_.some(c.openchannel,["id",e.OpenchannelAccountId]);case"sms":return!!c.sms&&_.some(c.sms,["id",e.SmsAccountId]);case"voice":return!0;case"whatsapp":return!!c.whatsapp&&_.some(c.whatsapp,["id",e.WhatsappAccountId]);default:return!1}}(e),e.dispositionsValues=(n=e).disposition?"("+_.compact([n.disposition,n.secondDisposition,n.thirdDisposition]).join(" - ")+")":"("+r.instant("DASHBOARDS.NO_DISPOSITION_SET")+")",e.style=function(e){switch(e.channel){case"chat":return{color:"green-A700",icon:"icon-hangouts"};case"fax":return{color:"blue-grey-A200",icon:"icon-deskphone"};case"mail":return{color:"teal",icon:"icon-email"};case"openchannel":return{color:"amber-A200",icon:"icon-google-earth"};case"sms":return{color:"orange",icon:"icon-message-text"};case"voice":return{color:"blue-A700",icon:"icon-phone"};case"whatsapp":return{color:"lime-A700",icon:"icon-whatsapp"}}}(e)}),a=s,i=e,o(function(e,n){try{var t={journey:a?_.union(a,i.rows):i.rows};t.loadMore=0<i.count-t.journey.length,e(t)}catch(e){n(e)}});var a,i})}).then(function(e){n(e)}).catch(function(e){d.error({title:r.instant("CONTACTMANAGER.CUSTOMER_JOURNEY"),msg:r.instant("CONTACTMANAGER.NOTIFICATIONS.NO_DATA_ERROR")}),t(e)})})},getQuery:function(){return{range:{from:moment().subtract(3,"M").startOf("month").format("YYYY-MM-DD HH:mm:ss"),to:moment().endOf("month").format("YYYY-MM-DD HH:mm:ss")},limit:10,offset:0}},getQuickFilters:function(){return[{name:"Channel",key:"channel",type:"select",label:"INTEGRATIONS.CHANNEL",customOptions:[{value:void 0,translate:"DASHBOARDS.ALL"},{value:"voice",translate:"DASHBOARDS.VOICE"},{value:"chat",translate:"DASHBOARDS.CHAT"},{value:"mail",translate:"DASHBOARDS.MAIL"},{value:"sms",translate:"DASHBOARDS.SMS"},{value:"fax",translate:"DASHBOARDS.FAX"},{value:"openchannel",translate:"DASHBOARDS.OPENCHANNEL"},{value:"whatsapp",translate:"DASHBOARDS.WHATSAPP"}]},{name:"Start Date",key:"range",type:"date",label:"DASHBOARDS.SELECT_DATE",useFromToKeys:!0}]}},c={};return e}e.$inject=["$q","$translate","api","Auth","toasty"],angular.module("app.core").factory("customerJourneyManager",e)}(),function(){"use strict";function e(t,a,n,i,s){var o={},r={},l={},d={};function c(){r=i.getCurrentUser();var e=n.localStorage.getItem("motion2.home:"+r.id);if(l=e?JSON.parse(e).currentSidebarTab:"dashboard",d=n.localStorage.getItem("motion2.home."+l+":"+r.id)){var a=JSON.parse(d);a.drafts?r.privacyEnabled&&Object.keys(a.drafts).forEach(function(e){var n=a.drafts[e].title,t=n.split(/-(.+)/)[1].trim();a.drafts[e].title=n.replace(t,s.mask(t))}):a.drafts={},d=a}else d={drafts:{}};return d.drafts}function m(){_.isEmpty(o.drafts)?delete d.drafts:d.drafts=o.drafts,n.localStorage.setItem("motion2.home."+l+":"+r.id,JSON.stringify(d))}return o.init=function(){o.drafts=c()},o.getByInteraction=function(n){return o.drafts=c(),_.find(_.values(o.drafts),function(e){return e.interaction&&e.interaction.id===n})},o.removeByInteraction=function(n){o.drafts=c();var e=_.find(_.values(o.drafts),function(e){return e.interaction&&e.interaction.id===n});e&&(delete o.drafts[e.id],m())},o.add=function(e){o.drafts=c();var n=a.instant("DASHBOARDS.UNTITLED");e.contact?n=e.contact.firstName||e.contact.email:_.isEmpty(e.message.subject)||(n=e.message.subject);var t={type:"draft",title:e.account.key+" - "+n,channel:e.channel,content:e.message,account:e.account,interaction:e.interaction,id:_.random(1e10),openedAt:new Date,saved:!1};o.drafts[t.id]=t,m()},o.update=function(e){o.drafts=c();var n=o.drafts[e.id];n&&(n.content=e.message,o.drafts[e.id]=n,m())},o.open=function(e){o.drafts=c();var n=o.drafts[e];n&&t.$broadcast("open"+_.startCase(l)+"Draft",n)},o.remove=function(e){o.drafts=c(),o.drafts[e]&&(delete o.drafts[e],m())},o}e.$inject=["$rootScope","$translate","$window","Auth","privacyManager"],angular.module("app.core").factory("draftManager",e)}(),function(){"use strict";function e(i){function s(e,n){var t=i.localStorage.getItem(e),a=t?JSON.parse(t):{};return n?a[n]:a}function o(e,n){return i.localStorage.setItem(e,JSON.stringify(n))}return{get:s,set:o,update:function(e,n,t){var a=s(e);t?a[t]=n:a=n;return o(e,a)}}}e.$inject=["$window"],angular.module("app.core").factory("localStorageManager",e)}(),function(){"use strict";function e(i){function s(e,n){var t=i.get(),a=0;if(t)switch(n){case"email":a=t.privacyPolicyEmail;break;case"number":a=t.privacyPolicyNumber;break;default:a=t.privacyPolicyName}return _.isNil(a)?e:0===a||a>e.length?e.replace(/./g,"*"):e.substring(0,e.length-a).padEnd(e.length,"*")}function o(e){return _.startsWith(e,"<")&&_.endsWith(e,">")&&(e=e.substring(1,e.length-1)),/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)}function r(e){if(_.startsWith(e,"<")&&_.endsWith(e,">")){var n=!0;e=e.substring(1,e.length-1)}var t=e.split("@")[0],a=e.split("@")[1],i="";return n&&(i+="<"),i+=s(t,"email"),i+="@",i+=s(a,"email"),n&&(i+=">"),i}return{mask:function n(e){t=e,e=t.replace(/\s\s+/g," ").trim();var t;{if(o(e))return r(e);if(/^[+]?[0-9|.|\-|\s]*$/.test(e))return s(e,"number");var a=[],i=e.split(" ");return 1===i.length?s(e):(i.forEach(function(e){a.push(n(e))}),a.join(" "))}}}}e.$inject=["settingsManager"],angular.module("app.core").factory("privacyManager",e)}(),function(){"use strict";function e(e,s){return{setPlaceholder:function(a){var i;return e(function(n,e){try{if(_.isEmpty(a.resources))i=s.instant("DASHBOARDS.NONE");else if(_.isEmpty(a.param))i=a.placeholder?s.instant(a.placeholder):s.instant("DASHBOARDS.CHOOSE");else if(a.param.length===a.resources.length)i=s.instant("DASHBOARDS.ALL");else{var t=a.ngValue||"id";i=_(a.resources).filter(function(e){return _.includes(a.param,e[t])}).map("name").value().join(", ")}n(i)}catch(e){console.log("QuickFilterManager::setPlaceholder",e),n(null)}})}}}e.$inject=["$q","$translate"],angular.module("app.core").factory("quickFilterManager",e)}(),function(){"use strict";angular.module("app.core").factory("settingsManager",function(){var n={};return{get:function(){return n},set:function(e){e&&(n=e.toJSON())}}})}(),function(){"use strict";function e(c,m){function u(e,n,t){if(_.isEmpty(n))return t;for(var a=0;a<n.length;a++){var i=n[a].key,s=_.find(e,function(e){return e[i]===n[a].value});s&&(_.some(t,["id",s.id])||(s.canSelect=!1,t.push(s)))}return t}return{getResources:function(a,i,s,o,r,l,d){return c(function(t,n){o||(o={}),d||(d="get"),a[s][d](o).$promise.then(function(e){var t=e.rows;if("admin"===i.role)return t;var n=m.getSectionId(s,l);return a.userProfileSection.get({userProfileId:i.userProfileId,sectionId:n}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n)return n.autoAssociation?t:a.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(t,{id:e.resourceId})});return u(t,r,n)});c.resolve().then(function(){return e=s,_.includes(["voiceContext"],e)?(o.defaultEntry=1,a[s][d](o).$promise.then(function(e){return e.rows})):[];var e}).then(function(e){return u(t,r,e)})})}).then(function(e){var n={rows:_.orderBy(e,[o.sort]),count:e.length};t(n)}).catch(function(e){n(e)})})}}}e.$inject=["$q","msNavigationService"],angular.module("app.core").factory("userProfileManager",e)}(),function(){"use strict";angular.module("app.core").filter("altDate",function(){return function(e){var n=Date.now()-new Date(e);return n<36e5?moment(e).fromNow():n<864e5?moment(e).format("HH:mm"):n<6048e5?moment(e).format("dddd"):moment(e).calendar()}})}(),function(){"use strict";function e(n){return function(e){return n.trustAsHtml(e)}}e.$inject=["$sce"],angular.module("app.core").filter("toTrusted",e).filter("htmlToPlaintext",function(){return function(e){return String(e).replace(/<[^>]+>/gm,"")}}).filter("nospace",function(){return function(e){return e?e.replace(/ /g,""):""}}).filter("humanizeDoc",function(){return function(e){if(e)return"directive"===e.type?e.name.replace(/([A-Z])/g,function(e){return"-"+e.toLowerCase()}):e.label||e.name}})}(),function(){"use strict";angular.module("app.core").filter("capitalize",function(){return function(e){return e?_.capitalize(e):""}})}(),function(){"use strict";angular.module("app.core").filter("filterByIds",function(){return function(e,n){if(0===e.length||!n)return e;if(0===n.length)return[];for(var t=[],a=0;a<e.length;a++){for(var i=e[a],s=!1,o=0;o<n.length;o++){var r=n[o];if(i.id===r){s=!0;break}}s&&t.push(i)}return t}})}(),function(){"use strict";angular.module("app.core").filter("filterByPropIds",function(){return function(e,n,t){if(0===e.length||!t||0===t.length)return e;for(var a=[],i=0;i<e.length;i++){for(var s=e[i],o=!1,r=0;r<t.length;r++){var l=t[r];if(-1<s[n].indexOf(l)){o=!0;break}}o&&a.push(s)}return a}})}(),function(){"use strict";angular.module("app.core").filter("orderByDate",function(){return function(e){var n=[];return angular.forEach(e,function(e){n.push(e)}),n.sort(function(e,n){return e.hasOwnProperty("openedAt")&&n.hasOwnProperty("openedAt")?e.openedAt>n.openedAt?1:-1:1}),n}})}(),function(){"use strict";angular.module("app.core").filter("snakecase",function(){return function(e){return e?_.snakeCase(e):""}})}(),function(){"use strict";angular.module("app.core").filter("startcase",function(){return function(e){return e?_.startCase(e):""}})}(),function(){"use strict";angular.module("app.core").filter("filterByTags",function(){return function(e,t){if(0===e.length||0===t.length)return e;var a=[];return e.forEach(function(e){var n=t.every(function(n){var t=!1;return e.tags.forEach(function(e){e.name!==n.name||(t=!0)}),t});n&&a.push(e)}),a}}).filter("filterSingleByTags",function(){return function(e,n){if(0!==e.length&&0!==n.length){if(e.length<n.length)return[];var t=[],a=n.every(function(n){var t=!1;return e.forEach(function(e){e.name!==n.name||(t=!0)}),t});return a&&t.push(e),t}}})}(),function(){"use strict";angular.module("app.core").filter("toInteger",function(){return function(e){if(e&&"string"==typeof e)return parseInt(e)}})}(),function(){"use strict";function m(e,n,t,a){this.id=Math.random().toString(36).substring(2,15)+Math.random().toString(36).substring(2,15),this.title=e,this.body=n,this.accept=t,this.reject=a,this.close=i}function u(){return/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor)}function i(){var t=this;navigator.serviceWorker.ready.then(function(e){e.getNotifications().then(function(e){var n=_.find(e,function(e){return e.data.id===t.id});n&&n.close()})})}angular.module("app.dashboards").provider("motNotification",function(){return{$get:[function(){var d,t,c=[];"serviceWorker"in navigator&&u()?navigator.serviceWorker.register("notification.js").then(function(e){(d=e).update(),d.installing?t=d.installing:d.waiting?t=d.waiting:d.active&&(t=d.active)}).catch(function(e){console.error("Service worker registration failed",e)}):console.error("Service Worker is not supported");return navigator.serviceWorker.addEventListener("message",function(e){if(e.source===t){var n=_.find(c,{id:e.data.id});if(n)switch(e.data.action){case"accept":n.accept&&n.accept();break;case"reject":n.reject&&n.reject()}}}),{create:function(e,i,s,o,r,l){return new Promise(function(t,n){var a;u()&&(window.document.hidden||window.document.mozHidden||window.document.webkitHidden)?(a=new m(e||"MyTitle",i||"MyBody",o,r),c.push(a),a?window.Notification.requestPermission().then(function(e){if("granted"===e)return d.showNotification(a.title,{body:a.body,requireInteraction:!0,icon:s||"assets/images/business/queueCampaigns.jpg",data:{id:a.id},actions:[{action:"accept",title:"Accept"},{action:"reject",title:"Reject"}]})}).then(function(e){if(l){for(var n=0;n<c.length;n++)c[n].close();t()}else t(a)}).catch(function(e){n(e)}):n(new Error("Notification creating error"))):t()})}}}]}})}(),function(){"use strict";function e(l,d,c){return{resolve:function(e,n){var t=e.split("@"),a=t[0],i=t[1],s=n||{};if(!a||!i)return d.error("apiResolver.resolve requires correct action parameter (ResourceName@methodName)"),!1;var o=l.defer(),r=function(e){for(var n=e.split("."),t=c,a=0;a<n.length;a++){if(angular.isUndefined(t[n[a]])){d.error('Resource part "'+n[a]+'" is not defined!'),t=!1;break}t=t[n[a]]}return t||!1}(a);r?r[i](s,function(e){o.resolve(e)},function(e){o.reject(e)}):(d.error('Resource "'+a+'" is not defined in the api service!'),o.reject('Resource "'+a+'" is not defined in the api service!'));return o.promise}}}e.$inject=["$q","$log","api"],angular.module("app.core").factory("apiResolver",e)}(),function(){"use strict";function e(e){return{showLoadingIndicator:function(){e.loadingProgress=!0},hideLoadingIndicator:function(){e.loadingProgress=!1}}}e.$inject=["$rootScope"],angular.module("app.core").factory("LoadingIndicatorService",e)}(),function(){"use strict";angular.module("app.core").provider("msApi",function(){var t=angular.injector(["ng"]).get("$log"),a="",v=[];function n(e){a=e}function i(){return a}function s(e,n){angular.isString(e)?angular.isArray(n)?v[e]={url:a+(n[0]||""),paramDefaults:n[1]||[],actions:n[2]||[],options:n[3]||{}}:t.error('"resource" must be an array and it must follow $resource definition'):t.error('"path" must be a string (eg. `dashboard.project`)')}this.setBaseUrl=n,this.getBaseUrl=i,this.getApiObject=function(){return v},this.register=s,this.$get=["$log","$q","$resource","$rootScope",function(m,u,p,g){var e={setBaseUrl:n,getBaseUrl:i,register:s,resolve:function(e,n){g.$broadcast("msApi::resolveStart");var t=e.split("@"),a=t[0],i=t[1],s=n||{};if(!a||!i)return m.error("msApi.resolve requires correct action parameter (resourceName@methodName)"),!1;var o=u.defer(),r=v[a];if(r){var l=p(r.url,r.paramDefaults,r.actions,r.options);l[i](s,function(e){o.resolve(e),g.$broadcast("msApi::resolveSuccess")},function(e){o.reject(e),g.$broadcast("msApi::resolveError")})}else m.error('Resource "'+a+'" is not defined in the api service!'),o.reject('Resource "'+a+'" is not defined in the api service!');return o.promise},request:function(e,n,t,a){g.$broadcast("msApi::requestStart");var i=e.split("@"),s=i[0],o=i[1],r=n||{};if(!s||!o)return m.error("msApi.resolve requires correct action parameter (resourceName@methodName)"),!1;var l=u.defer(),d=v[s];if(d){var c=p(d.url,d.paramDefaults,d.actions,d.options);c[o](r,function(e){g.$broadcast("msApi::requestSuccess"),l.resolve(e),angular.isDefined(t)&&angular.isFunction(t)&&t(e)},function(e){g.$broadcast("msApi::requestError"),l.reject(e),angular.isDefined(a)&&angular.isFunction(a)&&a(e)})}else m.error('Resource "'+s+'" is not defined in the api service!'),l.reject('Resource "'+s+'" is not defined in the api service!');return l.promise}};return e}]})}(),function(){"use strict";function e(l){var e=new MobileDetect(l.navigator.userAgent),d=null;return{exists:function(e,n){return-1<n.indexOf(e)},detectBrowser:function(){if(d)return d;var e=[{string:l.navigator.userAgent,subString:"Edge",versionSearch:"Edge",identity:"Edge"},{string:l.navigator.userAgent,subString:"Chrome",identity:"Chrome"},{string:l.navigator.userAgent,subString:"OmniWeb",versionSearch:"OmniWeb/",identity:"OmniWeb"},{string:l.navigator.vendor,subString:"Apple",versionSearch:"Version",identity:"Safari"},{prop:l.opera,identity:"Opera"},{string:l.navigator.vendor,subString:"iCab",identity:"iCab"},{string:l.navigator.vendor,subString:"KDE",identity:"Konqueror"},{string:l.navigator.userAgent,subString:"Firefox",identity:"Firefox"},{string:l.navigator.vendor,subString:"Camino",identity:"Camino"},{string:l.navigator.userAgent,subString:"Netscape",identity:"Netscape"},{string:l.navigator.userAgent,subString:"MSIE",identity:"Explorer",versionSearch:"MSIE"},{string:l.navigator.userAgent,subString:"Trident/7",identity:"Explorer",versionSearch:"rv"},{string:l.navigator.userAgent,subString:"Gecko",identity:"Mozilla",versionSearch:"rv"},{string:l.navigator.userAgent,subString:"Mozilla",identity:"Netscape",versionSearch:"Mozilla"}],n=[{string:l.navigator.platform,subString:"Win",identity:"Windows"},{string:l.navigator.platform,subString:"Mac",identity:"Mac"},{string:l.navigator.platform,subString:"Linux",identity:"Linux"},{string:l.navigator.platform,subString:"iPhone",identity:"iPhone"},{string:l.navigator.platform,subString:"iPod",identity:"iPod"},{string:l.navigator.platform,subString:"iPad",identity:"iPad"},{string:l.navigator.platform,subString:"Android",identity:"Android"}],i="";function t(e){for(var n=0;n<e.length;n++){var t=e[n].string,a=e[n].prop;if(i=e[n].versionSearch||e[n].identity,t){if(-1!==t.indexOf(e[n].subString))return e[n].identity}else if(a)return e[n].identity}}function a(e){var n=e.indexOf(i);if(-1!==n)return parseInt(e.substring(n+i.length+1))}var s=t(e)||"unknown-browser",o=a(l.navigator.userAgent)||a(l.navigator.appVersion)||"unknown-version",r=t(n)||"unknown-os";return s=s.toLowerCase(),o=s+"-"+o,r=r.toLowerCase(),d={browser:s,version:o,os:r}},guidGenerator:function(){var e=function(){return(65536*(1+Math.random())||0).toString(16).substring(1)};return e()+e()+e()+e()+e()+e()},isMobile:function(){return e.mobile()},toggleInArray:function(e,n){-1===n.indexOf(e)?n.push(e):n.splice(n.indexOf(e),1)},firstLastDayMonth:function(){return{$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()}}}}e.$inject=["$window"],angular.module("app.core").factory("msUtils",e)}(),function(){"use strict";function e(e,n){var t=this;t.themes=n.themes,t.layoutModes=[{label:"Boxed",value:"boxed"},{label:"Wide",value:"wide"}],t.layoutStyles=[{label:"Vertical Navigation",value:"verticalNavigation",figure:"/assets/images/theme-options/vertical-nav.jpg"},{label:"Vertical Navigation with Fullwidth Toolbar",value:"verticalNavigationFullwidthToolbar",figure:"/assets/images/theme-options/vertical-nav-with-full-toolbar.jpg"},{label:"Vertical Navigation with Fullwidth Toolbar 2",value:"verticalNavigationFullwidthToolbar2",figure:"/assets/images/theme-options/vertical-nav-with-full-toolbar-2.jpg"},{label:"Horizontal Navigation",value:"horizontalNavigation",figure:"/assets/images/theme-options/horizontal-nav.jpg"},{label:"Content with Toolbar",value:"contentWithToolbar",figure:"/assets/images/theme-options/content-with-toolbar.jpg"},{label:"Content Only",value:"contentOnly",figure:"/assets/images/theme-options/content-only.jpg"}],t.layoutMode="wide",t.layoutStyle=e.get("motion.layoutStyle")||"verticalNavigation",t.setActiveTheme=function(e){n.setActiveTheme(e)},t.getActiveTheme=function(){return n.themes.active},t.updateLayoutMode=function(){angular.element("body").toggleClass("boxed","boxed"===t.layoutMode)},t.updateLayoutStyle=function(){e.put("motion.layoutStyle",t.layoutStyle),location.reload()}}function n(n){return{restrict:"E",scope:{},controller:"MsThemeOptionsController as vm",templateUrl:"app/core/theme-options/theme-options.html",compile:function(e){return e.addClass("ms-theme-options"),function(e){e.toggleOptionsSidenav=function(){n("motion-theme-options").toggle()}}}}}e.$inject=["$cookies","motionTheming"],n.$inject=["$mdSidenav"],angular.module("app.core").controller("MsThemeOptionsController",e).directive("msThemeOptions",n)}(),function(){"use strict";function e(i,a,s){var o={};return{generate:function(){var e=angular.copy(s.getRegisteredThemes()),a=angular.copy(s.getRegisteredPalettes());angular.forEach(e,function(t){o[t.name]={},angular.forEach(t.colors,function(e,n){o[t.name][n]={name:e.name,levels:{default:{color:l(a[e.name][e.hues.default].value),contrast1:l(a[e.name][e.hues.default].contrast,1),contrast2:l(a[e.name][e.hues.default].contrast,2),contrast3:l(a[e.name][e.hues.default].contrast,3),contrast4:l(a[e.name][e.hues.default].contrast,4)},hue1:{color:l(a[e.name][e.hues["hue-1"]].value),contrast1:l(a[e.name][e.hues["hue-1"]].contrast,1),contrast2:l(a[e.name][e.hues["hue-1"]].contrast,2),contrast3:l(a[e.name][e.hues["hue-1"]].contrast,3),contrast4:l(a[e.name][e.hues["hue-1"]].contrast,4)},hue2:{color:l(a[e.name][e.hues["hue-2"]].value),contrast1:l(a[e.name][e.hues["hue-2"]].contrast,1),contrast2:l(a[e.name][e.hues["hue-2"]].contrast,2),contrast3:l(a[e.name][e.hues["hue-2"]].contrast,3),contrast4:l(a[e.name][e.hues["hue-2"]].contrast,4)},hue3:{color:l(a[e.name][e.hues["hue-3"]].value),contrast1:l(a[e.name][e.hues["hue-3"]].contrast,1),contrast2:l(a[e.name][e.hues["hue-3"]].contrast,2),contrast3:l(a[e.name][e.hues["hue-3"]].contrast,3),contrast4:l(a[e.name][e.hues["hue-3"]].contrast,4)}}}})}),function(e){var n=angular.copy(e);angular.forEach(n,function(t){angular.forEach(t,function(e,n){t[n]=e.levels,t[n].color=e.levels.default.color,t[n].contrast1=e.levels.default.contrast1,t[n].contrast2=e.levels.default.contrast2,t[n].contrast3=e.levels.default.contrast3,t[n].contrast4=e.levels.default.contrast4,delete t[n].default})}),s.setThemesList(n);var t=i.get("motion.selectedTheme");t?s.setActiveTheme(t):s.setActiveTheme("default")}(o);var r={};angular.forEach(o,function(e,n){var t,a,i,s,o;(r={})["@themeName"]=n,angular.forEach(e,function(e,a){angular.forEach(e.levels,function(e,t){angular.forEach(e,function(e,n){r["@"+a+d(t)+d(n)]=e})})}),t=r,a=new RegExp(Object.keys(t).join("|"),"gi"),i='/* Content hack because they wont fix */\n/* https://github.com/angular/material/pull/8067 */\n[md-theme="@themeName"] md-content.md-hue-1,\nmd-content.md-@themeName-theme.md-hue-1 {\n color: @backgroundHue1Contrast1;\n background-color: @backgroundHue1Color;\n}\n\n[md-theme="@themeName"] md-content.md-hue-2,\nmd-content.md-@themeName-theme.md-hue-2 {\n color: @backgroundHue2Contrast1;\n background-color: @backgroundHue2Color;\n}\n\n[md-theme="@themeName"] md-content.md-hue-3,\n md-content.md-@themeName-theme.md-hue-3 {\n color: @backgroundHue3Contrast1;\n background-color: @backgroundHue3Color;\n}\n\n/* Text Colors */\n[md-theme="@themeName"] a {\n color: @accentDefaultColor;\n}\n\n[md-theme="@themeName"] .secondary-text,\n[md-theme="@themeName"] .icon {\n color: @backgroundDefaultContrast2;\n}\n\n[md-theme="@themeName"] .hint-text,\n[md-theme="@themeName"] .disabled-text {\n color: @backgroundDefaultContrast3;\n}\n\n[md-theme="@themeName"] .fade-text,\n[md-theme="@themeName"] .divider {\n color: @backgroundDefaultContrast4;\n}\n\n/* Primary */\n[md-theme="@themeName"] .md-primary-bg {\n background-color: @primaryDefaultColor;\n color: @primaryDefaultContrast1;\n}\n\n[md-theme="@themeName"] .md-primary-bg .secondary-text,\n[md-theme="@themeName"] .md-primary-bg .icon {\n color: @primaryDefaultContrast2;\n}\n\n[md-theme="@themeName"] .md-primary-bg .hint-text,\n[md-theme="@themeName"] .md-primary-bg .disabled-text {\n color: @primaryDefaultContrast3;\n}\n\n[md-theme="@themeName"] .md-primary-bg .fade-text,\n[md-theme="@themeName"] .md-primary-bg .divider {\n color: @primaryDefaultContrast4;\n}\n\n/* Primary, Hue-1 */\n[md-theme="@themeName"] .md-primary-bg.md-hue-1 {\n background-color: @primaryHue1Color;\n color: @primaryHue1Contrast1;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-1 .secondary-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-1 .icon {\n color: @primaryHue1Contrast2;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-1 .hint-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-1 .disabled-text {\n color: @primaryHue1Contrast3;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-1 .fade-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-1 .divider {\n color: @primaryHue1Contrast4;\n}\n\n/* Primary, Hue-2 */\n[md-theme="@themeName"] .md-primary-bg.md-hue-2 {\n background-color: @primaryHue2Color;\n color: @primaryHue2Contrast1;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-2 .secondary-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-2 .icon {\n color: @primaryHue2Contrast2;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-2 .hint-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-2 .disabled-text {\n color: @primaryHue2Contrast3;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-2 .fade-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-2 .divider {\n color: @primaryHue2Contrast4;\n}\n\n/* Primary, Hue-3 */\n[md-theme="@themeName"] .md-primary-bg.md-hue-3 {\n background-color: @primaryHue3Color;\n color: @primaryHue3Contrast1;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-3 .secondary-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-3 .icon {\n color: @primaryHue3Contrast1;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-3 .hint-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-3 .disabled-text {\n color: @primaryHue3Contrast3;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-3 .fade-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-3 .divider {\n color: @primaryHue3Contrast4;\n}\n\n/* Primary foreground */\n[md-theme="@themeName"] .md-primary-fg {\n color: @primaryDefaultColor !important;\n}\n\n/* Primary foreground, Hue-1 */\n[md-theme="@themeName"] .md-primary-fg.md-hue-1 {\n color: @primaryHue1Color !important;\n}\n\n/* Primary foreground, Hue-2 */\n[md-theme="@themeName"] .md-primary-fg.md-hue-2 {\n color: @primaryHue2Color !important;\n}\n\n/* Primary foreground, Hue-3 */\n[md-theme="@themeName"] .md-primary-fg.md-hue-3 {\n color: @primaryHue3Color !important;\n}\n\n/* Accent */\n[md-theme="@themeName"] .md-accent-bg {\n background-color: @accentDefaultColor;\n color: @accentDefaultContrast1;\n}\n\n[md-theme="@themeName"] .md-accent-bg .secondary-text,\n[md-theme="@themeName"] .md-accent-bg .icon {\n color: @accentDefaultContrast2;\n}\n\n[md-theme="@themeName"] .md-accent-bg .hint-text,\n[md-theme="@themeName"] .md-accent-bg .disabled-text {\n color: @accentDefaultContrast3;\n}\n\n[md-theme="@themeName"] .md-accent-bg .fade-text,\n[md-theme="@themeName"] .md-accent-bg .divider {\n color: @accentDefaultContrast4;\n}\n\n/* Accent, Hue-1 */\n[md-theme="@themeName"] .md-accent-bg.md-hue-1 {\n background-color: @accentHue1Color;\n color: @accentHue1Contrast1;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-1 .secondary-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-1 .icon {\n color: @accentHue1Contrast2;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-1 .hint-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-1 .disabled-text {\n color: @accentHue1Contrast3;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-1 .fade-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-1 .divider {\n color: @accentHue1Contrast4;\n}\n\n/* Accent, Hue-2 */\n[md-theme="@themeName"] .md-accent-bg.md-hue-2 {\n background-color: @accentHue2Color;\n color: @accentHue2Contrast1;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-2 .secondary-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-2 .icon {\n color: @accentHue2Contrast2;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-2 .hint-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-2 .disabled-text {\n color: @accentHue2Contrast3;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-2 .fade-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-2 .divider {\n color: @accentHue2Contrast4;\n}\n\n/* Accent, Hue-3 */\n[md-theme="@themeName"] .md-accent-bg.md-hue-3 {\n background-color: @accentHue3Color;\n color: @accentHue3Contrast1;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-3 .secondary-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-3 .icon {\n color: @accentHue3Contrast1;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-3 .hint-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-3 .disabled-text {\n color: @accentHue3Contrast3;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-3 .fade-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-3 .divider {\n color: @accentHue3Contrast4;\n}\n\n/* Accent foreground */\n[md-theme="@themeName"] .md-accent-fg {\n color: @accentDefaultColor !important;\n}\n\n/* Accent foreground, Hue-1 */\n[md-theme="@themeName"] .md-accent-fg.md-hue-1 {\n color: @accentHue1Color !important;\n}\n\n/* Accent foreground, Hue-2 */\n[md-theme="@themeName"] .md-accent-fg.md-hue-2 {\n color: @accentHue2Color !important;\n}\n\n/* Accent foreground, Hue-3 */\n[md-theme="@themeName"] .md-accent-fg.md-hue-3 {\n color: @accentHue3Color !important;\n}\n\n/* Warn */\n[md-theme="@themeName"] .md-warn-bg {\n background-color: @warnDefaultColor;\n color: @warnDefaultContrast1;\n}\n\n[md-theme="@themeName"] .md-warn-bg .secondary-text,\n[md-theme="@themeName"] .md-warn-bg .icon {\n color: @warnDefaultContrast2;\n}\n\n[md-theme="@themeName"] .md-warn-bg .hint-text,\n[md-theme="@themeName"] .md-warn-bg .disabled-text {\n color: @warnDefaultContrast3;\n}\n\n[md-theme="@themeName"] .md-warn-bg .fade-text,\n[md-theme="@themeName"] .md-warn-bg .divider {\n color: @warnDefaultContrast4;\n}\n\n/* Warn, Hue-1 */\n[md-theme="@themeName"] .md-warn-bg.md-hue-1 {\n background-color: @warnHue1Color;\n color: @warnHue1Contrast1;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-1 .secondary-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-1 .icon {\n color: @warnHue1Contrast2;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-1 .hint-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-1 .disabled-text {\n color: @warnHue1Contrast3;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-1 .fade-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-1 .divider {\n color: @warnHue1Contrast4;\n}\n\n/* Warn, Hue-2 */\n[md-theme="@themeName"] .md-warn-bg.md-hue-2 {\n background-color: @warnHue2Color;\n color: @warnHue2Contrast1;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-2 .secondary-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-2 .icon {\n color: @warnHue2Contrast2;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-2 .hint-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-2 .disabled-text {\n color: @warnHue2Contrast3;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-2 .fade-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-2 .divider {\n color: @warnHue2Contrast4;\n}\n\n/* Warn, Hue-3 */\n[md-theme="@themeName"] .md-warn-bg.md-hue-3 {\n background-color: @warnHue3Color;\n color: @warnHue3Contrast1;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-3 .secondary-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-3 .icon {\n color: @warnHue3Contrast1;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-3 .hint-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-3 .disabled-text {\n color: @warnHue3Contrast3;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-3 .fade-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-3 .divider {\n color: @warnHue3Contrast4;\n}\n\n/* Warn foreground */\n[md-theme="@themeName"] .md-warn-fg {\n color: @warnDefaultColor !important;\n}\n\n/* Warn foreground, Hue-1 */\n[md-theme="@themeName"] .md-warn-fg.md-hue-1 {\n color: @warnHue1Color !important;\n}\n\n/* Warn foreground, Hue-2 */\n[md-theme="@themeName"] .md-warn-fg.md-hue-2 {\n color: @warnHue2Color !important;\n}\n\n/* Warn foreground, Hue-3 */\n[md-theme="@themeName"] .md-warn-fg.md-hue-3 {\n color: @warnHue3Color !important;\n}\n\n/* Background */\n[md-theme="@themeName"] .md-background-bg {\n background-color: @backgroundDefaultColor;\n color: @backgroundDefaultContrast1;\n}\n\n[md-theme="@themeName"] .md-background-bg .secondary-text,\n[md-theme="@themeName"] .md-background-bg .icon {\n color: @backgroundDefaultContrast2;\n}\n\n[md-theme="@themeName"] .md-background-bg .hint-text,\n[md-theme="@themeName"] .md-background-bg .disabled-text {\n color: @backgroundDefaultContrast3;\n}\n\n[md-theme="@themeName"] .md-background-bg .fade-text,\n[md-theme="@themeName"] .md-background-bg .divider {\n color: @backgroundDefaultContrast4;\n}\n\n/* Background, Hue-1 */\n[md-theme="@themeName"] .md-background-bg.md-hue-1 {\n background-color: @backgroundHue1Color;\n color: @backgroundHue1Contrast1;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-1 .secondary-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-1 .icon {\n color: @backgroundHue1Contrast2;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-1 .hint-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-1 .disabled-text {\n color: @backgroundHue1Contrast3;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-1 .fade-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-1 .divider {\n color: @backgroundHue1Contrast4;\n}\n\n/* Background, Hue-2 */\n[md-theme="@themeName"] .md-background-bg.md-hue-2 {\n background-color: @backgroundHue2Color;\n color: @backgroundHue2Contrast1;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-2 .secondary-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-2 .icon {\n color: @backgroundHue2Contrast2;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-2 .hint-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-2 .disabled-text {\n color: @backgroundHue2Contrast3;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-2 .fade-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-2 .divider {\n color: @backgroundHue2Contrast4;\n}\n\n/* Background, Hue-3 */\n[md-theme="@themeName"] .md-background-bg.md-hue-3 {\n background-color: @backgroundHue3Color;\n color: @backgroundHue3Contrast1;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-3 .secondary-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-3 .icon {\n color: @backgroundHue3Contrast1;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-3 .hint-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-3 .disabled-text {\n color: @backgroundHue3Contrast3;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-3 .fade-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-3 .divider {\n color: @backgroundHue3Contrast4;\n}\n\n/* Background foreground */\n[md-theme="@themeName"] .md-background-fg {\n color: @backgroundDefaultColor !important;\n}\n\n/* Background foreground, Hue-1 */\n[md-theme="@themeName"] .md-background-fg.md-hue-1 {\n color: @backgroundHue1Color !important;\n}\n\n/* Background foreground, Hue-2 */\n[md-theme="@themeName"] .md-background-fg.md-hue-2 {\n color: @backgroundHue2Color !important;\n}\n\n/* Background foreground, Hue-3 */\n[md-theme="@themeName"] .md-background-fg.md-hue-3 {\n color: @backgroundHue3Color !important;\n}'.replace(a,function(e){return t[e]}),s=angular.element("head"),(o=angular.element('<style type="text/css"></style>')).html(i),s.append(o)})},rgba:l};function l(e,n){var t=n||!1;return 4===e.length&&255===e[0]&&255===e[1]&&255===e[2]&&e.splice(3,4),t&&(e=function(e,n){var t={white:{1:"1",2:"0.7",3:"0.3",4:"0.12"},black:{1:"0.87",2:"0.54",3:"0.26",4:"0.12"}};255===e[0]&&255===e[1]&&255===e[2]?e[3]=t.white[n]:0===e[0]&&0===e[1]&&0===e[2]&&(e[3]=t.black[n]);return e}(e,t)),3===e.length?"rgb("+e.join(",")+")":4===e.length?"rgba("+e.join(",")+")":void a.error("Invalid number of arguments supplied in the color array: "+e.length+"\nThe array must have 3 or 4 colors.")}function d(e){return e.charAt(0).toUpperCase()+e.slice(1)}}e.$inject=["$cookies","$log","motionTheming"],angular.module("app.core").factory("motionGenerator",e)}(),function(){"use strict";angular.module("app.core").constant("motionPalettes",[{name:"motion-blue",options:{50:"#ebf1fa",100:"#c2d4ef",200:"#9ab8e5",300:"#78a0dc",400:"#5688d3",500:"#3470ca",600:"#2e62b1",700:"#275498",800:"#21467e",900:"#1a3865",A100:"#c2d4ef",A200:"#9ab8e5",A400:"#5688d3",A700:"#275498",contrastDefaultColor:"light",contrastDarkColors:"50 100 200 A100",contrastStrongLightColors:"300 400"}},{name:"motion-paleblue",options:{50:"#ececee",100:"#c5c6cb",200:"#9ea1a9",300:"#7d818c",400:"#5c616f",500:"#3c4252",600:"#353a48",700:"#2d323e",800:"#262933",900:"#1e2129",A100:"#c5c6cb",A200:"#9ea1a9",A400:"#5c616f",A700:"#2d323e",contrastDefaultColor:"light",contrastDarkColors:"50 100 200 A100",contrastStrongLightColors:"300 400"}}])}(),function(){"use strict";angular.module("app.core").constant("motionThemes",{default:{primary:{name:"motion-paleblue",hues:{default:"700","hue-1":"500","hue-2":"600","hue-3":"400"}},accent:{name:"light-blue",hues:{default:"600","hue-1":"400","hue-2":"700","hue-3":"A100"}},warn:{name:"red"},background:{name:"grey",hues:{default:"A100","hue-1":"A100","hue-2":"100","hue-3":"300"}}},pinkTheme:{primary:{name:"blue-grey",hues:{default:"800","hue-1":"600","hue-2":"400","hue-3":"A100"}},accent:{name:"pink",hues:{default:"400","hue-1":"300","hue-2":"600","hue-3":"A100"}},warn:{name:"blue"},background:{name:"grey",hues:{default:"A100","hue-1":"A100","hue-2":"100","hue-3":"300"}}},tealTheme:{primary:{name:"motion-blue",hues:{default:"900","hue-1":"600","hue-2":"500","hue-3":"A100"}},accent:{name:"teal",hues:{default:"500","hue-1":"400","hue-2":"600","hue-3":"A100"}},warn:{name:"deep-orange"},background:{name:"grey",hues:{default:"A100","hue-1":"A100","hue-2":"100","hue-3":"300"}}}})}(),function(){"use strict";function e(t,e,n){var a;angular.injector(["ngCookies"]).invoke(["$cookies",function(e){a=e}]);var i=a.getObject("motion.customTheme");i&&(n.custom=i),t.alwaysWatchTheme(!0),angular.forEach(e,function(e){t.definePalette(e.name,e.options)}),angular.forEach(n,function(e,n){t.theme(n).primaryPalette(e.primary.name,e.primary.hues).accentPalette(e.accent.name,e.accent.hues).warnPalette(e.warn.name,e.warn.hues).backgroundPalette(e.background.name,e.background.hues)})}e.$inject=["$mdThemingProvider","motionPalettes","motionThemes"],angular.module("app.core").config(e)}(),function(){"use strict";function e(n,t,e){var a={getRegisteredPalettes:function(){return e.PALETTES},getRegisteredThemes:function(){return e.THEMES},setActiveTheme:function(e){if(angular.isUndefined(a.themes.list[e]))return angular.isUndefined(a.themes.list.default)?void t.error('You must have at least one theme named "default"'):(t.warn('The theme "'+e+'" does not exist! Falling back to the "default" theme.'),a.themes.active.name="default",a.themes.active.theme=a.themes.list.default,void n.put("motion.selectedTheme",a.themes.active.name));a.themes.active.name=e,a.themes.active.theme=a.themes.list[e],n.put("motion.selectedTheme",e)},setThemesList:function(e){a.themes.list=e},themes:{list:{},active:{name:"",theme:{}}}};return a}e.$inject=["$cookies","$log","$mdTheming"],angular.module("app.core").service("motionTheming",e)}(),function(){"use strict";function e(n,s,o,r){this.search=function(n){for(var e=[],t=r.getFlatNavigation(),a=o.defer(),i=0;i<t.length;i+=1)t[i].uisref&&e.push(t[i]);n&&(e=e.filter(function(e){if(-1<angular.lowercase(e.title).search(angular.lowercase(n)))return!0}));return s(function(){a.resolve(e)},1e3),a.promise},this.searchResultClick=function(e){e.uisref&&(e.stateParams?n.go(e.state,e.stateParams):n.go(e.state))}}e.$inject=["$state","$timeout","$q","msNavigationService"],angular.module("app.errors.error-404").controller("Error404Controller",e)}(),function(){"use strict";function e(e,n){var t=this;t.code="",t.send=!1,t.error=e.params,t.sendReport=function(){n.post("/api/jira",t.error).then(function(e){t.send=!0,e.data&&(t.code=e.data.id)},function(e){t.send=!1})}}e.$inject=["$state","$http"],angular.module("app.errors.error-500").controller("Error500Controller",e)}(),function(){"use strict";function e(e,n){var t=this;t.currentUser=e.getCurrentUser(),t.cookieAlertHide=n.get("motion.cookieAlertHide:"+t.currentUser.id)||!1,t.cookieAlertOnClose=function(){n.put("motion.cookieAlertHide:"+t.currentUser.id,!0)}}e.$inject=["Auth","$cookies"],angular.module("app.footer").controller("FooterController",e)}(),function(){"use strict";function e(e,n,t,a,i){var s=this;s.form={},s.forgotPassword=function(){return i.auth.forgot(s.form).$promise.then(function(){n.success({title:t.instant("FORGOTPASSWORD.LINK_SENT"),msg:t.instant("FORGOTPASSWORD.LINNK_SENT_MESSAGE")})}).catch(function(e){e&&n.error({title:t.instant("FORGOTPASSWORD.PASSWORD_RESET_ERROR"),msg:e.data?e.data.message||e.message||e:e.message||e})})},s.onInit=function(){e.isLoggedIn()&&a.go("app.dashboards.general")}}e.$inject=["Auth","toasty","$translate","$state","api"],angular.module("app.forgot").controller("ForgotPasswordController",e)}(),function(){"use strict";function e(e,n){var t=this;t.currentUser=e.getCurrentUser(),t.newsAlertHide=n.get("motion.newsAlertHide:"+t.currentUser.id)||!1,t.newsAlertOnClose=function(){n.put("motion.newsAlertHide:"+t.currentUser.id,!0)}}e.$inject=["Auth","$cookies"],angular.module("app.header").controller("HeaderController",e)}(),function(){"use strict";function e(e,o){var r={getResourcesByRole:function(e,n,t,a,i,s){return o.getResources(r,e,n,t,a,i,s)}};return r.baseUrl="api/",r.auth=e(r.baseUrl+"auth/local",{},{local:{method:"post",url:r.baseUrl+"auth/local"},forgot:{method:"post",url:r.baseUrl+"auth/local/forgot"},reset:{method:"post",url:r.baseUrl+"auth/local/reset/:token",params:{token:"@token"}},user:{method:"get",url:r.baseUrl+"auth/local/user/:token",params:{token:"@token"}},google:{method:"post",url:r.baseUrl+"auth/google"}}),r.jira=e(r.baseUrl+"jira"),r.rpc=e(r.baseUrl+"rpc",{},{startMonitor:{method:"get",url:r.baseUrl+"rpc/voice/channels/:uniqueid/mixmonitor",params:{uniqueid:"@uniqueid"}},stopMonitor:{method:"get",url:r.baseUrl+"rpc/voice/channels/:uniqueid/stopmixmonitor",params:{uniqueid:"@uniqueid"}},getVoiceChannels:{method:"get",url:r.baseUrl+"rpc/voice/channels"},getVoiceQueues:{method:"get",url:r.baseUrl+"rpc/voice/queues"},getChatQueues:{method:"get",url:r.baseUrl+"rpc/chat/queues"},getMailQueues:{method:"get",url:r.baseUrl+"rpc/mail/queues"},getSmsQueues:{method:"get",url:r.baseUrl+"rpc/sms/queues"},getWhatsappQueues:{method:"get",url:r.baseUrl+"rpc/whatsapp/queues"},getOpenchannelQueues:{method:"get",url:r.baseUrl+"rpc/openchannel/queues"},getFaxQueues:{method:"get",url:r.baseUrl+"rpc/fax/queues"},getVoiceQueuesPreview:{method:"get",url:r.baseUrl+"rpc/voice/queues/preview/:id"},getVoiceQueuesChannels:{method:"get",url:r.baseUrl+"rpc/voice/queues/channels"},getVoiceQueuesChannel:{method:"get",url:r.baseUrl+"rpc/voice/queues/channels/:uniqueid"},getVoiceQueuesChannelHangup:{method:"get",url:r.baseUrl+"rpc/voice/queues/channels/:uniqueid/hangup"},getVoiceQueuesChannelRedirect:{method:"get",url:r.baseUrl+"rpc/voice/queues/channels/:uniqueid/redirect/:exten"},getOutbound:{method:"get",url:r.baseUrl+"rpc/outbound"},getOutboundChannels:{method:"get",url:r.baseUrl+"rpc/outbound/channels"},getAgents:{method:"get",url:r.baseUrl+"rpc/agents"},setAgentCapacity:{method:"put",url:r.baseUrl+"rpc/agents/:id/capacity",params:{id:"@id"}},getTelephones:{method:"get",url:r.baseUrl+"rpc/telephones"},getTrunks:{method:"get",url:r.baseUrl+"rpc/trunks"},getCampaigns:{method:"get",url:r.baseUrl+"rpc/campaigns"},getMailAccounts:{method:"get",url:r.baseUrl+"rpc/mail/accounts"},getFaxAccounts:{method:"get",url:r.baseUrl+"rpc/fax/accounts"},getChatQueuesWaitingInteractions:{method:"get",url:r.baseUrl+"rpc/chat/queues/waitinginteractions"},getMailQueuesWaitingInteractions:{method:"get",url:r.baseUrl+"rpc/mail/queues/waitinginteractions"},getOpenchannelQueuesWaitingInteractions:{method:"get",url:r.baseUrl+"rpc/openchannel/queues/waitinginteractions"},getOpenchannelQueuesIdWaitingInteractions:{method:"get",url:r.baseUrl+"rpc/openchannel/queues/:id/waitinginteractions"},getSmsQueuesWaitingInteractions:{method:"get",url:r.baseUrl+"rpc/sms/queues/waitinginteractions"},getFaxQueuesWaitingInteractions:{method:"get",url:r.baseUrl+"rpc/fax/queues/waitinginteractions"},getWhatsappQueuesWaitingInteractions:{method:"get",url:r.baseUrl+"rpc/whatsapp/queues/waitinginteractions"},mailQueueNotify:{method:"post",url:r.baseUrl+"rpc/mail/queues/:id/notify",params:{id:"@id"}},chatQueueNotify:{method:"post",url:r.baseUrl+"rpc/chat/queues/:id/notify",params:{id:"@id"}},faxQueueNotify:{method:"post",url:r.baseUrl+"rpc/fax/queues/:id/notify",params:{id:"@id"}},smsQueueNotify:{method:"post",url:r.baseUrl+"rpc/sms/queues/:id/notify",params:{id:"@id"}},openchannelQueueNotify:{method:"post",url:r.baseUrl+"rpc/openchannel/queues/:id/notify",params:{id:"@id"}},agentNotify:{method:"post",url:r.baseUrl+"rpc/agents/:id/notify",params:{id:"@id"}}}),r.version=e(r.baseUrl+"version",{},{fetch:{method:"get",url:r.baseUrl+"version/fetch"},reset:{method:"get",url:r.baseUrl+"version/reset"},pull:{method:"get",url:r.baseUrl+"version/pull"},restart:{method:"get",url:r.baseUrl+"version/restart"},migrations:{method:"get",url:r.baseUrl+"version/migrations"}}),r.system=e(r.baseUrl+"system",{},{killProcess:{method:"get",url:r.baseUrl+"system/process/:pid/kill",params:{pid:"@pid"}}}),r.pm2=e(r.baseUrl+"pm2/:id",{id:"@id"},{update:{method:"put",isArray:!0}}),r.user=e(r.baseUrl+"users/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"users/describe"},clone:{method:"post",url:r.baseUrl+"users/:id/clone",params:{includeAll:"@includeAll"}},addContacts:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/contacts"},bulkCreate:{isArray:!1,method:"post",url:r.baseUrl+"users/create_many"},changePassword:{isArray:!1,method:"put",url:r.baseUrl+"users/:id/password"},addQueues:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/queues"},removeQueues:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/queues"},addAvatar:{isArray:!1,method:"post",url:r.baseUrl+"users/:id/avatar"},getAvatar:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/avatar"},getOpenTabs:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/open_tabs"},getContacts:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/contacts"},getQueues:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/queues"},getVoiceQueuesRt:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/queues_rt"},getGroups:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/groups"},getRecordings:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/recordings"},getScreenRecordings:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/screen_recordings"},getChatInteractions:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/chat/interactions"},getOpenchannelInteractions:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/openchannel/interactions"},getMailInteractions:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/mail/interactions"},getSmsInteractions:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/sms/interactions"},getFaxInteractions:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/fax/interactions"},getWhatsappInteractions:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/whatsapp/interactions"},login:{isArray:!1,method:"post",url:r.baseUrl+"users/:id/login"},logout:{isArray:!1,method:"post",url:r.baseUrl+"users/:id/logout"},pause:{isArray:!1,method:"post",url:r.baseUrl+"users/:id/pause"},unpause:{isArray:!1,method:"post",url:r.baseUrl+"users/:id/unpause"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/teams"},getLists:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/lists"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/agents"},addChatInteractions:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/chat_interactions"},removeChatInteractions:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/chat_interactions"},addMailInteractions:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/mail_interactions"},removeMailInteractions:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/mail_interactions"},addFaxInteractions:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/fax_interactions"},removeFaxInteractions:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/fax_interactions"},addSmsInteractions:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/sms_interactions"},removeSmsInteractions:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/sms_interactions"},addOpenchannelInteractions:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/openchannel_interactions"},removeOpenchannelInteractions:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/openchannel_interactions"},addWhatsappInteractions:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/whatsapp_interactions"},removeWhatsappInteractions:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/whatsapp_interactions"},getVoicePrefixes:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/prefixes"},getFaxAccounts:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/fax_accounts"},addFaxAccounts:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/fax_accounts"},removeFaxAccounts:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/fax_accounts"},getMailAccounts:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/mail_accounts"},addMailAccounts:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/mail_accounts"},removeMailAccounts:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/mail_accounts"},getOpenchannelAccounts:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/openchannel_accounts"},addOpenchannelAccounts:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/openchannel_accounts"},removeOpenchannelAccounts:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/openchannel_accounts"},getSmsAccounts:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/sms_accounts"},addSmsAccounts:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/sms_accounts"},removeSmsAccounts:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/sms_accounts"},getChatWebsites:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/chat_websites"},addChatWebsites:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/chat_websites"},removeChatWebsites:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/chat_websites"},getWhatsappAccounts:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/whatsapp_accounts"},addWhatsappAccounts:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/whatsapp_accounts"},removeWhatsappAccounts:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/whatsapp_accounts"},getSquareProjects:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/square_projects"},addSquareProjects:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/square_projects"},removeSquareProjects:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/square_projects"},getScheduledCalls:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/scheduled_calls"},getApiKey:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/api_key"},createApiKey:{isArray:!1,method:"post",url:r.baseUrl+"users/:id/api_key"},removeApiKey:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/api_key"},whoami:{isArray:!1,method:"get",url:r.baseUrl+"users/whoami"},getPresence:{isArray:!1,method:"get",url:r.baseUrl+"users/presence"}}),r.voiceChanSpy=e(r.baseUrl+"voice/chanspy/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/chanspy/describe"},clone:{method:"post",url:r.baseUrl+"voice/chanspy/:id/clone",params:{includeAll:"@includeAll"}}}),r.voiceContext=e(r.baseUrl+"voice/contexts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/contexts/describe"},clone:{method:"post",url:r.baseUrl+"voice/contexts/:id/clone",params:{includeAll:"@includeAll"}}}),r.voiceExtension=e(r.baseUrl+"voice/extensions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/extensions/describe"},clone:{method:"post",url:r.baseUrl+"voice/extensions/:id/clone",params:{includeAll:"@includeAll"}},addApplications:{isArray:!1,method:"post",url:r.baseUrl+"voice/extensions/:id/applications"}}),r.voiceMusicOnHold=e(r.baseUrl+"voice/mohs/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/mohs/describe"},clone:{method:"post",url:r.baseUrl+"voice/mohs/:id/clone",params:{includeAll:"@includeAll"}},addSound:{isArray:!1,method:"post",url:r.baseUrl+"voice/mohs/:id/sounds"},removeSound:{isArray:!1,method:"delete",url:r.baseUrl+"voice/mohs/:id/sounds/:id2"},getSounds:{isArray:!1,method:"get",url:r.baseUrl+"voice/mohs/:id/sounds"}}),r.voiceQueue=e(r.baseUrl+"voice/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/queues/describe"},clone:{method:"post",url:r.baseUrl+"voice/queues/:id/clone",params:{includeAll:"@includeAll"}},getHoppers:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/hoppers"},getHopperHistories:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/hopper_histories"},getHopperFinals:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/hopper_finals"},getHopperBlacks:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/hopper_black"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"voice/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"voice/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"voice/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"voice/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/users"},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/members"},getLists:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/lists"},addLists:{isArray:!0,method:"post",url:r.baseUrl+"voice/queues/:id/lists"},removeLists:{isArray:!0,method:"delete",url:r.baseUrl+"voice/queues/:id/lists"},getBlackLists:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/blacklists"},addBlackLists:{isArray:!0,method:"post",url:r.baseUrl+"voice/queues/:id/blacklists"},removeBlackLists:{isArray:!0,method:"delete",url:r.baseUrl+"voice/queues/:id/blacklists"}}),r.voiceRecording=e(r.baseUrl+"voice/recordings/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/recordings/describe"},clone:{method:"post",url:r.baseUrl+"voice/recordings/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"voice/recordings/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}},downloads:{isArray:!1,method:"get",url:r.baseUrl+"voice/recordings/:id/downloads"},runTranscribe:{isArray:!1,method:"post",url:r.baseUrl+"voice/recordings/:id/transcribe"},downloadTranscribe:{isArray:!1,method:"get",url:r.baseUrl+"voice/recordings/:id/transcribe",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.screenRecording=e(r.baseUrl+"screen/recordings/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"screen/recordings/describe"},clone:{method:"post",url:r.baseUrl+"screen/recordings/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"screen/recordings/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.voiceMail=e(r.baseUrl+"voice/mails/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/mails/describe"},clone:{method:"post",url:r.baseUrl+"voice/mails/:id/clone",params:{includeAll:"@includeAll"}},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"voice/mails/:id/messages"}}),r.voiceMailMessage=e(r.baseUrl+"voice/mails/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/mails/messages/describe"},clone:{method:"post",url:r.baseUrl+"voice/mails/messages/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"voice/mails/messages/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.voiceCallReport=e(r.baseUrl+"voice/calls/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/calls/reports/describe"},clone:{method:"post",url:r.baseUrl+"voice/calls/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.voiceDialReport=e(r.baseUrl+"voice/dials/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/dials/reports/describe"},clone:{method:"post",url:r.baseUrl+"voice/dials/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.voiceAgentReport=e(r.baseUrl+"voice/agents/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/agents/reports/describe"},clone:{method:"post",url:r.baseUrl+"voice/agents/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.voiceQueueReport=e(r.baseUrl+"voice/queues/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/queues/reports/describe"},clone:{method:"post",url:r.baseUrl+"voice/queues/reports/:id/clone",params:{includeAll:"@includeAll"}},getVoiceQueuesReport:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/reports/index"}}),r.memberReport=e(r.baseUrl+"members/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"members/reports/describe"},clone:{method:"post",url:r.baseUrl+"members/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.trunk=e(r.baseUrl+"trunks/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"trunks/describe"},clone:{method:"post",url:r.baseUrl+"trunks/:id/clone",params:{includeAll:"@includeAll"}}}),r.voiceTransferReport=e(r.baseUrl+"voice/transfers/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/transfers/reports/describe"},clone:{method:"post",url:r.baseUrl+"voice/transfers/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.mailServerOut=e(r.baseUrl+"mail/out_servers/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/out_servers/describe"},clone:{method:"post",url:r.baseUrl+"mail/out_servers/:id/clone",params:{includeAll:"@includeAll"}}}),r.mailAccount=e(r.baseUrl+"mail/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/accounts/describe"},clone:{method:"post",url:r.baseUrl+"mail/accounts/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:r.baseUrl+"mail/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:r.baseUrl+"mail/accounts/:id/dispositions"},addAnswer:{isArray:!1,method:"post",url:r.baseUrl+"mail/accounts/:id/canned_answers"},getAnswers:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/canned_answers"},removeAnswers:{isArray:!1,method:"delete",url:r.baseUrl+"mail/accounts/:id/canned_answers"},getImap:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/in_servers"},addImap:{isArray:!1,method:"post",url:r.baseUrl+"mail/accounts/:id/in_servers"},removeImap:{isArray:!1,method:"delete",url:r.baseUrl+"mail/accounts/:id/in_servers"},getSmtp:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/out_servers"},addSmtp:{isArray:!1,method:"post",url:r.baseUrl+"mail/accounts/:id/out_servers"},removeSmtp:{isArray:!1,method:"delete",url:r.baseUrl+"mail/accounts/:id/out_servers"},addInteraction:{isArray:!1,method:"post",url:r.baseUrl+"mail/accounts/:id/interactions"},getInteractions:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/interactions"},addApplications:{isArray:!1,method:"post",url:r.baseUrl+"mail/accounts/:id/applications"},getApplications:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/applications"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/messages"},send:{isArray:!1,method:"post",url:r.baseUrl+"mail/accounts/:id/send"},verifySmtp:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/verify"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"mail/accounts/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"mail/accounts/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/users"}}),r.mailQueue=e(r.baseUrl+"mail/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/queues/describe"},clone:{method:"post",url:r.baseUrl+"mail/queues/:id/clone",params:{includeAll:"@includeAll"}},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"mail/queues/:id/members"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"mail/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"mail/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"mail/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"mail/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"mail/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"mail/queues/:id/users"}}),r.mailSubstatus=e(r.baseUrl+"mail/substatuses/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/substatuses/describe"},clone:{method:"post",url:r.baseUrl+"mail/substatuses/:id/clone",params:{includeAll:"@includeAll"}}}),r.mailInteraction=e(r.baseUrl+"mail/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/interactions/describe"},clone:{method:"post",url:r.baseUrl+"mail/interactions/:id/clone",params:{includeAll:"@includeAll"}},addMessage:{isArray:!1,method:"post",url:r.baseUrl+"mail/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"mail/interactions/:id/messages"},addTags:{isArray:!1,method:"post",url:r.baseUrl+"mail/interactions/:id/tags"},removeTags:{isArray:!1,method:"delete",url:r.baseUrl+"mail/interactions/:id/tags"},download:{isArray:!1,method:"get",url:r.baseUrl+"mail/interactions/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.mailMessage=e(r.baseUrl+"mail/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/messages/describe"},clone:{method:"post",url:r.baseUrl+"mail/messages/:id/clone",params:{includeAll:"@includeAll"}},accept:{isArray:!1,method:"put",url:r.baseUrl+"mail/messages/:id/accept"},reject:{isArray:!1,method:"put",url:r.baseUrl+"mail/messages/:id/reject"},download:{isArray:!1,method:"get",url:r.baseUrl+"mail/messages/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.mailApplication=e(r.baseUrl+"mail/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/applications/describe"},clone:{method:"post",url:r.baseUrl+"mail/applications/:id/clone",params:{includeAll:"@includeAll"}}}),r.mailQueueReport=e(r.baseUrl+"mail/reports/queue/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/reports/queue/describe"},clone:{method:"post",url:r.baseUrl+"mail/reports/queue/:id/clone",params:{includeAll:"@includeAll"}}}),r.dashboard=e(r.baseUrl+"dashboards/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"dashboards/describe"},clone:{method:"post",url:r.baseUrl+"dashboards/:id/clone",params:{includeAll:"@includeAll"}},addItem:{isArray:!1,method:"post",url:r.baseUrl+"dashboards/:id/items"},getItems:{isArray:!1,method:"get",url:r.baseUrl+"dashboards/:id/items"}}),r.dashboardItem=e(r.baseUrl+"dashboards/items/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"dashboards/items/describe"},clone:{method:"post",url:r.baseUrl+"dashboards/items/:id/clone",params:{includeAll:"@includeAll"}}}),r.faxAccount=e(r.baseUrl+"fax/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"fax/accounts/describe"},clone:{method:"post",url:r.baseUrl+"fax/accounts/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:r.baseUrl+"fax/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:r.baseUrl+"fax/accounts/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:r.baseUrl+"fax/accounts/:id/dispositions"},addAnswer:{isArray:!1,method:"post",url:r.baseUrl+"fax/accounts/:id/canned_answers"},getAnswers:{isArray:!1,method:"get",url:r.baseUrl+"fax/accounts/:id/canned_answers"},removeAnswers:{isArray:!1,method:"delete",url:r.baseUrl+"fax/accounts/:id/canned_answers"},addInteraction:{isArray:!1,method:"post",url:r.baseUrl+"fax/accounts/:id/interactions"},getInteractions:{isArray:!1,method:"get",url:r.baseUrl+"fax/accounts/:id/interactions"},addApplications:{isArray:!1,method:"post",url:r.baseUrl+"fax/accounts/:id/applications"},getApplications:{isArray:!1,method:"get",url:r.baseUrl+"fax/accounts/:id/applications"},addAccountApplications:{isArray:!1,method:"post",url:r.baseUrl+"fax/accounts/addaccountapplications"},updateAccountApplications:{isArray:!1,method:"post",url:r.baseUrl+"fax/accounts/updateaccountapplications"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"fax/accounts/:id/messages"},send:{isArray:!1,method:"post",url:r.baseUrl+"fax/accounts/:id/send"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"fax/accounts/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"fax/accounts/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"fax/accounts/:id/users"}}),r.faxApplication=e(r.baseUrl+"fax/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"fax/applications/describe"},clone:{method:"post",url:r.baseUrl+"fax/applications/:id/clone",params:{includeAll:"@includeAll"}}}),r.faxInteraction=e(r.baseUrl+"fax/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"fax/interactions/describe"},clone:{method:"post",url:r.baseUrl+"fax/interactions/:id/clone",params:{includeAll:"@includeAll"}},addMessage:{isArray:!1,method:"post",url:r.baseUrl+"fax/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"fax/interactions/:id/messages"},addTags:{isArray:!1,method:"post",url:r.baseUrl+"fax/interactions/:id/tags"},removeTags:{isArray:!1,method:"delete",url:r.baseUrl+"fax/interactions/:id/tags"},download:{isArray:!1,method:"get",url:r.baseUrl+"fax/interactions/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.faxMessage=e(r.baseUrl+"fax/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"fax/messages/describe"},clone:{method:"post",url:r.baseUrl+"fax/messages/:id/clone",params:{includeAll:"@includeAll"}},accept:{isArray:!1,method:"put",url:r.baseUrl+"fax/messages/:id/accept"},reject:{isArray:!1,method:"put",url:r.baseUrl+"fax/messages/:id/reject"},download:{isArray:!1,method:"get",url:r.baseUrl+"fax/messages/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.faxQueue=e(r.baseUrl+"fax/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"fax/queues/describe"},clone:{method:"post",url:r.baseUrl+"fax/queues/:id/clone",params:{includeAll:"@includeAll"}},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"fax/queues/:id/members"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"fax/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"fax/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"fax/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"fax/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"fax/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"fax/queues/:id/users"}}),r.faxQueueReport=e(r.baseUrl+"fax/reports/queue/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"fax/reports/queue/describe"},clone:{method:"post",url:r.baseUrl+"fax/reports/queue/:id/clone",params:{includeAll:"@includeAll"}}}),r.smsAccount=e(r.baseUrl+"sms/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sms/accounts/describe"},clone:{method:"post",url:r.baseUrl+"sms/accounts/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:r.baseUrl+"sms/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:r.baseUrl+"sms/accounts/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:r.baseUrl+"sms/accounts/:id/dispositions"},addAnswer:{isArray:!1,method:"post",url:r.baseUrl+"sms/accounts/:id/canned_answers"},getAnswers:{isArray:!1,method:"get",url:r.baseUrl+"sms/accounts/:id/canned_answers"},removeAnswers:{isArray:!1,method:"delete",url:r.baseUrl+"sms/accounts/:id/canned_answers"},notify:{isArray:!1,method:"post",url:r.baseUrl+"sms/accounts/:id/notify"},addApplications:{isArray:!1,method:"post",url:r.baseUrl+"sms/accounts/:id/applications"},getApplications:{isArray:!1,method:"get",url:r.baseUrl+"sms/accounts/:id/applications"},getInteractions:{isArray:!1,method:"get",url:r.baseUrl+"sms/accounts/:id/interactions"},send:{isArray:!1,method:"post",url:r.baseUrl+"sms/accounts/:id/send"},status:{isArray:!1,method:"post",url:r.baseUrl+"sms/accounts/:id/status"},statusGet:{isArray:!1,method:"get",url:r.baseUrl+"sms/accounts/:id/status"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"sms/accounts/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"sms/accounts/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"sms/accounts/:id/users"}}),r.smsApplication=e(r.baseUrl+"sms/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sms/applications/describe"},clone:{method:"post",url:r.baseUrl+"sms/applications/:id/clone",params:{includeAll:"@includeAll"}}}),r.smsInteraction=e(r.baseUrl+"sms/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sms/interactions/describe"},clone:{method:"post",url:r.baseUrl+"sms/interactions/:id/clone",params:{includeAll:"@includeAll"}},addMessage:{isArray:!1,method:"post",url:r.baseUrl+"sms/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"sms/interactions/:id/messages"},addTags:{isArray:!1,method:"post",url:r.baseUrl+"sms/interactions/:id/tags"},removeTags:{isArray:!1,method:"delete",url:r.baseUrl+"sms/interactions/:id/tags"},download:{isArray:!1,method:"get",url:r.baseUrl+"sms/interactions/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.smsMessage=e(r.baseUrl+"sms/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sms/messages/describe"},clone:{method:"post",url:r.baseUrl+"sms/messages/:id/clone",params:{includeAll:"@includeAll"}},accept:{isArray:!1,method:"put",url:r.baseUrl+"sms/messages/:id/accept"},reject:{isArray:!1,method:"put",url:r.baseUrl+"sms/messages/:id/reject"},status:{isArray:!1,method:"post",url:r.baseUrl+"sms/messages/:id/status"}}),r.smsQueue=e(r.baseUrl+"sms/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sms/queues/describe"},clone:{method:"post",url:r.baseUrl+"sms/queues/:id/clone",params:{includeAll:"@includeAll"}},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"sms/queues/:id/members"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"sms/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"sms/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"sms/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"sms/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"sms/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"sms/queues/:id/users"}}),r.openchannelAccount=e(r.baseUrl+"openchannel/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"openchannel/accounts/describe"},clone:{method:"post",url:r.baseUrl+"openchannel/accounts/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:r.baseUrl+"openchannel/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/accounts/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:r.baseUrl+"openchannel/accounts/:id/dispositions"},addAnswer:{isArray:!1,method:"post",url:r.baseUrl+"openchannel/accounts/:id/canned_answers"},getAnswers:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/accounts/:id/canned_answers"},removeAnswers:{isArray:!1,method:"delete",url:r.baseUrl+"openchannel/accounts/:id/canned_answers"},notify:{isArray:!1,method:"post",url:r.baseUrl+"openchannel/accounts/:id/notify"},addApplications:{isArray:!1,method:"post",url:r.baseUrl+"openchannel/accounts/:id/applications"},getApplications:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/accounts/:id/applications"},getInteractions:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/accounts/:id/interactions"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"openchannel/accounts/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"openchannel/accounts/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/accounts/:id/users"},send:{isArray:!1,method:"post",url:r.baseUrl+"openchannel/accounts/:id/send"}}),r.openchannelApplication=e(r.baseUrl+"openchannel/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"openchannel/applications/describe"},clone:{method:"post",url:r.baseUrl+"openchannel/applications/:id/clone",params:{includeAll:"@includeAll"}}}),r.openchannelInteraction=e(r.baseUrl+"openchannel/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"openchannel/interactions/describe"},clone:{method:"post",url:r.baseUrl+"openchannel/interactions/:id/clone",params:{includeAll:"@includeAll"}},addMessage:{isArray:!1,method:"post",url:r.baseUrl+"openchannel/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/interactions/:id/messages"},addTags:{isArray:!1,method:"post",url:r.baseUrl+"openchannel/interactions/:id/tags"},removeTags:{isArray:!1,method:"delete",url:r.baseUrl+"openchannel/interactions/:id/tags"},download:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/interactions/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.openchannelMessage=e(r.baseUrl+"openchannel/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"openchannel/messages/describe"},clone:{method:"post",url:r.baseUrl+"openchannel/messages/:id/clone",params:{includeAll:"@includeAll"}},accept:{isArray:!1,method:"put",url:r.baseUrl+"openchannel/messages/:id/accept"},reject:{isArray:!1,method:"put",url:r.baseUrl+"openchannel/messages/:id/reject"}}),r.openchannelQueue=e(r.baseUrl+"openchannel/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"openchannel/queues/describe"},clone:{method:"post",url:r.baseUrl+"openchannel/queues/:id/clone",params:{includeAll:"@includeAll"}},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/queues/:id/members"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"openchannel/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"openchannel/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"openchannel/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"openchannel/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/queues/:id/users"}}),r.chatWebsite=e(r.baseUrl+"chat/websites/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/websites/describe"},clone:{method:"post",url:r.baseUrl+"chat/websites/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:r.baseUrl+"chat/websites/:id/dispositions"},addAnswer:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/canned_answers"},getAnswers:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/canned_answers"},removeAnswers:{isArray:!1,method:"delete",url:r.baseUrl+"chat/websites/:id/canned_answers"},addLogo:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/logo"},addAvatar:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/avatar"},addCustomerAvatar:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/customer_avatar"},addSystemAvatar:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/system_avatar"},getLogo:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/logo"},getAvatar:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/avatar"},getCustomerAvatar:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/customer_avatar"},getSystemAvatar:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/system_avatar"},notify:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/notify"},offline:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/offline"},addInteraction:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/interactions"},getInteractions:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/interactions"},getSnippet:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/snippet"},addApplications:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/applications"},getApplications:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/applications"},addProactiveActions:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/proactive_actions"},getProactiveActions:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/proactive_actions"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/fields"},getOfflineMessages:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/offline_messages"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"chat/websites/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"chat/websites/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/users"}}),r.openchannelQueueReport=e(r.baseUrl+"openchannel/reports/queue/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"openchannel/reports/queue/describe"},clone:{method:"post",url:r.baseUrl+"openchannel/reports/queue/:id/clone",params:{includeAll:"@includeAll"}}}),r.chatApplication=e(r.baseUrl+"chat/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/applications/describe"},clone:{method:"post",url:r.baseUrl+"chat/applications/:id/clone",params:{includeAll:"@includeAll"}}}),r.chatInteraction=e(r.baseUrl+"chat/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/interactions/describe"},clone:{method:"post",url:r.baseUrl+"chat/interactions/:id/clone",params:{includeAll:"@includeAll"}},createVidaooSession:{isArray:!1,method:"post",url:r.baseUrl+"chat/interactions/:id/vidaoo"},customUpdate:{isArray:!1,method:"put",url:r.baseUrl+"chat/interactions/:id/custom_update"},abandon:{isArray:!1,method:"put",url:r.baseUrl+"chat/interactions/:id/abandon"},attachmentUpload:{isArray:!1,method:"post",url:r.baseUrl+"chat/interactions/:id/attachment_upload"},attachmentDownload:{isArray:!1,method:"get",url:r.baseUrl+"chat/interactions/:id/attachment_download"},close:{isArray:!1,method:"put",url:r.baseUrl+"chat/interactions/:id/close"},addMessage:{isArray:!1,method:"post",url:r.baseUrl+"chat/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"chat/interactions/:id/messages"},getMyMessages:{isArray:!1,method:"get",url:r.baseUrl+"chat/interactions/:id/my_messages"},addTags:{isArray:!1,method:"post",url:r.baseUrl+"chat/interactions/:id/tags"},removeTags:{isArray:!1,method:"delete",url:r.baseUrl+"chat/interactions/:id/tags"},download:{isArray:!1,method:"get",url:r.baseUrl+"chat/interactions/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.chatMessage=e(r.baseUrl+"chat/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/messages/describe"},clone:{method:"post",url:r.baseUrl+"chat/messages/:id/clone",params:{includeAll:"@includeAll"}},accept:{isArray:!1,method:"put",url:r.baseUrl+"chat/messages/:id/accept"},reject:{isArray:!1,method:"put",url:r.baseUrl+"chat/messages/:id/reject"}}),r.chatOfflineMessage=e(r.baseUrl+"chat/offline_messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/offline_messages/describe"},clone:{method:"post",url:r.baseUrl+"chat/offline_messages/:id/clone",params:{includeAll:"@includeAll"}}}),r.chatQueue=e(r.baseUrl+"chat/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/queues/describe"},clone:{method:"post",url:r.baseUrl+"chat/queues/:id/clone",params:{includeAll:"@includeAll"}},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"chat/queues/:id/members"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"chat/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"chat/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"chat/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"chat/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"chat/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"chat/queues/:id/users"}}),r.chatGroup=e(r.baseUrl+"chat/groups/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/groups/describe"},clone:{method:"post",url:r.baseUrl+"chat/groups/:id/clone",params:{includeAll:"@includeAll"}},getUnread:{isArray:!1,method:"get",url:r.baseUrl+"chat/groups/:id/unread"},addMembers:{isArray:!0,method:"post",url:r.baseUrl+"chat/groups/:id/members"},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"chat/groups/:id/members"},removeMembers:{isArray:!1,method:"delete",url:r.baseUrl+"chat/groups/:id/members"},addMessage:{isArray:!1,method:"post",url:r.baseUrl+"chat/groups/:id/messages"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"chat/groups/:id/messages"}}),r.chatProactiveAction=e(r.baseUrl+"chat/proactive_actions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/proactive_actions/describe"},clone:{method:"post",url:r.baseUrl+"chat/proactive_actions/:id/clone",params:{includeAll:"@includeAll"}}}),r.cmCompany=e(r.baseUrl+"cm/companies/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/companies/describe"},clone:{method:"post",url:r.baseUrl+"cm/companies/:id/clone",params:{includeAll:"@includeAll"}},addContacts:{isArray:!1,method:"post",url:r.baseUrl+"cm/companies/:id/contacts"},getContacts:{isArray:!1,method:"get",url:r.baseUrl+"cm/companies/:id/contacts"}}),r.cmContact=e(r.baseUrl+"cm/contacts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/contacts/describe"},clone:{method:"post",url:r.baseUrl+"cm/contacts/:id/clone",params:{includeAll:"@includeAll"}},merge:{isArray:!1,method:"post",url:r.baseUrl+"cm/contacts/merge"},bulkCreate:{isArray:!1,method:"post",url:r.baseUrl+"cm/contacts/create_many"},getTags:{isArray:!1,method:"get",url:r.baseUrl+"cm/contacts/:id/tags"},setTags:{isArray:!0,method:"post",url:r.baseUrl+"cm/contacts/:id/tags"},getHoppers:{isArray:!1,method:"get",url:r.baseUrl+"cm/contacts/:id/hoppers"},getHopperHistories:{isArray:!1,method:"get",url:r.baseUrl+"cm/contacts/:id/hopper_histories"},getHopperFinals:{isArray:!1,method:"get",url:r.baseUrl+"cm/contacts/:id/hopper_finals"},getJscriptySessions:{isArray:!1,method:"get",url:r.baseUrl+"cm/contacts/:id/jscripty_sessions"},uploadCsv:{isArray:!1,method:"post",url:r.baseUrl+"cm/contacts/csv"},upload:{isArray:!1,method:"post",url:r.baseUrl+"cm/contacts/upload"},import:{isArray:!1,method:"post",url:r.baseUrl+"cm/contacts/upload/:id"},getJourney:{isArray:!1,method:"get",url:r.baseUrl+"cm/contacts/:id/journey"}}),r.cmHopper=e(r.baseUrl+"cm/hopper/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/hopper/describe"},clone:{method:"post",url:r.baseUrl+"cm/hopper/:id/clone",params:{includeAll:"@includeAll"}},getPreview:{isArray:!1,method:"post",url:r.baseUrl+"cm/hopper/preview"},getOpenContacts:{isArray:!1,method:"get",url:r.baseUrl+"cm/hopper/opencontacts"}}),r.cmHopperBlack=e(r.baseUrl+"cm/hopper_black/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/hopper_black/describe"},clone:{method:"post",url:r.baseUrl+"cm/hopper_black/:id/clone",params:{includeAll:"@includeAll"}}}),r.cmHopperFinal=e(r.baseUrl+"cm/hopper_final/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/hopper_final/describe"},clone:{method:"post",url:r.baseUrl+"cm/hopper_final/:id/clone",params:{includeAll:"@includeAll"}},countContactsQueueCampaignHopperFinal:{isArray:!0,method:"get",url:r.baseUrl+"cm/hopper_final/voice/queue/countAttributes/:id"},countContactsIvrCampaignHopperFinal:{isArray:!0,method:"get",url:r.baseUrl+"cm/hopper_final/campaign/countAttributes/:id"},moveContactsQueueCampaignHopperFinal:{isArray:!0,method:"post",url:r.baseUrl+"cm/hopper_final/voice/queue/moveContacts/:id"},moveContactsIvrCampaignHopperFinal:{isArray:!0,method:"post",url:r.baseUrl+"cm/hopper_final/voice/campaign/moveContacts/:id"},checkContactHopper:{isArray:!1,method:"post",url:r.baseUrl+"cm/hopper_final/checkContactHopper"}}),r.cmHopperHistory=e(r.baseUrl+"cm/hopper_history/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/hopper_history/describe"},clone:{method:"post",url:r.baseUrl+"cm/hopper_history/:id/clone",params:{includeAll:"@includeAll"}}}),r.cmCustomField=e(r.baseUrl+"cm/custom_fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/custom_fields/describe"},clone:{method:"post",url:r.baseUrl+"cm/custom_fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.action=e(r.baseUrl+"actions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"actions/describe"},clone:{method:"post",url:r.baseUrl+"actions/:id/clone",params:{includeAll:"@includeAll"}}}),r.automation=e(r.baseUrl+"automations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"automations/describe"},clone:{method:"post",url:r.baseUrl+"automations/:id/clone",params:{includeAll:"@includeAll"}},addConditions:{isArray:!1,method:"post",url:r.baseUrl+"automations/:id/conditions"},getConditions:{isArray:!1,method:"get",url:r.baseUrl+"automations/:id/conditions"},addActions:{isArray:!1,method:"post",url:r.baseUrl+"automations/:id/actions"},getActions:{isArray:!1,method:"get",url:r.baseUrl+"automations/:id/actions"}}),r.cannedAnswer=e(r.baseUrl+"canned_answers/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"canned_answers/describe"},clone:{method:"post",url:r.baseUrl+"canned_answers/:id/clone",params:{includeAll:"@includeAll"}}}),r.disposition=e(r.baseUrl+"dispositions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"dispositions/describe"},clone:{method:"post",url:r.baseUrl+"dispositions/:id/clone",params:{includeAll:"@includeAll"}}}),r.condition=e(r.baseUrl+"conditions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"conditions/describe"},clone:{method:"post",url:r.baseUrl+"conditions/:id/clone",params:{includeAll:"@includeAll"}}}),r.interval=e(r.baseUrl+"intervals/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"intervals/describe"},clone:{method:"post",url:r.baseUrl+"intervals/:id/clone",params:{includeAll:"@includeAll"}},addInterval:{isArray:!1,method:"post",url:r.baseUrl+"intervals/:id/sub_intervals"},getIntervals:{isArray:!1,method:"get",url:r.baseUrl+"intervals/:id/sub_intervals"},addIntervals:{isArray:!0,method:"post",url:r.baseUrl+"intervals/:id/sub_intervals/create_many"}}),r.pause=e(r.baseUrl+"pauses/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"pauses/describe"},clone:{method:"post",url:r.baseUrl+"pauses/:id/clone",params:{includeAll:"@includeAll"}}}),r.cdr=e(r.baseUrl+"cdr/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cdr/describe"},clone:{method:"post",url:r.baseUrl+"cdr/:id/clone",params:{includeAll:"@includeAll"}}}),r.voiceQueuesLog=e(r.baseUrl+"voiceQueuesLog/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voiceQueuesLog/describe"},clone:{method:"post",url:r.baseUrl+"voiceQueuesLog/:id/clone",params:{includeAll:"@includeAll"}}}),r.schedule=e(r.baseUrl+"schedules/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"schedules/describe"},clone:{method:"post",url:r.baseUrl+"schedules/:id/clone",params:{includeAll:"@includeAll"}},run:{isArray:!1,method:"get",url:r.baseUrl+"schedules/:id/run"}}),r.sound=e(r.baseUrl+"sounds/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sounds/describe"},clone:{method:"post",url:r.baseUrl+"sounds/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"sounds/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}},delete:{isArray:!1,method:"delete",url:r.baseUrl+"sounds/:id"}}),r.tag=e(r.baseUrl+"tags/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"tags/describe"},clone:{method:"post",url:r.baseUrl+"tags/:id/clone",params:{includeAll:"@includeAll"}}}),r.template=e(r.baseUrl+"templates/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"templates/describe"},clone:{method:"post",url:r.baseUrl+"templates/:id/clone",params:{includeAll:"@includeAll"}}}),r.trigger=e(r.baseUrl+"triggers/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"triggers/describe"},clone:{method:"post",url:r.baseUrl+"triggers/:id/clone",params:{includeAll:"@includeAll"}},addAllCondition:{isArray:!1,method:"post",url:r.baseUrl+"triggers/:id/all_conditions"},addAnyCondition:{isArray:!1,method:"post",url:r.baseUrl+"triggers/:id/any_conditions"},getAllConditions:{isArray:!1,method:"get",url:r.baseUrl+"triggers/:id/all_conditions"},getAnyConditions:{isArray:!1,method:"get",url:r.baseUrl+"triggers/:id/any_conditions"},addAction:{isArray:!1,method:"post",url:r.baseUrl+"triggers/:id/actions"},getActions:{isArray:!1,method:"get",url:r.baseUrl+"triggers/:id/actions"}}),r.variable=e(r.baseUrl+"variables/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"variables/describe"},clone:{method:"post",url:r.baseUrl+"variables/:id/clone",params:{includeAll:"@includeAll"}}}),r.integration=e(r.baseUrl+"integrations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/:id/clone",params:{includeAll:"@includeAll"}}}),r.integrationReport=e(r.baseUrl+"integrations/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/reports/describe"},clone:{method:"post",url:r.baseUrl+"integrations/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.analyticCustomReport=e(r.baseUrl+"analytics/custom_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"analytics/custom_reports/describe"},clone:{method:"post",url:r.baseUrl+"analytics/custom_reports/:id/clone",params:{includeAll:"@includeAll"}},preview:{isArray:!0,method:"get",url:r.baseUrl+"analytics/custom_reports/:id/preview"},run:{isArray:!1,method:"get",url:r.baseUrl+"analytics/custom_reports/:id/run"},query:{isArray:!1,method:"get",url:r.baseUrl+"analytics/custom_reports/:id/query"}}),r.analyticDefaultReport=e(r.baseUrl+"analytics/default_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"analytics/default_reports/describe"},clone:{method:"post",url:r.baseUrl+"analytics/default_reports/:id/clone",params:{includeAll:"@includeAll"}},preview:{isArray:!0,method:"get",url:r.baseUrl+"analytics/default_reports/:id/preview"},run:{isArray:!1,method:"get",url:r.baseUrl+"analytics/default_reports/:id/run"},query:{isArray:!1,method:"get",url:r.baseUrl+"analytics/default_reports/:id/query"}}),r.analyticExtractedReport=e(r.baseUrl+"analytics/extracted_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"analytics/extracted_reports/describe"},clone:{method:"post",url:r.baseUrl+"analytics/extracted_reports/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"analytics/extracted_reports/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.analyticMetric=e(r.baseUrl+"analytics/metrics/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"analytics/metrics/describe"},clone:{method:"post",url:r.baseUrl+"analytics/metrics/:id/clone",params:{includeAll:"@includeAll"}}}),r.analyticFieldReport=e(r.baseUrl+"analytics/field_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"analytics/field_reports/describe"},clone:{method:"post",url:r.baseUrl+"analytics/field_reports/:id/clone",params:{includeAll:"@includeAll"}},bulkCreate:{method:"post",url:r.baseUrl+"analytics/field_reports/create_many",isArray:!0},bulkDestroy:{method:"delete",url:r.baseUrl+"analytics/field_reports/destroy_many",isArray:!0},addFields:{isArray:!0,method:"post",url:r.baseUrl+"analytics/field_reports/:id/create_many"}}),r.analyticTreeReport=e(r.baseUrl+"analytics/tree_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"analytics/tree_reports/describe"},clone:{method:"post",url:r.baseUrl+"analytics/tree_reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.intSalesforceAccount=e(r.baseUrl+"integrations/salesforce/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/salesforce/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/salesforce/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/salesforce/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/salesforce/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/salesforce/accounts/:id/fields"}}),r.intSalesforceConfiguration=e(r.baseUrl+"integrations/salesforce/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/salesforce/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/salesforce/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/salesforce/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/salesforce/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/salesforce/configurations/:id/descriptions"}}),r.intSalesforceField=e(r.baseUrl+"integrations/salesforce/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/salesforce/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/salesforce/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intSugarcrmAccount=e(r.baseUrl+"integrations/sugarcrm/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/sugarcrm/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/sugarcrm/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/sugarcrm/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/sugarcrm/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/sugarcrm/accounts/:id/fields"}}),r.intSugarcrmConfiguration=e(r.baseUrl+"integrations/sugarcrm/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/sugarcrm/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/sugarcrm/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/sugarcrm/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/sugarcrm/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/sugarcrm/configurations/:id/descriptions"}}),r.intSugarcrmField=e(r.baseUrl+"integrations/sugarcrm/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/sugarcrm/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/sugarcrm/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intDeskAccount=e(r.baseUrl+"integrations/desk/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/desk/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/desk/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/desk/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/desk/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/desk/accounts/:id/fields"}}),r.intDeskConfiguration=e(r.baseUrl+"integrations/desk/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/desk/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/desk/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/desk/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/desk/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/desk/configurations/:id/descriptions"},getTags:{isArray:!1,method:"get",url:r.baseUrl+"integrations/desk/configurations/:id/tags"},setTags:{isArray:!0,method:"post",url:r.baseUrl+"integrations/desk/configurations/:id/tags"}}),r.intDeskField=e(r.baseUrl+"integrations/desk/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/desk/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/desk/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intZohoAccount=e(r.baseUrl+"integrations/zoho/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/zoho/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/zoho/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zoho/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/zoho/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zoho/accounts/:id/fields"}}),r.intZohoConfiguration=e(r.baseUrl+"integrations/zoho/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/zoho/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/zoho/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zoho/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zoho/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zoho/configurations/:id/descriptions"}}),r.intZohoField=e(r.baseUrl+"integrations/zoho/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/zoho/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/zoho/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intZendeskAccount=e(r.baseUrl+"integrations/zendesk/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/zendesk/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/zendesk/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zendesk/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/zendesk/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zendesk/accounts/:id/fields"}}),r.intZendeskConfiguration=e(r.baseUrl+"integrations/zendesk/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/zendesk/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/zendesk/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zendesk/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zendesk/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zendesk/configurations/:id/descriptions"},getTags:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zendesk/configurations/:id/tags"},setTags:{isArray:!0,method:"post",url:r.baseUrl+"integrations/zendesk/configurations/:id/tags"}}),r.intZendeskField=e(r.baseUrl+"integrations/zendesk/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/zendesk/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/zendesk/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intFreshdeskAccount=e(r.baseUrl+"integrations/freshdesk/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/freshdesk/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/freshdesk/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshdesk/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/freshdesk/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshdesk/accounts/:id/fields"}}),r.intFreshdeskConfiguration=e(r.baseUrl+"integrations/freshdesk/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/freshdesk/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/freshdesk/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshdesk/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshdesk/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshdesk/configurations/:id/descriptions"},getTags:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshdesk/configurations/:id/tags"},setTags:{isArray:!0,method:"post",url:r.baseUrl+"integrations/freshdesk/configurations/:id/tags"}}),r.intFreshdeskField=e(r.baseUrl+"integrations/freshdesk/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/freshdesk/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/freshdesk/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intVtigerAccount=e(r.baseUrl+"integrations/vtiger/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/vtiger/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/vtiger/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/vtiger/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/vtiger/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/vtiger/accounts/:id/fields"}}),r.intVtigerConfiguration=e(r.baseUrl+"integrations/vtiger/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/vtiger/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/vtiger/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/vtiger/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/vtiger/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/vtiger/configurations/:id/descriptions"}}),r.intVtigerField=e(r.baseUrl+"integrations/vtiger/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/vtiger/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/vtiger/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intServicenowAccount=e(r.baseUrl+"integrations/servicenow/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/servicenow/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/servicenow/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/servicenow/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/servicenow/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/servicenow/accounts/:id/fields"}}),r.intServicenowConfiguration=e(r.baseUrl+"integrations/servicenow/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/servicenow/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/servicenow/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/servicenow/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/servicenow/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/servicenow/configurations/:id/descriptions"}}),r.intServicenowField=e(r.baseUrl+"integrations/servicenow/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/servicenow/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/servicenow/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intDynamics365Account=e(r.baseUrl+"integrations/dynamics365/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/dynamics365/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/dynamics365/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/dynamics365/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/dynamics365/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/dynamics365/accounts/:id/fields"}}),r.intDynamics365Configuration=e(r.baseUrl+"integrations/dynamics365/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/dynamics365/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/dynamics365/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/dynamics365/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/dynamics365/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/dynamics365/configurations/:id/descriptions"}}),r.intDynamics365Field=e(r.baseUrl+"integrations/dynamics365/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/dynamics365/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/dynamics365/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intFreshsalesAccount=e(r.baseUrl+"integrations/freshsales/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/freshsales/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/freshsales/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshsales/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/freshsales/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshsales/accounts/:id/fields"}}),r.intFreshsalesConfiguration=e(r.baseUrl+"integrations/freshsales/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/freshsales/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/freshsales/configurations/:id/clone",params:{includeAll:"@includeAll"}},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshsales/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshsales/configurations/:id/descriptions"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshsales/configurations/:id/fields"}}),r.intFreshsalesField=e(r.baseUrl+"integrations/freshsales/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/freshsales/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/freshsales/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.network=e(r.baseUrl+"networks/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"networks/describe"},clone:{method:"post",url:r.baseUrl+"networks/:id/clone",params:{includeAll:"@includeAll"}}}),r.chatQueueReport=e(r.baseUrl+"chat/reports/queue/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/reports/queue/describe"},clone:{method:"post",url:r.baseUrl+"chat/reports/queue/:id/clone",params:{includeAll:"@includeAll"}}}),r.chatInternalMessage=e(r.baseUrl+"chat/internal/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/internal/messages/describe"},clone:{method:"post",url:r.baseUrl+"chat/internal/messages/:id/clone",params:{includeAll:"@includeAll"}},getUsers:{isArray:!1,method:"get",url:r.baseUrl+"chat/internal/messages/users"}}),r.jscriptyAnswerReport=e(r.baseUrl+"jscripty/answers/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"jscripty/answers/reports/describe"},clone:{method:"post",url:r.baseUrl+"jscripty/answers/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.jscriptyQuestionReport=e(r.baseUrl+"jscripty/questions/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"jscripty/questions/reports/describe"},clone:{method:"post",url:r.baseUrl+"jscripty/questions/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.jscriptySessionReport=e(r.baseUrl+"jscripty/sessions/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"jscripty/sessions/reports/describe"},clone:{method:"post",url:r.baseUrl+"jscripty/sessions/reports/:id/clone",params:{includeAll:"@includeAll"}},getQuestions:{isArray:!1,method:"get",url:r.baseUrl+"jscripty/sessions/reports/:id/questions"}}),r.smsQueueReport=e(r.baseUrl+"sms/reports/queue/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sms/reports/queue/describe"},clone:{method:"post",url:r.baseUrl+"sms/reports/queue/:id/clone",params:{includeAll:"@includeAll"}}}),r.squareReport=e(r.baseUrl+"square/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"square/reports/describe"},clone:{method:"post",url:r.baseUrl+"square/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.squareReportDetail=e(r.baseUrl+"square/details/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"square/details/reports/describe"},clone:{method:"post",url:r.baseUrl+"square/details/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.jscriptyProject=e(r.baseUrl+"jscripty/projects/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"jscripty/projects/describe"},clone:{method:"post",url:r.baseUrl+"jscripty/projects/:id/clone",params:{includeAll:"@includeAll"}},getSessions:{isArray:!1,method:"get",url:r.baseUrl+"jscripty/projects/:id/sessions"},getAnswers:{isArray:!1,method:"get",url:r.baseUrl+"jscripty/projects/:id/answers"},getSummary:{isArray:!1,method:"get",url:r.baseUrl+"jscripty/projects/:id/summary",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.setting=e(r.baseUrl+"settings/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"settings/describe"},clone:{method:"post",url:r.baseUrl+"settings/:id/clone",params:{includeAll:"@includeAll"}},addLogo:{isArray:!1,method:"post",url:r.baseUrl+"settings/:id/logo"},addLogoLogin:{isArray:!1,method:"post",url:r.baseUrl+"settings/:id/logo_login"},getLogo:{isArray:!1,method:"get",url:r.baseUrl+"settings/:id/logo"},getLogoLogin:{isArray:!1,method:"get",url:r.baseUrl+"settings/:id/logo_login"},gdpr:{isArray:!1,method:"get",url:r.baseUrl+"settings/:id/gdpr"},addPreferred:{isArray:!1,method:"post",url:r.baseUrl+"settings/:id/preferred"},getPreferred:{isArray:!1,method:"get",url:r.baseUrl+"settings/:id/preferred"},addFavicon:{isArray:!1,method:"post",url:r.baseUrl+"settings/:id/favicon"},getFavicon:{isArray:!1,method:"get",url:r.baseUrl+"settings/:id/favicon"},getDate:{isArray:!1,method:"get",url:r.baseUrl+"settings/now"}}),r.squareOdbc=e(r.baseUrl+"square/odbc/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"square/odbc/describe"},clone:{method:"post",url:r.baseUrl+"square/odbc/:id/clone",params:{includeAll:"@includeAll"}},test:{isArray:!1,method:"get",url:r.baseUrl+"square/odbc/:id/test"}}),r.squareProject=e(r.baseUrl+"square/projects/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"square/projects/describe"},clone:{method:"post",url:r.baseUrl+"square/projects/:id/clone",params:{includeAll:"@includeAll"}},addUsers:{isArray:!0,method:"post",url:r.baseUrl+"square/projects/:id/users"},removeUsers:{isArray:!1,method:"delete",url:r.baseUrl+"square/projects/:id/users"},getUsers:{isArray:!1,method:"get",url:r.baseUrl+"square/projects/:id/users"}}),r.squareRecording=e(r.baseUrl+"square/recordings/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"square/recordings/describe"},clone:{method:"post",url:r.baseUrl+"square/recordings/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"square/recordings/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.squareMessage=e(r.baseUrl+"square/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"square/messages/describe"},clone:{method:"post",url:r.baseUrl+"square/messages/:id/clone",params:{includeAll:"@includeAll"}}}),r.team=e(r.baseUrl+"teams/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"teams/describe"},clone:{method:"post",url:r.baseUrl+"teams/:id/clone",params:{includeAll:"@includeAll"}},getQueues:{isArray:!0,method:"get",url:r.baseUrl+"teams/:id/queues"},addQueues:{isArray:!0,method:"post",url:r.baseUrl+"teams/:id/queues"},removeQueues:{isArray:!1,method:"delete",url:r.baseUrl+"teams/:id/queues"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"teams/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"teams/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"teams/:id/users"}}),r.license=e(r.baseUrl+"license/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"license/describe"},clone:{method:"post",url:r.baseUrl+"license/:id/clone",params:{includeAll:"@includeAll"}}}),r.campaign=e(r.baseUrl+"campaigns/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"campaigns/describe"},clone:{method:"post",url:r.baseUrl+"campaigns/:id/clone",params:{includeAll:"@includeAll"}},getHoppers:{isArray:!1,method:"get",url:r.baseUrl+"campaigns/:id/hoppers"},getHopperHistories:{isArray:!1,method:"get",url:r.baseUrl+"campaigns/:id/hopper_histories"},getHopperFinals:{isArray:!1,method:"get",url:r.baseUrl+"campaigns/:id/hopper_finals"},getHopperBlacks:{isArray:!1,method:"get",url:r.baseUrl+"campaigns/:id/hopper_black"},getLists:{isArray:!1,method:"get",url:r.baseUrl+"campaigns/:id/lists"},addLists:{isArray:!0,method:"post",url:r.baseUrl+"campaigns/:id/lists"},removeLists:{isArray:!0,method:"delete",url:r.baseUrl+"campaigns/:id/lists"},getBlackLists:{isArray:!1,method:"get",url:r.baseUrl+"campaigns/:id/blacklists"},addBlackLists:{isArray:!0,method:"post",url:r.baseUrl+"campaigns/:id/blacklists"},removeBlackLists:{isArray:!0,method:"delete",url:r.baseUrl+"campaigns/:id/blacklists"}}),r.migration=e(r.baseUrl+"migrations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"migrations/describe"},clone:{method:"post",url:r.baseUrl+"migrations/:id/clone",params:{includeAll:"@includeAll"}}}),r.attachment=e(r.baseUrl+"attachments/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"attachments/describe"},clone:{method:"post",url:r.baseUrl+"attachments/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"attachments/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.plugin=e(r.baseUrl+"plugins/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"plugins/describe"},clone:{method:"post",url:r.baseUrl+"plugins/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"plugins/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}},upload:{isArray:!1,method:"post",url:r.baseUrl+"plugins/"},delete:{isArray:!1,method:"delete",url:r.baseUrl+"plugins/:id"},webhookGet:{isArray:!1,method:"get",url:r.baseUrl+"plugins/webhook"},webhookPost:{isArray:!1,method:"post",url:r.baseUrl+"plugins/webhook"}}),r.mailTransferReport=e(r.baseUrl+"mail/reports/transfer/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/reports/transfer/describe"},clone:{method:"post",url:r.baseUrl+"mail/reports/transfer/:id/clone",params:{includeAll:"@includeAll"}}}),r.chatTransferReport=e(r.baseUrl+"chat/reports/transfer/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/reports/transfer/describe"},clone:{method:"post",url:r.baseUrl+"chat/reports/transfer/:id/clone",params:{includeAll:"@includeAll"}}}),r.faxTransferReport=e(r.baseUrl+"fax/reports/transfer/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"fax/reports/transfer/describe"},clone:{method:"post",url:r.baseUrl+"fax/reports/transfer/:id/clone",params:{includeAll:"@includeAll"}}}),r.openchannelTransferReport=e(r.baseUrl+"openchannel/reports/transfer/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"openchannel/reports/transfer/describe"},clone:{method:"post",url:r.baseUrl+"openchannel/reports/transfer/:id/clone",params:{includeAll:"@includeAll"}}}),r.smsTransferReport=e(r.baseUrl+"sms/reports/transfer/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sms/reports/transfer/describe"},clone:{method:"post",url:r.baseUrl+"sms/reports/transfer/:id/clone",params:{includeAll:"@includeAll"}}}),r.cmList=e(r.baseUrl+"cm/lists/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/lists/describe"},clone:{method:"post",url:r.baseUrl+"cm/lists/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:r.baseUrl+"cm/lists/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:r.baseUrl+"cm/lists/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:r.baseUrl+"cm/lists/:id/dispositions"},addContacts:{isArray:!1,method:"post",url:r.baseUrl+"cm/lists/:id/contacts"},getContacts:{isArray:!0,method:"get",url:r.baseUrl+"cm/lists/:id/contacts"},getContactsCsv:{isArray:!1,method:"get",url:r.baseUrl+"cm/lists/:id/contacts/csv",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}},addCustomField:{isArray:!1,method:"post",url:r.baseUrl+"cm/lists/:id/fields"},getCustomFields:{isArray:!1,method:"get",url:r.baseUrl+"cm/lists/:id/fields"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"cm/lists/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"cm/lists/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"cm/lists/:id/users"}}),r.voicePrefix=e(r.baseUrl+"voice/prefixes/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/prefixes/describe"},clone:{method:"post",url:r.baseUrl+"voice/prefixes/:id/clone",params:{includeAll:"@includeAll"}},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"voice/prefixes/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"voice/prefixes/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"voice/prefixes/:id/users"}}),r.userProfile=e(r.baseUrl+"userProfiles/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"userProfiles/describe"},clone:{method:"post",url:r.baseUrl+"userProfiles/:id/clone",params:{includeAll:"@includeAll"}},addSections:{isArray:!0,method:"post",url:r.baseUrl+"userProfiles/:id/sections"},removeSections:{isArray:!1,method:"delete",url:r.baseUrl+"userProfiles/:id/sections"},getSections:{isArray:!0,method:"get",url:r.baseUrl+"userProfiles/:id/sections"},addResources:{isArray:!0,method:"post",url:r.baseUrl+"userProfiles/:id/resources"},removeResources:{isArray:!1,method:"delete",url:r.baseUrl+"userProfiles/:id/resources"},getResources:{isArray:!1,method:"get",url:r.baseUrl+"userProfiles/:id/resources"}}),r.userProfileSection=e(r.baseUrl+"userProfile/sections/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"userProfile/sections/describe"},clone:{method:"post",url:r.baseUrl+"userProfile/sections/:id/clone",params:{includeAll:"@includeAll"}}}),r.userProfileResource=e(r.baseUrl+"userProfile/resources/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"userProfile/resources/describe"},clone:{method:"post",url:r.baseUrl+"userProfile/resources/:id/clone",params:{includeAll:"@includeAll"}}}),r.userNotification=e(r.baseUrl+"userNotifications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"userNotifications/describe"},clone:{method:"post",url:r.baseUrl+"userNotifications/:id/clone",params:{includeAll:"@includeAll"}},sendUserNotification:{isArray:!1,method:"post",url:r.baseUrl+"userNotifications/"}}),r.whatsappAccount=e(r.baseUrl+"whatsapp/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"whatsapp/accounts/describe"},clone:{method:"post",url:r.baseUrl+"whatsapp/accounts/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/accounts/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:r.baseUrl+"whatsapp/accounts/:id/dispositions"},addAnswer:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/accounts/:id/canned_answers"},getAnswers:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/accounts/:id/canned_answers"},removeAnswers:{isArray:!1,method:"delete",url:r.baseUrl+"whatsapp/accounts/:id/canned_answers"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"whatsapp/accounts/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"whatsapp/accounts/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/accounts/:id/users"},addApplications:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/accounts/:id/applications"},getApplications:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/accounts/:id/applications"},notify:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/accounts/:id/notify"},send:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/accounts/:id/send"}}),r.whatsappApplication=e(r.baseUrl+"whatsapp/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"whatsapp/applications/describe"},clone:{method:"post",url:r.baseUrl+"whatsapp/applications/:id/clone",params:{includeAll:"@includeAll"}}}),r.whatsappInteraction=e(r.baseUrl+"whatsapp/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"whatsapp/interactions/describe"},clone:{method:"post",url:r.baseUrl+"whatsapp/interactions/:id/clone",params:{includeAll:"@includeAll"}},addMessage:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/interactions/:id/messages"},addTags:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/interactions/:id/tags"},removeTags:{isArray:!1,method:"delete",url:r.baseUrl+"whatsapp/interactions/:id/tags"},download:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/interactions/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.whatsappMessage=e(r.baseUrl+"whatsapp/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"whatsapp/messages/describe"},clone:{method:"post",url:r.baseUrl+"whatsapp/messages/:id/clone",params:{includeAll:"@includeAll"}},accept:{isArray:!1,method:"put",url:r.baseUrl+"whatsapp/messages/:id/accept"},reject:{isArray:!1,method:"put",url:r.baseUrl+"whatsapp/messages/:id/reject"},status:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/messages/:id/status"}}),r.whatsappQueueReport=e(r.baseUrl+"whatsapp/reports/queue/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"whatsapp/reports/queue/describe"},clone:{method:"post",url:r.baseUrl+"whatsapp/reports/queue/:id/clone",params:{includeAll:"@includeAll"}}}),r.whatsappTransferReport=e(r.baseUrl+"whatsapp/reports/transfer/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"whatsapp/reports/transfer/describe"},clone:{method:"post",url:r.baseUrl+"whatsapp/reports/transfer/:id/clone",params:{includeAll:"@includeAll"}}}),r.whatsappQueue=e(r.baseUrl+"whatsapp/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"whatsapp/queues/describe"},clone:{method:"post",url:r.baseUrl+"whatsapp/queues/:id/clone",params:{includeAll:"@includeAll"}},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/queues/:id/members"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"whatsapp/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"whatsapp/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"whatsapp/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"whatsapp/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/queues/:id/users"}}),r.cloudProvider=e(r.baseUrl+"cloudProviders/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cloudProviders/describe"},clone:{method:"post",url:r.baseUrl+"cloudProviders/:id/clone",params:{includeAll:"@includeAll"}}}),r.realtime=e(r.baseUrl+"realtime",{},{getQueues:{isArray:!1,method:"get",url:r.baseUrl+"realtime/queues"}}),r}e.$inject=["$resource","userProfileManager"],angular.module("motion").factory("api",e)}(),function(){"use strict";function e(e,n){n.setConfig({position:"top-right",sound:!1,html:!0,theme:"material"}),e.useLoader("$translatePartialLoader",{urlTemplate:"{part}/i18n/{lang}.json"}),e.preferredLanguage("en"),e.fallbackLanguage("en"),e.useSanitizeValueStrategy(null)}e.$inject=["$translateProvider","toastyConfigProvider"],angular.module("motion").config(e)}(),function(){"use strict";angular.module("motion")}(),function(){"use strict";function e(e,n,t,a){var i=this;i.themes=e.themes,i.direction="ltr";var s=t.get("motion.language");s&&(n.use(s),0<=["ar","fa","he"].indexOf(s)&&a.setting.get({id:1}).$promise.then(function(e){e&&e.rtlSupport&&(i.direction="rtl")}).catch(function(e){e&&toasty.error({title:"Error",msg:e.data?e.data.message||e.message||e:e.message||e})}))}e.$inject=["motionTheming","$translate","$cookies","api"],angular.module("motion").controller("IndexController",e)}(),function(){"use strict";function e(a,i){return function(e){var n=new Date,t=new Date(e);return t.getDate()===n.getDate()&&t.getMonth()===n.getMonth()&&t.getFullYear()===n.getFullYear()?a("date")(t.getTime(),"shortTime"):t.getDate()===n.getDate()-1&&t.getMonth()===n.getMonth()&&t.getFullYear()===n.getFullYear()?i.instant("DASHBOARDS.YESTERDAY")+" "+a("date")(t.getTime(),"shortTime"):a("date")(t.getTime(),"MMM d, y h:mm a")}}function n(e){return{Today:e.instant("DASHBOARDS.TODAY"),Yesterday:e.instant("DASHBOARDS.YESTERDAY"),"This Week":e.instant("DASHBOARDS.THIS_WEEK"),"Last Week":e.instant("DASHBOARDS.LAST_WEEK"),"This Month":e.instant("DASHBOARDS.THIS_MONTH"),"Last Month":e.instant("DASHBOARDS.LAST_MONTH"),"This Year":e.instant("DASHBOARDS.THIS_YEAR"),"Last Year":e.instant("DASHBOARDS.LAST_YEAR"),January:e.instant("DASHBOARDS.JANUARY"),February:e.instant("DASHBOARDS.FEBRUARY"),March:e.instant("DASHBOARDS.MARCH"),April:e.instant("DASHBOARDS.APRIL"),May:e.instant("DASHBOARDS.MAY"),June:e.instant("DASHBOARDS.JUNE"),July:e.instant("DASHBOARDS.JULY"),August:e.instant("DASHBOARDS.AUGUST"),September:e.instant("DASHBOARDS.SEPTEMBER"),October:e.instant("DASHBOARDS.OCTOBER"),November:e.instant("DASHBOARDS.NOVEMBER"),December:e.instant("DASHBOARDS.DECEMBER"),Mon:e.instant("DASHBOARDS.MON"),Tue:e.instant("DASHBOARDS.TUE"),Wed:e.instant("DASHBOARDS.WED"),Thu:e.instant("DASHBOARDS.THU"),Fri:e.instant("DASHBOARDS.FRI"),Sat:e.instant("DASHBOARDS.SAT"),Sun:e.instant("DASHBOARDS.SUN")}}e.$inject=["$filter","$translate"],n.$inject=["$translate"],angular.module("motion").filter("limitObjectFromTo",function(){return function(e,n,t){var a,i={},s=0;for(a in e)if(t<=s&&(i[a]=e[a]),++s===t+n)break;return i}}).filter("formatdate",e).factory("IndexFactory",function(){var e=[{value:"jan"},{value:"feb"},{value:"mar"},{value:"apr"},{value:"may"},{value:"jun"},{value:"jul"},{value:"aug"},{value:"sep"},{value:"oct"},{value:"nov"},{value:"dec"}],n=[{value:"1"},{value:"2"},{value:"3"},{value:"4"},{value:"5"},{value:"6"},{value:"7"},{value:"8"},{value:"9"},{value:"10"},{value:"11"},{value:"12"}],t=[{value:"mon"},{value:"tue"},{value:"wed"},{value:"thu"},{value:"fri"},{value:"sat"},{value:"sun"}],a=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31];return{getMonthName:function(){return e},getMonthNumber:function(){return n},getDaysOfWeek:function(){return t},getDaysOfMonth:function(){return a}}}).factory("dateFilterLocalizationFactory",n).factory("Sequence",function(){return{enqueue:function(e){this.tail=this.tail?this.tail.finally(e):e()}}})}(),function(){"use strict";function e(e,n,t){var a;t.html5Mode(!0),n.otherwise("/dashboards/general"),angular.injector(["ngCookies"]).invoke(["$cookies",function(e){a=e}]);var i=a.get("motion.layoutStyle")||"verticalNavigation",s={verticalNavigation:{main:"app/core/layouts/vertical-navigation.html",toolbar:"app/toolbar/layouts/vertical-navigation/toolbar.html",navigation:"app/navigation/layouts/vertical-navigation/navigation.html",header:"app/header/layouts/vertical-navigation/header.html",footer:"app/footer/layouts/vertical-navigation/footer.html"},verticalNavigationFullwidthToolbar:{main:"app/core/layouts/vertical-navigation-fullwidth-toolbar.html",toolbar:"app/toolbar/layouts/vertical-navigation-fullwidth-toolbar/toolbar.html",navigation:"app/navigation/layouts/vertical-navigation/navigation.html"},verticalNavigationFullwidthToolbar2:{main:"app/core/layouts/vertical-navigation-fullwidth-toolbar-2.html",toolbar:"app/toolbar/layouts/vertical-navigation-fullwidth-toolbar-2/toolbar.html",navigation:"app/navigation/layouts/vertical-navigation-fullwidth-toolbar-2/navigation.html"},horizontalNavigation:{main:"app/core/layouts/horizontal-navigation.html",toolbar:"app/toolbar/layouts/horizontal-navigation/toolbar.html",navigation:"app/navigation/layouts/horizontal-navigation/navigation.html"},contentOnly:{main:"app/core/layouts/content-only.html",toolbar:"",navigation:""},contentWithToolbar:{main:"app/core/layouts/content-with-toolbar.html",toolbar:"app/toolbar/layouts/content-with-toolbar/toolbar.html",navigation:""}};e.state("app",{abstract:!0,views:{"main@":{templateUrl:s[i].main,controller:"MainController as vm"},"toolbar@app":{templateUrl:s[i].toolbar,controller:"ToolbarController as vm"},"navigation@app":{templateUrl:s[i].navigation,controller:"NavigationController as vm"},"quickPanel@app":{templateUrl:"app/quick-panel/quick-panel.html",controller:"QuickPanelController as vm"},"header@app":{templateUrl:s[i].header,controller:"HeaderController as vm"},"footer@app":{templateUrl:s[i].footer,controller:"FooterController as vm"}},resolve:{license:["apiResolver",function(e){return e.resolve("license@get")}],setting:["apiResolver","settingsManager",function(e,n){return e.resolve("setting@get",{id:1}).then(function(e){return n.set(e),e})}]}})}e.$inject=["$stateProvider","$urlRouterProvider","$locationProvider"],angular.module("motion").config(e)}(),function(){"use strict";function e(e,n){e.onStart({},n.showLoadingIndicator),e.onFinish({},n.hideLoadingIndicator)}e.$inject=["$transitions","LoadingIndicatorService"],angular.module("motion").run(e)}(),function(){"use strict";function e(a,e){var i,o={};function s(){a.$broadcast("socket:connect"),i&&i.connected||(i=io({query:e.getCurrentUser()?"id="+e.getCurrentUser().id:void 0,transports:["websocket","polling"]})).once("disconnect",n)}function n(e){i.once("connect",s),"logout"===e?i.removeAllListeners():a.$broadcast("socket:disconnect"),i&&i.connected&&i.disconnect()}function r(e,n,t){o[e]||(o[e]=[]),o[e].push({wrapper:n,fn:t})}return{connect:s,disconnect:n,getListeners:function(e){return e?o[e]:o},on:function(e,n){n=n||angular.noop,i||s();var t=function(){var e=arguments;a.$applyAsync(function(){n.apply(i,e)})};r(e,t,n),i.on(e,t)},onWithoutApply:function(e,n){n=n||angular.noop,i||s();var t=function(){n.apply(i,arguments)};r(e,t,n),i.on(e,t)},emit:function(e,n,t){t=t||angular.noop,i||s(),i.emit(e,n,function(){var e=arguments;a.$applyAsync(function(){t.apply(i,e)})})},removeAllListeners:function(e){var n;i||s(),i.removeAllListeners(e),n=e,_.isEmpty(o[n])||delete o[n]},removeListener:function(e,n){i||s();var t=function(e,n){var t=o[e];if(!_.isEmpty(t))for(var a=0;a<t.length;a++){var i=t[a];if(i.fn===n){var s=i.wrapper;return t.splice(a,1),s}}}(e,n);i.removeListener(e,t)}}}e.$inject=["$rootScope","Auth"],angular.module("motion").factory("socket",e)}(),function(){"use strict";function e(n,t,e,a,i,s,o){var r=this;r.progresslogin=!1,r.googleSsoEnabled=!1,r.login=function(){return r.progresslogin=!0,r.message="",s.login(r.form).then(function(){return n.go("app.dashboards.general")}).catch(function(e){r.message=e.data?e.data.message:e.message}).finally(function(){r.progresslogin=!1})},r.loginOauth=function(e){r.message="",t.location.href=s.loginSSO(e)},r.onInit=function(){{if(n.params.token&&n.params.userId)return s.removeCookies(),r.progresslogin=!0,e.put("motion.token",n.params.token),i.user.get({id:n.params.userId}).$promise.then(function(e){e&&(s.setCurrentUser(e),n.go("app.dashboards.general"))}).finally(function(){r.progresslogin=!1});s.isLoggedIn()&&n.go("app.dashboards.general")}r.googleSsoEnabled=o.googleSsoEnabled},r.onInit()}e.$inject=["$state","$window","$cookies","$timeout","api","Auth","setting"],angular.module("app.login").controller("LoginController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="ANALYTICS.EDIT_EXTRACTEDREPORT",g.extractedReport=angular.copy(l),g.extractedReports=r,g.newExtractedReport=!1,g.extractedReport||(g.extractedReport={},g.title="ANALYTICS.NEW_EXTRACTEDREPORT",g.newExtractedReport=!0),g.addNewExtractedReport=function(){g.errors=[],d.analyticExtractedReport.save(g.extractedReport).$promise.then(function(e){g.extractedReports.unshift(e.toJSON()),o.success({title:"ExtractedReport properly created",msg:g.extractedReport.name?g.extractedReport.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.analyticExtractedReport.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticExtractedReport.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveExtractedReport=function(){g.errors=[],d.analyticExtractedReport.update({id:g.extractedReport.id},g.extractedReport).$promise.then(function(e){var n=_.find(g.extractedReports,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"ExtractedReport properly saved!",msg:g.extractedReport.name?g.extractedReport.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.analyticExtractedReport.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticExtractedReport.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteExtractedReport=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The extractedReport will be deleted.").ariaLabel("Delete ExtractedReport").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.analyticExtractedReport.delete({id:g.extractedReport.id}).$promise.then(function(){_.remove(g.extractedReports,{id:g.extractedReport.id}),o.success({title:"ExtractedReport properly deleted!",msg:(g.extractedReport.name||"extractedReport")+" has been deleted!"}),v(g.extractedReport)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.analyticExtractedReport.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticExtractedReport.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","extractedReports","extractedReport","api","Auth","license","setting","crudPermissions"],angular.module("app.analytics").controller("CreateOrEditExtractedReportDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.extractedReports=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="extractedReports",f.listOrder="",f.listOrderAsc=null,f.selectedExtractedReports=[],f.query={fields:"createdAt,updatedAt,id,name,basename,savename,type,startDate,endDate,status,output,reportId,reportType",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditExtractedReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/extractedReports/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{extractedReport:e,extractedReports:f.extractedReports.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.downloadfile2=function(s,e){return m.analyticExtractedReport.download({id:s.id}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=s.savename;var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticExtractedReport.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("extractedReport")+"?").htmlContent("<b>"+(e.name||"extractedReport")+"</b> will be deleted.").ariaLabel("delete extractedReport").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getExtractedReports=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.analyticExtractedReport.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ExtractedReports",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditExtractedReport=function(e,n){i.show({controller:"CreateOrEditExtractedReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/extractedReports/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{extractedReport:n,extractedReports:f.extractedReports.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteExtractedReport=y,f.exportSelectedExtractedReports=function(){var e=angular.copy(f.selectedExtractedReports);return f.selectedExtractedReports=[],e},f.deleteSelectedExtractedReports=function(e){var n=i.confirm().title("Are you sure want to delete the selected extractedReports?").htmlContent("<b>"+f.selectedExtractedReports.length+" selected</b> will be deleted.").ariaLabel("delete ExtractedReports").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedExtractedReports.forEach(function(e){y(e)}),f.selectedExtractedReports=[]})},f.deselectExtractedReports=function(){f.selectedExtractedReports=[]},f.selectAllExtractedReports=function(){f.selectedExtractedReports=f.extractedReports.rows};var b=!0,A=1;function E(e){f.extractedReports=e||{count:0,rows:[]}}function y(e){m.analyticExtractedReport.delete({id:e.id}).$promise.then(function(){_.remove(f.extractedReports.rows,{id:e.id}),f.extractedReports.count-=1,f.extractedReports.rows.length||f.getExtractedReports(),p.success({title:_.startCase("ExtractedReport")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEanalyticExtractedReport"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEanalyticExtractedReport",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getExtractedReports())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","extractedReports","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.analytics").controller("ExtractedReportsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="ANALYTICS.EDIT_METRIC",g.metric=angular.copy(l),g.metrics=r,g.newMetric=!1,g.metric||(g.metric={table:"report_agent"},g.title="ANALYTICS.NEW_METRIC",g.newMetric=!0),g.addNewMetric=function(){g.errors=[],d.analyticMetric.save(g.metric).$promise.then(function(e){g.metrics.unshift(e.toJSON()),o.success({title:"Metric properly created",msg:g.metric.name?g.metric.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.analyticMetric.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticMetric.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveMetric=function(){g.errors=[],d.analyticMetric.update({id:g.metric.id},g.metric).$promise.then(function(e){var n=_.find(g.metrics,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Metric properly saved!",msg:g.metric.name?g.metric.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.analyticMetric.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticMetric.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteMetric=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The metric will be deleted.").ariaLabel("Delete Metric").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.analyticMetric.delete({id:g.metric.id}).$promise.then(function(){_.remove(g.metrics,{id:g.metric.id}),o.success({title:"Metric properly deleted!",msg:(g.metric.name||"metric")+" has been deleted!"}),v(g.metric)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.analyticMetric.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticMetric.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","metrics","metric","api","Auth","license","setting","crudPermissions"],angular.module("app.analytics").controller("CreateOrEditMetricDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.metrics=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="metrics",f.listOrder="",f.listOrderAsc=null,f.selectedMetrics=[],f.query={fields:"createdAt,updatedAt,id,name,table,metric,description",sort:"-updatedAt",limit:10,page:1},f.arraytable=_.keyBy([{option:"Agent Report",value:"'report_agent'"},{option:"Call Report",value:"'report_call'"},{option:"CDR",value:"'cdr'"},{option:"Chat Website",value:"'chat_websites'"},{option:"Chat Interaction",value:"'chat_interactions'"},{option:"Chat Messages",value:"'chat_messages'"},{option:"Chat Offline Messages",value:"'chat_offline_messages'"},{option:"Chat Queues",value:"'chat_queues'"},{option:"Chat Report Queue",value:"'report_chat_queue'"},{option:"Chat Report Transfer",value:"'report_chat_transfer'"},{option:"Companies",value:"'cm_companies'"},{option:"Call transfer report",value:"'report_call_transfer'"},{option:"Contacts",value:"'cm_contacts'"},{option:"CSquare Report",value:"'report_square'"},{option:"CSquare Details Report",value:"'report_square_details'"},{option:"Dial Report",value:"'report_dial'"},{option:"Dialer Hopper Processing",value:"'cm_hopper'"},{option:"Dialer Hopper Logs",value:"'cm_hopper_history'"},{option:"Dialer Hopper Final",value:"'cm_hopper_final'"},{option:"Email Account",value:"'mail_accounts'"},{option:"Email Interaction",value:"'mail_interactions'"},{option:"Email Messages",value:"'mail_messages'"},{option:"Email Queues",value:"'mail_queues'"},{option:"Email Report Queue",value:"'report_mail_queue'"},{option:"Email Report Transfer",value:"'report_mail_transfer'"},{option:"Fax Account",value:"'fax_accounts'"},{option:"Fax Interaction",value:"'fax_interactions'"},{option:"Fax Messages",value:"'fax_messages'"},{option:"Fax Queues",value:"'fax_queues'"},{option:"Fax Report Queue",value:"'report_fax_queue'"},{option:"Fax Report Transfer",value:"'report_fax_transfer'"},{option:"Jscripty Sessions",value:"'report_jscripty_sessions'"},{option:"Jscripty Questions",value:"'report_jscripty_questions'"},{option:"Jscripty Answers",value:"'report_jscripty_answers'"},{option:"Lists",value:"'cm_lists'"},{option:"Member Report",value:"'report_member'"},{option:"Openchannel Account",value:"'openchannel_accounts'"},{option:"Openchannel Interaction",value:"'openchannel_interactions'"},{option:"Openchannel Messages",value:"'openchannel_messages'"},{option:"Openchannel Queues",value:"'openchannel_queues'"},{option:"Openchannel Report Queue",value:"'report_openchannel_queue'"},{option:"Openchannel Report Transfer",value:"'report_openchannel_transfer'"},{option:"Queue Report",value:"'report_queue'"},{option:"SMS Account",value:"'sms_accounts'"},{option:"SMS Interaction",value:"'sms_interactions'"},{option:"SMS Messages",value:"'sms_messages'"},{option:"SMS Queues",value:"'sms_queues'"},{option:"SMS Report Queue",value:"'report_sms_queue'"},{option:"SMS Report Transfer",value:"'report_sms_transfer'"},{option:"Users",value:"'users'"},{option:"Voice Recordings",value:"'voice_recordings'"},{option:"Whatsapp Account",value:"'whatsapp_accounts'"},{option:"Whatsapp Interaction",value:"'whatsapp_interactions'"},{option:"Whatsapp Messages",value:"'whatsapp_messages'"},{option:"Whatsapp Queues",value:"'whatsapp_queues'"},{option:"Whatsapp Report Queue",value:"'report_whatsapp_queue'"},{option:"Whatsapp Report Transfer",value:"'report_whatsapp_transfer'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editdialog=function(e,n){i.show({controller:"CreateOrEditMetricDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/metrics/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{metric:e,metrics:f.metrics.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("metric")+"?").htmlContent("<b>"+(e.name||"metric")+"</b> will be deleted.").ariaLabel("delete metric").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getMetrics=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.analyticMetric.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Metrics",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditMetric=function(e,n){i.show({controller:"CreateOrEditMetricDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/metrics/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{metric:n,metrics:f.metrics.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteMetric=y,f.exportSelectedMetrics=function(){var e=angular.copy(f.selectedMetrics);return f.selectedMetrics=[],e},f.deleteSelectedMetrics=function(e){var n=i.confirm().title("Are you sure want to delete the selected metrics?").htmlContent("<b>"+f.selectedMetrics.length+" selected</b> will be deleted.").ariaLabel("delete Metrics").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedMetrics.forEach(function(e){y(e)}),f.selectedMetrics=[]})},f.deselectMetrics=function(){f.selectedMetrics=[]},f.selectAllMetrics=function(){f.selectedMetrics=f.metrics.rows};var b=!0,A=1;function E(e){f.metrics=e||{count:0,rows:[]}}function y(e){m.analyticMetric.delete({id:e.id}).$promise.then(function(){_.remove(f.metrics.rows,{id:e.id}),f.metrics.count-=1,f.metrics.rows.length||f.getMetrics(),p.success({title:_.startCase("Metric")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEanalyticMetric"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEanalyticMetric",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getMetrics())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","metrics","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.analytics").controller("MetricsController",e)}(),function(){"use strict";function e(e,n,a,t,i,s,o){var r=this;function l(){n.hide()}r.errors=[],r.report=angular.copy(t),r.report.name+="-copy",r.treeCustomData=o,r.treeCustomConfig={core:{multiple:!1,animation:!0,error:function(e){console.error("treeCtrl: error from js tree - "+angular.toJson(e))},check_callback:!0,worker:!0},version:1,plugins:["wholerow"]},r.treeCustomEvents={select_node:function(e,n){r.currentNode=n.node}},r.copyReport=function(){var t;r.errors=[],i.analyticCustomReport.save({name:r.report.name,description:r.report.description,table:r.report.table,conditions:r.report.conditions,joins:r.report.joins,parent:r.currentNode.id}).$promise.then(function(e){t=e,a.success({title:"Report properly copied!",msg:r.report.name?r.report.name+" has been copied!":""});var n={fields:"field,alias,function,format,groupBy,orderBy,custom,MetricId",nolimit:!0};return n["analyticCustomReport"===s?"CustomReportId":"DefaultReportId"]=r.report.id,i.analyticFieldReport.get(n).$promise}).then(function(e){var e=_.map(e.rows,function(e){return _.extend({},e,{CustomReportId:t.id})});return i.analyticFieldReport.bulkCreate(e).$promise}).then(function(){a.success({title:"Fields copied!",msg:"Fields has been copied!"}),l()}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:COPYREPORT",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},r.closeDialog=l}e.$inject=["$location","$mdDialog","toasty","report","api","apiName","treeCustomData"],angular.module("app.analytics").controller("CopyReportDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;function m(){n.hide()}c.errors=[],c.joinTables=[],c.title="ANALYTICS.EDIT_REPORT",c.crudPermissions=d,c.report=angular.copy(i),c.reports=a,c.newReport=!1,c.tables=l.getMap(),c.joinTypes=[{key:"join",value:"Join"},{key:"left_join",value:"Left Join"},{key:"right_join",value:"Right Join"},{key:"cross_join",value:"Cross Join"}],c.report||(c.report={name:"",table:"report_agent",description:"",parent:r.id},c.title="ANALYTICS.NEW_REPORT",c.newReport=!0),c.addNewReport=function(){c.errors=[],c.report.joins=_.map(c.joinTables||[],function(e){return{parentKey:e.parentKey,foreignTable:e.name,foreignKey:e.foreignKey,type:e.type.toLowerCase()}}),c.report.joins=JSON.stringify(c.report.joins),s[o].save(c.report).$promise.then(function(e){c.reports.unshift(e),t.success({title:"Report properly created",msg:c.report.name?c.report.name+" has been created!":""}),m()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.analyticReport.save"}];for(var n=0;n<e.data.errors.length;n++)t.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticReport.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.saveReport=function(){c.errors=[],s[o].update({id:c.report.id},c.report).$promise.then(function(e){var n=_.find(c.reports,{id:e.id});n&&_.merge(n,e),t.success({title:"Report properly saved!",msg:c.report.name?c.report.name+" has been saved!":""}),m()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.analyticReport.update"}];for(var n=0;n<e.data.errors.length;n++)t.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticReport.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.deleteReport=function(){c.errors=[];var e=n.confirm().title("Are you sure?").content("The report will be deleted.").ariaLabel("Delete Report").ok("Delete").cancel("Cancel").targetEvent(event);n.show(e).then(function(){s[o].delete({id:c.report.id}).$promise.then(function(){_.remove(c.reports,{id:c.report.id}),t.success({title:"Report properly deleted!",msg:c.report.name?c.report.name+" has been deleted!":""}),m()}).catch(function(e){c.errors=e.data.errors||[{message:e.toString(),type:"api.analyticReport.delete"}]})},function(){})},c.closeDialog=m,c.selectedTableChange=function(e){e&&(delete c.selectedItem,c.joinTables.push(e))},c.removeJoin=function(e){c.joinTables.splice(e,1)},c.getFields=function(n,t,e){var a=_.find(c.tables,{name:e});a&&a.api&&s[a.api].describe().$promise.then(function(e){n[t]=_.difference(_.keys(e),["$promise","$resolved"])}).catch(function(e){console.error(e)})}}e.$inject=["$location","$mdDialog","toasty","reports","report","api","apiName","currentNode","describeTable","crudPermissions"],angular.module("app.analytics").controller("CreateOrEditReportDialogController",e)}(),function(){"use strict";function e(i,s,o,e){var r=this;r.report={},r.conditions=e.getConditions,r.init=function(e,n){r.report=e,r.report.condition=angular.fromJson(e.conditions)||{group:{operator:"AND",rules:[]}},r.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1};for(var t=0;t<r.report.condition.group.rules.length;t++)if(r.report.condition.group.rules[t].field){var a=r.report.condition.group.rules[t].field.split(".");1===a.length&&(r.report.condition.group.rules[t].field=r.report.table+"."+r.report.condition.group.rules[t].field)}s.getColumns(r.report.table).then(function(e){r.columns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt"])}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DESCRIBE",msg:e.data?JSON.stringify(e.data):e.toString()})})},r.addCondition=function(e){e.unshift({condition:"=",field:"",value:""})},r.addGroup=function(e){e.push({group:{operator:"AND",rules:[]}})},r.deleteConfirm=function(e,n,t){var a=i.confirm().title("Are you sure want to delete the item?").htmlContent("The item will be deleted.").ariaLabel("delete item").targetEvent(t).ok("OK").cancel("CANCEL");i.show(a).then(function(){e.splice(n,1)},function(){console.log("CANCEL")})},r.isValueByCondition=function(e){return!_.includes(["IS NULL","IS NOT NULL","IS EMPTY","IS NOT EMPTY"],e)}}e.$inject=["$mdDialog","describeTable","toasty","sqlUtil"],angular.module("app.analytics").controller("ReportConditionsController",e)}(),function(){"use strict";function e(n){var a={report_call_transfer:"voiceTransferReport",cm_companies:"cmCompany",cm_contacts:"cmContact",cm_hopper:"cmHopper",cm_hopper_final:"cmHopperFinal",cm_hopper_history:"cmHopperHistory",cm_lists:"cmList",chat_websites:"chatWebsite",chat_queues:"chatQueue",chat_interactions:"chatInteraction",chat_messages:"chatMessage",chat_offline_messages:"chatOfflineMessage",report_chat_queue:"chatQueueReport",report_chat_transfer:"chatTransferReport",mail_accounts:"mailAccount",mail_queues:"mailQueue",mail_interactions:"mailInteraction",mail_messages:"mailMessage",report_mail_queue:"mailQueueReport",report_mail_transfer:"mailTransferReport",openchannel_accounts:"openchannelAccount",openchannel_queues:"openchannelQueue",openchannel_interactions:"openchannelInteraction",openchannel_messages:"openchannelMessage",report_openchannel_queue:"openchannelQueueReport",report_openchannel_transfer:"openchannelTransferReport",sms_accounts:"smsAccount",sms_queues:"smsQueue",sms_interactions:"smsInteraction",sms_messages:"smsMessage",report_sms_queue:"smsQueueReport",report_sms_transfer:"smsTransferReport",fax_accounts:"faxAccount",fax_queues:"faxQueue",fax_interactions:"faxInteraction",fax_messages:"faxMessage",report_fax_transfer:"faxTransferReport",report_fax_queue:"faxQueueReport",report_call:"voiceCallReport",report_agent:"voiceAgentReport",report_square:"squareReport",report_member:"memberReport",report_queue:"voiceQueueReport",report_square_details:"squareReportDetail",report_dial:"voiceDialReport",report_jscripty_sessions:"jscriptySessionReport",report_jscripty_questions:"jscriptyQuestionReport",report_jscripty_answers:"jscriptyAnswerReport",users:"user",voice_recordings:"voiceRecording",cdr:"cdr",whatsapp_accounts:"whatsappAccount",whatsapp_queues:"whatsappQueue",whatsapp_interactions:"whatsappInteraction",whatsapp_messages:"whatsappMessage",report_whatsapp_queue:"whatsappQueueReport",report_whatsapp_transfer:"whatsappTransferReport"};return{getMap:function(){var t=[];return _.forIn(a,function(e,n){t.push({name:n,api:e})}),t},getColumns:function(e){return n[a[e]].describe().$promise}}}e.$inject=["api"],angular.module("app.analytics").factory("describeTable",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;(u.errors=[],u.title="Edit Report Field",u.report=i,u.reportField=angular.copy(o),u.reportFields=s,u.metrics=r,u.columns=l,u.sqlUtil=d,u.newReportField=!1,u.crudPermissions=m,u.reportField)?(u.reportField.type=u.reportField.custom?"custom":u.reportField.MetricId?"metric":"column",u.reportField.field&&!u.reportField.custom&&_.isNil(u.reportField.MetricId)&&1===u.reportField.field.split(".").length&&(u.reportField.field=u.report.table+"."+u.reportField.field)):(u.reportField={type:"column",function:null,format:null,groupBy:!1,orderBy:null},u.title="New Report Field",u.newReportField=!0);function p(){t.hide()}u.addNewReportField=function(){u.errors=[],u.reportField.custom="custom"===u.reportField.type,u.reportField.MetricId="metric"===u.reportField.type?u.reportField.MetricId:null,u.reportField.CustomReportId=u.report.id,c.analyticFieldReport.save(u.reportField).$promise.then(function(e){u.reportFields.push(e),a.success({title:"Report field properly created",msg:u.reportField.field?u.reportField.field+" has been created!":u.reportField.type+" has been created!"}),p()}).catch(function(e){u.errors=e.data.errors||[{message:e.toString(),type:"api.analyticFieldReport.save"}]})},u.saveReportField=function(){u.errors=[],u.reportField.custom="custom"===u.reportField.type,u.reportField.MetricId="metric"===u.reportField.type?u.reportField.MetricId:null,c.analyticFieldReport.update({id:u.reportField.id},u.reportField).$promise.then(function(e){var n=_.find(u.reportFields,{id:e.id});n&&_.merge(n,e),a.success({title:"Report Field properly saved!",msg:u.reportField.field?u.reportField.field+" has been saved!":""}),p()}).catch(function(e){u.errors=e.data.errors||[{message:e.toString(),type:"api.analyticFieldReport.update"}]})},u.deleteReportField=function(e){u.errors=[];var n=t.confirm().title("Are you sure?").content("The field will be deleted.").ariaLabel("Delete Report").ok("Delete").cancel("Cancel").targetEvent(e);t.show(n).then(function(){c.analyticFieldReport.delete({id:u.reportField.id}).$promise.then(function(){_.remove(u.reportFields,{id:u.reportField.id}),a.success({title:"Report Field properly deleted!",msg:u.reportField.field?u.reportField.field+" has been deleted!":""}),p()}).catch(function(e){u.errors=e.data.errors||[{message:e.toString(),type:"api.analyticReportField.delete"}]})},function(){})},u.closeDialog=p}e.$inject=["$scope","$location","$mdDialog","toasty","report","reportFields","reportField","metrics","columns","sqlUtil","api","crudPermissions"],angular.module("app.analytics").controller("CreateOrEditReportFieldDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;c.report={},c.reportFields={count:0,rows:[]},c.functions=_.keyBy(l.getFunctions,"value"),c.formats=_.keyBy(l.getFormats,"value"),c.groupBy=_.keyBy(l.getGroupBy,"value"),c.orderBy=_.keyBy(l.getOrderBy,"value"),c.selectedReportFields=[],c.query={fields:"createdAt,updatedAt,id,field,alias,function,format,groupBy,orderBy,custom,MetricId",nolimit:!0},c.sortableTable={animation:100,onSort:function(e){o.analyticFieldReport.addFields({id:c.report.id},e.models).$promise.then(function(e){c.reportFields.rows=e}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ADDFIELDS"})})}},c.init=function(e,n){c.report=e,c.query.CustomReportId=c.report.id,c.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},c.sortableTable.disabled=!c.crudPermissions.canEdit,r.getColumns(c.report.table).then(function(e){return c.columns=_.difference(_.keys(e),["$promise","$resolved"]),o.analyticMetric.get({fields:"id,name,metric,table",nolimit:!0}).$promise}).then(function(e){c.metrics=e.rows}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DESCRIBE",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.getReportFields()},c.deleteConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>"+e.field+"</b> will be deleted.").ariaLabel("delete field").targetEvent(n).ok("OK").cancel("CANCEL");a.show(t).then(function(){p(e)},function(){console.log("CANCEL")})},c.success=u,c.getReportFields=function(){c.promise=o.analyticFieldReport.get(c.query,u).$promise},c.createOrEditReportField=function(e,n){a.show({controller:"CreateOrEditReportFieldDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/edit/field/dialog.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,locals:{report:c.report,reportField:n,reportFields:c.reportFields.rows,metrics:c.metrics,columns:c.columns,setting:null,crudPermissions:c.crudPermissions}})},c.deleteReportField=p,c.deleteSelectedReportFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+c.selectedReportFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){c.selectedReportFields.forEach(function(e){p(e)}),c.selectedReportFields=[]})},c.getMetricName=function(e){var n=_.find(c.metrics,{id:e});return n?n.name:d.instant("ANALYTICS.NO_METRIC_FOUND")},c.getMetricValue=function(e){var n=_.find(c.metrics,{id:e});return n?n.metric:d.instant("ANALYTICS.NO_METRIC_FOUND")};var m=!0;function u(e){c.reportFields=e||{count:0,rows:[]}}function p(e){o.analyticFieldReport.delete({id:e.id}).$promise.then(function(){c.selectedReportFields=[],_.remove(c.reportFields.rows,{id:e.id}),c.reportFields.count-=1,c.reportFields.rows.length||c.getReportFields(),s.success({title:"Field deleted!",msg:e.field?e.field+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}n.$watch("vm_rf.query.filter",function(e,n){m?t(function(){m=!1}):c.getReportFields()})}e.$inject=["$cookies","$scope","$timeout","$mdDialog","$document","toasty","api","describeTable","sqlUtil","$translate"],angular.module("app.analytics").controller("ReportFieldsController",e)}(),function(){"use strict";angular.module("app.analytics").factory("sqlUtil",function(){return{getFunctions:[{value:"SUM",option:function(e){return"SUM ("+e+")"}},{value:"COUNT",option:function(e){return"COUNT ("+e+")"}},{value:"COUNT DISTINCT",option:function(e){return"COUNT (DISTINCT "+e+")"}},{value:"MAX",option:function(e){return"MAX ("+e+")"}},{value:"MIN",option:function(e){return"MIN ("+e+")"}},{value:"AVG",option:function(e){return"AVG ("+e+")"}},{value:"GROUP_CONCAT",option:function(e){return"GROUP_CONCAT ("+e+")"}},{value:"GROUP_CONCAT ASC",option:function(e){return"GROUP_CONCAT ("+e+" ORDER BY "+e+" ASC)"}},{value:"GROUP_CONCAT DESC",option:function(e){return"GROUP_CONCAT ("+e+" ORDER BY "+e+" DESC)"}}],getFormats:[{value:"SEC_TO_TIME",option:function(e){return"SEC_TO_TIME ("+e+")"}},{value:"DATE",option:function(e){return"DATE ("+e+")"}},{value:"HOUR",option:function(e){return"HOUR ("+e+")"}},{value:"ROUND",option:function(e){return"ROUND ("+e+")"}},{value:"UNIX_TIMESTAMP",option:function(e){return"UNIX_TIMESTAMP ("+e+")"}}],getGroupBy:[{value:!1,option:function(){return"No"}},{value:!0,option:function(e){return"GROUP BY "+e}}],getOrderBy:[{value:"ASC",option:function(e){return"ORDER BY "+e+" ASC"}},{value:"DESC",option:function(e){return"ORDER BY "+e+" DESC"}}],getConditions:["=","!=","<","<=",">",">=","LIKE","NOT LIKE","IS NULL","IS NOT NULL","IS EMPTY","IS NOT EMPTY"]}})}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this;function r(e){return _.isArray(e)}o.report=a||{},o.userProfileSection=s&&1==s.count?s.rows[0]:null,o.crudPermissions=i.parseCrudPermissions(o.userProfileSection?o.userProfileSection.crudPermissions:null),o.selectedTab=e.params.tab||0,o.gotoReports=function(){e.go("app.analytics.reports",{},{reload:"app.analytics.reports"})},o.saveReport=function(){o.report.conditions=angular.toJson(o.report.condition),t.analyticCustomReport.update({id:o.report.id},_.omit(o.report,"joins")).$promise.then(function(){n.success({title:"Report updated!",msg:o.report.name?o.report.name+" has been updated!":""})}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETreport",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.previewReport=function(){o.columns=[],o.rows=[],o.error=!1,t.analyticFieldReport.get({fields:"field,alias",nolimit:!0,CustomReportId:o.report.id}).$promise.then(function(e){return o.columns=e?e.rows:[],t.analyticCustomReport.preview({id:o.report.id}).$promise}).then(function(e){o.rows=e}).catch(function(e){console.log(e),o.error={title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:analyticFieldReport",msg:e.data?e.data.message:e.toString(),sql:e.data&&e.data.parent?e.data.parent.sql:"NO QUERY"},n.error(o.error)})},o.queryReport=function(){return o.queryResult="Loading...",t.analyticCustomReport.query({id:o.report.id}).$promise.then(function(e){o.queryResult=e.sql}).catch(function(e){o.queryResult="",console.log(e),o.error={title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:analyticFieldReport",msg:e.data?e.data.message:e.toString(),sql:e.data&&e.data.parent?e.data.parent.sql:"NO QUERY"},n.error(o.error)})},o.mapArray=function(e,n){if(r(e))return _.map(e,n).join(",");return""},o.isArray=r,o.valueReplacer=function(e,n){moment(n,"YYYY-MM-DDTHH:mm:ssZ",!0).isValid()&&(n=moment(n,"").format("YYYY-MM-DD HH:mm:ss"));return n}}e.$inject=["$state","toasty","api","report","Auth","userProfileSection"],angular.module("app.analytics").controller("ReportController",e)}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this;o.errors=[],o.report=angular.copy(a),o.valueReplacer=function(e,n){moment(n,"YYYY-MM-DDTHH:mm:ssZ",!0).isValid()&&(n=moment(n,"").format("YYYY-MM-DD HH:mm:ss"));return n},o.closeDialog=function(){n.hide()},function(){o.columns=[],o.rows=[],o.error=!1;var e={fields:"field,alias",nolimit:!0};e["analyticCustomReport"===s?"CustomReportId":"DefaultReportId"]=o.report.id,o.promise=i.analyticFieldReport.get(e).$promise.then(function(e){return o.columns=e?e.rows:[],i[s].preview({id:o.report.id}).$promise}).then(function(e){o.rows=e}).catch(function(e){console.log(e),o.error={title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:analyticFieldReport",msg:e.data?e.data.message:e.toString(),sql:e.data&&e.data.parent?e.data.parent.sql:"NO QUERY"},t.error(o.error)})}()}e.$inject=["$location","$mdDialog","toasty","report","api","apiName"],angular.module("app.analytics").controller("PreviewReportDialogController",e)}(),function(){"use strict";function e(e,t,a,i,s,o,n,r,l,d,c,m,u){var p=this;p.currentUser=u.getCurrentUser(),p.reports={count:0,rows:[]},p.userProfile=r,p.userProfileSection=l&&1==l.count?l.rows[0]:null,p.crudPermissions=u.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.selectedReports=[],p.query={fields:"createdAt,updatedAt,id,name,description,table,parent,conditions,joins",limit:10,page:1,sort:"-updatedAt"},p.apiName=null,p.currentPath="",p.customTree=!0,p.editstate=function(e,n){s.go("app.analytics.reports.edit",{id:e.id,crudPermissions:p.crudPermissions})},p.copydialog=function(e,n){i.show({controller:"CopyReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/copy/dialog.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{report:e,apiName:p.apiName,treeCustomData:p.treeCustomInstance.jstree(!0).get_json("#")}}).finally(function(){})},p.previewdialog=function(e,n){i.show({controller:"PreviewReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/preview/dialog.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{report:e,apiName:p.apiName}})},p.rundialog=function(e,n){i.show({controller:"RunReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/run/dialog.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{report:e,apiName:p.apiName,currentPath:p.currentPath}})},p.downloadfile=function(a,e){var i;d.analyticMetric.get({fields:"id,name,metric,table",nolimit:!0}).$promise.then(function(e){i=_.keyBy(e.rows,"id");var n={fields:"field,alias,function,format,groupBy,orderBy,custom,MetricId",nolimit:!0};return n["analyticCustomReport"===p.apiName?"CustomReportId":"DefaultReportId"]=a.id,d.analyticFieldReport.get(n).$promise}).then(function(e){for(var n=0;n<e.rows.length;n+=1)e.rows[n].MetricId&&(e.rows[n].field=i[e.rows[n].MetricId].metric,e.rows[n].custom=!0),delete e.rows[n].MetricId;var t=o.document.createElement("a");t.href="data:text/json;charset=utf-8,"+o.encodeURIComponent(angular.toJson({name:a.name,description:a.description,table:a.table,conditions:a.conditions,joins:a.joins,fields:e.rows})),t.download=a.name+".json",t.target="_self",t.click(),m.success({title:"Report downloaded!",msg:a.name?a.name+" has been downloaded!":""})}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DOWNLOADJSON",msg:e.data?JSON.stringify(e.data):e.toString()})})},p.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the report?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete report").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){b(e)},function(){console.log("CANCEL")})},p.success=h,p.getReports=f,p.createOrEditReport=function(e,n){i.show({controller:"CreateOrEditReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{report:n,reports:p.reports.rows,apiName:p.apiName,currentNode:p.currentNode,setting:null,crudPermissions:p.crudPermissions}})},p.importReport=function(e,n,t){if("application/json"===e.file.type){var a=new FileReader;a.onload=function(e){console.log(e.target.result);try{var t=atob(e.target.result.split(",")[1]);t=angular.fromJson(t),d.analyticCustomReport.save({name:t.name,description:t.description,table:t.table,conditions:t.conditions,joins:t.joins,parent:p.currentNode.id}).$promise.then(function(n){p.reports.rows.unshift(n),m.success({title:"Report saved!",msg:n.name?n.name+" has been saved!":""});var e=_.map(t.fields,function(e){return _.extend({},e,{CustomReportId:n.id})});return d.analyticFieldReport.bulkCreate(e).$promise}).then(function(e){m.success({title:"Fields saved!",msg:"Fields has been saved!"})}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETanalyticReport",msg:e.data?JSON.stringify(e.data):e.toString()})})}catch(e){console.error(e),m.error({title:"Decode File Error",msg:e.toString()})}},a.readAsDataURL(e.file)}else m.error({title:"Format Error",msg:"Please use only json files"})},p.deleteReport=b,p.exportSelectedReports=function(){var e=angular.copy(p.selectedReports);return p.selectedReports=[],e},p.deleteSelectedReports=function(e){var n=i.confirm().title("Are you sure want to delete the selected reports?").htmlContent("<b>"+p.selectedReports.length+" selected</b> will be deleted.").ariaLabel("delete Reports").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){p.selectedReports.forEach(function(e){b(e)}),p.selectedReports=[]})},p.deselectReports=function(){p.selectedReports=[]},p.selectAllReports=function(){p.selectedReports=p.reports.rows},p.treeDefaultData=c.rows[0]?angular.fromJson(c.rows[0].tree):[],p.treeCustomData=c.rows[1]?angular.fromJson(c.rows[1].tree):[],p.treeDefaultConfig=S(!1),p.treeCustomConfig=S(!0),p.treeDefaultEvents=T(!1),p.treeCustomEvents=T(!0);var g=!0,v=1;function h(e){p.reports=e||{count:0,rows:[]}}function f(){if(p.query.offset=(p.query.page-1)*p.query.limit,p.apiName)if("admin"===p.currentUser.role||p.userProfileSection.autoAssociation)p.promise=d[p.apiName].get(p.query,h).$promise;else{var a=[];p.promise=d[p.apiName].get(p.query).$promise.then(function(e){return 0<(a=e&&e.rows?e.rows:[]).length?d.userProfileResource.get({sectionId:p.userProfileSection.id,type:"analyticDefaultReport"===p.apiName?"DefaultReports":"CustomReports"}).$promise.then(function(e){var n=e&&e.rows?e.rows:[];if(0<n.length){var t=[];return a.forEach(function(e){_.find(n,["resourceId",e.id])&&t.push(e)}),h({count:t.length,rows:t})}return h(null)}):h(null)})}}function b(e){p.apiName&&d[p.apiName].delete({id:e.id}).$promise.then(function(){_.remove(p.reports.rows,{id:e.id}),p.reports.count-=1,p.reports.rows.length||p.getReports(),m.success({title:"Report deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.analyticreport.delete"}];for(var n=0;n<e.data.errors.length;n++)m.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticreport.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function A(e,n){p.treeDefaultInstance.jstree(!0).deselect_all(),p.treeDefaultInstance.jstree(!0).close_all(),p.currentNode=n.node,p.currentNode.custom=!0,p.currentPath=p.treeCustomInstance.jstree(!0).get_path(p.currentNode).join("/ "),p.apiName="analyticCustomReport",p.query.parent=n.node.id,f()}function E(e,n){p.treeCustomInstance.jstree(!0).deselect_all(),p.treeCustomInstance.jstree(!0).close_all(),p.currentNode=n.node,p.currentNode.custom=!1,p.currentPath=p.treeDefaultInstance.jstree(!0).get_path(p.currentNode).join("/ "),p.apiName="analyticDefaultReport",p.query.parent=n.node.id,f()}function y(e,n){var t=angular.toJson(p.treeCustomInstance.jstree(!0).get_json("#"));d.analyticTreeReport.update({id:2,tree:t}).$promise.then(function(){c.rows[1]&&(c.rows[1].tree=t),m.success({title:"Node Updated",msg:n.node.text?n.node.text+" has been updated!":"Node has been updated!"})}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEanalyticTreeReport",msg:e.data?JSON.stringify(e.data):e.toString()})})}function S(e){return{core:{multiple:!1,animation:!0,error:function(e){console.error("treeCtrl: error from js tree - "+angular.toJson(e))},check_callback:!0,worker:!0},version:1,plugins:e?["contextmenu","dnd","search","state","wholerow"]:["search","state","wholerow"],contextmenu:{items:function(t){var e={};return p.crudPermissions.canEdit&&_.assign(e,{create:{label:n.instant("ANALYTICS.CREATE"),action:function(){t=p.treeCustomInstance.jstree(!0).create_node(t),p.treeCustomInstance.jstree(!0).edit(t)}},rename:{_disabled:"#"===t.parent,label:n.instant("ANALYTICS.RENAME"),action:function(){p.treeCustomInstance.jstree(!0).edit(t)}}}),p.crudPermissions.canDelete&&_.assign(e,{remove:{_disabled:"#"===t.parent,label:n.instant("ANALYTICS.REMOVE"),action:function(){var e=i.confirm().title("Are you sure want to delete the node?").htmlContent("<b>"+(t.text?t.text:"Node")+"</b> and its subnode will be deleted.").ariaLabel("delete node").ok("OK").cancel("CANCEL");i.show(e).then(function(){var e,n=p.treeCustomInstance.jstree(!0).get_parent(t);n=p.treeCustomInstance.jstree(!0).get_node(n),p.treeCustomInstance.jstree(!0).delete_node(t),e=[t.id].concat(t.children_d||[]),d.analyticCustomReport.get({parent:e.join(","),fields:"id,name"}).$promise.then(function(e){e&&e.rows&&e.rows.forEach(function(e){b(e)})}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEreportsByParents",msg:e.data?JSON.stringify(e.data):e.toString()})}),p.treeCustomInstance.jstree(!0).select_node(n)})}}}),e}}}}function T(e){return e?{create_node:y,rename_node:y,move_node:y,delete_node:y,select_node:A}:{select_node:E}}e.$watch("vm.query.filter",function(e,n){g?t(function(){g=!1}):(n||(v=p.query.page),e!==n&&(p.query.page=1),e||(p.query.page=v),p.getReports())}),e.$watch("vm.search",function(e,n){p.treeDefaultInstance&&p.treeDefaultInstance.jstree(!0).search(e),p.treeCustomInstance&&p.treeCustomInstance.jstree(!0).search(e)})}e.$inject=["$scope","$timeout","$document","$mdDialog","$state","$window","$translate","userProfile","userProfileSection","api","treeReports","toasty","Auth"],angular.module("app.analytics").controller("ReportsController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r){var l=this;function d(){l.export={id:l.report.id,name:l.report.name,startDate:new Date(moment().startOf("day")),endDate:new Date(moment().endOf("day")),output:"xlsx",fullPath:r?r+"/"+l.report.name:l.report.name}}function c(){t.hide()}l.errors=[],l.report=angular.copy(n),l.export={},l.runReport=function(n){l.errors=[],l.exportDate=_.assign({},l.export,{startDate:moment(l.export.startDate).format("YYYY-MM-DD HH:mm:ss"),endDate:moment(l.export.endDate).format("YYYY-MM-DD HH:mm:ss")}),i[s].run(l.exportDate).$promise.then(function(e){"web"===l.export.output?t.show({controller:"WebReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/run/web/dialog.html",parent:angular.element(o.body),targetEvent:n,skipHide:!0,locals:{apiName:s,exportDate:l.exportDate,results:e},resolve:{columns:["apiResolver",function(e){var n={fields:"field,alias",nolimit:!0};return n["analyticCustomReport"===s?"CustomReportId":"DefaultReportId"]=l.report.id,e.resolve("analyticFieldReport@get",n)}]}}):(a.success({title:"Report properly run!",msg:l.report.name?l.report.name+" has been run!":""}),c())}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DESCRIBE",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},l.closeDialog=c,(l.refreshDate=d)()}e.$inject=["$location","$mdDialog","toasty","report","api","apiName","$document","currentPath"],angular.module("app.analytics").controller("RunReportDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o){var r=this;function l(e){r.results=e||{count:0,rows:[]}}r.errors=[],r.columns=a?a.rows:[],r.results=i||{rows:[],count:0},r.query={limit:10,page:1},r.closeDialog=function(){e.hide()},r.getResults=function(){o.offset=(r.query.page-1)*r.query.limit,o.limit=r.query.limit,r.promise=t[s].run(o,l).$promise},r.valueReplacer=function(e,n){moment(n,"YYYY-MM-DDTHH:mm:ssZ",!0).isValid()&&(n=moment(n,"").format("YYYY-MM-DD HH:mm:ss"));return n}}e.$inject=["$mdDialog","toasty","api","columns","results","apiName","exportDate"],angular.module("app.analytics").controller("WebReportDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CALLYSQUARE.EDIT_ODBC",g.odbc=angular.copy(l),g.odbcs=r,g.newOdbc=!1,g.odbc||(g.odbc={},g.title="CALLYSQUARE.NEW_ODBC",g.newOdbc=!0),g.addNewOdbc=function(){g.errors=[],d.squareOdbc.save(g.odbc).$promise.then(function(e){g.odbcs.unshift(e.toJSON()),o.success({title:"Odbc properly created",msg:g.odbc.name?g.odbc.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.squareOdbc.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareOdbc.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveOdbc=function(){g.errors=[],d.squareOdbc.update({id:g.odbc.id},g.odbc).$promise.then(function(e){var n=_.find(g.odbcs,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Odbc properly saved!",msg:g.odbc.name?g.odbc.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.squareOdbc.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareOdbc.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteOdbc=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The odbc will be deleted.").ariaLabel("Delete Odbc").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.squareOdbc.delete({id:g.odbc.id}).$promise.then(function(){_.remove(g.odbcs,{id:g.odbc.id}),o.success({title:"Odbc properly deleted!",msg:(g.odbc.name||"odbc")+" has been deleted!"}),v(g.odbc)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.squareOdbc.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareOdbc.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","odbcs","odbc","api","Auth","license","setting","crudPermissions"],angular.module("app.callysquare").controller("CreateOrEditOdbcDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.odbcs=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="odbcs",f.listOrder="",f.listOrderAsc=null,f.selectedODBC=[],f.query={fields:"createdAt,updatedAt,id,name,dsn,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditOdbcDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/odbcs/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{odbc:e,odbcs:f.odbcs.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.testtestOdbc=function(e,n){return m.squareOdbc.test({id:e.id}).$promise.then(function(){p.success({title:"Square ODBC properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"Square ODBC properly tested",msg:e.data?JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("odbc")+"?").htmlContent("<b>"+(e.name||"odbc")+"</b> will be deleted.").ariaLabel("delete odbc").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getODBC=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.squareOdbc.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ODBC",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditOdbc=function(e,n){i.show({controller:"CreateOrEditOdbcDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/odbcs/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{odbc:n,odbcs:f.odbcs.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteOdbc=y,f.exportSelectedODBC=function(){var e=angular.copy(f.selectedODBC);return f.selectedODBC=[],e},f.deleteSelectedODBC=function(e){var n=i.confirm().title("Are you sure want to delete the selected odbcs?").htmlContent("<b>"+f.selectedODBC.length+" selected</b> will be deleted.").ariaLabel("delete Odbcs").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedODBC.forEach(function(e){y(e)}),f.selectedODBC=[]})},f.deselectODBC=function(){f.selectedODBC=[]},f.selectAllODBC=function(){f.selectedODBC=f.odbcs.rows};var b=!0,A=1;function E(e){f.odbcs=e||{count:0,rows:[]}}function y(e){m.squareOdbc.delete({id:e.id}).$promise.then(function(){_.remove(f.odbcs.rows,{id:e.id}),f.odbcs.count-=1,f.odbcs.rows.length||f.getODBC(),p.success({title:_.startCase("Odbc")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEsquareOdbc"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEsquareOdbc",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getODBC())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","odbcs","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.callysquare").controller("OdbcsController",e)}(),function(){"use strict";function e(n,t,a,i,s,e,o,r,l,d){var c=this;function m(e){n.hide(e)}c.errors=[],c.title="CALLYSQUARE.EDIT_PROJECT",c.crudPermissions=d,c.project=angular.copy(o),c.newWindow=!0,c.projects=e,c.newProject=!1,c.openFromEditor=l,c.project||(c.project={name:"",description:""},c.title="CALLYSQUARE.NEW_PROJECT",c.newProject=!0),c.addNewProject=function(){c.errors=[],r.squareProject.save(c.project).$promise.then(function(e){return r.user.addSquareProjects({id:i.getCurrentUser().id,ids:[e.id]}).$promise,e}).then(function(e){c.projects.unshift(e),s.success({title:"Project properly created",msg:c.project.name?c.project.name+" has been created!":""}),m(e),c.openFromEditor&&(c.newWindow?t.open("/callysquare/projects/"+e.id,"_blank"):a.go("app.callysquare.projects.edit",{id:e.id}))}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.save"}];for(var n=0;n<e.data.errors.length;n++)s.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareProject.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.saveProject=function(){c.errors=[],r.squareProject.update({id:c.project.id},c.project).$promise.then(function(e){var n=_.find(c.projects,{id:e.id});n&&_.merge(n,e),s.success({title:"Project properly saved!",msg:c.project.name?c.project.name+" has been saved!":""}),m(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.update"}];for(var n=0;n<e.data.errors.length;n++)s.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareProject.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.deleteProject=function(){c.errors=[];var e=n.confirm().title("Are you sure?").content("The project will be deleted.").ariaLabel("Delete Project").ok("Delete").cancel("Cancel").targetEvent(event);n.show(e).then(function(){r.squareProject.delete({id:c.project.id}).$promise.then(function(){return r.squareProject.getUsers({id:c.project.id}).$promise}).then(function(e){for(var n=[],t=e.rows,a=0;a<t.length;a++)n.push(r.user.removeSquareProjects({id:i.getCurrentUser().id,ids:[c.project.id]}).$promise);return $q.all(n)}).then(function(){_.remove(c.projects,{id:c.project.id}),s.success({title:"Project properly deleted!",msg:c.project.name?c.project.name+" has been deleted!":""}),m(c.project)}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.delete"}]})},function(){})},c.closeDialog=m}e.$inject=["$mdDialog","$window","$state","Auth","toasty","projects","project","api","openFromEditor","crudPermissions"],angular.module("app.callysquare").controller("CreateOrEditSquareProjectDialogController",e)}(),function(){"use strict";function e(n,t,a,e,i,s,o,r,l,d,c,m,u,p,g,v,h,f,b,A,E,y,S,T,I,C,O,w,R,x,N,D){var P=this,L={playback:["file_id"],answer:["timeout"],menu:["file_id","digit","response","retry"],getdigits:["file_id","variable_id","mindigit","maxdigit","retry"],getsecretdigits:["file_id","variable_id","mindigit","maxdigit","hiddendigitsnum","retry"],vswitch:["variable_id"],database:["odbc_id","query"],ext_dial:["trunk_name","phone","timeout"],set:["variable_id"],math:["variable_id"],gotoc:["context","extension","priority"],system:["command"],agi:["command"],gotoif:["condition"],saydigits:["digits"],saynumber:["number"],sayphonetic:["text"],record:["file","timeout"],goal:["goalname"],dial:["sip_id","timeout"],queue:["queue_id","timeout"],callback:["list_id","name","phone","delay"],gotoiftime:["interval_id"],voicemail:["mailbox"],subproject:["project_id"],sendSMS:["sms_account_id","to","sms_text"],sendMail:["account_id","to"],sendFax:["account_id","to","attachment_path"],google_cloud_tts:["apiKey","google_cloud_tts_text_type","text"],tts:["text"],ispeechtts:["text","key","speed"],ispeechasr:["key","timeout"],custom_app:["application"],googleasr:["key","timeout"],awspolly:["aws_access_key_id","aws_secret_access_key","text","aws_text_type"],lumenvoxtts:["text"],sestektts:["text"],lumenvoxasr:["grammar"],sestekasr:["grammar"],tildeasr:["appid","appsecret","uri"],login:["findBy"],pause:["findBy","pause_id"],unpause:["findBy"],logout:["findBy"],dialogflow:["key","text","dialogflow_language"],awslex:["aws_access_key_id","aws_secret_access_key","aws_lex_region","aws_bot_name","text"],sesteknda:["text","ndauth_url","username","password","ndassistant_url"],restapi:["url","method"],mrcpsynth:["text"],mrcprecog:["grammar"],dialogflowV2:["dialogflowV2_project_id","client_email","private_key","dialogflowV2_language","text"]},k={queue:["file_id"],database:["variable_id"],pause:["pause_id"]},M={sendMail:["to","cc","bcc"],voicemail:["mailbox"]};function U(e,n,t,a){return _.map(e,function(e){return{value:e[n],option:e[t],group:a?e[a]:void 0,canSelect:void 0===e.canSelect||e.canSelect}})}function F(){var e=Number(_.find(P.attributes,{name:"sip_id"}).value);if(!_.some(d,{id:e})&&0<e)return t.user.get({id:e,fields:"id,fullname,role"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,d.push(n),P.values.sip_id=U(d,"id","fullname","role")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_USER",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.sip_id=U(d,"id","fullname","role")}function $(){var e=Number(_.find(P.attributes,{name:"list_id"}).value);if(!_.some(E,{id:e})&&0<e)return t.cmList.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,E.push(n),P.values.list_id=U(E,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_LIST",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.list_id=U(E,"id","name")}function q(){var e=Number(_.find(P.attributes,{name:"trunk_id"}).value);if(!_.some(c,{id:e})&&0<e)return t.trunk.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,c.push(n),P.values.trunk_id=U(c,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_TRUNK",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.trunk_id=U(c,"id","name")}function G(){var e=_.find(P.attributes,{name:"trunk_name"}).value;if(!_.some(c,{name:e})&&e)return t.trunk.get({name:e,fields:"id,name"}).$promise.then(function(e){if(0<e.count&&0<e.rows.length){var n=e.rows[0];n.canSelect=!1,c.push(n),P.values.trunk_name=U(c,"name","name")}}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_TRUNK",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.trunk_name=U(c,"name","name")}function H(){var e=Number(_.find(P.attributes,{name:"queue_id"}).value);if(!_.some(m,{id:e})&&0<e)return t.voiceQueue.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,m.push(n),P.values.queue_id=U(m,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_QUEUE",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.queue_id=U(m,"id","name")}function V(){var e=Number(_.find(P.attributes,{name:"file_id"}).value);if(!_.some(u,{id:e})&&0<e)return t.sound.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,u.push(n),P.values.file_id=U(u,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_SOUND",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.file_id=U(u,"id","name")}function B(){var e=Number(_.find(P.attributes,{name:"variable_id"}).value);if(!_.some(p,{id:e})&&0<e)return t.variable.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,p.push(n),P.values.variable_id=U(p,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_VARIABLE",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.variable_id=U(p,"id","name")}function Q(){var e=Number(_.find(P.attributes,{name:"odbc_id"}).value);if(!_.some(g,{id:e})&&0<e)return t.squareOdbc.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,g.push(n),P.values.odbc_id=U(g,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_ODBC",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.odbc_id=U(g,"id","name")}function W(){var e=Number(_.find(P.attributes,{name:"project_id"}).value);if(!_.some(v,{id:e})&&0<e)return t.squareProject.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,v.push(n),P.values.project_id=U(v,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_PROJECT",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.project_id=U(v,"id","name")}function j(){var e=Number(_.find(P.attributes,{name:"context"}).value);if(!_.some(h,{id:e})&&0<e)return t.voiceContext.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,h.push(n),P.values.context=U(h,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_CONTEXT",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.context=U(h,"id","name")}function Y(){var e=Number(_.find(P.attributes,{name:"interval_id"}).value);if(!_.some(f,{id:e})&&0<e)return t.interval.get({id:e,fields:"id,name,IntervalId"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,f.push(n),P.values.interval_id=U(f,"id","name","IntervalId")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_INTERVAL",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.interval_id=U(f,"id","name","IntervalId")}function z(){var e=Number(_.find(P.attributes,{name:"account_id"}).value);if(!_.some(b,{id:e})&&0<e)return t.mailAccount.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,b.push(n),P.values.account_id=U(b,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_MAIL_ACCOUNT",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.account_id=U(b,"id","name")}function J(){var e=Number(_.find(P.attributes,{name:"sms_account_id"}).value);if(!_.some(C,{id:e})&&0<e)return t.smsAccount.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,C.push(n),P.values.sms_account_id=U(C,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_SMS_ACCOUNT",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.sms_account_id=U(C,"id","name")}function K(){var e=Number(_.find(P.attributes,{name:"template_id"}).value);if(!_.some(A,{id:e})&&0<e)return t.template.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,A.push(n),P.values.template_id=U(A,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_TEMPLATE",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.template_id=U(A,"id","name")}function X(){var e=Number(_.find(P.attributes,{name:"pause_id"}).value);if(!_.some(O,{id:e})&&0<e)return t.pause.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,O.push(n),P.values.pause_id=U(O,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_PAUSE",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.pause_id=U(O,"id","name")}P.cellName=y.tagName,P.attributes=_.map(y.attributes,function(e){return{name:e.name,value:e.value,defaultValue:k[P.cellName]&&_.includes(k[P.cellName],e.name),required:L[P.cellName]&&_.includes(L[P.cellName],e.name),help:M[P.cellName]&&_.includes(M[P.cellName],e.name)}}),P.values={authMethod:[{value:"noauth",option:"NO AUTH"},{value:"hmac",option:"HMAC"}],answer:[{value:"yes",option:"Yes"},{value:"no",option:"No"}],ndagenerate_audio:[{value:1,option:"Yes"},{value:0,option:"No"}],ndaactivity_type:[{value:"message",option:"Message"},{value:"conversationUpdate",option:"Conversation Update"},{value:"contactRelationUpdate",option:"Contact Relation Update"},{value:"endOfConversation",option:"End of Conversation"}],hiddendigitspos:[{value:"first",option:"First"},{value:"last",option:"Last"}],recordingFormat:[{value:"wav",option:"Wav"},{value:"gsm",option:"Gsm"}],intkey:[{value:"#",option:"#"},{value:"*",option:"*"}],beep:[{value:"BEEP",option:"Yes"},{value:"NOBEEP",option:"No"}],model:e,ispeech_asr_language:i,ispeech_tts_language:o,languageCode:r,ssmlGender:[{value:"FEMALE",option:"Female"},{value:"MALE",option:"Male"}],google_tts_language:l,google_asr_language:s,google_cloud_tts_text_type:[{value:"text",option:"Text"},{value:"ssml",option:"SSML"}],aws_polly_region:I,aws_polly_voice:T,aws_text_type:[{value:"text",option:"Text"},{value:"ssml",option:"SSML"}],callback_priority:[{option:"Highest",value:4},{option:"High",value:3},{option:"Medium",value:2},{option:"Low",value:1},{option:"Lowest",value:0}],findBy:[{value:"internal",option:"Internal"},{value:"phone",option:"Phone"},{value:"mobile",option:"Mobile"}],dialogflow_language:w,dialogflowV2_language:R,aws_lex_region:x,method:[{value:"GET",option:"GET"},{value:"POST",option:"POST"},{value:"PUT",option:"PUT"},{value:"DELETE",option:"DELETE"}]},P.crudPermissions=D,P.onInit=function(){N.hasRole("admin")?(e={sip_id:U(d,"id","fullname","role"),trunk_name:U(c,"name","name"),trunk_id:U(c,"id","name"),queue_id:U(m,"id","name"),file_id:U(u,"id","name"),variable_id:U(p,"id","name"),odbc_id:U(g,"id","name"),project_id:U(v,"id","name"),context:U(h,"id","name"),interval_id:(t=f,a="id",i="name",s="IntervalId",o=_.filter(t,function(e){return null===e[s]}),r=[],_.forEach(o,function(n){r.push({value:n[a],option:n[i]});var e=_.filter(t,function(e){return e[s]===n.id});_.forEach(e,function(e){r.push({value:e[a],option:" - "+e[i]})})}),r),account_id:U(b,"id","name"),template_id:U(A,"id","name"),list_id:U(E,"id","name"),sms_account_id:U(C,"id","name"),pause_id:U(O,"id","name")},n=_.merge(P.values,e),P.values=n):function(){for(var e=["sip_id","trunk_name","trunk_id","queue_id","file_id","variable_id","odbc_id","project_id","context","interval_id","account_id","template_id","list_id","sms_account_id","pause_id"],n=0;n<P.attributes.length;n++)if(_.includes(e,P.attributes[n].name))switch(P.attributes[n].name){case"sip_id":F();break;case"trunk_name":G();break;case"trunk_id":q();break;case"queue_id":H();break;case"file_id":V();break;case"variable_id":B();break;case"odbc_id":Q();break;case"project_id":W();break;case"context":j();break;case"interval_id":Y();break;case"account_id":z();break;case"template_id":K();break;case"list_id":$();break;case"sms_account_id":J();break;case"pause_id":X()}}();var e,n,t,a,i,s,o,r},P.closeDialog=function(e){e&&S(P.attributes),n.hide()},P.getMap=U}e.$inject=["$mdDialog","api","toasty","ispeechAsrModel","ispeechAsrLanguage","googleAsrLanguage","ispeechTtsLanguage","googleCloudTtslanguageCode","googleTtsLanguage","users","trunks","queues","sounds","variables","databases","projects","contexts","intervals","mailAccounts","templates","lists","cell","saveCallback","awsPollyVoice","awsPollyRegion","smsAccounts","pauses","dialogFlowLanguage","dialogFlowV2Language","awsLexRegion","Auth","crudPermissions"],angular.module("app.callysquare").controller("MxGraphDialogController",e)}(),function(){"use strict";angular.module("app.callysquare").directive("stringToNumber",function(){return{require:"ngModel",link:function(e,n,t,a){a.$parsers.push(function(e){return""+e}),a.$formatters.push(function(e){return parseFloat(e)})}}})}(),function(){"use strict";angular.module("app.callysquare").factory("ispeechAsrModel",function(){return[{value:"0",option:"Default"},{value:"date",option:"Date"},{value:"usmoney",option:"US Money"},{value:"numbersto9",option:"Numbers to 9"},{value:"numbersto99",option:"Numbers to 99"},{value:"numbersto999",option:"Numbers to 999"},{value:"time",option:"Time"},{value:"phonenumber",option:"Phone number"},{value:"streets",option:"Streets"},{value:"citystate",option:"US City/States"}]}).factory("ispeechAsrLanguage",function(){return[{value:"en-US",option:"English (US)"},{value:"en-CA",option:"English (Canada)"},{value:"en-GB",option:"English (UK)"},{value:"en-AU",option:"English (Australia)"},{value:"es-ES",option:"Spanish (Spain)"},{value:"es-MX",option:"Spanish (Mexico)"},{value:"it-IT",option:"Italian (Italy) / Finnish (Finland)"},{value:"fr-FR",option:"German (Germany)"},{value:"fr-CA",option:"French (Canada)"},{value:"pl-PL",option:"Polish (Poland)"},{value:"pt-PT",option:"Portuguese (Portugal)"},{value:"ca-ES",option:"Catalan (Catalan)"},{value:"zh-TW",option:"Chinese (Taiwan)"},{value:"da-DK",option:"Danish (Denmark)"},{value:"ja-JP",option:"Japanese (Japan)"},{value:"ko-KR",option:"Korean (Korea)"},{value:"nl-NL",option:"Dutch (Netherlands)"},{value:"nb-NO",option:"Norwegian (Norway)"},{value:"pt-BR",option:"Portuguese (Brazil)"},{value:"ru-RU",option:"Russian (Russia)"},{value:"sv-SE",option:"Swedish (Sweden)"},{value:"zh-CN",option:"Chinese (China)"},{value:"zh-HK",option:"Chinese (Hong Kong)"}]}).factory("ispeechTtsLanguage",function(){return[{value:"usenglishfemale",option:"US English Female"},{value:"usenglishmale",option:"US English Male"},{value:"ukenglishfemale",option:"UK English Female"},{value:"ukenglishmale",option:"UK English Male"},{value:"auenglishfemale",option:"Australian English"},{value:"usspanishfemale",option:"US Spanish Female"},{value:"usspanishmale",option:"US Spanish Male"},{value:"chchinesefemale",option:"Chinese Female"},{value:"chchinesemale",option:"Chinese Male"},{value:"hkchinesefemale",option:"Hong Kong Cantonese Female"},{value:"twchinesefemale",option:"Taiwan Chinese Female"},{value:"jpjapanesefemale",option:"Japanese Female"},{value:"jpjapanesemale",option:"Japanese Male"},{value:"krkoreanfemale",option:"Korean Female"},{value:"krkoreanmale",option:"Korean Male"},{value:"caenglishfemale",option:"Canadian English Female"},{value:"huhungarianfemale",option:"Hungarian Female"},{value:"brportuguesefemale",option:"Brazilian Portuguese Female"},{value:"eurportuguesefemale",option:"European Portuguese Female"},{value:"eurportuguesemale",option:"European Portuguese Male"},{value:"eurspanishfemale",option:"European Spanish Female"},{value:"eurspanishmale",option:"European Spanish Male"},{value:"eurcatalanfemale",option:"European Catalan Female"},{value:"eurczechfemale",option:"European Czech Female"},{value:"eurdanishfemale",option:"European Danish Female"},{value:"eurfinnishfemale",option:"European Finnish Female"},{value:"eurfrenchfemale",option:"European French Female"},{value:"eurfrenchmale",option:"European French Male"},{value:"eurnorwegianfemale",option:"European Norwegian Female"},{value:"eurdutchfemale",option:"European Dutch Female"},{value:"eurpolishfemale",option:"European Polish Female"},{value:"euritalianfemale",option:"European Italian Female"},{value:"euritalianmale",option:"European Italian Male"},{value:"eurturkishfemale",option:"European Turkish Female"},{value:"eurturkishmale",option:"European Turkish Male"},{value:"eurgermanfemale",option:"European German Female"},{value:"eurgermanmale",option:"European German Male"},{value:"rurussianfemale",option:"Russian Female"},{value:"rurussianmale",option:"Russian Male"},{value:"swswedishfemale",option:"Swedish Female"},{value:"cafrenchfemale",option:"Canadian French Female"},{value:"cafrenchmale",option:"Canadian French Male"}]}).factory("googleCloudTtslanguageCode",function(){return[{value:"af-ZA",option:"Afrikaans (South Africa)"},{value:"ar-XA",option:"Arabic"},{value:"bn-IN",option:"Bengali (India)"},{value:"bg-BG",option:"Bulgarian (Bulgaria)"},{value:"ca-ES",option:"Catalan (Spain)"},{value:"yue-HK",option:"Chinese (Hong Kong)"},{value:"cs-CZ",option:"Czech (Czech Republic)"},{value:"da-DK",option:"Danish (Denmark)"},{value:"nl-BE",option:"Dutch (Belgium)"},{value:"nl-NL",option:"Dutch (Netherlands)"},{value:"en-AU",option:"English (Australian)"},{value:"en-IN",option:"English (India)"},{value:"en-GB",option:"English (UK)"},{value:"en-US",option:"English (US)"},{value:"fi-FI",option:"Finnish (Finland)"},{value:"fil-PH",option:"Filipino (Philippines)"},{value:"fr-CA",option:"French (Canada)"},{value:"fr-FR",option:"French (France)"},{value:"de-DE",option:"German (Germany)"},{value:"el-GR",option:"Greek (Greece)"},{value:"gu-IN",option:"Gujarati (India)"},{value:"hi-IN",option:"Hindi (India)"},{value:"hu-HU",option:"Hungarian (Hungary)"},{value:"is-IS",option:"Icelandic (Iceland)"},{value:"id-ID",option:"Indonesian (Indonesia)"},{value:"it-IT",option:"Italian (Italy)"},{value:"ja-JP",option:"Japanese (Japan)"},{value:"kn-IN",option:"Kannada (India)"},{value:"ko-KR",option:"Korean (South Korea)"},{value:"lv-LV",option:"Latvian (Latvia)"},{value:"ms-MY",option:"Malay (Malaysia)"},{value:"ml-IN",option:"Malayalam (India)"},{value:"cmn-CN",option:"Mandarin Chinese"},{value:"nb-NO",option:"Norwegian (Norway)"},{value:"pl-PL",option:"Polish (Poland)"},{value:"pt-BR",option:"Portuguese (Brazil)"},{value:"pt-PT",option:"Portuguese (Portugal)"},{value:"ro-RO",option:"Romanian (Romania)"},{value:"ru-RU",option:"Russian (Russia)"},{value:"sr-RS",option:"Serbian (Cyrillic)"},{value:"sk-SK",option:"Slovak (Slovakia)"},{value:"es-ES",option:"Spanish (Spain)"},{value:"es-US",option:"Spanish (US)"},{value:"sv-SE",option:"Swedish (Sweden)"},{value:"ta-IN",option:"Tamil (India)"},{value:"te-IN",option:"Telugu (India)\t"},{value:"th-TH",option:"Thai (Thailand)"},{value:"tr-TR",option:"Turkish (Turkey)"},{value:"uk-UA",option:"Ukrainian (Ukraine)"},{value:"vi-VN",option:"Vietnamese (Vietnam)"}]}).factory("googleTtsLanguage",function(){return[{value:"af",option:"Afrikaans"},{value:"sq",option:"Albanian"},{value:"am",option:"Amharic"},{value:"ar",option:"Arabic"},{value:"hy",option:"Armenian"},{value:"az",option:"Azerbaijani"},{value:"eu",option:"Basque"},{value:"be",option:"Belarusian"},{value:"bn",option:"Bengali"},{value:"bh",option:"Bihari"},{value:"bs",option:"Bosnian"},{value:"br",option:"Breton"},{value:"bg",option:"Bulgarian"},{value:"km",option:"Cambodian"},{value:"ca",option:"Catalan"},{value:"zh-CN",option:"Chinese (Simplified)"},{value:"zh-TW",option:"Chinese (Traditional)"},{value:"co",option:"Corsican"},{value:"hr",option:"Croatian"},{value:"cs",option:"Czech"},{value:"da",option:"Danish"},{value:"nl",option:"Dutch"},{value:"en",option:"English"},{value:"eo",option:"Esperanto"},{value:"et",option:"Estonian"},{value:"fo",option:"Faroese"},{value:"tl",option:"Filipino"},{value:"fi",option:"Finnish"},{value:"fr",option:"French"},{value:"fy",option:"Frisian"},{value:"gl",option:"Galician"},{value:"ka",option:"Georgian"},{value:"de",option:"German"},{value:"el",option:"Greek"},{value:"gn",option:"Guarani"},{value:"gu",option:"Gujarati"},{value:"xx-hacker",option:"Hacker"},{value:"ha",option:"Hausa"},{value:"iw",option:"Hebrew"},{value:"hi",option:"Hindi"},{value:"hu",option:"Hungarian"},{value:"is",option:"Icelandic"},{value:"id",option:"Indonesian"},{value:"ia",option:"Interlingua"},{value:"ga",option:"Irish"},{value:"it",option:"Italian"},{value:"jw",option:"Javanese"},{value:"ja",option:"Japanese"},{value:"kn",option:"Kannada"},{value:"kk",option:"Kazakh"},{value:"rw",option:"Kinyarwanda"},{value:"rn",option:"Kirundi"},{value:"xx-klingon",option:"Klingon"},{value:"ku",option:"Kurdish"},{value:"ko",option:"Korean"},{value:"ky",option:"Kyrgyz"},{value:"lo",option:"Laothian"},{value:"la",option:"Latin"},{value:"lv",option:"Latvian"},{value:"ln",option:"Lingala"},{value:"lt",option:"Lithuanian"},{value:"mk",option:"Macedonian"},{value:"mg",option:"Malagasy"},{value:"ml",option:"Malayalam"},{value:"mt",option:"Maltese"},{value:"mi",option:"Maori"},{value:"mr",option:"Marathi"},{value:"mo",option:"Moldavian"},{value:"mn",option:"Mongolian"},{value:"sr-ME",option:"Montenegrin"},{value:"ne",option:"Nepali"},{value:"no",option:"Norwegian"},{value:"nn",option:"Norwegian (Nynorsk)"},{value:"oc",option:"Occitan"},{value:"or",option:"Oriya"},{value:"om",option:"Oromo"},{value:"ps",option:"Pashto"},{value:"fa",option:"Persian"},{value:"xx-pirate",option:"Pirate"},{value:"pl",option:"Polish"},{value:"pt-BR",option:"Portuguese (Brazil)"},{value:"pt-PT",option:"Portuguese (Portugal)"},{value:"pa",option:"Punjabi"},{value:"qu",option:"Quechua"},{value:"ro",option:"Romanian"},{value:"rm",option:"Romansh"},{value:"ru",option:"Russian"},{value:"gd",option:"Scots Gaelic"},{value:"sr",option:"Serbian"},{value:"sh",option:"Serbo-Croatian"},{value:"st",option:"Sesotho"},{value:"sn",option:"Shona"},{value:"sd",option:"Sindhi"},{value:"si",option:"Sinhalese"},{value:"sk",option:"Slovak"},{value:"sl",option:"Slovenian"},{value:"so",option:"Somali"},{value:"es",option:"Spanish"},{value:"su",option:"Sundanese"},{value:"sw",option:"Swahili"},{value:"sv",option:"Swedish"},{value:"tg",option:"Tajik"},{value:"ta",option:"Tamil"},{value:"tt",option:"Tatar"},{value:"te",option:"Telugu"},{value:"th",option:"Thai"},{value:"ti",option:"Tigrinya"},{value:"to",option:"Tonga"},{value:"tr",option:"Turkish"},{value:"tk",option:"Turkmen"},{value:"tw",option:"Twi"},{value:"ug",option:"Uighur"},{value:"uk",option:"Ukrainian"},{value:"ur",option:"Urdu"},{value:"uz",option:"Uzbek"},{value:"vi",option:"Vietnamese"},{value:"cy",option:"Welsh"},{value:"xh",option:"Xhosa"},{value:"yi",option:"Yiddish"},{value:"yo",option:"Yoruba"},{value:"zu",option:"Zulu"}]}).factory("googleAsrLanguage",function(){return[{option:"Afrikaans (South Africa)",value:"af-ZA"},{option:"Albanian (Albania)",value:"sq-AL"},{option:"Amharic (Ethiopia)",value:"am-ET"},{option:"Arabic (Algeria)",value:"ar-DZ"},{option:"Arabic (Bahrain)",value:"ar-BH"},{option:"Arabic (Egypt)",value:"ar-EG"},{option:"Arabic (Iraq)",value:"ar-IQ"},{option:"Arabic (Israel)",value:"ar-IL"},{option:"Arabic (Jordan)",value:"ar-JO"},{option:"Arabic (Kuwait)",value:"ar-KW"},{option:"Arabic (Lebanon)",value:"ar-LB"},{option:"Arabic (Morocco)",value:"ar-MA"},{option:"Arabic (Oman)",value:"ar-OM"},{option:"Arabic (Qatar)",value:"ar-QA"},{option:"Arabic (Saudi Arabia)",value:"ar-SA"},{option:"Arabic (State of Palestine)",value:"ar-PS"},{option:"Arabic (Tunisia)",value:"ar-TN"},{option:"Arabic (United Arab Emirates)",value:"ar-AE"},{option:"Arabic (Yemen)",value:"ar-YE"},{option:"Armenian (Armenia)",value:"hy-AM"},{option:"Azerbaijani (Azerbaijan)",value:"az-AZ"},{option:"Basque (Spain)",value:"eu-ES"},{option:"Bengali (Bangladesh)",value:"bn-BD"},{option:"Bengali (India)",value:"bn-IN"},{option:"Bosnian (Bosnia and Herzegovina)",value:"bs-BA"},{option:"Bulgarian (Bulgaria)",value:"bg-BG"},{option:"Burmese (Myanmar)",value:"my-MM"},{option:"Catalan (Spain)",value:"ca-ES"},{option:"Chinese, Cantonese (Traditional Hong Kong)",value:"yue-Hant-HK"},{option:"Chinese, Mandarin (Simplified, China)",value:"cmn-Hans-CN"},{option:"Croatian (Croatia)",value:"hr-HR"},{option:"Czech (Czech Republic)",value:"cs-CZ"},{option:"Danish (Denmark)",value:"da-DK"},{option:"Dutch (Belgium)",value:"nl-BE"},{option:"Dutch (Netherlands)",value:"nl-NL"},{option:"English (Australia)",value:"en-AU"},{option:"English (Canada)",value:"en-CA"},{option:"English (Ghana)",value:"en-GH"},{option:"English (Hong Kong)",value:"en-HK"},{option:"English (India)",value:"en-IN"},{option:"English (Ireland)",value:"en-IE"},{option:"English (Kenya)",value:"en-KE"},{option:"English (New Zealand)",value:"en-NZ"},{option:"English (Nigeria)",value:"en-NG"},{option:"English (Pakistan)",value:"en-PK"},{option:"English (Philippines)",value:"en-PH"},{option:"English (Singapore)",value:"en-SG"},{option:"English (South Africa)",value:"en-ZA"},{option:"English (Tanzania)",value:"en-TZ"},{option:"English (United Kingdom)",value:"en-GB"},{option:"English (United States)",value:"en-US"},{option:"Estonian (Estonia)",value:"et-EE"},{option:"Filipino (Philippines)",value:"fil-PH"},{option:"Finnish (Finland)",value:"fi-FI"},{option:"French (Belgium)",value:"fr-BE"},{option:"French (Canada)",value:"fr-CA"},{option:"French (France)",value:"fr-FR"},{option:"French (Switzerland)",value:"fr-CH"},{option:"Galician (Spain)",value:"gl-ES"},{option:"Georgian (Georgia)",value:"ka-GE"},{option:"German (Austria)",value:"de-AT"},{option:"German (Germany)",value:"de-DE"},{option:"German (Switzerland)",value:"de-CH"},{option:"Greek (Greece)",value:"el-GR"},{option:"Gujarati (India)",value:"gu-IN"},{option:"Hebrew (Israel)",value:"iw-IL"},{option:"Hindi (India)",value:"hi-IN"},{option:"Hungarian (Hungary)",value:"hu-HU"},{option:"Icelandic (Iceland)",value:"is-IS"},{option:"Indonesian (Indonesia)",value:"id-ID"},{option:"Italian (Italy)",value:"it-IT"},{option:"Italian (Switzerland)",value:"it-CH"},{option:"Japanese (Japan)",value:"ja-JP"},{option:"Javanese (Indonesia)",value:"jv-ID"},{option:"Kannada (India)",value:"kn-IN"},{option:"Kazakh (Kazakhstan)",value:"kk-KZ"},{option:"Khmer (Cambodia)",value:"km-KH"},{option:"Korean (South Korea)",value:"ko-KR"},{option:"Lao (Laos)",value:"lo-LA"},{option:"Latvian (Latvia)",value:"lv-LV"},{option:"Lithuanian (Lithuania)",value:"lt-LT"},{option:"Macedonian (North Macedonia)",value:"mk-MK"},{option:"Malay (Malaysia)",value:"ms-MY"},{option:"Malayalam (India)",value:"ml-IN"},{option:"Marathi (India)",value:"mr-IN"},{option:"Mongolian (Mongolia)",value:"mn-MN"},{option:"Nepali (Nepal)",value:"ne-NP"},{option:"Norwegian Bokmål (Norway)",value:"no-NO"},{option:"Persian (Iran)",value:"fa-IR"},{option:"Polish (Poland)",value:"pl-PL"},{option:"Portuguese (Brazil)",value:"pt-BR"},{option:"Portuguese (Portugal)",value:"pt-PT"},{option:"Punjabi (Gurmukhi India)",value:"pa-Guru-IN"},{option:"Romanian (Romania)",value:"ro-RO"},{option:"Russian (Russia)",value:"ru-RU"},{option:"Serbian (Serbia)",value:"sr-RS"},{option:"Sinhala (Sri Lanka)",value:"si-LK"},{option:"Slovak (Slovakia)",value:"sk-SK"},{option:"Slovenian (Slovenia)",value:"sl-SI"},{option:"Spanish (Argentina)",value:"es-AR"},{option:"Spanish (Bolivia)",value:"es-BO"},{option:"Spanish (Chile)",value:"es-CL"},{option:"Spanish (Colombia)",value:"es-CO"},{option:"Spanish (Costa Rica)",value:"es-CR"},{option:"Spanish (Dominican Republic)",value:"es-DO"},{option:"Spanish (Ecuador)",value:"es-EC"},{option:"Spanish (El Salvador)",value:"es-SV"},{option:"Spanish (Guatemala)",value:"es-GT"},{option:"Spanish (Honduras)",value:"es-HN"},{option:"Spanish (Mexico)",value:"es-MX"},{option:"Spanish (Nicaragua)",value:"es-NI"},{option:"Spanish (Panama)",value:"es-PA"},{option:"Spanish (Paraguay)",value:"es-PY"},{option:"Spanish (Peru)",value:"es-PE"},{option:"Spanish (Puerto Rico)",value:"es-PR"},{option:"Spanish (Spain)",value:"es-ES"},{option:"Spanish (United States)",value:"es-US"},{option:"Spanish (Uruguay)",value:"es-UY"},{option:"Spanish (Venezuela)",value:"es-VE"},{option:"Sundanese (Indonesia)",value:"su-ID"},{option:"Swahili (Kenya)",value:"sw-KE"},{option:"Swahili (Tanzania)",value:"sw-TZ"},{option:"Swedish (Sweden)",value:"sv-SE"},{option:"Tamil (India)",value:"ta-IN"},{option:"Tamil (Malaysia)",value:"ta-MY"},{option:"Tamil (Singapore)",value:"ta-SG"},{option:"Tamil (Sri Lanka)",value:"ta-LK"},{option:"Telugu (India)",value:"te-IN"},{option:"Thai (Thailand)",value:"th-TH"},{option:"Turkish (Turkey)",value:"tr-TR"},{option:"Ukrainian (Ukraine)",value:"uk-UA"},{option:"Urdu (India)",value:"ur-IN"},{option:"Urdu (Pakistan)",value:"ur-PK"},{option:"Uzbek (Uzbekistan)",value:"uz-UZ"},{option:"Vietnamese (Vietnam)",value:"vi-VN"},{option:"Zulu (South Africa)",value:"zu-ZA"}]}).factory("awsPollyVoice",function(){return[{value:"Amy",option:"Amy (English, British, Female)"},{value:"Astrid",option:"Astrid (Swedish, Female)"},{value:"Brian",option:"Brian (English, British, Male)"},{value:"Carla",option:"Carla (Italian, Female)"},{value:"Carmen",option:"Carmen (Romanian, Female)"},{value:"Celine",option:"Celine (French, Female)"},{value:"Chantal",option:"Chantal (French, Canadian, Female)"},{value:"Conchita",option:"Conchita (Spanish, Castilian, Female)"},{value:"Cristiano",option:"Cristiano (Portuguese, Male)"},{value:"Dora",option:"Dora (Icelandic, Female)"},{value:"Emma",option:"Emma (English, British, Female)"},{value:"Enrique",option:"Enrique (Spanish, Castilian, Male)"},{value:"Ewa",option:"Ewa (Polish, Female)"},{value:"Filiz",option:"Filiz (Turkish, Female)"},{value:"Geraint",option:"Geraint (English, Welsh, Male)"},{value:"Giorgio",option:"Giorgio (Italian, Male)"},{value:"Gwineth",option:"Gwineth (Welsh, Female)"},{value:"Hans",option:"Hans (German, Male)"},{value:"Ines",option:"Ines (Portuguese, Female)"},{value:"Ivy",option:"Ivy (English, US, Female)"},{value:"Jacek",option:"Jacek (Polish, Male)"},{value:"Jan",option:"Jan (Polish, Male)"},{value:"Joanna",option:"Joanna (English, US, Female)"},{value:"Joey",option:"Joey (English, US, Male)"},{value:"Justin",option:"Justin (English, US, Male)"},{value:"Karl",option:"Karl (Icelandic, Male)"},{value:"Kendra",option:"Kendra (English, US, Female)"},{value:"Kimberly",option:"Kimberly (English, US, Female)"},{value:"Liv",option:"Liv (Norwegian, Female)"},{value:"Lotte",option:"Lotte (Dutch, Female)"},{value:"Mads",option:"Mads (Danish, Male)"},{value:"Maja",option:"Maja (Polish, Female)"},{value:"Marlene",option:"Marlene (German, Female)"},{value:"Mathieu",option:"Mathieu (French, Male)"},{value:"Maxim",option:"Maxim (Russian, Male)"},{value:"Miguel",option:"Miguel (Spanish, US, Male)"},{value:"Mizuki",option:"Mizuki (Japanese, Female)"},{value:"Naja",option:"Naja (Danish, Female)"},{value:"Nicole",option:"Nicole (English, Austrialian, Female)"},{value:"Penelope",option:"Penelope (Spanish, US, Female)"},{value:"Raveena",option:"Raveena (English, Indian, Female)"},{value:"Ricardo",option:"Ricardo (Portuguese, Brazilian, Male)"},{value:"Ruben",option:"Ruben (Dutch, Male)"},{value:"Russell",option:"Russell (English, Austrialian, Male)"},{value:"Salli",option:"Salli (English, US, Female)"},{value:"Tatyana",option:"Tatyana (Russian, Female)"},{value:"Vitoria",option:"Vitoria (Portuguese, Brazilian, Female)"}]}).factory("awsPollyRegion",function(){return[{value:"us-east-1",option:"US East (N. Virginia)"},{value:"us-east-2",option:"US East (Ohio)"},{value:"us-west-1",option:"US West (N. California)"},{value:"us-west-2",option:"US West (Oregon)"},{value:"ca-central-1",option:"Canada (Central)"},{value:"eu-west-1",option:"EU (Ireland)"},{value:"eu-central-1",option:"EU (Frankfurt)"},{value:"eu-west-2",option:"EU (London)"},{value:"eu-west-3",option:"EU (Paris)"},{value:"ap-southeast-1",option:"Asia Pacific (Singapore)"},{value:"ap-southeast-2",option:"Asia Pacific (Sydney)"},{value:"ap-northeast-2",option:"Asia Pacific (Seoul)"},{value:"ap-northeast-1",option:"Asia Pacific (Tokyo)"},{value:"ap-south-1",option:"Asia Pacific (Mumbai)"},{value:"sa-east-1",option:"South America (São Paulo)"}]}).factory("awsLexRegion",function(){return[{value:"us-east-1",option:"US East (N. Virginia)"},{value:"us-west-2",option:"US West (Oregon)"},{value:"eu-west-1",option:"EU (Ireland)"},{value:"ap-southeast-2",option:"Asia Pacific (Sydney)"}]}).factory("dialogFlowLanguage",function(){return[{value:"da",option:"Danish"},{value:"en",option:"English"},{value:"de",option:"German"},{value:"it",option:"Italian"},{value:"es",option:"Spanish"},{value:"fr",option:"French"},{value:"id",option:"Indonesian"},{value:"ja",option:"Japanese"},{value:"ko",option:"Korean (South Korea)"},{value:"nl",option:"Dutch"},{value:"no",option:"Norwegian"},{value:"pt",option:"Portuguese (European)"},{value:"pt-br",option:"Portuguese (Nrazilian)"},{value:"ru",option:"Russian"},{value:"sv",option:"Swedish"},{value:"th",option:"Thai"},{value:"uk",option:"Ukrainian"},{value:"zh-CN",option:"Chinese (Simplified)"},{value:"zh-HK",option:"Chinese (Hong Kong)"},{value:"zh-TW",option:"Chinese (Traditional)"}]}).factory("dialogFlowV2Language",function(){return[{value:"zh-HK",option:"Chinese (Cantonese)"},{value:"zh-CN",option:"Chinese (Simplified)"},{value:"zh-TW",option:"Chinese (Traditional)"},{value:"da",option:"Danish"},{value:"nl",option:"Dutch"},{value:"en",option:"English"},{value:"en-AU",option:"English (Australia)"},{value:"en-CA",option:"English (Canada)"},{value:"en-GB",option:"English (Great Britain)"},{value:"en-IN",option:"English (India)"},{value:"en-US",option:"English (US)"},{value:"fr",option:"French"},{value:"fr-CA",option:"French (Canada)"},{value:"fr-FR",option:"France (France)"},{value:"de",option:"German"},{value:"hi",option:"Hindi"},{value:"id",option:"Indonesian"},{value:"it",option:"Italian"},{value:"ja",option:"Japanese"},{value:"ko",option:"Korean"},{value:"no",option:"Norwegian"},{value:"pl",option:"Polish"},{value:"pt-BR",option:"Portuguese (Brazil)"},{value:"pt-PT",option:"Portuguese (Portugal)"},{value:"ru",option:"Russian"},{value:"es",option:"Spanish"},{value:"es-419",option:"Spanish (Latin America)"},{value:"es-ES",option:"Spanish (Spain)"},{value:"sw",option:"Swedish"},{value:"th",option:"Thai"},{value:"tr",option:"Turkish"},{value:"uk",option:"Ukrainian"}]})}(),function(){"use strict";function e(n,e,t,a){var i=this;i.project={preproduction:t},i.closeDialog=function(e){e?(a(i.project.preproduction),n.hide(i.project.preproduction)):n.hide()}}e.$inject=["$mdDialog","toasty","currentXML","saveCallback"],angular.module("app.callysquare").controller("MxGraphEditXMLController",e)}(),function(){"use strict";function e(n,t){var a=this;function i(e){e?(t(e),n.hide(e)):n.hide()}a.errors=[],a.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:5242880,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},a.ngFlow={flow:{}},a.dropping=!1,a.closeDialog=i,a.fileAdded=function(e){a.errors=[];_.includes(["xml"],e.getExtension())||a.errors.push({message:"The extension "+e.getExtension()+" is not supported!"});5242880<e.size&&a.errors.push({message:"The file is too big. The max allowed size is 5MB"});if(!a.errors.length){var n=new FileReader;n.onload=function(e){i(e.target.result)},n.readAsText(e.file)}}}e.$inject=["$mdDialog","saveCallback"],angular.module("app.callysquare").controller("MxGraphImportXMLController",e)}(),function(){"use strict";function e(n,t,e,a){var i=this;i.project=_.clone(e),i.closeDialog=function(){n.hide()},i.save=function(){i.errors=[],a.squareProject.update({id:i.project.id},{notes:i.project.notes,description:i.project.description}).$promise.then(function(e){t.success({title:"Project updated!",msg:i.project.name?i.project.name+" has been updated!":""}),n.hide(e)}).catch(function(e){console.error(e),i.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.update"}]})}}e.$inject=["$mdDialog","toasty","project","api"],angular.module("app.callysquare").controller("MxGraphUpdateInfoController",e)}(),function(){"use strict";function e(n,e,t,a,i){var s=this;s.projects=t,s.id="",s.newWindow=!0,s.closeDialog=function(e){s.errors=[],e?(n.hide(),s.newWindow?a.open("/callysquare/projects/"+s.id,"_blank"):i.go("app.callysquare.projects.edit",{id:s.id})):n.hide()}}e.$inject=["$mdDialog","toasty","projects","$window","$state"],angular.module("app.callysquare").controller("MxGraphOpenProjectController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o){var r=this;function l(){return a.squareProject.getUsers({id:r.project.id,fields:"id,name,fullname,internal",nolimit:!0,role:"user"}).$promise.then(function(e){return r.selectedItems=e.rows?_.map(e.rows,function(e){return e}):[],r.dualMultiselectOptions.selectedItems=r.selectedItems,a.user.get({fields:"id,fullname,name,internal",role:"user",nolimit:!0}).$promise}).then(function(e){r.items=e.rows?_.map(e.rows,function(e){return e}):[],r.dualMultiselectOptions.items=_.differenceBy(r.items,r.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETUSERS",msg:e.status?JSON.stringify(e.data):e.toString()})})}r.project=n,r.penalty=0,r.items=[],r.selectedItems=[],r.closeDialog=function(){e.hide()},r.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:s.instant("CALLYSQUARE.ALL_USERS"),labelSelected:s.instant("CALLYSQUARE.SELECTED_USERS"),transferCallback:function(e,n){a.squareProject[n?"removeUsers":"addUsers"]({id:r.project.id,ids:_.map(e,"id"),penalty:r.penalty||0}).$promise.then(function(){t.success({title:"Project properly "+(n?"removed":"added"),msg:"Project has been "+(n?"removed":"added")+"!"}),n||l()}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:squareProjects.ADDUSERS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},l()}e.$inject=["$mdDialog","toasty","api","project","projects","$translate","Auth"],angular.module("app.callysquare").controller("ProjectspermissionaddController",e)}(),function(){"use strict";function e(n,t,e,a,i,s,o){var r=this;r.project=angular.copy(e),r.project.name+="_new",r.project.preproduction=a,r.newWindow=!0,r.closeDialog=function(){n.hide()},r.save=function(){delete r.project.id,i.squareProject.save(r.project).$promise.then(function(e){t.success({title:"Project properly created",msg:r.project.name?r.project.name+" has been created!":""}),n.hide(e),r.newWindow?s.open("/callysquare/projects/"+e.id,"_blank"):o.go("app.callysquare.projects.edit",{id:e.id})}).catch(function(e){console.error(e),r.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.save"}]})}}e.$inject=["$mdDialog","toasty","project","currentXML","api","$window","$state"],angular.module("app.callysquare").controller("MxGraphSaveProjectAsController",e)}(),function(){"use strict";function e(e,t,a,i,s,o,r,n,l,d,c,m,u,p,g,v,h,f,b,A,E,y,S,T){var I=this;I.currentUser=T.getCurrentUser(),I.project=n||{},I.userProfileSection=S&&1==S.count?S.rows[0]:null,I.crudPermissions=T.parseCrudPermissions(I.userProfileSection?I.userProfileSection.crudPermissions:null),I.onInit=function(){new EditorUi(I,new Editor,document.getElementById("geEditor")).openString(I.project.preproduction,I.project.name,I.project)},I.saveOrPublishProject=function(e,n){var t={preproduction:e};n&&(t.production=e);r.squareProject.update({id:I.project.id},t).$promise.then(function(e){o.success({title:"Project "+(n?"published":"saved")+"!",msg:I.project.name?I.project.name+" has been "+(n?"published":"saved")+"!":""}),I.project.preproduction=e.preproduction}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsquareProject",msg:e.data?JSON.stringify(e.data):e.toString()})})},I.openDialog=function(e,n){a.show({controller:"MxGraphDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/dialog/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{users:l.rows||[],trunks:d.rows||[],queues:c.rows||[],sounds:m.rows||[],variables:u.rows||[],databases:p.rows||[],contexts:g.rows||[],projects:v.rows||[],intervals:h.rows||[],mailAccounts:f.rows||[],smsAccounts:E.rows||[],pauses:y.rows||[],templates:b.rows||[],lists:A.rows||[],cell:e,saveCallback:n,crudPermissions:I.crudPermissions}})},I.newProject=function(e){a.show({controller:"CreateOrEditSquareProjectDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/create/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{project:e,projects:v.rows,openFromEditor:!0,license:null,setting:null,crudPermissions:I.crudPermissions}})},I.openProject=function(){a.show({controller:"MxGraphOpenProjectController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/open/open.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{projects:v.rows||[]}})},I.saveProjectAs=function(e){a.show({controller:"MxGraphSaveProjectAsController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/saveAs/saveAs.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{project:I.project,currentXML:e}}).then(function(e){e&&v.rows.push(e)})},I.newVariable=function(n){return i(function(a,n){return r.userProfileSection.get({userProfileId:I.currentUser.userProfileId,sectionId:1012}).$promise.then(function(e){var n=e.rows?e.rows[0]:null,t=T.parseCrudPermissions(n?n.crudPermissions:null);a(t)}).catch(function(e){n(e)})}).then(function(e){e.canEdit?a.show({controller:"CreateOrEditVariableDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/variables/create/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{variable:n,variables:u.rows,license:null,setting:null,crudPermissions:e}}):o.info({title:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_CREATION_MESSAGE")})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"API:NEW_VARIABLE",msg:e.data?JSON.stringify(e.data):e.toString()})})},I.updateInfo=function(e){a.show({controller:"MxGraphUpdateInfoController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/info/info.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{project:I.project}}).then(function(e){e&&_.merge(I.project,e)})},I.editXML=function(e,n){a.show({controller:"MxGraphEditXMLController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/edit/edit.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{currentXML:e,saveCallback:n}}).then(function(e){e&&(I.project.preproduction=e)})},I.importXML=function(e){a.show({controller:"MxGraphImportXMLController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/import/import.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{saveCallback:e}}).then(function(e){e&&(I.project.preproduction=e)})},I.gotoProjects=function(){e.go("app.callysquare.projects",{},{reload:"app.callysquare.projects"})}}e.$inject=["$state","$document","$mdDialog","$q","$translate","toasty","api","project","users","trunks","queues","sounds","variables","databases","contexts","projects","intervals","mailAccounts","templates","lists","smsAccounts","pauses","userProfileSection","Auth"],angular.module("app.callysquare").controller("ProjectController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m,u){var p=this;p.currentUser=u.getCurrentUser(),p.projects=a||{count:0,rows:[]},p.userProfile=i,p.userProfileSection=s&&1==s.count?s.rows[0]:null,p.crudPermissions=u.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.listOrder="",p.listOrderAsc=null,p.selectedProjects=[],p.query={fields:"id,name,description,notes",sort:"-updatedAt",limit:10,page:1},p.editstate=function(e,n){t.go("app.callysquare.projects.edit",{id:e.id,crudPermissions:p.crudPermissions})},p.deleteconfirm=function(e,n){var t=l.confirm().title("Are you sure want to delete the project?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete project").targetEvent(n).ok("OK").cancel("CANCEL");l.show(t).then(function(){f(e)},function(){console.log("CANCEL")})},p.success=h,p.getProjects=function(){p.query.offset=(p.query.page-1)*p.query.limit,u.hasRole("admin")?p.promise=o.squareProject.get(p.query,h).$promise:(p.query.id=p.userProfile.id,p.query.section="SquareProjects",p.promise=o.userProfile.getResources(p.query,h).$promise)},p.createOrEditProject=function(e,n){l.show({controller:"CreateOrEditSquareProjectDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/create/dialog.html",parent:angular.element(d.body),targetEvent:e,clickOutsideToClose:!0,locals:{project:n,projects:p.projects.rows,openFromEditor:null,setting:null,crudPermissions:p.crudPermissions}})},p.deleteProject=f,p.exportSelectedProjects=function(){var e=angular.copy(p.selectedProjects);return p.selectedProjects=[],e},p.deleteSelectedProjects=function(e){var n=l.confirm().title("Are you sure want to delete the selected projects?").htmlContent("<b>"+p.selectedProjects.length+" selected</b> will be deleted.").ariaLabel("delete Projects").targetEvent(e).ok("OK").cancel("CANCEL");l.show(n).then(function(){p.selectedProjects.forEach(function(e){f(e)}),p.selectedProjects=[]})},p.deselectProjects=function(){p.selectedProjects=[]},p.selectAllProjects=function(){p.selectedProjects=p.projects.rows};var g=!0,v=1;function h(e){p.projects=e||{count:0,rows:[]}}function f(e){o.squareProject.delete({id:e.id}).$promise.then(function(){_.remove(p.projects.rows,{id:e.id}),p.projects.count-=1,p.projects.rows.length||p.getProjects(),m.success({title:"Project deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.project.delete"}];for(var n=0;n<e.data.errors.length;n++)m.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.project.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){g?c(function(){g=!1}):(n||(v=p.query.page),e!==n&&(p.query.page=1),e||(p.query.page=v),p.getProjects())})}e.$inject=["$scope","$state","$mdSidenav","projects","userProfile","userProfileSection","api","msUtils","$mdDialog","$document","$timeout","toasty","Auth"],angular.module("app.callysquare").controller("ProjectsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CALLYSQUARE.EDIT_SQUARERECORDING",g.squareRecording=angular.copy(l),g.squareRecordings=r,g.newSquareRecording=!1,g.squareRecording||(g.squareRecording={},g.title="CALLYSQUARE.NEW_SQUARERECORDING",g.newSquareRecording=!0),g.addNewSquareRecording=function(){g.errors=[],d.squareRecording.save(g.squareRecording).$promise.then(function(e){g.squareRecordings.unshift(e.toJSON()),o.success({title:"SquareRecording properly created",msg:g.squareRecording.name?g.squareRecording.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.squareRecording.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSquareRecording=function(){g.errors=[],d.squareRecording.update({id:g.squareRecording.id},g.squareRecording).$promise.then(function(e){var n=_.find(g.squareRecordings,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"SquareRecording properly saved!",msg:g.squareRecording.name?g.squareRecording.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.squareRecording.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareRecording.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSquareRecording=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The squareRecording will be deleted.").ariaLabel("Delete SquareRecording").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.squareRecording.delete({id:g.squareRecording.id}).$promise.then(function(){_.remove(g.squareRecordings,{id:g.squareRecording.id}),o.success({title:"SquareRecording properly deleted!",msg:(g.squareRecording.name||"squareRecording")+" has been deleted!"}),v(g.squareRecording)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.squareRecording.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareRecording.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","squareRecordings","squareRecording","api","Auth","license","setting","crudPermissions"],angular.module("app.callysquare").controller("CreateOrEditSquareRecordingDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.squareRecordings=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="squareRecordings",f.listOrder="",f.listOrderAsc=null,f.selectedSquareRecordings=[],f.query={fields:"createdAt,updatedAt,id,filename,projectName,uniqueid,callerid,extension,audio,savePath,format",sort:"-createdAt",limit:10,page:1},f.downloadfile2=function(s,e){return m.squareRecording.download({id:s.id}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=s.uniqueid+s.format;var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("squareRecording")+"?").htmlContent("<b>"+(e.name||"squareRecording")+"</b> will be deleted.").ariaLabel("delete squareRecording").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getSquareRecordings=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.squareRecording.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="SquareRecordings",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditSquareRecording=function(e,n){i.show({controller:"CreateOrEditSquareRecordingDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/squareRecordings/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{squareRecording:n,squareRecordings:f.squareRecordings.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteSquareRecording=y,f.exportSelectedSquareRecordings=function(){var e=angular.copy(f.selectedSquareRecordings);return f.selectedSquareRecordings=[],e},f.deleteSelectedSquareRecordings=function(e){var n=i.confirm().title("Are you sure want to delete the selected squareRecordings?").htmlContent("<b>"+f.selectedSquareRecordings.length+" selected</b> will be deleted.").ariaLabel("delete SquareRecordings").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedSquareRecordings.forEach(function(e){y(e)}),f.selectedSquareRecordings=[]})},f.deselectSquareRecordings=function(){f.selectedSquareRecordings=[]},f.selectAllSquareRecordings=function(){f.selectedSquareRecordings=f.squareRecordings.rows};var b=!0,A=1;function E(e){f.squareRecordings=e||{count:0,rows:[]}}function y(e){m.squareRecording.delete({id:e.id}).$promise.then(function(){_.remove(f.squareRecordings.rows,{id:e.id}),f.squareRecordings.count-=1,f.squareRecordings.rows.length||f.getSquareRecordings(),p.success({title:_.startCase("SquareRecording")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEsquareRecording"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEsquareRecording",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getSquareRecordings())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","squareRecordings","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.callysquare").controller("SquareRecordingsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.chatQueues=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="chatQueues",f.listOrder="",f.listOrderAsc=null,f.selectedChatQueues=[],f.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"chat",limit:10,page:1},f.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.chat.chatQueues.edit",{id:e.id,chatQueue:e,crudPermissions:f.crudPermissions})},f.teamadddialog=function(e,n){i.show({controller:"ChatQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{chatQueue:e,chatQueues:f.chatQueues?f.chatQueues.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"ChatQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{chatQueue:e,chatQueues:f.chatQueues?f.chatQueues.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("chatQueue")+"?").htmlContent("<b>"+(e.name||"chatQueue")+"</b> will be deleted.").ariaLabel("delete chatQueue").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:510}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.chat.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.chat.realtime.queues",{})}},f.success=E,f.getChatQueues=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.chatQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ChatQueues",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditChatQueue=function(e,n){i.show({controller:"CreateOrEditChatQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatQueue:n,chatQueues:f.chatQueues.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteChatQueue=y,f.exportSelectedChatQueues=function(){var e=angular.copy(f.selectedChatQueues);return f.selectedChatQueues=[],e},f.deleteSelectedChatQueues=function(e){var n=i.confirm().title("Are you sure want to delete the selected chatQueues?").htmlContent("<b>"+f.selectedChatQueues.length+" selected</b> will be deleted.").ariaLabel("delete ChatQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedChatQueues.forEach(function(e){y(e)}),f.selectedChatQueues=[]})},f.deselectChatQueues=function(){f.selectedChatQueues=[]},f.selectAllChatQueues=function(){f.selectedChatQueues=f.chatQueues.rows};var b=!0,A=1;function E(e){f.chatQueues=e||{count:0,rows:[]}}function y(e){m.chatQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.chatQueues.rows,{id:e.id}),f.chatQueues.count-=1,f.chatQueues.rows.length||f.getChatQueues(),p.success({title:_.startCase("ChatQueue")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEchatQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEchatQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getChatQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","chatQueues","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.chat").controller("ChatQueuesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CHAT.EDIT_CHATQUEUE",g.chatQueue=angular.copy(l),g.chatQueues=r,g.newChatQueue=!1,g.chatQueue||(g.chatQueue={strategy:"beepall",timeout:10},g.title="CHAT.NEW_CHATQUEUE",g.newChatQueue=!0),g.addNewChatQueue=function(){g.errors=[],d.chatQueue.save(g.chatQueue).$promise.then(function(e){g.chatQueues.unshift(e.toJSON()),o.success({title:"ChatQueue properly created",msg:g.chatQueue.name?g.chatQueue.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveChatQueue=function(){g.errors=[],d.chatQueue.update({id:g.chatQueue.id},g.chatQueue).$promise.then(function(e){var n=_.find(g.chatQueues,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"ChatQueue properly saved!",msg:g.chatQueue.name?g.chatQueue.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteChatQueue=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The chatQueue will be deleted.").ariaLabel("Delete ChatQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.chatQueue.delete({id:g.chatQueue.id}).$promise.then(function(){_.remove(g.chatQueues,{id:g.chatQueue.id}),o.success({title:"ChatQueue properly deleted!",msg:(g.chatQueue.name||"chatQueue")+" has been deleted!"}),v(g.chatQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","chatQueues","chatQueue","api","Auth","license","setting","crudPermissions"],angular.module("app.chat").controller("CreateOrEditChatQueueDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.chatQueue.getAgents({id:c.chatQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserChatQueue?"penalty "+e.UserChatQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.chatQueue=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.chatQueue.removeAgents({id:c.chatQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.chatQueue.addAgents({id:c.chatQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("CHAT.ALL_AGENTS"),labelSelected:r.instant("CHAT.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","chatQueue","chatQueues","realtime","$translate","Auth","crudPermissions"],angular.module("app.chat").controller("ChatQueueagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.chatQueue.getTeams({id:l.chatQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.chatQueue=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("CHAT.ALL_TEAMS"),labelSelected:t.instant("CHAT.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.chatQueue.removeTeams({id:l.chatQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.chatQueue.addTeams({id:l.chatQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","chatQueue","$translate","Auth","crudPermissions"],angular.module("app.chat").controller("ChatQueueteamaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.chatQueue=c||e.params.chatQueue||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.teamadddialog=function(e,n){t.show({controller:"ChatQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{chatQueue:e,chatQueues:u.chatQueues?u.chatQueues.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){t.show({controller:"ChatQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{chatQueue:e,chatQueues:u.chatQueues?u.chatQueues.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.alert=l.info,u.gotoChatQueues=function(){e.go("app.chat.chatQueues",{},{reload:"app.chat.chatQueues"})},u.saveChatQueue=function(){r.chatQueue.update({id:u.chatQueue.id},u.chatQueue).$promise.then(function(){l.success({title:"ChatQueue updated!",msg:u.chatQueue.name?u.chatQueue.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","chatQueue","userProfileSection"],angular.module("app.chat").controller("ChatQueueController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.chatWebsites=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="chatWebsites",f.listOrder="",f.listOrderAsc=null,f.selectedChatWebsites=[],f.query={fields:"createdAt,updatedAt,id,token,agentIdentifier,customerAlias,messageFontSize,name,key,address,remote,ListId,fidelity,timeout,agentAlias,closingQuestion,formSubmitSuccessMessage,formSubmitFailureMessage,color,color_focus,color_button,textColor,backgroundColor,fontSize,header_shape,showAgentAvatar,showCustomerAvatar,alignment,verticalAlignment,messagesAlignment,defaultTitle,animation,defaultWhiteLabel,whiteLabel,defaultLogo,conditionAgreement,autoclose,enableUnmanagedNote,unmanagedMessage,skipUnmanaged,sendUnmanaged,enableCustomerWriting,waitingTitle,waitingMessage,closingMessage,noteTitle,placeholderMessage,skipMessageButton,enableRating,ratingType,ratingStarsNumber,enableFeedback,feedbackTitle,forwardTranscript,forwardTranscriptMessage,closingMessageButton,download_transcript,enableCustomerAttachment,enableSendButton,enableCustomerCheckmarks,systemAlias,enquiry_enable,enquiry_forwarding,enquiry_forwarding_address,name_title,username_placeholder,email_title,email_placeholder,header_online,hideWhenOffline,header_offline,start_chat_button,offline_chat_button,offlineMessageSubject,offlineMessageBody,offline_message,message_title,enquiry_message_placeholder,enquiry_button,rating_message,rating_send,rating_skip,onlineForm,offlineForm,mapKey,mapKeyOffline,forwardOffline,MailAccountId,openNewInteraction,forwardOfflineAddress,subjectOffline,IntervalId,timezone,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout,vidaooEscalation,vidaooApiKey,vidaooTopic,vidaooNote,vidaooMetadata",sort:"-updatedAt",limit:10,page:1},f.arrayagentIdentifier=_.keyBy([{option:"WebsiteAlias",value:"'website_alias'"},{option:"AgentAlias",value:"'agent_alias'"},{option:"AgentFullname",value:"'agent_fullname'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayheader_shape=_.keyBy([{option:"Rounded",value:"'rounded'"},{option:"Squared",value:"'squared'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayalignment=_.keyBy([{option:"bottom_right",value:"'bottom_right'"},{option:"right",value:"'right'"},{option:"left",value:"'left'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraymessagesAlignment=_.keyBy([{option:"alternate",value:"'alternate'"},{option:"centered",value:"'centered'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayratingType=_.keyBy([{option:"Star",value:"'star'"},{option:"Thumb",value:"'thumb'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.chat.chatWebsites.edit",{id:e.id,chatWebsite:e,crudPermissions:f.crudPermissions})},f.interactionsgoto=function(e,n){t.go("app.chat.chatWebsites.edit",{id:e.id,tab:10})},f.offlinemessagesgoto=function(e,n){t.go("app.chat.chatWebsites.edit",{id:e.id,tab:11})},f.agentadddialog=function(e,n){i.show({controller:"ChatWebsiteagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{chatWebsite:e,chatWebsites:f.chatWebsites?f.chatWebsites.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("chatWebsite")+"?").htmlContent("<b>"+(e.name||"chatWebsite")+"</b> will be deleted.").ariaLabel("delete chatWebsite").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getChatWebsites=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.chatWebsite.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ChatWebsites",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditChatWebsite=function(e,n){i.show({controller:"CreateOrEditChatWebsiteDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:n,chatWebsites:f.chatWebsites.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteChatWebsite=y,f.exportSelectedChatWebsites=function(){var e=angular.copy(f.selectedChatWebsites);return f.selectedChatWebsites=[],e},f.deleteSelectedChatWebsites=function(e){var n=i.confirm().title("Are you sure want to delete the selected chatWebsites?").htmlContent("<b>"+f.selectedChatWebsites.length+" selected</b> will be deleted.").ariaLabel("delete ChatWebsites").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedChatWebsites.forEach(function(e){y(e)}),f.selectedChatWebsites=[]})},f.deselectChatWebsites=function(){f.selectedChatWebsites=[]},f.selectAllChatWebsites=function(){f.selectedChatWebsites=f.chatWebsites.rows},g.hasRole("admin")?m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.lists,{id:e.resourceId})}),t=null;if(f.chatWebsite&&(t=_.find(f.lists,{id:Number(f.chatWebsite.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.lists,{id:t.id});a.canSelect=!1,n.push(a)}f.lists=n})}else{var t=[],a=null;f.chatWebsite&&(a=_.find(f.lists,{id:Number(f.chatWebsite.ListId)}));for(var i=0;i<f.lists.length;i++)a&&f.lists[i].id===a.id&&(f.lists[i].canSelect=!1,t.push(f.lists[i]));f.lists=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),g.hasRole("admin")?m.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){f.interval=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){f.interval=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.interval,{id:e.resourceId})}),t=null;if(f.chatWebsite&&(t=_.find(f.interval,{id:Number(f.chatWebsite.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.interval,{id:t.id});a.canSelect=!1,n.push(a)}f.interval=n})}else{var t=[],a=null;f.chatWebsite&&(a=_.find(f.interval,{id:Number(f.chatWebsite.IntervalId)}));for(var i=0;i<f.interval.length;i++)a&&f.interval[i].id===a.id&&(f.interval[i].canSelect=!1,t.push(f.interval[i]));f.interval=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.chatWebsites=e||{count:0,rows:[]}}function y(e){m.chatWebsite.delete({id:e.id}).$promise.then(function(){_.remove(f.chatWebsites.rows,{id:e.id}),f.chatWebsites.count-=1,f.chatWebsites.rows.length||f.getChatWebsites(),p.success({title:_.startCase("ChatWebsite")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEchatWebsite"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEchatWebsite",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getChatWebsites())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","chatWebsites","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.chat").controller("ChatWebsitesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CHAT.EDIT_CHATWEBSITE",g.chatWebsite=angular.copy(l),g.chatWebsites=r,g.newChatWebsite=!1,g.chatWebsite||(g.chatWebsite={remote:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():""),header_shape:"rounded",alignment:"bottom_right",verticalAlignment:30,messagesAlignment:"alternate",IntervalId:"null",timezone:"null",waitForTheAssignedAgent:10,notificationSound:!0,queueTransferTimeout:300,agentTransferTimeout:300,vidaooTopic:"Generated by XCALLY Motion",vidaooNote:"Meeting generated for interaction #{{interaction.id}} by {{agent.name}}"},g.title="CHAT.NEW_CHATWEBSITE",g.newChatWebsite=!0),n.params.id&&(g.chatWebsite.ChatWebsiteId=n.params.id),g.addNewChatWebsite=function(){g.errors=[],d.chatWebsite.save(g.chatWebsite).$promise.then(function(e){g.chatWebsites.unshift(e.toJSON()),o.success({title:"ChatWebsite properly created",msg:g.chatWebsite.name?g.chatWebsite.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatWebsite.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatWebsite.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveChatWebsite=function(){g.errors=[],d.chatWebsite.update({id:g.chatWebsite.id},g.chatWebsite).$promise.then(function(e){var n=_.find(g.chatWebsites,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"ChatWebsite properly saved!",msg:g.chatWebsite.name?g.chatWebsite.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatWebsite.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatWebsite.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteChatWebsite=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The chatWebsite will be deleted.").ariaLabel("Delete ChatWebsite").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.chatWebsite.delete({id:g.chatWebsite.id}).$promise.then(function(){_.remove(g.chatWebsites,{id:g.chatWebsite.id}),o.success({title:"ChatWebsite properly deleted!",msg:(g.chatWebsite.name||"chatWebsite")+" has been deleted!"}),v(g.chatWebsite)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatWebsite.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatWebsite.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.lists,{id:e.resourceId})}),t=null;if(g.chatWebsite&&(t=_.find(g.lists,{id:Number(g.chatWebsite.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.lists,{id:t.id});a.canSelect=!1,n.push(a)}g.lists=n})}else{var t=[],a=null;g.chatWebsite&&(a=_.find(g.lists,{id:Number(g.chatWebsite.ListId)}));for(var i=0;i<g.lists.length;i++)a&&g.lists[i].id===a.id&&(g.lists[i].canSelect=!1,t.push(g.lists[i]));g.lists=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.hasRole("admin")?d.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){g.interval=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){g.interval=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.interval,{id:e.resourceId})}),t=null;if(g.chatWebsite&&(t=_.find(g.interval,{id:Number(g.chatWebsite.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.interval,{id:t.id});a.canSelect=!1,n.push(a)}g.interval=n})}else{var t=[],a=null;g.chatWebsite&&(a=_.find(g.interval,{id:Number(g.chatWebsite.IntervalId)}));for(var i=0;i<g.interval.length;i++)a&&g.interval[i].id===a.id&&(g.interval[i].canSelect=!1,t.push(g.interval[i]));g.interval=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","chatWebsites","chatWebsite","api","Auth","license","setting","crudPermissions"],angular.module("app.chat").controller("CreateOrEditChatWebsiteDialogController",e)}(),function(){"use strict";function e(o,i,a,s,e){var r=this;function n(e,n){if(r.chatWebsiteApps.rows.length){var t=r.chatWebsiteApps.rows[n]?r.chatWebsiteApps.rows[n]:r.chatWebsiteApps.rows[0];i.show({controller:"EditChatWebsiteApp"+(t.appType||t.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/apps/"+(t.appType||t.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsiteApp:t,chatWebsite:r.chatWebsite,crudPermissions:r.crudPermissions}}).then(function(e){e&&(e.id?r.chatWebsiteApps.rows[n]=e:r.chatWebsiteApps.rows.splice(n,0,e),l())}).catch(function(e){e&&s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function l(){for(var e=1,n=[],t=0;t<r.chatWebsiteApps.rows.length;t++,0){var a=r.chatWebsiteApps.rows[t],i=[],s=[];a.intervals="*,*,*,*"!==a.interval?[a.interval]:a.IntervalId?_.map(_.filter(r.intervals.rows,{IntervalId:a.IntervalId}),"interval"):[],a.context=r.chatWebsite.context,a.exten=r.chatWebsite.exten,a.type&&(a.type=a.type.toLowerCase()),a.priority=i.length?_.last(i).priority+1:e,e=(s.length?_.last(s).priority:a.priority)+1,n=_.concat(n,i,[a],s)}o.chatWebsite.addApplications({id:r.chatWebsite.id},_.sortBy(n,"priority")).$promise.then(function(e){r.chatWebsiteApps.rows=e.rows}).catch(function(e){console.error(e)})}function t(e){r.chatWebsiteApps=e||{count:0,rows:[]}}r.currentUser=e.getCurrentUser(),r.chatWebsite={},r.chatWebsiteApps={count:0,rows:[]},r.selectedChatWebsiteApps=[],r.crudPermissions,r.query={sort:"priority"},r.apps=_.reject(_.sortBy([{app:"Interval",appType:"interval",types:["always","custom","list"],fields:[],isApp:!1},{app:"noop",appType:"noop",type:"noop",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,fields:[{title:"Value",name:"value",type:"text",param:0}]},{app:"system",appType:"system",type:"system",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,extraApi:[{name:"variables",field:{name:"variable",key:"name"},route:"variable",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1012}}],fields:[{title:"Command",name:"command",type:"text",required:!0,param:0},{title:"Variable",name:"variable",type:"apiselect",values:"variables",value:"variable.name",option:"variable.name",defaultValues:[{value:"''",option:"None"}],defaultValue:"''",param:1}]},{app:"gotop",appType:"gotop",type:"goto",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Priority",name:"priority",type:"number",required:!0,min:0,param:0}]},{app:"gotoif",appType:"gotoif",type:"gotoif",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Condition",name:"condition",type:"text",required:!0,param:0},{title:"truepriority",name:"truepriority",type:"number",min:1,required:!0,param:1},{title:"falsepriority",name:"falsepriority",type:"number",min:1,required:!0,param:2}]},{app:"queue",appType:"queue",foreignKey:"ChatQueueId",type:"queue",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"queues",field:{name:"queue",key:"name"},route:"chatQueue",filters:{fields:"id,name,type",sort:"name",nolimit:!0},permissions:{section:501}}],fields:[{title:"Queue",name:"queue",type:"apiselect",values:"queues",value:"queue.name",option:"queue.name",defaultValue:300,required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:300,param:1}]},{app:"agent",appType:"agent",type:"agent",foreignKey:"UserId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"agents",field:{name:"agent",key:"name"},route:"user",filters:{fields:"id,name",role:"agent",sort:"name",nolimit:!0},permissions:{section:202}}],fields:[{title:"Agent",name:"agent",type:"apiselect",values:"agents",value:"agent.name",option:"agent.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:30,param:1}]},{app:"close",appType:"close",type:"close",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Disposition",name:"disposition",type:"text",required:!0,param:0}]},{app:"autoreply",appType:"autoreply",type:"autoreply",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"times",name:"times",type:"select",defaultValue:"1",values:[{option:"One Time",value:"2"},{option:"Always",value:"0"},{option:"First Message",value:"1"}],required:!0,param:0},{title:"Text",name:"text",type:"textarea",required:!0,param:1}]},{app:"tag",appType:"tag",type:"tag",foreignKey:"TagId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"tags",field:{name:"tag",key:"name"},route:"tag",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1008}}],fields:[{title:"Tag",name:"tag",type:"apiselect",values:"tags",value:"tag.name",option:"tag.name",required:!0,param:0}]},{app:"dialogflow",appType:"dialogflow",type:"dialogflow",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Key",name:"key",type:"text",required:!0,param:0},{title:"language",name:"language",type:"select",defaultValue:"'en'",values:[{option:"Danish",value:"'da'"},{option:"English",value:"'en'"},{option:"German",value:"'de'"},{option:"Italian",value:"'it'"},{option:"Spanish",value:"'es'"},{option:"French",value:"'fr'"},{option:"Indonesian",value:"'id'"},{option:"Japanese",value:"'ja'"},{option:"Korean (South Korea)",value:"'ko'"},{option:"Dutch",value:"'nl'"},{option:"Norwegian",value:"'no'"},{option:"Portuguese (European)",value:"'pt'"},{option:"Portuguese (Nrazilian)",value:"'pt-br'"},{option:"Russian",value:"'ru'"},{option:"Swedish",value:"'sv'"},{option:"Thai",value:"'th'"},{option:"Ukrainian",value:"'uk'"},{option:"Chinese (Simplified)",value:"'zh-CN'"},{option:"Chinese (Hong Kong)",value:"'zh-HK'"},{option:"Chinese (Traditional)",value:"'zh-TW'"}],required:!0,param:1},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,param:2,help:!0}]},{app:"dialogflowV2",appType:"dialogflowv2",type:"dialogflowv2",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"ProjectID",name:"projectId",type:"text",required:!0,param:0},{title:"ClientEmail",name:"clientEmail",type:"text",required:!0,param:1},{title:"PrivateKey",name:"privateKey",type:"textarea",required:!0,param:2},{title:"language",name:"language",type:"select",defaultValue:"'en'",values:[{value:"'zh-HK'",option:"Chinese (Cantonese)"},{value:"'zh-CN'",option:"Chinese (Simplified)"},{value:"'zh-TW'",option:"Chinese (Traditional)"},{value:"'da'",option:"Danish"},{value:"'nl'",option:"Dutch"},{value:"'en'",option:"English"},{value:"'en-AU'",option:"English (Australia)"},{value:"'en-CA'",option:"English (Canada)"},{value:"'en-GB'",option:"English (Great Britain)"},{value:"'en-IN'",option:"English (India)"},{value:"'en-US'",option:"English (US)"},{value:"'fr'",option:"French"},{value:"'fr-CA'",option:"French (Canada)"},{value:"'fr-FR'",option:"'France (France)"},{value:"'de'",option:"German"},{value:"'hi'",option:"Hindi"},{value:"'id'",option:"Indonesian"},{value:"'it'",option:"Italian"},{value:"'ja'",option:"Japanese"},{value:"'ko'",option:"Korean"},{value:"'no'",option:"Norwegian"},{value:"'pl'",option:"Polish"},{value:"'pt-BR'",option:"Portuguese (Brazil)"},{value:"'pt-PT'",option:"Portuguese (Portugal)"},{value:"'ru'",option:"Russian"},{value:"'es'",option:"Spanish"},{value:"'es-419'",option:"Spanish (Latin America)"},{value:"'es-ES'",option:"Spanish (Spain)"},{value:"'sw'",option:"Swedish"},{value:"'th'",option:"Thai"},{value:"'tr'",option:"Turkish"},{value:"'uk'",option:"Ukrainian"}],required:!0,param:3},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,param:4,help:!0}]},{app:"amazonlex",appType:"amazonlex",type:"amazonlex",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"accesskeyid",name:"accesskeyid",type:"text",required:!0,param:0},{title:"secretaccesskey",name:"secretaccesskey",type:"text",required:!0,param:1},{title:"lexregion",name:"lexregion",type:"select",defaultValue:"'us-east-1'",values:[{option:"US East (N. Virginia)",value:"'us-east-1'"},{option:"US West (Oregon)",value:"'us-west-2'"},{option:"EU (Ireland)",value:"'eu-west-1'"},{option:"Asia Pacific (Sydney)",value:"'ap-southeast-2'"}],required:!0,param:2},{title:"botname",name:"botname",type:"text",required:!0,param:3},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,param:4,help:!0}]}],["app"]),{isApp:!1}),r.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},r.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){n(e,e.newIndex)},onSort:function(e){l()}},r.init=function(e,n){r.chatWebsite=e,r.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},r.applications.disabled=!r.crudPermissions.canEdit,r.query.id=e.id,r.query.isApp=!0,r.query.nolimit=!0,r.getChatWebsiteApps(),r.getIntervals()},r.deleteConfirm=function(e,n,t){var a=i.confirm().title("Are you sure want to delete the application?").htmlContent("<b>"+e.app+"</b> will be deleted.").ariaLabel("delete application").targetEvent(t).ok("OK").cancel("CANCEL");i.show(a).then(function(){r.chatWebsiteApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})},r.getChatWebsiteApps=function(){r.promise=o.chatWebsite.getApplications(r.query,t).$promise},r.editChatWebsiteApp=n,r.editInterval=function(e,n){if(r.chatWebsiteApps.rows.length){var t=r.chatWebsiteApps.rows[n]?r.chatWebsiteApps.rows[n]:r.chatWebsiteApps.rows[0];i.show({controller:"EditChatWebsiteAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/apps/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:[],crudPermissions:r.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,l())})}},r.deleteChatWebsiteApp=function(e){_.remove(r.chatWebsiteApps.rows,{id:e.id}),l(),s.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},r.deleteSelectedChatWebsiteApps=function(e){var n=i.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+r.selectedChatWebsiteApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){r.selectedChatWebsiteApps.forEach(function(e){_.remove(r.chatWebsiteApps.rows,{id:e.id})}),r.selectedChatWebsiteApps=[],l()})},r.rewriteRouting=l,r.getIntervals=function(){return o.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){r.intervals=e}).catch(function(e){console.error(e)})}}e.$inject=["api","$mdDialog","$document","toasty","Auth"],angular.module("app.chat").controller("ChatWebsiteActionsController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.chatWebsite.getAgents({id:c.chatWebsite.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserChatWebsite?"penalty "+e.UserChatWebsite.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.chatWebsite=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.chatWebsite.removeAgents({id:c.chatWebsite.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.chatWebsite.addAgents({id:c.chatWebsite.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("CHAT.ALL_AGENTS"),labelSelected:r.instant("CHAT.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","chatWebsite","chatWebsites","realtime","$translate","Auth","crudPermissions"],angular.module("app.chat").controller("ChatWebsiteagentaddController",e)}(),function(){"use strict";function e(e,a){var i=this;i.chatWebsite={},i.crudPermissions,i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.chatWebsite.images.unshift(t),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.chatWebsite.images,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e,n){i.chatWebsite=angular.copy(e),i.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.ngFlowOptions.target="/api/chat/websites/:id/avatar".replace(":id",i.chatWebsite.id),i.chatWebsite.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.chat").controller("ChatWebsiteagentAvatarController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.agent=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.agent.appdata)switch(l.agent.appType?l.agent.appType.toLowerCase():l.agent.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.agent.appdata.split(",");l.agent.key=d[0],l.agent.language=d[1],l.agent.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.agent.appdata.split(",");l.agent.projectId=d[0],l.agent.clientEmail=d[1],l.agent.privateKey=d[2],l.agent.language=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.agent.appdata.split(",");l.agent.accesskeyid=d[0],l.agent.secretaccesskey=d[1],l.agent.lexregion=d[2],l.agent.botname=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.agent.appdata.split(",");l.agent.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.agent.text=d.slice(1,d.length).join(",");break;case"message":l.agent.text=l.agent.appdata;break;case"set":l.agent.name=l.agent.appdata.split("=")[0],l.agent.value=l.agent.appdata.split("=")[1];break;case"agi":l.agent.project=l.agent.appdata;break;default:var c=l.agent.appdata.split(",");l.agent.agent=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.agent.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.agent.timeout=30;function m(e){n.hide(e)}l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outbounddial"===l.agent.appType.toLowerCase()&&(l.agent.prefix=l.agent.phone?l.agent.phone.split("$")[0]:void 0,l.agent.callerId=l.agent.callerID?"CALLERID(all)="+l.agent.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outboundDial"===l.agent.appType&&(l.agent.phone=i.cutdigits?(l.agent.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.agent.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.agent.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.agent.options+="U(xcally-mixmonitor-context)"):l.agent.options=l.agent.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.agents,{name:l.agent.agent});n&&(l.agent.UserId=n.id);if(l.agent.appType&&"custom"===l.agent.appType);else switch((l.agent.app||l.agent.appType).toLowerCase()){case"set":l.agent.appdata=l.agent.name+"="+l.agent.value;break;case"custom":break;default:e[0]=l.agent.agent,e[1]=l.agent.timeout,l.agent.appdata=e.join(",")}m(l.agent)},l.closeDialog=m,o.hasRole("admin")?s.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){l.agents=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){l.agents=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.agents,{id:e.resourceId})}),t=null;if(l.agent&&(t=_.find(l.agents,{name:l.agent.agent})),t&&!_.some(n,["id",t.id])){var a=_.find(l.agents,{id:t.id});a.canSelect=!1,n.push(a)}l.agents=n})}else{var t=[],a=null;l.agent&&(a=_.find(l.agents,{name:l.agent.agent}));for(var i=0;i<l.agents.length;i++)a&&l.agents[i].id===a.id&&(l.agents[i].canSelect=!1,t.push(l.agents[i]));l.agents=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppagentDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.amazonlex=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.amazonlex.appdata)switch(l.amazonlex.appType?l.amazonlex.appType.toLowerCase():l.amazonlex.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.amazonlex.appdata.split(",");l.amazonlex.key=d[0],l.amazonlex.language=d[1],l.amazonlex.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.amazonlex.appdata.split(",");l.amazonlex.projectId=d[0],l.amazonlex.clientEmail=d[1],l.amazonlex.privateKey=d[2],l.amazonlex.language=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=d[0],l.amazonlex.secretaccesskey=d[1],l.amazonlex.lexregion=d[2],l.amazonlex.botname=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.amazonlex.appdata.split(",");l.amazonlex.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.amazonlex.text=d.slice(1,d.length).join(",");break;case"message":l.amazonlex.text=l.amazonlex.appdata;break;case"set":l.amazonlex.name=l.amazonlex.appdata.split("=")[0],l.amazonlex.value=l.amazonlex.appdata.split("=")[1];break;case"agi":l.amazonlex.project=l.amazonlex.appdata;break;default:var c=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.amazonlex.secretaccesskey=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.amazonlex.lexregion=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.amazonlex.botname=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.amazonlex.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.amazonlex.lexregion="us-east-1";function m(e){n.hide(e)}l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outbounddial"===l.amazonlex.appType.toLowerCase()&&(l.amazonlex.prefix=l.amazonlex.phone?l.amazonlex.phone.split("$")[0]:void 0,l.amazonlex.callerId=l.amazonlex.callerID?"CALLERID(all)="+l.amazonlex.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outboundDial"===l.amazonlex.appType&&(l.amazonlex.phone=i.cutdigits?(l.amazonlex.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.amazonlex.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.amazonlex.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.amazonlex.options+="U(xcally-mixmonitor-context)"):l.amazonlex.options=l.amazonlex.options.replace("U(xcally-mixmonitor-context)",""));if(l.amazonlex.appType&&"custom"===l.amazonlex.appType);else switch((l.amazonlex.app||l.amazonlex.appType).toLowerCase()){case"set":l.amazonlex.appdata=l.amazonlex.name+"="+l.amazonlex.value;break;case"custom":break;default:e[0]=l.amazonlex.accesskeyid,e[1]=l.amazonlex.secretaccesskey,e[2]=l.amazonlex.lexregion,e[3]=l.amazonlex.botname,e[4]=l.amazonlex.welcomemessage,l.amazonlex.appdata=e.join(",")}m(l.amazonlex)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppamazonlexDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.autoreply=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.autoreply.appdata)switch(l.autoreply.appType?l.autoreply.appType.toLowerCase():l.autoreply.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.autoreply.appdata.split(",");l.autoreply.key=d[0],l.autoreply.language=d[1],l.autoreply.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.autoreply.appdata.split(",");l.autoreply.projectId=d[0],l.autoreply.clientEmail=d[1],l.autoreply.privateKey=d[2],l.autoreply.language=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.autoreply.appdata.split(",");l.autoreply.accesskeyid=d[0],l.autoreply.secretaccesskey=d[1],l.autoreply.lexregion=d[2],l.autoreply.botname=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.autoreply.appdata.split(",");l.autoreply.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.autoreply.text=d.slice(1,d.length).join(",");break;case"message":l.autoreply.text=l.autoreply.appdata;break;case"set":l.autoreply.name=l.autoreply.appdata.split("=")[0],l.autoreply.value=l.autoreply.appdata.split("=")[1];break;case"agi":l.autoreply.project=l.autoreply.appdata;break;default:var c=l.autoreply.appdata.split(",");l.autoreply.times=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.autoreply.text=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.autoreply.times=1;function m(e){n.hide(e)}l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outbounddial"===l.autoreply.appType.toLowerCase()&&(l.autoreply.prefix=l.autoreply.phone?l.autoreply.phone.split("$")[0]:void 0,l.autoreply.callerId=l.autoreply.callerID?"CALLERID(all)="+l.autoreply.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outboundDial"===l.autoreply.appType&&(l.autoreply.phone=i.cutdigits?(l.autoreply.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.autoreply.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.autoreply.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.autoreply.options+="U(xcally-mixmonitor-context)"):l.autoreply.options=l.autoreply.options.replace("U(xcally-mixmonitor-context)",""));if(l.autoreply.appType&&"custom"===l.autoreply.appType);else switch((l.autoreply.app||l.autoreply.appType).toLowerCase()){case"set":l.autoreply.appdata=l.autoreply.name+"="+l.autoreply.value;break;case"custom":break;default:e[0]=l.autoreply.times,e[1]=l.autoreply.text,l.autoreply.appdata=e.join(",")}m(l.autoreply)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppautoreplyDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.close=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.close.appdata)switch(l.close.appType?l.close.appType.toLowerCase():l.close.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.close.appdata.split(",");l.close.key=d[0],l.close.language=d[1],l.close.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.close.appdata.split(",");l.close.projectId=d[0],l.close.clientEmail=d[1],l.close.privateKey=d[2],l.close.language=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.close.appdata.split(",");l.close.accesskeyid=d[0],l.close.secretaccesskey=d[1],l.close.lexregion=d[2],l.close.botname=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.close.appdata.split(",");l.close.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.close.text=d.slice(1,d.length).join(",");break;case"message":l.close.text=l.close.appdata;break;case"set":l.close.name=l.close.appdata.split("=")[0],l.close.value=l.close.appdata.split("=")[1];break;case"agi":l.close.project=l.close.appdata;break;default:var c=l.close.appdata.split(",");l.close.disposition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outbounddial"===l.close.appType.toLowerCase()&&(l.close.prefix=l.close.phone?l.close.phone.split("$")[0]:void 0,l.close.callerId=l.close.callerID?"CALLERID(all)="+l.close.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outboundDial"===l.close.appType&&(l.close.phone=i.cutdigits?(l.close.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.close.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.close.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.close.options+="U(xcally-mixmonitor-context)"):l.close.options=l.close.options.replace("U(xcally-mixmonitor-context)",""));if(l.close.appType&&"custom"===l.close.appType);else switch((l.close.app||l.close.appType).toLowerCase()){case"set":l.close.appdata=l.close.name+"="+l.close.value;break;case"custom":break;default:e[0]=l.close.disposition,l.close.appdata=e.join(",")}m(l.close)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppcloseDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflow=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflow.appdata)switch(l.dialogflow.appType?l.dialogflow.appType.toLowerCase():l.dialogflow.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflow.appdata.split(",");l.dialogflow.key=d[0],l.dialogflow.language=d[1],l.dialogflow.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflow.appdata.split(",");l.dialogflow.projectId=d[0],l.dialogflow.clientEmail=d[1],l.dialogflow.privateKey=d[2],l.dialogflow.language=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflow.appdata.split(",");l.dialogflow.accesskeyid=d[0],l.dialogflow.secretaccesskey=d[1],l.dialogflow.lexregion=d[2],l.dialogflow.botname=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflow.appdata.split(",");l.dialogflow.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflow.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflow.text=l.dialogflow.appdata;break;case"set":l.dialogflow.name=l.dialogflow.appdata.split("=")[0],l.dialogflow.value=l.dialogflow.appdata.split("=")[1];break;case"agi":l.dialogflow.project=l.dialogflow.appdata;break;default:var c=l.dialogflow.appdata.split(",");l.dialogflow.key=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflow.language=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflow.welcomemessage=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}else l.dialogflow.language="en";function m(e){n.hide(e)}l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outbounddial"===l.dialogflow.appType.toLowerCase()&&(l.dialogflow.prefix=l.dialogflow.phone?l.dialogflow.phone.split("$")[0]:void 0,l.dialogflow.callerId=l.dialogflow.callerID?"CALLERID(all)="+l.dialogflow.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outboundDial"===l.dialogflow.appType&&(l.dialogflow.phone=i.cutdigits?(l.dialogflow.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflow.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflow.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflow.options+="U(xcally-mixmonitor-context)"):l.dialogflow.options=l.dialogflow.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflow.appType&&"custom"===l.dialogflow.appType);else switch((l.dialogflow.app||l.dialogflow.appType).toLowerCase()){case"set":l.dialogflow.appdata=l.dialogflow.name+"="+l.dialogflow.value;break;case"custom":break;default:e[0]=l.dialogflow.key,e[1]=l.dialogflow.language,e[2]=l.dialogflow.welcomemessage,l.dialogflow.appdata=e.join(",")}m(l.dialogflow)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppdialogflowDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflowv2=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflowv2.appdata)switch(l.dialogflowv2.appType?l.dialogflowv2.appType.toLowerCase():l.dialogflowv2.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.key=d[0],l.dialogflowv2.language=d[1],l.dialogflowv2.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=d[0],l.dialogflowv2.clientEmail=d[1],l.dialogflowv2.privateKey=d[2],l.dialogflowv2.language=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.accesskeyid=d[0],l.dialogflowv2.secretaccesskey=d[1],l.dialogflowv2.lexregion=d[2],l.dialogflowv2.botname=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflowv2.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflowv2.text=l.dialogflowv2.appdata;break;case"set":l.dialogflowv2.name=l.dialogflowv2.appdata.split("=")[0],l.dialogflowv2.value=l.dialogflowv2.appdata.split("=")[1];break;case"agi":l.dialogflowv2.project=l.dialogflowv2.appdata;break;default:var c=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflowv2.clientEmail=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflowv2.privateKey=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.dialogflowv2.language=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.dialogflowv2.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.dialogflowv2.language="en";function m(e){n.hide(e)}l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outbounddial"===l.dialogflowv2.appType.toLowerCase()&&(l.dialogflowv2.prefix=l.dialogflowv2.phone?l.dialogflowv2.phone.split("$")[0]:void 0,l.dialogflowv2.callerId=l.dialogflowv2.callerID?"CALLERID(all)="+l.dialogflowv2.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outboundDial"===l.dialogflowv2.appType&&(l.dialogflowv2.phone=i.cutdigits?(l.dialogflowv2.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflowv2.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflowv2.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflowv2.options+="U(xcally-mixmonitor-context)"):l.dialogflowv2.options=l.dialogflowv2.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflowv2.appType&&"custom"===l.dialogflowv2.appType);else switch((l.dialogflowv2.app||l.dialogflowv2.appType).toLowerCase()){case"set":l.dialogflowv2.appdata=l.dialogflowv2.name+"="+l.dialogflowv2.value;break;case"custom":break;default:e[0]=l.dialogflowv2.projectId,e[1]=l.dialogflowv2.clientEmail,e[2]=l.dialogflowv2.privateKey,e[3]=l.dialogflowv2.language,e[4]=l.dialogflowv2.welcomemessage,l.dialogflowv2.appdata=e.join(",")}m(l.dialogflowv2)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppdialogflowv2DialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotoif=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotoif.appdata)switch(l.gotoif.appType?l.gotoif.appType.toLowerCase():l.gotoif.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotoif.appdata.split(",");l.gotoif.key=d[0],l.gotoif.language=d[1],l.gotoif.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotoif.appdata.split(",");l.gotoif.projectId=d[0],l.gotoif.clientEmail=d[1],l.gotoif.privateKey=d[2],l.gotoif.language=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotoif.appdata.split(",");l.gotoif.accesskeyid=d[0],l.gotoif.secretaccesskey=d[1],l.gotoif.lexregion=d[2],l.gotoif.botname=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotoif.appdata.split(",");l.gotoif.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotoif.text=d.slice(1,d.length).join(",");break;case"message":l.gotoif.text=l.gotoif.appdata;break;case"set":l.gotoif.name=l.gotoif.appdata.split("=")[0],l.gotoif.value=l.gotoif.appdata.split("=")[1];break;case"agi":l.gotoif.project=l.gotoif.appdata;break;default:var c=l.gotoif.appdata.split(",");l.gotoif.condition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.gotoif.truepriority=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.gotoif.falsepriority=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}function m(e){n.hide(e)}l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outbounddial"===l.gotoif.appType.toLowerCase()&&(l.gotoif.prefix=l.gotoif.phone?l.gotoif.phone.split("$")[0]:void 0,l.gotoif.callerId=l.gotoif.callerID?"CALLERID(all)="+l.gotoif.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outboundDial"===l.gotoif.appType&&(l.gotoif.phone=i.cutdigits?(l.gotoif.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotoif.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotoif.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotoif.options+="U(xcally-mixmonitor-context)"):l.gotoif.options=l.gotoif.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotoif.appType&&"custom"===l.gotoif.appType);else switch((l.gotoif.app||l.gotoif.appType).toLowerCase()){case"set":l.gotoif.appdata=l.gotoif.name+"="+l.gotoif.value;break;case"custom":break;default:e[0]=l.gotoif.condition,e[1]=l.gotoif.truepriority,e[2]=l.gotoif.falsepriority,l.gotoif.appdata=e.join(",")}m(l.gotoif)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppgotoifDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotop.appdata)switch(l.gotop.appType?l.gotop.appType.toLowerCase():l.gotop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotop.appdata.split(",");l.gotop.key=d[0],l.gotop.language=d[1],l.gotop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotop.appdata.split(",");l.gotop.projectId=d[0],l.gotop.clientEmail=d[1],l.gotop.privateKey=d[2],l.gotop.language=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotop.appdata.split(",");l.gotop.accesskeyid=d[0],l.gotop.secretaccesskey=d[1],l.gotop.lexregion=d[2],l.gotop.botname=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotop.appdata.split(",");l.gotop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotop.text=d.slice(1,d.length).join(",");break;case"message":l.gotop.text=l.gotop.appdata;break;case"set":l.gotop.name=l.gotop.appdata.split("=")[0],l.gotop.value=l.gotop.appdata.split("=")[1];break;case"agi":l.gotop.project=l.gotop.appdata;break;default:var c=l.gotop.appdata.split(",");l.gotop.priority=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outbounddial"===l.gotop.appType.toLowerCase()&&(l.gotop.prefix=l.gotop.phone?l.gotop.phone.split("$")[0]:void 0,l.gotop.callerId=l.gotop.callerID?"CALLERID(all)="+l.gotop.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outboundDial"===l.gotop.appType&&(l.gotop.phone=i.cutdigits?(l.gotop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotop.options+="U(xcally-mixmonitor-context)"):l.gotop.options=l.gotop.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotop.appType&&"custom"===l.gotop.appType);else switch((l.gotop.app||l.gotop.appType).toLowerCase()){case"set":l.gotop.appdata=l.gotop.name+"="+l.gotop.value;break;case"custom":break;default:e[0]=l.gotop.priority,l.gotop.appdata=e.join(",")}m(l.gotop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppgotopDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;if(c.currentUser=l.getCurrentUser(),c.errors=[],c.title="TOOLS.EDIT_INTERVAL",c.interval=angular.copy(i),c.intervals=s,c.newInterval=!1,c.types=["always","custom","list"],c.crudPermissions=d,c.daysOfWeek=a.getDaysOfWeek(),c.monthNumber=a.getMonthNumber(),c.monthName=a.getMonthName(),c.daysOfMonth=a.getDaysOfMonth(),c.interval)if("*,*,*,*"!==c.interval.interval){c.type="custom";var m=c.interval.interval.split(","),u=m[0],p=m[1],g=m[2],v=m[3];if("*"!==u){var h,f=u.split("-")[0],b=u.split("-")[1];(h=new Date).setHours(Number(f.split(":")[0])),h.setMinutes(Number(f.split(":")[1])),c.timeRangeFrom=h,(h=new Date).setHours(Number(b.split(":")[0])),h.setMinutes(Number(b.split(":")[1])),c.timeRangeTo=h}"*"!==p&&(c.dayOfWeekFrom=p.split("-")[0],c.dayOfWeekTo=p.split("-")[1]),"*"!==g&&(c.monthDayFrom=g.split("-")[0],c.monthDayTo=g.split("-")[1]),"*"!==v&&(c.monthFrom=v.split("-")[0],c.monthTo=v.split("-")[1])}else c.type="always";else c.interval={interval:"*,*,*,*"},c.type="always",c.title="TOOLS.NEW_INTERVAL",c.newInterval=!0;function A(){switch(c.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==c.timeRangeFrom&&c.timeRangeFrom&&c.timeRangeTo){var n=(c.timeRangeFrom.getHours()<10?"0":"")+c.timeRangeFrom.getHours()+":"+(c.timeRangeFrom.getMinutes()<10?"0":"")+c.timeRangeFrom.getMinutes(),t=(c.timeRangeTo.getHours()<10?"0":"")+c.timeRangeTo.getHours()+":"+(c.timeRangeTo.getMinutes()<10?"0":"")+c.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return c.dayOfWeekFrom?c.dayOfWeekTo?e.push(c.dayOfWeekFrom+"-"+c.dayOfWeekTo):e.push(c.dayOfWeekFrom):e.push("*"),c.monthDayFrom?c.monthDayTo?e.push(c.monthDayFrom+"-"+c.monthDayTo):e.push(c.monthDayFrom):e.push("*"),c.monthFrom?c.monthTo?e.push(c.monthFrom+"-"+c.monthTo):e.push(c.monthFrom):e.push("*"),e.join()}}function E(e){n.hide(e)}e.params.id&&!c.interval.application&&(c.interval.IntervalId=e.params.id),c.interval.IntervalId&&c.interval.application&&(c.type="list"),c.addNewInterval=function(){c.errors=[],c.interval.interval=A(),r.interval.save(c.interval).$promise.then(function(e){c.intervals.push(e),o.success({title:"Interval properly created",msg:c.interval.name?c.interval.name+" has been created!":""}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},c.saveInterval=function(){c.errors=[],c.interval.interval=A(),c.interval.application?("list"!==c.type&&(c.interval.IntervalId=null),E(c.interval)):r.interval.update({id:c.interval.id},c.interval).$promise.then(function(e){var n=_.find(c.intervals,{id:e.id});n&&_.merge(n,e),o.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},c.closeDialog=E,c.interval.application&&(l.hasRole("admin")?r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:c.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=e&&e.rows?e.rows:[],t=[],a=null;c.interval&&(a=_.find(c.intervals,{name:c.interval.IntervalId})),a&&!_.some(n,["resourceId",a.id])&&c.intervals.forEach(function(e){e.id===a.id&&(e.canSelect=!1,t.push(e))}),c.intervals=t})}else c.intervals=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}))}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditChatWebsiteAppintervalDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.noop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.noop.appdata)switch(l.noop.appType?l.noop.appType.toLowerCase():l.noop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.noop.appdata.split(",");l.noop.key=d[0],l.noop.language=d[1],l.noop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.noop.appdata.split(",");l.noop.projectId=d[0],l.noop.clientEmail=d[1],l.noop.privateKey=d[2],l.noop.language=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.noop.appdata.split(",");l.noop.accesskeyid=d[0],l.noop.secretaccesskey=d[1],l.noop.lexregion=d[2],l.noop.botname=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.noop.appdata.split(",");l.noop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.noop.text=d.slice(1,d.length).join(",");break;case"message":l.noop.text=l.noop.appdata;break;case"set":l.noop.name=l.noop.appdata.split("=")[0],l.noop.value=l.noop.appdata.split("=")[1];break;case"agi":l.noop.project=l.noop.appdata;break;default:var c=l.noop.appdata.split(",");l.noop.value=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outbounddial"===l.noop.appType.toLowerCase()&&(l.noop.prefix=l.noop.phone?l.noop.phone.split("$")[0]:void 0,l.noop.callerId=l.noop.callerID?"CALLERID(all)="+l.noop.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outboundDial"===l.noop.appType&&(l.noop.phone=i.cutdigits?(l.noop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.noop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.noop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.noop.options+="U(xcally-mixmonitor-context)"):l.noop.options=l.noop.options.replace("U(xcally-mixmonitor-context)",""));if(l.noop.appType&&"custom"===l.noop.appType);else switch((l.noop.app||l.noop.appType).toLowerCase()){case"set":l.noop.appdata=l.noop.name+"="+l.noop.value;break;case"custom":break;default:e[0]=l.noop.value,l.noop.appdata=e.join(",")}m(l.noop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppnoopDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.queue=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.queue.appdata)switch(l.queue.appType?l.queue.appType.toLowerCase():l.queue.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.queue.appdata.split(",");l.queue.key=d[0],l.queue.language=d[1],l.queue.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.queue.appdata.split(",");l.queue.projectId=d[0],l.queue.clientEmail=d[1],l.queue.privateKey=d[2],l.queue.language=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.queue.appdata.split(",");l.queue.accesskeyid=d[0],l.queue.secretaccesskey=d[1],l.queue.lexregion=d[2],l.queue.botname=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.queue.appdata.split(",");l.queue.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.queue.text=d.slice(1,d.length).join(",");break;case"message":l.queue.text=l.queue.appdata;break;case"set":l.queue.name=l.queue.appdata.split("=")[0],l.queue.value=l.queue.appdata.split("=")[1];break;case"agi":l.queue.project=l.queue.appdata;break;default:var c=l.queue.appdata.split(",");l.queue.queue=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.queue.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.queue.queue=300,l.queue.timeout=300;function m(e){n.hide(e)}l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outbounddial"===l.queue.appType.toLowerCase()&&(l.queue.prefix=l.queue.phone?l.queue.phone.split("$")[0]:void 0,l.queue.callerId=l.queue.callerID?"CALLERID(all)="+l.queue.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outboundDial"===l.queue.appType&&(l.queue.phone=i.cutdigits?(l.queue.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.queue.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.queue.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.queue.options+="U(xcally-mixmonitor-context)"):l.queue.options=l.queue.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.queues,{name:l.queue.queue});n&&(l.queue[_.capitalize("chat")+"QueueId"]=n.id);if(l.queue.appType&&"custom"===l.queue.appType);else switch((l.queue.app||l.queue.appType).toLowerCase()){case"set":l.queue.appdata=l.queue.name+"="+l.queue.value;break;case"custom":break;default:e[0]=l.queue.queue,e[1]=l.queue.timeout,l.queue.appdata=e.join(",")}m(l.queue)},l.closeDialog=m,o.hasRole("admin")?s.chatQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.chatQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:501}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.queues,{id:e.resourceId})}),t=null;if(l.queue&&(t=_.find(l.queues,{name:l.queue.queue})),t&&!_.some(n,["id",t.id])){var a=_.find(l.queues,{id:t.id});a.canSelect=!1,n.push(a)}l.queues=n})}else{var t=[],a=null;l.queue&&(a=_.find(l.queues,{name:l.queue.queue}));for(var i=0;i<l.queues.length;i++)a&&l.queues[i].id===a.id&&(l.queues[i].canSelect=!1,t.push(l.queues[i]));l.queues=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppqueueDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.system=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.system.appdata)switch(l.system.appType?l.system.appType.toLowerCase():l.system.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.system.appdata.split(",");l.system.key=d[0],l.system.language=d[1],l.system.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.system.appdata.split(",");l.system.projectId=d[0],l.system.clientEmail=d[1],l.system.privateKey=d[2],l.system.language=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.system.appdata.split(",");l.system.accesskeyid=d[0],l.system.secretaccesskey=d[1],l.system.lexregion=d[2],l.system.botname=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.system.appdata.split(",");l.system.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.system.text=d.slice(1,d.length).join(",");break;case"message":l.system.text=l.system.appdata;break;case"set":l.system.name=l.system.appdata.split("=")[0],l.system.value=l.system.appdata.split("=")[1];break;case"agi":l.system.project=l.system.appdata;break;default:var c=l.system.appdata.split(",");l.system.command=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.system.variable=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.system.variable="";function m(e){n.hide(e)}l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outbounddial"===l.system.appType.toLowerCase()&&(l.system.prefix=l.system.phone?l.system.phone.split("$")[0]:void 0,l.system.callerId=l.system.callerID?"CALLERID(all)="+l.system.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outboundDial"===l.system.appType&&(l.system.phone=i.cutdigits?(l.system.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.system.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.system.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.system.options+="U(xcally-mixmonitor-context)"):l.system.options=l.system.options.replace("U(xcally-mixmonitor-context)",""));if(l.system.appType&&"custom"===l.system.appType);else switch((l.system.app||l.system.appType).toLowerCase()){case"set":l.system.appdata=l.system.name+"="+l.system.value;break;case"custom":break;default:e[0]=l.system.command,e[1]=l.system.variable,l.system.appdata=e.join(",")}m(l.system)},l.closeDialog=m,o.hasRole("admin")?s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1012}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.variables,{id:e.resourceId})}),t=null;if(l.system&&(t=_.find(l.variables,{name:l.system.variable})),t&&!_.some(n,["id",t.id])){var a=_.find(l.variables,{id:t.id});a.canSelect=!1,n.push(a)}l.variables=n})}else{var t=[],a=null;l.system&&(a=_.find(l.variables,{name:l.system.variable}));for(var i=0;i<l.variables.length;i++)a&&l.variables[i].id===a.id&&(l.variables[i].canSelect=!1,t.push(l.variables[i]));l.variables=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppsystemDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.tag=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.tag.appdata)switch(l.tag.appType?l.tag.appType.toLowerCase():l.tag.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.tag.appdata.split(",");l.tag.key=d[0],l.tag.language=d[1],l.tag.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.tag.appdata.split(",");l.tag.projectId=d[0],l.tag.clientEmail=d[1],l.tag.privateKey=d[2],l.tag.language=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.tag.appdata.split(",");l.tag.accesskeyid=d[0],l.tag.secretaccesskey=d[1],l.tag.lexregion=d[2],l.tag.botname=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.tag.appdata.split(",");l.tag.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.tag.text=d.slice(1,d.length).join(",");break;case"message":l.tag.text=l.tag.appdata;break;case"set":l.tag.name=l.tag.appdata.split("=")[0],l.tag.value=l.tag.appdata.split("=")[1];break;case"agi":l.tag.project=l.tag.appdata;break;default:var c=l.tag.appdata.split(",");l.tag.tag=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outbounddial"===l.tag.appType.toLowerCase()&&(l.tag.prefix=l.tag.phone?l.tag.phone.split("$")[0]:void 0,l.tag.callerId=l.tag.callerID?"CALLERID(all)="+l.tag.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outboundDial"===l.tag.appType&&(l.tag.phone=i.cutdigits?(l.tag.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.tag.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.tag.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.tag.options+="U(xcally-mixmonitor-context)"):l.tag.options=l.tag.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.tags,{name:l.tag.tag});n&&(l.tag.TagId=n.id);if(l.tag.appType&&"custom"===l.tag.appType);else switch((l.tag.app||l.tag.appType).toLowerCase()){case"set":l.tag.appdata=l.tag.name+"="+l.tag.value;break;case"custom":break;default:e[0]=l.tag.tag,l.tag.appdata=e.join(",")}m(l.tag)},l.closeDialog=m,o.hasRole("admin")?s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1008}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.tags,{id:e.resourceId})}),t=null;if(l.tag&&(t=_.find(l.tags,{name:l.tag.tag})),t&&!_.some(n,["id",t.id])){var a=_.find(l.tags,{id:t.id});a.canSelect=!1,n.push(a)}l.tags=n})}else{var t=[],a=null;l.tag&&(a=_.find(l.tags,{name:l.tag.tag}));for(var i=0;i<l.tags.length;i++)a&&l.tags[i].id===a.id&&(l.tags[i].canSelect=!1,t.push(l.tags[i]));l.tags=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtags",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteApptagDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.chatWebsiteChatCannedAnswers=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.chatWebsite.getAnswers(m.query,u).$promise}function g(e){d.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(m.chatWebsiteChatCannedAnswers.rows,{id:e.id}),m.chatWebsiteChatCannedAnswers.count-=1,m.chatWebsiteChatCannedAnswers.rows.length||p(),l.success({title:"ChatCannedAnswer deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETchatWebsite"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.chatWebsite={},m.chatWebsiteChatCannedAnswers={count:0,rows:[]},m.selectedChatWebsiteChatCannedAnswers=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,key,value,description",limit:10,page:1},m.init=function(e,n,t){m.chatWebsite=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.ChatWebsiteId=m.chatWebsite.id,m.query.id=m.chatWebsite.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the chatCannedAnswer?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("chatCannedAnswer #")+e.id||"chatCannedAnswer")+"</b> will be deleted.").ariaLabel("delete chatCannedAnswer").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getChatWebsiteChatCannedAnswers=p,m.createOrEditChatWebsiteChatCannedAnswer=function(e,n){o.show({controller:"CreateOrEditChatCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/chatCannedAnswers/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:m.chatWebsite,chatCannedAnswer:n,chatCannedAnswers:m.chatWebsiteChatCannedAnswers.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedChatWebsiteChatCannedAnswers=function(){var e=angular.copy(m.selectedChatWebsiteChatCannedAnswers);return m.selectedChatWebsiteChatCannedAnswers=[],e},m.deleteChatWebsiteChatCannedAnswer=g,m.deleteSelectedChatWebsiteChatCannedAnswers=function(e){var n=o.confirm().title("Are you sure want to delete the selected chatCannedAnswers?").htmlContent("<b>"+m.selectedChatWebsiteChatCannedAnswers.length+" selected</b> will be deleted.").ariaLabel("delete chatCannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedChatWebsiteChatCannedAnswers.forEach(function(e){g(e)}),m.selectedChatWebsiteChatCannedAnswers=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.chat").controller("ChatWebsiteChatCannedAnswersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CHAT.EDIT_CHATCANNEDANSWER",g.chatCannedAnswer=angular.copy(l),g.chatCannedAnswers=r,g.newChatCannedAnswer=!1,g.chatCannedAnswer||(g.chatCannedAnswer={},g.title="CHAT.NEW_CHATCANNEDANSWER",g.newChatCannedAnswer=!0),n.params.id&&(g.chatCannedAnswer.ChatWebsiteId=n.params.id),g.addNewChatCannedAnswer=function(){g.errors=[],d.cannedAnswer.save(g.chatCannedAnswer).$promise.then(function(e){g.chatCannedAnswers.unshift(e.toJSON()),o.success({title:"ChatCannedAnswer properly created",msg:g.chatCannedAnswer.name?g.chatCannedAnswer.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveChatCannedAnswer=function(){g.errors=[],d.cannedAnswer.update({id:g.chatCannedAnswer.id},g.chatCannedAnswer).$promise.then(function(e){var n=_.find(g.chatCannedAnswers,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"ChatCannedAnswer properly saved!",msg:g.chatCannedAnswer.name?g.chatCannedAnswer.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteChatCannedAnswer=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The chatCannedAnswer will be deleted.").ariaLabel("Delete ChatCannedAnswer").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cannedAnswer.delete({id:g.chatCannedAnswer.id}).$promise.then(function(){_.remove(g.chatCannedAnswers,{id:g.chatCannedAnswer.id}),o.success({title:"ChatCannedAnswer properly deleted!",msg:(g.chatCannedAnswer.name||"chatCannedAnswer")+" has been deleted!"}),v(g.chatCannedAnswer)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","chatCannedAnswers","chatCannedAnswer","api","Auth","license","setting","crudPermissions"],angular.module("app.chat").controller("CreateOrEditChatCannedAnswerDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.dispositions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=l.chatWebsite.getDispositions(m.query,u).$promise}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){p(),d.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.dispositions={count:0,rows:[]},m.selectedDispositions=[],m.crudPermissions,m.levels={first:"1st",second:"2nd",third:"3rd"},m.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},m.init=function(e,n){m.chatWebsite=e||{},m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.ChatWebsiteId=m.chatWebsite.id,m.query.id=m.chatWebsite.id,p()},m.deleteConfirm=function(e,n){var t=_.some(m.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){g(e)})},m.success=u,m.getDispositions=p,m.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:{id:m.chatWebsite.id,field:"ChatWebsiteId",route:"chatWebsite"},license:null,setting:null,crudPermissions:m.crudPermissions}}).then(function(e){e&&p()})},m.deleteDisposition=g,m.exportSelectedDispositions=function(){var e=angular.copy(m.selectedDispositions);return m.selectedDispositions=[],e},m.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:m.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedDispositions.forEach(function(e){g(e)}),m.selectedDispositions=[]})},m.deselectDispositions=function(){m.selectedDispositions=[]},m.selectAllDispositions=function(){m.selectedDispositions=m.dispositions.rows};var v=!0,h=1;e.$watch("vm_dc.query.filter",function(e,n){v?o(function(){v=!1}):(n||(h=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=h),p())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","api","toasty","Auth"],angular.module("app.chat").controller("ChatWebsiteDispositionsController",e)}(),function(){"use strict";function e(t,e,a){var i=this;i.chatWebsite={},i.offlineForm={},i.buttons=[{type:"label",name:"Label",icon:"icon-label"},{type:"chooseFromList",name:"Select",icon:"icon-playlist-plus"},{type:"input",name:"Input",icon:"icon-keyboard"},{type:"textarea",name:"Textarea",icon:"icon-format-text"},{type:"multipleChoices",name:"Radio Buttons",icon:"icon-radiobox-marked"},{type:"checkboxes",name:"Checkboxes",icon:"icon-checkbox-multiple-marked-outline"},{type:"agreement",name:"Agreement",icon:"icon-checkbox-marked-outline"},{type:"upload",name:"Upload",icon:"icon-upload"}],i.init=function(e){i.fields=[],i.customFields=[],i.uselessFields=["id","createdAt","updatedAt","ListId","CompanyId","$promise","$resolved"],i.chatWebsite=e,_.isEmpty(i.chatWebsite.offlineForm)&&(i.chatWebsite.offlineForm={items:[],fromKey:null});a.cmList.getCustomFields({id:i.chatWebsite.ListId}).$promise.then(function(e){for(var n=0;n<e.rows.length;n++)i.customFields.push({key:"cf_"+e.rows[n].id,value:e.rows[n].alias});return a.cmContact.describe().$promise}).then(function(e){for(var n=_.keys(e),t=0;t<n.length;t++)_.includes(i.uselessFields,n[t])||_.startsWith(n[t],"cf_")||i.fields.unshift({key:n[t],value:n[t]});return a.variable.get().$promise}).then(function(e){return i.variables=e.rows,a.mailAccount.get({fields:"id,name",raw:!0}).$promise.then(function(e){i.email_accounts=e.rows})}).catch(function(e){console.error(e)})},i.up=function(e,n){if(0!==n){var t=i.chatWebsite.offlineForm.items[n-1];i.chatWebsite.offlineForm.items[n]=t,i.chatWebsite.offlineForm.items[n-1]=angular.copy(e),i.chatWebsite.offlineForm.fromKey===n?i.chatWebsite.offlineForm.fromKey--:i.chatWebsite.offlineForm.fromKey===n-1&&i.chatWebsite.offlineForm.fromKey++}},i.down=function(e,n){if(n!==i.chatWebsite.offlineForm.items.length-1){var t=i.chatWebsite.offlineForm.items[n+1];i.chatWebsite.offlineForm.items[n]=t,i.chatWebsite.offlineForm.items[n+1]=angular.copy(e),i.chatWebsite.offlineForm.fromKey===n?i.chatWebsite.offlineForm.fromKey++:i.chatWebsite.offlineForm.fromKey===n+1&&i.chatWebsite.offlineForm.fromKey--}},i.add=function(e){i.chatWebsite.offlineForm.items.push({type:e,cmField:null,variable:null})},i.remove=function(e){var n=t.confirm().title("The component will be deleted.").textContent("Are you sure?").ariaLabel("Lucky day").ok("Ok").cancel("Cancel");t.show(n).then(function(){i.chatWebsite.offlineForm.items.splice(e,1)})},i.card_type="offline",i.email_accounts=[]}e.$inject=["$mdDialog","$document","api"],angular.module("app.chat").controller("ChatWebsiteofflineFormController",e)}(),function(){"use strict";function e(t,e,a){var i=this;i.chatWebsite={},i.onlineForm={},i.buttons=[{type:"label",name:"Label",icon:"icon-label"},{type:"chooseFromList",name:"Select",icon:"icon-playlist-plus"},{type:"input",name:"Input",icon:"icon-keyboard"},{type:"textarea",name:"Textarea",icon:"icon-format-text"},{type:"multipleChoices",name:"Radio Buttons",icon:"icon-radiobox-marked"},{type:"checkboxes",name:"Checkboxes",icon:"icon-checkbox-multiple-marked-outline"},{type:"agreement",name:"Agreement",icon:"icon-checkbox-marked-outline"}],i.init=function(e){i.fields=[],i.customFields=[],i.uselessFields=["id","createdAt","updatedAt","ListId","CompanyId","$promise","$resolved"],i.chatWebsite=e,_.isEmpty(i.chatWebsite.onlineForm)&&(i.chatWebsite.onlineForm={items:[],fromKey:null});a.cmList.getCustomFields({id:i.chatWebsite.ListId}).$promise.then(function(e){for(var n=0;n<e.rows.length;n++)i.customFields.push({key:"cf_"+e.rows[n].id,value:e.rows[n].alias});return a.cmContact.describe().$promise}).then(function(e){for(var n=_.keys(e),t=0;t<n.length;t++)_.includes(i.uselessFields,n[t])||_.startsWith(n[t],"cf_")||i.fields.unshift({key:n[t],value:n[t]});return a.variable.get().$promise}).then(function(e){return i.variables=e.rows,a.mailAccount.get({fields:"id,name",raw:!0}).$promise.then(function(e){i.email_accounts=e.rows})}).catch(function(e){console.error(e)})},i.up=function(e,n){if(0!==n){var t=i.chatWebsite.onlineForm.items[n-1];i.chatWebsite.onlineForm.items[n]=t,i.chatWebsite.onlineForm.items[n-1]=angular.copy(e),i.chatWebsite.onlineForm.fromKey===n?i.chatWebsite.onlineForm.fromKey--:i.chatWebsite.onlineForm.fromKey===n-1&&i.chatWebsite.onlineForm.fromKey++}},i.down=function(e,n){if(n!==i.chatWebsite.onlineForm.items.length-1){var t=i.chatWebsite.onlineForm.items[n+1];i.chatWebsite.onlineForm.items[n]=t,i.chatWebsite.onlineForm.items[n+1]=angular.copy(e),i.chatWebsite.onlineForm.fromKey===n?i.chatWebsite.onlineForm.fromKey++:i.chatWebsite.onlineForm.fromKey===n+1&&i.chatWebsite.onlineForm.fromKey--}},i.add=function(e){i.chatWebsite.onlineForm.items.push({type:e,cmField:null,variable:null})},i.remove=function(e){var n=t.confirm().title("The component will be deleted.").textContent("Are you sure?").ariaLabel("Lucky day").ok("Ok").cancel("Cancel");t.show(n).then(function(){i.chatWebsite.onlineForm.fromKey===e&&(i.chatWebsite.onlineForm.fromKey=null),i.chatWebsite.onlineForm.items.splice(e,1),i.chatWebsite.onlineForm.items.length||(i.chatWebsite.onlineForm.fromKey=null)})},i.card_type="online",i.email_accounts=[]}e.$inject=["$mdDialog","$document","api"],angular.module("app.chat").controller("ChatWebsiteonlineFormController",e)}(),function(){"use strict";function e(e,a){var i=this;i.chatWebsite={},i.crudPermissions,i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.chatWebsite.images.unshift(t),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.chatWebsite.images,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e,n){i.chatWebsite=angular.copy(e),i.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.ngFlowOptions.target="/api/chat/websites/:id/customer_avatar".replace(":id",i.chatWebsite.id),i.chatWebsite.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.chat").controller("ChatWebsitecustomerAvatarController",e)}(),function(){"use strict";function e(e,a,n,t,i,s,o,r,l,d,c){var m=this;function u(e){m.chatWebsiteInteractions=e||{count:0,rows:[]};for(var n=0;n<m.chatWebsiteInteractions.rows.length;n+=1){var t=m.chatWebsiteInteractions.rows[n];v(t),t.Owner.name=h(t)}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.chatInteraction.get(m.query,u).$promise}function g(e){d.chatInteraction.delete({id:e.id}).$promise.then(function(){_.remove(m.chatWebsiteInteractions.rows,{id:e.id}),m.chatWebsiteInteractions.count-=1,m.chatWebsiteInteractions.rows.length||p(),l.success({title:"Interaction deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETchatWebsite"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(e){e.Contact?e.contactName=(e.Contact.firstName||"")+" "+(e.Contact.lastName||""):e.contactName=i.instant("DASHBOARDS.UNKNOWN")}function h(e){return e.UserId?e.UserId===m.currentUser.id?i.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">":i.instant("DASHBOARDS.NOT_ASSIGNED")}m.currentUser=c.getCurrentUser(),m.chatWebsite={},m.chatWebsiteInteractions={count:0,rows:[]},m.selectedChatWebsiteInteractions=[],m.crudPermissions,m.query={read:"null",closed:"null",sort:"-createdAt",includeAll:"true",limit:10,page:1},m.init=function(e,n,t){m.chatWebsite=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.ChatWebsiteId=m.chatWebsite.id,m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Customer Ip",column:"customerIp",type:"text",options:{excludedOperators:["$eq","$ne","$startsWith","$endsWith"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},d.tag.get().$promise.then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]})},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the interaction?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("interaction #")+e.id||"interaction")+"</b> will be deleted.").ariaLabel("delete interaction").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.chatInteractionDownload=function(s,e,n){return d.chatInteraction.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="interaction"+s.id,a=new Blob(n,{type:e.type});t="chat-interaction"+s.id+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatWebsite.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getChatWebsiteInteractions=p,m.createOrEditChatWebsiteInteraction=function(e,n){o.show({controller:"CreateOrEditInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/interactions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:m.chatWebsite,interaction:n,interactions:m.chatWebsiteInteractions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.spychatInteraction=function(e,t){o.show({controller:"AgentGeneralInteractionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,onShowing:function(e,n){e.vm.init({id:1,channel:"chat",interaction:t,spy:!0},a.$parent.vm.setting)}})},m.openAdvancedSearch=function(){o.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(r.body),clickOutsideToClose:!1,locals:{fields:m.advancedSearch.fields,color:void 0,storagePath:"chat.chatWebsites"},fullscreen:!0}).then(function(e){if(m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply){var n="";n+="||ChatWebsiteId:=$eq["+m.chatWebsite.id+"]",m.query.search=e.value?e.value+=n:e.value,p()}}).catch(function(e){l.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.exportSelectedChatWebsiteInteractions=function(){var e=angular.copy(m.selectedChatWebsiteInteractions);return m.selectedChatWebsiteInteractions=[],e},m.deleteChatWebsiteInteraction=g,m.deleteSelectedChatWebsiteInteractions=function(e){var n=o.confirm().title("Are you sure want to delete the selected interactions?").htmlContent("<b>"+m.selectedChatWebsiteInteractions.length+" selected</b> will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedChatWebsiteInteractions.forEach(function(e){g(e)}),m.selectedChatWebsiteInteractions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.chat").controller("ChatWebsiteInteractionsController",e)}(),function(){"use strict";function e(e,a){var i=this;i.chatWebsite={},i.crudPermissions,i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.chatWebsite.images.unshift(t),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.chatWebsite.images,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e,n){i.chatWebsite=angular.copy(e),i.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.ngFlowOptions.target="/api/chat/websites/:id/logo".replace(":id",i.chatWebsite.id),i.chatWebsite.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.chat").controller("ChatWebsitelogoController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.chatWebsiteOfflineMessages=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.chatWebsite.getOfflineMessages(m.query,u).$promise}function g(e){d.chatOfflineMessage.delete({id:e.id}).$promise.then(function(){_.remove(m.chatWebsiteOfflineMessages.rows,{id:e.id}),m.chatWebsiteOfflineMessages.count-=1,m.chatWebsiteOfflineMessages.rows.length||p(),l.success({title:"OfflineMessage deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETchatWebsite"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.chatWebsite={},m.chatWebsiteOfflineMessages={count:0,rows:[]},m.selectedChatWebsiteOfflineMessages=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,attachments,Contact.firstName,ContactId,ChatWebsiteId",sort:"-createdAt",limit:10,page:1},m.init=function(e,n,t){m.chatWebsite=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.id=m.chatWebsite.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the offlineMessage?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("offlineMessage #")+e.id||"offlineMessage")+"</b> will be deleted.").ariaLabel("delete offlineMessage").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getChatWebsiteOfflineMessages=p,m.createOrEditChatWebsiteOfflineMessage=function(e,n){o.show({controller:"CreateOrEditOfflineMessageDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/offlineMessages/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:m.chatWebsite,offlineMessage:n,offlineMessages:m.chatWebsiteOfflineMessages.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.showOfflineMessageChatWebsiteOfflineMessage=function(e,t){o.show({controller:"ShowOfflineMessageOfflineMessageDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/offlineMessages/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,resolve:{message:["apiResolver","$stateParams",function(e,n){return e.resolve("chatOfflineMessage@get",{fields:"id,body",id:t.id})}],attachments:["apiResolver","$stateParams",function(e,n){return e.resolve("attachment@get",{fields:"id,name",ChatOfflineMessageId:t.id})}]}})},m.exportSelectedChatWebsiteOfflineMessages=function(){var e=angular.copy(m.selectedChatWebsiteOfflineMessages);return m.selectedChatWebsiteOfflineMessages=[],e},m.deleteChatWebsiteOfflineMessage=g,m.deleteSelectedChatWebsiteOfflineMessages=function(e){var n=o.confirm().title("Are you sure want to delete the selected offlineMessages?").htmlContent("<b>"+m.selectedChatWebsiteOfflineMessages.length+" selected</b> will be deleted.").ariaLabel("delete offlineMessages").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedChatWebsiteOfflineMessages.forEach(function(e){g(e)}),m.selectedChatWebsiteOfflineMessages=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.chat").controller("ChatWebsiteOfflineMessagesController",e)}(),function(){"use strict";function e(n,e,t,a,i){var s=this;s.title="CHAT.OFFLINE_MESSAGE",s.message=a,s.attachments=i.rows,s.closeDialog=function(e){n.hide(e)},s.download=function(i){return e.attachment.download({id:i.id}).$promise.then(function(e){if(e){var n=new Blob([e.buffer],{type:e.type}),t=document.createElement("a"),a=window.URL.createObjectURL(n);t.href=a,t.target="_self",t.download=i.name,document.body.appendChild(t),t.click(),setTimeout(function(){document.body.removeChild(t),window.URL.revokeObjectURL(a)},100)}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"ATTACHMENTS:GET",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.isHtml=_.isNil(s.message.body.match(/\s?<!doctype html>|(<html\b[^>]*>|<body\b[^>]*>|<x-[^>]+>)+/i))}e.$inject=["$mdDialog","api","toasty","message","attachments"],angular.module("app.chat").controller("ShowOfflineMessageOfflineMessageDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.chatWebsiteProactiveActions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.chatWebsite.getProactiveActions(m.query,u).$promise}function g(e){d.chatProactiveAction.delete({id:e.id}).$promise.then(function(){_.remove(m.chatWebsiteProactiveActions.rows,{id:e.id}),m.chatWebsiteProactiveActions.count-=1,m.chatWebsiteProactiveActions.rows.length||p(),l.success({title:"ChatProactiveAction deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETchatWebsite"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.chatWebsite={},m.chatWebsiteProactiveActions={count:0,rows:[]},m.selectedChatWebsiteProactiveActions=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,name,type,selector,timeout",limit:10,page:1},m.arraytype=_.keyBy([{option:"MouseOver",value:"'mouseOver'"},{option:"Timeout",value:"'timeout'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),m.init=function(e,n,t){m.chatWebsite=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.ChatWebsiteId=m.chatWebsite.id,m.query.id=m.chatWebsite.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the chatProactiveAction?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("chatProactiveAction #")+e.id||"chatProactiveAction")+"</b> will be deleted.").ariaLabel("delete chatProactiveAction").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getChatWebsiteProactiveActions=p,m.createOrEditChatWebsiteChatProactiveAction=function(e,n){o.show({controller:"CreateOrEditChatProactiveActionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/proactive/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:m.chatWebsite,chatProactiveAction:n,proactive:m.chatWebsiteProactiveActions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedChatWebsiteProactiveActions=function(){var e=angular.copy(m.selectedChatWebsiteProactiveActions);return m.selectedChatWebsiteProactiveActions=[],e},m.deleteChatWebsiteChatProactiveAction=g,m.deleteSelectedChatWebsiteProactiveActions=function(e){var n=o.confirm().title("Are you sure want to delete the selected proactive?").htmlContent("<b>"+m.selectedChatWebsiteProactiveActions.length+" selected</b> will be deleted.").ariaLabel("delete proactive").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedChatWebsiteProactiveActions.forEach(function(e){g(e)}),m.selectedChatWebsiteProactiveActions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.chat").controller("ChatWebsiteProactiveActionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CHAT.EDIT_CHATPROACTIVEACTION",g.chatProactiveAction=angular.copy(l),g.proactive=r,g.newChatProactiveAction=!1,g.chatProactiveAction||(g.chatProactiveAction={type:"mouseOver"},g.title="CHAT.NEW_CHATPROACTIVEACTION",g.newChatProactiveAction=!0),n.params.id&&(g.chatProactiveAction.ChatWebsiteId=n.params.id),g.addNewChatProactiveAction=function(){g.errors=[],d.chatProactiveAction.save(g.chatProactiveAction).$promise.then(function(e){g.proactive.unshift(e.toJSON()),o.success({title:"ChatProactiveAction properly created",msg:g.chatProactiveAction.name?g.chatProactiveAction.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatProactiveAction.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatProactiveAction.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveChatProactiveAction=function(){g.errors=[],d.chatProactiveAction.update({id:g.chatProactiveAction.id},g.chatProactiveAction).$promise.then(function(e){var n=_.find(g.proactive,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"ChatProactiveAction properly saved!",msg:g.chatProactiveAction.name?g.chatProactiveAction.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatProactiveAction.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatProactiveAction.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteChatProactiveAction=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The chatProactiveAction will be deleted.").ariaLabel("Delete ChatProactiveAction").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.chatProactiveAction.delete({id:g.chatProactiveAction.id}).$promise.then(function(){_.remove(g.proactive,{id:g.chatProactiveAction.id}),o.success({title:"ChatProactiveAction properly deleted!",msg:(g.chatProactiveAction.name||"chatProactiveAction")+" has been deleted!"}),v(g.chatProactiveAction)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatProactiveAction.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatProactiveAction.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","proactive","chatProactiveAction","api","Auth","license","setting","crudPermissions"],angular.module("app.chat").controller("CreateOrEditChatProactiveActionDialogController",e)}(),function(){"use strict";function e(e){var n=this;n.chatWebsite={},n.init=function(e){n.chatWebsite=e,n.start="\n\x3c!-- START Motion Chat Script --\x3e",n.script='\n <script src="'+n.chatWebsite.remote+"/api/chat/websites/"+n.chatWebsite.id+"/snippet?token="+n.chatWebsite.token+'"><\/script>',n.end="\n\x3c!-- START Motion Chat Script --\x3e"},n.info={},e.$watch("vm_ac.chatWebsite.remote",function(e){n.script='\n <script src="'+n.chatWebsite.remote+"/api/chat/websites/"+n.chatWebsite.id+"/snippet?token="+n.chatWebsite.token+'"><\/script>'})}e.$inject=["$scope"],angular.module("app.chat").controller("ChatWebsiteScriptController",e)}(),function(){"use strict";function e(e,a){var i=this;i.chatWebsite={},i.crudPermissions,i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.chatWebsite.images.unshift(t),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.chatWebsite.images,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e,n){i.chatWebsite=angular.copy(e),i.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.ngFlowOptions.target="/api/chat/websites/:id/system_avatar".replace(":id",i.chatWebsite.id),i.chatWebsite.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.chat").controller("ChatWebsitesystemAvatarController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;p.currentUser=d.getCurrentUser(),p.license=s,p.setting=o,p.passwordPattern=p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.location=n.protocol()+"://"+n.host(),p.chatWebsite=c||e.params.chatWebsite||{},p.userProfile=m,p.userProfileSection=u&&1==u.count?u.rows[0]:null,p.crudPermissions=d.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.hasModulePermissions={},p.selectedTab=e.params.tab||0,p.agentadddialog=function(e,n){t.show({controller:"ChatWebsiteagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{chatWebsite:e,chatWebsites:p.chatWebsites?p.chatWebsites.rows:[],crudPermissions:p.crudPermissions,realtime:!1}})},p.alert=l.info,p.gotoChatWebsites=function(){e.go("app.chat.chatWebsites",{},{reload:"app.chat.chatWebsites"})},p.saveChatWebsite=function(){r.chatWebsite.update({id:p.chatWebsite.id},p.chatWebsite).$promise.then(function(){l.success({title:"ChatWebsite updated!",msg:p.chatWebsite.name?p.chatWebsite.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.lists,{id:e.resourceId})}),t=null;if(p.chatWebsite&&(t=_.find(p.lists,{id:Number(p.chatWebsite.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.lists,{id:t.id});a.canSelect=!1,n.push(a)}p.lists=n})}else{var t=[],a=null;p.chatWebsite&&(a=_.find(p.lists,{id:Number(p.chatWebsite.ListId)}));for(var i=0;i<p.lists.length;i++)a&&p.lists[i].id===a.id&&(p.lists[i].canSelect=!1,t.push(p.lists[i]));p.lists=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){p.interval=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){p.interval=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.interval,{id:e.resourceId})}),t=null;if(p.chatWebsite&&(t=_.find(p.interval,{id:Number(p.chatWebsite.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.interval,{id:t.id});a.canSelect=!1,n.push(a)}p.interval=n})}else{var t=[],a=null;p.chatWebsite&&(a=_.find(p.interval,{id:Number(p.chatWebsite.IntervalId)}));for(var i=0;i<p.interval.length;i++)a&&p.interval[i].id===a.id&&(p.interval[i].canSelect=!1,t.push(p.interval[i]));p.interval=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.pauses,{id:e.resourceId})});p.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),p.pauses=n})}else p.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","chatWebsite","userProfile","userProfileSection"],angular.module("app.chat").controller("ChatWebsiteController",e)}(),function(){"use strict";function e(e,o,n,t,a,i,s,r,l,d,c,m,u,p,g,v,h,f){var b=this,A=["userpic","online","lastLoginAt","lastPauseAt","pauseType","lastPauseAt","internal","address","chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","chatCapacity","openchannelCapacity","mailCapacity","smsCapacity","whatsappCapacity","faxCapacity","chatCurrentCapacity","openchannelCurrentCapacity","mailCurrentCapacity","smsCurrentCapacity","whatsappCurrentCapacity","faxCurrentCapacity","chatStatus","openchannelStatus","mailStatus","smsStatus","whatsappStatus","faxStatus","voiceStatus","chatStatusTime","openchannelStatusTime","mailStatusTime","smsStatusTime","whatsappStatusTime","faxStatusTime","voiceStatusTime","queue","destconnectedlinenum","screenrecording","phoneBarEnableScreenRecordingByAgent","phoneBarEnableAutomaticScreenRecording"],E=["chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","online"];for(var y in b.currentUser=v.getCurrentUser(),b.availableStates=["ringing","inuse","busy","onhold","not_inuse"],b.pauses=s||{count:0,rows:[]},b.license=h,b.userProfile=p,b.userProfileSection=g&&1==g.count?g.rows[0]:null,b.crudPermissions=v.parseCrudPermissions(b.userProfileSection?b.userProfileSection.crudPermissions:null),b.agents=r?_.keyBy(r.rows?r.rows:[],"id"):{},b.rpcAgents=l?_.keyBy(l.rows?l.rows:[],"id"):{},b.paginatedAgents={},b.load=!1,b.order=[],b.agentInternal={},b.agents)b.agents.hasOwnProperty(y)&&(b.agents[y].init=!0);b.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},b.logout=function(e,n){return d.user.logout({id:e.id,device:"realtime",agent_id:e.id,agent_name:e.name}).$promise.then(function(){m.success({title:"Agent logout",msg:e.fullname+" properly logout"}),b.agents[e.id]&&(b.agents[e.id].online=!1),b.rpcAgents[e.id]&&(b.rpcAgents[e.id].online=!1),T()}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.queueAdd=function(e,n){t.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:[],channel:"chat",direction:"inbound",crudPermissions:b.crudPermissions}})},b.pause=function(n,e){return d.user.pause({id:n.id,type:e}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.unPause=function(n){return d.user.unpause({id:n.id}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.showInfo=function(e){t.show(t.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},b.getAgentStatus=O,b.getAgentGlobalStatus=w,b.isPause=I,b.checkPause=function(e){return"pause"===e},b.isPartialPause=function(e){return"*pause"===e},b.onSave=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(_.omit(e,E),A)),_.merge(b.rpcAgents[e.id],_.pick(_.omit(e,E),A)),w(b.agents[e.id]))},b.onUpdate=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(e,A)),_.merge(b.rpcAgents[e.id],_.pick(e,A)),e.lastPauseAt&&(b.agents[e.id].globalStatusTime=e.lastPauseAt,b.rpcAgents[e.id].globalStatusTime=e.lastPauseAt),w(b.agents[e.id]))},b.onInit=T,b.onConnect=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(_.merge(b.agents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])),_.merge(b.rpcAgents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])))},b.onComplete=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(b.agents[b.agentInternal[e.destaccountcode]]=_.omit(b.agents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]),b.rpcAgents[b.agentInternal[e.destaccountcode]]=_.omit(b.rpcAgents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]))},b.screenRecording=function(e,n){return d.user.update({id:e.id},{screenrecording:n}).$promise.catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.on("user:save",b.onSave),c.on("user:update",b.onUpdate),c.on("user:agentconnect",b.onConnect),c.on("user:agentcomplete",b.onComplete),T();var S=f(function(){b.load&&(b.load=!1,T())},999);function T(e){b.load=!1;var n,t,a=o.defer();b.promise=a.promise,b.filteredAgents=[],b.order=[],_.forIn(b.agents,function(e,n){b.rpcAgents[n]&&_.merge(e,_.pick(_.omit(b.rpcAgents[n],E),A)),w(e),e.online?(b.filteredAgents.push(e),b.agentInternal[e.internal]=n):e.globalStatusTime=_.toNumber(moment().format("x"))}),b.query.globalStatusFilter&&_.remove(b.filteredAgents,function(e){return e.globalStatus!==b.query.globalStatusFilter}),b.query.pauseTypeFilter&&_.remove(b.filteredAgents,function(e){return e.pauseType!==b.query.pauseTypeFilter}),b.query.filter&&_.remove(b.filteredAgents,function(e){return e.fullname.toLowerCase().indexOf(b.query.filter.toLowerCase())<0}),b.filteredAgents=(n=b.filteredAgents,t=_.startsWith(b.query.order,"-")?"desc":"asc",_.orderBy(n,[b.query.order.replace("-","")],[t]));var i=(b.query.page-1)*b.query.limit;b.paginatedAgents=_.drop(b.filteredAgents,i).slice(0,b.query.limit);for(var s=0;s<b.paginatedAgents.length;s+=1)b.order.push(b.paginatedAgents[s].id);a.resolve(),b.load=!0}function I(e){return"pause"===e||"*pause"===e}function C(e){return"idle"===e||"unknown"===e||"unavailable"===e||"ringing"===e||_.isNil(e)}function O(e,n){return"voice"===n?"idle"!==e[n+"Status"]?e[n+"Status"]:e[n+"Pause"]?e[n+"Status"]="pause":"idle":e[n+"Pause"]?e[n+"Status"]="pause":e[n+"Status"]}function w(e){var n="unknown";n=_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"pause":_.some([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"*pause":_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],C)?"idle":"busy",e.globalStatus!==n&&(e.globalStatus=n,e.init?(e.init=!1,e.globalStatusTime=I(n)?_.toNumber(moment(e.lastPauseAt).format("x")):_.max([e.voiceStatusTime,e.chatStatusTime,e.mailStatusTime,e.smsStatusTime,e.whatsappStatusTime,e.openchannelStatusTime,e.faxStatusTime])):e.globalStatusTime=_.toNumber(moment().format("x")))}e.$on("$destroy",function(){c.removeAllListeners("user:save"),c.removeAllListeners("user:update"),c.removeAllListeners("user:agentconnect"),c.removeAllListeners("user:agentcomplete"),S&&(f.cancel(S),S=null)})}e.$inject=["$scope","$q","$timeout","$mdDialog","$document","$filter","pauses","agents","rpcAgents","api","socket","toasty","helperClasses","userProfile","userProfileSection","Auth","license","$interval"],angular.module("app.voice").controller("AgentsChatRealtimeController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c){var m=this,u=["loggedIn","available","waiting","paused"],p=n(function(){},999);m.currentUser=c.getCurrentUser(),m.queues=i,m.userProfileSection=d&&1==d.count?d.rows[0]:null,m.crudPermissions=c.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={id:c.isUser()?m.currentUser.id:void 0,section:c.isUser()?"ChatQueues":void 0,channel:"chat",sort:"name",limit:10,page:1},m.getQueues=function(){m.query.offset=(m.query.page-1)*m.query.limit,s.realtime.getQueues(m.query).$promise.then(function(e){m.queues=e}).catch(function(e){console.error(e)})},m.editQueue=function(e,n){t.show({controller:"CreateOrEditChatQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatQueue:n,chatQueues:m.queues.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.addAgent=function(e,n){t.show({controller:"ChatQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatQueue:n,chatQueues:m.queues.rows,realtime:!1,crudPermissions:m.crudPermissions}})},o.on("chat_queue:save",function(e){var n=_.find(m.queues.rows,["id",e.id]);n&&_.merge(n,_.pick(e,u))}),o.on("userChatQueue:save",function(e){var n=_.find(m.queues.rows,["id",e.ChatQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),o.on("userChatQueue:remove",function(e){var n=_.find(m.queues.rows,["id",e.ChatQueueId]);n&&(0<n.loggedInDb&&n.loggedInDb--,_.remove(n.agents,["id",e.UserId]))}),o.on("user:update",function(t){m.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&(!1===t.online?(n.online=!1,e.loggedInDb-=1,n.paused?(n.paused=!1,e.paused-=1):e.available-=1):n.online?t.chatPause?(n.paused=!0,e.paused+=1,e.available-=1):!t.chatPause&&n.paused&&(n.paused=!1,e.paused-=1,e.available+=1):(n.online=!0,e.loggedInDb+=1,e.available+=1))})}),e.$on("$destroy",function(){o.removeAllListeners("chat_queue:save"),o.removeAllListeners("userChatQueue:remove"),o.removeAllListeners("userChatQueue:save"),o.removeAllListeners("user:update"),p&&n.cancel(p)})}e.$inject=["$scope","$mdDialog","$document","$interval","queues","api","socket","toasty","userProfile","userProfileSection","Auth"],angular.module("app.chat").controller("QueuesChatRealtimeController",e)}(),function(){"use strict";angular.module("app.auth").factory("helperClasses",function(){return{status:{registered:"green-300-fg icon-checkbox-marked-circle",unregistered:"red-300-fg icon-close-circle",lagged:"red-300-fg icon-close-circle",reachable:"green-300-fg icon-checkbox-marked-circle",unreachable:"red-300-fg icon-close-circle",unknown:"grey-fg icon-minus-circle"},state:{unknown:"grey-fg icon-phone-hangup",not_inuse:"green-300-fg icon-phone-hangup",inuse:"red-300-fg icon-phone-in-talk",busy:"red-300-fg icon-phone-locked",invalid:"grey-fg icon-phone-hangup",unavailable:"grey-fg icon-phone-hangup",ringing:"blue-300-fg icon-phone-incoming",ringinuse:"blue-300-fg icon-phone-incoming",onhold:"blue-300-fg icon-phone-paused"},channelStatus:{ring:"blue-300-fg icon-phone-incoming",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"},channelStatusOut:{ring:"blue-300-fg icon-phone-outgoing",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"}}})}(),function(){"use strict";function e(e,t,n){switch(n.disconnect(),n.connect(),this.selectedTab=0,t.current.name){case"app.chat.realtime.agents":this.selectedTab=0;break;case"app.chat.realtime.queues":this.selectedTab=1;break;default:this.selectedTab=0,t.go("app.chat.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.chat.realtime.agents");break;case 1:t.go("app.chat.realtime.queues");break;default:t.go("app.chat.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.chat").controller("ChatRealtimeController",e)}(),function(){"use strict";function e(e,n,a,t,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.companies=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="companies",f.listOrder="",f.listOrderAsc=null,f.selectedCompanies=[],f.query={fields:"createdAt,updatedAt,id,name,phone,vat,fax,companyId,type,website,emailDomain,email,description,sStreet,sPostalCode,sCity,sCountry,street,postalCode,city,country",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){a.go("app.contactmanager.companies.edit",{id:e.id,company:e,crudPermissions:f.crudPermissions})},f.gotocontactsgoto=function(t,e){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:303}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?a.go("app.contactmanager.contacts",{CompanyId:t.id}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});a.go("app.contactmanager.contacts",{CompanyId:t.id})}},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("company")+"?").htmlContent("<b>"+(e.name||"company")+"</b> will be deleted.").ariaLabel("delete company").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getCompanies=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.cmCompany.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Companies",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditCompany=function(e,n){i.show({controller:"CreateOrEditCompanyDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/companies/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{company:n,companies:f.companies.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteCompany=y,f.exportSelectedCompanies=function(){var e=angular.copy(f.selectedCompanies);return f.selectedCompanies=[],e},f.deleteSelectedCompanies=function(e){var n=i.confirm().title("Are you sure want to delete the selected companies?").htmlContent("<b>"+f.selectedCompanies.length+" selected</b> will be deleted.").ariaLabel("delete Companys").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedCompanies.forEach(function(e){y(e)}),f.selectedCompanies=[]})},f.deselectCompanies=function(){f.selectedCompanies=[]},f.selectAllCompanies=function(){f.selectedCompanies=f.companies.rows};var b=!0,A=1;function E(e){f.companies=e||{count:0,rows:[]}}function y(e){m.cmCompany.delete({id:e.id}).$promise.then(function(){_.remove(f.companies.rows,{id:e.id}),f.companies.count-=1,f.companies.rows.length||f.getCompanies(),p.success({title:_.startCase("Company")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEcmCompany"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEcmCompany",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getCompanies())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","companies","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.contactmanager").controller("CompaniesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CONTACTMANAGER.EDIT_COMPANY",g.company=angular.copy(l),g.companies=r,g.newCompany=!1,g.company||(g.company={},g.title="CONTACTMANAGER.NEW_COMPANY",g.newCompany=!0),g.addNewCompany=function(){g.errors=[],d.cmCompany.save(g.company).$promise.then(function(e){g.companies.unshift(e.toJSON()),o.success({title:"Company properly created",msg:g.company.name?g.company.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCompany.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCompany.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveCompany=function(){g.errors=[],d.cmCompany.update({id:g.company.id},g.company).$promise.then(function(e){var n=_.find(g.companies,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Company properly saved!",msg:g.company.name?g.company.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCompany.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCompany.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteCompany=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The company will be deleted.").ariaLabel("Delete Company").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cmCompany.delete({id:g.company.id}).$promise.then(function(){_.remove(g.companies,{id:g.company.id}),o.success({title:"Company properly deleted!",msg:(g.company.name||"company")+" has been deleted!"}),v(g.company)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCompany.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCompany.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","companies","company","api","Auth","license","setting","crudPermissions"],angular.module("app.contactmanager").controller("CreateOrEditCompanyDialogController",e)}(),function(){"use strict";function e(a,e,n,t,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=e.protocol()+"://"+e.host(),u.company=c||a.params.company||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=a.params.tab||0,u.gotogoto=function(t,e){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:303}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?a.go("app.contactmanager.contacts",{CompanyId:t.id}):l.info({title:i.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:i.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});a.go("app.contactmanager.contacts",{CompanyId:t.id})}},u.alert=l.info,u.gotoCompanies=function(){a.go("app.contactmanager.companies",{},{reload:"app.contactmanager.companies"})},u.saveCompany=function(){r.cmCompany.update({id:u.company.id},u.company).$promise.then(function(){l.success({title:"Company updated!",msg:u.company.name?u.company.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmCompany",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","company","userProfileSection"],angular.module("app.contactmanager").controller("CompanyController",e)}(),function(){"use strict";function e(n,i,t,a,e,s,o,r,l,d,c,m,u,p,g,v,h,f,b){var A=this;A.currentUser=f.getCurrentUser(),A.license=b,A.userProfile=r,A.userProfileSection=l&&1==l.count?l.rows[0]:null,A.crudPermissions=f.parseCrudPermissions(A.userProfileSection?A.userProfileSection.crudPermissions:null);var E=60,y=1024*E*1024;A.ngFlowOptions={target:"api/cm/contacts/upload",singleFile:!0,maxChunkRetries:1,chunkSize:y,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},A.contacts=c||{count:0,rows:[]},A.options={hidden:!1,hover:!1,isOpen:!1},A.table="cm_contacts",A.selectedContacts=[],A.lists=m||{rows:[],count:0},A.companies=p||{rows:[],count:0},A.tags=v||{rows:[],count:0},A.listsMap=u,A.companiesMap=g,A.selectedTags=[],A.selectedList=null,A.selectedCompany=null,A.query=_.merge({includeAll:!0,sort:"-updatedAt",limit:10,offset:0,page:1},e),A.editdialog=function(e,n){a.go("app.contactmanager.contacts.edit",{id:e.id,crudPermissions:A.crudPermissions})},A.deleteconfirm=function(e,n){var t=s.confirm().title("Are you sure want to delete the contact?").htmlContent("<b>"+(e.firstName||e.email||e.phone||"Contact")+"</b> will be deleted.").ariaLabel("delete contact").targetEvent(n).ok("OK").cancel("CANCEL");s.show(t).then(function(){C(e)})},A.success=I,A.getContacts=function(){A.query.offset=(A.query.page-1)*A.query.limit,f.hasRole("admin")?A.promise=d.cmContact.get(A.query,I).$promise:(A.query.id=A.userProfile.id,A.query.ListId=A.query.ListId?A.query.ListId:_.map(A.lists.rows,"id"),A.query.CompanyId=A.query.CompanyId?A.query.CompanyId:_(A.companies.rows).filter({canSelect:void 0}).map("id").value(),A.query.section="Contacts",A.promise=d.userProfile.getResources(A.query,I).$promise)},A.getAssignedCompanies=function(){if(!f.hasRole("admin")){var e=_(A.contacts.rows).map(function(e){return{id:e.CompanyId}}).uniqBy("id").filter(function(e){return e.id&&0<e.id}).pullAllBy(A.companies.rows,"id").value();if(!_.isEmpty(e)){var n=[];e.forEach(function(e){n.push(d.cmCompany.get({id:e.id,fields:"id,name"}).$promise)}),o.all(n).then(function(e){e.forEach(function(e){var n=e.toJSON();n.canSelect=!1,A.companies.rows.push(n);var t={};t[n.id]=n.name,A.companiesMap=_.assignIn(A.companiesMap,t)})}).catch(function(e){h.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_COMPANY",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}}},A.mergeContact=function(e,n){s.show({controller:"MergeContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/merge/dialog.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:n.id})}],lists:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmList@get",{fields:"id,name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Lists",fields:"id,name",nolimit:!0})}]},locals:{contacts:A.contacts.rows}})},A.duplicateContact=function(e,n){s.show({controller:"DuplicateContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/duplicate/dialog.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:n.id})}],lists:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmList@get",{fields:"id,name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Lists",fields:"id,name",nolimit:!0})}]},locals:{contacts:A.contacts.rows}})},A.createOrEditContact=function(e,n){n&&n.dateOfBirth&&(n.dateOfBirth=new Date(n.dateOfBirth));s.show({controller:"CreateOrEditContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/create/dialog.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,locals:{ListId:A.query.ListId||a.params.ListId,CompanyId:A.query.CompanyId||a.params.CompanyId,contact:n,contacts:A.contacts.rows,companies:A.companies,lists:A.lists,setting:null,crudPermissions:A.crudPermissions}})},A.deleteContact=C,A.exportSelectedContacts=function(){var e=angular.copy(A.selectedContacts);return A.selectedContacts=[],e},A.deleteSelectedContacts=function(e){var n=s.confirm().title("Are you sure want to delete the selected contacts?").htmlContent("<b>"+A.selectedContacts.length+" selected</b> will be deleted.").ariaLabel("delete Contacts").targetEvent(e).ok("OK").cancel("CANCEL");s.show(n).then(function(){A.selectedContacts.forEach(function(e){C(e)}),A.selectedContacts=[]})},A.deselectContacts=function(){A.selectedContacts=[]},A.selectAllContacts=function(){A.selectedContacts=A.contacts.rows},A.createTag=function(e){var n=s.prompt().title("What would you name your tag?").placeholder("Tag name").ariaLabel("Tag name").targetEvent(e).ok("Ok").cancel("Cancel");return s.show(n).then(function(e){if(e)return d.tag.save({name:e});h.error({title:"Error creating tag!",msg:"Invalid tag name."})}).then(function(e){e&&(A.tags.rows.push(e),h.success({title:"Tag properly created!",msg:e.tag?e.name+" has been created!":""}))})},A.createList=function(e){var n=s.prompt().title("What would you name your list?").placeholder("List name").ariaLabel("List name").targetEvent(e).ok("Ok").cancel("Cancel");return s.show(n).then(function(e){if(e)return d.cmList.save({name:e});h.error({title:"Error creating list!",msg:"Invalid list name."})}).then(function(e){e&&(A.lists.rows.push(e),h.success({title:"List properly created!",msg:e.name?e.name+" has been created!":""}))})},A.createCompany=function(e){var n=s.prompt().title("What would you name your company?").placeholder("Company name").ariaLabel("Company name").targetEvent(e).ok("Ok").cancel("Cancel");return s.show(n).then(function(e){if(e)return d.cmCompany.save({name:e});h.error({title:"Error creating company!",msg:"Invalid company name."})}).then(function(e){e&&(A.companies.rows.push(e),h.success({title:"Company properly created!",msg:e.name?e.name+" has been created!":""}))})},A.importContacts=function(e,n,t){var a=JSON.parse(n);s.show({controller:"ImportContactsDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/import/import.html",parent:angular.element(i.body),clickOutsideToClose:!1,locals:{lists:m,companies:p,file:a.file,fields:a.fields,license:A.license}}).then(function(){A.getContacts()}).catch(function(e){console.error()})},A.hasPermission=function(){return f.hasPermission(303)||f.hasRole("admin")},A.fileAdded=function(e){var n=["csv"];if(!_.includes(n,e.getExtension()))return h.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(e.size>y)return h.error({title:"File too big",msg:"The max allowed size is "+E+"MB"}),!1;return!0},a.params.ListId&&(A.selectedList=a.params.ListId),a.params.CompanyId&&(A.selectedCompany=a.params.CompanyId),n.$watch("vm.options.isOpen",function(e){e?t(function(){n.tooltipVisible=A.options.isOpen},600):n.tooltipVisible=A.options.isOpen});var S=!0,T=1;function I(e){A.contacts=e||{count:0,rows:[]}}function C(e){d.cmContact.delete({id:e.id}).$promise.then(function(){_.remove(A.contacts.rows,{id:e.id}),A.contacts.count-=1,A.contacts.rows.length||A.getContacts(),h.success({title:"Contact deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){A.errors=e.data.errors||[{message:e.toString(),type:"api.contact.delete"}];for(var n=0;n<e.data.errors.length;n++)h.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else h.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contact.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}n.$watch("vm.query.filter",function(e,n){S?t(function(){S=!1}):(n||(T=A.query.page),e!==n&&(A.query.page=1),e||(A.query.page=T),A.getContacts())},!0),n.$watch("vm.selectedList",function(e,n){e!==n&&(A.query.ListId=A.selectedList||void 0,A.getContacts())}),n.$watch("vm.selectedCompany",function(e,n){e!==n&&(A.query.CompanyId=A.selectedCompany||void 0,A.getContacts())}),n.$watch("vm.selectedTags",function(e,n){(e.length||n.length)&&A.getContacts()})}e.$inject=["$scope","$document","$timeout","$state","$stateParams","$mdDialog","$q","userProfile","userProfileSection","api","contacts","lists","listsMap","companies","companiesMap","tags","toasty","Auth","license"],angular.module("app.contactmanager").controller("ContactsController",e)}(),function(){"use strict";function e(t,a,e,n,i,s,o,r,l,d){var c=this;function m(){t.hide()}c.errors=[],c.title="CONTACTMANAGER.EDIT_CONTACT",c.crudPermissions=d,c.contact=angular.copy(s),c.contacts=e||{rows:[],count:0},c.lists=n||{rows:[],count:0},c.companies=i||{rows:[],count:0},c.customFields={rows:[],count:0},c.newContact=!1,c.contact?(delete c.contact.List,c.ListId=c.contact.ListId||void 0):(c.contact={ListId:o?parseInt(o,10):void 0,CompanyId:r?parseInt(r,10):void 0},c.title="CONTACTMANAGER.NEW_CONTACT",c.newContact=!0),c.addNewContact=function(){c.errors=[],l.cmContact.save(c.contact).$promise.then(function(e){c.contacts.unshift(e),a.success({title:"Contact properly created",msg:c.contact.name?c.contact.name+" has been created!":""}),m()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.user.save"}];for(var n=0;n<e.data.errors.length;n++)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contacts.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.saveContact=function(){c.errors=[],l.cmContact.update({id:c.contact.id},c.contact).$promise.then(function(e){var n=_.find(c.contacts,{id:e.id});n&&_.merge(n,e),a.success({title:"Contact properly saved!",msg:c.contact.name?c.contact.name+" has been saved!":""}),m()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.contact.update"}];for(var n=0;n<e.data.errors.length;n++)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contact.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.deleteContact=function(e){c.errors=[];var n=t.confirm().title("Are you sure?").content("The contact will be deleted.").ariaLabel("Delete Contact").ok("Delete").cancel("Cancel").targetEvent(e);t.show(n).then(function(){l.cmContact.delete({id:c.contact.id}).$promise.then(function(){_.remove(c.contacts,{id:c.contact.id}),a.success({title:"Contact properly deleted!",msg:c.contact.name?c.contact.name+" has been deleted!":""}),m()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.contact.delete"}]})},function(){})},c.closeDialog=m,c.getCustomFields=function(e){{if(e)return l.cmList.getCustomFields({id:e}).$promise.then(function(e){if(e){c.customFields=e;var n=_.map(c.customFields.rows,function(e){return"cf_"+e.id});l.cmContact.get({id:c.contact.id,attributes:n,raw:!0}).$promise.then(function(e){c.contact=_.merge(c.contact,e)})}}).catch(function(e){console.error(e)});c.customFields={rows:[],count:0}}},c.getDateFromString=function(e){return null===e?void 0:new Date(e)}}e.$inject=["$mdDialog","toasty","contacts","lists","companies","contact","ListId","CompanyId","api","crudPermissions"],angular.module("app.tools").controller("CreateOrEditContactDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this;function r(){e.hide()}o.errors=[],o.title="CONTACTMANAGER.COPY_CONTACT",o.contact=angular.copy(t),o.lists=i||{rows:[],count:0},o.addNewContact=function(){o.errors=[],delete o.contact.id,o.contact.tags&&!o.contact.tags.length&&delete o.contact.tags;s.cmContact.save(o.contact).$promise.then(function(e){a.unshift(e),n.success({title:"Contact properly created",msg:o.contact.name?o.contact.name+" has been created!":""}),r()}).catch(function(e){console.error(e),o.errors=e.data.errors||[{message:e.toString(),type:"api.contact.save"}]})},o.closeDialog=r}e.$inject=["$mdDialog","toasty","contact","contacts","lists","api"],angular.module("app.tools").controller("DuplicateContactDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l){var d=this;function c(e){a.hide(e)}d.errors=[],d.title="CONTACTMANAGER.EDIT_HOPPER",d.hopper=angular.copy(o),d.hoppers=s,d.newHopper=!1,d.crudPermissions=l,d.hopper||(d.hopper={},d.title="CONTACTMANAGER.NEW_HOPPER",d.newHopper=!0),d.saveHopper=function(){d.errors=[],r.cmHopper.update({id:d.hopper.id},d.hopper).$promise.then(function(e){var n=_.find(d.hoppers,{id:e.id});n&&_.merge(n,e),i.success({title:"Hopper properly saved!",msg:d.hopper.name?d.hopper.name+" has been saved!":""}),c(e)}).catch(function(e){console.error(e),d.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.update"}]})},d.getDateFromString=function(e){return null===e?void 0:new Date(e)},d.closeDialog=c}e.$inject=["$scope","$state","$location","$mdDialog","toasty","hoppers","hopper","api","crudPermissions"],angular.module("app.contactmanager.contacts").controller("EditHopperDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m,u,p,g,v,h,f,b,A,E,y){var S=this;function T(n){return function(e){S[n]=e||{count:0,rows:[]}}}function I(){S.queryHopper.offset=(S.queryHopper.page-1)*S.queryHopper.limit,S.queryHopper.id=S.contact.id,S.promise=r.cmContact.getHoppers(S.queryHopper,T("hoppers")).$promise}function C(){S.queryFinal.offset=(S.queryFinal.page-1)*S.queryFinal.limit,S.queryFinal.id=S.contact.id,S.promise=r.cmContact.getHopperFinals(S.queryFinal,T("finals")).$promise}function O(){S.queryHistory.offset=(S.queryHistory.page-1)*S.queryHistory.limit,S.queryHistory.id=S.contact.id,S.promise=r.cmContact.getHopperHistories(S.queryHistory,T("histories")).$promise}function w(e){S.journeyIsLoading=!0;var n=_.merge(S.journeyOptions,{id:S.contact.id,offset:e||0});return y.get(S.journey,n).then(function(e){S.journey=e.journey,S.canLoadMoreJourney=e.loadMore}).finally(function(){S.journeyIsLoading=!1})}S.currentUser=A.getCurrentUser(),S.license=b,S.journey=[],S.contact=l||{},S.hoppers=d||{rows:[],count:0},S.finals=c||{rows:[],count:0},S.histories=m||{rows:[],count:0},S.companies=p||{rows:[],count:0},S.lists=g||{rows:[],count:0},S.customFields=v||{rows:[],count:0},S.tags=h||{rows:[],count:0},S.jscriptySessions=f||{rows:[],count:0},S.journeyOptions=y.getQuery(),S.quickFilters=y.getQuickFilters(),S.journeyTimelineOptions={scrollEl:"#journey-content"},S.userProfileSection=E&&1==E.count?E.rows[0]:null,S.crudPermissions=A.parseCrudPermissions(S.userProfileSection?S.userProfileSection.crudPermissions:null),S.arraypriority=_.keyBy([{option:"Highest",value:"'4'"},{option:"High",value:"'3'"},{option:"Medium",value:"'2'"},{option:"Low",value:"'1'"},{option:"Lowest",value:"'0'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),S.queryHopper={fields:"id,phone,scheduledat,priority,recallme,VoiceQueueId,CampaignId,UserId",sort:"-updatedAt",limit:10,page:1},S.queryFinal={fields:"id,uniqueid,calleridnum,statedesc,starttime,disposition",sort:"-id",limit:10,page:1},S.queryHistory={fields:"id,uniqueid,calleridnum,statedesc,scheduledat,starttime,endtime",sort:"-id",limit:10,page:1},S.queryJscriptySession={fields:"id,starttime,endtime,membername,projectname",sort:"-starttime",limit:10,page:1},S.selectedTab=n.params.tab||0,S.onInit=function(){A.hasRole("admin")||(function(){if(!_.some(S.companies.rows,{id:S.contact.CompanyId}))r.cmCompany.get({id:S.contact.CompanyId,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,S.companies.rows.push(n)}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_COMPANY",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}(),function(){var e=_.map(S.contact.Tags,function(e){return{id:e.id,name:e.name}});if(!_.isEmpty(e))for(var n=0;n<e.length;n++)_.some(S.tags.rows,{id:e.id})||(e[n].canSelect=!1,S.tags.rows.push(e[n]))}());return r.user.get({fields:"id,fullname",nolimit:!0}).$promise.then(function(e){S.users=e||{count:0,rows:[]},S.usersMap=_.mapValues(_.keyBy(S.users.rows,"id"),"fullname"),S.Tags=_.map(S.contact.Tags,"id")}).finally(function(){S.contact&&w()})},S.gotoContacts=function(){n.go("app.contactmanager.contacts",{},{reload:!0,notify:!0})},S.duplicateContact=function(e){i.show({controller:"DuplicateContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/duplicate/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,resolve:{lists:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmList@get",{fields:"id,name"}):e.resolve("userProfile@getResources",{id:S.currentUser.userProfileId,section:"Lists",fields:"id,name"})}]},locals:{contacts:u.rows,contact:l}})},S.saveContact=function(){r.cmContact.update({id:S.contact.id},S.contact).$promise.then(function(){o.success({title:"Contact updated!",msg:S.contact.name?S.contact.name+" has been updated!":""})}).then(function(){return r.cmContact.setTags({id:S.contact.id,ids:S.Tags}).$promise}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEcontact",msg:e.data?JSON.stringify(e.data):e.toString()})})},S.editCompany=function(e,n){var t=_.find(S.companies.rows,{id:n});i.show({controller:"CreateOrEditCompanyDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/companies/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{companies:[],license:null,setting:null,crudPermissions:!1===t.canSelect?{readOnly:!0,canEdit:!1,canDelete:!1}:r.userProfileSection.get({userProfileId:S.currentUser.userProfileId,sectionId:302}).$promise.then(function(e){var n=e.rows?e.rows[0]:null;return A.parseCrudPermissions(n?n.crudPermissions:null)}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"API:GET_COMPANY_SECTION",msg:e.data?JSON.stringify(e.data):e.toString()})})},resolve:{company:["apiResolver",function(e){return e.resolve("cmCompany@get",{id:n})}]}})},S.onSelectList=function(e){if(S.contact.ListId){var n=i.confirm().title("You are selecting the list number: "+S.contact.ListId).textContent("Warning! You won't select a different list for the contact "+S.contact.firstName||S.contact.lastName||S.contact.id).targetEvent(e).ok("Ok").cancel("Cancel");return i.show(n).then(S.onSelectListSuccess).catch(function(){S.contact.ListId=null})}},S.onSelectListSuccess=function(){return r.cmList.getCustomFields({id:S.contact.ListId}).$promise.then(function(e){S.customFields=e||{rows:[],count:0}}).catch(function(e){console.error(e)})},S.getDateFromString=function(e){return null===e?void 0:new Date(e)},S.getHoppers=I,S.getFinals=C,S.getHistories=O,S.getJscriptySessions=function(){S.queryJscriptySession.offset=(S.queryJscriptySession.page-1)*S.queryJscriptySession.limit,S.queryJscriptySession.id=S.contact.id,S.promise=r.cmContact.getJscriptySessions(S.queryJscriptySession,T("jscriptySessions")).$promise},S.deleteconfirm=function(n,e){var t=i.confirm().title("Are you sure want to delete the agent?").htmlContent("<b>"+(n.phone||"hopper")+"</b> will be deleted.").ariaLabel("delete hopper").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){var e;e=n,r.cmHopper.delete({id:e.id}).$promise.then(function(){_.remove(S.hoppers.rows,{id:e.id}),S.hoppers.count--,S.hoppers.rows.length||S.getHoppers(),o.success({title:"Hopper deleted!",msg:e.phone?e.phone+" has been deleted!":""})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEhopper",msg:e.data?JSON.stringify(e.data):e.toString()})})},function(){console.log("CANCEL")})},S.editHopper=function(e,n){i.show({controller:"CreateOrEditHopperVoiceQueueIdDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hoppers/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{hopper:n,hoppers:S.hoppers.rows,license:null,setting:null,crudPermissions:S.crudPermissions}})},S.createOrEditIvrCampaignHopper=function(e,n){i.show({controller:"CreateOrEditHopperCampaignIdDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hoppers/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{hopper:n,hoppers:S.hoppers.rows,license:null,setting:null,crudPermissions:S.crudPermissions}})},S.getCustomerJourney=w,S.loadMoreJourney=function(){return s(function(e,n){var t=S.journey.length;return e(w(t))})};var R=!0,x=1;e.$watch("vm.queryHopper.filter",function(e,n){R?t(function(){R=!1}):(n||(x=S.queryHopper.page),e!==n&&(S.queryHopper.page=1),e||(S.queryHopper.page=x),I())}),e.$watch("vm.queryFinal.filter",function(e,n){R?t(function(){R=!1}):(n||(x=S.queryFinal.page),e!==n&&(S.queryFinal.page=1),e||(S.queryFinal.page=x),C())}),e.$watch("vm.queryHistory.filter",function(e,n){R?t(function(){R=!1}):(n||(x=S.queryHistory.page),e!==n&&(S.queryHistory.page=1),e||(S.queryHistory.page=x),O())})}e.$inject=["$scope","$timeout","$state","$document","$mdDialog","$q","toasty","api","contact","hoppers","finals","histories","contacts","companies","lists","customFields","tags","jscriptySessions","license","Auth","userProfileSection","customerJourneyManager"],angular.module("app.contactmanager.contacts").controller("ContactController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;g.processing=!1,g.stopping=!0,g.license=p,g.pid=0,g.result={finish:!1,rows:0,affectedRows:0,failedRows:0,duplicatedRows:0,errors:[]},g.contactFields=[{key:"firstName",required:!0},{key:"lastName",required:!1},{key:"phone",required:!0},{key:"mobile",required:!1},{key:"email",required:!1},{key:"dateOfBirth",required:!1},{key:"country",required:!1},{key:"city",required:!1},{key:"street",required:!1},{key:"postalCode",required:!1},{key:"fax",required:!1}],g.motionBullFields=[{key:"UserId",required:!1},{key:"scheduledat",required:!1},{key:"priority",required:!1}],g.binding={},g.duplicate=[],g.lists=s||{rows:[],count:0},g.companies=o||{rows:[],count:0},g.customFields={rows:[],count:0},g.fields=u||[],g.closeDialog=function(){d.removeAllListeners("contact:import:"+v),n.hide()},g.onChangeList=function(){return l.cmList.getCustomFields({id:g.ListId}).$promise.then(function(e){g.customFields=e}).catch(function(e){console.error(e)})},g.uploadCsv=function(){g.processing=moment(),l.cmContact.import({id:m.filename,binding:g.binding,ListId:g.ListId,CompanyId:g.CompanyId,duplicates:g.duplicates,socket_timestamp:v}).$promise.then(function(e){g.stopping=!1,e&&e.pid&&(g.pid=e.pid)}).catch(function(e){g.processing=!1,r.error({title:"Import process failed!",msg:"Please retry with a new file"})})},g.getHeaderErrors=function(){var e=u;return e.push("contact_import_error"),e},g.getArrayErrors=function(){for(var e=[],n=0;n<g.result.errors.length;n+=1){var t=g.result.errors[n].row;t.contact_import_error=g.result.errors[n].message,e.push(t)}return e},g.stopUpload=function(){if(g.stopping=!0,g.pid)return l.system.killProcess({pid:g.pid}).$promise.then(function(e){r.success({title:"CSV import process stopped!",msg:"Import has been stopped!"})}).catch(function(e){r.error({title:"CSV stop import process failed!",msg:"pid is unknown"})})};var v=moment().unix();d.on("contact:import:"+v,function(t){i(function(){if(g.result.rows=t.rows,t.errors)for(var e=0;e<t.errors.length;e++)g.result.errors.push(t.errors[e]);if(t.finish){g.result.finish=!0,g.result.affectedRows=t.affectedRows,g.result.failedRows=g.result.errors.length;var n=g.result.rows-g.result.affectedRows-g.result.errors.length;n&&0<n&&(g.duplicates.length?g.result.duplicatedRows=n:g.result.failedRows+=n),g.result.elapsed=moment().diff(g.processing,"seconds")}})}),c.$on("$destroy",function(){d.removeAllListeners("contact:import:"+v)})}e.$inject=["$cookies","$mdDialog","$interval","$q","$timeout","lists","companies","toasty","api","socket","$scope","file","fields","license"],angular.module("app.tools").controller("ImportContactsDialogController",e)}(),function(){"use strict";function e(i,e,s,n,o,t,r){var a=this;a.errors=[],a.title="CONTACTMANAGER.MERGE_CONTACT",a.contact=angular.copy(n),a.lists=t||[],a.change=function(){a.searchTerm?r.cmContact.get({fields:"id,firstName,lastName,phone,email",filter:a.searchTerm,ListId:n.ListId}).$promise.then(function(e){a.contacts=e.rows}).catch(function(e){console.error(e)}):a.contacts=[]},a.showConfirm=function(e,n,t){var a=i.confirm({skipHide:!0}).title("Would you like to merge your contacs?").textContent("All unfilled values of the contact #"+t.id+" will be overwritten by the fields of the contact #"+n.id+".").targetEvent(e).ok("Ok").cancel("Cancel");i.show(a).then(function(){return r.cmContact.merge({to:t.id,from:n.id}).$promise}).then(function(e){i.hide({new:e,to:t,from:n}),_.remove(o,{id:t.id}),_.remove(o,{id:n.id}),o.unshift(e)}).then(function(){s.success({title:"Contact properly merged!"})}).catch(function(e){e&&e.status&&s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:MERGE_CONTACT",msg:e.data?JSON.stringify(e.data):e.toString()})})},a.closeDialog=function(){i.hide()}}e.$inject=["$mdDialog","$scope","toasty","contact","contacts","lists","api"],angular.module("app.tools").controller("MergeContactDialogController",e)}(),function(){"use strict";function e(a,e,n,t,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){t.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CONTACTMANAGER.EDIT_GLOBALCUSTOMFIELD",g.sortable={animation:800,sort:!0,onSort:function(e){a.globalCustomFieldForm.$pristine=!1}},g.globalCustomField=l,g.globalCustomFields=r,g.newGlobalCustomField=!1,g.globalCustomField||(g.globalCustomField={type:"text",actionType:"voice"},g.title="CONTACTMANAGER.NEW_GLOBALCUSTOMFIELD",g.newGlobalCustomField=!0),a.$watch("vm.globalCustomField.type",function(e,n){if(e!==n)switch(e){case"text":g.globalCustomField.values="";break;case"select":g.globalCustomField.values=[]}}),g.addNewGlobalCustomField=function(){g.errors=[],d.cmCustomField.save(g.globalCustomField).$promise.then(function(e){g.globalCustomFields.unshift(e.toJSON()),o.success({title:"GlobalCustomField properly created",msg:g.globalCustomField.name?g.globalCustomField.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCustomField.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveGlobalCustomField=function(){g.errors=[],d.cmCustomField.update({id:g.globalCustomField.id},g.globalCustomField).$promise.then(function(e){var n=_.find(g.globalCustomFields,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"GlobalCustomField properly saved!",msg:g.globalCustomField.name?g.globalCustomField.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCustomField.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteGlobalCustomField=function(e){g.errors=[];var n=t.confirm().title("Are you sure?").content("The globalCustomField will be deleted.").ariaLabel("Delete GlobalCustomField").ok("Delete").cancel("Cancel").targetEvent(e);t.show(n).then(function(){d.cmCustomField.delete({id:g.globalCustomField.id}).$promise.then(function(){_.remove(g.globalCustomFields,{id:g.globalCustomField.id}),o.success({title:"GlobalCustomField properly deleted!",msg:(g.globalCustomField.name||"globalCustomField")+" has been deleted!"}),v(g.globalCustomField)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCustomField.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.addItem=function(e){e.push({value:"New Item"}),a.globalCustomFieldForm.$pristine=!1},g.removeItem=function(e,n){e.splice(n,1),a.globalCustomFieldForm.$pristine=!1},g.removeItems=function(e){for(var n=e.length,t=0;t<n;t++)e.splice(0,1);a.globalCustomFieldForm.$pristine=!1},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","globalCustomFields","globalCustomField","api","Auth","license","setting","crudPermissions"],angular.module("app.contactmanager").controller("CreateOrEditGlobalCustomFieldDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.globalCustomFields=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="globalCustomFields",f.listOrder="",f.listOrderAsc=null,f.selectedGlobalCustomFields=[],f.query={fields:"createdAt,updatedAt,id,alias,type,values,required,clickToAction,actionType",sort:"-updatedAt",ListId:"null",limit:10,page:1},f.arraytype=_.keyBy([{option:"Text",value:"'text'"},{option:"Select",value:"'select'"},{option:"Number",value:"'number'"},{option:"Switch",value:"'switch'"},{option:"Datetime",value:"'datetime'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayactionType=_.keyBy([{option:"Voice",value:"'voice'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editdialog=function(e,n){i.show({controller:"CreateOrEditGlobalCustomFieldDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/globalCustomFields/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{globalCustomField:e,globalCustomFields:f.globalCustomFields.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("globalCustomField")+"?").htmlContent("<b>"+(e.name||"globalCustomField")+"</b> will be deleted.").ariaLabel("delete globalCustomField").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getGlobalCustomFields=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.cmCustomField.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="GlobalCustomFields",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditGlobalCustomField=function(e,n){i.show({controller:"CreateOrEditGlobalCustomFieldDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/globalCustomFields/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{globalCustomField:n,globalCustomFields:f.globalCustomFields.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteGlobalCustomField=y,f.exportSelectedGlobalCustomFields=function(){var e=angular.copy(f.selectedGlobalCustomFields);return f.selectedGlobalCustomFields=[],e},f.deleteSelectedGlobalCustomFields=function(e){var n=i.confirm().title("Are you sure want to delete the selected globalCustomFields?").htmlContent("<b>"+f.selectedGlobalCustomFields.length+" selected</b> will be deleted.").ariaLabel("delete GlobalCustomFields").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedGlobalCustomFields.forEach(function(e){y(e)}),f.selectedGlobalCustomFields=[]})},f.deselectGlobalCustomFields=function(){f.selectedGlobalCustomFields=[]},f.selectAllGlobalCustomFields=function(){f.selectedGlobalCustomFields=f.globalCustomFields.rows};var b=!0,A=1;function E(e){f.globalCustomFields=e||{count:0,rows:[]}}function y(e){m.cmCustomField.delete({id:e.id}).$promise.then(function(){_.remove(f.globalCustomFields.rows,{id:e.id}),f.globalCustomFields.count-=1,f.globalCustomFields.rows.length||f.getGlobalCustomFields(),p.success({title:_.startCase("GlobalCustomField")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEcmCustomField"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEcmCustomField",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getGlobalCustomFields())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","globalCustomFields","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.contactmanager").controller("GlobalCustomFieldsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CONTACTMANAGER.EDIT_LIST",g.list=angular.copy(l),g.lists=r,g.newList=!1,g.list||(g.list={},g.title="CONTACTMANAGER.NEW_LIST",g.newList=!0),g.addNewList=function(){g.errors=[],d.cmList.save(g.list).$promise.then(function(e){g.lists.unshift(e.toJSON()),o.success({title:"List properly created",msg:g.list.name?g.list.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmList.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmList.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveList=function(){g.errors=[],d.cmList.update({id:g.list.id},g.list).$promise.then(function(e){var n=_.find(g.lists,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"List properly saved!",msg:g.list.name?g.list.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmList.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmList.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteList=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The list will be deleted.").ariaLabel("Delete List").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cmList.delete({id:g.list.id}).$promise.then(function(){_.remove(g.lists,{id:g.list.id}),o.success({title:"List properly deleted!",msg:(g.list.name||"list")+" has been deleted!"}),v(g.list)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmList.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmList.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","lists","list","api","Auth","license","setting","crudPermissions"],angular.module("app.contactmanager").controller("CreateOrEditListDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.cmList.getAgents({id:c.list.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserList?"penalty "+e.UserList.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.list=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.cmList.removeAgents({id:c.list.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.cmList.addAgents({id:c.list.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("CONTACTMANAGER.ALL_AGENTS"),labelSelected:r.instant("CONTACTMANAGER.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","list","lists","realtime","$translate","Auth","crudPermissions"],angular.module("app.contactmanager").controller("ListagentaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.listCustomFields=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.cmList.getCustomFields(m.query,u).$promise}function g(e){d.cmCustomField.delete({id:e.id}).$promise.then(function(){_.remove(m.listCustomFields.rows,{id:e.id}),m.listCustomFields.count-=1,m.listCustomFields.rows.length||p(),l.success({title:"CustomField deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETcmList"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmList",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.list={},m.listCustomFields={count:0,rows:[]},m.selectedListCustomFields=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,alias,type,values,required,clickToAction,actionType",limit:10,page:1},m.arraytype=_.keyBy([{option:"Text",value:"'text'"},{option:"Select",value:"'select'"},{option:"Number",value:"'number'"},{option:"Switch",value:"'switch'"},{option:"Datetime",value:"'datetime'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),m.arrayactionType=_.keyBy([{option:"Voice",value:"'voice'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),m.init=function(e,n){m.list=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.ListId=m.list.id,m.query.id=m.list.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the customField?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("customField #")+e.id||"customField")+"</b> will be deleted.").ariaLabel("delete customField").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getListCustomFields=p,m.createOrEditListCustomField=function(e,n){o.show({controller:"CreateOrEditCustomFieldDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/lists/edit/customFields/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{list:m.list,customField:n,customFields:m.listCustomFields.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedListCustomFields=function(){var e=angular.copy(m.selectedListCustomFields);return m.selectedListCustomFields=[],e},m.deleteListCustomField=g,m.deleteSelectedListCustomFields=function(e){var n=o.confirm().title("Are you sure want to delete the selected customFields?").htmlContent("<b>"+m.selectedListCustomFields.length+" selected</b> will be deleted.").ariaLabel("delete customFields").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedListCustomFields.forEach(function(e){g(e)}),m.selectedListCustomFields=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.contactmanager").controller("ListCustomFieldsController",e)}(),function(){"use strict";function e(a,e,n,t,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){t.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CONTACTMANAGER.EDIT_CUSTOMFIELD",g.sortable={animation:800,sort:!0,onSort:function(e){a.customFieldForm.$pristine=!1}},g.customField=l,g.customFields=r,g.newCustomField=!1,g.customField||(g.customField={type:"text",actionType:"voice"},g.title="CONTACTMANAGER.NEW_CUSTOMFIELD",g.newCustomField=!0),e.params.id&&(g.customField.ListId=e.params.id),a.$watch("vm.customField.type",function(e,n){if(e!==n)switch(e){case"text":g.customField.values="";break;case"select":g.customField.values=[]}}),g.addNewCustomField=function(){g.errors=[],d.cmList.addCustomField({id:e.params.id},g.customField).$promise.then(function(e){g.customFields.unshift(e.toJSON()),o.success({title:"CustomField properly created",msg:g.customField.name?g.customField.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCustomField.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveCustomField=function(){g.errors=[],d.cmCustomField.update({id:g.customField.id},g.customField).$promise.then(function(e){var n=_.find(g.customFields,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"CustomField properly saved!",msg:g.customField.name?g.customField.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCustomField.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteCustomField=function(e){g.errors=[];var n=t.confirm().title("Are you sure?").content("The customField will be deleted.").ariaLabel("Delete CustomField").ok("Delete").cancel("Cancel").targetEvent(e);t.show(n).then(function(){d.cmCustomField.delete({id:g.customField.id}).$promise.then(function(){_.remove(g.customFields,{id:g.customField.id}),o.success({title:"CustomField properly deleted!",msg:(g.customField.name||"customField")+" has been deleted!"}),v(g.customField)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCustomField.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.addItem=function(e){e.push({value:"New Item"}),a.customFieldForm.$pristine=!1},g.removeItem=function(e,n){e.splice(n,1),a.customFieldForm.$pristine=!1},g.removeItems=function(e){for(var n=e.length,t=0;t<n;t++)e.splice(0,1);a.customFieldForm.$pristine=!1},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","customFields","customField","api","Auth","license","setting","crudPermissions"],angular.module("app.contactmanager").controller("CreateOrEditCustomFieldDialogController",e)}(),function(){"use strict";function e(a,e,t,i,s,n,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=n,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=e.protocol()+"://"+e.host(),u.list=c||a.params.list||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=a.params.tab||0,u.gotogoto=function(t,e){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:303}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?a.go("app.contactmanager.contacts",{ListId:t.id}):l.info({title:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});a.go("app.contactmanager.contacts",{ListId:t.id})}},u.agentadddialog=function(e,n){t.show({controller:"ListagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/lists/edit/agentadd/agentadd.html",parent:angular.element(i.body),targetEvent:n,clickOutsideToClose:!0,locals:{list:e,lists:u.lists?u.lists.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.alert=l.info,u.gotoLists=function(){a.go("app.contactmanager.lists",{},{reload:"app.contactmanager.lists"})},u.saveList=function(){r.cmList.update({id:u.list.id},u.list).$promise.then(function(){l.success({title:"List updated!",msg:u.list.name?u.list.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmList",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","list","userProfileSection"],angular.module("app.contactmanager").controller("ListController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.dispositions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=l.cmList.getDispositions(m.query,u).$promise}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){p(),d.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.dispositions={count:0,rows:[]},m.selectedDispositions=[],m.crudPermissions,m.levels={first:"1st",second:"2nd",third:"3rd"},m.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},m.init=function(e,n){m.list=e||{},m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.ListId=m.list.id,m.query.id=m.list.id,p()},m.deleteConfirm=function(e,n){var t=_.some(m.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){g(e)})},m.success=u,m.getDispositions=p,m.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:{id:m.list.id,field:"ListId",route:"cmList"},license:null,setting:null,crudPermissions:m.crudPermissions}}).then(function(e){e&&p()})},m.deleteDisposition=g,m.exportSelectedDispositions=function(){var e=angular.copy(m.selectedDispositions);return m.selectedDispositions=[],e},m.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:m.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedDispositions.forEach(function(e){g(e)}),m.selectedDispositions=[]})},m.deselectDispositions=function(){m.selectedDispositions=[]},m.selectAllDispositions=function(){m.selectedDispositions=m.dispositions.rows};var v=!0,h=1;e.$watch("vm_dc.query.filter",function(e,n){v?o(function(){v=!1}):(n||(h=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=h),p())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","api","toasty","Auth"],angular.module("app.contactmanager").controller("ListDispositionsController",e)}(),function(){"use strict";function e(e,n,a,t,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.lists=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="lists",f.listOrder="",f.listOrderAsc=null,f.selectedLists=[],f.query={fields:"createdAt,updatedAt,id,name,description,dialPrefix",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){a.go("app.contactmanager.lists.edit",{id:e.id,list:e,crudPermissions:f.crudPermissions})},f.gotocontactsgoto=function(t,e){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:303}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?a.go("app.contactmanager.contacts",{ListId:t.id}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});a.go("app.contactmanager.contacts",{ListId:t.id})}},f.exportcsvcontactsexport=function(i,e){return m.cmList.getContactsCsv({id:i.id,nolimit:!0}).$promise.then(function(e){if(void 0!==e.length){var n=[e.buffer],t=new Blob(n,{type:e.type}),a=window.document.createElement("a");a.setAttribute("href",URL.createObjectURL(t)),a.setAttribute("download","exportContacts_"+i.id+".csv"),a.click()}else p.info({title:"EXPORT",msg:"The list is empty"})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmList",msg:e.data?JSON.stringify(e.data):e.toString()})})},f.agentadddialog=function(e,n){i.show({controller:"ListagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/lists/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{list:e,lists:f.lists?f.lists.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("list")+"?").htmlContent("<b>"+(e.name||"list")+"</b> will be deleted.").ariaLabel("delete list").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getLists=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.cmList.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Lists",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditList=function(e,n){i.show({controller:"CreateOrEditListDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/lists/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{list:n,lists:f.lists.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteList=y,f.exportSelectedLists=function(){var e=angular.copy(f.selectedLists);return f.selectedLists=[],e},f.deleteSelectedLists=function(e){var n=i.confirm().title("Are you sure want to delete the selected lists?").htmlContent("<b>"+f.selectedLists.length+" selected</b> will be deleted.").ariaLabel("delete Lists").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedLists.forEach(function(e){y(e)}),f.selectedLists=[]})},f.deselectLists=function(){f.selectedLists=[]},f.selectAllLists=function(){f.selectedLists=f.lists.rows};var b=!0,A=1;function E(e){f.lists=e||{count:0,rows:[]}}function y(e){m.cmList.delete({id:e.id}).$promise.then(function(){_.remove(f.lists.rows,{id:e.id}),f.lists.count-=1,f.lists.rows.length||f.getLists(),p.success({title:_.startCase("List")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEcmList"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEcmList",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getLists())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","lists","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.contactmanager").controller("ListsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l){var d=this;d.currentUser=s.getCurrentUser(),d.userProfile=r,d.userProfileSection=l&&1==l.count?l.rows[0]:null,d.crudPermissions=s.parseCrudPermissions(d.userProfileSection?d.userProfileSection.crudPermissions:null),d.customDashboard={},d.voiceQueues=o&&o.count?o:{count:0,rows:[]},d.voiceQueuesSelected=o&&o.count?_.map(o.rows,"id"):[],d.interval=n(function(){},1e3),d.onChangeVoiceQueues=function(){for(var e=0;e<d.customDashboard.widgets.length;e+=1)d.customDashboard.widgets[e].voiceQueuesSelected=d.voiceQueuesSelected},d.goToEdit=function(){e.go("app.tools.customDashboards.edit",{id:d.customDashboard.id,tab:1})},i.onWithoutApply("voice_queue:save",function(e){var n=_.find(d.voiceQueues.rows,{id:e.id});n&&_.merge(n,_.pick(e,_.keys(n)))}),a.dashboard.get({id:e.params.id}).$promise.then(function(e){if(e)return d.customDashboard=e,d.customDashboard.widgets=[],d.customDashboard.preview=!0,d.customDashboard.draggable={enabled:!1},d.customDashboard.resizable={enabled:!1},a.dashboard.getItems({id:d.customDashboard.id}).$promise}).then(function(e){if(e&&e.count&&e.rows)for(var n=0;n<e.rows.length;n+=1)e.rows[n].templateUrl="app/core/directives/ms-widget-engine/ms-widget-engine-"+e.rows[n].type+"/ms-widget-engine."+e.rows[n].type+".html",e.rows[n].voiceQueues=d.voiceQueues,e.rows[n].voiceQueuesSelected=d.voiceQueuesSelected,d.customDashboard.widgets.push(e.rows[n])}).catch(function(e){d.customDashboard=void 0}),t.$on("$destroy",function(){i.removeAllListeners("voice_queue:save"),d.interval&&n.cancel(d.interval)})}e.$inject=["$state","$interval","$scope","api","socket","Auth","voiceQueues","userProfile","userProfileSection"],angular.module("app.dashboards.custom").controller("DashboardCustomController",e)}(),function(){"use strict";function e(e,i,s,o,r,l,n,d,t,a,c,m,u,p,g,v,h,f,b){var A=this;function E(e){var n={};for(var t in A.tabs)A.tabs.hasOwnProperty(t)&&(n[t]=_.pick(A.tabs[t],["type","title","channel","icon","color","autoCreate","id","saved","badges","openedAt"]),_.isNil(A.tabs[t].contact)||(n[t].contact=_.pick(A.tabs[t].contact,["id","ListId"])),_.isNil(A.tabs[t].calls)||(n[t].calls=A.tabs[t].calls),A.tabs[t].interaction&&(n[t].interaction=_.pick(A.tabs[t].interaction,["id","OpenchannelAccountId","MailAccountId","ChatWebsiteId","FaxAccountId","SmsAccountId","WhatsappAccountId","closed","draft"])));var a=JSON.parse(s.localStorage.getItem("motion2.user:"+A.user.id));a?(a.tabs=n,a.currentTab=A.currentTab,a.autoClose=A.autoClose):a={tabs:n,currentTab:A.currentTab,autoClose:A.autoClose},s.localStorage.setItem("motion2.user:"+A.user.id,JSON.stringify(a)),e&&y(e)}function y(e){if(_.isNil(e)||e&&"interaction"===e.type){var n={id:A.user.id,online:!0,capacity:{mail:0,fax:0,sms:0,whatsapp:0,openchannel:0,chat:0},interaction:{mail:[],fax:[],sms:[],whatsapp:[],openchannel:[],chat:[]}};for(var t in A.tabs)A.tabs.hasOwnProperty(t)&&n.capacity.hasOwnProperty(A.tabs[t].channel)&&A.tabs[t].interaction&&!A.tabs[t].interaction.closed&&(n.capacity[A.tabs[t].channel]+=1,n.interaction[A.tabs[t].channel].push(A.tabs[t].interaction.id));if(!_.isEqual(A.agentCapacity,n.capacity))return A.agentCapacity=n.capacity,d.rpc.setAgentCapacity(n)}}function S(e){A.tabs[e.id]&&(!function(e){if(e.channel&&e.interaction)d.user["remove"+_.upperFirst(e.channel)+"Interactions"]({id:A.user.id,ids:[e.interaction.id]}).$promise.catch(function(e){console.error(e)})}(A.tabs[e.id]),delete A.tabs[e.id],A.currentTab=0,E(e))}function T(e){e.id=_.random(1e10),e.openedAt=(new Date).toISOString(),e.saved=!1,e.badges=0,A.tabs[e.id]=e,A.currentTab=e.id,E(e)}function I(n){return _.find(A.tabs,function(e){return"interaction"===e.type&&e.interaction&&e.interaction.id==n.interactionId&&e.channel==n.channel})}function C(n,t){var e,a,i={type:"contact",title:n?(e=n,a="",e&&(e.firstName||e.lastName?(e.firstName&&(a+=e.firstName+" "),e.lastName&&(a+=e.lastName)):e.phone&&(a=e.phone)),a=A.user.privacyEnabled?b.mask(a):a):o.instant("DASHBOARDS.NEW_CONTACT"),icon:"icon-account-circle",color:"red",contact:n,calls:t?[t]:[],autoCreate:t?t.autoCreate:0};if(t&&(t.answertime||(t.answertime=t.agentconnectAt),(t.agentcompleteAt||t.endtime)&&N(t)),n){var s=_.find(A.tabs,function(e){return e.contact&&e.contact.id?"contact"===e.type&&e.contact&&e.contact.id==n.id:"contact"===e.type&&e.contact&&e.contact.phone==n.phone});if(s){if(t)return d.voiceCallReport.get({uniqueid:t.uniqueid}).$promise.then(function(e){(e&&0<e.rows.length&&(t.disposedAt=_.first(e.rows).endtime),s.calls)?_.find(s.calls,function(e){return e.uniqueid===t.uniqueid})||s.calls.push(t):s.calls=[t];A.currentTab=s.id})}else{if(n.ListId)return d.disposition.get({ListId:n.ListId,nolimit:!0}).$promise.then(function(e){return i.dispositions=e,d.cmList.getCustomFields({id:n.ListId,nolimit:!0}).$promise}).then(function(e){i.customFields=e}).catch(D()).finally(function(){T(i)});T(i)}}else T(i)}function O(n,t){var e=_.find(A.tabs,function(e){return"interaction"===e.type&&e.interaction&&e.interaction.id===t.id&&e.channel===n});e?(e.isDraft=t.isDraft||!1,A.currentTab=e.id):T(e={type:"interaction",title:n?n.toUpperCase():"openchannel",icon:function(e){switch(e){case"chat":return"icon-hangouts";case"mail":return"icon-email";case"sms":return"icon-message-text";case"openchannel":return"icon-google-earth";case"fax":return"icon-deskphone";case"whatsapp":return"icon-whatsapp";default:return"icon-hangouts"}}(n),color:function(e){switch(e){case"chat":return"green-A700";case"mail":return"teal";case"sms":return"orange";case"openchannel":return"amber-A200";case"fax":return"blue-grey-A200";case"whatsapp":return"lime-A700";default:return"grey"}}(n),channel:n,interaction:t,isDraft:t.isDraft||!1})}function w(e){e&&e.uniqueid&&A.notifications[e.uniqueid]&&(a.clear(A.notifications[e.uniqueid]),delete A.notifications[e.uniqueid])}function R(n){var t=n.uniqueid;for(var e in console.debug("onVoiceChannelRemove -> evt",n),A.tabs)if(A.tabs.hasOwnProperty(e)){var a=A.tabs[e];if(a.calls){console.debug("onVoiceChannelRemove -> key, tab, tab.calls",e,a,a.calls);var i=_.findIndex(a.calls,function(e){return e.uniqueid===t});i<0&&0<=(i=_.findIndex(a.calls,function(e){return e.uniqueid===n.linkedid}))&&(t=n.linkedid),0<=i&&!a.calls[i].disposedAt?(console.debug("Allowing disposition for call %s",a.calls[i].uniqueid),N(a.calls[i])):console.debug("Call %s not found or already completed",a.calls[i].uniqueid),a.contact&&a.contact.id&&l(x(t,a.contact.id,a),1e3)}}E()}function x(n,e,t){return function(){if(_.find(t.calls,function(e){return e.uniqueid===n}))return d.voiceCallReport.update({id:n,ContactId:e}).$promise.catch(function(e){console.error(e)})}}function N(e){e.disposedAt=new Date}function D(){return function(e){if(404===e.status)a.warning({title:o.instant("DASHBOARDS.ATTENTION"),msg:o.instant("DASHBOARDS.ACCEPT_ELSEWHERE")});else if(e.data&&e.data.errors&&e.data.errors.length){A.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelMessage.accept"}];for(var n=0;n<e.data.errors.length;n+=1)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelMessage.accept",msg:e.data?JSON.stringify(e.data.message):e.toString()})}}A.license=g,A.setting=v,A.detectBrowser=f.detectBrowser(),A.user=n.getCurrentUser(),A.currentTab=0,A.notifications={},A.tabs={},A.agentCapacity={},A.autoClose=!1,A.globalUserLists=c||{count:0,rows:[]},A.globalLists=m||{count:0,rows:[]},A.globalCompanies=u||{count:0,rows:[]},A.globalTags=p||{count:0,rows:[]},A.onClickTab=function(e){A.currentTab=e,E(A.tabs[e])},A.isActiveTab=function(e){return e===A.currentTab},A.alreadyExistsTab=I,A.addContactTab=C,A.addInteractionTab=O,A.addTab=T,A.removeTab=S,A.updateLocalStorage=E,A.closeTab=function(e){var n=i.confirm().title("interaction"===e.type?"Do you want to close the interaction?":"Are you sure want to close the "+e.type+"?").textContent("interaction"===e.type?"":"The "+e.type+" has been modified. Closing will lose all changes!").ariaLabel("Close Contact").ok("interaction"===e.type?"YES":"OK").cancel("interaction"===e.type?"NO":"CANCEL");{if(!e.saved){var t=A.user.voicePause||A.user.chatPause||A.user.mailPause||A.user.openchannelPause||A.user.faxPause,a=!1;return"interaction"===e.type&&(a=e.interaction.Account.mandatoryDisposition),i.show(n).then(function(){"interaction"===e.type&&i.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(r.body),onRemoving:function(e,n){A.user&&a&&!t&&d.user.unpause({id:A.user.id}).$promise.catch(function(e){console.error(e)})},clickOutsideToClose:!a,escapeToClose:!a,locals:{user:A.user,channel:e.channel,interaction:e.interaction}}),S(e)}).catch(function(){"interaction"===e.type&&S(e)})}var a=!1;if(_.forEach(e.calls,function(e){e.mandatoryDisposition&&(a=!0)}),"contact"===e.type&&0<e.calls.length){if(!a)return n._options.textContent="There is a call that hasn't been disposed yet.",i.show(n).then(function(){S(e)});alert=i.alert().title("Warning").textContent("There is a call that hasn't been disposed yet.").ok("OK"),i.show(alert).finally(function(){alert=void 0})}else S(e)}},t.on("trigger:contactmanager",function(n){if(!_.isNil(n.contacts)&&1===n.contacts.length)return void C(n.contact,n.evt);i.show({controller:"ContactSelectionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/contact/selection/dialog.html",parent:angular.element(r.body),locals:{contacts:n.contacts,callNumber:n.evt.routeId?n.evt.destcalleridnum:n.evt.calleridnum}}).then(function(e){C(e,n.evt)})}),t.on("trigger:jscripty",function(t){return d.jscriptyProject.get({id:t.ProjectId}).$promise.then(function(n){if(n){if(!_.isUndefined(t["xmd-contactid"]))return d.cmContact.get({id:t["xmd-contactid"]}).$promise.then(function(e){try{n.formData=Mustache.render(n.formData,_.merge(t,{user:A.user,contact:e}))}catch(e){console.error(e)}T({type:"jscripty",title:n.name,icon:"icon-script",color:"grey",project:n,call:t,contact:e})}).catch(D());try{n.formData=Mustache.render(n.formData,_.merge(t,{user:A.user}))}catch(e){console.error(e)}T({type:"jscripty",title:n.name,icon:"icon-script",color:"grey",project:n,call:t})}}).catch(D())}),t.on("trigger:bot",function(n){var t=n.calleridname&&"<unknown>"!==n.calleridname?n.calleridname:n.calleridnum,a=n.calleridnum;return d.squareMessage.get({fields:"id",limit:1,offset:0,uniqueid:n.uniqueid}).$promise.then(function(e){e.count&&T({type:"bot",title:t+" <"+a+">",icon:"fas fa-robot",color:"pink",data:{uniqueid:n.uniqueid}})})}),t.on("trigger:browser:url",function(e){if(e&&e.uri)if(e.uri=_.replace(e.uri,"<%3B",""),e.uri=_.replace(e.uri,"=>%3B=",""),e.uriLocation)switch(e.uriLocation){case"0":s.open(e.uri);break;case"1":s.open(e.uri,"_blank","width="+(e.windowWidth||"800")+",height="+e.windowHeight||"600");break;case"2":var n={type:"iframe",title:e.uri,icon:"icon-google-earth",color:"blue",src:e.uri};T(n);break;default:s.open(e.uri)}else s.open(e.uri)}),t.on("trigger:browser:popup",function(e){e&&e.html&&T({type:"popup",title:e.calleridnum||"popup",icon:"icon-tablet",color:"grey",html:e.html})}),t.on("notification:save",function(e){if(e&&e.uniqueid){t=e,h.isSupported()?h.requestPermission().then(function(){var e,n;n={autoClose:!0,duration:10,showOnPageHidden:!0,icon:"../../../../../../../assets/images/avatars/customer.png",body:(e=t).queue?"Queue: "+e.queue:"",focusOnclick:!0,closeOnClick:!0},h.show(e.title,n)},function(e){console.error("Please enable browser notifications!",e)}):console.error("Browser notifications are not supported by the browser. Normal notifications will be used.");var n=I(e);if(n){if(d[e.channel+"Message"])return A.currentTab!==n.id&&(n.badges+=1),d[e.channel+"Message"].accept({id:e.id,UserId:A.user.id}).$promise.catch(D())}else a.wait({title:e.title,msg:e.msg||"",showClose:!1,clickToClose:!1,timeout:!1,sound:e.sound,html:!0,shake:e.shake||!1,onAdd:function(){A.notifications[e.uniqueid]=this.id},onAccept:function(){if(w(e),d[e.channel+"Message"])return d[e.channel+"Message"].accept({id:e.id,UserId:A.user.id,manual:!0}).$promise.then(function(e){O(e.channel,e.interaction),a.success({title:"Message properly accepted!",msg:"Message has been accepted!"})}).catch(D())},onReject:function(){if(w(e),d[e.channel+"Message"])return d[e.channel+"Message"].reject({id:e.id,UserId:A.user.id}).$promise.then(function(e){a.success({title:"Message properly rejected!",msg:"Message has been rejected!"})}).catch(D())}})}var t}),t.on("notification:remove",w),t.on("voice_queue_channel:remove",R),t.on("voice_outbound_channel:remove",R),function(){var e=s.localStorage.getItem("motion2.user:"+A.user.id);if(e)try{e=JSON.parse(e),A.tabs=e.tabs?e.tabs:{},A.currentTab=e.currentTab?e.currentTab:0,A.autoClose=!!e.autoClose&&e.autoClose,y(A.tabs[A.currentTab])}catch(e){console.error(e)}}(),e.$on("$destroy",function(){for(var e in A.notifications)A.notifications.hasOwnProperty(e)&&w({uniqueid:e});t.removeAllListeners("trigger:contactmanager"),t.removeAllListeners("trigger:jscripty"),t.removeAllListeners("trigger:browser:url"),t.removeAllListeners("trigger:browser:popup"),t.removeAllListeners("notification:save"),t.removeAllListeners("notification:remove"),t.removeAllListeners("voice_queue_channel:remove"),t.removeAllListeners("voice_outbound_channel:remove")})}e.$inject=["$scope","$mdDialog","$window","$translate","$document","$timeout","Auth","api","socket","toasty","globalUserLists","globalLists","globalCompanies","globalTags","license","setting","desktopNotification","msUtils","privacyManager"],angular.module("app.dashboards").controller("AgentDashboardGeneralController",e)}(),function(){"use strict";angular.module("app.dashboards").provider("desktopNotification",function(){var f={autoClose:!0,duration:5,showOnPageHidden:!1};return{config:function(e){for(var n in e)f.hasOwnProperty(n)&&null!=e[n]&&(f[n]=e[n])},$get:["$q","$timeout","$window","PERMISSIONS",function(e,u,n,p){var g=n.Notification||n.mozNotification||n.webkitNotification;return{isSupported:v,currentPermission:h,requestPermission:function(){if(!v())return e.reject("Notification API not supported");var t=e.defer();Promise.resolve(g.requestPermission)==g.requestPermission?g.requestPermission().then(function(e){p.GRANTED===e?t.resolve(e):t.reject(e)}):g.requestPermission(function(e,n){p.GRANTED===e?t.resolve(e):t.reject(e)});return t.promise},show:function(e,n){if(n=n||{},!v()||(t=e,a=n,i=angular.isString(t),s=!a.onClick||angular.isFunction(a.onClick),!i||!s)||function(e){if(e||f.showOnPageHidden)return!(window.document.hidden||window.document.mozHidden||window.document.webkitHidden)}(n.showOnPageHidden)||h()!==p.GRANTED)return;var t,a,i,s;var o=new g(e,n),r=n.duration||f.duration,l=void 0===n.autoClose?f.autoClose:n.autoClose;o.onclick=function(){n.onClick&&n.onClick(),n.focusOnclick&&window.focus(),n.closeOnClick&&o.close()},l&&(d=o,c=r,m=1e3*c,u(d.close.bind(d),m,!1));var d,c,m;return o},permissions:{default:p.DEFAULT,granted:p.GRANTED,denied:p.DENIED}};function v(){return!(void 0===g)}function h(){return(g||{}).permission}}]}}).provider("msNavigationAgentService",function(){var r=angular.injector(["ng"]).get("$log"),l=[];function n(e,n){if(angular.isString(e)){for(var t=e.split("."),a=t[t.length-1],i=function(e){var n=l;if(1===e.length)return n;e.pop();for(var t=0;t<e.length;t++){for(var a=e[t],i=!0,s=0;s<n.length;s++)if(n[s]._id===a){n=n[s].children,i=!1;break}if(i){var o={_id:a,_path:e.join("."),title:a,weight:1,children:[]};n.push(o),n=o.children}}return n}(t),s=!1,o=0;o<i.length;o++)if(i[o]._id===a){s=i[o];break}s?(angular.extend(s,n),s.uisref=d(s)):(n.children=[],!angular.isUndefined(n.weight)&&angular.isNumber(n.weight)||(n.weight=1),n._id=a,n._path=e,n.uisref=d(n),i.push(n))}else r.error("path must be a string (eg. `dashboard.project`)")}function d(e){var n="";return angular.isDefined(e.state)&&(n=e.state,angular.isDefined(e.stateParams)&&angular.isObject(e.stateParams)&&(n=n+"("+angular.toJson(e.stateParams)+")")),n}this.saveItem=n,this.deleteItem=function(e){if(!angular.isString(e))return void r.error("path must be a string (eg. `dashboard.project`)");for(var n=l,t=e.split("."),a=0;a<t.length;a++)for(var i=t[a],s=0;s<n.length;s++)if(n[s]._id===i){if(n[s]._path===e)return n.splice(s,1),!0;n=n[s].children;break}return!1},this.$get=function(){var e={saveItem:n,getNavigation:function(e){if(e){for(var n=0;n<l.length;n++)if(l[n]._id===e)return[l[n]];return null}return l}};return e}}).constant("PERMISSIONS",{DEFAULT:"default",GRANTED:"granted",DENIED:"denied"})}(),function(){"use strict";function e(t){var a=this;a.setting={},a.messages={count:0,rows:[]},a.showInteraction=!1,a.init=function(e,n){{if(a.setting=n,a.tab=e,a.tab.saved=!0,a.tab&&a.tab.data&&a.tab.data.uniqueid)return t.squareMessage.get({uniqueid:a.tab.data.uniqueid}).$promise.then(function(e){a.messages=e}).finally(function(){a.showInteraction=!0});a.showInteraction=!0}},a.getMessagesAlignment=function(e){switch(a.setting.messagesAlignment){case"left":return"in"==e.direction?e.direction:"out-left-aligned";case"right":return"in"==e.direction?"in-right-aligned":e.direction;default:return e.direction}}}e.$inject=["api"],angular.module("app.dashboards").controller("AgentGeneralBotController",e)}(),function(){"use strict";function e(a,d,c,t,m,i,u,p,s,o,e,r,n,l){var g=this;function v(){g.errors=[],u.cmContact.save(g.contact).$promise.then(function(e){g.contact.id=e.id,g.newContact=!1;var n=e.firstName||e.phone;return g.tab.title=g.user.privacyEnabled?l.mask(n):n,g.tab.contact=g.contact,u.user.addContacts({id:s.getCurrentUser().id,ids:[e.id]})}).then(function(){g.detailForm.$pristine=!0,g.customFieldsForm.$pristine=!0,p.success({title:"Contact properly created",msg:g.contact.firstName?g.contact.firstName+" has been created!":""})}).then(function(){return u.cmContact.setTags({id:g.contact.id,ids:g.tab.Tags}).$promise}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.contact.save"}];for(var n=0;n<e.data.errors.length;n+=1)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contact.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function h(n){return function(e){g[n]=e||{count:0,rows:[]}}}function f(){g.contact&&g.contact.id&&(g.queryHopper.ContactId=g.contact.id,g.queryHopper.offset=(g.queryHopper.page-1)*g.queryHopper.limit,g.promise=u.cmHopper.get(g.queryHopper,h("hoppers")).$promise)}function b(){g.contact&&g.contact.id&&(g.queryFinal.ContactId=g.contact.id,g.queryFinal.offset=(g.queryFinal.page-1)*g.queryFinal.limit,g.promise=u.cmHopperFinal.get(g.queryFinal,h("finals")).$promise)}function A(){g.contact&&g.contact.id&&(g.queryHistory.ContactId=g.contact.id,g.queryHistory.offset=(g.queryHistory.page-1)*g.queryHistory.limit,g.promise=u.cmHopperHistory.get(g.queryHistory,h("histories")).$promise)}function E(e){return null===e?void 0:new Date(e)}function y(e){g.journeyIsLoading=!0;var n=_.merge(g.journeyOptions,{id:g.contact.id,offset:e||0});return r.get(g.journey,n).then(function(e){g.journey=e.journey,g.canLoadMoreJourney=e.loadMore}).finally(function(){g.journeyIsLoading=!1})}g.user=s.getCurrentUser(),g.detectBrowser=e.detectBrowser(),g.journey=[],g.queryHopper={fields:"id,phone,scheduledat",sort:"-updatedAt",limit:10,page:1},g.queryFinal={fields:"uniqueid,calleridnum,statedesc,starttime,disposition,secondDisposition,thirdDisposition",sort:"-updatedAt",limit:10,page:1},g.queryHistory={fields:"uniqueid,calleridnum,statedesc,scheduledat,starttime,endtime",sort:"-updatedAt",limit:10,page:1},g.hoppers={rows:[],count:0},g.finals={rows:[],count:0},g.histories={rows:[],count:0},g.journeyOptions=r.getQuery(),g.quickFilters=r.getQuickFilters(),g.addNewContact=v,g.saveContact=function(){g.errors=[],u.cmContact.update({id:g.contact.id},g.contact).$promise.then(function(e){var n=e.firstName||e.phone;return g.tab.title=g.user.privacyEnabled?l.mask(n):n,g.tab.contact=g.contact,m.$parent.vm.updateLocalStorage(),u.user.addContacts({id:s.getCurrentUser().id,ids:[e.id]})}).then(function(){return u.cmContact.setTags({id:g.contact.id,ids:g.tab.Tags}).$promise}).then(function(){g.detailForm.$pristine=!0,g.customFieldsForm.$pristine=!0,p.success({title:"Contact properly updated!",msg:g.contact.name?g.contact.name+" has been updated!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.contact.save"}];for(var n=0;n<e.data.errors.length;n+=1)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contact.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.getCustomFields=function(e){return u.cmList.getCustomFields({id:e}).$promise.then(function(e){g.tab.customFields=e}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"LIST:GETCustomFields",msg:e.data?JSON.stringify(e.data):e.toString()})})},g.call=m.$parent.vm.call,g.disposeCall=function(e,i){if(g.newContact)return void p.error({title:"ATTENTION",msg:"Please save the contact before disposing!"});d.show({controller:"DisposeCallDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/contact/dispose/dialog.html",parent:angular.element(c.body),targetEvent:i,clickOutsideToClose:!i.mandatoryDisposition,escapeToClose:!i.mandatoryDisposition,resolve:{globalDispositions:["apiResolver",function(e){return e.resolve("disposition@get",{MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0})}]},onRemoving:function(e,n){g.user&&i.mandatoryDisposition&&u.user.unpause({id:g.user.id}).$promise.catch(function(e){console.error(e)})},locals:{dispositions:g.tab.dispositions,contact:g.contact,call:i,availableCalls:g.tab.calls.length,autoClose:m.$parent.vm.autoClose}}).then(function(e){var n=e[0];for(var t in m.$parent.vm.autoClose=e[1],n&&("BLACKLIST"===n?p.success({title:o.instant("DASHBOARDS.INFO"),msg:o.instant("DASHBOARDS.CALL_DISPOSED")+" "+n}):"RECALLME"===n||"RESCHEDULE"===n||p.success({title:o.instant("DASHBOARDS.INFO"),msg:o.instant("DASHBOARDS.CALL_SAVED")})),m.$parent.$parent.$parent.vm.tabs)if(m.$parent.$parent.$parent.vm.tabs.hasOwnProperty(t)){var a=m.$parent.$parent.$parent.vm.tabs[t];_.remove(a.calls,function(e){return e.uniqueid===i.uniqueid})}0===g.tab.calls.length&&m.$parent.vm.autoClose&&m.$parent.vm.removeTab(g.tab),m.$parent.vm.updateLocalStorage()})},g.checkCallStatus=function(n){return g.checkingCallStatus=!0,u.voiceCallReport.get({uniqueid:n.uniqueid}).$promise.then(function(e){e&&0<e.rows.length&&(n.disposedAt=_.first(e.rows).endtime)}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"VOICE_CALL_REPORT:GET",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){g.checkingCallStatus=!1})},g.duplicateContact=function(e){d.show({controller:"DuplicateContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/duplicate/dialog.html",parent:angular.element(c.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:g.contact.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:s.getCurrentUser().id,fields:"id,name"})}]},locals:{contacts:[]}})},g.mergeContact=function(e){d.show({controller:"MergeContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/merge/dialog.html",parent:angular.element(c.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:g.contact.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:s.getCurrentUser().id,fields:"id,name"})}]},locals:{contacts:[]}}).then(function(e){if(e){for(var n in m.$parent.$parent.$parent.vm.tabs)if(m.$parent.$parent.$parent.vm.tabs.hasOwnProperty(n)){var t=m.$parent.$parent.$parent.vm.tabs[n];t&&t.contact&&(e.from&&e.from.id&&e.from.id===t.contact.id&&m.$parent.$parent.$parent.vm.removeTab(t),e.to&&e.to.id&&e.to.id===t.contact.id&&m.$parent.$parent.$parent.vm.removeTab(t))}e.new&&m.$parent.$parent.$parent.vm.addContactTab(e.new)}})},g.getDateFromString=E,g.addJscriptyTab=function(e){try{e.formData=Mustache.render(e.formData,{contact:g.contact,user:g.user})}catch(e){console.error(e)}try{m.$parent.$parent.$parent.vm.addTab({type:"jscripty",title:e.name,icon:"icon-script",color:"grey",project:e,contact:g.contact})}catch(e){p.error({title:"ERROR OPENING JSCRIPTY PROJECT",msg:"The project cannot be started"+JSON.stringify(e)})}},g.getHoppers=f,g.getFinals=b,g.getHistories=A,g.getJscriptyProjects=function(){if(g.jscriptyProjects)return;return g.loadingJscriptyProjects=!0,u.jscriptyProject.get({fields:"createdAt,updatedAt,id,name,description,createdAt,formData,enableUncompleteSave",sort:"-updatedAt",nolimit:!0}).$promise.then(function(e){g.jscriptyProjects=e||{count:0,rows:[]}}).catch(function(){p.error({title:o.instant("JSCRIPTY.JSCRIPTY"),msg:o.instant("CONTACTMANAGER.NOTIFICATIONS.JSCRIPTY_GET_ERROR")})}).finally(function(){g.loadingJscriptyProjects=!1})},g.getAccounts=function(n){if(g[n+"Accounts"])return;var e="get"+_.startCase(n)+"Accounts";return g.loadingAccounts=!0,u.user[e]({id:g.user.id,attributes:["id","name"],nolimit:!0}).$promise.then(function(e){g[n+"Accounts"]=e||{count:0,rows:[]}}).catch(function(){p.error({title:o.instant(n.toUpperCase()+"."+n.toUpperCase()+"ACCOUNTS"),msg:o.instant("CONTACTMANAGER.NOTIFICATIONS.ACCOUNTS_GET_ERROR",{channel:o.instant("DASHBOARDS."+n.toUpperCase())})})}).finally(function(){g.loadingAccounts=!1})},g.composeInteraction=function(e,o,r,n){var l=o.toLowerCase();d.show({controller:"Compose"+o+"InteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/"+o.toLowerCase()+"/dialog.html",parent:angular.element(c.body),clickOutsideToClose:!1,locals:{account:r,message:{to:"mail"==l?n:n.split(",")},type:"new",interaction:{Contact:g.contact}},fullscreen:!0}).then(function(s){if(!s||_.isNil(s.message)||!s.message.savedAsDraft)return u[l+"Account"].send({id:r.id},s).$promise.then(function(e){if("Mail"===o){var n=e;if(n&&n.Messages&&n.Messages.length){if(s.attachments&&s.attachments.length)for(var t=0;t<s.attachments.length;t+=1)u.attachment.update({id:s.attachments[t].id},{MailMessageId:_.head(n.Messages).id});if(p.success({title:"Message properly sent!",msg:"Message has been sent!"}),n.closed){n.disposition=null;var a=!r.mandatoryDisposition,i=g.user.voicePause||g.user.chatPause||g.user.mailPause||g.user.openchannelPause||g.user.faxPause;d.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(c.body),onRemoving:function(e,n){g.user&&r.mandatoryDisposition&&!i&&u.user.unpause({id:g.user.id}).$promise.catch(function(e){console.error(e)})},clickOutsideToClose:a,escapeToClose:a,locals:{user:g.user,channel:"mail",interaction:n}})}else m.$parent.vm.addInteractionTab("mail",n)}}else p.success({title:"Message properly sent!",msg:"Message has been sent!"}),m.$parent.vm.addInteractionTab(l,e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else"fax"===l?p.error({title:"FAX:SEND",msg:e.data?JSON.stringify(e.data):e.message||e.toString()}):p.error({title:e.status?"API:"+e.status+" - "+e.statusText:o.toUpperCase()+"ACCOUNT:SEND",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})});var e={type:"draft",channel:"mail",account:r,contact:g.contact,id:g.tab.id,openedAt:new Date,saved:!1,title:r.key+" - Untitled",content:s.message},n=a.localStorage.getItem("motion2.home.mail:"+g.user.id);if(n){var t=JSON.parse(n);t.drafts||(t.drafts={}),n=t}else n={drafts:{}};n.drafts[g.tab.id]=e,a.localStorage.setItem("motion2.home.mail:"+g.user.id,JSON.stringify(n))})},g.init=function(n,e){return g.tab=n,m.$watchGroup(["vm.detailForm.$pristine","vm.customFieldsForm.$pristine"],function(e){g.tab.saved=e[0]&&e[1]}),g.license=e,g.contact=g.tab.contact,g.newContact=!1,g.currentTab=0,u.user.get({fields:"id,fullname",nolimit:!0}).$promise.then(function(e){g.users=e||{count:0,rows:[]},g.usersMap=_.mapValues(_.keyBy(g.users.rows,"id"),"fullname")}).then(function(){for(var e=[],n=0;n<g.tab.calls.length;n++){var t=g.tab.calls[n];e.push(u.voiceCallReport.get({uniqueid:t.uniqueid}).$promise.then(function(e){e&&0<e.rows.length&&(t.disposedAt=_.first(e.rows).endtime)}))}return i.all(e)}).then(function(){return u.user.getLists({id:g.user.id,nolimit:!0}).$promise}).then(function(e){if(g.lists=e||{count:0,rows:[]},g.contact&&g.contact.ListId){if(g.list=_.find(g.lists.rows,{id:g.contact.ListId}),g.list)return;return u.cmList.get({id:g.contact.ListId}).$promise.then(function(e){e&&(g.list=e,g.lists.rows=_.unionBy(g.lists.rows,[g.list]))})}}).then(function(){if(g.contact&&g.contact.id){var e={id:g.contact.id,ListId:g.contact.ListId,limit:1,offset:0,sort:"-updatedAt"};return u.cmContact.get(e).$promise.then(function(e){return g.contact=e,g.tab.contact=e,u.user.addContacts({id:g.user.id,ids:[g.contact.id]})}).then(function(){if(g.contact.ListId)return u.disposition.get({ListId:g.contact.ListId,nolimit:!0}).$promise.then(function(e){return g.tab.dispositions=e,u.cmList.getCustomFields({id:g.contact.ListId,nolimit:!0}).$promise}).then(function(e){g.tab.customFields=e})}).then(function(){try{g.tab.companies=m.$parent.$parent.$parent.vm.globalCompanies,g.tab.tags=m.$parent.$parent.$parent.vm.globalTags,g.tab.autoCreate=0}catch(e){}f(),b(),A()}).then(function(){return u.cmContact.getTags({id:g.contact.id}).$promise.then(function(e){g.tab.Tags=_.map(e.rows,"id")})})}return g.newContact=!0,n.autoCreate?v():void 0}).finally(function(){g.contact&&g.contact.id&&(y(),g.contact.dateOfBirth=E(g.contact.dateOfBirth))})},g.hasPermission=function(e){return s.hasPermission(e)},g.openInteraction=function(e){try{return m.$parent.$parent.$parent.vm.addInteractionTab(e.channel,e)}catch(e){p.error({title:o.instant("CONTACTMANAGER.CUSTOMER_JOURNEY"),msg:o.instant("CONTACTMANAGER.NOTIFICATIONS.INTERACTION_OPEN_ERROR")})}},g.getCustomerJourney=y,g.loadMoreJourney=function(){return i(function(e,n){var t=g.journey.length;return e(y(t))})},m.$on("$destroy",function(){}),m.$watch("currentTab",function(e,n){1===g.currentTab&&(f(),b(),A())});var S=!0,T=1;m.$watch("queryHopper.filter",function(e,n){S?t(function(){S=!1}):(n||(T=g.queryHopper.page),e!==n&&(g.queryHopper.page=1),e||(g.queryHopper.page=T),f())}),m.$watch("queryFinal.filter",function(e,n){S?t(function(){S=!1}):(n||(T=g.queryFinal.page),e!==n&&(g.queryFinal.page=1),e||(g.queryFinal.page=T),b())}),m.$watch("queryHistory.filter",function(e,n){S?t(function(){S=!1}):(n||(T=g.queryHistory.page),e!==n&&(g.queryHistory.page=1),e||(g.queryHistory.page=T),A())})}e.$inject=["$window","$mdDialog","$document","$timeout","$scope","$q","api","toasty","Auth","$translate","msUtils","customerJourneyManager","draftManager","privacyManager"],angular.module("app.dashboards").controller("AgentGeneralContactController",e)}(),function(){"use strict";function e(n,i,s,o,e,t,a,r,l,d,c,m){var u=this;function p(){var e=u.selectedDisposition?u.selectedDisposition.name.toLowerCase():void 0;return{id:u.call.uniqueid,disposition:u.firstLevelDisposition?u.firstLevelDisposition.name:null,secondDisposition:u.secondLevelDisposition?u.secondLevelDisposition.name:null,thirdDisposition:u.thirdLevelDisposition?u.thirdLevelDisposition.name:null,dispositionat:moment(),amd:"amd"===e,fax:"fax"===e,blacklist:"blacklist"===e,recallme:"recallme"===e,UserId:"recallme"===e?l.getCurrentUser().id:null,OwnerId:l.getCurrentUser().id}}function g(e){n.hide([e,u.autoClose])}u.isReschedule=!1,u.recallme=!1,u.queueCampaign=void 0,u.queueCampaigns={count:0,rows:[]},u.dispositions=_.orderBy(_.concat([],e.rows,t.rows),["name"],["asc"]),u.contact=r,u.call=a,u.note=u.call.note||void 0,u.dialerCall=!1,u.hasBlackLists=!1,u.availableCalls=c,u.autoClose=m,u.hopper={minDate:new Date,dateTime:new Date},u.call&&u.call.variables&&u.call.variables["xmd-voicequeueid"]?(u.dialerCall=!0,o.voiceQueue.getBlackLists({id:u.call.variables["xmd-voicequeueid"]}).$promise.then(function(e){e&&e.rows&&0<e.rows.length&&(u.hasBlackLists=!0)}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.getBlackLists",msg:e.data?JSON.stringify(e.data):e.toString()})})):o.user.getQueues({id:l.getCurrentUser().id,fields:"id,name,dialActive",channel:"voice",type:"outbound",nolimit:!0}).$promise.then(function(e){u.queueCampaigns=e||{count:0,rows:[]}}).catch(function(e){console.error(e)}),u.onDispositionChange=function(e){switch(e){case"first":u.selectedDisposition=u.firstLevelDisposition,u.anySecondLevelDisposition=_.some(u.dispositions,["ParentId",u.firstLevelDisposition.id]),u.secondLevelDisposition=void 0,u.thirdLevelDisposition=void 0,u.anyThirdLevelDisposition=!1;break;case"second":u.selectedDisposition=u.secondLevelDisposition,u.anyThirdLevelDisposition=_.some(u.dispositions,["ParentId",u.secondLevelDisposition.id]);break;case"third":u.selectedDisposition=u.thirdLevelDisposition}},u.clearDispositionSelection=function(e){"second"===e?(u.secondLevelDisposition=void 0,u.thirdLevelDisposition=void 0,u.selectedDisposition=u.firstLevelDisposition):"third"===e&&(u.thirdLevelDisposition=void 0,u.selectedDisposition=u.secondLevelDisposition)},u.saveDisposition=function(e){u.selectedDisposition=_.isNil(e)?u.selectedDisposition:{name:e},e&&(u.firstLevelDisposition=u.selectedDisposition);u.call.note=u.note,o.voiceCallReport.update({id:u.call.uniqueid,userDisposition:u.firstLevelDisposition?u.firstLevelDisposition.name:null,userSecondDisposition:u.secondLevelDisposition?u.secondLevelDisposition.name:null,userThirdDisposition:u.thirdLevelDisposition?u.thirdLevelDisposition.name:null,note:u.note,UserId:l.getCurrentUser().id,ContactId:u.contact.id}).$promise.catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEVOICECALLREPORT",msg:e.data?JSON.stringify(e.data):e.toString()})}),o.voiceRecording.get({uniqueid:u.call.uniqueid}).$promise.then(function(e){if(e)for(var n=0;n<e.rows.length;n+=1)o.voiceRecording.update({id:e.rows[n].id,userDisposition:u.firstLevelDisposition?u.firstLevelDisposition.name:null,userSecondDisposition:u.secondLevelDisposition?u.secondLevelDisposition.name:null,userThirdDisposition:u.thirdLevelDisposition?u.thirdLevelDisposition.name:null}).$promise.catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEVOICERECORDING",msg:e.data?JSON.stringify(e.data):e.toString()})})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEVOICERECORDING",msg:e.data?JSON.stringify(e.data):e.toString()})}),u.dialerCall&&(o.cmHopperFinal.update(p()).$promise.catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATECMHOPPERFINAL",msg:e.data?JSON.stringify(e.data):e.toString()})}),o.cmHopperHistory.update(p()).$promise.catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATECMHOPPERHISTORY",msg:e.data?JSON.stringify(e.data):e.toString()})}));if(_.isNil(u.selectedDisposition))g(u.selectedDisposition?u.selectedDisposition.name.toUpperCase():"");else switch(u.selectedDisposition.name.toLowerCase()){case"blacklist":u.call&&u.call.variables&&u.call.variables["xmd-voicequeueid"]&&function(e){if(e)o.voiceQueue.getBlackLists({id:e,type:"outbound",fields:"id"}).$promise.then(function(e){var n=[];if(e&&0<e.count){for(var t=0;t<e.rows.length;t+=1){var a=angular.copy(u.contact);delete a.id,a.ListId=e.rows[t].id,n.push(o.cmContact.save(a).$promise)}return i.all(n)}s.success({title:d.instant("DASHBOARDS.INFO"),msg:d.instant("DASHBOARDS.NOTAVAILABLE")+" "+u.selectedDisposition}),u.selectedDisposition=void 0}).then(function(e){e&&g(u.selectedDisposition?u.selectedDisposition.name.toUpperCase():"")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEBLACKLIST",msg:e.data?JSON.stringify(e.data):e.toString()}),g(u.selectedDisposition?u.selectedDisposition.name.toUpperCase():"")})}(u.call.variables["xmd-voicequeueid"]);break;case"reschedule":u.isReschedule=!0,u.recallme=!1;break;case"recallme":u.isReschedule=!0,u.recallme=!0;break;default:g(u.selectedDisposition?u.selectedDisposition.name.toUpperCase():"")}},u.closeDialog=function(){n.cancel()},u.saveReschedule=function(){return u.disable=!0,o.cmHopper.save({phone:u.contact.phone,UserId:u.recallme?l.getCurrentUser().id:null,ContactId:u.contact.id,ListId:u.contact.ListId,VoiceQueueId:u.dialerCall?Number(u.call["xmd-voicequeueid"]):u.queueCampaign?u.queueCampaign.id:null,scheduledat:moment(u.hopper.dateTime).format("YYYY-MM-DD HH:mm:ss"),priority:3,recallme:u.recallme,OwnerId:l.getCurrentUser().id}).$promise.then(function(){u.dialerCall&&o.cmHopperFinal.update({id:u.call.uniqueid,rescheduled:!0,rescheduledat:moment(u.hopper.dateTime).format("YYYY-MM-DD HH:mm:ss"),recallme:u.recallme}).$promise.catch(function(e){console.log(e)})}).then(function(){s.success({title:d.instant("DASHBOARDS.INFO"),msg:d.instant("DASHBOARDS.CALL_DISPOSED")+" "+(u.recallme?d.instant("DASHBOARDS.RECALLME"):d.instant("DASHBOARDS.RESCHEDULE"))})}).catch(function(e){g(u.selectedDisposition?u.selectedDisposition.name.toUpperCase():"")}).finally(function(){u.disable=!1,g(u.selectedDisposition?u.selectedDisposition.name.toUpperCase():"")})}}e.$inject=["$mdDialog","$q","toasty","api","dispositions","globalDispositions","call","contact","Auth","$translate","availableCalls","autoClose"],angular.module("app.staff").controller("DisposeCallDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.call=l,u.contact=r,u.hopper={minDate:new Date,dateTime:new Date},u.closeDialog=function(){a.cancel()},u.saveDialog=function(){return u.disable=!0,o.cmHopper.save({phone:u.contact.phone,UserId:c?d.getCurrentUser().id:null,ContactId:u.contact.id,ListId:u.contact.ListId,VoiceQueueId:Number(u.call["xmd-voicequeueid"]),scheduledat:moment(u.hopper.dateTime).format("YYYY-MM-DD HH:mm:ss"),priority:3,recallme:c,OwnerId:d.getCurrentUser().id}).$promise.then(function(){o.cmHopperFinal.update({id:u.call.uniqueid,rescheduled:!0,rescheduledat:moment(u.hopper.dateTime).format("YYYY-MM-DD HH:mm:ss"),recallme:c}).$promise}).then(function(){s.success({title:m.instant("DASHBOARDS.INFO"),msg:m.instant("DASHBOARDS.CALL_DISPOSED")+" "+(c?m.instant("DASHBOARDS.RECALLME"):m.instant("DASHBOARDS.RESCHEDULE"))}),a.hide()}).catch(function(e){a.cancel(e)}).finally(function(){u.disable=!1})}}e.$inject=["$scope","$state","$location","$mdDialog","$timeout","toasty","api","contact","call","Auth","recallme","$translate"],angular.module("app.staff").controller("RescheduleCallDialogController",e)}(),function(){"use strict";function e(e,a,n,t,i,s){var o=this;o.callNumber=i,o.page=1,o.onInit=function(){n.cmList.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){o.lists=_.chain(e.rows).keyBy("id").mapValues("name").value(),n.cmCustomField.get({fields:"id,alias",nolimit:!0}).$promise.then(function(e){o.customFields=e.rows,o.contacts=_.map(t,function(t){return Object.keys(t).forEach(function(e){if(Number(t[e])===Number(o.callNumber))if(e.startsWith("cf_")){var n=_.find(o.customFields,["id",Number(_.trimStart(e,"cf_"))]);t.matchingField=n?n.alias:a.instant("DASHBOARDS.UNKNOWN")}else t.matchingField=e}),t})})}).then(function(){o.paginatedContacts=_.chunk(t,4)}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmList.get",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},o.selectContact=function(){e.hide(o.selectedContact)}}e.$inject=["$mdDialog","$translate","api","contacts","callNumber","toasty"],angular.module("app.dashboards").controller("ContactSelectionController",e)}(),function(){"use strict";function e(e,n){var t=n(function(){},999);e.$on("$destroy",function(){t&&(n.cancel(t),t=null)})}e.$inject=["$scope","$interval"],angular.module("app.dashboards").controller("AgentHomeAbandonedController",e)}(),function(){"use strict";function e(e,n,a,i,t,s,o,r,l,d){var c=this;function m(){return o.disposition.get({fields:"createdAt,updatedAt,id,name,level,ParentId",sort:"name",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0}).$promise.then(function(e){return c.dispositions=e?e.rows:[],o.user.getQueues({id:r.getCurrentUser().id,fields:"id,name",channel:"voice",type:"outbound",nolimit:!0}).$promise}).then(function(e){c.queues=e||{count:0,rows:[]},c.queuesMap=_.mapValues(_.keyBy(c.queues.rows,"name"),"name"),c.defaultQueues=c.queues.rows?_.map(c.queues.rows,"name").join(","):void 0}).then(function(){c.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Agent",key:"lastAssignedTo",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:c.currentUser.name,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}],ngValue:"name"},{name:"Campaign",key:"queue",type:"multiselect",label:"DASHBOARDS.SELECT_CAMPAIGN",options:c.queues.rows,ngValue:"name",clearAll:!1}]}).catch(function(e){console.log(e)}).finally(function(){var e=t.localStorage.getItem("motion2.home.abandoned.bull.calls:"+c.currentUser.id);if(e)(e=JSON.parse(e)).query&&(c.query=_.merge(e.query,c.query));else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()};c.query.createdAt=n}c.isSearchBarVisible=!!c.query.filter,u()})}function u(){c.query.queue=c.query.queue||c.defaultQueues.split(","),c.query.offset=(c.query.page-1)*c.query.limit;var e={query:c.query};t.localStorage.setItem("motion2.home.abandoned.bull.calls:"+c.currentUser.id,JSON.stringify(e)),c.promise=o.voiceQueueReport.getVoiceQueuesReport(c.query,p).$promise}function p(e){c.abandonedCalls=e||{count:0,rows:[]},c.refresh=!0}c.showTooltip=!1,c.refresh=!0,c.disable=[],c.dispositions={count:0,rows:[]},c.currentUser=r.getCurrentUser(),c.queues={},c.abandonedCalls={count:0,rows:[]},c.query={fields:"id,type,calleridnum,calleridname,queue,queuecallerabandonAt,queuecallerexitAt,queuecallerexitreason,assigned,lastAssignedTo,updatedAt,disposition,secondDisposition,thirdDisposition",type:"outbound",queuecallerexitreason:"TIMEOUT,ABANDONED",sort:"-updatedAt",limit:10,page:1},c.getAbandonedCalls=u,c.refreshAbandonedCalls=function(){c.showTooltip=!1,u()},c.onInit=m,c.reserved=function(e){e&&(c.disable[e.id]=!0,o.voiceQueueReport.update({id:e.id,lastAssignedTo:e.assigned?c.currentUser.name:null,assigned:e.assigned}).$promise.catch(function(e){console.log(e)}).finally(function(){c.disable[e.id]=!1,e.lastAssignedTo=e.assigned?c.currentUser.name:null}))},c.dispose=function(t){a.show({controller:"DisposeAbandonedCallDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/home/abandoned/dispose/dialog.html",parent:angular.element(i.body),targetEvent:t,locals:{dispositions:c.dispositions,call:t}}).then(function(e){if(e){c.disable[t.id]=!0;var n={id:t.id,lastAssignedTo:t.assigned?c.currentUser.name:null,assigned:t.assigned,disposition:e.firstLevel||null,secondDisposition:e.secondLevel||null,thirdDisposition:e.thirdLevel||null};o.voiceQueueReport.update(n).$promise.catch(function(e){console.log(e)}).finally(function(){c.disable[t.id]=!1,t.disposition=e.firstLevel,t.secondDisposition=e.secondLevel,t.thirdDisposition=e.thirdLevel})}})},c.call=e.$parent.$parent.$parent.$parent.vm.call,c.transfer=e.$parent.$parent.$parent.$parent.vm.transfer,c.webcall=e.$parent.$parent.$parent.$parent.vm.webcall,c.webtransfer=e.$parent.$parent.$parent.$parent.vm.webtransfer,l.onWithoutApply("voiceQueueReport:save",function(e){c.queuesMap&&"outbound"===e.type&&c.queuesMap[e.queue]&&(c.showTooltip=!0)}),l.onWithoutApply("voiceQueueReport:update",function(e){if(e){var n=_.findIndex(c.abandonedCalls.rows,["id",e.id]);0<=n&&_.merge(c.abandonedCalls.rows[n],e)}}),m(),e.$on("$destroy",function(){l.removeAllListeners("voiceQueueReport:save"),l.removeAllListeners("voiceQueueReport:update")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeAbandonedBullController",e)}(),function(){"use strict";function e(n,e,t){var a=this;a.dispositions=e,a.call=t,a.note=a.call.note||void 0,a.onDispositionChange=function(e){switch(e){case"first":a.selectedDisposition=a.firstLevelDisposition,a.anySecondLevelDisposition=_.some(a.dispositions,["ParentId",a.firstLevelDisposition.id]),a.secondLevelDisposition=void 0,a.thirdLevelDisposition=void 0,a.anyThirdLevelDisposition=!1;break;case"second":a.selectedDisposition=a.secondLevelDisposition,a.anyThirdLevelDisposition=_.some(a.dispositions,["ParentId",a.secondLevelDisposition.id]);break;case"third":a.selectedDisposition=a.thirdLevelDisposition}},a.clearDispositionSelection=function(e){"second"===e?(a.secondLevelDisposition=void 0,a.thirdLevelDisposition=void 0,a.selectedDisposition=a.firstLevelDisposition):"third"===e&&(a.thirdLevelDisposition=void 0,a.selectedDisposition=a.secondLevelDisposition)},a.saveDisposition=function(){a.call.note=a.note;var e={firstLevel:a.firstLevelDisposition?a.firstLevelDisposition.name:void 0,secondLevel:a.secondLevelDisposition?a.secondLevelDisposition.name:void 0,thirdLevel:a.thirdLevelDisposition?a.thirdLevelDisposition.name:void 0};n.hide(e)},a.closeDialog=function(){n.cancel()}}e.$inject=["$mdDialog","dispositions","call"],angular.module("app.dashboards").controller("DisposeAbandonedCallDialogController",e)}(),function(){"use strict";function e(e,n,a,i,t,s,o,r,l,d){var c=this;function m(){return o.disposition.get({fields:"createdAt,updatedAt,id,name,level,ParentId",sort:"name",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0}).$promise.then(function(e){return c.dispositions=e?e.rows:[],o.user.getQueues({id:r.getCurrentUser().id,fields:"id,name",channel:"voice",type:"inbound",nolimit:!0}).$promise}).then(function(e){c.queues=e||{count:0,rows:[]},c.queuesMap=_.mapValues(_.keyBy(c.queues.rows,"name"),"name"),c.defaultQueues=c.queues.rows?_.map(c.queues.rows,"name").join(","):void 0}).then(function(){c.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Agent",key:"lastAssignedTo",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:c.currentUser.name,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}],ngValue:"name"},{name:"Campaign",key:"queue",type:"multiselect",label:"DASHBOARDS.SELECT_QUEUE",options:c.queues.rows,ngValue:"name",clearAll:!1}]}).catch(function(e){console.log(e)}).finally(function(){var e=t.localStorage.getItem("motion2.home.abandoned.voice.calls:"+c.currentUser.id);if(e)(e=JSON.parse(e)).query&&(c.query=_.merge(e.query,c.query));else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()};c.query.createdAt=n}c.isSearchBarVisible=!!c.query.filter,u()})}function u(){c.query.queue=c.query.queue||c.defaultQueues.split(","),c.query.offset=(c.query.page-1)*c.query.limit;var e={query:c.query};t.localStorage.setItem("motion2.home.abandoned.voice.calls:"+c.currentUser.id,JSON.stringify(e)),c.promise=o.voiceQueueReport.getVoiceQueuesReport(c.query,p).$promise}function p(e){c.abandonedCalls=e||{count:0,rows:[]},c.refresh=!0}c.showTooltip=!1,c.refresh=!0,c.disable=[],c.dispositions={count:0,rows:[]},c.currentUser=r.getCurrentUser(),c.queues={},c.abandonedCalls={count:0,rows:[]},c.query={fields:"id,type,calleridnum,calleridname,queue,queuecallerabandonAt,queuecallerexitAt,queuecallerexitreason,assigned,lastAssignedTo,updatedAt,disposition,secondDisposition,thirdDisposition",type:"inbound",queuecallerexitreason:"TIMEOUT,ABANDONED",sort:"-updatedAt",limit:10,page:1},c.getAbandonedCalls=u,c.refreshAbandonedCalls=function(){c.showTooltip=!1,u()},c.onInit=m,c.reserved=function(e){e&&(c.disable[e.id]=!0,o.voiceQueueReport.update({id:e.id,lastAssignedTo:e.assigned?c.currentUser.name:null,assigned:e.assigned}).$promise.catch(function(e){console.log(e)}).finally(function(){c.disable[e.id]=!1,e.lastAssignedTo=e.assigned?c.currentUser.name:null}))},c.dispose=function(t){a.show({controller:"DisposeAbandonedCallDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/home/abandoned/dispose/dialog.html",parent:angular.element(i.body),targetEvent:t,locals:{dispositions:c.dispositions,call:t}}).then(function(e){if(e){c.disable[t.id]=!0;var n={id:t.id,lastAssignedTo:t.assigned?c.currentUser.name:null,assigned:t.assigned,disposition:e.firstLevel||null,secondDisposition:e.secondLevel||null,thirdDisposition:e.thirdLevel||null};o.voiceQueueReport.update(n).$promise.catch(function(e){console.log(e)}).finally(function(){c.disable[t.id]=!1,t.disposition=e.firstLevel,t.secondDisposition=e.secondLevel,t.thirdDisposition=e.thirdLevel})}})},c.call=e.$parent.$parent.$parent.$parent.vm.call,c.transfer=e.$parent.$parent.$parent.$parent.vm.transfer,c.webcall=e.$parent.$parent.$parent.$parent.vm.webcall,c.webtransfer=e.$parent.$parent.$parent.$parent.vm.webtransfer,l.onWithoutApply("voiceQueueReport:save",function(e){c.queuesMap&&"inbound"===e.type&&c.queuesMap[e.queue]&&(c.showTooltip=!0)}),l.onWithoutApply("voiceQueueReport:update",function(e){if(e){var n=_.findIndex(c.abandonedCalls.rows,["id",e.id]);0<=n&&_.merge(c.abandonedCalls.rows[n],e)}}),m(),e.$on("$destroy",function(){l.removeAllListeners("voiceQueueReport:save"),l.removeAllListeners("voiceQueueReport:update")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeAbandonedVoiceController",e)}(),function(){"use strict";function e(n,a,t,e,i){var s=this;s.user=t.getCurrentUser(),s.license={},s.plugin={},s.setting={},s.sidebar="dashboard",s.draftManager=i,s.navigation=e.getNavigation(),s.addContactTab=n.$parent.vm.addContactTab,s.addInteractionTab=n.$parent.vm.addInteractionTab,s.init=function(e,n){s.license=e,s.setting=n;var t=a.localStorage.getItem("motion2.home:"+s.user.id);if(t){try{t=JSON.parse(t),s.sidebar=t.currentSidebarTab?t.currentSidebarTab:"dashboard"}catch(e){console.error(e),s.sidebar="dashboard"}"mail"===s.sidebar&&s.draftManager.init()}},s.changeSidebarTab=function(e){s.sidebar=e.view,"plugin"===s.sidebar&&(s.plugin=e.stateParams,s.pluginId=e.id,n.$broadcast("pluginUpdated",{plugin:s.plugin}));a.localStorage.setItem("motion2.home:"+s.user.id,JSON.stringify({currentSidebarTab:e.view}))},s.hasPermission=function(e){return t.hasPermission(e)},n.$watch("vm_home.sidebar",function(e,n){"mail"===e?s.draftManager.init():s.draftManager.drafts={}})}e.$inject=["$scope","$window","Auth","msNavigationAgentService","draftManager"],angular.module("app.dashboards").controller("AgentGeneralHomeController",e)}(),function(){"use strict";function e(t,n,i,s,a,o,r,e,l,d){var c=this;function m(e){!c.reloadingInteractions&&0<c.setting.chatInteractionsReloadTimeout&&A(!0),c.searchInProgress=!1,c.reloadingInteractions=!1,c.chatInteractions=e||{count:0,rows:[]};for(var n=0;n<c.chatInteractions.rows.length;n+=1)p(c.chatInteractions.rows[n])}function u(e,n){c.searchInProgress=!0,e||(c.query.page=1),c.query.offset=(c.query.page-1)*c.query.limit;var t=a.localStorage.getItem("motion2.home.chat:"+c.user.id);(t=t?JSON.parse(t):{}).query=c.query,a.localStorage.setItem("motion2.home.chat:"+c.user.id,JSON.stringify(t)),c.promise=r.chatInteraction.get(c.query,m).$promise}function p(e){"Unknown"===e.contactName&&(e.contactName=o.instant("DASHBOARDS.UNKNOWN"))}function g(e){var n=_.find(c.chatInteractions.rows,{id:e.ChatInteractionId});n&&n.Users&&(_.find(n.Users,{id:e.UserId})||n.Users.push({id:e.UserId}))}function v(e){var n=_.find(c.chatInteractions.rows,{id:e.ChatInteractionId});n&&n.Users&&_.remove(n.Users,{id:e.UserId})}function h(e){if(e){var n=_.find(c.chatInteractions.rows,{id:e.id});if(n){if(n.Users=[],e.closed&&(n.unreadMessages=0),c.query.sort){var t=_.startsWith(c.query.sort,"-")?"desc":"asc";c.chatInteractions.rows=_.orderBy(c.chatInteractions.rows,_.trimStart(c.query.sort,"-"),t)}_.merge(n,_.pick(e,_.keys(n)))}else 0===c.setting.chatInteractionsReloadTimeout&&u(c.query.page)}}function f(e){if(e){var n=_.find(c.chatInteractions.rows,{id:e.id});n&&(n.Tags=e.tags||[],_.merge(n,_.pick(e,_.keys(n))))}}function b(e){if(e&&!e.secret){var n=_.find(c.chatInteractions.rows,{id:e.ChatInteractionId});if(n){var t=_.find(n.Messages,{id:e.id});t?_.merge(t,_.pick(e,_.keys(t))):(_.isNil(n.Messages)&&(n.Messages={count:0}),e.read||(n.Messages.count+=1))}}}function A(e){e&&c.interactionsInterval&&n.cancel(c.interactionsInterval),c.interactionsInterval=n(function(){c.reloadingInteractions=!0,c.searchInProgress||u()},1e3*c.setting.chatInteractionsReloadTimeout)}c.user=e.getCurrentUser(),c.license={},c.setting={},c.tags={count:0,rows:[]},c.chatInteractions={count:0,rows:[]},c.query={includeAll:!0,sort:"-updatedAt",limit:10,page:1,read:null,closed:null},c.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Customer Ip",column:"customerIp",type:"text",options:{excludedOperators:["$eq","$ne","$startsWith","$endsWith"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Website",column:"ChatWebsiteId",type:"multiselect",options:{route:{model:"user",action:"getChatWebsites",params:{id:c.user.id,nolimit:!0}}}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}},{name:"Disposition",column:"disposition",type:"multiselect",options:{route:{model:"disposition",action:"get",field:"name",params:{field:"name,level",level:"first",nolimit:!0}}}},{name:"Second Disposition",column:"secondDisposition",type:"multiselect",options:{route:{model:"disposition",action:"get",field:"name",params:{field:"name,level",level:"second",nolimit:!0}}}},{name:"Third Disposition",column:"thirdDisposition",type:"multiselect",options:{route:{model:"disposition",action:"get",field:"name",params:{field:"name,level",level:"third",nolimit:!0}}}}]},c.sectionColor="green-A700",c.onInit=function(e,n){return c.license=e,c.setting=n,r.user["get"+_.upperFirst("ChatWebsites")]({id:c.user.id,nolimit:!0}).$promise.then(function(e){return c.chatAccounts=e||{count:0,rows:[]},r.tag.get().$promise}).then(function(e){c.tags=e||{count:0,rows:[]}}).then(function(){c.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Website",key:"ChatWebsiteId",type:"multiselect",label:"DASHBOARDS.SELECT_ACCOUNT",options:c.chatAccounts.rows,clearAll:!1},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:c.user.id,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:c.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=a.localStorage.getItem("motion2.home.chat:"+c.user.id);if(e)try{(e=JSON.parse(e)).query&&(c.query=_.merge(c.query,e.query),_.isEmpty(c.chatAccounts.rows)?c.query.ChatWebsiteId=[]:_.isEmpty(c.query.ChatWebsiteId)&&(c.query.ChatWebsiteId=_(c.chatAccounts.rows).map("id").take().value()),c.query.sort&&0<=c.query.sort.indexOf("lastMessage")&&(c.query=_.omit(c.query,"sort")),c.query.includeAll=!0,c.isSearchBarVisible=!(c.query.search||!c.query.filter))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()},t={ChatWebsiteId:_.map(c.chatAccounts.rows,"id"),createdAt:n};c.query=_.merge(c.query,t)}l.on("chatInteraction:save",h),l.on("chatInteraction:update",h),l.on("chatInteractionTags:save",f),l.on("chatMessage:save",b),l.on("chatMessage:update",b),l.on("user_has_chat_interactions:save",g),l.on("user_has_chat_interactions:remove",v),u(c.query.page),0<c.setting.chatInteractionsReloadTimeout&&A()})},c.success=m,c.getChatInteractions=u,c.showChatInteraction=function(e,n){t.$parent.vm.addInteractionTab("chat",n)},c.downloadChatInteraction=function(e,s,n){r.chatInteraction.download({id:s.id,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="chat-interaction"+s.id+".zip",a=new Blob(n,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"downloadChatInteraction",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.disposeInteraction=function(e,t){var a=c.user.voicePause||c.user.chatPause||c.user.mailPause||c.user.openchannelPause||c.user.faxPause,n=!t.Account.mandatoryDisposition;i.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(s.body),clickOutsideToClose:n,escapeToClose:n,onRemoving:function(e,n){c.user&&t.Account.mandatoryDisposition&&!a&&r.user.unpause({id:c.user.id}).$promise.catch(function(e){console.error(e)})},locals:{user:c.user,channel:"chat",interaction:t}})},c.getContactLabel=p,c.getAgentLabel=function(e){if(e.UserId)return e.UserId===c.user.id?o.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">";return o.instant("DASHBOARDS.NOT_ASSIGNED")},c.getChatWebsiteLabel=function(e){if(e.Account)return e.Account.key;return o.instant("DASHBOARDS.UNKNOWN")},c.openAdvancedSearch=function(){i.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(s.body),clickOutsideToClose:!1,locals:{color:c.sectionColor,fields:c.advancedSearch.fields,storagePath:"home.chat"},fullscreen:!0}).then(function(e){c.isSearchBarVisible=!(e.value||!c.query.filter),e.apply&&(c.query.search=e.value,u())}).catch(function(e){d.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},t.$on("$destroy",function(){l.removeAllListeners("chatMessage:save"),l.removeAllListeners("chatMessage:update"),l.removeAllListeners("chatInteraction:save"),l.removeAllListeners("chatInteractionTags:save"),l.removeAllListeners("chatInteraction:update"),l.removeAllListeners("user_has_chat_interactions:save"),l.removeAllListeners("user_has_chat_interactions:remove"),c.interactionsInterval&&n.cancel(c.interactionsInterval)})}e.$inject=["$scope","$interval","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeChatController",e)}(),function(){"use strict";function e(t,n,e,a,i,s,o,r){var l=this;function d(e){l.searchInProgress=!1,l.contacts=e||{count:0,rows:[]}}function c(e,n){l.searchInProgress=!0,o.cmContact.describe({id:l.query.ListId}).$promise.then(function(e){return _(e.toJSON()).omit("UserId").values().map(function(e){return function(e){var n={name:_.startCase(e.displayName),column:e.columnName,options:{}};if(e.custom)switch(e.custom.type){case"text":n.type="text";break;case"select":n.type="multiselect",n.values=_.map(JSON.parse(e.custom.values),function(e,n){return{id:n,name:e.value,value:e.value}}),n.options.field="name";break;case"switch":n.type="select",n.values=[{id:1,translate:"DASHBOARDS.ENABLED"},{id:0,translate:"DASHBOARDS.DISABLED"}],n.options.excludedOperators=["$ne"];break;case"number":n.type="number";break;case"datetime":n.type="date"}else switch(e.columnName){case"dateOfBirth":n.type="date";break;case"CompanyId":n.name="Company",n.type="autocomplete",n.options.route={model:"cmCompany",action:"get",params:{fields:"id,name",nolimit:!0}},n.options.searchFields=["name"],n.options.excludedOperators=["$ne"];break;case"ListId":n.name="List",n.type="autocomplete",n.options.route={model:"user",action:"getLists",params:{id:l.currentUser.id,fields:"id,name",nolimit:!0}},n.options.searchFields=["name"],n.options.excludedOperators=["$ne"];break;default:_.includes(e.type.toLowerCase(),"int")?n.type="number":_.includes(e.type.toLowerCase(),"date")?n.type="date":n.type="text"}return n}(e)}).value()}).then(function(e){l.advancedSearch.fields=e;var n=_.findIndex(e,function(e){return _.startsWith(e.column,"cf_")})||e.length-1;n<0&&(n=e.length),l.advancedSearch.fields.splice(n,0,{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"DESCRIBE_CM_CONTACTS",msg:e.data?JSON.stringify(e.data.message):e.toString()})}),e||(l.query.page=1),l.query.offset=(l.query.page-1)*l.query.limit;var t=i.localStorage.getItem("motion2.home.contacts:"+l.currentUser.id);(t=t?JSON.parse(t):{}).query=l.query,i.localStorage.setItem("motion2.home.contacts:"+l.currentUser.id,JSON.stringify(t)),l.promise=o.cmContact.get(l.query,d).$promise}l.currentUser=s.getCurrentUser(),l.lists={},l.contacts={count:0,rows:[]},l.tags={count:0,rows:[]},l.query={includeAll:!0,sort:"-updatedAt",limit:10,page:1},l.advancedSearch={fields:[]},l.sectionColor="red",l.getContacts=c,l.refreshContacts=function(){c()},l.mergeContact=function(e,n){a.show({controller:"MergeContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/merge/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:n.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:l.currentUser.id,fields:"id,name"})}]},locals:{contacts:l.contacts.rows}})},l.duplicateContact=function(e,n){a.show({controller:"DuplicateContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/duplicate/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:n.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:l.currentUser.id,fields:"id,name"})}]},locals:{contacts:l.contacts.rows}})},l.openContact=function(e){return o.cmContact.get({id:e}).$promise.then(function(e){n.$parent.vm.addContactTab(e)})},l.call=n.$parent.vm.call,l.onInit=function(){o.user.getLists({id:l.currentUser.id,fields:"id,name,dialPrefix",sort:"name",nolimit:!0}).$promise.then(function(e){return l.lists=e||{count:0,rows:[]},l.listsMap=_.keyBy(l.lists.rows,"id"),o.tag.get().$promise}).then(function(e){l.tags=e||{count:0,rows:[]}}).then(function(){l.quickFilters=[{name:"List",key:"ListId",type:"multiselect",label:"CONTACTMANAGER.SELECT_LIST",options:l.lists.rows,clearAll:!1},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:l.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=i.localStorage.getItem("motion2.home.contacts:"+l.currentUser.id);if(e)try{(e=JSON.parse(e)).query&&(l.query=_.merge(l.query,e.query),_.isEmpty(l.lists.rows)?l.query.ListId=[]:_.isEmpty(l.query.ListId)&&(l.query.ListId=_(l.lists.rows).map("id").take().value()))}catch(e){console.log(e)}else l.query.ListId=_.map(l.lists.rows,"id");l.isSearchBarVisible=!(l.query.search||!l.query.filter),c()})},l.openAdvancedSearch=function(){a.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{color:l.sectionColor,fields:l.advancedSearch.fields,storagePath:"home.contacts"},fullscreen:!0}).then(function(e){l.isSearchBarVisible=!(e.value||!l.query.filter),e.apply&&(l.query.search=e.value,c())}).catch(function(e){r.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}}e.$inject=["$document","$scope","$timeout","$mdDialog","$window","Auth","api","toasty"],angular.module("app.dashboards").controller("AgentHomeContactsController",e)}(),function(){"use strict";function e(e,n){var t=n(function(){},999);e.$on("$destroy",function(){t&&(n.cancel(t),t=null)})}e.$inject=["$scope","$interval"],angular.module("app.dashboards").controller("AgentHomeDashboardController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["type","waiting","dialMethod","dialActive"];function u(e){c.voiceQueuesTotal=e.count?e.count:0,c.voiceQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.voiceQueues,function(e,n){c.rpcVoiceQueues[n]&&(c.voiceQueues[n].waiting=c.rpcVoiceQueues[n].waiting||0)})}c.voiceQueues={},c.voiceQueuesTotal=0,c.rpcVoiceQueues={},c.getVoiceQueues={},c.rpcVoiceQueuesChannels={},c.addVoiceQueuesChannels={},c.deleteVoiceQueuesChannels=[],c.load=!0,c.query={id:r.getCurrentUser().id,fields:"id,name,type,dialMethod,dialActive",channel:"voice",type:"outbound",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=u,c.getVoiceQueues=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.user.getQueues(c.query,u).$promise},c.getSize=function(e){return _.size(e)},c.onSaveQueue=function(e){c.voiceQueues[e.id]&&c.rpcVoiceQueues[e.id]&&(c.rpcVoiceQueues[e.id]=e,_.merge(c.voiceQueues[e.id],_.pick(e,m)))},c.onSaveChannel=function(e){"outbound"===e.type&&(e.queuecallerleaveAt?(delete c.rpcVoiceQueuesChannels[e.uniqueid],c.load&&c.deleteVoiceQueuesChannels.push(e.uniqueid)):(c.rpcVoiceQueuesChannels[e.uniqueid]=e,c.load&&(c.addVoiceQueuesChannels[e.uniqueid]=e)))},c.onUserVoiceQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getVoiceQueues()},c.onSaveVoiceQueue=function(e){_.isNil(e)||(c.rpcVoiceQueues[e.id]=_.pick(e,m))},c.onUpdateVoiceQueue=function(e){_.isNil(e)||(c.rpcVoiceQueues[e.id]&&_.merge(c.rpcVoiceQueues[e.id],_.pick(e,m)),c.voiceQueues[e.id]&&_.merge(c.voiceQueues[e.id],_.pick(e,m)))},c.onRemoveVoiceQueue=function(e){_.isNil(e)||(delete c.rpcVoiceQueues[e.id],delete c.voiceQueues[e.id])},l.onWithoutApply("voice_queue:save",c.onSaveQueue),l.onWithoutApply("voice_queue_channel:save",c.onSaveChannel),l.onWithoutApply("userVoiceQueue:save",c.onUserVoiceQueue),l.onWithoutApply("userVoiceQueue:remove",c.onUserVoiceQueue),l.onWithoutApply("voiceQueue:save",c.onSaveVoiceQueue),l.onWithoutApply("voiceQueue:remove",c.onRemoveVoiceQueue),l.onWithoutApply("voiceQueue:update",c.onUpdateVoiceQueue),o.rpc.getVoiceQueues().$promise.then(function(e){return c.rpcVoiceQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},o.rpc.getVoiceQueuesChannels().$promise}).then(function(e){c.rpcVoiceQueuesChannels=e?_.keyBy(e.rows?_.filter(e.rows,{type:"outbound",queuecallerleaveAt:null}):[],"uniqueid"):{}}).catch(function(e){console.error(e)}).finally(function(){_.merge(c.rpcVoiceQueuesChannels,c.addVoiceQueuesChannels);for(var e=0;e<c.deleteVoiceQueuesChannels.length;e+=1)delete c.rpcVoiceQueuesChannels[c.deleteVoiceQueuesChannels[e]];c.load=!1,c.addVoiceQueuesChannels={},c.deleteVoiceQueuesChannels=[],c.getVoiceQueues()});var p=!0,g=1;e.$watch("vm_dc.query.filter",function(e,n){p?t(function(){p=!1}):(n||(g=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=g),c.getVoiceQueues())}),e.$on("$destroy",function(){l.removeAllListeners("voice_queue:save"),l.removeAllListeners("voice_queue_channel:save"),l.removeAllListeners("userVoiceQueue:save"),l.removeAllListeners("userVoiceQueue:remove"),l.removeAllListeners("voiceQueue:save"),l.removeAllListeners("voiceQueue:update"),l.removeAllListeners("voiceQueue:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardBullController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["id","name","mapAgentsId","waiting"],u=!0;function p(){var e=(c.queryChannels.page-1)*c.queryChannels.limit;c.paginatedInteractions=_.orderBy(c.rpcChatQueuesWaitingInteractions,["joinAt"],["desc"]),c.interactions=_.drop(c.paginatedInteractions,e).slice(0,c.queryChannels.limit)}function g(e){c.chatQueuesTotal=e.count?e.count:0,c.chatQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.chatQueues,function(e,n){c.rpcChatQueues[n]&&(c.chatQueues[n].waiting=c.rpcChatQueues[n].waiting||0)})}function v(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.user.getQueues(c.query,g).$promise}c.chatQueues={},c.chatQueuesTotal=0,c.rpcChatQueues={},c.paginatedInteractions=[],c.deleteChatQueuesWaitingInteractions=[],c.rpcChatQueuesWaitingInteractions={},c.query={id:r.getCurrentUser().id,channel:"chat",fields:"id,name,mapAgentsId,waiting",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=g,c.getChatQueues=v,c.getSize=function(e){return _.size(e)},c.getColorByChannel=function(e){switch(e){case"chat":return"green-A700-bg";case"mail":return"teal-bg";case"sms":return"orange-bg";case"whatsapp":return"lime-A700-bg";case"openchannel":return"amber-A200-bg";case"fax":return"blue-grey-A200-bg";default:return"white-bg"}},c.paginate=p,c.onSaveQueue=function(e){c.chatQueues[e.id]&&c.rpcChatQueues[e.id]&&(_.merge(c.rpcChatQueues[e.id],_.pick(e,m)),_.merge(c.chatQueues[e.id],_.pick(e,m)))},c.onSaveChatQueue=function(e){_.isNil(e)||(c.rpcChatQueues[e.id]=_.pick(e,m))},c.onUpdateChatQueue=function(e){_.isNil(e)||(c.rpcChatQueues[e.id]&&_.merge(c.rpcChatQueues[e.id],_.pick(e,m)),c.chatQueues[e.id]&&_.merge(c.chatQueues[e.id],_.pick(e,m)))},c.onRemoveChatQueue=function(e){_.isNil(e)||(delete c.rpcChatQueues[e.id],delete c.chatQueues[e.id])},c.onSaveUserChatQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getChatQueues()},c.onRemoveUserChatQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getChatQueues()},c.onSaveChatQueueChannel=function(e){c.chatQueues[e.queue_id]&&(c.rpcChatQueuesWaitingInteractions[e.id]=e,p())},c.onRemoveChatQueueChannel=function(e){delete c.rpcChatQueuesWaitingInteractions[e.id],u&&c.deleteChatQueuesWaitingInteractions.push(e.id);p()},l.onWithoutApply("chat_queue:save",c.onSaveQueue),l.onWithoutApply("chatQueue:save",c.onSaveChatQueue),l.onWithoutApply("chatQueue:update",c.onUpdateChatQueue),l.onWithoutApply("chatQueue:remove",c.onRemoveChatQueue),l.onWithoutApply("userChatQueue:save",c.onSaveUserChatQueue),l.onWithoutApply("userChatQueue:remove",c.onRemoveUserChatQueue),l.onWithoutApply("chat_queue_waiting_interaction:save",c.onSaveChatQueueChannel),l.onWithoutApply("chat_queue_waiting_interaction:remove",c.onRemoveChatQueueChannel),o.rpc.getChatQueues().$promise.then(function(e){c.rpcChatQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}).then(function(e){return o.user.getQueues({id:r.getCurrentUser().id,channel:"chat"}).$promise}).then(function(e){return c.myQueues=e.rows,o.rpc.getChatQueuesWaitingInteractions().$promise}).then(function(e){var n=_.filter(e.rows,function(e){return _.find(c.myQueues,{id:e.queue_id})});e.rows=n,e.count=n.length,_.merge(c.rpcChatQueuesWaitingInteractions,e?_.keyBy(e.rows?e.rows:[],"id"):{})}).catch(function(e){console.error(e)}).finally(function(){for(var e=0;e<c.deleteChatQueuesWaitingInteractions.length;e+=1)delete c.rpcChatQueuesWaitingInteractions[c.deleteChatQueuesWaitingInteractions[e]];u=!1,c.deleteChatQueuesWaitingInteractions=[],v(),p()});var h=!0,f=1;e.$watch("vm_dc.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=f),c.getChatQueues())}),e.$on("$destroy",function(){l.removeAllListeners("chat_queue:save"),l.removeAllListeners("chatQueue:save"),l.removeAllListeners("chatQueue:update"),l.removeAllListeners("chatQueue:remove"),l.removeAllListeners("userChatQueue:save"),l.removeAllListeners("userChatQueue:remove"),l.removeAllListeners("chat_queue_waiting_interaction:save"),l.removeAllListeners("chat_queue_waiting_interaction:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardMultiChannelChatController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["id","name","mapAgentsId","waiting"],u=!0;function p(){var e=(c.queryChannels.page-1)*c.queryChannels.limit;c.paginatedInteractions=_.orderBy(c.rpcFaxQueuesWaitingInteractions,["joinAt"],["desc"]),c.interactions=_.drop(c.paginatedInteractions,e).slice(0,c.queryChannels.limit)}function g(e){c.faxQueuesTotal=e.count?e.count:0,c.faxQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.faxQueues,function(e,n){c.rpcFaxQueues[n]&&(c.faxQueues[n].waiting=c.rpcFaxQueues[n].waiting||0)})}function v(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.user.getQueues(c.query,g).$promise}c.faxQueues={},c.faxQueuesTotal=0,c.rpcFaxQueues={},c.paginatedInteractions=[],c.deleteFaxQueuesWaitingInteractions=[],c.rpcFaxQueuesWaitingInteractions={},c.query={id:r.getCurrentUser().id,channel:"fax",fields:"id,name,mapAgentsId,waiting",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=g,c.getFaxQueues=v,c.getSize=function(e){return _.size(e)},c.getColorByChannel=function(e){switch(e){case"chat":return"green-A700-bg";case"mail":return"teal-bg";case"sms":return"orange-bg";case"whatsapp":return"lime-A700-bg";case"openchannel":return"amber-A200-bg";case"fax":return"blue-grey-A200-bg";default:return"white-bg"}},c.paginate=p,c.onSaveQueue=function(e){c.faxQueues[e.id]&&c.rpcFaxQueues[e.id]&&(_.merge(c.rpcFaxQueues[e.id],_.pick(e,m)),_.merge(c.faxQueues[e.id],_.pick(e,m)))},c.onSaveFaxQueue=function(e){_.isNil(e)||(c.rpcFaxQueues[e.id]=_.pick(e,m))},c.onUpdateFaxQueue=function(e){_.isNil(e)||(c.rpcFaxQueues[e.id]&&_.merge(c.rpcFaxQueues[e.id],_.pick(e,m)),c.faxQueues[e.id]&&_.merge(c.faxQueues[e.id],_.pick(e,m)))},c.onRemoveFaxQueue=function(e){_.isNil(e)||(delete c.rpcFaxQueues[e.id],delete c.faxQueues[e.id])},c.onSaveUserFaxQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getFaxQueues()},c.onRemoveUserFaxQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getFaxQueues()},c.onSaveFaxQueueChannel=function(e){c.faxQueues[e.queue_id]&&(c.rpcFaxQueuesWaitingInteractions[e.id]=e,p())},c.onRemoveFaxQueueChannel=function(e){delete c.rpcFaxQueuesWaitingInteractions[e.id],u&&c.deleteFaxQueuesWaitingInteractions.push(e.id);p()},l.onWithoutApply("fax_queue:save",c.onSaveQueue),l.onWithoutApply("faxQueue:save",c.onSaveFaxQueue),l.onWithoutApply("faxQueue:update",c.onUpdateFaxQueue),l.onWithoutApply("faxQueue:remove",c.onRemoveFaxQueue),l.onWithoutApply("userFaxQueue:save",c.onSaveUserFaxQueue),l.onWithoutApply("userFaxQueue:remove",c.onRemoveUserFaxQueue),l.onWithoutApply("fax_queue_waiting_interaction:save",c.onSaveFaxQueueChannel),l.onWithoutApply("fax_queue_waiting_interaction:remove",c.onRemoveFaxQueueChannel),o.rpc.getFaxQueues().$promise.then(function(e){c.rpcFaxQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}).then(function(e){return o.user.getQueues({id:r.getCurrentUser().id,channel:"fax"}).$promise}).then(function(e){return c.myQueues=e.rows,o.rpc.getFaxQueuesWaitingInteractions().$promise}).then(function(e){var n=_.filter(e.rows,function(e){return _.find(c.myQueues,{id:e.queue_id})});e.rows=n,e.count=n.length,_.merge(c.rpcFaxQueuesWaitingInteractions,e?_.keyBy(e.rows?e.rows:[],"id"):{})}).catch(function(e){console.error(e)}).finally(function(){for(var e=0;e<c.deleteFaxQueuesWaitingInteractions.length;e+=1)delete c.rpcFaxQueuesWaitingInteractions[c.deleteFaxQueuesWaitingInteractions[e]];u=!1,c.deleteFaxQueuesWaitingInteractions=[],v(),p()});var h=!0,f=1;e.$watch("vm_dc.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=f),c.getFaxQueues())}),e.$on("$destroy",function(){l.removeAllListeners("fax_queue:save"),l.removeAllListeners("faxQueue:save"),l.removeAllListeners("faxQueue:update"),l.removeAllListeners("faxQueue:remove"),l.removeAllListeners("userFaxQueue:save"),l.removeAllListeners("userFaxQueue:remove"),l.removeAllListeners("fax_queue_waiting_interaction:save"),l.removeAllListeners("fax_queue_waiting_interaction:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardMultiChannelFaxController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["id","name","mapAgentsId","waiting"],u=!0;function p(){var e=(c.queryChannels.page-1)*c.queryChannels.limit;c.paginatedInteractions=_.orderBy(c.rpcMailQueuesWaitingInteractions,["joinAt"],["desc"]),c.interactions=_.drop(c.paginatedInteractions,e).slice(0,c.queryChannels.limit)}function g(e){c.mailQueuesTotal=e.count?e.count:0,c.mailQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.mailQueues,function(e,n){c.rpcMailQueues[n]&&(c.mailQueues[n].waiting=c.rpcMailQueues[n].waiting||0)})}function v(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.user.getQueues(c.query,g).$promise}c.mailQueues={},c.mailQueuesTotal=0,c.rpcMailQueues={},c.paginatedInteractions=[],c.deleteMailQueuesWaitingInteractions=[],c.rpcMailQueuesWaitingInteractions={},c.query={id:r.getCurrentUser().id,channel:"mail",fields:"id,name,mapAgentsId,waiting",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=g,c.getMailQueues=v,c.getSize=function(e){return _.size(e)},c.getColorByChannel=function(e){switch(e){case"chat":return"green-A700-bg";case"mail":return"teal-bg";case"sms":return"orange-bg";case"whatsapp":return"lime-A700-bg";case"openchannel":return"amber-A200-bg";case"fax":return"blue-grey-A200-bg";default:return"white-bg"}},c.paginate=p,c.onSaveQueue=function(e){c.mailQueues[e.id]&&c.rpcMailQueues[e.id]&&(_.merge(c.rpcMailQueues[e.id],_.pick(e,m)),_.merge(c.mailQueues[e.id],_.pick(e,m)))},c.onSaveMailQueue=function(e){_.isNil(e)||(c.rpcMailQueues[e.id]=_.pick(e,m))},c.onUpdateMailQueue=function(e){_.isNil(e)||(c.rpcMailQueues[e.id]&&_.merge(c.rpcMailQueues[e.id],_.pick(e,m)),c.mailQueues[e.id]&&_.merge(c.mailQueues[e.id],_.pick(e,m)))},c.onRemoveMailQueue=function(e){_.isNil(e)||(delete c.rpcMailQueues[e.id],delete c.mailQueues[e.id])},c.onSaveUserMailQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getMailQueues()},c.onRemoveUserMailQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getMailQueues()},c.onSaveMailQueueChannel=function(e){c.mailQueues[e.queue_id]&&(c.rpcMailQueuesWaitingInteractions[e.id]=e,p())},c.onRemoveMailQueueChannel=function(e){delete c.rpcMailQueuesWaitingInteractions[e.id],u&&c.deleteMailQueuesWaitingInteractions.push(e.id);p()},l.onWithoutApply("mail_queue:save",c.onSaveQueue),l.onWithoutApply("mailQueue:save",c.onSaveMailQueue),l.onWithoutApply("mailQueue:update",c.onUpdateMailQueue),l.onWithoutApply("mailQueue:remove",c.onRemoveMailQueue),l.onWithoutApply("userMailQueue:save",c.onSaveUserMailQueue),l.onWithoutApply("userMailQueue:remove",c.onRemoveUserMailQueue),l.onWithoutApply("mail_queue_waiting_interaction:save",c.onSaveMailQueueChannel),l.onWithoutApply("mail_queue_waiting_interaction:remove",c.onRemoveMailQueueChannel),o.rpc.getMailQueues().$promise.then(function(e){c.rpcMailQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}).then(function(e){return o.user.getQueues({id:r.getCurrentUser().id,channel:"mail"}).$promise}).then(function(e){return c.myQueues=e.rows,o.rpc.getMailQueuesWaitingInteractions().$promise}).then(function(e){var n=_.filter(e.rows,function(e){return _.find(c.myQueues,{id:e.queue_id})});e.rows=n,e.count=n.length,_.merge(c.rpcMailQueuesWaitingInteractions,e?_.keyBy(e.rows?e.rows:[],"id"):{})}).catch(function(e){console.error(e)}).finally(function(){for(var e=0;e<c.deleteMailQueuesWaitingInteractions.length;e+=1)delete c.rpcMailQueuesWaitingInteractions[c.deleteMailQueuesWaitingInteractions[e]];u=!1,c.deleteMailQueuesWaitingInteractions=[],v(),p()});var h=!0,f=1;e.$watch("vm_dc.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=f),c.getMailQueues())}),e.$on("$destroy",function(){l.removeAllListeners("mail_queue:save"),l.removeAllListeners("mailQueue:save"),l.removeAllListeners("mailQueue:update"),l.removeAllListeners("mailQueue:remove"),l.removeAllListeners("userMailQueue:save"),l.removeAllListeners("userMailQueue:remove"),l.removeAllListeners("mail_queue_waiting_interaction:save"),l.removeAllListeners("mail_queue_waiting_interaction:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardMultiChannelMailController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["id","name","mapAgentsId","waiting"],u=!0;function p(){var e=(c.queryChannels.page-1)*c.queryChannels.limit;c.paginatedInteractions=_.orderBy(c.rpcOpenchannelQueuesWaitingInteractions,["joinAt"],["desc"]),c.interactions=_.drop(c.paginatedInteractions,e).slice(0,c.queryChannels.limit)}function g(e){c.openchannelQueuesTotal=e.count?e.count:0,c.openchannelQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.openchannelQueues,function(e,n){c.rpcOpenchannelQueues[n]&&(c.openchannelQueues[n].waiting=c.rpcOpenchannelQueues[n].waiting||0)})}function v(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.user.getQueues(c.query,g).$promise}c.openchannelQueues={},c.openchannelQueuesTotal=0,c.rpcOpenchannelQueues={},c.paginatedInteractions=[],c.deleteOpenchannelQueuesWaitingInteractions=[],c.rpcOpenchannelQueuesWaitingInteractions={},c.query={id:r.getCurrentUser().id,channel:"openchannel",fields:"id,name,mapAgentsId,waiting",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=g,c.getOpenchannelQueues=v,c.getSize=function(e){return _.size(e)},c.getColorByChannel=function(e){switch(e){case"chat":return"green-A700-bg";case"mail":return"teal-bg";case"sms":return"orange-bg";case"whatsapp":return"lime-A700-bg";case"openchannel":return"amber-A200-bg";case"fax":return"blue-grey-A200-bg";default:return"white-bg"}},c.paginate=p,c.onSaveQueue=function(e){c.openchannelQueues[e.id]&&c.rpcOpenchannelQueues[e.id]&&(_.merge(c.rpcOpenchannelQueues[e.id],_.pick(e,m)),_.merge(c.openchannelQueues[e.id],_.pick(e,m)))},c.onSaveOpenchannelQueue=function(e){_.isNil(e)||(c.rpcOpenchannelQueues[e.id]=_.pick(e,m))},c.onUpdateOpenchannelQueue=function(e){_.isNil(e)||(c.rpcOpenchannelQueues[e.id]&&_.merge(c.rpcOpenchannelQueues[e.id],_.pick(e,m)),c.openchannelQueues[e.id]&&_.merge(c.openchannelQueues[e.id],_.pick(e,m)))},c.onRemoveOpenchannelQueue=function(e){_.isNil(e)||(delete c.rpcOpenchannelQueues[e.id],delete c.openchannelQueues[e.id])},c.onSaveUserOpenchannelQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getOpenchannelQueues()},c.onRemoveUserOpenchannelQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getOpenchannelQueues()},c.onSaveOpenchannelQueueChannel=function(e){c.openchannelQueues[e.queue_id]&&(c.rpcOpenchannelQueuesWaitingInteractions[e.id]=e,p())},c.onRemoveOpenchannelQueueChannel=function(e){delete c.rpcOpenchannelQueuesWaitingInteractions[e.id],u&&c.deleteOpenchannelQueuesWaitingInteractions.push(e.id);p()},l.onWithoutApply("openchannel_queue:save",c.onSaveQueue),l.onWithoutApply("openchannelQueue:save",c.onSaveOpenchannelQueue),l.onWithoutApply("openchannelQueue:update",c.onUpdateOpenchannelQueue),l.onWithoutApply("openchannelQueue:remove",c.onRemoveOpenchannelQueue),l.onWithoutApply("userOpenchannelQueue:save",c.onSaveUserOpenchannelQueue),l.onWithoutApply("userOpenchannelQueue:remove",c.onRemoveUserOpenchannelQueue),l.onWithoutApply("openchannel_queue_waiting_interaction:save",c.onSaveOpenchannelQueueChannel),l.onWithoutApply("openchannel_queue_waiting_interaction:remove",c.onRemoveOpenchannelQueueChannel),o.rpc.getOpenchannelQueues().$promise.then(function(e){c.rpcOpenchannelQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}).then(function(e){return o.user.getQueues({id:r.getCurrentUser().id,channel:"openchannel"}).$promise}).then(function(e){return c.myQueues=e.rows,o.rpc.getOpenchannelQueuesWaitingInteractions().$promise}).then(function(e){var n=_.filter(e.rows,function(e){return _.find(c.myQueues,{id:e.queue_id})});e.rows=n,e.count=n.length,_.merge(c.rpcOpenchannelQueuesWaitingInteractions,e?_.keyBy(e.rows?e.rows:[],"id"):{})}).catch(function(e){console.error(e)}).finally(function(){for(var e=0;e<c.deleteOpenchannelQueuesWaitingInteractions.length;e+=1)delete c.rpcOpenchannelQueuesWaitingInteractions[c.deleteOpenchannelQueuesWaitingInteractions[e]];u=!1,c.deleteOpenchannelQueuesWaitingInteractions=[],v(),p()});var h=!0,f=1;e.$watch("vm_dc.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=f),c.getOpenchannelQueues())}),e.$on("$destroy",function(){l.removeAllListeners("openchannel_queue:save"),l.removeAllListeners("openchannelQueue:save"),l.removeAllListeners("openchannelQueue:update"),l.removeAllListeners("openchannelQueue:remove"),l.removeAllListeners("userOpenchannelQueue:save"),l.removeAllListeners("userOpenchannelQueue:remove"),l.removeAllListeners("openchannel_queue_waiting_interaction:save"),l.removeAllListeners("openchannel_queue_waiting_interaction:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardMultiChannelOpenchannelController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["id","name","mapAgentsId","waiting"],u=!0;function p(){var e=(c.queryChannels.page-1)*c.queryChannels.limit;c.paginatedInteractions=_.orderBy(c.rpcSmsQueuesWaitingInteractions,["joinAt"],["desc"]),c.interactions=_.drop(c.paginatedInteractions,e).slice(0,c.queryChannels.limit)}function g(e){c.smsQueuesTotal=e.count?e.count:0,c.smsQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.smsQueues,function(e,n){c.rpcSmsQueues[n]&&(c.smsQueues[n].waiting=c.rpcSmsQueues[n].waiting||0)})}function v(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.user.getQueues(c.query,g).$promise}c.smsQueues={},c.smsQueuesTotal=0,c.rpcSmsQueues={},c.paginatedInteractions=[],c.deleteSmsQueuesWaitingInteractions=[],c.rpcSmsQueuesWaitingInteractions={},c.query={id:r.getCurrentUser().id,channel:"sms",fields:"id,name,mapAgentsId,waiting",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=g,c.getSmsQueues=v,c.getSize=function(e){return _.size(e)},c.getColorByChannel=function(e){switch(e){case"chat":return"green-A700-bg";case"mail":return"teal-bg";case"sms":return"orange-bg";case"whatsapp":return"lime-A700-bg";case"openchannel":return"amber-A200-bg";case"fax":return"blue-grey-A200-bg";default:return"white-bg"}},c.paginate=p,c.onSaveQueue=function(e){c.smsQueues[e.id]&&c.rpcSmsQueues[e.id]&&(_.merge(c.rpcSmsQueues[e.id],_.pick(e,m)),_.merge(c.smsQueues[e.id],_.pick(e,m)))},c.onSaveSmsQueue=function(e){_.isNil(e)||(c.rpcSmsQueues[e.id]=_.pick(e,m))},c.onUpdateSmsQueue=function(e){_.isNil(e)||(c.rpcSmsQueues[e.id]&&_.merge(c.rpcSmsQueues[e.id],_.pick(e,m)),c.smsQueues[e.id]&&_.merge(c.smsQueues[e.id],_.pick(e,m)))},c.onRemoveSmsQueue=function(e){_.isNil(e)||(delete c.rpcSmsQueues[e.id],delete c.smsQueues[e.id])},c.onSaveUserSmsQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getSmsQueues()},c.onRemoveUserSmsQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getSmsQueues()},c.onSaveSmsQueueChannel=function(e){c.smsQueues[e.queue_id]&&(c.rpcSmsQueuesWaitingInteractions[e.id]=e,p())},c.onRemoveSmsQueueChannel=function(e){delete c.rpcSmsQueuesWaitingInteractions[e.id],u&&c.deleteSmsQueuesWaitingInteractions.push(e.id);p()},l.onWithoutApply("sms_queue:save",c.onSaveQueue),l.onWithoutApply("smsQueue:save",c.onSaveSmsQueue),l.onWithoutApply("smsQueue:update",c.onUpdateSmsQueue),l.onWithoutApply("smsQueue:remove",c.onRemoveSmsQueue),l.onWithoutApply("userSmsQueue:save",c.onSaveUserSmsQueue),l.onWithoutApply("userSmsQueue:remove",c.onRemoveUserSmsQueue),l.onWithoutApply("sms_queue_waiting_interaction:save",c.onSaveSmsQueueChannel),l.onWithoutApply("sms_queue_waiting_interaction:remove",c.onRemoveSmsQueueChannel),o.rpc.getSmsQueues().$promise.then(function(e){c.rpcSmsQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}).then(function(e){return o.user.getQueues({id:r.getCurrentUser().id,channel:"sms"}).$promise}).then(function(e){return c.myQueues=e.rows,o.rpc.getSmsQueuesWaitingInteractions().$promise}).then(function(e){var n=_.filter(e.rows,function(e){return _.find(c.myQueues,{id:e.queue_id})});e.rows=n,e.count=n.length,_.merge(c.rpcSmsQueuesWaitingInteractions,e?_.keyBy(e.rows?e.rows:[],"id"):{})}).catch(function(e){console.error(e)}).finally(function(){for(var e=0;e<c.deleteSmsQueuesWaitingInteractions.length;e+=1)delete c.rpcSmsQueuesWaitingInteractions[c.deleteSmsQueuesWaitingInteractions[e]];u=!1,c.deleteSmsQueuesWaitingInteractions=[],v(),p()});var h=!0,f=1;e.$watch("vm_dc.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=f),c.getSmsQueues())}),e.$on("$destroy",function(){l.removeAllListeners("sms_queue:save"),l.removeAllListeners("smsQueue:save"),l.removeAllListeners("smsQueue:update"),l.removeAllListeners("smsQueue:remove"),l.removeAllListeners("userSmsQueue:save"),l.removeAllListeners("userSmsQueue:remove"),l.removeAllListeners("sms_queue_waiting_interaction:save"),l.removeAllListeners("sms_queue_waiting_interaction:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardMultiChannelSmsController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["type","waiting","dialMethod","dialActive"];function u(e){c.voiceQueuesTotal=e.count?e.count:0,c.voiceQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.voiceQueues,function(e,n){c.rpcVoiceQueues[n]&&(c.voiceQueues[n].waiting=c.rpcVoiceQueues[n].waiting||0)})}c.voiceQueues={},c.voiceQueuesTotal=0,c.rpcVoiceQueues={},c.getVoiceQueues={},c.rpcVoiceQueuesChannels={},c.addVoiceQueuesChannels={},c.deleteVoiceQueuesChannels=[],c.load=!0,c.query={id:r.getCurrentUser().id,fields:"id,name,type,dialMethod,dialActive",channel:"voice",type:"inbound",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=u,c.getVoiceQueues=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.user.getQueues(c.query,u).$promise},c.getSize=function(e){return _.size(e)},c.onSaveQueue=function(e){c.voiceQueues[e.id]&&c.rpcVoiceQueues[e.id]&&(c.rpcVoiceQueues[e.id]=e,_.merge(c.voiceQueues[e.id],_.pick(e,m)))},c.onSaveChannel=function(e){"inbound"===e.type&&(e.queuecallerleaveAt?(delete c.rpcVoiceQueuesChannels[e.uniqueid],c.load&&c.deleteVoiceQueuesChannels.push(e.uniqueid)):(c.rpcVoiceQueuesChannels[e.uniqueid]=e,c.load&&(c.addVoiceQueuesChannels[e.uniqueid]=e)))},c.onUserVoiceQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getVoiceQueues()},c.onSaveVoiceQueue=function(e){_.isNil(e)||(c.rpcVoiceQueues[e.id]=_.pick(e,m))},c.onUpdateVoiceQueue=function(e){_.isNil(e)||(c.rpcVoiceQueues[e.id]&&_.merge(c.rpcVoiceQueues[e.id],_.pick(e,m)),c.voiceQueues[e.id]&&_.merge(c.voiceQueues[e.id],_.pick(e,m)))},c.onRemoveVoiceQueue=function(e){_.isNil(e)||(delete c.rpcVoiceQueues[e.id],delete c.voiceQueues[e.id])},l.onWithoutApply("voice_queue:save",c.onSaveQueue),l.onWithoutApply("voice_queue_channel:save",c.onSaveChannel),l.onWithoutApply("userVoiceQueue:save",c.onUserVoiceQueue),l.onWithoutApply("userVoiceQueue:remove",c.onUserVoiceQueue),l.onWithoutApply("voiceQueue:save",c.onSaveVoiceQueue),l.onWithoutApply("voiceQueue:remove",c.onRemoveVoiceQueue),l.onWithoutApply("voiceQueue:update",c.onUpdateVoiceQueue),o.user.getQueues(c.query).$promise.then(function(e){return c.myQueues=e,o.rpc.getVoiceQueues().$promise}).then(function(e){for(var n=e.rows,t=_.keyBy(n,"id"),a=0;a<c.myQueues.count;a++){var i=c.myQueues.rows[a];c.rpcVoiceQueues[i.id]=t[i.id]}return o.rpc.getVoiceQueuesChannels().$promise}).then(function(e){c.rpcVoiceQueuesChannels=e?_.keyBy(e.rows?_.filter(e.rows,function(e){return!("inbound"!==e.type||e.queuecallerleaveAt||!_.find(c.myQueues.rows,{name:e.queue}))}):[],"uniqueid"):{}}).catch(function(e){console.error(e)}).finally(function(){_.merge(c.rpcVoiceQueuesChannels,c.addVoiceQueuesChannels);for(var e=0;e<c.deleteVoiceQueuesChannels.length;e+=1)delete c.rpcVoiceQueuesChannels[c.deleteVoiceQueuesChannels[e]];c.load=!1,c.addVoiceQueuesChannels={},c.deleteVoiceQueuesChannels=[],c.getVoiceQueues()});var p=!0,g=1;e.$watch("vm_dc.query.filter",function(e,n){p?t(function(){p=!1}):(n||(g=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=g),c.getVoiceQueues())}),e.$on("$destroy",function(){l.removeAllListeners("voice_queue:save"),l.removeAllListeners("voice_queue_channel:save"),l.removeAllListeners("userVoiceQueue:save"),l.removeAllListeners("userVoiceQueue:remove"),l.removeAllListeners("voiceQueue:save"),l.removeAllListeners("voiceQueue:update"),l.removeAllListeners("voiceQueue:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardVoiceController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["id","name","mapAgentsId","waiting"],u=!0;function p(){var e=(c.queryChannels.page-1)*c.queryChannels.limit;c.paginatedInteractions=_.orderBy(c.rpcWhatsappQueuesWaitingInteractions,["joinAt"],["desc"]),c.interactions=_.drop(c.paginatedInteractions,e).slice(0,c.queryChannels.limit)}function g(e){c.whatsappQueuesTotal=e.count?e.count:0,c.whatsappQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.whatsappQueues,function(e,n){c.rpcWhatsappQueues[n]&&(c.whatsappQueues[n].waiting=c.rpcWhatsappQueues[n].waiting||0)})}function v(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.user.getQueues(c.query,g).$promise}c.whatsappQueues={},c.whatsappQueuesTotal=0,c.rpcWhatsappQueues={},c.paginatedInteractions=[],c.deleteWhatsappQueuesWaitingInteractions=[],c.rpcWhatsappQueuesWaitingInteractions={},c.query={id:r.getCurrentUser().id,channel:"whatsapp",fields:"id,name,mapAgentsId,waiting",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=g,c.getWhatsappQueues=v,c.getSize=function(e){return _.size(e)},c.getColorByChannel=function(e){switch(e){case"chat":return"green-A700-bg";case"mail":return"teal-bg";case"sms":return"orange-bg";case"whatsapp":return"lime-A700-bg";case"openchannel":return"amber-A200-bg";case"fax":return"blue-grey-A200-bg";default:return"white-bg"}},c.paginate=p,c.onSaveQueue=function(e){c.whatsappQueues[e.id]&&c.rpcWhatsappQueues[e.id]&&(_.merge(c.rpcWhatsappQueues[e.id],_.pick(e,m)),_.merge(c.whatsappQueues[e.id],_.pick(e,m)))},c.onSaveWhatsappQueue=function(e){_.isNil(e)||(c.rpcWhatsappQueues[e.id]=_.pick(e,m))},c.onUpdateWhatsappQueue=function(e){_.isNil(e)||(c.rpcWhatsappQueues[e.id]&&_.merge(c.rpcWhatsappQueues[e.id],_.pick(e,m)),c.whatsappQueues[e.id]&&_.merge(c.whatsappQueues[e.id],_.pick(e,m)))},c.onRemoveWhatsappQueue=function(e){_.isNil(e)||(delete c.rpcWhatsappQueues[e.id],delete c.whatsappQueues[e.id])},c.onSaveUserWhatsappQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getWhatsappQueues()},c.onRemoveUserWhatsappQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getWhatsappQueues()},c.onSaveWhatsappQueueChannel=function(e){c.whatsappQueues[e.queue_id]&&(c.rpcWhatsappQueuesWaitingInteractions[e.id]=e,p())},c.onRemoveWhatsappQueueChannel=function(e){delete c.rpcWhatsappQueuesWaitingInteractions[e.id],u&&c.deleteWhatsappQueuesWaitingInteractions.push(e.id);p()},l.onWithoutApply("whatsapp_queue:save",c.onSaveQueue),l.onWithoutApply("whatsappQueue:save",c.onSaveWhatsappQueue),l.onWithoutApply("whatsappQueue:update",c.onUpdateWhatsappQueue),l.onWithoutApply("whatsappQueue:remove",c.onRemoveWhatsappQueue),l.onWithoutApply("userWhatsappQueue:save",c.onSaveUserWhatsappQueue),l.onWithoutApply("userWhatsappQueue:remove",c.onRemoveUserWhatsappQueue),l.onWithoutApply("whatsapp_queue_waiting_interaction:save",c.onSaveWhatsappQueueChannel),l.onWithoutApply("whatsapp_queue_waiting_interaction:remove",c.onRemoveWhatsappQueueChannel),o.rpc.getWhatsappQueues().$promise.then(function(e){c.rpcWhatsappQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}).then(function(e){return o.user.getQueues({id:r.getCurrentUser().id,channel:"whatsapp"}).$promise}).then(function(e){return c.myQueues=e.rows,o.rpc.getWhatsappQueuesWaitingInteractions().$promise}).then(function(e){var n=_.filter(e.rows,function(e){return _.find(c.myQueues,{id:e.queue_id})});e.rows=n,e.count=n.length,_.merge(c.rpcWhatsappQueuesWaitingInteractions,e?_.keyBy(e.rows?e.rows:[],"id"):{})}).catch(function(e){console.error(e)}).finally(function(){for(var e=0;e<c.deleteWhatsappQueuesWaitingInteractions.length;e+=1)delete c.rpcWhatsappQueuesWaitingInteractions[c.deleteWhatsappQueuesWaitingInteractions[e]];u=!1,c.deleteWhatsappQueuesWaitingInteractions=[],v(),p()});var h=!0,f=1;e.$watch("vm_dc.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=f),c.getWhatsappQueues())}),e.$on("$destroy",function(){l.removeAllListeners("whatsapp_queue:save"),l.removeAllListeners("whatsappQueue:save"),l.removeAllListeners("whatsappQueue:update"),l.removeAllListeners("whatsappQueue:remove"),l.removeAllListeners("userWhatsappQueue:save"),l.removeAllListeners("userWhatsappQueue:remove"),l.removeAllListeners("whatsapp_queue_waiting_interaction:save"),l.removeAllListeners("whatsapp_queue_waiting_interaction:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardMultiChannelWhatsappController",e)}(),function(){"use strict";function e(i,t,s,o,a,n,r,e,l,d,c){var m=this;function u(e){!m.reloadingInteractions&&0<m.setting.faxInteractionsReloadTimeout&&function(e){e&&m.interactionsInterval&&t.cancel(m.interactionsInterval);m.interactionsInterval=t(function(){m.reloadingInteractions=!0,m.searchInProgress||p()},1e3*m.setting.faxInteractionsReloadTimeout)}(!0),m.searchInProgress=!1,m.reloadingInteractions=!1,m.faxInteractions=e||{count:0,rows:[]};for(var n=0;n<m.faxInteractions.rows.length;n+=1)g(m.faxInteractions.rows[n])}function p(e,n){m.searchInProgress=!0,e||(m.query.page=1),m.query.offset=(m.query.page-1)*m.query.limit;var t=a.localStorage.getItem("motion2.home.fax:"+m.user.id);(t=t?JSON.parse(t):{}).query=m.query,a.localStorage.setItem("motion2.home.fax:"+m.user.id,JSON.stringify(t)),m.promise=r.faxInteraction.get(m.query,u).$promise}function g(e){e.contactInfo=e.Contact?e.Contact.fax:void 0,"Unknown"===e.contactName&&(e.contactName=n.instant("DASHBOARDS.UNKNOWN"))}function v(e){var n=_.find(m.faxInteractions.rows,{id:e.FaxInteractionId});n&&n.Users&&(_.find(n.Users,{id:e.UserId})||n.Users.push({id:e.UserId}))}function h(e){var n=_.find(m.faxInteractions.rows,{id:e.FaxInteractionId});n&&n.Users&&_.remove(n.Users,{id:e.UserId})}function f(e){if(e){var n=_.find(m.faxInteractions.rows,{id:e.id});if(n){if(n.Users=[],e.closed&&(n.unreadMessages=0),m.query.sort){var t=_.startsWith(m.query.sort,"-")?"desc":"asc";m.faxInteractions.rows=_.orderBy(m.faxInteractions.rows,_.trimStart(m.query.sort,"-"),t)}_.merge(n,_.pick(e,_.keys(n)))}else p(m.query.page)}}function b(e){if(e){var n=_.find(m.faxInteractions.rows,{id:e.id});n&&(n.Tags=e.tags||[],_.merge(n,_.pick(e,_.keys(n))))}}function A(e){if(e&&!e.secret){var n=_.find(m.faxInteractions.rows,{id:e.FaxInteractionId});if(n){var t=_.find(n.Messages,{id:e.id});t?_.merge(t,_.pick(e,_.keys(t))):(_.isNil(n.Messages)&&(n.Messages={count:0}),e.read||(n.Messages.count+=1))}}}m.user=e.getCurrentUser(),m.license={},m.setting={},m.tags={count:0,rows:[]},m.faxInteractions={count:0,rows:[]},m.query={includeAll:!0,sort:"-updatedAt",limit:10,page:1,read:null,closed:null},m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Account",column:"FaxAccountId",type:"multiselect",options:{route:{model:"user",action:"getFaxAccounts",params:{id:m.user.id,nolimit:!0}}}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}},{name:"Disposition",column:"disposition",type:"multiselect",options:{route:{model:"disposition",action:"get",field:"name",params:{field:"name,level",level:"first",nolimit:!0}}}},{name:"Second Disposition",column:"secondDisposition",type:"multiselect",options:{route:{model:"disposition",action:"get",field:"name",params:{field:"name,level",level:"second",nolimit:!0}}}},{name:"Third Disposition",column:"thirdDisposition",type:"multiselect",options:{route:{model:"disposition",action:"get",field:"name",params:{field:"name,level",level:"third",nolimit:!0}}}}]},m.sectionColor="blue-grey",m.onInit=function(e,n){return m.license=e,m.setting=n,r.user["get"+_.upperFirst("faxAccounts")]({id:m.user.id,nolimit:!0}).$promise.then(function(e){return m.faxAccounts=e||{count:0,rows:[]},r.tag.get().$promise}).then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Account",key:"FaxAccountId",type:"multiselect",label:"DASHBOARDS.SELECT_ACCOUNT",options:m.faxAccounts.rows,clearAll:!1},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:m.user.id,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=a.localStorage.getItem("motion2.home.fax:"+m.user.id);if(e)try{(e=JSON.parse(e)).query&&(m.query=_.merge(m.query,e.query),_.isEmpty(m.faxAccounts.rows)?m.query.FaxAccountId=[]:_.isEmpty(m.query.FaxAccountId)&&(m.query.FaxAccountId=_(m.faxAccounts.rows).map("id").take().value()),m.query.sort&&0<=m.query.sort.indexOf("lastMessage")&&(m.query=_.omit(m.query,"sort")),m.query.includeAll=!0,m.isSearchBarVisible=!(m.query.search||!m.query.filter))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()},t={FaxAccountId:_.map(m.faxAccounts.rows,"id"),createdAt:n};m.query=_.merge(m.query,t)}l.on("faxInteraction:save",f),l.on("faxInteraction:update",f),l.on("faxInteractionTags:save",b),l.on("faxMessage:save",A),l.on("faxMessage:update",A),l.on("user_has_fax_interactions:save",v),l.on("user_has_fax_interactions:remove",h),p(m.query.page)})},m.success=u,m.getFaxInteractions=p,m.showFaxInteraction=function(e,n){i.$parent.vm.addInteractionTab("fax",n)},m.downloadFaxInteraction=function(e,s,n){r.faxInteraction.download({id:s.id,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="fax-interaction"+s.id+".zip",a=new Blob(n,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"downloadFaxInteraction",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.disposeInteraction=function(e,t){var a=m.user.voicePause||m.user.chatPause||m.user.mailPause||m.user.openchannelPause||m.user.faxPause,n=!t.Account.mandatoryDisposition;s.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(o.body),clickOutsideToClose:n,escapeToClose:n,onRemoving:function(e,n){m.user&&t.Account.mandatoryDisposition&&!a&&r.user.unpause({id:m.user.id}).$promise.catch(function(e){console.error(e)})},locals:{user:m.user,channel:"fax",interaction:t}})},m.getContactLabel=g,m.getAgentLabel=function(e){if(e.UserId)return e.UserId===m.user.id?n.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">";return n.instant("DASHBOARDS.NOT_ASSIGNED")},m.getFaxAccountLabel=function(e){if(e.Account)return e.Account.key;return n.instant("DASHBOARDS.UNKNOWN")},m.composeFaxInteraction=function(e,a){s.show({controller:"ComposeFaxInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/fax/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{account:a,message:{},type:"new",interaction:{}},fullscreen:!0}).then(function(e){if(e){if(!e.message||!e.message.savedAsDraft){var n=e;return r.faxAccount.send({id:a.id},n).$promise.then(function(e){d.success({title:"Message properly sent!",msg:"Message has been sent!"}),i.$parent.vm.addInteractionTab("fax",e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:"FAX:SEND",msg:e.data?JSON.stringify(e.data):e.message||e.toString()})})}var t={channel:"fax",account:a,message:e.message,contact:e.contact};c.add(t)}})},m.openAdvancedSearch=function(){s.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{color:m.sectionColor,fields:m.advancedSearch.fields,storagePath:"home.fax"},fullscreen:!0}).then(function(e){m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply&&(m.query.search=e.value,p())}).catch(function(e){d.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},i.$on("$destroy",function(){l.removeAllListeners("faxMessage:save"),l.removeAllListeners("faxMessage:update"),l.removeAllListeners("faxInteraction:save"),l.removeAllListeners("faxInteractionTags:save"),l.removeAllListeners("faxInteraction:update"),l.removeAllListeners("user_has_fax_interactions:save"),l.removeAllListeners("user_has_fax_interactions:remove"),m.interactionsInterval&&t.cancel(m.interactionsInterval)})}e.$inject=["$scope","$interval","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty","draftManager"],angular.module("app.dashboards").controller("AgentHomeFaxController",e)}(),function(){"use strict";function e(o,n,r,l,a,t,d,e,i,c,m){var u=this;function s(e){!u.reloadingInteractions&&0<u.setting.mailInteractionsReloadTimeout&&y(!0),u.searchInProgress=!1,u.reloadingInteractions=!1,u.mailInteractions=e||{count:0,rows:[]};for(var n=0;n<u.mailInteractions.rows.length;n+=1)v(u.mailInteractions.rows[n])}function p(e,n){u.searchInProgress=!0,e||(u.query.page=1),(void 0===u.query.closed||null===u.query.closed||u.query.closed)&&delete u.query.substatus,u.query.offset=(u.query.page-1)*u.query.limit;var t=a.localStorage.getItem("motion2.home.mail:"+u.user.id);(t=t?JSON.parse(t):{}).query=u.query,a.localStorage.setItem("motion2.home.mail:"+u.user.id,JSON.stringify(t)),u.promise=d.mailInteraction.get(u.query,s).$promise}function g(e,n){o.$parent.vm.addInteractionTab("mail",n)}function v(e){_.isEmpty(e.to)||!e.Account||_.includes(e.to,e.Account.email)?e.contactInfo=e.Contact?e.Contact.email:void 0:e.contactInfo=e.to.split("<").pop().split(">")[0],"Unknown"===e.contactName&&(e.contactName=t.instant("DASHBOARDS.UNKNOWN"))}function h(e){var n=_.find(u.mailInteractions.rows,{id:e.MailInteractionId});n&&n.Users&&(_.find(n.Users,{id:e.UserId})||n.Users.push({id:e.UserId}))}function f(e){var n=_.find(u.mailInteractions.rows,{id:e.MailInteractionId});n&&n.Users&&_.remove(n.Users,{id:e.UserId})}function b(e){if(e){var n=_.find(u.mailInteractions.rows,{id:e.id});if(n){if(n.Users=[],e.closed&&(n.unreadMessages=0),u.query.sort){var t=_.startsWith(u.query.sort,"-")?"desc":"asc";u.mailInteractions.rows=_.orderBy(u.mailInteractions.rows,_.trimStart(u.query.sort,"-"),t)}_.merge(n,_.pick(e,_.keys(n)))}else 0===u.setting.mailInteractionsReloadTimeout&&p(u.query.page)}}function A(e){if(e){var n=_.find(u.mailInteractions.rows,{id:e.id});n&&(n.Tags=e.tags||[],_.merge(n,_.pick(e,_.keys(n))))}}function E(e){if(e&&!e.secret){var n=_.find(u.mailInteractions.rows,{id:e.MailInteractionId});if(n){var t=_.find(n.Messages,{id:e.id});t?_.merge(t,_.pick(e,_.keys(t))):(_.isNil(n.Messages)&&(n.Messages={count:0}),e.read||(n.Messages.count+=1))}}}function y(e){e&&u.interactionsInterval&&n.cancel(u.interactionsInterval),u.interactionsInterval=n(function(){u.reloadingInteractions=!0,u.searchInProgress||p()},1e3*u.setting.mailInteractionsReloadTimeout)}u.user=e.getCurrentUser(),u.license={},u.setting={},u.tags={count:0,rows:[]},u.mailInteractions={count:0,rows:[]},u.query={includeAll:!0,sort:"-updatedAt",limit:10,page:1,read:null,closed:null},u.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Subject",column:"subject",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Body",column:"plainBody",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Substatus",column:"substatus",type:"multiselect",options:{field:"name",route:{model:"mailSubstatus",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Account",column:"MailAccountId",type:"multiselect",options:{route:{model:"user",action:"getMailAccounts",params:{id:u.user.id,nolimit:!0}}}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}},{name:"Disposition",column:"disposition",type:"multiselect",options:{route:{model:"disposition",action:"get",field:"name",params:{field:"name,level",level:"first",nolimit:!0}}}},{name:"Second Disposition",column:"secondDisposition",type:"multiselect",options:{route:{model:"disposition",action:"get",field:"name",params:{field:"name,level",level:"second",nolimit:!0}}}},{name:"Third Disposition",column:"thirdDisposition",type:"multiselect",options:{route:{model:"disposition",action:"get",field:"name",params:{field:"name,level",level:"third",nolimit:!0}}}}]},u.sectionColor="teal",u.onInit=function(e,n){return u.license=e,u.setting=n,d.user["get"+_.upperFirst("mailAccounts")]({id:u.user.id,nolimit:!0}).$promise.then(function(e){return u.mailAccounts=e||{count:0,rows:[]},d.tag.get().$promise}).then(function(e){u.tags=e||{count:0,rows:[]}}).then(function(){return d.mailSubstatus.get({nolimit:!0}).$promise}).then(function(e){u.subStatuses=e||{count:0,rows:[]}}).then(function(){u.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Substatus",key:"substatus",type:"select",label:"DASHBOARDS.SELECT_SUBSTATUS",options:u.subStatuses.rows,customOptions:[{value:"null",translate:"DASHBOARDS.NONE"},{value:void 0,translate:"DASHBOARDS.ALL"}],ngValue:"name",ngIf:"closed === 0"},{name:"Account",key:"MailAccountId",type:"multiselect",label:"DASHBOARDS.SELECT_ACCOUNT",options:u.mailAccounts.rows,clearAll:!1},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:u.user.id,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:u.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=a.localStorage.getItem("motion2.home.mail:"+u.user.id);if(e)try{(e=JSON.parse(e)).query&&(u.query=_.merge(u.query,e.query),_.isEmpty(u.mailAccounts.rows)?u.query.MailAccountId=[]:_.isEmpty(u.query.MailAccountId)&&(u.query.MailAccountId=_(u.mailAccounts.rows).map("id").take().value()),u.query.sort&&0<=u.query.sort.indexOf("lastMessage")&&(u.query=_.omit(u.query,"sort")),u.query.includeAll=!0,u.isSearchBarVisible=!(u.query.search||!u.query.filter))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()},t={MailAccountId:_.map(u.mailAccounts.rows,"id"),createdAt:n};u.query=_.merge(u.query,t)}i.on("mailInteraction:save",b),i.on("mailInteraction:update",b),i.on("mailInteractionTags:save",A),i.on("mailMessage:save",E),i.on("mailMessage:update",E),i.on("user_has_mail_interactions:save",h),i.on("user_has_mail_interactions:remove",f),p(u.query.page),0<u.setting.mailInteractionsReloadTimeout&&y()})},u.success=s,u.getMailInteractions=p,u.showMailInteraction=g,u.downloadMailInteraction=function(e,s,n){d.mailInteraction.download({id:s.id,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="mail-interaction"+s.id+".zip",a=new Blob(n,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)c.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"downloadMailInteraction",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.disposeInteraction=function(e,t){var a=u.user.voicePause||u.user.chatPause||u.user.mailPause||u.user.openchannelPause||u.user.faxPause,n=!t.Account.mandatoryDisposition;r.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(l.body),clickOutsideToClose:n,escapeToClose:n,onRemoving:function(e,n){u.user&&t.Account.mandatoryDisposition&&!a&&d.user.unpause({id:u.user.id}).$promise.catch(function(e){console.error(e)})},locals:{user:u.user,channel:"mail",interaction:t}})},u.getContactLabel=v,u.getAgentLabel=function(e){if(e.UserId)return e.UserId===u.user.id?t.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">";return t.instant("DASHBOARDS.NOT_ASSIGNED")},u.getMailAccountLabel=function(e){if(e.Account)return e.Account.key;return t.instant("DASHBOARDS.UNKNOWN")},u.composeMailInteraction=function(e,s){r.show({controller:"ComposeMailInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/mail/dialog.html",parent:angular.element(l.body),clickOutsideToClose:!1,locals:{account:s,message:{},type:"new",interaction:{}},fullscreen:!0}).then(function(e){if(e){if(!e.message||!e.message.savedAsDraft){var i=e;return d.mailAccount.send({id:s.id},i).$promise.then(function(e){if(e&&e.Messages&&e.Messages.length){if(i.attachments&&i.attachments.length)for(var n=0;n<i.attachments.length;n+=1)d.attachment.update({id:i.attachments[n].id},{MailMessageId:_.head(e.Messages).id});if(c.success({title:"Message properly sent!",msg:"Message has been sent!"}),e.closed){e.disposition=null;var t=!s.mandatoryDisposition,a=u.user.voicePause||u.user.chatPause||u.user.mailPause||u.user.openchannelPause||u.user.faxPause;r.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(l.body),onRemoving:function(e,n){u.user&&s.mandatoryDisposition&&!a&&d.user.unpause({id:u.user.id}).$promise.catch(function(e){console.error(e)})},clickOutsideToClose:t,escapeToClose:t,locals:{user:u.user,channel:"mail",interaction:e}})}else o.$parent.vm.addInteractionTab("mail",e)}}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)c.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"MAILACCOUNT:SEND",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}var n={channel:"mail",account:s,message:e.message,contact:e.contact};m.add(n)}})},u.openAdvancedSearch=function(){r.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(l.body),clickOutsideToClose:!1,locals:{color:u.sectionColor,fields:u.advancedSearch.fields,storagePath:"home.mail"},fullscreen:!0}).then(function(e){u.isSearchBarVisible=!(e.value||!u.query.filter),e.apply&&(u.query.search=e.value,p())}).catch(function(e){c.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},o.$on("openMailDraft",function(e,s){s.interaction?(s.interaction.isDraft=!0,g(null,s.interaction)):r.show({controller:"ComposeMailInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/mail/dialog.html",parent:angular.element(l.body),clickOutsideToClose:!1,locals:{account:s.account,message:s.content,type:"draft",interaction:{}},fullscreen:!0}).then(function(e){if(e){if(!e.message||!e.message.savedAsDraft){var i=e;return d.mailAccount.send({id:s.account.id},i).$promise.then(function(e){if(m.remove(s.id),e&&e.Messages&&e.Messages.length){if(i.attachments&&i.attachments.length)for(var n=0;n<i.attachments.length;n+=1)d.attachment.update({id:i.attachments[n].id},{MailMessageId:_.head(e.Messages).id});if(c.success({title:"Message properly sent!",msg:"Message has been sent!"}),e.closed){e.disposition=null;var t=!s.account.mandatoryDisposition,a=u.user.voicePause||u.user.chatPause||u.user.mailPause||u.user.openchannelPause||u.user.faxPause;r.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(l.body),onRemoving:function(e,n){u.user&&s.account.mandatoryDisposition&&!a&&d.user.unpause({id:u.user.id}).$promise.catch(function(e){console.error(e)})},clickOutsideToClose:t,escapeToClose:t,locals:{user:u.user,channel:"mail",interaction:e}})}else o.$parent.vm.addInteractionTab("mail",e)}}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)c.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"MAILACCOUNT:SEND",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}var n={id:s.id,channel:"mail",account:e.account,message:e.message};m.update(n)}})}),o.$on("$destroy",function(){i.removeAllListeners("mailMessage:save"),i.removeAllListeners("mailMessage:update"),i.removeAllListeners("mailInteraction:save"),i.removeAllListeners("mailInteractionTags:save"),i.removeAllListeners("mailInteraction:update"),i.removeAllListeners("user_has_mail_interactions:save"),i.removeAllListeners("user_has_mail_interactions:remove"),u.interactionsInterval&&n.cancel(u.interactionsInterval)})}e.$inject=["$scope","$interval","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty","draftManager"],angular.module("app.dashboards").controller("AgentHomeMailController",e)}(),function(){"use strict";function e(t,a,e,i,n,s,o,r){var l=this;function d(e){l.searchInProgress=!1,l.contacts=e||{count:0,rows:[]}}function c(e,n){l.searchInProgress=!0,s.cmContact.describe({id:l.query.ListId}).$promise.then(function(e){return _(e.toJSON()).omit("UserId").values().map(function(e){return function(e){var n={name:_.startCase(e.displayName),column:e.columnName,options:{}};if(e.custom)switch(e.custom.type){case"text":n.type="text";break;case"select":n.type="multiselect",n.values=_.map(JSON.parse(e.custom.values),function(e,n){return{id:n,name:e.value,value:e.value}}),n.options.field="name";break;case"switch":n.type="select",n.values=[{id:1,translate:"DASHBOARDS.ENABLED"},{id:0,translate:"DASHBOARDS.DISABLED"}],n.options.excludedOperators=["$ne"];break;case"number":n.type="number";break;case"datetime":n.type="date"}else switch(e.columnName){case"dateOfBirth":n.type="date";break;case"CompanyId":n.name="Company",n.type="autocomplete",n.options.route={model:"cmCompany",action:"get",params:{fields:"id,name",nolimit:!0}},n.options.searchFields=["name"],n.options.excludedOperators=["$ne"];break;case"ListId":n.name="List",n.type="autocomplete",n.options.route={model:"user",action:"getLists",params:{id:l.currentUser.id,fields:"id,name",nolimit:!0}},n.options.searchFields=["name"],n.options.excludedOperators=["$ne"];break;default:_.includes(e.type.toLowerCase(),"int")?n.type="number":_.includes(e.type.toLowerCase(),"date")?n.type="date":n.type="text"}return n}(e)}).value()}).then(function(e){l.advancedSearch.fields=e;var n=_.findIndex(e,function(e){return _.startsWith(e.column,"cf_")})||e.length-1;n<0&&(n=e.length),l.advancedSearch.fields.splice(n,0,{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"DESCRIBE_CM_CONTACTS",msg:e.data?JSON.stringify(e.data.message):e.toString()})}),e||(l.query.page=1),l.query.offset=(l.query.page-1)*l.query.limit;var t=o.localStorage.getItem("motion2.home.mycontacts:"+l.currentUser.id);(t=t?JSON.parse(t):{}).query=l.query,o.localStorage.setItem("motion2.home.mycontacts:"+l.currentUser.id,JSON.stringify(t)),l.query.search&&(l.advancedQuery=_.omit(l.query,"id")),l.promise=l.query.search?s.cmContact.get(l.advancedQuery,d).$promise:s.user.getContacts(l.query,d).$promise}l.currentUser=n.getCurrentUser(),l.lists={},l.contacts={count:0,rows:[]},l.tags={count:0,rows:[]},l.query={includeAll:!0,id:l.currentUser.id,sort:"-updatedAt",limit:10,page:1},l.advancedSearch={fields:[]},l.sectionColor="red",l.getContacts=c,l.refreshContacts=function(){c()},l.mergeContact=function(e,n){i.show({controller:"MergeContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/merge/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:n.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:l.currentUser.id,fields:"id,name"})}]},locals:{contacts:l.contacts.rows}})},l.duplicateContact=function(e,n){i.show({controller:"DuplicateContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/duplicate/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:n.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:l.currentUser.id,fields:"id,name"})}]},locals:{contacts:l.contacts.rows}})},l.openContact=function(e,n){a.$parent.vm.addContactTab(n)},l.call=a.$parent.vm.call,l.onInit=function(){s.cmList.get({fields:"id,name,dialPrefix",sort:"name",nolimit:!0}).$promise.then(function(e){return l.lists=e||{count:0,rows:[]},l.listsMap=_.keyBy(l.lists.rows,"id"),s.tag.get().$promise}).then(function(e){l.tags=e||{count:0,rows:[]}}).then(function(){l.quickFilters=[{name:"List",key:"ListId",type:"multiselect",label:"CONTACTMANAGER.SELECT_LIST",options:l.lists.rows,clearAll:!1},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:l.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=o.localStorage.getItem("motion2.home.mycontacts:"+l.currentUser.id);if(e)try{(e=JSON.parse(e)).query&&(l.query=_.merge(l.query,e.query),_.isEmpty(l.lists.rows)?l.query.ListId=[]:_.isEmpty(l.query.ListId)&&(l.query.ListId=_(l.lists.rows).map("id").take().value()))}catch(e){console.error(e)}else l.query.ListId=_.map(l.lists.rows,"id");l.isSearchBarVisible=!(l.query.search||!l.query.filter),c()})},l.openAdvancedSearch=function(){i.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{color:l.sectionColor,fields:l.advancedSearch.fields,storagePath:"home.mycontacts"},fullscreen:!0}).then(function(e){l.isSearchBarVisible=!(e.value||!l.query.filter),e.apply&&(l.query.search=e.value?e.value+="||User:=$eq["+l.currentUser.id+"]":e.value,c())}).catch(function(e){r.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}}e.$inject=["$document","$scope","$timeout","$mdDialog","Auth","api","$window","toasty"],angular.module("app.dashboards").controller("AgentHomeMyContactsController",e)}(),function(){"use strict";function e(i,n,s,o,a,t,r,e,l,d,c){var m=this;function u(e){!m.reloadingInteractions&&0<m.setting.openchannelInteractionsReloadTimeout&&E(!0),m.searchInProgress=!1,m.reloadingInteractions=!1,m.openchannelInteractions=e||{count:0,rows:[]};for(var n=0;n<m.openchannelInteractions.rows.length;n+=1)g(m.openchannelInteractions.rows[n])}function p(e,n){m.searchInProgress=!0,e||(m.query.page=1),m.query.offset=(m.query.page-1)*m.query.limit;var t=a.localStorage.getItem("motion2.home.openchannel:"+m.user.id);(t=t?JSON.parse(t):{}).query=m.query,a.localStorage.setItem("motion2.home.openchannel:"+m.user.id,JSON.stringify(t)),m.promise=r.openchannelInteraction.get(m.query,u).$promise}function g(e){"Unknown"===e.contactName&&(e.contactName=t.instant("DASHBOARDS.UNKNOWN"))}function v(e){var n=_.find(m.openchannelInteractions.rows,{id:e.OpenchannelInteractionId});n&&n.Users&&(_.find(n.Users,{id:e.UserId})||n.Users.push({id:e.UserId}))}function h(e){var n=_.find(m.openchannelInteractions.rows,{id:e.OpenchannelInteractionId});n&&n.Users&&_.remove(n.Users,{id:e.UserId})}function f(e){if(e){var n=_.find(m.openchannelInteractions.rows,{id:e.id});if(n){if(n.Users=[],e.closed&&(n.unreadMessages=0),m.query.sort){var t=_.startsWith(m.query.sort,"-")?"desc":"asc";m.openchannelInteractions.rows=_.orderBy(m.openchannelInteractions.rows,_.trimStart(m.query.sort,"-"),t)}_.merge(n,_.pick(e,_.keys(n)))}else 0===m.setting.openchannelInteractionsReloadTimeout&&p(m.query.page)}}function b(e){if(e){var n=_.find(m.openchannelInteractions.rows,{id:e.id});n&&(n.Tags=e.tags||[],_.merge(n,_.pick(e,_.keys(n))))}}function A(e){if(e&&!e.secret){var n=_.find(m.openchannelInteractions.rows,{id:e.OpenchannelInteractionId});if(n){var t=_.find(n.Messages,{id:e.id});t?_.merge(t,_.pick(e,_.keys(t))):(_.isNil(n.Messages)&&(n.Messages={count:0}),e.read||(n.Messages.count+=1))}}}function E(e){e&&m.interactionsInterval&&n.cancel(m.interactionsInterval),m.interactionsInterval=n(function(){m.reloadingInteractions=!0,m.searchInProgress||p()},1e3*m.setting.openchannelInteractionsReloadTimeout)}m.user=e.getCurrentUser(),m.license={},m.setting={},m.tags={count:0,rows:[]},m.openchannelInteractions={count:0,rows:[]},m.query={includeAll:!0,sort:"-updatedAt",limit:10,page:1,read:null,closed:null},m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Account",column:"OpenchannelAccountId",type:"multiselect",options:{route:{model:"user",action:"getOpenchannelAccounts",params:{id:m.user.id,nolimit:!0}}}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}},{name:"Disposition",column:"disposition",type:"multiselect",options:{route:{model:"disposition",action:"get",field:"name",params:{field:"name,level",level:"first",nolimit:!0}}}},{name:"Second Disposition",column:"secondDisposition",type:"multiselect",options:{route:{model:"disposition",action:"get",field:"name",params:{field:"name,level",level:"second",nolimit:!0}}}},{name:"Third Disposition",column:"thirdDisposition",type:"multiselect",options:{route:{model:"disposition",action:"get",field:"name",params:{field:"name,level",level:"third",nolimit:!0}}}}]},m.sectionColor="amber",m.onInit=function(e,n){return m.license=e,m.setting=n,r.user["get"+_.upperFirst("openchannelAccounts")]({id:m.user.id,nolimit:!0}).$promise.then(function(e){return m.openchannelAccounts=e||{count:0,rows:[]},r.tag.get().$promise}).then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Account",key:"OpenchannelAccountId",type:"multiselect",label:"DASHBOARDS.SELECT_ACCOUNT",options:m.openchannelAccounts.rows,clearAll:!1},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:m.user.id,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=a.localStorage.getItem("motion2.home.openchannel:"+m.user.id);if(e)try{(e=JSON.parse(e)).query&&(m.query=_.merge(m.query,e.query),_.isEmpty(m.openchannelAccounts.rows)?m.query.OpenchannelAccountId=[]:_.isEmpty(m.query.OpenchannelAccountId)&&(m.query.OpenchannelAccountId=_(m.openchannelAccounts.rows).map("id").take().value()),m.query.sort&&0<=m.query.sort.indexOf("lastMessage")&&(m.query=_.omit(m.query,"sort")),m.query.includeAll=!0,m.isSearchBarVisible=!(m.query.search||!m.query.filter))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()},t={OpenchannelAccountId:_.map(m.openchannelAccounts.rows,"id"),createdAt:n};m.query=_.merge(m.query,t)}l.on("openchannelInteraction:save",f),l.on("openchannelInteraction:update",f),l.on("openchannelInteractionTags:save",b),l.on("openchannelMessage:save",A),l.on("openchannelMessage:update",A),l.on("user_has_openchannel_interactions:save",v),l.on("user_has_openchannel_interactions:remove",h),p(m.query.page),0<m.setting.openchannelInteractionsReloadTimeout&&E()})},m.success=u,m.getOpenchannelInteractions=p,m.showOpenchannelInteraction=function(e,n){i.$parent.vm.addInteractionTab("openchannel",n)},m.downloadOpenchannelInteraction=function(e,s,n){r.openchannelInteraction.download({id:s.id,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="openchannel-interaction"+s.id+".zip",a=new Blob(n,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"downloadOpenchannelInteraction",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.disposeInteraction=function(e,t){var a=m.user.voicePause||m.user.chatPause||m.user.mailPause||m.user.openchannelPause||m.user.faxPause,n=!t.Account.mandatoryDisposition;s.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(o.body),clickOutsideToClose:n,escapeToClose:n,onRemoving:function(e,n){m.user&&t.Account.mandatoryDisposition&&!a&&r.user.unpause({id:m.user.id}).$promise.catch(function(e){console.error(e)})},locals:{user:m.user,channel:"openchannel",interaction:t}})},m.getContactLabel=g,m.getAgentLabel=function(e){if(e.UserId)return e.UserId===m.user.id?t.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">";return t.instant("DASHBOARDS.NOT_ASSIGNED")},m.getOpenchannelAccountLabel=function(e){if(e.Account)return e.Account.key;return t.instant("DASHBOARDS.UNKNOWN")},m.composeOpenchannelInteraction=function(e,a){s.show({controller:"ComposeOpenchannelInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/openchannel/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{account:a,message:{},type:"new",interaction:{}},fullscreen:!0}).then(function(e){if(e){if(!e.message||!e.message.savedAsDraft){var n=e;return r.openchannelAccount.send({id:a.id},n).$promise.then(function(e){d.success({title:"Message properly sent!",msg:"Message has been sent!"}),i.$parent.vm.addInteractionTab("openchannel",e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"OPENCHANNELACCOUNT:SEND",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}var t={channel:"openchannel",account:a,message:e.message,contact:e.contact};c.add(t)}})},m.openAdvancedSearch=function(){s.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{color:m.sectionColor,fields:m.advancedSearch.fields,storagePath:"home.openchannel"},fullscreen:!0}).then(function(e){m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply&&(m.query.search=e.value,p())}).catch(function(e){d.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},i.$on("$destroy",function(){l.removeAllListeners("openchannelMessage:save"),l.removeAllListeners("openchannelMessage:update"),l.removeAllListeners("openchannelInteraction:save"),l.removeAllListeners("openchannelInteractionTags:save"),l.removeAllListeners("openchannelInteraction:update"),l.removeAllListeners("user_has_openchannel_interactions:save"),l.removeAllListeners("user_has_openchannel_interactions:remove"),m.interactionsInterval&&n.cancel(m.interactionsInterval)})}e.$inject=["$scope","$interval","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty","draftManager"],angular.module("app.dashboards").controller("AgentHomeOpenchannelController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l){var d=this;function c(e,n,t){d.license=e,d.setting=n,d.plugin=t}d.currentUser=o.getCurrentUser(),d.plugin={},d.onInit=c,d.getTrustedURL=function(){return s.trustAsResourceUrl(d.plugin.agentUrl)},c(),n.$on("pluginUpdated",function(e,n){d.plugin=n.plugin})}e.$inject=["$document","$scope","$timeout","$mdDialog","$stateParams","$sce","Auth","api","$window"],angular.module("app.dashboards").controller("AgentHomePluginsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l){var d=this;function c(){d.agentsQuery.offset=(d.agentsQuery.page-1)*d.agentsQuery.limit,l.update("motion2.home.presence.agents:"+d.currentUser.id,d.agentsQuery,"query"),i.user.getPresence(d.agentsQuery).$promise.then(function(e){d.agents={count:e.count,rows:_.filter(e.rows,function(e){return e.id!==d.currentUser.id})}}).catch(function(){r.error({title:t.instant("DASHBOARDS.AGENT_PRESENCE"),msg:t.instant("CONTACTMANAGER.NOTIFICATIONS.NO_DATA_ERROR")})})}function m(){d.queuesQuery.offset=(d.queuesQuery.page-1)*d.queuesQuery.limit,l.update("motion2.home.presence.queues:"+d.currentUser.id,d.queuesQuery,"query"),i.voiceQueue.get(d.queuesQuery).$promise.then(function(e){return d.voiceQueues=e||{rows:[],count:0},i.rpc.getVoiceQueuesChannels().$promise.then(function(e){e.rows.forEach(function(e){var n=_.find(d.voiceQueues.rows,["name",e.name]);n&&(n.calls||(n.calls=[]),n.calls.push(e))})})}).catch(function(){r.error({title:t.instant("VOICE.VOICEQUEUES"),msg:t.instant("CONTACTMANAGER.NOTIFICATIONS.NO_DATA_ERROR")})})}function u(e){return 0===d.selectedTab?e:"xcallyQueueExtension"+e}function p(e,n,t,a){var i=_.find(d.agents.rows,["id",e]);i&&(i.status=!1===n?"offline":a?"pause":"unavailable"===t?t:_.includes(["idle","unknown","ringing",null,void 0],t)?"online":"busy")}function g(e){e.id!==d.currentUser.id&&p(e.id,e.online,e.voiceStatus,e.voicePause)}d.currentUser=s.getCurrentUser(),d.agents={count:0,rows:[]},d.agentsQuery={fields:"id,name,internal,online",role:"agent",sort:"name",limit:10,page:1},d.queuesQuery={fields:"id,name",type:"inbound",sort:"name",limit:10,page:1},d.onAgentsTabSelection=function(){if(d.agentsQuery.filter||d.agentsQuery.teams||d.agentsQuery.queues)return;_.merge(d.agentsQuery,l.get("motion2.home.presence.agents:"+d.currentUser.id,"query")),d.isSearchBarVisible=!!d.agentsQuery.filter,a.all([a(function(n,e){i.team.get({fields:"id,name",sort:"name",nolimit:!0}).$promise.then(function(e){d.teams=e||{rows:[],count:0},n()}).catch(function(){r.error({title:t.instant("STAFF.TEAMS"),msg:t.instant("CONTACTMANAGER.NOTIFICATIONS.NO_DATA_ERROR")}),e()})}),a(function(n,e){i.voiceQueue.get({fields:"id,name",type:"inbound",sort:"name",nolimit:!0}).$promise.then(function(e){d.queues=e||{rows:[],count:0},n()}).catch(function(){r.error({title:t.instant("VOICE.VOICEQUEUES"),msg:t.instant("CONTACTMANAGER.NOTIFICATIONS.NO_DATA_ERROR")}),e()})})]).then(function(){d.quickFilters=[{name:"Team",key:"teams",type:"multiselect",label:"DASHBOARDS.SELECT_TEAM",options:d.teams.rows},{name:"Queue",key:"queues",type:"multiselect",label:"DASHBOARDS.SELECT_QUEUE",options:d.queues.rows}],c()}).catch(function(){r.error({title:t.instant("DASHBOARDS.AGENT_PRESENCE"),msg:t.instant("DASHBOARDS.ERRORS.FAILED_INITIALIZATION")})})},d.onQueuesTabSelection=function(){if(d.queuesQuery.filter)return;_.merge(d.queuesQuery,l.get("motion2.home.presence.queues:"+d.currentUser.id,"query")),d.isSearchBarVisible=!!d.queuesQuery.filter,m()},d.getAgents=c,d.getVoiceQueues=m,d.originateCall=function(e){n.$broadcast("webrtc::call",{target:u(e)})},d.transferCall=function(e){n.$broadcast("webrtc::transfer",{target:u(e)})},o.on("user:presence",function(e){if(e.id===d.currentUser.id)return;p(e.id,e.online,e.voiceStatus,e.voicePause)}),o.on("user:update",g),o.on("voice_queue_presence:save",function(e){if(!d.voiceQueues&&d.voiceQueues.rows)return;var n=_.find(d.voiceQueues.rows,["name",e.name]);if(!n)return;n.calls||(n.calls=[]);if(_.some(n.calls,["uniqueid",e.uniqueid]))return;n.calls.push(e)}),o.on("voice_queue_presence:remove",function(e){var n=_.find(d.voiceQueues.rows,["name",e.name]);if(!n)return;_.remove(n.calls,["uniqueid",e.uniqueid])}),e.$on("$destroy",function(){o.removeListener("user:update",g),o.removeAllListeners("user:presence"),o.removeAllListeners("voice_queue_presence:save"),o.removeAllListeners("voice_queue_presence:remove")})}e.$inject=["$scope","$rootScope","$translate","$q","api","Auth","socket","toasty","localStorageManager"],angular.module("app.dashboards").controller("AgentHomePresenceController",e)}(),function(){"use strict";function e(e,t,n,a,o,i){var s=this;function r(e){s.searchInProgress=!1,s.voiceRecordings=e||{count:0,rows:[]}}function l(){s.searchInProgress=!0,s.query.offset=(s.query.page-1)*s.query.limit;var e={query:s.query};t.localStorage.setItem("motion2.home.recordings:"+s.currentUser.id,JSON.stringify(e)),s.promise=a.voiceRecording.get(s.query,r).$promise}s.currentUser=i.getCurrentUser(),s.voiceRecordings={},s.table="voiceRecordings",s.query={UserId:s.currentUser.id,fields:"createdAt,updatedAt,id,format,value,type,uniqueid,calleridnum,exten,connectedlinenum,queue,rating,audio,transcribeStatus,UserId",sort:"-updatedAt",limit:10,page:1,type:null},s.downloadfile=function(i,e){return a.voiceRecording.download({id:i.id,exists:!0}).$promise.then(function(e){var n=[e.buffer],t=new Blob(n,{type:e.type}),a=window.document.createElement("a");a.setAttribute("href",URL.createObjectURL(t)),a.setAttribute("download",i.uniqueid+i.format),a.click()}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceRecording",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.downloadtranscribe=function(s,e){return a.voiceRecording.downloadTranscribe({id:s.id}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=s.uniqueid;var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceRecording",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.success=r,s.getVoiceRecordings=l,s.onInit=function(){s.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Type",key:"type",type:"select",label:"VOICE.SELECT_TYPE",customOptions:[{value:"internal",translate:"VOICE.INTERNAL"},{value:"inbound",translate:"VOICE.INBOUND"},{value:"outbound",translate:"VOICE.OUTBOUND"},{value:"dialer",translate:"VOICE.DIALER"},{value:null,translate:"VOICE.ALL"}]}];var e=t.localStorage.getItem("motion2.home.recordings:"+s.currentUser.id);if(e)try{(e=JSON.parse(e)).query&&(s.query=_.merge(s.query,e.query))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()};s.query.createdAt=n}s.isSearchBarVisible=!!s.query.filter,l()}}e.$inject=["$scope","$window","$timeout","api","toasty","Auth"],angular.module("app.dashboards").controller("AgentHomeRecordingsController",e)}(),function(){"use strict";function e(e,t,a,i,s,o,r,n){var l=this;function d(e){l.searchInProgress=!1,l.scheduledCalls=e||{count:0,rows:[]}}l.currentUser=n.getCurrentUser(),l.priorities=["Lowest","Low","Medium","High","Highest"],l.crudPermissions={readOnly:!1,canEdit:!0,canDelete:!0},l.scheduledCalls={},l.query={id:l.currentUser.id,fields:"id,phone,scheduledat,recallme,priority,UserId,OwnerId",sort:"scheduledat",limit:10,page:1},l.queueCampaigns={rows:[],count:0},l.success=d,l.getScheduledCalls=function(){l.searchInProgress=!0,l.query.id=l.currentUser.id,l.query.includeAll=!0,l.query.offset=(l.query.page-1)*l.query.limit;var e={query:l.query};t.localStorage.setItem("motion2.home.scheduled:"+l.currentUser.id,JSON.stringify(e)),l.promise=r.user.getScheduledCalls(l.query,d).$promise},l.onInit=function(){r.user.getQueues({id:n.getCurrentUser().id,fields:"id,name",channel:"voice",type:"outbound",nolimit:!0}).$promise.then(function(e){l.queueCampaigns=e||{count:0,rows:[]}}).then(function(){l.quickFilters=[{name:"Start Date",key:"scheduledat",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Campaigns",key:"VoiceQueueId",type:"multiselect",label:"MOTIONDIALER.SELECT_CAMPAIGN",options:l.queueCampaigns.rows}]}).catch(function(e){console.error(e)}).finally(function(){var e=t.localStorage.getItem("motion2.home.scheduled:"+l.currentUser.id);if(e)try{(e=JSON.parse(e)).query&&(l.query=_.omit(e.query,["filter"]))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()};l.query.scheduledat=n}l.getScheduledCalls()})},l.isDateBeforeToday=function(e){return moment(e).isBefore(moment())},l.createOrEditQueueCampaignHopper=function(e,n){i.show({controller:"CreateOrEditHopperVoiceQueueIdDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hoppers/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:null,hopper:n,hoppers:l.scheduledCalls.rows,license:null,setting:null,crudPermissions:l.crudPermissions}})},l.deleteConfirm=function(n,e){var t=i.confirm().title("Are you sure want to delete the scheduled call?").htmlContent("<b>Scheduled call</b> will be deleted.").ariaLabel("delete scheduled call").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){var e;e=n,r.cmHopper.delete({id:e.id}).$promise.then(function(){_.remove(l.scheduledCalls.rows,{id:e.id}),l.scheduledCalls.count-=1,l.scheduledCalls.rows.length||l.getScheduledCalls(),o.success({title:"Scheduled call deleted!",msg:e.name?"Scheduled call has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){l.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETE_HOPPER"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETE_HOPPER",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){console.log("CANCEL")})};var c=!0,m=1;e.$watch("vm.query.filter",function(e,n){c?a(function(){c=!1}):(n||(m=l.query.page),e!==n&&(l.query.page=1),e||(l.query.page=m),l.getScheduledCalls())})}e.$inject=["$scope","$window","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.dashboards").controller("AgentHomeScheduledCallsController",e)}(),function(){"use strict";function e(i,n,s,o,a,t,r,e,l,d,c){var m=this;function u(e){!m.reloadingInteractions&&0<m.setting.smsInteractionsReloadTimeout&&E(!0),m.searchInProgress=!1,m.reloadingInteractions=!1,m.smsInteractions=e||{count:0,rows:[]};for(var n=0;n<m.smsInteractions.rows.length;n+=1)g(m.smsInteractions.rows[n])}function p(e,n){m.searchInProgress=!0,e||(m.query.page=1),m.query.offset=(m.query.page-1)*m.query.limit;var t=a.localStorage.getItem("motion2.home.sms:"+m.user.id);(t=t?JSON.parse(t):{}).query=m.query,a.localStorage.setItem("motion2.home.sms:"+m.user.id,JSON.stringify(t)),m.promise=r.smsInteraction.get(m.query,u).$promise}function g(e){e.contactInfo=e.Contact?e.Contact.mobile:void 0,"Unknown"===e.contactName&&(e.contactName=t.instant("DASHBOARDS.UNKNOWN"))}function v(e){var n=_.find(m.smsInteractions.rows,{id:e.SmsInteractionId});n&&n.Users&&(_.find(n.Users,{id:e.UserId})||n.Users.push({id:e.UserId}))}function h(e){var n=_.find(m.smsInteractions.rows,{id:e.SmsInteractionId});n&&n.Users&&_.remove(n.Users,{id:e.UserId})}function f(e){if(e){var n=_.find(m.smsInteractions.rows,{id:e.id});if(n){if(n.Users=[],e.closed&&(n.unreadMessages=0),m.query.sort){var t=_.startsWith(m.query.sort,"-")?"desc":"asc";m.smsInteractions.rows=_.orderBy(m.smsInteractions.rows,_.trimStart(m.query.sort,"-"),t)}_.merge(n,_.pick(e,_.keys(n)))}else 0===m.setting.smsInteractionsReloadTimeout&&p(m.query.page)}}function b(e){if(e){var n=_.find(m.smsInteractions.rows,{id:e.id});n&&(n.Tags=e.tags||[],_.merge(n,_.pick(e,_.keys(n))))}}function A(e){if(e&&!e.secret){var n=_.find(m.smsInteractions.rows,{id:e.SmsInteractionId});if(n){var t=_.find(n.Messages,{id:e.id});t?_.merge(t,_.pick(e,_.keys(t))):(_.isNil(n.Messages)&&(n.Messages={count:0}),e.read||(n.Messages.count+=1))}}}function E(e){e&&m.interactionsInterval&&n.cancel(m.interactionsInterval),m.interactionsInterval=n(function(){m.reloadingInteractions=!0,m.searchInProgress||p()},1e3*m.setting.smsInteractionsReloadTimeout)}m.user=e.getCurrentUser(),m.license={},m.setting={},m.tags={count:0,rows:[]},m.smsInteractions={count:0,rows:[]},m.query={includeAll:!0,sort:"-updatedAt",limit:10,page:1,read:null,closed:null},m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Account",column:"SmsAccountId",type:"multiselect",options:{route:{model:"user",action:"getSmsAccounts",params:{id:m.user.id,nolimit:!0}}}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}},{name:"Disposition",column:"disposition",type:"multiselect",options:{route:{model:"disposition",action:"get",field:"name",params:{field:"name,level",level:"first",nolimit:!0}}}},{name:"Second Disposition",column:"secondDisposition",type:"multiselect",options:{route:{model:"disposition",action:"get",field:"name",params:{field:"name,level",level:"second",nolimit:!0}}}},{name:"Third Disposition",column:"thirdDisposition",type:"multiselect",options:{route:{model:"disposition",action:"get",field:"name",params:{field:"name,level",level:"third",nolimit:!0}}}}]},m.sectionColor="orange",m.onInit=function(e,n){return m.license=e,m.setting=n,r.user["get"+_.upperFirst("smsAccounts")]({id:m.user.id,nolimit:!0}).$promise.then(function(e){return m.smsAccounts=e||{count:0,rows:[]},r.tag.get().$promise}).then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Account",key:"SmsAccountId",type:"multiselect",label:"DASHBOARDS.SELECT_ACCOUNT",options:m.smsAccounts.rows,clearAll:!1},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:m.user.id,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=a.localStorage.getItem("motion2.home.sms:"+m.user.id);if(e)try{(e=JSON.parse(e)).query&&(m.query=_.merge(m.query,e.query),_.isEmpty(m.smsAccounts.rows)?m.query.SmsAccountId=[]:_.isEmpty(m.query.SmsAccountId)&&(m.query.SmsAccountId=_(m.smsAccounts.rows).map("id").take().value()),m.query.sort&&0<=m.query.sort.indexOf("lastMessage")&&(m.query=_.omit(m.query,"sort")),m.query.includeAll=!0,m.isSearchBarVisible=!(m.query.search||!m.query.filter))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()},t={SmsAccountId:_.map(m.smsAccounts.rows,"id"),createdAt:n};m.query=_.merge(m.query,t)}l.on("smsInteraction:save",f),l.on("smsInteraction:update",f),l.on("smsInteractionTags:save",b),l.on("smsMessage:save",A),l.on("smsMessage:update",A),l.on("user_has_sms_interactions:save",v),l.on("user_has_sms_interactions:remove",h),p(m.query.page),0<m.setting.smsInteractionsReloadTimeout&&E()})},m.success=u,m.getSmsInteractions=p,m.showSmsInteraction=function(e,n){i.$parent.vm.addInteractionTab("sms",n)},m.downloadSmsInteraction=function(e,s,n){r.smsInteraction.download({id:s.id,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="sms-interaction"+s.id+".zip",a=new Blob(n,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"downloadSmsInteraction",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.disposeInteraction=function(e,t){var a=m.user.voicePause||m.user.chatPause||m.user.mailPause||m.user.openchannelPause||m.user.faxPause,n=!t.Account.mandatoryDisposition;s.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(o.body),clickOutsideToClose:n,escapeToClose:n,onRemoving:function(e,n){m.user&&t.Account.mandatoryDisposition&&!a&&r.user.unpause({id:m.user.id}).$promise.catch(function(e){console.error(e)})},locals:{user:m.user,channel:"sms",interaction:t}})},m.getContactLabel=g,m.getAgentLabel=function(e){if(e.UserId)return e.UserId===m.user.id?t.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">";return t.instant("DASHBOARDS.NOT_ASSIGNED")},m.getSmsAccountLabel=function(e){if(e.Account)return e.Account.key;return t.instant("DASHBOARDS.UNKNOWN")},m.composeSmsInteraction=function(e,a){s.show({controller:"ComposeSmsInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/sms/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{account:a,message:{},type:"new",interaction:{}},fullscreen:!0}).then(function(e){if(e){if(!e.message||!e.message.savedAsDraft){var n=e;return r.smsAccount.send({id:a.id},n).$promise.then(function(e){d.success({title:"Message properly sent!",msg:"Message has been sent!"}),i.$parent.vm.addInteractionTab("sms",e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SMSACCOUNT:SEND",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}var t={channel:"sms",account:a,message:e.message,contact:e.contact};c.add(t)}})},m.openAdvancedSearch=function(){s.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{color:m.sectionColor,fields:m.advancedSearch.fields,storagePath:"home.sms"},fullscreen:!0}).then(function(e){m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply&&(m.query.search=e.value,p())}).catch(function(e){d.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},i.$on("$destroy",function(){l.removeAllListeners("smsMessage:save"),l.removeAllListeners("smsMessage:update"),l.removeAllListeners("smsInteraction:save"),l.removeAllListeners("smsInteractionTags:save"),l.removeAllListeners("smsInteraction:update"),l.removeAllListeners("user_has_sms_interactions:save"),l.removeAllListeners("user_has_sms_interactions:remove"),m.interactionsInterval&&n.cancel(m.interactionsInterval)})}e.$inject=["$scope","$interval","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty","draftManager"],angular.module("app.dashboards").controller("AgentHomeSmsController",e)}(),function(){"use strict";function e(n,t,a,i,e,s,o,r){var l=this;function d(e){l.searchInProgress=!1,l.voiceCalls=e||{count:0,rows:[]}}function c(){l.searchInProgress=!0,l.query.offset=(l.query.page-1)*l.query.limit;var e={query:l.query};s.localStorage.setItem("motion2.home.voice:"+l.currentUser.id,JSON.stringify(e)),l.promise=a.voiceCallReport.get(l.query,d).$promise}l.currentUser=e.getCurrentUser(),l.voiceCalls={},l.table="voiceCalls",l.query={UserId:l.currentUser.id,fields:"id,type,uniqueid,tag,starttime,endtime,source,destination,userDisposition,userSecondDisposition,userThirdDisposition,note,duration,billableseconds,answertime",sort:"-updatedAt",limit:10,page:1,type:null},l.success=d,l.getVoiceCalls=c,l.onInit=function(){return a.tag.get().$promise.then(function(e){l.tags=e||{count:0,rows:[]}}).then(function(){l.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Type",key:"type",type:"select",label:"VOICE.SELECT_TYPE",customOptions:[{value:"internal",translate:"VOICE.INTERNAL"},{value:"inbound",translate:"VOICE.INBOUND"},{value:"outbound",translate:"VOICE.OUTBOUND"},{value:"dialer",translate:"VOICE.DIALER"},{value:null,translate:"VOICE.ALL"}]}]}).catch(function(e){i.error({title:"Init error",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()}),l.tags={count:0,rows:[]}}).finally(function(){var e=s.localStorage.getItem("motion2.home.voice:"+l.currentUser.id);if(e)try{(e=JSON.parse(e)).query&&(l.query=_.merge(l.query,e.query))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()};l.query.createdAt=n}l.isSearchBarVisible=!!l.query.filter,c()})},l.showDetails=function(e){n.show({controller:"AgentHomeVoiceDetailsController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/home/voice/details/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{call:e}})}}e.$inject=["$mdDialog","$document","api","toasty","Auth","$window","$scope","$timeout"],angular.module("app.dashboards").controller("AgentHomeVoiceController",e)}(),function(){"use strict";function e(e,n){this.call=n,this.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","call"],angular.module("app.dashboards").controller("AgentHomeVoiceDetailsController",e)}(),function(){"use strict";function e(i,n,s,o,a,t,r,e,l,d,c){var m=this;function u(e){!m.reloadingInteractions&&0<m.setting.whatsappInteractionsReloadTimeout&&E(!0),m.searchInProgress=!1,m.reloadingInteractions=!1,m.whatsappInteractions=e||{count:0,rows:[]};for(var n=0;n<m.whatsappInteractions.rows.length;n+=1)g(m.whatsappInteractions.rows[n])}function p(e,n){m.searchInProgress=!0,e||(m.query.page=1),m.query.offset=(m.query.page-1)*m.query.limit;var t=a.localStorage.getItem("motion2.home.whatsapp:"+m.user.id);(t=t?JSON.parse(t):{}).query=m.query,a.localStorage.setItem("motion2.home.whatsapp:"+m.user.id,JSON.stringify(t)),m.promise=r.whatsappInteraction.get(m.query,u).$promise}function g(e){e.contactInfo=e.Contact?e.Contact.mobile:void 0,"Unknown"===e.contactName&&(e.contactName=t.instant("DASHBOARDS.UNKNOWN"))}function v(e){var n=_.find(m.whatsappInteractions.rows,{id:e.WhatsappInteractionId});n&&n.Users&&(_.find(n.Users,{id:e.UserId})||n.Users.push({id:e.UserId}))}function h(e){var n=_.find(m.whatsappInteractions.rows,{id:e.WhatsappInteractionId});n&&n.Users&&_.remove(n.Users,{id:e.UserId})}function f(e){if(e){var n=_.find(m.whatsappInteractions.rows,{id:e.id});if(n){if(n.Users=[],e.closed&&(n.unreadMessages=0),m.query.sort){var t=_.startsWith(m.query.sort,"-")?"desc":"asc";m.whatsappInteractions.rows=_.orderBy(m.whatsappInteractions.rows,_.trimStart(m.query.sort,"-"),t)}_.merge(n,_.pick(e,_.keys(n)))}else 0===m.setting.whatsappInteractionsReloadTimeout&&p(m.query.page)}}function b(e){if(e){var n=_.find(m.whatsappInteractions.rows,{id:e.id});n&&(n.Tags=e.tags||[],_.merge(n,_.pick(e,_.keys(n))))}}function A(e){if(e&&!e.secret){var n=_.find(m.whatsappInteractions.rows,{id:e.WhatsappInteractionId});if(n){var t=_.find(n.Messages,{id:e.id});t?_.merge(t,_.pick(e,_.keys(t))):(_.isNil(n.Messages)&&(n.Messages={count:0}),e.read||(n.Messages.count+=1))}}}function E(e){e&&m.interactionsInterval&&n.cancel(m.interactionsInterval),m.interactionsInterval=n(function(){m.reloadingInteractions=!0,m.searchInProgress||p()},1e3*m.setting.whatsappInteractionsReloadTimeout)}m.user=e.getCurrentUser(),m.license={},m.setting={},m.tags={count:0,rows:[]},m.whatsappInteractions={count:0,rows:[]},m.query={includeAll:!0,sort:"-updatedAt",limit:10,page:1,read:null,closed:null},m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Account",column:"WhatsappAccountId",type:"multiselect",options:{route:{model:"user",action:"getWhatsappAccounts",params:{id:m.user.id,nolimit:!0}}}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}},{name:"Disposition",column:"disposition",type:"multiselect",options:{route:{model:"disposition",action:"get",field:"name",params:{field:"name,level",level:"first",nolimit:!0}}}},{name:"Second Disposition",column:"secondDisposition",type:"multiselect",options:{route:{model:"disposition",action:"get",field:"name",params:{field:"name,level",level:"second",nolimit:!0}}}},{name:"Third Disposition",column:"thirdDisposition",type:"multiselect",options:{route:{model:"disposition",action:"get",field:"name",params:{field:"name,level",level:"third",nolimit:!0}}}}]},m.sectionColor="lime-A700",m.onInit=function(e,n){return m.license=e,m.setting=n,r.user["get"+_.upperFirst("whatsappAccounts")]({id:m.user.id,nolimit:!0}).$promise.then(function(e){return m.whatsappAccounts=e||{count:0,rows:[]},r.tag.get().$promise}).then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Account",key:"WhatsappAccountId",type:"multiselect",label:"DASHBOARDS.SELECT_ACCOUNT",options:m.whatsappAccounts.rows,clearAll:!1},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:m.user.id,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=a.localStorage.getItem("motion2.home.whatsapp:"+m.user.id);if(e)try{(e=JSON.parse(e)).query&&(m.query=_.merge(m.query,e.query),_.isEmpty(m.whatsappAccounts.rows)?m.query.WhatsappAccountId=[]:_.isEmpty(m.query.WhatsappAccountId)&&(m.query.WhatsappAccountId=_(m.whatsappAccounts.rows).map("id").take().value()),m.query.sort&&0<=m.query.sort.indexOf("lastMessage")&&(m.query=_.omit(m.query,"sort")),m.query.includeAll=!0,m.isSearchBarVisible=!(m.query.search||!m.query.filter))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()},t={WhatsappAccountId:_.map(m.whatsappAccounts.rows,"id"),createdAt:n};m.query=_.merge(m.query,t)}l.on("whatsappInteraction:save",f),l.on("whatsappInteraction:update",f),l.on("whatsappInteractionTags:save",b),l.on("whatsappMessage:save",A),l.on("whatsappMessage:update",A),l.on("user_has_whatsapp_interactions:save",v),l.on("user_has_whatsapp_interactions:remove",h),p(m.query.page),0<m.setting.whatsappInteractionsReloadTimeout&&E()})},m.success=u,m.getWhatsappInteractions=p,m.showWhatsappInteraction=function(e,n){i.$parent.vm.addInteractionTab("whatsapp",n)},m.downloadWhatsappInteraction=function(e,s,n){r.whatsappInteraction.download({id:s.id,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="whatsapp-interaction"+s.id+".zip",a=new Blob(n,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"downloadWhatsappInteraction",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.disposeInteraction=function(e,t){var a=m.user.voicePause||m.user.chatPause||m.user.mailPause||m.user.openchannelPause||m.user.faxPause,n=!t.Account.mandatoryDisposition;s.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(o.body),clickOutsideToClose:n,escapeToClose:n,onRemoving:function(e,n){m.user&&t.Account.mandatoryDisposition&&!a&&r.user.unpause({id:m.user.id}).$promise.catch(function(e){console.error(e)})},locals:{user:m.user,channel:"whatsapp",interaction:t}})},m.getContactLabel=g,m.getAgentLabel=function(e){if(e.UserId)return e.UserId===m.user.id?t.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">";return t.instant("DASHBOARDS.NOT_ASSIGNED")},m.getWhatsappAccountLabel=function(e){if(e.Account)return e.Account.key;return t.instant("DASHBOARDS.UNKNOWN")},m.composeWhatsappInteraction=function(e,a){s.show({controller:"ComposeWhatsappInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/whatsapp/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{account:a,message:{},type:"new",interaction:{}},fullscreen:!0}).then(function(e){if(e){if(!e.message||!e.message.savedAsDraft){var n=e;return r.whatsappAccount.send({id:a.id},n).$promise.then(function(e){d.success({title:"Message properly sent!",msg:"Message has been sent!"}),i.$parent.vm.addInteractionTab("whatsapp",e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"WHATSAPPACCOUNT:SEND",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}var t={channel:"whatsapp",account:a,message:e.message,contact:e.contact};c.add(t)}})},m.openAdvancedSearch=function(){s.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{color:m.sectionColor,fields:m.advancedSearch.fields,storagePath:"home.whatsapp"},fullscreen:!0}).then(function(e){m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply&&(m.query.search=e.value,p())}).catch(function(e){d.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},i.$on("$destroy",function(){l.removeAllListeners("whatsappMessage:save"),l.removeAllListeners("whatsappMessage:update"),l.removeAllListeners("whatsappInteraction:save"),l.removeAllListeners("whatsappInteractionTags:save"),l.removeAllListeners("whatsappInteraction:update"),l.removeAllListeners("user_has_whatsapp_interactions:save"),l.removeAllListeners("user_has_whatsapp_interactions:remove"),m.interactionsInterval&&n.cancel(m.interactionsInterval)})}e.$inject=["$scope","$interval","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty","draftManager"],angular.module("app.dashboards").controller("AgentHomeWhatsappController",e)}(),function(){"use strict";function e(e,n){var t=this;t.setting={},t.messages={count:0,rows:[]},t.showInteraction=!1,t.init=function(e,n){t.setting=n,t.tab=e,t.tab.saved=!0},t.getTrustedURL=function(){return n.trustAsResourceUrl(t.tab.src)}}e.$inject=["$scope","$sce"],angular.module("app.dashboards").controller("AgentGeneralIframeController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v){var h=this,f=25,b=1024*f*1024;function A(){var e=h.user.voicePause||h.user.chatPause||h.user.mailPause||h.user.openchannelPause||h.user.faxPause,n=!h.tab.interaction.Account.mandatoryDisposition;i.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(t.body),clickOutsideToClose:n,escapeToClose:n,onRemoving:function(){h.user&&h.interaction.Account.mandatoryDisposition&&!e&&l.user.unpause({id:h.user.id}).$promise.catch(function(e){d.error(e.data?e.data.message:e.toString())})},locals:{user:h.user,channel:h.tab.channel,interaction:h.tab.interaction}}).then(function(e){h.tab.saved=Boolean(e),e&&a.$parent.$parent.$parent.vm.closeTab(h.tab)})}function E(e,n){h.tab.message=n,i.show({controller:"ComposeMailInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/mail/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{account:h.account,message:h.tab.message,type:e,interaction:h.interaction},fullscreen:!0,skipHide:Boolean(h.tab.spy)}).then(function(e){if(e)if(e.message&&e.message.savedAsDraft)h.draft?p.update({id:h.draft.id,channel:"mail",account:h.account,message:e.message,contact:h.contact,interaction:h.interaction}):p.add({channel:"mail",account:h.account,message:e.message,contact:h.contact,interaction:h.interaction}),h.draft=p.getByInteraction(h.tab.interaction.id);else{var n=e;n&&S(n),n.Interaction&&h.interaction&&h.interaction.id&&(n.Interaction.id=h.interaction.id,l.mailInteraction.update(n.Interaction).$promise.then(function(e){e&&e.closed?(h.tab.saved=!0,h.interaction.closed=!0,A()):null!==n.Interaction.substatus&&(h.tab.saved=!0,h.tab.interaction.substatus=n.Interaction.substatus,a.$parent.$parent.$parent.vm.closeTab(h.tab))}).catch(function(e){d.error(e.data?e.data.message:e.toString())}))}}).finally(function(){h.tab.isDraft=!1})}function y(){"mail"!==h.tab.channel&&n(function(){var e=angular.element(t.find("md-content[name*='interaction-content-"+h.tab.id+"']"));e&&e[0]&&(e[0].scrollTop=e[0].scrollHeight)},0)}function S(i){if(i)return i["chat"===h.tab.channel?"ChatWebsiteId":_.capitalize(h.tab.channel)+"AccountId"]=h.interaction["chat"===h.tab.channel?"ChatWebsiteId":_.capitalize(h.tab.channel)+"AccountId"],i[_.capitalize(h.tab.channel)+"InteractionId"]=h.interaction.id,i.UserId=h.user.id,i.ContactId=h.interaction.ContactId,i.direction="out",i.secret=Boolean(h.tab.spy||i.secret),l[h.tab.channel+"Message"].save(i).$promise.then(function(e){if(e&&e.id&&!_.isEmpty(i.attachments)){for(var n=[],t=0;t<i.attachments.length;t++){var a=i.attachments[t];a.MailMessageId?n.push(l.attachment.clone({id:a.id},{name:a.name,basename:a.basename,type:a.type,MailMessageId:e.id}).$promise):n.push(l.attachment.update({id:a.id},{MailMessageId:e.id}).$promise)}return s.all(n)}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:SENDMESSAGE",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){"mail"===h.tab.channel&&i.isDraft&&(p.removeByInteraction(h.interaction.id),h.draft=null),h.tab.areaText="",y()})}function T(e){switch(h.tab.channel){case"mail":h.draft.content.originalMessage=e?_.find(h.interaction.Messages,["id",e]):h.interaction.Messages[h.interaction.Messages.length-1],E(h.draft.type,h.draft.content)}}function I(e){h.journeyIsLoading=!0;var n=_.merge(h.journeyOptions,{id:h.contact.id,offset:e||0});return g.get(h.journey,n).then(function(e){h.journey=e.journey,h.canLoadMoreJourney=e.loadMore}).finally(function(){h.journeyIsLoading=!1})}h.showFooter=!1,h.BTNLoadMore=0,h.showInteraction=!1,h.user=c.getCurrentUser(),h.detectBrowser=u.detectBrowser(),h.journey=[],h.acceptedMessages=[],h.ngFlowOptions={target:"api/attachments",singleFile:!0,maxChunkRetries:1,chunkSize:b,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},h.ngFlow={flow:{}},h.selectedMailShowDetails={},h.selectedMailShowSystemMessage={},h.setting={},h.ctrlMethods={},h.embedOptions={fontSmiley:!0,sanitizeHtml:!0,emoji:!0,link:!0,linkTarget:"_blank"},h.journeyOptions=g.getQuery(),h.quickFilters=g.getQuickFilters(),h.init=function(e,n){h.tab=e,h.tab.saved=!0,h.tab.badges=0,h.setting=n||{},h.tab&&h.tab.channel&&h.tab.interaction&&(h.interaction=h.tab.interaction,l[h.tab.channel+"Interaction"].get({id:h.tab.interaction.id,includeAll:!0}).$promise.then(function(e){return e&&(h.interaction=e,h.tab.interaction=e),h.tab.saved=h.interaction.closed,h.queryMessage={id:h.interaction.id,includeAll:!0},"mail"===h.tab.channel?(h.queryMessage.sort="-id",h.queryMessage.offset=0,h.queryMessage.limit=3,h.queryMessage.inlineCss=!0):(h.queryMessage.sort="id",h.queryMessage.nolimit=!0),l[h.tab.channel+"Interaction"].getMessages(h.queryMessage).$promise}).then(function(e){return e&&(h.BTNLoadMore=e.count-h.queryMessage.limit),h.messages=e||{count:0,rows:[]},l["chat"===h.tab.channel?"chatWebsite":h.tab.channel+"Account"].get({id:h.interaction["chat"===h.tab.channel?"ChatWebsiteId":_.capitalize(h.tab.channel)+"AccountId"]}).$promise}).then(function(e){if(h.account=e,h.tab.title=h.account.key||h.account.name,h.interaction.ContactId)return l.cmContact.get({id:h.interaction.ContactId}).$promise}).then(function(e){return e&&(h.contact=e),h.showInteraction=!0,h.contact?h.tab.title+=" - "+(h.user.privacyEnabled?v.mask(h.contact.firstName):h.contact.firstName):h.tab.title+=" - "+r.instant(h.tab.channel.toUpperCase()+".UNKNOWN"),l.user.get({fields:"id,fullname",nolimit:!0}).$promise}).then(function(e){h.users=e||{count:0,rows:[]},h.usersMap=_.mapValues(_.keyBy(h.users.rows,"id"),"fullname")}).then(function(){if(h.tab.channel&&h.interaction)return l.user["add"+_.upperFirst(h.tab.channel)+"Interactions"]({id:h.user.id,ids:[h.interaction.id]})}).then(function(){return l.mailSubstatus.get({sort:"name",nolimit:!0}).$promise}).then(function(e){h.subStatuses=e||{count:0,rows:[]}}).catch(function(){h.showInteraction=!0}).finally(function(){h.contact&&I(),function(){switch(h.user.role){case"admin":return h.downloadPermissions={attachments:!0,interactions:!0};case"agent":return h.downloadPermissions={attachments:h.user.downloadAttachments,interactions:h.user.downloadOmnichannelInteractions};case"user":l.userProfile.get({id:h.user.userProfileId,fields:"downloadAttachments,downloadOmnichannelInteractions"}).$promise.then(function(e){h.downloadPermissions={attachments:e.downloadAttachments,interactions:e.downloadOmnichannelInteractions}}).catch(function(){h.downloadPermissions={attachments:!1,interactions:!1}})}}(),function(){if(!h.tab.spy&&!h.interaction.closed){var t=[];if(h.messages.rows.forEach(function(e){if("in"===e.direction&&!e.read){var n=0===t.length;t.push(l[h.tab.channel+"Message"].accept({id:e.id,UserId:h.user.id,manual:n}).$promise),h.acceptedMessages.push(e.id)}}),"mail"===h.tab.channel){var e=_(h.interaction.Messages).filter({read:!1,direction:"in"}).differenceBy(h.messages.rows,"id").value();e.forEach(function(e){t.push(l.mailMessage.accept({id:e.id,UserId:h.user.id}).$promise),h.acceptedMessages.push(e.id)})}s.all(t)}}(),y(),m.on(h.tab.channel+"Message:save",h.onMessageSave),m.on(h.tab.channel+"Message:update",h.onMessageSave),m.on(h.tab.channel+"Interaction:save",h.onInteractionSave),m.on(h.tab.channel+"Interaction:update",h.onInteractionSave),m.on("user_has_"+h.tab.channel+"_interactions:save",h.onInteractionOpen),m.on("user_has_"+h.tab.channel+"_interactions:remove",h.onInteractionClose),h.tab.areaText=h.tab.areaText?h.tab.areaText:"",h.showFooter=!0,"mail"===h.tab.channel&&(h.draft=p.getByInteraction(h.tab.interaction.id),h.tab.isDraft&&(h.tab.interaction.closed?(p.removeByInteraction(h.tab.interaction.id),h.draft=null):T()))}))},h.getLabelByMessage=function(e){var n="loading...";if(e)return"in"===e.direction?e.Contact?e.Contact.firstName||"Anonymous":n:e.UserId?h.usersMap?h.usersMap[e.UserId]:n:"System"},h.openContact=function(e,n){try{h.tab&&!h.tab.spy&&a.$parent.$parent.$parent.vm.addContactTab(n||h.contact)}catch(e){d.error({title:"ERROR OPEN CONTACT",msg:"Unable to open the contact"})}},h.openInteraction=function(e){try{if(e.MailAccountId)return a.$parent.$parent.$parent.vm.addInteractionTab("mail",e);if(e.ChatWebsiteId)return a.$parent.$parent.$parent.vm.addInteractionTab("chat",e);if(e.SmsAccountId)return a.$parent.$parent.$parent.vm.addInteractionTab("sms",e);if(e.WhatsappAccountId)return a.$parent.$parent.$parent.vm.addInteractionTab("whatsapp",e);if(e.OpenchannelAccountId)return a.$parent.$parent.$parent.vm.addInteractionTab("openchannel",e);if(e.FaxAccountId)return a.$parent.$parent.$parent.vm.addInteractionTab("fax",e)}catch(e){d.error({title:"ERROR OPEN INTERACTION",msg:"Customer Journey can't open the interaction"})}},h.disposeInteraction=A,h.tagInteraction=function(){i.show({controller:"TagInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/tag/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,skipHide:Boolean(h.tab.spy),resolve:{tags:["apiResolver",function(e){return e.resolve("tag@get",{sort:"name",nolimit:!0,fields:"id,name,color"})}]},locals:{channel:h.tab.channel,interaction:h.tab.interaction}})},h.composeMailInteraction=function(n,e){if(e.inReplyTo){var t=_.find(h.messages.rows,{messageId:e.inReplyTo});if(!t)return l.mailMessage.get({messageId:e.inReplyTo}).$promise.then(function(e){E(n,e&&e.count?e.rows[0]:void 0)}).catch(function(e){d.error(e.data?e.data.message:e.toString()),E(n,void 0)});E(n,t)}else E(n,e)},h.composeFaxInteraction=function(e){var n={to:[]};n.to.push(h.contact.fax),i.show({controller:"ComposeFaxInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/fax/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{account:h.account,message:n,type:e},fullscreen:!0}).then(function(e){return l.faxAccount.send({id:h.account.id},e).$promise.then(function(e){d.success({title:"Message properly sent!",msg:"Message has been sent!"}),a.$parent.vm.addInteractionTab("fax",e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:"FAX:SEND",msg:e.data?JSON.stringify(e.data):e.message||e.toString()})})})},h.composeSmsInteraction=function(e,n){i.show({controller:"ComposeSmsInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/sms/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{account:h.account,message:n,type:e},fullscreen:!0,skipHide:Boolean(h.tab.spy)}).then(function(e){e&&S(e)})},h.composeWhatsappInteraction=function(e,n){i.show({controller:"ComposeWhatsappInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/whatsapp/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{account:h.account,message:n,type:e},fullscreen:!0,skipHide:Boolean(h.tab.spy)}).then(function(e){e&&S(e)})},h.composeChatInteraction=function(e,n){i.show({controller:"ComposeChatInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/chat/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{account:h.account,message:n,type:e},fullscreen:!0,skipHide:Boolean(h.tab.spy)}).then(function(e){e&&S(e)})},h.composeOpenchannelInteraction=function(e,n){i.show({controller:"ComposeOpenchannelInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/openchannel/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{account:h.account,message:n,type:e},fullscreen:!0,skipHide:Boolean(h.tab.spy)}).then(function(e){e&&S(e)})},h.transferLastMessage=function(){if(h.interaction){var e=_.findLast(h.messages.rows,function(e){return"in"===e.direction});e?i.show({controller:"TransferMessageDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/transfer/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{account:h.account,interaction:h.interaction,message:e,channel:h.tab.channel},resolve:{agents:["apiResolver",function(e){var n={fields:"id,name",$id:{ne:h.user.id},role:"agent",online:!0,sort:"name",nolimit:!0};return n[h.tab.channel+"Pause"]=!1,e.resolve("user@get",n)}],queues:["apiResolver",function(e){return e.resolve(h.tab.channel+"Queue@get",{fields:"id,name",sort:"name",nolimit:!0})}]}}).then(function(e){h.tab.saved=Boolean(e),e&&a.$parent.$parent.$parent.vm.closeTab(h.tab)}):d.error({title:"Invalid transfer",msg:"Message not found!"})}},h.downloadMessage=function(s,e){h.tab.channel&&s.id&&l[h.tab.channel+"Message"].download({id:s.id,attachments:e}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=h.tab.channel+"-message"+s.id+".eml";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.downloadMessage.get",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},h.downloadInteraction=function(s,e){h.tab.channel&&s.id&&l[h.tab.channel+"Interaction"].download({id:s.id,attachments:e}).$promise.then(function(e){var n=[e.buffer],t=h.tab.channel+"-interaction"+s.id+".zip",a=new Blob(n,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.inteactionMessage.get",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},h.openDraft=T,h.createVidaooSession=function(e){var n={id:e.id,account:e.Account,contact:e.Contact};return l.chatInteraction.createVidaooSession(n).$promise.then(function(){d.success({title:"Start Video Call",msg:"Session properly created."})}).catch(function(){d.error({title:"Start Video Call",msg:"Unable to create session!"})})},h.reply=function(e,n){if(e&&13===e.keyCode&&e.shiftKey)return;if(e&&13!==e.keyCode)return;if(""===n.trim())return;S(function(e){var n={},t="chat"===h.tab.channel?"ChatWebsiteId":_.capitalize(h.tab.channel)+"AccountId";n[t]=h.interaction[t].toString(),n[_.capitalize(h.tab.channel)+"InteractionId"]=h.interaction.id,("sms"===h.tab.channel||"whatsapp"===h.tab.channel)&&(n.phone=h.interaction.phone);e&&(n.UserId=h.user.id,n.ContactId=h.interaction.ContactId,n.body=e);return n}(n.replace(/\n$/,"")))},h.upload=function(){h.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},h.ngFlow.flow.upload()},h.fileAdded=function(e){if(e.size>b)return d.error({title:"File too big",msg:"The max allowed size is "+f+"MB"}),!1;return!0},h.fileSuccess=function(e,n){var t=JSON.parse(n),a=t.name;"chat"===h.tab.channel&&(a='<a href="'+(h.account.remote?h.account.remote:o.protocol()+"://"+o.host())+"/api/chat/interactions/"+h.interaction.id+"/attachment_download?attachId="+t.id+"&token="+h.account.token+'" target="_self">'+t.name+"</a>");S({body:a,AttachmentId:t.id})},h.onMessageSave=function(e){if(e&&h.interaction.id!=e[_.capitalize(h.tab.channel)+"InteractionId"])return;var n=!1;h.messages?n=_.find(h.messages.rows,{id:e.id}):h.messages={rows:[],count:0};n?_.merge(n,e):("mail"===h.tab.channel?h.messages.rows.unshift(e):h.messages.rows.push(e),y())},h.onInteractionSave=function(e){if(e&&h.interaction.id!==e.id)return;e.closed&&(h.tab.saved=!0);_.merge(h.interaction,e)},h.searchTextChange=function(n){var t=s.defer(),a=[],e={},i="chat"===h.tab.channel?"ChatWebsiteId":_.capitalize(h.tab.channel)+"AccountId";return e.filter=n,e[i]=h.account.id,l.cannedAnswer.get(e).$promise.then(function(e){return a=_.concat(a,e.rows),l.cannedAnswer.get({filter:n}).$promise}).then(function(e){a=_.concat(a,_.filter(e.rows,function(e){return!(e.MailAccountId||e.FaxAccountId||e.SmsAccountId||e.WhatsappAccountId||e.OpenchannelAccountId||e.ChatWebsiteId)})),t.resolve(a)}).catch(function(e){t.reject(e)}),t.promise},h.selectedItemChange=function(n){if(n){try{_.templateSettings.interpolate=/{{([\s\S]+?)}}/g;var e=_.template(n.value),t={user:h.user,account:h.account,interaction:h.interaction,contact:h.interaction&&h.interaction.Contact?h.interaction.Contact:{}};""!==h.tab.areaText&&(h.tab.areaText+=" "),h.tab.areaText+=e(t),h.ctrlMethods.setText(h.tab.areaText)}catch(e){""!==h.tab.areaText&&(h.tab.areaText+=" "),h.tab.areaText+=n.value,h.ctrlMethods.setText(h.tab.areaText)}h.selectedItem=null,h.changeDisplayCannedAnswerInputValue()}},h.getMessagesAlignment=function(e){if(e.secret&&h.user.id!=e.UserId)return"in";switch(h.setting.messagesAlignment){case"left":return"in"==e.direction?e.direction:"out-left-aligned";case"right":return"in"==e.direction?"in-right-aligned":e.direction;default:return e.direction}},h.displayCannedAnswerInput=!1,h.changeDisplayCannedAnswerInputValue=function(){h.displayCannedAnswerInput=!h.displayCannedAnswerInput},h.setAs=function(e){h.tab.channel&&h.interaction&&h.interaction.id&&l[h.tab.channel+"Interaction"].update({id:h.interaction.id,substatus:e}).$promise.catch(function(e){d.error(e.data?e.data.message:e.toString())})},h.markAsUnread=function(){if(h.tab.channel&&h.interaction&&h.interaction.id)if(h.acceptedMessages.length)for(var e=0;e<h.acceptedMessages.length;e+=1)l[h.tab.channel+"Message"].update({id:h.acceptedMessages[e],read:!1,UserId:null});else for(var n=0;n<h.messages.rows.length;n+=1)if("in"===h.messages.rows[n].direction){h.messages.rows[n].UserId===h.user.id?l[h.tab.channel+"Message"].update({id:h.messages.rows[n].id,read:!1,UserId:null}):d.error({title:"You can't mark as unread",msg:"You are not the owner of the last message!"});break}h.tab.saved=!0,a.$parent.$parent.$parent.vm.closeTab(h.tab)},h.getAttachments=function(n){return l.attachment.get({MailMessageId:n.id}).$promise.then(function(e){e&&e.rows&&(n.attachments=e.rows)}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"ATTACHMENTS:GET",msg:e.data?JSON.stringify(e.data):e.toString()})})},h.getAttachment=function(i){return l.attachment.download({id:i.id}).$promise.then(function(e){if(e){var n=new Blob([e.buffer],{type:e.type}),t=document.createElement("a"),a=window.URL.createObjectURL(n);t.href=a,t.target="_self",t.download=i.name,document.body.appendChild(t),t.click(),setTimeout(function(){document.body.removeChild(t),window.URL.revokeObjectURL(a)},100)}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"ATTACHMENTS:GET",msg:e.data?JSON.stringify(e.data):e.toString()})})},h.htmlToPlaintext=function(e){return e?String(e).replace(/<[^>]+>/gm,""):""},h.onInteractionOpen=function(e){var n;h.interaction.id==e[_.upperFirst(h.tab.channel)+"InteractionId"]&&(h.interaction.Users&&(n=_.find(h.interaction.Users,{id:e.UserId})),n||h.interaction.Users.push({id:e.UserId}))},h.onInteractionClose=function(e){h.interaction.id==e[_.upperFirst(h.tab.channel)+"InteractionId"]&&h.interaction.Users&&_.remove(h.interaction.Users,{id:e.UserId})},h.getCustomerJourney=I,h.loadNextPage=function(){var t=s.defer();if(h.queryMessage)return h.queryMessage.offset=h.messages.rows.length,l[h.tab.channel+"Interaction"].getMessages(h.queryMessage).$promise.then(function(e){for(var n=0;n<e.rows.length;n+=1)h.messages.rows.push(e.rows[n]),h.interaction.closed||"in"!==e.rows[n].direction||e.rows[n].read||(l[h.tab.channel+"Message"].accept({id:e.rows[n].id,UserId:h.user.id}),h.acceptedMessages.push(e.rows[n].id));return 0<e.rows.length&&(h.BTNLoadMore=h.BTNLoadMore-e.rows.length),t.resolve(e)}).catch(function(e){return t.reject(e)});return t.reject()},h.interactionTimelineOptions={scrollEl:"#interaction-content"},h.loadMoreJourney=function(){return s(function(e){var n=h.journey.length;return e(I(n))})},h.journeyTimelineOptions={scrollEl:"#journey-content"},a.$on("$destroy",function(){m.removeAllListeners(h.tab.channel+"Message:save"),m.removeAllListeners(h.tab.channel+"Message:update"),m.removeAllListeners(h.tab.channel+"Interaction:save"),m.removeAllListeners(h.tab.channel+"Interaction:update"),m.removeAllListeners("user_has_"+h.tab.channel+"_interactions:save"),m.removeAllListeners("user_has_"+h.tab.channel+"_interactions:remove")})}function n(a){return{scope:{ngBindHtmlUnsafe:"="},template:"<div ng-bind-html='trustedHtml'></div>",link:function(t){t.updateView=function(){var e,n=_.replace(t.ngBindHtmlUnsafe,'<div id="xm-mail-content"','<a style="cursor:pointer" class="toggle-details md-accent-color" onclick="document.getElementById(\''+(e="xm-mail-content-"+Math.floor(9999*Math.random()+1))+"').style.display='block'; this.parentNode.removeChild(this)\">See More</a><div id=\""+e+'" style="display:none"');t.trustedHtml=a.trustAsHtml(n)},t.$watch("ngBindHtmlUnsafe",function(e){t.updateView(e)})}}}e.$inject=["$cookies","$timeout","$document","$scope","$mdDialog","$q","$location","$translate","api","toasty","Auth","socket","msUtils","draftManager","customerJourneyManager","privacyManager"],n.$inject=["$sce"],angular.module("app.dashboards").directive("ngBindHtmlUnsafe",n).controller("AgentGeneralInteractionController",e)}(),function(){"use strict";angular.module("app.dashboards").factory("Emojis",function(){return{watchEmbedData:!1,sanitizeHtml:!1,fontSmiley:!1,emoji:!0,link:!0,linkTarget:"_blank",pdf:{embed:!0},image:{embed:!0},audio:{embed:!0},basicVideo:!1,gdevAuth:"xxxxxxxx",video:{embed:!1,width:null,height:null,ytTheme:"dark",details:!1,thumbnailQuality:"medium",autoPlay:!0},twitchtvEmbed:!0,dailymotionEmbed:!0,tedEmbed:!0,dotsubEmbed:!0,liveleakEmbed:!0,ustreamEmbed:!0,soundCloudEmbed:!0,soundCloudOptions:{height:160,themeColor:"f50000",autoPlay:!1,hideRelated:!1,showComments:!0,showUser:!0,showReposts:!1,visual:!1,download:!1},spotifyEmbed:!0,tweetEmbed:!0,tweetOptions:{maxWidth:550,hideMedia:!1,hideThread:!1,align:"none",lang:"en"},code:{highlight:!0,lineNumbers:!1},codepenEmbed:!0,codepenHeight:300,jsfiddleEmbed:!0,jsfiddleHeight:300,jsbinEmbed:!0,jsbinHeight:300,plunkerEmbed:!0,githubgistEmbed:!0,ideoneEmbed:!0,ideoneHeight:300}})}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;switch(p.currentUser=u.getCurrentUser(),p.errors=[],p.separatorKeys=[i.KEY_CODE.ENTER,i.KEY_CODE.COMMA,i.KEY_CODE.TAB],p.searchTextChange=function(n){var t=c.defer(),a=[];return l.cannedAnswer.get({filter:n,ChatAccountId:s.id}).$promise.then(function(e){return a=_.concat(a,e.rows),l.cannedAnswer.get({filter:n}).$promise}).then(function(e){a=_.concat(a,_.filter(e.rows,function(e){return!(e.MailAccountId||e.FaxAccountId||e.SmsAccountId||e.WhatsappAccountId||e.OpenchannelAccountId||e.ChatWebsiteId)})),t.resolve(a)}).catch(function(e){t.reject(e)}),t.promise},p.selectedItemChange=function(n){if(n){try{_.templateSettings.interpolate=/{{([\s\S]+?)}}/g;var e=_.template(n.value),t={user:p.currentUser,account:s};p.message.body+=" "+e(t),p.ctrlMethods.setText(p.message.body)}catch(e){p.message.body+=" "+n.value,p.ctrlMethods.setText(p.message.body)}p.selectedItem=null}},p.note=function(){p.secret=!0},p.addNote=function(){p.message.body&&a.hide({secret:!0,body:p.message.body})},p.ctrlMethods={},p.message={from:s.phone,to:_.isNil(o.to)||_.isEmpty(o.to)?[]:o.to,body:""},p.send=function(e){p.message.to&&p.message.body&&(p.message.to.length?(n=p.message.body,a.hide({to:p.message.to.join(","),body:n})):d.error("To is mandatory"));var n},p.getContact=function(e){var n="";e.firstName&&e.firstName!==e.mobile&&(n+=e.firstName+" ");e.lastName&&e.lastName!==e.mobile&&(n+=e.lastName+" ");return n+="<"+e.mobile+">"},p.closeDialog=function(){a.cancel()},p.contactSearch=function(e){if(s&&s.ListId)return l.cmContact.get({ListId:s.ListId,nolimit:!0,filter:e,fields:"firstName,lastName,mobile"}).$promise.then(function(e){return e.rows});return[]},p.transformContact=function(e){var n=e;if(_.isObject(n))return e.mobile;if(t=n,/^(\+|\d)[0-9]{7,16}$/.test(t))return n;var t;return d.error("Mobile "+n+" is not valid"),null},r){case"note":p.note()}}e.$inject=["$cookies","$timeout","$window","$mdDialog","$mdConstant","account","message","type","api","toasty","$q","$translate","Auth"],angular.module("app.dashboards").controller("ComposeChatInteractionDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this,m=25,u=1024*m*1024;c.separatorKeys=[a.KEY_CODE.ENTER,a.KEY_CODE.COMMA,a.KEY_CODE.TAB],c.message={from:i.localstationid,to:_.isNil(s.to)||_.isEmpty(s.to)?[]:s.to,attachments:[]},c.ngFlowOptions={target:"api/attachments",singleFile:!0,maxChunkRetries:1,chunkSize:u,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},c.ngFlow={flow:{}},c.send=function(e){1===c.message.attachments.length?c.message.to.length?(s.draft=void 0,t.hide({from:c.message.from,to:c.message.to,attach:c.message.attachments.length,attachments:c.message.attachments})):l.error("To is mandatory"):l.error("Attachment is mandatory")},c.upload=function(){c.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},c.ngFlow.flow.upload()},c.fileSuccess=function(e,n){try{(n=JSON.parse(n)).size=e.size,c.message.attachments.push(n)}catch(e){console.error(e)}},c.fileAdded=function(e){var n=["pdf","tif"];if(!_.includes(n,e.getExtension()))return l.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extensions: "+n.join()}),!1;if(e.size>u)return l.error({title:"File too big",msg:"The max allowed size is "+m+"MB"}),!1;return!0},c.getContact=function(e){var n="";e.firstName&&e.firstName!==e.fax&&(n+=e.firstName+" ");e.lastName&&e.lastName!==e.fax&&(n+=e.lastName+" ");return n+="<"+e.fax+">"},c.contactSearch=function(e){return i&&i.ListId?r.cmContact.get({ListId:i.ListId,nolimit:!0,filter:e,fields:"firstName,lastName,fax"}).$promise.then(function(e){return e.rows}):[]},c.transformContact=function(e){var n=e;if(_.isObject(e))return e.fax;if(t=n,!/[&\/\\#,()$~%.'":;*?<>{}\s\\|a-zA-Z\pS!òàùè…_§°çéì-]/.test(t))return n;var t;return l.error("Fax "+n+" is not valid"),null},c.closeDialog=function(){s.draft=c.message,t.cancel()}}e.$inject=["$cookies","$window","$mdDialog","$mdConstant","account","message","type","api","toasty","$q"],angular.module("app.dashboards").controller("ComposeFaxInteractionDialogController",e)}(),function(){"use strict";function e(n,e,i,t,a,s,o,r,l,d,c,m,u,p){var g=this,v=25,h=1024*v*1024;g.currentUser=m.getCurrentUser(),g.secret="note"===r,g.hiddenCC=!0,g.hiddenBCC=!0,g.verifySmtp=!0,g.errors=[],g.separatorKeys=[t.KEY_CODE.ENTER,t.KEY_CODE.COMMA,t.KEY_CODE.TAB],g.searchTextChange=function(n){var t=c.defer(),a=[];return l.cannedAnswer.get({filter:n,MailAccountId:s.id}).$promise.then(function(e){return a=_.concat(a,e.rows),l.cannedAnswer.get({filter:n}).$promise}).then(function(e){a=_.concat(a,_.filter(e.rows,function(e){return!(e.MailAccountId||e.FaxAccountId||e.SmsAccountId||e.WhatsappAccountId||e.OpenchannelAccountId||e.ChatWebsiteId)})),t.resolve(a)}).catch(function(e){t.reject(e)}),t.promise},g.selectedItemChange=function(n){if(n&&n.value&&g.ckEditorInstance)try{var e=_.template(n.value),t={user:g.currentUser,account:s,interaction:u,contact:u&&u.Contact?u.Contact:{}};g.ckEditorInstance.insertHtml(e(t))}catch(e){console.error(e),g.ckEditorInstance.insertHtml(n.value)}document.getElementById("html-area").focus(),g.selectedItem=null},g.onReadyEditor=function(e){try{g.ckEditorInstance=CKEDITOR.instances["html-area"]}catch(e){console.error("Unable to get Html Editor instance",e)}},_.templateSettings.interpolate=/{{([\s\S]+?)}}/g,g.fromTemplate=_.template("{{ name }} <{{ email }}>"),g.replyTemplate=_.template("On {{ date }}, at {{ time }}, {{ from }} wrote:"),g.forwardTemplate=_.template("Begin forwarded message:<br><br><strong>From:</strong> {{ from }}<br><strong>Subject:</strong> {{ subject }}<br><strong>Date:</strong> {{ date }}, at {{ time }}<br><strong>To:</strong> {{ to }}"),g.message={from:g.fromTemplate({name:s.name,email:s.email||s.Smtp.user}),to:[],cc:[],bcc:[],body:S(),type:r,attachments:[],showLastMessage:!0},g.draft=null,g.ckeditor={skin:"office2013",startupFocus:!0,language:"en",allowedContent:!0,extraPlugins:"font,colorbutton,autogrow,autoembed,autocorrect,googlethisterm,pastebase64",toolbarGroups:[{name:"styles",groups:["styles"]},{name:"clipboard",groups:["undo"]},{name:"colors",groups:["colors"]},{name:"basicstyles",groups:["basicstyles"]},{name:"paragraph",groups:["list","indent","align"]}],autoGrow_onStartup:!0,autoGrow_minHeight:g.secret?160:300,autoGrow_maxHeight:e.innerHeight-400,autocorrect_enabled:!0,disableNativeSpellChecker:!1,enterMode:CKEDITOR.ENTER_BR,font_defaultLabel:s.fontFamily?s.fontFamily.split(",")[0]:"Arial",fontSize_defaultLabel:s.fontSize||"12",removePlugins:"magicline"};for(var f=[],b=8;b<=72;b++)f.push(b+"/"+b+"pt");g.ckeditor.fontSize_sizes=f.join(";"),g.ngFlowOptions={target:"api/attachments",singleFile:!0,maxChunkRetries:1,chunkSize:h,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},g.ngFlow={flow:{}},g.reply=function(e){angular.isDefined(o)&&(g.message.type="reply",g.message.to="in"===o.direction?o.from.split(","):o.to.split(","),g.message.subject=_.startsWith(o.subject,"Re:")?o.subject:"Re: "+o.subject,g.message.inReplyTo=o.messageId,g.message.body=S(),g.message.attachments=[],e&&o.cc&&(g.hiddenCC=!1,g.message.cc=o.cc.split(",")),g.message.showLastMessage=!1)},g.newMail=function(){angular.isDefined(o)&&(g.message.type="new",g.message.to=o.to?o.to.split(","):[])},g.forward=function(){if(angular.isDefined(o)){if(g.message.type="forward",g.message.subject=_.startsWith(o.subject,"Fwd:")?o.subject:"Fwd: "+o.subject,g.message.body=S(),o.Attachments&&o.Attachments.length)for(var e=0;e<o.Attachments.length;e++)g.message.attachments.push(o.Attachments[e]);g.message.showLastMessage=!1}},g.editDraft=function(){g.isDraft=!0,angular.isDefined(o)&&(o.savedAsDraft=!1,g.message=angular.copy(o),_.isEmpty(g.message.cc)||(g.hiddenCC=!1),_.isEmpty(g.message.bcc)||(g.hiddenBCC=!1))},g.send=function(e,n,t){if(!A&&g.message.to&&g.message.body)if(g.message.to.length)if(_.isEmpty(g.message.subject)){var a=i.confirm({skipHide:!0}).title("Warning").textContent("This message has no subject. Are you sure you want to send it?").ariaLabel("Warning").targetEvent(e).ok("Send Anyway").cancel("Cancel");i.show(a).then(function(){E(n,t)})}else E(n,t);else d.error("To is mandatory");A=!1},g.note=function(){g.type="note",g.secret=!0,g.message.body='<div style="font-family:'+s.fontFamily+";font-size:"+s.fontSize+'pt"><p></p></div>'},g.addNote=function(){g.message.body&&i.hide({secret:!0,body:g.message.body,attach:g.message.attachments.length,attachments:g.message.attachments})},g.upload=function(e){g.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+n.get("motion.token")},g.ngFlow.flow.upload()},g.fileSuccess=function(e,n){try{(n=JSON.parse(n)).size=e.size,g.message.attachments.push(n)}catch(e){console.error(e)}},g.removeAttachment=function(e){g.message.attachments=_.reject(g.message.attachments,{id:e.id}),e.MailMessageId||l.attachment.delete({id:e.id}).$promise.catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.attachment.delete",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.fileAdded=function(e){if(e.size>h)return d.error({title:"File too big",msg:"The max allowed size is "+v+"MB"}),!1;return!0},g.getContact=function(e){var n="";e.firstName&&e.firstName!==e.email&&(n+=e.firstName+" ");e.lastName&&e.lastName!==e.email&&(n+=e.lastName+" ");return n+="<"+e.email+">"},g.contactSearch=function(e){return s&&s.ListId?l.cmContact.get({ListId:s.ListId,nolimit:!0,filter:e,fields:"firstName,lastName,email"}).$promise.then(function(e){return e.rows}):[]},g.transformContact=function(e,n){if(_.isObject(e))return(g.contact=e).email;if(_.isString(e)){if(y(e))return g.contact={email:e},e;for(var t=e.split(","),a=0;a<t.length;a+=1)y(t[a])?_.isArray(n)&&_.indexOf(n,t[a])<0&&n.push(t[a]):d.error("Email "+t[a]+" is not valid");return g.contact={email:e.split(",")[0]},null}return d.error("Email field is not valid"),null},g.saveDraft=function(){g.message.savedAsDraft=!0,g.draft=p.getByInteraction(u.id);var e={account:s,message:g.message,contact:g.contact,interaction:u};if(g.draft&&!g.isDraft){var n=i.confirm({skipHide:!0}).title(a.instant("DASHBOARDS.DRAFT_SAVE_WARNING_TITLE")).content(a.instant("DASHBOARDS.DRAFT_SAVE_WARNING_MESSAGE")).ariaLabel("Save draft").ok(a.instant("DASHBOARDS.OVERWRITE")).cancel(a.instant("DASHBOARDS.CANCEL"));i.show(n).then(function(){i.hide(e)})}else i.hide(e)},g.closeDialog=function(){i.cancel()},g.loadLastMessage=function(){g.message.body+=T(g.message.type)};var A=!(g.keyPress=function(e){13===e.keyCode&&(A=!0)});switch(r){case"reply":g.reply(!1);break;case"replyAll":g.reply(!0);break;case"forward":g.forward();break;case"draft":g.editDraft();break;case"new":g.newMail();break;case"note":g.note()}function E(e,n){var t={from:g.message.from,to:g.message.to.join(","),cc:g.message.cc.join(","),bcc:g.message.bcc.join(","),subject:g.message.subject,body:g.message.showLastMessage?g.message.body:g.message.body+T(g.message.type),inReplyTo:g.message.inReplyTo,attach:g.message.attachments.length,attachments:g.message.attachments,Interaction:{lastMsgDirection:"out",substatus:n},isDraft:g.isDraft};t.html='<div id="xm-mail-content">'+_.replace(t.body,'<div id="xm-mail-content"',"<div")+"</div>",e&&(t.Interaction.closed=!0),i.hide(t)}function y(e){return/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(e)}function S(){return'<div style="font-family:'+s.fontFamily+";font-size:"+s.fontSize+'pt">'+function(){if(_.isNil(s.template))return"";try{return _.template(s.template)({user:g.currentUser,account:s,interaction:u,contact:u&&u.Contact?u.Contact:{}})}catch(e){return console.error(e),""}}()+"</div>"}function T(e){var n='<div id="xm-mail-content"><blockquote type="cite">';switch(e){case"reply":case"replyAll":n+=g.replyTemplate({date:moment(o.createdAt).format("D MMM YYYY")||"",time:moment(o.createdAt).format("HH:mm")||"",from:_.escape(o.from)||""});break;case"forward":n+=g.forwardTemplate({date:moment(o.createdAt).format("D MMM YYYY")||"",time:moment(o.createdAt).format("HH:mm")||"",from:_.escape(o.from)||"",to:_.escape(o.to)||"",subject:_.escape(o.subject)||""})}var t,a,i=g.message.showLastMessage&&o.originalMessage?o.originalMessage.body:o.body;return n+="<br><br>",n+=(t=i?_.replace(i,'<div id="xm-mail-content"',"<div"):"",(a=t.match(/\<body[^>]*\>([^]*)\<\/body/m))?a[1]:t),n+="</blockquote></div>",e?n:""}l.mailSubstatus.get({nolimit:!0}).$promise.then(function(e){g.subStatuses=e||{count:0,rows:[]}}).catch(function(e){console.error(e)}),g.secret||l.mailAccount.verifySmtp({id:s.id}).$promise.catch(function(e){g.verifySmtp=!1,g.errors.push({message:e.data,type:e.status}),g.errors.push({message:"You can't reply or send an email. Please contact the administrator!",type:"500"})})}e.$inject=["$cookies","$window","$mdDialog","$mdConstant","$translate","account","message","type","api","toasty","$q","Auth","interaction","draftManager"],angular.module("app.dashboards").controller("ComposeMailInteractionDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;switch(p.currentUser=u.getCurrentUser(),p.errors=[],p.separatorKeys=[i.KEY_CODE.ENTER,i.KEY_CODE.COMMA,i.KEY_CODE.TAB],p.searchTextChange=function(n){var t=c.defer(),a=[];return l.cannedAnswer.get({filter:n,OpenchannelAccountId:s.id}).$promise.then(function(e){return a=_.concat(a,e.rows),l.cannedAnswer.get({filter:n}).$promise}).then(function(e){a=_.concat(a,_.filter(e.rows,function(e){return!(e.MailAccountId||e.FaxAccountId||e.SmsAccountId||e.WhatsappAccountId||e.OpenchannelAccountId||e.ChatWebsiteId)})),t.resolve(a)}).catch(function(e){t.reject(e)}),t.promise},p.selectedItemChange=function(n){if(n){try{_.templateSettings.interpolate=/{{([\s\S]+?)}}/g;var e=_.template(n.value),t={user:p.currentUser,account:s};p.message.body+=" "+e(t),p.ctrlMethods.setText(p.message.body)}catch(e){p.message.body+=" "+n.value,p.ctrlMethods.setText(p.message.body)}p.selectedItem=null}},p.note=function(){p.secret=!0},p.addNote=function(){p.message.body&&a.hide({secret:!0,body:p.message.body})},p.ctrlMethods={},p.message={from:s.phone,to:_.isNil(o.to)||_.isEmpty(o.to)?[]:o.to,body:""},p.send=function(e){p.message.to&&p.message.body&&(p.message.to.length?(n=p.message.body,a.hide({to:p.message.to.join(","),body:n})):d.error("To is mandatory"));var n},p.getContact=function(e){var n="";e.firstName&&e.firstName!==e[s.mapKey]&&(n+=e.firstName+" ");e.lastName&&e.lastName!==e[s.mapKey]&&(n+=e.lastName+" ");return n+="<"+e[s.mapKey]+">"},p.closeDialog=function(){a.cancel()},p.contactSearch=function(e){if(s&&s.ListId){var n="firstName,lastName,phone,mobile";return s.mapKey&&(n+=","+s.mapKey),l.cmContact.get({ListId:s.ListId,nolimit:!0,filter:e,fields:n}).$promise.then(function(e){return e.rows})}return[]},p.transformContact=function(e){var n=e;if(_.isObject(n))return e[s.mapKey];return n},r){case"note":p.note()}}e.$inject=["$cookies","$timeout","$window","$mdDialog","$mdConstant","account","message","type","api","toasty","$q","$translate","Auth"],angular.module("app.dashboards").controller("ComposeOpenchannelInteractionDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;switch(p.currentUser=u.getCurrentUser(),p.errors=[],p.separatorKeys=[i.KEY_CODE.ENTER,i.KEY_CODE.COMMA,i.KEY_CODE.TAB],p.searchTextChange=function(n){var t=c.defer(),a=[];return l.cannedAnswer.get({filter:n,SmsAccountId:s.id}).$promise.then(function(e){return a=_.concat(a,e.rows),l.cannedAnswer.get({filter:n}).$promise}).then(function(e){a=_.concat(a,_.filter(e.rows,function(e){return!(e.MailAccountId||e.FaxAccountId||e.SmsAccountId||e.WhatsappAccountId||e.OpenchannelAccountId||e.ChatWebsiteId)})),t.resolve(a)}).catch(function(e){t.reject(e)}),t.promise},p.selectedItemChange=function(n){if(n){try{_.templateSettings.interpolate=/{{([\s\S]+?)}}/g;var e=_.template(n.value),t={user:p.currentUser,account:s};p.message.body+=" "+e(t),p.ctrlMethods.setText(p.message.body)}catch(e){p.message.body+=" "+n.value,p.ctrlMethods.setText(p.message.body)}p.selectedItem=null}},p.note=function(){p.secret=!0},p.addNote=function(){p.message.body&&a.hide({secret:!0,body:p.message.body})},p.ctrlMethods={},p.message={from:s.phone,to:_.isNil(o.to)||_.isEmpty(o.to)?[]:o.to,body:""},p.send=function(e){p.message.to&&p.message.body&&(p.message.to.length?(n=p.message.body,a.hide({to:p.message.to.join(","),body:n})):d.error("To is mandatory"));var n},p.getContact=function(e){var n="";e.firstName&&e.firstName!==e.mobile&&(n+=e.firstName+" ");e.lastName&&e.lastName!==e.mobile&&(n+=e.lastName+" ");return n+="<"+e.mobile+">"},p.closeDialog=function(){a.cancel()},p.contactSearch=function(e){if(s&&s.ListId)return l.cmContact.get({ListId:s.ListId,nolimit:!0,filter:e,fields:"firstName,lastName,mobile"}).$promise.then(function(e){return e.rows});return[]},p.transformContact=function(e){var n=e;if(_.isObject(n))return e.mobile;if(t=n,/^(\+|\d)[0-9]{7,16}$/.test(t))return n;var t;return d.error("Mobile "+n+" is not valid"),null},r){case"note":p.note()}}e.$inject=["$cookies","$timeout","$window","$mdDialog","$mdConstant","account","message","type","api","toasty","$q","$translate","Auth"],angular.module("app.dashboards").controller("ComposeSmsInteractionDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;switch(p.currentUser=u.getCurrentUser(),p.errors=[],p.separatorKeys=[i.KEY_CODE.ENTER,i.KEY_CODE.COMMA,i.KEY_CODE.TAB],p.searchTextChange=function(n){var t=c.defer(),a=[];return l.cannedAnswer.get({filter:n,WhatsappAccountId:s.id}).$promise.then(function(e){return a=_.concat(a,e.rows),l.cannedAnswer.get({filter:n}).$promise}).then(function(e){a=_.concat(a,_.filter(e.rows,function(e){return!(e.MailAccountId||e.FaxAccountId||e.SmsAccountId||e.WhatsappAccountId||e.OpenchannelAccountId||e.ChatWebsiteId)})),t.resolve(a)}).catch(function(e){t.reject(e)}),t.promise},p.selectedItemChange=function(n){if(n){try{_.templateSettings.interpolate=/{{([\s\S]+?)}}/g;var e=_.template(n.value),t={user:p.currentUser,account:s};p.message.body+=" "+e(t),p.ctrlMethods.setText(p.message.body)}catch(e){p.message.body+=" "+n.value,p.ctrlMethods.setText(p.message.body)}p.selectedItem=null}},p.note=function(){p.secret=!0},p.addNote=function(){p.message.body&&a.hide({secret:!0,body:p.message.body})},p.ctrlMethods={},p.message={from:s.phone,to:_.isNil(o.to)||_.isEmpty(o.to)?[]:o.to,body:""},p.send=function(e){p.message.to&&p.message.body&&(p.message.to.length?(n=p.message.body,a.hide({to:p.message.to.join(","),body:n})):d.error("To is mandatory"));var n},p.getContact=function(e){var n="";e.firstName&&e.firstName!==e.mobile&&(n+=e.firstName+" ");e.lastName&&e.lastName!==e.mobile&&(n+=e.lastName+" ");return n+="<"+e.mobile+">"},p.closeDialog=function(){a.cancel()},p.contactSearch=function(e){if(s&&s.ListId)return l.cmContact.get({ListId:s.ListId,nolimit:!0,filter:e,fields:"firstName,lastName,mobile"}).$promise.then(function(e){return e.rows});return[]},p.transformContact=function(e){var n=e;if(_.isObject(n))return e.mobile;if(t=n,/^(\+|\d)[0-9]{7,16}$/.test(t))return n;var t;return d.error("Mobile "+n+" is not valid"),null},r){case"note":p.note()}}e.$inject=["$cookies","$timeout","$window","$mdDialog","$mdConstant","account","message","type","api","toasty","$q","$translate","Auth"],angular.module("app.dashboards").controller("ComposeWhatsappInteractionDialogController",e)}(),function(){"use strict";function e(n,t,a,e,i,s,o){var r=this;function l(e){n.hide(e)}r.errors=[],r.dispositions=[],r.interaction=angular.copy(e),r.interaction.disposition||(r.interaction.disposition=null),r.channel=i,r.apiRoute=r.channel+"Interaction",r.apiAccountRoute=r.channel+("chat"===r.channel?"Website":"Account"),r.accountProperty=_.capitalize(r.channel)+("chat"===r.channel?"Website":"Account")+"Id",r.firstLevelDisposition=null,r.mandatoryDisposition=!1,r.mandatoryDispositionPause="",r.wasUserInPause=s.voicePause||s.chatPause||s.mailPause||s.openchannelPause||s.faxPause,r.onInit=function(){var n=[],t={fields:"id,name,level,ParentId",sort:"name",nolimit:!0};t[r.accountProperty]=e[r.accountProperty],a[r.apiAccountRoute].get({id:e[r.accountProperty]}).$promise.then(function(e){return r.mandatoryDisposition=e.mandatoryDisposition,r.mandatoryDisposition&&(r.mandatoryDispositionPause=e.mandatoryDispositionPause.name),a.disposition.get(t).$promise}).then(function(e){return e.rows.length&&(n=_.concat(n,e.rows)),a.disposition.get({MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0}).$promise}).then(function(e){e.rows.length&&(n=_.concat(n,e.rows))}).catch(function(e){console.error(e)}).finally(function(){r.dispositions=_.orderBy(n,["name"],["asc"]),r.mandatoryDisposition&&!r.wasUserInPause&&a.user.pause({id:s.id,type:r.mandatoryDispositionPause||"DEFAULT PAUSE"}).$promise.then(function(e){}).catch(function(e){console.error(e)})})},r.onDispositionChange=function(e){"first"===e?(r.anySecondLevelDisposition=!!r.firstLevelDisposition&&_.some(r.dispositions,["ParentId",r.firstLevelDisposition.id]),r.firstLevelDisposition||(r.secondLevelDisposition=void 0)):"second"===e&&(r.anyThirdLevelDisposition=_.some(r.dispositions,["ParentId",r.secondLevelDisposition.id]))},r.clearDispositionSelection=function(e){"second"===e?(r.secondLevelDisposition=void 0,r.thirdLevelDisposition=void 0):"third"===e&&(r.thirdLevelDisposition=void 0)},r.saveDisposition=function(){r.errors=[],r.interaction.UserId=s.id,r.interaction.closed=!0,r.interaction.closeReason="agent",r.interaction.disposition=r.firstLevelDisposition?r.firstLevelDisposition.name:null,r.interaction.secondDisposition=r.secondLevelDisposition?r.secondLevelDisposition.name:void 0,r.interaction.thirdDisposition=r.thirdLevelDisposition?r.thirdLevelDisposition.name:void 0,a[r.apiRoute]?a[r.apiRoute].update(_.pick(r.interaction,["MailAccountId","FaxAccountId","SmsAccountId","WhatsappAccountId","ChatWebsiteId","OpenchannelAccountId","closed","closeReason","disposition","secondDisposition","thirdDisposition","id","note","UserId"])).$promise.then(function(e){r.interaction=e,"mail"===r.channel&&o.removeByInteraction(r.interaction.id),t.success({title:"Interaction properly closed!",msg:"Interaction has been closed!"})}).then(function(){l(!0)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){r.errors=e.data.errors||[{message:e.toString(),type:"api.variable.update"}];for(var n=0;n<e.data.errors.length;n++)t.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.variable.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})}):l(!1)},r.closeDialog=l}e.$inject=["$mdDialog","toasty","api","interaction","channel","user","draftManager"],angular.module("app.dashboards").controller("DisposeInteractionDialogController",e)}(),function(){"use strict";function e(n,t,e,a,i,s){var o=this;function r(e){n.hide(e)}o.errors=[],o.tags=s,o.interaction=angular.copy(a),o.interaction.Tags=_.map(o.interaction.Tags,function(e){return{id:e.id,name:e.name,color:e.color}}),o.channel=i,o.autocompleteRequireMatch=!0,o.saveTag=function(){{if(o.errors=[],e[o.apiRoute])return e[o.apiRoute].addTags({id:o.interaction.id,ids:_.map(o.interaction.Tags,"id")}).$promise.then(function(){t.success({title:"Interaction properly tagged!",msg:"Interaction has been tagged!"}),a.Tags=o.interaction.Tags,r(!0)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)t.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.variable.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})});r(!1)}},o.closeDialog=r,o.apiRoute=o.channel+"Interaction"}e.$inject=["$mdDialog","toasty","api","interaction","channel","tags"],angular.module("app.dashboards").controller("TagInteractionDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r,l,d){var c=this;function m(e){n.hide(e)}c.channel=s.toLowerCase(),c.message=o,c.account=r,c.agents=l,c.queues=d,c.transfer={id:0,type:c.account.queueTransfer?"queue":"agent"},c.onTransfer=function(){m(!0),e(function(){var e="agent"===c.transfer.type?"agentNotify":c.channel+"QueueNotify";return a.rpc[e]({id:c.transfer.id,messageId:c.message.id,channel:c.channel}).$promise.then(function(){i.success({title:t.instant("DASHBOARDS.INFO"),msg:"queue"===c.transfer.type?t.instant("DASHBOARDS.NOTIFICATIONS.TRANSFER_QUEUE_EXECUTED"):t.instant("DASHBOARDS.NOTIFICATIONS.TRANSFER_AGENT_EXECUTED")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.rpc.notify"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.rpc.notify",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},5e3)},c.closeDialog=m}e.$inject=["$mdDialog","$timeout","$translate","api","toasty","channel","message","account","agents","queues"],angular.module("app.dashboards").controller("TransferMessageDialogController",e)}(),function(){"use strict";function e(i,m,s,e,u,o,r,t,n,a,l){var p=this;function d(){try{i.$parent.$parent.$parent.vm.updateLocalStorage()}catch(e){o.error({title:"ERROR UPDATE LOCAL TABS",msg:"Error updating locally stored tabs"})}}function c(t,e){var n,a,l=[],d=[],c=r.getCurrentUser();(n=c,a=m.defer(),p.project.sendUnpauseOnSubmit?u.user.unpause({id:n.id}).$promise.then(function(e){a.resolve()}).catch(function(e){console.log("err"),a.resolve()}):a.resolve(),a.promise).then(function(){return u.jscriptySessionReport.save({starttime:p.starttime,membername:p.call&&p.call.membername?p.call.membername:c.name,calleridname:p.call&&p.call.calleridname?p.call.calleridname:void 0,calleridnum:p.call&&p.call.calleridnum?p.call.calleridnum:void 0,queue:p.call&&p.call.queue?p.call.queue:void 0,uniqueid:p.call&&p.call.uniqueid?p.call.uniqueid:void 0,VoiceQueueId:p.call&&p.call["xmd-voicequeueid"]?p.call["xmd-voicequeueid"]:void 0,ProjectId:p.project&&p.project.id?p.project.id:void 0,projectname:p.project&&p.project.name?p.project.name:void 0,ContactId:p.contact&&p.contact.id?p.contact.id:void 0,completed:e}).$promise}).then(function(e){if(e)for(var n=p.getResponseSheetHeaders(),t=p.getResponseSheetRow(),a=p.getQuestionWithResponseList(),i=0;i<n.length;i+=1)if(!_.isEmpty(String(t[i]))){try{l.push(u.jscriptyQuestionReport.save({question:n[i],answer:"date"===a[i].type?moment(String(t[i])).format("YYYY-MM-DD"):"time"===a[i].type?moment(String(t[i])).format("HH:mm"):String(t[i]),questionId:a[i].id,membername:p.call&&p.call.membername?p.call.membername:c.name,calleridname:p.call&&p.call.calleridname?p.call.calleridname:void 0,calleridnum:p.call&&p.call.calleridnum?p.call.calleridnum:void 0,queue:p.call&&p.call.queue?p.call.queue:void 0,uniqueid:p.call&&p.call.uniqueid?p.call.uniqueid:void 0,SessionId:e.id,ProjectId:p.project.id,projectname:p.project.name}))}catch(e){console.error("Unable to convert question",e)}for(var s=String(t[i]).split(";"),o=0;o<s.length;o+=1){var r=s[o].trim();try{d.push(u.jscriptyAnswerReport.save({question:n[i],questionId:a[i].id,answer:"date"===a[i].type?moment(r).format("YYYY-MM-DD"):"time"===a[i].type?moment(r).format("HH:mm"):r,membername:p.call&&p.call.membername?p.call.membername:c.name,calleridname:p.call&&p.call.calleridname?p.call.calleridname:void 0,calleridnum:p.call&&p.call.calleridnum?p.call.calleridnum:void 0,queue:p.call&&p.call.queue?p.call.queue:void 0,uniqueid:p.call&&p.call.uniqueid?p.call.uniqueid:void 0,SessionId:e.id,ProjectId:p.project.id,projectname:p.project.name}))}catch(e){console.error("Unable to convert answer",e)}}}return m.all(l).then(function(){return m.all(d).then(function(){return e})})}).then(function(e){e?t.resolve(!0):t.reject()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.contact.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contact.save",msg:e.data?JSON.stringify(e.data.message):e.toString()});t.reject()})}p.formViewer={},p.showResetButton=!0,p.showIncompleteSubmitButton=!1,p.detectBrowser=l.detectBrowser(),p.onSubmit=function(e,n){var t=m.defer();if(n){var a=s.confirm().title("Would you like to save your survey?").textContent("").ariaLabel("survey").targetEvent(e).ok("YES").cancel("NO");s.show(a).then(function(){c(t,!1)},function(){t.resolve()})}else c(t,!0);return t.promise.then(function(e){e&&(o.success({title:"Session saved",msg:"Your survey session has been properly saved!"}),function(e){try{i.$parent.$parent.$parent.vm.removeTab(e)}catch(e){o.error({title:"ERROR REMOVE TAB",msg:"Error while removing tab"})}}(p.tab))}).catch(function(e){o.error({title:"Session save error",msg:"There has been an error while trying to save your survey session!"})})},p.openContact=function(e,n){try{i.$parent.$parent.$parent.vm.addContactTab(n)}catch(e){o.error({title:"ERROR OPEN CONTACT",msg:"Jscripty can't open the contact"})}},p.isJsonString=function(e){if(_.isNil(e))return!1;try{JSON.parse(e)}catch(e){return!1}return!0},p.getResponseSheet=function(){return e.getResponseSheet(p.project.formData,p.project.responseData,!1)},p.getResponseSheetRow=function(){return e.getResponseSheetRow(p.project.formData,p.project.responseData)},p.getResponseSheetHeaders=function(){return e.getResponseSheetHeaders(p.project.formData,!1)},p.getQuestionWithResponseList=function(){return e.getQuestionWithResponseList(p.project.formData,p.project.responseData)},p.init=function(e){p.tab=e,p.tab&&(p.call=p.tab.call,p.starttime=p.tab.openedAt,p.contact=p.tab.contact,p.project=p.tab.project,p.project&&(_.isObjectLike(p.project.formData)?p.project.formData=p.project.formData:p.isJsonString(p.project.formData)?p.project.formData=JSON.parse(p.project.formData):p.project.formData=void 0,p.project.responseData=p.project.responseData||{},void 0!==p.project.currentPage&&a(function(){n.$broadcast("mwForm.pageEvents.changePage",{page:p.project.currentPage})}),i.$on("mwForm.pageEvents.pageCurrentChanged",function(e,n){if(n.currentPage&&(p.project.currentPage=n.currentPage.number-1,d(),p.project.enableUncompleteSave&&(1<=n.currentPage.number&&n.currentPage.number<p.project.formData.pages.length?p.showIncompleteSubmitButton=!0:p.showIncompleteSubmitButton=!1),p.project.formData&&p.project.formData.pages))for(var t=0,a=p.project.formData.pages.length;t<a;t++)if(n.currentPage.number<t+1&&p.project.formData.pages[t].elements)for(var i=0,s=p.project.formData.pages[t].elements.length;i<s;i++)"question"===p.project.formData.pages[t].elements[i].type&&p.project.formData.pages[t].elements[i].question&&delete p.project.responseData[p.project.formData.pages[t].elements[i].question.id]})))},p.resetViewer=function(e){if(p.formViewer.reset){var n=s.confirm().title(t.instant("JSCRIPTY.DO_YOU_WANT_TO_RESET_SESSION")).content(t.instant("JSCRIPTY.ALL_SURVEY_DATA_WILL_BE_LOST")).textContent("").ariaLabel("survey").targetEvent(e).ok(t.instant("JSCRIPTY.YES")).cancel(t.instant("JSCRIPTY.NO"));s.show(n).then(function(){p.showIncompleteSubmitButton=!1,p.project.currentPage=void 0,d(),p.formViewer.reset()})}}}e.$inject=["$scope","$q","$mdDialog","mwFormResponseUtils","api","toasty","Auth","$translate","$rootScope","$timeout","msUtils"],angular.module("app.dashboards").controller("AgentGeneralJscriptyController",e)}(),function(){"use strict";function e(t,a,e,n,i){var s=this;function o(){return function(e){if(404===e.status)a.info({title:t.instant("DASHBOARDS.ATTENTION"),msg:t.instant("DASHBOARDS.ACCEPT_ELSEWHERE")});else if(e.data&&e.data.errors&&e.data.errors.length){s.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelMessage.accept"}];for(var n=0;n<e.data.errors.length;n+=1)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelMessage.accept",msg:e.data?JSON.stringify(e.data.message):e.toString()})}}s.notification=e,s.user=i.getCurrentUser(),s.accept=function(e){{if(n[s.notification.channel+"Message"])return n[s.notification.channel+"Message"].accept({id:s.notification.id,UserId:s.user.id,manual:!0}).$promise.then(function(e){a.success({title:"Message properly accepted!",msg:"Message has been accepted!"})}).catch(o());a.error({title:"API:ERROR",msg:"API accept message not found: "+s.notification.channel+"Message"})}},s.reject=function(e){{if(n[s.notification.channel+"Message"])return n[s.notification.channel+"Message"].reject({id:s.notification.id,UserId:s.user.id}).$promise.then(function(e){a.success({title:"Message properly rejected!",msg:"Message has been rejected!"})}).catch(o());a.error({title:"API:ERROR",msg:"API reject message not found: "+s.notification.channel+"Message"})}}}e.$inject=["$translate","toasty","notification","api","Auth"],angular.module("app.dashboards").controller("NotificationController",e)}(),function(){"use strict";angular.module("app.dashboards").controller("AgentGeneralPopupController",function(){var n=this;n.init=function(e){n.tab=e,n.tab&&(n.tab.saved=!0,n.html=n.tab.html)}})}(),function(){"use strict";function e(e,n,t,a){var i=this,s=[];function o(e,n){e.closed||e.UserId||!n||(i.inbound.waiting+=1),e.closed||!e.UserId||_.includes(s,e.id)||(i.inbound.talking+=1,s.push(e.id),!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),e.closed&&"abandoned"===e.disposition?(i.inbound.abandoned+=1,!n&&i.inbound.waiting&&(i.inbound.waiting-=1)):e.closed&&!e.UserId&&e.disposition?(i.inbound.unmanaged+=1,!n&&i.inbound.waiting&&(i.inbound.waiting-=1)):e.closed&&e.UserId&&(i.inbound.sumBillable+=moment(e.closedAt).diff(moment(e.read1stAt),i.config.unit),i.inbound.sumHoldTime+=moment(e.read1stAt).diff(moment(e.createdAt),i.config.unit),i.inbound.answered+=1,!n&&i.inbound.talking&&(i.inbound.talking-=1)),n&&(i.inbound.total+=1)}function r(){i.inbound.abandonRate=Math.round((i.inbound.abandoned+i.inbound.unmanaged)/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.answerRate=Math.round(i.inbound.answered/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.avgHoldTime=moment.duration(Math.round(i.inbound.sumHoldTime/i.inbound.answered),i.config.unit).format(i.config.format,i.config),i.inbound.avgTalkTime=moment.duration(Math.round(i.inbound.sumBillable/i.inbound.answered),i.config.unit).format(i.config.format,i.config)}function l(e){return!!_.some(i.chatWebsites,{id:_.toNumber(e.ChatWebsiteId)})}function d(e){var n=moment().utcOffset(0,!0).startOf("day"),t=moment().utcOffset(0,!0).endOf("day");return moment(e).utcOffset(0,!0).isBetween(n,t)}i.config={format:"hh:mm:ss",unit:"seconds",trim:!1},i.inbound={waiting:0,talking:0,answered:0,abandoned:0,unmanaged:0,sumHoldTime:0,sumBillable:0,total:0,avgHoldTime:"00:00:00",avgTalkTime:"00:00:00",answerRate:0,abandonRate:0},i.chatWebsites=a?_.keyBy(a.rows?a.rows:[],"id"):{},i.onSaveChatInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!0),r())},i.onUpdateChatInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!1),r())},n.on("chatInteraction:save",i.onSaveChatInteraction),n.on("chatInteraction:update",i.onUpdateChatInteraction),function(){if(0<Object.keys(i.chatWebsites).length)for(var e=0;e<t.rows.length;e+=1)if(l(t.rows[e])){var n=t.rows[e];o(n,!0),r()}}(),e.$on("$destroy",function(){n.removeAllListeners("chatInteraction:save"),n.removeAllListeners("chatInteraction:update")})}e.$inject=["$scope","socket","chatInteractions","chatWebsites"],angular.module("app.dashboards").controller("UserChatDashboardGeneralController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r){var l=this;function d(){s({queues:l.outboundQueues,rpcQueues:l.rpcQueues}).then(function(e){l.inbound=e})}function c(){o({rpcCampaigns:l.rpcCampaigns}).then(function(e){l.ivr=e})}l.outboundQueues=a?_.keyBy(a.rows?a.rows:[],"id"):{},l.rpcQueues=i?_.keyBy(i.rows?i.rows:[],"id"):{},l.rpcCampaigns=r?_.keyBy(r.rows?r.rows:[],"id"):{},l.ivr={originated:0,limitCalls:0},l.inbound={waiting:0,talking:0,pTalking:0,answered:0,abandoned:0,unmanaged:0,sumHoldTime:0,sumBillable:0,total:0,avgHoldTime:"00:00:00",avgTalkTime:"00:00:00",answerRate:0,abandonRate:0,outboundDropCallsDayCallersExit:0,outboundDropCallsDayTimeout:0},l.onSaveQueue=function(e){l.outboundQueues[e.id]&&l.rpcQueues[e.id]&&(l.rpcQueues[e.id]=e)},l.onSaveCampaign=function(e){l.rpcCampaigns[e.id]&&(l.rpcCampaigns[e.id]=e)},t.onWithoutApply("voice_queue:save",l.onSaveQueue),l.interval=n(function(){d(),c()},999),t.onWithoutApply("campaign:save",l.onSaveCampaign),d(),c(),e.$on("$destroy",function(){t.removeListener("voice_queue:save",l.onSaveQueue),t.removeAllListeners("campaign:save"),l.interval&&n.cancel(l.interval)})}e.$inject=["$scope","$interval","socket","outboundQueues","rpcQueues","initializeRealtimeQueue","initializeRealtimeCampaign","rpcCampaigns"],angular.module("app.dashboards").controller("UserVoiceDashboardDialerController",e)}(),function(){"use strict";function e(e,n,t,a){var i=this,s=[];function o(e,n){e.closed||e.UserId||!n||(i.inbound.waiting+=1),e.closed||!e.UserId||_.includes(s,e.id)||(i.inbound.talking+=1,s.push(e.id),!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),e.closed&&e.UserId&&(i.inbound.sumBillable+=moment(e.closedAt).diff(moment(e.read1stAt),i.config.unit),i.inbound.sumHoldTime+=moment(e.read1stAt).diff(moment(e.createdAt),i.config.unit),i.inbound.answered+=1,!n&&i.inbound.talking&&(i.inbound.talking-=1)),e.closed&&!e.UserId&&(i.inbound.unmanaged+=1,!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),n&&(i.inbound.total+=1)}function r(){i.inbound.abandonRate=Math.round((i.inbound.abandoned+i.inbound.unmanaged)/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.answerRate=Math.round(i.inbound.answered/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.avgHoldTime=moment.duration(Math.round(i.inbound.sumHoldTime/i.inbound.answered),i.config.unit).format(i.config.format,i.config),i.inbound.avgTalkTime=moment.duration(Math.round(i.inbound.sumBillable/i.inbound.answered),i.config.unit).format(i.config.format,i.config)}function l(e){return!!_.some(i.faxAccounts,{id:_.toNumber(e.FaxAccountId)})}function d(e){var n=moment().utcOffset(0,!0).startOf("day"),t=moment().utcOffset(0,!0).endOf("day");return moment(e).utcOffset(0,!0).isBetween(n,t)}i.config={format:"hh:mm:ss",unit:"seconds",trim:!1},i.inbound={waiting:0,talking:0,answered:0,abandoned:0,unmanaged:0,sumHoldTime:0,sumBillable:0,total:0,avgHoldTime:"00:00:00",avgTalkTime:"00:00:00",answerRate:0,abandonRate:0},i.faxAccounts=a?_.keyBy(a.rows?a.rows:[],"id"):{},i.onSaveFaxInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!0),r())},i.onUpdateFaxInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!1),r())},n.on("faxInteraction:save",i.onSaveFaxInteraction),n.on("faxInteraction:update",i.onUpdateFaxInteraction),function(){if(0<Object.keys(i.faxAccounts).length)for(var e=0;e<t.rows.length;e+=1)if(l(t.rows[e])){var n=t.rows[e];o(n,!0),r()}}(),e.$on("$destroy",function(){n.removeAllListeners("faxInteraction:save"),n.removeAllListeners("faxInteraction:update")})}e.$inject=["$scope","socket","faxInteractions","faxAccounts"],angular.module("app.dashboards").controller("UserFaxDashboardGeneralController",e)}(),function(){"use strict";function e(e,n,t,a){var i=this,s=[];function o(e,n){e.closed||e.UserId||!n||(i.inbound.waiting+=1),e.closed||!e.UserId||_.includes(s,e.id)||(i.inbound.talking+=1,s.push(e.id),!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),e.closed&&e.UserId&&(i.inbound.sumBillable+=moment(e.closedAt).diff(moment(e.read1stAt),i.config.unit),i.inbound.sumHoldTime+=moment(e.read1stAt).diff(moment(e.createdAt),i.config.unit),i.inbound.answered+=1,!n&&i.inbound.talking&&(i.inbound.talking-=1)),e.closed&&!e.UserId&&(i.inbound.unmanaged+=1,!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),n&&(i.inbound.total+=1)}function r(){i.inbound.abandonRate=Math.round((i.inbound.abandoned+i.inbound.unmanaged)/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.answerRate=Math.round(i.inbound.answered/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.avgHoldTime=moment.duration(Math.round(i.inbound.sumHoldTime/i.inbound.answered),i.config.unit).format(i.config.format,i.config),i.inbound.avgTalkTime=moment.duration(Math.round(i.inbound.sumBillable/i.inbound.answered),i.config.unit).format(i.config.format,i.config)}function l(e){return!!_.some(i.mailAccounts,{id:_.toNumber(e.MailAccountId)})}function d(e){var n=moment().utcOffset(0,!0).startOf("day"),t=moment().utcOffset(0,!0).endOf("day");return moment(e).utcOffset(0,!0).isBetween(n,t)}i.config={format:"hh:mm:ss",unit:"seconds",trim:!1},i.inbound={waiting:0,talking:0,answered:0,abandoned:0,unmanaged:0,sumHoldTime:0,sumBillable:0,total:0,avgHoldTime:"00:00:00",avgTalkTime:"00:00:00",answerRate:0,abandonRate:0},i.mailAccounts=a?_.keyBy(a.rows?a.rows:[],"id"):{},i.onSaveMailInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!0),r())},i.onUpdateMailInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!1),r())},n.on("mailInteraction:save",i.onSaveMailInteraction),n.on("mailInteraction:update",i.onUpdateMailInteraction),function(){if(0<Object.keys(i.mailAccounts).length)for(var e=0;e<t.rows.length;e+=1)if(l(t.rows[e])){var n=t.rows[e];o(n,!0),r()}}(),e.$on("$destroy",function(){n.removeAllListeners("mailInteraction:save"),n.removeAllListeners("mailInteraction:update")})}e.$inject=["$scope","socket","mailInteractions","mailAccounts"],angular.module("app.dashboards").controller("UserMailDashboardGeneralController",e)}(),function(){"use strict";function e(e,n,t,a){var i=this,s=[];function o(e,n){e.closed||e.UserId||!n||(i.inbound.waiting+=1),e.closed||!e.UserId||_.includes(s,e.id)||(i.inbound.talking+=1,s.push(e.id),!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),e.closed&&e.UserId&&(i.inbound.sumBillable+=moment(e.closedAt).diff(moment(e.read1stAt),i.config.unit),i.inbound.sumHoldTime+=moment(e.read1stAt).diff(moment(e.createdAt),i.config.unit),i.inbound.answered+=1,!n&&i.inbound.talking&&(i.inbound.talking-=1)),e.closed&&!e.UserId&&(i.inbound.unmanaged+=1,!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),n&&(i.inbound.total+=1)}function r(){i.inbound.abandonRate=Math.round((i.inbound.abandoned+i.inbound.unmanaged)/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.answerRate=Math.round(i.inbound.answered/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.avgHoldTime=moment.duration(Math.round(i.inbound.sumHoldTime/i.inbound.answered),i.config.unit).format(i.config.format,i.config),i.inbound.avgTalkTime=moment.duration(Math.round(i.inbound.sumBillable/i.inbound.answered),i.config.unit).format(i.config.format,i.config)}function l(e){return!!_.some(i.openchannelAccounts,{id:_.toNumber(e.OpenchannelAccountId)})}function d(e){var n=moment().utcOffset(0,!0).startOf("day"),t=moment().utcOffset(0,!0).endOf("day");return moment(e).utcOffset(0,!0).isBetween(n,t)}i.config={format:"hh:mm:ss",unit:"seconds",trim:!1},i.inbound={waiting:0,talking:0,answered:0,abandoned:0,unmanaged:0,sumHoldTime:0,sumBillable:0,total:0,avgHoldTime:"00:00:00",avgTalkTime:"00:00:00",answerRate:0,abandonRate:0},i.openchannelAccounts=a?_.keyBy(a.rows?a.rows:[],"id"):{},i.onSaveOpenchannelInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!0),r())},i.onUpdateOpenchannelInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!1),r())},n.on("openchannelInteraction:save",i.onSaveOpenchannelInteraction),n.on("openchannelInteraction:update",i.onUpdateOpenchannelInteraction),function(){if(0<Object.keys(i.openchannelAccounts).length)for(var e=0;e<t.rows.length;e+=1)if(l(t.rows[e])){var n=t.rows[e];o(n,!0),r()}}(),e.$on("$destroy",function(){n.removeAllListeners("openchannelInteraction:save"),n.removeAllListeners("openchannelInteraction:update")})}e.$inject=["$scope","socket","openchannelInteractions","openchannelAccounts"],angular.module("app.dashboards").controller("UserOpenchannelDashboardGeneralController",e)}(),function(){"use strict";function e(e,n,t,a){var i=this,s=[];function o(e,n){e.closed||e.UserId||!n||(i.inbound.waiting+=1),e.closed||!e.UserId||_.includes(s,e.id)||(i.inbound.talking+=1,s.push(e.id),!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),e.closed&&e.UserId&&(i.inbound.sumBillable+=moment(e.closedAt).diff(moment(e.read1stAt),i.config.unit),i.inbound.sumHoldTime+=moment(e.read1stAt).diff(moment(e.createdAt),i.config.unit),i.inbound.answered+=1,!n&&i.inbound.talking&&(i.inbound.talking-=1)),e.closed&&!e.UserId&&(i.inbound.unmanaged+=1,!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),n&&(i.inbound.total+=1)}function r(){i.inbound.abandonRate=Math.round((i.inbound.abandoned+i.inbound.unmanaged)/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.answerRate=Math.round(i.inbound.answered/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.avgHoldTime=moment.duration(Math.round(i.inbound.sumHoldTime/i.inbound.answered),i.config.unit).format(i.config.format,i.config),i.inbound.avgTalkTime=moment.duration(Math.round(i.inbound.sumBillable/i.inbound.answered),i.config.unit).format(i.config.format,i.config)}function l(e){return!!_.some(i.smsAccounts,{id:_.toNumber(e.SmsAccountId)})}function d(e){var n=moment().utcOffset(0,!0).startOf("day"),t=moment().utcOffset(0,!0).endOf("day");return moment(e).utcOffset(0,!0).isBetween(n,t)}i.config={format:"hh:mm:ss",unit:"seconds",trim:!1},i.inbound={waiting:0,talking:0,answered:0,abandoned:0,unmanaged:0,sumHoldTime:0,sumBillable:0,total:0,avgHoldTime:"00:00:00",avgTalkTime:"00:00:00",answerRate:0,abandonRate:0},i.smsAccounts=a?_.keyBy(a.rows?a.rows:[],"id"):{},i.onSaveSmsInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!0),r())},i.onUpdateSmsInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!1),r())},n.on("smsInteraction:save",i.onSaveSmsInteraction),n.on("smsInteraction:update",i.onUpdateSmsInteraction),function(){if(0<Object.keys(i.smsAccounts).length)for(var e=0;e<t.rows.length;e+=1)if(l(t.rows[e])){var n=t.rows[e];o(n,!0),r()}}(),e.$on("$destroy",function(){n.removeAllListeners("smsInteraction:save"),n.removeAllListeners("smsInteraction:update")})}e.$inject=["$scope","socket","smsInteractions","smsAccounts"],angular.module("app.dashboards").controller("UserSmsDashboardGeneralController",e)}(),function(){"use strict";function e(t){var i=[],s=function(){var t=i[0],a={waiting:0,talking:0,pTalking:0,answered:0,abandoned:0,unmanaged:0,sumHoldTime:0,sumBillable:0,total:0,avgHoldTime:"00:00:00",avgTalkTime:"00:00:00",answerRate:0,abandonRate:0,originated:0,outboundDropCallsDayCallersExit:0,outboundDropCallsDayTimeout:0};_.forIn(t.queues,function(e,n){t.rpcQueues[n]&&(a.waiting+=t.rpcQueues[n].waiting||0,a.talking+=(t.rpcQueues[n].talking||0)+(t.rpcQueues[n].pTalking||0),a.answered+=t.rpcQueues[n].answered||0,a.abandoned+=t.rpcQueues[n].abandoned||0,a.sumHoldTime+=t.rpcQueues[n].sumHoldTime||0,a.sumBillable+=t.rpcQueues[n].sumBillable||0,a.total+=t.rpcQueues[n].total||0,a.originated+=t.rpcQueues[n].originated||0,a.outboundDropCallsDayCallersExit+=t.rpcQueues[n].outboundDropCallsDayCallersExit||0,a.outboundDropCallsDayTimeout+=t.rpcQueues[n].outboundDropCallsDayTimeout||0)});var e=a.total-a.answered-a.abandoned;a.unmanaged=0<e?e:0,a.avgHoldTime=Math.round(0<a.total?a.sumHoldTime/a.total:0),a.avgHoldTime=new Date(1e3*a.avgHoldTime).toISOString().substr(11,8),a.avgTalkTime=Math.round(0<a.answered?a.sumBillable/a.answered:0),a.avgTalkTime=new Date(1e3*a.avgTalkTime).toISOString().substr(11,8),a.answerRate=Math.round((0<a.total?a.answered/a.total*100:0)*Math.pow(10,1))/Math.pow(10,1),a.abandonRate=Math.round((0<a.total?a.abandoned/a.total*100:0)*Math.pow(10,1))/Math.pow(10,1),a.outboundDropRate=Math.round((0<a.total?a.outboundDropCallsDayTimeout/a.total*100:0)*Math.pow(10,1))/Math.pow(10,1),a.outboundAbandonRate=Math.round((0<a.total?a.outboundDropCallsDayCallersExit/a.total*100:0)*Math.pow(10,1))/Math.pow(10,1),a.outboundanswerRate=0<100-a.outboundDropRate-a.outboundAbandonRate&&a.total?100-a.outboundDropRate-a.outboundAbandonRate:0,i.shift(),t.defer.resolve(a),0<i.length&&s()};return function(e){var n=t.defer();return i.push({queues:e.queues,rpcQueues:e.rpcQueues,defer:n}),1===i.length&&s(),n.promise}}function n(t){var i=[],s=function(){var t=i[0],a={originated:0,limitCalls:0};_.forIn(t.rpcCampaigns,function(e,n){t.rpcCampaigns[n]&&(a.originated+=t.rpcCampaigns[n].originated||0,a.limitCalls+=t.rpcCampaigns[n].limitCalls||0)}),i.shift(),t.defer.resolve(a),0<i.length&&s()};return function(e){var n=t.defer();return i.push({rpcCampaigns:e.rpcCampaigns,defer:n}),1===i.length&&s(),n.promise}}function t(t,a,e){var i=this;i.license=e,i.onInit=function(){if(i.hasDashboardPermissions=!a.hasRole("user")||a.hasPermission(101),i.hasDashboardPermissions){var e=t.current.name;switch(e){case"app.dashboards.general":n=[],i.license.voice&&n.push("app.dashboards.general.voice"),i.license.dialer&&n.push("app.dashboards.general.dialer"),i.license.chat&&n.push("app.dashboards.general.chat"),i.license.mail&&n.push("app.dashboards.general.mail"),i.license.messaging&&n.push("app.dashboards.general.sms"),i.license.openchannel&&n.push("app.dashboards.general.openchannel"),i.license.fax&&n.push("app.dashboards.general.fax"),i.license.whatsapp&&n.push("app.dashboards.general.whatsapp"),0<n.length&&t.go(_.first(n));break;case"app.dashboards.general.voice":i.selectedTab=0;break;case"app.dashboards.general.dialer":i.selectedTab=1;break;case"app.dashboards.general.chat":i.selectedTab=2;break;case"app.dashboards.general.mail":i.selectedTab=3;break;case"app.dashboards.general.sms":i.selectedTab=4;break;case"app.dashboards.general.openchannel":i.selectedTab=5;break;case"app.dashboards.general.fax":i.selectedTab=6;break;case"app.dashboards.general.whatsapp":i.selectedTab=7}}var n}}e.$inject=["$q"],n.$inject=["$q"],t.$inject=["$state","Auth","license"],angular.module("app.dashboards").filter("secToTime",function(){return function(e){return new Date(1e3*e).toISOString().substr(11,8)}}).factory("initializeRealtimeQueue",e).factory("initializeRealtimeCampaign",n).controller("UserDashboardGeneralController",t)}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this;function r(){s({queues:o.inboundQueues,rpcQueues:o.rpcQueues}).then(function(e){o.inbound=e})}o.inboundQueues=t?_.keyBy(t.rows?t.rows:[],"id"):{},o.rpcQueues=a?_.keyBy(a.rows?a.rows:[],"id"):{},o.inbound={waiting:0,talking:0,answered:0,abandoned:0,unmanaged:0,sumHoldTime:0,sumBillable:0,total:0,avgHoldTime:"00:00:00",avgTalkTime:"00:00:00",answerRate:0,abandonRate:0},o.outbound=i||{answered:0,sumBillable:0,sumDuration:0,sumHoldTime:0,total:0},o.onSaveQueue=function(e){o.inboundQueues[e.id]&&o.rpcQueues[e.id]&&(o.rpcQueues[e.id]=e,r())},o.onSaveOutbound=function(e){o.outbound=e},n.on("voice_queue:save",o.onSaveQueue),n.on("voice_outbound:save",o.onSaveOutbound),r(),e.$on("$destroy",function(){n.removeListener("voice_queue:save",o.onSaveQueue),n.removeAllListeners("voice_outbound:save")})}e.$inject=["$scope","socket","inboundQueues","rpcQueues","outbound","initializeRealtimeQueue"],angular.module("app.dashboards").controller("UserVoiceDashboardGeneralController",e)}(),function(){"use strict";function e(e,n,t,a){var i=this,s=[];function o(e,n){e.closed||e.UserId||!n||(i.inbound.waiting+=1),e.closed||!e.UserId||_.includes(s,e.id)||(i.inbound.talking+=1,s.push(e.id),!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),e.closed&&e.UserId&&(i.inbound.sumBillable+=moment(e.closedAt).diff(moment(e.read1stAt),i.config.unit),i.inbound.sumHoldTime+=moment(e.read1stAt).diff(moment(e.createdAt),i.config.unit),i.inbound.answered+=1,!n&&i.inbound.talking&&(i.inbound.talking-=1)),e.closed&&!e.UserId&&(i.inbound.unmanaged+=1,!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),n&&(i.inbound.total+=1)}function r(){i.inbound.abandonRate=Math.round((i.inbound.abandoned+i.inbound.unmanaged)/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.answerRate=Math.round(i.inbound.answered/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.avgHoldTime=moment.duration(Math.round(i.inbound.sumHoldTime/i.inbound.answered),i.config.unit).format(i.config.format,i.config),i.inbound.avgTalkTime=moment.duration(Math.round(i.inbound.sumBillable/i.inbound.answered),i.config.unit).format(i.config.format,i.config)}function l(e){return!!_.some(i.whatsappAccounts,{id:_.toNumber(e.WhatsappAccountId)})}function d(e){var n=moment().utcOffset(0,!0).startOf("day"),t=moment().utcOffset(0,!0).endOf("day");return moment(e).utcOffset(0,!0).isBetween(n,t)}i.config={format:"hh:mm:ss",unit:"seconds",trim:!1},i.inbound={waiting:0,talking:0,answered:0,abandoned:0,unmanaged:0,sumHoldTime:0,sumBillable:0,total:0,avgHoldTime:"00:00:00",avgTalkTime:"00:00:00",answerRate:0,abandonRate:0},i.whatsappAccounts=a?_.keyBy(a.rows?a.rows:[],"id"):{},i.onSaveWhatsappInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!0),r())},i.onUpdateWhatsappInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!1),r())},n.on("whatsappInteraction:save",i.onSaveWhatsappInteraction),n.on("whatsappInteraction:update",i.onUpdateWhatsappInteraction),function(){if(0<Object.keys(i.whatsappAccounts).length)for(var e=0;e<t.rows.length;e+=1)if(l(t.rows[e])){var n=t.rows[e];o(n,!0),r()}}(),e.$on("$destroy",function(){n.removeAllListeners("whatsappInteraction:save"),n.removeAllListeners("whatsappInteraction:update")})}e.$inject=["$scope","socket","whatsappInteractions","whatsappAccounts"],angular.module("app.dashboards").controller("UserWhatsappDashboardGeneralController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="FAX.EDIT_FAXACCOUNT",g.faxAccount=angular.copy(l),g.faxAccounts=r,g.newFaxAccount=!1,g.faxAccount||(g.faxAccount={waitForTheAssignedAgent:10,notificationSound:!0,queueTransferTimeout:300,agentTransferTimeout:300},g.title="FAX.NEW_FAXACCOUNT",g.newFaxAccount=!0),n.params.id&&(g.faxAccount.FaxAccountId=n.params.id),g.addNewFaxAccount=function(){g.errors=[],d.faxAccount.addAccountApplications(g.faxAccount).$promise.then(function(e){g.faxAccounts.unshift(e.toJSON()),o.success({title:"FaxAccount properly created",msg:g.faxAccount.name?g.faxAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.faxAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveFaxAccount=function(){g.errors=[],d.faxAccount.updateAccountApplications(g.faxAccount).$promise.then(function(e){var n=_.find(g.faxAccounts,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"FaxAccount properly saved!",msg:g.faxAccount.name?g.faxAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.faxAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteFaxAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The faxAccount will be deleted.").ariaLabel("Delete FaxAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.faxAccount.delete({id:g.faxAccount.id}).$promise.then(function(){_.remove(g.faxAccounts,{id:g.faxAccount.id}),o.success({title:"FaxAccount properly deleted!",msg:(g.faxAccount.name||"faxAccount")+" has been deleted!"}),v(g.faxAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.faxAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.trunks=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.trunks=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.trunks,{id:e.resourceId})}),t=null;if(g.faxAccount&&(t=_.find(g.trunks,{id:Number(g.faxAccount.TrunkId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.trunks,{id:t.id});a.canSelect=!1,n.push(a)}g.trunks=n})}else{var t=[],a=null;g.faxAccount&&(a=_.find(g.trunks,{id:Number(g.faxAccount.TrunkId)}));for(var i=0;i<g.trunks.length;i++)a&&g.trunks[i].id===a.id&&(g.trunks[i].canSelect=!1,t.push(g.trunks[i]));g.trunks=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.hasRole("admin")?d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.lists,{id:e.resourceId})}),t=null;if(g.faxAccount&&(t=_.find(g.lists,{id:Number(g.faxAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.lists,{id:t.id});a.canSelect=!1,n.push(a)}g.lists=n})}else{var t=[],a=null;g.faxAccount&&(a=_.find(g.lists,{id:Number(g.faxAccount.ListId)}));for(var i=0;i<g.lists.length;i++)a&&g.lists[i].id===a.id&&(g.lists[i].canSelect=!1,t.push(g.lists[i]));g.lists=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","faxAccounts","faxAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.fax").controller("CreateOrEditFaxAccountDialogController",e)}(),function(){"use strict";function e(o,i,a,s,e){var r=this;function n(e,n){if(r.faxAccountApps.rows.length){var t=r.faxAccountApps.rows[n]?r.faxAccountApps.rows[n]:r.faxAccountApps.rows[0];i.show({controller:"EditFaxAccountApp"+(t.appType||t.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/edit/apps/"+(t.appType||t.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxAccountApp:t,faxAccount:r.faxAccount,crudPermissions:r.crudPermissions}}).then(function(e){e&&(e.id?r.faxAccountApps.rows[n]=e:r.faxAccountApps.rows.splice(n,0,e),l())}).catch(function(e){e&&s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function l(){for(var e=1,n=[],t=0;t<r.faxAccountApps.rows.length;t++,0){var a=r.faxAccountApps.rows[t],i=[],s=[];a.intervals="*,*,*,*"!==a.interval?[a.interval]:a.IntervalId?_.map(_.filter(r.intervals.rows,{IntervalId:a.IntervalId}),"interval"):[],a.context=r.faxAccount.context,a.exten=r.faxAccount.exten,a.type&&(a.type=a.type.toLowerCase()),a.priority=i.length?_.last(i).priority+1:e,e=(s.length?_.last(s).priority:a.priority)+1,n=_.concat(n,i,[a],s)}o.faxAccount.addApplications({id:r.faxAccount.id},_.sortBy(n,"priority")).$promise.then(function(e){r.faxAccountApps.rows=e.rows}).catch(function(e){console.error(e)})}function t(e){r.faxAccountApps=e||{count:0,rows:[]}}r.currentUser=e.getCurrentUser(),r.faxAccount={},r.faxAccountApps={count:0,rows:[]},r.selectedFaxAccountApps=[],r.crudPermissions,r.query={sort:"priority"},r.apps=_.reject(_.sortBy([{app:"Interval",appType:"interval",types:["always","custom","list"],fields:[],isApp:!1},{app:"noop",appType:"noop",type:"noop",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,fields:[{title:"Value",name:"value",type:"text",param:0}]},{app:"system",appType:"system",type:"system",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,extraApi:[{name:"variables",field:{name:"variable",key:"name"},route:"variable",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1012}}],fields:[{title:"Command",name:"command",type:"text",required:!0,param:0},{title:"Variable",name:"variable",type:"apiselect",values:"variables",value:"variable.name",option:"variable.name",defaultValues:[{value:"''",option:"None"}],defaultValue:"''",param:1}]},{app:"gotop",appType:"gotop",type:"goto",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Priority",name:"priority",type:"number",required:!0,min:0,param:0}]},{app:"gotoif",appType:"gotoif",type:"gotoif",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Condition",name:"condition",type:"text",required:!0,param:0},{title:"truepriority",name:"truepriority",type:"number",min:1,required:!0,param:1},{title:"falsepriority",name:"falsepriority",type:"number",min:1,required:!0,param:2}]},{app:"queue",appType:"queue",foreignKey:"FaxQueueId",type:"queue",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"queues",field:{name:"queue",key:"name"},route:"faxQueue",filters:{fields:"id,name,type",sort:"name",nolimit:!0},permissions:{section:901}}],fields:[{title:"Queue",name:"queue",type:"apiselect",values:"queues",value:"queue.name",option:"queue.name",defaultValue:300,required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,defaultValue:300,required:!0,param:1}]},{app:"agent",appType:"agent",type:"agent",foreignKey:"UserId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"agents",field:{name:"agent",key:"name"},route:"user",filters:{fields:"id,name",sort:"name",role:"agent",nolimit:!0},permissions:{section:202}}],fields:[{title:"Agent",name:"agent",type:"apiselect",values:"agents",value:"agent.name",option:"agent.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:30,param:1}]},{app:"close",appType:"close",type:"close",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Disposition",name:"disposition",type:"text",required:!0,param:0}]},{app:"tag",appType:"tag",type:"tag",foreignKey:"TagId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"tags",field:{name:"tag",key:"name"},route:"tag",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1008}}],fields:[{title:"Tag",name:"tag",type:"apiselect",values:"tags",value:"tag.name",option:"tag.name",required:!0,param:0}]}],["app"]),{isApp:!1}),r.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},r.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){n(e,e.newIndex)},onSort:function(e){l()}},r.init=function(e,n){r.faxAccount=e,r.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},r.applications.disabled=!r.crudPermissions.canEdit,r.query.id=e.id,r.query.isApp=!0,r.query.nolimit=!0,r.getFaxAccountApps(),r.getIntervals()},r.deleteConfirm=function(e,n,t){var a=i.confirm().title("Are you sure want to delete the application?").htmlContent("<b>"+e.app+"</b> will be deleted.").ariaLabel("delete application").targetEvent(t).ok("OK").cancel("CANCEL");i.show(a).then(function(){r.faxAccountApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})},r.getFaxAccountApps=function(){r.promise=o.faxAccount.getApplications(r.query,t).$promise},r.editFaxAccountApp=n,r.editInterval=function(e,n){if(r.faxAccountApps.rows.length){var t=r.faxAccountApps.rows[n]?r.faxAccountApps.rows[n]:r.faxAccountApps.rows[0];i.show({controller:"EditFaxAccountAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/edit/apps/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:[],crudPermissions:r.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,l())})}},r.deleteFaxAccountApp=function(e){_.remove(r.faxAccountApps.rows,{id:e.id}),l(),s.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},r.deleteSelectedFaxAccountApps=function(e){var n=i.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+r.selectedFaxAccountApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){r.selectedFaxAccountApps.forEach(function(e){_.remove(r.faxAccountApps.rows,{id:e.id})}),r.selectedFaxAccountApps=[],l()})},r.rewriteRouting=l,r.getIntervals=function(){return o.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){r.intervals=e}).catch(function(e){console.error(e)})}}e.$inject=["api","$mdDialog","$document","toasty","Auth"],angular.module("app.fax").controller("FaxAccountActionsController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.faxAccount.getAgents({id:c.faxAccount.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserFaxAccount?"penalty "+e.UserFaxAccount.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.faxAccount=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.faxAccount.removeAgents({id:c.faxAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.faxAccount.addAgents({id:c.faxAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("FAX.ALL_AGENTS"),labelSelected:r.instant("FAX.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","faxAccount","faxAccounts","realtime","$translate","Auth","crudPermissions"],angular.module("app.fax").controller("FaxAccountagentaddController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.agent=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.agent.appdata)switch(l.agent.appType?l.agent.appType.toLowerCase():l.agent.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.agent.appdata.split(",");l.agent.key=d[0],l.agent.language=d[1],l.agent.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.agent.appdata.split(",");l.agent.projectId=d[0],l.agent.clientEmail=d[1],l.agent.privateKey=d[2],l.agent.language=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.agent.appdata.split(",");l.agent.accesskeyid=d[0],l.agent.secretaccesskey=d[1],l.agent.lexregion=d[2],l.agent.botname=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.agent.appdata.split(",");l.agent.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.agent.text=d.slice(1,d.length).join(",");break;case"message":l.agent.text=l.agent.appdata;break;case"set":l.agent.name=l.agent.appdata.split("=")[0],l.agent.value=l.agent.appdata.split("=")[1];break;case"agi":l.agent.project=l.agent.appdata;break;default:var c=l.agent.appdata.split(",");l.agent.agent=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.agent.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.agent.timeout=30;function m(e){n.hide(e)}l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outbounddial"===l.agent.appType.toLowerCase()&&(l.agent.prefix=l.agent.phone?l.agent.phone.split("$")[0]:void 0,l.agent.callerId=l.agent.callerID?"CALLERID(all)="+l.agent.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outboundDial"===l.agent.appType&&(l.agent.phone=i.cutdigits?(l.agent.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.agent.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.agent.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.agent.options+="U(xcally-mixmonitor-context)"):l.agent.options=l.agent.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.agents,{name:l.agent.agent});n&&(l.agent.UserId=n.id);if(l.agent.appType&&"custom"===l.agent.appType);else switch((l.agent.app||l.agent.appType).toLowerCase()){case"set":l.agent.appdata=l.agent.name+"="+l.agent.value;break;case"custom":break;default:e[0]=l.agent.agent,e[1]=l.agent.timeout,l.agent.appdata=e.join(",")}m(l.agent)},l.closeDialog=m,o.hasRole("admin")?s.user.get({fields:"id,name",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){l.agents=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.user.get({fields:"id,name",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){l.agents=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.agents,{id:e.resourceId})}),t=null;if(l.agent&&(t=_.find(l.agents,{name:l.agent.agent})),t&&!_.some(n,["id",t.id])){var a=_.find(l.agents,{id:t.id});a.canSelect=!1,n.push(a)}l.agents=n})}else{var t=[],a=null;l.agent&&(a=_.find(l.agents,{name:l.agent.agent}));for(var i=0;i<l.agents.length;i++)a&&l.agents[i].id===a.id&&(l.agents[i].canSelect=!1,t.push(l.agents[i]));l.agents=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountAppagentDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.close=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.close.appdata)switch(l.close.appType?l.close.appType.toLowerCase():l.close.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.close.appdata.split(",");l.close.key=d[0],l.close.language=d[1],l.close.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.close.appdata.split(",");l.close.projectId=d[0],l.close.clientEmail=d[1],l.close.privateKey=d[2],l.close.language=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.close.appdata.split(",");l.close.accesskeyid=d[0],l.close.secretaccesskey=d[1],l.close.lexregion=d[2],l.close.botname=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.close.appdata.split(",");l.close.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.close.text=d.slice(1,d.length).join(",");break;case"message":l.close.text=l.close.appdata;break;case"set":l.close.name=l.close.appdata.split("=")[0],l.close.value=l.close.appdata.split("=")[1];break;case"agi":l.close.project=l.close.appdata;break;default:var c=l.close.appdata.split(",");l.close.disposition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outbounddial"===l.close.appType.toLowerCase()&&(l.close.prefix=l.close.phone?l.close.phone.split("$")[0]:void 0,l.close.callerId=l.close.callerID?"CALLERID(all)="+l.close.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outboundDial"===l.close.appType&&(l.close.phone=i.cutdigits?(l.close.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.close.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.close.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.close.options+="U(xcally-mixmonitor-context)"):l.close.options=l.close.options.replace("U(xcally-mixmonitor-context)",""));if(l.close.appType&&"custom"===l.close.appType);else switch((l.close.app||l.close.appType).toLowerCase()){case"set":l.close.appdata=l.close.name+"="+l.close.value;break;case"custom":break;default:e[0]=l.close.disposition,l.close.appdata=e.join(",")}m(l.close)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountAppcloseDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotoif=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotoif.appdata)switch(l.gotoif.appType?l.gotoif.appType.toLowerCase():l.gotoif.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotoif.appdata.split(",");l.gotoif.key=d[0],l.gotoif.language=d[1],l.gotoif.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotoif.appdata.split(",");l.gotoif.projectId=d[0],l.gotoif.clientEmail=d[1],l.gotoif.privateKey=d[2],l.gotoif.language=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotoif.appdata.split(",");l.gotoif.accesskeyid=d[0],l.gotoif.secretaccesskey=d[1],l.gotoif.lexregion=d[2],l.gotoif.botname=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotoif.appdata.split(",");l.gotoif.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotoif.text=d.slice(1,d.length).join(",");break;case"message":l.gotoif.text=l.gotoif.appdata;break;case"set":l.gotoif.name=l.gotoif.appdata.split("=")[0],l.gotoif.value=l.gotoif.appdata.split("=")[1];break;case"agi":l.gotoif.project=l.gotoif.appdata;break;default:var c=l.gotoif.appdata.split(",");l.gotoif.condition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.gotoif.truepriority=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.gotoif.falsepriority=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}function m(e){n.hide(e)}l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outbounddial"===l.gotoif.appType.toLowerCase()&&(l.gotoif.prefix=l.gotoif.phone?l.gotoif.phone.split("$")[0]:void 0,l.gotoif.callerId=l.gotoif.callerID?"CALLERID(all)="+l.gotoif.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outboundDial"===l.gotoif.appType&&(l.gotoif.phone=i.cutdigits?(l.gotoif.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotoif.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotoif.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotoif.options+="U(xcally-mixmonitor-context)"):l.gotoif.options=l.gotoif.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotoif.appType&&"custom"===l.gotoif.appType);else switch((l.gotoif.app||l.gotoif.appType).toLowerCase()){case"set":l.gotoif.appdata=l.gotoif.name+"="+l.gotoif.value;break;case"custom":break;default:e[0]=l.gotoif.condition,e[1]=l.gotoif.truepriority,e[2]=l.gotoif.falsepriority,l.gotoif.appdata=e.join(",")}m(l.gotoif)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountAppgotoifDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotop.appdata)switch(l.gotop.appType?l.gotop.appType.toLowerCase():l.gotop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotop.appdata.split(",");l.gotop.key=d[0],l.gotop.language=d[1],l.gotop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotop.appdata.split(",");l.gotop.projectId=d[0],l.gotop.clientEmail=d[1],l.gotop.privateKey=d[2],l.gotop.language=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotop.appdata.split(",");l.gotop.accesskeyid=d[0],l.gotop.secretaccesskey=d[1],l.gotop.lexregion=d[2],l.gotop.botname=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotop.appdata.split(",");l.gotop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotop.text=d.slice(1,d.length).join(",");break;case"message":l.gotop.text=l.gotop.appdata;break;case"set":l.gotop.name=l.gotop.appdata.split("=")[0],l.gotop.value=l.gotop.appdata.split("=")[1];break;case"agi":l.gotop.project=l.gotop.appdata;break;default:var c=l.gotop.appdata.split(",");l.gotop.priority=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outbounddial"===l.gotop.appType.toLowerCase()&&(l.gotop.prefix=l.gotop.phone?l.gotop.phone.split("$")[0]:void 0,l.gotop.callerId=l.gotop.callerID?"CALLERID(all)="+l.gotop.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outboundDial"===l.gotop.appType&&(l.gotop.phone=i.cutdigits?(l.gotop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotop.options+="U(xcally-mixmonitor-context)"):l.gotop.options=l.gotop.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotop.appType&&"custom"===l.gotop.appType);else switch((l.gotop.app||l.gotop.appType).toLowerCase()){case"set":l.gotop.appdata=l.gotop.name+"="+l.gotop.value;break;case"custom":break;default:e[0]=l.gotop.priority,l.gotop.appdata=e.join(",")}m(l.gotop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountAppgotopDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;if(c.currentUser=l.getCurrentUser(),c.errors=[],c.title="TOOLS.EDIT_INTERVAL",c.interval=angular.copy(i),c.intervals=s,c.newInterval=!1,c.types=["always","custom","list"],c.crudPermissions=d,c.daysOfWeek=a.getDaysOfWeek(),c.monthNumber=a.getMonthNumber(),c.monthName=a.getMonthName(),c.daysOfMonth=a.getDaysOfMonth(),c.interval)if("*,*,*,*"!==c.interval.interval){c.type="custom";var m=c.interval.interval.split(","),u=m[0],p=m[1],g=m[2],v=m[3];if("*"!==u){var h,f=u.split("-")[0],b=u.split("-")[1];(h=new Date).setHours(Number(f.split(":")[0])),h.setMinutes(Number(f.split(":")[1])),c.timeRangeFrom=h,(h=new Date).setHours(Number(b.split(":")[0])),h.setMinutes(Number(b.split(":")[1])),c.timeRangeTo=h}"*"!==p&&(c.dayOfWeekFrom=p.split("-")[0],c.dayOfWeekTo=p.split("-")[1]),"*"!==g&&(c.monthDayFrom=g.split("-")[0],c.monthDayTo=g.split("-")[1]),"*"!==v&&(c.monthFrom=v.split("-")[0],c.monthTo=v.split("-")[1])}else c.type="always";else c.interval={interval:"*,*,*,*"},c.type="always",c.title="TOOLS.NEW_INTERVAL",c.newInterval=!0;function A(){switch(c.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==c.timeRangeFrom&&c.timeRangeFrom&&c.timeRangeTo){var n=(c.timeRangeFrom.getHours()<10?"0":"")+c.timeRangeFrom.getHours()+":"+(c.timeRangeFrom.getMinutes()<10?"0":"")+c.timeRangeFrom.getMinutes(),t=(c.timeRangeTo.getHours()<10?"0":"")+c.timeRangeTo.getHours()+":"+(c.timeRangeTo.getMinutes()<10?"0":"")+c.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return c.dayOfWeekFrom?c.dayOfWeekTo?e.push(c.dayOfWeekFrom+"-"+c.dayOfWeekTo):e.push(c.dayOfWeekFrom):e.push("*"),c.monthDayFrom?c.monthDayTo?e.push(c.monthDayFrom+"-"+c.monthDayTo):e.push(c.monthDayFrom):e.push("*"),c.monthFrom?c.monthTo?e.push(c.monthFrom+"-"+c.monthTo):e.push(c.monthFrom):e.push("*"),e.join()}}function E(e){n.hide(e)}e.params.id&&!c.interval.application&&(c.interval.IntervalId=e.params.id),c.interval.IntervalId&&c.interval.application&&(c.type="list"),c.addNewInterval=function(){c.errors=[],c.interval.interval=A(),r.interval.save(c.interval).$promise.then(function(e){c.intervals.push(e),o.success({title:"Interval properly created",msg:c.interval.name?c.interval.name+" has been created!":""}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},c.saveInterval=function(){c.errors=[],c.interval.interval=A(),c.interval.application?("list"!==c.type&&(c.interval.IntervalId=null),E(c.interval)):r.interval.update({id:c.interval.id},c.interval).$promise.then(function(e){var n=_.find(c.intervals,{id:e.id});n&&_.merge(n,e),o.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},c.closeDialog=E,c.interval.application&&(l.hasRole("admin")?r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:c.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=e&&e.rows?e.rows:[],t=[],a=null;c.interval&&(a=_.find(c.intervals,{name:c.interval.IntervalId})),a&&!_.some(n,["resourceId",a.id])&&c.intervals.forEach(function(e){e.id===a.id&&(e.canSelect=!1,t.push(e))}),c.intervals=t})}else c.intervals=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}))}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditFaxAccountAppintervalDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.noop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.noop.appdata)switch(l.noop.appType?l.noop.appType.toLowerCase():l.noop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.noop.appdata.split(",");l.noop.key=d[0],l.noop.language=d[1],l.noop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.noop.appdata.split(",");l.noop.projectId=d[0],l.noop.clientEmail=d[1],l.noop.privateKey=d[2],l.noop.language=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.noop.appdata.split(",");l.noop.accesskeyid=d[0],l.noop.secretaccesskey=d[1],l.noop.lexregion=d[2],l.noop.botname=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.noop.appdata.split(",");l.noop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.noop.text=d.slice(1,d.length).join(",");break;case"message":l.noop.text=l.noop.appdata;break;case"set":l.noop.name=l.noop.appdata.split("=")[0],l.noop.value=l.noop.appdata.split("=")[1];break;case"agi":l.noop.project=l.noop.appdata;break;default:var c=l.noop.appdata.split(",");l.noop.value=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outbounddial"===l.noop.appType.toLowerCase()&&(l.noop.prefix=l.noop.phone?l.noop.phone.split("$")[0]:void 0,l.noop.callerId=l.noop.callerID?"CALLERID(all)="+l.noop.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outboundDial"===l.noop.appType&&(l.noop.phone=i.cutdigits?(l.noop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.noop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.noop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.noop.options+="U(xcally-mixmonitor-context)"):l.noop.options=l.noop.options.replace("U(xcally-mixmonitor-context)",""));if(l.noop.appType&&"custom"===l.noop.appType);else switch((l.noop.app||l.noop.appType).toLowerCase()){case"set":l.noop.appdata=l.noop.name+"="+l.noop.value;break;case"custom":break;default:e[0]=l.noop.value,l.noop.appdata=e.join(",")}m(l.noop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountAppnoopDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.queue=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.queue.appdata)switch(l.queue.appType?l.queue.appType.toLowerCase():l.queue.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.queue.appdata.split(",");l.queue.key=d[0],l.queue.language=d[1],l.queue.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.queue.appdata.split(",");l.queue.projectId=d[0],l.queue.clientEmail=d[1],l.queue.privateKey=d[2],l.queue.language=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.queue.appdata.split(",");l.queue.accesskeyid=d[0],l.queue.secretaccesskey=d[1],l.queue.lexregion=d[2],l.queue.botname=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.queue.appdata.split(",");l.queue.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.queue.text=d.slice(1,d.length).join(",");break;case"message":l.queue.text=l.queue.appdata;break;case"set":l.queue.name=l.queue.appdata.split("=")[0],l.queue.value=l.queue.appdata.split("=")[1];break;case"agi":l.queue.project=l.queue.appdata;break;default:var c=l.queue.appdata.split(",");l.queue.queue=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.queue.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.queue.queue=300,l.queue.timeout=300;function m(e){n.hide(e)}l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outbounddial"===l.queue.appType.toLowerCase()&&(l.queue.prefix=l.queue.phone?l.queue.phone.split("$")[0]:void 0,l.queue.callerId=l.queue.callerID?"CALLERID(all)="+l.queue.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outboundDial"===l.queue.appType&&(l.queue.phone=i.cutdigits?(l.queue.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.queue.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.queue.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.queue.options+="U(xcally-mixmonitor-context)"):l.queue.options=l.queue.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.queues,{name:l.queue.queue});n&&(l.queue[_.capitalize("fax")+"QueueId"]=n.id);if(l.queue.appType&&"custom"===l.queue.appType);else switch((l.queue.app||l.queue.appType).toLowerCase()){case"set":l.queue.appdata=l.queue.name+"="+l.queue.value;break;case"custom":break;default:e[0]=l.queue.queue,e[1]=l.queue.timeout,l.queue.appdata=e.join(",")}m(l.queue)},l.closeDialog=m,o.hasRole("admin")?s.faxQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.faxQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:901}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.queues,{id:e.resourceId})}),t=null;if(l.queue&&(t=_.find(l.queues,{name:l.queue.queue})),t&&!_.some(n,["id",t.id])){var a=_.find(l.queues,{id:t.id});a.canSelect=!1,n.push(a)}l.queues=n})}else{var t=[],a=null;l.queue&&(a=_.find(l.queues,{name:l.queue.queue}));for(var i=0;i<l.queues.length;i++)a&&l.queues[i].id===a.id&&(l.queues[i].canSelect=!1,t.push(l.queues[i]));l.queues=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountAppqueueDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.system=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.system.appdata)switch(l.system.appType?l.system.appType.toLowerCase():l.system.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.system.appdata.split(",");l.system.key=d[0],l.system.language=d[1],l.system.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.system.appdata.split(",");l.system.projectId=d[0],l.system.clientEmail=d[1],l.system.privateKey=d[2],l.system.language=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.system.appdata.split(",");l.system.accesskeyid=d[0],l.system.secretaccesskey=d[1],l.system.lexregion=d[2],l.system.botname=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.system.appdata.split(",");l.system.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.system.text=d.slice(1,d.length).join(",");break;case"message":l.system.text=l.system.appdata;break;case"set":l.system.name=l.system.appdata.split("=")[0],l.system.value=l.system.appdata.split("=")[1];break;case"agi":l.system.project=l.system.appdata;break;default:var c=l.system.appdata.split(",");l.system.command=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.system.variable=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.system.variable="";function m(e){n.hide(e)}l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outbounddial"===l.system.appType.toLowerCase()&&(l.system.prefix=l.system.phone?l.system.phone.split("$")[0]:void 0,l.system.callerId=l.system.callerID?"CALLERID(all)="+l.system.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outboundDial"===l.system.appType&&(l.system.phone=i.cutdigits?(l.system.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.system.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.system.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.system.options+="U(xcally-mixmonitor-context)"):l.system.options=l.system.options.replace("U(xcally-mixmonitor-context)",""));if(l.system.appType&&"custom"===l.system.appType);else switch((l.system.app||l.system.appType).toLowerCase()){case"set":l.system.appdata=l.system.name+"="+l.system.value;break;case"custom":break;default:e[0]=l.system.command,e[1]=l.system.variable,l.system.appdata=e.join(",")}m(l.system)},l.closeDialog=m,o.hasRole("admin")?s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1012}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.variables,{id:e.resourceId})}),t=null;if(l.system&&(t=_.find(l.variables,{name:l.system.variable})),t&&!_.some(n,["id",t.id])){var a=_.find(l.variables,{id:t.id});a.canSelect=!1,n.push(a)}l.variables=n})}else{var t=[],a=null;l.system&&(a=_.find(l.variables,{name:l.system.variable}));for(var i=0;i<l.variables.length;i++)a&&l.variables[i].id===a.id&&(l.variables[i].canSelect=!1,t.push(l.variables[i]));l.variables=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountAppsystemDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.tag=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.tag.appdata)switch(l.tag.appType?l.tag.appType.toLowerCase():l.tag.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.tag.appdata.split(",");l.tag.key=d[0],l.tag.language=d[1],l.tag.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.tag.appdata.split(",");l.tag.projectId=d[0],l.tag.clientEmail=d[1],l.tag.privateKey=d[2],l.tag.language=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.tag.appdata.split(",");l.tag.accesskeyid=d[0],l.tag.secretaccesskey=d[1],l.tag.lexregion=d[2],l.tag.botname=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.tag.appdata.split(",");l.tag.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.tag.text=d.slice(1,d.length).join(",");break;case"message":l.tag.text=l.tag.appdata;break;case"set":l.tag.name=l.tag.appdata.split("=")[0],l.tag.value=l.tag.appdata.split("=")[1];break;case"agi":l.tag.project=l.tag.appdata;break;default:var c=l.tag.appdata.split(",");l.tag.tag=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outbounddial"===l.tag.appType.toLowerCase()&&(l.tag.prefix=l.tag.phone?l.tag.phone.split("$")[0]:void 0,l.tag.callerId=l.tag.callerID?"CALLERID(all)="+l.tag.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outboundDial"===l.tag.appType&&(l.tag.phone=i.cutdigits?(l.tag.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.tag.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.tag.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.tag.options+="U(xcally-mixmonitor-context)"):l.tag.options=l.tag.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.tags,{name:l.tag.tag});n&&(l.tag.TagId=n.id);if(l.tag.appType&&"custom"===l.tag.appType);else switch((l.tag.app||l.tag.appType).toLowerCase()){case"set":l.tag.appdata=l.tag.name+"="+l.tag.value;break;case"custom":break;default:e[0]=l.tag.tag,l.tag.appdata=e.join(",")}m(l.tag)},l.closeDialog=m,o.hasRole("admin")?s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1008}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.tags,{id:e.resourceId})}),t=null;if(l.tag&&(t=_.find(l.tags,{name:l.tag.tag})),t&&!_.some(n,["id",t.id])){var a=_.find(l.tags,{id:t.id});a.canSelect=!1,n.push(a)}l.tags=n})}else{var t=[],a=null;l.tag&&(a=_.find(l.tags,{name:l.tag.tag}));for(var i=0;i<l.tags.length;i++)a&&l.tags[i].id===a.id&&(l.tags[i].canSelect=!1,t.push(l.tags[i]));l.tags=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtags",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountApptagDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.dispositions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=l.faxAccount.getDispositions(m.query,u).$promise}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){p(),d.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.dispositions={count:0,rows:[]},m.selectedDispositions=[],m.crudPermissions,m.levels={first:"1st",second:"2nd",third:"3rd"},m.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},m.init=function(e,n){m.faxAccount=e||{},m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.FaxAccountId=m.faxAccount.id,m.query.id=m.faxAccount.id,p()},m.deleteConfirm=function(e,n){var t=_.some(m.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){g(e)})},m.success=u,m.getDispositions=p,m.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:{id:m.faxAccount.id,field:"FaxAccountId",route:"faxAccount"},license:null,setting:null,crudPermissions:m.crudPermissions}}).then(function(e){e&&p()})},m.deleteDisposition=g,m.exportSelectedDispositions=function(){var e=angular.copy(m.selectedDispositions);return m.selectedDispositions=[],e},m.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:m.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedDispositions.forEach(function(e){g(e)}),m.selectedDispositions=[]})},m.deselectDispositions=function(){m.selectedDispositions=[]},m.selectAllDispositions=function(){m.selectedDispositions=m.dispositions.rows};var v=!0,h=1;e.$watch("vm_dc.query.filter",function(e,n){v?o(function(){v=!1}):(n||(h=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=h),p())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","api","toasty","Auth"],angular.module("app.fax").controller("FaxAccountDispositionsController",e)}(),function(){"use strict";function e(e,a,n,t,i,s,o,r,l,d,c){var m=this;function u(e){m.faxAccountInteractions=e||{count:0,rows:[]};for(var n=0;n<m.faxAccountInteractions.rows.length;n+=1){var t=m.faxAccountInteractions.rows[n];v(t),t.Owner.name=h(t)}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.faxInteraction.get(m.query,u).$promise}function g(e){d.faxInteraction.delete({id:e.id}).$promise.then(function(){_.remove(m.faxAccountInteractions.rows,{id:e.id}),m.faxAccountInteractions.count-=1,m.faxAccountInteractions.rows.length||p(),l.success({title:"Interaction deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETfaxAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfaxAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(e){e.Contact?(e.contactName=(e.Contact.firstName||"")+" "+(e.Contact.lastName||""),e.contactInfo=e.Contact.fax):e.contactName=i.instant("DASHBOARDS.UNKNOWN")}function h(e){return e.UserId?e.UserId===m.currentUser.id?i.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">":i.instant("DASHBOARDS.NOT_ASSIGNED")}m.currentUser=c.getCurrentUser(),m.faxAccount={},m.faxAccountInteractions={count:0,rows:[]},m.selectedFaxAccountInteractions=[],m.crudPermissions,m.query={read:"null",closed:"null",sort:"-createdAt",includeAll:"true",limit:10,page:1},m.init=function(e,n,t){m.faxAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.FaxAccountId=m.faxAccount.id,m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Subject",column:"subject",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},d.tag.get().$promise.then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]})},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the interaction?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("interaction #")+e.id||"interaction")+"</b> will be deleted.").ariaLabel("delete interaction").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.faxInteractionDownload=function(s,e,n){return d.faxInteraction.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="interaction"+s.id,a=new Blob(n,{type:e.type});t="fax-interaction"+s.id+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getFaxAccountInteractions=p,m.createOrEditFaxAccountInteraction=function(e,n){o.show({controller:"CreateOrEditInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/edit/interactions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxAccount:m.faxAccount,interaction:n,interactions:m.faxAccountInteractions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.spyfaxInteraction=function(e,t){o.show({controller:"AgentGeneralInteractionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,onShowing:function(e,n){e.vm.init({id:1,channel:"fax",interaction:t,spy:!0},a.$parent.vm.setting)}})},m.openAdvancedSearch=function(){o.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(r.body),clickOutsideToClose:!1,locals:{fields:m.advancedSearch.fields,color:void 0,storagePath:"fax.faxAccounts"},fullscreen:!0}).then(function(e){if(m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply){var n="";n+="||FaxAccountId:=$eq["+m.faxAccount.id+"]",m.query.search=e.value?e.value+=n:e.value,p()}}).catch(function(e){l.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.exportSelectedFaxAccountInteractions=function(){var e=angular.copy(m.selectedFaxAccountInteractions);return m.selectedFaxAccountInteractions=[],e},m.deleteFaxAccountInteraction=g,m.deleteSelectedFaxAccountInteractions=function(e){var n=o.confirm().title("Are you sure want to delete the selected interactions?").htmlContent("<b>"+m.selectedFaxAccountInteractions.length+" selected</b> will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedFaxAccountInteractions.forEach(function(e){g(e)}),m.selectedFaxAccountInteractions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.fax").controller("FaxAccountInteractionsController",e)}(),function(){"use strict";function e(t,e,a,i,s,n,o,r,l,d,c,m,u){var p=this;p.currentUser=d.getCurrentUser(),p.license=n,p.setting=o,p.passwordPattern=p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.location=e.protocol()+"://"+e.host(),p.faxAccount=c||t.params.faxAccount||{},p.userProfile=m,p.userProfileSection=u&&1==u.count?u.rows[0]:null,p.crudPermissions=d.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.hasModulePermissions={},p.selectedTab=t.params.tab||0,p.gotogoto=function(e,n){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:910}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.fax.realtime.accounts",{}):l.info({title:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.fax.realtime.accounts",{})}},p.agentadddialog=function(e,n){a.show({controller:"FaxAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/edit/agentadd/agentadd.html",parent:angular.element(i.body),targetEvent:n,clickOutsideToClose:!0,locals:{faxAccount:e,faxAccounts:p.faxAccounts?p.faxAccounts.rows:[],crudPermissions:p.crudPermissions,realtime:!1}})},p.alert=l.info,p.gotoFaxAccounts=function(){t.go("app.fax.faxAccounts",{},{reload:"app.fax.faxAccounts"})},p.saveFaxAccount=function(){r.faxAccount.updateAccountApplications(p.faxAccount).$promise.then(function(){l.success({title:"FaxAccount updated!",msg:p.faxAccount.name?p.faxAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfaxAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.trunks=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.trunks=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.trunks,{id:e.resourceId})}),t=null;if(p.faxAccount&&(t=_.find(p.trunks,{id:Number(p.faxAccount.TrunkId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.trunks,{id:t.id});a.canSelect=!1,n.push(a)}p.trunks=n})}else{var t=[],a=null;p.faxAccount&&(a=_.find(p.trunks,{id:Number(p.faxAccount.TrunkId)}));for(var i=0;i<p.trunks.length;i++)a&&p.trunks[i].id===a.id&&(p.trunks[i].canSelect=!1,t.push(p.trunks[i]));p.trunks=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.lists,{id:e.resourceId})}),t=null;if(p.faxAccount&&(t=_.find(p.lists,{id:Number(p.faxAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.lists,{id:t.id});a.canSelect=!1,n.push(a)}p.lists=n})}else{var t=[],a=null;p.faxAccount&&(a=_.find(p.lists,{id:Number(p.faxAccount.ListId)}));for(var i=0;i<p.lists.length;i++)a&&p.lists[i].id===a.id&&(p.lists[i].canSelect=!1,t.push(p.lists[i]));p.lists=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.pauses,{id:e.resourceId})});p.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),p.pauses=n})}else p.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","faxAccount","userProfile","userProfileSection"],angular.module("app.fax").controller("FaxAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.faxAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="faxAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedFaxAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,key,headerinfo,TrunkId,localstationid,ListId,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,page:1},f.arrayecm=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayminrate=_.keyBy([{option:"2400",value:"'2400'"},{option:"4800",value:"'4800'"},{option:"7200",value:"'7200'"},{option:"9600",value:"'9600'"},{option:"12000",value:"'12000'"},{option:"14400",value:"'14400'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraymaxrate=_.keyBy([{option:"2400",value:"'2400'"},{option:"4800",value:"'4800'"},{option:"7200",value:"'7200'"},{option:"9600",value:"'9600'"},{option:"12000",value:"'12000'"},{option:"14400",value:"'14400'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraytech=_.keyBy([{option:"SIP",value:"'SIP'"},{option:"IAX",value:"'IAX'"},{option:"DADHI",value:"'DADHI'"},{option:"KHOMP",value:"'KHOMP'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.fax.faxAccounts.edit",{id:e.id,faxAccount:e,crudPermissions:f.crudPermissions})},f.interactionsgoto=function(e,n){t.go("app.fax.faxAccounts.edit",{id:e.id,tab:5})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:910}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.fax.realtime.accounts",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.fax.realtime.accounts",{})}},f.agentadddialog=function(e,n){i.show({controller:"FaxAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{faxAccount:e,faxAccounts:f.faxAccounts?f.faxAccounts.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("faxAccount")+"?").htmlContent("<b>"+(e.name||"faxAccount")+"</b> will be deleted.").ariaLabel("delete faxAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getFaxAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.faxAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="FaxAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditFaxAccount=function(e,n){i.show({controller:"CreateOrEditFaxAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxAccount:n,faxAccounts:f.faxAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteFaxAccount=y,f.exportSelectedFaxAccounts=function(){var e=angular.copy(f.selectedFaxAccounts);return f.selectedFaxAccounts=[],e},f.deleteSelectedFaxAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected faxAccounts?").htmlContent("<b>"+f.selectedFaxAccounts.length+" selected</b> will be deleted.").ariaLabel("delete FaxAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedFaxAccounts.forEach(function(e){y(e)}),f.selectedFaxAccounts=[]})},f.deselectFaxAccounts=function(){f.selectedFaxAccounts=[]},f.selectAllFaxAccounts=function(){f.selectedFaxAccounts=f.faxAccounts.rows},g.hasRole("admin")?m.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.trunks=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.trunks=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(f.trunks,{id:e.resourceId})}),a=null;a=[],f.faxAccounts.rows.forEach(function(e){var n=_.find(f.trunks,{id:Number(e.TrunkId)});a.push(n)}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(f.trunks,{id:e.id});n.canSelect=!1,t.push(n)}}),f.trunks=t})}else{var t=[],a=[];f.faxAccounts.rows.forEach(function(e){var n=_.find(f.trunks,{id:Number(e.TrunkId)});a.push(n)});for(var i=0;i<f.trunks.length;i++){_.some(a,{id:f.trunks[i].id})&&(f.trunks[i].canSelect=!1,t.push(f.trunks[i]))}f.trunks=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),g.hasRole("admin")?m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.lists,{id:e.resourceId})}),t=null;if(f.faxAccount&&(t=_.find(f.lists,{id:Number(f.faxAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.lists,{id:t.id});a.canSelect=!1,n.push(a)}f.lists=n})}else{var t=[],a=null;f.faxAccount&&(a=_.find(f.lists,{id:Number(f.faxAccount.ListId)}));for(var i=0;i<f.lists.length;i++)a&&f.lists[i].id===a.id&&(f.lists[i].canSelect=!1,t.push(f.lists[i]));f.lists=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.faxAccounts=e||{count:0,rows:[]}}function y(e){m.faxAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.faxAccounts.rows,{id:e.id}),f.faxAccounts.count-=1,f.faxAccounts.rows.length||f.getFaxAccounts(),p.success({title:_.startCase("FaxAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEfaxAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEfaxAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getFaxAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","faxAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.fax").controller("FaxAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="FAX.EDIT_FAXQUEUE",g.faxQueue=angular.copy(l),g.faxQueues=r,g.newFaxQueue=!1,g.faxQueue||(g.faxQueue={strategy:"beepall",timeout:10},g.title="FAX.NEW_FAXQUEUE",g.newFaxQueue=!0),g.addNewFaxQueue=function(){g.errors=[],d.faxQueue.save(g.faxQueue).$promise.then(function(e){g.faxQueues.unshift(e.toJSON()),o.success({title:"FaxQueue properly created",msg:g.faxQueue.name?g.faxQueue.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.faxQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveFaxQueue=function(){g.errors=[],d.faxQueue.update({id:g.faxQueue.id},g.faxQueue).$promise.then(function(e){var n=_.find(g.faxQueues,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"FaxQueue properly saved!",msg:g.faxQueue.name?g.faxQueue.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.faxQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteFaxQueue=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The faxQueue will be deleted.").ariaLabel("Delete FaxQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.faxQueue.delete({id:g.faxQueue.id}).$promise.then(function(){_.remove(g.faxQueues,{id:g.faxQueue.id}),o.success({title:"FaxQueue properly deleted!",msg:(g.faxQueue.name||"faxQueue")+" has been deleted!"}),v(g.faxQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.faxQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","faxQueues","faxQueue","api","Auth","license","setting","crudPermissions"],angular.module("app.fax").controller("CreateOrEditFaxQueueDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.faxQueue.getAgents({id:c.faxQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserFaxQueue?"penalty "+e.UserFaxQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.faxQueue=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.faxQueue.removeAgents({id:c.faxQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.faxQueue.addAgents({id:c.faxQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("FAX.ALL_AGENTS"),labelSelected:r.instant("FAX.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","faxQueue","faxQueues","realtime","$translate","Auth","crudPermissions"],angular.module("app.fax").controller("FaxQueueagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.faxQueue.getTeams({id:l.faxQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.faxQueue=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("FAX.ALL_TEAMS"),labelSelected:t.instant("FAX.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.faxQueue.removeTeams({id:l.faxQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.faxQueue.addTeams({id:l.faxQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","faxQueue","$translate","Auth","crudPermissions"],angular.module("app.fax").controller("FaxQueueteamaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.faxQueue=c||e.params.faxQueue||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.teamadddialog=function(e,n){t.show({controller:"FaxQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{faxQueue:e,faxQueues:u.faxQueues?u.faxQueues.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){t.show({controller:"FaxQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{faxQueue:e,faxQueues:u.faxQueues?u.faxQueues.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.alert=l.info,u.gotoFaxQueues=function(){e.go("app.fax.faxQueues",{},{reload:"app.fax.faxQueues"})},u.saveFaxQueue=function(){r.faxQueue.update({id:u.faxQueue.id},u.faxQueue).$promise.then(function(){l.success({title:"FaxQueue updated!",msg:u.faxQueue.name?u.faxQueue.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfaxQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","faxQueue","userProfileSection"],angular.module("app.fax").controller("FaxQueueController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.faxQueues=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="faxQueues",f.listOrder="",f.listOrderAsc=null,f.selectedFaxQueues=[],f.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"fax",limit:10,page:1},f.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.fax.faxQueues.edit",{id:e.id,faxQueue:e,crudPermissions:f.crudPermissions})},f.teamadddialog=function(e,n){i.show({controller:"FaxQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{faxQueue:e,faxQueues:f.faxQueues?f.faxQueues.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"FaxQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{faxQueue:e,faxQueues:f.faxQueues?f.faxQueues.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("faxQueue")+"?").htmlContent("<b>"+(e.name||"faxQueue")+"</b> will be deleted.").ariaLabel("delete faxQueue").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:910}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.fax.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.fax.realtime.queues",{})}},f.success=E,f.getFaxQueues=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.faxQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="FaxQueues",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditFaxQueue=function(e,n){i.show({controller:"CreateOrEditFaxQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxQueue:n,faxQueues:f.faxQueues.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteFaxQueue=y,f.exportSelectedFaxQueues=function(){var e=angular.copy(f.selectedFaxQueues);return f.selectedFaxQueues=[],e},f.deleteSelectedFaxQueues=function(e){var n=i.confirm().title("Are you sure want to delete the selected faxQueues?").htmlContent("<b>"+f.selectedFaxQueues.length+" selected</b> will be deleted.").ariaLabel("delete FaxQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedFaxQueues.forEach(function(e){y(e)}),f.selectedFaxQueues=[]})},f.deselectFaxQueues=function(){f.selectedFaxQueues=[]},f.selectAllFaxQueues=function(){f.selectedFaxQueues=f.faxQueues.rows};var b=!0,A=1;function E(e){f.faxQueues=e||{count:0,rows:[]}}function y(e){m.faxQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.faxQueues.rows,{id:e.id}),f.faxQueues.count-=1,f.faxQueues.rows.length||f.getFaxQueues(),p.success({title:_.startCase("FaxQueue")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEfaxQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEfaxQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getFaxQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","faxQueues","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.fax").controller("FaxQueuesController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){_.forIn(p.faxAccounts,function(e,n){p.rpcFaxAccounts[n]&&_.merge(e,p.rpcFaxAccounts[n])}),_.forIn(p.faxAccounts,function(n,e){var t={id:e,sort:"-id",direction:"in",limit:1,offset:0,$gte:"createdAt,"+moment().startOf("day").format("YYYY-MM-DD HH:mm:ss"),fields:"id,createdAt"};s.faxAccount.getMessages(t).$promise.then(function(e){return e&&(n.in=e.count||0,n.lastIn=e.rows&&e.rows.length?e.rows[0].createdAt:void 0),t.direction="out",s.faxAccount.getMessages(t).$promise}).then(function(e){e&&(n.out=e.count||0,n.lastOut=e.rows&&e.rows.length?e.rows[0].createdAt:void 0)}).catch(function(e){console.log(e)})})}p.currentUser=u.getCurrentUser(),p.count=l&&l.count?l.count:0,p.faxAccounts=l?_.keyBy(l.rows?l.rows:[],"id"):{},p.rpcFaxAccounts=d?_.keyBy(d.rows?d.rows:[],"id"):{},p.userProfile=c,p.userProfileSection=m&&1==m.count?m.rows[0]:null,p.crudPermissions=u.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.query={sort:"-name",limit:10,page:1},p.success=f,p.$onInit=g,p.getFaxAccounts=function(){p.query.offset=(p.query.page-1)*p.query.limit,u.hasRole("admin")?p.promise=s.faxAccount.get(p.query,f).$promise:(p.query.id=p.userProfile.id,p.query.section="FaxAccounts",p.promise=s.userProfile.getResources(p.query,f).$promise)},p.onSave=function(e){p.faxAccounts[e.id]&&_.merge(p.faxAccounts[e.id],e)},p.onFaxMessageSave=function(e){p.faxAccounts[e.FaxAccountId]&&("in"==e.direction?(p.faxAccounts[e.FaxAccountId].in+=1,p.faxAccounts[e.FaxAccountId].lastIn=e.createdAt):(p.faxAccounts[e.FaxAccountId].out+=1,p.faxAccounts[e.FaxAccountId].lastOut=e.createdAt))},p.goToFaxAccount=function(e,n){i.go("app.fax.faxAccounts.edit",{id:n.id,faxAccount:n})},p.order=[],_.forIn(p.faxAccounts,function(e,n){p.order.push(e.id)}),o.on("faxAccount:save",p.onSave),o.on("faxAccount:update",p.onSave),o.on("faxMessage:save",p.onFaxMessageSave);var v=!0,h=1;function f(e){if(p.faxAccounts=e?_.keyBy(e.rows?e.rows:[],"id"):{},e.rows){p.order=[];for(var n=0;n<e.rows.length;n++)p.order.push(e.rows[n].id)}g()}e.$watch("vm.query.filter",function(e,n){v?t(function(){v=!1}):(n||(h=p.query.page),e!==n&&(p.query.page=1),e||(p.query.page=h),p.getFaxAccounts())}),e.$on("$destroy",function(){o.removeAllListeners("faxAccount:save"),o.removeAllListeners("faxAccount:update"),o.removeAllListeners("faxMessage:save")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$state","api","socket","toasty","faxAccounts","rpcFaxAccounts","userProfile","userProfileSection","Auth"],angular.module("app.fax").controller("FaxAccountsRealtimeController",e)}(),function(){"use strict";function e(e,o,n,t,a,i,s,r,l,d,c,m,u,p,g,v,h,f){var b=this,A=["userpic","online","lastLoginAt","lastPauseAt","pauseType","lastPauseAt","internal","address","chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","chatCapacity","openchannelCapacity","mailCapacity","smsCapacity","whatsappCapacity","faxCapacity","chatCurrentCapacity","openchannelCurrentCapacity","mailCurrentCapacity","smsCurrentCapacity","whatsappCurrentCapacity","faxCurrentCapacity","chatStatus","openchannelStatus","mailStatus","smsStatus","whatsappStatus","faxStatus","voiceStatus","chatStatusTime","openchannelStatusTime","mailStatusTime","smsStatusTime","whatsappStatusTime","faxStatusTime","voiceStatusTime","queue","destconnectedlinenum","screenrecording","phoneBarEnableScreenRecordingByAgent","phoneBarEnableAutomaticScreenRecording"],E=["chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","online"];for(var y in b.currentUser=v.getCurrentUser(),b.availableStates=["ringing","inuse","busy","onhold","not_inuse"],b.pauses=s||{count:0,rows:[]},b.license=h,b.userProfile=p,b.userProfileSection=g&&1==g.count?g.rows[0]:null,b.crudPermissions=v.parseCrudPermissions(b.userProfileSection?b.userProfileSection.crudPermissions:null),b.agents=r?_.keyBy(r.rows?r.rows:[],"id"):{},b.rpcAgents=l?_.keyBy(l.rows?l.rows:[],"id"):{},b.paginatedAgents={},b.load=!1,b.order=[],b.agentInternal={},b.agents)b.agents.hasOwnProperty(y)&&(b.agents[y].init=!0);b.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},b.logout=function(e,n){return d.user.logout({id:e.id,device:"realtime",agent_id:e.id,agent_name:e.name}).$promise.then(function(){m.success({title:"Agent logout",msg:e.fullname+" properly logout"}),b.agents[e.id]&&(b.agents[e.id].online=!1),b.rpcAgents[e.id]&&(b.rpcAgents[e.id].online=!1),T()}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.queueAdd=function(e,n){t.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:[],channel:"fax",direction:"inbound",crudPermissions:b.crudPermissions}})},b.pause=function(n,e){return d.user.pause({id:n.id,type:e}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.unPause=function(n){return d.user.unpause({id:n.id}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.showInfo=function(e){t.show(t.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},b.getAgentStatus=O,b.getAgentGlobalStatus=w,b.isPause=I,b.checkPause=function(e){return"pause"===e},b.isPartialPause=function(e){return"*pause"===e},b.onSave=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(_.omit(e,E),A)),_.merge(b.rpcAgents[e.id],_.pick(_.omit(e,E),A)),w(b.agents[e.id]))},b.onUpdate=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(e,A)),_.merge(b.rpcAgents[e.id],_.pick(e,A)),e.lastPauseAt&&(b.agents[e.id].globalStatusTime=e.lastPauseAt,b.rpcAgents[e.id].globalStatusTime=e.lastPauseAt),w(b.agents[e.id]))},b.onInit=T,b.onConnect=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(_.merge(b.agents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])),_.merge(b.rpcAgents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])))},b.onComplete=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(b.agents[b.agentInternal[e.destaccountcode]]=_.omit(b.agents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]),b.rpcAgents[b.agentInternal[e.destaccountcode]]=_.omit(b.rpcAgents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]))},b.screenRecording=function(e,n){return d.user.update({id:e.id},{screenrecording:n}).$promise.catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.on("user:save",b.onSave),c.on("user:update",b.onUpdate),c.on("user:agentconnect",b.onConnect),c.on("user:agentcomplete",b.onComplete),T();var S=f(function(){b.load&&(b.load=!1,T())},999);function T(e){b.load=!1;var n,t,a=o.defer();b.promise=a.promise,b.filteredAgents=[],b.order=[],_.forIn(b.agents,function(e,n){b.rpcAgents[n]&&_.merge(e,_.pick(_.omit(b.rpcAgents[n],E),A)),w(e),e.online?(b.filteredAgents.push(e),b.agentInternal[e.internal]=n):e.globalStatusTime=_.toNumber(moment().format("x"))}),b.query.globalStatusFilter&&_.remove(b.filteredAgents,function(e){return e.globalStatus!==b.query.globalStatusFilter}),b.query.pauseTypeFilter&&_.remove(b.filteredAgents,function(e){return e.pauseType!==b.query.pauseTypeFilter}),b.query.filter&&_.remove(b.filteredAgents,function(e){return e.fullname.toLowerCase().indexOf(b.query.filter.toLowerCase())<0}),b.filteredAgents=(n=b.filteredAgents,t=_.startsWith(b.query.order,"-")?"desc":"asc",_.orderBy(n,[b.query.order.replace("-","")],[t]));var i=(b.query.page-1)*b.query.limit;b.paginatedAgents=_.drop(b.filteredAgents,i).slice(0,b.query.limit);for(var s=0;s<b.paginatedAgents.length;s+=1)b.order.push(b.paginatedAgents[s].id);a.resolve(),b.load=!0}function I(e){return"pause"===e||"*pause"===e}function C(e){return"idle"===e||"unknown"===e||"unavailable"===e||"ringing"===e||_.isNil(e)}function O(e,n){return"voice"===n?"idle"!==e[n+"Status"]?e[n+"Status"]:e[n+"Pause"]?e[n+"Status"]="pause":"idle":e[n+"Pause"]?e[n+"Status"]="pause":e[n+"Status"]}function w(e){var n="unknown";n=_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"pause":_.some([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"*pause":_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],C)?"idle":"busy",e.globalStatus!==n&&(e.globalStatus=n,e.init?(e.init=!1,e.globalStatusTime=I(n)?_.toNumber(moment(e.lastPauseAt).format("x")):_.max([e.voiceStatusTime,e.chatStatusTime,e.mailStatusTime,e.smsStatusTime,e.whatsappStatusTime,e.openchannelStatusTime,e.faxStatusTime])):e.globalStatusTime=_.toNumber(moment().format("x")))}e.$on("$destroy",function(){c.removeAllListeners("user:save"),c.removeAllListeners("user:update"),c.removeAllListeners("user:agentconnect"),c.removeAllListeners("user:agentcomplete"),S&&(f.cancel(S),S=null)})}e.$inject=["$scope","$q","$timeout","$mdDialog","$document","$filter","pauses","agents","rpcAgents","api","socket","toasty","helperClasses","userProfile","userProfileSection","Auth","license","$interval"],angular.module("app.voice").controller("AgentsFaxRealtimeController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c){var m=this,u=["loggedIn","available","waiting","paused"],p=n(function(){},999);m.currentUser=c.getCurrentUser(),m.queues=i,m.userProfileSection=d&&1==d.count?d.rows[0]:null,m.crudPermissions=c.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={id:c.isUser()?m.currentUser.id:void 0,section:c.isUser()?"FaxQueues":void 0,channel:"fax",sort:"name",limit:10,page:1},m.getQueues=function(){m.query.offset=(m.query.page-1)*m.query.limit,s.realtime.getQueues(m.query).$promise.then(function(e){m.queues=e}).catch(function(e){console.error(e)})},m.editQueue=function(e,n){t.show({controller:"CreateOrEditFaxQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxQueue:n,faxQueues:m.queues.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.addAgent=function(e,n){t.show({controller:"FaxQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxQueue:n,faxQueues:m.queues.rows,realtime:!1,crudPermissions:m.crudPermissions}})},o.on("fax_queue:save",function(e){var n=_.find(m.queues.rows,["id",e.id]);n&&_.merge(n,_.pick(e,u))}),o.on("userFaxQueue:save",function(e){var n=_.find(m.queues.rows,["id",e.FaxQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),o.on("userFaxQueue:remove",function(e){var n=_.find(m.queues.rows,["id",e.FaxQueueId]);n&&(0<n.loggedInDb&&n.loggedInDb--,_.remove(n.agents,["id",e.UserId]))}),o.on("user:update",function(t){m.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&(!1===t.online?(n.online=!1,e.loggedInDb-=1,n.paused?(n.paused=!1,e.paused-=1):e.available-=1):n.online?t.faxPause?(n.paused=!0,e.paused+=1,e.available-=1):!t.faxPause&&n.paused&&(n.paused=!1,e.paused-=1,e.available+=1):(n.online=!0,e.loggedInDb+=1,e.available+=1))})}),e.$on("$destroy",function(){o.removeAllListeners("fax_queue:save"),o.removeAllListeners("userFaxQueue:remove"),o.removeAllListeners("userFaxQueue:save"),o.removeAllListeners("user:update"),p&&n.cancel(p)})}e.$inject=["$scope","$mdDialog","$document","$interval","queues","api","socket","toasty","userProfile","userProfileSection","Auth"],angular.module("app.fax").controller("QueuesFaxRealtimeController",e)}(),function(){"use strict";angular.module("app.auth").factory("helperClasses",function(){return{status:{registered:"green-300-fg icon-checkbox-marked-circle",unregistered:"red-300-fg icon-close-circle",lagged:"red-300-fg icon-close-circle",reachable:"green-300-fg icon-checkbox-marked-circle",unreachable:"red-300-fg icon-close-circle",unknown:"grey-fg icon-minus-circle"},state:{unknown:"grey-fg icon-phone-hangup",not_inuse:"green-300-fg icon-phone-hangup",inuse:"red-300-fg icon-phone-in-talk",busy:"red-300-fg icon-phone-locked",invalid:"grey-fg icon-phone-hangup",unavailable:"grey-fg icon-phone-hangup",ringing:"blue-300-fg icon-phone-incoming",ringinuse:"blue-300-fg icon-phone-incoming",onhold:"blue-300-fg icon-phone-paused"},channelStatus:{ring:"blue-300-fg icon-phone-incoming",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"},channelStatusOut:{ring:"blue-300-fg icon-phone-outgoing",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"}}})}(),function(){"use strict";function e(e,t,n){switch(n.disconnect(),n.connect(),this.selectedTab=0,t.current.name){case"app.fax.realtime.agents":this.selectedTab=0;break;case"app.fax.realtime.trunks":this.selectedTab=1;break;case"app.fax.realtime.queues":this.selectedTab=2;break;case"app.fax.realtime.accounts":this.selectedTab=3;break;default:this.selectedTab=0,t.go("app.fax.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.fax.realtime.agents");break;case 1:t.go("app.fax.realtime.trunks");break;case 2:t.go("app.fax.realtime.queues");break;case 3:t.go("app.fax.realtime.accounts");break;default:t.go("app.fax.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.fax").controller("FaxRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m){var u=this,p=["status","stateRegistry","registry","host","port","internal","state","status"];function g(){for(var e,n=0;n<u.trunks.length;n+=1)0<=(e=_.findIndex(u.rpcTrunks,["id",u.trunks[n].id]))&&_.merge(u.trunks[n],_.pick(u.rpcTrunks[e],p))}function v(e,n,t){0<=n&&_.merge(e[n],_.pick(t,p))}u.currentUser=m.getCurrentUser(),u.count=a.count,u.trunks=a?a.rows:[],u.rpcTrunks=i&&i.rows?i.rows:[],u.query={fields:"id,name",active:!0,sort:"-updatedAt",limit:10,page:1},u.statusClass=r.status,u.stateClass=r.state,u.userProfile=d,u.userProfileSection=c&&1==c.count?c.rows[0]:null,u.crudPermissions=m.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.success=b,u.$onInit=g,u.showInfo=function(e){n.show(n.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},u.getTrunks=function(){u.query.offset=(u.query.page-1)*u.query.limit,m.hasRole("admin")?u.promise=s.trunk.get(u.query,b).$promise:(u.query.id=u.userProfile.id,u.query.section="Trunks",u.promise=s.userProfile.getResources(u.query,b).$promise)},u.goToTrunk=function(e,n){l.go("app.tools.trunks.edit",{id:n.id})},u.onSave=function(e){var n=_.findIndex(u.trunks,["id",e.id]),t=_.findIndex(u.rpcTrunks,["id",e.id]);v(u.trunks,n,e),v(u.rpcTrunks,t,e)},o.on("trunk:save",u.onSave);var h=!0,f=1;function b(e){u.count=e.count,u.trunks=e&&e.rows?e.rows:[],g()}e.$watch("vm.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=u.query.page),e!==n&&(u.query.page=1),e||(u.query.page=f),u.getTrunks())}),e.$on("$destroy",function(){o.removeAllListeners("trunk:save")})}e.$inject=["$scope","$timeout","$mdDialog","trunks","rpcTrunks","api","socket","helperClasses","$state","userProfile","userProfileSection","Auth"],angular.module("app.fax").controller("TrunksFaxRealtimeController",e)}(),function(){"use strict";function e(e,n){this.info=e,this.license=n}e.$inject=["info","license"],angular.module("app.help.about").controller("AboutController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_DESKACCOUNT",g.deskAccount=angular.copy(l),g.deskAccounts=r,g.newDeskAccount=!1,g.deskAccount||(g.deskAccount={type:"integrationTab",authType:"basic",serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_DESKACCOUNT",g.newDeskAccount=!0),g.addNewDeskAccount=function(){g.errors=[],d.intDeskAccount.save(g.deskAccount).$promise.then(function(e){g.deskAccounts.unshift(e.toJSON()),o.success({title:"DeskAccount properly created",msg:g.deskAccount.name?g.deskAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDeskAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDeskAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveDeskAccount=function(){g.errors=[],d.intDeskAccount.update({id:g.deskAccount.id},g.deskAccount).$promise.then(function(e){var n=_.find(g.deskAccounts,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"DeskAccount properly saved!",msg:g.deskAccount.name?g.deskAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDeskAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDeskAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteDeskAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The deskAccount will be deleted.").ariaLabel("Delete DeskAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intDeskAccount.delete({id:g.deskAccount.id}).$promise.then(function(){_.remove(g.deskAccounts,{id:g.deskAccount.id}),o.success({title:"DeskAccount properly deleted!",msg:(g.deskAccount.name||"deskAccount")+" has been deleted!"}),v(g.deskAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDeskAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDeskAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","deskAccounts","deskAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditDeskAccountDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.deskAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="deskAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedDeskAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,type,remoteUri,authType,username,password,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.arraytype=_.keyBy([{option:"Integration_Tab",value:"'integrationTab'"},{option:"New_Tab",value:"'newTab'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayauthType=_.keyBy([{option:"Basic",value:"'basic'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.integrations.deskAccounts.edit",{id:e.id,deskAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intDeskAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"DeskAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"DeskAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("deskAccount")+"?").htmlContent("<b>"+(e.name||"deskAccount")+"</b> will be deleted.").ariaLabel("delete deskAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getDeskAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intDeskAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="DeskAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditDeskAccount=function(e,n){i.show({controller:"CreateOrEditDeskAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/deskAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{deskAccount:n,deskAccounts:f.deskAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteDeskAccount=y,f.exportSelectedDeskAccounts=function(){var e=angular.copy(f.selectedDeskAccounts);return f.selectedDeskAccounts=[],e},f.deleteSelectedDeskAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected deskAccounts?").htmlContent("<b>"+f.selectedDeskAccounts.length+" selected</b> will be deleted.").ariaLabel("delete DeskAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedDeskAccounts.forEach(function(e){y(e)}),f.selectedDeskAccounts=[]})},f.deselectDeskAccounts=function(){f.selectedDeskAccounts=[]},f.selectAllDeskAccounts=function(){f.selectedDeskAccounts=f.deskAccounts.rows};var b=!0,A=1;function E(e){f.deskAccounts=e||{count:0,rows:[]}}function y(e){m.intDeskAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.deskAccounts.rows,{id:e.id}),f.deskAccounts.count-=1,f.deskAccounts.rows.length||f.getDeskAccounts(),p.success({title:_.startCase("DeskAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintDeskAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintDeskAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getDeskAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","deskAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("DeskAccountsController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intDeskField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intDeskField.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intDeskField.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.deskAccount={},o.deskConfiguration={},o.configurations=[],o.selectedDeskConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.deskAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intDeskAccount.getConfigurations({id:o.deskAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getDeskConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getDeskConfiguration=function(e){o.deskConfiguration=o.configurations[e],o.selectedDeskConfiguration=e,i.intDeskConfiguration.getSubjects({id:o.deskConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intDeskConfiguration.getDescriptions({id:o.deskConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intDeskConfiguration.getFields({id:o.deskConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.intDeskConfiguration.getTags({id:o.deskConfiguration.id}).$promise.then(function(e){o.selectedTags=e.rows?_.map(e.rows,"id"):[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditDeskConfiguration=function(e,n){a.show({controller:"CreateOrEditDeskConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/deskAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{deskConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getDeskConfiguration(0)})},o.deleteDeskConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the deskConfiguration?").htmlContent("<b>"+(n.name||"deskConfiguration")+"</b> will be deleted.").ariaLabel("delete deskConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intDeskConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"DeskConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getDeskConfiguration(0)})},function(){console.log("CANCEL")})},o.selectedTags=[],o.selectTagsChanged=function(e){i.intDeskConfiguration.setTags({id:o.deskConfiguration.id,ids:o.selectedTags}).$promise.then(function(){s.success({title:"Tags set!",msg:"Tags has been set!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ADDTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})},i.tag.get({nolimit:!0,sort:"name"}).$promise.then(function(e){o.tags=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}),o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditDeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/deskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.deskConfiguration,account:o.deskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditDeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/deskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.deskConfiguration,account:o.deskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditDeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/deskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.deskConfiguration,account:o.deskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("DeskAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_DESKCONFIGURATION",g.deskConfiguration=angular.copy(l),g.configurations=r,g.newDeskConfiguration=!1,g.deskConfiguration||(g.deskConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_DESKCONFIGURATION",g.newDeskConfiguration=!0),g.addNewDeskConfiguration=function(){g.errors=[],d.intDeskAccount.addConfiguration({id:n.params.id},g.deskConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"DeskConfiguration properly created",msg:g.deskConfiguration.name?g.deskConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDeskConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDeskConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveDeskConfiguration=function(){g.errors=[],d.intDeskConfiguration.update({id:g.deskConfiguration.id},g.deskConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"DeskConfiguration properly saved!",msg:g.deskConfiguration.name?g.deskConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDeskConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDeskConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteDeskConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The deskConfiguration will be deleted.").ariaLabel("Delete DeskConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intDeskConfiguration.delete({id:g.deskConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.deskConfiguration.id}),o.success({title:"DeskConfiguration properly deleted!",msg:(g.deskConfiguration.name||"deskConfiguration")+" has been deleted!"}),v(g.deskConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDeskConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDeskConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","deskConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditDeskConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intDeskField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intDeskField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intDeskField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceDialReportColumns.push("recordingURL")}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETVARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.intDeskAccount.getFields({id:l.id,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditDeskAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.deskAccount=c||e.params.deskAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoDeskAccounts=function(){e.go("app.integrations.deskAccounts",{},{reload:"app.integrations.deskAccounts"})},u.saveDeskAccount=function(){r.intDeskAccount.update({id:u.deskAccount.id},u.deskAccount).$promise.then(function(){l.success({title:"DeskAccount updated!",msg:u.deskAccount.name?u.deskAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintDeskAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","deskAccount","userProfileSection"],angular.module("app.integrations").controller("DeskAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_DYNAMICS365ACCOUNT",g.dynamics365Account=angular.copy(l),g.dynamics365Accounts=r,g.newDynamics365Account=!1,g.dynamics365Account||(g.dynamics365Account={serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_DYNAMICS365ACCOUNT",g.newDynamics365Account=!0),g.addNewDynamics365Account=function(){g.errors=[],d.intDynamics365Account.save(g.dynamics365Account).$promise.then(function(e){g.dynamics365Accounts.unshift(e.toJSON()),o.success({title:"Dynamics365Account properly created",msg:g.dynamics365Account.name?g.dynamics365Account.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDynamics365Account.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDynamics365Account.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveDynamics365Account=function(){g.errors=[],d.intDynamics365Account.update({id:g.dynamics365Account.id},g.dynamics365Account).$promise.then(function(e){var n=_.find(g.dynamics365Accounts,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Dynamics365Account properly saved!",msg:g.dynamics365Account.name?g.dynamics365Account.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDynamics365Account.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDynamics365Account.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteDynamics365Account=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The dynamics365Account will be deleted.").ariaLabel("Delete Dynamics365Account").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intDynamics365Account.delete({id:g.dynamics365Account.id}).$promise.then(function(){_.remove(g.dynamics365Accounts,{id:g.dynamics365Account.id}),o.success({title:"Dynamics365Account properly deleted!",msg:(g.dynamics365Account.name||"dynamics365Account")+" has been deleted!"}),v(g.dynamics365Account)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDynamics365Account.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDynamics365Account.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","dynamics365Accounts","dynamics365Account","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditDynamics365AccountDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.dynamics365Accounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="dynamics365Accounts",f.listOrder="",f.listOrderAsc=null,f.selectedDynamics365Accounts=[],f.query={fields:"createdAt,updatedAt,id,name,username,password,remoteUri,tenantId,clientId,clientSecret,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.integrations.dynamics365Accounts.edit",{id:e.id,dynamics365Account:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intDynamics365Account.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"Dynamics365Account properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"Dynamics365Account properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("dynamics365Account")+"?").htmlContent("<b>"+(e.name||"dynamics365Account")+"</b> will be deleted.").ariaLabel("delete dynamics365Account").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getDynamics365Accounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intDynamics365Account.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Dynamics365Accounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditDynamics365Account=function(e,n){i.show({controller:"CreateOrEditDynamics365AccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/dynamics365Accounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{dynamics365Account:n,dynamics365Accounts:f.dynamics365Accounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteDynamics365Account=y,f.exportSelectedDynamics365Accounts=function(){var e=angular.copy(f.selectedDynamics365Accounts);return f.selectedDynamics365Accounts=[],e},f.deleteSelectedDynamics365Accounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected dynamics365Accounts?").htmlContent("<b>"+f.selectedDynamics365Accounts.length+" selected</b> will be deleted.").ariaLabel("delete Dynamics365Accounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedDynamics365Accounts.forEach(function(e){y(e)}),f.selectedDynamics365Accounts=[]})},f.deselectDynamics365Accounts=function(){f.selectedDynamics365Accounts=[]},f.selectAllDynamics365Accounts=function(){f.selectedDynamics365Accounts=f.dynamics365Accounts.rows};var b=!0,A=1;function E(e){f.dynamics365Accounts=e||{count:0,rows:[]}}function y(e){m.intDynamics365Account.delete({id:e.id}).$promise.then(function(){_.remove(f.dynamics365Accounts.rows,{id:e.id}),f.dynamics365Accounts.count-=1,f.dynamics365Accounts.rows.length||f.getDynamics365Accounts(),p.success({title:_.startCase("Dynamics365Account")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintDynamics365Account"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintDynamics365Account",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getDynamics365Accounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","dynamics365Accounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("Dynamics365AccountsController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intDynamics365Field.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intDynamics365Field.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intDynamics365Field.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.dynamics365Account={},o.dynamics365Configuration={},o.configurations=[],o.selectedDynamics365Configuration=-1,o.crudPermissions,o.init=function(e,n){o.dynamics365Account=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intDynamics365Account.getConfigurations({id:o.dynamics365Account.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getDynamics365Configuration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getDynamics365Configuration=function(e){o.dynamics365Configuration=o.configurations[e],o.selectedDynamics365Configuration=e,i.intDynamics365Configuration.getSubjects({id:o.dynamics365Configuration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intDynamics365Configuration.getDescriptions({id:o.dynamics365Configuration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intDynamics365Configuration.getFields({id:o.dynamics365Configuration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditDynamics365Configuration=function(e,n){a.show({controller:"CreateOrEditDynamics365ConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/dynamics365Accounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{dynamics365Configuration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getDynamics365Configuration(0)})},o.deleteDynamics365Configuration=function(e,n){var t=a.confirm().title("Are you sure want to delete the dynamics365Configuration?").htmlContent("<b>"+(n.name||"dynamics365Configuration")+"</b> will be deleted.").ariaLabel("delete dynamics365Configuration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intDynamics365Configuration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"Dynamics365Configuration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getDynamics365Configuration(0)})},function(){console.log("CANCEL")})},o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditDynamics365AccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/dynamics365Accounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.dynamics365Configuration,account:o.dynamics365Account,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditDynamics365AccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/dynamics365Accounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.dynamics365Configuration,account:o.dynamics365Account,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditDynamics365AccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/dynamics365Accounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.dynamics365Configuration,account:o.dynamics365Account,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("Dynamics365AccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_DYNAMICS365CONFIGURATION",g.dynamics365Configuration=angular.copy(l),g.configurations=r,g.newDynamics365Configuration=!1,g.dynamics365Configuration||(g.dynamics365Configuration={channel:"voice",type:"inbound",ticketType:"incident"},g.title="INTEGRATIONS.NEW_DYNAMICS365CONFIGURATION",g.newDynamics365Configuration=!0),g.addNewDynamics365Configuration=function(){g.errors=[],d.intDynamics365Account.addConfiguration({id:n.params.id},g.dynamics365Configuration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"Dynamics365Configuration properly created",msg:g.dynamics365Configuration.name?g.dynamics365Configuration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDynamics365Configuration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDynamics365Configuration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveDynamics365Configuration=function(){g.errors=[],d.intDynamics365Configuration.update({id:g.dynamics365Configuration.id},g.dynamics365Configuration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Dynamics365Configuration properly saved!",msg:g.dynamics365Configuration.name?g.dynamics365Configuration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDynamics365Configuration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDynamics365Configuration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteDynamics365Configuration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The dynamics365Configuration will be deleted.").ariaLabel("Delete Dynamics365Configuration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intDynamics365Configuration.delete({id:g.dynamics365Configuration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.dynamics365Configuration.id}),o.success({title:"Dynamics365Configuration properly deleted!",msg:(g.dynamics365Configuration.name||"dynamics365Configuration")+" has been deleted!"}),v(g.dynamics365Configuration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDynamics365Configuration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDynamics365Configuration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","dynamics365Configuration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditDynamics365ConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intDynamics365Field.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intDynamics365Field.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intDynamics365Field.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceDialReportColumns.push("recordingURL")}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETVARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.intDynamics365Account.getFields({id:l.id,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditDynamics365AccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.dynamics365Account=c||e.params.dynamics365Account||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoDynamics365Accounts=function(){e.go("app.integrations.dynamics365Accounts",{},{reload:"app.integrations.dynamics365Accounts"})},u.saveDynamics365Account=function(){r.intDynamics365Account.update({id:u.dynamics365Account.id},u.dynamics365Account).$promise.then(function(){l.success({title:"Dynamics365Account updated!",msg:u.dynamics365Account.name?u.dynamics365Account.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintDynamics365Account",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","dynamics365Account","userProfileSection"],angular.module("app.integrations").controller("Dynamics365AccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_FRESHDESKACCOUNT",g.freshdeskAccount=angular.copy(l),g.freshdeskAccounts=r,g.newFreshdeskAccount=!1,g.freshdeskAccount||(g.freshdeskAccount={serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_FRESHDESKACCOUNT",g.newFreshdeskAccount=!0),g.addNewFreshdeskAccount=function(){g.errors=[],d.intFreshdeskAccount.save(g.freshdeskAccount).$promise.then(function(e){g.freshdeskAccounts.unshift(e.toJSON()),o.success({title:"FreshdeskAccount properly created",msg:g.freshdeskAccount.name?g.freshdeskAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshdeskAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveFreshdeskAccount=function(){g.errors=[],d.intFreshdeskAccount.update({id:g.freshdeskAccount.id},g.freshdeskAccount).$promise.then(function(e){var n=_.find(g.freshdeskAccounts,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"FreshdeskAccount properly saved!",msg:g.freshdeskAccount.name?g.freshdeskAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshdeskAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteFreshdeskAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The freshdeskAccount will be deleted.").ariaLabel("Delete FreshdeskAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intFreshdeskAccount.delete({id:g.freshdeskAccount.id}).$promise.then(function(){_.remove(g.freshdeskAccounts,{id:g.freshdeskAccount.id}),o.success({title:"FreshdeskAccount properly deleted!",msg:(g.freshdeskAccount.name||"freshdeskAccount")+" has been deleted!"}),v(g.freshdeskAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshdeskAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","freshdeskAccounts","freshdeskAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditFreshdeskAccountDialogController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intFreshdeskField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intFreshdeskField.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intFreshdeskField.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.freshdeskAccount={},o.freshdeskConfiguration={},o.configurations=[],o.selectedFreshdeskConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.freshdeskAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intFreshdeskAccount.getConfigurations({id:o.freshdeskAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getFreshdeskConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getFreshdeskConfiguration=function(e){o.freshdeskConfiguration=o.configurations[e],o.selectedFreshdeskConfiguration=e,i.intFreshdeskConfiguration.getSubjects({id:o.freshdeskConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intFreshdeskConfiguration.getDescriptions({id:o.freshdeskConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intFreshdeskConfiguration.getFields({id:o.freshdeskConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.intFreshdeskConfiguration.getTags({id:o.freshdeskConfiguration.id}).$promise.then(function(e){o.selectedTags=e.rows?_.map(e.rows,"id"):[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditFreshdeskConfiguration=function(e,n){a.show({controller:"CreateOrEditFreshdeskConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{freshdeskConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getFreshdeskConfiguration(0)})},o.deleteFreshdeskConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the freshdeskConfiguration?").htmlContent("<b>"+(n.name||"freshdeskConfiguration")+"</b> will be deleted.").ariaLabel("delete freshdeskConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intFreshdeskConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"FreshdeskConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getFreshdeskConfiguration(0)})},function(){console.log("CANCEL")})},o.selectedTags=[],o.selectTagsChanged=function(e){i.intFreshdeskConfiguration.setTags({id:o.freshdeskConfiguration.id,ids:o.selectedTags}).$promise.then(function(){s.success({title:"Tags set!",msg:"Tags has been set!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ADDTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})},i.tag.get({nolimit:!0,sort:"name"}).$promise.then(function(e){o.tags=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}),o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditFreshdeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.freshdeskConfiguration,account:o.freshdeskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditFreshdeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.freshdeskConfiguration,account:o.freshdeskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditFreshdeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.freshdeskConfiguration,account:o.freshdeskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("FreshdeskAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_FRESHDESKCONFIGURATION",g.freshdeskConfiguration=angular.copy(l),g.configurations=r,g.newFreshdeskConfiguration=!1,g.freshdeskConfiguration||(g.freshdeskConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_FRESHDESKCONFIGURATION",g.newFreshdeskConfiguration=!0),g.addNewFreshdeskConfiguration=function(){g.errors=[],d.intFreshdeskAccount.addConfiguration({id:n.params.id},g.freshdeskConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"FreshdeskConfiguration properly created",msg:g.freshdeskConfiguration.name?g.freshdeskConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshdeskConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveFreshdeskConfiguration=function(){g.errors=[],d.intFreshdeskConfiguration.update({id:g.freshdeskConfiguration.id},g.freshdeskConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"FreshdeskConfiguration properly saved!",msg:g.freshdeskConfiguration.name?g.freshdeskConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshdeskConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteFreshdeskConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The freshdeskConfiguration will be deleted.").ariaLabel("Delete FreshdeskConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intFreshdeskConfiguration.delete({id:g.freshdeskConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.freshdeskConfiguration.id}),o.success({title:"FreshdeskConfiguration properly deleted!",msg:(g.freshdeskConfiguration.name||"freshdeskConfiguration")+" has been deleted!"}),v(g.freshdeskConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshdeskConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","freshdeskConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditFreshdeskConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intFreshdeskField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intFreshdeskField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intFreshdeskField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceDialReportColumns.push("recordingURL")}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETVARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.intFreshdeskAccount.getFields({id:l.id,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditFreshdeskAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.freshdeskAccount=c||e.params.freshdeskAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoFreshdeskAccounts=function(){e.go("app.integrations.freshdeskAccounts",{},{reload:"app.integrations.freshdeskAccounts"})},u.saveFreshdeskAccount=function(){r.intFreshdeskAccount.update({id:u.freshdeskAccount.id},u.freshdeskAccount).$promise.then(function(){l.success({title:"FreshdeskAccount updated!",msg:u.freshdeskAccount.name?u.freshdeskAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintFreshdeskAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","freshdeskAccount","userProfileSection"],angular.module("app.integrations").controller("FreshdeskAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.freshdeskAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="freshdeskAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedFreshdeskAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.integrations.freshdeskAccounts.edit",{id:e.id,freshdeskAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intFreshdeskAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"FreshdeskAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"FreshdeskAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("freshdeskAccount")+"?").htmlContent("<b>"+(e.name||"freshdeskAccount")+"</b> will be deleted.").ariaLabel("delete freshdeskAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getFreshdeskAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intFreshdeskAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="FreshdeskAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditFreshdeskAccount=function(e,n){i.show({controller:"CreateOrEditFreshdeskAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{freshdeskAccount:n,freshdeskAccounts:f.freshdeskAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteFreshdeskAccount=y,f.exportSelectedFreshdeskAccounts=function(){var e=angular.copy(f.selectedFreshdeskAccounts);return f.selectedFreshdeskAccounts=[],e},f.deleteSelectedFreshdeskAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected freshdeskAccounts?").htmlContent("<b>"+f.selectedFreshdeskAccounts.length+" selected</b> will be deleted.").ariaLabel("delete FreshdeskAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedFreshdeskAccounts.forEach(function(e){y(e)}),f.selectedFreshdeskAccounts=[]})},f.deselectFreshdeskAccounts=function(){f.selectedFreshdeskAccounts=[]},f.selectAllFreshdeskAccounts=function(){f.selectedFreshdeskAccounts=f.freshdeskAccounts.rows};var b=!0,A=1;function E(e){f.freshdeskAccounts=e||{count:0,rows:[]}}function y(e){m.intFreshdeskAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.freshdeskAccounts.rows,{id:e.id}),f.freshdeskAccounts.count-=1,f.freshdeskAccounts.rows.length||f.getFreshdeskAccounts(),p.success({title:_.startCase("FreshdeskAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintFreshdeskAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintFreshdeskAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getFreshdeskAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","freshdeskAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("FreshdeskAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_FRESHSALESACCOUNT",g.freshsalesAccount=angular.copy(l),g.freshsalesAccounts=r,g.newFreshsalesAccount=!1,g.freshsalesAccount||(g.freshsalesAccount={serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_FRESHSALESACCOUNT",g.newFreshsalesAccount=!0),g.addNewFreshsalesAccount=function(){g.errors=[],d.intFreshsalesAccount.save(g.freshsalesAccount).$promise.then(function(e){g.freshsalesAccounts.unshift(e.toJSON()),o.success({title:"FreshsalesAccount properly created",msg:g.freshsalesAccount.name?g.freshsalesAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshsalesAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshsalesAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveFreshsalesAccount=function(){g.errors=[],d.intFreshsalesAccount.update({id:g.freshsalesAccount.id},g.freshsalesAccount).$promise.then(function(e){var n=_.find(g.freshsalesAccounts,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"FreshsalesAccount properly saved!",msg:g.freshsalesAccount.name?g.freshsalesAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshsalesAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshsalesAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteFreshsalesAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The freshsalesAccount will be deleted.").ariaLabel("Delete FreshsalesAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intFreshsalesAccount.delete({id:g.freshsalesAccount.id}).$promise.then(function(){_.remove(g.freshsalesAccounts,{id:g.freshsalesAccount.id}),o.success({title:"FreshsalesAccount properly deleted!",msg:(g.freshsalesAccount.name||"freshsalesAccount")+" has been deleted!"}),v(g.freshsalesAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshsalesAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshsalesAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","freshsalesAccounts","freshsalesAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditFreshsalesAccountDialogController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intFreshsalesField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intFreshsalesField.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intFreshsalesField.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.freshsalesAccount={},o.freshsalesConfiguration={},o.configurations=[],o.selectedFreshsalesConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.freshsalesAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intFreshsalesAccount.getConfigurations({id:o.freshsalesAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getFreshsalesConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getFreshsalesConfiguration=function(e){o.freshsalesConfiguration=o.configurations[e],o.selectedFreshsalesConfiguration=e,i.intFreshsalesConfiguration.getSubjects({id:o.freshsalesConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intFreshsalesConfiguration.getDescriptions({id:o.freshsalesConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intFreshsalesConfiguration.getFields({id:o.freshsalesConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditFreshsalesConfiguration=function(e,n){a.show({controller:"CreateOrEditFreshsalesConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshsalesAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{freshsalesConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getFreshsalesConfiguration(0)})},o.deleteFreshsalesConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the freshsalesConfiguration?").htmlContent("<b>"+(n.name||"freshsalesConfiguration")+"</b> will be deleted.").ariaLabel("delete freshsalesConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intFreshsalesConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"FreshsalesConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getFreshsalesConfiguration(0)})},function(){console.log("CANCEL")})},o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditFreshsalesAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshsalesAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.freshsalesConfiguration,account:o.freshsalesAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditFreshsalesAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshsalesAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.freshsalesConfiguration,account:o.freshsalesAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditFreshsalesAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshsalesAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.freshsalesConfiguration,account:o.freshsalesAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("FreshsalesAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_FRESHSALESCONFIGURATION",g.freshsalesConfiguration=angular.copy(l),g.configurations=r,g.newFreshsalesConfiguration=!1,g.freshsalesConfiguration||(g.freshsalesConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_FRESHSALESCONFIGURATION",g.newFreshsalesConfiguration=!0),g.addNewFreshsalesConfiguration=function(){g.errors=[],d.intFreshsalesAccount.addConfiguration({id:n.params.id},g.freshsalesConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"FreshsalesConfiguration properly created",msg:g.freshsalesConfiguration.name?g.freshsalesConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshsalesConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshsalesConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveFreshsalesConfiguration=function(){g.errors=[],d.intFreshsalesConfiguration.update({id:g.freshsalesConfiguration.id},g.freshsalesConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"FreshsalesConfiguration properly saved!",msg:g.freshsalesConfiguration.name?g.freshsalesConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshsalesConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshsalesConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteFreshsalesConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The freshsalesConfiguration will be deleted.").ariaLabel("Delete FreshsalesConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intFreshsalesConfiguration.delete({id:g.freshsalesConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.freshsalesConfiguration.id}),o.success({title:"FreshsalesConfiguration properly deleted!",msg:(g.freshsalesConfiguration.name||"freshsalesConfiguration")+" has been deleted!"}),v(g.freshsalesConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshsalesConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshsalesConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","freshsalesConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditFreshsalesConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intFreshsalesField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intFreshsalesField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intFreshsalesField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceDialReportColumns.push("recordingURL")}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETVARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.intFreshsalesAccount.getFields({id:l.id,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditFreshsalesAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.freshsalesAccount=c||e.params.freshsalesAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoFreshsalesAccounts=function(){e.go("app.integrations.freshsalesAccounts",{},{reload:"app.integrations.freshsalesAccounts"})},u.saveFreshsalesAccount=function(){r.intFreshsalesAccount.update({id:u.freshsalesAccount.id},u.freshsalesAccount).$promise.then(function(){l.success({title:"FreshsalesAccount updated!",msg:u.freshsalesAccount.name?u.freshsalesAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintFreshsalesAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","freshsalesAccount","userProfileSection"],angular.module("app.integrations").controller("FreshsalesAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.freshsalesAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="freshsalesAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedFreshsalesAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.integrations.freshsalesAccounts.edit",{id:e.id,freshsalesAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intFreshsalesAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"FreshsalesAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"FreshsalesAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("freshsalesAccount")+"?").htmlContent("<b>"+(e.name||"freshsalesAccount")+"</b> will be deleted.").ariaLabel("delete freshsalesAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getFreshsalesAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intFreshsalesAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="FreshsalesAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditFreshsalesAccount=function(e,n){i.show({controller:"CreateOrEditFreshsalesAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshsalesAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{freshsalesAccount:n,freshsalesAccounts:f.freshsalesAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteFreshsalesAccount=y,f.exportSelectedFreshsalesAccounts=function(){var e=angular.copy(f.selectedFreshsalesAccounts);return f.selectedFreshsalesAccounts=[],e},f.deleteSelectedFreshsalesAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected freshsalesAccounts?").htmlContent("<b>"+f.selectedFreshsalesAccounts.length+" selected</b> will be deleted.").ariaLabel("delete FreshsalesAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedFreshsalesAccounts.forEach(function(e){y(e)}),f.selectedFreshsalesAccounts=[]})},f.deselectFreshsalesAccounts=function(){f.selectedFreshsalesAccounts=[]},f.selectAllFreshsalesAccounts=function(){f.selectedFreshsalesAccounts=f.freshsalesAccounts.rows};var b=!0,A=1;function E(e){f.freshsalesAccounts=e||{count:0,rows:[]}}function y(e){m.intFreshsalesAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.freshsalesAccounts.rows,{id:e.id}),f.freshsalesAccounts.count-=1,f.freshsalesAccounts.rows.length||f.getFreshsalesAccounts(),p.success({title:_.startCase("FreshsalesAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintFreshsalesAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintFreshsalesAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getFreshsalesAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","freshsalesAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("FreshsalesAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_SALESFORCEACCOUNT",g.salesforceAccount=angular.copy(l),g.salesforceAccounts=r,g.newSalesforceAccount=!1,g.salesforceAccount||(g.salesforceAccount={type:"integrationTab",serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_SALESFORCEACCOUNT",g.newSalesforceAccount=!0),g.addNewSalesforceAccount=function(){g.errors=[],d.intSalesforceAccount.save(g.salesforceAccount).$promise.then(function(e){g.salesforceAccounts.unshift(e.toJSON()),o.success({title:"SalesforceAccount properly created",msg:g.salesforceAccount.name?g.salesforceAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSalesforceAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSalesforceAccount=function(){g.errors=[],d.intSalesforceAccount.update({id:g.salesforceAccount.id},g.salesforceAccount).$promise.then(function(e){var n=_.find(g.salesforceAccounts,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"SalesforceAccount properly saved!",msg:g.salesforceAccount.name?g.salesforceAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSalesforceAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSalesforceAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The salesforceAccount will be deleted.").ariaLabel("Delete SalesforceAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intSalesforceAccount.delete({id:g.salesforceAccount.id}).$promise.then(function(){_.remove(g.salesforceAccounts,{id:g.salesforceAccount.id}),o.success({title:"SalesforceAccount properly deleted!",msg:(g.salesforceAccount.name||"salesforceAccount")+" has been deleted!"}),v(g.salesforceAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSalesforceAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","salesforceAccounts","salesforceAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditSalesforceAccountDialogController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function n(){return"Case"===o.salesforceConfiguration.ticketType&&("lead"===o.salesforceConfiguration.moduleCreate||_.includes(["lead","contact_lead","account_contact_lead"],o.salesforceConfiguration.moduleSearch))}function r(){return _.includes(["lead","contact_lead","account_contact_lead"],o.salesforceConfiguration.moduleSearch)}function l(){return _.includes(["contact","contact_lead","account_contact_lead"],o.salesforceConfiguration.moduleSearch)}function d(){return _.includes(["account","account_contact_lead"],o.salesforceConfiguration.moduleSearch)}function c(){return i.intSalesforceConfiguration.update({id:o.salesforceConfiguration.id},o.salesforceConfiguration).$promise.then(function(){s.success({title:"Module updated!",msg:"Module has been updated!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function m(e){i.intSalesforceField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function u(e){i.intSalesforceField.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function p(e){i.intSalesforceField.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.salesforceAccount={},o.salesforceConfiguration={},o.configurations=[],o.selectedSalesforceConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.salesforceAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intSalesforceAccount.getConfigurations({id:o.salesforceAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getSalesforceConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getSalesforceConfiguration=function(e){o.salesforceConfiguration=o.configurations[e],o.salesforceConfiguration.isLead=n(),o.salesforceConfiguration.isLeadSearch=r(),o.salesforceConfiguration.isContactSearch=l(),o.salesforceConfiguration.isAccountSearch=d(),o.selectedSalesforceConfiguration=e,i.intSalesforceConfiguration.getSubjects({id:o.salesforceConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intSalesforceConfiguration.getDescriptions({id:o.salesforceConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intSalesforceConfiguration.getFields({id:o.salesforceConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditSalesforceConfiguration=function(e,n){a.show({controller:"CreateOrEditSalesforceConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{salesforceConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getSalesforceConfiguration(0)})},o.deleteSalesforceConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the salesforceConfiguration?").htmlContent("<b>"+(n.name||"salesforceConfiguration")+"</b> will be deleted.").ariaLabel("delete salesforceConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intSalesforceConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"SalesforceConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getSalesforceConfiguration(0)})},function(){console.log("CANCEL")})},o.selectChangedAdvanced=function(){o.salesforceConfiguration.isLead=n(),o.salesforceConfiguration.isLeadSearch=r(),o.salesforceConfiguration.isContactSearch=l(),o.salesforceConfiguration.isAccountSearch=d(),c()},o.salesforceConfiguration.isLead=!1,o.salesforceConfiguration.isLeadSearch=!1,o.salesforceConfiguration.isContactSearch=!1,o.salesforceConfiguration.isAccountSearch=!1,o.checkIsLead=n,o.checkIsLeadSearch=r,o.checkIsContactSearch=l,o.checkIsAccountSearch=d,o.saveSalesforceConfiguration=c,o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditSalesforceAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.salesforceConfiguration,account:o.salesforceAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){m(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){m(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditSalesforceAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.salesforceConfiguration,account:o.salesforceAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){u(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){u(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditSalesforceAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.salesforceConfiguration,account:o.salesforceAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){p(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){p(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("SalesforceAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_SALESFORCECONFIGURATION",g.salesforceConfiguration=angular.copy(l),g.configurations=r,g.newSalesforceConfiguration=!1,g.salesforceConfiguration||(g.salesforceConfiguration={channel:"voice",type:"inbound",ticketType:"Task"},g.title="INTEGRATIONS.NEW_SALESFORCECONFIGURATION",g.newSalesforceConfiguration=!0),g.addNewSalesforceConfiguration=function(){g.errors=[],d.intSalesforceAccount.addConfiguration({id:n.params.id},g.salesforceConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"SalesforceConfiguration properly created",msg:g.salesforceConfiguration.name?g.salesforceConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSalesforceConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSalesforceConfiguration=function(){g.errors=[],d.intSalesforceConfiguration.update({id:g.salesforceConfiguration.id},g.salesforceConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"SalesforceConfiguration properly saved!",msg:g.salesforceConfiguration.name?g.salesforceConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSalesforceConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSalesforceConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The salesforceConfiguration will be deleted.").ariaLabel("Delete SalesforceConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intSalesforceConfiguration.delete({id:g.salesforceConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.salesforceConfiguration.id}),o.success({title:"SalesforceConfiguration properly deleted!",msg:(g.salesforceConfiguration.name||"salesforceConfiguration")+" has been deleted!"}),v(g.salesforceConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSalesforceConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","salesforceConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditSalesforceConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intSalesforceField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intSalesforceField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intSalesforceField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceDialReportColumns.push("recordingURL")}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETVARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.intSalesforceAccount.getFields({id:l.id,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditSalesforceAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.salesforceAccount=c||e.params.salesforceAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoSalesforceAccounts=function(){e.go("app.integrations.salesforceAccounts",{},{reload:"app.integrations.salesforceAccounts"})},u.saveSalesforceAccount=function(){r.intSalesforceAccount.update({id:u.salesforceAccount.id},u.salesforceAccount).$promise.then(function(){l.success({title:"SalesforceAccount updated!",msg:u.salesforceAccount.name?u.salesforceAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintSalesforceAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","salesforceAccount","userProfileSection"],angular.module("app.integrations").controller("SalesforceAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.salesforceAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="salesforceAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedSalesforceAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,type,username,remoteUri,password,clientId,clientSecret,securityToken,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.arraytype=_.keyBy([{option:"Integration_Tab",value:"'integrationTab'"},{option:"New_Tab",value:"'newTab'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.integrations.salesforceAccounts.edit",{id:e.id,salesforceAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intSalesforceAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"SalesforceAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"SalesforceAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("salesforceAccount")+"?").htmlContent("<b>"+(e.name||"salesforceAccount")+"</b> will be deleted.").ariaLabel("delete salesforceAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getSalesforceAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intSalesforceAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="SalesforceAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditSalesforceAccount=function(e,n){i.show({controller:"CreateOrEditSalesforceAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{salesforceAccount:n,salesforceAccounts:f.salesforceAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteSalesforceAccount=y,f.exportSelectedSalesforceAccounts=function(){var e=angular.copy(f.selectedSalesforceAccounts);return f.selectedSalesforceAccounts=[],e},f.deleteSelectedSalesforceAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected salesforceAccounts?").htmlContent("<b>"+f.selectedSalesforceAccounts.length+" selected</b> will be deleted.").ariaLabel("delete SalesforceAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedSalesforceAccounts.forEach(function(e){y(e)}),f.selectedSalesforceAccounts=[]})},f.deselectSalesforceAccounts=function(){f.selectedSalesforceAccounts=[]},f.selectAllSalesforceAccounts=function(){f.selectedSalesforceAccounts=f.salesforceAccounts.rows};var b=!0,A=1;function E(e){f.salesforceAccounts=e||{count:0,rows:[]}}function y(e){m.intSalesforceAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.salesforceAccounts.rows,{id:e.id}),f.salesforceAccounts.count-=1,f.salesforceAccounts.rows.length||f.getSalesforceAccounts(),p.success({title:_.startCase("SalesforceAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintSalesforceAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintSalesforceAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getSalesforceAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","salesforceAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("SalesforceAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_SERVICENOWACCOUNT",g.servicenowAccount=angular.copy(l),g.servicenowAccounts=r,g.newServicenowAccount=!1,g.servicenowAccount||(g.servicenowAccount={serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_SERVICENOWACCOUNT",g.newServicenowAccount=!0),g.addNewServicenowAccount=function(){g.errors=[],d.intServicenowAccount.save(g.servicenowAccount).$promise.then(function(e){g.servicenowAccounts.unshift(e.toJSON()),o.success({title:"ServicenowAccount properly created",msg:g.servicenowAccount.name?g.servicenowAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intServicenowAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intServicenowAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveServicenowAccount=function(){g.errors=[],d.intServicenowAccount.update({id:g.servicenowAccount.id},g.servicenowAccount).$promise.then(function(e){var n=_.find(g.servicenowAccounts,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"ServicenowAccount properly saved!",msg:g.servicenowAccount.name?g.servicenowAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intServicenowAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intServicenowAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteServicenowAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The servicenowAccount will be deleted.").ariaLabel("Delete ServicenowAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intServicenowAccount.delete({id:g.servicenowAccount.id}).$promise.then(function(){_.remove(g.servicenowAccounts,{id:g.servicenowAccount.id}),o.success({title:"ServicenowAccount properly deleted!",msg:(g.servicenowAccount.name||"servicenowAccount")+" has been deleted!"}),v(g.servicenowAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intServicenowAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intServicenowAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","servicenowAccounts","servicenowAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditServicenowAccountDialogController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intServicenowField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intServicenowField.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intServicenowField.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.servicenowAccount={},o.servicenowConfiguration={},o.configurations=[],o.selectedServicenowConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.servicenowAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intServicenowAccount.getConfigurations({id:o.servicenowAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getServicenowConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getServicenowConfiguration=function(e){o.servicenowConfiguration=o.configurations[e],o.selectedServicenowConfiguration=e,i.intServicenowConfiguration.getSubjects({id:o.servicenowConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intServicenowConfiguration.getDescriptions({id:o.servicenowConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intServicenowConfiguration.getFields({id:o.servicenowConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditServicenowConfiguration=function(e,n){a.show({controller:"CreateOrEditServicenowConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/servicenowAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{servicenowConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getServicenowConfiguration(0)})},o.deleteServicenowConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the servicenowConfiguration?").htmlContent("<b>"+(n.name||"servicenowConfiguration")+"</b> will be deleted.").ariaLabel("delete servicenowConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intServicenowConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"ServicenowConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getServicenowConfiguration(0)})},function(){console.log("CANCEL")})},o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditServicenowAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/servicenowAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.servicenowConfiguration,account:o.servicenowAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditServicenowAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/servicenowAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.servicenowConfiguration,account:o.servicenowAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditServicenowAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/servicenowAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.servicenowConfiguration,account:o.servicenowAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("ServicenowAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_SERVICENOWCONFIGURATION",g.servicenowConfiguration=angular.copy(l),g.configurations=r,g.newServicenowConfiguration=!1,g.servicenowConfiguration||(g.servicenowConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_SERVICENOWCONFIGURATION",g.newServicenowConfiguration=!0),g.addNewServicenowConfiguration=function(){g.errors=[],d.intServicenowAccount.addConfiguration({id:n.params.id},g.servicenowConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"ServicenowConfiguration properly created",msg:g.servicenowConfiguration.name?g.servicenowConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intServicenowConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intServicenowConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveServicenowConfiguration=function(){g.errors=[],d.intServicenowConfiguration.update({id:g.servicenowConfiguration.id},g.servicenowConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"ServicenowConfiguration properly saved!",msg:g.servicenowConfiguration.name?g.servicenowConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intServicenowConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intServicenowConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteServicenowConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The servicenowConfiguration will be deleted.").ariaLabel("Delete ServicenowConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intServicenowConfiguration.delete({id:g.servicenowConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.servicenowConfiguration.id}),o.success({title:"ServicenowConfiguration properly deleted!",msg:(g.servicenowConfiguration.name||"servicenowConfiguration")+" has been deleted!"}),v(g.servicenowConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intServicenowConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intServicenowConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","servicenowConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditServicenowConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intServicenowField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intServicenowField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intServicenowField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceDialReportColumns.push("recordingURL")}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETVARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.intServicenowAccount.getFields({id:l.id,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditServicenowAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.servicenowAccount=c||e.params.servicenowAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoServicenowAccounts=function(){e.go("app.integrations.servicenowAccounts",{},{reload:"app.integrations.servicenowAccounts"})},u.saveServicenowAccount=function(){r.intServicenowAccount.update({id:u.servicenowAccount.id},u.servicenowAccount).$promise.then(function(){l.success({title:"ServicenowAccount updated!",msg:u.servicenowAccount.name?u.servicenowAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintServicenowAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","servicenowAccount","userProfileSection"],angular.module("app.integrations").controller("ServicenowAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.servicenowAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="servicenowAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedServicenowAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,username,password,email,remoteUri,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.integrations.servicenowAccounts.edit",{id:e.id,servicenowAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intServicenowAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"ServicenowAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"ServicenowAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("servicenowAccount")+"?").htmlContent("<b>"+(e.name||"servicenowAccount")+"</b> will be deleted.").ariaLabel("delete servicenowAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getServicenowAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intServicenowAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ServicenowAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditServicenowAccount=function(e,n){i.show({controller:"CreateOrEditServicenowAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/servicenowAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{servicenowAccount:n,servicenowAccounts:f.servicenowAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteServicenowAccount=y,f.exportSelectedServicenowAccounts=function(){var e=angular.copy(f.selectedServicenowAccounts);return f.selectedServicenowAccounts=[],e},f.deleteSelectedServicenowAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected servicenowAccounts?").htmlContent("<b>"+f.selectedServicenowAccounts.length+" selected</b> will be deleted.").ariaLabel("delete ServicenowAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedServicenowAccounts.forEach(function(e){y(e)}),f.selectedServicenowAccounts=[]})},f.deselectServicenowAccounts=function(){f.selectedServicenowAccounts=[]},f.selectAllServicenowAccounts=function(){f.selectedServicenowAccounts=f.servicenowAccounts.rows};var b=!0,A=1;function E(e){f.servicenowAccounts=e||{count:0,rows:[]}}function y(e){m.intServicenowAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.servicenowAccounts.rows,{id:e.id}),f.servicenowAccounts.count-=1,f.servicenowAccounts.rows.length||f.getServicenowAccounts(),p.success({title:_.startCase("ServicenowAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintServicenowAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintServicenowAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getServicenowAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","servicenowAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("ServicenowAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_SUGARCRMACCOUNT",g.sugarcrmAccount=angular.copy(l),g.sugarcrmAccounts=r,g.newSugarcrmAccount=!1,g.sugarcrmAccount||(g.sugarcrmAccount={serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_SUGARCRMACCOUNT",g.newSugarcrmAccount=!0),g.addNewSugarcrmAccount=function(){g.errors=[],d.intSugarcrmAccount.save(g.sugarcrmAccount).$promise.then(function(e){g.sugarcrmAccounts.unshift(e.toJSON()),o.success({title:"SugarcrmAccount properly created",msg:g.sugarcrmAccount.name?g.sugarcrmAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSugarcrmAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSugarcrmAccount=function(){g.errors=[],d.intSugarcrmAccount.update({id:g.sugarcrmAccount.id},g.sugarcrmAccount).$promise.then(function(e){var n=_.find(g.sugarcrmAccounts,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"SugarcrmAccount properly saved!",msg:g.sugarcrmAccount.name?g.sugarcrmAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSugarcrmAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSugarcrmAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The sugarcrmAccount will be deleted.").ariaLabel("Delete SugarcrmAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intSugarcrmAccount.delete({id:g.sugarcrmAccount.id}).$promise.then(function(){_.remove(g.sugarcrmAccounts,{id:g.sugarcrmAccount.id}),o.success({title:"SugarcrmAccount properly deleted!",msg:(g.sugarcrmAccount.name||"sugarcrmAccount")+" has been deleted!"}),v(g.sugarcrmAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSugarcrmAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","sugarcrmAccounts","sugarcrmAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditSugarcrmAccountDialogController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intSugarcrmField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intSugarcrmField.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intSugarcrmField.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.sugarcrmAccount={},o.sugarcrmConfiguration={},o.configurations=[],o.selectedSugarcrmConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.sugarcrmAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intSugarcrmAccount.getConfigurations({id:o.sugarcrmAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getSugarcrmConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getSugarcrmConfiguration=function(e){o.sugarcrmConfiguration=o.configurations[e],o.selectedSugarcrmConfiguration=e,i.intSugarcrmConfiguration.getSubjects({id:o.sugarcrmConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intSugarcrmConfiguration.getDescriptions({id:o.sugarcrmConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intSugarcrmConfiguration.getFields({id:o.sugarcrmConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditSugarcrmConfiguration=function(e,n){a.show({controller:"CreateOrEditSugarcrmConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{sugarcrmConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getSugarcrmConfiguration(0)})},o.deleteSugarcrmConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the sugarcrmConfiguration?").htmlContent("<b>"+(n.name||"sugarcrmConfiguration")+"</b> will be deleted.").ariaLabel("delete sugarcrmConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intSugarcrmConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"SugarcrmConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getSugarcrmConfiguration(0)})},function(){console.log("CANCEL")})},o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditSugarcrmAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.sugarcrmConfiguration,account:o.sugarcrmAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditSugarcrmAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.sugarcrmConfiguration,account:o.sugarcrmAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditSugarcrmAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.sugarcrmConfiguration,account:o.sugarcrmAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("SugarcrmAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_SUGARCRMCONFIGURATION",g.sugarcrmConfiguration=angular.copy(l),g.configurations=r,g.newSugarcrmConfiguration=!1,g.sugarcrmConfiguration||(g.sugarcrmConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_SUGARCRMCONFIGURATION",g.newSugarcrmConfiguration=!0),g.addNewSugarcrmConfiguration=function(){g.errors=[],d.intSugarcrmAccount.addConfiguration({id:n.params.id},g.sugarcrmConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"SugarcrmConfiguration properly created",msg:g.sugarcrmConfiguration.name?g.sugarcrmConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSugarcrmConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSugarcrmConfiguration=function(){g.errors=[],d.intSugarcrmConfiguration.update({id:g.sugarcrmConfiguration.id},g.sugarcrmConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"SugarcrmConfiguration properly saved!",msg:g.sugarcrmConfiguration.name?g.sugarcrmConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSugarcrmConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSugarcrmConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The sugarcrmConfiguration will be deleted.").ariaLabel("Delete SugarcrmConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intSugarcrmConfiguration.delete({id:g.sugarcrmConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.sugarcrmConfiguration.id}),o.success({title:"SugarcrmConfiguration properly deleted!",msg:(g.sugarcrmConfiguration.name||"sugarcrmConfiguration")+" has been deleted!"}),v(g.sugarcrmConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSugarcrmConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","sugarcrmConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditSugarcrmConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intSugarcrmField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intSugarcrmField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intSugarcrmField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceDialReportColumns.push("recordingURL")}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETVARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.intSugarcrmAccount.getFields({id:l.id,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditSugarcrmAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.sugarcrmAccount=c||e.params.sugarcrmAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoSugarcrmAccounts=function(){e.go("app.integrations.sugarcrmAccounts",{},{reload:"app.integrations.sugarcrmAccounts"})},u.saveSugarcrmAccount=function(){r.intSugarcrmAccount.update({id:u.sugarcrmAccount.id},u.sugarcrmAccount).$promise.then(function(){l.success({title:"SugarcrmAccount updated!",msg:u.sugarcrmAccount.name?u.sugarcrmAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintSugarcrmAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","sugarcrmAccount","userProfileSection"],angular.module("app.integrations").controller("SugarcrmAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.sugarcrmAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="sugarcrmAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedSugarcrmAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,username,remoteUri,password,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.integrations.sugarcrmAccounts.edit",{id:e.id,sugarcrmAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intSugarcrmAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"SugarcrmAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"SugarcrmAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("sugarcrmAccount")+"?").htmlContent("<b>"+(e.name||"sugarcrmAccount")+"</b> will be deleted.").ariaLabel("delete sugarcrmAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getSugarcrmAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intSugarcrmAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="SugarcrmAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditSugarcrmAccount=function(e,n){i.show({controller:"CreateOrEditSugarcrmAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{sugarcrmAccount:n,sugarcrmAccounts:f.sugarcrmAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteSugarcrmAccount=y,f.exportSelectedSugarcrmAccounts=function(){var e=angular.copy(f.selectedSugarcrmAccounts);return f.selectedSugarcrmAccounts=[],e},f.deleteSelectedSugarcrmAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected sugarcrmAccounts?").htmlContent("<b>"+f.selectedSugarcrmAccounts.length+" selected</b> will be deleted.").ariaLabel("delete SugarcrmAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedSugarcrmAccounts.forEach(function(e){y(e)}),f.selectedSugarcrmAccounts=[]})},f.deselectSugarcrmAccounts=function(){f.selectedSugarcrmAccounts=[]},f.selectAllSugarcrmAccounts=function(){f.selectedSugarcrmAccounts=f.sugarcrmAccounts.rows};var b=!0,A=1;function E(e){f.sugarcrmAccounts=e||{count:0,rows:[]}}function y(e){m.intSugarcrmAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.sugarcrmAccounts.rows,{id:e.id}),f.sugarcrmAccounts.count-=1,f.sugarcrmAccounts.rows.length||f.getSugarcrmAccounts(),p.success({title:_.startCase("SugarcrmAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintSugarcrmAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintSugarcrmAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getSugarcrmAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","sugarcrmAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("SugarcrmAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_VTIGERACCOUNT",g.vtigerAccount=angular.copy(l),g.vtigerAccounts=r,g.newVtigerAccount=!1,g.vtigerAccount||(g.vtigerAccount={serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_VTIGERACCOUNT",g.newVtigerAccount=!0),g.addNewVtigerAccount=function(){g.errors=[],d.intVtigerAccount.save(g.vtigerAccount).$promise.then(function(e){g.vtigerAccounts.unshift(e.toJSON()),o.success({title:"VtigerAccount properly created",msg:g.vtigerAccount.name?g.vtigerAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intVtigerAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intVtigerAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveVtigerAccount=function(){g.errors=[],d.intVtigerAccount.update({id:g.vtigerAccount.id},g.vtigerAccount).$promise.then(function(e){var n=_.find(g.vtigerAccounts,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"VtigerAccount properly saved!",msg:g.vtigerAccount.name?g.vtigerAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intVtigerAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intVtigerAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteVtigerAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The vtigerAccount will be deleted.").ariaLabel("Delete VtigerAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intVtigerAccount.delete({id:g.vtigerAccount.id}).$promise.then(function(){_.remove(g.vtigerAccounts,{id:g.vtigerAccount.id}),o.success({title:"VtigerAccount properly deleted!",msg:(g.vtigerAccount.name||"vtigerAccount")+" has been deleted!"}),v(g.vtigerAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intVtigerAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intVtigerAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","vtigerAccounts","vtigerAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditVtigerAccountDialogController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intVtigerField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intVtigerField.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intVtigerField.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.vtigerAccount={},o.vtigerConfiguration={},o.configurations=[],o.selectedVtigerConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.vtigerAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intVtigerAccount.getConfigurations({id:o.vtigerAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getVtigerConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getVtigerConfiguration=function(e){o.vtigerConfiguration=o.configurations[e],o.selectedVtigerConfiguration=e,i.intVtigerConfiguration.getSubjects({id:o.vtigerConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intVtigerConfiguration.getDescriptions({id:o.vtigerConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intVtigerConfiguration.getFields({id:o.vtigerConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditVtigerConfiguration=function(e,n){a.show({controller:"CreateOrEditVtigerConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/vtigerAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{vtigerConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getVtigerConfiguration(0)})},o.deleteVtigerConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the vtigerConfiguration?").htmlContent("<b>"+(n.name||"vtigerConfiguration")+"</b> will be deleted.").ariaLabel("delete vtigerConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intVtigerConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"VtigerConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getVtigerConfiguration(0)})},function(){console.log("CANCEL")})},o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditVtigerAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/vtigerAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.vtigerConfiguration,account:o.vtigerAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditVtigerAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/vtigerAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.vtigerConfiguration,account:o.vtigerAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditVtigerAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/vtigerAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.vtigerConfiguration,account:o.vtigerAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("VtigerAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_VTIGERCONFIGURATION",g.vtigerConfiguration=angular.copy(l),g.configurations=r,g.newVtigerConfiguration=!1,g.vtigerConfiguration||(g.vtigerConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_VTIGERCONFIGURATION",g.newVtigerConfiguration=!0),g.addNewVtigerConfiguration=function(){g.errors=[],d.intVtigerAccount.addConfiguration({id:n.params.id},g.vtigerConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"VtigerConfiguration properly created",msg:g.vtigerConfiguration.name?g.vtigerConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intVtigerConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intVtigerConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveVtigerConfiguration=function(){g.errors=[],d.intVtigerConfiguration.update({id:g.vtigerConfiguration.id},g.vtigerConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"VtigerConfiguration properly saved!",msg:g.vtigerConfiguration.name?g.vtigerConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intVtigerConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intVtigerConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteVtigerConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The vtigerConfiguration will be deleted.").ariaLabel("Delete VtigerConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intVtigerConfiguration.delete({id:g.vtigerConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.vtigerConfiguration.id}),o.success({title:"VtigerConfiguration properly deleted!",msg:(g.vtigerConfiguration.name||"vtigerConfiguration")+" has been deleted!"}),v(g.vtigerConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intVtigerConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intVtigerConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","vtigerConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditVtigerConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intVtigerField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intVtigerField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intVtigerField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceDialReportColumns.push("recordingURL")}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETVARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.intVtigerAccount.getFields({id:l.id,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditVtigerAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.vtigerAccount=c||e.params.vtigerAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoVtigerAccounts=function(){e.go("app.integrations.vtigerAccounts",{},{reload:"app.integrations.vtigerAccounts"})},u.saveVtigerAccount=function(){r.intVtigerAccount.update({id:u.vtigerAccount.id},u.vtigerAccount).$promise.then(function(){l.success({title:"VtigerAccount updated!",msg:u.vtigerAccount.name?u.vtigerAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintVtigerAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","vtigerAccount","userProfileSection"],angular.module("app.integrations").controller("VtigerAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.vtigerAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="vtigerAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedVtigerAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,description,username,accessKey,remoteUri,serverUrl",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.integrations.vtigerAccounts.edit",{id:e.id,vtigerAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intVtigerAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"VtigerAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"VtigerAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("vtigerAccount")+"?").htmlContent("<b>"+(e.name||"vtigerAccount")+"</b> will be deleted.").ariaLabel("delete vtigerAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getVtigerAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intVtigerAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="VtigerAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditVtigerAccount=function(e,n){i.show({controller:"CreateOrEditVtigerAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/vtigerAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{vtigerAccount:n,vtigerAccounts:f.vtigerAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteVtigerAccount=y,f.exportSelectedVtigerAccounts=function(){var e=angular.copy(f.selectedVtigerAccounts);return f.selectedVtigerAccounts=[],e},f.deleteSelectedVtigerAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected vtigerAccounts?").htmlContent("<b>"+f.selectedVtigerAccounts.length+" selected</b> will be deleted.").ariaLabel("delete VtigerAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedVtigerAccounts.forEach(function(e){y(e)}),f.selectedVtigerAccounts=[]})},f.deselectVtigerAccounts=function(){f.selectedVtigerAccounts=[]},f.selectAllVtigerAccounts=function(){f.selectedVtigerAccounts=f.vtigerAccounts.rows};var b=!0,A=1;function E(e){f.vtigerAccounts=e||{count:0,rows:[]}}function y(e){m.intVtigerAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.vtigerAccounts.rows,{id:e.id}),f.vtigerAccounts.count-=1,f.vtigerAccounts.rows.length||f.getVtigerAccounts(),p.success({title:_.startCase("VtigerAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintVtigerAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintVtigerAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getVtigerAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","vtigerAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("VtigerAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_ZENDESKACCOUNT",g.zendeskAccount=angular.copy(l),g.zendeskAccounts=r,g.newZendeskAccount=!1,g.zendeskAccount||(g.zendeskAccount={type:"integrationTab",authType:"password",serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_ZENDESKACCOUNT",g.newZendeskAccount=!0),g.addNewZendeskAccount=function(){g.errors=[],d.intZendeskAccount.save(g.zendeskAccount).$promise.then(function(e){g.zendeskAccounts.unshift(e.toJSON()),o.success({title:"ZendeskAccount properly created",msg:g.zendeskAccount.name?g.zendeskAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZendeskAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveZendeskAccount=function(){g.errors=[],d.intZendeskAccount.update({id:g.zendeskAccount.id},g.zendeskAccount).$promise.then(function(e){var n=_.find(g.zendeskAccounts,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"ZendeskAccount properly saved!",msg:g.zendeskAccount.name?g.zendeskAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZendeskAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteZendeskAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The zendeskAccount will be deleted.").ariaLabel("Delete ZendeskAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intZendeskAccount.delete({id:g.zendeskAccount.id}).$promise.then(function(){_.remove(g.zendeskAccounts,{id:g.zendeskAccount.id}),o.success({title:"ZendeskAccount properly deleted!",msg:(g.zendeskAccount.name||"zendeskAccount")+" has been deleted!"}),v(g.zendeskAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZendeskAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","zendeskAccounts","zendeskAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditZendeskAccountDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intZendeskField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intZendeskField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intZendeskField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceDialReportColumns.push("recordingURL")}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETVARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.intZendeskAccount.getFields({id:l.id,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditZendeskAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.zendeskAccount=c||e.params.zendeskAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoZendeskAccounts=function(){e.go("app.integrations.zendeskAccounts",{},{reload:"app.integrations.zendeskAccounts"})},u.saveZendeskAccount=function(){r.intZendeskAccount.update({id:u.zendeskAccount.id},u.zendeskAccount).$promise.then(function(){l.success({title:"ZendeskAccount updated!",msg:u.zendeskAccount.name?u.zendeskAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintZendeskAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","zendeskAccount","userProfileSection"],angular.module("app.integrations").controller("ZendeskAccountController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intZendeskField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intZendeskField.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intZendeskField.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.zendeskAccount={},o.zendeskConfiguration={},o.zendeskConfigurations=[],o.selectedZendeskConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.zendeskAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intZendeskAccount.getConfigurations({id:o.zendeskAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.zendeskConfigurations=e.rows?e.rows:[],o.zendeskConfigurations.length&&o.getZendeskConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getZendeskConfiguration=function(e){o.zendeskConfiguration=o.zendeskConfigurations[e],o.selectedZendeskConfiguration=e,i.intZendeskConfiguration.getSubjects({id:o.zendeskConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intZendeskConfiguration.getDescriptions({id:o.zendeskConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intZendeskConfiguration.getFields({id:o.zendeskConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.intZendeskConfiguration.getTags({id:o.zendeskConfiguration.id}).$promise.then(function(e){o.selectedTags=e.rows?_.map(e.rows,"id"):[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditZendeskConfiguration=function(e,n){a.show({controller:"CreateOrEditZendeskConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/edit/zendeskConfigurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{zendeskConfiguration:n,zendeskConfigurations:o.zendeskConfigurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getZendeskConfiguration(0)})},o.deleteZendeskConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the zendeskConfiguration?").htmlContent("<b>"+(n.name||"zendeskConfiguration")+"</b> will be deleted.").ariaLabel("delete zendeskConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intZendeskConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.zendeskConfigurations,{id:n.id}),s.success({title:"ZendeskConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getZendeskConfiguration(0)})},function(){console.log("CANCEL")})},o.selectedTags=[],o.selectTagsChanged=function(e){i.intZendeskConfiguration.setTags({id:o.zendeskConfiguration.id,ids:o.selectedTags}).$promise.then(function(){s.success({title:"Tags set!",msg:"Tags has been set!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ADDTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})},i.tag.get({nolimit:!0,sort:"name"}).$promise.then(function(e){o.tags=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}),o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditZendeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.zendeskConfiguration,account:o.zendeskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditZendeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.zendeskConfiguration,account:o.zendeskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditZendeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.zendeskConfiguration,account:o.zendeskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("ZendeskAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_ZENDESKCONFIGURATION",g.zendeskConfiguration=angular.copy(l),g.zendeskConfigurations=r,g.newZendeskConfiguration=!1,g.zendeskConfiguration||(g.zendeskConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_ZENDESKCONFIGURATION",g.newZendeskConfiguration=!0),g.addNewZendeskConfiguration=function(){g.errors=[],d.intZendeskAccount.addConfiguration({id:n.params.id},g.zendeskConfiguration).$promise.then(function(e){g.zendeskConfigurations.unshift(e.toJSON()),o.success({title:"ZendeskConfiguration properly created",msg:g.zendeskConfiguration.name?g.zendeskConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZendeskConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveZendeskConfiguration=function(){g.errors=[],d.intZendeskConfiguration.update({id:g.zendeskConfiguration.id},g.zendeskConfiguration).$promise.then(function(e){var n=_.find(g.zendeskConfigurations,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"ZendeskConfiguration properly saved!",msg:g.zendeskConfiguration.name?g.zendeskConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZendeskConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteZendeskConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The zendeskConfiguration will be deleted.").ariaLabel("Delete ZendeskConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intZendeskConfiguration.delete({id:g.zendeskConfiguration.id}).$promise.then(function(){_.remove(g.zendeskConfigurations,{id:g.zendeskConfiguration.id}),o.success({title:"ZendeskConfiguration properly deleted!",msg:(g.zendeskConfiguration.name||"zendeskConfiguration")+" has been deleted!"}),v(g.zendeskConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZendeskConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","zendeskConfigurations","zendeskConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditZendeskConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.zendeskAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="zendeskAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedZendeskAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,type,username,remoteUri,authType,password,token,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.arraytype=_.keyBy([{option:"Integration_Tab",value:"'integrationTab'"},{option:"New_Tab",value:"'newTab'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayauthType=_.keyBy([{option:"Password",value:"'password'"},{option:"Token",value:"'token'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.integrations.zendeskAccounts.edit",{id:e.id,zendeskAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intZendeskAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"ZendeskAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"ZendeskAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("zendeskAccount")+"?").htmlContent("<b>"+(e.name||"zendeskAccount")+"</b> will be deleted.").ariaLabel("delete zendeskAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getZendeskAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intZendeskAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ZendeskAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditZendeskAccount=function(e,n){i.show({controller:"CreateOrEditZendeskAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{zendeskAccount:n,zendeskAccounts:f.zendeskAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteZendeskAccount=y,f.exportSelectedZendeskAccounts=function(){var e=angular.copy(f.selectedZendeskAccounts);return f.selectedZendeskAccounts=[],e},f.deleteSelectedZendeskAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected zendeskAccounts?").htmlContent("<b>"+f.selectedZendeskAccounts.length+" selected</b> will be deleted.").ariaLabel("delete ZendeskAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedZendeskAccounts.forEach(function(e){y(e)}),f.selectedZendeskAccounts=[]})},f.deselectZendeskAccounts=function(){f.selectedZendeskAccounts=[]},f.selectAllZendeskAccounts=function(){f.selectedZendeskAccounts=f.zendeskAccounts.rows};var b=!0,A=1;function E(e){f.zendeskAccounts=e||{count:0,rows:[]}}function y(e){m.intZendeskAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.zendeskAccounts.rows,{id:e.id}),f.zendeskAccounts.count-=1,f.zendeskAccounts.rows.length||f.getZendeskAccounts(),p.success({title:_.startCase("ZendeskAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintZendeskAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintZendeskAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getZendeskAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","zendeskAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("ZendeskAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_ZOHOACCOUNT",g.zohoAccount=angular.copy(l),g.zohoAccounts=r,g.newZohoAccount=!1,g.zohoAccount||(g.zohoAccount={host:"zoho.com",zone:"EU",serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_ZOHOACCOUNT",g.newZohoAccount=!0),g.addNewZohoAccount=function(){g.errors=[],d.intZohoAccount.save(g.zohoAccount).$promise.then(function(e){g.zohoAccounts.unshift(e.toJSON()),o.success({title:"ZohoAccount properly created",msg:g.zohoAccount.name?g.zohoAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZohoAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZohoAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveZohoAccount=function(){g.errors=[],d.intZohoAccount.update({id:g.zohoAccount.id},g.zohoAccount).$promise.then(function(e){var n=_.find(g.zohoAccounts,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"ZohoAccount properly saved!",msg:g.zohoAccount.name?g.zohoAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZohoAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZohoAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteZohoAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The zohoAccount will be deleted.").ariaLabel("Delete ZohoAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intZohoAccount.delete({id:g.zohoAccount.id}).$promise.then(function(){_.remove(g.zohoAccounts,{id:g.zohoAccount.id}),o.success({title:"ZohoAccount properly deleted!",msg:(g.zohoAccount.name||"zohoAccount")+" has been deleted!"}),v(g.zohoAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZohoAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZohoAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","zohoAccounts","zohoAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditZohoAccountDialogController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intZohoField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intZohoField.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intZohoField.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.zohoAccount={},o.zohoConfiguration={},o.configurations=[],o.selectedZohoConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.zohoAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intZohoAccount.getConfigurations({id:o.zohoAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getZohoConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getZohoConfiguration=function(e){o.zohoConfiguration=o.configurations[e],o.selectedZohoConfiguration=e,i.intZohoConfiguration.getSubjects({id:o.zohoConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intZohoConfiguration.getDescriptions({id:o.zohoConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intZohoConfiguration.getFields({id:o.zohoConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditZohoConfiguration=function(e,n){a.show({controller:"CreateOrEditZohoConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zohoAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{zohoConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getZohoConfiguration(0)})},o.deleteZohoConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the zohoConfiguration?").htmlContent("<b>"+(n.name||"zohoConfiguration")+"</b> will be deleted.").ariaLabel("delete zohoConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intZohoConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"ZohoConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getZohoConfiguration(0)})},function(){console.log("CANCEL")})},o.selectChangedAdvanced=function(){i.intZohoConfiguration.update({id:o.zohoConfiguration.id},o.zohoConfiguration).$promise.then(function(){s.success({title:"Module updated!",msg:"Module has been updated!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditZohoAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zohoAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.zohoConfiguration,account:o.zohoAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditZohoAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zohoAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.zohoConfiguration,account:o.zohoAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditZohoAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zohoAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.zohoConfiguration,account:o.zohoAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("ZohoAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_ZOHOCONFIGURATION",g.zohoConfiguration=angular.copy(l),g.configurations=r,g.newZohoConfiguration=!1,g.zohoConfiguration||(g.zohoConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_ZOHOCONFIGURATION",g.newZohoConfiguration=!0),g.addNewZohoConfiguration=function(){g.errors=[],d.intZohoAccount.addConfiguration({id:n.params.id},g.zohoConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"ZohoConfiguration properly created",msg:g.zohoConfiguration.name?g.zohoConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZohoConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZohoConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveZohoConfiguration=function(){g.errors=[],d.intZohoConfiguration.update({id:g.zohoConfiguration.id},g.zohoConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"ZohoConfiguration properly saved!",msg:g.zohoConfiguration.name?g.zohoConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZohoConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZohoConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteZohoConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The zohoConfiguration will be deleted.").ariaLabel("Delete ZohoConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intZohoConfiguration.delete({id:g.zohoConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.zohoConfiguration.id}),o.success({title:"ZohoConfiguration properly deleted!",msg:(g.zohoConfiguration.name||"zohoConfiguration")+" has been deleted!"}),v(g.zohoConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZohoConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZohoConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","zohoConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditZohoConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intZohoField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intZohoField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intZohoField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceDialReportColumns.push("recordingURL")}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETVARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.intZohoAccount.getFields({id:l.id,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditZohoAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.zohoAccount=c||e.params.zohoAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoZohoAccounts=function(){e.go("app.integrations.zohoAccounts",{},{reload:"app.integrations.zohoAccounts"})},u.saveZohoAccount=function(){r.intZohoAccount.update({id:u.zohoAccount.id},u.zohoAccount).$promise.then(function(){l.success({title:"ZohoAccount updated!",msg:u.zohoAccount.name?u.zohoAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintZohoAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","zohoAccount","userProfileSection"],angular.module("app.integrations").controller("ZohoAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.zohoAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="zohoAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedZohoAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,host,zone,clientId,clientSecret,code,refreshToken,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.arrayhost=_.keyBy([{option:"zoho.com",value:"'zoho.com'"},{option:"zoho.eu",value:"'zoho.eu'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayzone=_.keyBy([{option:"US",value:"'US'"},{option:"AU",value:"'AU'"},{option:"EU",value:"'EU'"},{option:"IN",value:"'IN'"},{option:"CN",value:"'CN'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.integrations.zohoAccounts.edit",{id:e.id,zohoAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intZohoAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"ZohoAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"ZohoAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("zohoAccount")+"?").htmlContent("<b>"+(e.name||"zohoAccount")+"</b> will be deleted.").ariaLabel("delete zohoAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getZohoAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intZohoAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ZohoAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditZohoAccount=function(e,n){i.show({controller:"CreateOrEditZohoAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zohoAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{zohoAccount:n,zohoAccounts:f.zohoAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteZohoAccount=y,f.exportSelectedZohoAccounts=function(){var e=angular.copy(f.selectedZohoAccounts);return f.selectedZohoAccounts=[],e},f.deleteSelectedZohoAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected zohoAccounts?").htmlContent("<b>"+f.selectedZohoAccounts.length+" selected</b> will be deleted.").ariaLabel("delete ZohoAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedZohoAccounts.forEach(function(e){y(e)}),f.selectedZohoAccounts=[]})},f.deselectZohoAccounts=function(){f.selectedZohoAccounts=[]},f.selectAllZohoAccounts=function(){f.selectedZohoAccounts=f.zohoAccounts.rows};var b=!0,A=1;function E(e){f.zohoAccounts=e||{count:0,rows:[]}}function y(e){m.intZohoAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.zohoAccounts.rows,{id:e.id}),f.zohoAccounts.count-=1,f.zohoAccounts.rows.length||f.getZohoAccounts(),p.success({title:_.startCase("ZohoAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintZohoAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintZohoAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getZohoAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","zohoAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("ZohoAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="JSCRIPTY.EDIT_PROJECT",g.project=angular.copy(l),g.projects=r,g.newProject=!1,g.project||(g.project={enableUncompleteSave:!0,sendUnpauseOnSubmit:!0},g.title="JSCRIPTY.NEW_PROJECT",g.newProject=!0),g.addNewProject=function(){g.errors=[],d.jscriptyProject.save(g.project).$promise.then(function(e){g.projects.unshift(e.toJSON()),o.success({title:"Project properly created",msg:g.project.name?g.project.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.jscriptyProject.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.jscriptyProject.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveProject=function(){g.errors=[],d.jscriptyProject.update({id:g.project.id},g.project).$promise.then(function(e){var n=_.find(g.projects,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Project properly saved!",msg:g.project.name?g.project.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.jscriptyProject.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.jscriptyProject.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteProject=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The project will be deleted.").ariaLabel("Delete Project").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.jscriptyProject.delete({id:g.project.id}).$promise.then(function(){_.remove(g.projects,{id:g.project.id}),o.success({title:"Project properly deleted!",msg:(g.project.name||"project")+" has been deleted!"}),v(g.project)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.jscriptyProject.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.jscriptyProject.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","projects","project","api","Auth","license","setting","crudPermissions"],angular.module("app.jscripty").controller("CreateOrEditProjectDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o){var r=this;r.currentUser=i.getCurrentUser(),r.project={},r.localizationMap=o;var l=new Date;r.pickerModel={dateStart:new Date(l.getFullYear(),l.getMonth(),1),dateEnd:new Date(l.getFullYear(),l.getMonth()+1,0),selectedTemplate:"TM"},r.init=function(e,n){r.project=e,r.userProfile=n,r.getAnswers()},r.getSummary=function(){return a.jscriptyProject.getSummary({id:r.project.id,startTime:{$gte:r.pickerModel.dateStart,$lte:moment(r.pickerModel.dateEnd).add(23,"hours").add(59,"minutes").add(59,"seconds").format()},nolimit:!0}).$promise.then(function(e){if(void 0!==e.length){var n=[e.buffer],t=new Blob(n,{type:e.type}),a=window.document.createElement("a");a.setAttribute("href",URL.createObjectURL(t)),a.setAttribute("download","jscriptyProjectSummary_"+r.project.id+".csv"),a.click()}else s.info({title:"EXPORT",msg:"No answers available"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.jscriptyProject.getSummary",msg:e.data?JSON.stringify(e.data):e.toString()})})},r.getAnswers=function(){return r.hasIdAnswers=!1,a.jscriptyProject.getAnswers({id:r.project.id,sort:"-createdAt,questionId",createdAt:{$gte:moment(r.pickerModel.dateStart).add(0,"hours").add(0,"minutes").add(0,"seconds").utcOffset(0,!0).format(),$lte:moment(r.pickerModel.dateEnd).add(23,"hours").add(59,"minutes").add(59,"seconds").utcOffset(0,!0).format()},nolimit:!0}).$promise.then(function(e){if(e&&e.rows&&e.hasOwnProperty("count")){r.answers={};for(var n=0,t=e.count;n<t;n++)e.rows[n].questionId&&(r.hasIdAnswers=!0,r.answers.hasOwnProperty(e.rows[n].questionId)||(r.answers[e.rows[n].questionId]={question:e.rows[n].question,answers:{},sum:0}),""===e.rows[n].answer&&(e.rows[n].answer="NO_ANSWER"),r.answers[e.rows[n].questionId].answers[e.rows[n].answer]?r.answers[e.rows[n].questionId].answers[e.rows[n].answer]+=1:r.answers[e.rows[n].questionId].answers[e.rows[n].answer]=1,r.answers[e.rows[n].questionId].sum+=1)}}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETANSWERS",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$mdDialog","$document","$window","api","Auth","toasty","dateFilterLocalizationFactory"],angular.module("app.jscripty").controller("ProjectAnswersController",e)}(),function(){"use strict";angular.module("app.jscripty").controller("ProjectBuilderController",function(){var n=this;n.project={},n.optionsBuilder={questionTypes:["text","textarea","radio","checkbox","select","number","date","time","email","range","url"],elementTypes:["question","paragraph"]},n.init=function(e){n.project=e,_.isObjectLike(e.formData)?n.project.formData=e.formData:n.isJsonString(e.formData)?n.project.formData=JSON.parse(e.formData):n.project.formData={}},n.isJsonString=function(e){if(_.isNil(e))return!1;try{JSON.parse(e)}catch(e){return!1}return!0}})}(),function(){"use strict";function e(n,t,a,e,i,s,o){var r=this;function l(e){n.hide(e)}r.newProject=!0,r.project=angular.copy(i),r.projects=s,r.title=o.instant("JSCRIPTY.CLONE_PROJECT"),i&&i.name&&(r.title+=": "+i.name),r.cloneProject=function(){return e.jscriptyProject.clone({id:i.id},r.project).$promise.then(function(e){r.projects.unshift(e.toJSON()),a.success({title:"Project properly cloned",msg:r.project.name?r.project.name+" has been cloned!":""}),t.go("app.jscripty.projects.edit",{id:e.id}),l(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){r.errors=e.data.errors||[{message:e.toString(),type:"api.jscriptyProject.clone"}];for(var n=0;n<e.data.errors.length;n+=1)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.jscriptyProject.clone",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},r.closeDialog=l}e.$inject=["$mdDialog","$state","toasty","api","project","projects","$translate"],angular.module("app.jscripty").controller("ProjectcloneController",e)}(),function(){"use strict";function e(a,i,n){var o=this;o.project={},o.responseData={},o.formViewer={},o.init=function(e){o.project=e,n.$on("mwForm.pageEvents.pageCurrentChanged",function(e,n){if(n.currentPage&&o.project.formData&&o.project.formData.pages)for(var t=0,a=o.project.formData.pages.length;t<a;t++)if(n.currentPage.number<t+1&&o.project.formData.pages[t].elements)for(var i=0,s=o.project.formData.pages[t].elements.length;i<s;i++)"question"===o.project.formData.pages[t].elements[i].type&&o.project.formData.pages[t].elements[i].question&&delete o.responseData[o.project.formData.pages[t].elements[i].question.id]})},o.onSubmit=function(e){var n=a.defer(),t=i.confirm().title("Would you like to save your survey?").textContent("").ariaLabel("survey").targetEvent(e).ok("SAVE").cancel("CANCEL");return i.show(t).then(function(){n.resolve(!0)},function(){n.reject()}),n.promise},o.resetViewer=function(){o.formViewer.reset&&o.formViewer.reset()}}e.$inject=["$q","$mdDialog","$scope"],angular.module("app.jscripty").controller("ProjectViewerController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.projectSessions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.jscriptyProject.getSessions(m.query,u).$promise}function g(e){d.jscriptySessionReport.delete({id:e.id}).$promise.then(function(){_.remove(m.projectSessions.rows,{id:e.id}),m.projectSessions.count-=1,m.projectSessions.rows.length||p(),l.success({title:"Session deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETjscriptyProject"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETjscriptyProject",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.project={},m.projectSessions={count:0,rows:[]},m.selectedProjectSessions=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,starttime,endtime,membername,calleridnum,completed",sort:"-starttime",limit:10,page:1},m.init=function(e,n,t){m.project=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.id=m.project.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the session?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("session #")+e.id||"session")+"</b> will be deleted.").ariaLabel("delete session").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getProjectSessions=p,m.createOrEditProjectSession=function(e,n){o.show({controller:"CreateOrEditSessionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/jscripty/views/projects/edit/sessions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{project:m.project,session:n,sessions:m.projectSessions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.showQuestionsProjectSession=function(e,t){o.show({controller:"ShowQuestionsSessionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/jscripty/views/projects/edit/sessions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,resolve:{questions:["apiResolver","$stateParams",function(e,n){return e.resolve("jscriptySessionReport@getQuestions",{fields:"question,answer",sort:"id",id:t.id})}]},locals:{project:m.project,session:t}})},m.exportSelectedProjectSessions=function(){var e=angular.copy(m.selectedProjectSessions);return m.selectedProjectSessions=[],e},m.deleteProjectSession=g,m.deleteSelectedProjectSessions=function(e){var n=o.confirm().title("Are you sure want to delete the selected sessions?").htmlContent("<b>"+m.selectedProjectSessions.length+" selected</b> will be deleted.").ariaLabel("delete sessions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedProjectSessions.forEach(function(e){g(e)}),m.selectedProjectSessions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.jscripty").controller("ProjectSessionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l){this.title="JSCRIPTY.SESSION_RESULTS",this.session=s,this.questions=o,this.project=r,this.closeDialog=function(e){a.hide(e)}}e.$inject=["$scope","$state","$location","$mdDialog","toasty","session","questions","project","api"],angular.module("app.jscripty").controller("ShowQuestionsSessionDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;p.currentUser=d.getCurrentUser(),p.license=s,p.setting=o,p.passwordPattern=p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.location=n.protocol()+"://"+n.host(),p.project=c||e.params.project||{},p.userProfile=m,p.userProfileSection=u&&1==u.count?u.rows[0]:null,p.crudPermissions=d.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.hasModulePermissions={},p.selectedTab=e.params.tab||0,p.clonedialog=function(e,n){t.show({controller:"ProjectcloneController",controllerAs:"vm",templateUrl:"app/main/apps/jscripty/views/projects/edit/clone/clone.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{project:e,projects:p.projects?p.projects.rows:[],crudPermissions:p.crudPermissions}})},p.alert=l.info,p.gotoProjects=function(){e.go("app.jscripty.projects",{},{reload:"app.jscripty.projects"})},p.saveProject=function(){r.jscriptyProject.update({id:p.project.id},p.project).$promise.then(function(){l.success({title:"Project updated!",msg:p.project.name?p.project.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETjscriptyProject",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","project","userProfile","userProfileSection"],angular.module("app.jscripty").controller("JscriptyProjectController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.projects=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="projects",f.listOrder="",f.listOrderAsc=null,f.selectedProjects=[],f.query={fields:"createdAt,updatedAt,id,name,enableUncompleteSave,sendUnpauseOnSubmit,description,formData",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.jscripty.projects.edit",{id:e.id,project:e,crudPermissions:f.crudPermissions})},f.clonedialog=function(e,n){i.show({controller:"ProjectcloneController",controllerAs:"vm",templateUrl:"app/main/apps/jscripty/views/projects/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{project:e,projects:f.projects?f.projects.rows:[],crudPermissions:f.crudPermissions}})},f.sessionsgoto=function(e,n){t.go("app.jscripty.projects.edit",{id:e.id,tab:3})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("project")+"?").htmlContent("<b>"+(e.name||"project")+"</b> will be deleted.").ariaLabel("delete project").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getProjects=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.jscriptyProject.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Projects",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditProject=function(e,n){i.show({controller:"CreateOrEditProjectDialogController",controllerAs:"vm",templateUrl:"app/main/apps/jscripty/views/projects/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{project:n,projects:f.projects.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteProject=y,f.exportSelectedProjects=function(){var e=angular.copy(f.selectedProjects);return f.selectedProjects=[],e},f.deleteSelectedProjects=function(e){var n=i.confirm().title("Are you sure want to delete the selected projects?").htmlContent("<b>"+f.selectedProjects.length+" selected</b> will be deleted.").ariaLabel("delete Projects").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedProjects.forEach(function(e){y(e)}),f.selectedProjects=[]})},f.deselectProjects=function(){f.selectedProjects=[]},f.selectAllProjects=function(){f.selectedProjects=f.projects.rows};var b=!0,A=1;function E(e){f.projects=e||{count:0,rows:[]}}function y(e){m.jscriptyProject.delete({id:e.id}).$promise.then(function(){_.remove(f.projects.rows,{id:e.id}),f.projects.count-=1,f.projects.rows.length||f.getProjects(),p.success({title:_.startCase("Project")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEjscriptyProject"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEjscriptyProject",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getProjects())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","projects","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.jscripty").controller("JscriptyProjectsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MAIL.EDIT_MAILACCOUNT",g.mailAccount=angular.copy(l),g.mailAccounts=r,g.newMailAccount=!1,g.mailAccount||(g.mailAccount={active:!0,cservice:"null",cauthentication:!0,fontSize:13,waitForTheAssignedAgent:10,notificationSound:!0,queueTransferTimeout:300,agentTransferTimeout:300},g.title="MAIL.NEW_MAILACCOUNT",g.newMailAccount=!0),n.params.id&&(g.mailAccount.MailAccountId=n.params.id),g.addNewMailAccount=function(){g.errors=[],d.mailAccount.save(g.mailAccount).$promise.then(function(e){g.mailAccounts.unshift(e.toJSON()),o.success({title:"MailAccount properly created",msg:g.mailAccount.name?g.mailAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveMailAccount=function(){g.errors=[],d.mailAccount.update({id:g.mailAccount.id},g.mailAccount).$promise.then(function(e){var n=_.find(g.mailAccounts,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"MailAccount properly saved!",msg:g.mailAccount.name?g.mailAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteMailAccount=function(e){if(g.mailAccount.service)return o.error({title:"Mail Account not deleted!",msg:"You can't remove service account"});g.errors=[];var n=a.confirm().title("Are you sure?").content("The mailAccount will be deleted.").ariaLabel("Delete MailAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.mailAccount.delete({id:g.mailAccount.id}).$promise.then(function(){_.remove(g.mailAccounts,{id:g.mailAccount.id}),o.success({title:"MailAccount properly deleted!",msg:(g.mailAccount.name||"mailAccount")+" has been deleted!"}),v(g.mailAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.lists,{id:e.resourceId})}),t=null;if(g.mailAccount&&(t=_.find(g.lists,{id:Number(g.mailAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.lists,{id:t.id});a.canSelect=!1,n.push(a)}g.lists=n})}else{var t=[],a=null;g.mailAccount&&(a=_.find(g.lists,{id:Number(g.mailAccount.ListId)}));for(var i=0;i<g.lists.length;i++)a&&g.lists[i].id===a.id&&(g.lists[i].canSelect=!1,t.push(g.lists[i]));g.lists=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","mailAccounts","mailAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.mail").controller("CreateOrEditMailAccountDialogController",e)}(),function(){"use strict";function e(o,i,a,s,e){var r=this;function n(e,n){if(r.mailAccountApps.rows.length){var t=r.mailAccountApps.rows[n]?r.mailAccountApps.rows[n]:r.mailAccountApps.rows[0];i.show({controller:"EditMailAccountApp"+(t.appType||t.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/apps/"+(t.appType||t.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailAccountApp:t,mailAccount:r.mailAccount,crudPermissions:r.crudPermissions}}).then(function(e){e&&(e.id?r.mailAccountApps.rows[n]=e:r.mailAccountApps.rows.splice(n,0,e),l())}).catch(function(e){e&&s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function l(){for(var e=1,n=[],t=0;t<r.mailAccountApps.rows.length;t++,0){var a=r.mailAccountApps.rows[t],i=[],s=[];a.intervals="*,*,*,*"!==a.interval?[a.interval]:a.IntervalId?_.map(_.filter(r.intervals.rows,{IntervalId:a.IntervalId}),"interval"):[],a.context=r.mailAccount.context,a.exten=r.mailAccount.exten,a.type&&(a.type=a.type.toLowerCase()),a.priority=i.length?_.last(i).priority+1:e,e=(s.length?_.last(s).priority:a.priority)+1,n=_.concat(n,i,[a],s)}o.mailAccount.addApplications({id:r.mailAccount.id},_.sortBy(n,"priority")).$promise.then(function(e){r.mailAccountApps.rows=e.rows}).catch(function(e){console.error(e)})}function t(e){r.mailAccountApps=e||{count:0,rows:[]}}r.currentUser=e.getCurrentUser(),r.mailAccount={},r.mailAccountApps={count:0,rows:[]},r.selectedMailAccountApps=[],r.crudPermissions,r.query={sort:"priority"},r.apps=_.reject(_.sortBy([{app:"Interval",appType:"interval",types:["always","custom","list"],fields:[],isApp:!1},{app:"noop",appType:"noop",type:"noop",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,fields:[{title:"Value",name:"value",type:"text",param:0}]},{app:"system",appType:"system",type:"system",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,extraApi:[{name:"variables",field:{name:"variable",key:"name"},route:"variable",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1012}}],fields:[{title:"Command",name:"command",type:"text",required:!0,param:0},{title:"Variable",name:"variable",type:"apiselect",values:"variables",value:"variable.name",option:"variable.name",defaultValues:[{value:"''",option:"None"}],defaultValue:"''",param:1}]},{app:"gotop",appType:"gotop",type:"goto",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Priority",name:"priority",type:"number",required:!0,min:0,param:0}]},{app:"gotoif",appType:"gotoif",type:"gotoif",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Condition",name:"condition",type:"text",required:!0,param:0},{title:"truepriority",name:"truepriority",type:"number",min:1,required:!0,param:1},{title:"falsepriority",name:"falsepriority",type:"number",min:1,required:!0,param:2}]},{app:"queue",appType:"queue",foreignKey:"MailQueueId",type:"queue",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"queues",field:{name:"queue",key:"name"},route:"mailQueue",filters:{fields:"id,name,type",sort:"name",nolimit:!0},permissions:{section:601}}],fields:[{title:"Queue",name:"queue",type:"apiselect",values:"queues",value:"queue.name",option:"queue.name",defaultValue:300,required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:300,param:1}]},{app:"agent",appType:"agent",type:"agent",foreignKey:"UserId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"agents",field:{name:"agent",key:"name"},route:"user",filters:{fields:"id,name",sort:"name",nolimit:!0,role:"agent"},permissions:{section:202}}],fields:[{title:"Agent",name:"agent",type:"apiselect",values:"agents",value:"agent.name",option:"agent.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:30,param:1}]},{app:"autoreply",appType:"autoreply",type:"autoreply",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"times",name:"times",type:"select",defaultValue:"1",values:[{option:"One Time",value:"2"},{option:"Always",value:"0"},{option:"First Message",value:"1"}],required:!0,param:0},{title:"Reply_Type",name:"replyType",type:"select",defaultValue:"1",values:[{option:"Reply",value:"0"},{option:"Reply All",value:"1"}],required:!0,param:1},{title:"Text",name:"text",type:"html",required:!0,param:2}]},{app:"close",appType:"close",type:"close",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Disposition",name:"disposition",type:"text",required:!0,param:0}]},{app:"tag",appType:"tag",type:"tag",foreignKey:"TagId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"tags",field:{name:"tag",key:"name"},route:"tag",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1008}}],fields:[{title:"Tag",name:"tag",type:"apiselect",values:"tags",value:"tag.name",option:"tag.name",required:!0,param:0}]}],["app"]),{isApp:!1}),r.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},r.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){n(e,e.newIndex)},onSort:function(e){l()}},r.init=function(e,n){r.mailAccount=e,r.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},r.applications.disabled=!r.crudPermissions.canEdit,r.query.id=e.id,r.query.isApp=!0,r.query.nolimit=!0,r.getMailAccountApps(),r.getIntervals()},r.deleteConfirm=function(e,n,t){var a=i.confirm().title("Are you sure want to delete the application?").htmlContent("<b>"+e.app+"</b> will be deleted.").ariaLabel("delete application").targetEvent(t).ok("OK").cancel("CANCEL");i.show(a).then(function(){r.mailAccountApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})},r.getMailAccountApps=function(){r.promise=o.mailAccount.getApplications(r.query,t).$promise},r.editMailAccountApp=n,r.editInterval=function(e,n){if(r.mailAccountApps.rows.length){var t=r.mailAccountApps.rows[n]?r.mailAccountApps.rows[n]:r.mailAccountApps.rows[0];i.show({controller:"EditMailAccountAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/apps/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:[],crudPermissions:r.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,l())})}},r.deleteMailAccountApp=function(e){_.remove(r.mailAccountApps.rows,{id:e.id}),l(),s.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},r.deleteSelectedMailAccountApps=function(e){var n=i.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+r.selectedMailAccountApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){r.selectedMailAccountApps.forEach(function(e){_.remove(r.mailAccountApps.rows,{id:e.id})}),r.selectedMailAccountApps=[],l()})},r.rewriteRouting=l,r.getIntervals=function(){return o.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){r.intervals=e}).catch(function(e){console.error(e)})}}e.$inject=["api","$mdDialog","$document","toasty","Auth"],angular.module("app.mail").controller("MailAccountActionsController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.mailAccount.getAgents({id:c.mailAccount.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserMailAccount?"penalty "+e.UserMailAccount.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.mailAccount=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.mailAccount.removeAgents({id:c.mailAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.mailAccount.addAgents({id:c.mailAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("MAIL.ALL_AGENTS"),labelSelected:r.instant("MAIL.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","mailAccount","mailAccounts","realtime","$translate","Auth","crudPermissions"],angular.module("app.mail").controller("MailAccountagentaddController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.agent=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.agent.appdata)switch(l.agent.appType?l.agent.appType.toLowerCase():l.agent.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.agent.appdata.split(",");l.agent.key=d[0],l.agent.language=d[1],l.agent.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.agent.appdata.split(",");l.agent.projectId=d[0],l.agent.clientEmail=d[1],l.agent.privateKey=d[2],l.agent.language=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.agent.appdata.split(",");l.agent.accesskeyid=d[0],l.agent.secretaccesskey=d[1],l.agent.lexregion=d[2],l.agent.botname=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.agent.appdata.split(",");l.agent.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.agent.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.agent.text=d.slice(2,d.length).join(",");break;case"message":l.agent.text=l.agent.appdata;break;case"set":l.agent.name=l.agent.appdata.split("=")[0],l.agent.value=l.agent.appdata.split("=")[1];break;case"agi":l.agent.project=l.agent.appdata;break;default:var c=l.agent.appdata.split(",");l.agent.agent=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.agent.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.agent.timeout=30;function m(e){n.hide(e)}l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outbounddial"===l.agent.appType.toLowerCase()&&(l.agent.prefix=l.agent.phone?l.agent.phone.split("$")[0]:void 0,l.agent.callerId=l.agent.callerID?"CALLERID(all)="+l.agent.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outboundDial"===l.agent.appType&&(l.agent.phone=i.cutdigits?(l.agent.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.agent.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.agent.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.agent.options+="U(xcally-mixmonitor-context)"):l.agent.options=l.agent.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.agents,{name:l.agent.agent});n&&(l.agent.UserId=n.id);if(l.agent.appType&&"custom"===l.agent.appType);else switch((l.agent.app||l.agent.appType).toLowerCase()){case"set":l.agent.appdata=l.agent.name+"="+l.agent.value;break;case"custom":break;default:e[0]=l.agent.agent,e[1]=l.agent.timeout,l.agent.appdata=e.join(",")}m(l.agent)},l.closeDialog=m,o.hasRole("admin")?s.user.get({fields:"id,name",sort:"name",nolimit:"true",role:"agent"}).$promise.then(function(e){l.agents=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.user.get({fields:"id,name",sort:"name",nolimit:"true",role:"agent"}).$promise.then(function(e){l.agents=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.agents,{id:e.resourceId})}),t=null;if(l.agent&&(t=_.find(l.agents,{name:l.agent.agent})),t&&!_.some(n,["id",t.id])){var a=_.find(l.agents,{id:t.id});a.canSelect=!1,n.push(a)}l.agents=n})}else{var t=[],a=null;l.agent&&(a=_.find(l.agents,{name:l.agent.agent}));for(var i=0;i<l.agents.length;i++)a&&l.agents[i].id===a.id&&(l.agents[i].canSelect=!1,t.push(l.agents[i]));l.agents=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppagentDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.autoreply=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.autoreply.appdata)switch(l.autoreply.appType?l.autoreply.appType.toLowerCase():l.autoreply.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.autoreply.appdata.split(",");l.autoreply.key=d[0],l.autoreply.language=d[1],l.autoreply.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.autoreply.appdata.split(",");l.autoreply.projectId=d[0],l.autoreply.clientEmail=d[1],l.autoreply.privateKey=d[2],l.autoreply.language=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.autoreply.appdata.split(",");l.autoreply.accesskeyid=d[0],l.autoreply.secretaccesskey=d[1],l.autoreply.lexregion=d[2],l.autoreply.botname=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.autoreply.appdata.split(",");l.autoreply.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.autoreply.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.autoreply.text=d.slice(2,d.length).join(",");break;case"message":l.autoreply.text=l.autoreply.appdata;break;case"set":l.autoreply.name=l.autoreply.appdata.split("=")[0],l.autoreply.value=l.autoreply.appdata.split("=")[1];break;case"agi":l.autoreply.project=l.autoreply.appdata;break;default:var c=l.autoreply.appdata.split(",");l.autoreply.times=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.autoreply.replyType=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.autoreply.text=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}else l.autoreply.times=1,l.autoreply.replyType=1;function m(e){n.hide(e)}l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outbounddial"===l.autoreply.appType.toLowerCase()&&(l.autoreply.prefix=l.autoreply.phone?l.autoreply.phone.split("$")[0]:void 0,l.autoreply.callerId=l.autoreply.callerID?"CALLERID(all)="+l.autoreply.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outboundDial"===l.autoreply.appType&&(l.autoreply.phone=i.cutdigits?(l.autoreply.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.autoreply.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.autoreply.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.autoreply.options+="U(xcally-mixmonitor-context)"):l.autoreply.options=l.autoreply.options.replace("U(xcally-mixmonitor-context)",""));if(l.autoreply.appType&&"custom"===l.autoreply.appType);else switch((l.autoreply.app||l.autoreply.appType).toLowerCase()){case"set":l.autoreply.appdata=l.autoreply.name+"="+l.autoreply.value;break;case"custom":break;default:e[0]=l.autoreply.times,e[1]=l.autoreply.replyType,e[2]=l.autoreply.text,l.autoreply.appdata=e.join(",")}m(l.autoreply)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppautoreplyDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.close=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.close.appdata)switch(l.close.appType?l.close.appType.toLowerCase():l.close.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.close.appdata.split(",");l.close.key=d[0],l.close.language=d[1],l.close.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.close.appdata.split(",");l.close.projectId=d[0],l.close.clientEmail=d[1],l.close.privateKey=d[2],l.close.language=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.close.appdata.split(",");l.close.accesskeyid=d[0],l.close.secretaccesskey=d[1],l.close.lexregion=d[2],l.close.botname=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.close.appdata.split(",");l.close.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.close.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.close.text=d.slice(2,d.length).join(",");break;case"message":l.close.text=l.close.appdata;break;case"set":l.close.name=l.close.appdata.split("=")[0],l.close.value=l.close.appdata.split("=")[1];break;case"agi":l.close.project=l.close.appdata;break;default:var c=l.close.appdata.split(",");l.close.disposition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outbounddial"===l.close.appType.toLowerCase()&&(l.close.prefix=l.close.phone?l.close.phone.split("$")[0]:void 0,l.close.callerId=l.close.callerID?"CALLERID(all)="+l.close.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outboundDial"===l.close.appType&&(l.close.phone=i.cutdigits?(l.close.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.close.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.close.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.close.options+="U(xcally-mixmonitor-context)"):l.close.options=l.close.options.replace("U(xcally-mixmonitor-context)",""));if(l.close.appType&&"custom"===l.close.appType);else switch((l.close.app||l.close.appType).toLowerCase()){case"set":l.close.appdata=l.close.name+"="+l.close.value;break;case"custom":break;default:e[0]=l.close.disposition,l.close.appdata=e.join(",")}m(l.close)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppcloseDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotoif=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotoif.appdata)switch(l.gotoif.appType?l.gotoif.appType.toLowerCase():l.gotoif.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotoif.appdata.split(",");l.gotoif.key=d[0],l.gotoif.language=d[1],l.gotoif.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotoif.appdata.split(",");l.gotoif.projectId=d[0],l.gotoif.clientEmail=d[1],l.gotoif.privateKey=d[2],l.gotoif.language=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotoif.appdata.split(",");l.gotoif.accesskeyid=d[0],l.gotoif.secretaccesskey=d[1],l.gotoif.lexregion=d[2],l.gotoif.botname=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotoif.appdata.split(",");l.gotoif.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotoif.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.gotoif.text=d.slice(2,d.length).join(",");break;case"message":l.gotoif.text=l.gotoif.appdata;break;case"set":l.gotoif.name=l.gotoif.appdata.split("=")[0],l.gotoif.value=l.gotoif.appdata.split("=")[1];break;case"agi":l.gotoif.project=l.gotoif.appdata;break;default:var c=l.gotoif.appdata.split(",");l.gotoif.condition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.gotoif.truepriority=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.gotoif.falsepriority=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}function m(e){n.hide(e)}l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outbounddial"===l.gotoif.appType.toLowerCase()&&(l.gotoif.prefix=l.gotoif.phone?l.gotoif.phone.split("$")[0]:void 0,l.gotoif.callerId=l.gotoif.callerID?"CALLERID(all)="+l.gotoif.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outboundDial"===l.gotoif.appType&&(l.gotoif.phone=i.cutdigits?(l.gotoif.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotoif.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotoif.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotoif.options+="U(xcally-mixmonitor-context)"):l.gotoif.options=l.gotoif.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotoif.appType&&"custom"===l.gotoif.appType);else switch((l.gotoif.app||l.gotoif.appType).toLowerCase()){case"set":l.gotoif.appdata=l.gotoif.name+"="+l.gotoif.value;break;case"custom":break;default:e[0]=l.gotoif.condition,e[1]=l.gotoif.truepriority,e[2]=l.gotoif.falsepriority,l.gotoif.appdata=e.join(",")}m(l.gotoif)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppgotoifDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotop.appdata)switch(l.gotop.appType?l.gotop.appType.toLowerCase():l.gotop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotop.appdata.split(",");l.gotop.key=d[0],l.gotop.language=d[1],l.gotop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotop.appdata.split(",");l.gotop.projectId=d[0],l.gotop.clientEmail=d[1],l.gotop.privateKey=d[2],l.gotop.language=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotop.appdata.split(",");l.gotop.accesskeyid=d[0],l.gotop.secretaccesskey=d[1],l.gotop.lexregion=d[2],l.gotop.botname=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotop.appdata.split(",");l.gotop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotop.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.gotop.text=d.slice(2,d.length).join(",");break;case"message":l.gotop.text=l.gotop.appdata;break;case"set":l.gotop.name=l.gotop.appdata.split("=")[0],l.gotop.value=l.gotop.appdata.split("=")[1];break;case"agi":l.gotop.project=l.gotop.appdata;break;default:var c=l.gotop.appdata.split(",");l.gotop.priority=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outbounddial"===l.gotop.appType.toLowerCase()&&(l.gotop.prefix=l.gotop.phone?l.gotop.phone.split("$")[0]:void 0,l.gotop.callerId=l.gotop.callerID?"CALLERID(all)="+l.gotop.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outboundDial"===l.gotop.appType&&(l.gotop.phone=i.cutdigits?(l.gotop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotop.options+="U(xcally-mixmonitor-context)"):l.gotop.options=l.gotop.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotop.appType&&"custom"===l.gotop.appType);else switch((l.gotop.app||l.gotop.appType).toLowerCase()){case"set":l.gotop.appdata=l.gotop.name+"="+l.gotop.value;break;case"custom":break;default:e[0]=l.gotop.priority,l.gotop.appdata=e.join(",")}m(l.gotop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppgotopDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;if(c.currentUser=l.getCurrentUser(),c.errors=[],c.title="TOOLS.EDIT_INTERVAL",c.interval=angular.copy(i),c.intervals=s,c.newInterval=!1,c.types=["always","custom","list"],c.crudPermissions=d,c.daysOfWeek=a.getDaysOfWeek(),c.monthNumber=a.getMonthNumber(),c.monthName=a.getMonthName(),c.daysOfMonth=a.getDaysOfMonth(),c.interval)if("*,*,*,*"!==c.interval.interval){c.type="custom";var m=c.interval.interval.split(","),u=m[0],p=m[1],g=m[2],v=m[3];if("*"!==u){var h,f=u.split("-")[0],b=u.split("-")[1];(h=new Date).setHours(Number(f.split(":")[0])),h.setMinutes(Number(f.split(":")[1])),c.timeRangeFrom=h,(h=new Date).setHours(Number(b.split(":")[0])),h.setMinutes(Number(b.split(":")[1])),c.timeRangeTo=h}"*"!==p&&(c.dayOfWeekFrom=p.split("-")[0],c.dayOfWeekTo=p.split("-")[1]),"*"!==g&&(c.monthDayFrom=g.split("-")[0],c.monthDayTo=g.split("-")[1]),"*"!==v&&(c.monthFrom=v.split("-")[0],c.monthTo=v.split("-")[1])}else c.type="always";else c.interval={interval:"*,*,*,*"},c.type="always",c.title="TOOLS.NEW_INTERVAL",c.newInterval=!0;function A(){switch(c.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==c.timeRangeFrom&&c.timeRangeFrom&&c.timeRangeTo){var n=(c.timeRangeFrom.getHours()<10?"0":"")+c.timeRangeFrom.getHours()+":"+(c.timeRangeFrom.getMinutes()<10?"0":"")+c.timeRangeFrom.getMinutes(),t=(c.timeRangeTo.getHours()<10?"0":"")+c.timeRangeTo.getHours()+":"+(c.timeRangeTo.getMinutes()<10?"0":"")+c.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return c.dayOfWeekFrom?c.dayOfWeekTo?e.push(c.dayOfWeekFrom+"-"+c.dayOfWeekTo):e.push(c.dayOfWeekFrom):e.push("*"),c.monthDayFrom?c.monthDayTo?e.push(c.monthDayFrom+"-"+c.monthDayTo):e.push(c.monthDayFrom):e.push("*"),c.monthFrom?c.monthTo?e.push(c.monthFrom+"-"+c.monthTo):e.push(c.monthFrom):e.push("*"),e.join()}}function E(e){n.hide(e)}e.params.id&&!c.interval.application&&(c.interval.IntervalId=e.params.id),c.interval.IntervalId&&c.interval.application&&(c.type="list"),c.addNewInterval=function(){c.errors=[],c.interval.interval=A(),r.interval.save(c.interval).$promise.then(function(e){c.intervals.push(e),o.success({title:"Interval properly created",msg:c.interval.name?c.interval.name+" has been created!":""}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},c.saveInterval=function(){c.errors=[],c.interval.interval=A(),c.interval.application?("list"!==c.type&&(c.interval.IntervalId=null),E(c.interval)):r.interval.update({id:c.interval.id},c.interval).$promise.then(function(e){var n=_.find(c.intervals,{id:e.id});n&&_.merge(n,e),o.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},c.closeDialog=E,c.interval.application&&(l.hasRole("admin")?r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:c.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=e&&e.rows?e.rows:[],t=[],a=null;c.interval&&(a=_.find(c.intervals,{name:c.interval.IntervalId})),a&&!_.some(n,["resourceId",a.id])&&c.intervals.forEach(function(e){e.id===a.id&&(e.canSelect=!1,t.push(e))}),c.intervals=t})}else c.intervals=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}))}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditMailAccountAppintervalDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.noop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.noop.appdata)switch(l.noop.appType?l.noop.appType.toLowerCase():l.noop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.noop.appdata.split(",");l.noop.key=d[0],l.noop.language=d[1],l.noop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.noop.appdata.split(",");l.noop.projectId=d[0],l.noop.clientEmail=d[1],l.noop.privateKey=d[2],l.noop.language=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.noop.appdata.split(",");l.noop.accesskeyid=d[0],l.noop.secretaccesskey=d[1],l.noop.lexregion=d[2],l.noop.botname=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.noop.appdata.split(",");l.noop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.noop.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.noop.text=d.slice(2,d.length).join(",");break;case"message":l.noop.text=l.noop.appdata;break;case"set":l.noop.name=l.noop.appdata.split("=")[0],l.noop.value=l.noop.appdata.split("=")[1];break;case"agi":l.noop.project=l.noop.appdata;break;default:var c=l.noop.appdata.split(",");l.noop.value=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outbounddial"===l.noop.appType.toLowerCase()&&(l.noop.prefix=l.noop.phone?l.noop.phone.split("$")[0]:void 0,l.noop.callerId=l.noop.callerID?"CALLERID(all)="+l.noop.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outboundDial"===l.noop.appType&&(l.noop.phone=i.cutdigits?(l.noop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.noop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.noop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.noop.options+="U(xcally-mixmonitor-context)"):l.noop.options=l.noop.options.replace("U(xcally-mixmonitor-context)",""));if(l.noop.appType&&"custom"===l.noop.appType);else switch((l.noop.app||l.noop.appType).toLowerCase()){case"set":l.noop.appdata=l.noop.name+"="+l.noop.value;break;case"custom":break;default:e[0]=l.noop.value,l.noop.appdata=e.join(",")}m(l.noop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppnoopDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.queue=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.queue.appdata)switch(l.queue.appType?l.queue.appType.toLowerCase():l.queue.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.queue.appdata.split(",");l.queue.key=d[0],l.queue.language=d[1],l.queue.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.queue.appdata.split(",");l.queue.projectId=d[0],l.queue.clientEmail=d[1],l.queue.privateKey=d[2],l.queue.language=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.queue.appdata.split(",");l.queue.accesskeyid=d[0],l.queue.secretaccesskey=d[1],l.queue.lexregion=d[2],l.queue.botname=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.queue.appdata.split(",");l.queue.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.queue.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.queue.text=d.slice(2,d.length).join(",");break;case"message":l.queue.text=l.queue.appdata;break;case"set":l.queue.name=l.queue.appdata.split("=")[0],l.queue.value=l.queue.appdata.split("=")[1];break;case"agi":l.queue.project=l.queue.appdata;break;default:var c=l.queue.appdata.split(",");l.queue.queue=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.queue.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.queue.queue=300,l.queue.timeout=300;function m(e){n.hide(e)}l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outbounddial"===l.queue.appType.toLowerCase()&&(l.queue.prefix=l.queue.phone?l.queue.phone.split("$")[0]:void 0,l.queue.callerId=l.queue.callerID?"CALLERID(all)="+l.queue.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outboundDial"===l.queue.appType&&(l.queue.phone=i.cutdigits?(l.queue.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.queue.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.queue.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.queue.options+="U(xcally-mixmonitor-context)"):l.queue.options=l.queue.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.queues,{name:l.queue.queue});n&&(l.queue[_.capitalize("mail")+"QueueId"]=n.id);if(l.queue.appType&&"custom"===l.queue.appType);else switch((l.queue.app||l.queue.appType).toLowerCase()){case"set":l.queue.appdata=l.queue.name+"="+l.queue.value;break;case"custom":break;default:e[0]=l.queue.queue,e[1]=l.queue.timeout,l.queue.appdata=e.join(",")}m(l.queue)},l.closeDialog=m,o.hasRole("admin")?s.mailQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.mailQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:601}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.queues,{id:e.resourceId})}),t=null;if(l.queue&&(t=_.find(l.queues,{name:l.queue.queue})),t&&!_.some(n,["id",t.id])){var a=_.find(l.queues,{id:t.id});a.canSelect=!1,n.push(a)}l.queues=n})}else{var t=[],a=null;l.queue&&(a=_.find(l.queues,{name:l.queue.queue}));for(var i=0;i<l.queues.length;i++)a&&l.queues[i].id===a.id&&(l.queues[i].canSelect=!1,t.push(l.queues[i]));l.queues=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppqueueDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.system=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.system.appdata)switch(l.system.appType?l.system.appType.toLowerCase():l.system.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.system.appdata.split(",");l.system.key=d[0],l.system.language=d[1],l.system.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.system.appdata.split(",");l.system.projectId=d[0],l.system.clientEmail=d[1],l.system.privateKey=d[2],l.system.language=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.system.appdata.split(",");l.system.accesskeyid=d[0],l.system.secretaccesskey=d[1],l.system.lexregion=d[2],l.system.botname=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.system.appdata.split(",");l.system.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.system.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.system.text=d.slice(2,d.length).join(",");break;case"message":l.system.text=l.system.appdata;break;case"set":l.system.name=l.system.appdata.split("=")[0],l.system.value=l.system.appdata.split("=")[1];break;case"agi":l.system.project=l.system.appdata;break;default:var c=l.system.appdata.split(",");l.system.command=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.system.variable=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.system.variable="";function m(e){n.hide(e)}l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outbounddial"===l.system.appType.toLowerCase()&&(l.system.prefix=l.system.phone?l.system.phone.split("$")[0]:void 0,l.system.callerId=l.system.callerID?"CALLERID(all)="+l.system.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outboundDial"===l.system.appType&&(l.system.phone=i.cutdigits?(l.system.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.system.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.system.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.system.options+="U(xcally-mixmonitor-context)"):l.system.options=l.system.options.replace("U(xcally-mixmonitor-context)",""));if(l.system.appType&&"custom"===l.system.appType);else switch((l.system.app||l.system.appType).toLowerCase()){case"set":l.system.appdata=l.system.name+"="+l.system.value;break;case"custom":break;default:e[0]=l.system.command,e[1]=l.system.variable,l.system.appdata=e.join(",")}m(l.system)},l.closeDialog=m,o.hasRole("admin")?s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1012}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.variables,{id:e.resourceId})}),t=null;if(l.system&&(t=_.find(l.variables,{name:l.system.variable})),t&&!_.some(n,["id",t.id])){var a=_.find(l.variables,{id:t.id});a.canSelect=!1,n.push(a)}l.variables=n})}else{var t=[],a=null;l.system&&(a=_.find(l.variables,{name:l.system.variable}));for(var i=0;i<l.variables.length;i++)a&&l.variables[i].id===a.id&&(l.variables[i].canSelect=!1,t.push(l.variables[i]));l.variables=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppsystemDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.tag=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.tag.appdata)switch(l.tag.appType?l.tag.appType.toLowerCase():l.tag.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.tag.appdata.split(",");l.tag.key=d[0],l.tag.language=d[1],l.tag.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.tag.appdata.split(",");l.tag.projectId=d[0],l.tag.clientEmail=d[1],l.tag.privateKey=d[2],l.tag.language=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.tag.appdata.split(",");l.tag.accesskeyid=d[0],l.tag.secretaccesskey=d[1],l.tag.lexregion=d[2],l.tag.botname=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.tag.appdata.split(",");l.tag.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.tag.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.tag.text=d.slice(2,d.length).join(",");break;case"message":l.tag.text=l.tag.appdata;break;case"set":l.tag.name=l.tag.appdata.split("=")[0],l.tag.value=l.tag.appdata.split("=")[1];break;case"agi":l.tag.project=l.tag.appdata;break;default:var c=l.tag.appdata.split(",");l.tag.tag=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outbounddial"===l.tag.appType.toLowerCase()&&(l.tag.prefix=l.tag.phone?l.tag.phone.split("$")[0]:void 0,l.tag.callerId=l.tag.callerID?"CALLERID(all)="+l.tag.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outboundDial"===l.tag.appType&&(l.tag.phone=i.cutdigits?(l.tag.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.tag.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.tag.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.tag.options+="U(xcally-mixmonitor-context)"):l.tag.options=l.tag.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.tags,{name:l.tag.tag});n&&(l.tag.TagId=n.id);if(l.tag.appType&&"custom"===l.tag.appType);else switch((l.tag.app||l.tag.appType).toLowerCase()){case"set":l.tag.appdata=l.tag.name+"="+l.tag.value;break;case"custom":break;default:e[0]=l.tag.tag,l.tag.appdata=e.join(",")}m(l.tag)},l.closeDialog=m,o.hasRole("admin")?s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1008}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.tags,{id:e.resourceId})}),t=null;if(l.tag&&(t=_.find(l.tags,{name:l.tag.tag})),t&&!_.some(n,["id",t.id])){var a=_.find(l.tags,{id:t.id});a.canSelect=!1,n.push(a)}l.tags=n})}else{var t=[],a=null;l.tag&&(a=_.find(l.tags,{name:l.tag.tag}));for(var i=0;i<l.tags.length;i++)a&&l.tags[i].id===a.id&&(l.tags[i].canSelect=!1,t.push(l.tags[i]));l.tags=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtags",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountApptagDialogController",e)}(),function(){"use strict";function e(e,a,n,t,i,s,o,r,l,d,c){var m=this;function u(e){m.mailAccountInteractions=e||{count:0,rows:[]};for(var n=0;n<m.mailAccountInteractions.rows.length;n+=1){var t=m.mailAccountInteractions.rows[n];v(t),t.Owner.name=h(t)}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,(void 0===m.query.closed||null===m.query.closed||m.query.closed)&&delete m.query.substatus,m.promise=d.mailInteraction.get(m.query,u).$promise}function g(e){d.mailInteraction.delete({id:e.id}).$promise.then(function(){_.remove(m.mailAccountInteractions.rows,{id:e.id}),m.mailAccountInteractions.count-=1,m.mailAccountInteractions.rows.length||p(),l.success({title:"Interaction deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETmailAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(e){_.isEmpty(e.to)||_.includes(e.to,m.mailAccount.email)?e.Contact?(e.contactName=(e.Contact.firstName||"")+" "+(e.Contact.lastName||""),e.contactInfo=e.Contact.email||""):e.contactName=i.instant("MAIL.UNKNOWN"):(e.contactName=e.to.split(" <")[0],e.contactInfo=e.to.split("<").pop().split(">")[0])}function h(e){return e.UserId?e.UserId===m.currentUser.id?i.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">":i.instant("DASHBOARDS.NOT_ASSIGNED")}m.currentUser=c.getCurrentUser(),m.mailAccount={},m.mailAccountInteractions={count:0,rows:[]},m.selectedMailAccountInteractions=[],m.crudPermissions,m.query={read:"null",closed:"null",sort:"-createdAt",includeAll:"true",limit:10,page:1},m.init=function(e,n,t){m.mailAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.MailAccountId=m.mailAccount.id,m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Subject",column:"subject",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Body",column:"plainBody",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Substatus",column:"substatus",type:"multiselect",options:{field:"name",route:{model:"mailSubstatus",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},d.tag.get().$promise.then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){return d.mailSubstatus.get({nolimit:!0}).$promise.then(function(e){m.subStatuses=e||{count:0,rows:[]}})}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Substatus",key:"substatus",type:"select",label:"DASHBOARDS.SELECT_SUBSTATUS",options:m.subStatuses.rows,customOptions:[{value:"null",translate:"DASHBOARDS.NONE"},{value:void 0,translate:"DASHBOARDS.ALL"}],ngValue:"name",ngIf:"closed === 0"},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]})},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the interaction?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("interaction #")+e.id||"interaction")+"</b> will be deleted.").ariaLabel("delete interaction").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.mailInteractionDownload=function(s,e,n){return d.mailInteraction.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="interaction"+s.id,a=new Blob(n,{type:e.type});t="mail-interaction"+s.id+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getMailAccountInteractions=p,m.createOrEditMailAccountInteraction=function(e,n){o.show({controller:"CreateOrEditInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/interactions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailAccount:m.mailAccount,interaction:n,interactions:m.mailAccountInteractions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.spymailInteraction=function(e,t){o.show({controller:"AgentGeneralInteractionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,onShowing:function(e,n){e.vm.init({id:1,channel:"mail",interaction:t,spy:!0},a.$parent.vm.setting)}})},m.openAdvancedSearch=function(){o.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(r.body),clickOutsideToClose:!1,locals:{fields:m.advancedSearch.fields,color:void 0,storagePath:"mail.mailAccounts"},fullscreen:!0}).then(function(e){if(m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply){var n="";n+="||MailAccountId:=$eq["+m.mailAccount.id+"]",m.query.search=e.value?e.value+=n:e.value,p()}}).catch(function(e){l.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.exportSelectedMailAccountInteractions=function(){var e=angular.copy(m.selectedMailAccountInteractions);return m.selectedMailAccountInteractions=[],e},m.deleteMailAccountInteraction=g,m.deleteSelectedMailAccountInteractions=function(e){var n=o.confirm().title("Are you sure want to delete the selected interactions?").htmlContent("<b>"+m.selectedMailAccountInteractions.length+" selected</b> will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedMailAccountInteractions.forEach(function(e){g(e)}),m.selectedMailAccountInteractions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.mail").controller("MailAccountInteractionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.mailAccountMailCannedAnswers=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.mailAccount.getAnswers(m.query,u).$promise}function g(e){d.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(m.mailAccountMailCannedAnswers.rows,{id:e.id}),m.mailAccountMailCannedAnswers.count-=1,m.mailAccountMailCannedAnswers.rows.length||p(),l.success({title:"MailCannedAnswer deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETmailAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.mailAccount={},m.mailAccountMailCannedAnswers={count:0,rows:[]},m.selectedMailAccountMailCannedAnswers=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,key,value,description",limit:10,page:1},m.init=function(e,n,t){m.mailAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.MailAccountId=m.mailAccount.id,m.query.id=m.mailAccount.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the mailCannedAnswer?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("mailCannedAnswer #")+e.id||"mailCannedAnswer")+"</b> will be deleted.").ariaLabel("delete mailCannedAnswer").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getMailAccountMailCannedAnswers=p,m.createOrEditMailAccountMailCannedAnswer=function(e,n){o.show({controller:"CreateOrEditMailCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/mailCannedAnswers/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailAccount:m.mailAccount,mailCannedAnswer:n,mailCannedAnswers:m.mailAccountMailCannedAnswers.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedMailAccountMailCannedAnswers=function(){var e=angular.copy(m.selectedMailAccountMailCannedAnswers);return m.selectedMailAccountMailCannedAnswers=[],e},m.deleteMailAccountMailCannedAnswer=g,m.deleteSelectedMailAccountMailCannedAnswers=function(e){var n=o.confirm().title("Are you sure want to delete the selected mailCannedAnswers?").htmlContent("<b>"+m.selectedMailAccountMailCannedAnswers.length+" selected</b> will be deleted.").ariaLabel("delete mailCannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedMailAccountMailCannedAnswers.forEach(function(e){g(e)}),m.selectedMailAccountMailCannedAnswers=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.mail").controller("MailAccountMailCannedAnswersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MAIL.EDIT_MAILCANNEDANSWER",g.mailCannedAnswer=angular.copy(l),g.mailCannedAnswers=r,g.newMailCannedAnswer=!1,g.mailCannedAnswer||(g.mailCannedAnswer={},g.title="MAIL.NEW_MAILCANNEDANSWER",g.newMailCannedAnswer=!0),n.params.id&&(g.mailCannedAnswer.MailAccountId=n.params.id),g.addNewMailCannedAnswer=function(){g.errors=[],d.cannedAnswer.save(g.mailCannedAnswer).$promise.then(function(e){g.mailCannedAnswers.unshift(e.toJSON()),o.success({title:"MailCannedAnswer properly created",msg:g.mailCannedAnswer.name?g.mailCannedAnswer.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveMailCannedAnswer=function(){g.errors=[],d.cannedAnswer.update({id:g.mailCannedAnswer.id},g.mailCannedAnswer).$promise.then(function(e){var n=_.find(g.mailCannedAnswers,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"MailCannedAnswer properly saved!",msg:g.mailCannedAnswer.name?g.mailCannedAnswer.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteMailCannedAnswer=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The mailCannedAnswer will be deleted.").ariaLabel("Delete MailCannedAnswer").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cannedAnswer.delete({id:g.mailCannedAnswer.id}).$promise.then(function(){_.remove(g.mailCannedAnswers,{id:g.mailCannedAnswer.id}),o.success({title:"MailCannedAnswer properly deleted!",msg:(g.mailCannedAnswer.name||"mailCannedAnswer")+" has been deleted!"}),v(g.mailCannedAnswer)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","mailCannedAnswers","mailCannedAnswer","api","Auth","license","setting","crudPermissions"],angular.module("app.mail").controller("CreateOrEditMailCannedAnswerDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.dispositions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=l.mailAccount.getDispositions(m.query,u).$promise}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){p(),d.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.dispositions={count:0,rows:[]},m.selectedDispositions=[],m.crudPermissions,m.levels={first:"1st",second:"2nd",third:"3rd"},m.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},m.init=function(e,n){m.mailAccount=e||{},m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.MailAccountId=m.mailAccount.id,m.query.id=m.mailAccount.id,p()},m.deleteConfirm=function(e,n){var t=_.some(m.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){g(e)})},m.success=u,m.getDispositions=p,m.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:{id:m.mailAccount.id,field:"MailAccountId",route:"mailAccount"},license:null,setting:null,crudPermissions:m.crudPermissions}}).then(function(e){e&&p()})},m.deleteDisposition=g,m.exportSelectedDispositions=function(){var e=angular.copy(m.selectedDispositions);return m.selectedDispositions=[],e},m.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:m.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedDispositions.forEach(function(e){g(e)}),m.selectedDispositions=[]})},m.deselectDispositions=function(){m.selectedDispositions=[]},m.selectAllDispositions=function(){m.selectedDispositions=m.dispositions.rows};var v=!0,h=1;e.$watch("vm_dc.query.filter",function(e,n){v?o(function(){v=!1}):(n||(h=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=h),p())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","api","toasty","Auth"],angular.module("app.mail").controller("MailAccountDispositionsController",e)}(),function(){"use strict";function e(t,e,a,i,s,n,o,r,l,d,c,m,u){var p=this;p.currentUser=d.getCurrentUser(),p.license=n,p.setting=o,p.passwordPattern=p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.location=e.protocol()+"://"+e.host(),p.mailAccount=c||t.params.mailAccount||{},p.userProfile=m,p.userProfileSection=u&&1==u.count?u.rows[0]:null,p.crudPermissions=d.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.hasModulePermissions={},p.selectedTab=t.params.tab||0,p.gotogoto=function(e,n){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:610}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.mail.realtime.accounts",{}):l.info({title:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.mail.realtime.accounts",{})}},p.agentadddialog=function(e,n){a.show({controller:"MailAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/agentadd/agentadd.html",parent:angular.element(i.body),targetEvent:n,clickOutsideToClose:!0,locals:{mailAccount:e,mailAccounts:p.mailAccounts?p.mailAccounts.rows:[],crudPermissions:p.crudPermissions,realtime:!1}})},p.alert=l.info,p.gotoMailAccounts=function(){t.go("app.mail.mailAccounts",{},{reload:"app.mail.mailAccounts"})},p.saveMailAccount=function(){r.mailAccount.update({id:p.mailAccount.id},p.mailAccount).$promise.then(function(){l.success({title:"MailAccount updated!",msg:p.mailAccount.name?p.mailAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.lists,{id:e.resourceId})}),t=null;if(p.mailAccount&&(t=_.find(p.lists,{id:Number(p.mailAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.lists,{id:t.id});a.canSelect=!1,n.push(a)}p.lists=n})}else{var t=[],a=null;p.mailAccount&&(a=_.find(p.lists,{id:Number(p.mailAccount.ListId)}));for(var i=0;i<p.lists.length;i++)a&&p.lists[i].id===a.id&&(p.lists[i].canSelect=!1,t.push(p.lists[i]));p.lists=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.pauses,{id:e.resourceId})});p.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),p.pauses=n})}else p.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","mailAccount","userProfile","userProfileSection"],angular.module("app.mail").controller("MailAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.mailAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="mailAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedMailAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,key,email,ListId,active,cservice,Imap.service,Imap.host,Imap.port,Imap.tls,Imap.authentication,Imap.user,Imap.password,Imap.mailbox,Imap.connTimeout,Imap.authTimeout,Smtp.service,Smtp.host,Smtp.port,Smtp.secure,Smtp.authentication,Smtp.user,Smtp.pass,cauthentication,cuser,cpassword,fontFamily,fontSize,template,markAsUnread,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,page:1},f.arraycservice=_.keyBy([{option:"Custom",value:"null"},{option:"Gmail",value:"'gmail'"},{option:"Hotmail",value:"'hotmail'"},{option:"Yahoo",value:"'yahoo'"},{option:"Outlook365",value:"'outlook365'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f["arrayImap.service"]=_.keyBy([{option:"Custom",value:"null"},{option:"Gmail",value:"'gmail'"},{option:"Hotmail",value:"'hotmail'"},{option:"Yahoo",value:"'yahoo'"},{option:"Outlook365",value:"'outlook365'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f["arraySmtp.service"]=_.keyBy([{option:"Custom",value:"null"},{option:"Gmail",value:"'gmail'"},{option:"Hotmail",value:"'hotmail'"},{option:"Yahoo",value:"'yahoo'"},{option:"Outlook365",value:"'outlook365'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.mail.mailAccounts.edit",{id:e.id,mailAccount:e,crudPermissions:f.crudPermissions})},f.verifysmtpverifysmtp=function(e,n){{if(e&&e.id)return m.mailAccount.verifySmtp({id:e.id}).$promise.then(function(){p.success({title:"Smtp properly verified",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"Smtp properly verified",msg:e.data?JSON.stringify(e.data):e.toString()})});p.error({title:"Smtp properly verified",msg:"Smpt id unknown"})}},f.interactionsgoto=function(e,n){t.go("app.mail.mailAccounts.edit",{id:e.id,tab:7})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:610}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.mail.realtime.accounts",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.mail.realtime.accounts",{})}},f.agentadddialog=function(e,n){i.show({controller:"MailAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{mailAccount:e,mailAccounts:f.mailAccounts?f.mailAccounts.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("mailAccount")+"?").htmlContent("<b>"+(e.name||"mailAccount")+"</b> will be deleted.").ariaLabel("delete mailAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getMailAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.mailAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="MailAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditMailAccount=function(e,n){i.show({controller:"CreateOrEditMailAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailAccount:n,mailAccounts:f.mailAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteMailAccount=y,f.exportSelectedMailAccounts=function(){var e=angular.copy(f.selectedMailAccounts);return f.selectedMailAccounts=[],e},f.deleteSelectedMailAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected mailAccounts?").htmlContent("<b>"+f.selectedMailAccounts.length+" selected</b> will be deleted.").ariaLabel("delete MailAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedMailAccounts.forEach(function(e){y(e)}),f.selectedMailAccounts=[]})},f.deselectMailAccounts=function(){f.selectedMailAccounts=[]},f.selectAllMailAccounts=function(){f.selectedMailAccounts=f.mailAccounts.rows},g.hasRole("admin")?m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.lists,{id:e.resourceId})}),t=null;if(f.mailAccount&&(t=_.find(f.lists,{id:Number(f.mailAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.lists,{id:t.id});a.canSelect=!1,n.push(a)}f.lists=n})}else{var t=[],a=null;f.mailAccount&&(a=_.find(f.lists,{id:Number(f.mailAccount.ListId)}));for(var i=0;i<f.lists.length;i++)a&&f.lists[i].id===a.id&&(f.lists[i].canSelect=!1,t.push(f.lists[i]));f.lists=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.mailAccounts=e||{count:0,rows:[]}}function y(e){if(e.service)return p.error({title:"Mail Account not deleted!",msg:"You can't remove service account"});m.mailAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.mailAccounts.rows,{id:e.id}),f.mailAccounts.count-=1,f.mailAccounts.rows.length||f.getMailAccounts(),p.success({title:_.startCase("MailAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEmailAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEmailAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getMailAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","mailAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.mail").controller("MailAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MAIL.EDIT_MAILQUEUE",g.mailQueue=angular.copy(l),g.mailQueues=r,g.newMailQueue=!1,g.mailQueue||(g.mailQueue={strategy:"beepall",timeout:10},g.title="MAIL.NEW_MAILQUEUE",g.newMailQueue=!0),g.addNewMailQueue=function(){g.errors=[],d.mailQueue.save(g.mailQueue).$promise.then(function(e){g.mailQueues.unshift(e.toJSON()),o.success({title:"MailQueue properly created",msg:g.mailQueue.name?g.mailQueue.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveMailQueue=function(){g.errors=[],d.mailQueue.update({id:g.mailQueue.id},g.mailQueue).$promise.then(function(e){var n=_.find(g.mailQueues,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"MailQueue properly saved!",msg:g.mailQueue.name?g.mailQueue.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteMailQueue=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The mailQueue will be deleted.").ariaLabel("Delete MailQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.mailQueue.delete({id:g.mailQueue.id}).$promise.then(function(){_.remove(g.mailQueues,{id:g.mailQueue.id}),o.success({title:"MailQueue properly deleted!",msg:(g.mailQueue.name||"mailQueue")+" has been deleted!"}),v(g.mailQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","mailQueues","mailQueue","api","Auth","license","setting","crudPermissions"],angular.module("app.mail").controller("CreateOrEditMailQueueDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.mailQueue.getAgents({id:c.mailQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserMailQueue?"penalty "+e.UserMailQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.mailQueue=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.mailQueue.removeAgents({id:c.mailQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.mailQueue.addAgents({id:c.mailQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("MAIL.ALL_AGENTS"),labelSelected:r.instant("MAIL.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","mailQueue","mailQueues","realtime","$translate","Auth","crudPermissions"],angular.module("app.mail").controller("MailQueueagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.mailQueue.getTeams({id:l.mailQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.mailQueue=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("MAIL.ALL_TEAMS"),labelSelected:t.instant("MAIL.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.mailQueue.removeTeams({id:l.mailQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.mailQueue.addTeams({id:l.mailQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","mailQueue","$translate","Auth","crudPermissions"],angular.module("app.mail").controller("MailQueueteamaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.mailQueue=c||e.params.mailQueue||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.teamadddialog=function(e,n){t.show({controller:"MailQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{mailQueue:e,mailQueues:u.mailQueues?u.mailQueues.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){t.show({controller:"MailQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{mailQueue:e,mailQueues:u.mailQueues?u.mailQueues.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.alert=l.info,u.gotoMailQueues=function(){e.go("app.mail.mailQueues",{},{reload:"app.mail.mailQueues"})},u.saveMailQueue=function(){r.mailQueue.update({id:u.mailQueue.id},u.mailQueue).$promise.then(function(){l.success({title:"MailQueue updated!",msg:u.mailQueue.name?u.mailQueue.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","mailQueue","userProfileSection"],angular.module("app.mail").controller("MailQueueController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.mailQueues=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="mailQueues",f.listOrder="",f.listOrderAsc=null,f.selectedMailQueues=[],f.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"mail",limit:10,page:1},f.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.mail.mailQueues.edit",{id:e.id,mailQueue:e,crudPermissions:f.crudPermissions})},f.teamadddialog=function(e,n){i.show({controller:"MailQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{mailQueue:e,mailQueues:f.mailQueues?f.mailQueues.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"MailQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{mailQueue:e,mailQueues:f.mailQueues?f.mailQueues.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("mailQueue")+"?").htmlContent("<b>"+(e.name||"mailQueue")+"</b> will be deleted.").ariaLabel("delete mailQueue").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:610}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.mail.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.mail.realtime.queues",{})}},f.success=E,f.getMailQueues=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.mailQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="MailQueues",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditMailQueue=function(e,n){i.show({controller:"CreateOrEditMailQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailQueue:n,mailQueues:f.mailQueues.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteMailQueue=y,f.exportSelectedMailQueues=function(){var e=angular.copy(f.selectedMailQueues);return f.selectedMailQueues=[],e},f.deleteSelectedMailQueues=function(e){var n=i.confirm().title("Are you sure want to delete the selected mailQueues?").htmlContent("<b>"+f.selectedMailQueues.length+" selected</b> will be deleted.").ariaLabel("delete MailQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedMailQueues.forEach(function(e){y(e)}),f.selectedMailQueues=[]})},f.deselectMailQueues=function(){f.selectedMailQueues=[]},f.selectAllMailQueues=function(){f.selectedMailQueues=f.mailQueues.rows};var b=!0,A=1;function E(e){f.mailQueues=e||{count:0,rows:[]}}function y(e){m.mailQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.mailQueues.rows,{id:e.id}),f.mailQueues.count-=1,f.mailQueues.rows.length||f.getMailQueues(),p.success({title:_.startCase("MailQueue")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEmailQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEmailQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getMailQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","mailQueues","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.mail").controller("MailQueuesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MAIL.EDIT_MAILSUBSTATUS",g.mailSubstatus=angular.copy(l),g.mailSubtatuses=r,g.newMailSubstatus=!1,g.mailSubstatus||(g.mailSubstatus={},g.title="MAIL.NEW_MAILSUBSTATUS",g.newMailSubstatus=!0),g.addNewMailSubstatus=function(){g.errors=[],d.mailSubstatus.save(g.mailSubstatus).$promise.then(function(e){g.mailSubtatuses.unshift(e.toJSON()),o.success({title:"MailSubstatus properly created",msg:g.mailSubstatus.name?g.mailSubstatus.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailSubstatus.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailSubstatus.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveMailSubstatus=function(){g.errors=[],d.mailSubstatus.update({id:g.mailSubstatus.id},g.mailSubstatus).$promise.then(function(e){var n=_.find(g.mailSubtatuses,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"MailSubstatus properly saved!",msg:g.mailSubstatus.name?g.mailSubstatus.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailSubstatus.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailSubstatus.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteMailSubstatus=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The mailSubstatus will be deleted.").ariaLabel("Delete MailSubstatus").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.mailSubstatus.delete({id:g.mailSubstatus.id}).$promise.then(function(){_.remove(g.mailSubtatuses,{id:g.mailSubstatus.id}),o.success({title:"MailSubstatus properly deleted!",msg:(g.mailSubstatus.name||"mailSubstatus")+" has been deleted!"}),v(g.mailSubstatus)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailSubstatus.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailSubstatus.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","mailSubtatuses","mailSubstatus","api","Auth","license","setting","crudPermissions"],angular.module("app.mail").controller("CreateOrEditMailSubstatusDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.mailSubtatuses=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="mailSubtatuses",f.listOrder="",f.listOrderAsc=null,f.selectedMailSubstatuses=[],f.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditMailSubstatusDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailSubtatuses/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{mailSubstatus:e,mailSubtatuses:f.mailSubtatuses.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("mailSubstatus")+"?").htmlContent("<b>"+(e.name||"mailSubstatus")+"</b> will be deleted.").ariaLabel("delete mailSubstatus").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getMailSubstatuses=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.mailSubstatus.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="MailSubstatuses",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditMailSubstatus=function(e,n){i.show({controller:"CreateOrEditMailSubstatusDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailSubtatuses/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailSubstatus:n,mailSubtatuses:f.mailSubtatuses.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteMailSubstatus=y,f.exportSelectedMailSubstatuses=function(){var e=angular.copy(f.selectedMailSubstatuses);return f.selectedMailSubstatuses=[],e},f.deleteSelectedMailSubstatuses=function(e){var n=i.confirm().title("Are you sure want to delete the selected mailSubtatuses?").htmlContent("<b>"+f.selectedMailSubstatuses.length+" selected</b> will be deleted.").ariaLabel("delete MailSubstatuss").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedMailSubstatuses.forEach(function(e){y(e)}),f.selectedMailSubstatuses=[]})},f.deselectMailSubstatuses=function(){f.selectedMailSubstatuses=[]},f.selectAllMailSubstatuses=function(){f.selectedMailSubstatuses=f.mailSubtatuses.rows};var b=!0,A=1;function E(e){f.mailSubtatuses=e||{count:0,rows:[]}}function y(e){m.mailSubstatus.delete({id:e.id}).$promise.then(function(){_.remove(f.mailSubtatuses.rows,{id:e.id}),f.mailSubtatuses.count-=1,f.mailSubtatuses.rows.length||f.getMailSubstatuses(),p.success({title:_.startCase("MailSubstatus")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEmailSubstatus"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEmailSubstatus",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getMailSubstatuses())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","mailSubtatuses","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.mail").controller("MailSubstatusesController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){_.forIn(p.mailAccounts,function(e,n){p.rpcMailAccounts[n]&&_.merge(e,p.rpcMailAccounts[n])}),_.forIn(p.mailAccounts,function(n,e){var t={id:e,sort:"-id",direction:"in",limit:1,offset:0,$gte:"createdAt,"+moment().startOf("day").format("YYYY-MM-DD HH:mm:ss"),fields:"id,createdAt"};s.mailAccount.getMessages(t).$promise.then(function(e){return e&&(n.in=e.count||0,n.lastIn=e.rows&&e.rows.length?e.rows[0].createdAt:void 0),t.direction="out",s.mailAccount.getMessages(t).$promise}).then(function(e){e&&(n.out=e.count||0,n.lastOut=e.rows&&e.rows.length?e.rows[0].createdAt:void 0)}).catch(function(e){console.log(e)})})}p.currentUser=u.getCurrentUser(),p.count=l&&l.count?l.count:0,p.mailAccounts=l?_.keyBy(l.rows?l.rows:[],"id"):{},p.rpcMailAccounts=d?_.keyBy(d.rows?d.rows:[],"id"):{},p.userProfile=c,p.userProfileSection=m&&1==m.count?m.rows[0]:null,p.crudPermissions=u.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.query={sort:"-name",limit:10,page:1},p.success=f,p.$onInit=g,p.getMailAccounts=function(){p.query.offset=(p.query.page-1)*p.query.limit,u.hasRole("admin")?p.promise=s.mailAccount.get(p.query,f).$promise:(p.query.id=p.userProfile.id,p.query.section="MailAccounts",p.promise=s.userProfile.getResources(p.query,f).$promise)},p.onSave=function(e){p.mailAccounts[e.id]&&_.merge(p.mailAccounts[e.id],e)},p.onMailMessageSave=function(e){p.mailAccounts[e.MailAccountId]&&("in"==e.direction?(p.mailAccounts[e.MailAccountId].in+=1,p.mailAccounts[e.MailAccountId].lastIn=e.createdAt):(p.mailAccounts[e.MailAccountId].out+=1,p.mailAccounts[e.MailAccountId].lastOut=e.createdAt))},p.goToMailAccount=function(e,n){i.go("app.mail.mailAccounts.edit",{id:n.id,mailAccount:n})},p.verifySmtp=function(e,n){{if(n&&n.id)return s.mailAccount.verifySmtp({id:n.id}).$promise.then(function(){r.success({title:"Smtp properly verified",msg:"Connection succeded!"})}).catch(function(e){r.error({title:"Smtp properly verified",msg:e.data?JSON.stringify(e.data):e.toString()})});r.error({title:"Smtp properly verified",msg:"Smpt id unknown"})}},p.order=[],_.forIn(p.mailAccounts,function(e,n){p.order.push(e.id)}),o.on("mailAccount:save",p.onSave),o.on("mailAccount:update",p.onSave),o.on("mailMessage:save",p.onMailMessageSave);var v=!0,h=1;function f(e){if(p.mailAccounts=e?_.keyBy(e.rows?e.rows:[],"id"):{},e.rows){p.order=[];for(var n=0;n<e.rows.length;n++)p.order.push(e.rows[n].id)}g()}e.$watch("vm.query.filter",function(e,n){v?t(function(){v=!1}):(n||(h=p.query.page),e!==n&&(p.query.page=1),e||(p.query.page=h),p.getMailAccounts())}),e.$on("$destroy",function(){o.removeAllListeners("mailAccount:save"),o.removeAllListeners("mailAccount:update"),o.removeAllListeners("mailMessage:save")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$state","api","socket","toasty","mailAccounts","rpcMailAccounts","userProfile","userProfileSection","Auth"],angular.module("app.mail").controller("MailAccountsRealtimeController",e)}(),function(){"use strict";function e(e,o,n,t,a,i,s,r,l,d,c,m,u,p,g,v,h,f){var b=this,A=["userpic","online","lastLoginAt","lastPauseAt","pauseType","lastPauseAt","internal","address","chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","chatCapacity","openchannelCapacity","mailCapacity","smsCapacity","whatsappCapacity","faxCapacity","chatCurrentCapacity","openchannelCurrentCapacity","mailCurrentCapacity","smsCurrentCapacity","whatsappCurrentCapacity","faxCurrentCapacity","chatStatus","openchannelStatus","mailStatus","smsStatus","whatsappStatus","faxStatus","voiceStatus","chatStatusTime","openchannelStatusTime","mailStatusTime","smsStatusTime","whatsappStatusTime","faxStatusTime","voiceStatusTime","queue","destconnectedlinenum","screenrecording","phoneBarEnableScreenRecordingByAgent","phoneBarEnableAutomaticScreenRecording"],E=["chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","online"];for(var y in b.currentUser=v.getCurrentUser(),b.availableStates=["ringing","inuse","busy","onhold","not_inuse"],b.pauses=s||{count:0,rows:[]},b.license=h,b.userProfile=p,b.userProfileSection=g&&1==g.count?g.rows[0]:null,b.crudPermissions=v.parseCrudPermissions(b.userProfileSection?b.userProfileSection.crudPermissions:null),b.agents=r?_.keyBy(r.rows?r.rows:[],"id"):{},b.rpcAgents=l?_.keyBy(l.rows?l.rows:[],"id"):{},b.paginatedAgents={},b.load=!1,b.order=[],b.agentInternal={},b.agents)b.agents.hasOwnProperty(y)&&(b.agents[y].init=!0);b.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},b.logout=function(e,n){return d.user.logout({id:e.id,device:"realtime",agent_id:e.id,agent_name:e.name}).$promise.then(function(){m.success({title:"Agent logout",msg:e.fullname+" properly logout"}),b.agents[e.id]&&(b.agents[e.id].online=!1),b.rpcAgents[e.id]&&(b.rpcAgents[e.id].online=!1),T()}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.queueAdd=function(e,n){t.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:[],channel:"mail",direction:"inbound",crudPermissions:b.crudPermissions}})},b.pause=function(n,e){return d.user.pause({id:n.id,type:e}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.unPause=function(n){return d.user.unpause({id:n.id}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.showInfo=function(e){t.show(t.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},b.getAgentStatus=O,b.getAgentGlobalStatus=w,b.isPause=I,b.checkPause=function(e){return"pause"===e},b.isPartialPause=function(e){return"*pause"===e},b.onSave=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(_.omit(e,E),A)),_.merge(b.rpcAgents[e.id],_.pick(_.omit(e,E),A)),w(b.agents[e.id]))},b.onUpdate=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(e,A)),_.merge(b.rpcAgents[e.id],_.pick(e,A)),e.lastPauseAt&&(b.agents[e.id].globalStatusTime=e.lastPauseAt,b.rpcAgents[e.id].globalStatusTime=e.lastPauseAt),w(b.agents[e.id]))},b.onInit=T,b.onConnect=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(_.merge(b.agents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])),_.merge(b.rpcAgents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])))},b.onComplete=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(b.agents[b.agentInternal[e.destaccountcode]]=_.omit(b.agents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]),b.rpcAgents[b.agentInternal[e.destaccountcode]]=_.omit(b.rpcAgents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]))},b.screenRecording=function(e,n){return d.user.update({id:e.id},{screenrecording:n}).$promise.catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.on("user:save",b.onSave),c.on("user:update",b.onUpdate),c.on("user:agentconnect",b.onConnect),c.on("user:agentcomplete",b.onComplete),T();var S=f(function(){b.load&&(b.load=!1,T())},999);function T(e){b.load=!1;var n,t,a=o.defer();b.promise=a.promise,b.filteredAgents=[],b.order=[],_.forIn(b.agents,function(e,n){b.rpcAgents[n]&&_.merge(e,_.pick(_.omit(b.rpcAgents[n],E),A)),w(e),e.online?(b.filteredAgents.push(e),b.agentInternal[e.internal]=n):e.globalStatusTime=_.toNumber(moment().format("x"))}),b.query.globalStatusFilter&&_.remove(b.filteredAgents,function(e){return e.globalStatus!==b.query.globalStatusFilter}),b.query.pauseTypeFilter&&_.remove(b.filteredAgents,function(e){return e.pauseType!==b.query.pauseTypeFilter}),b.query.filter&&_.remove(b.filteredAgents,function(e){return e.fullname.toLowerCase().indexOf(b.query.filter.toLowerCase())<0}),b.filteredAgents=(n=b.filteredAgents,t=_.startsWith(b.query.order,"-")?"desc":"asc",_.orderBy(n,[b.query.order.replace("-","")],[t]));var i=(b.query.page-1)*b.query.limit;b.paginatedAgents=_.drop(b.filteredAgents,i).slice(0,b.query.limit);for(var s=0;s<b.paginatedAgents.length;s+=1)b.order.push(b.paginatedAgents[s].id);a.resolve(),b.load=!0}function I(e){return"pause"===e||"*pause"===e}function C(e){return"idle"===e||"unknown"===e||"unavailable"===e||"ringing"===e||_.isNil(e)}function O(e,n){return"voice"===n?"idle"!==e[n+"Status"]?e[n+"Status"]:e[n+"Pause"]?e[n+"Status"]="pause":"idle":e[n+"Pause"]?e[n+"Status"]="pause":e[n+"Status"]}function w(e){var n="unknown";n=_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"pause":_.some([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"*pause":_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],C)?"idle":"busy",e.globalStatus!==n&&(e.globalStatus=n,e.init?(e.init=!1,e.globalStatusTime=I(n)?_.toNumber(moment(e.lastPauseAt).format("x")):_.max([e.voiceStatusTime,e.chatStatusTime,e.mailStatusTime,e.smsStatusTime,e.whatsappStatusTime,e.openchannelStatusTime,e.faxStatusTime])):e.globalStatusTime=_.toNumber(moment().format("x")))}e.$on("$destroy",function(){c.removeAllListeners("user:save"),c.removeAllListeners("user:update"),c.removeAllListeners("user:agentconnect"),c.removeAllListeners("user:agentcomplete"),S&&(f.cancel(S),S=null)})}e.$inject=["$scope","$q","$timeout","$mdDialog","$document","$filter","pauses","agents","rpcAgents","api","socket","toasty","helperClasses","userProfile","userProfileSection","Auth","license","$interval"],angular.module("app.voice").controller("AgentsMailRealtimeController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c){var m=this,u=["loggedIn","available","waiting","paused"],p=n(function(){},999);m.currentUser=c.getCurrentUser(),m.queues=i,m.userProfileSection=d&&1==d.count?d.rows[0]:null,m.crudPermissions=c.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={id:c.isUser()?m.currentUser.id:void 0,section:c.isUser()?"MailQueues":void 0,channel:"mail",sort:"name",limit:10,page:1},m.getQueues=function(){m.query.offset=(m.query.page-1)*m.query.limit,s.realtime.getQueues(m.query).$promise.then(function(e){m.queues=e}).catch(function(e){console.error(e)})},m.editQueue=function(e,n){t.show({controller:"CreateOrEditMailQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailQueue:n,mailQueues:m.queues.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.addAgent=function(e,n){t.show({controller:"MailQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailQueue:n,mailQueues:m.queues.rows,realtime:!1,crudPermissions:m.crudPermissions}})},o.on("mail_queue:save",function(e){var n=_.find(m.queues.rows,["id",e.id]);n&&_.merge(n,_.pick(e,u))}),o.on("userMailQueue:save",function(e){var n=_.find(m.queues.rows,["id",e.MailQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),o.on("userMailQueue:remove",function(e){var n=_.find(m.queues.rows,["id",e.MailQueueId]);n&&(0<n.loggedInDb&&n.loggedInDb--,_.remove(n.agents,["id",e.UserId]))}),o.on("user:update",function(t){m.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&(!1===t.online?(n.online=!1,e.loggedInDb-=1,n.paused?(n.paused=!1,e.paused-=1):e.available-=1):n.online?t.mailPause?(n.paused=!0,e.paused+=1,e.available-=1):!t.mailPause&&n.paused&&(n.paused=!1,e.paused-=1,e.available+=1):(n.online=!0,e.loggedInDb+=1,e.available+=1))})}),e.$on("$destroy",function(){o.removeAllListeners("mail_queue:save"),o.removeAllListeners("userMailQueue:remove"),o.removeAllListeners("userMailQueue:save"),o.removeAllListeners("user:update"),p&&n.cancel(p)})}e.$inject=["$scope","$mdDialog","$document","$interval","queues","api","socket","toasty","userProfile","userProfileSection","Auth"],angular.module("app.mail").controller("QueuesMailRealtimeController",e)}(),function(){"use strict";angular.module("app.auth").factory("helperClasses",function(){return{status:{registered:"green-300-fg icon-checkbox-marked-circle",unregistered:"red-300-fg icon-close-circle",lagged:"red-300-fg icon-close-circle",reachable:"green-300-fg icon-checkbox-marked-circle",unreachable:"red-300-fg icon-close-circle",unknown:"grey-fg icon-minus-circle"},state:{unknown:"grey-fg icon-phone-hangup",not_inuse:"green-300-fg icon-phone-hangup",inuse:"red-300-fg icon-phone-in-talk",busy:"red-300-fg icon-phone-locked",invalid:"grey-fg icon-phone-hangup",unavailable:"grey-fg icon-phone-hangup",ringing:"blue-300-fg icon-phone-incoming",ringinuse:"blue-300-fg icon-phone-incoming",onhold:"blue-300-fg icon-phone-paused"},channelStatus:{ring:"blue-300-fg icon-phone-incoming",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"},channelStatusOut:{ring:"blue-300-fg icon-phone-outgoing",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"}}})}(),function(){"use strict";function e(e,t,n){switch(n.disconnect(),n.connect(),this.selectedTab=0,t.current.name){case"app.mail.realtime.agents":this.selectedTab=0;break;case"app.mail.realtime.queues":this.selectedTab=1;break;case"app.mail.realtime.accounts":this.selectedTab=2;break;default:this.selectedTab=0,t.go("app.mail.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.mail.realtime.agents");break;case 1:t.go("app.mail.realtime.queues");break;case 2:t.go("app.mail.realtime.accounts");break;default:t.go("app.mail.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.mail").controller("MailRealtimeController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MARKETPLACE.EDIT_PLUGIN",g.plugin=angular.copy(l),g.plugins=r,g.newPlugin=!1,g.plugin||(g.plugin={},g.title="MARKETPLACE.NEW_PLUGIN",g.newPlugin=!0),g.addNewPlugin=function(){g.errors=[],d.plugin.save(g.plugin).$promise.then(function(e){g.plugins.unshift(e.toJSON()),o.success({title:"Plugin properly created",msg:g.plugin.name?g.plugin.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.plugin.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.plugin.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.savePlugin=function(){g.errors=[],d.plugin.update({id:g.plugin.id},g.plugin).$promise.then(function(e){var n=_.find(g.plugins,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Plugin properly saved!",msg:g.plugin.name?g.plugin.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.plugin.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.plugin.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deletePlugin=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The plugin will be deleted.").ariaLabel("Delete Plugin").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.plugin.delete({id:g.plugin.id}).$promise.then(function(){_.remove(g.plugins,{id:g.plugin.id}),o.success({title:"Plugin properly deleted!",msg:(g.plugin.name||"plugin")+" has been deleted!"}),v(g.plugin)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.plugin.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.plugin.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","plugins","plugin","api","Auth","license","setting","crudPermissions"],angular.module("app.marketplace").controller("CreateOrEditPluginDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.plugin=c||e.params.plugin||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoPlugins=function(){e.go("app.marketplace.plugins",{},{reload:"app.marketplace.plugins"})},u.savePlugin=function(){r.plugin.update({id:u.plugin.id},u.plugin).$promise.then(function(){l.success({title:"Plugin updated!",msg:u.plugin.name?u.plugin.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETplugin",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","plugin","userProfileSection"],angular.module("app.marketplace").controller("MarketplacePluginController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.plugins=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="plugins",f.listOrder="",f.listOrderAsc=null,f.selectedPlugins=[],f.query={fields:"createdAt,updatedAt,id,name,type,active,description,icon,sidebar,path,adminUrl,agentUrl,scriptName,scriptPath,version",sort:"-updatedAt",limit:10,page:1},f.installing=!1,f.arraysidebar=_.keyBy([{option:"Always",value:"'always'"},{option:"Admin Only",value:"'adminOnly'"},{option:"Agent Only",value:"'agentOnly'"},{option:"Never",value:"'never'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.installplugin=function(e){{if("script"!==e.type)return e.active=!0,m.plugin.update({id:e.id},e).$promise.then(function(){p.success({title:"Plugin installed!",msg:e.name?e.name+" has been installed!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"api.plugin.update"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.plugin.update",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})});f.installing=!0,m.pm2.save({name:e.scriptName,script:e.path+"/"+e.scriptPath}).$promise.then(function(){return e.active=!0,m.plugin.update({id:e.id},e).$promise}).then(function(){f.installing=!1,p.success({title:"Plugin installed!",msg:e.name?e.name+" has been installed!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"api.pm2.save"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.pm2.save",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}},f.editstate=function(e,n){t.go("app.marketplace.plugins.edit",{id:e.id,plugin:e,crudPermissions:f.crudPermissions})},f.stopplugin=function(e,n){var t=i.confirm().title("Are you sure want to stop the plugin attached process?").htmlContent("<b>"+(e.name||"plugin")+"</b> attached process will be stoppped.").ariaLabel("stop plugin process").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){var t;t=e,m.pm2.get().$promise.then(function(e){if(!e||!e.rows)throw new Error("Failed to retrieve pm2 processes");var n=_.find(e.rows,{name:t.scriptName});if(!n)throw new Error("No corresponding process found");m.pm2.update({id:n.pm_id,status:"stopped"}).$promise.then(function(){p.success({title:"Process stopped!",msg:"Attached pm2 process successfully stopped"})})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"api.pm2.update"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.pm2.update",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){console.log("CANCEL")})},f.restartplugin=function(e,n){var t=i.confirm().title("Are you sure want to restart the plugin attached process?").htmlContent("<b>"+(e.name||"plugin")+"</b> attached process will be restarted.").ariaLabel("restart plugin process").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){var t;t=e,m.pm2.get().$promise.then(function(e){if(!e||!e.rows)throw new Error("Failed to retrieve pm2 processes");var n=_.find(e.rows,{name:t.scriptName});if(!n)throw new Error("No corresponding process found");m.pm2.update({id:n.pm_id,status:"online"}).$promise.then(function(){p.success({title:"Process restarted!",msg:"Attached pm2 process successfully restarted"})})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"api.pm2.update"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.pm2.update",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){console.log("CANCEL")})},f.downloadfile2=function(s,e){return m.plugin.download({id:s.id}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=s.name.replace(" ","_").toLowerCase()+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.plugin.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},f.uninstallplugin=function(e,n){var t=i.confirm().title("Are you sure want to uninstall the plugin?").htmlContent("<b>"+(e.name||"plugin")+"</b> will be uninstalled.").ariaLabel("uninstall plugin").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){!function(t){"script"===t.type&&m.pm2.get().$promise.then(function(e){if(!e||!e.rows)throw new Error("Failed to retrieve pm2 processes");var n=_.find(e.rows,{name:t.scriptName});if(!n)throw new Error("No corresponding process found");m.pm2.delete({id:n.pm_id,name:t.scriptName}).$promise}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.pm2.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})});t.active=!1,m.plugin.update({id:t.id},t).$promise.then(function(){p.success({title:"Plugin uninstalled!",msg:t.name?t.name+" has been uninstalled!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"api.plugin.update"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.plugin.update",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}(e)},function(){console.log("CANCEL")})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("plugin")+"?").htmlContent("<b>"+(e.name||"plugin")+"</b> will be deleted.").ariaLabel("delete plugin").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getPlugins=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.plugin.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Plugins",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditPlugin=function(e,n){i.show({controller:"CreateOrEditPluginDialogController",controllerAs:"vm",templateUrl:"app/main/apps/marketplace/views/plugins/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{plugin:n,plugins:f.plugins.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deletePlugin=y,f.exportSelectedPlugins=function(){var e=angular.copy(f.selectedPlugins);return f.selectedPlugins=[],e},f.deleteSelectedPlugins=function(e){var n=i.confirm().title("Are you sure want to delete the selected plugins?").htmlContent("<b>"+f.selectedPlugins.length+" selected</b> will be deleted.").ariaLabel("delete Plugins").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedPlugins.forEach(function(e){y(e)}),f.selectedPlugins=[]})},f.deselectPlugins=function(){f.selectedPlugins=[]},f.selectAllPlugins=function(){f.selectedPlugins=f.plugins.rows},f.uploadPlugin=function(e){i.show({controller:"UploadPluginDialogController",controllerAs:"vm",templateUrl:"app/main/apps/marketplace/views/plugins/upload/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{plugins:f.plugins.rows}})};var b=!0,A=1;function E(e){f.plugins=e||{count:0,rows:[]}}function y(t){t.active&&"script"==t.type&&m.pm2.get().$promise.then(function(e){if(!e||!e.rows)return p.error({title:"Plugin not deleted!",msg:"Failed to retrieve pm2 processes"});var n=_.find(e.rows,{name:t.scriptName});n?m.pm2.delete({id:n.pm_id,name:t.scriptName}).$promise:console.log("No '%s' process found",t.scriptName)}).catch(function(e){return p.error({title:"PM2 process not found!",msg:"Failed to delete the attached pm2 process"})}),m.plugin.delete({id:t.id}).$promise.then(function(){_.remove(f.plugins.rows,{id:t.id}),f.plugins.count-=1,f.plugins.rows.length||f.getPlugins(),p.success({title:_.startCase("Plugin")+" deleted!",msg:t.name?t.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEplugin"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEplugin",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getPlugins())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","plugins","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.marketplace").controller("MarketplacePluginsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this,r=2,l=1024*r*1024;o.currentUser=s.getCurrentUser(),o.errors=[],o.title="MARKETPLACE.UPLOAD_PLUGIN",o.plugins=a,o.uploadPlugins=[],o.uploadState="none",o.plugin={},o.ngFlowOptions={maxChunkRetries:1,chunkSize:l,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0,target:"api/plugins"},o.ngFlow={flow:{}},o.dropping=!1,o.fileAdded=function(e){var n=["zip"];if(!_.includes(n,e.getExtension()))return t.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(e.size>l)return t.error({title:"File too big",msg:"The max allowed size is "+r+"MB"}),!1;return o.plugin={id:e.uniqueIdentifier,file:e},o.uploadPlugins.unshift(o.plugin),!0},o.upload=function(){o.uploadState="uploading",o.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},o.ngFlow.flow.opts.query={role:o.currentUser.role,userProfileId:o.currentUser.userProfileId},o.ngFlow.flow.upload()},o.fileSuccess=function(a,e){o.plugins.unshift(JSON.parse(e)),angular.forEach(o.uploadPlugins,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result}}})},o.uploadError=function(e,n){o.ngFlow.flow.cancel(),t.error({title:"Upload error",msg:"Cannot upload the plugin"}),o.uploadState="failed"},o.uploadComplete=function(){"failed"!==o.uploadState&&(o.uploadState="completed",t.success({title:"Upload completed",msg:o.plugin.file.name+" uploaded successfully"}))},o.closeDialog=function(){n.hide()}}e.$inject=["$cookies","$mdDialog","toasty","plugins","api","Auth"],angular.module("app.marketplace").controller("UploadPluginDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MOTIONDIALER.EDIT_IVRCAMPAIGN",g.ivrCampaign=angular.copy(l),g.ivrCampaigns=r,g.newIvrCampaign=!1,g.ivrCampaign||(g.ivrCampaign={active:!0,type:"ivr",dialCheckDuplicateType:"always",dialCutDigit:0,limitCalls:30,dialRandomLastDigitCallerIdNumber:0,dialOriginateTimeout:30,dialGlobalMaxRetry:4,dialCongestionMaxRetry:3,dialCongestionRetryFrequency:150,dialBusyMaxRetry:3,dialBusyRetryFrequency:150,dialNoAnswerMaxRetry:3,dialNoAnswerRetryFrequency:150,dialNoSuchNumberMaxRetry:3,dialNoSuchNumberRetryFrequency:150,dialDropMaxRetry:3,dialDropRetryFrequency:150,dialAbandonedMaxRetry:3,dialAbandonedRetryFrequency:150,dialMachineMaxRetry:3,dialMachineRetryFrequency:150,dialAgentRejectMaxRetry:3,dialAgentRejectRetryFrequency:150,dialOrderByScheduledAt:"ASC",dialGlobalInterval:"07:00-22:00,*,*,*",dialAMDInitialSilence:2500,dialAMDGreeting:1500,dialAMDAfterGreetingSilence:800,dialAMDTotalAnalysisTime:5e3,dialAMDMinWordLength:100,dialAMDBetweenWordsSilence:50,dialAMDMaximumNumberOfWords:3,dialAMDSilenceThreshold:256,dialAMDMaximumWordLength:5e3},g.title="MOTIONDIALER.NEW_IVRCAMPAIGN",g.newIvrCampaign=!0),g.addNewIvrCampaign=function(){g.errors=[],d.campaign.save(g.ivrCampaign).$promise.then(function(e){g.ivrCampaigns.unshift(e.toJSON()),o.success({title:"IvrCampaign properly created",msg:g.ivrCampaign.name?g.ivrCampaign.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.campaign.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.campaign.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveIvrCampaign=function(){g.errors=[],d.campaign.update({id:g.ivrCampaign.id},g.ivrCampaign).$promise.then(function(e){var n=_.find(g.ivrCampaigns,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"IvrCampaign properly saved!",msg:g.ivrCampaign.name?g.ivrCampaign.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.campaign.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.campaign.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteIvrCampaign=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The ivrCampaign will be deleted.").ariaLabel("Delete IvrCampaign").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.campaign.delete({id:g.ivrCampaign.id}).$promise.then(function(){_.remove(g.ivrCampaigns,{id:g.ivrCampaign.id}),o.success({title:"IvrCampaign properly deleted!",msg:(g.ivrCampaign.name||"ivrCampaign")+" has been deleted!"}),v(g.ivrCampaign)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.campaign.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.campaign.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.trunk.get({fields:"id,name",sort:"name",table:"true"}).$promise.then(function(e){g.trunks=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.trunk.get({fields:"id,name",sort:"name",table:"true"}).$promise.then(function(e){g.trunks=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.trunks,{id:e.resourceId})});g.trunks.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),g.trunks=n})}else g.trunks=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.hasRole("admin")?d.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.projects=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PROJECTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.projects=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1103}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.projects,{id:e.resourceId})}),t=null;if(g.ivrCampaign&&(t=_.find(g.projects,{id:Number(g.ivrCampaign.SquareProjectId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.projects,{id:t.id});a.canSelect=!1,n.push(a)}g.projects=n})}else{var t=[],a=null;g.ivrCampaign&&(a=_.find(g.projects,{id:Number(g.ivrCampaign.SquareProjectId)}));for(var i=0;i<g.projects.length;i++)a&&g.projects[i].id===a.id&&(g.projects[i].canSelect=!1,t.push(g.projects[i]));g.projects=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.hasRole("admin")?d.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){g.interval=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){g.interval=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.interval,{id:e.resourceId})}),t=null;if(g.ivrCampaign&&(t=_.find(g.interval,{id:Number(g.ivrCampaign.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.interval,{id:t.id});a.canSelect=!1,n.push(a)}g.interval=n})}else{var t=[],a=null;g.ivrCampaign&&(a=_.find(g.interval,{id:Number(g.ivrCampaign.IntervalId)}));for(var i=0;i<g.interval.length;i++)a&&g.interval[i].id===a.id&&(g.interval[i].canSelect=!1,t.push(g.interval[i]));g.interval=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","ivrCampaigns","ivrCampaign","api","Auth","license","setting","crudPermissions"],angular.module("app.motiondialer").controller("CreateOrEditIvrCampaignDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l){var d=this;function c(){return a(function(t,n){return a(function(n,t){return s.cmList.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return d.items=e.rows?e.rows:[],r.hasRole("admin")?e:d.section?d.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:d.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return d.allowedItems=_.map(n,function(e){return _.find(d.items,{id:r.hasRole("admin")||d.section.autoAssociation?e.id:e.resourceId})}),d.startingAllowedItems=angular.copy(d.allowedItems),d.items.forEach(function(e){var n=_.find(d.allowedItems,{id:e.id});"admin"===d.currentUser.role?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s[d.apiRoute][d.getApi]({id:d.ivrCampaign.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];d.selectedItems=_.map(n,function(e){return _.find(d.items,{id:e.id})}),d.startingSelectedItems=angular.copy(d.selectedItems),d.dualMultiselectOptions.selectedItems=d.selectedItems,d.dualMultiselectOptions.items=_.differenceBy(d.allowedItems,d.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}d.currentUser=r.getCurrentUser(),d.ivrCampaign=n,d.crudPermissions=l,d.apiRoute="campaign",d.getApi="getBlackLists",d.addApi="addBlackLists",d.removeApi="removeBlackLists",d.items=[],d.allowedItems=[],d.selectedItems=[],d.startingAllowedItems=[],d.startingSelectedItems=[],d.pendingChanges=!1,d.loading=!1,d.dualMultiselectOptions={allowedItems:[],selectedItems:[],showSelectAndDeselectAll:!1,orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("MOTIONDIALER.ALL_LISTS"),labelSelected:t.instant("MOTIONDIALER.SELECTED_LISTS"),transferCallback:function(e,n){var t=_.xorBy(d.startingSelectedItems,d.selectedItems,"id");d.pendingChanges=!_.isEmpty(t)}},d.onInit=function(){return r.hasRole("admin")?c().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:d.currentUser.userProfileId,name:"Lists"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return d.section=e,c()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},d.saveLists=function(){d.loading=!0;var e=_.differenceBy(d.startingSelectedItems,d.selectedItems,"id"),n=_.differenceBy(d.selectedItems,d.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.removeApi]({id:d.ivrCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.addApi]({id:d.ivrCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){d.pendingChanges=!1,d.startingAllowedItems=angular.copy(d.allowedItems),d.startingSelectedItems=angular.copy(d.selectedItems),i.success({title:"SUCCESS",msg:"Lists association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})}).finally(function(){d.loading=!1});var t},d.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","ivrCampaign","$translate","$timeout","Auth","crudPermissions"],angular.module("app.motiondialer").controller("IvrCampaignblacklistaddController",e)}(),function(){"use strict";function e(n,t,a,e,i,s,o){var r=this;function l(e){n.hide(e)}r.newIvrCampaign=!0,r.ivrCampaign=angular.copy(i),r.ivrCampaigns=s,r.title=o.instant("MOTIONDIALER.CLONE_IVRCAMPAIGN"),i&&i.name&&(r.title+=": "+i.name),r.cloneIvrCampaign=function(){return e.campaign.clone({id:i.id},r.ivrCampaign).$promise.then(function(e){r.ivrCampaigns.unshift(e.toJSON()),a.success({title:"IvrCampaign properly cloned",msg:r.ivrCampaign.name?r.ivrCampaign.name+" has been cloned!":""}),t.go("app.motiondialer.ivrCampaigns.edit",{id:e.id}),l(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){r.errors=e.data.errors||[{message:e.toString(),type:"api.campaign.clone"}];for(var n=0;n<e.data.errors.length;n+=1)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.campaign.clone",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},r.closeDialog=l}e.$inject=["$mdDialog","$state","toasty","api","ivrCampaign","ivrCampaigns","$translate"],angular.module("app.motiondialer").controller("IvrCampaigncloneController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.ivrCampaignHopperBlacks=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.campaign.getHopperBlacks(m.query,u).$promise}function g(e){d.hopperBlack.delete({id:e.id}).$promise.then(function(){_.remove(m.ivrCampaignHopperBlacks.rows,{id:e.id}),m.ivrCampaignHopperBlacks.count-=1,m.ivrCampaignHopperBlacks.rows.length||p(),l.success({title:"HopperBlack deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETcampaign"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.ivrCampaign={},m.ivrCampaignHopperBlacks={count:0,rows:[]},m.selectedIvrCampaignHopperBlacks=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,ContactId,phone",sort:"-id",limit:10,page:1},m.init=function(e,n){m.ivrCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.CampaignId=m.ivrCampaign.id,m.query.id=m.ivrCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopperBlack?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopperBlack #")+e.id||"hopperBlack")+"</b> will be deleted.").ariaLabel("delete hopperBlack").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getIvrCampaignHopperBlacks=p,m.createOrEditIvrCampaignHopperBlack=function(e,n){o.show({controller:"CreateOrEditHopperBlackDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hopperBlacks/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:m.ivrCampaign,hopperBlack:n,hopperBlacks:m.ivrCampaignHopperBlacks.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedIvrCampaignHopperBlacks=function(){var e=angular.copy(m.selectedIvrCampaignHopperBlacks);return m.selectedIvrCampaignHopperBlacks=[],e},m.deleteIvrCampaignHopperBlack=g,m.deleteSelectedIvrCampaignHopperBlacks=function(e){var n=o.confirm().title("Are you sure want to delete the selected hopperBlacks?").htmlContent("<b>"+m.selectedIvrCampaignHopperBlacks.length+" selected</b> will be deleted.").ariaLabel("delete hopperBlacks").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedIvrCampaignHopperBlacks.forEach(function(e){g(e)}),m.selectedIvrCampaignHopperBlacks=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("IvrCampaignHopperBlacksController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.ivrCampaignHopperFinals=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.campaign.getHopperFinals(m.query,u).$promise}function g(e){d.hopperFinal.delete({id:e.id}).$promise.then(function(){_.remove(m.ivrCampaignHopperFinals.rows,{id:e.id}),m.ivrCampaignHopperFinals.count-=1,m.ivrCampaignHopperFinals.rows.length||p(),l.success({title:"HopperFinal deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETcampaign"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(a){d.cmHopperFinal.checkContactHopper(a).$promise.then(function(e){l.info({title:"The contact is in the hopper",msg:"Contact ID "+e.ContactId})}).catch(function(e){var n,t;"Not Found"===e.data?d.cmHopper.save((n=a,t={},t.phone=n.calleridnum,t.scheduledat=moment().format("YYYY-MM-DD HH:mm:ss"),t.countbusyretry=0,t.countcongestionretry=0,t.countnoanswerretry=0,t.countglobal=0,t.ContactId=n.ContactId,t.ListId=n.ListId,t.UserId=n.deleted?null:n.UserId,t.VoiceQueueId=n.VoiceQueueId,t.CampaignId=n.CampaignId,t.priority=n.recallme?3:2,t.recallme=!!n.recallme,t)).$promise.then(function(e){var n,t;l.info({title:"Restored Contact",msg:"Contact ID "+e.ContactId}),e.ContactId&&d.cmHopperHistory.save(((t={}).calleridnum=(n=a).calleridnum,t.calleridname=n.calleridname,t.scheduledat=moment().format("YYYY-MM-DD HH:mm:ss"),t.countbusyretry=n.countbusyretry,t.countcongestionretry=n.countcongestionretry,t.countnoanswerretry=n.countnoanswerretry,t.countglobal=n.countglobal,t.ContactId=n.ContactId,t.ListId=n.ListId,t.UserId=c.getCurrentUser().id,t.VoiceQueueId=n.VoiceQueueId,t.CampaignId=n.CampaignId,t.editedat=moment().format("YYYY-MM-DD HH:mm:ss"),t.edited=!0,t.state=25,t.statedesc="Restored",t.campaign=n.campaign,t.campaigntype=n.VoiceQueueId?"queue":"ivr",t))}).catch(function(e){_.isNil(e.data)||"Validation error"!==e.data.message?l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()}):l.info({title:"The contact is in the hopper",msg:"Contact ID "+a.ContactId})}):l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.contacts={},m.ivrCampaign={},m.ivrCampaignHopperFinals={count:0,rows:[]},m.selectedIvrCampaignHopperFinals=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,uniqueid,ContactId,calleridnum,calleridname,statedesc,countcongestionretry,countbusyretry,countnoanswerretry,countnosuchnumberretry,countdropretry,countabandonedretry,countmachineretry,countagentrejectretry,countglobal,scheduledat,starttime,responsetime,endtime,disposition,ListId,UserId,VoiceQueueId,CampaignId,recallme,deleted,campaign",sort:"-id",limit:10,page:1},m.init=function(e,n){m.ivrCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.CampaignId=m.ivrCampaign.id,m.query.id=m.ivrCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopperFinal?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopperFinal #")+e.id||"hopperFinal")+"</b> will be deleted.").ariaLabel("delete hopperFinal").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getIvrCampaignHopperFinals=p,m.createOrEditIvrCampaignHopperFinal=function(e,n){o.show({controller:"CreateOrEditHopperFinalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hopperFinals/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:m.ivrCampaign,hopperFinal:n,hopperFinals:m.ivrCampaignHopperFinals.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedIvrCampaignHopperFinals=function(){var e=angular.copy(m.selectedIvrCampaignHopperFinals);return m.selectedIvrCampaignHopperFinals=[],e},m.deleteIvrCampaignHopperFinal=g,m.deleteSelectedIvrCampaignHopperFinals=function(e){var n=o.confirm().title("Are you sure want to delete the selected hopperFinals?").htmlContent("<b>"+m.selectedIvrCampaignHopperFinals.length+" selected</b> will be deleted.").ariaLabel("delete hopperFinals").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedIvrCampaignHopperFinals.forEach(function(e){g(e)}),m.selectedIvrCampaignHopperFinals=[]})},m.moveIvrCampaignHopperFinal=v,m.moveContactsIvrCampaignHopperFinal=function(e){d.cmHopperFinal.moveContactsIvrCampaignHopperFinal({id:m.query.id,state:e}).$promise.then(function(e){_.isNil(e)&&_.isNil(e[0])?l.info({title:"Restored Contacts",msg:"0"}):l.info({title:"Restored Contacts",msg:JSON.stringify(e[0].affectedRows)})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},m.countContactsIvrCampaignHopperFinal=function(e){d.cmHopperFinal.countContactsIvrCampaignHopperFinal({id:e}).$promise.then(function(e){_.merge(m.contacts,e[0])}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},m.moveConfirm=function(e,n){var t=o.confirm().title("Are you sure want to restore the contact?").htmlContent("<b>Contact</b> will be restored.").ariaLabel("Restore Contact").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){v(e)},function(){console.log("CANCEL")})},m.moveSelectedIvrCampaignHopperFinals=function(e){var n=o.confirm().title("Are you sure want to restore the selected contacts?").htmlContent("<b> Contacts selected</b> will be restored.").ariaLabel("Restore Contacts").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedIvrCampaignHopperFinals.forEach(function(e){v(e)}),m.selectedIvrCampaignHopperFinals=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("IvrCampaignHopperFinalsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.ivrCampaignHopperHistories=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.campaign.getHopperHistories(m.query,u).$promise}function g(e){d.hopperHistory.delete({id:e.id}).$promise.then(function(){_.remove(m.ivrCampaignHopperHistories.rows,{id:e.id}),m.ivrCampaignHopperHistories.count-=1,m.ivrCampaignHopperHistories.rows.length||p(),l.success({title:"HopperHistory deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETcampaign"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.ivrCampaign={},m.ivrCampaignHopperHistories={count:0,rows:[]},m.selectedIvrCampaignHopperHistories=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,uniqueid,ContactId,calleridnum,calleridname,statedesc,scheduledat,starttime,responsetime,endtime",sort:"-id",limit:10,page:1},m.init=function(e,n){m.ivrCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.CampaignId=m.ivrCampaign.id,m.query.id=m.ivrCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopperHistory?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopperHistory #")+e.id||"hopperHistory")+"</b> will be deleted.").ariaLabel("delete hopperHistory").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getIvrCampaignHopperHistories=p,m.createOrEditIvrCampaignHopperHistory=function(e,n){o.show({controller:"CreateOrEditHopperHistoryDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hopperHistories/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:m.ivrCampaign,hopperHistory:n,hopperHistories:m.ivrCampaignHopperHistories.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedIvrCampaignHopperHistories=function(){var e=angular.copy(m.selectedIvrCampaignHopperHistories);return m.selectedIvrCampaignHopperHistories=[],e},m.deleteIvrCampaignHopperHistory=g,m.deleteSelectedIvrCampaignHopperHistories=function(e){var n=o.confirm().title("Are you sure want to delete the selected hopperHistories?").htmlContent("<b>"+m.selectedIvrCampaignHopperHistories.length+" selected</b> will be deleted.").ariaLabel("delete hopperHistories").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedIvrCampaignHopperHistories.forEach(function(e){g(e)}),m.selectedIvrCampaignHopperHistories=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("IvrCampaignHopperHistoriesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.ivrCampaignHoppers=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.campaign.getHoppers(m.query,u).$promise}function g(e){d.cmHopper.delete({id:e.id}).$promise.then(function(){_.remove(m.ivrCampaignHoppers.rows,{id:e.id}),m.ivrCampaignHoppers.count-=1,m.ivrCampaignHoppers.rows.length||p(),l.success({title:"Hopper deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETcampaign"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.ivrCampaign={},m.ivrCampaignHoppers={count:0,rows:[]},m.selectedIvrCampaignHoppers=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,ContactId,phone,countcongestionretry,countbusyretry,countnoanswerretry,countnosuchnumberretry,countdropretry,countabandonedretry,countmachineretry,countagentrejectretry,scheduledat,priority",sort:"-updatedAt",limit:10,page:1},m.arraypriority=_.keyBy([{option:"Highest",value:"'4'"},{option:"High",value:"'3'"},{option:"Medium",value:"'2'"},{option:"Low",value:"'1'"},{option:"Lowest",value:"'0'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),m.init=function(e,n){m.ivrCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.CampaignId=m.ivrCampaign.id,m.query.id=m.ivrCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopper?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopper #")+e.id||"hopper")+"</b> will be deleted.").ariaLabel("delete hopper").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getIvrCampaignHoppers=p,m.createOrEditIvrCampaignHopper=function(e,n){o.show({controller:"CreateOrEditHopperCampaignIdDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hoppers/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:m.ivrCampaign,hopper:n,hoppers:m.ivrCampaignHoppers.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedIvrCampaignHoppers=function(){var e=angular.copy(m.selectedIvrCampaignHoppers);return m.selectedIvrCampaignHoppers=[],e},m.deleteIvrCampaignHopper=g,m.deleteSelectedIvrCampaignHoppers=function(e){var n=o.confirm().title("Are you sure want to delete the selected hoppers?").htmlContent("<b>"+m.selectedIvrCampaignHoppers.length+" selected</b> will be deleted.").ariaLabel("delete hoppers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedIvrCampaignHoppers.forEach(function(e){g(e)}),m.selectedIvrCampaignHoppers=[]})},c.hasRole("admin")?d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){m.agents=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){m.agents=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:m.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(m.agents,{id:e.resourceId})});m.agents.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),m.agents=n})}else m.agents=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("IvrCampaignHoppersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MOTIONDIALER.EDIT_HOPPER",g.hopper=angular.copy(l),g.hoppers=r,g.newHopper=!1,g.hopper||(g.hopper={},g.title="MOTIONDIALER.NEW_HOPPER",g.newHopper=!0),n.params.id&&(g.hopper.CampaignId=n.params.id),g.addNewHopper=function(){g.errors=[],d.cmHopper.save(g.hopper).$promise.then(function(e){g.hoppers.unshift(e.toJSON()),o.success({title:"Hopper properly created",msg:g.hopper.name?g.hopper.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveHopper=function(){var t,a,i,s;g.errors=[],g.hopper.UserId=g.hopper.recallme?g.hopper.UserId:null,g.hopper.OwnerId=c.getCurrentUser().id,d.cmHopper.get({id:g.hopper.id,attributes:["scheduledat"]}).$promise.then(function(e){t=_.isNil(e)||_.isEmpty(e)?moment().format("YYYY-MM-DD HH:mm:ss"):e.scheduledat}).finally(function(){d.cmHopper.update({id:g.hopper.id},_.omit(g.hopper,["VoiceQueueId","CampaignId","ContactId","ListId"])).$promise.then(function(e){a=e,d.cmContact.get({id:a.ContactId,attributes:["firstName","lastName"]}).$promise.then(function(e){_.isNil(e)||_.isNil(e.firstName)||(i=e.firstName,_.isNil(e.lastName)||(i+=" "+e.lastName))}).catch(function(){i=void 0}).finally(function(){d.campaign.get({raw:!1,id:a.CampaignId,attributes:["name"]}).$promise.then(function(e){s=e.name}).catch(function(e){s=void 0}).finally(function(){d.cmHopperHistory.save({state:24,statedesc:"Edited",scheduledat:t,calleridnum:a.phone,calleridname:i,campaigntype:a.VoiceQueueId?"queue":"ivr",campaign:s,editedat:moment().format("YYYY-MM-DD HH:mm:ss"),edited:!0,ListId:a.ListId,UserId:c.getCurrentUser().id,VoiceQueueId:a.VoiceQueueId,CampaignId:a.CampaignId,ContactId:a.ContactId,callback:a.callback,callbackuniqueid:a.callbackuniqueid,countbusyretry:a.countbusyretry,countcongestionretry:a.countcongestionretry,countglobal:a.countglobal,countnoanswerretry:a.countnoanswerretry,followuptime:a.followuptime,recallme:a.recallme})})});var n=_.find(g.hoppers,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Hopper properly saved!",msg:g.hopper.name?g.hopper.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})})},g.deleteHopper=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The hopper will be deleted.").ariaLabel("Delete Hopper").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cmHopper.delete({id:g.hopper.id}).$promise.then(function(){_.remove(g.hoppers,{id:g.hopper.id}),o.success({title:"Hopper properly deleted!",msg:(g.hopper.name||"hopper")+" has been deleted!"}),v(g.hopper)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){g.agents=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){g.agents=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.agents,{id:e.resourceId})});g.agents.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),g.agents=n})}else g.agents=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","hoppers","hopper","api","Auth","license","setting","crudPermissions"],angular.module("app.motiondialer").controller("CreateOrEditHopperCampaignIdDialogController",e)}(),function(){"use strict";function e(t,a){var i=this;i.ivrCampaign={},i.init=function(n){i.ivrCampaign=n,t.cmHopper.get({limit:0,CampaignId:n.id}).$promise.then(function(e){return i.total=e.count||0,t.cmHopper.get({limit:0,CampaignId:n.id,active:!1,countbusyretry:0,countcongestionretry:0,countnoanswerretry:0,countnosuchnumberretry:0,countdropretry:0,countabandonedretry:0,countmachineretry:0,countagentrejectretry:0}).$promise}).then(function(e){return i.fresh=e.count||0,t.cmHopperFinal.get({limit:0,CampaignId:n.id}).$promise}).then(function(e){i.closed=e.count||0}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["api","toasty"],angular.module("app.motiondialer").controller("IvrCampaignHopperStatisticsController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l){var d=this;function c(){return a(function(t,n){return a(function(n,t){return s.cmList.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return d.items=e.rows?e.rows:[],r.hasRole("admin")?e:d.section?d.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:d.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return d.allowedItems=_.map(n,function(e){return _.find(d.items,{id:r.hasRole("admin")||d.section.autoAssociation?e.id:e.resourceId})}),d.startingAllowedItems=angular.copy(d.allowedItems),d.items.forEach(function(e){var n=_.find(d.allowedItems,{id:e.id});"admin"===d.currentUser.role?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s[d.apiRoute][d.getApi]({id:d.ivrCampaign.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];d.selectedItems=_.map(n,function(e){return _.find(d.items,{id:e.id})}),d.startingSelectedItems=angular.copy(d.selectedItems),d.dualMultiselectOptions.selectedItems=d.selectedItems,d.dualMultiselectOptions.items=_.differenceBy(d.allowedItems,d.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}d.currentUser=r.getCurrentUser(),d.ivrCampaign=n,d.crudPermissions=l,d.apiRoute="campaign",d.getApi="getLists",d.addApi="addLists",d.removeApi="removeLists",d.items=[],d.allowedItems=[],d.selectedItems=[],d.startingAllowedItems=[],d.startingSelectedItems=[],d.pendingChanges=!1,d.loading=!1,d.dualMultiselectOptions={allowedItems:[],selectedItems:[],showSelectAndDeselectAll:!1,orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("MOTIONDIALER.ALL_LISTS"),labelSelected:t.instant("MOTIONDIALER.SELECTED_LISTS"),transferCallback:function(e,n){var t=_.xorBy(d.startingSelectedItems,d.selectedItems,"id");d.pendingChanges=!_.isEmpty(t)}},d.onInit=function(){return r.hasRole("admin")?c().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:d.currentUser.userProfileId,name:"Lists"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return d.section=e,c()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},d.saveLists=function(){d.loading=!0;var e=_.differenceBy(d.startingSelectedItems,d.selectedItems,"id"),n=_.differenceBy(d.selectedItems,d.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.removeApi]({id:d.ivrCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.addApi]({id:d.ivrCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){d.pendingChanges=!1,d.startingAllowedItems=angular.copy(d.allowedItems),d.startingSelectedItems=angular.copy(d.selectedItems),i.success({title:"SUCCESS",msg:"Lists association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})}).finally(function(){d.loading=!1});var t},d.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","ivrCampaign","$translate","$timeout","Auth","crudPermissions"],angular.module("app.motiondialer").controller("IvrCampaignlistaddController",e)}(),function(){"use strict";function e(e,n,a,i,s,t,o,r){var l=this;function d(){n.hide()}function c(e,n){var t=n.id;o.enqueue(function(){return i.campaign.removeLists({id:e,ids:t}).$promise.then(function(){return i.campaign.addLists({id:e,ids:t,dialCheckDuplicateType:"never"}).$promise}).then(function(){a.success({title:"Reset Succesfull",msg:"List "+n.name+" has been reset"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:queueCampaign.RESETLIST",msg:e.status?JSON.stringify(e.data):e.toString()})})})}l.selected=[],l.items=t||[],l.loading=!1,l.closeDialog=d,l.exists=function(e,n){return-1<n.indexOf(e)},l.toggle=function(e,n){var t=n.indexOf(e);-1<t?n.splice(t,1):n.push(e)},l.isIndeterminate=function(){return 0!==l.selected.length&&l.selected.length!==l.items.length},l.isChecked=function(){return l.selected.length===l.items.length},l.toggleAll=function(){l.selected.length===l.items.length?l.selected=[]:(0===l.selected.length||0<l.selected.length)&&(l.selected=l.items.slice(0))},l.listSelected=function(){l.loading=!0,r(function(e,n){for(var t=0;t<l.selected.length;t+=1)c(s.id,l.selected[t]);var a;a=e,o.enqueue(function(){return a()})}).finally(function(){l.loading=!1,d()})}}e.$inject=["$scope","$mdDialog","toasty","api","ivrCampaign","listsCampaign","Sequence","$q"],angular.module("app.motiondialer").controller("IvrCampaignresetlistController",e)}(),function(){"use strict";function e(t,e,i,s,a,n,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=n,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=e.protocol()+"://"+e.host(),u.ivrCampaign=c||t.params.ivrCampaign||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=t.params.tab||0,u.clonedialog=function(e,n){i.show({controller:"IvrCampaigncloneController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:u.ivrCampaigns?u.ivrCampaigns.rows:[],crudPermissions:u.crudPermissions}})},u.listadddialog=function(e,n){i.show({controller:"IvrCampaignlistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/listadd/listadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:u.ivrCampaigns?u.ivrCampaigns.rows:[],crudPermissions:u.crudPermissions}})},u.blacklistadddialog=function(e,n){i.show({controller:"IvrCampaignblacklistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/blacklistadd/blacklistadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:u.ivrCampaigns?u.ivrCampaigns.rows:[],crudPermissions:u.crudPermissions}})},u.resetlistdialog=function(n,t){r.campaign.getLists({id:n.id,fields:"id,name",nolimit:!0}).$promise.then(function(a){if(_.isNil(a.rows)||_.isEmpty(a.rows))l.info({title:"Campaign Without Lists"});else if(1===a.rows.length){var e=i.confirm().title("Are you sure want to reset the list "+a.rows[0].name+" ?").htmlContent("<b>"+a.rows[0].name+"</b> will be reset.").ariaLabel("Reset List").targetEvent(t).ok("OK").cancel("CANCEL");i.show(e).then(function(){var e,n,t;e=u.ivrCampaign.id,n=a.rows[0],t=n.id,r.campaign.removeLists({id:e,ids:t}).$promise.then(function(){return r.campaign.addLists({id:e,ids:t,dialCheckDuplicateType:"never"}).$promise}).then(function(){l.success({title:"Reset Succesfull",msg:"List "+n.name+" has been reset"})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ivrCampaign.REMOVELIST",msg:e.status?JSON.stringify(e.data):e.toString()})})})}else i.show({controller:"IvrCampaignresetlistController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/resetlist/resetlist.html",parent:angular.element(s.body),targetEvent:t,clickOutsideToClose:!1,locals:{ivrCampaign:n,listsCampaign:a?a.rows:[]}})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:RESETLIST",msg:e.status?JSON.stringify(e.data):e.toString()})})},u.gotogoto=function(e,n){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:1510}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.motiondialer.realtime.ivr_campaigns",{}):l.info({title:a.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:a.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.motiondialer.realtime.ivr_campaigns",{})}},u.alert=l.info,u.gotoIvrCampaigns=function(){t.go("app.motiondialer.ivrCampaigns",{},{reload:"app.motiondialer.ivrCampaigns"})},u.saveIvrCampaign=function(){r.campaign.update({id:u.ivrCampaign.id},u.ivrCampaign).$promise.then(function(){l.success({title:"IvrCampaign updated!",msg:u.ivrCampaign.name?u.ivrCampaign.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.trunks=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.trunks=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.trunks,{id:e.resourceId})});u.trunks.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),u.trunks=n})}else u.trunks=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.projects=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PROJECTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.projects=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1103}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.projects,{id:e.resourceId})}),t=null;if(u.ivrCampaign&&(t=_.find(u.projects,{id:Number(u.ivrCampaign.SquareProjectId)})),t&&!_.some(n,["id",t.id])){var a=_.find(u.projects,{id:t.id});a.canSelect=!1,n.push(a)}u.projects=n})}else{var t=[],a=null;u.ivrCampaign&&(a=_.find(u.projects,{id:Number(u.ivrCampaign.SquareProjectId)}));for(var i=0;i<u.projects.length;i++)a&&u.projects[i].id===a.id&&(u.projects[i].canSelect=!1,t.push(u.projects[i]));u.projects=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){u.interval=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){u.interval=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.interval,{id:e.resourceId})}),t=null;if(u.ivrCampaign&&(t=_.find(u.interval,{id:Number(u.ivrCampaign.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(u.interval,{id:t.id});a.canSelect=!1,n.push(a)}u.interval=n})}else{var t=[],a=null;u.ivrCampaign&&(a=_.find(u.interval,{id:Number(u.ivrCampaign.IntervalId)}));for(var i=0;i<u.interval.length;i++)a&&u.interval[i].id===a.id&&(u.interval[i].canSelect=!1,t.push(u.interval[i]));u.interval=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","ivrCampaign","userProfileSection"],angular.module("app.motiondialer").controller("IvrCampaignController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.ivrCampaigns=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="ivrCampaigns",f.listOrder="",f.listOrderAsc=null,f.selectedIvrCampaigns=[],f.query={fields:"createdAt,updatedAt,id,name,active,TrunkId,TrunkBackupId,type,IntervalId,dialCheckDuplicateType,dialCutDigit,SquareProjectId,limitCalls,description,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialRandomLastDigitCallerIdNumber,dialOriginateTimeout,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,dialOrderByScheduledAt,dialGlobalInterval,dialTimezone,dialPrefix,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength",type:"ivr",sort:"-updatedAt",limit:10,page:1},f.arraydialCheckDuplicateType=_.keyBy([{option:"ALWAYS",value:"'always'"},{option:"NEVER",value:"'never'"},{option:"ONLY_IF_OPEN",value:"'onlyIfOpen'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraydialOrderByScheduledAt=_.keyBy([{option:"DESC",value:"'DESC'"},{option:"ASC",value:"'ASC'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.motiondialer.ivrCampaigns.edit",{id:e.id,ivrCampaign:e,crudPermissions:f.crudPermissions})},f.clonedialog=function(e,n){i.show({controller:"IvrCampaigncloneController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:f.ivrCampaigns?f.ivrCampaigns.rows:[],crudPermissions:f.crudPermissions}})},f.listadddialog=function(e,n){i.show({controller:"IvrCampaignlistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/listadd/listadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:f.ivrCampaigns?f.ivrCampaigns.rows:[],crudPermissions:f.crudPermissions}})},f.blacklistadddialog=function(e,n){i.show({controller:"IvrCampaignblacklistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/blacklistadd/blacklistadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:f.ivrCampaigns?f.ivrCampaigns.rows:[],crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("ivrCampaign")+"?").htmlContent("<b>"+(e.name||"ivrCampaign")+"</b> will be deleted.").ariaLabel("delete ivrCampaign").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:1510}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.motiondialer.realtime.ivr_campaigns",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.motiondialer.realtime.ivr_campaigns",{})}},f.success=E,f.getIvrCampaigns=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.campaign.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="IvrCampaigns",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditIvrCampaign=function(e,n){i.show({controller:"CreateOrEditIvrCampaignDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:n,ivrCampaigns:f.ivrCampaigns.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteIvrCampaign=y,f.exportSelectedIvrCampaigns=function(){var e=angular.copy(f.selectedIvrCampaigns);return f.selectedIvrCampaigns=[],e},f.deleteSelectedIvrCampaigns=function(e){var n=i.confirm().title("Are you sure want to delete the selected ivrCampaigns?").htmlContent("<b>"+f.selectedIvrCampaigns.length+" selected</b> will be deleted.").ariaLabel("delete IvrCampaigns").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedIvrCampaigns.forEach(function(e){y(e)}),f.selectedIvrCampaigns=[]})},f.deselectIvrCampaigns=function(){f.selectedIvrCampaigns=[]},f.selectAllIvrCampaigns=function(){f.selectedIvrCampaigns=f.ivrCampaigns.rows},g.hasRole("admin")?m.trunk.get({fields:"id,name",sort:"name",table:"true"}).$promise.then(function(e){f.trunks=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.trunk.get({fields:"id,name",sort:"name",table:"true"}).$promise.then(function(e){f.trunks=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.trunks,{id:e.resourceId})});f.trunks.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),f.trunks=n})}else f.trunks=[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),g.hasRole("admin")?m.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.projects=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PROJECTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.projects=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1103}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(f.projects,{id:e.resourceId})}),a=null;a=[],f.ivrCampaigns.rows.forEach(function(e){var n=_.find(f.projects,{id:Number(e.SquareProjectId)});a.push(n)}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(f.projects,{id:e.id});n.canSelect=!1,t.push(n)}}),f.projects=t})}else{var t=[],a=[];f.ivrCampaigns.rows.forEach(function(e){var n=_.find(f.projects,{id:Number(e.SquareProjectId)});a.push(n)});for(var i=0;i<f.projects.length;i++){_.some(a,{id:f.projects[i].id})&&(f.projects[i].canSelect=!1,t.push(f.projects[i]))}f.projects=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}),g.hasRole("admin")?m.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){f.interval=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){f.interval=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.interval,{id:e.resourceId})}),t=null;if(f.ivrCampaign&&(t=_.find(f.interval,{id:Number(f.ivrCampaign.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.interval,{id:t.id});a.canSelect=!1,n.push(a)}f.interval=n})}else{var t=[],a=null;f.ivrCampaign&&(a=_.find(f.interval,{id:Number(f.ivrCampaign.IntervalId)}));for(var i=0;i<f.interval.length;i++)a&&f.interval[i].id===a.id&&(f.interval[i].canSelect=!1,t.push(f.interval[i]));f.interval=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.ivrCampaigns=e||{count:0,rows:[]}}function y(e){m.campaign.delete({id:e.id}).$promise.then(function(){_.remove(f.ivrCampaigns.rows,{id:e.id}),f.ivrCampaigns.count-=1,f.ivrCampaigns.rows.length||f.getIvrCampaigns(),p.success({title:_.startCase("IvrCampaign")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEcampaign"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEcampaign",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getIvrCampaigns())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","ivrCampaigns","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.motiondialer").controller("IvrCampaignsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MOTIONDIALER.EDIT_QUEUECAMPAIGN",g.queueCampaign=angular.copy(l),g.queueCampaigns=r,g.newQueueCampaign=!1,g.queueCampaign||(g.queueCampaign={dialActive:!0,type:"outbound",dialCheckDuplicateType:"always",dialCutDigit:0,autopause:"no",ringinuse:"no",timeoutrestart:"no",setinterfacevar:"no",setqueuevar:"no",setqueueentryvar:"no",dialOrderByScheduledAt:"ASC",dialGlobalInterval:"07:00-22:00,*,*,*",dialAMDInitialSilence:2500,dialAMDGreeting:1500,dialAMDAfterGreetingSilence:800,dialAMDTotalAnalysisTime:5e3,dialAMDMinWordLength:100,dialAMDBetweenWordsSilence:50,dialAMDMaximumNumberOfWords:3,dialAMDSilenceThreshold:256,dialAMDMaximumWordLength:5e3,dialMethod:"progressive",dialPowerLevel:1,dialPredictiveOptimization:"dropRate",dialPredictiveOptimizationPercentage:3,dialPredictiveInterval:10,dialLimitQueue:0,dialRandomLastDigitCallerIdNumber:0,dialOriginateTimeout:30,dialQueueOptions:"tTxX",dialQueueTimeout:3,strategy:"rrmemory",timeout:3,retry:3,weight:1,dialGlobalMaxRetry:4,dialCongestionMaxRetry:3,dialCongestionRetryFrequency:150,dialBusyMaxRetry:3,dialBusyRetryFrequency:150,dialNoAnswerMaxRetry:3,dialNoAnswerRetryFrequency:150,dialNoSuchNumberMaxRetry:3,dialNoSuchNumberRetryFrequency:150,dialDropMaxRetry:3,dialDropRetryFrequency:150,dialAbandonedMaxRetry:3,dialAbandonedRetryFrequency:150,dialMachineMaxRetry:3,dialMachineRetryFrequency:150,dialAgentRejectMaxRetry:3,dialAgentRejectRetryFrequency:150,dialPredictiveIntervalMaxThreshold:20,dialPredictiveIntervalMinThreshold:10},g.title="MOTIONDIALER.NEW_QUEUECAMPAIGN",g.newQueueCampaign=!0),g.addNewQueueCampaign=function(){g.errors=[],d.voiceQueue.save(g.queueCampaign).$promise.then(function(e){g.queueCampaigns.unshift(e.toJSON()),o.success({title:"QueueCampaign properly created",msg:g.queueCampaign.name?g.queueCampaign.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveQueueCampaign=function(){g.errors=[],d.voiceQueue.update({id:g.queueCampaign.id},g.queueCampaign).$promise.then(function(e){var n=_.find(g.queueCampaigns,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"QueueCampaign properly saved!",msg:g.queueCampaign.name?g.queueCampaign.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteQueueCampaign=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The queueCampaign will be deleted.").ariaLabel("Delete QueueCampaign").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceQueue.delete({id:g.queueCampaign.id}).$promise.then(function(){_.remove(g.queueCampaigns,{id:g.queueCampaign.id}),o.success({title:"QueueCampaign properly deleted!",msg:(g.queueCampaign.name||"queueCampaign")+" has been deleted!"}),v(g.queueCampaign)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.trunks=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.trunks=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.trunks,{id:e.resourceId})}),t=null;if(g.queueCampaign&&(t=_.find(g.trunks,{id:Number(g.queueCampaign.TrunkId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.trunks,{id:t.id});a.canSelect=!1,n.push(a)}g.trunks=n})}else{var t=[],a=null;g.queueCampaign&&(a=_.find(g.trunks,{id:Number(g.queueCampaign.TrunkId)}));for(var i=0;i<g.trunks.length;i++)a&&g.trunks[i].id===a.id&&(g.trunks[i].canSelect=!1,t.push(g.trunks[i]));g.trunks=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.hasRole("admin")?d.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){g.interval=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){g.interval=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.interval,{id:e.resourceId})}),t=null;if(g.queueCampaign&&(t=_.find(g.interval,{id:Number(g.queueCampaign.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.interval,{id:t.id});a.canSelect=!1,n.push(a)}g.interval=n})}else{var t=[],a=null;g.queueCampaign&&(a=_.find(g.interval,{id:Number(g.queueCampaign.IntervalId)}));for(var i=0;i<g.interval.length;i++)a&&g.interval[i].id===a.id&&(g.interval[i].canSelect=!1,t.push(g.interval[i]));g.interval=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","queueCampaigns","queueCampaign","api","Auth","license","setting","crudPermissions"],angular.module("app.motiondialer").controller("CreateOrEditQueueCampaignDialogController",e)}(),function(){"use strict";function e(e,l,a,d,n,t,i,s,o,r){var c=this;function m(){return l(function(t,n){return l(function(n,t){return d.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],o.hasRole("admin")?e:c.section?c.section.autoAssociation?e:l(function(n,t){return d.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:o.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),l(function(n,t){return d.voiceQueue.getAgents({id:c.queueCampaign.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserVoiceQueue?"penalty "+e.UserVoiceQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=o.getCurrentUser(),c.queueCampaign=n,c.crudPermissions=r,c.penalty=0,c.realtime=i,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return o.hasRole("admin")?m().catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):l(function(t,n){d.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceWith(c.selectedItems,c.startingSelectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});return(t=e,l(function(e,n){_.isEmpty(t)?e():d.voiceQueue.removeAgents({id:c.queueCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return r=n,l(function(e,n){if(_.isEmpty(r))e();else{for(var t=[],a=_.groupBy(r,"penalty"),i=0;i<Object.keys(a).length;i++){var s=Object.keys(a)[i],o=_.filter(r,["penalty",s]);t.push(d.voiceQueue.addAgents({id:c.queueCampaign.id,ids:_.map(o,"id"),penalty:_.trim(s,"penalty "),realtime:c.realtime||!1}).$promise)}l.all(t).then(function(){e()}).catch(function(e){n(e)})}});var r}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),a.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:s.instant("MOTIONDIALER.ALL_AGENTS"),labelSelected:s.instant("MOTIONDIALER.SELECTED_AGENTS"),transferCallback:function(e,n){n?e.forEach(function(e){e.penalty=void 0}):e.forEach(function(e){e.penalty="penalty "+c.penalty});var t=_.xorWith(c.startingSelectedItems,c.selectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","queueCampaign","queueCampaigns","realtime","$translate","Auth","crudPermissions"],angular.module("app.motiondialer").controller("QueueCampaignagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l){var d=this;function c(){return a(function(t,n){return a(function(n,t){return s.cmList.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return d.items=e.rows?e.rows:[],r.hasRole("admin")?e:d.section?d.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:d.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return d.allowedItems=_.map(n,function(e){return _.find(d.items,{id:r.hasRole("admin")||d.section.autoAssociation?e.id:e.resourceId})}),d.startingAllowedItems=angular.copy(d.allowedItems),d.items.forEach(function(e){var n=_.find(d.allowedItems,{id:e.id});"admin"===d.currentUser.role?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s[d.apiRoute][d.getApi]({id:d.queueCampaign.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];d.selectedItems=_.map(n,function(e){return _.find(d.items,{id:e.id})}),d.startingSelectedItems=angular.copy(d.selectedItems),d.dualMultiselectOptions.selectedItems=d.selectedItems,d.dualMultiselectOptions.items=_.differenceBy(d.allowedItems,d.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}d.currentUser=r.getCurrentUser(),d.queueCampaign=n,d.crudPermissions=l,d.apiRoute="voiceQueue",d.getApi="getBlackLists",d.addApi="addBlackLists",d.removeApi="removeBlackLists",d.items=[],d.allowedItems=[],d.selectedItems=[],d.startingAllowedItems=[],d.startingSelectedItems=[],d.pendingChanges=!1,d.loading=!1,d.dualMultiselectOptions={allowedItems:[],selectedItems:[],showSelectAndDeselectAll:!1,orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("MOTIONDIALER.ALL_LISTS"),labelSelected:t.instant("MOTIONDIALER.SELECTED_LISTS"),transferCallback:function(e,n){var t=_.xorBy(d.startingSelectedItems,d.selectedItems,"id");d.pendingChanges=!_.isEmpty(t)}},d.onInit=function(){return r.hasRole("admin")?c().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:d.currentUser.userProfileId,name:"Lists"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return d.section=e,c()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},d.saveLists=function(){d.loading=!0;var e=_.differenceBy(d.startingSelectedItems,d.selectedItems,"id"),n=_.differenceBy(d.selectedItems,d.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.removeApi]({id:d.queueCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.addApi]({id:d.queueCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){d.pendingChanges=!1,d.startingAllowedItems=angular.copy(d.allowedItems),d.startingSelectedItems=angular.copy(d.selectedItems),i.success({title:"SUCCESS",msg:"Lists association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})}).finally(function(){d.loading=!1});var t},d.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","queueCampaign","$translate","$timeout","Auth","crudPermissions"],angular.module("app.motiondialer").controller("QueueCampaignblacklistaddController",e)}(),function(){"use strict";function e(n,t,a,e,i,s,o){var r=this;function l(e){n.hide(e)}r.newQueueCampaign=!0,r.queueCampaign=angular.copy(i),r.queueCampaigns=s,r.title=o.instant("MOTIONDIALER.CLONE_QUEUECAMPAIGN"),i&&i.name&&(r.title+=": "+i.name),r.cloneQueueCampaign=function(){return e.voiceQueue.clone({id:i.id},r.queueCampaign).$promise.then(function(e){r.queueCampaigns.unshift(e.toJSON()),a.success({title:"QueueCampaign properly cloned",msg:r.queueCampaign.name?r.queueCampaign.name+" has been cloned!":""}),t.go("app.motiondialer.queueCampaigns.edit",{id:e.id}),l(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){r.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.clone"}];for(var n=0;n<e.data.errors.length;n+=1)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.clone",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},r.closeDialog=l}e.$inject=["$mdDialog","$state","toasty","api","queueCampaign","queueCampaigns","$translate"],angular.module("app.motiondialer").controller("QueueCampaigncloneController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.queueCampaignHopperBlacks=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.voiceQueue.getHopperBlacks(m.query,u).$promise}function g(e){d.hopperBlack.delete({id:e.id}).$promise.then(function(){_.remove(m.queueCampaignHopperBlacks.rows,{id:e.id}),m.queueCampaignHopperBlacks.count-=1,m.queueCampaignHopperBlacks.rows.length||p(),l.success({title:"HopperBlack deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETvoiceQueue"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.queueCampaign={},m.queueCampaignHopperBlacks={count:0,rows:[]},m.selectedQueueCampaignHopperBlacks=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,ContactId,phone",sort:"-id",limit:10,page:1},m.init=function(e,n){m.queueCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.VoiceQueueId=m.queueCampaign.id,m.query.id=m.queueCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopperBlack?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopperBlack #")+e.id||"hopperBlack")+"</b> will be deleted.").ariaLabel("delete hopperBlack").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getQueueCampaignHopperBlacks=p,m.createOrEditQueueCampaignHopperBlack=function(e,n){o.show({controller:"CreateOrEditHopperBlackDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hopperBlacks/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:m.queueCampaign,hopperBlack:n,hopperBlacks:m.queueCampaignHopperBlacks.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedQueueCampaignHopperBlacks=function(){var e=angular.copy(m.selectedQueueCampaignHopperBlacks);return m.selectedQueueCampaignHopperBlacks=[],e},m.deleteQueueCampaignHopperBlack=g,m.deleteSelectedQueueCampaignHopperBlacks=function(e){var n=o.confirm().title("Are you sure want to delete the selected hopperBlacks?").htmlContent("<b>"+m.selectedQueueCampaignHopperBlacks.length+" selected</b> will be deleted.").ariaLabel("delete hopperBlacks").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedQueueCampaignHopperBlacks.forEach(function(e){g(e)}),m.selectedQueueCampaignHopperBlacks=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("QueueCampaignHopperBlacksController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.queueCampaignHopperFinals=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.voiceQueue.getHopperFinals(m.query,u).$promise}function g(e){d.hopperFinal.delete({id:e.id}).$promise.then(function(){_.remove(m.queueCampaignHopperFinals.rows,{id:e.id}),m.queueCampaignHopperFinals.count-=1,m.queueCampaignHopperFinals.rows.length||p(),l.success({title:"HopperFinal deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETvoiceQueue"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(a){d.cmHopperFinal.checkContactHopper(a).$promise.then(function(e){l.info({title:"The contact is in the hopper",msg:"Contact ID "+e.ContactId})}).catch(function(e){var n,t;"Not Found"===e.data?d.cmHopper.save((n=a,t={},t.phone=n.calleridnum,t.scheduledat=moment().format("YYYY-MM-DD HH:mm:ss"),t.countbusyretry=0,t.countcongestionretry=0,t.countnoanswerretry=0,t.countglobal=0,t.ContactId=n.ContactId,t.ListId=n.ListId,t.UserId=n.deleted?null:n.UserId,t.VoiceQueueId=n.VoiceQueueId,t.CampaignId=n.CampaignId,t.priority=n.recallme?3:2,t.recallme=!!n.recallme,t)).$promise.then(function(e){var n,t;l.info({title:"Restored Contact",msg:"Contact ID "+e.ContactId}),e.ContactId&&d.cmHopperHistory.save(((t={}).calleridnum=(n=a).calleridnum,t.calleridname=n.calleridname,t.scheduledat=moment().format("YYYY-MM-DD HH:mm:ss"),t.countbusyretry=n.countbusyretry,t.countcongestionretry=n.countcongestionretry,t.countnoanswerretry=n.countnoanswerretry,t.countglobal=n.countglobal,t.ContactId=n.ContactId,t.ListId=n.ListId,t.UserId=c.getCurrentUser().id,t.VoiceQueueId=n.VoiceQueueId,t.CampaignId=n.CampaignId,t.editedat=moment().format("YYYY-MM-DD HH:mm:ss"),t.edited=!0,t.state=25,t.statedesc="Restored",t.campaign=n.campaign,t.campaigntype=n.VoiceQueueId?"queue":"ivr",t))}).catch(function(e){_.isNil(e.data)||"Validation error"!==e.data.message?l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()}):l.info({title:"The contact is in the hopper",msg:"Contact ID "+a.ContactId})}):l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.contacts={},m.queueCampaign={},m.queueCampaignHopperFinals={count:0,rows:[]},m.selectedQueueCampaignHopperFinals=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,uniqueid,ContactId,calleridnum,calleridname,statedesc,countcongestionretry,countbusyretry,countnoanswerretry,countnosuchnumberretry,countdropretry,countabandonedretry,countmachineretry,countagentrejectretry,countglobal,scheduledat,starttime,responsetime,endtime,disposition,secondDisposition,thirdDisposition,ListId,UserId,VoiceQueueId,CampaignId,recallme,deleted,campaign",sort:"-id",limit:10,page:1},m.init=function(e,n){m.queueCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.VoiceQueueId=m.queueCampaign.id,m.query.id=m.queueCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopperFinal?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopperFinal #")+e.id||"hopperFinal")+"</b> will be deleted.").ariaLabel("delete hopperFinal").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getQueueCampaignHopperFinals=p,m.createOrEditQueueCampaignHopperFinal=function(e,n){o.show({controller:"CreateOrEditHopperFinalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hopperFinals/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:m.queueCampaign,hopperFinal:n,hopperFinals:m.queueCampaignHopperFinals.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedQueueCampaignHopperFinals=function(){var e=angular.copy(m.selectedQueueCampaignHopperFinals);return m.selectedQueueCampaignHopperFinals=[],e},m.deleteQueueCampaignHopperFinal=g,m.deleteSelectedQueueCampaignHopperFinals=function(e){var n=o.confirm().title("Are you sure want to delete the selected hopperFinals?").htmlContent("<b>"+m.selectedQueueCampaignHopperFinals.length+" selected</b> will be deleted.").ariaLabel("delete hopperFinals").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedQueueCampaignHopperFinals.forEach(function(e){g(e)}),m.selectedQueueCampaignHopperFinals=[]})},m.moveQueueCampaignHopperFinal=v,m.moveContactsQueueCampaignHopperFinal=function(e){d.cmHopperFinal.moveContactsQueueCampaignHopperFinal({id:m.query.id,state:e}).$promise.then(function(e){_.isNil(e)&&_.isNil(e[0])?l.info({title:"Restored Contacts",msg:"0"}):l.info({title:"Restored Contacts",msg:JSON.stringify(e[0].affectedRows)})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},m.countContactsQueueCampaignHopperFinal=function(e){d.cmHopperFinal.countContactsQueueCampaignHopperFinal({id:e}).$promise.then(function(e){_.merge(m.contacts,e[0])}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},m.moveConfirm=function(e,n){var t=o.confirm().title("Are you sure want to restore the contact?").htmlContent("<b>Contact</b> will be restored.").ariaLabel("Restore Contact").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){v(e)},function(){console.log("CANCEL")})},m.moveSelectedQueueCampaignHopperFinals=function(e){var n=o.confirm().title("Are you sure want to restore the selected contacts?").htmlContent("<b> Contacts selected</b> will be restored.").ariaLabel("Restore Contacts").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedQueueCampaignHopperFinals.forEach(function(e){v(e)}),m.selectedQueueCampaignHopperFinals=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("QueueCampaignHopperFinalsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.queueCampaignHopperHistories=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.voiceQueue.getHopperHistories(m.query,u).$promise}function g(e){d.hopperHistory.delete({id:e.id}).$promise.then(function(){_.remove(m.queueCampaignHopperHistories.rows,{id:e.id}),m.queueCampaignHopperHistories.count-=1,m.queueCampaignHopperHistories.rows.length||p(),l.success({title:"HopperHistory deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETvoiceQueue"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.queueCampaign={},m.queueCampaignHopperHistories={count:0,rows:[]},m.selectedQueueCampaignHopperHistories=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,uniqueid,ContactId,calleridnum,calleridname,statedesc,scheduledat,starttime,responsetime,endtime",sort:"-id",limit:10,page:1},m.init=function(e,n){m.queueCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.VoiceQueueId=m.queueCampaign.id,m.query.id=m.queueCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopperHistory?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopperHistory #")+e.id||"hopperHistory")+"</b> will be deleted.").ariaLabel("delete hopperHistory").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getQueueCampaignHopperHistories=p,m.createOrEditQueueCampaignHopperHistory=function(e,n){o.show({controller:"CreateOrEditHopperHistoryDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hopperHistories/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:m.queueCampaign,hopperHistory:n,hopperHistories:m.queueCampaignHopperHistories.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedQueueCampaignHopperHistories=function(){var e=angular.copy(m.selectedQueueCampaignHopperHistories);return m.selectedQueueCampaignHopperHistories=[],e},m.deleteQueueCampaignHopperHistory=g,m.deleteSelectedQueueCampaignHopperHistories=function(e){var n=o.confirm().title("Are you sure want to delete the selected hopperHistories?").htmlContent("<b>"+m.selectedQueueCampaignHopperHistories.length+" selected</b> will be deleted.").ariaLabel("delete hopperHistories").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedQueueCampaignHopperHistories.forEach(function(e){g(e)}),m.selectedQueueCampaignHopperHistories=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("QueueCampaignHopperHistoriesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.queueCampaignHoppers=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.voiceQueue.getHoppers(m.query,u).$promise}function g(e){d.cmHopper.delete({id:e.id}).$promise.then(function(){_.remove(m.queueCampaignHoppers.rows,{id:e.id}),m.queueCampaignHoppers.count-=1,m.queueCampaignHoppers.rows.length||p(),l.success({title:"Hopper deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETvoiceQueue"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.queueCampaign={},m.queueCampaignHoppers={count:0,rows:[]},m.selectedQueueCampaignHoppers=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,ContactId,phone,countcongestionretry,countbusyretry,countnoanswerretry,countnosuchnumberretry,countdropretry,countabandonedretry,countmachineretry,countagentrejectretry,scheduledat,priority,recallme,UserId",sort:"-updatedAt",limit:10,page:1},m.arraypriority=_.keyBy([{option:"Highest",value:"'4'"},{option:"High",value:"'3'"},{option:"Medium",value:"'2'"},{option:"Low",value:"'1'"},{option:"Lowest",value:"'0'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),m.init=function(e,n){m.queueCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.VoiceQueueId=m.queueCampaign.id,m.query.id=m.queueCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopper?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopper #")+e.id||"hopper")+"</b> will be deleted.").ariaLabel("delete hopper").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getQueueCampaignHoppers=p,m.createOrEditQueueCampaignHopper=function(e,n){o.show({controller:"CreateOrEditHopperVoiceQueueIdDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hoppers/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:m.queueCampaign,hopper:n,hoppers:m.queueCampaignHoppers.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedQueueCampaignHoppers=function(){var e=angular.copy(m.selectedQueueCampaignHoppers);return m.selectedQueueCampaignHoppers=[],e},m.deleteQueueCampaignHopper=g,m.deleteSelectedQueueCampaignHoppers=function(e){var n=o.confirm().title("Are you sure want to delete the selected hoppers?").htmlContent("<b>"+m.selectedQueueCampaignHoppers.length+" selected</b> will be deleted.").ariaLabel("delete hoppers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedQueueCampaignHoppers.forEach(function(e){g(e)}),m.selectedQueueCampaignHoppers=[]})},c.hasRole("admin")?d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){m.agents=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){m.agents=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:m.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(m.agents,{id:e.resourceId})}),t=null;if(m.queueCampaign&&(t=_.find(m.agents,{id:Number(m.queueCampaign.UserId)})),t&&!_.some(n,["id",t.id])){var a=_.find(m.agents,{id:t.id});a.canSelect=!1,n.push(a)}m.agents=n})}else{var t=[],a=null;m.queueCampaign&&(a=_.find(m.agents,{id:Number(m.queueCampaign.UserId)}));for(var i=0;i<m.agents.length;i++)a&&m.agents[i].id===a.id&&(m.agents[i].canSelect=!1,t.push(m.agents[i]));m.agents=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("QueueCampaignHoppersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MOTIONDIALER.EDIT_HOPPER",g.hopper=angular.copy(l),g.hoppers=r,g.newHopper=!1,g.hopper||(g.hopper={},g.title="MOTIONDIALER.NEW_HOPPER",g.newHopper=!0),n.params.id&&(g.hopper.VoiceQueueId=n.params.id),g.addNewHopper=function(){g.errors=[],d.cmHopper.save(g.hopper).$promise.then(function(e){g.hoppers.unshift(e.toJSON()),o.success({title:"Hopper properly created",msg:g.hopper.name?g.hopper.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveHopper=function(){var t,a,i,s;g.errors=[],g.hopper.UserId=g.hopper.recallme?g.hopper.UserId:null,g.hopper.OwnerId=c.getCurrentUser().id,d.cmHopper.get({id:g.hopper.id,attributes:["scheduledat"]}).$promise.then(function(e){t=_.isNil(e)||_.isEmpty(e)?moment().format("YYYY-MM-DD HH:mm:ss"):e.scheduledat}).finally(function(){d.cmHopper.update({id:g.hopper.id},_.omit(g.hopper,["VoiceQueueId","CampaignId","ContactId","ListId"])).$promise.then(function(e){a=e,d.cmContact.get({id:a.ContactId,attributes:["firstName","lastName"]}).$promise.then(function(e){_.isNil(e)||_.isNil(e.firstName)||(i=e.firstName,_.isNil(e.lastName)||(i+=" "+e.lastName))}).catch(function(){i=void 0}).finally(function(){d.voiceQueue.get({raw:!1,id:a.VoiceQueueId,attributes:["name"]}).$promise.then(function(e){s=e.name}).catch(function(e){s=void 0}).finally(function(){d.cmHopperHistory.save({state:24,statedesc:"Edited",scheduledat:t,calleridnum:a.phone,calleridname:i,campaigntype:a.VoiceQueueId?"queue":"ivr",campaign:s,editedat:moment().format("YYYY-MM-DD HH:mm:ss"),edited:!0,ListId:a.ListId,UserId:c.getCurrentUser().id,VoiceQueueId:a.VoiceQueueId,CampaignId:a.CampaignId,ContactId:a.ContactId,callback:a.callback,callbackuniqueid:a.callbackuniqueid,countbusyretry:a.countbusyretry,countcongestionretry:a.countcongestionretry,countglobal:a.countglobal,countnoanswerretry:a.countnoanswerretry,followuptime:a.followuptime,recallme:a.recallme})})});var n=_.find(g.hoppers,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Hopper properly saved!",msg:g.hopper.name?g.hopper.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})})},g.deleteHopper=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The hopper will be deleted.").ariaLabel("Delete Hopper").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cmHopper.delete({id:g.hopper.id}).$promise.then(function(){_.remove(g.hoppers,{id:g.hopper.id}),o.success({title:"Hopper properly deleted!",msg:(g.hopper.name||"hopper")+" has been deleted!"}),v(g.hopper)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){g.agents=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){g.agents=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.agents,{id:e.resourceId})}),t=null;if(g.hopper&&(t=_.find(g.agents,{id:Number(g.hopper.UserId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.agents,{id:t.id});a.canSelect=!1,n.push(a)}g.agents=n})}else{var t=[],a=null;g.hopper&&(a=_.find(g.agents,{id:Number(g.hopper.UserId)}));for(var i=0;i<g.agents.length;i++)a&&g.agents[i].id===a.id&&(g.agents[i].canSelect=!1,t.push(g.agents[i]));g.agents=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","hoppers","hopper","api","Auth","license","setting","crudPermissions"],angular.module("app.motiondialer").controller("CreateOrEditHopperVoiceQueueIdDialogController",e)}(),function(){"use strict";function e(t,a){var i=this;i.queueCampaign={},i.init=function(n){i.queueCampaign=n,t.cmHopper.get({limit:0,VoiceQueueId:n.id}).$promise.then(function(e){return i.total=e.count||0,t.cmHopper.get({limit:0,VoiceQueueId:n.id,active:!1,countbusyretry:0,countcongestionretry:0,countnoanswerretry:0,countnosuchnumberretry:0,countdropretry:0,countabandonedretry:0,countmachineretry:0,countagentrejectretry:0}).$promise}).then(function(e){return i.fresh=e.count||0,t.cmHopperFinal.get({limit:0,VoiceQueueId:n.id}).$promise}).then(function(e){i.closed=e.count||0}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["api","toasty"],angular.module("app.motiondialer").controller("QueueCampaignHopperStatisticsController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l){var d=this;function c(){return a(function(t,n){return a(function(n,t){return s.cmList.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return d.items=e.rows?e.rows:[],r.hasRole("admin")?e:d.section?d.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:d.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return d.allowedItems=_.map(n,function(e){return _.find(d.items,{id:r.hasRole("admin")||d.section.autoAssociation?e.id:e.resourceId})}),d.startingAllowedItems=angular.copy(d.allowedItems),d.items.forEach(function(e){var n=_.find(d.allowedItems,{id:e.id});"admin"===d.currentUser.role?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s[d.apiRoute][d.getApi]({id:d.queueCampaign.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];d.selectedItems=_.map(n,function(e){return _.find(d.items,{id:e.id})}),d.startingSelectedItems=angular.copy(d.selectedItems),d.dualMultiselectOptions.selectedItems=d.selectedItems,d.dualMultiselectOptions.items=_.differenceBy(d.allowedItems,d.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}d.currentUser=r.getCurrentUser(),d.queueCampaign=n,d.crudPermissions=l,d.apiRoute="voiceQueue",d.getApi="getLists",d.addApi="addLists",d.removeApi="removeLists",d.items=[],d.allowedItems=[],d.selectedItems=[],d.startingAllowedItems=[],d.startingSelectedItems=[],d.pendingChanges=!1,d.loading=!1,d.dualMultiselectOptions={allowedItems:[],selectedItems:[],showSelectAndDeselectAll:!1,orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("MOTIONDIALER.ALL_LISTS"),labelSelected:t.instant("MOTIONDIALER.SELECTED_LISTS"),transferCallback:function(e,n){var t=_.xorBy(d.startingSelectedItems,d.selectedItems,"id");d.pendingChanges=!_.isEmpty(t)}},d.onInit=function(){return r.hasRole("admin")?c().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:d.currentUser.userProfileId,name:"Lists"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return d.section=e,c()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},d.saveLists=function(){d.loading=!0;var e=_.differenceBy(d.startingSelectedItems,d.selectedItems,"id"),n=_.differenceBy(d.selectedItems,d.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.removeApi]({id:d.queueCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.addApi]({id:d.queueCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){d.pendingChanges=!1,d.startingAllowedItems=angular.copy(d.allowedItems),d.startingSelectedItems=angular.copy(d.selectedItems),i.success({title:"SUCCESS",msg:"Lists association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})}).finally(function(){d.loading=!1});var t},d.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","queueCampaign","$translate","$timeout","Auth","crudPermissions"],angular.module("app.motiondialer").controller("QueueCampaignlistaddController",e)}(),function(){"use strict";function e(e,n,a,i,s,t,o,r){var l=this;function d(){n.hide()}function c(e,n){var t=n.id;o.enqueue(function(){return i.voiceQueue.removeLists({id:e,ids:t}).$promise.then(function(){return i.voiceQueue.addLists({id:e,ids:t,dialCheckDuplicateType:"never"}).$promise}).then(function(){a.success({title:"Reset Succesfull",msg:"List "+n.name+" has been reset"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:queueCampaign.RESETLIST",msg:e.status?JSON.stringify(e.data):e.toString()})})})}l.selected=[],l.items=t||[],l.loading=!1,l.closeDialog=d,l.exists=function(e,n){return-1<n.indexOf(e)},l.toggle=function(e,n){var t=n.indexOf(e);-1<t?n.splice(t,1):n.push(e)},l.isIndeterminate=function(){return 0!==l.selected.length&&l.selected.length!==l.items.length},l.isChecked=function(){return l.selected.length===l.items.length},l.toggleAll=function(){l.selected.length===l.items.length?l.selected=[]:(0===l.selected.length||0<l.selected.length)&&(l.selected=l.items.slice(0))},l.listSelected=function(){l.loading=!0,r(function(e,n){for(var t=0;t<l.selected.length;t+=1)c(s.id,l.selected[t]);var a;a=e,o.enqueue(function(){return a()})}).finally(function(){l.loading=!1,d()})}}e.$inject=["$scope","$mdDialog","toasty","api","queueCampaign","listsCampaign","Sequence","$q"],angular.module("app.motiondialer").controller("QueueCampaignresetlistController",e)}(),function(){"use strict";function e(e,i,a,s,n,t,o,r){var l=this;function d(){return i(function(t,n){return i(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:i(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),i(function(n,t){return s.voiceQueue.getTeams({id:l.queueCampaign.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.queueCampaign=n,l.crudPermissions=r,l.penalty=0,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"penalty",labelAll:t.instant("MOTIONDIALER.ALL_TEAMS"),labelSelected:t.instant("MOTIONDIALER.SELECTED_TEAMS"),transferCallback:function(e,n){n?e.forEach(function(e){e.penalty=void 0}):e.forEach(function(e){e.penalty="penalty "+l.penalty});var t=_.xorWith(l.startingSelectedItems,l.selectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):i(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceWith(l.selectedItems,l.startingSelectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});return(t=e,i(function(e,n){_.isEmpty(t)?e():s.voiceQueue.removeTeams({id:l.queueCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return a=n,i(function(e,n){if(!_.isEmpty(a)){var t=_.map(a,function(e){return{id:e.id,penalty:_.trim(e.penalty,"penalty ")}});return s.voiceQueue.addTeams({id:l.queueCampaign.id,teams:t}).$promise.then(function(){e()}).catch(function(e){n(e)})}e()});var a}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),a.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","queueCampaign","$translate","Auth","crudPermissions"],angular.module("app.motiondialer").controller("QueueCampaignteamaddController",e)}(),function(){"use strict";function e(t,e,i,s,a,n,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=n,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=e.protocol()+"://"+e.host(),u.queueCampaign=c||t.params.queueCampaign||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=t.params.tab||0,u.clonedialog=function(e,n){i.show({controller:"QueueCampaigncloneController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:u.queueCampaigns?u.queueCampaigns.rows:[],crudPermissions:u.crudPermissions}})},u.listadddialog=function(e,n){i.show({controller:"QueueCampaignlistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/listadd/listadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:u.queueCampaigns?u.queueCampaigns.rows:[],crudPermissions:u.crudPermissions}})},u.blacklistadddialog=function(e,n){i.show({controller:"QueueCampaignblacklistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/blacklistadd/blacklistadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:u.queueCampaigns?u.queueCampaigns.rows:[],crudPermissions:u.crudPermissions}})},u.teamadddialog=function(e,n){i.show({controller:"QueueCampaignteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:u.queueCampaigns?u.queueCampaigns.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){i.show({controller:"QueueCampaignagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:u.queueCampaigns?u.queueCampaigns.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.resetlistdialog=function(n,t){r.voiceQueue.getLists({id:n.id,fields:"id,name",nolimit:!0}).$promise.then(function(a){if(_.isNil(a.rows)||_.isEmpty(a.rows))l.info({title:"Campaign Without Lists"});else if(1===a.rows.length){var e=i.confirm().title("Are you sure want to reset the list "+a.rows[0].name+" ?").htmlContent("<b>"+a.rows[0].name+"</b> will be reset.").ariaLabel("Reset List").targetEvent(t).ok("OK").cancel("CANCEL");i.show(e).then(function(){var e,n,t;e=u.queueCampaign.id,n=a.rows[0],t=n.id,r.voiceQueue.removeLists({id:e,ids:t}).$promise.then(function(){return r.voiceQueue.addLists({id:e,ids:t,dialCheckDuplicateType:"never"}).$promise}).then(function(){l.success({title:"Reset Succesfull",msg:"List "+n.name+" has been reset"})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:queueCampaign.REMOVELIST",msg:e.status?JSON.stringify(e.data):e.toString()})})})}else i.show({controller:"QueueCampaignresetlistController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/resetlist/resetlist.html",parent:angular.element(s.body),targetEvent:t,clickOutsideToClose:!1,locals:{queueCampaign:n,listsCampaign:a?a.rows:[]}})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:RESETLIST",msg:e.status?JSON.stringify(e.data):e.toString()})})},u.gotogoto=function(e,n){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:1510}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.motiondialer.realtime.queues",{}):l.info({title:a.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:a.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.motiondialer.realtime.queues",{})}},u.alert=l.info,u.gotoQueueCampaigns=function(){t.go("app.motiondialer.queueCampaigns",{},{reload:"app.motiondialer.queueCampaigns"})},u.saveQueueCampaign=function(){r.voiceQueue.update({id:u.queueCampaign.id},u.queueCampaign).$promise.then(function(){l.success({title:"QueueCampaign updated!",msg:u.queueCampaign.name?u.queueCampaign.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.voiceMusicOnHold.get({fields:"id,name",nolimit:"true"}).$promise.then(function(e){u.musiconholds=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_MUSICONHOLDS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.voiceMusicOnHold.get({fields:"id,name",nolimit:"true"}).$promise.then(function(e){u.musiconholds=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:407}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;return n?n.autoAssociation?void 0:r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.musiconholds,{id:e.resourceId})}),t=null;if(u.queueCampaign&&(t=_.find(u.musiconholds,{name:u.queueCampaign.musiconhold})),t&&!_.some(n,["id",t.id])){var a=_.find(u.musiconholds,{id:t.id});a.canSelect=!1,n.push(a)}u.musiconholds=n}):r.voiceMusicOnHold.get({fields:"id,name",nolimit:"true",defaultEntry:1}).$promise.then(function(e){u.musiconholds=e.rows||[]})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmusiconholds",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.trunks=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.trunks=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.trunks,{id:e.resourceId})}),t=null;if(u.queueCampaign&&(t=_.find(u.trunks,{id:Number(u.queueCampaign.TrunkId)})),t&&!_.some(n,["id",t.id])){var a=_.find(u.trunks,{id:t.id});a.canSelect=!1,n.push(a)}u.trunks=n})}else{var t=[],a=null;u.queueCampaign&&(a=_.find(u.trunks,{id:Number(u.queueCampaign.TrunkId)}));for(var i=0;i<u.trunks.length;i++)a&&u.trunks[i].id===a.id&&(u.trunks[i].canSelect=!1,t.push(u.trunks[i]));u.trunks=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.projects=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PROJECTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.projects=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1103}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.projects,{id:e.resourceId})}),t=null;if(u.queueCampaign&&(t=_.find(u.projects,{name:u.queueCampaign.dialQueueProject})),t&&!_.some(n,["id",t.id])){var a=_.find(u.projects,{id:t.id});a.canSelect=!1,n.push(a)}u.projects=n})}else{var t=[],a=null;u.queueCampaign&&(a=_.find(u.projects,{name:u.queueCampaign.dialQueueProject}));for(var i=0;i<u.projects.length;i++)a&&u.projects[i].id===a.id&&(u.projects[i].canSelect=!1,t.push(u.projects[i]));u.projects=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){u.interval=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){u.interval=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.interval,{id:e.resourceId})}),t=null;if(u.queueCampaign&&(t=_.find(u.interval,{id:Number(u.queueCampaign.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(u.interval,{id:t.id});a.canSelect=!1,n.push(a)}u.interval=n})}else{var t=[],a=null;u.queueCampaign&&(a=_.find(u.interval,{id:Number(u.queueCampaign.IntervalId)}));for(var i=0;i<u.interval.length;i++)a&&u.interval[i].id===a.id&&(u.interval[i].canSelect=!1,t.push(u.interval[i]));u.interval=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){u.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){u.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.pauses,{id:e.resourceId})});u.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),u.pauses=n})}else u.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","queueCampaign","userProfileSection"],angular.module("app.motiondialer").controller("QueueCampaignController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.queueCampaigns=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="queueCampaigns",f.listOrder="",f.listOrderAsc=null,f.selectedQueueCampaigns=[],f.query={fields:"createdAt,updatedAt,id,name,dialActive,TrunkId,TrunkBackupId,type,IntervalId,dialCheckDuplicateType,dialCutDigit,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar,dialOrderByScheduledAt,dialRecallMeTimeout,dialRecallInQueue,dialGlobalInterval,dialTimezone,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength,dialMethod,dialPowerLevel,dialPredictiveOptimization,dialPredictiveOptimizationPercentage,dialPredictiveInterval,dialLimitQueue,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialRandomLastDigitCallerIdNumber,dialOriginateTimeout,dialPrefix,dialQueueOptions,dialQueueTimeout,strategy,timeout,retry,wrapuptime,weight,musiconhold,dialQueueProject,dialQueueProject2,dialAgiAfterHangupAgent,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,description,mandatoryDisposition,mandatoryDispositionPauseId,dialPredictiveIntervalMaxThreshold,dialPredictiveIntervalMinThreshold",type:"outbound",sort:"-updatedAt",channel:"voice",limit:10,page:1},f.arraydialCheckDuplicateType=_.keyBy([{option:"ALWAYS",value:"'always'"},{option:"NEVER",value:"'never'"},{option:"ONLY_IF_OPEN",value:"'onlyIfOpen'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayautopause=_.keyBy([{option:"Yes",value:"'all'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayringinuse=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraytimeoutrestart=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraymonitor_format=_.keyBy([{option:"Inactive",value:"''"},{option:"wav",value:"'wav'"},{option:"wav49",value:"'wav49'"},{option:"gsm",value:"'gsm'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysetinterfacevar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysetqueuevar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysetqueueentryvar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraydialOrderByScheduledAt=_.keyBy([{option:"DESC",value:"'DESC'"},{option:"ASC",value:"'ASC'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraydialMethod=_.keyBy([{option:"Progressive",value:"'progressive'"},{option:"PowerDialing",value:"'power'"},{option:"Predictive",value:"'predictive'"},{option:"Preview",value:"'preview'"},{option:"BookedProgressive",value:"'booked'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraydialPredictiveOptimization=_.keyBy([{option:"AgentBusyFactor",value:"'agentBusyFactor'"},{option:"DropRate",value:"'dropRate'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraystrategy=_.keyBy([{option:"Round Robin Memory",value:"'rrmemory'"},{option:"Round Robin",value:"'roundrobin'",ngIf:"vm.queueCampaign.dialMethod === 'booked'"},{option:"Least Recent",value:"'leastrecent'",ngIf:"vm.queueCampaign.dialMethod !== 'booked'"},{option:"Fewest Calls",value:"'fewestcalls'",ngIf:"vm.queueCampaign.dialMethod !== 'booked'"},{option:"Random",value:"'random'",ngIf:"vm.queueCampaign.dialMethod !== 'booked'"},{option:"Linear",value:"'linear'",ngIf:"vm.queueCampaign.dialMethod !== 'booked'"},{option:"Weight Random",value:"'wrandom'",ngIf:"vm.queueCampaign.dialMethod !== 'booked'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.motiondialer.queueCampaigns.edit",{id:e.id,queueCampaign:e,crudPermissions:f.crudPermissions})},f.clonedialog=function(e,n){i.show({controller:"QueueCampaigncloneController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:f.queueCampaigns?f.queueCampaigns.rows:[],crudPermissions:f.crudPermissions}})},f.listadddialog=function(e,n){i.show({controller:"QueueCampaignlistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/listadd/listadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:f.queueCampaigns?f.queueCampaigns.rows:[],crudPermissions:f.crudPermissions}})},f.blacklistadddialog=function(e,n){i.show({controller:"QueueCampaignblacklistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/blacklistadd/blacklistadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:f.queueCampaigns?f.queueCampaigns.rows:[],crudPermissions:f.crudPermissions}})},f.teamadddialog=function(e,n){i.show({controller:"QueueCampaignteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:f.queueCampaigns?f.queueCampaigns.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"QueueCampaignagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:f.queueCampaigns?f.queueCampaigns.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("queueCampaign")+"?").htmlContent("<b>"+(e.name||"queueCampaign")+"</b> will be deleted.").ariaLabel("delete queueCampaign").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:1510}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.motiondialer.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.motiondialer.realtime.queues",{})}},f.success=E,f.getQueueCampaigns=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.voiceQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="QueueCampaigns",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditQueueCampaign=function(e,n){i.show({controller:"CreateOrEditQueueCampaignDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:n,queueCampaigns:f.queueCampaigns.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteQueueCampaign=y,f.exportSelectedQueueCampaigns=function(){var e=angular.copy(f.selectedQueueCampaigns);return f.selectedQueueCampaigns=[],e},f.deleteSelectedQueueCampaigns=function(e){var n=i.confirm().title("Are you sure want to delete the selected queueCampaigns?").htmlContent("<b>"+f.selectedQueueCampaigns.length+" selected</b> will be deleted.").ariaLabel("delete QueueCampaigns").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedQueueCampaigns.forEach(function(e){y(e)}),f.selectedQueueCampaigns=[]})},f.deselectQueueCampaigns=function(){f.selectedQueueCampaigns=[]},f.selectAllQueueCampaigns=function(){f.selectedQueueCampaigns=f.queueCampaigns.rows},g.hasRole("admin")?m.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.trunks=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.trunks=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(f.trunks,{id:e.resourceId})}),a=null;a=[],f.queueCampaigns.rows.forEach(function(e){var n=_.find(f.trunks,{id:Number(e.TrunkId)});a.push(n)}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(f.trunks,{id:e.id});n.canSelect=!1,t.push(n)}}),f.trunks=t})}else{var t=[],a=[];f.queueCampaigns.rows.forEach(function(e){var n=_.find(f.trunks,{id:Number(e.TrunkId)});a.push(n)});for(var i=0;i<f.trunks.length;i++){_.some(a,{id:f.trunks[i].id})&&(f.trunks[i].canSelect=!1,t.push(f.trunks[i]))}f.trunks=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),g.hasRole("admin")?m.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){f.interval=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){f.interval=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.interval,{id:e.resourceId})}),t=null;if(f.queueCampaign&&(t=_.find(f.interval,{id:Number(f.queueCampaign.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.interval,{id:t.id});a.canSelect=!1,n.push(a)}f.interval=n})}else{var t=[],a=null;f.queueCampaign&&(a=_.find(f.interval,{id:Number(f.queueCampaign.IntervalId)}));for(var i=0;i<f.interval.length;i++)a&&f.interval[i].id===a.id&&(f.interval[i].canSelect=!1,t.push(f.interval[i]));f.interval=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.queueCampaigns=e||{count:0,rows:[]}}function y(e){m.voiceQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.queueCampaigns.rows,{id:e.id}),f.queueCampaigns.count-=1,f.queueCampaigns.rows.length||f.getQueueCampaigns(),p.success({title:_.startCase("QueueCampaign")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getQueueCampaigns())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","queueCampaigns","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.motiondialer").controller("QueueCampaignsController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(){return[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Agent",key:"lastAssignedTo",type:"select",label:"DASHBOARDS.SELECT_AGENT",options:g.agents.rows,customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}],ngValue:"name"},{name:"Campaign",key:"queue",type:"multiselect",label:"DASHBOARDS.SELECT_CAMPAIGN",options:g.queues.rows,ngValue:"name"}]}function h(){return g.refresh=!1,0===g.queues.count?f(null):(g.query.queue=1===g.queues.count?g.queues.rows[0].name:g.query.queue,void 0===g.query.queue&&(g.query.queue=_.map(g.queues.rows,"name")),_.isEmpty(g.query.queue)?f(null):(g.query.offset=(g.query.page-1)*g.query.limit,i.localStorage.setItem("motion2.realtime.abandoned.bull.abandonedCalls:"+g.currentUser.id,JSON.stringify({query:_.omit(g.query,"queue")})),void(g.promise=o.voiceQueueReport.getVoiceQueuesReport(g.query,f).$promise)))}function f(e){g.abandonedCalls=e||{count:0,rows:[]},!1,g.refresh=!0}g.currentUser=d.getCurrentUser(),g.agents=u||[],g.dispositions=p.rows,g.abandonedCalls={count:0,rows:[]},g.showTooltip=!1,g.refresh=!0,g.userProfile=r,g.userProfileSection=l&&1==l.count?l.rows[0]:null,g.crudPermissions=d.parseCrudPermissions(g.userProfileSection?g.userProfileSection.crudPermissions:null),g.query={fields:"id,type,calleridnum,calleridname,queue,queuecallerabandonAt,queuecallerexitAt,queuecallerexitreason,assigned,lastAssignedTo,updatedAt,disposition,secondDisposition,thirdDisposition",type:"outbound",queuecallerexitreason:"TIMEOUT,ABANDONED",sort:"-updatedAt",limit:10,page:1},g.getAbandonedCalls=h,g.refreshAbandonedCalls=function(){g.showTooltip=!1,h()},g.assignTo=function(e,n){e&&o.voiceQueueReport.update({id:e.id,lastAssignedTo:n?n.name:null,assigned:!!n}).$promise.catch(function(e){console.log(e)})},g.dispose=function(t){n.show({controller:"DisposeAbandonedCallDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/home/abandoned/dispose/dialog.html",parent:angular.element(a.body),targetEvent:t,locals:{dispositions:g.dispositions,call:t}}).then(function(e){if(e){var n={id:t.id,disposition:e.firstLevel||null,secondDisposition:e.secondLevel||null,thirdDisposition:e.thirdLevel||null};o.voiceQueueReport.update(n).$promise.catch(function(e){console.log(e)})}})},g.onSaveVoiceQueueReport=function(e){e&&g.queuesMap&&"outbound"===queue.type&&g.queuesMap[e.queue]&&(g.showTooltip=!0)},g.onUpdateVoiceQueueReport=function(e){if(e){var n=_.findIndex(g.abandonedCalls.rows,["id",e.id]);0<=n&&_.merge(g.abandonedCalls.rows[n],e)}},c.onWithoutApply("voiceQueueReport:save",g.onSaveVoiceQueueReport),c.on("voiceQueueReport:update",g.onUpdateVoiceQueueReport),function(){var e=i.localStorage.getItem("motion2.realtime.abandoned.bull.abandonedCalls:"+g.currentUser.id);if(e)(e=JSON.parse(e))&&e.query&&(g.query=_.merge(e.query,_.omit(g.query,["sort","limit","page"])),g.query=_.omit(g.query,"filter"));else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()};g.query.createdAt=n}d.hasRole("admin")?o.user.getQueues({id:d.getCurrentUser().id,fields:"id,name",channel:"voice",type:"outbound",nolimit:!0}).$promise.then(function(e){g.queues=e||{count:0,rows:[]},g.queuesMap=_.mapValues(_.keyBy(g.queues.rows,"name"),"name")}).catch(function(e){console.error(e)}).finally(function(){g.quickFilters=v(),h()}):o.userProfile.getResources({id:g.currentUser.userProfileId,section:"QueueCampaigns",channel:"voice",type:"outbound",sort:"-updatedAt",nolimit:!0}).$promise.then(function(e){g.queues=e||{count:0,rows:[]},g.queuesMap=_.mapValues(_.keyBy(g.queues.rows,"name"),"name")}).catch(function(e){console.error(e)}).finally(function(){g.quickFilters=v(),h()})}();var b=!0,A=1;e.$watch("vm.query.filter",function(e,n){b?t(function(){b=!1}):(n||(A=g.query.page),e!==n&&(g.query.page=1),e||(g.query.page=A),h())}),e.$on("$destroy",function(){c.removeAllListeners("voiceQueueReport:save"),c.removeAllListeners("voiceQueueReport:update")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","userProfile","userProfileSection","Auth","socket","toasty","agents","dispositions"],angular.module("app.motiondialer").controller("AbandonedCallsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,o,n,t,a,i,s,r,l,d,c,m,u,p,g,v,h,f){var b=this,A=["userpic","online","lastLoginAt","lastPauseAt","pauseType","lastPauseAt","internal","address","chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","chatCapacity","openchannelCapacity","mailCapacity","smsCapacity","whatsappCapacity","faxCapacity","chatCurrentCapacity","openchannelCurrentCapacity","mailCurrentCapacity","smsCurrentCapacity","whatsappCurrentCapacity","faxCurrentCapacity","chatStatus","openchannelStatus","mailStatus","smsStatus","whatsappStatus","faxStatus","voiceStatus","chatStatusTime","openchannelStatusTime","mailStatusTime","smsStatusTime","whatsappStatusTime","faxStatusTime","voiceStatusTime","queue","destconnectedlinenum","screenrecording","phoneBarEnableScreenRecordingByAgent","phoneBarEnableAutomaticScreenRecording"],E=["chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","online"];for(var y in b.currentUser=v.getCurrentUser(),b.availableStates=["ringing","inuse","busy","onhold","not_inuse"],b.pauses=s||{count:0,rows:[]},b.license=h,b.userProfile=p,b.userProfileSection=g&&1==g.count?g.rows[0]:null,b.crudPermissions=v.parseCrudPermissions(b.userProfileSection?b.userProfileSection.crudPermissions:null),b.agents=r?_.keyBy(r.rows?r.rows:[],"id"):{},b.rpcAgents=l?_.keyBy(l.rows?l.rows:[],"id"):{},b.paginatedAgents={},b.load=!1,b.order=[],b.agentInternal={},b.agents)b.agents.hasOwnProperty(y)&&(b.agents[y].init=!0);b.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},b.logout=function(e,n){return d.user.logout({id:e.id,device:"realtime",agent_id:e.id,agent_name:e.name}).$promise.then(function(){m.success({title:"Agent logout",msg:e.fullname+" properly logout"}),b.agents[e.id]&&(b.agents[e.id].online=!1),b.rpcAgents[e.id]&&(b.rpcAgents[e.id].online=!1),T()}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.queueAdd=function(e,n){t.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:[],channel:"voice",direction:"outbound",crudPermissions:b.crudPermissions}})},b.pause=function(n,e){return d.user.pause({id:n.id,type:e}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.unPause=function(n){return d.user.unpause({id:n.id}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.showInfo=function(e){t.show(t.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},b.getAgentStatus=O,b.getAgentGlobalStatus=w,b.isPause=I,b.checkPause=function(e){return"pause"===e},b.isPartialPause=function(e){return"*pause"===e},b.onSave=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(_.omit(e,E),A)),_.merge(b.rpcAgents[e.id],_.pick(_.omit(e,E),A)),w(b.agents[e.id]))},b.onUpdate=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(e,A)),_.merge(b.rpcAgents[e.id],_.pick(e,A)),e.lastPauseAt&&(b.agents[e.id].globalStatusTime=e.lastPauseAt,b.rpcAgents[e.id].globalStatusTime=e.lastPauseAt),w(b.agents[e.id]))},b.onInit=T,b.onConnect=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(_.merge(b.agents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])),_.merge(b.rpcAgents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])))},b.onComplete=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(b.agents[b.agentInternal[e.destaccountcode]]=_.omit(b.agents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]),b.rpcAgents[b.agentInternal[e.destaccountcode]]=_.omit(b.rpcAgents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]))},b.screenRecording=function(e,n){return d.user.update({id:e.id},{screenrecording:n}).$promise.catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.on("user:save",b.onSave),c.on("user:update",b.onUpdate),c.on("user:agentconnect",b.onConnect),c.on("user:agentcomplete",b.onComplete),T();var S=f(function(){b.load&&(b.load=!1,T())},999);function T(e){b.load=!1;var n,t,a=o.defer();b.promise=a.promise,b.filteredAgents=[],b.order=[],_.forIn(b.agents,function(e,n){b.rpcAgents[n]&&_.merge(e,_.pick(_.omit(b.rpcAgents[n],E),A)),w(e),e.online?(b.filteredAgents.push(e),b.agentInternal[e.internal]=n):e.globalStatusTime=_.toNumber(moment().format("x"))}),b.query.globalStatusFilter&&_.remove(b.filteredAgents,function(e){return e.globalStatus!==b.query.globalStatusFilter}),b.query.pauseTypeFilter&&_.remove(b.filteredAgents,function(e){return e.pauseType!==b.query.pauseTypeFilter}),b.query.filter&&_.remove(b.filteredAgents,function(e){return e.fullname.toLowerCase().indexOf(b.query.filter.toLowerCase())<0}),b.filteredAgents=(n=b.filteredAgents,t=_.startsWith(b.query.order,"-")?"desc":"asc",_.orderBy(n,[b.query.order.replace("-","")],[t]));var i=(b.query.page-1)*b.query.limit;b.paginatedAgents=_.drop(b.filteredAgents,i).slice(0,b.query.limit);for(var s=0;s<b.paginatedAgents.length;s+=1)b.order.push(b.paginatedAgents[s].id);a.resolve(),b.load=!0}function I(e){return"pause"===e||"*pause"===e}function C(e){return"idle"===e||"unknown"===e||"unavailable"===e||"ringing"===e||_.isNil(e)}function O(e,n){return"voice"===n?"idle"!==e[n+"Status"]?e[n+"Status"]:e[n+"Pause"]?e[n+"Status"]="pause":"idle":e[n+"Pause"]?e[n+"Status"]="pause":e[n+"Status"]}function w(e){var n="unknown";n=_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"pause":_.some([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"*pause":_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],C)?"idle":"busy",e.globalStatus!==n&&(e.globalStatus=n,e.init?(e.init=!1,e.globalStatusTime=I(n)?_.toNumber(moment(e.lastPauseAt).format("x")):_.max([e.voiceStatusTime,e.chatStatusTime,e.mailStatusTime,e.smsStatusTime,e.whatsappStatusTime,e.openchannelStatusTime,e.faxStatusTime])):e.globalStatusTime=_.toNumber(moment().format("x")))}e.$on("$destroy",function(){c.removeAllListeners("user:save"),c.removeAllListeners("user:update"),c.removeAllListeners("user:agentconnect"),c.removeAllListeners("user:agentcomplete"),S&&(f.cancel(S),S=null)})}e.$inject=["$scope","$q","$timeout","$mdDialog","$document","$filter","pauses","agents","rpcAgents","api","socket","toasty","helperClasses","userProfile","userProfileSection","Auth","license","$interval"],angular.module("app.voice").controller("AgentsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,t,a,i,n,s,o,r,l,d,c,m){var u=this,p=["name","active","limitCalls","message","originated","IntervalId","SquareProjectId","Trunk","TrunkId","ivrAnswerCallsDay","dialQueueProject","ivrTotalCallsDays","description"];function g(){_.forIn(u.campaigns,function(e,n){u.rpcCampaigns[n]&&_.merge(e,_.pick(u.rpcCampaigns[n],p))})}u.currentUser=m.getCurrentUser(),u.count=o.count,u.campaigns=o?_.keyBy(o.rows?o.rows:[],"id"):{},u.rpcCampaigns=s?_.keyBy(s.rows?s.rows:[],"id"):{},u.userProfile=d,u.userProfileSection=c&&1==c.count?c.rows[0]:null,u.crudPermissions=m.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.query={sort:"-updatedAt",limit:10,page:1},u.success=f,u.getCampaigns=function(){u.query.offset=(u.query.page-1)*u.query.limit,m.hasRole("admin")?u.promise=r.campaign.get(u.query,f).$promise:(u.query.id=u.userProfile.id,u.query.section="IvrCampaigns",u.promise=r.userProfile.getResources(u.query,f).$promise)},u.onSave=function(e){u.campaigns[e.id]&&(_.merge(u.campaigns[e.id],_.pick(e,p)),_.merge(u.rpcCampaigns[e.id],_.pick(e,p)))},u.$onInit=g,u.createOrEditIvrCampaign=function(e,n){a.show({controller:"CreateOrEditIvrCampaignDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/create/dialog.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:n,ivrCampaigns:_.values(u.campaigns),license:null,setting:null,crudPermissions:u.crudPermissions}})},l.onWithoutApply("campaign:save",u.onSave),u.interval=n(function(){},999);var v=!0,h=1;function f(e){u.count=e.count,u.campaigns=e?_.keyBy(e.rows?e.rows:[],"id"):{},g()}e.$watch("vm.query.filter",function(e,n){v?t(function(){v=!1}):(n||(h=u.query.page),e!==n&&(u.query.page=1),e||(u.query.page=h),u.getCampaigns())}),e.$on("$destroy",function(){l.removeAllListeners("campaign:save"),u.interval&&n.cancel(u.interval)})}e.$inject=["$scope","$timeout","$mdDialog","$document","$interval","rpcCampaigns","campaigns","api","socket","userProfile","userProfileSection","Auth"],angular.module("app.motiondialer").controller("IvrCampaignsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,n,a,o,t,i,s,r,l,d,c,m,u){var p=this;p.currentUser=u.getCurrentUser(),p.queues=t?_.keyBy(t.rows?t.rows:[],"name"):{},p.rpcVoiceQueuesChannelsTmp=i?_.keyBy(i.rows?_.filter(i.rows,{type:"outbound"}):[],"uniqueid"):{},p.rpcVoiceQueuesChannels={},p.userProfile=c,p.userProfileSection=m&&1==m.count?m.rows[0]:null,p.crudPermissions=u.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.queryChannels={limit:10,page:1},p.getAvailableAgents=function(){p.availableAgents=null,s.rpc.getAgents().$promise.then(function(e){for(var n=[],t=e?e.rows:[],a=_.filter(t,{online:!0,voicePause:!1,voiceStatus:"idle"}),i=0;i<a.length;i++){var s=_.find(o.rows,["id",a[i].id]);s&&n.push(s)}p.availableAgents=n}).catch(function(e){d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},p.getSize=function(e){return _.size(e)},p.$onInit=function(){_.forIn(p.rpcVoiceQueuesChannelsTmp,function(e,n){_.find(p.queues,{name:e.name})&&(p.rpcVoiceQueuesChannels[n]=e)})},p.onSave=function(e){"outbound"===e.type&&_.find(p.queues,{name:e.name})&&(p.rpcVoiceQueuesChannels[e.uniqueid]=e)},p.onRemove=function(e){p.rpcVoiceQueuesChannels[e.uniqueid]&&delete p.rpcVoiceQueuesChannels[e.uniqueid]},p.hangup=function(n){return s.rpc.getVoiceQueuesChannelHangup({uniqueid:n}).$promise.then(function(e){d.success({title:"Channel "+n+" properly hangup!",msg:e.message||""})}).catch(function(e){d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},p.redirectToAgent=function(n,e,t){return s.rpc.getVoiceQueuesChannelRedirect({uniqueid:n,exten:e,context:t}).$promise.then(function(e){d.success({title:"Channel "+n+" properly redirect!",msg:e.message||""})}).catch(function(e){d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},p.redirectToNumber=function(e,n){var t=a.prompt().title("Which number do you want transfer the call to?").placeholder("Number").targetEvent(e).ok("Ok").cancel("Cancel");return a.show(t).then(function(e){return s.rpc.getVoiceQueuesChannelRedirect({uniqueid:n,exten:e}).$promise}).then(function(e){d.success({title:"Channel "+n+" properly redirect!",msg:e.message||""})}).catch(function(e){e&&d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},r.on("voice_queue_channel:save",p.onSave),r.on("voice_queue_channel:remove",p.onRemove),e.$on("$destroy",function(){r.removeAllListeners("voice_queue_channel:save"),r.removeAllListeners("voice_queue_channel:remove")})}e.$inject=["$scope","$timeout","$mdDialog","agents","queues","rpcVoiceQueuesChannels","api","socket","helperClasses","toasty","userProfile","userProfileSection","Auth"],angular.module("app.motiondialer").controller("QueueCallsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["total","answered","sumHoldTime","sumDuration","sumBillable","outboundNoAnswerCallsDay","outboundBusyCallsDay","outboundCongestionCallsDay","outboundNoSuchCallsDay","outboundUnknownCallsDay","outboundDropCallsDayTimeout","outboundDropCallsDayCallersExit","outboundBlacklistCallsDay","outboundOriginateFailureCallsDay","outboundAnswerAgiCallsDay","outboundReCallsDay","outboundRejectCallsDay"];function u(){_.forIn(c.queues,function(e,n){c.rpcQueues[n]&&_.merge(e,_.pick(c.rpcQueues[n],m))})}c.count=a.count,c.queues=a?_.keyBy(a.rows?a.rows:[],"id"):{},c.rpcQueues=i?_.keyBy(i.rows?i.rows:[],"id"):{},c.userProfile=r,c.userProfileSection=l&&1==l.count?l.rows[0]:null,c.crudPermissions=d.parseCrudPermissions(c.userProfileSection?c.userProfileSection.crudPermissions:null),d.hasRole("admin")?c.query={type:"outbound",fields:"id,name",sort:"-updatedAt",limit:10,page:1}:c.query={id:d.getCurrentUser().id,channel:"voice",type:"outbound",fields:"id,name",sort:"-updatedAt",limit:10,page:1},c.success=v,c.getQueues=function(){c.query.offset=(c.query.page-1)*c.query.limit,d.hasRole("admin")?c.promise=s.voiceQueue.get(c.query,v).$promise:(c.query.id=c.userProfile.id,c.query.section="QueueCampaigns",c.promise=s.userProfile.getResources(c.query,v).$promise)},c.onSave=function(e){c.queues[e.id]&&_.merge(c.queues[e.id],_.pick(e,m))},c.$onInit=u,o.onWithoutApply("voice_queue:save",c.onSave),c.interval=n(function(){},999);var p=!0,g=1;function v(e){c.count=e.count,c.queues=e?_.keyBy(e.rows?e.rows:[],"id"):{},u()}e.$watch("vm.query.filter",function(e,n){p?t(function(){p=!1}):(n||(g=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=g),c.getQueues())}),e.$on("$destroy",function(){o.removeAllListeners("voice_queue:save"),c.interval&&n.cancel(c.interval)})}e.$inject=["$scope","$timeout","$interval","queues","rpcQueues","api","socket","userProfile","userProfileSection","Auth"],angular.module("app.motiondialer").controller("QueueParamsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c){var m=this,u=["loggedIn","available","waiting","talking","pTalking","originated","message","dialActive","dialMethod","Trunk","paused","startPredictive","startProgressive","erlangCalls","erlangCallToSecond","erlangAbandonmentRate","erlangBusyFactor","dialPredictiveInterval","dialPredictiveIntervalMaxThreshold","dialPredictiveIntervalMinThreshold","predictiveIntervalAvailable","predictiveIntervalTotalCalls","predictiveIntervalAnsweredCalls","predictiveIntervalDroppedCallsTimeout","predictiveIntervalDroppedCallsCallersExit","predictiveIntervalAvgHoldtime","predictiveIntervalAvgTalktime"],p=n(function(){},999);m.currentUser=c.getCurrentUser(),m.queues=i,m.userProfileSection=d&&1==d.count?d.rows[0]:null,m.crudPermissions=c.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={id:c.isUser()?m.currentUser.id:void 0,section:c.isUser()?"QueueCampaigns":void 0,channel:"voice",type:"outbound",sort:"name",limit:10,page:1},m.getQueues=function(){m.query.offset=(m.query.page-1)*m.query.limit,s.realtime.getQueues(m.query).$promise.then(function(e){m.queues=e}).catch(function(e){console.error(e)})},m.editQueue=function(e,n){t.show({controller:"CreateOrEditQueueCampaignDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:n,queueCampaigns:m.queues.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.addAgent=function(e,n){t.show({controller:"QueueCampaignagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:n,queueCampaigns:m.queues.rows,realtime:!0,crudPermissions:m.crudPermissions}})},m.showPredictiveQueueCampaignInfo=function(e,n){t.show({controller:"PredictiveQueueCampaignDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/realtime/queues/predictive/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:n}})},o.onWithoutApply("voice_queue:save",function(e){var n=_.find(m.queues.rows,["id",e.id]);n&&(_.merge(n,_.pick(e,u)),_.isNil(e.startPredictive)&&(n.startPredictive=void 0))}),o.on("userVoiceQueueRt:save",function(e){var n=_.find(m.queues.rows,["id",e.MotionDialerQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),o.on("user:agentconnect",function(t){m.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&(e.available-=1)})}),o.on("user:agentcomplete",function(t){m.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&(e.available+=1)})}),o.on("user:update",function(t){m.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&(!1===t.online?(n.online=!1,e.loggedInDb-=1,n.paused?(n.paused=!1,e.paused-=1):e.available-=1):n.online?t.voicePause?(n.paused=!0,e.paused+=1,e.available-=1):!t.voicePause&&n.paused&&(n.paused=!1,e.paused-=1,e.available+=1):(n.online=!0,e.loggedInDb+=1,e.available+=1))})}),e.$on("$destroy",function(){o.removeAllListeners("voice_queue:save"),o.removeAllListeners("userVoiceQueueRt:save"),o.removeAllListeners("user:agentconnect"),o.removeAllListeners("user:agentcomplete"),o.removeAllListeners("user:update"),p&&n.cancel(p)})}e.$inject=["$scope","$mdDialog","$document","$interval","queues","api","socket","toasty","userProfile","userProfileSection","Auth"],angular.module("app.motiondialer").controller("QueuesMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,n,t){this.queueCampaign=t,this.addMinutes=function(e,n){return moment(e).add("m",n).format("HH:mm:ss")},this.setFormatTime=function(e){return moment(e).format("HH:mm:ss")},this.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$interval","queueCampaign"],angular.module("app.motiondialer").controller("PredictiveQueueCampaignDialogController",e)}(),function(){"use strict";angular.module("app.auth").factory("helperClasses",function(){return{status:{registered:"green-300-fg icon-checkbox-marked-circle",unregistered:"red-300-fg icon-close-circle",lagged:"red-300-fg icon-close-circle",reachable:"green-300-fg icon-checkbox-marked-circle",unreachable:"red-300-fg icon-close-circle",unknown:"grey-fg icon-minus-circle"},state:{unknown:"grey-fg icon-phone-hangup",not_inuse:"green-300-fg icon-phone-hangup",inuse:"red-300-fg icon-phone-in-talk",busy:"red-300-fg icon-phone-locked",invalid:"grey-fg icon-phone-hangup",unavailable:"grey-fg icon-phone-hangup",ringing:"blue-300-fg icon-phone-incoming",ringinuse:"blue-300-fg icon-phone-incoming",onhold:"blue-300-fg icon-phone-paused"},channelStatus:{ring:"blue-300-fg icon-phone-incoming",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"},channelStatusOut:{ring:"blue-300-fg icon-phone-outgoing",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"}}})}(),function(){"use strict";function e(e,t,n){switch(n.disconnect(),n.connect(),this.selectedTab=0,t.current.name){case"app.motiondialer.realtime.agents":this.selectedTab=0;break;case"app.motiondialer.realtime.queues":this.selectedTab=1;break;case"app.motiondialer.realtime.queue_calls":this.selectedTab=2;break;case"app.motiondialer.realtime.abandonedcalls":this.selectedTab=3;break;case"app.motiondialer.realtime.queue_params":this.selectedTab=4;break;case"app.motiondialer.realtime.ivr_campaigns":this.selectedTab=5;break;default:this.selectedTab=0,t.go("app.motiondialer.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.motiondialer.realtime.agents");break;case 1:t.go("app.motiondialer.realtime.queues");break;case 2:t.go("app.motiondialer.realtime.queue_calls");break;case 3:t.go("app.motiondialer.realtime.abandonedcalls");break;case 4:t.go("app.motiondialer.realtime.queue_params");break;case 5:t.go("app.motiondialer.realtime.ivr_campaigns");break;default:t.go("app.motiondialer.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.motiondialer").controller("MotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="OPENCHANNEL.EDIT_OPENCHANNELACCOUNT",g.openchannelAccount=angular.copy(l),g.openchannelAccounts=r,g.newOpenchannelAccount=!1,g.openchannelAccount||(g.openchannelAccount={waitForTheAssignedAgent:10,notificationSound:!0,queueTransferTimeout:300,agentTransferTimeout:300},g.title="OPENCHANNEL.NEW_OPENCHANNELACCOUNT",g.newOpenchannelAccount=!0),n.params.id&&(g.openchannelAccount.OpenchannelAccountId=n.params.id),g.addNewOpenchannelAccount=function(){g.errors=[],d.openchannelAccount.save(g.openchannelAccount).$promise.then(function(e){g.openchannelAccounts.unshift(e.toJSON()),o.success({title:"OpenchannelAccount properly created",msg:g.openchannelAccount.name?g.openchannelAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveOpenchannelAccount=function(){g.errors=[],d.openchannelAccount.update({id:g.openchannelAccount.id},g.openchannelAccount).$promise.then(function(e){var n=_.find(g.openchannelAccounts,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"OpenchannelAccount properly saved!",msg:g.openchannelAccount.name?g.openchannelAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteOpenchannelAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The openchannelAccount will be deleted.").ariaLabel("Delete OpenchannelAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.openchannelAccount.delete({id:g.openchannelAccount.id}).$promise.then(function(){_.remove(g.openchannelAccounts,{id:g.openchannelAccount.id}),o.success({title:"OpenchannelAccount properly deleted!",msg:(g.openchannelAccount.name||"openchannelAccount")+" has been deleted!"}),v(g.openchannelAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.lists,{id:e.resourceId})}),t=null;if(g.openchannelAccount&&(t=_.find(g.lists,{id:Number(g.openchannelAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.lists,{id:t.id});a.canSelect=!1,n.push(a)}g.lists=n})}else{var t=[],a=null;g.openchannelAccount&&(a=_.find(g.lists,{id:Number(g.openchannelAccount.ListId)}));for(var i=0;i<g.lists.length;i++)a&&g.lists[i].id===a.id&&(g.lists[i].canSelect=!1,t.push(g.lists[i]));g.lists=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","openchannelAccounts","openchannelAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.openchannel").controller("CreateOrEditOpenchannelAccountDialogController",e)}(),function(){"use strict";function e(o,i,a,s,e){var r=this;function n(e,n){if(r.openchannelAccountApps.rows.length){var t=r.openchannelAccountApps.rows[n]?r.openchannelAccountApps.rows[n]:r.openchannelAccountApps.rows[0];i.show({controller:"EditOpenchannelAccountApp"+(t.appType||t.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/apps/"+(t.appType||t.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelAccountApp:t,openchannelAccount:r.openchannelAccount,crudPermissions:r.crudPermissions}}).then(function(e){e&&(e.id?r.openchannelAccountApps.rows[n]=e:r.openchannelAccountApps.rows.splice(n,0,e),l())}).catch(function(e){e&&s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function l(){for(var e=1,n=[],t=0;t<r.openchannelAccountApps.rows.length;t++,0){var a=r.openchannelAccountApps.rows[t],i=[],s=[];a.intervals="*,*,*,*"!==a.interval?[a.interval]:a.IntervalId?_.map(_.filter(r.intervals.rows,{IntervalId:a.IntervalId}),"interval"):[],a.context=r.openchannelAccount.context,a.exten=r.openchannelAccount.exten,a.type&&(a.type=a.type.toLowerCase()),a.priority=i.length?_.last(i).priority+1:e,e=(s.length?_.last(s).priority:a.priority)+1,n=_.concat(n,i,[a],s)}o.openchannelAccount.addApplications({id:r.openchannelAccount.id},_.sortBy(n,"priority")).$promise.then(function(e){r.openchannelAccountApps.rows=e.rows}).catch(function(e){console.error(e)})}function t(e){r.openchannelAccountApps=e||{count:0,rows:[]}}r.currentUser=e.getCurrentUser(),r.openchannelAccount={},r.openchannelAccountApps={count:0,rows:[]},r.selectedOpenchannelAccountApps=[],r.crudPermissions,r.query={sort:"priority"},r.apps=_.reject(_.sortBy([{app:"dialogflow",appType:"dialogflow",type:"dialogflow",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Key",name:"key",type:"text",required:!0,param:0},{title:"language",name:"language",type:"select",defaultValue:"'en'",values:[{option:"Danish",value:"'da'"},{option:"English",value:"'en'"},{option:"German",value:"'de'"},{option:"Italian",value:"'it'"},{option:"Spanish",value:"'es'"},{option:"French",value:"'fr'"},{option:"Indonesian",value:"'id'"},{option:"Japanese",value:"'ja'"},{option:"Korean (South Korea)",value:"'ko'"},{option:"Dutch",value:"'nl'"},{option:"Norwegian",value:"'no'"},{option:"Portuguese (European)",value:"'pt'"},{option:"Portuguese (Nrazilian)",value:"'pt-br'"},{option:"Russian",value:"'ru'"},{option:"Swedish",value:"'sv'"},{option:"Thai",value:"'th'"},{option:"Ukrainian",value:"'uk'"},{option:"Chinese (Simplified)",value:"'zh-CN'"},{option:"Chinese (Hong Kong)",value:"'zh-HK'"},{option:"Chinese (Traditional)",value:"'zh-TW'"}],required:!0,param:1},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,required:!1,param:2,help:!0}]},{app:"dialogflowV2",appType:"dialogflowv2",type:"dialogflowv2",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"ProjectID",name:"projectId",type:"text",required:!0,param:0},{title:"ClientEmail",name:"clientEmail",type:"text",required:!0,param:1},{title:"PrivateKey",name:"privateKey",type:"textarea",required:!0,param:2},{title:"language",name:"language",type:"select",defaultValue:"'en'",values:[{value:"'zh-HK'",option:"Chinese (Cantonese)"},{value:"'zh-CN'",option:"Chinese (Simplified)"},{value:"'zh-TW'",option:"Chinese (Traditional)"},{value:"'da'",option:"Danish"},{value:"'nl'",option:"Dutch"},{value:"'en'",option:"English"},{value:"'en-AU'",option:"English (Australia)"},{value:"'en-CA'",option:"English (Canada)"},{value:"'en-GB'",option:"English (Great Britain)"},{value:"'en-IN'",option:"English (India)"},{value:"'en-US'",option:"English (US)"},{value:"'fr'",option:"French"},{value:"'fr-CA'",option:"French (Canada)"},{value:"'fr-FR'",option:"'France (France)"},{value:"'de'",option:"German"},{value:"'hi'",option:"Hindi"},{value:"'id'",option:"Indonesian"},{value:"'it'",option:"Italian"},{value:"'ja'",option:"Japanese"},{value:"'ko'",option:"Korean"},{value:"'no'",option:"Norwegian"},{value:"'pl'",option:"Polish"},{value:"'pt-BR'",option:"Portuguese (Brazil)"},{value:"'pt-PT'",option:"Portuguese (Portugal)"},{value:"'ru'",option:"Russian"},{value:"'es'",option:"Spanish"},{value:"'es-419'",option:"Spanish (Latin America)"},{value:"'es-ES'",option:"Spanish (Spain)"},{value:"'sw'",option:"Swedish"},{value:"'th'",option:"Thai"},{value:"'tr'",option:"Turkish"},{value:"'uk'",option:"Ukrainian"}],required:!0,param:3},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,param:4,help:!0}]},{app:"amazonlex",appType:"amazonlex",type:"amazonlex",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"accesskeyid",name:"accesskeyid",type:"text",required:!0,param:0},{title:"secretaccesskey",name:"secretaccesskey",type:"text",required:!0,param:1},{title:"lexregion",name:"lexregion",type:"select",defaultValue:"'us-east-1'",values:[{option:"US East (N. Virginia)",value:"'us-east-1'"},{option:"US West (Oregon)",value:"'us-west-2'"},{option:"EU (Ireland)",value:"'eu-west-1'"},{option:"Asia Pacific (Sydney)",value:"'ap-southeast-2'"}],required:!0,param:2},{title:"botname",name:"botname",type:"text",required:!0,param:3},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,required:!1,param:4,help:!0}]},{app:"Interval",appType:"interval",types:["always","custom","list"],fields:[],isApp:!1},{app:"noop",appType:"noop",type:"noop",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,fields:[{title:"Value",name:"value",type:"text",param:0}]},{app:"system",appType:"system",type:"system",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,extraApi:[{name:"variables",field:{name:"variable",key:"name"},route:"variable",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1012}}],fields:[{title:"Command",name:"command",type:"text",required:!0,param:0},{title:"Variable",name:"variable",type:"apiselect",values:"variables",value:"variable.name",option:"variable.name",defaultValues:[{value:"''",option:"None"}],defaultValue:"''",param:1}]},{app:"gotop",appType:"gotop",type:"goto",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Priority",name:"priority",type:"number",required:!0,min:0,param:0}]},{app:"gotoif",appType:"gotoif",type:"gotoif",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Condition",name:"condition",type:"text",required:!0,param:0},{title:"truepriority",name:"truepriority",type:"number",min:1,required:!0,param:1},{title:"falsepriority",name:"falsepriority",type:"number",min:1,required:!0,param:2}]},{app:"queue",appType:"queue",foreignKey:"OpenchannelQueueId",type:"queue",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"queues",field:{name:"queue",key:"name"},route:"openchannelQueue",filters:{fields:"id,name,type",sort:"name",nolimit:!0},permissions:{section:801}}],fields:[{title:"Queue",name:"queue",type:"apiselect",values:"queues",value:"queue.name",option:"queue.name",defaultValue:300,required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,defaultValue:300,required:!0,param:1}]},{app:"agent",appType:"agent",type:"agent",foreignKey:"UserId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"agents",field:{name:"agent",key:"name"},route:"user",filters:{fields:"id,name",sort:"name",role:"agent",nolimit:!0},permissions:{section:202}}],fields:[{title:"Agent",name:"agent",type:"apiselect",values:"agents",value:"agent.name",option:"agent.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:30,param:1}]},{app:"autoreply",appType:"autoreply",type:"autoreply",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"times",name:"times",type:"select",defaultValue:"1",values:[{option:"One Time",value:"2"},{option:"Always",value:"0"},{option:"First Message",value:"1"}],required:!0,param:0},{title:"Text",name:"text",type:"textarea",required:!0,param:1}]},{app:"close",appType:"close",type:"close",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Disposition",name:"disposition",type:"text",required:!0,param:0}]},{app:"tag",appType:"tag",type:"tag",foreignKey:"TagId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"tags",field:{name:"tag",key:"name"},route:"tag",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1008}}],fields:[{title:"Tag",name:"tag",type:"apiselect",values:"tags",value:"tag.name",option:"tag.name",required:!0,param:0}]}],["app"]),{isApp:!1}),r.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},r.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){n(e,e.newIndex)},onSort:function(e){l()}},r.init=function(e,n){r.openchannelAccount=e,r.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},r.applications.disabled=!r.crudPermissions.canEdit,r.query.id=e.id,r.query.isApp=!0,r.query.nolimit=!0,r.getOpenchannelAccountApps(),r.getIntervals()},r.deleteConfirm=function(e,n,t){var a=i.confirm().title("Are you sure want to delete the application?").htmlContent("<b>"+e.app+"</b> will be deleted.").ariaLabel("delete application").targetEvent(t).ok("OK").cancel("CANCEL");i.show(a).then(function(){r.openchannelAccountApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})},r.getOpenchannelAccountApps=function(){r.promise=o.openchannelAccount.getApplications(r.query,t).$promise},r.editOpenchannelAccountApp=n,r.editInterval=function(e,n){if(r.openchannelAccountApps.rows.length){var t=r.openchannelAccountApps.rows[n]?r.openchannelAccountApps.rows[n]:r.openchannelAccountApps.rows[0];i.show({controller:"EditOpenchannelAccountAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/apps/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:[],crudPermissions:r.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,l())})}},r.deleteOpenchannelAccountApp=function(e){_.remove(r.openchannelAccountApps.rows,{id:e.id}),l(),s.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},r.deleteSelectedOpenchannelAccountApps=function(e){var n=i.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+r.selectedOpenchannelAccountApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){r.selectedOpenchannelAccountApps.forEach(function(e){_.remove(r.openchannelAccountApps.rows,{id:e.id})}),r.selectedOpenchannelAccountApps=[],l()})},r.rewriteRouting=l,r.getIntervals=function(){return o.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){r.intervals=e}).catch(function(e){console.error(e)})}}e.$inject=["api","$mdDialog","$document","toasty","Auth"],angular.module("app.openchannel").controller("OpenchannelAccountActionsController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.openchannelAccount.getAgents({id:c.openchannelAccount.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserOpenchannelAccount?"penalty "+e.UserOpenchannelAccount.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.openchannelAccount=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.openchannelAccount.removeAgents({id:c.openchannelAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.openchannelAccount.addAgents({id:c.openchannelAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("OPENCHANNEL.ALL_AGENTS"),labelSelected:r.instant("OPENCHANNEL.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","openchannelAccount","openchannelAccounts","realtime","$translate","Auth","crudPermissions"],angular.module("app.openchannel").controller("OpenchannelAccountagentaddController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.agent=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.agent.appdata)switch(l.agent.appType?l.agent.appType.toLowerCase():l.agent.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.agent.appdata.split(",");l.agent.key=d[0],l.agent.language=d[1],l.agent.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.agent.appdata.split(",");l.agent.projectId=d[0],l.agent.clientEmail=d[1],l.agent.privateKey=d[2],l.agent.language=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.agent.appdata.split(",");l.agent.accesskeyid=d[0],l.agent.secretaccesskey=d[1],l.agent.lexregion=d[2],l.agent.botname=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.agent.appdata.split(",");l.agent.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.agent.text=d.slice(1,d.length).join(",");break;case"message":l.agent.text=l.agent.appdata;break;case"set":l.agent.name=l.agent.appdata.split("=")[0],l.agent.value=l.agent.appdata.split("=")[1];break;case"agi":l.agent.project=l.agent.appdata;break;default:var c=l.agent.appdata.split(",");l.agent.agent=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.agent.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.agent.timeout=30;function m(e){n.hide(e)}l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outbounddial"===l.agent.appType.toLowerCase()&&(l.agent.prefix=l.agent.phone?l.agent.phone.split("$")[0]:void 0,l.agent.callerId=l.agent.callerID?"CALLERID(all)="+l.agent.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outboundDial"===l.agent.appType&&(l.agent.phone=i.cutdigits?(l.agent.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.agent.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.agent.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.agent.options+="U(xcally-mixmonitor-context)"):l.agent.options=l.agent.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.agents,{name:l.agent.agent});n&&(l.agent.UserId=n.id);if(l.agent.appType&&"custom"===l.agent.appType);else switch((l.agent.app||l.agent.appType).toLowerCase()){case"set":l.agent.appdata=l.agent.name+"="+l.agent.value;break;case"custom":break;default:e[0]=l.agent.agent,e[1]=l.agent.timeout,l.agent.appdata=e.join(",")}m(l.agent)},l.closeDialog=m,o.hasRole("admin")?s.user.get({fields:"id,name",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){l.agents=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.user.get({fields:"id,name",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){l.agents=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.agents,{id:e.resourceId})}),t=null;if(l.agent&&(t=_.find(l.agents,{name:l.agent.agent})),t&&!_.some(n,["id",t.id])){var a=_.find(l.agents,{id:t.id});a.canSelect=!1,n.push(a)}l.agents=n})}else{var t=[],a=null;l.agent&&(a=_.find(l.agents,{name:l.agent.agent}));for(var i=0;i<l.agents.length;i++)a&&l.agents[i].id===a.id&&(l.agents[i].canSelect=!1,t.push(l.agents[i]));l.agents=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppagentDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.amazonlex=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.amazonlex.appdata)switch(l.amazonlex.appType?l.amazonlex.appType.toLowerCase():l.amazonlex.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.amazonlex.appdata.split(",");l.amazonlex.key=d[0],l.amazonlex.language=d[1],l.amazonlex.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.amazonlex.appdata.split(",");l.amazonlex.projectId=d[0],l.amazonlex.clientEmail=d[1],l.amazonlex.privateKey=d[2],l.amazonlex.language=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=d[0],l.amazonlex.secretaccesskey=d[1],l.amazonlex.lexregion=d[2],l.amazonlex.botname=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.amazonlex.appdata.split(",");l.amazonlex.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.amazonlex.text=d.slice(1,d.length).join(",");break;case"message":l.amazonlex.text=l.amazonlex.appdata;break;case"set":l.amazonlex.name=l.amazonlex.appdata.split("=")[0],l.amazonlex.value=l.amazonlex.appdata.split("=")[1];break;case"agi":l.amazonlex.project=l.amazonlex.appdata;break;default:var c=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.amazonlex.secretaccesskey=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.amazonlex.lexregion=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.amazonlex.botname=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.amazonlex.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.amazonlex.lexregion="us-east-1";function m(e){n.hide(e)}l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outbounddial"===l.amazonlex.appType.toLowerCase()&&(l.amazonlex.prefix=l.amazonlex.phone?l.amazonlex.phone.split("$")[0]:void 0,l.amazonlex.callerId=l.amazonlex.callerID?"CALLERID(all)="+l.amazonlex.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outboundDial"===l.amazonlex.appType&&(l.amazonlex.phone=i.cutdigits?(l.amazonlex.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.amazonlex.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.amazonlex.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.amazonlex.options+="U(xcally-mixmonitor-context)"):l.amazonlex.options=l.amazonlex.options.replace("U(xcally-mixmonitor-context)",""));if(l.amazonlex.appType&&"custom"===l.amazonlex.appType);else switch((l.amazonlex.app||l.amazonlex.appType).toLowerCase()){case"set":l.amazonlex.appdata=l.amazonlex.name+"="+l.amazonlex.value;break;case"custom":break;default:e[0]=l.amazonlex.accesskeyid,e[1]=l.amazonlex.secretaccesskey,e[2]=l.amazonlex.lexregion,e[3]=l.amazonlex.botname,e[4]=l.amazonlex.welcomemessage,l.amazonlex.appdata=e.join(",")}m(l.amazonlex)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppamazonlexDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.autoreply=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.autoreply.appdata)switch(l.autoreply.appType?l.autoreply.appType.toLowerCase():l.autoreply.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.autoreply.appdata.split(",");l.autoreply.key=d[0],l.autoreply.language=d[1],l.autoreply.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.autoreply.appdata.split(",");l.autoreply.projectId=d[0],l.autoreply.clientEmail=d[1],l.autoreply.privateKey=d[2],l.autoreply.language=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.autoreply.appdata.split(",");l.autoreply.accesskeyid=d[0],l.autoreply.secretaccesskey=d[1],l.autoreply.lexregion=d[2],l.autoreply.botname=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.autoreply.appdata.split(",");l.autoreply.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.autoreply.text=d.slice(1,d.length).join(",");break;case"message":l.autoreply.text=l.autoreply.appdata;break;case"set":l.autoreply.name=l.autoreply.appdata.split("=")[0],l.autoreply.value=l.autoreply.appdata.split("=")[1];break;case"agi":l.autoreply.project=l.autoreply.appdata;break;default:var c=l.autoreply.appdata.split(",");l.autoreply.times=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.autoreply.text=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.autoreply.times=1;function m(e){n.hide(e)}l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outbounddial"===l.autoreply.appType.toLowerCase()&&(l.autoreply.prefix=l.autoreply.phone?l.autoreply.phone.split("$")[0]:void 0,l.autoreply.callerId=l.autoreply.callerID?"CALLERID(all)="+l.autoreply.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outboundDial"===l.autoreply.appType&&(l.autoreply.phone=i.cutdigits?(l.autoreply.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.autoreply.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.autoreply.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.autoreply.options+="U(xcally-mixmonitor-context)"):l.autoreply.options=l.autoreply.options.replace("U(xcally-mixmonitor-context)",""));if(l.autoreply.appType&&"custom"===l.autoreply.appType);else switch((l.autoreply.app||l.autoreply.appType).toLowerCase()){case"set":l.autoreply.appdata=l.autoreply.name+"="+l.autoreply.value;break;case"custom":break;default:e[0]=l.autoreply.times,e[1]=l.autoreply.text,l.autoreply.appdata=e.join(",")}m(l.autoreply)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppautoreplyDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.close=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.close.appdata)switch(l.close.appType?l.close.appType.toLowerCase():l.close.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.close.appdata.split(",");l.close.key=d[0],l.close.language=d[1],l.close.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.close.appdata.split(",");l.close.projectId=d[0],l.close.clientEmail=d[1],l.close.privateKey=d[2],l.close.language=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.close.appdata.split(",");l.close.accesskeyid=d[0],l.close.secretaccesskey=d[1],l.close.lexregion=d[2],l.close.botname=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.close.appdata.split(",");l.close.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.close.text=d.slice(1,d.length).join(",");break;case"message":l.close.text=l.close.appdata;break;case"set":l.close.name=l.close.appdata.split("=")[0],l.close.value=l.close.appdata.split("=")[1];break;case"agi":l.close.project=l.close.appdata;break;default:var c=l.close.appdata.split(",");l.close.disposition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outbounddial"===l.close.appType.toLowerCase()&&(l.close.prefix=l.close.phone?l.close.phone.split("$")[0]:void 0,l.close.callerId=l.close.callerID?"CALLERID(all)="+l.close.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outboundDial"===l.close.appType&&(l.close.phone=i.cutdigits?(l.close.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.close.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.close.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.close.options+="U(xcally-mixmonitor-context)"):l.close.options=l.close.options.replace("U(xcally-mixmonitor-context)",""));if(l.close.appType&&"custom"===l.close.appType);else switch((l.close.app||l.close.appType).toLowerCase()){case"set":l.close.appdata=l.close.name+"="+l.close.value;break;case"custom":break;default:e[0]=l.close.disposition,l.close.appdata=e.join(",")}m(l.close)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppcloseDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflow=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflow.appdata)switch(l.dialogflow.appType?l.dialogflow.appType.toLowerCase():l.dialogflow.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflow.appdata.split(",");l.dialogflow.key=d[0],l.dialogflow.language=d[1],l.dialogflow.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflow.appdata.split(",");l.dialogflow.projectId=d[0],l.dialogflow.clientEmail=d[1],l.dialogflow.privateKey=d[2],l.dialogflow.language=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflow.appdata.split(",");l.dialogflow.accesskeyid=d[0],l.dialogflow.secretaccesskey=d[1],l.dialogflow.lexregion=d[2],l.dialogflow.botname=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflow.appdata.split(",");l.dialogflow.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflow.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflow.text=l.dialogflow.appdata;break;case"set":l.dialogflow.name=l.dialogflow.appdata.split("=")[0],l.dialogflow.value=l.dialogflow.appdata.split("=")[1];break;case"agi":l.dialogflow.project=l.dialogflow.appdata;break;default:var c=l.dialogflow.appdata.split(",");l.dialogflow.key=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflow.language=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflow.welcomemessage=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}else l.dialogflow.language="en";function m(e){n.hide(e)}l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outbounddial"===l.dialogflow.appType.toLowerCase()&&(l.dialogflow.prefix=l.dialogflow.phone?l.dialogflow.phone.split("$")[0]:void 0,l.dialogflow.callerId=l.dialogflow.callerID?"CALLERID(all)="+l.dialogflow.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outboundDial"===l.dialogflow.appType&&(l.dialogflow.phone=i.cutdigits?(l.dialogflow.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflow.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflow.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflow.options+="U(xcally-mixmonitor-context)"):l.dialogflow.options=l.dialogflow.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflow.appType&&"custom"===l.dialogflow.appType);else switch((l.dialogflow.app||l.dialogflow.appType).toLowerCase()){case"set":l.dialogflow.appdata=l.dialogflow.name+"="+l.dialogflow.value;break;case"custom":break;default:e[0]=l.dialogflow.key,e[1]=l.dialogflow.language,e[2]=l.dialogflow.welcomemessage,l.dialogflow.appdata=e.join(",")}m(l.dialogflow)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppdialogflowDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflowv2=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflowv2.appdata)switch(l.dialogflowv2.appType?l.dialogflowv2.appType.toLowerCase():l.dialogflowv2.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.key=d[0],l.dialogflowv2.language=d[1],l.dialogflowv2.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=d[0],l.dialogflowv2.clientEmail=d[1],l.dialogflowv2.privateKey=d[2],l.dialogflowv2.language=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.accesskeyid=d[0],l.dialogflowv2.secretaccesskey=d[1],l.dialogflowv2.lexregion=d[2],l.dialogflowv2.botname=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflowv2.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflowv2.text=l.dialogflowv2.appdata;break;case"set":l.dialogflowv2.name=l.dialogflowv2.appdata.split("=")[0],l.dialogflowv2.value=l.dialogflowv2.appdata.split("=")[1];break;case"agi":l.dialogflowv2.project=l.dialogflowv2.appdata;break;default:var c=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflowv2.clientEmail=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflowv2.privateKey=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.dialogflowv2.language=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.dialogflowv2.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.dialogflowv2.language="en";function m(e){n.hide(e)}l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outbounddial"===l.dialogflowv2.appType.toLowerCase()&&(l.dialogflowv2.prefix=l.dialogflowv2.phone?l.dialogflowv2.phone.split("$")[0]:void 0,l.dialogflowv2.callerId=l.dialogflowv2.callerID?"CALLERID(all)="+l.dialogflowv2.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outboundDial"===l.dialogflowv2.appType&&(l.dialogflowv2.phone=i.cutdigits?(l.dialogflowv2.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflowv2.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflowv2.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflowv2.options+="U(xcally-mixmonitor-context)"):l.dialogflowv2.options=l.dialogflowv2.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflowv2.appType&&"custom"===l.dialogflowv2.appType);else switch((l.dialogflowv2.app||l.dialogflowv2.appType).toLowerCase()){case"set":l.dialogflowv2.appdata=l.dialogflowv2.name+"="+l.dialogflowv2.value;break;case"custom":break;default:e[0]=l.dialogflowv2.projectId,e[1]=l.dialogflowv2.clientEmail,e[2]=l.dialogflowv2.privateKey,e[3]=l.dialogflowv2.language,e[4]=l.dialogflowv2.welcomemessage,l.dialogflowv2.appdata=e.join(",")}m(l.dialogflowv2)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppdialogflowv2DialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotoif=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotoif.appdata)switch(l.gotoif.appType?l.gotoif.appType.toLowerCase():l.gotoif.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotoif.appdata.split(",");l.gotoif.key=d[0],l.gotoif.language=d[1],l.gotoif.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotoif.appdata.split(",");l.gotoif.projectId=d[0],l.gotoif.clientEmail=d[1],l.gotoif.privateKey=d[2],l.gotoif.language=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotoif.appdata.split(",");l.gotoif.accesskeyid=d[0],l.gotoif.secretaccesskey=d[1],l.gotoif.lexregion=d[2],l.gotoif.botname=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotoif.appdata.split(",");l.gotoif.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotoif.text=d.slice(1,d.length).join(",");break;case"message":l.gotoif.text=l.gotoif.appdata;break;case"set":l.gotoif.name=l.gotoif.appdata.split("=")[0],l.gotoif.value=l.gotoif.appdata.split("=")[1];break;case"agi":l.gotoif.project=l.gotoif.appdata;break;default:var c=l.gotoif.appdata.split(",");l.gotoif.condition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.gotoif.truepriority=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.gotoif.falsepriority=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}function m(e){n.hide(e)}l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outbounddial"===l.gotoif.appType.toLowerCase()&&(l.gotoif.prefix=l.gotoif.phone?l.gotoif.phone.split("$")[0]:void 0,l.gotoif.callerId=l.gotoif.callerID?"CALLERID(all)="+l.gotoif.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outboundDial"===l.gotoif.appType&&(l.gotoif.phone=i.cutdigits?(l.gotoif.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotoif.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotoif.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotoif.options+="U(xcally-mixmonitor-context)"):l.gotoif.options=l.gotoif.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotoif.appType&&"custom"===l.gotoif.appType);else switch((l.gotoif.app||l.gotoif.appType).toLowerCase()){case"set":l.gotoif.appdata=l.gotoif.name+"="+l.gotoif.value;break;case"custom":break;default:e[0]=l.gotoif.condition,e[1]=l.gotoif.truepriority,e[2]=l.gotoif.falsepriority,l.gotoif.appdata=e.join(",")}m(l.gotoif)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppgotoifDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotop.appdata)switch(l.gotop.appType?l.gotop.appType.toLowerCase():l.gotop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotop.appdata.split(",");l.gotop.key=d[0],l.gotop.language=d[1],l.gotop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotop.appdata.split(",");l.gotop.projectId=d[0],l.gotop.clientEmail=d[1],l.gotop.privateKey=d[2],l.gotop.language=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotop.appdata.split(",");l.gotop.accesskeyid=d[0],l.gotop.secretaccesskey=d[1],l.gotop.lexregion=d[2],l.gotop.botname=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotop.appdata.split(",");l.gotop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotop.text=d.slice(1,d.length).join(",");break;case"message":l.gotop.text=l.gotop.appdata;break;case"set":l.gotop.name=l.gotop.appdata.split("=")[0],l.gotop.value=l.gotop.appdata.split("=")[1];break;case"agi":l.gotop.project=l.gotop.appdata;break;default:var c=l.gotop.appdata.split(",");l.gotop.priority=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outbounddial"===l.gotop.appType.toLowerCase()&&(l.gotop.prefix=l.gotop.phone?l.gotop.phone.split("$")[0]:void 0,l.gotop.callerId=l.gotop.callerID?"CALLERID(all)="+l.gotop.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outboundDial"===l.gotop.appType&&(l.gotop.phone=i.cutdigits?(l.gotop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotop.options+="U(xcally-mixmonitor-context)"):l.gotop.options=l.gotop.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotop.appType&&"custom"===l.gotop.appType);else switch((l.gotop.app||l.gotop.appType).toLowerCase()){case"set":l.gotop.appdata=l.gotop.name+"="+l.gotop.value;break;case"custom":break;default:e[0]=l.gotop.priority,l.gotop.appdata=e.join(",")}m(l.gotop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppgotopDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;if(c.currentUser=l.getCurrentUser(),c.errors=[],c.title="TOOLS.EDIT_INTERVAL",c.interval=angular.copy(i),c.intervals=s,c.newInterval=!1,c.types=["always","custom","list"],c.crudPermissions=d,c.daysOfWeek=a.getDaysOfWeek(),c.monthNumber=a.getMonthNumber(),c.monthName=a.getMonthName(),c.daysOfMonth=a.getDaysOfMonth(),c.interval)if("*,*,*,*"!==c.interval.interval){c.type="custom";var m=c.interval.interval.split(","),u=m[0],p=m[1],g=m[2],v=m[3];if("*"!==u){var h,f=u.split("-")[0],b=u.split("-")[1];(h=new Date).setHours(Number(f.split(":")[0])),h.setMinutes(Number(f.split(":")[1])),c.timeRangeFrom=h,(h=new Date).setHours(Number(b.split(":")[0])),h.setMinutes(Number(b.split(":")[1])),c.timeRangeTo=h}"*"!==p&&(c.dayOfWeekFrom=p.split("-")[0],c.dayOfWeekTo=p.split("-")[1]),"*"!==g&&(c.monthDayFrom=g.split("-")[0],c.monthDayTo=g.split("-")[1]),"*"!==v&&(c.monthFrom=v.split("-")[0],c.monthTo=v.split("-")[1])}else c.type="always";else c.interval={interval:"*,*,*,*"},c.type="always",c.title="TOOLS.NEW_INTERVAL",c.newInterval=!0;function A(){switch(c.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==c.timeRangeFrom&&c.timeRangeFrom&&c.timeRangeTo){var n=(c.timeRangeFrom.getHours()<10?"0":"")+c.timeRangeFrom.getHours()+":"+(c.timeRangeFrom.getMinutes()<10?"0":"")+c.timeRangeFrom.getMinutes(),t=(c.timeRangeTo.getHours()<10?"0":"")+c.timeRangeTo.getHours()+":"+(c.timeRangeTo.getMinutes()<10?"0":"")+c.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return c.dayOfWeekFrom?c.dayOfWeekTo?e.push(c.dayOfWeekFrom+"-"+c.dayOfWeekTo):e.push(c.dayOfWeekFrom):e.push("*"),c.monthDayFrom?c.monthDayTo?e.push(c.monthDayFrom+"-"+c.monthDayTo):e.push(c.monthDayFrom):e.push("*"),c.monthFrom?c.monthTo?e.push(c.monthFrom+"-"+c.monthTo):e.push(c.monthFrom):e.push("*"),e.join()}}function E(e){n.hide(e)}e.params.id&&!c.interval.application&&(c.interval.IntervalId=e.params.id),c.interval.IntervalId&&c.interval.application&&(c.type="list"),c.addNewInterval=function(){c.errors=[],c.interval.interval=A(),r.interval.save(c.interval).$promise.then(function(e){c.intervals.push(e),o.success({title:"Interval properly created",msg:c.interval.name?c.interval.name+" has been created!":""}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},c.saveInterval=function(){c.errors=[],c.interval.interval=A(),c.interval.application?("list"!==c.type&&(c.interval.IntervalId=null),E(c.interval)):r.interval.update({id:c.interval.id},c.interval).$promise.then(function(e){var n=_.find(c.intervals,{id:e.id});n&&_.merge(n,e),o.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},c.closeDialog=E,c.interval.application&&(l.hasRole("admin")?r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:c.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=e&&e.rows?e.rows:[],t=[],a=null;c.interval&&(a=_.find(c.intervals,{name:c.interval.IntervalId})),a&&!_.some(n,["resourceId",a.id])&&c.intervals.forEach(function(e){e.id===a.id&&(e.canSelect=!1,t.push(e))}),c.intervals=t})}else c.intervals=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}))}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditOpenchannelAccountAppintervalDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.noop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.noop.appdata)switch(l.noop.appType?l.noop.appType.toLowerCase():l.noop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.noop.appdata.split(",");l.noop.key=d[0],l.noop.language=d[1],l.noop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.noop.appdata.split(",");l.noop.projectId=d[0],l.noop.clientEmail=d[1],l.noop.privateKey=d[2],l.noop.language=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.noop.appdata.split(",");l.noop.accesskeyid=d[0],l.noop.secretaccesskey=d[1],l.noop.lexregion=d[2],l.noop.botname=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.noop.appdata.split(",");l.noop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.noop.text=d.slice(1,d.length).join(",");break;case"message":l.noop.text=l.noop.appdata;break;case"set":l.noop.name=l.noop.appdata.split("=")[0],l.noop.value=l.noop.appdata.split("=")[1];break;case"agi":l.noop.project=l.noop.appdata;break;default:var c=l.noop.appdata.split(",");l.noop.value=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outbounddial"===l.noop.appType.toLowerCase()&&(l.noop.prefix=l.noop.phone?l.noop.phone.split("$")[0]:void 0,l.noop.callerId=l.noop.callerID?"CALLERID(all)="+l.noop.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outboundDial"===l.noop.appType&&(l.noop.phone=i.cutdigits?(l.noop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.noop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.noop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.noop.options+="U(xcally-mixmonitor-context)"):l.noop.options=l.noop.options.replace("U(xcally-mixmonitor-context)",""));if(l.noop.appType&&"custom"===l.noop.appType);else switch((l.noop.app||l.noop.appType).toLowerCase()){case"set":l.noop.appdata=l.noop.name+"="+l.noop.value;break;case"custom":break;default:e[0]=l.noop.value,l.noop.appdata=e.join(",")}m(l.noop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppnoopDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.queue=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.queue.appdata)switch(l.queue.appType?l.queue.appType.toLowerCase():l.queue.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.queue.appdata.split(",");l.queue.key=d[0],l.queue.language=d[1],l.queue.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.queue.appdata.split(",");l.queue.projectId=d[0],l.queue.clientEmail=d[1],l.queue.privateKey=d[2],l.queue.language=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.queue.appdata.split(",");l.queue.accesskeyid=d[0],l.queue.secretaccesskey=d[1],l.queue.lexregion=d[2],l.queue.botname=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.queue.appdata.split(",");l.queue.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.queue.text=d.slice(1,d.length).join(",");break;case"message":l.queue.text=l.queue.appdata;break;case"set":l.queue.name=l.queue.appdata.split("=")[0],l.queue.value=l.queue.appdata.split("=")[1];break;case"agi":l.queue.project=l.queue.appdata;break;default:var c=l.queue.appdata.split(",");l.queue.queue=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.queue.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.queue.queue=300,l.queue.timeout=300;function m(e){n.hide(e)}l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outbounddial"===l.queue.appType.toLowerCase()&&(l.queue.prefix=l.queue.phone?l.queue.phone.split("$")[0]:void 0,l.queue.callerId=l.queue.callerID?"CALLERID(all)="+l.queue.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outboundDial"===l.queue.appType&&(l.queue.phone=i.cutdigits?(l.queue.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.queue.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.queue.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.queue.options+="U(xcally-mixmonitor-context)"):l.queue.options=l.queue.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.queues,{name:l.queue.queue});n&&(l.queue[_.capitalize("openChannel")+"QueueId"]=n.id);if(l.queue.appType&&"custom"===l.queue.appType);else switch((l.queue.app||l.queue.appType).toLowerCase()){case"set":l.queue.appdata=l.queue.name+"="+l.queue.value;break;case"custom":break;default:e[0]=l.queue.queue,e[1]=l.queue.timeout,l.queue.appdata=e.join(",")}m(l.queue)},l.closeDialog=m,o.hasRole("admin")?s.openchannelQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.openchannelQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:801}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.queues,{id:e.resourceId})}),t=null;if(l.queue&&(t=_.find(l.queues,{name:l.queue.queue})),t&&!_.some(n,["id",t.id])){var a=_.find(l.queues,{id:t.id});a.canSelect=!1,n.push(a)}l.queues=n})}else{var t=[],a=null;l.queue&&(a=_.find(l.queues,{name:l.queue.queue}));for(var i=0;i<l.queues.length;i++)a&&l.queues[i].id===a.id&&(l.queues[i].canSelect=!1,t.push(l.queues[i]));l.queues=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppqueueDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.system=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.system.appdata)switch(l.system.appType?l.system.appType.toLowerCase():l.system.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.system.appdata.split(",");l.system.key=d[0],l.system.language=d[1],l.system.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.system.appdata.split(",");l.system.projectId=d[0],l.system.clientEmail=d[1],l.system.privateKey=d[2],l.system.language=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.system.appdata.split(",");l.system.accesskeyid=d[0],l.system.secretaccesskey=d[1],l.system.lexregion=d[2],l.system.botname=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.system.appdata.split(",");l.system.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.system.text=d.slice(1,d.length).join(",");break;case"message":l.system.text=l.system.appdata;break;case"set":l.system.name=l.system.appdata.split("=")[0],l.system.value=l.system.appdata.split("=")[1];break;case"agi":l.system.project=l.system.appdata;break;default:var c=l.system.appdata.split(",");l.system.command=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.system.variable=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.system.variable="";function m(e){n.hide(e)}l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outbounddial"===l.system.appType.toLowerCase()&&(l.system.prefix=l.system.phone?l.system.phone.split("$")[0]:void 0,l.system.callerId=l.system.callerID?"CALLERID(all)="+l.system.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outboundDial"===l.system.appType&&(l.system.phone=i.cutdigits?(l.system.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.system.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.system.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.system.options+="U(xcally-mixmonitor-context)"):l.system.options=l.system.options.replace("U(xcally-mixmonitor-context)",""));if(l.system.appType&&"custom"===l.system.appType);else switch((l.system.app||l.system.appType).toLowerCase()){case"set":l.system.appdata=l.system.name+"="+l.system.value;break;case"custom":break;default:e[0]=l.system.command,e[1]=l.system.variable,l.system.appdata=e.join(",")}m(l.system)},l.closeDialog=m,o.hasRole("admin")?s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1012}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.variables,{id:e.resourceId})}),t=null;if(l.system&&(t=_.find(l.variables,{name:l.system.variable})),t&&!_.some(n,["id",t.id])){var a=_.find(l.variables,{id:t.id});a.canSelect=!1,n.push(a)}l.variables=n})}else{var t=[],a=null;l.system&&(a=_.find(l.variables,{name:l.system.variable}));for(var i=0;i<l.variables.length;i++)a&&l.variables[i].id===a.id&&(l.variables[i].canSelect=!1,t.push(l.variables[i]));l.variables=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppsystemDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.tag=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.tag.appdata)switch(l.tag.appType?l.tag.appType.toLowerCase():l.tag.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.tag.appdata.split(",");l.tag.key=d[0],l.tag.language=d[1],l.tag.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.tag.appdata.split(",");l.tag.projectId=d[0],l.tag.clientEmail=d[1],l.tag.privateKey=d[2],l.tag.language=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.tag.appdata.split(",");l.tag.accesskeyid=d[0],l.tag.secretaccesskey=d[1],l.tag.lexregion=d[2],l.tag.botname=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.tag.appdata.split(",");l.tag.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.tag.text=d.slice(1,d.length).join(",");break;case"message":l.tag.text=l.tag.appdata;break;case"set":l.tag.name=l.tag.appdata.split("=")[0],l.tag.value=l.tag.appdata.split("=")[1];break;case"agi":l.tag.project=l.tag.appdata;break;default:var c=l.tag.appdata.split(",");l.tag.tag=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outbounddial"===l.tag.appType.toLowerCase()&&(l.tag.prefix=l.tag.phone?l.tag.phone.split("$")[0]:void 0,l.tag.callerId=l.tag.callerID?"CALLERID(all)="+l.tag.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outboundDial"===l.tag.appType&&(l.tag.phone=i.cutdigits?(l.tag.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.tag.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.tag.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.tag.options+="U(xcally-mixmonitor-context)"):l.tag.options=l.tag.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.tags,{name:l.tag.tag});n&&(l.tag.TagId=n.id);if(l.tag.appType&&"custom"===l.tag.appType);else switch((l.tag.app||l.tag.appType).toLowerCase()){case"set":l.tag.appdata=l.tag.name+"="+l.tag.value;break;case"custom":break;default:e[0]=l.tag.tag,l.tag.appdata=e.join(",")}m(l.tag)},l.closeDialog=m,o.hasRole("admin")?s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1008}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.tags,{id:e.resourceId})}),t=null;if(l.tag&&(t=_.find(l.tags,{name:l.tag.tag})),t&&!_.some(n,["id",t.id])){var a=_.find(l.tags,{id:t.id});a.canSelect=!1,n.push(a)}l.tags=n})}else{var t=[],a=null;l.tag&&(a=_.find(l.tags,{name:l.tag.tag}));for(var i=0;i<l.tags.length;i++)a&&l.tags[i].id===a.id&&(l.tags[i].canSelect=!1,t.push(l.tags[i]));l.tags=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtags",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountApptagDialogController",e)}(),function(){"use strict";function e(e,a,n,t,i,s,o,r,l,d,c){var m=this;function u(e){m.openchannelAccountInteractions=e||{count:0,rows:[]};for(var n=0;n<m.openchannelAccountInteractions.rows.length;n+=1){var t=m.openchannelAccountInteractions.rows[n];v(t),t.Owner.name=h(t)}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.openchannelInteraction.get(m.query,u).$promise}function g(e){d.openchannelInteraction.delete({id:e.id}).$promise.then(function(){_.remove(m.openchannelAccountInteractions.rows,{id:e.id}),m.openchannelAccountInteractions.count-=1,m.openchannelAccountInteractions.rows.length||p(),l.success({title:"Interaction deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETopenchannelAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(e){e.from?e.contactName=e.from:e.Contact?e.contactName=(e.Contact.firstName||"")+" "+(e.Contact.lastName||""):e.contactName=i.instant("OPENCHANNEL.UNKNOWN")}function h(e){return e.UserId?e.UserId===m.currentUser.id?i.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">":i.instant("DASHBOARDS.NOT_ASSIGNED")}m.currentUser=c.getCurrentUser(),m.openchannelAccount={},m.openchannelAccountInteractions={count:0,rows:[]},m.selectedOpenchannelAccountInteractions=[],m.crudPermissions,m.query={read:"null",closed:"null",sort:"-createdAt",includeAll:"true",limit:10,page:1},m.init=function(e,n,t){m.openchannelAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.OpenchannelAccountId=m.openchannelAccount.id,m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Subject",column:"subject",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},d.tag.get().$promise.then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]})},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the interaction?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("interaction #")+e.id||"interaction")+"</b> will be deleted.").ariaLabel("delete interaction").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.openchannelInteractionDownload=function(s,e,n){return d.openchannelInteraction.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="interaction"+s.id,a=new Blob(n,{type:e.type});t="openchannel-interaction"+s.id+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getOpenchannelAccountInteractions=p,m.createOrEditOpenchannelAccountInteraction=function(e,n){o.show({controller:"CreateOrEditInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/interactions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelAccount:m.openchannelAccount,interaction:n,interactions:m.openchannelAccountInteractions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.spyopenchannelInteraction=function(e,t){o.show({controller:"AgentGeneralInteractionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,onShowing:function(e,n){e.vm.init({id:1,channel:"openchannel",interaction:t,spy:!0},a.$parent.vm.setting)}})},m.openAdvancedSearch=function(){o.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(r.body),clickOutsideToClose:!1,locals:{fields:m.advancedSearch.fields,color:void 0,storagePath:"openchannel.openchannelAccounts"},fullscreen:!0}).then(function(e){if(m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply){var n="";n+="||OpenchannelAccountId:=$eq["+m.openchannelAccount.id+"]",m.query.search=e.value?e.value+=n:e.value,p()}}).catch(function(e){l.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.exportSelectedOpenchannelAccountInteractions=function(){var e=angular.copy(m.selectedOpenchannelAccountInteractions);return m.selectedOpenchannelAccountInteractions=[],e},m.deleteOpenchannelAccountInteraction=g,m.deleteSelectedOpenchannelAccountInteractions=function(e){var n=o.confirm().title("Are you sure want to delete the selected interactions?").htmlContent("<b>"+m.selectedOpenchannelAccountInteractions.length+" selected</b> will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedOpenchannelAccountInteractions.forEach(function(e){g(e)}),m.selectedOpenchannelAccountInteractions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.openchannel").controller("OpenchannelAccountInteractionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.openchannelAccountOpenchannelCannedAnswers=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.openchannelAccount.getAnswers(m.query,u).$promise}function g(e){d.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(m.openchannelAccountOpenchannelCannedAnswers.rows,{id:e.id}),m.openchannelAccountOpenchannelCannedAnswers.count-=1,m.openchannelAccountOpenchannelCannedAnswers.rows.length||p(),l.success({title:"OpenchannelCannedAnswer deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETopenchannelAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.openchannelAccount={},m.openchannelAccountOpenchannelCannedAnswers={count:0,rows:[]},m.selectedOpenchannelAccountOpenchannelCannedAnswers=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,key,value,description",limit:10,page:1},m.init=function(e,n,t){m.openchannelAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.OpenchannelAccountId=m.openchannelAccount.id,m.query.id=m.openchannelAccount.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the openchannelCannedAnswer?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("openchannelCannedAnswer #")+e.id||"openchannelCannedAnswer")+"</b> will be deleted.").ariaLabel("delete openchannelCannedAnswer").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getOpenchannelAccountOpenchannelCannedAnswers=p,m.createOrEditOpenchannelAccountOpenchannelCannedAnswer=function(e,n){o.show({controller:"CreateOrEditOpenchannelCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/openchannelCannedAnswers/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelAccount:m.openchannelAccount,openchannelCannedAnswer:n,openchannelCannedAnswers:m.openchannelAccountOpenchannelCannedAnswers.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedOpenchannelAccountOpenchannelCannedAnswers=function(){var e=angular.copy(m.selectedOpenchannelAccountOpenchannelCannedAnswers);return m.selectedOpenchannelAccountOpenchannelCannedAnswers=[],e},m.deleteOpenchannelAccountOpenchannelCannedAnswer=g,m.deleteSelectedOpenchannelAccountOpenchannelCannedAnswers=function(e){var n=o.confirm().title("Are you sure want to delete the selected openchannelCannedAnswers?").htmlContent("<b>"+m.selectedOpenchannelAccountOpenchannelCannedAnswers.length+" selected</b> will be deleted.").ariaLabel("delete openchannelCannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedOpenchannelAccountOpenchannelCannedAnswers.forEach(function(e){g(e)}),m.selectedOpenchannelAccountOpenchannelCannedAnswers=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.openchannel").controller("OpenchannelAccountOpenchannelCannedAnswersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="OPENCHANNEL.EDIT_OPENCHANNELCANNEDANSWER",g.openchannelCannedAnswer=angular.copy(l),g.openchannelCannedAnswers=r,g.newOpenchannelCannedAnswer=!1,g.openchannelCannedAnswer||(g.openchannelCannedAnswer={},g.title="OPENCHANNEL.NEW_OPENCHANNELCANNEDANSWER",g.newOpenchannelCannedAnswer=!0),n.params.id&&(g.openchannelCannedAnswer.OpenchannelAccountId=n.params.id),g.addNewOpenchannelCannedAnswer=function(){g.errors=[],d.cannedAnswer.save(g.openchannelCannedAnswer).$promise.then(function(e){g.openchannelCannedAnswers.unshift(e.toJSON()),o.success({title:"OpenchannelCannedAnswer properly created",msg:g.openchannelCannedAnswer.name?g.openchannelCannedAnswer.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveOpenchannelCannedAnswer=function(){g.errors=[],d.cannedAnswer.update({id:g.openchannelCannedAnswer.id},g.openchannelCannedAnswer).$promise.then(function(e){var n=_.find(g.openchannelCannedAnswers,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"OpenchannelCannedAnswer properly saved!",msg:g.openchannelCannedAnswer.name?g.openchannelCannedAnswer.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteOpenchannelCannedAnswer=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The openchannelCannedAnswer will be deleted.").ariaLabel("Delete OpenchannelCannedAnswer").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cannedAnswer.delete({id:g.openchannelCannedAnswer.id}).$promise.then(function(){_.remove(g.openchannelCannedAnswers,{id:g.openchannelCannedAnswer.id}),o.success({title:"OpenchannelCannedAnswer properly deleted!",msg:(g.openchannelCannedAnswer.name||"openchannelCannedAnswer")+" has been deleted!"}),v(g.openchannelCannedAnswer)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","openchannelCannedAnswers","openchannelCannedAnswer","api","Auth","license","setting","crudPermissions"],angular.module("app.openchannel").controller("CreateOrEditOpenchannelCannedAnswerDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.dispositions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=l.openchannelAccount.getDispositions(m.query,u).$promise}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){p(),d.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.dispositions={count:0,rows:[]},m.selectedDispositions=[],m.crudPermissions,m.levels={first:"1st",second:"2nd",third:"3rd"},m.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},m.init=function(e,n){m.openchannelAccount=e||{},m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.OpenchannelAccountId=m.openchannelAccount.id,m.query.id=m.openchannelAccount.id,p()},m.deleteConfirm=function(e,n){var t=_.some(m.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){g(e)})},m.success=u,m.getDispositions=p,m.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:{id:m.openchannelAccount.id,field:"OpenchannelAccountId",route:"openchannelAccount"},license:null,setting:null,crudPermissions:m.crudPermissions}}).then(function(e){e&&p()})},m.deleteDisposition=g,m.exportSelectedDispositions=function(){var e=angular.copy(m.selectedDispositions);return m.selectedDispositions=[],e},m.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:m.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedDispositions.forEach(function(e){g(e)}),m.selectedDispositions=[]})},m.deselectDispositions=function(){m.selectedDispositions=[]},m.selectAllDispositions=function(){m.selectedDispositions=m.dispositions.rows};var v=!0,h=1;e.$watch("vm_dc.query.filter",function(e,n){v?o(function(){v=!1}):(n||(h=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=h),p())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","api","toasty","Auth"],angular.module("app.openchannel").controller("OpenchannelAccountDispositionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;p.currentUser=d.getCurrentUser(),p.license=s,p.setting=o,p.passwordPattern=p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.location=n.protocol()+"://"+n.host(),p.openchannelAccount=c||e.params.openchannelAccount||{},p.userProfile=m,p.userProfileSection=u&&1==u.count?u.rows[0]:null,p.crudPermissions=d.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.hasModulePermissions={},p.selectedTab=e.params.tab||0,p.agentadddialog=function(e,n){t.show({controller:"OpenchannelAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{openchannelAccount:e,openchannelAccounts:p.openchannelAccounts?p.openchannelAccounts.rows:[],crudPermissions:p.crudPermissions,realtime:!1}})},p.alert=l.info,p.gotoOpenchannelAccounts=function(){e.go("app.openchannel.openchannelAccounts",{},{reload:"app.openchannel.openchannelAccounts"})},p.saveOpenchannelAccount=function(){r.openchannelAccount.update({id:p.openchannelAccount.id},p.openchannelAccount).$promise.then(function(){l.success({title:"OpenchannelAccount updated!",msg:p.openchannelAccount.name?p.openchannelAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.lists,{id:e.resourceId})}),t=null;if(p.openchannelAccount&&(t=_.find(p.lists,{id:Number(p.openchannelAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.lists,{id:t.id});a.canSelect=!1,n.push(a)}p.lists=n})}else{var t=[],a=null;p.openchannelAccount&&(a=_.find(p.lists,{id:Number(p.openchannelAccount.ListId)}));for(var i=0;i<p.lists.length;i++)a&&p.lists[i].id===a.id&&(p.lists[i].canSelect=!1,t.push(p.lists[i]));p.lists=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.cmContact.describe({id:p.openchannelAccount.ListId}).$promise.then(function(e){p.fields=[];e=_.values(e.toJSON());for(var n=["id","createdAt","updatedAt","deletedAt","scheduledat","ListId","CompanyId"],t=0;t<e.length;t++)_.includes(n,e[t].columnName)||p.fields.push(e[t])}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_FIELDS",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.pauses,{id:e.resourceId})});p.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),p.pauses=n})}else p.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","openchannelAccount","userProfile","userProfileSection"],angular.module("app.openchannel").controller("OpenchannelAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.openchannelAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="openchannelAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedOpenchannelAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,key,token,replyUri,ListId,waitForTheAssignedAgent,mapKey,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUri,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.openchannel.openchannelAccounts.edit",{id:e.id,openchannelAccount:e,crudPermissions:f.crudPermissions})},f.interactionsgoto=function(e,n){t.go("app.openchannel.openchannelAccounts.edit",{id:e.id,tab:5})},f.agentadddialog=function(e,n){i.show({controller:"OpenchannelAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{openchannelAccount:e,openchannelAccounts:f.openchannelAccounts?f.openchannelAccounts.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("openchannelAccount")+"?").htmlContent("<b>"+(e.name||"openchannelAccount")+"</b> will be deleted.").ariaLabel("delete openchannelAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getOpenchannelAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.openchannelAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="OpenchannelAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditOpenchannelAccount=function(e,n){i.show({controller:"CreateOrEditOpenchannelAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelAccount:n,openchannelAccounts:f.openchannelAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteOpenchannelAccount=y,f.exportSelectedOpenchannelAccounts=function(){var e=angular.copy(f.selectedOpenchannelAccounts);return f.selectedOpenchannelAccounts=[],e},f.deleteSelectedOpenchannelAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected openchannelAccounts?").htmlContent("<b>"+f.selectedOpenchannelAccounts.length+" selected</b> will be deleted.").ariaLabel("delete OpenchannelAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedOpenchannelAccounts.forEach(function(e){y(e)}),f.selectedOpenchannelAccounts=[]})},f.deselectOpenchannelAccounts=function(){f.selectedOpenchannelAccounts=[]},f.selectAllOpenchannelAccounts=function(){f.selectedOpenchannelAccounts=f.openchannelAccounts.rows},g.hasRole("admin")?m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.lists,{id:e.resourceId})}),t=null;if(f.openchannelAccount&&(t=_.find(f.lists,{id:Number(f.openchannelAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.lists,{id:t.id});a.canSelect=!1,n.push(a)}f.lists=n})}else{var t=[],a=null;f.openchannelAccount&&(a=_.find(f.lists,{id:Number(f.openchannelAccount.ListId)}));for(var i=0;i<f.lists.length;i++)a&&f.lists[i].id===a.id&&(f.lists[i].canSelect=!1,t.push(f.lists[i]));f.lists=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.openchannelAccounts=e||{count:0,rows:[]}}function y(e){m.openchannelAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.openchannelAccounts.rows,{id:e.id}),f.openchannelAccounts.count-=1,f.openchannelAccounts.rows.length||f.getOpenchannelAccounts(),p.success({title:_.startCase("OpenchannelAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEopenchannelAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEopenchannelAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getOpenchannelAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","openchannelAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.openchannel").controller("OpenchannelAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="OPENCHANNEL.EDIT_OPENCHANNELQUEUE",g.openchannelQueue=angular.copy(l),g.openchannelQueues=r,g.newOpenchannelQueue=!1,g.openchannelQueue||(g.openchannelQueue={strategy:"beepall",timeout:10},g.title="OPENCHANNEL.NEW_OPENCHANNELQUEUE",g.newOpenchannelQueue=!0),g.addNewOpenchannelQueue=function(){g.errors=[],d.openchannelQueue.save(g.openchannelQueue).$promise.then(function(e){g.openchannelQueues.unshift(e.toJSON()),o.success({title:"OpenchannelQueue properly created",msg:g.openchannelQueue.name?g.openchannelQueue.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveOpenchannelQueue=function(){g.errors=[],d.openchannelQueue.update({id:g.openchannelQueue.id},g.openchannelQueue).$promise.then(function(e){var n=_.find(g.openchannelQueues,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"OpenchannelQueue properly saved!",msg:g.openchannelQueue.name?g.openchannelQueue.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteOpenchannelQueue=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The openchannelQueue will be deleted.").ariaLabel("Delete OpenchannelQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.openchannelQueue.delete({id:g.openchannelQueue.id}).$promise.then(function(){_.remove(g.openchannelQueues,{id:g.openchannelQueue.id}),o.success({title:"OpenchannelQueue properly deleted!",msg:(g.openchannelQueue.name||"openchannelQueue")+" has been deleted!"}),v(g.openchannelQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","openchannelQueues","openchannelQueue","api","Auth","license","setting","crudPermissions"],angular.module("app.openchannel").controller("CreateOrEditOpenchannelQueueDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.openchannelQueue.getAgents({id:c.openchannelQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserOpenchannelQueue?"penalty "+e.UserOpenchannelQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.openchannelQueue=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.openchannelQueue.removeAgents({id:c.openchannelQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.openchannelQueue.addAgents({id:c.openchannelQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("OPENCHANNEL.ALL_AGENTS"),labelSelected:r.instant("OPENCHANNEL.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","openchannelQueue","openchannelQueues","realtime","$translate","Auth","crudPermissions"],angular.module("app.openchannel").controller("OpenchannelQueueagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.openchannelQueue.getTeams({id:l.openchannelQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.openchannelQueue=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("OPENCHANNEL.ALL_TEAMS"),labelSelected:t.instant("OPENCHANNEL.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.openchannelQueue.removeTeams({id:l.openchannelQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.openchannelQueue.addTeams({id:l.openchannelQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","openchannelQueue","$translate","Auth","crudPermissions"],angular.module("app.openchannel").controller("OpenchannelQueueteamaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.openchannelQueue=c||e.params.openchannelQueue||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.teamadddialog=function(e,n){t.show({controller:"OpenchannelQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{openchannelQueue:e,openchannelQueues:u.openchannelQueues?u.openchannelQueues.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){t.show({controller:"OpenchannelQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{openchannelQueue:e,openchannelQueues:u.openchannelQueues?u.openchannelQueues.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.alert=l.info,u.gotoOpenchannelQueues=function(){e.go("app.openchannel.openchannelQueues",{},{reload:"app.openchannel.openchannelQueues"})},u.saveOpenchannelQueue=function(){r.openchannelQueue.update({id:u.openchannelQueue.id},u.openchannelQueue).$promise.then(function(){l.success({title:"OpenchannelQueue updated!",msg:u.openchannelQueue.name?u.openchannelQueue.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","openchannelQueue","userProfileSection"],angular.module("app.openchannel").controller("OpenchannelQueueController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.openchannelQueues=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="openchannelQueues",f.listOrder="",f.listOrderAsc=null,f.selectedOpenchannelQueues=[],f.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"openchannel",limit:10,page:1},f.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.openchannel.openchannelQueues.edit",{id:e.id,openchannelQueue:e,crudPermissions:f.crudPermissions})},f.teamadddialog=function(e,n){i.show({controller:"OpenchannelQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{openchannelQueue:e,openchannelQueues:f.openchannelQueues?f.openchannelQueues.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"OpenchannelQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{openchannelQueue:e,openchannelQueues:f.openchannelQueues?f.openchannelQueues.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("openchannelQueue")+"?").htmlContent("<b>"+(e.name||"openchannelQueue")+"</b> will be deleted.").ariaLabel("delete openchannelQueue").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:810}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.openchannel.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.openchannel.realtime.queues",{})}},f.success=E,f.getOpenchannelQueues=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.openchannelQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="OpenchannelQueues",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditOpenchannelQueue=function(e,n){i.show({controller:"CreateOrEditOpenchannelQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelQueue:n,openchannelQueues:f.openchannelQueues.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteOpenchannelQueue=y,f.exportSelectedOpenchannelQueues=function(){var e=angular.copy(f.selectedOpenchannelQueues);return f.selectedOpenchannelQueues=[],e},f.deleteSelectedOpenchannelQueues=function(e){var n=i.confirm().title("Are you sure want to delete the selected openchannelQueues?").htmlContent("<b>"+f.selectedOpenchannelQueues.length+" selected</b> will be deleted.").ariaLabel("delete OpenchannelQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedOpenchannelQueues.forEach(function(e){y(e)}),f.selectedOpenchannelQueues=[]})},f.deselectOpenchannelQueues=function(){f.selectedOpenchannelQueues=[]},f.selectAllOpenchannelQueues=function(){f.selectedOpenchannelQueues=f.openchannelQueues.rows};var b=!0,A=1;function E(e){f.openchannelQueues=e||{count:0,rows:[]}}function y(e){m.openchannelQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.openchannelQueues.rows,{id:e.id}),f.openchannelQueues.count-=1,f.openchannelQueues.rows.length||f.getOpenchannelQueues(),p.success({title:_.startCase("OpenchannelQueue")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEopenchannelQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEopenchannelQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getOpenchannelQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","openchannelQueues","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.openchannel").controller("OpenchannelQueuesController",e)}(),function(){"use strict";function e(e,o,n,t,a,i,s,r,l,d,c,m,u,p,g,v,h,f){var b=this,A=["userpic","online","lastLoginAt","lastPauseAt","pauseType","lastPauseAt","internal","address","chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","chatCapacity","openchannelCapacity","mailCapacity","smsCapacity","whatsappCapacity","faxCapacity","chatCurrentCapacity","openchannelCurrentCapacity","mailCurrentCapacity","smsCurrentCapacity","whatsappCurrentCapacity","faxCurrentCapacity","chatStatus","openchannelStatus","mailStatus","smsStatus","whatsappStatus","faxStatus","voiceStatus","chatStatusTime","openchannelStatusTime","mailStatusTime","smsStatusTime","whatsappStatusTime","faxStatusTime","voiceStatusTime","queue","destconnectedlinenum","screenrecording","phoneBarEnableScreenRecordingByAgent","phoneBarEnableAutomaticScreenRecording"],E=["chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","online"];for(var y in b.currentUser=v.getCurrentUser(),b.availableStates=["ringing","inuse","busy","onhold","not_inuse"],b.pauses=s||{count:0,rows:[]},b.license=h,b.userProfile=p,b.userProfileSection=g&&1==g.count?g.rows[0]:null,b.crudPermissions=v.parseCrudPermissions(b.userProfileSection?b.userProfileSection.crudPermissions:null),b.agents=r?_.keyBy(r.rows?r.rows:[],"id"):{},b.rpcAgents=l?_.keyBy(l.rows?l.rows:[],"id"):{},b.paginatedAgents={},b.load=!1,b.order=[],b.agentInternal={},b.agents)b.agents.hasOwnProperty(y)&&(b.agents[y].init=!0);b.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},b.logout=function(e,n){return d.user.logout({id:e.id,device:"realtime",agent_id:e.id,agent_name:e.name}).$promise.then(function(){m.success({title:"Agent logout",msg:e.fullname+" properly logout"}),b.agents[e.id]&&(b.agents[e.id].online=!1),b.rpcAgents[e.id]&&(b.rpcAgents[e.id].online=!1),T()}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.queueAdd=function(e,n){t.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:[],channel:"openchannel",direction:"inbound",crudPermissions:b.crudPermissions}})},b.pause=function(n,e){return d.user.pause({id:n.id,type:e}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.unPause=function(n){return d.user.unpause({id:n.id}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.showInfo=function(e){t.show(t.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},b.getAgentStatus=O,b.getAgentGlobalStatus=w,b.isPause=I,b.checkPause=function(e){return"pause"===e},b.isPartialPause=function(e){return"*pause"===e},b.onSave=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(_.omit(e,E),A)),_.merge(b.rpcAgents[e.id],_.pick(_.omit(e,E),A)),w(b.agents[e.id]))},b.onUpdate=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(e,A)),_.merge(b.rpcAgents[e.id],_.pick(e,A)),e.lastPauseAt&&(b.agents[e.id].globalStatusTime=e.lastPauseAt,b.rpcAgents[e.id].globalStatusTime=e.lastPauseAt),w(b.agents[e.id]))},b.onInit=T,b.onConnect=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(_.merge(b.agents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])),_.merge(b.rpcAgents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])))},b.onComplete=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(b.agents[b.agentInternal[e.destaccountcode]]=_.omit(b.agents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]),b.rpcAgents[b.agentInternal[e.destaccountcode]]=_.omit(b.rpcAgents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]))},b.screenRecording=function(e,n){return d.user.update({id:e.id},{screenrecording:n}).$promise.catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.on("user:save",b.onSave),c.on("user:update",b.onUpdate),c.on("user:agentconnect",b.onConnect),c.on("user:agentcomplete",b.onComplete),T();var S=f(function(){b.load&&(b.load=!1,T())},999);function T(e){b.load=!1;var n,t,a=o.defer();b.promise=a.promise,b.filteredAgents=[],b.order=[],_.forIn(b.agents,function(e,n){b.rpcAgents[n]&&_.merge(e,_.pick(_.omit(b.rpcAgents[n],E),A)),w(e),e.online?(b.filteredAgents.push(e),b.agentInternal[e.internal]=n):e.globalStatusTime=_.toNumber(moment().format("x"))}),b.query.globalStatusFilter&&_.remove(b.filteredAgents,function(e){return e.globalStatus!==b.query.globalStatusFilter}),b.query.pauseTypeFilter&&_.remove(b.filteredAgents,function(e){return e.pauseType!==b.query.pauseTypeFilter}),b.query.filter&&_.remove(b.filteredAgents,function(e){return e.fullname.toLowerCase().indexOf(b.query.filter.toLowerCase())<0}),b.filteredAgents=(n=b.filteredAgents,t=_.startsWith(b.query.order,"-")?"desc":"asc",_.orderBy(n,[b.query.order.replace("-","")],[t]));var i=(b.query.page-1)*b.query.limit;b.paginatedAgents=_.drop(b.filteredAgents,i).slice(0,b.query.limit);for(var s=0;s<b.paginatedAgents.length;s+=1)b.order.push(b.paginatedAgents[s].id);a.resolve(),b.load=!0}function I(e){return"pause"===e||"*pause"===e}function C(e){return"idle"===e||"unknown"===e||"unavailable"===e||"ringing"===e||_.isNil(e)}function O(e,n){return"voice"===n?"idle"!==e[n+"Status"]?e[n+"Status"]:e[n+"Pause"]?e[n+"Status"]="pause":"idle":e[n+"Pause"]?e[n+"Status"]="pause":e[n+"Status"]}function w(e){var n="unknown";n=_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"pause":_.some([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"*pause":_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],C)?"idle":"busy",e.globalStatus!==n&&(e.globalStatus=n,e.init?(e.init=!1,e.globalStatusTime=I(n)?_.toNumber(moment(e.lastPauseAt).format("x")):_.max([e.voiceStatusTime,e.chatStatusTime,e.mailStatusTime,e.smsStatusTime,e.whatsappStatusTime,e.openchannelStatusTime,e.faxStatusTime])):e.globalStatusTime=_.toNumber(moment().format("x")))}e.$on("$destroy",function(){c.removeAllListeners("user:save"),c.removeAllListeners("user:update"),c.removeAllListeners("user:agentconnect"),c.removeAllListeners("user:agentcomplete"),S&&(f.cancel(S),S=null)})}e.$inject=["$scope","$q","$timeout","$mdDialog","$document","$filter","pauses","agents","rpcAgents","api","socket","toasty","helperClasses","userProfile","userProfileSection","Auth","license","$interval"],angular.module("app.voice").controller("AgentsOpenchannelRealtimeController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c){var m=this,u=["loggedIn","available","waiting","paused"],p=n(function(){},999);m.currentUser=c.getCurrentUser(),m.queues=i,m.userProfileSection=d&&1==d.count?d.rows[0]:null,m.crudPermissions=c.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={id:c.isUser()?m.currentUser.id:void 0,section:c.isUser()?"OpenchannelQueues":void 0,channel:"openchannel",sort:"name",limit:10,page:1},m.getQueues=function(){m.query.offset=(m.query.page-1)*m.query.limit,s.realtime.getQueues(m.query).$promise.then(function(e){m.queues=e}).catch(function(e){console.error(e)})},m.editQueue=function(e,n){t.show({controller:"CreateOrEditOpenchannelQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelQueue:n,openchannelQueues:m.queues.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.addAgent=function(e,n){t.show({controller:"OpenchannelQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelQueue:n,openchannelQueues:m.queues.rows,realtime:!1,crudPermissions:m.crudPermissions}})},o.on("openchannel_queue:save",function(e){var n=_.find(m.queues.rows,["id",e.id]);n&&_.merge(n,_.pick(e,u))}),o.on("userOpenchannelQueue:save",function(e){var n=_.find(m.queues.rows,["id",e.OpenchannelQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),o.on("userOpenchannelQueue:remove",function(e){var n=_.find(m.queues.rows,["id",e.OpenchannelQueueId]);n&&(0<n.loggedInDb&&n.loggedInDb--,_.remove(n.agents,["id",e.UserId]))}),o.on("user:update",function(t){m.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&(!1===t.online?(n.online=!1,e.loggedInDb-=1,n.paused?(n.paused=!1,e.paused-=1):e.available-=1):n.online?t.openchannelPause?(n.paused=!0,e.paused+=1,e.available-=1):!t.openchannelPause&&n.paused&&(n.paused=!1,e.paused-=1,e.available+=1):(n.online=!0,e.loggedInDb+=1,e.available+=1))})}),e.$on("$destroy",function(){o.removeAllListeners("openchannel_queue:save"),o.removeAllListeners("userOpenchannelQueue:remove"),o.removeAllListeners("userOpenchannelQueue:save"),o.removeAllListeners("user:update"),p&&n.cancel(p)})}e.$inject=["$scope","$mdDialog","$document","$interval","queues","api","socket","toasty","userProfile","userProfileSection","Auth"],angular.module("app.openchannel").controller("QueuesOpenchannelRealtimeController",e)}(),function(){"use strict";angular.module("app.auth").factory("helperClasses",function(){return{status:{registered:"green-300-fg icon-checkbox-marked-circle",unregistered:"red-300-fg icon-close-circle",lagged:"red-300-fg icon-close-circle",reachable:"green-300-fg icon-checkbox-marked-circle",unreachable:"red-300-fg icon-close-circle",unknown:"grey-fg icon-minus-circle"},state:{unknown:"grey-fg icon-phone-hangup",not_inuse:"green-300-fg icon-phone-hangup",inuse:"red-300-fg icon-phone-in-talk",busy:"red-300-fg icon-phone-locked",invalid:"grey-fg icon-phone-hangup",unavailable:"grey-fg icon-phone-hangup",ringing:"blue-300-fg icon-phone-incoming",ringinuse:"blue-300-fg icon-phone-incoming",onhold:"blue-300-fg icon-phone-paused"},channelStatus:{ring:"blue-300-fg icon-phone-incoming",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"},channelStatusOut:{ring:"blue-300-fg icon-phone-outgoing",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"}}})}(),function(){"use strict";function e(e,t,n){switch(n.disconnect(),n.connect(),this.selectedTab=0,t.current.name){case"app.openchannel.realtime.agents":this.selectedTab=0;break;case"app.openchannel.realtime.queues":this.selectedTab=1;break;default:this.selectedTab=0,t.go("app.openchannel.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.openchannel.realtime.agents");break;case 1:t.go("app.openchannel.realtime.queues");break;default:t.go("app.openchannel.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.openchannel").controller("OpenchannelRealtimeController",e)}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this;o.currentUser=s.getCurrentUser(),o.plugin={},o.getTrustedURL=function(){return t.trustAsResourceUrl(o.plugin.adminUrl)},a.plugin.get({id:e.params.id}).$promise.then(function(e){if(e)return o.plugin=e,a.plugin.get({id:o.plugin.id}).$promise}).catch(function(e){o.plugin=void 0})}e.$inject=["$state","$scope","$sce","api","socket","Auth"],angular.module("app.plugins.plugin").controller("PluginController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g){var v=this;v.license=p,v.setting=g,v.currentUser=u.getCurrentUser(),v.cloudProviders=l||{count:0,rows:[]},v.table="cloudProviders",v.listOrder="",v.listOrderAsc=null,v.selectedAiTools=[],v.query={fields:"createdAt,updatedAt,id,name,service,data2,data1",sort:"-updatedAt",limit:10,page:1},v.arrayservice=_.keyBy([{option:"AmazonAWS",value:"'AmazonAWS'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editdialog=function(e,n){i.show({controller:"CreateOrEditCloudProviderDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/cloudProviders/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{cloudProvider:e,cloudProviders:v.cloudProviders.rows,license:v.license,setting:null,crudPermissions:v.crudPermissions}})},v.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("cloudProvider")+"?").htmlContent("<b>"+(e.name||"cloudProvider")+"</b> will be deleted.").ariaLabel("delete cloudProvider").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){A(e)},function(){console.log("CANCEL")})},v.success=b,v.getAiTools=function(){v.query.offset=(v.query.page-1)*v.query.limit,u.hasRole("admin")?v.promise=d.cloudProvider.get(v.query,b).$promise:(v.query.id=v.userProfile.id,v.query.section="AiTools",v.promise=d.userProfile.getResources(v.query,b).$promise)},v.createOrEditCloudProvider=function(e,n){i.show({controller:"CreateOrEditCloudProviderDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/cloudProviders/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{cloudProvider:n,cloudProviders:v.cloudProviders.rows,license:v.license,setting:v.setting,crudPermissions:v.crudPermissions}})},v.deleteCloudProvider=A,v.exportSelectedAiTools=function(){var e=angular.copy(v.selectedAiTools);return v.selectedAiTools=[],e},v.deleteSelectedAiTools=function(e){var n=i.confirm().title("Are you sure want to delete the selected cloudProviders?").htmlContent("<b>"+v.selectedAiTools.length+" selected</b> will be deleted.").ariaLabel("delete CloudProviders").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){v.selectedAiTools.forEach(function(e){A(e)}),v.selectedAiTools=[]})},v.deselectAiTools=function(){v.selectedAiTools=[]},v.selectAllAiTools=function(){v.selectedAiTools=v.cloudProviders.rows};var h=!0,f=1;function b(e){v.cloudProviders=e||{count:0,rows:[]}}function A(e){d.cloudProvider.delete({id:e.id}).$promise.then(function(){_.remove(v.cloudProviders.rows,{id:e.id}),v.cloudProviders.count-=1,v.cloudProviders.rows.length||v.getAiTools(),m.success({title:_.startCase("CloudProvider")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEcloudProvider"}];for(var n=0;n<e.data.errors.length;n++)m.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEcloudProvider",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){h?o(function(){h=!1}):(n||(f=v.query.page),e!==n&&(v.query.page=1),e||(v.query.page=f),v.getAiTools())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","cloudProviders","api","msUtils","toasty","Auth","license","setting"],angular.module("app.settings").controller("CloudProvidersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(e){a.hide(e)}p.currentUser=c.getCurrentUser(),p.errors=[],p.setting=u,p.license=m,p.hasModulePermissions={},p.passwordPattern=p.setting&&p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.title="SETTINGS.EDIT_CLOUDPROVIDER",p.cloudProvider=angular.copy(l),p.cloudProviders=r,p.newCloudProvider=!1,p.cloudProvider||(p.cloudProvider={},p.title="SETTINGS.NEW_CLOUDPROVIDER",p.newCloudProvider=!0),p.addNewCloudProvider=function(){p.errors=[],d.cloudProvider.save(p.cloudProvider).$promise.then(function(e){p.cloudProviders.unshift(e.toJSON()),o.success({title:"CloudProvider properly created",msg:p.cloudProvider.name?p.cloudProvider.name+" has been created!":""}),g(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cloudProvider.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cloudProvider.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.saveCloudProvider=function(){p.errors=[],d.cloudProvider.update({id:p.cloudProvider.id},p.cloudProvider).$promise.then(function(e){var n=_.find(p.cloudProviders,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"CloudProvider properly saved!",msg:p.cloudProvider.name?p.cloudProvider.name+" has been saved!":""}),g(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cloudProvider.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cloudProvider.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.deleteCloudProvider=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The cloudProvider will be deleted.").ariaLabel("Delete CloudProvider").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cloudProvider.delete({id:p.cloudProvider.id}).$promise.then(function(){_.remove(p.cloudProviders,{id:p.cloudProvider.id}),o.success({title:"CloudProvider properly deleted!",msg:(p.cloudProvider.name||"cloudProvider")+" has been deleted!"}),g(p.cloudProvider)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cloudProvider.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cloudProvider.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},p.getDateFromString=function(e){return null===e?void 0:new Date(e)},p.closeDialog=g}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","cloudProviders","cloudProvider","api","Auth","license","setting"],angular.module("app.settings").controller("CreateOrEditCloudProviderDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="SETTINGS.EDIT_CUSTOMIZATION",g.customization=angular.copy(l),g.customizations=r,g.newCustomization=!1,g.customization||(g.customization={},g.title="SETTINGS.NEW_CUSTOMIZATION",g.newCustomization=!0),g.addNewCustomization=function(){g.errors=[],d.setting.save(g.customization).$promise.then(function(e){g.customizations.unshift(e.toJSON()),o.success({title:"Customization properly created",msg:g.customization.name?g.customization.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.setting.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.setting.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveCustomization=function(){g.errors=[],d.setting.update({id:g.customization.id},g.customization).$promise.then(function(e){var n=_.find(g.customizations,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Customization properly saved!",msg:g.customization.name?g.customization.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.setting.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.setting.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteCustomization=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The customization will be deleted.").ariaLabel("Delete Customization").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.setting.delete({id:g.customization.id}).$promise.then(function(){_.remove(g.customizations,{id:g.customization.id}),o.success({title:"Customization properly deleted!",msg:(g.customization.name||"customization")+" has been deleted!"}),v(g.customization)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.setting.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.setting.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","customizations","customization","api","Auth","license","setting","crudPermissions"],angular.module("app.settings").controller("CreateOrEditCustomizationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i){var s=this;s.currentUser=i.getCurrentUser(),s.license=a,s.customizations=e,s.customization={},s.customizations&&s.customizations.rows&&s.customizations.rows.length&&(s.customization=s.customizations.rows[0]),s.saveCustomization=function(){s.customization.id?n.setting.update({id:s.customization.id},s.customization).$promise.then(function(){t.success({title:"Customization updated!",msg:s.customization.name?s.customization.name+" has been updated!":""})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsetting",msg:e.data?JSON.stringify(e.data):e.toString()})}):n.setting.save(s.customization).$promise.then(function(e){_.merge(s.customization,e),t.success({title:"Customization updated!",msg:s.customization.name?s.customization.name+" has been updated!":""})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsetting",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["customizations","api","toasty","license","Auth"],angular.module("app.settings").controller("CustomizationsController",e)}(),function(){"use strict";function e(e,a){var i=this;i.customization={},i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg","ico"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.customization.images.unshift(t),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.customization.images,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e){i.customization=angular.copy(e),i.ngFlowOptions.target="/api/settings/1/favicon".replace(":id",i.customization.id),i.customization.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.settings").controller("CustomizationfaviconController",e)}(),function(){"use strict";function e(e,a){var i=this;i.customization={},i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.customization.images.unshift(t),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.customization.images,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e){i.customization=angular.copy(e),i.ngFlowOptions.target="/api/settings/1/logo".replace(":id",i.customization.id),i.customization.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.settings").controller("CustomizationlogoController",e)}(),function(){"use strict";function e(e,a){var i=this;i.customization={},i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.customization.images.unshift(t),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.customization.images,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e){i.customization=angular.copy(e),i.ngFlowOptions.target="/api/settings/1/logo_login".replace(":id",i.customization.id),i.customization.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.settings").controller("CustomizationlogologinController",e)}(),function(){"use strict";function e(e,a){var i=this;i.customization={},i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.customization.images.unshift(t),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.customization.images,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e){i.customization=angular.copy(e),i.ngFlowOptions.target="/api/settings/1/preferred".replace(":id",i.customization.id),i.customization.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.settings").controller("CustomizationpreferredController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="SETTINGS.EDIT_GENERAL",g.general=angular.copy(l),g.generals=r,g.newGeneral=!1,g.general||(g.general={min_internal:1e3,chatTimeout:30,phoneBarAutoUpdater:!0,phoneBarAutoUpdaterUrl:"https://www.xcally.com/bar/phonebar/autoupdater.xml",splitSizeCsv:5e3,splitSizePdf:1e3,splitSizeXlsx:5e3,messagesAlignment:"alternate",phoneBarRememberMeEnabled:!0,allowedLoginAttempts:5,blockDuration:10,loginMailFrequency:10,enforcePasswordHistory:!0,passwordHistoryLimit:3},g.title="SETTINGS.NEW_GENERAL",g.newGeneral=!0),g.addNewGeneral=function(){g.errors=[],d.setting.save(g.general).$promise.then(function(e){g.generals.unshift(e.toJSON()),o.success({title:"General properly created",msg:g.general.name?g.general.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.setting.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.setting.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveGeneral=function(){g.errors=[],d.setting.update({id:g.general.id},g.general).$promise.then(function(e){var n=_.find(g.generals,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"General properly saved!",msg:g.general.name?g.general.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.setting.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.setting.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteGeneral=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The general will be deleted.").ariaLabel("Delete General").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.setting.delete({id:g.general.id}).$promise.then(function(){_.remove(g.generals,{id:g.general.id}),o.success({title:"General properly deleted!",msg:(g.general.name||"general")+" has been deleted!"}),v(g.general)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.setting.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.setting.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,d.cloudProvider.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){g.cloudProviders=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_CLOUDPROVIDERS",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","generals","general","api","Auth","license","setting","crudPermissions"],angular.module("app.settings").controller("CreateOrEditGeneralDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i){var s=this;s.currentUser=i.getCurrentUser(),s.license=a,s.generals=e,s.general={},s.generals&&s.generals.rows&&s.generals.rows.length&&(s.general=s.generals.rows[0]),_.isNil(s.general.privacyPolicyEmail)||(s.general.enablePrivacyPolicyEmail=!0),_.isNil(s.general.privacyPolicyName)||(s.general.enablePrivacyPolicyName=!0),_.isNil(s.general.privacyPolicyNumber)||(s.general.enablePrivacyPolicyNumber=!0),n.cloudProvider.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){s.cloudProviders=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_CLOUDPROVIDERS",msg:e.data?JSON.stringify(e.data):e.toString()})}),s.saveGeneral=function(){s.general.enablePrivacyPolicyEmail||(s.general.privacyPolicyEmail=null),s.general.enablePrivacyPolicyNumber||(s.general.privacyPolicyNumber=null),s.general.enablePrivacyPolicyName||(s.general.privacyPolicyName=null),s.general.id?n.setting.update({id:s.general.id},s.general).$promise.then(function(){t.success({title:"General updated!",msg:s.general.name?s.general.name+" has been updated!":""})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsetting",msg:e.data?JSON.stringify(e.data):e.toString()})}):n.setting.save(s.general).$promise.then(function(e){_.merge(s.general,e),t.success({title:"General updated!",msg:s.general.name?s.general.name+" has been updated!":""})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsetting",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.onPrivacyPolicyChange=function(e){switch(e){case"email":s.general.enablePrivacyPolicyEmail&&!s.general.privacyPolicyEmail&&(s.general.privacyPolicyEmail=0);break;case"name":s.general.enablePrivacyPolicyName&&!s.general.privacyPolicyName&&(s.general.privacyPolicyName=0);break;case"number":s.general.enablePrivacyPolicyNumber&&!s.general.privacyPolicyNumber&&(s.general.privacyPolicyNumber=0)}}}e.$inject=["generals","api","toasty","license","Auth"],angular.module("app.settings").controller("GeneralsController",e)}(),function(){"use strict";function e(n,t,a,i,e,s){var o=this;o.license=i||{},o.agents=0,o.users=0,o.telephones=0,o.channels=[{name:"voice",icon:"icon-phone"},{name:"chat",icon:"icon-hangouts"},{name:"mail",icon:"icon-email"},{name:"messaging",icon:"icon-message-text"},{name:"fax",icon:"icon-deskphone"},{name:"openchannel",icon:"icon-google-earth"},{name:"whatsapp",icon:"icon-whatsapp"}],o.modules=[{name:"cm",icon:"icon-account-circle"},{name:"dialer",icon:"icon-crosshairs"},{name:"jscripty",icon:"icon-console"}],o.addons=[{name:"webrtc",icon:"icon-server-plus"},{name:"jaws",icon:"icon-fish"},{name:"custom",icon:"icon-table-edit"},{name:"screenrecording",icon:"icon-video"},{name:"ai",icon:"icon-text-to-speech"}],o.sessions=[{name:"callysquare",icon:"icon-sitemap",restart:!0,label:"channels",enabled:"voice"},{name:"virtual",icon:"icon-dots-horizontal",restart:!1,label:"sessions",enabled:"chat"}],o.others=[{name:"update",icon:"icon-cloud-download"}],o.requestLicense=function(e){t.show({controller:"RequestLicenseDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/license/request/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{license:i,channels:o.channels,modules:o.modules,addons:o.addons,sessions:o.sessions,others:o.others}})},o.updateLicense=function(e){t.show({controller:"UpdateLicenseDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/license/update/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{license:i}})},o.gotoProcess=function(e){a.go("app.settings.system",{tab:1})},s.user.get({fields:"id",role:"agent",online:!0}).$promise.then(function(e){return o.agents=e&&e.count?e.count:0,s.user.get({fields:"id",role:"user,admin"}).$promise}).then(function(e){return o.users=e&&e.count?e.count:0,s.user.get({fields:"id",role:"telephone"}).$promise}).then(function(e){o.telephones=e&&e.count?e.count:0}).catch(function(e){console.log(e)})}e.$inject=["$document","$mdDialog","$state","license","toasty","api"],angular.module("app.settings.license").controller("LicenseController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(){e.hide()}m.errors=[],m.user=d.getCurrentUser(),m.license=angular.copy(t),m.channels=a,m.modules=i,m.addons=s,m.sessions=o,m.others=r,m.license.name=m.user.fullname,m.license.email=m.user.email,m.sendRequest=function(){for(var e in m.errors=[],m.table="||FIELD||OLD||NEW||\n",m.license)m.license.hasOwnProperty(e)&&!_.includes(["$promise","$resolved"],e)&&(t[e]===m.license[e]?m.table+="|"+e+"|"+(void 0!==t[e]?t[e]:"")+"|"+m.license[e]+"|\n":m.table+="|"+e+"|{color:red}"+(void 0!==t[e]?t[e]:"")+"{color}|*"+m.license[e]+"*|\n");l.jira.save({key:"MOTLICENSE",summary:"Motion License Request",description:m.table,issuetype:"License Request"}).$promise.then(function(e){n.success({title:"Request sent!",msg:c.instant("SETTINGS.LICENSE_REQUEST_SENT"),timeout:15e3}),u()}).catch(function(e){console.error(e),m.errors=[{message:c.instant("SETTINGS.JIRA_ERROR_MESSAGE"),type:"api.jira"}]})},m.closeDialog=u}e.$inject=["$mdDialog","toasty","license","channels","modules","addons","sessions","others","api","Auth","$translate"],angular.module("app.settings.license").controller("RequestLicenseDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i){var s=this;s.errors=[],s.license=angular.copy(t),s.licenseKey,s.updateLicense=function(){return a.license.update({id:1,key:s.licenseKey}).$promise.then(function(e){e&&(e.demo?n.error({title:"License update failed!",msg:"Invalid license key"}):n.success({title:"License properly updated!",msg:"The license has been updated!"}))}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATElicense",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","toasty","license","api","$translate"],angular.module("app.settings.license").controller("UpdateLicenseDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(e){a.hide(e)}p.currentUser=c.getCurrentUser(),p.errors=[],p.setting=u,p.license=m,p.hasModulePermissions={},p.passwordPattern=p.setting&&p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.title="SETTINGS.EDIT_NETWORK",p.network=angular.copy(l),p.networks=r,p.newNetwork=!1,p.network||(p.network={type:"localnet"},p.title="SETTINGS.NEW_NETWORK",p.newNetwork=!0),p.addNewNetwork=function(){p.errors=[],d.network.save(p.network).$promise.then(function(e){p.networks.unshift(e.toJSON()),o.success({title:"Network properly created",msg:p.network.name?p.network.name+" has been created!":""}),g(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.network.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.network.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.saveNetwork=function(){p.errors=[],d.network.update({id:p.network.id},p.network).$promise.then(function(e){var n=_.find(p.networks,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Network properly saved!",msg:p.network.name?p.network.name+" has been saved!":""}),g(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.network.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.network.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.deleteNetwork=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The network will be deleted.").ariaLabel("Delete Network").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.network.delete({id:p.network.id}).$promise.then(function(){_.remove(p.networks,{id:p.network.id}),o.success({title:"Network properly deleted!",msg:(p.network.name||"network")+" has been deleted!"}),g(p.network)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.network.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.network.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},p.getDateFromString=function(e){return null===e?void 0:new Date(e)},p.closeDialog=g}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","networks","network","api","Auth","license","setting"],angular.module("app.settings").controller("CreateOrEditNetworkDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g){var v=this;v.license=p,v.setting=g,v.currentUser=u.getCurrentUser(),v.networks=l||{count:0,rows:[]},v.table="networks",v.listOrder="",v.listOrderAsc=null,v.selectedNetworks=[],v.query={fields:"createdAt,updatedAt,id,type,value,username,password",sort:"-updatedAt",limit:10,page:1},v.arraytype=_.keyBy([{option:"LocalNET",value:"'localnet'"},{option:"ExternIP",value:"'externip'"},{option:"Turn",value:"'turn'"},{option:"Stun",value:"'stun'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editdialog=function(e,n){i.show({controller:"CreateOrEditNetworkDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/networks/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{network:e,networks:v.networks.rows,license:v.license,setting:null,crudPermissions:v.crudPermissions}})},v.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("network")+"?").htmlContent("<b>"+(e.name||"network")+"</b> will be deleted.").ariaLabel("delete network").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){A(e)},function(){console.log("CANCEL")})},v.success=b,v.getNetworks=function(){v.query.offset=(v.query.page-1)*v.query.limit,u.hasRole("admin")?v.promise=d.network.get(v.query,b).$promise:(v.query.id=v.userProfile.id,v.query.section="Networks",v.promise=d.userProfile.getResources(v.query,b).$promise)},v.createOrEditNetwork=function(e,n){i.show({controller:"CreateOrEditNetworkDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/networks/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{network:n,networks:v.networks.rows,license:v.license,setting:v.setting,crudPermissions:v.crudPermissions}})},v.deleteNetwork=A,v.exportSelectedNetworks=function(){var e=angular.copy(v.selectedNetworks);return v.selectedNetworks=[],e},v.deleteSelectedNetworks=function(e){var n=i.confirm().title("Are you sure want to delete the selected networks?").htmlContent("<b>"+v.selectedNetworks.length+" selected</b> will be deleted.").ariaLabel("delete Networks").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){v.selectedNetworks.forEach(function(e){A(e)}),v.selectedNetworks=[]})},v.deselectNetworks=function(){v.selectedNetworks=[]},v.selectAllNetworks=function(){v.selectedNetworks=v.networks.rows};var h=!0,f=1;function b(e){v.networks=e||{count:0,rows:[]}}function A(e){d.network.delete({id:e.id}).$promise.then(function(){_.remove(v.networks.rows,{id:e.id}),v.networks.count-=1,v.networks.rows.length||v.getNetworks(),m.success({title:_.startCase("Network")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEnetwork"}];for(var n=0;n<e.data.errors.length;n++)m.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEnetwork",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){h?o(function(){h=!1}):(n||(f=v.query.page),e!==n&&(v.query.page=1),e||(v.query.page=f),v.getNetworks())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","networks","api","msUtils","toasty","Auth","license","setting"],angular.module("app.settings").controller("NetworksController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="SETTINGS.EDIT_SMTP",g.smtp=angular.copy(l),g.smtps=r,g.newSmtp=!1,g.smtp||(g.smtp={service:!0},g.title="SETTINGS.NEW_SMTP",g.newSmtp=!0),g.addNewSmtp=function(){g.errors=[],d.mailAccount.save(g.smtp).$promise.then(function(e){g.smtps.unshift(e.toJSON()),o.success({title:"Smtp properly created",msg:g.smtp.name?g.smtp.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSmtp=function(){g.errors=[],d.mailAccount.update({id:g.smtp.id},g.smtp).$promise.then(function(e){var n=_.find(g.smtps,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Smtp properly saved!",msg:g.smtp.name?g.smtp.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSmtp=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The smtp will be deleted.").ariaLabel("Delete Smtp").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.mailAccount.delete({id:g.smtp.id}).$promise.then(function(){_.remove(g.smtps,{id:g.smtp.id}),o.success({title:"Smtp properly deleted!",msg:(g.smtp.name||"smtp")+" has been deleted!"}),v(g.smtp)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","smtps","smtp","api","Auth","license","setting","crudPermissions"],angular.module("app.settings").controller("CreateOrEditSmtpDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i){var s=this;s.currentUser=i.getCurrentUser(),s.license=a,s.smtps=e,s.smtp={},s.smtps&&s.smtps.rows&&s.smtps.rows.length?s.smtp=s.smtps.rows[0]:s.smtp={service:!0,Smtp:{service:null}},s.saveSmtp=function(){s.smtp.id?n.mailAccount.update({id:s.smtp.id},s.smtp).$promise.then(function(){t.success({title:"Smtp updated!",msg:s.smtp.name?s.smtp.name+" has been updated!":""})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data):e.toString()})}):n.mailAccount.save(s.smtp).$promise.then(function(e){_.merge(s.smtp,e),t.success({title:"Smtp updated!",msg:s.smtp.name?s.smtp.name+" has been updated!":""})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.verifySmtp=function(){s.smtp.id&&n.mailAccount.verifySmtp({id:s.smtp.id}).$promise.then(function(){t.success({title:"Smtp verified!",msg:s.smtp.name?s.smtp.name+" has been verified!":""})}).catch(function(e){t.error({title:"Smtp not verified! Remember to save before to verify!",msg:e.data?JSON.stringify(e.data):e.toString(),timeout:1e4})})}}e.$inject=["smtps","api","toasty","license","Auth"],angular.module("app.settings").controller("SmtpController",e)}(),function(){"use strict";function e(e,i,s,n,t,a,o,r){var l,d=this;d.system=t||{},d.processes=a?a.rows:[],d.processLimit=7,d.selectedTab=n.params.tab||0,d.getInfo=function(){return r.system.get().$promise.then(function(e){_.merge(d.system,e)}).catch(d.cancelInterval)},d.getProcesses=function(){return r.pm2.get().$promise.then(function(e){_.merge(d.processes,e?e.rows:[])}).catch(d.cancelInterval)},d.cancelInterval=function(e){i.cancel(l)},d.updateProcess=function(e,n,t){var a=s.confirm().title("Would you like to change the status of the process #"+n+"?").textContent("The status will be changed to: "+t.toUpperCase()).ariaLabel("Lucky day").targetEvent(e).ok("Ok").cancel("Cancel");s.show(a).then(function(){return r.pm2.update({id:n,status:t})}).then(function(){i(d.getProcesses,1e3,1)}).then(function(){o.success({title:"Process updated!",msg:"Status properly changed to: "+t})})},l=i(d.getInfo,5e3),e.$on("$destroy",function(){d.cancelInterval()})}e.$inject=["$scope","$interval","$mdDialog","$state","system","processes","toasty","api"],angular.module("app.settings.system").controller("SystemController",e)}(),function(){"use strict";function e(e,n,t,a,i){var s=this;s.title="SETTINGS.UPDATE",s.progress=0,s.updating=!0,s.output="Waiting...",s.success=!0,s.interval=n(function(){s.progress<90&&(s.progress+=1)},1e3),s.closeDialog=function(){e.hide()},s.reload=function(){t.location.reload()},s.stopInterval=function(){angular.isDefined(s.interval)&&(n.cancel(s.interval),s.interval=void 0);s.progress=100,s.updating=!1},i.version.fetch().$promise.then(function(e){return s.output=e.output+"...",i.version.reset().$promise}).then(function(e){return s.output=e.output+"...",i.version.pull().$promise}).then(function(e){return s.output=e.output+"...",i.version.migrations().$promise}).then(function(e){return s.output=e.output+"...",i.version.restart().$promise}).then(function(e){s.output="Waiting to restart motion...",a(function(){s.stopInterval()},3e4)}).catch(function(e){s.success=!1,s.stopInterval(),s.output=JSON.stringify(e)})}e.$inject=["$mdDialog","$interval","$window","$timeout","api"],angular.module("app.settings").controller("UpdateDialogController",e)}(),function(){"use strict";function e(t,e,a,n,i){this.version=n||{},this.updateConfirm=function(e){var n=t.confirm().title("Would you like to update your system?").htmlContent('The system request time for the update should be below 1 minute.<br><br>Do you agree the terms of this <a href="http://www.xcally.com/support/eula-xcally-license-en.pdf" target="_blank">End User License Agreement<a>?').ariaLabel("").targetEvent(e).clickOutsideToClose(!0).parent(angular.element(a.body)).ok("I agree").cancel("Disagree");t.show(n).then(function(){t.show({controller:"UpdateDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/updates/update/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!1})})}}e.$inject=["$mdDialog","$interval","$document","version","toasty"],angular.module("app.settings").controller("UpdatesController",e)}(),function(){"use strict";function e(e,o,n,t,a,i,s,r,l,d,c,m,u,p,g,v,h,f){var b=this,A=["userpic","online","lastLoginAt","lastPauseAt","pauseType","lastPauseAt","internal","address","chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","chatCapacity","openchannelCapacity","mailCapacity","smsCapacity","whatsappCapacity","faxCapacity","chatCurrentCapacity","openchannelCurrentCapacity","mailCurrentCapacity","smsCurrentCapacity","whatsappCurrentCapacity","faxCurrentCapacity","chatStatus","openchannelStatus","mailStatus","smsStatus","whatsappStatus","faxStatus","voiceStatus","chatStatusTime","openchannelStatusTime","mailStatusTime","smsStatusTime","whatsappStatusTime","faxStatusTime","voiceStatusTime","queue","destconnectedlinenum","screenrecording","phoneBarEnableScreenRecordingByAgent","phoneBarEnableAutomaticScreenRecording"],E=["chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","online"];for(var y in b.currentUser=v.getCurrentUser(),b.availableStates=["ringing","inuse","busy","onhold","not_inuse"],b.pauses=s||{count:0,rows:[]},b.license=h,b.userProfile=p,b.userProfileSection=g&&1==g.count?g.rows[0]:null,b.crudPermissions=v.parseCrudPermissions(b.userProfileSection?b.userProfileSection.crudPermissions:null),b.agents=r?_.keyBy(r.rows?r.rows:[],"id"):{},b.rpcAgents=l?_.keyBy(l.rows?l.rows:[],"id"):{},b.paginatedAgents={},b.load=!1,b.order=[],b.agentInternal={},b.agents)b.agents.hasOwnProperty(y)&&(b.agents[y].init=!0);b.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},b.logout=function(e,n){return d.user.logout({id:e.id,device:"realtime",agent_id:e.id,agent_name:e.name}).$promise.then(function(){m.success({title:"Agent logout",msg:e.fullname+" properly logout"}),b.agents[e.id]&&(b.agents[e.id].online=!1),b.rpcAgents[e.id]&&(b.rpcAgents[e.id].online=!1),T()}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.queueAdd=function(e,n){t.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:[],channel:"sms",direction:"inbound",crudPermissions:b.crudPermissions}})},b.pause=function(n,e){return d.user.pause({id:n.id,type:e}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.unPause=function(n){return d.user.unpause({id:n.id}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.showInfo=function(e){t.show(t.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},b.getAgentStatus=O,b.getAgentGlobalStatus=w,b.isPause=I,b.checkPause=function(e){return"pause"===e},b.isPartialPause=function(e){return"*pause"===e},b.onSave=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(_.omit(e,E),A)),_.merge(b.rpcAgents[e.id],_.pick(_.omit(e,E),A)),w(b.agents[e.id]))},b.onUpdate=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(e,A)),_.merge(b.rpcAgents[e.id],_.pick(e,A)),e.lastPauseAt&&(b.agents[e.id].globalStatusTime=e.lastPauseAt,b.rpcAgents[e.id].globalStatusTime=e.lastPauseAt),w(b.agents[e.id]))},b.onInit=T,b.onConnect=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(_.merge(b.agents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])),_.merge(b.rpcAgents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])))},b.onComplete=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(b.agents[b.agentInternal[e.destaccountcode]]=_.omit(b.agents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]),b.rpcAgents[b.agentInternal[e.destaccountcode]]=_.omit(b.rpcAgents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]))},b.screenRecording=function(e,n){return d.user.update({id:e.id},{screenrecording:n}).$promise.catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.on("user:save",b.onSave),c.on("user:update",b.onUpdate),c.on("user:agentconnect",b.onConnect),c.on("user:agentcomplete",b.onComplete),T();var S=f(function(){b.load&&(b.load=!1,T())},999);function T(e){b.load=!1;var n,t,a=o.defer();b.promise=a.promise,b.filteredAgents=[],b.order=[],_.forIn(b.agents,function(e,n){b.rpcAgents[n]&&_.merge(e,_.pick(_.omit(b.rpcAgents[n],E),A)),w(e),e.online?(b.filteredAgents.push(e),b.agentInternal[e.internal]=n):e.globalStatusTime=_.toNumber(moment().format("x"))}),b.query.globalStatusFilter&&_.remove(b.filteredAgents,function(e){return e.globalStatus!==b.query.globalStatusFilter}),b.query.pauseTypeFilter&&_.remove(b.filteredAgents,function(e){return e.pauseType!==b.query.pauseTypeFilter}),b.query.filter&&_.remove(b.filteredAgents,function(e){return e.fullname.toLowerCase().indexOf(b.query.filter.toLowerCase())<0}),b.filteredAgents=(n=b.filteredAgents,t=_.startsWith(b.query.order,"-")?"desc":"asc",_.orderBy(n,[b.query.order.replace("-","")],[t]));var i=(b.query.page-1)*b.query.limit;b.paginatedAgents=_.drop(b.filteredAgents,i).slice(0,b.query.limit);for(var s=0;s<b.paginatedAgents.length;s+=1)b.order.push(b.paginatedAgents[s].id);a.resolve(),b.load=!0}function I(e){return"pause"===e||"*pause"===e}function C(e){return"idle"===e||"unknown"===e||"unavailable"===e||"ringing"===e||_.isNil(e)}function O(e,n){return"voice"===n?"idle"!==e[n+"Status"]?e[n+"Status"]:e[n+"Pause"]?e[n+"Status"]="pause":"idle":e[n+"Pause"]?e[n+"Status"]="pause":e[n+"Status"]}function w(e){var n="unknown";n=_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"pause":_.some([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"*pause":_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],C)?"idle":"busy",e.globalStatus!==n&&(e.globalStatus=n,e.init?(e.init=!1,e.globalStatusTime=I(n)?_.toNumber(moment(e.lastPauseAt).format("x")):_.max([e.voiceStatusTime,e.chatStatusTime,e.mailStatusTime,e.smsStatusTime,e.whatsappStatusTime,e.openchannelStatusTime,e.faxStatusTime])):e.globalStatusTime=_.toNumber(moment().format("x")))}e.$on("$destroy",function(){c.removeAllListeners("user:save"),c.removeAllListeners("user:update"),c.removeAllListeners("user:agentconnect"),c.removeAllListeners("user:agentcomplete"),S&&(f.cancel(S),S=null)})}e.$inject=["$scope","$q","$timeout","$mdDialog","$document","$filter","pauses","agents","rpcAgents","api","socket","toasty","helperClasses","userProfile","userProfileSection","Auth","license","$interval"],angular.module("app.voice").controller("AgentsSmsRealtimeController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c){var m=this,u=["loggedIn","available","waiting","paused"],p=n(function(){},999);m.currentUser=c.getCurrentUser(),m.queues=i,m.userProfileSection=d&&1==d.count?d.rows[0]:null,m.crudPermissions=c.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={id:c.isUser()?m.currentUser.id:void 0,section:c.isUser()?"SmsQueues":void 0,channel:"sms",sort:"name",limit:10,page:1},m.getQueues=function(){m.query.offset=(m.query.page-1)*m.query.limit,s.realtime.getQueues(m.query).$promise.then(function(e){m.queues=e}).catch(function(e){console.error(e)})},m.editQueue=function(e,n){t.show({controller:"CreateOrEditSmsQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsQueue:n,smsQueues:m.queues.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.addAgent=function(e,n){t.show({controller:"SmsQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsQueue:n,smsQueues:m.queues.rows,realtime:!1,crudPermissions:m.crudPermissions}})},o.on("sms_queue:save",function(e){var n=_.find(m.queues.rows,["id",e.id]);n&&_.merge(n,_.pick(e,u))}),o.on("userSmsQueue:save",function(e){var n=_.find(m.queues.rows,["id",e.SmsQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),o.on("userSmsQueue:remove",function(e){var n=_.find(m.queues.rows,["id",e.SmsQueueId]);n&&(0<n.loggedInDb&&n.loggedInDb--,_.remove(n.agents,["id",e.UserId]))}),o.on("user:update",function(t){m.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&(!1===t.online?(n.online=!1,e.loggedInDb-=1,n.paused?(n.paused=!1,e.paused-=1):e.available-=1):n.online?t.smsPause?(n.paused=!0,e.paused+=1,e.available-=1):!t.smsPause&&n.paused&&(n.paused=!1,e.paused-=1,e.available+=1):(n.online=!0,e.loggedInDb+=1,e.available+=1))})}),e.$on("$destroy",function(){o.removeAllListeners("sms_queue:save"),o.removeAllListeners("userSmsQueue:remove"),o.removeAllListeners("userSmsQueue:save"),o.removeAllListeners("user:update"),p&&n.cancel(p)})}e.$inject=["$scope","$mdDialog","$document","$interval","queues","api","socket","toasty","userProfile","userProfileSection","Auth"],angular.module("app.sms").controller("QueuesSmsRealtimeController",e)}(),function(){"use strict";angular.module("app.auth").factory("helperClasses",function(){return{status:{registered:"green-300-fg icon-checkbox-marked-circle",unregistered:"red-300-fg icon-close-circle",lagged:"red-300-fg icon-close-circle",reachable:"green-300-fg icon-checkbox-marked-circle",unreachable:"red-300-fg icon-close-circle",unknown:"grey-fg icon-minus-circle"},state:{unknown:"grey-fg icon-phone-hangup",not_inuse:"green-300-fg icon-phone-hangup",inuse:"red-300-fg icon-phone-in-talk",busy:"red-300-fg icon-phone-locked",invalid:"grey-fg icon-phone-hangup",unavailable:"grey-fg icon-phone-hangup",ringing:"blue-300-fg icon-phone-incoming",ringinuse:"blue-300-fg icon-phone-incoming",onhold:"blue-300-fg icon-phone-paused"},channelStatus:{ring:"blue-300-fg icon-phone-incoming",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"},channelStatusOut:{ring:"blue-300-fg icon-phone-outgoing",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"}}})}(),function(){"use strict";function e(e,t,n){switch(n.disconnect(),n.connect(),this.selectedTab=0,t.current.name){case"app.sms.realtime.agents":this.selectedTab=0;break;case"app.sms.realtime.queues":this.selectedTab=1;break;default:this.selectedTab=0,t.go("app.sms.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.sms.realtime.agents");break;case 1:t.go("app.sms.realtime.queues");break;default:t.go("app.sms.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.sms").controller("SmsRealtimeController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="SMS.EDIT_SMSACCOUNT",g.smsAccount=angular.copy(l),g.smsAccounts=r,g.newSmsAccount=!1,g.smsAccount||(g.smsAccount={remote:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():""),type:"twilio",waitForTheAssignedAgent:10,notificationSound:!0,queueTransferTimeout:300,agentTransferTimeout:300},g.title="SMS.NEW_SMSACCOUNT",g.newSmsAccount=!0),n.params.id&&(g.smsAccount.SmsAccountId=n.params.id),g.addNewSmsAccount=function(){g.errors=[],d.smsAccount.save(g.smsAccount).$promise.then(function(e){g.smsAccounts.unshift(e.toJSON()),o.success({title:"SmsAccount properly created",msg:g.smsAccount.name?g.smsAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.smsAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSmsAccount=function(){g.errors=[],d.smsAccount.update({id:g.smsAccount.id},g.smsAccount).$promise.then(function(e){var n=_.find(g.smsAccounts,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"SmsAccount properly saved!",msg:g.smsAccount.name?g.smsAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.smsAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSmsAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The smsAccount will be deleted.").ariaLabel("Delete SmsAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.smsAccount.delete({id:g.smsAccount.id}).$promise.then(function(){_.remove(g.smsAccounts,{id:g.smsAccount.id}),o.success({title:"SmsAccount properly deleted!",msg:(g.smsAccount.name||"smsAccount")+" has been deleted!"}),v(g.smsAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.smsAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.lists,{id:e.resourceId})}),t=null;if(g.smsAccount&&(t=_.find(g.lists,{id:Number(g.smsAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.lists,{id:t.id});a.canSelect=!1,n.push(a)}g.lists=n})}else{var t=[],a=null;g.smsAccount&&(a=_.find(g.lists,{id:Number(g.smsAccount.ListId)}));for(var i=0;i<g.lists.length;i++)a&&g.lists[i].id===a.id&&(g.lists[i].canSelect=!1,t.push(g.lists[i]));g.lists=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","smsAccounts","smsAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.sms").controller("CreateOrEditSmsAccountDialogController",e)}(),function(){"use strict";function e(o,i,a,s,e){var r=this;function n(e,n){if(r.smsAccountApps.rows.length){var t=r.smsAccountApps.rows[n]?r.smsAccountApps.rows[n]:r.smsAccountApps.rows[0];i.show({controller:"EditSmsAccountApp"+(t.appType||t.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/apps/"+(t.appType||t.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsAccountApp:t,smsAccount:r.smsAccount,crudPermissions:r.crudPermissions}}).then(function(e){e&&(e.id?r.smsAccountApps.rows[n]=e:r.smsAccountApps.rows.splice(n,0,e),l())}).catch(function(e){e&&s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function l(){for(var e=1,n=[],t=0;t<r.smsAccountApps.rows.length;t++,0){var a=r.smsAccountApps.rows[t],i=[],s=[];a.intervals="*,*,*,*"!==a.interval?[a.interval]:a.IntervalId?_.map(_.filter(r.intervals.rows,{IntervalId:a.IntervalId}),"interval"):[],a.context=r.smsAccount.context,a.exten=r.smsAccount.exten,a.type&&(a.type=a.type.toLowerCase()),a.priority=i.length?_.last(i).priority+1:e,e=(s.length?_.last(s).priority:a.priority)+1,n=_.concat(n,i,[a],s)}o.smsAccount.addApplications({id:r.smsAccount.id},_.sortBy(n,"priority")).$promise.then(function(e){r.smsAccountApps.rows=e.rows}).catch(function(e){console.error(e)})}function t(e){r.smsAccountApps=e||{count:0,rows:[]}}r.currentUser=e.getCurrentUser(),r.smsAccount={},r.smsAccountApps={count:0,rows:[]},r.selectedSmsAccountApps=[],r.crudPermissions,r.query={sort:"priority"},r.apps=_.reject(_.sortBy([{app:"Interval",appType:"interval",types:["always","custom","list"],fields:[],isApp:!1},{app:"noop",appType:"noop",type:"noop",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,fields:[{title:"Value",name:"value",type:"text",param:0}]},{app:"system",appType:"system",type:"system",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,extraApi:[{name:"variables",field:{name:"variable",key:"name"},route:"variable",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1012}}],fields:[{title:"Command",name:"command",type:"text",required:!0,param:0},{title:"Variable",name:"variable",type:"apiselect",values:"variables",value:"variable.name",option:"variable.name",defaultValues:[{value:"''",option:"None"}],defaultValue:"''",param:1}]},{app:"gotop",appType:"gotop",type:"goto",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Priority",name:"priority",type:"number",required:!0,min:0,param:0}]},{app:"gotoif",appType:"gotoif",type:"gotoif",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Condition",name:"condition",type:"text",required:!0,param:0},{title:"truepriority",name:"truepriority",type:"number",min:1,required:!0,param:1},{title:"falsepriority",name:"falsepriority",type:"number",min:1,required:!0,param:2}]},{app:"queue",appType:"queue",foreignKey:"SmsQueueId",type:"queue",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"queues",field:{name:"queue",key:"name"},route:"smsQueue",filters:{fields:"id,name,type",sort:"name",nolimit:!0},permissions:{section:701}}],fields:[{title:"Queue",name:"queue",type:"apiselect",values:"queues",value:"queue.name",option:"queue.name",defaultValue:300,required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:300,param:1}]},{app:"agent",appType:"agent",type:"agent",foreignKey:"UserId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"agents",field:{name:"agent",key:"name"},route:"user",filters:{fields:"id,name",sort:"name",nolimit:!0,role:"agent"},permissions:{section:202}}],fields:[{title:"Agent",name:"agent",type:"apiselect",values:"agents",value:"agent.name",option:"agent.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:30,param:1}]},{app:"autoreply",appType:"autoreply",type:"autoreply",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"times",name:"times",type:"select",defaultValue:"1",values:[{option:"One Time",value:"2"},{option:"Always",value:"0"},{option:"First Message",value:"1"}],required:!0,param:0},{title:"Text",name:"text",type:"textarea",required:!0,param:1}]},{app:"close",appType:"close",type:"close",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Disposition",name:"disposition",type:"text",required:!0,param:0}]},{app:"tag",appType:"tag",type:"tag",foreignKey:"TagId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"tags",field:{name:"tag",key:"name"},route:"tag",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1008}}],fields:[{title:"Tag",name:"tag",type:"apiselect",values:"tags",value:"tag.name",option:"tag.name",required:!0,param:0}]},{app:"dialogflow",appType:"dialogflow",type:"dialogflow",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Key",name:"key",type:"text",required:!0,param:0},{title:"language",name:"language",type:"select",defaultValue:"'en'",values:[{option:"Danish",value:"'da'"},{option:"English",value:"'en'"},{option:"German",value:"'de'"},{option:"Italian",value:"'it'"},{option:"Spanish",value:"'es'"},{option:"French",value:"'fr'"},{option:"Indonesian",value:"'id'"},{option:"Japanese",value:"'ja'"},{option:"Korean (South Korea)",value:"'ko'"},{option:"Dutch",value:"'nl'"},{option:"Norwegian",value:"'no'"},{option:"Portuguese (European)",value:"'pt'"},{option:"Portuguese (Nrazilian)",value:"'pt-br'"},{option:"Russian",value:"'ru'"},{option:"Swedish",value:"'sv'"},{option:"Thai",value:"'th'"},{option:"Ukrainian",value:"'uk'"},{option:"Chinese (Simplified)",value:"'zh-CN'"},{option:"Chinese (Hong Kong)",value:"'zh-HK'"},{option:"Chinese (Traditional)",value:"'zh-TW'"}],required:!0,param:1},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,required:!1,param:2,help:!0}]},{app:"dialogflowV2",appType:"dialogflowv2",type:"dialogflowv2",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"ProjectID",name:"projectId",type:"text",required:!0,param:0},{title:"ClientEmail",name:"clientEmail",type:"text",required:!0,param:1},{title:"PrivateKey",name:"privateKey",type:"textarea",required:!0,param:2},{title:"language",name:"language",type:"select",defaultValue:"'en'",values:[{value:"'zh-HK'",option:"Chinese (Cantonese)"},{value:"'zh-CN'",option:"Chinese (Simplified)"},{value:"'zh-TW'",option:"Chinese (Traditional)"},{value:"'da'",option:"Danish"},{value:"'nl'",option:"Dutch"},{value:"'en'",option:"English"},{value:"'en-AU'",option:"English (Australia)"},{value:"'en-CA'",option:"English (Canada)"},{value:"'en-GB'",option:"English (Great Britain)"},{value:"'en-IN'",option:"English (India)"},{value:"'en-US'",option:"English (US)"},{value:"'fr'",option:"French"},{value:"'fr-CA'",option:"French (Canada)"},{value:"'fr-FR'",option:"'France (France)"},{value:"'de'",option:"German"},{value:"'hi'",option:"Hindi"},{value:"'id'",option:"Indonesian"},{value:"'it'",option:"Italian"},{value:"'ja'",option:"Japanese"},{value:"'ko'",option:"Korean"},{value:"'no'",option:"Norwegian"},{value:"'pl'",option:"Polish"},{value:"'pt-BR'",option:"Portuguese (Brazil)"},{value:"'pt-PT'",option:"Portuguese (Portugal)"},{value:"'ru'",option:"Russian"},{value:"'es'",option:"Spanish"},{value:"'es-419'",option:"Spanish (Latin America)"},{value:"'es-ES'",option:"Spanish (Spain)"},{value:"'sw'",option:"Swedish"},{value:"'th'",option:"Thai"},{value:"'tr'",option:"Turkish"},{value:"'uk'",option:"Ukrainian"}],required:!0,param:3},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,param:4,help:!0}]},{app:"amazonlex",appType:"amazonlex",type:"amazonlex",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"accesskeyid",name:"accesskeyid",type:"text",required:!0,param:0},{title:"secretaccesskey",name:"secretaccesskey",type:"text",required:!0,param:1},{title:"lexregion",name:"lexregion",type:"select",defaultValue:"'us-east-1'",values:[{option:"US East (N. Virginia)",value:"'us-east-1'"},{option:"US West (Oregon)",value:"'us-west-2'"},{option:"EU (Ireland)",value:"'eu-west-1'"},{option:"Asia Pacific (Sydney)",value:"'ap-southeast-2'"}],required:!0,param:2},{title:"botname",name:"botname",type:"text",required:!0,param:3},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,required:!1,param:4,help:!0}]}],["app"]),{isApp:!1}),r.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},r.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){n(e,e.newIndex)},onSort:function(e){l()}},r.init=function(e,n){r.smsAccount=e,r.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},r.applications.disabled=!r.crudPermissions.canEdit,r.query.id=e.id,r.query.isApp=!0,r.query.nolimit=!0,r.getSmsAccountApps(),r.getIntervals()},r.deleteConfirm=function(e,n,t){var a=i.confirm().title("Are you sure want to delete the application?").htmlContent("<b>"+e.app+"</b> will be deleted.").ariaLabel("delete application").targetEvent(t).ok("OK").cancel("CANCEL");i.show(a).then(function(){r.smsAccountApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})},r.getSmsAccountApps=function(){r.promise=o.smsAccount.getApplications(r.query,t).$promise},r.editSmsAccountApp=n,r.editInterval=function(e,n){if(r.smsAccountApps.rows.length){var t=r.smsAccountApps.rows[n]?r.smsAccountApps.rows[n]:r.smsAccountApps.rows[0];i.show({controller:"EditSmsAccountAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/apps/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:[],crudPermissions:r.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,l())})}},r.deleteSmsAccountApp=function(e){_.remove(r.smsAccountApps.rows,{id:e.id}),l(),s.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},r.deleteSelectedSmsAccountApps=function(e){var n=i.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+r.selectedSmsAccountApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){r.selectedSmsAccountApps.forEach(function(e){_.remove(r.smsAccountApps.rows,{id:e.id})}),r.selectedSmsAccountApps=[],l()})},r.rewriteRouting=l,r.getIntervals=function(){return o.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){r.intervals=e}).catch(function(e){console.error(e)})}}e.$inject=["api","$mdDialog","$document","toasty","Auth"],angular.module("app.sms").controller("SmsAccountActionsController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.smsAccount.getAgents({id:c.smsAccount.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserSmsAccount?"penalty "+e.UserSmsAccount.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.smsAccount=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.smsAccount.removeAgents({id:c.smsAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.smsAccount.addAgents({id:c.smsAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("SMS.ALL_AGENTS"),labelSelected:r.instant("SMS.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","smsAccount","smsAccounts","realtime","$translate","Auth","crudPermissions"],angular.module("app.sms").controller("SmsAccountagentaddController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.agent=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.agent.appdata)switch(l.agent.appType?l.agent.appType.toLowerCase():l.agent.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.agent.appdata.split(",");l.agent.key=d[0],l.agent.language=d[1],l.agent.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.agent.appdata.split(",");l.agent.projectId=d[0],l.agent.clientEmail=d[1],l.agent.privateKey=d[2],l.agent.language=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.agent.appdata.split(",");l.agent.accesskeyid=d[0],l.agent.secretaccesskey=d[1],l.agent.lexregion=d[2],l.agent.botname=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.agent.appdata.split(",");l.agent.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.agent.text=d.slice(1,d.length).join(",");break;case"message":l.agent.text=l.agent.appdata;break;case"set":l.agent.name=l.agent.appdata.split("=")[0],l.agent.value=l.agent.appdata.split("=")[1];break;case"agi":l.agent.project=l.agent.appdata;break;default:var c=l.agent.appdata.split(",");l.agent.agent=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.agent.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.agent.timeout=30;function m(e){n.hide(e)}l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outbounddial"===l.agent.appType.toLowerCase()&&(l.agent.prefix=l.agent.phone?l.agent.phone.split("$")[0]:void 0,l.agent.callerId=l.agent.callerID?"CALLERID(all)="+l.agent.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outboundDial"===l.agent.appType&&(l.agent.phone=i.cutdigits?(l.agent.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.agent.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.agent.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.agent.options+="U(xcally-mixmonitor-context)"):l.agent.options=l.agent.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.agents,{name:l.agent.agent});n&&(l.agent.UserId=n.id);if(l.agent.appType&&"custom"===l.agent.appType);else switch((l.agent.app||l.agent.appType).toLowerCase()){case"set":l.agent.appdata=l.agent.name+"="+l.agent.value;break;case"custom":break;default:e[0]=l.agent.agent,e[1]=l.agent.timeout,l.agent.appdata=e.join(",")}m(l.agent)},l.closeDialog=m,o.hasRole("admin")?s.user.get({fields:"id,name",sort:"name",nolimit:"true",role:"agent"}).$promise.then(function(e){l.agents=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.user.get({fields:"id,name",sort:"name",nolimit:"true",role:"agent"}).$promise.then(function(e){l.agents=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.agents,{id:e.resourceId})}),t=null;if(l.agent&&(t=_.find(l.agents,{name:l.agent.agent})),t&&!_.some(n,["id",t.id])){var a=_.find(l.agents,{id:t.id});a.canSelect=!1,n.push(a)}l.agents=n})}else{var t=[],a=null;l.agent&&(a=_.find(l.agents,{name:l.agent.agent}));for(var i=0;i<l.agents.length;i++)a&&l.agents[i].id===a.id&&(l.agents[i].canSelect=!1,t.push(l.agents[i]));l.agents=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppagentDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.amazonlex=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.amazonlex.appdata)switch(l.amazonlex.appType?l.amazonlex.appType.toLowerCase():l.amazonlex.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.amazonlex.appdata.split(",");l.amazonlex.key=d[0],l.amazonlex.language=d[1],l.amazonlex.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.amazonlex.appdata.split(",");l.amazonlex.projectId=d[0],l.amazonlex.clientEmail=d[1],l.amazonlex.privateKey=d[2],l.amazonlex.language=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=d[0],l.amazonlex.secretaccesskey=d[1],l.amazonlex.lexregion=d[2],l.amazonlex.botname=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.amazonlex.appdata.split(",");l.amazonlex.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.amazonlex.text=d.slice(1,d.length).join(",");break;case"message":l.amazonlex.text=l.amazonlex.appdata;break;case"set":l.amazonlex.name=l.amazonlex.appdata.split("=")[0],l.amazonlex.value=l.amazonlex.appdata.split("=")[1];break;case"agi":l.amazonlex.project=l.amazonlex.appdata;break;default:var c=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.amazonlex.secretaccesskey=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.amazonlex.lexregion=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.amazonlex.botname=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.amazonlex.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.amazonlex.lexregion="us-east-1";function m(e){n.hide(e)}l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outbounddial"===l.amazonlex.appType.toLowerCase()&&(l.amazonlex.prefix=l.amazonlex.phone?l.amazonlex.phone.split("$")[0]:void 0,l.amazonlex.callerId=l.amazonlex.callerID?"CALLERID(all)="+l.amazonlex.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outboundDial"===l.amazonlex.appType&&(l.amazonlex.phone=i.cutdigits?(l.amazonlex.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.amazonlex.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.amazonlex.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.amazonlex.options+="U(xcally-mixmonitor-context)"):l.amazonlex.options=l.amazonlex.options.replace("U(xcally-mixmonitor-context)",""));if(l.amazonlex.appType&&"custom"===l.amazonlex.appType);else switch((l.amazonlex.app||l.amazonlex.appType).toLowerCase()){case"set":l.amazonlex.appdata=l.amazonlex.name+"="+l.amazonlex.value;break;case"custom":break;default:e[0]=l.amazonlex.accesskeyid,e[1]=l.amazonlex.secretaccesskey,e[2]=l.amazonlex.lexregion,e[3]=l.amazonlex.botname,e[4]=l.amazonlex.welcomemessage,l.amazonlex.appdata=e.join(",")}m(l.amazonlex)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppamazonlexDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.autoreply=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.autoreply.appdata)switch(l.autoreply.appType?l.autoreply.appType.toLowerCase():l.autoreply.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.autoreply.appdata.split(",");l.autoreply.key=d[0],l.autoreply.language=d[1],l.autoreply.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.autoreply.appdata.split(",");l.autoreply.projectId=d[0],l.autoreply.clientEmail=d[1],l.autoreply.privateKey=d[2],l.autoreply.language=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.autoreply.appdata.split(",");l.autoreply.accesskeyid=d[0],l.autoreply.secretaccesskey=d[1],l.autoreply.lexregion=d[2],l.autoreply.botname=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.autoreply.appdata.split(",");l.autoreply.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.autoreply.text=d.slice(1,d.length).join(",");break;case"message":l.autoreply.text=l.autoreply.appdata;break;case"set":l.autoreply.name=l.autoreply.appdata.split("=")[0],l.autoreply.value=l.autoreply.appdata.split("=")[1];break;case"agi":l.autoreply.project=l.autoreply.appdata;break;default:var c=l.autoreply.appdata.split(",");l.autoreply.times=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.autoreply.text=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.autoreply.times=1;function m(e){n.hide(e)}l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outbounddial"===l.autoreply.appType.toLowerCase()&&(l.autoreply.prefix=l.autoreply.phone?l.autoreply.phone.split("$")[0]:void 0,l.autoreply.callerId=l.autoreply.callerID?"CALLERID(all)="+l.autoreply.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outboundDial"===l.autoreply.appType&&(l.autoreply.phone=i.cutdigits?(l.autoreply.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.autoreply.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.autoreply.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.autoreply.options+="U(xcally-mixmonitor-context)"):l.autoreply.options=l.autoreply.options.replace("U(xcally-mixmonitor-context)",""));if(l.autoreply.appType&&"custom"===l.autoreply.appType);else switch((l.autoreply.app||l.autoreply.appType).toLowerCase()){case"set":l.autoreply.appdata=l.autoreply.name+"="+l.autoreply.value;break;case"custom":break;default:e[0]=l.autoreply.times,e[1]=l.autoreply.text,l.autoreply.appdata=e.join(",")}m(l.autoreply)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppautoreplyDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.close=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.close.appdata)switch(l.close.appType?l.close.appType.toLowerCase():l.close.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.close.appdata.split(",");l.close.key=d[0],l.close.language=d[1],l.close.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.close.appdata.split(",");l.close.projectId=d[0],l.close.clientEmail=d[1],l.close.privateKey=d[2],l.close.language=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.close.appdata.split(",");l.close.accesskeyid=d[0],l.close.secretaccesskey=d[1],l.close.lexregion=d[2],l.close.botname=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.close.appdata.split(",");l.close.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.close.text=d.slice(1,d.length).join(",");break;case"message":l.close.text=l.close.appdata;break;case"set":l.close.name=l.close.appdata.split("=")[0],l.close.value=l.close.appdata.split("=")[1];break;case"agi":l.close.project=l.close.appdata;break;default:var c=l.close.appdata.split(",");l.close.disposition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outbounddial"===l.close.appType.toLowerCase()&&(l.close.prefix=l.close.phone?l.close.phone.split("$")[0]:void 0,l.close.callerId=l.close.callerID?"CALLERID(all)="+l.close.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outboundDial"===l.close.appType&&(l.close.phone=i.cutdigits?(l.close.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.close.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.close.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.close.options+="U(xcally-mixmonitor-context)"):l.close.options=l.close.options.replace("U(xcally-mixmonitor-context)",""));if(l.close.appType&&"custom"===l.close.appType);else switch((l.close.app||l.close.appType).toLowerCase()){case"set":l.close.appdata=l.close.name+"="+l.close.value;break;case"custom":break;default:e[0]=l.close.disposition,l.close.appdata=e.join(",")}m(l.close)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppcloseDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflow=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflow.appdata)switch(l.dialogflow.appType?l.dialogflow.appType.toLowerCase():l.dialogflow.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflow.appdata.split(",");l.dialogflow.key=d[0],l.dialogflow.language=d[1],l.dialogflow.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflow.appdata.split(",");l.dialogflow.projectId=d[0],l.dialogflow.clientEmail=d[1],l.dialogflow.privateKey=d[2],l.dialogflow.language=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflow.appdata.split(",");l.dialogflow.accesskeyid=d[0],l.dialogflow.secretaccesskey=d[1],l.dialogflow.lexregion=d[2],l.dialogflow.botname=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflow.appdata.split(",");l.dialogflow.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflow.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflow.text=l.dialogflow.appdata;break;case"set":l.dialogflow.name=l.dialogflow.appdata.split("=")[0],l.dialogflow.value=l.dialogflow.appdata.split("=")[1];break;case"agi":l.dialogflow.project=l.dialogflow.appdata;break;default:var c=l.dialogflow.appdata.split(",");l.dialogflow.key=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflow.language=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflow.welcomemessage=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}else l.dialogflow.language="en";function m(e){n.hide(e)}l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outbounddial"===l.dialogflow.appType.toLowerCase()&&(l.dialogflow.prefix=l.dialogflow.phone?l.dialogflow.phone.split("$")[0]:void 0,l.dialogflow.callerId=l.dialogflow.callerID?"CALLERID(all)="+l.dialogflow.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outboundDial"===l.dialogflow.appType&&(l.dialogflow.phone=i.cutdigits?(l.dialogflow.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflow.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflow.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflow.options+="U(xcally-mixmonitor-context)"):l.dialogflow.options=l.dialogflow.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflow.appType&&"custom"===l.dialogflow.appType);else switch((l.dialogflow.app||l.dialogflow.appType).toLowerCase()){case"set":l.dialogflow.appdata=l.dialogflow.name+"="+l.dialogflow.value;break;case"custom":break;default:e[0]=l.dialogflow.key,e[1]=l.dialogflow.language,e[2]=l.dialogflow.welcomemessage,l.dialogflow.appdata=e.join(",")}m(l.dialogflow)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppdialogflowDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflowv2=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflowv2.appdata)switch(l.dialogflowv2.appType?l.dialogflowv2.appType.toLowerCase():l.dialogflowv2.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.key=d[0],l.dialogflowv2.language=d[1],l.dialogflowv2.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=d[0],l.dialogflowv2.clientEmail=d[1],l.dialogflowv2.privateKey=d[2],l.dialogflowv2.language=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.accesskeyid=d[0],l.dialogflowv2.secretaccesskey=d[1],l.dialogflowv2.lexregion=d[2],l.dialogflowv2.botname=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflowv2.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflowv2.text=l.dialogflowv2.appdata;break;case"set":l.dialogflowv2.name=l.dialogflowv2.appdata.split("=")[0],l.dialogflowv2.value=l.dialogflowv2.appdata.split("=")[1];break;case"agi":l.dialogflowv2.project=l.dialogflowv2.appdata;break;default:var c=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflowv2.clientEmail=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflowv2.privateKey=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.dialogflowv2.language=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.dialogflowv2.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.dialogflowv2.language="en";function m(e){n.hide(e)}l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outbounddial"===l.dialogflowv2.appType.toLowerCase()&&(l.dialogflowv2.prefix=l.dialogflowv2.phone?l.dialogflowv2.phone.split("$")[0]:void 0,l.dialogflowv2.callerId=l.dialogflowv2.callerID?"CALLERID(all)="+l.dialogflowv2.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outboundDial"===l.dialogflowv2.appType&&(l.dialogflowv2.phone=i.cutdigits?(l.dialogflowv2.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflowv2.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflowv2.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflowv2.options+="U(xcally-mixmonitor-context)"):l.dialogflowv2.options=l.dialogflowv2.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflowv2.appType&&"custom"===l.dialogflowv2.appType);else switch((l.dialogflowv2.app||l.dialogflowv2.appType).toLowerCase()){case"set":l.dialogflowv2.appdata=l.dialogflowv2.name+"="+l.dialogflowv2.value;break;case"custom":break;default:e[0]=l.dialogflowv2.projectId,e[1]=l.dialogflowv2.clientEmail,e[2]=l.dialogflowv2.privateKey,e[3]=l.dialogflowv2.language,e[4]=l.dialogflowv2.welcomemessage,l.dialogflowv2.appdata=e.join(",")}m(l.dialogflowv2)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppdialogflowv2DialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotoif=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotoif.appdata)switch(l.gotoif.appType?l.gotoif.appType.toLowerCase():l.gotoif.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotoif.appdata.split(",");l.gotoif.key=d[0],l.gotoif.language=d[1],l.gotoif.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotoif.appdata.split(",");l.gotoif.projectId=d[0],l.gotoif.clientEmail=d[1],l.gotoif.privateKey=d[2],l.gotoif.language=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotoif.appdata.split(",");l.gotoif.accesskeyid=d[0],l.gotoif.secretaccesskey=d[1],l.gotoif.lexregion=d[2],l.gotoif.botname=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotoif.appdata.split(",");l.gotoif.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotoif.text=d.slice(1,d.length).join(",");break;case"message":l.gotoif.text=l.gotoif.appdata;break;case"set":l.gotoif.name=l.gotoif.appdata.split("=")[0],l.gotoif.value=l.gotoif.appdata.split("=")[1];break;case"agi":l.gotoif.project=l.gotoif.appdata;break;default:var c=l.gotoif.appdata.split(",");l.gotoif.condition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.gotoif.truepriority=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.gotoif.falsepriority=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}function m(e){n.hide(e)}l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outbounddial"===l.gotoif.appType.toLowerCase()&&(l.gotoif.prefix=l.gotoif.phone?l.gotoif.phone.split("$")[0]:void 0,l.gotoif.callerId=l.gotoif.callerID?"CALLERID(all)="+l.gotoif.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outboundDial"===l.gotoif.appType&&(l.gotoif.phone=i.cutdigits?(l.gotoif.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotoif.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotoif.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotoif.options+="U(xcally-mixmonitor-context)"):l.gotoif.options=l.gotoif.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotoif.appType&&"custom"===l.gotoif.appType);else switch((l.gotoif.app||l.gotoif.appType).toLowerCase()){case"set":l.gotoif.appdata=l.gotoif.name+"="+l.gotoif.value;break;case"custom":break;default:e[0]=l.gotoif.condition,e[1]=l.gotoif.truepriority,e[2]=l.gotoif.falsepriority,l.gotoif.appdata=e.join(",")}m(l.gotoif)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppgotoifDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotop.appdata)switch(l.gotop.appType?l.gotop.appType.toLowerCase():l.gotop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotop.appdata.split(",");l.gotop.key=d[0],l.gotop.language=d[1],l.gotop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotop.appdata.split(",");l.gotop.projectId=d[0],l.gotop.clientEmail=d[1],l.gotop.privateKey=d[2],l.gotop.language=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotop.appdata.split(",");l.gotop.accesskeyid=d[0],l.gotop.secretaccesskey=d[1],l.gotop.lexregion=d[2],l.gotop.botname=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotop.appdata.split(",");l.gotop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotop.text=d.slice(1,d.length).join(",");break;case"message":l.gotop.text=l.gotop.appdata;break;case"set":l.gotop.name=l.gotop.appdata.split("=")[0],l.gotop.value=l.gotop.appdata.split("=")[1];break;case"agi":l.gotop.project=l.gotop.appdata;break;default:var c=l.gotop.appdata.split(",");l.gotop.priority=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outbounddial"===l.gotop.appType.toLowerCase()&&(l.gotop.prefix=l.gotop.phone?l.gotop.phone.split("$")[0]:void 0,l.gotop.callerId=l.gotop.callerID?"CALLERID(all)="+l.gotop.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outboundDial"===l.gotop.appType&&(l.gotop.phone=i.cutdigits?(l.gotop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotop.options+="U(xcally-mixmonitor-context)"):l.gotop.options=l.gotop.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotop.appType&&"custom"===l.gotop.appType);else switch((l.gotop.app||l.gotop.appType).toLowerCase()){case"set":l.gotop.appdata=l.gotop.name+"="+l.gotop.value;break;case"custom":break;default:e[0]=l.gotop.priority,l.gotop.appdata=e.join(",")}m(l.gotop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppgotopDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;if(c.currentUser=l.getCurrentUser(),c.errors=[],c.title="TOOLS.EDIT_INTERVAL",c.interval=angular.copy(i),c.intervals=s,c.newInterval=!1,c.types=["always","custom","list"],c.crudPermissions=d,c.daysOfWeek=a.getDaysOfWeek(),c.monthNumber=a.getMonthNumber(),c.monthName=a.getMonthName(),c.daysOfMonth=a.getDaysOfMonth(),c.interval)if("*,*,*,*"!==c.interval.interval){c.type="custom";var m=c.interval.interval.split(","),u=m[0],p=m[1],g=m[2],v=m[3];if("*"!==u){var h,f=u.split("-")[0],b=u.split("-")[1];(h=new Date).setHours(Number(f.split(":")[0])),h.setMinutes(Number(f.split(":")[1])),c.timeRangeFrom=h,(h=new Date).setHours(Number(b.split(":")[0])),h.setMinutes(Number(b.split(":")[1])),c.timeRangeTo=h}"*"!==p&&(c.dayOfWeekFrom=p.split("-")[0],c.dayOfWeekTo=p.split("-")[1]),"*"!==g&&(c.monthDayFrom=g.split("-")[0],c.monthDayTo=g.split("-")[1]),"*"!==v&&(c.monthFrom=v.split("-")[0],c.monthTo=v.split("-")[1])}else c.type="always";else c.interval={interval:"*,*,*,*"},c.type="always",c.title="TOOLS.NEW_INTERVAL",c.newInterval=!0;function A(){switch(c.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==c.timeRangeFrom&&c.timeRangeFrom&&c.timeRangeTo){var n=(c.timeRangeFrom.getHours()<10?"0":"")+c.timeRangeFrom.getHours()+":"+(c.timeRangeFrom.getMinutes()<10?"0":"")+c.timeRangeFrom.getMinutes(),t=(c.timeRangeTo.getHours()<10?"0":"")+c.timeRangeTo.getHours()+":"+(c.timeRangeTo.getMinutes()<10?"0":"")+c.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return c.dayOfWeekFrom?c.dayOfWeekTo?e.push(c.dayOfWeekFrom+"-"+c.dayOfWeekTo):e.push(c.dayOfWeekFrom):e.push("*"),c.monthDayFrom?c.monthDayTo?e.push(c.monthDayFrom+"-"+c.monthDayTo):e.push(c.monthDayFrom):e.push("*"),c.monthFrom?c.monthTo?e.push(c.monthFrom+"-"+c.monthTo):e.push(c.monthFrom):e.push("*"),e.join()}}function E(e){n.hide(e)}e.params.id&&!c.interval.application&&(c.interval.IntervalId=e.params.id),c.interval.IntervalId&&c.interval.application&&(c.type="list"),c.addNewInterval=function(){c.errors=[],c.interval.interval=A(),r.interval.save(c.interval).$promise.then(function(e){c.intervals.push(e),o.success({title:"Interval properly created",msg:c.interval.name?c.interval.name+" has been created!":""}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},c.saveInterval=function(){c.errors=[],c.interval.interval=A(),c.interval.application?("list"!==c.type&&(c.interval.IntervalId=null),E(c.interval)):r.interval.update({id:c.interval.id},c.interval).$promise.then(function(e){var n=_.find(c.intervals,{id:e.id});n&&_.merge(n,e),o.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},c.closeDialog=E,c.interval.application&&(l.hasRole("admin")?r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:c.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=e&&e.rows?e.rows:[],t=[],a=null;c.interval&&(a=_.find(c.intervals,{name:c.interval.IntervalId})),a&&!_.some(n,["resourceId",a.id])&&c.intervals.forEach(function(e){e.id===a.id&&(e.canSelect=!1,t.push(e))}),c.intervals=t})}else c.intervals=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}))}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditSmsAccountAppintervalDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.noop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.noop.appdata)switch(l.noop.appType?l.noop.appType.toLowerCase():l.noop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.noop.appdata.split(",");l.noop.key=d[0],l.noop.language=d[1],l.noop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.noop.appdata.split(",");l.noop.projectId=d[0],l.noop.clientEmail=d[1],l.noop.privateKey=d[2],l.noop.language=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.noop.appdata.split(",");l.noop.accesskeyid=d[0],l.noop.secretaccesskey=d[1],l.noop.lexregion=d[2],l.noop.botname=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.noop.appdata.split(",");l.noop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.noop.text=d.slice(1,d.length).join(",");break;case"message":l.noop.text=l.noop.appdata;break;case"set":l.noop.name=l.noop.appdata.split("=")[0],l.noop.value=l.noop.appdata.split("=")[1];break;case"agi":l.noop.project=l.noop.appdata;break;default:var c=l.noop.appdata.split(",");l.noop.value=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outbounddial"===l.noop.appType.toLowerCase()&&(l.noop.prefix=l.noop.phone?l.noop.phone.split("$")[0]:void 0,l.noop.callerId=l.noop.callerID?"CALLERID(all)="+l.noop.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outboundDial"===l.noop.appType&&(l.noop.phone=i.cutdigits?(l.noop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.noop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.noop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.noop.options+="U(xcally-mixmonitor-context)"):l.noop.options=l.noop.options.replace("U(xcally-mixmonitor-context)",""));if(l.noop.appType&&"custom"===l.noop.appType);else switch((l.noop.app||l.noop.appType).toLowerCase()){case"set":l.noop.appdata=l.noop.name+"="+l.noop.value;break;case"custom":break;default:e[0]=l.noop.value,l.noop.appdata=e.join(",")}m(l.noop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppnoopDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.queue=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.queue.appdata)switch(l.queue.appType?l.queue.appType.toLowerCase():l.queue.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.queue.appdata.split(",");l.queue.key=d[0],l.queue.language=d[1],l.queue.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.queue.appdata.split(",");l.queue.projectId=d[0],l.queue.clientEmail=d[1],l.queue.privateKey=d[2],l.queue.language=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.queue.appdata.split(",");l.queue.accesskeyid=d[0],l.queue.secretaccesskey=d[1],l.queue.lexregion=d[2],l.queue.botname=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.queue.appdata.split(",");l.queue.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.queue.text=d.slice(1,d.length).join(",");break;case"message":l.queue.text=l.queue.appdata;break;case"set":l.queue.name=l.queue.appdata.split("=")[0],l.queue.value=l.queue.appdata.split("=")[1];break;case"agi":l.queue.project=l.queue.appdata;break;default:var c=l.queue.appdata.split(",");l.queue.queue=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.queue.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.queue.queue=300,l.queue.timeout=300;function m(e){n.hide(e)}l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outbounddial"===l.queue.appType.toLowerCase()&&(l.queue.prefix=l.queue.phone?l.queue.phone.split("$")[0]:void 0,l.queue.callerId=l.queue.callerID?"CALLERID(all)="+l.queue.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outboundDial"===l.queue.appType&&(l.queue.phone=i.cutdigits?(l.queue.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.queue.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.queue.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.queue.options+="U(xcally-mixmonitor-context)"):l.queue.options=l.queue.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.queues,{name:l.queue.queue});n&&(l.queue[_.capitalize("sms")+"QueueId"]=n.id);if(l.queue.appType&&"custom"===l.queue.appType);else switch((l.queue.app||l.queue.appType).toLowerCase()){case"set":l.queue.appdata=l.queue.name+"="+l.queue.value;break;case"custom":break;default:e[0]=l.queue.queue,e[1]=l.queue.timeout,l.queue.appdata=e.join(",")}m(l.queue)},l.closeDialog=m,o.hasRole("admin")?s.smsQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.smsQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:701}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.queues,{id:e.resourceId})}),t=null;if(l.queue&&(t=_.find(l.queues,{name:l.queue.queue})),t&&!_.some(n,["id",t.id])){var a=_.find(l.queues,{id:t.id});a.canSelect=!1,n.push(a)}l.queues=n})}else{var t=[],a=null;l.queue&&(a=_.find(l.queues,{name:l.queue.queue}));for(var i=0;i<l.queues.length;i++)a&&l.queues[i].id===a.id&&(l.queues[i].canSelect=!1,t.push(l.queues[i]));l.queues=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppqueueDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.system=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.system.appdata)switch(l.system.appType?l.system.appType.toLowerCase():l.system.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.system.appdata.split(",");l.system.key=d[0],l.system.language=d[1],l.system.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.system.appdata.split(",");l.system.projectId=d[0],l.system.clientEmail=d[1],l.system.privateKey=d[2],l.system.language=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.system.appdata.split(",");l.system.accesskeyid=d[0],l.system.secretaccesskey=d[1],l.system.lexregion=d[2],l.system.botname=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.system.appdata.split(",");l.system.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.system.text=d.slice(1,d.length).join(",");break;case"message":l.system.text=l.system.appdata;break;case"set":l.system.name=l.system.appdata.split("=")[0],l.system.value=l.system.appdata.split("=")[1];break;case"agi":l.system.project=l.system.appdata;break;default:var c=l.system.appdata.split(",");l.system.command=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.system.variable=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.system.variable="";function m(e){n.hide(e)}l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outbounddial"===l.system.appType.toLowerCase()&&(l.system.prefix=l.system.phone?l.system.phone.split("$")[0]:void 0,l.system.callerId=l.system.callerID?"CALLERID(all)="+l.system.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outboundDial"===l.system.appType&&(l.system.phone=i.cutdigits?(l.system.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.system.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.system.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.system.options+="U(xcally-mixmonitor-context)"):l.system.options=l.system.options.replace("U(xcally-mixmonitor-context)",""));if(l.system.appType&&"custom"===l.system.appType);else switch((l.system.app||l.system.appType).toLowerCase()){case"set":l.system.appdata=l.system.name+"="+l.system.value;break;case"custom":break;default:e[0]=l.system.command,e[1]=l.system.variable,l.system.appdata=e.join(",")}m(l.system)},l.closeDialog=m,o.hasRole("admin")?s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1012}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.variables,{id:e.resourceId})}),t=null;if(l.system&&(t=_.find(l.variables,{name:l.system.variable})),t&&!_.some(n,["id",t.id])){var a=_.find(l.variables,{id:t.id});a.canSelect=!1,n.push(a)}l.variables=n})}else{var t=[],a=null;l.system&&(a=_.find(l.variables,{name:l.system.variable}));for(var i=0;i<l.variables.length;i++)a&&l.variables[i].id===a.id&&(l.variables[i].canSelect=!1,t.push(l.variables[i]));l.variables=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppsystemDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.tag=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.tag.appdata)switch(l.tag.appType?l.tag.appType.toLowerCase():l.tag.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.tag.appdata.split(",");l.tag.key=d[0],l.tag.language=d[1],l.tag.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.tag.appdata.split(",");l.tag.projectId=d[0],l.tag.clientEmail=d[1],l.tag.privateKey=d[2],l.tag.language=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.tag.appdata.split(",");l.tag.accesskeyid=d[0],l.tag.secretaccesskey=d[1],l.tag.lexregion=d[2],l.tag.botname=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.tag.appdata.split(",");l.tag.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.tag.text=d.slice(1,d.length).join(",");break;case"message":l.tag.text=l.tag.appdata;break;case"set":l.tag.name=l.tag.appdata.split("=")[0],l.tag.value=l.tag.appdata.split("=")[1];break;case"agi":l.tag.project=l.tag.appdata;break;default:var c=l.tag.appdata.split(",");l.tag.tag=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outbounddial"===l.tag.appType.toLowerCase()&&(l.tag.prefix=l.tag.phone?l.tag.phone.split("$")[0]:void 0,l.tag.callerId=l.tag.callerID?"CALLERID(all)="+l.tag.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outboundDial"===l.tag.appType&&(l.tag.phone=i.cutdigits?(l.tag.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.tag.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.tag.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.tag.options+="U(xcally-mixmonitor-context)"):l.tag.options=l.tag.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.tags,{name:l.tag.tag});n&&(l.tag.TagId=n.id);if(l.tag.appType&&"custom"===l.tag.appType);else switch((l.tag.app||l.tag.appType).toLowerCase()){case"set":l.tag.appdata=l.tag.name+"="+l.tag.value;break;case"custom":break;default:e[0]=l.tag.tag,l.tag.appdata=e.join(",")}m(l.tag)},l.closeDialog=m,o.hasRole("admin")?s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1008}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.tags,{id:e.resourceId})}),t=null;if(l.tag&&(t=_.find(l.tags,{name:l.tag.tag})),t&&!_.some(n,["id",t.id])){var a=_.find(l.tags,{id:t.id});a.canSelect=!1,n.push(a)}l.tags=n})}else{var t=[],a=null;l.tag&&(a=_.find(l.tags,{name:l.tag.tag}));for(var i=0;i<l.tags.length;i++)a&&l.tags[i].id===a.id&&(l.tags[i].canSelect=!1,t.push(l.tags[i]));l.tags=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtags",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountApptagDialogController",e)}(),function(){"use strict";function e(e,a,n,t,i,s,o,r,l,d,c){var m=this;function u(e){m.smsAccountInteractions=e||{count:0,rows:[]};for(var n=0;n<m.smsAccountInteractions.rows.length;n+=1){var t=m.smsAccountInteractions.rows[n];v(t),t.Owner.name=h(t)}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.smsInteraction.get(m.query,u).$promise}function g(e){d.smsInteraction.delete({id:e.id}).$promise.then(function(){_.remove(m.smsAccountInteractions.rows,{id:e.id}),m.smsAccountInteractions.count-=1,m.smsAccountInteractions.rows.length||p(),l.success({title:"Interaction deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETsmsAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(e){e.Contact?(e.contactName=(e.Contact.firstName||"")+" "+(e.Contact.lastName||""),e.contactInfo=e.Contact.mobile):e.contactName=i.instant("DASHBOARDS.UNKNOWN")}function h(e){return e.UserId?e.UserId===m.currentUser.id?i.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">":i.instant("DASHBOARDS.NOT_ASSIGNED")}m.currentUser=c.getCurrentUser(),m.smsAccount={},m.smsAccountInteractions={count:0,rows:[]},m.selectedSmsAccountInteractions=[],m.crudPermissions,m.query={read:"null",closed:"null",sort:"-createdAt",includeAll:"true",limit:10,page:1},m.init=function(e,n,t){m.smsAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.SmsAccountId=m.smsAccount.id,m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Subject",column:"subject",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},d.tag.get().$promise.then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]})},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the interaction?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("interaction #")+e.id||"interaction")+"</b> will be deleted.").ariaLabel("delete interaction").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.smsInteractionDownload=function(s,e,n){return d.smsInteraction.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="interaction"+s.id,a=new Blob(n,{type:e.type});t="sms-interaction"+s.id+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getSmsAccountInteractions=p,m.createOrEditSmsAccountInteraction=function(e,n){o.show({controller:"CreateOrEditInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/interactions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsAccount:m.smsAccount,interaction:n,interactions:m.smsAccountInteractions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.spysmsInteraction=function(e,t){o.show({controller:"AgentGeneralInteractionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,onShowing:function(e,n){e.vm.init({id:1,channel:"sms",interaction:t,spy:!0},a.$parent.vm.setting)}})},m.openAdvancedSearch=function(){o.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(r.body),clickOutsideToClose:!1,locals:{fields:m.advancedSearch.fields,color:void 0,storagePath:"sms.smsAccounts"},fullscreen:!0}).then(function(e){if(m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply){var n="";n+="||SmsAccountId:=$eq["+m.smsAccount.id+"]",m.query.search=e.value?e.value+=n:e.value,p()}}).catch(function(e){l.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.exportSelectedSmsAccountInteractions=function(){var e=angular.copy(m.selectedSmsAccountInteractions);return m.selectedSmsAccountInteractions=[],e},m.deleteSmsAccountInteraction=g,m.deleteSelectedSmsAccountInteractions=function(e){var n=o.confirm().title("Are you sure want to delete the selected interactions?").htmlContent("<b>"+m.selectedSmsAccountInteractions.length+" selected</b> will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedSmsAccountInteractions.forEach(function(e){g(e)}),m.selectedSmsAccountInteractions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.sms").controller("SmsAccountInteractionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.smsAccountSmsCannedAnswers=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.smsAccount.getAnswers(m.query,u).$promise}function g(e){d.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(m.smsAccountSmsCannedAnswers.rows,{id:e.id}),m.smsAccountSmsCannedAnswers.count-=1,m.smsAccountSmsCannedAnswers.rows.length||p(),l.success({title:"SmsCannedAnswer deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETsmsAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.smsAccount={},m.smsAccountSmsCannedAnswers={count:0,rows:[]},m.selectedSmsAccountSmsCannedAnswers=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,key,value,description",limit:10,page:1},m.init=function(e,n,t){m.smsAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.SmsAccountId=m.smsAccount.id,m.query.id=m.smsAccount.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the smsCannedAnswer?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("smsCannedAnswer #")+e.id||"smsCannedAnswer")+"</b> will be deleted.").ariaLabel("delete smsCannedAnswer").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getSmsAccountSmsCannedAnswers=p,m.createOrEditSmsAccountSmsCannedAnswer=function(e,n){o.show({controller:"CreateOrEditSmsCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/smsCannedAnswers/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsAccount:m.smsAccount,smsCannedAnswer:n,smsCannedAnswers:m.smsAccountSmsCannedAnswers.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedSmsAccountSmsCannedAnswers=function(){var e=angular.copy(m.selectedSmsAccountSmsCannedAnswers);return m.selectedSmsAccountSmsCannedAnswers=[],e},m.deleteSmsAccountSmsCannedAnswer=g,m.deleteSelectedSmsAccountSmsCannedAnswers=function(e){var n=o.confirm().title("Are you sure want to delete the selected smsCannedAnswers?").htmlContent("<b>"+m.selectedSmsAccountSmsCannedAnswers.length+" selected</b> will be deleted.").ariaLabel("delete smsCannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedSmsAccountSmsCannedAnswers.forEach(function(e){g(e)}),m.selectedSmsAccountSmsCannedAnswers=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.sms").controller("SmsAccountSmsCannedAnswersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="SMS.EDIT_SMSCANNEDANSWER",g.smsCannedAnswer=angular.copy(l),g.smsCannedAnswers=r,g.newSmsCannedAnswer=!1,g.smsCannedAnswer||(g.smsCannedAnswer={},g.title="SMS.NEW_SMSCANNEDANSWER",g.newSmsCannedAnswer=!0),n.params.id&&(g.smsCannedAnswer.SmsAccountId=n.params.id),g.addNewSmsCannedAnswer=function(){g.errors=[],d.cannedAnswer.save(g.smsCannedAnswer).$promise.then(function(e){g.smsCannedAnswers.unshift(e.toJSON()),o.success({title:"SmsCannedAnswer properly created",msg:g.smsCannedAnswer.name?g.smsCannedAnswer.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSmsCannedAnswer=function(){g.errors=[],d.cannedAnswer.update({id:g.smsCannedAnswer.id},g.smsCannedAnswer).$promise.then(function(e){var n=_.find(g.smsCannedAnswers,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"SmsCannedAnswer properly saved!",msg:g.smsCannedAnswer.name?g.smsCannedAnswer.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSmsCannedAnswer=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The smsCannedAnswer will be deleted.").ariaLabel("Delete SmsCannedAnswer").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cannedAnswer.delete({id:g.smsCannedAnswer.id}).$promise.then(function(){_.remove(g.smsCannedAnswers,{id:g.smsCannedAnswer.id}),o.success({title:"SmsCannedAnswer properly deleted!",msg:(g.smsCannedAnswer.name||"smsCannedAnswer")+" has been deleted!"}),v(g.smsCannedAnswer)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","smsCannedAnswers","smsCannedAnswer","api","Auth","license","setting","crudPermissions"],angular.module("app.sms").controller("CreateOrEditSmsCannedAnswerDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.dispositions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=l.smsAccount.getDispositions(m.query,u).$promise}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){p(),d.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.dispositions={count:0,rows:[]},m.selectedDispositions=[],m.crudPermissions,m.levels={first:"1st",second:"2nd",third:"3rd"},m.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},m.init=function(e,n){m.smsAccount=e||{},m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.SmsAccountId=m.smsAccount.id,m.query.id=m.smsAccount.id,p()},m.deleteConfirm=function(e,n){var t=_.some(m.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){g(e)})},m.success=u,m.getDispositions=p,m.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:{id:m.smsAccount.id,field:"SmsAccountId",route:"smsAccount"},license:null,setting:null,crudPermissions:m.crudPermissions}}).then(function(e){e&&p()})},m.deleteDisposition=g,m.exportSelectedDispositions=function(){var e=angular.copy(m.selectedDispositions);return m.selectedDispositions=[],e},m.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:m.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedDispositions.forEach(function(e){g(e)}),m.selectedDispositions=[]})},m.deselectDispositions=function(){m.selectedDispositions=[]},m.selectAllDispositions=function(){m.selectedDispositions=m.dispositions.rows};var v=!0,h=1;e.$watch("vm_dc.query.filter",function(e,n){v?o(function(){v=!1}):(n||(h=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=h),p())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","api","toasty","Auth"],angular.module("app.sms").controller("SmsAccountDispositionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;p.currentUser=d.getCurrentUser(),p.license=s,p.setting=o,p.passwordPattern=p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.location=n.protocol()+"://"+n.host(),p.smsAccount=c||e.params.smsAccount||{},p.userProfile=m,p.userProfileSection=u&&1==u.count?u.rows[0]:null,p.crudPermissions=d.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.hasModulePermissions={},p.selectedTab=e.params.tab||0,p.agentadddialog=function(e,n){t.show({controller:"SmsAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{smsAccount:e,smsAccounts:p.smsAccounts?p.smsAccounts.rows:[],crudPermissions:p.crudPermissions,realtime:!1}})},p.alert=l.info,p.gotoSmsAccounts=function(){e.go("app.sms.smsAccounts",{},{reload:"app.sms.smsAccounts"})},p.saveSmsAccount=function(){r.smsAccount.update({id:p.smsAccount.id},p.smsAccount).$promise.then(function(){l.success({title:"SmsAccount updated!",msg:p.smsAccount.name?p.smsAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.lists,{id:e.resourceId})}),t=null;if(p.smsAccount&&(t=_.find(p.lists,{id:Number(p.smsAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.lists,{id:t.id});a.canSelect=!1,n.push(a)}p.lists=n})}else{var t=[],a=null;p.smsAccount&&(a=_.find(p.lists,{id:Number(p.smsAccount.ListId)}));for(var i=0;i<p.lists.length;i++)a&&p.lists[i].id===a.id&&(p.lists[i].canSelect=!1,t.push(p.lists[i]));p.lists=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.pauses,{id:e.resourceId})});p.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),p.pauses=n})}else p.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","smsAccount","userProfile","userProfileSection"],angular.module("app.sms").controller("SmsAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.smsAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="smsAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedSmsAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,type,phone,accountSid,authId,authToken,smsMethod,username,password,baseUrl,apiKey,accountId,applicationId,senderString,deliveryReport,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,page:1},f.arraytype=_.keyBy([{option:"Twilio",value:"'twilio'"},{option:"Skebby",value:"'skebby'"},{option:"Connectel",value:"'connectel'"},{option:"ClickSend",value:"'clicksend'"},{option:"Plivo",value:"'plivo'"},{option:"Infobip",value:"'infobip'"},{option:"Clickatell",value:"'clickatell'"},{option:"Bandwidth",value:"'bandwidth'"},{option:"CSCTelecom",value:"'csc'"},{option:"Intelepeer",value:"'intelepeer'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysmsMethod=_.keyBy([{option:"Basic",value:"'SI'"},{option:"Classic",value:"'TI'"},{option:"Classic+",value:"'GP'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.sms.smsAccounts.edit",{id:e.id,smsAccount:e,crudPermissions:f.crudPermissions})},f.interactionsgoto=function(e,n){t.go("app.sms.smsAccounts.edit",{id:e.id,tab:5})},f.agentadddialog=function(e,n){i.show({controller:"SmsAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{smsAccount:e,smsAccounts:f.smsAccounts?f.smsAccounts.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("smsAccount")+"?").htmlContent("<b>"+(e.name||"smsAccount")+"</b> will be deleted.").ariaLabel("delete smsAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getSmsAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.smsAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="SmsAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditSmsAccount=function(e,n){i.show({controller:"CreateOrEditSmsAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsAccount:n,smsAccounts:f.smsAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteSmsAccount=y,f.exportSelectedSmsAccounts=function(){var e=angular.copy(f.selectedSmsAccounts);return f.selectedSmsAccounts=[],e},f.deleteSelectedSmsAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected smsAccounts?").htmlContent("<b>"+f.selectedSmsAccounts.length+" selected</b> will be deleted.").ariaLabel("delete SmsAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedSmsAccounts.forEach(function(e){y(e)}),f.selectedSmsAccounts=[]})},f.deselectSmsAccounts=function(){f.selectedSmsAccounts=[]},f.selectAllSmsAccounts=function(){f.selectedSmsAccounts=f.smsAccounts.rows},g.hasRole("admin")?m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.lists,{id:e.resourceId})}),t=null;if(f.smsAccount&&(t=_.find(f.lists,{id:Number(f.smsAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.lists,{id:t.id});a.canSelect=!1,n.push(a)}f.lists=n})}else{var t=[],a=null;f.smsAccount&&(a=_.find(f.lists,{id:Number(f.smsAccount.ListId)}));for(var i=0;i<f.lists.length;i++)a&&f.lists[i].id===a.id&&(f.lists[i].canSelect=!1,t.push(f.lists[i]));f.lists=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.smsAccounts=e||{count:0,rows:[]}}function y(e){m.smsAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.smsAccounts.rows,{id:e.id}),f.smsAccounts.count-=1,f.smsAccounts.rows.length||f.getSmsAccounts(),p.success({title:_.startCase("SmsAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEsmsAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEsmsAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getSmsAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","smsAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.sms").controller("SmsAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="SMS.EDIT_SMSQUEUE",g.smsQueue=angular.copy(l),g.smsQueues=r,g.newSmsQueue=!1,g.smsQueue||(g.smsQueue={strategy:"beepall",timeout:10},g.title="SMS.NEW_SMSQUEUE",g.newSmsQueue=!0),g.addNewSmsQueue=function(){g.errors=[],d.smsQueue.save(g.smsQueue).$promise.then(function(e){g.smsQueues.unshift(e.toJSON()),o.success({title:"SmsQueue properly created",msg:g.smsQueue.name?g.smsQueue.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.smsQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSmsQueue=function(){g.errors=[],d.smsQueue.update({id:g.smsQueue.id},g.smsQueue).$promise.then(function(e){var n=_.find(g.smsQueues,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"SmsQueue properly saved!",msg:g.smsQueue.name?g.smsQueue.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.smsQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSmsQueue=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The smsQueue will be deleted.").ariaLabel("Delete SmsQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.smsQueue.delete({id:g.smsQueue.id}).$promise.then(function(){_.remove(g.smsQueues,{id:g.smsQueue.id}),o.success({title:"SmsQueue properly deleted!",msg:(g.smsQueue.name||"smsQueue")+" has been deleted!"}),v(g.smsQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.smsQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","smsQueues","smsQueue","api","Auth","license","setting","crudPermissions"],angular.module("app.sms").controller("CreateOrEditSmsQueueDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.smsQueue.getAgents({id:c.smsQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserSmsQueue?"penalty "+e.UserSmsQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.smsQueue=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.smsQueue.removeAgents({id:c.smsQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.smsQueue.addAgents({id:c.smsQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("SMS.ALL_AGENTS"),labelSelected:r.instant("SMS.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","smsQueue","smsQueues","realtime","$translate","Auth","crudPermissions"],angular.module("app.sms").controller("SmsQueueagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.smsQueue.getTeams({id:l.smsQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.smsQueue=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("SMS.ALL_TEAMS"),labelSelected:t.instant("SMS.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.smsQueue.removeTeams({id:l.smsQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.smsQueue.addTeams({id:l.smsQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","smsQueue","$translate","Auth","crudPermissions"],angular.module("app.sms").controller("SmsQueueteamaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.smsQueue=c||e.params.smsQueue||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.teamadddialog=function(e,n){t.show({controller:"SmsQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{smsQueue:e,smsQueues:u.smsQueues?u.smsQueues.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){t.show({controller:"SmsQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{smsQueue:e,smsQueues:u.smsQueues?u.smsQueues.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.alert=l.info,u.gotoSmsQueues=function(){e.go("app.sms.smsQueues",{},{reload:"app.sms.smsQueues"})},u.saveSmsQueue=function(){r.smsQueue.update({id:u.smsQueue.id},u.smsQueue).$promise.then(function(){l.success({title:"SmsQueue updated!",msg:u.smsQueue.name?u.smsQueue.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","smsQueue","userProfileSection"],angular.module("app.sms").controller("SmsQueueController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.smsQueues=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="smsQueues",f.listOrder="",f.listOrderAsc=null,f.selectedSmsQueues=[],f.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"sms",limit:10,page:1},f.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.sms.smsQueues.edit",{id:e.id,smsQueue:e,crudPermissions:f.crudPermissions})},f.teamadddialog=function(e,n){i.show({controller:"SmsQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{smsQueue:e,smsQueues:f.smsQueues?f.smsQueues.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"SmsQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{smsQueue:e,smsQueues:f.smsQueues?f.smsQueues.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("smsQueue")+"?").htmlContent("<b>"+(e.name||"smsQueue")+"</b> will be deleted.").ariaLabel("delete smsQueue").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:710}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.sms.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.sms.realtime.queues",{})}},f.success=E,f.getSmsQueues=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.smsQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="SmsQueues",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditSmsQueue=function(e,n){i.show({controller:"CreateOrEditSmsQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsQueue:n,smsQueues:f.smsQueues.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteSmsQueue=y,f.exportSelectedSmsQueues=function(){var e=angular.copy(f.selectedSmsQueues);return f.selectedSmsQueues=[],e},f.deleteSelectedSmsQueues=function(e){var n=i.confirm().title("Are you sure want to delete the selected smsQueues?").htmlContent("<b>"+f.selectedSmsQueues.length+" selected</b> will be deleted.").ariaLabel("delete SmsQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedSmsQueues.forEach(function(e){y(e)}),f.selectedSmsQueues=[]})},f.deselectSmsQueues=function(){f.selectedSmsQueues=[]},f.selectAllSmsQueues=function(){f.selectedSmsQueues=f.smsQueues.rows};var b=!0,A=1;function E(e){f.smsQueues=e||{count:0,rows:[]}}function y(e){m.smsQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.smsQueues.rows,{id:e.id}),f.smsQueues.count-=1,f.smsQueues.rows.length||f.getSmsQueues(),p.success({title:_.startCase("SmsQueue")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEsmsQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEsmsQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getSmsQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","smsQueues","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.sms").controller("SmsQueuesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.agents=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="agents",f.listOrder="",f.listOrderAsc=null,f.selectedAgents=[],f.query={fields:"createdAt,updatedAt,id,role,fullname,name,alias,showWebBar,email,phone,mobile,userpic,password,hotdesk,autointernal,internal,loginInPause,description,dtlscertfile,dtlsprivatekey,wssPort,voicemail,transport,host,nat,type,allow,callerid,context,callgroup,pickupgroup,chanspy,videosupport,extensionMonitor,chatCapacity,mailCapacity,smsCapacity,openchannelCapacity,faxCapacity,whatsappCapacity,phoneBarEnableSettings,phoneBarAutoAnswer,phoneBarAutoAnswerDelay,phoneBarRingInUse,phoneBarEnableRecording,phoneBarEnableDtmfTone,phoneBarDnd,phoneBarUnansweredCallBadge,phoneBarEnableJaws,phoneBarOutboundProxy,phoneBarUnconditional,phoneBarUnconditionalNumber,phoneBarRemoteControl,phoneBarRemoteControlPort,phoneBarExpires,phoneBarListenPort,permissions,allowmessenger,phoneBarPrefixRequired,passwordResetAt,disabled,blocked,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording,privacyEnabled,downloadAttachments,downloadOmnichannelInteractions,downloadVoiceRecordings",role:"agent",sort:"-updatedAt",limit:10,page:1},f.arrayshowWebBar=_.keyBy([{option:"Phonebar",value:"0"},{option:"External",value:"1"},{option:"WebRTC",value:"2"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraytransport=_.keyBy([{option:"udp",value:"'udp'"},{option:"tcp",value:"'tcp'"},{option:"ws",value:"'ws'",ngIf:"vm.agent.showWebBar == 1"},{option:"wss",value:"'wss'",ngIf:"vm.agent.showWebBar == 1"},{option:"tls",value:"'tls'",ngIf:"vm.agent.showWebBar == 1"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraynat=_.keyBy([{option:"force_rport",value:"'force_rport'"},{option:"comedia",value:"'comedia'"},{option:"yes",value:"'yes'"},{option:"no",value:"'no'"},{option:"never",value:"'never'"},{option:"route",value:"'route'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraytype=_.keyBy([{option:"Friend",value:"'friend'"},{option:"User",value:"'user'"},{option:"Peer",value:"'peer'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayallow=_.keyBy([{option:"ulaw",value:"'ulaw'"},{option:"alaw",value:"'alaw'"},{option:"gsm",value:"'gsm'"},{option:"g722",value:"'g722'"},{option:"g729",value:"'g729'"},{option:"opus",value:"'opus'"},{option:"h264",value:"'h264'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayvideosupport=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"},{option:"Always",value:"'always'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayextensionMonitor=_.keyBy([{option:"Inactive",value:"''"},{option:"wav",value:"'wav'"},{option:"wav49",value:"'WAV'"},{option:"gsm",value:"'gsm'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.staff.agents.edit",{id:e.id,agent:e,crudPermissions:f.crudPermissions})},f.teamadddialog=function(e,n){i.show({controller:"AgentteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:f.agents?f.agents.rows:[],crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("agent")+"?").htmlContent("<b>"+(e.name||"agent")+"</b> will be deleted.").ariaLabel("delete agent").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getAgents=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.user.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Agents",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditAgent=function(e,n){i.show({controller:"CreateOrEditAgentDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{agent:n,agents:f.agents.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteAgent=y,f.exportSelectedAgents=function(){var e=angular.copy(f.selectedAgents);return f.selectedAgents=[],e},f.deleteSelectedAgents=function(e){var n=i.confirm().title("Are you sure want to delete the selected agents?").htmlContent("<b>"+f.selectedAgents.length+" selected</b> will be deleted.").ariaLabel("delete Agents").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedAgents.forEach(function(e){y(e)}),f.selectedAgents=[]})},f.deselectAgents=function(){f.selectedAgents=[]},f.selectAllAgents=function(){f.selectedAgents=f.agents.rows};var b=!0,A=1;function E(e){f.agents=e||{count:0,rows:[]}}function y(e){m.user.delete({id:e.id}).$promise.then(function(){_.remove(f.agents.rows,{id:e.id}),f.agents.count-=1,f.agents.rows.length||f.getAgents(),p.success({title:_.startCase("Agent")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEuser"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEuser",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getAgents())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","agents","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.staff").controller("AgentsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="STAFF.EDIT_AGENT",g.agent=angular.copy(l),g.agents=r,g.newAgent=!1,g.agent||(g.agent={role:"agent",showWebBar:"0",autointernal:!0,wssPort:8089,type:"friend",context:"from-sip",phoneBarRemoteControl:!0,phoneBarRemoteControlPort:9888,allowmessenger:!0,downloadAttachments:!0,downloadOmnichannelInteractions:!0,downloadVoiceRecordings:!0},g.title="STAFF.NEW_AGENT",g.newAgent=!0),g.addNewAgent=function(){g.errors=[],d.user.save(g.agent).$promise.then(function(e){g.agents.unshift(e.toJSON()),o.success({title:"Agent properly created",msg:g.agent.name?g.agent.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveAgent=function(){g.errors=[],d.user.update({id:g.agent.id},g.agent).$promise.then(function(e){var n=_.find(g.agents,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Agent properly saved!",msg:g.agent.name?g.agent.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteAgent=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The agent will be deleted.").ariaLabel("Delete Agent").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.user.delete({id:g.agent.id}).$promise.then(function(){_.remove(g.agents,{id:g.agent.id}),o.success({title:"Agent properly deleted!",msg:(g.agent.name||"agent")+" has been deleted!"}),v(g.agent)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","agents","agent","api","Auth","license","setting","crudPermissions"],angular.module("app.staff").controller("CreateOrEditAgentDialogController",e)}(),function(){"use strict";function e(e,a){var i=this;i.agent={},i.crudPermissions,i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.agent.images.unshift(t),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.agent.images,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e,n){i.agent=angular.copy(e),i.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.ngFlowOptions.target="api/users/"+i.agent.id+"/avatar",i.agent.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.staff").controller("Agentchange_avatarController",e)}(),function(){"use strict";function e(t,e,n,a,i,s,o){var r=this;function l(){e.hide()}r.currentUser=o.getCurrentUser(),r.errors=[],r.setting=s,r.passwordPattern=r.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",r.agent=i,r.password="",r.oldPassword="",r.savePassword=function(){r.errors=[];var e={id:r.agent.id,newPassword:r.password};r.currentUser.id==r.agent.id&&(e.oldPassword=r.oldPassword);a.user.changePassword(e).$promise.then(function(){n.success({title:"Agent password properly updated!"}),l()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.agent.save",msg:e.data?JSON.stringify(e.data.message):e.toString()}),r.errors=e.data.errors||[{message:e.toString(),type:"api.agent.changePassword"}]})},r.closeDialog=l,t.$watch("vm.password",function(e,n){_.isNil(r.oldPassword)||(e===r.oldPassword?t.agentForm.password.$setValidity("oldPasswordMatch",!1):t.agentForm.password.$setValidity("oldPasswordMatch",!0))})}e.$inject=["$scope","$mdDialog","toasty","api","agent","setting","Auth"],angular.module("app.staff").controller("AgentchangepasswordController",e)}(),function(){"use strict";function e(e,n,i,t,s){var o=this;o.agent={},o.navigation=t.getNavigation(),o.crudPermissions,o.init=function(e,n){o.agent=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1}},o.onChange=function(n,t){if((t||n).enabled){if(t)t.enabled=!0,o.agent.permissions.push(t.id);else for(var e=0;e<n.children.length;e++)n.children[e].enabled=!0,o.agent.permissions.push(n.children[e].id);n.enabled=!0,o.agent.permissions.push(n.id)}else if(t)t.enabled=!1,_.remove(o.agent.permissions,function(e){return t.id===e}),_.filter(n.children,{enabled:!1}).length===n.children.length&&(n.enabled=!1,_.remove(o.agent.permissions,function(e){return n.id===e}));else{n.enabled=!1,_.remove(o.agent.permissions,function(e){return n.id===e});for(var a=0;a<n.children.length;a++)n.children[a].enabled=!1,_.remove(o.agent.permissions,function(e){return n.children[a].id===e})}return i.user.update({id:o.agent.id,permissions:_.uniq(o.agent.permissions)}).$promise.then(function(){s.success({title:"agent updated!",msg:o.agent.name?o.agent.name+" has been updated!":""})}).catch(function(e){console.error(e)})}}e.$inject=["$document","$mdDialog","api","msNavigationAgentService","toasty"],angular.module("app.staff").controller("AgentPermissionsController",e)}(),function(){"use strict";function e(e,l,a,d,n,t,i,s,o,r){var c=this;function m(){return l(function(t,n){return l(function(n,t){return d[c.apiName].get({fields:"id,name,strategy,type",channel:"bull"===c.channel?"voice":c.channel,type:c.direction,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],o.hasRole("admin")?e:c.section?c.section.autoAssociation?e:l(function(n,t){return d.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:o.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),l(function(n,t){return d.user.getQueues({id:c.agent.id,fields:"id,name,strategy,type,penalty",nolimit:!0,type:c.direction,channel:c.channel}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return"voice"===c.channel&&(n.penalty=void 0!==n&&void 0!==e.UserVoiceQueue?"penalty "+e.UserVoiceQueue.penalty:"penalty 0"),n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=o.getCurrentUser(),c.agent=n,c.crudPermissions=r,c.penalty=0,c.channel=t,c.direction=i,c.apiName=c.channel+"Queue",c.title=s.instant("STAFF.QUEUEADD_AGENT_"+c.channel.toUpperCase()+"_"+c.direction.toUpperCase()),c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"type",line3:"voice"===c.channel?"penalty":"",labelAll:s.instant("STAFF.ALL_QUEUES_"+c.channel.toUpperCase()+"_"+c.direction.toUpperCase()),labelSelected:s.instant("STAFF.SELECTED_QUEUES_"+c.channel.toUpperCase()+"_"+c.direction.toUpperCase()),transferCallback:function(e,n){n?e.forEach(function(e){e.penalty=void 0}):e.forEach(function(e){e.penalty="penalty "+c.penalty});var t=_.xorWith(c.startingSelectedItems,c.selectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});c.pendingChanges=!_.isEmpty(t)}},c.onInit=function(){return o.hasRole("admin")?m().catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.status?JSON.stringify(e.data):e.toString()})}):l(function(t,n){var e;switch(c.channel){case"voice":switch(c.direction){case"inbound":e="VoiceQueues";break;case"outbound":e="QueueCampaigns"}break;case"chat":e="ChatQueues";break;case"mail":e="MailQueues";break;case"sms":e="SmsQueues";break;case"openchannel":e="OpenchannelQueues";break;case"fax":e="FaxQueues"}d.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:e}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveQueues=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceWith(c.selectedItems,c.startingSelectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});return(t=e,l(function(e,n){_.isEmpty(t)?e():d.user.removeQueues({id:c.agent.id,ids:_.map(t,"id"),channel:c.channel}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return r=n,l(function(e,n){if(_.isEmpty(r))e();else if("voice"===c.channel){for(var t=[],a=_.groupBy(r,"penalty"),i=0;i<Object.keys(a).length;i++){var s=Object.keys(a)[i],o=_.filter(r,["penalty",s]);t.push(d.user.addQueues({id:c.agent.id,ids:_.map(o,"id"),channel:c.channel,penalty:_.trim(s,"penalty ")}).$promise)}l.all(t).then(function(){e()}).catch(function(e){n(e)})}else d.user.addQueues({id:c.agent.id,ids:_.map(r,"id"),channel:c.channel}).$promise.then(function(){e()}).catch(function(e){n(e)})});var r}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),a.success({title:"SUCCESS",msg:"Queues association has been updated!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:QUEUES_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","agent","channel","direction","$translate","Auth","crudPermissions"],angular.module("app.staff").controller("AgentqueueaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.user.getTeams({id:l.agent.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.agent=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("STAFF.ALL_TEAMS"),labelSelected:t.instant("STAFF.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.user.removeTeams({id:l.agent.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.user.addTeams({id:l.agent.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","agent","$translate","Auth","crudPermissions"],angular.module("app.staff").controller("AgentteamaddController",e)}(),function(){"use strict";function e(e,n,i,s,t,a,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=a,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.agent=c||e.params.agent||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.queueaddchannel=function(e,n,t,a){i.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(s.body),targetEvent:t,clickOutsideToClose:!0,locals:{agent:e,agents:u.agents?u.agents.rows:[],channel:n,direction:a||"inbound",crudPermissions:u.crudPermissions}})},u.teamadddialog=function(e,n){i.show({controller:"AgentteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:u.agents?u.agents.rows:[],crudPermissions:u.crudPermissions}})},u.changepassworddialog=function(e,n){i.show({controller:"AgentchangepasswordController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/changepassword/changepassword.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,setting:o,agents:u.agents?u.agents.rows:[],crudPermissions:u.crudPermissions}})},u.onEnableScreenRecordingByAgentSelection=function(){["phoneBarEnableAutomaticScreenRecording"].forEach(function(e){u.agent.phoneBarEnableScreenRecordingByAgent&&(u.agent[e]=!u.agent.phoneBarEnableScreenRecordingByAgent)})},u.onEnableAutomaticScreenRecordingSelection=function(){["phoneBarEnableScreenRecordingByAgent"].forEach(function(e){u.agent.phoneBarEnableAutomaticScreenRecording&&(u.agent[e]=!u.agent.phoneBarEnableAutomaticScreenRecording)})},u.alert=l.info,u.gotoAgents=function(){e.go("app.staff.agents",{},{reload:"app.staff.agents"})},u.saveAgent=function(){u.agent=_.omit(u.agent,"userpic"),r.user.update({id:u.agent.id},u.agent).$promise.then(function(){l.success({title:"Agent updated!",msg:u.agent.name?u.agent.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETuser",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_CONTEXTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:405}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;return n?n.autoAssociation?void 0:r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.contexts,{id:e.resourceId})}),t=null;if(u.agent&&(t=_.find(u.contexts,{name:u.agent.context})),t&&!_.some(n,["id",t.id])){var a=_.find(u.contexts,{id:t.id});a.canSelect=!1,n.push(a)}u.contexts=n}):r.voiceContext.get({fields:"id,name",sort:"name",defaultEntry:1}).$promise.then(function(e){u.contexts=e.rows||[]})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","agent","userProfileSection"],angular.module("app.staff").controller("AgentController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="STAFF.EDIT_TEAM",g.team=angular.copy(l),g.teams=r,g.newTeam=!1,g.team||(g.team={},g.title="STAFF.NEW_TEAM",g.newTeam=!0),g.addNewTeam=function(){g.errors=[],d.team.save(g.team).$promise.then(function(e){g.teams.unshift(e.toJSON()),o.success({title:"Team properly created",msg:g.team.name?g.team.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.team.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.team.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveTeam=function(){g.errors=[],d.team.update({id:g.team.id},g.team).$promise.then(function(e){var n=_.find(g.teams,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Team properly saved!",msg:g.team.name?g.team.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.team.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.team.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteTeam=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The team will be deleted.").ariaLabel("Delete Team").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.team.delete({id:g.team.id}).$promise.then(function(){_.remove(g.teams,{id:g.team.id}),o.success({title:"Team properly deleted!",msg:(g.team.name||"team")+" has been deleted!"}),v(g.team)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.team.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.team.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","teams","team","api","Auth","license","setting","crudPermissions"],angular.module("app.staff").controller("CreateOrEditTeamDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.team.getAgents({id:c.team.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserTeam?"penalty "+e.UserTeam.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.team=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.team.removeAgents({id:c.team.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.team.addAgents({id:c.team.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("STAFF.ALL_AGENTS"),labelSelected:r.instant("STAFF.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","team","teams","realtime","$translate","Auth","crudPermissions"],angular.module("app.staff").controller("TeamagentaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.teams=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="teams",f.listOrder="",f.listOrderAsc=null,f.selectedTeams=[],f.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditTeamDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/teams/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{team:e,teams:f.teams.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"TeamagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/teams/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{team:e,teams:f.teams?f.teams.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("team")+"?").htmlContent("<b>"+(e.name||"team")+"</b> will be deleted.").ariaLabel("delete team").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getTeams=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.team.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Teams",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditTeam=function(e,n){i.show({controller:"CreateOrEditTeamDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/teams/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{team:n,teams:f.teams.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteTeam=y,f.exportSelectedTeams=function(){var e=angular.copy(f.selectedTeams);return f.selectedTeams=[],e},f.deleteSelectedTeams=function(e){var n=i.confirm().title("Are you sure want to delete the selected teams?").htmlContent("<b>"+f.selectedTeams.length+" selected</b> will be deleted.").ariaLabel("delete Teams").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedTeams.forEach(function(e){y(e)}),f.selectedTeams=[]})},f.deselectTeams=function(){f.selectedTeams=[]},f.selectAllTeams=function(){f.selectedTeams=f.teams.rows};var b=!0,A=1;function E(e){f.teams=e||{count:0,rows:[]}}function y(e){m.team.delete({id:e.id}).$promise.then(function(){_.remove(f.teams.rows,{id:e.id}),f.teams.count-=1,f.teams.rows.length||f.getTeams(),p.success({title:_.startCase("Team")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEteam"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEteam",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getTeams())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","teams","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.staff").controller("TeamsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="STAFF.EDIT_TELEPHONE",g.telephone=angular.copy(l),g.telephones=r,g.newTelephone=!1,g.telephone||(g.telephone={role:"telephone",autointernal:!0,context:"from-sip"},g.title="STAFF.NEW_TELEPHONE",g.newTelephone=!0),g.addNewTelephone=function(){g.errors=[],d.user.save(g.telephone).$promise.then(function(e){g.telephones.unshift(e.toJSON()),o.success({title:"Telephone properly created",msg:g.telephone.name?g.telephone.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveTelephone=function(){g.errors=[],d.user.update({id:g.telephone.id},g.telephone).$promise.then(function(e){var n=_.find(g.telephones,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Telephone properly saved!",msg:g.telephone.name?g.telephone.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteTelephone=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The telephone will be deleted.").ariaLabel("Delete Telephone").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.user.delete({id:g.telephone.id}).$promise.then(function(){_.remove(g.telephones,{id:g.telephone.id}),o.success({title:"Telephone properly deleted!",msg:(g.telephone.name||"telephone")+" has been deleted!"}),v(g.telephone)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","telephones","telephone","api","Auth","license","setting","crudPermissions"],angular.module("app.staff").controller("CreateOrEditTelephoneDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i,s,o){var r=this;function l(){e.hide()}r.currentUser=o.getCurrentUser(),r.errors=[],r.setting=s,r.passwordPattern=r.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",r.telephone=i,r.password="",r.oldPassword="",r.savePassword=function(){r.errors=[];var e={id:r.telephone.id,newPassword:r.password};r.currentUser.id==r.telephone.id&&(e.oldPassword=r.oldPassword);a.user.changePassword(e).$promise.then(function(){n.success({title:"Telephone password properly updated!"}),l()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.telephone.save",msg:e.data?JSON.stringify(e.data.message):e.toString()}),r.errors=e.data.errors||[{message:e.toString(),type:"api.telephone.changePassword"}]})},r.closeDialog=l,t.$watch("vm.password",function(e,n){_.isNil(r.oldPassword)||(e===r.oldPassword?t.telephoneForm.password.$setValidity("oldPasswordMatch",!1):t.telephoneForm.password.$setValidity("oldPasswordMatch",!0))})}e.$inject=["$scope","$mdDialog","toasty","api","telephone","setting","Auth"],angular.module("app.staff").controller("TelephonechangepasswordController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.telephone=c||e.params.telephone||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.changepassworddialog=function(e,n){t.show({controller:"TelephonechangepasswordController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/telephones/edit/changepassword/changepassword.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{telephone:e,setting:o,telephones:u.telephones?u.telephones.rows:[],crudPermissions:u.crudPermissions}})},u.alert=l.info,u.gotoTelephones=function(){e.go("app.staff.telephones",{},{reload:"app.staff.telephones"})},u.saveTelephone=function(){r.user.update({id:u.telephone.id},u.telephone).$promise.then(function(){l.success({title:"Telephone updated!",msg:u.telephone.name?u.telephone.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETuser",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_CONTEXTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:405}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;return n?n.autoAssociation?void 0:r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.contexts,{id:e.resourceId})}),t=null;if(u.telephone&&(t=_.find(u.contexts,{name:u.telephone.context})),t&&!_.some(n,["id",t.id])){var a=_.find(u.contexts,{id:t.id});a.canSelect=!1,n.push(a)}u.contexts=n}):r.voiceContext.get({fields:"id,name",sort:"name",defaultEntry:1}).$promise.then(function(e){u.contexts=e.rows||[]})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","telephone","userProfileSection"],angular.module("app.staff").controller("TelephoneController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.telephones=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="telephones",f.listOrder="",f.listOrderAsc=null,f.selectedTelephones=[],f.query={fields:"createdAt,updatedAt,id,role,fullname,name,email,password,description,autointernal,internal,voicemail,transport,nat,allow,callerid,context,callgroup,pickupgroup,videosupport,encryption,phone,mobile",role:"telephone",sort:"-updatedAt",limit:10,page:1},f.arraytransport=_.keyBy([{option:"udp",value:"'udp'"},{option:"tcp",value:"'tcp'"},{option:"ws",value:"'ws'"},{option:"wss",value:"'wss'"},{option:"tls",value:"'tls'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraynat=_.keyBy([{option:"force_rport",value:"'force_rport'"},{option:"comedia",value:"'comedia'"},{option:"yes",value:"'yes'"},{option:"no",value:"'no'"},{option:"never",value:"'never'"},{option:"route",value:"'route'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayallow=_.keyBy([{option:"ulaw",value:"'ulaw'"},{option:"alaw",value:"'alaw'"},{option:"gsm",value:"'gsm'"},{option:"g722",value:"'g722'"},{option:"g729",value:"'g729'"},{option:"opus",value:"'opus'"},{option:"h264",value:"'h264'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayvideosupport=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"},{option:"Always",value:"'always'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayencryption=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.staff.telephones.edit",{id:e.id,telephone:e,crudPermissions:f.crudPermissions})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("telephone")+"?").htmlContent("<b>"+(e.name||"telephone")+"</b> will be deleted.").ariaLabel("delete telephone").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getTelephones=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.user.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Telephones",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditTelephone=function(e,n){i.show({controller:"CreateOrEditTelephoneDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/telephones/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{telephone:n,telephones:f.telephones.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteTelephone=y,f.exportSelectedTelephones=function(){var e=angular.copy(f.selectedTelephones);return f.selectedTelephones=[],e},f.deleteSelectedTelephones=function(e){var n=i.confirm().title("Are you sure want to delete the selected telephones?").htmlContent("<b>"+f.selectedTelephones.length+" selected</b> will be deleted.").ariaLabel("delete Telephones").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedTelephones.forEach(function(e){y(e)}),f.selectedTelephones=[]})},f.deselectTelephones=function(){f.selectedTelephones=[]},f.selectAllTelephones=function(){f.selectedTelephones=f.telephones.rows};var b=!0,A=1;function E(e){f.telephones=e||{count:0,rows:[]}}function y(e){m.user.delete({id:e.id}).$promise.then(function(){_.remove(f.telephones.rows,{id:e.id}),f.telephones.count-=1,f.telephones.rows.length||f.getTelephones(),p.success({title:_.startCase("Telephone")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEuser"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEuser",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getTelephones())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","telephones","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.staff").controller("TelephonesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="STAFF.EDIT_USERPROFILE",g.userProfile=angular.copy(l),g.userProfiles=r,g.newUserProfile=!1,g.userProfile||(g.userProfile={crudPermissions:["r"],downloadAttachments:!0,downloadCallySquareRecordings:!0,downloadContactManagerLists:!0,downloadJscriptySessions:!0,downloadOmnichannelInteractions:!0,downloadScreenRecordings:!0,downloadVoiceRecordings:!0},g.title="STAFF.NEW_USERPROFILE",g.newUserProfile=!0),g.addNewUserProfile=function(){g.errors=[],d.userProfile.save(g.userProfile).$promise.then(function(e){var n,t;t=[],(n=e).crudPermissions.forEach(function(e){var n;switch(e){case"r":n="READ_PERMISSION";break;case"e":n="EDIT_PERMISSION";break;case"d":n="DELETE_PERMISSION"}t.push(s.instant("STAFF."+n))}),n.selectedcrudPermissions=t.join(", "),g.userProfiles.unshift(e.toJSON()),o.success({title:"UserProfile properly created",msg:g.userProfile.name?g.userProfile.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.userProfile.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.userProfile.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveUserProfile=function(){g.errors=[],d.userProfile.update({id:g.userProfile.id},g.userProfile).$promise.then(function(e){var n=_.find(g.userProfiles,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"UserProfile properly saved!",msg:g.userProfile.name?g.userProfile.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.userProfile.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.userProfile.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteUserProfile=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The userProfile will be deleted.").ariaLabel("Delete UserProfile").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.userProfile.delete({id:g.userProfile.id}).$promise.then(function(){_.remove(g.userProfiles,{id:g.userProfile.id}),o.success({title:"UserProfile properly deleted!",msg:(g.userProfile.name||"userProfile")+" has been deleted!"}),v(g.userProfile)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.userProfile.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.userProfile.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","userProfiles","userProfile","api","Auth","license","setting","crudPermissions"],angular.module("app.staff").controller("CreateOrEditUserProfileDialogController",e)}(),function(){"use strict";function e(n,a,i,e,t,s,o){var r=this;function l(e){n.hide(e)}r.newUserProfile=!0,r.userProfile=angular.copy(t),r.userProfiles=s,r.title=o.instant("STAFF.CLONE_USERPROFILE"),t&&t.name&&(r.title+=": "+t.name),r.cloneUserProfile=function(){return e.userProfile.clone({id:t.id},r.userProfile).$promise.then(function(e){var n,t;t=[],(n=e).crudPermissions.forEach(function(e){var n;switch(e){case"r":n="READ_PERMISSION";break;case"e":n="EDIT_PERMISSION";break;case"d":n="DELETE_PERMISSION"}t.push(o.instant("STAFF."+n))}),n.selectedcrudPermissions=t.join(", "),r.userProfiles.unshift(e.toJSON()),i.success({title:"UserProfile properly cloned",msg:r.userProfile.name?r.userProfile.name+" has been cloned!":""}),a.go("app.staff.userProfiles.edit",{id:e.id}),l(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){r.errors=e.data.errors||[{message:e.toString(),type:"api.userProfile.clone"}];for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.userProfile.clone",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},r.closeDialog=l}e.$inject=["$mdDialog","$state","toasty","api","userProfile","userProfiles","$translate"],angular.module("app.staff").controller("UserProfilecloneController",e)}(),function(){"use strict";function e(t,o,r,l,d,e,n,c){var m=this;function u(e,n){switch(e.allResourcesEnabled="full"===n,n){case"full":return _.find(m.statusList,["tag","full"]);case"partial":return _.find(m.statusList,["tag","partial"]);case"disabled":return _.find(m.statusList,["tag","disabled"]);case"unlicensed":return _.find(m.statusList,["tag","unlicensed"]);case"unknown":default:return _.find(m.statusList,["tag","unknown"])}}function p(e){return l(function(n,t){var o,a;void 0!==e.channel&&_.includes(e.route,"Queue")?(a=e,l(function(n,t){var e=void 0!==a.channel&&"bull"===a.channel?"outbound":"inbound";return d[a.route].get({fields:"id,name,strategy,type",channel:"bull"===a.channel?"voice":a.channel,type:e,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})).then(function(e){n(e)}).catch(function(e){t(e)}):(o=e,l(function(a,n){switch(o.route){case"voiceExtension":var e;switch(o.title){case"InboundRoutes":e="inbound";break;case"OutboundRoutes":e="outbound";break;case"InternalRoutes":e="internal"}break;case"interval":var t=!0;break;case"disposition":var i=!0;break;case"user":var s;switch(o.title){case"Agents":s="agent";break;case"Telephones":s="telephone";break;case"Users":s="user"}}if("Reports"===o.title){if(!o.reportType)return d.analyticDefaultReport.get({nolimit:!0}).$promise.then(function(t){d.analyticCustomReport.get({nolimit:!0}).$promise.then(function(e){var n=_.union(t.rows,e.rows);a({count:n.length,rows:n.rows})})}).catch(function(e){n(e)});switch(o.reportType){case"default":o.route="analyticDefaultReport";break;case"custom":o.route="analyticCustomReport"}}return d[o.route].get({role:s||void 0,type:e||void 0,VoiceExtensionId:e?"null":void 0,IntervalId:t?"null":void 0,MailAccountId:i?"null":void 0,FaxAccountId:i?"null":void 0,SmsAccountId:i?"null":void 0,OpenchannelAccountId:i?"null":void 0,ChatWebsiteId:i?"null":void 0,WhatsappAccountId:i?"null":void 0,ListId:i?"null":void 0,nolimit:!0}).$promise.then(function(e){a(e)}).catch(function(e){n(e)})})).then(function(e){n(e)}).catch(function(e){t(e)})})}function g(e,n,t){var a=e&&0<e.length?e[0]:null;if(!a)return t;var i,s,o=_.find(n,["sectionId",a.id]);return o?(n=_.remove(n,["sectionId",a.id]),(i=a,s=o.id,l(function(n,t){d.userProfileResource.get({sectionId:s}).$promise.then(function(n){return p(i).then(function(e){return _.differenceBy(n.rows,e.rows,"id")})}).then(function(e){_.isEmpty(e)?n():t()}).catch(function(e){t(e)})})).then(function(){return t="full",g(e.shift(),n,t)}).catch(function(e){return l.reject(e)})):void 0}function a(a){var t="Marketplace"===a.title?"AppZone":a.title;m.license?void 0===a.permissions||a.permissions.association?void 0===a.license||m.license[a.license]?d.userProfileSection.get({userProfileId:m.userProfile.id,category:t}).$promise.then(function(e){var n=e&&e.rows&&0<e.rows.length?e.rows:[];if("Dashboards"===a.title)return _.isEmpty(n)?"disabled":n[0].autoAssociation?"full":d.userProfileResource.get({sectionId:n[0].id,resourceId:101}).$promise.then(function(e){return(e&&e.rows?e.rows[0]:null)?"full":"partial"});var t=_.filter(a.children,function(e){return void 0!==e.permissions&&e.permissions.hidden?void 0:e});return n.length!==t.length?0===n.length?"disabled":"partial":_.every(n,["autoAssociation",!0])?"full":g(_.filter(t,function(e){return void 0===e.permissions||e.permissions.association?e:void 0}),n,"partial")}).then(function(e){a.status=u(a,e)}).catch(function(e){var n=e?"unknown":"partial";a.status=u(a,n),e&&c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GETRESOURCES("+t.toUpperCase()+")",msg:e.status?JSON.stringify(e.data):e.toString()})}):a.status=u(a,"unlicensed"):d.userProfileSection.get({userProfileId:m.userProfile.id,sectionId:a.id}).$promise.then(function(e){var n=(e&&1===e.rows.length?e.rows[0]:null)?"full":"disabled";a.status=u(a,n)}):a.status=u(a,"unknown")}m.userProfile={},m.license={},m.navigation=e.getNavigation(),m.modules=m.navigation[0].children,m.statusList=[{id:0,name:"Fully Enabled",color:"green-A700-bg",info:"All resources enabled",tag:"full"},{id:1,name:"Partially Enabled",color:"orange-A700-bg",info:"Some resources enabled",tag:"partial"},{id:2,name:"Disabled",color:"grey-A400-bg",info:"No resources enabled",tag:"disabled"},{id:3,name:"Unlicensed",color:"red-A700-bg",info:"Module not included in the license",tag:"unlicensed"},{id:4,name:"Unknown",color:"grey-A700-bg",info:"Unknown status",tag:"unknown"}],m.dashboardSections=[{title:"Dashboards",translate:"DASHBOARDS.DASHBOARDS",id:100}],m.init=function(e,n){m.userProfile=e,m.license=n},m.onChangeEnableAllResources=function(n){var e=void 0!==n.permissions&&!n.permissions.association,a="Marketplace"===n.title?"AppZone":n.title;if("Fully Enabled"!==n.status.name){var i=[];if(e)return i.push({category:a,sectionId:n.id,name:a,enabled:!0,crudPermissions:"red"}),d.userProfile.addSections({id:m.userProfile.id},i).$promise.then(function(){n.status=u(n,"full"),c.success({title:r.instant("STAFF.NOTIFICATIONS.PERMISSIONS_ENABLED_ALL_SUCCESS_TITLE",{sectionName:r.instant(n.translate),userProfileName:m.userProfile.name}),msg:r.instant("STAFF.NOTIFICATIONS.PERMISSIONS_ENABLED_ALL_SUCCESS_MESSAGE_NO_RESOURCES",{sectionName:r.instant(n.translate),userProfileName:m.userProfile.name})})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:USERPROFILE.ADDSECTIONS",msg:e.status?JSON.stringify(e.data):e.toString()})});var t=o.confirm({skipHide:!0}).title("Warning").textContent(r.instant("STAFF.PERMISSIONS_WARNING_ENABLE_ALL",{sectionName:r.instant(n.translate)})).ariaLabel("Warning").ok(r.instant("STAFF.CONFIRM")).cancel(r.instant("STAFF.CANCEL"));o.show(t).then(function(){switch(a){case"Dashboards":_.map(m.dashboardSections,function(e){i.push({category:a,sectionId:e.id,name:e.title,enabled:!0,autoAssociation:!0,crudPermissions:_.map(m.userProfile.crudPermissions).join("")})});break;default:_.map(n.children,function(e){var n=!(void 0===e.permissions||!e.permissions.hidden);if(!n){var t=e.title;switch(a){case"CallySquare":t="Projects"===t?"SquareProjects":t}i.push({category:a,sectionId:e.id,name:t,enabled:!0,autoAssociation:!0,crudPermissions:_.map(m.userProfile.crudPermissions).join("")})}})}return d.userProfile.addSections({id:m.userProfile.id},i).$promise.then(function(){n.status=u(n,"full"),c.success({title:r.instant("STAFF.NOTIFICATIONS.PERMISSIONS_ENABLED_ALL_SUCCESS_TITLE",{sectionName:r.instant(n.translate),userProfileName:m.userProfile.name}),msg:r.instant("STAFF.NOTIFICATIONS.PERMISSIONS_ENABLED_ALL_SUCCESS_MESSAGE",{sectionName:r.instant(n.translate),userProfileName:m.userProfile.name})})})}).catch(function(e){e?c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:USERPROFILE.ADDSECTIONS",msg:e.status?JSON.stringify(e.data):e.toString()}):n.status=u(n,n.status.tag)})}else if("Fully Enabled"===n.status.name){n.status=u(n,"disabled");var s=[];switch(a){case"Settings":case"Help":s=[n.id];break;case"Dashboards":s=_.map(m.dashboardSections,function(e){return e.id});break;default:s=_.map(n.children,function(e){return e.id})}return d.userProfile.removeSections({id:m.userProfile.id,ids:s}).$promise.then(function(){c.success({title:r.instant("STAFF.NOTIFICATIONS.PERMISSIONS_DISABLED_ALL_SUCCESS_TITLE",{sectionName:r.instant(n.translate),userProfileName:m.userProfile.name}),msg:r.instant("STAFF.NOTIFICATIONS.PERMISSIONS_DISABLED_ALL_SUCCESS_MESSAGE",{sectionName:r.instant(n.translate),userProfileName:m.userProfile.name})})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:USERPROFILE.REMOVESECTIONS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},m.manageResources=function(e,n){o.show({controller:"UserProfilepermissionsmanageController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/userProfiles/edit/permissionsmanage/permissionsmanage.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!1,locals:{userProfile:m.userProfile,userProfiles:[],section:e}}).then(function(){a(e)})},m.checkSectionResources=a}e.$inject=["$document","$mdDialog","$translate","$q","api","msNavigationService","Auth","toasty"],angular.module("app.staff").controller("UserProfilePermissionsController",e)}(),function(){"use strict";function e(n,t,i,o,r,e,a,l,s,d){var c=this;function m(){var a=void 0!==c.selectedSection.pending&&c.selectedSection.pending;return i(function(t,n){r.userProfileSection.get({userProfileId:c.userProfile.id,sectionId:c.selectedSection.id}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;a||(c.selectedSection.enabled=!!n&&!!n.enabled,c.selectedSection.autoAssociation=!!n&&!!n.autoAssociation,c.selectedSection.crudPermissions=v(n?n.crudPermissions:c.userProfile.crudPermissions)),t(n)}).catch(function(e){n(e)})})}function u(){return i(function(n,t){c.loadedSection?r.userProfileResource.get({sectionId:c.loadedSection.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)}):n(null)})}function p(){return i(function(n,t){void 0!==c.selectedSection.channel&&_.includes(c.selectedSection.route,"Queue")?i(function(n,t){var e=void 0!==c.selectedSection.channel&&"bull"===c.selectedSection.channel?"outbound":"inbound";return r[c.selectedSection.route].get({fields:"id,name,strategy,type",channel:"bull"===c.selectedSection.channel?"voice":c.selectedSection.channel,type:e,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){n(e)}).catch(function(e){t(e)}):i(function(n,t){var e,a;if("voiceExtension"===c.selectedSection.route)switch(c.selectedSection.title){case"InboundRoutes":e="inbound";break;case"OutboundRoutes":e="outbound";break;case"InternalRoutes":e="internal"}if("user"===c.selectedSection.route)switch(c.selectedSection.title){case"Agents":a="agent";break;case"Telephones":a="telephone";break;case"Users":a="user"}if("interval"===c.selectedSection.route)var i=!0;if("disposition"===c.selectedSection.route)var s=!0;if("Reports"===c.selectedSection.title&&(c.selectedSection.route="default"===c.selectedSection.reportType?"analyticDefaultReport":"analyticCustomReport"),"Dashboards"!==c.selectedSection.title)return r[c.selectedSection.route].get({role:a||void 0,type:e||void 0,VoiceExtensionId:e?"null":void 0,IntervalId:i?"null":void 0,MailAccountId:s?"null":void 0,FaxAccountId:s?"null":void 0,SmsAccountId:s?"null":void 0,OpenchannelAccountId:s?"null":void 0,ChatWebsiteId:s?"null":void 0,WhatsappAccountId:s?"null":void 0,ListId:s?"null":void 0,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)});n({count:1,rows:[{id:101,name:l.instant("DASHBOARDS.GENERAL")}]})}).then(function(e){n(e)}).catch(function(e){t(e)})})}function g(){var i=void 0!==c.selectedSection.pending&&c.selectedSection.pending,s=[];return u().then(function(e){var n;return s=e&&e.rows?e.rows:[],"Reports"===c.selectedSection.title&&(c.associatedReports=c.associatedReports?c.associatedReports:s,n=c.associatedReports,s=_.filter(n,{type:"default"===c.selectedSection.reportType?"DefaultReports":"CustomReports"})),void 0===c.selectedSection.permissions||c.selectedSection.permissions.association?p():{rows:[]}}).then(function(e){c.items=e.rows?_.map(e.rows,function(e){var n,t;return"Reports"===c.selectedSection.title&&(e.fullPath=(n=e.parent,t=c.treeStructure[0].text,t=function e(n,t,a){if(!a||_.isEmpty(a.children))return n;var a=_.find(a.children,function(e){return _.includes(t,e.id)?e:void 0});return n+=a?"/"+a.text:"",e(n,t,a)}(t,n,c.treeStructure[0])).replace(" ","_")),e.isValid=!0,e}):[],i||(c.selectedSection.selectedItems=_.map(s,function(e){return _.find(c.items,{id:e.resourceId})}));var n,t=_.differenceBy(c.selectedSection.selectedItems,c.items,"id");switch(_.isEmpty(t)||(c.selectedSection.selectedItems=_.pullAllBy(c.selectedSection.selectedItems,t,"id")),c.selectedSection.title){case"Contexts":c.selectedSection.selectedItems=_.filter(c.items,function(e){return e.defaultEntry?(e.isValid=!1,e):void 0!==_.find(s,{resourceId:e.id})?(e.isValid=!0,e):void 0});break;case"MusicOnHolds":c.selectedSection.selectedItems=_.filter(c.items,function(e){return e.defaultEntry?(e.isValid=!1,e):void 0!==_.find(s,{resourceId:e.id})?(e.isValid=!0,e):void 0});break;case"Reports":var a=(n=c.allReportsSelected,_.filter(n,function(e){return _.startsWith(e.parent,"default"===c.selectedSection.reportType?"motion":"custom")}));c.selectedSection.selectedItems=b(c.selectedSection.selectedItems),c.selectedSection.selectedItems=_.unionBy(c.selectedSection.selectedItems,a,"id")}c.dualMultiselectOptions.selectedItems=c.selectedSection.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.items,c.dualMultiselectOptions.selectedItems,"id")}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET"+c.selectedSection.title.toUpperCase(),msg:e.status?JSON.stringify(e.data):e.toString()})})}function v(e){return e&&(c.selectedSection.allowEdit=!!_.includes(e,"e"),c.selectedSection.allowDelete=!!_.includes(e,"d")),function(){var e=["r"];if(c.selectedSection.allowEdit)e.push("e");else{var n=_.indexOf(e,["e"]);0<n&&c.selectedSection.crudPermissions.replace("e","")}if(c.selectedSection.allowDelete)e.push("d");else{var n=_.indexOf(e,["d"]);0<n&&c.selectedSection.crudPermissions.replace("d","")}return e}()}function h(e){var n=_.findIndex(c.subsections,function(e){return e.id==c.selectedSection.id});c.subsections[n].pending=e,f()}function f(){return c.pendingChanges=_.some(c.subsections,["pending",!0])}function b(e){return _.remove(e,function(e){return _.startsWith(e.parent,"default"===c.selectedSection.reportType?"motion":"custom")})}function A(){_.isEmpty(c.selectedSection.selectedItems)?c.allReportsSelected=_.remove(c.allReportsSelected,function(e){return e.type===("default"===c.selectedSection.reportType?"CustomReports":"DefaultReports")}):c.selectedSection.selectedItems.forEach(function(e){_.some(c.allReportsSelected,{id:e.id,parent:e.parent})||c.allReportsSelected.push(e)})}c.userProfile=e,c.penalty=0,c.section=angular.copy(d),c.title=l.instant("STAFF.PERMISSIONS_SECTION_TITLE",{sectionName:l.instant(c.section.translate)}),c.items=[],c.selectedItems=[],c.subsections=_.filter(c.section.children,function(e){return void 0!==e.permissions&&e.permissions.hidden?void 0:e}),c.dashboardSections=[{title:"Dashboards",translate:"DASHBOARDS.DASHBOARDS",id:100}],c.dashboardItems=[],"Dashboards"===c.section.title&&(c.dashboardItems=c.subsections,c.subsections=c.dashboardSections),c.selectedSection=null,c.loadedSection=null,c.allReportsSelected=[],c.closeDialog=function(e){if(c.pendingChanges){var n=t.confirm({skipHide:!0}).title("Warning").textContent(l.instant("STAFF.PERMISSIONS_WARNING_CLOSE")).ariaLabel("Warning").targetEvent(e).ok(l.instant("STAFF.CLOSE")).cancel(l.instant("STAFF.CANCEL"));t.show(n).then(function(){t.hide()})}else t.hide()},c.onChangeSection=function(){return m().then(function(e){if(c.loadedSection=e,"Reports"===c.selectedSection.title)return i(function(n,t){r.analyticTreeReport.get({}).$promise.then(function(e){c.treeReports=e.rows||[],n(c.treeReports)}).catch(function(e){t(e)})}).then(function(){if(!c.selectedSection.reportType)return u().then(function(e){c.allReportsSelected=e?_.map(e.rows,function(e){return{id:e.resourceId,name:e.name,type:e.type}}):[]})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TREE_REPORT_STRUCTURE",msg:e.data?JSON.stringify(e.data):e.toString()})});g()}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET"+c.selectedSection.title.toUpperCase(),msg:e.status?JSON.stringify(e.data):e.toString()})})},c.onChangeVisibility=function(){c.selectedSection.enabled=!c.selectedSection.enabled,h(!0)},c.onChangeAutoAssociation=function(){if(!c.selectedSection.autoAssociation){for(var e=[],n=0;n<c.dualMultiselectOptions.items.length;n++)e.push(c.dualMultiselectOptions.items[n]),c.dualMultiselectOptions.selectedItems.push(c.dualMultiselectOptions.items[n]);c.dualMultiselectOptions.items=[],c.dualMultiselectOptions.transferCallback(e,!1)}h(!0)},c.onChangeReportType=function(){c.treeStructure="default"===c.selectedSection.reportType?c.treeReports[0]?angular.fromJson(c.treeReports[0].tree):[]:c.treeReports[1]?angular.fromJson(c.treeReports[1].tree):[],c.selectedSection.selectedItems&&(c.allReportsSelected=b(c.allReportsSelected),A());g()},c.setPermission=function(e){"edit"===e?c.selectedSection.allowEdit=!c.selectedSection.allowEdit:"delete"===e&&(c.selectedSection.allowDelete=!c.selectedSection.allowDelete);c.selectedSection.crudPermissions=v(),h(!0)},c.saveSection=function(){var a="Marketplace"===c.section.title?"AppZone":c.section.title,e=_(c.subsections).filter({pending:!0}).map(function(e){var n="CallySquare"===a&&"Projects"===e.title?"SquareProjects":e.title,t="Reports"===n?c.allReportsSelected:e.selectedItems;return"Integrations"===a&&(e.autoAssociation=!0),{category:a,sectionId:e.id,name:n,enabled:e.enabled,autoAssociation:e.autoAssociation,crudPermissions:_.map(e.crudPermissions).join(""),Resources:_.map(t,function(e){return{name:e.name,resourceId:e.id,type:function(e,n){if("Reports"!==e)return e;{if(n.parent){var t=_.startsWith(n.parent,"motion")?"Default":"Custom";return t+e}return n.type}}(n,e)}})}}).value();return r.userProfile.addSections({id:c.userProfile.id},e).$promise.then(function(){c.subsections.forEach(function(e){e.pending=void 0}),c.associatedReports=null,f(),"Reports"!==c.selectedSection.title||c.selectedSection.reportType||n.userProfileForm.$setPristine(),o.success({title:l.instant("STAFF.NOTIFICATIONS.PERMISSIONS_SAVED_SUCCESS_TITLE",{sectionName:l.instant(a.translate)}),msg:l.instant("STAFF.NOTIFICATIONS.PERMISSIONS_SAVED_SUCCESS_MESSAGE")})}).then(function(){return m().then(function(e){c.loadedSection=e})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:USERPROFILE.ADDSECTIONS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",line4:"fullPath",labelAll:l.instant("STAFF.PERMISSIONS_ALL_RESOURCES"),labelSelected:l.instant("STAFF.PERMISSIONS_SELECTED_RESOURCES"),transferCallback:function(e,n){h(!0),n?(c.selectedSection.selectedItems=_.pullAllBy(c.selectedSection.selectedItems,e,"id"),c.selectedSection.autoAssociation=!1):c.selectedSection.selectedItems=_.unionBy(c.selectedSection.selectedItems,e,"id"),"Reports"===c.selectedSection.title&&A()}}}e.$inject=["$scope","$mdDialog","$q","toasty","api","userProfile","userProfiles","$translate","Auth","section"],angular.module("app.staff").controller("UserProfilepermissionsmanageController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.userProfile=c||e.params.userProfile||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.permissionsmanagedialog=function(e,n){t.show({controller:"UserProfilepermissionsmanageController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/userProfiles/edit/permissionsmanage/permissionsmanage.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{userProfile:e,userProfiles:u.userProfiles?u.userProfiles.rows:[],crudPermissions:u.crudPermissions}})},u.clonedialog=function(e,n){t.show({controller:"UserProfilecloneController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/userProfiles/edit/clone/clone.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{userProfile:e,userProfiles:u.userProfiles?u.userProfiles.rows:[],crudPermissions:u.crudPermissions}})},u.alert=l.info,u.gotoUserProfiles=function(){e.go("app.staff.userProfiles",{},{reload:"app.staff.userProfiles"})},u.saveUserProfile=function(){r.userProfile.update({id:u.userProfile.id},u.userProfile).$promise.then(function(){l.success({title:"UserProfile updated!",msg:u.userProfile.name?u.userProfile.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETuserProfile",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","userProfile","userProfileSection"],angular.module("app.staff").controller("UserProfileController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.userProfiles=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="userProfiles",f.listOrder="",f.listOrderAsc=null,f.selectedUserProfiles=[],f.query={fields:"createdAt,updatedAt,id,name,description,crudPermissions,privacyEnabled,downloadAttachments,downloadCallySquareRecordings,downloadContactManagerLists,downloadJscriptySessions,downloadOmnichannelInteractions,downloadScreenRecordings,downloadVoiceRecordings",sort:"-updatedAt",limit:10,page:1},f.arraycrudPermissions=_.keyBy([{option:"Read_permission",value:"'r'",disabled:!0},{option:"Edit_permission",value:"'e'"},{option:"Delete_permission",value:"'d'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.userProfiles&&0<f.userProfiles.count&&f.userProfiles.rows.forEach(function(e){var n=[];e.crudPermissions.forEach(function(e){n.push(f.arraycrudPermissions[e].option)});var t=[];n.forEach(function(e){t.push(r.instant("STAFF."+e.toUpperCase()))}),e.selectedcrudPermissions=t.join(", ")}),f.editstate=function(e,n){t.go("app.staff.userProfiles.edit",{id:e.id,userProfile:e,crudPermissions:f.crudPermissions})},f.clonedialog=function(e,n){i.show({controller:"UserProfilecloneController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/userProfiles/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{userProfile:e,userProfiles:f.userProfiles?f.userProfiles.rows:[],crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("userProfile")+"?").htmlContent("<b>"+(e.name||"userProfile")+"</b> will be deleted.").ariaLabel("delete userProfile").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getUserProfiles=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.userProfile.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="UserProfiles",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditUserProfile=function(e,n){i.show({controller:"CreateOrEditUserProfileDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/userProfiles/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{userProfile:n,userProfiles:f.userProfiles.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteUserProfile=y,f.exportSelectedUserProfiles=function(){var e=angular.copy(f.selectedUserProfiles);return f.selectedUserProfiles=[],e},f.deleteSelectedUserProfiles=function(e){var n=i.confirm().title("Are you sure want to delete the selected userProfiles?").htmlContent("<b>"+f.selectedUserProfiles.length+" selected</b> will be deleted.").ariaLabel("delete UserProfiles").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedUserProfiles.forEach(function(e){y(e)}),f.selectedUserProfiles=[]})},f.deselectUserProfiles=function(){f.selectedUserProfiles=[]},f.selectAllUserProfiles=function(){f.selectedUserProfiles=f.userProfiles.rows};var b=!0,A=1;function E(e){f.userProfiles=e||{count:0,rows:[]}}function y(e){m.userProfile.delete({id:e.id}).$promise.then(function(){_.remove(f.userProfiles.rows,{id:e.id}),f.userProfiles.count-=1,f.userProfiles.rows.length||f.getUserProfiles(),p.success({title:_.startCase("UserProfile")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEuserProfile"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEuserProfile",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getUserProfiles())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","userProfiles","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.staff").controller("UserProfilesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="STAFF.EDIT_USER",g.user=angular.copy(l),g.users=r,g.newUser=!1,g.user||(g.user={role:"user",autointernal:!0,context:"from-sip"},g.title="STAFF.NEW_USER",g.newUser=!0),g.addNewUser=function(){g.errors=[],d.user.save(g.user).$promise.then(function(e){g.users.unshift(e.toJSON()),o.success({title:"User properly created",msg:g.user.name?g.user.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveUser=function(){g.errors=[],d.user.update({id:g.user.id},g.user).$promise.then(function(e){var n=_.find(g.users,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"User properly saved!",msg:g.user.name?g.user.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteUser=function(e){if(c.getCurrentUser().id===g.user.id)return o.error({title:"User not deleted!",msg:"You can't remove yourself"});g.errors=[];var n=a.confirm().title("Are you sure?").content("The user will be deleted.").ariaLabel("Delete User").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.user.delete({id:g.user.id}).$promise.then(function(){_.remove(g.users,{id:g.user.id}),o.success({title:"User properly deleted!",msg:(g.user.name||"user")+" has been deleted!"}),v(g.user)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,d.userProfile.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.userProfiles=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_USERPROFILES",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","users","user","api","Auth","license","setting","crudPermissions"],angular.module("app.staff").controller("CreateOrEditUserDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i){var s=this;function o(){e.hide()}s.currentUser=i.getCurrentUser(),s.errors=[],s.user=a,s.generateApiKey=function(){s.errors=[],t.user.createApiKey({id:s.user.id}).$promise.then(function(e){s.user.apiKey=e.api_key||"N/A",n.success({title:"User API key updated!"}),o()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.createApiKey",msg:e.data?JSON.stringify(e.data.message):e.toString()}),s.errors=e.data.errors||[{message:e.toString(),type:"api.user.createApiKey"}]})},s.removeApiKey=function(){s.errors=[],t.user.removeApiKey({id:s.user.id}).$promise.then(function(){s.user.apiKey="N/A",n.success({title:"User API key removed!"}),o()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.removeApiKey",msg:e.data?JSON.stringify(e.data.message):e.toString()}),s.errors=e.data.errors||[{message:e.toString(),type:"api.user.removeApiKey"}]})},s.closeDialog=o}e.$inject=["$mdDialog","toasty","api","user","Auth"],angular.module("app.staff").controller("UserapikeymanagerController",e)}(),function(){"use strict";function e(e,a){var i=this;i.user={},i.crudPermissions,i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.user.images.unshift(t),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.user.images,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e,n){i.user=angular.copy(e),i.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.ngFlowOptions.target="api/users/"+i.user.id+"/avatar",i.user.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.staff").controller("Userchange_avatarController",e)}(),function(){"use strict";function e(t,e,n,a,i,s,o){var r=this;function l(){e.hide()}r.currentUser=o.getCurrentUser(),r.errors=[],r.setting=s,r.passwordPattern=r.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",r.user=i,r.password="",r.oldPassword="",r.savePassword=function(){r.errors=[];var e={id:r.user.id,newPassword:r.password};r.currentUser.id==r.user.id&&(e.oldPassword=r.oldPassword);a.user.changePassword(e).$promise.then(function(){n.success({title:"User password properly updated!"}),l()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.save",msg:e.data?JSON.stringify(e.data.message):e.toString()}),r.errors=e.data.errors||[{message:e.toString(),type:"api.user.changePassword"}]})},r.closeDialog=l,t.$watch("vm.password",function(e,n){_.isNil(r.oldPassword)||(e===r.oldPassword?t.userForm.password.$setValidity("oldPasswordMatch",!1):t.userForm.password.$setValidity("oldPasswordMatch",!0))})}e.$inject=["$scope","$mdDialog","toasty","api","user","setting","Auth"],angular.module("app.staff").controller("UserchangepasswordController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.user=c||e.params.user||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.apikeymanagerdialog=function(e,n){t.show({controller:"UserapikeymanagerController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/users/edit/apikeymanager/apikeymanager.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{user:e,users:u.users?u.users.rows:[],crudPermissions:u.crudPermissions}})},u.changepassworddialog=function(e,n){t.show({controller:"UserchangepasswordController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/users/edit/changepassword/changepassword.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{user:e,setting:o,users:u.users?u.users.rows:[],crudPermissions:u.crudPermissions}})},u.alert=l.info,u.gotoUsers=function(){e.go("app.staff.users",{},{reload:"app.staff.users"})},u.saveUser=function(){u.user=_.omit(u.user,"userpic"),r.user.update({id:u.user.id},u.user).$promise.then(function(){l.success({title:"User updated!",msg:u.user.name?u.user.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETuser",msg:e.data?JSON.stringify(e.data):e.toString()})})},r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_CONTEXTS",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.userProfile.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.userProfiles=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_USERPROFILES",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.user.getApiKey({id:u.user.id}).$promise.then(function(e){u.user.apiKey=e.api_key?e.api_key:"N/A"}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_APIKEY",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","user","userProfileSection"],angular.module("app.staff").controller("UserController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.users=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="users",f.listOrder="",f.listOrderAsc=null,f.selectedUsers=[],f.query={fields:"createdAt,updatedAt,role,userProfileId,id,fullname,name,email,phone,mobile,userpic,password,description,autointernal,internal,transport,nat,allow,context,callgroup,pickupgroup,passwordResetAt,apiKey,videosupport,disabled,blocked",role:"admin,user",sort:"-updatedAt",limit:10,page:1},f.arrayrole=_.keyBy([{option:"Admin",value:"'admin'"},{option:"User",value:"'user'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraytransport=_.keyBy([{option:"udp",value:"'udp'"},{option:"tcp",value:"'tcp'"},{option:"ws",value:"'ws'"},{option:"wss",value:"'wss'"},{option:"tls",value:"'tls'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraynat=_.keyBy([{option:"force_rport",value:"'force_rport'"},{option:"comedia",value:"'comedia'"},{option:"yes",value:"'yes'"},{option:"no",value:"'no'"},{option:"never",value:"'never'"},{option:"route",value:"'route'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayallow=_.keyBy([{option:"ulaw",value:"'ulaw'"},{option:"alaw",value:"'alaw'"},{option:"gsm",value:"'gsm'"},{option:"g722",value:"'g722'"},{option:"g729",value:"'g729'"},{option:"opus",value:"'opus'"},{option:"h264",value:"'h264'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayvideosupport=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"},{option:"Always",value:"'always'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.staff.users.edit",{id:e.id,user:e,crudPermissions:f.crudPermissions})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("user")+"?").htmlContent("<b>"+(e.name||"user")+"</b> will be deleted.").ariaLabel("delete user").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getUsers=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.user.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Users",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditUser=function(e,n){i.show({controller:"CreateOrEditUserDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/users/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{user:n,users:f.users.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteUser=y,f.exportSelectedUsers=function(){var e=angular.copy(f.selectedUsers);return f.selectedUsers=[],e},f.deleteSelectedUsers=function(e){var n=i.confirm().title("Are you sure want to delete the selected users?").htmlContent("<b>"+f.selectedUsers.length+" selected</b> will be deleted.").ariaLabel("delete Users").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedUsers.forEach(function(e){y(e)}),f.selectedUsers=[]})},f.deselectUsers=function(){f.selectedUsers=[]},f.selectAllUsers=function(){f.selectedUsers=f.users.rows},m.userProfile.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.userProfiles=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_USERPROFILES",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.users=e||{count:0,rows:[]}}function y(e){m.user.delete({id:e.id}).$promise.then(function(){_.remove(f.users.rows,{id:e.id}),f.users.count-=1,f.users.rows.length||f.getUsers(),p.success({title:_.startCase("User")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEuser"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEuser",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getUsers())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","users","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.staff").controller("UsersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.cannedAnswers=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="cannedAnswers",f.listOrder="",f.listOrderAsc=null,f.selectedCannedAnswers=[],f.query={fields:"createdAt,updatedAt,id,key,value,description",sort:"-updatedAt",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/cannedAnswers/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{cannedAnswer:e,cannedAnswers:f.cannedAnswers.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("cannedAnswer")+"?").htmlContent("<b>"+(e.name||"cannedAnswer")+"</b> will be deleted.").ariaLabel("delete cannedAnswer").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getCannedAnswers=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.cannedAnswer.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="CannedAnswers",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditCannedAnswer=function(e,n){i.show({controller:"CreateOrEditCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/cannedAnswers/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{cannedAnswer:n,cannedAnswers:f.cannedAnswers.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteCannedAnswer=y,f.exportSelectedCannedAnswers=function(){var e=angular.copy(f.selectedCannedAnswers);return f.selectedCannedAnswers=[],e},f.deleteSelectedCannedAnswers=function(e){var n=i.confirm().title("Are you sure want to delete the selected cannedAnswers?").htmlContent("<b>"+f.selectedCannedAnswers.length+" selected</b> will be deleted.").ariaLabel("delete CannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedCannedAnswers.forEach(function(e){y(e)}),f.selectedCannedAnswers=[]})},f.deselectCannedAnswers=function(){f.selectedCannedAnswers=[]},f.selectAllCannedAnswers=function(){f.selectedCannedAnswers=f.cannedAnswers.rows};var b=!0,A=1;function E(e){f.cannedAnswers=e||{count:0,rows:[]}}function y(e){m.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(f.cannedAnswers.rows,{id:e.id}),f.cannedAnswers.count-=1,f.cannedAnswers.rows.length||f.getCannedAnswers(),p.success({title:_.startCase("CannedAnswer")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEcannedAnswer"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEcannedAnswer",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getCannedAnswers())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","cannedAnswers","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("CannedAnswersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_CANNEDANSWER",g.cannedAnswer=angular.copy(l),g.cannedAnswers=r,g.newCannedAnswer=!1,g.cannedAnswer||(g.cannedAnswer={},g.title="TOOLS.NEW_CANNEDANSWER",g.newCannedAnswer=!0),g.addNewCannedAnswer=function(){g.errors=[],d.cannedAnswer.save(g.cannedAnswer).$promise.then(function(e){g.cannedAnswers.unshift(e.toJSON()),o.success({title:"CannedAnswer properly created",msg:g.cannedAnswer.name?g.cannedAnswer.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveCannedAnswer=function(){g.errors=[],d.cannedAnswer.update({id:g.cannedAnswer.id},g.cannedAnswer).$promise.then(function(e){var n=_.find(g.cannedAnswers,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"CannedAnswer properly saved!",msg:g.cannedAnswer.name?g.cannedAnswer.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteCannedAnswer=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The cannedAnswer will be deleted.").ariaLabel("Delete CannedAnswer").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cannedAnswer.delete({id:g.cannedAnswer.id}).$promise.then(function(){_.remove(g.cannedAnswers,{id:g.cannedAnswer.id}),o.success({title:"CannedAnswer properly deleted!",msg:(g.cannedAnswer.name||"cannedAnswer")+" has been deleted!"}),v(g.cannedAnswer)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","cannedAnswers","cannedAnswer","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditCannedAnswerDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_CUSTOMDASHBOARD",g.customDashboard=angular.copy(l),g.customDashboards=r,g.newCustomDashboard=!1,g.customDashboard||(g.customDashboard={},g.title="TOOLS.NEW_CUSTOMDASHBOARD",g.newCustomDashboard=!0),g.addNewCustomDashboard=function(){g.errors=[],d.dashboard.save(g.customDashboard).$promise.then(function(e){g.customDashboards.unshift(e.toJSON()),o.success({title:"CustomDashboard properly created",msg:g.customDashboard.name?g.customDashboard.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.dashboard.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.dashboard.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveCustomDashboard=function(){g.errors=[],d.dashboard.update({id:g.customDashboard.id},g.customDashboard).$promise.then(function(e){var n=_.find(g.customDashboards,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"CustomDashboard properly saved!",msg:g.customDashboard.name?g.customDashboard.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.dashboard.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.dashboard.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteCustomDashboard=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The customDashboard will be deleted.").ariaLabel("Delete CustomDashboard").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.dashboard.delete({id:g.customDashboard.id}).$promise.then(function(){_.remove(g.customDashboards,{id:g.customDashboard.id}),o.success({title:"CustomDashboard properly deleted!",msg:(g.customDashboard.name||"customDashboard")+" has been deleted!"}),v(g.customDashboard)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.dashboard.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.dashboard.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","customDashboards","customDashboard","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditCustomDashboardDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.customDashboards=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="customDashboards",f.listOrder="",f.listOrderAsc=null,f.selectedCustomDashboards=[],f.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.tools.customDashboards.edit",{id:e.id,customDashboard:e,crudPermissions:f.crudPermissions})},f.clonedialog=function(e,n){i.show({controller:"CustomDashboardcloneController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/customDashboards/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{customDashboard:e,customDashboards:f.customDashboards?f.customDashboards.rows:[],crudPermissions:f.crudPermissions}})},f.gotodashboardgoto=function(e,n){t.go("app.dashboards.custom",{id:e.id})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("customDashboard")+"?").htmlContent("<b>"+(e.name||"customDashboard")+"</b> will be deleted.").ariaLabel("delete customDashboard").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getCustomDashboards=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.dashboard.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="CustomDashboards",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditCustomDashboard=function(e,n){i.show({controller:"CreateOrEditCustomDashboardDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/customDashboards/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{customDashboard:n,customDashboards:f.customDashboards.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteCustomDashboard=y,f.exportSelectedCustomDashboards=function(){var e=angular.copy(f.selectedCustomDashboards);return f.selectedCustomDashboards=[],e},f.deleteSelectedCustomDashboards=function(e){var n=i.confirm().title("Are you sure want to delete the selected customDashboards?").htmlContent("<b>"+f.selectedCustomDashboards.length+" selected</b> will be deleted.").ariaLabel("delete CustomDashboards").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedCustomDashboards.forEach(function(e){y(e)}),f.selectedCustomDashboards=[]})},f.deselectCustomDashboards=function(){f.selectedCustomDashboards=[]},f.selectAllCustomDashboards=function(){f.selectedCustomDashboards=f.customDashboards.rows};var b=!0,A=1;function E(e){f.customDashboards=e||{count:0,rows:[]}}function y(e){m.dashboard.delete({id:e.id}).$promise.then(function(){_.remove(f.customDashboards.rows,{id:e.id}),f.customDashboards.count-=1,f.customDashboards.rows.length||f.getCustomDashboards(),p.success({title:_.startCase("CustomDashboard")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdashboard"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdashboard",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getCustomDashboards())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","customDashboards","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("CustomDashboardsController",e)}(),function(){"use strict";function e(n,t,a,e,i,s,o){var r=this;function l(e){n.hide(e)}r.newCustomDashboard=!0,r.customDashboard=angular.copy(i),r.customDashboards=s,r.title=o.instant("TOOLS.CLONE_CUSTOMDASHBOARD"),i&&i.name&&(r.title+=": "+i.name),r.cloneCustomDashboard=function(){return e.dashboard.clone({id:i.id,includeAll:!0},r.customDashboard).$promise.then(function(e){r.customDashboards.unshift(e.toJSON()),a.success({title:"CustomDashboard properly cloned",msg:r.customDashboard.name?r.customDashboard.name+" has been cloned!":""}),t.go("app.tools.customDashboards.edit",{id:e.id}),l(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){r.errors=e.data.errors||[{message:e.toString(),type:"api.dashboard.clone"}];for(var n=0;n<e.data.errors.length;n+=1)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.dashboard.clone",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},r.closeDialog=l}e.$inject=["$mdDialog","$state","toasty","api","customDashboard","customDashboards","$translate"],angular.module("app.tools").controller("CustomDashboardcloneController",e)}(),function(){"use strict";function e(t,a,e,i,s){var o=this;function r(e,n,t){return s.dashboardItem.update(t).$promise.catch(function(e){console.error(e)})}o.customDashboard={},o.voiceQueues=s.rpc.getVoiceQueues({fields:"id,name"}),o.init=function(e,n){return o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},o.customDashboard=e,o.customDashboard.draggable={enabled:!0,handle:".draggable",stop:r},o.customDashboard.resizable={enabled:!0,handle:".resizable",stop:r},o.customDashboard.widgets=[],s.dashboard.getItems({id:e.id}).$promise.then(function(e){if(e&&e.count&&e.rows)for(var n=0;n<e.rows.length;n+=1)e.rows[n].voiceQueues=o.voiceQueues,e.rows[n].voiceQueuesSelected=_.map(o.voiceQueues.rows,"id"),e.rows[n].templateUrl="app/core/directives/ms-widget-engine/ms-widget-engine-"+e.rows[n].type+"/ms-widget-engine."+e.rows[n].type+".html",o.customDashboard.widgets.push(e.rows[n])}).catch(function(e){console.error(e)})},o.createOrEditWidget=function(e){if(e&&e.attrs)for(var n=0;n<e.attrs.length;n+=1)"attrReport"===e.attrs[n].name&&(e.reportType=e.attrs[n].type),e[e.attrs[n].name]=e.attrs[n].value;t.show({controller:"CreateOrEditDashboardItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/customDashboards/edit/dashboard/dialog.html",parent:angular.element(a.body),clickOutsideToClose:!0,locals:{dashboarditem:e,dashboard:o.customDashboard.widgets,license:null,setting:null,crudPermissions:o.crudPermissions}}).then(function(e){if(e)for(var n=0;n<o.customDashboard.widgets.length;n+=1)o.customDashboard.widgets[n].id===e.id&&(o.customDashboard.widgets[n].attrs=e.attrs,o.customDashboard.widgets[n].voiceQueues=o.voiceQueues,o.customDashboard.widgets[n].voiceQueuesSelected=_.map(o.voiceQueues.rows,"id"),o.customDashboard.widgets[n].templateUrl="app/core/directives/ms-widget-engine/ms-widget-engine-"+o.customDashboard.widgets[n].type+"/ms-widget-engine."+o.customDashboard.widgets[n].type+".html")})},o.deleteWidget=function(n){var e=t.confirm().title("Would you like to delete "+n.title+"?").textContent("").ariaLabel("Delete Widget").ok("YES").cancel("NO");t.show(e).then(function(){return s.dashboardItem.delete({id:n.id}).$promise.then(function(e){_.remove(o.customDashboard.widgets,{id:n.id}),i.success({title:"Widget deleted!",msg:n.name?n.name+" has been deleted!":"Widget has been deleted!"})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){o.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETE.customDashboard"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdashboard",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()});console.error(e)})})}}e.$inject=["$mdDialog","$document","socket","toasty","api"],angular.module("app.tools").controller("CustomDashboardItemsController",e)}(),function(){"use strict";function e(n,e,t,a,o,i,s,r,l,d,c,m,u,p){var g=this;g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_DASHBOARDITEM",g.dashboarditem=angular.copy(l),g.dashboard=r,g.newDashboardItem=!1,g.selectedReport=[],g.query={fields:"createdAt,updatedAt,id,name,description,table,parent,conditions,joins",limit:10,page:1,sort:"-updatedAt"},g.dashboarditem?"web-report"==g.dashboarditem.type&&(g.apiName="custom"===g.dashboarditem.reportType?"analyticCustomReport":"analyticDefaultReport",d[g.apiName].get({fields:"id,name,parent"}).$promise.then(function(e){g.currentReport=_.find(e.rows,{id:g.dashboarditem.attrReport}),g.dashboarditem.report=g.currentReport.name,g.query.parent=g.currentReport.parent})):(g.dashboarditem={type:"counter",titleFontSize:12,attrUrl:"https://",attrHourFormat:"HH:mm:ss",attrTimezone:"0.00",attrMetric:"total",attrSerie1:"total",attrSerie2:"null",attrSerie3:"null",attrRefresh:10,attrFontSize:20,foreground:"#2196f3",background:"#ffffff"},g.title="TOOLS.NEW_DASHBOARDITEM",g.newDashboardItem=!0),g.addNewDashboardItem=function(){g.errors=[],d.dashboard.addItem({id:e.params.id},g.dashboarditem).$promise.then(function(e){g.dashboard.unshift(e.toJSON()),s.success({title:"DashboardItem properly created",msg:g.dashboarditem.name?g.dashboarditem.name+" has been created!":""}),I(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.dashboardItem.save"}];for(var n=0;n<e.data.errors.length;n+=1)s.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.dashboardItem.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveDashboardItem=function(){g.errors=[],d.dashboardItem.update({id:g.dashboarditem.id},g.dashboarditem).$promise.then(function(e){var n=_.find(g.dashboard,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),s.success({title:"DashboardItem properly saved!",msg:g.dashboarditem.name?g.dashboarditem.name+" has been saved!":""}),I(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.dashboardItem.update"}];for(var n=0;n<e.data.errors.length;n++)s.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.dashboardItem.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteDashboardItem=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The dashboarditem will be deleted.").ariaLabel("Delete DashboardItem").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.dashboardItem.delete({id:g.dashboarditem.id}).$promise.then(function(){_.remove(g.dashboard,{id:g.dashboarditem.id}),s.success({title:"DashboardItem properly deleted!",msg:(g.dashboarditem.name||"dashboarditem")+" has been deleted!"}),I(g.dashboarditem)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.dashboardItem.delete"}];for(var n=0;n<e.data.errors.length;n++)s.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.dashboardItem.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.getReports=S,g.selectReport=function(){if(g.dashboarditem.report=g.selectedReport[0].name,g.dashboarditem.attrReport=g.selectedReport[0].id,g.dashboarditem.reportType=g.currentNode.custom?"custom":"default",!g.newDashboardItem){var e={name:"attrReport",type:g.dashboarditem.reportType,value:g.selectedReport[0].id};g.dashboarditem.attrs.splice(_.findIndex(g.dashboarditem.attrs,1,e))}n.dashboarditemForm.report.$setDirty(),a.hide()},g.closeReportDialog=function(){a.hide()},g.searchReport=function(){g.treeDefaultData=g.treeReports[0]?angular.fromJson(g.treeReports[0].tree):[],g.treeCustomData=g.treeReports[1]?angular.fromJson(g.treeReports[1].tree):[],g.treeConfig=(n={core:{multiple:!1,animation:!0,error:function(e){console.error("treeCtrl: error from js tree - "+angular.toJson(e))},check_callback:!0,worker:!0},version:1,plugins:["wholerow"]},"admin"!==g.currentUser.role?d.userProfileSection.get({fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:g.currentUser.userProfileId,sectionId:1203}).$promise.then(function(e){return g.userProfileSection=e&&1==e.count?e.rows[0]:null,n}).catch(function(e){s.error({title:"ERROR",msg:e.message})}):n),g.treeDefaultEvents=f(!1),g.treeCustomEvents=f(!0),a.show({controller:function(){return g},controllerAs:"vm",templateUrl:"app/main/apps/tools/views/customDashboards/partialViews/reports/treeReports.html",autoWrap:!0,skipHide:!0});var n},g.closeDialog=I,d.analyticTreeReport.get({}).$promise.then(function(e){g.treeReports=e.rows||[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TREEREPORTS",msg:e.data?JSON.stringify(e.data):e.toString()})});var v=[{id:401,type:"inbound"},{id:1501,type:"outbound"}],h=null;function f(e){return e?{loaded:E,select_node:b}:{loaded:y,select_node:A}}function b(e,n){g.treeDefaultInstance.jstree(!0).deselect_all(),g.treeDefaultInstance.jstree(!0).close_all(),g.currentNode=n.node,g.currentNode.custom=!0,g.currentPath=g.treeCustomInstance.jstree(!0).get_path(g.currentNode).join("/ "),g.apiName="analyticCustomReport",g.query.parent=n.node.id,S()}function A(e,n){g.treeCustomInstance.jstree(!0).deselect_all(),g.treeCustomInstance.jstree(!0).close_all(),g.currentNode=n.node,g.currentNode.custom=!1,g.currentPath=g.treeDefaultInstance.jstree(!0).get_path(g.currentNode).join("/ "),g.apiName="analyticDefaultReport",g.query.parent=n.node.id,S()}function E(){if(!g.newDashboardItem&&"analyticCustomReport"===g.apiName){var e=g.treeCustomInstance.jstree(!0).get_node(g.query.parent);b(0,{node:e,selected:e.id})}}function y(){if(!g.newDashboardItem&&"analyticDefaultReport"===g.apiName){var e=g.treeDefaultInstance.jstree(!0).get_node(g.query.parent);A(0,{node:e,selected:e.id})}}function S(){if(g.query.offset=(g.query.page-1)*g.query.limit,g.apiName)if("admin"===g.currentUser.role)g.promise=d[g.apiName].get(g.query,T).$promise;else{if(!g.userProfileSection)return T(null);if(g.userProfileSection.autoAssociation)g.promise=d[g.apiName].get(g.query,T).$promise;else{var a=[];g.promise=d[g.apiName].get(g.query).$promise.then(function(e){return 0<(a=e&&e.rows?e.rows:[]).length?d.userProfileResource.get({sectionId:g.userProfileSection.id,type:"analyticDefaultReport"===g.apiName?"DefaultReports":"CustomReports"}).$promise.then(function(e){var n=e&&e.rows?e.rows:[];if(0<n.length){var t=[];return a.forEach(function(e){_.find(n,["resourceId",e.id])&&t.push(e)}),T({count:t.length,rows:t})}return T(null)}):T(null)}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_REPORTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}}}function T(e){g.reports=e||{count:0,rows:[]},g.newDashboardItem||g.selectedReport.push(_.find(g.reports.rows,{id:g.currentReport.id}))}function I(e){a.hide(e)}c.hasRole("admin")?d.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){g.voiceQueues=e.rows||[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VOICEQUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){h=e.rows||[]}).then(function(){for(var e=[],n=0;n<v.length;n++)e.push(d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:v[n].id}).$promise);return o.all(e)}).then(function(e){for(var n=_.map(e,function(e){return e&&e.rows?e.rows[0]:null}),t=[],a=0;a<v.length;a++){var i=_.find(n,["sectionId",v[a].id]);if(i)if(i.autoAssociation){var s=[];h.forEach(function(e){e.type===v[a].type&&s.push(e)}),t.push({rows:s,count:s.length})}else t.push(d.userProfileResource.get({sectionId:i.id}).$promise)}return o.all(t)}).then(function(e){var n=[],t=null;g.dashboarditem&&(t=_.find(h,{id:Number(g.dashboarditem.attrVoiceQueues)}));for(var a=0;a<e.length;a++){(e[a].rows||[]).forEach(function(e){n.push(e)})}t&&!_.some(n,["resourceId",t.id])&&h.forEach(function(e){e.id===t.id&&(e.canSelect=!1,n.push(e))}),g.voiceQueues=n}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","dashboard","dashboarditem","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditDashboardItemDialogController",e)}(),function(){"use strict";function e(t,e,a,i,n,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=e.protocol()+"://"+e.host(),u.customDashboard=c||t.params.customDashboard||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=t.params.tab||0,u.clonedialog=function(e,n){a.show({controller:"CustomDashboardcloneController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/customDashboards/edit/clone/clone.html",parent:angular.element(i.body),targetEvent:n,clickOutsideToClose:!0,locals:{customDashboard:e,customDashboards:u.customDashboards?u.customDashboards.rows:[],crudPermissions:u.crudPermissions}})},u.gotogoto=function(e,n){t.go("app.dashboards.custom",{id:e.id})},u.alert=l.info,u.gotoCustomDashboards=function(){t.go("app.tools.customDashboards",{},{reload:"app.tools.customDashboards"})},u.saveCustomDashboard=function(){r.dashboard.update({id:u.customDashboard.id},u.customDashboard).$promise.then(function(){l.success({title:"CustomDashboard updated!",msg:u.customDashboard.name?u.customDashboard.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETdashboard",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","customDashboard","userProfileSection"],angular.module("app.tools").controller("CustomDashboardController",e)}(),function(){"use strict";function e(a,i,o,r,e,l,d,n,t,s,c){var m=this;if(m.currentUser=n.getCurrentUser(),m.disposition=angular.copy(e),m.setting=c,m.license=s,m.crudPermissions=t,m.newDisposition=!1,m.errors=[],m.disposition||(m.disposition={level:"first"},m.newDisposition=!0),l){var u=l.field;m.disposition[u]=l.id}function p(){return o(function(t,n){d.disposition.get({fields:"id,name,level,ParentId",sort:"id",nolimit:"true"}).$promise.then(function(e){var n=e.rows||[];return t(n)}).catch(function(e){n(e)})})}function g(e){"first"===e.level?m.firstLevelDisposition=e:(m.anySecondLevelDisposition=!0,m.secondLevelDisposition=e,m.firstLevelDisposition=_.find(m.dispositions,["id",m.secondLevelDisposition.ParentId]),m.firstLevelDisposition||p().then(function(){m.firstLevelDisposition=_.find(m.allDispositions,["id",m.secondLevelDisposition.ParentId]),m.firstLevelDisposition.canSelect=!1,m.dispositions.push(m.firstLevelDisposition)}))}function v(e){a.hide(e)}m.onInit=function(){var n="disposition";l?n=l.route:"user"===m.currentUser.role&&(n="userProfile");var t="get";l?t="getDispositions":"user"===m.currentUser.role&&(t="getResources");var e={fields:"id,name,level,ParentId",id:l?l.id:void 0,section:"user"===m.currentUser.role?"Dispositions":void 0,MailAccountId:l?void 0:"null",FaxAccountId:l?void 0:"null",SmsAccountId:l?void 0:"null",OpenchannelAccountId:l?void 0:"null",ChatWebsiteId:l?void 0:"null",WhatsappAccountId:l?void 0:"null",ListId:l?void 0:"null",sort:"id",nolimit:"true"};(a=n,i=t,s=e,o(function(t,n){d[a][i](s).$promise.then(function(e){var n=e.rows||[];return t(n)}).catch(function(e){n(e)})})).then(function(e){m.dispositions=angular.copy(e),m.newDisposition||function(){if("first"===m.disposition.level)return;if(m.parentDisposition=_.find(m.dispositions,["id",m.disposition.ParentId]),!m.parentDisposition)return p().then(function(e){m.allDispositions=e;for(var n=0;n<m.allDispositions.length;n++){var t=m.allDispositions[n];if(t.id===m.disposition.ParentId){g(t),t.canSelect=!1,m.dispositions.push(t);break}}});g(m.parentDisposition)}()}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:["api",n,t].join(":"),msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})});var a,i,s},m.onFirstLevelSelection=function(){m.secondLevelDisposition=void 0,m.anySecondLevelDisposition=_.some(m.dispositions,function(e){return e.ParentId===m.firstLevelDisposition.id&&e.id!=m.disposition.id})},m.addNewDisposition=function(){m.errors=[],m.secondLevelDisposition?(m.disposition.ParentId=m.secondLevelDisposition.id,m.disposition.level="third"):m.firstLevelDisposition&&(m.disposition.ParentId=m.firstLevelDisposition.id,m.disposition.level="second");d.disposition.save(m.disposition).$promise.then(function(e){m.dispositions.unshift(e.toJSON()),r.success({title:i.instant("TOOLS.NOTIFICATIONS.DISPOSITION_CREATED_SUCCESS_TITLE")}),v(!0)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.save"}];for(var n=0;n<e.data.errors.length;n+=1)r.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.disposition.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.saveDisposition=function(){m.errors=[],m.secondLevelDisposition?(m.disposition.ParentId=m.secondLevelDisposition.id,m.disposition.level="third"):m.firstLevelDisposition&&(m.disposition.ParentId=m.firstLevelDisposition.id,m.disposition.level="second");d.disposition.update({id:m.disposition.id},m.disposition).$promise.then(function(e){var n=_.find(m.dispositions,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),r.success({title:i.instant("TOOLS.NOTIFICATIONS.DISPOSITION_SAVED_SUCCESS_TITLE")}),v(!0)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.update"}];for(var n=0;n<e.data.errors.length;n++)r.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.disposition.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.deleteDisposition=function(e){m.errors=[];var n=_.some(m.dispositions,["ParentId",m.disposition.id]),t=a.confirm({skipHide:!0}).title(i.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(i.instant("TOOLS.NOTIFICATIONS."+(n?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:m.disposition.name})).ariaLabel("Delete disposition").ok(i.instant("TOOLS.DELETE")).cancel(i.instant("TOOLS.CANCEL")).targetEvent(e);a.show(t).then(function(){d.disposition.delete({id:m.disposition.id}).$promise.then(function(){r.success({title:i.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")}),v(!0)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.delete"}];for(var n=0;n<e.data.errors.length;n++)r.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.disposition.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})})},m.clearSelection=function(e){"first"===e?(m.firstLevelDisposition=void 0,m.secondLevelDisposition=void 0,m.anySecondLevelDisposition=!1):m.secondLevelDisposition=void 0},m.closeDialog=v}e.$inject=["$mdDialog","$translate","$q","toasty","disposition","model","api","Auth","crudPermissions","license","setting"],angular.module("app.tools").controller("CreateOrEditDispositionDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v){var h=this;function f(e){h.dispositions=e||{count:0,rows:[]}}function b(){h.query.offset=(h.query.page-1)*h.query.limit,p.isAdmin()?h.promise=m.disposition.get(h.query,f).$promise:(h.query.id=h.userProfile.id,h.query.section="Dispositions",h.promise=m.userProfile.getResources(h.query,f).$promise)}function A(e){m.disposition.delete({id:e.id}).$promise.then(function(){b(),u.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){h.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)u.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else u.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}h.license=g,h.setting=v,h.currentUser=p.getCurrentUser(),h.dispositions=l||{count:0,rows:[]},h.userProfile=d,h.userProfileSection=c&&1==c.count?c.rows[0]:null,h.crudPermissions=p.parseCrudPermissions(h.userProfileSection?h.userProfileSection.crudPermissions:null),h.selectedDispositions=[],h.levels={first:"1st",second:"2nd",third:"3rd"},h.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",WhatsappAccountId:"null",ListId:"null",limit:10,page:1},h.deleteconfirm=function(e,n){var t=_.some(h.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){A(e)})},h.success=f,h.getDispositions=b,h.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:null,license:h.license,setting:h.setting,crudPermissions:h.crudPermissions}}).then(function(e){!0===e&&b()})},h.deleteDisposition=A,h.exportSelectedDispositions=function(){var e=angular.copy(h.selectedDispositions);return h.selectedDispositions=[],e},h.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:h.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){h.selectedDispositions.forEach(function(e){A(e)}),h.selectedDispositions=[]})},h.deselectDispositions=function(){h.selectedDispositions=[]},h.selectAllDispositions=function(){h.selectedDispositions=h.dispositions.rows};var E=!0,y=1;e.$watch("vm.query.filter",function(e,n){E?o(function(){E=!1}):(n||(y=h.query.page),e!==n&&(h.query.page=1),e||(h.query.page=y),b())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","dispositions","userProfile","userProfileSection","api","toasty","Auth","license","setting"],angular.module("app.tools").controller("DispositionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_INTERVAL",g.interval=angular.copy(l),g.intervals=r,g.newInterval=!1,g.interval||(g.interval={},g.title="TOOLS.NEW_INTERVAL",g.newInterval=!0),g.addNewInterval=function(){g.errors=[],d.interval.save(g.interval).$promise.then(function(e){g.intervals.unshift(e.toJSON()),o.success({title:"Interval properly created",msg:g.interval.name?g.interval.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.interval.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveInterval=function(){g.errors=[],d.interval.update({id:g.interval.id},g.interval).$promise.then(function(e){var n=_.find(g.intervals,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Interval properly saved!",msg:g.interval.name?g.interval.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.interval.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteInterval=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The interval will be deleted.").ariaLabel("Delete Interval").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.interval.delete({id:g.interval.id}).$promise.then(function(){_.remove(g.intervals,{id:g.interval.id}),o.success({title:"Interval properly deleted!",msg:(g.interval.name||"interval")+" has been deleted!"}),v(g.interval)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.interval.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.interval.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","intervals","interval","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditIntervalDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;if(c.currentUser=l.getCurrentUser(),c.errors=[],c.title="TOOLS.EDIT_INTERVAL",c.interval=angular.copy(i),c.intervals=s,c.newInterval=!1,c.types=["always","custom"],c.crudPermissions=d,c.daysOfWeek=a.getDaysOfWeek(),c.monthNumber=a.getMonthNumber(),c.monthName=a.getMonthName(),c.daysOfMonth=a.getDaysOfMonth(),c.interval)if("*,*,*,*"!==c.interval.interval){c.type="custom";var m=c.interval.interval.split(","),u=m[0],p=m[1],g=m[2],v=m[3];if("*"!==u){var h,f=u.split("-")[0],b=u.split("-")[1];(h=new Date).setHours(Number(f.split(":")[0])),h.setMinutes(Number(f.split(":")[1])),c.timeRangeFrom=h,(h=new Date).setHours(Number(b.split(":")[0])),h.setMinutes(Number(b.split(":")[1])),c.timeRangeTo=h}"*"!==p&&(c.dayOfWeekFrom=p.split("-")[0],c.dayOfWeekTo=p.split("-")[1]),"*"!==g&&(c.monthDayFrom=g.split("-")[0],c.monthDayTo=g.split("-")[1]),"*"!==v&&(c.monthFrom=v.split("-")[0],c.monthTo=v.split("-")[1])}else c.type="always";else c.interval={interval:"*,*,*,*"},c.type="always",c.title="TOOLS.NEW_INTERVAL",c.newInterval=!0;function A(){switch(c.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==c.timeRangeFrom&&c.timeRangeFrom&&c.timeRangeTo){var n=(c.timeRangeFrom.getHours()<10?"0":"")+c.timeRangeFrom.getHours()+":"+(c.timeRangeFrom.getMinutes()<10?"0":"")+c.timeRangeFrom.getMinutes(),t=(c.timeRangeTo.getHours()<10?"0":"")+c.timeRangeTo.getHours()+":"+(c.timeRangeTo.getMinutes()<10?"0":"")+c.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return c.dayOfWeekFrom?c.dayOfWeekTo?e.push(c.dayOfWeekFrom+"-"+c.dayOfWeekTo):e.push(c.dayOfWeekFrom):e.push("*"),c.monthDayFrom?c.monthDayTo?e.push(c.monthDayFrom+"-"+c.monthDayTo):e.push(c.monthDayFrom):e.push("*"),c.monthFrom?c.monthTo?e.push(c.monthFrom+"-"+c.monthTo):e.push(c.monthFrom):e.push("*"),e.join()}}function E(e){n.hide(e)}e.params.id&&!c.interval.application&&(c.interval.IntervalId=e.params.id),c.interval.IntervalId&&c.interval.application&&(c.type="list"),c.addNewInterval=function(){c.errors=[],c.interval.interval=A(),r.interval.save(c.interval).$promise.then(function(e){c.intervals.push(e),o.success({title:"Interval properly created",msg:c.interval.name?c.interval.name+" has been created!":""}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},c.saveInterval=function(){c.errors=[],c.interval.interval=A(),c.interval.application?("list"!==c.type&&(c.interval.IntervalId=null),E(c.interval)):r.interval.update({id:c.interval.id},c.interval).$promise.then(function(e){var n=_.find(c.intervals,{id:e.id});n&&_.merge(n,e),o.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},c.closeDialog=E,c.interval.application&&(l.hasRole("admin")?r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:c.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=e&&e.rows?e.rows:[],t=[],a=null;c.interval&&(a=_.find(c.intervals,{name:c.interval.IntervalId})),a&&!_.some(n,["resourceId",a.id])&&c.intervals.forEach(function(e){e.id===a.id&&(e.canSelect=!1,t.push(e))}),c.intervals=t})}else c.intervals=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}))}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditAppintervalDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.intervalIntervals=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.interval.getIntervals(m.query,u).$promise}function g(e){d.interval.delete({id:e.id}).$promise.then(function(){_.remove(m.intervalIntervals.rows,{id:e.id}),m.intervalIntervals.count-=1,m.intervalIntervals.rows.length||p(),l.success({title:"Interval deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETinterval"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.interval={},m.intervalIntervals={count:0,rows:[]},m.selectedIntervalIntervals=[],m.crudPermissions,m.sortableTable={animation:100,onSort:function(e){d.interval.addIntervals({id:m.interval.id},e.models).$promise.then(function(e){m.intervalIntervals.rows=e}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:SORTABLETABLE",msg:e.data?JSON.stringify(e.data):e.toString()})})}},m.query={fields:"createdAt,updatedAt,id,name,interval",nolimit:"true",limit:10,page:1},m.init=function(e,n){m.interval=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.sortableTable.disabled=!m.crudPermissions.canEdit,m.query.id=m.interval.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the interval?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("interval #")+e.id||"interval")+"</b> will be deleted.").ariaLabel("delete interval").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getIntervalIntervals=p,m.createOrEditIntervalInterval=function(e,n){o.show({controller:"EditAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/intervals/edit/apps/interval/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:m.interval,interval:n,intervals:m.intervalIntervals.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedIntervalIntervals=function(){var e=angular.copy(m.selectedIntervalIntervals);return m.selectedIntervalIntervals=[],e},m.deleteIntervalInterval=g,m.deleteSelectedIntervalIntervals=function(e){var n=o.confirm().title("Are you sure want to delete the selected intervals?").htmlContent("<b>"+m.selectedIntervalIntervals.length+" selected</b> will be deleted.").ariaLabel("delete intervals").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedIntervalIntervals.forEach(function(e){g(e)}),m.selectedIntervalIntervals=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.tools").controller("IntervalIntervalsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_INTERVAL",g.interval=angular.copy(l),g.intervals=r,g.newInterval=!1,g.interval||(g.interval={},g.title="TOOLS.NEW_INTERVAL",g.newInterval=!0),g.addNewInterval=function(){g.errors=[],d.interval.save(g.interval).$promise.then(function(e){g.intervals.unshift(e.toJSON()),o.success({title:"Interval properly created",msg:g.interval.name?g.interval.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.interval.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveInterval=function(){g.errors=[],d.interval.update({id:g.interval.id},g.interval).$promise.then(function(e){var n=_.find(g.intervals,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Interval properly saved!",msg:g.interval.name?g.interval.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.interval.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteInterval=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The interval will be deleted.").ariaLabel("Delete Interval").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.interval.delete({id:g.interval.id}).$promise.then(function(){_.remove(g.intervals,{id:g.interval.id}),o.success({title:"Interval properly deleted!",msg:(g.interval.name||"interval")+" has been deleted!"}),v(g.interval)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.interval.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.interval.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","intervals","interval","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditIntervalDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.interval=c||e.params.interval||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoIntervals=function(){e.go("app.tools.intervals",{},{reload:"app.tools.intervals"})},u.saveInterval=function(){r.interval.update({id:u.interval.id},u.interval).$promise.then(function(){l.success({title:"Interval updated!",msg:u.interval.name?u.interval.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","interval","userProfileSection"],angular.module("app.tools").controller("IntervalController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.intervals=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="intervals",f.listOrder="",f.listOrderAsc=null,f.selectedIntervals=[],f.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",IntervalId:"null",limit:10,page:1},f.editstate=function(e,n){t.go("app.tools.intervals.edit",{id:e.id,interval:e,crudPermissions:f.crudPermissions})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("interval")+"?").htmlContent("<b>"+(e.name||"interval")+"</b> will be deleted.").ariaLabel("delete interval").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getIntervals=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.interval.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Intervals",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditInterval=function(e,n){i.show({controller:"CreateOrEditIntervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/intervals/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:n,intervals:f.intervals.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteInterval=y,f.exportSelectedIntervals=function(){var e=angular.copy(f.selectedIntervals);return f.selectedIntervals=[],e},f.deleteSelectedIntervals=function(e){var n=i.confirm().title("Are you sure want to delete the selected intervals?").htmlContent("<b>"+f.selectedIntervals.length+" selected</b> will be deleted.").ariaLabel("delete Intervals").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedIntervals.forEach(function(e){y(e)}),f.selectedIntervals=[]})},f.deselectIntervals=function(){f.selectedIntervals=[]},f.selectAllIntervals=function(){f.selectedIntervals=f.intervals.rows};var b=!0,A=1;function E(e){f.intervals=e||{count:0,rows:[]}}function y(e){m.interval.delete({id:e.id}).$promise.then(function(){_.remove(f.intervals.rows,{id:e.id}),f.intervals.count-=1,f.intervals.rows.length||f.getIntervals(),p.success({title:_.startCase("Interval")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEinterval"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEinterval",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getIntervals())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","intervals","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("IntervalsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_PAUSE",g.pause=angular.copy(l),g.pauses=r,g.newPause=!1,g.pause||(g.pause={},g.title="TOOLS.NEW_PAUSE",g.newPause=!0),g.addNewPause=function(){g.errors=[],d.pause.save(g.pause).$promise.then(function(e){g.pauses.unshift(e.toJSON()),o.success({title:"Pause properly created",msg:g.pause.name?g.pause.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.pause.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.pause.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.savePause=function(){g.errors=[],d.pause.update({id:g.pause.id},g.pause).$promise.then(function(e){var n=_.find(g.pauses,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Pause properly saved!",msg:g.pause.name?g.pause.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.pause.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.pause.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deletePause=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The pause will be deleted.").ariaLabel("Delete Pause").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.pause.delete({id:g.pause.id}).$promise.then(function(){_.remove(g.pauses,{id:g.pause.id}),o.success({title:"Pause properly deleted!",msg:(g.pause.name||"pause")+" has been deleted!"}),v(g.pause)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.pause.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.pause.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","pauses","pause","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditPauseDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.pauses=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="pauses",f.listOrder="",f.listOrderAsc=null,f.selectedPauses=[],f.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditPauseDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/pauses/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{pause:e,pauses:f.pauses.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("pause")+"?").htmlContent("<b>"+(e.name||"pause")+"</b> will be deleted.").ariaLabel("delete pause").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getPauses=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.pause.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Pauses",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditPause=function(e,n){i.show({controller:"CreateOrEditPauseDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/pauses/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{pause:n,pauses:f.pauses.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deletePause=y,f.exportSelectedPauses=function(){var e=angular.copy(f.selectedPauses);return f.selectedPauses=[],e},f.deleteSelectedPauses=function(e){var n=i.confirm().title("Are you sure want to delete the selected pauses?").htmlContent("<b>"+f.selectedPauses.length+" selected</b> will be deleted.").ariaLabel("delete Pauses").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedPauses.forEach(function(e){y(e)}),f.selectedPauses=[]})},f.deselectPauses=function(){f.selectedPauses=[]},f.selectAllPauses=function(){f.selectedPauses=f.pauses.rows};var b=!0,A=1;function E(e){f.pauses=e||{count:0,rows:[]}}function y(e){m.pause.delete({id:e.id}).$promise.then(function(){_.remove(f.pauses.rows,{id:e.id}),f.pauses.count-=1,f.pauses.rows.length||f.getPauses(),p.success({title:_.startCase("Pause")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEpause"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEpause",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getPauses())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","pauses","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("PausesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;if(g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_SCHEDULE",g.schedule=angular.copy(l),g.schedules=r,g.newSchedule=!1,g.selectedReport=[],g.query={fields:"createdAt,updatedAt,id,name,description,table,parent,conditions,joins",limit:10,page:1,sort:"-updatedAt"},g.schedule){g.apiName=g.schedule.DefaultReportId?"analyticDefaultReport":"analyticCustomReport";var v=g.schedule.DefaultReportId?g.schedule.DefaultReportId:g.schedule.CustomReportId;d[g.apiName].get({fields:"id,name,parent"}).$promise.then(function(e){g.currentReport=_.find(e.rows,{id:v}),g.schedule.report=g.currentReport.name,g.query.parent=g.currentReport.parent})}else g.schedule={output:"xlsx",active:!0,startAt:new Date,endAt:new Date(Date.now()+2592e6),cron:"0 0 * * *",subtractNumber:1,subtractUnit:"days",sendMail:!1,sendIfEmpty:!0},g.title="TOOLS.NEW_SCHEDULE",g.newSchedule=!0;function h(e){return e?{loaded:A,select_node:f}:{loaded:E,select_node:b}}function f(e,n){g.treeDefaultInstance.jstree(!0).deselect_all(),g.treeDefaultInstance.jstree(!0).close_all(),g.currentNode=n.node,g.currentNode.custom=!0,g.currentPath=g.treeCustomInstance.jstree(!0).get_path(g.currentNode).join("/ "),g.apiName="analyticCustomReport",g.query.parent=n.node.id,y()}function b(e,n){g.treeCustomInstance.jstree(!0).deselect_all(),g.treeCustomInstance.jstree(!0).close_all(),g.currentNode=n.node,g.currentNode.custom=!1,g.currentPath=g.treeDefaultInstance.jstree(!0).get_path(g.currentNode).join("/ "),g.apiName="analyticDefaultReport",g.query.parent=n.node.id,y()}function A(){if(!g.newSchedule&&"analyticCustomReport"===g.apiName){var e=g.treeCustomInstance.jstree(!0).get_node(g.query.parent);f(0,{node:e,selected:e.id})}}function E(){if(!g.newSchedule&&"analyticDefaultReport"===g.apiName){var e=g.treeDefaultInstance.jstree(!0).get_node(g.query.parent);b(0,{node:e,selected:e.id})}}function y(){if(g.query.offset=(g.query.page-1)*g.query.limit,g.apiName)if("admin"===g.currentUser.role)g.promise=d[g.apiName].get(g.query,S).$promise;else{if(!g.userProfileSection)return S(null);if(g.userProfileSection.autoAssociation)g.promise=d[g.apiName].get(g.query,S).$promise;else{var a=[];g.promise=d[g.apiName].get(g.query).$promise.then(function(e){return 0<(a=e&&e.rows?e.rows:[]).length?d.userProfileResource.get({sectionId:g.userProfileSection.id,type:"analyticDefaultReport"===g.apiName?"DefaultReports":"CustomReports"}).$promise.then(function(e){var n=e&&e.rows?e.rows:[];if(0<n.length){var t=[];return a.forEach(function(e){_.find(n,["resourceId",e.id])&&t.push(e)}),S({count:t.length,rows:t})}return S(null)}):S(null)}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_REPORTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}}}function S(e){g.reports=e||{count:0,rows:[]},g.newSchedule||g.selectedReport.push(_.find(g.reports.rows,{id:g.currentReport.id}))}function T(e){a.hide(e)}g.addNewSchedule=function(){g.errors=[],d.schedule.save(g.schedule).$promise.then(function(e){g.schedules.unshift(e.toJSON()),o.success({title:"Schedule properly created",msg:g.schedule.name?g.schedule.name+" has been created!":""}),T(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.schedule.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.schedule.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSchedule=function(){g.errors=[],d.schedule.update({id:g.schedule.id},g.schedule).$promise.then(function(e){var n=_.find(g.schedules,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Schedule properly saved!",msg:g.schedule.name?g.schedule.name+" has been saved!":""}),T(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.schedule.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.schedule.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSchedule=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The schedule will be deleted.").ariaLabel("Delete Schedule").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.schedule.delete({id:g.schedule.id}).$promise.then(function(){_.remove(g.schedules,{id:g.schedule.id}),o.success({title:"Schedule properly deleted!",msg:(g.schedule.name||"schedule")+" has been deleted!"}),T(g.schedule)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.schedule.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.schedule.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.getReports=y,g.selectReport=function(){g.schedule.report=g.selectedReport[0].name,g.currentNode.custom?(g.schedule.CustomReportId=g.selectedReport[0].id,delete g.schedule.DefaultReportId):(g.schedule.DefaultReportId=g.selectedReport[0].id,delete g.schedule.CustomReportId);e.scheduleForm.report.$setDirty(),a.hide()},g.closeReportDialog=function(){a.hide()},g.searchReport=function(){g.treeDefaultData=g.treeReports[0]?angular.fromJson(g.treeReports[0].tree):[],g.treeCustomData=g.treeReports[1]?angular.fromJson(g.treeReports[1].tree):[],g.treeConfig=(n={core:{multiple:!1,animation:!0,error:function(e){console.error("treeCtrl: error from js tree - "+angular.toJson(e))},check_callback:!0,worker:!0},version:1,plugins:["wholerow"]},"admin"!==g.currentUser.role?d.userProfileSection.get({fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:g.currentUser.userProfileId,sectionId:1203}).$promise.then(function(e){return g.userProfileSection=e&&1==e.count?e.rows[0]:null,n}).catch(function(e){o.error({title:"ERROR",msg:e.message})}):n),g.treeDefaultEvents=h(!1),g.treeCustomEvents=h(!0),a.show({controller:function(){return g},controllerAs:"vm",templateUrl:"app/main/apps/tools/views/schedules/partialViews/reports/treeReports.html",autoWrap:!0,skipHide:!0});var n},g.closeDialog=T,d.analyticTreeReport.get({}).$promise.then(function(e){g.treeReports=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TREEREPORTS",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.hasRole("admin")?d.mailAccount.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.mailAccounts=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_MAILACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.mailAccount.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.mailAccounts=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:602}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.mailAccounts,{id:e.resourceId})}),t=null;if(g.schedule&&(t=_.find(g.mailAccounts,{id:Number(g.schedule.MailAccountId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.mailAccounts,{id:t.id});a.canSelect=!1,n.push(a)}g.mailAccounts=n})}else{var t=[],a=null;g.schedule&&(a=_.find(g.mailAccounts,{id:Number(g.schedule.MailAccountId)}));for(var i=0;i<g.mailAccounts.length;i++)a&&g.mailAccounts[i].id===a.id&&(g.mailAccounts[i].canSelect=!1,t.push(g.mailAccounts[i]));g.mailAccounts=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","schedules","schedule","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditScheduleDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.schedules=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="schedules",f.listOrder="",f.listOrderAsc=null,f.selectedScheduler=[],f.query={fields:"createdAt,updatedAt,id,name,CustomReportId,DefaultReportId,output,active,startAt,endAt,cron,subtractNumber,subtractUnit,sendMail,MailAccountId,email,cc,bcc,sendIfEmpty,description",sort:"-updatedAt",limit:10,page:1},f.arrayoutput=_.keyBy([{option:"CSV",value:"'csv'"},{option:"PDF",value:"'pdf'"},{option:"Excel",value:"'xlsx'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysubtractUnit=_.keyBy([{option:"Minutes",value:"'minutes'"},{option:"Hours",value:"'hours'"},{option:"Days",value:"'days'"},{option:"Weeks",value:"'weeks'"},{option:"Months",value:"'months'"},{option:"Quarters",value:"'quarters'"},{option:"Years",value:"'years'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editdialog=function(e,n){i.show({controller:"CreateOrEditScheduleDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/schedules/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{schedule:e,schedules:f.schedules.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.runconfirm=function(e,n){var t=i.confirm().title("Are you sure want to run the schedule?").htmlContent("<b>"+(e.name||"schedule")+"</b> will be run.").ariaLabel("delete schedule").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){return m.schedule.run({id:e.id}).$promise},function(){console.log("CANCEL")})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("schedule")+"?").htmlContent("<b>"+(e.name||"schedule")+"</b> will be deleted.").ariaLabel("delete schedule").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getScheduler=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.schedule.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Scheduler",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditSchedule=function(e,n){i.show({controller:"CreateOrEditScheduleDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/schedules/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{schedule:n,schedules:f.schedules.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteSchedule=y,f.exportSelectedScheduler=function(){var e=angular.copy(f.selectedScheduler);return f.selectedScheduler=[],e},f.deleteSelectedScheduler=function(e){var n=i.confirm().title("Are you sure want to delete the selected schedules?").htmlContent("<b>"+f.selectedScheduler.length+" selected</b> will be deleted.").ariaLabel("delete Schedules").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedScheduler.forEach(function(e){y(e)}),f.selectedScheduler=[]})},f.deselectScheduler=function(){f.selectedScheduler=[]},f.selectAllScheduler=function(){f.selectedScheduler=f.schedules.rows},m.analyticTreeReport.get({}).$promise.then(function(e){f.treeReports=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TREEREPORTS",msg:e.data?JSON.stringify(e.data):e.toString()})}),g.hasRole("admin")?m.mailAccount.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.mailAccounts=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_MAILACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.mailAccount.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.mailAccounts=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:602}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.mailAccounts,{id:e.resourceId})}),t=null;if(f.schedule&&(t=_.find(f.mailAccounts,{id:Number(f.schedule.MailAccountId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.mailAccounts,{id:t.id});a.canSelect=!1,n.push(a)}f.mailAccounts=n})}else{var t=[],a=null;f.schedule&&(a=_.find(f.mailAccounts,{id:Number(f.schedule.MailAccountId)}));for(var i=0;i<f.mailAccounts.length;i++)a&&f.mailAccounts[i].id===a.id&&(f.mailAccounts[i].canSelect=!1,t.push(f.mailAccounts[i]));f.mailAccounts=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.schedules=e||{count:0,rows:[]}}function y(e){m.schedule.delete({id:e.id}).$promise.then(function(){_.remove(f.schedules.rows,{id:e.id}),f.schedules.count-=1,f.schedules.rows.length||f.getScheduler(),p.success({title:_.startCase("Schedule")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEschedule"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEschedule",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getScheduler())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","schedules","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("SchedulesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_SOUND",g.sound=angular.copy(l),g.sounds=r,g.newSound=!1,g.sound||(g.sound={},g.title="TOOLS.NEW_SOUND",g.newSound=!0),g.addNewSound=function(){g.errors=[],d.sound.save(g.sound).$promise.then(function(e){g.sounds.unshift(e.toJSON()),o.success({title:"Sound properly created",msg:g.sound.name?g.sound.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.sound.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.sound.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSound=function(){g.errors=[],d.sound.update({id:g.sound.id},g.sound).$promise.then(function(e){var n=_.find(g.sounds,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Sound properly saved!",msg:g.sound.name?g.sound.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.sound.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.sound.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSound=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The sound will be deleted.").ariaLabel("Delete Sound").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.sound.delete({id:g.sound.id}).$promise.then(function(){_.remove(g.sounds,{id:g.sound.id}),o.success({title:"Sound properly deleted!",msg:(g.sound.name||"sound")+" has been deleted!"}),v(g.sound)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.sound.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.sound.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","sounds","sound","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditSoundDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.sounds=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="sounds",f.listOrder="",f.listOrderAsc=null,f.selectedSounds=[],f.query={fields:"createdAt,updatedAt,id,save_name,converted_format,name,audio,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditSoundDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/sounds/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{sound:e,sounds:f.sounds.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.downloadfile2=function(s,e){return m.sound.download({id:s.id}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=s.converted_format?s.save_name+"."+s.converted_format:s.save_name;var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.sound.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("sound")+"?").htmlContent("<b>"+(e.name||"sound")+"</b> will be deleted.").ariaLabel("delete sound").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getSounds=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.sound.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Sounds",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditSound=function(e,n){i.show({controller:"CreateOrEditSoundDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/sounds/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{sound:n,sounds:f.sounds.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteSound=y,f.exportSelectedSounds=function(){var e=angular.copy(f.selectedSounds);return f.selectedSounds=[],e},f.deleteSelectedSounds=function(e){var n=i.confirm().title("Are you sure want to delete the selected sounds?").htmlContent("<b>"+f.selectedSounds.length+" selected</b> will be deleted.").ariaLabel("delete Sounds").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedSounds.forEach(function(e){y(e)}),f.selectedSounds=[]})},f.deselectSounds=function(){f.selectedSounds=[]},f.selectAllSounds=function(){f.selectedSounds=f.sounds.rows},f.uploadSound=function(e){i.show({controller:"UploadSoundDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/sounds/upload/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{sounds:f.sounds.rows}})};var b=!0,A=1;function E(e){f.sounds=e||{count:0,rows:[]}}function y(e){m.sound.delete({id:e.id}).$promise.then(function(){_.remove(f.sounds.rows,{id:e.id}),f.sounds.count-=1,f.sounds.rows.length||f.getSounds(),p.success({title:_.startCase("Sound")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEsound"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEsound",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getSounds())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","sounds","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("SoundsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this,r=15,l=1024*r*1024;o.currentUser=s.getCurrentUser(),o.errors=[],o.title="TOOLS.UPLOAD_SOUND",o.sounds=a,o.uploadSounds=[],o.uploadState="none",o.sound={},o.ngFlowOptions={maxChunkRetries:1,chunkSize:l,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0,target:"api/sounds"},o.ngFlow={flow:{}},o.dropping=!1,o.fileAdded=function(e){var n=["wav","mp3","gsm"];if(!_.includes(n,e.getExtension()))return t.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(e.size>l)return t.error({title:"File too big",msg:"The max allowed size is "+r+"MB"}),!1;return o.sound={id:e.uniqueIdentifier,file:e},o.uploadSounds.unshift(o.sound),!0},o.upload=function(){o.uploadState="uploading",o.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},o.ngFlow.flow.opts.query={role:o.currentUser.role,userProfileId:o.currentUser.userProfileId},o.ngFlow.flow.upload()},o.fileSuccess=function(a,e){o.sounds.unshift(JSON.parse(e)),angular.forEach(o.uploadSounds,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result}}})},o.uploadError=function(e,n){o.ngFlow.flow.cancel(),t.error({title:"Upload error",msg:"Cannot upload the sound"}),o.uploadState="failed"},o.uploadComplete=function(){"failed"!==o.uploadState&&(o.uploadState="completed",t.success({title:"Upload completed",msg:o.sound.file.name+" uploaded successfully"}))},o.closeDialog=function(){n.hide()}}e.$inject=["$cookies","$mdDialog","toasty","sounds","api","Auth"],angular.module("app.tools").controller("UploadSoundDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_TAG",g.tag=angular.copy(l),g.tags=r,g.newTag=!1,g.tag||(g.tag={},g.title="TOOLS.NEW_TAG",g.newTag=!0),g.addNewTag=function(){g.errors=[],d.tag.save(g.tag).$promise.then(function(e){g.tags.unshift(e.toJSON()),o.success({title:"Tag properly created",msg:g.tag.name?g.tag.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.tag.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.tag.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveTag=function(){g.errors=[],d.tag.update({id:g.tag.id},g.tag).$promise.then(function(e){var n=_.find(g.tags,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Tag properly saved!",msg:g.tag.name?g.tag.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.tag.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.tag.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteTag=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The tag will be deleted.").ariaLabel("Delete Tag").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.tag.delete({id:g.tag.id}).$promise.then(function(){_.remove(g.tags,{id:g.tag.id}),o.success({title:"Tag properly deleted!",msg:(g.tag.name||"tag")+" has been deleted!"}),v(g.tag)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.tag.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.tag.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","tags","tag","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditTagDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.tags=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="tags",f.listOrder="",f.listOrderAsc=null,f.selectedTags=[],f.query={fields:"createdAt,updatedAt,id,name,description,color",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditTagDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/tags/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{tag:e,tags:f.tags.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("tag")+"?").htmlContent("<b>"+(e.name||"tag")+"</b> will be deleted.").ariaLabel("delete tag").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getTags=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.tag.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Tags",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditTag=function(e,n){i.show({controller:"CreateOrEditTagDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/tags/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{tag:n,tags:f.tags.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteTag=y,f.exportSelectedTags=function(){var e=angular.copy(f.selectedTags);return f.selectedTags=[],e},f.deleteSelectedTags=function(e){var n=i.confirm().title("Are you sure want to delete the selected tags?").htmlContent("<b>"+f.selectedTags.length+" selected</b> will be deleted.").ariaLabel("delete Tags").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedTags.forEach(function(e){y(e)}),f.selectedTags=[]})},f.deselectTags=function(){f.selectedTags=[]},f.selectAllTags=function(){f.selectedTags=f.tags.rows};var b=!0,A=1;function E(e){f.tags=e||{count:0,rows:[]}}function y(e){m.tag.delete({id:e.id}).$promise.then(function(){_.remove(f.tags.rows,{id:e.id}),f.tags.count-=1,f.tags.rows.length||f.getTags(),p.success({title:_.startCase("Tag")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEtag"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEtag",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getTags())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","tags","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("TagsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_TEMPLATE",g.template=angular.copy(l),g.templates=r,g.newTemplate=!1,g.template||(g.template={},g.title="TOOLS.NEW_TEMPLATE",g.newTemplate=!0),g.addNewTemplate=function(){g.errors=[],d.template.save(g.template).$promise.then(function(e){g.templates.unshift(e.toJSON()),o.success({title:"Template properly created",msg:g.template.name?g.template.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.template.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.template.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveTemplate=function(){g.errors=[],d.template.update({id:g.template.id},g.template).$promise.then(function(e){var n=_.find(g.templates,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Template properly saved!",msg:g.template.name?g.template.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.template.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.template.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteTemplate=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The template will be deleted.").ariaLabel("Delete Template").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.template.delete({id:g.template.id}).$promise.then(function(){_.remove(g.templates,{id:g.template.id}),o.success({title:"Template properly deleted!",msg:(g.template.name||"template")+" has been deleted!"}),v(g.template)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.template.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.template.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","templates","template","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditTemplateDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.templates=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="templates",f.listOrder="",f.listOrderAsc=null,f.selectedTemplates=[],f.query={fields:"createdAt,updatedAt,id,name,html,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditTemplateDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/templates/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{template:e,templates:f.templates.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("template")+"?").htmlContent("<b>"+(e.name||"template")+"</b> will be deleted.").ariaLabel("delete template").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getTemplates=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.template.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Templates",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditTemplate=function(e,n){i.show({controller:"CreateOrEditTemplateDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/templates/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{template:n,templates:f.templates.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteTemplate=y,f.exportSelectedTemplates=function(){var e=angular.copy(f.selectedTemplates);return f.selectedTemplates=[],e},f.deleteSelectedTemplates=function(e){var n=i.confirm().title("Are you sure want to delete the selected templates?").htmlContent("<b>"+f.selectedTemplates.length+" selected</b> will be deleted.").ariaLabel("delete Templates").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedTemplates.forEach(function(e){y(e)}),f.selectedTemplates=[]})},f.deselectTemplates=function(){f.selectedTemplates=[]},f.selectAllTemplates=function(){f.selectedTemplates=f.templates.rows};var b=!0,A=1;function E(e){f.templates=e||{count:0,rows:[]}}function y(e){m.template.delete({id:e.id}).$promise.then(function(){_.remove(f.templates.rows,{id:e.id}),f.templates.count-=1,f.templates.rows.length||f.getTemplates(),p.success({title:_.startCase("Template")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEtemplate"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEtemplate",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getTemplates())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","templates","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("TemplatesController",e)}(),function(){"use strict";function e(t,a,i,e,n,s,o,r,l,d){var c=this;function m(e){t.hide(e)}c.currentUser=o.getCurrentUser(),c.trigger=angular.copy(n),c.triggers=angular.copy(e),c.setting=l,c.license=r,c.crudPermissions=d,c.newTrigger=!1,c.errors=[],c.trigger||(c.trigger={channel:"voice"},c.newTrigger=!0),c.addNewTrigger=function(){c.errors=[],s.trigger.save(c.trigger).$promise.then(function(e){c.triggers.unshift(e.toJSON()),i.success({title:a.instant("TOOLS.NOTIFICATIONS.TRIGGER_CREATED_SUCCESS_TITLE")}),m(c.triggers)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.trigger.save"}];for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.trigger.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.saveTrigger=function(){c.errors=[],s.trigger.update({id:c.trigger.id},c.trigger).$promise.then(function(){c.triggers=_.map(c.triggers,function(e){return e.id===c.trigger.id?c.trigger:e}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.TRIGGER_SAVED_SUCCESS_TITLE")}),m(c.triggers)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.trigger.update"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.trigger.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.deleteTrigger=function(e){c.errors=[];var n=t.confirm({skipHide:!0}).title(a.instant("TOOLS.NOTIFICATIONS.TRIGGER_DELETE_TITLE")).content(a.instant("TOOLS.NOTIFICATIONS.TRIGGER_DELETE_MESSAGE",{name:c.trigger.name})).ariaLabel("Delete trigger").ok(a.instant("TOOLS.DELETE")).cancel(a.instant("TOOLS.CANCEL")).targetEvent(e);t.show(n).then(function(){s.trigger.delete({id:c.trigger.id}).$promise.then(function(){c.triggers=_.filter(c.triggers,function(e){return e.id!==c.trigger.id}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.TRIGGER_DELETED_SUCCESS_TITLE")}),m(c.triggers)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.trigger.delete"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.trigger.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},c.closeDialog=m}e.$inject=["$mdDialog","$translate","toasty","triggers","trigger","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditTriggerDialogController",e)}(),function(){"use strict";function e(e,a,n,i,t,s,o,r){var l=this;function d(){_.some(l.triggerActions.rows,["action","contactManager"])&&(l.lists||(r.isAdmin()?o.cmList.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.lists=e.rows||[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):o.cmList.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.lists=e.rows||[]}).then(function(){return o.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return o.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(l.lists,{id:e.resourceId})}),a=null;a=[],l.triggerActions.rows.forEach(function(e){if("contactManager"===e.action){var n=_.find(l.lists,{id:Number(e.data1)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(l.lists,{id:e.id});n.canSelect=!1,t.push(n)}}),l.lists=t})}else{var t=[],a=[];l.triggerActions.rows.forEach(function(e){if("contactManager"===e.action){var n=_.find(l.lists,{id:Number(e.data1)});a.push(n)}});for(var i=0;i<l.lists.length;i++)_.some(a,{id:l.lists[i].id})&&(l.lists[i].canSelect=!1,t.push(l.lists[i]));l.lists=t}}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}))),_.some(l.triggerActions.rows,["action","integration"])&&_(l.triggerActions.rows).map(function(e){return"integration"===e.action?e.data1:void 0}).compact().uniq().value().forEach(function(e){var n=e+"Accounts";if(!l[n]){var t="int"+_.startCase(e)+"Account";o[t.replace(/\s+/g,"")].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){l[n]=e.rows||[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+n.toUpperCase()+"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}}),_.some(l.triggerActions.rows,function(e){return _.includes(["motionbar","browser"],e.action)})&&(l.templates||(r.isAdmin()?o.template.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){l.templates=e.rows||[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEMPLATES",msg:e.data?JSON.stringify(e.data):e.toString()})}):o.template.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){l.templates=e.rows||[]}).then(function(){return o.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1009}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return o.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(l.templates,{id:e.resourceId})}),a=null;a=[],l.triggerActions.rows.forEach(function(e){if(_.includes(["motionbar","browser"],e.action)){var n=_.find(l.templates,{id:Number(e.data2)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(l.templates,{id:e.id});n.canSelect=!1,t.push(n)}}),l.templates=t})}else{var t=[],a=[];l.triggerActions.rows.forEach(function(e){if(_.includes(["motionbar","browser"],e.action)){var n=_.find(l.templates,{id:Number(e.data2)});a.push(n)}});for(var i=0;i<l.templates.length;i++)_.some(a,{id:l.templates[i].id})&&(l.templates[i].canSelect=!1,t.push(l.templates[i]));l.templates=t}}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEMPLATES",msg:e.data?JSON.stringify(e.data):e.toString()})}))),_.some(l.triggerActions.rows,["action","jscripty"])&&(l.projects||(r.isAdmin()?o.jscriptyProject.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.projects=e.rows||[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PROJECTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):o.jscriptyProject.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.projects=e.rows||[]}).then(function(){return o.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1701}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return o.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(l.projects,{id:e.resourceId})}),a=null;a=[],l.triggerActions.rows.forEach(function(e){if("jscripty"===e.action){var n=_.find(l.projects,{id:Number(e.data1)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(l.projects,{id:e.id});n.canSelect=!1,t.push(n)}}),l.projects=t})}else{var t=[],a=[];l.triggerActions.rows.forEach(function(e){if("jscripty"===e.action){var n=_.find(l.projects,{id:Number(e.data1)});a.push(n)}});for(var i=0;i<l.projects.length;i++)_.some(a,{id:l.projects[i].id})&&(l.projects[i].canSelect=!1,t.push(l.projects[i]));l.projects=t}}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})})))}function c(e){l.triggerActions=e||{count:0,rows:[]},d()}function m(){l.query.offset=(l.query.page-1)*l.query.limit,l.promise=o.trigger.getActions(l.query,c).$promise}function u(e,n){o.action.delete({id:e.id}).$promise.then(function(){m(),n&&s.success({title:a.instant("TOOLS.NOTIFICATIONS.ACTION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){l.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETtrigger"}];for(var n=0;n<e.data.errors.length;n++)s.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrigger",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}l.currentUser=r.getCurrentUser(),l.trigger={},l.triggerActions={count:0,rows:[]},l.selectedTriggerActions=[],l.query={fields:"id,action,contact,data1,data2,data3,data4,data5,data6,data7,createdAt,updatedAt",limit:10,page:1},l.integrationTypes={zendesk:"Zendesk",salesforce:"Salesforce",sugarcrm:"SugarCRM",freshdesk:"Freshdesk",desk:"Desk",zoho:"Zoho",vtiger:"vTiger",dynamics365:"Dynamics365",servicenow:"ServiceNow",freshsales:"Freshsales"},l.motionBarOptions={0:"Popup",1:"CTI URL",2:"Windows App"},l.onInit=function(e,n){l.trigger=e,l.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},l.query.ActionId=l.trigger.id,l.query.id=l.trigger.id,m()},l.success=c,l.getTriggerActions=m,l.createOrEditTriggerAction=function(e,n){i.show({controller:"CreateOrEditActionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/triggers/edit/actions/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{trigger:l.trigger,action:n,actions:l.triggerActions.rows,license:null,setting:null,crudPermissions:l.crudPermissions}}).then(function(e){e&&(l.triggerActions={count:e.length,rows:e},d())})},l.exportSelectedTriggerActions=function(){var e=angular.copy(l.selectedTriggerActions);return l.selectedTriggerActions=[],e},l.deleteConfirm=function(e,n){var t=i.confirm().title(a.instant("TOOLS.NOTIFICATIONS.ACTION_DELETE_TITLE")).ariaLabel("Delete action").targetEvent(n).ok("OK").cancel(a.instant("TOOLS.CANCEL"));i.show(t).then(function(){u(e,!0)})},l.deleteSelectedTriggerActions=function(e){var n=i.confirm().title(a.instant("TOOLS.NOTIFICATIONS.ACTIONS_DELETE_TITLE")).content(a.instant("TOOLS.NOTIFICATIONS.ACTIONS_DELETE_MESSAGE",{total:l.selectedTriggerActions.length})).ariaLabel("Delete actions").targetEvent(e).ok("OK").cancel(a.instant("TOOLS.CANCEL"));i.show(n).then(function(){l.selectedTriggerActions.forEach(function(e){u(e)}),l.selectedTriggerActions=[],s.success({title:a.instant("TOOLS.NOTIFICATIONS.ACTIONS_DELETED_SUCCESS_TITLE")})})}}e.$inject=["$scope","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.tools").controller("TriggerActionsController",e)}(),function(){"use strict";function e(n,t,a,i,e,s,o,r,l,d,c,m){var u=this;function p(){return new Promise(function(n,t){l.hasSectionsPermissions([1301,1302,1303,1304,1305,1306,1307,1308,1309,1310]).then(function(e){u.hasSectionPermissions=_.merge(u.hasSectionPermissions,e),n(u.hasSectionPermissions)}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_SECTIONS_PERMISSIONS",msg:e.data?JSON.stringify(e.data):e.toString()}),t()})})}function g(){r.cmList.getCustomFields({id:u.action.data1,ListId:u.action.data1}).$promise.then(function(e){u.listFields=_.filter(e.rows,["type","text"]),u.listFields.forEach(function(e){e.columnName="cf_"+e.id})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LIST_CUSTOM_FIELDS",msg:e.data?JSON.stringify(e.data):e.toString()})})}function v(){l.isAdmin()?r.template.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){u.templates=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEMPLATES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.template.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){u.templates=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1009}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u.templates,{id:e.resourceId})}),a=null;a=[],u.actions.forEach(function(e){if(_.includes(["motionbar","browser"],e.action)){var n=_.find(u.templates,{id:Number(e.data2)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u.templates,{id:e.id});n.canSelect=!1,t.push(n)}}),u.templates=t})}else{var t=[],a=[];u.actions.forEach(function(e){if(_.includes(["motionbar","browser"],e.action)){var n=_.find(u.templates,{id:Number(e.data2)});a.push(n)}});for(var i=0;i<u.templates.length;i++){_.some(a,{id:u.templates[i].id})&&(u.templates[i].canSelect=!1,t.push(u.templates[i]))}u.templates=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEMPLATES",msg:e.data?JSON.stringify(e.data):e.toString()})})}function h(){switch(u.action.action){case"contactManager":u.lists||(l.isAdmin()?r.cmList.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){u.lists=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.cmList.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){u.lists=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u.lists,{id:e.resourceId})}),a=null;a=[],u.actions.forEach(function(e){if("contactManager"===e.action){var n=_.find(u.lists,{id:Number(e.data1)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u.lists,{id:e.id});n.canSelect=!1,t.push(n)}}),u.lists=t})}else{var t=[],a=[];u.actions.forEach(function(e){if("contactManager"===e.action){var n=_.find(u.lists,{id:Number(e.data1)});a.push(n)}});for(var i=0;i<u.lists.length;i++)_.some(a,{id:u.lists[i].id})&&(u.lists[i].canSelect=!1,t.push(u.lists[i]));u.lists=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})})),u.contactFields||r.cmContact.describe({}).$promise.then(function(e){u.contactFields=[],u.customFields=[];for(var n=_.values(e.toJSON()),t=0;t<n.length;t++)_.includes(u.allowedStandardFields,n[t].columnName)?u.contactFields.push(n[t]):_.startsWith(n[t].columnName,"cf_")&&"text"===n[t].custom.type&&u.customFields.push(n[t])}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DESCRIBE_CM_CONTACT",msg:e.data?JSON.stringify(e.data):e.toString()})}),u.action.data3=u.action.data3?u.action.data3.split(","):["phone"],"1"!==u.action.data2||u.action.data4||(u.action.data4="phone");break;case"jscripty":u.projects||(l.isAdmin()?r.jscriptyProject.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){u.projects=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PROJECTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.jscriptyProject.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){u.projects=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1701}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u.projects,{id:e.resourceId})}),a=null;a=[],u.actions.forEach(function(e){if("jscripty"===e.action){var n=_.find(u.projects,{id:Number(e.data1)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u.projects,{id:e.id});n.canSelect=!1,t.push(n)}}),u.projects=t})}else{var t=[],a=[];u.actions.forEach(function(e){if("jscripty"===e.action){var n=_.find(u.projects,{id:Number(e.data1)});a.push(n)}});for(var i=0;i<u.projects.length;i++)_.some(a,{id:u.projects[i].id})&&(u.projects[i].canSelect=!1,t.push(u.projects[i]));u.projects=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}));break;case"urlForward":u.action.data5||(u.action.data5=5)}}function f(){u.editAccount||(u.action.data2=void 0,u.action.data3=void 0),u.action.isIntegrationDisabled=!u.newAction&&!function(){switch(u.action.data1){case"zendesk":return u.hasSectionPermissions[1301];case"salesforce":return u.hasSectionPermissions[1302];case"sugarcrm":return u.hasSectionPermissions[1305];case"freshdesk":return u.hasSectionPermissions[1303];case"desk":return u.hasSectionPermissions[1306];case"zoho":return u.hasSectionPermissions[1307];case"vtiger":return u.hasSectionPermissions[1308];case"dynamics365":return u.hasSectionPermissions[1309];case"servicenow":return u.hasSectionPermissions[1310];case"freshsales":return u.hasSectionPermissions[1304]}}();var e="int"+_.capitalize(u.action.data1)+"Account";r[e].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){u.accounts=e.rows||[],u.editAccount=!1}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+u.action.data1.toUpperCase()+"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){u.action.data3=u.action.data3?u.action.data3:void 0;var e="int"+_.capitalize(u.action.data1)+"Configuration";r[e].get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){u.configurations=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+u.action.data1.toUpperCase()+"CONFIGURATIONS",msg:e.data?JSON.stringify(e.data):e.toString()})})}function A(){var e=angular.copy(u.action);return _.isArray(e.data3)&&(e.data3=u.action.data3.join(",")),e}function E(e){t.hide(e)}u.currentUser=l.getCurrentUser(),void 0!==s&&"urlForward"===s.action&&s.data5&&(s.data5=parseInt(s.data5)),u.action=angular.copy(s),u.actions=angular.copy(e),u.setting=c,u.license=d,u.crudPermissions=m,u.newAction=!1,u.errors=[],u.trigger=angular.copy(o),u.action?function(){switch(u.editAccount=!0,u.action.action){case"integration":return new Promise(function(e){e(p())}).then(function(){return u.editAccount||(u.action.data2=void 0,u.action.data3=void 0,h()),f()}).then(function(){return b()});case"motionbar":case"browser":v()}u.editAccount=!1}():(u.action={},u.newAction=!0),u.action.ActionId=n.params.id||void 0,u.allowedStandardFields=["phone","mobile","fax"],u.addNewAction=function(){u.errors=[];var e=A();r.trigger.addAction({id:n.params.id},e).$promise.then(function(e){u.actions.unshift(e.toJSON()),i.success({title:a.instant("TOOLS.NOTIFICATIONS.ACTION_CREATED_SUCCESS_TITLE")}),E(u.actions)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.action.save"}];for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.action.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveAction=function(){u.errors=[];var n=A();r.action.update({id:n.id},n).$promise.then(function(){u.actions=_.map(u.actions,function(e){return e.id===n.id?n:e}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.ACTION_SAVED_SUCCESS_TITLE")}),E(u.actions)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.action.update"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.action.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteAction=function(e){u.errors=[];var n=t.confirm({skipHide:!0}).title(a.instant("TOOLS.NOTIFICATIONS.ACTION_DELETE_TITLE")).ariaLabel("Delete action").ok(a.instant("TOOLS.DELETE")).cancel(a.instant("TOOLS.CANCEL")).targetEvent(e);t.show(n).then(function(){r.action.delete({id:u.action.id}).$promise.then(function(){u.actions=_.filter(u.actions,function(e){return e.id!==u.action.id}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.ACTION_DELETED_SUCCESS_TITLE")}),E(u.actions)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.action.delete"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.action.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.onActionInit=function(){l.hasModulePermissions("Integrations").then(function(e){u.hasIntegrationsPermissions=e}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_MODULE_PERMISSIONS",msg:e.data?JSON.stringify(e.data):e.toString()})}),u.action.action&&h()},u.onIntegrationInit=p,u.onSearchFieldsInit=function(){u.newAction||g()},u.onActionSelection=function(){u.newAction&&(u.action.data1=void 0,u.action.data2=void 0,u.action.data3=void 0,u.action.data4=void 0,u.action.data5="urlForward"===u.action.action?5:void 0,h())},u.onIntegrationSelection=f,u.onListSelection=function(){g()},u.onTypeSelection=function(){"0"!==u.action.data1||u.templates?(u.action.data2=void 0,u.action.data4="1"===u.action.data1?0:void 0):v()},u.onAutocreateSelection=function(){"0"===u.action.data2&&(u.action.data4=void 0);u.action.data4||"1"!==u.action.data2||(u.action.data4="phone")},u.onIntegrationAccountSelection=b,u.closeDialog=E,u.onActionLocationChange=function(){u.editAccount||(u.action.data5=void 0,u.action.data6=void 0)}}e.$inject=["$state","$mdDialog","$translate","toasty","actions","action","trigger","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditActionDialogController",e)}(),function(){"use strict";function e(e,l,a,n,i,t,d,c,m){var u=this;function s(){var o,r;"voice"===u.trigger.channel?(_.some(u.allConditions.rows,["field","queue"])&&(u.queues||(o=[{id:401,type:"inbound"},{id:1501,type:"outbound"}],r=null,m.isAdmin()?c.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){u.queues=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VOICEQUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):c.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){r=e.rows||[]}).then(function(){for(var e=[],n=0;n<o.length;n++)e.push(c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:o[n].id}).$promise);return l.all(e)}).then(function(e){for(var n=_.map(e,function(e){return e&&e.rows?e.rows[0]:null}),t=[],a=0;a<o.length;a++){var i=_.find(n,["sectionId",o[a].id]);if(i)if(i.autoAssociation){var s=[];r.forEach(function(e){e.type===o[a].type&&s.push(e)}),t.push({rows:s,count:s.length})}else t.push(c.userProfileResource.get({sectionId:i.id}).$promise.then(function(e){return{count:e.count,rows:_.map(e.rows,function(e){return e.id=e.resourceId,delete e.resourceId,e})}}))}return l.all(t)}).then(function(e){var t=[],a=[];u.allConditions.rows.forEach(function(e){if("queue"===e.field){var n=_.find(r,{name:e.value});a.push(n)}});for(var n=0;n<e.length;n++)(e[n].rows||[]).forEach(function(e){t.push(e)});_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(r,{id:e.id});n.canSelect=!1,t.push(n)}}),u.queues=t}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}))),_.some(u.allConditions.rows,["field","routeId"])&&(u.outboundRoutes||(m.isAdmin()?c.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){u.outboundRoutes=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}):c.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){u.outboundRoutes=e.rows||[]}).then(function(){return c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:403}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return c.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u.outboundRoutes,{id:e.resourceId})}),a=null;a=[],u.triggerAllConditions.rows.forEach(function(e){if("routeId"===e.field){var n=_.find(u.outboundRoutes,{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u.outboundRoutes,{id:e.id});n.canSelect=!1,t.push(n)}}),u.outboundRoutes=t})}else{var t=[],a=[];u.allConditions.rows.forEach(function(e){if("routeId"===e.field){var n=_.find(u.outboundRoutes,{id:Number(e.value)});a.push(n)}});for(var i=0;i<u.outboundRoutes.length;i++)_.some(a,{id:u.outboundRoutes[i].id})&&(u.outboundRoutes[i].canSelect=!1,t.push(u.outboundRoutes[i]));u.outboundRoutes=t}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}))),_.some(u.allConditions.rows,["field","agent"])&&(u.agents||(m.isAdmin()?c.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){u.agents=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):c.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){u.agents=e.rows||[]}).then(function(){return c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return c.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u.agents,{id:e.resourceId})}),a=null;a=[],u.triggerAllConditions.rows.forEach(function(e){if("agent"===e.field){var n=_.find(u.agents,{name:e.value});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u.agents,{id:e.id});n.canSelect=!1,t.push(n)}}),u.agents=t})}else{var t=[],a=[];u.allConditions.rows.forEach(function(e){if("agent"===e.field){var n=_.find(u.agents,{name:e.value});a.push(n)}});for(var i=0;i<u.agents.length;i++)_.some(a,{id:u.agents[i].id})&&(u.agents[i].canSelect=!1,t.push(u.agents[i]));u.agents=t}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})})))):function(){var e,s=u.trigger.channel+("chat"===u.trigger.channel?"Websites":"Accounts"),n=u.trigger.channel+("chat"===u.trigger.channel?"Website":"Account");switch(u.trigger.channel){case"chat":e=502;break;case"fax":e=902;break;case"mail":e=602;break;case"openchannel":e=802;break;case"sms":e=702;break;case"whatsapp":e=2102}m.isAdmin()?c[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){u[s]=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+u.trigger.channel.toUpperCase()+u.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):c[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){u[s]=e.rows||[]}).then(function(){return c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:e}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return c.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u[s],{id:e.resourceId})}),a=null;a=[],u.allConditions.rows.forEach(function(e){if("account"===e.field){var n=_.find(u[s],{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u[s],{id:e.id});n.canSelect=!1,t.push(n)}}),u[s]=t})}else{var t=[],a=[];u.allConditions.rows.forEach(function(e){if("account"===e.field){var n=_.find(u[s],{id:Number(e.value)});a.push(n)}});for(var i=0;i<u[s].length;i++)_.some(a,{id:u[s][i].id})&&(u[s][i].canSelect=!1,t.push(u[s][i]));u[s]=t}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+u.trigger.channel.toUpperCase()+u.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}()}function o(e){u.allConditions=e||{count:0,rows:[]},s()}function r(){u.query.offset=(u.query.page-1)*u.query.limit,u.promise=c.trigger.getAllConditions(u.query,o).$promise}function p(e,n){c.condition.delete({id:e.id}).$promise.then(function(){r(),n&&d.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETtrigger"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrigger",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}u.currentUser=m.getCurrentUser(),u.trigger={},u.allConditions={count:0,rows:[]},u.selectedAllConditions=[],u.query={fields:"id,field,operator,value,createdAt,updatedAt",limit:10,page:1},u.fields={queue:"Queue",lastevent:"Call_Status",routeId:"OutboundRoute",agent:"Agent",account:"Account",interaction:"Interaction",message:"Message"},u.callStatuses={abandoned:"Abandon",timeout:"Timeout",complete:"Hangup",rejected:"Reject",called:"Ring",connect:"Answer",nosuchnumber:"NoSuchNumber",busy:"Busy",noanswer:"NoAnswer",congestion:"Congestion",agentreject:"AgentReject",amd:"AMD"},u.messageStatuses={in:"Incoming",out:"Outgoing",accept:"Accepted",reject:"Rejected"},u.onInit=function(e,n){u.trigger=e,u.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},u.query.TriggerAllId=u.trigger.id,u.query.id=u.trigger.id,r()},u.success=o,u.getAllConditions=r,u.createOrEditAllCondition=function(e,n){i.show({controller:"CreateOrEditAllConditionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/triggers/edit/allconditions/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{trigger:u.trigger,allCondition:n,allConditions:u.allConditions.rows,license:null,setting:null,crudPermissions:u.crudPermissions}}).then(function(e){e&&(u.allConditions={count:e.length,rows:e},s())})},u.exportSelectedAllConditions=function(){var e=angular.copy(u.selectedAllConditions);return u.selectedAllConditions=[],e},u.deleteConfirm=function(e,n){var t=i.confirm().title(a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETE_TITLE")).ariaLabel("Delete condition").targetEvent(n).ok("OK").cancel(a.instant("TOOLS.CANCEL"));i.show(t).then(function(){p(e,!0)})},u.deleteSelectedAllConditions=function(e){var n=i.confirm().title(a.instant("TOOLS.NOTIFICATIONS.CONDITIONS_DELETE_TITLE")).content(a.instant("TOOLS.NOTIFICATIONS.CONDITIONS_DELETE_MESSAGE",{total:u.selectedAllConditions.length})).ariaLabel("Delete conditions").targetEvent(e).ok("OK").cancel(a.instant("TOOLS.CANCEL"));i.show(n).then(function(){u.selectedAllConditions.forEach(function(e){p(e)}),u.selectedAllConditions=[],d.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITIONS_DELETED_SUCCESS_TITLE")})})}}e.$inject=["$scope","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.tools").controller("TriggerAllConditionsController",e)}(),function(){"use strict";function e(e,t,l,a,i,n,s,o,d,c,r,m,u){var p=this;function g(){switch(p.allCondition.field){case"queue":p.queues||(o=[{id:401,type:"inbound"},{id:1501,type:"outbound"}],r=null,c.isAdmin()?d.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){p.queues=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VOICEQUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){r=e.rows||[]}).then(function(){for(var e=[],n=0;n<o.length;n++)e.push(d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:o[n].id}).$promise);return l.all(e)}).then(function(e){for(var n=_.map(e,function(e){return e&&e.rows?e.rows[0]:null}),t=[],a=0;a<o.length;a++){var i=_.find(n,["sectionId",o[a].id]);if(i)if(i.autoAssociation){var s=[];r.forEach(function(e){e.type===o[a].type&&s.push(e)}),t.push({rows:s,count:s.length})}else t.push(d.userProfileResource.get({sectionId:i.id}).$promise.then(function(e){return{count:e.count,rows:_.map(e.rows,function(e){return e.id=e.resourceId,delete e.resourceId,e})}}))}return l.all(t)}).then(function(e){var t=[],a=[];p.allConditions.forEach(function(e){if("queue"===e.field){var n=_.find(r,{name:e.value});a.push(n)}});for(var n=0;n<e.length;n++)(e[n].rows||[]).forEach(function(e){t.push(e)});_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(r,{id:e.id});n.canSelect=!1,t.push(n)}}),p.queues=t}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}));break;case"routeId":p.outboundRoutes||(c.isAdmin()?d.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){p.outboundRoutes=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){p.outboundRoutes=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:403}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(p.outboundRoutes,{id:e.resourceId})}),a=null;a=[],p.allConditions.forEach(function(e){if("routeId"===e.field){var n=_.find(p.outboundRoutes,{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(p.outboundRoutes,{id:e.id});n.canSelect=!1,t.push(n)}}),p.outboundRoutes=t})}else{var t=[],a=[];p.allConditions.forEach(function(e){if("routeId"===e.field){var n=_.find(p.outboundRoutes,{id:Number(e.value)});a.push(n)}});for(var i=0;i<p.outboundRoutes.length;i++)_.some(a,{id:p.outboundRoutes[i].id})&&(p.outboundRoutes[i].canSelect=!1,t.push(p.outboundRoutes[i]));p.outboundRoutes=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}));break;case"agent":p.agents||(c.isAdmin()?d.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){p.agents=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){p.agents=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(p.agents,{id:e.resourceId})}),a=null;a=[],p.allConditions.forEach(function(e){if("agent"===e.field){var n=_.find(p.agents,{name:e.value});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(p.agents,{id:e.id});n.canSelect=!1,t.push(n)}}),p.agents=t})}else{var t=[],a=[];p.allConditions.forEach(function(e){if("agent"===e.field){var n=_.find(p.agents,{name:e.value});a.push(n)}});for(var i=0;i<p.agents.length;i++)_.some(a,{id:p.agents[i].id})&&(p.agents[i].canSelect=!1,t.push(p.agents[i]));p.agents=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}));break;case"account":!function(){var e,n=p.trigger.channel+("chat"===p.trigger.channel?"Website":"Account");switch(p.trigger.channel){case"chat":e=502;break;case"fax":e=902;break;case"mail":e=602;break;case"openchannel":e=802;break;case"sms":e=702;break;case"whatsapp":e=2102}c.isAdmin()?d[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.accounts=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+p.trigger.channel.toUpperCase()+p.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.accounts=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:e}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(p.accounts,{id:e.resourceId})}),a=null;a=[],p.allConditions.forEach(function(e){if("account"===e.field){var n=_.find(p.accounts,{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(p.accounts,{id:e.id});n.canSelect=!1,t.push(n)}}),p.accounts=t})}else{var t=[],a=[];p.allConditions.forEach(function(e){if("account"===e.field){var n=_.find(p.accounts,{id:Number(e.value)});a.push(n)}});for(var i=0;i<p.accounts.length;i++)_.some(a,{id:p.accounts[i].id})&&(p.accounts[i].canSelect=!1,t.push(p.accounts[i]));p.accounts=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+p.trigger.channel.toUpperCase()+p.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}()}var o,r}function v(e){t.hide(e)}p.currentUser=c.getCurrentUser(),p.allCondition=angular.copy(s),p.allConditions=angular.copy(n),p.setting=m,p.license=r,p.crudPermissions=u,p.hasModulePermissions={},p.newAllCondition=!1,p.errors=[],p.trigger=angular.copy(o),p.allCondition?g():(p.allCondition={operator:"equals"},p.newAllCondition=!0),p.allCondition.TriggerAllId=e.params.id||void 0,p.callStatuses=[{name:"Abandon",value:"abandoned"},{name:"Timeout",value:"timeout"},{name:"Hangup",value:"complete"},{name:"Reject",value:"rejected"},{name:"Ring",value:"called"},{name:"Answer",value:"connect"},{name:"NoSuchNumber",value:"nosuchnumber"},{name:"Busy",value:"busy"},{name:"NoAnswer",value:"noanswer"},{name:"Congestion",value:"congestion"},{name:"AgentReject",value:"agentreject"},{name:"AMD",value:"amd"}],p.onFieldSelection=function(){g()},p.addNewAllCondition=function(){p.errors=[],d.trigger.addAllCondition({id:e.params.id},p.allCondition).$promise.then(function(e){p.allConditions.unshift(e.toJSON()),i.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_CREATED_SUCCESS_TITLE")}),v(p.allConditions)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.condition.save"}];for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.condition.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.saveAllCondition=function(){p.errors=[],d.condition.update({id:p.allCondition.id},p.allCondition).$promise.then(function(){p.allConditions=_.map(p.allConditions,function(e){return e.id===p.allCondition.id?p.allCondition:e}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_SAVED_SUCCESS_TITLE")}),v(p.allConditions)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.condition.update"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.condition.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.deleteAllCondition=function(e){p.errors=[];var n=t.confirm({skipHide:!0}).title(a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETE_TITLE")).ariaLabel("Delete condition").ok(a.instant("TOOLS.DELETE")).cancel(a.instant("TOOLS.CANCEL")).targetEvent(e);t.show(n).then(function(){d.condition.delete({id:p.allCondition.id}).$promise.then(function(){p.allConditions=_.filter(p.allConditions,function(e){return e.id!==p.allCondition.id}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETED_SUCCESS_TITLE")}),v(p.allConditions)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.condition.delete"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.condition.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},p.closeDialog=v}e.$inject=["$state","$mdDialog","$q","$translate","toasty","allConditions","allCondition","trigger","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditAllConditionDialogController",e)}(),function(){"use strict";function e(e,l,a,n,i,t,d,c,m){var u=this;function s(){var o,r;"voice"===u.trigger.channel?(_.some(u.anyConditions.rows,["field","queue"])&&(u.queues||(o=[{id:401,type:"inbound"},{id:1501,type:"outbound"}],r=null,m.isAdmin()?c.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){u.queues=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VOICEQUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):c.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){r=e.rows||[]}).then(function(){for(var e=[],n=0;n<o.length;n++)e.push(c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:o[n].id}).$promise);return l.all(e)}).then(function(e){for(var n=_.map(e,function(e){return e&&e.rows?e.rows[0]:null}),t=[],a=0;a<o.length;a++){var i=_.find(n,["sectionId",o[a].id]);if(i)if(i.autoAssociation){var s=[];r.forEach(function(e){e.type===o[a].type&&s.push(e)}),t.push({rows:s,count:s.length})}else t.push(c.userProfileResource.get({sectionId:i.id}).$promise.then(function(e){return{count:e.count,rows:_.map(e.rows,function(e){return e.id=e.resourceId,delete e.resourceId,e})}}))}return l.all(t)}).then(function(e){var t=[],a=[];u.anyConditions.rows.forEach(function(e){if("queue"===e.field){var n=_.find(r,{name:e.value});a.push(n)}});for(var n=0;n<e.length;n++)(e[n].rows||[]).forEach(function(e){t.push(e)});_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(r,{id:e.id});n.canSelect=!1,t.push(n)}}),u.queues=t}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}))),_.some(u.anyConditions.rows,["field","routeId"])&&(u.outboundRoutes||(m.isAdmin()?c.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){u.outboundRoutes=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}):c.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){u.outboundRoutes=e.rows||[]}).then(function(){return c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:403}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return c.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u.outboundRoutes,{id:e.resourceId})}),a=null;a=[],u.anyConditions.rows.forEach(function(e){if("routeId"===e.field){var n=_.find(u.outboundRoutes,{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u.outboundRoutes,{id:e.id});n.canSelect=!1,t.push(n)}}),u.outboundRoutes=t})}else{var t=[],a=[];u.anyConditions.rows.forEach(function(e){if("routeId"===e.field){var n=_.find(u.outboundRoutes,{id:Number(e.value)});a.push(n)}});for(var i=0;i<u.outboundRoutes.length;i++)_.some(a,{id:u.outboundRoutes[i].id})&&(u.outboundRoutes[i].canSelect=!1,t.push(u.outboundRoutes[i]));u.outboundRoutes=t}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}))),_.some(u.anyConditions.rows,["field","agent"])&&(u.agents||(m.isAdmin()?c.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){u.agents=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):c.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){u.agents=e.rows||[]}).then(function(){return c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return c.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u.agents,{id:e.resourceId})}),a=null;a=[],u.anyConditions.rows.forEach(function(e){if("agent"===e.field){var n=_.find(u.agents,{name:e.value});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u.agents,{id:e.id});n.canSelect=!1,t.push(n)}}),u.agents=t})}else{var t=[],a=[];u.anyConditions.rows.forEach(function(e){if("agent"===e.field){var n=_.find(u.agents,{name:e.value});a.push(n)}});for(var i=0;i<u.agents.length;i++)_.some(a,{id:u.agents[i].id})&&(u.agents[i].canSelect=!1,t.push(u.agents[i]));u.agents=t}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})})))):function(){var e,s=u.trigger.channel+("chat"===u.trigger.channel?"Websites":"Accounts"),n=u.trigger.channel+("chat"===u.trigger.channel?"Website":"Account");switch(u.trigger.channel){case"chat":e=502;break;case"fax":e=902;break;case"mail":e=602;break;case"openchannel":e=802;break;case"sms":e=702;break;case"whatsapp":e=2102}m.isAdmin()?c[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){u[s]=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+u.trigger.channel.toUpperCase()+u.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):c[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){u[s]=e.rows||[]}).then(function(){return c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:e}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return c.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u[s],{id:e.resourceId})}),a=null;a=[],u.anyConditions.rows.forEach(function(e){if("account"===e.field){var n=_.find(u[s],{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u[s],{id:e.id});n.canSelect=!1,t.push(n)}}),u[s]=t})}else{var t=[],a=[];u.anyConditions.rows.forEach(function(e){if("account"===e.field){var n=_.find(u[s],{id:Number(e.value)});a.push(n)}});for(var i=0;i<u[s].length;i++)_.some(a,{id:u[s][i].id})&&(u[s][i].canSelect=!1,t.push(u[s][i]));u[s]=t}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+u.trigger.channel.toUpperCase()+u.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}()}function o(e){u.anyConditions=e||{count:0,rows:[]},s()}function r(){u.query.offset=(u.query.page-1)*u.query.limit,u.promise=c.trigger.getAnyConditions(u.query,o).$promise}function p(e,n){c.condition.delete({id:e.id}).$promise.then(function(){r(),n&&d.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETtrigger"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrigger",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}u.currentUser=m.getCurrentUser(),u.trigger={},u.anyConditions={count:0,rows:[]},u.selectedAnyConditions=[],u.query={fields:"id,field,operator,value,createdAt,updatedAt",limit:10,page:1},u.fields={queue:"Queue",lastevent:"Call_Status",routeId:"OutboundRoute",agent:"Agent",account:"Account",interaction:"Interaction",message:"Message"},u.callStatuses={abandoned:"Abandon",timeout:"Timeout",complete:"Hangup",rejected:"Reject",called:"Ring",connect:"Answer",nosuchnumber:"NoSuchNumber",busy:"Busy",noanswer:"NoAnswer",congestion:"Congestion",agentreject:"AgentReject",amd:"AMD"},u.messageStatuses={in:"Incoming",out:"Outgoing",accept:"Accepted",reject:"Rejected"},u.onInit=function(e,n){u.trigger=e,u.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},u.query.TriggerAnyId=u.trigger.id,u.query.id=u.trigger.id,r()},u.success=o,u.getAnyConditions=r,u.createOrEditAnyCondition=function(e,n){i.show({controller:"CreateOrEditAnyConditionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/triggers/edit/anyconditions/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{trigger:u.trigger,anyCondition:n,anyConditions:u.anyConditions.rows,license:null,setting:null,crudPermissions:u.crudPermissions}}).then(function(e){e&&(u.anyConditions={count:e.length,rows:e},s())})},u.exportSelectedAnyConditions=function(){var e=angular.copy(u.selectedAnyConditions);return u.selectedAnyConditions=[],e},u.deleteConfirm=function(e,n){var t=i.confirm().title(a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETE_TITLE")).ariaLabel("Delete condition").targetEvent(n).ok("OK").cancel(a.instant("TOOLS.CANCEL"));i.show(t).then(function(){p(e,!0)})},u.deleteAnyCondition=p,u.deleteSelectedAnyConditions=function(e){var n=i.confirm().title(a.instant("TOOLS.NOTIFICATIONS.CONDITIONS_DELETE_TITLE")).content(a.instant("TOOLS.NOTIFICATIONS.CONDITIONS_DELETE_MESSAGE",{total:u.selectedAnyConditions.length})).ariaLabel("Delete conditions").targetEvent(e).ok("OK").cancel(a.instant("TOOLS.CANCEL"));i.show(n).then(function(){u.selectedAnyConditions.forEach(function(e){p(e)}),u.selectedAnyConditions=[],d.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITIONS_DELETED_SUCCESS_TITLE")})})}}e.$inject=["$scope","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.tools").controller("TriggerAnyConditionsController",e)}(),function(){"use strict";function e(e,t,l,a,i,n,s,o,d,c,r,m,u){var p=this;function g(){switch(p.anyCondition.field){case"queue":p.queues||(o=[{id:401,type:"inbound"},{id:1501,type:"outbound"}],r=null,c.isAdmin()?d.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){p.queues=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VOICEQUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){r=e.rows||[]}).then(function(){for(var e=[],n=0;n<o.length;n++)e.push(d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:o[n].id}).$promise);return l.all(e)}).then(function(e){for(var n=_.map(e,function(e){return e&&e.rows?e.rows[0]:null}),t=[],a=0;a<o.length;a++){var i=_.find(n,["sectionId",o[a].id]);if(i)if(i.autoAssociation){var s=[];r.forEach(function(e){e.type===o[a].type&&s.push(e)}),t.push({rows:s,count:s.length})}else t.push(d.userProfileResource.get({sectionId:i.id}).$promise.then(function(e){return{count:e.count,rows:_.map(e.rows,function(e){return e.id=e.resourceId,delete e.resourceId,e})}}))}return l.all(t)}).then(function(e){var t=[],a=[];p.anyConditions.forEach(function(e){if("queue"===e.field){var n=_.find(r,{name:e.value});a.push(n)}});for(var n=0;n<e.length;n++)(e[n].rows||[]).forEach(function(e){t.push(e)});_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(r,{id:e.id});n.canSelect=!1,t.push(n)}}),p.queues=t}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}));break;case"routeId":p.outboundRoutes||(c.isAdmin()?d.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){p.outboundRoutes=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){p.outboundRoutes=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:403}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(p.outboundRoutes,{id:e.resourceId})}),a=null;a=[],p.anyConditions.forEach(function(e){if("routeId"===e.field){var n=_.find(p.outboundRoutes,{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(p.outboundRoutes,{id:e.id});n.canSelect=!1,t.push(n)}}),p.outboundRoutes=t})}else{var t=[],a=[];p.anyConditions.forEach(function(e){if("routeId"===e.field){var n=_.find(p.outboundRoutes,{id:Number(e.value)});a.push(n)}});for(var i=0;i<p.outboundRoutes.length;i++)_.some(a,{id:p.outboundRoutes[i].id})&&(p.outboundRoutes[i].canSelect=!1,t.push(p.outboundRoutes[i]));p.outboundRoutes=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}));break;case"agent":p.agents||(c.isAdmin()?d.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){p.agents=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){p.agents=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(p.agents,{id:e.resourceId})}),a=null;a=[],p.anyConditions.forEach(function(e){if("agent"===e.field){var n=_.find(p.agents,{name:e.value});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(p.agents,{id:e.id});n.canSelect=!1,t.push(n)}}),p.agents=t})}else{var t=[],a=[];p.anyConditions.forEach(function(e){if("agent"===e.field){var n=_.find(p.agents,{name:e.value});a.push(n)}});for(var i=0;i<p.agents.length;i++)_.some(a,{id:p.agents[i].id})&&(p.agents[i].canSelect=!1,t.push(p.agents[i]));p.agents=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}));break;case"account":!function(){var e,n=p.trigger.channel+("chat"===p.trigger.channel?"Website":"Account");switch(p.trigger.channel){case"chat":e=502;break;case"fax":e=902;break;case"mail":e=602;break;case"openchannel":e=802;break;case"sms":e=702;break;case"whatsapp":e=2102}c.isAdmin()?d[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.accounts=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+p.trigger.channel.toUpperCase()+p.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.accounts=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:e}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(p.accounts,{id:e.resourceId})}),a=null;a=[],p.anyConditions.forEach(function(e){if("account"===e.field){var n=_.find(p.accounts,{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(p.accounts,{id:e.id});n.canSelect=!1,t.push(n)}}),p.accounts=t})}else{var t=[],a=[];p.anyConditions.forEach(function(e){if("account"===e.field){var n=_.find(p.accounts,{id:Number(e.value)});a.push(n)}});for(var i=0;i<p.accounts.length;i++)_.some(a,{id:p.accounts[i].id})&&(p.accounts[i].canSelect=!1,t.push(p.accounts[i]));p.accounts=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+p.trigger.channel.toUpperCase()+p.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}()}var o,r}function v(e){t.hide(e)}p.currentUser=c.getCurrentUser(),p.anyCondition=angular.copy(s),p.anyConditions=angular.copy(n),p.setting=m,p.license=r,p.crudPermissions=u,p.hasModulePermissions={},p.newAnyCondition=!1,p.errors=[],p.trigger=angular.copy(o),p.anyCondition?g():(p.anyCondition={operator:"equals"},p.newAnyCondition=!0),p.anyCondition.TriggerAnyId=e.params.id||void 0,p.callStatuses=[{name:"Abandon",value:"abandoned"},{name:"Timeout",value:"timeout"},{name:"Hangup",value:"complete"},{name:"Reject",value:"rejected"},{name:"Ring",value:"called"},{name:"Answer",value:"connect"},{name:"NoSuchNumber",value:"nosuchnumber"},{name:"Busy",value:"busy"},{name:"NoAnswer",value:"noanswer"},{name:"Congestion",value:"congestion"},{name:"AgentReject",value:"agentreject"},{name:"AMD",value:"amd"}],p.onFieldSelection=function(){g()},p.addNewAnyCondition=function(){p.errors=[],d.trigger.addAnyCondition({id:e.params.id},p.anyCondition).$promise.then(function(e){p.anyConditions.unshift(e.toJSON()),i.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_CREATED_SUCCESS_TITLE")}),v(p.anyConditions)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.condition.save"}];for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.condition.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.saveAnyCondition=function(){p.errors=[],d.condition.update({id:p.anyCondition.id},p.anyCondition).$promise.then(function(){p.anyConditions=_.map(p.anyConditions,function(e){return e.id===p.anyCondition.id?p.anyCondition:e}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_SAVED_SUCCESS_TITLE")}),v(p.anyConditions)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.condition.update"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.condition.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.deleteAnyCondition=function(e){p.errors=[];var n=t.confirm({skipHide:!0}).title(a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETE_TITLE")).ariaLabel("Delete condition").ok(a.instant("TOOLS.DELETE")).cancel(a.instant("TOOLS.CANCEL")).targetEvent(e);t.show(n).then(function(){d.condition.delete({id:p.anyCondition.id}).$promise.then(function(){p.anyConditions=_.filter(p.anyConditions,function(e){return e.id!==p.allCondition.id}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETED_SUCCESS_TITLE")}),v(p.anyConditions)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.condition.delete"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.condition.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},p.closeDialog=v}e.$inject=["$state","$mdDialog","$q","$translate","toasty","anyConditions","anyCondition","trigger","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditAnyConditionDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l){var d=this;d.currentUser=o.getCurrentUser(),d.license=t,d.setting=a,d.trigger=r||e.params.trigger||{},d.selectedTab=e.params.tab||0,e.params.crudPermissions?d.crudPermissions=e.params.crudPermissions:(d.userProfileSection=l&&1==l.count?l.rows[0]:null,d.crudPermissions=o.parseCrudPermissions(d.userProfileSection?d.userProfileSection.crudPermissions:null)),d.gotoTriggers=function(){e.go("app.tools.triggers",{},{reload:"app.tools.triggers"})},d.saveTrigger=function(){i.trigger.update({id:d.trigger.id},d.trigger).$promise.then(function(){s.success({title:n.instant("TOOLS.NOTIFICATIONS.TRIGGER_SAVED_SUCCESS_TITLE")})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrigger",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$translate","license","setting","api","toasty","Auth","trigger","userProfileSection"],angular.module("app.tools").controller("TriggerController",e)}(),function(){"use strict";function e(e,n,a,t,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){n.go("app.tools.triggers.edit",{id:e.id,trigger:e,crudPermissions:g.crudPermissions})}function h(e){g.triggers=e||{count:0,rows:[]}}function f(){g.query.offset=(g.query.page-1)*g.query.limit,m.isAdmin()?g.promise=d.trigger.get(g.query,h).$promise:(g.query.id=g.userProfile.id,g.query.section="Triggers",g.promise=d.userProfile.getResources(g.query,h).$promise)}function b(e,n){d.trigger.delete({id:e.id}).$promise.then(function(){f(),n&&c.success({title:s.instant("TOOLS.NOTIFICATIONS.TRIGGER_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEtrigger"}];for(var n=0;n<e.data.errors.length;n++)c.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEtrigger",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}g.license=u,g.setting=p,g.currentUser=m.getCurrentUser(),g.triggers=o||{count:0,rows:[]},g.userProfile=r,g.userProfileSection=l&&1==l.count?l.rows[0]:null,g.crudPermissions=m.parseCrudPermissions(g.userProfileSection?g.userProfileSection.crudPermissions:null),g.selectedTriggers=[],g.query={fields:"id,name,channel,status,description,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},g.goToEditState=v,g.createOrEditTrigger=function(e,n){if(g.crudPermissions.readOnly||g.crudPermissions.canDelete&&!g.crudPermissions.canEdit)return void v(n);a.show({controller:"CreateOrEditTriggerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/triggers/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{trigger:n,triggers:g.triggers.rows,license:g.license,setting:g.setting,crudPermissions:g.crudPermissions}}).then(function(e){e&&(g.triggers={count:e.length,rows:e})})},g.success=h,g.getTriggers=f,g.deleteconfirm=function(e,n){var t=a.confirm().title(s.instant("TOOLS.NOTIFICATIONS.TRIGGER_DELETE_TITLE")).content(s.instant("TOOLS.NOTIFICATIONS.TRIGGER_DELETE_MESSAGE",{name:e.name})).ariaLabel("Delete trigger").targetEvent(n).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(t).then(function(){b(e,!0)})},g.exportSelectedTriggers=function(){var e=angular.copy(g.selectedTriggers);return g.selectedTriggers=[],e},g.deleteSelectedTriggers=function(e){var n=a.confirm().title(s.instant("TOOLS.NOTIFICATIONS.TRIGGERS_DELETE_TITLE")).content(s.instant("TOOLS.NOTIFICATIONS.TRIGGERS_DELETE_MESSAGE",{total:g.selectedTriggers.length})).ariaLabel("Delete triggers").targetEvent(e).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(n).then(function(){g.selectedTriggers.forEach(function(e){b(e)}),g.selectedTriggers=[],c.success({title:s.instant("TOOLS.NOTIFICATIONS.TRIGGERS_DELETED_SUCCESS_TITLE")})})},g.deselectTriggers=function(){g.selectedTriggers=[]},g.selectAllTriggers=function(){g.selectedTriggers=g.triggers.rows};var A=!0,E=1;e.$watch("vm.query.filter",function(e,n){A?i(function(){A=!1}):(n||(E=g.query.page),e!==n&&(g.query.page=1),e||(g.query.page=E),f())})}e.$inject=["$scope","$state","$mdDialog","$document","$timeout","$translate","triggers","userProfile","userProfileSection","api","toasty","Auth","license","setting"],angular.module("app.tools").controller("TriggersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_TRUNK",g.trunk=angular.copy(l),g.trunks=r,g.newTrunk=!1,g.trunk||(g.trunk={active:!0,type:"friend",dtmfmode:"rfc2833",qualify:"yes",t38pt_udptl:"no"},g.title="TOOLS.NEW_TRUNK",g.newTrunk=!0),g.addNewTrunk=function(){g.errors=[],d.trunk.save(g.trunk).$promise.then(function(e){g.trunks.unshift(e.toJSON()),o.success({title:"Trunk properly created",msg:g.trunk.name?g.trunk.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.trunk.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.trunk.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveTrunk=function(){g.errors=[],d.trunk.update({id:g.trunk.id},g.trunk).$promise.then(function(e){var n=_.find(g.trunks,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Trunk properly saved!",msg:g.trunk.name?g.trunk.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.trunk.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.trunk.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteTrunk=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The trunk will be deleted.").ariaLabel("Delete Trunk").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.trunk.delete({id:g.trunk.id}).$promise.then(function(){_.remove(g.trunks,{id:g.trunk.id}),o.success({title:"Trunk properly deleted!",msg:(g.trunk.name||"trunk")+" has been deleted!"}),v(g.trunk)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.trunk.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.trunk.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","trunks","trunk","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditTrunkDialogController",e)}(),function(){"use strict";function e(n,t,a,e,i,s,o){var r=this;function l(e){n.hide(e)}r.newTrunk=!0,r.trunk=angular.copy(i),r.trunks=s,r.title=o.instant("TOOLS.CLONE_TRUNK"),i&&i.name&&(r.title+=": "+i.name),r.cloneTrunk=function(){return e.trunk.clone({id:i.id},r.trunk).$promise.then(function(e){r.trunks.unshift(e.toJSON()),a.success({title:"Trunk properly cloned",msg:r.trunk.name?r.trunk.name+" has been cloned!":""}),t.go("app.tools.trunks.edit",{id:e.id}),l(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){r.errors=e.data.errors||[{message:e.toString(),type:"api.trunk.clone"}];for(var n=0;n<e.data.errors.length;n+=1)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.trunk.clone",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},r.closeDialog=l}e.$inject=["$mdDialog","$state","toasty","api","trunk","trunks","$translate"],angular.module("app.tools").controller("TrunkcloneController",e)}(),function(){"use strict";function e(t,e,a,i,s,n,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=n,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=e.protocol()+"://"+e.host(),u.trunk=c||t.params.trunk||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=t.params.tab||0,u.gotogoto=function(e,n){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:411}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.voice.realtime.trunks",{}):l.info({title:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.voice.realtime.trunks",{})}},u.clonedialog=function(e,n){a.show({controller:"TrunkcloneController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/trunks/edit/clone/clone.html",parent:angular.element(i.body),targetEvent:n,clickOutsideToClose:!0,locals:{trunk:e,trunks:u.trunks?u.trunks.rows:[],crudPermissions:u.crudPermissions}})},u.alert=l.info,u.gotoTrunks=function(){t.go("app.tools.trunks",{},{reload:"app.tools.trunks"})},u.saveTrunk=function(){r.trunk.update({id:u.trunk.id},u.trunk).$promise.then(function(){l.success({title:"Trunk updated!",msg:u.trunk.name?u.trunk.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunk",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_CONTEXTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:405}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;return n?n.autoAssociation?void 0:r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.contexts,{id:e.resourceId})}),t=null;if(u.trunk&&(t=_.find(u.contexts,{name:u.trunk.context})),t&&!_.some(n,["id",t.id])){var a=_.find(u.contexts,{id:t.id});a.canSelect=!1,n.push(a)}u.contexts=n}):r.voiceContext.get({fields:"id,name",sort:"name",defaultEntry:1}).$promise.then(function(e){u.contexts=e.rows||[]})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","trunk","userProfileSection"],angular.module("app.tools").controller("TrunkController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.trunks=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="trunks",f.listOrder="",f.listOrderAsc=null,f.selectedTrunks=[],f.query={fields:"createdAt,updatedAt,id,name,active,host,secret,defaultuser,context,callerid,type,dtmfmode,nat,qualify,allow,insecure,call_limit,registry,description,directmedia,callcounter,fromdomain,fromuser,outboundproxy,usereqphone,trustrpid,sendrpid,encryption,port,transport,t38pt_udptl,videosupport,otherFields",sort:"-updatedAt",limit:10,page:1},f.arraytype=_.keyBy([{option:"Friend",value:"'friend'"},{option:"User",value:"'user'"},{option:"Peer",value:"'peer'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraydtmfmode=_.keyBy([{option:"rfc2833",value:"'rfc2833'"},{option:"info",value:"'info'"},{option:"shortinfo",value:"'shortinfo'"},{option:"inband",value:"'inband'"},{option:"auto",value:"'auto'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraynat=_.keyBy([{option:"force_rport",value:"'force_rport'"},{option:"comedia",value:"'comedia'"},{option:"yes",value:"'yes'"},{option:"no",value:"'no'"},{option:"never",value:"'never'"},{option:"route",value:"'route'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayqualify=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayallow=_.keyBy([{option:"ulaw",value:"'ulaw'"},{option:"alaw",value:"'alaw'"},{option:"gsm",value:"'gsm'"},{option:"g723",value:"'g723'"},{option:"g726",value:"'g726'"},{option:"g722",value:"'g722'"},{option:"g729",value:"'g729'"},{option:"ilbc",value:"'ilbc'"},{option:"opus",value:"'opus'"},{option:"h264",value:"'h264'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayinsecure=_.keyBy([{option:"port",value:"'port'"},{option:"invite",value:"'invite'"},{option:"very",value:"'very'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraydirectmedia=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"},{option:"nonat",value:"'nonat'"},{option:"update",value:"'update'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraycallcounter=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayusereqphone=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraytrustrpid=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysendrpid=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"},{option:"pai",value:"'pai'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayencryption=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraytransport=_.keyBy([{option:"udp",value:"'udp'"},{option:"tcp",value:"'tcp'"},{option:"ws",value:"'ws'"},{option:"wss",value:"'wss'"},{option:"tls",value:"'tls'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayvideosupport=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"},{option:"Always",value:"'always'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.tools.trunks.edit",{id:e.id,trunk:e,crudPermissions:f.crudPermissions})},f.clonedialog=function(e,n){i.show({controller:"TrunkcloneController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/trunks/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{trunk:e,trunks:f.trunks?f.trunks.rows:[],crudPermissions:f.crudPermissions}})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:411}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.voice.realtime.trunks",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.voice.realtime.trunks",{})}},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("trunk")+"?").htmlContent("<b>"+(e.name||"trunk")+"</b> will be deleted.").ariaLabel("delete trunk").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getTrunks=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.trunk.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Trunks",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditTrunk=function(e,n){i.show({controller:"CreateOrEditTrunkDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/trunks/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{trunk:n,trunks:f.trunks.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteTrunk=y,f.exportSelectedTrunks=function(){var e=angular.copy(f.selectedTrunks);return f.selectedTrunks=[],e},f.deleteSelectedTrunks=function(e){var n=i.confirm().title("Are you sure want to delete the selected trunks?").htmlContent("<b>"+f.selectedTrunks.length+" selected</b> will be deleted.").ariaLabel("delete Trunks").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedTrunks.forEach(function(e){y(e)}),f.selectedTrunks=[]})},f.deselectTrunks=function(){f.selectedTrunks=[]},f.selectAllTrunks=function(){f.selectedTrunks=f.trunks.rows};var b=!0,A=1;function E(e){f.trunks=e||{count:0,rows:[]}}function y(e){m.trunk.delete({id:e.id}).$promise.then(function(){_.remove(f.trunks.rows,{id:e.id}),f.trunks.count-=1,f.trunks.rows.length||f.getTrunks(),p.success({title:_.startCase("Trunk")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEtrunk"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEtrunk",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getTrunks())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","trunks","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("TrunksController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_VARIABLE",g.variable=angular.copy(l),g.variables=r,g.newVariable=!1,g.variable||(g.variable={},g.title="TOOLS.NEW_VARIABLE",g.newVariable=!0),g.addNewVariable=function(){g.errors=[],d.variable.save(g.variable).$promise.then(function(e){g.variables.unshift(e.toJSON()),o.success({title:"Variable properly created",msg:g.variable.name?g.variable.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.variable.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.variable.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveVariable=function(){g.errors=[],d.variable.update({id:g.variable.id},g.variable).$promise.then(function(e){var n=_.find(g.variables,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Variable properly saved!",msg:g.variable.name?g.variable.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.variable.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.variable.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteVariable=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The variable will be deleted.").ariaLabel("Delete Variable").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.variable.delete({id:g.variable.id}).$promise.then(function(){_.remove(g.variables,{id:g.variable.id}),o.success({title:"Variable properly deleted!",msg:(g.variable.name||"variable")+" has been deleted!"}),v(g.variable)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.variable.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.variable.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","variables","variable","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditVariableDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.variables=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="variables",f.listOrder="",f.listOrderAsc=null,f.selectedVariables=[],f.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditVariableDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/variables/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{variable:e,variables:f.variables.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("variable")+"?").htmlContent("<b>"+(e.name||"variable")+"</b> will be deleted.").ariaLabel("delete variable").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getVariables=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.variable.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Variables",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditVariable=function(e,n){i.show({controller:"CreateOrEditVariableDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/variables/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{variable:n,variables:f.variables.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteVariable=y,f.exportSelectedVariables=function(){var e=angular.copy(f.selectedVariables);return f.selectedVariables=[],e},f.deleteSelectedVariables=function(e){var n=i.confirm().title("Are you sure want to delete the selected variables?").htmlContent("<b>"+f.selectedVariables.length+" selected</b> will be deleted.").ariaLabel("delete Variables").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedVariables.forEach(function(e){y(e)}),f.selectedVariables=[]})},f.deselectVariables=function(){f.selectedVariables=[]},f.selectAllVariables=function(){f.selectedVariables=f.variables.rows};var b=!0,A=1;function E(e){f.variables=e||{count:0,rows:[]}}function y(e){m.variable.delete({id:e.id}).$promise.then(function(){_.remove(f.variables.rows,{id:e.id}),f.variables.count-=1,f.variables.rows.length||f.getVariables(),p.success({title:_.startCase("Variable")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvariable"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvariable",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getVariables())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","variables","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("VariablesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VIDEO.EDIT_SCREENRECORDING",g.screenRecording=angular.copy(l),g.screenRecordings=r,g.newscreenRecording=!1,g.screenRecording||(g.screenRecording={},g.title="VIDEO.NEW_SCREENRECORDING",g.newscreenRecording=!0),g.addNewscreenRecording=function(){g.errors=[],d.screenRecording.save(g.screenRecording).$promise.then(function(e){g.screenRecordings.unshift(e.toJSON()),o.success({title:"screenRecording properly created",msg:g.screenRecording.name?g.screenRecording.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.screenRecording.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.screenRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.savescreenRecording=function(){g.errors=[],d.screenRecording.update({id:g.screenRecording.id},g.screenRecording).$promise.then(function(e){var n=_.find(g.screenRecordings,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"screenRecording properly saved!",msg:g.screenRecording.name?g.screenRecording.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.screenRecording.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.screenRecording.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deletescreenRecording=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The screenRecording will be deleted.").ariaLabel("Delete screenRecording").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.screenRecording.delete({id:g.screenRecording.id}).$promise.then(function(){_.remove(g.screenRecordings,{id:g.screenRecording.id}),o.success({title:"screenRecording properly deleted!",msg:(g.screenRecording.name||"screenRecording")+" has been deleted!"}),v(g.screenRecording)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.screenRecording.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.screenRecording.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,d.user.get({fields:"id,name,fullname",sort:"name",nolimit:"true"}).$promise.then(function(e){g.users=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_USERS",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","screenRecordings","screenRecording","api","Auth","license","setting","crudPermissions"],angular.module("app.video").controller("CreateOrEditscreenRecordingDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c,m=this;if(m.loading=!1,m.recording=Object.assign({},i),m.route="screenRecording",m.element=l,m.actionOptions=Object.assign({},s),m.path=r,m.label=o,m.app="video",m.model="screenRecording",console.log("TCL: vm.path",m.path),console.log("TCL: vm.recording[vm.path]",m.recording[m.path]),m.filename=-1<m.recording[m.path].indexOf("/")?m.recording[m.path].substring(m.recording[m.path].lastIndexOf("/")+1):-1<m.recording[m.path].indexOf("\\")?m.recording[m.path].substring(m.recording[m.path].lastIndexOf("\\")+1):m.recording[m.path],m.format=!1,_.isNil(m.recording.format)&&(m.recording.format=m.filename.slice(m.filename.lastIndexOf("."))),(".wav"===m.recording.format&&"audio"===m.element||".mp4"===m.recording.format&&"video"===m.element)&&(m.format=!0),m.found=!0,m.format&&(c=d.defer(),a.screenRecording.download({id:m.recording.id,path:String(m.path)}).$promise.then(function(e){m.format=!0,m.found=!0,c.resolve()}).catch(function(e){console.log("err"),m.format=!1,m.found=!1,c.resolve()}),c.promise),!_.isNil(s.properties)&&s.properties){if(m.properties=Object.assign({},i),Object.keys(i).forEach(function(e){String(e[0].toUpperCase())===String(e[0])&&delete m.properties[e]}),m.propertiesDefault={},!_.isNil(s.propertiesList)&&0<s.propertiesList.length){m.propertiesDefault=Object.assign({},i);var u=s.propertiesList,p=Object.keys(i),g=!0;p.forEach(function(n){g=!0,u.forEach(function(e){String(n)===String(e)&&(g=!1)}),g&&delete m.propertiesDefault[n]}),m.properties=m.propertiesDefault}if(!_.isNil(s.extraData)&&0<s.extraData.length){m.propertiesExtra={};for(var v=s.extraData,h=0;h<v.length;h++)for(var f=v[h].values,b=v[h].model,A=0;A<f.length;A++)m.propertiesExtra[f[A].text]=i[b][f[A].key];m.properties=Object.assign({},m.propertiesDefault,m.propertiesExtra)}}m.closeDialog=function(){n.hide()}}e.$inject=["$scope","$mdDialog","toasty","api","recording","actionOptions","label","varPath","elementTag","$q"],angular.module("app.video").controller("screenRecordingplayController",e)}(),function(){"use strict";function e(e,n,t,a,r,l,i,o,s,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.screenRecordings=s||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="screenRecordings",f.listOrder="",f.listOrderAsc=null,f.selectedScreenRecordings=[],f.query={fields:"createdAt,updatedAt,id,interactionid,channel,format,value,rating,UserId,duration,startedAt,closedAt",createdAt:"@msUtils.firstLastDayMonth()",includeAll:"true",sort:"-updatedAt",limit:10,page:1},f.query.createdAt=u.firstLastDayMonth(),f.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE_RANGE"}],f.playrecording=function(e,n,t,a,i){var s={route:"screenRecording",name:"screenRecordings",model:"screenRecording",singular:"screenRecording"},a=String(a),o=String(t);console.log("TCL: path",String(t)),r.show({controller:"screenRecordingplayController",controllerAs:"vm",templateUrl:"app/main/apps/video/views/screenRecordings/partialViews/play.html",parent:angular.element(l.body),targetEvent:n,clickOutsideToClose:!0,locals:{recording:e,recordings:f.screenRecordings.rows,license:f.license,setting:null,item:s,actionOptions:{upperTitle:!1,lowerTitle:!0,properties:!0,propertiesIcon:"icon-video",propertiesList:["format","interactionid","duration","startedAt","closedAt","createdAt"],extraData:[{model:"User",values:[{key:"name",text:"agentname"}]}]},label:a,varPath:o,elementTag:String(i)}})},f.downloadfile2=function(e,n){var t=!1,a=_.isNil(e.format)?e.value.substring(e.value.lastIndexOf(".")):e.format;t=".mp4"===a;var s=-1<e.value.lastIndexOf("/")?e.value.substring(e.value.lastIndexOf("/")+1):-1<e.value.lastIndexOf("\\")?e.value.substring(e.value.lastIndexOf("\\")+1):e.value;return m.screenRecording.download({id:e.id}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=s;var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else"404"===String(e.status)&&!1===t?p.info({title:o.instant("VIDEO.CANT_DOWNLOAD_THIS_FILE"),msg:o.instant("VIDEO.WRONG_EXTENSION")}):"404"===String(e.status)?p.info({title:o.instant("VIDEO.CANT_DOWNLOAD_THIS_FILE"),msg:o.instant("VIDEO.FILE_NOT_FOUND")}):p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.screenRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},f.deleteconfirm=function(e,n){var t=r.confirm().title("Are you sure want to delete the "+_.startCase("screenRecording")+"?").htmlContent("<b>"+(e.name||"screenRecording")+"</b> will be deleted.").ariaLabel("delete screenRecording").targetEvent(n).ok("OK").cancel("CANCEL");r.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getScreenRecordings=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.screenRecording.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ScreenRecordings",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditscreenRecording=function(e,n){r.show({controller:"CreateOrEditscreenRecordingDialogController",controllerAs:"vm",templateUrl:"app/main/apps/video/views/screenRecordings/create/dialog.html",parent:angular.element(l.body),targetEvent:e,clickOutsideToClose:!0,locals:{screenRecording:n,screenRecordings:f.screenRecordings.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deletescreenRecording=y,f.exportSelectedScreenRecordings=function(){var e=angular.copy(f.selectedScreenRecordings);return f.selectedScreenRecordings=[],e},f.deleteSelectedScreenRecordings=function(e){var n=r.confirm().title("Are you sure want to delete the selected screenRecordings?").htmlContent("<b>"+f.selectedScreenRecordings.length+" selected</b> will be deleted.").ariaLabel("delete screenRecordings").targetEvent(e).ok("OK").cancel("CANCEL");r.show(n).then(function(){f.selectedScreenRecordings.forEach(function(e){y(e)}),f.selectedScreenRecordings=[]})},f.deselectScreenRecordings=function(){f.selectedScreenRecordings=[]},f.selectAllScreenRecordings=function(){f.selectedScreenRecordings=f.screenRecordings.rows},f.convertDuration=function(e){var n=Math.floor(e/1e3%60),t=Math.floor(e/6e4%60),a=Math.floor(e/36e5%24),i=a<10?"0"+String(a):String(a),s=t<10?"0"+String(t):String(t),o=n<10?"0"+String(n):String(n);return i+":"+s+":"+o},m.user.get({fields:"id,name,fullname",sort:"name",nolimit:"true"}).$promise.then(function(e){f.users=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_USERS",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.screenRecordings=e||{count:0,rows:[]}}function y(e){m.screenRecording.delete({id:e.id}).$promise.then(function(){_.remove(f.screenRecordings.rows,{id:e.id}),f.screenRecordings.count-=1,f.screenRecordings.rows.length||f.getScreenRecordings(),p.success({title:_.startCase("screenRecording")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEscreenRecording"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEscreenRecording",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?i(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getScreenRecordings())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","screenRecordings","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.video").controller("ScreenRecordingsController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l){var d=this;function c(e){return _.isEmpty(e)||isNaN(e)?e:parseInt(e,10)}function m(e){switch(e){case"sound":if(!d.application.appdata)return;return[{key:"save_name",value:d.application.appdata.split("/").pop()}];case"squareProject":if(!d.application.project)return;return[{key:"name",value:d.application.project.split(",")[1]}];case"tag":if(!d.application.tag)return;return[{key:"name",value:d.application.tag}];case"trunk":if(!d.application.trunk)return;return[{key:"name",value:d.application.trunk}];case"user":if(!d.application.user&&!d.application.users)return;return d.application.user?[{key:"name",value:d.application.user.split("/")[1]}]:_.map(d.application.users,function(e){return{key:"name",value:e.split("/")[1]}});case"variable":if(!d.application.name)return;return[{key:"name",value:d.application.name}];case"voiceContext":if(!d.application.context)return;return[{key:"name",value:d.application.context}];case"voiceMail":if(!d.application.voiceMail)return;return[{key:"mailbox",value:d.application.voiceMail.split("@")[0]}];case"voiceQueue":if(!d.application.queue)return;return[{key:"name",value:d.application.queue}]}}function u(){o.getResourcesByRole(d.currentUser,"trunk",{fields:"id,name",sort:"name",nolimit:"true"},m("trunk")).then(function(e){d.trunks=e}).catch(function(){s.error({title:i.instant("TOOLS.TRUNKS"),msg:i.instant("VOICE.NOTIFICATIONS.TRUNKS_GET_ERROR")})})}function p(){o.getResourcesByRole(d.currentUser,"sound",{fields:"id,name,save_name",sort:"name",nolimit:"true"},m("sound")).then(function(e){d.sounds=e}).catch(function(){s.error({title:i.instant("TOOLS.SOUNDS"),msg:i.instant("VOICE.NOTIFICATIONS.SOUNDS_GET_ERROR")})})}function g(){var e={fields:"id,name,role",sort:"name",nolimit:"true"},n=m("user"),t=[o.getResourcesByRole(d.currentUser,"user",_.merge(e,{role:"agent"}),n,"Agents"),o.getResourcesByRole(d.currentUser,"user",_.merge(e,{role:"telephone"}),n,"Telephones")];a.all(t).then(function(e){var n=_(e).flatMap(function(e){return e.rows}).orderBy([function(e){return e.name.toLowerCase()}]).value();d.users={rows:n,count:n.length}}).catch(function(){s.error({title:i.instant("STAFF.USERS"),msg:i.instant("VOICE.NOTIFICATIONS.USERS_GET_ERROR")})})}function v(){(d.application.appdata||"custom"===d.application.appType)&&e.hide(d.application),e.hide()}d.currentUser=r.getCurrentUser(),d.application=angular.copy(n),d.crudPermissions=l,d.errors=[],d.init=function(){d.application.appdata&&function(){var e=[];switch(d.application.appType){case"agi":d.application.project=d.application.appdata;break;case"dial":e=d.application.appdata.split(","),d.application.tech=c(e[0]),d.application.timeout=c(e[1]),d.application.options=c(e[2]),d.application.url=c(e[3]);break;case"externalDial":e=d.application.appdata.split(","),d.application.trunk=e[0].split("/")[1],d.application.phone=e[0].split("/")[2],d.application.timeout=c(e[1]),d.application.options=c(e[2]),d.application.url=c(e[3]);break;case"goTo":e=d.application.appdata.split(","),d.application.context=c(e[0]),d.application.extension=c(e[1]),d.application.priority=c(e[2]);break;case"internalDial":e=d.application.appdata.split(","),d.application.user=c(e[0]),d.application.timeout=c(e[1]),d.application.options=c(e[2]),d.application.url=c(e[3]);break;case"outboundDial":e=d.application.appdata.split(","),d.application.trunk=e[0].split("/")[1],d.application.phone=e[0].split("/")[2],d.application.timeout=c(e[1]),d.application.options=c(e[2]),d.application.url=c(e[3]),d.application.prefix=d.application.phone?d.application.phone.split("$")[0]:void 0,d.application.callerId=d.application.callerID?"CALLERID(all)="+d.application.callerID:void 0;break;case"playback":e=d.application.appdata.split(","),d.application.appdata=c(e[0]),d.application.options=c(e[1]);break;case"queue":e=d.application.appdata.split(","),d.application.queue=c(e[0]),d.application.options=c(e[1]),d.application.URL=c(e[2]),d.application.sound=c(e[3]),d.application.timeout=c(e[4]),d.application.agi=c(e[5]),d.application.macro=c(e[6]),d.application.gosub=c(e[7]),d.application.rule=c(e[8]),d.application.position=c(e[9]);break;case"ringGroup":e=d.application.appdata.split(","),d.application.users=e[0].split("&"),d.application.timeout=c(e[1]),d.application.options=c(e[2]),d.application.url=c(e[3]);break;case"set":e=d.application.appdata.split("="),d.application.name=e[0],d.application.value=e[1];break;case"voicemail":e=d.application.appdata.split(","),d.application.voiceMail=c(e[0]),d.application.options=c(e[1])}}();switch(d.application.appType){case"agi":o.getResourcesByRole(d.currentUser,"squareProject",{fields:"id,name",sort:"name",nolimit:"true"},m("squareProject")).then(function(e){d.projects=e}).catch(function(){s.error({title:i.instant("CALLYSQUARE.CALLYSQUARE")+" "+i.instant("CALLYSQUARE.PROJECTS"),msg:i.instant("VOICE.NOTIFICATIONS.CALLYSQUARE_PROJECTS_GET_ERROR")})});break;case"externalDial":u();break;case"goTo":o.getResourcesByRole(d.currentUser,"voiceContext",{fields:"id,name",sort:"name",nolimit:"true"},m("voiceContext")).then(function(e){d.contexts=e}).catch(function(){s.error({title:i.instant("VOICE.CONTEXTS"),msg:i.instant("VOICE.NOTIFICATIONS.VOICE_CONTEXTS_GET_ERROR")})});break;case"internalDial":g();break;case"outboundDial":o.getResourcesByRole(d.currentUser,"tag",{fields:"id,name",sort:"name",nolimit:"true"},m("tag")).then(function(e){d.tags=e}).catch(function(){s.error({title:i.instant("TOOLS.TAGS"),msg:i.instant("VOICE.NOTIFICATIONS.TAGS_GET_ERROR")})}),u();break;case"playback":p();break;case"queue":p(),o.getResourcesByRole(d.currentUser,"voiceQueue",{type:"inbound",fields:"id,name,type",sort:"name",nolimit:"true"},m("voiceQueue")).then(function(e){d.queues=e}).catch(function(){s.error({title:i.instant("VOICE.VOICEQUEUES"),msg:i.instant("VOICE.NOTIFICATIONS.QUEUES_GET_ERROR")})});break;case"ringGroup":g();break;case"set":o.getResourcesByRole(d.currentUser,"variable",{fields:"id,name",sort:"name",nolimit:"true"},m("variable")).then(function(e){d.variables=e}).catch(function(){s.error({title:i.instant("TOOLS.VARIABLES"),msg:i.instant("VOICE.NOTIFICATIONS.VARIABLES_GET_ERROR")})});break;case"voicemail":o.getResourcesByRole(d.currentUser,"voiceMail",{fields:"id,mailbox",sort:"mailbox",nolimit:"true"},m("voiceMail")).then(function(e){d.voiceMails=e}).catch(function(){s.error({title:i.instant("VOICE.VOICEMAILS"),msg:i.instant("VOICE.NOTIFICATIONS.VOICEMAILS_GET_ERROR")})})}},d.saveRoutingApp=function(){d.errors=[],function(){var e=[];switch(d.application.appType){case"agi":d.application.appdata=d.application.project;break;case"dial":e[0]=d.application.tech,e[1]=d.application.timeout,e[2]=d.application.options,e[3]=d.application.url,d.application.appdata=e.join(",");break;case"externalDial":e[0]=["SIP",d.application.trunk,d.application.phone].join("/"),e[1]=d.application.timeout,e[2]=d.application.options,e[3]=d.application.url,d.application.appdata=e.join(",");break;case"goTo":e[0]=d.application.context,e[1]=d.application.extension,e[2]=d.application.priority,d.application.appdata=e.join(",");break;case"internalDial":e[0]=d.application.user,e[1]=d.application.timeout,e[2]=d.application.options,e[3]=d.application.url,d.application.appdata=e.join(",");break;case"outboundDial":d.application.phone=t.cutdigits?(d.application.prefix||"")+"${EXTEN:"+t.cutdigits+"}":(d.application.prefix||"")+"${EXTEN}","none"===t.recordingFormat?d.application.options=d.application.options.replace("U(xcally-mixmonitor-context)",""):d.application.options.indexOf("U(xcally-mixmonitor-context)")<0&&(d.application.options+="U(xcally-mixmonitor-context)"),e[0]=["SIP",d.application.trunk,d.application.phone].join("/"),e[1]=d.application.timeout,e[2]=d.application.options,e[3]=d.application.url,d.application.appdata=e.join(",");break;case"playback":e[0]=d.application.appdata,e[1]=d.application.options,d.application.appdata=e.join(",");break;case"queue":e[0]=d.application.queue,e[1]=d.application.options,e[2]=d.application.URL,e[3]=d.application.sound,e[4]=d.application.timeout,e[5]=d.application.agi,e[6]=d.application.macro,e[7]=d.application.gosub,e[8]=d.application.rule,e[9]=d.application.position,d.application.appdata=e.join(",");break;case"ringGroup":e[0]=d.application.users.join("&"),e[1]=d.application.timeout,e[2]=d.application.options,e[3]=d.application.url,d.application.appdata=e.join(",");break;case"set":e[0]=d.application.name,e[1]=d.application.value,d.application.appdata=e.join("=");break;case"voicemail":e[0]=d.application.voiceMail,e[1]=d.application.options,d.application.appdata=e.join(",")}}(),v()},d.closeDialog=v}e.$inject=["$mdDialog","$q","$translate","toasty","application","route","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditRoutingAppDialogController",e)}(),function(){"use strict";function e(n,t,e,a,i,s,o,r,l){var d=this;function c(){var e=[{key:"name",value:d.interval.IntervalId}];s.getResourcesByRole(d.currentUser,"interval",{fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0},e).then(function(e){d.intervals=e}).catch(function(){i.error({title:t.instant("TOOLS.INTERVALS"),msg:t.instant("VOICE.NOTIFICATIONS.INTERVALS_GET_ERROR")})})}function m(e){n.hide(e)}d.currentUser=o.getCurrentUser(),d.interval=angular.copy(e),d.intervals=a||{rows:[],count:0},d.types=["always","custom","list"],d.crudPermissions=r,d.errors=[],d.daysOfWeek=l.getDaysOfWeek(),d.monthNumber=l.getMonthNumber(),d.monthName=l.getMonthName(),d.daysOfMonth=l.getDaysOfMonth(),d.initialize=function(){if("*,*,*,*"===d.interval.interval)return d.type=d.interval.IntervalId&&d.interval.application?"list":"always",void("list"===d.type&&c());d.type="custom";var e=d.interval.interval.split(","),n=e[0],t=e[1],a=e[2],i=e[3];if("*"!==n){var s,o=n.split("-")[0],r=n.split("-")[1];(s=new Date).setHours(Number(o.split(":")[0])),s.setMinutes(Number(o.split(":")[1])),d.timeRangeFrom=s,(s=new Date).setHours(Number(r.split(":")[0])),s.setMinutes(Number(r.split(":")[1])),d.timeRangeTo=s}"*"!==t&&(d.dayOfWeekFrom=t.split("-")[0],d.dayOfWeekTo=t.split("-")[1]);"*"!==a&&(d.monthDayFrom=a.split("-")[0],d.monthDayTo=a.split("-")[1]);"*"!==i&&(d.monthFrom=i.split("-")[0],d.monthTo=i.split("-")[1])},d.onTypeChange=function(){"list"===d.type&&0===d.intervals.count&&c()},d.saveInterval=function(){d.errors=[],d.interval.interval=function(){if(["always","list"].includes(d.type))return"*,*,*,*";var e=[];if("*"!==d.timeRangeFrom&&d.timeRangeFrom&&d.timeRangeTo){var n=(d.timeRangeFrom.getHours()<10?"0":"")+d.timeRangeFrom.getHours()+":"+(d.timeRangeFrom.getMinutes()<10?"0":"")+d.timeRangeFrom.getMinutes(),t=(d.timeRangeTo.getHours()<10?"0":"")+d.timeRangeTo.getHours()+":"+(d.timeRangeTo.getMinutes()<10?"0":"")+d.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return d.dayOfWeekFrom?d.dayOfWeekTo?e.push(d.dayOfWeekFrom+"-"+d.dayOfWeekTo):e.push(d.dayOfWeekFrom):e.push("*"),d.monthDayFrom?d.monthDayTo?e.push(d.monthDayFrom+"-"+d.monthDayTo):e.push(d.monthDayFrom):e.push("*"),d.monthFrom?d.monthTo?e.push(d.monthFrom+"-"+d.monthTo):e.push(d.monthFrom):e.push("*"),e.join()}(),"list"!==d.type&&(d.interval.IntervalId=null);m(d.interval)},d.closeDialog=m}e.$inject=["$mdDialog","$translate","interval","intervals","toasty","api","Auth","crudPermissions","IndexFactory"],angular.module("app.voice").controller("EditRoutingIntervalDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.chanSpies=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="chanSpies",f.listOrder="",f.listOrderAsc=null,f.selectedChanSpies=[],f.query={fields:"createdAt,updatedAt,id,name,prefix,options,auth,password,record,recordingFormat,description",sort:"-updatedAt",limit:10,page:1},f.arrayoptions=_.keyBy([{option:"b: Only spy on channels involved in a bridged call.",value:"'b'"},{option:"B: Instead of whispering on a single channel barge in on both channels involved in the call.",value:"'B'"},{option:"E: Exit when the spied-on channel hangs up.",value:"'E'"},{option:"o: Only listen to audio coming from this channel.",value:"'o'"},{option:"q: Don't play a beep when beginning to spy on a channel, or speak the selected channel name.",value:"'q'"},{option:"s: Skip the playback of the channel type (i.e. SIP, IAX, etc) when speaking the selected channel name.",value:"'s'"},{option:"S: Stop when no more channels are left to spy on.",value:"'S'"},{option:"w: Enable whisper mode, so the spying channel can talk to the spied-on channel.",value:"'w'"},{option:"W: Enable private whisper mode, so the spying channel can talk to the spied-on channel but cannot listen to that channel.",value:"'W'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayrecordingFormat=_.keyBy([{option:"wav",value:"'wav'"},{option:"gsm",value:"'gsm'"},{option:"wav49",value:"'WAV'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editdialog=function(e,n){i.show({controller:"CreateOrEditchanSpyDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/chanSpies/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{chanSpy:e,chanSpies:f.chanSpies.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("chanSpy")+"?").htmlContent("<b>"+(e.name||"chanSpy")+"</b> will be deleted.").ariaLabel("delete chanSpy").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getChanSpies=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.voiceChanSpy.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ChanSpies",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditchanSpy=function(e,n){i.show({controller:"CreateOrEditchanSpyDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/chanSpies/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{chanSpy:n,chanSpies:f.chanSpies.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deletechanSpy=y,f.exportSelectedChanSpies=function(){var e=angular.copy(f.selectedChanSpies);return f.selectedChanSpies=[],e},f.deleteSelectedChanSpies=function(e){var n=i.confirm().title("Are you sure want to delete the selected chanSpies?").htmlContent("<b>"+f.selectedChanSpies.length+" selected</b> will be deleted.").ariaLabel("delete chanSpys").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedChanSpies.forEach(function(e){y(e)}),f.selectedChanSpies=[]})},f.deselectChanSpies=function(){f.selectedChanSpies=[]},f.selectAllChanSpies=function(){f.selectedChanSpies=f.chanSpies.rows};var b=!0,A=1;function E(e){f.chanSpies=e||{count:0,rows:[]}}function y(e){m.voiceChanSpy.delete({id:e.id}).$promise.then(function(){_.remove(f.chanSpies.rows,{id:e.id}),f.chanSpies.count-=1,f.chanSpies.rows.length||f.getChanSpies(),p.success({title:_.startCase("chanSpy")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceChanSpy"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceChanSpy",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getChanSpies())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","chanSpies","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.voice").controller("ChanSpiesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_CHANSPY",g.chanSpy=angular.copy(l),g.chanSpies=r,g.newchanSpy=!1,g.chanSpy||(g.chanSpy={recordingFormat:"wav"},g.title="VOICE.NEW_CHANSPY",g.newchanSpy=!0),g.addNewchanSpy=function(){g.errors=[],d.voiceChanSpy.save(g.chanSpy).$promise.then(function(e){g.chanSpies.unshift(e.toJSON()),o.success({title:"chanSpy properly created",msg:g.chanSpy.name?g.chanSpy.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceChanSpy.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceChanSpy.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.savechanSpy=function(){g.errors=[],d.voiceChanSpy.update({id:g.chanSpy.id},g.chanSpy).$promise.then(function(e){var n=_.find(g.chanSpies,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"chanSpy properly saved!",msg:g.chanSpy.name?g.chanSpy.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceChanSpy.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceChanSpy.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deletechanSpy=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The chanSpy will be deleted.").ariaLabel("Delete chanSpy").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceChanSpy.delete({id:g.chanSpy.id}).$promise.then(function(){_.remove(g.chanSpies,{id:g.chanSpy.id}),o.success({title:"chanSpy properly deleted!",msg:(g.chanSpy.name||"chanSpy")+" has been deleted!"}),v(g.chanSpy)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceChanSpy.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceChanSpy.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","chanSpies","chanSpy","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditchanSpyDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.contexts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="contexts",f.listOrder="",f.listOrderAsc=null,f.selectedContexts=[],f.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",defaultEntry:"false",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditContextDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/contexts/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{context:e,contexts:f.contexts.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("context")+"?").htmlContent("<b>"+(e.name||"context")+"</b> will be deleted.").ariaLabel("delete context").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getContexts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.voiceContext.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Contexts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditContext=function(e,n){i.show({controller:"CreateOrEditContextDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/contexts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{context:n,contexts:f.contexts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteContext=y,f.exportSelectedContexts=function(){var e=angular.copy(f.selectedContexts);return f.selectedContexts=[],e},f.deleteSelectedContexts=function(e){var n=i.confirm().title("Are you sure want to delete the selected contexts?").htmlContent("<b>"+f.selectedContexts.length+" selected</b> will be deleted.").ariaLabel("delete Contexts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedContexts.forEach(function(e){y(e)}),f.selectedContexts=[]})},f.deselectContexts=function(){f.selectedContexts=[]},f.selectAllContexts=function(){f.selectedContexts=f.contexts.rows};var b=!0,A=1;function E(e){f.contexts=e||{count:0,rows:[]}}function y(e){m.voiceContext.delete({id:e.id}).$promise.then(function(){_.remove(f.contexts.rows,{id:e.id}),f.contexts.count-=1,f.contexts.rows.length||f.getContexts(),p.success({title:_.startCase("Context")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceContext"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceContext",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getContexts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","contexts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.voice").controller("ContextsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_CONTEXT",g.context=angular.copy(l),g.contexts=r,g.newContext=!1,g.context||(g.context={},g.title="VOICE.NEW_CONTEXT",g.newContext=!0),g.addNewContext=function(){g.errors=[],d.voiceContext.save(g.context).$promise.then(function(e){g.contexts.unshift(e.toJSON()),o.success({title:"Context properly created",msg:g.context.name?g.context.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceContext.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceContext.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveContext=function(){g.errors=[],d.voiceContext.update({id:g.context.id},g.context).$promise.then(function(e){var n=_.find(g.contexts,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Context properly saved!",msg:g.context.name?g.context.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceContext.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceContext.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteContext=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The context will be deleted.").ariaLabel("Delete Context").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceContext.delete({id:g.context.id}).$promise.then(function(){_.remove(g.contexts,{id:g.context.id}),o.success({title:"Context properly deleted!",msg:(g.context.name||"context")+" has been deleted!"}),v(g.context)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceContext.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceContext.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","contexts","context","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditContextDialogController",e)}(),function(){"use strict";function e(t,e,a,i,n,s,o,r,l){var d=this;function c(t){return e(function(e,n){o.voiceExtension.addApplications({id:t},d.applications?d.applications.rows:[]).$promise.then(function(){e()}).catch(function(e){n(e)})})}function m(e){t.hide(e)}d.currentUser=r.getCurrentUser(),d.crudPermissions=l,d.inboundRoute=angular.copy(s),d.inboundRoutes=n,d.newInboundRoute=!1,d.hasModulePermissions={},d.errors=[],d.initialize=function(){d.inboundRoute||(d.inboundRoute={appdata:"Inbound Call",type:"inbound",context:"from-sip"},d.newInboundRoute=!0);e=[{key:"name",value:d.inboundRoute.context}],o.getResourcesByRole(d.currentUser,"voiceContext",{fields:"id,name",sort:"name",nolimit:!0},e).then(function(e){d.contexts=e}).catch(function(){i.error({title:a.instant("VOICE.CONTEXTS"),msg:a.instant("VOICE.NOTIFICATIONS.VOICE_CONTEXTS_GET_ERROR")})});var e},d.getRouting=function(){if(d.newinboundRoute)return;var e={sort:"priority",VoiceExtensionId:d.inboundRoute.id,isApp:!0,nolimit:!0};o.voiceExtension.get(e).$promise.then(function(e){d.applications=e||{count:0,rows:[]}})},d.addNewInboundRoute=function(){d.errors=[],o.voiceExtension.save(d.inboundRoute).$promise.then(function(e){c(e.id).then(function(){d.inboundRoutes.unshift(e.toJSON()),i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_CREATED_SUCCESS_TITLE")}),m(e)})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.save"}];for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},d.saveInboundRoute=function(){d.errors=[],o.voiceExtension.update({id:d.inboundRoute.id},d.inboundRoute).$promise.then(function(e){var n=_.find(d.inboundRoutes,{id:e.id});if(n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),d.applications)return c(d.inboundRoute.id)}).then(function(){i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_SAVED_SUCCESS_TITLE")}),m(s)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.update"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},d.deleteInboundRoute=function(e){d.errors=[];var n=t.confirm().title(a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_TITLE")).content(a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_MESSAGE",{name:d.inboundRoute.exten})).ariaLabel("Delete inbound route").ok(a.instant("TOOLS.DELETE")).cancel(a.instant("TOOLS.CANCEL")).targetEvent(e);t.show(n).then(function(){o.voiceExtension.delete({id:d.inboundRoute.id}).$promise.then(function(){_.remove(d.inboundRoutes,{id:d.inboundRoute.id}),i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETED_SUCCESS_TITLE")}),m(d.inboundRoute)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.delete"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})})},d.closeDialog=m}e.$inject=["$mdDialog","$q","$translate","toasty","inboundRoutes","inboundRoute","api","Auth","crudPermissions"],angular.module("app.voice").controller("CreateOrEditInboundRouteDialogController",e)}(),function(){"use strict";function e(e,i,a,n,s,o,r,t,l,d,c){var m=this;function u(e,n){1===m.applications.rows.length&&1===n&&(n=0);var t=m.applications.rows[n];i.show({controller:"EditRoutingAppDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/routing/dialog.html",parent:angular.element(a.body),targetEvent:e,locals:{application:t,route:m.inboundRoute,crudPermissions:m.crudPermissions}}).then(function(e){e?(m.applications.rows[n].appdata===e.appdata&&"custom"!==e.appType||p(),m.applications.rows[n]=e):t.id||m.applications.rows.splice(n,1)}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}function p(){m.pendingChanges=!0}m.currentUser=t.getCurrentUser(),m.inboundRoute=l||e.params.inboundRoute||{},m.contexts=d,m.userProfileSection=c&&1==c.count?c.rows[0]:null,m.crudPermissions=t.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={sort:"priority",VoiceExtensionId:m.inboundRoute.id,isApp:!0,nolimit:!0},m.apps=[{app:"AGI",appAlias:"CallySquare",appType:"agi",context:"from-sip",type:"Inbound",interval:"*,*,*,*"},{app:"Dial",appType:"dial",context:"from-sip",type:"Inbound",options:"xX",interval:"*,*,*,*"},{app:"Dial",appType:"internalDial",context:"from-sip",type:"Inbound",options:"xX",interval:"*,*,*,*"},{app:"Dial",appType:"externalDial",context:"from-sip",type:"Inbound",interval:"*,*,*,*",options:"xX"},{app:"Dial",appType:"ringGroup",context:"from-sip",type:"Inbound",interval:"*,*,*,*",options:"xX"},{app:"Playback",appType:"playback",context:"from-sip",type:"Inbound",interval:"*,*,*,*",answer:!0},{app:"Queue",appType:"queue",context:"from-sip",type:"Inbound",options:"xX",appdata:",xX,,,300,,,,,",interval:"*,*,*,*",answer:!0},{app:"Set",appType:"set",context:"from-sip",type:"Inbound",separator:"=",interval:"*,*,*,*"},{app:"Voicemail",appType:"voicemail",context:"from-sip",type:"Inbound",interval:"*,*,*,*"},{app:"goto",appType:"goTo",context:"from-sip",type:"Inbound",interval:"*,*,*,*"},{app:"hangup",appType:"hangup",context:"from-sip",type:"Inbound",interval:"*,*,*,*"},{app:null,appType:"custom",type:"Inbound",interval:"*,*,*,*"}],m.sortableAppsOptions={group:{name:"apps",pull:"clone",put:!1},animation:100,sort:!1},m.sortableRoutingOptions={group:{name:"apps",put:!0},animation:100,disabled:!m.crudPermissions.canEdit,onAdd:function(e){u(e,e.newIndex)},onUpdate:function(){p()}},m.selectedApplications=[],m.onInit=function(){if(t.isAdmin())return;e=[{key:"name",value:m.inboundRoute.context}],o.getResourcesByRole(m.currentUser,"voiceContext",{fields:"id,name",sort:"name",nolimit:!0},e).then(function(e){m.contexts=e}).catch(function(){r.error({title:s.instant("VOICE.CONTEXTS"),msg:s.instant("VOICE.NOTIFICATIONS.VOICE_CONTEXTS_GET_ERROR")})});var e},m.onActionsTabSelection=function(){m.applications||o.voiceExtension.get(m.query).$promise.then(function(e){m.applications=e||{count:0,rows:[]}})},m.gotoInboundRoutes=function(){e.go("app.voice.inboundRoutes",{},{reload:"app.voice.inboundRoutes"})},m.saveInboundRoute=function(){o.voiceExtension.update({id:m.inboundRoute.id},m.inboundRoute).$promise.then(function(){n(function(n,t){if(!m.applications)return n();o.voiceExtension.addApplications({id:m.inboundRoute.id},m.applications.rows).$promise.then(function(e){m.applications.rows=e.rows,n()}).catch(function(e){t(e)})}).then(function(){m.pendingChanges=!1,r.success({title:s.instant("VOICE.NOTIFICATIONS.EXTENSION_SAVED_SUCCESS_TITLE")})})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceExtension",msg:e.data?JSON.stringify(e.data):e.toString()})})},m.editApplication=u,m.editInterval=function(e,n){var t=m.applications.rows[n];i.show({controller:"EditRoutingIntervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/routing/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:void 0,crudPermissions:m.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,p())})},m.deleteApplication=function(e,n,t){var a=i.confirm().title(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATION_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATION_DELETE_MESSAGE",{name:e.app})).ariaLabel("Delete application").targetEvent(t).ok("OK").cancel(s.instant("TOOLS.CANCEL"));i.show(a).then(function(){m.applications.rows.splice(n,1),p()})},m.deleteSelectedApplications=function(e){var n=i.confirm().title(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATIONS_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATIONS_DELETE_MESSAGE",{total:m.selectedApplications.length})).ariaLabel("Delete applications").targetEvent(e).ok("OK").cancel(s.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedApplications.forEach(function(e){_.remove(m.applications.rows,{id:e.id})}),m.selectedApplications=[],p()})}}e.$inject=["$state","$mdDialog","$document","$q","$translate","api","toasty","Auth","inboundRoute","contexts","userProfileSection"],angular.module("app.voice").controller("InboundRouteController",e)}(),function(){"use strict";function e(e,n,a,t,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){g.inboundRoutes=e||{count:0,rows:[]}}function h(){g.query.offset=(g.query.page-1)*g.query.limit,m.isAdmin()?g.promise=d.voiceExtension.get(g.query,v).$promise:(g.query.id=g.userProfile.id,g.query.section="InboundRoutes",g.promise=d.userProfile.getResources(g.query,v).$promise)}function f(e){d.voiceExtension.delete({id:e.id}).$promise.then(function(){_.remove(g.inboundRoutes.rows,{id:e.id}),g.inboundRoutes.count-=1,g.inboundRoutes.rows.length||h(),c.success({title:s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceExtension"}];for(var n=0;n<e.data.errors.length;n++)c.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceExtension",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}g.license=u,g.setting=p,g.currentUser=m.getCurrentUser(),g.inboundRoutes=o,g.userProfile=r,g.userProfileSection=l&&1==l.count?l.rows[0]:null,g.crudPermissions=m.parseCrudPermissions(g.userProfileSection?g.userProfileSection.crudPermissions:null),g.selectedInboundRoutes=[],g.query={fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",type:"inbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,page:1},g.editRoute=function(e){n.go("app.voice.inboundRoutes.edit",{id:e.id,inboundRoute:e,crudPermissions:g.crudPermissions})},g.createOrEditInboundRoute=function(e,n){a.show({controller:"CreateOrEditInboundRouteDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/inboundRoutes/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{inboundRoute:n,inboundRoutes:g.inboundRoutes.rows,crudPermissions:g.crudPermissions}})},g.success=v,g.getInboundRoutes=h,g.deleteConfirm=function(e,n){var t=a.confirm().title(s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_MESSAGE",{name:e.exten})).ariaLabel("Delete extension").targetEvent(n).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(t).then(function(){f(e)})},g.exportSelectedInboundRoutes=function(){var e=angular.copy(g.selectedInboundRoutes);return g.selectedInboundRoutes=[],e},g.deleteSelectedInboundRoutes=function(e){var n=a.confirm().title(s.instant("VOICE.NOTIFICATIONS.EXTENSIONS_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.EXTENSIONS_DELETE_MESSAGE",{total:g.selectedInboundRoutes.length})).ariaLabel("Delete extensions").targetEvent(e).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(n).then(function(){g.selectedInboundRoutes.forEach(function(e){f(e)}),g.selectedInboundRoutes=[]})};var b=!0,A=1;e.$watch("vm.query.filter",function(e,n){b?i(function(){b=!1}):(n||(A=g.query.page),e!==n&&(g.query.page=1),e||(g.query.page=A),h())})}e.$inject=["$scope","$state","$mdDialog","$document","$timeout","$translate","inboundRoutes","userProfile","userProfileSection","api","toasty","Auth","license","setting"],angular.module("app.voice").controller("InboundRoutesController",e)}(),function(){"use strict";function e(t,e,a,i,n,s,o,r,l){var d=this;function c(t){return e(function(e,n){o.voiceExtension.addApplications({id:t},d.applications?d.applications.rows:[]).$promise.then(function(){e()}).catch(function(e){n(e)})})}function m(e){t.hide(e)}d.currentUser=r.getCurrentUser(),d.crudPermissions=l,d.internalRoute=angular.copy(s),d.internalRoutes=n,d.newInternalRoute=!1,d.hasModulePermissions={},d.errors=[],d.initialize=function(){d.internalRoute||(d.internalRoute={appdata:"Internal Call",type:"internal",context:"from-sip"},d.newInternalRoute=!0);e=[{key:"name",value:d.internalRoute.context}],o.getResourcesByRole(d.currentUser,"voiceContext",{fields:"id,name",sort:"name",nolimit:!0},e).then(function(e){d.contexts=e}).catch(function(){i.error({title:a.instant("VOICE.CONTEXTS"),msg:a.instant("VOICE.NOTIFICATIONS.VOICE_CONTEXTS_GET_ERROR")})});var e},d.getRouting=function(){if(d.newInternalRoute)return;var e={sort:"priority",VoiceExtensionId:d.internalRoute.id,isApp:!0,nolimit:!0};o.voiceExtension.get(e).$promise.then(function(e){d.applications=e||{count:0,rows:[]}})},d.addNewInternalRoute=function(){d.errors=[],o.voiceExtension.save(d.internalRoute).$promise.then(function(e){c(e.id).then(function(){d.internalRoutes.unshift(e.toJSON()),i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_CREATED_SUCCESS_TITLE")}),m(e)})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.save"}];for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},d.saveInternalRoute=function(){d.errors=[],o.voiceExtension.update({id:d.internalRoute.id},d.internalRoute).$promise.then(function(e){var n=_.find(d.internalRoutes,{id:e.id});if(n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),d.applications)return c(d.internalRoute.id)}).then(function(){i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_SAVED_SUCCESS_TITLE")}),m(s)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.update"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},d.deleteInternalRoute=function(e){d.errors=[];var n=t.confirm().title(a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_TITLE")).content(a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_MESSAGE",{name:d.internalRoute.exten})).ariaLabel("Delete internal route").ok(a.instant("TOOLS.DELETE")).cancel(a.instant("TOOLS.CANCEL")).targetEvent(e);t.show(n).then(function(){o.voiceExtension.delete({id:d.internalRoute.id}).$promise.then(function(){_.remove(d.internalRoutes,{id:d.internalRoute.id}),i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETED_SUCCESS_TITLE")}),m(d.internalRoute)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.delete"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})})},d.closeDialog=m}e.$inject=["$mdDialog","$q","$translate","toasty","internalRoutes","internalRoute","api","Auth","crudPermissions"],angular.module("app.voice").controller("CreateOrEditInternalRouteDialogController",e)}(),function(){"use strict";function e(e,i,a,n,s,o,r,t,l,d,c){var m=this;function u(e,n){1===m.applications.rows.length&&1===n&&(n=0);var t=m.applications.rows[n];i.show({controller:"EditRoutingAppDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/routing/dialog.html",parent:angular.element(a.body),targetEvent:e,locals:{application:t,route:m.internalRoute,crudPermissions:m.crudPermissions}}).then(function(e){e?(m.applications.rows[n].appdata===e.appdata&&"custom"!==e.appType||p(),m.applications.rows[n]=e):t.id||m.applications.rows.splice(n,1)}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}function p(){m.pendingChanges=!0}m.currentUser=t.getCurrentUser(),m.internalRoute=l||e.params.internalRoute||{},m.contexts=d,m.userProfileSection=c&&1==c.count?c.rows[0]:null,m.crudPermissions=t.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={sort:"priority",VoiceExtensionId:m.internalRoute.id,isApp:!0,nolimit:!0},m.apps=[{app:"AGI",appAlias:"CallySquare",appType:"agi",context:"from-sip",type:"Internal",interval:"*,*,*,*"},{app:"Dial",appType:"dial",context:"from-sip",type:"Internal",options:"xX",interval:"*,*,*,*"},{app:"Dial",appType:"internalDial",context:"from-sip",type:"Internal",options:"xX",interval:"*,*,*,*"},{app:"Dial",appType:"externalDial",context:"from-sip",type:"Internal",interval:"*,*,*,*",options:"xX"},{app:"Dial",appType:"ringGroup",context:"from-sip",type:"Internal",interval:"*,*,*,*",options:"xX"},{app:"Playback",appType:"playback",context:"from-sip",type:"Internal",interval:"*,*,*,*",answer:!0},{app:"Queue",appType:"queue",context:"from-sip",type:"Internal",options:"xX",appdata:",xX,,,300,,,,,",interval:"*,*,*,*",answer:!0},{app:"Set",appType:"set",context:"from-sip",type:"Internal",separator:"=",interval:"*,*,*,*"},{app:"Voicemail",appType:"voicemail",context:"from-sip",type:"Internal",interval:"*,*,*,*"},{app:"goto",appType:"goTo",context:"from-sip",type:"Internal",interval:"*,*,*,*"},{app:"hangup",appType:"hangup",context:"from-sip",type:"Internal",interval:"*,*,*,*"},{app:null,appType:"custom",type:"Internal",interval:"*,*,*,*"}],m.sortableAppsOptions={group:{name:"apps",pull:"clone",put:!1},animation:100,sort:!1},m.sortableRoutingOptions={group:{name:"apps",put:!0},animation:100,disabled:!m.crudPermissions.canEdit,onAdd:function(e){u(e,e.newIndex)},onUpdate:function(){p()}},m.selectedApplications=[],m.onInit=function(){if(t.isAdmin())return;e=[{key:"name",value:m.internalRoute.context}],o.getResourcesByRole(m.currentUser,"voiceContext",{fields:"id,name",sort:"name",nolimit:!0},e).then(function(e){m.contexts=e}).catch(function(){r.error({title:s.instant("VOICE.CONTEXTS"),msg:s.instant("VOICE.NOTIFICATIONS.VOICE_CONTEXTS_GET_ERROR")})});var e},m.onActionsTabSelection=function(){m.applications||o.voiceExtension.get(m.query).$promise.then(function(e){m.applications=e||{count:0,rows:[]}})},m.gotoInternalRoutes=function(){e.go("app.voice.internalRoutes",{},{reload:"app.voice.internalRoutes"})},m.saveInternalRoute=function(){o.voiceExtension.update({id:m.internalRoute.id},m.internalRoute).$promise.then(function(){n(function(n,t){if(!m.applications)return n();o.voiceExtension.addApplications({id:m.internalRoute.id},m.applications.rows).$promise.then(function(e){m.applications.rows=e.rows,n()}).catch(function(e){t(e)})}).then(function(){m.pendingChanges=!1,r.success({title:s.instant("VOICE.NOTIFICATIONS.EXTENSION_SAVED_SUCCESS_TITLE")})})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceExtension",msg:e.data?JSON.stringify(e.data):e.toString()})})},m.editApplication=u,m.editInterval=function(e,n){var t=m.applications.rows[n];i.show({controller:"EditRoutingIntervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/routing/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:void 0,crudPermissions:m.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,p())})},m.deleteApplication=function(e,n,t){var a=i.confirm().title(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATION_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATION_DELETE_MESSAGE",{name:e.app})).ariaLabel("Delete application").targetEvent(t).ok("OK").cancel(s.instant("TOOLS.CANCEL"));i.show(a).then(function(){m.applications.rows.splice(n,1),p()})},m.deleteSelectedApplications=function(e){var n=i.confirm().title(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATIONS_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATIONS_DELETE_MESSAGE",{total:m.selectedApplications.length})).ariaLabel("Delete applications").targetEvent(e).ok("OK").cancel(s.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedApplications.forEach(function(e){_.remove(m.applications.rows,{id:e.id})}),m.selectedApplications=[],p()})}}e.$inject=["$state","$mdDialog","$document","$q","$translate","api","toasty","Auth","internalRoute","contexts","userProfileSection"],angular.module("app.voice").controller("InternalRouteController",e)}(),function(){"use strict";function e(e,n,a,t,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){g.internalRoutes=e||{count:0,rows:[]}}function h(){g.query.offset=(g.query.page-1)*g.query.limit,m.isAdmin()?g.promise=d.voiceExtension.get(g.query,v).$promise:(g.query.id=g.userProfile.id,g.query.section="InternalRoutes",g.promise=d.userProfile.getResources(g.query,v).$promise)}function f(e){d.voiceExtension.delete({id:e.id}).$promise.then(function(){_.remove(g.internalRoutes.rows,{id:e.id}),g.internalRoutes.count-=1,g.internalRoutes.rows.length||h(),c.success({title:s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceExtension"}];for(var n=0;n<e.data.errors.length;n++)c.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceExtension",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}g.license=u,g.setting=p,g.currentUser=m.getCurrentUser(),g.internalRoutes=o,g.userProfile=r,g.userProfileSection=l&&1==l.count?l.rows[0]:null,g.crudPermissions=m.parseCrudPermissions(g.userProfileSection?g.userProfileSection.crudPermissions:null),g.selectedInternalRoutes=[],g.query={fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",type:"internal",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,page:1},g.editRoute=function(e){n.go("app.voice.internalRoutes.edit",{id:e.id,internalRoute:e,crudPermissions:g.crudPermissions})},g.createOrEditInternalRoute=function(e,n){a.show({controller:"CreateOrEditInternalRouteDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/internalRoutes/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{internalRoute:n,internalRoutes:g.internalRoutes.rows,crudPermissions:g.crudPermissions}})},g.success=v,g.getInternalRoutes=h,g.deleteConfirm=function(e,n){var t=a.confirm().title(s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_MESSAGE",{name:e.exten})).ariaLabel("Delete extension").targetEvent(n).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(t).then(function(){f(e)})},g.exportSelectedInternalRoutes=function(){var e=angular.copy(g.selectedInternalRoutes);return g.selectedInternalRoutes=[],e},g.deleteSelectedInternalRoutes=function(e){var n=a.confirm().title(s.instant("VOICE.NOTIFICATIONS.EXTENSIONS_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.EXTENSIONS_DELETE_MESSAGE",{total:g.selectedInternalRoutes.length})).ariaLabel("Delete extensions").targetEvent(e).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(n).then(function(){g.selectedInternalRoutes.forEach(function(e){f(e)}),g.selectedInternalRoutes=[]})};var b=!0,A=1;e.$watch("vm.query.filter",function(e,n){b?i(function(){b=!1}):(n||(A=g.query.page),e!==n&&(g.query.page=1),e||(g.query.page=A),h())})}e.$inject=["$scope","$state","$mdDialog","$document","$timeout","$translate","internalRoutes","userProfile","userProfileSection","api","toasty","Auth","license","setting"],angular.module("app.voice").controller("InternalRoutesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_MUSICONHOLD",g.musiconhold=angular.copy(l),g.musiconholds=r,g.newMusicOnHold=!1,g.musiconhold||(g.musiconhold={mode:"files"},g.title="VOICE.NEW_MUSICONHOLD",g.newMusicOnHold=!0),g.addNewMusicOnHold=function(){g.errors=[],d.voiceMusicOnHold.save(g.musiconhold).$promise.then(function(e){g.musiconholds.unshift(e.toJSON()),o.success({title:"MusicOnHold properly created",msg:g.musiconhold.name?g.musiconhold.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMusicOnHold.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveMusicOnHold=function(){g.errors=[],d.voiceMusicOnHold.update({id:g.musiconhold.id},g.musiconhold).$promise.then(function(e){var n=_.find(g.musiconholds,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"MusicOnHold properly saved!",msg:g.musiconhold.name?g.musiconhold.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMusicOnHold.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteMusicOnHold=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The musiconhold will be deleted.").ariaLabel("Delete MusicOnHold").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceMusicOnHold.delete({id:g.musiconhold.id}).$promise.then(function(){_.remove(g.musiconholds,{id:g.musiconhold.id}),o.success({title:"MusicOnHold properly deleted!",msg:(g.musiconhold.name||"musiconhold")+" has been deleted!"}),v(g.musiconhold)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMusicOnHold.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","musiconholds","musiconhold","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditMusicOnHoldDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.musiconholdMohSounds=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.voiceMusicOnHold.getSounds(m.query,u).$promise}function g(e){d.voiceMusicOnHold.removeSound({id:t.params.id,id2:e.id}).$promise.then(function(){_.remove(m.musiconholdMohSounds.rows,{id:e.id}),m.musiconholdMohSounds.count-=1,m.musiconholdMohSounds.rows.length||p(),l.success({title:"MohSound deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETvoiceMusicOnHold"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMusicOnHold",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.musiconhold={},m.musiconholdMohSounds={count:0,rows:[]},m.selectedMusicOnHoldMohSounds=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,save_name,converted_format,audio",limit:10,page:1},m.init=function(e,n){m.musiconhold=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.VoiceMusicOnHoldId=m.musiconhold.id,m.query.id=m.musiconhold.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the mohSound?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("mohSound #")+e.id||"mohSound")+"</b> will be deleted.").ariaLabel("delete mohSound").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.voiceMusicOnHoldDownload=function(s,e,n){return d.sound.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="mohSound"+s.id,a=new Blob(n,{type:e.type});t=s.converted_format?s.save_name+"."+s.converted_format:s.save_name;var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMusicOnHold.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getMusicOnHoldMohSounds=p,m.createOrEditMusicOnHoldMohSound=function(e,n){o.show({controller:"CreateOrEditMohSoundDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/musiconholds/edit/mohSounds/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{musiconhold:m.musiconhold,mohSound:n,mohSounds:m.musiconholdMohSounds.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedMusicOnHoldMohSounds=function(){var e=angular.copy(m.selectedMusicOnHoldMohSounds);return m.selectedMusicOnHoldMohSounds=[],e},m.deleteMusicOnHoldMohSound=g,m.deleteSelectedMusicOnHoldMohSounds=function(e){var n=o.confirm().title("Are you sure want to delete the selected mohSounds?").htmlContent("<b>"+m.selectedMusicOnHoldMohSounds.length+" selected</b> will be deleted.").ariaLabel("delete mohSounds").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedMusicOnHoldMohSounds.forEach(function(e){g(e)}),m.selectedMusicOnHoldMohSounds=[]})},c.hasRole("admin")?d.sound.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){m.sounds=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_SOUNDS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.sound.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){m.sounds=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:m.currentUser.userProfileId,sectionId:1007}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(m.sounds,{id:e.resourceId})}),t=null;if(m.musiconhold&&(t=_.find(m.sounds,{id:Number(m.musiconhold.id)})),t&&!_.some(n,["id",t.id])){var a=_.find(m.sounds,{id:t.id});a.canSelect=!1,n.push(a)}m.sounds=n})}else{var t=[],a=null;m.musiconhold&&(a=_.find(m.sounds,{id:Number(m.musiconhold.id)}));for(var i=0;i<m.sounds.length;i++)a&&m.sounds[i].id===a.id&&(m.sounds[i].canSelect=!1,t.push(m.sounds[i]));m.sounds=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.voice").controller("MusicOnHoldMohSoundsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_MOHSOUND",g.mohSound=angular.copy(l),g.mohSounds=r,g.newMohSound=!1,g.mohSound||(g.mohSound={},g.title="VOICE.NEW_MOHSOUND",g.newMohSound=!0),n.params.id&&(g.mohSound.VoiceMusicOnHoldId=n.params.id),g.addNewMohSound=function(){g.errors=[],d.voiceMusicOnHold.addSound({id:n.params.id},g.mohSound).$promise.then(function(e){g.mohSounds.unshift(e.toJSON()),o.success({title:"MohSound properly created",msg:g.mohSound.name?g.mohSound.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMusicOnHold.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveMohSound=function(){g.errors=[],d.voiceMusicOnHold.update({id:g.mohSound.id},g.mohSound).$promise.then(function(e){var n=_.find(g.mohSounds,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"MohSound properly saved!",msg:g.mohSound.name?g.mohSound.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMusicOnHold.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteMohSound=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The mohSound will be deleted.").ariaLabel("Delete MohSound").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceMusicOnHold.delete({id:g.mohSound.id}).$promise.then(function(){_.remove(g.mohSounds,{id:g.mohSound.id}),o.success({title:"MohSound properly deleted!",msg:(g.mohSound.name||"mohSound")+" has been deleted!"}),v(g.mohSound)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMusicOnHold.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.sound.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){g.sounds=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_SOUNDS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.sound.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){g.sounds=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1007}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.sounds,{id:e.resourceId})}),t=null;if(g.mohSound&&(t=_.find(g.sounds,{id:Number(g.mohSound.id)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.sounds,{id:t.id});a.canSelect=!1,n.push(a)}g.sounds=n})}else{var t=[],a=null;g.mohSound&&(a=_.find(g.sounds,{id:Number(g.mohSound.id)}));for(var i=0;i<g.sounds.length;i++)a&&g.sounds[i].id===a.id&&(g.sounds[i].canSelect=!1,t.push(g.sounds[i]));g.sounds=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","mohSounds","mohSound","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditMohSoundDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.musiconhold=c||e.params.musiconhold||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoMusicOnHolds=function(){e.go("app.voice.musiconholds",{},{reload:"app.voice.musiconholds"})},u.saveMusicOnHold=function(){r.voiceMusicOnHold.update({id:u.musiconhold.id},u.musiconhold).$promise.then(function(){l.success({title:"MusicOnHold updated!",msg:u.musiconhold.name?u.musiconhold.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMusicOnHold",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","musiconhold","userProfileSection"],angular.module("app.voice").controller("MusicOnHoldController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.musiconholds=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="musiconholds",f.listOrder="",f.listOrderAsc=null,f.selectedMusicOnHolds=[],f.query={fields:"createdAt,updatedAt,id,name,mode,directory,application,format,sort",defaultEntry:"false",limit:10,page:1},f.arraymode=_.keyBy([{option:"Files",value:"'files'"},{option:"Custom",value:"'custom'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysort=_.keyBy([{option:"Random",value:"'random'"},{option:"Alphabetical",value:"'alpha'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.voice.musiconholds.edit",{id:e.id,musiconhold:e,crudPermissions:f.crudPermissions})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("musiconhold")+"?").htmlContent("<b>"+(e.name||"musiconhold")+"</b> will be deleted.").ariaLabel("delete musiconhold").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getMusicOnHolds=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.voiceMusicOnHold.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="MusicOnHolds",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditMusicOnHold=function(e,n){i.show({controller:"CreateOrEditMusicOnHoldDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/musiconholds/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{musiconhold:n,musiconholds:f.musiconholds.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteMusicOnHold=y,f.exportSelectedMusicOnHolds=function(){var e=angular.copy(f.selectedMusicOnHolds);return f.selectedMusicOnHolds=[],e},f.deleteSelectedMusicOnHolds=function(e){var n=i.confirm().title("Are you sure want to delete the selected musiconholds?").htmlContent("<b>"+f.selectedMusicOnHolds.length+" selected</b> will be deleted.").ariaLabel("delete MusicOnHolds").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedMusicOnHolds.forEach(function(e){y(e)}),f.selectedMusicOnHolds=[]})},f.deselectMusicOnHolds=function(){f.selectedMusicOnHolds=[]},f.selectAllMusicOnHolds=function(){f.selectedMusicOnHolds=f.musiconholds.rows};var b=!0,A=1;function E(e){f.musiconholds=e||{count:0,rows:[]}}function y(e){m.voiceMusicOnHold.delete({id:e.id}).$promise.then(function(){_.remove(f.musiconholds.rows,{id:e.id}),f.musiconholds.count-=1,f.musiconholds.rows.length||f.getMusicOnHolds(),p.success({title:_.startCase("MusicOnHold")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceMusicOnHold"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceMusicOnHold",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getMusicOnHolds())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","musiconholds","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.voice").controller("MusicOnHoldsController",e)}(),function(){"use strict";function e(t,e,a,i,n,s,o,r,l){var d=this;function c(t){return e(function(e,n){o.voiceExtension.addApplications({id:t},d.applications?d.applications.rows:[]).$promise.then(function(){e()}).catch(function(e){n(e)})})}function m(e){t.hide(e)}d.currentUser=r.getCurrentUser(),d.crudPermissions=l,d.outboundRoute=angular.copy(s),d.outboundRoutes=n,d.newOutboundRoute=!1,d.hasModulePermissions={},d.errors=[],d.initialize=function(){d.outboundRoute||(d.outboundRoute={appdata:"Outbound Call",type:"outbound",context:"from-sip",recordingFormat:"none"},d.newOutboundRoute=!0);e=[{key:"name",value:d.outboundRoute.context}],o.getResourcesByRole(d.currentUser,"voiceContext",{fields:"id,name",sort:"name",nolimit:!0},e).then(function(e){d.contexts=e}).catch(function(){i.error({title:a.instant("VOICE.CONTEXTS"),msg:a.instant("VOICE.NOTIFICATIONS.VOICE_CONTEXTS_GET_ERROR")})});var e},d.getRouting=function(){if(d.newOutboundRoute)return;var e={sort:"priority",VoiceExtensionId:d.outboundRoute.id,isApp:!0,nolimit:!0};o.voiceExtension.get(e).$promise.then(function(e){d.applications=e||{count:0,rows:[]}})},d.addNewOutboundRoute=function(){d.errors=[],o.voiceExtension.save(d.outboundRoute).$promise.then(function(e){c(e.id).then(function(){d.outboundRoutes.unshift(e.toJSON()),i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_CREATED_SUCCESS_TITLE")}),m(e)})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.save"}];for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},d.saveOutboundRoute=function(){d.errors=[],o.voiceExtension.update({id:d.outboundRoute.id},d.outboundRoute).$promise.then(function(e){var n=_.find(d.outboundRoutes,{id:e.id});if(n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),d.applications)return c(d.outboundRoute.id)}).then(function(){i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_SAVED_SUCCESS_TITLE")}),m(s)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.update"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},d.deleteOutboundRoute=function(e){d.errors=[];var n=t.confirm().title(a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_TITLE")).content(a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_MESSAGE",{name:d.outboundRoute.exten})).ariaLabel("Delete outbound route").ok(a.instant("TOOLS.DELETE")).cancel(a.instant("TOOLS.CANCEL")).targetEvent(e);t.show(n).then(function(){o.voiceExtension.delete({id:d.outboundRoute.id}).$promise.then(function(){_.remove(d.outboundRoutes,{id:d.outboundRoute.id}),i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETED_SUCCESS_TITLE")}),m(d.outboundRoute)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.delete"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})})},d.closeDialog=m}e.$inject=["$mdDialog","$q","$translate","toasty","outboundRoutes","outboundRoute","api","Auth","crudPermissions"],angular.module("app.voice").controller("CreateOrEditOutboundRouteDialogController",e)}(),function(){"use strict";function e(e,i,a,n,s,o,r,t,l,d,c){var m=this;function u(e,n){1===m.applications.rows.length&&1===n&&(n=0);var t=m.applications.rows[n];i.show({controller:"EditRoutingAppDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/routing/dialog.html",parent:angular.element(a.body),targetEvent:e,locals:{application:t,route:m.outboundRoute,crudPermissions:m.crudPermissions}}).then(function(e){e?(m.applications.rows[n].appdata===e.appdata&&"custom"!==e.appType||p(),m.applications.rows[n]=e):t.id||m.applications.rows.splice(n,1)}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}function p(){m.pendingChanges=!0}m.currentUser=t.getCurrentUser(),m.outboundRoute=l||e.params.outboundRoute||{},m.contexts=d,m.userProfileSection=c&&1==c.count?c.rows[0]:null,m.crudPermissions=t.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={sort:"priority",VoiceExtensionId:m.outboundRoute.id,isApp:!0,nolimit:!0},m.apps=[{app:"Dial",appType:"outboundDial",context:"from-sip",type:"Outbound",options:"xX",interval:"*,*,*,*"},{app:null,appType:"custom",type:"Outbound",interval:"*,*,*,*"}],m.sortableAppsOptions={group:{name:"apps",pull:"clone",put:!1},animation:100,sort:!1},m.sortableRoutingOptions={group:{name:"apps",put:!0},animation:100,disabled:!m.crudPermissions.canEdit,onAdd:function(e){u(e,e.newIndex)},onUpdate:function(){p()}},m.selectedApplications=[],m.onInit=function(){if(t.isAdmin())return;e=[{key:"name",value:m.outboundRoute.context}],o.getResourcesByRole(m.currentUser,"voiceContext",{fields:"id,name",sort:"name",nolimit:!0},e).then(function(e){m.contexts=e}).catch(function(){r.error({title:s.instant("VOICE.CONTEXTS"),msg:s.instant("VOICE.NOTIFICATIONS.VOICE_CONTEXTS_GET_ERROR")})});var e},m.onActionsTabSelection=function(){m.applications||o.voiceExtension.get(m.query).$promise.then(function(e){m.applications=e||{count:0,rows:[]}})},m.gotoOutboundRoutes=function(){e.go("app.voice.outboundRoutes",{},{reload:"app.voice.outboundRoutes"})},m.saveOutboundRoute=function(){o.voiceExtension.update({id:m.outboundRoute.id},m.outboundRoute).$promise.then(function(){n(function(n,t){if(!m.applications)return n();o.voiceExtension.addApplications({id:m.outboundRoute.id},m.applications.rows).$promise.then(function(e){m.applications.rows=e.rows,n()}).catch(function(e){t(e)})}).then(function(){m.pendingChanges=!1,r.success({title:s.instant("VOICE.NOTIFICATIONS.EXTENSION_SAVED_SUCCESS_TITLE")})})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceExtension",msg:e.data?JSON.stringify(e.data):e.toString()})})},m.editApplication=u,m.editInterval=function(e,n){var t=m.applications.rows[n];i.show({controller:"EditRoutingIntervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/routing/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:void 0,crudPermissions:m.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,p())})},m.deleteApplication=function(e,n,t){var a=i.confirm().title(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATION_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATION_DELETE_MESSAGE",{name:e.app})).ariaLabel("Delete application").targetEvent(t).ok("OK").cancel(s.instant("TOOLS.CANCEL"));i.show(a).then(function(){m.applications.rows.splice(n,1),p()})},m.deleteSelectedApplications=function(e){var n=i.confirm().title(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATIONS_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATIONS_DELETE_MESSAGE",{total:m.selectedApplications.length})).ariaLabel("Delete applications").targetEvent(e).ok("OK").cancel(s.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedApplications.forEach(function(e){_.remove(m.applications.rows,{id:e.id})}),m.selectedApplications=[],p()})}}e.$inject=["$state","$mdDialog","$document","$q","$translate","api","toasty","Auth","outboundRoute","contexts","userProfileSection"],angular.module("app.voice").controller("OutboundRouteController",e)}(),function(){"use strict";function e(e,n,a,t,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){g.outboundRoutes=e||{count:0,rows:[]}}function h(){g.query.offset=(g.query.page-1)*g.query.limit,m.isAdmin()?g.promise=d.voiceExtension.get(g.query,v).$promise:(g.query.id=g.userProfile.id,g.query.section="OutboundRoutes",g.promise=d.userProfile.getResources(g.query,v).$promise)}function f(e){d.voiceExtension.delete({id:e.id}).$promise.then(function(){_.remove(g.outboundRoutes.rows,{id:e.id}),g.outboundRoutes.count-=1,g.outboundRoutes.rows.length||h(),c.success({title:s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceExtension"}];for(var n=0;n<e.data.errors.length;n++)c.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceExtension",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}g.license=u,g.setting=p,g.currentUser=m.getCurrentUser(),g.outboundRoutes=o,g.userProfile=r,g.userProfileSection=l&&1==l.count?l.rows[0]:null,g.crudPermissions=m.parseCrudPermissions(g.userProfileSection?g.userProfileSection.crudPermissions:null),g.selectedOutboundRoutes=[],g.query={fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",type:"outbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,page:1},g.editRoute=function(e){n.go("app.voice.outboundRoutes.edit",{id:e.id,outboundRoute:e,crudPermissions:g.crudPermissions})},g.createOrEditOutboundRoute=function(e,n){a.show({controller:"CreateOrEditOutboundRouteDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/outboundRoutes/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{outboundRoute:n,outboundRoutes:g.outboundRoutes.rows,crudPermissions:g.crudPermissions}})},g.success=v,g.getOutboundRoutes=h,g.deleteConfirm=function(e,n){var t=a.confirm().title(s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_MESSAGE",{name:e.exten})).ariaLabel("Delete extension").targetEvent(n).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(t).then(function(){f(e)})},g.exportSelectedOutboundRoutes=function(){var e=angular.copy(g.selectedOutboundRoutes);return g.selectedOutboundRoutes=[],e},g.deleteSelectedOutboundRoutes=function(e){var n=a.confirm().title(s.instant("VOICE.NOTIFICATIONS.EXTENSIONS_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.EXTENSIONS_DELETE_MESSAGE",{total:g.selectedOutboundRoutes.length})).ariaLabel("Delete extensions").targetEvent(e).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(n).then(function(){g.selectedOutboundRoutes.forEach(function(e){f(e)}),g.selectedOutboundRoutes=[]})};var b=!0,A=1;e.$watch("vm.query.filter",function(e,n){b?i(function(){b=!1}):(n||(A=g.query.page),e!==n&&(g.query.page=1),e||(g.query.page=A),h())})}e.$inject=["$scope","$state","$mdDialog","$document","$timeout","$translate","outboundRoutes","userProfile","userProfileSection","api","toasty","Auth","license","setting"],angular.module("app.voice").controller("OutboundRoutesController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(){return[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Agent",key:"lastAssignedTo",type:"select",label:"DASHBOARDS.SELECT_AGENT",options:g.agents.rows,customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}],ngValue:"name"},{name:"Campaign",key:"queue",type:"multiselect",label:"DASHBOARDS.SELECT_CAMPAIGN",options:g.queues.rows,ngValue:"name"}]}function h(){return g.refresh=!1,0===g.queues.count?f(null):(g.query.queue=1===g.queues.count?g.queues.rows[0].name:g.query.queue,void 0===g.query.queue&&(g.query.queue=_.map(g.queues.rows,"name")),_.isEmpty(g.query.queue)?f(null):(g.query.offset=(g.query.page-1)*g.query.limit,i.localStorage.setItem("motion2.realtime.abandoned.voice.abandonedCalls:"+g.currentUser.id,JSON.stringify({query:_.omit(g.query,"queue")})),void(g.promise=o.voiceQueueReport.getVoiceQueuesReport(g.query,f).$promise)))}function f(e){g.abandonedCalls=e||{count:0,rows:[]},!1,g.refresh=!0}g.currentUser=d.getCurrentUser(),g.agents=u||[],g.dispositions=p.rows,g.abandonedCalls={count:0,rows:[]},g.showTooltip=!1,g.refresh=!0,g.userProfile=r,g.userProfileSection=l&&1==l.count?l.rows[0]:null,g.crudPermissions=d.parseCrudPermissions(g.userProfileSection?g.userProfileSection.crudPermissions:null),g.query={fields:"id,type,calleridnum,calleridname,queue,queuecallerabandonAt,queuecallerexitAt,queuecallerexitreason,assigned,lastAssignedTo,updatedAt,disposition,secondDisposition,thirdDisposition",type:"inbound",queuecallerexitreason:"TIMEOUT,ABANDONED",sort:"-updatedAt",limit:10,page:1},g.getAbandonedCalls=h,g.refreshAbandonedCalls=function(){g.showTooltip=!1,h()},g.assignTo=function(e,n){e&&o.voiceQueueReport.update({id:e.id,lastAssignedTo:n?n.name:null,assigned:!!n}).$promise.catch(function(e){console.log(e)})},g.dispose=function(t){n.show({controller:"DisposeAbandonedCallDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/home/abandoned/dispose/dialog.html",parent:angular.element(a.body),targetEvent:t,locals:{dispositions:g.dispositions,call:t}}).then(function(e){if(e){var n={id:t.id,disposition:e.firstLevel||null,secondDisposition:e.secondLevel||null,thirdDisposition:e.thirdLevel||null};o.voiceQueueReport.update(n).$promise.catch(function(e){console.log(e)})}})},g.onSaveVoiceQueueReport=function(e){e&&g.queuesMap&&"inbound"===queue.type&&g.queuesMap[e.queue]&&(g.showTooltip=!0)},g.onUpdateVoiceQueueReport=function(e){if(e){var n=_.findIndex(g.abandonedCalls.rows,["id",e.id]);0<=n&&_.merge(g.abandonedCalls.rows[n],e)}},c.onWithoutApply("voiceQueueReport:save",g.onSaveVoiceQueueReport),c.on("voiceQueueReport:update",g.onUpdateVoiceQueueReport),function(){var e=i.localStorage.getItem("motion2.realtime.abandoned.voice.abandonedCalls:"+g.currentUser.id);if(e)(e=JSON.parse(e))&&e.query&&(g.query=_.merge(e.query,_.omit(g.query,["sort","limit","page"])),g.query=_.omit(g.query,"filter"));else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()};g.query.createdAt=n}d.hasRole("admin")?o.user.getQueues({id:d.getCurrentUser().id,fields:"id,name",channel:"voice",type:"inbound",nolimit:!0}).$promise.then(function(e){g.queues=e||{count:0,rows:[]},g.queuesMap=_.mapValues(_.keyBy(g.queues.rows,"name"),"name")}).catch(function(e){console.error(e)}).finally(function(){g.quickFilters=v(),h()}):o.userProfile.getResources({id:g.currentUser.userProfileId,section:"VoiceQueues",channel:"voice",type:"inbound",sort:"-updatedAt",nolimit:!0}).$promise.then(function(e){g.queues=e||{count:0,rows:[]},g.queuesMap=_.mapValues(_.keyBy(g.queues.rows,"name"),"name")}).catch(function(e){console.error(e)}).finally(function(){g.quickFilters=v(),h()})}();var b=!0,A=1;e.$watch("vm.query.filter",function(e,n){b?t(function(){b=!1}):(n||(A=g.query.page),e!==n&&(g.query.page=1),e||(g.query.page=A),h())}),e.$on("$destroy",function(){c.removeAllListeners("voiceQueueReport:save"),c.removeAllListeners("voiceQueueReport:update")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","userProfile","userProfileSection","Auth","socket","toasty","agents","dispositions"],angular.module("app.voice").controller("AbandonedCallsVoiceRealtimeController",e)}(),function(){"use strict";function e(e,o,n,t,a,i,s,r,l,d,c,m,u,p,g,v,h,f){var b=this,A=["userpic","online","lastLoginAt","lastPauseAt","pauseType","lastPauseAt","internal","address","chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","chatCapacity","openchannelCapacity","mailCapacity","smsCapacity","whatsappCapacity","faxCapacity","chatCurrentCapacity","openchannelCurrentCapacity","mailCurrentCapacity","smsCurrentCapacity","whatsappCurrentCapacity","faxCurrentCapacity","chatStatus","openchannelStatus","mailStatus","smsStatus","whatsappStatus","faxStatus","voiceStatus","chatStatusTime","openchannelStatusTime","mailStatusTime","smsStatusTime","whatsappStatusTime","faxStatusTime","voiceStatusTime","queue","destconnectedlinenum","screenrecording","phoneBarEnableScreenRecordingByAgent","phoneBarEnableAutomaticScreenRecording","routealias"],E=["chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","online"];for(var y in b.currentUser=v.getCurrentUser(),b.availableStates=["ringing","inuse","busy","onhold","not_inuse"],b.pauses=s||{count:0,rows:[]},b.license=h,b.userProfile=p,b.userProfileSection=g&&1==g.count?g.rows[0]:null,b.crudPermissions=v.parseCrudPermissions(b.userProfileSection?b.userProfileSection.crudPermissions:null),b.agents=r?_.keyBy(r.rows?r.rows:[],"id"):{},b.rpcAgents=l?_.keyBy(l.rows?l.rows:[],"id"):{},b.paginatedAgents={},b.load=!1,b.order=[],b.agentInternal={},b.agents)b.agents.hasOwnProperty(y)&&(b.agents[y].init=!0);b.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},b.logout=function(e,n){return d.user.logout({id:e.id,device:"realtime",agent_id:e.id,agent_name:e.name}).$promise.then(function(){m.success({title:"Agent logout",msg:e.fullname+" properly logout"}),b.agents[e.id]&&(b.agents[e.id].online=!1),b.rpcAgents[e.id]&&(b.rpcAgents[e.id].online=!1),T()}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.queueAdd=function(e,n){t.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:[],channel:"voice",direction:"inbound",crudPermissions:b.crudPermissions}})},b.pause=function(n,e){return d.user.pause({id:n.id,type:e}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.unPause=function(n){return d.user.unpause({id:n.id}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.showInfo=function(e){t.show(t.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},b.getAgentStatus=O,b.getAgentGlobalStatus=w,b.isPause=I,b.checkPause=function(e){return"pause"===e},b.isPartialPause=function(e){return"*pause"===e},b.onSave=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(_.omit(e,E),A)),_.merge(b.rpcAgents[e.id],_.pick(_.omit(e,E),A)),w(b.agents[e.id]))},b.onUpdate=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(e,A)),_.merge(b.rpcAgents[e.id],_.pick(e,A)),e.lastPauseAt&&(b.agents[e.id].globalStatusTime=e.lastPauseAt,b.rpcAgents[e.id].globalStatusTime=e.lastPauseAt),w(b.agents[e.id]))},b.onInit=T,b.onConnect=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(_.merge(b.agents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])),_.merge(b.rpcAgents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])))},b.onComplete=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(b.agents[b.agentInternal[e.destaccountcode]]=_.omit(b.agents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]),b.rpcAgents[b.agentInternal[e.destaccountcode]]=_.omit(b.rpcAgents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]))},b.screenRecording=function(e,n){return d.user.update({id:e.id},{screenrecording:n}).$promise.catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.on("user:save",b.onSave),c.on("user:update",b.onUpdate),c.on("user:agentconnect",b.onConnect),c.on("user:agentcomplete",b.onComplete),T();var S=f(function(){b.load&&(b.load=!1,T())},999);function T(e){b.load=!1;var n,t,a=o.defer();b.promise=a.promise,b.filteredAgents=[],b.order=[],_.forIn(b.agents,function(e,n){b.rpcAgents[n]&&_.merge(e,_.pick(_.omit(b.rpcAgents[n],E),A)),w(e),e.online?(b.filteredAgents.push(e),b.agentInternal[e.internal]=n):e.globalStatusTime=_.toNumber(moment().format("x"))}),b.query.globalStatusFilter&&_.remove(b.filteredAgents,function(e){return e.globalStatus!==b.query.globalStatusFilter}),b.query.pauseTypeFilter&&_.remove(b.filteredAgents,function(e){return e.pauseType!==b.query.pauseTypeFilter}),b.query.filter&&_.remove(b.filteredAgents,function(e){return e.fullname.toLowerCase().indexOf(b.query.filter.toLowerCase())<0}),b.filteredAgents=(n=b.filteredAgents,t=_.startsWith(b.query.order,"-")?"desc":"asc",_.orderBy(n,[b.query.order.replace("-","")],[t]));var i=(b.query.page-1)*b.query.limit;b.paginatedAgents=_.drop(b.filteredAgents,i).slice(0,b.query.limit);for(var s=0;s<b.paginatedAgents.length;s+=1)b.order.push(b.paginatedAgents[s].id);a.resolve(),b.load=!0}function I(e){return"pause"===e||"*pause"===e}function C(e){return"idle"===e||"unknown"===e||"unavailable"===e||"ringing"===e||_.isNil(e)}function O(e,n){return"voice"===n?"idle"!==e[n+"Status"]?e[n+"Status"]:e[n+"Pause"]?e[n+"Status"]="pause":"idle":e[n+"Pause"]?e[n+"Status"]="pause":e[n+"Status"]}function w(e){var n="unknown";n=_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"pause":_.some([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"*pause":_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],C)?"idle":"busy",e.globalStatus!==n&&(e.globalStatus=n,e.init?(e.init=!1,e.globalStatusTime=I(n)?_.toNumber(moment(e.lastPauseAt).format("x")):_.max([e.voiceStatusTime,e.chatStatusTime,e.mailStatusTime,e.smsStatusTime,e.whatsappStatusTime,e.openchannelStatusTime,e.faxStatusTime])):e.globalStatusTime=_.toNumber(moment().format("x")))}e.$on("$destroy",function(){c.removeAllListeners("user:save"),c.removeAllListeners("user:update"),c.removeAllListeners("user:agentconnect"),c.removeAllListeners("user:agentcomplete"),S&&(f.cancel(S),S=null)})}e.$inject=["$scope","$q","$timeout","$mdDialog","$document","$filter","pauses","agents","rpcAgents","api","socket","toasty","helperClasses","userProfile","userProfileSection","Auth","license","$interval"],angular.module("app.voice").controller("AgentsVoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,s){var o=this;o.calls=i||{rows:[],count:0},o.query={limit:10,page:1},o.channelStatus=s.channelStatusOut,o.onSave=function(e){var n=_.find(o.calls.rows,{channel:e.channel});e.channelstatedesc=e.dialstatus?"up":"ring",n?_.merge(n,e):e.channel&&o.calls.rows.push(e)},o.onRemove=function(e){var n=_.findIndex(o.calls.rows,{channel:e.channel});0<=n&&(o.calls.rows[n].status="hangup");t(function(){o.calls.rows.splice(n,1)},5e3)},a.on("voice_outbound_channel:save",o.onSave),a.on("voice_outbound_channel:remove",o.onRemove),e.$on("$destroy",function(){a.removeAllListeners("voice_outbound_channel:save"),a.removeAllListeners("voice_outbound_channel:remove")})}e.$inject=["$scope","$timeout","api","socket","rpcCalls","helperClasses"],angular.module("app.voice").controller("OutboundCallsVoiceRealtimeController",e)}(),function(){"use strict";function e(e,n,a,o,t,i,s,r,l,d,c,m,u){var p=this;p.currentUser=u.getCurrentUser(),p.queues=t?_.keyBy(t.rows?t.rows:[],"name"):{},p.rpcVoiceQueuesChannelsTmp=i?_.keyBy(i.rows?_.filter(i.rows,{type:"inbound"}):[],"uniqueid"):{},p.rpcVoiceQueuesChannels={},p.userProfile=c,p.userProfileSection=m&&1==m.count?m.rows[0]:null,p.crudPermissions=u.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.queryChannels={limit:10,page:1},p.getAvailableAgents=function(){p.availableAgents=null,s.rpc.getAgents().$promise.then(function(e){for(var n=[],t=e?e.rows:[],a=_.filter(t,{online:!0,voicePause:!1,voiceStatus:"idle"}),i=0;i<a.length;i++){var s=_.find(o.rows,["id",a[i].id]);s&&n.push(s)}p.availableAgents=n}).catch(function(e){d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},p.getSize=function(e){return _.size(e)},p.$onInit=function(){_.forIn(p.rpcVoiceQueuesChannelsTmp,function(e,n){_.find(p.queues,{name:e.name})&&(p.rpcVoiceQueuesChannels[n]=e)})},p.onSave=function(e){"inbound"===e.type&&_.find(p.queues,{name:e.name})&&(p.rpcVoiceQueuesChannels[e.uniqueid]=e)},p.onRemove=function(e){p.rpcVoiceQueuesChannels[e.uniqueid]&&delete p.rpcVoiceQueuesChannels[e.uniqueid]},p.hangup=function(n){return s.rpc.getVoiceQueuesChannelHangup({uniqueid:n}).$promise.then(function(e){d.success({title:"Channel "+n+" properly hangup!",msg:e.message||""})}).catch(function(e){d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},p.redirectToAgent=function(n,e,t){return s.rpc.getVoiceQueuesChannelRedirect({uniqueid:n,exten:e,context:t}).$promise.then(function(e){d.success({title:"Channel "+n+" properly redirect!",msg:e.message||""})}).catch(function(e){d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},p.redirectToNumber=function(e,n){var t=a.prompt().title("Which number do you want transfer the call to?").placeholder("Number").targetEvent(e).ok("Ok").cancel("Cancel");return a.show(t).then(function(e){return s.rpc.getVoiceQueuesChannelRedirect({uniqueid:n,exten:e}).$promise}).then(function(e){d.success({title:"Channel "+n+" properly redirect!",msg:e.message||""})}).catch(function(e){e&&d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},r.on("voice_queue_channel:save",p.onSave),r.on("voice_queue_channel:remove",p.onRemove),e.$on("$destroy",function(){r.removeAllListeners("voice_queue_channel:save"),r.removeAllListeners("voice_queue_channel:remove")})}e.$inject=["$scope","$timeout","$mdDialog","agents","queues","rpcVoiceQueuesChannels","api","socket","helperClasses","toasty","userProfile","userProfileSection","Auth"],angular.module("app.voice").controller("QueueCallsVoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["total","answered","unmanaged","abandoned","sumHoldTime","sumDuration","sumBillable"];function u(){_.forIn(c.queues,function(e,n){c.rpcQueues[n]&&_.merge(e,_.pick(c.rpcQueues[n],m))})}c.count=a.count,c.queues=a?_.keyBy(a.rows?a.rows:[],"id"):{},c.rpcQueues=i?_.keyBy(i.rows?i.rows:[],"id"):{},c.userProfile=r,c.userProfileSection=l&&1==l.count?l.rows[0]:null,c.crudPermissions=d.parseCrudPermissions(c.userProfileSection?c.userProfileSection.crudPermissions:null),d.hasRole("admin")?c.query={type:"inbound",fields:"id,name",sort:"-updatedAt",limit:10,page:1}:c.query={id:d.getCurrentUser().id,channel:"voice",type:"inbound",fields:"id,name",sort:"-updatedAt",limit:10,page:1},c.success=v,c.getQueues=function(){c.query.offset=(c.query.page-1)*c.query.limit,d.hasRole("admin")?c.promise=s.voiceQueue.get(c.query,v).$promise:(c.query.id=c.userProfile.id,c.query.section="VoiceQueues",c.promise=s.userProfile.getResources(c.query,v).$promise)},c.onSave=function(e){c.queues[e.id]&&_.merge(c.queues[e.id],_.pick(e,m))},c.$onInit=u,o.onWithoutApply("voice_queue:save",c.onSave),c.interval=n(function(){},999);var p=!0,g=1;function v(e){c.count=e.count,c.queues=e?_.keyBy(e.rows?e.rows:[],"id"):{},u()}e.$watch("vm.query.filter",function(e,n){p?t(function(){p=!1}):(n||(g=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=g),c.getQueues())}),e.$on("$destroy",function(){o.removeAllListeners("voice_queue:save"),c.interval&&n.cancel(c.interval)})}e.$inject=["$scope","$timeout","$interval","queues","rpcQueues","api","socket","userProfile","userProfileSection","Auth"],angular.module("app.voice").controller("QueueParamsVoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c){var m=this,u=["loggedIn","available","waiting","talking","paused"],p=n(function(){},999);m.currentUser=c.getCurrentUser(),m.queues=i,m.userProfileSection=d&&1==d.count?d.rows[0]:null,m.crudPermissions=c.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={id:c.isUser()?m.currentUser.id:void 0,section:c.isUser()?"VoiceQueues":void 0,channel:"voice",type:"inbound",sort:"name",limit:10,page:1},m.getQueues=function(){m.query.offset=(m.query.page-1)*m.query.limit,s.realtime.getQueues(m.query).$promise.then(function(e){m.queues=e}).catch(function(e){console.error(e)})},m.editQueue=function(e,n){t.show({controller:"CreateOrEditVoiceQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{voiceQueue:n,voiceQueues:m.queues.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.addAgent=function(e,n){t.show({controller:"VoiceQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{voiceQueue:n,voiceQueues:m.queues.rows,realtime:!0,crudPermissions:m.crudPermissions}})},o.onWithoutApply("voice_queue:save",function(e){var n=_.find(m.queues.rows,["id",e.id]);n&&(e.loggedIn===e.available&&0<e.waiting&&(e.available-=e.waiting),_.merge(n,_.pick(e,u)))}),o.on("userVoiceQueue:save",function(e){var n=_.find(m.queues.rows,["id",e.VoiceQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),o.on("userVoiceQueue:remove",function(e){var n=_.find(m.queues.rows,["id",e.VoiceQueueId]);n&&(0<n.loggedInDb&&n.loggedInDb--,_.remove(n.agents,["id",e.UserId]))}),o.on("user:agentconnect",function(t){m.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&(e.available-=1)})}),o.on("user:agentcomplete",function(t){m.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&(e.available+=1)})}),o.on("user:update",function(t){m.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&(!1===t.online?(n.online=!1,e.loggedInDb-=1,n.paused?(n.paused=!1,e.paused-=1):e.available-=1):n.online?t.voicePause?(n.paused=!0,e.paused+=1,e.available-=1):!t.voicePause&&n.paused&&(n.paused=!1,e.paused-=1,e.available+=1):(n.online=!0,e.loggedInDb+=1,e.available+=1))})}),e.$on("$destroy",function(){o.removeAllListeners("voice_queue:save"),o.removeAllListeners("userVoiceQueue:remove"),o.removeAllListeners("userVoiceQueue:save"),o.removeAllListeners("user:agentconnect"),o.removeAllListeners("user:agentcomplete"),o.removeAllListeners("user:update"),p&&n.cancel(p)})}e.$inject=["$scope","$mdDialog","$document","$interval","queues","api","socket","toasty","userProfile","userProfileSection","Auth"],angular.module("app.voice").controller("QueuesVoiceRealtimeController",e)}(),function(){"use strict";angular.module("app.auth").factory("helperClasses",function(){return{status:{registered:"green-300-fg icon-checkbox-marked-circle",unregistered:"red-300-fg icon-close-circle",lagged:"red-300-fg icon-close-circle",reachable:"green-300-fg icon-checkbox-marked-circle",unreachable:"red-300-fg icon-close-circle",unknown:"grey-fg icon-minus-circle"},state:{unknown:"grey-fg icon-phone-hangup",not_inuse:"green-300-fg icon-phone-hangup",inuse:"red-300-fg icon-phone-in-talk",busy:"red-300-fg icon-phone-locked",invalid:"grey-fg icon-phone-hangup",unavailable:"grey-fg icon-phone-hangup",ringing:"blue-300-fg icon-phone-incoming",ringinuse:"blue-300-fg icon-phone-incoming",onhold:"blue-300-fg icon-phone-paused"},channelStatus:{ring:"blue-300-fg icon-phone-incoming",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"},channelStatusOut:{ring:"blue-300-fg icon-phone-outgoing",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"}}})}(),function(){"use strict";function e(e,t,n){var a=this;switch(n.disconnect(),n.connect(),a.selectedTab=0,t.current.name){case"app.voice.realtime.agents":a.selectedTab=0;break;case"app.voice.realtime.telephones":a.selectedTab=1;break;case"app.voice.realtime.trunks":a.selectedTab=2;break;case"app.voice.realtime.queues":a.selectedTab=3;break;case"app.voice.realtime.queue_calls":a.selectedTab=4;break;case"app.voice.realtime.abandonedcalls":a.selectedTab=5;break;case"app.voice.realtime.queue_params":a.selectedTab=6;break;case"app.voice.realtime.outbound_calls":a.selectedTab=7;break;default:a.selectedTab=0,t.go("app.voice.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.voice.realtime.agents");break;case 1:t.go("app.voice.realtime.telephones");break;case 2:t.go("app.voice.realtime.trunks");break;case 3:t.go("app.voice.realtime.queues");break;case 4:t.go("app.voice.realtime.queue_calls");break;case 5:t.go("app.voice.realtime.abandonedcalls");break;case 6:t.go("app.voice.realtime.queue_params");break;case 7:t.go("app.voice.realtime.outbound_calls");break;default:t.go("app.voice.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.voice").controller("VoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c){var m=this,u=["fullname","internal","state","status"];function p(){_.forIn(m.telephones,function(e,n){m.rpcTelephones[n]&&_.merge(e,_.pick(m.rpcTelephones[n],u))})}m.count=a.count,m.attributes=["fullname","internal","state","status","address"],m.telephones=a?_.keyBy(a.rows?a.rows:[],"id"):{},m.rpcTelephones=i?_.keyBy(i.rows?i.rows:[],"id"):{},m.userProfile=l,m.userProfileSection=d&&1==d.count?d.rows[0]:null,m.crudPermissions=c.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={fields:"id,fullname,internal",role:"telephone",sort:"-updatedAt",limit:10,page:1},m.statusClass=r.status,m.stateClass=r.state,m.success=h,m.$onInit=p,m.showInfo=function(e){n.show(n.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},m.getTelephones=function(){m.query.offset=(m.query.page-1)*m.query.limit,c.hasRole("admin")?m.promise=s.user.get(m.query,h).$promise:(m.query.id=m.userProfile.id,m.query.section="Telephones",m.promise=s.userProfile.getResources(m.query,h).$promise)},m.onSave=function(e){m.telephones[e.id]&&_.merge(m.telephones[e.id],_.pick(e,u))},o.on("telephone:save",m.onSave);var g=!0,v=1;function h(e){m.telephones=e?_.keyBy(e.rows?e.rows:[],"id"):{},p()}e.$watch("vm.query.filter",function(e,n){g?t(function(){g=!1}):(n||(v=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=v),m.getTelephones())}),e.$on("$destroy",function(){o.removeAllListeners("telephone:save")})}e.$inject=["$scope","$timeout","$mdDialog","telephones","rpcTelephones","api","socket","helperClasses","userProfile","userProfileSection","Auth"],angular.module("app.voice").controller("TelephonesVoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m){var u=this,p=["status","stateRegistry","registry","host","port","internal","state","status"];function g(){for(var e,n=0;n<u.trunks.length;n+=1)0<=(e=_.findIndex(u.rpcTrunks,["id",u.trunks[n].id]))&&_.merge(u.trunks[n],_.pick(u.rpcTrunks[e],p))}function v(e,n,t){0<=n&&_.merge(e[n],_.pick(t,p))}u.currentUser=m.getCurrentUser(),u.count=a.count,u.trunks=a?a.rows:[],u.rpcTrunks=i&&i.rows?i.rows:[],u.query={fields:"id,name",active:!0,sort:"-updatedAt",limit:10,page:1},u.statusClass=r.status,u.stateClass=r.state,u.userProfile=d,u.userProfileSection=c&&1==c.count?c.rows[0]:null,u.crudPermissions=m.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.success=b,u.$onInit=g,u.showInfo=function(e){n.show(n.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},u.getTrunks=function(){u.query.offset=(u.query.page-1)*u.query.limit,m.hasRole("admin")?u.promise=s.trunk.get(u.query,b).$promise:(u.query.id=u.userProfile.id,u.query.section="Trunks",u.promise=s.userProfile.getResources(u.query,b).$promise)},u.goToTrunk=function(e,n){l.go("app.tools.trunks.edit",{id:n.id})},u.onSave=function(e){var n=_.findIndex(u.trunks,["id",e.id]),t=_.findIndex(u.rpcTrunks,["id",e.id]);v(u.trunks,n,e),v(u.rpcTrunks,t,e)},o.on("trunk:save",u.onSave);var h=!0,f=1;function b(e){u.count=e.count,u.trunks=e&&e.rows?e.rows:[],g()}e.$watch("vm.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=u.query.page),e!==n&&(u.query.page=1),e||(u.query.page=f),u.getTrunks())}),e.$on("$destroy",function(){o.removeAllListeners("trunk:save")})}e.$inject=["$scope","$timeout","$mdDialog","trunks","rpcTrunks","api","socket","helperClasses","$state","userProfile","userProfileSection","Auth"],angular.module("app.voice").controller("TrunksVoiceRealtimeController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_VOICEMAIL",g.voicemail=angular.copy(l),g.voicemails=r,g.newVoicemail=!1,g.voicemail||(g.voicemail={attach:"no"},g.title="VOICE.NEW_VOICEMAIL",g.newVoicemail=!0),g.addNewVoicemail=function(){g.errors=[],d.voiceMail.save(g.voicemail).$promise.then(function(e){g.voicemails.unshift(e.toJSON()),o.success({title:"Voicemail properly created",msg:g.voicemail.name?g.voicemail.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMail.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMail.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveVoicemail=function(){g.errors=[],d.voiceMail.update({id:g.voicemail.id},g.voicemail).$promise.then(function(e){var n=_.find(g.voicemails,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Voicemail properly saved!",msg:g.voicemail.name?g.voicemail.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMail.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMail.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteVoicemail=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The voicemail will be deleted.").ariaLabel("Delete Voicemail").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceMail.delete({id:g.voicemail.id}).$promise.then(function(){_.remove(g.voicemails,{id:g.voicemail.id}),o.success({title:"Voicemail properly deleted!",msg:(g.voicemail.name||"voicemail")+" has been deleted!"}),v(g.voicemail)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMail.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMail.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","voicemails","voicemail","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditVoicemailDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.voicemailMessages=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.voiceMail.getMessages(m.query,u).$promise}function g(e){d.voiceMailMessage.delete({id:e.id}).$promise.then(function(){_.remove(m.voicemailMessages.rows,{id:e.id}),m.voicemailMessages.count-=1,m.voicemailMessages.rows.length||p(),l.success({title:"Message deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETvoiceMail"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMail",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.voicemail={},m.voicemailMessages={count:0,rows:[]},m.selectedVoicemailMessages=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,callerid,duration,audio,stamp,msg_id",sort:"-stamp",limit:10,page:1},m.init=function(e,n){m.voicemail=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.id=m.voicemail.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the message?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("message #")+e.id||"message")+"</b> will be deleted.").ariaLabel("delete message").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.voiceMailMessageDownload=function(s,e,n){return d.voiceMailMessage.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="message"+s.id,a=new Blob(n,{type:e.type});t=s.msg_id+".wav";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMail.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getVoicemailMessages=p,m.createOrEditVoicemailMessage=function(e,n){o.show({controller:"CreateOrEditMessageDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voicemails/edit/messages/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{voicemail:m.voicemail,message:n,messages:m.voicemailMessages.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedVoicemailMessages=function(){var e=angular.copy(m.selectedVoicemailMessages);return m.selectedVoicemailMessages=[],e},m.deleteVoicemailMessage=g,m.deleteSelectedVoicemailMessages=function(e){var n=o.confirm().title("Are you sure want to delete the selected messages?").htmlContent("<b>"+m.selectedVoicemailMessages.length+" selected</b> will be deleted.").ariaLabel("delete messages").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedVoicemailMessages.forEach(function(e){g(e)}),m.selectedVoicemailMessages=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.voice").controller("VoicemailMessagesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.voicemail=c||e.params.voicemail||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoVoicemails=function(){e.go("app.voice.voicemails",{},{reload:"app.voice.voicemails"})},u.saveVoicemail=function(){r.voiceMail.update({id:u.voicemail.id},u.voicemail).$promise.then(function(){l.success({title:"Voicemail updated!",msg:u.voicemail.name?u.voicemail.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMail",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_CONTEXTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:405}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;return n?n.autoAssociation?void 0:r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.contexts,{id:e.resourceId})}),t=null;if(u.voicemail&&(t=_.find(u.contexts,{name:u.voicemail.context})),t&&!_.some(n,["id",t.id])){var a=_.find(u.contexts,{id:t.id});a.canSelect=!1,n.push(a)}u.contexts=n}):r.voiceContext.get({fields:"id,name",sort:"name",defaultEntry:1}).$promise.then(function(e){u.contexts=e.rows||[]})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","voicemail","userProfileSection"],angular.module("app.voice").controller("VoicemailController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.voicemails=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="voicemails",f.listOrder="",f.listOrderAsc=null,f.selectedVoicemails=[],f.query={fields:"createdAt,updatedAt,id,customer_id,fullname,email,password,mailbox,context,tz,attach,envelope,delete,emailbody,emailsubject,maxsecs,maxmsg",sort:"-updatedAt",limit:10,page:1},f.arrayattach=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayenvelope=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraydelete=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.voice.voicemails.edit",{id:e.id,voicemail:e,crudPermissions:f.crudPermissions})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("voicemail")+"?").htmlContent("<b>"+(e.name||"voicemail")+"</b> will be deleted.").ariaLabel("delete voicemail").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getVoicemails=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.voiceMail.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Voicemails",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditVoicemail=function(e,n){i.show({controller:"CreateOrEditVoicemailDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voicemails/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{voicemail:n,voicemails:f.voicemails.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteVoicemail=y,f.exportSelectedVoicemails=function(){var e=angular.copy(f.selectedVoicemails);return f.selectedVoicemails=[],e},f.deleteSelectedVoicemails=function(e){var n=i.confirm().title("Are you sure want to delete the selected voicemails?").htmlContent("<b>"+f.selectedVoicemails.length+" selected</b> will be deleted.").ariaLabel("delete Voicemails").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedVoicemails.forEach(function(e){y(e)}),f.selectedVoicemails=[]})},f.deselectVoicemails=function(){f.selectedVoicemails=[]},f.selectAllVoicemails=function(){f.selectedVoicemails=f.voicemails.rows};var b=!0,A=1;function E(e){f.voicemails=e||{count:0,rows:[]}}function y(e){m.voiceMail.delete({id:e.id}).$promise.then(function(){_.remove(f.voicemails.rows,{id:e.id}),f.voicemails.count-=1,f.voicemails.rows.length||f.getVoicemails(),p.success({title:_.startCase("Voicemail")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceMail"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceMail",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getVoicemails())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","voicemails","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.voice").controller("VoicemailsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_VOICEPREFIX",g.voicePrefix=angular.copy(l),g.voicePrefixes=r,g.newvoicePrefix=!1,g.voicePrefix||(g.voicePrefix={},g.title="VOICE.NEW_VOICEPREFIX",g.newvoicePrefix=!0),g.addNewvoicePrefix=function(){g.errors=[],d.voicePrefix.save(g.voicePrefix).$promise.then(function(e){g.voicePrefixes.unshift(e.toJSON()),o.success({title:"voicePrefix properly created",msg:g.voicePrefix.name?g.voicePrefix.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voicePrefix.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voicePrefix.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.savevoicePrefix=function(){g.errors=[],d.voicePrefix.update({id:g.voicePrefix.id},g.voicePrefix).$promise.then(function(e){var n=_.find(g.voicePrefixes,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"voicePrefix properly saved!",msg:g.voicePrefix.name?g.voicePrefix.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voicePrefix.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voicePrefix.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deletevoicePrefix=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The voicePrefix will be deleted.").ariaLabel("Delete voicePrefix").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voicePrefix.delete({id:g.voicePrefix.id}).$promise.then(function(){_.remove(g.voicePrefixes,{id:g.voicePrefix.id}),o.success({title:"voicePrefix properly deleted!",msg:(g.voicePrefix.name||"voicePrefix")+" has been deleted!"}),v(g.voicePrefix)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voicePrefix.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voicePrefix.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){g.outboundRoutes=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){g.outboundRoutes=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:403}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.outboundRoutes,{id:e.resourceId})}),t=null;if(g.voicePrefix&&(t=_.find(g.outboundRoutes,{id:Number(g.voicePrefix.VoiceExtensionId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.outboundRoutes,{id:t.id});a.canSelect=!1,n.push(a)}g.outboundRoutes=n})}else{var t=[],a=null;g.voicePrefix&&(a=_.find(g.outboundRoutes,{id:Number(g.voicePrefix.VoiceExtensionId)}));for(var i=0;i<g.outboundRoutes.length;i++)a&&g.outboundRoutes[i].id===a.id&&(g.outboundRoutes[i].canSelect=!1,t.push(g.outboundRoutes[i]));g.outboundRoutes=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GEToutboundRoutes",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","voicePrefixes","voicePrefix","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditvoicePrefixDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.voicePrefix.getAgents({id:c.voicePrefix.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UservoicePrefix?"penalty "+e.UservoicePrefix.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.voicePrefix=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.voicePrefix.removeAgents({id:c.voicePrefix.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.voicePrefix.addAgents({id:c.voicePrefix.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("VOICE.ALL_AGENTS"),labelSelected:r.instant("VOICE.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","voicePrefix","voicePrefixes","realtime","$translate","Auth","crudPermissions"],angular.module("app.voice").controller("voicePrefixagentaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.voicePrefixes=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="voicePrefixes",f.listOrder="",f.listOrderAsc=null,f.selectedVoicePrefixes=[],f.query={fields:"createdAt,updatedAt,id,name,VoiceExtensionId,callerIdAll,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditvoicePrefixDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voicePrefixes/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{voicePrefix:e,voicePrefixes:f.voicePrefixes.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"voicePrefixagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voicePrefixes/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{voicePrefix:e,voicePrefixes:f.voicePrefixes?f.voicePrefixes.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("voicePrefix")+"?").htmlContent("<b>"+(e.name||"voicePrefix")+"</b> will be deleted.").ariaLabel("delete voicePrefix").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getVoicePrefixes=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.voicePrefix.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="VoicePrefixes",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditvoicePrefix=function(e,n){i.show({controller:"CreateOrEditvoicePrefixDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voicePrefixes/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{voicePrefix:n,voicePrefixes:f.voicePrefixes.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deletevoicePrefix=y,f.exportSelectedVoicePrefixes=function(){var e=angular.copy(f.selectedVoicePrefixes);return f.selectedVoicePrefixes=[],e},f.deleteSelectedVoicePrefixes=function(e){var n=i.confirm().title("Are you sure want to delete the selected voicePrefixes?").htmlContent("<b>"+f.selectedVoicePrefixes.length+" selected</b> will be deleted.").ariaLabel("delete voicePrefixs").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedVoicePrefixes.forEach(function(e){y(e)}),f.selectedVoicePrefixes=[]})},f.deselectVoicePrefixes=function(){f.selectedVoicePrefixes=[]},f.selectAllVoicePrefixes=function(){f.selectedVoicePrefixes=f.voicePrefixes.rows},g.hasRole("admin")?m.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){f.outboundRoutes=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){f.outboundRoutes=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:403}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.outboundRoutes,{id:e.resourceId})}),t=null;if(f.voicePrefix&&(t=_.find(f.outboundRoutes,{id:Number(f.voicePrefix.VoiceExtensionId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.outboundRoutes,{id:t.id});a.canSelect=!1,n.push(a)}f.outboundRoutes=n})}else{var t=[],a=null;f.voicePrefix&&(a=_.find(f.outboundRoutes,{id:Number(f.voicePrefix.VoiceExtensionId)}));for(var i=0;i<f.outboundRoutes.length;i++)a&&f.outboundRoutes[i].id===a.id&&(f.outboundRoutes[i].canSelect=!1,t.push(f.outboundRoutes[i]));f.outboundRoutes=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GEToutboundRoutes",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.voicePrefixes=e||{count:0,rows:[]}}function y(e){m.voicePrefix.delete({id:e.id}).$promise.then(function(){_.remove(f.voicePrefixes.rows,{id:e.id}),f.voicePrefixes.count-=1,f.voicePrefixes.rows.length||f.getVoicePrefixes(),p.success({title:_.startCase("voicePrefix")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoicePrefix"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoicePrefix",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getVoicePrefixes())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","voicePrefixes","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.voice").controller("VoicePrefixesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_VOICEQUEUE",g.voiceQueue=angular.copy(l),g.voiceQueues=r,g.newVoiceQueue=!1,g.voiceQueue||(g.voiceQueue={type:"inbound",strategy:"ringall",timeout:15,retry:2,random_periodic_announce:"no",announce_holdtime:"no",announce_position:"no",reportholdtime:"no",autopause:"no",ringinuse:"no",timeoutrestart:"no",setinterfacevar:"no",setqueuevar:"no",setqueueentryvar:"no"},g.title="VOICE.NEW_VOICEQUEUE",g.newVoiceQueue=!0),g.addNewVoiceQueue=function(){g.errors=[],d.voiceQueue.save(g.voiceQueue).$promise.then(function(e){g.voiceQueues.unshift(e.toJSON()),o.success({title:"VoiceQueue properly created",msg:g.voiceQueue.name?g.voiceQueue.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveVoiceQueue=function(){g.errors=[],d.voiceQueue.update({id:g.voiceQueue.id},g.voiceQueue).$promise.then(function(e){var n=_.find(g.voiceQueues,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"VoiceQueue properly saved!",msg:g.voiceQueue.name?g.voiceQueue.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteVoiceQueue=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The voiceQueue will be deleted.").ariaLabel("Delete VoiceQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceQueue.delete({id:g.voiceQueue.id}).$promise.then(function(){_.remove(g.voiceQueues,{id:g.voiceQueue.id}),o.success({title:"VoiceQueue properly deleted!",msg:(g.voiceQueue.name||"voiceQueue")+" has been deleted!"}),v(g.voiceQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","voiceQueues","voiceQueue","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditVoiceQueueDialogController",e)}(),function(){"use strict";function e(e,l,a,d,n,t,i,s,o,r){var c=this;function m(){return l(function(t,n){return l(function(n,t){return d.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],o.hasRole("admin")?e:c.section?c.section.autoAssociation?e:l(function(n,t){return d.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:o.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),l(function(n,t){return d.voiceQueue.getAgents({id:c.voiceQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserVoiceQueue?"penalty "+e.UserVoiceQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=o.getCurrentUser(),c.voiceQueue=n,c.crudPermissions=r,c.penalty=0,c.realtime=i,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return o.hasRole("admin")?m().catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):l(function(t,n){d.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceWith(c.selectedItems,c.startingSelectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});return(t=e,l(function(e,n){_.isEmpty(t)?e():d.voiceQueue.removeAgents({id:c.voiceQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return r=n,l(function(e,n){if(_.isEmpty(r))e();else{for(var t=[],a=_.groupBy(r,"penalty"),i=0;i<Object.keys(a).length;i++){var s=Object.keys(a)[i],o=_.filter(r,["penalty",s]);t.push(d.voiceQueue.addAgents({id:c.voiceQueue.id,ids:_.map(o,"id"),penalty:_.trim(s,"penalty "),realtime:c.realtime||!1}).$promise)}l.all(t).then(function(){e()}).catch(function(e){n(e)})}});var r}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),a.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:s.instant("VOICE.ALL_AGENTS"),labelSelected:s.instant("VOICE.SELECTED_AGENTS"),transferCallback:function(e,n){n?e.forEach(function(e){e.penalty=void 0}):e.forEach(function(e){e.penalty="penalty "+c.penalty});var t=_.xorWith(c.startingSelectedItems,c.selectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","voiceQueue","voiceQueues","realtime","$translate","Auth","crudPermissions"],angular.module("app.voice").controller("VoiceQueueagentaddController",e)}(),function(){"use strict";function e(e,i,a,s,n,t,o,r){var l=this;function d(){return i(function(t,n){return i(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:i(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),i(function(n,t){return s.voiceQueue.getTeams({id:l.voiceQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.voiceQueue=n,l.crudPermissions=r,l.penalty=0,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"penalty",labelAll:t.instant("VOICE.ALL_TEAMS"),labelSelected:t.instant("VOICE.SELECTED_TEAMS"),transferCallback:function(e,n){n?e.forEach(function(e){e.penalty=void 0}):e.forEach(function(e){e.penalty="penalty "+l.penalty});var t=_.xorWith(l.startingSelectedItems,l.selectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):i(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceWith(l.selectedItems,l.startingSelectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});return(t=e,i(function(e,n){_.isEmpty(t)?e():s.voiceQueue.removeTeams({id:l.voiceQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return a=n,i(function(e,n){if(!_.isEmpty(a)){var t=_.map(a,function(e){return{id:e.id,penalty:_.trim(e.penalty,"penalty ")}});return s.voiceQueue.addTeams({id:l.voiceQueue.id,teams:t}).$promise.then(function(){e()}).catch(function(e){n(e)})}e()});var a}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),a.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","voiceQueue","$translate","Auth","crudPermissions"],angular.module("app.voice").controller("VoiceQueueteamaddController",e)}(),function(){"use strict";function e(t,e,a,i,s,n,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=n,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=e.protocol()+"://"+e.host(),u.voiceQueue=c||t.params.voiceQueue||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=t.params.tab||0,u.teamadddialog=function(e,n){a.show({controller:"VoiceQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/teamadd/teamadd.html",parent:angular.element(i.body),targetEvent:n,clickOutsideToClose:!0,locals:{voiceQueue:e,voiceQueues:u.voiceQueues?u.voiceQueues.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){a.show({controller:"VoiceQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/agentadd/agentadd.html",parent:angular.element(i.body),targetEvent:n,clickOutsideToClose:!0,locals:{voiceQueue:e,voiceQueues:u.voiceQueues?u.voiceQueues.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.gotogoto=function(e,n){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:411}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.voice.realtime.queues",{}):l.info({title:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.voice.realtime.queues",{})}},u.alert=l.info,u.gotoVoiceQueues=function(){t.go("app.voice.voiceQueues",{},{reload:"app.voice.voiceQueues"})},u.saveVoiceQueue=function(){r.voiceQueue.update({id:u.voiceQueue.id},u.voiceQueue).$promise.then(function(){l.success({title:"VoiceQueue updated!",msg:u.voiceQueue.name?u.voiceQueue.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.voiceMusicOnHold.get({fields:"id,name",nolimit:"true"}).$promise.then(function(e){u.musiconholds=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_MUSICONHOLDS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.voiceMusicOnHold.get({fields:"id,name",nolimit:"true"}).$promise.then(function(e){u.musiconholds=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:407}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;return n?n.autoAssociation?void 0:r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.musiconholds,{id:e.resourceId})}),t=null;if(u.voiceQueue&&(t=_.find(u.musiconholds,{name:u.voiceQueue.musiconhold})),t&&!_.some(n,["id",t.id])){var a=_.find(u.musiconholds,{id:t.id});a.canSelect=!1,n.push(a)}u.musiconholds=n}):r.voiceMusicOnHold.get({fields:"id,name",nolimit:"true",defaultEntry:1}).$promise.then(function(e){u.musiconholds=e.rows||[]})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmusiconholds",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.sound.get({fields:"id,name,save_name",sort:"name",nolimit:"true"}).$promise.then(function(e){u.sounds=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_SOUNDS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.sound.get({fields:"id,name,save_name",sort:"name",nolimit:"true"}).$promise.then(function(e){u.sounds=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1007}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.sounds,{id:e.resourceId})});u.sounds.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),u.sounds=n})}else u.sounds=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){u.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){u.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.pauses,{id:e.resourceId})});u.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),u.pauses=n})}else u.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","voiceQueue","userProfileSection"],angular.module("app.voice").controller("VoiceQueueController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.voiceQueues=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="voiceQueues",f.listOrder="",f.listOrderAsc=null,f.selectedVoiceQueues=[],f.query={fields:"createdAt,updatedAt,id,name,type,strategy,timeout,maxlen,retry,wrapuptime,weight,joinempty,leavewhenempty,musiconhold,announce,description,periodic_announce,queue_reporthold,queue_youarenext,queue_thereare,queue_callswaiting,queue_holdtime,queue_minutes,queue_minute,queue_seconds,queue_thankyou,announce_frequency,min_announce_frequency,periodic_announce_frequency,random_periodic_announce,announce_holdtime,announce_position,announce_position_limit,reportholdtime,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar,servicelevel,mandatoryDisposition,mandatoryDispositionPauseId",type:"inbound",sort:"-updatedAt",channel:"voice",limit:10,page:1},f.arraystrategy=_.keyBy([{option:"Ringall",value:"'ringall'"},{option:"Round Robin Memory",value:"'rrmemory'"},{option:"Least Recent",value:"'leastrecent'"},{option:"Fewest Calls",value:"'fewestcalls'"},{option:"Random",value:"'random'"},{option:"Linear",value:"'linear'"},{option:"Weight Random",value:"'wrandom'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayjoinempty=_.keyBy([{option:"no",value:"'no'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'no'"},{option:"yes",value:"'yes'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'yes'"},{option:"strict",value:"'strict'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'strict'"},{option:"loose",value:"'loose'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'loose'"},{option:"paused",value:"'paused'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'paused'"},{option:"penalty",value:"'penalty'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'penalty'"},{option:"inuse",value:"'inuse'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'inuse'"},{option:"ringing",value:"'ringing'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'ringing'"},{option:"unavailable",value:"'unavailable'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'unavailable'"},{option:"invalid",value:"'invalid'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'invalid'"},{option:"unknown",value:"'unknown'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'unknown'"},{option:"wrapup",value:"'wrapup'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'wrapup'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayleavewhenempty=_.keyBy([{option:"no",value:"'no'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'no'"},{option:"yes",value:"'yes'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'yes'"},{option:"strict",value:"'strict'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'strict'"},{option:"loose",value:"'loose'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'loose'"},{option:"paused",value:"'paused'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'paused'"},{option:"penalty",value:"'penalty'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'penalty'"},{option:"inuse",value:"'inuse'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'inuse'"},{option:"ringing",value:"'ringing'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'ringing'"},{option:"unavailable",value:"'unavailable'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'unavailable'"},{option:"invalid",value:"'invalid'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'invalid'"},{option:"unknown",value:"'unknown'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'unknown'"},{option:"wrapup",value:"'wrapup'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'wrapup'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayrandom_periodic_announce=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayannounce_holdtime=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"},{option:"Once",value:"'once'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayannounce_position=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"},{option:"Limit",value:"'limit'"},{option:"More",value:"'more'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayreportholdtime=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayautopause=_.keyBy([{option:"Yes",value:"'all'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayringinuse=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraytimeoutrestart=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraymonitor_format=_.keyBy([{option:"Inactive",value:"''"},{option:"wav",value:"'wav'"},{option:"wav49",value:"'wav49'"},{option:"gsm",value:"'gsm'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysetinterfacevar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysetqueuevar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysetqueueentryvar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.voice.voiceQueues.edit",{id:e.id,voiceQueue:e,crudPermissions:f.crudPermissions})},f.teamadddialog=function(e,n){i.show({controller:"VoiceQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{voiceQueue:e,voiceQueues:f.voiceQueues?f.voiceQueues.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"VoiceQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{voiceQueue:e,voiceQueues:f.voiceQueues?f.voiceQueues.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("voiceQueue")+"?").htmlContent("<b>"+(e.name||"voiceQueue")+"</b> will be deleted.").ariaLabel("delete voiceQueue").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:411}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.voice.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.voice.realtime.queues",{})}},f.success=E,f.getVoiceQueues=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.voiceQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="VoiceQueues",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditVoiceQueue=function(e,n){i.show({controller:"CreateOrEditVoiceQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{voiceQueue:n,voiceQueues:f.voiceQueues.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteVoiceQueue=y,f.exportSelectedVoiceQueues=function(){var e=angular.copy(f.selectedVoiceQueues);return f.selectedVoiceQueues=[],e},f.deleteSelectedVoiceQueues=function(e){var n=i.confirm().title("Are you sure want to delete the selected voiceQueues?").htmlContent("<b>"+f.selectedVoiceQueues.length+" selected</b> will be deleted.").ariaLabel("delete VoiceQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedVoiceQueues.forEach(function(e){y(e)}),f.selectedVoiceQueues=[]})},f.deselectVoiceQueues=function(){f.selectedVoiceQueues=[]},f.selectAllVoiceQueues=function(){f.selectedVoiceQueues=f.voiceQueues.rows};var b=!0,A=1;function E(e){f.voiceQueues=e||{count:0,rows:[]}}function y(e){m.voiceQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.voiceQueues.rows,{id:e.id}),f.voiceQueues.count-=1,f.voiceQueues.rows.length||f.getVoiceQueues(),p.success({title:_.startCase("VoiceQueue")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getVoiceQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","voiceQueues","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.voice").controller("VoiceQueuesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_VOICERECORDING",g.voiceRecording=angular.copy(l),g.voiceRecordings=r,g.newVoiceRecording=!1,g.voiceRecording||(g.voiceRecording={},g.title="VOICE.NEW_VOICERECORDING",g.newVoiceRecording=!0),g.addNewVoiceRecording=function(){g.errors=[],d.voiceRecording.save(g.voiceRecording).$promise.then(function(e){g.voiceRecordings.unshift(e.toJSON()),o.success({title:"VoiceRecording properly created",msg:g.voiceRecording.name?g.voiceRecording.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceRecording.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveVoiceRecording=function(){g.errors=[],d.voiceRecording.update({id:g.voiceRecording.id},g.voiceRecording).$promise.then(function(e){var n=_.find(g.voiceRecordings,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"VoiceRecording properly saved!",msg:g.voiceRecording.name?g.voiceRecording.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceRecording.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceRecording.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteVoiceRecording=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The voiceRecording will be deleted.").ariaLabel("Delete VoiceRecording").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceRecording.delete({id:g.voiceRecording.id}).$promise.then(function(){_.remove(g.voiceRecordings,{id:g.voiceRecording.id}),o.success({title:"VoiceRecording properly deleted!",msg:(g.voiceRecording.name||"voiceRecording")+" has been deleted!"}),v(g.voiceRecording)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceRecording.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceRecording.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","voiceRecordings","voiceRecording","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditVoiceRecordingDialogController",e)}(),function(){"use strict";function e(e,n){var t=this;t.voiceRecording={},t.init=function(e){t.voiceRecording=e}}e.$inject=["api","toasty"],angular.module("app.voice").controller("VoiceRecordingSentimentStatisticsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.voiceRecording=c||e.params.voiceRecording||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoVoiceRecordings=function(){e.go("app.voice.voiceRecordings",{},{reload:"app.voice.voiceRecordings"})},u.saveVoiceRecording=function(){r.voiceRecording.update({id:u.voiceRecording.id},u.voiceRecording).$promise.then(function(){l.success({title:"VoiceRecording updated!",msg:u.voiceRecording.name?u.voiceRecording.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceRecording",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","voiceRecording","userProfileSection"],angular.module("app.voice").controller("VoiceRecordingController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,l,r,d,c,m,u,p,g,v,h){var f=this;function b(n,e){return m.voiceRecording.runTranscribe({id:n.id,runSentiment:!1}).$promise.then(function(e){p.success({title:l.instant("VOICE.RUNTRANSCRIBE_VOICERECORDING"),msg:l.instant("VOICE.RUNTRANSCRIBE_VOICERECORDING")+" succeded!"}),n.transcribeStatus=e.transcribeStatus}).catch(function(e){p.error({title:l.instant("VOICE.RUNTRANSCRIBE_VOICERECORDING"),msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})}function A(n,e){return m.voiceRecording.runTranscribe({id:n.id,runSentiment:!0}).$promise.then(function(e){p.success({title:l.instant("VOICE.RUNTRANSCRIBESENTIMENT_VOICERECORDING"),msg:l.instant("VOICE.RUNTRANSCRIBESENTIMENT_VOICERECORDING")+" succeded!"}),n.transcribeStatus=e.transcribeStatus}).catch(function(e){p.error({title:l.instant("VOICE.RUNTRANSCRIBESENTIMENT_VOICERECORDING"),msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})}function E(e,n){return m.voiceRecording.runTranscribe({id:e.id,runSentiment:!0}).$promise.then(function(e){p.success({title:l.instant("VOICE.RUNSENTIMENT_VOICERECORDING"),msg:l.instant("VOICE.RUNSENTIMENT_VOICERECORDING")+" succeded!"})}).catch(function(e){p.error({title:l.instant("VOICE.RUNSENTIMENT_VOICERECORDING"),msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})}f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.voiceRecordings=r||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="voiceRecordings",f.listOrder="",f.listOrderAsc=null,f.selectedVoiceRecordings=[],f.query={fields:"createdAt,updatedAt,id,format,value,type,uniqueid,calleridnum,exten,connectedlinenum,queue,membername,rating,audio,userDisposition,userSecondDisposition,userThirdDisposition,transcribeStatus,fileText,failureReason,sentiment,sPositive,sNegative,sNeutral,sMixed",sort:"-createdAt",createdAt:"@msUtils.firstLastDayMonth()",limit:10,page:1},f.query.createdAt=u.firstLastDayMonth(),f.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE_RANGE"}],f.editstate=function(e,n){t.go("app.voice.voiceRecordings.edit",{id:e.id,voiceRecording:e,crudPermissions:f.crudPermissions})},f.runtranscriberuntranscribesentiment=b,f.runtranscribesentimentruntranscribesentiment=A,f.runsentimentruntranscribesentiment=E,f.downloadtranscribefile2=function(s,e){var t=!1,n=_.isNil(s.format)?s.value.substring(s.value.lastIndexOf(".")):s.format;t=".mp4"===n;-1<s.value.lastIndexOf("/")?s.value.substring(s.value.lastIndexOf("/")+1):-1<s.value.lastIndexOf("\\")?s.value.substring(s.value.lastIndexOf("\\")+1):s.value;return m.voiceRecording.downloadTranscribe({id:s.id}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=s.uniqueid+".txt";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else"404"===String(e.status)&&!1===t?p.info({title:l.instant("VOICE.CANT_DOWNLOAD_THIS_FILE"),msg:l.instant("VOICE.WRONG_EXTENSION")}):"404"===String(e.status)?p.info({title:l.instant("VOICE.CANT_DOWNLOAD_THIS_FILE"),msg:l.instant("VOICE.FILE_NOT_FOUND")}):p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},f.downloadfile2=function(r,e){var t=!1,n=_.isNil(r.format)?r.value.substring(r.value.lastIndexOf(".")):r.format;t=".mp4"===n;-1<r.value.lastIndexOf("/")?r.value.substring(r.value.lastIndexOf("/")+1):-1<r.value.lastIndexOf("\\")?r.value.substring(r.value.lastIndexOf("\\")+1):r.value;return m.voiceRecording.download({id:r.id}).$promise.then(function(e){var n,t,a=[e.buffer],i="download",s=new Blob(a,{type:e.type});n=r.value,t=-1<n.lastIndexOf("/")?n.substring(n.lastIndexOf("/")+1):-1<n.lastIndexOf("\\")?n.substring(n.lastIndexOf("\\")+1):n,i=(t=t.substring(0,t.lastIndexOf(".")))+r.format;var o=window.document.createElement("a");o.setAttribute("href",URL.createObjectURL(s)),o.setAttribute("download",i),document.body.appendChild(o),o.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else"404"===String(e.status)&&!1===t?p.info({title:l.instant("VOICE.CANT_DOWNLOAD_THIS_FILE"),msg:l.instant("VOICE.WRONG_EXTENSION")}):"404"===String(e.status)?p.info({title:l.instant("VOICE.CANT_DOWNLOAD_THIS_FILE"),msg:l.instant("VOICE.FILE_NOT_FOUND")}):p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("voiceRecording")+"?").htmlContent("<b>"+(e.name||"voiceRecording")+"</b> will be deleted.").ariaLabel("delete voiceRecording").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){I(e)},function(){console.log("CANCEL")})},f.success=T,f.getVoiceRecordings=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.voiceRecording.get(f.query,T).$promise:(f.query.id=f.userProfile.id,f.query.section="VoiceRecordings",f.promise=m.userProfile.getResources(f.query,T).$promise)},f.createOrEditVoiceRecording=function(e,n){i.show({controller:"CreateOrEditVoiceRecordingDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceRecordings/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{voiceRecording:n,voiceRecordings:f.voiceRecordings.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteVoiceRecording=I,f.exportSelectedVoiceRecordings=function(){var e=angular.copy(f.selectedVoiceRecordings);return f.selectedVoiceRecordings=[],e},f.deleteSelectedVoiceRecordings=function(e){var n=i.confirm().title("Are you sure want to delete the selected voiceRecordings?").htmlContent("<b>"+f.selectedVoiceRecordings.length+" selected</b> will be deleted.").ariaLabel("delete VoiceRecordings").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedVoiceRecordings.forEach(function(e){I(e)}),f.selectedVoiceRecordings=[]})},f.deselectVoiceRecordings=function(){f.selectedVoiceRecordings=[]},f.selectAllVoiceRecordings=function(){f.selectedVoiceRecordings=f.voiceRecordings.rows},f.runtranscribeSelectedVoiceRecordings=function(n){f.selectedVoiceRecordings.forEach(function(e){b(e,n)}),f.selectedVoiceRecordings=[]},f.runtranscribesentimentSelectedVoiceRecordings=function(n){f.selectedVoiceRecordings.forEach(function(e){A(e,n)}),f.selectedVoiceRecordings=[]},f.runsentimentSelectedVoiceRecordings=function(n){f.selectedVoiceRecordings.forEach(function(e){E(e,n)}),f.selectedVoiceRecordings=[]};var y=!0,S=1;function T(e){f.voiceRecordings=e||{count:0,rows:[]}}function I(e){m.voiceRecording.delete({id:e.id}).$promise.then(function(){_.remove(f.voiceRecordings.rows,{id:e.id}),f.voiceRecordings.count-=1,f.voiceRecordings.rows.length||f.getVoiceRecordings(),p.success({title:_.startCase("VoiceRecording")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceRecording"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceRecording",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){y?o(function(){y=!1}):(n||(S=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=S),f.getVoiceRecordings())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","voiceRecordings","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.voice").controller("VoiceRecordingsController",e)}(),function(){"use strict";function e(e,o,n,t,a,i,s,r,l,d,c,m,u,p,g,v,h,f){var b=this,A=["userpic","online","lastLoginAt","lastPauseAt","pauseType","lastPauseAt","internal","address","chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","chatCapacity","openchannelCapacity","mailCapacity","smsCapacity","whatsappCapacity","faxCapacity","chatCurrentCapacity","openchannelCurrentCapacity","mailCurrentCapacity","smsCurrentCapacity","whatsappCurrentCapacity","faxCurrentCapacity","chatStatus","openchannelStatus","mailStatus","smsStatus","whatsappStatus","faxStatus","voiceStatus","chatStatusTime","openchannelStatusTime","mailStatusTime","smsStatusTime","whatsappStatusTime","faxStatusTime","voiceStatusTime","queue","destconnectedlinenum","screenrecording","phoneBarEnableScreenRecordingByAgent","phoneBarEnableAutomaticScreenRecording"],E=["chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","online"];for(var y in b.currentUser=v.getCurrentUser(),b.availableStates=["ringing","inuse","busy","onhold","not_inuse"],b.pauses=s||{count:0,rows:[]},b.license=h,b.userProfile=p,b.userProfileSection=g&&1==g.count?g.rows[0]:null,b.crudPermissions=v.parseCrudPermissions(b.userProfileSection?b.userProfileSection.crudPermissions:null),b.agents=r?_.keyBy(r.rows?r.rows:[],"id"):{},b.rpcAgents=l?_.keyBy(l.rows?l.rows:[],"id"):{},b.paginatedAgents={},b.load=!1,b.order=[],b.agentInternal={},b.agents)b.agents.hasOwnProperty(y)&&(b.agents[y].init=!0);b.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},b.logout=function(e,n){return d.user.logout({id:e.id,device:"realtime",agent_id:e.id,agent_name:e.name}).$promise.then(function(){m.success({title:"Agent logout",msg:e.fullname+" properly logout"}),b.agents[e.id]&&(b.agents[e.id].online=!1),b.rpcAgents[e.id]&&(b.rpcAgents[e.id].online=!1),T()}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.queueAdd=function(e,n){t.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:[],channel:"whatsapp",direction:"inbound",crudPermissions:b.crudPermissions}})},b.pause=function(n,e){return d.user.pause({id:n.id,type:e}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.unPause=function(n){return d.user.unpause({id:n.id}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.showInfo=function(e){t.show(t.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},b.getAgentStatus=O,b.getAgentGlobalStatus=w,b.isPause=I,b.checkPause=function(e){return"pause"===e},b.isPartialPause=function(e){return"*pause"===e},b.onSave=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(_.omit(e,E),A)),_.merge(b.rpcAgents[e.id],_.pick(_.omit(e,E),A)),w(b.agents[e.id]))},b.onUpdate=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(e,A)),_.merge(b.rpcAgents[e.id],_.pick(e,A)),e.lastPauseAt&&(b.agents[e.id].globalStatusTime=e.lastPauseAt,b.rpcAgents[e.id].globalStatusTime=e.lastPauseAt),w(b.agents[e.id]))},b.onInit=T,b.onConnect=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(_.merge(b.agents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])),_.merge(b.rpcAgents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])))},b.onComplete=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(b.agents[b.agentInternal[e.destaccountcode]]=_.omit(b.agents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]),b.rpcAgents[b.agentInternal[e.destaccountcode]]=_.omit(b.rpcAgents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]))},b.screenRecording=function(e,n){return d.user.update({id:e.id},{screenrecording:n}).$promise.catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.on("user:save",b.onSave),c.on("user:update",b.onUpdate),c.on("user:agentconnect",b.onConnect),c.on("user:agentcomplete",b.onComplete),T();var S=f(function(){b.load&&(b.load=!1,T())},999);function T(e){b.load=!1;var n,t,a=o.defer();b.promise=a.promise,b.filteredAgents=[],b.order=[],_.forIn(b.agents,function(e,n){b.rpcAgents[n]&&_.merge(e,_.pick(_.omit(b.rpcAgents[n],E),A)),w(e),e.online?(b.filteredAgents.push(e),b.agentInternal[e.internal]=n):e.globalStatusTime=_.toNumber(moment().format("x"))}),b.query.globalStatusFilter&&_.remove(b.filteredAgents,function(e){return e.globalStatus!==b.query.globalStatusFilter}),b.query.pauseTypeFilter&&_.remove(b.filteredAgents,function(e){return e.pauseType!==b.query.pauseTypeFilter}),b.query.filter&&_.remove(b.filteredAgents,function(e){return e.fullname.toLowerCase().indexOf(b.query.filter.toLowerCase())<0}),b.filteredAgents=(n=b.filteredAgents,t=_.startsWith(b.query.order,"-")?"desc":"asc",_.orderBy(n,[b.query.order.replace("-","")],[t]));var i=(b.query.page-1)*b.query.limit;b.paginatedAgents=_.drop(b.filteredAgents,i).slice(0,b.query.limit);for(var s=0;s<b.paginatedAgents.length;s+=1)b.order.push(b.paginatedAgents[s].id);a.resolve(),b.load=!0}function I(e){return"pause"===e||"*pause"===e}function C(e){return"idle"===e||"unknown"===e||"unavailable"===e||"ringing"===e||_.isNil(e)}function O(e,n){return"voice"===n?"idle"!==e[n+"Status"]?e[n+"Status"]:e[n+"Pause"]?e[n+"Status"]="pause":"idle":e[n+"Pause"]?e[n+"Status"]="pause":e[n+"Status"]}function w(e){var n="unknown";n=_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"pause":_.some([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"*pause":_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],C)?"idle":"busy",e.globalStatus!==n&&(e.globalStatus=n,e.init?(e.init=!1,e.globalStatusTime=I(n)?_.toNumber(moment(e.lastPauseAt).format("x")):_.max([e.voiceStatusTime,e.chatStatusTime,e.mailStatusTime,e.smsStatusTime,e.whatsappStatusTime,e.openchannelStatusTime,e.faxStatusTime])):e.globalStatusTime=_.toNumber(moment().format("x")))}e.$on("$destroy",function(){c.removeAllListeners("user:save"),c.removeAllListeners("user:update"),c.removeAllListeners("user:agentconnect"),c.removeAllListeners("user:agentcomplete"),S&&(f.cancel(S),S=null)})}e.$inject=["$scope","$q","$timeout","$mdDialog","$document","$filter","pauses","agents","rpcAgents","api","socket","toasty","helperClasses","userProfile","userProfileSection","Auth","license","$interval"],angular.module("app.voice").controller("AgentsWhatsappRealtimeController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c){var m=this,u=["loggedIn","available","waiting","paused"],p=n(function(){},999);m.currentUser=c.getCurrentUser(),m.queues=i,m.userProfileSection=d&&1==d.count?d.rows[0]:null,m.crudPermissions=c.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={id:c.isUser()?m.currentUser.id:void 0,section:c.isUser()?"WhatsappQueues":void 0,channel:"whatsapp",sort:"name",limit:10,page:1},m.getQueues=function(){m.query.offset=(m.query.page-1)*m.query.limit,s.realtime.getQueues(m.query).$promise.then(function(e){m.queues=e}).catch(function(e){console.error(e)})},m.editQueue=function(e,n){t.show({controller:"CreateOrEditWhatsappQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{whatsappQueue:n,whatsappQueues:m.queues.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.addAgent=function(e,n){t.show({controller:"WhatsappQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{whatsappQueue:n,whatsappQueues:m.queues.rows,realtime:!1,crudPermissions:m.crudPermissions}})},o.on("whatsapp_queue:save",function(e){var n=_.find(m.queues.rows,["id",e.id]);n&&_.merge(n,_.pick(e,u))}),o.on("userWhatsappQueue:save",function(e){var n=_.find(m.queues.rows,["id",e.WhatsappQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),o.on("userWhatsappQueue:remove",function(e){var n=_.find(m.queues.rows,["id",e.WhatsappQueueId]);n&&(0<n.loggedInDb&&n.loggedInDb--,_.remove(n.agents,["id",e.UserId]))}),o.on("user:update",function(t){m.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&(!1===t.online?(n.online=!1,e.loggedInDb-=1,n.paused?(n.paused=!1,e.paused-=1):e.available-=1):n.online?t.whatsappPause?(n.paused=!0,e.paused+=1,e.available-=1):!t.whatsappPause&&n.paused&&(n.paused=!1,e.paused-=1,e.available+=1):(n.online=!0,e.loggedInDb+=1,e.available+=1))})}),e.$on("$destroy",function(){o.removeAllListeners("whatsapp_queue:save"),o.removeAllListeners("userWhatsappQueue:remove"),o.removeAllListeners("userWhatsappQueue:save"),o.removeAllListeners("user:update"),p&&n.cancel(p)})}e.$inject=["$scope","$mdDialog","$document","$interval","queues","api","socket","toasty","userProfile","userProfileSection","Auth"],angular.module("app.whatsapp").controller("QueuesWhatsappRealtimeController",e)}(),function(){"use strict";angular.module("app.auth").factory("helperClasses",function(){return{status:{registered:"green-300-fg icon-checkbox-marked-circle",unregistered:"red-300-fg icon-close-circle",lagged:"red-300-fg icon-close-circle",reachable:"green-300-fg icon-checkbox-marked-circle",unreachable:"red-300-fg icon-close-circle",unknown:"grey-fg icon-minus-circle"},state:{unknown:"grey-fg icon-phone-hangup",not_inuse:"green-300-fg icon-phone-hangup",inuse:"red-300-fg icon-phone-in-talk",busy:"red-300-fg icon-phone-locked",invalid:"grey-fg icon-phone-hangup",unavailable:"grey-fg icon-phone-hangup",ringing:"blue-300-fg icon-phone-incoming",ringinuse:"blue-300-fg icon-phone-incoming",onhold:"blue-300-fg icon-phone-paused"},channelStatus:{ring:"blue-300-fg icon-phone-incoming",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"},channelStatusOut:{ring:"blue-300-fg icon-phone-outgoing",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"}}})}(),function(){"use strict";function e(e,t,n){switch(n.disconnect(),n.connect(),this.selectedTab=0,t.current.name){case"app.whatsapp.realtime.agents":this.selectedTab=0;break;case"app.whatsapp.realtime.queues":this.selectedTab=1;break;default:this.selectedTab=0,t.go("app.whatsapp.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.whatsapp.realtime.agents");break;case 1:t.go("app.whatsapp.realtime.queues");break;default:t.go("app.whatsapp.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.whatsapp").controller("WhatsappRealtimeController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="WHATSAPP.EDIT_WHATSAPPACCOUNT",g.whatsappAccount=angular.copy(l),g.whatsappAccounts=r,g.newWhatsappAccount=!1,g.whatsappAccount||(g.whatsappAccount={remote:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():""),type:"twilio",notificationSound:!0,queueTransferTimeout:300,waitForTheAssignedAgent:10,agentTransferTimeout:300},g.title="WHATSAPP.NEW_WHATSAPPACCOUNT",g.newWhatsappAccount=!0),n.params.id&&(g.whatsappAccount.WhatsappAccountId=n.params.id),g.addNewWhatsappAccount=function(){g.errors=[],d.whatsappAccount.save(g.whatsappAccount).$promise.then(function(e){g.whatsappAccounts.unshift(e.toJSON()),o.success({title:"WhatsappAccount properly created",msg:g.whatsappAccount.name?g.whatsappAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.whatsappAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.whatsappAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveWhatsappAccount=function(){g.errors=[],d.whatsappAccount.update({id:g.whatsappAccount.id},g.whatsappAccount).$promise.then(function(e){var n=_.find(g.whatsappAccounts,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"WhatsappAccount properly saved!",msg:g.whatsappAccount.name?g.whatsappAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.whatsappAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.whatsappAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteWhatsappAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The whatsappAccount will be deleted.").ariaLabel("Delete WhatsappAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.whatsappAccount.delete({id:g.whatsappAccount.id}).$promise.then(function(){_.remove(g.whatsappAccounts,{id:g.whatsappAccount.id}),o.success({title:"WhatsappAccount properly deleted!",msg:(g.whatsappAccount.name||"whatsappAccount")+" has been deleted!"}),v(g.whatsappAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.whatsappAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.whatsappAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.lists,{id:e.resourceId})}),t=null;if(g.whatsappAccount&&(t=_.find(g.lists,{id:Number(g.whatsappAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.lists,{id:t.id});a.canSelect=!1,n.push(a)}g.lists=n})}else{var t=[],a=null;g.whatsappAccount&&(a=_.find(g.lists,{id:Number(g.whatsappAccount.ListId)}));for(var i=0;i<g.lists.length;i++)a&&g.lists[i].id===a.id&&(g.lists[i].canSelect=!1,t.push(g.lists[i]));g.lists=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.hasRole("admin")?d.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){g.pauses=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){g.pauses=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.pauses,{id:e.resourceId})});g.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),g.pauses=n})}else g.pauses=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","whatsappAccounts","whatsappAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.whatsapp").controller("CreateOrEditWhatsappAccountDialogController",e)}(),function(){"use strict";function e(o,i,a,s,e){var r=this;function n(e,n){if(r.whatsappAccountApps.rows.length){var t=r.whatsappAccountApps.rows[n]?r.whatsappAccountApps.rows[n]:r.whatsappAccountApps.rows[0];i.show({controller:"EditWhatsappAccountApp"+(t.appType||t.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/"+(t.appType||t.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{whatsappAccountApp:t,whatsappAccount:r.whatsappAccount,crudPermissions:r.crudPermissions}}).then(function(e){e&&(e.id?r.whatsappAccountApps.rows[n]=e:r.whatsappAccountApps.rows.splice(n,0,e),l())}).catch(function(e){e&&s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function l(){for(var e=1,n=[],t=0;t<r.whatsappAccountApps.rows.length;t++,0){var a=r.whatsappAccountApps.rows[t],i=[],s=[];a.intervals="*,*,*,*"!==a.interval?[a.interval]:a.IntervalId?_.map(_.filter(r.intervals.rows,{IntervalId:a.IntervalId}),"interval"):[],a.context=r.whatsappAccount.context,a.exten=r.whatsappAccount.exten,a.type&&(a.type=a.type.toLowerCase()),a.priority=i.length?_.last(i).priority+1:e,e=(s.length?_.last(s).priority:a.priority)+1,n=_.concat(n,i,[a],s)}o.whatsappAccount.addApplications({id:r.whatsappAccount.id},_.sortBy(n,"priority")).$promise.then(function(e){r.whatsappAccountApps.rows=e.rows}).catch(function(e){console.error(e)})}function t(e){r.whatsappAccountApps=e||{count:0,rows:[]}}r.currentUser=e.getCurrentUser(),r.whatsappAccount={},r.whatsappAccountApps={count:0,rows:[]},r.selectedWhatsappAccountApps=[],r.crudPermissions,r.query={sort:"priority"},r.apps=_.reject(_.sortBy([{app:"Interval",appType:"interval",types:["always","custom","list"],fields:[],isApp:!1},{app:"noop",appType:"noop",type:"noop",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,fields:[{title:"Value",name:"value",type:"text",param:0}]},{app:"system",appType:"system",type:"system",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,extraApi:[{name:"variables",field:{name:"variable",key:"name"},route:"variable",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1012}}],fields:[{title:"Command",name:"command",type:"text",required:!0,param:0},{title:"Variable",name:"variable",type:"apiselect",values:"variables",value:"variable.name",option:"variable.name",defaultValues:[{value:"''",option:"None"}],defaultValue:"''",param:1}]},{app:"gotop",appType:"gotop",type:"goto",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Priority",name:"priority",type:"number",required:!0,min:0,param:0}]},{app:"gotoif",appType:"gotoif",type:"gotoif",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Condition",name:"condition",type:"text",required:!0,param:0},{title:"truepriority",name:"truepriority",type:"number",min:1,required:!0,param:1},{title:"falsepriority",name:"falsepriority",type:"number",min:1,required:!0,param:2}]},{app:"queue",appType:"queue",foreignKey:"WhatsappQueueId",type:"queue",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"queues",field:{name:"queue",key:"name"},route:"whatsappQueue",filters:{fields:"id,name,type",sort:"name",nolimit:!0},permissions:{section:2102}}],fields:[{title:"Queue",name:"queue",type:"apiselect",values:"queues",value:"queue.name",option:"queue.name",defaultValue:300,required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:300,param:1}]},{app:"agent",appType:"agent",type:"agent",foreignKey:"UserId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"agents",field:{name:"agent",key:"name"},route:"user",filters:{fields:"id,name",sort:"name",nolimit:!0,role:"agent"},permissions:{section:202}}],fields:[{title:"Agent",name:"agent",type:"apiselect",values:"agents",value:"agent.name",option:"agent.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:30,param:1}]},{app:"autoreply",appType:"autoreply",type:"autoreply",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"times",name:"times",type:"select",defaultValue:"1",values:[{option:"One Time",value:"2"},{option:"Always",value:"0"},{option:"First Message",value:"1"}],required:!0,param:0},{title:"Text",name:"text",type:"textarea",required:!0,param:1}]},{app:"close",appType:"close",type:"close",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Disposition",name:"disposition",type:"text",required:!0,param:0}]},{app:"tag",appType:"tag",type:"tag",foreignKey:"TagId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"tags",field:{name:"tag",key:"name"},route:"tag",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1008}}],fields:[{title:"Tag",name:"tag",type:"apiselect",values:"tags",value:"tag.name",option:"tag.name",required:!0,param:0}]},{app:"dialogflow",appType:"dialogflow",type:"dialogflow",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Key",name:"key",type:"text",required:!0,param:0},{title:"language",name:"language",type:"select",defaultValue:"'en'",values:[{option:"Danish",value:"'da'"},{option:"English",value:"'en'"},{option:"German",value:"'de'"},{option:"Italian",value:"'it'"},{option:"Spanish",value:"'es'"},{option:"French",value:"'fr'"},{option:"Indonesian",value:"'id'"},{option:"Japanese",value:"'ja'"},{option:"Korean (South Korea)",value:"'ko'"},{option:"Dutch",value:"'nl'"},{option:"Norwegian",value:"'no'"},{option:"Portuguese (European)",value:"'pt'"},{option:"Portuguese (Nrazilian)",value:"'pt-br'"},{option:"Russian",value:"'ru'"},{option:"Swedish",value:"'sv'"},{option:"Thai",value:"'th'"},{option:"Ukrainian",value:"'uk'"},{option:"Chinese (Simplified)",value:"'zh-CN'"},{option:"Chinese (Hong Kong)",value:"'zh-HK'"},{option:"Chinese (Traditional)",value:"'zh-TW'"}],required:!0,param:1},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,required:!1,param:2,help:!0}]},{app:"dialogflowV2",appType:"dialogflowv2",type:"dialogflowv2",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"ProjectID",name:"projectId",type:"text",required:!0,param:0},{title:"ClientEmail",name:"clientEmail",type:"text",required:!0,param:1},{title:"PrivateKey",name:"privateKey",type:"textarea",required:!0,param:2},{title:"language",name:"language",type:"select",defaultValue:"'en'",values:[{value:"'zh-HK'",option:"Chinese (Cantonese)"},{value:"'zh-CN'",option:"Chinese (Simplified)"},{value:"'zh-TW'",option:"Chinese (Traditional)"},{value:"'da'",option:"Danish"},{value:"'nl'",option:"Dutch"},{value:"'en'",option:"English"},{value:"'en-AU'",option:"English (Australia)"},{value:"'en-CA'",option:"English (Canada)"},{value:"'en-GB'",option:"English (Great Britain)"},{value:"'en-IN'",option:"English (India)"},{value:"'en-US'",option:"English (US)"},{value:"'fr'",option:"French"},{value:"'fr-CA'",option:"French (Canada)"},{value:"'fr-FR'",option:"'France (France)"},{value:"'de'",option:"German"},{value:"'hi'",option:"Hindi"},{value:"'id'",option:"Indonesian"},{value:"'it'",option:"Italian"},{value:"'ja'",option:"Japanese"},{value:"'ko'",option:"Korean"},{value:"'no'",option:"Norwegian"},{value:"'pl'",option:"Polish"},{value:"'pt-BR'",option:"Portuguese (Brazil)"},{value:"'pt-PT'",option:"Portuguese (Portugal)"},{value:"'ru'",option:"Russian"},{value:"'es'",option:"Spanish"},{value:"'es-419'",option:"Spanish (Latin America)"},{value:"'es-ES'",option:"Spanish (Spain)"},{value:"'sw'",option:"Swedish"},{value:"'th'",option:"Thai"},{value:"'tr'",option:"Turkish"},{value:"'uk'",option:"Ukrainian"}],required:!0,param:3},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,param:4,help:!0}]},{app:"amazonlex",appType:"amazonlex",type:"amazonlex",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"accesskeyid",name:"accesskeyid",type:"text",required:!0,param:0},{title:"secretaccesskey",name:"secretaccesskey",type:"text",required:!0,param:1},{title:"lexregion",name:"lexregion",type:"select",defaultValue:"'us-east-1'",values:[{option:"US East (N. Virginia)",value:"'us-east-1'"},{option:"US West (Oregon)",value:"'us-west-2'"},{option:"EU (Ireland)",value:"'eu-west-1'"},{option:"Asia Pacific (Sydney)",value:"'ap-southeast-2'"}],required:!0,param:2},{title:"botname",name:"botname",type:"text",required:!0,param:3},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,required:!1,param:4,help:!0}]}],["app"]),{isApp:!1}),r.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},r.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){n(e,e.newIndex)},onSort:function(e){l()}},r.init=function(e,n){r.whatsappAccount=e,r.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},r.applications.disabled=!r.crudPermissions.canEdit,r.query.id=e.id,r.query.isApp=!0,r.query.nolimit=!0,r.getWhatsappAccountApps(),r.getIntervals()},r.deleteConfirm=function(e,n,t){var a=i.confirm().title("Are you sure want to delete the application?").htmlContent("<b>"+e.app+"</b> will be deleted.").ariaLabel("delete application").targetEvent(t).ok("OK").cancel("CANCEL");i.show(a).then(function(){r.whatsappAccountApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})},r.getWhatsappAccountApps=function(){r.promise=o.whatsappAccount.getApplications(r.query,t).$promise},r.editWhatsappAccountApp=n,r.editInterval=function(e,n){if(r.whatsappAccountApps.rows.length){var t=r.whatsappAccountApps.rows[n]?r.whatsappAccountApps.rows[n]:r.whatsappAccountApps.rows[0];i.show({controller:"EditWhatsappAccountAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:[],crudPermissions:r.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,l())})}},r.deleteWhatsappAccountApp=function(e){_.remove(r.whatsappAccountApps.rows,{id:e.id}),l(),s.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},r.deleteSelectedWhatsappAccountApps=function(e){var n=i.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+r.selectedWhatsappAccountApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){r.selectedWhatsappAccountApps.forEach(function(e){_.remove(r.whatsappAccountApps.rows,{id:e.id})}),r.selectedWhatsappAccountApps=[],l()})},r.rewriteRouting=l,r.getIntervals=function(){return o.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){r.intervals=e}).catch(function(e){console.error(e)})}}e.$inject=["api","$mdDialog","$document","toasty","Auth"],angular.module("app.whatsapp").controller("WhatsappAccountActionsController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.whatsappAccount.getAgents({id:c.whatsappAccount.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserWhatsappAccount?"penalty "+e.UserWhatsappAccount.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.whatsappAccount=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.whatsappAccount.removeAgents({id:c.whatsappAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.whatsappAccount.addAgents({id:c.whatsappAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("WHATSAPP.ALL_AGENTS"),labelSelected:r.instant("WHATSAPP.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","whatsappAccount","whatsappAccounts","realtime","$translate","Auth","crudPermissions"],angular.module("app.whatsapp").controller("WhatsappAccountagentaddController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.agent=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.agent.appdata)switch(l.agent.appType?l.agent.appType.toLowerCase():l.agent.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.agent.appdata.split(",");l.agent.key=d[0],l.agent.language=d[1],l.agent.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.agent.appdata.split(",");l.agent.projectId=d[0],l.agent.clientEmail=d[1],l.agent.privateKey=d[2],l.agent.language=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.agent.appdata.split(",");l.agent.accesskeyid=d[0],l.agent.secretaccesskey=d[1],l.agent.lexregion=d[2],l.agent.botname=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.agent.appdata.split(",");l.agent.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.agent.text=d.slice(1,d.length).join(",");break;case"message":l.agent.text=l.agent.appdata;break;case"set":l.agent.name=l.agent.appdata.split("=")[0],l.agent.value=l.agent.appdata.split("=")[1];break;case"agi":l.agent.project=l.agent.appdata;break;default:var c=l.agent.appdata.split(",");l.agent.agent=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.agent.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.agent.timeout=30;function m(e){n.hide(e)}l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outbounddial"===l.agent.appType.toLowerCase()&&(l.agent.prefix=l.agent.phone?l.agent.phone.split("$")[0]:void 0,l.agent.callerId=l.agent.callerID?"CALLERID(all)="+l.agent.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outboundDial"===l.agent.appType&&(l.agent.phone=i.cutdigits?(l.agent.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.agent.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.agent.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.agent.options+="U(xcally-mixmonitor-context)"):l.agent.options=l.agent.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.agents,{name:l.agent.agent});n&&(l.agent.UserId=n.id);if(l.agent.appType&&"custom"===l.agent.appType);else switch((l.agent.app||l.agent.appType).toLowerCase()){case"set":l.agent.appdata=l.agent.name+"="+l.agent.value;break;case"custom":break;default:e[0]=l.agent.agent,e[1]=l.agent.timeout,l.agent.appdata=e.join(",")}m(l.agent)},l.closeDialog=m,o.hasRole("admin")?s.user.get({fields:"id,name",sort:"name",nolimit:"true",role:"agent"}).$promise.then(function(e){l.agents=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.user.get({fields:"id,name",sort:"name",nolimit:"true",role:"agent"}).$promise.then(function(e){l.agents=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.agents,{id:e.resourceId})}),t=null;if(l.agent&&(t=_.find(l.agents,{name:l.agent.agent})),t&&!_.some(n,["id",t.id])){var a=_.find(l.agents,{id:t.id});a.canSelect=!1,n.push(a)}l.agents=n})}else{var t=[],a=null;l.agent&&(a=_.find(l.agents,{name:l.agent.agent}));for(var i=0;i<l.agents.length;i++)a&&l.agents[i].id===a.id&&(l.agents[i].canSelect=!1,t.push(l.agents[i]));l.agents=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppagentDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.amazonlex=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.amazonlex.appdata)switch(l.amazonlex.appType?l.amazonlex.appType.toLowerCase():l.amazonlex.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.amazonlex.appdata.split(",");l.amazonlex.key=d[0],l.amazonlex.language=d[1],l.amazonlex.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.amazonlex.appdata.split(",");l.amazonlex.projectId=d[0],l.amazonlex.clientEmail=d[1],l.amazonlex.privateKey=d[2],l.amazonlex.language=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=d[0],l.amazonlex.secretaccesskey=d[1],l.amazonlex.lexregion=d[2],l.amazonlex.botname=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.amazonlex.appdata.split(",");l.amazonlex.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.amazonlex.text=d.slice(1,d.length).join(",");break;case"message":l.amazonlex.text=l.amazonlex.appdata;break;case"set":l.amazonlex.name=l.amazonlex.appdata.split("=")[0],l.amazonlex.value=l.amazonlex.appdata.split("=")[1];break;case"agi":l.amazonlex.project=l.amazonlex.appdata;break;default:var c=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.amazonlex.secretaccesskey=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.amazonlex.lexregion=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.amazonlex.botname=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.amazonlex.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.amazonlex.lexregion="us-east-1";function m(e){n.hide(e)}l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outbounddial"===l.amazonlex.appType.toLowerCase()&&(l.amazonlex.prefix=l.amazonlex.phone?l.amazonlex.phone.split("$")[0]:void 0,l.amazonlex.callerId=l.amazonlex.callerID?"CALLERID(all)="+l.amazonlex.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outboundDial"===l.amazonlex.appType&&(l.amazonlex.phone=i.cutdigits?(l.amazonlex.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.amazonlex.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.amazonlex.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.amazonlex.options+="U(xcally-mixmonitor-context)"):l.amazonlex.options=l.amazonlex.options.replace("U(xcally-mixmonitor-context)",""));if(l.amazonlex.appType&&"custom"===l.amazonlex.appType);else switch((l.amazonlex.app||l.amazonlex.appType).toLowerCase()){case"set":l.amazonlex.appdata=l.amazonlex.name+"="+l.amazonlex.value;break;case"custom":break;default:e[0]=l.amazonlex.accesskeyid,e[1]=l.amazonlex.secretaccesskey,e[2]=l.amazonlex.lexregion,e[3]=l.amazonlex.botname,e[4]=l.amazonlex.welcomemessage,l.amazonlex.appdata=e.join(",")}m(l.amazonlex)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppamazonlexDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.autoreply=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.autoreply.appdata)switch(l.autoreply.appType?l.autoreply.appType.toLowerCase():l.autoreply.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.autoreply.appdata.split(",");l.autoreply.key=d[0],l.autoreply.language=d[1],l.autoreply.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.autoreply.appdata.split(",");l.autoreply.projectId=d[0],l.autoreply.clientEmail=d[1],l.autoreply.privateKey=d[2],l.autoreply.language=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.autoreply.appdata.split(",");l.autoreply.accesskeyid=d[0],l.autoreply.secretaccesskey=d[1],l.autoreply.lexregion=d[2],l.autoreply.botname=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.autoreply.appdata.split(",");l.autoreply.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.autoreply.text=d.slice(1,d.length).join(",");break;case"message":l.autoreply.text=l.autoreply.appdata;break;case"set":l.autoreply.name=l.autoreply.appdata.split("=")[0],l.autoreply.value=l.autoreply.appdata.split("=")[1];break;case"agi":l.autoreply.project=l.autoreply.appdata;break;default:var c=l.autoreply.appdata.split(",");l.autoreply.times=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.autoreply.text=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.autoreply.times=1;function m(e){n.hide(e)}l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outbounddial"===l.autoreply.appType.toLowerCase()&&(l.autoreply.prefix=l.autoreply.phone?l.autoreply.phone.split("$")[0]:void 0,l.autoreply.callerId=l.autoreply.callerID?"CALLERID(all)="+l.autoreply.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outboundDial"===l.autoreply.appType&&(l.autoreply.phone=i.cutdigits?(l.autoreply.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.autoreply.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.autoreply.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.autoreply.options+="U(xcally-mixmonitor-context)"):l.autoreply.options=l.autoreply.options.replace("U(xcally-mixmonitor-context)",""));if(l.autoreply.appType&&"custom"===l.autoreply.appType);else switch((l.autoreply.app||l.autoreply.appType).toLowerCase()){case"set":l.autoreply.appdata=l.autoreply.name+"="+l.autoreply.value;break;case"custom":break;default:e[0]=l.autoreply.times,e[1]=l.autoreply.text,l.autoreply.appdata=e.join(",")}m(l.autoreply)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppautoreplyDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.close=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.close.appdata)switch(l.close.appType?l.close.appType.toLowerCase():l.close.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.close.appdata.split(",");l.close.key=d[0],l.close.language=d[1],l.close.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.close.appdata.split(",");l.close.projectId=d[0],l.close.clientEmail=d[1],l.close.privateKey=d[2],l.close.language=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.close.appdata.split(",");l.close.accesskeyid=d[0],l.close.secretaccesskey=d[1],l.close.lexregion=d[2],l.close.botname=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.close.appdata.split(",");l.close.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.close.text=d.slice(1,d.length).join(",");break;case"message":l.close.text=l.close.appdata;break;case"set":l.close.name=l.close.appdata.split("=")[0],l.close.value=l.close.appdata.split("=")[1];break;case"agi":l.close.project=l.close.appdata;break;default:var c=l.close.appdata.split(",");l.close.disposition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outbounddial"===l.close.appType.toLowerCase()&&(l.close.prefix=l.close.phone?l.close.phone.split("$")[0]:void 0,l.close.callerId=l.close.callerID?"CALLERID(all)="+l.close.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outboundDial"===l.close.appType&&(l.close.phone=i.cutdigits?(l.close.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.close.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.close.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.close.options+="U(xcally-mixmonitor-context)"):l.close.options=l.close.options.replace("U(xcally-mixmonitor-context)",""));if(l.close.appType&&"custom"===l.close.appType);else switch((l.close.app||l.close.appType).toLowerCase()){case"set":l.close.appdata=l.close.name+"="+l.close.value;break;case"custom":break;default:e[0]=l.close.disposition,l.close.appdata=e.join(",")}m(l.close)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppcloseDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflow=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflow.appdata)switch(l.dialogflow.appType?l.dialogflow.appType.toLowerCase():l.dialogflow.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflow.appdata.split(",");l.dialogflow.key=d[0],l.dialogflow.language=d[1],l.dialogflow.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflow.appdata.split(",");l.dialogflow.projectId=d[0],l.dialogflow.clientEmail=d[1],l.dialogflow.privateKey=d[2],l.dialogflow.language=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflow.appdata.split(",");l.dialogflow.accesskeyid=d[0],l.dialogflow.secretaccesskey=d[1],l.dialogflow.lexregion=d[2],l.dialogflow.botname=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflow.appdata.split(",");l.dialogflow.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflow.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflow.text=l.dialogflow.appdata;break;case"set":l.dialogflow.name=l.dialogflow.appdata.split("=")[0],l.dialogflow.value=l.dialogflow.appdata.split("=")[1];break;case"agi":l.dialogflow.project=l.dialogflow.appdata;break;default:var c=l.dialogflow.appdata.split(",");l.dialogflow.key=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflow.language=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflow.welcomemessage=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}else l.dialogflow.language="en";function m(e){n.hide(e)}l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outbounddial"===l.dialogflow.appType.toLowerCase()&&(l.dialogflow.prefix=l.dialogflow.phone?l.dialogflow.phone.split("$")[0]:void 0,l.dialogflow.callerId=l.dialogflow.callerID?"CALLERID(all)="+l.dialogflow.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outboundDial"===l.dialogflow.appType&&(l.dialogflow.phone=i.cutdigits?(l.dialogflow.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflow.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflow.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflow.options+="U(xcally-mixmonitor-context)"):l.dialogflow.options=l.dialogflow.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflow.appType&&"custom"===l.dialogflow.appType);else switch((l.dialogflow.app||l.dialogflow.appType).toLowerCase()){case"set":l.dialogflow.appdata=l.dialogflow.name+"="+l.dialogflow.value;break;case"custom":break;default:e[0]=l.dialogflow.key,e[1]=l.dialogflow.language,e[2]=l.dialogflow.welcomemessage,l.dialogflow.appdata=e.join(",")}m(l.dialogflow)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppdialogflowDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflowv2=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflowv2.appdata)switch(l.dialogflowv2.appType?l.dialogflowv2.appType.toLowerCase():l.dialogflowv2.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.key=d[0],l.dialogflowv2.language=d[1],l.dialogflowv2.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=d[0],l.dialogflowv2.clientEmail=d[1],l.dialogflowv2.privateKey=d[2],l.dialogflowv2.language=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.accesskeyid=d[0],l.dialogflowv2.secretaccesskey=d[1],l.dialogflowv2.lexregion=d[2],l.dialogflowv2.botname=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflowv2.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflowv2.text=l.dialogflowv2.appdata;break;case"set":l.dialogflowv2.name=l.dialogflowv2.appdata.split("=")[0],l.dialogflowv2.value=l.dialogflowv2.appdata.split("=")[1];break;case"agi":l.dialogflowv2.project=l.dialogflowv2.appdata;break;default:var c=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflowv2.clientEmail=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflowv2.privateKey=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.dialogflowv2.language=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.dialogflowv2.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.dialogflowv2.language="en";function m(e){n.hide(e)}l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outbounddial"===l.dialogflowv2.appType.toLowerCase()&&(l.dialogflowv2.prefix=l.dialogflowv2.phone?l.dialogflowv2.phone.split("$")[0]:void 0,l.dialogflowv2.callerId=l.dialogflowv2.callerID?"CALLERID(all)="+l.dialogflowv2.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outboundDial"===l.dialogflowv2.appType&&(l.dialogflowv2.phone=i.cutdigits?(l.dialogflowv2.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflowv2.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflowv2.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflowv2.options+="U(xcally-mixmonitor-context)"):l.dialogflowv2.options=l.dialogflowv2.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflowv2.appType&&"custom"===l.dialogflowv2.appType);else switch((l.dialogflowv2.app||l.dialogflowv2.appType).toLowerCase()){case"set":l.dialogflowv2.appdata=l.dialogflowv2.name+"="+l.dialogflowv2.value;break;case"custom":break;default:e[0]=l.dialogflowv2.projectId,e[1]=l.dialogflowv2.clientEmail,e[2]=l.dialogflowv2.privateKey,e[3]=l.dialogflowv2.language,e[4]=l.dialogflowv2.welcomemessage,l.dialogflowv2.appdata=e.join(",")}m(l.dialogflowv2)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppdialogflowv2DialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotoif=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotoif.appdata)switch(l.gotoif.appType?l.gotoif.appType.toLowerCase():l.gotoif.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotoif.appdata.split(",");l.gotoif.key=d[0],l.gotoif.language=d[1],l.gotoif.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotoif.appdata.split(",");l.gotoif.projectId=d[0],l.gotoif.clientEmail=d[1],l.gotoif.privateKey=d[2],l.gotoif.language=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotoif.appdata.split(",");l.gotoif.accesskeyid=d[0],l.gotoif.secretaccesskey=d[1],l.gotoif.lexregion=d[2],l.gotoif.botname=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotoif.appdata.split(",");l.gotoif.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotoif.text=d.slice(1,d.length).join(",");break;case"message":l.gotoif.text=l.gotoif.appdata;break;case"set":l.gotoif.name=l.gotoif.appdata.split("=")[0],l.gotoif.value=l.gotoif.appdata.split("=")[1];break;case"agi":l.gotoif.project=l.gotoif.appdata;break;default:var c=l.gotoif.appdata.split(",");l.gotoif.condition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.gotoif.truepriority=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.gotoif.falsepriority=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}function m(e){n.hide(e)}l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outbounddial"===l.gotoif.appType.toLowerCase()&&(l.gotoif.prefix=l.gotoif.phone?l.gotoif.phone.split("$")[0]:void 0,l.gotoif.callerId=l.gotoif.callerID?"CALLERID(all)="+l.gotoif.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outboundDial"===l.gotoif.appType&&(l.gotoif.phone=i.cutdigits?(l.gotoif.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotoif.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotoif.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotoif.options+="U(xcally-mixmonitor-context)"):l.gotoif.options=l.gotoif.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotoif.appType&&"custom"===l.gotoif.appType);else switch((l.gotoif.app||l.gotoif.appType).toLowerCase()){case"set":l.gotoif.appdata=l.gotoif.name+"="+l.gotoif.value;break;case"custom":break;default:e[0]=l.gotoif.condition,e[1]=l.gotoif.truepriority,e[2]=l.gotoif.falsepriority,l.gotoif.appdata=e.join(",")}m(l.gotoif)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppgotoifDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotop.appdata)switch(l.gotop.appType?l.gotop.appType.toLowerCase():l.gotop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotop.appdata.split(",");l.gotop.key=d[0],l.gotop.language=d[1],l.gotop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotop.appdata.split(",");l.gotop.projectId=d[0],l.gotop.clientEmail=d[1],l.gotop.privateKey=d[2],l.gotop.language=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotop.appdata.split(",");l.gotop.accesskeyid=d[0],l.gotop.secretaccesskey=d[1],l.gotop.lexregion=d[2],l.gotop.botname=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotop.appdata.split(",");l.gotop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotop.text=d.slice(1,d.length).join(",");break;case"message":l.gotop.text=l.gotop.appdata;break;case"set":l.gotop.name=l.gotop.appdata.split("=")[0],l.gotop.value=l.gotop.appdata.split("=")[1];break;case"agi":l.gotop.project=l.gotop.appdata;break;default:var c=l.gotop.appdata.split(",");l.gotop.priority=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outbounddial"===l.gotop.appType.toLowerCase()&&(l.gotop.prefix=l.gotop.phone?l.gotop.phone.split("$")[0]:void 0,l.gotop.callerId=l.gotop.callerID?"CALLERID(all)="+l.gotop.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outboundDial"===l.gotop.appType&&(l.gotop.phone=i.cutdigits?(l.gotop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotop.options+="U(xcally-mixmonitor-context)"):l.gotop.options=l.gotop.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotop.appType&&"custom"===l.gotop.appType);else switch((l.gotop.app||l.gotop.appType).toLowerCase()){case"set":l.gotop.appdata=l.gotop.name+"="+l.gotop.value;break;case"custom":break;default:e[0]=l.gotop.priority,l.gotop.appdata=e.join(",")}m(l.gotop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppgotopDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;if(c.currentUser=l.getCurrentUser(),c.errors=[],c.title="TOOLS.EDIT_INTERVAL",c.interval=angular.copy(i),c.intervals=s,c.newInterval=!1,c.types=["always","custom","list"],c.crudPermissions=d,c.daysOfWeek=a.getDaysOfWeek(),c.monthNumber=a.getMonthNumber(),c.monthName=a.getMonthName(),c.daysOfMonth=a.getDaysOfMonth(),c.interval)if("*,*,*,*"!==c.interval.interval){c.type="custom";var m=c.interval.interval.split(","),u=m[0],p=m[1],g=m[2],v=m[3];if("*"!==u){var h,f=u.split("-")[0],b=u.split("-")[1];(h=new Date).setHours(Number(f.split(":")[0])),h.setMinutes(Number(f.split(":")[1])),c.timeRangeFrom=h,(h=new Date).setHours(Number(b.split(":")[0])),h.setMinutes(Number(b.split(":")[1])),c.timeRangeTo=h}"*"!==p&&(c.dayOfWeekFrom=p.split("-")[0],c.dayOfWeekTo=p.split("-")[1]),"*"!==g&&(c.monthDayFrom=g.split("-")[0],c.monthDayTo=g.split("-")[1]),"*"!==v&&(c.monthFrom=v.split("-")[0],c.monthTo=v.split("-")[1])}else c.type="always";else c.interval={interval:"*,*,*,*"},c.type="always",c.title="TOOLS.NEW_INTERVAL",c.newInterval=!0;function A(){switch(c.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==c.timeRangeFrom&&c.timeRangeFrom&&c.timeRangeTo){var n=(c.timeRangeFrom.getHours()<10?"0":"")+c.timeRangeFrom.getHours()+":"+(c.timeRangeFrom.getMinutes()<10?"0":"")+c.timeRangeFrom.getMinutes(),t=(c.timeRangeTo.getHours()<10?"0":"")+c.timeRangeTo.getHours()+":"+(c.timeRangeTo.getMinutes()<10?"0":"")+c.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return c.dayOfWeekFrom?c.dayOfWeekTo?e.push(c.dayOfWeekFrom+"-"+c.dayOfWeekTo):e.push(c.dayOfWeekFrom):e.push("*"),c.monthDayFrom?c.monthDayTo?e.push(c.monthDayFrom+"-"+c.monthDayTo):e.push(c.monthDayFrom):e.push("*"),c.monthFrom?c.monthTo?e.push(c.monthFrom+"-"+c.monthTo):e.push(c.monthFrom):e.push("*"),e.join()}}function E(e){n.hide(e)}e.params.id&&!c.interval.application&&(c.interval.IntervalId=e.params.id),c.interval.IntervalId&&c.interval.application&&(c.type="list"),c.addNewInterval=function(){c.errors=[],c.interval.interval=A(),r.interval.save(c.interval).$promise.then(function(e){c.intervals.push(e),o.success({title:"Interval properly created",msg:c.interval.name?c.interval.name+" has been created!":""}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},c.saveInterval=function(){c.errors=[],c.interval.interval=A(),c.interval.application?("list"!==c.type&&(c.interval.IntervalId=null),E(c.interval)):r.interval.update({id:c.interval.id},c.interval).$promise.then(function(e){var n=_.find(c.intervals,{id:e.id});n&&_.merge(n,e),o.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},c.closeDialog=E,c.interval.application&&(l.hasRole("admin")?r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:c.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=e&&e.rows?e.rows:[],t=[],a=null;c.interval&&(a=_.find(c.intervals,{name:c.interval.IntervalId})),a&&!_.some(n,["resourceId",a.id])&&c.intervals.forEach(function(e){e.id===a.id&&(e.canSelect=!1,t.push(e))}),c.intervals=t})}else c.intervals=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}))}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditWhatsappAccountAppintervalDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.noop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.noop.appdata)switch(l.noop.appType?l.noop.appType.toLowerCase():l.noop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.noop.appdata.split(",");l.noop.key=d[0],l.noop.language=d[1],l.noop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.noop.appdata.split(",");l.noop.projectId=d[0],l.noop.clientEmail=d[1],l.noop.privateKey=d[2],l.noop.language=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.noop.appdata.split(",");l.noop.accesskeyid=d[0],l.noop.secretaccesskey=d[1],l.noop.lexregion=d[2],l.noop.botname=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.noop.appdata.split(",");l.noop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.noop.text=d.slice(1,d.length).join(",");break;case"message":l.noop.text=l.noop.appdata;break;case"set":l.noop.name=l.noop.appdata.split("=")[0],l.noop.value=l.noop.appdata.split("=")[1];break;case"agi":l.noop.project=l.noop.appdata;break;default:var c=l.noop.appdata.split(",");l.noop.value=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outbounddial"===l.noop.appType.toLowerCase()&&(l.noop.prefix=l.noop.phone?l.noop.phone.split("$")[0]:void 0,l.noop.callerId=l.noop.callerID?"CALLERID(all)="+l.noop.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outboundDial"===l.noop.appType&&(l.noop.phone=i.cutdigits?(l.noop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.noop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.noop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.noop.options+="U(xcally-mixmonitor-context)"):l.noop.options=l.noop.options.replace("U(xcally-mixmonitor-context)",""));if(l.noop.appType&&"custom"===l.noop.appType);else switch((l.noop.app||l.noop.appType).toLowerCase()){case"set":l.noop.appdata=l.noop.name+"="+l.noop.value;break;case"custom":break;default:e[0]=l.noop.value,l.noop.appdata=e.join(",")}m(l.noop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppnoopDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.queue=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.queue.appdata)switch(l.queue.appType?l.queue.appType.toLowerCase():l.queue.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.queue.appdata.split(",");l.queue.key=d[0],l.queue.language=d[1],l.queue.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.queue.appdata.split(",");l.queue.projectId=d[0],l.queue.clientEmail=d[1],l.queue.privateKey=d[2],l.queue.language=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.queue.appdata.split(",");l.queue.accesskeyid=d[0],l.queue.secretaccesskey=d[1],l.queue.lexregion=d[2],l.queue.botname=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.queue.appdata.split(",");l.queue.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.queue.text=d.slice(1,d.length).join(",");break;case"message":l.queue.text=l.queue.appdata;break;case"set":l.queue.name=l.queue.appdata.split("=")[0],l.queue.value=l.queue.appdata.split("=")[1];break;case"agi":l.queue.project=l.queue.appdata;break;default:var c=l.queue.appdata.split(",");l.queue.queue=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.queue.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.queue.queue=300,l.queue.timeout=300;function m(e){n.hide(e)}l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outbounddial"===l.queue.appType.toLowerCase()&&(l.queue.prefix=l.queue.phone?l.queue.phone.split("$")[0]:void 0,l.queue.callerId=l.queue.callerID?"CALLERID(all)="+l.queue.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outboundDial"===l.queue.appType&&(l.queue.phone=i.cutdigits?(l.queue.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.queue.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.queue.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.queue.options+="U(xcally-mixmonitor-context)"):l.queue.options=l.queue.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.queues,{name:l.queue.queue});n&&(l.queue[_.capitalize("whatsapp")+"QueueId"]=n.id);if(l.queue.appType&&"custom"===l.queue.appType);else switch((l.queue.app||l.queue.appType).toLowerCase()){case"set":l.queue.appdata=l.queue.name+"="+l.queue.value;break;case"custom":break;default:e[0]=l.queue.queue,e[1]=l.queue.timeout,l.queue.appdata=e.join(",")}m(l.queue)},l.closeDialog=m,o.hasRole("admin")?s.whatsappQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.whatsappQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:2102}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.queues,{id:e.resourceId})}),t=null;if(l.queue&&(t=_.find(l.queues,{name:l.queue.queue})),t&&!_.some(n,["id",t.id])){var a=_.find(l.queues,{id:t.id});a.canSelect=!1,n.push(a)}l.queues=n})}else{var t=[],a=null;l.queue&&(a=_.find(l.queues,{name:l.queue.queue}));for(var i=0;i<l.queues.length;i++)a&&l.queues[i].id===a.id&&(l.queues[i].canSelect=!1,t.push(l.queues[i]));l.queues=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppqueueDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.system=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.system.appdata)switch(l.system.appType?l.system.appType.toLowerCase():l.system.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.system.appdata.split(",");l.system.key=d[0],l.system.language=d[1],l.system.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.system.appdata.split(",");l.system.projectId=d[0],l.system.clientEmail=d[1],l.system.privateKey=d[2],l.system.language=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.system.appdata.split(",");l.system.accesskeyid=d[0],l.system.secretaccesskey=d[1],l.system.lexregion=d[2],l.system.botname=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.system.appdata.split(",");l.system.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.system.text=d.slice(1,d.length).join(",");break;case"message":l.system.text=l.system.appdata;break;case"set":l.system.name=l.system.appdata.split("=")[0],l.system.value=l.system.appdata.split("=")[1];break;case"agi":l.system.project=l.system.appdata;break;default:var c=l.system.appdata.split(",");l.system.command=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.system.variable=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.system.variable="";function m(e){n.hide(e)}l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outbounddial"===l.system.appType.toLowerCase()&&(l.system.prefix=l.system.phone?l.system.phone.split("$")[0]:void 0,l.system.callerId=l.system.callerID?"CALLERID(all)="+l.system.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outboundDial"===l.system.appType&&(l.system.phone=i.cutdigits?(l.system.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.system.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.system.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.system.options+="U(xcally-mixmonitor-context)"):l.system.options=l.system.options.replace("U(xcally-mixmonitor-context)",""));if(l.system.appType&&"custom"===l.system.appType);else switch((l.system.app||l.system.appType).toLowerCase()){case"set":l.system.appdata=l.system.name+"="+l.system.value;break;case"custom":break;default:e[0]=l.system.command,e[1]=l.system.variable,l.system.appdata=e.join(",")}m(l.system)},l.closeDialog=m,o.hasRole("admin")?s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1012}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.variables,{id:e.resourceId})}),t=null;if(l.system&&(t=_.find(l.variables,{name:l.system.variable})),t&&!_.some(n,["id",t.id])){var a=_.find(l.variables,{id:t.id});a.canSelect=!1,n.push(a)}l.variables=n})}else{var t=[],a=null;l.system&&(a=_.find(l.variables,{name:l.system.variable}));for(var i=0;i<l.variables.length;i++)a&&l.variables[i].id===a.id&&(l.variables[i].canSelect=!1,t.push(l.variables[i]));l.variables=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppsystemDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.tag=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.tag.appdata)switch(l.tag.appType?l.tag.appType.toLowerCase():l.tag.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.tag.appdata.split(",");l.tag.key=d[0],l.tag.language=d[1],l.tag.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.tag.appdata.split(",");l.tag.projectId=d[0],l.tag.clientEmail=d[1],l.tag.privateKey=d[2],l.tag.language=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.tag.appdata.split(",");l.tag.accesskeyid=d[0],l.tag.secretaccesskey=d[1],l.tag.lexregion=d[2],l.tag.botname=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.tag.appdata.split(",");l.tag.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.tag.text=d.slice(1,d.length).join(",");break;case"message":l.tag.text=l.tag.appdata;break;case"set":l.tag.name=l.tag.appdata.split("=")[0],l.tag.value=l.tag.appdata.split("=")[1];break;case"agi":l.tag.project=l.tag.appdata;break;default:var c=l.tag.appdata.split(",");l.tag.tag=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outbounddial"===l.tag.appType.toLowerCase()&&(l.tag.prefix=l.tag.phone?l.tag.phone.split("$")[0]:void 0,l.tag.callerId=l.tag.callerID?"CALLERID(all)="+l.tag.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outboundDial"===l.tag.appType&&(l.tag.phone=i.cutdigits?(l.tag.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.tag.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.tag.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.tag.options+="U(xcally-mixmonitor-context)"):l.tag.options=l.tag.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.tags,{name:l.tag.tag});n&&(l.tag.TagId=n.id);if(l.tag.appType&&"custom"===l.tag.appType);else switch((l.tag.app||l.tag.appType).toLowerCase()){case"set":l.tag.appdata=l.tag.name+"="+l.tag.value;break;case"custom":break;default:e[0]=l.tag.tag,l.tag.appdata=e.join(",")}m(l.tag)},l.closeDialog=m,o.hasRole("admin")?s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1008}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.tags,{id:e.resourceId})}),t=null;if(l.tag&&(t=_.find(l.tags,{name:l.tag.tag})),t&&!_.some(n,["id",t.id])){var a=_.find(l.tags,{id:t.id});a.canSelect=!1,n.push(a)}l.tags=n})}else{var t=[],a=null;l.tag&&(a=_.find(l.tags,{name:l.tag.tag}));for(var i=0;i<l.tags.length;i++)a&&l.tags[i].id===a.id&&(l.tags[i].canSelect=!1,t.push(l.tags[i]));l.tags=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtags",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountApptagDialogController",e)}(),function(){"use strict";function e(e,a,n,t,i,s,o,r,l,d,c){var m=this;function u(e){m.whatsappAccountInteractions=e||{count:0,rows:[]};for(var n=0;n<m.whatsappAccountInteractions.rows.length;n+=1){var t=m.whatsappAccountInteractions.rows[n];v(t),t.Owner.name=h(t)}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.whatsappInteraction.get(m.query,u).$promise}function g(e){d.whatsappInteraction.delete({id:e.id}).$promise.then(function(){_.remove(m.whatsappAccountInteractions.rows,{id:e.id}),m.whatsappAccountInteractions.count-=1,m.whatsappAccountInteractions.rows.length||p(),l.success({title:"Interaction deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETwhatsappAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETwhatsappAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(e){e.Contact?e.contactName=(e.Contact.firstName||"")+" "+(e.Contact.lastName||""):e.contactName=i.instant("DASHBOARDS.UNKNOWN")}function h(e){return e.UserId?e.UserId===m.currentUser.id?i.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">":i.instant("DASHBOARDS.NOT_ASSIGNED")}m.currentUser=c.getCurrentUser(),m.whatsappAccount={},m.whatsappAccountInteractions={count:0,rows:[]},m.selectedWhatsappAccountInteractions=[],m.crudPermissions,m.query={read:"null",closed:"null",sort:"-createdAt",includeAll:"true",limit:10,page:1},m.init=function(e,n,t){m.whatsappAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.WhatsappAccountId=m.whatsappAccount.id,m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Subject",column:"subject",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}},{name:"Disposition",column:"disposition",type:"multiselect",options:{field:"name",route:{model:"disposition",action:"get",params:{fields:"name,level",nolimit:!0,level:"first"}}}},{name:"Second Disposition",column:"secondDisposition",type:"multiselect",options:{field:"name",route:{model:"disposition",action:"get",params:{fields:"name,level",nolimit:!0,level:"second"}}}},{name:"Third Disposition",column:"thirdDisposition",type:"multiselect",options:{field:"name",route:{model:"disposition",action:"get",params:{fields:"name,level",nolimit:!0,level:"third"}}}}]},d.tag.get().$promise.then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]})},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the interaction?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("interaction #")+e.id||"interaction")+"</b> will be deleted.").ariaLabel("delete interaction").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.whatsappInteractionDownload=function(s,e,n){return d.whatsappInteraction.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="interaction"+s.id,a=new Blob(n,{type:e.type});t="whatsapp-interaction"+s.id+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.whatsappAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getWhatsappAccountInteractions=p,m.createOrEditWhatsappAccountInteraction=function(e,n){o.show({controller:"CreateOrEditInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/edit/interactions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{whatsappAccount:m.whatsappAccount,interaction:n,interactions:m.whatsappAccountInteractions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.spywhatsappInteraction=function(e,t){o.show({controller:"AgentGeneralInteractionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,onShowing:function(e,n){e.vm.init({id:1,channel:"whatsapp",interaction:t,spy:!0},a.$parent.vm.setting)}})},m.openAdvancedSearch=function(){o.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(r.body),clickOutsideToClose:!1,locals:{fields:m.advancedSearch.fields,color:void 0,storagePath:"whatsapp.whatsappAccounts"},fullscreen:!0}).then(function(e){if(m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply){var n="";n+="||WhatsappAccountId:=$eq["+m.whatsappAccount.id+"]",m.query.search=e.value?e.value+=n:e.value,p()}}).catch(function(e){l.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.exportSelectedWhatsappAccountInteractions=function(){var e=angular.copy(m.selectedWhatsappAccountInteractions);return m.selectedWhatsappAccountInteractions=[],e},m.deleteWhatsappAccountInteraction=g,m.deleteSelectedWhatsappAccountInteractions=function(e){var n=o.confirm().title("Are you sure want to delete the selected interactions?").htmlContent("<b>"+m.selectedWhatsappAccountInteractions.length+" selected</b> will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedWhatsappAccountInteractions.forEach(function(e){g(e)}),m.selectedWhatsappAccountInteractions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.whatsapp").controller("WhatsappAccountInteractionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;p.currentUser=d.getCurrentUser(),p.license=s,p.setting=o,p.passwordPattern=p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.location=n.protocol()+"://"+n.host(),p.whatsappAccount=c||e.params.whatsappAccount||{},p.userProfile=m,p.userProfileSection=u&&1==u.count?u.rows[0]:null,p.crudPermissions=d.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.hasModulePermissions={},p.selectedTab=e.params.tab||0,p.agentadddialog=function(e,n){t.show({controller:"WhatsappAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{whatsappAccount:e,whatsappAccounts:p.whatsappAccounts?p.whatsappAccounts.rows:[],crudPermissions:p.crudPermissions,realtime:!1}})},p.alert=l.info,p.gotoWhatsappAccounts=function(){e.go("app.whatsapp.whatsappAccounts",{},{reload:"app.whatsapp.whatsappAccounts"})},p.saveWhatsappAccount=function(){r.whatsappAccount.update({id:p.whatsappAccount.id},p.whatsappAccount).$promise.then(function(){l.success({title:"WhatsappAccount updated!",msg:p.whatsappAccount.name?p.whatsappAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETwhatsappAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.lists,{id:e.resourceId})}),t=null;if(p.whatsappAccount&&(t=_.find(p.lists,{id:Number(p.whatsappAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.lists,{id:t.id});a.canSelect=!1,n.push(a)}p.lists=n})}else{var t=[],a=null;p.whatsappAccount&&(a=_.find(p.lists,{id:Number(p.whatsappAccount.ListId)}));for(var i=0;i<p.lists.length;i++)a&&p.lists[i].id===a.id&&(p.lists[i].canSelect=!1,t.push(p.lists[i]));p.lists=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.pauses,{id:e.resourceId})});p.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),p.pauses=n})}else p.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","whatsappAccount","userProfile","userProfileSection"],angular.module("app.whatsapp").controller("WhatsappAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.whatsappAccountWhatsappCannedAnswers=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.whatsappAccount.getAnswers(m.query,u).$promise}function g(e){d.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(m.whatsappAccountWhatsappCannedAnswers.rows,{id:e.id}),m.whatsappAccountWhatsappCannedAnswers.count-=1,m.whatsappAccountWhatsappCannedAnswers.rows.length||p(),l.success({title:"WhatsappCannedAnswer deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETwhatsappAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETwhatsappAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.whatsappAccount={},m.whatsappAccountWhatsappCannedAnswers={count:0,rows:[]},m.selectedWhatsappAccountWhatsappCannedAnswers=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,key,value,description",limit:10,page:1},m.init=function(e,n,t){m.whatsappAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.WhatsappAccountId=m.whatsappAccount.id,m.query.id=m.whatsappAccount.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the whatsappCannedAnswer?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("whatsappCannedAnswer #")+e.id||"whatsappCannedAnswer")+"</b> will be deleted.").ariaLabel("delete whatsappCannedAnswer").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getWhatsappAccountWhatsappCannedAnswers=p,m.createOrEditWhatsappAccountWhatsappCannedAnswer=function(e,n){o.show({controller:"CreateOrEditWhatsappCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/edit/whatsappCannedAnswers/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{whatsappAccount:m.whatsappAccount,whatsappCannedAnswer:n,whatsappCannedAnswers:m.whatsappAccountWhatsappCannedAnswers.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedWhatsappAccountWhatsappCannedAnswers=function(){var e=angular.copy(m.selectedWhatsappAccountWhatsappCannedAnswers);return m.selectedWhatsappAccountWhatsappCannedAnswers=[],e},m.deleteWhatsappAccountWhatsappCannedAnswer=g,m.deleteSelectedWhatsappAccountWhatsappCannedAnswers=function(e){var n=o.confirm().title("Are you sure want to delete the selected whatsappCannedAnswers?").htmlContent("<b>"+m.selectedWhatsappAccountWhatsappCannedAnswers.length+" selected</b> will be deleted.").ariaLabel("delete whatsappCannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedWhatsappAccountWhatsappCannedAnswers.forEach(function(e){g(e)}),m.selectedWhatsappAccountWhatsappCannedAnswers=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.whatsapp").controller("WhatsappAccountWhatsappCannedAnswersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="WHATSAPP.EDIT_WHATSAPPCANNEDANSWER",g.whatsappCannedAnswer=angular.copy(l),g.whatsappCannedAnswers=r,g.newWhatsappCannedAnswer=!1,g.whatsappCannedAnswer||(g.whatsappCannedAnswer={},g.title="WHATSAPP.NEW_WHATSAPPCANNEDANSWER",g.newWhatsappCannedAnswer=!0),n.params.id&&(g.whatsappCannedAnswer.WhatsappAccountId=n.params.id),g.addNewWhatsappCannedAnswer=function(){g.errors=[],d.cannedAnswer.save(g.whatsappCannedAnswer).$promise.then(function(e){g.whatsappCannedAnswers.unshift(e.toJSON()),o.success({title:"WhatsappCannedAnswer properly created",msg:g.whatsappCannedAnswer.name?g.whatsappCannedAnswer.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveWhatsappCannedAnswer=function(){g.errors=[],d.cannedAnswer.update({id:g.whatsappCannedAnswer.id},g.whatsappCannedAnswer).$promise.then(function(e){var n=_.find(g.whatsappCannedAnswers,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"WhatsappCannedAnswer properly saved!",msg:g.whatsappCannedAnswer.name?g.whatsappCannedAnswer.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteWhatsappCannedAnswer=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The whatsappCannedAnswer will be deleted.").ariaLabel("Delete WhatsappCannedAnswer").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cannedAnswer.delete({id:g.whatsappCannedAnswer.id}).$promise.then(function(){_.remove(g.whatsappCannedAnswers,{id:g.whatsappCannedAnswer.id}),o.success({title:"WhatsappCannedAnswer properly deleted!",msg:(g.whatsappCannedAnswer.name||"whatsappCannedAnswer")+" has been deleted!"}),v(g.whatsappCannedAnswer)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","whatsappCannedAnswers","whatsappCannedAnswer","api","Auth","license","setting","crudPermissions"],angular.module("app.whatsapp").controller("CreateOrEditWhatsappCannedAnswerDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.dispositions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=l.whatsappAccount.getDispositions(m.query,u).$promise}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){p(),d.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.dispositions={count:0,rows:[]},m.selectedDispositions=[],m.crudPermissions,m.levels={first:"1st",second:"2nd",third:"3rd"},m.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},m.init=function(e,n){m.whatsappAccount=e||{},m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.WhatsappAccountId=m.whatsappAccount.id,m.query.id=m.whatsappAccount.id,p()},m.deleteConfirm=function(e,n){var t=_.some(m.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){g(e)})},m.success=u,m.getDispositions=p,m.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:{id:m.whatsappAccount.id,field:"WhatsappAccountId",route:"whatsappAccount"},license:null,setting:null,crudPermissions:m.crudPermissions}}).then(function(e){e&&p()})},m.deleteDisposition=g,m.exportSelectedDispositions=function(){var e=angular.copy(m.selectedDispositions);return m.selectedDispositions=[],e},m.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:m.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedDispositions.forEach(function(e){g(e)}),m.selectedDispositions=[]})},m.deselectDispositions=function(){m.selectedDispositions=[]},m.selectAllDispositions=function(){m.selectedDispositions=m.dispositions.rows};var v=!0,h=1;e.$watch("vm_dc.query.filter",function(e,n){v?o(function(){v=!1}):(n||(h=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=h),p())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","api","toasty","Auth"],angular.module("app.whatsapp").controller("WhatsappAccountDispositionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.whatsappAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="whatsappAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedWhatsappAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,key,ListId,remote,token,type,accountSid,authToken,phone,receiveUrl,deliveryReportUrl,notificationShake,notificationSound,notificationTemplate,queueTransfer,queueTransferTimeout,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,agentTransfer,agentTransferTimeout,description",sort:"-updatedAt",limit:10,page:1},f.arraytype=_.keyBy([{option:"Twilio",value:"'twilio'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.whatsapp.whatsappAccounts.edit",{id:e.id,whatsappAccount:e,crudPermissions:f.crudPermissions})},f.interactionsgoto=function(e,n){t.go("app.whatsapp.whatsappAccounts.edit",{id:e.id,tab:5})},f.agentadddialog=function(e,n){i.show({controller:"WhatsappAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{whatsappAccount:e,whatsappAccounts:f.whatsappAccounts?f.whatsappAccounts.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("whatsappAccount")+"?").htmlContent("<b>"+(e.name||"whatsappAccount")+"</b> will be deleted.").ariaLabel("delete whatsappAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getWhatsappAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.whatsappAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="WhatsappAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditWhatsappAccount=function(e,n){i.show({controller:"CreateOrEditWhatsappAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{whatsappAccount:n,whatsappAccounts:f.whatsappAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteWhatsappAccount=y,f.exportSelectedWhatsappAccounts=function(){var e=angular.copy(f.selectedWhatsappAccounts);return f.selectedWhatsappAccounts=[],e},f.deleteSelectedWhatsappAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected whatsappAccounts?").htmlContent("<b>"+f.selectedWhatsappAccounts.length+" selected</b> will be deleted.").ariaLabel("delete WhatsappAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedWhatsappAccounts.forEach(function(e){y(e)}),f.selectedWhatsappAccounts=[]})},f.deselectWhatsappAccounts=function(){f.selectedWhatsappAccounts=[]},f.selectAllWhatsappAccounts=function(){f.selectedWhatsappAccounts=f.whatsappAccounts.rows},g.hasRole("admin")?m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.lists,{id:e.resourceId})}),t=null;if(f.whatsappAccount&&(t=_.find(f.lists,{id:Number(f.whatsappAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.lists,{id:t.id});a.canSelect=!1,n.push(a)}f.lists=n})}else{var t=[],a=null;f.whatsappAccount&&(a=_.find(f.lists,{id:Number(f.whatsappAccount.ListId)}));for(var i=0;i<f.lists.length;i++)a&&f.lists[i].id===a.id&&(f.lists[i].canSelect=!1,t.push(f.lists[i]));f.lists=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),g.hasRole("admin")?m.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){f.pauses=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){f.pauses=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.pauses,{id:e.resourceId})});f.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),f.pauses=n})}else f.pauses=[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.whatsappAccounts=e||{count:0,rows:[]}}function y(e){m.whatsappAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.whatsappAccounts.rows,{id:e.id}),f.whatsappAccounts.count-=1,f.whatsappAccounts.rows.length||f.getWhatsappAccounts(),p.success({title:_.startCase("WhatsappAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEwhatsappAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEwhatsappAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getWhatsappAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","whatsappAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.whatsapp").controller("WhatsappAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="WHATSAPP.EDIT_WHATSAPPQUEUE",g.whatsappQueue=angular.copy(l),g.whatsappQueues=r,g.newWhatsappQueue=!1,g.whatsappQueue||(g.whatsappQueue={strategy:"beepall",timeout:10},g.title="WHATSAPP.NEW_WHATSAPPQUEUE",g.newWhatsappQueue=!0),g.addNewWhatsappQueue=function(){g.errors=[],d.whatsappQueue.save(g.whatsappQueue).$promise.then(function(e){g.whatsappQueues.unshift(e.toJSON()),o.success({title:"WhatsappQueue properly created",msg:g.whatsappQueue.name?g.whatsappQueue.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.whatsappQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.whatsappQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveWhatsappQueue=function(){g.errors=[],d.whatsappQueue.update({id:g.whatsappQueue.id},g.whatsappQueue).$promise.then(function(e){var n=_.find(g.whatsappQueues,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"WhatsappQueue properly saved!",msg:g.whatsappQueue.name?g.whatsappQueue.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.whatsappQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.whatsappQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteWhatsappQueue=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The whatsappQueue will be deleted.").ariaLabel("Delete WhatsappQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.whatsappQueue.delete({id:g.whatsappQueue.id}).$promise.then(function(){_.remove(g.whatsappQueues,{id:g.whatsappQueue.id}),o.success({title:"WhatsappQueue properly deleted!",msg:(g.whatsappQueue.name||"whatsappQueue")+" has been deleted!"}),v(g.whatsappQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.whatsappQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.whatsappQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","whatsappQueues","whatsappQueue","api","Auth","license","setting","crudPermissions"],angular.module("app.whatsapp").controller("CreateOrEditWhatsappQueueDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.whatsappQueue.getAgents({id:c.whatsappQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserWhatsappQueue?"penalty "+e.UserWhatsappQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.whatsappQueue=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.whatsappQueue.removeAgents({id:c.whatsappQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.whatsappQueue.addAgents({id:c.whatsappQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("WHATSAPP.ALL_AGENTS"),labelSelected:r.instant("WHATSAPP.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","whatsappQueue","whatsappQueues","realtime","$translate","Auth","crudPermissions"],angular.module("app.whatsapp").controller("WhatsappQueueagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.whatsappQueue.getTeams({id:l.whatsappQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.whatsappQueue=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("WHATSAPP.ALL_TEAMS"),labelSelected:t.instant("WHATSAPP.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.whatsappQueue.removeTeams({id:l.whatsappQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.whatsappQueue.addTeams({id:l.whatsappQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","whatsappQueue","$translate","Auth","crudPermissions"],angular.module("app.whatsapp").controller("WhatsappQueueteamaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.whatsappQueue=c||e.params.whatsappQueue||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.teamadddialog=function(e,n){t.show({controller:"WhatsappQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{whatsappQueue:e,whatsappQueues:u.whatsappQueues?u.whatsappQueues.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){t.show({controller:"WhatsappQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{whatsappQueue:e,whatsappQueues:u.whatsappQueues?u.whatsappQueues.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.alert=l.info,u.gotoWhatsappQueues=function(){e.go("app.whatsapp.whatsappQueues",{},{reload:"app.whatsapp.whatsappQueues"})},u.saveWhatsappQueue=function(){r.whatsappQueue.update({id:u.whatsappQueue.id},u.whatsappQueue).$promise.then(function(){l.success({title:"WhatsappQueue updated!",msg:u.whatsappQueue.name?u.whatsappQueue.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETwhatsappQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","whatsappQueue","userProfileSection"],angular.module("app.whatsapp").controller("WhatsappQueueController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.whatsappQueues=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="whatsappQueues",f.listOrder="",f.listOrderAsc=null,f.selectedWhatsappQueues=[],f.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"whatsapp",limit:10,page:1},f.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.whatsapp.whatsappQueues.edit",{id:e.id,whatsappQueue:e,crudPermissions:f.crudPermissions})},f.teamadddialog=function(e,n){i.show({controller:"WhatsappQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{whatsappQueue:e,whatsappQueues:f.whatsappQueues?f.whatsappQueues.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"WhatsappQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{whatsappQueue:e,whatsappQueues:f.whatsappQueues?f.whatsappQueues.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("whatsappQueue")+"?").htmlContent("<b>"+(e.name||"whatsappQueue")+"</b> will be deleted.").ariaLabel("delete whatsappQueue").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:2110}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.whatsapp.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.whatsapp.realtime.queues",{})}},f.success=E,f.getWhatsappQueues=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.whatsappQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="WhatsappQueues",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditWhatsappQueue=function(e,n){i.show({controller:"CreateOrEditWhatsappQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{whatsappQueue:n,whatsappQueues:f.whatsappQueues.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteWhatsappQueue=y,f.exportSelectedWhatsappQueues=function(){var e=angular.copy(f.selectedWhatsappQueues);return f.selectedWhatsappQueues=[],e},f.deleteSelectedWhatsappQueues=function(e){var n=i.confirm().title("Are you sure want to delete the selected whatsappQueues?").htmlContent("<b>"+f.selectedWhatsappQueues.length+" selected</b> will be deleted.").ariaLabel("delete WhatsappQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedWhatsappQueues.forEach(function(e){y(e)}),f.selectedWhatsappQueues=[]})},f.deselectWhatsappQueues=function(){f.selectedWhatsappQueues=[]},f.selectAllWhatsappQueues=function(){f.selectedWhatsappQueues=f.whatsappQueues.rows};var b=!0,A=1;function E(e){f.whatsappQueues=e||{count:0,rows:[]}}function y(e){m.whatsappQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.whatsappQueues.rows,{id:e.id}),f.whatsappQueues.count-=1,f.whatsappQueues.rows.length||f.getWhatsappQueues(),p.success({title:_.startCase("WhatsappQueue")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEwhatsappQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEwhatsappQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getWhatsappQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","whatsappQueues","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.whatsapp").controller("WhatsappQueuesController",e)}(),function(){"use strict";function e(n,t,e,s,a,i,o,r,l,d,c){var m=this;function u(e,n){return{id:e,title:n.name||"NONAME",state:"app.dashboards.custom",stateParams:n,weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(e)&&!o.hasRole("admin")}}}function p(e,n){return{id:e,title:n.name||"NONAME",state:"app.plugins.plugin",stateParams:n,weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(e)&&!o.hasRole("admin")}}}function g(e,n){var t={user:_.pick(o.getCurrentUser(),["id","name","fullname","email","role","internal","interface"])};n.agentUrl=Mustache.render(n.agentUrl,t),a.saveItem("apps.home.plugin_"+e,{id:e,title:n.name,translate:n.name,state:"plugin_"+n.id,stateParams:n,view:"plugin",icon:n.icon,weight:12,hidden:function(){return!o.hasPermission(e)}})}function v(e){return _.map(e.children,function(e){return e.id})}i.clear(),m.isAgent=function(){return o.getCurrentUser()&&o.hasRole("agent")},s.saveItem("apps",{title:"APPS",group:!0,weight:1,hidden:function(){return o.hasRole("agent")}}),l.version.get().$promise.then(function(e){m.version=e&&e.current?e.current:"UNKNOWN"}).catch(function(e){m.version="UNKNOWN"}).finally(function(){s.saveItem("version",{title:"VERSION "+m.version,group:!0,weight:2,hidden:function(){return o.hasRole("agent")}})}),o.isLoggedIn()&&(r.gray&&i.warning({msg:e.instant("DASHBOARDS.LICENSE_EXPIRE_REMAINING_DAYS"),showClose:!0,timeout:!1}),l.dashboard.get().$promise.then(function(e){for(var n=0,t=0;t<e.rows.length;t+=1)n=99999+e.rows[t].id,s.saveItem("apps.dashboards.custom_"+n,u(n,e.rows[t]))}),l.plugin.get({active:!0}).$promise.then(function(e){var n=0;if(e.count){var t=_.filter(e.rows,function(e){return"never"!=e.sidebar&&"agentOnly"!=e.sidebar});if(0<t.length){s.saveItem("apps.plugins",{id:1900,title:"Plugins",translate:"PLUGINS.PLUGINS",icon:"icon-apps",permissions:{hidden:!0},weight:17,hidden:function(){return o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}});for(var a=0;a<t.length;a+=1)n=88888+t[a].id,s.saveItem("apps.plugins.plugin_"+n,p(n,t[a]));s.sort()}var i=_.filter(e.rows,function(e){return"never"!=e.sidebar&&"adminOnly"!=e.sidebar});if(0<i.length)for(a=0;a<i.length;a+=1)g(n=88888+i[a].id,i[a])}})),r.custom&&!d.defaultPageTitle&&d.pageTitle&&angular.element("#pageTitle").html(d.pageTitle),s.saveItem("apps.dashboards",{id:100,title:"Dashboards",translate:"DASHBOARDS.DASHBOARDS",icon:"icon-tile-four",weight:2,hidden:function(){return o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.dashboards.general",{id:101,title:"General",route:"",translate:"DASHBOARDS.GENERAL",state:"app.dashboards.general",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(101)&&!o.hasRole("admin")}}),s.saveItem("apps.staff",{id:200,title:"Staff",translate:"STAFF.STAFF",icon:"icon-account-multiple",weight:3,hidden:function(){return o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.staff.users",{id:201,title:"Users",route:"user",translate:"STAFF.USERS",state:"app.staff.users",permissions:{hidden:!0},weight:1,hidden:function(){return o.hasRole("agent")||o.hasRole("user")||!o.hasPermission(201)&&!o.hasRole("admin")}}),s.saveItem("apps.staff.agents",{id:202,title:"Agents",route:"user",translate:"STAFF.AGENTS",state:"app.staff.agents",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(202)&&!o.hasRole("admin")}}),s.saveItem("apps.staff.telephones",{id:203,title:"Telephones",route:"user",translate:"STAFF.TELEPHONES",state:"app.staff.telephones",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(203)&&!o.hasRole("admin")}}),s.saveItem("apps.staff.teams",{id:204,title:"Teams",route:"team",translate:"STAFF.TEAMS",state:"app.staff.teams",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(204)&&!o.hasRole("admin")}}),s.saveItem("apps.staff.userProfiles",{id:205,title:"UserProfiles",route:"userProfile",translate:"STAFF.USERPROFILES",state:"app.staff.userProfiles",permissions:{hidden:!0},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(205)&&!o.hasRole("admin")}}),s.saveItem("apps.contactmanager",{id:300,title:"ContactManager",translate:"CONTACTMANAGER.CONTACTMANAGER",icon:"icon-account-circle",license:"cm",weight:4,hidden:function(){return!r.cm||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.contactmanager.lists",{id:301,title:"Lists",route:"cmList",translate:"CONTACTMANAGER.LISTS",state:"app.contactmanager.lists",weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(301)&&!o.hasRole("admin")}}),s.saveItem("apps.contactmanager.companies",{id:302,title:"Companies",route:"cmCompany",translate:"CONTACTMANAGER.COMPANIES",state:"app.contactmanager.companies",weight:3,hidden:function(){return o.hasRole("agent")||!o.hasPermission(302)&&!o.hasRole("admin")}}),s.saveItem("apps.contactmanager.globalCustomFields",{id:304,title:"GlobalCustomFields",route:"cmCustomField",translate:"CONTACTMANAGER.GLOBALCUSTOMFIELDS",state:"app.contactmanager.globalCustomFields",permissions:{association:!1},weight:4,hidden:function(){return o.hasRole("agent")||!o.hasPermission(304)&&!o.hasRole("admin")}}),s.saveItem("apps.contactmanager.contacts",{id:303,title:"Contacts",route:"",translate:"CONTACTMANAGER.CONTACTS",state:"app.contactmanager.contacts",permissions:{association:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(303)&&!o.hasRole("admin")}}),s.saveItem("apps.voice",{id:400,title:"Voice",translate:"VOICE.VOICE",icon:"icon-phone",license:"voice",weight:5,hidden:function(){return!r.voice||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.voice.voiceQueues",{id:401,title:"VoiceQueues",route:"voiceQueue",channel:"voice",translate:"VOICE.VOICEQUEUES",state:"app.voice.voiceQueues",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(401)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.contexts",{id:405,title:"Contexts",route:"voiceContext",translate:"VOICE.CONTEXTS",state:"app.voice.contexts",weight:5,hidden:function(){return o.hasRole("agent")||!o.hasPermission(405)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.voicemails",{id:406,title:"Voicemails",route:"voiceMail",translate:"VOICE.VOICEMAILS",state:"app.voice.voicemails",weight:6,hidden:function(){return o.hasRole("agent")||!o.hasPermission(406)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.musiconholds",{id:407,title:"MusicOnHolds",route:"voiceMusicOnHold",translate:"VOICE.MUSICONHOLDS",state:"app.voice.musiconholds",weight:7,hidden:function(){return o.hasRole("agent")||!o.hasPermission(407)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.voiceRecordings",{id:408,title:"VoiceRecordings",route:"voiceRecording",translate:"VOICE.VOICERECORDINGS",state:"app.voice.voiceRecordings",permissions:{association:!1,loading:!0},weight:8,hidden:function(){return o.hasRole("agent")||!o.hasPermission(408)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.chanSpies",{id:409,title:"ChanSpies",route:"voiceChanSpy",translate:"VOICE.CHANSPIES",state:"app.voice.chanSpies",weight:9,hidden:function(){return o.hasRole("agent")||!o.hasPermission(409)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.voicePrefixes",{id:410,title:"VoicePrefixes",route:"voicePrefix",translate:"VOICE.VOICEPREFIXES",state:"app.voice.voicePrefixes",weight:10,hidden:function(){return o.hasRole("agent")||!o.hasPermission(410)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.inboundRoutes",{id:402,title:"InboundRoutes",route:"voiceExtension",translate:"VOICE.INBOUNDROUTES",state:"app.voice.inboundRoutes",weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(402)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.outboundRoutes",{id:403,title:"OutboundRoutes",route:"voiceExtension",translate:"VOICE.OUTBOUNDROUTES",state:"app.voice.outboundRoutes",weight:3,hidden:function(){return o.hasRole("agent")||!o.hasPermission(403)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.internalRoutes",{id:404,title:"InternalRoutes",route:"voiceExtension",translate:"VOICE.INTERNALROUTES",state:"app.voice.internalRoutes",weight:4,hidden:function(){return o.hasRole("agent")||!o.hasPermission(404)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.realtime",{id:411,title:"Realtime",route:"",translate:"VOICE.REALTIME",state:"app.voice.realtime",permissions:{association:!1,crud:!1},weight:11,hidden:function(){return o.hasRole("agent")||!o.hasPermission(411)&&!o.hasRole("admin")}}),s.saveItem("apps.chat",{id:500,title:"Chat",translate:"CHAT.CHAT",icon:"icon-hangouts",license:"chat",weight:6,hidden:function(){return!r.chat||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.chat.chatQueues",{id:501,title:"ChatQueues",route:"chatQueue",channel:"chat",translate:"CHAT.CHATQUEUES",state:"app.chat.chatQueues",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(501)&&!o.hasRole("admin")}}),s.saveItem("apps.chat.chatWebsites",{id:502,title:"ChatWebsites",route:"chatWebsite",channel:"chat",translate:"CHAT.CHATWEBSITES",state:"app.chat.chatWebsites",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(502)&&!o.hasRole("admin")}}),s.saveItem("apps.chat.realtime",{id:510,title:"Realtime",route:"",translate:"CHAT.REALTIME",state:"app.chat.realtime",permissions:{association:!1,crud:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(510)&&!o.hasRole("admin")}}),s.saveItem("apps.mail",{id:600,title:"Mail",translate:"MAIL.MAIL",icon:"icon-email",license:"mail",weight:7,hidden:function(){return!r.mail||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.mail.mailQueues",{id:601,title:"MailQueues",route:"mailQueue",channel:"mail",translate:"MAIL.MAILQUEUES",state:"app.mail.mailQueues",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(601)&&!o.hasRole("admin")}}),s.saveItem("apps.mail.mailAccounts",{id:602,title:"MailAccounts",route:"mailAccount",channel:"mail",translate:"MAIL.MAILACCOUNTS",state:"app.mail.mailAccounts",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(602)&&!o.hasRole("admin")}}),s.saveItem("apps.mail.mailSubtatuses",{id:603,title:"MailSubstatuses",route:"mailSubstatus",channel:"mail",translate:"MAIL.MAILSUBSTATUSES",state:"app.mail.mailSubtatuses",permissions:{association:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(603)&&!o.hasRole("admin")}}),s.saveItem("apps.mail.realtime",{id:610,title:"Realtime",route:"",translate:"MAIL.REALTIME",state:"app.mail.realtime",permissions:{association:!1,crud:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(610)&&!o.hasRole("admin")}}),s.saveItem("apps.sms",{id:700,title:"Sms",translate:"SMS.SMS",icon:"icon-message-text",license:"messaging",weight:8,hidden:function(){return!r.messaging||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.sms.smsQueues",{id:701,title:"SmsQueues",route:"smsQueue",channel:"sms",translate:"SMS.SMSQUEUES",state:"app.sms.smsQueues",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(701)&&!o.hasRole("admin")}}),s.saveItem("apps.sms.smsAccounts",{id:702,title:"SmsAccounts",route:"smsAccount",channel:"sms",translate:"SMS.SMSACCOUNTS",state:"app.sms.smsAccounts",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(702)&&!o.hasRole("admin")}}),s.saveItem("apps.sms.realtime",{id:710,title:"Realtime",route:"",translate:"SMS.REALTIME",state:"app.sms.realtime",permissions:{association:!1,crud:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(710)&&!o.hasRole("admin")}}),s.saveItem("apps.openchannel",{id:800,title:"Openchannel",translate:"OPENCHANNEL.OPENCHANNEL",icon:"icon-google-earth",license:"openchannel",weight:9,hidden:function(){return!r.openchannel||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.openchannel.openchannelQueues",{id:801,title:"OpenchannelQueues",route:"openchannelQueue",channel:"openChannel",translate:"OPENCHANNEL.OPENCHANNELQUEUES",state:"app.openchannel.openchannelQueues",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(801)&&!o.hasRole("admin")}}),s.saveItem("apps.openchannel.openchannelAccounts",{id:802,title:"OpenchannelAccounts",route:"openchannelAccount",channel:"openChannel",translate:"OPENCHANNEL.OPENCHANNELACCOUNTS",state:"app.openchannel.openchannelAccounts",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(802)&&!o.hasRole("admin")}}),s.saveItem("apps.openchannel.realtime",{id:810,title:"Realtime",route:"",translate:"OPENCHANNEL.REALTIME",state:"app.openchannel.realtime",permissions:{association:!1,crud:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(810)&&!o.hasRole("admin")}}),s.saveItem("apps.fax",{id:900,title:"Fax",translate:"FAX.FAX",icon:"icon-deskphone",license:"fax",weight:10,hidden:function(){return!r.fax||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.fax.faxQueues",{id:901,title:"FaxQueues",route:"faxQueue",channel:"fax",translate:"FAX.FAXQUEUES",state:"app.fax.faxQueues",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(901)&&!o.hasRole("admin")}}),s.saveItem("apps.fax.faxAccounts",{id:902,title:"FaxAccounts",route:"faxAccount",channel:"fax",translate:"FAX.FAXACCOUNTS",state:"app.fax.faxAccounts",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(902)&&!o.hasRole("admin")}}),s.saveItem("apps.fax.realtime",{id:910,title:"Realtime",route:"",translate:"FAX.REALTIME",state:"app.fax.realtime",permissions:{association:!1,crud:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(910)&&!o.hasRole("admin")}}),s.saveItem("apps.tools",{id:1e3,title:"Tools",translate:"TOOLS.TOOLS",icon:"icon-auto-fix",weight:15,hidden:function(){return o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.tools.cannedAnswers",{id:1001,title:"CannedAnswers",route:"cannedAnswer",translate:"TOOLS.CANNEDANSWERS",state:"app.tools.cannedAnswers",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1001)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.customDashboards",{id:1003,title:"CustomDashboards",route:"dashboard",translate:"TOOLS.CUSTOMDASHBOARDS",state:"app.tools.customDashboards",weight:3,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1003)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.intervals",{id:1004,title:"Intervals",route:"interval",translate:"TOOLS.INTERVALS",state:"app.tools.intervals",weight:4,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1004)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.pauses",{id:1005,title:"Pauses",route:"pause",translate:"TOOLS.PAUSES",state:"app.tools.pauses",weight:5,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1005)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.schedules",{id:1006,title:"Scheduler",route:"schedule",translate:"TOOLS.SCHEDULER",state:"app.tools.schedules",weight:6,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1006)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.sounds",{id:1007,title:"Sounds",route:"sound",translate:"TOOLS.SOUNDS",state:"app.tools.sounds",weight:7,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1007)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.tags",{id:1008,title:"Tags",route:"tag",translate:"TOOLS.TAGS",state:"app.tools.tags",weight:8,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1008)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.templates",{id:1009,title:"Templates",route:"template",translate:"TOOLS.TEMPLATES",state:"app.tools.templates",weight:9,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1009)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.trunks",{id:1011,title:"Trunks",route:"trunk",translate:"TOOLS.TRUNKS",state:"app.tools.trunks",weight:11,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1011)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.variables",{id:1012,title:"Variables",route:"variable",translate:"TOOLS.VARIABLES",state:"app.tools.variables",weight:12,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1012)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.dispositions",{id:1002,title:"Dispositions",route:"disposition",translate:"TOOLS.DISPOSITIONS",state:"app.tools.dispositions",weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1002)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.triggers",{id:1010,title:"Triggers",route:"trigger",translate:"TOOLS.TRIGGERS",state:"app.tools.triggers",weight:10,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1010)&&!o.hasRole("admin")}}),s.saveItem("apps.callysquare",{id:1100,title:"CallySquare",translate:"CALLYSQUARE.CALLYSQUARE",icon:"icon-sitemap",license:"voice",weight:13,hidden:function(){return!r.voice||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.callysquare.odbcs",{id:1101,title:"ODBC",route:"squareOdbc",translate:"CALLYSQUARE.ODBC",state:"app.callysquare.odbcs",weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1101)&&!o.hasRole("admin")}}),s.saveItem("apps.callysquare.squareRecordings",{id:1102,title:"SquareRecordings",route:"squareRecording",translate:"CALLYSQUARE.SQUARERECORDINGS",state:"app.callysquare.squareRecordings",permissions:{association:!1,loading:!0},weight:3,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1102)&&!o.hasRole("admin")}}),s.saveItem("apps.callysquare.projects",{id:1103,title:"Projects",route:"squareProject",translate:"CALLYSQUARE.PROJECTS",state:"app.callysquare.projects",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1103)&&!o.hasRole("admin")}}),s.saveItem("apps.analytics",{id:1200,title:"Analytics",translate:"ANALYTICS.ANALYTICS",icon:"icon-chart-line",weight:16,hidden:function(){return o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.analytics.metrics",{id:1201,title:"Metrics",route:"analyticMetric",translate:"ANALYTICS.METRICS",state:"app.analytics.metrics",weight:3,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1201)&&!o.hasRole("admin")}}),s.saveItem("apps.analytics.extractedReports",{id:1202,title:"ExtractedReports",route:"analyticExtractedReport",translate:"ANALYTICS.EXTRACTEDREPORTS",state:"app.analytics.extractedReports",permissions:{association:!1,loading:!0},weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1202)&&!o.hasRole("admin")}}),s.saveItem("apps.analytics.reports",{id:1203,title:"Reports",route:"",translate:"ANALYTICS.REPORTS",state:"app.analytics.reports",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1203)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations",{id:1300,title:"Integrations",translate:"INTEGRATIONS.INTEGRATIONS",icon:"icon-heart",weight:17,hidden:function(){return o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.zendeskAccounts",{id:1301,title:"ZendeskAccounts",route:"intZendeskAccount",translate:"INTEGRATIONS.ZENDESKACCOUNTS",state:"app.integrations.zendeskAccounts",permissions:{association:!1,loading:!0},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1301)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.salesforceAccounts",{id:1302,title:"SalesforceAccounts",route:"intSalesforceAccount",translate:"INTEGRATIONS.SALESFORCEACCOUNTS",state:"app.integrations.salesforceAccounts",permissions:{association:!1,loading:!0},weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1302)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.freshdeskAccounts",{id:1303,title:"FreshdeskAccounts",route:"intFreshdeskAccount",translate:"INTEGRATIONS.FRESHDESKACCOUNTS",state:"app.integrations.freshdeskAccounts",permissions:{association:!1,loading:!0},weight:3,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1303)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.sugarcrmAccounts",{id:1305,title:"SugarcrmAccounts",route:"intSugarcrmAccount",translate:"INTEGRATIONS.SUGARCRMACCOUNTS",state:"app.integrations.sugarcrmAccounts",permissions:{association:!1,loading:!0},weight:4,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1305)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.deskAccounts",{id:1306,title:"DeskAccounts",route:"intDeskAccount",translate:"INTEGRATIONS.DESKACCOUNTS",state:"app.integrations.deskAccounts",permissions:{association:!1,loading:!0},weight:5,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1306)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.zohoAccounts",{id:1307,title:"ZohoAccounts",route:"intZohoAccount",translate:"INTEGRATIONS.ZOHOACCOUNTS",state:"app.integrations.zohoAccounts",permissions:{association:!1,loading:!0},weight:6,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1307)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.vtigerAccounts",{id:1308,title:"VtigerAccounts",route:"intVtigerAccount",translate:"INTEGRATIONS.VTIGERACCOUNTS",state:"app.integrations.vtigerAccounts",permissions:{association:!1,loading:!0},weight:7,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1308)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.dynamics365Accounts",{id:1309,title:"Dynamics365Accounts",route:"intDynamics365Account",translate:"INTEGRATIONS.DYNAMICS365ACCOUNTS",state:"app.integrations.dynamics365Accounts",permissions:{association:!1,loading:!0},weight:8,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1309)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.servicenowAccounts",{id:1310,title:"ServicenowAccounts",route:"intServicenowAccount",translate:"INTEGRATIONS.SERVICENOWACCOUNTS",state:"app.integrations.servicenowAccounts",permissions:{association:!1,loading:!0},weight:9,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1310)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.freshsalesAccounts",{id:1304,title:"FreshsalesAccounts",route:"intFreshsalesAccount",translate:"INTEGRATIONS.FRESHSALESACCOUNTS",state:"app.integrations.freshsalesAccounts",permissions:{association:!1,loading:!0},weight:10,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1304)&&!o.hasRole("admin")}}),s.saveItem("apps.settings",{id:1400,title:"Settings",translate:"SETTINGS.SETTINGS",icon:"icon-cog",permissions:{hidden:!0},weight:20,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")||o.hasRole("admin")&&!o.getCurrentUser().settingsEnabled}}),s.saveItem("apps.settings.generals",{id:1401,title:"General",route:"setting",translate:"SETTINGS.GENERAL",state:"app.settings.generals",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.settings.smtps",{id:1402,title:"Smtp",route:"mailAccount",translate:"SETTINGS.SMTP",state:"app.settings.smtps",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.settings.networks",{id:1403,title:"Networks",route:"network",translate:"SETTINGS.NETWORKS",state:"app.settings.networks",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.settings.customizations",{id:1407,title:"Customizations",route:"setting",translate:"SETTINGS.CUSTOMIZATIONS",state:"app.settings.customizations",weight:1,hidden:function(){return!r.custom||o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.settings.cloudProviders",{id:1408,title:"AiTools",route:"cloudProvider",translate:"SETTINGS.AITOOLS",state:"app.settings.cloudProviders",weight:1,hidden:function(){return!r.ai||o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.settings.updates",{id:1404,title:"Updates",route:"",translate:"SETTINGS.UPDATES",state:"app.settings.updates",weight:1,hidden:function(){return!r.update||o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.settings.license",{id:1405,title:"License",route:"",translate:"SETTINGS.LICENSE",state:"app.settings.license",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.settings.system",{id:1406,title:"System",route:"",translate:"SETTINGS.SYSTEM",state:"app.settings.system",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.motiondialer",{id:1500,title:"MotionDialer",translate:"MOTIONDIALER.MOTIONDIALER",icon:"icon-fire",license:"dialer",weight:5,hidden:function(){return!r.dialer||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.motiondialer.queueCampaigns",{id:1501,title:"QueueCampaigns",route:"voiceQueue",channel:"bull",translate:"MOTIONDIALER.QUEUECAMPAIGNS",state:"app.motiondialer.queueCampaigns",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1501)&&!o.hasRole("admin")}}),s.saveItem("apps.motiondialer.ivrCampaigns",{id:1502,title:"IvrCampaigns",route:"campaign",translate:"MOTIONDIALER.IVRCAMPAIGNS",state:"app.motiondialer.ivrCampaigns",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1502)&&!o.hasRole("admin")}}),s.saveItem("apps.motiondialer.realtime",{id:1510,title:"Realtime",route:"",translate:"MOTIONDIALER.REALTIME",state:"app.motiondialer.realtime",permissions:{association:!1,crud:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1510)&&!o.hasRole("admin")}}),s.saveItem("apps.help",{id:1600,title:"Help",translate:"HELP.HELP",icon:"icon-help",permissions:{association:!1},weight:21,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1600)&&!o.hasRole("admin")}}),s.saveItem("apps.help.about",{id:1601,title:"About",route:"",translate:"HELP.ABOUT",state:"app.help.about",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1600)&&!o.hasRole("admin")}}),s.saveItem("apps.jscripty",{id:1700,title:"jscripty",translate:"JSCRIPTY.JSCRIPTY",icon:"icon-script",license:"jscripty",weight:14,hidden:function(){return!r.jscripty||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.jscripty.projects",{id:1701,title:"Projects",route:"jscriptyProject",translate:"JSCRIPTY.PROJECTS",state:"app.jscripty.projects",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1701)&&!o.hasRole("admin")}}),s.saveItem("apps.marketplace",{id:1800,title:"Marketplace",translate:"MARKETPLACE.MARKETPLACE",icon:"icon-cart",weight:18,hidden:function(){return o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.marketplace.plugins",{id:1801,title:"Plugins",route:"plugin",translate:"MARKETPLACE.PLUGINS",state:"app.marketplace.plugins",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1801)&&!o.hasRole("admin")}}),s.saveItem("apps.video",{id:2e3,title:"Video",translate:"VIDEO.VIDEO",icon:"icon-video",license:"screenrecording",weight:12,hidden:function(){return!r.screenrecording||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.video.screenRecordings",{id:2001,title:"ScreenRecordings",route:"screenRecording",translate:"VIDEO.SCREENRECORDINGS",state:"app.video.screenRecordings",permissions:{association:!1,loading:!0},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(2001)&&!o.hasRole("admin")}}),s.saveItem("apps.whatsapp",{id:2100,title:"Whatsapp",translate:"WHATSAPP.WHATSAPP",icon:"icon-whatsapp",license:"whatsapp",weight:11,hidden:function(){return!r.whatsapp||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.whatsapp.whatsappQueues",{id:2101,title:"WhatsappQueues",route:"whatsappQueue",channel:"whatsapp",translate:"WHATSAPP.WHATSAPPQUEUES",state:"app.whatsapp.whatsappQueues",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(2101)&&!o.hasRole("admin")}}),s.saveItem("apps.whatsapp.whatsappAccounts",{id:2102,title:"WhatsappAccounts",route:"whatsappAccount",channel:"whatsapp",translate:"WHATSAPP.WHATSAPPACCOUNTS",state:"app.whatsapp.whatsappAccounts",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(2102)&&!o.hasRole("admin")}}),s.saveItem("apps.whatsapp.realtime",{id:2110,title:"Realtime",route:"",translate:"WHATSAPP.REALTIME",state:"app.whatsapp.realtime",permissions:{association:!1,crud:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(2110)&&!o.hasRole("admin")}}),s.sort(),a.saveItem("apps",{title:"APPS",group:!0,weight:1}),a.saveItem("apps.home",{id:100,title:"Home",translate:"DASHBOARDS.HOME",icon:"icon-home",weight:1}),a.saveItem("apps.home.dashboard",{id:101,title:"Dashboard",translate:"DASHBOARDS.DASHBOARD",state:"dashboard",view:"dashboard",icon:"icon-tile-four",iconClass:"cyan-500-fg",weight:1,hidden:function(){return!o.hasPermission(101)}}),a.saveItem("apps.home.agentPresence",{id:115,title:"AgentPresence",translate:"DASHBOARDS.AGENT_PRESENCE",state:"agentPresence",view:"agentPresence",icon:"icon-webcam",iconClass:"xenialab-violet-light-fg",weight:2,hidden:function(){return!o.hasPermission(115)}}),a.saveItem("apps.home.contacts",{id:102,title:"Contacts",translate:"DASHBOARDS.CONTACTS",state:"contacts",view:"contacts",icon:"icon-account-circle",iconClass:"red-fg",weight:3,hidden:function(){return!r.cm||!o.hasPermission(102)}}),a.saveItem("apps.home.mycontacts",{id:103,title:"Contacts",translate:"DASHBOARDS.MYCONTACTS",state:"mycontacts",view:"mycontacts",icon:"icon-account-multiple",iconClass:"red-fg",weight:4,hidden:function(){return!r.cm||!o.hasPermission(103)}}),a.saveItem("apps.home.scheduled",{id:113,title:"Scheduled Calls",translate:"DASHBOARDS.SCHEDULED_CALLS",state:"scheduled",view:"scheduled",icon:"icon-calendar-clock",iconClass:"blue-grey-fg",weight:5,hidden:function(){return!r.dialer||!o.hasPermission(113)}}),a.saveItem("apps.home.voice",{id:110,title:"Voice",translate:"DASHBOARDS.VOICE",state:"voice",view:"voice",icon:"icon-phone",iconClass:"blue-A700-fg",weight:6,hidden:function(){return!r.voice||!o.hasPermission(110)}}),a.saveItem("apps.home.abandoned",{id:111,title:"Abandoned",translate:"DASHBOARDS.ABANDONED",state:"abandoned",view:"abandoned",icon:"icon-phone-missed",iconClass:"blue-fg",weight:7,hidden:function(){return!r.voice||!o.hasPermission(111)}}),a.saveItem("apps.home.recordings",{id:104,title:"Recordings",translate:"DASHBOARDS.RECORDINGS",state:"recordings",view:"recordings",icon:"icon-audiobook",iconClass:"indigo-A100-fg",weight:8,hidden:function(){return!r.voice||!o.hasPermission(104)}}),a.saveItem("apps.home.chat",{id:105,title:"Chat",translate:"DASHBOARDS.CHAT",state:"chat",view:"chat",icon:"icon-hangouts",iconClass:"green-A700-fg",weight:9,hidden:function(){return!r.chat||!o.hasPermission(105)}}),a.saveItem("apps.home.mail",{id:106,title:"Mail",translate:"DASHBOARDS.MAIL",state:"mail",view:"mail",icon:"icon-email",iconClass:"teal-fg",weight:10,hidden:function(){return!r.mail||!o.hasPermission(106)}}),a.saveItem("apps.home.sms",{id:107,title:"Sms",translate:"DASHBOARDS.SMS",state:"sms",view:"sms",icon:"icon-message-text",iconClass:"orange-fg",weight:11,hidden:function(){return!r.messaging||!o.hasPermission(107)}}),a.saveItem("apps.home.openchannel",{id:108,title:"Openchannel",translate:"DASHBOARDS.OPENCHANNEL",state:"openchannel",view:"openchannel",icon:"icon-google-earth",iconClass:"amber-fg",weight:12,hidden:function(){return!r.openchannel||!o.hasPermission(108)}}),a.saveItem("apps.home.fax",{id:109,title:"Fax",translate:"DASHBOARDS.FAX",state:"fax",view:"fax",icon:"icon-deskphone",iconClass:"blue-grey-A200-fg",weight:13,hidden:function(){return!r.fax||!o.hasPermission(109)}}),a.saveItem("apps.home.whatsapp",{id:114,title:"Whatsapp",translate:"DASHBOARDS.WHATSAPP",state:"whatsapp",view:"whatsapp",icon:"icon-whatsapp",iconClass:"lime-A700-fg",weight:14,hidden:function(){return!r.whatsapp||!o.hasPermission(114)}}),n.$on("$viewContentAnimationEnded",function(e){e.targetScope.$id===n.$id&&t.$broadcast("msSplashScreen::remove")}),n.$on("socket:connect",function(){t.toastySocketLost&&(i.clear(t.toastySocketLost),t.toastySocketLost=void 0)}),n.$on("socket:disconnect",function(){t.toastySocketLost||i.warning({title:e.instant("TOOLBAR.WARNING"),msg:e.instant("DASHBOARDS.LOST_CONNECTION"),timeout:!1,onAdd:function(){t.toastySocketLost=this.id}})})}e.$inject=["$scope","$rootScope","$translate","msNavigationService","msNavigationAgentService","toasty","Auth","license","api","setting","socket"],angular.module("motion").controller("MainController",e)}(),function(){"use strict";function e(e,n,t,a,o,r){var i=this;function s(e){if(e&&e.id){var n=99999+e.id;o.saveItem("apps.dashboards.custom_"+n,{id:n,title:e.name||"NONAME",state:"app.dashboards.custom",stateParams:e,weight:2,hidden:function(){return r.hasRole("agent")||!r.hasPermission(n)&&!r.hasRole("admin")}})}}function l(e){if(e&&e.id&&"never"!=e.sidebar)if(e.active){if("always"==e.sidebar||"adminOnly"==e.sidebar){o.saveItem("apps.plugins",{id:1900,title:"Plugins",translate:"PLUGINS.PLUGINS",icon:"icon-apps",weight:17,hidden:function(){return r.hasRole("agent")||!r.hasPermission(1900)&&!r.hasRole("admin")}});var n=88888+e.id;o.saveItem("apps.plugins.plugin_"+n,{id:n,title:e.name||"NONAME",state:"app.plugins.plugin",stateParams:e,weight:2,hidden:function(){return r.hasRole("agent")||!r.hasPermission(n)&&!r.hasRole("admin")}}),o.sort()}}else{n=88888+e.id;t=1900,a=n,i=o.getNavigation(),(s=_.find(i[0].children,{id:t}))&&_.some(s.children,{id:a})&&("always"==e.sidebar||"adminOnly"==e.sidebar)&&(o.deleteItem("apps.plugins.plugin_"+n),d(1900)||o.saveItem("apps.plugins",{id:1900,title:"Plugins",translate:"PLUGINS.PLUGINS",icon:"icon-apps",weight:17,hidden:function(){return!0}}))}var t,a,i,s}function d(e){var n=o.getNavigation(),t=_.find(n[0].children,{id:e});return!!(t&&0<t.children.length)}i.bodyEl=angular.element("body"),i.msScrollOptions={suppressScrollX:!0},i.setting=t,i.$onInit=function(){i.folded="true"===n.get("motion.folded")||!1},i.toggleMsNavigationFolded=function(){i.folded=!i.folded,n.put("motion.folded",i.folded)},i.getLogo=function(){return i.setting.defaultHeaderWhiteLabel?"xCALLY Motion":i.setting.headerWhiteLabel},a.on("dashboard:save",s),a.on("dashboard:update",s),a.on("dashboard:remove",function(e){if(e&&e.id){var n=99999+e.id;o.deleteItem("apps.dashboards.custom_"+n)}}),a.on("plugin:save",l),a.on("plugin:update",l),a.on("plugin:remove",function(e){if(e&&e.id&&"never"!=e.sidebar){var n=88888+e.id;"always"!=e.sidebar&&"adminOnly"!=e.sidebar||(o.deleteItem("apps.plugins.plugin_"+n),d(1900)||o.saveItem("apps.plugins",{id:1900,title:"Plugins",translate:"PLUGINS.PLUGINS",icon:"icon-apps",weight:17,hidden:function(){return!0}}))}}),e.$on("$stateChangeSuccess",function(){i.bodyEl.removeClass("ms-navigation-horizontal-mobile-menu-active")})}e.$inject=["$scope","$cookies","setting","socket","msNavigationService","Auth"],angular.module("app.navigation").controller("NavigationController",e)}(),function(){"use strict";function e(e,a,i,n,t,s,o,r){var l=this;function d(t){o.isSupported()?o.requestPermission().then(function(){var e,n;n={autoClose:!0,duration:10,showOnPageHidden:!0,icon:"api/users/"+(e=t).FromId+"/avatar",body:e.body||"",focusOnclick:!0,closeOnClick:!0},o.show(a.instant("QUICKPANEL.NEW_INTERNAL_MESSAGE"),n)},function(e){console.error("Please enable browser notifications!",e)}):console.error("Browser notifications are not supported by the browser. Normal notifications will be used.")}l.date=moment().format(),l.currentUser=n.getCurrentUser(),l.license=r,l.unreadTotalMessages=0,l.unreadTotalGroupMessages=0,l.userIsNotPhonebar=function(){return"admin"===l.currentUser.role||"user"===l.currentUser.role||"agent"===l.currentUser.role&&0!==l.currentUser.showWebBar},l.onMessageSave=function(e){e.ToId===l.currentUser.id&&e.FromId!==l.currentUser.id&&!e.read&&e.ChatGroupId&&(l.unreadTotalGroupMessages++,d(e));e.ToId!==l.currentUser.id||e.ChatGroupId||(l.unreadTotalMessages+=1,d(e))},l.onMessageUpdate=function(e){e.ToId===l.currentUser.id&&e.read&&0<l.unreadTotalMessages&&!e.ChatGroupId&&(l.unreadTotalMessages-=1);e.ToId==l.currentUser.id&&e.FromId!==l.currentUser.id&&e.ChatGroupId&&e.read&&0<l.unreadTotalGroupMessages&&l.unreadTotalGroupMessages--},t.on("chatInternalMessage:save",l.onMessageSave),t.on("chatInternalMessage:update",l.onMessageUpdate),s.chatInternalMessage.get({fields:"FromId",ToId:l.currentUser.id,read:!1,nolimit:!0,ChatGroupId:"null"}).$promise.then(function(e){return e&&e.count&&(l.unreadTotalMessages=e.count),s.user.getGroups({id:l.currentUser.id}).$promise}).then(function(e){for(var n=[],t=e.rows,a=0;a<t.length;a++)n.push(s.chatGroup.getUnread({id:t[a].id}).$promise);return i.all(n)}).then(function(e){for(var n=0;n<e.length;n++)l.unreadTotalGroupMessages+=e[n].count}).catch(function(e){console.error(e)}),e.$on("$destroy",function(){t.removeAllListeners("chatInternalMessage:save"),t.removeAllListeners("chatInternalMessage:update")})}e.$inject=["$scope","$translate","$q","Auth","socket","api","desktopNotification","license"],angular.module("app.quick-panel").controller("QuickPanelController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;function p(e){var n=angular.element("#chat-dialog");a(function(){n.animate({scrollTop:n[0].scrollHeight},e)},0)}function g(e){return _.isNil(e)?"":e.replace(/[^\w.+#*\-]+/g,"")}function v(e){return m.get(e).success(function(){n.success({title:"Successful call",msg:"Call properly handled!"})}).error(function(e){n.error({title:"PhoneBar API Error",msg:d.instant("CONTACTMANAGER.ERRORS.PHONEBAR_API")})})}u.currentUser=i.getCurrentUser(),u.user=void 0,u.users={count:0,rows:[]},u.standardDate=moment(0).format("YYYY-MM-DD HH:mm:ss"),u.unreadMessage={},u.replyMessage="",u.disabled=!1,u.init=function(e){u.license=e},u.toggleChat=function(e){if(e){if(!e.allowmessenger&&"agent"===e.role)return n.warning({title:d.instant("QUICKPANEL.WARNING"),msg:d.instant("QUICKPANEL.MESSENGER_DISABLED")}),void(u.user=void 0);u.user=e,u.replyMessage="",t.chatInternalMessage.get({sort:"createdAt",FromId:u.currentUser.id+","+e.id,ToId:u.currentUser.id+","+e.id,ChatGroupId:"null"}).$promise.then(function(e){if(e&&e.rows){u.user.messages=e;for(var n=0;n<u.user.messages.rows.length;n+=1)!1===u.user.messages.rows[n].read&&u.user.messages.rows[n].ToId===u.currentUser.id&&t.chatInternalMessage.update({id:u.user.messages.rows[n].id,read:!0})}}).finally(function(){p(0)})}else u.user=void 0},u.reply=function(){u.disabled=!0;Date.now();if(""===u.replyMessage)return void(u.disabled=!1);var e={FromId:u.currentUser.id,ToId:u.user.id,body:u.replyMessage,read:!1};u.replyMessage="",t.chatInternalMessage.save(e).$promise.then(function(e){u.user.messages.rows.push(e),u.user.lastMessageAt=e.createdAt,u.user.lastMessage=e,p(400)}).catch(function(e){}).finally(function(){u.disabled=!1})},u.onMessageSave=function(e){if(e.ToId===u.currentUser.id&&!e.ChatGroupId){u.user&&u.user.id===e.FromId?(u.user.messages.rows.push(e),p(0),t.chatInternalMessage.update({id:e.id,read:!0})):u.unreadMessage[e.FromId]=u.unreadMessage[e.FromId]?u.unreadMessage[e.FromId]+1:1;var n=_.find(u.users.rows,{id:e.FromId});n&&(n.lastMessageAt=e.createdAt,n.lastMessage=e)}},u.onMessageUpdate=function(e){if((e.FromId===u.currentUser.id||e.ToId===u.currentUser.id)&&!e.ChatGroupId){if(u.user){var n=_.find(u.user.messages.rows,{id:e.id});n&&_.merge(n,e)}var t=_.find(u.users.rows,{id:u.currentUser.id===e.FromId?e.ToId:e.FromId});t&&t.lastMessage&&_.merge(t.lastMessage,e),e.ToId===u.currentUser.id&&e.read&&0<u.unreadMessage[e.FromId]&&(u.unreadMessage[e.FromId]-=1)}},u.onUserUpdate=function(e){var n=_.find(u.users.rows,{id:e.id});n&&(_.isNil(e.online)||n.online===e.online||(n.online=e.online),_.isNil(e.allowmessenger)||n.allowmessenger===e.allowmessenger||(n.allowmessenger=e.allowmessenger))},u.webcall=function(e){c.$broadcast("webrtc::call",{target:g(e)})},u.call=function(e){return v("http://127.0.0.1:"+(u.user.phoneBarRemoteControlPort||"9888")+"/api/originate/"+g(e))},u.transfer=function(e){return v("http://127.0.0.1:"+(u.user.phoneBarRemoteControlPort||"9888")+"/api/transfer?number="+g(e))},s.on("chatInternalMessage:save",u.onMessageSave),s.on("chatInternalMessage:update",u.onMessageUpdate),s.on("user:update",u.onUserUpdate),o("quick-panel").onClose(function(){u.user=void 0}),t.chatInternalMessage.get({fields:"FromId",ToId:u.currentUser.id,read:!1,nolimit:!0,ChatGroupId:"null"}).$promise.then(function(e){u.unreadMessage=_.countBy(e.rows,"FromId")}).catch(function(e){}),t.chatInternalMessage.getUsers().$promise.then(function(e){u.users=e}).catch(function(e){console.error(e)}),e.$on("$destroy",function(){s.removeAllListeners("chatInternalMessage:save"),s.removeAllListeners("chatInternalMessage:update"),s.removeAllListeners("user:update")})}e.$inject=["$scope","toasty","api","$timeout","Auth","socket","$mdSidenav","$q","$interval","$translate","$rootScope","$http"],angular.module("app.quick-panel").controller("ChatInternalController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l){var d=this;function c(e){a.hide(e)}d.errors=[],d.title="QUICKPANEL.EDIT_CHATGROUP",d.group=angular.copy(r),d.currentUser=o.getCurrentUser(),d.members=l,d.newChatGroup=!0,d.group||(d.group={write:!0,members:[]},d.title="QUICKPANEL.NEW_CHATGROUP"),d.saveChatGroup=function(){var t;return d.errors=[],s.chatGroup.save({name:d.group.name,write:d.group.write}).$promise.then(function(e){var n=_.map(d.group.members,"id");return n.unshift(d.currentUser.id),t=e,s.chatGroup.addMembers({id:t.id,ids:n}).$promise}).then(function(){i.success({title:"Group properly saved!",msg:t.name+" has been saved!"}),c(t)}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},d.closeDialog=c,d.querySearch=function(e){return e?d.members.rows.filter((n=e,t=angular.lowercase(n),function(e){var n=e.name.toLowerCase();return-1!=n.indexOf(t)})):[];var n,t}}e.$inject=["$scope","$state","$location","$mdDialog","toasty","api","Auth","group","members"],angular.module("app.quick-panel").controller("CreateOrEditChatGroupDialogController",e)}(),function(){"use strict";function e(e,t,a,s,n,o,i,r,l,d){var c=this;function m(){delete c.group}function u(e){var n=angular.element("#chat-group-dialog");a(function(){n.animate({scrollTop:n[0].scrollHeight},e)},0)}c.currentUser=i.getCurrentUser(),c.unreadGroupMessages={},c.groups={},c.participants,c.group,c.init=function(e){return c.license=e,r.user.getGroups({id:c.currentUser.id}).$promise.then(function(e){for(var n=0,t=[];n<e.rows.length;n++)e.rows[n].unreadGroupMessages=0,c.groups[e.rows[n].id]=e.rows[n],t.push(r.chatGroup.getUnread({id:e.rows[n].id}).$promise);return o.all(t)}).then(function(e){for(var n=0;n<e.length;n++)c.groups[e[n].id].unreadGroupMessages+=e[n].count}).catch(function(e){console.error(e)})},c.back=m,c.addGroup=function(e,n){s.show({controller:"CreateOrEditChatGroupDialogController",controllerAs:"vm",templateUrl:"app/quick-panel/tabs/groups/create/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{group:e,me:c.currentUser,license:null,setting:null},resolve:{members:function(){return i.hasRole("admin")?r.user.get({role:"agent"}).$promise:r.userProfile.getResources({id:i.getCurrentUser().userProfileId,section:"Agents",role:"agent"}).$promise}}}).then(function(e){e&&(c.groups[e.id]=e)}).catch(function(e){e&&console.error(e.message)})},c.deleteGroup=function(e,n){var t=s.confirm().title("Are you sure want to delete the selected group?").htmlContent("Group <b>"+e.name+"</b> will be deleted.").ariaLabel("delete Group").targetEvent(n).ok("OK").cancel("CANCEL");s.show(t).then(function(){return r.chatGroup.delete({id:e.id}).$promise}).then(function(){delete c.groups[e.id],d.success({title:"Group properly deleted!",msg:e.name+" has been deleted!"})}).catch(function(e){e&&d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatGroup.delete",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.groupsToArray=function(){return _.values(c.groups)},c.showMessageInfo=function(e,i){s.show({controller:"ShowMessageInfoDialogController",controllerAs:"vm",templateUrl:"app/quick-panel/tabs/groups/info/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{message:i},resolve:{data:function(){var a={messages:[]};return r.chatInternalMessage.get({ChatInternalMessageId:i.id}).$promise.then(function(e){var n=[];a.messages=e.rows,a.messages.unshift(i);for(var t=0;t<a.messages.length;t++)n.push(r.user.get({id:a.messages[t].ToId,fields:"id,name,fullname,userpic"}).$promise);return o.all(n)}).then(function(e){return a.users=e,a}).catch(function(e){e&&console.error(e)})}}}).then(function(){}).catch(function(e){e&&console.error(e.message)})},c.toggleChat=function(n){c.group={id:n.id,write:n.write,messages:{}},r.chatGroup.getMembers({id:n.id,fields:"id,name,fullname"}).$promise.then(function(e){return c.group.membersByKeys=_.keyBy(e.rows,"id"),c.group.members=_.differenceBy(e.rows,[{id:c.currentUser.id}],"id"),c.participants=_.map(c.group.members,"fullname").join(", "),r.chatGroup.getMessages({id:n.id,nolimit:!0}).$promise}).then(function(e){for(var n,t=0,a=[];t<e.count;t++)e.rows[t].ToId===c.currentUser.id&&(n=e.rows[t],c.group.messages[n.id]=n,e.rows[t].ToId!=c.currentUser.id||e.rows[t].FromId===c.currentUser.id||n.read||a.push(r.chatInternalMessage.update({id:n.id,read:!0})));return o.all(a)}).then(function(){u(400)}).catch(function(e){console.error(e.message)})},c.reply=function(){if(!c.replyMessage)return;var t={id:c.group.id,FromId:c.currentUser.id,ToId:c.currentUser.id,body:c.replyMessage,read:!0},a=[];c.replyMessage="",r.chatGroup.addMessage(t).$promise.then(function(e){t.read=!1,t.ChatInternalMessageId=e.id;for(var n=0;n<c.group.members.length;n++)c.group.members[n].id!==c.currentUser.id&&(t.ToId=c.group.members[n].id,a.push(r.chatGroup.addMessage(angular.copy(t)).$promise));return o.all(a)}).catch(function(e){console.log(e)})},l.on("chatInternalMessage:save",function(n){if(!c.group&&n.ToId===c.currentUser.id&&n.FromId!==c.currentUser.id&&!n.read&&n.ChatGroupId){var e=c.groups[n.ChatGroupId];if(!e)return r.chatGroup.get({id:n.ChatGroupId}).$promise.then(function(e){e.unreadGroupMessages=1,c.groups[e.id]=e});e.unreadGroupMessages||(e.unreadGroupMessages=0),e.unreadGroupMessages++}c.group&&n.ChatGroupId===c.group.id&&n.ToId===c.currentUser.id&&r.chatInternalMessage.update({id:n.id,read:!0}).$promise.then(function(){var e;e=n,c.group.messages[e.id]=e,u(400)})}),l.on("chatInternalMessage:update",function(e){e.ToId==c.currentUser.id&&e.FromId!==c.currentUser.id&&e.ChatGroupId&&e.read&&(0<c.groups[e.ChatGroupId].unreadGroupMessages&&c.groups[e.ChatGroupId].unreadGroupMessages--,c.group.messages[e.id]&&(c.group.messages[e.id].read=!0))}),l.on("chatGroup:remove",function(e){c.groups[e.id]&&delete c.groups[e.id]}),n("quick-panel").onClose(m),e.$on("$destroy",function(){l.removeAllListeners("chatInternalMessage:save"),l.removeAllListeners("chatInternalMessage:update"),l.removeAllListeners("chatGroup:remove")})}e.$inject=["$scope","$document","$timeout","$mdDialog","$mdSidenav","$q","Auth","api","socket","toasty"],angular.module("app.quick-panel").controller("ChatGroupController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r){this.data=r,this.title="QUICKPANEL.INFO",this.closeDialog=function(){a.hide()}}e.$inject=["$scope","$state","$location","$mdDialog","toasty","api","Auth","data"],angular.module("app.quick-panel").controller("ShowMessageInfoDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this;o.form={token:s.token},o.setting={},o.resetPassword=function(){return i.auth.reset(o.form).$promise.then(function(){n.success({title:t.instant("RESETPASSWORD.PASSWORD_RESET"),msg:t.instant("RESETPASSWORD.PASSWORD_RESET_MESSAGE")}),a.go("app.login")}).catch(function(e){e&&n.error({title:t.instant("RESETPASSWORD.PASSWORD_RESET_ERROR"),msg:e.data?e.data.message||e.message||e:e.message||e})})},o.onInit=function(){e.isLoggedIn()&&a.go("app.dashboards.general");return i.setting.gdpr({id:1}).$promise.then(function(e){o.setting=e,o.passwordPattern=o.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:""}).catch(function(e){e&&n.error({title:"Error",msg:e.data?e.data.message||e.message||e:e.message||e})})}}e.$inject=["Auth","toasty","$translate","$state","api","$stateParams"],angular.module("app.reset").controller("ResetPasswordController",e)}(),function(){"use strict";function e(t,e,n,a,i,s,o){var r=this;function l(){e.hide()}r.errors=[],r.user=i,r.setting=s,r.reset=o,r.passwordPattern=r.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",r.savePassword=function(){r.errors=[],a.user.changePassword({id:r.user.id},{oldPassword:r.oldPassword,newPassword:r.password}).$promise.then(function(){n.show(n.simple().textContent("Your password properly updated").position("top right").hideDelay(5e3)),l()}).catch(function(e){console.error(e),r.errors=e.data.errors&&e.data.errors.length?e.data.errors:[{message:e.data.message||"Authorization error",type:"api.user.changePassword"}]})},r.closeDialog=l,t.$watch("vm.password",function(e,n){_.isNil(r.oldPassword)||(e===r.oldPassword?t.changePasswordForm.password.$setValidity("oldPasswordMatch",!1):t.changePasswordForm.password.$setValidity("oldPasswordMatch",!0))})}e.$inject=["$scope","$mdDialog","$mdToast","api","user","setting","reset"],angular.module("app.toolbar").controller("ChangePasswordController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l){var d=this;function c(e){_.isNil(e)&&s.cmHopper.update({id:d.preview.id,UserId:null}),a.hide()}d.customFieldsMap=l&&l.rows?_.mapValues(_.keyBy(l.rows,function(e){return"cf_"+e.id}),"name"):{},d.errors=[],d.hopperIds=[],d.preview=o,d.currentUser=r,d.originated=!1,d.disable=!1,d.disableGetContact=!1,d.hopperIds.push(d.preview.id),d.originatePreview=function(){d.originated=!0,d.disable=!0,_.isEmpty(d.preview)?(i.error({title:"Message",msg:"Contact not available"}),d.disable=!1,d.hopperIds=[],c(!0)):s.rpc.getVoiceQueuesPreview({id:d.preview.id}).$promise.then(function(e){c(!0)}).catch(function(e){i.error({title:"Message",msg:e.data}),c(!0)}).finally(function(){d.disable=!1,d.hopperIds=[]})},d.closeDialog=c,d.nextContact=function(){return d.disableGetContact=!0,s.cmHopper.getPreview({hopperIds:d.hopperIds,direction:"next"}).$promise.then(function(e){d.disableGetContact=!1,_.isNil(e)||_.isNil(e.Queue)||!e.Queue.dialActive?(d.hopperIds=[],a.hide(),i.info({title:"PREVIEW",msg:"CAMPAIGN NOT ACTIVE"})):(d.originated||s.cmHopper.update({id:d.preview.id,UserId:null}),d.preview=e,d.hopperIds.push(d.preview.id))}).catch(function(e){if(d.disableGetContact=!1,d.hopperIds=[],404===e.status)d.getFirstAvailableContact();else if(e.data&&e.data.errors&&e.data.errors.length){a.hide();for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else a.hide(),i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api preview",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},d.previousContact=function(){if(d.disableGetContact=!0,1<d.hopperIds.length){var e=_.without(d.hopperIds,d.preview.id);return s.cmHopper.getPreview({hopperIds:e,direction:"prev"}).$promise.then(function(e){d.disableGetContact=!1,_.isNil(e)||_.isNil(e.Queue)||!e.Queue.dialActive?(d.hopperIds=[],a.hide(),i.info({title:"PREVIEW",msg:"CAMPAIGN NOT ACTIVE"})):(_.remove(d.hopperIds,function(e){return e==d.preview.id}),d.originated||s.cmHopper.update({id:d.preview.id,UserId:null}),d.preview=e)}).catch(function(e){if(404===e.status)d.hopperIds=[d.preview.id],i.info({title:"PREVIEW",msg:"PREVIOUS CONTACTS NOT AVAILABLE"});else if(e.data&&e.data.errors&&e.data.errors.length){d.hopperIds=[],a.hide();for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.hopperIds=[],a.hide(),i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api preview",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}},d.getFirstAvailableContact=function(){return d.disableGetContact=!0,i.info({title:"PREVIEW",msg:"CONTACTS NOT AVAILABLE. REWINDING THE LIST"}),s.cmHopper.getPreview({hopperIds:[d.preview.id],direction:"next"}).$promise.then(function(e){_.isNil(e)||_.isNil(e.Queue)||!e.Queue.dialActive?(a.hide(),i.info({title:"PREVIEW",msg:"CAMPAIGN NOT ACTIVE"})):(d.originated||s.cmHopper.update({id:d.preview.id,UserId:null}),d.preview=e,d.hopperIds.push(d.preview.id))}).catch(function(e){if(a.hide(),404===e.status)i.info({title:"PREVIEW",msg:"CONTACTS NOT AVAILABLE"});else if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api preview",msg:e.data?JSON.stringify(e.data.message):e.toString()})}).finally(function(){d.disableGetContact=!1})},d.isCustomField=function(e){return _.startsWith(e,"cf_")},d.isHiddenField=function(e){return _.includes(["Company","CompanyId","ListId","UserId","createdAt","deletedAt","id","priority","scheduledat","tags","updatedAt","facebook","twitter","skype","wechat","teams","viber","line","telegram"],e)},d.isNil=function(e){return _.isNil(e)},e.$on("$destroy",function(){d.originated||s.cmHopper.update({id:d.preview.id,UserId:null})})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","api","preview","currentUser","customFields"],angular.module("app.toolbar").controller("PreviewDialogController",e)}(),function(){"use strict";function e(n,t,s,a,o,e,i,r,l,d,c,m,u,p,g,v,h,f,b,A,E,y){var S,T=this;T.voiceQueues={},T.polling=!0,t.global={search:""},T.pauses=[],T.license=b,T.currentUser=v.getCurrentUser(),T.unreadTotalMessages=0,T.unreadTotalGroupMessages=0,T.contacts=0,"agent"===T.currentUser.role&&(S=E(function(){_.some(T.voiceQueues,{dialMethod:"preview",dialActive:!0})&&T.license.dialer&&T.polling?(T.polling=!1,f.cmHopper.getOpenContacts().$promise.then(function(e){e&&_.isNumber(e.contacts)&&(T.contacts=e.contacts)}).finally(function(){T.polling=!0})):T.contacts=0},14999)),T.setting=A,T.bodyEl=angular.element("body"),T.conf={realm:"asterisk",host:e.host(),protocol:e.protocol(),soundPlayerId:"local-audio",remotePlayerId:"remote-audio",ua:"Motion WebRTC Bar 0.2.0",license:T.license.webrtc,phoneBarExpires:T.currentUser.phoneBarExpires,phoneBarPrefixRequired:T.currentUser.phoneBarPrefixRequired,wssPort:T.currentUser.wssPort},T.webRTCSessions=[],T.query={id:v.getCurrentUser().id,fields:"id,name,type,dialMethod,dialActive",channel:"voice",nolimit:!0},T.userStatusOptions=[{title:"Online",icon:"icon-checkbox-marked-circle",color:"#4CAF50"},{title:"Away",icon:"icon-clock",color:"#FFC107"},{title:"Do not Disturb",icon:"icon-minus-circle",color:"#F44336"},{title:"Invisible",icon:"icon-checkbox-blank-circle-outline",color:"#BDBDBD"},{title:"Offline",icon:"icon-checkbox-blank-circle-outline",color:"#616161"}],T.languages={ar:{title:"Arabic",translation:"TOOLBAR.ARABIC",code:"ar",flag:"ar"},da:{title:"Danish",translation:"TOOLBAR.DANISH",code:"da",flag:"da"},de:{title:"German",translation:"TOOLBAR.GERMAN",code:"de",flag:"de"},en:{title:"English",translation:"TOOLBAR.ENGLISH",code:"en",flag:"us"},es:{title:"Spanish",translation:"TOOLBAR.SPANISH",code:"es",flag:"es"},fa:{title:"Persian",translation:"TOOLBAR.PERSIAN",code:"fa",flag:"fa"},fi:{title:"Finnish",translation:"TOOLBAR.FINNISH",code:"fi",flag:"fi"},fr:{title:"French",translation:"TOOLBAR.FRENCH",code:"fr",flag:"fr"},he:{title:"Hebrew",translation:"TOOLBAR.HEBREW",code:"he",flag:"he"},hi:{title:"Hindi",translation:"TOOLBAR.HINDI",code:"hi",flag:"hi"},id:{title:"Indonesian",translation:"TOOLBAR.INDONESIAN",code:"id",flag:"id"},it:{title:"Italian",translation:"TOOLBAR.ITALIAN",code:"it",flag:"it"},ja:{title:"Japanese",translation:"TOOLBAR.JAPANESE",code:"ja",flag:"ja"},ko:{title:"Korean",translation:"TOOLBAR.KOREAN",code:"ko",flag:"ko"},lv:{title:"Latvian",translation:"TOOLBAR.LATVIAN",code:"lv",flag:"lv"},nl:{title:"Dutch",translation:"TOOLBAR.DUTCH",code:"nl",flag:"nl"},no:{title:"Norwegian",translation:"TOOLBAR.NORWEGIAN",code:"no",flag:"no"},pl:{title:"Polish",translation:"TOOLBAR.POLISH",code:"pl",flag:"pl"},"pt-BR":{title:"Brazilian",translation:"TOOLBAR.BRAZILIAN",code:"pt-BR",flag:"pt-BR"},"pt-PT":{title:"Portuguese",translation:"TOOLBAR.PORTUGUESE",code:"pt-PT",flag:"pt-PT"},ru:{title:"Russian",translation:"TOOLBAR.RUSSIAN",code:"ru",flag:"ru"},sv:{title:"Swedish",translation:"TOOLBAR.SWEDISH",code:"sv",flag:"sv"},tr:{title:"Turkish",translation:"TOOLBAR.TURKISH",code:"tr",flag:"tr"},"zh-CN":{title:"ChineseSimplified",translation:"TOOLBAR.CHINESESIMPLIFIED",code:"zh-CN",flag:"zh-CN"},"zh-TW":{title:"ChineseTraditional",translation:"TOOLBAR.CHINESETRADITIONAL",code:"zh-TW",flag:"zh-TW"}};var I=["ar","fa","he"];function C(){h.connect(),h.on("user:update",T.onUserUpdate),h.on("user:called",T.onUserCalled),h.on("chatInternalMessage:save",T.onInternalMessageSave),h.on("chatInternalMessage:update",T.onInternalMessageUpdate),h.on("userVoiceQueue:save",T.onUserVoiceQueue),h.on("voiceQueue:save",T.onVoiceQueue),h.on("userVoiceQueue:remove",T.onUserVoiceQueue),h.on("voiceQueue:remove",T.onVoiceQueue),h.on("voiceQueue:update",T.onVoiceQueue),h.on("user:forcelogout",D),h.on("userNotification:send",P)}function O(){h.disconnect("logout")}function w(e){T.voiceQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}function R(){T.promise=f.user.getQueues(T.query,w).$promise}function x(e){return O(),v.logout(e).then(function(){return t.$broadcast("webrtc::logout"),a.go("app.login")}).catch(function(e){console.error(e)})}function N(e,n){c.show({controller:"ChangePasswordController",controllerAs:"vm",templateUrl:"app/toolbar/changepassword/changepassword.html",parent:angular.element(m.body),targetEvent:e,clickOutsideToClose:!n,escapeToClose:!n,locals:{user:T.user,setting:A,reset:n}})}function D(e){if(console.debug("onForceLogout -> data",e),e.user.id===T.user.id&&0!==T.user.showWebBar)return O(),v.logout(!0).then(function(){t.$broadcast("webrtc::logout"),c.show(c.alert().parent(angular.element(m.body)).clickOutsideToClose(!1).escapeToClose(!1).title(r.instant("TOOLBAR.WARNING")).textContent(r.instant("TOOLBAR.USER_FORCE_LOGOUT",{ip:e.ip})).ok("OK")).then(function(){return a.go("app.login")})}).catch(function(e){console.error(e)})}function P(e){var n=e;if(T.currentUser.id===n.recipient){var t=r.instant("TOOLBAR.NOTIFICATION_TITLE",{sender:n.sender}),a=n.description?r.instant("TOOLBAR.NOTIFICATION_TITLE_RECIPIENT",{recipient:n.description}):null;p.wait({title:a?t+" "+a:t,msg:n.content,clickToClose:!1,timeout:!1,sound:n.beep,html:!0})}}T.toggleSidenav=function(e){i(e).toggle()},T.logout=x,T.changeLanguage=function(e){if(!T.languages.hasOwnProperty(e.code)){return void l.show({template:'<md-toast id="language-message" layout="column" layout-align="center start"><div class="md-toast-content">Motion supports multiple translations through angular-translate module, but currently we do not support the selected language. If you want to help us, send us a message.</div></md-toast>',hideDelay:7e3,position:"top right",parent:"#content"})}T.selectedLanguage=e,u.put("motion.language",e.code),r.use(e.code),"app.callysquare.projects.edit"===a.current.name&&d.location.reload();0<=I.indexOf(e.code)?p.info({title:r.instant("TOOLBAR.CHANGE_LANGUAGE_TITLE"),msg:r.instant("TOOLBAR.CHANGE_LANGUAGE_MESSAGE")}):n.$parent.$parent.vm.direction="ltr"},T.setUserStatus=function(e){T.userStatus=e},T.toggleHorizontalMobileMenu=function(){T.bodyEl.toggleClass("ms-navigation-horizontal-mobile-menu-active")},T.toggleMsNavigationFolded=function(){g.toggleFolded()},T.search=function(n){for(var e=[],t=g.getFlatNavigation(),a=s.defer(),i=0;i<t.length;i++)t[i].uisref&&e.push(t[i]);n&&(e=e.filter(function(e){if(-1<angular.lowercase(e.title).search(angular.lowercase(n)))return!0}));return o(function(){a.resolve(e)},1e3),a.promise},T.searchResultClick=function(e){e.uisref&&(e.stateParams?a.go(e.state,e.stateParams):a.go(e.state))},T.openSettings=function(e){t.$broadcast("webrtc::settings")},T.changePassword=N,T.isAgent=function(){return v.getCurrentUser()&&v.hasRole("agent")},T.onUserUpdate=function(e){if(e.id===T.user.id)if("agent"===e.role&&_.isBoolean(e.online)&&!e.online)if(0!==T.user.showWebBar){var t;O();var n=c.confirm({title:r.instant("TOOLBAR.WARNING")+"!",htmlContent:"<span>"+r.instant("TOOLBAR.SOMEONE_LOGGED_YOU_OUT")+"</span><br><span>"+r.instant("TOOLBAR.SESSION_TIMEOUT")+"</span>",ariaLabel:r.instant("TOOLBAR.WARNING")+"!",ok:r.instant("TOOLBAR.STAY_LOGGED"),cancel:r.instant("TOOLBAR.LOGOUT"),onComplete:function(e,n){t=setTimeout(function(){c.cancel()},6e4)}});c.show(n).then(function(){return clearTimeout(t),v.queueLogin().then(function(){C(),_.merge(T.user,e),v.setCurrentUser(T.user)})}).catch(function(e){clearTimeout(t),x(!0)})}else x(!0);else _.merge(T.user,e),v.setCurrentUser(T.user)},T.onUserCalled=function(e){if(2===T.currentUser.showWebBar&&"agent"===T.currentUser.role&&T.currentUser.name===e.membername){var n=T.currentUser.privacyEnabled?y.mask(e.calleridnum):e.calleridnum;p.info({title:"WebRTC Popup",msg:"<div> <span>Call from: "+n+"</span><br> <span>Queue: "+e.queue+"</span><br> <span>Extra: "+(e.variables&&e.variables.extravar?e.variables.extravar:"Not defined")+"</span><br> </div>",showClose:!0,timeout:1e4,html:!0})}},T.pause=function(e){var n=e||"DEFAULT PAUSE";_.some(T.webRTCSessions,["confirmed",!0])&&(n="#"+n);return f.user.pause({id:T.user.id,type:n}).$promise.catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:PAUSEUSER",msg:e.status?JSON.stringify(e.data):e.toString()})})},T.unpause=function(){return f.user.unpause({id:T.user.id}).$promise.catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UNPAUSEUSER",msg:e.status?JSON.stringify(e.data):e.toString()})})},T.preview=function(n){return T.disable=!0,f.cmHopper.getPreview().$promise.then(function(e){_.isNil(e)||_.isNil(e.Queue)||!e.Queue.dialActive?p.info({title:"PREVIEW",msg:"CAMPAIGN NOT ACTIVE"}):c.show({controller:"PreviewDialogController",controllerAs:"vm",templateUrl:"app/toolbar/preview/dialog.html",parent:angular.element(m.body),targetEvent:n,clickOutsideToClose:!0,locals:{preview:e,currentUser:T.currentUser},resolve:{customFields:["apiResolver",function(e){return e.resolve("cmCustomField@get",{nolimit:!0})}]}})}).catch(function(e){if(404===e.status)p.info({title:"PREVIEW",msg:"CONTACT NOT AVAILABLE"});else if(e.data&&e.data.errors&&e.data.errors.length){T.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelMessage.accept"}];for(var n=0;n<e.data.errors.length;n+=1)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelMessage.accept",msg:e.data?JSON.stringify(e.data.message):e.toString()})}).finally(function(){T.disable=!1})},T.getLogo=function(){return T.setting.defaultHeaderWhiteLabel?"xCALLY Motion":T.setting.headerWhiteLabel},T.userIsNotPhonebar=function(){return"admin"===T.currentUser.role||"user"===T.currentUser.role||"agent"===T.currentUser.role&&0!==T.currentUser.showWebBar},T.onInternalMessageSave=function(e){e.ToId!==T.currentUser.id||e.ChatGroupId||(T.unreadTotalMessages+=1);e.ToId===T.currentUser.id&&e.FromId!==T.currentUser.id&&!e.read&&e.ChatGroupId&&T.unreadTotalGroupMessages++},T.onInternalMessageUpdate=function(e){e.ToId===T.currentUser.id&&e.read&&0<T.unreadTotalMessages&&!e.ChatGroupId&&(T.unreadTotalMessages-=1);e.ToId===T.currentUser.id&&e.read&&e.ChatGroupId&&0<T.unreadTotalGroupMessages&&T.unreadTotalGroupMessages--},T.onUserVoiceQueue=function(e){_.toInteger(e.UserId)===v.getCurrentUser().id&&R()},T.onVoiceQueue=function(e){R()},function(){T.user=v.getCurrentUser(),T.conf.ha1=T.user.md5secret,T.conf.id=T.user.id,T.conf.name=T.user.name,T.conf.fullname=T.user.fullname,T.conf.internal=T.user.internal,T.conf.recording=T.user.phoneBarEnableRecording,T.conf.autoAnswer=T.user.phoneBarAutoAnswer,T.conf.enableSettings=T.user.phoneBarEnableSettings,T.conf.enableDtmfTone=T.user.phoneBarEnableDtmfTone,T.conf.autoAnswerDelay=T.user.phoneBarAutoAnswerDelay,T.userStatus=T.userStatusOptions[0];var e=u.get("motion.language");e&&T.languages.hasOwnProperty(e)?T.selectedLanguage=T.languages[e]:T.selectedLanguage=T.languages[r.preferredLanguage()];if(f.pause.get({fields:"name",nolimit:!0}).$promise.then(function(e){T.pauses=e.rows?e.rows:[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETPAUSES",msg:e.status?JSON.stringify(e.data):e.toString()})}),"LOCAL_LOGIN"==v.getAuthenticationType()&&T.setting.securePassword)if(T.user.passwordResetAt){var n=moment(T.user.passwordResetAt).add(T.setting.passwordExpiresDays||90,"day");moment().isAfter(n)?N(null,!0):moment().add(15,"day").isAfter(n)&&p.warning({title:r.instant("TOOLBAR.WARNING")+"!",msg:r.instant("TOOLBAR.PASSWORD_EXPIRE_REMAINING_DAYS")+": "+Math.ceil(n.diff(moment(),"days",!0)),timeout:2e4})}else N(null,!0)}(),R(),C(),f.chatInternalMessage.get({fields:"FromId",ToId:T.currentUser.id,read:!1,nolimit:!0}).$promise.then(function(e){T.unreadTotalMessages=e.rows.length}),n.$on("$destroy",function(){h.removeAllListeners("user:called"),h.removeAllListeners("user:update"),h.removeAllListeners("chatInternalMessage:save"),h.removeAllListeners("chatInternalMessage:update"),h.removeAllListeners("userVoiceQueue:save"),h.removeAllListeners("voiceQueue:save"),h.removeAllListeners("userVoiceQueue:remove"),h.removeAllListeners("voiceQueue:remove"),h.removeAllListeners("voiceQueue:update"),h.removeAllListeners("user:forcelogout"),h.removeAllListeners("userNotification:send"),S&&(E.cancel(S),S=null)})}e.$inject=["$scope","$rootScope","$q","$state","$timeout","$location","$mdSidenav","$translate","$mdToast","$window","$mdDialog","$document","$cookies","toasty","msNavigationService","Auth","socket","api","license","setting","$interval","privacyManager"],angular.module("app.toolbar").controller("ToolbarController",e)}();var urlParams=function(e){var n=new Object,t=e.lastIndexOf("?");if(0<t)for(var a=e.substring(t+1).split("&"),i=0;i<a.length;i++)0<(t=a[i].indexOf("="))&&(n[a[i].substring(0,t)]=a[i].substring(t+1));return n}(window.location.href),t0=new Date,MAX_REQUEST_SIZE=10485760,MAX_WIDTH=12e3,MAX_HEIGHT=12e3,EXPORT_URL="http://exp.draw.io/ImageExport2/export",SHARE_HOST="http://localhost:3000",SAVE_URL="api/square/projects/",VARIABLE_URL="/api/variables",STENCIL_PATH="/assets/plugins/square/stencils",SHAPES_PATH="/assets/plugins/square/shapes",IMAGE_PATH="/assets/plugins/square/images",STYLE_PATH="/assets/plugins/square/styles",CSS_PATH="/assets/plugins/square/styles",OPEN_FORM="api/square/projects/open",TEMPLATE_PATH="/assets/plugins/square/templates",RESOURCES_PATH="/assets/plugins/square/resources",RESOURCE_BASE=RESOURCES_PATH+"/grapheditor",CRUD_PERMISSIONS={readOnly:!1,canEdit:!1,canDelete:!1},tapAndHoldStartsConnection=!0,showConnectorImg=!0,mxLoadResources=!1,mxLanguages=["it","fr","ko","es","sv","ru","de","ja","zh-CN","zh-TW","nl","fi","da","pt-BR","pt-PT","no","hi","tr","fa"],mxLanguage="en",match=document.cookie.match(new RegExp("(^| )motion.language=([^;]+)"));match&&mxLanguages.includes(match[2])&&(mxLanguage=match[2]);var mxBasePath="assets/plugins/mxgraph",mxClient={VERSION:"2.0.0.0",IS_IE:0<=navigator.userAgent.indexOf("MSIE"),IS_IE6:0<=navigator.userAgent.indexOf("MSIE 6"),IS_QUIRKS:0<=navigator.userAgent.indexOf("MSIE")&&(null==document.documentMode||5==document.documentMode),VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:0<=navigator.userAgent.indexOf("Mozilla/")&&navigator.userAgent.indexOf("MSIE")<0,IS_OP:0<=navigator.userAgent.indexOf("Opera/"),IS_OT:navigator.userAgent.indexOf("Presto/2.4.")<0&&navigator.userAgent.indexOf("Presto/2.3.")<0&&navigator.userAgent.indexOf("Presto/2.2.")<0&&navigator.userAgent.indexOf("Presto/2.1.")<0&&navigator.userAgent.indexOf("Presto/2.0.")<0&&navigator.userAgent.indexOf("Presto/1.")<0,IS_SF:0<=navigator.userAgent.indexOf("AppleWebKit/")&&navigator.userAgent.indexOf("Chrome/")<0,IS_GC:0<=navigator.userAgent.indexOf("Chrome/"),IS_MT:0<=navigator.userAgent.indexOf("Firefox/")&&navigator.userAgent.indexOf("Firefox/1.")<0&&navigator.userAgent.indexOf("Firefox/2.")<0||0<=navigator.userAgent.indexOf("Iceweasel/")&&navigator.userAgent.indexOf("Iceweasel/1.")<0&&navigator.userAgent.indexOf("Iceweasel/2.")<0||0<=navigator.userAgent.indexOf("SeaMonkey/")&&navigator.userAgent.indexOf("SeaMonkey/1.")<0||0<=navigator.userAgent.indexOf("Iceape/")&&navigator.userAgent.indexOf("Iceape/1.")<0,IS_SVG:0<=navigator.userAgent.indexOf("Firefox/")||0<=navigator.userAgent.indexOf("Iceweasel/")||0<=navigator.userAgent.indexOf("Seamonkey/")||0<=navigator.userAgent.indexOf("Iceape/")||0<=navigator.userAgent.indexOf("Galeon/")||0<=navigator.userAgent.indexOf("Epiphany/")||0<=navigator.userAgent.indexOf("AppleWebKit/")||0<=navigator.userAgent.indexOf("Gecko/")||0<=navigator.userAgent.indexOf("Opera/"),NO_FO:0<=navigator.userAgent.indexOf("Firefox/1.")||0<=navigator.userAgent.indexOf("Iceweasel/1.")||0<=navigator.userAgent.indexOf("Firefox/2.")||0<=navigator.userAgent.indexOf("Iceweasel/2.")||0<=navigator.userAgent.indexOf("SeaMonkey/1.")||0<=navigator.userAgent.indexOf("Iceape/1.")||0<=navigator.userAgent.indexOf("Camino/1.")||0<=navigator.userAgent.indexOf("Epiphany/2.")||0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("MSIE")||0<=navigator.userAgent.indexOf("Mozilla/2."),IS_VML:"MICROSOFT INTERNET EXPLORER"==navigator.appName.toUpperCase(),IS_MAC:0<navigator.userAgent.toUpperCase().indexOf("MACINTOSH"),IS_TOUCH:0<navigator.userAgent.toUpperCase().indexOf("IPAD")||0<navigator.userAgent.toUpperCase().indexOf("IPOD")||0<navigator.userAgent.toUpperCase().indexOf("IPHONE")||0<navigator.userAgent.toUpperCase().indexOf("ANDROID"),IS_LOCAL:document.location.href.indexOf("http://")<0&&document.location.href.indexOf("https://")<0,isBrowserSupported:function(){return mxClient.IS_VML||mxClient.IS_SVG},link:function(e,n,t){if(t=t||document,mxClient.IS_IE6)t.write('<link rel="'+e+'" href="'+n+'" charset="ISO-8859-1" type="text/css"/>');else{var a=t.createElement("link");a.setAttribute("rel",e),a.setAttribute("href",n),a.setAttribute("charset","ISO-8859-1"),a.setAttribute("type","text/css"),t.getElementsByTagName("head")[0].appendChild(a)}},include:function(e){document.write('<script src="'+e+'"><\/script>')},dispose:function(){for(var e=0;e<mxEvent.objects.length;e++)null!=mxEvent.objects[e].mxListenerList&&mxEvent.removeAllListeners(mxEvent.objects[e])}};if(mxClient.IS_OP&&mxClient.IS_OT?mxClient.CSS_PREFIX="O":mxClient.IS_SF||mxClient.IS_GC?mxClient.CSS_PREFIX="Webkit":mxClient.IS_MT?mxClient.CSS_PREFIX="Moz":mxClient.IS_IE&&9<=document.documentMode&&(mxClient.CSS_PREFIX="ms"),void 0===mxLoadResources&&(mxLoadResources=!0),"undefined"==typeof mxResourceExtension&&(mxResourceExtension=".txt"),"undefined"==typeof mxLoadStylesheets&&(mxLoadStylesheets=!0),void 0!==mxBasePath&&0<mxBasePath.length?("/"==mxBasePath.substring(mxBasePath.length-1)&&(mxBasePath=mxBasePath.substring(0,mxBasePath.length-1)),mxClient.basePath=mxBasePath):mxClient.basePath=".","undefined"!=typeof mxImageBasePath&&0<mxImageBasePath.length?("/"==mxImageBasePath.substring(mxImageBasePath.length-1)&&(mxImageBasePath=mxImageBasePath.substring(0,mxImageBasePath.length-1)),mxClient.imageBasePath=mxImageBasePath):mxClient.imageBasePath=mxClient.basePath+"/images",mxClient.language=void 0!==mxLanguage?mxLanguage:mxClient.IS_IE?navigator.userLanguage:navigator.language,mxClient.defaultLanguage="undefined"!=typeof mxDefaultLanguage?mxDefaultLanguage:"en",mxLoadStylesheets&&mxClient.link("stylesheet",mxClient.basePath+"/css/common.css"),void 0!==mxLanguages&&(mxClient.languages=mxLanguages),mxClient.IS_IE){if(9<=document.documentMode)mxClient.IS_VML=!1,mxClient.IS_SVG=!0;else{8==document.documentMode?(document.namespaces.add(mxClient.VML_PREFIX,"urn:schemas-microsoft-com:vml","#default#VML"),document.namespaces.add(mxClient.OFFICE_PREFIX,"urn:schemas-microsoft-com:office:office","#default#VML")):(document.namespaces.add(mxClient.VML_PREFIX,"urn:schemas-microsoft-com:vml"),document.namespaces.add(mxClient.OFFICE_PREFIX,"urn:schemas-microsoft-com:office:office"));var ss=document.createStyleSheet();ss.cssText="v\\:*{behavior:url(#default#VML)}o\\:*{behavior:url(#default#VML)}",mxLoadStylesheets&&mxClient.link("stylesheet",mxClient.basePath+"/css/explorer.css")}window.attachEvent("onunload",mxClient.dispose)}var mxLog={consoleName:"Console",TRACE:!1,DEBUG:!0,WARN:!0,buffer:"",init:function(){if(null==mxLog.window&&null!=document.body){var e=mxLog.consoleName+" - mxGraph "+mxClient.VERSION,n=document.createElement("table");n.setAttribute("width","100%"),n.setAttribute("height","100%");var t=document.createElement("tbody"),a=document.createElement("tr"),i=document.createElement("td");if(i.style.verticalAlign="top",mxLog.textarea=document.createElement("textarea"),mxLog.textarea.setAttribute("readOnly","true"),mxLog.textarea.style.height="100%",mxLog.textarea.style.resize="none",mxLog.textarea.value=mxLog.buffer,mxLog.textarea.style.width=mxClient.IS_NS&&"BackCompat"!=document.compatMode?"99%":"100%",i.appendChild(mxLog.textarea),a.appendChild(i),t.appendChild(a),a=document.createElement("tr"),mxLog.td=document.createElement("td"),mxLog.td.style.verticalAlign="top",mxLog.td.setAttribute("height","30px"),a.appendChild(mxLog.td),t.appendChild(a),n.appendChild(t),mxLog.addButton("Info",function(e){mxLog.info()}),mxLog.addButton("DOM",function(e){e=mxUtils.getInnerHtml(document.body),mxLog.debug(e)}),mxLog.addButton("Trace",function(e){mxLog.TRACE=!mxLog.TRACE,mxLog.TRACE?mxLog.debug("Tracing enabled"):mxLog.debug("Tracing disabled")}),mxLog.addButton("Copy",function(e){try{mxUtils.copy(mxLog.textarea.value)}catch(e){mxUtils.alert(e)}}),mxLog.addButton("Show",function(e){try{mxUtils.popup(mxLog.textarea.value)}catch(e){mxUtils.alert(e)}}),mxLog.addButton("Clear",function(e){mxLog.textarea.value=""}),a=t=0,a="number"==typeof window.innerWidth?(t=window.innerHeight,window.innerWidth):(t=document.documentElement.clientHeight||document.body.clientHeight,document.body.clientWidth),mxLog.window=new mxWindow(e,n,Math.max(0,a-320),Math.max(0,t-210),300,160),mxLog.window.setMaximizable(!0),mxLog.window.setScrollable(!1),mxLog.window.setResizable(!0),mxLog.window.setClosable(!0),mxLog.window.destroyOnClose=!1,(mxClient.IS_NS||mxClient.IS_IE)&&!mxClient.IS_GC&&!mxClient.IS_SF&&"BackCompat"!=document.compatMode){var s=mxLog.window.getElement();e=function(e,n){mxLog.textarea.style.height=Math.max(0,s.offsetHeight-70)+"px"};mxLog.window.addListener(mxEvent.RESIZE_END,e),mxLog.window.addListener(mxEvent.MAXIMIZE,e),mxLog.window.addListener(mxEvent.NORMALIZE,e),mxLog.textarea.style.height="92px"}}},info:function(){mxLog.writeln(mxUtils.toString(navigator))},addButton:function(e,n){var t=document.createElement("button");mxUtils.write(t,e),mxEvent.addListener(t,"click",n),mxLog.td.appendChild(t)},isVisible:function(){return null!=mxLog.window&&mxLog.window.isVisible()},show:function(){mxLog.setVisible(!0)},setVisible:function(e){null==mxLog.window&&mxLog.init(),null!=mxLog.window&&mxLog.window.setVisible(e)},enter:function(e){if(mxLog.TRACE)return mxLog.writeln("Entering "+e),(new Date).getTime()},leave:function(e,n){if(mxLog.TRACE){var t=0!=n?" ("+((new Date).getTime()-n)+" ms)":"";mxLog.writeln("Leaving "+e+t)}},debug:function(){mxLog.DEBUG&&mxLog.writeln.apply(this,arguments)},warn:function(){mxLog.WARN&&mxLog.writeln.apply(this,arguments)},write:function(){for(var e="",n=0;n<arguments.length;n++)e+=arguments[n],n<arguments.length-1&&(e+=" ");null!=mxLog.textarea?(mxLog.textarea.value+=e,0<=navigator.userAgent.indexOf("Presto/2.5")&&(mxLog.textarea.style.visibility="hidden",mxLog.textarea.style.visibility="visible"),mxLog.textarea.scrollTop=mxLog.textarea.scrollHeight):mxLog.buffer+=e},writeln:function(){for(var e="",n=0;n<arguments.length;n++)e+=arguments[n],n<arguments.length-1&&(e+=" ");mxLog.write(e+"\n")}},mxObjectIdentity={FIELD_NAME:"mxObjectId",counter:0,get:function(e){if("object"==typeof e&&null==e[mxObjectIdentity.FIELD_NAME]){var n=mxUtils.getFunctionName(e.constructor);e[mxObjectIdentity.FIELD_NAME]=n+"#"+mxObjectIdentity.counter++}return e[mxObjectIdentity.FIELD_NAME]},clear:function(e){"object"==typeof e&&delete e[mxObjectIdentity.FIELD_NAME]}};function mxDictionary(){this.clear()}mxDictionary.prototype.map=null,mxDictionary.prototype.clear=function(){this.map={}},mxDictionary.prototype.get=function(e){return e=mxObjectIdentity.get(e),this.map[e]},mxDictionary.prototype.put=function(e,n){var t=mxObjectIdentity.get(e),a=this.map[t];return this.map[t]=n,a},mxDictionary.prototype.remove=function(e){e=mxObjectIdentity.get(e);var n=this.map[e];return delete this.map[e],n},mxDictionary.prototype.getKeys=function(){var e,n=[];for(e in this.map)n.push(e);return n},mxDictionary.prototype.getValues=function(){var e,n=[];for(e in this.map)n.push(this.map[e]);return n},mxDictionary.prototype.visit=function(e){for(var n in this.map)e(n,this.map[n])};var mxResources={resources:[],extension:mxResourceExtension,resourcesEncoded:!1,loadDefaultBundle:!0,loadSpecialBundle:!0,isLanguageSupported:function(e){return null==mxClient.languages||0<=mxUtils.indexOf(mxClient.languages,e)},getDefaultBundle:function(e,n){return mxResources.loadDefaultBundle||!mxResources.isLanguageSupported(n)?e+mxResources.extension:null},getSpecialBundle:function(e,n){if(null==mxClient.languages||!this.isLanguageSupported(n)){var t=n.indexOf("-");0<t&&(n=n.substring(0,t))}return mxResources.loadSpecialBundle&&mxResources.isLanguageSupported(n)&&n!=mxClient.defaultLanguage?e+"_"+n+mxResources.extension:null},add:function(e,n){if((n=null!=n?n:mxClient.language)!=mxConstants.NONE){var t=mxResources.getDefaultBundle(e,n);if(null!=t)try{var a=mxUtils.load(t);a.isReady()&&mxResources.parse(a.getText())}catch(e){}if(null!=(t=mxResources.getSpecialBundle(e,n)))try{(a=mxUtils.load(t)).isReady()&&mxResources.parse(a.getText())}catch(e){}}},parse:function(e){if(null!=e){e=e.split("\n");for(var n=0;n<e.length;n++)if("#"!=e[n].charAt(0)){var t=e[n].indexOf("=");if(0<t){var a=e[n].substring(0,t),i=e[n].length;13==e[n].charCodeAt(i-1)&&i--,t=e[n].substring(t+1,i),this.resourcesEncoded?(t=t.replace(/\\(?=u[a-fA-F\d]{4})/g,"%"),mxResources.resources[a]=unescape(t)):mxResources.resources[a]=t}}}},get:function(e,n,t){if(null==(e=mxResources.resources[e])&&(e=t),null!=e&&null!=n){t=[];for(var a=null,i=0;i<e.length;i++){var s=e.charAt(i);"{"==s?a="":null!=a&&"}"==s?(0<=(a=parseInt(a)-1)&&a<n.length&&t.push(n[a]),a=null):null!=a?a+=s:t.push(s)}e=t.join("")}return e}};function mxPoint(e,n){this.x=null!=e?e:0,this.y=null!=n?n:0}function mxRectangle(e,n,t,a){mxPoint.call(this,e,n),this.width=null!=t?t:0,this.height=null!=a?a:0}mxPoint.prototype.x=null,mxPoint.prototype.y=null,mxPoint.prototype.equals=function(e){return e.x==this.x&&e.y==this.y},mxPoint.prototype.clone=function(){return mxUtils.clone(this)},mxRectangle.prototype=new mxPoint,mxRectangle.prototype.constructor=mxRectangle,mxRectangle.prototype.width=null,mxRectangle.prototype.height=null,mxRectangle.prototype.setRect=function(e,n,t,a){this.x=e,this.y=n,this.width=t,this.height=a},mxRectangle.prototype.getCenterX=function(){return this.x+this.width/2},mxRectangle.prototype.getCenterY=function(){return this.y+this.height/2},mxRectangle.prototype.add=function(e){if(null!=e){var n=Math.min(this.x,e.x),t=Math.min(this.y,e.y),a=Math.max(this.x+this.width,e.x+e.width);e=Math.max(this.y+this.height,e.y+e.height),this.x=n,this.y=t,this.width=a-n,this.height=e-t}},mxRectangle.prototype.grow=function(e){this.x-=e,this.y-=e,this.width+=2*e,this.height+=2*e},mxRectangle.prototype.getPoint=function(){return new mxPoint(this.x,this.y)},mxRectangle.prototype.equals=function(e){return e.x==this.x&&e.y==this.y&&e.width==this.width&&e.height==this.height};var mxEffects={animateChanges:function(l,d,c){var m=0,u=function(){for(var e=!1,n=0;n<d.length;n++){var t=d[n];if(t instanceof mxGeometryChange||t instanceof mxTerminalChange||t instanceof mxValueChange||t instanceof mxChildChange||t instanceof mxStyleChange){var a=l.getView().getState(t.cell||t.child,!1);if(null!=a)if(e=!0,t.constructor!=mxGeometryChange||l.model.isEdge(t.cell))mxUtils.setOpacity(a.shape.node,100*m/10);else{var i=l.getView().scale,s=(t.geometry.x-t.previous.x)*i,o=(t.geometry.y-t.previous.y)*i,r=(t.geometry.width-t.previous.width)*i;i=(t.geometry.height-t.previous.height)*i;0==m?(a.x-=s,a.y-=o,a.width-=r,a.height-=i):(a.x+=s/10,a.y+=o/10,a.width+=r/10,a.height+=i/10),l.cellRenderer.redraw(a),mxEffects.cascadeOpacity(l,t.cell,100*m/10)}}}m<10&&e?(m++,window.setTimeout(u,p)):null!=c&&c()},p=30;u()},cascadeOpacity:function(e,n,t){for(var a=e.model.getChildCount(n),i=0;i<a;i++){var s=e.model.getChildAt(n,i),o=e.getView().getState(s);null!=o&&(mxUtils.setOpacity(o.shape.node,t),mxEffects.cascadeOpacity(e,s,t))}if(null!=(n=e.model.getEdges(n)))for(i=0;i<n.length;i++)null!=(a=e.getView().getState(n[i]))&&mxUtils.setOpacity(a.shape.node,t)},fadeOut:function(e,n,t,a,i,s){a=a||40,i=i||30;var o=n||100;if(mxUtils.setOpacity(e,o),s||null==s){var r=function(){o=Math.max(o-a,0),mxUtils.setOpacity(e,o),0<o?window.setTimeout(r,i):(e.style.visibility="hidden",t&&e.parentNode&&e.parentNode.removeChild(e))};window.setTimeout(r,i)}else e.style.visibility="hidden",t&&e.parentNode&&e.parentNode.removeChild(e)}},mxUtils={errorResource:"none"!=mxClient.language?"error":"",closeResource:"none"!=mxClient.language?"close":"",errorImage:mxClient.imageBasePath+"/error.gif",removeCursors:function(e){if(null!=e.style&&(e.style.cursor=""),null!=(e=e.childNodes))for(var n=e.length,t=0;t<n;t+=1)mxUtils.removeCursors(e[t])},getCurrentStyle:mxClient.IS_IE?function(e){return null!=e?e.currentStyle:null}:function(e){return null!=e?window.getComputedStyle(e,""):null},hasScrollbars:function(e){return null!=(e=mxUtils.getCurrentStyle(e))&&("scroll"==e.overflow||"auto"==e.overflow)},bind:function(e,n){return function(){return n.apply(e,arguments)}},eval:function(a){var b=null;if(0<=a.indexOf("function"))try{eval("var _mxJavaScriptExpression="+a),b=_mxJavaScriptExpression,_mxJavaScriptExpression=null}catch(e){mxLog.warn(e.message+" while evaluating "+a)}else try{b=eval(a)}catch(e){mxLog.warn(e.message+" while evaluating "+a)}return b},findNode:function(e,n,t){var a=e.getAttribute(n);if(null!=a&&a==t)return e;for(e=e.firstChild;null!=e;){if(null!=(a=mxUtils.findNode(e,n,t)))return a;e=e.nextSibling}return null},findNodeByAttribute:9<=document.documentMode?function(e,n,t){var a=null;if(null!=e)if(e.nodeType==mxConstants.NODETYPE_ELEMENT&&e.getAttribute(n)==t)a=e;else for(e=e.firstChild;null!=e&&null==a;)a=mxUtils.findNodeByAttribute(e,n,t),e=e.nextSibling;return a}:mxClient.IS_IE?function(e,n,t){return null==e?null:e.ownerDocument.selectSingleNode("//*[@"+n+"='"+t+"']")}:function(e,n,t){return null==e?null:e.ownerDocument.evaluate("//*[@"+n+"='"+t+"']",e.ownerDocument,null,XPathResult.ANY_TYPE,null).iterateNext()},getFunctionName:function(e){var n=null;if(null!=e)if(null!=e.name)n=e.name;else{for(e=e.toString(),n=9;" "==e.charAt(n);)n++;var t=e.indexOf("(",n);n=e.substring(n,t)}return n},indexOf:function(e,n){if(null!=e&&null!=n)for(var t=0;t<e.length;t++)if(e[t]==n)return t;return-1},remove:function(e,n){var t=null;if("object"==typeof n)for(var a=mxUtils.indexOf(n,e);0<=a;)n.splice(a,1),t=e,a=mxUtils.indexOf(n,e);for(var i in n)n[i]==e&&(delete n[i],t=e);return t},isNode:function(e,n,t,a){return!(null==e||isNaN(e.nodeType)||null!=n&&e.nodeName.toLowerCase()!=n.toLowerCase())&&(null==t||e.getAttribute(t)==a)},getChildNodes:function(e,n){n=n||mxConstants.NODETYPE_ELEMENT;for(var t=[],a=e.firstChild;null!=a;)a.nodeType==n&&t.push(a),a=a.nextSibling;return t},createXmlDocument:function(){var e=null;return document.implementation&&document.implementation.createDocument?e=document.implementation.createDocument("","",null):window.ActiveXObject&&(e=new ActiveXObject("Microsoft.XMLDOM")),e},parseXml:mxClient.IS_IE&&(void 0===document.documentMode||document.documentMode<9)?function(e){var n=mxUtils.createXmlDocument();return n.async="false",n.loadXML(e),n}:function(e){return(new DOMParser).parseFromString(e,"text/xml")},clearSelection:document.selection?function(){document.selection.empty()}:window.getSelection?function(){window.getSelection().removeAllRanges()}:void 0,getPrettyXml:function(e,n,t){var a=[];if(null!=e)if(n=n||" ",t=t||"",e.nodeType==mxConstants.NODETYPE_TEXT)a.push(e.nodeValue);else{a.push(t+"<"+e.nodeName);var i=e.attributes;if(null!=i)for(var s=0;s<i.length;s++){var o=mxUtils.htmlEntities(i[s].nodeValue);a.push(" "+i[s].nodeName+'="'+o+'"')}if(null!=(i=e.firstChild)){for(a.push(">\n");null!=i;)a.push(mxUtils.getPrettyXml(i,n,t+n)),i=i.nextSibling;a.push(t+"</"+e.nodeName+">\n")}else a.push("/>\n")}return a.join("")},removeWhitespace:function(e,n){for(var t=n?e.previousSibling:e.nextSibling;null!=t&&t.nodeType==mxConstants.NODETYPE_TEXT;){var a=n?t.previousSibling:t.nextSibling,i=mxUtils.getTextContent(t);0==mxUtils.trim(i).length&&t.parentNode.removeChild(t),t=a}},htmlEntities:function(e,n){return e=(e=(e=(e=(e=(e||"").replace(/&/g,"&")).replace(/"/g,""")).replace(/\'/g,"'")).replace(/</g,"<")).replace(/>/g,">"),(null==n||n)&&(e=e.replace(/\n/g,"
")),e},isVml:function(e){return null!=e&&"urn:schemas-microsoft-com:vml"==e.tagUrn},getXml:function(e,n){var t="";return null!=e&&(t=null==(t=e.xml)?e.innerHTML?e.innerHTML:(new XMLSerializer).serializeToString(e):t.replace(/\r\n\t[\t]*/g,"").replace(/>\r\n/g,">").replace(/\r\n/g,"\n")),t.replace(/\n/g,n||"
")},getTextContent:function(e){var n="";return null!=e&&(null!=e.firstChild&&(e=e.firstChild),n=e.nodeValue||""),n},getInnerHtml:mxClient.IS_IE?function(e){return null!=e?e.innerHTML:""}:function(e){return null!=e?(new XMLSerializer).serializeToString(e):""},getOuterHtml:mxClient.IS_IE?function(e){if(null==e)return"";if(null!=e.outerHTML)return e.outerHTML;var n=[];n.push("<"+e.nodeName);var t=e.attributes;if(null!=t)for(var a=0;a<t.length;a++){var i=t[a].nodeValue;null!=i&&0<i.length&&(n.push(" "),n.push(t[a].nodeName),n.push('="'),n.push(i),n.push('"'))}return 0==e.innerHTML.length?n.push("/>"):(n.push(">"),n.push(e.innerHTML),n.push("</"+e.nodeName+">")),n.join("")}:function(e){return null!=e?(new XMLSerializer).serializeToString(e):""},write:function(e,n){var t=e.ownerDocument.createTextNode(n);return null!=e&&e.appendChild(t),t},writeln:function(e,n){var t=e.ownerDocument.createTextNode(n);return null!=e&&(e.appendChild(t),e.appendChild(document.createElement("br"))),t},br:function(e,n){n=n||1;for(var t=null,a=0;a<n;a++)null!=e&&(t=e.ownerDocument.createElement("br"),e.appendChild(t));return t},button:function(e,n,t){return t=(t=null!=t?t:document).createElement("button"),mxUtils.write(t,e),mxEvent.addListener(t,"click",function(e){n(e)}),t},para:function(e,n){var t=document.createElement("p");return mxUtils.write(t,n),null!=e&&e.appendChild(t),t},addTransparentBackgroundFilter:function(e){e.style.filter+="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+mxClient.imageBasePath+"/transparent.gif', sizingMethod='scale')"},linkAction:function(e,n,t,a,i){return mxUtils.link(e,n,function(){t.execute(a)},i)},linkInvoke:function(e,n,t,a,i,s){return mxUtils.link(e,n,function(){t[a](i)},s)},link:function(e,n,t,a){var i=document.createElement("span");return i.style.color="blue",i.style.textDecoration="underline",i.style.cursor="pointer",null!=a&&(i.style.paddingLeft=a+"px"),mxEvent.addListener(i,"click",t),mxUtils.write(i,n),null!=e&&e.appendChild(i),i},fit:function(e){var n=parseInt(e.offsetLeft),t=parseInt(e.offsetWidth),a=document.body,i=document.documentElement,s=(a.scrollLeft||i.scrollLeft)+(a.clientWidth||i.clientWidth);s<n+t&&(e.style.left=Math.max(a.scrollLeft||i.scrollLeft,s-t)+"px"),n=parseInt(e.offsetTop),t=parseInt(e.offsetHeight),(s=(a.scrollTop||i.scrollTop)+Math.max(a.clientHeight||0,i.clientHeight))<n+t&&(e.style.top=Math.max(a.scrollTop||i.scrollTop,s-t)+"px")},open:function(e){if(mxClient.IS_NS){try{netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect")}catch(e){return mxUtils.alert("Permission to read file denied."),""}var n=Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);return n.initWithPath(e),n.exists()?((e=Components.classes["@mozilla.org/network/file-input-stream;1"].createInstance(Components.interfaces.nsIFileInputStream)).init(n,1,4,null),(n=Components.classes["@mozilla.org/scriptableinputstream;1"].createInstance(Components.interfaces.nsIScriptableInputStream)).init(e),n.read(n.available())):(mxUtils.alert("File not found."),"")}return e=(n=new ActiveXObject("Scripting.FileSystemObject").OpenTextFile(e,1)).readAll(),n.close(),e},save:function(e,n){if(mxClient.IS_NS){try{netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect")}catch(e){return void mxUtils.alert("Permission to write file denied.")}var t=Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);t.initWithPath(e),t.exists()||t.create(0,420);var a=Components.classes["@mozilla.org/network/file-output-stream;1"].createInstance(Components.interfaces.nsIFileOutputStream);a.init(t,34,4,null),a.write(n,n.length),a.flush(),a.close()}else(t=new ActiveXObject("Scripting.FileSystemObject").CreateTextFile(e,!0)).Write(n),t.Close()},saveAs:function(e){var n=document.createElement("iframe");n.setAttribute("src",""),n.style.visibility="hidden",document.body.appendChild(n);try{if(mxClient.IS_NS){var t=n.contentDocument;t.open(),t.write(e),t.close();try{netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"),n.focus(),saveDocument(t)}catch(e){mxUtils.alert("Permission to save document denied.")}}else(t=n.contentWindow.document).write(e),t.execCommand("SaveAs",!1,document.location)}finally{document.body.removeChild(n)}},copy:function(e){if(window.clipboardData)window.clipboardData.setData("Text",e);else{netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");var n=Components.classes["@mozilla.org/widget/clipboard;1"].createInstance(Components.interfaces.nsIClipboard);if(n){var t=Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable);if(t){t.addDataFlavor("text/unicode");var a=Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);a.data=e,t.setTransferData("text/unicode",a,2*e.length),n.setData(t,null,Components.interfaces.nsIClipboard.kGlobalClipboard)}}}},load:function(e){return(e=new mxXmlRequest(e,null,"GET",!1)).send(),e},get:function(e,n,t){return new mxXmlRequest(e,null,"GET").send(n,t)},post:function(e,n,t,a){return new mxXmlRequest(e,n).send(t,a)},submit:function(e,n,t,a){return new mxXmlRequest(e,n).simulate(t,a)},loadInto:function(e,n,t){mxClient.IS_IE?n.onreadystatechange=function(){4==n.readyState&&t()}:n.addEventListener("load",t,!1),n.load(e)},getValue:function(e,n,t){return null==(e=null!=e?e[n]:null)&&(e=t),e},getNumber:function(e,n,t){return null==(e=null!=e?e[n]:null)&&(e=t||0),Number(e)},getColor:function(e,n,t){return null==(e=null!=e?e[n]:null)?e=t:e==mxConstants.NONE&&(e=null),e},clone:function(e,n,t){t=null!=t&&t;var a=null;if(null!=e&&"function"==typeof e.constructor){var i;a=new e.constructor;for(i in e)i!=mxObjectIdentity.FIELD_NAME&&(null==n||mxUtils.indexOf(n,i)<0)&&(a[i]=t||"object"!=typeof e[i]?e[i]:mxUtils.clone(e[i]))}return a},equalPoints:function(e,n){if(null==e&&null!=n||null!=e&&null==n||null!=e&&null!=n&&e.length!=n.length)return!1;if(null!=e&&null!=n)for(var t=0;t<e.length;t++)if(e[t]==n[t]||null!=e[t]&&!e[t].equals(n[t]))return!1;return!0},equalEntries:function(e,n){if(null==e&&null!=n||null!=e&&null==n||null!=e&&null!=n&&e.length!=n.length)return!1;if(null!=e&&null!=n)for(var t in e)if(e[t]!=n[t])return!1;return!0},extend:function(e,n){var t=function(){};t.prototype=n.prototype,e.prototype=new t,e.prototype.constructor=e},toString:function(e){var n,t="";for(n in e)try{if(null==e[n])t+=n+" = [null]\n";else if("function"==typeof e[n])t+=n+" => [Function]\n";else if("object"==typeof e[n])t=t+(n+" => [")+mxUtils.getFunctionName(e[n].constructor)+"]\n";else t+=n+" = "+e[n]+"\n"}catch(e){t+=n+"="+e.message}return t},toRadians:function(e){return Math.PI*e/180},arcToCurves:function(e,n,t,a,i,s,o,r,l){if(r-=e,l-=n,0===t||0===a)return h;t=Math.abs(t),a=Math.abs(a);var d=-r/2,c=-l/2,m=Math.cos(i*Math.PI/180);i=m*d+(h=Math.sin(i*Math.PI/180))*c;d=-1*h*d+m*c;r=m*(c=(s=1<(v=(c=i*i)/(g=t*t)+(p=d*d)/(A=a*a))?(t*=Math.sqrt(v),a*=Math.sqrt(v),0):(v=1,s===o&&(v=-1),v*Math.sqrt((g*A-g*p-A*c)/(g*p+A*c))))*t*d/a)-h*(p=-1*s*a*i/t)+r/2,l=h*c+m*p+l/2,s=0<=(g=Math.atan2((d-p)/a,(i-c)/t)-Math.atan2(0,1))?g:2*Math.PI+g,i=0<=(g=Math.atan2((-d-p)/a,(-i-c)/t)-Math.atan2((d-p)/a,(i-c)/t))?g:2*Math.PI+g,0==o&&0<i?i-=2*Math.PI:0!=o&&i<0&&(i+=2*Math.PI),o=2*i/Math.PI,i/=o=Math.ceil(o<0?-1*o:o),d=8/3*Math.sin(i/4)*Math.sin(i/4)/Math.sin(i/2),c=m*t,m*=a,t*=h,a*=h;for(var u=Math.cos(s),p=-d*(c*(b=Math.sin(s))+a*u),g=-d*(t*b-m*u),v=A=0,h=[],f=0;f<o;++f){s+=i;var b,A=c*(u=Math.cos(s))-a*(b=Math.sin(s))+r,E=(v=t*u+m*b+l,-d*(c*b+a*u));u=-d*(t*b-m*u);h[b=6*f]=Number(p+e),h[b+1]=Number(g+n),h[b+2]=Number(A-E+e),h[b+3]=Number(v-u+n),h[b+4]=Number(A+e),h[b+5]=Number(v+n),p=A+E,g=v+u}return h},getBoundingBox:function(e,n){var t=null;if(null!=e&&null!=n&&0!=n){var a=mxUtils.toRadians(n),i=(t=Math.cos(a),Math.sin(a)),s=new mxPoint(e.x+e.width/2,e.y+e.height/2),o=new mxPoint(e.x,e.y),r=new mxPoint((a=new mxPoint(e.x+e.width,e.y)).x,e.y+e.height),l=new mxPoint(e.x,r.y);o=mxUtils.getRotatedPoint(o,t,i,s),a=mxUtils.getRotatedPoint(a,t,i,s),r=mxUtils.getRotatedPoint(r,t,i,s),l=mxUtils.getRotatedPoint(l,t,i,s);(t=new mxRectangle(o.x,o.y,0,0)).add(new mxRectangle(a.x,a.y,0,0)),t.add(new mxRectangle(r.x,r.y,0,0)),t.add(new mxRectangle(l.x,l.y,0,0))}return t},getRotatedPoint:function(e,n,t,a){a=null!=a?a:new mxPoint;var i=e.x-a.x;return new mxPoint(i*n-(e=e.y-a.y)*t+a.x,e*n+i*t+a.y)},getPortConstraints:function(e,n,t,a){return null==(e=mxUtils.getValue(e.style,mxConstants.STYLE_PORT_CONSTRAINT,null))?a:(a=e.toString(),e=mxConstants.DIRECTION_MASK_NONE,0<=a.indexOf(mxConstants.DIRECTION_NORTH)&&(e|=mxConstants.DIRECTION_MASK_NORTH),0<=a.indexOf(mxConstants.DIRECTION_WEST)&&(e|=mxConstants.DIRECTION_MASK_WEST),0<=a.indexOf(mxConstants.DIRECTION_SOUTH)&&(e|=mxConstants.DIRECTION_MASK_SOUTH),0<=a.indexOf(mxConstants.DIRECTION_EAST)&&(e|=mxConstants.DIRECTION_MASK_EAST),e)},reversePortConstraints:function(e){return(e&mxConstants.DIRECTION_MASK_WEST)<<3|(e&mxConstants.DIRECTION_MASK_NORTH)<<1|(e&mxConstants.DIRECTION_MASK_SOUTH)>>1|(e&mxConstants.DIRECTION_MASK_EAST)>>3},findNearestSegment:function(e,n,t){var a=-1;if(0<e.absolutePoints.length)for(var i=e.absolutePoints[0],s=null,o=1;o<e.absolutePoints.length;o++){var r=e.absolutePoints[o];i=mxUtils.ptSegDistSq(i.x,i.y,r.x,r.y,n,t);(null==s||i<s)&&(s=i,a=o-1),i=r}return a},rectangleIntersectsSegment:function(e,n,t){var a=e.y,i=e.x,s=a+e.height,o=i+e.width;e=n.x;var r=t.x;if(n.x>t.x&&(e=t.x,r=n.x),o<r&&(r=o),e<i&&(e=i),r<e)return!1;i=n.y,o=t.y;var l=t.x-n.x;return 1e-7<Math.abs(l)&&(i=(t=(t.y-n.y)/l)*e+(n=n.y-t*n.x),o=t*r+n),o<i&&(n=o,o=i,i=n),s<o&&(o=s),i<a&&(i=a),!(o<i)},contains:function(e,n,t){return e.x<=n&&e.x+e.width>=n&&e.y<=t&&e.y+e.height>=t},intersects:function(e,n){var t=e.width,a=e.height,i=n.width,s=n.height;if(i<=0||s<=0||t<=0||a<=0)return!1;var o=e.x,r=e.y,l=n.x,d=n.y;s+=d,t+=o,a+=r;return((i=i+l)<l||o<i)&&(s<d||r<s)&&(t<o||l<t)&&(a<r||d<a)},intersectsHotspot:function(e,n,t,a,i,s){if(i=null!=i?i:0,s=null!=s?s:0,0<(a=null!=a?a:1)){var o=e.getCenterX(),r=e.getCenterY(),l=e.width,d=e.height,c=mxUtils.getValue(e.style,mxConstants.STYLE_STARTSIZE)*e.view.scale;return 0<c&&(mxUtils.getValue(e.style,mxConstants.STYLE_HORIZONTAL,!0)?(r=e.y+c/2,d=c):(o=e.x+c/2,l=c)),l=Math.max(i,l*a),d=Math.max(i,d*a),0<s&&(l=Math.min(l,s),d=Math.min(d,s)),a=new mxRectangle(o-l/2,r-d/2,l,d),0!=(o=mxUtils.toRadians(mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION)||0))&&(i=Math.cos(-o),s=Math.sin(-o),o=new mxPoint(e.getCenterX(),e.getCenterY()),n=(e=mxUtils.getRotatedPoint(new mxPoint(n,t),i,s,o)).x,t=e.y),mxUtils.contains(a,n,t)}return!0},getOffset:function(e,n){var t=0,a=0;if(null!=n&&n){var i=document.body,s=document.documentElement;t=t+(i.scrollLeft||s.scrollLeft),a=a+(i.scrollTop||s.scrollTop)}for(;e.offsetParent;)t+=e.offsetLeft,a+=e.offsetTop,e=e.offsetParent;return new mxPoint(t,a)},getScrollOrigin:function(e){for(var n=document.body,t=document.documentElement,a=new mxPoint(n.scrollLeft||t.scrollLeft,n.scrollTop||t.scrollTop);null!=e&&e!=n&&e!=t;)!isNaN(e.scrollLeft)&&!isNaN(e.scrollTop)&&(a.x+=e.scrollLeft,a.y+=e.scrollTop),e=e.parentNode;return a},convertPoint:function(e,n,t){var a=mxUtils.getScrollOrigin(e);return(e=mxUtils.getOffset(e)).x-=a.x,e.y-=a.y,new mxPoint(n-e.x,t-e.y)},ltrim:function(e,n){return e.replace(RegExp("^["+(n||"\\s")+"]+","g"),"")},rtrim:function(e,n){return e.replace(RegExp("["+(n||"\\s")+"]+$","g"),"")},trim:function(e,n){return mxUtils.ltrim(mxUtils.rtrim(e,n),n)},isNumeric:function(e){return null!=e&&(null==e.length||0<e.length&&e.indexOf("0x")<0&&e.indexOf("0X")<0)&&!isNaN(e)},mod:function(e,n){return(e%n+n)%n},intersection:function(e,n,t,a,i,s,o,r){var l=(r-s)*(t-e)-(o-i)*(a-n);return o=((o-i)*(n-s)-(r-s)*(e-i))/l,i=((t-e)*(n-s)-(a-n)*(e-i))/l,0<=o&&o<=1&&0<=i&&i<=1?new mxPoint(e+o*(t-e),n+o*(a-n)):null},ptSegDistSq:function(e,n,t,a,i,s){return t=(i-=e)*(t-=e)+(s-=n)*(a-=n)<=0?0:(e=(i=t-i)*t+(s=a-s)*a)<=0?0:e*e/(t*t+a*a),(i=i*i+s*s-t)<0&&(i=0),i},relativeCcw:function(e,n,t,a,i,s){return 0==(e=(i-=e)*(a-=n)-(s-=n)*(t-=e))&&(0<(e=i*t+s*a)&&((e=(i-t)*t+(s-a)*a)<0&&(e=0))),e<0?-1:0<e?1:0},animateChanges:function(e,n){mxEffects.animateChanges.apply(this,arguments)},cascadeOpacity:function(e,n,t){mxEffects.cascadeOpacity.apply(this,arguments)},fadeOut:function(e,n,t,a,i,s){mxEffects.fadeOut.apply(this,arguments)},setOpacity:function(e,n){mxUtils.isVml(e)?e.style.filter=100<=n?null:"alpha(opacity="+n/5+")":mxClient.IS_IE&&(void 0===document.documentMode||document.documentMode<9)?e.style.filter=100<=n?null:"alpha(opacity="+n+")":e.style.opacity=n/100},createImage:function(e){var n=null;return mxClient.IS_IE6&&"CSS1Compat"!=document.compatMode?((n=document.createElement(mxClient.VML_PREFIX+":image")).setAttribute("src",e),n.style.borderStyle="none"):((n=document.createElement("img")).setAttribute("src",e),n.setAttribute("border","0")),n},sortCells:function(e,i){i=null==i||i;var s=new mxDictionary;return e.sort(function(e,n){var t=s.get(e);null==t&&(t=mxCellPath.create(e).split(mxCellPath.PATH_SEPARATOR),s.put(e,t));var a=s.get(n);return null==a&&(a=mxCellPath.create(n).split(mxCellPath.PATH_SEPARATOR),s.put(n,a)),0==(t=mxCellPath.compare(t,a))?0:0<t==i?1:-1}),e},getStylename:function(e){return null!=e&&(e=e.split(";")[0]).indexOf("=")<0?e:""},getStylenames:function(e){var n=[];if(null!=e){e=e.split(";");for(var t=0;t<e.length;t++)e[t].indexOf("=")<0&&n.push(e[t])}return n},indexOfStylename:function(e,n){if(null!=e&&null!=n)for(var t=e.split(";"),a=0,i=0;i<t.length;i++){if(t[i]==n)return a;a+=t[i].length+1}return-1},addStylename:function(e,n){return mxUtils.indexOfStylename(e,n)<0&&(null==e?e="":0<e.length&&";"!=e.charAt(e.length-1)&&(e+=";"),e+=n),e},removeStylename:function(e,n){var t=[];if(null!=e)for(var a=e.split(";"),i=0;i<a.length;i++)a[i]!=n&&t.push(a[i]);return t.join(";")},removeAllStylenames:function(e){var n=[];if(null!=e){e=e.split(";");for(var t=0;t<e.length;t++)0<=e[t].indexOf("=")&&n.push(e[t])}return n.join(";")},setCellStyles:function(e,n,t,a){if(null!=n&&0<n.length){e.beginUpdate();try{for(var i=0;i<n.length;i++)if(null!=n[i]){var s=mxUtils.setStyle(e.getStyle(n[i]),t,a);e.setStyle(n[i],s)}}finally{e.endUpdate()}}},setStyle:function(e,n,t){var a=null!=t&&(void 0===t.length||0<t.length);if(null==e||0==e.length)a&&(e=n+"="+t);else{var i=e.indexOf(n+"=");i<0?a&&(a=";"==e.charAt(e.length-1)?"":";",e=e+a+n+"="+t):(n=a?n+"="+t:"",t=e.indexOf(";",i),a||t++,e=e.substring(0,i)+n+(i<t?e.substring(t):""))}return e},setCellStyleFlags:function(e,n,t,a,i){if(null!=n&&0<n.length){e.beginUpdate();try{for(var s=0;s<n.length;s++)if(null!=n[s]){var o=mxUtils.setStyleFlag(e.getStyle(n[s]),t,a,i);e.setStyle(n[s],o)}}finally{e.endUpdate()}}},setStyleFlag:function(e,n,t,a){if(null==e||0==e.length)e=a||null==a?n+"="+t:n+"=0";else{var i=e.indexOf(n+"=");if(i<0)i=";"==e.charAt(e.length-1)?"":";",e=a||null==a?e+i+n+"="+t:e+i+n+"=0";else{var s=e.indexOf(";",i),o="";o=s<0?e.substring(i+n.length+1):e.substring(i+n.length+1,s),o=null==a?parseInt(o)^t:a?parseInt(o)|t:parseInt(o)&~t;e=e.substring(0,i)+n+"="+o+(0<=s?e.substring(s):"")}}return e},getAlignmentAsPoint:function(e,n){var t=0,a=0;return e==mxConstants.ALIGN_CENTER?t=-.5:e==mxConstants.ALIGN_RIGHT&&(t=-1),n==mxConstants.ALIGN_MIDDLE?a=-.5:n==mxConstants.ALIGN_BOTTOM&&(a=-1),new mxPoint(t,a)},getSizeForString:function(e,n,t){n=null!=n?n:mxConstants.DEFAULT_FONTSIZE,t=null!=t?t:mxConstants.DEFAULT_FONTFAMILY;var a=document.createElement("div");return a.style.fontFamily=t,a.style.fontSize=Math.round(n)+"px",a.style.lineHeight=Math.round(n*mxConstants.LINE_HEIGHT)+"px",a.style.position="absolute",a.style.whiteSpace="nowrap",a.style.visibility="hidden",a.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",a.style.zoom="1",a.innerHTML=e,document.body.appendChild(a),e=new mxRectangle(0,0,a.offsetWidth,a.offsetHeight),document.body.removeChild(a),e},getViewXml:function(e,n,t,a,i){a=null!=a?a:0,i=null!=i?i:0,n=null!=n?n:1,null==t&&(t=[e.getModel().getRoot()]);var s=e.getView(),o=null,r=s.isEventsEnabled();s.setEventsEnabled(!1);var l=s.drawPane,d=s.overlayPane;e.dialect==mxConstants.DIALECT_SVG?(s.drawPane=document.createElementNS(mxConstants.NS_SVG,"g"),s.canvas.appendChild(s.drawPane),s.overlayPane=document.createElementNS(mxConstants.NS_SVG,"g")):(s.drawPane=s.drawPane.cloneNode(!1),s.canvas.appendChild(s.drawPane),s.overlayPane=s.overlayPane.cloneNode(!1)),s.canvas.appendChild(s.overlayPane);var c=s.getTranslate();s.translate=new mxPoint(a,i),n=new mxTemporaryCellStates(e.getView(),n,t);try{o=(new mxCodec).encode(e.getView())}finally{n.destroy(),s.translate=c,s.canvas.removeChild(s.drawPane),s.canvas.removeChild(s.overlayPane),s.drawPane=l,s.overlayPane=d,s.setEventsEnabled(r)}return o},getScaleForPageCount:function(e,n,t,a){if(e<1)return 1;a=null!=a?a:0;var i=(t=null!=t?t:mxConstants.PAGE_FORMAT_A4_PORTRAIT).width-2*a;t=t.height-2*a,a=n.getGraphBounds().clone(),n=n.getView().getScale(),a.width/=n,a.height/=n,t=(n=a.width)/a.height/(i/t),a=Math.sqrt(e);var s=Math.sqrt(t);if(t=a*s,a/=s,t<1&&e<a){var o=a/e;a=e,t/=o}for(a<1&&e<t&&(o=t/e,t=e,a/=o),o=Math.ceil(t)*Math.ceil(a),s=0;e<o;){o=Math.floor(t)/t;var r=Math.floor(a)/a;if(1==o&&(o=Math.floor(t-1)/t),1==r&&(r=Math.floor(a-1)/a),t*=o=r<o?o:r,a*=o,o=Math.ceil(t)*Math.ceil(a),10<++s)break}return i*t/n*.99999},show:function(e,n,t,a){if(t=null!=t?t:0,a=null!=a?a:0,null==n?n=window.open().document:n.open(),t=-(i=e.getGraphBounds()).x+t,a=-i.y+a,mxClient.IS_IE){for(var i="<html><head>",s=document.getElementsByTagName("base"),o=0;o<s.length;o++)i+=s[o].outerHTML;for(i+="<style>",o=0;o<document.styleSheets.length;o++)try{i+=document.styleSheets(o).cssText}catch(e){}i+="</style></head>",i+="<body>",i+=e.container.innerHTML,i+="</body>",i+="<html>",n.writeln(i),n.close(),null!=(e=n.body.getElementsByTagName("DIV")[0])&&(e.style.position="absolute",e.style.left=t+"px",e.style.top=a+"px")}else{for(n.writeln("<html"),n.writeln("<head>"),s=document.getElementsByTagName("base"),o=0;o<s.length;o++)n.writeln(mxUtils.getOuterHtml(s[o]));for(s=document.getElementsByTagName("link"),o=0;o<s.length;o++)n.writeln(mxUtils.getOuterHtml(s[o]));for(s=document.getElementsByTagName("style"),o=0;o<s.length;o++)n.writeln(mxUtils.getOuterHtml(s[o]));for(n.writeln("</head>"),n.writeln("</html>"),n.close(),null==n.body&&n.documentElement.appendChild(n.createElement("body")),n.body.style.overflow="auto",e=e.container.firstChild;null!=e;)o=e.cloneNode(!0),n.body.appendChild(o),e=e.nextSibling;null!=(e=n.getElementsByTagName("g")[0])&&(e.setAttribute("transform","translate("+t+","+a+")"),(t=e.ownerSVGElement).setAttribute("width",i.width+Math.max(i.x,0)+3),t.setAttribute("height",i.height+Math.max(i.y,0)+3))}return mxUtils.removeCursors(n.body),n},printScreen:function(e){var n=window.open();mxUtils.show(e,n.document),e=function(){n.focus(),n.print(),n.close()},mxClient.IS_GC?n.setTimeout(e,500):e()},popup:function(e,n){if(n){var t=document.createElement("div");t.style.overflow="scroll",t.style.width="636px",t.style.height="460px";var a=document.createElement("pre");a.innerHTML=mxUtils.htmlEntities(e,!1).replace(/\n/g,"<br>").replace(/ /g," "),t.appendChild(a),(t=new mxWindow("Popup Window",t,document.body.clientWidth/2-320,(document.body.clientHeight||document.documentElement.clientHeight)/2-240,640,480,!1,!0)).setClosable(!0),t.setVisible(!0)}else mxClient.IS_NS?((t=window.open()).document.writeln("<pre>"+mxUtils.htmlEntities(e)+"</pre"),t.document.close()):((a=(t=window.open()).document.createElement("pre")).innerHTML=mxUtils.htmlEntities(e,!1).replace(/\n/g,"<br>").replace(/ /g," "),t.document.body.appendChild(a))},alert:function(e){alert(e)},prompt:function(e,n){return prompt(e,n)},confirm:function(e){return confirm(e)},error:function(e,n,t,a){var i=document.createElement("div");i.style.padding="20px";var s=document.createElement("img");s.setAttribute("src",a||mxUtils.errorImage),s.setAttribute("valign","bottom"),s.style.verticalAlign="middle",i.appendChild(s),i.appendChild(document.createTextNode(" ")),i.appendChild(document.createTextNode(" ")),i.appendChild(document.createTextNode(" ")),mxUtils.write(i,e),e=document.body.clientWidth,a=document.body.clientHeight||document.documentElement.clientHeight;var o=new mxWindow(mxResources.get(mxUtils.errorResource)||mxUtils.errorResource,i,(e-n)/2,a/4,n,null,!1,!0);return t&&(mxUtils.br(i),n=document.createElement("p"),t=document.createElement("button"),mxClient.IS_IE?t.style.cssText="float:right":t.setAttribute("style","float:right"),mxEvent.addListener(t,"click",function(e){o.destroy()}),mxUtils.write(t,mxResources.get(mxUtils.closeResource)||mxUtils.closeResource),n.appendChild(t),i.appendChild(n),mxUtils.br(i),o.setClosable(!0)),o.setVisible(!0),o},makeDraggable:function(e,n,t,i,a,s,o,r,l,d){return(e=new mxDragSource(e,t)).dragOffset=new mxPoint(null!=a?a:0,null!=s?s:mxConstants.TOOLTIP_VERTICAL_OFFSET),e.autoscroll=o,e.setGuidesEnabled(!1),null!=l&&(e.highlightDropTargets=l),null!=d&&(e.getDropTarget=d),e.getGraphForEvent=function(e){return"function"==typeof n?n(e):n},null!=i&&(e.createDragElement=function(){return i.cloneNode(!0)},r&&(e.createPreviewElement=function(e){var n=i.cloneNode(!0),t=parseInt(n.style.width),a=parseInt(n.style.height);return n.style.width=Math.round(t*e.view.scale)+"px",n.style.height=Math.round(a*e.view.scale)+"px",n})),e}},mxConstants={DEFAULT_HOTSPOT:.3,MIN_HOTSPOT_SIZE:8,MAX_HOTSPOT_SIZE:0,RENDERING_HINT_EXACT:"exact",RENDERING_HINT_FASTER:"faster",RENDERING_HINT_FASTEST:"fastest",DIALECT_SVG:"svg",DIALECT_VML:"vml",DIALECT_MIXEDHTML:"mixedHtml",DIALECT_PREFERHTML:"preferHtml",DIALECT_STRICTHTML:"strictHtml",NS_SVG:"http://www.w3.org/2000/svg",NS_XHTML:"http://www.w3.org/1999/xhtml",NS_XLINK:"http://www.w3.org/1999/xlink",SHADOWCOLOR:"gray",SHADOW_OFFSET_X:2,SHADOW_OFFSET_Y:3,SHADOW_OPACITY:1,NODETYPE_ELEMENT:1,NODETYPE_ATTRIBUTE:2,NODETYPE_TEXT:3,NODETYPE_CDATA:4,NODETYPE_ENTITY_REFERENCE:5,NODETYPE_ENTITY:6,NODETYPE_PROCESSING_INSTRUCTION:7,NODETYPE_COMMENT:8,NODETYPE_DOCUMENT:9,NODETYPE_DOCUMENTTYPE:10,NODETYPE_DOCUMENT_FRAGMENT:11,NODETYPE_NOTATION:12,TOOLTIP_VERTICAL_OFFSET:16,DEFAULT_VALID_COLOR:"#00FF00",DEFAULT_INVALID_COLOR:"#FF0000",HIGHLIGHT_STROKEWIDTH:3,CURSOR_MOVABLE_VERTEX:"move",CURSOR_MOVABLE_EDGE:"move",CURSOR_LABEL_HANDLE:"default",CURSOR_BEND_HANDLE:"pointer",CURSOR_CONNECT:"pointer",HIGHLIGHT_COLOR:"#00FF00",CONNECT_TARGET_COLOR:"#0000FF",INVALID_CONNECT_TARGET_COLOR:"#FF0000",DROP_TARGET_COLOR:"#0000FF",VALID_COLOR:"#00FF00",INVALID_COLOR:"#FF0000",EDGE_SELECTION_COLOR:"#00FF00",VERTEX_SELECTION_COLOR:"#00FF00",VERTEX_SELECTION_STROKEWIDTH:1,EDGE_SELECTION_STROKEWIDTH:1,VERTEX_SELECTION_DASHED:!0,EDGE_SELECTION_DASHED:!0,GUIDE_COLOR:"#FF0000",GUIDE_STROKEWIDTH:1,OUTLINE_COLOR:"#0099FF",OUTLINE_STROKEWIDTH:mxClient.IS_IE?2:3,HANDLE_SIZE:7,LABEL_HANDLE_SIZE:4,HANDLE_FILLCOLOR:"#00FF00",HANDLE_STROKECOLOR:"black",LABEL_HANDLE_FILLCOLOR:"yellow",CONNECT_HANDLE_FILLCOLOR:"#0000FF",LOCKED_HANDLE_FILLCOLOR:"#FF0000",OUTLINE_HANDLE_FILLCOLOR:"#00FFFF",OUTLINE_HANDLE_STROKECOLOR:"#0033FF",DEFAULT_FONTFAMILY:"Arial,Helvetica",DEFAULT_FONTSIZE:11,LINE_HEIGHT:1.2,DEFAULT_FONTSTYLE:0,DEFAULT_STARTSIZE:40,DEFAULT_MARKERSIZE:6,DEFAULT_IMAGESIZE:24,ENTITY_SEGMENT:30,RECTANGLE_ROUNDING_FACTOR:.15,LINE_ARCSIZE:20,ARROW_SPACING:10,ARROW_WIDTH:30,ARROW_SIZE:30,PAGE_FORMAT_A4_PORTRAIT:new mxRectangle(0,0,826,1169),PAGE_FORMAT_A4_LANDSCAPE:new mxRectangle(0,0,1169,826),PAGE_FORMAT_LETTER_PORTRAIT:new mxRectangle(0,0,850,1100),PAGE_FORMAT_LETTER_LANDSCAPE:new mxRectangle(0,0,1100,850),NONE:"none",STYLE_PERIMETER:"perimeter",STYLE_SOURCE_PORT:"sourcePort",STYLE_TARGET_PORT:"targetPort",STYLE_PORT_CONSTRAINT:"portConstraint",STYLE_OPACITY:"opacity",STYLE_TEXT_OPACITY:"textOpacity",STYLE_OVERFLOW:"overflow",STYLE_ORTHOGONAL:"orthogonal",STYLE_EXIT_X:"exitX",STYLE_EXIT_Y:"exitY",STYLE_EXIT_PERIMETER:"exitPerimeter",STYLE_ENTRY_X:"entryX",STYLE_ENTRY_Y:"entryY",STYLE_ENTRY_PERIMETER:"entryPerimeter",STYLE_WHITE_SPACE:"whiteSpace",STYLE_ROTATION:"rotation",STYLE_FILLCOLOR:"fillColor",STYLE_SWIMLANE_FILLCOLOR:"swimlaneFillColor",STYLE_GRADIENTCOLOR:"gradientColor",STYLE_GRADIENT_DIRECTION:"gradientDirection",STYLE_STROKECOLOR:"strokeColor",STYLE_SEPARATORCOLOR:"separatorColor",STYLE_STROKEWIDTH:"strokeWidth",STYLE_ALIGN:"align",STYLE_VERTICAL_ALIGN:"verticalAlign",STYLE_LABEL_POSITION:"labelPosition",STYLE_VERTICAL_LABEL_POSITION:"verticalLabelPosition",STYLE_IMAGE_ASPECT:"imageAspect",STYLE_IMAGE_ALIGN:"imageAlign",STYLE_IMAGE_VERTICAL_ALIGN:"imageVerticalAlign",STYLE_GLASS:"glass",STYLE_IMAGE:"image",STYLE_IMAGE_WIDTH:"imageWidth",STYLE_IMAGE_HEIGHT:"imageHeight",STYLE_IMAGE_BACKGROUND:"imageBackground",STYLE_IMAGE_BORDER:"imageBorder",STYLE_FLIPH:"flipH",STYLE_FLIPV:"flipV",STYLE_NOLABEL:"noLabel",STYLE_NOEDGESTYLE:"noEdgeStyle",STYLE_LABEL_BACKGROUNDCOLOR:"labelBackgroundColor",STYLE_LABEL_BORDERCOLOR:"labelBorderColor",STYLE_LABEL_PADDING:"labelPadding",STYLE_INDICATOR_SHAPE:"indicatorShape",STYLE_INDICATOR_IMAGE:"indicatorImage",STYLE_INDICATOR_COLOR:"indicatorColor",STYLE_INDICATOR_STROKECOLOR:"indicatorStrokeColor",STYLE_INDICATOR_GRADIENTCOLOR:"indicatorGradientColor",STYLE_INDICATOR_SPACING:"indicatorSpacing",STYLE_INDICATOR_WIDTH:"indicatorWidth",STYLE_INDICATOR_HEIGHT:"indicatorHeight",STYLE_INDICATOR_DIRECTION:"indicatorDirection",STYLE_SHADOW:"shadow",STYLE_SEGMENT:"segment",STYLE_ENDARROW:"endArrow",STYLE_STARTARROW:"startArrow",STYLE_ENDSIZE:"endSize",STYLE_STARTSIZE:"startSize",STYLE_SWIMLANE_LINE:"swimlaneLine",STYLE_ENDFILL:"endFill",STYLE_STARTFILL:"startFill",STYLE_DASHED:"dashed",STYLE_DASH_PATTERN:"dashPattern",STYLE_ROUNDED:"rounded",STYLE_CURVED:"curved",STYLE_ARCSIZE:"arcSize",STYLE_SMOOTH:"smooth",STYLE_SOURCE_PERIMETER_SPACING:"sourcePerimeterSpacing",STYLE_TARGET_PERIMETER_SPACING:"targetPerimeterSpacing",STYLE_PERIMETER_SPACING:"perimeterSpacing",STYLE_SPACING:"spacing",STYLE_SPACING_TOP:"spacingTop",STYLE_SPACING_LEFT:"spacingLeft",STYLE_SPACING_BOTTOM:"spacingBottom",STYLE_SPACING_RIGHT:"spacingRight",STYLE_HORIZONTAL:"horizontal",STYLE_DIRECTION:"direction",STYLE_ELBOW:"elbow",STYLE_FONTCOLOR:"fontColor",STYLE_FONTFAMILY:"fontFamily",STYLE_FONTSIZE:"fontSize",STYLE_FONTSTYLE:"fontStyle",STYLE_AUTOSIZE:"autosize",STYLE_FOLDABLE:"foldable",STYLE_EDITABLE:"editable",STYLE_BENDABLE:"bendable",STYLE_MOVABLE:"movable",STYLE_RESIZABLE:"resizable",STYLE_CLONEABLE:"cloneable",STYLE_DELETABLE:"deletable",STYLE_SHAPE:"shape",STYLE_EDGE:"edgeStyle",STYLE_LOOP:"loopStyle",STYLE_ROUTING_CENTER_X:"routingCenterX",STYLE_ROUTING_CENTER_Y:"routingCenterY",FONT_BOLD:1,FONT_ITALIC:2,FONT_UNDERLINE:4,FONT_SHADOW:8,SHAPE_RECTANGLE:"rectangle",SHAPE_ELLIPSE:"ellipse",SHAPE_DOUBLE_ELLIPSE:"doubleEllipse",SHAPE_RHOMBUS:"rhombus",SHAPE_LINE:"line",SHAPE_IMAGE:"image",SHAPE_ARROW:"arrow",SHAPE_LABEL:"label",SHAPE_CYLINDER:"cylinder",SHAPE_SWIMLANE:"swimlane",SHAPE_CONNECTOR:"connector",SHAPE_ACTOR:"actor",SHAPE_CLOUD:"cloud",SHAPE_TRIANGLE:"triangle",SHAPE_HEXAGON:"hexagon",ARROW_CLASSIC:"classic",ARROW_BLOCK:"block",ARROW_OPEN:"open",ARROW_OVAL:"oval",ARROW_DIAMOND:"diamond",ARROW_DIAMOND_THIN:"diamondThin",ALIGN_LEFT:"left",ALIGN_CENTER:"center",ALIGN_RIGHT:"right",ALIGN_TOP:"top",ALIGN_MIDDLE:"middle",ALIGN_BOTTOM:"bottom",DIRECTION_NORTH:"north",DIRECTION_SOUTH:"south",DIRECTION_EAST:"east",DIRECTION_WEST:"west",DIRECTION_MASK_NONE:0,DIRECTION_MASK_WEST:1,DIRECTION_MASK_NORTH:2,DIRECTION_MASK_SOUTH:4,DIRECTION_MASK_EAST:8,DIRECTION_MASK_ALL:15,ELBOW_VERTICAL:"vertical",ELBOW_HORIZONTAL:"horizontal",EDGESTYLE_ELBOW:"elbowEdgeStyle",EDGESTYLE_ENTITY_RELATION:"entityRelationEdgeStyle",EDGESTYLE_LOOP:"loopEdgeStyle",EDGESTYLE_SIDETOSIDE:"sideToSideEdgeStyle",EDGESTYLE_TOPTOBOTTOM:"topToBottomEdgeStyle",EDGESTYLE_ORTHOGONAL:"orthogonalEdgeStyle",EDGESTYLE_SEGMENT:"segmentEdgeStyle",PERIMETER_ELLIPSE:"ellipsePerimeter",PERIMETER_RECTANGLE:"rectanglePerimeter",PERIMETER_RHOMBUS:"rhombusPerimeter",PERIMETER_TRIANGLE:"trianglePerimeter"};function mxEventObject(e){this.name=e,this.properties=[];for(var n=1;n<arguments.length;n+=2)null!=arguments[n+1]&&(this.properties[arguments[n]]=arguments[n+1])}function mxMouseEvent(e,n){this.evt=e,this.state=n}function mxEventSource(e){this.setEventSource(e)}mxEventObject.prototype.name=null,mxEventObject.prototype.properties=null,mxEventObject.prototype.consumed=!1,mxEventObject.prototype.getName=function(){return this.name},mxEventObject.prototype.getProperties=function(){return this.properties},mxEventObject.prototype.getProperty=function(e){return this.properties[e]},mxEventObject.prototype.isConsumed=function(){return this.consumed},mxEventObject.prototype.consume=function(){this.consumed=!0},mxMouseEvent.prototype.consumed=!1,mxMouseEvent.prototype.evt=null,mxMouseEvent.prototype.graphX=null,mxMouseEvent.prototype.graphY=null,mxMouseEvent.prototype.state=null,mxMouseEvent.prototype.getEvent=function(){return this.evt},mxMouseEvent.prototype.getSource=function(){return mxEvent.getSource(this.evt)},mxMouseEvent.prototype.isSource=function(e){if(null!=e)for(var n=this.getSource();null!=n;){if(n==e.node)return!0;n=n.parentNode}return!1},mxMouseEvent.prototype.getX=function(){return mxEvent.getClientX(this.getEvent())},mxMouseEvent.prototype.getY=function(){return mxEvent.getClientY(this.getEvent())},mxMouseEvent.prototype.getGraphX=function(){return this.graphX},mxMouseEvent.prototype.getGraphY=function(){return this.graphY},mxMouseEvent.prototype.getState=function(){return this.state},mxMouseEvent.prototype.getCell=function(){var e=this.getState();return null!=e?e.cell:null},mxMouseEvent.prototype.isPopupTrigger=function(){return mxEvent.isPopupTrigger(this.getEvent())},mxMouseEvent.prototype.isConsumed=function(){return this.consumed},mxMouseEvent.prototype.consume=function(e){(null==e||e)&&this.evt.preventDefault&&this.evt.preventDefault(),this.evt.returnValue=!1,this.consumed=!0},mxEventSource.prototype.eventListeners=null,mxEventSource.prototype.eventsEnabled=!0,mxEventSource.prototype.eventSource=null,mxEventSource.prototype.isEventsEnabled=function(){return this.eventsEnabled},mxEventSource.prototype.setEventsEnabled=function(e){this.eventsEnabled=e},mxEventSource.prototype.getEventSource=function(){return this.eventSource},mxEventSource.prototype.setEventSource=function(e){this.eventSource=e},mxEventSource.prototype.addListener=function(e,n){null==this.eventListeners&&(this.eventListeners=[]),this.eventListeners.push(e),this.eventListeners.push(n)},mxEventSource.prototype.removeListener=function(e){if(null!=this.eventListeners)for(var n=0;n<this.eventListeners.length;)this.eventListeners[n+1]==e?this.eventListeners.splice(n,2):n+=2},mxEventSource.prototype.fireEvent=function(e,n){if(null!=this.eventListeners&&this.isEventsEnabled()){null==e&&(e=new mxEventObject),null==n&&(n=this.getEventSource()),null==n&&(n=this);for(var t=[n,e],a=0;a<this.eventListeners.length;a+=2){var i=this.eventListeners[a];(null==i||i==e.getName())&&this.eventListeners[a+1].apply(this,t)}}};var mxEvent={objects:[],addListener:function(){var a=function(e,n,t){null==e.mxListenerList&&(e.mxListenerList=[],mxEvent.objects.push(e)),e.mxListenerList.push({name:n,f:t})};return window.addEventListener?function(e,n,t){e.addEventListener(n,t,!1),a(e,n,t)}:function(e,n,t){e.attachEvent("on"+n,t),a(e,n,t)}}(),removeListener:function(){var a=function(e,n,t){if(null!=e.mxListenerList){n=e.mxListenerList.length;for(var a=0;a<n;a++)if(e.mxListenerList[a].f==t){e.mxListenerList.splice(a,1);break}0==e.mxListenerList.length&&(e.mxListenerList=null)}};return window.removeEventListener?function(e,n,t){e.removeEventListener(n,t,!1),a(e,n,t)}:function(e,n,t){e.detachEvent("on"+n,t),a(e,n,t)}}(),removeAllListeners:function(e){var n=e.mxListenerList;if(null!=n)for(;0<n.length;){var t=n[0];mxEvent.removeListener(e,t.name,t.f)}},addGestureListeners:function(e,n,t,a){null!=n&&mxEvent.addListener(e,"mousedown",n),null!=t&&mxEvent.addListener(e,"mousemove",t),null!=a&&mxEvent.addListener(e,"mouseup",a),mxClient.IS_TOUCH&&(null!=n&&mxEvent.addListener(e,"touchstart",n),null!=t&&mxEvent.addListener(e,"touchmove",t),null!=a&&mxEvent.addListener(e,"touchend",a))},removeGestureListeners:function(e,n,t,a){null!=n&&mxEvent.removeListener(e,"mousedown",n),null!=t&&mxEvent.removeListener(e,"mousemove",t),null!=a&&mxEvent.removeListener(e,"mouseup",a),mxClient.IS_TOUCH&&(null!=n&&mxEvent.removeListener(e,"touchstart",n),null!=t&&mxEvent.removeListener(e,"touchmove",t),null!=a&&mxEvent.removeListener(e,"touchend",a))},redirectMouseEvents:function(e,t,n,a,i,s,o){var r=function(e){return"function"==typeof n?n(e):n};mxEvent.addGestureListeners(e,function(e){null!=a?a(e):mxEvent.isConsumed(e)||t.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e,r(e)))},function(e){null!=i?i(e):mxEvent.isConsumed(e)||t.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,r(e)))},function(e){null!=s?s(e):mxEvent.isConsumed(e)||t.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e,r(e)))}),mxEvent.addListener(e,"dblclick",function(e){if(null!=o)o(e);else if(!mxEvent.isConsumed(e)){var n=r(e);t.dblClick(e,null!=n?n.cell:null)}})},release:function(e){if(null!=e&&(mxEvent.removeAllListeners(e),null!=(e=e.childNodes)))for(var n=e.length,t=0;t<n;t+=1)mxEvent.release(e[t])},addMouseWheelListener:function(t){if(null!=t){var e=function(e){null==e&&(e=window.event);var n=0;0!=(n=!mxClient.IS_NS||mxClient.IS_SF||mxClient.IS_GC?e.wheelDelta/120:-e.detail/2)&&t(e,0<n)};mxClient.IS_NS?mxEvent.addListener(window,mxClient.IS_SF||mxClient.IS_GC?"mousewheel":"DOMMouseScroll",e):mxEvent.addListener(document,"mousewheel",e)}},disableContextMenu:mxClient.IS_IE&&(void 0===document.documentMode||document.documentMode<9)?function(e){mxEvent.addListener(e,"contextmenu",function(){return!1})}:function(e){e.setAttribute("oncontextmenu","return false;")},getSource:function(e){return null!=e.srcElement?e.srcElement:e.target},isConsumed:function(e){return null!=e.isConsumed&&e.isConsumed},isLeftMouseButton:function(e){return e.button==(mxClient.IS_IE&&(void 0===document.documentMode||document.documentMode<9)?1:0)},isRightMouseButton:function(e){return 2==e.button},isPopupTrigger:function(e){return mxEvent.isRightMouseButton(e)||mxEvent.isShiftDown(e)&&!mxEvent.isControlDown(e)},isShiftDown:function(e){return null!=e&&e.shiftKey},isAltDown:function(e){return null!=e&&e.altKey},isControlDown:function(e){return null!=e&&e.ctrlKey},isMetaDown:function(e){return null!=e&&e.metaKey},getMainEvent:function(e){return"touchstart"!=e.type&&"touchmove"!=e.type||null==e.touches||null==e.touches[0]?"touchend"==e.type&&null!=e.changedTouches&&null!=e.changedTouches[0]&&(e=e.changedTouches[0]):e=e.touches[0],e},getClientX:function(e){return mxEvent.getMainEvent(e).clientX},getClientY:function(e){return mxEvent.getMainEvent(e).clientY},consume:function(e,n,t){t=null==t||t,(null==n||n)&&(e.preventDefault?(t&&e.stopPropagation(),e.preventDefault()):t&&(e.cancelBubble=!0)),e.isConsumed=!0,e.returnValue=!1},LABEL_HANDLE:-1,ROTATION_HANDLE:-2,MOUSE_DOWN:"mouseDown",MOUSE_MOVE:"mouseMove",MOUSE_UP:"mouseUp",ACTIVATE:"activate",RESIZE_START:"resizeStart",RESIZE:"resize",RESIZE_END:"resizeEnd",MOVE_START:"moveStart",MOVE:"move",MOVE_END:"moveEnd",PAN_START:"panStart",PAN:"pan",PAN_END:"panEnd",MINIMIZE:"minimize",NORMALIZE:"normalize",MAXIMIZE:"maximize",HIDE:"hide",SHOW:"show",CLOSE:"close",DESTROY:"destroy",REFRESH:"refresh",SIZE:"size",SELECT:"select",FIRED:"fired",GET:"get",RECEIVE:"receive",CONNECT:"connect",DISCONNECT:"disconnect",SUSPEND:"suspend",RESUME:"resume",MARK:"mark",SESSION:"session",ROOT:"root",POST:"post",OPEN:"open",SAVE:"save",BEFORE_ADD_VERTEX:"beforeAddVertex",ADD_VERTEX:"addVertex",AFTER_ADD_VERTEX:"afterAddVertex",DONE:"done",EXECUTE:"execute",EXECUTED:"executed",BEGIN_UPDATE:"beginUpdate",START_EDIT:"startEdit",END_UPDATE:"endUpdate",END_EDIT:"endEdit",BEFORE_UNDO:"beforeUndo",UNDO:"undo",REDO:"redo",CHANGE:"change",NOTIFY:"notify",LAYOUT_CELLS:"layoutCells",CLICK:"click",SCALE:"scale",TRANSLATE:"translate",SCALE_AND_TRANSLATE:"scaleAndTranslate",UP:"up",DOWN:"down",ADD:"add",REMOVE:"remove",CLEAR:"clear",ADD_CELLS:"addCells",CELLS_ADDED:"cellsAdded",MOVE_CELLS:"moveCells",CELLS_MOVED:"cellsMoved",RESIZE_CELLS:"resizeCells",CELLS_RESIZED:"cellsResized",TOGGLE_CELLS:"toggleCells",CELLS_TOGGLED:"cellsToggled",ORDER_CELLS:"orderCells",CELLS_ORDERED:"cellsOrdered",REMOVE_CELLS:"removeCells",CELLS_REMOVED:"cellsRemoved",GROUP_CELLS:"groupCells",UNGROUP_CELLS:"ungroupCells",REMOVE_CELLS_FROM_PARENT:"removeCellsFromParent",FOLD_CELLS:"foldCells",CELLS_FOLDED:"cellsFolded",ALIGN_CELLS:"alignCells",LABEL_CHANGED:"labelChanged",CONNECT_CELL:"connectCell",CELL_CONNECTED:"cellConnected",SPLIT_EDGE:"splitEdge",FLIP_EDGE:"flipEdge",START_EDITING:"startEditing",ADD_OVERLAY:"addOverlay",REMOVE_OVERLAY:"removeOverlay",UPDATE_CELL_SIZE:"updateCellSize",ESCAPE:"escape",CLICK:"click",DOUBLE_CLICK:"doubleClick",START:"start",RESET:"reset"};function mxXmlRequest(e,n,t,a,i,s){this.url=e,this.params=n,this.method=t||"POST",this.async=null==a||a,this.username=i,this.password=s}mxXmlRequest.prototype.url=null,mxXmlRequest.prototype.params=null,mxXmlRequest.prototype.method=null,mxXmlRequest.prototype.async=null,mxXmlRequest.prototype.binary=!1,mxXmlRequest.prototype.username=null,mxXmlRequest.prototype.password=null,mxXmlRequest.prototype.request=null,mxXmlRequest.prototype.isBinary=function(){return this.binary},mxXmlRequest.prototype.setBinary=function(e){this.binary=e},mxXmlRequest.prototype.getText=function(){return this.request.responseText},mxXmlRequest.prototype.isReady=function(){return 4==this.request.readyState},mxXmlRequest.prototype.getDocumentElement=function(){var e=this.getXml();return null!=e?e.documentElement:null},mxXmlRequest.prototype.getXml=function(){var e=this.request.responseXML;return(9<=document.documentMode||null==e||null==e.documentElement)&&(e=mxUtils.parseXml(this.request.responseText)),e},mxXmlRequest.prototype.getText=function(){return this.request.responseText},mxXmlRequest.prototype.getStatus=function(){return this.request.status},mxXmlRequest.prototype.create=window.XMLHttpRequest?function(){var e=new XMLHttpRequest;return this.isBinary()&&e.overrideMimeType&&e.overrideMimeType("text/plain; charset=x-user-defined"),e}:"undefined"!=typeof ActiveXObject?function(){return new ActiveXObject("Microsoft.XMLHTTP")}:void 0,mxXmlRequest.prototype.send=function(e,n){this.request=this.create(),null!=this.request&&(null!=e&&(this.request.onreadystatechange=mxUtils.bind(this,function(){this.isReady()&&(e(this),this.onreadystatechaange=null)})),this.request.open(this.method,this.url,this.async,this.username,this.password),this.setRequestHeaders(this.request,this.params),this.request.send(this.params))},mxXmlRequest.prototype.setRequestHeaders=function(e,n){null!=n&&e.setRequestHeader("Content-Type","application/x-www-form-urlencoded")},mxXmlRequest.prototype.simulate=function(e,n){var t=null;(e=e||document)==document&&(t=window.onbeforeunload,window.onbeforeunload=null);var a=e.createElement("form");a.setAttribute("method",this.method),a.setAttribute("action",this.url),null!=n&&a.setAttribute("target",n),a.style.display="none",a.style.visibility="hidden";for(var i=0<this.params.indexOf("&")?this.params.split("&"):this.params.split(),s=0;s<i.length;s++){if(0<(o=i[s].indexOf("="))){var o,r=i[s].substring(0,o),l=i[s].substring(o+1);(o=e.createElement("textarea")).setAttribute("name",r),l=l.replace(/\n/g,"
"),r=e.createTextNode(l),o.appendChild(r),a.appendChild(o)}}e.body.appendChild(a),a.submit(),e.body.removeChild(a),null!=t&&(window.onbeforeunload=t)};var mxClipboard={STEPSIZE:10,insertCount:1,cells:null,isEmpty:function(){return null==mxClipboard.cells},cut:function(e,n){return n=mxClipboard.copy(e,n),mxClipboard.insertCount=0,mxClipboard.removeCells(e,n),n},removeCells:function(e,n){e.removeCells(n)},copy:function(e,n){n=n||e.getSelectionCells();var t=e.getExportableCells(n);return mxClipboard.insertCount=1,mxClipboard.cells=e.cloneCells(t),t},paste:function(e){if(null!=mxClipboard.cells){var n=e.getImportableCells(mxClipboard.cells),t=mxClipboard.insertCount*mxClipboard.STEPSIZE,a=e.getDefaultParent();n=e.importCells(n,t,t,a);mxClipboard.insertCount++,e.setSelectionCells(n)}}};function mxWindow(e,n,t,a,i,s,o,r,l,d){null!=n&&(o=null==o||o,this.content=n,this.init(t,a,i,s,d),this.installMaximizeHandler(),this.installMinimizeHandler(),this.installCloseHandler(),this.setMinimizable(o),this.setTitle(e),(null==r||r)&&this.installMoveHandler(),null!=l&&null!=l.parentNode?l.parentNode.replaceChild(this.div,l):document.body.appendChild(this.div))}function mxForm(e){this.table=document.createElement("table"),this.table.className=e,this.body=document.createElement("tbody"),this.table.appendChild(this.body)}function mxImage(e,n,t){this.src=e,this.width=n,this.height=t}function mxDivResizer(e,n){if("div"==e.nodeName.toLowerCase()){null==n&&(n=window),this.div=e;var t=mxUtils.getCurrentStyle(e);null!=t&&(this.resizeWidth="auto"==t.width,this.resizeHeight="auto"==t.height),mxEvent.addListener(n,"resize",mxUtils.bind(this,function(e){this.handlingResize||(this.handlingResize=!0,this.resize(),this.handlingResize=!1)})),this.resize()}}function mxDragSource(e,n){this.element=e,this.dropHandler=n,mxEvent.addGestureListeners(e,mxUtils.bind(this,this.mouseDown))}function mxToolbar(e){this.container=e}function mxSession(n,e,t,a){this.model=n,this.urlInit=e,this.urlPoll=t,this.urlNotify=a,null!=n&&(this.codec=new mxCodec,this.codec.lookup=function(e){return n.getCell(e)}),n.addListener(mxEvent.NOTIFY,mxUtils.bind(this,function(e,n){var t=n.getProperty("edit");(null!=t&&this.debug||this.connected&&!this.suspended)&&this.notify("<edit>"+this.encodeChanges(t.changes,t.undone)+"</edit>")}))}function mxUndoableEdit(e,n){this.source=e,this.changes=[],this.significant=null==n||n}function mxUndoManager(e){this.size=null!=e?e:100,this.clear()}mxWindow.prototype=new mxEventSource,mxWindow.prototype.constructor=mxWindow,mxWindow.prototype.closeImage=mxClient.imageBasePath+"/close.gif",mxWindow.prototype.minimizeImage=mxClient.imageBasePath+"/minimize.gif",mxWindow.prototype.normalizeImage=mxClient.imageBasePath+"/normalize.gif",mxWindow.prototype.maximizeImage=mxClient.imageBasePath+"/maximize.gif",mxWindow.prototype.resizeImage=mxClient.imageBasePath+"/resize.gif",mxWindow.prototype.visible=!1,mxWindow.prototype.content=!1,mxWindow.prototype.minimumSize=new mxRectangle(0,0,50,40),mxWindow.prototype.title=!1,mxWindow.prototype.content=!1,mxWindow.prototype.destroyOnClose=!0,mxWindow.prototype.init=function(e,n,t,a,i){i=null!=i?i:"mxWindow",this.div=document.createElement("div"),this.div.className=i,this.div.style.left=e+"px",this.div.style.top=n+"px",this.table=document.createElement("table"),this.table.className=i,null!=t&&(mxClient.IS_IE||(this.div.style.width=t+"px"),this.table.style.width=t+"px"),null!=a&&(mxClient.IS_IE||(this.div.style.height=a+"px"),this.table.style.height=a+"px"),e=document.createElement("tbody"),n=document.createElement("tr"),this.title=document.createElement("td"),this.title.className=i+"Title",n.appendChild(this.title),e.appendChild(n),n=document.createElement("tr"),this.td=document.createElement("td"),this.td.className=i+"Pane",this.contentWrapper=document.createElement("div"),this.contentWrapper.className=i+"Pane",this.contentWrapper.style.width="100%",this.contentWrapper.appendChild(this.content),(mxClient.IS_IE||"DIV"!=this.content.nodeName.toUpperCase())&&(this.contentWrapper.style.height="100%"),this.td.appendChild(this.contentWrapper),n.appendChild(this.td),e.appendChild(n),this.table.appendChild(e),this.div.appendChild(this.table),i=mxUtils.bind(this,function(e){this.activate()}),mxEvent.addListener(this.title,"mousedown",i),mxEvent.addListener(this.table,"mousedown",i),mxClient.IS_TOUCH&&(mxEvent.addListener(this.title,"touchstart",i),mxEvent.addListener(this.table,"touchstart",i)),this.hide()},mxWindow.prototype.setTitle=function(e){for(var n=this.title.firstChild;null!=n;){var t=n.nextSibling;n.nodeType==mxConstants.NODETYPE_TEXT&&n.parentNode.removeChild(n),n=t}mxUtils.write(this.title,e||"")},mxWindow.prototype.setScrollable=function(e){navigator.userAgent.indexOf("Presto/2.5")<0&&(this.contentWrapper.style.overflow=e?"auto":"hidden")},mxWindow.prototype.activate=function(){if(mxWindow.activeWindow!=this){var e=null!=(e=mxUtils.getCurrentStyle(this.getElement()))?e.zIndex:3;if(mxWindow.activeWindow){var n=mxWindow.activeWindow.getElement();null!=n&&null!=n.style&&(n.style.zIndex=e)}n=mxWindow.activeWindow,this.getElement().style.zIndex=parseInt(e)+1,(mxWindow.activeWindow=this).fireEvent(new mxEventObject(mxEvent.ACTIVATE,"previousWindow",n))}},mxWindow.prototype.getElement=function(){return this.div},mxWindow.prototype.fit=function(){mxUtils.fit(this.div)},mxWindow.prototype.isResizable=function(){return null!=this.resize&&"none"!=this.resize.style.display},mxWindow.prototype.setResizable=function(e){e?null==this.resize?(this.resize=document.createElement("img"),this.resize.style.position="absolute",this.resize.style.bottom="2px",this.resize.style.right="2px",this.resize.setAttribute("src",mxClient.imageBasePath+"/resize.gif"),this.resize.style.cursor="nw-resize",mxEvent.addGestureListeners(this.resize,mxUtils.bind(this,function(e){this.activate();var a=mxEvent.getClientX(e),i=mxEvent.getClientY(e),s=this.div.offsetWidth,o=this.div.offsetHeight,n=mxUtils.bind(this,function(e){var n=mxEvent.getClientX(e)-a,t=mxEvent.getClientY(e)-i;this.setSize(s+n,o+t),this.fireEvent(new mxEventObject(mxEvent.RESIZE,"event",e)),mxEvent.consume(e)}),t=mxUtils.bind(this,function(e){mxEvent.removeGestureListeners(document,null,n,t),this.fireEvent(new mxEventObject(mxEvent.RESIZE_END,"event",e)),mxEvent.consume(e)});mxEvent.addGestureListeners(document,null,n,t),this.fireEvent(new mxEventObject(mxEvent.RESIZE_START,"event",e)),mxEvent.consume(e)}),null,null),this.div.appendChild(this.resize)):this.resize.style.display="inline":null!=this.resize&&(this.resize.style.display="none")},mxWindow.prototype.setSize=function(e,n){e=Math.max(this.minimumSize.width,e),n=Math.max(this.minimumSize.height,n),mxClient.IS_IE||(this.div.style.width=e+"px",this.div.style.height=n+"px"),this.table.style.width=e+"px",this.table.style.height=n+"px",mxClient.IS_IE||(this.contentWrapper.style.height=this.div.offsetHeight-this.title.offsetHeight-2+"px")},mxWindow.prototype.setMinimizable=function(e){this.minimize.style.display=e?"":"none"},mxWindow.prototype.getMinimumSize=function(){return new mxRectangle(0,0,0,this.title.offsetHeight)},mxWindow.prototype.installMinimizeHandler=function(){this.minimize=document.createElement("img"),this.minimize.setAttribute("src",this.minimizeImage),this.minimize.setAttribute("align","right"),this.minimize.setAttribute("title","Minimize"),this.minimize.style.cursor="pointer",this.minimize.style.marginRight="1px",this.minimize.style.display="none",this.title.appendChild(this.minimize);var t=!1,a=null,i=null,e=mxUtils.bind(this,function(e){if(this.activate(),t)t=!1,this.minimize.setAttribute("src",this.minimizeImage),this.minimize.setAttribute("title","Minimize"),this.contentWrapper.style.display="",this.maximize.style.display=a,mxClient.IS_IE||(this.div.style.height=i),this.table.style.height=i,null!=this.resize&&(this.resize.style.visibility=""),this.fireEvent(new mxEventObject(mxEvent.NORMALIZE,"event",e));else{t=!0,this.minimize.setAttribute("src",this.normalizeImage),this.minimize.setAttribute("title","Normalize"),this.contentWrapper.style.display="none",a=this.maximize.style.display,this.maximize.style.display="none",i=this.table.style.height;var n=this.getMinimumSize();0<n.height&&(mxClient.IS_IE||(this.div.style.height=n.height+"px"),this.table.style.height=n.height+"px"),0<n.width&&(mxClient.IS_IE||(this.div.style.width=n.width+"px"),this.table.style.width=n.width+"px"),null!=this.resize&&(this.resize.style.visibility="hidden"),this.fireEvent(new mxEventObject(mxEvent.MINIMIZE,"event",e))}mxEvent.consume(e)});mxEvent.addListener(this.minimize,"mousedown",e),mxClient.IS_TOUCH&&mxEvent.addListener(this.minimize,"touchstart",e)},mxWindow.prototype.setMaximizable=function(e){this.maximize.style.display=e?"":"none"},mxWindow.prototype.installMaximizeHandler=function(){this.maximize=document.createElement("img"),this.maximize.setAttribute("src",this.maximizeImage),this.maximize.setAttribute("align","right"),this.maximize.setAttribute("title","Maximize"),this.maximize.style.cursor="default",this.maximize.style.marginLeft="1px",this.maximize.style.cursor="pointer",this.maximize.style.display="none",this.title.appendChild(this.maximize);var t=!1,a=null,i=null,s=null,o=null,e=mxUtils.bind(this,function(e){if(this.activate(),"none"!=this.maximize.style.display){if(t)t=!1,this.maximize.setAttribute("src",this.maximizeImage),this.maximize.setAttribute("title","Maximize"),this.contentWrapper.style.display="",this.minimize.style.visibility="",this.div.style.left=a+"px",this.div.style.top=i+"px",mxClient.IS_IE||(this.div.style.height=s,this.div.style.width=o,"auto"!=(n=mxUtils.getCurrentStyle(this.contentWrapper)).overflow&&null==this.resize)||(this.contentWrapper.style.height=this.div.offsetHeight-this.title.offsetHeight-2+"px"),this.table.style.height=s,this.table.style.width=o,null!=this.resize&&(this.resize.style.visibility=""),this.fireEvent(new mxEventObject(mxEvent.NORMALIZE,"event",e));else{if(t=!0,this.maximize.setAttribute("src",this.normalizeImage),this.maximize.setAttribute("title","Normalize"),this.contentWrapper.style.display="",this.minimize.style.visibility="hidden",a=parseInt(this.div.style.left),i=parseInt(this.div.style.top),s=this.table.style.height,o=this.table.style.width,this.div.style.left="0px",this.div.style.top="0px",mxClient.IS_IE||(this.div.style.height=document.body.clientHeight-2+"px",this.div.style.width=document.body.clientWidth-2+"px"),this.table.style.width=document.body.clientWidth-2+"px",this.table.style.height=document.body.clientHeight-2+"px",null!=this.resize&&(this.resize.style.visibility="hidden"),!mxClient.IS_IE){var n=mxUtils.getCurrentStyle(this.contentWrapper);"auto"!=n.overflow&&null==this.resize||(this.contentWrapper.style.height=this.div.offsetHeight-this.title.offsetHeight-2+"px")}this.fireEvent(new mxEventObject(mxEvent.MAXIMIZE,"event",e))}mxEvent.consume(e)}});mxEvent.addGestureListeners(this.maximize,e),mxEvent.addListener(this.title,"dblclick",e)},mxWindow.prototype.installMoveHandler=function(){this.title.style.cursor="move",mxEvent.addGestureListeners(this.title,mxUtils.bind(this,function(e){var a=mxEvent.getClientX(e),i=mxEvent.getClientY(e),s=this.getX(),o=this.getY(),n=mxUtils.bind(this,function(e){var n=mxEvent.getClientX(e)-a,t=mxEvent.getClientY(e)-i;this.setLocation(s+n,o+t),this.fireEvent(new mxEventObject(mxEvent.MOVE,"event",e)),mxEvent.consume(e)}),t=mxUtils.bind(this,function(e){mxEvent.removeGestureListeners(document,null,n,t),this.fireEvent(new mxEventObject(mxEvent.MOVE_END,"event",e)),mxEvent.consume(e)});mxEvent.addGestureListeners(document,null,n,t),this.fireEvent(new mxEventObject(mxEvent.MOVE_START,"event",e)),mxEvent.consume(e)}))},mxWindow.prototype.setLocation=function(e,n){this.div.style.left=e+"px",this.div.style.top=n+"px"},mxWindow.prototype.getX=function(){return parseInt(this.div.style.left)},mxWindow.prototype.getY=function(){return parseInt(this.div.style.top)},mxWindow.prototype.installCloseHandler=function(){this.closeImg=document.createElement("img"),this.closeImg.setAttribute("src",this.closeImage),this.closeImg.setAttribute("align","right"),this.closeImg.setAttribute("title","Close"),this.closeImg.style.marginLeft="2px",this.closeImg.style.cursor="pointer",this.closeImg.style.display="none",this.title.insertBefore(this.closeImg,this.title.firstChild),mxEvent.addGestureListeners(this.closeImg,mxUtils.bind(this,function(e){this.fireEvent(new mxEventObject(mxEvent.CLOSE,"event",e)),this.destroyOnClose?this.destroy():this.setVisible(!1),mxEvent.consume(e)}))},mxWindow.prototype.setImage=function(e){this.image=document.createElement("img"),this.image.setAttribute("src",e),this.image.setAttribute("align","left"),this.image.style.marginRight="4px",this.image.style.marginLeft="0px",this.image.style.marginTop="-2px",this.title.insertBefore(this.image,this.title.firstChild)},mxWindow.prototype.setClosable=function(e){this.closeImg.style.display=e?"":"none"},mxWindow.prototype.isVisible=function(){return null!=this.div&&"hidden"!=this.div.style.visibility},mxWindow.prototype.setVisible=function(e){null!=this.div&&this.isVisible()!=e&&(e?this.show():this.hide())},mxWindow.prototype.show=function(){this.div.style.visibility="",this.activate();var e=mxUtils.getCurrentStyle(this.contentWrapper);mxClient.IS_IE||"auto"!=e.overflow&&null==this.resize||(this.contentWrapper.style.height=this.div.offsetHeight-this.title.offsetHeight-2+"px"),this.fireEvent(new mxEventObject(mxEvent.SHOW))},mxWindow.prototype.hide=function(){this.div.style.visibility="hidden",this.fireEvent(new mxEventObject(mxEvent.HIDE))},mxWindow.prototype.destroy=function(){this.fireEvent(new mxEventObject(mxEvent.DESTROY)),null!=this.div&&(mxEvent.release(this.div),this.div.parentNode.removeChild(this.div),this.div=null),this.contentWrapper=this.content=this.title=null},mxForm.prototype.table=null,mxForm.prototype.body=!1,mxForm.prototype.getTable=function(){return this.table},mxForm.prototype.addButtons=function(e,n){var t=document.createElement("tr"),a=document.createElement("td");t.appendChild(a);a=document.createElement("td");var i=document.createElement("button");mxUtils.write(i,mxResources.get("ok")||"OK"),a.appendChild(i),mxEvent.addListener(i,"click",function(){e()}),i=document.createElement("button"),mxUtils.write(i,mxResources.get("cancel")||"Cancel"),a.appendChild(i),mxEvent.addListener(i,"click",function(){n()}),t.appendChild(a),this.body.appendChild(t)},mxForm.prototype.addText=function(e,n){var t=document.createElement("input");return t.setAttribute("type","text"),t.value=n,this.addField(e,t)},mxForm.prototype.addCheckbox=function(e,n){var t=document.createElement("input");return t.setAttribute("type","checkbox"),this.addField(e,t),n&&(t.checked=!0),t},mxForm.prototype.addTextarea=function(e,n,t){var a=document.createElement("textarea");return mxClient.IS_NS&&t--,a.setAttribute("rows",t||2),a.value=n,this.addField(e,a)},mxForm.prototype.addCombo=function(e,n,t){var a=document.createElement("select");return null!=t&&a.setAttribute("size",t),n&&a.setAttribute("multiple","true"),this.addField(e,a)},mxForm.prototype.addOption=function(e,n,t,a){var i=document.createElement("option");mxUtils.writeln(i,n),i.setAttribute("value",t),a&&i.setAttribute("selected",a),e.appendChild(i)},mxForm.prototype.addField=function(e,n){var t=document.createElement("tr"),a=document.createElement("td");return mxUtils.write(a,e),t.appendChild(a),(a=document.createElement("td")).appendChild(n),t.appendChild(a),this.body.appendChild(t),n},mxImage.prototype.src=null,mxImage.prototype.width=null,mxImage.prototype.height=null,mxDivResizer.prototype.resizeWidth=!0,mxDivResizer.prototype.resizeHeight=!0,mxDivResizer.prototype.handlingResize=!1,mxDivResizer.prototype.resize=function(){var e=this.getDocumentWidth(),n=this.getDocumentHeight(),t=parseInt(this.div.style.left),a=parseInt(this.div.style.right),i=parseInt(this.div.style.top),s=parseInt(this.div.style.bottom);this.resizeWidth&&!isNaN(t)&&!isNaN(a)&&0<=t&&0<=a&&0<e-a-t&&(this.div.style.width=e-a-t+"px"),this.resizeHeight&&!isNaN(i)&&!isNaN(s)&&0<=i&&0<=s&&0<n-i-s&&(this.div.style.height=n-i-s+"px")},mxDivResizer.prototype.getDocumentWidth=function(){return document.body.clientWidth},mxDivResizer.prototype.getDocumentHeight=function(){return document.body.clientHeight},mxDragSource.prototype.element=null,mxDragSource.prototype.dropHandler=null,mxDragSource.prototype.dragOffset=null,mxDragSource.prototype.dragElement=null,mxDragSource.prototype.previewElement=null,mxDragSource.prototype.enabled=!0,mxDragSource.prototype.currentGraph=null,mxDragSource.prototype.currentDropTarget=null,mxDragSource.prototype.currentPoint=null,mxDragSource.prototype.currentGuide=null,mxDragSource.prototype.currentHighlight=null,mxDragSource.prototype.autoscroll=!0,mxDragSource.prototype.guidesEnabled=!0,mxDragSource.prototype.gridEnabled=!0,mxDragSource.prototype.highlightDropTargets=!0,mxDragSource.prototype.dragElementZIndex=100,mxDragSource.prototype.dragElementOpacity=70,mxDragSource.prototype.isEnabled=function(){return this.enabled},mxDragSource.prototype.setEnabled=function(e){this.enabled=e},mxDragSource.prototype.isGuidesEnabled=function(){return this.guidesEnabled},mxDragSource.prototype.setGuidesEnabled=function(e){this.guidesEnabled=e},mxDragSource.prototype.isGridEnabled=function(){return this.gridEnabled},mxDragSource.prototype.setGridEnabled=function(e){this.gridEnabled=e},mxDragSource.prototype.getGraphForEvent=function(e){return null},mxDragSource.prototype.getDropTarget=function(e,n,t){return e.getCellAt(n,t)},mxDragSource.prototype.createDragElement=function(e){return this.element.cloneNode(!0)},mxDragSource.prototype.createPreviewElement=function(e){return null},mxDragSource.prototype.mouseDown=function(e){this.enabled&&!mxEvent.isConsumed(e)&&null==this.mouseMoveHandler&&(this.startDrag(e),this.mouseMoveHandler=mxUtils.bind(this,this.mouseMove),this.mouseUpHandler=mxUtils.bind(this,this.mouseUp),mxEvent.addGestureListeners(document,null,this.mouseMoveHandler,this.mouseUpHandler),mxEvent.consume(e,!0,!1))},mxDragSource.prototype.startDrag=function(e){this.dragElement=this.createDragElement(e),this.dragElement.style.position="absolute",this.dragElement.style.zIndex=this.dragElementZIndex,mxUtils.setOpacity(this.dragElement,this.dragElementOpacity)},mxDragSource.prototype.stopDrag=function(e){null!=this.dragElement&&(null!=this.dragElement.parentNode&&this.dragElement.parentNode.removeChild(this.dragElement),this.dragElement=null)},mxDragSource.prototype.graphContainsEvent=function(e,n){var t=mxEvent.getClientX(n),a=mxEvent.getClientY(n),i=mxUtils.getOffset(e.container),s=mxUtils.getScrollOrigin();return t>=i.x-s.x&&a>=i.y-s.y&&t<=i.x-s.x+e.container.offsetWidth&&a<=i.y-s.y+e.container.offsetHeight},mxDragSource.prototype.mouseMove=function(e){if(null!=(n=this.getGraphForEvent(e))&&!this.graphContainsEvent(n,e)&&(n=null),n!=this.currentGraph&&(null!=this.currentGraph&&this.dragExit(this.currentGraph),this.currentGraph=n,null!=this.currentGraph&&this.dragEnter(this.currentGraph)),null!=this.currentGraph&&this.dragOver(this.currentGraph,e),null==this.dragElement||null!=this.previewElement&&"visible"==this.previewElement.style.visibility)null!=this.dragElement&&(this.dragElement.style.visibility="hidden");else{var n=mxEvent.getClientX(e),t=mxEvent.getClientY(e);null==this.dragElement.parentNode&&document.body.appendChild(this.dragElement),this.dragElement.style.visibility="visible",null!=this.dragOffset&&(n+=this.dragOffset.x,t+=this.dragOffset.y),n+=document.body.scrollLeft||document.documentElement.scrollLeft,t+=document.body.scrollTop||document.documentElement.scrollTop,this.dragElement.style.left=n+"px",this.dragElement.style.top=t+"px"}mxEvent.consume(e)},mxDragSource.prototype.mouseUp=function(e){if(null!=this.currentGraph){if(null!=this.currentPoint&&(null==this.previewElement||"hidden"!=this.previewElement.style.visibility)){var n=this.currentGraph.view.scale,t=this.currentGraph.view.translate;this.drop(this.currentGraph,e,this.currentDropTarget,this.currentPoint.x/n-t.x,this.currentPoint.y/n-t.y)}this.dragExit(this.currentGraph)}this.stopDrag(e),mxEvent.removeGestureListeners(document,null,this.mouseMoveHandler,this.mouseUpHandler),this.currentGraph=this.mouseUpHandler=this.mouseMoveHandler=null,mxEvent.consume(e)},mxDragSource.prototype.dragEnter=function(e){e.isMouseDown=!0,this.previewElement=this.createPreviewElement(e),this.isGuidesEnabled()&&null!=this.previewElement&&(this.currentGuide=new mxGuide(e,e.graphHandler.getGuideStates())),this.highlightDropTargets&&(this.currentHighlight=new mxCellHighlight(e,mxConstants.DROP_TARGET_COLOR))},mxDragSource.prototype.dragExit=function(e){this.currentPoint=this.currentDropTarget=null,e.isMouseDown=!1,null!=this.previewElement&&(null!=this.previewElement.parentNode&&this.previewElement.parentNode.removeChild(this.previewElement),this.previewElement=null),null!=this.currentGuide&&(this.currentGuide.destroy(),this.currentGuide=null),null!=this.currentHighlight&&(this.currentHighlight.destroy(),this.currentHighlight=null)},mxDragSource.prototype.dragOver=function(e,n){var t=mxUtils.getOffset(e.container),a=mxUtils.getScrollOrigin(e.container),i=mxEvent.getClientX(n)-t.x+a.x;t=mxEvent.getClientY(n)-t.y+a.y;if(e.autoScroll&&(null==this.autoscroll||this.autoscroll)&&e.scrollPointToVisible(i,t,e.autoExtend),null!=this.currentHighlight&&e.isDropEnabled()&&(this.currentDropTarget=this.getDropTarget(e,i,t),a=e.getView().getState(this.currentDropTarget),this.currentHighlight.highlight(a)),null!=this.previewElement){null==this.previewElement.parentNode&&(e.container.appendChild(this.previewElement),this.previewElement.style.zIndex="3",this.previewElement.style.position="absolute");a=this.isGridEnabled()&&e.isGridEnabledEvent(n);var s=!0;if(null!=this.currentGuide&&this.currentGuide.isEnabledForEvent(n))s=new mxRectangle(0,0,s=parseInt(this.previewElement.style.width),o=parseInt(this.previewElement.style.height)),t=new mxPoint(i,t),t=this.currentGuide.move(s,t,a),s=!1,i=t.x,t=t.y;else if(a){a=e.view.scale;var o=e.view.translate,r=e.gridSize/2;i=(e.snap(i/a-o.x-r)+o.x)*a,t=(e.snap(t/a-o.y-r)+o.y)*a}null!=this.currentGuide&&s&&this.currentGuide.hide(),null!=this.previewOffset&&(i+=this.previewOffset.x,t+=this.previewOffset.y),this.previewElement.style.left=Math.round(i)+"px",this.previewElement.style.top=Math.round(t)+"px",this.previewElement.style.visibility="visible"}this.currentPoint=new mxPoint(i,t)},mxDragSource.prototype.drop=function(e,n,t,a,i){this.dropHandler(e,n,t,a,i),e.container.focus()},mxToolbar.prototype=new mxEventSource,mxToolbar.prototype.constructor=mxToolbar,mxToolbar.prototype.container=null,mxToolbar.prototype.enabled=!0,mxToolbar.prototype.noReset=!1,mxToolbar.prototype.updateDefaultMode=!0,mxToolbar.prototype.addItem=function(e,n,t,a,i,s){var o=document.createElement(null!=n?"img":"button"),r=i||(null!=s?"mxToolbarMode":"mxToolbarItem");return o.className=r,o.setAttribute("src",n),null!=e&&(null!=n?o.setAttribute("title",e):mxUtils.write(o,e)),this.container.appendChild(o),null!=t&&(mxEvent.addListener(o,"click",t),mxClient.IS_TOUCH&&mxEvent.addListener(o,"touchend",t)),e=mxUtils.bind(this,function(e){null!=a?o.setAttribute("src",n):o.style.backgroundColor=""}),mxEvent.addGestureListeners(o,mxUtils.bind(this,function(e){if(null!=a?o.setAttribute("src",a):o.style.backgroundColor="gray",null!=s){null==this.menu&&(this.menu=new mxPopupMenu,this.menu.init());var n=this.currentImg;this.menu.isMenuShowing()&&this.menu.hideMenu(),n!=o&&(this.currentImg=o,this.menu.factoryMethod=s,n=new mxPoint(o.offsetLeft,o.offsetTop+o.offsetHeight),this.menu.popup(n.x,n.y,null,e),this.menu.isMenuShowing()&&(o.className=r+"Selected",this.menu.hideMenu=function(){mxPopupMenu.prototype.hideMenu.apply(this),o.className=r,this.currentImg=null}))}}),null,e),mxEvent.addListener(o,"mouseout",e),o},mxToolbar.prototype.addCombo=function(e){var n=document.createElement("div");n.style.display="inline",n.className="mxToolbarComboContainer";var t=document.createElement("select");return t.className=e||"mxToolbarCombo",n.appendChild(t),this.container.appendChild(n),t},mxToolbar.prototype.addActionCombo=function(e,n){var t=document.createElement("select");return t.className=n||"mxToolbarCombo",this.addOption(t,e,null),mxEvent.addListener(t,"change",function(e){var n=t.options[t.selectedIndex];t.selectedIndex=0,null!=n.funct&&n.funct(e)}),this.container.appendChild(t),t},mxToolbar.prototype.addOption=function(e,n,t){var a=document.createElement("option");return mxUtils.writeln(a,n),"function"==typeof t?a.funct=t:a.setAttribute("value",t),e.appendChild(a),a},mxToolbar.prototype.addSwitchMode=function(e,n,t,a,i){var s=document.createElement("img");return s.initialClassName=i||"mxToolbarMode",s.className=s.initialClassName,s.setAttribute("src",n),s.altIcon=a,null!=e&&s.setAttribute("title",e),mxEvent.addListener(s,"click",mxUtils.bind(this,function(e){null!=(e=this.selectedMode.altIcon)?(this.selectedMode.altIcon=this.selectedMode.getAttribute("src"),this.selectedMode.setAttribute("src",e)):this.selectedMode.className=this.selectedMode.initialClassName,this.updateDefaultMode&&(this.defaultMode=s),null!=(e=(this.selectedMode=s).altIcon)?(s.altIcon=s.getAttribute("src"),s.setAttribute("src",e)):s.className=s.initialClassName+"Selected",this.fireEvent(new mxEventObject(mxEvent.SELECT)),t()})),this.container.appendChild(s),null==this.defaultMode&&(this.defaultMode=s,this.selectMode(s),t()),s},mxToolbar.prototype.addMode=function(e,n,t,a,i,s){s=null==s||s;var o=document.createElement(null!=n?"img":"button");return o.initialClassName=i||"mxToolbarMode",o.className=o.initialClassName,o.setAttribute("src",n),o.altIcon=a,null!=e&&o.setAttribute("title",e),this.enabled&&s&&(mxEvent.addListener(o,"click",mxUtils.bind(this,function(e){this.selectMode(o,t),this.noReset=!1})),mxEvent.addListener(o,"dblclick",mxUtils.bind(this,function(e){this.selectMode(o,t),this.noReset=!0})),null==this.defaultMode&&(this.defaultMode=o,this.defaultFunction=t,this.selectMode(o,t))),this.container.appendChild(o),o},mxToolbar.prototype.selectMode=function(e,n){if(this.selectedMode!=e){if(null!=this.selectedMode){var t=this.selectedMode.altIcon;null!=t?(this.selectedMode.altIcon=this.selectedMode.getAttribute("src"),this.selectedMode.setAttribute("src",t)):this.selectedMode.className=this.selectedMode.initialClassName}this.selectedMode=e,null!=(t=this.selectedMode.altIcon)?(this.selectedMode.altIcon=this.selectedMode.getAttribute("src"),this.selectedMode.setAttribute("src",t)):this.selectedMode.className=this.selectedMode.initialClassName+"Selected",this.fireEvent(new mxEventObject(mxEvent.SELECT,"function",n))}},mxToolbar.prototype.resetMode=function(e){(e||!this.noReset)&&this.selectedMode!=this.defaultMode&&this.selectMode(this.defaultMode,this.defaultFunction)},mxToolbar.prototype.addSeparator=function(e){return this.addItem(null,e,null)},mxToolbar.prototype.addBreak=function(){mxUtils.br(this.container)},mxToolbar.prototype.addLine=function(){var e=document.createElement("hr");e.style.marginRight="6px",e.setAttribute("size","1"),this.container.appendChild(e)},mxToolbar.prototype.destroy=function(){mxEvent.release(this.container),this.selectedMode=this.defaultFunction=this.defaultMode=this.container=null,null!=this.menu&&this.menu.destroy()},mxSession.prototype=new mxEventSource,mxSession.prototype.constructor=mxSession,mxSession.prototype.model=null,mxSession.prototype.urlInit=null,mxSession.prototype.urlPoll=null,mxSession.prototype.urlNotify=null,mxSession.prototype.codec=null,mxSession.prototype.linefeed="
",mxSession.prototype.escapePostData=!0,mxSession.prototype.significantRemoteChanges=!0,mxSession.prototype.sent=0,mxSession.prototype.received=0,mxSession.prototype.debug=!1,mxSession.prototype.connected=!1,mxSession.prototype.suspended=!1,mxSession.prototype.polling=!1,mxSession.prototype.start=function(){this.debug?(this.connected=!0,this.fireEvent(new mxEventObject(mxEvent.CONNECT))):this.connected||this.get(this.urlInit,mxUtils.bind(this,function(e){this.connected=!0,this.fireEvent(new mxEventObject(mxEvent.CONNECT)),this.poll()}))},mxSession.prototype.suspend=function(){this.connected&&!this.suspended&&(this.suspended=!0,this.fireEvent(new mxEventObject(mxEvent.SUSPEND)))},mxSession.prototype.resume=function(e,n,t){this.connected&&this.suspended&&(this.suspended=!1,this.fireEvent(new mxEventObject(mxEvent.RESUME)),this.polling||this.poll())},mxSession.prototype.stop=function(e){this.connected&&(this.connected=!1),this.fireEvent(new mxEventObject(mxEvent.DISCONNECT,"reason",e))},mxSession.prototype.poll=function(){this.connected&&!this.suspended&&null!=this.urlPoll?(this.polling=!0,this.get(this.urlPoll,mxUtils.bind(this,function(){this.poll()}))):this.polling=!1},mxSession.prototype.notify=function(e,n,t){null!=e&&0<e.length&&(null!=this.urlNotify&&(this.debug?(mxLog.show(),mxLog.debug("mxSession.notify: "+this.urlNotify+" xml="+e)):(e="<message><delta>"+e+"</delta></message>",this.escapePostData&&(e=encodeURIComponent(e)),mxUtils.post(this.urlNotify,"xml="+e,n,t))),this.sent+=e.length,this.fireEvent(new mxEventObject(mxEvent.NOTIFY,"url",this.urlNotify,"xml",e)))},mxSession.prototype.get=function(t,a,n){if(void 0!==mxUtils){var i=mxUtils.bind(this,function(e){null!=n?n(e):this.stop(e)});mxUtils.get(t,mxUtils.bind(this,function(e){if(void 0!==mxUtils)if(e.isReady()&&404!=e.getStatus()){if(this.received+=e.getText().length,this.fireEvent(new mxEventObject(mxEvent.GET,"url",t,"request",e)),this.isValidResponse(e)){if(0<e.getText().length){var n=e.getDocumentElement();null==n?i("Invalid response: "+e.getText()):this.receive(n)}null!=a&&a(e)}}else i("Response not ready")}),function(e){i("Transmission error")})}},mxSession.prototype.isValidResponse=function(e){return e.getText().indexOf("<?php")<0},mxSession.prototype.encodeChanges=function(e,n){for(var t="",a=n?-1:1,i=n?e.length-1:0;0<=i&&i<e.length;i+=a){var s=this.codec.encode(e[i]);t=t+mxUtils.getXml(s,this.linefeed)}return t},mxSession.prototype.receive=function(e){if(null!=e&&e.nodeType==mxConstants.NODETYPE_ELEMENT){var n=e.getAttribute("namespace");for(null!=n&&(this.model.prefix=n+"-"),n=e.firstChild;null!=n;){var t=n.nodeName.toLowerCase();"state"==t?this.processState(n):"delta"==t&&this.processDelta(n),n=n.nextSibling}this.fireEvent(new mxEventObject(mxEvent.RECEIVE,"node",e))}},mxSession.prototype.processState=function(e){new mxCodec(e.ownerDocument).decode(e.firstChild,this.model)},mxSession.prototype.processDelta=function(e){for(e=e.firstChild;null!=e;)"edit"==e.nodeName&&this.processEdit(e),e=e.nextSibling},mxSession.prototype.processEdit=function(e){if(0<(e=this.decodeChanges(e)).length){var n=this.createUndoableEdit(e);this.model.fireEvent(new mxEventObject(mxEvent.CHANGE,"edit",n,"changes",e)),this.model.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",n)),this.fireEvent(new mxEventObject(mxEvent.FIRED,"edit",n))}},mxSession.prototype.createUndoableEdit=function(e){var n=new mxUndoableEdit(this.model,this.significantRemoteChanges);return n.changes=e,n.notify=function(){n.source.fireEvent(new mxEventObject(mxEvent.CHANGE,"edit",n,"changes",n.changes)),n.source.fireEvent(new mxEventObject(mxEvent.NOTIFY,"edit",n,"changes",n.changes))},n},mxSession.prototype.decodeChanges=function(e){this.codec.document=e.ownerDocument;var n=[];for(e=e.firstChild;null!=e;){var t=this.decodeChange(e);null!=t&&n.push(t),e=e.nextSibling}return n},mxSession.prototype.decodeChange=function(e){var n=null;return e.nodeType==mxConstants.NODETYPE_ELEMENT&&(null!=(n="mxRootChange"==e.nodeName?new mxCodec(e.ownerDocument).decode(e):this.codec.decode(e))&&(n.model=this.model,n.execute(),"mxChildChange"==e.nodeName&&null==n.parent&&this.cellRemoved(n.child))),n},mxSession.prototype.cellRemoved=function(e,n){this.codec.putObject(e.getId(),e);for(var t=this.model.getChildCount(e),a=0;a<t;a++)this.cellRemoved(this.model.getChildAt(e,a))},mxUndoableEdit.prototype.source=null,mxUndoableEdit.prototype.changes=null,mxUndoableEdit.prototype.significant=null,mxUndoableEdit.prototype.undone=!1,mxUndoableEdit.prototype.redone=!1,mxUndoableEdit.prototype.isEmpty=function(){return 0==this.changes.length},mxUndoableEdit.prototype.isSignificant=function(){return this.significant},mxUndoableEdit.prototype.add=function(e){this.changes.push(e)},mxUndoableEdit.prototype.notify=function(){},mxUndoableEdit.prototype.die=function(){},mxUndoableEdit.prototype.undo=function(){if(!this.undone){this.source.fireEvent(new mxEventObject(mxEvent.START_EDIT));for(var e=this.changes.length-1;0<=e;e--){var n=this.changes[e];null!=n.execute?n.execute():null!=n.undo&&n.undo(),this.source.fireEvent(new mxEventObject(mxEvent.EXECUTED,"change",n))}this.undone=!0,this.redone=!1,this.source.fireEvent(new mxEventObject(mxEvent.END_EDIT))}this.notify()},mxUndoableEdit.prototype.redo=function(){if(!this.redone){this.source.fireEvent(new mxEventObject(mxEvent.START_EDIT));for(var e=this.changes.length,n=0;n<e;n++){var t=this.changes[n];null!=t.execute?t.execute():null!=t.redo&&t.redo(),this.source.fireEvent(new mxEventObject(mxEvent.EXECUTED,"change",t))}this.undone=!1,this.redone=!0,this.source.fireEvent(new mxEventObject(mxEvent.END_EDIT))}this.notify()},mxUndoManager.prototype=new mxEventSource,mxUndoManager.prototype.constructor=mxUndoManager,mxUndoManager.prototype.size=null,mxUndoManager.prototype.history=null,mxUndoManager.prototype.indexOfNextAdd=0,mxUndoManager.prototype.isEmpty=function(){return 0==this.history.length},mxUndoManager.prototype.clear=function(){this.history=[],this.indexOfNextAdd=0,this.fireEvent(new mxEventObject(mxEvent.CLEAR))},mxUndoManager.prototype.canUndo=function(){return 0<this.indexOfNextAdd},mxUndoManager.prototype.undo=function(){for(;0<this.indexOfNextAdd;){var e=this.history[--this.indexOfNextAdd];if(e.undo(),e.isSignificant()){this.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",e));break}}},mxUndoManager.prototype.canRedo=function(){return this.indexOfNextAdd<this.history.length},mxUndoManager.prototype.redo=function(){for(var e=this.history.length;this.indexOfNextAdd<e;){var n=this.history[this.indexOfNextAdd++];if(n.redo(),n.isSignificant()){this.fireEvent(new mxEventObject(mxEvent.REDO,"edit",n));break}}},mxUndoManager.prototype.undoableEditHappened=function(e){this.trim(),0<this.size&&this.size==this.history.length&&this.history.shift(),this.history.push(e),this.indexOfNextAdd=this.history.length,this.fireEvent(new mxEventObject(mxEvent.ADD,"edit",e))},mxUndoManager.prototype.trim=function(){if(this.history.length>this.indexOfNextAdd)for(var e=this.history.splice(this.indexOfNextAdd,this.history.length-this.indexOfNextAdd),n=0;n<e.length;n++)e[n].die()};var mxUrlConverter=function(e){var t=!0,a=null,i=null;return{isEnabled:function(){return t},setEnabled:function(e){t=e},getBaseUrl:function(){return a},setBaseUrl:function(e){a=e},getBaseDomain:function(){return a},setBaseDomain:function(e){a=e},isRelativeUrl:function(e){return"http://"!=e.substring(0,7)&&"https://"!=e.substring(0,8)&&"data:image"!=e.substring(0,10)},convert:function(e){if(t&&this.isRelativeUrl(e)){if(null==a){i=location.protocol+"//"+location.host;var n=(a=i+location.pathname).lastIndexOf("/");0<n&&(a=a.substring(0,n+1))}e="/"==e.charAt(0)?i+e:a+e}return e}}};function mxPanningManager(s){this.thread=null,this.active=!1,this.dy=this.dx=this.t0y=this.t0x=this.tdy=this.tdx=0,this.scrollbars=!1,this.scrollTop=this.scrollLeft=0,this.mouseListener={mouseDown:function(e,n){},mouseMove:function(e,n){},mouseUp:mxUtils.bind(this,function(e,n){this.active&&this.stop()})},s.addMouseListener(this.mouseListener),mxEvent.addListener(document,"mouseup",mxUtils.bind(this,function(){this.active&&this.stop()}));var o=mxUtils.bind(this,function(){return this.scrollbars=mxUtils.hasScrollbars(s.container),this.scrollLeft=s.container.scrollLeft,this.scrollTop=s.container.scrollTop,window.setInterval(mxUtils.bind(this,function(){if(this.tdx-=this.dx,this.tdy-=this.dy,this.scrollbars){var e=-s.container.scrollLeft-Math.ceil(this.dx),n=-s.container.scrollTop-Math.ceil(this.dy);s.panGraph(e,n),s.panDx=this.scrollLeft-s.container.scrollLeft,s.panDy=this.scrollTop-s.container.scrollTop,s.fireEvent(new mxEventObject(mxEvent.PAN))}else s.panGraph(this.getDx(),this.getDy())}),this.delay)});this.isActive=function(){return active},this.getDx=function(){return Math.round(this.tdx)},this.getDy=function(){return Math.round(this.tdy)},this.start=function(){this.t0x=s.view.translate.x,this.t0y=s.view.translate.y,this.active=!0},this.panTo=function(e,n,t,a){this.active||this.start(),this.scrollLeft=s.container.scrollLeft,this.scrollTop=s.container.scrollTop,a=null!=a?a:0;var i=s.container;this.dx=e+(null!=t?t:0)-i.scrollLeft-i.clientWidth,this.dx<0&&Math.abs(this.dx)<this.border?this.dx=this.border+this.dx:this.dx=this.handleMouseOut?Math.max(this.dx,0):0,0==this.dx&&(this.dx=e-i.scrollLeft,this.dx=0<this.dx&&this.dx<this.border?this.dx-this.border:this.handleMouseOut?Math.min(0,this.dx):0),this.dy=n+a-i.scrollTop-i.clientHeight,this.dy<0&&Math.abs(this.dy)<this.border?this.dy=this.border+this.dy:this.dy=this.handleMouseOut?Math.max(this.dy,0):0,0==this.dy&&(this.dy=n-i.scrollTop,this.dy=0<this.dy&&this.dy<this.border?this.dy-this.border:this.handleMouseOut?Math.min(0,this.dy):0),0!=this.dx||0!=this.dy?(this.dx*=this.damper,this.dy*=this.damper,null==this.thread&&(this.thread=o())):null!=this.thread&&(window.clearInterval(this.thread),this.thread=null)},this.stop=function(){if(this.active)if(this.active=!1,null!=this.thread&&(window.clearInterval(this.thread),this.thread=null),this.tdy=this.tdx=0,this.scrollbars)s.panDx=0,s.panDy=0,s.fireEvent(new mxEventObject(mxEvent.PAN));else{var e=s.panDx,n=s.panDy;0==e&&0==n||(s.panGraph(0,0),s.view.setTranslate(this.t0x+e/s.view.scale,this.t0y+n/s.view.scale))}},this.destroy=function(){s.removeMouseListener(this.mouseListener)}}function mxPopupMenu(e){null!=(this.factoryMethod=e)&&this.init()}function mxAutoSaveManager(e){this.changeHandler=mxUtils.bind(this,function(e,n){this.isEnabled()&&this.graphModelChanged(n.getProperty("edit").changes)}),this.setGraph(e)}function mxAnimation(e){this.delay=null!=e?e:20}function mxMorphing(e,n,t,a){mxAnimation.call(this,a),this.graph=e,this.steps=null!=n?n:6,this.ease=null!=t?t:1.5}function mxImageBundle(e){this.images=[],this.alt=null!=e&&e}function mxImageExport(){}function mxAbstractCanvas2D(){this.converter=this.createUrlConverter(),this.reset()}function mxXmlCanvas2D(e){mxAbstractCanvas2D.call(this),this.root=e,this.writeDefaults()}function mxSvgCanvas2D(e,n){mxAbstractCanvas2D.call(this),this.root=e,this.gradients=[],this.defs=null,this.styleEnabled=null!=n&&n;var t=null;if(e.ownerDocument!=document)for(t=e;null!=t&&"svg"!=t.nodeName;)t=t.parentNode;null!=t&&(0<t.getElementsByTagName("defs").length&&(this.defs=t.getElementsByTagName("defs")[0]),null==this.defs&&(this.defs=this.createElement("defs"),null!=t.firstChild?t.insertBefore(this.defs,t.firstChild):t.appendChild(this.defs)),this.styleEnabled&&this.defs.appendChild(this.createStyle()))}mxPanningManager.prototype.damper=1/6,mxPanningManager.prototype.delay=10,mxPanningManager.prototype.handleMouseOut=!0,mxPanningManager.prototype.border=0,mxPopupMenu.prototype=new mxEventSource,mxPopupMenu.prototype.constructor=mxPopupMenu,mxPopupMenu.prototype.submenuImage=mxClient.imageBasePath+"/submenu.gif",mxPopupMenu.prototype.zIndex=10006,mxPopupMenu.prototype.factoryMethod=null,mxPopupMenu.prototype.useLeftButtonForPopup=!1,mxPopupMenu.prototype.enabled=!0,mxPopupMenu.prototype.itemCount=0,mxPopupMenu.prototype.autoExpand=!1,mxPopupMenu.prototype.smartSeparators=!1,mxPopupMenu.prototype.labels=!0,mxPopupMenu.prototype.init=function(){this.table=document.createElement("table"),this.table.className="mxPopupMenu",this.tbody=document.createElement("tbody"),this.table.appendChild(this.tbody),this.div=document.createElement("div"),this.div.className="mxPopupMenu",this.div.style.display="inline",this.div.style.zIndex=this.zIndex,this.div.appendChild(this.table),mxEvent.disableContextMenu(this.div)},mxPopupMenu.prototype.isEnabled=function(){return this.enabled},mxPopupMenu.prototype.setEnabled=function(e){this.enabled=e},mxPopupMenu.prototype.isPopupTrigger=function(e){return e.isPopupTrigger()||this.useLeftButtonForPopup&&mxEvent.isLeftMouseButton(e.getEvent())},mxPopupMenu.prototype.addItem=function(e,n,t,a,i,s){a=a||this,this.itemCount++,a.willAddSeparator&&(a.containsItems&&this.addSeparator(a,!0),a.willAddSeparator=!1),a.containsItems=!0;var o=document.createElement("tr");o.className="mxPopupMenuItem";var r=document.createElement("td");return r.className="mxPopupMenuIcon",null!=n?((i=document.createElement("img")).src=n,r.appendChild(i)):null!=i&&((n=document.createElement("div")).className=i,r.appendChild(n)),o.appendChild(r),this.labels&&((r=document.createElement("td")).className="mxPopupMenuItem"+(null==s||s?"":" disabled"),mxUtils.write(r,e),r.align="left",o.appendChild(r),(e=document.createElement("td")).className="mxPopupMenuItem"+(null==s||s?"":" disabled"),e.style.paddingRight="6px",e.style.textAlign="right",o.appendChild(e),null==a.div&&this.createSubmenu(a)),a.tbody.appendChild(o),(null==s||s)&&(mxEvent.addGestureListeners(o,mxUtils.bind(this,function(e){this.eventReceiver=o,a.activeRow!=o&&a.activeRow!=a&&(null!=a.activeRow&&null!=a.activeRow.div.parentNode&&this.hideSubmenu(a),null!=o.div&&(this.showSubmenu(a,o),a.activeRow=o)),mxEvent.consume(e)}),mxUtils.bind(this,function(e){a.activeRow!=o&&a.activeRow!=a&&(null!=a.activeRow&&null!=a.activeRow.div.parentNode&&this.hideSubmenu(a),this.autoExpand&&null!=o.div&&(this.showSubmenu(a,o),a.activeRow=o)),o.className="mxPopupMenuItemHover"}),mxUtils.bind(this,function(e){this.eventReceiver==o&&(a.activeRow!=o&&this.hideMenu(),null!=t&&t(e)),this.eventReceiver=null,mxEvent.consume(e)})),mxEvent.addListener(o,"mouseout",mxUtils.bind(this,function(e){o.className="mxPopupMenuItem"}))),o},mxPopupMenu.prototype.createSubmenu=function(e){e.table=document.createElement("table"),e.table.className="mxPopupMenu",e.tbody=document.createElement("tbody"),e.table.appendChild(e.tbody),e.div=document.createElement("div"),e.div.className="mxPopupMenu",e.div.style.position="absolute",e.div.style.display="inline",e.div.style.zIndex=this.zIndex,e.div.appendChild(e.table);var n=document.createElement("img");n.setAttribute("src",this.submenuImage),td=e.firstChild.nextSibling.nextSibling,td.appendChild(n)},mxPopupMenu.prototype.showSubmenu=function(e,n){if(null!=n.div){n.div.style.left=e.div.offsetLeft+n.offsetLeft+n.offsetWidth-1+"px",n.div.style.top=e.div.offsetTop+n.offsetTop+"px",document.body.appendChild(n.div);var t=parseInt(n.div.offsetLeft),a=parseInt(n.div.offsetWidth),i=document.body,s=document.documentElement;t+a>(i.scrollLeft||s.scrollLeft)+(i.clientWidth||s.clientWidth)&&(n.div.style.left=e.div.offsetLeft-a+(mxClient.IS_IE?6:-6)+"px"),mxUtils.fit(n.div)}},mxPopupMenu.prototype.addSeparator=function(e,n){if(e=e||this,this.smartSeparators&&!n)e.willAddSeparator=!0;else if(null!=e.tbody){e.willAddSeparator=!1;var t=document.createElement("tr"),a=document.createElement("td");a.className="mxPopupMenuIcon",a.style.padding="0 0 0 0px",t.appendChild(a),(a=document.createElement("td")).style.padding="0 0 0 0px",a.setAttribute("colSpan","2");var i=document.createElement("hr");i.setAttribute("size","1"),a.appendChild(i),t.appendChild(a),e.tbody.appendChild(t)}},mxPopupMenu.prototype.popup=function(e,n,t,a){if(null!=this.div&&null!=this.tbody&&null!=this.factoryMethod){for(this.div.style.left=e+"px",this.div.style.top=n+"px";null!=this.tbody.firstChild;)mxEvent.release(this.tbody.firstChild),this.tbody.removeChild(this.tbody.firstChild);this.itemCount=0,this.factoryMethod(this,t,a),0<this.itemCount&&(this.showMenu(),this.fireEvent(new mxEventObject(mxEvent.SHOW)))}},mxPopupMenu.prototype.isMenuShowing=function(){return null!=this.div&&this.div.parentNode==document.body},mxPopupMenu.prototype.showMenu=function(){9<=document.documentMode&&(this.div.style.filter="none"),document.body.appendChild(this.div),mxUtils.fit(this.div)},mxPopupMenu.prototype.hideMenu=function(){null!=this.div&&(null!=this.div.parentNode&&this.div.parentNode.removeChild(this.div),this.hideSubmenu(this),this.containsItems=!1)},mxPopupMenu.prototype.hideSubmenu=function(e){null!=e.activeRow&&(this.hideSubmenu(e.activeRow),null!=e.activeRow.div.parentNode&&e.activeRow.div.parentNode.removeChild(e.activeRow.div),e.activeRow=null)},mxPopupMenu.prototype.destroy=function(){null!=this.div&&(mxEvent.release(this.div),null!=this.div.parentNode&&this.div.parentNode.removeChild(this.div),this.div=null)},mxAutoSaveManager.prototype=new mxEventSource,mxAutoSaveManager.prototype.constructor=mxAutoSaveManager,mxAutoSaveManager.prototype.graph=null,mxAutoSaveManager.prototype.autoSaveDelay=10,mxAutoSaveManager.prototype.autoSaveThrottle=2,mxAutoSaveManager.prototype.autoSaveThreshold=5,mxAutoSaveManager.prototype.ignoredChanges=0,mxAutoSaveManager.prototype.lastSnapshot=0,mxAutoSaveManager.prototype.enabled=!0,mxAutoSaveManager.prototype.changeHandler=null,mxAutoSaveManager.prototype.isEnabled=function(){return this.enabled},mxAutoSaveManager.prototype.setEnabled=function(e){this.enabled=e},mxAutoSaveManager.prototype.setGraph=function(e){null!=this.graph&&this.graph.getModel().removeListener(this.changeHandler),this.graph=e,null!=this.graph&&this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler)},mxAutoSaveManager.prototype.save=function(){},mxAutoSaveManager.prototype.graphModelChanged=function(e){(e=((new Date).getTime()-this.lastSnapshot)/1e3)>this.autoSaveDelay||this.ignoredChanges>=this.autoSaveThreshold&&e>this.autoSaveThrottle?(this.save(),this.reset()):this.ignoredChanges++},mxAutoSaveManager.prototype.reset=function(){this.lastSnapshot=(new Date).getTime(),this.ignoredChanges=0},mxAutoSaveManager.prototype.destroy=function(){this.setGraph(null)},mxAnimation.prototype=new mxEventSource,mxAnimation.prototype.constructor=mxAnimation,mxAnimation.prototype.delay=null,mxAnimation.prototype.thread=null,mxAnimation.prototype.startAnimation=function(){null==this.thread&&(this.thread=window.setInterval(mxUtils.bind(this,this.updateAnimation),this.delay))},mxAnimation.prototype.updateAnimation=function(){this.fireEvent(new mxEventObject(mxEvent.EXECUTE))},mxAnimation.prototype.stopAnimation=function(){null!=this.thread&&(window.clearInterval(this.thread),this.thread=null,this.fireEvent(new mxEventObject(mxEvent.DONE)))},mxMorphing.prototype=new mxAnimation,mxMorphing.prototype.constructor=mxMorphing,mxMorphing.prototype.graph=null,mxMorphing.prototype.steps=null,mxMorphing.prototype.step=0,mxMorphing.prototype.ease=null,mxMorphing.prototype.cells=null,mxMorphing.prototype.updateAnimation=function(){var e=new mxCellStatePreview(this.graph);if(null!=this.cells)for(var n=0;n<this.cells.length;n++)this.animateCell(cells[n],e,!1);else this.animateCell(this.graph.getModel().getRoot(),e,!0);this.show(e),(e.isEmpty()||this.step++>=this.steps)&&this.stopAnimation()},mxMorphing.prototype.show=function(e){e.show()},mxMorphing.prototype.animateCell=function(e,n,t){var a=this.graph.getView().getState(e),i=null;if(null!=a&&(i=this.getDelta(a),this.graph.getModel().isVertex(e)&&(0!=i.x||0!=i.y))){var s=this.graph.view.getTranslate(),o=this.graph.view.getScale();i.x+=s.x*o,i.y+=s.y*o,n.moveState(a,-i.x/this.ease,-i.y/this.ease)}if(t&&!this.stopRecursion(a,i))for(a=this.graph.getModel().getChildCount(e),i=0;i<a;i++)this.animateCell(this.graph.getModel().getChildAt(e,i),n,t)},mxMorphing.prototype.stopRecursion=function(e,n){return null!=n&&(0!=n.x||0!=n.y)},mxMorphing.prototype.getDelta=function(e){var n=this.getOriginForCell(e.cell),t=this.graph.getView().getTranslate(),a=this.graph.getView().getScale();return e=new mxPoint(e.x/a-t.x,e.y/a-t.y),new mxPoint((n.x-e.x)*a,(n.y-e.y)*a)},mxMorphing.prototype.getOriginForCell=function(e){var n=null;return null!=e&&(n=this.getOriginForCell(this.graph.getModel().getParent(e)),null!=(e=this.graph.getCellGeometry(e))&&(n.x+=e.x,n.y+=e.y)),null==n&&(n=new mxPoint(-(n=this.graph.view.getTranslate()).x,-n.y)),n},mxImageBundle.prototype.images=null,mxImageBundle.prototype.images=null,mxImageBundle.prototype.putImage=function(e,n,t){this.images[e]={value:n,fallback:t}},mxImageBundle.prototype.getImage=function(e){var n=null;return null!=e&&(null!=(e=this.images[e])&&(n=this.alt?e.fallback:e.value)),n},mxImageExport.prototype.includeOverlays=!1,mxImageExport.prototype.drawState=function(e,n){null!=e&&(this.visitStatesRecursive(e,n,this.drawCellState),this.includeOverlays&&this.visitStatesRecursive(e,n,this.drawOverlays))},mxImageExport.prototype.visitStatesRecursive=function(e,n,t){if(null!=e){t(e,n);for(var a=e.view.graph,i=a.model.getChildCount(e.cell),s=0;s<i;s++){var o=a.view.getState(a.model.getChildAt(e.cell,s));this.visitStatesRecursive(o,n,t)}}},mxImageExport.prototype.drawCellState=function(e,n){e.shape instanceof mxShape&&(n.save(),e.shape.paint(n),n.restore()),null!=e.text&&(n.save(),e.text.paint(n),n.restore())},mxImageExport.prototype.drawOverlays=function(e,t){null!=e.overlays&&e.overlays.visit(function(e,n){n instanceof mxShape&&n.paint(t)})},mxAbstractCanvas2D.prototype.state=null,mxAbstractCanvas2D.prototype.states=null,mxAbstractCanvas2D.prototype.path=null,mxAbstractCanvas2D.prototype.rotateHtml=!0,mxAbstractCanvas2D.prototype.lastX=0,mxAbstractCanvas2D.prototype.lastY=0,mxAbstractCanvas2D.prototype.moveOp="M",mxAbstractCanvas2D.prototype.lineOp="L",mxAbstractCanvas2D.prototype.quadOp="Q",mxAbstractCanvas2D.prototype.curveOp="C",mxAbstractCanvas2D.prototype.closeOp="Z",mxAbstractCanvas2D.prototype.pointerEvents=!1,mxAbstractCanvas2D.prototype.createUrlConverter=function(){return new mxUrlConverter},mxAbstractCanvas2D.prototype.reset=function(){this.state=this.createState(),this.states=[]},mxAbstractCanvas2D.prototype.createState=function(){return{dx:0,dy:0,scale:1,alpha:1,fillColor:null,fillAlpha:1,gradientColor:null,gradientAlpha:1,gradientDirection:null,strokeColor:null,strokeWidth:1,dashed:!1,dashPattern:"3 3",lineCap:"flat",lineJoin:"miter",miterLimit:10,fontColor:"#000000",fontBackgroundColor:null,fontBorderColor:null,fontSize:mxConstants.DEFAULT_FONTSIZE,fontFamily:mxConstants.DEFAULT_FONTFAMILY,fontStyle:0,shadow:!1,shadowColor:mxConstants.SHADOWCOLOR,shadowAlpha:mxConstants.SHADOW_OPACITY,shadowDx:mxConstants.SHADOW_OFFSET_X,shadowDy:mxConstants.SHADOW_OFFSET_Y,rotation:0,rotationCx:0,rotationCy:0}},mxAbstractCanvas2D.prototype.format=function(e){return Math.round(parseFloat(e))},mxAbstractCanvas2D.prototype.addOp=function(){if(null!=this.path&&(this.path.push(arguments[0]),2<arguments.length))for(var e=this.state,n=2;n<arguments.length;n+=2)this.lastX=arguments[n-1],this.lastY=arguments[n],this.path.push(this.format((this.lastX+e.dx)*e.scale)),this.path.push(this.format((this.lastY+e.dy)*e.scale))},mxAbstractCanvas2D.prototype.rotatePoint=function(e,n,t,a,i){return t*=Math.PI/180,mxUtils.getRotatedPoint(new mxPoint(e,n),Math.cos(t),Math.sin(t),new mxPoint(a,i))},mxAbstractCanvas2D.prototype.save=function(){this.states.push(this.state),this.state=mxUtils.clone(this.state)},mxAbstractCanvas2D.prototype.restore=function(){this.state=this.states.pop()},mxAbstractCanvas2D.prototype.scale=function(e){this.state.scale*=e,this.state.strokeWidth*=e},mxAbstractCanvas2D.prototype.translate=function(e,n){this.state.dx+=e,this.state.dy+=n},mxAbstractCanvas2D.prototype.setAlpha=function(e){this.state.alpha=e},mxAbstractCanvas2D.prototype.setFillColor=function(e){e==mxConstants.NONE&&(e=null),this.state.fillColor=e,this.state.gradientColor=null},mxAbstractCanvas2D.prototype.setGradient=function(e,n,t,a,i,s,o,r,l){(t=this.state).fillColor=e,t.fillAlpha=null!=r?r:1,t.gradientColor=n,t.gradientAlpha=null!=l?l:1,t.gradientDirection=o},mxAbstractCanvas2D.prototype.setStrokeColor=function(e){e==mxConstants.NONE&&(e=null),this.state.strokeColor=e},mxAbstractCanvas2D.prototype.setStrokeWidth=function(e){this.state.strokeWidth=e},mxAbstractCanvas2D.prototype.setDashed=function(e){this.state.dashed=e},mxAbstractCanvas2D.prototype.setDashPattern=function(e){this.state.dashPattern=e},mxAbstractCanvas2D.prototype.setLineCap=function(e){this.state.lineCap=e},mxAbstractCanvas2D.prototype.setLineJoin=function(e){this.state.lineJoin=e},mxAbstractCanvas2D.prototype.setMiterLimit=function(e){this.state.miterLimit=e},mxAbstractCanvas2D.prototype.setFontColor=function(e){e==mxConstants.NONE&&(e=null),this.state.fontColor=e},mxAbstractCanvas2D.prototype.setFontBackgroundColor=function(e){e==mxConstants.NONE&&(e=null),this.state.fontBackgroundColor=e},mxAbstractCanvas2D.prototype.setFontBorderColor=function(e){e==mxConstants.NONE&&(e=null),this.state.fontBorderColor=e},mxAbstractCanvas2D.prototype.setFontSize=function(e){this.state.fontSize=e},mxAbstractCanvas2D.prototype.setFontFamily=function(e){this.state.fontFamily=e},mxAbstractCanvas2D.prototype.setFontStyle=function(e){null==e&&(e=0),this.state.fontStyle=e},mxAbstractCanvas2D.prototype.setShadow=function(e){this.state.shadow=e},mxAbstractCanvas2D.prototype.setShadowColor=function(e){e==mxConstants.NONE&&(e=null),this.state.shadowColor=e},mxAbstractCanvas2D.prototype.setShadowAlpha=function(e){this.state.shadowAlpha=e},mxAbstractCanvas2D.prototype.setShadowOffset=function(e,n){this.state.shadowDx=e,this.state.shadowDy=n},mxAbstractCanvas2D.prototype.begin=function(){this.lastY=this.lastX=0,this.path=[]},mxAbstractCanvas2D.prototype.moveTo=function(e,n){this.addOp(this.moveOp,e,n)},mxAbstractCanvas2D.prototype.lineTo=function(e,n){this.addOp(this.lineOp,e,n)},mxAbstractCanvas2D.prototype.quadTo=function(e,n,t,a){this.addOp(this.quadOp,e,n,t,a)},mxAbstractCanvas2D.prototype.curveTo=function(e,n,t,a,i,s){this.addOp(this.curveOp,e,n,t,a,i,s)},mxAbstractCanvas2D.prototype.arcTo=function(e,n,t,a,i,s,o){for(e=mxUtils.arcToCurves(this.lastX,this.lastY,e,n,t,a,i,s,o),n=0;n<e.length;n+=6)this.curveTo(e[n],e[n+1],e[n+2],e[n+3],e[n+4],e[n+5])},mxAbstractCanvas2D.prototype.close=function(e,n,t,a,i,s){this.addOp(this.closeOp)},mxAbstractCanvas2D.prototype.end=function(){},mxUtils.extend(mxXmlCanvas2D,mxAbstractCanvas2D),mxXmlCanvas2D.prototype.textEnabled=!0,mxXmlCanvas2D.prototype.compressed=!0,mxXmlCanvas2D.prototype.writeDefaults=function(){var e;(e=this.createElement("fontfamily")).setAttribute("family",mxConstants.DEFAULT_FONTFAMILY),this.root.appendChild(e),(e=this.createElement("fontsize")).setAttribute("size",mxConstants.DEFAULT_FONTSIZE),this.root.appendChild(e),(e=this.createElement("shadowcolor")).setAttribute("color",mxConstants.SHADOWCOLOR),this.root.appendChild(e),(e=this.createElement("shadowalpha")).setAttribute("alpha",mxConstants.SHADOW_OPACITY),this.root.appendChild(e),(e=this.createElement("shadowoffset")).setAttribute("dx",mxConstants.SHADOW_OFFSET_X),e.setAttribute("dy",mxConstants.SHADOW_OFFSET_Y),this.root.appendChild(e)},mxXmlCanvas2D.prototype.format=function(e){return parseFloat(parseFloat(e).toFixed(2))},mxXmlCanvas2D.prototype.createElement=function(e){return this.root.ownerDocument.createElement(e)},mxXmlCanvas2D.prototype.save=function(){this.compressed&&mxAbstractCanvas2D.prototype.save.apply(this,arguments),this.root.appendChild(this.createElement("save"))},mxXmlCanvas2D.prototype.restore=function(){this.compressed&&mxAbstractCanvas2D.prototype.restore.apply(this,arguments),this.root.appendChild(this.createElement("restore"))},mxXmlCanvas2D.prototype.scale=function(e){if(this.compressed){if(this.state.scale==e)return;mxAbstractCanvas2D.prototype.setAlpha.apply(this,arguments)}var n=this.createElement("scale");n.setAttribute("scale",e),this.root.appendChild(n)},mxXmlCanvas2D.prototype.translate=function(e,n){var t=this.createElement("translate");t.setAttribute("dx",this.format(e)),t.setAttribute("dy",this.format(n)),this.root.appendChild(t)},mxXmlCanvas2D.prototype.rotate=function(e,n,t,a,i){var s=this.createElement("rotate");(0!=e||n||t)&&(s.setAttribute("theta",this.format(e)),s.setAttribute("flipH",n?"1":"0"),s.setAttribute("flipV",t?"1":"0"),s.setAttribute("cx",this.format(a)),s.setAttribute("cy",this.format(i)),this.root.appendChild(s))},mxXmlCanvas2D.prototype.setAlpha=function(e){if(this.compressed){if(this.state.alpha==e)return;mxAbstractCanvas2D.prototype.setAlpha.apply(this,arguments)}var n=this.createElement("alpha");n.setAttribute("alpha",this.format(e)),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setFillColor=function(e){if(e==mxConstants.NONE&&(e=null),this.compressed){if(this.state.fillColor==e)return;mxAbstractCanvas2D.prototype.setFillColor.apply(this,arguments)}var n=this.createElement("fillcolor");n.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setGradient=function(e,n,t,a,i,s,o,r,l){if(null!=e&&null!=n){mxAbstractCanvas2D.prototype.setGradient.apply(this,arguments);var d=this.createElement("gradient");d.setAttribute("c1",e),d.setAttribute("c2",n),d.setAttribute("x",this.format(t)),d.setAttribute("y",this.format(a)),d.setAttribute("w",this.format(i)),d.setAttribute("h",this.format(s)),null!=o&&d.setAttribute("direction",o),null!=r&&d.setAttribute("alpha1",r),null!=l&&d.setAttribute("alpha2",l),this.root.appendChild(d)}},mxXmlCanvas2D.prototype.setStrokeColor=function(e){if(e==mxConstants.NONE&&(e=null),this.compressed){if(this.state.strokeColor==e)return;mxAbstractCanvas2D.prototype.setStrokeColor.apply(this,arguments)}var n=this.createElement("strokecolor");n.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setStrokeWidth=function(e){if(this.compressed){if(this.state.strokeWidth==e)return;mxAbstractCanvas2D.prototype.setStrokeWidth.apply(this,arguments)}var n=this.createElement("strokewidth");n.setAttribute("width",this.format(e)),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setDashed=function(e){if(this.compressed){if(this.state.dashed==e)return;mxAbstractCanvas2D.prototype.setDashed.apply(this,arguments)}var n=this.createElement("dashed");n.setAttribute("dashed",e?"1":"0"),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setDashPattern=function(e){if(this.compressed){if(this.state.dashPattern==e)return;mxAbstractCanvas2D.prototype.setDashPattern.apply(this,arguments)}var n=this.createElement("dashpattern");n.setAttribute("pattern",e),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setLineCap=function(e){if(this.compressed){if(this.state.lineCap==e)return;mxAbstractCanvas2D.prototype.setLineCap.apply(this,arguments)}var n=this.createElement("linecap");n.setAttribute("cap",e),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setLineJoin=function(e){if(this.compressed){if(this.state.lineJoin==e)return;mxAbstractCanvas2D.prototype.setLineJoin.apply(this,arguments)}var n=this.createElement("linejoin");n.setAttribute("join",e),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setMiterLimit=function(e){if(this.compressed){if(this.state.miterLimit==e)return;mxAbstractCanvas2D.prototype.setMiterLimit.apply(this,arguments)}var n=this.createElement("miterlimit");n.setAttribute("limit",e),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setFontColor=function(e){if(this.textEnabled){if(e==mxConstants.NONE&&(e=null),this.compressed){if(this.state.fontColor==e)return;mxAbstractCanvas2D.prototype.setFontColor.apply(this,arguments)}var n=this.createElement("fontcolor");n.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(n)}},mxXmlCanvas2D.prototype.setFontBackgroundColor=function(e){if(this.textEnabled){if(e==mxConstants.NONE&&(e=null),this.compressed){if(this.state.fontBackgroundColor==e)return;mxAbstractCanvas2D.prototype.setFontBackgroundColor.apply(this,arguments)}var n=this.createElement("fontbackgroundcolor");n.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(n)}},mxXmlCanvas2D.prototype.setFontBorderColor=function(e){if(this.textEnabled){if(e==mxConstants.NONE&&(e=null),this.compressed){if(this.state.fontBorderColor==e)return;mxAbstractCanvas2D.prototype.setFontBorderColor.apply(this,arguments)}var n=this.createElement("fontbordercolor");n.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(n)}},mxXmlCanvas2D.prototype.setFontSize=function(e){if(this.textEnabled){if(this.compressed){if(this.state.fontSize==e)return;mxAbstractCanvas2D.prototype.setFontSize.apply(this,arguments)}var n=this.createElement("fontsize");n.setAttribute("size",e),this.root.appendChild(n)}},mxXmlCanvas2D.prototype.setFontFamily=function(e){if(this.textEnabled){if(this.compressed){if(this.state.fontFamily==e)return;mxAbstractCanvas2D.prototype.setFontFamily.apply(this,arguments)}var n=this.createElement("fontfamily");n.setAttribute("family",e),this.root.appendChild(n)}},mxXmlCanvas2D.prototype.setFontStyle=function(e){if(this.textEnabled){if(null==e&&(e=0),this.compressed){if(this.state.fontStyle==e)return;mxAbstractCanvas2D.prototype.setFontStyle.apply(this,arguments)}var n=this.createElement("fontstyle");n.setAttribute("style",e),this.root.appendChild(n)}},mxXmlCanvas2D.prototype.setShadow=function(e){if(this.compressed){if(this.state.shadow==e)return;mxAbstractCanvas2D.prototype.setShadow.apply(this,arguments)}var n=this.createElement("shadow");n.setAttribute("enabled",e?"1":"0"),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setShadowColor=function(e){if(this.compressed){if(e==mxConstants.NONE&&(e=null),this.state.shadowColor==e)return;mxAbstractCanvas2D.prototype.setShadowColor.apply(this,arguments)}var n=this.createElement("shadowcolor");n.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setShadowAlpha=function(e){if(this.compressed){if(this.state.shadowAlpha==e)return;mxAbstractCanvas2D.prototype.setShadowAlpha.apply(this,arguments)}var n=this.createElement("shadowalpha");n.setAttribute("alpha",e),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setShadowOffset=function(e,n){if(this.compressed){if(this.state.shadowDx==e&&this.state.shadowDy==n)return;mxAbstractCanvas2D.prototype.setShadowOffset.apply(this,arguments)}var t=this.createElement("shadowoffset");t.setAttribute("dx",e),t.setAttribute("dy",n),this.root.appendChild(t)},mxXmlCanvas2D.prototype.rect=function(e,n,t,a){var i=this.createElement("rect");i.setAttribute("x",this.format(e)),i.setAttribute("y",this.format(n)),i.setAttribute("w",this.format(t)),i.setAttribute("h",this.format(a)),this.root.appendChild(i)},mxXmlCanvas2D.prototype.roundrect=function(e,n,t,a,i,s){var o=this.createElement("roundrect");o.setAttribute("x",this.format(e)),o.setAttribute("y",this.format(n)),o.setAttribute("w",this.format(t)),o.setAttribute("h",this.format(a)),o.setAttribute("dx",this.format(i)),o.setAttribute("dy",this.format(s)),this.root.appendChild(o)},mxXmlCanvas2D.prototype.ellipse=function(e,n,t,a){var i=this.createElement("ellipse");i.setAttribute("x",this.format(e)),i.setAttribute("y",this.format(n)),i.setAttribute("w",this.format(t)),i.setAttribute("h",this.format(a)),this.root.appendChild(i)},mxXmlCanvas2D.prototype.image=function(e,n,t,a,i,s,o,r){i=this.converter.convert(i);var l=this.createElement("image");l.setAttribute("x",this.format(e)),l.setAttribute("y",this.format(n)),l.setAttribute("w",this.format(t)),l.setAttribute("h",this.format(a)),l.setAttribute("src",i),l.setAttribute("aspect",s?"1":"0"),l.setAttribute("flipH",o?"1":"0"),l.setAttribute("flipV",r?"1":"0"),this.root.appendChild(l)},mxXmlCanvas2D.prototype.begin=function(){this.root.appendChild(this.createElement("begin")),this.lastY=this.lastX=0},mxXmlCanvas2D.prototype.moveTo=function(e,n){var t=this.createElement("move");t.setAttribute("x",this.format(e)),t.setAttribute("y",this.format(n)),this.root.appendChild(t),this.lastX=e,this.lastY=n},mxXmlCanvas2D.prototype.lineTo=function(e,n){var t=this.createElement("line");t.setAttribute("x",this.format(e)),t.setAttribute("y",this.format(n)),this.root.appendChild(t),this.lastX=e,this.lastY=n},mxXmlCanvas2D.prototype.quadTo=function(e,n,t,a){var i=this.createElement("quad");i.setAttribute("x1",this.format(e)),i.setAttribute("y1",this.format(n)),i.setAttribute("x2",this.format(t)),i.setAttribute("y2",this.format(a)),this.root.appendChild(i),this.lastX=t,this.lastY=a},mxXmlCanvas2D.prototype.curveTo=function(e,n,t,a,i,s){var o=this.createElement("curve");o.setAttribute("x1",this.format(e)),o.setAttribute("y1",this.format(n)),o.setAttribute("x2",this.format(t)),o.setAttribute("y2",this.format(a)),o.setAttribute("x3",this.format(i)),o.setAttribute("y3",this.format(s)),this.root.appendChild(o),this.lastX=i,this.lastY=s},mxXmlCanvas2D.prototype.close=function(){this.root.appendChild(this.createElement("close"))},mxXmlCanvas2D.prototype.text=function(e,n,t,a,i,s,o,r,l,d,c,m){if(this.textEnabled&&null!=i){mxUtils.isNode(i)&&(i=mxUtils.getOuterHtml(i));var u=this.createElement("text");u.setAttribute("x",this.format(e)),u.setAttribute("y",this.format(n)),u.setAttribute("w",this.format(t)),u.setAttribute("h",this.format(a)),u.setAttribute("str",i),null!=s&&u.setAttribute("align",s),null!=o&&u.setAttribute("valign",o),u.setAttribute("wrap",r?"1":"0"),null==l&&(l=""),u.setAttribute("format",l),null!=d&&u.setAttribute("fill",d?"1":"0"),null!=c&&u.setAttribute("clip",c?"1":"0"),null!=m&&u.setAttribute("rotation",m),this.root.appendChild(u)}},mxXmlCanvas2D.prototype.stroke=function(){this.root.appendChild(this.createElement("stroke"))},mxXmlCanvas2D.prototype.fill=function(){this.root.appendChild(this.createElement("fill"))},mxXmlCanvas2D.prototype.fillAndStroke=function(){this.root.appendChild(this.createElement("fillstroke"))},mxUtils.extend(mxSvgCanvas2D,mxAbstractCanvas2D),mxSvgCanvas2D.prototype.node=null,mxSvgCanvas2D.prototype.matchHtmlAlignment=!0,mxSvgCanvas2D.prototype.textEnabled=!0,mxSvgCanvas2D.prototype.foEnabled=!0,mxSvgCanvas2D.prototype.strokeTolerance=0,mxSvgCanvas2D.prototype.refCount=0,mxSvgCanvas2D.prototype.blockImagePointerEvents=!1,mxSvgCanvas2D.prototype.reset=function(){mxAbstractCanvas2D.prototype.reset.apply(this,arguments),this.gradients=[]},mxSvgCanvas2D.prototype.createStyle=function(e){return(e=this.createElement("style")).setAttribute("type","text/css"),mxUtils.write(e,"svg{font-family:"+mxConstants.DEFAULT_FONTFAMILY+";font-size:"+mxConstants.DEFAULT_FONTSIZE+";fill:none;stroke-miterlimit:10}"),e},mxSvgCanvas2D.prototype.createElement=function(e,n){if(null!=this.root.ownerDocument.createElementNS)return this.root.ownerDocument.createElementNS(n||mxConstants.NS_SVG,e);var t=this.root.ownerDocument.createElement(e);return null!=n&&t.setAttribute("xmlns",n),t},mxSvgCanvas2D.prototype.createGradientId=function(e,n,t,a,i){return"#"==e.charAt(0)&&(e=e.substring(1)),"#"==n.charAt(0)&&(n=n.substring(1)),e=e.toLowerCase()+"-"+t,n=n.toLowerCase()+"-"+a,(t=null)==i||i==mxConstants.DIRECTION_SOUTH?t="s":i==mxConstants.DIRECTION_EAST?t="e":(a=e,e=n,n=a,i==mxConstants.DIRECTION_NORTH?t="s":i==mxConstants.DIRECTION_WEST&&(t="e")),"mx-gradient-"+e+"-"+n+"-"+t},mxSvgCanvas2D.prototype.getSvgGradient=function(e,n,t,a,i){var s=this.createGradientId(e,n,t,a,i),o=this.gradients[s];if(null==o){var r=this.root.ownerSVGElement,l=0,d=s+"-"+l;if(null!=r)for(o=r.ownerDocument.getElementById(d);null!=o&&o.ownerSVGElement!=r;)d=s+"-"+l++,o=r.ownerDocument.getElementById(d);else d="id"+ ++this.refCount;null==o&&((o=this.createSvgGradient(e,n,t,a,i)).setAttribute("id",d),null!=this.defs?this.defs.appendChild(o):r.appendChild(o)),this.gradients[s]=o}return o.getAttribute("id")},mxSvgCanvas2D.prototype.createSvgGradient=function(e,n,t,a,i){var s=this.createElement("linearGradient");return s.setAttribute("x1","0%"),s.setAttribute("y1","0%"),s.setAttribute("x2","0%"),s.setAttribute("y2","0%"),null==i||i==mxConstants.DIRECTION_SOUTH?s.setAttribute("y2","100%"):i==mxConstants.DIRECTION_EAST?s.setAttribute("x2","100%"):i==mxConstants.DIRECTION_NORTH?s.setAttribute("y1","100%"):i==mxConstants.DIRECTION_WEST&&s.setAttribute("x1","100%"),t=t<1?";stop-opacity:"+t:"",(i=this.createElement("stop")).setAttribute("offset","0%"),i.setAttribute("style","stop-color:"+e+t),s.appendChild(i),t=a<1?";stop-opacity:"+a:"",(i=this.createElement("stop")).setAttribute("offset","100%"),i.setAttribute("style","stop-color:"+n+t),s.appendChild(i),s},mxSvgCanvas2D.prototype.addNode=function(e,n){var t=this.node,a=this.state;if(null!=t){if("path"==t.nodeName){if(!(null!=this.path&&0<this.path.length))return;t.setAttribute("d",this.path.join(" "))}e&&null!=a.fillColor?this.updateFill():this.styleEnabled||("ellipse"!=t.nodeName||!mxClient.IS_NS||mxClient.IS_GC||mxClient.IS_SF?t.setAttribute("fill","none"):t.setAttribute("fill","transparent"),e=!1),n&&null!=a.strokeColor?this.updateStroke():this.styleEnabled||t.setAttribute("stroke","none"),null!=a.transform&&0<a.transform.length&&t.setAttribute("transform",a.transform),a.shadow&&this.root.appendChild(this.createShadow(t)),0<this.strokeTolerance&&!e&&this.root.appendChild(this.createTolerance(t)),this.pointerEvents&&("path"!=t.nodeName||this.path[this.path.length-1]==this.closeOp)&&t.setAttribute("pointer-events","all"),this.root.appendChild(t)}},mxSvgCanvas2D.prototype.updateFill=function(){var e=this.state;e.alpha<1&&this.node.setAttribute("fill-opacity",e.alpha),null!=e.fillColor&&(null!=e.gradientColor?(e=this.getSvgGradient(e.fillColor,e.gradientColor,e.fillAlpha,e.gradientAlpha,e.gradientDirection),this.node.setAttribute("fill","url(#"+e+")")):this.node.setAttribute("fill",e.fillColor.toLowerCase()))},mxSvgCanvas2D.prototype.updateStroke=function(){var e=this.state;this.node.setAttribute("stroke",e.strokeColor.toLowerCase()),e.alpha<1&&this.node.setAttribute("stroke-opacity",e.alpha);var n=Math.max(1,this.format(e.strokeWidth*e.scale));1!=n&&this.node.setAttribute("stroke-width",n),"path"==this.node.nodeName&&this.updateStrokeAttributes(),e.dashed&&this.node.setAttribute("stroke-dasharray",this.createDashPattern(n))},mxSvgCanvas2D.prototype.updateStrokeAttributes=function(){var e=this.state;if(null!=e.lineJoin&&"miter"!=e.lineJoin&&this.node.setAttribute("stroke-linejoin",e.lineJoin),null!=e.lineCap){var n=e.lineCap;"flat"==n&&(n="butt"),"butt"!=n&&this.node.setAttribute("stroke-linecap",n)}null!=e.miterLimit&&(!this.styleEnabled||10!=e.miterLimit)&&this.node.setAttribute("stroke-miterlimit",e.miterLimit)},mxSvgCanvas2D.prototype.createDashPattern=function(e){var n=this.state.dashPattern.split(" "),t=[];if(0<n.length)for(var a=0;a<n.length;a++)t[a]=Number(n[a])*e;return t.join(" ")},mxSvgCanvas2D.prototype.createTolerance=function(e){e=e.cloneNode(!0);var n=parseFloat(e.getAttribute("stroke-width")||1)+this.strokeTolerance;return e.setAttribute("pointer-events","stroke"),e.setAttribute("visibility","hidden"),e.removeAttribute("stroke-dasharray"),e.setAttribute("stroke-width",n),e.setAttribute("fill","none"),e.setAttribute("stroke",mxClient.IS_OP?"none":"white"),e},mxSvgCanvas2D.prototype.createShadow=function(e){e=e.cloneNode(!0);var n=this.state;return"none"!=e.getAttribute("fill")&&e.setAttribute("fill",n.shadowColor),"none"!=e.getAttribute("stroke")&&e.setAttribute("stroke",n.shadowColor),e.setAttribute("transform","translate("+this.format(n.shadowDx*n.scale)+","+this.format(n.shadowDy*n.scale)+")"+(n.transform||"")),e.setAttribute("opacity",n.shadowAlpha),e},mxSvgCanvas2D.prototype.rotate=function(e,n,t,a,i){if(0!=e||n||t){var s=this.state;if(a+=s.dx,i+=s.dy,a*=s.scale,i*=s.scale,s.transform=s.transform||"",n&&t)e+=180;else if(n^t){var o=n?a:0,r=n?-1:1,l=t?i:0,d=t?-1:1;s.transform+="translate("+this.format(o)+","+this.format(l)+")scale("+this.format(r)+","+this.format(d)+")translate("+this.format(-o)+","+this.format(-l)+")"}(n?!t:t)&&(e*=-1),0!=e&&(s.transform+="rotate("+this.format(e)+","+this.format(a)+","+this.format(i)+")"),s.rotation+=e,s.rotationCx=a,s.rotationCy=i}},mxSvgCanvas2D.prototype.begin=function(){mxAbstractCanvas2D.prototype.begin.apply(this,arguments),this.node=this.createElement("path")},mxSvgCanvas2D.prototype.rect=function(e,n,t,a){var i=this.state,s=this.createElement("rect");s.setAttribute("x",this.format((e+i.dx)*i.scale)),s.setAttribute("y",this.format((n+i.dy)*i.scale)),s.setAttribute("width",this.format(t*i.scale)),s.setAttribute("height",this.format(a*i.scale)),this.node=s},mxSvgCanvas2D.prototype.roundrect=function(e,n,t,a,i,s){this.rect(e,n,t,a),0<i&&this.node.setAttribute("rx",this.format(i*this.state.scale)),0<s&&this.node.setAttribute("ry",this.format(s*this.state.scale))},mxSvgCanvas2D.prototype.ellipse=function(e,n,t,a){var i=this.state,s=this.createElement("ellipse");s.setAttribute("cx",Math.round((e+t/2+i.dx)*i.scale)),s.setAttribute("cy",Math.round((n+a/2+i.dy)*i.scale)),s.setAttribute("rx",t/2*i.scale),s.setAttribute("ry",a/2*i.scale),this.node=s},mxSvgCanvas2D.prototype.image=function(e,n,t,a,i,s,o,r){i=this.converter.convert(i),s=null==s||s,o=null!=o&&o,r=null!=r&&r;var l=this.state;e+=l.dx,n+=l.dy;var d=this.createElement("image");if(d.setAttribute("x",this.format(e*l.scale)),d.setAttribute("y",this.format(n*l.scale)),d.setAttribute("width",this.format(t*l.scale)),d.setAttribute("height",this.format(a*l.scale)),null==d.setAttributeNS?d.setAttribute("xlink:href",i):d.setAttributeNS(mxConstants.NS_XLINK,"href",i),s||d.setAttribute("preserveAspectRatio","none"),l.alpha<1&&d.setAttribute("opacity",l.alpha),i=this.state.transform||"",o||r){var c=s=1,m=0,u=0;o&&(s=-1,m=-t-2*e),r&&(c=-1,u=-a-2*n),i+="scale("+s+","+c+")translate("+m+","+u+")"}0<i.length&&d.setAttribute("transform",i),this.root.appendChild(d),this.blockImagePointerEvents&&(d.setAttribute("style","pointer-events:none"),(d=this.createElement("rect")).setAttribute("visibility","hidden"),d.setAttribute("pointer-events","fill"),d.setAttribute("x",this.format(e*l.scale)),d.setAttribute("y",this.format(n*l.scale)),d.setAttribute("width",this.format(t*l.scale)),d.setAttribute("height",this.format(a*l.scale)),this.root.appendChild(d))},mxSvgCanvas2D.prototype.createDiv=function(e,n,t,a,i){return t=this.state,a="display:inline-block;font-size:"+Math.round(t.fontSize)+"px;font-family:"+t.fontFamily+";color:"+t.fontColor+";line-height:"+Math.round(t.fontSize*mxConstants.LINE_HEIGHT)+"px;"+a,(t.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(a+="font-weight:bold;"),(t.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(a+="font-style:italic;"),(t.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&(a+="font-decoration:underline;"),n==mxConstants.ALIGN_CENTER?a+="text-align:center;":n==mxConstants.ALIGN_RIGHT&&(a+="text-align:right;"),n="",null!=t.fontBackgroundColor&&(n+="background-color:"+t.fontBackgroundColor+";"),null!=t.fontBorderColor&&(n+="border:1px solid "+t.fontBorderColor+";"),mxUtils.isNode(e)||((t=document.createElement("textarea")).innerHTML=e.replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/</g,"<").replace(/>/g,">"),e=t.value,i?a+=n:0<n.length&&(e='<div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;'+n+'">'+e+"</div>")),!mxClient.IS_IE&&document.createElementNS?((i=document.createElementNS("http://www.w3.org/1999/xhtml","div")).setAttribute("style",a),mxUtils.isNode(e)?this.root.ownerDocument!=document?i.appendChild(e.cloneNode(!0)):i.appendChild(e):i.innerHTML=e,i):(mxUtils.isNode(e)&&this.root.ownerDocument!=document&&(e=e.outerHTML),e=e.replace(/<br>/g,"<br />").replace(/<hr>/g,"<hr />"),mxUtils.parseXml('<div xmlns="http://www.w3.org/1999/xhtml" style="'+a+'">'+e+"</div>").documentElement)},mxSvgCanvas2D.prototype.text=function(e,n,t,a,i,s,o,r,l,d,c,m){if(this.textEnabled&&null!=i){m=null!=m?m:0;var u=this.state;if(e+=u.dx,n+=u.dy,this.foEnabled&&"html"==l){var p="vertical-align:top;";if(c?(p+="overflow:hidden;",0<a&&(p+="max-height:"+Math.round(a)+"px;"),0<t&&(p+="width:"+Math.round(t)+"px;")):d&&(p+="width:"+Math.round(t)+"px;",0<a&&(p+="max-height:"+Math.round(a)+"px;")),r?(!c&&0<t&&(p+="width:"+Math.round(t)+"px;"),p+="white-space:normal;"):p+="white-space:nowrap;",r=this.createElement("g"),u.alpha<1&&r.setAttribute("opacity",u.alpha),(l=this.createElement("foreignObject")).setAttribute("pointer-events","all"),null!=(p=this.createDiv(i,s,o,p,d))){r.appendChild(l),this.root.appendChild(r);var g=0;if(mxClient.IS_IE&&!mxClient.IS_SVG){var v=document.createElement("div");v.style.cssText=p.getAttribute("style"),v.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",v.style.visibility="hidden",v.innerHTML=mxUtils.isNode(i)?i.outerHTML:i,document.body.appendChild(v),g=v.offsetWidth,a=mxClient.IS_QUIRKS&&0<a&&c?Math.min(a,v.offsetHeight+2):v.offsetHeight,v.parentNode.removeChild(v),l.appendChild(p)}else this.root.ownerDocument!=document?(p.style.visibility="hidden",document.body.appendChild(p),g=p.offsetWidth,a=p.offsetHeight,l.appendChild(p),p.style.visibility=""):(l.appendChild(p),g=p.offsetWidth,a=p.offsetHeight);t=d?Math.max(t,g):g,u.alpha<1&&r.setAttribute("opacity",u.alpha),d=i=0,s==mxConstants.ALIGN_CENTER?i-=t/2:s==mxConstants.ALIGN_RIGHT&&(i-=t),e+=i,o==mxConstants.ALIGN_MIDDLE?d-=a/2:o==mxConstants.ALIGN_BOTTOM&&(d-=a),n+=d,s=1!=u.scale?"scale("+u.scale+")":"",0!=u.rotation&&this.rotateHtml?(s+="rotate("+u.rotation+","+t/2+","+a/2+")",e=(n=this.rotatePoint((e+t/2)*u.scale,(n+a/2)*u.scale,u.rotation,u.rotationCx,u.rotationCy)).x-t*u.scale/2,n=n.y-a*u.scale/2):(e*=u.scale,n*=u.scale),0!=m&&(s+="rotate("+m+","+-i+","+-d+")"),r.setAttribute("transform","translate("+Math.round(e)+","+Math.round(n)+")"+s),l.setAttribute("width",Math.round(Math.max(1,t))),l.setAttribute("height",Math.round(Math.max(1,a)))}}else this.plainText(e,n,t,a,i,s,o,r,d,c,m)}},mxSvgCanvas2D.prototype.createClip=function(e,n,t,a){for(var i="mx-clip-"+(e=Math.round(e))+"-"+(n=Math.round(n))+"-"+(t=Math.round(t))+"-"+(a=Math.round(a)),s=0,o=i+"-"+s;null!=document.getElementById(o);)o=i+"-"+ ++s;return clip=this.createElement("clipPath"),clip.setAttribute("id",o),(i=this.createElement("rect")).setAttribute("x",e),i.setAttribute("y",n),i.setAttribute("width",t),i.setAttribute("height",a),clip.appendChild(i),clip},mxSvgCanvas2D.prototype.plainText=function(e,n,t,a,i,s,o,r,l,d,c){c=null!=c?c:0,r=this.state;var m=Math.round(r.fontSize),u=this.createElement("g"),p=r.transform||"";if(0!=c&&(p+="rotate("+c+","+this.format(e*r.scale)+","+this.format(n*r.scale)+")"),d&&0<t&&0<a){var g=e;c=n,s==mxConstants.ALIGN_CENTER?g-=t/2:s==mxConstants.ALIGN_RIGHT&&(g-=t),o==mxConstants.ALIGN_MIDDLE?c-=a/2:o==mxConstants.ALIGN_BOTTOM&&(c-=a),c=this.createClip(g*r.scale-2,c*r.scale-2,t*r.scale+4,a*r.scale+4),null!=this.defs?this.defs.appendChild(c):this.root.appendChild(c),u.setAttribute("clip-path","url(#"+c.getAttribute("id")+")")}this.updateFont(u,s),"start"!=(c=s==mxConstants.ALIGN_RIGHT?"end":s==mxConstants.ALIGN_CENTER?"middle":"start")&&u.setAttribute("text-anchor",c),(!this.styleEnabled||m!=mxConstants.DEFAULT_FONTSIZE)&&u.setAttribute("font-size",Math.round(m*r.scale)+"px"),0<p.length&&u.setAttribute("transform",p),r.alpha<1&&u.setAttribute("opacity",r.alpha);p=i.split("\n"),g=Math.round(m*mxConstants.LINE_HEIGHT);var v=m+(p.length-1)*g;for(c=n+m-1,o==mxConstants.ALIGN_MIDDLE?c-=(a=(this.matchHtmlAlignment&&d&&0<a?Math.min(v,a):v)/2)+1:o==mxConstants.ALIGN_BOTTOM&&(c-=(a=this.matchHtmlAlignment&&d&&0<a?Math.min(v,a):v)+2),a=0;a<p.length;a++)0<p[a].length&&0<mxUtils.trim(p[a]).length&&((d=this.createElement("text")).setAttribute("x",this.format(e*r.scale)),d.setAttribute("y",this.format(c*r.scale)),mxUtils.write(d,p[a]),u.appendChild(d)),c+=g;this.root.appendChild(u),this.addTextBackground(u,i,e,n,t,v,s,o,l)},mxSvgCanvas2D.prototype.updateFont=function(e){var n=this.state;e.setAttribute("fill",n.fontColor),(!this.styleEnabled||n.fontFamily!=mxConstants.DEFAULT_FONTFAMILY)&&e.setAttribute("font-family",n.fontFamily),(n.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&e.setAttribute("font-weight","bold"),(n.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&e.setAttribute("font-style","italic"),(n.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&e.setAttribute("text-decoration","underline")},mxSvgCanvas2D.prototype.addTextBackground=function(e,n,t,a,i,s,o,r,l){var d=this.state;if(null!=d.fontBackgroundColor||null!=d.fontBorderColor){var c=null;null!=(c=l?(o==mxConstants.ALIGN_CENTER?t-=i/2:o==mxConstants.ALIGN_RIGHT&&(t-=i),r==mxConstants.ALIGN_MIDDLE?a-=s/2:r==mxConstants.ALIGN_BOTTOM&&(a-=s),new mxRectangle((t+1)*d.scale,a*d.scale,(i-2)*d.scale,(s+2)*d.scale)):null!=e.getBBox&&this.root.ownerDocument==document?(c=e.getBBox(),n=mxClient.IS_IE&&mxClient.IS_SVG,new mxRectangle(c.x,c.y+(n?0:1),c.width,c.height+(n?1:0))):((c=document.createElement("div")).style.lineHeight=Math.round(d.fontSize*mxConstants.LINE_HEIGHT)+"px",c.style.fontSize=Math.round(d.fontSize)+"px",c.style.fontFamily=d.fontFamily,c.style.whiteSpace="nowrap",c.style.position="absolute",c.style.visibility="hidden",c.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",c.style.zoom="1",(d.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(c.style.fontWeight="bold"),(d.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(c.style.fontStyle="italic"),n=mxUtils.htmlEntities(n,!1),c.innerHTML=n.replace(/\n/g,"<br/>"),document.body.appendChild(c),i=c.offsetWidth,s=c.offsetHeight,c.parentNode.removeChild(c),o==mxConstants.ALIGN_CENTER?t-=i/2:o==mxConstants.ALIGN_RIGHT&&(t-=i),r==mxConstants.ALIGN_MIDDLE?a-=s/2:r==mxConstants.ALIGN_BOTTOM&&(a-=s),new mxRectangle((t+1)*d.scale,(a+2)*d.scale,i*d.scale,(s+1)*d.scale)))&&((n=this.createElement("rect")).setAttribute("fill",d.fontBackgroundColor||"none"),n.setAttribute("stroke",d.fontBorderColor||"none"),n.setAttribute("x",Math.floor(c.x-1)),n.setAttribute("y",Math.floor(c.y-1)),n.setAttribute("width",Math.ceil(c.width+2)),n.setAttribute("height",Math.ceil(c.height)),d=null!=d.fontBorderColor?Math.max(1,this.format(d.scale)):0,n.setAttribute("stroke-width",d),this.root.ownerDocument==document&&1==mxUtils.mod(d,2)&&n.setAttribute("transform","translate(0.5, 0.5)"),e.insertBefore(n,e.firstChild))}},mxSvgCanvas2D.prototype.stroke=function(){this.addNode(!1,!0)},mxSvgCanvas2D.prototype.fill=function(){this.addNode(!0,!1)},mxSvgCanvas2D.prototype.fillAndStroke=function(){this.addNode(!0,!0)};var mxVmlCanvas2D=function(e){mxAbstractCanvas2D.call(this),this.root=e};function mxGuide(e,n){this.graph=e,this.setStates(n)}function mxStencil(e){this.desc=e,this.parseDescription(),this.parseConstraints()}function mxShape(e){this.stencil=e,this.strokewidth=1,this.rotation=0,this.opacity=100,this.flipV=this.flipH=!1}mxUtils.extend(mxVmlCanvas2D,mxAbstractCanvas2D),mxVmlCanvas2D.prototype.node=null,mxVmlCanvas2D.prototype.textEnabled=!0,mxVmlCanvas2D.prototype.moveOp="m",mxVmlCanvas2D.prototype.lineOp="l",mxVmlCanvas2D.prototype.curveOp="c",mxVmlCanvas2D.prototype.closeOp="x",mxVmlCanvas2D.prototype.rotatedHtmlBackground="",mxVmlCanvas2D.prototype.vmlScale=1,mxVmlCanvas2D.prototype.addNode=function(e,n){var t=this.node,a=this.state;if(null!=t){if("shape"==t.nodeName){if(!(null!=this.path&&0<this.path.length))return;t.path=this.path.join(" ")+" e",t.style.width=this.root.style.width,t.style.height=this.root.style.height,t.coordsize=parseInt(t.style.width)+" "+parseInt(t.style.height)}t.strokeweight=this.format(Math.max(1,a.strokeWidth*a.scale/this.vmlScale))+"px",a.shadow&&this.root.appendChild(this.createShadow(t,e&&null!=a.fillColor,n&&null!=a.strokeColor)),n&&null!=a.strokeColor?(t.stroked="true",t.strokecolor=a.strokeColor):t.stroked="false",t.appendChild(this.createStroke()),e&&null!=a.fillColor?t.appendChild(this.createFill()):!this.pointerEvents||"shape"==t.nodeName&&this.path[this.path.length-1]!=this.closeOp?t.filled="false":t.appendChild(this.createTransparentFill()),this.root.appendChild(t)}},mxVmlCanvas2D.prototype.createTransparentFill=function(){var e=document.createElement(mxClient.VML_PREFIX+":fill");return e.src=mxClient.imageBasePath+"/transparent.gif",e.type="tile",e},mxVmlCanvas2D.prototype.createFill=function(){var e=this.state,n=document.createElement(mxClient.VML_PREFIX+":fill");if(n.color=e.fillColor,null!=e.gradientColor){n.type="gradient",n.method="none",n.color2=e.gradientColor;var t=180-e.rotation;t=e.gradientDirection==mxConstants.DIRECTION_WEST?t-(90+("x"==this.root.style.flip?180:0)):e.gradientDirection==mxConstants.DIRECTION_EAST?t+(90+("x"==this.root.style.flip?180:0)):e.gradientDirection==mxConstants.DIRECTION_NORTH?t-(180+("y"==this.root.style.flip?-180:0)):t+("y"==this.root.style.flip?-180:0);"x"!=this.root.style.flip&&"y"!=this.root.style.flip||(t*=-1),n.angle=mxUtils.mod(t,360),n.opacity=100*e.alpha*e.fillAlpha+"%",n.setAttribute(mxClient.OFFICE_PREFIX+":opacity2",100*e.alpha*e.gradientAlpha+"%")}else e.alpha<1&&(n.opacity=100*e.alpha+"%");return n},mxVmlCanvas2D.prototype.createStroke=function(){var e=this.state,n=document.createElement(mxClient.VML_PREFIX+":stroke");return n.endcap=e.lineCap||"flat",n.joinstyle=e.lineJoin||"miter",n.miterlimit=e.miterLimit||"10",e.alpha<1&&(n.opacity=100*e.alpha+"%"),e.dashed&&(n.dashstyle=this.getVmlDashStyle()),n},mxVmlCanvas2D.prototype.getVmlDashStyle=function(){var e="dash";if(null!=this.state.dashPattern){var n=this.state.dashPattern.split(" ");0<n.length&&1==n[0]&&(e="0 2")}return e},mxVmlCanvas2D.prototype.createShadow=function(e,n,t){var a=this.state,i=-a.rotation*(Math.PI/180),s=Math.cos(i),o=(i=Math.sin(i),a.shadowDx*a.scale),r=a.shadowDy*a.scale;"x"==this.root.style.flip?o*=-1:"y"==this.root.style.flip&&(r*=-1);var l=e.cloneNode(!0);return l.style.marginLeft=Math.round(o*s-r*i)+"px",l.style.marginTop=Math.round(o*i+r*s)+"px",8==document.documentMode&&(l.strokeweight=e.strokeweight,"shape"==e.nodeName&&(l.path=this.path.join(" ")+" e",l.style.width=this.root.style.width,l.style.height=this.root.style.height,l.coordsize=parseInt(e.style.width)+" "+parseInt(e.style.height))),t?(l.strokecolor=a.shadowColor,l.appendChild(this.createShadowStroke())):l.stroked="false",n?l.appendChild(this.createShadowFill()):l.filled="false",l},mxVmlCanvas2D.prototype.createShadowFill=function(){var e=document.createElement(mxClient.VML_PREFIX+":fill");return e.color=this.state.shadowColor,e.opacity=100*this.state.alpha*this.state.shadowAlpha+"%",e},mxVmlCanvas2D.prototype.createShadowStroke=function(){var e=this.createStroke();return e.opacity=100*this.state.alpha*this.state.shadowAlpha+"%",e},mxVmlCanvas2D.prototype.rotate=function(e,n,t,a,i){n&&t?e+=180:n?this.root.style.flip="x":t&&(this.root.style.flip="y"),(n?!t:t)&&(e*=-1),this.root.style.rotation=e,this.state.rotation+=e,this.state.rotationCx=a,this.state.rotationCy=i},mxVmlCanvas2D.prototype.begin=function(){mxAbstractCanvas2D.prototype.begin.apply(this,arguments),this.node=document.createElement(mxClient.VML_PREFIX+":shape"),this.node.style.position="absolute"},mxVmlCanvas2D.prototype.quadTo=function(e,n,t,a){var i=this.state,s=(this.lastX+i.dx)*i.scale,o=(this.lastY+i.dy)*i.scale;e=(e+i.dx)*i.scale;o+=2/3*((n=(n+i.dy)*i.scale)-o);var r=(t=(t+i.dx)*i.scale)+2/3*(e-t);n=(a=(a+i.dy)*i.scale)+2/3*(n-a),this.path.push("c "+this.format(s+2/3*(e-s))+" "+this.format(o)+" "+this.format(r)+" "+this.format(n)+" "+this.format(t)+" "+this.format(a)),this.lastX=t/i.scale-i.dx,this.lastY=a/i.scale-i.dy},mxVmlCanvas2D.prototype.createRect=function(e,n,t,a,i){var s=this.state;return(e=document.createElement(e)).style.position="absolute",e.style.left=this.format((n+s.dx)*s.scale)+"px",e.style.top=this.format((t+s.dy)*s.scale)+"px",e.style.width=this.format(a*s.scale)+"px",e.style.height=this.format(i*s.scale)+"px",e},mxVmlCanvas2D.prototype.rect=function(e,n,t,a){this.node=this.createRect(mxClient.VML_PREFIX+":rect",e,n,t,a)},mxVmlCanvas2D.prototype.roundrect=function(e,n,t,a,i,s){this.node=this.createRect(mxClient.VML_PREFIX+":roundrect",e,n,t,a),this.node.setAttribute("arcsize",Math.max(100*i/t,100*s/a)+"%")},mxVmlCanvas2D.prototype.ellipse=function(e,n,t,a){this.node=this.createRect(mxClient.VML_PREFIX+":oval",e,n,t,a)},mxVmlCanvas2D.prototype.image=function(e,n,t,a,i,s,o,r){var l=null;s?((l=this.createRect(mxClient.VML_PREFIX+":rect",e,n,t,a)).stroked="false",(e=document.createElement(mxClient.VML_PREFIX+":fill")).aspect=s?"atmost":"ignore",e.rotate="true",e.type="frame",e.src=i,l.appendChild(e)):(l=this.createRect(mxClient.VML_PREFIX+":image",e,n,t,a)).src=i,o&&r?l.style.rotation="180":o?l.style.flip="x":r&&(l.style.flip="y"),this.state.alpha<1&&(l.style.filter+="alpha(opacity="+100*this.state.alpha+")"),this.root.appendChild(l)},mxVmlCanvas2D.prototype.createDiv=function(e,n,t,a){t=document.createElement("div");var i=this.state,s="";return null!=i.fontBackgroundColor&&(s+="background-color:"+i.fontBackgroundColor+";"),null!=i.fontBorderColor&&(s+="border:1px solid "+i.fontBorderColor+";"),mxUtils.isNode(e)?t.appendChild(e):0<s.length&&!a?((a=document.createElement("div")).style.cssText=s,a.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",a.style.zoom="1",a.innerHTML=e,t.appendChild(a)):(t.style.cssText=s,t.innerHTML=e),(e=t.style).fontSize=Math.round(i.fontSize/this.vmlScale)+"px",e.fontFamily=i.fontFamily,e.color=i.fontColor,e.verticalAlign="top",e.textAlign=n||"left",e.lineHeight=Math.round(i.fontSize*mxConstants.LINE_HEIGHT/this.vmlScale)+"px",(i.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(e.fontWeight="bold"),(i.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(e.fontStyle="italic"),(i.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&(e.fontDecoration="underline"),t},mxVmlCanvas2D.prototype.text=function(e,n,t,a,i,s,o,r,l,d,c,m){if(this.textEnabled&&null!=i){var u=this.state;if("html"==l){null!=u.rotation&&(e=(n=this.rotatePoint(e,n,u.rotation,u.rotationCx,u.rotationCy)).x,n=n.y),8==document.documentMode?(e+=u.dx,n+=u.dy):(e*=u.scale,n*=u.scale),(l=8==document.documentMode?document.createElement(mxClient.VML_PREFIX+":group"):document.createElement("div")).style.position="absolute",l.style.display="inline",l.style.left=this.format(e)+"px",l.style.top=this.format(n)+"px",l.style.zoom=u.scale;var p=document.createElement("div");p.style.position="relative",p.style.display="inline";var g=(v=mxUtils.getAlignmentAsPoint(s,o)).x,v=v.y;if(i=this.createDiv(i,s,o,d),s=document.createElement("div"),r?(!c&&0<t&&(i.style.width=Math.round(t)+"px"),i.style.whiteSpace="normal"):i.style.whiteSpace="nowrap",r=u.rotation+(m||0),this.rotateHtml&&0!=r?(s.style.display="inline",s.style.zoom="1",s.appendChild(i),8==document.documentMode&&"DIV"!=this.root.nodeName?(p.appendChild(s),l.appendChild(p)):l.appendChild(s)):8==document.documentMode?(p.appendChild(i),l.appendChild(p)):(i.style.display="inline",l.appendChild(i)),"DIV"!=this.root.nodeName?((m=document.createElement(mxClient.VML_PREFIX+":rect")).stroked="false",m.filled="false",m.appendChild(l),this.root.appendChild(m)):this.root.appendChild(l),c?(i.style.overflow="hidden",0<t&&(i.style.width=Math.round(t)+"px"),0<a&&8==document.documentMode&&(i.style.maxHeight=Math.round(a)+"px")):d&&(i.style.width=t+"px",0<a&&(i.style.maxHeight=Math.round(a)+"px")),this.rotateHtml&&0!=r){t=r*(Math.PI/180),r=parseFloat(parseFloat(Math.cos(t)).toFixed(8)),m=parseFloat(parseFloat(Math.sin(-t)).toFixed(8)),(t%=2*Math.PI)<0&&(t+=2*Math.PI),(t%=Math.PI)>Math.PI/2&&(t=Math.PI-t),o=Math.cos(t);var h=Math.sin(t);8==document.documentMode&&(i.style.display="inline-block",s.style.display="inline-block",p.style.display="inline-block"),i.style.visibility="hidden",document.body.appendChild(i),t=i.offsetWidth,p=i.offsetHeight,mxClient.IS_QUIRKS&&(c||d)&&a<p&&(p=a,i.style.height=p+"px"),c=((a=p)-a*o+t*-h)/2-m*t*(g+.5)+r*a*(v+.5),d=(t-t*o+a*-h)/2+r*t*(g+.5)+m*a*(v+.5),"group"==l.nodeName&&"DIV"==this.root.nodeName?((g=document.createElement("div")).style.display="inline-block",g.style.position="absolute",g.style.left=this.format(e+(d-t/2)*u.scale)+"px",g.style.top=this.format(n+(c-a/2)*u.scale)+"px",l.parentNode.appendChild(g),g.appendChild(l)):(u=8==document.documentMode?1:u.scale,l.style.left=this.format(e+(d-t/2)*u)+"px",l.style.top=this.format(n+(c-a/2)*u)+"px"),s.style.filter="progid:DXImageTransform.Microsoft.Matrix(M11="+r+", M12="+m+", M21="+-m+", M22="+r+", sizingMethod='auto expand')",s.style.backgroundColor=this.rotatedHtmlBackground,this.state.alpha<1&&(s.style.filter+="alpha(opacity="+100*this.state.alpha+")"),i.style.visibility="",s.appendChild(i)}else 8!=document.documentMode?(i.style.verticalAlign="top",this.state.alpha<1&&(l.style.filter="alpha(opacity="+100*this.state.alpha+")"),u=i.parentNode,i.style.visibility="hidden",document.body.appendChild(i),t=i.offsetWidth,p=i.offsetHeight,mxClient.IS_QUIRKS&&c&&a<p&&(p=a,i.style.height=p+"px"),a=p,i.style.visibility="",u.appendChild(i),l.style.left=this.format(e+t*g*this.state.scale)+"px",l.style.top=this.format(n+a*v*this.state.scale)+"px"):(this.state.alpha<1&&(i.style.filter="alpha(opacity="+100*this.state.alpha+")"),p.style.left=100*g+"%",p.style.top=100*v+"%")}else this.plainText(e,n,t,a,mxUtils.htmlEntities(i,!1),s,o,r,l,d,c,m)}},mxVmlCanvas2D.prototype.plainText=function(e,n,t,a,i,s,o,r,l,d,c,m){e=(e+(a=this.state).dx)*a.scale,n=(n+a.dy)*a.scale,(t=document.createElement(mxClient.VML_PREFIX+":shape")).style.width="1px",t.style.height="1px",t.stroked="false",(d=document.createElement(mxClient.VML_PREFIX+":fill")).color=a.fontColor,d.opacity=100*a.alpha+"%",t.appendChild(d),(d=document.createElement(mxClient.VML_PREFIX+":path")).textpathok="true",d.v="m "+this.format(0)+" "+this.format(0)+" l "+this.format(1)+" "+this.format(0),t.appendChild(d),(d=document.createElement(mxClient.VML_PREFIX+":textpath")).style.cssText="v-text-align:"+s,d.style.align=s,d.style.fontFamily=a.fontFamily,d.string=i,d.on="true",s=Math.round(a.fontSize*a.scale/this.vmlScale),d.style.fontSize=s+"px",(a.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(d.style.fontWeight="bold"),(a.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(d.style.fontStyle="italic"),(a.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&(d.style.textDecoration="underline"),a=s+((i=i.split("\n")).length-1)*s*mxConstants.LINE_HEIGHT,s=i=0,o==mxConstants.ALIGN_BOTTOM?s=-a/2:o!=mxConstants.ALIGN_MIDDLE&&(s=a/2),null!=m&&(o=(t.style.rotation=m)*(Math.PI/180),i=Math.sin(o)*s,s*=Math.cos(o)),t.appendChild(d),t.style.left=this.format(e-i)+"px",t.style.top=this.format(n+s)+"px",this.root.appendChild(t)},mxVmlCanvas2D.prototype.stroke=function(){this.addNode(!1,!0)},mxVmlCanvas2D.prototype.fill=function(){this.addNode(!0,!1)},mxVmlCanvas2D.prototype.fillAndStroke=function(){this.addNode(!0,!0)},mxGuide.prototype.graph=null,mxGuide.prototype.states=null,mxGuide.prototype.horizontal=!0,mxGuide.prototype.vertical=!0,mxGuide.prototype.guideX=null,mxGuide.prototype.guideY=null,mxGuide.prototype.setStates=function(e){this.states=e},mxGuide.prototype.isEnabledForEvent=function(e){return!0},mxGuide.prototype.getGuideTolerance=function(){return this.graph.gridSize*this.graph.view.scale/2},mxGuide.prototype.createGuideShape=function(e){return(e=new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH)).isDashed=!0,e},mxGuide.prototype.move=function(a,e,n){if(null!=this.states&&(this.horizontal||this.vertical)&&null!=a&&null!=e){var t=this.graph.getView().translate,i=this.graph.getView().scale,s=e.x,o=e.y,r=!1,l=!1,d=f=this.getGuideTolerance(),c=f;(f=a.clone()).x+=e.x,f.y+=e.y;var m=f.x,u=f.x+f.width,p=f.getCenterX(),g=f.y,v=f.y+f.height,h=f.getCenterY();e=function(e){e+=this.graph.panDx;var n=!1;if(Math.abs(e-p)<d?(s=e-a.getCenterX(),d=Math.abs(e-p),n=!0):Math.abs(e-m)<d?(s=e-a.x,d=Math.abs(e-m),n=!0):Math.abs(e-u)<d&&(s=e-a.x-a.width,d=Math.abs(e-u),n=!0),n){null==this.guideX&&(this.guideX=this.createGuideShape(!0),this.guideX.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.guideX.pointerEvents=!1,this.guideX.init(this.graph.getView().getOverlayPane()));var t=this.graph.container;e-=this.graph.panDx,this.guideX.points=[new mxPoint(e,-this.graph.panDy),new mxPoint(e,t.scrollHeight-3-this.graph.panDy)]}r=r||n};for(var f=function(e){e+=this.graph.panDy;var n=!1;if(Math.abs(e-h)<c?(o=e-a.getCenterY(),c=Math.abs(e-h),n=!0):Math.abs(e-g)<c?(o=e-a.y,c=Math.abs(e-g),n=!0):Math.abs(e-v)<c&&(o=e-a.y-a.height,c=Math.abs(e-v),n=!0),n){null==this.guideY&&(this.guideY=this.createGuideShape(!1),this.guideY.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.guideY.pointerEvents=!1,this.guideY.init(this.graph.getView().getOverlayPane()));var t=this.graph.container;e-=this.graph.panDy,this.guideY.points=[new mxPoint(-this.graph.panDx,e),new mxPoint(t.scrollWidth-3-this.graph.panDx,e)]}l=l||n},b=0;b<this.states.length;b++){var A=this.states[b];null!=A&&(this.horizontal&&(e.call(this,A.getCenterX()),e.call(this,A.x),e.call(this,A.x+A.width)),this.vertical&&(f.call(this,A.getCenterY()),f.call(this,A.y),f.call(this,A.y+A.height)))}r||null==this.guideX?null!=this.guideX&&(this.guideX.node.style.visibility="visible",this.guideX.redraw()):this.guideX.node.style.visibility="hidden",l||null==this.guideY?null!=this.guideY&&(this.guideY.node.style.visibility="visible",this.guideY.redraw()):this.guideY.node.style.visibility="hidden",n&&(r||(n=a.x-(this.graph.snap(a.x/i-t.x)+t.x)*i,s=this.graph.snap(s/i)*i-n),l||(t=a.y-(this.graph.snap(a.y/i-t.y)+t.y)*i,o=this.graph.snap(o/i)*i-t)),e=new mxPoint(s,o)}return e},mxGuide.prototype.hide=function(){null!=this.guideX&&(this.guideX.node.style.visibility="hidden"),null!=this.guideY&&(this.guideY.node.style.visibility="hidden")},mxGuide.prototype.destroy=function(){null!=this.guideX&&(this.guideX.destroy(),this.guideX=null),null!=this.guideY&&(this.guideY.destroy(),this.guideY=null)},mxStencil.defaultLocalized=!1,mxStencil.prototype.desc=null,mxStencil.prototype.constraints=null,mxStencil.prototype.aspect=null,mxStencil.prototype.w0=null,mxStencil.prototype.h0=null,mxStencil.prototype.bgNode=null,mxStencil.prototype.fgNode=null,mxStencil.prototype.strokewidth=null,mxStencil.prototype.parseDescription=function(){this.fgNode=this.desc.getElementsByTagName("foreground")[0],this.bgNode=this.desc.getElementsByTagName("background")[0],this.w0=Number(this.desc.getAttribute("w")||100),this.h0=Number(this.desc.getAttribute("h")||100);var e=this.desc.getAttribute("aspect");this.aspect=null!=e?e:"variable",e=this.desc.getAttribute("strokewidth"),this.strokewidth=null!=e?e:"1"},mxStencil.prototype.parseConstraints=function(){var e=this.desc.getElementsByTagName("connections")[0];if(null!=e&&(null!=(e=mxUtils.getChildNodes(e))&&0<e.length)){this.constraints=[];for(var n=0;n<e.length;n++)this.constraints.push(this.parseConstraint(e[n]))}},mxStencil.prototype.parseConstraint=function(e){var n=Number(e.getAttribute("x")),t=Number(e.getAttribute("y"));return e="1"==e.getAttribute("perimeter"),new mxConnectionConstraint(new mxPoint(n,t),e)},mxStencil.prototype.evaluateTextAttribute=function(e,n,t){return n=this.evaluateAttribute(e,n,t),e=e.getAttribute("localized"),(mxStencil.defaultLocalized&&null==e||"1"==e)&&(n=mxResources.get(n)),n},mxStencil.prototype.evaluateAttribute=function(e,n,t){return null==(n=e.getAttribute(n))&&(null!=(e=mxUtils.getTextContent(e))&&("function"==typeof(e=mxUtils.eval(e))&&(n=e(t)))),n},mxStencil.prototype.drawShape=function(e,n,t,a,i,s){this.drawChildren(e,n,t,a,i,s,this.bgNode,!1),this.drawChildren(e,n,t,a,i,s,this.fgNode,!0)},mxStencil.prototype.drawChildren=function(e,n,t,a,i,s,o,r){if(null!=o){var l=mxUtils.getValue(n.style,mxConstants.STYLE_DIRECTION,null);for(t=this.computeAspect(n.style,t,a,i,s,l),a=Math.min(t.width,t.height),a="inherit"==this.strokewidth?Number(mxUtils.getNumber(n.style,mxConstants.STYLE_STROKEWIDTH,1)):Number(this.strokewidth)*a,e.setStrokeWidth(a),o=o.firstChild;null!=o;)o.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(e,n,o,t,r),o=o.nextSibling}},mxStencil.prototype.computeAspect=function(e,n,t,a,i,s){e=n,n=a/this.w0;var o=i/this.h0;if(s="north"==s||"south"==s){o=a/this.h0,n=i/this.w0;var r=(a-i)/2;e+=r,t-=r}return"fixed"==this.aspect&&(n=o=Math.min(n,o),s?(e+=(i-this.w0*n)/2,t+=(a-this.h0*o)/2):(e+=(a-this.w0*n)/2,t+=(i-this.h0*o)/2)),new mxRectangle(e,t,n,o)},mxStencil.prototype.drawNode=function(e,n,t,a,i){var s=t.nodeName,o=a.x,r=a.y,l=a.width,d=a.height,c=Math.min(l,d);if("save"==s)e.save();else if("restore"==s)e.restore();else if("path"==s)for(e.begin(),t=t.firstChild;null!=t;)t.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(e,n,t,a,i),t=t.nextSibling;else if("close"==s)e.close();else if("move"==s)e.moveTo(o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d);else if("line"==s)e.lineTo(o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d);else if("quad"==s)e.quadTo(o+Number(t.getAttribute("x1"))*l,r+Number(t.getAttribute("y1"))*d,o+Number(t.getAttribute("x2"))*l,r+Number(t.getAttribute("y2"))*d);else if("curve"==s)e.curveTo(o+Number(t.getAttribute("x1"))*l,r+Number(t.getAttribute("y1"))*d,o+Number(t.getAttribute("x2"))*l,r+Number(t.getAttribute("y2"))*d,o+Number(t.getAttribute("x3"))*l,r+Number(t.getAttribute("y3"))*d);else if("arc"==s)e.arcTo(Number(t.getAttribute("rx"))*l,Number(t.getAttribute("ry"))*d,Number(t.getAttribute("x-axis-rotation")),Number(t.getAttribute("large-arc-flag")),Number(t.getAttribute("sweep-flag")),o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d);else if("rect"==s)e.rect(o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d,Number(t.getAttribute("w"))*l,Number(t.getAttribute("h"))*d);else if("roundrect"==s)0==(n=t.getAttribute("arcsize"))&&(n=100*mxConstants.RECTANGLE_ROUNDING_FACTOR),c=Number(t.getAttribute("w"))*l,a=Number(t.getAttribute("h"))*d,n=Number(n)/100,n=Math.min(c*n,a*n),e.roundrect(o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d,c,a,n,n);else if("ellipse"==s)e.ellipse(o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d,Number(t.getAttribute("w"))*l,Number(t.getAttribute("h"))*d);else if("image"==s)n=this.evaluateAttribute(t,"src",n),e.image(o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d,Number(t.getAttribute("w"))*l,Number(t.getAttribute("h"))*d,n,!1,"1"==t.getAttribute("flipH"),"1"==t.getAttribute("flipV"));else if("text"==s){if(c=this.evaluateTextAttribute(t,"str",n),a="1"==t.getAttribute("vertical")?-90:0,"0"==t.getAttribute("align-shape")){var m=n.rotation,u=1==mxUtils.getValue(n.style,mxConstants.STYLE_FLIPH,0);n=1==mxUtils.getValue(n.style,mxConstants.STYLE_FLIPV,0),a=u&&n?a-m:u||n?a+m:a-m}a-=t.getAttribute("rotation"),e.text(o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d,0,0,c,t.getAttribute("align")||"left",t.getAttribute("valign")||"top",!1,"",!1,!1,a)}else if("include-shape"==s)null!=(m=mxStencilRegistry.getStencil(t.getAttribute("name")))&&(o+=Number(t.getAttribute("x"))*l,r+=Number(t.getAttribute("y"))*d,c=Number(t.getAttribute("w"))*l,a=Number(t.getAttribute("h"))*d,m.drawShape(e,n,o,r,c,a));else if("fillstroke"==s)e.fillAndStroke();else if("fill"==s)e.fill();else if("stroke"==s)e.stroke();else if("strokewidth"==s)e.setStrokeWidth(Number(t.getAttribute("width"))*c);else if("dashed"==s)e.setDashed("1"==t.getAttribute("dashed"));else if("dashpattern"==s){if(null!=(t=t.getAttribute("pattern"))){for(t=t.split(" "),l=[],d=0;d<t.length;d++)0<t[d].length&&l.push(Number(t[d])*c);t=l.join(" "),e.setDashPattern(t)}}else"strokecolor"==s?e.setStrokeColor(t.getAttribute("color")):"linecap"==s?e.setLineCap(t.getAttribute("cap")):"linejoin"==s?e.setLineJoin(t.getAttribute("join")):"miterlimit"==s?e.setMiterLimit(Number(t.getAttribute("limit"))):"fillcolor"==s?e.setFillColor(t.getAttribute("color")):"alpha"==s?e.setAlpha(t.getAttribute("alpha")):"fontcolor"==s?e.setFontColor(t.getAttribute("color")):"fontstyle"==s?e.setFontStyle(t.getAttribute("style")):"fontfamily"==s?e.setFontFamily(t.getAttribute("family")):"fontsize"==s&&e.setFontSize(Number(t.getAttribute("size"))*c);i&&("fillstroke"==s||"fill"==s||"stroke"==s)&&e.setShadow(!1)},mxShape.prototype.dialect=null,mxShape.prototype.scale=1,mxShape.prototype.bounds=null,mxShape.prototype.points=null,mxShape.prototype.node=null,mxShape.prototype.style=null,mxShape.prototype.style=null,mxShape.prototype.boundingBox=null,mxShape.prototype.stencil=null,mxShape.prototype.svgStrokeTolerance=6,mxShape.prototype.pointerEvents=!0,mxShape.prototype.stencilPointerEvents=!1,mxShape.prototype.vmlScale=1,mxShape.prototype.init=function(e){null==this.node&&(this.node=this.create(e),null!=e&&e.appendChild(this.node))},mxShape.prototype.isParseVml=function(){return!0},mxShape.prototype.isHtmlAllowed=function(){return!1},mxShape.prototype.getSvgScreenOffset=function(){return 1==mxUtils.mod(Math.max(1,Math.round(this.strokewidth*this.scale)),2)?.5:0},mxShape.prototype.create=function(e){return null!=e.ownerSVGElement?this.createSvg(e):8==document.documentMode||this.dialect==mxConstants.DIALECT_SVG||this.dialect!=mxConstants.DIALECT_VML&&this.isHtmlAllowed()?this.createHtml(e):this.createVml(e)},mxShape.prototype.createSvg=function(){return document.createElementNS(mxConstants.NS_SVG,"g")},mxShape.prototype.createVml=function(){var e=document.createElement(mxClient.VML_PREFIX+":group");return e.style.position="absolute",e},mxShape.prototype.createHtml=function(){var e=document.createElement("div");return e.style.position="absolute",e},mxShape.prototype.reconfigure=function(){this.redraw()},mxShape.prototype.redraw=function(){this.updateBoundsFromPoints(),this.checkBounds()?(this.node.style.visibility="","DIV"==this.node.nodeName&&this.isHtmlAllowed()?this.redrawHtmlShape():this.redrawShape(),this.updateBoundingBox()):(this.node.style.visibility="hidden",this.boundingBox=null)},mxShape.prototype.updateBoundsFromPoints=function(){var e=this.points;if(null!=e&&0<e.length&&null!=e[0]){this.bounds=new mxRectangle(Number(e[0].x),Number(e[0].y),1,1);for(var n=1;n<this.points.length;n++)null!=e[n]&&this.bounds.add(new mxRectangle(Number(e[n].x),Number(e[n].y),1,1))}},mxShape.prototype.checkBounds=function(){return null!=this.bounds&&!isNaN(this.bounds.x)&&!isNaN(this.bounds.y)&&!isNaN(this.bounds.width)&&!isNaN(this.bounds.height)&&0<this.bounds.width&&0<this.bounds.height},mxShape.prototype.createVmlGroup=function(){var e=document.createElement(mxClient.VML_PREFIX+":group");return e.style.position="absolute",e.style.width=this.node.style.width,e.style.height=this.node.style.height,e},mxShape.prototype.redrawShape=function(){var e=this.createCanvas();for(e.pointerEvents=this.pointerEvents;this.node.hasChildNodes();)this.node.removeChild(this.node.lastChild);this.paint(e),this.node!=e.root&&this.node.insertAdjacentHTML("beforeend",e.root.outerHTML),"DIV"==this.node.nodeName&&8==document.documentMode&&(this.node.style.filter="",(null==this.stencil||!this.stencilPointerEvents)&&mxUtils.addTransparentBackgroundFilter(this.node)),this.destroyCanvas(e)},mxShape.prototype.createCanvas=function(){var e=null,n=null;if(null!=this.node.ownerSVGElement)(e=new mxSvgCanvas2D(this.node,!1)).strokeTolerance=this.svgStrokeTolerance,e.blockImagePointerEvents=mxClient.IS_NS&&!mxClient.IS_SF&&!mxClient.IS_GC,0!=(n=this.getSvgScreenOffset())?this.node.setAttribute("transform","translate("+n+","+n+")"):this.node.removeAttribute("transform");else{this.updateVmlContainer();var t=Math.max(1,Math.round(this.bounds.width)),a=Math.max(1,Math.round(this.bounds.height));n=8==document.documentMode&&this.isParseVml()?this.createVmlGroup():this.node,e=new mxVmlCanvas2D(n,!1);""!=n.tagUrn&&(n.coordsize=t*this.vmlScale+","+a*this.vmlScale,e.scale(this.vmlScale),e.vmlScale=this.vmlScale),n=this.scale,e.translate(-Math.round(this.bounds.x/n),-Math.round(this.bounds.y/n))}return e},mxShape.prototype.updateVmlContainer=function(){this.node.style.left=Math.round(this.bounds.x)+"px",this.node.style.top=Math.round(this.bounds.y)+"px";var e=Math.max(1,Math.round(this.bounds.width)),n=Math.max(1,Math.round(this.bounds.height));this.node.style.width=e+"px",this.node.style.height=n+"px",this.node.style.overflow="visible"},mxShape.prototype.destroyCanvas=function(e){if(e instanceof mxSvgCanvas2D){for(var n in e.gradients){var t=e.gradients[n];t.mxRefCount=(t.mxRefCount||0)+1}this.releaseSvgGradients(this.oldGradients),this.oldGradients=e.gradients}},mxShape.prototype.paint=function(e){var n=this.scale,t=this.bounds.x/n,a=this.bounds.y/n,i=this.bounds.width/n,s=this.bounds.height/n;if(this.isPaintBoundsInverted()){t=t+(o=(i-s)/2),a=a-o;var o=i;i=s,s=o}if(this.updateTransform(e,t,a,i,s),this.configureCanvas(e,t,a,i,s),null!=this.stencil)this.paintStencilShape(e,t,a,i,s);else if(e.setStrokeWidth(this.strokewidth),null!=this.points){for(t=[],a=0;a<this.points.length;a++)t.push(new mxPoint(this.points[a].x/n,this.points[a].y/n));this.paintEdgeShape(e,t)}else this.paintVertexShape(e,t,a,i,s)},mxShape.prototype.configureCanvas=function(e,n,t,a,i){var s=null;null!=this.style&&(s=this.style.dashPattern),e.setAlpha(this.opacity/100),null!=this.isShadow&&e.setShadow(this.isShadow),null!=this.isDashed&&e.setDashed(this.isDashed),null!=s&&e.setDashPattern(s),null!=this.gradient?(n=this.getGradientBounds(e,n,t,a,i),e.setGradient(this.fill,this.gradient,n.x,n.y,n.width,n.height,this.gradientDirection)):e.setFillColor(this.fill),e.setStrokeColor(this.stroke)},mxShape.prototype.getGradientBounds=function(e,n,t,a,i){return new mxRectangle(n,t,a,i)},mxShape.prototype.updateTransform=function(e,n,t,a,i){e.scale(this.scale),e.rotate(this.getShapeRotation(),this.flipH,this.flipV,n+a/2,t+i/2)},mxShape.prototype.paintStencilShape=function(e,n,t,a,i){this.stencilPointerEvents&&(this.dialect==mxConstants.DIALECT_SVG?this.addTransparentBackgroundRectangle(this.node,n,t,a,i):8!=document.documentMode&&this.setTransparentBackgroundImage(this.node)),this.stencil.drawShape(e,this,n,t,a,i)},mxShape.prototype.paintVertexShape=function(e,n,t,a,i){this.paintBackground(e,n,t,a,i),e.setShadow(!1),this.paintForeground(e,n,t,a,i)},mxShape.prototype.paintBackground=function(e,n,t,a,i){},mxShape.prototype.paintForeground=function(e,n,t,a,i){},mxShape.prototype.paintEdgeShape=function(e,n){},mxShape.prototype.getArcSize=function(e,n){var t=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100;return Math.min(e*t,n*t)},mxShape.prototype.paintGlassEffect=function(e,n,t,a,i,s){var o=Math.ceil(this.strokewidth/2);e.setGradient("#ffffff","#ffffff",n,t,a,.6*i,"south",.9,.1),e.begin(),s+=2*o,this.isRounded?(e.moveTo(n-o+s,t-o),e.quadTo(n-o,t-o,n-o,t-o+s),e.lineTo(n-o,t+.4*i),e.quadTo(n+.5*a,t+.7*i,n+a+o,t+.4*i),e.lineTo(n+a+o,t-o+s),e.quadTo(n+a+o,t-o,n+a+o-s,t-o)):(e.moveTo(n-o,t-o),e.lineTo(n-o,t+.4*i),e.quadTo(n+.5*a,t+.7*i,n+a+o,t+.4*i),e.lineTo(n+a+o,t-o)),e.close(),e.fill()},mxShape.prototype.apply=function(e){this.state=e,this.style=e.style,null!=this.style&&(this.fill=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,this.fill),this.gradient=mxUtils.getValue(this.style,mxConstants.STYLE_GRADIENTCOLOR,this.gradient),this.gradientDirection=mxUtils.getValue(this.style,mxConstants.STYLE_GRADIENT_DIRECTION,this.gradientDirection),this.opacity=mxUtils.getValue(this.style,mxConstants.STYLE_OPACITY,this.opacity),this.stroke=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,this.stroke),this.strokewidth=mxUtils.getNumber(this.style,mxConstants.STYLE_STROKEWIDTH,this.strokewidth),this.spacing=mxUtils.getValue(this.style,mxConstants.STYLE_SPACING,this.spacing),this.startSize=mxUtils.getNumber(this.style,mxConstants.STYLE_STARTSIZE,this.startSize),this.endSize=mxUtils.getNumber(this.style,mxConstants.STYLE_ENDSIZE,this.endSize),this.startArrow=mxUtils.getValue(this.style,mxConstants.STYLE_STARTARROW,this.startArrow),this.endArrow=mxUtils.getValue(this.style,mxConstants.STYLE_ENDARROW,this.endArrow),this.rotation=mxUtils.getValue(this.style,mxConstants.STYLE_ROTATION,this.rotation),this.direction=mxUtils.getValue(this.style,mxConstants.STYLE_DIRECTION,this.direction),this.flipH=1==mxUtils.getValue(this.style,mxConstants.STYLE_FLIPH,0),this.flipV=1==mxUtils.getValue(this.style,mxConstants.STYLE_FLIPV,0),null!=this.stencil&&(this.flipH=1==mxUtils.getValue(this.style,"stencilFlipH",0)||this.flipH,this.flipV=1==mxUtils.getValue(this.style,"stencilFlipV",0)||this.flipV),"north"!=this.direction&&"south"!=this.direction||(e=this.flipH,this.flipH=this.flipV,this.flipV=e),this.isShadow=1==mxUtils.getValue(this.style,mxConstants.STYLE_SHADOW,this.isShadow),this.isDashed=1==mxUtils.getValue(this.style,mxConstants.STYLE_DASHED,this.isDashed),this.isRounded=1==mxUtils.getValue(this.style,mxConstants.STYLE_ROUNDED,this.isRounded),this.glass=1==mxUtils.getValue(this.style,mxConstants.STYLE_GLASS,this.glass),"none"==this.fill&&(this.fill=null),"none"==this.gradient&&(this.gradient=null),"none"==this.stroke&&(this.stroke=null))},mxShape.prototype.setCursor=function(e){null==e&&(e=""),this.cursor=e,null!=this.node&&(this.node.style.cursor=e)},mxShape.prototype.getCursor=function(){return this.cursor},mxShape.prototype.updateBoundingBox=function(){if(null!=this.bounds){var e=this.createBoundingBox();if(null!=e){this.augmentBoundingBox(e);var n=this.getShapeRotation();0!=n&&(e=mxUtils.getBoundingBox(e,n)),e.x=Math.floor(e.x),e.y=Math.floor(e.y),e.width=Math.ceil(e.width),e.height=Math.ceil(e.height)}this.boundingBox=e}},mxShape.prototype.createBoundingBox=function(){var e=this.bounds.clone();if(this.isPaintBoundsInverted()){var n=(e.width-e.height)/2;e.x+=n,e.y-=n,n=e.width,e.width=e.height,e.height=n}return e},mxShape.prototype.augmentBoundingBox=function(e){this.isShadow&&(e.width+=Math.ceil(mxConstants.SHADOW_OFFSET_X*this.scale),e.height+=Math.ceil(mxConstants.SHADOW_OFFSET_Y*this.scale));var n=Math.ceil(this.strokewidth*this.scale);e.grow(Math.ceil(n/2))},mxShape.prototype.isPaintBoundsInverted=function(){return null==this.stencil&&("north"==this.direction||"south"==this.direction)},mxShape.prototype.getRotation=function(){return null!=this.rotation?this.rotation:0},mxShape.prototype.getTextRotation=function(){var e=this.getRotation();return 1!=mxUtils.getValue(this.style,mxConstants.STYLE_HORIZONTAL,1)&&(e+=mxText.prototype.verticalTextRotation),e},mxShape.prototype.getShapeRotation=function(){var e=this.getRotation();return null!=this.direction&&("north"==this.direction?e+=270:"west"==this.direction?e+=180:"south"==this.direction&&(e+=90)),e},mxShape.prototype.addTransparentBackgroundRectangle=function(e,n,t,a,i){(e=document.createElementNS(mxConstants.NS_SVG,"rect")).setAttribute("x",n),e.setAttribute("y",t),e.setAttribute("width",a),e.setAttribute("height",i),e.setAttribute("fill","none"),e.setAttribute("stroke","none"),e.setAttribute("pointer-events","all"),this.node.appendChild(e)},mxShape.prototype.setTransparentBackgroundImage=function(e){e.style.backgroundImage="url('"+mxClient.imageBasePath+"/transparent.gif')"},mxShape.prototype.releaseSvgGradients=function(e){if(null!=e)for(var n in e){var t=e[n];t.mxRefCount=(t.mxRefCount||0)-1,0==t.mxRefCount&&null!=t.parentNode&&t.parentNode.removeChild(t)}},mxShape.prototype.destroy=function(){null!=this.node&&(mxEvent.release(this.node),null!=this.node.parentNode&&this.node.parentNode.removeChild(this.node),this.node=null),this.releaseSvgGradients(this.oldGradients),this.oldGradients=null};var mxStencilRegistry={stencils:[],addStencil:function(e,n){mxStencilRegistry.stencils[e]=n},getStencil:function(e){return mxStencilRegistry.stencils[e]}},mxMarker={markers:[],addMarker:function(e,n){mxMarker.markers[e]=n},createMarker:function(e,n,t,a,i,s,o,r,l,d){var c=mxMarker.markers[t];return null!=c?c(e,n,t,a,i,s,o,r,l,d):null}};function mxActor(e,n,t,a){mxShape.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxCloud(e,n,t,a){mxActor.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxRectangleShape(e,n,t,a){mxShape.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxEllipse(e,n,t,a){mxShape.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxDoubleEllipse(e,n,t,a){mxShape.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxRhombus(e,n,t,a){mxShape.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxPolyline(e,n,t){mxShape.call(this),this.points=e,this.stroke=n,this.strokewidth=null!=t?t:1}function mxArrow(e,n,t,a,i,s,o){mxShape.call(this),this.points=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1,this.arrowWidth=null!=i?i:mxConstants.ARROW_WIDTH,this.spacing=null!=s?s:mxConstants.ARROW_SPACING,this.endSize=null!=o?o:mxConstants.ARROW_SIZE}function mxText(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h,f,b,A){mxShape.call(this),this.value=e,this.bounds=n,this.color=null!=i?i:"black",this.align=null!=t?t:"",this.valign=null!=a?a:"",this.family=null!=s?s:mxConstants.DEFAULT_FONTFAMILY,this.size=null!=o?o:mxConstants.DEFAULT_FONTSIZE,this.fontStyle=null!=r?r:mxConstants.DEFAULT_FONTSTYLE,this.spacing=parseInt(l||2),this.spacingTop=this.spacing+parseInt(d||0),this.spacingRight=this.spacing+parseInt(c||0),this.spacingBottom=this.spacing+parseInt(m||0),this.spacingLeft=this.spacing+parseInt(u||0),this.horizontal=null==p||p,this.background=g,this.border=v,this.wrap=null!=h&&h,this.clipped=null!=f&&f,this.overflow=null!=b?b:"visible",this.labelPadding=null!=A?A:0,this.rotation=0}function mxTriangle(){mxActor.call(this)}function mxHexagon(){mxActor.call(this)}function mxLine(e,n,t){mxShape.call(this),this.bounds=e,this.stroke=n,this.strokewidth=null!=t?t:1}function mxImageShape(e,n,t,a,i){mxShape.call(this),this.bounds=e,this.image=n,this.fill=t,this.stroke=a,this.strokewidth=null!=i?i:1,this.shadow=!1}function mxLabel(e,n,t,a){mxRectangleShape.call(this,e,n,t,a)}function mxCylinder(e,n,t,a){mxShape.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxConnector(e,n,t){mxPolyline.call(this,e,n,t)}function mxSwimlane(e,n,t,a){mxShape.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxGraphLayout(e){this.graph=e}function mxStackLayout(e,n,t,a,i,s){mxGraphLayout.call(this,e),this.horizontal=null==n||n,this.spacing=null!=t?t:0,this.x0=null!=a?a:0,this.y0=null!=i?i:0,this.border=null!=s?s:0}function mxPartitionLayout(e,n,t,a){mxGraphLayout.call(this,e),this.horizontal=null==n||n,this.spacing=t||0,this.border=a||0}function mxCompactTreeLayout(e,n,t){mxGraphLayout.call(this,e),this.horizontal=null==n||n,this.invert=null!=t&&t}function WeightedCellSorter(e,n){this.cell=e,this.weightedValue=n}function mxFastOrganicLayout(e){mxGraphLayout.call(this,e)}function mxCircleLayout(e,n){mxGraphLayout.call(this,e),this.radius=null!=n?n:100}function mxParallelEdgeLayout(e){mxGraphLayout.call(this,e)}function mxCompositeLayout(e,n,t){mxGraphLayout.call(this,e),this.layouts=n,this.master=t}function mxEdgeLabelLayout(e,n){mxGraphLayout.call(this,e)}function mxGraphAbstractHierarchyCell(){this.x=[],this.y=[],this.temp=[]}function mxGraphHierarchyNode(e){mxGraphAbstractHierarchyCell.apply(this,arguments),this.cell=e}function mxGraphHierarchyEdge(e){mxGraphAbstractHierarchyCell.apply(this,arguments),this.edges=e}function mxGraphHierarchyModel(e,n,t,a,i){for(e.getGraph(),this.tightenToSource=i,this.roots=t,this.parent=a,this.vertexMapper={},this.edgeMapper={},this.maxRank=0,t=[],null==n&&(n=this.graph.getChildVertices(a)),this.maxRank=this.SOURCESCANSTARTRANK,this.createInternalCells(e,n,t),a=0;a<n.length;a++){i=t[a].connectsAsSource;for(var s=0;s<i.length;s++){var o=i[s];if(null!=(r=o.edges)&&0<r.length){var r=r[0],l=e.getVisibleTerminal(r,!1);l=mxCellPath.create(l),l=this.vertexMapper[l];t[a]==l&&(l=e.getVisibleTerminal(r,!0),l=mxCellPath.create(l),l=this.vertexMapper[l]),null!=l&&t[a]!=l&&(0==(o.target=l).connectsAsTarget.length&&(l.connectsAsTarget=[]),mxUtils.indexOf(l.connectsAsTarget,o)<0&&l.connectsAsTarget.push(o))}}t[a].temp[0]=1}}function mxHierarchicalLayoutStage(){}function mxMedianHybridCrossingReduction(e){this.layout=e}function MedianCellSorter(){}function mxMinimumCycleRemover(e){this.layout=e}function mxCoordinateAssignment(e,n,t,a,i,s){this.layout=e,this.intraCellSpacing=n,this.interRankCellSpacing=t,this.orientation=a,this.initialX=i,this.parallelEdgeSpacing=s}!function(){function e(e,n,t,a,i,s,o,r,l,d){n=1.118*i*l,r=1.118*s*l,i*=o+l,s*=o+l;var c=a.clone();return c.x-=n,c.y-=r,o=t!=mxConstants.ARROW_CLASSIC?1:.75,a.x+=-i*o-n,a.y+=-s*o-r,function(){e.begin(),e.moveTo(c.x,c.y),e.lineTo(c.x-i-s/2,c.y-s+i/2),t==mxConstants.ARROW_CLASSIC&&e.lineTo(c.x-3*i/4,c.y-3*s/4),e.lineTo(c.x+s/2-i,c.y-s-i/2),e.close(),d?e.fillAndStroke():e.stroke()}}function n(e,n,t,a,i,s,o,r,l,d){r=t==mxConstants.ARROW_DIAMOND?.7071:.9862,n=i*l*r,r*=s*l,i*=o+l,s*=o+l;var c=a.clone();c.x-=n,c.y-=r,a.x+=-i-n,a.y+=-s-r;var m=t==mxConstants.ARROW_DIAMOND?2:3.4;return function(){e.begin(),e.moveTo(c.x,c.y),e.lineTo(c.x-i/2-s/m,c.y+i/m-s/2),e.lineTo(c.x-i,c.y-s),e.lineTo(c.x-i/2+s/m,c.y-s/2-i/m),e.close(),d?e.fillAndStroke():e.stroke()}}mxMarker.addMarker("classic",e),mxMarker.addMarker("block",e),mxMarker.addMarker("open",function(e,n,t,a,i,s,o,r,l,d){n=1.118*i*l,t=1.118*s*l,i*=o+l,s*=o+l;var c=a.clone();return c.x-=n,c.y-=t,a.x+=2*-n,a.y+=2*-t,function(){e.begin(),e.moveTo(c.x-i-s/2,c.y-s+i/2),e.lineTo(c.x,c.y),e.lineTo(c.x+s/2-i,c.y-s-i/2),e.stroke()}}),mxMarker.addMarker("oval",function(e,n,t,a,i,s,o,r,l,d){var c=o/2,m=a.clone();return a.x-=i*c,a.y-=s*c,function(){e.ellipse(m.x-c,m.y-c,o,o),d?e.fillAndStroke():e.stroke()}}),mxMarker.addMarker("diamond",n),mxMarker.addMarker("diamondThin",n)}(),mxUtils.extend(mxActor,mxShape),mxActor.prototype.paintVertexShape=function(e,n,t,a,i){e.translate(n,t),e.begin(),this.redrawPath(e,n,t,a,i),e.fillAndStroke()},mxActor.prototype.redrawPath=function(e,n,t,a,i){n=a/3,e.moveTo(0,i),e.curveTo(0,3*i/5,0,2*i/5,a/2,2*i/5),e.curveTo(a/2-n,2*i/5,a/2-n,0,a/2,0),e.curveTo(a/2+n,0,a/2+n,2*i/5,a/2,2*i/5),e.curveTo(a,2*i/5,a,3*i/5,a,i),e.close()},mxUtils.extend(mxCloud,mxActor),mxCloud.prototype.redrawPath=function(e,n,t,a,i){e.moveTo(.25*a,.25*i),e.curveTo(.05*a,.25*i,0,.5*i,.16*a,.55*i),e.curveTo(0,.66*i,.18*a,.9*i,.31*a,.8*i),e.curveTo(.4*a,i,.7*a,i,.8*a,.8*i),e.curveTo(a,.8*i,a,.6*i,.875*a,.5*i),e.curveTo(a,.3*i,.8*a,.1*i,.625*a,.2*i),e.curveTo(.5*a,.05*i,.3*a,.05*i,.25*a,.25*i),e.close()},mxUtils.extend(mxRectangleShape,mxShape),mxRectangleShape.prototype.isHtmlAllowed=function(){return!this.isRounded&&!this.glass&&0==this.rotation},mxRectangleShape.prototype.paintBackground=function(e,n,t,a,i){if(this.isRounded){var s=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100;s=Math.min(a*s,i*s);e.roundrect(n,t,a,i,s,s)}else e.rect(n,t,a,i);e.fillAndStroke()},mxRectangleShape.prototype.paintForeground=function(e,n,t,a,i){this.glass&&this.paintGlassEffect(e,n,t,a,i,this.getArcSize(a+this.strokewidth,i+this.strokewidth))},mxRectangleShape.prototype.redrawHtmlShape=function(){this.updateHtmlBounds(this.node),this.updateHtmlFilters(this.node),this.updateHtmlColors(this.node)},mxRectangleShape.prototype.updateHtmlBounds=function(e){var n=9<=document.documentMode?0:Math.ceil(this.strokewidth*this.scale);e.style.borderWidth=Math.max(1,n)+"px",e.style.overflow="hidden",e.style.left=Math.round(this.bounds.x-n/2)+"px",e.style.top=Math.round(this.bounds.y-n/2)+"px","CSS1Compat"==document.compatMode&&(n=-n),e.style.width=Math.round(Math.max(0,this.bounds.width+n))+"px",e.style.height=Math.round(Math.max(0,this.bounds.height+n))+"px"},mxRectangleShape.prototype.updateHtmlColors=function(e){var n=this.stroke;null!=n&&n!=mxConstants.NONE?(e.style.borderColor=n,this.isDashed?e.style.borderStyle="dashed":0<this.strokewidth&&(e.style.borderStyle="solid"),e.style.borderWidth=Math.max(1,Math.ceil(this.strokewidth*this.scale))+"px"):e.style.borderWidth="0px",null!=(n=this.fill)&&n!=mxConstants.NONE?(e.style.backgroundColor=n,e.style.backgroundImage="none"):this.pointerEvents?e.style.backgroundColor="transparent":8==document.documentMode?mxUtils.addTransparentBackgroundFilter(e):this.setTransparentBackgroundImage(e)},mxRectangleShape.prototype.updateHtmlFilters=function(e){var n="";if(this.opacity<100&&(n+="alpha(opacity="+this.opacity+")"),this.isShadow&&(n+="progid:DXImageTransform.Microsoft.dropShadow (OffX='"+Math.round(mxConstants.SHADOW_OFFSET_X*this.scale)+"', OffY='"+Math.round(mxConstants.SHADOW_OFFSET_Y*this.scale)+"', Color='"+mxConstants.SHADOWCOLOR+"')"),this.gradient){var t=this.fill,a=this.gradient,i="0",s={east:0,south:1,west:2,north:3},o=null!=this.direction?s[this.direction]:0;null!=this.gradientDirection&&(o=mxUtils.mod(o+s[this.gradientDirection]-1,4)),1==o?(i="1",s=t,t=a,a=s):2==o?(s=t,t=a,a=s):3==o&&(i="1"),n+="progid:DXImageTransform.Microsoft.gradient(startColorStr='"+t+"', endColorStr='"+a+"', gradientType='"+i+"')"}e.style.filter=n},mxUtils.extend(mxEllipse,mxShape),mxEllipse.prototype.paintVertexShape=function(e,n,t,a,i){e.ellipse(n,t,a,i),e.fillAndStroke()},mxUtils.extend(mxDoubleEllipse,mxShape),mxDoubleEllipse.prototype.vmlScale=10,mxDoubleEllipse.prototype.paintBackground=function(e,n,t,a,i){e.ellipse(n,t,a,i),e.fillAndStroke()},mxDoubleEllipse.prototype.paintForeground=function(e,n,t,a,i){var s=Math.min(4,Math.min(a/5,i/5));i-=2*s,0<(a-=2*s)&&0<i&&e.ellipse(n+s,t+s,a,i),e.stroke()},mxUtils.extend(mxRhombus,mxShape),mxRhombus.prototype.paintVertexShape=function(e,n,t,a,i){var s=a/2,o=i/2;e.begin(),e.moveTo(n+s,t),e.lineTo(n+a,t+o),e.lineTo(n+s,t+i),e.lineTo(n,t+o),e.close(),e.fillAndStroke()},mxUtils.extend(mxPolyline,mxShape),mxPolyline.prototype.getRotation=function(){return 0},mxPolyline.prototype.paintEdgeShape=function(e,n){this.paintLine(e,n,this.isRounded)},mxPolyline.prototype.paintLine=function(e,n,t){var a=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2,i=n[0],s=n[n.length-1];e.begin(),e.moveTo(i.x,i.y);for(var o=1;o<n.length-1;o++){var r=n[o],l=i.x-r.x;i=i.y-r.y;if(t&&o<n.length-1&&(0!=l||0!=i)){var d=Math.sqrt(l*l+i*i);l=l*Math.min(a,d/2)/d,i=i*Math.min(a,d/2)/d;e.lineTo(r.x+l,r.y+i),l=(i=n[o+1]).x-r.x,i=i.y-r.y,d=Math.max(1,Math.sqrt(l*l+i*i)),l=l*Math.min(a,d/2)/d,i=i*Math.min(a,d/2)/d,l=r.x+l,i=r.y+i,e.quadTo(r.x,r.y,l,i),r=new mxPoint(l,i)}else e.lineTo(r.x,r.y);i=r}e.lineTo(s.x,s.y),e.stroke()},mxUtils.extend(mxArrow,mxShape),mxArrow.prototype.paintEdgeShape=function(e,n){var t=mxConstants.ARROW_SPACING,a=mxConstants.ARROW_WIDTH,i=mxConstants.ARROW_SIZE,s=n[0],o=n[n.length-1],r=o.x-s.x,l=o.y-s.y,d=(c=Math.sqrt(r*r+l*l))-2*t-i,c=(r=r/c,a*(l=l/c)/3),m=(a=-a*r/3,(i=s.x-c/2+t*r)+c),u=(s=s.y-a/2+t*l)+a,p=m+d*r,g=p+c,v=(d=u+d*l)+a,h=g-3*c,f=v-3*a;e.begin(),e.moveTo(i,s),e.lineTo(m,u),e.lineTo(p,d),e.lineTo(g,v),e.lineTo(o.x-t*r,o.y-t*l),e.lineTo(h,f),e.lineTo(h+c,f+a),e.close(),e.fillAndStroke()},mxUtils.extend(mxText,mxShape),mxText.prototype.baseSpacingTop=0,mxText.prototype.baseSpacingBottom=0,mxText.prototype.baseSpacingLeft=0,mxText.prototype.baseSpacingRight=0,mxText.prototype.replaceLinefeeds=!0,mxText.prototype.verticalTextRotation=-90,mxText.prototype.ignoreClippedStringSize=!0,mxText.prototype.ignoreStringSize=!1,mxText.prototype.isParseVml=function(){return!1},mxText.prototype.isHtmlAllowed=function(){return 8!=document.documentMode},mxText.prototype.getSvgScreenOffset=function(){return 0},mxText.prototype.checkBounds=function(){return!(null==this.bounds||isNaN(this.bounds.x)||isNaN(this.bounds.y)||isNaN(this.bounds.width)||isNaN(this.bounds.height))},mxText.prototype.updateBoundingBox=function(){var e=this.node;8==document.documentMode&&null!=e.firstChild&&(null!=(e=e.firstChild).firstChild&&(e=e.firstChild)),this.boundingBox=this.bounds.clone();var n=this.getTextRotation();if(this.ignoreStringSize||null==e||"fill"==this.overflow||this.clipped&&this.ignoreClippedStringSize)this.boundingBox.x+=this.margin.x*this.boundingBox.width,this.boundingBox.y+=this.margin.y*this.boundingBox.height;else{var t=null,a=null;if(null!=e.ownerSVGElement)if(null!=e.firstChild&&null!=e.firstChild.firstChild&&"foreignObject"==e.firstChild.firstChild.nodeName)e=e.firstChild.firstChild,t=this.wrap?this.bounds.width:parseInt(e.getAttribute("width"))*this.scale,a=parseInt(e.getAttribute("height"))*this.scale;else{if(0==(n=e.getBBox()).width&&0==n.height)return;this.boundingBox=new mxRectangle(n.x,n.y,n.width,n.height),n=0}else a=this.state.view.textDiv,a=null!=this.offsetWidth&&null!=this.offsetHeight?(t=this.wrap?this.bounds.width:this.offsetWidth*this.scale,this.offsetHeight*this.scale):null!=a?(this.updateFont(a),this.updateSize(a),mxUtils.isNode(this.value)?a.innerHTML=this.value.outerHTML:(t=this.replaceLinefeeds?this.value.replace(/\n/g,"<br/>"):this.value,a.innerHTML=t),t=this.wrap?this.bounds.width:a.offsetWidth*this.scale,a.offsetHeight*this.scale):(t=this.wrap?this.bounds.width:e.offsetWidth*this.scale,e.offsetHeight*this.scale);null!=t&&null!=a&&(this.boundingBox=new mxRectangle(this.bounds.x+this.margin.x*t,this.bounds.y+this.margin.y*a,t,a))}null!=this.boundingBox&&(0!=n&&(n=mxUtils.getBoundingBox(this.boundingBox,n),this.boundingBox.x=n.x,this.boundingBox.y=n.y,mxClient.IS_QUIRKS||(this.boundingBox.width=n.width,this.boundingBox.height=n.height)),this.boundingBox.x=Math.floor(this.boundingBox.x),this.boundingBox.y=Math.floor(this.boundingBox.y),this.boundingBox.width=Math.ceil(this.boundingBox.width),this.boundingBox.height=Math.ceil(this.boundingBox.height))},mxText.prototype.getShapeRotation=function(){return 0},mxText.prototype.getTextRotation=function(){return null!=this.state&&null!=this.state.shape?this.state.shape.getTextRotation():0},mxText.prototype.isPaintBoundsInverted=function(){return!this.horizontal&&null!=this.state&&this.state.view.graph.model.isVertex(this.state.cell)},mxText.prototype.configureCanvas=function(e,n,t,a,i){mxShape.prototype.configureCanvas.apply(this,arguments),e.setFontColor(this.color),e.setFontBackgroundColor(this.background),e.setFontBorderColor(this.border),e.setFontFamily(this.family),e.setFontSize(this.size),e.setFontStyle(this.fontStyle)},mxText.prototype.updateVmlContainer=function(){this.node.style.left=Math.round(this.bounds.x)+"px",this.node.style.top=Math.round(this.bounds.y)+"px",this.node.style.width="1px",this.node.style.height="1px",this.node.style.overflow="visible"},mxText.prototype.paint=function(e){var n=this.scale,t=this.bounds.x/n,a=this.bounds.y/n,i=this.bounds.width/n;n=this.bounds.height/n;this.updateTransform(e,t,a,i,n),this.configureCanvas(e,t,a,i,n);var s=mxUtils.isNode(this.value)||this.dialect==mxConstants.DIALECT_STRICTHTML,o=s||e instanceof mxVmlCanvas2D?"html":"",r=this.value;!s&&"html"==o&&(r=mxUtils.htmlEntities(r,!1)),r=!mxUtils.isNode(this.value)&&this.replaceLinefeeds&&"html"==o?r.replace(/\n/g,"<br/>"):r,e.text(t,a,i,n,r,this.align,this.valign,this.wrap,o,"fill"==this.overflow,this.clipped,this.getTextRotation())},mxText.prototype.redrawHtmlShape=function(){var e=this.node.style;e.opacity=this.opacity<1?this.opacity:"",e.overflow="",e.width="",e.height="",this.updateFont(this.node),this.updateSize(this.node),this.updateValue(),this.offsetHeight=this.offsetWidth=null,null!=mxClient.CSS_PREFIX?this.updateHtmlTransform():this.updateHtmlFilter()},mxText.prototype.updateHtmlTransform=function(){var e=this.getTextRotation(),n=this.node.style,t=this.margin.x,a=this.margin.y;0!=e?(n[mxClient.CSS_PREFIX+"TransformOrigin"]=100*-t+"% "+100*-a+"%",n[mxClient.CSS_PREFIX+"Transform"]="translate("+100*t+"%,"+100*a+"%)scale("+this.scale+") rotate("+e+"deg)"):(n[mxClient.CSS_PREFIX+"TransformOrigin"]="0% 0%",n[mxClient.CSS_PREFIX+"Transform"]="scale("+this.scale+")translate("+100*t+"%,"+100*a+"%)"),n.left=Math.round(this.bounds.x)+"px",n.top=Math.round(this.bounds.y)+"px"},mxText.prototype.updateHtmlFilter=function(){var e=this.node.style,n=this.margin.x,t=this.margin.y,a=this.scale;e.filter="";var i=0,s=0;if(null!=(r=null!=this.state?this.state.view.textDiv:null)){if(r.style.overflow="",r.style.height="",r.style.width="",this.updateFont(r),this.updateSize(r),mxUtils.isNode(this.value))r.innerHTML=this.value.outerHTML;else{var o=this.value;this.dialect!=mxConstants.DIALECT_STRICTHTML&&(o=mxUtils.htmlEntities(o,!1)),o=this.replaceLinefeeds?o.replace(/\n/g,"<br/>"):o,r.innerHTML=o}i=r.offsetWidth+2,s=r.offsetHeight+2}else i=this.node.offsetWidth,s=this.node.offsetHeight+1;this.offsetWidth=i,this.offsetHeight=s,r=this.bounds.width/a,o=this.bounds.height/a,mxClient.IS_QUIRKS&&(this.clipped||"fill"==this.overflow)&&0<o?(o=Math.min(o,s),e.height=Math.round(o+1)+"px"):o=s,"fill"!=this.overflow&&(mxClient.IS_QUIRKS&&(this.clipped||this.wrap)&&0<r?(r=Math.min(r,i),e.width=Math.round(r)+"px"):r=i);o*=a;var r=r*a,l=(i=this.getTextRotation()*(Math.PI/180),s=parseFloat(parseFloat(Math.cos(i)).toFixed(8)),parseFloat(parseFloat(Math.sin(-i)).toFixed(8)));(i=i%(2*Math.PI))<0&&(i+=2*Math.PI),(i%=Math.PI)>Math.PI/2&&(i=Math.PI-i);var d=Math.cos(i),c=Math.sin(-i),m=(o-o*d+r*c)/2+l*(n=r*-(n+.5))-s*(t=o*-(t+.5));0!=i&&(e.filter="progid:DXImageTransform.Microsoft.Matrix(M11="+s+", M12="+l+", M21="+-l+", M22="+s+", sizingMethod='auto expand')"),e.zoom=a,e.left=Math.round(this.bounds.x+((r-r*d+o*c)/2-s*n-l*t)-r/2)+"px",e.top=Math.round(this.bounds.y+m-o/2)+"px"},mxText.prototype.updateValue=function(){if(mxUtils.isNode(this.value))this.node.innerHTML="",this.node.appendChild(this.value);else{var e=this.value;this.dialect!=mxConstants.DIALECT_STRICTHTML&&(e=mxUtils.htmlEntities(e,!1));e=this.replaceLinefeeds?e.replace(/\n/g,"<br/>"):e;var n=null!=this.background&&this.background!=mxConstants.NONE?this.background:null,t=null!=this.border&&this.border!=mxConstants.NONE?this.border:null;if(null!=n||null!=t)if("fill"==this.overflow)null!=n&&(this.node.style.backgroundColor=n),null!=t&&(this.node.style.border="1px solid "+t);else{var a="";null!=n&&(a+="background-color:"+n+";"),null!=t&&(a+="border:1px solid "+t+";"),e='<div style="zoom:1;'+a+"display:inline-block;_display:inline;padding-bottom:1px;padding-right:1px;line-height:"+this.node.style.lineHeight+'">'+e+"</div>",this.node.style.lineHeight=""}this.node.innerHTML=e}},mxText.prototype.updateFont=function(e){(e=e.style).lineHeight=Math.round(this.size*mxConstants.LINE_HEIGHT)+"px",e.fontSize=Math.round(this.size)+"px",e.fontFamily=this.family,e.verticalAlign="top",e.color=this.color,e.fontWeight=(this.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD?"bold":"",e.fontStyle=(this.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC?"italic":"",e.fontDecoration=(this.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE?"underline":"",e.textAlign=this.align==mxConstants.ALIGN_CENTER?"center":this.align==mxConstants.ALIGN_RIGHT?"right":"left"},mxText.prototype.updateSize=function(e){var n=Math.round(this.bounds.width/this.scale),t=Math.round(this.bounds.height/this.scale);e=e.style,this.clipped?(e.overflow="hidden",0<t&&(e.maxHeight=t+"px"),0<n&&(e.width=n+"px")):"fill"==this.overflow&&(e.width=n+"px",0<t&&(e.maxHeight=t+"px")),this.wrap?(!this.clipped&&0<n&&(e.width=n+"px"),e.whiteSpace="normal"):e.whiteSpace="nowrap"},mxText.prototype.updateMargin=function(){this.margin=mxUtils.getAlignmentAsPoint(this.align,this.valign)},mxText.prototype.getSpacing=function(){return new mxPoint(this.align==mxConstants.ALIGN_CENTER?(this.spacingLeft-this.spacingRight)/2:this.align==mxConstants.ALIGN_RIGHT?-this.spacingRight-this.baseSpacingRight:this.spacingLeft+this.baseSpacingLeft,this.valign==mxConstants.ALIGN_MIDDLE?(this.spacingTop-this.spacingBottom)/2:this.valign==mxConstants.ALIGN_BOTTOM?-this.spacingBottom-this.baseSpacingBottom:this.spacingTop+this.baseSpacingTop)},mxUtils.extend(mxTriangle,mxActor),mxTriangle.prototype.redrawPath=function(e,n,t,a,i){e.moveTo(0,0),e.lineTo(a,.5*i),e.lineTo(0,i),e.close()},mxUtils.extend(mxHexagon,mxActor),mxHexagon.prototype.redrawPath=function(e,n,t,a,i){e.moveTo(.25*a,0),e.lineTo(.75*a,0),e.lineTo(a,.5*i),e.lineTo(.75*a,i),e.lineTo(.25*a,i),e.lineTo(0,.5*i),e.close()},mxUtils.extend(mxLine,mxShape),mxLine.prototype.paintVertexShape=function(e,n,t,a,i){t+=i/2,e.begin(),e.moveTo(n,t),e.lineTo(n+a,t),e.stroke()},mxUtils.extend(mxImageShape,mxRectangleShape),mxImageShape.prototype.preserveImageAspect=!0,mxImageShape.prototype.getSvgScreenOffset=function(){return mxClient.IS_IE?0:.5},mxImageShape.prototype.apply=function(e){mxShape.prototype.apply.apply(this,arguments),this.gradient=this.stroke=this.fill=null,null!=this.style&&(this.fill=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BACKGROUND),this.stroke=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BORDER),this.preserveImageAspect=1==mxUtils.getNumber(this.style,mxConstants.STYLE_IMAGE_ASPECT,1),this.flipH=this.flipH||1==mxUtils.getValue(this.style,"imageFlipH",0),this.flipV=this.flipV||1==mxUtils.getValue(this.style,"imageFlipV",0))},mxImageShape.prototype.isHtmlAllowed=function(){return!this.preserveImageAspect},mxImageShape.prototype.createHtml=function(){var e=document.createElement("div");return e.style.position="absolute",e},mxImageShape.prototype.paintVertexShape=function(e,n,t,a,i){if(null!=this.image){var s=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BACKGROUND,null),o=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BORDER,null);null==s&&null==o||(e.setFillColor(s),e.setStrokeColor(o),e.rect(n,t,a,i),e.fillAndStroke()),e.image(n,t,a,i,this.image,this.preserveImageAspect,!1,!1)}else mxRectangleShape.prototype.paintBackground.apply(this,arguments)},mxImageShape.prototype.redrawHtmlShape=function(){if(this.node.style.left=Math.round(this.bounds.x)+"px",this.node.style.top=Math.round(this.bounds.y)+"px",this.node.style.width=Math.max(0,Math.round(this.bounds.width))+"px",this.node.style.height=Math.max(0,Math.round(this.bounds.height))+"px",this.node.style.backgroundColor=this.fill||"",this.node.style.borderColor=this.stroke||"",this.node.innerHTML="",null!=this.image){var e=document.createElement(mxClient.IS_IE6||null==mxClient.CSS_PREFIX&&0!=this.rotation?mxClient.VML_PREFIX+":image":"img");e.style.position="absolute",e.src=this.image;var n=this.opacity<100?"alpha(opacity="+this.opacity+")":"";this.node.style.filter=n,this.flipH&&this.flipV?n+="progid:DXImageTransform.Microsoft.BasicImage(rotation=2)":this.flipH?n+="progid:DXImageTransform.Microsoft.BasicImage(mirror=1)":this.flipV&&(n+="progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"),e.style.filter!=n&&(e.style.filter=n),"image"==e.nodeName?e.style.rotation=this.rotation:e.style[mxClient.CSS_PREFIX+"Transform"]="rotate("+this.rotation+"deg)",e.style.width=this.node.style.width,e.style.height=this.node.style.height,this.node.style.backgroundImage="",this.node.appendChild(e)}else this.setTransparentBackgroundImage(this.node)},mxUtils.extend(mxLabel,mxRectangleShape),mxLabel.prototype.imageSize=mxConstants.DEFAULT_IMAGESIZE,mxLabel.prototype.spacing=2,mxLabel.prototype.indicatorSize=10,mxLabel.prototype.indicatorSpacing=2,mxLabel.prototype.init=function(e){mxShape.prototype.init.apply(this,arguments),null!=this.indicatorColor&&null!=this.indicatorShape&&(this.indicator=new this.indicatorShape,this.indicator.dialect=this.dialect,this.indicator.bounds=this.bounds,this.indicator.fill=this.indicatorColor,this.indicator.stroke=this.indicatorColor,this.indicator.gradient=this.indicatorGradientColor,this.indicator.direction=this.indicatorDirection,this.indicator.init(this.node))},mxLabel.prototype.redraw=function(){null!=this.indicator&&(this.indicator.fill=this.indicatorColor,this.indicator.stroke=this.indicatorColor,this.indicator.gradient=this.indicatorGradientColor,this.indicator.direction=this.indicatorDirection),mxShape.prototype.redraw.apply(this,arguments)},mxLabel.prototype.isHtmlAllowed=function(){return mxRectangleShape.prototype.isHtmlAllowed.apply(this,arguments)&&null==this.indicatorColor&&null==this.indicatorShape},mxLabel.prototype.paintForeground=function(e,n,t,a,i){this.paintImage(e,n,t,a,i),this.paintIndicator(e,n,t,a,i),mxRectangleShape.prototype.paintForeground.apply(this,arguments)},mxLabel.prototype.paintImage=function(e,n,t,a,i){null!=this.image&&(n=this.getImageBounds(n,t,a,i),e.image(n.x,n.y,n.width,n.height,this.image,!1,!1,!1))},mxLabel.prototype.getImageBounds=function(e,n,t,a){var i=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_ALIGN,mxConstants.ALIGN_LEFT),s=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE),o=mxUtils.getNumber(this.style,mxConstants.STYLE_IMAGE_WIDTH,mxConstants.DEFAULT_IMAGESIZE),r=mxUtils.getNumber(this.style,mxConstants.STYLE_IMAGE_HEIGHT,mxConstants.DEFAULT_IMAGESIZE),l=mxUtils.getNumber(this.style,mxConstants.STYLE_SPACING,this.spacing)+5;return new mxRectangle(e=i==mxConstants.ALIGN_CENTER?e+(t-o)/2:i==mxConstants.ALIGN_RIGHT?e+(t-o-l):e+l,n=s==mxConstants.ALIGN_TOP?n+l:s==mxConstants.ALIGN_BOTTOM?n+(a-r-l):n+(a-r)/2,o,r)},mxLabel.prototype.paintIndicator=function(e,n,t,a,i){null!=this.indicator?(this.indicator.bounds=this.getIndicatorBounds(n,t,a,i),this.indicator.paint(e)):null!=this.indicatorImage&&(n=this.getIndicatorBounds(n,t,a,i),e.image(n.x,n.y,n.width,n.height,this.indicatorImage,!1,!1,!1))},mxLabel.prototype.getIndicatorBounds=function(e,n,t,a){var i=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_ALIGN,mxConstants.ALIGN_LEFT),s=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE),o=mxUtils.getNumber(this.style,mxConstants.STYLE_INDICATOR_WIDTH,this.indicatorSize),r=mxUtils.getNumber(this.style,mxConstants.STYLE_INDICATOR_HEIGHT,this.indicatorSize),l=this.spacing+5;return new mxRectangle(e=i==mxConstants.ALIGN_RIGHT?e+(t-o-l):i==mxConstants.ALIGN_CENTER?e+(t-o)/2:e+l,n=s==mxConstants.ALIGN_BOTTOM?n+(a-r-l):s==mxConstants.ALIGN_TOP?n+l:n+(a-r)/2,o,r)},mxLabel.prototype.redrawHtmlShape=function(){for(mxRectangleShape.prototype.redrawHtmlShape.apply(this,arguments);this.node.hasChildNodes();)this.node.removeChild(this.node.lastChild);if(null!=this.image){var e=document.createElement("img");e.style.position="relative",e.setAttribute("border","0");var n=this.getImageBounds(this.bounds.x,this.bounds.y,this.bounds.width,this.bounds.height);n.x-=this.bounds.x,n.y-=this.bounds.y,e.style.left=Math.round(n.x)+"px",e.style.top=Math.round(n.y)+"px",e.style.width=Math.round(n.width)+"px",e.style.height=Math.round(n.height)+"px",e.src=this.image,this.node.appendChild(e)}},mxUtils.extend(mxCylinder,mxShape),mxCylinder.prototype.maxHeight=40,mxCylinder.prototype.svgStrokeTolerance=0,mxCylinder.prototype.paintVertexShape=function(e,n,t,a,i){e.translate(n,t),e.begin(),this.redrawPath(e,n,t,a,i,!1),e.fillAndStroke(),e.setShadow(!1),e.begin(),this.redrawPath(e,n,t,a,i,!0),e.stroke()},mxCylinder.prototype.redrawPath=function(e,n,t,a,i,s){n=Math.min(this.maxHeight,Math.round(i/5)),(s&&null!=this.fill||!s&&null==this.fill)&&(e.moveTo(0,n),e.curveTo(0,2*n,a,2*n,a,n),s||(e.stroke(),e.begin())),s||(e.moveTo(0,n),e.curveTo(0,-n/3,a,-n/3,a,n),e.lineTo(a,i-n),e.curveTo(a,i+n/3,0,i+n/3,0,i-n),e.close())},mxUtils.extend(mxConnector,mxPolyline),mxConnector.prototype.paintEdgeShape=function(e,n){var t=this.createMarker(e,n,!0),a=this.createMarker(e,n,!1);null==this.style||1!=this.style[mxConstants.STYLE_CURVED]?this.paintLine(e,n,this.isRounded):this.paintCurvedLine(e,n),e.setFillColor(this.stroke),e.setShadow(!1),e.setDashed(!1),null!=t&&t(),null!=a&&a()},mxConnector.prototype.paintCurvedLine=function(e,n){e.begin();var t=n[0],a=n.length;for(e.moveTo(t.x,t.y),t=1;t<a-2;t++){var i=n[t],s=n[t+1];e.quadTo(i.x,i.y,(i.x+s.x)/2,(i.y+s.y)/2)}i=n[a-2],s=n[a-1],e.quadTo(i.x,i.y,s.x,s.y),e.stroke()},mxConnector.prototype.createMarker=function(e,n,t){var a=n.length,i=t?n[1]:n[a-2],s=(a=(n=t?n[0]:n[a-1]).x-i.x,n.y-i.y),o=(i=a/(o=Math.max(1,Math.sqrt(a*a+s*s))),a=s/o,s=mxUtils.getNumber(this.style,t?mxConstants.STYLE_STARTSIZE:mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE),mxUtils.getValue(this.style,t?mxConstants.STYLE_STARTARROW:mxConstants.STYLE_ENDARROW));return mxMarker.createMarker(e,this,o,n,i,a,s,t,this.strokewidth,0!=this.style[t?mxConstants.STYLE_STARTFILL:mxConstants.STYLE_ENDFILL])},mxConnector.prototype.augmentBoundingBox=function(e){mxShape.prototype.augmentBoundingBox.apply(this,arguments);var n=0;mxUtils.getValue(this.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(n=mxUtils.getNumber(this.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE)+1),mxUtils.getValue(this.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE&&(n=Math.max(n,mxUtils.getNumber(this.style,mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE))+1),e.grow(Math.ceil(n*this.scale))},mxUtils.extend(mxSwimlane,mxShape),mxSwimlane.prototype.imageSize=16,mxSwimlane.prototype.getGradientBounds=function(e,n,t,a,i){return new mxRectangle(n,t,a,Math.min(i,mxUtils.getValue(this.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE)))},mxSwimlane.prototype.getRotation=function(){var e=mxShape.prototype.getRotation.apply(this,arguments);return 1!=mxUtils.getValue(this.style,mxConstants.STYLE_HORIZONTAL,1)&&(e+=mxText.prototype.verticalTextRotation),e},mxSwimlane.prototype.getTextRotation=function(){return this.getRotation()},mxSwimlane.prototype.isPaintBoundsInverted=function(){return mxShape.prototype.isPaintBoundsInverted.apply(this,arguments)||1!=mxUtils.getValue(this.style,mxConstants.STYLE_HORIZONTAL,1)},mxSwimlane.prototype.getArcSize=function(e,n,t){return 3*t*(mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100)},mxSwimlane.prototype.paintVertexShape=function(e,n,t,a,i){var s=Math.min(i,mxUtils.getValue(this.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE)),o=mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_FILLCOLOR,mxConstants.NONE),r=1==mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_LINE,1),l=0;e.translate(n,t),this.isRounded?(l=this.getArcSize(a,i,s),this.paintRoundedSwimlane(e,n,t,a,i,s,l,o,r)):this.paintSwimlane(e,n,t,a,i,s,o,r),o=mxUtils.getValue(this.style,mxConstants.STYLE_SEPARATORCOLOR,mxConstants.NONE),this.paintSeparator(e,a,s,i,o),null!=this.image&&(i=this.getImageBounds(n,s,a,i),e.image(i.x-n,i.y-t,i.width,i.height,this.image,!1,!1,!1)),this.glass&&(e.setShadow(!1),this.paintGlassEffect(e,0,0,a,s,l))},mxSwimlane.prototype.paintSwimlane=function(e,n,t,a,i,s,o,r){o!=mxConstants.NONE&&(e.save(),e.setFillColor(o),e.rect(0,0,a,i),e.fillAndStroke(),e.restore(),e.setShadow(!1)),e.begin(),e.moveTo(0,s),e.lineTo(0,0),e.lineTo(a,0),e.lineTo(a,s),r&&e.close(),e.fillAndStroke(),s<i&&o==mxConstants.NONE&&(e.pointerEvents=!1,e.begin(),e.moveTo(0,s),e.lineTo(0,i),e.lineTo(a,i),e.lineTo(a,s),e.stroke())},mxSwimlane.prototype.paintRoundedSwimlane=function(e,n,t,a,i,s,o,r,l){r!=mxConstants.NONE&&(e.save(),e.setFillColor(r),e.roundrect(0,0,a,i,o,o),e.fillAndStroke(),e.restore(),e.setShadow(!1)),e.begin(),e.moveTo(a,s),e.lineTo(a,o),e.quadTo(a,0,a-Math.min(a/2,o),0),e.lineTo(Math.min(a/2,o),0),e.quadTo(0,0,0,o),e.lineTo(0,s),l&&e.close(),e.fillAndStroke(),s<i&&r==mxConstants.NONE&&(e.pointerEvents=!1,e.begin(),e.moveTo(0,s),e.lineTo(0,i-o),e.quadTo(0,i,Math.min(a/2,o),i),e.lineTo(a-Math.min(a/2,o),i),e.quadTo(a,i,a,i-o),e.lineTo(a,s),e.stroke())},mxSwimlane.prototype.paintSeparator=function(e,n,t,a,i){i!=mxConstants.NONE&&(e.setStrokeColor(i),e.setDashed(!0),e.begin(),e.moveTo(n,t),e.lineTo(n,a),e.stroke(),e.setDashed(!1))},mxSwimlane.prototype.getImageBounds=function(e,n,t,a){return new mxRectangle(e+t-this.imageSize,n,this.imageSize,this.imageSize)},mxGraphLayout.prototype.graph=null,mxGraphLayout.prototype.useBoundingBox=!0,mxGraphLayout.prototype.parent=null,mxGraphLayout.prototype.moveCell=function(e,n,t){},mxGraphLayout.prototype.execute=function(e){},mxGraphLayout.prototype.getGraph=function(){return this.graph},mxGraphLayout.prototype.getConstraint=function(e,n,t,a){return null!=(n=null!=(t=this.graph.view.getState(n))?t.style:this.graph.getCellStyle(n))?n[e]:null},mxGraphLayout.traverse=function(e,n,t,a,i){if(null!=t&&null!=e){n=null==n||n,i=i||[];var s=mxCellPath.create(e);if(null==i[s]&&(null==(a=t(i[s]=e,a))||a)&&0<(a=this.graph.model.getEdgeCount(e)))for(s=0;s<a;s++){var o=this.graph.model.getEdgeAt(e,s),r=this.graph.model.getTerminal(o,!0)==e;n&&!r||(r=this.graph.view.getVisibleTerminal(o,!r),this.traverse(r,n,t,o,i))}}},mxGraphLayout.prototype.isVertexMovable=function(e){return this.graph.isCellMovable(e)},mxGraphLayout.prototype.isVertexIgnored=function(e){return!this.graph.getModel().isVertex(e)||!this.graph.isCellVisible(e)},mxGraphLayout.prototype.isEdgeIgnored=function(e){var n=this.graph.getModel();return!n.isEdge(e)||!this.graph.isCellVisible(e)||null==n.getTerminal(e,!0)||null==n.getTerminal(e,!1)},mxGraphLayout.prototype.setEdgeStyleEnabled=function(e,n){this.graph.setCellStyles(mxConstants.STYLE_NOEDGESTYLE,n?"0":"1",[e])},mxGraphLayout.prototype.setOrthogonalEdge=function(e,n){this.graph.setCellStyles(mxConstants.STYLE_ORTHOGONAL,n?"1":"0",[e])},mxGraphLayout.prototype.getParentOffset=function(e){var n=new mxPoint;if(null!=e&&e!=this.parent){var t=this.graph.getModel();if(t.isAncestor(this.parent,e))for(var a=t.getGeometry(e);e!=this.parent;)n.x+=a.x,n.y+=a.y,e=t.getParent(e),a=t.getGeometry(e)}return n},mxGraphLayout.prototype.setEdgePoints=function(e,n){if(null!=e){var t=this.graph.model,a=t.getGeometry(e);if(null==a?(a=new mxGeometry).setRelative(!0):a=a.clone(),null!=this.parent&&null!=n)for(var i=t.getParent(e),s=(i=this.getParentOffset(i),0);s<n.length;s++)n[s].x-=i.x,n[s].y-=i.y;a.points=n,t.setGeometry(e,a)}},mxGraphLayout.prototype.setVertexLocation=function(e,n,t){var a=this.graph.getModel(),i=a.getGeometry(e),s=null;if(null!=i){if(s=new mxRectangle(n,t,i.width,i.height),this.useBoundingBox){var o=this.graph.getView().getState(e);if(null!=o&&null!=o.text&&null!=o.text.boundingBox){var r=this.graph.getView().scale,l=o.text.boundingBox;o.text.boundingBox.x<o.x&&(n+=(o.x-l.x)/r,s.width=l.width),o.text.boundingBox.y<o.y&&(t+=(o.y-l.y)/r,s.height=l.height)}}null!=this.parent&&(null!=(o=a.getParent(e))&&o!=this.parent&&(n-=(o=this.getParentOffset(o)).x,t-=o.y)),i.x==n&&i.y==t||((i=i.clone()).x=n,i.y=t,a.setGeometry(e,i))}return s},mxGraphLayout.prototype.getVertexBounds=function(e){var n=this.graph.getModel().getGeometry(e);if(this.useBoundingBox&&(null!=(r=this.graph.getView().getState(e))&&null!=r.text&&null!=r.text.boundingBox)){var t=this.graph.getView().scale,a=r.text.boundingBox,i=Math.max(r.x-a.x,0)/t,s=Math.max(r.y-a.y,0)/t,o=Math.max(a.x+a.width-(r.x+r.width),0)/t,r=Math.max(a.y+a.height-(r.y+r.height),0)/t;n=new mxRectangle(n.x-i,n.y-s,n.width+i+o,n.height+s+r)}return null!=this.parent&&(e=this.graph.getModel().getParent(e),n=n.clone(),null!=e&&e!=this.parent&&(e=this.getParentOffset(e),n.x+=e.x,n.y+=e.y)),new mxRectangle(n.x,n.y,n.width,n.height)},mxGraphLayout.prototype.arrangeGroups=function(e,n){this.graph.getModel().beginUpdate();try{for(var t=e.length-1;0<=t;t--){var a=e[t],i=this.graph.getChildVertices(a),s=this.graph.getBoundingBoxFromGeometry(i),o=this.graph.getCellGeometry(a),r=0,l=0;if(this.graph.isSwimlane(a)){var d=this.graph.getStartSize(a);r=d.width,l=d.height}null!=s&&null!=o&&((o=o.clone()).x=o.x+s.x-n-r,o.y=o.y+s.y-n-l,o.width=s.width+2*n+r,o.height=s.height+2*n+l,this.graph.getModel().setGeometry(a,o),this.graph.moveCells(i,n+r-s.x,n+l-s.y))}}finally{this.graph.getModel().endUpdate()}},mxStackLayout.prototype=new mxGraphLayout,mxStackLayout.prototype.constructor=mxStackLayout,mxStackLayout.prototype.horizontal=null,mxStackLayout.prototype.spacing=null,mxStackLayout.prototype.x0=null,mxStackLayout.prototype.y0=null,mxStackLayout.prototype.border=0,mxStackLayout.prototype.keepFirstLocation=!1,mxStackLayout.prototype.fill=!1,mxStackLayout.prototype.resizeParent=!1,mxStackLayout.prototype.resizeLast=!1,mxStackLayout.prototype.wrap=null,mxStackLayout.prototype.isHorizontal=function(){return this.horizontal},mxStackLayout.prototype.moveCell=function(e,n,t){var a=this.graph.getModel(),i=a.getParent(e),s=this.isHorizontal();if(null!=e&&null!=i){var o=0,r=0,l=a.getChildCount(i);for(n=s?n:t,null!=(o=this.graph.getView().getState(i))&&(n-=s?o.x:o.y),o=0;o<l;o++)if((t=a.getChildAt(i,o))!=e&&null!=(t=a.getGeometry(t))){if(t=s?t.x+t.width/2:t.y+t.height/2,r<n&&n<t)break;r=t}s=i.getIndex(e),s=Math.max(0,o-(s<o?1:0)),a.add(i,e,s)}},mxStackLayout.prototype.getParentSize=function(e){var n=this.graph.getModel(),t=n.getGeometry(e);return null!=this.graph.container&&(null==t&&n.isLayer(e)||e==this.graph.getView().currentRoot)&&(t=new mxRectangle(0,0,this.graph.container.offsetWidth-1,this.graph.container.offsetHeight-1)),t},mxStackLayout.prototype.execute=function(e){if(null!=e){var n=this.isHorizontal(),t=this.graph.getModel(),a=this.getParentSize(e),i=0;null!=a&&(i=n?a.height:a.width);i=i-(2*this.spacing+2*this.border);var s=this.x0+this.border,o=this.y0+this.border;if(this.graph.isSwimlane(e)){var r=this.graph.getCellStyle(e),l=mxUtils.getValue(r,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE);n==(r=mxUtils.getValue(r,mxConstants.STYLE_HORIZONTAL,!0))&&(i-=l),n?o+=l:s+=l}t.beginUpdate();try{l=0,r=null;for(var d=t.getChildCount(e),c=0;c<d;c++){var m=t.getChildAt(e,c);if(!this.isVertexIgnored(m)&&this.isVertexMovable(m)){var u=t.getGeometry(m);null!=u&&(u=u.clone(),null!=this.wrap&&null!=r&&(n&&r.x+r.width+u.width+2*this.spacing>this.wrap||!n&&r.y+r.height+u.height+2*this.spacing>this.wrap)&&(r=null,n?o+=l+this.spacing:s+=l+this.spacing,l=0),l=Math.max(l,n?u.height:u.width),null!=r?n?u.x=r.x+r.width+this.spacing:u.y=r.y+r.height+this.spacing:this.keepFirstLocation||(n?u.x=s:u.y=o),n?u.y=o:u.x=s,this.fill&&0<i&&(n?u.height=i:u.width=i),t.setGeometry(m,u),r=u)}}this.resizeParent&&null!=a&&null!=r&&!this.graph.isCellCollapsed(e)?(a=a.clone(),n?a.width=r.x+r.width+this.spacing:a.height=r.y+r.height+this.spacing,t.setGeometry(e,a)):this.resizeLast&&null!=a&&null!=r&&(n?r.width=a.width-r.x-this.spacing:r.height=a.height-r.y-this.spacing)}finally{t.endUpdate()}}},mxPartitionLayout.prototype=new mxGraphLayout,mxPartitionLayout.prototype.constructor=mxPartitionLayout,mxPartitionLayout.prototype.horizontal=null,mxPartitionLayout.prototype.spacing=null,mxPartitionLayout.prototype.border=null,mxPartitionLayout.prototype.resizeVertices=!0,mxPartitionLayout.prototype.isHorizontal=function(){return this.horizontal},mxPartitionLayout.prototype.moveCell=function(e,n,t){var a=(t=this.graph.getModel()).getParent(e);if(null!=e&&null!=a){var i=0,s=0,o=t.getChildCount(a);for(i=0;i<o;i++){var r=t.getChildAt(a,i);if(null!=(r=this.getVertexBounds(r))){if(r=r.x+r.width/2,s<n&&n<r)break;s=r}}n=a.getIndex(e),n=Math.max(0,i-(n<i?1:0)),t.add(a,e,n)}},mxPartitionLayout.prototype.execute=function(e){var n=this.isHorizontal(),t=this.graph.getModel(),a=t.getGeometry(e);if(null!=this.graph.container&&(null==a&&t.isLayer(e)||e==this.graph.getView().currentRoot)&&(a=new mxRectangle(0,0,this.graph.container.offsetWidth-1,this.graph.container.offsetHeight-1)),null!=a){for(var i=[],s=t.getChildCount(e),o=0;o<s;o++){var r=t.getChildAt(e,o);!this.isVertexIgnored(r)&&this.isVertexMovable(r)&&i.push(r)}if(0<(s=i.length)){var l=this.border,d=this.border,c=(c=n?a.height:a.width)-2*this.border;if(e=this.graph.isSwimlane(e)?this.graph.getStartSize(e):new mxRectangle,c-=n?e.height:e.width,l+=e.width,d+=e.height,e=this.border+(s-1)*this.spacing,0<(a=n?(a.width-l-e)/s:(a.height-d-e)/s)){t.beginUpdate();try{for(o=0;o<s;o++){r=i[o];var m=t.getGeometry(r);null!=m&&((m=m.clone()).x=l,m.y=d,n?(this.resizeVertices&&(m.width=a,m.height=c),l+=a+this.spacing):(this.resizeVertices&&(m.height=a,m.width=c),d+=a+this.spacing),t.setGeometry(r,m))}}finally{t.endUpdate()}}}}},mxCompactTreeLayout.prototype=new mxGraphLayout,mxCompactTreeLayout.prototype.constructor=mxCompactTreeLayout,mxCompactTreeLayout.prototype.horizontal=null,mxCompactTreeLayout.prototype.invert=null,mxCompactTreeLayout.prototype.resizeParent=!0,mxCompactTreeLayout.prototype.groupPadding=10,mxCompactTreeLayout.prototype.parentsChanged=null,mxCompactTreeLayout.prototype.moveTree=!1,mxCompactTreeLayout.prototype.levelDistance=10,mxCompactTreeLayout.prototype.nodeDistance=20,mxCompactTreeLayout.prototype.resetEdges=!0,mxCompactTreeLayout.prototype.prefHozEdgeSep=5,mxCompactTreeLayout.prototype.prefVertEdgeOff=4,mxCompactTreeLayout.prototype.minEdgeJetty=8,mxCompactTreeLayout.prototype.channelBuffer=4,mxCompactTreeLayout.prototype.edgeRouting=!0,mxCompactTreeLayout.prototype.isVertexIgnored=function(e){return mxGraphLayout.prototype.isVertexIgnored.apply(this,arguments)||0==this.graph.getConnections(e).length},mxCompactTreeLayout.prototype.isHorizontal=function(){return this.horizontal},mxCompactTreeLayout.prototype.execute=function(e,n){this.parent=e;var t=this.graph.getModel();if(null==n)if(0<this.graph.getEdges(e,t.getParent(e),this.invert,!this.invert,!1).length)n=e;else{if(0<(o=this.graph.findTreeRoots(e,!0,this.invert)).length)for(var a=0;a<o.length;a++)if(!this.isVertexIgnored(o[a])&&0<this.graph.getEdges(o[a],null,this.invert,!this.invert,!1).length){n=o[a];break}}if(null!=n){this.parentsChanged=this.resizeParent?{}:null,t.beginUpdate();try{var i=this.dfs(n,e);if(null!=i){this.layout(i);var s=this.graph.gridSize,o=s;if(!this.moveTree){var r=this.getVertexBounds(n);null!=r&&(s=r.x,o=r.y)}if((r=null)!=(r=this.isHorizontal()?this.horizontalLayout(i,s,o):this.verticalLayout(i,null,s,o))){var l=a=0;r.x<0&&(a=Math.abs(s-r.x)),r.y<0&&(l=Math.abs(o-r.y)),(0!=a||0!=l)&&this.moveNode(i,a,l),this.resizeParent&&this.adjustParents(),this.edgeRouting&&this.localEdgeProcessing(i)}}}finally{t.endUpdate()}}},mxCompactTreeLayout.prototype.moveNode=function(e,n,t){for(e.x+=n,e.y+=t,this.apply(e),e=e.child;null!=e;)this.moveNode(e,n,t),e=e.next},mxCompactTreeLayout.prototype.dfs=function(e,n,t){t=null!=t?t:[];var a=mxCellPath.create(e),i=null;if(null!=e&&null==t[a]&&!this.isVertexIgnored(e)){t[a]=e;i=this.createNode(e),a=this.graph.getModel();var s=null;e=this.graph.getEdges(e,n,this.invert,!this.invert,!1,!0);for(var o=this.graph.getView(),r=0;r<e.length;r++){var l=e[r];if(!this.isEdgeIgnored(l)){this.resetEdges&&this.setEdgePoints(l,null),this.edgeRouting&&(this.setEdgeStyleEnabled(l,!1),this.setEdgePoints(l,null));var d;l=null!=(d=o.getState(l))?d.getVisibleTerminal(this.invert):o.getVisibleTerminal(l,this.invert);null!=(d=this.dfs(l,n,t))&&null!=a.getGeometry(l)&&(null==s?i.child=d:s.next=d,s=d)}}}return i},mxCompactTreeLayout.prototype.layout=function(e){if(null!=e){for(var n=e.child;null!=n;)this.layout(n),n=n.next;null!=e.child?this.attachParent(e,this.join(e)):this.layoutLeaf(e)}},mxCompactTreeLayout.prototype.horizontalLayout=function(e,n,t,a){if(e.x+=n+e.offsetX,e.y+=t+e.offsetY,a=this.apply(e,a),null!=(n=e.child)){a=this.horizontalLayout(n,e.x,e.y,a),t=e.y+n.offsetY;for(var i=n.next;null!=i;)a=this.horizontalLayout(i,e.x+n.offsetX,t,a),t+=i.offsetY,i=i.next}return a},mxCompactTreeLayout.prototype.verticalLayout=function(e,n,t,a,i){if(e.x+=t+e.offsetY,e.y+=a+e.offsetX,i=this.apply(e,i),null!=(n=e.child))for(i=this.verticalLayout(n,e,e.x,e.y,i),t=e.x+n.offsetY,a=n.next;null!=a;)i=this.verticalLayout(a,e,t,e.y+n.offsetX,i),t+=a.offsetY,a=a.next;return i},mxCompactTreeLayout.prototype.attachParent=function(e,n){var t=this.nodeDistance+this.levelDistance,a=(n-e.width)/2-this.nodeDistance,i=a+e.width+2*this.nodeDistance-n;e.child.offsetX=t+e.height,e.child.offsetY=i,e.contour.upperHead=this.createLine(e.height,0,this.createLine(t,i,e.contour.upperHead)),e.contour.lowerHead=this.createLine(e.height,0,this.createLine(t,a,e.contour.lowerHead))},mxCompactTreeLayout.prototype.layoutLeaf=function(e){var n=2*this.nodeDistance;e.contour.upperTail=this.createLine(e.height+n,0),e.contour.upperHead=e.contour.upperTail,e.contour.lowerTail=this.createLine(0,-e.width-n),e.contour.lowerHead=this.createLine(e.height+n,0,e.contour.lowerTail)},mxCompactTreeLayout.prototype.join=function(e){var n=2*this.nodeDistance,t=e.child;e.contour=t.contour;var a=t.width+n,i=a;for(t=t.next;null!=t;){var s=this.merge(e.contour,t.contour);t.offsetY=s+a,t.offsetX=0,i+=s+(a=t.width+n),t=t.next}return i},mxCompactTreeLayout.prototype.merge=function(e,n){for(var t=0,a=0,i=0,s=e.lowerHead,o=n.upperHead;null!=o&&null!=s;){var r=this.offset(t,a,o.dx,o.dy,s.dx,s.dy);a=a+r,i=i+r;t+o.dx<=s.dx?(t+=o.dx,a+=o.dy,o=o.next):(t-=s.dx,a-=s.dy,s=s.next)}return null!=o?(t=this.bridge(e.upperTail,0,0,o,t,a),e.upperTail=null!=t.next?n.upperTail:t,e.lowerTail=n.lowerTail):null==(t=this.bridge(n.lowerTail,t,a,s,0,0)).next&&(e.lowerTail=t),e.lowerHead=n.lowerHead,i},mxCompactTreeLayout.prototype.offset=function(e,n,t,a,i,s){var o;return i<=e||e+t<=0?0:0<(o=0<i*a-t*s?e<0?e*a/t-n:0<e?e*s/i-n:-n:i<e+t?s-(n+(i-e)*a/t):e+t<i?(t+e)*s/i-(n+a):s-(n+a))?o:0},mxCompactTreeLayout.prototype.bridge=function(e,n,t,a,i,s){return n=i+a.dx-n,i=i=0,0==a.dx?i=a.dy:(i=n*a.dy,i/=a.dx),n=this.createLine(n,i,a.next),e.next=this.createLine(0,s+a.dy-i-t,n),n},mxCompactTreeLayout.prototype.createNode=function(e){var n={};return n.cell=e,n.x=0,n.y=0,n.width=0,n.height=0,null!=(e=this.getVertexBounds(e))&&(this.isHorizontal()?(n.width=e.height,n.height=e.width):(n.width=e.width,n.height=e.height)),n.offsetX=0,n.offsetY=0,n.contour={},n},mxCompactTreeLayout.prototype.apply=function(e,n){var t=this.graph.getModel(),a=e.cell,i=t.getGeometry(a);return null!=a&&null!=i&&(this.isVertexMovable(a)&&(i=this.setVertexLocation(a,e.x,e.y),this.resizeParent&&(t=t.getParent(a),a=mxCellPath.create(t),null==this.parentsChanged[a]&&(this.parentsChanged[a]=t))),n=null==n?new mxRectangle(i.x,i.y,i.width,i.height):new mxRectangle(Math.min(n.x,i.x),Math.min(n.y,i.y),Math.max(n.x+n.width,i.x+i.width),Math.max(n.y+n.height,i.y+i.height))),n},mxCompactTreeLayout.prototype.createLine=function(e,n,t){var a={};return a.dx=e,a.dy=n,a.next=t,a},mxCompactTreeLayout.prototype.adjustParents=function(){var e,n=[];for(e in this.parentsChanged)n.push(this.parentsChanged[e]);this.arrangeGroups(mxUtils.sortCells(n,!0),this.groupPadding)},mxCompactTreeLayout.prototype.localEdgeProcessing=function(e){for(this.processNodeOutgoing(e),e=e.child;null!=e;)this.localEdgeProcessing(e),e=e.next},mxCompactTreeLayout.prototype.processNodeOutgoing=function(e){for(var n=e.child,t=e.cell,a=0,i=[];null!=n;){a++;var s=n.x;this.horizontal&&(s=n.y),i.push(new WeightedCellSorter(n,s)),n=n.next}i.sort(WeightedCellSorter.prototype.compare),(s=e.width)>(o=(a+1)*this.prefHozEdgeSep)+2*this.prefHozEdgeSep&&(s-=2*this.prefHozEdgeSep),n=(e=s/a)/2,s>o+2*this.prefHozEdgeSep&&(n+=this.prefHozEdgeSep);s=this.minEdgeJetty-this.prefVertEdgeOff;for(var o=0,r=this.getVertexBounds(t),l=0;l<i.length;l++){for(var d=i[l].cell.cell,c=this.getVertexBounds(d),m=(d=this.graph.getEdgesBetween(t,d,!1),[]),u=0,p=0,g=0;g<d.length;g++)this.horizontal?(u=r.x+r.width,p=r.y+n,m.push(new mxPoint(u,p)),u=r.x+r.width+s,m.push(new mxPoint(u,p)),p=c.y+c.height/2):(u=r.x+n,p=r.y+r.height,m.push(new mxPoint(u,p)),p=r.y+r.height+s,m.push(new mxPoint(u,p)),u=c.x+c.width/2),m.push(new mxPoint(u,p)),this.setEdgePoints(d[g],m);l<a/2?s+=this.prefVertEdgeOff:a/2<l&&(s-=this.prefVertEdgeOff),n+=e,o=Math.max(o,s)}},WeightedCellSorter.prototype.weightedValue=0,WeightedCellSorter.prototype.nudge=!1,WeightedCellSorter.prototype.visited=!1,WeightedCellSorter.prototype.rankIndex=null,WeightedCellSorter.prototype.cell=null,WeightedCellSorter.prototype.compare=function(e,n){return null!=e&&null!=n?n.weightedValue>e.weightedValue?1:n.weightedValue<e.weightedValue?-1:n.nudge?1:-1:0},mxFastOrganicLayout.prototype=new mxGraphLayout,mxFastOrganicLayout.prototype.constructor=mxFastOrganicLayout,mxFastOrganicLayout.prototype.useInputOrigin=!0,mxFastOrganicLayout.prototype.resetEdges=!0,mxFastOrganicLayout.prototype.disableEdgeStyle=!0,mxFastOrganicLayout.prototype.forceConstant=50,mxFastOrganicLayout.prototype.forceConstantSquared=0,mxFastOrganicLayout.prototype.minDistanceLimit=2,mxFastOrganicLayout.prototype.maxDistanceLimit=500,mxFastOrganicLayout.prototype.minDistanceLimitSquared=4,mxFastOrganicLayout.prototype.initialTemp=200,mxFastOrganicLayout.prototype.temperature=0,mxFastOrganicLayout.prototype.maxIterations=0,mxFastOrganicLayout.prototype.iteration=0,mxFastOrganicLayout.prototype.allowedToRun=!0,mxFastOrganicLayout.prototype.isVertexIgnored=function(e){return mxGraphLayout.prototype.isVertexIgnored.apply(this,arguments)||0==this.graph.getConnections(e).length},mxFastOrganicLayout.prototype.execute=function(e){var n=this.graph.getModel();this.vertexArray=[];for(var t=this.graph.getChildVertices(e),a=0;a<t.length;a++)this.isVertexIgnored(t[a])||this.vertexArray.push(t[a]);var i=this.useInputOrigin?this.graph.view.getBounds(this.vertexArray):null,s=this.vertexArray.length;for(this.indices=[],this.dispX=[],this.dispY=[],this.cellLocation=[],this.isMoveable=[],this.neighbours=[],this.radius=[],this.radiusSquared=[],this.forceConstant<.001&&(this.forceConstant=.001),this.forceConstantSquared=this.forceConstant*this.forceConstant,a=0;a<this.vertexArray.length;a++){var o=this.vertexArray[a];this.cellLocation[a]=[];var r=mxCellPath.create(o);this.indices[r]=a;var l=this.getVertexBounds(o),d=l.width,c=l.height,m=l.x,u=l.y;this.cellLocation[a][0]=m+d/2,this.cellLocation[a][1]=u+c/2,this.radius[a]=Math.min(d,c),this.radiusSquared[a]=this.radius[a]*this.radius[a]}n.beginUpdate();try{for(a=0;a<s;a++){this.dispX[a]=0,this.dispY[a]=0,this.isMoveable[a]=this.isVertexMovable(this.vertexArray[a]);var p=this.graph.getConnections(this.vertexArray[a],e);t=this.graph.getOpposites(p,this.vertexArray[a]);for(this.neighbours[a]=[],d=0;d<t.length;d++){this.resetEdges&&this.graph.resetEdge(p[d]),this.disableEdgeStyle&&this.setEdgeStyleEnabled(p[d],!1);r=mxCellPath.create(t[d]);var g=this.indices[r];this.neighbours[a][d]=null!=g?g:a}}for(this.temperature=this.initialTemp,0==this.maxIterations&&(this.maxIterations=20*Math.sqrt(s)),this.iteration=0;this.iteration<this.maxIterations;this.iteration++){if(!this.allowedToRun)return;this.calcRepulsion(),this.calcAttraction(),this.calcPositions(),this.reduceTemperature()}for(e=t=null,a=0;a<this.vertexArray.length;a++)o=this.vertexArray[a],this.isVertexMovable(o)&&(null!=(l=this.getVertexBounds(o))&&(this.cellLocation[a][0]-=l.width/2,this.cellLocation[a][1]-=l.height/2,m=this.graph.snap(this.cellLocation[a][0]),u=this.graph.snap(this.cellLocation[a][1]),this.setVertexLocation(o,m,u),t=null==t?m:Math.min(t,m),e=null==e?u:Math.min(e,u)));a=1-(t||0),o=1-(e||0),null!=i&&(a+=i.x,o+=i.y),this.graph.moveCells(this.vertexArray,a,o)}finally{n.endUpdate()}},mxFastOrganicLayout.prototype.calcPositions=function(){for(var e=0;e<this.vertexArray.length;e++)if(this.isMoveable[e]){(t=Math.sqrt(this.dispX[e]*this.dispX[e]+this.dispY[e]*this.dispY[e]))<.001&&(t=.001);var n=this.dispX[e]/t*Math.min(t,this.temperature),t=this.dispY[e]/t*Math.min(t,this.temperature);this.dispX[e]=0,this.dispY[e]=0,this.cellLocation[e][0]+=n,this.cellLocation[e][1]+=t}},mxFastOrganicLayout.prototype.calcAttraction=function(){for(var e=0;e<this.vertexArray.length;e++)for(var n=0;n<this.neighbours[e].length;n++){var t=this.neighbours[e][n];if(e!=t&&this.isMoveable[e]&&this.isMoveable[t]){(a=(s=this.cellLocation[e][0]-this.cellLocation[t][0])*s+(o=this.cellLocation[e][1]-this.cellLocation[t][1])*o-this.radiusSquared[e]-this.radiusSquared[t])<this.minDistanceLimitSquared&&(a=this.minDistanceLimitSquared);var a,i=Math.sqrt(a),s=s/i*(a=a/this.forceConstant),o=o/i*a;this.dispX[e]-=s,this.dispY[e]-=o,this.dispX[t]+=s,this.dispY[t]+=o}}},mxFastOrganicLayout.prototype.calcRepulsion=function(){for(var e=this.vertexArray.length,n=0;n<e;n++)for(var t=n;t<e;t++){if(!this.allowedToRun)return;if(t!=n&&this.isMoveable[n]&&this.isMoveable[t]){var a=this.cellLocation[n][0]-this.cellLocation[t][0],i=this.cellLocation[n][1]-this.cellLocation[t][1];0==a&&(a=.01+Math.random()),0==i&&(i=.01+Math.random());var s=Math.sqrt(a*a+i*i),o=s-this.radius[n]-this.radius[t];o>this.maxDistanceLimit||(o<this.minDistanceLimit&&(o=this.minDistanceLimit),a=a/s*(o=this.forceConstantSquared/o),i=i/s*o,this.dispX[n]+=a,this.dispY[n]+=i,this.dispX[t]-=a,this.dispY[t]-=i)}}},mxFastOrganicLayout.prototype.reduceTemperature=function(){this.temperature=this.initialTemp*(1-this.iteration/this.maxIterations)},mxCircleLayout.prototype=new mxGraphLayout,mxCircleLayout.prototype.constructor=mxCircleLayout,mxCircleLayout.prototype.radius=null,mxCircleLayout.prototype.moveCircle=!1,mxCircleLayout.prototype.x0=0,mxCircleLayout.prototype.y0=0,mxCircleLayout.prototype.resetEdges=!0,mxCircleLayout.prototype.disableEdgeStyle=!0,mxCircleLayout.prototype.execute=function(e){var n=this.graph.getModel();n.beginUpdate();try{for(var t=0,a=null,i=null,s=[],o=n.getChildCount(e),r=0;r<o;r++){var l=n.getChildAt(e,r);if(this.isVertexIgnored(l))this.isEdgeIgnored(l)||(this.resetEdges&&this.graph.resetEdge(l),this.disableEdgeStyle&&this.setEdgeStyleEnabled(l,!1));else{s.push(l);var d=this.getVertexBounds(l);a=null==a?d.y:Math.min(a,d.y),i=null==i?d.x:Math.min(i,d.x),t=Math.max(t,Math.max(d.width,d.height))}}var c=this.getRadius(s.length,t);this.moveCircle&&(i=this.x0,a=this.y0),this.circle(s,c,i,a)}finally{n.endUpdate()}},mxCircleLayout.prototype.getRadius=function(e,n){return Math.max(e*n/Math.PI,this.radius)},mxCircleLayout.prototype.circle=function(e,n,t,a){for(var i=e.length,s=2*Math.PI/i,o=0;o<i;o++)this.isVertexMovable(e[o])&&this.setVertexLocation(e[o],t+n+n*Math.sin(o*s),a+n+n*Math.cos(o*s))},mxParallelEdgeLayout.prototype=new mxGraphLayout,mxParallelEdgeLayout.prototype.constructor=mxParallelEdgeLayout,mxParallelEdgeLayout.prototype.spacing=20,mxParallelEdgeLayout.prototype.execute=function(e){e=this.findParallels(e),this.graph.model.beginUpdate();try{for(var n in e){var t=e[n];1<t.length&&this.layout(t)}}finally{this.graph.model.endUpdate()}},mxParallelEdgeLayout.prototype.findParallels=function(e){for(var n=this.graph.getModel(),t=[],a=n.getChildCount(e),i=0;i<a;i++){var s=n.getChildAt(e,i);if(!this.isEdgeIgnored(s)){var o=this.getEdgeId(s);null!=o&&(null==t[o]&&(t[o]=[]),t[o].push(s))}}return t},mxParallelEdgeLayout.prototype.getEdgeId=function(e){var n=this.graph.getView(),t=n.getState(e),a=null!=t?t.getVisibleTerminal(!0):n.getVisibleTerminal(e,!0);return e=null!=t?t.getVisibleTerminal(!1):n.getVisibleTerminal(e,!1),null!=a&&null!=e?(a=mxCellPath.create(a),(e=mxCellPath.create(e))<a?e+"-"+a:a+"-"+e):null},mxParallelEdgeLayout.prototype.layout=function(e){var n=e[0];if((o=(t=this.graph.getModel()).getGeometry(t.getTerminal(n,!0)))==(s=t.getGeometry(t.getTerminal(n,!1)))){n=o.x+o.width+this.spacing;for(var t=o.y+o.height/2,a=0;a<e.length;a++)this.route(e[a],n,t),n+=this.spacing}else if(null!=o&&null!=s){n=o.x+o.width/2,t=o.y+o.height/2,a=s.x+s.width/2-n;var i=s.y+s.height/2-t,s=Math.sqrt(a*a+i*i),o=i*this.spacing/s;for(s=a*this.spacing/s,n=n+a/2+o*(e.length-1)/2,t=t+i/2-s*(e.length-1)/2,a=0;a<e.length;a++)this.route(e[a],n,t),n-=o,t+=s}},mxParallelEdgeLayout.prototype.route=function(e,n,t){this.graph.isCellMovable(e)&&this.setEdgePoints(e,[new mxPoint(n,t)])},mxCompositeLayout.prototype=new mxGraphLayout,mxCompositeLayout.prototype.constructor=mxCompositeLayout,mxCompositeLayout.prototype.layouts=null,mxCompositeLayout.prototype.master=null,mxCompositeLayout.prototype.moveCell=function(e,n,t){null!=this.master?this.master.move.apply(this.master,arguments):this.layouts[0].move.apply(this.layouts[0],arguments)},mxCompositeLayout.prototype.execute=function(e){var n=this.graph.getModel();n.beginUpdate();try{for(var t=0;t<this.layouts.length;t++)this.layouts[t].execute.apply(this.layouts[t],arguments)}finally{n.endUpdate()}},mxEdgeLabelLayout.prototype=new mxGraphLayout,mxEdgeLabelLayout.prototype.constructor=mxEdgeLabelLayout,mxEdgeLabelLayout.prototype.execute=function(e){for(var n=this.graph.view,t=this.graph.getModel(),a=[],i=[],s=t.getChildCount(e),o=0;o<s;o++){var r=t.getChildAt(e,o),l=n.getState(r);null!=l&&(this.isVertexIgnored(r)?this.isEdgeIgnored(r)||a.push(l):i.push(l))}this.placeLabels(i,a)},mxEdgeLabelLayout.prototype.placeLabels=function(e,n){var t=this.graph.getModel();t.beginUpdate();try{for(var a=0;a<n.length;a++){var i=n[a];if(null!=i&&null!=i.text&&null!=i.text.boundingBox)for(var s=0;s<e.length;s++){var o=e[s];null!=o&&this.avoid(i,o)}}}finally{t.endUpdate()}},mxEdgeLabelLayout.prototype.avoid=function(e,n){var t=this.graph.getModel(),a=e.text.boundingBox;if(mxUtils.intersects(a,n)){var i=-a.y-a.height+n.y,s=-a.y+n.y+n.height;i=Math.abs(i)<Math.abs(s)?i:s,s=-a.x-a.width+n.x,a=-a.x+n.x+n.width,a=Math.abs(s)<Math.abs(a)?s:a;Math.abs(a)<Math.abs(i)?i=0:a=0,null!=(s=t.getGeometry(e.cell))&&(null!=(s=s.clone()).offset?(s.offset.x+=a,s.offset.y+=i):s.offset=new mxPoint(a,i),t.setGeometry(e.cell,s))}},mxGraphAbstractHierarchyCell.prototype.maxRank=-1,mxGraphAbstractHierarchyCell.prototype.minRank=-1,mxGraphAbstractHierarchyCell.prototype.x=null,mxGraphAbstractHierarchyCell.prototype.y=null,mxGraphAbstractHierarchyCell.prototype.width=0,mxGraphAbstractHierarchyCell.prototype.height=0,mxGraphAbstractHierarchyCell.prototype.nextLayerConnectedCells=null,mxGraphAbstractHierarchyCell.prototype.previousLayerConnectedCells=null,mxGraphAbstractHierarchyCell.prototype.temp=null,mxGraphAbstractHierarchyCell.prototype.getNextLayerConnectedCells=function(e){return null},mxGraphAbstractHierarchyCell.prototype.getPreviousLayerConnectedCells=function(e){return null},mxGraphAbstractHierarchyCell.prototype.isEdge=function(){return!1},mxGraphAbstractHierarchyCell.prototype.isVertex=function(){return!1},mxGraphAbstractHierarchyCell.prototype.getGeneralPurposeVariable=function(e){return null},mxGraphAbstractHierarchyCell.prototype.setGeneralPurposeVariable=function(e,n){return null},mxGraphAbstractHierarchyCell.prototype.setX=function(e,n){this.isVertex()?this.x[0]=n:this.isEdge()&&(this.x[e-this.minRank-1]=n)},mxGraphAbstractHierarchyCell.prototype.getX=function(e){return this.isVertex()?this.x[0]:this.isEdge()?this.x[e-this.minRank-1]:0},mxGraphAbstractHierarchyCell.prototype.setY=function(e,n){this.isVertex()?this.y[0]=n:this.isEdge()&&(this.y[e-this.minRank-1]=n)},mxGraphHierarchyNode.prototype=new mxGraphAbstractHierarchyCell,mxGraphHierarchyNode.prototype.constructor=mxGraphHierarchyNode,mxGraphHierarchyNode.prototype.cell=null,mxGraphHierarchyNode.prototype.connectsAsTarget=[],mxGraphHierarchyNode.prototype.connectsAsSource=[],mxGraphHierarchyNode.prototype.hashCode=!1,mxGraphHierarchyNode.prototype.getRankValue=function(e){return this.maxRank},mxGraphHierarchyNode.prototype.getNextLayerConnectedCells=function(e){if(null==this.nextLayerConnectedCells){this.nextLayerConnectedCells=[],this.nextLayerConnectedCells[0]=[];for(var n=0;n<this.connectsAsTarget.length;n++){var t=this.connectsAsTarget[n];-1==t.maxRank||t.maxRank==e+1?this.nextLayerConnectedCells[0].push(t.source):this.nextLayerConnectedCells[0].push(t)}}return this.nextLayerConnectedCells[0]},mxGraphHierarchyNode.prototype.getPreviousLayerConnectedCells=function(e){if(null==this.previousLayerConnectedCells){this.previousLayerConnectedCells=[],this.previousLayerConnectedCells[0]=[];for(var n=0;n<this.connectsAsSource.length;n++){var t=this.connectsAsSource[n];-1==t.minRank||t.minRank==e-1?this.previousLayerConnectedCells[0].push(t.target):this.previousLayerConnectedCells[0].push(t)}}return this.previousLayerConnectedCells[0]},mxGraphHierarchyNode.prototype.isVertex=function(){return!0},mxGraphHierarchyNode.prototype.getGeneralPurposeVariable=function(e){return this.temp[0]},mxGraphHierarchyNode.prototype.setGeneralPurposeVariable=function(e,n){this.temp[0]=n},mxGraphHierarchyNode.prototype.isAncestor=function(e){if(null!=e&&null!=this.hashCode&&null!=e.hashCode&&this.hashCode.length<e.hashCode.length){if(this.hashCode==e.hashCode)return!0;if(null==this.hashCode||null==this.hashCode)return!1;for(var n=0;n<this.hashCode.length;n++)if(this.hashCode[n]!=e.hashCode[n])return!1;return!0}return!1},mxGraphHierarchyNode.prototype.getCoreCell=function(){return this.cell},mxGraphHierarchyEdge.prototype=new mxGraphAbstractHierarchyCell,mxGraphHierarchyEdge.prototype.constructor=mxGraphHierarchyEdge,mxGraphHierarchyEdge.prototype.edges=null,mxGraphHierarchyEdge.prototype.source=null,mxGraphHierarchyEdge.prototype.target=null,mxGraphHierarchyEdge.prototype.isReversed=!1,mxGraphHierarchyEdge.prototype.invert=function(e){e=this.source,this.source=this.target,this.target=e,this.isReversed=!this.isReversed},mxGraphHierarchyEdge.prototype.getNextLayerConnectedCells=function(e){if(null==this.nextLayerConnectedCells){this.nextLayerConnectedCells=[];for(var n=0;n<this.temp.length;n++)this.nextLayerConnectedCells[n]=[],n==this.temp.length-1?this.nextLayerConnectedCells[n].push(this.source):this.nextLayerConnectedCells[n].push(this)}return this.nextLayerConnectedCells[e-this.minRank-1]},mxGraphHierarchyEdge.prototype.getPreviousLayerConnectedCells=function(e){if(null==this.previousLayerConnectedCells){this.previousLayerConnectedCells=[];for(var n=0;n<this.temp.length;n++)this.previousLayerConnectedCells[n]=[],0==n?this.previousLayerConnectedCells[n].push(this.target):this.previousLayerConnectedCells[n].push(this)}return this.previousLayerConnectedCells[e-this.minRank-1]},mxGraphHierarchyEdge.prototype.isEdge=function(){return!0},mxGraphHierarchyEdge.prototype.getGeneralPurposeVariable=function(e){return this.temp[e-this.minRank-1]},mxGraphHierarchyEdge.prototype.setGeneralPurposeVariable=function(e,n){this.temp[e-this.minRank-1]=n},mxGraphHierarchyEdge.prototype.getCoreCell=function(){return null!=this.edges&&0<this.edges.length?this.edges[0]:null},mxGraphHierarchyModel.prototype.maxRank=null,mxGraphHierarchyModel.prototype.vertexMapper=null,mxGraphHierarchyModel.prototype.edgeMapper=null,mxGraphHierarchyModel.prototype.ranks=null,mxGraphHierarchyModel.prototype.roots=null,mxGraphHierarchyModel.prototype.parent=null,mxGraphHierarchyModel.prototype.dfsCount=0,mxGraphHierarchyModel.prototype.SOURCESCANSTARTRANK=1e8,mxGraphHierarchyModel.prototype.tightenToSource=!1,mxGraphHierarchyModel.prototype.createInternalCells=function(e,n,t){for(var a=e.getGraph(),i=0;i<n.length;i++){t[i]=new mxGraphHierarchyNode(n[i]);var s=mxCellPath.create(n[i]);this.vertexMapper[s]=t[i],s=e.getEdges(n[i]),t[i].connectsAsSource=[];for(var o=0;o<s.length;o++){if((d=e.getVisibleTerminal(s[o],!1))!=n[i]&&d!=n[i]&&e.graph.model.isVertex(d)&&!e.isVertexIgnored(d)){var r=e.getEdgesBetween(n[i],d,!1),l=e.getEdgesBetween(n[i],d,!0),d=mxCellPath.create(r[0]);if(null!=r&&0<r.length&&null==this.edgeMapper[d]&&2*l.length>=r.length){l=new mxGraphHierarchyEdge(r);for(var c=0;c<r.length;c++){var m=r[c];d=mxCellPath.create(m);this.edgeMapper[d]=l,a.resetEdge(m),e.disableEdgeStyle&&(e.setEdgeStyleEnabled(m,!1),e.setOrthogonalEdge(m,!0))}l.source=t[i],mxUtils.indexOf(t[i].connectsAsSource,l)<0&&t[i].connectsAsSource.push(l)}}}t[i].temp[0]=0}},mxGraphHierarchyModel.prototype.initialRank=function(){var e=[];if(null!=this.roots)for(var n=0;n<this.roots.length;n++){var t=mxCellPath.create(this.roots[n]);null!=(t=this.vertexMapper[t])&&e.push(t)}for(var a in this.vertexMapper)(t=this.vertexMapper[a]).temp[0]=-1;for(var i=e.slice();0<e.length;){var s,o;s=(t=e[0]).connectsAsTarget,o=t.connectsAsSource;var r=!0,l=this.SOURCESCANSTARTRANK;for(n=0;n<s.length;n++){var d=s[n];if(5270620!=d.temp[0]){r=!1;break}d=d.source,l=Math.min(l,d.temp[0]-1)}if(r){if(t.temp[0]=l,this.maxRank=Math.min(this.maxRank,l),null!=o)for(n=0;n<o.length;n++)(d=o[n]).temp[0]=5270620,-1==(d=d.target).temp[0]&&(e.push(d),d.temp[0]=-2);e.shift()}else if(n=e.shift(),e.push(t),n==t&&1==e.length)break}for(a in this.vertexMapper)(t=this.vertexMapper[a]).temp[0]-=this.maxRank;for(n=0;n<i.length;n++)for(e=0,s=(t=i[n]).connectsAsSource,a=0;a<s.length;a++)d=(d=s[a]).target,t.temp[0]=Math.max(e,d.temp[0]+1),e=t.temp[0];this.maxRank=this.SOURCESCANSTARTRANK-this.maxRank},mxGraphHierarchyModel.prototype.fixRanks=function(){var s=[];this.ranks=[];for(var e=0;e<this.maxRank+1;e++)s[e]=[],this.ranks[e]=s[e];var n=null;if(null!=this.roots){var t=this.roots;for(n=[],e=0;e<t.length;e++){var a=mxCellPath.create(t[e]);n[e]=this.vertexMapper[a]}}this.visit(function(e,n,t,a,i){if(0==i&&n.maxRank<0&&n.minRank<0&&(s[n.temp[0]].push(n),n.maxRank=n.temp[0],n.minRank=n.temp[0],n.temp[0]=s[n.maxRank].length-1),null!=e&&null!=t&&1<e.maxRank-n.maxRank)for(t.maxRank=e.maxRank,t.minRank=n.maxRank,t.temp=[],t.x=[],t.y=[],e=t.minRank+1;e<t.maxRank;e++)s[e].push(t),t.setGeneralPurposeVariable(e,s[e].length-1)},n,!1,null)},mxGraphHierarchyModel.prototype.visit=function(e,n,t,a){if(null!=n){for(var i=0;i<n.length;i++){var s=n[i];null!=s&&(null==a&&(a={}),t?(s.hashCode=[],s.hashCode[0]=this.dfsCount,s.hashCode[1]=i,this.extendedDfs(null,s,null,e,a,s.hashCode,i,0)):this.dfs(null,s,null,e,a,0))}this.dfsCount++}},mxGraphHierarchyModel.prototype.dfs=function(e,n,t,a,i,s){if(null!=n){var o=mxCellPath.create(n.cell);if(null==i[o])for(a(e,i[o]=n,t,s,0),e=n.connectsAsSource.slice(),t=0;t<e.length;t++)o=e[t],this.dfs(n,o.target,o,a,i,s+1);else a(e,n,t,s,1)}},mxGraphHierarchyModel.prototype.extendedDfs=function(e,n,t,a,i,s,o,r){if(null!=n)if(null==e||null!=n.hashCode&&n.hashCode[0]==e.hashCode[0]||(s=e.hashCode.length+1,n.hashCode=e.hashCode.slice(),n.hashCode[s-1]=o),null==i[o=mxCellPath.create(n.cell)])for(a(e,i[o]=n,t,r,0),e=n.connectsAsSource.slice(),t=0;t<e.length;t++)o=e[t],this.extendedDfs(n,o.target,o,a,i,n.hashCode,t,r+1);else a(e,n,t,r,1)},mxHierarchicalLayoutStage.prototype.execute=function(e){},mxMedianHybridCrossingReduction.prototype=new mxHierarchicalLayoutStage,mxMedianHybridCrossingReduction.prototype.constructor=mxMedianHybridCrossingReduction,mxMedianHybridCrossingReduction.prototype.layout=null,mxMedianHybridCrossingReduction.prototype.maxIterations=24,mxMedianHybridCrossingReduction.prototype.nestedBestRanks=null,mxMedianHybridCrossingReduction.prototype.currentBestCrossings=0,mxMedianHybridCrossingReduction.prototype.iterationsWithoutImprovement=0,mxMedianHybridCrossingReduction.prototype.maxNoImprovementIterations=2,mxMedianHybridCrossingReduction.prototype.execute=function(e){e=this.layout.getModel(),this.nestedBestRanks=[];for(var n=0;n<e.ranks.length;n++)this.nestedBestRanks[n]=e.ranks[n].slice();var t=0,a=this.calculateCrossings(e);for(n=0;n<this.maxIterations&&t<this.maxNoImprovementIterations;n++){this.weightedMedian(n,e),this.transpose(n,e);var i=this.calculateCrossings(e);if(i<a)for(a=i,i=t=0;i<this.nestedBestRanks.length;i++)for(var s=e.ranks[i],o=0;o<s.length;o++){var r=s[o];this.nestedBestRanks[i][r.getGeneralPurposeVariable(i)]=r}else for(t++,i=0;i<this.nestedBestRanks.length;i++)for(s=e.ranks[i],o=0;o<s.length;o++)(r=s[o]).setGeneralPurposeVariable(i,o);if(0==a)break}for(t=[],a=[],n=0;n<e.maxRank+1;n++)a[n]=[],t[n]=a[n];for(n=0;n<this.nestedBestRanks.length;n++)for(i=0;i<this.nestedBestRanks[n].length;i++)a[n].push(this.nestedBestRanks[n][i]);e.ranks=t},mxMedianHybridCrossingReduction.prototype.calculateCrossings=function(e){for(var n=e.ranks.length,t=0,a=1;a<n;a++)t+=this.calculateRankCrossing(a,e);return t},mxMedianHybridCrossingReduction.prototype.calculateRankCrossing=function(e,n){for(var t=0,a=n.ranks[e],i=a.length,s=n.ranks[e-1].length,o=[],r=0;r<i;r++)o[r]=[];for(r=0;r<a.length;r++)for(var l=(c=a[r]).getGeneralPurposeVariable(e),d=c.getPreviousLayerConnectedCells(e),c=0;c<d.length;c++){var m=d[c].getGeneralPurposeVariable(e-1);o[l][m]=201207}for(r=0;r<i;r++)for(c=0;c<s;c++)if(201207==o[r][c]){for(a=r+1;a<i;a++)for(l=0;l<c;l++)201207==o[a][l]&&t++;for(a=0;a<r;a++)for(l=c+1;l<s;l++)201207==o[a][l]&&t++}return t/2},mxMedianHybridCrossingReduction.prototype.transpose=function(e,n){for(var t=!0,a=0;t&&a++<10;)for(var i=1==e%2&&1==a%2,s=(t=!1,0);s<n.ranks.length;s++){for(var o=n.ranks[s],r=[],l=0;l<o.length;l++){(b=(f=o[l]).getGeneralPurposeVariable(s))<0&&(b=l),r[b]=f}var d=b=f=null,c=null,m=null,u=null,p=null,g=null,v=null,h=null;for(l=0;l<o.length-1;l++){if(0==l){for(var f=(v=r[l]).getNextLayerConnectedCells(s),b=v.getPreviousLayerConnectedCells(s),A=(m=[],u=[],0);A<f.length;A++)m[A]=f[A].getGeneralPurposeVariable(s+1);for(A=0;A<b.length;A++)u[A]=b[A].getGeneralPurposeVariable(s-1)}else f=d,b=c,m=p,u=g,v=h;for(d=(h=r[l+1]).getNextLayerConnectedCells(s),c=h.getPreviousLayerConnectedCells(s),p=[],g=[],A=0;A<d.length;A++)p[A]=d[A].getGeneralPurposeVariable(s+1);for(A=0;A<c.length;A++)g[A]=c[A].getGeneralPurposeVariable(s-1);var E=0,y=0;for(A=0;A<m.length;A++)for(var S=0;S<p.length;S++)m[A]>p[S]&&E++,m[A]<p[S]&&y++;for(A=0;A<u.length;A++)for(S=0;S<g.length;S++)u[A]>g[S]&&E++,u[A]<g[S]&&y++;(y<E||y==E&&i)&&(d=v.getGeneralPurposeVariable(s),v.setGeneralPurposeVariable(s,h.getGeneralPurposeVariable(s)),h.setGeneralPurposeVariable(s,d),d=f,c=b,p=m,g=u,h=v,i||(t=!0))}}},mxMedianHybridCrossingReduction.prototype.weightedMedian=function(e,n){var t=0==e%2;if(t)for(var a=n.maxRank-1;0<=a;a--)this.medianRank(a,t);else for(a=1;a<n.maxRank;a++)this.medianRank(a,t)},mxMedianHybridCrossingReduction.prototype.medianRank=function(e,n){for(var t=this.nestedBestRanks[e].length,a=[],i=[],s=0;s<t;s++){var o,r,l=this.nestedBestRanks[e][s],d=new MedianCellSorter;d.cell=l,r=n?e+1:e-1,null!=(o=n?l.getNextLayerConnectedCells(e):l.getPreviousLayerConnectedCells(e))&&0!=o.length?(d.medianValue=this.medianValue(o,r),a.push(d)):i[l.getGeneralPurposeVariable(e)]=!0}for(a.sort(MedianCellSorter.prototype.compare),s=0;s<t;s++)null==i[s]&&(l=a.shift().cell).setGeneralPurposeVariable(e,s)},mxMedianHybridCrossingReduction.prototype.medianValue=function(e,n){for(var t=[],a=0,i=0;i<e.length;i++){var s=e[i];t[a++]=s.getGeneralPurposeVariable(n)}return t.sort(function(e,n){return e-n}),1==a%2?t[Math.floor(a/2)]:2==a?(t[0]+t[1])/2:(s=t[(i=a/2)-1]-t[0],a=t[a-1]-t[i],(t[i-1]*a+t[i]*s)/(s+a))},MedianCellSorter.prototype.medianValue=0,MedianCellSorter.prototype.cell=!1,MedianCellSorter.prototype.compare=function(e,n){return null!=e&&null!=n?n.medianValue>e.medianValue?-1:n.medianValue<e.medianValue?1:0:0},mxMinimumCycleRemover.prototype=new mxHierarchicalLayoutStage,mxMinimumCycleRemover.prototype.constructor=mxMinimumCycleRemover,mxMinimumCycleRemover.prototype.layout=null,mxMinimumCycleRemover.prototype.execute=function(e){var n=this.layout.getModel(),s={},o=mxUtils.clone(n.vertexMapper,null,!0),t=null;if(null!=n.roots){var a=n.roots;t=[];for(e=0;e<a.length;e++){var i=mxCellPath.create(a[e]);t[e]=n.vertexMapper[i]}}if(n.visit(function(e,n,t,a,i){n.isAncestor(e)&&(t.invert(),mxUtils.remove(t,e.connectsAsSource),e.connectsAsTarget.push(t),mxUtils.remove(t,n.connectsAsTarget),n.connectsAsSource.push(t)),e=mxCellPath.create(n.cell),s[e]=n,delete o[e]},t,!0,null),t=null,0<o.lenth&&(t=mxUtils.clone(o,null,!0)),e=mxUtils.clone(s,null,!0),n.visit(function(e,n,t,a,i){n.isAncestor(e)&&(t.invert(),mxUtils.remove(t,e.connectsAsSource),n.connectsAsSource.push(t),e.connectsAsTarget.push(t),mxUtils.remove(t,n.connectsAsTarget)),e=mxCellPath.create(n.cell),s[e]=n,delete o[e]},o,!0,e),a=this.layout.getGraph(),null!=t&&0<t.length)for(n=n.roots,e=0;e<t.length;e++)i=t[e].cell,0==a.getIncomingEdges(i).length&&n.push(i)};var mxHierarchicalEdgeStyle={ORTHOGONAL:1,POLYLINE:2,STRAIGHT:3,CURVE:4};function WeightedCellSorter(e,n){this.cell=e,this.weightedValue=n}function mxHierarchicalLayout(e,n,t){mxGraphLayout.call(this,e),this.orientation=null!=n?n:mxConstants.DIRECTION_NORTH,this.deterministic=null==t||t}function mxGraphModel(e){this.currentEdit=this.createUndoableEdit(),null!=e?this.setRoot(e):this.clear()}function mxRootChange(e,n){this.model=e,this.previous=this.root=n}function mxChildChange(e,n,t,a){this.model=e,this.previous=this.parent=n,this.child=t,this.previousIndex=this.index=a}function mxTerminalChange(e,n,t,a){this.model=e,this.cell=n,this.previous=this.terminal=t,this.source=a}function mxValueChange(e,n,t){this.model=e,this.cell=n,this.previous=this.value=t}function mxStyleChange(e,n,t){this.model=e,this.cell=n,this.previous=this.style=t}function mxGeometryChange(e,n,t){this.model=e,this.cell=n,this.previous=this.geometry=t}function mxCollapseChange(e,n,t){this.model=e,this.cell=n,this.previous=this.collapsed=t}function mxVisibleChange(e,n,t){this.model=e,this.cell=n,this.previous=this.visible=t}function mxCellAttributeChange(e,n,t){this.cell=e,this.attribute=n,this.previous=this.value=t}function mxCell(e,n,t){this.value=e,this.setGeometry(n),this.setStyle(t),null!=this.onInit&&this.onInit()}function mxGeometry(e,n,t,a){mxRectangle.call(this,e,n,t,a)}mxCoordinateAssignment.prototype=new mxHierarchicalLayoutStage,mxCoordinateAssignment.prototype.constructor=mxCoordinateAssignment,mxCoordinateAssignment.prototype.layout=null,mxCoordinateAssignment.prototype.intraCellSpacing=30,mxCoordinateAssignment.prototype.interRankCellSpacing=100,mxCoordinateAssignment.prototype.parallelEdgeSpacing=10,mxCoordinateAssignment.prototype.maxIterations=8,mxCoordinateAssignment.prototype.prefHozEdgeSep=5,mxCoordinateAssignment.prototype.prefVertEdgeOff=2,mxCoordinateAssignment.prototype.minEdgeJetty=12,mxCoordinateAssignment.prototype.channelBuffer=4,mxCoordinateAssignment.prototype.jettyPositions=null,mxCoordinateAssignment.prototype.orientation=mxConstants.DIRECTION_NORTH,mxCoordinateAssignment.prototype.initialX=null,mxCoordinateAssignment.prototype.limitX=null,mxCoordinateAssignment.prototype.currentXDelta=null,mxCoordinateAssignment.prototype.widestRank=null,mxCoordinateAssignment.prototype.rankTopY=null,mxCoordinateAssignment.prototype.rankBottomY=null,mxCoordinateAssignment.prototype.widestRankValue=null,mxCoordinateAssignment.prototype.rankWidths=null,mxCoordinateAssignment.prototype.rankY=null,mxCoordinateAssignment.prototype.fineTuning=!0,mxCoordinateAssignment.prototype.edgeStyle=mxHierarchicalEdgeStyle.POLYLINE,mxCoordinateAssignment.prototype.nextLayerConnectedCache=null,mxCoordinateAssignment.prototype.previousLayerConnectedCache=null,mxCoordinateAssignment.prototype.groupPadding=10,mxCoordinateAssignment.prototype.printStatus=function(){var e=this.layout.getModel();mxLog.show(),mxLog.writeln("======Coord assignment debug=======");for(var n=0;n<e.ranks.length;n++){mxLog.write("Rank ",n," : ");for(var t=e.ranks[n],a=0;a<t.length;a++)mxLog.write(t[a].getGeneralPurposeVariable(n)," ");mxLog.writeln()}mxLog.writeln("====================================")},mxCoordinateAssignment.prototype.execute=function(e){this.jettyPositions=[],e=this.layout.getModel(),this.currentXDelta=0,this.initialCoords(this.layout.getGraph(),e),this.fineTuning&&this.minNode(e);var n=1e8;if(this.fineTuning)for(var t=0;t<this.maxIterations;t++){if(0!=t&&(this.medianPos(t,e),this.minNode(e)),this.currentXDelta<n){for(var a=0;a<e.ranks.length;a++)for(var i=e.ranks[a],s=0;s<i.length;s++){var o=i[s];o.setX(a,o.getGeneralPurposeVariable(a))}n=this.currentXDelta}else for(a=0;a<e.ranks.length;a++)for(i=e.ranks[a],s=0;s<i.length;s++)(o=i[s]).setGeneralPurposeVariable(a,o.getX(a));this.minPath(this.layout.getGraph(),e),this.currentXDelta=0}this.setCellLocations(this.layout.getGraph(),e)},mxCoordinateAssignment.prototype.minNode=function(e){for(var n=[],t=[],a=[],i=0;i<=e.maxRank;i++){a[i]=e.ranks[i];for(var s=0;s<a[i].length;s++){var o=a[i][s];(r=new WeightedCellSorter(o,i)).rankIndex=s,r.visited=!0,n.push(r),t[o=mxCellPath.create(o.getCoreCell())]=r}}for(e=10*n.length,s=0;0<n.length&&s<=e;){i=(r=n.shift()).cell;var r,l=r.weightedValue,d=parseInt(r.rankIndex),c=(o=i.getNextLayerConnectedCells(l),i.getPreviousLayerConnectedCells(l)),m=o.length,u=c.length,p=this.medianXValue(o,l+1),g=this.medianXValue(c,l-1),v=m+u,h=i.getGeneralPurposeVariable(l),f=h;if(0<v&&(f=(p*m+g*u)/v),m=!1,f<h-1?0==d?(i.setGeneralPurposeVariable(l,f),m=!0):(h=(h=(d=a[l][d-1]).getGeneralPurposeVariable(l))+d.width/2+this.intraCellSpacing+i.width/2)<f?(i.setGeneralPurposeVariable(l,f),m=!0):h<i.getGeneralPurposeVariable(l)-1&&(i.setGeneralPurposeVariable(l,h),m=!0):h+1<f&&(d==a[l].length-1?(i.setGeneralPurposeVariable(l,f),m=!0):f<(h=(h=(d=a[l][d+1]).getGeneralPurposeVariable(l))-d.width/2-this.intraCellSpacing-i.width/2)?(i.setGeneralPurposeVariable(l,f),m=!0):h>i.getGeneralPurposeVariable(l)+1&&(i.setGeneralPurposeVariable(l,h),m=!0)),m){for(i=0;i<o.length;i++)l=o[i],null!=(l=t[l=mxCellPath.create(l.getCoreCell())])&&0==l.visited&&(l.visited=!0,n.push(l));for(i=0;i<c.length;i++)l=c[i],null!=(l=t[l=mxCellPath.create(l.getCoreCell())])&&0==l.visited&&(l.visited=!0,n.push(l))}r.visited=!1,s++}},mxCoordinateAssignment.prototype.medianPos=function(e,n){if(0==e%2)for(var t=n.maxRank;0<t;t--)this.rankMedianPosition(t-1,n,t);else for(t=0;t<n.maxRank-1;t++)this.rankMedianPosition(t+1,n,t)},mxCoordinateAssignment.prototype.rankMedianPosition=function(e,n,t){n=n.ranks[e];for(var a=[],i=[],s=0;s<n.length;s++){var o=n[s];a[s]=new WeightedCellSorter,a[s].cell=o,a[s].rankIndex=s;var r=mxCellPath.create(o.getCoreCell());i[r]=a[s];var l=null;l=t<e?o.getPreviousLayerConnectedCells(e):o.getNextLayerConnectedCells(e);a[s].weightedValue=this.calculatedWeightedValue(o,l)}for(a.sort(WeightedCellSorter.prototype.compare),s=0;s<a.length;s++){r=0,o=a[s].cell,r=0,null!=(l=t<e?o.getPreviousLayerConnectedCells(e).slice():o.getNextLayerConnectedCells(e).slice())&&(r=0<(r=l.length)?this.medianXValue(l,t):o.getGeneralPurposeVariable(e));for(var d=0,c=(l=-1e8,a[s].rankIndex-1);0<=c;){var m;if(null!=(m=i[m=mxCellPath.create(n[c].getCoreCell())])){var u=m.cell;m.visited?(l=u.getGeneralPurposeVariable(e)+u.width/2+this.intraCellSpacing+d+o.width/2,c=-1):(d+=u.width+this.intraCellSpacing,c--)}}for(d=0,u=1e8,c=a[s].rankIndex+1;c<a.length;)if(null!=(m=i[m=mxCellPath.create(n[c].getCoreCell())])){var p=m.cell;m.visited?(u=p.getGeneralPurposeVariable(e)-p.width/2-this.intraCellSpacing-d-o.width/2,c=a.length):(d+=p.width+this.intraCellSpacing,c++)}l<=r&&r<=u?o.setGeneralPurposeVariable(e,r):r<l?(o.setGeneralPurposeVariable(e,l),this.currentXDelta+=l-r):u<r&&(o.setGeneralPurposeVariable(e,u),this.currentXDelta+=r-u),a[s].visited=!0}},mxCoordinateAssignment.prototype.calculatedWeightedValue=function(e,n){for(var t=0,a=0;a<n.length;a++){var i=n[a];e.isVertex()&&i.isVertex()?t++:t=e.isEdge()&&i.isEdge()?t+8:t+2}return t},mxCoordinateAssignment.prototype.medianXValue=function(e,n){if(0==e.length)return 0;for(var t=[],a=0;a<e.length;a++)t[a]=e[a].getGeneralPurposeVariable(n);return t.sort(function(e,n){return e-n}),1==e.length%2?t[Math.floor(e.length/2)]:(t[(a=e.length/2)-1]+t[a])/2},mxCoordinateAssignment.prototype.initialCoords=function(e,n){this.calculateWidestRank(e,n);for(var t=this.widestRank;0<=t;t--)t<n.maxRank&&this.rankCoordinates(t,e,n);for(t=this.widestRank+1;t<=n.maxRank;t++)0<t&&this.rankCoordinates(t,e,n)},mxCoordinateAssignment.prototype.rankCoordinates=function(e,n,t){n=t.ranks[e],t=0;for(var a=this.initialX+(this.widestRankValue-this.rankWidths[e])/2,i=!1,s=0;s<n.length;s++){var o=n[s];if(o.isVertex()){var r=this.layout.getVertexBounds(o.cell);null!=r?this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(o.width=r.width,o.height=r.height):(o.width=r.height,o.height=r.width):i=!0,t=Math.max(t,o.height)}else o.isEdge()&&(r=1,null!=o.edges?r=o.edges.length:mxLog.warn("edge.edges is null"),o.width=(r-1)*this.parallelEdgeSpacing);a+=o.width/2,o.setX(e,a),o.setGeneralPurposeVariable(e,a),a+=o.width/2,a+=this.intraCellSpacing}1==i&&mxLog.warn("At least one cell has no bounds")},mxCoordinateAssignment.prototype.calculateWidestRank=function(e,n){var t=-this.interRankCellSpacing,a=0;this.rankWidths=[],this.rankY=[];for(var i=n.maxRank;0<=i;i--){for(var s=0,o=n.ranks[i],r=this.initialX,l=!1,d=0;d<o.length;d++){var c=o[d];if(c.isVertex()){var m=this.layout.getVertexBounds(c.cell);null!=m?this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(c.width=m.width,c.height=m.height):(c.width=m.height,c.height=m.width):l=!0,s=Math.max(s,c.height)}else c.isEdge()&&(m=1,null!=c.edges?m=c.edges.length:mxLog.warn("edge.edges is null"),c.width=(m-1)*this.parallelEdgeSpacing);r+=c.width/2,c.setX(i,r),c.setGeneralPurposeVariable(i,r),r+=c.width/2,(r+=this.intraCellSpacing)>this.widestRankValue&&(this.widestRankValue=r,this.widestRank=i),this.rankWidths[i]=r}for(1==l&&mxLog.warn("At least one cell has no bounds"),this.rankY[i]=t,r=s/2+a/2+this.interRankCellSpacing,a=s,t=this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_WEST?t+r:t-r,d=0;d<o.length;d++)o[d].setY(i,t)}},mxCoordinateAssignment.prototype.minPath=function(e,n){var t,a=n.edgeMapper;for(t in a){var i=a[t];if(!(i.maxRank-i.minRank-1<1)){for(var s=i.getGeneralPurposeVariable(i.minRank+1),o=!0,r=0,l=i.minRank+2;l<i.maxRank;l++){s!=(d=i.getGeneralPurposeVariable(l))?(o=!1,s=d):r++}if(!o){o=s=0;var d=[],c=[],m=i.getGeneralPurposeVariable(i.minRank+1);for(l=i.minRank+1;l<i.maxRank-1;l++){var u=i.getX(l+1);m==u?(d[l-i.minRank-1]=m,s++):this.repositionValid(n,i,l+1,m)?(d[l-i.minRank-1]=m,s++):m=d[l-i.minRank-1]=u}for(m=i.getX(l),l=i.maxRank-1;l>i.minRank+1;l--)m==(u=i.getX(l-1))?(c[l-i.minRank-2]=m,o++):this.repositionValid(n,i,l-1,m)?(c[l-i.minRank-2]=m,o++):(c[l-i.minRank-2]=i.getX(l-1),m=u);if(r<o||r<s)if(s<=o)for(l=i.maxRank-2;l>i.minRank;l--)i.setX(l,c[l-i.minRank-1]);else if(o<s)for(l=i.minRank+2;l<i.maxRank;l++)i.setX(l,d[l-i.minRank-2])}}}},mxCoordinateAssignment.prototype.repositionValid=function(e,n,t,a){e=e.ranks[t];for(var i=-1,s=0;s<e.length;s++)if(n==e[s]){i=s;break}if(i<0)return!1;if(a<(s=n.getGeneralPurposeVariable(t))){if(0==i)return!0;if(!((t=(t=(e=e[i-1]).getGeneralPurposeVariable(t))+e.width/2+this.intraCellSpacing+n.width/2)<=a))return!1}else if(s<a){if(i==e.length-1)return!0;if(!(a<=(t=(t=(e=e[i+1]).getGeneralPurposeVariable(t))-e.width/2-this.intraCellSpacing-n.width/2)))return!1}return!0},mxCoordinateAssignment.prototype.setCellLocations=function(e,n){this.rankTopY=[],this.rankBottomY=[];for(var t=0;t<n.ranks.length;t++)this.rankTopY[t]=Number.MAX_VALUE,this.rankBottomY[t]=0;t=null,this.layout.resizeParent&&(t={});var a,i=n.edgeMapper,s=n.vertexMapper;for(a in s){var o=s[a];if(this.setVertexLocation(o),this.layout.resizeParent){o=e.model.getParent(o.cell);var r=mxCellPath.create(o);null==t[r]&&(t[r]=o)}}for(a in this.layout.resizeParent&&null!=t&&this.adjustParents(t),(this.edgeStyle==mxHierarchicalEdgeStyle.ORTHOGONAL||this.edgeStyle==mxHierarchicalEdgeStyle.POLYLINE||this.edgeStyle==mxHierarchicalEdgeStyle.CURVE)&&this.localEdgeProcessing(n),i)this.setEdgePosition(i[a])},mxCoordinateAssignment.prototype.adjustParents=function(e){var n,t=[];for(n in e)t.push(e[n]);this.layout.arrangeGroups(mxUtils.sortCells(t,!0),this.groupPadding)},mxCoordinateAssignment.prototype.localEdgeProcessing=function(e){for(var n=0;n<e.ranks.length;n++)for(var t=e.ranks[n],a=0;a<t.length;a++){var i=t[a];if(i.isVertex())for(var s=i.getPreviousLayerConnectedCells(n),o=n-1,r=0;r<2;r++){if(-1<o&&o<e.ranks.length&&null!=s&&0<s.length){for(var l=[],d=0;d<s.length;d++){var c=new WeightedCellSorter(s[d],s[d].getX(o));l.push(c)}l.sort(WeightedCellSorter.prototype.compare);var m=(c=i.x[0]-i.width/2)+i.width,u=s=0;for(o=[],d=0;d<l.length;d++){var p,g=l[d].cell;if(g.isVertex()){p=0==r?i.connectsAsSource:i.connectsAsTarget;for(var v=0;v<p.length;v++)p[v].source!=g&&p[v].target!=g||(s+=p[v].edges.length,u++,o.push(p[v]))}else s+=g.edges.length,u++,o.push(g)}for(i.width>(s+1)*this.prefHozEdgeSep+2*this.prefHozEdgeSep&&(c+=this.prefHozEdgeSep,m-=this.prefHozEdgeSep),c+=(l=(m-c)/s)/2,m=this.minEdgeJetty-this.prefVertEdgeOff,d=u=0;d<o.length;d++){for(g=o[d].edges.length,v=mxCellPath.create(o[d].edges[0]),null==(p=this.jettyPositions[v])&&(p=[],this.jettyPositions[v]=p),d<s/2?m+=this.prefVertEdgeOff:s/2<d&&(m-=this.prefVertEdgeOff),v=0;v<g;v++)p[4*v+2*r]=c,c+=l,p[4*v+2*r+1]=m;u=Math.max(u,m)}}s=i.getNextLayerConnectedCells(n),o=n+1}}},mxCoordinateAssignment.prototype.setEdgePosition=function(e){var n=0;if(101207!=e.temp[0]){var t=e.maxRank,a=e.minRank;t==a&&(t=e.source.maxRank,a=e.target.minRank);for(var i=0,s=mxCellPath.create(e.edges[0]),o=(s=this.jettyPositions[s],e.isReversed?e.target.cell:e.source.cell),r=this.layout.graph,l=0;l<e.edges.length;l++){var d=e.edges[l],c=this.layout.getVisibleTerminal(d,!0),m=r.model.getTerminal(d,!0),u=[],p=e.isReversed;if(c!=o&&(p=!p),null!=s){var g=p?2:0,v=p?this.rankTopY[a]:this.rankBottomY[t],h=s[4*i+1+g];p&&(h=-h),v+=h,g=s[4*i+g],m=r.model.getTerminal(d,!0),this.layout.isPort(m)&&r.model.getParent(m)==c&&(g=null!=(g=r.view.getState(m))?g.x:c.geometry.x+e.source.width*m.geometry.x),this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(u.push(new mxPoint(g,v)),this.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&u.push(new mxPoint(g,v+h))):(u.push(new mxPoint(v,g)),this.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&u.push(new mxPoint(v+h,g)))}for(g=e.x.length-1,v=h=-1,c=e.maxRank-1,p&&(g=0,h=e.x.length,v=1,c=e.minRank+1);e.maxRank!=e.minRank&&g!=h;g+=v){m=e.x[g]+n;var f=(this.rankTopY[c]+this.rankBottomY[c+1])/2,b=(this.rankTopY[c-1]+this.rankBottomY[c])/2;if(p){var A=f;f=b,b=A}this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(u.push(new mxPoint(m,f)),u.push(new mxPoint(m,b))):(u.push(new mxPoint(f,m)),u.push(new mxPoint(b,m))),this.limitX=Math.max(this.limitX,m),c+=v}null!=s&&(g=p?2:0,v=p?this.rankBottomY[t]:this.rankTopY[a],h=s[4*i+3-g],p&&(h=-h),v-=h,g=s[4*i+2-g],p=r.model.getTerminal(d,!1),c=this.layout.getVisibleTerminal(d,!1),this.layout.isPort(p)&&r.model.getParent(p)==c&&(g=null!=(g=r.view.getState(p))?g.x:c.geometry.x+e.target.width*p.geometry.x),this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(this.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&u.push(new mxPoint(g,v-h)),u.push(new mxPoint(g,v))):(this.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&u.push(new mxPoint(v-h,g)),u.push(new mxPoint(v,g)))),e.isReversed&&this.processReversedEdge(e,d),this.layout.setEdgePoints(d,u),n=0==n?this.parallelEdgeSpacing:0<n?-n:-n+this.parallelEdgeSpacing,i++}e.temp[0]=101207}},mxCoordinateAssignment.prototype.setVertexLocation=function(e){var n=e.cell,t=e.x[0]-e.width/2,a=e.y[0]-e.height/2;this.rankTopY[e.minRank]=Math.min(this.rankTopY[e.minRank],a),this.rankBottomY[e.minRank]=Math.max(this.rankBottomY[e.minRank],a+e.height),this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?this.layout.setVertexLocation(n,t,a):this.layout.setVertexLocation(n,a,t),this.limitX=Math.max(this.limitX,t+e.width)},mxCoordinateAssignment.prototype.processReversedEdge=function(e,n){},WeightedCellSorter.prototype.weightedValue=0,WeightedCellSorter.prototype.nudge=!1,WeightedCellSorter.prototype.visited=!1,WeightedCellSorter.prototype.rankIndex=null,WeightedCellSorter.prototype.cell=null,WeightedCellSorter.prototype.compare=function(e,n){return null!=e&&null!=n?n.weightedValue>e.weightedValue?-1:n.weightedValue<e.weightedValue?1:n.nudge?-1:1:0},mxHierarchicalLayout.prototype=new mxGraphLayout,mxHierarchicalLayout.prototype.constructor=mxHierarchicalLayout,mxHierarchicalLayout.prototype.roots=null,mxHierarchicalLayout.prototype.resizeParent=!1,mxHierarchicalLayout.prototype.moveParent=!1,mxHierarchicalLayout.prototype.parentBorder=0,mxHierarchicalLayout.prototype.intraCellSpacing=30,mxHierarchicalLayout.prototype.interRankCellSpacing=100,mxHierarchicalLayout.prototype.interHierarchySpacing=60,mxHierarchicalLayout.prototype.parallelEdgeSpacing=10,mxHierarchicalLayout.prototype.orientation=mxConstants.DIRECTION_NORTH,mxHierarchicalLayout.prototype.fineTuning=!0,mxHierarchicalLayout.prototype.tightenToSource=!0,mxHierarchicalLayout.prototype.disableEdgeStyle=!0,mxHierarchicalLayout.prototype.traverseAncestors=!0,mxHierarchicalLayout.prototype.model=null,mxHierarchicalLayout.prototype.edgesCache=null,mxHierarchicalLayout.prototype.getModel=function(){return this.model},mxHierarchicalLayout.prototype.execute=function(e,n){this.parent=e;var t=this.graph.model;if(this.edgesCache={},null!=n||null!=e){if(null!=n&&null!=e){for(var a=[],i=0;i<n.length;i++)t.isAncestor(e,n[i])&&a.push(n[i]);this.roots=a}else this.roots=n;t.beginUpdate();try{this.run(e),this.resizeParent&&!this.graph.isCellCollapsed(e)&&this.graph.updateGroupBounds([e],this.parentBorder,this.moveParent)}finally{t.endUpdate()}}},mxHierarchicalLayout.prototype.findRoots=function(e,n){var t=[];if(null!=e&&null!=n){var a,i=this.graph.model,s=null,o=-1e5;for(a in n){var r=n[a];if(i.isVertex(r)&&this.graph.isCellVisible(r)){for(var l=this.getEdges(r),d=0,c=0,m=0;m<l.length;m++)this.getVisibleTerminal(l[m],!0)==r?d++:c++;0==c&&0<d&&t.push(r),o<(l=d-c)&&(o=l,s=r)}}0==t.length&&null!=s&&t.push(s)}return t},mxHierarchicalLayout.prototype.getEdges=function(e){var n=mxCellPath.create(e);if(null!=this.edgesCache[n])return this.edgesCache[n];for(var t=this.graph.model,a=[],i=this.graph.isCellCollapsed(e),s=t.getChildCount(e),o=0;o<s;o++){var r=t.getChildAt(e,o);this.isPort(r)?a=a.concat(t.getEdges(r,!0,!0)):!i&&this.graph.isCellVisible(r)||(a=a.concat(t.getEdges(r,!0,!0)))}for(a=a.concat(t.getEdges(e,!0,!0)),t=[],o=0;o<a.length;o++)((i=this.getVisibleTerminal(a[o],!0))==(s=this.getVisibleTerminal(a[o],!1))||i!=s&&(s==e&&(null==this.parent||this.graph.isValidAncestor(i,this.parent,this.traverseAncestors))||i==e&&(null==this.parent||this.graph.isValidAncestor(s,this.parent,this.traverseAncestors))))&&t.push(a[o]);return this.edgesCache[n]=t},mxHierarchicalLayout.prototype.getVisibleTerminal=function(e,n){var t=null!=(t=this.graph.view.getState(e))?t.getVisibleTerminal(n):this.graph.view.getVisibleTerminal(e,n);return this.isPort(t)&&(t=this.graph.model.getParent(t)),t},mxHierarchicalLayout.prototype.run=function(e){var n=[],t=[];if(null==this.roots&&null!=e){var a={};this.filterDescendants(e,a),this.roots=[];var i,s=!0;for(i in a)if(null!=a[i]){s=!1;break}for(;!s;){var o=this.findRoots(e,a);for(s=0;s<o.length;s++){var r=[];n.push(r),this.traverse(o[s],!0,null,t,r,n,a)}for(s=0;s<o.length;s++)this.roots.push(o[s]);for(i in s=!0,a)if(null!=a[i]){s=!1;break}}}else for(s=0;s<roots.length;s++)r=[],n.push(r),traverse(roots.get(s),!0,null,t,r,n,null);for(s=t=0;s<n.length;s++){for(i in a=[],r=n[s])a.push(r[i]);this.model=new mxGraphHierarchyModel(this,a,this.roots,e,this.tightenToSource),this.cycleStage(e),this.layeringStage(),this.crossingStage(e),t=this.placementStage(t,e)}},mxHierarchicalLayout.prototype.filterDescendants=function(e,n){var t=this.graph.model;if(t.isVertex(e)&&e!=this.parent&&this.graph.isCellVisible(e)&&(n[mxCellPath.create(e)]=e),this.traverseAncestors||e==this.parent&&this.graph.isCellVisible(e))for(var a=t.getChildCount(e),i=0;i<a;i++){var s=t.getChildAt(e,i);this.isPort(s)||this.filterDescendants(s,n)}},mxHierarchicalLayout.prototype.isPort=function(e){return!!e.geometry.relative},mxHierarchicalLayout.prototype.getEdgesBetween=function(e,n,t){t=null!=t&&t;for(var a=this.getEdges(e),i=[],s=0;s<a.length;s++){var o=this.getVisibleTerminal(a[s],!0),r=this.getVisibleTerminal(a[s],!1);(o==e&&r==n||!t&&o==n&&r==e)&&i.push(a[s])}return i},mxHierarchicalLayout.prototype.traverse=function(e,n,t,a,i,s,o){if(null!=e&&null!=a){var r=mxCellPath.create(e);if(null!=a[r]||null!=o&&null==o[r]){if(null==i[r])for(t=0;t<s.length;t++)if(null!=(e=s[t])[r]){for(l in i)e[l]=i[l];return s.pop(),e}}else{null==i[r]&&(i[r]=e),null==a[r]&&(a[r]=e),delete o[r];var l=this.getEdges(e);for(t=0;t<l.length;t++)r=this.getVisibleTerminal(l[t],!0)==e,(!n||r)&&(r=this.getVisibleTerminal(l[t],!r),i=this.traverse(r,n,l[t],a,i,s,o))}}return i},mxHierarchicalLayout.prototype.cycleStage=function(e){new mxMinimumCycleRemover(this).execute(e)},mxHierarchicalLayout.prototype.layeringStage=function(){this.model.initialRank(),this.model.fixRanks()},mxHierarchicalLayout.prototype.crossingStage=function(e){new mxMedianHybridCrossingReduction(this).execute(e)},mxHierarchicalLayout.prototype.placementStage=function(e,n){var t=new mxCoordinateAssignment(this,this.intraCellSpacing,this.interRankCellSpacing,this.orientation,e,this.parallelEdgeSpacing);return t.fineTuning=this.fineTuning,t.execute(n),t.limitX+this.interHierarchySpacing},mxGraphModel.prototype=new mxEventSource,mxGraphModel.prototype.constructor=mxGraphModel,mxGraphModel.prototype.root=null,mxGraphModel.prototype.cells=null,mxGraphModel.prototype.maintainEdgeParent=!0,mxGraphModel.prototype.createIds=!0,mxGraphModel.prototype.prefix="",mxGraphModel.prototype.postfix="",mxGraphModel.prototype.nextId=0,mxGraphModel.prototype.currentEdit=null,mxGraphModel.prototype.updateLevel=0,mxGraphModel.prototype.endingUpdate=!1,mxGraphModel.prototype.clear=function(){this.setRoot(this.createRoot())},mxGraphModel.prototype.isCreateIds=function(){return this.createIds},mxGraphModel.prototype.setCreateIds=function(e){this.createIds=e},mxGraphModel.prototype.createRoot=function(){var e=new mxCell;return e.insert(new mxCell),e},mxGraphModel.prototype.getCell=function(e){return null!=this.cells?this.cells[e]:null},mxGraphModel.prototype.filterCells=function(e,n){var t=null;if(null!=e){t=[];for(var a=0;a<e.length;a++)n(e[a])&&t.push(e[a])}return t},mxGraphModel.prototype.getDescendants=function(e){return this.filterDescendants(null,e)},mxGraphModel.prototype.filterDescendants=function(e,n){var t=[];n=n||this.getRoot(),(null==e||e(n))&&t.push(n);for(var a=this.getChildCount(n),i=0;i<a;i++){var s=this.getChildAt(n,i);t=t.concat(this.filterDescendants(e,s))}return t},mxGraphModel.prototype.getRoot=function(e){var n=e||this.root;if(null!=e)for(;null!=e;)n=e,e=this.getParent(e);return n},mxGraphModel.prototype.setRoot=function(e){return this.execute(new mxRootChange(this,e)),e},mxGraphModel.prototype.rootChanged=function(e){var n=this.root;return this.root=e,this.nextId=0,this.cells=null,this.cellAdded(e),n},mxGraphModel.prototype.isRoot=function(e){return null!=e&&this.root==e},mxGraphModel.prototype.isLayer=function(e){return this.isRoot(this.getParent(e))},mxGraphModel.prototype.isAncestor=function(e,n){for(;null!=n&&n!=e;)n=this.getParent(n);return n==e},mxGraphModel.prototype.contains=function(e){return this.isAncestor(this.root,e)},mxGraphModel.prototype.getParent=function(e){return null!=e?e.getParent():null},mxGraphModel.prototype.add=function(e,n,t){if(n!=e&&null!=e&&null!=n){null==t&&(t=this.getChildCount(e));var a=e!=this.getParent(n);this.execute(new mxChildChange(this,e,n,t)),this.maintainEdgeParent&&a&&this.updateEdgeParents(n)}return n},mxGraphModel.prototype.cellAdded=function(e){if(null!=e){if(null==e.getId()&&this.createIds&&e.setId(this.createId(e)),null!=e.getId())if((n=this.getCell(e.getId()))!=e){for(;null!=n;)e.setId(this.createId(e)),n=this.getCell(e.getId());null==this.cells&&(this.cells={}),this.cells[e.getId()]=e}mxUtils.isNumeric(e.getId())&&(this.nextId=Math.max(this.nextId,e.getId()));for(var n=this.getChildCount(e),t=0;t<n;t++)this.cellAdded(this.getChildAt(e,t))}},mxGraphModel.prototype.createId=function(e){return e=this.nextId,this.nextId++,this.prefix+e+this.postfix},mxGraphModel.prototype.updateEdgeParents=function(e,n){n=n||this.getRoot(e);for(var t=this.getChildCount(e),a=0;a<t;a++){var i=this.getChildAt(e,a);this.updateEdgeParents(i,n)}for(i=this.getEdgeCount(e),t=[],a=0;a<i;a++)t.push(this.getEdgeAt(e,a));for(a=0;a<t.length;a++)i=t[a],this.isAncestor(n,i)&&this.updateEdgeParent(i,n)},mxGraphModel.prototype.updateEdgeParent=function(e,n){for(var t=this.getTerminal(e,!0),a=this.getTerminal(e,!1),i=null;null!=t&&!this.isEdge(t)&&null!=t.geometry&&t.geometry.relative;)t=this.getParent(t);for(;null!=a&&!this.isEdge(a)&&null!=a.geometry&&a.geometry.relative;)a=this.getParent(a);if(this.isAncestor(n,t)&&this.isAncestor(n,a)&&(null!=(i=t==a?this.getParent(t):this.getNearestCommonAncestor(t,a))&&(this.getParent(i)!=this.root||this.isAncestor(i,e))&&this.getParent(e)!=i)){if(null!=(t=this.getGeometry(e))){var s=this.getOrigin(this.getParent(e)),o=this.getOrigin(i);a=o.x-s.x,s=o.y-s.y;(t=t.clone()).translate(-a,-s),this.setGeometry(e,t)}this.add(i,e,this.getChildCount(i))}},mxGraphModel.prototype.getOrigin=function(e){var n=null;return null!=e?(n=this.getOrigin(this.getParent(e)),this.isEdge(e)||null!=(e=this.getGeometry(e))&&(n.x+=e.x,n.y+=e.y)):n=new mxPoint,n},mxGraphModel.prototype.getNearestCommonAncestor=function(e,n){if(null!=e&&null!=n&&(null!=(s=mxCellPath.create(n))&&0<s.length)){var t=e,a=mxCellPath.create(t);if(s.length<a.length){t=n;var i=a,s=(a=s,i)}for(;null!=t;){if(i=this.getParent(t),0==s.indexOf(a+mxCellPath.PATH_SEPARATOR)&&null!=i)return t;a=mxCellPath.getParentPath(a),t=i}}return null},mxGraphModel.prototype.remove=function(e){return e==this.root?this.setRoot(null):null!=this.getParent(e)&&this.execute(new mxChildChange(this,null,e)),e},mxGraphModel.prototype.cellRemoved=function(e){if(null!=e&&null!=this.cells){for(var n=this.getChildCount(e)-1;0<=n;n--)this.cellRemoved(this.getChildAt(e,n));null!=this.cells&&null!=e.getId()&&delete this.cells[e.getId()]}},mxGraphModel.prototype.parentForCellChanged=function(e,n,t){var a=this.getParent(e);return null!=n?(n!=a||a.getIndex(e)!=t)&&n.insert(e,t):null!=a&&(t=a.getIndex(e),a.remove(t)),this.contains(a)||null==n?null==n&&this.cellRemoved(e):this.cellAdded(e),a},mxGraphModel.prototype.getChildCount=function(e){return null!=e?e.getChildCount():0},mxGraphModel.prototype.getChildAt=function(e,n){return null!=e?e.getChildAt(n):null},mxGraphModel.prototype.getChildren=function(e){return null!=e?e.children:null},mxGraphModel.prototype.getChildVertices=function(e){return this.getChildCells(e,!0,!1)},mxGraphModel.prototype.getChildEdges=function(e){return this.getChildCells(e,!1,!0)},mxGraphModel.prototype.getChildCells=function(e,n,t){n=null!=n&&n,t=null!=t&&t;for(var a=this.getChildCount(e),i=[],s=0;s<a;s++){var o=this.getChildAt(e,s);(!t&&!n||t&&this.isEdge(o)||n&&this.isVertex(o))&&i.push(o)}return i},mxGraphModel.prototype.getTerminal=function(e,n){return null!=e?e.getTerminal(n):null},mxGraphModel.prototype.setTerminal=function(e,n,t){var a=n!=this.getTerminal(e,t);return this.execute(new mxTerminalChange(this,e,n,t)),this.maintainEdgeParent&&a&&this.updateEdgeParent(e,this.getRoot()),n},mxGraphModel.prototype.setTerminals=function(e,n,t){this.beginUpdate();try{this.setTerminal(e,n,!0),this.setTerminal(e,t,!1)}finally{this.endUpdate()}},mxGraphModel.prototype.terminalForCellChanged=function(e,n,t){var a=this.getTerminal(e,t);return null!=n?n.insertEdge(e,t):null!=a&&a.removeEdge(e,t),a},mxGraphModel.prototype.getEdgeCount=function(e){return null!=e?e.getEdgeCount():0},mxGraphModel.prototype.getEdgeAt=function(e,n){return null!=e?e.getEdgeAt(n):null},mxGraphModel.prototype.getDirectedEdgeCount=function(e,n,t){for(var a=0,i=this.getEdgeCount(e),s=0;s<i;s++){var o=this.getEdgeAt(e,s);o!=t&&this.getTerminal(o,n)==e&&a++}return a},mxGraphModel.prototype.getConnections=function(e){return this.getEdges(e,!0,!0,!1)},mxGraphModel.prototype.getIncomingEdges=function(e){return this.getEdges(e,!0,!1,!1)},mxGraphModel.prototype.getOutgoingEdges=function(e){return this.getEdges(e,!1,!0,!1)},mxGraphModel.prototype.getEdges=function(e,n,t,a){n=null==n||n,t=null==t||t,a=null==a||a;for(var i=this.getEdgeCount(e),s=[],o=0;o<i;o++){var r=this.getEdgeAt(e,o),l=this.getTerminal(r,!0),d=this.getTerminal(r,!1);(a&&l==d||l!=d&&(n&&d==e||t&&l==e))&&s.push(r)}return s},mxGraphModel.prototype.getEdgesBetween=function(e,n,t){t=null!=t&&t;var a=this.getEdgeCount(e),i=this.getEdgeCount(n),s=e,o=a;for(i<a&&(o=i,s=n),a=[],i=0;i<o;i++){var r=this.getEdgeAt(s,i),l=this.getTerminal(r,!0),d=this.getTerminal(r,!1);(l==e&&d==n||!t&&(d==e&&l==n))&&a.push(r)}return a},mxGraphModel.prototype.getOpposites=function(e,n,t,a){t=null==t||t,a=null==a||a;var i=[];if(null!=e)for(var s=0;s<e.length;s++){var o=this.getTerminal(e[s],!0),r=this.getTerminal(e[s],!1);o==n&&null!=r&&r!=n&&a?i.push(r):r==n&&null!=o&&o!=n&&t&&i.push(o)}return i},mxGraphModel.prototype.getTopmostCells=function(e){for(var n=[],t=0;t<e.length;t++){for(var a=e[t],i=!0,s=this.getParent(a);null!=s;){if(0<=mxUtils.indexOf(e,s)){i=!1;break}s=this.getParent(s)}i&&n.push(a)}return n},mxGraphModel.prototype.isVertex=function(e){return null!=e&&e.isVertex()},mxGraphModel.prototype.isEdge=function(e){return null!=e&&e.isEdge()},mxGraphModel.prototype.isConnectable=function(e){return null!=e&&e.isConnectable()},mxGraphModel.prototype.getValue=function(e){return null!=e?e.getValue():null},mxGraphModel.prototype.setValue=function(e,n){return this.execute(new mxValueChange(this,e,n)),n},mxGraphModel.prototype.valueForCellChanged=function(e,n){return e.valueChanged(n)},mxGraphModel.prototype.getGeometry=function(e,n){return null!=e?e.getGeometry():null},mxGraphModel.prototype.setGeometry=function(e,n){return n!=this.getGeometry(e)&&this.execute(new mxGeometryChange(this,e,n)),n},mxGraphModel.prototype.geometryForCellChanged=function(e,n){var t=this.getGeometry(e);return e.setGeometry(n),t},mxGraphModel.prototype.getStyle=function(e){return null!=e?e.getStyle():null},mxGraphModel.prototype.setStyle=function(e,n){return n!=this.getStyle(e)&&this.execute(new mxStyleChange(this,e,n)),n},mxGraphModel.prototype.styleForCellChanged=function(e,n){var t=this.getStyle(e);return e.setStyle(n),t},mxGraphModel.prototype.isCollapsed=function(e){return null!=e&&e.isCollapsed()},mxGraphModel.prototype.setCollapsed=function(e,n){return n!=this.isCollapsed(e)&&this.execute(new mxCollapseChange(this,e,n)),n},mxGraphModel.prototype.collapsedStateForCellChanged=function(e,n){var t=this.isCollapsed(e);return e.setCollapsed(n),t},mxGraphModel.prototype.isVisible=function(e){return null!=e&&e.isVisible()},mxGraphModel.prototype.setVisible=function(e,n){return n!=this.isVisible(e)&&this.execute(new mxVisibleChange(this,e,n)),n},mxGraphModel.prototype.visibleStateForCellChanged=function(e,n){var t=this.isVisible(e);return e.setVisible(n),t},mxGraphModel.prototype.execute=function(e){e.execute(),this.beginUpdate(),this.currentEdit.add(e),this.fireEvent(new mxEventObject(mxEvent.EXECUTE,"change",e)),this.fireEvent(new mxEventObject(mxEvent.EXECUTED,"change",e)),this.endUpdate()},mxGraphModel.prototype.beginUpdate=function(){this.updateLevel++,this.fireEvent(new mxEventObject(mxEvent.BEGIN_UPDATE)),1==this.updateLevel&&this.fireEvent(new mxEventObject(mxEvent.START_EDIT))},mxGraphModel.prototype.endUpdate=function(){if(this.updateLevel--,0==this.updateLevel&&this.fireEvent(new mxEventObject(mxEvent.END_EDIT)),!this.endingUpdate){this.endingUpdate=0==this.updateLevel,this.fireEvent(new mxEventObject(mxEvent.END_UPDATE,"edit",this.currentEdit));try{if(this.endingUpdate&&!this.currentEdit.isEmpty()){this.fireEvent(new mxEventObject(mxEvent.BEFORE_UNDO,"edit",this.currentEdit));var e=this.currentEdit;this.currentEdit=this.createUndoableEdit(),e.notify(),this.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",e))}}finally{this.endingUpdate=!1}}},mxGraphModel.prototype.createUndoableEdit=function(){var e=new mxUndoableEdit(this,!0);return e.notify=function(){e.source.fireEvent(new mxEventObject(mxEvent.CHANGE,"edit",e,"changes",e.changes)),e.source.fireEvent(new mxEventObject(mxEvent.NOTIFY,"edit",e,"changes",e.changes))},e},mxGraphModel.prototype.mergeChildren=function(e,n,t){t=null==t||t,this.beginUpdate();try{var a={};for(var i in this.mergeChildrenImpl(e,n,t,a),a){var s=a[i],o=this.getTerminal(s,!0);null!=o&&(o=a[mxCellPath.create(o)],this.setTerminal(s,o,!0)),null!=(o=this.getTerminal(s,!1))&&(o=a[mxCellPath.create(o)],this.setTerminal(s,o,!1))}}finally{this.endUpdate()}},mxGraphModel.prototype.mergeChildrenImpl=function(e,n,t,a){this.beginUpdate();try{for(var i=e.getChildCount(),s=0;s<i;s++){var o=e.getChildAt(s);if("function"==typeof o.getId){var r=o.getId(),l=null==r||this.isEdge(o)&&t?null:this.getCell(r);if(null==l){var d=o.clone();d.setId(r),d.setTerminal(o.getTerminal(!0),!0),d.setTerminal(o.getTerminal(!1),!1),l=n.insert(d),this.cellAdded(l)}a[mxCellPath.create(o)]=l,this.mergeChildrenImpl(o,l,t,a)}}}finally{this.endUpdate()}},mxGraphModel.prototype.getParents=function(e){var n=[];if(null!=e)for(var t={},a=0;a<e.length;a++){var i=this.getParent(e[a]);if(null!=i){var s=mxCellPath.create(i);null==t[s]&&(t[s]=i,n.push(i))}}return n},mxGraphModel.prototype.cloneCell=function(e){return null!=e?this.cloneCells([e],!0)[0]:null},mxGraphModel.prototype.cloneCells=function(e,n){for(var t={},a=[],i=0;i<e.length;i++)null!=e[i]?a.push(this.cloneCellImpl(e[i],t,n)):a.push(null);for(i=0;i<a.length;i++)null!=a[i]&&this.restoreClone(a[i],e[i],t);return a},mxGraphModel.prototype.cloneCellImpl=function(e,n,t){var a=this.cellCloned(e);if(n[mxObjectIdentity.get(e)]=a,t){t=this.getChildCount(e);for(var i=0;i<t;i++){var s=this.cloneCellImpl(this.getChildAt(e,i),n,!0);a.insert(s)}}return a},mxGraphModel.prototype.cellCloned=function(e){return e.clone()},mxGraphModel.prototype.restoreClone=function(e,n,t){null!=(a=this.getTerminal(n,!0))&&(null!=(a=t[mxObjectIdentity.get(a)])&&a.insertEdge(e,!0)),null!=(a=this.getTerminal(n,!1))&&(null!=(a=t[mxObjectIdentity.get(a)])&&a.insertEdge(e,!1));for(var a=this.getChildCount(e),i=0;i<a;i++)this.restoreClone(this.getChildAt(e,i),this.getChildAt(n,i),t)},mxRootChange.prototype.execute=function(){this.root=this.previous,this.previous=this.model.rootChanged(this.previous)},mxChildChange.prototype.execute=function(){var e=this.model.getParent(this.child),n=null!=e?e.getIndex(this.child):0;null==this.previous&&this.connect(this.child,!1),e=this.model.parentForCellChanged(this.child,this.previous,this.previousIndex),null!=this.previous&&this.connect(this.child,!0),this.parent=this.previous,this.previous=e,this.index=this.previousIndex,this.previousIndex=n},mxChildChange.prototype.connect=function(e,n){n=null==n||n;var t=e.getTerminal(!0),a=e.getTerminal(!1);for(null!=t&&(n?this.model.terminalForCellChanged(e,t,!0):this.model.terminalForCellChanged(e,null,!0)),null!=a&&(n?this.model.terminalForCellChanged(e,a,!1):this.model.terminalForCellChanged(e,null,!1)),e.setTerminal(t,!0),e.setTerminal(a,!1),t=this.model.getChildCount(e),a=0;a<t;a++)this.connect(this.model.getChildAt(e,a),n)},mxTerminalChange.prototype.execute=function(){this.terminal=this.previous,this.previous=this.model.terminalForCellChanged(this.cell,this.previous,this.source)},mxValueChange.prototype.execute=function(){this.value=this.previous,this.previous=this.model.valueForCellChanged(this.cell,this.previous)},mxStyleChange.prototype.execute=function(){this.style=this.previous,this.previous=this.model.styleForCellChanged(this.cell,this.previous)},mxGeometryChange.prototype.execute=function(){this.geometry=this.previous,this.previous=this.model.geometryForCellChanged(this.cell,this.previous)},mxCollapseChange.prototype.execute=function(){this.collapsed=this.previous,this.previous=this.model.collapsedStateForCellChanged(this.cell,this.previous)},mxVisibleChange.prototype.execute=function(){this.visible=this.previous,this.previous=this.model.visibleStateForCellChanged(this.cell,this.previous)},mxCellAttributeChange.prototype.execute=function(){var e=this.cell.getAttribute(this.attribute);null==this.previous?this.cell.value.removeAttribute(this.attribute):this.cell.setAttribute(this.attribute,this.previous),this.previous=e},mxCell.prototype.id=null,mxCell.prototype.value=null,mxCell.prototype.geometry=null,mxCell.prototype.style=null,mxCell.prototype.vertex=!1,mxCell.prototype.edge=!1,mxCell.prototype.connectable=!0,mxCell.prototype.visible=!0,mxCell.prototype.collapsed=!1,mxCell.prototype.parent=null,mxCell.prototype.source=null,mxCell.prototype.target=null,mxCell.prototype.children=null,mxCell.prototype.edges=null,mxCell.prototype.mxTransient="id value parent source target children edges".split(" "),mxCell.prototype.getId=function(){return this.id},mxCell.prototype.setId=function(e){this.id=e},mxCell.prototype.getValue=function(){return this.value},mxCell.prototype.setValue=function(e){this.value=e},mxCell.prototype.valueChanged=function(e){var n=this.getValue();return this.setValue(e),n},mxCell.prototype.getGeometry=function(){return this.geometry},mxCell.prototype.setGeometry=function(e){this.geometry=e},mxCell.prototype.getStyle=function(){return this.style},mxCell.prototype.setStyle=function(e){this.style=e},mxCell.prototype.isVertex=function(){return this.vertex},mxCell.prototype.setVertex=function(e){this.vertex=e},mxCell.prototype.isEdge=function(){return this.edge},mxCell.prototype.setEdge=function(e){this.edge=e},mxCell.prototype.isConnectable=function(){return this.connectable},mxCell.prototype.setConnectable=function(e){this.connectable=e},mxCell.prototype.isVisible=function(){return this.visible},mxCell.prototype.setVisible=function(e){this.visible=e},mxCell.prototype.isCollapsed=function(){return this.collapsed},mxCell.prototype.setCollapsed=function(e){this.collapsed=e},mxCell.prototype.getParent=function(){return this.parent},mxCell.prototype.setParent=function(e){this.parent=e},mxCell.prototype.getTerminal=function(e){return e?this.source:this.target},mxCell.prototype.setTerminal=function(e,n){return n?this.source=e:this.target=e,e},mxCell.prototype.getChildCount=function(){return null==this.children?0:this.children.length},mxCell.prototype.getIndex=function(e){return mxUtils.indexOf(this.children,e)},mxCell.prototype.getChildAt=function(e){return null==this.children?null:this.children[e]},mxCell.prototype.insert=function(e,n){return null!=e&&(null==n&&(n=this.getChildCount(),e.getParent()==this&&n--),e.removeFromParent(),e.setParent(this),null==this.children?(this.children=[],this.children.push(e)):this.children.splice(n,0,e)),e},mxCell.prototype.remove=function(e){var n=null;return null!=this.children&&0<=e&&(null!=(n=this.getChildAt(e))&&(this.children.splice(e,1),n.setParent(null))),n},mxCell.prototype.removeFromParent=function(){if(null!=this.parent){var e=this.parent.getIndex(this);this.parent.remove(e)}},mxCell.prototype.getEdgeCount=function(){return null==this.edges?0:this.edges.length},mxCell.prototype.getEdgeIndex=function(e){return mxUtils.indexOf(this.edges,e)},mxCell.prototype.getEdgeAt=function(e){return null==this.edges?null:this.edges[e]},mxCell.prototype.insertEdge=function(e,n){return null!=e&&(e.removeFromTerminal(n),e.setTerminal(this,n),null==this.edges||e.getTerminal(!n)!=this||mxUtils.indexOf(this.edges,e)<0)&&(null==this.edges&&(this.edges=[]),this.edges.push(e)),e},mxCell.prototype.removeEdge=function(e,n){if(null!=e){if(e.getTerminal(!n)!=this&&null!=this.edges){var t=this.getEdgeIndex(e);0<=t&&this.edges.splice(t,1)}e.setTerminal(null,n)}return e},mxCell.prototype.removeFromTerminal=function(e){var n=this.getTerminal(e);null!=n&&n.removeEdge(this,e)},mxCell.prototype.getAttribute=function(e,n){var t=this.getValue();return(null!=t&&t.nodeType==mxConstants.NODETYPE_ELEMENT?t.getAttribute(e):null)||n},mxCell.prototype.setAttribute=function(e,n){var t=this.getValue();null!=t&&t.nodeType==mxConstants.NODETYPE_ELEMENT&&t.setAttribute(e,n)},mxCell.prototype.clone=function(){var e=mxUtils.clone(this,this.mxTransient);return e.setValue(this.cloneValue()),e},mxCell.prototype.cloneValue=function(){var e=this.getValue();return null!=e&&("function"==typeof e.clone?e=e.clone():isNaN(e.nodeType)||(e=e.cloneNode(!0))),e},mxGeometry.prototype=new mxRectangle,mxGeometry.prototype.constructor=mxGeometry,mxGeometry.prototype.TRANSLATE_CONTROL_POINTS=!0,mxGeometry.prototype.alternateBounds=null,mxGeometry.prototype.sourcePoint=null,mxGeometry.prototype.targetPoint=null,mxGeometry.prototype.points=null,mxGeometry.prototype.offset=null,mxGeometry.prototype.relative=!1,mxGeometry.prototype.swap=function(){if(null!=this.alternateBounds){var e=new mxRectangle(this.x,this.y,this.width,this.height);this.x=this.alternateBounds.x,this.y=this.alternateBounds.y,this.width=this.alternateBounds.width,this.height=this.alternateBounds.height,this.alternateBounds=e}},mxGeometry.prototype.getTerminalPoint=function(e){return e?this.sourcePoint:this.targetPoint},mxGeometry.prototype.setTerminalPoint=function(e,n){return n?this.sourcePoint=e:this.targetPoint=e,e},mxGeometry.prototype.translate=function(e,n){if(this.clone(),this.relative||(this.x+=e,this.y+=n),null!=this.sourcePoint&&(this.sourcePoint.x+=e,this.sourcePoint.y+=n),null!=this.targetPoint&&(this.targetPoint.x+=e,this.targetPoint.y+=n),this.TRANSLATE_CONTROL_POINTS&&null!=this.points)for(var t=this.points.length,a=0;a<t;a++){var i=this.points[a];null!=i&&(i.x+=e,i.y+=n)}};var mxCellPath={PATH_SEPARATOR:".",create:function(e){var n="";if(null!=e)for(var t=e.getParent();null!=t;)n=t.getIndex(e)+mxCellPath.PATH_SEPARATOR+n,t=(e=t).getParent();return 1<(e=n.length)&&(n=n.substring(0,e-1)),n},getParentPath:function(e){if(null!=e){var n=e.lastIndexOf(mxCellPath.PATH_SEPARATOR);if(0<=n)return e.substring(0,n);if(0<e.length)return""}return null},resolve:function(e,n){var t=e;if(null!=n)for(var a=n.split(mxCellPath.PATH_SEPARATOR),i=0;i<a.length;i++)t=t.getChildAt(parseInt(a[i]));return t},compare:function(e,n){for(var t=Math.min(e.length,n.length),a=0,i=0;i<t;i++)if(e[i]!=n[i]){a=0==e[i].length||0==n[i].length?e[i]==n[i]?0:e[i]>n[i]?1:-1:(t=parseInt(e[i]))==(i=parseInt(n[i]))?0:i<t?1:-1;break}return 0==a&&((t=e.length)!=(i=n.length)&&(a=i<t?1:-1)),a}},mxPerimeter={RectanglePerimeter:function(e,n,t,a){n=e.getCenterX();var i=e.getCenterY(),s=Math.atan2(t.y-i,t.x-n),o=new mxPoint(0,0),r=Math.PI,l=Math.PI/2-s,d=Math.atan2(e.height,e.width);return s<-r+d||r-d<s?(o.x=e.x,o.y=i-e.width*Math.tan(s)/2):s<-d?(o.y=e.y,o.x=n-e.height*Math.tan(l)/2):s<d?(o.x=e.x+e.width,o.y=i+e.width*Math.tan(s)/2):(o.y=e.y+e.height,o.x=n+e.height*Math.tan(l)/2),a&&(t.x>=e.x&&t.x<=e.x+e.width?o.x=t.x:t.y>=e.y&&t.y<=e.y+e.height&&(o.y=t.y),t.x<e.x?o.x=e.x:t.x>e.x+e.width&&(o.x=e.x+e.width),t.y<e.y?o.y=e.y:t.y>e.y+e.height&&(o.y=e.y+e.height)),o},EllipsePerimeter:function(e,n,t,a){var i=e.x,s=e.y,o=e.width/2,r=e.height/2,l=i+o,d=s+r;n=t.x,t=t.y;var c=parseInt(n-l),m=parseInt(t-d);if(0==c&&0!=m)return new mxPoint(l,d+r*m/Math.abs(m));if(0==c&&0==m)return new mxPoint(n,t);if(a){if(s<=t&&t<=s+e.height)return e=t-d,e=Math.sqrt(o*o*(1-e*e/(r*r)))||0,n<=i&&(e=-e),new mxPoint(l+e,t);if(i<=n&&n<=i+e.width)return e=n-l,e=Math.sqrt(r*r*(1-e*e/(o*o)))||0,t<=s&&(e=-e),new mxPoint(n,d+e)}return d-=(i=m/c)*l,l=i*(o=(-(e=-2*l*(s=o*o*i*i+r*r))+(r=Math.sqrt(e*e-4*s*(o*o*i*i*l*l+r*r*l*l-o*o*r*r))))/(2*s))+d,d=i*(r=(-e-r)/(2*s))+d,i=Math.sqrt(Math.pow(o-n,2)+Math.pow(l-t,2)),n=Math.sqrt(Math.pow(r-n,2)+Math.pow(d-t,2)),s=t=0,s=i<n?(t=o,l):(t=r,d),new mxPoint(t,s)},RhombusPerimeter:function(e,n,t,a){n=e.x;var i=e.y,s=e.width,o=n+s/2,r=i+(e=e.height)/2,l=t.x;if(t=t.y,o==l)return new mxPoint(o,t<r?i:i+e);if(r==t)return new mxPoint(l<o?n:n+s,r);var d=o,c=r;return a&&(n<=l&&l<=n+s?d=l:i<=t&&t<=i+e&&(c=t)),l<o?t<r?mxUtils.intersection(l,t,d,c,o,i,n,r):mxUtils.intersection(l,t,d,c,o,i+e,n,r):t<r?mxUtils.intersection(l,t,d,c,o,i,n+s,r):mxUtils.intersection(l,t,d,c,o,i+e,n+s,r)},TrianglePerimeter:function(e,n,t,a){var i=(n=null!=n?n.style[mxConstants.STYLE_DIRECTION]:null)==mxConstants.DIRECTION_NORTH||n==mxConstants.DIRECTION_SOUTH,s=e.x,o=e.y,r=e.width,l=s+r/2,d=o+(e=e.height)/2,c=new mxPoint(s,o),m=new mxPoint(s+r,d),u=new mxPoint(s,o+e);n==mxConstants.DIRECTION_NORTH?(c=u,m=new mxPoint(l,o),u=new mxPoint(s+r,o+e)):n==mxConstants.DIRECTION_SOUTH?(m=new mxPoint(l,o+e),u=new mxPoint(s+r,o)):n==mxConstants.DIRECTION_WEST&&(c=new mxPoint(s+r,o),m=new mxPoint(s,d),u=new mxPoint(s+r,o+e));var p=t.x-l,g=t.y-d,v=(p=i?Math.atan2(p,g):Math.atan2(g,p),i?Math.atan2(r,e):Math.atan2(e,r));g=!1,g=n==mxConstants.DIRECTION_NORTH||n==mxConstants.DIRECTION_WEST?-v<p&&p<v:p<-Math.PI+v||p>Math.PI-v,v=null;return null==(v=g?a&&(i&&t.x>=c.x&&t.x<=u.x||!i&&t.y>=c.y&&t.y<=u.y)?i?new mxPoint(t.x,c.y):new mxPoint(c.x,t.y):n==mxConstants.DIRECTION_NORTH?new mxPoint(s+r/2+e*Math.tan(p)/2,o+e):n==mxConstants.DIRECTION_SOUTH?new mxPoint(s+r/2-e*Math.tan(p)/2,o):n==mxConstants.DIRECTION_WEST?new mxPoint(s+r,o+e/2+r*Math.tan(p)/2):new mxPoint(s,o+e/2-r*Math.tan(p)/2):(a&&(a=new mxPoint(l,d),t.y>=o&&t.y<=o+e?(a.x=i?l:n==mxConstants.DIRECTION_WEST?s+r:s,a.y=t.y):t.x>=s&&t.x<=s+r&&(a.x=t.x,a.y=i?n==mxConstants.DIRECTION_NORTH?o+e:o:d),l=a.x,d=a.y),i&&t.x<=s+r/2||!i&&t.y<=o+e/2?mxUtils.intersection(t.x,t.y,l,d,c.x,c.y,m.x,m.y):mxUtils.intersection(t.x,t.y,l,d,m.x,m.y,u.x,u.y)))&&(v=new mxPoint(l,d)),v}};function mxPrintPreview(e,n,t,a,i,s,o,r,l){this.graph=e,this.scale=null!=n?n:1/e.pageScale,this.border=null!=a?a:0,this.pageFormat=null!=t?t:e.pageFormat,this.title=null!=r?r:"Printer-friendly version",this.x0=null!=i?i:0,this.y0=null!=s?s:0,this.borderColor=o,this.pageSelector=null==l||l}function mxStylesheet(){this.styles={},this.putDefaultVertexStyle(this.createDefaultVertexStyle()),this.putDefaultEdgeStyle(this.createDefaultEdgeStyle())}function mxCellState(e,n,t){this.view=e,this.cell=n,this.style=t,this.origin=new mxPoint,this.absoluteOffset=new mxPoint}function mxGraphSelectionModel(e){this.graph=e,this.cells=[]}function mxSelectionChange(e,n,t){this.selectionModel=e,this.added=null!=n?n.slice():null,this.removed=null!=t?t.slice():null}function mxCellEditor(e){this.graph=e}function mxCellRenderer(){}mxPrintPreview.prototype.graph=null,mxPrintPreview.prototype.pageFormat=null,mxPrintPreview.prototype.scale=null,mxPrintPreview.prototype.border=0,mxPrintPreview.prototype.x0=0,mxPrintPreview.prototype.y0=0,mxPrintPreview.prototype.autoOrigin=!0,mxPrintPreview.prototype.printOverlays=!1,mxPrintPreview.prototype.borderColor=null,mxPrintPreview.prototype.title=null,mxPrintPreview.prototype.pageSelector=null,mxPrintPreview.prototype.wnd=null,mxPrintPreview.prototype.pageCount=0,mxPrintPreview.prototype.getWindow=function(){return this.wnd},mxPrintPreview.prototype.getDoctype=function(){var e="";return 8==document.documentMode&&(e='<meta http-equiv="X-UA-Compatible" content="IE=8">'),e},mxPrintPreview.prototype.open=function(e){var n=this.graph.cellRenderer.initializeOverlay,t=null;try{if(this.printOverlays&&(this.graph.cellRenderer.initializeOverlay=function(e,n){n.init(e.view.getDrawPane())}),null==this.wnd){this.wnd=window.open();var a=this.wnd.document,i=this.getDoctype();null!=i&&0<i.length&&a.writeln(i),a.writeln("<html>"),a.writeln("<head>"),this.writeHead(a,e),a.writeln("</head>"),a.writeln('<body class="mxPage">'),mxClient.link("stylesheet",mxClient.basePath+"/css/common.css",a),mxClient.IS_VML&&(a.namespaces.add("v","urn:schemas-microsoft-com:vml"),a.namespaces.add("o","urn:schemas-microsoft-com:office:office"),a.createStyleSheet().cssText="v\\:*{behavior:url(#default#VML)}o\\:*{behavior:url(#default#VML)}",mxClient.link("stylesheet",mxClient.basePath+"/css/explorer.css",a));var s=this.graph.getGraphBounds().clone(),o=this.graph.getView().getScale(),r=o/this.scale,l=this.graph.getView().getTranslate();this.autoOrigin||(this.x0=-l.x*this.scale,this.y0=-l.y*this.scale,s.width+=s.x,s.height+=s.y,s.x=0,this.border=s.y=0),s.width/=r,s.height/=r;var d=this.pageFormat.width-2*this.border,c=this.pageFormat.height-2*this.border,m=Math.max(1,Math.ceil((s.width+this.x0)/d)),u=Math.max(1,Math.ceil((s.height+this.y0)/c));this.pageCount=m*u;var p=mxUtils.bind(this,function(){if(this.pageSelector&&(1<u||1<m)){var e=this.createPageSelector(u,m);if(a.body.appendChild(e),mxClient.IS_IE){e.style.position="absolute";var n=function(){e.style.top=a.body.scrollTop+10+"px"};mxEvent.addListener(this.wnd,"scroll",function(e){n()}),mxEvent.addListener(this.wnd,"resize",function(e){n()})}}});if(e=function(e,n){if(null!=this.borderColor&&(e.style.borderColor=this.borderColor,e.style.borderStyle="solid",e.style.borderWidth="1px"),e.style.background="white",n&&(e.style.pageBreakAfter="always"),mxClient.IS_IE?(a.writeln(e.outerHTML),e.parentNode.removeChild(e)):(e.parentNode.removeChild(e),a.body.appendChild(e)),n){var t=a.createElement("hr");t.className="mxPageBreak",a.body.appendChild(t)}},null!=(f=this.getCoverPages(this.pageFormat.width,this.pageFormat.height)))for(var g=0;g<f.length;g++)e(f[g],!0);var v=this.getAppendices(this.pageFormat.width,this.pageFormat.height);for(g=0;g<u;g++)for(var h=g*c/this.scale-this.y0/this.scale+(s.y-l.y*o)/o,f=0;f<m;f++){if(null==this.wnd)return null;var b=f*d/this.scale-this.x0/this.scale+(s.x-l.x*o)/o,A=g*m+f+1;(t=this.renderPage(this.pageFormat.width,this.pageFormat.height,mxUtils.bind(this,function(e){this.addGraphFragment(-b,-h,this.scale,A,e)}))).setAttribute("id","mxPage-"+A),e(t,null!=v||g<u-1||f<m-1)}if(null!=v)for(g=0;g<v.length;g++)e(v[g],g<v.length);a.writeln("</body>"),a.writeln("</html>"),a.close(),p(),mxEvent.release(a.body)}this.wnd.focus()}catch(e){null!=t&&null!=t.parentNode&&t.parentNode.removeChild(t)}finally{this.graph.cellRenderer.initializeOverlay=n}return this.wnd},mxPrintPreview.prototype.writeHead=function(e,n){null!=this.title&&e.writeln("<title>"+this.title+"</title>"),e.writeln('<style type="text/css">'),e.writeln("@media print {"),e.writeln(" table.mxPageSelector { display: none; }"),e.writeln(" hr.mxPageBreak { display: none; }"),e.writeln("}"),e.writeln("@media screen {"),e.writeln(" table.mxPageSelector { position: fixed; right: 10px; top: 10px;font-family: Arial; font-size:10pt; border: solid 1px darkgray;background: white; border-collapse:collapse; }"),e.writeln(" table.mxPageSelector td { border: solid 1px gray; padding:4px; }"),e.writeln(" body.mxPage { background: gray; }"),e.writeln("}"),null!=n&&e.writeln(n),e.writeln("</style>")},mxPrintPreview.prototype.createPageSelector=function(e,n){var t=this.wnd.document,a=t.createElement("table");a.className="mxPageSelector",a.setAttribute("border","0");for(var i=t.createElement("tbody"),s=0;s<e;s++){for(var o=t.createElement("tr"),r=0;r<n;r++){var l=s*n+r+1,d=t.createElement("td");if(!mxClient.IS_NS||mxClient.IS_SF||mxClient.IS_GC){var c=t.createElement("a");c.setAttribute("href","#mxPage-"+l),mxUtils.write(c,l,t),d.appendChild(c)}else mxUtils.write(d,l,t);o.appendChild(d)}i.appendChild(o)}return a.appendChild(i),a},mxPrintPreview.prototype.renderPage=function(e,n,t){var a=document.createElement("div");try{a.style.width=e+"px",a.style.height=n+"px",a.style.overflow="hidden",a.style.pageBreakInside="avoid",a.style.position="relative";var i=document.createElement("div");i.style.top=this.border+"px",i.style.left=this.border+"px",i.style.width=e-2*this.border+"px",i.style.height=n-2*this.border+"px",i.style.overflow="hidden",this.graph.dialect==mxConstants.DIALECT_VML&&(i.style.position="absolute"),a.appendChild(i),document.body.appendChild(a),t(i)}catch(e){throw a.parentNode.removeChild(a),e}return a},mxPrintPreview.prototype.addGraphFragment=function(e,n,t,a,i){a=this.graph.getView();var s=this.graph.container;this.graph.container=i;var o=a.getCanvas(),r=a.getBackgroundPane(),l=a.getDrawPane(),d=a.getOverlayPane();this.graph.dialect==mxConstants.DIALECT_SVG?a.createSvg():this.graph.dialect==mxConstants.DIALECT_VML?a.createVml():a.createHtml();var c=a.isEventsEnabled();a.setEventsEnabled(!1);var m=this.graph.isEnabled();this.graph.setEnabled(!1);var u=a.getTranslate();a.translate=new mxPoint(e,n),e=null;try{var p=[this.graph.getModel().getRoot()];e=new mxTemporaryCellStates(a,t,p)}finally{if(mxClient.IS_IE)a.overlayPane.innerHTML="";else for(t=i.firstChild;null!=t;)p=t.nextSibling,"svg"==(n=t.nodeName.toLowerCase())?(t.setAttribute("width",parseInt(i.style.width)),t.setAttribute("height",parseInt(i.style.height))):"default"!=t.style.cursor&&"table"!=n&&t.parentNode.removeChild(t),t=p;a.overlayPane.parentNode.removeChild(a.overlayPane),this.graph.setEnabled(m),this.graph.container=s,a.canvas=o,a.backgroundPane=r,a.drawPane=l,a.overlayPane=d,a.translate=u,e.destroy(),a.setEventsEnabled(c)}},mxPrintPreview.prototype.getCoverPages=function(){return null},mxPrintPreview.prototype.getAppendices=function(){return null},mxPrintPreview.prototype.print=function(){var e=this.open();null!=e&&e.print()},mxPrintPreview.prototype.close=function(){null!=this.wnd&&(this.wnd.close(),this.wnd=null)},mxStylesheet.prototype.createDefaultVertexStyle=function(){var e={};return e[mxConstants.STYLE_SHAPE]=mxConstants.SHAPE_RECTANGLE,e[mxConstants.STYLE_PERIMETER]=mxPerimeter.RectanglePerimeter,e[mxConstants.STYLE_VERTICAL_ALIGN]=mxConstants.ALIGN_MIDDLE,e[mxConstants.STYLE_ALIGN]=mxConstants.ALIGN_CENTER,e[mxConstants.STYLE_FILLCOLOR]="#C3D9FF",e[mxConstants.STYLE_STROKECOLOR]="#6482B9",e[mxConstants.STYLE_FONTCOLOR]="#774400",e},mxStylesheet.prototype.createDefaultEdgeStyle=function(){var e={};return e[mxConstants.STYLE_SHAPE]=mxConstants.SHAPE_CONNECTOR,e[mxConstants.STYLE_ENDARROW]=mxConstants.ARROW_CLASSIC,e[mxConstants.STYLE_VERTICAL_ALIGN]=mxConstants.ALIGN_MIDDLE,e[mxConstants.STYLE_ALIGN]=mxConstants.ALIGN_CENTER,e[mxConstants.STYLE_STROKECOLOR]="#6482B9",e[mxConstants.STYLE_FONTCOLOR]="#446299",e},mxStylesheet.prototype.putDefaultVertexStyle=function(e){this.putCellStyle("defaultVertex",e)},mxStylesheet.prototype.putDefaultEdgeStyle=function(e){this.putCellStyle("defaultEdge",e)},mxStylesheet.prototype.getDefaultVertexStyle=function(){return this.styles.defaultVertex},mxStylesheet.prototype.getDefaultEdgeStyle=function(){return this.styles.defaultEdge},mxStylesheet.prototype.putCellStyle=function(e,n){this.styles[e]=n},mxStylesheet.prototype.getCellStyle=function(e,n){var t=n;if(null!=e&&0<e.length)for(var a=e.split(";"),i=(t=null!=t&&";"!=e.charAt(0)?mxUtils.clone(t):{},0);i<a.length;i++){var s=(o=a[i]).indexOf("=");if(0<=s){var o,r=o.substring(0,s);(o=o.substring(s+1))==mxConstants.NONE?delete t[r]:mxUtils.isNumeric(o)?t[r]=parseFloat(o):t[r]=o}else if(null!=(o=this.styles[o]))for(r in o)t[r]=o[r]}return t},mxCellState.prototype=new mxRectangle,mxCellState.prototype.constructor=mxCellState,mxCellState.prototype.view=null,mxCellState.prototype.cell=null,mxCellState.prototype.style=null,mxCellState.prototype.invalid=!0,mxCellState.prototype.invalidOrder=!1,mxCellState.prototype.orderChanged=!1,mxCellState.prototype.origin=null,mxCellState.prototype.absolutePoints=null,mxCellState.prototype.absoluteOffset=null,mxCellState.prototype.visibleSourceState=null,mxCellState.prototype.visibleTargetState=null,mxCellState.prototype.terminalDistance=0,mxCellState.prototype.length=0,mxCellState.prototype.segments=null,mxCellState.prototype.shape=null,mxCellState.prototype.text=null,mxCellState.prototype.getPerimeterBounds=function(e,n){if(e=e||0,n=null!=n?n:new mxRectangle(this.x,this.y,this.width,this.height),null!=this.shape&&null!=this.shape.stencil){var t=this.shape.stencil.computeAspect(this.style,n.x,n.y,n.width,n.height);n.x=t.x,n.y=t.y,n.width=this.shape.stencil.w0*t.width,n.height=this.shape.stencil.h0*t.height}return 0!=e&&n.grow(e),n},mxCellState.prototype.setAbsoluteTerminalPoint=function(e,n){n?(null==this.absolutePoints&&(this.absolutePoints=[]),0==this.absolutePoints.length?this.absolutePoints.push(e):this.absolutePoints[0]=e):null==this.absolutePoints?(this.absolutePoints=[],this.absolutePoints.push(null),this.absolutePoints.push(e)):1==this.absolutePoints.length?this.absolutePoints.push(e):this.absolutePoints[this.absolutePoints.length-1]=e},mxCellState.prototype.setCursor=function(e){null!=this.shape&&this.shape.setCursor(e),null!=this.text&&this.text.setCursor(e)},mxCellState.prototype.getVisibleTerminal=function(e){return null!=(e=this.getVisibleTerminalState(e))?e.cell:null},mxCellState.prototype.getVisibleTerminalState=function(e){return e?this.visibleSourceState:this.visibleTargetState},mxCellState.prototype.setVisibleTerminalState=function(e,n){n?this.visibleSourceState=e:this.visibleTargetState=e},mxCellState.prototype.destroy=function(){this.view.graph.cellRenderer.destroy(this)},mxCellState.prototype.clone=function(){var e=new mxCellState(this.view,this.cell,this.style);if(null!=this.absolutePoints){e.absolutePoints=[];for(var n=0;n<this.absolutePoints.length;n++)e.absolutePoints[n]=this.absolutePoints[n].clone()}return null!=this.origin&&(e.origin=this.origin.clone()),null!=this.absoluteOffset&&(e.absoluteOffset=this.absoluteOffset.clone()),null!=this.boundingBox&&(e.boundingBox=this.boundingBox.clone()),e.terminalDistance=this.terminalDistance,e.segments=this.segments,e.length=this.length,e.x=this.x,e.y=this.y,e.width=this.width,e.height=this.height,e},mxGraphSelectionModel.prototype=new mxEventSource,mxGraphSelectionModel.prototype.constructor=mxGraphSelectionModel,mxGraphSelectionModel.prototype.doneResource="none"!=mxClient.language?"done":"",mxGraphSelectionModel.prototype.updatingSelectionResource="none"!=mxClient.language?"updatingSelection":"",mxGraphSelectionModel.prototype.graph=null,mxGraphSelectionModel.prototype.singleSelection=!1,mxGraphSelectionModel.prototype.isSingleSelection=function(){return this.singleSelection},mxGraphSelectionModel.prototype.setSingleSelection=function(e){this.singleSelection=e},mxGraphSelectionModel.prototype.isSelected=function(e){return null!=e&&0<=mxUtils.indexOf(this.cells,e)},mxGraphSelectionModel.prototype.isEmpty=function(){return 0==this.cells.length},mxGraphSelectionModel.prototype.clear=function(){this.changeSelection(null,this.cells)},mxGraphSelectionModel.prototype.setCell=function(e){null!=e&&this.setCells([e])},mxGraphSelectionModel.prototype.setCells=function(e){if(null!=e){this.singleSelection&&(e=[this.getFirstSelectableCell(e)]);for(var n=[],t=0;t<e.length;t++)this.graph.isCellSelectable(e[t])&&n.push(e[t]);this.changeSelection(n,this.cells)}},mxGraphSelectionModel.prototype.getFirstSelectableCell=function(e){if(null!=e)for(var n=0;n<e.length;n++)if(this.graph.isCellSelectable(e[n]))return e[n];return null},mxGraphSelectionModel.prototype.addCell=function(e){null!=e&&this.addCells([e])},mxGraphSelectionModel.prototype.addCells=function(e){if(null!=e){var n=null;this.singleSelection&&(n=this.cells,e=[this.getFirstSelectableCell(e)]);for(var t=[],a=0;a<e.length;a++)!this.isSelected(e[a])&&this.graph.isCellSelectable(e[a])&&t.push(e[a]);this.changeSelection(t,n)}},mxGraphSelectionModel.prototype.removeCell=function(e){null!=e&&this.removeCells([e])},mxGraphSelectionModel.prototype.removeCells=function(e){if(null!=e){for(var n=[],t=0;t<e.length;t++)this.isSelected(e[t])&&n.push(e[t]);this.changeSelection(null,n)}},mxGraphSelectionModel.prototype.changeSelection=function(e,n){if(null!=e&&0<e.length&&null!=e[0]||null!=n&&0<n.length&&null!=n[0]){var t=new mxSelectionChange(this,e,n);t.execute();var a=new mxUndoableEdit(this,!1);a.add(t),this.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",a))}},mxGraphSelectionModel.prototype.cellAdded=function(e){null!=e&&!this.isSelected(e)&&this.cells.push(e)},mxGraphSelectionModel.prototype.cellRemoved=function(e){null!=e&&(0<=(e=mxUtils.indexOf(this.cells,e))&&this.cells.splice(e,1))},mxSelectionChange.prototype.execute=function(){var e=mxLog.enter("mxSelectionChange.execute");if(window.status=mxResources.get(this.selectionModel.updatingSelectionResource)||this.selectionModel.updatingSelectionResource,null!=this.removed)for(var n=0;n<this.removed.length;n++)this.selectionModel.cellRemoved(this.removed[n]);if(null!=this.added)for(n=0;n<this.added.length;n++)this.selectionModel.cellAdded(this.added[n]);n=this.added,this.added=this.removed,this.removed=n,window.status=mxResources.get(this.selectionModel.doneResource)||this.selectionModel.doneResource,mxLog.leave("mxSelectionChange.execute",e),this.selectionModel.fireEvent(new mxEventObject(mxEvent.CHANGE,"added",this.added,"removed",this.removed))},mxCellEditor.prototype.graph=null,mxCellEditor.prototype.textarea=null,mxCellEditor.prototype.editingCell=null,mxCellEditor.prototype.trigger=null,mxCellEditor.prototype.modified=!1,mxCellEditor.prototype.autoSize=!0,mxCellEditor.prototype.emptyLabelText="",mxCellEditor.prototype.textNode="",mxCellEditor.prototype.init=function(){this.textarea=document.createElement("textarea"),this.textarea.className="mxCellEditor",this.textarea.style.position="absolute",this.textarea.style.overflow="visible",this.textarea.setAttribute("cols","20"),this.textarea.setAttribute("rows","4"),mxClient.IS_NS&&(this.textarea.style.resize="none"),mxEvent.addListener(this.textarea,"blur",mxUtils.bind(this,function(e){this.focusLost()})),mxEvent.addListener(this.textarea,"keydown",mxUtils.bind(this,function(e){mxEvent.isConsumed(e)||(113==e.keyCode||this.graph.isEnterStopsCellEditing()&&13==e.keyCode&&!mxEvent.isControlDown(e)&&!mxEvent.isShiftDown(e)?(this.graph.stopEditing(!1),mxEvent.consume(e)):27==e.keyCode?(this.graph.stopEditing(!0),mxEvent.consume(e)):(this.clearOnChange&&(this.clearOnChange=!1,this.textarea.value=""),this.setModified(!0)))})),mxEvent.addListener(this.textarea,"keypress",mxUtils.bind(this,function(e){this.autoSize&&!mxEvent.isConsumed(e)&&setTimeout(mxUtils.bind(this,function(){this.resize()}),0)}))},mxCellEditor.prototype.resize=function(){if(null!=this.textDiv){var e=this.graph.getView().getState(this.editingCell),n=this.graph.isLabelClipped(e.cell),t=this.graph.isWrapping(e.cell);if(this.graph.getModel().isEdge(e.cell))this.bounds.x=e.absoluteOffset.x,this.bounds.y=e.absoluteOffset.y,this.bounds.width=0,this.bounds.height=0;else if(null!=this.bounds){this.bounds.x=e.x,this.bounds.y=e.y,this.bounds.width=e.width,this.bounds.height=e.height,(a=mxUtils.getValue(e.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER))==mxConstants.ALIGN_LEFT?this.bounds.x-=e.width:a==mxConstants.ALIGN_RIGHT&&(this.bounds.x+=e.width),(a=mxUtils.getValue(e.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE))==mxConstants.ALIGN_TOP?this.bounds.y-=e.height:a==mxConstants.ALIGN_BOTTOM&&(this.bounds.y+=e.height)}"\n"!=(a=this.textarea.value).charAt(a.length-1)&&""!=a||(a+=" "),a=mxUtils.htmlEntities(a,!1),t?(this.textDiv.style.whiteSpace="normal",this.textDiv.style.width=this.bounds.width+"px"):a=a.replace(/ /g," "),a=a.replace(/\n/g,"<br/>"),this.textDiv.innerHTML=a;var a=this.textDiv.offsetWidth+30,i=this.textDiv.offsetHeight+16;a=Math.max(a,40),i=Math.max(i,20);n&&(a=Math.min(this.bounds.width-4,a),i=Math.min(this.bounds.height,i));var s=null!=e.text?e.text.margin:null;null==s&&(s=mxUtils.getValue(e.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER),e=mxUtils.getValue(e.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE),s=mxUtils.getAlignmentAsPoint(s,e)),null!=s&&(!n&&t||(this.textarea.style.left=Math.max(0,Math.round(this.bounds.x-s.x*this.bounds.width+s.x*a)-3)+"px"),this.textarea.style.top=Math.max(0,Math.round(this.bounds.y-s.y*this.bounds.height+s.y*i)+4)+"px"),!n&&t||(this.textarea.style.width=a+"px"),this.textarea.style.height=i+"px"}},mxCellEditor.prototype.isModified=function(){return this.modified},mxCellEditor.prototype.setModified=function(e){this.modified=e},mxCellEditor.prototype.focusLost=function(){this.stopEditing(!this.graph.isInvokesStopCellEditing())},mxCellEditor.prototype.startEditing=function(e,n){null==this.textarea&&this.init(),this.stopEditing(!0);var t=this.graph.getView().getState(e);if(null!=t){this.editingCell=e,this.trigger=n,(this.textNode=null)!=t.text&&this.isHideLabel(t)&&(this.textNode=t.text.node,this.textNode.style.visibility="hidden");var a=this.graph.getView().scale,i=(a=mxUtils.getValue(t.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE)*a,mxUtils.getValue(t.style,mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY)),s=mxUtils.getValue(t.style,mxConstants.STYLE_FONTCOLOR,"black"),o=mxUtils.getValue(t.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),r=(mxUtils.getValue(t.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD,l=(mxUtils.getValue(t.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC,d=(mxUtils.getValue(t.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE;this.textarea.style.fontSize=Math.round(a)+"px",this.textarea.style.lineHeight=Math.round(a*mxConstants.LINE_HEIGHT)+"px",this.textarea.style.fontFamily=i,this.textarea.style.textAlign=o,this.textarea.style.color=s,this.textarea.style.fontWeight=r?"bold":"normal",this.textarea.style.fontStyle=l?"italic":"",this.textarea.style.textDecoration=d?"underline":"",this.textarea.style.overflow="auto",this.textarea.style.outline="none",this.bounds=a=this.getEditorBounds(t),this.textarea.style.left=a.x+"px",this.textarea.style.top=a.y+"px",this.textarea.style.width=a.width+"px",this.textarea.style.height=a.height+"px",this.textarea.style.zIndex=5,null==(t=this.getInitialValue(t,n))||0==t.length?(t=this.getEmptyLabelText(),this.clearOnChange=!0):this.clearOnChange=!1,this.setModified(!1),this.textarea.value=t,this.graph.container.appendChild(this.textarea),"none"!=this.textarea.style.display&&(this.autoSize&&(this.textDiv=this.createTextDiv(),document.body.appendChild(this.textDiv),this.resize()),this.textarea.focus(),this.textarea.select())}},mxCellEditor.prototype.createTextDiv=function(){var e=document.createElement("div"),n=e.style;return n.position="absolute",n.whiteSpace="nowrap",n.visibility="hidden",n.display=mxClient.IS_QUIRKS?"inline":"inline-block",n.zoom="1",n.verticalAlign="top",n.lineHeight=this.textarea.style.lineHeight,n.fontSize=this.textarea.style.fontSize,n.fontFamily=this.textarea.style.fontFamily,n.fontWeight=this.textarea.style.fontWeight,n.textAlign=this.textarea.style.textAlign,n.fontStyle=this.textarea.style.fontStyle,n.textDecoration=this.textarea.style.textDecoration,e},mxCellEditor.prototype.stopEditing=function(e){null!=this.editingCell&&(null!=this.textNode&&(this.textNode.style.visibility="visible",this.textNode=null),!e&&this.isModified()&&this.graph.labelChanged(this.editingCell,this.getCurrentValue(),this.trigger),null!=this.textDiv&&(document.body.removeChild(this.textDiv),this.textDiv=null),this.bounds=this.trigger=this.editingCell=null,this.textarea.blur(),this.textarea.parentNode.removeChild(this.textarea))},mxCellEditor.prototype.getInitialValue=function(e,n){return this.graph.getEditingValue(e.cell,n)},mxCellEditor.prototype.getCurrentValue=function(){return this.textarea.value.replace(/\r/g,"")},mxCellEditor.prototype.isHideLabel=function(e){return!0},mxCellEditor.prototype.getMinimumSize=function(e){var n=this.graph.getView().scale;return new mxRectangle(0,0,null==e.text?30:e.text.size*n+20,"left"==this.textarea.style.textAlign?120:40)},mxCellEditor.prototype.getEditorBounds=function(e){var n=this.graph.getModel().isEdge(e.cell),t=this.graph.getView().scale,a=(i=this.getMinimumSize(e)).width,i=i.height,s=parseInt(e.style[mxConstants.STYLE_SPACING]||2)*t,o=parseInt(e.style[mxConstants.STYLE_SPACING_TOP]||0)*t+s,r=parseInt(e.style[mxConstants.STYLE_SPACING_RIGHT]||0)*t+s,l=parseInt(e.style[mxConstants.STYLE_SPACING_BOTTOM]||0)*t+s;t=parseInt(e.style[mxConstants.STYLE_SPACING_LEFT]||0)*t+s,r=new mxRectangle(e.x,e.y,Math.max(a,e.width-t-r),Math.max(i,e.height-o-l));return n?(r.x=e.absoluteOffset.x,r.y=e.absoluteOffset.y,null!=e.text&&null!=e.text.boundingBox&&(0<e.text.boundingBox.x&&(r.x=e.text.boundingBox.x),0<e.text.boundingBox.y&&(r.y=e.text.boundingBox.y))):null!=e.text&&null!=e.text.boundingBox&&(r.x=Math.min(r.x,e.text.boundingBox.x),r.y=Math.min(r.y,e.text.boundingBox.y)),r.x+=t,r.y+=o,null!=e.text&&null!=e.text.boundingBox&&(n?(r.width=Math.max(a,e.text.boundingBox.width),r.height=Math.max(i,e.text.boundingBox.height)):(r.width=Math.max(r.width,e.text.boundingBox.width),r.height=Math.max(r.height,e.text.boundingBox.height))),this.graph.getModel().isVertex(e.cell)&&((n=mxUtils.getValue(e.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER))==mxConstants.ALIGN_LEFT?r.x-=e.width:n==mxConstants.ALIGN_RIGHT&&(r.x+=e.width),(n=mxUtils.getValue(e.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE))==mxConstants.ALIGN_TOP?r.y-=e.height:n==mxConstants.ALIGN_BOTTOM&&(r.y+=e.height)),r},mxCellEditor.prototype.getEmptyLabelText=function(e){return this.emptyLabelText},mxCellEditor.prototype.getEditingCell=function(){return this.editingCell},mxCellEditor.prototype.destroy=function(){null!=this.textarea&&(mxEvent.release(this.textarea),null!=this.textarea.parentNode&&this.textarea.parentNode.removeChild(this.textarea),this.textarea=null)},mxCellRenderer.prototype.defaultEdgeShape=mxConnector,mxCellRenderer.prototype.defaultVertexShape=mxRectangleShape,mxCellRenderer.prototype.defaultTextShape=mxText,mxCellRenderer.prototype.legacyControlPosition=!0,mxCellRenderer.prototype.defaultShapes={},mxCellRenderer.registerShape=function(e,n){mxCellRenderer.prototype.defaultShapes[e]=n},mxCellRenderer.registerShape(mxConstants.SHAPE_RECTANGLE,mxRectangleShape),mxCellRenderer.registerShape(mxConstants.SHAPE_ELLIPSE,mxEllipse),mxCellRenderer.registerShape(mxConstants.SHAPE_RHOMBUS,mxRhombus),mxCellRenderer.registerShape(mxConstants.SHAPE_CYLINDER,mxCylinder),mxCellRenderer.registerShape(mxConstants.SHAPE_CONNECTOR,mxConnector),mxCellRenderer.registerShape(mxConstants.SHAPE_ACTOR,mxActor),mxCellRenderer.registerShape(mxConstants.SHAPE_TRIANGLE,mxTriangle),mxCellRenderer.registerShape(mxConstants.SHAPE_HEXAGON,mxHexagon),mxCellRenderer.registerShape(mxConstants.SHAPE_CLOUD,mxCloud),mxCellRenderer.registerShape(mxConstants.SHAPE_LINE,mxLine),mxCellRenderer.registerShape(mxConstants.SHAPE_ARROW,mxArrow),mxCellRenderer.registerShape(mxConstants.SHAPE_DOUBLE_ELLIPSE,mxDoubleEllipse),mxCellRenderer.registerShape(mxConstants.SHAPE_SWIMLANE,mxSwimlane),mxCellRenderer.registerShape(mxConstants.SHAPE_IMAGE,mxImageShape),mxCellRenderer.registerShape(mxConstants.SHAPE_LABEL,mxLabel),mxCellRenderer.prototype.initialize=function(e,n){var t=e.view.graph.getModel();null!=e.view.graph.container&&null==e.shape&&e.cell!=e.view.currentRoot&&(t.isVertex(e.cell)||t.isEdge(e.cell))&&(this.createShape(e),null==e.shape||null!=n&&!n||(this.initializeShape(e),e.view.graph.ordered||t.isEdge(e.cell)?e.invalidOrder=!0:e.view.graph.keepEdgesInForeground&&null!=this.firstEdge&&(this.firstEdge.parentNode==e.shape.node.parentNode?this.insertState(e,this.firstEdge):this.firstEdge=null),e.shape.scale=e.view.scale,this.createCellOverlays(e),this.installListeners(e)))},mxCellRenderer.prototype.initializeShape=function(e){e.shape.init(e.view.getDrawPane())},mxCellRenderer.prototype.getPreviousStateInContainer=function(e,n){for(var t=null,a=e.view.graph,i=a.getModel(),s=e.cell,o=i.getParent(s);null!=o&&null==t;)t=this.findPreviousStateInContainer(a,o,s,n),s=o,o=i.getParent(s);return t},mxCellRenderer.prototype.findPreviousStateInContainer=function(e,n,t,a){var i=null,s=e.getModel();for(t=null!=t?n.getIndex(t)-1:s.getChildCount(n)-1;0<=t&&null==i;t--)i=this.findPreviousStateInContainer(e,s.getChildAt(n,t),null,a);return null!=i||(null==(i=e.view.getState(n))||null!=i.shape&&null!=i.shape.node&&i.shape.node.parentNode==a)||(i=null),i},mxCellRenderer.prototype.order=function(e){var n=e.shape.node.parentNode,t=this.getPreviousStateInContainer(e,n),a=n.firstChild;null!=t&&(a=t.shape.node,null!=t.text&&null!=t.text.node&&t.text.node.parentNode==n&&(a=t.text.node),a=a.nextSibling),this.insertState(e,a)},mxCellRenderer.prototype.orderEdge=function(e){var n=(t=e.view).graph.getModel();if(t.graph.keepEdgesInForeground)null!=this.firstEdge&&null!=this.firstEdge.parentNode&&this.firstEdge.parentNode==e.shape.node.parentNode||(this.firstEdge=e.shape.node);else if(t.graph.keepEdgesInBackground){var t,a=e.shape.node,i=a.parentNode;n=n.getParent(e.cell);null!=(i=null!=(t=t.getState(n))&&null!=t.shape&&null!=t.shape.node?t.shape.node.nextSibling:i.firstChild)&&i!=a&&this.insertState(e,i)}},mxCellRenderer.prototype.insertState=function(e,n){e.shape.node.parentNode.insertBefore(e.shape.node,n),null!=e.text&&null!=e.text.node&&e.text.node.parentNode==e.shape.node.parentNode&&e.shape.node.parentNode.insertBefore(e.text.node,e.shape.node.nextSibling)},mxCellRenderer.prototype.createShape=function(e){if(null!=e.style){var n=mxStencilRegistry.getStencil(e.style[mxConstants.STYLE_SHAPE]);null!=n?e.shape=new mxShape(n):(n=this.getShapeConstructor(e),e.shape=new n),e.shape.points=e.absolutePoints,e.shape.bounds=new mxRectangle(e.x,e.y,e.width,e.height),e.shape.dialect=e.view.graph.dialect,this.configureShape(e)}},mxCellRenderer.prototype.getShape=function(e){return null!=e?mxCellRenderer.prototype.defaultShapes[e]:null},mxCellRenderer.prototype.getShapeConstructor=function(e){var n=this.getShape(e.style[mxConstants.STYLE_SHAPE]);return null==n&&(n=e.view.graph.getModel().isEdge(e.cell)?this.defaultEdgeShape:this.defaultVertexShape),n},mxCellRenderer.prototype.configureShape=function(e){e.shape.apply(e),e.shape.image=e.view.graph.getImage(e),e.shape.indicatorShape=this.getShape(e.view.graph.getIndicatorShape(e)),e.shape.indicatorColor=e.view.graph.getIndicatorColor(e),e.shape.indicatorGradientColor=e.view.graph.getIndicatorGradientColor(e),e.shape.indicatorDirection=e.style[mxConstants.STYLE_INDICATOR_DIRECTION],e.shape.indicatorImage=e.view.graph.getIndicatorImage(e),this.postConfigureShape(e)},mxCellRenderer.prototype.postConfigureShape=function(e){null!=e.shape&&(this.resolveColor(e,"indicatorColor",mxConstants.STYLE_FILLCOLOR),this.resolveColor(e,"indicatorGradientColor",mxConstants.STYLE_GRADIENTCOLOR),this.resolveColor(e,"fill",mxConstants.STYLE_FILLCOLOR),this.resolveColor(e,"stroke",mxConstants.STYLE_STROKECOLOR),this.resolveColor(e,"gradient",mxConstants.STYLE_GRADIENTCOLOR))},mxCellRenderer.prototype.resolveColor=function(e,n,t){var a=e.shape[n],i=e.view.graph,s=null;"inherit"==a?s=i.model.getParent(e.cell):"swimlane"==a?(s=null!=i.model.getTerminal(e.cell,!1)?i.model.getTerminal(e.cell,!1):e.cell,s=i.getSwimlane(s),t=i.swimlaneIndicatorColorAttribute):"indicated"==a&&(e.shape[n]=e.shape.indicatorColor),null!=s&&(a=i.getView().getState(s),(e.shape[n]=null)!=a&&(e.shape[n]=null!=a.shape&&"indicatorColor"!=n?a.shape[n]:a.style[t]))},mxCellRenderer.prototype.getLabelValue=function(e){return e.view.graph.getLabel(e.cell)},mxCellRenderer.prototype.createLabel=function(t,e){var a=t.view.graph;if(a.getModel().isEdge(t.cell),0<t.style[mxConstants.STYLE_FONTSIZE]||null==t.style[mxConstants.STYLE_FONTSIZE]){var n=a.isHtmlLabel(t.cell)||null!=e&&mxUtils.isNode(e);t.text=new this.defaultTextShape(e,new mxRectangle,t.style[mxConstants.STYLE_ALIGN]||mxConstants.ALIGN_CENTER,a.getVerticalAlign(t),t.style[mxConstants.STYLE_FONTCOLOR],t.style[mxConstants.STYLE_FONTFAMILY],t.style[mxConstants.STYLE_FONTSIZE],t.style[mxConstants.STYLE_FONTSTYLE],t.style[mxConstants.STYLE_SPACING],t.style[mxConstants.STYLE_SPACING_TOP],t.style[mxConstants.STYLE_SPACING_RIGHT],t.style[mxConstants.STYLE_SPACING_BOTTOM],t.style[mxConstants.STYLE_SPACING_LEFT],t.style[mxConstants.STYLE_HORIZONTAL],t.style[mxConstants.STYLE_LABEL_BACKGROUNDCOLOR],t.style[mxConstants.STYLE_LABEL_BORDERCOLOR],a.isWrapping(t.cell)&&a.isHtmlLabel(t.cell),a.isLabelClipped(t.cell),t.style[mxConstants.STYLE_OVERFLOW],t.style[mxConstants.STYLE_LABEL_PADDING]),t.text.opacity=mxUtils.getValue(t.style,mxConstants.STYLE_TEXT_OPACITY,100),t.text.dialect=n?mxConstants.DIALECT_STRICTHTML:t.view.graph.dialect,t.text.state=t,this.initializeLabel(t);var i=!1,s=function(e){var n=t;return(mxClient.IS_TOUCH||i)&&(n=mxEvent.getClientX(e),e=mxEvent.getClientY(e),e=mxUtils.convertPoint(a.container,n,e),n=a.view.getState(a.getCellAt(e.x,e.y))),n};mxEvent.addGestureListeners(t.text.node,mxUtils.bind(this,function(e){this.isLabelEvent(t,e)&&(a.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e,t)),i=a.dialect!=mxConstants.DIALECT_SVG&&"IMG"==mxEvent.getSource(e).nodeName)}),mxUtils.bind(this,function(e){this.isLabelEvent(t,e)&&a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,s(e)))}),mxUtils.bind(this,function(e){this.isLabelEvent(t,e)&&(a.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e,s(e))),i=!1)})),mxEvent.addListener(t.text.node,"dblclick",mxUtils.bind(this,function(e){this.isLabelEvent(t,e)&&(a.dblClick(e,t.cell),mxEvent.consume(e))}))}},mxCellRenderer.prototype.initializeLabel=function(e){var n=e.view.graph;e.text.dialect!=mxConstants.DIALECT_SVG&&(mxClient.IS_SVG&&mxClient.NO_FO?e.text.init(n.container):mxUtils.isVml(e.view.getDrawPane())&&(null!=e.shape.label?e.text.init(e.shape.label):e.text.init(e.shape.node))),null==e.text.node&&(e.text.init(e.view.getDrawPane()),null!=e.shape&&null!=e.text&&e.shape.node.parentNode.insertBefore(e.text.node,e.shape.node.nextSibling))},mxCellRenderer.prototype.createCellOverlays=function(e){var n=e.view.graph.getCellOverlays(e.cell),t=null;if(null!=n){t=new mxDictionary;for(var a=0;a<n.length;a++){var i=null!=e.overlays?e.overlays.remove(n[a]):null;null==i&&((i=new mxImageShape(new mxRectangle,n[a].image.src)).dialect=e.view.graph.dialect,i.preserveImageAspect=!1,i.overlay=n[a],this.initializeOverlay(e,i),this.installCellOverlayListeners(e,n[a],i),null!=n[a].cursor&&(i.node.style.cursor=n[a].cursor)),t.put(n[a],i)}}null!=e.overlays&&e.overlays.visit(function(e,n){n.destroy()}),e.overlays=t},mxCellRenderer.prototype.initializeOverlay=function(e,n){n.init(e.view.getOverlayPane())},mxCellRenderer.prototype.installCellOverlayListeners=function(n,t,e){var a=n.view.graph;mxEvent.addListener(e.node,"click",function(e){a.isEditing()&&a.stopEditing(!a.isInvokesStopCellEditing()),t.fireEvent(new mxEventObject(mxEvent.CLICK,"event",e,"cell",n.cell))}),mxEvent.addGestureListeners(e.node,function(e){mxEvent.consume(e)},function(e){a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,n))}),mxClient.IS_TOUCH&&mxEvent.addListener(e.node,"touchend",function(e){t.fireEvent(new mxEventObject(mxEvent.CLICK,"event",e,"cell",n.cell))})},mxCellRenderer.prototype.createControl=function(t){var a=t.view.graph,e=a.getFoldingImage(t);if(a.foldingEnabled&&null!=e){if(null==t.control){var n=new mxRectangle(0,0,e.width,e.height);t.control=new mxImageShape(n,e.src),t.control.preserveImageAspect=!1,t.control.dialect=a.dialect,this.initControl(t,t.control,!0,function(e){if(a.isEnabled()){var n=!a.isCellCollapsed(t.cell);a.foldCells(n,!1,[t.cell]),mxEvent.consume(e)}})}}else null!=t.control&&(t.control.destroy(),t.control=null)},mxCellRenderer.prototype.initControl=function(n,e,t,a){var i=n.view.graph;return i.isHtmlLabel(n.cell)&&mxClient.NO_FO&&i.dialect==mxConstants.DIALECT_SVG?(e.dialect=mxConstants.DIALECT_PREFERHTML,e.init(i.container),e.node.style.zIndex=1):e.init(n.view.getOverlayPane()),e=e.innerNode||e.node,a&&(i.isEnabled()&&(e.style.cursor="pointer"),mxEvent.addListener(e,"click",a)),t&&mxEvent.addGestureListeners(e,function(e){i.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e,n)),mxEvent.consume(e)},function(e){i.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,n))}),e},mxCellRenderer.prototype.isShapeEvent=function(e,n){return!0},mxCellRenderer.prototype.isLabelEvent=function(e,n){return!0},mxCellRenderer.prototype.installListeners=function(t){var a=t.view.graph,n=function(e){var n=t;return(a.dialect!=mxConstants.DIALECT_SVG&&"IMG"==mxEvent.getSource(e).nodeName||mxClient.IS_TOUCH)&&(n=mxEvent.getClientX(e),e=mxEvent.getClientY(e),e=mxUtils.convertPoint(a.container,n,e),n=a.view.getState(a.getCellAt(e.x,e.y))),n},i=!1;mxEvent.addListener(t.shape.node,"gesturestart",mxUtils.bind(this,function(e){a.lastTouchTime=0,i=!0,mxEvent.consume(e)})),mxEvent.addGestureListeners(t.shape.node,mxUtils.bind(this,function(e){this.isShapeEvent(t,e)&&!i?a.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e,null!=t.shape&&mxEvent.getSource(e)==t.shape.content?null:t)):i&&mxEvent.consume(e)}),mxUtils.bind(this,function(e){this.isShapeEvent(t,e)&&!i?a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,null!=t.shape&&mxEvent.getSource(e)==t.shape.content?null:n(e))):i&&mxEvent.consume(e)}),mxUtils.bind(this,function(e){this.isShapeEvent(t,e)&&!i?a.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e,null!=t.shape&&mxEvent.getSource(e)==t.shape.content?null:n(e))):i&&mxEvent.consume(e)}));var s=mxClient.IS_TOUCH?"gestureend":"dblclick";mxEvent.addListener(t.shape.node,s,mxUtils.bind(this,function(e){i=!1,"gestureend"==s?(a.lastTouchTime=0,a.gestureEnabled&&(a.handleGesture(t,e),mxEvent.consume(e))):this.isShapeEvent(t,e)&&(a.dblClick(e,null!=t.shape&&mxEvent.getSource(e)==t.shape.content?null:t.cell),mxEvent.consume(e))}))},mxCellRenderer.prototype.redrawLabel=function(e,n){var t=this.getLabelValue(e);if(null==e.text&&null!=t&&(mxUtils.isNode(t)||0<t.length)?this.createLabel(e,t):null==e.text||null!=t&&0!=t.length||(e.text.destroy(),e.text=null),null!=e.text){var a=(i=e.view.graph).isWrapping(e.cell),i=i.isLabelClipped(e.cell),s=this.getLabelBounds(e);!n&&e.text.value==t&&e.text.isWrapping==a&&e.text.isClipping==i&&e.text.scale==e.view.scale&&e.text.bounds.equals(s)||(e.text.value=t,e.text.bounds=s,e.text.scale=this.getTextScale(e),e.text.isWrapping=a,e.text.isClipping=i,e.text.redraw())}},mxCellRenderer.prototype.getTextScale=function(e){return e.view.scale},mxCellRenderer.prototype.getLabelBounds=function(e){var n=e.view.graph,t=e.view.scale,a=n.getModel().isEdge(e.cell),i=new mxRectangle(e.absoluteOffset.x,e.absoluteOffset.y);return e.text.updateMargin(),a?(a=e.text.getSpacing(),i.x+=a.x*t,i.y+=a.y*t,null!=(n=n.getCellGeometry(e.cell))&&(i.width=Math.max(0,e.text.margin.x*n.width*t-e.text.spacingLeft*t-e.text.spacingRight*t),i.height=Math.max(0,e.text.margin.y*n.height*t-e.text.spacingTop*t-e.text.spacingBottom*t))):(e.text.isPaintBoundsInverted()&&(a=i.x,i.x=i.y,i.y=a),i.x+=e.x,i.y+=e.y,i.width=Math.max(1,e.width),i.height=Math.max(1,e.height),n.isSwimlane(e.cell)&&(0<(n=n.getStartSize(e.cell)).width?(a=Math.min(i.width,n.width*t),e.shape.flipH&&(i.x+=i.width-a),i.width=a):0<n.height&&(a=Math.min(i.height,n.height*t),e.shape.flipV&&(i.y+=i.height-a),i.height=a)),this.rotateLabelBounds(e,i)),i},mxCellRenderer.prototype.rotateLabelBounds=function(e,n){if(e.text.isPaintBoundsInverted()){var t=(e.width-e.height)/2;n.x+=t,n.y-=t,t=n.width,n.width=n.height,n.height=t}if(n.x-=e.text.margin.x*n.width,n.y-=e.text.margin.y*n.height,"fill"!=e.style[mxConstants.STYLE_OVERFLOW]){t=e.view.scale;var a=e.text.getSpacing();n.x+=a.x*t,n.y+=a.y*t,n.width=Math.max(0,n.width-e.text.spacingLeft*t-e.text.spacingRight*t),n.height=Math.max(0,n.height-e.text.spacingTop*t-e.text.spacingBottom*t)}var i=e.text.getTextRotation();0!=i&&null!=e&&e.view.graph.model.isVertex(e.cell)&&(t=e.getCenterX(),a=e.getCenterY(),n.x!=t||n.y!=a)&&(i*=Math.PI/180,pt=mxUtils.getRotatedPoint(new mxPoint(n.x,n.y),Math.cos(i),Math.sin(i),new mxPoint(t,a)),n.x=pt.x,n.y=pt.y)},mxCellRenderer.prototype.redrawCellOverlays=function(s,o){if(this.createCellOverlays(s),null!=s.overlays){var r=mxUtils.mod(mxUtils.getValue(s.style,mxConstants.STYLE_ROTATION,0),90),e=mxUtils.toRadians(r),l=Math.cos(e),d=Math.sin(e);s.overlays.visit(function(e,n){var t=n.overlay.getBounds(s);if(!s.view.graph.getModel().isEdge(s.cell)&&null!=s.shape&&0!=r){var a=t.getCenterX(),i=t.getCenterY();a=(i=mxUtils.getRotatedPoint(new mxPoint(a,i),l,d,new mxPoint(s.getCenterX(),s.getCenterY()))).x,i=i.y;t.x=Math.round(a-t.width/2),t.y=Math.round(i-t.height/2)}!o&&null!=n.bounds&&n.scale==s.view.scale&&n.bounds.equals(t)||(n.bounds=t,n.scale=s.view.scale,n.redraw())})}},mxCellRenderer.prototype.redrawControl=function(e,n){if(null!=e.control){var t=this.getControlBounds(e),a=this.legacyControlPosition?mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION,0):e.shape.getTextRotation(),i=e.view.scale;!n&&e.control.scale==i&&e.control.bounds.equals(t)&&e.control.rotation==a||(e.control.rotation=a,e.control.bounds=t,e.control.scale=i,e.control.redraw())}},mxCellRenderer.prototype.getControlBounds=function(e){if(null==e.control)return null;var n=e.control.scale,t=e.control.bounds.width/n,a=(n=e.control.bounds.height/n,e.view.scale),i=e.getCenterX(),s=e.getCenterY();if(!e.view.graph.getModel().isEdge(e.cell)&&(i=e.x+t*a,s=e.y+n*a,null!=e.shape)){var o=e.shape.getShapeRotation();if(this.legacyControlPosition)o=mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION,0);else if(e.shape.isPaintBoundsInverted()){var r=(e.width-e.height)/2;i=i+r,s=s-r}0!=o&&(r=mxUtils.toRadians(o),o=Math.cos(r),r=Math.sin(r),i=(s=mxUtils.getRotatedPoint(new mxPoint(i,s),o,r,new mxPoint(e.getCenterX(),e.getCenterY()))).x,s=s.y)}return e.view.graph.getModel().isEdge(e.cell),new mxRectangle(Math.round(i-t/2*a),Math.round(s-n/2*a),Math.round(t*a),Math.round(n*a))},mxCellRenderer.prototype.redraw=function(e,n,t){if(null!=e.shape){var a=!1;e.view.graph.getModel().isEdge(e.cell),reconfigure=null!=n&&n,this.createControl(e),(e.orderChanged||e.invalidOrder)&&(e.view.graph.ordered?this.order(e):this.orderEdge(e)),!e.orderChanged&&mxUtils.equalEntries(e.shape.style,e.style)||(this.configureShape(e),n=!0),delete e.invalidOrder,delete e.orderChanged,!n&&null!=e.shape.bounds&&e.shape.scale==e.view.scale&&e.shape.bounds.equals(e)&&mxUtils.equalPoints(e.shape.points,e.absolutePoints)||(a=!0,e.shape.points=null!=e.absolutePoints?e.absolutePoints.slice():null,e.shape.bounds=new mxRectangle(e.x,e.y,e.width,e.height),e.shape.scale=e.view.scale,null==t||t?e.shape.redraw():e.shape.updateBoundingBox()),(null==t||t)&&(this.redrawLabel(e,a),this.redrawCellOverlays(e,a),this.redrawControl(e,a))}},mxCellRenderer.prototype.destroy=function(e){null!=e.shape&&(null!=e.text&&(e.text.destroy(),e.text=null),null!=e.overlays&&(e.overlays.visit(function(e,n){n.destroy()}),e.overlays=null),null!=e.control&&(e.control.destroy(),e.control=null),e.shape.destroy(),e.shape=null)};var mxEdgeStyle={EntityRelation:function(e,n,t,a,i){var s=e.view,o=s.graph;a=mxUtils.getValue(e.style,mxConstants.STYLE_SEGMENT,mxConstants.ENTITY_SEGMENT)*s.scale;var r=(d=e.absolutePoints)[0],l=d[d.length-1],d=!1;if(null!=r)(n=new mxCellState).x=r.x,n.y=r.y;else{if(null==n)return;var c=mxUtils.getPortConstraints(n,e,!0,mxConstants.DIRECTION_MASK_NONE);c!=mxConstants.DIRECTION_MASK_NONE?d=c==mxConstants.DIRECTION_MASK_WEST:(r=o.getCellGeometry(n.cell)).relative?d=r.x<=.5:null!=t&&(d=t.x+t.width<n.x)}r=!0,null!=l?((t=new mxCellState).x=l.x,t.y=l.y):null!=t&&((c=mxUtils.getPortConstraints(t,e,!1,mxConstants.DIRECTION_MASK_NONE))!=mxConstants.DIRECTION_MASK_NONE?r=c==mxConstants.DIRECTION_MASK_WEST:(e=o.getCellGeometry(t.cell)).relative?r=e.x<=.5:null!=n&&(r=n.x+n.width<t.x)),null!=n&&null!=t&&(e=d?n.x:n.x+n.width,n=s.getRoutingCenterY(n),o=r?t.x:t.x+t.width,t=s.getRoutingCenterY(t),s=new mxPoint(e+(d?-a:a),n),l=new mxPoint(o+(r?-a:a),t),d==r?(a=d?Math.min(e,o)-a:Math.max(e,o)+a,i.push(new mxPoint(a,n)),i.push(new mxPoint(a,t))):(s.x<l.x==d?(a=n+(t-n)/2,i.push(s),i.push(new mxPoint(s.x,a)),i.push(new mxPoint(l.x,a))):i.push(s),i.push(l)))},Loop:function(e,n,t,a,i){if(null!=n){var s=(t=e.view).graph;null!=(a=null!=a&&0<a.length?a[0]:null)&&(a=t.transformControlPoint(e,a),mxUtils.contains(n,a.x,a.y)&&(a=null));var o=0,r=0,l=0,d=0;s=mxUtils.getValue(e.style,mxConstants.STYLE_SEGMENT,s.gridSize)*t.scale;(e=mxUtils.getValue(e.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_WEST))==mxConstants.DIRECTION_NORTH||e==mxConstants.DIRECTION_SOUTH?(o=t.getRoutingCenterX(n),r=s):(l=t.getRoutingCenterY(n),d=s),null==a||a.x<n.x||a.x>n.x+n.width?null!=a?(o=a.x,d=Math.max(Math.abs(l-a.y),d)):e==mxConstants.DIRECTION_NORTH?l=n.y-2*r:e==mxConstants.DIRECTION_SOUTH?l=n.y+n.height+2*r:o=e==mxConstants.DIRECTION_EAST?n.x-2*d:n.x+n.width+2*d:null!=a&&(o=t.getRoutingCenterX(n),r=Math.max(Math.abs(o-a.x),d),l=a.y,d=0),i.push(new mxPoint(o-r,l-d)),i.push(new mxPoint(o+r,l+d))}},ElbowConnector:function(e,n,t,a,i){var s=null!=a&&0<a.length?a[0]:null,o=!1,r=!1;if(null!=n&&null!=t)if(null!=s){var l=Math.min(n.x,t.x),d=Math.max(n.x+n.width,t.x+t.width),c=(r=Math.min(n.y,t.y),Math.max(n.y+n.height,t.y+t.height));o=(s=e.view.transformControlPoint(e,s)).y<r||s.y>c,r=s.x<l||s.x>d}else(o=(l=Math.max(n.x,t.x))==(d=Math.min(n.x+n.width,t.x+t.width)))||(r=(r=Math.max(n.y,t.y))==(c=Math.min(n.y+n.height,t.y+t.height)));r||!o&&e.style[mxConstants.STYLE_ELBOW]!=mxConstants.ELBOW_VERTICAL?mxEdgeStyle.SideToSide(e,n,t,a,i):mxEdgeStyle.TopToBottom(e,n,t,a,i)},SideToSide:function(e,n,t,a,i){var s=e.view;a=null!=a&&0<a.length?a[0]:null;var o=(r=e.absolutePoints)[0],r=r[r.length-1];null!=a&&(a=s.transformControlPoint(e,a)),null!=o&&((n=new mxCellState).x=o.x,n.y=o.y),null!=r&&((t=new mxCellState).x=r.x,t.y=r.y),null!=n&&null!=t&&(e=Math.max(n.x,t.x),o=Math.min(n.x+n.width,t.x+t.width),e=null!=a?a.x:o+(e-o)/2,o=s.getRoutingCenterY(n),s=s.getRoutingCenterY(t),null!=a&&(a.y>=n.y&&a.y<=n.y+n.height&&(o=a.y),a.y>=t.y&&a.y<=t.y+t.height&&(s=a.y)),!mxUtils.contains(t,e,o)&&!mxUtils.contains(n,e,o)&&i.push(new mxPoint(e,o)),!mxUtils.contains(t,e,s)&&!mxUtils.contains(n,e,s)&&i.push(new mxPoint(e,s)),1==i.length&&(null!=a?!mxUtils.contains(t,e,a.y)&&!mxUtils.contains(n,e,a.y)&&i.push(new mxPoint(e,a.y)):(s=Math.max(n.y,t.y),n=Math.min(n.y+n.height,t.y+t.height),i.push(new mxPoint(e,s+(n-s)/2)))))},TopToBottom:function(e,n,t,a,i){var s=e.view;a=null!=a&&0<a.length?a[0]:null;var o=(r=e.absolutePoints)[0],r=r[r.length-1];null!=a&&(a=s.transformControlPoint(e,a)),null!=o&&((n=new mxCellState).x=o.x,n.y=o.y),null!=r&&((t=new mxCellState).x=r.x,t.y=r.y),null!=n&&null!=t&&(o=Math.max(n.y,t.y),r=Math.min(n.y+n.height,t.y+t.height),e=s.getRoutingCenterX(n),null!=a&&a.x>=n.x&&a.x<=n.x+n.width&&(e=a.x),o=null!=a?a.y:r+(o-r)/2,!mxUtils.contains(t,e,o)&&!mxUtils.contains(n,e,o)&&i.push(new mxPoint(e,o)),e=null!=a&&a.x>=t.x&&a.x<=t.x+t.width?a.x:s.getRoutingCenterX(t),!mxUtils.contains(t,e,o)&&!mxUtils.contains(n,e,o)&&i.push(new mxPoint(e,o)),1==i.length&&(null!=a&&1==i.length?!mxUtils.contains(t,a.x,o)&&!mxUtils.contains(n,a.x,o)&&i.push(new mxPoint(a.x,o)):(s=Math.max(n.x,t.x),n=Math.min(n.x+n.width,t.x+t.width),i.push(new mxPoint(s+(n-s)/2,o)))))},SegmentConnector:function(e,n,t,a,i){var s=e.absolutePoints,o=!0,r=null,l=s[0];null==l&&null!=n?l=new mxPoint(e.view.getRoutingCenterX(n),e.view.getRoutingCenterY(n)):null!=l&&(l=l.clone());var d=s.length-1;if(null!=a&&0<a.length){r=e.view.transformControlPoint(e,a[0]);for(var c=n,m=s[0],u=!1,p=!1,g=(u=r,a.length),v=0;v<2;v++){var h=null!=m&&m.x==u.x,f=null!=m&&m.y==u.y,b=null!=c&&u.y>=c.y&&u.y<=c.y+c.height;c=null!=c&&u.x>=c.x&&u.x<=c.x+c.width,u=f||null==m&&b,p=h||null==m&&c;if(null!=m&&!f&&!h&&(b||c)){o=!b;break}if(p||u){o=u,1==v&&(o=0==a.length%2?u:p);break}c=t,m=s[d],u=e.view.transformControlPoint(e,a[g-1])}for(o&&(null!=s[0]&&s[0].y!=r.y||null==s[0]&&null!=n&&(r.y<n.y||r.y>n.y+n.height))?i.push(new mxPoint(l.x,r.y)):!o&&(null!=s[0]&&s[0].x!=r.x||null==s[0]&&null!=n&&(r.x<n.x||r.x>n.x+n.width))&&i.push(new mxPoint(r.x,l.y)),o?l.y=r.y:l.x=r.x,v=0;v<a.length;v++)o=!o,r=e.view.transformControlPoint(e,a[v]),o?l.y=r.y:l.x=r.x,i.push(l.clone())}else r=l,o=!0;if(null==(l=s[d])&&null!=t&&(l=new mxPoint(e.view.getRoutingCenterX(t),e.view.getRoutingCenterY(t))),o&&(null!=s[d]&&s[d].y!=r.y||null==s[d]&&null!=t&&(r.y<t.y||r.y>t.y+t.height))?i.push(new mxPoint(l.x,r.y)):!o&&(null!=s[d]&&s[d].x!=r.x||null==s[d]&&null!=t&&(r.x<t.x||r.x>t.x+t.width))&&i.push(new mxPoint(r.x,l.y)),null==s[0]&&null!=n)for(;1<i.length&&mxUtils.contains(n,i[1].x,i[1].y);)i=i.splice(1,1);if(null==s[d]&&null!=t)for(;1<i.length&&mxUtils.contains(t,i[i.length-1].x,i[i.length-1].y);)i=i.splice(i.length-1,1)},orthBuffer:10,dirVectors:[[-1,0],[0,-1],[1,0],[0,1],[-1,0],[0,-1],[1,0]],wayPoints1:[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],routePatterns:[[[513,2308,2081,2562],[513,1090,514,2184,2114,2561],[513,1090,514,2564,2184,2562],[513,2308,2561,1090,514,2568,2308]],[[514,1057,513,2308,2081,2562],[514,2184,2114,2561],[514,2184,2562,1057,513,2564,2184],[514,1057,513,2568,2308,2561]],[[1090,514,1057,513,2308,2081,2562],[2114,2561],[1090,2562,1057,513,2564,2184],[1090,514,1057,513,2308,2561,2568]],[[2081,2562],[1057,513,1090,514,2184,2114,2561],[1057,513,1090,514,2184,2562,2564],[1057,2561,1090,514,2568,2308]]],inlineRoutePatterns:[[null,[2114,2568],null,null],[null,[514,2081,2114,2568],null,null],[null,[2114,2561],null,null],[[2081,2562],[1057,2114,2568],[2184,2562],null]],vertexSeperations:[],limits:[[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0]],LEFT_MASK:32,TOP_MASK:64,RIGHT_MASK:128,BOTTOM_MASK:256,LEFT:1,TOP:2,RIGHT:4,BOTTOM:8,SIDE_MASK:480,CENTER_MASK:512,SOURCE_MASK:1024,TARGET_MASK:2048,VERTEX_MASK:3072,OrthConnector:function(e,n,t,a,i){var s=e.view.graph,o=null!=n&&s.getModel().isEdge(n.cell);s=null!=t&&s.getModel().isEdge(t.cell);if(null!=a&&0<a.length||o||s)mxEdgeStyle.SegmentConnector(e,n,t,a,i);else{var r=(a=e.absolutePoints)[0],l=a[a.length-1];a=null!=n?n.x:r.x;o=null!=n?n.y:r.y;var d=null!=n?n.width:1,c=null!=n?n.height:1,m=null!=t?t.x:l.x,u=null!=t?t.y:l.y,p=null!=t?t.width:1,g=null!=t?t.height:1,v=(s=e.view.scale*mxEdgeStyle.orthBuffer,[mxConstants.DIRECTION_MASK_ALL,mxConstants.DIRECTION_MASK_ALL]);for(null!=n&&(v[0]=mxUtils.getPortConstraints(n,e,!0,mxConstants.DIRECTION_MASK_ALL)),null!=t&&(v[1]=mxUtils.getPortConstraints(t,e,!1,mxConstants.DIRECTION_MASK_ALL)),e=[0,0],a=[[a,o,d,c],[m,u,p,g]],d=0;d<2;d++)mxEdgeStyle.limits[d][1]=a[d][0]-s,mxEdgeStyle.limits[d][2]=a[d][1]-s,mxEdgeStyle.limits[d][4]=a[d][0]+a[d][2]+s,mxEdgeStyle.limits[d][8]=a[d][1]+a[d][3]+s;for(d=a[0][0]+a[0][2]/2-(a[1][0]+a[1][2]/2),c=a[0][1]+a[0][3]/2-(a[1][1]+a[1][3]/2),d<(o=0)?o=c<0?2:1:c<=0&&(o=3,0==d&&(o=2)),(c=null)!=n&&(c=r),n=[[.5,.5],[.5,.5]],d=0;d<2;d++)null!=c&&(n[d][0]=(c.x-a[d][0])/a[d][2],n[d][0]<.01?e[d]=mxConstants.DIRECTION_MASK_WEST:.99<n[d][0]&&(e[d]=mxConstants.DIRECTION_MASK_EAST),n[d][1]=(c.y-a[d][1])/a[d][3],n[d][1]<.01?e[d]=mxConstants.DIRECTION_MASK_NORTH:.99<n[d][1]&&(e[d]=mxConstants.DIRECTION_MASK_SOUTH)),(c=null)!=t&&(c=l);for(d=a[0][1]-(a[1][1]+a[1][3]),c=a[0][0]-(a[1][0]+a[1][2]),m=a[1][1]-(a[0][1]+a[0][3]),u=a[1][0]-(a[0][0]+a[0][2]),mxEdgeStyle.vertexSeperations[1]=Math.max(c-2*s,0),mxEdgeStyle.vertexSeperations[2]=Math.max(d-2*s,0),mxEdgeStyle.vertexSeperations[4]=Math.max(m-2*s,0),mxEdgeStyle.vertexSeperations[3]=Math.max(u-2*s,0),t=[],l=[],(r=[])[0]=u<=c?mxConstants.DIRECTION_MASK_WEST:mxConstants.DIRECTION_MASK_EAST,l[0]=m<=d?mxConstants.DIRECTION_MASK_NORTH:mxConstants.DIRECTION_MASK_SOUTH,r[1]=mxUtils.reversePortConstraints(r[0]),l[1]=mxUtils.reversePortConstraints(l[0]),c=u<=c?c:u,m=m<=d?d:m,p=!(u=[[0,0],[0,0]]),d=0;d<2;d++)0==e[d]&&(0==(r[d]&v[d])&&(r[d]=mxUtils.reversePortConstraints(r[d])),0==(l[d]&v[d])&&(l[d]=mxUtils.reversePortConstraints(l[d])),u[d][0]=l[d],u[d][1]=r[d]);for(2*s<m&&2*s<c&&(0<(r[0]&v[0])&&0<(l[1]&v[1])?(u[0][0]=r[0],u[0][1]=l[0],u[1][0]=l[1],u[1][1]=r[1],p=!0):0<(l[0]&v[0])&&0<(r[1]&v[1])&&(u[0][0]=l[0],u[0][1]=r[0],u[1][0]=r[1],u[1][1]=l[1],p=!0)),2*s<m&&!p&&(u[0][0]=l[0],u[0][1]=r[0],u[1][0]=l[1],u[1][1]=r[1],p=!0),2*s<c&&!p&&(u[0][0]=r[0],u[0][1]=l[0],u[1][0]=r[1],u[1][1]=l[1]),d=0;d<2;d++)0==e[d]&&(0==(u[d][0]&v[d])&&(u[d][0]=u[d][1]),t[d]=u[d][0]&v[d],t[d]|=(u[d][1]&v[d])<<8,t[d]|=(u[1-d][d]&v[d])<<16,t[d]|=(u[1-d][1-d]&v[d])<<24,0==(15&t[d])&&(t[d]<<=8),0==(3840&t[d])&&(t[d]=15&t[d]|t[d]>>8),0==(983040&t[d])&&(t[d]=65535&t[d]|(251658240&t[d])>>8),e[d]=15&t[d],v[d]==mxConstants.DIRECTION_MASK_WEST||v[d]==mxConstants.DIRECTION_MASK_NORTH||v[d]==mxConstants.DIRECTION_MASK_EAST||v[d]==mxConstants.DIRECTION_MASK_SOUTH)&&(e[d]=v[d]);switch(d=e[0]==mxConstants.DIRECTION_MASK_EAST?3:e[0],v=e[1]==mxConstants.DIRECTION_MASK_EAST?3:e[1],(d-=o)<1&&(d+=4),(v-=o)<1&&(v+=4),v=mxEdgeStyle.routePatterns[d-1][v-1],mxEdgeStyle.wayPoints1[0][0]=a[0][0],mxEdgeStyle.wayPoints1[0][1]=a[0][1],e[0]){case mxConstants.DIRECTION_MASK_WEST:mxEdgeStyle.wayPoints1[0][0]-=s,mxEdgeStyle.wayPoints1[0][1]+=n[0][1]*a[0][3];break;case mxConstants.DIRECTION_MASK_SOUTH:mxEdgeStyle.wayPoints1[0][0]+=n[0][0]*a[0][2],mxEdgeStyle.wayPoints1[0][1]+=a[0][3]+s;break;case mxConstants.DIRECTION_MASK_EAST:mxEdgeStyle.wayPoints1[0][0]+=a[0][2]+s,mxEdgeStyle.wayPoints1[0][1]+=n[0][1]*a[0][3];break;case mxConstants.DIRECTION_MASK_NORTH:mxEdgeStyle.wayPoints1[0][0]+=n[0][0]*a[0][2],mxEdgeStyle.wayPoints1[0][1]-=s}for(r=t=(s=0)<(e[0]&(mxConstants.DIRECTION_MASK_EAST|mxConstants.DIRECTION_MASK_WEST))?0:1,d=l=0;d<v.length;d++){g=(l=15&v[d])==mxConstants.DIRECTION_MASK_EAST?3:l,4<(g+=o)&&(g-=4),c=mxEdgeStyle.dirVectors[g-1],(l=0<g%2?0:1)!=t&&(s++,mxEdgeStyle.wayPoints1[s][0]=mxEdgeStyle.wayPoints1[s-1][0],mxEdgeStyle.wayPoints1[s][1]=mxEdgeStyle.wayPoints1[s-1][1]);var h=0<(v[d]&mxEdgeStyle.TARGET_MASK);p=0<(v[d]&mxEdgeStyle.SOURCE_MASK);15<(m=(m=(v[d]&mxEdgeStyle.SIDE_MASK)>>5)<<o)&&(m>>=4),u=0<(v[d]&mxEdgeStyle.CENTER_MASK),(p||h)&&m<9?(g=0,p=p?0:1,g=u&&0==l?a[p][0]+n[p][0]*a[p][2]:u?a[p][1]+n[p][1]*a[p][3]:mxEdgeStyle.limits[p][m],0==l?0<(m=(g-mxEdgeStyle.wayPoints1[s][0])*c[0])&&(mxEdgeStyle.wayPoints1[s][0]+=c[0]*m):0<(m=(g-mxEdgeStyle.wayPoints1[s][1])*c[1])&&(mxEdgeStyle.wayPoints1[s][1]+=c[1]*m)):u&&(mxEdgeStyle.wayPoints1[s][0]+=c[0]*Math.abs(mxEdgeStyle.vertexSeperations[g]/2),mxEdgeStyle.wayPoints1[s][1]+=c[1]*Math.abs(mxEdgeStyle.vertexSeperations[g]/2)),0<s&&mxEdgeStyle.wayPoints1[s][l]==mxEdgeStyle.wayPoints1[s-1][l]?s--:t=l}for(d=0;d<=s&&(d!=s||((0<(e[1]&(mxConstants.DIRECTION_MASK_EAST|mxConstants.DIRECTION_MASK_WEST))?0:1)==r?0:1)==(s+1)%2);d++)i.push(new mxPoint(mxEdgeStyle.wayPoints1[d][0],mxEdgeStyle.wayPoints1[d][1]))}},getRoutePattern:function(e,n,t,a){var i=e[0]==mxConstants.DIRECTION_MASK_EAST?3:e[0];return e=e[1]==mxConstants.DIRECTION_MASK_EAST?3:e[1],(i-=n)<1&&(i+=4),(e-=n)<1&&(e+=4),n=routePatterns[i-1][e-1],0!=t&&0!=a||null!=inlineRoutePatterns[i-1][e-1]&&(n=inlineRoutePatterns[i-1][e-1]),n}},mxStyleRegistry={values:[],putValue:function(e,n){mxStyleRegistry.values[e]=n},getValue:function(e){return mxStyleRegistry.values[e]},getName:function(e){for(var n in mxStyleRegistry.values)if(mxStyleRegistry.values[n]==e)return n;return null}};function mxGraphView(e){this.graph=e,this.translate=new mxPoint,this.graphBounds=new mxRectangle,this.states=new mxDictionary}function mxCurrentRootChange(e,n){if(this.view=e,this.previous=this.root=n,this.isUp=null==n,!this.isUp)for(var t=this.view.currentRoot,a=this.view.graph.getModel();null!=t;){if(t==n){this.isUp=!0;break}t=a.getParent(t)}}function mxGraph(e,n,t,a){this.mouseListeners=null,this.renderHint=t,this.dialect=mxClient.IS_SVG?mxConstants.DIALECT_SVG:t==mxConstants.RENDERING_HINT_EXACT&&mxClient.IS_VML?mxConstants.DIALECT_VML:t==mxConstants.RENDERING_HINT_FASTEST?mxConstants.DIALECT_STRICTHTML:t==mxConstants.RENDERING_HINT_FASTER?mxConstants.DIALECT_PREFERHTML:mxConstants.DIALECT_MIXEDHTML,this.model=null!=n?n:new mxGraphModel,this.multiplicities=[],this.imageBundles=[],this.cellRenderer=this.createCellRenderer(),this.setSelectionModel(this.createSelectionModel()),this.setStylesheet(null!=a?a:this.createStylesheet()),this.view=this.createGraphView(),this.graphModelChangeListener=mxUtils.bind(this,function(e,n){this.graphModelChanged(n.getProperty("edit").changes)}),this.model.addListener(mxEvent.CHANGE,this.graphModelChangeListener),this.createHandlers(),null!=e&&this.init(e),this.view.revalidate()}function mxCellOverlay(e,n,t,a,i,s){this.image=e,this.tooltip=n,this.align=null!=t?t:this.align,this.verticalAlign=null!=a?a:this.verticalAlign,this.offset=null!=i?i:new mxPoint,this.cursor=null!=s?s:"help"}function mxOutline(e,n){this.source=e,null!=n&&this.init(n)}function mxMultiplicity(e,n,t,a,i,s,o,r,l,d){this.source=e,this.type=n,this.attr=t,this.value=a,this.min=null!=i?i:0,this.max=null!=s?s:"n",this.validNeighbors=o,this.countError=mxResources.get(r)||r,this.typeError=mxResources.get(l)||l,this.validNeighborsAllowed=null==d||d}function mxLayoutManager(e){this.undoHandler=mxUtils.bind(this,function(e,n){this.isEnabled()&&this.beforeUndo(n.getProperty("edit"))}),this.moveHandler=mxUtils.bind(this,function(e,n){this.isEnabled()&&this.cellsMoved(n.getProperty("cells"),n.getProperty("event"))}),this.setGraph(e)}function mxSpaceManager(e,n,t,a){this.resizeHandler=mxUtils.bind(this,function(e,n){this.isEnabled()&&this.cellsResized(n.getProperty("cells"))}),this.foldHandler=mxUtils.bind(this,function(e,n){this.isEnabled()&&this.cellsResized(n.getProperty("cells"))}),this.shiftRightwards=null==n||n,this.shiftDownwards=null==t||t,this.extendParents=null==a||a,this.setGraph(e)}function mxSwimlaneManager(e,n,t,a){this.horizontal=null==n||n,this.addEnabled=null==t||t,this.resizeEnabled=null==a||a,this.addHandler=mxUtils.bind(this,function(e,n){this.isEnabled()&&this.isAddEnabled()&&this.cellsAdded(n.getProperty("cells"))}),this.resizeHandler=mxUtils.bind(this,function(e,n){this.isEnabled()&&this.isResizeEnabled()&&this.cellsResized(n.getProperty("cells"))}),this.setGraph(e)}function mxTemporaryCellStates(e,n,t){if(this.view=e,n=null!=n?n:1,this.oldBounds=e.getGraphBounds(),this.oldStates=e.getStates(),this.oldScale=e.getScale(),e.setStates(new mxDictionary),e.setScale(n),null!=t){n=e.createState(new mxCell);for(var a=0;a<t.length;a++)e.validateBounds(n,t[a]);var i=null;for(a=0;a<t.length;a++){var s=e.validatePoints(n,t[a]);null==i?i=s:i.add(s)}null==i&&(i=new mxRectangle),e.setGraphBounds(i)}}function mxCellStatePreview(e){this.graph=e,this.deltas={}}function mxConnectionConstraint(e,n){this.point=e,this.perimeter=null==n||n}function mxGraphHandler(e){this.graph=e,this.graph.addMouseListener(this),this.panHandler=mxUtils.bind(this,function(){this.updatePreviewShape()}),this.graph.addListener(mxEvent.PAN,this.panHandler)}function mxPanningHandler(e,n){null!=e&&(this.graph=e,this.factoryMethod=n,this.graph.addMouseListener(this),this.init())}function mxCellMarker(e,n,t,a){mxEventSource.call(this),null!=e&&(this.graph=e,this.validColor=null!=n?n:mxConstants.DEFAULT_VALID_COLOR,this.invalidColor=null!=n?t:mxConstants.DEFAULT_INVALID_COLOR,this.hotspot=null!=a?a:mxConstants.DEFAULT_HOTSPOT,this.highlight=new mxCellHighlight(e))}function mxSelectionCellsHandler(e){mxEventSource.call(this),this.graph=e,this.handlers=new mxDictionary,this.graph.addMouseListener(this),this.refreshHandler=mxUtils.bind(this,function(e,n){this.isEnabled()&&this.refresh()}),this.graph.getSelectionModel().addListener(mxEvent.CHANGE,this.refreshHandler),this.graph.getModel().addListener(mxEvent.CHANGE,this.refreshHandler),this.graph.getView().addListener(mxEvent.SCALE,this.refreshHandler),this.graph.getView().addListener(mxEvent.TRANSLATE,this.refreshHandler),this.graph.getView().addListener(mxEvent.SCALE_AND_TRANSLATE,this.refreshHandler),this.graph.getView().addListener(mxEvent.DOWN,this.refreshHandler),this.graph.getView().addListener(mxEvent.UP,this.refreshHandler)}function mxConnectionHandler(e,n){mxEventSource.call(this),null!=e&&(this.graph=e,this.factoryMethod=n,this.init())}function mxConstraintHandler(e){this.graph=e}function mxRubberband(e){null!=e&&(this.graph=e,this.graph.addMouseListener(this),this.panHandler=mxUtils.bind(this,function(){this.repaint()}),this.graph.addListener(mxEvent.PAN,this.panHandler),mxClient.IS_IE&&mxEvent.addListener(window,"unload",mxUtils.bind(this,function(){this.destroy()})))}function mxVertexHandler(e){null!=e&&(this.state=e,this.init())}function mxEdgeHandler(e){null!=e&&(this.state=e,this.init())}function mxElbowEdgeHandler(e){mxEdgeHandler.call(this,e)}function mxEdgeSegmentHandler(e){mxEdgeHandler.call(this,e)}function mxKeyHandler(e,n){null!=e&&(this.graph=e,this.target=n||document.documentElement,this.normalKeys=[],this.shiftKeys=[],this.controlKeys=[],this.controlShiftKeys=[],mxEvent.addListener(this.target,"keydown",mxUtils.bind(this,function(e){this.keyDown(e)})),mxClient.IS_IE&&mxEvent.addListener(window,"unload",mxUtils.bind(this,function(){this.destroy()})))}function mxTooltipHandler(e,n){null!=e&&(this.graph=e,this.delay=n||500,this.graph.addMouseListener(this))}function mxCellTracker(e,n,t){mxCellMarker.call(this,e,n),this.graph.addMouseListener(this),null!=t&&(this.getCell=t),mxClient.IS_IE&&mxEvent.addListener(window,"unload",mxUtils.bind(this,function(){this.destroy()}))}function mxCellHighlight(e,n,t,a){null!=e&&(this.graph=e,this.highlightColor=null!=n?n:mxConstants.DEFAULT_VALID_COLOR,this.strokeWidth=null!=t?t:mxConstants.HIGHLIGHT_STROKEWIDTH,this.dashed=null!=a&&a,this.repaintHandler=mxUtils.bind(this,function(){this.repaint()}),this.graph.getView().addListener(mxEvent.SCALE,this.repaintHandler),this.graph.getView().addListener(mxEvent.TRANSLATE,this.repaintHandler),this.graph.getView().addListener(mxEvent.SCALE_AND_TRANSLATE,this.repaintHandler),this.graph.getModel().addListener(mxEvent.CHANGE,this.repaintHandler),this.resetHandler=mxUtils.bind(this,function(){this.hide()}),this.graph.getView().addListener(mxEvent.DOWN,this.resetHandler),this.graph.getView().addListener(mxEvent.UP,this.resetHandler))}function mxDefaultKeyHandler(n){if(null!=n){this.editor=n,this.handler=new mxKeyHandler(n.graph);var t=this.handler.escape;this.handler.escape=function(e){t.apply(this,arguments),n.hideProperties(),n.fireEvent(new mxEventObject(mxEvent.ESCAPE,"event",e))}}}function mxDefaultPopupMenu(e){this.config=e}function mxDefaultToolbar(e,n){this.editor=n,null!=e&&null!=n&&this.init(e)}function mxEditor(e){this.actions=[],this.addActions(),null!=document.body&&(this.cycleAttributeValues=[],this.popupHandler=new mxDefaultPopupMenu,this.undoManager=new mxUndoManager,this.graph=this.createGraph(),this.toolbar=this.createToolbar(),this.keyHandler=new mxDefaultKeyHandler(this),this.configure(e),this.graph.swimlaneIndicatorColorAttribute=this.cycleAttributeName,!mxClient.IS_LOCAL&&null!=this.urlInit&&(this.session=this.createSession()),null!=this.onInit&&this.onInit(),mxClient.IS_IE&&mxEvent.addListener(window,"unload",mxUtils.bind(this,function(){this.destroy()})))}mxStyleRegistry.putValue(mxConstants.EDGESTYLE_ELBOW,mxEdgeStyle.ElbowConnector),mxStyleRegistry.putValue(mxConstants.EDGESTYLE_ENTITY_RELATION,mxEdgeStyle.EntityRelation),mxStyleRegistry.putValue(mxConstants.EDGESTYLE_LOOP,mxEdgeStyle.Loop),mxStyleRegistry.putValue(mxConstants.EDGESTYLE_SIDETOSIDE,mxEdgeStyle.SideToSide),mxStyleRegistry.putValue(mxConstants.EDGESTYLE_TOPTOBOTTOM,mxEdgeStyle.TopToBottom),mxStyleRegistry.putValue(mxConstants.EDGESTYLE_ORTHOGONAL,mxEdgeStyle.OrthConnector),mxStyleRegistry.putValue(mxConstants.EDGESTYLE_SEGMENT,mxEdgeStyle.SegmentConnector),mxStyleRegistry.putValue(mxConstants.PERIMETER_ELLIPSE,mxPerimeter.EllipsePerimeter),mxStyleRegistry.putValue(mxConstants.PERIMETER_RECTANGLE,mxPerimeter.RectanglePerimeter),mxStyleRegistry.putValue(mxConstants.PERIMETER_RHOMBUS,mxPerimeter.RhombusPerimeter),mxStyleRegistry.putValue(mxConstants.PERIMETER_TRIANGLE,mxPerimeter.TrianglePerimeter),mxGraphView.prototype=new mxEventSource,mxGraphView.prototype.constructor=mxGraphView,mxGraphView.prototype.EMPTY_POINT=new mxPoint,mxGraphView.prototype.doneResource="none"!=mxClient.language?"done":"",mxGraphView.prototype.updatingDocumentResource="none"!=mxClient.language?"updatingDocument":"",mxGraphView.prototype.allowEval=!1,mxGraphView.prototype.captureDocumentGesture=!0,mxGraphView.prototype.optimizeVmlReflows=!0,mxGraphView.prototype.rendering=!0,mxGraphView.prototype.graph=null,mxGraphView.prototype.currentRoot=null,mxGraphView.prototype.graphBounds=null,mxGraphView.prototype.scale=1,mxGraphView.prototype.translate=null,mxGraphView.prototype.updateStyle=!1,mxGraphView.prototype.getGraphBounds=function(){return this.graphBounds},mxGraphView.prototype.setGraphBounds=function(e){this.graphBounds=e},mxGraphView.prototype.getBounds=function(e){var n=null;if(null!=e&&0<e.length)for(var t=this.graph.getModel(),a=0;a<e.length;a++)if(t.isVertex(e[a])||t.isEdge(e[a])){var i=this.getState(e[a]);null!=i&&(null==n?n=new mxRectangle(i.x,i.y,i.width,i.height):n.add(i))}return n},mxGraphView.prototype.setCurrentRoot=function(e){if(this.currentRoot!=e){var n=new mxCurrentRootChange(this,e);n.execute();var t=new mxUndoableEdit(this,!1);t.add(n),this.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",t)),this.graph.sizeDidChange()}return e},mxGraphView.prototype.scaleAndTranslate=function(e,n,t){var a=this.scale,i=new mxPoint(this.translate.x,this.translate.y);this.scale==e&&this.translate.x==n&&this.translate.y==t||(this.scale=e,this.translate.x=n,this.translate.y=t,this.isEventsEnabled()&&(this.revalidate(),this.graph.sizeDidChange())),this.fireEvent(new mxEventObject(mxEvent.SCALE_AND_TRANSLATE,"scale",e,"previousScale",a,"translate",this.translate,"previousTranslate",i))},mxGraphView.prototype.getScale=function(){return this.scale},mxGraphView.prototype.setScale=function(e){var n=this.scale;this.scale!=e&&(this.scale=e,this.isEventsEnabled()&&(this.revalidate(),this.graph.sizeDidChange())),this.fireEvent(new mxEventObject(mxEvent.SCALE,"scale",e,"previousScale",n))},mxGraphView.prototype.getTranslate=function(){return this.translate},mxGraphView.prototype.setTranslate=function(e,n){var t=new mxPoint(this.translate.x,this.translate.y);this.translate.x==e&&this.translate.y==n||(this.translate.x=e,this.translate.y=n,this.isEventsEnabled()&&(this.revalidate(),this.graph.sizeDidChange())),this.fireEvent(new mxEventObject(mxEvent.TRANSLATE,"translate",this.translate,"previousTranslate",t))},mxGraphView.prototype.refresh=function(){null!=this.currentRoot&&this.clear(),this.revalidate()},mxGraphView.prototype.revalidate=function(){this.invalidate(),this.validate()},mxGraphView.prototype.clear=function(e,n,t){var a=this.graph.getModel();if(e=e||a.getRoot(),n=null!=n&&n,t=null==t||t,this.removeState(e),t&&(n||e!=this.currentRoot)){t=a.getChildCount(e);for(var i=0;i<t;i++)this.clear(a.getChildAt(e,i),n)}else this.invalidate(e)},mxGraphView.prototype.invalidate=function(e,n,t,a){var i=this.graph.getModel();if(e=e||i.getRoot(),n=null==n||n,t=null==t||t,a=null!=a&&a,null!=(o=this.getState(e))&&(o.invalid=!0,a&&(o.orderChanged=!0)),n)for(var s=i.getChildCount(e),o=0;o<s;o++){var r=i.getChildAt(e,o);this.invalidate(r,n,t,a)}if(t)for(a=i.getEdgeCount(e),o=0;o<a;o++)this.invalidate(i.getEdgeAt(e,o),n,t)},mxGraphView.prototype.validate=function(e){var n=mxLog.enter("mxGraphView.validate");window.status=mxResources.get(this.updatingDocumentResource)||this.updatingDocumentResource;var t=null;if(this.optimizeVmlReflows&&null!=this.canvas&&null==this.textDiv&&(8==document.documentMode||mxClient.IS_QUIRKS)){t=this.canvas.style.display,this.canvas.style.display="none";var a=document.createElement("div");a.style.position="absolute",a.style.whiteSpace="nowrap",a.style.visibility="hidden",a.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",a.style.zoom="1",document.body.appendChild(a),this.textDiv=a}e=e||(null!=this.currentRoot?this.currentRoot:this.graph.getModel().getRoot()),this.validateBounds(null,e),null==(e=this.validatePoints(null,e))&&(e=new mxRectangle),this.setGraphBounds(e),this.validateBackground(),null!=t&&(this.canvas.style.display=t,document.body.removeChild(this.textDiv),this.textDiv=null),window.status=mxResources.get(this.doneResource)||this.doneResource,mxLog.leave("mxGraphView.validate",n)},mxGraphView.prototype.createBackgroundPageShape=function(e){return new mxRectangleShape(e,"white","black")},mxGraphView.prototype.validateBackground=function(){var e=this.graph.getBackgroundImage();if(null!=e){if(null==this.backgroundImage||this.backgroundImage.image!=e.src){null!=this.backgroundImage&&this.backgroundImage.destroy();var n=new mxRectangle(0,0,1,1);this.backgroundImage=new mxImageShape(n,e.src),this.backgroundImage.dialect=this.graph.dialect,this.backgroundImage.init(this.backgroundPane),this.backgroundImage.redraw()}this.redrawBackgroundImage(this.backgroundImage,e)}else null!=this.backgroundImage&&(this.backgroundImage.destroy(),this.backgroundImage=null);this.graph.pageVisible?(n=this.getBackgroundPageBounds(),null==this.backgroundPageShape?(this.backgroundPageShape=this.createBackgroundPageShape(n),this.backgroundPageShape.scale=this.scale,this.backgroundPageShape.isShadow=!0,this.backgroundPageShape.dialect=this.graph.dialect,this.backgroundPageShape.init(this.backgroundPane),this.backgroundPageShape.redraw(),mxEvent.addListener(this.backgroundPageShape.node,"dblclick",mxUtils.bind(this,function(e){this.graph.dblClick(e)})),mxEvent.addGestureListeners(this.backgroundPageShape.node,mxUtils.bind(this,function(e){this.graph.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e))}),mxUtils.bind(this,function(e){null!=this.graph.tooltipHandler&&this.graph.tooltipHandler.isHideOnHover()&&this.graph.tooltipHandler.hide(),this.graph.isMouseDown&&!mxEvent.isConsumed(e)&&this.graph.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e))}),mxUtils.bind(this,function(e){this.graph.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e))}))):(this.backgroundPageShape.scale=this.scale,this.backgroundPageShape.bounds=n,this.backgroundPageShape.redraw())):null!=this.backgroundPageShape&&(this.backgroundPageShape.destroy(),this.backgroundPageShape=null)},mxGraphView.prototype.getBackgroundPageBounds=function(){var e=this.graph.pageFormat,n=this.scale*this.graph.pageScale;return new mxRectangle(this.scale*this.translate.x,this.scale*this.translate.y,e.width*n,e.height*n)},mxGraphView.prototype.redrawBackgroundImage=function(e,n){e.scale=this.scale,e.bounds.x=this.scale*this.translate.x,e.bounds.y=this.scale*this.translate.y,e.bounds.width=this.scale*n.width,e.bounds.height=this.scale*n.height,e.redraw()},mxGraphView.prototype.validateBounds=function(e,n){var t=this.graph.getModel(),a=this.getState(n,!0);if(null!=a&&a.invalid){if(this.graph.isCellVisible(n)){if(n!=this.currentRoot&&null!=e)if(a.absoluteOffset.x=0,a.absoluteOffset.y=0,a.origin.x=e.origin.x,a.origin.y=e.origin.y,null!=(s=this.graph.getCellGeometry(n))){if(!t.isEdge(n)){var i=s.offset||this.EMPTY_POINT;s.relative?(a.origin.x+=s.x*e.width/this.scale+i.x,a.origin.y+=s.y*e.height/this.scale+i.y):(a.absoluteOffset.x=this.scale*i.x,a.absoluteOffset.y=this.scale*i.y,a.origin.x+=s.x,a.origin.y+=s.y)}if(a.x=this.scale*(this.translate.x+a.origin.x),a.y=this.scale*(this.translate.y+a.origin.y),a.width=this.scale*s.width,a.height=this.scale*s.height,t.isVertex(n)){if(s.relative&&0!=(i=mxUtils.toRadians(e.style[mxConstants.STYLE_ROTATION]||"0"))){var s=Math.cos(i),o=(i=Math.sin(i),new mxPoint(a.getCenterX(),a.getCenterY())),r=new mxPoint(e.getCenterX(),e.getCenterY());s=mxUtils.getRotatedPoint(o,s,i,r);a.x=s.x-a.width/2,a.y=s.y-a.height/2}this.updateVertexLabelOffset(a)}}}else this.removeState(n);null!=(i=this.graph.getChildOffsetForCell(n))&&(a.origin.x+=i.x,a.origin.y+=i.y)}if(null!=a&&(!this.graph.isCellCollapsed(n)||n==this.currentRoot))for(s=t.getChildCount(n),i=0;i<s;i++)o=t.getChildAt(n,i),this.validateBounds(a,o)},mxGraphView.prototype.updateVertexLabelOffset=function(e){var n=mxUtils.getValue(e.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER);n==mxConstants.ALIGN_LEFT?e.absoluteOffset.x-=e.width:n==mxConstants.ALIGN_RIGHT&&(e.absoluteOffset.x+=e.width),(n=mxUtils.getValue(e.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE))==mxConstants.ALIGN_TOP?e.absoluteOffset.y-=e.height:n==mxConstants.ALIGN_BOTTOM&&(e.absoluteOffset.y+=e.height)},mxGraphView.prototype.validatePoints=function(e,n){var t=this.graph.getModel(),a=this.getState(n),i=null;if(null!=a){if(a.invalid){var s=this.graph.getCellGeometry(n);if(null!=s&&t.isEdge(n)){var o=this.getState(this.getVisibleTerminal(n,!0));if(a.setVisibleTerminalState(o,!0),null!=o&&t.isEdge(o.cell)&&!t.isAncestor(o.cell,n)){var r=this.getState(t.getParent(o.cell));this.validatePoints(r,o.cell)}var l=this.getState(this.getVisibleTerminal(n,!1));a.setVisibleTerminalState(l,!1),null!=l&&t.isEdge(l.cell)&&!t.isAncestor(l.cell,n)&&(r=this.getState(t.getParent(l.cell)),this.validatePoints(r,l.cell)),this.updateFixedTerminalPoints(a,o,l),this.updatePoints(a,s.points,o,l),this.updateFloatingTerminalPoints(a,o,l),this.updateEdgeBounds(a),this.updateEdgeLabelOffset(a)}else null!=s&&s.relative&&null!=e&&t.isEdge(e.cell)&&(null!=(s=this.getPoint(e,s))&&(a.x=s.x,a.y=s.y,s.x=s.x/this.scale-this.translate.x,s.y=s.y/this.scale-this.translate.y,a.origin=s,this.childMoved(e,a)));a.invalid=!1,n!=this.currentRoot&&this.graph.cellRenderer.redraw(a,!1,this.isRendering())}(t.isEdge(n)||t.isVertex(n))&&(null!=a.shape&&null!=a.shape.boundingBox&&(i=a.shape.boundingBox.clone()),null!=a.text&&!this.graph.isLabelClipped(a.cell)&&null!=a.text.boundingBox&&(null!=i?i.add(a.text.boundingBox):i=a.text.boundingBox.clone()))}if(null!=a&&(!this.graph.isCellCollapsed(n)||n==this.currentRoot))for(s=t.getChildCount(n),o=0;o<s;o++)r=t.getChildAt(n,o),null!=(r=this.validatePoints(a,r))&&(null==i?i=r:i.add(r));return i},mxGraphView.prototype.childMoved=function(e,n){var t=n.cell;if(!this.graph.isCellCollapsed(t)||t==this.currentRoot)for(var a=this.graph.getModel(),i=a.getChildCount(t),s=0;s<i;s++)this.validateBounds(n,a.getChildAt(t,s))},mxGraphView.prototype.updateFixedTerminalPoints=function(e,n,t){this.updateFixedTerminalPoint(e,n,!0,this.graph.getConnectionConstraint(e,n,!0)),this.updateFixedTerminalPoint(e,t,!1,this.graph.getConnectionConstraint(e,t,!1))},mxGraphView.prototype.updateFixedTerminalPoint=function(e,n,t,a){var i=null;if(null!=a&&(i=this.graph.getConnectionPoint(n,a)),null==i&&null==n){n=this.scale,a=this.translate;var s=e.origin;null!=(i=this.graph.getCellGeometry(e.cell).getTerminalPoint(t))&&(i=new mxPoint(n*(a.x+i.x+s.x),n*(a.y+i.y+s.y)))}e.setAbsoluteTerminalPoint(i,t)},mxGraphView.prototype.updatePoints=function(e,n,t,a){if(null!=e){var i=[];i.push(e.absolutePoints[0]);var s=this.getEdgeStyle(e,n,t,a);if(null!=s)s(e,t=this.getTerminalPort(e,t,!0),a=this.getTerminalPort(e,a,!1),n,i);else if(null!=n)for(s=0;s<n.length;s++)null!=n[s]&&(a=mxUtils.clone(n[s]),i.push(this.transformControlPoint(e,a)));n=e.absolutePoints,i.push(n[n.length-1]),e.absolutePoints=i}},mxGraphView.prototype.transformControlPoint=function(e,n){var t=e.origin;return new mxPoint(this.scale*(n.x+this.translate.x+t.x),this.scale*(n.y+this.translate.y+t.y))},mxGraphView.prototype.getEdgeStyle=function(e,n,t,a){return"string"==typeof(e=null!=t&&t==a?mxUtils.getValue(e.style,mxConstants.STYLE_LOOP,this.graph.defaultLoopStyle):mxUtils.getValue(e.style,mxConstants.STYLE_NOEDGESTYLE,!1)?null:e.style[mxConstants.STYLE_EDGE])&&(null==(n=mxStyleRegistry.getValue(e))&&this.isAllowEval()&&(n=mxUtils.eval(e)),e=n),"function"==typeof e?e:null},mxGraphView.prototype.updateFloatingTerminalPoints=function(e,n,t){var a=e.absolutePoints,i=a[0];null==a[a.length-1]&&null!=t&&this.updateFloatingTerminalPoint(e,t,n,!1),null==i&&null!=n&&this.updateFloatingTerminalPoint(e,n,t,!0)},mxGraphView.prototype.updateFloatingTerminalPoint=function(e,n,t,a){n=this.getTerminalPort(e,n,a);var i=this.getNextPoint(e,t,a),s=this.graph.isOrthogonal(e);t=mxUtils.toRadians(Number(n.style[mxConstants.STYLE_ROTATION]||"0"));var o=new mxPoint(n.getCenterX(),n.getCenterY());if(0!=t){var r=Math.cos(-t),l=Math.sin(-t);i=mxUtils.getRotatedPoint(i,r,l,o)}r=parseFloat(e.style[mxConstants.STYLE_PERIMETER_SPACING]||0),r+=parseFloat(e.style[a?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]||0),n=this.getPerimeterPoint(n,i,0==t&&s,r),0!=t&&(r=Math.cos(t),l=Math.sin(t),n=mxUtils.getRotatedPoint(n,r,l,o)),e.setAbsoluteTerminalPoint(n,a)},mxGraphView.prototype.getTerminalPort=function(e,n,t){return null!=(e=mxUtils.getValue(e.style,t?mxConstants.STYLE_SOURCE_PORT:mxConstants.STYLE_TARGET_PORT))&&(null!=(e=this.getState(this.graph.getModel().getCell(e)))&&(n=e)),n},mxGraphView.prototype.getPerimeterPoint=function(e,n,t,a){var i=null;if(null!=e){var s=this.getPerimeterFunction(e);null!=s&&null!=n&&(0<(a=this.getPerimeterBounds(e,a)).width||0<a.height)&&(i=s(a,e,n,t)),null==i&&(i=this.getPoint(e))}return i},mxGraphView.prototype.getRoutingCenterX=function(e){var n=null!=e.style&&parseFloat(e.style[mxConstants.STYLE_ROUTING_CENTER_X])||0;return e.getCenterX()+n*e.width},mxGraphView.prototype.getRoutingCenterY=function(e){var n=null!=e.style&&parseFloat(e.style[mxConstants.STYLE_ROUTING_CENTER_Y])||0;return e.getCenterY()+n*e.height},mxGraphView.prototype.getPerimeterBounds=function(e,n){return n=null!=n?n:0,null!=e&&(n+=parseFloat(e.style[mxConstants.STYLE_PERIMETER_SPACING]||0)),e.getPerimeterBounds(n*this.scale)},mxGraphView.prototype.getPerimeterFunction=function(e){if("string"==typeof(e=e.style[mxConstants.STYLE_PERIMETER])){var n=mxStyleRegistry.getValue(e);null==n&&this.isAllowEval()&&(n=mxUtils.eval(e)),e=n}return"function"==typeof e?e:null},mxGraphView.prototype.getNextPoint=function(e,n,t){var a=null;return null!=(e=e.absolutePoints)&&(t||2<e.length||null==n)&&(a=e.length,a=e[t?Math.min(1,a-1):Math.max(0,a-2)]),null==a&&null!=n&&(a=new mxPoint(n.getCenterX(),n.getCenterY())),a},mxGraphView.prototype.getVisibleTerminal=function(e,n){for(var t=this.graph.getModel(),a=t.getTerminal(e,n),i=a;null!=a&&a!=this.currentRoot;)this.graph.isCellVisible(i)&&!this.graph.isCellCollapsed(a)||(i=a),a=t.getParent(a);return t.getParent(i)==t.getRoot()&&(i=null),i},mxGraphView.prototype.updateEdgeBounds=function(e){var n=e.absolutePoints;if(e.length=0,null!=n&&0<n.length){var t=n[0],a=n[n.length-1];if(null==t||null==a)e.cell!=this.currentRoot&&this.clear(e.cell,!0);else{if(t.x!=a.x||t.y!=a.y){var i=a.x-t.x,s=a.y-t.y;e.terminalDistance=Math.sqrt(i*i+s*s)}else e.terminalDistance=0;a=0;var o=[];if(null!=(s=t)){t=s.x;for(var r=s.y,l=t,d=r,c=1;c<n.length;c++){var m=n[c];null!=m&&(i=s.x-m.x,s=s.y-m.y,i=Math.sqrt(i*i+s*s),o.push(i),a+=i,s=m,t=Math.min(s.x,t),r=Math.min(s.y,r),l=Math.max(s.x,l),d=Math.max(s.y,d))}e.length=a,e.segments=o,e.x=t,e.y=r,e.width=Math.max(1,l-t),e.height=Math.max(1,d-r)}}}},mxGraphView.prototype.getPoint=function(e,n){var t=e.getCenterX(),a=e.getCenterY();if(null==e.segments||null!=n&&!n.relative)null!=n&&(null!=(d=n.offset)&&(t+=d.x,a+=d.y));else{for(var i=e.absolutePoints.length,s=(.5+(null!=n?n.x/2:0))*e.length,o=e.segments[0],r=0,l=1;r+o<s&&l<i-1;)r+=o,o=e.segments[l++];if(i=0==o?0:(s-r)/o,s=e.absolutePoints[l-1],l=e.absolutePoints[l],null!=s&&null!=l){if(r=t=a=0,null!=n){a=n.y;var d=n.offset;null!=d&&(t=d.x,r=d.y)}d=l.x-s.x,l=l.y-s.y,t=s.x+d*i+((0==o?0:l/o)*a+t)*this.scale,a=s.y+l*i-((0==o?0:d/o)*a-r)*this.scale}}return new mxPoint(t,a)},mxGraphView.prototype.getRelativePoint=function(e,n,t){if(null!=(i=this.graph.getModel().getGeometry(e.cell))){var a=e.absolutePoints.length;if(i.relative&&1<a){for(var i=e.length,s=e.segments,o=e.absolutePoints[0],r=e.absolutePoints[1],l=mxUtils.ptSegDistSq(o.x,o.y,r.x,r.y,n,t),d=0,c=0,m=0,u=2;u<a;u++)c+=s[u-2],r=e.absolutePoints[u],(o=mxUtils.ptSegDistSq(o.x,o.y,r.x,r.y,n,t))<=l&&(l=o,d=u-1,m=c),o=r;return a=s[d],o=e.absolutePoints[d],l=(r=e.absolutePoints[d+1]).x,s=r.y,s=(l=(e=o.x-l)-(l=n-l))*e+(s=(d=o.y-s)-(s=t-s))*d,a<(e=Math.sqrt(s<=0?0:s*s/(e*e+d*d)))&&(e=a),a=Math.sqrt(mxUtils.ptSegDistSq(o.x,o.y,r.x,r.y,n,t)),-1==mxUtils.relativeCcw(o.x,o.y,r.x,r.y,n,t)&&(a=-a),new mxPoint((i/2-m-e)/i*-2,a/this.scale)}}return new mxPoint},mxGraphView.prototype.updateEdgeLabelOffset=function(e){var n=e.absolutePoints;if(e.absoluteOffset.x=e.getCenterX(),e.absoluteOffset.y=e.getCenterY(),null!=n&&0<n.length&&null!=e.segments)if((i=this.graph.getCellGeometry(e.cell)).relative){null!=(t=this.getPoint(e,i))&&(e.absoluteOffset=t)}else{var t=n[0],a=n[n.length-1];if(null!=t&&null!=a){n=a.x-t.x;var i,s=a.y-t.y,o=a=0;null!=(i=i.offset)&&(a=i.x,o=i.y),i=t.y+s/2+o*this.scale,e.absoluteOffset.x=t.x+n/2+a*this.scale,e.absoluteOffset.y=i}}},mxGraphView.prototype.getState=function(e,n){n=n||!1;var t=null;return null!=e&&(t=this.states.get(e),this.graph.isCellVisible(e)&&(null==t&&n&&this.graph.isCellVisible(e)?(t=this.createState(e),this.states.put(e,t)):n&&null!=t&&this.updateStyle&&(t.style=this.graph.getCellStyle(e)))),t},mxGraphView.prototype.isRendering=function(){return this.rendering},mxGraphView.prototype.setRendering=function(e){this.rendering=e},mxGraphView.prototype.isAllowEval=function(){return this.allowEval},mxGraphView.prototype.setAllowEval=function(e){this.allowEval=e},mxGraphView.prototype.getStates=function(){return this.states},mxGraphView.prototype.setStates=function(e){this.states=e},mxGraphView.prototype.getCellStates=function(e){if(null==e)return this.states;for(var n=[],t=0;t<e.length;t++){var a=this.getState(e[t]);null!=a&&n.push(a)}return n},mxGraphView.prototype.removeState=function(e){var n=null;return null!=e&&(null!=(n=this.states.remove(e))&&(this.graph.cellRenderer.destroy(n),n.destroy())),n},mxGraphView.prototype.createState=function(e){var n=this.graph.getCellStyle(e);return e=new mxCellState(this,e,n),this.graph.cellRenderer.initialize(e,this.isRendering()),e},mxGraphView.prototype.getCanvas=function(){return this.canvas},mxGraphView.prototype.getBackgroundPane=function(){return this.backgroundPane},mxGraphView.prototype.getDrawPane=function(){return this.drawPane},mxGraphView.prototype.getOverlayPane=function(){return this.overlayPane},mxGraphView.prototype.isContainerEvent=function(e){return(e=mxEvent.getSource(e))==this.graph.container||e.parentNode==this.backgroundPane||null!=e.parentNode&&e.parentNode.parentNode==this.backgroundPane||e==this.canvas.parentNode||e==this.canvas||e==this.backgroundPane||e==this.drawPane||e==this.overlayPane},mxGraphView.prototype.isScrollEvent=function(e){var n=mxUtils.getOffset(this.graph.container);e=new mxPoint(e.clientX-n.x,e.clientY-n.y);n=this.graph.container.offsetWidth;var t=this.graph.container.clientWidth;return t<n&&e.x>t+2&&e.x<=n||(n=this.graph.container.offsetHeight,(t=this.graph.container.clientHeight)<n&&e.y>t+2&&e.y<=n)},mxGraphView.prototype.init=function(){this.installListeners();var e=this.graph;e.dialect==mxConstants.DIALECT_SVG?this.createSvg():e.dialect==mxConstants.DIALECT_VML?this.createVml():this.createHtml()},mxGraphView.prototype.installListeners=function(){var a=this.graph,i=a.container;if(null!=i){mxEvent.addGestureListeners(i,mxUtils.bind(this,function(e){mxClient.IS_TOUCH&&a.isEditing()&&a.stopEditing(!a.isInvokesStopCellEditing()),this.isContainerEvent(e)&&(!mxClient.IS_IE&&!mxClient.IS_GC&&!mxClient.IS_OP&&!mxClient.IS_SF||!this.isScrollEvent(e))&&a.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e))}),mxUtils.bind(this,function(e){this.isContainerEvent(e)&&a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e))}),mxUtils.bind(this,function(e){this.isContainerEvent(e)&&a.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e))})),mxEvent.addListener(i,"dblclick",mxUtils.bind(this,function(e){a.dblClick(e)}));a.addMouseListener({mouseDown:function(e,n){a.panningHandler.hideMenu()},mouseMove:function(){},mouseUp:function(){}}),this.moveHandler=mxUtils.bind(this,function(e){var n,t;null!=a.tooltipHandler&&a.tooltipHandler.isHideOnHover()&&a.tooltipHandler.hide(),this.captureDocumentGesture&&a.isMouseDown&&!mxEvent.isConsumed(e)&&a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,(n=e,t=null,mxClient.IS_TOUCH&&(t=mxEvent.getClientX(n),n=mxEvent.getClientY(n),n=mxUtils.convertPoint(i,t,n),t=a.view.getState(a.getCellAt(n.x,n.y))),t)))}),this.endHandler=mxUtils.bind(this,function(e){this.captureDocumentGesture&&a.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e))}),mxEvent.addGestureListeners(document,null,this.moveHandler,this.endHandler)}},mxGraphView.prototype.createHtml=function(){var e=this.graph.container;null!=e&&(this.canvas=this.createHtmlPane("100%","100%"),this.backgroundPane=this.createHtmlPane("1px","1px"),this.drawPane=this.createHtmlPane("1px","1px"),this.overlayPane=this.createHtmlPane("1px","1px"),this.canvas.appendChild(this.backgroundPane),this.canvas.appendChild(this.drawPane),this.canvas.appendChild(this.overlayPane),e.appendChild(this.canvas),mxClient.IS_QUIRKS&&(e=mxUtils.bind(this,function(e){e=this.getGraphBounds(),this.updateHtmlCanvasSize(e.x+e.width+this.graph.border,e.y+e.height+this.graph.border)}),mxEvent.addListener(window,"resize",e)))},mxGraphView.prototype.updateHtmlCanvasSize=function(e,n){if(null!=this.graph.container){var t=this.graph.container.offsetHeight;this.canvas.style.width=this.graph.container.offsetWidth<e?e+"px":"100%",this.canvas.style.height=t<n?n+"px":"100%"}},mxGraphView.prototype.createHtmlPane=function(e,n){var t=document.createElement("DIV");return null!=e&&null!=n?(t.style.position="absolute",t.style.left="0px",t.style.top="0px",t.style.width=e,t.style.height=n):t.style.position="relative",t},mxGraphView.prototype.createVml=function(){var e=this.graph.container;if(null!=e){var n=e.offsetWidth,t=e.offsetHeight;this.canvas=this.createVmlPane(n,t),this.backgroundPane=this.createVmlPane(n,t),this.drawPane=this.createVmlPane(n,t),this.overlayPane=this.createVmlPane(n,t),this.canvas.appendChild(this.backgroundPane),this.canvas.appendChild(this.drawPane),this.canvas.appendChild(this.overlayPane),e.appendChild(this.canvas)}},mxGraphView.prototype.createVmlPane=function(e,n){var t=document.createElement(mxClient.VML_PREFIX+":group");return t.style.position="absolute",t.style.left="0px",t.style.top="0px",t.style.width=e+"px",t.style.height=n+"px",t.setAttribute("coordsize",e+","+n),t.setAttribute("coordorigin","0,0"),t},mxGraphView.prototype.createSvg=function(){var e=this.graph.container;this.canvas=document.createElementNS(mxConstants.NS_SVG,"g"),this.backgroundPane=document.createElementNS(mxConstants.NS_SVG,"g"),this.canvas.appendChild(this.backgroundPane),this.drawPane=document.createElementNS(mxConstants.NS_SVG,"g"),this.canvas.appendChild(this.drawPane),this.overlayPane=document.createElementNS(mxConstants.NS_SVG,"g"),this.canvas.appendChild(this.overlayPane);var n=document.createElementNS(mxConstants.NS_SVG,"svg");n.style.width="100%",n.style.height="100%",n.style.display="block",n.appendChild(this.canvas),null!=e&&(e.appendChild(n),"static"==mxUtils.getCurrentStyle(e).position&&(e.style.position="relative"))},mxGraphView.prototype.destroy=function(){var e=null!=this.canvas?this.canvas.ownerSVGElement:null;null==e&&(e=this.canvas),null!=e&&null!=e.parentNode&&(this.clear(this.currentRoot,!0),mxEvent.removeGestureListeners(document,null,this.moveHandler,this.endHandler),mxEvent.release(this.graph.container),e.parentNode.removeChild(e),this.overlayPane=this.drawPane=this.backgroundPane=this.canvas=this.endHandler=this.moveHandler=null)},mxCurrentRootChange.prototype.execute=function(){var e=this.view.currentRoot;this.view.currentRoot=this.previous,this.previous=e,null!=(e=this.view.graph.getTranslateForRoot(this.view.currentRoot))&&(this.view.translate=new mxPoint(-e.x,-e.y)),this.view.fireEvent(new mxEventObject(this.isUp?mxEvent.UP:mxEvent.DOWN,"root",this.view.currentRoot,"previous",this.previous)),this.isUp?(this.view.clear(this.view.currentRoot,!0),this.view.validate()):this.view.refresh(),this.isUp=!this.isUp},mxLoadResources&&mxResources.add(mxClient.basePath+"/resources/graph"),mxGraph.prototype=new mxEventSource,mxGraph.prototype.constructor=mxGraph,mxGraph.prototype.EMPTY_ARRAY=[],mxGraph.prototype.mouseListeners=null,mxGraph.prototype.isMouseDown=!1,mxGraph.prototype.model=null,mxGraph.prototype.view=null,mxGraph.prototype.stylesheet=null,mxGraph.prototype.selectionModel=null,mxGraph.prototype.cellEditor=null,mxGraph.prototype.cellRenderer=null,mxGraph.prototype.multiplicities=null,mxGraph.prototype.renderHint=null,mxGraph.prototype.dialect=null,mxGraph.prototype.gridSize=10,mxGraph.prototype.gridEnabled=!0,mxGraph.prototype.portsEnabled=!0,mxGraph.prototype.doubleTapEnabled=!0,mxGraph.prototype.doubleTapTimeout=700,mxGraph.prototype.doubleTapTolerance=25,mxGraph.prototype.lastTouchY=0,mxGraph.prototype.lastTouchY=0,mxGraph.prototype.lastTouchTime=0,mxGraph.prototype.gestureEnabled=!0,mxGraph.prototype.tolerance=4,mxGraph.prototype.defaultOverlap=.5,mxGraph.prototype.defaultParent=null,mxGraph.prototype.alternateEdgeStyle=null,mxGraph.prototype.backgroundImage=null,mxGraph.prototype.pageVisible=!1,mxGraph.prototype.pageBreaksVisible=!1,mxGraph.prototype.pageBreakColor="gray",mxGraph.prototype.pageBreakDashed=!0,mxGraph.prototype.minPageBreakDist=20,mxGraph.prototype.preferPageSize=!1,mxGraph.prototype.pageFormat=mxConstants.PAGE_FORMAT_A4_PORTRAIT,mxGraph.prototype.pageScale=1.5,mxGraph.prototype.enabled=!0,mxGraph.prototype.escapeEnabled=!0,mxGraph.prototype.invokesStopCellEditing=!0,mxGraph.prototype.enterStopsCellEditing=!1,mxGraph.prototype.useScrollbarsForPanning=!0,mxGraph.prototype.exportEnabled=!0,mxGraph.prototype.importEnabled=!0,mxGraph.prototype.cellsLocked=!1,mxGraph.prototype.cellsCloneable=!0,mxGraph.prototype.foldingEnabled=!0,mxGraph.prototype.cellsEditable=!0,mxGraph.prototype.cellsDeletable=!0,mxGraph.prototype.cellsMovable=!0,mxGraph.prototype.edgeLabelsMovable=!0,mxGraph.prototype.vertexLabelsMovable=!1,mxGraph.prototype.dropEnabled=!1,mxGraph.prototype.splitEnabled=!0,mxGraph.prototype.cellsResizable=!0,mxGraph.prototype.cellsBendable=!0,mxGraph.prototype.cellsSelectable=!0,mxGraph.prototype.cellsDisconnectable=!0,mxGraph.prototype.autoSizeCells=!1,mxGraph.prototype.autoScroll=!0,mxGraph.prototype.timerAutoScroll=!1,mxGraph.prototype.allowAutoPanning=!1,mxGraph.prototype.ignoreScrollbars=!1,mxGraph.prototype.autoExtend=!0,mxGraph.prototype.maximumGraphBounds=null,mxGraph.prototype.minimumGraphSize=null,mxGraph.prototype.minimumContainerSize=null,mxGraph.prototype.maximumContainerSize=null,mxGraph.prototype.resizeContainer=!1,mxGraph.prototype.border=0,mxGraph.prototype.ordered=!0,mxGraph.prototype.keepEdgesInForeground=!1,mxGraph.prototype.keepEdgesInBackground=!0,mxGraph.prototype.allowNegativeCoordinates=!0,mxGraph.prototype.constrainChildren=!0,mxGraph.prototype.extendParents=!0,mxGraph.prototype.extendParentsOnAdd=!0,mxGraph.prototype.collapseToPreferredSize=!0,mxGraph.prototype.zoomFactor=1.2,mxGraph.prototype.keepSelectionVisibleOnZoom=!1,mxGraph.prototype.centerZoom=!0,mxGraph.prototype.resetViewOnRootChange=!0,mxGraph.prototype.resetEdgesOnResize=!1,mxGraph.prototype.resetEdgesOnMove=!1,mxGraph.prototype.resetEdgesOnConnect=!0,mxGraph.prototype.allowLoops=!1,mxGraph.prototype.defaultLoopStyle=mxEdgeStyle.Loop,mxGraph.prototype.multigraph=!0,mxGraph.prototype.connectableEdges=!1,mxGraph.prototype.allowDanglingEdges=!0,mxGraph.prototype.cloneInvalidEdges=!1,mxGraph.prototype.disconnectOnMove=!0,mxGraph.prototype.labelsVisible=!0,mxGraph.prototype.htmlLabels=!1,mxGraph.prototype.swimlaneSelectionEnabled=!0,mxGraph.prototype.swimlaneNesting=!0,mxGraph.prototype.swimlaneIndicatorColorAttribute=mxConstants.STYLE_FILLCOLOR,mxGraph.prototype.imageBundles=null,mxGraph.prototype.minFitScale=.1,mxGraph.prototype.maxFitScale=8,mxGraph.prototype.panDx=0,mxGraph.prototype.panDy=0,mxGraph.prototype.collapsedImage=new mxImage(mxClient.imageBasePath+"/collapsed.gif",9,9),mxGraph.prototype.expandedImage=new mxImage(mxClient.imageBasePath+"/expanded.gif",9,9),mxGraph.prototype.warningImage=new mxImage("/assets/plugins/mxgraph/images/warning.gif",16,16),mxGraph.prototype.alreadyConnectedResource="none"!=mxClient.language?"alreadyConnected":"",mxGraph.prototype.containsValidationErrorsResource="none"!=mxClient.language?"containsValidationErrors":"",mxGraph.prototype.collapseExpandResource="none"!=mxClient.language?"collapse-expand":"",mxGraph.prototype.init=function(e){this.container=e,this.cellEditor=this.createCellEditor(),this.view.init(),this.sizeDidChange(),mxClient.IS_IE&&(mxEvent.addListener(window,"unload",mxUtils.bind(this,function(){this.destroy()})),mxEvent.addListener(e,"selectstart",mxUtils.bind(this,function(){return this.isEditing()}))),8==document.documentMode&&e.insertAdjacentHTML("beforeend",'<v:group style="DISPLAY: none;"></v:group>')},mxGraph.prototype.createHandlers=function(e){this.tooltipHandler=new mxTooltipHandler(this),this.tooltipHandler.setEnabled(!1),this.panningHandler=new mxPanningHandler(this),this.panningHandler.panningEnabled=!1,this.selectionCellsHandler=new mxSelectionCellsHandler(this),this.connectionHandler=new mxConnectionHandler(this),this.connectionHandler.setEnabled(!1),this.graphHandler=new mxGraphHandler(this)},mxGraph.prototype.createSelectionModel=function(){return new mxGraphSelectionModel(this)},mxGraph.prototype.createStylesheet=function(){return new mxStylesheet},mxGraph.prototype.createGraphView=function(){return new mxGraphView(this)},mxGraph.prototype.createCellRenderer=function(){return new mxCellRenderer},mxGraph.prototype.createCellEditor=function(){return new mxCellEditor(this)},mxGraph.prototype.getModel=function(){return this.model},mxGraph.prototype.getView=function(){return this.view},mxGraph.prototype.getStylesheet=function(){return this.stylesheet},mxGraph.prototype.setStylesheet=function(e){this.stylesheet=e},mxGraph.prototype.getSelectionModel=function(){return this.selectionModel},mxGraph.prototype.setSelectionModel=function(e){this.selectionModel=e},mxGraph.prototype.getSelectionCellsForChanges=function(e){for(var n=[],t=0;t<e.length;t++){var a=e[t];if(a.constructor!=mxRootChange){var i=null;a instanceof mxChildChange&&null==a.previous?i=a.child:null!=a.cell&&a.cell instanceof mxCell&&(i=a.cell),null!=i&&mxUtils.indexOf(n,i)<0&&n.push(i)}}return this.getModel().getTopmostCells(n)},mxGraph.prototype.graphModelChanged=function(e){for(var n=0;n<e.length;n++)this.processChange(e[n]);this.removeSelectionCells(this.getRemovedCellsForChanges(e)),this.view.validate(),this.sizeDidChange()},mxGraph.prototype.getRemovedCellsForChanges=function(e){for(var n=[],t=0;t<e.length;t++){var a=e[t];if(a instanceof mxRootChange)break;a instanceof mxChildChange?null!=a.previous&&null==a.parent&&(n=n.concat(this.model.getDescendants(a.child))):a instanceof mxVisibleChange&&(n=n.concat(this.model.getDescendants(a.cell)))}return n},mxGraph.prototype.processChange=function(e){if(e instanceof mxRootChange)this.clearSelection(),this.removeStateForCell(e.previous),this.resetViewOnRootChange&&(this.view.scale=1,this.view.translate.x=0,this.view.translate.y=0),this.fireEvent(new mxEventObject(mxEvent.ROOT));else if(e instanceof mxChildChange){var n=this.model.getParent(e.child);null!=n?this.view.invalidate(e.child,!0,!1,null!=e.previous):(this.removeStateForCell(e.child),this.view.currentRoot==e.child&&this.home()),n!=e.previous&&(null!=n&&this.view.invalidate(n,!1,!1),null!=e.previous&&this.view.invalidate(e.previous,!1,!1))}else e instanceof mxTerminalChange||e instanceof mxGeometryChange?this.view.invalidate(e.cell):e instanceof mxValueChange?this.view.invalidate(e.cell,!1,!1):e instanceof mxStyleChange?(this.view.invalidate(e.cell,!0,!0,!1),this.view.removeState(e.cell)):null!=e.cell&&e.cell instanceof mxCell&&this.removeStateForCell(e.cell)},mxGraph.prototype.removeStateForCell=function(e){for(var n=this.model.getChildCount(e),t=0;t<n;t++)this.removeStateForCell(this.model.getChildAt(e,t));this.view.removeState(e)},mxGraph.prototype.addCellOverlay=function(e,n){null==e.overlays&&(e.overlays=[]),e.overlays.push(n);var t=this.view.getState(e);return null!=t&&this.cellRenderer.redraw(t),this.fireEvent(new mxEventObject(mxEvent.ADD_OVERLAY,"cell",e,"overlay",n)),n},mxGraph.prototype.getCellOverlays=function(e){return e.overlays},mxGraph.prototype.removeCellOverlay=function(e,n){if(null==n)this.removeCellOverlays(e);else{var t=mxUtils.indexOf(e.overlays,n);0<=t?(e.overlays.splice(t,1),0==e.overlays.length&&(e.overlays=null),null!=(t=this.view.getState(e))&&this.cellRenderer.redraw(t),this.fireEvent(new mxEventObject(mxEvent.REMOVE_OVERLAY,"cell",e,"overlay",n))):n=null}return n},mxGraph.prototype.removeCellOverlays=function(e){var n=e.overlays;if(null!=n){e.overlays=null;var t=this.view.getState(e);for(null!=t&&this.cellRenderer.redraw(t),t=0;t<n.length;t++)this.fireEvent(new mxEventObject(mxEvent.REMOVE_OVERLAY,"cell",e,"overlay",n[t]))}return n},mxGraph.prototype.clearCellOverlays=function(e){e=null!=e?e:this.model.getRoot(),this.removeCellOverlays(e);for(var n=this.model.getChildCount(e),t=0;t<n;t++){var a=this.model.getChildAt(e,t);this.clearCellOverlays(a)}},mxGraph.prototype.setCellWarning=function(t,e,n,a){return null!=e&&0<e.length?(e=new mxCellOverlay(n=null!=n?n:this.warningImage,"<font color=red>"+e+"</font>"),a&&e.addListener(mxEvent.CLICK,mxUtils.bind(this,function(e,n){this.isEnabled()&&this.setSelectionCell(t)})),this.addCellOverlay(t,e)):(this.removeCellOverlays(t),null)},mxGraph.prototype.startEditing=function(e){this.startEditingAtCell(null,e)},mxGraph.prototype.startEditingAtCell=function(e,n){null==e&&(null!=(e=this.getSelectionCell())&&!this.isCellEditable(e)&&(e=null)),null!=e&&(this.fireEvent(new mxEventObject(mxEvent.START_EDITING,"cell",e,"event",n)),this.cellEditor.startEditing(e,n))},mxGraph.prototype.getEditingValue=function(e,n){return this.convertValueToString(e)},mxGraph.prototype.stopEditing=function(e){this.cellEditor.stopEditing(e)},mxGraph.prototype.labelChanged=function(e,n,t){this.model.beginUpdate();try{this.cellLabelChanged(e,n,this.isAutoSizeCell(e)),this.fireEvent(new mxEventObject(mxEvent.LABEL_CHANGED,"cell",e,"value",n,"event",t))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellLabelChanged=function(e,n,t){this.model.beginUpdate();try{this.model.setValue(e,n),t&&this.cellSizeUpdated(e,!1)}finally{this.model.endUpdate()}},mxGraph.prototype.escape=function(e){this.stopEditing(!0),this.connectionHandler.reset(),this.graphHandler.reset(),e=this.getSelectionCells();for(var n=0;n<e.length;n++){var t=this.view.getState(e[n]);null!=t&&null!=t.handler&&t.handler.reset()}},mxGraph.prototype.click=function(e){var n=e.getEvent(),t=e.getCell(),a=new mxEventObject(mxEvent.CLICK,"event",n,"cell",t);e.isConsumed()&&a.consume(),this.fireEvent(a),this.isEnabled()&&!mxEvent.isConsumed(n)&&!a.isConsumed()&&(null!=t?this.selectCellForEvent(t,n):(t=null,this.isSwimlaneSelectionEnabled()&&(t=this.getSwimlaneAt(e.getGraphX(),e.getGraphY())),null!=t?this.selectCellForEvent(t,n):this.isToggleEvent(n)||this.clearSelection()))},mxGraph.prototype.dblClick=function(e,n){var t=new mxEventObject(mxEvent.DOUBLE_CLICK,"event",e,"cell",n);this.fireEvent(t),this.isEnabled()&&!mxEvent.isConsumed(e)&&!t.isConsumed()&&null!=n&&this.isCellEditable(n)&&this.startEditingAtCell(n,e)},mxGraph.prototype.scrollPointToVisible=function(e,n,t,a){if(this.timerAutoScroll||!this.ignoreScrollbars&&!mxUtils.hasScrollbars(this.container))this.allowAutoPanning&&!this.panningHandler.active&&(null==this.panningManager&&(this.panningManager=this.createPanningManager()),this.panningManager.panTo(e+this.panDx,n+this.panDy));else{var i=this.container;if(a=null!=a?a:20,e>=i.scrollLeft&&n>=i.scrollTop&&e<=i.scrollLeft+i.clientWidth&&n<=i.scrollTop+i.clientHeight){var s=i.scrollLeft+i.clientWidth-e;if(s<a){if(e=i.scrollLeft,i.scrollLeft+=a-s,t&&e==i.scrollLeft){if(this.dialect==mxConstants.DIALECT_SVG){e=this.view.getDrawPane().ownerSVGElement;var o=this.container.scrollWidth+a-s}else o=Math.max(i.clientWidth,i.scrollWidth)+a-s,e=this.view.getCanvas();e.style.width=o+"px",i.scrollLeft+=a-s}}else(s=e-i.scrollLeft)<a&&(i.scrollLeft-=a-s);(s=i.scrollTop+i.clientHeight-n)<a?(e=i.scrollTop,i.scrollTop+=a-s,e==i.scrollTop&&t&&(this.dialect==mxConstants.DIALECT_SVG?(e=this.view.getDrawPane().ownerSVGElement,n=this.container.scrollHeight+a-s):(n=Math.max(i.clientHeight,i.scrollHeight)+a-s,e=this.view.getCanvas()),e.style.height=n+"px",i.scrollTop+=a-s)):(s=n-i.scrollTop)<a&&(i.scrollTop-=a-s)}}},mxGraph.prototype.createPanningManager=function(){return new mxPanningManager(this)},mxGraph.prototype.getBorderSizes=function(){function e(e){var n=0;n="thin"==e?2:"medium"==e?4:"thick"==e?6:parseInt(e);return isNaN(n)&&(n=0),n}var n=mxUtils.getCurrentStyle(this.container),t=new mxRectangle;return t.x=e(n.borderLeftWidth)+parseInt(n.paddingLeft||0),t.y=e(n.borderTopWidth)+parseInt(n.paddingTop||0),t.width=e(n.borderRightWidth)+parseInt(n.paddingRight||0),t.height=e(n.borderBottomWidth)+parseInt(n.paddingBottom||0),t},mxGraph.prototype.getPreferredPageSize=function(e,n,t){e=this.view.scale;var a=this.view.translate,i=this.pageFormat,s=e*this.pageScale;i=new mxRectangle(0,0,i.width*s,i.height*s);return n=this.pageBreaksVisible?Math.ceil(n/i.width):1,t=this.pageBreaksVisible?Math.ceil(t/i.height):1,new mxRectangle(0,0,n*i.width+2+a.x/e,t*i.height+2+a.y/e)},mxGraph.prototype.sizeDidChange=function(){var e=this.getGraphBounds();if(null!=this.container){var n=this.getBorder(),t=Math.max(0,e.x+e.width+1+n);n=Math.max(0,e.y+e.height+1+n);if(null!=this.minimumContainerSize&&(t=Math.max(t,this.minimumContainerSize.width),n=Math.max(n,this.minimumContainerSize.height)),this.resizeContainer&&this.doResizeContainer(t,n),this.preferPageSize||!mxClient.IS_IE&&this.pageVisible){var a=this.getPreferredPageSize(e,t,n);null!=a&&(t=a.width,n=a.height)}null!=this.minimumGraphSize&&(t=Math.max(t,this.minimumGraphSize.width*this.view.scale),n=Math.max(n,this.minimumGraphSize.height*this.view.scale)),t=Math.ceil(t-1),n=Math.ceil(n-1),this.dialect==mxConstants.DIALECT_SVG?((a=this.view.getDrawPane().ownerSVGElement).style.minWidth=Math.max(1,t)+"px",a.style.minHeight=Math.max(1,n)+"px",a.style.width="100%",a.style.height="100%"):mxClient.IS_QUIRKS?this.view.updateHtmlCanvasSize(Math.max(1,t),Math.max(1,n)):(this.view.canvas.style.minWidth=Math.max(1,t)+"px",this.view.canvas.style.minHeight=Math.max(1,n)+"px"),this.updatePageBreaks(this.pageBreaksVisible,t-1,n-1)}this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",e))},mxGraph.prototype.doResizeContainer=function(e,n){if(mxClient.IS_IE)if(mxClient.IS_QUIRKS){var t=this.getBorderSizes();e+=Math.max(2,t.x+t.width+1),n+=Math.max(2,t.y+t.height+1)}else 9<=document.documentMode?(e+=3,n+=5):(e+=1,n+=1);else n+=1;null!=this.maximumContainerSize&&(e=Math.min(this.maximumContainerSize.width,e),n=Math.min(this.maximumContainerSize.height,n)),this.container.style.width=Math.ceil(e)+"px",this.container.style.height=Math.ceil(n)+"px"},mxGraph.prototype.updatePageBreaks=function(e,n,t){var a=this.view.scale,i=this.view.translate,s=this.pageFormat,o=a*this.pageScale;i=new mxRectangle(a*i.x,a*i.y,s.width*o,s.height*o);if(e=e&&Math.min(i.width,i.height)>this.minPageBreakDist,i.x=mxUtils.mod(i.x,i.width),i.y=mxUtils.mod(i.y,i.height),s=e?Math.ceil((n-i.x)/i.width):0,e=e?Math.ceil((t-i.y)/i.height):0,null==this.horizontalPageBreaks&&0<s&&(this.horizontalPageBreaks=[]),null!=this.horizontalPageBreaks){for(o=0;o<=s;o++){var r=[new mxPoint(i.x+o*i.width,1),new mxPoint(i.x+o*i.width,t)];null!=this.horizontalPageBreaks[o]?(this.horizontalPageBreaks[o].scale=1,this.horizontalPageBreaks[o].points=r,this.horizontalPageBreaks[o].redraw()):((r=new mxPolyline(r,this.pageBreakColor,this.scale)).dialect=this.dialect,r.isDashed=this.pageBreakDashed,r.scale=a,r.init(this.view.backgroundPane),r.redraw(),this.horizontalPageBreaks[o]=r)}for(o=s;o<this.horizontalPageBreaks.length;o++)this.horizontalPageBreaks[o].destroy();this.horizontalPageBreaks.splice(s,this.horizontalPageBreaks.length-s)}if(null==this.verticalPageBreaks&&0<e&&(this.verticalPageBreaks=[]),null!=this.verticalPageBreaks){for(o=0;o<=e;o++)r=[new mxPoint(1,i.y+o*i.height),new mxPoint(n,i.y+o*i.height)],null!=this.verticalPageBreaks[o]?(this.verticalPageBreaks[o].scale=1,this.verticalPageBreaks[o].points=r,this.verticalPageBreaks[o].redraw()):((r=new mxPolyline(r,this.pageBreakColor,a)).dialect=this.dialect,r.isDashed=this.pageBreakDashed,r.scale=a,r.init(this.view.backgroundPane),r.redraw(),this.verticalPageBreaks[o]=r);for(o=e;o<this.verticalPageBreaks.length;o++)this.verticalPageBreaks[o].destroy();this.verticalPageBreaks.splice(e,this.verticalPageBreaks.length-e)}},mxGraph.prototype.getCellStyle=function(e){var n=this.model.getStyle(e),t=null;t=this.model.isEdge(e)?this.stylesheet.getDefaultEdgeStyle():this.stylesheet.getDefaultVertexStyle();return null!=n&&(t=this.postProcessCellStyle(this.stylesheet.getCellStyle(n,t))),null==t&&(t=mxGraph.prototype.EMPTY_ARRAY),t},mxGraph.prototype.postProcessCellStyle=function(e){if(null!=e){var n=e[mxConstants.STYLE_IMAGE],t=this.getImageFromBundles(n);null!=t?e[mxConstants.STYLE_IMAGE]=t:t=n,null!=t&&"data:image/"==t.substring(0,11)&&(0<(n=t.indexOf(","))&&(t=t.substring(0,n)+";base64,"+t.substring(n+1)),e[mxConstants.STYLE_IMAGE]=t)}return e},mxGraph.prototype.setCellStyle=function(e,n){if(null!=(n=n||this.getSelectionCells())){this.model.beginUpdate();try{for(var t=0;t<n.length;t++)this.model.setStyle(n[t],e)}finally{this.model.endUpdate()}}},mxGraph.prototype.toggleCellStyle=function(e,n,t){t=t||this.getSelectionCell(),this.toggleCellStyles(e,n,[t])},mxGraph.prototype.toggleCellStyles=function(e,n,t){var a;(n=null!=n&&n,null!=(t=t||this.getSelectionCells())&&0<t.length)&&(null!=(a=null!=(a=this.view.getState(t[0]))?a.style:this.getCellStyle(t[0]))&&(n=mxUtils.getValue(a,e,n)?0:1,this.setCellStyles(e,n,t)))},mxGraph.prototype.setCellStyles=function(e,n,t){t=t||this.getSelectionCells(),mxUtils.setCellStyles(this.model,t,e,n)},mxGraph.prototype.toggleCellStyleFlags=function(e,n,t){this.setCellStyleFlags(e,n,null,t)},mxGraph.prototype.setCellStyleFlags=function(e,n,t,a){if(null!=(a=a||this.getSelectionCells())&&0<a.length){var i;if(null==t)null!=(i=null!=(i=this.view.getState(a[0]))?i.style:this.getCellStyle(a[0]))&&(t=(parseInt(i[e]||0)&n)!=n);mxUtils.setCellStyleFlags(this.model,a,e,n,t)}},mxGraph.prototype.alignCells=function(e,n,t){if(null==n&&(n=this.getSelectionCells()),null!=n&&1<n.length){if(null==t)for(var a=0;a<n.length;a++){var i=this.getCellGeometry(n[a]);if(null!=i&&!this.model.isEdge(n[a]))if(null==t){if(e==mxConstants.ALIGN_CENTER){t=i.x+i.width/2;break}if(e==mxConstants.ALIGN_RIGHT)t=i.x+i.width;else if(e==mxConstants.ALIGN_TOP)t=i.y;else{if(e==mxConstants.ALIGN_MIDDLE){t=i.y+i.height/2;break}t=e==mxConstants.ALIGN_BOTTOM?i.y+i.height:i.x}}else t=e==mxConstants.ALIGN_RIGHT?Math.max(t,i.x+i.width):e==mxConstants.ALIGN_TOP?Math.min(t,i.y):e==mxConstants.ALIGN_BOTTOM?Math.max(t,i.y+i.height):Math.min(t,i.x)}if(null!=t){this.model.beginUpdate();try{for(a=0;a<n.length;a++)null!=(i=this.getCellGeometry(n[a]))&&!this.model.isEdge(n[a])&&(i=i.clone(),e==mxConstants.ALIGN_CENTER?i.x=t-i.width/2:e==mxConstants.ALIGN_RIGHT?i.x=t-i.width:e==mxConstants.ALIGN_TOP?i.y=t:e==mxConstants.ALIGN_MIDDLE?i.y=t-i.height/2:e==mxConstants.ALIGN_BOTTOM?i.y=t-i.height:i.x=t,this.model.setGeometry(n[a],i));this.fireEvent(new mxEventObject(mxEvent.ALIGN_CELLS,"align",e,"cells",n))}finally{this.model.endUpdate()}}}return n},mxGraph.prototype.flipEdge=function(e){if(null!=e&&null!=this.alternateEdgeStyle){this.model.beginUpdate();try{var n=this.model.getStyle(e);null==n||0==n.length?this.model.setStyle(e,this.alternateEdgeStyle):this.model.setStyle(e,null),this.resetEdge(e),this.fireEvent(new mxEventObject(mxEvent.FLIP_EDGE,"edge",e))}finally{this.model.endUpdate()}}return e},mxGraph.prototype.addImageBundle=function(e){this.imageBundles.push(e)},mxGraph.prototype.removeImageBundle=function(e){for(var n=[],t=0;t<this.imageBundles.length;t++)this.imageBundles[t]!=e&&n.push(this.imageBundles[t]);this.imageBundles=n},mxGraph.prototype.getImageFromBundles=function(e){if(null!=e)for(var n=0;n<this.imageBundles.length;n++){var t=this.imageBundles[n].getImage(e);if(null!=t)return t}return null},mxGraph.prototype.orderCells=function(e,n){null==n&&(n=mxUtils.sortCells(this.getSelectionCells(),!0)),this.model.beginUpdate();try{this.cellsOrdered(n,e),this.fireEvent(new mxEventObject(mxEvent.ORDER_CELLS,"back",e,"cells",n))}finally{this.model.endUpdate()}return n},mxGraph.prototype.cellsOrdered=function(e,n){if(null!=e){this.model.beginUpdate();try{for(var t=0;t<e.length;t++){var a=this.model.getParent(e[t]);n?this.model.add(a,e[t],t):this.model.add(a,e[t],this.model.getChildCount(a)-1)}this.fireEvent(new mxEventObject(mxEvent.CELLS_ORDERED,"back",n,"cells",e))}finally{this.model.endUpdate()}}},mxGraph.prototype.groupCells=function(e,n,t){null==t&&(t=mxUtils.sortCells(this.getSelectionCells(),!0)),t=this.getCellsForGroup(t),null==e&&(e=this.createGroupCell(t));var a=this.getBoundsForGroup(e,t,n);if(0<t.length&&null!=a){var i=this.model.getParent(e);null==i&&(i=this.model.getParent(t[0])),this.model.beginUpdate();try{null==this.getCellGeometry(e)&&this.model.setGeometry(e,new mxGeometry);var s=this.model.getChildCount(i);this.cellsAdded([e],i,s,null,null,!1),s=this.model.getChildCount(e),this.cellsAdded(t,e,s,null,null,!1,!1),this.cellsMoved(t,-a.x,-a.y,!1,!0),this.cellsResized([e],[a]),this.fireEvent(new mxEventObject(mxEvent.GROUP_CELLS,"group",e,"border",n,"cells",t))}finally{this.model.endUpdate()}}return e},mxGraph.prototype.getCellsForGroup=function(e){var n=[];if(null!=e&&0<e.length){var t=this.model.getParent(e[0]);n.push(e[0]);for(var a=1;a<e.length;a++)this.model.getParent(e[a])==t&&n.push(e[a])}return n},mxGraph.prototype.getBoundsForGroup=function(e,n,t){return null!=(n=this.getBoundingBoxFromGeometry(n))&&(this.isSwimlane(e)&&(e=this.getStartSize(e),n.x-=e.width,n.y-=e.height,n.width+=e.width,n.height+=e.height),n.x-=t,n.y-=t,n.width+=2*t,n.height+=2*t),n},mxGraph.prototype.createGroupCell=function(e){return(e=new mxCell("")).setVertex(!0),e.setConnectable(!1),e},mxGraph.prototype.ungroupCells=function(e){var n=[];if(null==e){e=this.getSelectionCells();for(var t=[],a=0;a<e.length;a++)0<this.model.getChildCount(e[a])&&t.push(e[a]);e=t}if(null!=e&&0<e.length){this.model.beginUpdate();try{for(a=0;a<e.length;a++){if(null!=(i=this.model.getChildren(e[a]))&&0<i.length){var i=i.slice(),s=this.model.getParent(e[a]),o=this.model.getChildCount(s);this.cellsAdded(i,s,o,null,null,!0),n=n.concat(i)}}this.cellsRemoved(this.addAllEdges(e)),this.fireEvent(new mxEventObject(mxEvent.UNGROUP_CELLS,"cells",e))}finally{this.model.endUpdate()}}return n},mxGraph.prototype.removeCellsFromParent=function(e){null==e&&(e=this.getSelectionCells()),this.model.beginUpdate();try{var n=this.getDefaultParent(),t=this.model.getChildCount(n);this.cellsAdded(e,n,t,null,null,!0),this.fireEvent(new mxEventObject(mxEvent.REMOVE_CELLS_FROM_PARENT,"cells",e))}finally{this.model.endUpdate()}return e},mxGraph.prototype.updateGroupBounds=function(e,n,t){null==e&&(e=this.getSelectionCells()),n=null!=n?n:0,t=null!=t&&t,this.model.beginUpdate();try{for(var a=0;a<e.length;a++){if(null!=(r=this.getCellGeometry(e[a]))){var i=this.getChildCells(e[a]);if(null!=i&&0<i.length){var s=this.getBoundingBoxFromGeometry(i);if(0<s.width&&0<s.height){var o=this.isSwimlane(e[a])?this.getStartSize(e[a]):new mxRectangle,r=r.clone();t&&(r.x+=s.x-o.width-n,r.y+=s.y-o.height-n),r.width=s.width+o.width+2*n,r.height=s.height+o.height+2*n,this.model.setGeometry(e[a],r),this.moveCells(i,-s.x+o.width+n,-s.y+o.height+n)}}}}}finally{this.model.endUpdate()}return e},mxGraph.prototype.cloneCells=function(e,n){n=null==n||n;var t=null;if(null!=e){for(var a={},i=(t=[],0);i<e.length;i++){a[s=mxCellPath.create(e[i])]=e[i],t.push(e[i])}if(0<t.length){var s=this.view.scale,o=this.view.translate;for(t=this.model.cloneCells(e,!0),i=0;i<e.length;i++)if(!n&&this.model.isEdge(t[i])&&null!=this.getEdgeValidationError(t[i],this.model.getTerminal(t[i],!0),this.model.getTerminal(t[i],!1)))t[i]=null;else{var r=this.model.getGeometry(t[i]);if(null!=r){var l=this.view.getState(e[i]),d=this.view.getState(this.model.getParent(e[i]));if(null!=l&&null!=d){var c=d.origin.x;d=d.origin.y;if(this.model.isEdge(t[i])){l=l.absolutePoints;for(var m=this.model.getTerminal(e[i],!0),u=mxCellPath.create(m);null!=m&&null==a[u];)m=this.model.getParent(m),u=mxCellPath.create(m);for(null==m&&r.setTerminalPoint(new mxPoint(l[0].x/s-o.x,l[0].y/s-o.y),!0),m=this.model.getTerminal(e[i],!1),u=mxCellPath.create(m);null!=m&&null==a[u];)m=this.model.getParent(m),u=mxCellPath.create(m);if(null==m&&(m=l.length-1,r.setTerminalPoint(new mxPoint(l[m].x/s-o.x,l[m].y/s-o.y),!1)),null!=(r=r.points))for(l=0;l<r.length;l++)r[l].x+=c,r[l].y+=d}else r.x+=c,r.y+=d}}}}else t=[]}return t},mxGraph.prototype.insertVertex=function(e,n,t,a,i,s,o,r,l){return n=this.createVertex(e,n,t,a,i,s,o,r,l),this.addCell(n,e)},mxGraph.prototype.createVertex=function(e,n,t,a,i,s,o,r,l){return(e=new mxGeometry(a,i,s,o)).relative=null!=l&&l,(t=new mxCell(t,e,r)).setId(n),t.setVertex(!0),t.setConnectable(!0),t},mxGraph.prototype.insertEdge=function(e,n,t,a,i,s){return n=this.createEdge(e,n,t,a,i,s),this.addEdge(n,e,a,i)},mxGraph.prototype.createEdge=function(e,n,t,a,i,s){return(e=new mxCell(t,new mxGeometry,s)).setId(n),e.setEdge(!0),e.geometry.relative=!0,e},mxGraph.prototype.addEdge=function(e,n,t,a,i){return this.addCell(e,n,i,t,a)},mxGraph.prototype.addCell=function(e,n,t,a,i){return this.addCells([e],n,t,a,i)[0]},mxGraph.prototype.addCells=function(e,n,t,a,i){null==n&&(n=this.getDefaultParent()),null==t&&(t=this.model.getChildCount(n)),this.model.beginUpdate();try{this.cellsAdded(e,n,t,a,i,!1,!0),this.fireEvent(new mxEventObject(mxEvent.ADD_CELLS,"cells",e,"parent",n,"index",t,"source",a,"target",i))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellsAdded=function(e,n,t,a,i,s,o){if(null!=e&&null!=n&&null!=t){this.model.beginUpdate();try{for(var r=null!=(d=s?this.view.getState(n):null)?d.origin:null,l=new mxPoint(0,0),d=0;d<e.length;d++)if(null==e[d])t--;else{var c=this.model.getParent(e[d]);if(null!=r&&e[d]!=n&&n!=c){var m=this.view.getState(c),u=null!=m?m.origin:l;if(null!=(p=this.model.getGeometry(e[d]))){var p,g=u.x-r.x,v=u.y-r.y;(p=p.clone()).translate(g,v),!p.relative&&this.model.isVertex(e[d])&&!this.isAllowNegativeCoordinates()&&(p.x=Math.max(0,p.x),p.y=Math.max(0,p.y)),this.model.setGeometry(e[d],p)}}n==c&&t+d>this.model.getChildCount(n)&&t--,this.model.add(n,e[d],t+d),this.isExtendParentsOnAdd()&&this.isExtendParent(e[d])&&this.extendParent(e[d]),(null==o||o)&&this.constrainChild(e[d]),null!=a&&this.cellConnected(e[d],a,!0),null!=i&&this.cellConnected(e[d],i,!1)}this.fireEvent(new mxEventObject(mxEvent.CELLS_ADDED,"cells",e,"parent",n,"index",t,"source",a,"target",i,"absolute",s))}finally{this.model.endUpdate()}}},mxGraph.prototype.removeCells=function(e,n){n=null==n||n,null==e&&(e=this.getDeletableCells(this.getSelectionCells())),n&&(e=this.getDeletableCells(this.addAllEdges(e))),this.model.beginUpdate();try{this.cellsRemoved(e),this.fireEvent(new mxEventObject(mxEvent.REMOVE_CELLS,"cells",e,"includeEdges",n))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellsRemoved=function(e){if(null!=e&&0<e.length){var n=this.view.scale,t=this.view.translate;this.model.beginUpdate();try{for(var a={},i=0;i<e.length;i++){var s=mxCellPath.create(e[i]);a[s]=e[i]}for(i=0;i<e.length;i++){for(var o=this.getConnections(e[i]),r=0;r<o.length;r++)if(null==a[s=mxCellPath.create(o[r])]){if(null!=(d=this.model.getGeometry(o[r]))){var l=this.view.getState(o[r]);if(null!=l){var d=d.clone(),c=l.getVisibleTerminal(!0)==e[i],m=l.absolutePoints,u=c?0:m.length-1;d.setTerminalPoint(new mxPoint(m[u].x/n-t.x,m[u].y/n-t.y),c),this.model.setTerminal(o[r],null,c),this.model.setGeometry(o[r],d)}}}this.model.remove(e[i])}this.fireEvent(new mxEventObject(mxEvent.CELLS_REMOVED,"cells",e))}finally{this.model.endUpdate()}}},mxGraph.prototype.splitEdge=function(e,n,t,a,i){a=a||0,i=i||0,null==t&&(t=this.cloneCells([e])[0]);var s=this.model.getParent(e),o=this.model.getTerminal(e,!0);this.model.beginUpdate();try{this.cellsMoved(n,a,i,!1,!1),this.cellsAdded(n,s,this.model.getChildCount(s),null,null,!0),this.cellsAdded([t],s,this.model.getChildCount(s),o,n[0],!1),this.cellConnected(e,n[0],!0),this.fireEvent(new mxEventObject(mxEvent.SPLIT_EDGE,"edge",e,"cells",n,"newEdge",t,"dx",a,"dy",i))}finally{this.model.endUpdate()}return t},mxGraph.prototype.toggleCells=function(e,n,t){null==n&&(n=this.getSelectionCells()),t&&(n=this.addAllEdges(n)),this.model.beginUpdate();try{this.cellsToggled(n,e),this.fireEvent(new mxEventObject(mxEvent.TOGGLE_CELLS,"show",e,"cells",n,"includeEdges",t))}finally{this.model.endUpdate()}return n},mxGraph.prototype.cellsToggled=function(e,n){if(null!=e&&0<e.length){this.model.beginUpdate();try{for(var t=0;t<e.length;t++)this.model.setVisible(e[t],n)}finally{this.model.endUpdate()}}},mxGraph.prototype.foldCells=function(e,n,t,a){n=null!=n&&n,null==t&&(t=this.getFoldableCells(this.getSelectionCells(),e)),this.stopEditing(!1),this.model.beginUpdate();try{this.cellsFolded(t,e,n,a),this.fireEvent(new mxEventObject(mxEvent.FOLD_CELLS,"collapse",e,"recurse",n,"cells",t))}finally{this.model.endUpdate()}return t},mxGraph.prototype.cellsFolded=function(e,n,t,a){if(null!=e&&0<e.length){this.model.beginUpdate();try{for(var i=0;i<e.length;i++)if((!a||this.isCellFoldable(e[i],n))&&n!=this.isCellCollapsed(e[i])&&(this.model.setCollapsed(e[i],n),this.swapBounds(e[i],n),this.isExtendParent(e[i])&&this.extendParent(e[i]),t)){var s=this.model.getChildren(e[i]);this.foldCells(s,n,t)}this.fireEvent(new mxEventObject(mxEvent.CELLS_FOLDED,"cells",e,"collapse",n,"recurse",t))}finally{this.model.endUpdate()}}},mxGraph.prototype.swapBounds=function(e,n){if(null!=e){var t=this.model.getGeometry(e);null!=t&&(t=t.clone(),this.updateAlternateBounds(e,t,n),t.swap(),this.model.setGeometry(e,t))}},mxGraph.prototype.updateAlternateBounds=function(e,n,t){if(null!=e&&null!=n){if(t=null!=(t=this.view.getState(e))?t.style:this.getCellStyle(e),null==n.alternateBounds){var a=n;this.collapseToPreferredSize&&(null!=(e=this.getPreferredSizeForCell(e))&&(a=e,0<(e=mxUtils.getValue(t,mxConstants.STYLE_STARTSIZE))&&(a.height=Math.max(a.height,e)))),n.alternateBounds=new mxRectangle(0,0,a.width,a.height)}if(null!=n.alternateBounds){n.alternateBounds.x=n.x,n.alternateBounds.y=n.y;var i=mxUtils.toRadians(t[mxConstants.STYLE_ROTATION]||"0");0!=i&&(e=n.alternateBounds.getCenterX()-n.getCenterX(),t=n.alternateBounds.getCenterY()-n.getCenterY(),a=Math.cos(i),i=Math.sin(i),n.alternateBounds.x+=a*e-i*t-e,n.alternateBounds.y+=i*e+a*t-t)}}},mxGraph.prototype.addAllEdges=function(e){var n=e.slice();return n.concat(this.getAllEdges(e))},mxGraph.prototype.getAllEdges=function(e){var n=[];if(null!=e)for(var t=0;t<e.length;t++){for(var a=this.model.getEdgeCount(e[t]),i=0;i<a;i++)n.push(this.model.getEdgeAt(e[t],i));a=this.model.getChildren(e[t]),n=n.concat(this.getAllEdges(a))}return n},mxGraph.prototype.updateCellSize=function(e,n){n=null!=n&&n,this.model.beginUpdate();try{this.cellSizeUpdated(e,n),this.fireEvent(new mxEventObject(mxEvent.UPDATE_CELL_SIZE,"cell",e,"ignoreChildren",n))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellSizeUpdated=function(e,n){if(null!=e){this.model.beginUpdate();try{var t=this.getPreferredSizeForCell(e),a=this.model.getGeometry(e);if(null!=t&&null!=a){var i=this.isCellCollapsed(e);a=a.clone();if(this.isSwimlane(e)){var s=this.view.getState(e),o=null!=s?s.style:this.getCellStyle(e),r=this.model.getStyle(e);null==r&&(r=""),mxUtils.getValue(o,mxConstants.STYLE_HORIZONTAL,!0)?(r=mxUtils.setStyle(r,mxConstants.STYLE_STARTSIZE,t.height+8),i&&(a.height=t.height+8),a.width=t.width):(r=mxUtils.setStyle(r,mxConstants.STYLE_STARTSIZE,t.width+8),i&&(a.width=t.width+8),a.height=t.height),this.model.setStyle(e,r)}else a.width=t.width,a.height=t.height;if(!n&&!i){var l=this.view.getBounds(this.model.getChildren(e));if(null!=l){var d=this.view.translate,c=this.view.scale,m=(l.y+l.height)/c-a.y-d.y;a.width=Math.max(a.width,(l.x+l.width)/c-a.x-d.x),a.height=Math.max(a.height,m)}}this.cellsResized([e],[a])}}finally{this.model.endUpdate()}}},mxGraph.prototype.getPreferredSizeForCell=function(e){var n=null;if(null!=e){var t=this.view.getState(e),a=null!=t?t.style:this.getCellStyle(e);if(null!=a&&!this.model.isEdge(e)){var i=a[mxConstants.STYLE_FONTSIZE]||mxConstants.DEFAULT_FONTSIZE,s=0;n=0;null==this.getImage(t)&&null==a[mxConstants.STYLE_IMAGE]||a[mxConstants.STYLE_SHAPE]!=mxConstants.SHAPE_LABEL||(a[mxConstants.STYLE_VERTICAL_ALIGN]==mxConstants.ALIGN_MIDDLE&&(s+=parseFloat(a[mxConstants.STYLE_IMAGE_WIDTH])||mxLabel.prototype.imageSize),a[mxConstants.STYLE_ALIGN]!=mxConstants.ALIGN_CENTER&&(n+=parseFloat(a[mxConstants.STYLE_IMAGE_HEIGHT])||mxLabel.prototype.imageSize)),s+=2*(a[mxConstants.STYLE_SPACING]||0),s+=a[mxConstants.STYLE_SPACING_LEFT]||0,s+=a[mxConstants.STYLE_SPACING_RIGHT]||0,n+=2*(a[mxConstants.STYLE_SPACING]||0),n+=a[mxConstants.STYLE_SPACING_TOP]||0,n+=a[mxConstants.STYLE_SPACING_BOTTOM]||0,null!=(t=this.getFoldingImage(t))&&(s+=t.width+8),n=null!=(t=this.getLabel(e))&&0<t.length?(this.isHtmlLabel(e)||(t=t.replace(/\n/g,"<br>")),e=(i=mxUtils.getSizeForString(t,i,a[mxConstants.STYLE_FONTFAMILY])).width+s,n=i.height+n,mxUtils.getValue(a,mxConstants.STYLE_HORIZONTAL,!0)||(a=n,n=e,e=a),this.gridEnabled&&(e=this.snap(e+this.gridSize/2),n=this.snap(n+this.gridSize/2)),new mxRectangle(0,0,e,n)):new mxRectangle(0,0,a=4*this.gridSize,a)}}return n},mxGraph.prototype.handleGesture=function(e,n){if(.2<Math.abs(1-n.scale)){var t=this.view.scale,a=this.view.translate,i=e.width*n.scale,s=e.height*n.scale,o=e.y-(s-e.height)/2;t=new mxRectangle(this.snap((e.x-(i-e.width)/2)/t)-a.x,this.snap(o/t)-a.y,this.snap(i/t),this.snap(s/t));this.resizeCell(e.cell,t)}},mxGraph.prototype.resizeCell=function(e,n){return this.resizeCells([e],[n])[0]},mxGraph.prototype.resizeCells=function(e,n){this.model.beginUpdate();try{this.cellsResized(e,n),this.fireEvent(new mxEventObject(mxEvent.RESIZE_CELLS,"cells",e,"bounds",n))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellsResized=function(e,n){if(null!=e&&null!=n&&e.length==n.length){this.model.beginUpdate();try{for(var t=0;t<e.length;t++){var a=n[t],i=this.model.getGeometry(e[t]);if(null!=i&&(i.x!=a.x||i.y!=a.y||i.width!=a.width||i.height!=a.height)){if((i=i.clone()).relative){var s=i.offset;null!=s&&(s.x+=a.x-i.x,s.y+=a.y-i.y)}else i.x=a.x,i.y=a.y;i.width=a.width,i.height=a.height,!i.relative&&this.model.isVertex(e[t])&&!this.isAllowNegativeCoordinates()&&(i.x=Math.max(0,i.x),i.y=Math.max(0,i.y)),this.model.setGeometry(e[t],i),this.isExtendParent(e[t])&&this.extendParent(e[t])}}this.resetEdgesOnResize&&this.resetEdges(e),this.fireEvent(new mxEventObject(mxEvent.CELLS_RESIZED,"cells",e,"bounds",n))}finally{this.model.endUpdate()}}},mxGraph.prototype.extendParent=function(e){if(null!=e){var n=this.model.getParent(e),t=this.model.getGeometry(n);null!=n&&null!=t&&!this.isCellCollapsed(n)&&(null!=(e=this.model.getGeometry(e))&&(t.width<e.x+e.width||t.height<e.y+e.height))&&((t=t.clone()).width=Math.max(t.width,e.x+e.width),t.height=Math.max(t.height,e.y+e.height),this.cellsResized([n],[t]))}},mxGraph.prototype.importCells=function(e,n,t,a,i){return this.moveCells(e,n,t,!0,a,i)},mxGraph.prototype.moveCells=function(e,n,t,a,i,s){if(n=null!=n?n:0,t=null!=t?t:0,a=null!=a&&a,null!=e&&(0!=n||0!=t||a||null!=i)){this.model.beginUpdate();try{a&&(e=this.cloneCells(e,this.isCloneInvalidEdges()),null==i&&(i=this.getDefaultParent()));var o=this.isAllowNegativeCoordinates();if(null!=i&&this.setAllowNegativeCoordinates(!0),this.cellsMoved(e,n,t,!a&&this.isDisconnectOnMove()&&this.isAllowDanglingEdges(),null==i),this.setAllowNegativeCoordinates(o),null!=i){var r=this.model.getChildCount(i);this.cellsAdded(e,i,r,null,null,!0)}this.fireEvent(new mxEventObject(mxEvent.MOVE_CELLS,"cells",e,"dx",n,"dy",t,"clone",a,"target",i,"event",s))}finally{this.model.endUpdate()}}return e},mxGraph.prototype.cellsMoved=function(e,n,t,a,i){if(null!=e&&(0!=n||0!=t)){this.model.beginUpdate();try{a&&this.disconnectGraph(e);for(var s=0;s<e.length;s++)this.translateCell(e[s],n,t),i&&this.constrainChild(e[s]);this.resetEdgesOnMove&&this.resetEdges(e),this.fireEvent(new mxEventObject(mxEvent.CELLS_MOVED,"cells",e,"dx",t,"dy",t,"disconnect",a))}finally{this.model.endUpdate()}}},mxGraph.prototype.translateCell=function(e,n,t){var a=this.model.getGeometry(e);null!=a&&((a=a.clone()).translate(n,t),!a.relative&&this.model.isVertex(e)&&!this.isAllowNegativeCoordinates()&&(a.x=Math.max(0,a.x),a.y=Math.max(0,a.y)),a.relative&&!this.model.isEdge(e)&&(null==a.offset?a.offset=new mxPoint(n,t):(a.offset.x+=n,a.offset.y+=t)),this.model.setGeometry(e,a))},mxGraph.prototype.getCellContainmentArea=function(e){if(null!=e&&!this.model.isEdge(e)){var n=this.model.getParent(e);if(n==this.getDefaultParent()||n==this.getCurrentRoot())return this.getMaximumGraphBounds();if(null!=n&&n!=this.getDefaultParent())if(null!=(i=this.model.getGeometry(n))){var t=e=0,a=i.width,i=i.height;return this.isSwimlane(n)&&(e=(n=this.getStartSize(n)).width,a-=n.width,t=n.height,i-=n.height),new mxRectangle(e,t,a,i)}}return null},mxGraph.prototype.getMaximumGraphBounds=function(){return this.maximumGraphBounds},mxGraph.prototype.constrainChild=function(e){if(null!=e){var n=this.model.getGeometry(e),t=this.isConstrainChild(e)?this.getCellContainmentArea(e):this.getMaximumGraphBounds();null!=n&&null!=t&&!n.relative&&(n.x<t.x||n.y<t.y||t.width<n.x+n.width||t.height<n.y+n.height)&&(e=this.getOverlap(e),0<t.width&&(n.x=Math.min(n.x,t.x+t.width-(1-e)*n.width)),0<t.height&&(n.y=Math.min(n.y,t.y+t.height-(1-e)*n.height)),n.x=Math.max(n.x,t.x-n.width*e),n.y=Math.max(n.y,t.y-n.height*e))}},mxGraph.prototype.resetEdges=function(e){if(null!=e){for(var n={},t=0;t<e.length;t++){var a=mxCellPath.create(e[t]);n[a]=e[t]}this.model.beginUpdate();try{for(t=0;t<e.length;t++){var i=this.model.getEdges(e[t]);if(null!=i)for(a=0;a<i.length;a++){var s=this.view.getState(i[a]),o=null!=s?s.getVisibleTerminal(!0):this.view.getVisibleTerminal(i[a],!0),r=null!=s?s.getVisibleTerminal(!1):this.view.getVisibleTerminal(i[a],!1),l=mxCellPath.create(o),d=mxCellPath.create(r);(null==n[l]||null==n[d])&&this.resetEdge(i[a])}this.resetEdges(this.model.getChildren(e[t]))}}finally{this.model.endUpdate()}}},mxGraph.prototype.resetEdge=function(e){var n=this.model.getGeometry(e);return null!=n&&null!=n.points&&0<n.points.length&&((n=n.clone()).points=[],this.model.setGeometry(e,n)),e},mxGraph.prototype.getAllConnectionConstraints=function(e,n){return null!=e&&null!=e.shape&&null!=e.shape.stencil?e.shape.stencil.constraints:null},mxGraph.prototype.getConnectionConstraint=function(e,n,t){n=null;var a=e.style[t?mxConstants.STYLE_EXIT_X:mxConstants.STYLE_ENTRY_X];if(null!=a){var i=e.style[t?mxConstants.STYLE_EXIT_Y:mxConstants.STYLE_ENTRY_Y];null!=i&&(n=new mxPoint(parseFloat(a),parseFloat(i)))}return a=!1,null!=n&&(a=mxUtils.getValue(e.style,t?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,!0)),new mxConnectionConstraint(n,a)},mxGraph.prototype.setConnectionConstraint=function(e,n,t,a){if(null!=a){this.model.beginUpdate();try{null==a||null==a.point?(this.setCellStyles(t?mxConstants.STYLE_EXIT_X:mxConstants.STYLE_ENTRY_X,null,[e]),this.setCellStyles(t?mxConstants.STYLE_EXIT_Y:mxConstants.STYLE_ENTRY_Y,null,[e]),this.setCellStyles(t?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,null,[e])):null!=a.point&&(this.setCellStyles(t?mxConstants.STYLE_EXIT_X:mxConstants.STYLE_ENTRY_X,a.point.x,[e]),this.setCellStyles(t?mxConstants.STYLE_EXIT_Y:mxConstants.STYLE_ENTRY_Y,a.point.y,[e]),a.perimeter?this.setCellStyles(t?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,null,[e]):this.setCellStyles(t?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,"0",[e]))}finally{this.model.endUpdate()}}},mxGraph.prototype.getConnectionPoint=function(e,n){var t=null;if(null!=e){var a=this.view.getPerimeterBounds(e),i=new mxPoint(a.getCenterX(),a.getCenterY()),s=e.style[mxConstants.STYLE_DIRECTION],o=0;if(null!=s&&("north"==s?o+=270:"west"==s?o+=180:"south"==s&&(o+=90),"north"==s||"south"==s)){a.x+=a.width/2-a.height/2,a.y+=a.height/2-a.width/2;var r=a.width;a.width=a.height,a.height=r}if(null!=n.point){var l=t=1,d=0,c=0;if(this.getModel().isVertex(e.cell)){var m=e.style[mxConstants.STYLE_FLIPH],u=e.style[mxConstants.STYLE_FLIPV];null!=e.shape.stencil&&(m=1==mxUtils.getValue(e.style,"stencilFlipH",0)||m,u=1==mxUtils.getValue(e.style,"stencilFlipV",0)||u),"north"!=s&&"south"!=s||(r=m,m=u,u=r),m&&(t=-1,d=-a.width),u&&(l=-1,c=-a.height)}t=new mxPoint(a.x+n.point.x*a.width*t-d,a.y+n.point.y*a.height*l-c)}s=e.style[mxConstants.STYLE_ROTATION]||0,n.perimeter?(0!=o&&null!=t&&(r=a=0,90==o?r=1:180==o?a=-1:270==s&&(r=-1),t=mxUtils.getRotatedPoint(t,a,r,i)),null!=t&&n.perimeter&&(t=this.view.getPerimeterPoint(e,t,!1))):s+=o,0!=s&&null!=t&&(o=mxUtils.toRadians(s),a=Math.cos(o),r=Math.sin(o),t=mxUtils.getRotatedPoint(t,a,r,i))}return t},mxGraph.prototype.connectCell=function(e,n,t,a){this.model.beginUpdate();try{var i=this.model.getTerminal(e,t);this.cellConnected(e,n,t,a),this.fireEvent(new mxEventObject(mxEvent.CONNECT_CELL,"edge",e,"terminal",n,"source",t,"previous",i))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellConnected=function(e,n,t,a){if(null!=e){this.model.beginUpdate();try{var i=this.model.getTerminal(e,t);this.setConnectionConstraint(e,n,t,a),this.isPortsEnabled()&&(a=null,this.isPort(n)&&(a=n.getId(),n=this.getTerminalForPort(n,t)),this.setCellStyles(t?mxConstants.STYLE_SOURCE_PORT:mxConstants.STYLE_TARGET_PORT,a,[e])),this.model.setTerminal(e,n,t),this.resetEdgesOnConnect&&this.resetEdge(e),this.fireEvent(new mxEventObject(mxEvent.CELL_CONNECTED,"edge",e,"terminal",n,"source",t,"previous",i))}finally{this.model.endUpdate()}}},mxGraph.prototype.disconnectGraph=function(e){if(null!=e){this.model.beginUpdate();try{for(var n=this.view.scale,t=this.view.translate,a={},i=0;i<e.length;i++){a[mxCellPath.create(e[i])]=e[i]}for(i=0;i<e.length;i++)if(this.model.isEdge(e[i])){if(null!=(r=this.model.getGeometry(e[i]))){var s=this.view.getState(e[i]),o=this.view.getState(this.model.getParent(e[i]));if(null!=s&&null!=o){var r=r.clone(),l=-o.origin.x,d=-o.origin.y,c=s.absolutePoints,m=this.model.getTerminal(e[i],!0);if(null!=m&&this.isCellDisconnectable(e[i],m,!0)){for(var u=mxCellPath.create(m);null!=m&&null==a[u];)m=this.model.getParent(m),u=mxCellPath.create(m);null==m&&(r.setTerminalPoint(new mxPoint(c[0].x/n-t.x+l,c[0].y/n-t.y+d),!0),this.model.setTerminal(e[i],null,!0))}var p=this.model.getTerminal(e[i],!1);if(null!=p&&this.isCellDisconnectable(e[i],p,!1)){for(var g=mxCellPath.create(p);null!=p&&null==a[g];)p=this.model.getParent(p),g=mxCellPath.create(p);if(null==p){var v=c.length-1;r.setTerminalPoint(new mxPoint(c[v].x/n-t.x+l,c[v].y/n-t.y+d),!1),this.model.setTerminal(e[i],null,!1)}}this.model.setGeometry(e[i],r)}}}}finally{this.model.endUpdate()}}},mxGraph.prototype.getCurrentRoot=function(){return this.view.currentRoot},mxGraph.prototype.getTranslateForRoot=function(e){return null},mxGraph.prototype.isPort=function(e){return!1},mxGraph.prototype.getTerminalForPort=function(e,n){return this.model.getParent(e)},mxGraph.prototype.getChildOffsetForCell=function(e){return null},mxGraph.prototype.enterGroup=function(e){null!=(e=e||this.getSelectionCell())&&this.isValidRoot(e)&&(this.view.setCurrentRoot(e),this.clearSelection())},mxGraph.prototype.exitGroup=function(){var e=this.model.getRoot(),n=this.getCurrentRoot();if(null!=n){for(var t=this.model.getParent(n);t!=e&&!this.isValidRoot(t)&&this.model.getParent(t)!=e;)t=this.model.getParent(t);t==e||this.model.getParent(t)==e?this.view.setCurrentRoot(null):this.view.setCurrentRoot(t),null!=this.view.getState(n)&&this.setSelectionCell(n)}},mxGraph.prototype.home=function(){var e=this.getCurrentRoot();null!=e&&(this.view.setCurrentRoot(null),null!=this.view.getState(e)&&this.setSelectionCell(e))},mxGraph.prototype.isValidRoot=function(e){return null!=e},mxGraph.prototype.getGraphBounds=function(){return this.view.getGraphBounds()},mxGraph.prototype.getCellBounds=function(e,n,t){var a=[e];if(n&&(a=a.concat(this.model.getEdges(e))),a=this.view.getBounds(a),t){t=this.model.getChildCount(e);for(var i=0;i<t;i++){var s=this.getCellBounds(this.model.getChildAt(e,i),n,!0);null!=a?a.add(s):a=s}}return a},mxGraph.prototype.getBoundingBoxFromGeometry=function(e,n){n=null!=n&&n;var t=null;if(null!=e)for(var a=0;a<e.length;a++)if(n||this.model.isVertex(e[a])){var i=this.getCellGeometry(e[a]);if(null!=i){var s=i.points;if(null!=s&&0<s.length){for(var o=new mxRectangle(s[0].x,s[0].y,0,0),r=function(e){null!=e&&o.add(new mxRectangle(e.x,e.y,0,0))},l=1;l<s.length;l++)r(s[l]);r(i.getTerminalPoint(!0)),r(i.getTerminalPoint(!1))}null==t?t=new mxRectangle(i.x,i.y,i.width,i.height):t.add(i)}}return t},mxGraph.prototype.refresh=function(e){this.view.clear(e,null==e),this.view.validate(),this.sizeDidChange(),this.fireEvent(new mxEventObject(mxEvent.REFRESH))},mxGraph.prototype.snap=function(e){return this.gridEnabled&&(e=Math.round(e/this.gridSize)*this.gridSize),e},mxGraph.prototype.panGraph=function(e,n){if(this.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.container))this.container.scrollLeft=-e,this.container.scrollTop=-n;else{var t=this.view.getCanvas();if(this.dialect==mxConstants.DIALECT_SVG)if(0==e&&0==n){if(mxClient.IS_IE?t.setAttribute("transform","translate("+e+","+n+")"):t.removeAttribute("transform"),null!=this.shiftPreview1){for(var a=this.shiftPreview1.firstChild;null!=a;){var i=a.nextSibling;this.container.appendChild(a),a=i}for(this.shiftPreview1.parentNode.removeChild(this.shiftPreview1),this.shiftPreview1=null,this.container.appendChild(t.parentNode),a=this.shiftPreview2.firstChild;null!=a;)i=a.nextSibling,this.container.appendChild(a),a=i;this.shiftPreview2.parentNode.removeChild(this.shiftPreview2),this.shiftPreview2=null}}else{if(t.setAttribute("transform","translate("+e+","+n+")"),null==this.shiftPreview1){this.shiftPreview1=document.createElement("div"),this.shiftPreview1.style.position="absolute",this.shiftPreview1.style.overflow="visible",this.shiftPreview2=document.createElement("div"),this.shiftPreview2.style.position="absolute",this.shiftPreview2.style.overflow="visible";var s=this.shiftPreview1;for(a=this.container.firstChild;null!=a;)i=a.nextSibling,a!=t.parentNode?s.appendChild(a):s=this.shiftPreview2,a=i;this.container.insertBefore(this.shiftPreview1,t.parentNode),this.container.appendChild(this.shiftPreview2)}this.shiftPreview1.style.left=e+"px",this.shiftPreview1.style.top=n+"px",this.shiftPreview2.style.left=e+"px",this.shiftPreview2.style.top=n+"px"}else t.style.left=e+"px",t.style.top=n+"px";this.panDx=e,this.panDy=n,this.fireEvent(new mxEventObject(mxEvent.PAN))}},mxGraph.prototype.zoomIn=function(){this.zoom(this.zoomFactor)},mxGraph.prototype.zoomOut=function(){this.zoom(1/this.zoomFactor)},mxGraph.prototype.zoomActual=function(){1==this.view.scale?this.view.setTranslate(0,0):(this.view.translate.x=0,this.view.translate.y=0,this.view.setScale(1))},mxGraph.prototype.zoomTo=function(e,n){this.zoom(e/this.view.scale,n)},mxGraph.prototype.zoom=function(e,n){n=null!=n?n:this.centerZoom;var t=this.view.scale*e,a=this.view.getState(this.getSelectionCell());if(this.keepSelectionVisibleOnZoom&&null!=a)a=new mxRectangle(a.x*e,a.y*e,a.width*e,a.height*e),this.view.scale=t,this.scrollRectToVisible(a)||(this.view.revalidate(),this.view.setScale(t));else if(n&&!mxUtils.hasScrollbars(this.container)){a=this.container.offsetWidth;var i=this.container.offsetHeight;if(1<e){var s=(e-1)/(2*t);a=a*-s,i=i*-s}else a*=s=(1/e-1)/(2*this.view.scale),i*=s;this.view.scaleAndTranslate(t,this.view.translate.x+a,this.view.translate.y+i)}else this.view.setScale(t),mxUtils.hasScrollbars(this.container)&&(i=a=0,n&&(a=this.container.offsetWidth*(e-1)/2,i=this.container.offsetHeight*(e-1)/2),this.container.scrollLeft=Math.round(this.container.scrollLeft*e+a),this.container.scrollTop=Math.round(this.container.scrollTop*e+i))},mxGraph.prototype.zoomToRect=function(e){var n=this.container.clientWidth/e.width/(this.container.clientHeight/e.height);e.x=Math.max(0,e.x),e.y=Math.max(0,e.y);var t=Math.min(this.container.scrollWidth,e.x+e.width),a=Math.min(this.container.scrollHeight,e.y+e.height);e.width=t-e.x,e.height=a-e.y,n<1?(t=((n=e.height/n)-e.height)/2,e.height=n,n=Math.min(e.y,t),e.y-=n,a=Math.min(this.container.scrollHeight,e.y+e.height),e.height=a-e.y):(t=((n*=e.width)-e.width)/2,e.width=n,n=Math.min(e.x,t),e.x-=n,t=Math.min(this.container.scrollWidth,e.x+e.width),e.width=t-e.x),n=this.container.clientWidth/e.width,t=this.view.scale*n,mxUtils.hasScrollbars(this.container)?(this.view.setScale(t),this.container.scrollLeft=Math.round(e.x*n),this.container.scrollTop=Math.round(e.y*n)):this.view.scaleAndTranslate(t,this.view.translate.x-e.x/this.view.scale,this.view.translate.y-e.y/this.view.scale)},mxGraph.prototype.fit=function(e,n){if(null!=this.container){e=null!=e?e:0,n=null!=n&&n;var t=this.container.clientWidth,a=this.container.clientHeight,i=this.view.getGraphBounds();n&&null!=i.x&&null!=i.y&&(i.width+=i.x,i.height+=i.y,i.x=0,i.y=0);var s=this.view.scale,o=i.width/s,r=i.height/s;null!=this.backgroundImage&&(o=Math.max(o,this.backgroundImage.width-i.x/s),r=Math.max(r,this.backgroundImage.height-i.y/s));var l=n?e:2*e;t=Math.floor(100*Math.min(t/(o+l),a/(r+l)))/100;null!=this.minFitScale&&(t=Math.max(t,this.minFitScale)),null!=this.maxFitScale&&(t=Math.min(t,this.maxFitScale)),n?this.view.scale!=t&&this.view.setScale(t):mxUtils.hasScrollbars(this.container)?(this.view.setScale(t),null!=i.x&&(this.container.scrollLeft=Math.round(i.x/s)*t-e-Math.max(0,(this.container.clientWidth-o*t)/2)),null!=i.y&&(this.container.scrollTop=Math.round(i.y/s)*t-e-Math.max(0,(this.container.clientHeight-r*t)/2))):this.view.scaleAndTranslate(t,null!=i.x?Math.floor(this.view.translate.x-i.x/s+e+1):e,null!=i.y?Math.floor(this.view.translate.y-i.y/s+e+1):e)}return this.view.scale},mxGraph.prototype.scrollCellToVisible=function(e,n){var t=-this.view.translate.x,a=-this.view.translate.y,i=this.view.getState(e);null!=i&&(t=new mxRectangle(t+i.x,a+i.y,i.width,i.height),n&&null!=this.container&&(a=this.container.clientWidth,i=this.container.clientHeight,t.x=t.getCenterX()-a/2,t.width=a,t.y=t.getCenterY()-i/2,t.height=i),this.scrollRectToVisible(t)&&this.view.setTranslate(this.view.translate.x,this.view.translate.y))},mxGraph.prototype.scrollRectToVisible=function(e){var n=!1;if(null!=e){var t=this.container.offsetWidth,a=this.container.offsetHeight,i=Math.min(t,e.width),s=Math.min(a,e.height);if(mxUtils.hasScrollbars(this.container)){t=this.container,e.x+=this.view.translate.x,e.y+=this.view.translate.y;var o=t.scrollLeft-e.x;a=Math.max(o-t.scrollLeft,0);0<o?t.scrollLeft-=o+2:0<(o=e.x+i-t.scrollLeft-t.clientWidth)&&(t.scrollLeft+=o+2),i=t.scrollTop-e.y,o=Math.max(0,i-t.scrollTop),0<i?t.scrollTop-=i+2:0<(i=e.y+s-t.scrollTop-t.clientHeight)&&(t.scrollTop+=i+2),!this.useScrollbarsForPanning&&(0!=a||0!=o)&&this.view.setTranslate(a,o)}else{o=-this.view.translate.x;var r=-this.view.translate.y,l=this.view.scale;e.x+i>o+t&&(this.view.translate.x-=(e.x+i-t-o)/l,n=!0),e.y+s>r+a&&(this.view.translate.y-=(e.y+s-a-r)/l,n=!0),e.x<o&&(this.view.translate.x+=(o-e.x)/l,n=!0),e.y<r&&(this.view.translate.y+=(r-e.y)/l,n=!0),n&&(this.view.refresh(),null!=this.selectionCellsHandler&&this.selectionCellsHandler.refresh())}}return n},mxGraph.prototype.getCellGeometry=function(e){return this.model.getGeometry(e)},mxGraph.prototype.isCellVisible=function(e){return this.model.isVisible(e)},mxGraph.prototype.isCellCollapsed=function(e){return this.model.isCollapsed(e)},mxGraph.prototype.isCellConnectable=function(e){return this.model.isConnectable(e)},mxGraph.prototype.isOrthogonal=function(e){var n=e.style[mxConstants.STYLE_ORTHOGONAL];return null!=n?n:(e=this.view.getEdgeStyle(e))==mxEdgeStyle.SegmentConnector||e==mxEdgeStyle.ElbowConnector||e==mxEdgeStyle.SideToSide||e==mxEdgeStyle.TopToBottom||e==mxEdgeStyle.EntityRelation||e==mxEdgeStyle.OrthConnector},mxGraph.prototype.isLoop=function(e){var n=e.getVisibleTerminalState(!0);return e=e.getVisibleTerminalState(!1),null!=n&&n==e},mxGraph.prototype.isCloneEvent=function(e){return mxEvent.isControlDown(e)},mxGraph.prototype.isToggleEvent=function(e){return mxClient.IS_MAC?mxEvent.isMetaDown(e):mxEvent.isControlDown(e)},mxGraph.prototype.isGridEnabledEvent=function(e){return null!=e&&!mxEvent.isAltDown(e)},mxGraph.prototype.isConstrainedEvent=function(e){return mxEvent.isShiftDown(e)},mxGraph.prototype.isForceMarqueeEvent=function(e){return mxEvent.isAltDown(e)},mxGraph.prototype.validationAlert=function(e){mxUtils.alert(e)},mxGraph.prototype.isEdgeValid=function(e,n,t){return null==this.getEdgeValidationError(e,n,t)},mxGraph.prototype.getEdgeValidationError=function(e,n,t){if(null!=e&&!this.isAllowDanglingEdges()&&(null==n||null==t))return"";if(null!=e&&null==this.model.getTerminal(e,!0)&&null==this.model.getTerminal(e,!1))return null;if(!this.allowLoops&&n==t&&null!=n||!this.isValidConnection(n,t))return"";if(null==n||null==t)return this.allowDanglingEdges?null:"";var a="";this.multigraph||(1<(i=this.model.getEdgesBetween(n,t,!0)).length||1==i.length&&i[0]!=e)&&(a+=(mxResources.get(this.alreadyConnectedResource)||this.alreadyConnectedResource)+"\n");var i=this.model.getDirectedEdgeCount(n,!0,e),s=this.model.getDirectedEdgeCount(t,!1,e);if(null!=this.multiplicities)for(var o=0;o<this.multiplicities.length;o++){var r=this.multiplicities[o].check(this,e,n,t,i,s);null!=r&&(a+=r)}return null!=(r=this.validateEdge(e,n,t))&&(a+=r),0<a.length?a:null},mxGraph.prototype.validateEdge=function(e,n,t){return null},mxGraph.prototype.validateGraph=function(e,n){e=null!=e?e:this.model.getRoot(),n=null!=n?n:{};for(var t=!0,a=this.model.getChildCount(e),i=0;i<a;i++){var s=this.model.getChildAt(e,i),o=n;this.isValidRoot(s)&&(o={}),null!=(o=this.validateGraph(s,o))?this.setCellWarning(s,o.replace(/\n/g,"<br>")):this.setCellWarning(s,null),t=t&&null==o}return a="",this.isCellCollapsed(e)&&!t&&(a+=(mxResources.get(this.containsValidationErrorsResource)||this.containsValidationErrorsResource)+"\n"),a=this.model.isEdge(e)?a+(this.getEdgeValidationError(e,this.model.getTerminal(e,!0),this.model.getTerminal(e,!1))||""):a+(this.getCellValidationError(e)||""),null!=(i=this.validateCell(e,n))&&(a+=i),null==this.model.getParent(e)&&this.view.validate(),0<a.length||!t?a:null},mxGraph.prototype.getCellValidationError=function(e){var n=this.model.getDirectedEdgeCount(e,!0),t=this.model.getDirectedEdgeCount(e,!1);e=this.model.getValue(e);var a="";if(null!=this.multiplicities)for(var i=0;i<this.multiplicities.length;i++){var s=this.multiplicities[i];s.source&&mxUtils.isNode(e,s.type,s.attr,s.value)&&(0==s.max&&0<n||1==s.min&&0==n||1==s.max&&1<n)?a+=s.countError+"\n":!s.source&&mxUtils.isNode(e,s.type,s.attr,s.value)&&(0==s.max&&0<t||1==s.min&&0==t||1==s.max&&1<t)&&(a+=s.countError+"\n")}return 0<a.length?a:null},mxGraph.prototype.validateCell=function(e,n){return null},mxGraph.prototype.getBackgroundImage=function(){return this.backgroundImage},mxGraph.prototype.setBackgroundImage=function(e){this.backgroundImage=e},mxGraph.prototype.getFoldingImage=function(e){if(null!=e&&this.foldingEnabled&&!this.getModel().isEdge(e.cell)){var n=this.isCellCollapsed(e.cell);if(this.isCellFoldable(e.cell,!n))return n?this.collapsedImage:this.expandedImage}return null},mxGraph.prototype.convertValueToString=function(e){if(null!=(e=this.model.getValue(e))){if(mxUtils.isNode(e))return e.nodeName;if("function"==typeof e.toString)return e.toString()}return""},mxGraph.prototype.getLabel=function(e){var n="";if(this.labelsVisible&&null!=e){var t=null!=(t=this.view.getState(e))?t.style:this.getCellStyle(e);mxUtils.getValue(t,mxConstants.STYLE_NOLABEL,!1)||(n=this.convertValueToString(e))}return n},mxGraph.prototype.isHtmlLabel=function(e){return this.isHtmlLabels()},mxGraph.prototype.isHtmlLabels=function(){return this.htmlLabels},mxGraph.prototype.setHtmlLabels=function(e){this.htmlLabels=e},mxGraph.prototype.isWrapping=function(e){var n=this.view.getState(e);return null!=(e=null!=n?n.style:this.getCellStyle(e))&&"wrap"==e[mxConstants.STYLE_WHITE_SPACE]},mxGraph.prototype.isLabelClipped=function(e){var n=this.view.getState(e);return null!=(e=null!=n?n.style:this.getCellStyle(e))&&"hidden"==e[mxConstants.STYLE_OVERFLOW]},mxGraph.prototype.getTooltip=function(e,t,n,a){var i=null;return null!=e&&(null==e.control||t!=e.control.node&&t.parentNode!=e.control.node||(i=this.collapseExpandResource,i=mxResources.get(i)||i),null==i&&null!=e.overlays&&e.overlays.visit(function(e,n){null!=i||t!=n.node&&t.parentNode!=n.node||(i=n.overlay.toString())}),null==i&&(null!=(n=this.selectionCellsHandler.getHandler(e.cell))&&"function"==typeof n.getTooltipForNode&&(i=n.getTooltipForNode(t))),null==i&&(i=this.getTooltipForCell(e.cell))),i},mxGraph.prototype.getTooltipForCell=function(e){return null!=e&&null!=e.getTooltip?e.getTooltip():this.convertValueToString(e)},mxGraph.prototype.getCursorForCell=function(e){return null},mxGraph.prototype.getStartSize=function(e){var n=new mxRectangle,t=this.view.getState(e);return null!=(e=null!=t?t.style:this.getCellStyle(e))&&(t=parseInt(mxUtils.getValue(e,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE)),mxUtils.getValue(e,mxConstants.STYLE_HORIZONTAL,!0)?n.height=t:n.width=t),n},mxGraph.prototype.getImage=function(e){return null!=e&&null!=e.style?e.style[mxConstants.STYLE_IMAGE]:null},mxGraph.prototype.getVerticalAlign=function(e){return null!=e&&null!=e.style?e.style[mxConstants.STYLE_VERTICAL_ALIGN]||mxConstants.ALIGN_MIDDLE:null},mxGraph.prototype.getIndicatorColor=function(e){return null!=e&&null!=e.style?e.style[mxConstants.STYLE_INDICATOR_COLOR]:null},mxGraph.prototype.getIndicatorGradientColor=function(e){return null!=e&&null!=e.style?e.style[mxConstants.STYLE_INDICATOR_GRADIENTCOLOR]:null},mxGraph.prototype.getIndicatorShape=function(e){return null!=e&&null!=e.style?e.style[mxConstants.STYLE_INDICATOR_SHAPE]:null},mxGraph.prototype.getIndicatorImage=function(e){return null!=e&&null!=e.style?e.style[mxConstants.STYLE_INDICATOR_IMAGE]:null},mxGraph.prototype.getBorder=function(){return this.border},mxGraph.prototype.setBorder=function(e){this.border=e},mxGraph.prototype.isSwimlane=function(e){var n;if(null!=e&&this.model.getParent(e)!=this.model.getRoot()&&(null!=(n=null!=(n=this.view.getState(e))?n.style:this.getCellStyle(e))&&!this.model.isEdge(e)))return n[mxConstants.STYLE_SHAPE]==mxConstants.SHAPE_SWIMLANE;return!1},mxGraph.prototype.isResizeContainer=function(){return this.resizeContainer},mxGraph.prototype.setResizeContainer=function(e){this.resizeContainer=e},mxGraph.prototype.isEnabled=function(){return this.enabled},mxGraph.prototype.setEnabled=function(e){this.enabled=e},mxGraph.prototype.isEscapeEnabled=function(){return this.escapeEnabled},mxGraph.prototype.setEscapeEnabled=function(e){this.escapeEnabled=e},mxGraph.prototype.isInvokesStopCellEditing=function(){return this.invokesStopCellEditing},mxGraph.prototype.setInvokesStopCellEditing=function(e){this.invokesStopCellEditing=e},mxGraph.prototype.isEnterStopsCellEditing=function(){return this.enterStopsCellEditing},mxGraph.prototype.setEnterStopsCellEditing=function(e){this.enterStopsCellEditing=e},mxGraph.prototype.isCellLocked=function(e){var n=this.model.getGeometry(e);return this.isCellsLocked()||null!=n&&this.model.isVertex(e)&&n.relative},mxGraph.prototype.isCellsLocked=function(){return this.cellsLocked},mxGraph.prototype.setCellsLocked=function(e){this.cellsLocked=e},mxGraph.prototype.getCloneableCells=function(e){return this.model.filterCells(e,mxUtils.bind(this,function(e){return this.isCellCloneable(e)}))},mxGraph.prototype.isCellCloneable=function(e){var n=this.view.getState(e);return e=null!=n?n.style:this.getCellStyle(e),this.isCellsCloneable()&&0!=e[mxConstants.STYLE_CLONEABLE]},mxGraph.prototype.isCellsCloneable=function(){return this.cellsCloneable},mxGraph.prototype.setCellsCloneable=function(e){this.cellsCloneable=e},mxGraph.prototype.getExportableCells=function(e){return this.model.filterCells(e,mxUtils.bind(this,function(e){return this.canExportCell(e)}))},mxGraph.prototype.canExportCell=function(e){return this.exportEnabled},mxGraph.prototype.getImportableCells=function(e){return this.model.filterCells(e,mxUtils.bind(this,function(e){return this.canImportCell(e)}))},mxGraph.prototype.canImportCell=function(e){return this.importEnabled},mxGraph.prototype.isCellSelectable=function(e){return this.isCellsSelectable()},mxGraph.prototype.isCellsSelectable=function(){return this.cellsSelectable},mxGraph.prototype.setCellsSelectable=function(e){this.cellsSelectable=e},mxGraph.prototype.getDeletableCells=function(e){return this.model.filterCells(e,mxUtils.bind(this,function(e){return this.isCellDeletable(e)}))},mxGraph.prototype.isCellDeletable=function(e){var n=this.view.getState(e);return e=null!=n?n.style:this.getCellStyle(e),this.isCellsDeletable()&&0!=e[mxConstants.STYLE_DELETABLE]},mxGraph.prototype.isCellsDeletable=function(){return this.cellsDeletable},mxGraph.prototype.setCellsDeletable=function(e){this.cellsDeletable=e},mxGraph.prototype.isLabelMovable=function(e){return!this.isCellLocked(e)&&(this.model.isEdge(e)&&this.edgeLabelsMovable||this.model.isVertex(e)&&this.vertexLabelsMovable)},mxGraph.prototype.getMovableCells=function(e){return this.model.filterCells(e,mxUtils.bind(this,function(e){return this.isCellMovable(e)}))},mxGraph.prototype.isCellMovable=function(e){var n=null!=(n=this.view.getState(e))?n.style:this.getCellStyle(e);return this.isCellsMovable()&&!this.isCellLocked(e)&&0!=n[mxConstants.STYLE_MOVABLE]},mxGraph.prototype.isCellsMovable=function(){return this.cellsMovable},mxGraph.prototype.setCellsMovable=function(e){this.cellsMovable=e},mxGraph.prototype.isGridEnabled=function(){return this.gridEnabled},mxGraph.prototype.setGridEnabled=function(e){this.gridEnabled=e},mxGraph.prototype.isPortsEnabled=function(){return this.portsEnabled},mxGraph.prototype.setPortsEnabled=function(e){this.portsEnabled=e},mxGraph.prototype.getGridSize=function(){return this.gridSize},mxGraph.prototype.setGridSize=function(e){this.gridSize=e},mxGraph.prototype.getTolerance=function(){return this.tolerance},mxGraph.prototype.setTolerance=function(e){this.tolerance=e},mxGraph.prototype.isVertexLabelsMovable=function(){return this.vertexLabelsMovable},mxGraph.prototype.setVertexLabelsMovable=function(e){this.vertexLabelsMovable=e},mxGraph.prototype.isEdgeLabelsMovable=function(){return this.edgeLabelsMovable},mxGraph.prototype.setEdgeLabelsMovable=function(e){this.edgeLabelsMovable=e},mxGraph.prototype.isSwimlaneNesting=function(){return this.swimlaneNesting},mxGraph.prototype.setSwimlaneNesting=function(e){this.swimlaneNesting=e},mxGraph.prototype.isSwimlaneSelectionEnabled=function(){return this.swimlaneSelectionEnabled},mxGraph.prototype.setSwimlaneSelectionEnabled=function(e){this.swimlaneSelectionEnabled=e},mxGraph.prototype.isMultigraph=function(){return this.multigraph},mxGraph.prototype.setMultigraph=function(e){this.multigraph=e},mxGraph.prototype.isAllowLoops=function(){return this.allowLoops},mxGraph.prototype.setAllowDanglingEdges=function(e){this.allowDanglingEdges=e},mxGraph.prototype.isAllowDanglingEdges=function(){return this.allowDanglingEdges},mxGraph.prototype.setConnectableEdges=function(e){this.connectableEdges=e},mxGraph.prototype.isConnectableEdges=function(){return this.connectableEdges},mxGraph.prototype.setCloneInvalidEdges=function(e){this.cloneInvalidEdges=e},mxGraph.prototype.isCloneInvalidEdges=function(){return this.cloneInvalidEdges},mxGraph.prototype.setAllowLoops=function(e){this.allowLoops=e},mxGraph.prototype.isDisconnectOnMove=function(){return this.disconnectOnMove},mxGraph.prototype.setDisconnectOnMove=function(e){this.disconnectOnMove=e},mxGraph.prototype.isDropEnabled=function(){return this.dropEnabled},mxGraph.prototype.setDropEnabled=function(e){this.dropEnabled=e},mxGraph.prototype.isSplitEnabled=function(){return this.splitEnabled},mxGraph.prototype.setSplitEnabled=function(e){this.splitEnabled=e},mxGraph.prototype.isCellResizable=function(e){var n=null!=(n=this.view.getState(e))?n.style:this.getCellStyle(e);return this.isCellsResizable()&&!this.isCellLocked(e)&&0!=n[mxConstants.STYLE_RESIZABLE]},mxGraph.prototype.isCellsResizable=function(){return this.cellsResizable},mxGraph.prototype.setCellsResizable=function(e){this.cellsResizable=e},mxGraph.prototype.isTerminalPointMovable=function(e,n){return!0},mxGraph.prototype.isCellBendable=function(e){var n=null!=(n=this.view.getState(e))?n.style:this.getCellStyle(e);return this.isCellsBendable()&&!this.isCellLocked(e)&&0!=n[mxConstants.STYLE_BENDABLE]},mxGraph.prototype.isCellsBendable=function(){return this.cellsBendable},mxGraph.prototype.setCellsBendable=function(e){this.cellsBendable=e},mxGraph.prototype.isCellEditable=function(e){var n=null!=(n=this.view.getState(e))?n.style:this.getCellStyle(e);return this.isCellsEditable()&&!this.isCellLocked(e)&&0!=n[mxConstants.STYLE_EDITABLE]},mxGraph.prototype.isCellsEditable=function(){return this.cellsEditable},mxGraph.prototype.setCellsEditable=function(e){this.cellsEditable=e},mxGraph.prototype.isCellDisconnectable=function(e,n,t){return this.isCellsDisconnectable()&&!this.isCellLocked(e)},mxGraph.prototype.isCellsDisconnectable=function(){return this.cellsDisconnectable},mxGraph.prototype.setCellsDisconnectable=function(e){this.cellsDisconnectable=e},mxGraph.prototype.isValidSource=function(e){return null==e&&this.allowDanglingEdges||null!=e&&(!this.model.isEdge(e)||this.connectableEdges)&&this.isCellConnectable(e)},mxGraph.prototype.isValidTarget=function(e){return this.isValidSource(e)},mxGraph.prototype.isValidConnection=function(e,n){return this.isValidSource(e)&&this.isValidTarget(n)},mxGraph.prototype.setConnectable=function(e){this.connectionHandler.setEnabled(e)},mxGraph.prototype.isConnectable=function(e){return this.connectionHandler.isEnabled()},mxGraph.prototype.setTooltips=function(e){this.tooltipHandler.setEnabled(e)},mxGraph.prototype.setPanning=function(e){this.panningHandler.panningEnabled=e},mxGraph.prototype.isEditing=function(e){if(null==this.cellEditor)return!1;var n=this.cellEditor.getEditingCell();return null==e?null!=n:e==n},mxGraph.prototype.isAutoSizeCell=function(e){var n=this.view.getState(e);return e=null!=n?n.style:this.getCellStyle(e),this.isAutoSizeCells()||1==e[mxConstants.STYLE_AUTOSIZE]},mxGraph.prototype.isAutoSizeCells=function(){return this.autoSizeCells},mxGraph.prototype.setAutoSizeCells=function(e){this.autoSizeCells=e},mxGraph.prototype.isExtendParent=function(e){return!this.getModel().isEdge(e)&&this.isExtendParents()},mxGraph.prototype.isExtendParents=function(){return this.extendParents},mxGraph.prototype.setExtendParents=function(e){this.extendParents=e},mxGraph.prototype.isExtendParentsOnAdd=function(){return this.extendParentsOnAdd},mxGraph.prototype.setExtendParentsOnAdd=function(e){this.extendParentsOnAdd=e},mxGraph.prototype.isConstrainChild=function(e){return this.isConstrainChildren()&&!this.getModel().isEdge(this.getModel().getParent(e))},mxGraph.prototype.isConstrainChildren=function(){return this.constrainChildren},mxGraph.prototype.setConstrainChildren=function(e){this.constrainChildren=e},mxGraph.prototype.isAllowNegativeCoordinates=function(){return this.allowNegativeCoordinates},mxGraph.prototype.setAllowNegativeCoordinates=function(e){this.allowNegativeCoordinates=e},mxGraph.prototype.getOverlap=function(e){return this.isAllowOverlapParent(e)?this.defaultOverlap:0},mxGraph.prototype.isAllowOverlapParent=function(e){return!1},mxGraph.prototype.getFoldableCells=function(e,n){return this.model.filterCells(e,mxUtils.bind(this,function(e){return this.isCellFoldable(e,n)}))},mxGraph.prototype.isCellFoldable=function(e,n){var t=null!=(t=this.view.getState(e))?t.style:this.getCellStyle(e);return 0<this.model.getChildCount(e)&&0!=t[mxConstants.STYLE_FOLDABLE]},mxGraph.prototype.isValidDropTarget=function(e,n,t){return null!=e&&(this.isSplitEnabled()&&this.isSplitTarget(e,n,t)||!this.model.isEdge(e)&&(this.isSwimlane(e)||0<this.model.getChildCount(e)&&!this.isCellCollapsed(e)))},mxGraph.prototype.isSplitTarget=function(e,n,t){return!(!this.model.isEdge(e)||null==n||1!=n.length||!this.isCellConnectable(n[0])||null!=this.getEdgeValidationError(e,this.model.getTerminal(e,!0),n[0]))&&(t=this.model.getTerminal(e,!0),e=this.model.getTerminal(e,!1),!this.model.isAncestor(n[0],t)&&!this.model.isAncestor(n[0],e))},mxGraph.prototype.getDropTarget=function(e,n,t){if(!this.isSwimlaneNesting())for(var a=0;a<e.length;a++)if(this.isSwimlane(e[a]))return null;if((a=mxUtils.convertPoint(this.container,mxEvent.getClientX(n),mxEvent.getClientY(n))).x-=this.panDx,a.y-=this.panDy,a=this.getSwimlaneAt(a.x,a.y),null==t)t=a;else if(null!=a){for(var i=this.model.getParent(a);null!=i&&this.isSwimlane(i)&&i!=t;)i=this.model.getParent(i);i==t&&(t=a)}for(;null!=t&&!this.isValidDropTarget(t,e,n)&&!this.model.isLayer(t);)t=this.model.getParent(t);return!this.model.isLayer(t)&&mxUtils.indexOf(e,t)<0?t:null},mxGraph.prototype.getDefaultParent=function(){var e=this.defaultParent;return null==e&&(null==(e=this.getCurrentRoot())&&(e=this.model.getRoot(),e=this.model.getChildAt(e,0))),e},mxGraph.prototype.setDefaultParent=function(e){this.defaultParent=e},mxGraph.prototype.getSwimlane=function(e){for(;null!=e&&!this.isSwimlane(e);)e=this.model.getParent(e);return e},mxGraph.prototype.getSwimlaneAt=function(e,n,t){if(null!=(t=t||this.getDefaultParent()))for(var a=this.model.getChildCount(t),i=0;i<a;i++){var s=this.model.getChildAt(t,i),o=this.getSwimlaneAt(e,n,s);if(null!=o)return o;if(this.isSwimlane(s)&&(o=this.view.getState(s),this.intersects(o,e,n)))return s}return null},mxGraph.prototype.getCellAt=function(e,n,t,a,i){if(a=null==a||a,i=null==i||i,null!=(t=null!=t?t:this.getDefaultParent()))for(var s=this.model.getChildCount(t)-1;0<=s;s--){var o=this.model.getChildAt(t,s),r=this.getCellAt(e,n,o,a,i);if(null!=r)return r;if(this.isCellVisible(o)&&(i&&this.model.isEdge(o)||a&&this.model.isVertex(o))&&(r=this.view.getState(o),this.intersects(r,e,n)))return o}return null},mxGraph.prototype.intersects=function(e,n,t){if(null!=e){var a=e.absolutePoints;if(null!=a){e=this.tolerance*this.tolerance;for(var i=a[0],s=1;s<a.length;s++){var o=a[s];if(mxUtils.ptSegDistSq(i.x,i.y,o.x,o.y,n,t)<=e)return!0;i=o}}else if(0!=(i=mxUtils.toRadians(mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION)||0))&&(a=Math.cos(-i),i=Math.sin(-i),s=new mxPoint(e.getCenterX(),e.getCenterY()),n=(i=mxUtils.getRotatedPoint(new mxPoint(n,t),a,i,s)).x,t=i.y),mxUtils.contains(e,n,t))return!0}return!1},mxGraph.prototype.hitsSwimlaneContent=function(e,n,t){var a=this.getView().getState(e);if(e=this.getStartSize(e),null!=a){var i=this.getView().getScale();if(n-=a.x,t-=a.y,0<e.width&&0<n&&n>e.width*i||0<e.height&&0<t&&t>e.height*i)return!0}return!1},mxGraph.prototype.getChildVertices=function(e){return this.getChildCells(e,!0,!1)},mxGraph.prototype.getChildEdges=function(e){return this.getChildCells(e,!1,!0)},mxGraph.prototype.getChildCells=function(e,n,t){for(e=null!=e?e:this.getDefaultParent(),e=this.model.getChildCells(e,null!=n&&n,null!=t&&t),n=[],t=0;t<e.length;t++)this.isCellVisible(e[t])&&n.push(e[t]);return n},mxGraph.prototype.getConnections=function(e,n){return this.getEdges(e,n,!0,!0,!1)},mxGraph.prototype.getIncomingEdges=function(e,n){return this.getEdges(e,n,!0,!1,!1)},mxGraph.prototype.getOutgoingEdges=function(e,n){return this.getEdges(e,n,!1,!0,!1)},mxGraph.prototype.getEdges=function(e,n,t,a,i,s){t=null==t||t,a=null==a||a,i=null==i||i,s=null!=s&&s;for(var o=[],r=this.isCellCollapsed(e),l=this.model.getChildCount(e),d=0;d<l;d++){var c=this.model.getChildAt(e,d);!r&&this.isCellVisible(c)||(o=o.concat(this.model.getEdges(c,t,a)))}for(o=o.concat(this.model.getEdges(e,t,a)),r=[],d=0;d<o.length;d++)l=null!=(c=this.view.getState(o[d]))?c.getVisibleTerminal(!0):this.view.getVisibleTerminal(o[d],!0),c=null!=c?c.getVisibleTerminal(!1):this.view.getVisibleTerminal(o[d],!1),(i&&l==c||l!=c&&(t&&c==e&&(null==n||this.isValidAncestor(l,n,s))||a&&l==e&&(null==n||this.isValidAncestor(c,n,s))))&&r.push(o[d]);return r},mxGraph.prototype.isValidAncestor=function(e,n,t){return t?this.model.isAncestor(n,e):this.model.getParent(e)==n},mxGraph.prototype.getOpposites=function(e,n,t,a){t=null==t||t,a=null==a||a;var i=[],s={};if(null!=e)for(var o=0;o<e.length;o++){var r=null!=(l=this.view.getState(e[o]))?l.getVisibleTerminal(!0):this.view.getVisibleTerminal(e[o],!0),l=null!=l?l.getVisibleTerminal(!1):this.view.getVisibleTerminal(e[o],!1);if(r==n&&null!=l&&l!=n&&a){var d=mxCellPath.create(l);null==s[d]&&(s[d]=l,i.push(l))}else l==n&&null!=r&&r!=n&&t&&(null==s[d=mxCellPath.create(r)]&&(s[d]=r,i.push(r)))}return i},mxGraph.prototype.getEdgesBetween=function(e,n,t){t=null!=t&&t;for(var a=this.getEdges(e),i=[],s=0;s<a.length;s++){var o=null!=(r=this.view.getState(a[s]))?r.getVisibleTerminal(!0):this.view.getVisibleTerminal(a[s],!0),r=null!=r?r.getVisibleTerminal(!1):this.view.getVisibleTerminal(a[s],!1);(o==e&&r==n||!t&&o==n&&r==e)&&i.push(a[s])}return i},mxGraph.prototype.getPointForEvent=function(e,n){var t=mxUtils.convertPoint(this.container,mxEvent.getClientX(e),mxEvent.getClientY(e)),a=this.view.scale,i=this.view.translate,s=0!=n?this.gridSize/2:0;return t.x=this.snap(t.x/a-i.x-s),t.y=this.snap(t.y/a-i.y-s),t},mxGraph.prototype.getCells=function(e,n,t,a,i,s){if(s=null!=s?s:[],0<t||0<a){var o=e+t,r=n+a;if(null!=(i=i||this.getDefaultParent()))for(var l=this.model.getChildCount(i),d=0;d<l;d++){var c=this.model.getChildAt(i,d),m=this.view.getState(c);if(this.isCellVisible(c)&&null!=m){var u=m;0!=(m=mxUtils.getValue(m.style,mxConstants.STYLE_ROTATION)||0)&&(u=mxUtils.getBoundingBox(u,m)),u.x>=e&&u.y+u.height<=r&&u.y>=n&&u.x+u.width<=o?s.push(c):this.getCells(e,n,t,a,c,s)}}}return s},mxGraph.prototype.getCellsBeyond=function(e,n,t,a,i){var s=[];if((a||i)&&(null==t&&(t=this.getDefaultParent()),null!=t))for(var o=this.model.getChildCount(t),r=0;r<o;r++){var l=this.model.getChildAt(t,r),d=this.view.getState(l);this.isCellVisible(l)&&null!=d&&(!a||d.x>=e)&&(!i||d.y>=n)&&s.push(l)}return s},mxGraph.prototype.findTreeRoots=function(e,n,t){n=null!=n&&n,t=null!=t&&t;var a=[];if(null!=e){for(var i=this.getModel(),s=i.getChildCount(e),o=null,r=0,l=0;l<s;l++){var d=i.getChildAt(e,l);if(this.model.isVertex(d)&&this.isCellVisible(d)){for(var c=this.getConnections(d,n?e:null),m=0,u=0,p=0;p<c.length;p++)this.view.getVisibleTerminal(c[p],!0)==d?m++:u++;(t&&0==m&&0<u||!t&&0==u&&0<m)&&a.push(d),r<(c=t?u-m:m-u)&&(r=c,o=d)}}0==a.length&&null!=o&&a.push(o)}return a},mxGraph.prototype.traverse=function(e,n,t,a,i){if(null!=t&&null!=e){n=null==n||n,i=i||[];var s=mxCellPath.create(e);if(null==i[s]&&(null==(a=t(i[s]=e,a))||a)&&0<(a=this.model.getEdgeCount(e)))for(s=0;s<a;s++){var o=this.model.getEdgeAt(e,s),r=this.model.getTerminal(o,!0)==e;n&&!r||(r=this.model.getTerminal(o,!r),this.traverse(r,n,t,o,i))}}},mxGraph.prototype.isCellSelected=function(e){return this.getSelectionModel().isSelected(e)},mxGraph.prototype.isSelectionEmpty=function(){return this.getSelectionModel().isEmpty()},mxGraph.prototype.clearSelection=function(){return this.getSelectionModel().clear()},mxGraph.prototype.getSelectionCount=function(){return this.getSelectionModel().cells.length},mxGraph.prototype.getSelectionCell=function(){return this.getSelectionModel().cells[0]},mxGraph.prototype.getSelectionCells=function(){return this.getSelectionModel().cells.slice()},mxGraph.prototype.setSelectionCell=function(e){this.getSelectionModel().setCell(e)},mxGraph.prototype.setSelectionCells=function(e){this.getSelectionModel().setCells(e)},mxGraph.prototype.addSelectionCell=function(e){this.getSelectionModel().addCell(e)},mxGraph.prototype.addSelectionCells=function(e){this.getSelectionModel().addCells(e)},mxGraph.prototype.removeSelectionCell=function(e){this.getSelectionModel().removeCell(e)},mxGraph.prototype.removeSelectionCells=function(e){this.getSelectionModel().removeCells(e)},mxGraph.prototype.selectRegion=function(e,n){var t=this.getCells(e.x,e.y,e.width,e.height);return this.selectCellsForEvent(t,n),t},mxGraph.prototype.selectNextCell=function(){this.selectCell(!0)},mxGraph.prototype.selectPreviousCell=function(){this.selectCell()},mxGraph.prototype.selectParentCell=function(){this.selectCell(!1,!0)},mxGraph.prototype.selectChildCell=function(){this.selectCell(!1,!1,!0)},mxGraph.prototype.selectCell=function(e,n,t){var a=0<(i=this.selectionModel).cells.length?i.cells[0]:null;1<i.cells.length&&i.clear();var i=null!=a?this.model.getParent(a):this.getDefaultParent(),s=this.model.getChildCount(i);null==a&&0<s?(e=this.model.getChildAt(i,0),this.setSelectionCell(e)):null!=a&&!n||null==this.view.getState(i)||null==this.model.getGeometry(i)?null!=a&&t?0<this.model.getChildCount(a)&&(e=this.model.getChildAt(a,0),this.setSelectionCell(e)):0<s&&(n=i.getIndex(a),e=e?(n++,this.model.getChildAt(i,n%s)):(n--,this.model.getChildAt(i,n<0?s-1:n)),this.setSelectionCell(e)):this.getCurrentRoot()!=i&&this.setSelectionCell(i)},mxGraph.prototype.selectAll=function(e){e=e||this.getDefaultParent(),null!=(e=this.model.getChildren(e))&&this.setSelectionCells(e)},mxGraph.prototype.selectVertices=function(e){this.selectCells(!0,!1,e)},mxGraph.prototype.selectEdges=function(e){this.selectCells(!1,!0,e)},mxGraph.prototype.selectCells=function(n,t,e){e=e||this.getDefaultParent();var a=mxUtils.bind(this,function(e){return null!=this.view.getState(e)&&0==this.model.getChildCount(e)&&(this.model.isVertex(e)&&n||this.model.isEdge(e)&&t)});e=this.model.filterDescendants(a,e),this.setSelectionCells(e)},mxGraph.prototype.selectCellForEvent=function(e,n){var t=this.isCellSelected(e);this.isToggleEvent(n)?t?this.removeSelectionCell(e):this.addSelectionCell(e):(!t||1!=this.getSelectionCount())&&this.setSelectionCell(e)},mxGraph.prototype.selectCellsForEvent=function(e,n){this.isToggleEvent(n)?this.addSelectionCells(e):this.setSelectionCells(e)},mxGraph.prototype.createHandler=function(e){var n=null;return null!=e&&(n=this.model.isEdge(e.cell)?(n=this.view.getEdgeStyle(e),this.isLoop(e)||n==mxEdgeStyle.ElbowConnector||n==mxEdgeStyle.SideToSide||n==mxEdgeStyle.TopToBottom?new mxElbowEdgeHandler(e):n==mxEdgeStyle.SegmentConnector||n==mxEdgeStyle.OrthConnector?new mxEdgeSegmentHandler(e):new mxEdgeHandler(e)):new mxVertexHandler(e)),n},mxGraph.prototype.addMouseListener=function(e){null==this.mouseListeners&&(this.mouseListeners=[]),this.mouseListeners.push(e)},mxGraph.prototype.removeMouseListener=function(e){if(null!=this.mouseListeners)for(var n=0;n<this.mouseListeners.length;n++)if(this.mouseListeners[n]==e){this.mouseListeners.splice(n,1);break}},mxGraph.prototype.updateMouseEvent=function(e){if(null==e.graphX||null==e.graphY){var n=mxUtils.convertPoint(this.container,e.getX(),e.getY());e.graphX=n.x-this.panDx,e.graphY=n.y-this.panDy}},mxGraph.prototype.fireMouseEvent=function(e,n,t){if(null==t&&(t=this),this.updateMouseEvent(n),e==mxEvent.MOUSE_DOWN&&(this.isMouseDown=!0),mxClient.IS_TOUCH&&this.doubleTapEnabled&&e==mxEvent.MOUSE_DOWN){var a=(new Date).getTime();a-this.lastTouchTime<this.doubleTapTimeout&&Math.abs(this.lastTouchX-n.getX())<this.doubleTapTolerance&&Math.abs(this.lastTouchY-n.getY())<this.doubleTapTolerance?(this.lastTouchTime=0,this.dblClick(n.getEvent(),n.getCell()),n.getEvent().cancelBubble=!0):(this.lastTouchX=n.getX(),this.lastTouchY=n.getY(),this.lastTouchTime=a)}if(a=2!=n.getEvent().detail,mxClient.IS_IE&&"CSS1Compat"==document.compatMode&&((null!=this.lastMouseX&&Math.abs(this.lastMouseX-n.getX())>this.doubleTapTolerance||null!=this.lastMouseY&&Math.abs(this.lastMouseY-n.getY())>this.doubleTapTolerance)&&(a=!0),e==mxEvent.MOUSE_UP&&(this.lastMouseX=n.getX(),this.lastMouseY=n.getY())),(e!=mxEvent.MOUSE_UP||this.isMouseDown)&&a){if(e==mxEvent.MOUSE_UP&&(this.isMouseDown=!1),!this.isEditing()&&(mxClient.IS_OP||mxClient.IS_SF||mxClient.IS_GC||mxClient.IS_IE&&mxClient.IS_SVG||n.getEvent().target!=this.container)){if(e==mxEvent.MOUSE_MOVE&&this.isMouseDown&&this.autoScroll&&this.scrollPointToVisible(n.getGraphX(),n.getGraphY(),this.autoExtend),null!=this.mouseListeners)for(t=[t,n],n.getEvent().returnValue=!0,a=0;a<this.mouseListeners.length;a++){var i=this.mouseListeners[a];e==mxEvent.MOUSE_DOWN?i.mouseDown.apply(i,t):e==mxEvent.MOUSE_MOVE?i.mouseMove.apply(i,t):e==mxEvent.MOUSE_UP&&i.mouseUp.apply(i,t)}e==mxEvent.MOUSE_UP&&this.click(n)}}else e==mxEvent.MOUSE_UP&&(this.isMouseDown=!1)},mxGraph.prototype.destroy=function(){this.destroyed||(this.destroyed=!0,null!=this.tooltipHandler&&this.tooltipHandler.destroy(),null!=this.selectionCellsHandler&&this.selectionCellsHandler.destroy(),null!=this.panningHandler&&this.panningHandler.destroy(),null!=this.connectionHandler&&this.connectionHandler.destroy(),null!=this.graphHandler&&this.graphHandler.destroy(),null!=this.cellEditor&&this.cellEditor.destroy(),null!=this.view&&this.view.destroy(),null!=this.model&&null!=this.graphModelChangeListener&&(this.model.removeListener(this.graphModelChangeListener),this.graphModelChangeListener=null),this.container=null)},mxCellOverlay.prototype=new mxEventSource,mxCellOverlay.prototype.constructor=mxCellOverlay,mxCellOverlay.prototype.image=null,mxCellOverlay.prototype.tooltip=null,mxCellOverlay.prototype.align=mxConstants.ALIGN_RIGHT,mxCellOverlay.prototype.verticalAlign=mxConstants.ALIGN_BOTTOM,mxCellOverlay.prototype.offset=null,mxCellOverlay.prototype.cursor=null,mxCellOverlay.prototype.defaultOverlap=.5,mxCellOverlay.prototype.getBounds=function(e){var n=e.view.graph.getModel().isEdge(e.cell),t=e.view.scale,a=null,i=this.image.width,s=this.image.height;return n?a=1==(n=e.absolutePoints).length%2?n[Math.floor(n.length/2)]:(e=n[(a=n.length/2)-1],n=n[a],new mxPoint(e.x+(n.x-e.x)/2,e.y+(n.y-e.y)/2)):((a=new mxPoint).x=this.align==mxConstants.ALIGN_LEFT?e.x:this.align==mxConstants.ALIGN_CENTER?e.x+e.width/2:e.x+e.width,a.y=this.verticalAlign==mxConstants.ALIGN_TOP?e.y:this.verticalAlign==mxConstants.ALIGN_MIDDLE?e.y+e.height/2:e.y+e.height),new mxRectangle(Math.round(a.x-(i*this.defaultOverlap-this.offset.x)*t),Math.round(a.y-(s*this.defaultOverlap-this.offset.y)*t),i*t,s*t)},mxCellOverlay.prototype.toString=function(){return this.tooltip},mxOutline.prototype.source=null,mxOutline.prototype.outline=null,mxOutline.prototype.graphRenderHint=mxConstants.RENDERING_HINT_FASTER,mxOutline.prototype.enabled=!0,mxOutline.prototype.showViewport=!0,mxOutline.prototype.border=10,mxOutline.prototype.sizerSize=8,mxOutline.prototype.updateOnPan=!1,mxOutline.prototype.sizerImage=null,mxOutline.prototype.suspended=!1,mxOutline.prototype.init=function(e){this.outline=new mxGraph(e,this.source.getModel(),this.graphRenderHint,this.source.getStylesheet()),this.outline.foldingEnabled=!1,this.outline.autoScroll=!1;var n=this.outline.graphModelChanged;this.outline.graphModelChanged=mxUtils.bind(this,function(e){!this.suspended&&null!=this.outline&&n.apply(this.outline,arguments)}),mxClient.IS_SVG&&((e=this.outline.getView().getCanvas().parentNode).setAttribute("shape-rendering","optimizeSpeed"),e.setAttribute("image-rendering","optimizeSpeed")),this.outline.labelsVisible=!1,this.outline.setEnabled(!1),this.updateHandler=mxUtils.bind(this,function(e,n){!this.suspended&&!this.active&&this.update()}),this.source.getModel().addListener(mxEvent.CHANGE,this.updateHandler),this.outline.addMouseListener(this),(e=this.source.getView()).addListener(mxEvent.SCALE,this.updateHandler),e.addListener(mxEvent.TRANSLATE,this.updateHandler),e.addListener(mxEvent.SCALE_AND_TRANSLATE,this.updateHandler),e.addListener(mxEvent.DOWN,this.updateHandler),e.addListener(mxEvent.UP,this.updateHandler),mxEvent.addListener(this.source.container,"scroll",this.updateHandler),this.panHandler=mxUtils.bind(this,function(e){this.updateOnPan&&this.updateHandler.apply(this,arguments)}),this.source.addListener(mxEvent.PAN,this.panHandler),this.refreshHandler=mxUtils.bind(this,function(e){this.outline.setStylesheet(this.source.getStylesheet()),this.outline.refresh()}),this.source.addListener(mxEvent.REFRESH,this.refreshHandler),this.bounds=new mxRectangle(0,0,0,0),this.selectionBorder=new mxRectangleShape(this.bounds,null,mxConstants.OUTLINE_COLOR,mxConstants.OUTLINE_STROKEWIDTH),this.selectionBorder.dialect=this.outline.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.selectionBorder.init(this.outline.getView().getOverlayPane()),mxEvent.redirectMouseEvents(this.selectionBorder.node,this.outline),this.selectionBorder.node.style.background="",this.sizer=this.createSizer(),this.sizer.init(this.outline.getView().getOverlayPane()),this.enabled&&(this.sizer.node.style.cursor="pointer"),mxEvent.addListener(this.sizer.node,mxClient.IS_TOUCH?"touchstart":"mousedown",mxUtils.bind(this,function(e){this.outline.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e))})),this.selectionBorder.node.style.display=this.showViewport?"":"none",this.sizer.node.style.display=this.selectionBorder.node.style.display,this.selectionBorder.node.style.cursor="move",this.update(!1)},mxOutline.prototype.isEnabled=function(){return this.enabled},mxOutline.prototype.setEnabled=function(e){this.enabled=e},mxOutline.prototype.setZoomEnabled=function(e){this.sizer.node.style.visibility=e?"visible":"hidden"},mxOutline.prototype.refresh=function(){this.update(!0)},mxOutline.prototype.createSizer=function(){var e=null!=this.sizerImage?new mxImageShape(new mxRectangle(0,0,this.sizerImage.width,this.sizerImage.height),this.sizerImage.src):new mxRectangleShape(new mxRectangle(0,0,this.sizerSize,this.sizerSize),mxConstants.OUTLINE_HANDLE_FILLCOLOR,mxConstants.OUTLINE_HANDLE_STROKECOLOR);return e.dialect=this.outline.dialect,e},mxOutline.prototype.getSourceContainerSize=function(){return new mxRectangle(0,0,this.source.container.scrollWidth,this.source.container.scrollHeight)},mxOutline.prototype.getOutlineOffset=function(e){return null},mxOutline.prototype.update=function(e){if(null!=this.source){var n=this.source.view.scale,t=new mxRectangle((t=this.source.getGraphBounds()).x/n+this.source.panDx,t.y/n+this.source.panDy,t.width/n,t.height/n),a=new mxRectangle(0,0,this.source.container.clientWidth/n,this.source.container.clientHeight/n);(s=t.clone()).add(a);var i=this.getSourceContainerSize(),s=(a=Math.max(i.width/n,s.width),n=Math.max(i.height/n,s.height),Math.max(0,this.outline.container.clientWidth-this.border));i=Math.max(0,this.outline.container.clientHeight-this.border);if(0<(s=Math.min(s/a,i/n))){this.outline.getView().scale!=s&&(this.outline.getView().scale=s,e=!0),(a=this.outline.getView()).currentRoot!=this.source.getView().currentRoot&&a.setCurrentRoot(this.source.getView().currentRoot);i=(n=this.source.view.translate).x+this.source.panDx;var o=n.y+this.source.panDy;null!=(s=this.getOutlineOffset(s))&&(i+=s.x,o+=s.y),t.x<0&&(i-=t.x),t.y<0&&(o-=t.y),a.translate.x==i&&a.translate.y==o||(a.translate.x=i,a.translate.y=o,e=!0);t=a.translate,i=(s=this.source.getView().scale)/a.scale,o=1/a.scale;var r=this.source.container;this.bounds=new mxRectangle((t.x-n.x-this.source.panDx)/o,(t.y-n.y-this.source.panDy)/o,r.clientWidth/i,r.clientHeight/i),this.bounds.x+=this.source.container.scrollLeft*a.scale/s,this.bounds.y+=this.source.container.scrollTop*a.scale/s,(t=this.selectionBorder.bounds).x==this.bounds.x&&t.y==this.bounds.y&&t.width==this.bounds.width&&t.height==this.bounds.height||(this.selectionBorder.bounds=this.bounds,this.selectionBorder.redraw()),t=this.sizer.bounds,a=new mxRectangle(this.bounds.x+this.bounds.width-t.width/2,this.bounds.y+this.bounds.height-t.height/2,t.width,t.height),t.x==a.x&&t.y==a.y&&t.width==a.width&&t.height==a.height||(this.sizer.bounds=a,"hidden"!=this.sizer.node.style.visibility&&this.sizer.redraw()),e&&this.outline.view.revalidate()}}},mxOutline.prototype.mouseDown=function(e,n){this.enabled&&this.showViewport&&(this.zoom=n.isSource(this.sizer),this.startX=n.getX(),this.startY=n.getY(),this.active=!0,this.source.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.source.container)?(this.dx0=this.source.container.scrollLeft,this.dy0=this.source.container.scrollTop):this.dy0=this.dx0=0),n.consume()},mxOutline.prototype.mouseMove=function(e,n){if(this.active){this.selectionBorder.node.style.display=this.showViewport?"":"none",this.sizer.node.style.display=this.selectionBorder.node.style.display;var t=n.getX()-this.startX,a=n.getY()-this.startY,i=null;if(this.zoom)a=t/((i=this.source.container).clientWidth/i.clientHeight),i=new mxRectangle(this.bounds.x,this.bounds.y,Math.max(1,this.bounds.width+t),Math.max(1,this.bounds.height+a)),this.selectionBorder.bounds=i,this.selectionBorder.redraw();else{var s=this.outline.getView().scale;i=new mxRectangle(this.bounds.x+t,this.bounds.y+a,this.bounds.width,this.bounds.height);this.selectionBorder.bounds=i,this.selectionBorder.redraw(),t=t/s*this.source.getView().scale,a=a/s*this.source.getView().scale,this.source.panGraph(-t-this.dx0,-a-this.dy0)}t=this.sizer.bounds,this.sizer.bounds=new mxRectangle(i.x+i.width-t.width/2,i.y+i.height-t.height/2,t.width,t.height),"hidden"!=this.sizer.node.style.visibility&&this.sizer.redraw(),n.consume()}},mxOutline.prototype.mouseUp=function(e,n){if(this.active){var t=n.getX()-this.startX,a=n.getY()-this.startY;if(0<Math.abs(t)||0<Math.abs(a)){if(this.zoom){a=this.selectionBorder.bounds.width;var i=this.source.getView().scale;this.source.zoomTo(i-t*i/a,!1)}else this.source.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.source.container)||(this.source.panGraph(0,0),t/=this.outline.getView().scale,a/=this.outline.getView().scale,i=this.source.getView().translate,this.source.getView().setTranslate(i.x-t,i.y-a));this.update(),n.consume()}this.index=null,this.active=!1}},mxOutline.prototype.destroy=function(){null!=this.source&&(this.source.removeListener(this.panHandler),this.source.removeListener(this.refreshHandler),this.source.getModel().removeListener(this.updateHandler),this.source.getView().removeListener(this.updateHandler),mxEvent.addListener(this.source.container,"scroll",this.updateHandler),this.source=null),null!=this.outline&&(this.outline.removeMouseListener(this),this.outline.destroy(),this.outline=null),null!=this.selectionBorder&&(this.selectionBorder.destroy(),this.selectionBorder=null),null!=this.sizer&&(this.sizer.destroy(),this.sizer=null)},mxMultiplicity.prototype.type=null,mxMultiplicity.prototype.attr=null,mxMultiplicity.prototype.value=null,mxMultiplicity.prototype.source=null,mxMultiplicity.prototype.min=null,mxMultiplicity.prototype.max=null,mxMultiplicity.prototype.validNeighbors=null,mxMultiplicity.prototype.validNeighborsAllowed=!0,mxMultiplicity.prototype.countError=null,mxMultiplicity.prototype.typeError=null,mxMultiplicity.prototype.check=function(e,n,t,a,i,s){var o="";return(this.source&&this.checkTerminal(e,t,n)||!this.source&&this.checkTerminal(e,a,n))&&(null!=this.countError&&(this.source&&(0==this.max||i>=this.max)||!this.source&&(0==this.max||s>=this.max))&&(o+=this.countError+"\n"),null!=this.validNeighbors&&null!=this.typeError&&0<this.validNeighbors.length&&(this.checkNeighbors(e,n,t,a)||(o+=this.typeError+"\n"))),0<o.length?o:null},mxMultiplicity.prototype.checkNeighbors=function(e,n,t,a){n=e.model.getValue(t),a=e.model.getValue(a),t=!this.validNeighborsAllowed;for(var i=this.validNeighbors,s=0;s<i.length;s++){if(this.source&&this.checkType(e,a,i[s])){t=this.validNeighborsAllowed;break}if(!this.source&&this.checkType(e,n,i[s])){t=this.validNeighborsAllowed;break}}return t},mxMultiplicity.prototype.checkTerminal=function(e,n,t){return n=e.model.getValue(n),this.checkType(e,n,this.type,this.attr,this.value)},mxMultiplicity.prototype.checkType=function(e,n,t,a,i){return null!=n&&(isNaN(n.nodeType)?n==t:mxUtils.isNode(n,t,a,i))},mxLayoutManager.prototype=new mxEventSource,mxLayoutManager.prototype.constructor=mxLayoutManager,mxLayoutManager.prototype.graph=null,mxLayoutManager.prototype.bubbling=!0,mxLayoutManager.prototype.enabled=!0,mxLayoutManager.prototype.updateHandler=null,mxLayoutManager.prototype.moveHandler=null,mxLayoutManager.prototype.isEnabled=function(){return this.enabled},mxLayoutManager.prototype.setEnabled=function(e){this.enabled=e},mxLayoutManager.prototype.isBubbling=function(){return this.bubbling},mxLayoutManager.prototype.setBubbling=function(e){this.bubbling=e},mxLayoutManager.prototype.getGraph=function(){return this.graph},mxLayoutManager.prototype.setGraph=function(e){if(null!=this.graph){var n=this.graph.getModel();n.removeListener(this.undoHandler),this.graph.removeListener(this.moveHandler)}this.graph=e,null!=this.graph&&((n=this.graph.getModel()).addListener(mxEvent.BEFORE_UNDO,this.undoHandler),this.graph.addListener(mxEvent.MOVE_CELLS,this.moveHandler))},mxLayoutManager.prototype.getLayout=function(e){return null},mxLayoutManager.prototype.beforeUndo=function(e){e=this.getCellsForChanges(e.changes);var n=this.getGraph().getModel();if(this.isBubbling())for(var t=n.getParents(e);0<t.length;)e=e.concat(t),t=n.getParents(t);this.layoutCells(mxUtils.sortCells(e,!1))},mxLayoutManager.prototype.cellsMoved=function(e,n){if(null!=e&&null!=n)for(var t=mxUtils.convertPoint(this.getGraph().container,mxEvent.getClientX(n),mxEvent.getClientY(n)),a=this.getGraph().getModel(),i=0;i<e.length;i++){var s=this.getLayout(a.getParent(e[i]));null!=s&&s.moveCell(e[i],t.x,t.y)}},mxLayoutManager.prototype.getCellsForChanges=function(e){for(var n=[],t={},a=0;a<e.length;a++){if((i=e[a])instanceof mxRootChange)return[];for(var i=this.getCellsForChange(i),s=0;s<i.length;s++)if(null!=i[s]){var o=mxCellPath.create(i[s]);null==t[o]&&(t[o]=i[s],n.push(i[s]))}}return n},mxLayoutManager.prototype.getCellsForChange=function(e){var n=this.getGraph().getModel();return e instanceof mxChildChange?[e.child,e.previous,n.getParent(e.child)]:e instanceof mxTerminalChange||e instanceof mxGeometryChange?[e.cell,n.getParent(e.cell)]:[]},mxLayoutManager.prototype.layoutCells=function(e){if(0<e.length){var n=this.getGraph().getModel();n.beginUpdate();try{for(var t=null,a=0;a<e.length;a++)e[a]!=n.getRoot()&&e[a]!=t&&(t=e[a],this.executeLayout(this.getLayout(t),t));this.fireEvent(new mxEventObject(mxEvent.LAYOUT_CELLS,"cells",e))}finally{n.endUpdate()}}},mxLayoutManager.prototype.executeLayout=function(e,n){null!=e&&null!=n&&e.execute(n)},mxLayoutManager.prototype.destroy=function(){this.setGraph(null)},mxSpaceManager.prototype=new mxEventSource,mxSpaceManager.prototype.constructor=mxSpaceManager,mxSpaceManager.prototype.graph=null,mxSpaceManager.prototype.enabled=!0,mxSpaceManager.prototype.shiftRightwards=!0,mxSpaceManager.prototype.shiftDownwards=!0,mxSpaceManager.prototype.extendParents=!0,mxSpaceManager.prototype.resizeHandler=null,mxSpaceManager.prototype.foldHandler=null,mxSpaceManager.prototype.isCellIgnored=function(e){return!this.getGraph().getModel().isVertex(e)},mxSpaceManager.prototype.isCellShiftable=function(e){return this.getGraph().getModel().isVertex(e)&&this.getGraph().isCellMovable(e)},mxSpaceManager.prototype.isEnabled=function(){return this.enabled},mxSpaceManager.prototype.setEnabled=function(e){this.enabled=e},mxSpaceManager.prototype.isShiftRightwards=function(){return this.shiftRightwards},mxSpaceManager.prototype.setShiftRightwards=function(e){this.shiftRightwards=e},mxSpaceManager.prototype.isShiftDownwards=function(){return this.shiftDownwards},mxSpaceManager.prototype.setShiftDownwards=function(e){this.shiftDownwards=e},mxSpaceManager.prototype.isExtendParents=function(){return this.extendParents},mxSpaceManager.prototype.setExtendParents=function(e){this.extendParents=e},mxSpaceManager.prototype.getGraph=function(){return this.graph},mxSpaceManager.prototype.setGraph=function(e){null!=this.graph&&(this.graph.removeListener(this.resizeHandler),this.graph.removeListener(this.foldHandler)),this.graph=e,null!=this.graph&&(this.graph.addListener(mxEvent.RESIZE_CELLS,this.resizeHandler),this.graph.addListener(mxEvent.FOLD_CELLS,this.foldHandler))},mxSpaceManager.prototype.cellsResized=function(e){if(null!=e){var n=this.graph.getModel();n.beginUpdate();try{for(var t=0;t<e.length;t++)if(!this.isCellIgnored(e[t])){this.cellResized(e[t]);break}}finally{n.endUpdate()}}},mxSpaceManager.prototype.cellResized=function(e){var n=this.getGraph(),t=n.getView(),a=n.getModel(),i=t.getState(e),s=t.getState(a.getParent(e));if(null!=i&&null!=s){var o=this.getCellsToShift(i),r=a.getGeometry(e);if(null!=o&&null!=r){var l=t.translate,d=t.scale,c=(t=i.x-s.origin.x-l.x*d,s=i.y-s.origin.y-l.y*d,l=i.x+i.width,i.y+i.height),m=i.width-r.width*d+t-r.x*d,u=i.height-r.height*d+s-r.y*d,p=1-r.width*d/i.width;i=1-r.height*d/i.height;a.beginUpdate();try{for(r=0;r<o.length;r++)o[r]!=e&&this.isCellShiftable(o[r])&&this.shiftCell(o[r],m,u,t,s,l,c,p,i,this.isExtendParents()&&n.isExtendParent(o[r]))}finally{a.endUpdate()}}}},mxSpaceManager.prototype.shiftCell=function(e,n,t,a,i,s,o,r,l,d){var c=(a=this.getGraph()).getView().getState(e);if(null!=c){var m=a.getModel();if(null!=(p=m.getGeometry(e))){m.beginUpdate();try{if(this.isShiftRightwards())if(c.x>=s)(p=p.clone()).translate(-n,0);else{var u=Math.max(0,c.x-x0);(p=p.clone()).translate(-r*u,0)}if(this.isShiftDownwards())if(c.y>=o)(p=p.clone()).translate(0,-t);else{var p,g=Math.max(0,c.y-i);(p=p.clone()).translate(0,-l*g)}p!=m.getGeometry(e)&&(m.setGeometry(e,p),d&&a.extendParent(e))}finally{m.endUpdate()}}}},mxSpaceManager.prototype.getCellsToShift=function(e){var n=this.getGraph(),t=n.getModel().getParent(e.cell),a=this.isShiftDownwards(),i=this.isShiftRightwards();return n.getCellsBeyond(e.x+(a?0:e.width),e.y+(a&&i?0:e.height),t,i,a)},mxSpaceManager.prototype.destroy=function(){this.setGraph(null)},mxSwimlaneManager.prototype=new mxEventSource,mxSwimlaneManager.prototype.constructor=mxSwimlaneManager,mxSwimlaneManager.prototype.graph=null,mxSwimlaneManager.prototype.enabled=!0,mxSwimlaneManager.prototype.horizontal=!0,mxSwimlaneManager.prototype.addEnabled=!0,mxSwimlaneManager.prototype.resizeEnabled=!0,mxSwimlaneManager.prototype.addHandler=null,mxSwimlaneManager.prototype.resizeHandler=null,mxSwimlaneManager.prototype.isEnabled=function(){return this.enabled},mxSwimlaneManager.prototype.setEnabled=function(e){this.enabled=e},mxSwimlaneManager.prototype.isHorizontal=function(){return this.horizontal},mxSwimlaneManager.prototype.setHorizontal=function(e){this.horizontal=e},mxSwimlaneManager.prototype.isAddEnabled=function(){return this.addEnabled},mxSwimlaneManager.prototype.setAddEnabled=function(e){this.addEnabled=e},mxSwimlaneManager.prototype.isResizeEnabled=function(){return this.resizeEnabled},mxSwimlaneManager.prototype.setResizeEnabled=function(e){this.resizeEnabled=e},mxSwimlaneManager.prototype.getGraph=function(){return this.graph},mxSwimlaneManager.prototype.setGraph=function(e){null!=this.graph&&(this.graph.removeListener(this.addHandler),this.graph.removeListener(this.resizeHandler)),this.graph=e,null!=this.graph&&(this.graph.addListener(mxEvent.ADD_CELLS,this.addHandler),this.graph.addListener(mxEvent.CELLS_RESIZED,this.resizeHandler))},mxSwimlaneManager.prototype.isSwimlaneIgnored=function(e){return!this.getGraph().isSwimlane(e)},mxSwimlaneManager.prototype.isCellHorizontal=function(e){if(this.graph.isSwimlane(e)){var n=this.graph.view.getState(e);return e=null!=n?n.style:this.graph.getCellStyle(e),1==mxUtils.getValue(e,mxConstants.STYLE_HORIZONTAL,1)}return!this.isHorizontal()},mxSwimlaneManager.prototype.cellsAdded=function(e){if(null!=e){var n=this.getGraph().getModel();n.beginUpdate();try{for(var t=0;t<e.length;t++)this.isSwimlaneIgnored(e[t])||this.swimlaneAdded(e[t])}finally{n.endUpdate()}}},mxSwimlaneManager.prototype.swimlaneAdded=function(e){for(var n=this.getGraph().getModel(),t=n.getParent(e),a=n.getChildCount(t),i=null,s=0;s<a;s++){var o=n.getChildAt(t,s);if(o!=e&&!this.isSwimlaneIgnored(o)&&null!=(i=n.getGeometry(o)))break}null!=i&&this.resizeSwimlane(e,i.width,i.height)},mxSwimlaneManager.prototype.cellsResized=function(e){if(null!=e){var n=this.getGraph().getModel();n.beginUpdate();try{for(var t=0;t<e.length;t++)if(!this.isSwimlaneIgnored(e[t])){var a=n.getGeometry(e[t]);if(null!=a){for(var i=new mxRectangle(0,0,a.width,a.height),s=o=e[t];null!=s;){var o=s,r=(s=n.getParent(s),this.graph.isSwimlane(s)?this.graph.getStartSize(s):new mxRectangle);i.width+=r.width,i.height+=r.height}this.resizeSwimlane(o,i.width,i.height)}}}finally{n.endUpdate()}}},mxSwimlaneManager.prototype.resizeSwimlane=function(e,n,t){var a=this.getGraph().getModel();a.beginUpdate();try{if(!this.isSwimlaneIgnored(e))if(null!=(r=a.getGeometry(e))){var i=this.isCellHorizontal(e);(i&&r.height!=t||!i&&r.width!=n)&&(r=r.clone(),i?r.height=t:r.width=n,a.setGeometry(e,r))}var s=this.graph.isSwimlane(e)?this.graph.getStartSize(e):new mxRectangle;n-=s.width,t-=s.height;for(var o=a.getChildCount(e),r=0;r<o;r++){var l=a.getChildAt(e,r);this.resizeSwimlane(l,n,t)}}finally{a.endUpdate()}},mxSwimlaneManager.prototype.destroy=function(){this.setGraph(null)},mxTemporaryCellStates.prototype.view=null,mxTemporaryCellStates.prototype.oldStates=null,mxTemporaryCellStates.prototype.oldBounds=null,mxTemporaryCellStates.prototype.oldScale=null,mxTemporaryCellStates.prototype.destroy=function(){this.view.setScale(this.oldScale),this.view.setStates(this.oldStates),this.view.setGraphBounds(this.oldBounds)},mxCellStatePreview.prototype.graph=null,mxCellStatePreview.prototype.deltas=null,mxCellStatePreview.prototype.count=0,mxCellStatePreview.prototype.isEmpty=function(){return 0==this.count},mxCellStatePreview.prototype.moveState=function(e,n,t,a,i){a=null==a||a,i=null==i||i;var s=mxCellPath.create(e.cell),o=this.deltas[s];return null==o?(o=new mxPoint(n,t),this.deltas[s]=o,this.count++):a?(o.X+=n,o.Y+=t):(o.X=n,o.Y=t),i&&this.addEdges(e),o},mxCellStatePreview.prototype.show=function(e){var n,t=this.graph.getModel(),a=t.getRoot();for(n in this.deltas){var i=mxCellPath.resolve(a,n),s=this.graph.view.getState(i),o=this.deltas[n];i=this.graph.view.getState(t.getParent(i));this.translateState(i,s,o.x,o.y)}for(n in this.deltas)i=mxCellPath.resolve(a,n),s=this.graph.view.getState(i),o=this.deltas[n],i=this.graph.view.getState(t.getParent(i)),this.revalidateState(i,s,o.x,o.y,e)},mxCellStatePreview.prototype.translateState=function(e,n,t,a){if(null!=n){var i=this.graph.getModel();if(i.isVertex(n.cell)){n.invalid=!0,this.graph.view.validateBounds(e,n.cell),e=i.getGeometry(n.cell);var s=mxCellPath.create(n.cell);0==t&&0==a||null==e||e.relative&&null==this.deltas[s]||(n.x+=t,n.y+=a)}for(e=i.getChildCount(n.cell),s=0;s<e;s++)this.translateState(n,this.graph.view.getState(i.getChildAt(n.cell,s)),t,a)}},mxCellStatePreview.prototype.revalidateState=function(e,n,t,a,i){if(null!=n){n.invalid=!0,this.graph.view.validatePoints(e,n.cell);var s=mxCellPath.create(n.cell),o=this.graph.getModel(),r=this.graph.getCellGeometry(n.cell);for(0==t&&0==a||null==r||!r.relative||!o.isVertex(n.cell)||null!=e&&!o.isVertex(e.cell)&&null==this.deltas[s]||(n.x+=t,n.y+=a,this.graph.cellRenderer.redraw(n)),null!=i&&i(n),e=o.getChildCount(n.cell),s=0;s<e;s++)this.revalidateState(n,this.graph.view.getState(o.getChildAt(n.cell,s)),t,a,i)}},mxCellStatePreview.prototype.addEdges=function(e){for(var n=this.graph.getModel(),t=n.getEdgeCount(e.cell),a=0;a<t;a++){var i=this.graph.view.getState(n.getEdgeAt(e.cell,a));null!=i&&this.moveState(i,0,0)}},mxConnectionConstraint.prototype.point=null,mxConnectionConstraint.prototype.perimeter=null,mxGraphHandler.prototype.graph=null,mxGraphHandler.prototype.maxCells=mxClient.IS_IE?20:50,mxGraphHandler.prototype.enabled=!0,mxGraphHandler.prototype.highlightEnabled=!0,mxGraphHandler.prototype.cloneEnabled=!0,mxGraphHandler.prototype.moveEnabled=!0,mxGraphHandler.prototype.guidesEnabled=!1,mxGraphHandler.prototype.guide=null,mxGraphHandler.prototype.currentDx=null,mxGraphHandler.prototype.currentDy=null,mxGraphHandler.prototype.updateCursor=!0,mxGraphHandler.prototype.selectEnabled=!0,mxGraphHandler.prototype.removeCellsFromParent=!0,mxGraphHandler.prototype.connectOnDrop=!1,mxGraphHandler.prototype.scrollOnMove=!0,mxGraphHandler.prototype.minimumSize=6,mxGraphHandler.prototype.previewColor="black",mxGraphHandler.prototype.htmlPreview=!1,mxGraphHandler.prototype.shape=null,mxGraphHandler.prototype.scaleGrid=!1,mxGraphHandler.prototype.rotationEnabled=!0,mxGraphHandler.prototype.isEnabled=function(){return this.enabled},mxGraphHandler.prototype.setEnabled=function(e){this.enabled=e},mxGraphHandler.prototype.isCloneEnabled=function(){return this.cloneEnabled},mxGraphHandler.prototype.setCloneEnabled=function(e){this.cloneEnabled=e},mxGraphHandler.prototype.isMoveEnabled=function(){return this.moveEnabled},mxGraphHandler.prototype.setMoveEnabled=function(e){this.moveEnabled=e},mxGraphHandler.prototype.isSelectEnabled=function(){return this.selectEnabled},mxGraphHandler.prototype.setSelectEnabled=function(e){this.selectEnabled=e},mxGraphHandler.prototype.isRemoveCellsFromParent=function(){return this.removeCellsFromParent},mxGraphHandler.prototype.setRemoveCellsFromParent=function(e){this.removeCellsFromParent=e},mxGraphHandler.prototype.getInitialCellForEvent=function(e){return e.getCell()},mxGraphHandler.prototype.isDelayedSelection=function(e){return this.graph.isCellSelected(e)},mxGraphHandler.prototype.mouseDown=function(e,n){if(!n.isConsumed()&&this.isEnabled()&&this.graph.isEnabled()&&!this.graph.isForceMarqueeEvent(n.getEvent())&&null!=n.getState()){var t=this.getInitialCellForEvent(n);if(this.cell=null,this.delayedSelection=this.isDelayedSelection(t),this.isSelectEnabled()&&!this.delayedSelection&&this.graph.selectCellForEvent(t,n.getEvent()),this.isMoveEnabled()){var a=this.graph.model,i=a.getGeometry(t);this.graph.isCellMovable(t)&&(!a.isEdge(t)||1<this.graph.getSelectionCount()||null!=i.points&&0<i.points.length||null==a.getTerminal(t,!0)||null==a.getTerminal(t,!1)||this.graph.allowDanglingEdges||this.graph.isCloneEvent(n.getEvent())&&this.graph.isCellsCloneable())&&this.start(t,n.getX(),n.getY()),this.cellWasClicked=!0,!mxClient.IS_SF&&!mxClient.IS_GC||"SELECT"!=n.getSource().nodeName?n.consume():mxClient.IS_SF&&"SELECT"==n.getSource().nodeName&&(this.cellWasClicked=!1,this.first=null)}}},mxGraphHandler.prototype.getGuideStates=function(){var e=this.graph.getDefaultParent(),n=this.graph.getModel(),t=mxUtils.bind(this,function(e){return null!=this.graph.view.getState(e)&&n.isVertex(e)&&null!=n.getGeometry(e)&&!n.getGeometry(e).relative});return this.graph.view.getCellStates(n.filterDescendants(t,e))},mxGraphHandler.prototype.getCells=function(e){return!this.delayedSelection&&this.graph.isCellMovable(e)?[e]:this.graph.getMovableCells(this.graph.getSelectionCells())},mxGraphHandler.prototype.getPreviewBounds=function(e){return null!=(e=this.getBoundingBox(e))&&(e.grow(-1,-1),e.width<this.minimumSize&&(e.x-=(this.minimumSize-e.width)/2,e.width=this.minimumSize),e.height<this.minimumSize&&(e.y-=(this.minimumSize-e.height)/2,e.height=this.minimumSize)),e},mxGraphHandler.prototype.getBoundingBox=function(e){var n=null;if(null!=e&&0<e.length)for(var t=this.graph.getModel(),a=0;a<e.length;a++)if(t.isVertex(e[a])||t.isEdge(e[a])){var i=this.graph.view.getState(e[a]);if(null!=i){var s=i;t.isVertex(e[a])&&null!=i.shape&&null!=i.shape.boundingBox&&(s=i.shape.boundingBox),null==n?n=new mxRectangle(s.x,s.y,s.width,s.height):n.add(s)}}return n},mxGraphHandler.prototype.createPreviewShape=function(e){return(e=new mxRectangleShape(e,null,this.previewColor)).isDashed=!0,this.htmlPreview?(e.dialect=mxConstants.DIALECT_STRICTHTML,e.init(this.graph.container)):(e.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,e.init(this.graph.getView().getOverlayPane()),e.pointerEvents=!1),e},mxGraphHandler.prototype.start=function(e,n,t){this.cell=e,this.first=mxUtils.convertPoint(this.graph.container,n,t),this.cells=this.getCells(this.cell),this.bounds=this.graph.getView().getBounds(this.cells),this.pBounds=this.getPreviewBounds(this.cells),this.guidesEnabled&&(this.guide=new mxGuide(this.graph,this.getGuideStates()))},mxGraphHandler.prototype.useGuidesForEvent=function(e){return null==this.guide||this.guide.isEnabledForEvent(e.getEvent())},mxGraphHandler.prototype.snap=function(e){var n=this.scaleGrid?this.graph.view.scale:1;return e.x=this.graph.snap(e.x/n)*n,e.y=this.graph.snap(e.y/n)*n,e},mxGraphHandler.prototype.mouseMove=function(e,n){var t=this.graph;if(!n.isConsumed()&&t.isMouseDown&&null!=this.cell&&null!=this.first&&null!=this.bounds){var a=(s=mxUtils.convertPoint(t.container,n.getX(),n.getY())).x-this.first.x,i=s.y-this.first.y,s=t.tolerance;if(null!=this.shape||Math.abs(a)>s||Math.abs(i)>s){null==this.highlight&&(this.highlight=new mxCellHighlight(this.graph,mxConstants.DROP_TARGET_COLOR,3)),null==this.shape&&(this.shape=this.createPreviewShape(this.bounds));var o=t.isGridEnabledEvent(n.getEvent());s=!0;if(null!=this.guide&&this.useGuidesForEvent(n))s=!1,a=(i=this.guide.move(this.bounds,new mxPoint(a,i),o)).x,i=i.y;else if(o){var r=t.getView().translate,l=t.getView().scale;o=this.bounds.x-(t.snap(this.bounds.x/l-r.x)+r.x)*l,r=this.bounds.y-(t.snap(this.bounds.y/l-r.y)+r.y)*l,a=(i=this.snap(new mxPoint(a,i))).x-o,i=i.y-r}for(null!=this.guide&&s&&this.guide.hide(),t.isConstrainedEvent(n.getEvent())&&(Math.abs(a)>Math.abs(i)?i=0:a=0),this.currentDx=a,this.currentDy=i,this.updatePreviewShape(),s=null,i=n.getCell(),t.isDropEnabled()&&this.highlightEnabled&&(s=t.getDropTarget(this.cells,n.getEvent(),i)),o=s,r=t.getModel();null!=o&&o!=this.cells[0];)o=r.getParent(o);l=t.isCloneEvent(n.getEvent())&&t.isCellsCloneable()&&this.isCloneEnabled();var d=!1;null==(a=t.getView().getState(s))||null!=o||r.getParent(this.cell)==s&&!l?(this.target=null,this.connectOnDrop&&null!=i&&1==this.cells.length&&t.getModel().isVertex(i)&&t.isCellConnectable(i)&&(null!=(a=t.getView().getState(i))&&(t=null==t.getEdgeValidationError(null,this.cell,i)?mxConstants.VALID_COLOR:mxConstants.INVALID_CONNECT_TARGET_COLOR,this.setHighlightColor(t),d=!0))):(this.target!=s&&(this.target=s,this.setHighlightColor(mxConstants.DROP_TARGET_COLOR)),d=!0),null!=a&&d?this.highlight.highlight(a):this.highlight.hide()}n.consume(),mxEvent.consume(n.getEvent())}else!this.isMoveEnabled()&&!this.isCloneEnabled()||!this.updateCursor||n.isConsumed()||null==n.getState()||t.isMouseDown||(null==(a=t.getCursorForCell(n.getCell()))&&t.isEnabled()&&t.isCellMovable(n.getCell())&&(a=t.getModel().isEdge(n.getCell())?mxConstants.CURSOR_MOVABLE_EDGE:mxConstants.CURSOR_MOVABLE_VERTEX),n.getState().setCursor(a),n.consume())},mxGraphHandler.prototype.updatePreviewShape=function(){null!=this.shape&&(this.shape.bounds=new mxRectangle(Math.round(this.pBounds.x+this.currentDx-this.graph.panDx),Math.round(this.pBounds.y+this.currentDy-this.graph.panDy),this.pBounds.width,this.pBounds.height),this.shape.redraw())},mxGraphHandler.prototype.setHighlightColor=function(e){null!=this.highlight&&this.highlight.setHighlightColor(e)},mxGraphHandler.prototype.mouseUp=function(e,n){if(!n.isConsumed()){var t=this.graph;if(null!=this.cell&&null!=this.first&&null!=this.shape&&null!=this.currentDx&&null!=this.currentDy){var a=t.getView().scale,i=t.isCloneEvent(n.getEvent())&&t.isCellsCloneable()&&this.isCloneEnabled(),s=this.currentDx/a,o=(a=this.currentDy/a,n.getCell());this.connectOnDrop&&null==this.target&&null!=o&&t.getModel().isVertex(o)&&t.isCellConnectable(o)&&t.isEdgeValid(null,this.cell,o)?t.connectionHandler.connect(this.cell,o,n.getEvent()):(o=this.target,t.isSplitEnabled()&&t.isSplitTarget(o,this.cells,n.getEvent())?t.splitEdge(o,this.cells,null,s,a):this.moveCells(this.cells,s,a,i,this.target,n.getEvent()))}else this.isSelectEnabled()&&this.delayedSelection&&null!=this.cell&&this.selectDelayed(n)}this.cellWasClicked&&n.consume(),this.reset()},mxGraphHandler.prototype.selectDelayed=function(e){this.graph.selectCellForEvent(this.cell,e.getEvent())},mxGraphHandler.prototype.reset=function(){this.destroyShapes(),this.delayedSelection=this.cellWasClicked=!1,this.target=this.cell=this.first=this.guides=this.currentDy=this.currentDx=null},mxGraphHandler.prototype.shouldRemoveCellsFromParent=function(e,n,t){if(this.graph.getModel().isVertex(e)){if(e=this.graph.getView().getState(e),t=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(t),mxEvent.getClientY(t)),0!=(a=mxUtils.toRadians(mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION)||0))){n=Math.cos(-a);var a=Math.sin(-a),i=new mxPoint(e.getCenterX(),e.getCenterY());t=mxUtils.getRotatedPoint(t,n,a,i)}return null!=e&&!mxUtils.contains(e,t.x,t.y)}return!1},mxGraphHandler.prototype.moveCells=function(e,n,t,a,i,s){a&&(e=this.graph.getCloneableCells(e)),null==i&&this.isRemoveCellsFromParent()&&this.shouldRemoveCellsFromParent(this.graph.getModel().getParent(this.cell),e,s)&&(i=this.graph.getDefaultParent()),e=this.graph.moveCells(e,n-this.graph.panDx/this.graph.view.scale,t-this.graph.panDy/this.graph.view.scale,a,i,s),this.isSelectEnabled()&&this.scrollOnMove&&this.graph.scrollCellToVisible(e[0]),a&&this.graph.setSelectionCells(e)},mxGraphHandler.prototype.destroyShapes=function(){null!=this.shape&&(this.shape.destroy(),this.shape=null),null!=this.guide&&(this.guide.destroy(),this.guide=null),null!=this.highlight&&(this.highlight.destroy(),this.highlight=null)},mxGraphHandler.prototype.destroy=function(){this.graph.removeMouseListener(this),this.graph.removeListener(this.panHandler),this.destroyShapes()},mxPanningHandler.prototype=new mxPopupMenu,mxPanningHandler.prototype.constructor=mxPanningHandler,mxPanningHandler.prototype.graph=null,mxPanningHandler.prototype.triggerX=null,mxPanningHandler.prototype.triggerY=null,mxPanningHandler.prototype.usePopupTrigger=!0,mxPanningHandler.prototype.useLeftButtonForPanning=!1,mxPanningHandler.prototype.selectOnPopup=!0,mxPanningHandler.prototype.clearSelectionOnBackground=!0,mxPanningHandler.prototype.ignoreCell=!1,mxPanningHandler.prototype.previewEnabled=!0,mxPanningHandler.prototype.useGrid=!1,mxPanningHandler.prototype.panningEnabled=!0,mxPanningHandler.prototype.isPanningEnabled=function(){return this.panningEnabled},mxPanningHandler.prototype.setPanningEnabled=function(e){this.panningEnabled=e},mxPanningHandler.prototype.init=function(){mxPopupMenu.prototype.init.apply(this),mxEvent.addListener(this.div,mxClient.IS_TOUCH?"touchmove":"mousemove",mxUtils.bind(this,function(e){this.graph.tooltipHandler.hide()}))},mxPanningHandler.prototype.isPanningTrigger=function(e){var n=e.getEvent();return this.useLeftButtonForPanning&&(this.ignoreCell||null==e.getState())&&mxEvent.isLeftMouseButton(n)||mxEvent.isControlDown(n)&&mxEvent.isShiftDown(n)||this.usePopupTrigger&&mxEvent.isPopupTrigger(n)},mxPanningHandler.prototype.mouseDown=function(e,n){if(!n.isConsumed()&&this.isEnabled()){this.hideMenu(),this.dx0=-this.graph.container.scrollLeft,this.dy0=-this.graph.container.scrollTop;var t=mxUtils.convertPoint(this.graph.container,n.getX(),n.getY());this.triggerX=t.x,this.triggerY=t.y,this.popupTrigger=this.isPopupTrigger(n),this.panningTrigger=this.isPanningEnabled()&&this.isPanningTrigger(n),this.startX=n.getX(),this.startY=n.getY(),this.panningTrigger&&this.consumePanningTrigger(n)}},mxPanningHandler.prototype.consumePanningTrigger=function(e){e.consume()},mxPanningHandler.prototype.mouseMove=function(e,n){var t=n.getX()-this.startX,a=n.getY()-this.startY;if(this.active)this.previewEnabled&&(this.useGrid&&(t=this.graph.snap(t),a=this.graph.snap(a)),this.graph.panGraph(t+this.dx0,a+this.dy0)),this.fireEvent(new mxEventObject(mxEvent.PAN,"event",n)),n.consume();else if(this.panningTrigger){var i=this.active;this.active=Math.abs(t)>this.graph.tolerance||Math.abs(a)>this.graph.tolerance,!i&&this.active&&this.fireEvent(new mxEventObject(mxEvent.PAN_START,"event",n))}},mxPanningHandler.prototype.mouseUp=function(e,n){var t=Math.abs(n.getX()-this.startX),a=Math.abs(n.getY()-this.startY);if(this.active){if(!this.graph.useScrollbarsForPanning||!mxUtils.hasScrollbars(this.graph.container)){t=n.getX()-this.startX,a=n.getY()-this.startY,this.useGrid&&(t=this.graph.snap(t),a=this.graph.snap(a));var i=this.graph.getView().scale,s=this.graph.getView().translate;this.graph.panGraph(0,0),this.panGraph(s.x+t/i,s.y+a/i)}this.active=!1,this.fireEvent(new mxEventObject(mxEvent.PAN_END,"event",n)),n.consume()}else this.popupTrigger&&t<this.graph.tolerance&&a<this.graph.tolerance&&(t=this.getCellForPopupEvent(n),this.graph.isEnabled()&&this.selectOnPopup&&null!=t&&!this.graph.isCellSelected(t)?this.graph.setSelectionCell(t):this.clearSelectionOnBackground&&null==t&&this.graph.clearSelection(),this.graph.tooltipHandler.hide(),a=mxUtils.getScrollOrigin(),a=new mxPoint(n.getX()+a.x,n.getY()+a.y),this.popup(a.x+1,a.y+1,t,n.getEvent()),n.consume());this.popupTrigger=this.panningTrigger=!1},mxPanningHandler.prototype.getCellForPopupEvent=function(e){return e.getCell()},mxPanningHandler.prototype.panGraph=function(e,n){this.graph.getView().setTranslate(e,n)},mxPanningHandler.prototype.destroy=function(){this.graph.removeMouseListener(this),mxPopupMenu.prototype.destroy.apply(this)},mxUtils.extend(mxCellMarker,mxEventSource),mxCellMarker.prototype.graph=null,mxCellMarker.prototype.enabled=!0,mxCellMarker.prototype.hotspot=mxConstants.DEFAULT_HOTSPOT,mxCellMarker.prototype.hotspotEnabled=!1,mxCellMarker.prototype.validColor=null,mxCellMarker.prototype.invalidColor=null,mxCellMarker.prototype.currentColor=null,mxCellMarker.prototype.validState=null,mxCellMarker.prototype.markedState=null,mxCellMarker.prototype.setEnabled=function(e){this.enabled=e},mxCellMarker.prototype.isEnabled=function(){return this.enabled},mxCellMarker.prototype.setHotspot=function(e){this.hotspot=e},mxCellMarker.prototype.getHotspot=function(){return this.hotspot},mxCellMarker.prototype.setHotspotEnabled=function(e){this.hotspotEnabled=e},mxCellMarker.prototype.isHotspotEnabled=function(){return this.hotspotEnabled},mxCellMarker.prototype.hasValidState=function(){return null!=this.validState},mxCellMarker.prototype.getValidState=function(){return this.validState},mxCellMarker.prototype.getMarkedState=function(){return this.markedState},mxCellMarker.prototype.reset=function(){(this.validState=null)!=this.markedState&&(this.markedState=null,this.unmark())},mxCellMarker.prototype.process=function(e){var n=null;if(this.isEnabled()){var t=null!=(n=this.getState(e))&&this.isValidState(n);e=this.getMarkerColor(e.getEvent(),n,t),this.validState=t?n:null,n==this.markedState&&e==this.currentColor||(this.currentColor=e,null!=n&&null!=this.currentColor?(this.markedState=n,this.mark()):null!=this.markedState&&(this.markedState=null,this.unmark()))}return n},mxCellMarker.prototype.markCell=function(e,n){var t=this.graph.getView().getState(e);null!=t&&(this.currentColor=null!=n?n:this.validColor,this.markedState=t,this.mark())},mxCellMarker.prototype.mark=function(){this.highlight.setHighlightColor(this.currentColor),this.highlight.highlight(this.markedState),this.fireEvent(new mxEventObject(mxEvent.MARK,"state",this.markedState))},mxCellMarker.prototype.unmark=function(){this.mark()},mxCellMarker.prototype.isValidState=function(e){return!0},mxCellMarker.prototype.getMarkerColor=function(e,n,t){return t?this.validColor:this.invalidColor},mxCellMarker.prototype.getState=function(e){var n=this.graph.getView();return cell=this.getCell(e),null!=(n=this.getStateToMark(n.getState(cell)))&&this.intersects(n,e)?n:null},mxCellMarker.prototype.getCell=function(e){return e.getCell()},mxCellMarker.prototype.getStateToMark=function(e){return e},mxCellMarker.prototype.intersects=function(e,n){return!this.hotspotEnabled||mxUtils.intersectsHotspot(e,n.getGraphX(),n.getGraphY(),this.hotspot,mxConstants.MIN_HOTSPOT_SIZE,mxConstants.MAX_HOTSPOT_SIZE)},mxCellMarker.prototype.destroy=function(){this.graph.getView().removeListener(this.resetHandler),this.graph.getModel().removeListener(this.resetHandler),this.highlight.destroy()},mxUtils.extend(mxSelectionCellsHandler,mxEventSource),mxSelectionCellsHandler.prototype.graph=null,mxSelectionCellsHandler.prototype.enabled=!0,mxSelectionCellsHandler.prototype.refreshHandler=null,mxSelectionCellsHandler.prototype.maxHandlers=100,mxSelectionCellsHandler.prototype.handlers=null,mxSelectionCellsHandler.prototype.isEnabled=function(){return this.enabled},mxSelectionCellsHandler.prototype.setEnabled=function(e){this.enabled=e},mxSelectionCellsHandler.prototype.getHandler=function(e){return this.handlers.get(e)},mxSelectionCellsHandler.prototype.reset=function(){this.handlers.visit(function(e,n){n.reset.apply(n)})},mxSelectionCellsHandler.prototype.refresh=function(){var e=this.handlers;this.handlers=new mxDictionary;for(var n=this.graph.getSelectionCells(),t=0;t<n.length;t++){var a=this.graph.view.getState(n[t]);if(null!=a){var i=e.remove(n[t]);null!=i&&(i.state!=a?(i.destroy(),i=null):i.redraw()),null==i&&(i=this.graph.createHandler(a),this.fireEvent(new mxEventObject(mxEvent.ADD,"state",a))),null!=i&&this.handlers.put(n[t],i)}}e.visit(mxUtils.bind(this,function(e,n){this.fireEvent(new mxEventObject(mxEvent.REMOVE,"state",n.state)),n.destroy()}))},mxSelectionCellsHandler.prototype.mouseDown=function(e,n){if(this.graph.isEnabled()&&this.isEnabled()){var t=[e,n];this.handlers.visit(function(e,n){n.mouseDown.apply(n,t)})}},mxSelectionCellsHandler.prototype.mouseMove=function(e,n){if(this.graph.isEnabled()&&this.isEnabled()){var t=[e,n];this.handlers.visit(function(e,n){n.mouseMove.apply(n,t)})}},mxSelectionCellsHandler.prototype.mouseUp=function(e,n){if(this.graph.isEnabled()&&this.isEnabled()){var t=[e,n];this.handlers.visit(function(e,n){n.mouseUp.apply(n,t)})}},mxSelectionCellsHandler.prototype.destroy=function(){this.graph.removeMouseListener(this),null!=this.refreshHandler&&(this.graph.getSelectionModel().removeListener(this.refreshHandler),this.graph.getModel().removeListener(this.refreshHandler),this.graph.getView().removeListener(this.refreshHandler),this.refreshHandler=null)},mxUtils.extend(mxConnectionHandler,mxEventSource),mxConnectionHandler.prototype.graph=null,mxConnectionHandler.prototype.factoryMethod=!0,mxConnectionHandler.prototype.moveIconFront=!1,mxConnectionHandler.prototype.moveIconBack=!1,mxConnectionHandler.prototype.connectImage=null,mxConnectionHandler.prototype.targetConnectImage=!1,mxConnectionHandler.prototype.enabled=!0,mxConnectionHandler.prototype.select=!0,mxConnectionHandler.prototype.createTarget=!1;mxConnectionHandler.prototype.marker=null,mxConnectionHandler.prototype.constraintHandler=null,mxConnectionHandler.prototype.error=null,mxConnectionHandler.prototype.waypointsEnabled=!1,mxConnectionHandler.prototype.tapAndHoldEnabled=!0,mxConnectionHandler.prototype.tapAndHoldDelay=500,mxConnectionHandler.prototype.tapAndHoldInProgress=!1,mxConnectionHandler.prototype.tapAndHoldValid=!1,mxConnectionHandler.prototype.tapAndHoldTolerance=4,mxConnectionHandler.prototype.initialTouchX=0,mxConnectionHandler.prototype.initialTouchY=0,mxConnectionHandler.prototype.ignoreMouseDown=!1,mxConnectionHandler.prototype.first=null,mxConnectionHandler.prototype.connectIconOffset=new mxPoint(0,mxConstants.TOOLTIP_VERTICAL_OFFSET),mxConnectionHandler.prototype.edgeState=null,mxConnectionHandler.prototype.changeHandler=null,mxConnectionHandler.prototype.drillHandler=null,mxConnectionHandler.prototype.mouseDownCounter=0,mxConnectionHandler.prototype.movePreviewAway=mxClient.IS_VML,mxConnectionHandler.prototype.isEnabled=function(){return this.enabled},mxConnectionHandler.prototype.setEnabled=function(e){this.enabled=e},mxConnectionHandler.prototype.isCreateTarget=function(){return this.createTarget},mxConnectionHandler.prototype.setCreateTarget=function(e){this.createTarget=e},mxConnectionHandler.prototype.createShape=function(){var e=new mxPolyline([],mxConstants.INVALID_COLOR);if(e.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,e.init(this.graph.getView().getOverlayPane()),e.svgStrokeTolerance=0,e.pointerEvents=!1,e.isDashed=!0,this.graph.dialect==mxConstants.DIALECT_SVG)e.node.setAttribute("pointer-events","none");else{var n=mxUtils.bind(this,function(e){return e=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e)),this.graph.view.getState(this.graph.getCellAt(e.x,e.y))});mxEvent.redirectMouseEvents(e.node,this.graph,n)}return e},mxConnectionHandler.prototype.init=function(){this.graph.addMouseListener(this),this.marker=this.createMarker(),this.constraintHandler=new mxConstraintHandler(this.graph),this.changeHandler=mxUtils.bind(this,function(e){null!=this.iconState&&(this.iconState=this.graph.getView().getState(this.iconState.cell)),null!=this.iconState?this.redrawIcons(this.icons,this.iconState):(this.destroyIcons(this.icons),this.previous=null),this.constraintHandler.reset()}),this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler),this.graph.getView().addListener(mxEvent.SCALE,this.changeHandler),this.graph.getView().addListener(mxEvent.TRANSLATE,this.changeHandler),this.graph.getView().addListener(mxEvent.SCALE_AND_TRANSLATE,this.changeHandler),this.drillHandler=mxUtils.bind(this,function(e){this.destroyIcons(this.icons)}),this.graph.addListener(mxEvent.START_EDITING,this.drillHandler),this.graph.getView().addListener(mxEvent.DOWN,this.drillHandler),this.graph.getView().addListener(mxEvent.UP,this.drillHandler)},mxConnectionHandler.prototype.isConnectableCell=function(e){return!0},mxConnectionHandler.prototype.createMarker=function(){var a=new mxCellMarker(this.graph);return a.hotspotEnabled=!0,a.getCell=mxUtils.bind(this,function(e,n){return n=mxCellMarker.prototype.getCell.apply(a,arguments),this.error=null,this.isConnectableCell(n)?(null!=n?this.isConnecting()?null!=this.previous&&(this.error=this.validateConnection(this.previous.cell,n),null!=this.error&&0==this.error.length&&(n=null,this.isCreateTarget()&&(this.error=null))):this.isValidSource(n)||(n=null):this.isConnecting()&&!this.isCreateTarget()&&!this.graph.allowDanglingEdges&&(this.error=""),n):null}),a.isValidState=mxUtils.bind(this,function(e){return this.isConnecting()?null==this.error:mxCellMarker.prototype.isValidState.apply(a,arguments)}),a.getMarkerColor=mxUtils.bind(this,function(e,n,t){return null==this.connectImage||this.isConnecting()?mxCellMarker.prototype.getMarkerColor.apply(a,arguments):null}),a.intersects=mxUtils.bind(this,function(e,n){return!(null==this.connectImage&&!this.isConnecting())||mxCellMarker.prototype.intersects.apply(a,arguments)}),a},mxConnectionHandler.prototype.start=function(e,n,t,a){this.previous=e,this.first=new mxPoint(n,t),this.edgeState=null!=a?a:this.createEdgeState(null),this.marker.currentColor=this.marker.validColor,this.marker.markedState=e,this.marker.mark(),this.fireEvent(new mxEventObject(mxEvent.START,"state",this.previous))},mxConnectionHandler.prototype.isConnecting=function(){return null!=this.first&&null!=this.shape},mxConnectionHandler.prototype.isValidSource=function(e){return this.graph.isValidSource(e)},mxConnectionHandler.prototype.isValidTarget=function(e){return!0},mxConnectionHandler.prototype.validateConnection=function(e,n){return this.isValidTarget(n)?this.graph.getEdgeValidationError(null,e,n):""},mxConnectionHandler.prototype.getConnectImage=function(e){return this.connectImage},mxConnectionHandler.prototype.isMoveIconToFrontForState=function(e){return null!=e.text&&e.text.node.parentNode==this.graph.container||this.moveIconFront},mxConnectionHandler.prototype.createIcons=function(e){if(null==(i=this.getConnectImage(e))||null==e)return null;this.iconState=e;var n=[],t=new mxImageShape(new mxRectangle(0,0,i.width,i.height),i.src,null,null,0);t.preserveImageAspect=!1,this.isMoveIconToFrontForState(e)?(t.dialect=mxConstants.DIALECT_STRICTHTML,t.init(this.graph.container)):(t.dialect=this.graph.dialect==mxConstants.DIALECT_SVG?mxConstants.DIALECT_SVG:mxConstants.DIALECT_VML,t.init(this.graph.getView().getOverlayPane()),this.moveIconBack&&null!=t.node.previousSibling&&t.node.parentNode.insertBefore(t.node,t.node.parentNode.firstChild)),t.node.style.cursor=mxConstants.CURSOR_CONNECT;var a=mxUtils.bind(this,function(){return null!=this.currentState?this.currentState:e}),i=mxUtils.bind(this,function(e){mxEvent.isConsumed(e)||(this.icon=t,this.graph.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e,a())))});return mxEvent.redirectMouseEvents(t.node,this.graph,a,i),n.push(t),this.redrawIcons(n,this.iconState),n},mxConnectionHandler.prototype.redrawIcons=function(e,n){if(null!=e&&null!=e[0]&&null!=n){var t=this.getIconPosition(e[0],n);e[0].bounds.x=t.x,e[0].bounds.y=t.y,e[0].redraw()}},mxConnectionHandler.prototype.getIconPosition=function(e,n){var t=this.graph.getView().scale,a=n.getCenterX(),i=n.getCenterY();if(this.graph.isSwimlane(n.cell)){a=0!=(s=this.graph.getStartSize(n.cell)).width?n.x+s.width*t/2:a,i=0!=s.height?n.y+s.height*t/2:i;if(0!=(s=mxUtils.toRadians(mxUtils.getValue(n.style,mxConstants.STYLE_ROTATION)||0))){t=Math.cos(s);var s=Math.sin(s),o=new mxPoint(n.getCenterX(),n.getCenterY());a=(i=mxUtils.getRotatedPoint(new mxPoint(a,i),t,s,o)).x,i=i.y}}return new mxPoint(a-e.bounds.width/2,i-e.bounds.height/2)},mxConnectionHandler.prototype.destroyIcons=function(e){if(null!=e){this.iconState=null;for(var n=0;n<e.length;n++)e[n].destroy()}},mxConnectionHandler.prototype.isStartEvent=function(e){return!this.graph.isForceMarqueeEvent(e.getEvent())&&(null!=this.constraintHandler.currentFocus&&null!=this.constraintHandler.currentConstraint||null!=this.previous&&null==this.error&&(null==this.icons||null!=this.icons&&null!=this.icon))},mxConnectionHandler.prototype.mouseDown=function(e,n){if(this.mouseDownCounter++,this.isEnabled()&&this.graph.isEnabled()&&!n.isConsumed()&&!this.isConnecting()&&this.isStartEvent(n)){if(null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&null!=this.constraintHandler.currentPoint?(this.sourceConstraint=this.constraintHandler.currentConstraint,this.previous=this.constraintHandler.currentFocus,this.first=this.constraintHandler.currentPoint.clone()):this.first=new mxPoint(n.getGraphX(),n.getGraphY()),this.edgeState=this.createEdgeState(n),this.mouseDownCounter=1,this.waypointsEnabled&&null==this.shape&&(this.waypoints=null,this.shape=this.createShape()),null==this.previous&&null!=this.edgeState){var t=this.graph.getPointForEvent(n.getEvent());this.edgeState.cell.geometry.setTerminalPoint(t,!0)}this.fireEvent(new mxEventObject(mxEvent.START,"state",this.previous)),n.consume()}else if(mxClient.IS_TOUCH&&this.tapAndHoldEnabled&&!this.tapAndHoldInProgress&&this.isEnabled()&&this.graph.isEnabled()&&!this.isConnecting()){this.tapAndHoldInProgress=!0,this.initialTouchX=n.getX(),this.initialTouchY=n.getY();var a=this.graph.view.getState(this.marker.getCell(n));this.tapAndHoldThread&&window.clearTimeout(this.tapAndHoldThread),this.tapAndHoldThread=window.setTimeout(mxUtils.bind(this,function(){this.tapAndHoldValid&&this.tapAndHold(n,a),this.tapAndHoldValid=this.tapAndHoldInProgress=!1}),this.tapAndHoldDelay),this.tapAndHoldValid=!0}this.selectedIcon=this.icon,this.icon=null},mxConnectionHandler.prototype.tapAndHold=function(e,n){null!=n&&(this.marker.currentColor=this.marker.validColor,this.marker.markedState=n,this.marker.mark(),this.first=new mxPoint(e.getGraphX(),e.getGraphY()),this.edgeState=this.createEdgeState(e),this.previous=n,this.fireEvent(new mxEventObject(mxEvent.START,"state",this.previous)))},mxConnectionHandler.prototype.isImmediateConnectSource=function(e){return!this.graph.isCellMovable(e.cell)},mxConnectionHandler.prototype.createEdgeState=function(e){return null},mxConnectionHandler.prototype.updateCurrentState=function(e){var n=this.marker.process(e);this.constraintHandler.update(e,null==this.first),this.currentState=n},mxConnectionHandler.prototype.convertWaypoint=function(e){var n=this.graph.getView().getScale(),t=this.graph.getView().getTranslate();e.x=e.x/n-t.x,e.y=e.y/n-t.y},mxConnectionHandler.prototype.mouseMove=function(e,n){if(this.tapAndHoldValid&&(this.tapAndHoldValid=Math.abs(this.initialTouchX-n.getX())<this.tapAndHoldTolerance&&Math.abs(this.initialTouchY-n.getY())<this.tapAndHoldTolerance),n.isConsumed()||!this.ignoreMouseDown&&null==this.first&&this.graph.isMouseDown)this.constraintHandler.reset();else{if(!this.isEnabled()&&null!=this.currentState&&(this.destroyIcons(this.icons),this.currentState=null),(null!=this.first||this.isEnabled()&&this.graph.isEnabled())&&this.updateCurrentState(n),null!=this.first){var t=this.graph.getView().scale,a=null,i=t=new mxPoint(this.graph.snap(n.getGraphX()/t)*t,this.graph.snap(n.getGraphY()/t)*t);null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&null!=this.constraintHandler.currentPoint&&(a=this.constraintHandler.currentConstraint,i=this.constraintHandler.currentPoint.clone());var s=this.first;if(null!=this.selectedIcon){var o=this.selectedIcon.bounds.width,r=this.selectedIcon.bounds.height;null!=this.currentState&&this.targetConnectImage?(o=this.getIconPosition(this.selectedIcon,this.currentState),this.selectedIcon.bounds.x=o.x,this.selectedIcon.bounds.y=o.y):(o=new mxRectangle(n.getGraphX()+this.connectIconOffset.x,n.getGraphY()+this.connectIconOffset.y,o,r),this.selectedIcon.bounds=o),this.selectedIcon.redraw()}if(null!=this.edgeState){if(this.edgeState.absolutePoints=[null,null!=this.currentState?null:i],this.graph.view.updateFixedTerminalPoint(this.edgeState,this.previous,!0,this.sourceConstraint),null!=this.currentState&&(null==a&&(a=this.graph.getConnectionConstraint(this.edgeState,this.previous,!1)),this.edgeState.setAbsoluteTerminalPoint(null,!1),this.graph.view.updateFixedTerminalPoint(this.edgeState,this.currentState,!1,a)),(s=null)!=this.waypoints)for(s=[],i=0;i<this.waypoints.length;i++)a=this.waypoints[i].clone(),this.convertWaypoint(a),s[i]=a;this.graph.view.updatePoints(this.edgeState,s,this.previous,this.currentState),this.graph.view.updateFloatingTerminalPoints(this.edgeState,this.previous,this.currentState),i=this.edgeState.absolutePoints[this.edgeState.absolutePoints.length-1],s=this.edgeState.absolutePoints[0]}else null!=this.currentState&&null==this.constraintHandler.currentConstraint&&(null!=(o=this.getTargetPerimeterPoint(this.currentState,n))&&(i=o)),null==this.sourceConstraint&&null!=this.previous&&(null!=(o=this.getSourcePerimeterPoint(this.previous,null!=this.waypoints&&0<this.waypoints.length?this.waypoints[0]:i,n))&&(s=o));if(null==this.currentState&&this.movePreviewAway){if(o=s,null!=this.edgeState&&2<this.edgeState.absolutePoints.length&&(null!=(a=this.edgeState.absolutePoints[this.edgeState.absolutePoints.length-2])&&(o=a)),a=i.x-o.x,o=i.y-o.y,0==(r=Math.sqrt(a*a+o*o)))return;i.x-=4*a/r,i.y-=4*o/r}null==this.shape&&(a=Math.abs(t.x-this.first.x),o=Math.abs(t.y-this.first.y),a>this.graph.tolerance||o>this.graph.tolerance)&&(this.shape=this.createShape(),this.updateCurrentState(n)),null!=this.shape&&(null!=this.edgeState?this.shape.points=this.edgeState.absolutePoints:(t=[s],null!=this.waypoints&&(t=t.concat(this.waypoints)),t.push(i),this.shape.points=t),this.drawPreview()),mxEvent.consume(n.getEvent()),n.consume()}else this.isEnabled()&&this.graph.isEnabled()?this.previous!=this.currentState&&null==this.edgeState?(this.destroyIcons(this.icons),(this.icons=null)!=this.currentState&&null==this.error&&(this.icons=this.createIcons(this.currentState),null==this.icons&&(this.currentState.setCursor(mxConstants.CURSOR_CONNECT),n.consume())),this.previous=this.currentState):this.previous==this.currentState&&null!=this.currentState&&null==this.icons&&!this.graph.isMouseDown&&n.consume():this.constraintHandler.reset();if(null!=this.constraintHandler.currentConstraint&&this.marker.reset(),!this.graph.isMouseDown&&null!=this.currentState&&null!=this.icons){for(t=!1,s=n.getSource(),i=0;i<this.icons.length&&!t;i++)t=s==this.icons[i].node||s.parentNode==this.icons[i].node;t||this.updateIcons(this.currentState,this.icons,n)}}},mxConnectionHandler.prototype.getTargetPerimeterPoint=function(e,n){var t=null,a=(i=e.view).getPerimeterFunction(e);if(null!=a){var i,s=null!=this.waypoints&&0<this.waypoints.length?this.waypoints[this.waypoints.length-1]:new mxPoint(this.previous.getCenterX(),this.previous.getCenterY());null!=(i=a(i.getPerimeterBounds(e),this.edgeState,s,!1))&&(t=i)}else t=new mxPoint(e.getCenterX(),e.getCenterY());return t},mxConnectionHandler.prototype.getSourcePerimeterPoint=function(e,n,t){t=null;var a=e.view,i=a.getPerimeterFunction(e),s=new mxPoint(e.getCenterX(),e.getCenterY());if(null!=i){var o=mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION,0),r=-o*(Math.PI/180);0!=o&&(n=mxUtils.getRotatedPoint(new mxPoint(n.x,n.y),Math.cos(r),Math.sin(r),s)),null!=(e=i(a.getPerimeterBounds(e),e,n,!1))&&(0!=o&&(e=mxUtils.getRotatedPoint(new mxPoint(e.x,e.y),Math.cos(-r),Math.sin(-r),s)),t=e)}else t=s;return t},mxConnectionHandler.prototype.updateIcons=function(e,n,t){},mxConnectionHandler.prototype.isStopEvent=function(e){return null!=e.getState()},mxConnectionHandler.prototype.addWaypointForEvent=function(e){var n=mxUtils.convertPoint(this.graph.container,e.getX(),e.getY()),t=Math.abs(n.x-this.first.x);n=Math.abs(n.y-this.first.y);(null!=this.waypoints||1<this.mouseDownCounter&&(t>this.graph.tolerance||n>this.graph.tolerance))&&(null==this.waypoints&&(this.waypoints=[]),t=this.graph.view.scale,n=new mxPoint(this.graph.snap(e.getGraphX()/t)*t,this.graph.snap(e.getGraphY()/t)*t),this.waypoints.push(n))},mxConnectionHandler.prototype.mouseUp=function(e,n){if(!n.isConsumed()&&this.isConnecting()){if(this.waypointsEnabled&&!this.isStopEvent(n))return this.addWaypointForEvent(n),void n.consume();if(null==this.error){var t=null!=this.previous?this.previous.cell:null,a=null;null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&(a=this.constraintHandler.currentFocus.cell),null==a&&this.marker.hasValidState()&&(a=this.marker.validState.cell),this.connect(t,a,n.getEvent(),n.getCell())}else null!=this.previous&&null!=this.marker.validState&&this.previous.cell==this.marker.validState.cell&&this.graph.selectCellForEvent(this.marker.source,evt),0<this.error.length&&this.graph.validationAlert(this.error);this.destroyIcons(this.icons),n.consume()}null!=this.first&&this.reset(),this.tapAndHoldValid=this.tapAndHoldInProgress=!1},mxConnectionHandler.prototype.reset=function(){null!=this.shape&&(this.shape.destroy(),this.shape=null),this.destroyIcons(this.icons),this.icons=null,this.marker.reset(),this.constraintHandler.reset(),this.sourceConstraint=this.error=this.previous=this.edgeState=this.selectedIcon=null,this.mouseDownCounter=0,this.icon=this.first=null,this.fireEvent(new mxEventObject(mxEvent.RESET))},mxConnectionHandler.prototype.drawPreview=function(){var e=null==this.error;this.shape.strokewidth=this.getEdgeWidth(e),e=this.getEdgeColor(e),this.shape.stroke=e,this.shape.redraw()},mxConnectionHandler.prototype.getEdgeColor=function(e){return e?mxConstants.VALID_COLOR:mxConstants.INVALID_COLOR},mxConnectionHandler.prototype.getEdgeWidth=function(e){return e?3:1},mxConnectionHandler.prototype.connect=function(e,n,t,a){if(null!=n||this.isCreateTarget()||this.graph.allowDanglingEdges){var i=this.graph.getModel(),s=null;i.beginUpdate();try{if(null!=e&&null==n&&this.isCreateTarget()&&null!=(n=this.createTargetVertex(t,e))){if(null!=(a=this.graph.getDropTarget([n],t,a))&&this.graph.getModel().isEdge(a))a=this.graph.getDefaultParent();else{var o=this.graph.getView().getState(a);if(null!=o){var r=i.getGeometry(n);r.x-=o.origin.x,r.y-=o.origin.y}}this.graph.addCell(n,a)}var l=this.graph.getDefaultParent();if(null!=e&&null!=n&&i.getParent(e)==i.getParent(n)&&i.getParent(i.getParent(e))!=i.getRoot()&&(l=i.getParent(e),null!=e.geometry&&e.geometry.relative&&null!=n.geometry&&n.geometry.relative&&(l=i.getParent(l))),r=o=null,null!=this.edgeState&&(o=this.edgeState.cell.value,r=this.edgeState.cell.style),null!=(s=this.insertEdge(l,null,o,e,n,r))){this.graph.setConnectionConstraint(s,e,!0,this.sourceConstraint),this.graph.setConnectionConstraint(s,n,!1,this.constraintHandler.currentConstraint),null!=this.edgeState&&i.setGeometry(s,this.edgeState.cell.geometry);var d=i.getGeometry(s);if(null==d&&((d=new mxGeometry).relative=!0,i.setGeometry(s,d)),null!=this.waypoints&&0<this.waypoints.length){var c=this.graph.view.scale,m=this.graph.view.translate;for(d.points=[],e=0;e<this.waypoints.length;e++){var u=this.waypoints[e];d.points.push(new mxPoint(u.x/c-m.x,u.y/c-m.y))}}null==n&&((u=this.graph.getPointForEvent(t,!1)).x-=this.graph.panDx/this.graph.view.scale,u.y-=this.graph.panDy/this.graph.view.scale,d.setTerminalPoint(u,!1)),this.fireEvent(new mxEventObject(mxEvent.CONNECT,"cell",s,"event",t,"target",a))}}catch(e){mxLog.show(),mxLog.debug(e.message)}finally{i.endUpdate()}this.select&&this.selectCells(s,n)}},mxConnectionHandler.prototype.selectCells=function(e,n){this.graph.setSelectionCell(e)},mxConnectionHandler.prototype.insertEdge=function(e,n,t,a,i,s){return null==this.factoryMethod?this.graph.insertEdge(e,n,t,a,i,s):(n=this.createEdge(t,a,i,s),this.graph.addEdge(n,e,a,i))},mxConnectionHandler.prototype.createTargetVertex=function(e,n){for(var t=this.graph.getCellGeometry(n);null!=t&&t.relative;)n=this.graph.getModel().getParent(n),t=this.graph.getCellGeometry(n);var a=this.graph.cloneCells([n])[0];if(null!=(t=this.graph.getModel().getGeometry(a))){var i=this.graph.getPointForEvent(e);if(t.x=this.graph.snap(i.x-t.width/2)-this.graph.panDx/this.graph.view.scale,t.y=this.graph.snap(i.y-t.height/2)-this.graph.panDy/this.graph.view.scale,null!=this.first){var s=this.graph.view.getState(n);if(null!=s){var o=this.getAlignmentTolerance();Math.abs(this.graph.snap(this.first.x)-this.graph.snap(i.x))<=o?t.x=s.x:Math.abs(this.graph.snap(this.first.y)-this.graph.snap(i.y))<=o&&(t.y=s.y)}}}return a},mxConnectionHandler.prototype.getAlignmentTolerance=function(){return this.graph.isGridEnabled()?this.graph.gridSize:this.graph.tolerance},mxConnectionHandler.prototype.createEdge=function(e,n,t,a){var i=null;return null!=this.factoryMethod&&(i=this.factoryMethod(n,t,a)),null==i&&((i=new mxCell(e||"")).setEdge(!0),i.setStyle(a),(e=new mxGeometry).relative=!0,i.setGeometry(e)),i},mxConnectionHandler.prototype.destroy=function(){this.graph.removeMouseListener(this),null!=this.shape&&(this.shape.destroy(),this.shape=null),null!=this.marker&&(this.marker.destroy(),this.marker=null),null!=this.constraintHandler&&(this.constraintHandler.destroy(),this.constraintHandler=null),null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.graph.getView().removeListener(this.changeHandler),this.changeHandler=null),null!=this.drillHandler&&(this.graph.removeListener(this.drillHandler),this.graph.getView().removeListener(this.drillHandler),this.drillHandler=null)},mxConstraintHandler.prototype.pointImage=new mxImage(mxClient.imageBasePath+"/point.gif",5,5),mxConstraintHandler.prototype.graph=null,mxConstraintHandler.prototype.enabled=!0,mxConstraintHandler.prototype.highlightColor=mxConstants.DEFAULT_VALID_COLOR,mxConstraintHandler.prototype.isEnabled=function(){return this.enabled},mxConstraintHandler.prototype.setEnabled=function(e){this.enabled=e},mxConstraintHandler.prototype.reset=function(){if(null!=this.focusIcons){for(var e=0;e<this.focusIcons.length;e++)this.focusIcons[e].destroy();this.focusIcons=null}null!=this.focusHighlight&&(this.focusHighlight.destroy(),this.focusHighlight=null),this.focusPoints=this.currentFocus=this.currentPoint=this.currentFocusArea=this.currentConstraint=null},mxConstraintHandler.prototype.getTolerance=function(){return this.graph.getTolerance()},mxConstraintHandler.prototype.getImageForConstraint=function(e,n,t){return this.pointImage},mxConstraintHandler.prototype.isEventIgnored=function(e,n){return!1},mxConstraintHandler.prototype.update=function(e,n){if(this.isEnabled()&&!this.isEventIgnored(e)){var t=this.getTolerance(),a=new mxRectangle(e.getGraphX()-t,e.getGraphY()-t,2*t,2*t),i=null!=e.getCell()&&this.graph.isCellConnectable(e.getCell());if((null==this.currentFocusArea||!mxUtils.intersects(this.currentFocusArea,a)||null!=e.getState()&&null!=this.currentFocus&&i)&&(this.currentFocusArea=null,e.getState()!=this.currentFocus))if(this.currentFocus=null,this.constraints=null!=e.getState()&&i?this.graph.getAllConnectionConstraints(e.getState(),n):null,null!=this.constraints){if(this.currentFocus=e.getState(),this.currentFocusArea=new mxRectangle(e.getState().x,e.getState().y,e.getState().width,e.getState().height),null!=this.focusIcons){for(i=0;i<this.focusIcons.length;i++)this.focusIcons[i].destroy();this.focusPoints=this.focusIcons=null}for(this.focusIcons=[],this.focusPoints=[],i=0;i<this.constraints.length;i++){var s,o=this.graph.getConnectionPoint(e.getState(),this.constraints[i]),r=(s=this.getImageForConstraint(e.getState(),this.constraints[i],o)).src;(s=new mxImageShape(s=new mxRectangle(o.x-s.width/2,o.y-s.height/2,s.width,s.height),r)).dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_MIXEDHTML:mxConstants.DIALECT_SVG,s.preserveImageAspect=!1,s.init(this.graph.getView().getOverlayPane()),null!=s.node.previousSibling&&s.node.parentNode.insertBefore(s.node,s.node.parentNode.firstChild),r=mxUtils.bind(this,function(){return null!=this.currentFocus?this.currentFocus:e.getState()}),s.redraw(),mxEvent.redirectMouseEvents(s.node,this.graph,r),this.currentFocusArea.add(s.bounds),this.focusIcons.push(s),this.focusPoints.push(o)}this.currentFocusArea.grow(t)}else if(null!=this.focusIcons){for(null!=this.focusHighlight&&(this.focusHighlight.destroy(),this.focusHighlight=null),i=0;i<this.focusIcons.length;i++)this.focusIcons[i].destroy();this.focusPoints=this.focusIcons=null}if(this.currentPoint=this.currentConstraint=null,null!=this.focusIcons&&null!=this.constraints&&(null==e.getState()||this.currentFocus==e.getState()))for(i=0;i<this.focusIcons.length;i++)if(mxUtils.intersects(this.focusIcons[i].bounds,a)){this.currentConstraint=this.constraints[i],this.currentPoint=this.focusPoints[i],(t=this.focusIcons[i].bounds.clone()).grow(mxClient.IS_IE?3:2),mxClient.IS_IE&&(t.width-=1,t.height-=1),null==this.focusHighlight?((t=new mxRectangleShape(t,null,this.highlightColor,3)).dialect=this.graph.dialect==mxConstants.DIALECT_SVG?mxConstants.DIALECT_SVG:mxConstants.DIALECT_VML,t.init(this.graph.getView().getOverlayPane()),this.focusHighlight=t,r=mxUtils.bind(this,function(){return null!=this.currentFocus?this.currentFocus:e.getState()}),mxEvent.redirectMouseEvents(t.node,this.graph,r)):(this.focusHighlight.bounds=t,this.focusHighlight.redraw());break}null==this.currentConstraint&&null!=this.focusHighlight&&(this.focusHighlight.destroy(),this.focusHighlight=null)}},mxConstraintHandler.prototype.destroy=function(){this.reset()},mxRubberband.prototype.defaultOpacity=20,mxRubberband.prototype.enabled=!0,mxRubberband.prototype.div=null,mxRubberband.prototype.sharedDiv=null,mxRubberband.prototype.currentX=0,mxRubberband.prototype.currentY=0,mxRubberband.prototype.isEnabled=function(){return this.enabled},mxRubberband.prototype.setEnabled=function(e){this.enabled=e},mxRubberband.prototype.mouseDown=function(e,n){if(!n.isConsumed()&&this.isEnabled()&&this.graph.isEnabled()&&(this.graph.isForceMarqueeEvent(n.getEvent())||null==n.getState())){var t=mxUtils.getOffset(this.graph.container),a=mxUtils.getScrollOrigin(this.graph.container);if(a.x-=t.x,a.y-=t.y,this.start(n.getX()+a.x,n.getY()+a.y),mxClient.IS_NS&&!mxClient.IS_SF&&!mxClient.IS_GC){var i=this.graph.container,s=function(e){e=new mxMouseEvent(e);var n=mxUtils.convertPoint(i,e.getX(),e.getY());return e.graphX=n.x,e.graphY=n.y,e};this.dragHandler=mxUtils.bind(this,function(e){this.mouseMove(this.graph,s(e))}),this.dropHandler=mxUtils.bind(this,function(e){this.mouseUp(this.graph,s(e))}),mxEvent.addListener(document,"mousemove",this.dragHandler),mxEvent.addListener(document,"mouseup",this.dropHandler)}n.consume(!1)}},mxRubberband.prototype.start=function(e,n){this.first=new mxPoint(e,n)},mxRubberband.prototype.mouseMove=function(e,n){if(!n.isConsumed()&&null!=this.first){var t=mxUtils.getScrollOrigin(this.graph.container),a=mxUtils.getOffset(this.graph.container);t.x-=a.x,t.y-=a.y;a=n.getX()+t.x,t=n.getY()+t.y;var i=this.first.x-a,s=this.first.y-t,o=this.graph.tolerance;(null!=this.div||Math.abs(i)>o||Math.abs(s)>o)&&(null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),this.update(a,t),n.consume())}},mxRubberband.prototype.createShape=function(){return null==this.sharedDiv&&(this.sharedDiv=document.createElement("div"),this.sharedDiv.className="mxRubberband",mxUtils.setOpacity(this.sharedDiv,this.defaultOpacity)),this.graph.container.appendChild(this.sharedDiv),this.sharedDiv},mxRubberband.prototype.mouseUp=function(e,n){var t=null!=this.div;this.reset(),t&&(t=new mxRectangle(this.x,this.y,this.width,this.height),this.graph.selectRegion(t,n.getEvent()),n.consume())},mxRubberband.prototype.reset=function(){null!=this.div&&this.div.parentNode.removeChild(this.div),null!=this.dragHandler&&(mxEvent.removeListener(document,"mousemove",this.dragHandler),this.dragHandler=null),null!=this.dropHandler&&(mxEvent.removeListener(document,"mouseup",this.dropHandler),this.dropHandler=null),this.currentY=this.currentX=0,this.div=this.first=null},mxRubberband.prototype.update=function(e,n){this.currentX=e,this.currentY=n,this.repaint()},mxRubberband.prototype.repaint=function(){if(null!=this.div){var e=this.currentX-this.graph.panDx,n=this.currentY-this.graph.panDy;this.x=Math.min(this.first.x,e),this.y=Math.min(this.first.y,n),this.width=Math.max(this.first.x,e)-this.x,this.height=Math.max(this.first.y,n)-this.y,e=mxClient.IS_VML?this.graph.panDy:0,this.div.style.left=this.x+(mxClient.IS_VML?this.graph.panDx:0)+"px",this.div.style.top=this.y+e+"px",this.div.style.width=Math.max(1,this.width)+"px",this.div.style.height=Math.max(1,this.height)+"px"}},mxRubberband.prototype.destroy=function(){this.destroyed||(this.destroyed=!0,this.graph.removeMouseListener(this),this.graph.removeListener(this.panHandler),this.reset(),null!=this.sharedDiv&&(this.sharedDiv=null))},mxVertexHandler.prototype.graph=null,mxVertexHandler.prototype.state=null,mxVertexHandler.prototype.singleSizer=!1,mxVertexHandler.prototype.index=null,mxVertexHandler.prototype.allowHandleBoundsCheck=!0,mxVertexHandler.prototype.handleImage=null,mxVertexHandler.prototype.tolerance=0,mxVertexHandler.prototype.rotationEnabled=!1,mxVertexHandler.prototype.rotationRaster=!0,mxVertexHandler.prototype.init=function(){if(this.graph=this.state.view.graph,this.selectionBounds=this.getSelectionBounds(this.state),this.bounds=new mxRectangle(this.selectionBounds.x,this.selectionBounds.y,this.selectionBounds.width,this.selectionBounds.height),this.selectionBorder=this.createSelectionShape(this.bounds),this.selectionBorder.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.selectionBorder.pointerEvents=!1,this.selectionBorder.init(this.graph.getView().getOverlayPane()),this.graph.isCellMovable(this.state.cell)&&(this.selectionBorder.node.style.cursor=mxConstants.CURSOR_MOVABLE_VERTEX),mxEvent.redirectMouseEvents(this.selectionBorder.node,this.graph,this.state),mxGraphHandler.prototype.maxCells<=0||this.graph.getSelectionCount()<mxGraphHandler.prototype.maxCells){var e=this.graph.isCellResizable(this.state.cell);if(this.sizers=[],e||this.graph.isLabelMovable(this.state.cell)&&2<=this.state.width&&2<=this.state.height){var n=0;e&&(this.singleSizer||(this.sizers.push(this.createSizer("nw-resize",n++)),this.sizers.push(this.createSizer("n-resize",n++)),this.sizers.push(this.createSizer("ne-resize",n++)),this.sizers.push(this.createSizer("w-resize",n++)),this.sizers.push(this.createSizer("e-resize",n++)),this.sizers.push(this.createSizer("sw-resize",n++)),this.sizers.push(this.createSizer("s-resize",n++))),this.sizers.push(this.createSizer("se-resize",n++))),null!=(e=this.graph.model.getGeometry(this.state.cell))&&!e.relative&&!this.graph.isSwimlane(this.state.cell)&&this.graph.isLabelMovable(this.state.cell)&&(this.labelShape=this.createSizer(mxConstants.CURSOR_LABEL_HANDLE,mxEvent.LABEL_HANDLE,mxConstants.LABEL_HANDLE_SIZE,mxConstants.LABEL_HANDLE_FILLCOLOR),this.sizers.push(this.labelShape))}else this.graph.isCellMovable(this.state.cell)&&!this.graph.isCellResizable(this.state.cell)&&this.state.width<2&&this.state.height<2&&(this.labelShape=this.createSizer(mxConstants.CURSOR_MOVABLE_VERTEX,null,null,mxConstants.LABEL_HANDLE_FILLCOLOR),this.sizers.push(this.labelShape))}this.rotationEnabled&&(mxGraphHandler.prototype.maxCells<=0||this.graph.getSelectionCount()<mxGraphHandler.prototype.maxCells)&&(this.rotationShape=this.createSizer("pointer",mxEvent.ROTATION_HANDLE,mxConstants.HANDLE_SIZE+3,mxConstants.HANDLE_FILLCOLOR),this.sizers.push(this.rotationShape)),this.redraw()},mxVertexHandler.prototype.getSelectionBounds=function(e){return new mxRectangle(Math.round(e.x),Math.round(e.y),Math.round(e.width),Math.round(e.height))},mxVertexHandler.prototype.createSelectionShape=function(e){return(e=new mxRectangleShape(e,null,this.getSelectionColor())).strokewidth=this.getSelectionStrokeWidth(),e.isDashed=this.isSelectionDashed(),e},mxVertexHandler.prototype.getSelectionColor=function(){return mxConstants.VERTEX_SELECTION_COLOR},mxVertexHandler.prototype.getSelectionStrokeWidth=function(){return mxConstants.VERTEX_SELECTION_STROKEWIDTH},mxVertexHandler.prototype.isSelectionDashed=function(){return mxConstants.VERTEX_SELECTION_DASHED},mxVertexHandler.prototype.createSizer=function(e,n,t,a){return t=new mxRectangle(0,0,t=t||mxConstants.HANDLE_SIZE,t),(a=this.createSizerShape(t,n,a)).isHtmlAllowed()&&null!=this.state.text&&this.state.text.node.parentNode==this.graph.container?(a.bounds.height-=1,a.bounds.width-=1,a.dialect=mxConstants.DIALECT_STRICTHTML,a.init(this.graph.container)):(a.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_MIXEDHTML:mxConstants.DIALECT_SVG,a.init(this.graph.getView().getOverlayPane())),mxEvent.redirectMouseEvents(a.node,this.graph,this.state),this.graph.isEnabled()&&(a.node.style.cursor=e),this.isSizerVisible(n)||(a.node.style.visibility="hidden"),a},mxVertexHandler.prototype.isSizerVisible=function(e){return!0},mxVertexHandler.prototype.createSizerShape=function(e,n,t){return null!=this.handleImage?(e.width=this.handleImage.width,e.height=this.handleImage.height,new mxImageShape(e,this.handleImage.src)):n==mxEvent.ROTATION_HANDLE?new mxEllipse(e,t||mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR):new mxRectangleShape(e,t||mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)},mxVertexHandler.prototype.moveSizerTo=function(e,n,t){null!=e&&(e.bounds.x=Math.round(n-e.bounds.width/2),e.bounds.y=Math.round(t-e.bounds.height/2),e.redraw())},mxVertexHandler.prototype.getHandleForEvent=function(e){if(e.isSource(this.rotationShape))return mxEvent.ROTATION_HANDLE;if(e.isSource(this.labelShape))return mxEvent.LABEL_HANDLE;if(null!=this.sizers)for(var n=this.tolerance,t=(n=this.allowHandleBoundsCheck&&(mxClient.IS_IE||0<n)?new mxRectangle(e.getGraphX()-n,e.getGraphY()-n,2*n,2*n):null,0);t<this.sizers.length;t++)if(e.isSource(this.sizers[t])||null!=n&&mxUtils.intersects(this.sizers[t].bounds,n))return t;return null},mxVertexHandler.prototype.mouseDown=function(e,n){if(!n.isConsumed()&&this.graph.isEnabled()&&!this.graph.isForceMarqueeEvent(n.getEvent())&&(0<this.tolerance||n.getState()==this.state)){var t=this.getHandleForEvent(n);null!=t&&(this.start(n.getX(),n.getY(),t),n.consume())}},mxVertexHandler.prototype.start=function(e,n,t){e=mxUtils.convertPoint(this.graph.container,e,n),this.startX=e.x,this.startY=e.y,this.index=t,this.selectionBorder.node.style.display=t==mxEvent.ROTATION_HANDLE?"inline":"none",this.preview=this.createSelectionShape(this.bounds),mxClient.IS_SVG&&0!=Number(this.state.style[mxConstants.STYLE_ROTATION]||"0")||null==this.state.text||this.state.text.node.parentNode!=this.graph.container?(this.preview.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.preview.init(this.graph.view.getOverlayPane())):(this.preview.dialect=mxConstants.DIALECT_STRICTHTML,this.preview.init(this.graph.container))},mxVertexHandler.prototype.mouseMove=function(e,n){if(n.isConsumed()||null==this.index)null!=this.getHandleForEvent(n)&&n.consume(!1);else{var t=new mxPoint(n.getGraphX(),n.getGraphY()),a=this.graph.isGridEnabledEvent(n.getEvent()),i=this.graph.getView().scale;if(this.index==mxEvent.LABEL_HANDLE)a&&(t.x=this.graph.snap(t.x/i)*i,t.y=this.graph.snap(t.y/i)*i),this.moveSizerTo(this.sizers[this.sizers.length-1],t.x,t.y);else if(this.index==mxEvent.ROTATION_HANDLE){var s=this.state.x+this.state.width/2-t.x,o=this.state.y+this.state.height/2-t.y;this.currentAlpha=0!=s?180*Math.atan(o/s)/Math.PI+90:o<0?180:0,0<s&&(this.currentAlpha-=180),this.rotationRaster&&(s=t.x-this.state.getCenterX(),o=t.y-this.state.getCenterY(),s=Math.abs(Math.sqrt(s*s+o*o)-this.state.height/2-20),s=Math.max(1,5*Math.min(3,Math.max(0,Math.round(80/Math.abs(s))))),this.currentAlpha=Math.round(this.currentAlpha/s)*s),this.selectionBorder.rotation=this.currentAlpha,this.selectionBorder.redraw()}else{var r=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"),l=Math.cos(-r),d=Math.sin(-r),c=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),m=(s=t.x-this.startX,o=t.y-this.startY,t=this.graph.view.translate,d*s+l*o);s=l*s-d*o;this.bounds=this.union(this.selectionBounds,s,m,this.index,a,i,t),l=Math.cos(r),c=(d=Math.sin(r))*(s=(o=new mxPoint(this.bounds.getCenterX(),this.bounds.getCenterY())).x-c.x)+l*(o=o.y-c.y)-o,this.bounds.x+=l*s-d*o-s,this.bounds.y+=c,this.drawPreview()}n.consume()}},mxVertexHandler.prototype.mouseUp=function(e,n){if(!n.isConsumed()&&null!=this.index&&null!=this.state){var t=new mxPoint(n.getGraphX(),n.getGraphY());this.graph.getModel().beginUpdate();try{if(this.index==mxEvent.ROTATION_HANDLE)null!=this.currentAlpha&&this.rotateCell(this.state.cell,this.currentAlpha-(this.state.style[mxConstants.STYLE_ROTATION]||0));else{var a=this.graph.isGridEnabledEvent(n.getEvent()),i=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"),s=Math.cos(-i),o=Math.sin(-i),r=(t=o*(r=t.x-this.startX)+s*(l=t.y-this.startY),s*r-o*l),l=t,d=this.graph.view.scale;this.resizeCell(this.state.cell,r/d,l/d,this.index,a)}}finally{this.graph.getModel().endUpdate()}this.reset(),n.consume()}},mxVertexHandler.prototype.rotateCell=function(e,n){var t=this.graph.getModel();if(t.isVertex(e)){if(null!=(s=e==this.state?this.state:this.graph.view.getState(e))&&this.graph.setCellStyles(mxConstants.STYLE_ROTATION,(s.style[mxConstants.STYLE_ROTATION]||0)+n,[e]),this.state.cell!=e&&(null!=(s=this.graph.getCellGeometry(e))&&!s.relative))if(0!=n){var a=this.graph.getModel().getParent(e),i=this.graph.getCellGeometry(a);if(!s.relative&&null!=i){var s,o=mxUtils.toRadians(n),r=(a=Math.cos(o),o=Math.sin(o),new mxPoint(s.getCenterX(),s.getCenterY()));i=new mxPoint(i.width/2,i.height/2),a=mxUtils.getRotatedPoint(r,a,o,i);(s=s.clone()).x=a.x-s.width/2,s.y=a.y-s.height/2,t.setGeometry(e,s)}}else(s=s.clone()).x+=dx,s.y+=dy,t.setGeometry(e,s);for(s=t.getChildCount(e),a=0;a<s;a++)this.rotateCell(t.getChildAt(e,a),n)}},mxVertexHandler.prototype.reset=function(){this.index=this.currentAlpha=null,null!=this.preview&&(this.preview.destroy(),this.preview=null),null!=this.selectionBorder&&(this.selectionBorder.node.style.display="inline",this.selectionBounds=this.getSelectionBounds(this.state),this.bounds=new mxRectangle(this.selectionBounds.x,this.selectionBounds.y,this.selectionBounds.width,this.selectionBounds.height),this.drawPreview())},mxVertexHandler.prototype.resizeCell=function(e,n,t,a,i){var s=this.graph.model.getGeometry(e);if(null!=s)if(a==mxEvent.LABEL_HANDLE)a=this.graph.view.scale,n=(this.labelShape.bounds.getCenterX()-this.startX)/a,t=(this.labelShape.bounds.getCenterY()-this.startY)/a,null==(s=s.clone()).offset?s.offset=new mxPoint(n,t):(s.offset.x+=n,s.offset.y+=t),this.graph.model.setGeometry(e,s);else{if(a=this.union(s,n,t,a,i,1,new mxPoint(0,0)),0!=(r=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"))){n=a.getCenterX()-s.getCenterX(),t=a.getCenterY()-s.getCenterY(),i=Math.cos(r);var o=Math.sin(r),r=i*n-o*t-n;n=o*n+i*t-t,t=a.x-s.x;var l=a.y-s.y,d=i*t-o*l;i=o*t+i*l,a.x+=r,a.y+=n,this.graph.isCellCollapsed(e)||0==r&&0==n||(t=s.x-a.x+d,l=s.y-a.y+i,this.moveChildren(e,t,l))}this.graph.resizeCell(e,a)}},mxVertexHandler.prototype.moveChildren=function(e,n,t){for(var a=this.graph.getModel(),i=a.getChildCount(e),s=0;s<i;s++){var o=a.getChildAt(e,s);if(a.isVertex(o)){var r=this.graph.getCellGeometry(o);null!=r&&!r.relative&&((r=r.clone()).x+=n,r.y+=t,a.setGeometry(o,r))}}},mxVertexHandler.prototype.union=function(e,n,t,a,i,s,o){if(this.singleSizer){o=e.x+e.width+n;var r=e.y+e.height+t;return i&&(o=this.graph.snap(o/s)*s,r=this.graph.snap(r/s)*s),(s=new mxRectangle(e.x,e.y,0,0)).add(new mxRectangle(o,r,0,0)),s}var l=(r=e.x-o.x*s)+e.width,d=e.y-o.y*s;return e=d+e.height,4<a?(e+=t,i&&(e=this.graph.snap(e/s)*s)):a<3&&(d+=t,i&&(d=this.graph.snap(d/s)*s)),0==a||3==a||5==a?(r+=n,i&&(r=this.graph.snap(r/s)*s)):2!=a&&4!=a&&7!=a||(l+=n,i&&(l=this.graph.snap(l/s)*s)),e-=d,(i=l-r)<0&&(r+=i,i=Math.abs(i)),e<0&&(d+=e,e=Math.abs(e)),new mxRectangle(r+o.x*s,d+o.y*s,i,e)},mxVertexHandler.prototype.redraw=function(){this.selectionBounds=this.getSelectionBounds(this.state),this.bounds=new mxRectangle(this.state.x,this.state.y,this.state.width,this.state.height);var e=this.state;if(null!=this.sizers){var n=e.x+e.width,t=e.y+e.height;if(this.singleSizer)this.moveSizerTo(this.sizers[0],n,t);else{var a=e.x+e.width/2,i=e.y+e.height/2;if(1<this.sizers.length){var s=mxUtils.toRadians(e.style[mxConstants.STYLE_ROTATION]||"0"),o=Math.cos(s),r=(s=Math.sin(s),new mxPoint(e.getCenterX(),e.getCenterY())),l=mxUtils.getRotatedPoint(new mxPoint(e.x,e.y),o,s,r);this.moveSizerTo(this.sizers[0],l.x,l.y),l.x=a,l.y=e.y,l=mxUtils.getRotatedPoint(l,o,s,r),this.moveSizerTo(this.sizers[1],l.x,l.y),l.x=n,l.y=e.y,l=mxUtils.getRotatedPoint(l,o,s,r),this.moveSizerTo(this.sizers[2],l.x,l.y),l.x=e.x,l.y=i,l=mxUtils.getRotatedPoint(l,o,s,r),this.moveSizerTo(this.sizers[3],l.x,l.y),l.x=n,l.y=i,l=mxUtils.getRotatedPoint(l,o,s,r),this.moveSizerTo(this.sizers[4],l.x,l.y),l.x=e.x,l.y=t,l=mxUtils.getRotatedPoint(l,o,s,r),this.moveSizerTo(this.sizers[5],l.x,l.y),l.x=a,l.y=t,l=mxUtils.getRotatedPoint(l,o,s,r),this.moveSizerTo(this.sizers[6],l.x,l.y),l.x=n,l.y=t,l=mxUtils.getRotatedPoint(l,o,s,r),this.moveSizerTo(this.sizers[7],l.x,l.y),this.moveSizerTo(this.sizers[8],a+e.absoluteOffset.x,i+e.absoluteOffset.y)}else 2<=this.state.width&&2<=this.state.height?this.moveSizerTo(this.sizers[0],a+e.absoluteOffset.x,i+e.absoluteOffset.y):this.moveSizerTo(this.sizers[0],e.x,e.y)}}null!=this.rotationShape&&(s=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"),o=Math.cos(s),s=Math.sin(s),r=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),l=mxUtils.getRotatedPoint(new mxPoint(e.x+e.width/2,e.y-16),o,s,r),this.moveSizerTo(this.rotationShape,l.x,l.y)),this.selectionBorder.rotation=Number(this.state.style[mxConstants.STYLE_ROTATION]||"0"),this.drawPreview()},mxVertexHandler.prototype.drawPreview=function(){null!=this.preview&&(this.preview.bounds=this.bounds,this.preview.node.parentNode==this.graph.container&&(this.preview.bounds.width=Math.max(0,this.preview.bounds.width-1),this.preview.bounds.height=Math.max(0,this.preview.bounds.height-1)),this.preview.rotation=Number(this.state.style[mxConstants.STYLE_ROTATION]||"0"),this.preview.redraw()),this.selectionBorder.bounds=this.bounds,this.selectionBorder.redraw()},mxVertexHandler.prototype.destroy=function(){if(null!=this.preview&&(this.preview.destroy(),this.preview=null),this.selectionBorder.destroy(),this.labelShape=this.selectionBorder=null,null!=this.sizers)for(var e=0;e<this.sizers.length;e++)this.sizers[e].destroy(),this.sizers[e]=null},mxEdgeHandler.prototype.graph=null,mxEdgeHandler.prototype.state=null,mxEdgeHandler.prototype.marker=null,mxEdgeHandler.prototype.constraintHandler=null,mxEdgeHandler.prototype.error=null,mxEdgeHandler.prototype.shape=null,mxEdgeHandler.prototype.bends=null,mxEdgeHandler.prototype.labelShape=null,mxEdgeHandler.prototype.cloneEnabled=!0,mxEdgeHandler.prototype.addEnabled=!1,mxEdgeHandler.prototype.removeEnabled=!1,mxEdgeHandler.prototype.preferHtml=!1,mxEdgeHandler.prototype.allowHandleBoundsCheck=!0,mxEdgeHandler.prototype.snapToTerminals=!1,mxEdgeHandler.prototype.handleImage=null,mxEdgeHandler.prototype.tolerance=0,mxEdgeHandler.prototype.init=function(){if(this.graph=this.state.view.graph,this.marker=this.createMarker(),this.constraintHandler=new mxConstraintHandler(this.graph),this.points=[],this.abspoints=this.getSelectionPoints(this.state),this.shape=this.createSelectionShape(this.abspoints),this.shape.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_MIXEDHTML:mxConstants.DIALECT_SVG,this.shape.init(this.graph.getView().getOverlayPane()),this.shape.svgStrokeTolerance=0,this.shape.node.style.cursor=mxConstants.CURSOR_MOVABLE_EDGE,mxEvent.addListener(this.shape.node,"dblclick",mxUtils.bind(this,function(e){this.graph.dblClick(e,this.state.cell)})),mxEvent.addGestureListeners(this.shape.node,mxUtils.bind(this,function(e){this.addEnabled&&this.isAddPointEvent(e)?this.addPoint(this.state,e):this.graph.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e,this.state))}),mxUtils.bind(this,function(e){var n=this.state.cell;if(null!=this.index){var t=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e));n=this.graph.getCellAt(t.x,t.y);this.graph.isSwimlane(n)&&this.graph.hitsSwimlaneContent(n,t.x,t.y)&&(n=null)}this.graph.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,this.graph.getView().getState(n)))}),mxUtils.bind(this,function(e){this.graph.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e,this.state))})),this.preferHtml=null!=this.state.text&&this.state.text.node.parentNode==this.graph.container,!this.preferHtml){var e=this.state.getVisibleTerminalState(!0);null!=e&&(this.preferHtml=null!=e.text&&e.text.node.parentNode==this.graph.container),this.preferHtml||null!=(e=this.state.getVisibleTerminalState(!1))&&(this.preferHtml=null!=e.text&&e.text.node.parentNode==this.graph.container)}(this.graph.getSelectionCount()<mxGraphHandler.prototype.maxCells||mxGraphHandler.prototype.maxCells<=0)&&(this.bends=this.createBends()),this.label=new mxPoint(this.state.absoluteOffset.x,this.state.absoluteOffset.y),this.labelShape=new mxRectangleShape(new mxRectangle,mxConstants.LABEL_HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR),this.labelShape.pointerEvents=!1,this.initBend(this.labelShape),this.labelShape.node.style.cursor=mxConstants.CURSOR_LABEL_HANDLE,mxEvent.redirectMouseEvents(this.labelShape.node,this.graph,this.state),this.redraw()},mxEdgeHandler.prototype.isAddPointEvent=function(e){return mxEvent.isShiftDown(e)},mxEdgeHandler.prototype.isRemovePointEvent=function(e){return mxEvent.isShiftDown(e)},mxEdgeHandler.prototype.getSelectionPoints=function(e){return e.absolutePoints},mxEdgeHandler.prototype.createSelectionShape=function(e){return(e=new mxPolyline(e,this.getSelectionColor())).strokewidth=this.getSelectionStrokeWidth(),e.isDashed=this.isSelectionDashed(),e},mxEdgeHandler.prototype.getSelectionColor=function(){return mxConstants.EDGE_SELECTION_COLOR},mxEdgeHandler.prototype.getSelectionStrokeWidth=function(){return mxConstants.EDGE_SELECTION_STROKEWIDTH},mxEdgeHandler.prototype.isSelectionDashed=function(){return mxConstants.EDGE_SELECTION_DASHED},mxEdgeHandler.prototype.isConnectableCell=function(e){return!0},mxEdgeHandler.prototype.createMarker=function(){var e=new mxCellMarker(this.graph),a=this;return e.getCell=function(e){var n=mxCellMarker.prototype.getCell.apply(this,arguments);if(!a.isConnectableCell(n))return null;var t=a.graph.getModel();return(n==a.state.cell||null!=n&&!a.graph.connectableEdges&&t.isEdge(n))&&(n=null),n},e.isValidState=function(e){var n=a.graph.getModel();n=null!=(n=a.graph.view.getTerminalPort(e,a.graph.view.getState(n.getTerminal(a.state.cell,!a.isSource)),!a.isSource))?n.cell:null;return a.error=a.validateConnection(a.isSource?e.cell:n,a.isSource?n:e.cell),null==a.error},e},mxEdgeHandler.prototype.validateConnection=function(e,n){return this.graph.getEdgeValidationError(this.state.cell,e,n)},mxEdgeHandler.prototype.createBends=function(){for(var e=this.state.cell,n=[],t=0;t<this.abspoints.length;t++)if(this.isHandleVisible(t)){var a=t==this.abspoints.length-1;if((a=0==t||a)||this.graph.isCellBendable(e)){var i=this.createHandleShape(t);if(this.initBend(i),mxClient.IS_TOUCH&&i.node.setAttribute("pointer-events","none"),this.isHandleEnabled(t))if(mxClient.IS_TOUCH){var s=mxUtils.bind(this,function(e){return e=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e)),this.graph.view.getState(this.graph.getCellAt(e.x,e.y))});mxEvent.redirectMouseEvents(i.node,this.graph,s)}else i.node.style.cursor=mxConstants.CURSOR_BEND_HANDLE,mxEvent.redirectMouseEvents(i.node,this.graph,this.state);n.push(i),a||(this.points.push(new mxPoint(0,0)),i.node.style.visibility="hidden")}}return n},mxEdgeHandler.prototype.isHandleEnabled=function(e){return!0},mxEdgeHandler.prototype.isHandleVisible=function(e){return!0},mxEdgeHandler.prototype.createHandleShape=function(e){return null!=this.handleImage?new mxImageShape(new mxRectangle(0,0,this.handleImage.width,this.handleImage.height),this.handleImage.src):(e=mxConstants.HANDLE_SIZE,this.preferHtml&&(e-=1),new mxRectangleShape(new mxRectangle(0,0,e,e),mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR))},mxEdgeHandler.prototype.initBend=function(e){this.preferHtml?(e.dialect=mxConstants.DIALECT_STRICTHTML,e.init(this.graph.container)):(e.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_MIXEDHTML:mxConstants.DIALECT_SVG,e.init(this.graph.getView().getOverlayPane()))},mxEdgeHandler.prototype.getHandleForEvent=function(e){if(null!=this.bends)for(var n=this.tolerance,t=(n=this.allowHandleBoundsCheck&&(mxClient.IS_IE||0<n)?new mxRectangle(e.getGraphX()-n,e.getGraphY()-n,2*n,2*n):null,0);t<this.bends.length;t++)if((e.isSource(this.bends[t])||null!=n&&mxUtils.intersects(this.bends[t].bounds,n))&&"hidden"!=this.bends[t].node.style.visibility)return t;return!(e.isSource(this.labelShape)&&"hidden"!=this.labelShape.node.style.visibility||e.isSource(this.state.text))||(mxClient.IS_SF||mxClient.IS_GC)&&"SELECT"==e.getSource().nodeName?null:mxEvent.LABEL_HANDLE},mxEdgeHandler.prototype.mouseDown=function(e,n){var t=null;null!=(t=this.getHandleForEvent(n))&&!n.isConsumed()&&this.graph.isEnabled()&&!this.graph.isForceMarqueeEvent(n.getEvent())&&(this.removeEnabled&&this.isRemovePointEvent(n.getEvent())?this.removePoint(this.state,t):(t!=mxEvent.LABEL_HANDLE||this.graph.isLabelMovable(n.getCell()))&&this.start(n.getX(),n.getY(),t),n.consume())},mxEdgeHandler.prototype.start=function(e,n,t){this.startX=e,this.startY=n,this.isSource=null!=this.bends&&0==t,this.isTarget=null!=this.bends&&t==this.bends.length-1,this.isLabel=t==mxEvent.LABEL_HANDLE,this.isSource||this.isTarget?(e=this.state.cell,(null==(n=this.graph.model.getTerminal(e,this.isSource))&&this.graph.isTerminalPointMovable(e,this.isSource)||null!=n&&this.graph.isCellDisconnectable(e,n,this.isSource))&&(this.index=t)):this.index=t},mxEdgeHandler.prototype.clonePreviewState=function(e,n){return this.state.clone()},mxEdgeHandler.prototype.getSnapToTerminalTolerance=function(){return this.graph.gridSize*this.graph.view.scale/2},mxEdgeHandler.prototype.getPointForEvent=function(e){var t=new mxPoint(e.getGraphX(),e.getGraphY()),a=this.getSnapToTerminalTolerance(),n=this.graph.getView(),i=!1,s=!1;if(this.snapToTerminals&&0<a){var o=function(e){if(null!=e){var n=e.x;Math.abs(t.x-n)<a&&(t.x=n,i=!0),e=e.y,Math.abs(t.y-e)<a&&(t.y=e,s=!0)}},r=function(e){null!=e&&o.call(this,new mxPoint(n.getRoutingCenterX(e),n.getRoutingCenterY(e)))};if(r.call(this,this.state.getVisibleTerminalState(!0)),r.call(this,this.state.getVisibleTerminalState(!1)),null!=this.abspoints)for(r=0;r<this.abspoints;r++)r!=this.index&&o.call(this,this.abspoints[r])}return this.graph.isGridEnabledEvent(e.getEvent())&&(e=n.scale,r=n.translate,i||(t.x=(this.graph.snap(t.x/e-r.x)+r.x)*e),s||(t.y=(this.graph.snap(t.y/e-r.y)+r.y)*e)),t},mxEdgeHandler.prototype.getPreviewTerminalState=function(e){this.constraintHandler.update(e,this.isSource),this.marker.process(e),e=this.marker.getValidState();var n=null;return null!=this.constraintHandler.currentFocus&&null!=this.constraintHandler.currentConstraint&&this.marker.reset(),null!=e?n=e:null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&(n=this.constraintHandler.currentFocus),n},mxEdgeHandler.prototype.getPreviewPoints=function(e){var n=null!=(n=this.graph.getCellGeometry(this.state.cell)).points?n.points.slice():null;return this.isSource||this.isTarget?this.graph.resetEdgesOnConnect&&(n=null):(this.convertPoint(e,!1),null==n?n=[e]:n[this.index-1]=e),n},mxEdgeHandler.prototype.updatePreviewState=function(e,n,t){var a=this.isSource?t:this.state.getVisibleTerminalState(!0),i=this.isTarget?t:this.state.getVisibleTerminalState(!1),s=this.graph.getConnectionConstraint(e,a,!0),o=this.graph.getConnectionConstraint(e,i,!1),r=this.constraintHandler.currentConstraint;null==r&&(r=new mxConnectionConstraint),this.isSource?s=r:this.isTarget&&(o=r),(!this.isSource||null!=a)&&e.view.updateFixedTerminalPoint(e,a,!0,s),(!this.isTarget||null!=i)&&e.view.updateFixedTerminalPoint(e,i,!1,o),(this.isSource||this.isTarget)&&null==t&&(e.setAbsoluteTerminalPoint(n,this.isSource),null==this.marker.getMarkedState()&&(this.error=this.graph.allowDanglingEdges?null:"")),e.view.updatePoints(e,this.points,a,i),e.view.updateFloatingTerminalPoints(e,a,i)},mxEdgeHandler.prototype.mouseMove=function(e,n){if(null!=this.index&&null!=this.marker){var t=this.getPointForEvent(n);if(this.isLabel)this.label.x=t.x,this.label.y=t.y;else{this.points=this.getPreviewPoints(t);var a=this.isSource||this.isTarget?this.getPreviewTerminalState(n):null,i=this.clonePreviewState(t,null!=a?a.cell:null);this.updatePreviewState(i,t,a),this.setPreviewColor(null==this.error?this.marker.validColor:this.marker.invalidColor),this.abspoints=i.absolutePoints,this.active=!0}this.drawPreview(),mxEvent.consume(n.getEvent()),n.consume()}else mxClient.IS_IE&&null!=this.getHandleForEvent(n)&&n.consume(!1)},mxEdgeHandler.prototype.mouseUp=function(e,n){if(null!=this.index&&null!=this.marker){var t=this.state.cell;if(n.getX()!=this.startX||n.getY()!=this.startY)if(null!=this.error)0<this.error.length&&this.graph.validationAlert(this.error);else if(this.isLabel)this.moveLabel(this.state,this.label.x,this.label.y);else if(this.isSource||this.isTarget){var a=null;if(null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&(a=this.constraintHandler.currentFocus.cell),null==a&&this.marker.hasValidState()&&(a=this.marker.validState.cell),null!=a)t=this.connect(t,a,this.isSource,this.graph.isCloneEvent(n.getEvent())&&this.cloneEnabled&&this.graph.isCellsCloneable(),n);else if(this.graph.isAllowDanglingEdges()){(a=this.abspoints[this.isSource?0:this.abspoints.length-1]).x=a.x/this.graph.view.scale-this.graph.view.translate.x,a.y=a.y/this.graph.view.scale-this.graph.view.translate.y;var i=this.graph.getView().getState(this.graph.getModel().getParent(t));null!=i&&(a.x-=i.origin.x,a.y-=i.origin.y),a.x-=this.graph.panDx/this.graph.view.scale,a.y-=this.graph.panDy/this.graph.view.scale,this.changeTerminalPoint(t,a,this.isSource)}}else this.active?this.changePoints(t,this.points):(this.graph.getView().invalidate(this.state.cell),this.graph.getView().revalidate(this.state.cell));null!=this.marker&&(this.reset(),t!=this.state.cell&&this.graph.setSelectionCell(t)),n.consume()}},mxEdgeHandler.prototype.reset=function(){this.points=this.label=this.index=this.error=null,this.isTarget=this.isSource=this.isLabel=this.active=!1,this.marker.reset(),this.constraintHandler.reset(),this.setPreviewColor(mxConstants.EDGE_SELECTION_COLOR),this.redraw()},mxEdgeHandler.prototype.setPreviewColor=function(e){null!=this.shape&&(this.shape.stroke=e)},mxEdgeHandler.prototype.convertPoint=function(e,n){var t=this.graph.getView().getScale(),a=this.graph.getView().getTranslate();return n&&(e.x=this.graph.snap(e.x),e.y=this.graph.snap(e.y)),e.x=Math.round(e.x/t-a.x),e.y=Math.round(e.y/t-a.y),null!=(t=this.graph.getView().getState(this.graph.getModel().getParent(this.state.cell)))&&(e.x-=t.origin.x,e.y-=t.origin.y),e},mxEdgeHandler.prototype.moveLabel=function(e,n,t){var a=this.graph.getModel();if(null!=(i=a.getGeometry(e.cell))){var i=i.clone(),s=this.graph.getView().getRelativePoint(e,n,t);i.x=s.x,i.y=s.y;var o=this.graph.getView().scale;i.offset=new mxPoint(0,0),s=this.graph.view.getPoint(e,i),i.offset=new mxPoint((n-s.x)/o,(t-s.y)/o),a.setGeometry(e.cell,i)}},mxEdgeHandler.prototype.connect=function(e,n,t,a,i){var s=(i=this.graph.getModel()).getParent(e);i.beginUpdate();try{if(a){var o=e.clone();i.add(s,o,i.getChildCount(s));var r=i.getTerminal(e,!t);this.graph.connectCell(o,r,!t),e=o}var l=this.constraintHandler.currentConstraint;null==l&&(l=new mxConnectionConstraint),this.graph.connectCell(e,n,t,l)}finally{i.endUpdate()}return e},mxEdgeHandler.prototype.changeTerminalPoint=function(e,n,t){var a=this.graph.getModel(),i=a.getGeometry(e);if(null!=i){a.beginUpdate();try{(i=i.clone()).setTerminalPoint(n,t),a.setGeometry(e,i),this.graph.connectCell(e,null,t,new mxConnectionConstraint)}finally{a.endUpdate()}}},mxEdgeHandler.prototype.changePoints=function(e,n){var t=this.graph.getModel(),a=t.getGeometry(e);null!=a&&((a=a.clone()).points=n,t.setGeometry(e,a))},mxEdgeHandler.prototype.addPoint=function(e,n){var t=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(n),mxEvent.getClientY(n)),a=this.graph.isGridEnabledEvent(n);this.convertPoint(t,a),this.addPointAt(e,t.x,t.y),mxEvent.consume(n)},mxEdgeHandler.prototype.addPointAt=function(e,n,t){var a=this.graph.getCellGeometry(e.cell);if(n=new mxPoint(n,t),null!=a){a=a.clone(),t=this.graph.view.translate;var i=this.graph.view.scale;t=mxUtils.findNearestSegment(e,(n.x+t.x)*i,(n.y+t.y)*i),null==a.points?a.points=[n]:a.points.splice(t,0,n),this.graph.getModel().setGeometry(e.cell,a),this.destroy(),this.init()}},mxEdgeHandler.prototype.removePoint=function(e,n){if(0<n&&n<this.abspoints.length-1){var t=this.graph.getCellGeometry(this.state.cell);null!=t&&null!=t.points&&((t=t.clone()).points.splice(n-1,1),this.graph.getModel().setGeometry(e.cell,t),this.destroy(),this.init())}},mxEdgeHandler.prototype.getHandleFillColor=function(e){e=0==e;var n=this.state.cell,t=this.graph.getModel().getTerminal(n,e),a=mxConstants.HANDLE_FILLCOLOR;return null!=t&&!this.graph.isCellDisconnectable(n,t,e)||null==t&&!this.graph.isTerminalPointMovable(n,e)?a=mxConstants.LOCKED_HANDLE_FILLCOLOR:null!=t&&this.graph.isCellDisconnectable(n,t,e)&&(a=mxConstants.CONNECT_HANDLE_FILLCOLOR),a},mxEdgeHandler.prototype.redraw=function(){this.abspoints=this.state.absolutePoints.slice();var e=this.state.cell,n=mxConstants.LABEL_HANDLE_SIZE;if(this.label=new mxPoint(this.state.absoluteOffset.x,this.state.absoluteOffset.y),this.labelShape.bounds=new mxRectangle(Math.round(this.label.x-n/2),Math.round(this.label.y-n/2),n,n),this.labelShape.redraw(),null!=(n=this.graph.getLabel(e))&&0<n.length&&this.graph.isLabelMovable(e)?this.labelShape.node.style.visibility="visible":this.labelShape.node.style.visibility="hidden",null!=this.bends&&0<this.bends.length){var t=this.abspoints.length-1,a=(e=this.abspoints[0],this.abspoints[0].y);n=this.bends[0].bounds;this.bends[0].bounds=new mxRectangle(Math.round(this.abspoints[0].x-n.width/2),Math.round(a-n.height/2),n.width,n.height),this.bends[0].fill=this.getHandleFillColor(0),this.bends[0].redraw();a=this.abspoints[t];var i=this.abspoints[t].x,s=(t=this.abspoints[t].y,this.bends.length-1);n=this.bends[s].bounds;this.bends[s].bounds=new mxRectangle(Math.round(i-n.width/2),Math.round(t-n.height/2),n.width,n.height),this.bends[s].fill=this.getHandleFillColor(s),this.bends[s].redraw(),this.redrawInnerBends(e,a)}this.drawPreview()},mxEdgeHandler.prototype.redrawInnerBends=function(e,n){var t=this.graph.getModel().getGeometry(this.state.cell).points;if(null!=t){null==this.points&&(this.points=[]);for(var a=1;a<this.bends.length-1;a++)if(null!=this.bends[a])if(null!=this.abspoints[a]){var i=this.abspoints[a].x,s=this.abspoints[a].y,o=this.bends[a].bounds;this.bends[a].node.style.visibility="visible",this.bends[a].bounds=new mxRectangle(Math.round(i-o.width/2),Math.round(s-o.height/2),o.width,o.height),this.bends[a].redraw(),this.points[a-1]=t[a-1]}else this.bends[a].destroy(),this.bends[a]=null}},mxEdgeHandler.prototype.drawPreview=function(){if(this.isLabel){var e=mxConstants.LABEL_HANDLE_SIZE;e=new mxRectangle(Math.round(this.label.x-e/2),Math.round(this.label.y-e/2),e,e);this.labelShape.bounds=e,this.labelShape.redraw()}else this.shape.points=this.abspoints,this.shape.redraw()},mxEdgeHandler.prototype.destroy=function(){if(null!=this.marker&&(this.marker.destroy(),this.marker=null),null!=this.shape&&(this.shape.destroy(),this.shape=null),null!=this.labelShape&&(this.labelShape.destroy(),this.labelShape=null),null!=this.constraintHandler&&(this.constraintHandler.destroy(),this.constraintHandler=null),null!=this.bends)for(var e=0;e<this.bends.length;e++)null!=this.bends[e]&&(this.bends[e].destroy(),this.bends[e]=null)},mxUtils.extend(mxElbowEdgeHandler,mxEdgeHandler),mxElbowEdgeHandler.prototype=new mxEdgeHandler,mxElbowEdgeHandler.prototype.constructor=mxElbowEdgeHandler,mxElbowEdgeHandler.prototype.flipEnabled=!0,mxElbowEdgeHandler.prototype.doubleClickOrientationResource="none"!=mxClient.language?"doubleClickOrientation":"",mxElbowEdgeHandler.prototype.createBends=function(){var e=[],n=this.createHandleShape(0);return this.initBend(n),n.node.style.cursor=mxConstants.CURSOR_BEND_HANDLE,mxEvent.redirectMouseEvents(n.node,this.graph,this.state),e.push(n),mxClient.IS_TOUCH&&n.node.setAttribute("pointer-events","none"),e.push(this.createVirtualBend()),this.points.push(new mxPoint(0,0)),n=this.createHandleShape(2),this.initBend(n),n.node.style.cursor=mxConstants.CURSOR_BEND_HANDLE,mxEvent.redirectMouseEvents(n.node,this.graph,this.state),e.push(n),mxClient.IS_TOUCH&&n.node.setAttribute("pointer-events","none"),e},mxElbowEdgeHandler.prototype.createVirtualBend=function(){var e=this.createHandleShape();this.initBend(e);var n=this.getCursorForBend();return e.node.style.cursor=n,n=mxUtils.bind(this,function(e){!mxEvent.isConsumed(e)&&this.flipEnabled&&(this.graph.flipEdge(this.state.cell,e),mxEvent.consume(e))}),mxEvent.redirectMouseEvents(e.node,this.graph,this.state,null,null,null,n),this.graph.isCellBendable(this.state.cell)||(e.node.style.display="none"),e},mxElbowEdgeHandler.prototype.getCursorForBend=function(){return this.state.style[mxConstants.STYLE_EDGE]==mxEdgeStyle.TopToBottom||this.state.style[mxConstants.STYLE_EDGE]==mxConstants.EDGESTYLE_TOPTOBOTTOM||(this.state.style[mxConstants.STYLE_EDGE]==mxEdgeStyle.ElbowConnector||this.state.style[mxConstants.STYLE_EDGE]==mxConstants.EDGESTYLE_ELBOW)&&this.state.style[mxConstants.STYLE_ELBOW]==mxConstants.ELBOW_VERTICAL?"row-resize":"col-resize"},mxElbowEdgeHandler.prototype.getTooltipForNode=function(e){var n=null;return null==this.bends||null==this.bends[1]||e!=this.bends[1].node&&e.parentNode!=this.bends[1].node||(n=this.doubleClickOrientationResource,n=mxResources.get(n)||n),n},mxElbowEdgeHandler.prototype.convertPoint=function(e,n){var t=this.graph.getView().getScale(),a=this.graph.getView().getTranslate(),i=this.state.origin;n&&(e.x=this.graph.snap(e.x),e.y=this.graph.snap(e.y)),e.x=Math.round(e.x/t-a.x-i.x),e.y=Math.round(e.y/t-a.y-i.y)},mxElbowEdgeHandler.prototype.redrawInnerBends=function(e,n){var t=null==(t=null!=(t=this.graph.getModel().getGeometry(this.state.cell).points)?t[0]:null)?new mxPoint(e.x+(n.x-e.x)/2,e.y+(n.y-e.y)/2):new mxPoint(this.graph.getView().scale*(t.x+this.graph.getView().translate.x+this.state.origin.x),this.graph.getView().scale*(t.y+this.graph.getView().translate.y+this.state.origin.y)),a=(i=this.bends[1].bounds).width,i=i.height;null==this.handleImage&&(i=a=mxConstants.HANDLE_SIZE);var s=new mxRectangle(Math.round(t.x-a/2),Math.round(t.y-i/2),a,i);null==this.handleImage&&"hidden"!=this.labelShape.node.style.visibility&&mxUtils.intersects(s,this.labelShape.bounds)&&(a+=3,i+=3,s=new mxRectangle(Math.round(t.x-a/2),Math.round(t.y-i/2),a,i)),this.bends[1].bounds=s,this.bends[1].redraw()},mxUtils.extend(mxEdgeSegmentHandler,mxEdgeHandler),mxEdgeSegmentHandler.prototype=new mxElbowEdgeHandler,mxEdgeSegmentHandler.prototype.constructor=mxEdgeSegmentHandler,mxEdgeSegmentHandler.prototype.getPreviewPoints=function(e){if(this.isSource||this.isTarget)return mxElbowEdgeHandler.prototype.getPreviewPoints.apply(this,arguments);this.convertPoint(e,!1);var n=this.state.absolutePoints,t=n[0].clone();this.convertPoint(t,!1);for(var a=[],i=1;i<n.length;i++){var s=n[i].clone();this.convertPoint(s,!1),i==this.index&&(t.x==s.x?(t.x=e.x,s.x=e.x):(t.y=e.y,s.y=e.y)),i<n.length-1&&a.push(s),t=s}if(1==a.length){if(t=this.state.view,i=this.state.getVisibleTerminalState(!0),null!=(s=this.state.getVisibleTerminalState(!1))&null!=i){var o=this.state.origin.x,r=this.state.origin.y;mxUtils.contains(s,a[0].x+o,a[0].y+r)?n[1].y==n[2].y?a[0].y=t.getRoutingCenterY(i)-r:a[0].x=t.getRoutingCenterX(i)-o:mxUtils.contains(i,a[0].x+o,a[0].y+r)&&(n[1].y==n[0].y?a[0].y=t.getRoutingCenterY(s)-r:a[0].x=t.getRoutingCenterX(s)-o)}}else 0==a.length&&(a=[e]);return a},mxEdgeSegmentHandler.prototype.createBends=function(){var e=[],n=this.createHandleShape(0);this.initBend(n),n.node.style.cursor=mxConstants.CURSOR_BEND_HANDLE,mxEvent.redirectMouseEvents(n.node,this.graph,this.state),e.push(n),mxClient.IS_TOUCH&&n.node.setAttribute("pointer-events","none");var t=this.state.absolutePoints;if(this.graph.isCellBendable(this.state.cell)){null==this.points&&(this.points=[]);for(var a=0;a<t.length-1;a++)n=this.createVirtualBend(),e.push(n),n.node.style.cursor=0==t[a].x-t[a+1].x?"col-resize":"row-resize",this.points.push(new mxPoint(0,0)),mxClient.IS_TOUCH&&n.node.setAttribute("pointer-events","none")}return n=this.createHandleShape(t.length),this.initBend(n),n.node.style.cursor=mxConstants.CURSOR_BEND_HANDLE,mxEvent.redirectMouseEvents(n.node,this.graph,this.state),e.push(n),mxClient.IS_TOUCH&&n.node.setAttribute("pointer-events","none"),e},mxEdgeSegmentHandler.prototype.redraw=function(){this.refresh(),mxEdgeHandler.prototype.redraw.apply(this,arguments)},mxEdgeSegmentHandler.prototype.refresh=function(){if(null!=this.bends){for(var e=0;e<this.bends.length;e++)null!=this.bends[e]&&(this.bends[e].destroy(),this.bends[e]=null);this.bends=this.createBends()}},mxEdgeSegmentHandler.prototype.redrawInnerBends=function(e,n){if(this.graph.isCellBendable(this.state.cell)){var t=mxConstants.HANDLE_SIZE,a=this.state.absolutePoints;if(null!=a&&1<a.length)for(var i=0;i<this.state.absolutePoints.length-1;i++)if(null!=this.bends[i+1]){e=a[i],n=a[i+1];var s=new mxPoint(e.x+(n.x-e.x)/2,e.y+(n.y-e.y)/2);this.bends[i+1].bounds=new mxRectangle(Math.round(s.x-t/2),Math.round(s.y-t/2),t,t),this.bends[i+1].redraw()}}},mxEdgeSegmentHandler.prototype.changePoints=function(e,n){n=[];var t=this.abspoints;if(1<t.length)for(var a=t[0],i=t[1],s=2;s<t.length;s++){var o=t[s];Math.round(a.x)==Math.round(i.x)&&Math.round(i.x)==Math.round(o.x)||Math.round(a.y)==Math.round(i.y)&&Math.round(i.y)==Math.round(o.y)||(i=(a=i).clone(),this.convertPoint(i,!1),n.push(i)),i=o}mxElbowEdgeHandler.prototype.changePoints.apply(this,arguments)},mxKeyHandler.prototype.graph=null,mxKeyHandler.prototype.target=null,mxKeyHandler.prototype.normalKeys=null,mxKeyHandler.prototype.shiftKeys=null,mxKeyHandler.prototype.controlKeys=null,mxKeyHandler.prototype.controlShiftKeys=null,mxKeyHandler.prototype.enabled=!0,mxKeyHandler.prototype.isEnabled=function(){return this.enabled},mxKeyHandler.prototype.setEnabled=function(e){this.enabled=e},mxKeyHandler.prototype.bindKey=function(e,n){this.normalKeys[e]=n},mxKeyHandler.prototype.bindShiftKey=function(e,n){this.shiftKeys[e]=n},mxKeyHandler.prototype.bindControlKey=function(e,n){this.controlKeys[e]=n},mxKeyHandler.prototype.bindControlShiftKey=function(e,n){this.controlShiftKeys[e]=n},mxKeyHandler.prototype.isControlDown=function(e){return mxEvent.isControlDown(e)},mxKeyHandler.prototype.getFunction=function(e){return null!=e?this.isControlDown(e)?mxEvent.isShiftDown(e)?this.controlShiftKeys[e.keyCode]:this.controlKeys[e.keyCode]:mxEvent.isShiftDown(e)?this.shiftKeys[e.keyCode]:this.normalKeys[e.keyCode]:null},mxKeyHandler.prototype.isGraphEvent=function(e){if((e=mxEvent.getSource(e))==this.target||e.parentNode==this.target||null!=this.graph.cellEditor&&e==this.graph.cellEditor.textarea)return!0;for(;null!=e;){if(e==this.graph.container)return!0;e=e.parentNode}return!1},mxKeyHandler.prototype.keyDown=function(e){if(this.graph.isEnabled()&&!mxEvent.isConsumed(e)&&this.isGraphEvent(e)&&this.isEnabled())if(27==e.keyCode)this.escape(e);else if(!this.graph.isEditing()){var n=this.getFunction(e);null!=n&&(n(e),mxEvent.consume(e))}},mxKeyHandler.prototype.escape=function(e){this.graph.isEscapeEnabled()&&this.graph.escape(e)},mxKeyHandler.prototype.destroy=function(){this.target=null},mxTooltipHandler.prototype.zIndex=10005,mxTooltipHandler.prototype.graph=null,mxTooltipHandler.prototype.delay=null,mxTooltipHandler.prototype.hideOnHover=!1,mxTooltipHandler.prototype.enabled=!0,mxTooltipHandler.prototype.isEnabled=function(){return this.enabled},mxTooltipHandler.prototype.setEnabled=function(e){this.enabled=e},mxTooltipHandler.prototype.isHideOnHover=function(){return this.hideOnHover},mxTooltipHandler.prototype.setHideOnHover=function(e){this.hideOnHover=e},mxTooltipHandler.prototype.init=function(){null!=document.body&&(this.div=document.createElement("div"),this.div.className="mxTooltip",this.div.style.visibility="hidden",this.div.style.zIndex=this.zIndex,document.body.appendChild(this.div),mxEvent.addListener(this.div,"mousedown",mxUtils.bind(this,function(e){this.hideTooltip()})))},mxTooltipHandler.prototype.mouseDown=function(e,n){this.reset(n,!1),this.hideTooltip()},mxTooltipHandler.prototype.mouseMove=function(e,n){n.getX()==this.lastX&&n.getY()==this.lastY||(this.reset(n,!0),(this.isHideOnHover()||n.getState()!=this.state||n.getSource()!=this.node&&(!this.stateSource||null!=n.getState()&&this.stateSource==(n.isSource(n.getState().shape)||!n.isSource(n.getState().text))))&&this.hideTooltip()),this.lastX=n.getX(),this.lastY=n.getY()},mxTooltipHandler.prototype.mouseUp=function(e,n){this.reset(n,!0),this.hideTooltip()},mxTooltipHandler.prototype.resetTimer=function(){null!=this.thread&&(window.clearTimeout(this.thread),this.thread=null)},mxTooltipHandler.prototype.reset=function(e,n){if(this.resetTimer(),n&&this.isEnabled()&&null!=e.getState()&&(null==this.div||"hidden"==this.div.style.visibility)){var t=e.getState(),a=e.getSource(),i=e.getX(),s=e.getY(),o=e.isSource(t.shape)||e.isSource(t.text);this.thread=window.setTimeout(mxUtils.bind(this,function(){if(!this.graph.isEditing()&&!this.graph.panningHandler.isMenuShowing()){var e=this.graph.getTooltip(t,a,i,s);this.show(e,i,s),this.state=t,this.node=a,this.stateSource=o}}),this.delay)}},mxTooltipHandler.prototype.hide=function(){this.resetTimer(),this.hideTooltip()},mxTooltipHandler.prototype.hideTooltip=function(){null!=this.div&&(this.div.style.visibility="hidden")},mxTooltipHandler.prototype.show=function(e,n,t){if(null!=e&&0<e.length){null==this.div&&this.init();var a=mxUtils.getScrollOrigin();this.div.style.left=n+a.x+"px",this.div.style.top=t+mxConstants.TOOLTIP_VERTICAL_OFFSET+a.y+"px",mxUtils.isNode(e)?(this.div.innerHTML="",this.div.appendChild(e)):this.div.innerHTML=e.replace(/\n/g,"<br>"),this.div.style.visibility="",mxUtils.fit(this.div)}},mxTooltipHandler.prototype.destroy=function(){this.graph.removeMouseListener(this),mxEvent.release(this.div),null!=this.div&&null!=this.div.parentNode&&this.div.parentNode.removeChild(this.div),this.div=null},mxUtils.extend(mxCellTracker,mxCellMarker),mxCellTracker.prototype.mouseDown=function(e,n){},mxCellTracker.prototype.mouseMove=function(e,n){this.isEnabled()&&this.process(n)},mxCellTracker.prototype.mouseUp=function(e,n){this.reset()},mxCellTracker.prototype.destroy=function(){this.destroyed||(this.destroyed=!0,this.graph.removeMouseListener(this),mxCellMarker.prototype.destroy.apply(this))},mxCellHighlight.prototype.keepOnTop=!1,mxCellHighlight.prototype.graph=!0,mxCellHighlight.prototype.state=null,mxCellHighlight.prototype.spacing=2,mxCellHighlight.prototype.resetHandler=null,mxCellHighlight.prototype.setHighlightColor=function(e){this.highlightColor=e,null!=this.shape&&(this.shape.stroke=e)},mxCellHighlight.prototype.drawHighlight=function(){this.shape=this.createShape(),this.repaint(),!this.keepOnTop&&this.shape.node.parentNode.firstChild!=this.shape.node&&this.shape.node.parentNode.insertBefore(this.shape.node,this.shape.node.parentNode.firstChild)},mxCellHighlight.prototype.createShape=function(){var e=null;return(e=this.graph.model.isEdge(this.state.cell)?new mxPolyline(this.state.absolutePoints,this.highlightColor,this.strokeWidth):new mxRectangleShape(new mxRectangle,null,this.highlightColor,this.strokeWidth)).dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,e.init(this.graph.getView().getOverlayPane()),mxEvent.redirectMouseEvents(e.node,this.graph,this.state),e.svgStrokeTolerance=0,e.pointerEvents=!1,e.isDashed=this.dashed,e},mxCellHighlight.prototype.repaint=function(){if(null!=this.state&&null!=this.shape){var e=0;this.graph.model.isEdge(this.state.cell)?this.shape.points=this.state.absolutePoints:(this.shape.bounds=new mxRectangle(this.state.x-this.spacing,this.state.y-this.spacing,this.state.width+2*this.spacing,this.state.height+2*this.spacing),e=Number(this.state.style[mxConstants.STYLE_ROTATION]||"0")),null!=this.state.shape&&this.shape.setCursor(this.state.shape.getCursor()),0!=e&&(this.shape.rotation=e),this.shape.redraw()}},mxCellHighlight.prototype.hide=function(){this.highlight(null)},mxCellHighlight.prototype.highlight=function(e){this.state!=e&&(null!=this.shape&&(this.shape.destroy(),this.shape=null),this.state=e,null!=this.state&&this.drawHighlight())},mxCellHighlight.prototype.destroy=function(){this.graph.getView().removeListener(this.repaintHandler),this.graph.getModel().removeListener(this.repaintHandler),this.graph.getView().removeListener(this.resetHandler),this.graph.getModel().removeListener(this.resetHandler),null!=this.shape&&(this.shape.destroy(),this.shape=null)},mxDefaultKeyHandler.prototype.editor=null,mxDefaultKeyHandler.prototype.handler=null,mxDefaultKeyHandler.prototype.bindAction=function(e,n,t){var a=mxUtils.bind(this,function(){this.editor.execute(n)});t?this.handler.bindControlKey(e,a):this.handler.bindKey(e,a)},mxDefaultKeyHandler.prototype.destroy=function(){this.handler.destroy(),this.handler=null},mxDefaultPopupMenu.prototype.imageBasePath=null,mxDefaultPopupMenu.prototype.config=null,mxDefaultPopupMenu.prototype.createMenu=function(e,n,t,a){if(null!=this.config){var i=this.createConditions(e,t,a);this.addItems(e,n,t,a,i,this.config.firstChild,null)}},mxDefaultPopupMenu.prototype.addItems=function(e,n,t,a,i,s,o){for(var r=!1;null!=s;){if("add"==s.nodeName){if(null==(l=s.getAttribute("if"))||i[l]){var l=s.getAttribute("as"),d=(l=mxResources.get(l)||l,mxUtils.eval(mxUtils.getTextContent(s))),c=s.getAttribute("action"),m=s.getAttribute("icon"),u=s.getAttribute("iconCls");r&&(n.addSeparator(o),r=!1),null!=m&&this.imageBasePath&&(m=this.imageBasePath+m),l=this.addAction(n,e,l,m,d,c,t,o,u),this.addItems(e,n,t,a,i,s.firstChild,l)}}else"separator"==s.nodeName&&(r=!0);s=s.nextSibling}},mxDefaultPopupMenu.prototype.addAction=function(e,n,t,a,i,s,o,r,l){return e.addItem(t,a,function(e){"function"==typeof i&&i.call(n,n,o,e),null!=s&&n.execute(s,o,e)},r,l)},mxDefaultPopupMenu.prototype.createConditions=function(e,n,t){var a=e.graph.getModel(),i=a.getChildCount(n),s=[];for(s.nocell=null==n,s.ncells=1<e.graph.getSelectionCount(),s.notRoot=a.getRoot()!=a.getParent(e.graph.getDefaultParent()),s.cell=null!=n,a=null!=n&&1==e.graph.getSelectionCount(),s.nonEmpty=a&&0<i,s.expandable=a&&e.graph.isCellFoldable(n,!1),s.collapsable=a&&e.graph.isCellFoldable(n,!0),s.validRoot=a&&e.graph.isValidRoot(n),s.emptyValidRoot=s.validRoot&&0==i,s.swimlane=a&&e.graph.isSwimlane(n),i=this.config.getElementsByTagName("condition"),a=0;a<i.length;a++){var o=mxUtils.eval(mxUtils.getTextContent(i[a])),r=i[a].getAttribute("name");null!=r&&"function"==typeof o&&(s[r]=o(e,n,t))}return s},mxDefaultToolbar.prototype.editor=null,mxDefaultToolbar.prototype.toolbar=null,mxDefaultToolbar.prototype.resetHandler=null,mxDefaultToolbar.prototype.spacing=4,mxDefaultToolbar.prototype.connectOnDrop=!1,mxDefaultToolbar.prototype.init=function(e){null!=e&&(this.toolbar=new mxToolbar(e),this.toolbar.addListener(mxEvent.SELECT,mxUtils.bind(this,function(e,n){var t=n.getProperty("function");this.editor.insertFunction=null!=t?mxUtils.bind(this,function(){t.apply(this,arguments),this.toolbar.resetMode()}):null})),this.resetHandler=mxUtils.bind(this,function(){null!=this.toolbar&&this.toolbar.resetMode(!0)}),this.editor.graph.addListener(mxEvent.DOUBLE_CLICK,this.resetHandler),this.editor.addListener(mxEvent.ESCAPE,this.resetHandler))},mxDefaultToolbar.prototype.addItem=function(e,n,t,a){var i=mxUtils.bind(this,function(){null!=t&&0<t.length&&this.editor.execute(t)});return this.toolbar.addItem(e,n,i,a)},mxDefaultToolbar.prototype.addSeparator=function(e){e=e||mxClient.imageBasePath+"/separator.gif",this.toolbar.addSeparator(e)},mxDefaultToolbar.prototype.addCombo=function(){return this.toolbar.addCombo()},mxDefaultToolbar.prototype.addActionCombo=function(e){return this.toolbar.addActionCombo(e)},mxDefaultToolbar.prototype.addActionOption=function(e,n,t){var a=mxUtils.bind(this,function(){this.editor.execute(t)});this.addOption(e,n,a)},mxDefaultToolbar.prototype.addOption=function(e,n,t){return this.toolbar.addOption(e,n,t)},mxDefaultToolbar.prototype.addMode=function(e,n,t,a,i){var s=mxUtils.bind(this,function(){this.editor.setMode(t),null!=i&&i(this.editor)});return this.toolbar.addSwitchMode(e,n,s,a)},mxDefaultToolbar.prototype.addPrototype=function(e,n,t,a,i,s){var o=function(){return"function"==typeof t?t():null!=t?t.clone():null},r=mxUtils.bind(this,function(e,n){"function"==typeof i?i(this.editor,o(),e,n):this.drop(o(),e,n),this.toolbar.resetMode(),mxEvent.consume(e)});return e=this.toolbar.addMode(e,n,r,a,null,s),this.installDropHandler(e,function(e,n,t){r(n,t)}),e},mxDefaultToolbar.prototype.drop=function(e,n,t){var a=this.editor.graph,i=a.getModel();if(null!=t&&!i.isEdge(t)&&this.connectOnDrop&&a.isCellConnectable(t))this.connect(e,n,t);else{for(;null!=t&&!a.isValidDropTarget(t,[e],n);)t=i.getParent(t);this.insert(e,n,t)}},mxDefaultToolbar.prototype.insert=function(e,n,t){var a=this.editor.graph;if(a.canImportCell(e)){var i=mxEvent.getClientX(n),s=mxEvent.getClientY(n);i=mxUtils.convertPoint(a.container,i,s);return a.isSplitEnabled()&&a.isSplitTarget(t,[e],n)?a.splitEdge(t,[e],null,i.x,i.y):this.editor.addVertex(t,e,i.x,i.y)}return null},mxDefaultToolbar.prototype.connect=function(e,n,t){var a=(n=this.editor.graph).getModel();if(null!=t&&n.isCellConnectable(e)&&n.isEdgeValid(null,t,e)){var i=null;a.beginUpdate();try{var s=a.getGeometry(t),o=a.getGeometry(e).clone();o.x=s.x+(s.width-o.width)/2,o.y=s.y+(s.height-o.height)/2;var r=this.spacing*n.gridSize,l=20*a.getDirectedEdgeCount(t,!0);this.editor.horizontalFlow?o.x+=(o.width+s.width)/2+r+l:o.y+=(o.height+s.height)/2+r+l,e.setGeometry(o);var d=a.getParent(t);if(n.addCell(e,d),n.constrainChild(e),i=this.editor.createEdge(t,e),null==a.getGeometry(i)){var c=new mxGeometry;c.relative=!0,a.setGeometry(i,c)}n.addEdge(i,d,t,e)}finally{a.endUpdate()}n.setSelectionCells([e,i]),n.scrollCellToVisible(e)}},mxDefaultToolbar.prototype.installDropHandler=function(n,t){var a=document.createElement("img");a.setAttribute("src",n.getAttribute("src"));var i=mxUtils.bind(this,function(e){a.style.width=2*n.offsetWidth+"px",a.style.height=2*n.offsetHeight+"px",mxUtils.makeDraggable(n,this.editor.graph,t,a),mxEvent.removeListener(a,"load",i)});mxClient.IS_IE?i():mxEvent.addListener(a,"load",i)},mxDefaultToolbar.prototype.destroy=function(){null!=this.resetHandler&&(this.editor.graph.removeListener("dblclick",this.resetHandler),this.editor.removeListener("escape",this.resetHandler),this.resetHandler=null),null!=this.toolbar&&(this.toolbar.destroy(),this.toolbar=null)},mxLoadResources&&mxResources.add(mxClient.basePath+"/resources/editor"),mxEditor.prototype=new mxEventSource,mxEditor.prototype.constructor=mxEditor,mxEditor.prototype.askZoomResource="none"!=mxClient.language?"askZoom":"",mxEditor.prototype.lastSavedResource="none"!=mxClient.language?"lastSaved":"",mxEditor.prototype.currentFileResource="none"!=mxClient.language?"currentFile":"",mxEditor.prototype.propertiesResource="none"!=mxClient.language?"properties":"",mxEditor.prototype.tasksResource="none"!=mxClient.language?"tasks":"",mxEditor.prototype.helpResource="none"!=mxClient.language?"help":"",mxEditor.prototype.outlineResource="none"!=mxClient.language?"outline":"",mxEditor.prototype.outline=null,mxEditor.prototype.graph=null,mxEditor.prototype.graphRenderHint=null,mxEditor.prototype.toolbar=null,mxEditor.prototype.session=null,mxEditor.prototype.status=null,mxEditor.prototype.popupHandler=null,mxEditor.prototype.undoManager=null,mxEditor.prototype.keyHandler=null,mxEditor.prototype.actions=null,mxEditor.prototype.dblClickAction="edit",mxEditor.prototype.swimlaneRequired=!1,mxEditor.prototype.disableContextMenu=!0,mxEditor.prototype.insertFunction=null,mxEditor.prototype.forcedInserting=!1,mxEditor.prototype.templates=null,mxEditor.prototype.defaultEdge=null,mxEditor.prototype.defaultEdgeStyle=null,mxEditor.prototype.defaultGroup=null,mxEditor.prototype.groupBorderSize=null,mxEditor.prototype.filename=null,mxEditor.prototype.linefeed="
",mxEditor.prototype.postParameterName="xml",mxEditor.prototype.escapePostData=!0,mxEditor.prototype.urlPost=null,mxEditor.prototype.urlImage=null,mxEditor.prototype.urlInit=null,mxEditor.prototype.urlNotify=null,mxEditor.prototype.urlPoll=null,mxEditor.prototype.horizontalFlow=!1,mxEditor.prototype.layoutDiagram=!1,mxEditor.prototype.swimlaneSpacing=0,mxEditor.prototype.maintainSwimlanes=!1,mxEditor.prototype.layoutSwimlanes=!1,mxEditor.prototype.cycleAttributeValues=null,mxEditor.prototype.cycleAttributeIndex=0,mxEditor.prototype.cycleAttributeName="fillColor",mxEditor.prototype.tasks=null,mxEditor.prototype.tasksWindowImage=null,mxEditor.prototype.tasksTop=20,mxEditor.prototype.help=null,mxEditor.prototype.helpWindowImage=null,mxEditor.prototype.urlHelp=null,mxEditor.prototype.helpWidth=300,mxEditor.prototype.helpHeight=260,mxEditor.prototype.propertiesWidth=240,mxEditor.prototype.propertiesHeight=null,mxEditor.prototype.movePropertiesDialog=!1,mxEditor.prototype.validating=!1,mxEditor.prototype.modified=!1,mxEditor.prototype.isModified=function(){return this.modified},mxEditor.prototype.setModified=function(e){this.modified=e},mxEditor.prototype.addActions=function(){this.addAction("save",function(e){e.save()}),this.addAction("print",function(e){new mxPrintPreview(e.graph,1).open()}),this.addAction("show",function(e){mxUtils.show(e.graph,null,10,10)}),this.addAction("exportImage",function(e){var n=e.getUrlImage();if(null==n||mxClient.IS_LOCAL)e.execute("show");else{var t=mxUtils.getViewXml(e.graph,1);t=mxUtils.getXml(t,"\n");mxUtils.submit(n,e.postParameterName+"="+encodeURIComponent(t),document,"_blank")}}),this.addAction("refresh",function(e){e.graph.refresh()}),this.addAction("cut",function(e){e.graph.isEnabled()&&mxClipboard.cut(e.graph)}),this.addAction("copy",function(e){e.graph.isEnabled()&&mxClipboard.copy(e.graph)}),this.addAction("paste",function(e){e.graph.isEnabled()&&mxClipboard.paste(e.graph)}),this.addAction("delete",function(e){e.graph.isEnabled()&&e.graph.removeCells()}),this.addAction("group",function(e){e.graph.isEnabled()&&e.graph.setSelectionCell(e.groupCells())}),this.addAction("ungroup",function(e){e.graph.isEnabled()&&e.graph.setSelectionCells(e.graph.ungroupCells())}),this.addAction("removeFromParent",function(e){e.graph.isEnabled()&&e.graph.removeCellsFromParent()}),this.addAction("undo",function(e){e.graph.isEnabled()&&e.undo()}),this.addAction("redo",function(e){e.graph.isEnabled()&&e.redo()}),this.addAction("zoomIn",function(e){e.graph.zoomIn()}),this.addAction("zoomOut",function(e){e.graph.zoomOut()}),this.addAction("actualSize",function(e){e.graph.zoomActual()}),this.addAction("fit",function(e){e.graph.fit()}),this.addAction("showProperties",function(e,n){e.showProperties(n)}),this.addAction("selectAll",function(e){e.graph.isEnabled()&&e.graph.selectAll()}),this.addAction("selectNone",function(e){e.graph.isEnabled()&&e.graph.clearSelection()}),this.addAction("selectVertices",function(e){e.graph.isEnabled()&&e.graph.selectVertices()}),this.addAction("selectEdges",function(e){e.graph.isEnabled()&&e.graph.selectEdges()}),this.addAction("edit",function(e,n){e.graph.isEnabled()&&e.graph.isCellEditable(n)&&e.graph.startEditingAtCell(n)}),this.addAction("toBack",function(e,n){e.graph.isEnabled()&&e.graph.orderCells(!0)}),this.addAction("toFront",function(e,n){e.graph.isEnabled()&&e.graph.orderCells(!1)}),this.addAction("enterGroup",function(e,n){e.graph.enterGroup(n)}),this.addAction("exitGroup",function(e){e.graph.exitGroup()}),this.addAction("home",function(e){e.graph.home()}),this.addAction("selectPrevious",function(e){e.graph.isEnabled()&&e.graph.selectPreviousCell()}),this.addAction("selectNext",function(e){e.graph.isEnabled()&&e.graph.selectNextCell()}),this.addAction("selectParent",function(e){e.graph.isEnabled()&&e.graph.selectParentCell()}),this.addAction("selectChild",function(e){e.graph.isEnabled()&&e.graph.selectChildCell()}),this.addAction("collapse",function(e){e.graph.isEnabled()&&e.graph.foldCells(!0)}),this.addAction("collapseAll",function(e){if(e.graph.isEnabled()){var n=e.graph.getChildVertices();e.graph.foldCells(!0,!1,n)}}),this.addAction("expand",function(e){e.graph.isEnabled()&&e.graph.foldCells(!1)}),this.addAction("expandAll",function(e){if(e.graph.isEnabled()){var n=e.graph.getChildVertices();e.graph.foldCells(!1,!1,n)}}),this.addAction("bold",function(e){e.graph.isEnabled()&&e.graph.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,mxConstants.FONT_BOLD)}),this.addAction("italic",function(e){e.graph.isEnabled()&&e.graph.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,mxConstants.FONT_ITALIC)}),this.addAction("underline",function(e){e.graph.isEnabled()&&e.graph.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,mxConstants.FONT_UNDERLINE)}),this.addAction("shadow",function(e){e.graph.isEnabled()&&e.graph.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,mxConstants.FONT_SHADOW)}),this.addAction("alignCellsLeft",function(e){e.graph.isEnabled()&&e.graph.alignCells(mxConstants.ALIGN_LEFT)}),this.addAction("alignCellsCenter",function(e){e.graph.isEnabled()&&e.graph.alignCells(mxConstants.ALIGN_CENTER)}),this.addAction("alignCellsRight",function(e){e.graph.isEnabled()&&e.graph.alignCells(mxConstants.ALIGN_RIGHT)}),this.addAction("alignCellsTop",function(e){e.graph.isEnabled()&&e.graph.alignCells(mxConstants.ALIGN_TOP)}),this.addAction("alignCellsMiddle",function(e){e.graph.isEnabled()&&e.graph.alignCells(mxConstants.ALIGN_MIDDLE)}),this.addAction("alignCellsBottom",function(e){e.graph.isEnabled()&&e.graph.alignCells(mxConstants.ALIGN_BOTTOM)}),this.addAction("alignFontLeft",function(e){e.graph.setCellStyles(mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT)}),this.addAction("alignFontCenter",function(e){e.graph.isEnabled()&&e.graph.setCellStyles(mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER)}),this.addAction("alignFontRight",function(e){e.graph.isEnabled()&&e.graph.setCellStyles(mxConstants.STYLE_ALIGN,mxConstants.ALIGN_RIGHT)}),this.addAction("alignFontTop",function(e){e.graph.isEnabled()&&e.graph.setCellStyles(mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_TOP)}),this.addAction("alignFontMiddle",function(e){e.graph.isEnabled()&&e.graph.setCellStyles(mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE)}),this.addAction("alignFontBottom",function(e){e.graph.isEnabled()&&e.graph.setCellStyles(mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_BOTTOM)}),this.addAction("zoom",function(e){var n=100*e.graph.getView().scale;n=parseFloat(mxUtils.prompt(mxResources.get(e.askZoomResource)||e.askZoomResource,n))/100;isNaN(n)||e.graph.getView().setScale(n)}),this.addAction("toggleTasks",function(e){null!=e.tasks?e.tasks.setVisible(!e.tasks.isVisible()):e.showTasks()}),this.addAction("toggleHelp",function(e){null!=e.help?e.help.setVisible(!e.help.isVisible()):e.showHelp()}),this.addAction("toggleOutline",function(e){null==e.outline?e.showOutline():e.outline.setVisible(!e.outline.isVisible())}),this.addAction("toggleConsole",function(e){mxLog.setVisible(!mxLog.isVisible())})},mxEditor.prototype.createSession=function(){var e=mxUtils.bind(this,function(e){this.fireEvent(new mxEventObject(mxEvent.SESSION,"session",e))});return this.connect(this.urlInit,this.urlPoll,this.urlNotify,e)},mxEditor.prototype.configure=function(e){null!=e&&(new mxCodec(e.ownerDocument).decode(e,this),this.resetHistory())},mxEditor.prototype.resetFirstTime=function(){document.cookie="mxgraph=seen; expires=Fri, 27 Jul 2001 02:47:11 UTC; path=/"},mxEditor.prototype.resetHistory=function(){this.lastSnapshot=(new Date).getTime(),this.undoManager.clear(),this.ignoredChanges=0,this.setModified(!1)},mxEditor.prototype.addAction=function(e,n){this.actions[e]=n},mxEditor.prototype.execute=function(n,e,t){var a=this.actions[n];if(null!=a)try{var i=arguments;i[0]=this,a.apply(this,i)}catch(e){throw mxUtils.error("Cannot execute "+n+": "+e.message,280,!0),e}else mxUtils.error("Cannot find action "+n,280,!0)},mxEditor.prototype.addTemplate=function(e,n){this.templates[e]=n},mxEditor.prototype.getTemplate=function(e){return this.templates[e]},mxEditor.prototype.createGraph=function(){var e=new mxGraph(null,null,this.graphRenderHint);return e.setTooltips(!0),e.setPanning(!0),this.installDblClickHandler(e),this.installUndoHandler(e),this.installDrillHandler(e),this.installChangeHandler(e),this.installInsertHandler(e),e.panningHandler.factoryMethod=mxUtils.bind(this,function(e,n,t){return this.createPopupMenu(e,n,t)}),e.connectionHandler.factoryMethod=mxUtils.bind(this,function(e,n){return this.createEdge(e,n)}),this.createSwimlaneManager(e),this.createLayoutManager(e),e},mxEditor.prototype.createSwimlaneManager=function(e){return(e=new mxSwimlaneManager(e,!1)).isHorizontal=mxUtils.bind(this,function(){return this.horizontalFlow}),e.isEnabled=mxUtils.bind(this,function(){return this.maintainSwimlanes}),e},mxEditor.prototype.createLayoutManager=function(a){var e=new mxLayoutManager(a),i=this;return e.getLayout=function(e){var n=null,t=i.graph.getModel();return null!=t.getParent(e)&&(i.layoutSwimlanes&&a.isSwimlane(e)?(null==i.swimlaneLayout&&(i.swimlaneLayout=i.createSwimlaneLayout()),n=i.swimlaneLayout):i.layoutDiagram&&(a.isValidRoot(e)||null==t.getParent(t.getParent(e)))&&(null==i.diagramLayout&&(i.diagramLayout=i.createDiagramLayout()),n=i.diagramLayout)),n},e},mxEditor.prototype.setGraphContainer=function(e){null==this.graph.container&&(this.graph.init(e),this.rubberband=new mxRubberband(this.graph),this.disableContextMenu&&mxEvent.disableContextMenu(e),mxClient.IS_QUIRKS&&new mxDivResizer(e))},mxEditor.prototype.installDblClickHandler=function(a){a.addListener(mxEvent.DOUBLE_CLICK,mxUtils.bind(this,function(e,n){var t=n.getProperty("cell");null!=t&&a.isEnabled()&&null!=this.dblClickAction&&(this.execute(this.dblClickAction,t),n.consume())}))},mxEditor.prototype.installUndoHandler=function(a){var e=mxUtils.bind(this,function(e,n){var t=n.getProperty("edit");this.undoManager.undoableEditHappened(t)});a.getModel().addListener(mxEvent.UNDO,e),a.getView().addListener(mxEvent.UNDO,e),e=function(e,n){var t=n.getProperty("edit").changes;a.setSelectionCells(a.getSelectionCellsForChanges(t))},this.undoManager.addListener(mxEvent.UNDO,e),this.undoManager.addListener(mxEvent.REDO,e)},mxEditor.prototype.installDrillHandler=function(e){var n=mxUtils.bind(this,function(e){this.fireEvent(new mxEventObject(mxEvent.ROOT))});e.getView().addListener(mxEvent.DOWN,n),e.getView().addListener(mxEvent.UP,n)},mxEditor.prototype.installChangeHandler=function(s){var e=mxUtils.bind(this,function(e,n){this.setModified(!0),1==this.validating&&s.validateGraph();for(var t=n.getProperty("edit").changes,a=0;a<t.length;a++){var i=t[a];if(i instanceof mxRootChange||i instanceof mxValueChange&&i.cell==this.graph.model.root||i instanceof mxCellAttributeChange&&i.cell==this.graph.model.root){this.fireEvent(new mxEventObject(mxEvent.ROOT));break}}});s.getModel().addListener(mxEvent.CHANGE,e)},mxEditor.prototype.installInsertHandler=function(e){var t=this;e.addMouseListener({mouseDown:function(e,n){null==t.insertFunction||n.isPopupTrigger()||!t.forcedInserting&&null!=n.getState()||(t.graph.clearSelection(),t.insertFunction(n.getEvent(),n.getCell()),this.isActive=!0,n.consume())},mouseMove:function(e,n){this.isActive&&n.consume()},mouseUp:function(e,n){this.isActive&&(this.isActive=!1,n.consume())}})},mxEditor.prototype.createDiagramLayout=function(){var e=this.graph.gridSize,n=new mxStackLayout(this.graph,!this.horizontalFlow,this.swimlaneSpacing,2*e,2*e);return n.isVertexIgnored=function(e){return!n.graph.isSwimlane(e)},n},mxEditor.prototype.createSwimlaneLayout=function(){return new mxCompactTreeLayout(this.graph,this.horizontalFlow)},mxEditor.prototype.createToolbar=function(){return new mxDefaultToolbar(null,this)},mxEditor.prototype.setToolbarContainer=function(e){this.toolbar.init(e),mxClient.IS_QUIRKS&&new mxDivResizer(e)},mxEditor.prototype.setStatusContainer=function(e){null==this.status&&(this.status=e,this.addListener(mxEvent.SAVE,mxUtils.bind(this,function(){var e=(new Date).toLocaleString();this.setStatus((mxResources.get(this.lastSavedResource)||this.lastSavedResource)+": "+e)})),this.addListener(mxEvent.OPEN,mxUtils.bind(this,function(){this.setStatus((mxResources.get(this.currentFileResource)||this.currentFileResource)+": "+this.filename)})),mxClient.IS_QUIRKS&&new mxDivResizer(e))},mxEditor.prototype.setStatus=function(e){null!=this.status&&null!=e&&(this.status.innerHTML=e)},mxEditor.prototype.setTitleContainer=function(n){this.addListener(mxEvent.ROOT,mxUtils.bind(this,function(e){n.innerHTML=this.getTitle()})),mxClient.IS_QUIRKS&&new mxDivResizer(n)},mxEditor.prototype.treeLayout=function(e,n){null!=e&&new mxCompactTreeLayout(this.graph,n).execute(e)},mxEditor.prototype.getTitle=function(){for(var e="",n=this.graph,t=n.getCurrentRoot();null!=t&&null!=n.getModel().getParent(n.getModel().getParent(t));)n.isValidRoot(t)&&(e=" > "+n.convertValueToString(t)+e),t=n.getModel().getParent(t);return this.getRootTitle()+e},mxEditor.prototype.getRootTitle=function(){var e=this.graph.getModel().getRoot();return this.graph.convertValueToString(e)},mxEditor.prototype.undo=function(){this.undoManager.undo()},mxEditor.prototype.redo=function(){this.undoManager.redo()},mxEditor.prototype.groupCells=function(){var e=null!=this.groupBorderSize?this.groupBorderSize:this.graph.gridSize;return this.graph.groupCells(this.createGroup(),e)},mxEditor.prototype.createGroup=function(){return this.graph.getModel().cloneCell(this.defaultGroup)},mxEditor.prototype.open=function(e){if(null!=e){var n=mxUtils.load(e).getXml();this.readGraphModel(n.documentElement),this.filename=e,this.fireEvent(new mxEventObject(mxEvent.OPEN,"filename",e))}},mxEditor.prototype.readGraphModel=function(e){new mxCodec(e.ownerDocument).decode(e,this.graph.getModel()),this.resetHistory()},mxEditor.prototype.save=function(e,n){if(null!=(e=e||this.getUrlPost())&&0<e.length){var t=this.writeGraphModel(n);this.postDiagram(e,t),this.setModified(!1)}this.fireEvent(new mxEventObject(mxEvent.SAVE,"url",e))},mxEditor.prototype.postDiagram=function(n,t){this.escapePostData&&(t=encodeURIComponent(t)),mxUtils.post(n,this.postParameterName+"="+t,mxUtils.bind(this,function(e){this.fireEvent(new mxEventObject(mxEvent.POST,"request",e,"url",n,"data",t))}))},mxEditor.prototype.writeGraphModel=function(e){e=null!=e?e:this.linefeed;var n=(new mxCodec).encode(this.graph.getModel());return mxUtils.getXml(n,e)},mxEditor.prototype.getUrlPost=function(){return this.urlPost},mxEditor.prototype.getUrlImage=function(){return this.urlImage},mxEditor.prototype.connect=function(e,n,t,a){var i=null;return mxClient.IS_LOCAL||((i=new mxSession(this.graph.getModel(),e,n,t)).addListener(mxEvent.RECEIVE,mxUtils.bind(this,function(e,n){null!=n.getProperty("node").getAttribute("namespace")&&this.resetHistory()})),i.addListener(mxEvent.DISCONNECT,a),i.addListener(mxEvent.CONNECT,a),i.addListener(mxEvent.NOTIFY,a),i.addListener(mxEvent.GET,a),i.start()),i},mxEditor.prototype.swapStyles=function(e,n){var t=this.graph.getStylesheet().styles[n];this.graph.getView().getStylesheet().putCellStyle(n,this.graph.getStylesheet().styles[e]),this.graph.getStylesheet().putCellStyle(e,t),this.graph.refresh()},mxEditor.prototype.showProperties=function(e){if(null==(e=e||this.graph.getSelectionCell())&&(null==(e=this.graph.getCurrentRoot())&&(e=this.graph.getModel().getRoot())),null!=e){this.graph.stopEditing(!0);var n=(t=mxUtils.getOffset(this.graph.container)).x+10,t=t.y;if(null==this.properties||this.movePropertiesDialog){var a=this.graph.getCellBounds(e);null!=a&&(n+=a.x+Math.min(200,a.width),t+=a.y)}else n=this.properties.getX(),t=this.properties.getY();this.hideProperties(),null!=(e=this.createProperties(e))&&(this.properties=new mxWindow(mxResources.get(this.propertiesResource)||this.propertiesResource,e,n,t,this.propertiesWidth,this.propertiesHeight,!1),this.properties.setVisible(!0))}},mxEditor.prototype.isPropertiesVisible=function(){return null!=this.properties},mxEditor.prototype.createProperties=function(t){var a=this.graph.getModel(),e=a.getValue(t);if(mxUtils.isNode(e)){var n=new mxForm("properties");n.addText("ID",t.getId()).setAttribute("readonly","true");var i=null,s=null,o=null,r=null,l=null;a.isVertex(t)&&(null!=(i=a.getGeometry(t))&&(s=n.addText("top",i.y),o=n.addText("left",i.x),r=n.addText("width",i.width),l=n.addText("height",i.height)));var d=a.getStyle(t),c=n.addText("Style",d||""),m=e.attributes,u=[];for(e=0;e<m.length;e++)u[e]=n.addTextarea(m[e].nodeName,m[e].nodeValue,"label"==m[e].nodeName?4:2);return e=mxUtils.bind(this,function(){this.hideProperties(),a.beginUpdate();try{null!=i&&((i=i.clone()).x=parseFloat(o.value),i.y=parseFloat(s.value),i.width=parseFloat(r.value),i.height=parseFloat(l.value),a.setGeometry(t,i)),0<c.value.length?a.setStyle(t,c.value):a.setStyle(t,null);for(var e=0;e<m.length;e++){var n=new mxCellAttributeChange(t,m[e].nodeName,u[e].value);a.execute(n)}this.graph.isAutoSizeCell(t)&&this.graph.updateCellSize(t)}finally{a.endUpdate()}}),d=mxUtils.bind(this,function(){this.hideProperties()}),n.addButtons(e,d),n.table}return null},mxEditor.prototype.hideProperties=function(){null!=this.properties&&(this.properties.destroy(),this.properties=null)},mxEditor.prototype.showTasks=function(){if(null==this.tasks){var n=document.createElement("div");n.style.padding="4px",n.style.paddingLeft="20px";var e=document.body.clientWidth;(e=new mxWindow(mxResources.get(this.tasksResource)||this.tasksResource,n,e-220,this.tasksTop,200)).setClosable(!0),e.destroyOnClose=!1;var t=mxUtils.bind(this,function(e){mxEvent.release(n),n.innerHTML="",this.createTasks(n)});this.graph.getModel().addListener(mxEvent.CHANGE,t),this.graph.getSelectionModel().addListener(mxEvent.CHANGE,t),this.graph.addListener(mxEvent.ROOT,t),null!=this.tasksWindowImage&&e.setImage(this.tasksWindowImage),this.tasks=e,this.createTasks(n)}this.tasks.setVisible(!0)},mxEditor.prototype.refreshTasks=function(e){null!=this.tasks&&(e=this.tasks.content,mxEvent.release(e),e.innerHTML="",this.createTasks(e))},mxEditor.prototype.createTasks=function(e){},mxEditor.prototype.showHelp=function(e){if(null==this.help){var n=document.createElement("iframe");n.setAttribute("src",mxResources.get("urlHelp")||this.urlHelp),n.setAttribute("height","100%"),n.setAttribute("width","100%"),n.setAttribute("frameBorder","0"),n.style.backgroundColor="white",e=document.body.clientWidth;var t=document.body.clientHeight||document.documentElement.clientHeight,a=new mxWindow(mxResources.get(this.helpResource)||this.helpResource,n,(e-this.helpWidth)/2,(t-this.helpHeight)/3,this.helpWidth,this.helpHeight);a.setMaximizable(!0),a.setClosable(!0),a.destroyOnClose=!1,a.setResizable(!0),null!=this.helpWindowImage&&a.setImage(this.helpWindowImage),mxClient.IS_NS&&(e=function(e){n.setAttribute("height",a.div.offsetHeight-26+"px")},a.addListener(mxEvent.RESIZE_END,e),a.addListener(mxEvent.MAXIMIZE,e),a.addListener(mxEvent.NORMALIZE,e),a.addListener(mxEvent.SHOW,e)),this.help=a}this.help.setVisible(!0)},mxEditor.prototype.showOutline=function(){if(null==this.outline){var e=document.createElement("div");e.style.overflow="hidden",e.style.width="100%",e.style.height="100%",e.style.background="white",e.style.cursor="move";var n=new mxWindow(mxResources.get(this.outlineResource)||this.outlineResource,e,600,480,200,200,!1),t=new mxOutline(this.graph,e);n.setClosable(!0),n.setResizable(!0),n.destroyOnClose=!1,n.addListener(mxEvent.RESIZE_END,function(){t.update()}),this.outline=n,this.outline.outline=t}this.outline.setVisible(!0),this.outline.outline.update(!0)},mxEditor.prototype.setMode=function(e){"select"==e?(this.graph.panningHandler.useLeftButtonForPanning=!1,this.graph.setConnectable(!1)):"connect"==e?(this.graph.panningHandler.useLeftButtonForPanning=!1,this.graph.setConnectable(!0)):"pan"==e&&(this.graph.panningHandler.useLeftButtonForPanning=!0,this.graph.setConnectable(!1))},mxEditor.prototype.createPopupMenu=function(e,n,t){this.popupHandler.createMenu(this,e,n,t)},mxEditor.prototype.createEdge=function(e,n){var t=null;if(null!=this.defaultEdge)t=this.graph.getModel().cloneCell(this.defaultEdge);else{(t=new mxCell("")).setEdge(!0);var a=new mxGeometry;a.relative=!0,t.setGeometry(a)}return null!=(a=this.getEdgeStyle())&&t.setStyle(a),t},mxEditor.prototype.getEdgeStyle=function(){return this.defaultEdgeStyle},mxEditor.prototype.consumeCycleAttribute=function(e){return null!=this.cycleAttributeValues&&0<this.cycleAttributeValues.length&&this.graph.isSwimlane(e)?this.cycleAttributeValues[this.cycleAttributeIndex++%this.cycleAttributeValues.length]:null},mxEditor.prototype.cycleAttribute=function(e){if(null!=this.cycleAttributeName){var n=this.consumeCycleAttribute(e);null!=n&&e.setStyle(e.getStyle()+";"+this.cycleAttributeName+"="+n)}},mxEditor.prototype.addVertex=function(e,n,t,a){for(var i=this.graph.getModel();null!=e&&!this.graph.isValidDropTarget(e);)e=i.getParent(e);e=null!=e?e:this.graph.getSwimlaneAt(t,a);var s=this.graph.getView().scale,o=i.getGeometry(n),r=i.getGeometry(e);if(this.graph.isSwimlane(n)&&!this.graph.swimlaneNesting)e=null;else{if(null==e&&this.swimlaneRequired)return null;if(null!=e&&null!=r){var l=this.graph.getView().getState(e);if(null!=l){if(t-=l.origin.x*s,a-=l.origin.y*s,this.graph.isConstrainedMoving){r=o.width;var d=o.height,c=l.x+l.width;c<t+r&&(t-=t+r-c),(c=l.y+l.height)<a+d&&(a-=a+d-c)}}else null!=r&&(t-=r.x*s,a-=r.y*s)}}(o=o.clone()).x=this.graph.snap(t/s-this.graph.getView().translate.x-this.graph.gridSize/2),o.y=this.graph.snap(a/s-this.graph.getView().translate.y-this.graph.gridSize/2),n.setGeometry(o),null==e&&(e=this.graph.getDefaultParent()),this.cycleAttribute(n),this.fireEvent(new mxEventObject(mxEvent.BEFORE_ADD_VERTEX,"vertex",n,"parent",e)),i.beginUpdate();try{null!=(n=this.graph.addCell(n,e))&&(this.graph.constrainChild(n),this.fireEvent(new mxEventObject(mxEvent.ADD_VERTEX,"vertex",n)))}finally{i.endUpdate()}return null!=n&&(this.graph.setSelectionCell(n),this.graph.scrollCellToVisible(n),this.fireEvent(new mxEventObject(mxEvent.AFTER_ADD_VERTEX,"vertex",n))),n},mxEditor.prototype.destroy=function(){this.destroyed||(this.destroyed=!0,null!=this.tasks&&this.tasks.destroy(),null!=this.outline&&this.outline.destroy(),null!=this.properties&&this.properties.destroy(),null!=this.keyHandler&&this.keyHandler.destroy(),null!=this.rubberband&&this.rubberband.destroy(),null!=this.toolbar&&this.toolbar.destroy(),null!=this.graph&&this.graph.destroy(),this.templates=this.status=null)};var mxCodecRegistry={codecs:[],aliases:[],register:function(e){if(null!=e){var n=e.getName();mxCodecRegistry.codecs[n]=e;var t=mxUtils.getFunctionName(e.template.constructor);t!=n&&mxCodecRegistry.addAlias(t,n)}return e},addAlias:function(e,n){mxCodecRegistry.aliases[e]=n},getCodec:function(e){var n=null;if(null!=e){n=mxUtils.getFunctionName(e);var t=mxCodecRegistry.aliases[n];if(null!=t&&(n=t),null==(n=mxCodecRegistry.codecs[n]))try{n=new mxObjectCodec(new e),mxCodecRegistry.register(n)}catch(e){}}return n}};function mxCodec(e){this.document=e||mxUtils.createXmlDocument(),this.objects=[]}function mxObjectCodec(e,n,t,a){for(var i in this.template=e,this.exclude=null!=n?n:[],this.idrefs=null!=t?t:[],this.mapping=null!=a?a:[],this.reverse={},this.mapping)this.reverse[this.mapping[i]]=i}mxCodec.prototype.document=null,mxCodec.prototype.objects=null,mxCodec.prototype.encodeDefaults=!1,mxCodec.prototype.putObject=function(e,n){return this.objects[e]=n},mxCodec.prototype.getObject=function(e){var n=null;return null!=e&&(null==(n=this.objects[e])&&(null==(n=this.lookup(e))&&(null!=(e=this.getElementById(e))&&(n=this.decode(e))))),n},mxCodec.prototype.lookup=function(e){return null},mxCodec.prototype.getElementById=function(e,n){return mxUtils.findNodeByAttribute(this.document.documentElement,null!=n?n:"id",e)},mxCodec.prototype.getId=function(e){var n=null;return null!=e&&(null==(n=this.reference(e))&&e instanceof mxCell&&(null==(n=e.getId())&&(0==(n=mxCellPath.create(e)).length&&(n="root")))),n},mxCodec.prototype.reference=function(e){return null},mxCodec.prototype.encode=function(e){var n=null;if(null!=e&&null!=e.constructor){var t=mxCodecRegistry.getCodec(e.constructor);null!=t?n=t.encode(this,e):mxUtils.isNode(e)?n=mxClient.IS_IE?e.cloneNode(!0):this.document.importNode(e,!0):mxLog.warn("mxCodec.encode: No codec for "+mxUtils.getFunctionName(e.constructor))}return n},mxCodec.prototype.decode=function(a,b){var c=null;if(null!=a&&a.nodeType==mxConstants.NODETYPE_ELEMENT){var d=null;try{d=eval(a.nodeName)}catch(e){}try{var f=mxCodecRegistry.getCodec(d);null!=f?c=f.decode(this,a,b):(c=a.cloneNode(!0),c.removeAttribute("as"))}catch(e){mxLog.debug("Cannot decode "+a.nodeName+": "+e.message)}}return c},mxCodec.prototype.encodeCell=function(e,n,t){if(n.appendChild(this.encode(e)),null==t||t){t=e.getChildCount();for(var a=0;a<t;a++)this.encodeCell(e.getChildAt(a),n)}},mxCodec.prototype.isCellCodec=function(e){return null!=e&&"function"==typeof e.isCellCodec&&e.isCellCodec()},mxCodec.prototype.decodeCell=function(e,n){n=null==n||n;var t=null;if(null!=e&&e.nodeType==mxConstants.NODETYPE_ELEMENT){if(t=mxCodecRegistry.getCodec(e.nodeName),!this.isCellCodec(t))for(var a=e.firstChild;null!=a&&!this.isCellCodec(t);)t=mxCodecRegistry.getCodec(a.nodeName),a=a.nextSibling;this.isCellCodec(t)||(t=mxCodecRegistry.getCodec(mxCell)),t=t.decode(this,e),n&&this.insertIntoGraph(t)}return t},mxCodec.prototype.insertIntoGraph=function(e){var n=e.parent,t=e.getTerminal(!0),a=e.getTerminal(!1);e.setTerminal(null,!1),e.setTerminal(null,!0),(e.parent=null)!=n&&n.insert(e),null!=t&&t.insertEdge(e,!0),null!=a&&a.insertEdge(e,!1)},mxCodec.prototype.setAttribute=function(e,n,t){null!=n&&null!=t&&e.setAttribute(n,t)},mxObjectCodec.prototype.template=null,mxObjectCodec.prototype.exclude=null,mxObjectCodec.prototype.idrefs=null,mxObjectCodec.prototype.mapping=null,mxObjectCodec.prototype.reverse=null,mxObjectCodec.prototype.getName=function(){return mxUtils.getFunctionName(this.template.constructor)},mxObjectCodec.prototype.cloneTemplate=function(){return new this.template.constructor},mxObjectCodec.prototype.getFieldName=function(e){if(null!=e){var n=this.reverse[e];null!=n&&(e=n)}return e},mxObjectCodec.prototype.getAttributeName=function(e){if(null!=e){var n=this.mapping[e];null!=n&&(e=n)}return e},mxObjectCodec.prototype.isExcluded=function(e,n,t,a){return n==mxObjectIdentity.FIELD_NAME||0<=mxUtils.indexOf(this.exclude,n)},mxObjectCodec.prototype.isReference=function(e,n,t,a){return 0<=mxUtils.indexOf(this.idrefs,n)},mxObjectCodec.prototype.encode=function(e,n){var t=e.document.createElement(this.getName());return n=this.beforeEncode(e,n,t),this.encodeObject(e,n,t),this.afterEncode(e,n,t)},mxObjectCodec.prototype.encodeObject=function(e,n,t){for(var a in e.setAttribute(t,"id",e.getId(n)),n){var i=a,s=n[i];null!=s&&!this.isExcluded(n,i,s,!0)&&(mxUtils.isNumeric(i)&&(i=null),this.encodeValue(e,n,i,s,t))}},mxObjectCodec.prototype.encodeValue=function(e,n,t,a,i){if(null!=a){if(this.isReference(n,t,a,!0)){var s=e.getId(a);if(null==s)return void mxLog.warn("mxObjectCodec.encode: No ID for "+this.getName()+"."+t+"="+a);a=s}s=this.template[t],(null==t||e.encodeDefaults||s!=a)&&(t=this.getAttributeName(t),this.writeAttribute(e,n,t,a,i))}},mxObjectCodec.prototype.writeAttribute=function(e,n,t,a,i){"object"!=typeof a?this.writePrimitiveAttribute(e,n,t,a,i):this.writeComplexAttribute(e,n,t,a,i)},mxObjectCodec.prototype.writePrimitiveAttribute=function(e,n,t,a,i){a=this.convertValueToXml(a),null==t?(n=e.document.createElement("add"),"function"==typeof a?n.appendChild(e.document.createTextNode(a)):e.setAttribute(n,"value",a),i.appendChild(n)):"function"!=typeof a&&e.setAttribute(i,t,a)},mxObjectCodec.prototype.writeComplexAttribute=function(e,n,t,a,i){null!=(e=e.encode(a))?(null!=t&&e.setAttribute("as",t),i.appendChild(e)):mxLog.warn("mxObjectCodec.encode: No node for "+this.getName()+"."+t+": "+a)},mxObjectCodec.prototype.convertValueToXml=function(e){return void 0!==e.length||1!=e&&0!=e||(e=1==e?"1":"0"),e},mxObjectCodec.prototype.convertValueFromXml=function(e){return mxUtils.isNumeric(e)&&(e=parseFloat(e)),e},mxObjectCodec.prototype.beforeEncode=function(e,n,t){return n},mxObjectCodec.prototype.afterEncode=function(e,n,t){return t},mxObjectCodec.prototype.decode=function(e,n,t){var a=n.getAttribute("id"),i=e.objects[a];return null==i&&(i=t||this.cloneTemplate(),null!=a&&e.putObject(a,i)),n=this.beforeDecode(e,n,i),this.decodeNode(e,n,i),this.afterDecode(e,n,i)},mxObjectCodec.prototype.decodeNode=function(e,n,t){null!=n&&(this.decodeAttributes(e,n,t),this.decodeChildren(e,n,t))},mxObjectCodec.prototype.decodeAttributes=function(e,n,t){if(null!=(n=n.attributes))for(var a=0;a<n.length;a++)this.decodeAttribute(e,n[a],t)},mxObjectCodec.prototype.decodeAttribute=function(e,n,t){var a=n.nodeName;if("as"!=a&&"id"!=a){n="value"==a?n.nodeValue:this.convertValueFromXml(n.nodeValue);var i=this.getFieldName(a);if(this.isReference(t,i,n,!1)){if(null==(e=e.getObject(n)))return void mxLog.warn("mxObjectCodec.decode: No object for "+this.getName()+"."+a+"="+n);n=e}this.isExcluded(t,a,n,!1)||(t[a]=n)}},mxObjectCodec.prototype.decodeChildren=function(e,n,t){for(n=n.firstChild;null!=n;){var a=n.nextSibling;n.nodeType==mxConstants.NODETYPE_ELEMENT&&!this.processInclude(e,n,t)&&this.decodeChild(e,n,t),n=a}},mxObjectCodec.prototype.decodeChild=function(e,n,t){var a=this.getFieldName(n.getAttribute("as"));if(null==a||!this.isExcluded(t,a,n,!1)){var i=this.getFieldTemplate(t,a,n),s=null;"add"==n.nodeName?null==(s=n.getAttribute("value"))&&(s=mxUtils.eval(mxUtils.getTextContent(n))):s=e.decode(n,i),this.addObjectValue(t,a,s,i)}},mxObjectCodec.prototype.getFieldTemplate=function(e,n,t){return(e=e[n])instanceof Array&&0<e.length&&(e=null),e},mxObjectCodec.prototype.addObjectValue=function(e,n,t,a){null!=t&&t!=a&&(null!=n&&0<n.length?e[n]=t:e.push(t))},mxObjectCodec.prototype.processInclude=function(e,n,t){if("include"!=n.nodeName)return!1;if(null!=(n=n.getAttribute("name")))try{var a=mxUtils.load(n).getDocumentElement();null!=a&&e.decode(a,t)}catch(e){}return!0},mxObjectCodec.prototype.beforeDecode=function(e,n,t){return n},mxObjectCodec.prototype.afterDecode=function(e,n,t){return t},mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxCell,["children","edges","overlays","mxTransient"],["parent","source","target"]);return e.isCellCodec=function(){return!0},e.isExcluded=function(e,n,t,a){return mxObjectCodec.prototype.isExcluded.apply(this,arguments)||a&&"value"==n&&t.nodeType==mxConstants.NODETYPE_ELEMENT},e.afterEncode=function(e,n,t){if(null!=n.value&&n.value.nodeType==mxConstants.NODETYPE_ELEMENT){var a=t;(t=mxClient.IS_IE?n.value.cloneNode(!0):e.document.importNode(n.value,!0)).appendChild(a),e=a.getAttribute("id"),t.setAttribute("id",e),a.removeAttribute("id")}return t},e.beforeDecode=function(e,n,t){var a=n,i=this.getName();if(n.nodeName!=i?(null!=(a=n.getElementsByTagName(i)[0])&&a.parentNode==n?(mxUtils.removeWhitespace(a,!0),mxUtils.removeWhitespace(a,!1),a.parentNode.removeChild(a)):a=null,t.value=n.cloneNode(!0),null!=(n=t.value.getAttribute("id"))&&(t.setId(n),t.value.removeAttribute("id"))):t.setId(n.getAttribute("id")),null!=a)for(n=0;n<this.idrefs.length;n++){i=this.idrefs[n];var s=a.getAttribute(i);if(null!=s){a.removeAttribute(i);var o=e.objects[s]||e.lookup(s);null==o&&(null!=(s=e.getElementById(s))&&(o=(mxCodecRegistry.codecs[s.nodeName]||this).decode(e,s))),t[i]=o}}return a},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxGraphModel);return e.encodeObject=function(e,n,t){var a=e.document.createElement("root");e.encodeCell(n.getRoot(),a),t.appendChild(a)},e.decodeChild=function(e,n,t){"root"==n.nodeName?this.decodeRoot(e,n,t):mxObjectCodec.prototype.decodeChild.apply(this,arguments)},e.decodeRoot=function(e,n,t){var a=null;for(n=n.firstChild;null!=n;){var i=e.decodeCell(n);null!=i&&null==i.getParent()&&(a=i),n=n.nextSibling}null!=a&&t.setRoot(a)},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxRootChange,["model","previous","root"]);return e.afterEncode=function(e,n,t){return e.encodeCell(n.root,t),t},e.beforeDecode=function(e,n,t){if(null!=n.firstChild&&n.firstChild.nodeType==mxConstants.NODETYPE_ELEMENT){var a=(n=n.cloneNode(!0)).firstChild;for(t.root=e.decodeCell(a,!1),t=a.nextSibling,a.parentNode.removeChild(a),a=t;null!=a;)t=a.nextSibling,e.decodeCell(a),a.parentNode.removeChild(a),a=t}return n},e.afterDecode=function(e,n,t){return t.previous=t.root,t},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxChildChange,["model","child","previousIndex"],["parent","previous"]);return e.isReference=function(e,n,t,a){return!("child"!=n||null==e.previous&&a)||0<=mxUtils.indexOf(this.idrefs,n)},e.afterEncode=function(e,n,t){return this.isReference(n,"child",n.child,!0)?t.setAttribute("child",e.getId(n.child)):e.encodeCell(n.child,t),t},e.beforeDecode=function(e,n,t){if(null!=n.firstChild&&n.firstChild.nodeType==mxConstants.NODETYPE_ELEMENT){var a=(n=n.cloneNode(!0)).firstChild;for(t.child=e.decodeCell(a,!1),t=a.nextSibling,a.parentNode.removeChild(a),a=t;null!=a;){if(t=a.nextSibling,a.nodeType==mxConstants.NODETYPE_ELEMENT){var i=a.getAttribute("id");null==e.lookup(i)&&e.decodeCell(a)}a.parentNode.removeChild(a),a=t}}else a=n.getAttribute("child"),t.child=e.getObject(a);return n},e.afterDecode=function(e,n,t){return t.child.parent=t.previous,t.previous=t.parent,t.previousIndex=t.index,t},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxTerminalChange,["model","previous"],["cell","terminal"]);return e.afterDecode=function(e,n,t){return t.previous=t.terminal,t},e}());var mxGenericChangeCodec=function(e,a){var n=new mxObjectCodec(e,["model","previous"],["cell"]);return n.afterDecode=function(e,n,t){return mxUtils.isNode(t.cell)&&(t.cell=e.decodeCell(t.cell,!1)),t.previous=t[a],t},n};mxCodecRegistry.register(mxGenericChangeCodec(new mxValueChange,"value")),mxCodecRegistry.register(mxGenericChangeCodec(new mxStyleChange,"style")),mxCodecRegistry.register(mxGenericChangeCodec(new mxGeometryChange,"geometry")),mxCodecRegistry.register(mxGenericChangeCodec(new mxCollapseChange,"collapsed")),mxCodecRegistry.register(mxGenericChangeCodec(new mxVisibleChange,"visible")),mxCodecRegistry.register(mxGenericChangeCodec(new mxCellAttributeChange,"value")),mxCodecRegistry.register(new mxObjectCodec(new mxGraph,"graphListeners eventListeners view container cellRenderer editor selection".split(" "))),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxGraphView);return e.encode=function(e,n){return this.encodeCell(e,n,n.graph.getModel().getRoot())},e.encodeCell=function(e,n,t){var a=n.graph.getModel(),i=n.getState(t),s=a.getParent(t);if(null==s||null!=i){var o=a.getChildCount(t),r=n.graph.getCellGeometry(t),l=null;if(s==a.getRoot()?l="layer":null==s?l="graph":a.isEdge(t)?l="edge":0<o&&null!=r?l="group":a.isVertex(t)&&(l="vertex"),null!=l){var d=e.document.createElement(l);if(null!=n.graph.getLabel(t)&&(d.setAttribute("label",n.graph.getLabel(t)),n.graph.isHtmlLabel(t)&&d.setAttribute("html",!0)),null==s){var c=n.getGraphBounds();null!=c&&(d.setAttribute("x",Math.round(c.x)),d.setAttribute("y",Math.round(c.y)),d.setAttribute("width",Math.round(c.width)),d.setAttribute("height",Math.round(c.height))),d.setAttribute("scale",n.scale)}else if(null!=i&&null!=r){for(c in i.style)"function"==typeof(s=i.style[c])&&"object"==typeof s&&(s=mxStyleRegistry.getName(s)),null!=s&&"function"!=typeof s&&"object"!=typeof s&&d.setAttribute(c,s);if(null!=(s=i.absolutePoints)&&0<s.length){for(r=Math.round(s[0].x)+","+Math.round(s[0].y),c=1;c<s.length;c++)r+=" "+Math.round(s[c].x)+","+Math.round(s[c].y);d.setAttribute("points",r)}else d.setAttribute("x",Math.round(i.x)),d.setAttribute("y",Math.round(i.y)),d.setAttribute("width",Math.round(i.width)),d.setAttribute("height",Math.round(i.height));null!=(c=i.absoluteOffset)&&(0!=c.x&&d.setAttribute("dx",Math.round(c.x)),0!=c.y&&d.setAttribute("dy",Math.round(c.y)))}for(c=0;c<o;c++)null!=(i=this.encodeCell(e,n,a.getChildAt(t,c)))&&d.appendChild(i)}}return d},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxStylesheet);return e.encode=function(e,n){var t,a=e.document.createElement(this.getName());for(t in n.styles){var i=n.styles[t],s=e.document.createElement("add");if(null!=t){for(var o in s.setAttribute("as",t),i){var r=this.getStringValue(o,i[o]);if(null!=r){var l=e.document.createElement("add");l.setAttribute("value",r),l.setAttribute("as",o),s.appendChild(l)}}0<s.childNodes.length&&a.appendChild(s)}}return a},e.getStringValue=function(e,n){var t=typeof n;return"function"==t?n=mxStyleRegistry.getName(style[j]):"object"==t&&(n=null),n},e.decode=function(e,n,t){t=t||new this.template.constructor;var a=n.getAttribute("id");for(null!=a&&(e.objects[a]=t),n=n.firstChild;null!=n;){if(!this.processInclude(e,n,t)&&"add"==n.nodeName&&null!=(a=n.getAttribute("as"))){var i=n.getAttribute("extend"),s=null!=i?mxUtils.clone(t.styles[i]):null;for(null==s&&(null!=i&&mxLog.warn("mxStylesheetCodec.decode: stylesheet "+i+" not found to extend"),s={}),i=n.firstChild;null!=i;){if(i.nodeType==mxConstants.NODETYPE_ELEMENT){var o=i.getAttribute("as");if("add"==i.nodeName){var r=mxUtils.getTextContent(i),l=null;null!=r&&0<r.length?l=mxUtils.eval(r):(l=i.getAttribute("value"),mxUtils.isNumeric(l)&&(l=parseFloat(l))),null!=l&&(s[o]=l)}else"remove"==i.nodeName&&delete s[o]}i=i.nextSibling}t.putCellStyle(a,s)}n=n.nextSibling}return t},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxDefaultKeyHandler);return e.encode=function(e,n){return null},e.decode=function(e,n,t){if(null!=t)for(n=n.firstChild;null!=n;){if(!this.processInclude(e,n,t)&&"add"==n.nodeName){var a=n.getAttribute("as"),i=n.getAttribute("action"),s=n.getAttribute("control");t.bindAction(a,i,s)}n=n.nextSibling}return t},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxDefaultToolbar);return e.encode=function(e,n){return null},e.decode=function(e,n,t){if(null!=t){var a=t.editor;for(n=n.firstChild;null!=n;){if(n.nodeType==mxConstants.NODETYPE_ELEMENT&&!this.processInclude(e,n,t))if("separator"==n.nodeName)t.addSeparator();else if("br"==n.nodeName)t.toolbar.addBreak();else if("hr"==n.nodeName)t.toolbar.addLine();else if("add"==n.nodeName){var i=n.getAttribute("as"),s=(i=mxResources.get(i)||i,n.getAttribute("icon")),o=n.getAttribute("pressedIcon"),r=n.getAttribute("action"),l=n.getAttribute("mode"),d=n.getAttribute("template"),c="0"!=n.getAttribute("toggle"),m=mxUtils.getTextContent(n),u=null;if(null!=r)u=t.addItem(i,s,r,o);else if(null!=l){var p=mxUtils.eval(m);u=t.addMode(i,s,l,o,p)}else if(null!=d||null!=m&&0<m.length)u=a.templates[d],d=n.getAttribute("style"),null!=u&&null!=d&&(u=u.clone()).setStyle(d),(d=null)!=m&&0<m.length&&(d=mxUtils.eval(m)),u=t.addPrototype(i,s,u,o,d,c);else if(0<(o=mxUtils.getChildNodes(n)).length)if(null==s)for(d=t.addActionCombo(i),i=0;i<o.length;i++)"separator"==(c=o[i]).nodeName?t.addOption(d,"---"):"add"==c.nodeName&&(s=c.getAttribute("as"),c=c.getAttribute("action"),t.addActionOption(d,s,c));else{var g=null,v=t.addPrototype(i,s,function(){if(null==(e=a.templates[g.value]))return mxLog.warn("Template "+e+" not found"),null;var e=e.clone(),n=g.options[g.selectedIndex].cellStyle;return null!=n&&e.setStyle(n),e},null,null,c);g=t.addCombo();for(mxEvent.addListener(g,"change",function(){t.toolbar.selectMode(v,function(e){return e=mxUtils.convertPoint(a.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e)),a.addVertex(null,p(),e.x,e.y)}),t.toolbar.noReset=!1}),i=0;i<o.length;i++)"separator"==(c=o[i]).nodeName?t.addOption(g,"---"):"add"==c.nodeName&&(s=c.getAttribute("as"),m=c.getAttribute("template"),t.addOption(g,s,m||d).cellStyle=c.getAttribute("style"))}null!=u&&(null!=(d=n.getAttribute("id"))&&0<d.length&&u.setAttribute("id",d))}n=n.nextSibling}}return t},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxDefaultPopupMenu);return e.encode=function(e,n){return null},e.decode=function(e,n,t){var a=n.getElementsByTagName("include")[0];return null!=a?this.processInclude(e,a,t):null!=t&&(t.config=n),t},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxEditor,"modified lastSnapshot ignoredChanges undoManager graphContainer toolbarContainer".split(" "));return e.afterDecode=function(e,n,t){return null!=(e=n.getAttribute("defaultEdge"))&&(n.removeAttribute("defaultEdge"),t.defaultEdge=t.templates[e]),null!=(e=n.getAttribute("defaultGroup"))&&(n.removeAttribute("defaultGroup"),t.defaultGroup=t.templates[e]),t},e.decodeChild=function(e,n,t){if("Array"==n.nodeName){if("templates"==n.getAttribute("as"))return void this.decodeTemplates(e,n,t)}else if("ui"==n.nodeName)return void this.decodeUi(e,n,t);mxObjectCodec.prototype.decodeChild.apply(this,arguments)},e.decodeUi=function(e,n,t){for(e=n.firstChild;null!=e;){if("add"==e.nodeName){n=e.getAttribute("as");var a=e.getAttribute("element"),i=e.getAttribute("style"),s=null;if(null!=a)null!=(s=document.getElementById(a))&&null!=i&&(s.style.cssText+=";"+i);else{a=parseInt(e.getAttribute("x"));var o=parseInt(e.getAttribute("y")),r=e.getAttribute("width"),l=e.getAttribute("height");(s=document.createElement("div")).style.cssText=i,new mxWindow(mxResources.get(n)||n,s,a,o,r,l,!1,!0).setVisible(!0)}"graph"==n?t.setGraphContainer(s):"toolbar"==n?t.setToolbarContainer(s):"title"==n?t.setTitleContainer(s):"status"==n?t.setStatusContainer(s):"map"==n&&t.setMapContainer(s)}else"resource"==e.nodeName?mxResources.add(e.getAttribute("basename")):"stylesheet"==e.nodeName&&mxClient.link("stylesheet",e.getAttribute("name"));e=e.nextSibling}},e.decodeTemplates=function(e,n,t){null==t.templates&&(t.templates=[]),n=mxUtils.getChildNodes(n);for(var a=0;a<n.length;a++){for(var i=n[a].getAttribute("as"),s=n[a].firstChild;null!=s&&1!=s.nodeType;)s=s.nextSibling;null!=s&&(t.templates[i]=e.decodeCell(s))}},e}()),EditorUi=function(e,n,t){this.projectDesignController=e,this.editor=n||new Editor,this.container=t||document.body;var a=n.graph,i=this;CRUD_PERMISSIONS=this.projectDesignController.crudPermissions;var s=mxUtils.bind(this,function(e){return null==e&&(e=window.event),!!this.isEditingEnabled()&&a.isEditing()});this.container.style.overflow="hidden",(new Image).src=mxPopupMenu.prototype.submenuImage,null!=mxConnectionHandler.prototype.connectImage&&((new Image).src=mxConnectionHandler.prototype.connectImage.src),this.actions=new Actions(this),this.menus=new Menus(this),this.createDivs(),this.refresh(),this.createUi(),this.container==document.body&&(this.menubarContainer.onselectstart=s,this.menubarContainer.onmousedown=s,this.toolbarContainer.onselectstart=s,this.toolbarContainer.onmousedown=s,this.diagramContainer.onselectstart=s,this.diagramContainer.onmousedown=s,this.sidebarContainer.onselectstart=s,this.sidebarContainer.onmousedown=s,this.footerContainer.onselectstart=s,this.footerContainer.onmousedown=s),mxClient.IS_IE&&(void 0===document.documentMode||document.documentMode<9)?(mxEvent.addListener(this.diagramContainer,"contextmenu",s),mxEvent.addListener(this.sidebarContainer,"contextmenu",s)):(this.diagramContainer.oncontextmenu=s,this.sidebarContainer.oncontextmenu=s),a.init(this.diagramContainer),a.refresh(),a.setEnabled(this.isEditingEnabled()),a.container.setAttribute("tabindex","0"),a.container.style.cursor="default",a.container.style.backgroundImage="url("+n.gridImage+")",a.container.style.backgroundPosition="-1px -1px",a.container.focus();var o=a.fireMouseEvent;a.fireMouseEvent=function(e,n,t){e==mxEvent.MOUSE_DOWN&&this.container.focus(),o.apply(this,arguments)},this.createMultiplicities(a.multiplicities,["start","finally","end"],[[1,1],[1,1],[0,0]],[[0,0],[0,0],[1,"n"]]),this.createMultiplicities(a.multiplicities,["answer","hangup","dial","ext_dial","queue","voicemail","callback"],[[1,1],[0,0],[0,1],[0,1],[0,1],[1,1],[0,1]],[[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"]]),this.createMultiplicities(a.multiplicities,["login","pause","unpause","logout"],[[1,2],[1,2],[1,2],[1,2]],[[1,"n"],[1,"n"],[1,"n"],[1,"n"]]),this.createMultiplicities(a.multiplicities,["set","math"],[[1,1],[1,1]],[[1,"n"],[1,"n"]]),this.createMultiplicities(a.multiplicities,["background","playback","menu","saydigits","saynumber","sayphonetic","google_cloud_tts","tts","ispeechtts","awspolly","getdigits","getsecretdigits","lumenvoxtts","sestektts","mrcpsynth"],[[1,"n"],[1,1],[1,"n"],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,"n"],[1,"n"],[1,1],[1,1],[1,1]],[[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"]]),this.createMultiplicities(a.multiplicities,["record"],[[1,1]],[[1,"n"]]),this.createMultiplicities(a.multiplicities,["database","ispeechasr","sendSMS","sendMail","sendFax","googleasr","lumenvoxasr","tildeasr","dialogflow","dialogflowV2","awslex","sesteknda","sestekasr","restapi","mrcprecog"],[[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1]],[[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"]]),this.createMultiplicities(a.multiplicities,["gotoc","gotoif","gotoiftime","vswitch"],[[0,0],[1,2],[1,2],[1,"n"]],[[1,"n"],[1,"n"],[1,"n"],[1,"n"]]),this.createMultiplicities(a.multiplicities,["queuelog","goal"],[[1,1],[1,1]],[[1,"n"],[1,"n"]]),this.createMultiplicities(a.multiplicities,["noop","system","agi","subproject","custom_app"],[[1,1],[1,1],[0,1],[0,1],[0,1]],[[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"]]),a.dblClick=function(e,t){var n=new mxEventObject(mxEvent.DOUBLE_CLICK,"event",e,"cell",t);this.fireEvent(n),mxEvent.isConsumed(e)||n.isConsumed()||(this.getModel().isEdge(t)?0<=["background","gotoif","gotoiftime","menu","getdigits","getsecretdigits","vswitch","login","pause","unpause","logout"].indexOf(t.source.value.tagName)&&this.startEditingAtCell(t):this.getModel().isVertex(t)&&i.projectDesignController.openDialog(t.getValue(),function(e){for(var n=0;n<e.length;n+=1)t.setAttribute(e[n].name,e[n].value);a.refresh(t)}),n.consume())},a.panningHandler.autoExpand=!0,a.panningHandler.factoryMethod=mxUtils.bind(this,function(e,n,t){this.isEditingEnabled()&&this.menus.createPopupMenu(e,n,t)}),n.outline.init(this.outlineContainer),mxEvent.addGestureListeners(document,mxUtils.bind(this,function(e){a.panningHandler.hideMenu()})),mxClient.IS_TOUCH&&(mxEvent.addListener(a.container,"gesturechange",mxUtils.bind(this,function(e){a.view.getDrawPane().setAttribute("transform","scale("+e.scale+")"),a.view.getOverlayPane().style.visibility="hidden"})),mxEvent.addListener(a.container,"gestureend",mxUtils.bind(this,function(e){a.view.getDrawPane().removeAttribute("transform"),a.zoomToCenter=!0,a.zoom(e.scale),a.view.getOverlayPane().style.visibility="visible"})));var r=this.isEditingEnabled()?this.createKeyHandler(n):null;this.getKeyHandler=function(){return r},mxEvent.addListener(window,"resize",mxUtils.bind(this,function(){this.refresh(),a.sizeDidChange(),this.editor.outline.update(!1),this.editor.outline.outline.sizeDidChange()})),this.init(),this.open(),this.refresh()},EditorUi.prototype.splitSize=mxClient.IS_TOUCH?16:8,EditorUi.prototype.menubarHeight=33,EditorUi.prototype.toolbarHeight=36,EditorUi.prototype.footerHeight=0,EditorUi.prototype.hsplitPosition=204,EditorUi.prototype.vsplitPosition=190,EditorUi.prototype.init=function(){this.addUndoListener(),this.addSelectionListener();var e=this.actions.get("paste"),n=function(){e.setEnabled(!mxClipboard.isEmpty())},t=mxClipboard.cut;mxClipboard.cut=function(){t.apply(this,arguments),n()};var a=mxClipboard.copy;mxClipboard.copy=function(){a.apply(this,arguments),n()}},EditorUi.prototype.isEditingEnabled=function(){return!!CRUD_PERMISSIONS.canEdit},EditorUi.prototype.exportXML=function(e){var n=window.document.createElement("a");n.href="data:attachment/text;charset=utf-8,"+encodeURIComponent(e),n.download=this.editor.filename+".xml",n.target="_self",n.click()},EditorUi.prototype.open=function(){try{null!=window.opener&&null!=window.opener.openFile&&window.opener.openFile.setConsumer(mxUtils.bind(this,function(e,n){try{var t=mxUtils.parseXml(e);this.editor.setGraphXml(t.documentElement),this.editor.modified=!1,this.editor.undoManager.clear(),null!=n&&(this.editor.filename=n)}catch(e){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+e.message)}}))}catch(e){}},EditorUi.prototype.openString=function(e,n,t){try{var a=mxUtils.parseXml(e);this.editor.setGraphXml(a.documentElement),this.editor.modified=!1,this.editor.undoManager.clear(),null!=n&&(this.editor.filename=n),null!=t&&(this.editor.data=t)}catch(e){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+e.message)}},EditorUi.prototype.validate=function(e,n){for(var t=this.editor.graph,a=(e=null!=e?e:t.model.getRoot(),n=null!=n?n:{},!0),i=t.model.getChildCount(e),s=0;s<i;s++){var o=t.model.getChildAt(e,s),r=n;t.isValidRoot(o)&&(r={}),null!=(r=this.validate(o,r))?t.setCellWarning(o,r.replace(/\n/g,"<br>")):t.setCellWarning(o,null),a=a&&null==r}if(i="",t.model.isVertex(e))switch(e.value.nodeName){case"start":i=this.validateBlock("start")?"":"Only one Start block is allowed\n";break;case"finally":i=this.validateBlock("finally")?"":"Only one Finally block is allowed\n";break;case"playback":i=0<e.value.getAttribute("file_id")?"":mxResources.get("noAudioSelected")+"\n";break;case"answer":i=0<=e.value.getAttribute("timeout")?"":mxResources.get("invalidTimeout")+"\n";break;case"menu":i=0<e.value.getAttribute("file_id")?"":mxResources.get("noAudioSelected")+"\n",i+=0<e.value.getAttribute("digit")?"":mxResources.get("wrongMaxDigit")+"\n",i+=0<=e.value.getAttribute("response")?"":mxResources.get("invalidTimeout")+"\n",i+=0<=e.value.getAttribute("retry")?"":mxResources.get("invalidRetry")+"\n";break;case"getdigits":i=0<e.value.getAttribute("file_id")?"":mxResources.get("noAudioSelected")+"\n",i+=0<e.value.getAttribute("variable_id")?"":mxResources.get("noVariableSelected")+"\n",i+=0<e.value.getAttribute("mindigit")?"":mxResources.get("wrongMinDigit")+"\n",i+=0<e.value.getAttribute("maxdigit")?"":mxResources.get("wrongMaxDigit")+"\n",i+=0<=e.value.getAttribute("retry")?"":mxResources.get("invalidRetry")+"\n";break;case"getsecretdigits":i=0<e.value.getAttribute("file_id")?"":mxResources.get("noAudioSelected")+"\n",i+=0<e.value.getAttribute("variable_id")?"":mxResources.get("noVariableSelected")+"\n",i+=0<e.value.getAttribute("mindigit")?"":mxResources.get("wrongMinDigit")+"\n",i+=0<e.value.getAttribute("maxdigit")?"":mxResources.get("wrongMaxDigit")+"\n",i+=0<=e.value.getAttribute("hiddendigitsnum")?"":mxResources.get("wrongHiddenDigitsnum")+"\n",i+=0<=e.value.getAttribute("retry")?"":mxResources.get("invalidRetry")+"\n";break;case"vswitch":i=0<e.value.getAttribute("variable_id")?"":mxResources.get("noVariableSelected")+"\n";break;case"database":i=0<e.value.getAttribute("odbc_id")?"":mxResources.get("noDatabaseSelected")+"\n",i+=""!==e.value.getAttribute("query")?"":mxResources.get("missingQuery")+"\n";break;case"set":case"math":i=0<e.value.getAttribute("variable_id")?"":mxResources.get("noVariableSelected")+"\n";break;case"gotoc":i=""!==e.value.getAttribute("context")?"":mxResources.get("noContextSelected")+"\n",i+=""!==e.value.getAttribute("extension")?"":mxResources.get("noExtensionSelected")+"\n",i+=1<=e.value.getAttribute("priority")?"":mxResources.get("invalidPriority")+"\n";break;case"system":case"agi":i=""!==e.value.getAttribute("command")?"":mxResources.get("noCommandSelected")+"\n";break;case"gotoif":i=""!==e.value.getAttribute("condition")?"":mxResources.get("noConditionSelected")+"\n";break;case"saydigits":i=""!==e.value.getAttribute("digits")?"":mxResources.get("noDigitsSelected")+"\n";break;case"saynumber":i=""!==e.value.getAttribute("number")?"":mxResources.get("noNumberSelected")+"\n";break;case"sayphonetic":i=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n";break;case"record":i=""!==e.value.getAttribute("file")?"":mxResources.get("noFileSelected")+"\n",i+=-1<=e.value.getAttribute("timeout")?"":mxResources.get("invalidTimeout")+"\n";break;case"goal":i=""!==e.value.getAttribute("goalname")?"":mxResources.get("noGoalSelected")+"\n";break;case"ext_dial":i="-1"!==e.value.getAttribute("trunk_name")?"":mxResources.get("noTrunkSelected")+"\n",i+=""!==e.value.getAttribute("phone")?"":mxResources.get("noIdentifierSelected")+"\n",i+=0<=e.value.getAttribute("timeout")?"":mxResources.get("invalidTimeout")+"\n";break;case"dial":i=0<e.value.getAttribute("sip_id")?"":mxResources.get("noIdentifierSelected")+"\n",i+=0<=e.value.getAttribute("timeout")?"":mxResources.get("invalidTimeout")+"\n";break;case"queue":i="-1"!==e.value.getAttribute("queue_id")?"":mxResources.get("noQueueSelected")+"\n",i+=0<=e.value.getAttribute("timeout")?"":mxResources.get("invalidTimeout")+"\n";break;case"callback":i="-1"!==e.value.getAttribute("list_id")?"":mxResources.get("noListSelected")+"\n",i+=""!==e.value.getAttribute("name")?"":mxResources.get("noFirstNameSelected")+"\n",i+=""!==e.value.getAttribute("phone")?"":mxResources.get("noPhoneSelected")+"\n",i+=""!==e.value.getAttribute("delay")?"":mxResources.get("invalidDelay")+"\n";break;case"gotoiftime":i=0<e.value.getAttribute("interval_id")?"":mxResources.get("noIntervalSelected")+"\n";break;case"voicemail":i=""!==e.value.getAttribute("mailbox")?"":mxResources.get("noBoxNumberSelected")+"\n";break;case"subproject":i=0<e.value.getAttribute("project_id")?"":mxResources.get("noProjectSelected")+"\n";break;case"sendSMS":i=0<e.value.getAttribute("sms_account_id")?"":mxResources.get("noAccountSelected")+"\n",i+=""!==e.value.getAttribute("to")?"":mxResources.get("noRecipientSelected")+"\n",i+=""!==e.value.getAttribute("sms_text")?"":mxResources.get("noTextSelected")+"\n";break;case"sendMail":i=0<e.value.getAttribute("account_id")?"":mxResources.get("noAccountSelected")+"\n",i+=""!==e.value.getAttribute("to")?"":mxResources.get("noRecipientSelected")+"\n";break;case"sendFax":i=0<e.value.getAttribute("account_id")?"":mxResources.get("noAccountSelected")+"\n",i+=""!==e.value.getAttribute("to")?"":mxResources.get("noRecipientSelected")+"\n",i+=""!==e.value.getAttribute("attachment_path")?"":mxResources.get("noAttachmentSelected")+"\n";break;case"google_cloud_tts":i=""!==e.value.getAttribute("apiKey")?"":mxResources.get("noApiKeySelected")+"\n",i+=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n";break;case"tts":i=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n";break;case"awspolly":i=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n",i+=""!==e.value.getAttribute("aws_access_key_id")?"":mxResources.get("noAccessKeySelected")+"\n",i+=""!==e.value.getAttribute("aws_secret_access_key")?"":mxResources.get("noSecretAccessKeySelected")+"\n";break;case"awslex":i=""!==e.value.getAttribute("aws_bot_name")?"":mxResources.get("noNameSelected")+"\n",i+=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n",i+=""!==e.value.getAttribute("aws_access_key_id")?"":mxResources.get("noAccessKeySelected")+"\n",i+=""!==e.value.getAttribute("aws_secret_access_key")?"":mxResources.get("noSecretAccessKeySelected")+"\n";break;case"ispeechtts":i=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n",i+=""!==e.value.getAttribute("key")?"":mxResources.get("noKeySelected")+"\n",i+=-10<=e.value.getAttribute("speed")&&e.value.getAttribute("speed")<=10?"":mxResources.get("invalidSpeed")+"\n";break;case"lumenvoxtts":case"sestektts":i=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n";break;case"lumenvoxasr":case"sestekasr":i=""!==e.value.getAttribute("grammar")?"":mxResources.get("noGrammarSelected")+"\n";break;case"ispeechasr":case"googleasr":i=""!==e.value.getAttribute("key")?"":mxResources.get("noKeySelected")+"\n",i+=-1<=e.value.getAttribute("timeout")?"":mxResources.get("invalidTimeout")+"\n";break;case"tildeasr":i=""!==e.value.getAttribute("appid")?"":mxResources.get("noAppIdInserted")+"\n",i+=""!==e.value.getAttribute("appsecret")?"":mxResources.get("noAppSecretInserted")+"\n",i+=""!==e.value.getAttribute("uri")?"":mxResources.get("noUrlInserted")+"\n";break;case"custom_app":i=""!==e.value.getAttribute("application")?"":mxResources.get("noApplicationSelected")+"\n";break;case"login":case"pause":case"unpause":case"logout":i=""!==e.value.getAttribute("findBy")?"":mxResources.get("noFindBySelected")+"\n";break;case"sesteknda":i=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n",i+=""!==e.value.getAttribute("ndauth_url")?"":mxResources.get("noUrlInserted")+"\n",i+=""!==e.value.getAttribute("ndassistant_url")?"":mxResources.get("noUrlInserted")+"\n",i+=""!==e.value.getAttribute("username")?"":mxResources.get("noUsernameSelected")+"\n",i+=""!==e.value.getAttribute("password")?"":mxResources.get("noPasswordSelected")+"\n";break;case"restapi":i=""!==e.value.getAttribute("url")?"":mxResources.get("noUrlSelected")+"\n",i+=""!==e.value.getAttribute("method")?"":mxResources.get("noMethodSelected")+"\n";case"mrcpsynth":i=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n";break;case"mrcprecog":i=""!==e.value.getAttribute("grammar")?"":mxResources.get("noGrammarSelected")+"\n";break;case"dialogflow":i=""!==e.value.getAttribute("key")?"":mxResources.get("noKeySelected")+"\n",i+=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n",i+=""!==e.value.getAttribute("dialogflow_language")?"":mxResources.get("noDialogflowLanguageSelected")+"\n";break;case"dialogflowV2":i=""!==e.value.getAttribute("dialogflowV2_project_id")?"":mxResources.get("noDialogflowProjectSelected")+"\n",i+=""!==e.value.getAttribute("client_email")?"":mxResources.get("noClientEmailSelected")+"\n",i+=""!==e.value.getAttribute("private_key")?"":mxResources.get("noPrivateKeySelected")+"\n",i+=""!==e.value.getAttribute("dialogflowV2_language")?"":mxResources.get("noDialogflowLanguageSelected")+"\n",i+=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n"}if(t.model.isEdge(e))switch(t.model.getCell(e.source.getId()).value.nodeName){case"background":case"menu":if(void 0!==e.getValue()){var l=/^[0-9]+$|^[-]{1}$|^[i]{1}$|^[t]{1}$|^[*]{1}$|^[#]{1}$/;String(e.getValue()).split(",").forEach(function(e){i+=l.test(e)?"":mxResources.get("numberOrAll")+"\n"})}else i=i+mxResources.get("numberOrAll")+"\n";break;case"getsecretdigits":case"getdigits":if(void 0!==e.getValue())i+=(l=/^(x|i|-)$/).test(String(e.getValue()))?"":mxResources.get("numberOrInvalidOrDefault")+"\n";else i=i+mxResources.get("numberOrInvalidOrDefault")+"\n";break;case"gotoif":case"gotoiftime":if(void 0!==e.getValue())i+=(l=/^(true){1}$|^(false){1}$/).test(String(e.getValue()))?"":mxResources.get("trueOrFalse")+"\n";else i=i+mxResources.get("trueOrFalse")+"\n";break;case"login":case"pause":case"unpause":case"logout":if(void 0!==e.getValue())i+=(l=/^(success){1}$|^(failure){1}$/).test(String(e.getValue()))?"":mxResources.get("successOrFailure")+"\n";else i=i+mxResources.get("successOrFailure")+"\n"}return t.isCellCollapsed(e)&&!a&&(i+=(mxResources.get(t.containsValidationErrorsResource)||t.containsValidationErrorsResource)+"\n"),i=t.model.isEdge(e)?i+(t.getEdgeValidationError(e,t.model.getTerminal(e,!0),t.model.getTerminal(e,!1))||""):i+(t.getCellValidationError(e)||""),null!=(s=t.validateCell(e,n))&&(i+=s),null==t.model.getParent(e)&&t.view.validate(),0<i.length||!a?i:null},EditorUi.prototype.validateBlock=function(n){var t=this.editor.graph,e=t.getDefaultParent(),a=0;return e.children.forEach(function(e){t.model.isVertex(e)&&e.value.nodeName==n&&a++}),!(1<a)},EditorUi.prototype.getUrl=function(e){var n=null!=e?e:window.location.pathname,t=0<n.indexOf("?")?1:0;for(var a in urlParams)n+=0==t?"?":"&",n+=a+"="+urlParams[a],t++;return n},EditorUi.prototype.addUndoListener=function(){var e=this.actions.get("undo"),n=this.actions.get("redo"),t=this.editor.undoManager,a=function(){e.setEnabled(t.canUndo()),n.setEnabled(t.canRedo())};t.addListener(mxEvent.ADD,a),t.addListener(mxEvent.UNDO,a),t.addListener(mxEvent.REDO,a),t.addListener(mxEvent.CLEAR,a),a()},EditorUi.prototype.addSelectionListener=function(){var e=mxUtils.bind(this,function(){var e=this.editor.graph,n=!e.isSelectionEmpty(),t=!1,a=!1,i=e.getSelectionCells();if(null!=i)for(var s=0;s<i.length;s++){var o=i[s];if(e.getModel().isEdge(o)&&(a=!0),e.getModel().isVertex(o)&&(t=!0),a&&t)break}var r=["cut","copy","delete","duplicate","bold","italic","style","underline","toFront","toBack","dashed","rounded","shadow","tilt","autosize"];for(s=0;s<r.length;s++)this.actions.get(r[s]).setEnabled(n);this.actions.get("curved").setEnabled(a),this.actions.get("rotation").setEnabled(t),this.actions.get("wordWrap").setEnabled(t),this.actions.get("group").setEnabled(1<e.getSelectionCount()),this.actions.get("ungroup").setEnabled(1==e.getSelectionCount()&&0<e.getModel().getChildCount(e.getSelectionCell()));var l=t&&1==e.getSelectionCount();this.actions.get("removeFromGroup").setEnabled(l&&e.getModel().isVertex(e.getModel().getParent(e.getSelectionCell())));var d=["fontFamily","fontSize","alignment","position","text","format","arrange","linewidth","spacing"];for(s=0;s<d.length;s++)this.menus.get(d[s]).setEnabled(n);d=["line","lineend","linestart"];for(s=0;s<d.length;s++)this.menus.get(d[s]).setEnabled(a);this.actions.get("setAsDefaultEdge").setEnabled(a),this.menus.get("align").setEnabled(1<e.getSelectionCount()),this.menus.get("direction").setEnabled(t||a&&e.isLoop(e.view.getState(e.getSelectionCell()))),this.menus.get("navigation").setEnabled(e.foldingEnabled&&(null!=e.view.currentRoot||1==e.getSelectionCount()&&e.isValidRoot(e.getSelectionCell()))),this.actions.get("home").setEnabled(null!=e.view.currentRoot),this.actions.get("exitGroup").setEnabled(null!=e.view.currentRoot);var c=1==e.getSelectionCount()&&e.isValidRoot(e.getSelectionCell());this.actions.get("enterGroup").setEnabled(c),this.actions.get("expand").setEnabled(c),this.actions.get("collapse").setEnabled(c),this.actions.get("editLink").setEnabled(1==e.getSelectionCount()),this.actions.get("openLink").setEnabled(1==e.getSelectionCount()&&null!=e.getLinkForCell(e.getSelectionCell()))});this.editor.graph.getSelectionModel().addListener(mxEvent.CHANGE,e),e()},EditorUi.prototype.refresh=function(){var e=mxClient.IS_IE&&(null==document.documentMode||5==document.documentMode),n=this.container.clientWidth+390,t=this.container.clientHeight+190;this.container==document.body&&(n=document.body.clientWidth||document.documentElement.clientWidth,t=e&&document.body.clientHeight||document.documentElement.clientHeight);var a=Math.max(0,Math.min(this.hsplitPosition,n-this.splitSize-20)),i=Math.max(0,Math.min(this.vsplitPosition,t-this.menubarHeight-this.toolbarHeight-this.splitSize-1));this.menubarContainer.style.height=this.menubarHeight+"px",this.toolbarContainer.style.top=this.menubarHeight+"px",this.toolbarContainer.style.height=this.toolbarHeight+"px";var s=this.menubarHeight+this.toolbarHeight;if(mxClient.IS_QUIRKS||(s+=1),this.sidebarContainer.style.top=s+"px",this.sidebarContainer.style.width=a+"px",this.outlineContainer.style.width=a+"px",this.outlineContainer.style.height=i+"px",this.diagramContainer.style.left=this.isEditingEnabled()?a+this.splitSize+"px":"0px",this.diagramContainer.style.top=this.sidebarContainer.style.top,this.hsplit.style.top=this.sidebarContainer.style.top,this.hsplit.style.bottom=this.outlineContainer.style.bottom,this.hsplit.style.left=a+"px",this.vsplit.style.width=this.sidebarContainer.style.width,this.vsplit.style.bottom=i+this.footerHeight+"px",e){this.menubarContainer.style.width=n+"px",this.toolbarContainer.style.width=this.menubarContainer.style.width;var o=t-i-this.splitSize-this.menubarHeight-this.toolbarHeight;this.sidebarContainer.style.height=o+"px",this.diagramContainer.style.width=n-a-this.splitSize+"px";var r=t-this.menubarHeight-this.toolbarHeight;this.diagramContainer.style.height=r+"px",this.hsplit.style.height=r+"px"}else this.sidebarContainer.style.bottom=i+this.splitSize+"px",this.diagramContainer.style.bottom=this.outlineContainer.style.bottom},EditorUi.prototype.createDivs=function(){this.menubarContainer=this.createDiv("geMenubarContainer"),this.toolbarContainer=this.createDiv("geToolbarContainer"),this.sidebarContainer=this.createDiv("geSidebarContainer"),this.outlineContainer=this.createDiv("geOutlineContainer"),this.diagramContainer=this.createDiv("geDiagramContainer"),this.footerContainer=this.createDiv("geFooterContainer"),this.hsplit=this.createDiv("geHsplit"),this.vsplit=this.createDiv("geVsplit"),this.menubarContainer.style.top="0px",this.menubarContainer.style.left="0px",this.menubarContainer.style.right="0px",this.toolbarContainer.style.left="0px",this.toolbarContainer.style.right="0px",this.sidebarContainer.style.left="0px",this.outlineContainer.style.bottom="0px",this.outlineContainer.style.left="0px",this.diagramContainer.style.overflow="scroll",this.diagramContainer.style.right="0px",this.footerContainer.style.left="0px",this.footerContainer.style.right="0px",this.footerContainer.style.bottom="0px",this.vsplit.style.left="0px",this.vsplit.style.height=this.splitSize+"px",this.hsplit.style.width=this.splitSize+"px"},EditorUi.prototype.createUi=function(){this.menubar=this.menus.createMenubar(this.createDiv("geMenubar")),this.menubarContainer.appendChild(this.menubar.container),this.toolbar=this.createToolbar(this.createDiv("geToolbar")),this.toolbarContainer.appendChild(this.toolbar.container),this.sidebar=this.createSidebar(this.sidebarContainer),this.footerContainer.appendChild(this.createFooter()),this.statusContainer=this.createStatusContainer(),this.editor.addListener("statusChanged",mxUtils.bind(this,function(){this.setStatusText(this.editor.getStatus())})),this.setStatusText(this.editor.getStatus()),this.menubar.container.appendChild(this.statusContainer),this.isEditingEnabled()&&(this.container.appendChild(this.sidebarContainer),this.container.appendChild(this.hsplit),this.container.appendChild(this.vsplit)),this.container.appendChild(this.diagramContainer),this.container.appendChild(this.menubarContainer),this.container.appendChild(this.toolbarContainer),this.container.appendChild(this.outlineContainer),this.container.appendChild(this.footerContainer),this.addSplitHandler(this.hsplit,!0,0,mxUtils.bind(this,function(e){this.hsplitPosition=e,this.refresh(),this.editor.graph.sizeDidChange(),this.editor.outline.update(!1),this.editor.outline.outline.sizeDidChange()})),this.addSplitHandler(this.vsplit,!1,this.footerHeight,mxUtils.bind(this,function(e){this.vsplitPosition=e,this.refresh(),this.editor.outline.update(!1),this.editor.outline.outline.sizeDidChange()}))},EditorUi.prototype.createStatusContainer=function(){var e=document.createElement("a");return e.className="geItem geStatus",e},EditorUi.prototype.createStatusContainer=function(){var e=document.createElement("a");return e.className="geItem geStatus",e},EditorUi.prototype.setStatusText=function(e){this.statusContainer.innerHTML=e},EditorUi.prototype.createToolbar=function(e){return new Toolbar(this,e)},EditorUi.prototype.createSidebar=function(e){return new Sidebar(this,e)},EditorUi.prototype.createFooter=function(){return this.createDiv("geFooter")},EditorUi.prototype.createDiv=function(e){var n=document.createElement("div");return n.className=e,n},EditorUi.prototype.createHeader=function(e){return document.createElement(e)},EditorUi.prototype.createForm=function(e){var n=document.createElement("form");return n.className=e,n},EditorUi.prototype.addSplitHandler=function(n,t,a,i){var s=null,o=null;function r(e){if(null!=s){var n=new mxPoint(mxEvent.getClientX(e),mxEvent.getClientY(e));i(Math.max(0,o+(t?n.x-s.x:s.y-n.y)-a)),mxEvent.consume(e)}}function e(e){r(e),o=s=null}mxEvent.addGestureListeners(n,function(e){s=new mxPoint(mxEvent.getClientX(e),mxEvent.getClientY(e)),o=parseInt(t?n.style.left:n.style.bottom),mxEvent.consume(e)}),mxEvent.addListener(document,"mousemove",r),mxEvent.addListener(document,"touchmove",r),mxEvent.addListener(document,"mouseup",e),mxEvent.addListener(document,"touchend",e)},EditorUi.prototype.executeLayout=function(e,n,t){var a=this.editor.graph,i=a.getSelectionCell();n=null!=this.animate?this.animate:n,a.getModel().beginUpdate();try{e.execute(a.getDefaultParent(),i)}catch(e){throw e}finally{if(n&&navigator.userAgent.indexOf("Camino")<0){var s=new mxMorphing(a);s.addListener(mxEvent.DONE,mxUtils.bind(this,function(){a.getModel().endUpdate()})),s.startAnimation()}else a.getModel().endUpdate()}},EditorUi.prototype.createKeyHandler=function(e){var a=this.editor.graph,o=new mxKeyHandler(a);function n(e){if(!a.isSelectionEmpty()){var n=0,t=0;37==e?n=-1:38==e?t=-1:39==e?n=1:40==e&&(t=1),a.moveCells(a.getSelectionCells(),n,t),a.scrollCellToVisible(a.getSelectionCell())}}o.isControlDown=function(e){return mxEvent.isControlDown(e)||mxClient.IS_MAC&&e.metaKey};var t=mxUtils.bind(this,function(e,n,t,a){var i=this.actions.get(t);if(null!=i){var s=function(){i.enabled&&i.funct()};n?a?o.bindControlShiftKey(e,s):o.bindControlKey(e,s):a?o.bindShiftKey(e,s):o.bindKey(e,s)}});return o.enter=function(){},o.bindKey(8,function(){a.foldCells(!0)}),o.bindKey(13,function(){a.foldCells(!1)}),o.bindKey(33,function(){a.exitGroup()}),o.bindKey(34,function(){a.enterGroup()}),o.bindKey(36,function(){a.home()}),o.bindKey(35,function(){a.refresh()}),o.bindKey(37,function(){n(37)}),o.bindKey(38,function(){n(38)}),o.bindKey(39,function(){n(39)}),o.bindKey(40,function(){n(40)}),o.bindKey(113,function(){a.startEditingAtCell()}),t(46,!1,"delete"),t(82,!0,"tilt"),t(83,!0,"save"),t(83,!0,"saveAs",!0),t(107,!1,"zoomIn"),t(109,!1,"zoomOut"),t(65,!0,"selectAll"),t(86,!0,"selectVertices",!0),t(69,!0,"selectEdges",!0),t(69,!0,"export"),t(66,!0,"toBack"),t(70,!0,"toFront"),t(68,!0,"duplicate"),t(90,!0,"undo"),t(89,!0,"redo"),t(88,!0,"cut"),t(67,!0,"copy"),t(81,!0,"connect"),t(86,!0,"paste"),t(71,!0,"group"),t(71,!0,"grid",!0),t(85,!0,"ungroup"),t(112,!1,"about"),t(80,!0,"publish",!0),o},EditorUi.prototype.createMultiplicities=function(e,n,t,a){for(var i=0;i<n.length;i++)e.push(new mxMultiplicity(!0,n[i],null,null,t[i][0],t[i][1],null,mxResources.get(n[i])+mxResources.get("musthave")+t[i][0]+mxResources.get("outgoingedge"),null)),e.push(new mxMultiplicity(!1,n[i],null,null,a[i][0],a[i][1],null,mxResources.get(n[i])+mxResources.get("musthave")+a[i][0]+mxResources.get("incomingedge"),null))};var useLocalStorage=(mxClient.IS_TOUCH||"local"==urlParams.storage)&&"undefined"!=typeof localStorage,fileSupport=null!=window.File&&null!=window.FileReader&&null!=window.FileList,touchStyle=mxClient.IS_TOUCH||"1"==urlParams.touch,counter=0;try{for(var op=window;null!=op.opener&&!isNaN(op.opener.counter);)op=op.opener;null!=op&&(op.counter++,counter=op.counter)}catch(e){}function Sidebar(e,n){this.editorUi=e,this.container=n,this.palettes=new Object,this.taglist=new Object,this.showTooltips=!0,this.graph=new Graph(document.createElement("div"),null,null,this.editorUi.editor.graph.getStylesheet()),this.graph.resetViewOnRootChange=!1,this.graph.foldingEnabled=!1,this.graph.setConnectable(!1),this.graph.autoScroll=!1,this.graph.setTooltips(!1),this.graph.setEnabled(!1),this.graph.container.style.visibility="hidden",this.graph.container.style.position="absolute",this.graph.container.style.overflow="hidden",this.graph.container.style.height="1px",this.graph.container.style.width="1px",mxClient.IS_IE||mxClient.IS_IE11||(this.graph.container.style.display="none"),document.body.appendChild(this.graph.container),this.pointerUpHandler=mxUtils.bind(this,function(){this.showTooltips=!0}),mxEvent.addListener(document,mxClient.IS_POINTER?"pointerup":"mouseup",this.pointerUpHandler),this.pointerDownHandler=mxUtils.bind(this,function(){this.showTooltips=!1,this.hideTooltip()}),mxEvent.addListener(document,mxClient.IS_POINTER?"pointerdown":"mousedown",this.pointerDownHandler),this.pointerMoveHandler=mxUtils.bind(this,function(e){for(var n=mxEvent.getSource(e);null!=n;){if(n==this.currentElt)return;n=n.parentNode}this.hideTooltip()}),mxEvent.addListener(document,mxClient.IS_POINTER?"pointermove":"mousemove",this.pointerMoveHandler),this.pointerOutHandler=mxUtils.bind(this,function(e){null==e.toElement&&null==e.relatedTarget&&this.hideTooltip()}),mxEvent.addListener(document,mxClient.IS_POINTER?"pointerout":"mouseout",this.pointerOutHandler),mxEvent.addListener(n,"scroll",mxUtils.bind(this,function(){this.showTooltips=!0})),this.init(),mxClient.IS_SVG||((new Image).src=IMAGE_PATH+"/tooltip.png")}function Actions(e){this.editorUi=e,this.actions=new Object,this.init()}function Action(e,n,t,a,i){mxEventSource.call(this),this.label=e,this.funct=n,this.enabled=null==t||t,this.iconCls=a,this.shortcut=i}function Menubar(e,n){this.editorUi=e,this.container=n,mxEvent.addGestureListeners(document,mxUtils.bind(this,function(e){this.hideMenu()}))}function Menu(e,n){mxEventSource.call(this),this.funct=e,this.enabled=null==n||n}function Toolbar(e,n){this.editorUi=e,this.container=n,this.init(),mxEvent.addGestureListeners(document,mxUtils.bind(this,function(e){this.hideMenu()}))}function createCheckbox(e){var n=document.createElement("input");return n.setAttribute("type","checkbox"),e&&n.setAttribute("checked",!0),n}function createDropdownFromApi(e,t,a,i,n,s,o,r){var l=new XMLHttpRequest;l.open("GET",e,!1),l.setRequestHeader("Authorization","Bearer "+n.editor.data.token),l.send(null);var d=[];200===l.status&&(d=JSON.parse(l.response));var c=document.createElement("select"),m=document.createElement("option");return m.text="-- None --",m.value="-1",c.appendChild(m),d.rows.forEach(function(n){r&&n[a]==r||((m=document.createElement("option")).text=n[a],s&&o?(m.value=o,s.forEach(function(e){m.value=m.value.replace("%"+e+"%",n[e])}),m.selected=m.value==t):(m.value=n[i],m.selected=n[i]==t),c.appendChild(m))}),c.className="form-control select2",c}function createDropdownWithOptgroupFromApi(e,n,t,a,i,s){var o=new XMLHttpRequest;o.open("GET",e,!1),o.setRequestHeader("Authorization","Bearer "+i.editor.data.token),o.send(null);var r=[];200===o.status&&(r=JSON.parse(o.response));var l=document.createElement("select"),d=document.createElement("option");d.text="-- None --",d.value="-1",l.appendChild(d);var c=_.groupBy(r.rows,s);for(var m in c)if(c.hasOwnProperty(m)){var u=document.createElement("optgroup");u.label=_.capitalize(m),c[m].forEach(function(e){(d=document.createElement("option")).text=e[t],d.value=e[a],d.selected=e[a]==n,u.appendChild(d)}),l.appendChild(u)}return l.className="form-control select2",l}function createGroupedDropdownFromApi(e,n,t,a,i,s){var o=new XMLHttpRequest;o.open("GET",e,!1),o.setRequestHeader("Authorization","Bearer "+i.editor.data.token),o.send(null);var r=[];200===o.status&&(r=JSON.parse(o.response));var l=document.createElement("select"),d=document.createElement("option");return d.text="-- None --",d.value="0",l.appendChild(d),r.rows.forEach(function(e){(d=document.createElement("option")).className="select-group-father",d.text=e[t].toUpperCase(),d.value=e[a],d.selected=e[a]==n,l.appendChild(d),e[s].forEach(function(e){(d=document.createElement("option")).className="select-group-son",d.text="-"+_.capitalize(e[t]),d.value=e[a],d.selected=e[a]==n,l.appendChild(d)})}),l.className="form-control select2",l}function createDropdownFromArray(e,n){var t=document.createElement("select");for(var a in e){var i=document.createElement("option");i.text=e[a],i.value=a,(0<n||""!=n)&&(i.selected=n===a),t.appendChild(i)}return t.className="form-control select2",t}function createDropdownFromTigerDialList(e){var n=document.createElement("select"),t=[],a=new XMLHttpRequest;try{if(a.open("POST","/api/rest/list/list",!1),a.send(JSON.stringify({page:1,size:6e5})),200===a.status){var i=JSON.parse(a.response);if(0<i.status){var s=i.response.RMI.rows;for(var o in s)t[s[o].id]=s[o].name}}}catch(e){console.log(e)}for(var r in t){var l=document.createElement("option");l.text=t[r],l.value=r,(0<e||""!=e)&&(l.selected=e===r),n.appendChild(l)}return n.className="form-control select2",n}function Dialog(e,n,t,a,i,s,o){var r=0;mxClient.IS_IE&&9!=document.documentMode&&(r=60),t+=r,a+=r;Math.max(0,Math.round((document.body.scrollWidth-t)/2)),Math.max(0,Math.round((Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)-a)/3));var l=e.createDiv("geDialog");l.className="modal fade in center",l.style.display="block",l.style.paddingRight="12px";var d=e.createDiv("geModalDialog");d.className="modal-dialog",d.appendChild(n),l.appendChild(d),null==this.bg&&(this.bg=e.createDiv("background"),this.bg.className="modal-backdrop fade in",mxClient.IS_QUIRKS&&new mxDivResizer(this.bg)),i&&document.body.appendChild(this.bg),document.body.appendChild(l),this.onDialogClose=o,this.container=l}function ImportDialog(t){var e=t.createDiv("modal-content"),n=t.createDiv("modal-header"),a=t.createDiv("modal-body"),i=t.createDiv("modal-footer"),s=t.createHeader("h4");mxUtils.write(s,mxResources.get("import")+" XML");var o=mxUtils.button("",function(){t.hideDialog()});o.className="close",n.appendChild(o),n.appendChild(s);var r=t.createDiv("row"),l=t.createDiv("col-md-12"),d=document.createElement("textarea");d.style.width="100%",d.style.height="374px";var c=document.createElement("input");c.type="file",c.setAttribute("accept","text/xml"),c.addEventListener("change",function(e){var n=e.target.files[0];if(console.log(n),n)if("text/xml"===n.type){var t=new FileReader;t.onload=function(e){var n=e.target.result;mxUtils.write(d,n)},t.readAsText(n)}else alert("Failed to load format file");else alert("Failed to load file")},!1),l.appendChild(c),l.appendChild(d),r.appendChild(l),a.appendChild(r);var m=mxUtils.button(mxResources.get("import"),mxUtils.bind(this,function(e){var n=mxUtils.parseXml(d.value);t.editor.setGraphXml(n.documentElement),t.hideDialog()}));m.className="btn blue";var u=mxUtils.button(mxResources.get("cancel"),function(){t.hideDialog()});u.className="btn default",i.appendChild(m),i.appendChild(u),e.appendChild(n),e.appendChild(a),e.appendChild(i),this.container=e}function AboutDialog(e){var n=e.createDiv("modal-content"),t=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),s=e.createHeader("h4");mxUtils.write(s,mxResources.get("about")+" Cally Square");var o=mxUtils.button("",function(){e.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);var r=document.createElement("img");r.style.border="0px",r.setAttribute("width","176"),r.setAttribute("width","151"),r.setAttribute("src",IMAGE_PATH+"/logo.png"),a.appendChild(r),mxUtils.br(a),mxUtils.write(a,"Powered by Xenialab "+mxClient.VERSION),mxUtils.br(a);var l=document.createElement("a");l.setAttribute("href","http://www.callysquare.com/"),l.setAttribute("target","_blank"),mxUtils.write(l,"www.callysquare.com"),a.appendChild(l),mxUtils.br(a),mxUtils.br(a);var d=mxUtils.button(mxResources.get("close"),function(){e.hideDialog()});d.className="btn default",i.appendChild(d),n.appendChild(t),n.appendChild(a),n.appendChild(i),this.container=n}function SaveDialog(e){var n=e.createDiv("modal-content"),t=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),s=e.createHeader("h4");mxUtils.write(s,mxResources.get("saveAs"));var o=mxUtils.button("",function(){e.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);var r=e.editor.getOrCreateFilename(),l=e.createDiv("row"),d=e.createDiv("col-md-4"),c=e.createDiv("col-md-8"),m=document.createElement("label");m.className="control-label pull-right",mxUtils.write(m,mxResources.get("name")),d.appendChild(m);var u=document.createElement("input");u.setAttribute("value",r+"_copy"),u.setAttribute("id","_name"),u.className="form-control",c.appendChild(u),l.appendChild(d),l.appendChild(c),a.appendChild(l);var p=mxUtils.button(mxResources.get("save"),function(){e.saveAs(u.value),e.hideDialog()});p.className="btn blue";var g=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});g.className="btn default",i.appendChild(p),i.appendChild(g),n.appendChild(t),n.appendChild(a),n.appendChild(i),this.container=n}function NewDialog(e){var n=e.createDiv("modal-content"),t=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),s=e.createHeader("h4");mxUtils.write(s,mxResources.get("new"));var o=mxUtils.button("",function(){e.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);var r=e.editor.getOrCreateFilename(),l=e.createDiv("row"),d=e.createDiv("col-md-4"),c=e.createDiv("col-md-8"),m=document.createElement("label");m.className="control-label pull-right",mxUtils.write(m,mxResources.get("name")),d.appendChild(m);var u=document.createElement("input");u.setAttribute("value",r+"_new"),u.setAttribute("id","_name"),u.className="form-control",c.appendChild(u),l.appendChild(d),l.appendChild(c),a.appendChild(l);var p=mxUtils.button(mxResources.get("new"),function(){e.new(u.value),e.hideDialog()});p.className="btn blue";var g=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});g.className="btn default",i.appendChild(p),i.appendChild(g),n.appendChild(t),n.appendChild(a),n.appendChild(i),this.container=n}function DescriptionDialog(e){console.log(e.editor.data);var n=e.createDiv("modal-content"),t=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),s=e.createHeader("h4");mxUtils.write(s,mxResources.get("description"));var o=mxUtils.button("",function(){e.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);var r=e.createDiv("form-horizontal form-row-seperated"),l="description",d=e.editor.data.description||"",c=e.createDiv("form-group"),m=document.createElement("label");m.className="col-sm-4 control-label",mxUtils.write(m,mxResources.get(l)),c.appendChild(m);var u=document.createElement("input");u.setAttribute("value",d),u.className="form-control",u.setAttribute("id","_description");var p=e.createDiv("col-sm-8");p.appendChild(u),c.appendChild(p),r.appendChild(c),a.appendChild(r);var g=mxUtils.button(mxResources.get("update"),function(){e.description(u.value),e.hideDialog()});g.className="btn blue";var v=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});v.className="btn default",i.appendChild(g),i.appendChild(v),n.appendChild(t),n.appendChild(a),n.appendChild(i),this.container=n}function VariableDialog(e){var n=e.createDiv("modal-content"),t=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),s=e.createHeader("h4");mxUtils.write(s,mxResources.get("variable"));var o=mxUtils.button("",function(){e.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);var r=e.createDiv("form-horizontal form-row-seperated"),l="name",d="_"+l,c="variable name",m=e.createDiv("form-group"),u=document.createElement("label");u.className="col-sm-4 control-label",mxUtils.write(u,mxResources.get(l)),m.appendChild(u);var p=document.createElement("input");p.setAttribute("value",c),p.className="form-control",p.setAttribute("id",d);var g=e.createDiv("col-sm-8");g.appendChild(p),m.appendChild(g),r.appendChild(m),d="_"+(l="description"),c="variable description",m=e.createDiv("form-group last"),(u=document.createElement("label")).className="col-sm-4 control-label",mxUtils.write(u,mxResources.get(l)),m.appendChild(u);var v=document.createElement("input");v.setAttribute("value",c),v.className="form-control",v.setAttribute("id",d),(g=e.createDiv("col-sm-8")).appendChild(v),m.appendChild(g),r.appendChild(m),a.appendChild(r);var h=mxUtils.button(mxResources.get("new"),function(){e.variable(p.value,v.value),e.hideDialog()});h.className="btn blue";var f=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});f.className="btn default",i.appendChild(h),i.appendChild(f),n.appendChild(t),n.appendChild(a),n.appendChild(i),this.container=n}function OpenDialog(e){var n=e.createDiv("modal-content"),t=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),s=e.createHeader("h4");mxUtils.write(s,mxResources.get("open"));var o=mxUtils.button("",function(){e.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);var r=e.createDiv("row"),l=e.createDiv("col-md-4"),d=e.createDiv("col-md-8"),c=document.createElement("label");c.className="control-label pull-right",mxUtils.write(c,mxResources.get("name")),l.appendChild(c);var m=new XMLHttpRequest;m.open("GET","/api/square/projects",!1),m.setRequestHeader("Authorization","Bearer "+e.editor.data.token),m.send(null);var u=[];200===m.status&&(u=JSON.parse(m.response));for(var p=document.createElement("select"),g=0;g<u.length;g++){var v=document.createElement("option");v.text=u[g].name,v.value=u[g].id,p.appendChild(v)}p.className="form-control",d.appendChild(p),r.appendChild(l),r.appendChild(d),a.appendChild(r);var h=mxUtils.button(mxResources.get("open"),function(){console.log(p),console.log(p.value),window.open("square/project/"+p.value,"_blank"),e.hideDialog()});h.className="btn blue";var f=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});f.className="btn default",i.appendChild(h),i.appendChild(f),n.appendChild(t),n.appendChild(a),n.appendChild(i),this.container=n}function RenameDialog(t){var e=t.createDiv("modal-content"),n=t.createDiv("modal-header"),a=t.createDiv("modal-body"),i=t.createDiv("modal-footer"),s=t.createHeader("h4");mxUtils.write(s,mxResources.get("rename"));var o=mxUtils.button("",function(){t.hideDialog()});o.className="close",n.appendChild(o),n.appendChild(s);var r=t.createDiv("row"),l=t.createDiv("col-md-4"),d=t.createDiv("col-md-8"),c=document.createElement("label");c.className="control-label pull-right",mxUtils.write(c,mxResources.get("name")),l.appendChild(c);var m=t.editor.filename,u=document.createElement("input");u.setAttribute("value",m),u.className="form-control",d.appendChild(u),r.appendChild(l),r.appendChild(d),a.appendChild(r);var p=mxUtils.button(mxResources.get("save"),function(){var n=new XMLHttpRequest;n.open("PUT",SAVE_URL+t.editor.data.id,!0),n.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),n.setRequestHeader("Authorization","Bearer "+t.editor.data.token),n.send("name="+u.value),n.onload=function(e){200===n.status?(t.editor.setStatus("Project successfully renamed"),t.editor.filename=u.value):(console.log(n.response),t.editor.setStatus(JSON.parse(n.response).errors[0].message))},n.onerror=function(e){mxUtils.alert(n.statusText)},t.hideDialog()});p.className="btn blue";var g=mxUtils.button(mxResources.get("cancel"),function(){t.hideDialog()});g.className="btn default",i.appendChild(p),i.appendChild(g),e.appendChild(n),e.appendChild(a),e.appendChild(i),this.container=e}function EditFileDialog(n){var e=n.createDiv("modal-content"),t=n.createDiv("modal-header"),a=n.createDiv("modal-body"),i=n.createDiv("modal-footer"),s=n.createHeader("h4");mxUtils.write(s,mxResources.get("edit"));var o=mxUtils.button("",function(){n.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);var r=n.createDiv("row"),l=n.createDiv("col-md-12"),d=document.createElement("textarea");if(d.style.width="100%",d.style.height="374px",d.value=mxUtils.getPrettyXml(n.editor.getGraphXml()),fileSupport){d.addEventListener("dragover",function(e){e.stopPropagation(),e.preventDefault()},!1),d.addEventListener("drop",function(e){if(e.stopPropagation(),e.preventDefault(),0<e.dataTransfer.files.length){var n=e.dataTransfer.files[0],t=new FileReader;t.onload=function(e){d.value=e.target.result},t.readAsText(n)}},!1)}l.appendChild(d),r.appendChild(l),a.appendChild(r);var c=mxUtils.button(mxResources.get("save"),function(){var e=mxUtils.parseXml(d.value);n.editor.setGraphXml(e.documentElement),n.hideDialog()});c.className="btn blue";var m=mxUtils.button(mxResources.get("cancel"),function(){n.hideDialog()});m.className="btn default",i.appendChild(c),i.appendChild(m),e.appendChild(t),e.appendChild(a),e.appendChild(i),this.container=e}function ExportDialog(n){var e=n.createDiv("modal-content"),t=n.createDiv("modal-header"),a=n.createDiv("modal-body form"),i=n.createDiv("modal-footer"),s=n.createHeader("h4");mxUtils.write(s,mxResources.get("export")+" XML");var o=mxUtils.button("",function(){n.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);var r=n.createDiv("form-horizontal form-row-seperated"),l=n.createDiv("form-group last"),d=document.createElement("label");d.className="col-sm-4 control-label",mxUtils.write(d,mxResources.get("filename"));var c=document.createElement("input");c.setAttribute("value",n.editor.getOrCreateFilename()),c.className="form-control";var m=n.createDiv("col-sm-8");m.appendChild(c),l.appendChild(d),l.appendChild(m),r.appendChild(l),a.appendChild(r);var u=mxUtils.button(mxResources.get("export"),mxUtils.bind(this,function(e){n.save(!1);encodeURIComponent(mxUtils.getXml(n.editor.getGraphXml()));new mxXmlRequest(SAVE_URL+n.editor.data.id+"/download","filename="+c.value,"GET").simulate(document,"_blank"),n.hideDialog()}));u.className="btn blue";var p=mxUtils.button(mxResources.get("cancel"),function(){n.hideDialog()});p.className="btn default",i.appendChild(u),i.appendChild(p),e.appendChild(t),e.appendChild(a),e.appendChild(i),this.container=e}function GeneralDialog(i,s){console.log("general");var o=i.editor.graph,e=i.createDiv("md-dialog"),n=i.createDiv("md-toolbar"),t=i.createDiv("md-dialog-content"),a=i.createDiv("md-dialog-actions"),r=i.createHeader("h4");mxUtils.write(r,mxResources.get("edit")+" "+mxResources.get(s.value.nodeName));var l=mxUtils.button("",function(){i.hideDialog()});l.className="close",n.appendChild(l),n.appendChild(r);for(var d=s.value.attributes.length,c=i.createDiv("form-horizontal form-row-seperated"),m=0;m<d;m++){var u,p=s.value.attributes[m].name,g="_"+p,v=s.value.attributes[m].value,h=i.createDiv(m==d-1?"form-group last":"form-group"),f=document.createElement("label");switch(f.className="col-sm-4 control-label",mxUtils.write(f,mxResources.get(p)),h.appendChild(f),p){case"sip_id":u=createDropdownWithOptgroupFromApi("/api/users/all",v,"fullname","id",i,"role");break;case"queue_id":u=createDropdownFromApi("/api/voice/queues",v,"name","name",i);break;case"trunk_name":u=createDropdownFromApi("/api/trunks",v,"name","name",i);break;case"variable_id":u=createDropdownFromApi("/api/variables",v,"name","id",i);break;case"account_id":u="sendMail"==s.value.nodeName?createDropdownFromApi("/api/mail/servers/out",v,"username","id",i):createDropdownFromApi("/api/sms/accounts",v,"name","id",i);break;case"template_id":u=createDropdownFromApi("/api/templates",v,"name","id",i);break;case"context":u=createDropdownFromApi("/api/voice/contexts",v,"name","name",i);break;case"mailbox":u=createDropdownFromApi("/api/voice/voicemails",v,"mailbox","id",i,["mailbox","context"],"%mailbox%@%context%");break;case"model":u=createDropdownFromArray(ISPEECHASRMODEL,v);break;case"ispeech_asr_language":u=createDropdownFromArray(ISPEECHASRLANG,v);break;case"beep":u=createDropdownFromArray(ISPEECHBEEP,v);break;case"hiddendigitspos":u=createDropdownFromArray(SECRETDIGITSPOS,v);break;case"ispeech_tts_language":u=createDropdownFromArray(ISPEECHLANG,v);break;case"google_tts_language":u=createDropdownFromArray(GOOGLETTSLANG,v);break;case"intKey":u=createDropdownFromArray(ASRINTKEYS,v);break;case"recordingFormat":u=createDropdownFromArray(RECORDINGFORMAT,v);break;case"answer":u=createDropdownFromArray(BOOLSELECT,v);break;case"list_id":u=createDropdownFromTigerDialList(v);break;case"interval_id":u=createGroupedDropdownFromApi("/api/intervals",v,"name","id",i,"SubIntervals");break;case"project_id":u=createDropdownFromApi("/api/square/projects",v,"name","id",i,null,null,i.editor.getOrCreateFilename());break;case"odbc_id":u=createDropdownFromApi("/api/square/odbc",v,"name","id",i);break;case"file_id":u=createDropdownFromApi("/api/sounds",v,"display_name","id",i);break;case"timeout":case"digit":case"mindigit":case"maxdigit":case"response":case"retry":case"speed":(u=document.createElement("input")).setAttribute("type","number"),u.setAttribute("min",0),u.setAttribute("max",1e3),u.setAttribute("value",v),u.className="form-control";break;case"text":case"key":case"query":case"condition":case"command":case"body":(u=document.createElement("textarea")).innerHTML=v,u.className="form-control";break;case"sms_text":(u=document.createElement("textarea")).innerHTML=v,u.className="form-control",u.setAttribute("maxlength","160");break;default:(u=document.createElement("input")).setAttribute("value",v),u.className="form-control"}u.setAttribute("id",g);var b=i.createDiv("col-sm-8");if(b.appendChild(u),mxResources.get("help_"+p)){var A=i.createDiv("p");A.className="help-block",mxUtils.write(A,mxResources.get("help_"+p)),b.appendChild(A)}h.appendChild(b),c.appendChild(h)}t.appendChild(c);var E=mxUtils.button(mxResources.get("save"),mxUtils.bind(this,function(e){for(var n=0;n<s.value.attributes.length;n++){var t="_"+s.value.attributes[n].name,a=s.value.attributes[n].name;s.setAttribute(a,document.getElementById(t).value)}o.refresh(s),i.hideDialog()}));E.className="btn blue";var y=mxUtils.button(mxResources.get("cancel"),function(){i.hideDialog()});y.className="btn default",a.appendChild(E),a.appendChild(y),e.appendChild(n),e.appendChild(t),e.appendChild(a),this.container=e}Editor=function(){mxEventSource.call(this),this.init(),this.initStencilRegistry(),this.graph=new Graph,this.outline=new mxOutline(this.graph),this.outline.updateOnPan=!0,this.undoManager=this.createUndoManager(),this.status="",this.filename=null,this.getOrCreateFilename=function(){return this.filename||mxResources.get("drawing",[counter])+".xml"},this.getFilename=function(){return this.filename},this.setStatus=function(e){this.status=e,this.fireEvent(new mxEventObject("statusChanged"))},this.getStatus=function(){return this.status},this.modified=!1,this.graphChangeListener=function(){this.modified=!0},this.graph.getModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){this.graphChangeListener.apply(this,arguments)})),window.onbeforeunload=mxUtils.bind(this,function(){if(this.modified)return mxResources.get("allChangesLost")}),this.graph.resetViewOnRootChange=!1,this.graph.scrollbars=!0,this.graph.background=null},mxUtils.extend(Editor,mxEventSource),Editor.prototype.gridImage=IMAGE_PATH+"/grid.gif",Editor.prototype.transparentImage=IMAGE_PATH+"/transparent.gif",Editor.prototype.setGraphXml=function(e){var n=new mxCodec(e.ownerDocument);if("mxGraphModel"==e.nodeName){this.graph.view.scale=Number(e.getAttribute("scale")||1),this.graph.gridEnabled="0"!=e.getAttribute("grid"),this.graph.graphHandler.guidesEnabled="0"!=e.getAttribute("guides"),this.graph.setTooltips("0"!=e.getAttribute("tooltips")),this.graph.setConnectable("0"!=e.getAttribute("connect")),this.graph.foldingEnabled="0"!=e.getAttribute("fold"),this.graph.scrollbars="0"!=e.getAttribute("scrollbars"),this.graph.scrollbars||(this.graph.container.scrollLeft=0,this.graph.container.scrollTop=0,this.graph.view.translate.x=Number(e.getAttribute("dx")||0),this.graph.view.translate.y=Number(e.getAttribute("dy")||0)),this.graph.pageVisible="1"==e.getAttribute("page"),this.graph.pageBreaksVisible=this.graph.pageVisible,this.graph.preferPageSize=this.graph.pageBreaksVisible;var t=e.getAttribute("pageScale");this.graph.pageScale=null!=t?t:1.5;var a=e.getAttribute("pageWidth"),i=e.getAttribute("pageHeight");null!=a&&null!=i&&(this.graph.pageFormat=new mxRectangle(0,0,parseFloat(a),parseFloat(i)),this.outline.outline.pageFormat=this.graph.pageFormat);var s=e.getAttribute("background");null!=s&&0<s.length&&(this.graph.background=s),n.decode(e,this.graph.getModel()),this.updateGraphComponents()}},Editor.prototype.getGraphXml=function(){var e=new mxCodec(mxUtils.createXmlDocument()).encode(this.graph.getModel());return 0==this.graph.view.translate.x&&0==this.graph.view.translate.y||(e.setAttribute("dx",Math.round(100*this.graph.view.translate.x)/100),e.setAttribute("dy",Math.round(100*this.graph.view.translate.y)/100)),1!=this.graph.view.scale&&e.setAttribute("scale",Math.round(1e3*this.graph.view.scale)/1e3),e.setAttribute("grid",this.graph.isGridEnabled()?"1":"0"),e.setAttribute("guides",this.graph.graphHandler.guidesEnabled?"1":"0"),e.setAttribute("guides",this.graph.graphHandler.guidesEnabled?"1":"0"),e.setAttribute("tooltips",this.graph.tooltipHandler.isEnabled()?"1":"0"),e.setAttribute("connect",this.graph.connectionHandler.isEnabled()?"1":"0"),e.setAttribute("fold",this.graph.foldingEnabled?"1":"0"),e.setAttribute("page",this.graph.pageVisible?"1":"0"),e.setAttribute("pageScale",this.graph.pageScale),e.setAttribute("pageWidth",this.graph.pageFormat.width),e.setAttribute("pageHeight",this.graph.pageFormat.height),this.graph.scrollbars||e.setAttribute("scrollbars","0"),null!=this.graph.background&&e.setAttribute("background",this.graph.background),e},Editor.prototype.updateGraphComponents=function(){var e=this.graph,n=this.outline;if(null!=e.container&&null!=n.outline.container){null!=e.background?"none"==e.background?e.container.style.backgroundColor="transparent":(null!=e.view.backgroundPageShape&&(e.view.backgroundPageShape.fill=e.background,e.view.backgroundPageShape.reconfigure()),e.container.style.backgroundColor=e.background):e.container.style.backgroundColor="",e.pageVisible?(e.container.style.backgroundColor="#ebebeb",e.container.style.borderStyle="solid",e.container.style.borderColor="#e5e5e5",e.container.style.borderTopWidth="1px",e.container.style.borderLeftWidth="1px",e.container.style.borderRightWidth="0px",e.container.style.borderBottomWidth="0px"):e.container.style.border="",n.outline.container.style.backgroundColor=e.container.style.backgroundColor,n.outline.pageVisible==e.pageVisible&&n.outline.pageScale==e.pageScale||(n.outline.pageScale=e.pageScale,n.outline.pageVisible=e.pageVisible,n.outline.view.validate()),e.scrollbars&&"hidden"==e.container.style.overflow&&!touchStyle?e.container.style.overflow="auto":e.scrollbars&&!touchStyle||(e.container.style.overflow="hidden");var t=mxClient.IS_IE&&9<=document.documentMode?"url("+this.transparentImage+")":"none";e.container.style.backgroundImage=!e.pageVisible&&e.isGridEnabled()?"url("+this.gridImage+")":t,null!=e.view.backgroundPageShape&&(e.view.backgroundPageShape.node.style.backgroundImage=this.graph.isGridEnabled()?"url("+this.gridImage+")":"none")}},Editor.prototype.init=function(){mxClient.IS_IE6&&mxClient.link("stylesheet",CSS_PATH+"/grapheditor-ie6.css"),mxResources.loadDefaultBundle=!1,mxResources.add(RESOURCE_BASE),mxConstants.DEFAULT_HOTSPOT=.3;var e=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var t=e.apply(this,arguments);return t.intersects=mxUtils.bind(this,function(e,n){return!!this.isConnecting()||mxCellMarker.prototype.intersects.apply(t,arguments)}),t},mxConstants.SHADOWCOLOR="#d0d0d0",mxConstants.HANDLE_FILLCOLOR="#99ccff",mxConstants.HANDLE_STROKECOLOR="#0088cf",mxConstants.VERTEX_SELECTION_COLOR="#00a8ff",mxConstants.OUTLINE_COLOR="#00a8ff",mxConstants.OUTLINE_HANDLE_FILLCOLOR="#99ccff",mxConstants.OUTLINE_HANDLE_STROKECOLOR="#00a8ff",mxConstants.CONNECT_HANDLE_FILLCOLOR="#cee7ff",mxConstants.EDGE_SELECTION_COLOR="#00a8ff",mxConstants.DEFAULT_VALID_COLOR="#00a8ff",mxConstants.LABEL_HANDLE_FILLCOLOR="#cee7ff",mxConstants.GUIDE_COLOR="#0088cf",mxGraph.prototype.pageBreakColor="#c0c0c0",mxGraph.prototype.pageScale=1,mxRubberband.prototype.defaultOpacity=30,mxGraphView.prototype.createBackgroundPageShape=function(e){return new mxRectangleShape(e,this.graph.background||"white","#cacaca")},mxGraphView.prototype.getBackgroundPageBounds=function(){var e=this.getGraphBounds(),n=0<e.width?e.x/this.scale-this.translate.x:0,t=0<e.height?e.y/this.scale-this.translate.y:0,a=e.width/this.scale,i=e.height/this.scale,s=this.graph.pageFormat,o=this.graph.pageScale,r=s.width*o,l=s.height*o,d=Math.floor(Math.min(0,n)/r),c=Math.floor(Math.min(0,t)/l),m=Math.ceil(Math.max(1,n+a)/r)-d,u=Math.ceil(Math.max(1,t+i)/l)-c;return new mxRectangle(this.scale*(this.translate.x+d*r),this.scale*(this.translate.y+c*l),this.scale*m*r,this.scale*u*l)};var t=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(e,n){t.apply(this,arguments),this.dialect==mxConstants.DIALECT_SVG||null==this.view.backgroundPageShape||this.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.container)||(this.view.backgroundPageShape.node.style.marginLeft=e+"px",this.view.backgroundPageShape.node.style.marginTop=n+"px")};var a=this;mxGraphView.prototype.validateBackground=function(){var e=this.graph.getBackgroundImage();if(null!=e){if(null==this.backgroundImage||this.backgroundImage.image!=e.src){null!=this.backgroundImage&&this.backgroundImage.destroy();var n=new mxRectangle(0,0,1,1);this.backgroundImage=new mxImageShape(n,e.src),this.backgroundImage.dialect=this.graph.dialect,this.backgroundImage.init(this.backgroundPane),this.backgroundImage.redraw()}this.redrawBackgroundImage(this.backgroundImage,e)}else null!=this.backgroundImage&&(this.backgroundImage.destroy(),this.backgroundImage=null);if(this.graph.pageVisible){n=this.getBackgroundPageBounds();null==this.backgroundPageShape?(this.backgroundPageShape=this.createBackgroundPageShape(n),this.backgroundPageShape.scale=1,this.backgroundPageShape.isShadow=!0,this.backgroundPageShape.dialect=mxConstants.DIALECT_STRICTHTML,this.backgroundPageShape.init(this.graph.container),this.graph.container.firstChild.style.position="absolute",this.graph.container.insertBefore(this.backgroundPageShape.node,this.graph.container.firstChild),this.backgroundPageShape.redraw(),this.backgroundPageShape.node.className="geBackgroundPage",this.backgroundPageShape.node.style.backgroundPosition="-1px -1px",mxEvent.addListener(this.backgroundPageShape.node,"dblclick",mxUtils.bind(this,function(e){this.graph.dblClick(e)})),mxEvent.addGestureListeners(this.backgroundPageShape.node,mxUtils.bind(this,function(e){this.graph.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e))}),mxUtils.bind(this,function(e){null!=this.graph.tooltipHandler&&this.graph.tooltipHandler.isHideOnHover()&&this.graph.tooltipHandler.hide(),this.graph.isMouseDown&&!mxEvent.isConsumed(e)&&this.graph.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e))}),mxUtils.bind(this,function(e){this.graph.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e))}))):(this.backgroundPageShape.scale=1,this.backgroundPageShape.bounds=n,this.backgroundPageShape.redraw()),this.backgroundPageShape.node.style.backgroundImage=this.graph.isGridEnabled()?"url("+a.gridImage+")":"none"}else null!=this.backgroundPageShape&&(this.backgroundPageShape.destroy(),this.backgroundPageShape=null)},mxGraph.prototype.updatePageBreaks=function(e,n,t){var a=this.view.scale,i=this.view.translate,s=this.pageFormat,o=a*this.pageScale,r=this.view.getBackgroundPageBounds();n=r.width,t=r.height;var l=new mxRectangle(a*i.x,a*i.y,s.width*o,s.height*o),d=(e=e&&Math.min(l.width,l.height)>this.minPageBreakDist)?Math.ceil(n/l.width)-1:0,c=e?Math.ceil(t/l.height)-1:0,m=r.x+n,u=r.y+t;if(null==this.horizontalPageBreaks&&0<d&&(this.horizontalPageBreaks=[]),null!=this.horizontalPageBreaks){for(var p=0;p<=d;p++){var g=[new mxPoint(r.x+(p+1)*l.width,r.y),new mxPoint(r.x+(p+1)*l.width,u)];if(null!=this.horizontalPageBreaks[p])this.horizontalPageBreaks[p].scale=1,this.horizontalPageBreaks[p].points=g,this.horizontalPageBreaks[p].redraw();else(v=new mxPolyline(g,this.pageBreakColor,this.scale)).dialect=this.dialect,v.isDashed=this.pageBreakDashed,v.addPipe=!1,v.scale=a,v.init(this.view.backgroundPane),v.redraw(),this.horizontalPageBreaks[p]=v}for(p=d;p<this.horizontalPageBreaks.length;p++)this.horizontalPageBreaks[p].destroy();this.horizontalPageBreaks.splice(d,this.horizontalPageBreaks.length-d)}if(null==this.verticalPageBreaks&&0<c&&(this.verticalPageBreaks=[]),null!=this.verticalPageBreaks){for(p=0;p<=c;p++){var v;g=[new mxPoint(r.x,r.y+(p+1)*l.height),new mxPoint(m,r.y+(p+1)*l.height)];if(null!=this.verticalPageBreaks[p])this.verticalPageBreaks[p].scale=1,this.verticalPageBreaks[p].points=g,this.verticalPageBreaks[p].redraw();else(v=new mxPolyline(g,this.pageBreakColor,a)).dialect=this.dialect,v.isDashed=this.pageBreakDashed,v.addPipe=!1,v.scale=a,v.init(this.view.backgroundPane),v.redraw(),this.verticalPageBreaks[p]=v}for(p=c;p<this.verticalPageBreaks.length;p++)this.verticalPageBreaks[p].destroy();this.verticalPageBreaks.splice(c,this.verticalPageBreaks.length-c)}},mxEdgeHandler.prototype.snapToTerminals=!0,mxGraphHandler.prototype.guidesEnabled=!0;var s=mxGraphHandler.prototype.shouldRemoveCellsFromParent;mxGraphHandler.prototype.shouldRemoveCellsFromParent=function(e,n,t){for(var a=0;a<n.length;a++)if(this.graph.getModel().isVertex(n[a])){var i=this.graph.getCellGeometry(n[a]);if(null!=i&&i.relative)return!1}return s.apply(this,arguments)},mxGuide.prototype.isEnabledForEvent=function(e){return!mxEvent.isAltDown(e)};var r=mxPopupMenu.prototype.addItem;mxPopupMenu.prototype.addItem=function(e,n,t,a,i,s){var o=r.apply(this,arguments);return null==s||s||mxEvent.addListener(o,"mousedown",function(e){mxEvent.consume(e)}),o};var o=mxGraphHandler.prototype.getInitialCellForEvent;mxGraphHandler.prototype.getInitialCellForEvent=function(e){var n=this.graph.getModel(),t=n.getParent(this.graph.getSelectionCell()),a=o.apply(this,arguments),i=n.getParent(a);if(null==t||t!=a&&t!=i)for(;!this.graph.isCellSelected(a)&&!this.graph.isCellSelected(i)&&n.isVertex(i)&&!this.graph.isValidRoot(i);)a=i,i=this.graph.getModel().getParent(a);return a};var l=mxGraphHandler.prototype.isDelayedSelection;mxGraphHandler.prototype.isDelayedSelection=function(e){var n=l.apply(this,arguments),t=this.graph.getModel(),a=t.getParent(this.graph.getSelectionCell()),i=t.getParent(e);return(null==a||a!=e&&a!=i)&&(this.graph.isCellSelected(e)||!t.isVertex(i)||this.graph.isValidRoot(i)||(n=!0)),n},mxGraphHandler.prototype.selectDelayed=function(e){var n=e.getCell();null==n&&(n=this.cell);for(var t=this.graph.getModel(),a=t.getParent(n);this.graph.isCellSelected(n)&&t.isVertex(a)&&!this.graph.isValidRoot(a);)n=a,a=t.getParent(n);this.graph.selectCellForEvent(n,e.getEvent())},mxPanningHandler.prototype.getCellForPopupEvent=function(e){for(var n=e.getCell(),t=this.graph.getModel(),a=t.getParent(n);t.isVertex(a)&&!this.graph.isValidRoot(a);)this.graph.isCellSelected(a)&&(n=a),a=t.getParent(a);return n}},Editor.prototype.createUndoManager=function(){var s=this.graph,t=new mxUndoManager,e=function(e,n){t.undoableEditHappened(n.getProperty("edit"))};s.getModel().addListener(mxEvent.UNDO,e),s.getView().addListener(mxEvent.UNDO,e);var n=function(e,n){for(var t=s.getSelectionCellsForChanges(n.getProperty("edit").changes),a=[],i=1;i<t.length;i++)null!=s.view.getState(t[i])&&a.push(t[i]);s.setSelectionCells(a)};return t.addListener(mxEvent.UNDO,n),t.addListener(mxEvent.REDO,n),t},Editor.prototype.initStencilRegistry=function(){mxStencilRegistry.loadStencilSet(STENCIL_PATH+"/general.xml")},mxStencilRegistry.libraries={},mxStencilRegistry.packages=[],mxStencilRegistry.getStencil=function(e){var n=mxStencilRegistry.stencils[e];if(null==n){var t=mxStencilRegistry.getBasenameForStencil(e);if(null!=t){var a=mxStencilRegistry.libraries[t];if(null!=a){if(null==mxStencilRegistry.packages[t]){mxStencilRegistry.packages[t]=1;for(var i=0;i<a.length;i++){var s=a[i];if(".xml"==s.toLowerCase().substring(s.length-4,s.length))mxStencilRegistry.loadStencilSet(s,null);else if(".js"==s.toLowerCase().substring(s.length-3,s.length)){var o=mxUtils.load(s);null!=o&&eval.call(window,o.getText())}}}}else mxStencilRegistry.loadStencilSet(STENCIL_PATH+"/"+t+".xml",null);n=mxStencilRegistry.stencils[e]}}return n},mxStencilRegistry.getBasenameForStencil=function(e){var n=e.split("."),t=null;if(0<n.length&&"mxgraph"==n[0]){t=n[1];for(var a=2;a<n.length-1;a++)t+="/"+n[a]}return t},mxStencilRegistry.loadStencilSet=function(e,n,t){t=null!=t&&t;var a=mxStencilRegistry.packages[e];if(t||null==a){var i=!1;null==a&&(a=mxUtils.load(e).getXml(),mxStencilRegistry.packages[e]=a,i=!0),mxStencilRegistry.parseStencilSet(a,n,i)}},mxStencilRegistry.parseStencilSet=function(e,n,t){t=null==t||t;var a=e.documentElement,i=a.firstChild,s="",o=a.getAttribute("name");for(null!=o&&(s=o+".");null!=i;){if(i.nodeType==mxConstants.NODETYPE_ELEMENT&&null!=(o=i.getAttribute("name"))){s=s.toLowerCase();var r=o.replace(/ /g,"_");if(t&&mxStencilRegistry.addStencil(s+r.toLowerCase(),new mxStencil(i)),null!=n){var l=i.getAttribute("w"),d=i.getAttribute("h");n(s,r,o,l=null==l?80:parseInt(l,10),d=null==d?80:parseInt(d,10))}}i=i.nextSibling}},OpenFile=function(e){this.producer=null,this.consumer=null,this.done=e},OpenFile.prototype.setConsumer=function(e){this.consumer=e,this.execute()},OpenFile.prototype.setData=function(e,n){this.data=e,this.filename=n,this.execute()},OpenFile.prototype.error=function(e){this.cancel(),mxUtils.alert(e)},OpenFile.prototype.execute=function(){null!=this.consumer&&null!=this.data&&(this.consumer(this.data,this.filename),this.cancel())},OpenFile.prototype.cancel=function(){null!=this.done&&this.done()},Sidebar.prototype.init=function(){var e=STENCIL_PATH;this.addSearchPalette(!0),this.addImagePalette("entry",mxResources.get("entry"),e+"/entry/","_128x128.png",["start","finally","end"],[mxResources.get("start"),mxResources.get("finally"),mxResources.get("end")]),this.addImagePalette("call_management",mxResources.get("call_management"),e+"/call_management/","_128x128.png",["answer","hangup","dial","ext_dial","queue","voicemail","callback"],[mxResources.get("answer"),mxResources.get("hangup"),mxResources.get("dial"),mxResources.get("ext_dial"),mxResources.get("queue"),mxResources.get("voicemail"),mxResources.get("callback")]),this.addImagePalette("agent_management",mxResources.get("agent_management"),e+"/agent_management/","_128x128.png",["login","pause","unpause","logout"],[mxResources.get("login"),mxResources.get("pause"),mxResources.get("unpause"),mxResources.get("logout")]),this.addImagePalette("variable",mxResources.get("variable"),e+"/variable/","_128x128.png",["set","math"],[mxResources.get("set"),mxResources.get("math")]),this.addImagePalette("playback",mxResources.get("playback"),e+"/playback/","_128x128.png",["playback","menu","saydigits","saynumber","sayphonetic","getdigits","getsecretdigits"],[mxResources.get("playback"),mxResources.get("menu"),mxResources.get("saydigits"),mxResources.get("saynumber"),mxResources.get("sayphonetic"),mxResources.get("getdigits"),mxResources.get("getsecretdigits")]),this.addImagePalette("recording",mxResources.get("recording"),e+"/recording/","_128x128.png",["record"],[mxResources.get("record")]),this.addImagePalette("tts","TTS",e+"/tts/","_128x128.png",["google_cloud_tts","tts","ispeechtts","awspolly","lumenvoxtts","sestektts","mrcpsynth"],["Google Cloud TTS","GoogleTTS","ISpeechTTS","AWSPolly","LumenvoxTTS","SestekTTS","MRCPSynth"]),this.addImagePalette("asr","ASR",e+"/asr/","_128x128.png",["googleasr","ispeechasr","lumenvoxasr","tildeasr","sestekasr","mrcprecog"],["GoogleASR","ISpeechASR","LumenvoxASR","TildeASR","SestekASR","MRCPRecog"]),this.addImagePalette("integrationServer",mxResources.get("integrationServer"),e+"/integration_server/","_128x128.png",["database","sendMail","sendSMS","dialogflow","dialogflowV2","awslex","sesteknda","restapi"],[mxResources.get("database"),mxResources.get("sendMail"),mxResources.get("sendSMS"),"Dialogflow","DialogflowV2","AWSLex","SestekNDA","RestAPI"]),this.addImagePalette("callflow",mxResources.get("callflow"),e+"/callflow/","_128x128.png",["gotoc","gotoif","gotoiftime","vswitch"],[mxResources.get("gotoc"),mxResources.get("gotoif"),mxResources.get("gotoiftime"),mxResources.get("vswitch")]),this.addImagePalette("stats",mxResources.get("stats"),e+"/stats/","_128x128.png",["goal"],[mxResources.get("goal")]),this.addImagePalette("general",mxResources.get("general"),e+"/general/","_128x128.png",["noop","system","agi","subproject","custom_app"],[mxResources.get("noop"),mxResources.get("system"),mxResources.get("agi"),mxResources.get("subproject"),mxResources.get("custom_app")])},Sidebar.prototype.collapsedImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhDQANAIABAJmZmf///yH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozNUQyRTJFNjZGNUYxMUU1QjZEOThCNDYxMDQ2MzNCQiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozNUQyRTJFNzZGNUYxMUU1QjZEOThCNDYxMDQ2MzNCQiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjFERjc3MEUxNkY1RjExRTVCNkQ5OEI0NjEwNDYzM0JCIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjFERjc3MEUyNkY1RjExRTVCNkQ5OEI0NjEwNDYzM0JCIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Af/+/fz7+vn49/b19PPy8fDv7u3s6+rp6Ofm5eTj4uHg397d3Nva2djX1tXU09LR0M/OzczLysnIx8bFxMPCwcC/vr28u7q5uLe2tbSzsrGwr66trKuqqainpqWko6KhoJ+enZybmpmYl5aVlJOSkZCPjo2Mi4qJiIeGhYSDgoGAf359fHt6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNiYWBfXl1cW1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMCAQAAIfkEAQAAAQAsAAAAAA0ADQAAAhSMj6lrwAjcC1GyahV+dcZJgeIIFgA7":IMAGE_PATH+"/collapsed.gif",Sidebar.prototype.expandedImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhDQANAIABAJmZmf///yH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxREY3NzBERjZGNUYxMUU1QjZEOThCNDYxMDQ2MzNCQiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxREY3NzBFMDZGNUYxMUU1QjZEOThCNDYxMDQ2MzNCQiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjFERjc3MERENkY1RjExRTVCNkQ5OEI0NjEwNDYzM0JCIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjFERjc3MERFNkY1RjExRTVCNkQ5OEI0NjEwNDYzM0JCIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Af/+/fz7+vn49/b19PPy8fDv7u3s6+rp6Ofm5eTj4uHg397d3Nva2djX1tXU09LR0M/OzczLysnIx8bFxMPCwcC/vr28u7q5uLe2tbSzsrGwr66trKuqqainpqWko6KhoJ+enZybmpmYl5aVlJOSkZCPjo2Mi4qJiIeGhYSDgoGAf359fHt6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNiYWBfXl1cW1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMCAQAAIfkEAQAAAQAsAAAAAA0ADQAAAhGMj6nL3QAjVHIu6azbvPtWAAA7":IMAGE_PATH+"/expanded.gif",Sidebar.prototype.tooltipImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAbCAMAAAB7jU7LAAAACVBMVEX///+ZmZn///9Y2COLAAAAA3RSTlP//wDXyg1BAAAAOElEQVR42mXQMQ4AMAgDsWv//+iutcJmIQSk+9dJpVKpVCqVSqVSqZTdncWzF8/NeP7FkxWenPEDOnUBiL3jWx0AAAAASUVORK5CYII=":IMAGE_PATH+"/tooltip.png",Sidebar.prototype.searchImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAEaSURBVHjabNGxS5VxFIfxz71XaWuQUJCG/gCHhgTD9VpEETg4aMOlQRp0EoezObgcd220KQiXmpretTAHQRBdojlQEJyukPdt+b1ywfvAGc7wnHP4nlZd1yKijQW8xzNc4Su+ZOYfQ3T6/f4YNvEJYzjELXp4VVXVz263+7cR2niBxAFeZ2YPi3iHR/gYERPDwhpOsd6sz8x/mfkNG3iOlWFhFj8y89J9KvzGXER0GuEaD42mgwHqUtoljbcRsTBCeINpfM/MgZLKPpaxFxGbOCqDXmILN7hoJrTKH+axhxmcYRxP0MIDnOBDZv5q1XUNIuJxifJp+UNV7t7BFM6xeic0RMQ4Bpl5W/ol7GISx/eEUUTECrbx+f8A8xhiZht9zsgAAAAASUVORK5CYII=":IMAGE_PATH+"/search.png",Sidebar.prototype.enableTooltips=!0,Sidebar.prototype.tooltipBorder=16,Sidebar.prototype.tooltipDelay=300,Sidebar.prototype.dropTargetDelay=200,Sidebar.prototype.thumbWidth=36,Sidebar.prototype.thumbHeight=36,Sidebar.prototype.thumbPadding=5<=document.documentMode?0:1,Sidebar.prototype.thumbBorder=2,Sidebar.prototype.sidebarTitleSize=9,Sidebar.prototype.sidebarTitles=!1,Sidebar.prototype.tooltipTitles=!0,Sidebar.prototype.maxTooltipWidth=400,Sidebar.prototype.maxTooltipHeight=400,Sidebar.prototype.addStencilsToIndex=!0,Sidebar.prototype.defaultImageWidth=80,Sidebar.prototype.defaultImageHeight=80,Sidebar.prototype.getOffset=function(e){return{left:(e=e.getBoundingClientRect()).left+window.scrollX,top:e.top+window.scrollY}},Sidebar.prototype.showTooltip=function(c,m,u,p,g,v){if(this.enableTooltips&&this.showTooltips&&this.currentElt!=c){null!=this.thread&&(window.clearTimeout(this.thread),this.thread=null);var e=mxUtils.bind(this,function(){null==this.tooltip&&(this.tooltip=document.createElement("div"),this.tooltip.className="geSidebarTooltip",this.tooltip.style.zIndex=mxPopupMenu.prototype.zIndex-1,document.body.appendChild(this.tooltip),this.graph2=new Graph(this.tooltip,null,null,this.editorUi.editor.graph.getStylesheet()),this.graph2.resetViewOnRootChange=!1,this.graph2.foldingEnabled=!1,this.graph2.gridEnabled=!1,this.graph2.autoScroll=!1,this.graph2.setTooltips(!1),this.graph2.setConnectable(!1),this.graph2.setEnabled(!1),mxClient.IS_SVG||(this.graph2.view.canvas.style.position="relative"),this.tooltipImage=mxUtils.createImage(this.tooltipImage),this.tooltipImage.className="geSidebarTooltipImage",this.tooltipImage.style.zIndex=mxPopupMenu.prototype.zIndex-1,this.tooltipImage.style.position="absolute",this.tooltipImage.style.width="14px",this.tooltipImage.style.height="27px",document.body.appendChild(this.tooltipImage)),this.graph2.model.clear(),this.graph2.view.setTranslate(this.tooltipBorder,this.tooltipBorder),u>this.maxTooltipWidth||p>this.maxTooltipHeight?this.graph2.view.scale=Math.round(100*Math.min(this.maxTooltipWidth/u,this.maxTooltipHeight/p))/100:this.graph2.view.scale=1,this.tooltip.style.display="block",this.graph2.labelsVisible=null==v||v,this.graph2.addCells(m);var e=this.graph2.getGraphBounds(),n=e.width+2*this.tooltipBorder+4,t=e.height+2*this.tooltipBorder;if(mxClient.IS_QUIRKS?(t+=4,this.tooltip.style.overflow="hidden"):this.tooltip.style.overflow="visible",this.tooltipImage.style.visibility="visible",this.tooltip.style.width=n+"px",this.tooltipTitles&&null!=g&&0<g.length){null==this.tooltipTitle?(this.tooltipTitle=document.createElement("div"),this.tooltipTitle.style.borderTop="1px solid gray",this.tooltipTitle.style.textAlign="center",this.tooltipTitle.style.width="100%",this.tooltipTitle.style.overflow="hidden",mxClient.IS_SVG||(this.tooltipTitle.style.position="absolute"),this.tooltipTitle.style.paddingTop="6px",this.tooltip.appendChild(this.tooltipTitle)):this.tooltipTitle.innerHTML="",this.tooltipTitle.style.display="",mxUtils.write(this.tooltipTitle,g);var a=this.tooltipTitle.offsetHeight+10;t+=a,mxClient.IS_SVG?this.tooltipTitle.style.marginTop=2-a+"px":(t-=6,this.tooltipTitle.style.top=t-a+"px")}else null!=this.tooltipTitle&&null!=this.tooltipTitle.parentNode&&(this.tooltipTitle.style.display="none");this.tooltip.style.height=t+"px";var i=-Math.round(e.x-this.tooltipBorder),s=-Math.round(e.y-this.tooltipBorder),o=document.body,r=document.documentElement,l=(o.clientHeight||r.clientHeight,document.getElementById("vertical-navigation").offsetWidth+this.container.clientWidth),d=Math.max(0,this.getOffset(c).top-this.container.scrollTop-t/2+16);mxClient.IS_SVG?0!=i||0!=s?this.graph2.view.canvas.setAttribute("transform","translate("+i+","+s+")"):this.graph2.view.canvas.removeAttribute("transform"):(this.graph2.view.drawPane.style.left=i+"px",this.graph2.view.drawPane.style.top=s+"px"),this.tooltip.style.position="absolute",this.tooltip.style.left=l+"px",this.tooltip.style.top=d+"px",this.tooltipImage.style.left=l-13+"px",this.tooltipImage.style.top=d+t/2-13+"px"});null!=this.tooltip&&"none"!=this.tooltip.style.display?e():this.thread=window.setTimeout(e,this.tooltipDelay),this.currentElt=c}},Sidebar.prototype.hideTooltip=function(){null!=this.thread&&(window.clearTimeout(this.thread),this.thread=null),null!=this.tooltip&&(this.tooltip.style.display="none",this.tooltipImage.style.visibility="hidden",this.currentElt=null)},Sidebar.prototype.addEntry=function(e,n){if(null!=this.taglist&&null!=e&&0<e.length)for(var t=e.toLowerCase().replace(/[\/\,\(\)]/g," ").split(" "),a=0;a<t.length;a++)if(t[a]=t[a].replace(/\.*\d*$/,""),1<t[a].length){var i=this.taglist[t[a]];null==i&&(i={entries:[],dict:new mxDictionary},this.taglist[t[a]]=i),null==i.dict.get(n)&&(i.dict.put(n,n),i.entries.push(n))}return n},Sidebar.prototype.searchEntries=function(e,n,t,a,i){if(null!=this.taglist&&null!=e){for(var s=e.toLowerCase().split(" "),o=new mxDictionary,r=(t+1)*n,l=[],d=0,c=0;c<s.length;c++)if(0<s[c].length){var m=this.taglist[s[c]],u=new mxDictionary;if(null!=m){var p=m.entries;l=[];for(var g=0;g<p.length;g++){m=p[g];if(0==d==(null==o.get(m))&&(u.put(m,m),l.push(m),c==s.length-1&&l.length==r))return void a(l.slice(t*n,r),r,!0)}}else l=[];o=u,d++}var v=l.length;a(l.slice(t*n,(t+1)*n),v,!1)}else a([])},Sidebar.prototype.filterTags=function(e){if(null==e)return null;for(var n=e.split(" "),t=[],a={},i=0;i<n.length;i++)null==a[n[i]]&&(a[n[i]]="1",t.push(n[i]));return t.join(" ")},Sidebar.prototype.cloneCell=function(e,n){var t=e.clone();return null!=n&&(t.value=n),t},Sidebar.prototype.addSearchPalette=function(e){var n=document.createElement("div");n.style.visibility="hidden",this.container.appendChild(n);var r=document.createElement("div");r.className="geSidebar",r.style.boxSizing="border-box",r.style.overflow="hidden",r.style.width="100%",r.style.padding="8px",r.style.paddingTop="14px",r.style.paddingBottom="0px",e||(r.style.display="none");var t=document.createElement("div");t.style.whiteSpace="nowrap",t.style.textOverflow="clip",t.style.paddingBottom="8px",t.style.cursor="default";var a=document.createElement("input");a.setAttribute("placeholder",mxResources.get("searchShapes")),a.setAttribute("type","text"),a.style.fontSize="12px",a.style.overflow="hidden",a.style.boxSizing="border-box",a.style.border="solid 1px #d5d5d5",a.style.borderRadius="4px",a.style.width="100%",a.style.outline="none",a.style.padding="6px",t.appendChild(a);var i,s=document.createElement("img");s.setAttribute("src",Sidebar.prototype.searchImage),s.setAttribute("title",mxResources.get("search")),s.style.position="relative",s.style.left="-18px",mxClient.IS_QUIRKS?(a.style.height="28px",s.style.top="-4px"):s.style.top="2px",s.style.background="url('"+this.editorUi.editor.transparentImage+"')",t.appendChild(s),r.appendChild(t);var l=document.createElement("center"),d=mxUtils.button(mxResources.get("moreResults"),function(){i()});d.style.display="none",d.style.lineHeight="normal",d.style.marginTop="4px",d.style.marginBottom="8px",l.style.paddingTop="4px",l.style.paddingBottom="8px",l.appendChild(d),r.appendChild(l);var c="",m=!1,u=!1,p=0,g=new Object,v=12,h=mxUtils.bind(this,function(){m=!1,this.currentSearch=null;for(var e=r.firstChild;null!=e;){var n=e.nextSibling;e!=t&&e!=l&&e.parentNode.removeChild(e),e=n}});i=mxUtils.bind(this,function(){if(v=4*Math.max(1,Math.floor(this.container.clientWidth/(this.thumbWidth+10))),this.hideTooltip(),""!=a.value){if(null!=l.parentNode&&(c!=a.value&&(h(),c=a.value,g=new Object,u=!1,p=0),!m&&!u)){d.setAttribute("disabled","true"),d.style.display="",d.style.cursor="wait",d.innerHTML=mxResources.get("loading")+"...",m=!0;var o=new Object;this.currentSearch=o,this.searchEntries(c,v,p,mxUtils.bind(this,function(e,n,t){if(this.currentSearch==o){e=null!=e?e:[],m=!1,p++,l.parentNode.removeChild(l);for(var a=0;a<e.length;a++){var i=e[a]();null==g[i.innerHTML]&&(g[i.innerHTML]="1",r.appendChild(e[a]()))}if(t?(d.removeAttribute("disabled"),d.innerHTML=mxResources.get("moreResults")):(d.innerHTML=mxResources.get("reset"),d.style.display="none",u=!0),d.style.cursor="",0==e.length&&1==p){var s=document.createElement("div");s.className="geTitle",s.style.backgroundColor="transparent",s.style.borderColor="transparent",s.style.color="gray",s.style.padding="0px",s.style.margin="0px 8px 0px 8px",s.style.paddingTop="6px",s.style.textAlign="center",s.style.cursor="default",mxUtils.write(s,mxResources.get("noResultsFor",[c])),r.appendChild(s)}r.appendChild(l)}}),mxUtils.bind(this,function(){d.style.cursor=""}))}}else h(),a.value="",c="",g=new Object,d.style.display="none",u=!1,a.focus()}),mxEvent.addListener(a,"keydown",mxUtils.bind(this,function(e){13==e.keyCode&&i()})),mxEvent.addListener(a,"focus",function(){a.style.paddingRight="",s.style.display="none"}),mxEvent.addListener(a,"blur",function(){a.style.paddingRight="20px",s.style.display=""}),a.style.paddingRight="20px",mxEvent.addListener(a,"keyup",mxUtils.bind(this,function(e){""==a.value?(u=!0,d.style.display="none"):a.value!=c?(d.style.display="none",u=!1):m||(d.style.display=u?"none":"")})),mxEvent.addListener(a,"mousedown",function(e){e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0}),mxEvent.addListener(a,"selectstart",function(e){e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0});var o=document.createElement("div");o.appendChild(r),this.container.appendChild(o),this.palettes.search=[n,o]},Sidebar.prototype.createTitle=function(e){var n=document.createElement("a");return n.setAttribute("href","javascript:void(0);"),n.setAttribute("title",mxResources.get("sidebarTooltip")),n.className="geTitle",mxUtils.write(n,e),n},Sidebar.prototype.createThumb=function(e,n,t,a,i,s,o,r,l){this.graph.labelsVisible=null==s||s;var d=mxClient.NO_FO;mxClient.NO_FO=Editor.prototype.originalNoForeignObject,this.graph.view.scaleAndTranslate(1,0,0),this.graph.addCells(e);var c=this.graph.getGraphBounds(),m=Math.floor(100*Math.min((n-2*this.thumbBorder)/c.width,(t-2*this.thumbBorder)/c.height))/100;this.graph.view.scaleAndTranslate(m,Math.floor((n-c.width*m)/2/m-c.x),Math.floor((t-c.height*m)/2/m-c.y));var u=null;if(this.graph.dialect!=mxConstants.DIALECT_SVG||mxClient.NO_FO?(u=this.graph.container.cloneNode(!1)).innerHTML=this.graph.container.innerHTML:u=this.graph.view.getCanvas().ownerSVGElement.cloneNode(!0),this.graph.getModel().clear(),mxClient.NO_FO=d,mxClient.IS_IE6&&(a.style.backgroundImage="url("+this.editorUi.editor.transparentImage+")"),u.style.position="relative",u.style.overflow="hidden",u.style.cursor="move",u.style.left=this.thumbBorder+"px",u.style.top=this.thumbBorder+"px",u.style.width=n+"px",u.style.height=t+"px",u.style.visibility="",u.style.minWidth="",u.style.minHeight="",a.appendChild(u),this.sidebarTitles&&null!=i&&0!=o){var p=mxClient.IS_QUIRKS?2*this.thumbPadding+2:0;a.style.height=this.thumbHeight+p+this.sidebarTitleSize+8+"px";var g=document.createElement("div");g.style.fontSize=this.sidebarTitleSize+"px",g.style.color="#303030",g.style.textAlign="center",g.style.whiteSpace="nowrap",mxClient.IS_IE&&(g.style.height=this.sidebarTitleSize+12+"px"),g.style.paddingTop="4px",mxUtils.write(g,i),a.appendChild(g)}return c},Sidebar.prototype.createItem=function(n,t,a,e,i,s,o){var r=document.createElement("a");r.setAttribute("href","javascript:void(0);"),r.className="geItem",r.style.overflow="hidden";var l=mxClient.IS_QUIRKS?8+2*this.thumbPadding:2*this.thumbBorder;r.style.width=this.thumbWidth+l+"px",r.style.height=this.thumbHeight+l+"px",r.style.padding=this.thumbPadding+"px",mxEvent.addListener(r,"click",function(e){mxEvent.consume(e)}),this.createThumb(n,this.thumbWidth,this.thumbHeight,r,t,a,e,i,s);var d=new mxRectangle(0,0,i,s);if(1<n.length||n[0].vertex){var c=this.createDragSource(r,this.createDropHandler(n,!0,o,d),this.createDragPreview(i,s),n,d);this.addClickHandler(r,c,n),c.isGuidesEnabled=mxUtils.bind(this,function(){return this.editorUi.editor.graph.graphHandler.guidesEnabled})}else if(null!=n[0]&&n[0].edge){c=this.createDragSource(r,this.createDropHandler(n,!1,o,d),this.createDragPreview(i,s),n,d);this.addClickHandler(r,c,n)}return mxClient.IS_IOS||mxEvent.addGestureListeners(r,null,mxUtils.bind(this,function(e){this.showTooltip(r,n,d.width,d.height,t,a)})),r},Sidebar.prototype.createDropHandler=function(g,v,h,f){return h=null==h||h,mxUtils.bind(this,function(e,n,t,a,i){if(e.isEnabled()){if(0<(g=e.getImportableCells(g)).length){e.stopEditing();var s=null!=t&&e.isValidDropTarget(t,g,n),o=null;if(null==t||s||(t=null),!e.isCellLocked(t||e.getDefaultParent())){e.model.beginUpdate();try{if(a=Math.round(a),i=Math.round(i),v&&e.isSplitTarget(t,g,n)){var r=e.cloneCells(g);e.splitEdge(t,r,null,a-f.width/2,i-f.height/2),o=r}else 0<g.length&&(o=e.importCells(g,a,i,t));if(null!=e.layoutManager){var l=e.layoutManager.getLayout(t);if(null!=l)for(var d=e.view.scale,c=e.view.translate,m=(a+c.x)*d,u=(i+c.y)*d,p=0;p<o.length;p++)l.moveCell(o[p],m,u)}h&&e.fireEvent(new mxEventObject("cellsInserted","cells",o))}finally{e.model.endUpdate()}null!=o&&0<o.length&&(e.scrollCellToVisible(o[0]),e.setSelectionCells(o))}}mxEvent.consume(n)}})},Sidebar.prototype.createDragPreview=function(e,n){var t=document.createElement("div");return t.style.border="1px dashed black",t.style.width=e+"px",t.style.height=n+"px",t},Sidebar.prototype.createDragSource=function(e,n,t){var a=mxUtils.makeDraggable(e,this.editorUi.editor.graph,n,t,0,0,this.editorUi.editor.graph.autoscroll,!0,!0);return a.getDropTarget=function(e,n,t){var a=mxDragSource.prototype.getDropTarget.apply(this,arguments);return e.isValidRoot(a)||(a=null),a},a},Sidebar.prototype.addClickHandler=function(e,a){var i=this.editorUi.editor.graph,s=null;mxEvent.addGestureListeners(e,function(e){s=new mxPoint(mxEvent.getClientX(e),mxEvent.getClientY(e))});var o=a.mouseUp;a.mouseUp=function(e){if(!mxEvent.isPopupTrigger(e)&&null==this.currentGraph&&null!=s){var n=i.tolerance;if(Math.abs(s.x-mxEvent.getClientX(e))<=n&&Math.abs(s.y-mxEvent.getClientY(e))<=n){var t=i.getGridSize();a.drop(i,e,null,t,t)}}o.apply(this,arguments),s=null}},Sidebar.prototype.createVertexTemplateEntry=function(e,n,t,a,i,s,o,r){return r=null!=r&&0<r.length?r:i.toLowerCase(),this.addEntry(r,mxUtils.bind(this,function(){return this.createVertexTemplate(e,n,t,a,i,s,o)}))},Sidebar.prototype.createXmlDocument=function(e,n,t,a){var i=mxUtils.createXmlDocument().createElement(e);return i.setAttribute("label",n),t.forEach(function(e,n){i.setAttribute(e,a[n]?a[n]:"")}),i},Sidebar.prototype.createVertexTemplate=function(e,n,t,a,i,s,o,r){var l=[],d=[];switch(a){case"answer":l=["timeout"],d=["0"];break;case"start":l=["answer"],d=["yes"];break;case"googleasr":l=["key","google_asr_language","timeout","intKey","beep"],d=["","it-IT","10","#","BEEP"];break;case"tildeasr":l=["uri","appid","appsecret","timeout","intKey","beep"],d=["wss://runa.tilde.lv/client/ws/speech/LVASR-ONLINE","","","10","#","BEEP"];break;case"ispeechasr":l=["key","model","ispeech_asr_language","timeout","intKey","beep"],d=["","","it-IT","10","#","BEEP"];break;case"playback":l=["file_id","opts"],d=["0"];break;case"background":l=["file_id","response","digit"],d=["0","5","1"];break;case"menu":l=["file_id","response","digit","retry","variable_id"],d=["0","5","1","1","0"];break;case"getdigits":l=["file_id","response","mindigit","maxdigit","retry","variable_id"],d=["0","5","1","10","1","0"];break;case"getsecretdigits":l=["file_id","response","mindigit","maxdigit","retry","hiddendigitsnum","hiddendigitspos","variable_id"],d=["0","5","1","10","1","0","first","0"];break;case"custom_app":l=["application","options"],d=["",""];break;case"set":l=["variable_id","variable_value"],d=["0",""];break;case"database":l=["odbc_id","query","variable_id"],d=["0","",""];break;case"noop":l=["output"],d=[];break;case"gotoc":l=["context","extension","priority"],d=["","","1"];break;case"system":l=["variable_id","command"],d=[];break;case"agi":l=["command","args"],d=[];break;case"gotoif":l=["condition"],d=[];break;case"gotoiftime":l=["interval_id"],d=["0"];break;case"vswitch":l=["variable_id"],d=["0"];break;case"saydigits":l=["digits","escape_digits"],d=["","#"];break;case"saynumber":l=["number","escape_digits"],d=["","#"];break;case"sayphonetic":l=["text","escape_digits"],d=["","#"];break;case"record":l=["file","recordingFormat","timeout","escape_digits"],d=["","wav","-1","#"];break;case"dial":l=["sip_id","timeout","opts","url"],d=["0","60"];break;case"ext_dial":l=["phone","trunk_name","timeout","opts","url"],d=["","-1","60"];break;case"google_cloud_tts":l=["apiKey","google_cloud_tts_text_type","text","languageCode","ssmlGender"],d=["","text","","en-US","FEMALE"];break;case"tts":l=["text","google_tts_language"],d=["","it"];break;case"ispeechtts":l=["text","key","ispeech_tts_language","speed","intKey"],d=["","","euritalianfemale","0","#"];break;case"lumenvoxtts":case"sestektts":l=["text","options"],d=["",""];break;case"lumenvoxasr":l=["grammar","options"],d=["",""];break;case"sestekasr":l=["grammar","options"],d=["/usr/local/unimrcp/data/grammar.xml",""];break;case"awspolly":l=["aws_access_key_id","aws_secret_access_key","aws_polly_region","aws_polly_voice","text","aws_text_type"],d=["","","eu-west-1","Amy","","text"];break;case"awslex":l=["aws_access_key_id","aws_secret_access_key","aws_lex_region","aws_bot_name","text"],d=["","","eu-west-1","",""];break;case"queue":l=["queue_id","opts","url","file_id","timeout","agi","macro","gosub","position"],d=["-1","xX","","","300"];break;case"voicemail":l=["mailbox","options"],d=["",""];break;case"subproject":l=["project_id"],d=["0"];break;case"math":l=["operation","variable_id"],d=["","0"];break;case"queuelog":l=["queuename","agent","queue_event","data1","data2","data3","data4","data5"],d=[];break;case"goal":l=["goalname"],d=[];break;case"callback":l=["name","lastName","phone","list_id","delay","callback_priority"],d=["{CALLERID(name)}","","{CALLERID(num)}","-1","5","2"];break;case"sendSMS":l=["sms_account_id","to","sms_text"],d=["0"];break;case"sendMail":l=["account_id","to","cc","bcc","subject","text"],d=["0"];break;case"sendFax":l=["account_id","to","choose_attachment","attachment_name","attachment_type","attachment_path"],d=["0"];break;case"login":case"unpause":case"logout":l=["findBy"],d=["internal"];break;case"pause":l=["findBy","pause_id"],d=["internal",""];break;case"dialogflow":l=["key","text","dialogflow_language"],d=["","","it"];break;case"sesteknda":l=["ndauth_url","username","password","ndassistant_url","text","project","ndagenerate_audio","custom_action","custom_action_data","ndaactivity_type"],d=["","","","","","",1,"","","message"];break;case"restapi":l=["url","method","timeout","computedVariables","rawHeaders","rawBody","variable_id"],d=["","GET","5","","","",""];break;case"mrcpsynth":l=["text","options"],d=["",""];break;case"mrcprecog":l=["grammar","options"],d=["",""];break;case"dialogflowV2":l=["dialogflowV2_project_id","client_email","private_key","dialogflowV2_language","text"],d=["","","","en",""];break;default:l=[],d=[]}var c=[new mxCell(this.createXmlDocument(a,i,l,d),new mxGeometry(0,0,n,t),e)];return c[0].vertex=!0,this.createVertexTemplateFromCells(c,n,t,i,s,o,r)},Sidebar.prototype.createVertexTemplateFromCells=function(e,n,t,a,i,s,o){return this.createItem(e,a,i,s,n,t,o)},Sidebar.prototype.createEdgeTemplate=function(e,n,t,a,i,s,o){var r=new mxCell(null!=a?a:"",new mxGeometry(0,0,n,t),e);return r.geometry.setTerminalPoint(new mxPoint(0,t),!0),r.geometry.setTerminalPoint(new mxPoint(n,0),!1),r.geometry.relative=!0,r.edge=!0,this.createEdgeTemplateFromCells([r],n,t,i,s,o)},Sidebar.prototype.createEdgeTemplateFromCells=function(e,n,t,a,i,s){return this.createItem(e,a,i,!0,n,t,s)},Sidebar.prototype.addPaletteFunctions=function(e,n,t,a){this.addPalette(e,n,t,mxUtils.bind(this,function(e){for(var n=0;n<a.length;n++)e.appendChild(a[n](e))}))},Sidebar.prototype.addPalette=function(e,n,t,a){var i=this.createTitle(n);this.container.appendChild(i);var s=document.createElement("div");s.className="geSidebar",mxClient.IS_POINTER&&(s.style.touchAction="none"),mxEvent.addListener(s,"mousemove",mxUtils.bind(this,function(e){mxEvent.getSource(e)==s?s.setAttribute("title",mxResources.get("sidebarTooltip")):s.removeAttribute("title")})),t?(a(s),a=null):s.style.display="none",this.addFoldingHandler(i,s,a);var o=document.createElement("div");return o.appendChild(s),this.container.appendChild(o),null!=e&&(this.palettes[e]=[i,o]),s},Sidebar.prototype.addFoldingHandler=function(t,a,i){var s=!1;(!mxClient.IS_IE||8<=document.documentMode)&&(t.style.backgroundImage="none"==a.style.display?"url('"+this.collapsedImage+"')":"url('"+this.expandedImage+"')"),t.style.backgroundRepeat="no-repeat",t.style.backgroundPosition="0% 50%",mxEvent.addListener(t,"click",mxUtils.bind(this,function(e){if("none"==a.style.display){if(s)a.style.display="block";else if(s=!0,null!=i){t.style.cursor="wait";var n=t.innerHTML;t.innerHTML=mxResources.get("loading")+"...",window.setTimeout(function(){var e=mxClient.NO_FO;mxClient.NO_FO=Editor.prototype.originalNoForeignObject,i(a),mxClient.NO_FO=e,a.style.display="block",t.style.cursor="",t.innerHTML=n},0)}else a.style.display="block";t.style.backgroundImage="url('"+this.expandedImage+"')"}else t.style.backgroundImage="url('"+this.collapsedImage+"')",a.style.display="none";mxEvent.consume(e)}))},Sidebar.prototype.addImagePalette=function(e,n,s,o,r,t,a){for(var l=[],d=0;d<r.length;d++)mxUtils.bind(this,function(e,n,t){if(null==t){var a=e.lastIndexOf("/"),i=e.lastIndexOf(".");t=e.substring(0<=a?a+1:0,0<=i?i:e.length).replace(/[-_]/g," ")}l.push(this.createVertexTemplateEntry("image;html=1;image="+s+e+o,this.defaultImageWidth,this.defaultImageHeight,r[d],n,!1,!0,this.filterTags(t)))})(r[d],null!=t?t[d]:null,null!=a?a[r[d]]:null);this.addPaletteFunctions(e,n,!1,l)},"undefined"!=typeof html4&&(html4.ATTRIBS["a::target"]=0),mxConstants.SHADOW_OPACITY=.25,mxConstants.SHADOWCOLOR="#000000",mxConstants.VML_SHADOWCOLOR="#d0d0d0",mxGraph.prototype.pageBreakColor="#c0c0c0",mxGraph.prototype.pageScale=1,function(){try{if(null!=navigator&&null!=navigator.language){var e=navigator.language.toLowerCase();mxGraph.prototype.pageFormat="en-us"===e||"en-ca"===e||"es-mx"===e?mxConstants.PAGE_FORMAT_LETTER_PORTRAIT:mxConstants.PAGE_FORMAT_A4_PORTRAIT}}catch(e){}}(),mxText.prototype.baseSpacingTop=5,mxText.prototype.baseSpacingBottom=1,mxGraphModel.prototype.ignoreRelativeEdgeParent=!1,mxGraphView.prototype.gridImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhCgAKAJEAAAAAAP///8zMzP///yH5BAEAAAMALAAAAAAKAAoAAAIJ1I6py+0Po2wFADs=":IMAGE_PATH+"/grid.gif",mxGraphView.prototype.gridSteps=4,mxGraphView.prototype.minGridSize=4,mxGraphView.prototype.gridColor="#e0e0e0",mxSvgCanvas2D.prototype.foAltText="[Not supported by viewer]",Graph=function(e,n,t,a){mxGraph.call(this,e,n,t,a),this.setConnectable(!0),this.setDropEnabled(!1),this.setPanning(!0),this.setTooltips(!mxClient.IS_TOUCH),this.setAllowLoops(!1),this.setMultigraph(!1),this.allowAutoPanning=!0,this.resetEdgesOnConnect=!1,this.constrainChildren=!1,this.connectionHandler.targetConnectImage=!0,this.setAllowDanglingEdges(!1),this.connectionHandler.setCreateTarget(!1),this.connectionHandler.isValidSource=function(){return mxConnectionHandler.prototype.isValidSource.apply(this,arguments)&&"2"!=urlParams.connect},this.alternateEdgeStyle="vertical",null==a&&this.loadStylesheet();var i=new mxRubberband(this);this.getRubberband=function(){return i},this.panningHandler.addListener(mxEvent.PAN_START,mxUtils.bind(this,function(){this.container.style.cursor="pointer"})),this.panningHandler.addListener(mxEvent.PAN_END,mxUtils.bind(this,function(){this.container.style.cursor="default"})),this.isHtmlLabel=function(e){var n=this.view.getState(e),t=null!=n?n.style:this.getCellStyle(e);return"1"==t.html||"wrap"==t.whiteSpace},this.cellRenderer.getLabelValue=function(e){var n=mxCellRenderer.prototype.getLabelValue.apply(this,arguments);return"wrap"==e.style.whiteSpace&&1!=e.style.html&&(n=mxUtils.htmlEntities(n,!1)),n},this.isCellLocked=function(e){return!1},this.connectionHandler.tapAndHoldTolerance=16;var s=this.connectionHandler.tapAndHold;this.connectionHandler.tapAndHold=function(e,n){null==n?this.graph.panningHandler.active||(i.start(e.getGraphX(),e.getGraphY()),this.graph.panningHandler.panningTrigger=!1):tapAndHoldStartsConnection?s.apply(this,arguments):this.graph.isCellSelected(n.cell)&&1<this.graph.getSelectionCount()&&this.graph.removeSelectionCell(n.cell)},touchStyle&&this.initTouch()},mxUtils.extend(Graph,mxGraph),Graph.prototype.minFitScale=null,Graph.prototype.maxFitScale=null,Graph.prototype.loadStylesheet=function(){var e=mxUtils.load(STYLE_PATH+"/default.xml").getDocumentElement();new mxCodec(e.ownerDocument).decode(e,this.getStylesheet())},Graph.prototype.flipEdge=function(e){if(null!=e){var n=this.view.getState(e),t=null!=n?n.style:this.getCellStyle(e);if(null!=t){var a=mxUtils.getValue(t,mxConstants.STYLE_ELBOW,mxConstants.ELBOW_HORIZONTAL)==mxConstants.ELBOW_HORIZONTAL?mxConstants.ELBOW_VERTICAL:mxConstants.ELBOW_HORIZONTAL;this.setCellStyles(mxConstants.STYLE_ELBOW,a,[e])}}},Graph.prototype.setDefaultEdge=function(e){if(null!=e&&this.getModel().isEdge(e)){var n=this.getModel().cloneCells([e])[0];null!=n.geometry&&(n.geometry.points=null);var t=n.getStyle();t=mxUtils.setStyle(t,mxConstants.STYLE_ENTRY_X,null),t=mxUtils.setStyle(t,mxConstants.STYLE_ENTRY_Y,null),t=mxUtils.setStyle(t,mxConstants.STYLE_EXIT_X,null),t=mxUtils.setStyle(t,mxConstants.STYLE_EXIT_Y,null),n.setStyle(t),this.connectionHandler.createEdgeState=function(e){return this.graph.view.createState(n)},this.connectionHandler.factoryMethod=function(){return this.graph.cloneCells([n])[0]}}},Graph.prototype.isCellFoldable=function(e){return this.foldingEnabled&&this.isSwimlane(e)},Graph.prototype.isValidRoot=function(e){return this.isSwimlane(e)},Graph.prototype.createGroupCell=function(){var e=mxGraph.prototype.createGroupCell.apply(this,arguments);return e.setStyle("group"),e},Graph.prototype.getTooltipForCell=function(e){var n="";return this.getModel().isVertex(e)?n+=mxResources.get("description_"+e.value.nodeName)||"":this.getModel().isEdge(e)&&(n=mxGraph.prototype.getTooltipForCell.apply(this,arguments)),n},Graph.prototype.convertValueToString=function(e){return null!=e.value&&"object"==typeof e.value?e.value.getAttribute("label"):mxGraph.prototype.convertValueToString.apply(this,arguments)},Graph.prototype.cellLabelChanged=function(e,n,t){if(null!=e.value&&"object"==typeof e.value){var a=e.value.cloneNode(!0);a.setAttribute("label",n),n=a}mxGraph.prototype.cellLabelChanged.apply(this,arguments)},Graph.prototype.setLinkForCell=function(e,n){var t=null;null!=e.value&&"object"==typeof e.value?t=e.value.cloneNode(!0):(t=mxUtils.createXmlDocument().createElement("UserObject")).setAttribute("label",e.value);null!=n&&0<n.length?t.setAttribute("link",n):t.removeAttribute("link"),this.model.setValue(e,t)},Graph.prototype.getLinkForCell=function(e){return null!=e.value&&"object"==typeof e.value?e.value.getAttribute("link"):null},Graph.prototype.initTouch=function(){this.connectionHandler.marker.isEnabled=function(){return null!=this.graph.connectionHandler.first},this.addListener(mxEvent.START_EDITING,function(e,n){this.panningHandler.hideMenu()});var s=!1,o=null;this.updateMouseEvent=function(e){if(mxGraph.prototype.updateMouseEvent.apply(this,arguments),null==e.getState()){var n=this.getCellAt(e.graphX,e.graphY);this.getModel().isEdge(n)&&(e.state=this.view.getState(n),null!=e.state&&null!=e.state.shape&&(this.container.style.cursor=e.state.shape.node.style.cursor))}null==e.getState()&&(this.container.style.cursor="default")},this.fireMouseEvent=function(e,n,t){if(e==mxEvent.MOUSE_DOWN)this.panningHandler.isMenuShowing()?(s=!1,o=null):(o=n.getCell(),s=null!=o?this.isCellSelected(o):this.isSelectionEmpty());else if(e==mxEvent.MOUSE_UP){if(s&&!this.isEditing()){if(!this.panningHandler.isMenuShowing()){var a=mxEvent.getClientX(n.getEvent()),i=mxEvent.getClientY(n.getEvent());this.panningHandler.popup(a+16,i,o,n.getEvent())}return s=!1,o=null,void n.consume()}s=!1,o=null}mxGraph.prototype.fireMouseEvent.apply(this,arguments),e==mxEvent.MOUSE_MOVE&&n.isConsumed()&&(s=!1,o=null)}},function(){if(mxVertexHandler.prototype.rotationEnabled=!0,mxText.prototype.baseSpacingTop=5,mxText.prototype.baseSpacingBottom=1,touchStyle){mxConstants.HANDLE_SIZE=16,mxConstants.LABEL_HANDLE_SIZE=7,mxClient.IS_TOUCH&&(mxVertexHandler.prototype.tolerance=4,mxEdgeHandler.prototype.tolerance=6,Graph.prototype.tolerance=14,Graph.prototype.gridSize=20,mxPanningHandler.prototype.selectOnPopup=!1,mxPanningHandler.prototype.useLeftButtonForPanning=!0,mxPanningHandler.prototype.isPanningTrigger=function(e){var n=e.getEvent();return this.useLeftButtonForPanning&&(this.ignoreCell||null==e.getState())||mxEvent.isControlDown(n)&&mxEvent.isShiftDown(n)||this.usePopupTrigger&&mxEvent.isPopupTrigger(n)});var t=mxGraphHandler.prototype.mouseDown;mxGraphHandler.prototype.mouseDown=function(e,n){t.apply(this,arguments),this.graph.isCellSelected(n.getCell())&&1<this.graph.getSelectionCount()&&(this.delayedSelection=!1)},Graph.prototype.createHandlers=function(e){this.tooltipHandler=new mxTooltipHandler(this),this.tooltipHandler.setEnabled(!1),this.selectionCellsHandler=new mxSelectionCellsHandler(this),this.panningHandler=new mxPanningHandler(this),this.panningHandler.panningEnabled=!1,this.connectionHandler=new mxConnectionHandler(this),this.connectionHandler.setEnabled(!1),this.graphHandler=new mxGraphHandler(this)},mxConnectionHandler.prototype.selectCells=function(e,n){touchStyle&&null!=n?this.graph.setSelectionCell(n):this.graph.setSelectionCell(e)};var a=mxGraph.prototype.dblClick;Graph.prototype.dblClick=function(e,n){if(null==n){var t=mxUtils.convertPoint(this.container,mxEvent.getClientX(e),mxEvent.getClientY(e));n=this.getCellAt(t.x,t.y)}a.call(this,e,n)};var e=new mxImage(IMAGE_PATH+"/touch-handle.png",16,16);mxVertexHandler.prototype.handleImage=e,mxEdgeHandler.prototype.handleImage=e,mxOutline.prototype.sizerImage=e,(new Image).src=e.src;var n=IMAGE_PATH+"/touch-connector.png",i=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){i.apply(this,arguments),showConnectorImg&&this.graph.connectionHandler.isEnabled()&&this.graph.isCellConnectable(this.state.cell)&&!this.graph.isValidRoot(this.state.cell)&&1==this.graph.getSelectionCount()&&(this.connectorImg=mxUtils.createImage(n),this.connectorImg.style.cursor="pointer",this.connectorImg.style.width="29px",this.connectorImg.style.height="29px",this.connectorImg.style.position="absolute",mxClient.IS_TOUCH||(this.connectorImg.setAttribute("title",mxResources.get("connect")),mxEvent.redirectMouseEvents(this.connectorImg,this.graph,this.state)),this.connectorImg.style.padding="2px",mxEvent.addGestureListeners(this.connectorImg,mxUtils.bind(this,function(e){this.graph.panningHandler.hideMenu();var n=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e));this.graph.connectionHandler.start(this.state,n.x,n.y),this.graph.isMouseDown=!0,mxEvent.consume(e)})),this.graph.container.appendChild(this.connectorImg)),this.redrawTools()};var s=mxVertexHandler.prototype.redraw;mxVertexHandler.prototype.redraw=function(){s.apply(this),this.redrawTools()},mxVertexHandler.prototype.redrawTools=function(){null!=this.state&&null!=this.connectorImg&&(mxVertexHandler.prototype.singleSizer?(this.connectorImg.style.left=this.state.x+this.state.width-this.connectorImg.offsetWidth/2+"px",this.connectorImg.style.top=this.state.y-this.connectorImg.offsetHeight/2+"px"):(this.connectorImg.style.left=this.state.x+this.state.width+mxConstants.HANDLE_SIZE/2+4+"px",this.connectorImg.style.top=this.state.y+(this.state.height-this.connectorImg.offsetHeight)/2+"px"))};var o=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(e,n){o.apply(this,arguments),null!=this.connectorImg&&(this.connectorImg.parentNode.removeChild(this.connectorImg),this.connectorImg=null)},(new Image).src=n}else{var r=new mxImage(IMAGE_PATH+"/connector.png",15,15);if(mxConnectionHandler.prototype.connectImage=r,(new Image).src=r.src,"2"==urlParams.connect){r=new mxImage(IMAGE_PATH+"/connector.png",15,15),i=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){i.apply(this,arguments),showConnectorImg&&this.graph.connectionHandler.isEnabled()&&this.graph.isCellConnectable(this.state.cell)&&!this.graph.isValidRoot(this.state.cell)&&1==this.graph.getSelectionCount()&&(mxClient.IS_IE&&!mxClient.IS_SVG?(this.connectorImg=document.createElement("div"),this.connectorImg.style.backgroundImage="url("+r.src+")",this.connectorImg.style.backgroundPosition="center",this.connectorImg.style.backgroundRepeat="no-repeat",this.connectorImg.style.width=r.width+4+"px",this.connectorImg.style.height=r.height+4+"px",this.connectorImg.style.display=mxClient.IS_QUIRKS?"inline":"inline-block"):(this.connectorImg=mxUtils.createImage(r.src),this.connectorImg.style.width=r.width+"px",this.connectorImg.style.height=r.height+"px"),this.connectorImg.style.cursor="pointer",this.connectorImg.style.position="absolute",this.connectorImg.setAttribute("title",mxResources.get("connect")),mxEvent.redirectMouseEvents(this.connectorImg,this.graph,this.state),this.connectorImg.style.padding="2px",mxEvent.addListener(this.connectorImg,"mousedown",mxUtils.bind(this,function(e){this.graph.panningHandler.hideMenu();var n=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e));this.graph.connectionHandler.start(this.state,n.x,n.y),this.graph.isMouseDown=!0,mxEvent.consume(e)})),this.graph.container.appendChild(this.connectorImg)),this.redrawTools()};s=mxVertexHandler.prototype.redraw;mxVertexHandler.prototype.redraw=function(){s.apply(this),this.redrawTools()},mxVertexHandler.prototype.redrawTools=function(){null!=this.state&&null!=this.connectorImg&&(mxVertexHandler.prototype.singleSizer?(this.connectorImg.style.left=this.state.x+this.state.width-this.connectorImg.offsetWidth/2+"px",this.connectorImg.style.top=this.state.y-this.connectorImg.offsetHeight/2+"px"):(this.connectorImg.style.left=this.state.x+this.state.width+mxConstants.HANDLE_SIZE/2+2+"px",this.connectorImg.style.top=this.state.y+(this.state.height-this.connectorImg.offsetHeight)/2+"px"))};o=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(e,n){o.apply(this,arguments),null!=this.connectorImg&&(this.connectorImg.parentNode.removeChild(this.connectorImg),this.connectorImg=null)}}}}(),Actions.prototype.init=function(){var n=this.editorUi,l=n.editor,d=l.graph;this.addAction("new",function(){n.projectDesignController.newProject()},CRUD_PERMISSIONS.canEdit),this.addAction("open",function(){n.projectDesignController.openProject()},CRUD_PERMISSIONS.canEdit),this.addAction("save",function(){n.projectDesignController.saveOrPublishProject(mxUtils.getPrettyXml(l.getGraphXml())),n.editor.modified=!1},CRUD_PERMISSIONS.canEdit,null,"Ctrl+S"),this.addAction("saveAs",function(){n.projectDesignController.saveProjectAs(mxUtils.getPrettyXml(l.getGraphXml()))},CRUD_PERMISSIONS.canEdit,null,"Ctrl+Shift+S"),this.addAction("publish",function(){n.editor.setStatus(""),null===n.validate()?(n.projectDesignController.saveOrPublishProject(mxUtils.getPrettyXml(l.getGraphXml()),!0),n.editor.modified=!1):(n.editor.setStatus("...Error publishing! Please check the project and try again!"),setTimeout(function(){n.editor.setStatus("")},3e3))},CRUD_PERMISSIONS.canEdit,null,"Ctrl+Shift+P"),this.addAction("variable",function(){n.projectDesignController.newVariable()},CRUD_PERMISSIONS.canEdit),this.addAction("import",function(){n.projectDesignController.importXML(function(e){l.setGraphXml(mxUtils.parseXml(e).documentElement)})},CRUD_PERMISSIONS.canEdit),this.addAction("export",function(){n.exportXML(mxUtils.getPrettyXml(l.getGraphXml()))},null,null,"Ctrl+E"),this.addAction("editFile",function(){n.projectDesignController.editXML(mxUtils.getPrettyXml(l.getGraphXml()),function(e){l.setGraphXml(mxUtils.parseXml(e).documentElement)})},CRUD_PERMISSIONS.canEdit),this.addAction("print",function(){mxUtils.printScreen(d)},null,"sprite-print","Ctrl+P"),this.addAction("preview",function(){mxUtils.show(d,null,10,10)}),this.addAction("undo",function(){l.undoManager.undo()},null,"sprite-undo","Ctrl+Z"),this.addAction("redo",function(){l.undoManager.redo()},null,"sprite-redo","Ctrl+Y"),this.addAction("cut",function(){mxClipboard.cut(d)},null,"sprite-cut","Ctrl+X"),this.addAction("copy",function(){mxClipboard.copy(d)},null,"sprite-copy","Ctrl+C"),this.addAction("paste",function(){mxClipboard.paste(d)},!1,"sprite-paste","Ctrl+V"),this.addAction("delete",function(){d.removeCells()},null,null,"Delete"),this.addAction("duplicate",function(){var e=d.gridSize;d.setSelectionCells(d.moveCells(d.getSelectionCells(),e,e,!0))},null,null,"Ctrl+D"),this.addAction("selectVertices",function(){d.selectVertices()},null,null,"Ctrl+Shift+V"),this.addAction("selectEdges",function(){d.selectEdges()},null,null,"Ctrl+Shift+E"),this.addAction("selectAll",function(){d.selectAll()},null,null,"Ctrl+A"),this.addAction("home",function(){d.home()},null,null,"Home"),this.addAction("exitGroup",function(){d.exitGroup()},null,null,"Page Up"),this.addAction("enterGroup",function(){d.enterGroup()},null,null,"Page Down"),this.addAction("expand",function(){d.foldCells(!1)},null,null,"Enter"),this.addAction("collapse",function(){d.foldCells(!0)},null,null,"Backspace"),this.addAction("toFront",function(){d.orderCells(!1)},null,null,"Ctrl+F"),this.addAction("toBack",function(){d.orderCells(!0)},null,null,"Ctrl+B"),this.addAction("group",function(){d.setSelectionCell(d.groupCells(null,0))},null,null,"Ctrl+G"),this.addAction("ungroup",function(){d.setSelectionCells(d.ungroupCells())},null,null,"Ctrl+U"),this.addAction("removeFromGroup",function(){d.removeCellsFromParent()}),this.addAction("editLink",function(){var e=d.getSelectionCell(),n=d.getLinkForCell(e);null==n&&(n=""),null!=(n=mxUtils.prompt(mxResources.get("enterValue"),n))&&d.setLinkForCell(e,n)}),this.addAction("openLink",function(){var e=d.getSelectionCell(),n=d.getLinkForCell(e);null!=n&&window.open(n)}),this.addAction("autosize",function(){var e=d.getSelectionCells();if(null!=e){d.getModel().beginUpdate();try{for(var n=0;n<e.length;n++){var t=e[n];d.getModel().getChildCount(t)?d.updateGroupBounds([t],20):d.updateCellSize(t)}}finally{d.getModel().endUpdate()}}}),this.addAction("wordWrap",function(){var e=d.getView().getState(d.getSelectionCell()),n="wrap";null!=e&&"wrap"==e.style[mxConstants.STYLE_WHITE_SPACE]&&(n=null),d.setCellStyles(mxConstants.STYLE_WHITE_SPACE,n)}),this.addAction("rotation",function(){var e="0",n=d.getView().getState(d.getSelectionCell());null!=n&&(e=n.style[mxConstants.STYLE_ROTATION]||e),null!=(e=mxUtils.prompt(mxResources.get("enterValue")+" ("+mxResources.get("rotation")+" 0-360)",e))&&d.setCellStyles(mxConstants.STYLE_ROTATION,e)}),this.addAction("tilt",function(){var e=d.getSelectionCells();if(null!=e){d.getModel().beginUpdate();try{for(var n=0;n<e.length;n++){var t=e[n];if(d.getModel().isVertex(t)&&0==d.getModel().getChildCount(t)){var a=d.getCellGeometry(t);if(null!=a){(a=a.clone()).x+=a.width/2-a.height/2,a.y+=a.height/2-a.width/2;var i=a.width;a.width=a.height,a.height=i,d.getModel().setGeometry(t,a);var s=d.view.getState(t);if(null!=s){var o=s.style[mxConstants.STYLE_DIRECTION]||"east";"east"==o?o="south":"south"==o?o="west":"west"==o?o="north":"north"==o&&(o="east"),d.setCellStyles(mxConstants.STYLE_DIRECTION,o,[t])}}}}}finally{d.getModel().endUpdate()}}},null,null,"Ctrl+R"),this.addAction("actualSize",function(){d.zoomTo(1)}),this.addAction("zoomIn",function(){d.zoomIn()},null,null,"Add"),this.addAction("zoomOut",function(){d.zoomOut()},null,null,"Subtract"),this.addAction("fitWindow",function(){d.fit()}),this.addAction("fitPage",mxUtils.bind(this,function(){d.pageVisible||this.get("pageView").funct();var e=d.pageFormat,n=d.pageScale,t=d.container.clientWidth-20,a=d.container.clientHeight-20,i=Math.floor(100*Math.min(t/e.width/n,a/e.height/n))/100;d.zoomTo(i),d.container.scrollLeft=Math.round(d.view.translate.x*i-Math.max(10,(d.container.clientWidth-e.width*n*i)/2)),d.container.scrollTop=Math.round(d.view.translate.y*i-Math.max(10,(d.container.clientHeight-e.height*n*i)/2))})),this.addAction("fitPageWidth",mxUtils.bind(this,function(){d.pageVisible||this.get("pageView").funct();var e=d.pageFormat,n=d.pageScale,t=d.container.clientWidth-20,a=Math.floor(100*t/e.width/n)/100;d.zoomTo(a),d.container.scrollLeft=Math.round(d.view.translate.x*a-Math.max(10,(d.container.clientWidth-e.width*n*a)/2)),d.container.scrollTop=Math.round(d.view.translate.y*a-Math.max(10,(d.container.clientHeight-e.height*n*a)/2))})),this.put("customZoom",new Action(mxResources.get("custom"),function(){var e=mxUtils.prompt(mxResources.get("enterValue")+" (%)",parseInt(100*d.getView().getScale()));null!=e&&0<e.length&&!isNaN(parseInt(e))&&d.zoomTo(parseInt(e)/100)}));var e=null;(e=this.addAction("grid",function(){d.setGridEnabled(!d.isGridEnabled()),l.updateGraphComponents()},null,null,"Ctrl+Shift+G")).setToggleAction(!0),e.setSelectedCallback(function(){return d.isGridEnabled()}),(e=this.addAction("guides",function(){d.graphHandler.guidesEnabled=!d.graphHandler.guidesEnabled})).setToggleAction(!0),e.setSelectedCallback(function(){return d.graphHandler.guidesEnabled}),(e=this.addAction("tooltips",function(){d.tooltipHandler.setEnabled(!d.tooltipHandler.isEnabled())})).setToggleAction(!0),e.setSelectedCallback(function(){return d.tooltipHandler.isEnabled()}),(e=this.addAction("navigation",function(){d.foldingEnabled=!d.foldingEnabled,d.view.revalidate()})).setToggleAction(!0),e.setSelectedCallback(function(){return d.foldingEnabled}),(e=this.addAction("scrollbars",function(){if(d.scrollbars=!d.scrollbars,l.updateGraphComponents(),d.scrollbars){var e=d.view.translate.x,n=d.view.translate.y;d.view.translate.x=0,d.view.translate.y=0,d.sizeDidChange(),d.container.scrollLeft-=Math.round(e*d.view.scale),d.container.scrollTop-=Math.round(n*d.view.scale)}else{var t=d.view.translate;d.view.setTranslate(t.x-d.container.scrollLeft/d.view.scale,t.y-d.container.scrollTop/d.view.scale),d.container.scrollLeft=0,d.container.scrollTop=0,d.sizeDidChange()}},!mxClient.IS_TOUCH)).setToggleAction(!0),e.setSelectedCallback(function(){return"auto"==d.container.style.overflow}),(e=this.addAction("pageView",mxUtils.bind(this,function(){d.pageVisible=!d.pageVisible,d.pageBreaksVisible=d.pageVisible,d.preferPageSize=d.pageBreaksVisible,d.view.validate(),d.sizeDidChange(),l.updateGraphComponents(),l.outline.update(),mxUtils.hasScrollbars(d.container)&&(d.pageVisible?(d.container.scrollLeft-=20,d.container.scrollTop-=20):(d.container.scrollLeft+=20,d.container.scrollTop+=20))}))).setToggleAction(!0),e.setSelectedCallback(function(){return d.pageVisible}),(e=this.addAction("connect",function(){d.setConnectable(!d.connectionHandler.isEnabled())},null,null,"Ctrl+Q")).setToggleAction(!0),e.setSelectedCallback(function(){return d.connectionHandler.isEnabled()}),(e=this.addAction("copyConnect",function(){d.connectionHandler.setCreateTarget(!d.connectionHandler.isCreateTarget())})).setToggleAction(!0),e.setSelectedCallback(function(){return d.connectionHandler.isCreateTarget()}),this.addAction("help",function(){window.open("https://wiki.xcallymotion.com/display/XMV/Cally+Square")}),this.put("about",new Action(mxResources.get("about")+" Cally Square",function(){window.open("http://callysquare.com/")},null,null,null));var t=mxUtils.bind(this,function(e,n){this.addAction(e,function(){d.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,n)})});t("bold",mxConstants.FONT_BOLD),t("italic",mxConstants.FONT_ITALIC),t("underline",mxConstants.FONT_UNDERLINE),this.addAction("shadow",function(){d.toggleCellStyles(mxConstants.STYLE_SHADOW)}),this.addAction("dashed",function(){d.toggleCellStyles(mxConstants.STYLE_DASHED)}),this.addAction("rounded",function(){d.toggleCellStyles(mxConstants.STYLE_ROUNDED)}),this.addAction("curved",function(){d.toggleCellStyles(mxConstants.STYLE_CURVED)}),this.addAction("style",function(){var e=d.getSelectionCells();if(null!=e&&0<e.length){var n=d.getModel(),t=mxUtils.prompt(mxResources.get("enterValue")+" ("+mxResources.get("style")+")",n.getStyle(e[0])||"");null!=t&&d.setCellStyle(t,e)}}),this.addAction("setAsDefaultEdge",function(){d.setDefaultEdge(d.getSelectionCell())}),this.addAction("addWaypoint",function(){var e=d.getSelectionCell();if(null!=e&&d.getModel().isEdge(e)){var n=l.graph.selectionCellsHandler.getHandler(e);if(n instanceof mxEdgeHandler){var t=d.view.translate,a=d.view.scale,i=t.x,s=t.y,o=d.getModel().getParent(e),r=d.getCellGeometry(o);d.getModel().isVertex(o)&&null!=r&&(i+=r.x,s+=r.y),n.addPointAt(n.state,d.panningHandler.triggerX/a-i,d.panningHandler.triggerY/a-s)}}}),this.addAction("removeWaypoint",function(){var e=n.actions.get("removeWaypoint");null!=e.handler&&e.handler.removePoint(e.handler.state,e.index)}),this.addAction("image",function(){var e="",n=d.getView().getState(d.getSelectionCell());if(null!=n&&(e=n.style[mxConstants.STYLE_IMAGE]||e),null!=(e=mxUtils.prompt(mxResources.get("enterValue")+" ("+mxResources.get("url")+")",e))&&0<e.length){var t=new Image;t.onload=function(){!function(e,n,t){var a=null,i=d.getSelectionCells();d.getModel().beginUpdate();try{if(0==i.length){var s=d.getGridSize();a=i=[d.insertVertex(d.getDefaultParent(),null,"",s,s,n,t)]}if(d.setCellStyles(mxConstants.STYLE_IMAGE,e,i),d.setCellStyles(mxConstants.STYLE_SHAPE,"image",i),1==d.getSelectionCount()&&null!=n&&null!=t){var o=i[0],r=d.getModel().getGeometry(o);null!=r&&((r=r.clone()).width=n,r.height=t,d.getModel().setGeometry(o,r))}}finally{d.getModel().endUpdate()}null!=a&&(d.setSelectionCells(a),d.scrollCellToVisible(a[0]))}(e,t.width,t.height)},t.onerror=function(){mxUtils.alert(mxResources.get("fileNotFound"))},t.src=e}})},Actions.prototype.addAction=function(e,n,t,a,i){return this.put(e,new Action(mxResources.get(e),n,t,a,i))},Actions.prototype.put=function(e,n){return this.actions[e]=n},Actions.prototype.get=function(e){return this.actions[e]},mxUtils.extend(Action,mxEventSource),Action.prototype.setEnabled=function(e){this.enabled!=e&&(this.enabled=e,this.fireEvent(new mxEventObject("stateChanged")))},Action.prototype.setToggleAction=function(e){this.toggleAction=e},Action.prototype.setSelectedCallback=function(e){this.selectedCallback=e},Action.prototype.isSelected=function(){return this.selectedCallback()},Menus=function(e){this.editorUi=e,this.menus=new Object,this.init(),(new Image).src=IMAGE_PATH+"/checkmark.gif"},Menus.prototype.init=function(){var i=this.editorUi.editor.graph;this.put("fontFamily",new Menu(mxUtils.bind(this,function(e,n){for(var t=["Helvetica","Verdana","Times New Roman","Garamond","Comic Sans MS","Courier New","Georgia","Lucida Console","Tahoma"],a=0;a<t.length;a++){this.styleChange(e,t[a],[mxConstants.STYLE_FONTFAMILY],[t[a]],null,n).firstChild.nextSibling.style.fontFamily=t[a]}e.addSeparator(n),this.promptChange(e,mxResources.get("custom"),"",mxConstants.DEFAULT_FONTFAMILY,mxConstants.STYLE_FONTFAMILY,n)}))),this.put("fontSize",new Menu(mxUtils.bind(this,function(e,n){for(var t=[6,8,9,10,11,12,14,18,24,36,48,72],a=0;a<t.length;a++)this.styleChange(e,t[a],[mxConstants.STYLE_FONTSIZE],[t[a]],null,n);e.addSeparator(n),this.promptChange(e,mxResources.get("custom"),"(pt)","12",mxConstants.STYLE_FONTSIZE,n)}))),this.put("linewidth",new Menu(mxUtils.bind(this,function(e,n){for(var t=[1,2,3,4,8,12,16,24],a=0;a<t.length;a++)this.styleChange(e,t[a]+"px",[mxConstants.STYLE_STROKEWIDTH],[t[a]],null,n);e.addSeparator(n),this.promptChange(e,mxResources.get("custom"),"(px)","1",mxConstants.STYLE_STROKEWIDTH,n)}))),this.put("line",new Menu(mxUtils.bind(this,function(e,n){this.styleChange(e,mxResources.get("straight"),[mxConstants.STYLE_EDGE],[null],null,n),this.styleChange(e,mxResources.get("entityRelation"),[mxConstants.STYLE_EDGE],["entityRelationEdgeStyle"],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("horizontal"),[mxConstants.STYLE_EDGE,mxConstants.STYLE_ELBOW],["elbowEdgeStyle","horizontal"],null,n),this.styleChange(e,mxResources.get("vertical"),[mxConstants.STYLE_EDGE,mxConstants.STYLE_ELBOW],["elbowEdgeStyle","vertical"],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("manual"),[mxConstants.STYLE_EDGE],["segmentEdgeStyle"],null,n),this.styleChange(e,mxResources.get("automatic"),[mxConstants.STYLE_EDGE],["orthogonalEdgeStyle"],null,n)}))),this.put("lineend",new Menu(mxUtils.bind(this,function(e,n){this.styleChange(e,mxResources.get("classic"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_CLASSIC],null,n),this.styleChange(e,mxResources.get("openArrow"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_OPEN],null,n),this.styleChange(e,mxResources.get("block"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_BLOCK],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("oval"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_OVAL],null,n),this.styleChange(e,mxResources.get("diamond"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_DIAMOND],null,n),this.styleChange(e,mxResources.get("diamondThin"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_DIAMOND_THIN],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("none"),[mxConstants.STYLE_ENDARROW],[mxConstants.NONE],null,n),e.addSeparator(n),e.addItem(mxResources.get("transparent"),null,function(){i.toggleCellStyles("endFill",!0)},n,null,!0),e.addSeparator(n),this.promptChange(e,mxResources.get("size"),"(px)",mxConstants.DEFAULT_MARKERSIZE,mxConstants.STYLE_ENDSIZE,n)}))),this.put("linestart",new Menu(mxUtils.bind(this,function(e,n){this.styleChange(e,mxResources.get("classic"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_CLASSIC],null,n),this.styleChange(e,mxResources.get("openArrow"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_OPEN],null,n),this.styleChange(e,mxResources.get("block"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_BLOCK],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("oval"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_OVAL],null,n),this.styleChange(e,mxResources.get("diamond"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_DIAMOND],null,n),this.styleChange(e,mxResources.get("diamondThin"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_DIAMOND_THIN],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("none"),[mxConstants.STYLE_STARTARROW],[mxConstants.NONE],null,n),e.addSeparator(n),e.addItem(mxResources.get("transparent"),null,function(){i.toggleCellStyles("startFill",!0)},n,null,!0),e.addSeparator(n),this.promptChange(e,mxResources.get("size"),"(px)",mxConstants.DEFAULT_MARKERSIZE,mxConstants.STYLE_STARTSIZE,n)}))),this.put("spacing",new Menu(mxUtils.bind(this,function(e,n){var t=this.editorUi.actions.get("shadow").enabled,a=this.get("line").enabled;(t||e.showDisabled)&&(this.promptChange(e,mxResources.get("top"),"(px)","0",mxConstants.STYLE_SPACING_TOP,n,t),this.promptChange(e,mxResources.get("right"),"(px)","0",mxConstants.STYLE_SPACING_RIGHT,n,t),this.promptChange(e,mxResources.get("bottom"),"(px)","0",mxConstants.STYLE_SPACING_BOTTOM,n,t),this.promptChange(e,mxResources.get("left"),"(px)","0",mxConstants.STYLE_SPACING_LEFT,n,t),e.addSeparator(n),this.promptChange(e,mxResources.get("global"),"(px)","0",mxConstants.STYLE_SPACING,n,t),this.promptChange(e,mxResources.get("perimeter"),"(px)","0",mxConstants.STYLE_PERIMETER_SPACING,n,t)),(a||e.showDisabled)&&(e.addSeparator(n),this.promptChange(e,mxResources.get("sourceSpacing"),"(px)","0",mxConstants.STYLE_SOURCE_PERIMETER_SPACING,n,a),this.promptChange(e,mxResources.get("targetSpacing"),"(px)","0",mxConstants.STYLE_TARGET_PERIMETER_SPACING,n,a))}))),this.put("format",new Menu(mxUtils.bind(this,function(e,n){this.addMenuItem(e,"style",n)}))),this.put("text",new Menu(mxUtils.bind(this,function(e,n){var t=this.get("text").enabled;e.addSeparator(n),this.addSubmenu("fontFamily",e,n),this.addSubmenu("fontSize",e,n),this.addMenuItems(e,["-","bold","italic","underline","-"],n),this.addSubmenu("alignment",e,n),this.addMenuItem(e,"wordWrap",n),e.addSeparator(n),this.promptChange(e,mxResources.get("textOpacity"),"(%)","100",mxConstants.STYLE_TEXT_OPACITY,n,t),e.addItem(mxResources.get("hide"),null,function(){i.toggleCellStyles(mxConstants.STYLE_NOLABEL,!1)},n,null,t)}))),this.put("alignment",new Menu(mxUtils.bind(this,function(e,n){this.styleChange(e,mxResources.get("leftAlign"),[mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_LEFT],null,n),this.styleChange(e,mxResources.get("center"),[mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_CENTER],null,n),this.styleChange(e,mxResources.get("rightAlign"),[mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_RIGHT],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("topAlign"),[mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_TOP],null,n),this.styleChange(e,mxResources.get("middle"),[mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_MIDDLE],null,n),this.styleChange(e,mxResources.get("bottomAlign"),[mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_BOTTOM],null,n),e.addSeparator(n),this.addSubmenu("position",e,n),this.addSubmenu("spacing",e,n),e.addSeparator(n);var t=this.get("text").enabled;e.addItem(mxResources.get("vertical"),null,function(){i.toggleCellStyles(mxConstants.STYLE_HORIZONTAL,!0)},n,null,t)}))),this.put("position",new Menu(mxUtils.bind(this,function(e,n){this.styleChange(e,mxResources.get("left"),[mxConstants.STYLE_LABEL_POSITION,mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_LEFT,mxConstants.ALIGN_RIGHT],null,n),this.styleChange(e,mxResources.get("center"),[mxConstants.STYLE_LABEL_POSITION,mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_CENTER,mxConstants.ALIGN_CENTER],null,n),this.styleChange(e,mxResources.get("right"),[mxConstants.STYLE_LABEL_POSITION,mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_LEFT],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("top"),[mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_TOP,mxConstants.ALIGN_BOTTOM],null,n),this.styleChange(e,mxResources.get("middle"),[mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_MIDDLE,mxConstants.ALIGN_MIDDLE],null,n),this.styleChange(e,mxResources.get("bottom"),[mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_BOTTOM,mxConstants.ALIGN_TOP],null,n)}))),this.put("direction",new Menu(mxUtils.bind(this,function(e,n){e.addItem(mxResources.get("flipH"),null,function(){i.toggleCellStyles(mxConstants.STYLE_FLIPH,!1)},n),e.addItem(mxResources.get("flipV"),null,function(){i.toggleCellStyles(mxConstants.STYLE_FLIPV,!1)},n),this.addMenuItems(e,["-","tilt","rotation"],n)}))),this.put("align",new Menu(mxUtils.bind(this,function(e,n){e.addItem(mxResources.get("leftAlign"),null,function(){i.alignCells(mxConstants.ALIGN_LEFT)},n),e.addItem(mxResources.get("center"),null,function(){i.alignCells(mxConstants.ALIGN_CENTER)},n),e.addItem(mxResources.get("rightAlign"),null,function(){i.alignCells(mxConstants.ALIGN_RIGHT)},n),e.addSeparator(n),e.addItem(mxResources.get("topAlign"),null,function(){i.alignCells(mxConstants.ALIGN_TOP)},n),e.addItem(mxResources.get("middle"),null,function(){i.alignCells(mxConstants.ALIGN_MIDDLE)},n),e.addItem(mxResources.get("bottomAlign"),null,function(){i.alignCells(mxConstants.ALIGN_BOTTOM)},n)}))),this.put("layout",new Menu(mxUtils.bind(this,function(e,n){e.addItem(mxResources.get("horizontalFlow"),null,mxUtils.bind(this,function(){var e=new mxHierarchicalLayout(i,mxConstants.DIRECTION_WEST);this.editorUi.executeLayout(e,!0,!0)}),n),e.addItem(mxResources.get("verticalFlow"),null,mxUtils.bind(this,function(){var e=new mxHierarchicalLayout(i,mxConstants.DIRECTION_NORTH);this.editorUi.executeLayout(e,!0,!0)}),n)}))),this.put("navigation",new Menu(mxUtils.bind(this,function(e,n){this.addMenuItems(e,["home","-","exitGroup","enterGroup","-","expand","collapse"],n)}))),this.put("arrange",new Menu(mxUtils.bind(this,function(e,n){this.addMenuItems(e,["toFront","toBack","-"],n),this.addSubmenu("layout",e,n),e.addSeparator(n),this.addMenuItems(e,["-","group","ungroup","removeFromGroup"],n)}))),this.put("view",new Menu(mxUtils.bind(this,function(n,t){this.addMenuItems(n,["actualSize"],t),n.addSeparator();for(var e=[.25,.5,.75,1,2,4],a=0;a<e.length;a++)!function(e){n.addItem(100*e+"%",null,function(){i.zoomTo(e)},t)}(e[a]);this.addMenuItems(n,["-","zoomIn","zoomOut","-","fitWindow","customZoom","-","fitPage","fitPageWidth"],t)}))),this.put("file",new Menu(mxUtils.bind(this,function(e,n){this.addMenuItems(e,["new","open","-","save","saveAs","publish","-","variable","-","import","export","-","editFile","description","-","print"],n)}))),this.put("edit",new Menu(mxUtils.bind(this,function(e,n){this.addMenuItems(e,["undo","redo","-","cut","copy","paste","delete","-","duplicate","-","selectVertices","selectEdges","selectAll"])}))),this.put("help",new Menu(mxUtils.bind(this,function(e,n){this.addMenuItems(e,["help","-","about"])})))},Menus.prototype.put=function(e,n){this.menus[e]=n},Menus.prototype.get=function(e){return this.menus[e]},Menus.prototype.addSubmenu=function(e,n,t){var a=this.get(e).enabled;if(n.showDisabled||a){var i=n.addItem(mxResources.get(e),null,null,t,null,a);this.addMenu(e,n,i)}},Menus.prototype.addMenu=function(e,n,t){var a=this.get(e);null!=a&&(n.showDisabled||a.enabled)&&this.get(e).execute(n,t)},Menus.prototype.styleChange=function(e,n,t,a,i,s){return e.addItem(n,null,mxUtils.bind(this,function(){var e=this.editorUi.editor.graph;e.getModel().beginUpdate();try{for(var n=0;n<t.length;n++)e.setCellStyles(t[n],a[n])}finally{e.getModel().endUpdate()}}),s,i)},Menus.prototype.promptChange=function(e,n,a,i,s,t,o){return e.addItem(n,null,mxUtils.bind(this,function(){var e=this.editorUi.editor.graph,n=i,t=e.getView().getState(e.getSelectionCell());null!=t&&(n=t.style[s]||n),null!=(n=mxUtils.prompt(mxResources.get("enterValue")+(0<a.length?" "+a:""),n))&&0<n.length&&e.setCellStyles(s,n)}),t,null,o)},Menus.prototype.addMenuItem=function(e,n,t){var a=this.editorUi.actions.get(n);if(null==a||!e.showDisabled&&!a.enabled)return null;var i=e.addItem(a.label,null,a.funct,t,null,a.enabled);return a.toggleAction&&a.isSelected()&&this.addCheckmark(i),this.addShortcut(i,a),i},Menus.prototype.addShortcut=function(e,n){if(null!=n.shortcut){var t=e.firstChild.nextSibling.nextSibling,a=document.createElement("span");a.style.color="gray",mxUtils.write(a,n.shortcut),t.appendChild(a)}},Menus.prototype.addCheckmark=function(e){var n=e.firstChild.nextSibling;n.style.backgroundImage="url("+IMAGE_PATH+"/checkmark.gif)",n.style.backgroundRepeat="no-repeat",n.style.backgroundPosition="2px 50%"},Menus.prototype.addMenuItems=function(e,n,t){for(var a=0;a<n.length;a++)"-"==n[a]?e.addSeparator(t):this.addMenuItem(e,n[a],t)},Menus.prototype.createPopupMenu=function(e,n,t){var a=this.editorUi.editor.graph;if(e.smartSeparators=!0,a.isSelectionEmpty()?this.addMenuItems(e,["undo","redo","-","paste","-"]):(this.addMenuItems(e,["delete","-","cut","copy","-","duplicate"]),1==a.getSelectionCount()&&a.getModel().isEdge(a.getSelectionCell())&&this.addMenuItems(e,["setAsDefaultEdge"]),e.addSeparator()),0<a.getSelectionCount()){if(this.addMenuItems(e,["toFront","toBack","-"]),a.getModel().isEdge(a.getSelectionCell())){var i=!1;if(null!=(n=a.getSelectionCell())&&a.getModel().isEdge(n)){var s=a.selectionCellsHandler.getHandler(n);if(s instanceof mxEdgeHandler&&null!=s.bends&&2<s.bends.length){var o=s.getHandleForEvent(new mxMouseEvent(t)),r=this.editorUi.actions.get("removeWaypoint");r.handler=s,i=0<(r.index=o)&&o<s.bends.length}}this.addMenuItems(e,["-",i?"removeWaypoint":"addWaypoint"])}else 1<a.getSelectionCount()&&(e.addSeparator(),this.addMenuItems(e,["group"]));if(e.addSeparator(),1==a.getSelectionCount())null!=a.getLinkForCell(a.getSelectionCell())&&this.addMenuItems(e,["openLink"])}else this.addMenuItems(e,["-","selectVertices","selectEdges","-","selectAll"])},Menus.prototype.createMenubar=function(e){var n=new Menubar(this.editorUi,e),t=[];t=CRUD_PERMISSIONS.canEdit?["file","edit","view","format","text","arrange","help"]:["file","view","help"];for(var a=0;a<t.length;a++)n.addMenu(mxResources.get(t[a]),this.get(t[a]).funct);return n},Menubar.prototype.hideMenu=function(){null!=this.currentMenu&&this.currentMenu.hideMenu()},Menubar.prototype.addMenu=function(e,n){var t=document.createElement("a");return t.setAttribute("href","javascript:void(0);"),t.className="geItem",mxUtils.write(t,e),this.addMenuHandler(t,n),this.container.appendChild(t),t},Menubar.prototype.getOffset=function(e){return{left:(e=e.getBoundingClientRect()).left+window.scrollX,top:e.top+window.scrollY}},Menubar.prototype.addMenuHandler=function(i,s){if(null!=s){var o=!0,n=mxUtils.bind(this,function(e){if(o&&null==i.enabled||i.enabled){this.editorUi.editor.graph.panningHandler.hideMenu();var n=new mxPopupMenu(s);n.div.className+=" geMenubarMenu",n.smartSeparators=!0,n.showDisabled=!0,n.autoExpand=!0,n.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(n,arguments),n.destroy(),this.currentMenu=null,this.currentElt=null});var t=this.getOffset(i).left,a=this.getOffset(i).top+i.offsetHeight;n.popup(t,a,null,e),this.currentMenu=n,this.currentElt=i}o=!0,mxEvent.consume(e)});mxEvent.addListener(i,"mousemove",mxUtils.bind(this,function(e){null!=this.currentMenu&&this.currentElt!=i&&(this.hideMenu(),n(e))})),mxEvent.addListener(i,"mousedown",mxUtils.bind(this,function(){o=this.currentElt!=i})),mxEvent.addListener(i,"click",n)}},mxUtils.extend(Menu,mxEventSource),Menu.prototype.setEnabled=function(e){this.enabled!=e&&(this.enabled=e,this.fireEvent(new mxEventObject("stateChanged")))},Menu.prototype.execute=function(e,n){this.funct(e,n)},Toolbar.prototype.init=function(){CRUD_PERMISSIONS.canEdit?this.addItems(["save","publish","-","print","undo","redo","-","copy","cut","paste","delete","-","duplicate","-","actualSize","zoomIn","zoomOut","-"]):this.addItems(["print","actualSize","zoomIn","zoomOut","-"])},Toolbar.prototype.hideMenu=function(){null!=this.currentMenu&&(this.currentMenu.hideMenu(),this.currentMenu.destroy(),this.currentMenu=null)},Toolbar.prototype.addMenu=function(e,n,t,a){var i=this.editorUi.menus.get(a),s=this.addMenuFunction(e,n,t,i.funct);return i.addListener("stateChanged",function(){s.setEnabled(i.enabled)}),s},Toolbar.prototype.addMenuFunction=function(e,n,t,a){var i=t?this.createLabel(e):this.createButton(e);return this.initElement(i,n),this.addMenuHandler(i,t,a),this.container.appendChild(i),i},Toolbar.prototype.addSeparator=function(){var e=document.createElement("div");return e.className="geSeparator",this.container.appendChild(e),e},Toolbar.prototype.addItems=function(e){for(var n=0;n<e.length;n++){var t=e[n];"-"==t?this.addSeparator():this.addItem("geSprite-"+t.toLowerCase(),t)}},Toolbar.prototype.addItem=function(e,n){var t=this.editorUi.actions.get(n),a=null;return null!=t&&((a=this.addButton(e,t.label,t.funct)).setEnabled(t.enabled),t.addListener("stateChanged",function(){a.setEnabled(t.enabled)})),a},Toolbar.prototype.addButton=function(e,n,t){var a=this.createButton(e);return this.initElement(a,n),this.addClickHandler(a,t),this.container.appendChild(a),a},Toolbar.prototype.addSelectionHandler=function(t){var a=this.editorUi.editor.graph,e=function(){for(var e=!a.isSelectionEmpty(),n=0;n<t.length;n++)t[n].setEnabled(e)};a.getSelectionModel().addListener(mxEvent.CHANGE,e),e()},Toolbar.prototype.addEdgeSelectionHandler=function(a){var i=this.editorUi.editor.graph,e=function(){var e=!1;if(!i.isSelectionEmpty())for(var n=i.getSelectionCells(),t=0;t<n.length;t++)if(i.getModel().isEdge(n[t])){e=!0;break}for(t=0;t<a.length;t++)a[t].setEnabled(e)};i.getSelectionModel().addListener(mxEvent.CHANGE,e),e()},Toolbar.prototype.initElement=function(e,n){e.setAttribute("tabindex","0"),null!=n&&e.setAttribute("title",n),this.addEnabledState(e)},Toolbar.prototype.addEnabledState=function(n){var t=n.className;n.setEnabled=function(e){n.enabled=e,n.className=e?t:t+" geDisabled"},n.setEnabled(!0)},Toolbar.prototype.addClickHandler=function(n,t){null!=t&&mxEvent.addListener(n,"click",function(e){n.enabled&&t(e),mxEvent.consume(e)})},Toolbar.prototype.createButton=function(e){var n=document.createElement("a");n.setAttribute("href","javascript:void(0);"),n.className="geButton";var t=document.createElement("div");return t.className="geSprite "+e,n.appendChild(t),n},Toolbar.prototype.createLabel=function(e,n){var t=document.createElement("a");return t.setAttribute("href","javascript:void(0);"),t.className="geLabel",mxUtils.write(t,e),t},Toolbar.prototype.addMenuHandler=function(n,t,a,i){if(null!=a){var s=this.editorUi.editor.graph,o=null;mxEvent.addListener(n,"click",mxUtils.bind(this,function(e){(null==n.enabled||n.enabled)&&(s.panningHandler.hideMenu(),(o=new mxPopupMenu(a)).div.className+=" geToolbarMenu",o.showDisabled=i,o.labels=t,o.autoExpand=!0,o.popup(n.offsetLeft,n.offsetTop+n.offsetHeight+34,null,e),this.currentMenu=o),mxEvent.consume(e)}))}},Dialog.prototype.close=function(){null!=this.onDialogClose&&(this.onDialogClose(),this.onDialogClose=null),this.container.parentNode.removeChild(this.container),this.bg.parentNode.removeChild(this.bg)},angular.module("motion").run(["$templateCache",function(e){"use strict";e.put("app/auth/services/hotdesk/dialog.html",'<md-dialog aria-label="Telephone">\n <form ng-cloak>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div flex>\n <span class="title" translate="LOGIN.TELEPHONES">Telephones</span>\n </div>\n </div>\n </md-toolbar>\n\n <md-dialog-content>\n <md-select ng-model="vm.name" placeholder="Select a telephone">\n <md-option value="{{telephone.name}}" ng-repeat="telephone in vm.telephones.rows">{{telephone.fullname}}</md-option>\n </md-select>\n </md-dialog-content>\n\n <md-dialog-actions layout="row">\n <md-button ng-click="vm.closeDialog(vm.name)" class="send-button md-accent md-raised" aria-label="call" ng-disabled="!vm.name">\n <span translate="LOGIN.SELECT">SELECT</span>\n </md-button>\n \x3c!-- <md-button ng-click="vm.closeDialog()" class="send-button md-accent md-raised" aria-label="cancel">\n <span translate="LOGIN.CANCEL">Cancel</span>\n </md-button> --\x3e\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/core/dialogs/advanced-search/dialog.html",'<md-dialog class="advanced-search-dialog" aria-label="Advanced search" flex="70" ng-init="vm.onInit()">\n <form ng-cloak>\n <md-toolbar class="advanced-search-dialog-header" ng-class="{{ \'vm.toolbarColor\' }} + \'-bg\'">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div flex>\n <span class="title" translate="DASHBOARDS.ADVANCED_SEARCH"></span>\n </div>\n <div layout="row" layout-align="end center">\n <md-button class="md-icon-button no-margin no-padding" ng-click="vm.minimize()">\n <md-icon class="no-margin" md-font-icon="icon-window-minimize" aria-label="Minimize dialog"></md-icon>\n </md-button>\n <md-button class="md-icon-button no-margin no-padding" ng-click="vm.close()">\n <md-icon class="no-margin" md-font-icon="icon-window-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </div>\n </md-toolbar>\n\n <md-dialog-content>\n <ms-advanced-search options="vm.searchOptions" clear-filter="vm.clearConditions()"></ms-advanced-search>\n </md-dialog-content>\n\n <md-dialog-actions layout="row">\n <md-button class="md-primary md-raised" aria-label="Clear" ng-disabled="vm.searchOptions.conditions.length === 0" translate="DASHBOARDS.CLEAR" translate-attr-aria-label="DASHBOARDS.CLEAR" ng-click="vm.clearConditions()"></md-button>\n <md-button class="md-primary md-accent md-raised" aria-label="Apply" ng-disabled="vm.searchOptions.conditions.length === 0" translate="DASHBOARDS.APPLY" translate-attr-aria-label="DASHBOARDS.APPLY" ng-click="vm.applyFilter()"></md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/core/directives/ms-advanced-search/ms-advanced-search.html",'<div layout="column" class="advanced-search-container" flex>\n <div layout-margin>\n <md-radio-group ng-model="vm.options.matchType" class="md-primary" layout="row">\n <md-radio-button value="$and" class="md-primary">{{ \'DASHBOARDS.MEET_ALL_CONDITIONS\' | translate }}\n </md-radio-button>\n <md-radio-button value="$or">{{ \'DASHBOARDS.MEET_ANY_CONDITIONS\' | translate }}</md-radio-button>\n </md-radio-group>\n </div>\n\n \x3c!-- ACTIVE CONDITIONS --\x3e\n <div layout="row" ng-if="vm.options.conditions.length > 0" class="advanced-search-conditions">\n <md-list>\n <md-list-item>\n <md-chips ng-model="vm.options.conditions" class="advanced-search-chips" readonly="true" md-removable="true" md-on-remove="vm.removeCondition()">\n <md-chip-template ms-chip-color="{{ $chip.style }}">\n <md-menu md-offset="50 0" ng-class="{\'no-click\': vm.pendingCondition}">\n <span>\n <p class="filter-text">{{ $chip.name }}</p>\n <em ng-show="$chip.operator" class="text-lowercase">{{ $chip.operator }}</em>\n <strong>{{ $chip.displayValue }}</strong>\n <em ng-show="$chip.displayEndValue" class="text-lowercase">{{ \'DASHBOARDS.AND\' | translate }}</em>\n <strong>{{ $chip.displayEndValue }}</strong>\n </span>\n <md-menu-content width=2 class="md-dense">\n <md-menu-item ng-hide="$chip.disabled">\n <md-button ng-click="vm.editCondition($chip)">Edit\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.setConditionStatus($chip)">\n {{ $chip.disabled ? \'Enable\' : \'Disable\' }}\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-chip-template>\n <button type="button" md-chip-remove class="md-primary remove-filter">\n <md-icon md-font-icon="icon-cancel" aria-label="Remove Filter"></md-icon>\n </button>\n </md-chips>\n </md-list-item>\n </md-list>\n </div>\n\n \x3c!-- FILTERS --\x3e\n <div layout="row">\n <div layout="row" class="advanced-search-bar" layout-margin flex>\n \x3c!-- FIELD --\x3e\n <md-input-container flex="35">\n <md-icon md-font-icon="icon-filter-variant"></md-icon>\n <md-select class="font-size-12" ng-model="vm.selectedField" ng-change="vm.onFieldChange()" placeholder="{{ \'DASHBOARDS.SELECT_FIELD\' | translate }}" aria-label="Field">\n <md-option ng-value="field" ng-repeat="field in vm.options.fields">{{ field.name }}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!-- OPERATOR --\x3e\n <md-input-container flex="30">\n <md-icon md-font-icon="icon-format-text"></md-icon>\n <md-select class="font-size-12" ng-model="vm.selectedOperator" ng-change="vm.onOperatorChange(oldValue)" ng-focus="oldValue=vm.selectedOperator" md-selected-text="vm.selectedOperator ? (\'DASHBOARDS.\' + vm.selectedOperator.translate | translate) : (\'DASHBOARDS.SELECT_OPERATOR\' | translate)" ng-disabled="!vm.selectedField" aria-label="Operator">\n <md-option ng-value="operator" ng-repeat="operator in vm.availableOperators" ng-selected="vm.autoSelectOperator">\n <div layout="row" class="operators-list">\n <span class="operator-symbol">\n {{ operator.symbol }}\n </span>\n <span>\n {{ \'DASHBOARDS.\' + operator.translate | translate }}\n </span>\n </div>\n </md-option>\n </md-select>\n </md-input-container>\n\n \x3c!-- TEXT INPUT --\x3e\n <md-input-container ng-if="!vm.selectedField.type || vm.selectedField.type === \'text\'" class="no-errors" flex>\n <md-icon md-font-icon="icon-format-text"></md-icon>\n <input type="text" aria-label="Value" ng-model="vm.value" ng-change="vm.onValueChange()" ng-disabled="!vm.selectedField" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" placeholder="{{ \'DASHBOARDS.VALUE\' | translate }}">\n </md-input-container>\n \x3c!-- NUMERIC INPUT --\x3e\n <div ng-if="vm.selectedField.type === \'number\'" flex layout="row" layout-margin class="no-margin">\n <md-input-container class="no-errors" flex>\n <md-icon md-font-icon="icon-numeric"></md-icon>\n <input type="number" aria-label="Value" ng-model="vm.value" ng-change="vm.onValueChange()" ng-disabled="!vm.selectedField" min="0" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" placeholder="{{ vm.selectedOperator.type === \'$between\' ? \'DASHBOARDS.STARTING_VALUE\' : \'DASHBOARDS.VALUE\' | translate }}">\n </md-input-container>\n <md-input-container class="no-errors" ng-if="vm.selectedOperator.type === \'$between\'" ng-class="{\'md-input-invalid\': !vm.isValidRange}" flex>\n <md-icon md-font-icon=" icon-numeric">\n </md-icon>\n <input class="md-input" type="number" aria-label="Value" ng-model="vm.endRangeValue" ng-change="vm.checkRange()" ng-disabled="!vm.value" min="vm.value" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" placeholder="{{ \'DASHBOARDS.ENDING_VALUE\' | translate }}">\n <div ng-if="!vm.isValidRange" class="md-input-message-animation md-input-messages-animation">\n {{ (\'DASHBOARDS.VALUE_RANGE_CHECK\' | translate) + \' \' + vm.value }}\n </div>\n </md-input-container>\n </div>\n \x3c!-- SELECT --\x3e\n <md-input-container ng-if="vm.selectedField.type === \'select\'" flex>\n <md-icon md-font-icon="icon-format-text"></md-icon>\n <md-select class="font-size-12" ng-model="vm.value" md-on-open="vm.getValues()" ng-change="vm.onValueChange()" ng-model-options="{trackBy: \'$value.id\'}" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" placeholder="{{ \'DASHBOARDS.VALUE\' | translate }}" aria-label="Value">\n <md-option ng-value="item" ng-repeat="item in vm.selectedField.values">{{item.name}}\n </md-option>\n </md-select>\n </md-input-container>\n \x3c!-- MULTISELECT --\x3e\n <md-input-container ng-if="vm.selectedField.type === \'multiselect\'" flex>\n <md-icon md-font-icon="icon-format-text"></md-icon>\n <md-select class="font-size-12" multiple ng-model="vm.value" md-on-open="vm.getValues()" ng-change="vm.onValueChange()" ng-model-options="{trackBy: \'$value.id\'}" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" placeholder="{{ \'DASHBOARDS.VALUE\' | translate }}" aria-label="Value">\n <md-option ng-value="item" ng-repeat="item in vm.selectedField.values">{{item.name}}\n </md-option>\n </md-select>\n </md-input-container>\n \x3c!-- DATE INPUT --\x3e\n <div ng-if="vm.selectedField.type === \'date\'" flex layout="row">\n <mdp-date-picker mdp-open-on-click ng-model="vm.value" ng-change="vm.onValueChange()" mdp-max-date="vm.maxDateRange" mdp-placeholder="{{ vm.selectedOperator.type === \'$between\' ? \'DASHBOARDS.STARTING_DATE\' : \'DASHBOARDS.VALUE\' | translate }}" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" flex>\n </mdp-date-picker>\n <mdp-date-picker mdp-open-on-click ng-if="vm.selectedOperator.type === \'$between\'" ng-change="vm.checkRange()" ng-model="vm.endRangeValue" mdp-min-date="vm.minDateRange" mdp-disabled="!vm.value" mdp-placeholder="{{ \'DASHBOARDS.ENDING_DATE\' | translate }}" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" flex>\n </mdp-date-picker>\n </div>\n \x3c!-- AUTOCOMPLETE --\x3e\n <div layout="row" layout-align="start start" ng-if="vm.selectedField.type === \'autocomplete\' && vm.selectedOperator.type != \'$substring\'" class=" autocomplete-input" flex>\n <md-icon md-font-icon="icon-format-text"></md-icon>\n <md-autocomplete md-selected-item="vm.value" md-selected-item-change="vm.onValueChange()" md-items="item in vm.getValues()" md-search-text="vm.searchText" md-item-text="item.displayValue" md-min-length="4" md-no-cache="true" md-floating-label="{{ \'DASHBOARDS.VALUE\' | translate }}" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" flex>\n <md-item-template>\n <span md-highlight-text="vm.searchText" md-highlight-flags="i">{{item.displayValue}}</span>\n </md-item-template>\n </md-autocomplete>\n </div>\n <md-input-container ng-if="vm.selectedField.type === \'autocomplete\' && vm.selectedOperator.type === \'$substring\'" class="no-errors" flex>\n <md-icon md-font-icon="icon-format-text"></md-icon>\n <input type="text" aria-label="Value" ng-model="vm.value" ng-change="vm.onValueChange()" ng-disabled="!vm.selectedField" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" placeholder="{{ \'DASHBOARDS.VALUE\' | translate }}">\n </md-input-container>\n </div>\n <md-button class="md-fab md-mini md-primary mt-20" ng-if="!vm.pendingCondition" ng-disabled="!vm.isValidCondition" aria-label="Add filter" ng-click="vm.addCondition()" translate-attr-aria-label="DASHBOARDS.ADD">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <md-button class="md-fab md-mini mt-20" ng-if="vm.pendingCondition" ng-disabled="!vm.isValidCondition" aria-label="Update filter" ng-click="vm.updateCondition()" translate-attr-aria-label="DASHBOARDS.UPDATE">\n <md-icon md-font-icon="icon-check"></md-icon>\n </md-button>\n <md-button class="md-fab md-mini md-primary mt-20" ng-if="vm.pendingCondition" aria-label="Cancel filter update" ng-click="vm.cancelUpdateCondition()" translate-attr-aria-label="DASHBOARDS.CANCEL">\n <md-icon md-font-icon="icon-close"></md-icon>\n </md-button>\n </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-1/template-1.html",'<div class="template-1">\n <div class="media">\n <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n </div>\n\n <div class="content pv-24 ph-16">\n <div class="title h1" ng-if="card.title">\n {{card.title}}\n </div>\n\n <div class="subtitle secondary-text" ng-if="card.subtitle">\n {{card.subtitle}}\n </div>\n\n <div class="text pt-16" ng-if="card.text">\n {{card.text}}\n </div>\n </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-10/template-10.html",'<div class="template-10 p-16">\n <div class="pb-16" layout="row" layout-align="space-between center">\n <div class="info">\n <div class="title secondary-text" ng-if="card.title">\n {{card.title}}\n </div>\n\n <div class="subtitle h2" ng-if="card.subtitle">\n {{card.subtitle}}\n </div>\n </div>\n\n <div class="media ml-16">\n <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n </div>\n </div>\n\n <div class="text">\n {{card.text}}\n </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-2/template-2.html",'<div class="template-2">\n <div class="header p-16" layout="row" layout-align="start center">\n <div ng-if="card.avatar">\n <img class="avatar mr-16" ng-src="{{card.avatar.src}}" alt="{{card.avatar.alt}}">\n </div>\n\n <div class="info">\n <div class="title" ng-if="card.title">\n {{card.title}}\n </div>\n\n <div class="subtitle secondary-text" ng-if="card.subtitle">\n {{card.subtitle}}\n </div>\n </div>\n </div>\n\n <div class="media">\n <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n </div>\n\n <div class="text p-16" ng-if="card.text">\n {{card.text}}\n </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-3/template-3.html",'<div class="template-3 p-16 teal-bg white-fg" layout="row" layout-align="space-between">\n <div layout="column" layout-align="space-between">\n <div class="info">\n <div class="title h1" ng-if="card.title">\n {{card.title}}\n </div>\n\n <div class="subtitle h3 secondary-text" ng-if="card.subtitle">\n {{card.subtitle}}\n </div>\n </div>\n\n <div class="cta">\n <md-button class="m-0">{{card.cta}}</md-button>\n </div>\n </div>\n\n <div class="media pl-16">\n <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-4/template-4.html",'<div class="template-4">\n <div class="info white-fg ph-16 pv-24">\n <div class="title h1" ng-if="card.title">\n {{card.title}}\n </div>\n\n <div class="text" ng-if="card.text">\n {{card.text}}\n </div>\n </div>\n\n <div class="media">\n <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-5/template-5.html",'<div class="template-5 p-16" layout="row" layout-align="space-between start">\n <div class="info">\n <div class="title secondary-text" ng-if="card.title">\n {{card.title}}\n </div>\n\n <div class="event h2" ng-if="card.event">\n {{card.event}}\n </div>\n </div>\n\n <div class="media ml-16">\n <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-6/template-6.html",'<div class="template-6">\n <div class="content pv-24 ph-16">\n <div class="subtitle secondary-text" ng-if="card.subtitle">\n {{card.subtitle}}\n </div>\n\n <div class="title h2" ng-if="card.title">\n {{card.title}}\n </div>\n\n <div class="text pt-8" ng-if="card.text">\n {{card.text}}\n </div>\n </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-7/template-7.html",'<div class="template-7" layout="row" layout-align="space-between">\n <div class="info" layout="column" layout-align="space-between" layout-fill flex>\n <div class="p-16">\n <div class="title h1" ng-if="card.title">\n {{card.title}}\n </div>\n\n <div class="subtitle h4 secondary-text" ng-if="card.subtitle">\n {{card.subtitle}}\n </div>\n\n <div class="text h4 pt-8" ng-if="card.text">\n {{card.text}}\n </div>\n </div>\n\n <div>\n <md-divider></md-divider>\n <div class="p-8" layout="row">\n <md-icon md-font-icon="icon-star-outline" class="mh-5"></md-icon>\n <md-icon md-font-icon="icon-star-outline" class="mh-5"></md-icon>\n <md-icon md-font-icon="icon-star-outline" class="mh-5"></md-icon>\n <md-icon md-font-icon="icon-star-outline" class="mh-5"></md-icon>\n <md-icon md-font-icon="icon-star-outline" class="mh-5"></md-icon>\n </div>\n </div>\n </div>\n\n <div class="media">\n <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-8/template-8.html",'<div class="template-8">\n <div class="media">\n <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n </div>\n\n <div class="content pv-24 ph-16">\n <div class="title h1" ng-if="card.title">\n {{card.title}}\n </div>\n\n <div class="subtitle secondary-text" ng-if="card.subtitle">\n {{card.subtitle}}\n </div>\n\n <div class="buttons pt-16">\n <md-button class="m-0">{{card.button1}}</md-button>\n <md-button class="m-0 md-accent">{{card.button2}}</md-button>\n </div>\n\n <div class="text pt-16" ng-if="card.text">\n {{card.text}}\n </div>\n </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-9/template-9.html",'<div class="template-9">\n <div class="header p-16" layout="row" layout-align="start center">\n <div ng-if="card.avatar">\n <img class="avatar mr-16" ng-src="{{card.avatar.src}}" alt="{{card.avatar.alt}}">\n </div>\n\n <div class="info">\n <div class="title" ng-if="card.title">\n {{card.title}}\n </div>\n\n <div class="subtitle secondary-text" ng-if="card.subtitle">\n {{card.subtitle}}\n </div>\n\n </div>\n </div>\n\n <div class="text ph-16 pb-16" ng-if="card.text">\n {{card.text}}\n </div>\n\n <div class="media">\n <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n </div>\n\n <div class="buttons m-8">\n <md-button class="md-icon-button mr-16" aria-label="Favorite">\n <md-icon md-font-icon="icon-heart-outline" class="s24"></md-icon>\n </md-button>\n <md-button class="md-icon-button" aria-label="Share">\n <md-icon md-font-icon="icon-share" class="s24"></md-icon>\n </md-button>\n </div>\n\n</div>'),e.put("app/core/directives/ms-click-to-call/ms-click-to-call.html",'<section ng-if="type !== \'button\'">\n <span ng-if="!showMenu()" privacy="{{ privacy }}" ng-cloak>{{target}}</span>\n <md-menu ng-if="showMenu()">\n <a aria-label="Target" ng-click="$mdOpenMenu($event)">\n <span ng-if="prefix" privacy="{{ privacy }}" ng-cloak>{{prefix}}-</span>\n <span privacy="{{ privacy }}" ng-cloak>{{target}}</span>\n </a>\n <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="call(prefix ? prefix + target : target)">\n {{\'DASHBOARDS.CALL_NUMBER\' | translate}} (<span privacy="{{ privacy }}" ng-cloak>{{prefix ? prefix + \'-\' + target : target}}</span>)\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="transfer(prefix ? prefix + target : target)">\n {{\'DASHBOARDS.TRANSFER_NUMBER\' | translate}} (<span privacy="{{ privacy }}" ng-cloak>{{prefix ? prefix + \'-\' + target : target}}</span>)\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n</section>\n<section ng-if="type === \'button\'">\n <md-button ng-if="!showMenu()" ng-disabled="true" class="md-icon-button md-raised md-accent ng-scope md-ink-ripple" title="NEW CALL" aria-label="NEW CALL">\n <md-icon md-font-icon="icon-phone"></md-icon>\n </md-button>\n <md-menu ng-if="showMenu()">\n <md-button class="md-icon-button md-raised md-accent ng-scope md-ink-ripple" title="NEW CALL" ng-click="$mdOpenMenu($event)" aria-label="NEW CALL">\n <md-icon md-font-icon="icon-phone"></md-icon>\n </md-button>\n <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="call(prefix ? prefix + target : target)">\n {{\'DASHBOARDS.CALL_NUMBER\' | translate}} (<span privacy="{{ privacy }}" ng-cloak>{{prefix ? prefix + \'-\' + target : target}}</span>)\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="transfer(target)">\n {{\'DASHBOARDS.TRANSFER_NUMBER\' | translate}} (<span privacy="{{ privacy }}" ng-cloak>{{prefix ? prefix + \'-\' + target : target}}</span>)\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n</section>'),e.put("app/core/directives/ms-dual-multiselect/ms-dual-multiselect.html",'<div ng-cloak layout-gt-sm="row" layout="column">\n <div flex-gt-sm="50" flex="45">\n <md-input-container class="md-icon-float md-block margin-0">\n <md-icon md-font-icon="icon-magnify" aria-label="swap"></md-icon>\n <input ng-model="query" type="text" placeholder="{{ \'STAFF.PERMISSIONS_PLACEHOLDER_SEARCH\' | translate }}">\n </md-input-container>\n <md-content class="border h-300">\n <md-list class="md-dense no-padding" layout-fill layout-align="center center">\n <md-list-item class="md-3-line" ng-class="{\'read-only-mode\': vm.readOnly || vm.addDisabled}" ng-disabled="vm.readOnly || vm.addDisabled" ng-repeat="item in availableItems = (vm.options.items | filter: query) | orderBy: vm.options.orderBy" ng-click="vm.canTransfer(item, vm.options, false)">\n <div class="md-list-item-text" layout="column">\n <h3 ng-if="vm.options.line1">{{vm.getLine(item, vm.options.line1)}}</h3>\n <h4 ng-if="vm.options.line2">{{vm.getLine(item, vm.options.line2)}}</h4>\n <p ng-if="vm.options.line3">{{vm.getLine(item, vm.options.line3)}}</p>\n <p class="ms-dual-multiselect-line-xs" ng-if="vm.options.line4">{{vm.getLine(item, vm.options.line4)}}\n </p>\n </div>\n <md-icon ng-hide="vm.readOnly && !vm.addDisabled" ng-class="{\'add-disabled\': vm.addDisabled}" md-font-icon="icon-arrow-right-bold" aria-label="swap">\n </md-icon>\n <md-divider></md-divider>\n </md-list-item>\n </md-list>\n </md-content>\n <div class="margin-10" layout="row">\n <span class="h4" flex>{{vm.options.labelAll || \'All Items\'}} ({{availableItems.length}})</span>\n <md-icon ng-hide="vm.options.showSelectAndDeselectAll === false || vm.readOnly" ng-class="{\'add-disabled\': vm.addDisabled}" ng-disabled="vm.addDisabled" md-font-icon="icon-chevron-double-right" aria-label="swap" ng-click="vm.transfer(vm.options.items, vm.options.selectedItems, -1, false)"></md-icon>\n </div>\n </div>\n\n <div flex="10" layout="row" layout-align="center center">\n <md-icon md-font-icon="icon-swap-horizontal" aria-label="swap"></md-icon>\n </div>\n\n <div flex-gt-sm="50" flex="45">\n <md-input-container class="md-icon-float md-block margin-0">\n <md-icon md-font-icon="icon-magnify" aria-label="swap"></md-icon>\n <input ng-model="selectedQuery" type="text" placeholder="{{ \'STAFF.PERMISSIONS_PLACEHOLDER_SEARCH\' | translate }}">\n </md-input-container>\n <md-content class="border h-300">\n <md-list class="md-dense no-padding" layout-fill layout-align="center center">\n <md-list-item class="md-3-line" ng-class="{\'read-only-mode\': vm.readOnly || !item.isValid}" ng-disabled="vm.readOnly" ng-repeat="item in associatedItems = (vm.options.selectedItems | filter: selectedQuery) | orderBy: vm.options.orderBy" ng-click="vm.canTransfer(item, vm.options, true)">\n <md-icon ng-class="{\'hidden\': vm.readOnly || !item.isValid}" md-font-icon="icon-arrow-left-bold" aria-label="swap"></md-icon>\n <div class="md-list-item-text" layout="column">\n <h3 ng-if="vm.options.line1">{{vm.getLine(item, vm.options.line1)}}</h3>\n <h4 ng-if="vm.options.line2">{{vm.getLine(item, vm.options.line2)}}</h4>\n <p ng-if="vm.options.line3">{{vm.getLine(item, vm.options.line3)}}</p>\n <p class="ms-dual-multiselect-line-xs" ng-if="vm.options.line4">{{vm.getLine(item, vm.options.line4)}}\n </p>\n </div>\n <md-divider></md-divider>\n </md-list-item>\n </md-list>\n </md-content>\n <div class="margin-10" layout="row">\n <md-icon ng-hide="vm.options.showSelectAndDeselectAll === false || vm.readOnly" md-font-icon="icon-chevron-double-left" aria-label="swap" ng-click="vm.transfer(vm.options.selectedItems, vm.options.items, -1, true)"></md-icon>\n <span class="h4 text-right" flex>{{vm.options.labelSelected || \'Selected Items\'}}\n ({{associatedItems.length}})</span>\n </div>\n </div>\n</div>'),e.put("app/core/directives/ms-font-family/ms-font-family.html",'<md-select ng-model="ngModel" class="no-margin">\n <md-option ng-repeat="font in fonts" ng-value="font.value"><span ng-style="{\'font-family\': font.value}">{{font.option}}</span>\n </md-option>\n</md-select>'),e.put("app/core/directives/ms-info-bar/ms-info-bar.html",'<div id="ms-info-bar" layout="row" layout-align="start center" flex>\n <div id="ms-info-bar-message" ng-transclude flex></div>\n <md-button id="ms-info-bar-close" class="md-icon-button" aria-label="Close" ng-click="removeInfoBar()">\n <md-icon md-font-icon="icon-close s20"></md-icon>\n </md-button>\n</div>'),e.put("app/core/directives/ms-material-color-picker/ms-material-color-picker.html",'<md-menu md-position-mode="target-right target">\n\n <div ng-click="$mdOpenMenu($event)">\n <ms-color-picker-button>\n <md-button aria-label="Row Color" md-menu-origin ng-click="$mdOpenMenu($event)" ng-class="vm.selectedColor.class">\n\n <span ng-show="vm.selectedColor.palette">\n {{vm.selectedColor.palette}} {{vm.selectedColor.hue}}\n </span>\n <span ng-show="!vm.selectedColor.palette">\n Select Color\n </span>\n </md-button>\n </ms-color-picker-button>\n </div>\n\n <md-menu-content class="ms-material-color-picker-menu-content" layout-column>\n\n <header ng-class="vm.selectedColor.class || \'md-accent-bg\'" class="md-whiteframe-4dp" layout="row" layout-align="space-between center">\n <md-button md-prevent-menu-close ng-click="vm.activateHueSelection(false,false)" class="md-icon-button" ng-class="{\'hidden\':!vm.selectedPalette}" aria-label="Palette">\n <md-icon md-font-icon="icon-arrow-left" class="s20"></md-icon>\n </md-button>\n\n <span ng-if="vm.selectedColor.palette">\n {{vm.selectedColor.palette}} {{vm.selectedColor.hue}}\n </span>\n\n <span ng-if="!vm.selectedColor.palette">\n Select Color\n </span>\n\n <md-button class="remove-color-button md-icon-button" ng-click="vm.removeColor()" aria-label="Remove Color">\n <md-icon md-font-icon="icon-delete" class="s20"></md-icon>\n </md-button>\n </header>\n\n <div class="colors" ms-scroll>\n <div ng-show="!vm.selectedPalette" layout="row" layout-wrap>\n <div class="color" ng-class="\'md-\'+palette+\'-500-bg\'" ng-repeat="(palette, hues) in vm.palettes" ng-click="vm.activateHueSelection(palette,hues)" layout="row" layout-align="start end" md-prevent-menu-close md-ink-ripple>\n <span class="label">\n {{palette}}\n </span>\n </div>\n </div>\n\n <div ng-show="vm.selectedPalette" layout="row" layout-wrap>\n <div class="color" ng-class="\'md-\'+vm.selectedPalette+\'-\'+hue+\'-bg\'" ng-repeat="(hue, values) in vm.selectedHues" ng-click="vm.selectColor(vm.selectedPalette,hue)" layout="row" layout-align="start end" md-ink-ripple>\n <span class="label">\n {{hue}}\n </span>\n <i ng-if="vm.selectedPalette == vm.selectedColor.palette && hue == vm.selectedColor.hue" class="s16 icon-check">\n </i>\n </div>\n </div>\n\n </div>\n\n </md-menu-content>\n</md-menu>'),e.put("app/core/directives/ms-navigation/templates/horizontal.html",'<div class="navigation-toggle" hide-gt-sm>\n <md-button class="md-icon-button" ng-click="vm.toggleHorizontalMobileMenu()" aria-label="Toggle Mobile Navigation">\n <md-icon md-font-icon="icon-menu"></md-icon>\n </md-button>\n</div>\n\n<ul class="horizontal">\n <li ng-repeat="node in vm.navigation" ms-navigation-horizontal-node="node" ng-class="{\'has-children\': vm.hasChildren}" ng-include="\'navigation-horizontal-nested.html\'"></li>\n</ul>\n\n\x3c!-- Nested horizontal navigation template --\x3e\n<script type="text/ng-template" id="navigation-horizontal-nested.html">\n\n <div ms-navigation-horizontal-item layout="row" ng-if="!vm.isHidden()">\n\n <div class="ms-navigation-horizontal-button" ng-if="!node.uisref && node.title"\n ng-class="{\'active md-accent-bg md-accent-fg\': vm.isActive}">\n <i class="icon s18 {{node.icon}}" ng-if="node.icon"></i>\n <span class="title" translate="{{node.translate}}" flex>{{node.title}}</span>\n <span class="badge white-fg" style="background: {{node.badge.color}}" ng-if="node.badge">{{node.badge.content}}</span>\n <i class="icon-chevron-right s18 arrow" ng-if="vm.hasChildren"></i>\n </div>\n\n <a class="ms-navigation-horizontal-button" ui-sref="{{node.uisref}}" ui-sref-active="active md-accent-bg"\n ng-class="{\'active md-accent-bg md-accent-fg\': vm.isActive}"\n ng-if="node.uisref && node.title">\n <i class="icon s18 {{node.icon}}" ng-if="node.icon"></i>\n <span class="title" translate="{{node.translate}}" flex>{{node.title}}</span>\n <span class="badge white-fg" style="background: {{node.badge.color}}" ng-if="node.badge">{{node.badge.content}}</span>\n <i class="icon-chevron-right s18 arrow" ng-if="vm.hasChildren"></i>\n </a>\n\n </div>\n\n <ul ng-if="vm.hasChildren && !vm.isHidden()">\n <li ng-repeat="node in node.children" ms-navigation-horizontal-node="node"\n ng-class="{\'has-children\': vm.hasChildren}"\n ng-include="\'navigation-horizontal-nested.html\'"></li>\n </ul>\n\n<\/script>\n\x3c!-- / Nested navigation template --\x3e'),e.put("app/core/directives/ms-navigation/templates/vertical.html",'<ul>\n <li ng-repeat="node in vm.navigation" ms-navigation-node="node" ng-class="{\'collapsed\': vm.collapsed, \'has-children\': vm.hasChildren}" ng-include="\'navigation-nested.html\'"></li>\n</ul>\n\n\x3c!-- Nested navigation template --\x3e\n<script type="text/ng-template" id="navigation-nested.html">\n\n <div id="{{ node.id }}" ms-navigation-item layout="row" ng-if="!vm.isHidden()">\n\n <div class="ms-navigation-button" ng-if="!node.uisref && node.title">\n <i class="icon s16 {{node.icon}}" ng-if="node.icon"></i>\n <span class="title" translate="{{node.translate}}" flex>{{node.title}}</span>\n <span class="badge white-fg margin-right-20" ng-style="{\'background\': node.badge.color}" ng-if="node.badge">{{node.badge.content}}</span>\n <i class="icon-chevron-right s16 arrow" ng-if="vm.collapsable && vm.hasChildren"></i>\n </div>\n\n <a class="ms-navigation-button" ui-sref="{{node.uisref}}" ui-sref-active="active md-accent-bg" ng-if="node.uisref && node.title">\n <i class="icon s16 {{node.icon}}" ng-if="node.icon"></i>\n <span class="title" translate="{{node.translate}}" flex>{{node.title}}</span>\n <span class="badge white-fg margin-right-20" ng-style="{\'background\': node.badge.color}" ng-if="node.badge">{{node.badge.content}}</span>\n <i class="icon-chevron-right s16 arrow" ng-if="vm.collapsable && vm.hasChildren"></i>\n </a>\n\n </div>\n\n <ul ng-if="vm.hasChildren && !vm.isHidden()">\n <li ng-repeat="node in node.children" ms-navigation-node="node"\n ng-class="{\'collapsed\': vm.collapsed, \'has-children\': vm.hasChildren}"\n ng-include="\'navigation-nested.html\'"></li>\n </ul>\n\n<\/script>\n\x3c!-- / Nested navigation template --\x3e'),e.put("assets/ms-phonebar/ms-phonebar-dialpad.html",'\x3c!-- Dialpad --\x3e\n<md-content ng-if="vm_pb.showDialpad" class="num-pad" layout="column">\n <section layout="row" layout-align="start center">\n <span><img class="num-pad-logo" layout-padding src="/api/settings/1/logo" alt="logo" /></span>\n <span class="md-subhead">Dialpad</span>\n <div layout="row" layout-align="end center" flex>\n <md-button class="md-icon-button" ng-click="vm_pb.closeDialpad()">\n <md-icon md-font-icon="icon-close"></md-icon>\n </md-button>\n </div>\n </section>\n <md-divider></md-divider>\n <section layout="row">\n <div class="span4" ng-repeat="item in ::[{n: 1, l: []}, {n: 2, l: [\'a\', \'b\', \'c\']}, {n: 3, l: [\'d\', \'e\', \'f\']}]" ng-click="vm_pb.type(item.n, true)">\n <div class="num">\n <div class="txt">\n {{item.n}} <span class="small">\n <p>\n <span ng-repeat="l in ::item.l">{{l | uppercase}}</span>\n </p>\n </span>\n </div>\n </div>\n </div>\n </section>\n <section layout="row">\n <div class="span4" ng-repeat="item in ::[{n: 4, l: [\'g\', \'h\', \'i\']}, {n: 5, l: [\'j\', \'k\', \'l\']}, {n: 6, l: [\'m\', \'n\', \'o\']}]" ng-click="vm_pb.type(item.n, true)">\n <div class="num">\n <div class="txt">\n {{item.n}} <span class="small">\n <p>\n <span ng-repeat="l in ::item.l">{{l | uppercase}}</span>\n </p>\n </span>\n </div>\n </div>\n </div>\n </section>\n <section layout="row">\n <div class="span4" ng-repeat="item in ::[{n: 7, l: [\'p\', \'q\', \'r\', \'s\']}, {n: 8, l: [\'t\', \'u\', \'v\']}, {n: 9, l: [\'w\', \'x\', \'y\', \'z\']}]" ng-click="vm_pb.type(item.n, true)">\n <div class="num">\n <div class="txt">\n {{item.n}} <span class="small">\n <p>\n <span ng-repeat="l in ::item.l">{{l | uppercase}}</span>\n </p>\n </span>\n </div>\n </div>\n </div>\n </section>\n <section layout="row">\n <div class="span4" ng-repeat="item in ::[{n: \'*\', l: []}]" ng-click="vm_pb.type(item.n, true)">\n <div class="num" layout="column" layout-align="center center">\n <div class="txt" layout="column" layout-align="center center">\n {{item.n}}\n </div>\n </div>\n </div>\n <div class="span4" ng-repeat="item in ::[{n: 0, l: [\'+\']}]" ng-click="vm_pb.type(item.n, true)">\n <div class="num">\n <div class="txt">\n {{item.n}} <span class="small">\n <p>\n <span ng-repeat="l in ::item.l">{{l | uppercase}}</span>\n </p>\n </span>\n </div>\n </div>\n </div>\n <div class="span4" ng-repeat="item in ::[{n: \'#\', l: []}]" ng-click="vm_pb.type(item.n, true)">\n <div class="num" layout="column" layout-align="center center">\n <div class="txt" layout="column" layout-align="center center">\n {{item.n}}\n </div>\n </div>\n </div>\n </section>\n</md-content>\n\x3c!-- Dialpad --\x3e\n\n\x3c!-- Input&Media Area --\x3e\n<div layout="row" layout-align="start center">\n <div layout="row" layout-align="center center">\n \x3c!-- START Ringing Tone--\x3e\n <md-button class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Ringing" ng-click="vm_pb.conf.ringingMute = !vm_pb.conf.ringingMute; vm_pb.initDevice(\'ringing\', true)" ng-disabled="!vm_pb.registered">\n <md-icon md-font-icon="{{vm_pb.conf.ringingMute ? \'icon-bell-off\' : \'icon-bell-ring\'}}" class="icon s14" ng-class="vm_pb.conf.ringingMute ? \'red-fg\' : \'grey-fg\'">\n <md-tooltip><span translate="TOOLBAR.RINGING">Ringing</span></md-tooltip>\n </md-icon>\n </md-button>\n \x3c!-- END Ringing Tone --\x3e\n\n \x3c!-- START Speaker --\x3e\n <md-button class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Speaker" ng-click="vm_pb.conf.speakerMute = !vm_pb.conf.speakerMute; vm_pb.initDevice(\'speaker\', true)" ng-disabled="!vm_pb.registered">\n <md-icon md-font-icon="{{vm_pb.conf.speakerMute ? \'icon-volume-off\' : \'icon-volume\'}}" class="icon s14" ng-class="vm_pb.conf.speakerMute ? \'red-fg\' : \'grey-fg\'">\n <md-tooltip><span translate="TOOLBAR.SPEAKER">Speaker</span></md-tooltip>\n </md-icon>\n </md-button>\n \x3c!-- END Speaker --\x3e\n\n \x3c!-- START Microphone --\x3e\n <md-button class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Microphone" ng-click="vm_pb.conf.microphoneMute = !vm_pb.conf.microphoneMute; vm_pb.initDevice(\'microphone\', true)" ng-disabled="!vm_pb.registered">\n <md-icon md-font-icon="{{vm_pb.conf.microphoneMute ? \'icon-microphone-off\' : \'icon-microphone\'}}" class="icon s14" ng-class="vm_pb.conf.microphoneMute ? \'red-fg\' : \'grey-fg\'">\n <md-tooltip><span translate="TOOLBAR.MICROPHONE">Microphone</span></md-tooltip>\n </md-icon>\n </md-button>\n \x3c!-- END Microphone --\x3e\n\n \x3c!-- START Registered --\x3e\n <span>\n <span class="quantity-indicator md-red-500-bg" ng-class="vm_pb.registered ? \'md-green-500-bg\' : \'md-red-500-bg\'"></span>\n <md-tooltip><span>{{vm_pb.conf.license ? (vm_pb.registered ? \'TOOLBAR.REGISTERED\' : \'TOOLBAR.NOT_REGISTERED\') : \'TOOLBAR.WEBRTC_LICENSE_NOT_ENABELD\' | translate}}\n <timer ng-if="vm_pb.registered"></timer>\n </span>\n </md-tooltip>\n </span>\n \x3c!-- END Registered --\x3e\n </div>\n <div layout="column" layout-align="center start">\n <div layout="row" layout-align="start center">\n \x3c!-- START Target --\x3e\n <angucomplete-alt id="ms-target-wrap" pause="10" local-data="vm_pb.calls" search-fields="target" title-field="target" minlength="0" input-class="input-number" disable-input="!vm_pb.registered" match-class="highlight" template-url="assets/ms-phonebar/ms-phonebar-input.html" input-changed="vm_pb.targetChanged" selected-object="vm_pb.targetSelected" clear-selected="true" ng-keypress="vm_pb.typeWrapper($event)" focus-first="true" disable-autocomplete="vm_pb.currentUser.privacyEnabled" />\n \x3c!-- END Target --\x3e\n\n \x3c!-- Auto Answer --\x3e\n <div ng-if="vm_pb.conf.autoAnswer" class="red-fg" style="padding-left: 10px;">\n <span class="font-size-20">A<span class="font-size-16">A</span></span>\n </div>\n \x3c!-- Auto Answer --\x3e\n\n <md-button class="md-fab md-mini white-bg width-30 height-30" aria-label="Dialpad" ng-click="vm_pb.toggleDialpad()" ng-disabled="!vm_pb.registered">\n <md-icon md-font-icon="icon-apps" class="icon grey-fg s16"></md-icon>\n </md-button>\n <md-button ng-if="vm_pb.target" class="md-fab md-mini white-bg width-25 height-25" aria-label="Call" style="margin-left: 0px;" ng-click="vm_pb.call()">\n <md-icon md-font-icon="icon-phone" class="icon green-fg s12"></md-icon>\n </md-button>\n </div>\n </div>\n</div>\n\x3c!-- Input&Media Area --\x3e\n\n\x3c!-- START 3WC --\x3e\n<md-button ng-if="vm_pb.canGoInConference" class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="3Way" ng-click="vm_pb.start3WayConf(); $event.stopPropagation();">\n <md-icon md-font-icon="icon-account-multiple-plus" class="icon orange-fg s14"></md-icon>\n <md-tooltip><span translate="TOOLBAR.CONFERENCE">Conference</span></md-tooltip>\n</md-button>\n\x3c!-- END 3Way --\x3e\n\n\n<div class="toolbar-separator"></div>\n\n\x3c!-- Sessions Area --\x3e\n<div class="sessions" layout="row" layout-align="start center" flex>\n <div layout="row" layout-align="center center" ng-if="!vm_pb.conf.license">\n <md-icon md-font-icon="icon-account-alert" class="icon s36 red-fg"></md-icon>\n <span layout-margin translate="TOOLBAR.WEBRTC_LICENSE_NOT_ENABELD"></span>\n </div>\n\n <div id="{{\'div_session_\'+session.id.substr(0,32)}}" ng-repeat="session in vm_pb.sessions" class="session" layout="row" ng-click="(vm_pb.sessions.length > 1) && vm_pb.selectSession(session)">\n <md-button ng-if="vm_pb.conf.recording && session.confirmed" class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Record" ng-click="vm_pb.record(session); $event.stopPropagation();">\n <md-icon md-font-icon="icon-radiobox-marked" class="icon s14" ng-class="session.monitor ? \'red-fg\' : \'grey-fg\'"></md-icon>\n </md-button>\n <div layout="column" layout-align="center start">\n <span class="session-info">\n <span ng-if="session.user == session.name" privacy ng-cloak>{{session.user}}</span>\n <span ng-if="session.user != session.name" privacy ng-cloak>{{session.name}}</span> <span ng-if="session.user != session.name" privacy ng-cloak>{{session.user}}</span>\n </span>\n <span class="session-info" layout="row" layout="start center">\n <timer></timer>\n </span>\n </div>\n\n \x3c!-- START Answer --\x3e\n <md-button ng-if="session.incoming && !session.confirmed" class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Anser" ng-click="vm_pb.answer(session); $event.stopPropagation();">\n <md-icon md-font-icon="icon-phone" class="icon green-fg s12"></md-icon>\n </md-button>\n \x3c!-- END Answer --\x3e\n\n \x3c!-- START Hangup --\x3e\n <md-button class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Terminate" ng-click="vm_pb.terminate(session); $event.stopPropagation();">\n <md-icon md-font-icon="icon-phone-hangup" class="icon red-fg s12"></md-icon>\n </md-button>\n \x3c!-- END Hangup --\x3e\n\n \x3c!-- START Hold/Unhold --\x3e\n <md-button ng-if="session.confirmed && !vm_pb.isInConference" class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Hold" ng-click="(session.localHold ? vm_pb.unhold(session) : vm_pb.hold(session)); $event.stopPropagation();">\n <md-icon md-font-icon="{{session.localHold ? \'icon-play\' : \'icon-pause\'}}" class="icon grey-fg s12"></md-icon>\n </md-button>\n \x3c!-- END Hold/Unhold --\x3e\n\n \x3c!-- START Transfer --\x3e\n <md-button ng-if="session.confirmed && !session.localHold && vm_pb.sessions.length == 1 && !vm_pb.isInConference" class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Refer" ng-click="vm_pb.refer(session); $event.stopPropagation();">\n <md-icon md-font-icon="icon-phone-forward" class="icon purple-fg s12"></md-icon>\n </md-button>\n \x3c!-- END transfer --\x3e\n\n \x3c!-- START Attended Transfer --\x3e\n <md-button ng-if="session.confirmed && !session.localHold && vm_pb.sessions.length>1" class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Refer Attended" ng-click="vm_pb.referAttended(session); $event.stopPropagation();">\n <md-icon md-font-icon="icon-phone-forward" class="icon purple-fg s12"></md-icon>\n </md-button>\n \x3c!-- END Attended Transfer --\x3e\n </div>\n</div>\n\x3c!-- Sessions Area --\x3e'),e.put("assets/ms-phonebar/ms-phonebar-input.html",'<div class="angucomplete-holder" ng-class="{\'angucomplete-dropdown-visible\': showDropdown}">\n <input id="ms-target" ng-model="searchStr" ng-disabled="disableInput" type="text" placeholder="{{placeholder}}" ng-focus="onFocusHandler()" class="{{inputClass}}" ng-focus="resetHideResults()" ng-blur="hideResults($event)" autocapitalize="off" autocorrect="off" autocomplete="off" ng-change="inputChangeHandler(searchStr)" />\n <div class="angucomplete-dropdown" ng-show="showDropdown && !(!searching && (!results || results.length == 0))">\n <div class="angucomplete-row" ng-repeat="result in results" ng-click="selectResult(result)" ng-mouseenter="hoverRow($index)" ng-class="{\'angucomplete-selected-row\': $index == currentIndex}">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="{{result.originalObject.inbound ? \'icon-arrow-bottom-left\' : \'icon-arrow-top-right\'}}" class="icon no-margin s22"></md-icon>\n <span style="margin-left: 8px;">({{result.originalObject.time}}) - <span class="angucomplete-title" ng-if="matchClass" ng-bind-html="result.title" privacy ng-cloak></span></span>\n </div>\n </div>\n </div>\n</div>'),e.put("assets/ms-phonebar/ms-phonebar.html",'<div layout="row" layout-align="start center" flex>\n \x3c!-- Audio stream --\x3e\n <audio id="local-audio" autoplay hidden=true></audio>\n <audio id="remote-audio" autoplay hidden=true></audio>\n \x3c!-- Audio stream --\x3e\n\n \x3c!-- WebRtc PhoneBar --\x3e\n <div class="phonebar-container" ng-include="\'assets/ms-phonebar/ms-phonebar-dialpad.html\'" layout="row" layout-align="start center" flex></div>\n \x3c!-- WebRtc PhoneBar --\x3e\n</div>'),e.put("assets/ms-phonebar/prefix/dialog.html",'<md-dialog aria-label="Prefix">\n <form ng-cloak ng-keypress="vm.keyPress($event)">\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div flex>\n <span class="title" translate="TOOLBAR.PREFIXES">Prefixes</span>\n </div>\n <div layout="row" layout-align="end center">\n <md-button class="md-icon-button no-margin no-padding" ng-click="vm.closeDialog(-1)">\n <md-icon class="no-margin" md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </div>\n </md-toolbar>\n\n <md-dialog-content>\n <md-radio-group ng-model="vm.prefix">\n <md-radio-button ng-repeat="prefix in vm.prefixes.rows" value="{{prefix.prefix}}" class="md-primary">{{prefix.name}}</md-radio-button>\n <md-radio-button ng-if="!vm.required" ng-value="null" class="md-primary">no prefix</md-radio-button>\n </md-radio-group>\n </md-dialog-content>\n\n <md-dialog-actions layout="row">\n <md-button ng-click="vm.call()" class="send-button md-accent md-raised" aria-label="call" md-autofocus ng-disabled="!vm.prefix && vm.required">\n <span translate="TOOLBAR.CALL">CALL</span>\n </md-button>\n <md-button ng-click="vm.closeDialog(-1)" class="send-button md-accent md-raised" aria-label="cancel">\n <span translate="TOOLBAR.CANCEL">Cancel</span>\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("assets/ms-phonebar/record/dialog.html",'<md-dialog aria-label="Recording" ng-init="vm.onInit()">\n <form ng-cloak>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div flex>\n <span class="title" translate="TOOLBAR.RECORDING">Recording</span>\n </div>\n <div layout="row" layout-align="end center">\n <md-button class="md-icon-button no-margin no-padding">\n <md-icon class="no-margin" md-font-icon="icon-plus" aria-label="Add" ng-click="vm.addRecording()"></md-icon>\n </md-button>\n <md-button class="md-icon-button no-margin no-padding" ng-click="vm.closeDialog()">\n <md-icon class="no-margin" md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </div>\n </md-toolbar>\n\n <md-table-container>\n <table md-table layout-padding>\n <thead md-head>\n <tr md-row>\n <th md-column><span translate="TOOLBAR.FILENAME">File name</span></th>\n <th md-column><span translate="TOOLBAR.STATUS">Status</span></th>\n <th md-column><span translate="TOOLBAR.ACTIONS">Actions</span></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.session.monitors.length">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="TOOLBAR.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="monitor in vm.session.monitors">\n <td md-cell>{{monitor.filename}}</td>\n <td md-cell class="no-padding">\n <md-icon md-font-icon="icon-radiobox-marked" class="icon s16" ng-class="(monitor.status == \'rec\') ? \'red-fg ms-blink\' : \'grey-fg\'"></md-icon>\n </td>\n <td md-cell class="no-padding">\n <md-button class="md-fab md-mini white-bg width-35 height-35 margin-5" aria-label="Record" ng-click="(monitor.status == \'rec\') ? vm.stop(monitor) : vm.start(monitor)">\n'+" <md-icon md-font-icon=\"{{monitor.status == 'rec' ? 'icon-stop' : 'icon-play'}}\" class=\"icon s16\" ng-class=\"monitor.status == 'rec' ? 'grey-fg' : 'red-fg'\"></md-icon>\n </md-button>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n </form>\n</md-dialog>"),e.put("assets/ms-phonebar/referAttended/dialog.html",'<md-dialog aria-label="Transfer">\n <form ng-cloak>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div flex>\n <span class="title" translate="TOOLBAR.ATTENDED_TRANSFER">Transfer</span>\n </div>\n <div layout="row" layout-align="end center">\n <md-button class="md-icon-button no-margin no-padding" ng-click="vm.closeDialog()">\n <md-icon class="no-margin" md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </div>\n </md-toolbar>\n\n <md-dialog-content>\n <label translate="TOOLBAR.TARGET">Target</label>\n <md-input-container class="md-block">\n <md-select ng-model="vm.target">\n <md-option ng-repeat="session in vm.sessions" ng-value="session.user">\n {{ session.name }}\n </md-option>\n </md-select>\n </md-input-container>\n </md-dialog-content>\n\n <md-dialog-actions layout="row">\n <md-button ng-click="vm.transfer()" class="send-button md-accent md-raised" aria-label="transfer" ng-disabled="!vm.target && !vm.sessionId">\n <span translate="TOOLBAR.TRANSFER">TRANSFER</span>\n </md-button>\n <md-button ng-click="vm.closeDialog()" class="send-button md-accent md-raised" aria-label="cancel">\n <span translate="TOOLBAR.CANCEL">Cancel</span>\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("assets/ms-phonebar/settings/settings.html",'<md-dialog class="md-phonebar-dialog" aria-label="{{vm.name}}">\n <form name="settingsForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title" translate="TOOLBAR.SETTINGS">Settings</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content class="no-padding" ms-scroll>\n <md-tabs md-no-pagination md-stretch-tabs="always">\n <md-tab label="{{ \'TOOLBAR.PROFILE\' | translate}}">\n <md-content layout-padding layout="column">\n <span><span translate="TOOLBAR.FULLNAME">Fullname</span>: {{vm.conf.fullname}}</span>\n <span><span translate="TOOLBAR.NAME">Name</span>: {{vm.conf.name}}</span>\n <span><span translate="TOOLBAR.INTERNAL">Internal</span>: {{vm.conf.internal}}</span>\n <span><span translate="TOOLBAR.BROWSER">Browser</span>: {{vm.conf.browserName}} {{vm.conf.browserVersion}}</span>\n <span><span translate="TOOLBAR.OS">OS</span>: {{vm.conf.osName}} {{vm.conf.osVersion}}</span>\n </md-content>\n </md-tab>\n <md-tab label="{{ \'TOOLBAR.SERVICES\' | translate}}">\n <md-content layout-padding>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.conf.autoAnswer" aria-label="Auto Answer">\n <span translate="TOOLBAR.AUTOANSWER">Auto Answer</span>\n <span>{{ vm.conf.autoAnswerDelay }} [s]</span>\n </md-switch>\n </md-input-container>\n </md-content>\n </md-tab>\n <md-tab label="{{ \'TOOLBAR.AUDIO\' | translate}}">\n <md-content layout-padding>\n <div class="border brad-5" layout-margin>\n <md-input-container class="md-block" ng-if="(vm.devices | filter: { kind: \'audiooutput\' }).length">\n <label translate="TOOLBAR.RINGINGDEVICE">Ringing Device</label>\n <md-select name="ringingDevice" ng-model="vm.conf.ringingId" required>\n <md-option ng-value="device.deviceId" ng-repeat="device in vm.devices | filter: { kind: \'audiooutput\' }">{{ device.label || (\'Speaker \' + ($index + 1)) }}</md-option>\n </md-select>\n <div ng-messages="settingsForm[\'ringingDevice\'].$error" ng-show="settingsForm[\'ringingDevice\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLBAR.ERRORS.FIELD_REQUIRED">Field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div layout="row" layout-align="space-between center">\n <md-switch ng-model="vm.conf.ringingMute" aria-label="Mute">\n Mute\n </md-switch>\n\n <md-slider-container flex="80">\n <md-slider flex step="0.1" min="0" max="1" ng-model="vm.conf.ringingVolume" aria-label="volume"></md-slider>\n </md-slider-container>\n </div>\n </div>\n\n <div class="border brad-5" layout-margin>\n <md-input-container class="md-block" ng-if="(vm.devices | filter: { kind: \'audiooutput\' }).length">\n <label translate="TOOLBAR.SPEAKERDEVICE">Speaker Device</label>\n <md-select name="speakerDevice" ng-model="vm.conf.speakerId" required>\n <md-option ng-value="device.deviceId" ng-repeat="device in vm.devices | filter: { kind: \'audiooutput\' }">{{ device.label || (\'Speaker \' + ($index + 1)) }}</md-option>\n </md-select>\n <div ng-messages="settingsForm[\'speakerDevice\'].$error" ng-show="settingsForm[\'speakerDevice\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLBAR.ERRORS.FIELD_REQUIRED">Field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div layout="row" layout-align="space-between cetner">\n <md-switch ng-model="vm.conf.speakerMute" aria-label="Mute">\n Mute\n </md-switch>\n\n <md-slider-container flex="80">\n <md-slider flex step="0.1" min="0" max="1" ng-model="vm.conf.speakerVolume" aria-label="volume"></md-slider>\n </md-slider-container>\n </div>\n </div>\n\n <div class="border brad-5" layout-margin>\n <md-input-container class="md-block" ng-if="(vm.devices | filter: { kind: \'audioinput\' }).length">\n <label translate="TOOLBAR.MICROPHONEDEVICE">Microphone Device</label>\n <md-select name="microphoneDevice" ng-model="vm.conf.microphoneId" required>\n <md-option ng-value="device.deviceId" ng-repeat="device in vm.devices | filter: { kind: \'audioinput\' }">{{ device.label || (\'Microphone \' + ($index + 1))}}</md-option>\n </md-select>\n <div ng-messages="settingsForm[\'microphoneDevice\'].$error" ng-show="settingsForm[\'microphoneDevice\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLBAR.ERRORS.FIELD_REQUIRED">Field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div layout="row" layout-align="space-between center">\n <md-switch ng-model="vm.conf.microphoneMute" aria-label="Mute">\n Mute\n </md-switch>\n </div>\n </div>\n </md-content>\n </md-tab>\n <md-tab label="{{ \'TOOLBAR.REQUIREMENTS\' | translate}}">\n <md-content layout-padding>\n <md-list>\n <md-list-item>\n <h3 translate="TOOLBAR.LICENSE">License</h3>\n <md-icon class="md-secondary" ng-class="vm.conf.license ? \'green-fg\' : \'red-fg\'" md-font-icon="{{vm.conf.license ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </md-list-item>\n <md-list-item>\n <h3 translate="TOOLBAR.BROWSER_COMPATIBILITY">Browser Compatibility</h3>\n <md-icon class="md-secondary" ng-class="vm.isCompatibleBrowser() ? \'green-fg\' : \'red-fg\'" md-font-icon="{{vm.isCompatibleBrowser() ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </md-list-item>\n <md-list-item>\n <h3 translate="TOOLBAR.HTTPS">HTTPS</h3>\n <md-icon class="md-secondary" ng-class="vm.conf.protocol === \'https\' ? \'green-fg\' : \'red-fg\'" md-font-icon="{{vm.conf.protocol === \'https\' ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </md-list-item>\n <md-list-item>\n <h3 translate="TOOLBAR.WEBRTCSUPPORT">WebRTC Support</h3>\n <md-icon class="md-secondary" ng-class="vm.conf.isWebRTCSupported ? \'green-fg\' : \'red-fg\'" md-font-icon="{{vm.conf.isWebRTCSupported ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </md-list-item>\n <md-list-item>\n <h3 translate="TOOLBAR.MICROPHONE">Microphone</h3>\n <md-icon class="md-secondary" ng-class="vm.conf.hasMicrophone ? \'green-fg\' : \'red-fg\'" md-font-icon="{{vm.conf.hasMicrophone ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </md-list-item>\n <md-list-item>\n <h3 translate="TOOLBAR.SPEAKER">Speaker</h3>\n <md-icon class="md-secondary" ng-class="vm.conf.hasSpeakers ? \'green-fg\' : \'red-fg\'" md-font-icon="{{vm.conf.hasSpeakers ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </md-list-item>\n </md-list>\n </md-content>\n </md-tab>\n </md-tabs>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.saveSettings()" class="send-button md-accent md-raised" ng-disabled="settingsForm.$invalid || settingsForm.$pristine" aria-label="SAVE" translate="TOOLBAR.SAVE" translate-attr-aria-label="TOOLBAR.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/core/directives/ms-quick-filter/ms-quick-filter.html",'<div ng-cloak layout="row" class="quick-filter-container" flex>\n <div ng-repeat="filter in vm.filters" ng-if="filter.ngIf ? $eval(\'vm.query.\' + filter.ngIf) : true" layout="column" class="padding-horizontal-16">\n <span class="font-size-10" translate="{{ filter.label }}" />\n <md-select ng-if="filter.type === \'select\'" class="font-size-12 no-margin" ng-model="vm.query[filter.key]" ng-change="vm.search()" aria-label="Filter {{ filter.name }}">\n <md-option ng-repeat="option in filter.options" ng-value="filter.ngValue ? option[filter.ngValue] : option.id">\n {{ option.name }}</md-option>\n <md-option ng-repeat="option in filter.customOptions" ng-value="option.value" translate="{{ option.translate }}">\n </md-option>\n </md-select>\n\n <md-select ng-if="filter.type === \'multiselect\'" multiple class="font-size-12 no-margin" ng-init="vm.onMultiselectInit(filter)" ng-model="vm.query[filter.key]" ng-disabled="filter.options.length === 0" ng-change="vm.onMultiselectSelection(filter, isOpened)" md-selected-text="vm.placeholders[filter.key]" aria-label="Filter {{ filter.name }}" md-on-open="isOpened = true" md-on-close="isOpened = false">\n <md-option ng-repeat="option in filter.options" ng-value="filter.ngValue ? option[filter.ngValue] : option.id" ng-disabled="filter.clearAll === false && vm.query[filter.key].length === 1 && vm.query[filter.key][0] === (filter.ngValue ? option[filter.ngValue] : option.id)">\n {{ option.name }}</md-option>\n <md-button ng-if="vm.query[filter.key].length < filter.options.length" ng-click="vm.selectAll(filter)" md-no-ink class="md-primary" layout-fill>\n {{\'DASHBOARDS.SELECT_ALL\' | translate}}</md-button>\n <md-button ng-if="vm.query[filter.key].length === filter.options.length" ng-click="vm.clearSelection(filter)" md-no-ink class="md-primary" layout-fill>\n {{\'DASHBOARDS.CLEAR\' | translate}}</md-button>\n </md-select>\n\n <div ng-if="filter.type === \'date\'" layout="row" layout-align="center center">\n <md-date-range ng-init="vm.onDateRangeInit(filter)" localization-map="vm.localizationMap" ng-model="vm.pickerModels[filter.key]" auto-confirm="true" show-template="true" md-on-select="vm.onDateRangeSelection(filter)" placeholder="{{ \'DASHBOARDS.ALL\' | translate }}">\n </md-date-range>\n <md-button ng-if="vm.pickerModels[filter.key].dateStart" ng-click="vm.clearDate(filter)" class="md-icon-button no-margin no-padding width-20 height-20" aria-label="Clear date filter">\n <md-icon md-font-icon="icon-close" class="quick-filter-date-clear-button s16"></md-icon>\n </md-button>\n </div>\n </div>\n</div>'),e.put("app/core/directives/ms-search-bar/ms-search-bar.html",'<div flex layout="row" layout-align="start center">\n <label>\n <md-button class="ms-search-bar-expander md-icon-button" aria-label="Expand Search Bar" ng-click="vm.expandBar()" ng-if="!vm.resultsLoading || !vm.expanded" ng-class="{\'ms-search-button-expanded\': vm.expanded }">\n <md-icon id="ms-search-bar-icon" md-font-icon="icon-magnify" class="s24" ng-class="{\'{{ vm.iconColor }}\': vm.iconColor && !vm.expanded }"></md-icon>\n </md-button>\n <div class="ms-search-bar-loader" layout="row" layout-align="center center" ng-if="vm.resultsLoading && vm.expanded">\n <md-progress-circular class="md-accent" md-diameter="32" md-mode="indeterminate"></md-progress-circular>\n </div>\n </label>\n <input ng-if="vm.expanded" focus-on="vm.expanded" type="text" placeholder="{{ \'TOOLBAR.SEARCH\' | translate }}" flex ng-model="vm.query.filter" ng-model-options="vm.queryOptions" ng-blur="vm.blurCollapse()" ng-keydown="vm.onKeyDown($event)" />\n <md-button class="ms-search-bar-collapser md-icon-button" ng-click="vm.collapseBar()" aria-label="Collapse Search Bar">\n <md-icon md-font-icon="icon-close" class="icon s24"></md-icon>\n </md-button>\n <div class="ms-search-bar-results" ng-if="vm.results" ms-scroll>\n <div class="no-results" ng-if="vm.results.length === 0">{{ \'DASHBOARDS.NO_RESULTS_AVAILABLE\' | translate }}</div>\n <div class="result" ng-repeat="result in vm.results" ng-click="vm.handleResultClick(result)" ng-mouseenter="vm.handleMouseEnter($index)" ng-mousedown="vm.absorbEvent($event)" ng-class="{\'selected\': $index == vm.selectedResultIndex}" md-ink-ripple>\n <div layout="row" layout-align="start center">\n <div class="icon-container" layout="row" layout-align="center center">\n <i ng-if="result.icon" class="icon {{ result.icon }}"></i>\n <div ng-if="!result.icon" class="square md-accent-bg"></div>\n </div>\n <div>\n <div class="title">{{ result.title }}</div>\n <div class="description" ng-if="result.description">{{ result.description }}</div>\n </div>\n </div>\n </div>\n </div>\n</div>'),e.put("app/core/directives/ms-shortcuts/ms-shortcuts.html",'<div class="shortcuts-container" layout="row" layout-align="space-between center" flex ng-class="{\'mobile-bar-active\': MsShortcuts.mobileBarActive}">\n\n <div class="flex-noshrink" layout="row" layout-align="start center" flex>\n <div class="shortcuts hide show-gt-xs" layout="row" layout-align="start center" ms-scroll ng-if="MsShortcuts.shortcuts.length > 0" ng-sortable="MsShortcuts.sortableOptions">\n <div ng-repeat="shortcut in MsShortcuts.shortcuts" layout="row" layout-align="center center">\n <md-button class="md-icon-button shortcut" aria-label="{{shortcut.title}}" ui-sref="{{shortcut.uisref}}">\n <md-icon ng-if="shortcut.icon" md-font-icon="{{shortcut.icon}}" class="icon s24"></md-icon>\n <div ng-if="!shortcut.icon" class="first-letter">{{shortcut.title.charAt(0)}}</div>\n <md-tooltip md-direction="bottom">{{shortcut.title}}</md-tooltip>\n </md-button>\n </div>\n </div>\n\n \x3c!-- <md-menu md-offset="8 56" class="shortcut-menu hide show-gt-xs">\n <md-button class="md-icon-button add-shortcut-button" aria-label="Add shortcut"\n ng-click="$mdOpenMenu($event)">\n <md-icon md-menu-origin md-font-icon="icon-star" class="icon amber-600-fg s24"></md-icon>\n <md-tooltip md-direction="bottom">Click to add/remove shortcut</md-tooltip>\n </md-button>\n\n <md-menu-content>\n <div id="ms-shortcut-add-menu">\n <div class="shortcut-search" layout="row" layout-align="start center">\n <div class="search-icon" layout="row" layout-align="center center"\n ng-if="!MsShortcuts.resultsLoading">\n <md-icon md-menu-align-target md-font-icon="icon-magnify" class="icon s24"></md-icon>\n </div>\n <div class="shortcut-loader" layout="row" layout-align="center center"\n ng-if="MsShortcuts.resultsLoading">\n <md-progress-circular class="md-accent" md-diameter="20" md-mode="indeterminate">\n </md-progress-circular>\n </div>\n\n <input type="text" placeholder="Search" flex\n ng-model="MsShortcuts.query"\n ng-model-options="MsShortcuts.queryOptions"\n ng-keydown="MsShortcuts.handleKeydown($event)">\n </div>\n\n <div class="results" ng-if="MsShortcuts.results" ms-scroll>\n <div class="no-results" ng-if="MsShortcuts.results.length === 0">No Results!</div>\n\n <div class="result" ng-repeat="result in MsShortcuts.results"\n ng-click="MsShortcuts.handleResultClick(result)"\n ng-mouseenter="MsShortcuts.handleMouseenter($index)"\n ng-mousedown="MsShortcuts.absorbEvent($event)"\n ng-class="{\'selected\': $index == MsShortcuts.selectedResultIndex}"\n md-prevent-menu-close="md-prevent-menu-close"\n md-ink-ripple>\n <div layout="row" layout-align="start space-between">\n <div layout="row" layout-align="start center" flex>\n <div class="icon icon-container" layout="row" layout-align="center center">\n <i ng-if="result.icon" class="{{result.icon}}"></i>\n <div ng-if="!result.icon" class="square md-accent-bg"></div>\n </div>\n <div>\n <div class="title">{{result.title}}</div>\n </div>\n </div>\n <md-icon md-font-icon="icon-pin" class="icon s18"\n ng-class="{\'fade-text\': !result.hasShortcut}"></md-icon>\n </div>\n </div>\n </div>\n </div>\n </md-menu-content>\n </md-menu> --\x3e\n </div>\n\n <md-button class="md-icon-button toggle-mobile-menu hide-gt-xs" aria-label="Add shortcut" ng-click="MsShortcuts.toggleMobileBar()">\n <md-icon md-menu-origin md-font-icon="icon-star" class="icon amber-600-fg s24" ng-hide="MsShortcuts.mobileBarActive"></md-icon>\n <md-icon md-menu-origin md-font-icon="icon-close" class="icon s24" ng-hide="!MsShortcuts.mobileBarActive"></md-icon>\n </md-button>\n</div>'),e.put("app/core/directives/ms-stepper/templates/horizontal/horizontal.html",'<div class="ms-stepper-horizontal">\n <div class="ms-stepper-navigation-wrapper">\n <div class="ms-stepper-navigation" layout="row" layout-align="center center">\n <md-button class="ms-stepper-navigation-item" ng-class="{\'current\': MsStepper.isStepCurrent(step.stepNumber), \'valid\': MsStepper.isStepValid(step.stepNumber), \'disabled\': MsStepper.isStepDisabled(step.stepNumber), \'optional\': MsStepper.isStepOptional(step.stepNumber)}" ng-click="MsStepper.gotoStep(step.stepNumber)" ng-disabled="MsStepper.isStepDisabled(step.stepNumber)" ng-repeat="step in MsStepper.steps | filter:MsStepper.filterHiddenStep" layout="row" layout-align="start center">\n\n <div class="step md-accent-bg" layout="row" layout-align="center center">\n <span ng-if="!MsStepper.isStepValid(step.stepNumber) || MsStepper.isStepOptional(step.stepNumber)">\n {{$index + 1}}\n </span>\n <span ng-if="MsStepper.isStepValid(step.stepNumber) && !MsStepper.isStepOptional(step.stepNumber)">\n <i class="icon icon-check s18"></i>\n </span>\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="title" translate="{{step.stepTitleTranslate}}">{{step.stepTitle}}</div>\n <div class="subtitle" ng-if="MsStepper.isStepOptional(step.stepNumber)">Optional</div>\n </div>\n </md-button>\n </div>\n </div>\n\n <div class="ms-stepper-steps" ng-transclude></div>\n\n <div class="ms-stepper-controls" layout="row" layout-align="center center">\n <md-button class="md-accent md-raised" ng-disabled="MsStepper.isFirstStep()" ng-click="MsStepper.gotoPreviousStep()">\n Back\n </md-button>\n\n <div class="ms-stepper-dots">\n <span ng-repeat="step in MsStepper.steps" ng-hide="MsStepper.isStepHidden(step.stepNumber)" ng-class="{\'selected md-accent-bg\':MsStepper.currentStepNumber === $index + 1}">\n </span>\n </div>\n\n <md-button class="md-accent md-raised" ng-if="!MsStepper.isLastStep()" ng-disabled="!MsStepper.isStepValid(MsStepper.currentStepNumber)" ng-click="MsStepper.gotoNextStep()">\n Next\n </md-button>\n\n <md-button type="submit" class="md-accent md-raised" ng-click="MsStepper.resetForm()" ng-if="MsStepper.isLastStep()" ng-disabled="!MsStepper.isFormValid()">\n Submit\n </md-button>\n </div>\n</div>'),e.put("app/core/directives/ms-stepper/templates/vertical/step/vertical-step.html",'<md-button class="ms-stepper-navigation-item" ng-class="{\'current\': MsStepper.isStepCurrent(stepInfo.stepNumber), \'valid\': MsStepper.isStepValid(stepInfo.stepNumber), \'disabled\': MsStepper.isStepDisabled(stepInfo.stepNumber), \'optional\': MsStepper.isStepOptional(stepInfo.stepNumber)}" ng-click="MsStepper.gotoStep(stepInfo.stepNumber)" ng-disabled="MsStepper.isStepDisabled(stepInfo.stepNumber)" ng-hide="MsStepper.isStepHidden(stepInfo.stepNumber)" aria-label="Stepper navigation button" layout="row" layout-align="start center">\n\n <div class="step" layout="row" layout-align="center center">\n <span ng-if="!MsStepper.isStepValid(stepInfo.stepNumber) || MsStepper.isStepOptional(stepInfo.stepNumber)">\n <i class="icon icon-checkbox-blank-circle-outline s18 md-accent-fg"></i>\n </span>\n <span ng-if="MsStepper.isStepValid(stepInfo.stepNumber) && !MsStepper.isStepOptional(stepInfo.stepNumber)">\n <i class="icon icon-check-circle s18 md-accent-fg"></i>\n </span>\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="title" ng-if="stepInfo.stepTitleTranslate">{{stepInfo.stepTitleTranslate | translate }}</div>\n <div class="title" ng-if="!stepInfo.stepTitleTranslate">{{stepInfo.stepTitle}}</div>\n <div class="subtitle" ng-if="MsStepper.isStepOptional(stepInfo.stepNumber)">Optional</div>\n </div>\n</md-button>\n\n<div class="ms-stepper-step-content" ng-transclude></div>\n\n<div class="ms-stepper-controls" layout="row" layout-align="start center" ng-show="MsStepper.isStepCurrent(stepInfo.stepNumber)">\n <md-button class="md-accent md-raised" ng-disabled="MsStepper.isFirstStep()" ng-click="MsStepper.gotoPreviousStep()">\n Back\n </md-button>\n\n <md-button class="md-accent md-raised" ng-if="!MsStepper.isLastStep()" ng-disabled="!MsStepper.isStepValid(MsStepper.currentStepNumber)" ng-click="MsStepper.gotoNextStep()">\n Next\n </md-button>\n\n <md-button type="submit" class="md-accent md-raised" ng-click="MsStepper.resetForm()" ng-if="MsStepper.isLastStep()" ng-disabled="!MsStepper.isFormValid()">\n Submit\n </md-button>\n</div>'),e.put("app/core/directives/ms-stepper/templates/vertical/vertical.html",'<div class="ms-stepper-vertical">\n <div class="ms-stepper-vertical-line"></div>\n <div class="ms-stepper-steps" ng-transclude></div>\n</div>'),e.put("app/core/directives/ms-tab-scroll/ms-tab-scroll.html",'<div layout="row">\n <md-button class="md-icon-button md-mini width-25 no-margin scroll-arrow" ng-click="vm.onTabScroll(\'left\')" ng-if="vm.canScroll(\'left\') == true">\n <md-icon md-font-icon="icon-chevron-left" class="icon s26"></md-icon>\n </md-button>\n <div id="bar-container" layout="row" class="bar-container">\n <div ng-transclude id="tab-container" layout="row" layout-align="start center" class="scroll-container">\n </div>\n </div>\n <md-button class="md-icon-button md-mini width-25 no-margin scroll-arrow" ng-click="vm.onTabScroll(\'right\')" ng-if="vm.canScroll(\'right\') == true">\n <md-icon md-font-icon="icon-chevron-right" class="icon s26"></md-icon>\n </md-button>\n</div>'),e.put("app/core/directives/ms-timezone/ms-timezone.html",'<md-select ng-model="ngModel" class="no-margin">\n <md-option ng-value="null">NONE</md-option>\n <md-option ng-repeat="t in timezone | orderBy:\'utcOffset\'" value="{{t.name}}">{{t.name}} ({{t.offsetStr}})</md-option>\n</md-select>'),e.put("app/core/directives/ms-widget-engine/ms-widget-engine-counter/ms-widget-engine.counter.html",'<div class="pt-8 pb-32" layout="column" layout-align="center center" layout-fill ng-controller="MsWidgetEngineCounterController as vm">\n <div ng-class="\'font-size-\' + (vm.fontSize * 3)" ng-style="{\'color\': widget.foreground}">\n {{ vm.getCount(widget) }}\n </div>\n <div ng-class="\'font-size-\' + vm.fontSize" ng-style="{\'color\': widget.foreground}">{{ \'TOOLS.\' + widget.attrs[0].value | uppercase | translate }}<span ng-if="vm.filtered">*</span></div>\n</div>'),e.put("app/core/directives/ms-widget-engine/ms-widget-engine-multibar-chart/ms-widget-engine.multibar-chart.html",'<div ng-controller="MsWidgetEngineMultibarChartController as vm" ng-init="vm.getMultiBarChart(widget)" layout="column" layout-fill>\n\n <span ng-show="false">{{ vm.getMultiBarChart(widget)}}</span>\n\n <canvas style="overflow:scroll" id="bar" class="chart-horizontal-bar" chart-data="vm.multiBarChart.data" chart-options="vm.multiBarChart.options" chart-series="vm.multiBarChart.series" chart-labels="vm.multiBarChart.labels">\n </canvas>\n</div>'),e.put("app/core/directives/ms-widget-engine/ms-widget-engine-pie-chart/ms-widget-engine.pie-chart.html",'<div ng-controller="MsWidgetEnginePieChartController as vm" ng-init="vm.getPieChart(widget)" layout="column" layout-fill>\n\n <span ng-show="false">{{ vm.getPieChart(widget)}}</span>\n\n <canvas style="overflow:scroll" id="pie" class="chart-pie" chart-data="vm.pieChart.data" chart-labels="vm.pieChart.labels" chart-options="vm.pieChart.options">\n </canvas>\n</div>'),e.put("app/core/directives/ms-widget-engine/ms-widget-engine-web-report/ms-widget-engine.web-report.html",'<div ng-controller="MsWidgetEngineWebReportController as vm" ng-init="vm.onInit(widget)">\n <dl ng-if="vm.error">\n <dt class="text-bold">Query Error</dt>\n <dd>{{vm.error.sql}}</dd>\n <dt>Message</dt>\n <dd>{{vm.error.msg}}</dd>\n </dl>\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm.title}}</span>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm.onInit(widget)" aria-label="refresh">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n <span ng-if="vm.refresh && vm.countDown" class="md-subhead blue-fg">{{vm.countDown}}</span>\n </div>\n </md-toolbar>\n <md-table-container ng-if="!vm.error">\n <table md-table md-progress="vm.promise">\n <thead md-head>\n <tr md-row>\n <th md-column ng-repeat="column in vm.columns">{{column.alias || column.field}}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-repeat="row in vm.results.rows">\n <td md-cell ng-repeat="(key, value) in row">{{ vm.valueReplacer(key, value) }}</td>\n </tr>\n <tr md-row ng-if="!vm.results.rows.length">\n <td md-cell colspan="{{vm.columns.length}}">\n <div layout="row" layout-align="center center">\n <span>No Data</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.results.count}}" md-on-paginate="vm.getResults" md-page-select></md-table-pagination>\n</div>'),e.put("app/core/directives/ms-widget-engine/ms-widget-engine.html",'<div gridster="vm.config">\n <ul>\n <li gridster-item="widget" ng-repeat="widget in vm.config.widgets">\n <md-card layout-fill>\n <md-toolbar class="height-40" ng-style="{\'background-color\': widget.background, \'color\': widget.foreground }">\n <div class="md-toolbar-tools height-40 no-margin" layout="row" layout-align="start center">\n <a ng-href="{{widget.link ? widget.link : \'javascript:void(0)\'}}" ng-style="{\'color\': widget.foreground, \'font-size\': (widget.titleFontSize || 12) }" class="text-truncate" flex>\n {{ widget.title || \'No Title\' }}\n </a>\n <md-button ng-if="!vm.config.preview" class="draggable md-icon-button width-30 no-margin no-padding" aria-label="Move">\n <md-tooltip><span translate="TOOLS.MOVE_WIDGET">Move</span></md-tooltip>\n <md-icon md-font-icon="icon-cursor-move" class="s20" ng-style="{\'color\': widget.foreground}"></md-icon>\n </md-button>\n <md-menu ng-if="!vm.config.preview">\n <md-button ng-click="$mdOpenMenu($event)" class="md-icon-button width-30 no-margin no-padding" aria-label="More">\n <md-icon md-font-icon="icon-dots-vertical" class="s20" ng-style="{\'color\': widget.foreground}"></md-icon>\n </md-button>\n <md-menu-content>\n <md-menu-item>\n <md-button ng-click="vm.onEdit({widget: widget})" translate="TOOLS.EDIT_WIDGET">Edit\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.onDelete({widget: widget})" translate="TOOLS.DELETE_WIDGET">\n Delete</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n\n </div>\n </md-toolbar>\n <md-card-content class="resizable" layout="column" layout-align="center center" flex ng-style="{\'background-color\': widget.background, \'color\': widget.foreground}">\n <div ng-switch="widget.type" layout-fill>\n <iframe ng-switch-when="iframe|custom" ng-switch-when-separator="|" ng-src="{{vm.getTrustedURL(widget.attrs[0].value)}}" frameborder=0 style="border:0px; width:100%; height:100%;"></iframe>\n <ds-widget-clock ng-class="\'font-size-\' + (widget.attrs[2].value || 12)" ng-switch-when="clock" digital-format="widget.attrs[0].value" gmt-offset="widget.attrs[1].value" data-show-digital show-gmt-info></ds-widget-clock>\n <div ng-switch-default layout-fill>\n <div ng-include="widget.templateUrl" layout-fill></div>\n </div>\n </div>\n </md-card-content>\n </md-card>\n </li>\n </ul>\n</div>'),e.put("app/core/layouts/content-only.html",'<div id="layout-content-only" class="template-layout" layout="column" flex>\n <md-content id="content" class="animate-slide-up md-hue-2" ui-view="content" flex></md-content>\n</div>'),e.put("app/core/layouts/content-with-toolbar.html",'<div id="layout-content-with-toolbar" class="template-layout" layout="column" flex>\n <md-toolbar id="toolbar" class="md-menu-toolbar md-whiteframe-1dp" ui-view="toolbar"></md-toolbar>\n <md-content id="content" class="animate-slide-up md-hue-2" ui-view="content" flex></md-content>\n\n <md-sidenav id="quick-panel" class="md-sidenav-right md-whiteframe-4dp" md-component-id="quick-panel" ms-scroll ui-view="quickPanel"></md-sidenav>\n</div>'),e.put("app/core/layouts/horizontal-navigation.html",'<div id="layout-horizontal-navigation" class="template-layout" layout="column" flex>\n\n <div id="toolbar-navigation-container" class="md-whiteframe-1dp" layout="column" layout-align="space-between start">\n <md-toolbar id="toolbar" class="md-menu-toolbar md-whiteframe-1dp" ui-view="toolbar"></md-toolbar>\n <div id="horizontal-navigation" ui-view="navigation" layout="row" layout-align="start end" flex></div>\n </div>\n\n <div id="content-container" flex layout="column">\n <md-content id="content" class="animate-slide-up md-hue-2" ms-scroll ui-view="content" flex></md-content>\n </div>\n\n <md-sidenav id="quick-panel" class="md-sidenav-right md-whiteframe-4dp" md-component-id="quick-panel" ms-scroll ui-view="quickPanel"></md-sidenav>\n\n</div>'),e.put("app/core/layouts/vertical-navigation-fullwidth-toolbar-2.html",'<div id="layout-vertical-navigation-fullwidth-toolbar-2" class="template-layout" layout="column" flex>\n\n <md-toolbar id="toolbar" class="md-menu-toolbar md-whiteframe-1dp md-accent" ui-view="toolbar"></md-toolbar>\n\n <div id="main-container" layout="row" flex>\n <md-sidenav id="vertical-navigation" class="md-primary-bg" md-is-locked-open="$mdMedia(\'gt-sm\')" md-component-id="navigation" ms-scroll ui-view="navigation"></md-sidenav>\n\n <div id="content-container" flex layout="column">\n <md-content id="content" class="animate-slide-up md-hue-2" ms-scroll ui-view="content" flex></md-content>\n </div>\n\n <md-sidenav id="quick-panel" class="md-sidenav-right md-whiteframe-4dp" md-component-id="quick-panel" ms-scroll ui-view="quickPanel"></md-sidenav>\n </div>\n\n\n</div>'),e.put("app/core/layouts/vertical-navigation-fullwidth-toolbar.html",'<div id="layout-vertical-navigation-fullwidth-toolbar" class="template-layout" layout="column" flex>\n\n <md-toolbar id="toolbar" class="md-menu-toolbar md-whiteframe-1dp md-accent" ui-view="toolbar"></md-toolbar>\n\n <div id="main-container" layout="row" flex>\n <md-sidenav id="vertical-navigation" class="md-primary-bg" md-is-locked-open="$mdMedia(\'gt-sm\')" md-component-id="navigation" ms-scroll ui-view="navigation"></md-sidenav>\n\n <div id="content-container" flex layout="column">\n <md-content id="content" class="animate-slide-up md-hue-2" ms-scroll ui-view="content" flex></md-content>\n </div>\n\n <md-sidenav id="quick-panel" class="md-sidenav-right md-whiteframe-4dp" md-component-id="quick-panel" ms-scroll ui-view="quickPanel"></md-sidenav>\n </div>\n\n\n</div>'),e.put("app/core/layouts/vertical-navigation.html",'<div id="header" ui-view="header"></div>\n\n<div id="layout-vertical-navigation" class="template-layout" layout="row" flex>\n\n <md-sidenav id="vertical-navigation" class="md-primary-bg" md-is-locked-open="$mdMedia(\'gt-sm\')" md-component-id="navigation" ms-scroll ui-view="navigation" ng-if="!vm.isAgent()"></md-sidenav>\n\n <div id="content-container" flex layout="column">\n <md-toolbar id="toolbar" class="md-menu-toolbar md-whiteframe-1dp" ui-view="toolbar"></md-toolbar>\n\n <md-content id="content" class="animate-slide-up md-hue-2" ms-scroll ui-view="content" flex></md-content>\n </div>\n\n <md-sidenav id="quick-panel" class="md-sidenav-right md-whiteframe-4dp" md-component-id="quick-panel" ms-scroll ui-view="quickPanel"></md-sidenav>\n\n</div>\n\n<div id="footer" ui-view="footer"></div>'),e.put("app/core/theme-options/theme-options.html",'<div class="ms-theme-options-button md-primary-bg" ng-click="toggleOptionsSidenav()">\n <md-icon md-font-icon="icon-cog" class="white-text"></md-icon>\n</div>\n\n<md-sidenav md-component-id="motion-theme-options" class="md-sidenav-right">\n\n <div class="ms-theme-options-list" layout="column">\n <div class="theme-option layout-options">\n <div class="option-title">Layout Style:</div>\n <md-radio-group layout="row" layout-align="start start" layout-wrap ng-model="vm.layoutStyle" ng-change="vm.updateLayoutStyle()">\n <md-radio-button ng-repeat="layoutStyle in vm.layoutStyles" ng-value="layoutStyle.value">\n <div layout="column" layout-align="center center">\n <img ng-src="{{layoutStyle.figure}}">\n <span class="text-center font-size-12 mt-8">{{layoutStyle.label}}</span>\n </div>\n </md-radio-button>\n </md-radio-group>\n </div>\n\n <md-divider></md-divider>\n\n <div class="theme-option">\n <div class="option-title">Layout Mode:</div>\n <md-radio-group layout="row" layout-align="start center" ng-model="vm.layoutMode" ng-change="vm.updateLayoutMode()">\n <md-radio-button ng-repeat="layoutMode in vm.layoutModes" ng-value="layoutMode.value">\n {{layoutMode.label}}\n </md-radio-button>\n </md-radio-group>\n </div>\n\n <md-divider></md-divider>\n\n <div class="theme-option color-palettes">\n <div class="option-title">Color Palette:</div>\n <div layout="row" layout-align="start start" layout-wrap>\n <md-button ng-repeat="(themeName, theme) in vm.themes.list" class="md-raised theme-button" layout="row" layout-align="center center" aria-label="{{themeName}}" ng-click="vm.setActiveTheme(themeName)" ng-style="{\'background-color\': theme.primary.color,\'border-color\': theme.accent.color,\'color\': theme.primary.contrast1}" ng-class="{active: vm.getActiveTheme().name === themeName}">\n <md-icon ng-style="{\'color\': theme.primary.contrast1}" md-font-icon="icon-palette" class="icon s32"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n</md-sidenav>'),e.put("app/errors/404/error-404.html",'<div id="error-404" layout="column" layout-align="center center">\n <div class="content" layout="column" layout-align="center center">\n <div class="error-code" translate="ERROR404.CODE">404</div>\n\n <div class="message" translate="ERROR404.MESSAGE">Sorry but we couldn’t find the page you are looking for</div>\n <ms-search-bar on-search="vm.search(query)" on-result-click="vm.searchResultClick(item)" debounce="300">Search for anything</ms-search-bar>\n\n \x3c!-- <div class="search md-whiteframe-1dp" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-magnify" class="icon s24"></md-icon>\n <input ng-model="vm.search" type="text" placeholder="Search for anything" translate translate-attr-placeholder="ERROR404.SEARCH" flex>\n </div> --\x3e\n\n <a class="md-button md-raised md-primary back-link" href="/" translate="ERROR404.GO_BACK">Go back to dashboard</a>\n </div>\n</div>'),e.put("app/errors/500/error-500.html",'<div id="error-500" layout="column" layout-align="center center">\n <div ng-if="!vm.send" class="content" layout="column" layout-align="center center">\n <div class="error-code" translate="ERROR500.CODE">500</div>\n <div class="message" translate="ERROR500.MESSAGE">Well, you broke the internet!</div>\n <div class="sub-message" translate="ERROR500.SUBMESSAGE">Just kidding, looks like we have an internal issue, please try again in couple minutes\n </div>\n <a class="md-button md-raised md-primary back-link" href="/" translate="ERROR500.GO_BACK">Go back to dashboard</a>\n <md-button class="md-raised md-warn" ng-click="vm.sendReport()" translate="ERROR500.REPORT">Report this problem</md-button>\n </div>\n <pre ng-if="!vm.send">\n {{vm.error}}\n </pre>\n <div ng-if="vm.send" class="content" layout="column" layout-align="center center">\n <div class="error-code">#{{vm.code}}</div>\n <div class="message" translate="ERROR500.JIRA_MESSAGE">Your request has been received and will be processed shortly.</div>\n <div class="sub-message" translate="ERROR500.JIRA_SUBMESSAGE">Sorry for the inconvenience. If you have any questions or concerns, please do not hesitate to contact us.</div>\n <a class="md-button md-raised md-primary back-link" href="/" translate="ERROR500.GO_BACK">Go back to dashboard</a>\n </div>\n</div>'),e.put("app/footer/layouts/vertical-navigation/footer.html",'<div layout="row" layout-align="start center">\n <ms-info-bar ng-if="!vm.cookieAlertHide" on-close="vm.cookieAlertOnClose()" class="grey-100-bg">\n <div layout="row" layout-align="start center">\n <span translate="FOOTER.COOKIE_LAW" flex class="text-center grey-600-fg"></span>\n </div>\n </ms-info-bar>\n</div>'),e.put("app/forgot/forgot.html",'<div id="forgot-password" class="flex-scrollable" layout="column" ms-scroll ng-init="vm.onInit()">\n <div id="forgot-password-form-wrapper" layout="column" layout-align="center center">\n <div id="forgot-password-form" class="md-whiteframe-8dp">\n\n <img src="/api/settings/1/logo_login" alt="logo_login" class="logo_login" />\n\n <div class="title" translate="FORGOTPASSWORD.TITLE">Recover your password</div>\n\n <form name="forgotPasswordForm" novalidate>\n <md-input-container class="md-block" md-no-float>\n <input type="email" name="email" ng-model="vm.form.email" placeholder="Email address" translate translate-attr-placeholder="FORGOTPASSWORD.EMAIL_ADRESS" ng-pattern="/^.+@.+\\..+$/" required>\n <div ng-messages="forgotPasswordForm.email.$error" role="alert" multiple>\n <div ng-message="required">\n <span translate="FORGOTPASSWORD.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="FORGOTPASSWORD.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n\n <md-button type="button" ng-click="vm.forgotPassword()" class="md-raised md-accent submit-button" aria-label="RESET MY PASSWORD" ng-disabled="forgotPasswordForm.$invalid || forgotPasswordForm.$pristine" translate="FORGOTPASSWORD.SEND_RESET_LINK" translate-attr-aria-label="FORGOTPASSWORD.SEND_RESET_LINK">\n SEND RESET LINK\n </md-button>\n </form>\n\n <div class="login" layout="row" layout-align="center center">\n <a class="link" ui-sref="app.login" translate="FORGOTPASSWORD.GO_BACK">Go back to login</a>\n </div>\n </div>\n </div>\n</div>'),e.put("app/header/layouts/vertical-navigation/header.html",'\x3c!-- <div layout="row" layout-align="start center">\n <ms-info-bar ng-if="vm.currentUser.role == \'admin\' && !vm.newsAlertHide" on-close="vm.newsAlertOnClose()" class="green-600-bg white-fg">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-message-text-outline" class="icon margin-right-10 s20"></md-icon>\n <div flex hide-xs translate="HEADER.NEWS"></div>\n </div>\n </ms-info-bar>\n</div> --\x3e'),e.put("app/login/login.html",'<div id="login" class="flex-scrollable" layout="column" ms-scroll>\n <div id="login-form-wrapper" layout="column" layout-align="center center">\n <div id="login-form" class="md-whiteframe-8dp">\n\n <img src="/api/settings/1/logo_login" alt="logo_login" class="logo_login" />\n \x3c!-- <img src="assets/images/logos/login.png" alt="motion_logo_login" /> --\x3e\n\n <div class="md-subhead padding-top-45" translate="LOGIN.TITLE">Log in to your account</div>\n\n <form name="loginForm" novalidate ng-if="!vm.progressLogin">\n <md-input-container class="md-block" md-no-float>\n <input type="input" name="name" ng-model="vm.form.name" autofocus aria-label="username" translate translate-attr-placeholder="LOGIN.USERNAME" required>\n <div ng-messages="loginForm.name.$error" role="alert" multiple>\n <div ng-message="required">\n <span translate="LOGIN.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" md-no-float>\n <input type="password" name="password" ng-model="vm.form.password" aria-label="password" translate translate-attr-placeholder="LOGIN.PASSWORD" required>\n <div ng-messages="loginForm.password.$error" role="alert" multiple>\n <div ng-message="required">\n <span translate="LOGIN.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="remember-forgot-password" layout="row" layout-xs="column" layout-align="end center">\n \x3c!-- <md-checkbox class="remember-me" ng-model="data.cb1" aria-label="Remember Me">\n <span translate="LOGIN.REMEMBER_ME">Remember Me</span>\n </md-checkbox> --\x3e\n <a ui-sref="app.forgot" class="forgot-password md-accent-color" style="cursor:pointer;" translate="LOGIN.FORGOT_PASSWORD">Forgot Password?</a>\n </div>\n\n <b layout="row" layout-align="center center" class="md-padding" ng-if="vm.message">\n <font color="red">{{vm.message}}</font>\n </b>\n <md-button type="submit" ng-click="vm.login()" class="md-raised md-accent submit-button" aria-label="LOGIN" translate="LOGIN.LOG_IN" translate-attr-aria-label="LOGIN.LOG_IN">\n LOG IN\n </md-button>\n </form>\n\n <md-progress-circular ng-if="vm.progressLogin" md-diameter="96"></md-progress-circular>\n\n <div ng-if="vm.googleSsoEnabled" class="separator">\n <span class="text" translate="LOGIN.OR">OR</span>\n </div>\n\n <md-button ng-if="vm.googleSsoEnabled" ng-click="vm.loginOauth(\'google\')" class="md-raised google">\n <div layout="row" layout-align="center center">\n <span>\n <md-icon md-font-icon="fab fa-google" class="s16"></md-icon>\n <span translate="LOGIN.WITH_GOOGLE">Log in with Google</span>\n </span>\n </div>\n </md-button>\n </div>\n </div>\n</div>'),e.put("app/main/apps/analytics/views/extractedReports/create/dialog.html",'<md-dialog class="extractedReport-dialog" aria-label="New ExtractedReport">\n <form name="extractedReportForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.REPORTNAME">ReportName</label>\n <input type="" name="name" ng-model="vm.extractedReport.name" ng-required="true" autofocus>\n\n <div ng-messages="extractedReportForm[\'name\'].$error" ng-show="extractedReportForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.REPORTNAME_REQUIRED">ReportName field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.NAME">Name</label>\n <input type="" name="basename" ng-model="vm.extractedReport.basename" ng-required="true">\n\n <div ng-messages="extractedReportForm[\'basename\'].$error" ng-show="extractedReportForm[\'basename\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newExtractedReport" ng-click="vm.saveExtractedReport()" class="send-button md-accent md-raised" ng-disabled="extractedReportForm.$invalid || extractedReportForm.$pristine" aria-label="SAVE" translate="ANALYTICS.SAVE" translate-attr-aria-label="ANALYTICS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newExtractedReport" ng-click="vm.addNewExtractedReport()" class="send-button md-accent md-raised" ng-disabled="extractedReportForm.$invalid" aria-label="ADD" translate="ANALYTICS.ADD_EXTRACTEDREPORT" translate-attr-aria-label="ANALYTICS.ADD_EXTRACTEDREPORT">\n ADD EXTRACTEDREPORT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newExtractedReport" ng-click="vm.deleteExtractedReport($event)" aria-label="DELETE" translate translate-attr-aria-label="ANALYTICS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="ANALYTICS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/analytics/views/extractedReports/extractedReports.html",'<div id="extractedReports" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-chart-line" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="ANALYTICS.EXTRACTEDREPORTS">ExtractedReports</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="ANALYTICS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedExtractedReports.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedExtractedReports =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="ANALYTICS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-extractedReports-count">\n <span>{{vm.selectedExtractedReports.length}}</span>\n <span translate="ANALYTICS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="ANALYTICS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllExtractedReports()" translate="ANALYTICS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectExtractedReports()" translate="ANALYTICS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedExtractedReports" csv-label="true" filename="extractedReports.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedExtractedReports($event)" aria-label="delete selected" translate translate-attr-label="ANALYTICS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- EXTRACTEDREPORT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedExtractedReports" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getExtractedReports">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'ANALYTICS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'ANALYTICS.REPORTNAME\' | translate }}</th>\n <th md-column md-order-by="basename">{{ \'ANALYTICS.NAME\' | translate }}</th>\n <th md-column md-order-by="type">{{ \'ANALYTICS.TYPE\' | translate }}</th>\n <th md-column md-order-by="startDate">{{ \'ANALYTICS.DATE_RANGE_FROM\' | translate }}</th>\n <th md-column md-order-by="endDate">{{ \'ANALYTICS.DATE_RANGE_TO\' | translate }}</th>\n <th md-column md-order-by="createdAt">{{ \'ANALYTICS.GENERATED_AT\' | translate }}</th>\n <th md-column md-order-by="status">{{ \'ANALYTICS.STATUS\' | translate }}</th>\n <th md-column md-order-by="output">{{ \'ANALYTICS.OUTPUT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.extractedReports.rows.length">\n <td md-cell colspan="10">\n <div layout="row" layout-align="center center">\n <span translate="ANALYTICS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="extractedReport" md-select-id="id" ng-repeat="extractedReport in vm.extractedReports.rows">\n <td md-cell ng-if="extractedReport.userpic"><img class="avatar" alt="{{extractedReport.name}}" ng-src="api/users/{{extractedReport.id}}/avatar" /></td>\n <td md-cell ng-if="!extractedReport.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{extractedReport.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditExtractedReport($event, extractedReport)" md-cell class="id ">{{extractedReport.id}}</td>\n <td ng-click="vm.createOrEditExtractedReport($event, extractedReport)" md-cell class="name ">{{extractedReport.name}}</td>\n <td ng-click="vm.createOrEditExtractedReport($event, extractedReport)" md-cell class="basename ">{{extractedReport.basename}}</td>\n <td ng-click="vm.createOrEditExtractedReport($event, extractedReport)" md-cell class="type ">{{extractedReport.type}}</td>\n <td ng-click="vm.createOrEditExtractedReport($event, extractedReport)" md-cell class="startDate ">{{extractedReport.startDate | date:\'medium\' }}</td>\n <td ng-click="vm.createOrEditExtractedReport($event, extractedReport)" md-cell class="endDate ">{{extractedReport.endDate | date:\'medium\' }}</td>\n <td ng-click="vm.createOrEditExtractedReport($event, extractedReport)" md-cell class="createdAt ">{{extractedReport.createdAt | date:\'medium\' }}</td>\n <td ng-click="vm.createOrEditExtractedReport($event, extractedReport)" md-cell class="status ">{{extractedReport.status}}</td>\n <td ng-click="vm.createOrEditExtractedReport($event, extractedReport)" md-cell class="output ">{{extractedReport.output}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="ANALYTICS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(extractedReport, $event )" translate="ANALYTICS.EDIT_EXTRACTEDREPORT">\n Edit ExtractedReport\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="extractedReport.status == \'Completed\'">\n\n <md-button ng-click="vm.downloadfile2(extractedReport, $event , \'analytics/extracted_reports\' )" translate="ANALYTICS.DOWNLOAD_EXTRACTEDREPORT">\n Download ExtractedReport\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(extractedReport, $event )" translate="ANALYTICS.DELETE_EXTRACTEDREPORT">\n Delete ExtractedReport\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'ANALYTICS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'ANALYTICS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'ANALYTICS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.extractedReports.count}}" md-on-paginate="vm.getExtractedReports" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / EXTRACTEDREPORT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- NO ADD BUTTON BUTTON --\x3e\n</div>'),e.put("app/main/apps/analytics/views/metrics/create/dialog.html",'<md-dialog class="metric-dialog" aria-label="New Metric">\n <form name="metricForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.metric.name" ng-required="true" autofocus>\n\n <div ng-messages="metricForm[\'name\'].$error" ng-show="metricForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.TABLE">Table</label>\n <md-select name="table" ng-model="vm.metric.table" required>\n <md-option ng-value="\'report_agent\'">Agent Report</md-option>\n <md-option ng-value="\'report_call\'">Call Report</md-option>\n <md-option ng-value="\'cdr\'">CDR</md-option>\n <md-option ng-value="\'chat_websites\'">Chat Website</md-option>\n <md-option ng-value="\'chat_interactions\'">Chat Interaction</md-option>\n <md-option ng-value="\'chat_messages\'">Chat Messages</md-option>\n <md-option ng-value="\'chat_offline_messages\'">Chat Offline Messages</md-option>\n <md-option ng-value="\'chat_queues\'">Chat Queues</md-option>\n <md-option ng-value="\'report_chat_queue\'">Chat Report Queue</md-option>\n <md-option ng-value="\'report_chat_transfer\'">Chat Report Transfer</md-option>\n <md-option ng-value="\'cm_companies\'">Companies</md-option>\n <md-option ng-value="\'report_call_transfer\'">Call transfer report</md-option>\n <md-option ng-value="\'cm_contacts\'">Contacts</md-option>\n <md-option ng-value="\'report_square\'">CSquare Report</md-option>\n <md-option ng-value="\'report_square_details\'">CSquare Details Report</md-option>\n <md-option ng-value="\'report_dial\'">Dial Report</md-option>\n <md-option ng-value="\'cm_hopper\'">Dialer Hopper Processing</md-option>\n <md-option ng-value="\'cm_hopper_history\'">Dialer Hopper Logs</md-option>\n <md-option ng-value="\'cm_hopper_final\'">Dialer Hopper Final</md-option>\n <md-option ng-value="\'mail_accounts\'">Email Account</md-option>\n <md-option ng-value="\'mail_interactions\'">Email Interaction</md-option>\n <md-option ng-value="\'mail_messages\'">Email Messages</md-option>\n <md-option ng-value="\'mail_queues\'">Email Queues</md-option>\n <md-option ng-value="\'report_mail_queue\'">Email Report Queue</md-option>\n <md-option ng-value="\'report_mail_transfer\'">Email Report Transfer</md-option>\n <md-option ng-value="\'fax_accounts\'">Fax Account</md-option>\n <md-option ng-value="\'fax_interactions\'">Fax Interaction</md-option>\n <md-option ng-value="\'fax_messages\'">Fax Messages</md-option>\n <md-option ng-value="\'fax_queues\'">Fax Queues</md-option>\n <md-option ng-value="\'report_fax_queue\'">Fax Report Queue</md-option>\n <md-option ng-value="\'report_fax_transfer\'">Fax Report Transfer</md-option>\n <md-option ng-value="\'report_jscripty_sessions\'">Jscripty Sessions</md-option>\n <md-option ng-value="\'report_jscripty_questions\'">Jscripty Questions</md-option>\n <md-option ng-value="\'report_jscripty_answers\'">Jscripty Answers</md-option>\n <md-option ng-value="\'cm_lists\'">Lists</md-option>\n <md-option ng-value="\'report_member\'">Member Report</md-option>\n <md-option ng-value="\'openchannel_accounts\'">Openchannel Account</md-option>\n <md-option ng-value="\'openchannel_interactions\'">Openchannel Interaction</md-option>\n <md-option ng-value="\'openchannel_messages\'">Openchannel Messages</md-option>\n <md-option ng-value="\'openchannel_queues\'">Openchannel Queues</md-option>\n <md-option ng-value="\'report_openchannel_queue\'">Openchannel Report Queue</md-option>\n <md-option ng-value="\'report_openchannel_transfer\'">Openchannel Report Transfer</md-option>\n <md-option ng-value="\'report_queue\'">Queue Report</md-option>\n <md-option ng-value="\'sms_accounts\'">SMS Account</md-option>\n <md-option ng-value="\'sms_interactions\'">SMS Interaction</md-option>\n <md-option ng-value="\'sms_messages\'">SMS Messages</md-option>\n <md-option ng-value="\'sms_queues\'">SMS Queues</md-option>\n <md-option ng-value="\'report_sms_queue\'">SMS Report Queue</md-option>\n <md-option ng-value="\'report_sms_transfer\'">SMS Report Transfer</md-option>\n <md-option ng-value="\'users\'">Users</md-option>\n <md-option ng-value="\'voice_recordings\'">Voice Recordings</md-option>\n <md-option ng-value="\'whatsapp_accounts\'">Whatsapp Account</md-option>\n <md-option ng-value="\'whatsapp_interactions\'">Whatsapp Interaction</md-option>\n <md-option ng-value="\'whatsapp_messages\'">Whatsapp Messages</md-option>\n <md-option ng-value="\'whatsapp_queues\'">Whatsapp Queues</md-option>\n <md-option ng-value="\'report_whatsapp_queue\'">Whatsapp Report Queue</md-option>\n <md-option ng-value="\'report_whatsapp_transfer\'">Whatsapp Report Transfer</md-option>\n </md-select>\n <div ng-messages="metricForm[\'table\'].$error" ng-show="metricForm[\'table\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.TABLE_REQUIRED">Table field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.METRIC">Metric</label>\n <input type="text" name="metric" ng-model="vm.metric.metric" ng-required="true">\n\n <div ng-messages="metricForm[\'metric\'].$error" ng-show="metricForm[\'metric\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.METRIC_REQUIRED">Metric field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.metric.description">\n\n <div ng-messages="metricForm[\'description\'].$error" ng-show="metricForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newMetric" ng-click="vm.saveMetric()" class="send-button md-accent md-raised" ng-disabled="metricForm.$invalid || metricForm.$pristine" aria-label="SAVE" translate="ANALYTICS.SAVE" translate-attr-aria-label="ANALYTICS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newMetric" ng-click="vm.addNewMetric()" class="send-button md-accent md-raised" ng-disabled="metricForm.$invalid" aria-label="ADD" translate="ANALYTICS.ADD_METRIC" translate-attr-aria-label="ANALYTICS.ADD_METRIC">\n ADD METRIC\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newMetric" ng-click="vm.deleteMetric($event)" aria-label="DELETE" translate translate-attr-aria-label="ANALYTICS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="ANALYTICS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/analytics/views/metrics/metrics.html",'<div id="metrics" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-chart-line" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="ANALYTICS.METRICS">Metrics</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="ANALYTICS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedMetrics.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedMetrics =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="ANALYTICS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-metrics-count">\n <span>{{vm.selectedMetrics.length}}</span>\n <span translate="ANALYTICS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="ANALYTICS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllMetrics()" translate="ANALYTICS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectMetrics()" translate="ANALYTICS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedMetrics" csv-label="true" filename="metrics.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedMetrics($event)" aria-label="delete selected" translate translate-attr-label="ANALYTICS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- METRIC TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedMetrics" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getMetrics">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'ANALYTICS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'ANALYTICS.NAME\' | translate }}</th>\n <th md-column md-order-by="table">{{ \'ANALYTICS.TABLE\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'ANALYTICS.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.metrics.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="ANALYTICS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="metric" md-select-id="id" ng-repeat="metric in vm.metrics.rows">\n <td md-cell ng-if="metric.userpic"><img class="avatar" alt="{{metric.name}}" ng-src="api/users/{{metric.id}}/avatar" /></td>\n <td md-cell ng-if="!metric.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{metric.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditMetric($event, metric)" md-cell class="id ">{{metric.id}}</td>\n <td ng-click="vm.createOrEditMetric($event, metric)" md-cell class="name ">{{metric.name}}</td>\n <td ng-click="vm.createOrEditMetric($event, metric)" md-cell class="table ">{{ vm.arraytable[metric.table].option }}</td>\n <td ng-click="vm.createOrEditMetric($event, metric)" md-cell class="description ">{{metric.description}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="ANALYTICS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(metric, $event )" translate="ANALYTICS.EDIT_METRIC">\n Edit Metric\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(metric, $event )" translate="ANALYTICS.DELETE_METRIC">\n Delete Metric\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'ANALYTICS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'ANALYTICS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'ANALYTICS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.metrics.count}}" md-on-paginate="vm.getMetrics" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / METRIC TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD METRIC BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-metric-button" ng-click="vm.createOrEditMetric($event)" aria-label="add metric" translate translate-attr-aria-label="ANALYTICS.ADD_METRIC">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD METRIC BUTTON --\x3e\n</div>'),e.put("app/main/apps/analytics/views/reports/copy/dialog.html",'<md-dialog class="report-dialog" aria-label="Run Report">\n <form name="reportForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title" translate="ANALYTICS.COPY_REPORT">Copy Report</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.NAME">Name</label>\n <input name="name" ng-model="vm.report.name" required md-autofocus>\n <div ng-messages="reportForm.name.$error" ng-show="reportForm.name.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <div class="md-block">\n <label translate="ANALYTICS.SELECT_NODE">Select Node</label>\n <div js-tree="vm.treeCustomConfig" tree-events-obj="vm.treeCustomEvents" ng-model="vm.treeCustomData" tree="vm.treeCustomInstance"></div>\n </div>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.copyReport()" class="send-button md-accent md-raised" ng-disabled="!vm.currentNode" aria-label="COPY" translate="ANALYTICS.COPY_REPORT" translate-attr-aria-label="ANALYTICS.COPY_REPORT">\n COPY REPORT\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/analytics/views/reports/create/dialog.html",'<md-dialog class="report-dialog" aria-label="New Report">\n <form name="reportForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.NAME">Name</label>\n <input type="" name="name" ng-model="vm.report.name" required md-autofocus>\n <div ng-messages="reportForm.name.$error" ng-show="reportForm.name.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.newReport">\n <label translate="ANALYTICS.TABLE">Table</label>\n <md-select ng-model="vm.report.table" required>\n <md-option ng-repeat="table in vm.tables | orderBy:\'name\'" ng-value="table.name">{{table.name}}</md-option>\n </md-select>\n <div ng-messages="reportForm.table.$error" ng-show="reportForm.table.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.TABLE_REQUIRED">Table field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.report.description">\n <div ng-messages="reportForm.description.$error" ng-show="reportForm.description.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-autocomplete ng-if="vm.newReport" md-selected-item="vm.selectedItem" md-search-text="vm.searchText" md-items="table in vm.tables | filter:vm.searchText" md-item-text="table.name" md-min-length="0" md-selected-item-change="vm.selectedTableChange(table)" placeholder="Select the table to Join">\n <md-item-template>\n <span md-highlight-text="vm.searchText" md-highlight-flags="^i">{{table.name}}</span>\n </md-item-template>\n <md-not-found>\n No states matching "{{vm.searchText}}" were found.\n </md-not-found>\n </md-autocomplete>\n\n <md-card ng-if="vm.newReport" md-theme="default" md-theme-watch ng-repeat="table in vm.joinTables">\n <md-card-title>\n <md-card-title-text layout="row">\n <div layout="row" flex="50">\n <span class="md-subhead">{{table.name}}</span>\n </div>\n <div layout="row" layout-align="end center" flex>\n <md-button class="md-icon-button" ng-click="vm.removeJoin($index)">\n <md-icon md-font-icon="icon-delete" aria-label="alert error"></md-icon>\n </md-button>\n </div>\n </md-card-title-text>\n </md-card-title>\n <md-card-content>\n <md-select ng-model="table.parentKey" placeholder="Select the parent key" ng-init="table.parentFields = []; vm.getFields(table, \'parentFields\', vm.report.table)" required>\n <md-option ng-repeat="field in table.parentFields" ng-value="field">{{field}}</md-option>\n </md-select>\n <md-select ng-model="table.foreignKey" placeholder="Select the foreign key" ng-init="table.foreignFields = []; vm.getFields(table, \'foreignFields\', table.name)" required>\n <md-option ng-repeat="field in table.foreignFields" ng-value="field">{{field}}</md-option>\n </md-select>\n <md-select ng-model="table.type" placeholder="Select join type" required>\n <md-option ng-repeat="join in vm.joinTypes" ng-value="join.key">{{join.value}}</md-option>\n </md-select>\n </md-card-content>\n </md-card>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-if="!vm.newReport" ng-click="vm.saveReport()" class="send-button md-accent md-raised" ng-disabled="reportForm.$invalid || reportForm.$pristine" aria-label="SAVE" translate="ANALYTICS.SAVE" translate-attr-aria-label="ANALYTICS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.newReport" ng-click="vm.addNewReport()" class="send-button md-accent md-raised" ng-disabled="reportForm.$invalid || reportForm.$pristine" aria-label="ADD" translate="ANALYTICS.ADD_REPORT" translate-attr-aria-label="ANALYTICS.ADD_REPORT">\n ADD REPORT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newReport" ng-click="vm.deleteReport($event)" aria-label="DELETE" translate translate-attr-aria-label="ANALYTICS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="ANALYTICS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/analytics/views/reports/edit/condition/group.html",'<md-card class="padding-horizontal-15 padding-top-15">\n <div layout="row" ng-if="vm_rc.crudPermissions.canEdit">\n <md-input-container class="md-block" flex>\n <label translate="ANALYTICS.OPERATOR">Operator</label>\n <md-select ng-model="group.operator" required>\n <md-option value="AND">AND</md-option>\n <md-option value="OR">OR</md-option>\n </md-select>\n <div ng-messages="conditionsForm.operator.$error" ng-show="conditionsForm.operator.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.OPERATOR_REQUIRED">Operator field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-button class="md-raised md-accent" ng-click="vm_rc.addCondition(group.rules)">\n <md-icon md-font-icon="icon-plus"></md-icon> {{\'ANALYTICS.CONDITION\' | translate}}\n </md-button>\n </md-input-container>\n <md-input-container class="md-block">\n <md-button class="md-raised md-accent" ng-click="vm_rc.addGroup(group.rules)">\n <md-icon md-font-icon="icon-plus"></md-icon> {{\'ANALYTICS.GROUP\' | translate}}\n </md-button>\n </md-input-container>\n <div flex></div>\n <md-input-container class="md-block" ng-if="parent">\n <md-button class="md-raised md-warn" ng-click="vm_rc.deleteConfirm(parent, index, $event)">\n <md-icon md-font-icon="icon-delete"></md-icon> {{\'ANALYTICS.GROUP\' | translate}}\n </md-button>\n </md-input-container>\n </div>\n <div layout="column" ng-repeat="rule in group.rules track by $index">\n <div layout="row" ng-if="!rule.group">\n <md-input-container class="md-block" flex>\n <label translate="ANALYTICS.COLUMN">COLUMN</label>\n <md-select name="field" ng-model="rule.field" ng-disabled="!vm_rc.crudPermissions.canEdit" required>\n <md-optgroup label="{{vm_rc.report.table}}">\n <md-option ng-repeat="column in vm_rc.columns" value="{{vm_rc.report.table}}.{{column}}">{{column}}</md-option>\n </md-optgroup>\n <md-optgroup ng-if="vm_rc.report.joins" ng-repeat="join in vm_rc.report.joins" label="{{join.foreignTable}}">\n <md-option ng-repeat="field in join.foreignTableFields" value="{{join.foreignTable}}.{{field}}">{{field}}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="conditionsForm.field.$error" ng-show="conditionsForm.field.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.COLUMN_REQUIRED">Column field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" flex>\n <label translate="ANALYTICS.CONDITION">CONDITION</label>\n <md-select name="condition" ng-model="rule.condition" ng-disabled="!vm_rc.crudPermissions.canEdit" required>\n <md-option ng-repeat="condition in vm_rc.conditions" ng-value="condition">{{condition}}</md-option>\n </md-select>\n <div ng-messages="conditionsForm.condition.$error" ng-show="conditionsForm.condition.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.CONDITION_REQUIRED">Condition field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm_rc.isValueByCondition(rule.condition)" class="md-block" flex>\n <label translate="ANALYTICS.VALUE">VALUE</label>\n <input type="text" name="value" ng-model="rule.value" ng-disabled="!vm_rc.crudPermissions.canEdit" required md-autofocus>\n <div ng-messages="conditionsForm.value.$error" ng-show="conditionsForm.value.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm_rc.crudPermissions.canEdit" flex>\n <md-button class="md-fab md-mini md-warn" aria-label="Delete row" ng-click="vm_rc.deleteConfirm(group.rules, $index, $event)">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </md-input-container>\n </div>\n <div ng-if="rule.group" ng-include="\'app/main/apps/analytics/views/reports/edit/condition/group.html\'" ng-init="parent=group.rules;index=$index;group=rule.group"></div>\n </div>\n</md-card>'),e.put("app/main/apps/analytics/views/reports/edit/field/dialog.html",'<md-dialog class="reportField-dialog" aria-label="New Report Field">\n <form name="reportFieldForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{vm.title}}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <pre></pre>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.reportField.type" ng-change="vm.reportField.field = undefined" required>\n <md-option value="column">Select a column</md-option>\n <md-option value="metric">Select an existing metric</md-option>\n <md-option value="custom">Write a custom metric</md-option>\n </md-select>\n <div ng-messages="reportForm.type.$error" ng-show="reportForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-switch on="vm.reportField.type">\n <md-input-container class="md-block" ng-switch-when="column">\n <label translate="ANALYTICS.COLUMN">Column Name</label>\n <md-select name="column" ng-model="vm.reportField.field" required>\n <md-optgroup label="{{vm.report.table}}">\n <md-option ng-repeat="column in vm.columns" value="{{vm.report.table}}.{{column}}">{{column}}</md-option>\n \x3c!-- <md-option ng-repeat="column in vm.columns" ng-value="">{{column}}</md-option> --\x3e\n </md-optgroup>\n <md-optgroup ng-if="vm.report.joins" ng-repeat="join in vm.report.joins" label="{{join.foreignTable}}">\n <md-option ng-repeat="field in join.foreignTableFields" value="{{join.foreignTable}}.{{field}}">{{field}}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="reportForm.column.$error" ng-show="reportForm.column.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.COLUMN_REQUIRED">Column field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-switch-when="metric">\n <label translate="ANALYTICS.METRIC_NAME">Metric Name</label>\n <md-select name="metric" ng-model="vm.reportField.MetricId" required>\n <md-option ng-repeat="metric in vm.metrics" ng-value="metric.id">{{metric.name}}</md-option>\n </md-select>\n <div ng-messages="reportForm.metric.$error" ng-show="reportForm.metric.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.METRIC_REQUIRED">Metric field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-switch-when="custom">\n <label translate="ANALYTICS.CUSTOM_METRIC">Custom Metric</label>\n <input type="text" name="field" ng-model="vm.reportField.field" required md-autofocus>\n <div ng-messages="reportFieldForm.field.$error" ng-show="reportFieldForm.field.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.CUSTOM_METRIC_REQUIRED">Custom Metric field is required</span>\n </div>\n </div>\n </md-input-container>\n </div>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.reportField.alias" ng-required="vm.reportField.type === \'custom\' || vm.reportField.type === \'metric\'">\n <div ng-messages="reportFieldForm.alias.$error" ng-show="reportFieldForm.alias.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.ALIAS_REQUIRED">Alias field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.reportField.type !== \'metric\'">\n <label translate="ANALYTICS.FUNCTION">Function</label>\n <md-select name="function" ng-model="vm.reportField.function">\n <md-option ng-value="null">No Function</md-option>\n <md-option ng-repeat="function in vm.sqlUtil.getFunctions" ng-value="function.value">{{function.value}}</md-option>\n </md-select>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.reportField.type !== \'metric\'">\n <label translate="ANALYTICS.FORMAT">Format</label>\n <md-select name="format" ng-model="vm.reportField.format">\n <md-option ng-value="null">No Format</md-option>\n <md-option ng-repeat="format in vm.sqlUtil.getFormats" ng-value="format.value">{{format.value}}</md-option>\n </md-select>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.GROUP_BY">Group By</label>\n <md-select name="groupBy" ng-model="vm.reportField.groupBy">\n <md-option ng-repeat="gb in vm.sqlUtil.getGroupBy" ng-value="gb.value">{{gb.value ? \'Yes\' : \'No\'}}</md-option>\n </md-select>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.ORDER_BY">Order By</label>\n <md-select name="orderBy" ng-model="vm.reportField.orderBy">\n <md-option ng-value="null">No Order</md-option>\n <md-option ng-repeat="ob in vm.sqlUtil.getOrderBy" ng-value="ob.value">{{ob.value}}</md-option>\n </md-select>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-if="!vm.newReportField" ng-click="vm.saveReportField()" class="send-button md-accent md-raised" ng-disabled="reportFieldForm.$invalid || reportFieldForm.$pristine" aria-label="SAVE" translate="ANALYTICS.SAVE" translate-attr-aria-label="ANALYTICS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.newReportField" ng-click="vm.addNewReportField()" class="send-button md-accent md-raised" ng-disabled="reportFieldForm.$invalid || reportFieldForm.$pristine" aria-label="ADD" translate="ANALYTICS.ADD_REPORTFIELD" translate-attr-aria-label="ANALYTICS.ADD_REPORTFIELD">\n ADD REPORT FIELD\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newReportField" ng-click="vm.deleteReportField($event)" aria-label="DELETE" translate translate-attr-aria-label="ANALYTICS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="ANALYTICS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/analytics/views/reports/edit/view.html",'<div id="analytics-report" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-reports-button md-icon-button" aria-label="Go to reports" ng-click="vm.gotoReports()" translate translate-attr-aria-label="ANALYTICS.GO_TO_ANALYTICSQUEUES">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="report-image" hide-xs>\n <img ng-src="assets/images/business/reports.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.report.id}} {{vm.report.name}}\n </div>\n <div class="subtitle secondary-text">\n <span translate="ANALYTICS.CREATED_AT"></span> <span>{{vm.report.createdAt | date:\'medium\'}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span>{{vm.report.description}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div>\n <md-button type="submit" ng-click="vm.saveReport()" ng-disabled="generalForm.$pristine && conditionsForm.$pristine" class="send-button md-accent md-raised" translate="ANALYTICS.SAVE" translate-attr-aria-label="ANALYTICS.SAVE">\n SAVE\n </md-button>\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="ANALYTICS.SETTINGS">SETTINGS</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="report-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="ANALYTICS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.NAME">Name</label>\n <input type="text" name="name" ng-disabled="!vm.crudPermissions.canEdit" ng-model="vm.report.name" required md-autofocus>\n <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-disabled="!vm.crudPermissions.canEdit" ng-model="vm.report.description">\n <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="ANALYTICS.FIELDS">FIELDS</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="report-detail-form-container fields md-background-bg md-whiteframe-1dp">\n <div ng-controller="ReportFieldsController as vm_rf" ng-init="vm_rf.init(vm.report, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_rf.selectedReportFields.length">\n <div class="md-toolbar-tools">\n <div layout="row" layout-align="start center">\n <div layout="column" layout-align="start start">\n <div class="md-subhead" translate="ANALYTICS.FIELDS">\n <span translate="ANALYTICS.FIELDS">FIELDS</span>\n </div>\n <div class="h4">\n <span translate="ANALYTICS.TABLE">TABLE</span> <span class="text-bold">{{vm.report.table}}</span>\n </div>\n <div class="h4" ng-if="vm.report.joins && vm.report.joins.length && vm.isArray(vm.report.joins)">\n <span>Join</span> <span class="text-bold">{{ vm.mapArray(vm.report.joins, \'foreignTable\') }}</span>\n </div>\n </div>\n </div>\n <div flex></div>\n <ms-search-bar on-search="vm_rf.query.filter = query" on-collapse="vm_rf.query.filter = undefined" debounce="300"></ms-search-bar>\n <md-button class="md-icon-button" ng-if="vm_rf.crudPermissions.canEdit" ng-click="vm_rf.createOrEditReportField($event)" aria-label="add field" translate translate-attr-label="ANALYTICS.ADD_FIELD">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_rf.selectedReportFields.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_rf.selectedReportFields.length}} {{vm_rf.selectedReportFields.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm_rf.deleteSelectedReportFields($event)" aria-label="delete selected" translate translate-attr-label="ANALYTICS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select="vm_rf.crudPermissions.canDelete" multiple ng-model="vm_rf.selectedReportFields" md-progress="vm_rf.promise">\n <thead md-head md-order="vm_rf.query.sort" md-on-reorder="vm_rf.getReportFields">\n <tr md-row>\n <th md-column width="10px" ng-if="vm_rf.crudPermissions.canEdit">\n <md-icon md-font-icon="icon-drag-vertical"></md-icon>\n </th>\n <th md-column>Type</th>\n <th md-column>Column or Metric</th>\n <th md-column>Alias</th>\n <th md-column>Function</th>\n <th md-column>Format</th>\n <th md-column>Group By</th>\n <th md-column>Order By</th>\n <th md-column width="10px" ng-if="vm_rf.crudPermissions.canEdit"></th>\n </tr>\n </thead>\n <tbody md-body ng-sortable="vm_rf.sortableTable">\n <tr md-row md-select="reportField" md-select-id="id" ng-repeat="reportField in vm_rf.reportFields.rows">\n <td md-cell class="handle" ng-if="vm_rf.crudPermissions.canEdit">\n <md-icon md-font-icon="icon-drag-vertical" class="s16"></md-icon>\n </td>\n <td md-cell>\n <div ng-if="reportField.MetricId && !reportField.custom" ng-click="vm_rf.createOrEditReportField($event, reportField)" class="icon icon-shape-plus s16"></div>\n <div ng-if="!reportField.MetricId && reportField.custom" ng-click="vm_rf.createOrEditReportField($event, reportField)" class="icon icon-pencil-box-outline s16"></div>\n <div ng-if="!reportField.MetricId && !reportField.custom" ng-click="vm_rf.createOrEditReportField($event, reportField)" class="icon icon-view-column s16"></div>\n </td>\n <td md-cell ng-click="vm_rf.createOrEditReportField($event, reportField)">{{reportField.MetricId ? vm_rf.getMetricName(reportField.MetricId) : reportField.field}}</td>\n <td md-cell ng-click="vm_rf.createOrEditReportField($event, reportField)">{{reportField.alias}}</td>\n <td md-cell ng-click="vm_rf.createOrEditReportField($event, reportField)"><span class="text-boxed blue-bg white-fg" ng-if="reportField.function">{{reportField.function}}</span><span ng-if="!reportField.function">--</span></td>\n <td md-cell ng-click="vm_rf.createOrEditReportField($event, reportField)"><span class="text-boxed blue-bg white-fg" ng-if="reportField.format">{{reportField.format}}</span><span ng-if="!reportField.format">--</span></td>\n <td md-cell ng-click="vm_rf.createOrEditReportField($event, reportField)"><span class="text-boxed blue-bg white-fg" ng-if="reportField.groupBy">YES</span><span ng-if="!reportField.groupBy">--</span></td>\n <td md-cell ng-click="vm_rf.createOrEditReportField($event, reportField)"><span class="text-boxed blue-bg white-fg" ng-if="reportField.orderBy">{{reportField.orderBy}}</span><span ng-if="!reportField.orderBy">--</span></td>\n <td md-cell class="actions" ng-if="vm_rf.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="ANALYTICS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm_rf.createOrEditReportField($event, reportField)" translate="ANALYTICS.EDIT_REPORTFIELD">\n Edit Field\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm_rf.deleteConfirm(reportField, $event)" translate="ANALYTICS.DELETE_REPORTFIELD">\n Delete Field\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="ANALYTICS.CONDITIONS">CONDITIONS</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="report-detail-form-container conditions md-background-bg md-whiteframe-1dp">\n <div ng-controller="ReportConditionsController as vm_rc" ng-init="vm_rc.init(vm.report, vm.crudPermissions)">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="ANALYTICS.CONDITION">CONDITION</div>\n </div>\n <form name="conditionsForm" novalidate>\n <div ng-if="vm_rc.report.condition.group" ng-include="\'app/main/apps/analytics/views/reports/edit/condition/group.html\'" ng-init="group=vm_rc.report.condition.group"></div>\n </form>\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab md-on-select="vm.previewReport()">\n <md-tab-label>\n <span translate="ANALYTICS.PREVIEW">PREVIEW</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="report-detail-form-container result md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div ng-if="vm.error" class="h2 secondary-text" translate="ANALYTICS.ERROR">ERROR</div>\n <div ng-if="!vm.error" class="h2 secondary-text" translate="ANALYTICS.LIMITED_RESULT">LIMITED RESULT</div>\n </div>\n <dl ng-if="vm.error">\n <dt class="text-bold" translate="ANALYTICS.QUERY_ERROR">Query Error</dt>\n <dd>{{vm.error.sql}}</dd>\n <dt translate="ANALYTICS.MESSAGE">Message</dt>\n <dd>{{vm.error.msg}}</dd>\n </dl>\n <md-table-container ng-if="!vm.error">\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th ng-repeat="column in vm.columns">{{column.alias || column.field}}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-repeat="row in vm.rows">\n <td md-cell ng-repeat="(key, value) in row">{{ vm.valueReplacer(key, value) }}</td>\n </tr>\n <tr md-row ng-if="!vm.rows.length">\n <td md-cell colspan="{{vm.columns.length}}"><span translate="ANALYTICS.NO_DATA">NO DATA</span></td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab md-on-select="vm.queryReport()">\n <md-tab-label>\n <span>Query</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="report-detail-form-container result md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div ng-if="vm.error" class="h2 secondary-text" translate="ANALYTICS.ERROR">ERROR</div>\n <div ng-if="!vm.error" class="h2 secondary-text">SQL</div>\n </div>\n <dl ng-if="vm.error">\n <dt class="text-bold" translate="ANALYTICS.QUERY_ERROR">Query Error</dt>\n <dd>{{vm.error.sql}}</dd>\n <dt translate="ANALYTICS.MESSAGE">Message</dt>\n <dd>{{vm.error.msg}}</dd>\n </dl>\n <div ng-if="!vm.error">\n {{vm.queryResult}}\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/analytics/views/reports/preview/dialog.html",'<md-dialog aria-label="Run Report">\n <form name="reportForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title" translate="ANALYTICS.PREVIEW_REPORT">Preview Report</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <div class="md-block">\n <div class="pb-16" layout="row" layout-align="start center">\n <div ng-if="vm.error" class="h2 secondary-text" translate="ANALYTICS.ERROR">ERROR</div>\n <div ng-if="!vm.error" class="h2 secondary-text" translate="ANALYTICS.LIMITED_RESULT">LIMITED RESULT</div>\n </div>\n <dl ng-if="vm.error">\n <dt class="text-bold" translate="ANALYTICS.QUERY_ERROR">Query Error</dt>\n <dd>{{vm.error.sql}}</dd>\n <dt translate="ANALYTICS.MESSAGE">Message</dt>\n <dd>{{vm.error.msg}}</dd>\n </dl>\n <md-table-container ng-if="!vm.error">\n <table md-table md-progress="vm.promise">\n <thead md-head>\n <tr md-row>\n <th md-column ng-repeat="column in vm.columns">{{column.alias || column.field}}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-repeat="row in vm.rows">\n <td md-cell ng-repeat="(key, value) in row">{{ vm.valueReplacer(key, value) }}</td>\n </tr>\n <tr md-row ng-if="!vm.rows.length">\n <td md-cell colspan="{{vm.columns.length}}"><span translate="ANALYTICS.NO_DATA">NO DATA</span></td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </div>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div flex></div>\n <md-button type="submit" ng-click="vm.closeDialog()" class="md-raised" aria-label="CLOSE" translate="ANALYTICS.CLOSE" translate-attr-aria-label="ANALYTICS.CLOSE">\n CLOSE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/analytics/views/reports/reports.html",'<div id="reports" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-chart-line" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="ANALYTICS.REPORTS">Reports</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedReports.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedReports =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="ANALYTICS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-reports-count">\n <span>{{vm.selectedReports.length}}</span>\n <span translate="ANALYTICS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="ANALYTICS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllReports()" translate="ANALYTICS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectReports()" translate="ANALYTICS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedReports" csv-label="true" filename="reports.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm.crudPermissions.canDelete && vm.currentNode.custom" class="md-icon-button" ng-click="vm.deleteSelectedReports($event)" aria-label="delete selected" translate translate-attr-label="ANALYTICS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div layout="column" flex="30">\n <md-card class="padding-top-5 padding-horizontal-10 padding-bottom-0">\n \x3c!-- SEARCH --\x3e\n <div layout="row" layout-align="start center">\n <label for="searchFolder" class="m-0">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="margin-horizontal-0 margin-bottom-0 margin-top-10" flex>\n <input id="searchFolder" placeholder="Search folder" type="text" ng-model="vm.search" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="ANALYTICS.SEARCH_FOR_FOLDER">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </md-card>\n <md-card class="padding-10 scrollable" ms-scroll>\n <div js-tree="vm.treeDefaultConfig" tree-events-obj="vm.treeDefaultEvents" ng-model="vm.treeDefaultData" tree="vm.treeDefaultInstance"></div>\n </md-card>\n <md-card class="padding-10 scrollable" ms-scroll>\n <div js-tree="vm.treeCustomConfig" tree-events-obj="vm.treeCustomEvents" ng-model="vm.treeCustomData" tree="vm.treeCustomInstance"></div>\n </md-card>\n </div>\n <md-card flex="70">\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="h2 secondary-text">{{vm.currentNode.text}}</span>\n <p ng-if="vm.currentPath">\n <span class="text-boxed">{{vm.currentPath}}</span>\n </p>\n <div flex></div>\n <ms-search-bar on-search="vm.getReports()" query="vm.query" on-collapse="vm.query.filter = undefined" debounce="300"></ms-search-bar>\n <div flow-init flow-file-added="vm.importReport($file, $event, $flow)">\n <md-button ng-if="vm.crudPermissions.canEdit && vm.currentNode.custom" class="md-icon-button" aria-label="import report" translate translate-attr-label="ANALYTICS.IMPORT_REPORT" flow-btn>\n <md-icon md-font-icon="icon-upload"></md-icon>\n </md-button>\n </div>\n <md-button ng-if="vm.crudPermissions.canEdit && vm.currentNode.custom" class="md-icon-button" ng-click="vm.createOrEditReport($event)" aria-label="add report" translate translate-attr-label="ANALYTICS.ADD_REPORT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedReports" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getReports">\n <tr md-row>\n <th md-column md-order-by="id" width="10px">{{ \'ANALYTICS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'ANALYTICS.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'ANALYTICS.DESCRIPTION\' | translate }}</th>\n <th md-column md-order-by="createdAt">{{ \'ANALYTICS.CREATED_AT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.reports.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="ANALYTICS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="report" md-select-id="id" ng-repeat="report in vm.reports.rows">\n <td ng-click="!vm.crudPermissions.canEdit ? vm.currentNode.custom && vm.editstate(report, $event) : vm.currentNode.custom && vm.createOrEditReport($event, report)" md-cell class="id">{{report.id}}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.currentNode.custom && vm.editstate(report, $event) : vm.currentNode.custom && vm.createOrEditReport($event, report)" md-cell class="name">{{report.name}}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.currentNode.custom && vm.editstate(report, $event) : vm.currentNode.custom && vm.createOrEditReport($event, report)" md-cell class="description">{{report.description}}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.currentNode.custom && vm.editstate(report, $event) : vm.currentNode.custom && vm.createOrEditReport($event, report)" md-cell class="createdAt">{{report.createdAt | date:\'medium\'}}</td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="ANALYTICS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.copydialog(report, $event)" translate="ANALYTICS.COPY_REPORT">\n Copy Report\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.previewdialog(report, $event)" translate="ANALYTICS.PREVIEW_REPORT">\n Preview Report\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.rundialog(report, $event)" translate="ANALYTICS.RUN_REPORT">\n Run Report\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.downloadfile(report, $event)" translate="ANALYTICS.DOWNLOAD_JSON_REPORT">\n Download Json Report\n </md-button>\n </md-menu-item>\n <md-menu-divider ng-if="vm.crudPermissions.canEdit && vm.crudPermissions.canDelete && vm.currentNode.custom">\n </md-menu-divider>\n <md-menu-item ng-if="vm.crudPermissions.canEdit && vm.currentNode.custom">\n <md-button ng-click="vm.editstate(report, $event)" translate="ANALYTICS.EDIT_REPORT">\n Edit Report\n </md-button>\n </md-menu-item>\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete && vm.currentNode.custom">\n <md-button ng-click="vm.deleteconfirm(report, $event)" translate="ANALYTICS.DELETE_REPORT">\n Delete Report\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'ANALYTICS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'ANALYTICS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'ANALYTICS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.reports.count}}" md-on-paginate="vm.getReports" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- NO ADD BUTTON BUTTON --\x3e\n</div>'),e.put("app/main/apps/analytics/views/reports/run/dialog.html",'<md-dialog class="report-dialog" aria-label="Run Report">\n <form name="reportForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title" translate="ANALYTICS.RUN_REPORT">Run Report</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.NAME">Name</label>\n <input name="name" ng-model="vm.export.name" required md-autofocus>\n <div ng-messages="reportForm.name.$error" ng-show="reportForm.name.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.FORMAT">FORMAT</label>\n <md-select name="format" ng-model="vm.export.output" required>\n <md-option value="csv">CSV</md-option>\n <md-option value="xlsx">Excel (XLSX)</md-option>\n <md-option value="pdf">PDF</md-option>\n <md-option value="web">Web</md-option>\n </md-select>\n <div ng-messages="reportForm.format.$error" ng-show="reportForm.format.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.FORMAT_REQUIRED">Format field is required</span>\n </div>\n </div>\n </md-input-container>\n <div layout="row">\n <div class="md-block" flex>\n <mdp-date-picker mdp-open-on-click required name="dateRangeFrom" mdp-placeholder="Date Range From" mdp-format="YYYY-MM-DD" mdp-max-date="vm.dateRangeTo" ng-model="vm.export.startDate">\n <div ng-messages="reportForm.dateRangeFrom.$error" ng-show="reportForm.dateRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.DATE_RANGE_FROM_REQUIRED">Date Range From field is required</span>\n </div>\n <div ng-message="format">\n <span translate="ANALYTICS.ERRORS.DATE_RANGE_FROM_INVALID">Date Range From field is invalid</span>\n </div>\n <div ng-message="maxDate">\n <span translate="ANALYTICS.ERRORS.DATE_RANGE_FROM_MAX_INVALID">Date Range From Max field is invalid</span>\n </div>\n </div>\n </mdp-date-picker>\n </div>\n <div class="md-block" flex>\n <mdp-date-picker mdp-open-on-click required name="dateRangeTo" mdp-placeholder="Date Range To" mdp-format="YYYY-MM-DD" mdp-min-date="vm.dateRangeFrom" ng-model="vm.export.endDate">\n <div ng-messages="reportForm.dateRangeTo.$error" ng-show="reportForm.dateRangeTo.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.DATE_RANGE_TO_REQUIRED">Date Range From field is required</span>\n </div>\n <div ng-message="format">\n <span translate="ANALYTICS.ERRORS.DATE_RANGE_TO_INVALID">Date Range From field is invalid</span>\n </div>\n <div ng-message="minDate">\n <span translate="ANALYTICS.ERRORS.DATE_RANGE_FROM_MIN_INVALID">Date Range From Min field is invalid</span>\n </div>\n </div>\n </mdp-date-picker>\n </div>\n </div>\n <div layout="row">\n <div class="md-block" flex>\n <mdp-time-picker required name="timeRangeFrom" mdp-placeholder="Time Range From" mdp-format="HH:mm:ss" mdp-auto-switch="true" mdp-max-date="vm.dateRangeTo" ng-model="vm.export.startDate">\n <div ng-messages="reportForm.timeRangeFrom.$error" ng-show="reportForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.TIME_RANGE_FROM_REQUIRED">Time Range From field is required</span>\n </div>\n <div ng-message="format">\n <span translate="ANALYTICS.ERRORS.TIME_RANGE_FROM_INVALID">Time Range From field is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n <div class="md-block" flex>\n <mdp-time-picker required name="timeRangeTo" mdp-placeholder="Time Range To" mdp-format="HH:mm:ss" mdp-auto-switch="true" mdp-min-date="vm.dateRangeFrom" ng-model="vm.export.endDate">\n <div ng-messages="reportForm.timeRangeTo.$error" ng-show="reportForm.timeRangeTo.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range From field is required</span>\n </div>\n <div ng-message="format">\n <span translate="ANALYTICS.ERRORS.TIME_RANGE_TO_INVALID">Time Range From field is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </div>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.runReport($event)" class="send-button md-accent md-raised" ng-disabled="reportForm.$invalid" aria-label="RUN" translate="ANALYTICS.RUN_REPORT" translate-attr-aria-label="ANALYTICS.RUN_REPORT">\n RUN REPORT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-click="vm.refreshDate()" aria-label="REFRESH" translate translate-attr-aria-label="ANALYTICS.REFRESH">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <md-tooltip><span translate="ANALYTICS.REFRESH">REFRESH</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/analytics/views/reports/run/web/dialog.html",'<md-dialog class="web-dialog" aria-label="Show Report">\n <form name="reportForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title" translate="ANALYTICS.WEB_REPORT">Web Report</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <div class="md-block">\n <div class="pb-16" layout="row" layout-align="start center">\n <div ng-if="vm.error" class="h2 secondary-text" translate="ANALYTICS.ERROR">ERROR</div>\n </div>\n <dl ng-if="vm.error">\n <dt class="text-bold" translate="ANALYTICS.QUERY_ERROR">Query Error</dt>\n <dd>{{vm.error.sql}}</dd>\n <dt translate="ANALYTICS.MESSAGE">Message</dt>\n <dd>{{vm.error.msg}}</dd>\n </dl>\n <md-table-container ng-if="!vm.error">\n <table md-table md-progress="vm.promise">\n <thead md-head>\n <tr md-row>\n <th md-column ng-repeat="column in vm.columns">{{column.alias || column.field}}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-repeat="row in vm.results.rows">\n <td md-cell ng-repeat="(key, value) in row">{{ vm.valueReplacer(key, value) }}</td>\n </tr>\n <tr md-row ng-if="!vm.results.rows.length">\n <td md-cell colspan="{{vm.columns.length}}">\n <div layout="row" layout-align="center center">\n <span translate="ANALYTICS.NO_DATA">NO DATA</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'ANALYTICS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'ANALYTICS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'ANALYTICS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.results.count}}" md-on-paginate="vm.getResults" md-page-select></md-table-pagination>\n </div>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div flex></div>\n <md-button type="submit" ng-click="vm.closeDialog()" class="md-raised" aria-label="CLOSE" translate="ANALYTICS.CLOSE" translate-attr-aria-label="ANALYTICS.CLOSE">\n CLOSE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/odbcs/create/dialog.html",'<md-dialog class="odbc-dialog" aria-label="New Odbc">\n <form name="odbcForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CALLYSQUARE.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.odbc.name" ng-required="true" autofocus>\n\n <div ng-messages="odbcForm[\'name\'].$error" ng-show="odbcForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CALLYSQUARE.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CALLYSQUARE.DSN">DSN</label>\n <input type="text" name="dsn" ng-model="vm.odbc.dsn" ng-required="true">\n\n <div class="hint"><span translate="CALLYSQUARE.HELP.DSN"></span></div>\n <div ng-messages="odbcForm[\'dsn\'].$error" ng-show="odbcForm[\'dsn\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CALLYSQUARE.ERRORS.DSN_REQUIRED">DSN field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CALLYSQUARE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.odbc.description">\n\n <div ng-messages="odbcForm[\'description\'].$error" ng-show="odbcForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CALLYSQUARE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newOdbc" ng-click="vm.saveOdbc()" class="send-button md-accent md-raised" ng-disabled="odbcForm.$invalid || odbcForm.$pristine" aria-label="SAVE" translate="CALLYSQUARE.SAVE" translate-attr-aria-label="CALLYSQUARE.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newOdbc" ng-click="vm.addNewOdbc()" class="send-button md-accent md-raised" ng-disabled="odbcForm.$invalid" aria-label="ADD" translate="CALLYSQUARE.ADD_ODBC" translate-attr-aria-label="CALLYSQUARE.ADD_ODBC">\n ADD ODBC\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newOdbc" ng-click="vm.deleteOdbc($event)" aria-label="DELETE" translate translate-attr-aria-label="CALLYSQUARE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="CALLYSQUARE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/odbcs/odbcs.html",'<div id="odbcs" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-sitemap" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="CALLYSQUARE.ODBC">ODBC</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="CALLYSQUARE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedODBC.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedODBC =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="CALLYSQUARE.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-odbcs-count">\n <span>{{vm.selectedODBC.length}}</span>\n <span translate="CALLYSQUARE.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="CALLYSQUARE.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllODBC()" translate="CALLYSQUARE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectODBC()" translate="CALLYSQUARE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedODBC" csv-label="true" filename="odbcs.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedODBC($event)" aria-label="delete selected" translate translate-attr-label="CALLYSQUARE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- ODBC TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedODBC" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getODBC">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'CALLYSQUARE.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'CALLYSQUARE.NAME\' | translate }}</th>\n <th md-column md-order-by="dsn">{{ \'CALLYSQUARE.DSN\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'CALLYSQUARE.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.odbcs.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="CALLYSQUARE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="odbc" md-select-id="id" ng-repeat="odbc in vm.odbcs.rows">\n <td md-cell ng-if="odbc.userpic"><img class="avatar" alt="{{odbc.name}}" ng-src="api/users/{{odbc.id}}/avatar" /></td>\n <td md-cell ng-if="!odbc.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{odbc.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditOdbc($event, odbc)" md-cell class="id ">{{odbc.id}}</td>\n <td ng-click="vm.createOrEditOdbc($event, odbc)" md-cell class="name ">{{odbc.name}}</td>\n <td ng-click="vm.createOrEditOdbc($event, odbc)" md-cell class="dsn ">{{odbc.dsn}}</td>\n <td ng-click="vm.createOrEditOdbc($event, odbc)" md-cell class="description ">{{odbc.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CALLYSQUARE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(odbc, $event )" translate="CALLYSQUARE.EDIT_ODBC">\n Edit Odbc\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestOdbc(odbc, $event )" translate="CALLYSQUARE.TEST_ODBC">\n Test Odbc\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(odbc, $event )" translate="CALLYSQUARE.DELETE_ODBC">\n Delete Odbc\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CALLYSQUARE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CALLYSQUARE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CALLYSQUARE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.odbcs.count}}" md-on-paginate="vm.getODBC" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / ODBC TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD ODBC BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-odbc-button" ng-click="vm.createOrEditOdbc($event)" aria-label="add odbc" translate translate-attr-aria-label="CALLYSQUARE.ADD_ODBC">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD ODBC BUTTON --\x3e\n</div>'),e.put("app/main/apps/callysquare/views/projects/create/dialog.html",'<md-dialog class="project-dialog" aria-label="New Project">\n <form name="projectForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{vm.title | translate}}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CALLYSQUARE.NAME">Name</label>\n <input name="name" ng-model="vm.project.name" required md-autofocus ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-disabled="!vm.newProject">\n <div ng-messages="projectForm.name.$error" ng-show="projectForm.name.$touched" role="alert">\n <div ng-message="required">\n <span translate="CALLYSQUARE.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="VOICE.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CALLYSQUARE.DESCRIPTION">Description</label>\n <input name="description" ng-model="vm.project.description">\n <div ng-messages="projectForm.description.$error" ng-show="projectForm.description.$touched" role="alert">\n <div ng-message="required">\n <span translate="CALLYSQUARE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.openFromEditor" class="md-block">\n \x3c!-- Added to check if I\'m opening the dialog directly from the square editor --\x3e\n <md-switch ng-model="vm.newWindow" aria-label="{{\'CALLYSQUARE.OPEN_NEW_WINDOW\' | translate }}"><span translate="CALLYSQUARE.OPEN_NEW_WINDOW"></span></md-switch>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-if="!vm.newProject" ng-click="vm.saveProject()" class="send-button md-accent md-raised" ng-disabled="projectForm.$invalid || projectForm.$pristine" aria-label="SAVE" translate="CALLYSQUARE.SAVE" translate-attr-aria-label="CALLYSQUARE.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.newProject" ng-click="vm.addNewProject()" class="send-button md-accent md-raised" ng-disabled="projectForm.$invalid || projectForm.$pristine" aria-label="ADD" translate="CALLYSQUARE.ADD_PROJECT" translate-attr-aria-label="CALLYSQUARE.ADD_PROJECT">\n ADD PROJECT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newProject" ng-click="vm.deleteProject($event)" aria-label="DELETE" translate translate-attr-aria-label="CALLYSQUARE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="CALLYSQUARE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/projects/edit/dialog/dialog.html",'<md-dialog class="project-dialog" aria-label="New dialog" ng-init="vm.onInit()">\n <form name="dialogForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title"><span translate="CALLYSQUARE.EDIT"></span> <span translate="CALLYSQUARE.{{vm.cellName | uppercase}}"></span></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <md-input-container class="md-block" ng-repeat="attribute in vm.attributes" ng-switch="attribute.name">\n <label translate="CALLYSQUARE.{{attribute.name | uppercase}}">{{attribute.name | ucfirst }}</label>\n\n \x3c!-- START SELECT INPUT --\x3e\n <md-select name="{{attribute.name}}" ng-model="attribute.value" ng-disabled="!vm.crudPermissions.canEdit" ng-switch-when-separator="|" ng-switch-when="answer|trunk_name|trunk_id|queue_id|file_id|variable_id|google_cloud_tts_text_type|google_tts_language|ispeech_tts_language|ispeech_asr_language|google_asr_language|hiddendigitspos|odbc_id|project_id|beep|account_id|interval_id|template_id|list_id|recordingFormat|callback_priority|aws_polly_voice|aws_polly_region|aws_lex_region|sms_account_id|findBy|pause_id|aws_text_type|dialogflow_language|ndagenerate_audio|ndaactivity_type|languageCode|ssmlGender|method|dialogflowV2_language" ng-required="attribute.required">\n <md-option ng-if="attribute.defaultValue" ng-value="\'\'"> - None - </md-option>\n <md-option value="{{v.value}}" ng-repeat="v in vm.values[attribute.name]" ng-disabled="v.canSelect === false">{{v.option}}</md-option>\n <md-option ng-if="!vm.values[attribute.name].length" value="-1">No {{attribute.name}} available!</md-option>\n </md-select>\n \x3c!-- END SELECT INPUT --\x3e\n\n \x3c!-- START SELECT INPUT --\x3e\n <md-select name="{{attribute.name}}" ng-model="attribute.value" ng-disabled="!vm.crudPermissions.canEdit" ng-switch-when-separator="|" ng-switch-when="sip_id" ng-required="attribute.required">\n <md-optgroup label="{{\'CALLYSQUARE.AGENTS\' | translate}}">\n <md-option value="{{v.value}}" ng-repeat="v in vm.values[attribute.name]" ng-if="v.group === \'agent\'" ng-disabled="v.canSelect === false">{{v.option}}</md-option>\n </md-optgroup>\n <md-optgroup label="{{\'CALLYSQUARE.TELEPHONES\' | translate}}">\n <md-option value="{{v.value}}" ng-repeat="v in vm.values[attribute.name]" ng-if="v.group === \'telephone\'" ng-disabled="v.canSelect === false">{{v.option}}</md-option>\n </md-optgroup>\n <md-optgroup label="{{\'CALLYSQUARE.USERS\' | translate}}">\n <md-option value="{{v.value}}" ng-repeat="v in vm.values[attribute.name]" ng-if="v.group === \'admin\' || v.group === \'user\'">{{v.option}}</md-option>\n </md-optgroup>\n <md-option ng-if="!vm.values[attribute.name].length" value="-1">No {{attribute.name}} available!</md-option>\n </md-select>\n \x3c!-- END SELECT INPUT --\x3e\n\n \x3c!-- START NUMBER INPUT --\x3e\n <div ng-switch-when="timeout">\n <div ng-switch="vm.cellName">\n <input ng-switch-when-separator="|" ng-switch-when="answer|ext_dial|dial|queue" type="number" step="any" name="{{attribute.name}}" min="0" ng-model="attribute.value" ng-required="attribute.required" ng-disabled="!vm.crudPermissions.canEdit" string-to-number>\n <input ng-switch-when-separator="|" ng-switch-when="record|ispeechasr|googleasr" type="number" step="any" name="{{attribute.name}}" min="-1" ng-model="attribute.value" ng-required="attribute.required" ng-disabled="!vm.crudPermissions.canEdit" string-to-number>\n <input ng-switch-when-separator="|" ng-switch-when="restapi" type="number" step="any" name="{{attribute.name}}" min="1" ng-model="attribute.value" ng-required="attribute.required" ng-disabled="!vm.crudPermissions.canEdit" string-to-number>\n <input ng-switch-default type="number" step="any" name="{{attribute.name}}" min="0" ng-model="attribute.value" ng-required="attribute.required" ng-disabled="!vm.crudPermissions.canEdit" string-to-number>\n </div>\n </div>\n <input ng-switch-when-separator="|" ng-switch-when="speed" type="number" step="any" name="{{attribute.name}}" min="-10" max="-10" ng-model="attribute.value" ng-required="attribute.required" ng-disabled="!vm.crudPermissions.canEdit" string-to-number>\n <input ng-switch-when-separator="|" ng-switch-when="maxdigit|mindigit|digit" type="number" step="any" name="{{attribute.name}}" min="1" ng-model="attribute.value" ng-required="attribute.required" ng-disabled="!vm.crudPermissions.canEdit" string-to-number>\n <input ng-switch-when-separator="|" ng-switch-when="retry|response|hiddendigitsnum|priority" type="number" step="any" name="{{attribute.name}}" min="1" ng-model="attribute.value" ng-required="attribute.required" ng-disabled="!vm.crudPermissions.canEdit" string-to-number>\n \x3c!-- END NUMBER INPUT --\x3e\n\n \x3c!-- START TEXTAREA INPUT --\x3e\n <textarea name="{{attribute.name}}" ng-model="attribute.value" ng-switch-when-separator="|" ng-switch-when="query|sms_text|condition|text|custom_action_data|headers|body|rawHeaders|rawBody|private_key" ng-required="attribute.required" ng-disabled="!vm.crudPermissions.canEdit"></textarea>\n \x3c!-- END TEXTAREA INPUT --\x3e\n\n \x3c!-- START URL INPUT --\x3e\n <input ng-switch-when-separator="|" ng-switch-when="ndauth_url|ndassistant_url|url" type="url" name="{{attribute.name}}" ng-model="attribute.value" ng-required="attribute.required">\n \x3c!-- END URL INPUT --\x3e\n\n \x3c!-- START TEXT INPUT --\x3e\n <input ng-switch-default name="{{attribute.name}}" ng-model="attribute.value" ng-required="attribute.required" ng-disabled="!vm.crudPermissions.canEdit">\n <div class=\'hint\' ng-if="attribute.name === \'text\' && vm.cellName === \'tts\' ">\n <span translate="CALLYSQUARE.HELP.MAX_TEXT_TTS" class="ng-scope">Max 250 chars are supported</span>\n </div>\n \x3c!-- END TEXT INPUT--\x3e\n\n <div class="hint" ng-if="attribute.help">\n <span translate="CALLYSQUARE.HELP.{{attribute.name | uppercase}}"></span>\n </div>\n <div ng-messages="dialogForm[attribute.name].$error" ng-show="dialogForm[attribute.name].$touched" role="alert">\n <div ng-message="required">\n <span translate="CALLYSQUARE.ERRORS.FIELD_REQUIRED">The field is required</span>\n </div>\n </div>\n </md-input-container>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="vm.crudPermissions.canEdit">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.closeDialog(true)" class="send-button md-accent md-raised" ng-disabled="dialogForm.$invalid || dialogForm.$pristine" aria-label="SAVE" translate="CALLYSQUARE.SAVE" translate-attr-aria-label="CALLYSQUARE.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/projects/edit/edit/edit.html",'<md-dialog class="project-dialog" aria-label="New dialog">\n <form name="editForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title"><span translate="CALLYSQUARE.EDIT_XML"></span></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label>XML</label>\n <textarea name="preproduction" ng-model="vm.project.preproduction"></textarea>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.closeDialog(true)" class="send-button md-accent md-raised" ng-disabled="editForm.$invalid" aria-label="SAVE" translate="CALLYSQUARE.SAVE" translate-attr-aria-label="CALLYSQUARE.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/projects/edit/import/import.html",'<md-dialog class="project-dialog" aria-label="New dialog">\n <form name="importForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title"><span translate="CALLYSQUARE.IMPORT_XML"></span></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <div id="xml-uploader" flow-init="vm.ngFlowOptions" flow-name="vm.ngFlow.flow" flow-file-added="vm.fileAdded($file)" flow-drop flow-drag-enter="vm.dropping=true" flow-drag-leave="vm.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n <div class="drop-text hint-text" layout="row" layout-align="center center">\n <span translate="CALLYSQUARE.DROP_TO_UPLOAD">Drop to upload</span>\n </div>\n\n <div class="upload-button" layout="column" layout-align="center center">\n <md-button class="md-accent md-raised" flow-btn>\n Upload\n </md-button>\n <span class="secondary-text mt-8" translate="CALLYSQUARE.DROP_TO_UPLOAD_MESSAGE">You can also drop files here to upload. Only XML - Max. 5MB</span>\n </div>\n </div>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.closeDialog()" class="send-button md-accent md-raised" ng-disabled="importForm.$invalid" aria-label="CLOSE" translate="CALLYSQUARE.CLOSE" translate-attr-aria-label="CALLYSQUARE.CLOSE">\n CLOSE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/projects/edit/info/info.html",'<md-dialog class="project-dialog" aria-label="New dialog">\n <form name="descriptionFrom" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title"><span translate="CALLYSQUARE.UPDATE_INFO"></span></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CALLYSQUARE.DESCRIPTION">Description</label>\n <input name="description" ng-model="vm.project.description" md-autofocus>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CALLYSQUARE.NOTES">Description</label>\n <textarea name="notes" ng-model="vm.project.notes"></textarea>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.save()" class="send-button md-accent md-raised" ng-disabled="descriptionFrom.$invalid" aria-label="SAVE" translate="CALLYSQUARE.UPDATE_INFO" translate-attr-aria-label="CALLYSQUARE.UPDATE">\n UPDATE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/projects/edit/open/open.html",'<md-dialog class="project-dialog" aria-label="New dialog">\n <form name="openForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title"><span translate="CALLYSQUARE.OPEN_PROJECT"></span></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CALLYSQUARE.PROJECT">Project</label>\n <md-select name="id" ng-model="vm.id" required>\n <md-option value="{{p.id}}" ng-repeat="p in vm.projects">{{p.name}}</md-option>\n </md-select>\n <div ng-messages="openForm.id.$error" ng-show="openForm.id.$touched" role="alert">\n <div ng-message="required">\n <span translate="CALLYSQUARE.ERRORS.PROJECT_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.newWindow" aria-label="{{\'CALLYSQUARE.OPEN_NEW_WINDOW\' | translate }}"><span translate="CALLYSQUARE.OPEN_NEW_WINDOW"></span></md-switch>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.closeDialog(true)" class="send-button md-accent md-raised" ng-disabled="openForm.$invalid" aria-label="SAVE" translate="CALLYSQUARE.OPEN_PROJECT" translate-attr-aria-label="CALLYSQUARE.OPEN">\n OPEN\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/projects/edit/permissionadd/permissionadd.html",'<md-dialog class="projects-dialog" aria-label="projects">\n <form name="projectsForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="CALLYSQUARE.PERMISSIONADD_PROJECTS">Add User Permissions</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/projects/edit/saveAs/saveAs.html",'<md-dialog class="project-dialog" aria-label="New dialog">\n <form name="newForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title"><span translate="CALLYSQUARE.COPY_PROJECT"></span></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CALLYSQUARE.NAME">Name</label>\n <input name="name" ng-model="vm.project.name" required md-autofocus>\n <div ng-messages="newForm.name.$error" ng-show="newForm.name.$touched" role="alert">\n <div ng-message="required">\n <span translate="CALLYSQUARE.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.newWindow" aria-label="{{\'CALLYSQUARE.OPEN_NEW_WINDOW\' | translate }}"><span translate="CALLYSQUARE.OPEN_NEW_WINDOW"></span></md-switch>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.save()" class="send-button md-accent md-raised" ng-disabled="newForm.$invalid" aria-label="SAVE" translate="CALLYSQUARE.COPY_PROJECT" translate-attr-aria-label="CALLYSQUARE.COPY">\n COPY\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/projects/edit/view.html",'<div id="callysquare-project" class="page-layout simple tabbed" layout="column" ng-init="vm.onInit()">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-projects-button md-icon-button" aria-label="Go to projects" ng-click="vm.gotoProjects()" translate translate-attr-aria-label="CALLYSQUARE.GO_TO_PROJECTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="project-image" hide-xs>\n <img ng-src="assets/images/business/cprojects.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.project.id}} {{vm.project.name}}\n </div>\n <div class="subtitle secondary-text text-truncate">\n <span ng-if="vm.project.description">{{vm.project.description}} - </span><span translate="CALLYSQUARE.CREATED_AT"></span> <span>{{vm.project.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-if="vm.crudPermissions.canEdit" ng-click="vm.updateInfo($event)" class="md-fab md-yellow-700-bg md-icon-button" aria-label="edit">\n <md-icon md-font-icon="icon-tooltip-edit"></md-icon>\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <md-content class="callysquare-content">\n\n <div id="geEditor" class="geEditor"></div>\n\n </md-content>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/callysquare/views/projects/projects.html",'<div id="projects" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-vector-square" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="CALLYSQUARE.PROJECTS">Projects</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="CALLYSQUARE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedProjects.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedProjects =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="CALLYSQUARE.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-projects-count">\n <span>{{vm.selectedProjects.length}}</span>\n <span translate="CALLYSQUARE.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="CALLYSQUARE.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllProjects()" translate="CALLYSQUARE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectProjects()" translate="CALLYSQUARE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedProjects" csv-label="true" filename="projects.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm.crudPermissions.canDelete" class="md-icon-button" ng-click="vm.deleteSelectedProjects($event)" aria-label="delete selected" translate translate-attr-label="CALLYSQUARE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n \x3c!-- PROJECT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedProjects" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getProjects">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'CALLYSQUARE.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'CALLYSQUARE.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'CALLYSQUARE.DESCRIPTION\' | translate }}</th>\n <th md-column md-order-by="notes">{{ \'CALLYSQUARE.NOTES\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.projects.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="CALLYSQUARE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="project" md-select-id="id" ng-repeat="project in vm.projects.rows">\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="id ">{{project.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="name ">{{project.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="description ">{{project.description}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="notes ">{{project.notes}}</td>\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CALLYSQUARE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editstate(project, ev)" translate="CALLYSQUARE.EDIT_PROJECT">\n Edit Project\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteconfirm(project, ev)" translate="CALLYSQUARE.DELETE_PROJECT">\n Delete Project\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CALLYSQUARE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CALLYSQUARE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CALLYSQUARE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.projects.count}}" md-on-paginate="vm.getProjects" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / PROJECT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD PROJECT BUTTON --\x3e\n <md-button class="md-fab md-accent md-icon-button" id="add-project-button" ng-if="vm.crudPermissions.canEdit" ng-click="vm.createOrEditProject($event)" aria-label="add project" translate translate-attr-aria-label="CALLYSQUARE.ADD_PROJECT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD PROJECT BUTTON --\x3e\n\n</div>'),e.put("app/main/apps/callysquare/views/squareRecordings/create/dialog.html",'<md-dialog class="squareRecording-dialog" aria-label="New SquareRecording">\n <form name="squareRecordingForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CALLYSQUARE.FILENAME">Filename</label>\n <input type="" name="filename" ng-model="vm.squareRecording.filename" ng-required="true" autofocus>\n\n <div ng-messages="squareRecordingForm[\'filename\'].$error" ng-show="squareRecordingForm[\'filename\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CALLYSQUARE.ERRORS.FILENAME_REQUIRED">Filename field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newSquareRecording" ng-click="vm.saveSquareRecording()" class="send-button md-accent md-raised" ng-disabled="squareRecordingForm.$invalid || squareRecordingForm.$pristine" aria-label="SAVE" translate="CALLYSQUARE.SAVE" translate-attr-aria-label="CALLYSQUARE.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newSquareRecording" ng-click="vm.addNewSquareRecording()" class="send-button md-accent md-raised" ng-disabled="squareRecordingForm.$invalid" aria-label="ADD" translate="CALLYSQUARE.ADD_SQUARERECORDING" translate-attr-aria-label="CALLYSQUARE.ADD_SQUARERECORDING">\n ADD SQUARERECORDING\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newSquareRecording" ng-click="vm.deleteSquareRecording($event)" aria-label="DELETE" translate translate-attr-aria-label="CALLYSQUARE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="CALLYSQUARE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/squareRecordings/squareRecordings.html",'<div id="squareRecordings" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-sitemap" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="CALLYSQUARE.SQUARERECORDINGS">SquareRecordings</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="CALLYSQUARE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedSquareRecordings.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedSquareRecordings =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="CALLYSQUARE.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-squareRecordings-count">\n <span>{{vm.selectedSquareRecordings.length}}</span>\n <span translate="CALLYSQUARE.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="CALLYSQUARE.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllSquareRecordings()" translate="CALLYSQUARE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectSquareRecordings()" translate="CALLYSQUARE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedSquareRecordings" csv-label="true" filename="squareRecordings.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedSquareRecordings($event)" aria-label="delete selected" translate translate-attr-label="CALLYSQUARE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- SQUARERECORDING TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedSquareRecordings" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getSquareRecordings">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="filename">{{ \'CALLYSQUARE.FILENAME\' | translate }}</th>\n <th md-column md-order-by="projectName">{{ \'CALLYSQUARE.PROJECT\' | translate }}</th>\n <th md-column md-order-by="uniqueid">{{ \'CALLYSQUARE.UNIQUEID\' | translate }}</th>\n <th md-column md-order-by="callerid">{{ \'CALLYSQUARE.PHONE\' | translate }}</th>\n <th md-column md-order-by="extension">{{ \'CALLYSQUARE.EXTEN\' | translate }}</th>\n <th md-column>{{ \'CALLYSQUARE.AUDIO\' | translate }}</th>\n <th md-column md-order-by="createdAt">{{ \'CALLYSQUARE.CREATED_AT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.squareRecordings.rows.length">\n <td md-cell colspan="8">\n <div layout="row" layout-align="center center">\n <span translate="CALLYSQUARE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="squareRecording" md-select-id="id" ng-repeat="squareRecording in vm.squareRecordings.rows">\n <td md-cell ng-if="squareRecording.userpic"><img class="avatar" alt="{{squareRecording.name}}" ng-src="api/users/{{squareRecording.id}}/avatar" /></td>\n <td md-cell ng-if="!squareRecording.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{squareRecording.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditSquareRecording($event, squareRecording)" md-cell class="filename ">{{squareRecording.filename}}</td>\n <td ng-click="vm.createOrEditSquareRecording($event, squareRecording)" md-cell class="projectName ">{{squareRecording.projectName}}</td>\n <td ng-click="vm.createOrEditSquareRecording($event, squareRecording)" md-cell class="uniqueid ">{{squareRecording.uniqueid}}</td>\n <td ng-click="vm.createOrEditSquareRecording($event, squareRecording)" md-cell class="callerid ">{{squareRecording.callerid}}</td>\n <td ng-click="vm.createOrEditSquareRecording($event, squareRecording)" md-cell class="extension ">{{squareRecording.extension}}</td>\n <td md-cell class="audio " ng-switch="squareRecording.format">\n \x3c!-- audio recording directive --\x3e\n <ms-recording ng-switch-when=".wav" id="squareRecording.id" model="\'squareRecording\'"></ms-recording>\n \x3c!-- / audio recording directive --\x3e\n <span ng-switch-when=".gsm|.WAV" ng-switch-when-separator="|">\n <em>{{ \'VOICE.CANT_PLAY_GSM_AUDIO_FILES\' | translate }}</em>\n </span>\n </td>\n <td ng-click="vm.createOrEditSquareRecording($event, squareRecording)" md-cell class="createdAt ">{{squareRecording.createdAt | date:\'medium\' }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CALLYSQUARE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.role === \'admin\' || vm.userProfile.downloadCallySquareRecordings">\n\n <md-button ng-click="vm.downloadfile2(squareRecording, $event , \'square/recordings\' )" translate="CALLYSQUARE.DOWNLOAD_SQUARERECORDING">\n Download SquareRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(squareRecording, $event )" translate="CALLYSQUARE.DELETE_SQUARERECORDING">\n Delete SquareRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CALLYSQUARE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CALLYSQUARE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CALLYSQUARE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.squareRecordings.count}}" md-on-paginate="vm.getSquareRecordings" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / SQUARERECORDING TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- NO ADD BUTTON BUTTON --\x3e\n</div>'),e.put("app/main/apps/chat/views/chatQueues/chatQueues.html",'<div id="chatQueues" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-hangouts" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="CHAT.CHATQUEUES">ChatQueues</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="CHAT.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedChatQueues.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedChatQueues =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="CHAT.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-chatQueues-count">\n <span>{{vm.selectedChatQueues.length}}</span>\n <span translate="CHAT.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="CHAT.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllChatQueues()" translate="CHAT.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectChatQueues()" translate="CHAT.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedChatQueues" csv-label="true" filename="chatQueues.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedChatQueues($event)" aria-label="delete selected" translate translate-attr-label="CHAT.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- CHATQUEUE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedChatQueues" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getChatQueues">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'CHAT.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'CHAT.NAME\' | translate }}</th>\n <th md-column md-order-by="strategy">{{ \'CHAT.STRATEGY\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.chatQueues.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="CHAT.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="chatQueue" md-select-id="id" ng-repeat="chatQueue in vm.chatQueues.rows">\n <td md-cell ng-if="chatQueue.userpic"><img class="avatar" alt="{{chatQueue.name}}" ng-src="api/users/{{chatQueue.id}}/avatar" /></td>\n <td md-cell ng-if="!chatQueue.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{chatQueue.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatQueue, ev) : vm.createOrEditChatQueue($event, chatQueue)" md-cell class="id ">{{chatQueue.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatQueue, ev) : vm.createOrEditChatQueue($event, chatQueue)" md-cell class="name ">{{chatQueue.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatQueue, ev) : vm.createOrEditChatQueue($event, chatQueue)" md-cell class="strategy ">{{ vm.arraystrategy[chatQueue.strategy].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CHAT.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(chatQueue, $event )" translate="CHAT.EDIT_CHATQUEUE">\n Edit ChatQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(chatQueue, $event )" translate="CHAT.TEAMADD_CHATQUEUE">\n teamadd ChatQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(chatQueue, $event )" translate="CHAT.AGENTADD_CHATQUEUE">\n agentadd ChatQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(chatQueue, $event )" translate="CHAT.DELETE_CHATQUEUE">\n Delete ChatQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(chatQueue, $event )" translate="CHAT.GOTOREALTIME_CHATQUEUE">\n goToRealtime ChatQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.chatQueues.count}}" md-on-paginate="vm.getChatQueues" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / CHATQUEUE TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD CHATQUEUE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-chatQueue-button" ng-click="vm.createOrEditChatQueue($event)" aria-label="add chatQueue" translate translate-attr-aria-label="CHAT.ADD_CHATQUEUE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD CHATQUEUE BUTTON --\x3e\n</div>'),e.put("app/main/apps/chat/views/chatQueues/create/dialog.html",'<md-dialog class="chatQueue-dialog" aria-label="New ChatQueue">\n <form name="chatQueueForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.chatQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newChatQueue">\n\n <div class="hint"><span translate="CHAT.HELP.NAME"></span></div>\n <div ng-messages="chatQueueForm[\'name\'].$error" ng-show="chatQueueForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="CHAT.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.chatQueue.strategy" required>\n <md-option ng-value="\'beepall\'">Beepall</md-option>\n <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n </md-select>\n <div ng-messages="chatQueueForm[\'strategy\'].$error" ng-show="chatQueueForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.AGENT_TIMEOUT">Agent_Timeout</label>\n <input type="number" name="timeout" ng-model="vm.chatQueue.timeout" min="1" max="2147483" value="10" ng-required="true">\n\n <div ng-messages="chatQueueForm[\'timeout\'].$error" ng-show="chatQueueForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.chatQueue.description">\n\n <div ng-messages="chatQueueForm[\'description\'].$error" ng-show="chatQueueForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newChatQueue" ng-click="vm.saveChatQueue()" class="send-button md-accent md-raised" ng-disabled="chatQueueForm.$invalid || chatQueueForm.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newChatQueue" ng-click="vm.addNewChatQueue()" class="send-button md-accent md-raised" ng-disabled="chatQueueForm.$invalid" aria-label="ADD" translate="CHAT.ADD_CHATQUEUE" translate-attr-aria-label="CHAT.ADD_CHATQUEUE">\n ADD CHATQUEUE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newChatQueue" ng-click="vm.deleteChatQueue($event)" aria-label="DELETE" translate translate-attr-aria-label="CHAT.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="CHAT.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatQueues/edit/agentadd/agentadd.html",'<md-dialog class="chatQueue-dialog" aria-label="chatQueue" ng-init="vm.onInit()">\n <form name="chatQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="CHAT.AGENTADD_CHATQUEUE">Add Agent to chatQueue</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatQueues/edit/teamadd/teamadd.html",'<md-dialog class="chatQueue-dialog" aria-label="chatQueue" ng-init="vm.onInit()">\n <form name="chatQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="CHAT.TEAMS_ASSOCIATION">Teams Association</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatQueues/edit/view.html",'<div id="chat-chatQueue" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-chatQueues-button md-icon-button" aria-label="Go to chatQueues" ng-click="vm.gotoChatQueues()" translate translate-attr-aria-label="CHAT.GO_TO_CHATQUEUES">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="chatQueue-image" hide-xs>\n <img ng-src="assets/images/business/chatQueues.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.chatQueue.id}}\n <span ng-if="vm.chatQueue.name">{{vm.chatQueue.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="CHAT.CREATED_AT"></span> <span>{{vm.chatQueue.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.teamadddialog(vm.chatQueue, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n <md-tooltip><span translate="CHAT.TEAMADD_CHATQUEUE"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.chatQueue, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="CHAT.AGENTADD_CHATQUEUE"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-plus"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveChatQueue()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid)" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatQueue-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="CHAT.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.chatQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="CHAT.HELP.NAME"></span></div>\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="CHAT.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.chatQueue.strategy" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'beepall\'">Beepall</md-option>\n <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n </md-select>\n <div ng-messages="generalForm[\'strategy\'].$error" ng-show="generalForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.AGENT_TIMEOUT">Agent_Timeout</label>\n <input type="number" name="timeout" ng-model="vm.chatQueue.timeout" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'timeout\'].$error" ng-show="generalForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.chatQueue.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/chat/views/chatWebsites/chatWebsites.html",'<div id="chatWebsites" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-hangouts" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="CHAT.CHATWEBSITES">ChatWebsites</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="CHAT.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedChatWebsites.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedChatWebsites =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="CHAT.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-chatWebsites-count">\n <span>{{vm.selectedChatWebsites.length}}</span>\n <span translate="CHAT.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="CHAT.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllChatWebsites()" translate="CHAT.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectChatWebsites()" translate="CHAT.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedChatWebsites" csv-label="true" filename="chatWebsites.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedChatWebsites($event)" aria-label="delete selected" translate translate-attr-label="CHAT.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- CHATWEBSITE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedChatWebsites" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getChatWebsites">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'CHAT.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'CHAT.NAME\' | translate }}</th>\n <th md-column md-order-by="key">{{ \'CHAT.KEY\' | translate }}</th>\n <th md-column md-order-by="address">{{ \'CHAT.MOTIONADDRESS\' | translate }}</th>\n <th md-column md-order-by="remote">{{ \'CHAT.MOTIONPROXY\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'CHAT.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.chatWebsites.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="CHAT.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="chatWebsite" md-select-id="id" ng-repeat="chatWebsite in vm.chatWebsites.rows">\n <td md-cell ng-if="chatWebsite.userpic"><img class="avatar" alt="{{chatWebsite.name}}" ng-src="api/users/{{chatWebsite.id}}/avatar" /></td>\n <td md-cell ng-if="!chatWebsite.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{chatWebsite.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatWebsite, ev) : vm.createOrEditChatWebsite($event, chatWebsite)" md-cell class="id ">{{chatWebsite.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatWebsite, ev) : vm.createOrEditChatWebsite($event, chatWebsite)" md-cell class="name ">{{chatWebsite.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatWebsite, ev) : vm.createOrEditChatWebsite($event, chatWebsite)" md-cell class="key ">{{chatWebsite.key}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatWebsite, ev) : vm.createOrEditChatWebsite($event, chatWebsite)" md-cell class="address ">{{chatWebsite.address}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatWebsite, ev) : vm.createOrEditChatWebsite($event, chatWebsite)" md-cell class="remote ">{{chatWebsite.remote}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatWebsite, ev) : vm.createOrEditChatWebsite($event, chatWebsite)" md-cell class="description ">{{chatWebsite.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CHAT.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(chatWebsite, $event )" translate="CHAT.EDIT_CHATWEBSITE">\n Edit ChatWebsite\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.interactionsgoto(chatWebsite, $event )" translate="CHAT.INTERACTIONS_CHATWEBSITE">\n Interactions ChatWebsite\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.offlinemessagesgoto(chatWebsite, $event )" translate="CHAT.OFFLINEMESSAGES_CHATWEBSITE">\n OfflineMessages ChatWebsite\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(chatWebsite, $event )" translate="CHAT.AGENTADD_CHATWEBSITE">\n AgentAdd ChatWebsite\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(chatWebsite, $event )" translate="CHAT.DELETE_CHATWEBSITE">\n Delete ChatWebsite\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.chatWebsites.count}}" md-on-paginate="vm.getChatWebsites" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / CHATWEBSITE TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD CHATWEBSITE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-chatWebsite-button" ng-click="vm.createOrEditChatWebsite($event)" aria-label="add chatWebsite" translate translate-attr-aria-label="CHAT.ADD_CHATWEBSITE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD CHATWEBSITE BUTTON --\x3e\n</div>'),e.put("app/main/apps/chat/views/chatWebsites/create/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.chatWebsite.name" ng-required="true" autofocus ng-disabled="!vm.newChatWebsite">\n\n <div ng-messages="chatWebsiteForm[\'name\'].$error" ng-show="chatWebsiteForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.KEY">key</label>\n <input type="text" name="key" ng-model="vm.chatWebsite.key" md-maxlength="5" ng-required="true">\n\n <div ng-messages="chatWebsiteForm[\'key\'].$error" ng-show="chatWebsiteForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.MOTIONADDRESS">MotionAddress</label>\n <input type="url" name="address" ng-model="vm.chatWebsite.address" md-maxlength="255" ng-required="true">\n\n <div ng-messages="chatWebsiteForm[\'address\'].$error" ng-show="chatWebsiteForm[\'address\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.MOTIONADDRESS_REQUIRED">MotionAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="CHAT.ERRORS.MOTIONADDRESS_MUST_VALID_URL">MotionAddress must be a valid url http://www.xcally.com</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.MOTIONADDRESS_MAX_LENGTH" translate-values=\'{max: 255}\'>MotionAddress must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.MOTIONPROXY">MotionProxy</label>\n <input type="url" name="remote" ng-model="vm.chatWebsite.remote" md-maxlength="255" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="CHAT.HELP.MOTIONPROXY"></span></div>\n <div ng-messages="chatWebsiteForm[\'remote\'].$error" ng-show="chatWebsiteForm[\'remote\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.MOTIONPROXY_REQUIRED">MotionProxy field is required</span>\n </div>\n <div ng-message="url">\n <span translate="CHAT.ERRORS.MOTIONPROXY_MUST_VALID_URL">MotionProxy must be a valid url http://www.xcally.com</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.MOTIONPROXY_MAX_LENGTH" translate-values=\'{max: 255}\'>MotionProxy must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.LIST">List</label>\n <md-select name="ListId" ng-model="vm.chatWebsite.ListId" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="CHAT.HELP.LIST"></span></div>\n <div ng-messages="chatWebsiteForm[\'ListId\'].$error" ng-show="chatWebsiteForm[\'ListId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.INTERVAL">Interval</label>\n <md-select name="IntervalId" ng-model="vm.chatWebsite.IntervalId">\n <md-option ng-value="null">Always</md-option>\n <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval" ng-disabled="IntervalId.canSelect === false">{{ IntervalId.name }}</md-option>\n </md-select>\n <div ng-messages="chatWebsiteForm[\'IntervalId\'].$error" ng-show="chatWebsiteForm[\'IntervalId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.INTERVAL_REQUIRED">Interval field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.chatWebsite.description">\n\n <div ng-messages="chatWebsiteForm[\'description\'].$error" ng-show="chatWebsiteForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newChatWebsite" ng-click="vm.saveChatWebsite()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteForm.$invalid || chatWebsiteForm.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newChatWebsite" ng-click="vm.addNewChatWebsite()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteForm.$invalid" aria-label="ADD" translate="CHAT.ADD_CHATWEBSITE" translate-attr-aria-label="CHAT.ADD_CHATWEBSITE">\n ADD CHATWEBSITE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newChatWebsite" ng-click="vm.deleteChatWebsite($event)" aria-label="DELETE" translate translate-attr-aria-label="CHAT.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="CHAT.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/agentadd/agentadd.html",'<md-dialog class="chatWebsite-dialog" aria-label="chatWebsite" ng-init="vm.onInit()">\n <form name="chatWebsiteForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="CHAT.AGENTADD_CHATWEBSITE">Add Agent to chatWebsite</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/agent/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.AGENT">Agent</label>\n <md-select name="agent" ng-model="vm.agent.agent" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="agent.name" ng-repeat="agent in vm.agents" ng-disabled="agent.canSelect === false">{{ agent.name }}</md-option>\n </md-select>\n <div ng-messages="chatWebsiteFormApp[\'agent\'].$error" ng-show="chatWebsiteFormApp[\'agent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.agent.timeout" min="0" max="2147483" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'timeout\'].$error" ng-show="chatWebsiteFormApp[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/amazonlex/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.ACCESSKEYID">accesskeyid</label>\n <input type="text" name="accesskeyid" ng-model="vm.amazonlex.accesskeyid" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'accesskeyid\'].$error" ng-show="chatWebsiteFormApp[\'accesskeyid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.ACCESSKEYID_REQUIRED">accesskeyid field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.SECRETACCESSKEY">secretaccesskey</label>\n <input type="text" name="secretaccesskey" ng-model="vm.amazonlex.secretaccesskey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'secretaccesskey\'].$error" ng-show="chatWebsiteFormApp[\'secretaccesskey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.SECRETACCESSKEY_REQUIRED">secretaccesskey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.LEXREGION">lexregion</label>\n <md-select name="lexregion" ng-model="vm.amazonlex.lexregion" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'us-east-1\'">US East (N. Virginia)</md-option>\n <md-option ng-value="\'us-west-2\'">US West (Oregon)</md-option>\n <md-option ng-value="\'eu-west-1\'">EU (Ireland)</md-option>\n <md-option ng-value="\'ap-southeast-2\'">Asia Pacific (Sydney)</md-option>\n </md-select>\n <div ng-messages="chatWebsiteFormApp[\'lexregion\'].$error" ng-show="chatWebsiteFormApp[\'lexregion\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.LEXREGION_REQUIRED">lexregion field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.BOTNAME">botname</label>\n <input type="text" name="botname" ng-model="vm.amazonlex.botname" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'botname\'].$error" ng-show="chatWebsiteFormApp[\'botname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.BOTNAME_REQUIRED">botname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.amazonlex.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="CHAT.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="chatWebsiteFormApp[\'welcomemessage\'].$error" ng-show="chatWebsiteFormApp[\'welcomemessage\'].$touched" role="alert">\n\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/autoreply/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.TIMES">times</label>\n <md-select name="times" ng-model="vm.autoreply.times" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="2">One Time</md-option>\n <md-option ng-value="0">Always</md-option>\n <md-option ng-value="1">First Message</md-option>\n </md-select>\n <div ng-messages="chatWebsiteFormApp[\'times\'].$error" ng-show="chatWebsiteFormApp[\'times\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TIMES_REQUIRED">times field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.TEXT">Text</label>\n <textarea name="text" ng-model="vm.autoreply.text" required></textarea>\n\n <div ng-messages="chatWebsiteFormApp[\'text\'].$error" ng-show="chatWebsiteFormApp[\'text\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TEXT_REQUIRED">Text field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/close/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.DISPOSITION">Disposition</label>\n <input type="text" name="disposition" ng-model="vm.close.disposition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'disposition\'].$error" ng-show="chatWebsiteFormApp[\'disposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.DISPOSITION_REQUIRED">Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/dialogflow/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.dialogflow.key" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'key\'].$error" ng-show="chatWebsiteFormApp[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.KEY_REQUIRED">Key field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflow.language" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'da\'">Danish</md-option>\n <md-option ng-value="\'en\'">English</md-option>\n <md-option ng-value="\'de\'">German</md-option>\n <md-option ng-value="\'it\'">Italian</md-option>\n <md-option ng-value="\'es\'">Spanish</md-option>\n <md-option ng-value="\'fr\'">French</md-option>\n <md-option ng-value="\'id\'">Indonesian</md-option>\n <md-option ng-value="\'ja\'">Japanese</md-option>\n <md-option ng-value="\'ko\'">Korean (South Korea)</md-option>\n <md-option ng-value="\'nl\'">Dutch</md-option>\n <md-option ng-value="\'no\'">Norwegian</md-option>\n <md-option ng-value="\'pt\'">Portuguese (European)</md-option>\n <md-option ng-value="\'pt-br\'">Portuguese (Nrazilian)</md-option>\n <md-option ng-value="\'ru\'">Russian</md-option>\n <md-option ng-value="\'sv\'">Swedish</md-option>\n <md-option ng-value="\'th\'">Thai</md-option>\n <md-option ng-value="\'uk\'">Ukrainian</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese (Simplified)</md-option>\n <md-option ng-value="\'zh-HK\'">Chinese (Hong Kong)</md-option>\n <md-option ng-value="\'zh-TW\'">Chinese (Traditional)</md-option>\n </md-select>\n <div ng-messages="chatWebsiteFormApp[\'language\'].$error" ng-show="chatWebsiteFormApp[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.LANGUAGE_REQUIRED">language field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.dialogflow.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="CHAT.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="chatWebsiteFormApp[\'welcomemessage\'].$error" ng-show="chatWebsiteFormApp[\'welcomemessage\'].$touched" role="alert">\n\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/dialogflowv2/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.PROJECTID">ProjectID</label>\n <input type="text" name="projectId" ng-model="vm.dialogflowv2.projectId" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'projectId\'].$error" ng-show="chatWebsiteFormApp[\'projectId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.PROJECTID_REQUIRED">ProjectID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.CLIENTEMAIL">ClientEmail</label>\n <input type="text" name="clientEmail" ng-model="vm.dialogflowv2.clientEmail" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'clientEmail\'].$error" ng-show="chatWebsiteFormApp[\'clientEmail\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.CLIENTEMAIL_REQUIRED">ClientEmail field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.PRIVATEKEY">PrivateKey</label>\n <textarea name="privateKey" ng-model="vm.dialogflowv2.privateKey" required></textarea>\n\n <div ng-messages="chatWebsiteFormApp[\'privateKey\'].$error" ng-show="chatWebsiteFormApp[\'privateKey\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="CHAT.ERRORS.PRIVATEKEY_REQUIRED">PrivateKey field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflowv2.language" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'zh-HK\'">Chinese (Cantonese)</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese (Simplified)</md-option>\n <md-option ng-value="\'zh-TW\'">Chinese (Traditional)</md-option>\n <md-option ng-value="\'da\'">Danish</md-option>\n <md-option ng-value="\'nl\'">Dutch</md-option>\n <md-option ng-value="\'en\'">English</md-option>\n <md-option ng-value="\'en-AU\'">English (Australia)</md-option>\n <md-option ng-value="\'en-CA\'">English (Canada)</md-option>\n <md-option ng-value="\'en-GB\'">English (Great Britain)</md-option>\n <md-option ng-value="\'en-IN\'">English (India)</md-option>\n <md-option ng-value="\'en-US\'">English (US)</md-option>\n <md-option ng-value="\'fr\'">French</md-option>\n <md-option ng-value="\'fr-CA\'">French (Canada)</md-option>\n <md-option ng-value="\'fr-FR\'">\'France (France)</md-option>\n <md-option ng-value="\'de\'">German</md-option>\n <md-option ng-value="\'hi\'">Hindi</md-option>\n <md-option ng-value="\'id\'">Indonesian</md-option>\n <md-option ng-value="\'it\'">Italian</md-option>\n <md-option ng-value="\'ja\'">Japanese</md-option>\n <md-option ng-value="\'ko\'">Korean</md-option>\n <md-option ng-value="\'no\'">Norwegian</md-option>\n <md-option ng-value="\'pl\'">Polish</md-option>\n <md-option ng-value="\'pt-BR\'">Portuguese (Brazil)</md-option>\n <md-option ng-value="\'pt-PT\'">Portuguese (Portugal)</md-option>\n <md-option ng-value="\'ru\'">Russian</md-option>\n <md-option ng-value="\'es\'">Spanish</md-option>\n <md-option ng-value="\'es-419\'">Spanish (Latin America)</md-option>\n <md-option ng-value="\'es-ES\'">Spanish (Spain)</md-option>\n <md-option ng-value="\'sw\'">Swedish</md-option>\n <md-option ng-value="\'th\'">Thai</md-option>\n <md-option ng-value="\'tr\'">Turkish</md-option>\n <md-option ng-value="\'uk\'">Ukrainian</md-option>\n </md-select>\n <div ng-messages="chatWebsiteFormApp[\'language\'].$error" ng-show="chatWebsiteFormApp[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.LANGUAGE_REQUIRED">language field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.dialogflowv2.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="CHAT.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="chatWebsiteFormApp[\'welcomemessage\'].$error" ng-show="chatWebsiteFormApp[\'welcomemessage\'].$touched" role="alert">\n\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/gotoif/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.CONDITION">Condition</label>\n <input type="text" name="condition" ng-model="vm.gotoif.condition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'condition\'].$error" ng-show="chatWebsiteFormApp[\'condition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.CONDITION_REQUIRED">Condition field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.TRUEPRIORITY">truepriority</label>\n <input type="number" name="truepriority" ng-model="vm.gotoif.truepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'truepriority\'].$error" ng-show="chatWebsiteFormApp[\'truepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TRUEPRIORITY_REQUIRED">truepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">truepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.FALSEPRIORITY">falsepriority</label>\n <input type="number" name="falsepriority" ng-model="vm.gotoif.falsepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'falsepriority\'].$error" ng-show="chatWebsiteFormApp[\'falsepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.FALSEPRIORITY_REQUIRED">falsepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">falsepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/gotop/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.PRIORITY">Priority</label>\n <input type="number" name="priority" ng-model="vm.gotop.priority" min="0" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'priority\'].$error" ng-show="chatWebsiteFormApp[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Priority must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/interval/dialog.html",'<md-dialog class="interval-dialog" aria-label="New Interval">\n <form name="intervalForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select ng-model="vm.type" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="type" ng-repeat=\'type in vm.types\'>{{ type | ucfirst }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.type === \'list\'">\n <label translate="TOOLS.INTERVALS">Intervals</label>\n <md-select ng-model="vm.interval.IntervalId" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals">{{ interval.name }}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!-- TIMERANGE START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.TIME_RANGE">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <div class="md-block" flex>\n <mdp-time-picker name="timeRangeFrom" mdp-placeholder="FROM" ng-model="vm.timeRangeFrom" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <div ng-messages="intervalForm.timeRangeFrom.$error" ng-show="intervalForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_FROM_INVALID">Time Range From field is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n <div class="md-block" flex ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_INVALID">Time Range To field is invalid</span>\n </div>\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </div>\n \x3c!-- TIMERANGE END --\x3e\n\n \x3c!-- DAYSOFWEEK START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.WEEK_DAYS">Week Days</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.dayOfWeekFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container flex class="md-block" ng-if="vm.dayOfWeekFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="dayOfWeekTo" ng-model="vm.dayOfWeekTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- DAYSOFWEEK END --\x3e\n\n \x3c!-- MONTHDAY START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTH_DAYS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthDayFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthDayFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthDayTo" ng-model="vm.monthDayTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTHDAY END --\x3e\n\n \x3c!-- MONTH START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTHS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n </md-select>\n\n </md-input-container>\n\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthTo" ng-model="vm.monthTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTH END --\x3e\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="!vm.newInterval && vm.crudPermissions.canEdit" ng-click="vm.saveInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid || intervalForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.newInterval && vm.crudPermissions.canEdit" ng-click="vm.addNewInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_INTERVAL" translate-attr-aria-label="TOOLS.ADD_INTERVAL">\n ADD INTERVAL\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/noop/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.VALUE">Value</label>\n <input type="text" name="value" ng-model="vm.noop.value" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'value\'].$error" ng-show="chatWebsiteFormApp[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/queue/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.QUEUE">Queue</label>\n <md-select name="queue" ng-model="vm.queue.queue" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="queue.name" ng-repeat="queue in vm.queues" ng-disabled="queue.canSelect === false">{{ queue.name }}</md-option>\n </md-select>\n <div ng-messages="chatWebsiteFormApp[\'queue\'].$error" ng-show="chatWebsiteFormApp[\'queue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.queue.timeout" min="0" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'timeout\'].$error" ng-show="chatWebsiteFormApp[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/system/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.COMMAND">Command</label>\n <input type="text" name="command" ng-model="vm.system.command" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'command\'].$error" ng-show="chatWebsiteFormApp[\'command\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.COMMAND_REQUIRED">Command field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.VARIABLE">Variable</label>\n <md-select name="variable" ng-model="vm.system.variable" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables" ng-disabled="variable.canSelect === false">{{ variable.name }}</md-option>\n </md-select>\n <div ng-messages="chatWebsiteFormApp[\'variable\'].$error" ng-show="chatWebsiteFormApp[\'variable\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.VARIABLE_REQUIRED">Variable field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/tag/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.TAG">Tag</label>\n <md-select name="tag" ng-model="vm.tag.tag" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags" ng-disabled="tag.canSelect === false">{{ tag.name }}</md-option>\n </md-select>\n <div ng-messages="chatWebsiteFormApp[\'tag\'].$error" ng-show="chatWebsiteFormApp[\'tag\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TAG_REQUIRED">Tag field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/chatCannedAnswers/dialog.html",'<md-dialog class="chatCannedAnswer-dialog" aria-label="New ChatCannedAnswer">\n <form name="chatCannedAnswerForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.KEY">Key</label>\n <input type="" name="key" ng-model="vm.chatCannedAnswer.key" md-maxlength="255" ng-required="true" autofocus>\n\n <div ng-messages="chatCannedAnswerForm[\'key\'].$error" ng-show="chatCannedAnswerForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.KEY_REQUIRED">Key field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.VALUE">Value</label>\n <textarea name="value" ng-model="vm.chatCannedAnswer.value" required></textarea>\n\n <div ng-messages="chatCannedAnswerForm[\'value\'].$error" ng-show="chatCannedAnswerForm[\'value\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="CHAT.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.chatCannedAnswer.description">\n\n <div ng-messages="chatCannedAnswerForm[\'description\'].$error" ng-show="chatCannedAnswerForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newChatCannedAnswer" ng-click="vm.saveChatCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="chatCannedAnswerForm.$invalid || chatCannedAnswerForm.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newChatCannedAnswer" ng-click="vm.addNewChatCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="chatCannedAnswerForm.$invalid" aria-label="ADD" translate="CHAT.ADD_CHATCANNEDANSWER" translate-attr-aria-label="CHAT.ADD_CHATCANNEDANSWER">\n ADD CHATCANNEDANSWER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newChatCannedAnswer" ng-click="vm.deleteChatCannedAnswer($event)" aria-label="DELETE" translate translate-attr-aria-label="CHAT.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="CHAT.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/offlineMessages/dialog.html",'<md-dialog class="offlineMessage-dialog" aria-label="New OfflineMessage">\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-content flex layout-padding>\n <pre ng-if="vm.isHtml">{{vm.message.body}}</pre>\n <div ng-if="!vm.isHtml" ng-bind-html-unsafe="vm.message.body"></div>\n\n <span ng-repeat="attachment in vm.attachments">\n <md-button class="md-icon-button no-margin no-padding" ng-click="vm.download(attachment)">\n <md-icon class="no-margin material-icons" aria-label="Attachment">attach_file</md-icon>\n </md-button>\n <span>{{attachment.name}}</span><br />\n </span>\n </md-content>\n\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/proactive/dialog.html",'<md-dialog class="chatProactiveAction-dialog" aria-label="New ChatProactiveAction">\n <form name="chatProactiveActionForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.NAME">Name</label>\n <input type="" name="name" ng-model="vm.chatProactiveAction.name" ng-required="true" autofocus>\n\n <div ng-messages="chatProactiveActionForm[\'name\'].$error" ng-show="chatProactiveActionForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.TYPE">Type</label>\n <md-select name="type" ng-model="vm.chatProactiveAction.type">\n\n <md-option ng-value="\'mouseOver\'"> {{ \'CHAT.MOUSEOVER\' | translate }} </md-option>\n\n <md-option ng-value="\'timeout\'"> {{ \'CHAT.TIMEOUT\' | translate }} </md-option>\n </md-select>\n <div ng-messages="chatProactiveActionForm[\'type\'].$error" ng-show="chatProactiveActionForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatProactiveAction.type === \'mouseOver\'" class="md-block">\n <label translate="CHAT.SELECTOR">Selector</label>\n <input type="" name="selector" ng-model="vm.chatProactiveAction.selector" ng-required="true">\n\n <div ng-messages="chatProactiveActionForm[\'selector\'].$error" ng-show="chatProactiveActionForm[\'selector\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.SELECTOR_REQUIRED">Selector field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatProactiveAction.type === \'timeout\'" class="md-block">\n <label translate="CHAT.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.chatProactiveAction.timeout" min="1" ng-required="true">\n\n <div ng-messages="chatProactiveActionForm[\'timeout\'].$error" ng-show="chatProactiveActionForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newChatProactiveAction" ng-click="vm.saveChatProactiveAction()" class="send-button md-accent md-raised" ng-disabled="chatProactiveActionForm.$invalid || chatProactiveActionForm.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newChatProactiveAction" ng-click="vm.addNewChatProactiveAction()" class="send-button md-accent md-raised" ng-disabled="chatProactiveActionForm.$invalid" aria-label="ADD" translate="CHAT.ADD_CHATPROACTIVEACTION" translate-attr-aria-label="CHAT.ADD_CHATPROACTIVEACTION">\n ADD CHATPROACTIVEACTION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newChatProactiveAction" ng-click="vm.deleteChatProactiveAction($event)" aria-label="DELETE" translate translate-attr-aria-label="CHAT.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="CHAT.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/view.html",'<div id="chat-chatWebsite" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-chatWebsites-button md-icon-button" aria-label="Go to chatWebsites" ng-click="vm.gotoChatWebsites()" translate translate-attr-aria-label="CHAT.GO_TO_CHATWEBSITES">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="chatWebsite-image" hide-xs>\n <img ng-src="assets/images/business/chatWebsites.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.chatWebsite.id}}\n <span ng-if="vm.chatWebsite.name">{{vm.chatWebsite.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="CHAT.CREATED_AT"></span> <span>{{vm.chatWebsite.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.chatWebsite, $event)" class="md-fab md-warn md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="CHAT.AGENTADD_CHATWEBSITE"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveChatWebsite()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (notificationForm.$invalid) || (transferForm.$invalid) || (scriptForm.$invalid) || (intervalForm.$invalid) || (dispositionForm.$invalid) || (appearanceForm.$invalid) || (onlinestatusForm.$invalid) || (offlinestatusForm.$invalid) || (closingformForm.$invalid) || (unmanagedstatusForm.$invalid) || (interactionForm.$invalid) || (whitelabelForm.$invalid) || (logoForm.$invalid) || (agentAvatarForm.$invalid) || (customerAvatarForm.$invalid) || (systemAvatarForm.$invalid) || (chatFormOnlineForm.$invalid) || (chatFormOfflineForm.$invalid) || (proactiveForm.$invalid) || (chatDispositionsForm.$invalid) || (chatCannedAnswersForm.$invalid) || (vidaooForm.$invalid) || (actionsForm.$invalid) || (interactionsForm.$invalid) || (offlineMessagesForm.$invalid)" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatWebsite-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="CHAT.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.chatWebsite.name" ng-required="true" autofocus disabled>\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.KEY">key</label>\n <input type="text" name="key" ng-model="vm.chatWebsite.key" md-maxlength="5" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'key\'].$error" ng-show="generalForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.MOTIONADDRESS">MotionAddress</label>\n <input type="url" name="address" ng-model="vm.chatWebsite.address" md-maxlength="255" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'address\'].$error" ng-show="generalForm[\'address\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.MOTIONADDRESS_REQUIRED">MotionAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="CHAT.ERRORS.MOTIONADDRESS_MUST_VALID_URL">MotionAddress must be a valid url http://www.xcally.com</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.MOTIONADDRESS_MAX_LENGTH" translate-values=\'{max: 255}\'>MotionAddress must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.LIST">List</label>\n <md-select name="ListId" ng-model="vm.chatWebsite.ListId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="CHAT.HELP.LIST"></span></div>\n <div ng-messages="generalForm[\'ListId\'].$error" ng-show="generalForm[\'ListId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.fidelity" class="md-block">\n <label translate="CHAT.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.chatWebsite.timeout" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'timeout\'].$error" ng-show="generalForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.WAITFORTHEASSIGNEDAGENT">WaitForTheAssignedAgent</label>\n <input type="number" name="waitForTheAssignedAgent" ng-model="vm.chatWebsite.waitForTheAssignedAgent" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'waitForTheAssignedAgent\'].$error" ng-show="generalForm[\'waitForTheAssignedAgent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.WAITFORTHEASSIGNEDAGENT_REQUIRED">WaitForTheAssignedAgent field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.chatWebsite.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="chatWebsite-detail-form-container notification md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.NOTIFICATION">NOTIFICATION</div>\n </div>\n <form name="notificationForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.notificationSound" aria-label="notificationSound" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.NOTIFICATIONSOUND">notificationSound</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.notificationShake" aria-label="notificationShake" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.NOTIFICATIONSHAKE">notificationShake</span></md-switch>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="CHAT.NOTIFICATIONTEMPLATE">notificationTemplate</label>\n <textarea aria-label="notificationTemplate notificationTemplate" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', removePlugins: \'magicline\' }" ng-model="vm.chatWebsite.notificationTemplate"></textarea>\n </div>\n\n </form>\n </div>\n <div class="chatWebsite-detail-form-container transfer md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.TRANSFER">TRANSFER</div>\n </div>\n <form name="transferForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.queueTransfer" aria-label="queueTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.QUEUETRANSFER">queueTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.queueTransfer == true" class="md-block">\n <label translate="CHAT.QUEUETRANSFERTIMEOUT">queueTransferTimeout</label>\n <input type="number" name="queueTransferTimeout" ng-model="vm.chatWebsite.queueTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'queueTransferTimeout\'].$error" ng-show="transferForm[\'queueTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.QUEUETRANSFERTIMEOUT_REQUIRED">queueTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.agentTransfer" aria-label="agentTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.AGENTTRANSFER">agentTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.agentTransfer == true" class="md-block">\n <label translate="CHAT.AGENTTRANSFERTIMEOUT">agentTransferTimeout</label>\n <input type="number" name="agentTransferTimeout" ng-model="vm.chatWebsite.agentTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'agentTransferTimeout\'].$error" ng-show="transferForm[\'agentTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.AGENTTRANSFERTIMEOUT_REQUIRED">agentTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatWebsite-detail-form-container script md-background-bg md-whiteframe-1dp">\n <div ng-controller="ChatWebsiteScriptController as vm_ac" ng-init="vm_ac.init(vm.chatWebsite)" class="content" md-background-bg>\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.SCRIPT">SCRIPT</div>\n </div>\n\n <form name="scriptForm" flex="100" novalidate>\n <md-input-container class="md-block">\n <label translate="CHAT.TOKEN">Token</label>\n <input type="text" name="token" ng-model="vm_ac.chatWebsite.token" autofocus ng-disabled="true">\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.MOTIONPROXY">MotionProxy</label>\n <input type="url" name="remote" ng-model="vm_ac.chatWebsite.remote" required>\n <div class="hint"><span translate="CHAT.HELP.MOTIONPROXY"></span></div>\n <div ng-messages="scriptForm[\'remote\'].$error" ng-show="scriptForm[\'remote\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.MOTIONPROXY_REQUIRED">Motion Proxy field is required</span>\n </div>\n <div ng-message="url">\n <span translate="CHAT.ERRORS.MOTIONPROXY_MUST_VALID_URL">Motion Proxy must be a valid url e.g.: http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.WEBSITESCRIPT">WebsiteScript</label>\n <div>\n <pre style="font-size: 13px;">\n {{vm_ac.start}} {{vm_ac.script}} {{vm_ac.end}}\n </pre>\n </div>\n <div class="hint"><span translate="CHAT.HELP.COPYSCRIPTTOCLIPBOARD"></span></div>\n </md-input-container>\n </form>\n </div>\n\n </div>\n <div class="chatWebsite-detail-form-container interval md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.INTERVAL">INTERVAL</div>\n </div>\n <form name="intervalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="CHAT.INTERVAL">Interval</label>\n <md-select name="IntervalId" ng-model="vm.chatWebsite.IntervalId" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Always</md-option>\n <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval" ng-disabled="IntervalId.canSelect === false">{{ IntervalId.name }}</md-option>\n </md-select>\n <div ng-messages="intervalForm[\'IntervalId\'].$error" ng-show="intervalForm[\'IntervalId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.INTERVAL_REQUIRED">Interval field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.TIMEZONE">Timezone</label>\n <ms-timezone name="timezone" ng-model="vm.chatWebsite.timezone" ng-disabled="!vm.crudPermissions.canEdit"></ms-timezone>\n <div class="hint"><span translate="CHAT.HELP.TIMEZONE"></span></div>\n <div ng-messages="intervalForm[\'timezone\'].$error" ng-show="intervalForm[timezone].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TIMEZONE_REQUIRED">Timezone field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="chatWebsite-detail-form-container disposition md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.DISPOSITION">DISPOSITION</div>\n </div>\n <form name="dispositionForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.mandatoryDisposition" class="md-block">\n <label translate="CHAT.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.chatWebsite.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="CHAT.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="dispositionForm[\'mandatoryDispositionPauseId\'].$error" ng-show="dispositionForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.SNIPPET">SNIPPET</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatWebsite-detail-form-container appearance md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.APPEARANCE">APPEARANCE</div>\n </div>\n <form name="appearanceForm" novalidate>\n <div flex md-color-picker ng-model="vm.chatWebsite.color" label="{{\'CHAT.MAINCOLOR\' | translate}}" md-color-hex="true" md-color-rgb="false" md-color-hsl="false" md-color-history="false" md-color-material-palette="false" md-color-alpha-channel="false" open-on-input="true"></div>\n <div flex md-color-picker ng-model="vm.chatWebsite.color_button" label="{{\'CHAT.BUTTONCOLOR\' | translate}}" md-color-hex="true" md-color-rgb="false" md-color-hsl="false" md-color-history="false" md-color-material-palette="false" md-color-alpha-channel="false" open-on-input="true"></div>\n <div flex md-color-picker ng-model="vm.chatWebsite.textColor" label="{{\'CHAT.TEXTCOLOR\' | translate}}" md-color-hex="true" md-color-rgb="false" md-color-hsl="false" md-color-history="false" md-color-material-palette="false" md-color-alpha-channel="false" open-on-input="true"></div>\n <div flex md-color-picker ng-model="vm.chatWebsite.backgroundColor" label="{{\'CHAT.BACKGROUNDCOLOR\' | translate}}" md-color-hex="true" md-color-rgb="false" md-color-hsl="false" md-color-history="false" md-color-material-palette="false" md-color-alpha-channel="false" open-on-input="true"></div>\n <md-input-container class="md-block">\n <label translate="CHAT.FONTSIZE">fontSize</label>\n <input type="number" name="fontSize" ng-model="vm.chatWebsite.fontSize" min="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="appearanceForm[\'fontSize\'].$error" ng-show="appearanceForm[\'fontSize\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.FONTSIZE_REQUIRED">fontSize field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.FONTSIZE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">fontSize must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.HEADERSHAPE">headershape</label>\n <md-select name="header_shape" ng-model="vm.chatWebsite.header_shape" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'rounded\'"> {{ \'CHAT.ROUNDED\' | translate }} </md-option>\n\n <md-option ng-value="\'squared\'"> {{ \'CHAT.SQUARED\' | translate }} </md-option>\n </md-select>\n <div ng-messages="appearanceForm[\'header_shape\'].$error" ng-show="appearanceForm[\'header_shape\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.HEADERSHAPE_REQUIRED">headershape field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.showAgentAvatar" aria-label="ShowAgentAvatar" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.SHOWAGENTAVATAR">ShowAgentAvatar</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.showCustomerAvatar" aria-label="showCustomerAvatar" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.SHOWCUSTOMERAVATAR">showCustomerAvatar</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.SNIPPETSWIPEOUT">snippetSwipeOut</label>\n <md-select name="alignment" ng-model="vm.chatWebsite.alignment" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'bottom_right\'"> {{ \'CHAT.BOTTOM_RIGHT\' | translate }} </md-option>\n\n <md-option ng-value="\'right\'"> {{ \'CHAT.RIGHT\' | translate }} </md-option>\n\n <md-option ng-value="\'left\'"> {{ \'CHAT.LEFT\' | translate }} </md-option>\n </md-select>\n <div ng-messages="appearanceForm[\'alignment\'].$error" ng-show="appearanceForm[\'alignment\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.SNIPPETSWIPEOUT_REQUIRED">snippetSwipeOut field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.alignment !== \'bottom_right\'" class="md-block">\n <label translate="CHAT.VERTICALPOSITION">verticalPosition</label>\n <input type="number" name="verticalAlignment" ng-model="vm.chatWebsite.verticalAlignment" min="0" max="100" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="CHAT.HELP.VERTICALPOSITION"></span></div>\n <div ng-messages="appearanceForm[\'verticalAlignment\'].$error" ng-show="appearanceForm[\'verticalAlignment\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.VERTICALPOSITION_REQUIRED">verticalPosition field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.VERTICALPOSITION_MUST_BE_GREATER_THAN_OR_EQUAL_TO">verticalPosition must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.VERTICALPOSITION_MUST_BE_LESS_THAN_OR_EQUAL_TO">verticalPosition must be a valid greater or equal than</span> <span>100</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.MESSAGESALIGNMENT">messagesAlignment</label>\n <md-select name="messagesAlignment" ng-model="vm.chatWebsite.messagesAlignment" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'alternate\'"> {{ \'CHAT.ALTERNATE\' | translate }} </md-option>\n\n <md-option ng-value="\'centered\'"> {{ \'CHAT.CENTERED\' | translate }} </md-option>\n </md-select>\n <div ng-messages="appearanceForm[\'messagesAlignment\'].$error" ng-show="appearanceForm[\'messagesAlignment\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.MESSAGESALIGNMENT_REQUIRED">messagesAlignment field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.DEFAULTTITLE">defaultTitle</label>\n <input type="text" name="defaultTitle" ng-model="vm.chatWebsite.defaultTitle" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="appearanceForm[\'defaultTitle\'].$error" ng-show="appearanceForm[\'defaultTitle\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.DEFAULTTITLE_REQUIRED">defaultTitle field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.DEFAULTTITLE_MAX_LENGTH" translate-values=\'{max: 255}\'>defaultTitle must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="chatWebsite-detail-form-container onlinestatus md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.ONLINESTATUS">ONLINESTATUS</div>\n </div>\n <form name="onlinestatusForm" novalidate>\n <md-input-container class="md-block">\n <label translate="CHAT.HEADER_ONLINE">header_online</label>\n <input type="text" name="header_online" ng-model="vm.chatWebsite.header_online" md-maxlength="255" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="onlinestatusForm[\'header_online\'].$error" ng-show="onlinestatusForm[\'header_online\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.HEADER_ONLINE_REQUIRED">header_online field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.HEADER_ONLINE_MAX_LENGTH" translate-values=\'{max: 255}\'>header_online must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.START_CHAT_BUTTON">start_chat_button</label>\n <input type="text" name="start_chat_button" ng-model="vm.chatWebsite.start_chat_button" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="onlinestatusForm[\'start_chat_button\'].$error" ng-show="onlinestatusForm[\'start_chat_button\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.START_CHAT_BUTTON_REQUIRED">start_chat_button field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.START_CHAT_BUTTON_MAX_LENGTH" translate-values=\'{max: 255}\'>start_chat_button must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="chatWebsite-detail-form-container offlinestatus md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.OFFLINESTATUS">OFFLINESTATUS</div>\n </div>\n <form name="offlinestatusForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.hideWhenOffline" aria-label="hideWhenOffline" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.HIDEWHENOFFLINE">hideWhenOffline</span></md-switch>\n <div class="hint"><span translate="CHAT.HELP.HIDEWHENOFFLINE"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.HEADER_OFFLINE">header_offline</label>\n <input type="text" name="header_offline" ng-model="vm.chatWebsite.header_offline" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="offlinestatusForm[\'header_offline\'].$error" ng-show="offlinestatusForm[\'header_offline\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.HEADER_OFFLINE_REQUIRED">header_offline field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.HEADER_OFFLINE_MAX_LENGTH" translate-values=\'{max: 255}\'>header_offline must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.OFFLINE_CHAT_BUTTON">offline_chat_button</label>\n <input type="text" name="offline_chat_button" ng-model="vm.chatWebsite.offline_chat_button" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="offlinestatusForm[\'offline_chat_button\'].$error" ng-show="offlinestatusForm[\'offline_chat_button\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.OFFLINE_CHAT_BUTTON_REQUIRED">offline_chat_button field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.OFFLINE_CHAT_BUTTON_MAX_LENGTH" translate-values=\'{max: 255}\'>offline_chat_button must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.OFFLINEMESSAGESUBJECT">offlineMessageSubject</label>\n <input type="text" name="offlineMessageSubject" ng-model="vm.chatWebsite.offlineMessageSubject" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="offlinestatusForm[\'offlineMessageSubject\'].$error" ng-show="offlinestatusForm[\'offlineMessageSubject\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.OFFLINEMESSAGESUBJECT_REQUIRED">offlineMessageSubject field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.OFFLINEMESSAGESUBJECT_MAX_LENGTH" translate-values=\'{max: 255}\'>offlineMessageSubject must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.OFFLINEMESSAGEBODY">offlineMessageBody</label>\n <input type="text" name="offlineMessageBody" ng-model="vm.chatWebsite.offlineMessageBody" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="offlinestatusForm[\'offlineMessageBody\'].$error" ng-show="offlinestatusForm[\'offlineMessageBody\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.OFFLINEMESSAGEBODY_REQUIRED">offlineMessageBody field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.OFFLINEMESSAGEBODY_MAX_LENGTH" translate-values=\'{max: 255}\'>offlineMessageBody must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="chatWebsite-detail-form-container closingform md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.CLOSINGFORM">CLOSINGFORM</div>\n </div>\n <form name="closingformForm" novalidate>\n <md-input-container class="md-block">\n <label translate="CHAT.CLOSINGMESSAGE">closingMessage</label>\n <textarea name="closingMessage" ng-model="vm.chatWebsite.closingMessage" md-maxlength="255" required autofocus></textarea>\n\n <div ng-messages="closingformForm[\'closingMessage\'].$error" ng-show="closingformForm[\'closingMessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="CHAT.ERRORS.CLOSINGMESSAGE_REQUIRED">closingMessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.CLOSINGMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>closingMessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.SKIPMESSAGEBUTTON">skipMessageButton</label>\n <input type="text" name="skipMessageButton" ng-model="vm.chatWebsite.skipMessageButton" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="closingformForm[\'skipMessageButton\'].$error" ng-show="closingformForm[\'skipMessageButton\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.SKIPMESSAGEBUTTON_REQUIRED">skipMessageButton field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.SKIPMESSAGEBUTTON_MAX_LENGTH" translate-values=\'{max: 255}\'>skipMessageButton must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.enableRating" aria-label="enableRating" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.ENABLERATING">enableRating</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.enableRating" class="md-block">\n <label translate="CHAT.RATINGTYPE">ratingType</label>\n <md-select name="ratingType" ng-model="vm.chatWebsite.ratingType" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'star\'">Star</md-option>\n <md-option ng-value="\'thumb\'">Thumb</md-option>\n </md-select>\n <div ng-messages="closingformForm[\'ratingType\'].$error" ng-show="closingformForm[\'ratingType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.RATINGTYPE_REQUIRED">ratingType field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.enableRating && vm.chatWebsite.ratingType === \'star\'" class="md-block">\n <label translate="CHAT.RATINGSTARSNUMBER">ratingStarsNumber</label>\n <input type="number" name="ratingStarsNumber" ng-model="vm.chatWebsite.ratingStarsNumber" min="2" max="5" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="closingformForm[\'ratingStarsNumber\'].$error" ng-show="closingformForm[\'ratingStarsNumber\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.RATINGSTARSNUMBER_REQUIRED">ratingStarsNumber field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.RATINGSTARSNUMBER_MUST_BE_GREATER_THAN_OR_EQUAL_TO">ratingStarsNumber must be a valid greater or equal than</span> <span>2</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.RATINGSTARSNUMBER_MUST_BE_LESS_THAN_OR_EQUAL_TO">ratingStarsNumber must be a valid greater or equal than</span> <span>5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.enableFeedback" aria-label="enableFeedback" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.ENABLEFEEDBACK">enableFeedback</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.enableFeedback" class="md-block">\n <label translate="CHAT.FEEDBACKTITLE">feedbackTitle</label>\n <input type="text" name="feedbackTitle" ng-model="vm.chatWebsite.feedbackTitle" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="closingformForm[\'feedbackTitle\'].$error" ng-show="closingformForm[\'feedbackTitle\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.FEEDBACKTITLE_REQUIRED">feedbackTitle field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.FEEDBACKTITLE_MAX_LENGTH" translate-values=\'{max: 255}\'>feedbackTitle must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.forwardTranscript" aria-label="forwardTranscript" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.FORWARDTRANSCRIPT">forwardTranscript</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.forwardTranscript" class="md-block">\n <label translate="CHAT.FORWARDTRANSCRIPTMESSAGE">forwardTranscriptMessage</label>\n <input type="text" name="forwardTranscriptMessage" ng-model="vm.chatWebsite.forwardTranscriptMessage" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="closingformForm[\'forwardTranscriptMessage\'].$error" ng-show="closingformForm[\'forwardTranscriptMessage\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.FORWARDTRANSCRIPTMESSAGE_REQUIRED">forwardTranscriptMessage field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.FORWARDTRANSCRIPTMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>forwardTranscriptMessage must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.CLOSINGMESSAGEBUTTON">closingMessageButton</label>\n <input type="text" name="closingMessageButton" ng-model="vm.chatWebsite.closingMessageButton" md-maxlength="255" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="closingformForm[\'closingMessageButton\'].$error" ng-show="closingformForm[\'closingMessageButton\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.CLOSINGMESSAGEBUTTON_REQUIRED">closingMessageButton field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.CLOSINGMESSAGEBUTTON_MAX_LENGTH" translate-values=\'{max: 255}\'>closingMessageButton must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="chatWebsite-detail-form-container unmanagedstatus md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.UNMANAGEDSTATUS">UNMANAGEDSTATUS</div>\n </div>\n <form name="unmanagedstatusForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.autoclose" aria-label="autoclose" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.AUTOCLOSE">autoclose</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.enableUnmanagedNote" aria-label="enableUnmanagedNote" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.ENABLEUNMANAGEDNOTE">enableUnmanagedNote</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.UNMANAGEDMESSAGE">unmanagedMessage</label>\n <input type="text" name="unmanagedMessage" ng-model="vm.chatWebsite.unmanagedMessage" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="unmanagedstatusForm[\'unmanagedMessage\'].$error" ng-show="unmanagedstatusForm[\'unmanagedMessage\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.UNMANAGEDMESSAGE_REQUIRED">unmanagedMessage field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.UNMANAGEDMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>unmanagedMessage must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.SKIPUNMANAGED">skipUnmanaged</label>\n <input type="text" name="skipUnmanaged" ng-model="vm.chatWebsite.skipUnmanaged" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="unmanagedstatusForm[\'skipUnmanaged\'].$error" ng-show="unmanagedstatusForm[\'skipUnmanaged\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.SKIPUNMANAGED_REQUIRED">skipUnmanaged field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.SKIPUNMANAGED_MAX_LENGTH" translate-values=\'{max: 255}\'>skipUnmanaged must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.enableUnmanagedNote" class="md-block">\n <label translate="CHAT.SENDUNMANAGED">sendUnmanaged</label>\n <input type="text" name="sendUnmanaged" ng-model="vm.chatWebsite.sendUnmanaged" md-maxlength="255" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="unmanagedstatusForm[\'sendUnmanaged\'].$error" ng-show="unmanagedstatusForm[\'sendUnmanaged\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.SENDUNMANAGED_REQUIRED">sendUnmanaged field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.SENDUNMANAGED_MAX_LENGTH" translate-values=\'{max: 255}\'>sendUnmanaged must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.enableUnmanagedNote" class="md-block">\n <label translate="CHAT.NOTETITLE">noteTitle</label>\n <input type="text" name="noteTitle" ng-model="vm.chatWebsite.noteTitle" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="unmanagedstatusForm[\'noteTitle\'].$error" ng-show="unmanagedstatusForm[\'noteTitle\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.NOTETITLE_REQUIRED">noteTitle field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.NOTETITLE_MAX_LENGTH" translate-values=\'{max: 255}\'>noteTitle must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="chatWebsite-detail-form-container interaction md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.INTERACTION">INTERACTION</div>\n </div>\n <form name="interactionForm" novalidate>\n <md-input-container class="md-block">\n <label translate="CHAT.AGENTIDENTIFIER">agentIdentifier</label>\n <md-select name="agentIdentifier" ng-model="vm.chatWebsite.agentIdentifier" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'website_alias\'"> {{ \'CHAT.WEBSITEALIAS\' | translate }} </md-option>\n\n <md-option ng-value="\'agent_alias\'"> {{ \'CHAT.AGENTALIAS\' | translate }} </md-option>\n\n <md-option ng-value="\'agent_fullname\'"> {{ \'CHAT.AGENTFULLNAME\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="CHAT.HELP.AGENTIDENTIFIER"></span></div>\n <div ng-messages="interactionForm[\'agentIdentifier\'].$error" ng-show="interactionForm[\'agentIdentifier\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.AGENTIDENTIFIER_REQUIRED">agentIdentifier field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.CUSTOMERALIAS">customerAlias</label>\n <input type="text" name="customerAlias" ng-model="vm.chatWebsite.customerAlias" md-maxlength="255" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="interactionForm[\'customerAlias\'].$error" ng-show="interactionForm[\'customerAlias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.CUSTOMERALIAS_REQUIRED">customerAlias field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.CUSTOMERALIAS_MAX_LENGTH" translate-values=\'{max: 255}\'>customerAlias must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.MESSAGEFONTSIZE">messageFontSize</label>\n <input type="number" name="messageFontSize" ng-model="vm.chatWebsite.messageFontSize" min="0" max="20" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="interactionForm[\'messageFontSize\'].$error" ng-show="interactionForm[\'messageFontSize\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.MESSAGEFONTSIZE_REQUIRED">messageFontSize field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.MESSAGEFONTSIZE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">messageFontSize must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.MESSAGEFONTSIZE_MUST_BE_LESS_THAN_OR_EQUAL_TO">messageFontSize must be a valid greater or equal than</span> <span>20</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.agentIdentifier === \'website_alias\'" class="md-block">\n <label translate="CHAT.WEBSITEALIAS">WebsiteAlias</label>\n <input type="text" name="agentAlias" ng-model="vm.chatWebsite.agentAlias" md-maxlength="255" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="CHAT.HELP.WEBSITEALIAS"></span></div>\n <div ng-messages="interactionForm[\'agentAlias\'].$error" ng-show="interactionForm[\'agentAlias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.WEBSITEALIAS_REQUIRED">WebsiteAlias field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.WEBSITEALIAS_MAX_LENGTH" translate-values=\'{max: 255}\'>WebsiteAlias must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.CLOSINGQUESTION">closingQuestion</label>\n <input type="text" name="closingQuestion" ng-model="vm.chatWebsite.closingQuestion" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="interactionForm[\'closingQuestion\'].$error" ng-show="interactionForm[\'closingQuestion\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.CLOSINGQUESTION_REQUIRED">closingQuestion field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.CLOSINGQUESTION_MAX_LENGTH" translate-values=\'{max: 255}\'>closingQuestion must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.FORMSUBMITSUCCESSMESSAGE">formSubmitSuccessMessage</label>\n <input type="text" name="formSubmitSuccessMessage" ng-model="vm.chatWebsite.formSubmitSuccessMessage" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="interactionForm[\'formSubmitSuccessMessage\'].$error" ng-show="interactionForm[\'formSubmitSuccessMessage\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.FORMSUBMITSUCCESSMESSAGE_REQUIRED">formSubmitSuccessMessage field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.FORMSUBMITSUCCESSMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>formSubmitSuccessMessage must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.FORMSUBMITFAILUREMESSAGE">formSubmitFailureMessage</label>\n <input type="text" name="formSubmitFailureMessage" ng-model="vm.chatWebsite.formSubmitFailureMessage" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="interactionForm[\'formSubmitFailureMessage\'].$error" ng-show="interactionForm[\'formSubmitFailureMessage\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.FORMSUBMITFAILUREMESSAGE_REQUIRED">formSubmitFailureMessage field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.FORMSUBMITFAILUREMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>formSubmitFailureMessage must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.enableCustomerWriting" aria-label="enableCustomerWriting" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.ENABLECUSTOMERWRITING">enableCustomerWriting</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="!vm.chatWebsite.enableCustomerWriting" class="md-block">\n <label translate="CHAT.WAITINGTITLE">waitingTitle</label>\n <input type="text" name="waitingTitle" ng-model="vm.chatWebsite.waitingTitle" md-maxlength="255" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="interactionForm[\'waitingTitle\'].$error" ng-show="interactionForm[\'waitingTitle\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.WAITINGTITLE_REQUIRED">waitingTitle field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.WAITINGTITLE_MAX_LENGTH" translate-values=\'{max: 255}\'>waitingTitle must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="!vm.chatWebsite.enableCustomerWriting" class="md-block">\n <label translate="CHAT.WAITINGMESSAGE">waitingMessage</label>\n <textarea name="waitingMessage" ng-model="vm.chatWebsite.waitingMessage" md-maxlength="255" required></textarea>\n\n <div ng-messages="interactionForm[\'waitingMessage\'].$error" ng-show="interactionForm[\'waitingMessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="CHAT.ERRORS.WAITINGMESSAGE_REQUIRED">waitingMessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.WAITINGMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>waitingMessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.PLACEHOLDERMESSAGE">placeholderMessage</label>\n <input type="text" name="placeholderMessage" ng-model="vm.chatWebsite.placeholderMessage" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="interactionForm[\'placeholderMessage\'].$error" ng-show="interactionForm[\'placeholderMessage\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.PLACEHOLDERMESSAGE_REQUIRED">placeholderMessage field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.PLACEHOLDERMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>placeholderMessage must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.download_transcript" aria-label="downloadTranscript" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.DOWNLOADTRANSCRIPT">downloadTranscript</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.enableCustomerAttachment" aria-label="enableCustomerAttachment" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.ENABLECUSTOMERATTACHMENT">enableCustomerAttachment</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.enableSendButton" aria-label="enableSendButton" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.ENABLESENDBUTTON">enableSendButton</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.enableCustomerCheckmarks" aria-label="enableCustomerCheckmarks" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.ENABLECUSTOMERCHECKMARKS">enableCustomerCheckmarks</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.SYSTEMALIAS">systemAlias</label>\n <input type="text" name="systemAlias" ng-model="vm.chatWebsite.systemAlias" md-maxlength="255" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="interactionForm[\'systemAlias\'].$error" ng-show="interactionForm[\'systemAlias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.SYSTEMALIAS_REQUIRED">systemAlias field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.SYSTEMALIAS_MAX_LENGTH" translate-values=\'{max: 255}\'>systemAlias must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div ng-if="vm.license.custom" class="chatWebsite-detail-form-container whitelabel md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.WHITELABEL">WHITELABEL</div>\n </div>\n <form name="whitelabelForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.defaultWhiteLabel" aria-label="default" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.DEFAULT">default</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="!vm.chatWebsite.defaultWhiteLabel" class="md-block">\n <label translate="CHAT.WHITELABEL">whiteLabel</label>\n <textarea name="whiteLabel" ng-model="vm.chatWebsite.whiteLabel" md-maxlength="255" required></textarea>\n\n <div ng-messages="whitelabelForm[\'whiteLabel\'].$error" ng-show="whitelabelForm[\'whiteLabel\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="CHAT.ERRORS.WHITELABEL_REQUIRED">whiteLabel field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.WHITELABEL_MAX_LENGTH" translate-values=\'{max: 255}\'>whiteLabel must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div ng-if="vm.license.custom" class="chatWebsite-detail-form-container logo md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.LOGO">LOGO</div>\n </div>\n <div ng-controller="ChatWebsitelogoController as vm_ca" ng-init="vm_ca.init(vm.chatWebsite, vm.crudPermissions)" class="chatWebsite-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="chatWebsite-image-uploader" flow-init="vm_ca.ngFlowOptions" flow-name="vm_ca.ngFlow.flow" flow-files-submitted="vm_ca.upload()" flow-file-added="vm_ca.fileAdded($file)" flow-file-success="vm_ca.fileSuccess($file, $message)" flow-complete="vm_ca.uploadComplete()" flow-drop flow-drag-enter="vm_ca.dropping=true" flow-drag-leave="vm_ca.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n <div class="drop-text hint-text" layout="row" layout-align="center center">\n <span translate="EC.DROP_TO_UPLOAD">Drop to upload</span>\n </div>\n\n <div class="upload-button" layout="column" layout-align="center center">\n <md-button class="md-accent md-raised" flow-btn ng-disabled="!vm_ca.crudPermissions.canEdit">\n Upload\n </md-button>\n <span class="secondary-text mt-8">You can also drop images here to upload. Only PNG, JPG - Max. 8MB</span>\n </div>\n\n <div layout="row" layout-align="start start" layout-wrap>\n <div ng-repeat="logoimage in vm_ca.chatWebsite.images" ng-switch="logoimage.type">\n <div class="chatWebsite-image uploading" ng-switch-when="uploading" layout="row" layout-align="center center">\n <div class="overlay" layout="column" layout-align="center center">\n <md-progress-linear md-mode="determinate" value="{{logoimage.file.progress() * 100}}">\n </md-progress-linear>\n </div>\n <img class="media" flow-img="logoimage.file">\n </div>\n\n <div class="chatWebsite-image" ng-switch-when="image" layout="row" layout-align="center center">\n <img class="media" ng-src="{{logoimage.url}}">\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n <div class="chatWebsite-detail-form-container agentavatar md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.AGENTAVATAR">AGENTAVATAR</div>\n </div>\n <div ng-controller="ChatWebsiteagentAvatarController as vm_ca" ng-init="vm_ca.init(vm.chatWebsite, vm.crudPermissions)" class="chatWebsite-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="chatWebsite-image-uploader" flow-init="vm_ca.ngFlowOptions" flow-name="vm_ca.ngFlow.flow" flow-files-submitted="vm_ca.upload()" flow-file-added="vm_ca.fileAdded($file)" flow-file-success="vm_ca.fileSuccess($file, $message)" flow-complete="vm_ca.uploadComplete()" flow-drop flow-drag-enter="vm_ca.dropping=true" flow-drag-leave="vm_ca.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n <div class="drop-text hint-text" layout="row" layout-align="center center">\n <span translate="EC.DROP_TO_UPLOAD">Drop to upload</span>\n </div>\n\n <div class="upload-button" layout="column" layout-align="center center">\n <md-button class="md-accent md-raised" flow-btn ng-disabled="!vm_ca.crudPermissions.canEdit">\n Upload\n </md-button>\n <span class="secondary-text mt-8">You can also drop images here to upload. Only PNG, JPG - Max. 8MB</span>\n </div>\n\n <div layout="row" layout-align="start start" layout-wrap>\n <div ng-repeat="agentAvatarimage in vm_ca.chatWebsite.images" ng-switch="agentAvatarimage.type">\n <div class="chatWebsite-image uploading" ng-switch-when="uploading" layout="row" layout-align="center center">\n <div class="overlay" layout="column" layout-align="center center">\n <md-progress-linear md-mode="determinate" value="{{agentAvatarimage.file.progress() * 100}}">\n </md-progress-linear>\n </div>\n <img class="media" flow-img="agentAvatarimage.file">\n </div>\n\n <div class="chatWebsite-image" ng-switch-when="image" layout="row" layout-align="center center">\n <img class="media" ng-src="{{agentAvatarimage.url}}">\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n <div class="chatWebsite-detail-form-container customeravatar md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.CUSTOMERAVATAR">CUSTOMERAVATAR</div>\n </div>\n <div ng-controller="ChatWebsitecustomerAvatarController as vm_ca" ng-init="vm_ca.init(vm.chatWebsite, vm.crudPermissions)" class="chatWebsite-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="chatWebsite-image-uploader" flow-init="vm_ca.ngFlowOptions" flow-name="vm_ca.ngFlow.flow" flow-files-submitted="vm_ca.upload()" flow-file-added="vm_ca.fileAdded($file)" flow-file-success="vm_ca.fileSuccess($file, $message)" flow-complete="vm_ca.uploadComplete()" flow-drop flow-drag-enter="vm_ca.dropping=true" flow-drag-leave="vm_ca.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n <div class="drop-text hint-text" layout="row" layout-align="center center">\n <span translate="EC.DROP_TO_UPLOAD">Drop to upload</span>\n </div>\n\n <div class="upload-button" layout="column" layout-align="center center">\n <md-button class="md-accent md-raised" flow-btn ng-disabled="!vm_ca.crudPermissions.canEdit">\n Upload\n </md-button>\n <span class="secondary-text mt-8">You can also drop images here to upload. Only PNG, JPG - Max. 8MB</span>\n </div>\n\n <div layout="row" layout-align="start start" layout-wrap>\n <div ng-repeat="customerAvatarimage in vm_ca.chatWebsite.images" ng-switch="customerAvatarimage.type">\n <div class="chatWebsite-image uploading" ng-switch-when="uploading" layout="row" layout-align="center center">\n <div class="overlay" layout="column" layout-align="center center">\n <md-progress-linear md-mode="determinate" value="{{customerAvatarimage.file.progress() * 100}}">\n </md-progress-linear>\n </div>\n <img class="media" flow-img="customerAvatarimage.file">\n </div>\n\n <div class="chatWebsite-image" ng-switch-when="image" layout="row" layout-align="center center">\n <img class="media" ng-src="{{customerAvatarimage.url}}">\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n <div class="chatWebsite-detail-form-container systemavatar md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.SYSTEMAVATAR">SYSTEMAVATAR</div>\n </div>\n <div ng-controller="ChatWebsitesystemAvatarController as vm_ca" ng-init="vm_ca.init(vm.chatWebsite, vm.crudPermissions)" class="chatWebsite-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="chatWebsite-image-uploader" flow-init="vm_ca.ngFlowOptions" flow-name="vm_ca.ngFlow.flow" flow-files-submitted="vm_ca.upload()" flow-file-added="vm_ca.fileAdded($file)" flow-file-success="vm_ca.fileSuccess($file, $message)" flow-complete="vm_ca.uploadComplete()" flow-drop flow-drag-enter="vm_ca.dropping=true" flow-drag-leave="vm_ca.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n <div class="drop-text hint-text" layout="row" layout-align="center center">\n <span translate="EC.DROP_TO_UPLOAD">Drop to upload</span>\n </div>\n\n <div class="upload-button" layout="column" layout-align="center center">\n <md-button class="md-accent md-raised" flow-btn ng-disabled="!vm_ca.crudPermissions.canEdit">\n Upload\n </md-button>\n <span class="secondary-text mt-8">You can also drop images here to upload. Only PNG, JPG - Max. 8MB</span>\n </div>\n\n <div layout="row" layout-align="start start" layout-wrap>\n <div ng-repeat="systemAvatarimage in vm_ca.chatWebsite.images" ng-switch="systemAvatarimage.type">\n <div class="chatWebsite-image uploading" ng-switch-when="uploading" layout="row" layout-align="center center">\n <div class="overlay" layout="column" layout-align="center center">\n <md-progress-linear md-mode="determinate" value="{{systemAvatarimage.file.progress() * 100}}">\n </md-progress-linear>\n </div>\n <img class="media" flow-img="systemAvatarimage.file">\n </div>\n\n <div class="chatWebsite-image" ng-switch-when="image" layout="row" layout-align="center center">\n <img class="media" ng-src="{{systemAvatarimage.url}}">\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.ONLINE">ONLINE</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatWebsite-detail-form-container chatformonline md-background-bg md-whiteframe-1dp">\n <div ng-controller="ChatWebsiteonlineFormController as vm_fonc" ng-init="vm_fonc.init(vm.chatWebsite)" class="content" md-background-bg layout="column">\n <div flex>\n \x3c!-- START Buttons --\x3e\n <md-button aria-label="comment" class="md-fab md-mini" ng-click="vm_fonc.add(button.type)" ng-repeat="button in vm_fonc.buttons">\n <md-tooltip md-direction="top">{{button.name}}</md-tooltip>\n <md-icon md-font-icon="{{button.icon}}"></md-icon>\n </md-button>\n \x3c!-- END Buttons --\x3e\n </div>\n\n <div layout="row" flex>\n <div flex="50">\n <md-card>\n <md-card-title>\n <md-card-title-text>\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.BUILDER">BUILDER</div>\n </div>\n </md-card-title-text>\n </md-card-title>\n <md-card-content>\n\n <form name="onlineForm" novalidate>\n\n \x3c!-- START MapKey --\x3e\n <md-input-container class="md-block" ng-if="vm_fonc.chatWebsite.onlineForm.items.length">\n <label translate="CHAT.HELP.MAPKEY">MapKey</label>\n <md-select ng-model="vm_fonc.chatWebsite.mapKey">\n <md-option ng-value="null">None</md-option>\n\n <md-optgroup label="standard">\n <md-option ng-repeat="field in vm_fonc.fields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n\n <md-optgroup label="custom" ng-if="vm_fonc.customFields.length">\n <md-option ng-repeat="field in vm_fonc.customFields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n </md-select>\n </md-input-container>\n \x3c!-- END MapKey --\x3e\n\n \x3c!-- START FromKey --\x3e\n <md-input-container class="md-block" ng-if="vm_fonc.chatWebsite.onlineForm.items.length">\n <label translate="CHAT.HELP.FROMKEY">FromKey</label>\n <md-select ng-model="vm_fonc.chatWebsite.onlineForm.fromKey" md-selected-text="vm_fonc.chatWebsite.onlineForm.fromKey != null ? vm_fonc.chatWebsite.onlineForm.items[vm_fonc.chatWebsite.onlineForm.fromKey].props.title : \'None\'">\n <md-option ng-value="null">None</md-option>\n <md-option ng-repeat="item in vm_fonc.chatWebsite.onlineForm.items" ng-if="item.props.title" ng-value="$index">{{ item.props.title }}</md-option>\n </md-select>\n </md-input-container>\n \x3c!-- END FromKey --\x3e\n\n \x3c!-- START EXPANSION PANELS --\x3e\n <md-expansion-panel ng-repeat="item in vm_fonc.chatWebsite.onlineForm.items track by $index" md-component-id="{{\'onlinePanel\' + $index}}">\n <md-expansion-panel-collapsed md-no-sticky="true">\n <md-button class="md-icon-button" aria-label="Down" ng-click="vm_fonc.down(item, $index); $event.stopPropagation()">\n <md-icon md-font-icon="icon-arrow-down-bold-circle-outline"></md-icon>\n </md-button>\n <md-button class="md-icon-button" aria-label="Up" ng-click="vm_fonc.up(item, $index); $event.stopPropagation()">\n <md-icon md-font-icon="icon-arrow-up-bold-circle-outline"></md-icon>\n </md-button>\n\n <div class="md-title">{{item.props.title || item.type}}</div>\n\n <div flex></div>\n <md-button class="md-icon-button" aria-label="Collapse" ng-click="$panel.collapse()">\n <md-icon md-font-icon="icon-chevron-down"></md-icon>\n </md-button>\n </md-expansion-panel-collapsed>\n\n <md-expansion-panel-expanded>\n <md-expansion-panel-header>\n <md-button class="md-icon-button" aria-label="Down" ng-click="vm_fonc.down(item, $index)">\n <md-icon md-font-icon="icon-arrow-down-bold-circle-outline"></md-icon>\n </md-button>\n <md-button class="md-icon-button" aria-label="Up" ng-click="vm_fonc.up(item, $index)">\n <md-icon md-font-icon="icon-arrow-up-bold-circle-outline"></md-icon>\n </md-button>\n\n <div class="md-title">{{item.props.title || item.type}}</div>\n\n <div flex></div>\n\n <md-button class="md-icon-button md-warn" aria-label="Remove" ng-click="vm_fonc.remove($index)">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n <md-button class="md-icon-button" aria-label="Collapse" ng-click="$panel.collapse()">\n <md-icon md-font-icon="icon-chevron-up"></md-icon>\n </md-button>\n </md-expansion-panel-header>\n\n <md-expansion-panel-content>\n <form-item type="{{item.type}}" item="item" index="$index"></form-item>\n\n <md-input-container class="md-block">\n <label translate="CHAT.VARIABLE">Variable</label>\n <md-select ng-model="item.variable">\n <md-option ng-value="null">None</md-option>\n <md-option ng-repeat="variable in vm_fonc.variables" ng-value="variable.name">{{ variable.name }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="CHAT.CM_FIELD">Contact Manager Field</label>\n <md-select ng-model="item.cmField">\n <md-option ng-value="null">None</md-option>\n\n <md-optgroup label="standard">\n <md-option ng-repeat="field in vm_fonc.fields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n\n <md-optgroup label="custom" ng-if="vm_fonc.customFields.length">\n <md-option ng-repeat="field in vm_fonc.customFields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n </md-select>\n </md-input-container>\n </md-expansion-panel-content>\n\n </md-expansion-panel-expanded>\n </md-expansion-panel>\n \x3c!-- END EXPANSION PANELS --\x3e\n </form>\n </md-card-content>\n </md-card>\n </div>\n <div flex="50">\n <md-card>\n <md-card-title>\n <md-card-title-text>\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.PREVIEW">PREVIEW</div>\n </div>\n </md-card-title-text>\n </md-card-title>\n <md-card-content flex>\n <form-view form="vm_fonc.chatWebsite.onlineForm" flex="100"></form-view>\n </md-card-content>\n </md-card>\n </div>\n </div>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.OFFLINE">OFFLINE</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatWebsite-detail-form-container chatformoffline md-background-bg md-whiteframe-1dp">\n <div ng-controller="ChatWebsiteofflineFormController as vm_fonc" ng-init="vm_fonc.init(vm.chatWebsite)" class="content" md-background-bg layout="column">\n <div flex>\n \x3c!-- START Buttons --\x3e\n <md-button aria-label="comment" class="md-fab md-mini" ng-click="vm_fonc.add(button.type)" ng-repeat="button in vm_fonc.buttons">\n <md-tooltip md-direction="top">{{button.name}}</md-tooltip>\n <md-icon md-font-icon="{{button.icon}}"></md-icon>\n </md-button>\n \x3c!-- END Buttons --\x3e\n </div>\n\n <div layout="row" flex>\n <div flex="50">\n <md-card>\n <md-card-title>\n <md-card-title-text>\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.BUILDER">BUILDER</div>\n </div>\n </md-card-title-text>\n </md-card-title>\n <md-card-content>\n\n <form name="offlineForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm_fonc.chatWebsite.forwardOffline" aria-label="forwardOffline"><span translate="CHAT.FORWARD_OFFLINE">forwardOffline</span></md-switch>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm_fonc.chatWebsite.forwardOffline">\n <label translate="CHAT.FORWARD_OFFLINE_ADDRESS">FORWARD OFFLINE ADDRESS</label>\n <input type="text" name="forwardOfflineAddress" ng-model="vm_fonc.chatWebsite.forwardOfflineAddress">\n <div class="hint"><span translate="CHAT.HELP.FORWARD_OFFLINE"></span></div>\n <div ng-messages="offlineForm[\'forwardOfflineAddress\'].$error" ng-show="offlineForm[\'forwardOfflineAddress\'].$touched" role="alert">\n <div ng-message="email">\n <span translate="CHAT.ERRORS.EMAIL_MUST_BE_VALID">forwardOffline must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <md-switch ng-model="vm_fonc.chatWebsite.openNewInteraction" aria-label="openNewInteraction">\n <span translate="CHAT.OPEN_NEW_INTERACTION">openNewInteraction</span>\n </md-switch>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm_fonc.chatWebsite.openNewInteraction">\n <label translate="CHAT.EMAIL_ACCOUNT">Email account</label>\n <md-select ng-model="vm_fonc.chatWebsite.MailAccountId">\n <md-option ng-value="null">None</md-option>\n <md-option ng-repeat="account in vm_fonc.email_accounts" ng-value="account.id">{{ account.name }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm_fonc.chatWebsite.openNewInteraction && vm_fonc.chatWebsite.offlineForm.items.length">\n <label translate="CHAT.SUBJECT">Subject</label>\n <md-select ng-model="vm_fonc.chatWebsite.subjectOffline" md-selected-text="vm_fonc.chatWebsite.subjectOffline != null ? vm_fonc.chatWebsite.subjectOffline : \'None\'">\n <md-option ng-value="null">None</md-option>\n <md-option ng-repeat="item in vm_fonc.chatWebsite.offlineForm.items" ng-if="item.props.title" ng-value="item.props.title">{{ item.props.title }}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!-- START MapKey --\x3e\n <md-input-container class="md-block" ng-if="vm_fonc.chatWebsite.offlineForm.items.length">\n <label translate="CHAT.HELP.MAPKEY">MapKey</label>\n <md-select ng-model="vm_fonc.chatWebsite.mapKeyOffline">\n <md-option ng-value="null">None</md-option>\n\n <md-optgroup label="standard">\n <md-option ng-repeat="field in vm_fonc.fields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n\n <md-optgroup label="custom" ng-if="vm_fonc.customFields.length">\n <md-option ng-repeat="field in vm_fonc.customFields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n </md-select>\n </md-input-container>\n \x3c!-- END MapKey --\x3e\n\n \x3c!-- START FromKey --\x3e\n <md-input-container class="md-block" ng-if="vm_fonc.chatWebsite.offlineForm.items.length">\n <label translate="CHAT.HELP.FROMKEY">FromKey</label>\n <md-select ng-model="vm_fonc.chatWebsite.offlineForm.fromKey" md-selected-text="vm_fonc.chatWebsite.offlineForm.fromKey != null ? vm_fonc.chatWebsite.offlineForm.items[vm_fonc.chatWebsite.offlineForm.fromKey].props.title : \'None\'">\n <md-option ng-value="null">None</md-option>\n <md-option ng-repeat="item in vm_fonc.chatWebsite.offlineForm.items" ng-if="item.props.title" ng-value="$index">{{ item.props.title }}</md-option>\n </md-select>\n </md-input-container>\n \x3c!-- END FromKey --\x3e\n\n \x3c!-- START EXPANSION PANELS --\x3e\n <md-expansion-panel ng-repeat="item in vm_fonc.chatWebsite.offlineForm.items track by $index" md-component-id="{{\'offlinePanel\' + $index}}">\n <md-expansion-panel-collapsed md-no-sticky="true">\n <md-button class="md-icon-button" aria-label="Down" ng-click="vm_fonc.down(item, $index); $event.stopPropagation()">\n <md-icon md-font-icon="icon-arrow-down-bold-circle-outline"></md-icon>\n </md-button>\n <md-button class="md-icon-button" aria-label="Up" ng-click="vm_fonc.up(item, $index); $event.stopPropagation()">\n <md-icon md-font-icon="icon-arrow-up-bold-circle-outline"></md-icon>\n </md-button>\n\n <div class="md-title">{{item.props.title || item.type}}</div>\n\n <div flex></div>\n <md-button class="md-icon-button" aria-label="Collapse" ng-click="$panel.collapse()">\n <md-icon md-font-icon="icon-chevron-down"></md-icon>\n </md-button>\n </md-expansion-panel-collapsed>\n\n <md-expansion-panel-expanded>\n <md-expansion-panel-header>\n <md-button class="md-icon-button" aria-label="Down" ng-click="vm_fonc.down(item, $index)">\n <md-icon md-font-icon="icon-arrow-down-bold-circle-outline"></md-icon>\n </md-button>\n <md-button class="md-icon-button" aria-label="Up" ng-click="vm_fonc.up(item, $index)">\n <md-icon md-font-icon="icon-arrow-up-bold-circle-outline"></md-icon>\n </md-button>\n\n <div class="md-title">{{item.props.title || item.type}}</div>\n\n <div flex></div>\n\n <md-button class="md-icon-button md-warn" aria-label="Remove" ng-click="vm_fonc.remove($index)">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n <md-button class="md-icon-button" aria-label="Collapse" ng-click="$panel.collapse()">\n <md-icon md-font-icon="icon-chevron-up"></md-icon>\n </md-button>\n </md-expansion-panel-header>\n\n <md-expansion-panel-content>\n <form-item type="{{item.type}}" item="item" index="$index"></form-item>\n\n\n <md-input-container class="md-block" ng-if="item.type != \'upload\'">\n <label translate="CHAT.CM_FIELD">Contact Manager Field</label>\n <md-select ng-model="item.cmField">\n <md-option ng-value="null">None</md-option>\n\n <md-optgroup label="standard">\n <md-option ng-repeat="field in vm_fonc.fields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n\n <md-optgroup label="custom" ng-if="vm_fonc.customFields.length">\n <md-option ng-repeat="field in vm_fonc.customFields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n </md-select>\n </md-input-container>\n </md-expansion-panel-content>\n\n </md-expansion-panel-expanded>\n </md-expansion-panel>\n \x3c!-- END EXPANSION PANELS --\x3e\n </form>\n </md-card-content>\n </md-card>\n </div>\n <div flex="50">\n <md-card>\n <md-card-title>\n <md-card-title-text>\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.PREVIEW">PREVIEW</div>\n </div>\n </md-card-title-text>\n </md-card-title>\n <md-card-content flex>\n <form-view form="vm_fonc.chatWebsite.offlineForm" flex="100"></form-view>\n </md-card-content>\n </md-card>\n </div>\n </div>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.PROACTIVEACTIONS">PROACTIVEACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatWebsite-detail-form-container proactive md-background-bg md-whiteframe-1dp">\n <div ng-controller="ChatWebsiteProactiveActionsController as vm_dc" ng-init="vm_dc.init(vm.chatWebsite, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedChatWebsiteProactiveActions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CHAT.PROACTIVEACTIONS">ProactiveActions</span>\n <ms-search-bar on-search="vm_dc.getChatWebsiteProactiveActions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event)" aria-label="add chatProactiveAction" translate translate-attr-label="CHAT.ADD_CHATPROACTIVEACTION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedChatWebsiteProactiveActions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedChatWebsiteProactiveActions.length}} {{vm_dc.selectedChatWebsiteProactiveActions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedChatWebsiteProactiveActions" csv-label="true" filename="chatWebsites.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedChatWebsiteProactiveActions($event)" aria-label="delete selected" translate translate-attr-label="CHAT.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedChatWebsiteProactiveActions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getChatWebsiteProactiveActions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'CHAT.ID\' | translate }}\n </th>\n <th md-column md-order-by="name">\n {{ \'CHAT.NAME\' | translate }}\n </th>\n <th md-column md-order-by="type">\n {{ \'CHAT.TYPE\' | translate }}\n </th>\n <th md-column md-order-by="selector">\n {{ \'CHAT.SELECTOR\' | translate }}\n </th>\n <th md-column md-order-by="timeout">\n {{ \'CHAT.TIMEOUT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'CHAT.CREATED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="chatProactiveAction" md-select-id="id" ng-repeat="chatProactiveAction in vm_dc.chatWebsiteProactiveActions.rows">\n <td ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" md-cell>\n {{chatProactiveAction.id}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" md-cell>\n {{chatProactiveAction.name}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" md-cell>\n {{ \'CHAT.\' + vm_dc.arraytype[chatProactiveAction.type].option | uppercase | translate }}\n </td>\n\n <td ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" md-cell>\n {{chatProactiveAction.selector}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" md-cell>\n {{chatProactiveAction.timeout}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" md-cell>\n {{ chatProactiveAction.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CHAT.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" translate="CHAT.EDIT_CHATPROACTIVEACTION">\n Edit ChatProactiveAction\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(chatProactiveAction, $event)" translate="CHAT.DELETE_CHATPROACTIVEACTION">\n Delete ChatProactiveAction\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.chatWebsiteProactiveActions.rows.length">\n <td md-cell colspan="8">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="CHAT.NO_CHATPROACTIVEACTION_AVAILABLE">No chatproactiveaction available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.chatWebsiteProactiveActions.count}}" md-on-paginate="vm_dc.getChatWebsiteProactiveActions" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.DISPOSITIONS">DISPOSITIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div ng-controller="ChatWebsiteDispositionsController as vm_dc" ng-init="vm_dc.init(vm.chatWebsite, vm.crudPermissions)">\n <div layout="row">\n <div class="column" flex="20">\n <md-card class="mt-0">\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm_dc.query.level = null; vm_dc.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\n </button>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm_dc.query.level" ng-change="vm_dc.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm_dc.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n <div class="chatWebsite-detail-form-container chatdispositions md-background-bg md-whiteframe-1dp" flex="80">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedChatWebsiteDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CHAT.DISPOSITIONS">Dispositions</span>\n <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditDisposition($event)" aria-label="Add chat dispositions" translate translate-attr-label="CHAT.ADD_DISPOSITION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedDispositions.length}}\n {{vm_dc.selectedDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedDispositions" csv-label="true" filename="chatWebsites.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedDispositions($event)" aria-label="delete selected" translate translate-attr-label="CHAT.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_dc.selectedDispositions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getDispositions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'CHAT.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'CHAT.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'CHAT.DESCRIPTION\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_dc.dispositions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="CHAT.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="disposition" md-select-id="id" ng-repeat="disposition in vm_dc.dispositions.rows">\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm_dc.levels[disposition.level] }}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CHAT.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(disposition, $event)" translate="TOOLS.DELETE_DISPOSITION">\n Delete Disposition\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.dispositions.count}}" md-on-paginate="vm_dc.getDispositions" md-page-select>\n </md-table-pagination>\n </div>\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.CANNEDANSWERS">CANNEDANSWERS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatWebsite-detail-form-container chatcannedanswers md-background-bg md-whiteframe-1dp">\n <div ng-controller="ChatWebsiteChatCannedAnswersController as vm_dc" ng-init="vm_dc.init(vm.chatWebsite, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedChatWebsiteChatCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CHAT.CHATCANNEDANSWERS">ChatCannedAnswers</span>\n <ms-search-bar on-search="vm_dc.getChatWebsiteChatCannedAnswers()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditChatWebsiteChatCannedAnswer($event)" aria-label="add chatCannedAnswer" translate translate-attr-label="CHAT.ADD_CHATCANNEDANSWER">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedChatWebsiteChatCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedChatWebsiteChatCannedAnswers.length}} {{vm_dc.selectedChatWebsiteChatCannedAnswers.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedChatWebsiteChatCannedAnswers" csv-label="true" filename="chatWebsites.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedChatWebsiteChatCannedAnswers($event)" aria-label="delete selected" translate translate-attr-label="CHAT.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedChatWebsiteChatCannedAnswers" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getChatWebsiteChatCannedAnswers">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'CHAT.ID\' | translate }}\n </th>\n <th md-column md-order-by="key">\n {{ \'CHAT.KEY\' | translate }}\n </th>\n <th md-column md-order-by="value">\n {{ \'CHAT.VALUE\' | translate }}\n </th>\n <th md-column md-order-by="description">\n {{ \'CHAT.DESCRIPTION\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'CHAT.CREATED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="chatCannedAnswer" md-select-id="id" ng-repeat="chatCannedAnswer in vm_dc.chatWebsiteChatCannedAnswers.rows">\n <td ng-click="vm_dc.createOrEditChatWebsiteChatCannedAnswer($event, chatCannedAnswer)" md-cell>\n {{chatCannedAnswer.id}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatCannedAnswer($event, chatCannedAnswer)" md-cell>\n {{chatCannedAnswer.key}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatCannedAnswer($event, chatCannedAnswer)" md-cell>\n {{chatCannedAnswer.value}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatCannedAnswer($event, chatCannedAnswer)" md-cell>\n {{chatCannedAnswer.description}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatCannedAnswer($event, chatCannedAnswer)" md-cell>\n {{ chatCannedAnswer.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CHAT.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditChatWebsiteChatCannedAnswer($event, chatCannedAnswer)" translate="CHAT.EDIT_CHATCANNEDANSWER">\n Edit ChatCannedAnswer\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(chatCannedAnswer, $event)" translate="CHAT.DELETE_CHATCANNEDANSWER">\n Delete ChatCannedAnswer\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.chatWebsiteChatCannedAnswers.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="CHAT.NO_CHATCANNEDANSWER_AVAILABLE">No chatcannedanswer available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.chatWebsiteChatCannedAnswers.count}}" md-on-paginate="vm_dc.getChatWebsiteChatCannedAnswers" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.VIDEO">VIDEO</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatWebsite-detail-form-container vidaoo md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.VIDAOO">VIDAOO</div>\n </div>\n <form name="vidaooForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.vidaooEscalation" aria-label="vidaooEscalation" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.VIDAOOESCALATION">vidaooEscalation</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.vidaooEscalation == true" class="md-block">\n <label translate="CHAT.VIDAOOAPIKEY">vidaooApiKey</label>\n <input type="text" name="vidaooApiKey" ng-model="vm.chatWebsite.vidaooApiKey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="vidaooForm[\'vidaooApiKey\'].$error" ng-show="vidaooForm[\'vidaooApiKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.VIDAOOAPIKEY_REQUIRED">vidaooApiKey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.vidaooEscalation == true" class="md-block">\n <label translate="CHAT.VIDAOOTOPIC">vidaooTopic</label>\n <input type="text" name="vidaooTopic" ng-model="vm.chatWebsite.vidaooTopic" value="Generated by XCALLY Motion" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="vidaooForm[\'vidaooTopic\'].$error" ng-show="vidaooForm[\'vidaooTopic\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.VIDAOOTOPIC_REQUIRED">vidaooTopic field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.vidaooEscalation == true" class="md-block">\n <label translate="CHAT.VIDAOONOTE">vidaooNote</label>\n <input type="text" name="vidaooNote" ng-model="vm.chatWebsite.vidaooNote" value="Meeting generated for interaction #{{interaction.id}} by {{agent.name}}" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="vidaooForm[\'vidaooNote\'].$error" ng-show="vidaooForm[\'vidaooNote\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.VIDAOONOTE_REQUIRED">vidaooNote field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.vidaooEscalation == true" class="md-block">\n <label translate="CHAT.VIDAOOMETADATA">vidaooMetadata</label>\n <textarea name="vidaooMetadata" ng-model="vm.chatWebsite.vidaooMetadata"></textarea>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.ACTIONS">ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatWebsite-detail-form-container actions md-background-bg md-whiteframe-1dp">\n <div ng-controller="ChatWebsiteActionsController as vm_ac" ng-init="vm_ac.init(vm.chatWebsite, vm.crudPermissions)" class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- SIDENAV --\x3e\n <div class="navigation-simple sidenav main-sidenav md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="20" ng-if="vm_ac.crudPermissions.canEdit">\n \x3c!-- SIDENAV CONTENT --\x3e\n <md-list class="no-padding">\n <md-subheader class="md-no-sticky">\n <span translate="VOICE.APPLICATIONS_LIST">\n Applications List\n </span>\n </md-subheader>\n </md-list>\n <md-divider></md-divider>\n <md-list ng-sortable="vm_ac.list">\n <md-list-item class="handle" ng-repeat="a in vm_ac.apps">\n <md-icon md-font-icon="{{a.icon}}" class="s16"></md-icon>\n <p class="text-truncate" translate="CHAT.{{(a.appAlias || a.appType) | uppercase}}">{{a.appAlias || a.appType}}</p>\n </md-list-item>\n </md-list>\n \x3c!-- / SIDENAV CONTENT --\x3e\n </div>\n \x3c!-- / SIDENAV --\x3e\n <div flex></div>\n \x3c!-- MAIN --\x3e\n <div class="main scrollable md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="{{vm_ac.crudPermissions.canEdit ? 75 : 100}}">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_ac.selectedChatWebsiteApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">Drag & Drop Routing</span>\n <div flex></div>\n <ms-search-bar on-search="vm_ac.query.filter = query" on-collapse="vm_ac.query.filter = undefined" debounce="300"></ms-search-bar>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_ac.selectedChatWebsiteApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_ac.selectedChatWebsiteApps.length}} {{vm_ac.selectedChatWebsiteApps.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_ac.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_ac.deleteSelectedChatWebsiteApps($event)" aria-label="delete selected" translate translate-attr-label="CHAT.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n \x3c!-- QUEUES TABLE --\x3e\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_ac.selectedChatWebsiteApps">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column width="10px">\n <span translate="VOICE.PRIORITY">Priority</span>\n </th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </th>\n <th md-column width="10px"></th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body ng-sortable="vm_ac.applications">\n <tr md-row md-select="app" md-select-id="id" ng-repeat="app in vm_ac.chatWebsiteApps.rows | filter: vm_ac.query.filter">\n <td md-cell>\n <md-icon md-font-icon="icon-drag-vertical" class="s16 handle"></md-icon>\n </td>\n <td md-cell ng-click="vm_ac.editChatWebsiteApp($event, $index)"><span>{{app.priority}}</span></td>\n <td md-cell ng-click="vm_ac.editChatWebsiteApp($event, $index)">{{app.app.toLowerCase() === \'agi\' ? \'Cally-Square\' : app.app | ucfirst}}<span ng-if="app.appType.toLowerCase() === \'custom\'">*</span></td>\n <td md-cell ng-click="vm_ac.editChatWebsiteApp($event, $index)"><span class="text-truncate" style="width:200px">{{app.appdata}}</span></td>\n <td md-cell ng-click="vm_ac.editInterval($event, $index)">{{app.IntervalId ? \'From List\' : app.interval}}</td>\n <td md-cell>\n <md-button ng-click="vm_ac.editInterval($event, $index)" class="md-icon-button" aria-label="Interval">\n <md-icon md-font-icon="icon-timer"></md-icon>\n <md-tooltip>\n {{app.IntervalId ? \'From List\' : (app.interval === \'*,*,*,*\' ? \'Always\' : \'Custom\')}}\n </md-tooltip>\n </md-button>\n </td>\n <td md-cell class="actions" ng-if="!vm_ac.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_ac.crudPermissions.canEdit">\n <md-button ng-click="vm_ac.editChatWebsiteApp($event, $index)" translate="VOICE.EDIT_APP">\n Edit App\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_ac.crudPermissions.canEdit">\n <md-button ng-click="vm_ac.editInterval($event, $index)" translate="VOICE.EDIT_INTERVAL">\n Edit Interval\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_ac.crudPermissions.canDelete">\n <md-button ng-click="vm_ac.deleteConfirm(app, $index, $event)" translate="VOICE.DELETE_APP">\n Delete App\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-hide="vm_ac.chatWebsiteApps.rows.length">\n <td md-cell colspan="7">\n <span class="text-boxed-light" translate="VOICE.NO_APPS_AVAILABLE">No apps available</span>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n \x3c!-- / QUEUES TABLE --\x3e\n\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.INTERACTIONS">INTERACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatWebsite-detail-form-container interactions md-background-bg md-whiteframe-1dp">\n <div ng-controller="ChatWebsiteInteractionsController as vm_dc" ng-init="vm_dc.init(vm.chatWebsite, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedChatWebsiteInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CHAT.INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm_dc.getChatWebsiteInteractions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_dc.quickFilters" query="vm_dc.query" search="vm_dc.getChatWebsiteInteractions()"></ms-quick-filter>\n <div layout="column">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini md-accent-bg\': vm_dc.query.search }" aria-label="Filter" translate translate-attr-aria-label="DASHBOARDS.FILTER" ng-click="vm_dc.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm_dc.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'blink\': vm_dc.query.search }"></md-icon>\n </md-button>\n </div>\n <md-button class="md-icon-button" ng-click="vm_dc.getChatWebsiteInteractions()" aria-label="refresh Interactions" translate translate-attr-label="CHAT.REFRESH_INTERACTIONS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedChatWebsiteInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedChatWebsiteInteractions.length}} {{vm_dc.selectedChatWebsiteInteractions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedChatWebsiteInteractions" csv-label="true" filename="chatWebsites.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedChatWebsiteInteractions($event)" aria-label="delete selected" translate translate-attr-label="CHAT.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedChatWebsiteInteractions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getChatWebsiteInteractions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'CHAT.ID\' | translate }}\n </th>\n <th md-column class="no-padding">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column md-order-by="contactName">\n {{ \'CHAT.CONTACT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'CHAT.STARTEDAT\' | translate }}\n </th>\n <th md-column md-order-by="lastMsgAt">\n {{ \'CHAT.LASTMESSAGE\' | translate }}\n </th>\n <th md-column md-order-by="closed">\n {{ \'CHAT.STATUS\' | translate }}\n </th>\n <th md-column>\n {{ \'CHAT.AGENT\' | translate }}\n </th>\n <th md-column md-order-by="tag">\n {{ \'CHAT.TAGS\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="interaction" md-select-id="id" ng-repeat="interaction in vm_dc.chatWebsiteInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td md-cell>\n {{interaction.id}}\n </td>\n <td md-cell class="no-padding">\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="user in interaction.Users">{{ user.fullname | translate }}\n <span ng-if="!$last">, </span>\n </span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg md-primary-bg" layout-margin>{{ interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.attach">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td md-cell privacy ng-cloak>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'margin-bottom-0\' : interaction.contactInfo}" layout-margin>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text margin-top-0" layout-margin>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td md-cell>\n {{ interaction.createdAt | formatdate }}\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}"></md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="text-truncate">{{ interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n </td>\n <td md-cell>\n <span ng-if="interaction.closed === 0" class="green-fg">\n {{ \'CHAT.OPENED\' | translate }}\n <span ng-if="interaction.substatus">\n - {{ interaction.substatus }}\n </span>\n </span>\n <span ng-if="interaction.closed === 1" class="red-fg">\n {{ \'CHAT.CLOSED\' | translate }}\n <span ng-if="interaction.disposition">\n - {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}\n </span>\n <md-tooltip class="multiline">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n </span>\n </td>\n\n <td md-cell>\n {{interaction.Owner.name}}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CHAT.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm_dc.spychatInteraction($event, interaction)" translate="CHAT.SPYINTERACTION">\n Spy Interaction\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.role === \'admin\' || (vm_dc.userProfile.downloadOmnichannelInteractions && vm_dc.userProfile.downloadAttachments)">\n <md-button class="md-primary" ng-click="vm_dc.chatInteractionDownload(interaction, $event, true)" translate="CHAT.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.role === \'admin\' || vm_dc.userProfile.downloadOmnichannelInteractions">\n <md-button class="md-primary" ng-click="vm_dc.chatInteractionDownload(interaction, $event)" translate="CHAT.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(interaction, $event)" translate="CHAT.DELETE_INTERACTION">\n Delete Interaction\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.chatWebsiteInteractions.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="CHAT.NO_INTERACTION_AVAILABLE">No interaction available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.chatWebsiteInteractions.count}}" md-on-paginate="vm_dc.getChatWebsiteInteractions" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.OFFLINEMESSAGES">OFFLINEMESSAGES</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatWebsite-detail-form-container offlinemessages md-background-bg md-whiteframe-1dp">\n <div ng-controller="ChatWebsiteOfflineMessagesController as vm_dc" ng-init="vm_dc.init(vm.chatWebsite, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedChatWebsiteOfflineMessages.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CHAT.OFFLINEMESSAGES">OfflineMessages</span>\n <ms-search-bar on-search="vm_dc.getChatWebsiteOfflineMessages()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedChatWebsiteOfflineMessages.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedChatWebsiteOfflineMessages.length}} {{vm_dc.selectedChatWebsiteOfflineMessages.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedChatWebsiteOfflineMessages" csv-label="true" filename="chatWebsites.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedChatWebsiteOfflineMessages($event)" aria-label="delete selected" translate translate-attr-label="CHAT.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedChatWebsiteOfflineMessages" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getChatWebsiteOfflineMessages">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'CHAT.ID\' | translate }}\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column>\n {{ \'CHAT.CONTACT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'CHAT.CREATED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="offlineMessage" md-select-id="id" ng-repeat="offlineMessage in vm_dc.chatWebsiteOfflineMessages.rows">\n <td md-cell>\n {{offlineMessage.id}}\n </td>\n <td md-cell class="no-padding">\n <div ng-if="offlineMessage.Attachments.length > 0">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td md-cell privacy ng-cloak>\n {{offlineMessage.Contact.firstName}}\n </td>\n <td md-cell>\n {{ offlineMessage.createdAt | formatdate }}\n </td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CHAT.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm_dc.showOfflineMessageChatWebsiteOfflineMessage($event, offlineMessage)" translate="CHAT.SHOW_OFFLINEMESSAGE">\n SHOW OfflineMessage\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(offlineMessage, $event)" translate="CHAT.DELETE_OFFLINEMESSAGE">\n Delete OfflineMessage\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.chatWebsiteOfflineMessages.rows.length">\n <td md-cell colspan="8">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="CHAT.NO_OFFLINEMESSAGE_AVAILABLE">No offlinemessage available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.chatWebsiteOfflineMessages.count}}" md-on-paginate="vm_dc.getChatWebsiteOfflineMessages" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/chat/views/realtime/agents/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CHAT.AGENTS">Agents</span>\n <div flex></div>\n <ms-search-bar on-search="vm.onInit()" query="vm.query" on-collapse="vm.query.filter = undefined; vm.onInit()" debounce="300"></ms-search-bar>\n <md-select ng-model="vm.query.globalStatusFilter" class="md-caption" ng-change="vm.query.pauseTypeFilter = \'\'; vm.onInit()">\n <md-option ng-value="\'\'">{{ \'CHAT.ALL\' | translate }}</md-option>\n <md-option value="pause">{{ \'CHAT.PAUSE\' | translate }}</md-option>\n <md-option value="*pause">{{ \'CHAT.PARTIALPAUSE\' | translate }}</md-option>\n <md-option value="busy">{{ \'CHAT.BUSY\' | translate }}</md-option>\n <md-option value="idle">{{ \'CHAT.IDLE\' | translate }}</md-option>\n </md-select>\n <md-select ng-if="vm.isPause(vm.query.globalStatusFilter)" ng-model="vm.query.pauseTypeFilter" class="md-caption" ng-change="vm.onInit()">\n <md-option ng-value="\'\'">All</md-option>\n <md-option value="DEFAULT PAUSE">DEFAULT PAUSE</md-option>\n <md-option value="ACW">ACW</md-option>\n <md-option value="LOGININPAUSE">LOGININPAUSE</md-option>\n <md-option value="Auto-Pause">AUTOPAUSE</md-option>\n <md-option ng-value="pause.name" ng-repeat="pause in vm.pauses.rows">{{pause.name}}</md-option>\n </md-select>\n </div>\n</md-toolbar>\n\x3c!-- AGENT TABLE --\x3e\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.order" md-on-reorder="vm.onInit">\n <tr md-row border="1">\n <th class="bv text-center" colspan="5">{{ \'CHAT.AGENT\' | translate }}</th>\n <th class="bv bl text-center" colspan="2">{{ \'VOICE.VOICE\' | translate }}</th>\n <th ng-if="vm.license.chat" class="bv bl text-center" colspan="2">{{ \'CHAT.CHAT\' | translate }}</th>\n <th ng-if="vm.license.mail" class="bv bl text-center" colspan="2">{{ \'MAIL.MAIL\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="bv bl text-center" colspan="2">{{ \'SMS.SMS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="bv bl text-center" colspan="2">\n {{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="bv bl text-center" colspan="2">\n {{ \'WHATSAPP.WHATSAPP\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n </tr>\n <tr md-row>\n <th class="bl" colspan="2" md-column md-order-by="fullname">\n {{ \'CHAT.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">\n {{ \'CHAT.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">\n {{ \'CHAT.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">\n {{ \'CHAT.PAUSE_TIME\' | translate }}</th>\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\n <th ng-if="vm.license.chat" class="bl text-center">{{ \'CHAT.STATUS\' | translate }}</th>\n <th ng-if="vm.license.chat" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'CHAT.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.mail" class="bl text-center">{{ \'MAIL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.mail" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'MAIL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.messaging" class="bl text-center">{{ \'SMS.STATUS\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'SMS.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.openchannel" class="bl text-center">{{ \'OPENCHANNEL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'OPENCHANNEL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.fax" class="bl text-center">{{ \'FAX.STATUS\' | translate }}</th>\n <th ng-if="vm.license.fax" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'FAX.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.whatsapp" class="bl text-center">{{ \'WHATSAPP.STATUS\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'WHATSAPP.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.order.length">\n <td md-cell colspan="19">\n <div layout="row" layout-align="center center">\n <span>{{ \'CHAT.NO_AGENT_ONLINE\' | translate }}</span>\n </div>\n </td>\n </tr>\n <tr md-select="vm.agents[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td class="bt padding-5">\n <div layout="row" layout-align="start center">\n <img class="avatar" ng-src="{{vm.agents[value].userpic && \'api/users/\'+vm.agents[value].id+\'/avatar\' || \'assets/images/avatars/profile.png\'}}">\n <div layout="column">\n <span>{{vm.agents[value].fullname}}</span>\n <span>{{vm.agents[value].internal}}</span>\n </div>\n </div>\n </td>\n <td class="bt padding-5">\n <div layout="row" layout-align="start center" ng-if="vm.license.screenrecording && (vm.agents[value].phoneBarEnableScreenRecordingByAgent || vm.agents[value].phoneBarEnableAutomaticScreenRecording)">\n <div class="column" ng-if="vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: green; font-size: 36px;" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'CHAT.TOOLTIP_SCREENRECORDING_ON\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n <div class="column" ng-if="!vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: gray" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'CHAT.TOOLTIP_SCREENRECORDING_OFF\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n </div>\n </td>\n <td class="bt">\n'+" <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','busy':'indigo-100-bg','*pause':'amber-50-bg','pause':'amber-200-bg'}[vm.agents[value].globalStatus]\">{{\n vm.isPause(vm.agents[value].globalStatus) ? '' : vm.agents[value].globalStatus | uppercase }}\n {{ vm.isPause(vm.agents[value].globalStatus) ? (vm.isPartialPause(vm.agents[value].globalStatus) ?\n '*'+vm.agents[value].pauseType || 'DEFAULT PAUSE' : vm.agents[value].pauseType || 'DEFAULT PAUSE') :\n ''}}</span>\n </td>\n <td class=\"bt custom-column\">\n <timer start-time=\"vm.agents[value].lastLoginAt\"></timer>\n </td>\n <td class=\"bt custom-column\">\n <timer ng-if=\"vm.isPause(vm.agents[value].globalStatus) || vm.isPartialPause(vm.agents[value].globalStatus)\" start-time=\"vm.agents[value].lastPauseAt\"></timer>\n </td>\n <td class=\"bt bl\">\n <div layout=\"row\">\n <span ng-if=\"!vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','talking':'indigo-100-bg','ringing':'orange-400-bg','pause':'amber-200-bg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].voiceStatus | uppercase }}</span>\n <span ng-if=\"vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5 orange-400-bg\">ONHOLD</span>\n </div>\n </td>\n <td class=\"bt bl\">\n <div layout=\"column\">\n <span ng-if=\"vm.agents[value].queue\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].queue }}</span>\n <span ng-if=\"vm.agents[value].destconnectedlinenum\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\" privacy ng-cloak>{{\n vm.agents[value].destconnectedlinenum }}</span>\n <span ng-if=\"vm.agents[value].routealias\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].routealias }}</span>\n <span class=\"padding-5\" ng-if=\"vm.agents[value].queue || vm.agents[value].destconnectedlinenum\">\n <timer start-time=\"vm.agents[value].voiceStatusTime\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">\n </timer>\n </span>\n </div>\n </td>\n <td class=\"bt bl\" ng-if=\"vm.license.chat\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].chatStatus]\">{{\n vm.agents[value].chatStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td md-number class=\"bt text-center font-size-20\" ng-if=\"vm.license.chat\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].chatStatus]\">\n {{ vm.agents[value].chatCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.mail\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].mailStatus]\">{{\n vm.agents[value].mailStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.mail\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].mailStatus]\">\n {{ vm.agents[value].mailCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.messaging\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].smsStatus]\">{{\n vm.agents[value].smsStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.messaging\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].smsStatus]\">\n {{ vm.agents[value].smsCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.openchannel\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].openchannelStatus]\">{{\n vm.agents[value].openchannelStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.openchannel\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].openchannelStatus]\">\n {{ vm.agents[value].openchannelCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.fax\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].faxStatus]\">{{\n vm.agents[value].faxStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.fax\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].faxStatus]\">\n {{ vm.agents[value].faxCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.whatsapp\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].whatsappStatus]\">{{\n vm.agents[value].whatsappStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.whatsapp\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].whatsappStatus]\">\n {{ vm.agents[value].whatsappCurrentCapacity }}</td>\n <td class=\"bl bt padding-5 text-center\" ng-if=\"vm.crudPermissions.canEdit\">\n <md-menu>\n <md-button class=\"md-icon-button\" aria-label=\"More\" translate translate-attr-aria-label=\"STAFF.MORE\" ng-click=\"$mdOpenMenu($event)\">\n <md-icon md-font-icon=\"icon-dots-vertical\"></md-icon>\n </md-button>\n <md-menu-content width=\"4\">\n <md-menu-item>\n <md-button ng-click=\"vm.logout(vm.agents[value], $event)\" translate=\"CHAT.LOGOUT\">\n Logout\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click=\"vm.queueAdd(vm.agents[value], $event)\" translate=\"CHAT.AGENTADD_QUEUE\">\n Add Agent In Queue\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.license.screenrecording && vm.agents[value].phoneBarEnableScreenRecordingByAgent\">\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"CHAT.SCREENRECORDING\">Screen Recording\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if=\"!vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], true)\"><em translate=\"CHAT.START_SCREENRECORDING\">Start\n Screen Recording</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], false)\"><em translate=\"CHAT.STOP_SCREENRECORDING\">Stop\n Screen Recording</em></md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item>\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"CHAT.PAUSE\">Pause</md-button>\n <md-menu-content>\n <md-menu-item>\n <md-button ng-disabled=\" vm.agents[value].voicePause && 'DEFAULT PAUSE' === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value])\"><em translate=\"CHAT.DEFAULT_PAUSE\">Default\n Pause</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.pauses.rows.length\" ng-repeat=\"pause in vm.pauses.rows\">\n <md-button ng-disabled=\"vm.agents[value].voicePause && pause.name === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value], pause.name)\">{{pause.name}}\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.isPause(vm.agents[value].globalStatus)\">\n <md-button ng-click=\"vm.unPause(vm.agents[value])\" translate=\"CHAT.UNPAUSE\">\n Unpause\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label=\"{page: '{{'CHAT.PAGE' | translate}}:', rowsPerPage: '{{'CHAT.ROWSPERPAGE' | translate}}:', of: '{{'CHAT.OF' | translate}}'}\" md-limit=\"vm.query.limit\" md-limit-options=\"[10, 15, 20, 50, 100, 250]\" md-page=\"vm.query.page\" md-total=\"{{vm.filteredAgents.length}}\" md-on-paginate=\"vm.onInit\" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e"),e.put("app/main/apps/chat/views/realtime/queues/view.html",'<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CHAT.QUEUES">Queues</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getQueues">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'CHAT.NAME\' | translate }}</th>\n <th md-column>{{ \'CHAT.LOGGED_IN\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'CHAT.PAUSED\' | translate }}</th>\n <th md-column>{{ \'CHAT.WAITING\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.queues.count > 0">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="CHAT.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="queue" md-select-id="id" ng-repeat="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedIn }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CHAT.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.editQueue($event, queue)" translate="CHAT.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.addAgent($event, queue)" translate="CHAT.AGENTSADD_QUEUE">\n Add Agents to queue\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),e.put("app/main/apps/chat/views/realtime/realtime.html",'<div id="realtime" class="page-layout simple tabbed" layout="column" ng-cloak>\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.AGENTS">Agents</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.QUEUES">Queues</span>\n </md-tab-label>\n </md-tab>\n </md-tabs>\n\n <md-card ui-view></md-card>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/contactmanager/views/companies/companies.html",'<div id="companies" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-account-circle" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="CONTACTMANAGER.COMPANIES">Companies</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="CONTACTMANAGER.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedCompanies.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedCompanies =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="CONTACTMANAGER.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-companies-count">\n <span>{{vm.selectedCompanies.length}}</span>\n <span translate="CONTACTMANAGER.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="CONTACTMANAGER.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllCompanies()" translate="CONTACTMANAGER.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectCompanies()" translate="CONTACTMANAGER.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedCompanies" csv-label="true" filename="companies.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedCompanies($event)" aria-label="delete selected" translate translate-attr-label="CONTACTMANAGER.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- COMPANY TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedCompanies" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getCompanies">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'CONTACTMANAGER.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'CONTACTMANAGER.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'CONTACTMANAGER.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.companies.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="company" md-select-id="id" ng-repeat="company in vm.companies.rows">\n <td md-cell ng-if="company.userpic"><img class="avatar" alt="{{company.name}}" ng-src="api/users/{{company.id}}/avatar" /></td>\n <td md-cell ng-if="!company.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{company.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(company, ev) : vm.createOrEditCompany($event, company)" md-cell class="id ">{{company.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(company, ev) : vm.createOrEditCompany($event, company)" md-cell class="name ">{{company.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(company, ev) : vm.createOrEditCompany($event, company)" md-cell class="description ">{{company.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CONTACTMANAGER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(company, $event )" translate="CONTACTMANAGER.EDIT_COMPANY">\n Edit Company\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotocontactsgoto(company, $event )" translate="CONTACTMANAGER.GOTOCONTACTS_COMPANY">\n goToContacts Company\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(company, $event )" translate="CONTACTMANAGER.DELETE_COMPANY">\n Delete Company\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.companies.count}}" md-on-paginate="vm.getCompanies" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / COMPANY TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD COMPANY BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-company-button" ng-click="vm.createOrEditCompany($event)" aria-label="add company" translate translate-attr-aria-label="CONTACTMANAGER.ADD_COMPANY">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD COMPANY BUTTON --\x3e\n</div>'),e.put("app/main/apps/contactmanager/views/companies/create/dialog.html",'<md-dialog class="company-dialog" aria-label="New Company">\n <form name="companyForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.company.name" ng-required="true" autofocus>\n\n <div ng-messages="companyForm[\'name\'].$error" ng-show="companyForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.company.phone">\n\n <div ng-messages="companyForm[\'phone\'].$error" ng-show="companyForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.VAT">Vat</label>\n <input type="text" name="vat" ng-model="vm.company.vat">\n\n <div ng-messages="companyForm[\'vat\'].$error" ng-show="companyForm[\'vat\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.VAT_REQUIRED">Vat field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.FAX">Fax</label>\n <input type="text" name="fax" ng-model="vm.company.fax">\n\n <div ng-messages="companyForm[\'fax\'].$error" ng-show="companyForm[\'fax\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.FAX_REQUIRED">Fax field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.COMPANYID">CompanyId</label>\n <input type="text" name="companyId" ng-model="vm.company.companyId">\n\n <div ng-messages="companyForm[\'companyId\'].$error" ng-show="companyForm[\'companyId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.COMPANYID_REQUIRED">CompanyId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.TYPE">Type</label>\n <input type="text" name="type" ng-model="vm.company.type">\n\n <div ng-messages="companyForm[\'type\'].$error" ng-show="companyForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.WEBSITE">Website</label>\n <input type="text" name="website" ng-model="vm.company.website" md-maxlength="255">\n\n <div ng-messages="companyForm[\'website\'].$error" ng-show="companyForm[\'website\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.WEBSITE_REQUIRED">Website field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CONTACTMANAGER.ERRORS.WEBSITE_MAX_LENGTH" translate-values=\'{max: 255}\'>Website must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.EMAIL_DOMAIN">Email_Domain</label>\n <input type="text" name="emailDomain" ng-model="vm.company.emailDomain">\n\n <div ng-messages="companyForm[\'emailDomain\'].$error" ng-show="companyForm[\'emailDomain\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.EMAIL_DOMAIN_REQUIRED">Email_Domain field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.company.email">\n\n <div ng-messages="companyForm[\'email\'].$error" ng-show="companyForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="email">\n <span translate="CONTACTMANAGER.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.company.description">\n\n <div ng-messages="companyForm[\'description\'].$error" ng-show="companyForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newCompany" ng-click="vm.saveCompany()" class="send-button md-accent md-raised" ng-disabled="companyForm.$invalid || companyForm.$pristine" aria-label="SAVE" translate="CONTACTMANAGER.SAVE" translate-attr-aria-label="CONTACTMANAGER.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newCompany" ng-click="vm.addNewCompany()" class="send-button md-accent md-raised" ng-disabled="companyForm.$invalid" aria-label="ADD" translate="CONTACTMANAGER.ADD_COMPANY" translate-attr-aria-label="CONTACTMANAGER.ADD_COMPANY">\n ADD COMPANY\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newCompany" ng-click="vm.deleteCompany($event)" aria-label="DELETE" translate translate-attr-aria-label="CONTACTMANAGER.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="CONTACTMANAGER.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/companies/edit/view.html",'<div id="contactmanager-company" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-companies-button md-icon-button" aria-label="Go to companies" ng-click="vm.gotoCompanies()" translate translate-attr-aria-label="CONTACTMANAGER.GO_TO_COMPANIES">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="company-image" hide-xs>\n <img ng-src="assets/images/business/companies.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.company.id}}\n <span ng-if="vm.company.name">{{vm.company.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="CONTACTMANAGER.CREATED_AT"></span> <span>{{vm.company.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.gotogoto(vm.company, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n <md-tooltip><span translate="CONTACTMANAGER.GOTO_COMPANY"></span></md-tooltip>\n <md-icon md-font-icon="icon-forward"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveCompany()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (addressForm.$invalid) || (shipmentAddressForm.$invalid)" translate="CONTACTMANAGER.SAVE" translate-attr-aria-label="CONTACTMANAGER.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="CONTACTMANAGER.GENERAL">GENERAL</span>\n </md-tab-label>\n <md-tab-body>\n <div class="company-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CONTACTMANAGER.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.company.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.company.phone" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'phone\'].$error" ng-show="generalForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.VAT">Vat</label>\n <input type="text" name="vat" ng-model="vm.company.vat" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'vat\'].$error" ng-show="generalForm[\'vat\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.VAT_REQUIRED">Vat field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.FAX">Fax</label>\n <input type="text" name="fax" ng-model="vm.company.fax" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'fax\'].$error" ng-show="generalForm[\'fax\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.FAX_REQUIRED">Fax field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.COMPANYID">CompanyId</label>\n <input type="text" name="companyId" ng-model="vm.company.companyId" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'companyId\'].$error" ng-show="generalForm[\'companyId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.COMPANYID_REQUIRED">CompanyId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.TYPE">Type</label>\n <input type="text" name="type" ng-model="vm.company.type" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'type\'].$error" ng-show="generalForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.WEBSITE">Website</label>\n <input type="text" name="website" ng-model="vm.company.website" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'website\'].$error" ng-show="generalForm[\'website\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.WEBSITE_REQUIRED">Website field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CONTACTMANAGER.ERRORS.WEBSITE_MAX_LENGTH" translate-values=\'{max: 255}\'>Website must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.EMAIL_DOMAIN">Email_Domain</label>\n <input type="text" name="emailDomain" ng-model="vm.company.emailDomain" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'emailDomain\'].$error" ng-show="generalForm[\'emailDomain\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.EMAIL_DOMAIN_REQUIRED">Email_Domain field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.company.email" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'email\'].$error" ng-show="generalForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="email">\n <span translate="CONTACTMANAGER.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.company.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CONTACTMANAGER.ADDRESS">ADDRESS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="company-detail-form-container address md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CONTACTMANAGER.ADDRESS">ADDRESS</div>\n </div>\n <form name="addressForm" novalidate>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.STREET">Street</label>\n <input type="text" name="street" ng-model="vm.company.street" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="addressForm[\'street\'].$error" ng-show="addressForm[\'street\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.STREET_REQUIRED">Street field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.POSTAL_CODE">Postal_Code</label>\n <input type="text" name="postalCode" ng-model="vm.company.postalCode" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="addressForm[\'postalCode\'].$error" ng-show="addressForm[\'postalCode\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.POSTAL_CODE_REQUIRED">Postal_Code field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.CITY">City</label>\n <input type="text" name="city" ng-model="vm.company.city" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="addressForm[\'city\'].$error" ng-show="addressForm[\'city\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.CITY_REQUIRED">City field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.COUNTRY">Country</label>\n <input type="text" name="country" ng-model="vm.company.country" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="addressForm[\'country\'].$error" ng-show="addressForm[\'country\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.COUNTRY_REQUIRED">Country field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CONTACTMANAGER.SHIPMENTADDRESS">SHIPMENTADDRESS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="company-detail-form-container shipmentaddress md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CONTACTMANAGER.SHIPMENTADDRESS">SHIPMENTADDRESS</div>\n </div>\n <form name="shipmentAddressForm" novalidate>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.STREET">Street</label>\n <input type="text" name="sStreet" ng-model="vm.company.sStreet" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="shipmentAddressForm[\'sStreet\'].$error" ng-show="shipmentAddressForm[\'sStreet\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.STREET_REQUIRED">Street field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.POSTAL_CODE">Postal_Code</label>\n <input type="text" name="sPostalCode" ng-model="vm.company.sPostalCode" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="shipmentAddressForm[\'sPostalCode\'].$error" ng-show="shipmentAddressForm[\'sPostalCode\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.POSTAL_CODE_REQUIRED">Postal_Code field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.CITY">City</label>\n <input type="text" name="sCity" ng-model="vm.company.sCity" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="shipmentAddressForm[\'sCity\'].$error" ng-show="shipmentAddressForm[\'sCity\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.CITY_REQUIRED">City field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.COUNTRY">Country</label>\n <input type="text" name="sCountry" ng-model="vm.company.sCountry" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="shipmentAddressForm[\'sCountry\'].$error" ng-show="shipmentAddressForm[\'sCountry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.COUNTRY_REQUIRED">Country field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/contactmanager/views/contacts/contacts.html",'<div id="contacts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-account-multiple" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="CONTACTMANAGER.CONTACTS">Contacts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="CONTACTMANAGER.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedContacts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n <div class="close-button-wrapper" ng-click="vm.selectedContacts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="CONTACTMANAGER.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n <div>\n <span class="selected-contacts-count">\n <span>{{vm.selectedContacts.length}}</span>\n <span translate="CONTACTMANAGER.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="CONTACTS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllContacts()" translate="CONTACTMANAGER.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectContacts()" translate="CONTACTMANAGER.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedContacts" csv-label="true" filename="contacts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm.crudPermissions.canDelete" class="md-icon-button" ng-click="vm.deleteSelectedContacts($event)" aria-label="delete selected" translate translate-attr-label="CONTACTS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n <div layout="row">\n <div class="column" flex="20">\n <md-card>\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm.selectedList = null; vm.selectedCompany = null; vm.selectedTags = []">\n <md-icon md-font-icon="icon-refresh"></md-icon>{{ \'CONTACTMANAGER.ALL_CONTACTS\' | translate }}\n </button>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.SELECT_LIST">Select a list</label>\n <md-select placeholder="Select a list" ng-model="vm.selectedList" ng-disabled="vm.lists.count === 0">\n <md-option ng-value="null"><em translate="CONTACTMANAGER.ALL">All</em></md-option>\n <md-option ng-value="list.id" ng-repeat="list in vm.lists.rows">{{list.name}}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.SELECT_COMPANY">Select a company</label>\n <md-select placeholder="Select a company" flex="100" ng-model="vm.selectedCompany" ng-disabled="vm.companies.count === 0">\n <md-option ng-value="null"><em translate="CONTACTMANAGER.ALL">All</em></md-option>\n <md-option ng-value="company.id" ng-repeat="company in vm.companies.rows">{{company.name}}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.SELECT_TAGS">Select one or more tags</label>\n <md-select multiple placeholder="Select one or more tags" flex="100" ng-model="vm.query.tag" ng-change="vm.getContacts()">\n <md-option ng-value="tag.id" ng-repeat="tag in vm.tags.rows">{{tag.name}}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n\n \x3c!-- USER TABLE --\x3e\n <md-card flex="80">\n <md-table-container ng-init="vm.getAssignedCompanies()">\n <table md-table md-row-select multiple ng-model="vm.selectedContacts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getContacts">\n <tr md-row>\n <th md-column md-order-by="id">ID</th>\n <th md-column md-order-by="firstName">{{\'CONTACTMANAGER.FULLNAME\' | translate}}</th>\n <th md-column md-order-by="phone">{{\'CONTACTMANAGER.PHONE\' | translate}}</th>\n <th md-column md-order-by="email">{{\'CONTACTMANAGER.EMAIL\' | translate}}</th>\n <th md-column md-order-by="createdAt">{{\'CONTACTMANAGER.CREATED_AT\' | translate}}</th>\n <th md-column md-order-by="ListId">{{\'CONTACTMANAGER.LIST\' | translate}}</th>\n <th md-column md-order-by="CompanyId">{{\'CONTACTMANAGER.COMPANY\' | translate}}</th>\n <th md-column md-order-by="tags">{{\'CONTACTMANAGER.TAGS\' | translate}}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.contacts.rows.length">\n <td md-cell colspan="8">\n <div layout="row" layout-align="center center">\n <span translate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="contact" md-select-id="id" ng-repeat="contact in vm.contacts.rows">\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : vm.createOrEditContact($event, contact)" md-cell class="id">{{contact.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : vm.createOrEditContact($event, contact)" md-cell class="firstName" privacy ng-cloak>{{contact.firstName}} {{contact.lastName}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : vm.createOrEditContact($event, contact)" md-cell class="phone" privacy ng-cloak>{{contact.phone}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : vm.createOrEditContact($event, contact)" md-cell class="email" privacy ng-cloak>{{contact.email}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : vm.createOrEditContact($event, contact)" md-cell class="createdAt">{{contact.createdAt | date:\'medium\'}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : vm.createOrEditContact($event, contact)" md-cell class="list">{{vm.listsMap[contact.ListId]}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : vm.createOrEditContact($event, contact)" md-cell class="company">{{vm.companiesMap[contact.CompanyId]}}</td>\n <td md-cell class="tag">\n <div ng-if="contact.Tags.length">\n <div ng-if="contact.Tags.length == 1" layout="column" layout-align="center center">\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': contact.Tags[0].color }"></md-icon>\n <span class="text-truncate">{{contact.Tags[0].name}}</span>\n </div>\n <div ng-if="contact.Tags.length > 1" layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in contact.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag"></md-icon>\n </div>\n </div>\n </td>\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CONTACTMANAGER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editdialog(contact, ev)" translate="CONTACTMANAGER.EDIT_CONTACT">\n Edit Contact\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.mergeContact(ev, contact)" translate="CONTACTMANAGER.MERGE_CONTACT">\n Merge Contact\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.duplicateContact(ev, contact)" translate="CONTACTMANAGER.DUPLICATE_CONTACT">\n Duplicate Contact\n </md-button>\n </md-menu-item>\n <md-menu-divider ng-if="vm.crudPermissions.canEdit && vm.crudPermissions.canDelete">\n </md-menu-divider>\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteconfirm(contact, ev)" translate="CONTACTMANAGER.DELETE_CONTACT">\n Delete Contact\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.contacts.count}}" md-on-paginate="vm.getContacts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / USER TABLE --\x3e\n </div>\n </div>\n \x3c!-- / MAIN --\x3e\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD USER BUTTON --\x3e\n <md-fab-speed-dial id="add-contact-button" ng-if="vm.crudPermissions.canEdit" ng-hide="vm.options.hidden" md-direction="up" md-open="vm.options.isOpen" class="md-scale md-fab" ng-class="{ \'md-hover-full\': vm.options.hover }" ng-mouseenter="vm.options.isOpen=true" ng-mouseleave="vm.options.isOpen=false">\n <md-fab-trigger>\n <md-button aria-label="menu" class="md-fab md-accent">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </md-fab-trigger>\n <md-fab-actions>\n <md-button class="md-fab md-mini md-warn" flow-btn flow-init="vm.ngFlowOptions" flow-files-submitted="$flow.upload()" flow-file-success="vm.importContacts($file, $message, $flow)" flow-file-added="vm.fileAdded($file)" aria-label="Select File" translate translate-attr-aria-label="CONTACTMANAGER.IMPORT_CONTACTS">\n <md-tooltip md-direction="left" md-visible="tooltipVisible" md-autohide="false">\n {{\'CONTACTMANAGER.IMPORT_CONTACTS\' | translate}}\n </md-tooltip>\n <md-icon md-font-icon="icon-upload"></md-icon>\n </md-button>\n <md-button class="md-fab md-mini md-accent" ng-click="vm.createOrEditContact($event)" aria-label="add contact" translate translate-attr-aria-label="CONTACTMANAGER.ADD_CONTACT">\n <md-tooltip md-direction="left" md-visible="tooltipVisible" md-autohide="false">\n {{\'CONTACTMANAGER.ADD_CONTACT\' | translate}}\n </md-tooltip>\n <md-icon md-font-icon="icon-account-plus"></md-icon>\n </md-button>\n </md-fab-actions>\n </md-fab-speed-dial>\n \x3c!-- / ADD USER BUTTON --\x3e\n</div>'),e.put("app/main/apps/contactmanager/views/contacts/create/dialog.html",'<md-dialog class="cm-contact-dialog" aria-label="New Contact">\n <form name="contactForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.FIRSTNAME">First name</label>\n <input name="firstName" ng-model="vm.contact.firstName" required md-autofocus privacy="!vm.crudPermissions.canEdit" ng-cloak>\n\n <div ng-messages="contactForm.firstName.$error" ng-show="contactForm.firstName.$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.FIRSTNAME_REQUIRED">First name field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.LASTNAME">Last name</label>\n <input name="lastName" ng-model="vm.contact.lastName" privacy="!vm.crudPermissions.canEdit" ng-cloak>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.PHONE">Phone</label>\n <input name="phone" ng-model="vm.contact.phone" privacy="!vm.crudPermissions.canEdit" ng-cloak>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.EMAIL">Email</label>\n <input name="email" type="email" ng-model="vm.contact.email" privacy="!vm.crudPermissions.canEdit" ng-cloak>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.MOBILE">Mobile</label>\n <input name="mobile" ng-model="vm.contact.mobile" privacy="!vm.crudPermissions.canEdit" ng-cloak>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.FAX">Fax</label>\n <input name="fax" ng-model="vm.contact.fax" privacy="!vm.crudPermissions.canEdit" ng-cloak>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.LIST">List</label>\n <md-select name="list" ng-model="vm.contact.ListId" ng-disabled="vm.contact.id && vm.contact.ListId" ng-init="vm.getCustomFields(vm.contact.ListId)" ng-change="vm.getCustomFields(vm.contact.ListId)" required>\n <md-optgroup label="Lists">\n <md-option ng-value="list.id" ng-repeat="list in vm.lists.rows">{{list.name}}</md-option>\n <md-option ng-value="null"><em translate="CONTACTMANAGER.NONE">None</em></md-option>\n </md-optgroup>\n </md-select>\n\n <div ng-messages="contactForm.list.$error" ng-show="contactForm.list.$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div ng-repeat="customField in vm.customFields.rows" class="md-block" ng-switch="customField.type">\n <div ng-switch-when="datetime">\n <label>{{customField.alias}}</label>\n\n <div ng-init="vm.contact[\'cf_\' + customField.id] = vm.getDateFromString(vm.contact[\'cf_\' + customField.id])">\n <mdp-date-picker mdp-open-on-click ng-required="customField.required" mdp-format="YYYY-MM-DD" ng-model="vm.contact[\'cf_\' + customField.id]"></mdp-date-picker>\n <mdp-time-picker mdp-open-on-click mdp-placeholder="Time" ng-required="customField.required" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.contact[\'cf_\' + customField.id]">\n </mdp-time-picker>\n </div>\n </div>\n\n <div ng-switch-when="select">\n <label>{{customField.alias}}</label>\n\n <md-select ng-model="vm.contact[\'cf_\' + customField.id]" ng-required="customField.required">\n <md-option ng-repeat="value in customField.values" ng-value="value.value">{{value.value}}</md-option>\n <md-option ng-value="null"><em translate="CONTACTMANAGER.NONE">None</em></md-option>\n </md-select>\n </div>\n\n <div ng-switch-when="switch">\n <md-switch aria-label="{{customField.alias}}" ng-model="vm.contact[\'cf_\' + customField.id]" ng-true-value="1" ng-false-value="0">\n {{customField.alias}}\n </md-switch>\n </div>\n\n <md-input-container ng-switch-default>\n <label>{{customField.alias}}</label>\n\n <input type="{{customField.type}}" ng-model="vm.contact[\'cf_\' + customField.id]" ng-required="customField.required">\n </md-input-container>\n </div>\n\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.COMPANY">Company</label>\n <md-select name="company" ng-model="vm.contact.CompanyId">\n <md-option ng-value="company.id" ng-repeat="company in vm.companies.rows" ng-hide="!vm.contact.CompanyId && company.canSelect === false" ng-disabled="company.canSelect === false">\n {{company.name}}</md-option>\n </md-select>\n </md-input-container>\n\n <div ng-if="!vm.allFields" layout="row" layout-align="center center">\n <md-button class="md-accent" ng-click="vm.allFields = true" translate="CONTACTMANAGER.SHOW_ALL_FIELDS">Show All\n Fields</md-button>\n </div>\n\n <md-input-container class="md-block" ng-if="vm.allFields" flex-gt-sm="" ng-init="vm.contact.dateOfBirth = vm.getDateFromString(vm.contact.dateOfBirth)">\n <label translate="CONTACTMANAGER.DATE_OF_BIRTH">Date of Birth</label>\n <mdp-date-picker mdp-open-on-click mdp-format="YYYY-MM-DD" name="dateOfBirth" ng-model="vm.contact.dateOfBirth">\n </mdp-date-picker>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.allFields">\n <label translate="CONTACTMANAGER.COUNTRY">Country</label>\n <input type="text" name="country" ng-model="vm.contact.country">\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.allFields">\n <label translate="CONTACTMANAGER.CITY">City</label>\n <input type="text" name="city" ng-model="vm.contact.city">\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.allFields">\n <label translate="CONTACTMANAGER.STREET">Street</label>\n <input type="text" name="street" ng-model="vm.contact.street">\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.allFields">\n <label translate="CONTACTMANAGER.POSTAL_CODE">Postal Code</label>\n <input type="text" name="postalCode" ng-model="vm.contact.postalCode">\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.allFields">\n <label translate="CONTACTMANAGER.NOTES">Notes</label>\n <input type="text" name="description" ng-model="vm.contact.description">\n </md-input-container>\n\n <div ng-if="vm.allFields" layout="row" layout-align="center center">\n <md-button class="md-accent" ng-click="vm.allFields = false" translate="CONTACTMANAGER.FEWER_FIELDS">Fewer\n Fields</md-button>\n </div>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-if="!vm.newContact" ng-click="vm.saveContact()" class="send-button md-accent md-raised" ng-disabled="contactForm.$invalid || contactForm.$pristine" aria-label="SAVE" translate="CONTACTMANAGER.SAVE" translate-attr-aria-label="CONTACTMANAGER.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.newContact" ng-click="vm.addNewContact()" class="send-button md-accent md-raised" ng-disabled="contactForm.$invalid || contactForm.$pristine" aria-label="ADD" translate="CONTACTMANAGER.ADD_CONTACT" translate-attr-aria-label="CONTACTMANAGER.ADD_CONTACT">\n ADD CONTACT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newContact" ng-click="vm.deleteContact($event)" aria-label="DELETE" translate translate-attr-aria-label="CONTACTMANAGER.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="CONTACTMANAGER.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/contacts/duplicate/dialog.html",'<md-dialog class="cm-contact-dialog" aria-label="{{ \'CONTACTMANAGER.DUPLICATE_CONTACT\' | translate }}">\n <form name="contactForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.LIST">List</label>\n <md-select name="list" ng-model="vm.contact.ListId">\n <md-option ng-value="list.id" ng-repeat="list in vm.lists.rows">{{list.name}}</md-option>\n </md-select>\n\n <div ng-messages="contactForm.list.$error" ng-show="contactForm.list.$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.addNewContact()" class="send-button md-accent md-raised" ng-disabled="contactForm.$invalid" aria-label="ADD" translate="CONTACTMANAGER.ADD_CONTACT" translate-attr-aria-label="CONTACTMANAGER.ADD_CONTACT">\n ADD CONTACT\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/contacts/edit/hoppers/dialog.html",'<md-dialog class="hopper-dialog" aria-label="New Hopper">\n <form name="hopperForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <div flex class="md-block">\n <mdp-date-picker mdp-open-on-click name="scheduledatDate" mdp-placeholder="Date" mdp-format="YYYY-MM-DD" ng-model="vm.hopper.scheduledat" ng-init="vm.hopper.scheduledat = vm.getDateFromString(vm.hopper.scheduledat)">\n <div ng-messages="hopperForm.dateRangeFrom.$error" ng-show="hopperForm.dateRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.DATE_REQUIRED">Date is required</span>\n </div>\n <div ng-message="format">\n <span translate="CONTACTMANAGER.ERRORS.DATE_INVALID">Date is invalid</span>\n </div>\n </div>\n </mdp-date-picker>\n </div>\n\n <div flex class="md-block">\n <mdp-time-picker mdp-open-on-click name="scheduledatTime" mdp-placeholder="Time" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.hopper.scheduledat" ng-init="vm.hopper.scheduledat = vm.getDateFromString(vm.hopper.scheduledat)">\n <div ng-messages="hopperForm.timeRangeFrom.$error" ng-show="hopperForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.TIME_REQUIRED">Time is required</span>\n </div>\n <div ng-message="format">\n <span translate="CONTACTMANAGER.ERRORS.TIME_INVALID">Time is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-if="!vm.newHopper" ng-click="vm.saveHopper()" class="send-button md-accent md-raised" ng-disabled="hopperForm.$invalid || hopperForm.$pristine" aria-label="SAVE" translate="CONTACTMANAGER.SAVE" translate-attr-aria-label="CONTACTMANAGER.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.newHopper" ng-click="vm.addNewHopper()" class="send-button md-accent md-raised" ng-disabled="hopperForm.$invalid" aria-label="ADD" translate="CONTACTMANAGER.ADD_HOPPER" translate-attr-aria-label="CONTACTMANAGER.ADD_HOPPER">\n ADD HOPPER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="!vm.newHopper" ng-click="vm.deleteHopper($event)" aria-label="DELETE" translate translate-attr-aria-label="CONTACTMANAGER.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="CONTACTMANAGER.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/contacts/edit/view.html",'<div id="cm-contact" class="page-layout simple tabbed" layout="column" ng-init="vm.onInit()">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-contacts-button md-icon-button" aria-label="Go to contacts" ng-click="vm.gotoContacts()" translate translate-attr-aria-label="CONTACTMANAGER.GO_TO_CONTACTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="contact-image" hide-xs>\n <img ng-src="assets/images/business/contacts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.contact.id}} {{vm.contact.firstName}} {{vm.contact.lastName}}\n </div>\n <div class="subtitle secondary-text">\n <span translate="CONTACTMANAGER.CREATED_AT"></span> <span>{{vm.contact.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-if="vm.contact.role && vm.contact.role !== \'admin\'" ng-controller="ContactQueueAddButtonController as vm_contact_qa" ng-cloak>\n <md-fab-speed-dial ng-hide="vm_contact_qa.hidden" md-direction="left" md-open="vm_contact_qa.isOpen" class="md-scale md-fab" ng-class="{ \'md-hover-full\': vm_contact_qa.hover }" ng-mouseenter="vm_contact_qa.isOpen=true" ng-mouseleave="vm_contact_qa.isOpen=false">\n <md-fab-trigger>\n <md-button aria-label="menu" class="md-fab md-primary md-icon-button">\n <md-tooltip md-direction="top" md-visible="tooltipVisible">Channels</md-tooltip>\n <md-icon md-font-icon="icon-eye" aria-label="channels"></md-icon>\n </md-button>\n </md-fab-trigger>\n <md-fab-actions>\n <div ng-repeat="channel in vm_contact_qa.channels">\n <md-button aria-label="{{channel.name}}" class="md-fab md-raised md-icon-button md-mini" ng-click="vm_contact_qa.openDialog($event, vm.contact, channel)">\n <md-tooltip md-direction="{{channel.direction}}" md-visible="tooltipVisible" md-autohide="false">\n {{channel.name}}\n </md-tooltip>\n <md-icon md-font-icon="{{channel.icon}}" aria-label="{{channel.name}}"></md-icon>\n </md-button>\n </div>\n </md-fab-actions>\n </md-fab-speed-dial>\n </div>\n\n <div ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.duplicateContact($event)" class="md-fab md-warn md-icon-button" aria-label="DUPLICATE">\n <md-icon md-font-icon="icon-file-multiple"></md-icon>\n </md-button>\n <md-button type="submit" ng-click="vm.saveContact()" class="send-button md-accent md-raised" ng-disabled="detailForm.$pristine && customFieldsForm.$pristine && socialForm.$pristine" translate="CONTACTMANAGER.SAVE" translate-attr-aria-label="CONTACTMANAGER.SAVE">\n SAVE\n </md-button>\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="CONTACTMANAGER.DETAIL">DETAIL</span>\n </md-tab-label>\n\n <md-tab-body>\n <div layout="row">\n <div layout="column" flex="70">\n <md-card class="contact-detail-form-container personal_info md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text text-truncate" translate="CONTACTMANAGER.PERSONAL_INFO">PERSONAL_INFO\n </div>\n </div>\n <form name="detailForm" novalidate>\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n \x3c!-- fistName --\x3e\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.FIRSTNAME">First Name</label>\n <md-icon md-font-icon="icon-account" class="firstname"></md-icon>\n <input type="text" name="firstName" ng-model="vm.contact.firstName" class="text-truncate" required ng-disabled="!vm.crudPermissions.canEdit" privacy="!vm.crudPermissions.canEdit" ng-cloak>\n <div ng-messages="detailForm.firstName.$error" ng-show="detailForm.firstName.$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.FIRSTNAME_REQUIRED">First name field is required</span>\n </div>\n </div>\n </md-input-container>\n <div flex="5"></div>\n \x3c!-- lastName --\x3e\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.LASTNAME">Last Name</label>\n <input type="text" name="lastName" ng-model="vm.contact.lastName" class="text-truncate" ng-disabled="!vm.crudPermissions.canEdit" privacy="!vm.crudPermissions.canEdit" ng-cloak>\n </md-input-container>\n\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n \x3c!-- phone --\x3e\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.PHONE">Phone</label>\n <md-icon md-font-icon="icon-phone"></md-icon>\n <input type="text" name="phone" ng-model="vm.contact.phone" class="text-truncate" ng-disabled="!vm.crudPermissions.canEdit" privacy="!vm.crudPermissions.canEdit" ng-cloak>\n </md-input-container>\n <div flex="5"></div>\n \x3c!-- mobile --\x3e\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.MOBILE">Mobile</label>\n <md-icon md-font-icon="icon-cellphone-iphone"></md-icon>\n <input type="text" name="mobile" ng-model="vm.contact.mobile" class="text-truncate" ng-disabled="!vm.crudPermissions.canEdit" privacy="!vm.crudPermissions.canEdit" ng-cloak>\n </md-input-container>\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n \x3c!-- email --\x3e\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.EMAIL">Email</label>\n <md-icon md-font-icon="icon-email" class="email"></md-icon>\n <input type="email" name="email" ng-model="vm.contact.email" class="text-truncate" ng-disabled="!vm.crudPermissions.canEdit" privacy="!vm.crudPermissions.canEdit" ng-cloak>\n <div ng-messages="detailForm.firstName.$error" ng-show="detailForm.firstName.$touched" role="alert">\n <div ng-message="email">\n <span translate="CONTACTMANAGER.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail\n address</span>\n </div>\n </div>\n </md-input-container>\n <div flex="5"></div>\n \x3c!-- fax --\x3e\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.FAX">Fax</label>\n <md-icon md-font-icon="icon-deskphone"></md-icon>\n <input type="text" name="fax" ng-model="vm.contact.fax" ng-disabled="!vm.crudPermissions.canEdit" privacy="!vm.crudPermissions.canEdit" ng-cloak>\n </md-input-container>\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="" ng-init="vm.contact.dateOfBirth = vm.getDateFromString(vm.contact.dateOfBirth)">\n <label translate="CONTACTMANAGER.DATE_OF_BIRTH">Date of Birth</label>\n <mdp-date-picker mdp-open-on-click mdp-format="YYYY-MM-DD" name="dateOfBirth" ng-model="vm.contact.dateOfBirth" mdp-disabled="!vm.crudPermissions.canEdit"></mdp-date-picker>\n </md-input-container>\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container ng-if="vm.companies.rows.length" class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.COMPANY">Company</label>\n <md-icon md-font-icon="icon-domain"></md-icon>\n <md-select name="company" ng-model="vm.contact.CompanyId" ng-disabled="!vm.crudPermissions.canEdit">\n <md-optgroup label="Companies">\n <md-option ng-value="company.id" ng-repeat="company in vm.companies.rows" ng-disabled="company.canSelect === false">{{company.name}}</md-option>\n <md-option ng-value=" null"><em translate="CONTACTMANAGER.NONE">None</em></md-option>\n </md-optgroup>\n </md-select>\n <md-icon class="pointer" ng-show="vm.contact.CompanyId" md-font-icon="icon-information-outline" ng-click="vm.editCompany($event, vm.contact.CompanyId)"></md-icon>\n </md-input-container>\n <section ng-if="!vm.companies.rows.length" flex-gt-sm="">\n <md-icon md-font-icon="icon-briefcase"></md-icon>\n <label translate="CONTACTMANAGER.NO_COMPANIES">No Companies</label>\n </section>\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container ng-if="vm.tags.rows.length" class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.TAGS">Tags</label>\n <md-icon md-font-icon="icon-tag"></md-icon>\n <md-select ng-model="vm.Tags" multiple ng-disabled="!vm.crudPermissions.canEdit">\n <md-optgroup label="Tags">\n <md-option ng-value="tag.id" ng-repeat="tag in vm.tags.rows" ng-disabled="tag.canSelect === false">{{tag.name}}</md-option>\n </md-optgroup>\n </md-select>\n </md-input-container>\n <section ng-if="!vm.tags.rows.length" flex-gt-sm="">\n <md-icon md-font-icon="icon-tag"></md-icon>\n <label translate="CONTACTMANAGER.NO_TAG">No Tags</label>\n <md-button class="md-accent" translate="CONTACTMANAGER.ADD_TAG">Add Tag</md-button>\n </section>\n </div>\n\n <div ng-if="!vm.allFields" layout="row" layout-align="center center">\n <md-button class="md-accent" ng-click="vm.allFields = true" translate="CONTACTMANAGER.SHOW_ALL_FIELDS">Show All Fields</md-button>\n </div>\n\n <div ng-if="vm.allFields">\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n \x3c!-- country --\x3e\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.COUNTRY">Country</label>\n <md-icon md-font-icon="icon-home" class="country"></md-icon>\n <input type="text" name="country" ng-model="vm.contact.country" class="text-truncate" ng-disabled="!vm.crudPermissions.canEdit">\n </md-input-container>\n <div flex="5"></div>\n \x3c!-- city --\x3e\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.CITY">City</label>\n <input type="text" name="city" ng-model="vm.contact.city" ng-disabled="!vm.crudPermissions.canEdit">\n </md-input-container>\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <div flex="5"></div>\n \x3c!-- street --\x3e\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.STREET">Street</label>\n <input type="text" name="street" ng-model="vm.contact.street" ng-disabled="!vm.crudPermissions.canEdit">\n </md-input-container>\n <div flex="5"></div>\n \x3c!-- postalCode --\x3e\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.POSTALCODE">Postal Code</label>\n <input type="text" name="postalCode" ng-model="vm.contact.postalCode" ng-disabled="!vm.crudPermissions.canEdit">\n </md-input-container>\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate translate-attr-placeholder="CONTACTMANAGER.NOTES">Notes</label>\n <md-icon md-font-icon="icon-note"></md-icon>\n <textarea ng-model="vm.contact.description" type="text" max-rows="4" ng-disabled="!vm.crudPermissions.canEdit"></textarea>\n </md-input-container>\n </div>\n\n <div layout="row" layout-align="center center">\n <md-button class="md-accent" ng-click="vm.allFields = false" translate="CONTACTMANAGER.FEWER_FIELDS">Fewer Fields\n </md-button>\n </div>\n\n </div>\n </form>\n </md-card>\n <md-card class="contact-detail-form-container personal_info md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text text-truncate" translate="CONTACTMANAGER.SOCIAL">Social</div>\n </div>\n <form name="socialForm" novalidate>\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Facebook</label>\n <md-icon md-font-icon="icon-facebook" class="facebook"></md-icon>\n <input type="text" name="facebook" ng-model="vm.contact.facebook" class="text-truncate" ng-disabled="!vm.crudPermissions.canEdit">\n </md-input-container>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Twitter</label>\n <md-icon md-font-icon="icon-twitter" class="twitter"></md-icon>\n <input type="text" name="twitter" ng-model="vm.contact.twitter" class="text-truncate" ng-disabled="!vm.crudPermissions.canEdit">\n </md-input-container>\n </div>\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Line</label>\n <md-icon md-font-icon="fab fa-line"></md-icon>\n <input type="text" name="line" ng-model="vm.contact.line" class="text-truncate">\n </md-input-container>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Viber</label>\n <md-icon md-font-icon="fab fa-viber"></md-icon>\n <input type="text" name="viber" ng-model="vm.contact.viber" class="text-truncate">\n </md-input-container>\n </div>\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label>WeChat</label>\n <md-icon md-font-icon="fab fa-weixin"></md-icon>\n <input type="text" name="wechat" ng-model="vm.contact.wechat" class="text-truncate">\n </md-input-container>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Telegram</label>\n <md-icon md-font-icon="icon-telegram"></md-icon>\n <input type="text" name="telegram" ng-model="vm.contact.telegram" class="text-truncate">\n </md-input-container>\n </div>\n </form>\n </md-card>\n </div>\n\n <div flex></div>\n\n <div class="contact-detail-form-container personal_info md-background-bg md-whiteframe-1dp" flex="25">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text text-truncate" translate="CONTACTMANAGER.CUSTOM_FIELDS">CUSTOM FIELDS\n </div>\n </div>\n <form name="customFieldsForm" novalidate>\n <md-input-container class="md-block">\n <label translate translate-attr-placeholder="CONTACTMANAGER.LIST">List</label>\n <md-select name="list" ng-model="vm.contact.ListId" md-on-close="vm.onSelectList($event)" ng-disabled="vm.contact.ListId">\n <md-optgroup label="Lists">\n <md-option ng-value="list.id" ng-repeat="list in vm.lists.rows">#{{list.id}} - {{list.name}}\n </md-option>\n <md-option ng-value="null"><em translate="CONTACTMANAGER.NONE">None</em></md-option>\n </md-optgroup>\n </md-select>\n </md-input-container>\n <div ng-repeat="customField in vm.customFields.rows" ng-switch="customField.type">\n <md-input-container class="md-block" ng-switch-when="datetime">\n <label>{{customField.alias}}</label>\n <div ng-init="vm.contact[\'cf_\' + customField.id] = vm.getDateFromString(vm.contact[\'cf_\' + customField.id])">\n <mdp-date-picker mdp-open-on-click ng-required="customField.required" mdp-format="YYYY-MM-DD" ng-model="vm.contact[\'cf_\' + customField.id]"></mdp-date-picker>\n <mdp-time-picker mdp-open-on-click mdp-placeholder="Time" ng-required="customField.required" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.contact[\'cf_\' + customField.id]">\n </mdp-time-picker>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-switch-when="select">\n <label>{{customField.alias}}</label>\n <md-select ng-model="vm.contact[\'cf_\' + customField.id]" ng-required="customField.required" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-repeat="value in customField.values" ng-value="value.value">{{value.value}}\n </md-option>\n <md-option ng-value="null"><em translate="CONTACTMANAGER.NONE">None</em></md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-block" ng-switch-when="switch">\n <md-switch aria-label="{{customField.alias}}" ng-model="vm.contact[\'cf_\' + customField.id]" ng-true-value="1" ng-false-value="0">\n {{customField.alias}}\n </md-switch>\n </md-input-container>\n\n <md-input-container class="md-block" ng-switch-default>\n <label>{{customField.alias}}</label>\n <input type="{{customField.type}}" ng-model="vm.contact[\'cf_\' + customField.id]" ng-required="customField.required" ng-disabled="!vm.crudPermissions.canEdit">\n </md-input-container>\n </div>\n </form>\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n\n <md-tab ng-if="vm.license.dialer">\n <md-tab-label>\n <span translate="CONTACTMANAGER.MOTION_BULL">MOTION BULL</span>\n </md-tab-label>\n\n <md-tab-body>\n <div layout="row">\n <div class="contact-detail-form-container personal_info md-background-bg md-whiteframe-1dp" flex>\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CONTACTMANAGER.HOPPER">Hopper</span>\n <div flex></div>\n <ms-search-bar on-search="vm.queryHopper.filter = query;" on-collapse="vm.queryHopper.filter = undefined;" debounce="300"></ms-search-bar>\n <md-button class="md-icon-button" ng-click="vm.getHoppers()" aria-label="reload" translate translate-attr-label="CONTACTMANAGER.RELOAD">\n <md-tooltip>{{\'CONTACTMANAGER.RELOAD\' | translate}}</md-tooltip>\n <md-icon md-font-icon="icon-reload"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n \x3c!-- HOPPER TABLE --\x3e\n <md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.queryHopper.sort" md-on-reorder="vm.getHoppers">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'CONTACTMANAGER.ID\' | translate }}</th>\n <th md-column md-order-by="phone">{{ \'CONTACTMANAGER.PHONE\' | translate }}</th>\n <th md-column md-order-by="scheduledat">{{ \'CONTACTMANAGER.SCHEDULEDAT\' | translate }}</th>\n <th md-column md-order-by="priority">{{ \'MOTIONDIALER.PRIORITY\' | translate }}</th>\n <th md-column md-order-by="recallme">{{ \'CONTACTMANAGER.RECALLME\' | translate }}</th>\n <th md-column md-order-by="VoiceQueueId">{{ \'CONTACTMANAGER.VOICEQUEUEID\' | translate }}</th>\n <th md-column md-order-by="CampaignId">{{ \'CONTACTMANAGER.CAMPAIGNID\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.hoppers.count">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(id, hopper) in vm.hoppers.rows">\n <td md-cell>{{hopper.id}}</td>\n <td md-cell privacy ng-cloak>{{hopper.phone}}</td>\n <td md-cell>{{hopper.scheduledat | date:\'medium\'}}</td>\n <td md-cell>{{ vm.arraypriority[hopper.priority].option }}</td>\n <td md-cell class="recallme ">\n <md-icon md-colors="{color: {{hopper.recallme ? \'\\\'green\\\'\' : \'\\\'red\\\'\'}}}" md-font-icon="{{hopper.recallme? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td md-cell>{{hopper.VoiceQueueId}}</td>\n <td md-cell>{{hopper.CampaignId}}</td>\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CONTACTMANAGER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-if="vm.crudPermissions.canEdit && hopper.VoiceQueueId" ng-click="vm.editHopper($event, hopper)" translate="CONTACTMANAGER.EDIT_HOPPER">\n Edit Hopper\n </md-button>\n <md-button ng-if="vm.crudPermissions.canEdit && hopper.CampaignId" ng-click="vm.createOrEditIvrCampaignHopper($event, hopper)" translate="CONTACTMANAGER.EDIT_HOPPER">\n Edit Hopper\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.crudPermissions.canDelete && vm.deleteconfirm(hopper, $event)" translate="CONTACTMANAGER.DELETE_HOPPER">\n Delete Hopper\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.queryHopper.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.queryHopper.page" md-total="{{vm.hoppers.count}}" md-on-paginate="vm.getHoppers" md-page-select></md-table-pagination>\n \x3c!-- / HOPPER TABLE --\x3e\n </div>\n </div>\n\n <div layout="row">\n <div class="contact-detail-form-container personal_info md-background-bg md-whiteframe-1dp" flex>\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CONTACTMANAGER.FINAL">Final</span>\n <div flex></div>\n <ms-search-bar on-search="vm.queryFinal.filter = query;" on-collapse="vm.queryFinal.filter = undefined;" debounce="300"></ms-search-bar>\n <md-button class="md-icon-button" ng-click="vm.getFinals()" aria-label="reload" translate translate-attr-label="CONTACTMANAGER.RELOAD">\n <md-tooltip>{{\'CONTACTMANAGER.RELOAD\' | translate}}</md-tooltip>\n <md-icon md-font-icon="icon-reload"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n \x3c!-- HOPPER TABLE --\x3e\n <md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.queryFinal.sort" md-on-reorder="vm.getFinals">\n <tr md-row>\n <th md-column md-order-by="uniqueid">{{ \'CONTACTMANAGER.UNIQUEID\' | translate }}</th>\n <th md-column md-order-by="calleridnum">{{ \'CONTACTMANAGER.PHONE\' | translate }}</th>\n <th md-column md-order-by="state">{{ \'CONTACTMANAGER.STATE\' | translate }}</th>\n <th md-column md-order-by="starttime">{{ \'CONTACTMANAGER.STARTTIME\' | translate }}</th>\n <th md-column md-order-by="disposition">{{ \'CONTACTMANAGER.DISPOSITION\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.finals.count">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(id, final) in vm.finals.rows">\n <td md-cell>{{final.uniqueid}}</td>\n <td md-cell privacy ng-cloak>{{final.calleridnum}}</td>\n <td md-cell>{{final.statedesc}}</td>\n <td md-cell>{{final.starttime | date:\'medium\'}}</td>\n <td md-cell>{{final.disposition}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.queryFinal.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.queryFinal.page" md-total="{{vm.finals.count}}" md-on-paginate="vm.getFinals" md-page-select></md-table-pagination>\n \x3c!-- / HOPPER TABLE --\x3e\n </div>\n </div>\n\n <div layout="row">\n <div class="contact-detail-form-container personal_info md-background-bg md-whiteframe-1dp" flex>\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CONTACTMANAGER.HISTORY">History</span>\n <div flex></div>\n <ms-search-bar on-search="vm.queryHistory.filter = query;" on-collapse="vm.queryHistory.filter = undefined;" debounce="300"></ms-search-bar>\n <md-button class="md-icon-button" ng-click="vm.getHistories()" aria-label="reload" translate translate-attr-label="CONTACTMANAGER.RELOAD">\n <md-tooltip>{{\'CONTACTMANAGER.RELOAD\' | translate}}</md-tooltip>\n <md-icon md-font-icon="icon-reload"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n \x3c!-- HOPPER TABLE --\x3e\n <md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.queryHistory.sort" md-on-reorder="vm.getHistories">\n <tr md-row>\n <th md-column md-order-by="uniqueid">{{ \'CONTACTMANAGER.UNIQUEID\' | translate }}</th>\n <th md-column md-order-by="calleridnum">{{ \'CONTACTMANAGER.PHONE\' | translate }}</th>\n <th md-column md-order-by="state">{{ \'CONTACTMANAGER.STATE\' | translate }}</th>\n <th md-column md-order-by="scheduledat">{{ \'CONTACTMANAGER.SCHEDULEDAT\' | translate }}</th>\n <th md-column md-order-by="starttime">{{ \'CONTACTMANAGER.STARTTIME\' | translate }}</th>\n <th md-column md-order-by="endtime">{{ \'CONTACTMANAGER.ENDTIME\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.histories.count">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(id, history) in vm.histories.rows">\n <td md-cell>{{history.uniqueid}}</td>\n <td md-cell privacy ng-cloak>{{history.calleridnum}}</td>\n <td md-cell>{{history.statedesc}}</td>\n <td md-cell>{{history.scheduledat | date:\'medium\'}}</td>\n <td md-cell>{{history.starttime | date:\'medium\'}}</td>\n <td md-cell>{{history.endtime | date:\'medium\'}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.queryHistory.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.queryHistory.page" md-total="{{vm.histories.count}}" md-on-paginate="vm.getHistories" md-page-select></md-table-pagination>\n \x3c!-- / HOPPER TABLE --\x3e\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n\n <md-tab ng-if="vm.license.jscripty">\n <md-tab-label>\n <span translate="CONTACTMANAGER.JSCRIPTY">JSCRIPTY</span>\n </md-tab-label>\n\n <md-tab-body>\n <div layout="row">\n <div class="contact-detail-form-container personal_info md-background-bg md-whiteframe-1dp" flex>\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CONTACTMANAGER.SESSIONS">Sessions</span>\n <div flex></div>\n <ms-search-bar on-search="vm.queryJscriptySession.filter = query;" on-collapse="vm.queryJscriptySession.filter = undefined;" debounce="300"></ms-search-bar>\n </div>\n </md-toolbar>\n\n \x3c!-- SESSION TABLE --\x3e\n <md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.queryJscriptySession.sort" md-on-reorder="vm.getJscriptySessions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'CONTACTMANAGER.ID\' | translate }}</th>\n <th md-column md-order-by="starttime">{{ \'CONTACTMANAGER.STARTTIME\' | translate }}</th>\n <th md-column md-order-by="endtime">{{ \'CONTACTMANAGER.ENDTIME\' | translate }}</th>\n <th md-column md-order-by="agent">{{ \'CONTACTMANAGER.AGENT\' | translate }}</th>\n <th md-column md-order-by="project">{{ \'CONTACTMANAGER.PROJECT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.jscriptySessions.count">\n <td md-cell colspan="6">\n <div layout="row" layout-align="center center">\n <span translate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(id, session) in vm.jscriptySessions.rows">\n <td md-cell>{{session.id}}</td>\n <td md-cell>{{session.starttime | date:\'medium\'}}</td>\n <td md-cell>{{session.endtime | date:\'medium\'}}</td>\n <td md-cell>{{session.membername}}</td>\n <td md-cell>{{session.projectname}}</td>\n <td md-cell class="actions"></td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.queryHopper.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.queryHopper.page" md-total="{{vm.hoppers.count}}" md-on-paginate="vm.getHoppers" md-page-select></md-table-pagination>\n \x3c!-- / SESSION TABLE --\x3e\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="CONTACTMANAGER.CUSTOMER_JOURNEY">CUSTOMER JOURNEY</span>\n </md-tab-label>\n\n <md-tab-body>\n <md-content class="md-padding" id="journey-content">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.html\'">\n </div>\n </md-content>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/contactmanager/views/contacts/import/import.html",'<md-dialog class="import-dialog" aria-label="Import contact">\n <form name="importForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title" translate="CONTACTMANAGER.IMPORT_CONTACTS">Import Contacts</span>\n <md-button ng-if="vm.result.finish || !vm.processing" class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <div md-background-bg layout="row" layout-align="start start">\n <md-progress-linear ng-disabled="!vm.processing || vm.result.finish" md-mode="indeterminate" class="md-warn"></md-progress-linear>\n </div>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <div>\n <md-content ng-show="!vm.processing">\n <div class="form-title" translate="CONTACTMANAGER.CONTACTMANAGER">CONTACT MANAGER</div>\n\n <md-input-container class="md-icon-float md-block" ng-repeat="contactField in vm.contactFields">\n <label>{{\'CONTACTMANAGER.\' + contactField.key | uppercase | translate}}</label>\n <md-select name="{{contactField.key}}" ng-model="vm.binding[contactField.key]" placeholder="{{\'CONTACTMANAGER.\' + contactField.key | uppercase | translate}}" ng-required="contactField.required">\n <md-option ng-value="field" ng-repeat="field in vm.fields">{{ field }}</md-option>\n <md-option ng-value="null" ng-hide="contactField.required">\n <em>{{ \'CONTACTMANAGER.NONE\' | translate }}</em>\n </md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-icon-float md-block">\n <label translate="CONTACTMANAGER.LIST">List</label>\n <md-select name="list" ng-model="vm.ListId" placeholder="Select a list" ng-change="vm.onChangeList()" required>\n <md-option ng-value="list.id" ng-repeat="list in vm.lists.rows">{{list.name}}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-icon-float md-block" ng-repeat="customField in vm.customFields.rows">\n <label>{{customField.alias}}</label>\n <md-select ng-model="vm.binding[\'cf_\' + customField.id]" placeholder="{{customField.alias}}" ng-required="customField.required">\n <md-option ng-value="field" ng-repeat="field in vm.fields">{{ field }}</md-option>\n <md-option ng-value="null" ng-hide="customField.required">\n <em>{{ \'CONTACTMANAGER.NONE\' | translate }}</em>\n </md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-icon-float md-block">\n <label translate="CONTACTMANAGER.COMPANY">Company</label>\n <md-select name="company" ng-model="vm.CompanyId" placeholder="Select a company">\n <md-option ng-value="company.id" ng-repeat="company in vm.companies.rows">{{company.name}}</md-option>\n <md-option ng-value="null">\n <em translate="CONTACTMANAGER.NONE">None</em>\n </md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-icon-float md-block">\n <md-select ng-model="vm.duplicates" placeholder="{{ \'CONTACTMANAGER.CHECK_DUPLICATES\' | translate}}" multiple>\n <md-option ng-value="contactField.key" ng-repeat="contactField in vm.contactFields">{{ \'CONTACTMANAGER.\' + contactField.key | uppercase | translate}}</md-option>\n </md-select>\n </md-input-container>\n\n <div ng-if="vm.license.dialer">\n <div class="form-title" translate="CONTACTMANAGER.MOTIONDIALER">MOTION BULL</div>\n\n <md-input-container class="md-icon-float md-block" ng-repeat="motionBullField in vm.motionBullFields">\n <label>{{\'CONTACTMANAGER.\' + motionBullField.key | uppercase | translate}}</label>\n <md-select name="{{motionBullField.key}}" ng-model="vm.binding[motionBullField.key]" placeholder="{{\'CONTACTMANAGER.\' + motionBullField.key | uppercase | translate}}" ng-required="motionBullField.required">\n <md-option ng-value="field" ng-repeat="field in vm.fields">{{ field }}</md-option>\n <md-option ng-value="null" ng-hide="contactField.required">\n <em>{{ \'CONTACTMANAGER.NONE\' | translate }}</em>\n </md-option>\n </md-select>\n </md-input-container>\n </div>\n\n </md-content>\n\n <div class="error-list" ng-if="vm.result.finish">\n <div class="info" layout="row" layout-align="space-between center">\n <div>\n <div class="message">{{\'CONTACTMANAGER.UPLOAD_COMPLETED\' | translate | uppercase}} ({{vm.result.elapsed}}s)</div>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <div layout="row" ng-if="vm.processing">\n \x3c!-- WIDGET PROCESSING --\x3e\n <ms-widget ng-if="!vm.result.finish" class="h-140" flex>\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg">\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8 orange-fg">\n <span ng-bind="vm.result.rows"></span>\n </div>\n <div ng-if="vm.processing" class="font-weight-500 secondary-text">Please wait, we are processing your contacts...</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n \x3c!-- / WIDGET PROCESSING --\x3e\n \x3c!-- WIDGET SUCCESS --\x3e\n <ms-widget ng-if="vm.result.finish" class="h-140" flex>\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg">\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8 green-fg">\n <span ng-bind="vm.result.affectedRows"></span>\n </div>\n <div class="font-weight-500 secondary-text" translate="CONTACTMANAGER.SUCCESS">Success</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n \x3c!-- / WIDGET SUCCESS --\x3e\n\n \x3c!-- WIDGET FAILURE --\x3e\n <ms-widget ng-if="vm.result.finish" class="h-140" flex>\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg">\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8 red-fg">\n <span ng-bind="vm.result.failedRows"></span>\n </div>\n <div class="font-weight-500 secondary-text" translate="CONTACTMANAGER.FAILURE">Failure</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n \x3c!-- / WIDGET FAILURE --\x3e\n\n \x3c!-- WIDGET DUPLICATES --\x3e\n <ms-widget ng-if="vm.result.duplicatedRows && vm.result.finish" class="h-140" flex>\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg">\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8 orange-fg">\n <span ng-bind="vm.result.duplicatedRows"></span>\n </div>\n <div class="font-weight-500 secondary-text" translate="CONTACTMANAGER.DUPLICATES">Duplicates</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n \x3c!-- / WIDGET DUPLICATES --\x3e\n </div>\n\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row">\n <md-button ng-if="!vm.processing" ng-disabled="importForm.$invalid || importForm.$pristine" ng-click="vm.uploadCsv()" class="md-accent md-raised" aria-label="UPLOAD" translate="CONTACTMANAGER.UPLOAD" translate-attr-aria-label="CONTACTMANAGER.IMPORT">\n IMPORT\n </md-button>\n <md-button ng-if="vm.processing && !vm.result.finish && !vm.stopping" ng-click="vm.stopUpload()" class="md-accent md-raised" aria-label="Stop Upload" translate="CONTACTMANAGER.STOP" translate-attr-aria-label="CONTACTMANAGER.STOP">\n STOP\n </md-button>\n <md-button ng-if="vm.result.finish && vm.result.errors.length" ng-csv="vm.getArrayErrors()" csv-header="vm.getHeaderErrors()" class="md-accent md-raised" aria-label="Export Errors" filename="contacts_import_errors.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon> {{\'CONTACTMANAGER.EXPORT_ERRORS\' | translate}}\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/contacts/merge/dialog.html",'<md-dialog class="cm-contact-dialog" aria-label="Merge Contact">\n <form name="contactForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <md-input-container class="md-block" flex-gt-sm>\n <label>Filter</label>\n <input ng-model="vm.searchTerm" name="searchTerm" ng-model-options="{ debounce: 300 }" ng-change="vm.change()">\n </md-input-container>\n\n <md-list flex>\n <md-subheader class="md-no-sticky" ng-hide="vm.contacts.length"><em>Filter doesn\'t match any contact</em></md-subheader>\n <md-list-item class="md-3-line" ng-repeat="contact in vm.contacts | filter:{ id: \'!\' + vm.contact.id}" ng-click="vm.showConfirm($event, vm.contact, contact)">\n <img ng-src="assets/images/avatars/profile.png" class="md-avatar" alt="{{contact.who}}" />\n <div class="md-list-item-text" layout="column">\n <h3>#{{ contact.id }} - {{ contact.firstName }} {{ contact.lastName }}</h3>\n <h4>{{ contact.email }}</h4>\n <p>{{ contact.phone }}</p>\n </div>\n </md-list-item>\n </md-list>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/globalCustomFields/create/dialog.html",'<md-dialog class="globalCustomField-dialog" aria-label="New GlobalCustomField">\n <form name="globalCustomFieldForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.ALIAS">Alias</label>\n <input type="" name="alias" ng-model="vm.globalCustomField.alias" ng-required="true" autofocus>\n\n <div ng-messages="globalCustomFieldForm[\'alias\'].$error" ng-show="globalCustomFieldForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.ALIAS_REQUIRED">Alias field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.TYPE">Type</label>\n <md-select name="type" ng-model="vm.globalCustomField.type" required ng-disabled="!vm.newGlobalCustomField">\n <md-option ng-value="\'text\'">Text</md-option>\n <md-option ng-value="\'select\'">Select</md-option>\n <md-option ng-value="\'number\'">Number</md-option>\n <md-option ng-value="\'switch\'">Switch</md-option>\n <md-option ng-value="\'datetime\'">Datetime</md-option>\n </md-select>\n <div ng-messages="globalCustomFieldForm[\'type\'].$error" ng-show="globalCustomFieldForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.globalCustomField.type == \'select\'" class="md-block">\n <md-list>\n <md-list-item layout-margin>\n <md-button class="md-fab md-mini md-secondary" ng-click="vm.addItem(vm.globalCustomField.values);">\n <md-tooltip><span translate="CONTACTMANAGER.ADD">ADD</span></md-tooltip>\n <md-icon md-font-icon="icon-plus" aria-label="alert error"></md-icon>\n </md-button>\n <md-button ng-if="vm.globalCustomField.values.length" class="md-fab md-mini md-warn md-secondary" ng-click="vm.removeItems(vm.globalCustomField.values);">\n <md-tooltip><span translate="CONTACTMANAGER.DELETE_ALL">Delete All</span></md-tooltip>\n <md-icon md-font-icon="icon-delete" aria-label="alert error"></md-icon>\n </md-button>\n </md-list-item>\n </md-list>\n <md-list ng-sortable="vm.sortable">\n <md-list-item ng-repeat="item in vm.globalCustomField.values" style="border: 1px solid #ccc!important; border-radius: 7px;" layout-margin>\n <div>\n <md-icon class="s24" style="cursor:move" md-font-icon="icon-drag" aria-label="drag"></md-icon>\n <input type="text" ng-model="item.value" flex>\n </div>\n <md-button class="md-fab md-mini md-warn md-secondary" ng-click="vm.removeItem(vm.globalCustomField.values, $index);">\n <md-tooltip><span translate="CONTACTMANAGER.DELETE">DELETE</span></md-tooltip>\n <md-icon md-font-icon="icon-delete" aria-label="alert error"></md-icon>\n </md-button>\n </md-list-item>\n </md-list>\n <md-list>\n <md-list-item ng-if="!vm.globalCustomField.values.length" layout="row" layout-align="center center">\n <em translate="CONTACTMANAGER.NO_AVAILABLE_ITEMS">No Available Items</em>\n </md-list-item>\n </md-list>\n </div>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.globalCustomField.required" aria-label="Required"><span translate="CONTACTMANAGER.REQUIRED">Required</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.globalCustomField.type == \'text\'" class="md-block">\n <md-switch ng-model="vm.globalCustomField.clickToAction" aria-label="ClickToAction"><span translate="CONTACTMANAGER.CLICKTOACTION">ClickToAction</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.globalCustomField.clickToAction" class="md-block">\n <label translate="CONTACTMANAGER.ACTIONTYPE">ActionType</label>\n <md-select name="actionType" ng-model="vm.globalCustomField.actionType">\n <md-option ng-value="\'voice\'">Voice</md-option>\n </md-select>\n <div ng-messages="globalCustomFieldForm[\'actionType\'].$error" ng-show="globalCustomFieldForm[\'actionType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.ACTIONTYPE_REQUIRED">ActionType field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newGlobalCustomField" ng-click="vm.saveGlobalCustomField()" class="send-button md-accent md-raised" ng-disabled="globalCustomFieldForm.$invalid || globalCustomFieldForm.$pristine" aria-label="SAVE" translate="CONTACTMANAGER.SAVE" translate-attr-aria-label="CONTACTMANAGER.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newGlobalCustomField" ng-click="vm.addNewGlobalCustomField()" class="send-button md-accent md-raised" ng-disabled="globalCustomFieldForm.$invalid" aria-label="ADD" translate="CONTACTMANAGER.ADD_GLOBALCUSTOMFIELD" translate-attr-aria-label="CONTACTMANAGER.ADD_GLOBALCUSTOMFIELD">\n ADD GLOBALCUSTOMFIELD\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newGlobalCustomField" ng-click="vm.deleteGlobalCustomField($event)" aria-label="DELETE" translate translate-attr-aria-label="CONTACTMANAGER.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="CONTACTMANAGER.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/globalCustomFields/globalCustomFields.html",'<div id="globalCustomFields" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-account-circle" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="CONTACTMANAGER.GLOBALCUSTOMFIELDS">GlobalCustomFields</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="CONTACTMANAGER.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedGlobalCustomFields.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedGlobalCustomFields =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="CONTACTMANAGER.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-globalCustomFields-count">\n <span>{{vm.selectedGlobalCustomFields.length}}</span>\n <span translate="CONTACTMANAGER.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="CONTACTMANAGER.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllGlobalCustomFields()" translate="CONTACTMANAGER.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectGlobalCustomFields()" translate="CONTACTMANAGER.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedGlobalCustomFields" csv-label="true" filename="globalCustomFields.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedGlobalCustomFields($event)" aria-label="delete selected" translate translate-attr-label="CONTACTMANAGER.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- GLOBALCUSTOMFIELD TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedGlobalCustomFields" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getGlobalCustomFields">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'CONTACTMANAGER.ID\' | translate }}</th>\n <th md-column md-order-by="alias">{{ \'CONTACTMANAGER.ALIAS\' | translate }}</th>\n <th md-column md-order-by="type">{{ \'CONTACTMANAGER.TYPE\' | translate }}</th>\n <th md-column md-order-by="required">{{ \'CONTACTMANAGER.REQUIRED\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.globalCustomFields.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="globalCustomField" md-select-id="id" ng-repeat="globalCustomField in vm.globalCustomFields.rows">\n <td md-cell ng-if="globalCustomField.userpic"><img class="avatar" alt="{{globalCustomField.name}}" ng-src="api/users/{{globalCustomField.id}}/avatar" /></td>\n <td md-cell ng-if="!globalCustomField.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{globalCustomField.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditGlobalCustomField($event, globalCustomField)" md-cell class="id ">{{globalCustomField.id}}</td>\n <td ng-click="vm.createOrEditGlobalCustomField($event, globalCustomField)" md-cell class="alias ">{{globalCustomField.alias}}</td>\n <td ng-click="vm.createOrEditGlobalCustomField($event, globalCustomField)" md-cell class="type ">{{ vm.arraytype[globalCustomField.type].option }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(globalCustomField, ev) : vm.createOrEditGlobalCustomField($event, globalCustomField)" md-cell class="required ">\n <md-icon md-colors="{color: {{globalCustomField.required ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{globalCustomField.required ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CONTACTMANAGER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(globalCustomField, $event )" translate="CONTACTMANAGER.EDIT_GLOBALCUSTOMFIELD">\n Edit GlobalCustomField\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(globalCustomField, $event )" translate="CONTACTMANAGER.DELETE_GLOBALCUSTOMFIELD">\n Delete GlobalCustomField\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.globalCustomFields.count}}" md-on-paginate="vm.getGlobalCustomFields" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / GLOBALCUSTOMFIELD TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD GLOBALCUSTOMFIELD BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-globalCustomField-button" ng-click="vm.createOrEditGlobalCustomField($event)" aria-label="add globalCustomField" translate translate-attr-aria-label="CONTACTMANAGER.ADD_GLOBALCUSTOMFIELD">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD GLOBALCUSTOMFIELD BUTTON --\x3e\n</div>'),e.put("app/main/apps/contactmanager/views/lists/create/dialog.html",'<md-dialog class="list-dialog" aria-label="New List">\n <form name="listForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.list.name" ng-required="true" autofocus>\n\n <div ng-messages="listForm[\'name\'].$error" ng-show="listForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.list.description">\n\n <div ng-messages="listForm[\'description\'].$error" ng-show="listForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newList" ng-click="vm.saveList()" class="send-button md-accent md-raised" ng-disabled="listForm.$invalid || listForm.$pristine" aria-label="SAVE" translate="CONTACTMANAGER.SAVE" translate-attr-aria-label="CONTACTMANAGER.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newList" ng-click="vm.addNewList()" class="send-button md-accent md-raised" ng-disabled="listForm.$invalid" aria-label="ADD" translate="CONTACTMANAGER.ADD_LIST" translate-attr-aria-label="CONTACTMANAGER.ADD_LIST">\n ADD LIST\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newList" ng-click="vm.deleteList($event)" aria-label="DELETE" translate translate-attr-aria-label="CONTACTMANAGER.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="CONTACTMANAGER.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/lists/edit/agentadd/agentadd.html",'<md-dialog class="list-dialog" aria-label="list" ng-init="vm.onInit()">\n <form name="listForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="CONTACTMANAGER.AGENTADD_LIST">Add Agent to list</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/lists/edit/customFields/dialog.html",'<md-dialog class="customField-dialog" aria-label="New CustomField">\n <form name="customFieldForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.ALIAS">Alias</label>\n <input type="" name="alias" ng-model="vm.customField.alias" ng-required="true" autofocus>\n\n <div ng-messages="customFieldForm[\'alias\'].$error" ng-show="customFieldForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.ALIAS_REQUIRED">Alias field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.TYPE">Type</label>\n <md-select name="type" ng-model="vm.customField.type" required ng-disabled="!vm.newCustomField">\n <md-option ng-value="\'text\'">Text</md-option>\n <md-option ng-value="\'select\'">Select</md-option>\n <md-option ng-value="\'number\'">Number</md-option>\n <md-option ng-value="\'switch\'">Switch</md-option>\n <md-option ng-value="\'datetime\'">Datetime</md-option>\n </md-select>\n <div ng-messages="customFieldForm[\'type\'].$error" ng-show="customFieldForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.customField.type == \'select\'" class="md-block">\n <md-list>\n <md-list-item layout-margin>\n <md-button class="md-fab md-mini md-secondary" ng-click="vm.addItem(vm.customField.values);">\n <md-tooltip><span translate="CONTACTMANAGER.ADD">ADD</span></md-tooltip>\n <md-icon md-font-icon="icon-plus" aria-label="alert error"></md-icon>\n </md-button>\n <md-button ng-if="vm.customField.values.length" class="md-fab md-mini md-warn md-secondary" ng-click="vm.removeItems(vm.customField.values);">\n <md-tooltip><span translate="CONTACTMANAGER.DELETE_ALL">Delete All</span></md-tooltip>\n <md-icon md-font-icon="icon-delete" aria-label="alert error"></md-icon>\n </md-button>\n </md-list-item>\n </md-list>\n <md-list ng-sortable="vm.sortable">\n <md-list-item ng-repeat="item in vm.customField.values" style="border: 1px solid #ccc!important; border-radius: 7px;" layout-margin>\n <div>\n <md-icon class="s24" style="cursor:move" md-font-icon="icon-drag" aria-label="drag"></md-icon>\n <input type="text" ng-model="item.value" flex>\n </div>\n <md-button class="md-fab md-mini md-warn md-secondary" ng-click="vm.removeItem(vm.customField.values, $index);">\n <md-tooltip><span translate="CONTACTMANAGER.DELETE">DELETE</span></md-tooltip>\n <md-icon md-font-icon="icon-delete" aria-label="alert error"></md-icon>\n </md-button>\n </md-list-item>\n </md-list>\n <md-list>\n <md-list-item ng-if="!vm.customField.values.length" layout="row" layout-align="center center">\n <em translate="CONTACTMANAGER.NO_AVAILABLE_ITEMS">No Available Items</em>\n </md-list-item>\n </md-list>\n </div>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.customField.required" aria-label="Required"><span translate="CONTACTMANAGER.REQUIRED">Required</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.customField.type == \'text\'" class="md-block">\n <md-switch ng-model="vm.customField.clickToAction" aria-label="clickToAction"><span translate="CONTACTMANAGER.CLICKTOACTION">clickToAction</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.customField.clickToAction" class="md-block">\n <label translate="CONTACTMANAGER.ACTIONTYPE">actionType</label>\n <md-select name="actionType" ng-model="vm.customField.actionType">\n <md-option ng-value="\'voice\'">Voice</md-option>\n </md-select>\n <div ng-messages="customFieldForm[\'actionType\'].$error" ng-show="customFieldForm[\'actionType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.ACTIONTYPE_REQUIRED">actionType field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newCustomField" ng-click="vm.saveCustomField()" class="send-button md-accent md-raised" ng-disabled="customFieldForm.$invalid || customFieldForm.$pristine" aria-label="SAVE" translate="CONTACTMANAGER.SAVE" translate-attr-aria-label="CONTACTMANAGER.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newCustomField" ng-click="vm.addNewCustomField()" class="send-button md-accent md-raised" ng-disabled="customFieldForm.$invalid" aria-label="ADD" translate="CONTACTMANAGER.ADD_CUSTOMFIELD" translate-attr-aria-label="CONTACTMANAGER.ADD_CUSTOMFIELD">\n ADD CUSTOMFIELD\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newCustomField" ng-click="vm.deleteCustomField($event)" aria-label="DELETE" translate translate-attr-aria-label="CONTACTMANAGER.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="CONTACTMANAGER.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/lists/edit/view.html",'<div id="contactmanager-list" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-lists-button md-icon-button" aria-label="Go to lists" ng-click="vm.gotoLists()" translate translate-attr-aria-label="CONTACTMANAGER.GO_TO_LISTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="list-image" hide-xs>\n <img ng-src="assets/images/business/lists.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.list.id}}\n <span ng-if="vm.list.name">{{vm.list.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="CONTACTMANAGER.CREATED_AT"></span> <span>{{vm.list.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.gotogoto(vm.list, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n <md-tooltip><span translate="CONTACTMANAGER.GOTO_LIST"></span></md-tooltip>\n <md-icon md-font-icon="icon-forward"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.list, $event)" class="md-fab md-warn md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="CONTACTMANAGER.AGENTADD_LIST"></span></md-tooltip>\n <md-icon md-font-icon="icon-eye"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveList()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (customFieldsForm.$invalid) || (voiceDispositionsForm.$invalid)" translate="CONTACTMANAGER.SAVE" translate-attr-aria-label="CONTACTMANAGER.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="CONTACTMANAGER.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="list-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CONTACTMANAGER.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.list.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.list.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.PREFIX">Prefix</label>\n <input type="text" name="dialPrefix" ng-model="vm.list.dialPrefix" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'dialPrefix\'].$error" ng-show="generalForm[\'dialPrefix\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.PREFIX_REQUIRED">Prefix field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CONTACTMANAGER.CUSTOMFIELDS">CUSTOMFIELDS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="list-detail-form-container customfields md-background-bg md-whiteframe-1dp">\n <div ng-controller="ListCustomFieldsController as vm_dc" ng-init="vm_dc.init(vm.list, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedListCustomFields.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CONTACTMANAGER.CUSTOMFIELDS">CustomFields</span>\n <ms-search-bar on-search="vm_dc.getListCustomFields()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditListCustomField($event)" aria-label="add customField" translate translate-attr-label="CONTACTMANAGER.ADD_CUSTOMFIELD">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedListCustomFields.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedListCustomFields.length}} {{vm_dc.selectedListCustomFields.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedListCustomFields" csv-label="true" filename="lists.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedListCustomFields($event)" aria-label="delete selected" translate translate-attr-label="CONTACTMANAGER.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedListCustomFields" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getListCustomFields">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'CONTACTMANAGER.ID\' | translate }}\n </th>\n <th md-column md-order-by="alias">\n {{ \'CONTACTMANAGER.ALIAS\' | translate }}\n </th>\n <th md-column md-order-by="type">\n {{ \'CONTACTMANAGER.TYPE\' | translate }}\n </th>\n <th md-column md-order-by="required">\n {{ \'CONTACTMANAGER.REQUIRED\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="customField" md-select-id="id" ng-repeat="customField in vm_dc.listCustomFields.rows">\n <td ng-click="vm_dc.createOrEditListCustomField($event, customField)" md-cell>\n {{customField.id}}\n </td>\n <td ng-click="vm_dc.createOrEditListCustomField($event, customField)" md-cell>\n {{customField.alias}}\n </td>\n <td ng-click="vm_dc.createOrEditListCustomField($event, customField)" md-cell>\n {{ vm_dc.arraytype[customField.type].option }} </td>\n\n <td ng-click="vm_dc.createOrEditListCustomField($event, customField)" md-cell class="required ">\n <md-icon md-colors="{color: {{customField.required ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{customField.required? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CONTACTMANAGER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditListCustomField($event, customField)" translate="CONTACTMANAGER.EDIT_CUSTOMFIELD">\n Edit CustomField\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(customField, $event)" translate="CONTACTMANAGER.DELETE_CUSTOMFIELD">\n Delete CustomField\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.listCustomFields.rows.length">\n <td md-cell colspan="9">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="CONTACTMANAGER.NO_CUSTOMFIELD_AVAILABLE">No customfield available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.listCustomFields.count}}" md-on-paginate="vm_dc.getListCustomFields" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CONTACTMANAGER.DISPOSITIONS">DISPOSITIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div ng-controller="ListDispositionsController as vm_dc" ng-init="vm_dc.init(vm.list, vm.crudPermissions)">\n <div layout="row">\n <div class="column" flex="20">\n <md-card class="mt-0">\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm_dc.query.level = null; vm_dc.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\n </button>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm_dc.query.level" ng-change="vm_dc.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm_dc.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n <div class="list-detail-form-container voicedispositions md-background-bg md-whiteframe-1dp" flex="80">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedListDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CONTACTMANAGER.DISPOSITIONS">Dispositions</span>\n <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditDisposition($event)" aria-label="Add contactmanager dispositions" translate translate-attr-label="CONTACTMANAGER.ADD_DISPOSITION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedDispositions.length}}\n {{vm_dc.selectedDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedDispositions" csv-label="true" filename="lists.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedDispositions($event)" aria-label="delete selected" translate translate-attr-label="CONTACTMANAGER.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_dc.selectedDispositions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getDispositions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'CONTACTMANAGER.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'CONTACTMANAGER.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'CONTACTMANAGER.DESCRIPTION\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_dc.dispositions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="disposition" md-select-id="id" ng-repeat="disposition in vm_dc.dispositions.rows">\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm_dc.levels[disposition.level] }}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CONTACTMANAGER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(disposition, $event)" translate="TOOLS.DELETE_DISPOSITION">\n Delete Disposition\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.dispositions.count}}" md-on-paginate="vm_dc.getDispositions" md-page-select>\n </md-table-pagination>\n </div>\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/contactmanager/views/lists/lists.html",'<div id="lists" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-account-circle" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="CONTACTMANAGER.LISTS">Lists</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="CONTACTMANAGER.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedLists.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedLists =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="CONTACTMANAGER.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-lists-count">\n <span>{{vm.selectedLists.length}}</span>\n <span translate="CONTACTMANAGER.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="CONTACTMANAGER.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllLists()" translate="CONTACTMANAGER.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectLists()" translate="CONTACTMANAGER.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedLists" csv-label="true" filename="lists.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedLists($event)" aria-label="delete selected" translate translate-attr-label="CONTACTMANAGER.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- LIST TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedLists" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getLists">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'CONTACTMANAGER.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'CONTACTMANAGER.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'CONTACTMANAGER.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.lists.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="list" md-select-id="id" ng-repeat="list in vm.lists.rows">\n <td md-cell ng-if="list.userpic"><img class="avatar" alt="{{list.name}}" ng-src="api/users/{{list.id}}/avatar" /></td>\n <td md-cell ng-if="!list.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{list.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(list, ev) : vm.createOrEditList($event, list)" md-cell class="id ">{{list.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(list, ev) : vm.createOrEditList($event, list)" md-cell class="name ">{{list.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(list, ev) : vm.createOrEditList($event, list)" md-cell class="description ">{{list.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CONTACTMANAGER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(list, $event )" translate="CONTACTMANAGER.EDIT_LIST">\n Edit List\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotocontactsgoto(list, $event )" translate="CONTACTMANAGER.GOTOCONTACTS_LIST">\n goToContacts List\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.role === \'admin\' || vm.userProfile.downloadContactManagerLists">\n\n <md-button ng-click="vm.exportcsvcontactsexport(list, $event )" translate="CONTACTMANAGER.EXPORTCSVCONTACTS_LIST">\n exportCsvContacts List\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(list, $event )" translate="CONTACTMANAGER.AGENTADD_LIST">\n AgentAdd List\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(list, $event )" translate="CONTACTMANAGER.DELETE_LIST">\n Delete List\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.lists.count}}" md-on-paginate="vm.getLists" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / LIST TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD LIST BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-list-button" ng-click="vm.createOrEditList($event)" aria-label="add list" translate translate-attr-aria-label="CONTACTMANAGER.ADD_LIST">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD LIST BUTTON --\x3e\n</div>'),e.put("app/main/apps/dashboards/views/custom/custom.html",'<div ng-if="!vm.customDashboard">\n <p>Custom Dashboard not available...</p>\n</div>\n<div id="dashboard-custom" ng-if="vm.customDashboard" ng-cloak layout-fill>\n <md-content>\n <md-toolbar class="md-default md-accent filter-header">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm.customDashboard.name}}</span>\n <div flex></div>\n <div layout="column">\n <span class="font-size-10" translate="DASHBOARDS.FILTER_VOICE_QUEUES">Filter Voice Queues</span>\n <md-select placeholder="Select one or more queues" class="font-size-12 no-margin w-200" md-on-close="vm.onChangeVoiceQueues()" ng-model="vm.voiceQueuesSelected" multiple aria-label="voiceQueues">\n <md-option ng-value="voiceQueue.id" ng-repeat="voiceQueue in vm.voiceQueues.rows">{{ voiceQueue.name }}</md-option>\n </md-select>\n </div>\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-icon-button" ng-click="vm.goToEdit()" aria-label="goToEdit">\n <md-tooltip md-direction="top"><span translate="DASHBOARDS.EDIT"></span></md-tooltip>\n <md-icon md-font-icon="icon-table-edit"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <ms-widget-engine config="vm.customDashboard"></ms-widget-engine>\n </md-content>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/agent.general.html",'<div id="agent-general" layout="column">\n <div layout="row" layout-align="start center" class="md-primary-bg">\n <md-button class="md-raised no-margin width-50" style="border-radius: 0px" ng-class="{\'md-primary\': !vm.isActiveTab(0)}" ng-click="vm.onClickTab(0)" aria-label="home">\n <md-tooltip md-direction="bottom" md-delay="500">Home</md-tooltip>\n <md-icon md-font-icon="icon-home" class="icon"></md-icon>\n </md-button>\n\n <ms-tab-scroll style="overflow: hidden;">\n <div layout="column" ng-repeat="(key, tab) in vm.tabs | orderByDate " ng-click="vm.onClickTab(tab.id)" ng-class="{\'grey-50-bg\': vm.isActiveTab(tab.id)}">\n <div style="height: 34px" layout="row" layout-align="space-between center">\n <md-icon md-font-icon="{{tab.icon}}" class="icon s16 margin-horizontal-5" ng-class="tab.color + \'-fg\'">\n </md-icon>\n <span class="text-truncate font-size-12" ng-class="vm.isActiveTab(tab.id) ? \'black-fg\' : \'grey-300-fg\'">\n {{tab.title}}\n <span ng-if="tab.badges" class="badge md-white-fg md-red-bg">{{tab.badges}}</span></span>\n <md-button class="md-icon-button md-mini no-margin" ng-class="vm.isActiveTab(tab.id) ? \'md-primary\' : \'grey-300-fg\'" aria-label="close" ng-click="vm.closeTab(tab); $event.stopPropagation()">\n <md-icon md-font-icon="icon-close-circle-outline" class="icon s16"></md-icon>\n </md-button>\n </div>\n <div style="height: 2px" ng-class="vm.isActiveTab(tab.id) ? tab.color + \'-bg\' : \'\'"></div>\n </div>\n </ms-tab-scroll>\n </div>\n <div layout="row" class="agent-content" ng-if="vm.isActiveTab(0)" ng-style="{\'top\': vm.detectBrowser.browser == \'safari\' ? \'100px\' : \'36px\'}" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.html\'" ng-controller="AgentGeneralHomeController as vm_home" ng-init="vm_home.init(vm.license, vm.setting)"></div>\n <div ng-if="!vm.isActiveTab(0)" ng-repeat="(key, tab) in vm.tabs | orderByDate " ng-switch="tab.type">\n <div ng-switch-when="contact">\n <div class="agent-content" ms-scroll ng-if="vm.isActiveTab(tab.id)" ng-style="{\'top\': vm.detectBrowser.browser == \'safari\' ? \'100px\' : \'36px\'}" ng-include="\'app/main/apps/dashboards/views/general/agent/contact/agent.general.contact.html\'" ng-controller="AgentGeneralContactController as vm" ng-init="vm.init(tab,$parent.vm.license)"></div>\n </div>\n <div ng-switch-when="popup">\n <div ng-if="vm.isActiveTab(tab.id)" ms-scroll ng-include="\'app/main/apps/dashboards/views/general/agent/popup/agent.general.popup.html\'" ng-controller="AgentGeneralPopupController as vm" ng-init="vm.init(tab)"></div>\n </div>\n <div ng-switch-when="jscripty">\n <div class="agent-content" ms-scroll ng-if="vm.isActiveTab(tab.id)" ng-style="{\'top\': vm.detectBrowser.browser == \'safari\' ? \'100px\' : \'36px\'}" ng-include="\'app/main/apps/dashboards/views/general/agent/jscripty/agent.general.jscripty.html\'" ng-controller="AgentGeneralJscriptyController as vm" ng-init="vm.init(tab)"></div>\n </div>\n <div ng-switch-when="bot">\n <div id="interaction-app" ng-if="vm.isActiveTab(tab.id)" class="agent-content" ng-style="{\'top\': vm.detectBrowser.browser == \'safari\' ? \'100px\' : \'36px\'}" ng-include="\'app/main/apps/dashboards/views/general/agent/bot/agent.general.bot.html\'" ng-controller="AgentGeneralBotController as vm" ng-init="vm.init(tab, $parent.vm.setting)"></div>\n </div>\n <div ng-switch-when="interaction">\n <div id="interaction-app" ng-if="vm.isActiveTab(tab.id)" class="agent-content" ng-style="{\'top\': vm.detectBrowser.browser == \'safari\' ? \'100px\' : \'36px\'}" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.html\'" ng-controller="AgentGeneralInteractionController as vm" ng-init="vm.init(tab, $parent.vm.setting)">\n </div>\n </div>\n <div ng-switch-when="iframe">\n <div id="iframe" ng-if="vm.isActiveTab(tab.id)" class="agent-content" ng-style="{\'top\': vm.detectBrowser.browser == \'safari\' ? \'100px\' : \'36px\'}" ng-include="\'app/main/apps/dashboards/views/general/agent/iframe/agent.general.iframe.html\'" ng-controller="AgentGeneralIframeController as vm" ng-init="vm.init(tab, $parent.vm.setting)">\n </div>\n </div>\n </div>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/bot/agent.general.bot.html",'\x3c!-- CONTENT CARD --\x3e\n<md-content class="content-card" layout="row" layout-fill>\n\n <div ng-if="!vm.showInteraction" class="start-point" flex layout="column" layout-align="center center">\n <div class="big-circle md-whiteframe-4dp">\n <md-icon class="s128 md-accent pink-fg" md-font-icon="fas fa-robot"></md-icon>\n </div>\n <span class="app-title" translate="DASHBOARDS.WAITING">Waiting</span>\n <span class="hide show-gt-md secondary-text" translate="DASHBOARDS.LOADING_INTERACTION">We are loading the\n interaction...</span>\n </div>\n\n <div ng-if="vm.showInteraction" flex layout="row">\n <md-card flex="100" class="interaction">\n \x3c!-- TOOLBAR --\x3e\n <md-toolbar class="interaction-toolbar">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <md-icon md-font-icon="fas fa-robot" class="s20 pink-fg"></md-icon>\n <div class="padding-left-10" layout="column" layout-align="center start" flex>\n <div class="font-size-14" layout="row" layout-align="start center" layout-fill>\n <span>#{{vm.tab.data.uniqueid}} - {{vm.tab.title}}</span>\n </div>\n </div>\n <div layout="row" layout-align="end center">\n\n </div>\n </div>\n </md-toolbar>\n \x3c!-- / TOOLBAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <md-content id="interaction-content" name="{{\'interaction-content-\' + vm.tab.id}}" flex ms-scroll layout-wrap>\n <div class="interaction-messages">\n \x3c!-- MESSAGES --\x3e\n <div layout="row" ng-repeat="message in vm.messages.rows" class="md-padding message-row" ng-class="vm.getMessagesAlignment(message)">\n <img ng-if="message.direction ===\'in\'" src="assets/images/avatars/customer.png" class="avatar" />\n <img ng-if="message.direction ===\'out\'" class="avatar" src="assets/images/avatars/robot.png">\n\n <div class="bubble" ng-switch="message.direction">\n <div>\n <div ng-switch-when="in" class="time secondary-text">\n {{vm.tab.title}} - {{message.createdAt | date: \'medium\'}}\n </div>\n <div ng-switch-when="out" class="time secondary-text" layout="row" layout-align="end center">\n <div layout-padding>\n System - {{message.createdAt | date: \'medium\'}}\n </div>\n <div>\n <md-icon class="s18" md-font-icon="icon-check-all md-accent"></md-icon>\n </div>\n </div>\n </div>\n <div ng-bind-html="message.body | embed:vm.emojiOptions" class="message" layout="row" layout-align="end center"></div>\n </div>\n </div>\n \x3c!-- / MESSAGES --\x3e\n </div>\n </md-content>\n \x3c!-- / CONTENT --\x3e\n </md-card>\n </div>\n</md-content>\n\x3c!-- / CONTENT CARD --\x3e'),e.put("app/main/apps/dashboards/views/general/agent/contact/agent.general.contact.html",'<md-tabs md-selected="vm.currentTab" md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="DASHBOARDS.DETAIL">Detail</span>\n </md-tab-label>\n <md-tab-body>\n <md-content>\n <div layout="row">\n <md-card ng-repeat="call in vm.tab.calls track by call.uniqueid" class="call-info-card">\n <md-progress-linear md-mode="indeterminate" ng-if="vm.checkingCallStatus"></md-progress-linear>\n <md-card-header layout="row" layout-align="space-between">\n <span ng-if="call.answertime" class="text-boxed indigo-100-bg ml-0">\n <timer start-time="call.answertime"></timer>\n <md-tooltip md-direction="bottom">\n {{ \'DASHBOARDS.ELAPSED_ANSWERED\' | translate }}\n </md-tooltip>\n </span>\n <span ng-if="call.disposedAt" class="text-boxed amber-200-bg mr-0">\n <timer start-time="call.disposedAt"></timer>\n <md-tooltip md-direction="bottom">\n {{ \'DASHBOARDS.ELAPSED_DISPOSED\' | translate }}\n </md-tooltip>\n </span>\n </md-card-header>\n <md-divider></md-divider>\n <md-card-content>\n <div layout="row" layout-align="end center" class="reload-container">\n <md-button class="md-icon-button no-margin reload-button" ng-click="vm.checkCallStatus(call)" ng-disabled="vm.checkingCallStatus">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip md-direction="bottom">\n {{ \'DASHBOARDS.RELOAD\' | translate }}\n </md-tooltip>\n </md-button>\n </div>\n <div layout="column" layout-align="space-between start" class="mr-16">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="{{ call.routeId ? \'icon-phone-outgoing\' : \'icon-phone-incoming\'}}" class="mr-8">\n </md-icon>\n <span class="h1" privacy ng-cloak>{{ call.routeId ? call.destcalleridnum : call.calleridnum }}</span>\n </div>\n\n <div class="subtitle h4 secondary-text" ng-if="call.calleridname && call.calleridname != \'<unknown>\' && !call.routeId">\n <md-icon md-font-icon="icon-account"></md-icon>\n Name: <span privacy ng-cloak>{{ call.calleridname }}</span>\n </div>\n\n <div class="text h4 pt-8" ng-if="call.queue">\n <md-icon md-font-icon="icon-stackoverflow"></md-icon>\n Queue: {{call.queue}}\n </div>\n <div class="text h4 pt-8" ng-if="call.variables.extravar">\n <md-icon md-font-icon="icon-minus"></md-icon>\n Extra: {{call.variables.extravar}}\n </div>\n </div>\n <div layout="row" layout-align="end center">\n <md-button ng-if="call.disposedAt" type="submit" ng-click="vm.disposeCall($event, call)" class="send-button md-accent md-raised">\n {{ \'DASHBOARDS.DISPOSE\' | translate}}\n </md-button>\n </div>\n </md-card-content>\n </md-card>\n <div flex layout="row" layout-align="end center">\n <md-button type="submit" ng-click="vm.mergeContact($event)" class="send-button md-raised md-accent ng-scope" ng-if="!vm.newContact" ng-disabled="vm.detailForm.$invalid || vm.customFieldsForm.$invalid || vm.socialForm.$invalid" aria-label="merge">\n <md-tooltip md-direction="top"><span translate="DASHBOARDS.MERGE"></span></md-tooltip>\n <md-icon md-font-icon="icon-source-fork"></md-icon>\n </md-button>\n <md-button type="submit" ng-click="vm.duplicateContact($event)" class="send-button md-raised md-accent ng-scope" ng-if="!vm.newContact" ng-disabled="vm.detailForm.$invalid || vm.customFieldsForm.$invalid || vm.socialForm.$invalid" aria-label="duplicate">\n <md-tooltip md-direction="top"><span translate="DASHBOARDS.DUPLICATE"></span></md-tooltip>\n <md-icon md-font-icon="icon-content-duplicate"></md-icon>\n </md-button>\n <md-button type="submit" ng-click="vm.addNewContact($event)" class="send-button md-accent md-raised" ng-if="vm.newContact" ng-disabled="vm.detailForm.$invalid || vm.customFieldsForm.$invalid || vm.socialForm.$invalid" aria-label="add">\n {{ \'DASHBOARDS.ADD\'| translate }}\n </md-button>\n <md-button type="submit" ng-click="vm.saveContact($event)" class="send-button md-accent md-raised" ng-if="!vm.newContact" ng-disabled="vm.detailForm.$invalid || vm.customFieldsForm.$invalid || vm.socialForm.$invalid" aria-label="save">\n {{ \'DASHBOARDS.SAVE\' | translate }}\n </md-button>\n </div>\n </div>\n <div layout="row">\n <div layout="column" flex="75">\n <md-card layout-padding>\n <div class="h2 secondary-text text-truncate" translate="DASHBOARDS.PERSONAL_INFO">\n PERSONAL_INFO</div>\n <div class="subtitle secondary-text">\n <span translate="CONTACTMANAGER.CREATED_AT"></span>\n <span>{{vm.contact.createdAt | date:\'medium\'}}</span>\n </div>\n\n <form name="vm.detailForm" novalidate>\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <div layout="row" flex>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="DASHBOARDS.FIRSTNAME">First Name</label>\n <md-icon md-font-icon="icon-account" class="firstname"></md-icon>\n <input type="text" name="firstName" ng-model="vm.contact.firstName" class="text-truncate" required privacy ng-cloak>\n <div ng-messages="vm.detailForm.firstName.$error" ng-show="vm.detailForm.firstName.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.FIRSTNAME_REQUIRED">First name\n field is required</span>\n </div>\n </div>\n </md-input-container>\n <div>\n <md-menu ng-if="!vm.newContact">\n <md-button ng-disabled="!vm.license.jscripty" class="md-icon-button md-raised md-accent ng-scope md-ink-ripple" title="JSCRIPTY PROJECTS" ng-click="$mdOpenMenu($event); vm.getJscriptyProjects();" aria-label="jscripty">\n <md-icon md-font-icon="icon-script"></md-icon>\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if="vm.loadingJscriptyProjects">\n <md-progress-circular class="md-accent margin-auto" md-diameter="32" md-mode="indeterminate">\n </md-progress-circular>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingJscriptyProjects && vm.jscriptyProjects.count > 0" ng-repeat="project in vm.jscriptyProjects.rows">\n <md-button ng-click="vm.addJscriptyTab(project, $event)">\n <md-icon md-font-icon="icon-script"></md-icon>\n {{project.name}}\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingJscriptyProjects && (!vm.jscriptyProjects || vm.jscriptyProjects.count === 0)">\n <md-button disabled translate="DASHBOARDS.NO_JSCRIPTY_PROJECTS_AVAILABLE">\n <md-icon md-font-icon="icon-script"></md-icon>\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </div>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="DASHBOARDS.LASTNAME">Last Name</label>\n <input type="text" name="lastName" ng-model="vm.contact.lastName" class="text-truncate" privacy ng-cloak>\n </md-input-container>\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <div layout="row" flex>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="DASHBOARDS.PHONE">Phone</label>\n <md-icon md-font-icon="icon-phone"></md-icon>\n <input type="text" name="phone" ng-model="vm.contact.phone" class="text-truncate" privacy ng-cloak>\n <div class="hint"><span ng-show="!vm.user.phoneBarRemoteControl || !vm.contact.phone" translate="CONTACTMANAGER.HELP.PHONEBAR_API"></span></div>\n </md-input-container>\n <div>\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="vm.contact.phone" prefix="vm.list ? vm.list.dialPrefix : null" license="vm.license" type="\'button\'"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </div>\n </div>\n <div flex="5"></div>\n <div layout="row" flex>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="DASHBOARDS.MOBILE">Mobile</label>\n <md-icon md-font-icon="icon-cellphone-iphone"></md-icon>\n <input type="text" name="mobile" ng-model="vm.contact.mobile" class="text-truncate" privacy ng-cloak>\n <div class="hint"><span ng-show="!vm.user.phoneBarRemoteControl || !vm.contact.mobile" translate="CONTACTMANAGER.HELP.PHONEBAR_API"></span></div>\n </md-input-container>\n <div>\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="vm.contact.mobile" prefix="vm.list ? vm.list.dialPrefix : null" license="vm.license" type="\'button\'"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </div>\n <div>\n <md-menu ng-if="!vm.newContact">\n <md-button ng-disabled="!vm.license.messaging || !vm.hasPermission(107) || !vm.contact.mobile" class="md-icon-button md-raised md-accent ng-scope md-ink-ripple" title="NEW SMS" ng-click="$mdOpenMenu($event); vm.getAccounts(\'sms\')" aria-label="sms">\n <md-icon md-font-icon="icon-message-text"></md-icon>\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if="vm.loadingAccounts">\n <md-progress-circular class="md-accent margin-auto" md-diameter="32" md-mode="indeterminate">\n </md-progress-circular>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && vm.smsAccounts.count > 0" ng-repeat="account in vm.smsAccounts.rows">\n <md-button ng-click="vm.composeInteraction($event, \'Sms\', account, vm.contact.mobile)">\n <md-icon md-font-icon="icon-message-text"></md-icon>\n {{account.name}}\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && (!vm.smsAccounts || vm.smsAccounts.count === 0)">\n <md-button disabled translate="DASHBOARDS.NO_SMS_ACCOUNTS_AVAILABLE">\n <md-icon md-font-icon="icon-message-text"></md-icon>\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n <div>\n <md-menu ng-if="!vm.newContact">\n <md-button ng-disabled="!vm.license.whatsapp || !vm.hasPermission(114) || !vm.contact.mobile" class="md-icon-button md-raised md-accent ng-scope md-ink-ripple" title="NEW WHATSAPP" ng-click="$mdOpenMenu($event); vm.getAccounts(\'whatsapp\')" aria-label="whatsapp">\n <md-icon md-font-icon="icon-whatsapp"></md-icon>\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if="vm.loadingAccounts">\n <md-progress-circular class="md-accent margin-auto" md-diameter="32" md-mode="indeterminate">\n </md-progress-circular>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && vm.whatsappAccounts.count > 0" ng-repeat="account in vm.whatsappAccounts.rows">\n <md-button ng-click="vm.composeInteraction($event, \'Whatsapp\', account, vm.contact.mobile)">\n <md-icon md-font-icon="icon-whatsapp"></md-icon>\n {{account.name}}\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && (!vm.whatsappAccounts || vm.whatsappAccounts.count === 0)">\n <md-button disabled translate="DASHBOARDS.NO_WHATSAPP_ACCOUNTS_AVAILABLE">\n <md-icon md-font-icon="icon-whatsapp"></md-icon>\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </div>\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <div layout="row" flex>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="DASHBOARDS.EMAIL">Email</label>\n <md-icon md-font-icon="icon-email" class="email"></md-icon>\n <input type="email" name="email" ng-model="vm.contact.email" class="text-truncate" privacy ng-cloak>\n <div ng-messages="vm.detailForm.firstName.$error" ng-show="vm.detailForm.firstName.$touched" role="alert">\n <div ng-message="email">\n <span translate="DASHBOARDS.ERRORS.EMAIL_MUST_VALID">Email must be a\n valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <div>\n <md-menu ng-if="!vm.newContact">\n <md-button ng-disabled="!vm.license.mail || !vm.hasPermission(106) || !vm.contact.email" class="md-icon-button md-raised md-accent ng-scope md-ink-ripple" title="NEW EMAIL" ng-click="$mdOpenMenu($event); vm.getAccounts(\'mail\')" aria-label="email">\n <md-icon md-font-icon="icon-email"></md-icon>\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if="vm.loadingAccounts">\n <md-progress-circular class="md-accent margin-auto" md-diameter="32" md-mode="indeterminate">\n </md-progress-circular>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && vm.mailAccounts.count > 0" ng-repeat="account in vm.mailAccounts.rows">\n <md-button ng-click="vm.composeInteraction($event, \'Mail\', account, vm.contact.email)">\n <md-icon md-font-icon="icon-email"></md-icon>\n {{account.name}}\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && (!vm.mailAccounts || vm.mailAccounts.count === 0)">\n <md-button disabled translate="DASHBOARDS.NO_MAIL_ACCOUNTS_AVAILABLE">\n <md-icon md-font-icon="icon-email"></md-icon>\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </div>\n <div flex="5"></div>\n <div layout="row" flex>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="DASHBOARDS.FAX">Fax</label>\n <md-icon md-font-icon="icon-deskphone"></md-icon>\n <input type="text" name="fax" ng-model="vm.contact.fax" privacy ng-cloak>\n </md-input-container>\n <div>\n <md-menu ng-if="!vm.newContact">\n <md-button ng-disabled="!vm.license.fax || !vm.hasPermission(109) || !vm.contact.fax" class="md-icon-button md-raised md-accent ng-scope md-ink-ripple" title="NEW FAX" ng-click="$mdOpenMenu($event); vm.getAccounts(\'fax\')" aria-label="fax">\n <md-icon md-font-icon="icon-deskphone"></md-icon>\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if="vm.loadingAccounts">\n <md-progress-circular class="md-accent margin-auto" md-diameter="32" md-mode="indeterminate">\n </md-progress-circular>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && vm.faxAccounts.count > 0" ng-repeat="account in vm.faxAccounts.rows">\n <md-button ng-click="vm.composeInteraction($event, \'Fax\', account, vm.contact.fax)">\n <md-icon md-font-icon="icon-deskphone"></md-icon>\n {{account.name}}\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && (!vm.faxAccounts || vm.faxAccounts.count === 0)">\n <md-button disabled translate="DASHBOARDS.NO_FAX_ACCOUNTS_AVAILABLE">\n <md-icon md-font-icon="icon-deskphone"></md-icon>\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </div>\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="DASHBOARDS.DATE_OF_BIRTH">Date of Birth</label>\n <mdp-date-picker mdp-open-on-click mdp-format="YYYY-MM-DD" name="dateOfBirth" ng-model="vm.contact.dateOfBirth"></mdp-date-picker>\n </md-input-container>\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="DASHBOARDS.COMPANY">Company</label>\n <md-icon md-font-icon="icon-domain" class="email"></md-icon>\n <md-select name="company" ng-model="vm.contact.CompanyId">\n <md-option ng-value="company.id" ng-repeat="company in vm.tab.companies.rows">{{company.name}}\n </md-option>\n <md-option ng-value="null"><em translate="DASHBOARDS.NONE">None</em>\n </md-option>\n </md-select>\n </md-input-container>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="DASHBOARDS.TAG">TAG</label>\n <md-icon md-font-icon="icon-tag"></md-icon>\n <md-select ng-model="vm.tab.Tags" multiple>\n <md-option ng-value="tag.id" ng-repeat="tag in vm.tab.tags.rows">\n {{tag.name}}</md-option>\n </md-select>\n </md-input-container>\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="DASHBOARDS.COUNTRY">Country</label>\n <md-icon md-font-icon="icon-home" class="country"></md-icon>\n <input type="text" name="country" ng-model="vm.contact.country" class="text-truncate">\n </md-input-container>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="DASHBOARDS.CITY">City</label>\n <input type="text" name="city" ng-model="vm.contact.city">\n </md-input-container>\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="DASHBOARDS.STREET">Street</label>\n <input type="text" name="street" ng-model="vm.contact.street">\n </md-input-container>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="DASHBOARDS.POSTALCODE">Postal Code</label>\n <input type="text" name="postalCode" ng-model="vm.contact.postalCode">\n </md-input-container>\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate translate-attr-placeholder="DASHBOARDS.NOTES">Notes</label>\n <md-icon md-font-icon="icon-note"></md-icon>\n <textarea ng-model="vm.contact.description" type="text" max-rows="4"></textarea>\n </md-input-container>\n </div>\n </form>\n </md-card>\n <md-card layout-padding>\n <div class="h2 secondary-text text-truncate" translate="DASHBOARDS.SOCIAL">Social</div>\n <form name="vm.socialForm" novalidate>\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Facebook</label>\n <md-icon md-font-icon="icon-facebook" class="facebook"></md-icon>\n <input type="text" name="facebook" ng-model="vm.contact.facebook" class="text-truncate">\n </md-input-container>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Twitter</label>\n <md-icon md-font-icon="icon-twitter" class="twitter"></md-icon>\n <input type="text" name="twitter" ng-model="vm.contact.twitter" class="text-truncate">\n </md-input-container>\n </div>\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Line</label>\n <md-icon md-font-icon="fab fa-line"></md-icon>\n <input type="text" name="line" ng-model="vm.contact.line" class="text-truncate">\n </md-input-container>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Viber</label>\n <md-icon md-font-icon="fab fa-viber"></md-icon>\n <input type="text" name="viber" ng-model="vm.contact.viber" class="text-truncate">\n </md-input-container>\n </div>\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label>WeChat</label>\n <md-icon md-font-icon="fab fa-weixin"></md-icon>\n <input type="text" name="wechat" ng-model="vm.contact.wechat" class="text-truncate">\n </md-input-container>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Telegram</label>\n <md-icon md-font-icon="icon-telegram"></md-icon>\n <input type="text" name="telegram" ng-model="vm.contact.telegram" class="text-truncate">\n </md-input-container>\n </div>\n </form>\n </md-card>\n </div>\n <div flex="25" layout="column" layout-padding>\n <md-card flex="100" layout-padding>\n <div class="h2 secondary-text text-truncate" translate="DASHBOARDS.CUSTOM_FIELDS">CUSTOM\n FIELDS</div>\n <form name="vm.customFieldsForm" novalidate>\n\n \x3c!-- START INPUT LIST --\x3e\n <md-input-container class="md-block">\n <label translate translate-attr-placeholder="DASHBOARDS.LIST">List</label>\n <md-select name="list" ng-disabled="!vm.newContact" ng-model="vm.contact.ListId" ng-change="vm.getCustomFields(vm.contact.ListId)" required>\n <md-optgroup label="Lists">\n <md-option ng-value="list.id" ng-repeat="list in vm.lists.rows">#{{list.id}} - {{list.name}}\n </md-option>\n </md-optgroup>\n </md-select>\n </md-input-container>\n \x3c!-- END INPUT LIST --\x3e\n\n <div ng-repeat="customField in vm.tab.customFields.rows" ng-switch="customField.type">\n <md-input-container class="md-block" ng-switch-when="datetime">\n <label>{{customField.alias}}<span ng-if="customField.required">*</span></label>\n <div ng-init="vm.contact[\'cf_\' + customField.id] = vm.getDateFromString(vm.contact[\'cf_\' + customField.id])">\n <mdp-date-picker mdp-open-on-click ng-required="customField.required" mdp-format="YYYY-MM-DD" ng-model="vm.contact[\'cf_\' + customField.id]">\n </mdp-date-picker>\n <mdp-time-picker mdp-open-on-click mdp-placeholder="Time" ng-required="customField.required" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.contact[\'cf_\' + customField.id]">\n </mdp-time-picker>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-switch-when="select">\n <label>{{customField.alias}}<span ng-if="customField.required">*</span></label>\n <md-select ng-model="vm.contact[\'cf_\' + customField.id]" ng-required="customField.required">\n <md-option ng-repeat="value in customField.values" ng-value="value.value">\n {{value.value}}</md-option>\n <md-option ng-value="null"><em translate="CONTACTMANAGER.NONE">None</em>\n </md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-block" ng-switch-when="switch">\n <md-switch aria-label="{{customField.alias}}" ng-model="vm.contact[\'cf_\' + customField.id]" ng-true-value="1" ng-false-value="0">\n {{customField.alias}}<span ng-if="customField.required">*</span>\n </md-switch>\n </md-input-container>\n\n <md-input-container class="md-block" ng-switch-default>\n <div layout-gt-sm="row" class="layout-gt-sm-row"></div>\n <div layout="row" flex>\n <md-input-container class="md-block" flex-gt-sm="">\n <label>{{customField.alias}}<span ng-if="customField.required">*</span></label>\n <input type="{{customField.type}}" ng-model="vm.contact[\'cf_\' + customField.id]" ng-required="customField.required">\n </md-input-container>\n <ms-click-to-call ng-if="customField.clickToAction && customField.actionType === \'voice\'" target="vm.contact[\'cf_\' + customField.id]" prefix="vm.list ? vm.list.dialPrefix : null" license="vm.license" type="\'button\'"></ms-click-to-call>\n </div>\n </md-input-container>\n </div>\n </form>\n </md-card>\n </div>\n </div>\n </md-content>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="DASHBOARDS.CUSTOMER_JOURNEY">Customer Journey</span>\n </md-tab-label>\n <md-tab-body>\n <md-content class="md-padding" id="journey-content">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.html\'">\n </div>\n </md-content>\n </md-tab-body>\n </md-tab>\n</md-tabs>'),e.put("app/main/apps/dashboards/views/general/agent/contact/dispose/dialog.html",'<md-dialog class="agent-dialog" aria-label="agent dispose">\n <form name="disposition" class="md-inline-form" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title" translate="DASHBOARDS.DISPOSE"></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()" ng-if="!vm.call.mandatoryDisposition">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div ng-if="!vm.isReschedule">\n <md-input-container class="md-block">\n <label translate="DASHBOARDS.DISPOSITION">Disposition</label>\n <md-select name="disposition" ng-model="vm.firstLevelDisposition" ng-change="vm.onDispositionChange(\'first\')" required>\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'first\' } : true">\n {{ disposition.name }}</md-option>\n </md-select>\n <div ng-messages="dispositionForm.disposition.$error" ng-show="dispositionForm.disposition.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.DISPOSITION_REQUIRED">Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.firstLevelDisposition && vm.anySecondLevelDisposition" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="DASHBOARDS.SECOND_LEVEL_DISPOSITION">Second Level Disposition</label>\n <md-select name="secondLevelDisposition" ng-model="vm.secondLevelDisposition" ng-change="vm.onDispositionChange(\'second\')">\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'second\', ParentId: vm.firstLevelDisposition.id } : true">\n {{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.secondLevelDisposition" ng-click="vm.clearDispositionSelection(\'second\')" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear second level disposition selection">\n </md-icon>\n </md-button>\n </div>\n <div ng-if="vm.secondLevelDisposition && vm.anyThirdLevelDisposition" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="DASHBOARDS.THIRD_LEVEL_DISPOSITION">Third Level Disposition</label>\n <md-select name="thirdLevelDisposition" ng-model="vm.thirdLevelDisposition" ng-change="vm.onDispositionChange(\'third\')">\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'third\', ParentId: vm.secondLevelDisposition.id } : true">\n {{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.thirdLevelDisposition" ng-click="vm.clearDispositionSelection(\'third\')" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear third level disposition selection">\n </md-icon>\n </md-button>\n </div>\n <md-input-container class="md-block">\n <label translate="DASHBOARDS.NOTE">Note</label>\n <textarea ng-model="vm.note" md-maxlength="255" max-rows="5" autofocus></textarea>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.availableCalls === 1">\n <md-switch ng-model="vm.autoClose" aria-label="Auto Close">\n <span translate="DASHBOARDS.AUTOCLOSE">Automatically close contact tab after disposal</span>\n </md-switch>\n </md-input-container>\n </div>\n <div ng-if="vm.isReschedule">\n <div layout="row">\n <div flex class="md-block">\n <mdp-date-picker mdp-open-on-click required name="date" mdp-placeholder="Date" mdp-format="YYYY-MM-DD" mdp-min-date="vm.hopper.minDate" ng-model="vm.hopper.dateTime">\n <div ng-messages="disposition.date.$error" ng-show="disposition.date.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.DATE_REQUIRED">Date is required</span>\n </div>\n <div ng-message="format">\n <span translate="DASHBOARDS.ERRORS.DATE_INVALID">Date is invalid</span>\n </div>\n </div>\n </mdp-date-picker>\n </div>\n\n <div flex class="md-block">\n <mdp-time-picker mdp-open-on-click required name="time" mdp-placeholder="Time" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.hopper.dateTime">\n <div ng-messages="disposition.time.$error" ng-show="disposition.time.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.TIME_REQUIRED">Time is required</span>\n </div>\n <div ng-message="format">\n <span translate="DASHBOARDS.ERRORS.TIME_INVALID">Time is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </div>\n <md-input-container ng-if="!vm.dialerCall" class="md-block">\n <label translate="DASHBOARDS.CAMPAIGN">Campaign</label>\n <md-select name="queueCampaign" ng-model="vm.queueCampaign" required>\n <md-option ng-value="queueCampaign" ng-repeat="queueCampaign in vm.queueCampaigns.rows">\n {{ queueCampaign.name }} ({{ queueCampaign.dialActive ? \'Active\' : \'Not Active\' }})</md-option>\n </md-select>\n <div ng-messages="disposition.queueCampaign.$error" ng-show="disposition.queueCampaign.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.CAMPAIGN_REQUIRED">Campaign field is required</span>\n </div>\n </div>\n </md-input-container>\n </div>\n </md-dialog-content>\n <md-dialog-actions ng-if="!vm.isReschedule" layout="row">\n <md-button ng-disabled="disposition.$invalid || disposition.$pristine" class="send-button md-raised md-accent" ng-click="vm.saveDisposition()" ms-dialog-spinner>\n {{(vm.selectedDisposition.name ? \'DASHBOARDS.DISPOSE\' : \'DASHBOARDS.SAVE\') | translate}}\n </md-button>\n <md-button class="send-button md-raised md-primary" translate="DASHBOARDS.RESCHEDULE" ng-click="vm.saveDisposition(\'reschedule\')">\n Reschedule\n </md-button>\n <md-button class="send-button md-accent md-raised" translate="DASHBOARDS.RECALLME" ng-click="vm.saveDisposition(\'recallme\')">\n Recall Me\n </md-button>\n <span flex></span>\n <md-button ng-if="vm.hasBlackLists" class="md-raised md-warn" translate="DASHBOARDS.BLACKLIST" ng-click="vm.saveDisposition(\'blacklist\')">\n Blacklist\n </md-button>\n </md-dialog-actions>\n <md-dialog-actions ng-if="vm.isReschedule" layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.saveReschedule()" class="send-button md-accent md-raised" ng-disabled="disposition.$invalid || disposition.$pristine || vm.disable" aria-label="SAVE" translate="DASHBOARDS.SAVE" translate-attr-aria-label="DASHBOARDS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/contact/reschedule/dialog.html",'<md-dialog class="agent-dialog" aria-label="New Agent">\n <form name="dateTime" class="md-inline-form" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <div layout="row">\n <div flex class="md-block">\n <mdp-date-picker mdp-open-on-click required name="date" mdp-placeholder="Date" mdp-format="YYYY-MM-DD" mdp-min-date="vm.hopper.minDate" ng-model="vm.hopper.dateTime">\n <div ng-messages="dateTime.date.$error" ng-show="dateTime.date.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.DATE_REQUIRED">Date is required</span>\n </div>\n <div ng-message="format">\n <span translate="DASHBOARDS.ERRORS.DATE_INVALID">Date is invalid</span>\n </div>\n </div>\n </mdp-date-picker>\n </div>\n\n <div flex class="md-block">\n <mdp-time-picker mdp-open-on-click required name="time" mdp-placeholder="Time" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.hopper.dateTime">\n <div ng-messages="dateTime.time.$error" ng-show="dateTime.time.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.TIME_REQUIRED">Time is required</span>\n </div>\n <div ng-message="format">\n <span translate="DASHBOARDS.ERRORS.TIME_INVALID">Time is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-disabled="vm.disable" ng-click="vm.saveDialog()" class="send-button md-accent md-raised" ng-disabled="dateTime.$invalid || dateTime.$pristine" aria-label="SAVE" translate="DASHBOARDS.SAVE" translate-attr-aria-label="DASHBOARDS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/contact/selection/dialog.html",'<md-dialog ng-init="vm.onInit()" class="contact-trigger-dialog" aria-label="Select contact" ng-cloak>\n <md-toolbar class="red-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ \'DASHBOARDS.SELECT_CONTACT\' | translate }}</span>\n </div>\n </md-toolbar>\n <md-dialog-content class="h-400 pv-16" ms-scroll>\n <div layout="row" class="p-10">\n <span class="font-size-16">{{ \'DASHBOARDS.MULTIPLE_CONTACTS_FOUND\' | translate }}<strong> {{ vm.callNumber }}</strong>.</span>\n <span class="font-size-16"> {{ \'DASHBOARDS.WHICH_ONE_TO_USE\' | translate }}</span>\n </div>\n <md-grid-list md-cols-xs="1" md-cols="2" md-row-height="fit" ng-class="vm.paginatedContacts[vm.page - 1].length > 2 ? \'two-rows-layout\' : \'one-row-layout\'" flex>\n <md-grid-tile ng-repeat="contact in vm.paginatedContacts[vm.page - 1]" md-rowspan="1">\n <md-card layout="column" class="contact-info" no-padding no-margin ng-click="vm.selectedContact = contact;" ng-class="{ \'light-blue-50-bg\' : vm.selectedContact && vm.selectedContact.id === contact.id }" flex>\n <md-card-title class="pt-16">\n <md-card-title-text layout-align="center start">\n <span class="font-size-16 text-bold">#{{ contact.id }} -\n <span privacy ng-cloak>{{ contact.firstName }} {{ contact.lastName }}</span>\n </span>\n <em class="font-size-12">{{ \'DASHBOARDS.LAST_UPDATED\' | translate }}: {{ contact.updatedAt }}</em>\n <span class="font-size-12">{{ \'DASHBOARDS.LIST\' | translate }}: {{ vm.lists[contact.ListId] }}</span>\n </md-card-title-text>\n <md-button class="md-icon-button no-margin" aria-label="Selected">\n <md-icon md-font-icon="{{ vm.selectedContact && vm.selectedContact.id === contact.id ? \'icon-checkbox-marked-circle\' : \'icon-checkbox-blank-circle-outline\' }}" ng-class="{ \'green-fg\': vm.selectedContact && vm.selectedContact.id === contact.id }"></md-icon>\n </md-button>\n </md-card-title>\n <md-divider></md-divider>\n <md-card-content layout="row" layout-align="center start" class="p-10">\n <span class="font-size-16">{{ \'DASHBOARDS.MATCHING_FIELD\' | translate }}:\n <strong privacy ng-cloak>{{ contact.matchingField }}</strong>\n </span>\n </md-card-content>\n </md-card>\n </md-grid-tile>\n </md-grid-list>\n </md-dialog-content>\n <md-dialog-actions layout="row">\n <div ng-if="vm.paginatedContacts.length > 1" layout="row" layout-align="center center" flex>\n <md-button ng-click="vm.page = vm.page - 1;" class="md-icon-button no-margin" ng-class="{ \'hidden\': vm.page <= 1 }" aria-label="Previous page">\n <md-icon md-font-icon="icon-chevron-double-left"></md-icon>\n </md-button>\n <span>{{ \'DASHBOARDS.PAGE\' | translate }} {{ vm.page }} {{ \'DASHBOARDS.OF\' | translate }}\n {{ vm.paginatedContacts.length }}</span>\n <md-button ng-click="vm.page = vm.page + 1;" class="md-icon-button no-margin" ng-class="{ \'hidden\': !vm.paginatedContacts[vm.page] }" aria-label="Next page">\n <md-icon md-font-icon="icon-chevron-double-right"></md-icon>\n </md-button>\n </div>\n <md-button ng-click="vm.selectContact()" class="select-button md-accent md-raised" ng-disabled="!vm.selectedContact" aria-label="Select" translate="DASHBOARDS.SELECT" translate-attr-aria-label="DASHBOARDS.SELECT">\n SELECT\n </md-button>\n </md-dialog-actions>\n</md-dialog>vc'),e.put("app/main/apps/dashboards/views/general/agent/home/abandoned/agent.general.abandoned.html",'<div ng-cloak>\n <md-content>\n <md-tabs md-selected="vm.selectedTab" md-dynamic-height md-border-bottom>\n <md-tab ng-if="vm_home.hasPermission(110)" label="{{\'DASHBOARDS.VOICE\' | translate}}">\n <md-content ng-if="vm.selectedTab === 0" ng-include="\'app/main/apps/dashboards/views/general/agent/home/abandoned/voice/agent.general.abandoned.voice.html\'" ng-controller="AgentHomeAbandonedVoiceController as vm_voice">\n </md-content>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(110) && vm_home.license.dialer" label="{{\'DASHBOARDS.MOTION_BULL\' | translate}}">\n <md-content ng-if="vm.selectedTab === 1" ng-include="\'app/main/apps/dashboards/views/general/agent/home/abandoned/bull/agent.general.abandoned.bull.html\'" ng-controller="AgentHomeAbandonedBullController as vm_bull">\n </md-content>\n </md-tab>\n </md-tabs>\n </md-content>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/abandoned/bull/agent.general.abandoned.bull.html",'<md-card ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header blue-bg" ng-class="{\'h-128\' : vm_bull.isSearchBarVisible === true}">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.ABANDONEDQUEUECALLS">ABANDONED QUEUE CALLS</span>\n <ms-search-bar on-search="vm_bull.getAbandonedCalls()" query="vm_bull.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm_bull.isSearchBarVisible"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_bull.quickFilters" query="vm_bull.query" search="vm_bull.getAbandonedCalls()"></ms-quick-filter>\n <md-button class="md-icon-button reload-list" ng-click="vm_bull.refresh && vm_bull.refreshAbandonedCalls($event)" aria-label="Reload" translate translate-attr-label="DASHBOARDS.RELOAD">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip ng-if="vm_bull.showTooltip" md-visible="vm_bull.showTooltip">\n {{\'DASHBOARDS.CLICKRELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_bull.promise">\n <thead md-head md-order="vm_bull.query.sort" md-on-reorder="vm_bull.getAbandonedCalls">\n <tr md-row>\n <th md-column md-order-by="id">{{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column md-order-by="calleridname">{{\'DASHBOARDS.FULLNAME\' | translate}}</th>\n <th md-column md-order-by="calleridnum">{{\'DASHBOARDS.PHONE\' | translate}}</th>\n <th md-column md-order-by="queue">{{\'DASHBOARDS.QUEUE\' | translate}}</th>\n <th md-column md-order-by="queuecallerabandonAt">{{\'DASHBOARDS.ABANDONAT\' | translate}}</th>\n <th md-column md-order-by="queuecallerexitAt">{{\'DASHBOARDS.QUEUECALLEREXITAT\' | translate}}</th>\n <th md-column md-order-by="queuecallerexitreason">{{\'DASHBOARDS.QUEUECALLEREXITREASON\' | translate}}\n </th>\n <th md-column md-order-by="disposition">{{\'DASHBOARDS.DISPOSITION\' | translate}}</th>\n <th md-column md-order-by="secondDisposition">{{\'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}</th>\n <th md-column md-order-by="thirdDisposition">{{\'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.RESERVED\' | translate}}</th>\n <th md-column md-order-by="lastAssignedTo">{{\'DASHBOARDS.LASTASSIGNEDTO\' | translate}}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_bull.abandonedCalls.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="abandonedCall in vm_bull.abandonedCalls.rows">\n <td md-cell class="id">{{abandonedCall.id}}</td>\n <td md-cell class="firstName" privacy ng-cloak>{{abandonedCall.calleridname}}</td>\n <td md-cell class="phone">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="abandonedCall.calleridnum" license="vm_home.license" disabled="abandonedCall.lastAssignedTo !== vm_bull.currentUser.name">\n </ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td md-cell class="list">{{vm_bull.queuesMap[abandonedCall.queue]}}</td>\n <td md-cell class="list">\n {{abandonedCall.queuecallerabandonAt ? (abandonedCall.queuecallerabandonAt | formatdate) : (abandonedCall.queuecallerexitAt | formatdate) }}\n </td>\n <td md-cell class="list">\n {{abandonedCall.queuecallerexitAt ? (abandonedCall.queuecallerexitAt | formatdate) : undefined }}\n </td>\n <td md-cell class="list">{{abandonedCall.queuecallerexitreason}}</td>\n <td md-cell class="list">{{ abandonedCall.disposition }}</td>\n <td md-cell class="list">{{ abandonedCall.secondDisposition }}</td>\n <td md-cell class="list">{{ abandonedCall.thirdDisposition }}</td>\n <td md-cell class="actions">\n <md-switch no-margin ng-if="abandonedCall.lastAssignedTo === vm_bull.currentUser.name || !abandonedCall.lastAssignedTo" ng-disabled="vm_bull.disable[abandonedCall.id]" ng-model="abandonedCall.assigned" aria-label="reserved" ng-change="vm_bull.reserved(abandonedCall)">\n </md-switch>\n </td>\n <td md-cell class="list">{{abandonedCall.lastAssignedTo}}</td>\n <td md-cell class="actions">\n <md-menu ng-if="abandonedCall.lastAssignedTo === vm_bull.currentUser.name">\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="1">\n <md-menu-item>\n <md-button ng-click="vm_bull.dispose(abandonedCall)" class="text-capitalize" translate="DASHBOARDS.DISPOSE">Dispose\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-limit="vm_bull.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_bull.query.page" md-total="{{vm_bull.abandonedCalls.count}}" md-on-paginate="vm_bull.getAbandonedCalls" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/abandoned/dispose/dialog.html",'<md-dialog class="agent-dialog" aria-label="agent dispose">\n <form name="disposition" class="md-inline-form" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title" translate="DASHBOARDS.DISPOSE"></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div>\n <md-input-container class="md-block">\n <label translate="DASHBOARDS.DISPOSITION">Disposition</label>\n <md-select name="disposition" ng-model="vm.firstLevelDisposition" ng-change="vm.onDispositionChange(\'first\')" required>\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'first\' } : true">\n {{ disposition.name }}</md-option>\n </md-select>\n <div ng-messages="dispositionForm.disposition.$error" ng-show="dispositionForm.disposition.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.DISPOSITION_REQUIRED">Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.firstLevelDisposition && vm.anySecondLevelDisposition" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="DASHBOARDS.SECOND_LEVEL_DISPOSITION">Second Level Disposition</label>\n <md-select name="secondLevelDisposition" ng-model="vm.secondLevelDisposition" ng-change="vm.onDispositionChange(\'second\')">\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'second\', ParentId: vm.firstLevelDisposition.id } : true">\n {{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.secondLevelDisposition" ng-click="vm.clearDispositionSelection(\'second\')" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear second level disposition selection">\n </md-icon>\n </md-button>\n </div>\n <div ng-if="vm.secondLevelDisposition && vm.anyThirdLevelDisposition" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="DASHBOARDS.THIRD_LEVEL_DISPOSITION">Third Level Disposition</label>\n <md-select name="thirdLevelDisposition" ng-model="vm.thirdLevelDisposition" ng-change="vm.onDispositionChange(\'third\')">\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'third\', ParentId: vm.secondLevelDisposition.id } : true">\n {{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.thirdLevelDisposition" ng-click="vm.clearDispositionSelection(\'third\')" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear third level disposition selection">\n </md-icon>\n </md-button>\n </div>\n <md-input-container class="md-block">\n <label translate="DASHBOARDS.NOTE">Note</label>\n <textarea ng-model="vm.note" md-maxlength="255" max-rows="5" autofocus></textarea>\n </md-input-container>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button ng-disabled="disposition.$invalid || disposition.$pristine" class="send-button md-raised md-accent" ng-click="vm.saveDisposition()">\n'+" {{(vm.selectedDisposition.name ? 'DASHBOARDS.DISPOSE' : 'DASHBOARDS.SAVE') | translate}}\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>"),e.put("app/main/apps/dashboards/views/general/agent/home/abandoned/voice/agent.general.abandoned.voice.html",'<md-card ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header blue-bg" ng-class="{\'h-128\' : vm_voice.isSearchBarVisible === true}">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.ABANDONEDQUEUECALLS">ABANDONED QUEUE CALLS</span>\n <ms-search-bar on-search="vm_voice.getAbandonedCalls()" query="vm_voice.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm_voice.isSearchBarVisible"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_voice.quickFilters" query="vm_voice.query" search="vm_voice.getAbandonedCalls()"></ms-quick-filter>\n <md-button class="md-icon-button reload-list" ng-click="vm_voice.refresh && vm_voice.refreshAbandonedCalls($event)" aria-label="Reload" translate translate-attr-label="DASHBOARDS.RELOAD">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip ng-if="vm_voice.showTooltip" md-visible="vm_voice.showTooltip">\n {{\'DASHBOARDS.CLICKRELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_voice.promise">\n <thead md-head md-order="vm_voice.query.sort" md-on-reorder="vm_voice.getAbandonedCalls">\n <tr md-row>\n <th md-column md-order-by="id">{{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column md-order-by="calleridname">{{\'DASHBOARDS.FULLNAME\' | translate}}</th>\n <th md-column md-order-by="calleridnum">{{\'DASHBOARDS.PHONE\' | translate}}</th>\n <th md-column md-order-by="queue">{{\'DASHBOARDS.QUEUE\' | translate}}</th>\n <th md-column md-order-by="queuecallerabandonAt">{{\'DASHBOARDS.ABANDONAT\' | translate}}</th>\n <th md-column md-order-by="disposition">{{\'DASHBOARDS.DISPOSITION\' | translate}}</th>\n <th md-column md-order-by="secondDisposition">{{\'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}</th>\n <th md-column md-order-by="thirdDisposition">{{\'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.RESERVED\' | translate}}</th>\n <th md-column md-order-by="lastAssignedTo">{{\'DASHBOARDS.LASTASSIGNEDTO\' | translate}}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_voice.abandonedCalls.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="abandonedCall in vm_voice.abandonedCalls.rows">\n <td md-cell class="id">{{abandonedCall.id}}</td>\n <td md-cell class="firstName" privacy ng-cloak>{{abandonedCall.calleridname}}</td>\n <td md-cell class="phone">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="abandonedCall.calleridnum" license="vm_home.license" disabled="abandonedCall.lastAssignedTo !== vm_voice.currentUser.name">\n </ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td md-cell class="list">{{vm_voice.queuesMap[abandonedCall.queue]}}</td>\n <td md-cell class="list">\n {{abandonedCall.queuecallerabandonAt ? (abandonedCall.queuecallerabandonAt | formatdate) : (abandonedCall.queuecallerexitAt | formatdate) }}\n </td>\n <td md-cell class="list">{{ abandonedCall.disposition }}</td>\n <td md-cell class="list">{{ abandonedCall.secondDisposition }}</td>\n <td md-cell class="list">{{ abandonedCall.thirdDisposition }}</td>\n <td md-cell class="actions">\n <md-switch no-margin ng-if="abandonedCall.lastAssignedTo === vm_voice.currentUser.name || !abandonedCall.lastAssignedTo" ng-disabled="vm_voice.disable[abandonedCall.id]" ng-model="abandonedCall.assigned" aria-label="reserved" ng-change="vm_voice.reserved(abandonedCall)">\n </md-switch>\n </td>\n <td md-cell class="list">{{abandonedCall.lastAssignedTo}}</td>\n <td md-cell class="actions">\n <md-menu ng-if="abandonedCall.lastAssignedTo === vm_voice.currentUser.name">\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="1">\n <md-menu-item>\n <md-button ng-click="vm_voice.dispose(abandonedCall)" class="text-capitalize" translate="DASHBOARDS.DISPOSE">Dispose\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-limit="vm_voice.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_voice.query.page" md-total="{{vm_voice.abandonedCalls.count}}" md-on-paginate="vm_voice.getAbandonedCalls" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/agent.general.home.html",'<div layout="column" layout-align="start center" class="md-primary-bg width-50" ms-scroll>\n <div ng-repeat="node in vm_home.navigation">\n <div ng-repeat="home in node.children">\n <md-button ng-repeat="button in home.children | orderBy:\'weight\'" ng-if="!button.hidden()" class="md-raised width-50 height-50 no-margin" style="border-radius: 0px" aria-label="{{button.state}}" ng-click="vm_home.changeSidebarTab(button)" ng-class="{\'md-primary\': vm_home.sidebar != button.state}">\n <md-tooltip md-direction="right" md-delay="500"><span translate="{{button.translate}}"></span>\n </md-tooltip>\n <md-icon md-font-icon="{{button.icon}}" ng-class="button.iconClass"></md-icon>\n </md-button>\n </div>\n </div>\n</div>\n<div layout="column" flex>\n <div layout="column" flex>\n <div ng-switch="vm_home.sidebar" style="overflow-y: auto" flex>\n <div ng-switch-when="agentPresence">\n <div ng-if="vm_home.hasPermission(115)" ng-include="\'app/main/apps/dashboards/views/general/agent/home/presence/agent.general.presence.html\'" ng-controller="AgentHomePresenceController as vm"></div>\n <div ng-if="!vm_home.hasPermission(115)" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="contacts">\n <div ng-if="vm_home.hasPermission(102) && vm_home.license.cm" ng-include="\'app/main/apps/dashboards/views/general/agent/home/contacts/agent.general.contacts.html\'" ng-controller="AgentHomeContactsController as vm"></div>\n <div ng-if="!vm_home.hasPermission(102) || !vm_home.license.cm" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="mycontacts">\n <div ng-if="vm_home.hasPermission(103) && vm_home.license.cm" ng-include="\'app/main/apps/dashboards/views/general/agent/home/mycontacts/agent.general.mycontacts.html\'" ng-controller="AgentHomeMyContactsController as vm"></div>\n <div ng-if="!vm_home.hasPermission(103) || !vm_home.license.cm" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="scheduled">\n <div ng-if="vm_home.hasPermission(113) && vm_home.license.dialer" ng-include="\'app/main/apps/dashboards/views/general/agent/home/scheduled/agent.general.scheduled.html\'" ng-controller="AgentHomeScheduledCallsController as vm"></div>\n <div ng-if="!vm_home.hasPermission(113) || !vm_home.license.dialer" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="voice">\n <div ng-if="vm_home.hasPermission(110) && vm_home.license.voice" ng-include="\'app/main/apps/dashboards/views/general/agent/home/voice/agent.general.voice.html\'" ng-controller="AgentHomeVoiceController as vm"></div>\n <div ng-if="!vm_home.hasPermission(110) || !vm_home.license.voice" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="abandoned">\n <div ng-if="vm_home.hasPermission(111) && vm_home.license.voice" ng-include="\'app/main/apps/dashboards/views/general/agent/home/abandoned/agent.general.abandoned.html\'" ng-controller="AgentHomeAbandonedController as vm"></div>\n <div ng-if="!vm_home.hasPermission(111) || !vm_home.license.voice" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="recordings">\n <div ng-if="vm_home.hasPermission(104) && vm_home.license.voice" ng-include="\'app/main/apps/dashboards/views/general/agent/home/recordings/agent.general.recordings.html\'" ng-controller="AgentHomeRecordingsController as vm"></div>\n <div ng-if="!vm_home.hasPermission(104) || !vm_home.license.voice" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="chat">\n <div ng-if="vm_home.hasPermission(105) && vm_home.license.chat" ng-include="\'app/main/apps/dashboards/views/general/agent/home/chat/agent.general.chat.html\'" ng-controller="AgentHomeChatController as vm" ng-init="vm.onInit(vm_home.license, vm_home.setting)">\n </div>\n <div ng-if="!vm_home.hasPermission(105) || !vm_home.license.chat" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="mail">\n <div ng-if="vm_home.hasPermission(106) && vm_home.license.mail" ng-include="\'app/main/apps/dashboards/views/general/agent/home/mail/agent.general.mail.html\'" ng-controller="AgentHomeMailController as vm" ng-init="vm.onInit(vm_home.license, vm_home.setting)">\n </div>\n <div ng-if="!vm_home.hasPermission(106) || !vm_home.license.mail" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="sms">\n <div ng-if="vm_home.hasPermission(107) && vm_home.license.messaging" ng-include="\'app/main/apps/dashboards/views/general/agent/home/sms/agent.general.sms.html\'" ng-controller="AgentHomeSmsController as vm" ng-init="vm.onInit(vm_home.license, vm_home.setting)">\n </div>\n <div ng-if="!vm_home.hasPermission(107) || !vm_home.license.messaging" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="openchannel">\n <div ng-if="vm_home.hasPermission(108) && vm_home.license.openchannel" ng-include="\'app/main/apps/dashboards/views/general/agent/home/openchannel/agent.general.openchannel.html\'" ng-controller="AgentHomeOpenchannelController as vm" ng-init="vm.onInit(vm_home.license, vm_home.setting)">\n </div>\n <div ng-if="!vm_home.hasPermission(108) || !vm_home.license.openchannel" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="fax">\n <div ng-if="vm_home.hasPermission(109) && vm_home.license.fax" ng-include="\'app/main/apps/dashboards/views/general/agent/home/fax/agent.general.fax.html\'" ng-controller="AgentHomeFaxController as vm" ng-init="vm.onInit(vm_home.license, vm_home.setting)">\n </div>\n <div ng-if="!vm_home.hasPermission(109) || !vm_home.license.fax" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="whatsapp">\n <div ng-if="vm_home.hasPermission(114) && vm_home.license.whatsapp" ng-include="\'app/main/apps/dashboards/views/general/agent/home/whatsapp/agent.general.whatsapp.html\'" ng-controller="AgentHomeWhatsappController as vm" ng-init="vm.onInit(vm_home.license, vm_home.setting)">\n </div>\n <div ng-if="!vm_home.hasPermission(114) || !vm_home.license.whatsapp" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="plugin" layout-fill>\n <div ng-if="vm_home.hasPermission(vm_home.pluginId)" ng-include="\'app/main/apps/dashboards/views/general/agent/home/plugins/agent.general.plugins.html\'" ng-controller="AgentHomePluginsController as vm" ng-init="vm.onInit(vm_home.license, vm_home.setting, vm_home.plugin)" layout-fill></div>\n <div ng-if="!vm_home.hasPermission(vm_home.pluginId)" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-default>\n <div ng-if="vm_home.hasPermission(101)" ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/agent.general.dashboard.html\'" ng-controller=" AgentHomeDashboardController as vm"></div>\n <div ng-if="!vm_home.hasPermission(101)" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n </div>\n </div>\n <div ng-if="(vm_home.draftManager.drafts | json) != \'{}\'" layout="column" class="draft-manager-bar">\n <ms-tab-scroll>\n <div layout="column" ng-repeat="(key, draft) in vm_home.draftManager.drafts" class="grey-50-bg" ng-click="vm_home.draftManager.open(draft.id)">\n <div class="draft-manager-tab" layout="row" layout-align="space-between center">\n <md-icon md-font-icon="icon-pencil" class="icon s16 margin-horizontal-5 black-fg"></md-icon>\n <span class="text-truncate font-size-12 black-fg">{{draft.title}}</span>\n <md-button class="md-icon-button md-mini no-margin md-primary" aria-label="close" ng-click="vm_home.draftManager.remove(draft.id)">\n <md-icon md-font-icon="icon-close-circle-outline" class="icon s16"></md-icon>\n </md-button>\n </div>\n </div>\n </ms-tab-scroll>\n </div>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html",'<md-content layout="row" layout-align="space-around center" flex layout-padding layout-wrap>\n <div layout="column" layout-align="space-around center" flex="50">\n <span class="font-size-40 text-center">{{ \'DASHBOARDS.WELCOME_TO_MOTION\' | translate }}!</span>\n <span class="font-size-30 text-center" translate="DASHBOARDS.WELCOME_MESSAGE">Use the left sidebar to navigate through available sections.</span>\n </div>\n\n <div layout="column" flex="50">\n <img src="assets/images/avatars/permissions.png" alt="permissions">\n </div>\n</md-content>'),e.put("app/main/apps/dashboards/views/general/agent/home/chat/agent.general.chat.html",'<md-card ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.CHAT_INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm.getChatInteractions()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getChatInteractions()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" aria-label="Reload" translate translate-attr-aria-label="DASHBOARDS.RELOAD" ng-click="vm.getChatInteractions()">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n </div>\n </md-toolbar>\n <md-table-container class="interactions-list">\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getChatInteractions">\n <tr md-row>\n <th class="id-header" md-column md-order-by="id">\n {{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column class="no-padding width-5">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding width-5"></th>\n <th md-column class="no-padding width-5"></th>\n <th md-column md-order-by="contactName">{{\'DASHBOARDS.CONTACT\' | translate}}</th>\n <th md-column md-order-by="createdAt">{{\'DASHBOARDS.STARTEDAT\' | translate}}</th>\n <th md-column md-order-by="lastMsgAt">{{\'DASHBOARDS.LAST_MESSAGE\' | translate}}</th>\n <th md-column md-order-by="closed">{{\'DASHBOARDS.STATUS\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.AGENT\' | translate}}</th>\n <th md-column>\n {{\'DASHBOARDS.WEBSITE\' | translate}}\n </th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.chatInteractions.rows.length">\n <td md-cell colspan="13">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INTERACTION">No Available\n Interaction</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="interaction in vm.chatInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td ng-click="vm.showChatInteraction($event, interaction)" md-cell class="id">\n <div layout="row" layout-align="start center">\n <span class="font-size-10">{{interaction.id}}</span>\n </div>\n </td>\n <td md-cell>\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="u in interaction.Users">{{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : u.fullname | translate }}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="!interaction.closed && interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" layout-margin>{{interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="interaction.attach" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td ng-click="vm.showChatInteraction($event, interaction)" md-cell>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'no-margin-bottom\' : interaction.contactInfo}" layout-margin privacy ng-cloak>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text no-margin-top" layout-margin privacy ng-cloak>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td ng-click="vm.showChatInteraction($event, interaction)" md-cell>\n <span class="font-size-10 text-truncate">{{interaction.createdAt | formatdate }}</span>\n </td>\n <td ng-click="vm.showChatInteraction($event, interaction)" md-cell>\n <div layout="row" ng-if="interaction.lastMsgAt">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}">\n </md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="font-size-10 text-truncate">{{interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n <span ng-if="!interaction.lastMsgAt">No messages</span>\n </td>\n <td ng-click="vm.showChatInteraction($event, interaction)" md-cell>\n <span ng-if="interaction.closed" class="red-fg font-size-12">{{ \'DASHBOARDS.CLOSED\' | translate}} <span ng-if="interaction.disposition">-\n {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}</span></span>\n <md-tooltip class="multiline" ng-if="interaction.closed">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n <span ng-if="!interaction.closed" class="green-fg font-size-12"><span translate="DASHBOARDS.OPENED"></span><span ng-if="interaction.substatus"> -\n {{interaction.substatus}}</span></span>\n </td>\n <td ng-click="vm.showChatInteraction($event, interaction)" md-cell class="user">\n <span class="font-size-12 text-truncate width-80">{{ vm.getAgentLabel(interaction) }}</span>\n </td>\n <td ng-click="vm.showChatInteraction($event, interaction)" md-cell class="chatAccount">\n {{ vm.getChatWebsiteLabel(interaction) }}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <div layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">,\n </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </div>\n </td>\n <td md-cell class="actions actions-padding">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="vm.showChatInteraction($event, interaction)" translate="DASHBOARDS.SHOW">\n Show Chat\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions && vm.user.downloadAttachments">\n <md-button ng-click="vm.downloadChatInteraction($event, interaction, true)" translate="CHAT.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions">\n <md-button ng-click="vm.downloadChatInteraction($event, interaction)" translate="CHAT.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!interaction.closed">\n <md-button ng-click="vm.disposeInteraction($event, interaction)" translate="DASHBOARDS.CLOSE_AND_DISPOSE">\n Close and Dispose\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'DASHBOARDS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'DASHBOARDS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'DASHBOARDS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.chatInteractions.count}}" md-on-paginate="vm.getChatInteractions" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/contacts/agent.general.contacts.html",'<md-card ng-init="vm.onInit()">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.CONTACTS">Contacts</span>\n <ms-search-bar on-search="vm.getContacts()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getContacts()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" ng-click="vm.refreshContacts($event)" aria-label="Reload" translate translate-attr-label="DASHBOARDS.RELOAD">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n <md-button ng-if="vm.lists.rows && vm.lists.rows.length" class="md-icon-button create-new" ng-click="vm.openContact()" aria-label="Add contact" translate translate-attr-label="DASHBOARDS.ADD_CONTACT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getContacts">\n <tr md-row>\n <th md-column md-order-by="id">{{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column md-order-by="firstName">{{\'DASHBOARDS.FULLNAME\' | translate}}</th>\n <th md-column md-order-by="phone">{{\'DASHBOARDS.PHONE\' | translate}}</th>\n <th md-column md-order-by="mobile">{{\'DASHBOARDS.MOBILE\' | translate}}</th>\n <th md-column md-order-by="fax">{{\'DASHBOARDS.FAX\' | translate}}</th>\n <th md-column md-order-by="email">{{\'DASHBOARDS.EMAIL\' | translate}}</th>\n <th md-column md-order-by="createdAt">{{\'DASHBOARDS.CREATEDAT\' | translate}}</th>\n <th md-column md-order-by="ListId">{{\'DASHBOARDS.LIST\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.contacts.rows.length">\n <td md-cell colspan="10">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="contact in vm.contacts.rows">\n <td ng-click="vm.openContact(contact.id)" md-cell class="id">{{contact.id}}</td>\n <td ng-click="vm.openContact(contact.id)" md-cell class="firstName" privacy ng-cloak>{{contact.firstName}}\n {{contact.lastName}}</td>\n <td ng-click="vm.openContact(contact.id)" md-cell class="phone">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="contact.phone" prefix="vm.listsMap[contact.ListId].dialPrefix" license="vm_home.license"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td ng-click="vm.openContact(contact.id)" md-cell class="mobile">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="contact.mobile" prefix="vm.listsMap[contact.ListId].dialPrefix" license="vm_home.license"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td ng-click="vm.openContact(contact.id)" md-cell class="fax" privacy ng-cloak>{{contact.fax}}</td>\n <td ng-click="vm.openContact(contact.id)" md-cell class="email" privacy ng-cloak>{{contact.email}}</td>\n <td ng-click="vm.openContact(contact.id)" md-cell class="createdAt">{{contact.createdAt | formatdate}}</td>\n <td ng-click="vm.openContact(contact.id)" md-cell class="list">{{vm.listsMap[contact.ListId].name}}\n <td md-cell class="tag">\n <div ng-if="contact.Tags.length">\n <div ng-if="contact.Tags.length == 1" layout="column" layout-align="center center">\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': contact.Tags[0].color }"></md-icon>\n <span class="text-truncate">{{contact.Tags[0].name}}</span>\n </div>\n <div ng-if="contact.Tags.length > 1" layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in contact.Tags">{{tag.name}}<span ng-if="!$last">,\n </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag"></md-icon>\n </div>\n </div>\n </td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.openContact(contact.id)" translate="DASHBOARDS.EDIT">\n Edit Contact\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.mergeContact($event, contact)" translate="DASHBOARDS.MERGE">\n Merge Contact\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.duplicateContact($event, contact)" translate="DASHBOARDS.DUPLICATE">\n Duplicate Contact\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.contacts.count}}" md-on-paginate="vm.getContacts" md-page-select></md-table-pagination>\n\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/agent.general.dashboard.html",'<div ng-cloak>\n <md-content>\n <md-tabs md-dynamic-height md-border-bottom>\n <md-tab ng-if="vm_home.hasPermission(110) && vm_home.license.voice" label="{{\'DASHBOARDS.VOICE\' | translate}}">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/voice/agent.general.dashboard.voice.html\'" ng-controller="AgentHomeDashboardVoiceController as vm_voice" class="md-padding">\n </md-content>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(110) && vm_home.license.dialer" label="{{\'DASHBOARDS.MOTION_BULL\' | translate}}">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/bull/agent.general.dashboard.bull.html\'" ng-controller="AgentHomeDashboardBullController as vm_bull" class="md-padding">\n </md-content>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(105) && vm_home.license.chat" label="{{\'DASHBOARDS.CHAT\' | translate}}">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/chat/agent.general.dashboard.chat.html\'" ng-controller="AgentHomeDashboardMultiChannelChatController as vm_chat" class="md-padding">\n </md-content>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(106) && vm_home.license.mail" label="{{\'DASHBOARDS.MAIL\' | translate}}">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/mail/agent.general.dashboard.mail.html\'" ng-controller="AgentHomeDashboardMultiChannelMailController as vm_mail" class="md-padding">\n </md-content>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(107) && vm_home.license.messaging" label="{{\'DASHBOARDS.SMS\' | translate}}">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/sms/agent.general.dashboard.sms.html\'" ng-controller="AgentHomeDashboardMultiChannelSmsController as vm_sms" class="md-padding">\n </md-content>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(108) && vm_home.license.openchannel" label="{{\'DASHBOARDS.OPENCHANNEL\' | translate}}">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/openchannel/agent.general.dashboard.openchannel.html\'" ng-controller="AgentHomeDashboardMultiChannelOpenchannelController as vm_openchannel" class="md-padding">\n </md-content>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(109) && vm_home.license.fax" label="{{\'DASHBOARDS.FAX\' | translate}}">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/fax/agent.general.dashboard.fax.html\'" ng-controller="AgentHomeDashboardMultiChannelFaxController as vm_fax" class="md-padding">\n </md-content>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(114) && vm_home.license.whatsapp" label="{{\'DASHBOARDS.WHATSAPP\' | translate}}">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/whatsapp/agent.general.dashboard.whatsapp.html\'" ng-controller="AgentHomeDashboardMultiChannelWhatsappController as vm_whatsapp" class="md-padding">\n </md-content>\n </md-tab>\n </md-tabs>\n </md-content>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/bull/agent.general.dashboard.bull.html",'<div layout="row" ng-cloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header red-900-bg">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.QUEUES">Queues</span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_bull.promise">\n <thead md-head md-order="vm_bull.query.sort" md-on-reorder="vm_bull.getVoiceQueues">\n <tr md-row>\n <th md-column>{{ \'VOICE.NAME\' | translate }}</th>\n <th md-column>{{ \'VOICE.TYPE\' | translate }}</th>\n <th md-column>{{ \'VOICE.WAITING\' | translate }}</th>\n <th ng-if="voiceQueue.type === \'outbound\'" md-column>{{ \'VOICE.ACTIVE\' | translate }}</th>\n \x3c!-- <th md-column md-order-by="active">{{ \'VOICE.ACTIVE\' | translate }}</th> --\x3e\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_bull.getSize(vm_bull.voiceQueues)">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, voiceQueue) in vm_bull.voiceQueues">\n <td md-cell class="name">{{voiceQueue.name}}</td>\n <td ng-if="voiceQueue.type === \'outbound\'" md-cell class="waiting">{{voiceQueue.dialMethod}}</td>\n <td md-cell class="waiting">{{voiceQueue.waiting || 0}}</td>\n <td md-cell ng-if="voiceQueue.type === \'outbound\'" class="dialActive ">\n <md-icon md-colors="{color: {{voiceQueue.dialActive ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{voiceQueue.dialActive ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_bull.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_bull.query.page" md-total="{{vm_bull.voiceQueuesTotal}}" md-on-paginate="vm_bull.getVoiceQueues" md-page-select></md-table-pagination>\n </md-card>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header red-900-bg">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.WAITING_TEXT"></span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'VOICE.DID\' | translate }}</th>\n <th md-column>{{ \'VOICE.QUEUE\' | translate }}</th>\n <th md-column>{{ \'VOICE.CALLER\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_bull.getSize(vm_bull.rpcVoiceQueuesChannels)">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, channel) in vm_bull.rpcVoiceQueuesChannels | limitObjectFromTo: vm_bull.queryChannels.limit:(vm_bull.queryChannels.page - 1) * vm_bull.queryChannels.limit">\n <td md-cell>{{channel.exten}}</td>\n <td md-cell>{{channel.queue}}</td>\n <td md-cell privacy ng-cloak>{{channel.calleridnum}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_bull.queryChannels.limit" md-page="vm_bull.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_bull.getSize(vm_bull.rpcVoiceQueuesChannels)}}" md-page-select>\n </md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/chat/agent.general.dashboard.chat.html",'<div layout="row" ng-cloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_chat.getColorByChannel(\'chat\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.QUEUES">Queues</span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_chat.promise">\n <thead md-head md-order="vm_chat.query.sort" md-on-reorder="vm_chat.getChatQueues">\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.NAME\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.WAITING\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_chat.getSize(vm_chat.chatQueues)">\n <td md-cell colspan="2">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, queue) in vm_chat.chatQueues">\n <td md-cell class="name">{{queue.name}}</td>\n <td md-cell class="waiting">{{queue.waiting || 0}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_chat.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_chat.query.page" md-total="{{vm_chat.chatQueuesTotal}}" md-on-paginate="vm_chat.getChatQueues" md-page-select></md-table-pagination>\n </md-card>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_chat.getColorByChannel(\'chat\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.CHANNEL_WAITING_TEXT"></span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.ACCOUNT\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_QUEUE\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_FROM\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_chat.paginatedInteractions.length">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, interaction) in vm_chat.interactions">\n <td md-cell>{{interaction.account}}</td>\n <td md-cell>{{interaction.queue}}</td>\n <td md-cell>{{interaction.from}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_chat.queryChannels.limit" md-page="vm_chat.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_chat.paginatedInteractions.length}}" md-on-paginate="vm_chat.paginate" md-page-select></md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/fax/agent.general.dashboard.fax.html",'<div layout="row" ng-cloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_fax.getColorByChannel(\'fax\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.QUEUES">Queues</span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_fax.promise">\n <thead md-head md-order="vm_fax.query.sort" md-on-reorder="vm_fax.getFaxQueues">\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.NAME\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.WAITING\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_fax.getSize(vm_fax.faxQueues)">\n <td md-cell colspan="2">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, queue) in vm_fax.faxQueues">\n <td md-cell class="name">{{queue.name}}</td>\n <td md-cell class="waiting">{{queue.waiting || 0}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_fax.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_fax.query.page" md-total="{{vm_fax.faxQueuesTotal}}" md-on-paginate="vm_fax.getFaxQueues" md-page-select></md-table-pagination>\n </md-card>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_fax.getColorByChannel(\'fax\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.CHANNEL_WAITING_TEXT"></span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.ACCOUNT\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_QUEUE\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_FROM\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_fax.paginatedInteractions.length">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, interaction) in vm_fax.interactions">\n <td md-cell>{{interaction.account}}</td>\n <td md-cell>{{interaction.queue}}</td>\n <td md-cell>{{interaction.from}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_fax.queryChannels.limit" md-page="vm_fax.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_fax.paginatedInteractions.length}}" md-on-paginate="vm_fax.paginate" md-page-select></md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/mail/agent.general.dashboard.mail.html",'<div layout="row" ng-cloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_mail.getColorByChannel(\'mail\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.QUEUES">Queues</span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_mail.promise">\n <thead md-head md-order="vm_mail.query.sort" md-on-reorder="vm_mail.getMailQueues">\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.NAME\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.WAITING\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_mail.getSize(vm_mail.mailQueues)">\n <td md-cell colspan="2">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, queue) in vm_mail.mailQueues">\n <td md-cell class="name">{{queue.name}}</td>\n <td md-cell class="waiting">{{queue.waiting || 0}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_mail.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_mail.query.page" md-total="{{vm_mail.mailQueuesTotal}}" md-on-paginate="vm_mail.getMailQueues" md-page-select></md-table-pagination>\n </md-card>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_mail.getColorByChannel(\'mail\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.CHANNEL_WAITING_TEXT"></span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.ACCOUNT\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_QUEUE\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_FROM\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_mail.paginatedInteractions.length">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, interaction) in vm_mail.interactions">\n <td md-cell>{{interaction.account}}</td>\n <td md-cell>{{interaction.queue}}</td>\n <td md-cell>{{interaction.from}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_mail.queryChannels.limit" md-page="vm_mail.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_mail.paginatedInteractions.length}}" md-on-paginate="vm_mail.paginate" md-page-select></md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/openchannel/agent.general.dashboard.openchannel.html",'<div layout="row" ng-cloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_openchannel.getColorByChannel(\'openchannel\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.QUEUES">Queues</span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_openchannel.promise">\n <thead md-head md-order="vm_openchannel.query.sort" md-on-reorder="vm_openchannel.getOpenchannelQueues">\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.NAME\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.WAITING\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_openchannel.getSize(vm_openchannel.openchannelQueues)">\n <td md-cell colspan="2">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, queue) in vm_openchannel.openchannelQueues">\n <td md-cell class="name">{{queue.name}}</td>\n <td md-cell class="waiting">{{queue.waiting || 0}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_openchannel.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_openchannel.query.page" md-total="{{vm_openchannel.openchannelQueuesTotal}}" md-on-paginate="vm_openchannel.getOpenchannelQueues" md-page-select></md-table-pagination>\n </md-card>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_openchannel.getColorByChannel(\'openchannel\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.CHANNEL_WAITING_TEXT"></span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.ACCOUNT\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_QUEUE\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_FROM\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_openchannel.paginatedInteractions.length">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, interaction) in vm_openchannel.interactions">\n <td md-cell>{{interaction.account}}</td>\n <td md-cell>{{interaction.queue}}</td>\n <td md-cell>{{interaction.from}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_openchannel.queryChannels.limit" md-page="vm_openchannel.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_openchannel.paginatedInteractions.length}}" md-on-paginate="vm_openchannel.paginate" md-page-select></md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/sms/agent.general.dashboard.sms.html",'<div layout="row" ng-cloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_sms.getColorByChannel(\'sms\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.QUEUES">Queues</span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_sms.promise">\n <thead md-head md-order="vm_sms.query.sort" md-on-reorder="vm_sms.getSmsQueues">\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.NAME\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.WAITING\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_sms.getSize(vm_sms.smsQueues)">\n <td md-cell colspan="2">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, queue) in vm_sms.smsQueues">\n <td md-cell class="name">{{queue.name}}</td>\n <td md-cell class="waiting">{{queue.waiting || 0}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_sms.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_sms.query.page" md-total="{{vm_sms.smsQueuesTotal}}" md-on-paginate="vm_sms.getSmsQueues" md-page-select></md-table-pagination>\n </md-card>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_sms.getColorByChannel(\'sms\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.CHANNEL_WAITING_TEXT"></span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.ACCOUNT\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_QUEUE\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_FROM\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_sms.paginatedInteractions.length">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, interaction) in vm_sms.interactions">\n <td md-cell>{{interaction.account}}</td>\n <td md-cell>{{interaction.queue}}</td>\n <td md-cell>{{interaction.from}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_sms.queryChannels.limit" md-page="vm_sms.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_sms.paginatedInteractions.length}}" md-on-paginate="vm_sms.paginate" md-page-select></md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/voice/agent.general.dashboard.voice.html",'<div layout="row" ng-cloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header blue-A700-bg ">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.QUEUES">Queues</span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_voice.promise">\n <thead md-head md-order="vm_voice.query.sort" md-on-reorder="vm_voice.getVoiceQueues">\n <tr md-row>\n <th md-column>{{ \'VOICE.NAME\' | translate }}</th>\n <th md-column>{{ \'VOICE.WAITING\' | translate }}</th>\n <th ng-if="voiceQueue.type === \'outbound\'" md-column>{{ \'VOICE.ACTIVE\' | translate }}</th>\n \x3c!-- <th md-column md-order-by="active">{{ \'VOICE.ACTIVE\' | translate }}</th> --\x3e\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_voice.getSize(vm_voice.voiceQueues)">\n <td md-cell colspan="2">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, voiceQueue) in vm_voice.voiceQueues">\n <td md-cell class="name">{{voiceQueue.name}}</td>\n <td ng-if="voiceQueue.type === \'outbound\'" md-cell class="waiting">{{voiceQueue.dialMethod}}</td>\n <td md-cell class="waiting">{{voiceQueue.waiting || 0}}</td>\n <td md-cell ng-if="voiceQueue.type === \'outbound\'" class="dialActive ">\n <md-icon md-colors="{color: {{voiceQueue.dialActive ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{voiceQueue.dialActive ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_voice.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_voice.query.page" md-total="{{vm_voice.voiceQueuesTotal}}" md-on-paginate="vm_voice.getVoiceQueues" md-page-select></md-table-pagination>\n </md-card>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header blue-A700-bg ">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.WAITING_TEXT"></span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'VOICE.DID\' | translate }}</th>\n <th md-column>{{ \'VOICE.QUEUE\' | translate }}</th>\n <th md-column>{{ \'VOICE.CALLER\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_voice.getSize(vm_voice.rpcVoiceQueuesChannels)">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, channel) in vm_voice.rpcVoiceQueuesChannels | limitObjectFromTo: vm_voice.queryChannels.limit:(vm_voice.queryChannels.page - 1) * vm_voice.queryChannels.limit">\n <td md-cell>{{channel.exten}}</td>\n <td md-cell>{{channel.queue}}</td>\n <td md-cell privacy ng-cloak>{{channel.calleridnum}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_voice.queryChannels.limit" md-page="vm_voice.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_voice.getSize(vm_voice.rpcVoiceQueuesChannels)}}" md-page-select>\n </md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/whatsapp/agent.general.dashboard.whatsapp.html",'<div layout="row" ng-cloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_whatsapp.getColorByChannel(\'whatsapp\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.QUEUES">Queues</span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_whatsapp.promise">\n <thead md-head md-order="vm_whatsapp.query.sort" md-on-reorder="vm_whatsapp.getWhatsappQueues">\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.NAME\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.WAITING\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_whatsapp.getSize(vm_whatsapp.whatsappQueues)">\n <td md-cell colspan="2">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, queue) in vm_whatsapp.whatsappQueues">\n <td md-cell class="name">{{queue.name}}</td>\n <td md-cell class="waiting">{{queue.waiting || 0}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_whatsapp.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_whatsapp.query.page" md-total="{{vm_whatsapp.whatsappQueuesTotal}}" md-on-paginate="vm_whatsapp.getWhatsappQueues" md-page-select></md-table-pagination>\n </md-card>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_whatsapp.getColorByChannel(\'whatsapp\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.CHANNEL_WAITING_TEXT"></span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.ACCOUNT\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_QUEUE\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_FROM\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_whatsapp.paginatedInteractions.length">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, interaction) in vm_whatsapp.interactions">\n <td md-cell>{{interaction.account}}</td>\n <td md-cell>{{interaction.queue}}</td>\n <td md-cell>{{interaction.from}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_whatsapp.queryChannels.limit" md-page="vm_whatsapp.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_whatsapp.paginatedInteractions.length}}" md-on-paginate="vm_whatsapp.paginate" md-page-select></md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/fax/agent.general.fax.html",'<md-card ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.FAX_INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm.getFaxInteractions()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getFaxInteractions()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" aria-label="Reload" translate translate-attr-aria-label="DASHBOARDS.RELOAD" ng-click="vm.getFaxInteractions()">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n <md-menu ng-if="vm.faxAccounts.rows && vm.faxAccounts.rows.length">\n <md-button class="md-icon-button create-new" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-repeat="faxAccount in vm.faxAccounts.rows">\n <md-button aria-label="compose" ng-click="vm.composeFaxInteraction($event, faxAccount)">\n {{ faxAccount.name }} ({{ faxAccount.key }})</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </md-toolbar>\n <md-table-container class="interactions-list">\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getFaxInteractions">\n <tr md-row>\n <th class="id-header" md-column md-order-by="id">\n {{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column class="no-padding width-5">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding width-5"></th>\n <th md-column class="no-padding width-5"></th>\n <th md-column md-order-by="contactName">{{\'DASHBOARDS.CONTACT\' | translate}}</th>\n <th md-column md-order-by="createdAt">{{\'DASHBOARDS.STARTEDAT\' | translate}}</th>\n <th md-column md-order-by="lastMsgAt">{{\'DASHBOARDS.LAST_MESSAGE\' | translate}}</th>\n <th md-column md-order-by="closed">{{\'DASHBOARDS.STATUS\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.AGENT\' | translate}}</th>\n <th md-column>\n {{\'DASHBOARDS.ACCOUNT\' | translate}}\n </th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.faxInteractions.rows.length">\n <td md-cell colspan="13">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INTERACTION">No Available\n Interaction</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="interaction in vm.faxInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td ng-click="vm.showFaxInteraction($event, interaction)" md-cell class="id">\n <div layout="row" layout-align="start center">\n <span class="font-size-10">{{interaction.id}}</span>\n </div>\n </td>\n <td md-cell>\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="u in interaction.Users">{{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : u.fullname | translate }}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="!interaction.closed && interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" layout-margin>{{interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="interaction.attach" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td ng-click="vm.showFaxInteraction($event, interaction)" md-cell>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'no-margin-bottom\' : interaction.contactInfo}" layout-margin privacy ng-cloak>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text no-margin-top" layout-margin privacy ng-cloak>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td ng-click="vm.showFaxInteraction($event, interaction)" md-cell>\n <span class="font-size-10 text-truncate">{{interaction.createdAt | formatdate }}</span>\n </td>\n <td ng-click="vm.showFaxInteraction($event, interaction)" md-cell>\n <div layout="row" ng-if="interaction.lastMsgAt">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}">\n </md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="font-size-10 text-truncate">{{interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n <span ng-if="!interaction.lastMsgAt">No messages</span>\n </td>\n <td ng-click="vm.showFaxInteraction($event, interaction)" md-cell>\n <span ng-if="interaction.closed" class="red-fg font-size-12">{{ \'DASHBOARDS.CLOSED\' | translate}} <span ng-if="interaction.disposition">-\n {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}</span></span>\n <md-tooltip class="multiline" ng-if="interaction.closed">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n <span ng-if="!interaction.closed" class="green-fg font-size-12"><span translate="DASHBOARDS.OPENED"></span><span ng-if="interaction.substatus"> -\n {{interaction.substatus}}</span></span>\n </td>\n <td ng-click="vm.showFaxInteraction($event, interaction)" md-cell class="user">\n <span class="font-size-12 text-truncate width-80">{{ vm.getAgentLabel(interaction) }}</span>\n </td>\n <td ng-click="vm.showFaxInteraction($event, interaction)" md-cell class="faxAccount">\n {{ vm.getFaxAccountLabel(interaction) }}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <div layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">,\n </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </div>\n </td>\n <td md-cell class="actions actions-padding">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="vm.showFaxInteraction($event, interaction)" translate="DASHBOARDS.SHOW">\n Show Fax\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions">\n <md-button ng-click="vm.downloadFaxInteraction($event, interaction)" translate="DASHBOARDS.DOWNLOAD">\n Download Fax\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!interaction.closed">\n <md-button ng-click="vm.disposeInteraction($event, interaction)" translate="DASHBOARDS.CLOSE_AND_DISPOSE">\n Close and Dispose\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'DASHBOARDS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'DASHBOARDS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'DASHBOARDS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.faxInteractions.count}}" md-on-paginate="vm.getFaxInteractions" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/mail/agent.general.mail.html",'<md-card ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.MAIL_INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm.getMailInteractions()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getMailInteractions()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" aria-label="Reload" translate translate-attr-aria-label="DASHBOARDS.RELOAD" ng-click="vm.getMailInteractions()">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n <md-menu ng-if="vm.mailAccounts.rows && vm.mailAccounts.rows.length">\n <md-button class="md-icon-button create-new" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-repeat="mailAccount in vm.mailAccounts.rows">\n <md-button aria-label="compose" ng-click="vm.composeMailInteraction($event, mailAccount)">\n {{ mailAccount.name }} ({{ mailAccount.key }})</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </md-toolbar>\n <md-table-container class="interactions-list">\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getMailInteractions">\n <tr md-row>\n <th class="id-header" md-column md-order-by="id">\n {{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column class="no-padding width-5">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding width-5"></th>\n <th md-column class="no-padding width-5"></th>\n <th md-column md-order-by="contactName">{{\'DASHBOARDS.CONTACT\' | translate}}</th>\n <th md-column md-order-by="subject">{{\'DASHBOARDS.SUBJECT\' | translate}}</th>\n <th md-column md-order-by="createdAt">{{\'DASHBOARDS.STARTEDAT\' | translate}}</th>\n <th md-column md-order-by="lastMsgAt">{{\'DASHBOARDS.LAST_MESSAGE\' | translate}}</th>\n <th md-column md-order-by="closed">{{\'DASHBOARDS.STATUS\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.AGENT\' | translate}}</th>\n <th md-column>\n {{\'DASHBOARDS.ACCOUNT\' | translate}}\n </th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.mailInteractions.rows.length">\n <td md-cell colspan="13">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INTERACTION">No Available\n Interaction</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="interaction in vm.mailInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell class="id">\n <div layout="row" layout-align="start center">\n <span class="font-size-10">{{interaction.id}}</span>\n </div>\n </td>\n <td md-cell>\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="u in interaction.Users">{{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : u.fullname | translate }}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="!interaction.closed && interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" layout-margin>{{interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="interaction.attach" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'no-margin-bottom\' : interaction.contactInfo}" layout-margin privacy ng-cloak>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text no-margin-top" layout-margin privacy ng-cloak>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell>\n <div ng-if="vm.setting.enableEmailPreview && interaction.lastMsgText" class="tooltip-preview">\n <span class="text-truncate font-size-12 subject-text">{{ interaction.subject }}</span>\n <md-card class="tooltip-preview-text" ng-style="{top: \'-\' + ((($index % 10) + 1) * 18) + \'px\'}">\n <md-card-content><span class="email-preview-message">{{ interaction.lastMsgText }}</span>\n </md-card-content>\n </md-card>\n </div>\n <span ng-if="!interaction.lastMsgText || !vm.setting.enableEmailPreview" class="text-truncate font-size-12">{{ interaction.subject }}</span>\n </td>\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell>\n <span class="font-size-10 text-truncate">{{interaction.createdAt | formatdate }}</span>\n </td>\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell>\n <div layout="row" ng-if="interaction.lastMsgAt">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}">\n </md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="font-size-10 text-truncate">{{interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n <span ng-if="!interaction.lastMsgAt">No messages</span>\n </td>\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell>\n <span ng-if="interaction.closed" class="red-fg font-size-12">{{ \'DASHBOARDS.CLOSED\' | translate}} <span ng-if="interaction.disposition">-\n {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}</span></span>\n <md-tooltip class="multiline" ng-if="interaction.closed">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n <span ng-if="!interaction.closed" class="green-fg font-size-12"><span translate="DASHBOARDS.OPENED"></span><span ng-if="interaction.substatus"> -\n {{interaction.substatus}}</span></span>\n </td>\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell class="user">\n <span class="font-size-12 text-truncate width-80">{{ vm.getAgentLabel(interaction) }}</span>\n </td>\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell class="mailAccount">\n {{ vm.getMailAccountLabel(interaction) }}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <div layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">,\n </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </div>\n </td>\n <td md-cell class="actions actions-padding">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="vm.showMailInteraction($event, interaction)" translate="DASHBOARDS.SHOW">\n Show Mail\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions && vm.user.downloadAttachments">\n <md-button ng-click="vm.downloadMailInteraction($event, interaction, true)" translate="MAIL.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions">\n <md-button ng-click="vm.downloadMailInteraction($event, interaction)" translate="MAIL.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!interaction.closed">\n <md-button ng-click="vm.disposeInteraction($event, interaction)" translate="DASHBOARDS.CLOSE_AND_DISPOSE">\n Close and Dispose\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'DASHBOARDS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'DASHBOARDS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'DASHBOARDS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.mailInteractions.count}}" md-on-paginate="vm.getMailInteractions" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/mycontacts/agent.general.mycontacts.html",'<md-card ng-init="vm.onInit()">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.MYCONTACTS">My Contacts</span>\n <ms-search-bar on-search="vm.getContacts()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getContacts()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" ng-click="vm.refreshContacts($event)" aria-label="Reload" translate translate-attr-label="DASHBOARDS.RELOAD">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n <md-button ng-if="vm.lists.rows && vm.lists.rows.length" class="md-icon-button create-new" ng-click="vm.openContact($event)" aria-label="Add contact" translate translate-attr-label="DASHBOARDS.ADD_CONTACT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getContacts">\n <tr md-row>\n <th md-column md-order-by="id">{{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column md-order-by="firstName">{{\'DASHBOARDS.FULLNAME\' | translate}}</th>\n <th md-column md-order-by="phone">{{\'DASHBOARDS.PHONE\' | translate}}</th>\n <th md-column md-order-by="mobile">{{\'DASHBOARDS.MOBILE\' | translate}}</th>\n <th md-column md-order-by="fax">{{\'DASHBOARDS.FAX\' | translate}}</th>\n <th md-column md-order-by="email">{{\'DASHBOARDS.EMAIL\' | translate}}</th>\n <th md-column md-order-by="createdAt">{{\'DASHBOARDS.CREATEDAT\' | translate}}</th>\n <th md-column md-order-by="ListId">{{\'DASHBOARDS.LIST\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.contacts.rows.length">\n <td md-cell colspan="10">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="contact in vm.contacts.rows">\n <td ng-click="vm.openContact($event, contact)" md-cell class="id">{{contact.id}}</td>\n <td ng-click="vm.openContact($event, contact)" md-cell class="firstName" privacy ng-cloak>\n {{contact.firstName}} {{contact.lastName}}</td>\n <td ng-click="vm.openContact($event, contact)" md-cell class="phone">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="contact.phone" prefix="vm.listsMap[contact.ListId].dialPrefix" license="vm_home.license"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td ng-click="vm.openContact($event, contact)" md-cell class="mobile">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="contact.mobile" prefix="vm.listsMap[contact.ListId].dialPrefix" license="vm_home.license"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td ng-click="vm.openContact($event, contact)" md-cell class="fax" privacy ng-cloak>\n {{contact.fax}}</td>\n <td ng-click="vm.openContact($event, contact)" md-cell class="email" privacy ng-cloak>{{contact.email}}\n </td>\n <td ng-click="vm.openContact($event, contact)" md-cell class="createdAt">{{contact.createdAt |\n formatdate}}</td>\n <td ng-click="vm.openContact($event, contact)" md-cell class="list">\n {{vm.listsMap[contact.ListId].name}}</td>\n <td md-cell class="tag">\n <div ng-if="contact.Tags.length">\n <div ng-if="contact.Tags.length == 1" layout="column" layout-align="center center">\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': contact.Tags[0].color }"></md-icon>\n <span class="text-truncate">{{contact.Tags[0].name}}</span>\n </div>\n <div ng-if="contact.Tags.length > 1" layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in contact.Tags">{{tag.name}}<span ng-if="!$last">,\n </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag"></md-icon>\n </div>\n </div>\n </td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.openContact($event, contact)" translate="DASHBOARDS.EDIT">\n Edit Contact\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.mergeContact($event, contact)" translate="DASHBOARDS.MERGE">\n Merge Contact\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.duplicateContact($event, contact)" translate="DASHBOARDS.DUPLICATE">\n Duplicate Contact\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.contacts.count}}" md-on-paginate="vm.getContacts" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/openchannel/agent.general.openchannel.html",'<md-card ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.OPENCHANNEL_INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm.getOpenchannelInteractions()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getOpenchannelInteractions()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" aria-label="Reload" translate translate-attr-aria-label="DASHBOARDS.RELOAD" ng-click="vm.getOpenchannelInteractions()">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n <md-menu ng-if="vm.openchannelAccounts.rows && vm.openchannelAccounts.rows.length">\n <md-button class="md-icon-button create-new" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-repeat="openchannelAccount in vm.openchannelAccounts.rows">\n <md-button aria-label="compose" ng-click="vm.composeOpenchannelInteraction($event, openchannelAccount)" ng-disabled="!openchannelAccount.replyUri">\n {{ openchannelAccount.name }} ({{ openchannelAccount.key }})</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </md-toolbar>\n <md-table-container class="interactions-list">\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getOpenchannelInteractions">\n <tr md-row>\n <th class="id-header" md-column md-order-by="id">\n {{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column class="no-padding width-5">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding width-5"></th>\n <th md-column class="no-padding width-5"></th>\n <th md-column md-order-by="contactName">{{\'DASHBOARDS.CONTACT\' | translate}}</th>\n <th md-column md-order-by="createdAt">{{\'DASHBOARDS.STARTEDAT\' | translate}}</th>\n <th md-column md-order-by="lastMsgAt">{{\'DASHBOARDS.LAST_MESSAGE\' | translate}}</th>\n <th md-column md-order-by="closed">{{\'DASHBOARDS.STATUS\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.AGENT\' | translate}}</th>\n <th md-column>\n {{\'DASHBOARDS.ACCOUNT\' | translate}}\n </th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.openchannelInteractions.rows.length">\n <td md-cell colspan="13">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INTERACTION">No Available\n Interaction</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="interaction in vm.openchannelInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td ng-click="vm.showOpenchannelInteraction($event, interaction)" md-cell class="id">\n <div layout="row" layout-align="start center">\n <span class="font-size-10">{{interaction.id}}</span>\n </div>\n </td>\n <td md-cell>\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="u in interaction.Users">{{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : u.fullname | translate }}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="!interaction.closed && interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" layout-margin>{{interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="interaction.attach" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td ng-click="vm.showOpenchannelInteraction($event, interaction)" md-cell>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'no-margin-bottom\' : interaction.contactInfo}" layout-margin privacy ng-cloak>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text no-margin-top" layout-margin privacy ng-cloak>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td ng-click="vm.showOpenchannelInteraction($event, interaction)" md-cell>\n <span class="font-size-10 text-truncate">{{interaction.createdAt | formatdate }}</span>\n </td>\n <td ng-click="vm.showOpenchannelInteraction($event, interaction)" md-cell>\n <div layout="row" ng-if="interaction.lastMsgAt">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}">\n </md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="font-size-10 text-truncate">{{interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n <span ng-if="!interaction.lastMsgAt">No messages</span>\n </td>\n <td ng-click="vm.showOpenchannelInteraction($event, interaction)" md-cell>\n <span ng-if="interaction.closed" class="red-fg font-size-12">{{ \'DASHBOARDS.CLOSED\' | translate}} <span ng-if="interaction.disposition">-\n {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}</span></span>\n <md-tooltip class="multiline" ng-if="interaction.closed">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n <span ng-if="!interaction.closed" class="green-fg font-size-12"><span translate="DASHBOARDS.OPENED"></span><span ng-if="interaction.substatus"> -\n {{interaction.substatus}}</span></span>\n </td>\n <td ng-click="vm.showOpenchannelInteraction($event, interaction)" md-cell class="user">\n <span class="font-size-12 text-truncate width-80">{{ vm.getAgentLabel(interaction) }}</span>\n </td>\n <td ng-click="vm.showOpenchannelInteraction($event, interaction)" md-cell class="openchannelAccount">\n {{ vm.getOpenchannelAccountLabel(interaction) }}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <div layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">,\n </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </div>\n </td>\n <td md-cell class="actions actions-padding">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="vm.showOpenchannelInteraction($event, interaction)" translate="DASHBOARDS.SHOW">\n Show Openchannel\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions && vm.user.downloadAttachments">\n <md-button ng-click="vm.downloadOpenchannelInteraction($event, interaction, true)" translate="OPENCHANNEL.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions">\n <md-button ng-click="vm.downloadOpenchannelInteraction($event, interaction)" translate="OPENCHANNEL.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!interaction.closed">\n <md-button ng-click="vm.disposeInteraction($event, interaction)" translate="DASHBOARDS.CLOSE_AND_DISPOSE">\n Close and Dispose\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'DASHBOARDS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'DASHBOARDS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'DASHBOARDS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.openchannelInteractions.count}}" md-on-paginate="vm.getOpenchannelInteractions" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/plugins/agent.general.plugins.html",'<div id="plugin" ng-if="vm.plugin" ng-cloak layout-fill>\n <iframe ng-src="{{vm.getTrustedURL()}}" frameborder=0 style="border:0px; width:100%; height:100%;"></iframe>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/presence/agent.general.presence.html",'<div ng-cloak>\n <md-content>\n <md-tabs md-selected="vm.selectedTab" md-dynamic-height md-border-bottom>\n <md-tab label="{{\'DASHBOARDS.AGENTS\' | translate}}" md-on-select="vm.onAgentsTabSelection()">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/presence/views/agent.general.presence.agents.html\'">\n </md-content>\n </md-tab>\n <md-tab label="{{\'DASHBOARDS.QUEUES\' | translate}}" md-on-select="vm.onQueuesTabSelection()">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/presence/views/agent.general.presence.queues.html\'">\n </md-content>\n </md-tab>\n </md-tabs>\n </md-content>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/presence/views/agent.general.presence.agents.html",'<md-card ngCloak>\n <md-toolbar class="md-table-toolbar md-default table-header xenialab-violet-light-bg" ng-class="{\'h-128\' : vm.isSearchBarVisible === true}">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.AGENTS"></span>\n <ms-search-bar on-search="vm.getAgents()" query="vm.agentsQuery" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.agentsQuery" search="vm.getAgents()"></ms-quick-filter>\n <md-button class="md-icon-button reload-list" aria-label="Reload" translate translate-attr-aria-label="DASHBOARDS.RELOAD" ng-click="vm.getAgents()">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.agentsQuery.sort" md-on-reorder="vm.getAgents">\n <tr md-row>\n <th md-column md-order-by="id">{{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column md-order-by="name">{{\'DASHBOARDS.NAME\' | translate}}</th>\n <th md-column md-order-by="internal">{{\'VOICE.INTERNAL\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.STATUS\' | translate}}</th>\n <th md-column class="no-padding width-70"></th>\n <th md-column class="width-70"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.agents.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="agent in vm.agents.rows">\n <td md-cell>{{agent.id}}</td>\n <td md-cell>{{agent.name}}</td>\n <td md-cell>{{agent.internal}}</td>\n <td md-cell>\n <div layout="row">\n <div layout="column" layout-align="center center">\n <span class="text-boxed width-70 text-center md-background-bg bl bt padding-5" ng-class="{\'online\':\'lime-300-bg\',\'offline\':\'red-A200-bg\',\'pause\':\'amber-200-bg\',\'busy\':\'indigo-100-bg\'}[agent.status]">{{\n agent.status | uppercase }}</span>\n </div>\n </div>\n </td>\n <td md-cell class="no-padding width-70">\n <md-button ng-if="agent.status !== \'offline\'" ng-click="vm.originateCall(agent.name)" class="md-fab md-mini md-raised" aria-label="Dial">\n <md-icon md-font-icon="icon-phone" class="icon green-fg s20">\n <md-tooltip><span translate="VOICE.DIAL"></span></md-tooltip>\n </md-icon>\n </md-button>\n </td>\n <td md-cell class="width-70">\n <md-button ng-if="agent.status !== \'offline\'" ng-click="vm.transferCall(agent.name)" class="md-fab md-mini md-raised" aria-label="Transfer">\n <md-icon md-font-icon="icon-phone-forward" class="icon purple-fg s20">\n <md-tooltip><span translate="DASHBOARDS.TRANSFER"></span></md-tooltip>\n </md-icon>\n </md-button>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-limit="vm.agentsQuery.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.agentsQuery.page" md-total="{{vm.agents.count}}" md-on-paginate="vm.getAgents" md-page-select>\n </md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/presence/views/agent.general.presence.queues.html",'<md-card ngCloak>\n <md-toolbar class="md-table-toolbar md-default table-header xenialab-violet-light-bg" ng-class="{\'h-128\' : vm.isSearchBarVisible === true}">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.QUEUES"></span>\n <ms-search-bar on-search="vm.getVoiceQueues()" query="vm.queuesQuery" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible"></ms-search-bar>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.queuesQuery.sort" md-on-reorder="vm.getVoiceQueues">\n <tr md-row>\n <th md-column md-order-by="id">{{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column md-order-by="name">{{\'DASHBOARDS.NAME\' | translate}}</th>\n <th md-column md-order-by="name">{{\'VOICE.CALLS\' | translate}}</th>\n <th md-column class="no-padding width-70"></th>\n <th md-column class="width-70"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.voiceQueues.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="queue in vm.voiceQueues.rows">\n <td md-cell>{{queue.id}}</td>\n <td md-cell>{{queue.name}}</td>\n <td md-cell>{{queue.calls.length || 0}}</td>\n <td md-cell class="no-padding width-70">\n <md-button ng-click="vm.originateCall(queue.name)" class="md-fab md-mini md-raised" aria-label="Dial">\n <md-icon md-font-icon="icon-phone" class="icon green-fg s20">\n <md-tooltip><span translate="VOICE.DIAL"></span></md-tooltip>\n </md-icon>\n </md-button>\n </td>\n <td md-cell class="width-70">\n <md-button ng-click="vm.transferCall(queue.name)" class="md-fab md-mini md-raised" aria-label="Transfer">\n <md-icon md-font-icon="icon-phone-forward" class="icon purple-fg s20">\n <md-tooltip><span translate="DASHBOARDS.TRANSFER"></span></md-tooltip>\n </md-icon>\n </md-button>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-limit="vm.queuesQuery.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.queuesQuery.page" md-total="{{vm.voiceQueues.count}}" md-on-paginate="vm.getVoiceQueues" md-page-select>\n </md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/recordings/agent.general.recordings.html",'<md-card ng-init="vm.onInit()">\n <md-toolbar class="md-table-toolbar md-default table-header indigo-A100-bg" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.RECORDINGS">Recordings</span>\n <ms-search-bar on-search="vm.getVoiceRecordings()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getVoiceRecordings()">\n </ms-quick-filter>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getVoiceRecordings">\n <tr md-row>\n <th md-column md-order-by="type">{{ \'VOICE.TYPE\' | translate }}</th>\n <th md-column md-order-by="uniqueid">{{ \'VOICE.UNIQUEID\' | translate }}</th>\n <th md-column md-order-by="calleridnum">{{ \'VOICE.CALLER\' | translate }}</th>\n <th md-column md-order-by="exten">{{ \'VOICE.CALLED\' | translate }}</th>\n <th md-column md-order-by="connectedlinenum">{{ \'VOICE.CONNECTED\' | translate }}</th>\n <th md-column md-order-by="queue">{{ \'VOICE.QUEUE\' | translate }}</th>\n <th md-column md-order-by="rating">{{ \'VOICE.RATING\' | translate }}</th>\n <th md-column>{{ \'VOICE.AUDIO\' | translate }}</th>\n <th md-column md-order-by="createdAt">{{ \'VOICE.DATE\' | translate }}</th>\n <th md-column width="10px" ng-if="vm.currentUser.downloadVoiceRecordings"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.voiceRecordings.rows.length">\n <td md-cell colspan="{{ vm.currentUser.downloadVoiceRecordings ? 10 : 9}}">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="voiceRecording in vm.voiceRecordings.rows">\n <td md-cell class="type">{{voiceRecording.type}}</td>\n <td md-cell class="uniqueid">{{voiceRecording.uniqueid}}</td>\n <td md-cell class="calleridnum">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="voiceRecording.calleridnum" license="vm_home.license">\n </ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td md-cell class="exten">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="voiceRecording.exten" license="vm_home.license"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td md-cell class="connectedlinenum">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="voiceRecording.connectedlinenum" license="vm_home.license">\n </ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td md-cell class="queue">{{voiceRecording.queue}}</td>\n <td md-cell class="rating">\n <md-icon md-font-icon="icon-star" style="color:red" ng-show="voiceRecording.rating" ng-repeat="rating in [1,2,3,4,5] | limitTo:voiceRecording.rating"></md-icon><span ng-hide="voiceRecording.rating" translate="VOICE.NO_RATING">No rating</span>\n </td>\n <td md-cell class="audio" ng-switch="voiceRecording.format">\n \x3c!-- audio recording directive --\x3e\n <ms-recording ng-switch-when=".wav" id="voiceRecording.id"></ms-recording>\n \x3c!-- / audio recording directive --\x3e\n <span ng-switch-when=".gsm">\n <em>{{ \'VOICE.CANT_PLAY_GSM_AUDIO_FILES\' | translate }}</em>\n </span>\n </td>\n <td md-cell class="createdAt ">{{voiceRecording.createdAt | date:\'medium\' }}</td>\n <td md-cell class="actions" ng-if="vm.currentUser.downloadVoiceRecordings">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.downloadfile(voiceRecording, $event)" translate="VOICE.DOWNLOAD_VOICERECORDING">\n Download VoiceRecording\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="voiceRecording.transcribeStatus == \'COMPLETED\'">\n <md-button ng-click="vm.downloadtranscribe(voiceRecording, $event)" translate="VOICE.DOWNLOADTRANSCRIBE_VOICERECORDING">\n Download Transcribe\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.voiceRecordings.count}}" md-on-paginate="vm.getVoiceRecordings" md-page-select>\n </md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/scheduled/agent.general.scheduled.html",'<md-card ng-init="vm.onInit()">\n <md-toolbar class="md-table-toolbar md-default table-header blue-grey-bg" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.SCHEDULED_CALLS">Scheduled Calls</span>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getScheduledCalls()">\n </ms-quick-filter>\n <md-button class="md-icon-button reload-list" ng-click="vm.getScheduledCalls()" aria-label="Refresh scheduled calls" translate translate-attr-label="MOTIONDIALER.REFRESH_SCHEDULED_CALLS">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'MOTIONDIALER.REFRESH_SCHEDULED_CALLS\' | translate}}</md-tooltip>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getScheduledCalls">\n <tr md-row>\n <th md-column>{{\'MOTIONDIALER.FULLNAME\' | translate}}</th>\n <th md-column md-order-by="phone">{{ \'MOTIONDIALER.PHONE\' | translate }}</th>\n <th md-column md-order-by="scheduledat">{{ \'MOTIONDIALER.SCHEDULEDAT\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.PRIORITY\' | translate }}</th>\n <th md-column md-order-by="recallme">{{ \'MOTIONDIALER.RECALLME\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.CAMPAIGN\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.scheduledCalls.rows.length">\n <td md-cell colspan="10">\n <div layout="row" layout-align="center center">\n <span translate="MOTIONDIALER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="scheduledCall in vm.scheduledCalls.rows">\n <td md-cell privacy ng-cloak>{{scheduledCall.Contact.firstName}} {{scheduledCall.Contact.lastName}}</td>\n <td md-cell>\n <ms-click-to-call target="scheduledCall.phone" license="vm_home.license"></ms-click-to-call>\n </td>\n <td md-colors="{color: {{ vm.isDateBeforeToday(scheduledCall.scheduledat) ? \'\\\'red\\\'\' : \'\\\'green\\\'\' }}}" md-cell>{{ scheduledCall.scheduledat | date:\'medium\' }}</td>\n <td md-cell>{{ vm.priorities[scheduledCall.priority] }}</td>\n <td md-cell>\n <md-icon md-colors="{color: {{ scheduledCall.recallme && scheduledCall.UserId == vm.currentUser.id ? \'\\\'green\\\'\' : \'\\\'grey\\\'\' }}}" md-font-icon="{{ scheduledCall.recallme && scheduledCall.UserId == vm.currentUser.id ? \'icon-check\' : \'icon-close\' }}">\n </md-icon>\n </td>\n <td md-cell>\n <md-icon md-colors="{color: {{ scheduledCall.Queue.dialActive? \'\\\'green\\\'\' : \'\\\'red\\\'\' }}}" md-font-icon="icon-checkbox-blank-circle"></md-icon> {{scheduledCall.Queue.name}}\n </td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.createOrEditQueueCampaignHopper($event, scheduledCall)" translate="MOTIONDIALER.EDIT_HOPPER">\n Edit Hopper\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deleteConfirm(scheduledCall, $event)" translate="MOTIONDIALER.DELETE_HOPPER">\n Delete Hopper\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.scheduledCalls.count}}" md-on-paginate="vm.getScheduledCalls" md-page-select>\n </md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/sms/agent.general.sms.html",'<md-card ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.SMS_INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm.getSmsInteractions()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getSmsInteractions()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" aria-label="Reload" translate translate-attr-aria-label="DASHBOARDS.RELOAD" ng-click="vm.getSmsInteractions()">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n <md-menu ng-if="vm.smsAccounts.rows && vm.smsAccounts.rows.length">\n <md-button class="md-icon-button create-new" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-repeat="smsAccount in vm.smsAccounts.rows">\n <md-button aria-label="compose" ng-click="vm.composeSmsInteraction($event, smsAccount)">\n {{ smsAccount.name }} ({{ smsAccount.key }})</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </md-toolbar>\n <md-table-container class="interactions-list">\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getSmsInteractions">\n <tr md-row>\n <th class="id-header" md-column md-order-by="id">\n {{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column class="no-padding width-5">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding width-5"></th>\n <th md-column class="no-padding width-5"></th>\n <th md-column md-order-by="contactName">{{\'DASHBOARDS.CONTACT\' | translate}}</th>\n <th md-column md-order-by="createdAt">{{\'DASHBOARDS.STARTEDAT\' | translate}}</th>\n <th md-column md-order-by="lastMsgAt">{{\'DASHBOARDS.LAST_MESSAGE\' | translate}}</th>\n <th md-column md-order-by="closed">{{\'DASHBOARDS.STATUS\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.AGENT\' | translate}}</th>\n <th md-column>\n {{\'DASHBOARDS.ACCOUNT\' | translate}}\n </th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.smsInteractions.rows.length">\n <td md-cell colspan="13">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INTERACTION">No Available\n Interaction</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="interaction in vm.smsInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td ng-click="vm.showSmsInteraction($event, interaction)" md-cell class="id">\n <div layout="row" layout-align="start center">\n <span class="font-size-10">{{interaction.id}}</span>\n </div>\n </td>\n <td md-cell>\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="u in interaction.Users">{{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : u.fullname | translate }}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="!interaction.closed && interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" layout-margin>{{interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="interaction.attach" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td ng-click="vm.showSmsInteraction($event, interaction)" md-cell>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'no-margin-bottom\' : interaction.contactInfo}" layout-margin privacy ng-cloak>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text no-margin-top" layout-margin privacy ng-cloak>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td ng-click="vm.showSmsInteraction($event, interaction)" md-cell>\n <span class="font-size-10 text-truncate">{{interaction.createdAt | formatdate }}</span>\n </td>\n <td ng-click="vm.showSmsInteraction($event, interaction)" md-cell>\n <div layout="row" ng-if="interaction.lastMsgAt">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}">\n </md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="font-size-10 text-truncate">{{interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n <span ng-if="!interaction.lastMsgAt">No messages</span>\n </td>\n <td ng-click="vm.showSmsInteraction($event, interaction)" md-cell>\n <span ng-if="interaction.closed" class="red-fg font-size-12">{{ \'DASHBOARDS.CLOSED\' | translate}} <span ng-if="interaction.disposition">-\n {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}</span></span>\n <md-tooltip class="multiline" ng-if="interaction.closed">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n <span ng-if="!interaction.closed" class="green-fg font-size-12"><span translate="DASHBOARDS.OPENED"></span><span ng-if="interaction.substatus"> -\n {{interaction.substatus}}</span></span>\n </td>\n <td ng-click="vm.showSmsInteraction($event, interaction)" md-cell class="user">\n <span class="font-size-12 text-truncate width-80">{{ vm.getAgentLabel(interaction) }}</span>\n </td>\n <td ng-click="vm.showSmsInteraction($event, interaction)" md-cell class="smsAccount">\n {{ vm.getSmsAccountLabel(interaction) }}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <div layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">,\n </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </div>\n </td>\n <td md-cell class="actions actions-padding">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="vm.showSmsInteraction($event, interaction)" translate="DASHBOARDS.SHOW">\n Show Sms\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions">\n <md-button ng-click="vm.downloadSmsInteraction($event, interaction)" translate="DASHBOARDS.DOWNLOAD">\n Download Sms\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!interaction.closed">\n <md-button ng-click="vm.disposeInteraction($event, interaction)" translate="DASHBOARDS.CLOSE_AND_DISPOSE">\n Close and Dispose\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'DASHBOARDS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'DASHBOARDS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'DASHBOARDS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.smsInteractions.count}}" md-on-paginate="vm.getSmsInteractions" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/voice/agent.general.voice.html",'<md-card ng-init="vm.onInit()">\n <md-toolbar class="md-table-toolbar md-default table-header blue-A700-bg" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.CALLS">Calls</span>\n <ms-search-bar on-search="vm.getVoiceCalls()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getVoiceCalls()">\n </ms-quick-filter>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getVoiceCalls">\n <tr md-row>\n <th md-column md-order-by="id">{{\'VOICE.ID\' | translate}}</th>\n <th md-column md-order-by="type">{{ \'VOICE.TYPE\' | translate }}</th>\n <th md-column md-order-by="source">{{ \'VOICE.SOURCE\' | translate }}</th>\n <th md-column md-order-by="destination">{{ \'VOICE.DESTINATION\' | translate }}</th>\n <th md-column md-order-by="starttime">{{ \'VOICE.STARTEDAT\' | translate }}</th>\n <th md-column md-order-by="endtime">{{ \'VOICE.ENDEDAT\' | translate }}</th>\n <th md-column md-order-by="userDisposition">{{ \'VOICE.DISPOSITION\' | translate }}</th>\n <th md-column md-order-by="userSecondDisposition">{{ \'VOICE.SECOND_LEVEL_DISPOSITION\' | translate }}</th>\n <th md-column md-order-by="userThirdDisposition">{{ \'VOICE.THIRD_LEVEL_DISPOSITION\' | translate }}</th>\n <th md-column>{{ \'VOICE.NOTE\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.voiceCalls.rows.length">\n <td md-cell colspan="10">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="voiceCall in vm.voiceCalls.rows" ng-click="vm.showDetails(voiceCall, $event)">\n <td md-cell class="type">{{voiceCall.id}}</td>\n <td md-cell class="type">{{ \'VOICE.\' + voiceCall.type.toUpperCase() | translate}}</td>\n <td md-cell class="source">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="voiceCall.source" license="vm_home.license"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td md-cell class="destination">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="voiceCall.destination" license="vm_home.license"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td md-cell class="starttime">{{voiceCall.starttime | date:\'medium\' }}</td>\n <td md-cell class="endtime">{{voiceCall.endtime | date:\'medium\' }}</td>\n <td md-cell class="disposition">{{ voiceCall.userDisposition}}</td>\n <td md-cell class="disposition">{{ voiceCall.userSecondDisposition}}</td>\n <td md-cell class="disposition">{{ voiceCall.userThirdDisposition}}</td>\n <td md-cell class="note">\n <md-icon ng-if="voiceCall.note" md-font-icon="icon-clipboard-outline"></md-icon>\n </td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.showDetails(voiceCall, $event)" translate="VOICE.DETAILS">\n Show Details\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.voiceCalls.count}}" md-on-paginate="vm.getVoiceCalls" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/voice/details/dialog.html",'<md-dialog class="details-dialog" aria-label="details">\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span ng-if="!vm.interaction.closed" class="title" translate="VOICE.DETAILS"></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content>\n <md-list flex>\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.UNIQUEID">Uniqueid</p>\n <h4>{{vm.call.uniqueid}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.TYPE">Type</p>\n <h4>{{vm.call.type ? vm.call.type : \'no type\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.SOURCE">Source</p>\n <h4 privacy ng-cloak>{{vm.call.source ? vm.call.source : \'unknown\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.DESTINATION">Destination</p>\n <h4 privacy ng-cloak>{{vm.call.destination ? vm.call.destination : \'unknown\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.STARTEDAT">Started At</p>\n <h4>{{vm.call.starttime | date:\'medium\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.ANSWEREDAT">Answered At</p>\n <h4>{{vm.call.answertime ? (vm.call.answertime | date:\'medium\') : \'--\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.ENDEDAT">Ended At</p>\n <h4>{{vm.call.endtime ? (vm.call.endtime | date:\'medium\') : \'--\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.DURATION">Duration</p>\n <h4>{{vm.call.duration ? vm.call.duration : \'--\'}}s</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.BILLABLESECONDS">Billable Seconds</p>\n <h4>{{vm.call.billableseconds ? vm.call.billableseconds : \'--\'}}s</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.DISPOSITION">Disposition</p>\n <h4>{{vm.call.userDisposition ? vm.call.userDisposition : \'--\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.SECOND_LEVEL_DISPOSITION">Second Level Disposition</p>\n <h4>{{vm.call.userSecondDisposition ? vm.call.userSecondDisposition : \'--\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.THIRD_LEVEL_DISPOSITION">Third Level Disposition</p>\n <h4>{{vm.call.userThirdDisposition ? vm.call.userThirdDisposition : \'--\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.NOTE">Note</p>\n <h4>{{vm.call.note ? vm.call.note : \'--\'}}</h4>\n </div>\n </md-list-item>\n </md-list>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <md-button type="button" ng-click="vm.closeDialog()" class="send-button md-accent md-raised" aria-label="DISPOSE" translate="VOICE.CLOSE" translate-attr-aria-label="VOICE.DISPOSE">\n CLOSE\n </md-button>\n </md-dialog-actions>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/home/whatsapp/agent.general.whatsapp.html",'<md-card ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.WHATSAPP_INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm.getWhatsappInteractions()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getWhatsappInteractions()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" aria-label="Reload" translate translate-attr-aria-label="DASHBOARDS.RELOAD" ng-click="vm.getWhatsappInteractions()">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n <md-menu ng-if="vm.whatsappAccounts.rows && vm.whatsappAccounts.rows.length">\n <md-button class="md-icon-button create-new" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-repeat="whatsappAccount in vm.whatsappAccounts.rows">\n <md-button aria-label="compose" ng-click="vm.composeWhatsappInteraction($event, whatsappAccount)">\n {{ whatsappAccount.name }} ({{ whatsappAccount.key }})</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </md-toolbar>\n <md-table-container class="interactions-list">\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getWhatsappInteractions">\n <tr md-row>\n <th class="id-header" md-column md-order-by="id">\n {{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column class="no-padding width-5">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding width-5"></th>\n <th md-column class="no-padding width-5"></th>\n <th md-column md-order-by="contactName">{{\'DASHBOARDS.CONTACT\' | translate}}</th>\n <th md-column md-order-by="createdAt">{{\'DASHBOARDS.STARTEDAT\' | translate}}</th>\n <th md-column md-order-by="lastMsgAt">{{\'DASHBOARDS.LAST_MESSAGE\' | translate}}</th>\n <th md-column md-order-by="closed">{{\'DASHBOARDS.STATUS\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.AGENT\' | translate}}</th>\n <th md-column>\n {{\'DASHBOARDS.ACCOUNT\' | translate}}\n </th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.whatsappInteractions.rows.length">\n <td md-cell colspan="13">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INTERACTION">No Available\n Interaction</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="interaction in vm.whatsappInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td ng-click="vm.showWhatsappInteraction($event, interaction)" md-cell class="id">\n <div layout="row" layout-align="start center">\n <span class="font-size-10">{{interaction.id}}</span>\n </div>\n </td>\n <td md-cell>\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="u in interaction.Users">{{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : u.fullname | translate }}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="!interaction.closed && interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" layout-margin>{{interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="interaction.attach" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td ng-click="vm.showWhatsappInteraction($event, interaction)" md-cell>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'no-margin-bottom\' : interaction.contactInfo}" layout-margin privacy ng-cloak>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text no-margin-top" layout-margin privacy ng-cloak>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td ng-click="vm.showWhatsappInteraction($event, interaction)" md-cell>\n <span class="font-size-10 text-truncate">{{interaction.createdAt | formatdate }}</span>\n </td>\n <td ng-click="vm.showWhatsappInteraction($event, interaction)" md-cell>\n <div layout="row" ng-if="interaction.lastMsgAt">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}">\n </md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="font-size-10 text-truncate">{{interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n <span ng-if="!interaction.lastMsgAt">No messages</span>\n </td>\n <td ng-click="vm.showWhatsappInteraction($event, interaction)" md-cell>\n <span ng-if="interaction.closed" class="red-fg font-size-12">{{ \'DASHBOARDS.CLOSED\' | translate}} <span ng-if="interaction.disposition">-\n {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}</span></span>\n <md-tooltip class="multiline" ng-if="interaction.closed">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n <span ng-if="!interaction.closed" class="green-fg font-size-12"><span translate="DASHBOARDS.OPENED"></span><span ng-if="interaction.substatus"> -\n {{interaction.substatus}}</span></span>\n </td>\n <td ng-click="vm.showWhatsappInteraction($event, interaction)" md-cell class="user">\n <span class="font-size-12 text-truncate width-80">{{ vm.getAgentLabel(interaction) }}</span>\n </td>\n <td ng-click="vm.showWhatsappInteraction($event, interaction)" md-cell class="whatsappAccount">\n {{ vm.getWhatsappAccountLabel(interaction) }}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <div layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">,\n </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </div>\n </td>\n <td md-cell class="actions actions-padding">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="vm.showWhatsappInteraction($event, interaction)" translate="DASHBOARDS.SHOW">\n Show Whatsapp\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions">\n <md-button ng-click="vm.downloadWhatsappInteraction($event, interaction)" translate="DASHBOARDS.DOWNLOAD">\n Download Whatsapp\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!interaction.closed">\n <md-button ng-click="vm.disposeInteraction($event, interaction)" translate="DASHBOARDS.CLOSE_AND_DISPOSE">\n Close and Dispose\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'DASHBOARDS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'DASHBOARDS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'DASHBOARDS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.whatsappInteractions.count}}" md-on-paginate="vm.getWhatsappInteractions" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/iframe/agent.general.iframe.html",'<md-content layout="row" layout-fill>\n\n <div flex layout="row">\n\n <iframe ng-src="{{vm.getTrustedURL()}}" frameborder=0 style="width: 100%; height: 100%; border:0px;"></iframe>\n\n </div>\n\n</md-content>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",'<md-dialog id="agent-general-dialog" aria-label="Spy Dialog">\n <div id="interaction-app" class="agent-content" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.html\'"></div>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.html",'\x3c!-- CONTENT CARD --\x3e\n<md-content class="content-card" layout="row" layout-fill>\n\n <div ng-if="!vm.showInteraction" class="start-point" flex layout="column" layout-align="center center" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.loading.html\'"></div>\n\n <div ng-if="vm.showInteraction" flex layout="row">\n\n <md-card flex="75" class="interaction">\n\n <md-content class="interaction-agents" layout="row" layout-align="start center" ng-if="!vm.interaction.closed && vm.interaction.Users.length">\n <strong layout-margin translate="DASHBOARDS.CURRENTLY_IN_USE_BY">Currently in use by </strong>\n\n <div ng-repeat="u in vm.interaction.Users">\n <img class="avatar-small" ng-src="api/users/{{u.id}}/avatar">\n <md-tooltip> {{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : vm.usersMap[u.id] | translate }}\n </md-tooltip>\n </div>\n </md-content>\n\n \x3c!-- TOOLBAR --\x3e\n <md-toolbar class="interaction-toolbar" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.html\'">\n </md-toolbar>\n \x3c!-- / TOOLBAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <md-content id="interaction-content" name="{{\'interaction-content-\' + vm.tab.id}}" flex ms-scroll layout-wrap>\n <div class="interaction-messages" ng-switch="vm.tab.channel">\n <div ng-switch-when="mail">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.interaction.mail.html\'">\n </div>\n </div>\n <div ng-switch-default>\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.interaction.html\'">\n </div>\n </div>\n </div>\n </md-content>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- FOOTER --\x3e\n <div ng-if="\n !vm.interaction.closed && ( vm.tab.channel == \'chat\' \n || (vm.tab.channel == \'openchannel\' && vm.account.replyUri) \n || (vm.tab.channel == \'sms\' && !vm.tab.spy) \n || (vm.tab.channel == \'whatsapp\' && !vm.tab.spy) )\n && (vm.user.role !== \'admin\' && vm.user.role !== \'user\')" class="interaction-footer flex-noshrink" layout="row" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.footer.html\'">\n </div>\n \x3c!-- / FOOTER--\x3e\n </md-card>\n\n <md-card layout="column" flex class="info" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.html\'">\n </md-card>\n </div>\n</md-content>\n\x3c!-- / CONTENT CARD --\x3e'),e.put("app/main/apps/dashboards/views/general/agent/interaction/compose/chat/dialog.html",'<md-dialog class="compose-dialog" aria-label="New Message">\n <form class="md-inline-form" name="composeForm" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div layout="row">\n <md-button ng-if="!vm.secret" ng-click="vm.send()" class="md-raised md-blue-bg white-fg" aria-label="Send message">\n <span translate="CHAT.SEND">SEND</span>\n </md-button>\n <md-button ng-if="vm.secret" ng-click="vm.addNote()" class="md-raised md-blue-bg white-fg" aria-label="Add note">\n <span translate="CHAT.ADD_NOTE">Add note</span>\n </md-button>\n </div>\n <span ng-if="!vm.secret" class="title">{{vm.message.from}}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()" aria-label="Close dialog" tranlate translate-aria-label="CHAT.CLOSE_DIALOG">\n <md-icon md-font-icon="icon-close"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container ng-if="!vm.secret" class="md-block to">\n <label translate="CHAT.TO">To</label>\n <md-chips name="to" ng-model="vm.message.to" md-transform-chip="vm.transformContact($chip)" md-separator-keys="vm.separatorKeys" md-require-match="false" md-max-chips="1" required>\n <md-autocomplete md-search-text="vm.searchTo" md-items="contact in vm.contactSearch(vm.searchTo)" md-item-text="contact.mobile" md-min-length="3">\n <md-item-template>\n <span>{{ vm.getContact(contact) }}</span>\n </md-item-template>\n </md-autocomplete>\n </md-chips>\n <div ng-messages="composeForm.to.$error" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TO_REQUIRED">To field is required</span>\n </div>\n </div>\n </md-input-container>\n <ms-emoji-area on-reply="vm.reply(event, body)" ctrl-methods="vm.ctrlMethods" ng-model="vm.message.body" placeholder="\'CHAT.INSERT_MESSAGE_HERE\'" picker-position="\'bottom\'"></ms-emoji-area>\n <md-autocomplete ng-if="!vm.secret" class="padding-top-5" md-selected-item="vm.selectedItem" md-search-text="vm.searchText" md-selected-item-change="vm.selectedItemChange(item)" md-items="item in vm.searchTextChange(vm.searchText)" md-item-text="item.value" md-min-length="1" md-floating-label="{{ \'CHAT.CANNED_ANSWER_SEARCH\' | translate}}" class="input-show-hide no-container-margin">\n <md-item-template>\n <md-icon ng-if="!item.ChatAccountId" md-font-icon="icon-earth" aria-label="alert chat" class="s16"></md-icon>\n <md-icon ng-if="item.ChatAccountId" md-font-icon="icon-message-text" aria-label="alert chat" class="s16 orange-fg"></md-icon>\n <span md-highlight-text="vm.searchText" md-highlight-flags="^i">{{item.key}} - {{item.value}}</span>\n </md-item-template>\n\n <md-not-found>\n <span translate="CHAT.CANNED_ANSWER_NOT_FOUND">No canned answers were found</span>\n </md-not-found>\n </md-autocomplete>\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/compose/fax/dialog.html",'<md-dialog class="compose-dialog" aria-label="New Message">\n <form class="md-inline-form" name="composeForm" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div layout="row">\n <md-button ng-click="vm.send()" class="md-raised md-blue-bg white-fg" aria-label="Send message">\n <span translate="FAX.SEND">SEND</span>\n </md-button>\n <md-button ng-disabled="vm.message.attachments.length === 1" class="md-fab md-mini md-white-bg" aria-label="attachment" translate-attr-aria-label="DASHBOARDS.ATTACHMENT" flow-btn flow-name="vm.ngFlow.flow" flow-files-submitted="vm.upload()" flow-init="vm.ngFlowOptions" flow-file-added="vm.fileAdded($file)" flow-file-success="vm.fileSuccess($file, $message)">\n <md-icon md-font-icon="icon-paperclip" class="red-fg"></md-icon>\n </md-button>\n </div>\n <span class="title">{{vm.message.from}}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()" aria-label="Close dialog" tranlate translate-aria-label="FAX.CLOSE_DIALOG">\n <md-icon md-font-icon="icon-close"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <md-input-container class="md-block to">\n <label translate="FAX.TO">To</label>\n <md-chips name="to" ng-model="vm.message.to" md-transform-chip="vm.transformContact($chip)" md-separator-keys="vm.separatorKeys" md-require-match="false" md-max-chips="1" required>\n <md-autocomplete ng-hide="vm.message.to.length === 1" md-search-text="vm.searchTo" md-items="contact in vm.contactSearch(vm.searchTo)" md-item-text="contact.fax" md-min-length="3">\n <md-item-template>\n <span>{{ vm.getContact(contact) }}</span>\n </md-item-template>\n </md-autocomplete>\n </md-chips>\n <div ng-messages="composeForm.to.$error" ng-if="composeForm.$dirty">\n <div ng-message="required">\n <span translate="FAX.ERRORS.TO_REQUIRED">To field is required</span>\n </div>\n <div ng-message="md-max-chips">You reached the maximum amount of chips</div>\n </div>\n </md-input-container>\n <div class="attachment-list" ng-if="vm.message.attachments.length" layout="row" layout-wrap>\n <div class="attachment" layout="row" layout-align="space-between center" ng-repeat="attachment in vm.message.attachments">\n <div>\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n <span class="filename">{{attachment.name}}</span>\n <span class="size">({{attachment.size | byteFmt: 0}})</span>\n </div>\n <md-button class="md-icon-button" aria-label="Delete attachment" translate translate-attr-aria-label="FAX.DELETE_ATTACHMENT">\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/compose/mail/dialog.html",'<md-dialog class="compose-dialog" aria-label="New Message" ng-class="{\'mail-no-secret\': !vm.secret}" ng-cloak>\n <form class="md-inline-form" name="composeForm" novalidate>\n <md-toolbar ng-class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div layout="row">\n <div ng-if="!vm.secret" class="md-button md-raised blue-bg no-padding">\n <button class="white-fg margin-horizontal-10" aria-label="Send message" ng-disabled="!vm.verifySmtp" ng-click="vm.send($event, false, null)">\n <span>{{ \'MAIL.SEND\' | translate | uppercase }}</span>\n </button>\n <span class="white-fg secondary-text vertical-divider"></span>\n <md-menu>\n <button ng-disabled="!vm.verifySmtp" class="white-fg margin-left-0" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-menu-down" class="icon s24"></md-icon>\n </button>\n <md-menu-content width="2">\n <md-menu-item ng-if="vm.subStatuses.rows.length">\n <md-menu>\n <md-button ng-click="$mdMenu.open()" class="text-capitalize" translate="MAIL.SEND_AS">\n Send as\n </md-button>\n <md-menu-content>\n <md-menu-item ng-repeat="subStatus in vm.subStatuses.rows">\n <md-button ng-click="vm.send($event, false, subStatus.name)">\n {{subStatus.name}}\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.send($event, true, null)" translate="MAIL.SEND_AND_CLOSE">\n Send and Close\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n <md-button ng-if="!vm.secret" class=" md-button md-raised blue-bg white-fg margin-horizontal-10" aria-label="Save draft" ng-click="vm.saveDraft()">\n <span>{{ (vm.isDraft ? \'DASHBOARDS.UPDATE_DRAFT\' : \'DASHBOARDS.SAVE_AS_DRAFT\') | translate | uppercase }}</span>\n </md-button>\n <md-button ng-if="vm.secret" ng-click="vm.addNote()" class="md-raised md-blue-bg white-fg" aria-label="Send message">\n <span translate="MAIL.ADD_NOTE">Add note</span>\n </md-button>\n <md-button ng-disabled="!vm.verifySmtp" class="md-fab md-mini md-white-bg" aria-label="attachment" translate-attr-aria-label="DASHBOARDS.ATTACHMENT" flow-btn flow-name="vm.ngFlow.flow" flow-files-submitted="vm.upload($files)" flow-init="vm.ngFlowOptions" flow-file-success="vm.fileSuccess($file, $message)" flow-file-added="vm.fileAdded($file)">\n <md-icon md-font-icon="icon-paperclip" class="red-fg"></md-icon>\n </md-button>\n </div>\n <span ng-if="!vm.secret" class="title">{{vm.message.from}}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()" aria-label="Close dialog" tranlate translate-aria-label="MAIL.CLOSE_DIALOG">\n <md-icon md-font-icon="icon-close"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container ng-if="!vm.secret" class="md-block to" ng-class="{\'hidden-cc\': vm.hiddenCC, \'hidden-bcc\': vm.hiddenBCC}">\n <label translate="MAIL.TO">To</label>\n <md-chips name="to" ng-model="vm.message.to" ng-keypress="vm.keyPress($event)" md-transform-chip="vm.transformContact($chip, vm.message.to)" md-separator-keys="vm.separatorKeys" md-require-match="false" required>\n <md-autocomplete md-search-text="vm.searchTo" md-items="contact in vm.contactSearch(vm.searchTo)" md-item-text="contact.email" md-min-length="3">\n <md-item-template>\n <span>{{ vm.getContact(contact) }}</span>\n </md-item-template>\n </md-autocomplete>\n </md-chips>\n <div ng-messages="composeForm.to.$error" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.TO_REQUIRED">To field is required</span>\n </div>\n </div>\n <div class="cc-bcc" layout="row" layout-align="start center">\n <div class="show-cc" ng-show="vm.hiddenCC" ng-click="vm.hiddenCC = false">CC</div>\n <div class="show-bcc" ng-show="vm.hiddenBCC" ng-click="vm.hiddenBCC = false">BCC</div>\n </div>\n </md-input-container>\n <md-input-container ng-if="!vm.secret" class="md-block" ng-hide="vm.hiddenCC">\n <label translate="MAIL.CC">Cc</label>\n <md-chips name="cc" ng-model="vm.message.cc" ng-keypress="vm.keyPress($event)" md-transform-chip="vm.transformContact($chip, vm.message.cc)" md-separator-keys="vm.separatorKeys" md-require-match="false" required>\n <md-autocomplete md-search-text="vm.searchCc" md-items="contact in vm.contactSearch(vm.searchCc)" md-item-text="contact.email" md-min-length="3">\n <md-item-template>\n <span>{{ vm.getContact(contact) }}</span>\n </md-item-template>\n </md-autocomplete>\n </md-chips>\n </md-input-container>\n <md-input-container ng-if="!vm.secret" class="md-block" ng-hide="vm.hiddenBCC">\n <label translate="MAIL.BCC">Bcc</label>\n <md-chips name="bcc" ng-model="vm.message.bcc" ng-keypress="vm.keyPress($event)" md-transform-chip="vm.transformContact($chip, vm.message.bcc)" md-separator-keys="vm.separatorKeys" md-require-match="false" required>\n <md-autocomplete md-search-text="vm.searchBcc" md-items="contact in vm.contactSearch(vm.searchBcc)" md-item-text="contact.email" md-min-length="3">\n <md-item-template>\n <span>{{ vm.getContact(contact) }}</span>\n </md-item-template>\n </md-autocomplete>\n </md-chips>\n </md-input-container>\n <md-input-container ng-if="!vm.secret" class="md-block no-margin">\n <label translate="MAIL.SUBJECT">Subject</label>\n <input ng-model="vm.message.subject" type="text" ng-keypress="vm.keyPress($event)">\n </md-input-container>\n <div class="attachment-list" ng-if="vm.message.attachments.length" layout="row" layout-wrap>\n <div class="attachment" layout="row" layout-align="space-between center" ng-repeat="attachment in vm.message.attachments">\n <div>\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n <span class="filename">{{attachment.name}}</span>\n <span class="size" ng-if="attachment.size">({{attachment.size | byteFmt: 0}})</span>\n </div>\n <md-button ng-click="vm.removeAttachment(attachment)" class="md-icon-button" aria-label="Delete attachment" translate translate-attr-aria-label="MAIL.DELETE_ATTACHMENT">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <div class="padding-top-5">\n <textarea ckeditor="vm.ckeditor" id="html-area" ng-model="vm.message.body" md-select-on-focus="" ready="vm.onReadyEditor()"></textarea>\n </div>\n <md-switch ng-if="!vm.message.showLastMessage && !vm.secret" ng-model="vm.message.showLastMessage" ng-change="vm.loadLastMessage()" aria-label="load last message"><span translate="MAIL.SHOW_ORIGINAL_MESSAGE">Show original message</span></md-switch>\n <md-autocomplete ng-if="!vm.secret" md-selected-item="vm.selectedItem" md-search-text="vm.searchText" md-selected-item-change="vm.selectedItemChange(item)" md-items="item in vm.searchTextChange(vm.searchText)" md-item-text="item.value" md-min-length="1" md-floating-label="{{ \'MAIL.CANNED_ANSWER_SEARCH\' | translate}}" class="input-show-hide no-container-margin" ng-keypress="vm.keyPress($event)">\n <md-item-template>\n <md-icon ng-if="!item.MailAccountId" md-font-icon="icon-earth" aria-label="alert email" class="s16">\n </md-icon>\n <md-icon ng-if="item.MailAccountId" md-font-icon="icon-email" aria-label="alert email" class="s16 teal-fg"></md-icon>\n <span md-highlight-text="vm.searchText" md-highlight-flags="^i">{{ item.key }} -\n {{ item.value | htmlToPlaintext }}</span>\n </md-item-template>\n <md-not-found>\n <span translate="MAIL.CANNED_ANSWER_NOT_FOUND">No canned answers were found</span>\n </md-not-found>\n </md-autocomplete>\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/compose/openchannel/dialog.html",'<md-dialog class="compose-dialog" aria-label="New Message">\n <form class="md-inline-form" name="composeForm" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div layout="row">\n <md-button ng-if="!vm.secret" ng-click="vm.send()" class="md-raised md-blue-bg white-fg" aria-label="Send message">\n <span translate="OPENCHANNEL.SEND">SEND</span>\n </md-button>\n <md-button ng-if="vm.secret" ng-click="vm.addNote()" class="md-raised md-blue-bg white-fg" aria-label="Add note">\n <span translate="OPENCHANNEL.ADD_NOTE">Add note</span>\n </md-button>\n </div>\n <span ng-if="!vm.secret" class="title">{{vm.message.from}}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()" aria-label="Close dialog" tranlate translate-aria-label="OPENCHANNEL.CLOSE_DIALOG">\n <md-icon md-font-icon="icon-close"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container ng-if="!vm.secret" class="md-block to">\n <label translate="OPENCHANNEL.TO">To</label>\n <md-chips name="to" ng-model="vm.message.to" md-transform-chip="vm.transformContact($chip)" md-separator-keys="vm.separatorKeys" md-require-match="false" md-max-chips="1" required>\n <md-autocomplete md-search-text="vm.searchTo" md-items="contact in vm.contactSearch(vm.searchTo)" md-item-text="contact.mapkey" md-min-length="3">\n <md-item-template>\n <span>{{ vm.getContact(contact) }}</span>\n </md-item-template>\n </md-autocomplete>\n </md-chips>\n <div ng-messages="composeForm.to.$error" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.TO_REQUIRED">To field is required</span>\n </div>\n </div>\n </md-input-container>\n <ms-emoji-area on-reply="vm.reply(event, body)" ctrl-methods="vm.ctrlMethods" ng-model="vm.message.body" placeholder="\'OPENCHANNEL.INSERT_MESSAGE_HERE\'" picker-position="\'bottom\'"></ms-emoji-area>\n <md-autocomplete ng-if="!vm.secret" class="padding-top-5" md-selected-item="vm.selectedItem" md-search-text="vm.searchText" md-selected-item-change="vm.selectedItemChange(item)" md-items="item in vm.searchTextChange(vm.searchText)" md-item-text="item.value" md-min-length="1" md-floating-label="{{ \'OPENCHANNEL.CANNED_ANSWER_SEARCH\' | translate}}" class="input-show-hide no-container-margin">\n <md-item-template>\n <md-icon ng-if="!item.OpenchannelAccountId" md-font-icon="icon-earth" aria-label="alert openchannel" class="s16"></md-icon>\n <md-icon ng-if="item.OpenchannelAccountId" md-font-icon="icon-message-text" aria-label="alert openchannel" class="s16 orange-fg"></md-icon>\n <span md-highlight-text="vm.searchText" md-highlight-flags="^i">{{item.key}} - {{item.value}}</span>\n </md-item-template>\n <md-not-found>\n <span translate="OPENCHANNEL.CANNED_ANSWER_NOT_FOUND">No canned answers were found</span>\n </md-not-found>\n </md-autocomplete>\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/compose/sms/dialog.html",'<md-dialog class="compose-dialog" aria-label="New Message">\n <form class="md-inline-form" name="composeForm" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div layout="row">\n <md-button ng-if="!vm.secret" ng-click="vm.send()" class="md-raised md-blue-bg white-fg" aria-label="Send message">\n <span translate="SMS.SEND">SEND</span>\n </md-button>\n <md-button ng-if="vm.secret" ng-click="vm.addNote()" class="md-raised md-blue-bg white-fg" aria-label="Add note">\n <span translate="SMS.ADD_NOTE">Add note</span>\n </md-button>\n </div>\n <span ng-if="!vm.secret" class="title">{{vm.message.from}}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()" aria-label="Close dialog" tranlate translate-aria-label="SMS.CLOSE_DIALOG">\n <md-icon md-font-icon="icon-close"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container ng-if="!vm.secret" class="md-block to">\n <label translate="SMS.TO">To</label>\n <md-chips name="to" ng-model="vm.message.to" md-transform-chip="vm.transformContact($chip)" md-separator-keys="vm.separatorKeys" md-require-match="false" md-max-chips="1" required>\n <md-autocomplete md-search-text="vm.searchTo" md-items="contact in vm.contactSearch(vm.searchTo)" md-item-text="contact.mobile" md-min-length="3">\n <md-item-template>\n <span>{{ vm.getContact(contact) }}</span>\n </md-item-template>\n </md-autocomplete>\n </md-chips>\n <div ng-messages="composeForm.to.$error" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.TO_REQUIRED">To field is required</span>\n </div>\n </div>\n </md-input-container>\n <ms-emoji-area on-reply="vm.reply(event, body)" ctrl-methods="vm.ctrlMethods" ng-model="vm.message.body" placeholder="\'SMS.INSERT_MESSAGE_HERE\'" picker-position="\'bottom\'"></ms-emoji-area>\n <md-autocomplete ng-if="!vm.secret" class="padding-top-5" md-selected-item="vm.selectedItem" md-search-text="vm.searchText" md-selected-item-change="vm.selectedItemChange(item)" md-items="item in vm.searchTextChange(vm.searchText)" md-item-text="item.value" md-min-length="1" md-floating-label="{{ \'SMS.CANNED_ANSWER_SEARCH\' | translate}}" class="input-show-hide no-container-margin">\n <md-item-template>\n <md-icon ng-if="!item.SmsAccountId" md-font-icon="icon-earth" aria-label="alert sms" class="s16"></md-icon>\n <md-icon ng-if="item.SmsAccountId" md-font-icon="icon-message-text" aria-label="alert sms" class="s16 orange-fg"></md-icon>\n <span md-highlight-text="vm.searchText" md-highlight-flags="^i">{{item.key}} - {{item.value}}</span>\n </md-item-template>\n <md-not-found>\n <span translate="SMS.CANNED_ANSWER_NOT_FOUND">No canned answers were found</span>\n </md-not-found>\n </md-autocomplete>\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/compose/whatsapp/dialog.html",'<md-dialog class="compose-dialog" aria-label="New Message">\n <form class="md-inline-form" name="composeForm" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div layout="row">\n <md-button ng-if="!vm.secret" ng-click="vm.send()" class="md-raised md-blue-bg white-fg" aria-label="Send message">\n <span translate="WHATSAPP.SEND">SEND</span>\n </md-button>\n <md-button ng-if="vm.secret" ng-click="vm.addNote()" class="md-raised md-blue-bg white-fg" aria-label="Add note">\n <span translate="WHATSAPP.ADD_NOTE">Add note</span>\n </md-button>\n </div>\n <span ng-if="!vm.secret" class="title">{{vm.message.from}}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()" aria-label="Close dialog" tranlate translate-aria-label="WHATSAPP.CLOSE_DIALOG">\n <md-icon md-font-icon="icon-close"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container ng-if="!vm.secret" class="md-block to">\n <label translate="WHATSAPP.TO">To</label>\n <md-chips name="to" ng-model="vm.message.to" md-transform-chip="vm.transformContact($chip)" md-separator-keys="vm.separatorKeys" md-require-match="false" md-max-chips="1" required>\n <md-autocomplete md-search-text="vm.searchTo" md-items="contact in vm.contactSearch(vm.searchTo)" md-item-text="contact.mobile" md-min-length="3">\n <md-item-template>\n <span>{{ vm.getContact(contact) }}</span>\n </md-item-template>\n </md-autocomplete>\n </md-chips>\n <div ng-messages="composeForm.to.$error" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TO_REQUIRED">To field is required</span>\n </div>\n </div>\n </md-input-container>\n <ms-emoji-area on-reply="vm.reply(event, body)" ctrl-methods="vm.ctrlMethods" ng-model="vm.message.body" placeholder="\'WHATSAPP.INSERT_MESSAGE_HERE\'" picker-position="\'bottom\'"></ms-emoji-area>\n <md-autocomplete ng-if="!vm.secret" class="padding-top-5" md-selected-item="vm.selectedItem" md-search-text="vm.searchText" md-selected-item-change="vm.selectedItemChange(item)" md-items="item in vm.searchTextChange(vm.searchText)" md-item-text="item.value" md-min-length="1" md-floating-label="{{ \'WHATSAPP.CANNED_ANSWER_SEARCH\' | translate}}" class="input-show-hide no-container-margin">\n <md-item-template>\n <md-icon ng-if="!item.WhatsappAccountId" md-font-icon="icon-earth" aria-label="alert whatsapp" class="s16">\n </md-icon>\n <md-icon ng-if="item.WhatsappAccountId" md-font-icon="icon-message-text" aria-label="alert whatsapp" class="s16 orange-fg"></md-icon>\n <span md-highlight-text="vm.searchText" md-highlight-flags="^i">{{item.key}} - {{item.value}}</span>\n </md-item-template>\n <md-not-found>\n <span translate="WHATSAPP.CANNED_ANSWER_NOT_FOUND">No canned answers were found</span>\n </md-not-found>\n </md-autocomplete>\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",'<md-dialog class="disposition-dialog" aria-label="disposition" ng-init="vm.onInit()">\n <form name="dispositionForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span ng-if="!vm.interaction.closed" class="title" translate="DASHBOARDS.DISPOSE"></span>\n <span ng-if="vm.interaction.closed" class="title" translate="DASHBOARDS.INFO"></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()" ng-if="!vm.mandatoryDisposition">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="DASHBOARDS.DISPOSITION">Disposition</label>\n <md-select name="disposition" ng-model="vm.firstLevelDisposition" ng-change="vm.onDispositionChange(\'first\')" required>\n <md-option ng-value="null" ng-if="!vm.mandatoryDisposition">NONE</md-option>\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'first\' } : true">\n {{ disposition.name }}</md-option>\n </md-select>\n <div ng-messages="dispositionForm.disposition.$error" ng-show="dispositionForm.disposition.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.DISPOSITION_REQUIRED">Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.firstLevelDisposition && vm.anySecondLevelDisposition" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="DASHBOARDS.SECOND_LEVEL_DISPOSITION">Second Level Disposition</label>\n <md-select name="secondLevelDisposition" ng-model="vm.secondLevelDisposition" ng-change="vm.onDispositionChange(\'second\')">\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'second\', ParentId: vm.firstLevelDisposition.id } : true">\n {{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.secondLevelDisposition" ng-click="vm.clearDispositionSelection(\'second\')" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear second level disposition selection">\n </md-icon>\n </md-button>\n </div>\n <div ng-if="vm.secondLevelDisposition && vm.anyThirdLevelDisposition" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="DASHBOARDS.THIRD_LEVEL_DISPOSITION">Third Level Disposition</label>\n <md-select name="thirdLevelDisposition" ng-model="vm.thirdLevelDisposition">\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'third\', ParentId: vm.secondLevelDisposition.id } : true" ng-disabled="disposition.canSelect === false">{{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.thirdLevelDisposition" ng-click="vm.clearDispositionSelection(\'third\')" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear third level disposition selection">\n </md-icon>\n </md-button>\n </div>\n <md-input-container class="md-block">\n <label translate="DASHBOARDS.NOTE">Note</label>\n <textarea ng-model="vm.interaction.note" md-maxlength="255" max-rows="5" autofocus></textarea>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.saveDisposition()" ms-dialog-spinner class="send-button md-accent md-raised" ng-if="!vm.interaction.closed && (vm.firstLevelDisposition || vm.secondLevelDisposition || vm.thirdLevelDisposition)" aria-label="CLOSE_AND_DISPOSE" translate="DASHBOARDS.CLOSE_AND_DISPOSE" translate-attr-aria-label="DASHBOARDS.CLOSE_AND_DISPOSE">\n CLOSE AND DISPOSE\n </md-button>\n <md-button type="submit" ng-click="vm.saveDisposition(false)" ms-dialog-spinner class="send-button md-accent md-raised" ng-if="!vm.interaction.closed && !vm.firstLevelDisposition" ng-disabled="vm.mandatoryDisposition" aria-label="CLOSE_WITHOUT_DISPOSE" translate="DASHBOARDS.CLOSE_WITHOUT_DISPOSE" translate-attr-aria-label="DASHBOARDS.CLOSE_WITHOUT_DISPOSE">\n CLOSE WITHOUT DISPOSE\n </md-button>\n <md-button type="submit" ng-click="vm.saveDisposition()" ms-dialog-spinner class="send-button md-accent md-raised" ng-if="vm.interaction.closed" ng-disabled="vm.mandatoryDisposition && !vm.firstLevelDisposition" aria-label="DISPOSE" translate="DASHBOARDS.DISPOSE" translate-attr-aria-label="DASHBOARDS.DISPOSE">\n DISPOSE\n </md-button>\n <div ng-if="vm.mandatoryDisposition">\n <md-icon md-font-icon="icon-information-outline" aria-label="Mandatory Disposition"></md-icon>\n <span class="no-margin font-size-12 line-height-30" translate="DASHBOARDS.HELP.MANDATORY_DISPOSITION_ENABLED"></span>\n </div>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/tag/dialog.html",'<md-dialog class="tag-dialog" aria-label="tag">\n <form name="tagForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title" translate="DASHBOARDS.TAGS"></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <md-chips ng-model="vm.interaction.Tags" md-autocomplete-snap md-require-match="vm.autocompleteRequireMatch">\n <md-autocomplete ng-blur="vm.searchText = \'\'" md-min-length="0" md-selected-item-change="vm.selectedItemChange" md-selected-item="vm.selectedItem" md-search-text="vm.searchText" md-items="item in vm.tags.rows | filter:{ name: vm.searchText }" md-item-text="item.name" placeholder="Search for a tag">\n <span md-highlight-text="vm.searchText">{{item.name}}</span>\n </md-autocomplete>\n <md-chip-template>\n <span>\n <strong>{{$chip.name}}</strong>\n </span>\n </md-chip-template>\n </md-chips>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.saveTag(false)" ng-disabled="tagForm.$pristine" class="send-button md-accent md-raised" aria-label="TAG" translate="DASHBOARDS.SAVE" translate-attr-aria-label="DASHBOARDS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/transfer/dialog.html",'<md-dialog class="disposition-dialog" aria-label="disposition">\n <form name="transferForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title" translate="DASHBOARDS.TRANSFER"></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog(false)">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <md-input-container class="md-block">\n <label translate="DASHBOARDS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.transfer.type">\n <md-option ng-value="\'queue\'" ng-if="vm.account.queueTransfer">Queue</md-option>\n <md-option ng-value="\'agent\'" ng-if="vm.account.agentTransfer">Agent</md-option>\n </md-select>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.transfer.type === \'queue\'">\n <label translate="DASHBOARDS.QUEUES">Queues</label>\n <md-select name="queue" ng-model="vm.transfer.id" required>\n <md-option ng-value="queue.id" ng-repeat="queue in vm.queues.rows">{{ queue.name }}</md-option>\n </md-select>\n <div ng-messages="transferForm.queue.$error" ng-show="transferForm.queue.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.transfer.type === \'agent\'">\n <label translate="DASHBOARDS.AGENTS">Agents</label>\n <md-select name="agent" ng-model="vm.transfer.id" required>\n <md-option ng-value="agent.id" ng-repeat="agent in vm.agents.rows">{{\n agent.name }}</md-option>\n </md-select>\n <div ng-messages="transferForm.agent.$error" ng-show="transferForm.agent.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.onTransfer(true)" ng-disabled="transferForm.$pristine" class="send-button md-accent md-raised" aria-label="DASHBOARDS.TRANSFER" translate="DASHBOARDS.TRANSFER" translate-attr-aria-label="DASHBOARDS.TRANSFER">\n TRANSFER\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.footer.html",'\x3c!-- REPLY FORM --\x3e\n<div ng-show="vm.showFooter" layout="column" layout-align="center center" flex>\n <div layout="row" layout-align="center center" style="flex-grow: 1; align-self: stretch" flex>\n \x3c!-- msEmojyArea directive --\x3e\n <ms-emoji-area ng-if="vm.tab.channel != \'fax\'" on-reply="vm.reply(event, body)" ctrl-methods="vm.ctrlMethods" ng-model="vm.tab.areaText" placeholder="vm.tab.channel.toUpperCase() + \'.INSERT_MESSAGE_HERE\'"></ms-emoji-area>\n \x3c!-- / msEmojyArea directive --\x3e\n\n <div layout="row" layout-align="end center">\n <md-button ng-if="vm.tab.channel != \'fax\'" style="margin:1px;" class="md-icon-button md-mini" ng-click="vm.changeDisplayCannedAnswerInputValue()" aria-label="Search canned answer" translate translate-attr-aria-label="DASHBOARDS.SEND_MESSAGE">\n <md-icon md-font-icon="icon-auto-fix" class="green-fg"></md-icon>\n </md-button>\n\n <md-button ng-if="vm.tab.channel == \'openchannel\' || vm.tab.channel == \'chat\' || vm.tab.channel == \'fax\'" style="margin:1px;" class="md-icon-button md-warn md-mini" aria-label="attachment" translate-attr-aria-label="DASHBOARDS.ATTACHMENT" flow-btn flow-name="vm.ngFlow.flow" flow-files-submitted="vm.upload()" flow-init="vm.ngFlowOptions" flow-file-added="vm.fileAdded($file)" flow-file-success="vm.fileSuccess($file, $message)">\n <md-icon md-font-icon="icon-paperclip"></md-icon>\n </md-button>\n </div>\n </div>\n\n <md-autocomplete ng-hide="!vm.displayCannedAnswerInput" md-selected-item="vm.selectedItem" md-search-text="vm.searchText" md-selected-item-change="vm.selectedItemChange(item)" md-items="item in vm.searchTextChange(vm.searchText)" md-item-text="item.value" md-min-length="1" placeholder="{{ \'DASHBOARDS.CANNED_ANSWER_SEARCH\' | translate}}" class="cannedarea input-show-hide">\n <md-item-template>\n <md-icon ng-if="!item[vm.tab.channel === \'chat\' ? \'ChatWebsiteId\' : _.capitalize(vm.tab.channel) + \'AccountId\']" md-font-icon="icon-earth" aria-label="alert channel" class="s16"></md-icon>\n <md-icon ng-if="item[vm.tab.channel === \'chat\' ? \'ChatWebsiteId\' : _.capitalize(vm.tab.channel) + \'AccountId\']" md-font-icon="{{vm.getIconByChannel(vm.tab.channel)}}" aria-label="alert channel" class="s16" ng-class="vm.getColorByChannel(vm.tab.channel) + \'-fg\'"></md-icon>\n <span md-highlight-text="vm.searchText" md-highlight-flags="^i">{{item.key}} - {{item.value}}</span>\n </md-item-template>\n\n <md-not-found>\n <span translate="DASHBOARDS.CANNED_ANSWER_NOT_FOUND">No canned answers were found</span>\n </md-not-found>\n </md-autocomplete>\n</div>\n\x3c!-- / REPLY FORM --\x3e'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.chat.html",'<div ng-init="item = item || vm.interaction">\n <md-list-item class="md-2-line" ng-if="item.browserName">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.BROWSER_NAME">Browser Name</p>\n <h4>{{ item.browserName }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.osName">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.OS_NAME">OS Name</p>\n <h4>{{ item.osName }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.deviceModel">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.DEVICE_MODEL">Device Model</p>\n <h4>{{ item.deviceModel }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.referer">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.REFERER">Referer</p>\n <h4>{{ item.referer }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.customerIp">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.CUSTOMER_IP">Originating IP Address</p>\n <h4>{{ item.customerIp }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.customerPort">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.CUSTOMER_PORT">Originating TCP Port</p>\n <h4>{{ item.customerPort }}</h4>\n </div>\n </md-list-item>\n <md-divider ng-if="item.closed && item.ratingValue != null || item.ratingMessage"></md-divider>\n <md-list-item class="md-2-line" ng-if="item.closed && item.ratingValue != null">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.RATING">Rating</p>\n <md-icon md-font-icon="icon-star" style="color:red" ng-show="!item.ratingType || item.ratingType == \'star\'" ng-repeat="ratingValue in [1,2,3,4,5] | limitTo:item.ratingValue"></md-icon>\n <md-icon md-font-icon="icon-thumb-up" style="color:green" ng-show="item.ratingType && item.ratingType == \'thumb\' && item.ratingValue == 1"></md-icon>\n <md-icon md-font-icon="icon-thumb-down" style="color:red" ng-show="item.ratingType && item.ratingType == \'thumb\' && item.ratingValue == 0"></md-icon>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.ratingMessage">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.FEEDBACK">Feedback</p>\n <h4 style="overflow-wrap: break-word; white-space: normal">{{ item.ratingMessage }}</h4>\n </div>\n </md-list-item>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.html",'<md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex>\n <md-tab>\n <md-tab-label>\n <span translate="DASHBOARDS.CONTACT">Contact</span>\n </md-tab-label>\n <md-tab-body>\n <md-content class="md-padding">\n <form name="contactForm" class="md-inline-form" novalidate>\n <md-input-container class="md-block">\n <md-icon md-font-icon="icon-account"></md-icon>\n <label translate="DASHBOARDS.NAME">Name</label>\n <input type="text" name="firstName" ng-model="vm.contact.firstName" disabled privacy ng-cloak>\n </md-input-container>\n\n <md-input-container class="md-block">\n <md-icon md-font-icon="icon-email"></md-icon>\n <label translate="DASHBOARDS.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.contact.email" disabled privacy ng-cloak>\n </md-input-container>\n\n <md-input-container class="md-block">\n <md-icon md-font-icon="icon-phone"></md-icon>\n <label translate="DASHBOARDS.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.contact.phone" disabled privacy ng-cloak>\n </md-input-container>\n\n <md-input-container class="md-block">\n <md-icon md-font-icon="icon-cellphone-iphone"></md-icon>\n <label translate="DASHBOARDS.MOBILE">Mobile</label>\n <input type="text" name="mobile" ng-model="vm.contact.mobile" disabled privacy ng-cloak>\n </md-input-container>\n\n <md-input-container class="md-block">\n <md-icon md-font-icon="icon-deskphone"></md-icon>\n <label translate="DASHBOARDS.FAX">Fax</label>\n <input type="text" name="fax" ng-model="vm.contact.fax" disabled privacy ng-cloak>\n </md-input-container>\n\n <div ng-if="!vm.tab.spy" layout="row" layout-align="center center">\n <md-button class="md-raised md-accent" ng-click="vm.openContact(ev)" translate="DASHBOARDS.MORE">\n More\n </md-button>\n </div>\n </form>\n </md-content>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="DASHBOARDS.INTERACTION">Interaction</span>\n </md-tab-label>\n <md-tab-body>\n <div layout="column" layout-align="space-between center" class="md-padding">\n <md-icon class="s42" md-font-icon="{{vm.getIconByChannel(vm.tab.channel)}}" ng-class="vm.getColorByChannel(vm.tab.channel) + \'-fg\'"></md-icon>\n <span ng-if="vm.interaction.closed" class="md-background-bg red-fg font-size-14">#{{vm.interaction.id}} - <span translate="DASHBOARDS.CLOSED"></span></span>\n <span ng-if="!vm.interaction.closed" class="md-background-bg green-fg font-size-14">#{{vm.interaction.id}} -\n <span translate="DASHBOARDS.OPENED"></span></span>\n <span ng-if="!vm.interaction.closed && vm.interaction.substatus" class="md-background-bg green-fg font-size-14">{{vm.interaction.substatus}}</span>\n </div>\n <md-divider></md-divider>\n <md-list flex>\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.WEBSITE" ng-if="vm.tab.channel == \'chat\'">Website</p>\n <p translate="DASHBOARDS.ACCOUNT" ng-if="vm.tab.channel != \'chat\'">Account</p>\n <h4>{{vm.account.name}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.AGENT">Agent</p>\n <h4>{{vm.agent.fullname || vm.usersMap[vm.interaction.UserId]}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line" ng-if="vm.interaction.externalUrl">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.EXTERNAL_URL">External URL</p>\n <a href="{{vm.interaction.externalUrl}}" target="_blank">\n <h4>{{vm.interaction.externalUrl}}</h4>\n </a>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.CREATED_AT">Created At</p>\n <h4>{{vm.interaction.createdAt | date: \'medium\'}}</h4>\n </div>\n </md-list-item>\n\n <div ng-switch="vm.tab.channel">\n <div ng-switch-when="chat">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.chat.html\'">\n </div>\n </div>\n <div ng-switch-when="mail">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.mail.html\'">\n </div>\n </div>\n <div ng-switch-when="openchannel">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.openchannel.html\'">\n </div>\n </div>\n </div>\n\n <md-list-item class="md-2-line" ng-if="vm.interaction.Tags.length">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.TAGS">Tags</p>\n <div class="tags padding-bottom-5" layout="row" layout-align="start center" layout-wrap>\n <div class="tag margin-right-5 margin-top-5 margin-bottom-5" layout="row" layout-align="center center" ng-repeat="tag in vm.interaction.Tags">\n <div class="tag-color" ng-style="{\'background\': tag.color}"></div>\n <div class="tag-label">{{tag.name}}</div>\n </div>\n </div>\n </div>\n </md-list-item>\n\n <md-divider ng-if="vm.interaction.closed"></md-divider>\n\n <md-list-item class="md-2-line" ng-if="vm.interaction.closed">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.CLOSED_AT">Closed At</p>\n <h4>{{vm.interaction.closedAt | date: \'medium\'}}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="vm.interaction.closed && vm.interaction.disposition">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.DISPOSITION">Disposition</p>\n <h4>{{ vm.interaction.disposition }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="vm.interaction.closed && vm.interaction.secondDisposition">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.SECOND_LEVEL_DISPOSITION">Second Level Disposition</p>\n <h4>{{ vm.interaction.secondDisposition }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="vm.interaction.closed && vm.interaction.thirdDisposition">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.THIRD_LEVEL_DISPOSITION">Third Level Disposition</p>\n <h4>{{ vm.interaction.thirdDisposition }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-3-line md-long-text" ng-if="vm.interaction.closed && vm.interaction.note">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.NOTE">NOTE</p>\n <h4 style="overflow-wrap: break-word; white-space: normal">{{ vm.interaction.note }}</h4>\n </div>\n </md-list-item>\n </md-list>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="DASHBOARDS.CUSTOMER_JOURNEY">Journey</span>\n </md-tab-label>\n <md-tab-body>\n <md-content class="md-padding">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.html\'">\n </div>\n </md-content>\n </md-tab-body>\n </md-tab>\n</md-tabs>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.all.html",'<md-divider></md-divider>\n<md-list flex>\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.AGENT">Agent</p>\n <h4>{{ vm.agent.fullname || vm.usersMap[item.UserId] || \'DASHBOARDS.NOT_ASSIGNED\' | translate }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.externalUrl">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.EXTERNAL_URL">External URL</p>\n <a href="{{ item.externalUrl }}" target="_blank">\n <h4>{{ item.externalUrl }}</h4>\n </a>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.CREATED_AT">Created At</p>\n <h4>{{ item.createdAt | date: \'medium\' }}</h4>\n </div>\n </md-list-item>\n <div ng-if="item.channel === \'chat\'">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.chat.html\'">\n </div>\n </div>\n <div ng-if="item.channel === \'mail\'">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.mail.html\'">\n </div>\n </div>\n <md-divider ng-if="item.closed"></md-divider>\n <md-list-item class="md-2-line" ng-if="item.closed">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.CLOSED_AT">Closed At</p>\n <h4>{{ item.closedAt | date: \'medium\' }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.closed && item.disposition">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.DISPOSITION">Disposition</p>\n <h4>{{ item.disposition }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.closed && item.secondDisposition">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.SECOND_LEVEL_DISPOSITION">Second Level Disposition</p>\n <h4>{{ item.secondDisposition }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.closed && item.thirdDisposition">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.THIRD_LEVEL_DISPOSITION">Third Level Disposition</p>\n <h4>{{ item.thirdDisposition }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-3-line md-long-text" ng-if="item.closed && item.note">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.NOTE">NOTE</p>\n <h4 style="overflow-wrap: break-word; white-space: normal">{{ item.note }}</h4>\n </div>\n </md-list-item>\n <md-list-item ng-if="item.Tags.length">\n <p class="padding-horizontal-15 grey-fg">Tags</p>\n <div class="tags padding-bottom-5" layout="row" layout-align="start center" layout-wrap>\n <div class="tag margin-right-5 margin-top-5 margin-bottom-5" layout="row" layout-align="center center" ng-repeat="tag in item.Tags">\n <div class="tag-color" ng-style="{\'background\': tag.color}"></div>\n <div class="tag-label">{{ tag.name }}</div>\n </div>\n </div>\n </md-list-item>\n</md-list>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.html",'<div layout-margin layout="row" layout-align="center center">\n <ms-quick-filter filters="vm.quickFilters" query="vm.journeyOptions" search="vm.getCustomerJourney()">\n </ms-quick-filter>\n</div>\n\n<md-content id="journey-content" flex ms-scroll layout-wrap>\n <div ng-if="vm.journeyIsLoading" layout="row" layout-align="center center">\n <md-progress-circular class="md-accent" md-diameter="48" md-mode="indeterminate"></md-progress-circular>\n </div>\n <div id="timeline" layout="column" ng-if="vm.journey && vm.journey.length && !vm.journeyIsLoading" ms-timeline="vm.journeyTimelineOptions" ms-timeline-load-more="vm.loadMoreJourney()">\n \x3c!-- TIMELINE ITEM --\x3e\n <div class="ms-timeline-item" layout-align="center center" ng-repeat="item in vm.journey">\n <div class="timeline-card">\n <md-card class="channel" ng-class="{\'md-grey-200-bg\': item.id == vm.interaction.id}">\n <div layout="row" layout-align="space-between center">\n <div class="header p-6" layout="row" layout-align="start center" ng-cloak>\n <md-button class="md-fab md-mini no-click" aria-label="icon-channel" ng-class="{{ \'item.style.color\' }} + \'-bg\'">\n <md-icon md-font-icon="{{ item.style.icon }}"></md-icon>\n </md-button>\n <div class="info" layout="column" ng-init="item.showMore = false">\n <span class="font-size-12 text-truncate" ng-if="item.destination">\n #{{item.id}} - <span privacy ng-cloak>{{ item.destination }}</span>\n </span>\n <span class="font-size-12 text-truncate" ng-if="!item.destination">\n #{{item.id}} - {{ item.Account.key }}\n </span>\n <span class="font-size-10">{{item.createdAt | date: \'medium\'}}</span>\n <span>\n <a class="toggle-details md-accent-color" ng-click="item.showMore = !item.showMore" translate="{{ item.showMore ? \'DASHBOARDS.HIDE_DETAILS\' : \'DASHBOARDS.SHOW_DETAILS\' }}">\n </a>\n </span>\n </div>\n </div>\n <span>\n <img ng-if="item.UserId" class="avatar" ng-src="api/users/{{item.UserId}}/avatar">\n <md-tooltip md-direction="left">{{item.Owner.fullname || item.User.fullname}}</md-tooltip>\n </span>\n </div>\n <div ng-if="item.showMore">\n <div ng-if="item.channel !== \'voice\'" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.all.html\'">\n </div>\n <div ng-if="item.channel === \'voice\'" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.voice.html\'">\n </div>\n </div>\n <md-divider></md-divider>\n <div ng-if="item.id != vm.interaction.id" layout="row" layout-align="space-around center">\n <div ng-if="item.closed && item.channel !== \'voice\'" class="text-truncate text-boxed-light">\n <span class="red-fg" title="{{ \'DASHBOARDS.STATUS\' | translate}} : {{ \'DASHBOARDS.CLOSED\' | translate }} {{ item.dispositionsValues }}">\n {{ \'DASHBOARDS.STATUS\' | translate}} : {{ \'DASHBOARDS.CLOSED\' | translate}} {{ item.dispositionsValues\n }}\n </span>\n </div>\n <span class="text-boxed md-background-bg green-fg" ng-if="!item.closed && item.channel !== \'voice\'" title="{{ \'DASHBOARDS.STATUS\' | translate}}: {{ \'DASHBOARDS.OPENED\' | translate}}">\n {{ \'DASHBOARDS.STATUS\' | translate}}:\n {{ \'DASHBOARDS.OPENED\' | translate}}\n <span ng-if="item.substatus"> - {{ item.substatus }}</span>\n </span>\n <span ng-if="item.channel === \'voice\'" class="text-boxed md-background-bg red-fg" title="{{ item.userDisposition ? (\'DASHBOARDS.DISPOSITION\' | translate) + \':\' : \'\'}} {{ item.userDisposition ?\n item.userDisposition : (\'DASHBOARDS.NO_DISPOSITION_SET\' | translate) }}">\n {{ item.userDisposition ? (\'DASHBOARDS.DISPOSITION\' | translate) + \':\' : \'\'}} {{ item.userDisposition ?\n item.userDisposition : (\'DASHBOARDS.NO_DISPOSITION_SET\' | translate) }}\n </span>\n <span ng-if="item.channel === \'voice\' && item.userSecondDisposition" class="text-boxed md-background-bg red-fg" title="{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}: {{ item.userSecondDisposition }}">\n {{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:\n {{ item.userSecondDisposition }}\n </span>\n <span ng-if="item.channel === \'voice\' && item.userThirdDisposition" class="text-boxed md-background-bg red-fg" title="{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}: {{ item.userThirdDisposition }}">\n {{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:\n {{ item.userThirdDisposition }}\n </span>\n <div flex></div>\n <md-button ng-if="!vm.tab.spy && vm.user.role === \'agent\' && item.canOpen && item.channel !== \'voice\'" class="md-icon-button" aria-label="go" ng-click="vm.openInteraction(item)">\n <md-icon md-font-icon="icon-open-in-new" class="s20"></md-icon>\n </md-button>\n </div>\n </md-card>\n </div>\n </div>\n\n <div ng-if="vm.canLoadMoreJourney" layout="row" layout-align="center center" class="ng-scope layout-align-center-center layout-row keep-on-top">\n <md-button class="md-raised md-accent md-button ng-scope md-default-theme md-ink-ripple" type="button" ng-click="vm.loadMoreJourney()" translate="DASHBOARDS.MORE">\n </md-button>\n </div>\n </div>\n \x3c!-- / TIMELINE ITEM --\x3e\n</md-content>\n\n<div ng-if="!vm.journey || vm.journey.length === 0" layout="row" layout-align="center center">\n <em translate="DASHBOARDS.NO_DATA_AVAILABLE">No data available</em>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.voice.html",'<md-divider></md-divider>\n\n<md-list flex>\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.TYPE">Type</p>\n <h4>{{ item.type ? item.type : \'no type\' }}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.SOURCE">Source</p>\n <h4 privacy ng-cloak>{{ item.source ? item.source : (\'DASHBOARDS.UNKNOWN\' | translate) }}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.DESTINATION">Destination</p>\n <h4 privacy ng-cloak>{{ item.destination ? item.destination : (\'DASHBOARDS.UNKNOWN\' | translate) }}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.UNIQUEID">Uniqueid</p>\n <h4>{{ item.uniqueid ? item.uniqueid : (\'DASHBOARDS.UNKNOWN\' | translate) }}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.CALLERID">Caller Id</p>\n <h4 privacy ng-cloak>{{ item.callerid ? item.callerid : (\'DASHBOARDS.UNKNOWN\' | translate) }}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.STARTEDAT">Started At</p>\n <h4>{{ item.starttime | date:\'medium\' }}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.END_AT">End At</p>\n <h4>{{ item.endtime | date:\'medium\' }}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.DURATION">Duration</p>\n <h4>{{ item.duration ? item.duration : \'--\' }}s</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.NOTE">Note</p>\n <h4>{{ item.note ? item.note : \'--\' }}</h4>\n </div>\n </md-list-item>\n</md-list>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.mail.html",'<div ng-init="item = item || vm.interaction">\n <md-list-item class="md-2-line" ng-if="item.subject">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.SUBJECT">Subject</p>\n <h4>{{ item.subject }}</h4>\n </div>\n </md-list-item>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.openchannel.html",'<div ng-init="item = item || vm.interaction">\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.VISIBILITY">Visibility</p>\n <h4 translate="{{ item.threadId ? \'DASHBOARDS.PUBLIC\' : \'DASHBOARDS.PRIVATE\'}}"></h4>\n </div>\n </md-list-item>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.interaction.html",'\x3c!-- MESSAGES --\x3e\n<div layout="row" ng-repeat="message in vm.messages.rows" class="md-padding message-row" ng-class="vm.getMessagesAlignment(message)">\n <img ng-if="message.direction ===\'in\'" src="assets/images/avatars/customer.png" class="avatar" />\n <img ng-if="message.direction ===\'out\' && message.UserId && !message.secret" ng-src="api/users/{{message.UserId}}/avatar" class="avatar" />\n <img ng-if="message.direction ===\'out\' && message.UserId && message.secret" ng-src="api/users/{{message.UserId}}/avatar" class="avatar" />\n <img ng-if="message.direction ===\'out\' && !message.UserId" class="avatar" src="assets/images/avatars/robot.png">\n <md-button ng-if="vm.tab.channel === \'fax\'" class="md-fab md-mini no-margin" aria-label="Download" ng-click="vm.downloadMessage(message)">\n <md-icon md-font-icon="icon-download" class="icon s24"></md-icon>\n </md-button>\n\n <div class="bubble" ng-class="{\'md-yellow-200-bg\': message.secret}" ng-switch="message.direction">\n <div ng-if="message.secret">\n <div class="time secondary-text" layout="row" layout-align="end center">\n <div layout-padding>\n <span privacy ng-cloak>{{ vm.getLabelByMessage(message) }}</span>\n <span> - {{message.createdAt | date: \'medium\'}}</span>\n </div>\n <div ng-if="message.id">\n <md-icon class="s18" md-font-icon="icon-lock"></md-icon>\n </div>\n </div>\n </div>\n <div ng-if="!message.secret">\n <div ng-switch-when="in" class="time secondary-text" ng-click="message.Contact && vm.openContact(ev, message.Contact)">\n <span privacy ng-cloak>{{ vm.getLabelByMessage(message) }}</span>\n <span> - {{message.createdAt | date: \'medium\'}}</span>\n </div>\n <div ng-switch-when="out" class="time secondary-text" layout="row" layout-align="end center">\n <div layout-padding>\n <span privacy ng-cloak>{{ vm.getLabelByMessage(message) }}</span>\n <span> - {{message.createdAt | date: \'medium\'}}</span>\n </div>\n <div ng-if="message.id && vm.tab.channel !== \'fax\'">\n <md-icon ng-if="!message.read" class="s18" md-font-icon="icon-check"></md-icon>\n <md-icon ng-if="message.read" class="s18" md-font-icon="icon-check-all md-accent"></md-icon>\n </div>\n <div ng-if="message.id && vm.tab.channel === \'fax\'">\n <md-icon ng-if="!message.read && !(message.failMessage )" class="s18" md-font-icon="icon-check"></md-icon>\n <md-icon ng-if="message.read" class="s18" md-font-icon="icon-check-all md-accent"></md-icon>\n <span ng-if="!message.read && message.failMessage" class="s18 red-900-fg"> {{ message.failMessage }}</span>\n <md-icon ng-if="!message.read && message.failMessage" class="s18 red-900-fg" md-font-icon="icon-close md-accent"></md-icon>\n </div>\n </div>\n </div>\n <div ng-if="message.AttachmentId" layout="row" layout-align="end center">\n <md-button ng-if="vm.downloadPermissions.attachments" class="md-raised md-accent" ng-click="vm.getAttachment({id: message.AttachmentId, name: vm.htmlToPlaintext(message.body)})">\n <span>{{vm.htmlToPlaintext(message.body)}}</span>\n <md-icon md-font-icon="icon-download"></md-icon>\n </md-button>\n <div ng-if="!vm.downloadPermissions.attachments" class="disabled-button">\n <span>{{vm.htmlToPlaintext(message.body)}}</span>\n <md-icon md-font-icon="icon-download"></md-icon>\n </div>\n </div>\n <div ng-if="!message.AttachmentId" class="message" layout="row" layout-align="end center">\n <span ng-bind-html="message.body | embed: vm.embedOptions"></span>\n </div>\n </div>\n</div>\n\x3c!-- / MESSAGES --\x3e'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.interaction.mail.html",'<div ms-timeline="vm.interactionTimelineOptions" ms-timeline-load-more="vm.loadNextPage()">\n <div ng-repeat="message in vm.messages.rows track by message.id" ng-init="vm.selectedMailShowSystemMessage[message.id] = false">\n <md-card ng-if="message.secret" class="md-padding md-yellow-100-bg" layout="column">\n <div layout="row" layout-align="start center">\n <img class="avatar" ng-src="api/users/{{message.UserId}}/avatar">\n <div layout="column">\n <span class="grey-fg">{{vm.agent.fullname || vm.usersMap[message.UserId]}}</span>\n <span class="grey-fg">{{message.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n <div layout="row" layout-align="center center" layout-fill ng-if="message.attach && vm.downloadPermissions.attachments">\n <div flex>\n <md-divider></md-divider>\n </div>\n <md-menu>\n <md-button aria-label="attachments" class="md-icon-button" ng-click="vm.getAttachments(message); $mdOpenMenu($event);">\n <md-tooltip md-direction="bottom"><span translate="MAIL.ATTACHMENTS">Attachments</span>\n </md-tooltip>\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="icon s24"></md-icon>\n <span>{{message.attach}}</span>\n </div>\n </md-button>\n <md-menu-content width="4">\n <div layout="column" layout-align="center center" ng-if="!message.attachments">\n <md-progress-circular md-mode="indeterminate"></md-progress-circular>\n <span translate="MAIL.ATTACHMENTS">Attachments</span>\n </div>\n <md-menu-item ng-if="message.attachments" ng-repeat="attachment in message.attachments">\n <md-button ng-click="vm.getAttachment(attachment)">\n {{ attachment.name || (\'attachment-\' + $index) }}</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n <div flex>\n <md-divider></md-divider>\n </div>\n </div>\n <div class="padding-top-5" ng-bind-html-unsafe="message.body"></div>\n </md-card>\n <div ng-if="!message.secret">\n <div layout="row" layout-align="center center" ng-if="message.direction == \'out\' && !message.UserId && !vm.selectedMailShowSystemMessage[message.id]">\n <md-button class="md-raised blue-grey-300-bg white-fg" ng-click="vm.selectedMailShowSystemMessage[message.id] = !vm.selectedMailShowSystemMessage[message.id]">\n [{{message.createdAt | date: \'medium\'}}] {{ \'MAIL.SHOW_AUTOREPLY\' | translate }}</md-button>\n </div>\n <md-card layout="column" class="md-padding message-row" ng-if="message.direction == \'in\' || (message.direction == \'out\' && (message.UserId || vm.selectedMailShowSystemMessage[message.id]))">\n <md-content class="mail-content">\n <div class="info" layout="row" layout-align="space-between start">\n <div layout="column" layout-align="start start">\n <div layout="row" layout-align="start start">\n <div layout="column" layout-align="start start">\n <div class="name" ng-click="message.Contact && vm.openContact(ev, message.Contact)">\n <strong privacy ng-cloak>{{message.from}}</strong>\n <md-icon ng-if="message.attach" md-font-icon="icon-paperclip" class="s16">\n </md-icon>\n </div>\n <div class="name">\n <div>{{message.subject}}</div>\n </div>\n <div class="name" layout="row" layout-align="start center"><span translate="MAIL.TO">To</span>: <span class="padding-left-5 subject text-truncate" privacy ng-cloak>{{ message.originTo || message.to\n }}</span>\n </div>\n <div class="name padding-top-10" layout="row" layout-align="start center" ng-if="message.direction == \'in\' && message.originCc && message.originCc.indexOf(vm.account.email) >= 0">\n <em><span class="blue-grey" translate="MAIL.YOU_ARE_REGISTERED_AS_A">You are\n registered as a</span> <span class="blue-grey">CC</span></em>\n </div>\n <div class="name padding-top-10" layout="row" layout-align="start center" ng-if="message.direction == \'in\' && message.bcc && message.bcc.indexOf(vm.account.email) >= 0">\n <em><span class="red-fg" translate="MAIL.YOU_ARE_REGISTERED_AS_A">You are\n registered as a</span> <span class="red-fg">BCC</span></em>\n </div>\n </div>\n </div>\n\n <a class="toggle-details md-accent-color" ng-hide="vm.selectedMailShowDetails[message.id]" ng-click="vm.selectedMailShowDetails[message.id] = !vm.selectedMailShowDetails[message.id]" translate="MAIL.SHOW_DETAILS">\n Show Details\n </a>\n <a class="toggle-details md-accent-color" ng-show="vm.selectedMailShowDetails[message.id]" ng-click="vm.selectedMailShowDetails[message.id] = !vm.selectedMailShowDetails[message.id]" translate="MAIL.HIDE_DETAILS">\n Hide Details\n </a>\n <div ng-show="vm.selectedMailShowDetails[message.id]" class="details" layout="row" layout-align="start start">\n <div layout="column">\n <span class="title" translate="MAIL.DATE">Date:</span>\n <span class="title" translate="MAIL.FROM">From:</span>\n <span class="title" translate="MAIL.TO">To:</span>\n \x3c!-- NOTE: Start retrocompatibility with replyCc 2.0.66 --\x3e\n <span class="title" translate="MAIL.CC" ng-if="message.direction === \'in\' && message.originCc">Cc:</span>\n <span class="title" translate="MAIL.CC" ng-if="message.direction === \'in\' && !message.originCc && !message.originTo && message.cc">Cc:</span>\n <span class="title" translate="MAIL.CC" ng-if="message.direction === \'out\' && message.cc">Cc:</span>\n \x3c!-- End retrocompatibility --\x3e\n <span class="title" translate="MAIL.BCC" ng-if="message.bcc">Bcc:</span>\n <span class="title" translate="MAIL.ACCEPTED" ng-if="message.UserId && message.direction ===\'in\'">Accepted:</span>\n </div>\n\n <div layout="column">\n <span class="detail">{{message.createdAt | date:\'medium\'}}</span>\n <span class="detail" privacy ng-cloak>{{message.from}}</span>\n <span class="detail" privacy ng-cloak>{{message.originTo || message.to}}</span>\n \x3c!-- NOTE: Start retrocompatibility with replyCc 2.0.66 --\x3e\n <span class="detail" ng-if="message.direction === \'in\' && message.originCc" privacy ng-cloak>{{\n message.originCc }}</span>\n <span class="detail" ng-if="message.direction === \'in\' && !message.originCc && !message.originTo && message.cc" privacy ng-cloak>{{ message.cc }}</span>\n <span class="detail" ng-if="message.direction === \'out\' && message.cc" privacy ng-cloak>{{ message.cc\n }}</span>\n \x3c!-- End retrocompatibility --\x3e\n <span class="detail" ng-if="message.bcc" privacy ng-cloak>{{message.bcc}}</span>\n <span class="detail" ng-if="message.UserId && message.direction ===\'in\'">{{vm.usersMap[message.UserId]}}</span>\n </div>\n </div>\n </div>\n\n <div layout="row" layout-align="center center">\n <div layout="column" layout-align="center end" class="md-padding">\n <span class="grey-fg" ng-if="message.direction ===\'in\'" privacy>{{message.from.indexOf(vm.contact.email)\n >= 0 ? vm.contact.firstName + \' \' + vm.contact.lastName : \'*\' + message.from}}</span>\n <span class="grey-fg" ng-if="message.direction ===\'out\' && message.UserId">{{vm.agent.fullname ||\n vm.usersMap[message.UserId]}}</span>\n <span class="grey-fg" ng-if="message.direction ===\'out\' && !message.UserId">System</span>\n <span class="grey-fg">{{message.createdAt | date:\'medium\'}}</span>\n </div>\n <img ng-if="message.direction ===\'in\'" ng-src="assets/images/avatars/customer.png" class="avatar" alt="customer" />\n <img ng-if="message.direction ===\'out\' && message.UserId" class="avatar" ng-src="api/users/{{message.UserId}}/avatar">\n <img ng-if="message.direction ===\'out\' && !message.UserId" class="avatar" src="assets/images/avatars/robot.png">\n </div>\n </div>\n\n <div layout="row" layout-align="center center" layout-fill>\n <div flex>\n <md-divider></md-divider>\n </div>\n <div>\n <div class="interaction-reply-button-container">\n <md-tooltip md-direction="bottom"><span translate="DASHBOARDS.DRAFT">Draft</span>\n </md-tooltip>\n <md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="draft" ng-disabled="!vm.draft" ng-click="vm.openDraft(message.id)">\n <md-icon md-font-icon="icon-pencil-box" class="icon s24"></md-icon>\n </md-button>\n </div>\n <md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="reply" ng-click="vm.composeMailInteraction(\'reply\', message)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.REPLY">Reply</span></md-tooltip>\n <md-icon md-font-icon="icon-reply" class="icon s24"></md-icon>\n </md-button>\n <md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="replyAll" ng-click="vm.composeMailInteraction(\'replyAll\', message)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.REPLY_ALL">Reply All</span>\n </md-tooltip>\n <md-icon md-font-icon="icon-reply-all" class="icon s24"></md-icon>\n </md-button>\n <md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="forward" ng-click="vm.composeMailInteraction(\'forward\', message)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.FORWARD">Forward</span>\n </md-tooltip>\n <md-icon md-font-icon="icon-forward" class="icon s24"></md-icon>\n </md-button>\n <md-button ng-if="!message.attach && vm.downloadPermissions.interactions" class="md-icon-button" aria-label="forward" ng-click="vm.downloadMessage(message)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.DOWNLOAD">Download</span>\n </md-tooltip>\n <md-icon md-font-icon="icon-download" class="icon s24"></md-icon>\n </md-button>\n <md-menu ng-if="message.attach && vm.downloadPermissions.interactions" class="no-margin" md-position-mode="target-right target">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu()" aria-label="download">\n <md-tooltip md-direction="bottom"><span translate="MAIL.DOWNLOAD">Download</span>\n </md-tooltip>\n <md-icon md-font-icon="icon-download"></md-icon>\n </md-button>\n <md-menu-content width="2">\n <md-menu-item ng-if="vm.downloadPermissions.attachments">\n <md-button ng-click="vm.downloadMessage(message, true)" translate="MAIL.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.downloadMessage(message)" translate="MAIL.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n <md-menu ng-if="message.attach && vm.downloadPermissions.attachments">\n <md-button aria-label="attachments" class="md-icon-button" ng-click="vm.getAttachments(message); $mdOpenMenu($event);">\n <md-tooltip md-direction="bottom"><span translate="MAIL.ATTACHMENTS">Attachments</span></md-tooltip>\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="icon s24"></md-icon>\n <span>{{message.attach}}</span>\n </div>\n </md-button>\n <md-menu-content width="4">\n <div layout="column" layout-align="center center" ng-if="!message.attachments">\n <md-progress-circular md-mode="indeterminate"></md-progress-circular>\n <span translate="MAIL.ATTACHMENTS">Attachments</span>\n </div>\n <md-menu-item ng-if="message.attachments" ng-repeat="attachment in message.attachments">\n <md-button ng-click="vm.getAttachment(attachment)">\n {{ attachment.name || (\'attachment-\' + $index) }}</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n <div flex>\n <md-divider></md-divider>\n </div>\n </div>\n\n <md-content ng-bind-html-unsafe="message.body"></md-content>\n </md-content>\n </md-card>\n </div>\n <div ng-hide="!(vm.BTNLoadMore > 0)" layout="row" layout-align="center center" class="ng-scope layout-align-center-center layout-row">\n <md-button class="md-raised md-accent md-button ng-scope md-default-theme md-ink-ripple" type="button" ng-disabled="!(vm.BTNLoadMore > 0)" ng-click="vm.loadNextPage()" translate="DASHBOARDS.MORE">\n </md-button>\n </div>\n </div>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.loading.html",'<div class="big-circle md-whiteframe-4dp">\n <md-icon class="s128 md-accent" md-font-icon="{{vm.getIconByChannel(vm.tab.channel)}}" ng-class="vm.getColorByChannel(vm.tab.channel) + \'-fg\'"></md-icon>\n</div>\n<span class="app-title" translate="DASHBOARDS.WAITING">Waiting</span>\n<span class="hide show-gt-md secondary-text" translate="DASHBOARDS.LOADING_INTERACTION">We are loading the\n interaction...</span>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.chat.html",'<md-button class="md-icon-button" aria-label="note" ng-click="vm.composeChatInteraction(\'note\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="CHAT.NOTE">Note</span></md-tooltip>\n <md-icon md-font-icon="icon-note-outline" class="icon s24"></md-icon>\n</md-button>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.fax.html",'<md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="reply" ng-click="vm.composeFaxInteraction(\'new\')">\n <md-tooltip md-direction="bottom"><span translate="FAX.REPLY">Reply</span></md-tooltip>\n <md-icon md-font-icon="icon-reply" class="icon s24"></md-icon>\n</md-button>\n<md-button class="md-icon-button" aria-label="Download" ng-click="vm.downloadInteraction(vm.interaction)" ng-if="vm.downloadPermissions.interactions">\n <md-tooltip md-direction="bottom"><span translate="DASHBOARDS.DOWNLOAD">Download</span></md-tooltip>\n <md-icon md-font-icon="icon-download" class="icon s24"></md-icon>\n</md-button>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.html",'<div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <md-icon md-font-icon="{{vm.getIconByChannel(vm.tab.channel)}}" class="s20" ng-class="vm.getColorByChannel(vm.tab.channel) + \'-fg\'"></md-icon>\n <div class="padding-left-10" layout="column" layout-align="center start" flex>\n <div class="font-size-14" layout="row" layout-align="start center" layout-fill>\n <span>#{{vm.interaction.id}} - {{vm.account.key}}</span>\n <div layout="row" layout-align="center center" class="p-8">\n <md-icon ng-if="vm.tab.channel === \'openchannel\' && vm.interaction.threadId" md-font-icon="fas fa-users" class="s16">\n <md-tooltip><span translate="DASHBOARDS.PUBLIC_INTERACTION">The interaction is public</span></md-tooltip>\n </md-icon>\n <md-icon ng-if="vm.interaction.attach" md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n <span class="red-fg padding-left-25" ng-if="vm.interaction.closed" translate="DASHBOARDS.CLOSED">CLOSED</span>\n <span class="green-fg padding-left-25" ng-if="!vm.interaction.closed"><span translate="DASHBOARDS.OPENED">OPENED</span><span ng-if="vm.interaction.substatus"> -\n {{vm.interaction.substatus}}</span></span>\n <div layout="row" layout-align="center center" class="blue-grey-300-fg padding-left-40" ng-if="!vm.interaction.closed">\n <timer start-time="vm.interaction.createdAt"></timer>\n <md-icon md-font-icon="icon-timelapse" class="s16 padding-left-5"></md-icon>\n </div>\n </div>\n <div class="tags" layout="row" layout-align="start center" ng-if="vm.interaction.Tags.length" ng-class="{\'padding-top-5\': vm.interaction.Tags.length}">\n <div class="tag margin-right-5" layout="row" layout-align="center center" ng-repeat="tag in vm.interaction.Tags">\n <div class="tag-color" ng-style="{\'background\': tag.color}"></div>\n <div class="tag-label">{{tag.name}}</div>\n </div>\n </div>\n </div>\n <div layout="row" layout-align="end center">\n <div ng-switch="vm.tab.channel">\n <div ng-switch-when="mail">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.mail.html\'">\n </div>\n </div>\n <div ng-switch-when="fax">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.fax.html\'">\n </div>\n </div>\n <div ng-switch-when="sms">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.sms.html\'">\n </div>\n </div>\n <div ng-switch-when="whatsapp">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.whatsapp.html\'">\n </div>\n </div>\n <div ng-switch-when="chat">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.chat.html\'">\n </div>\n </div>\n <div ng-switch-when="openchannel">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.openchannel.html\'">\n </div>\n </div>\n </div>\n <md-menu ng-if="[\'fax\', \'sms\', \'whatsapp\'].indexOf(vm.tab.channel) < 0 && vm.downloadPermissions.interactions" class="no-margin" md-position-mode="target-right target">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu()" aria-label="download">\n <md-tooltip md-direction="bottom"><span translate="DASHBOARDS.DOWNLOAD">Download</span></md-tooltip>\n <md-icon md-font-icon="icon-download"></md-icon>\n </md-button>\n <md-menu-content width="2">\n <md-menu-item ng-if="vm.downloadPermissions.attachments">\n <md-button ng-click="vm.downloadInteraction(vm.interaction, true)" translate="DASHBOARDS.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.downloadInteraction(vm.interaction)" translate="DASHBOARDS.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n <md-menu class="no-margin" ng-if="!vm.interaction.disposition" md-position-mode="target-right target">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="2">\n\n <md-menu-item ng-if="vm.tab.channel === \'chat\' && !vm.interaction.closed && !vm.tab.spy && vm.account.vidaooEscalation && vm.account.vidaooApiKey">\n <md-button ng-click="vm.createVidaooSession(vm.interaction)" translate="DASHBOARDS.VIDAOOSESSION">\n Start Video Call\n </md-button>\n </md-menu-item>\n\n <md-menu-item>\n <md-button ng-click="vm.tagInteraction()" translate="DASHBOARDS.TAG">\n Tag\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.account.queueTransfer || vm.account.agentTransfer">\n <md-button ng-click="vm.transferLastMessage()" translate="DASHBOARDS.TRANSFER">\n Transfer\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.interaction.closed && vm.tab.channel == \'mail\' && (vm.subStatuses.rows.length || vm.interaction.substatus != null)">\n <md-menu>\n <md-button ng-click="$mdMenu.open()" class="text-capitalize" translate="DASHBOARDS.SET_AS">\n Set as\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if="vm.interaction.substatus != null">\n <md-button ng-click="vm.setAs(null)" translate="DASHBOARDS.NONE">\n None\n </md-button>\n </md-menu-item>\n <md-menu-item ng-repeat="subStatus in vm.subStatuses.rows">\n <md-button ng-click="vm.setAs(subStatus.name)">\n {{subStatus.name}}\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item ng-if="!vm.interaction.closed && vm.tab.channel == \'mail\' && vm.account.markAsUnread">\n <md-button ng-click="vm.markAsUnread()" translate="DASHBOARDS.MARK_AS_UNREAD">\n Unread\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.tab.spy && !vm.interaction.closed">\n <md-button ng-click="vm.disposeInteraction()" translate="DASHBOARDS.CLOSE_AND_DISPOSE">\n Close and Dispose\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.tab.spy && vm.interaction.closed && !vm.interaction.disposition">\n <md-button ng-click="vm.disposeInteraction(ev)" translate="DASHBOARDS.DISPOSE">\n Dispose\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.mail.html",'<div class="interaction-reply-button-container">\n <md-tooltip md-direction="bottom"><span translate="DASHBOARDS.DRAFT">Draft</span></md-tooltip>\n <md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="draft" ng-disabled="!vm.draft" ng-click="vm.openDraft()">\n <md-icon ng-cloak md-font-icon="icon-pencil-box" class="icon s24" ng-class="vm.draft ? \'red-500-fg\' : \'grey-fg\'"></md-icon>\n </md-button>\n</div>\n<md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="reply" ng-click="vm.composeMailInteraction(\'reply\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.REPLY">Reply</span></md-tooltip>\n <md-icon md-font-icon="icon-reply" class="icon s24"></md-icon>\n</md-button>\n<md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="replyAll" ng-click="vm.composeMailInteraction(\'replyAll\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.REPLY_ALL">Reply All</span></md-tooltip>\n <md-icon md-font-icon="icon-reply-all" class="icon s24"></md-icon>\n</md-button>\n<md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="forward" ng-click="vm.composeMailInteraction(\'forward\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.FORWARD">Forward</span></md-tooltip>\n <md-icon md-font-icon="icon-forward" class="icon s24"></md-icon>\n</md-button>\n<md-button class="md-icon-button" aria-label="note" ng-click="vm.composeMailInteraction(\'note\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.NOTE">Note</span></md-tooltip>\n <md-icon md-font-icon="icon-note-outline" class="icon s24"></md-icon>\n</md-button>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.openchannel.html",'<md-button class="md-icon-button" aria-label="note" ng-click="vm.composeOpenchannelInteraction(\'note\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="OPENCHANNEL.NOTE">Note</span></md-tooltip>\n <md-icon md-font-icon="icon-note-outline" class="icon s24"></md-icon>\n</md-button>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.sms.html",'<md-button class="md-icon-button" aria-label="note" ng-click="vm.composeSmsInteraction(\'note\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="SMS.NOTE">Note</span></md-tooltip>\n <md-icon md-font-icon="icon-note-outline" class="icon s24"></md-icon>\n</md-button>\n<md-button class="md-icon-button" aria-label="Download" ng-click="vm.downloadInteraction(vm.interaction)" ng-if="vm.downloadPermissions.interactions">\n <md-tooltip md-direction="bottom"><span translate="DASHBOARDS.DOWNLOAD">Download</span></md-tooltip>\n <md-icon md-font-icon="icon-download" class="icon s24"></md-icon>\n</md-button>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.whatsapp.html",'<md-button class="md-icon-button" aria-label="note" ng-click="vm.composeWhatsappInteraction(\'note\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="WHATSAPP.NOTE">Note</span></md-tooltip>\n <md-icon md-font-icon="icon-note-outline" class="icon s24"></md-icon>\n</md-button>\n<md-button class="md-icon-button" aria-label="Download" ng-click="vm.downloadInteraction(vm.interaction)" ng-if="vm.downloadPermissions.interactions">\n <md-tooltip md-direction="bottom"><span translate="DASHBOARDS.DOWNLOAD">Download</span></md-tooltip>\n <md-icon md-font-icon="icon-download" class="icon s24"></md-icon>\n</md-button>'),e.put("app/main/apps/dashboards/views/general/agent/jscripty/agent.general.jscripty.html",'<md-content class="md-padding" layout="column" layout-align="center center">\n <div layout="row" layout-align="center center">\n <span ng-if="!vm.tab.saved" class="text-boxed md-green-bg">\n <timer start-time="vm.starttime"></timer>\n </span>\n <span ng-if="vm.contact" class="text-boxed md-gray-bg font-weight-900">{{vm.contact.firstName}} {{vm.contact.lastName}} {{vm.contact.phone}}</span>\n <md-button ng-if="vm.showResetButton" ng-click="vm.resetViewer()" md-no-ink class="md-raised md-accent orange-bg">\n <md-icon md-font-icon="icon-rotate-left" class="icon s16"></md-icon> {{\'JSCRIPTY.RESET_SESSION\' | translate}}\n </md-button>\n <md-button ng-if="vm.contact" ng-click="vm.openContact($event, vm.contact)" md-no-ink class="md-raised md-accent" translate="JSCRIPTY.OPEN_CONTACT"></md-button>\n <md-button ng-if="vm.showIncompleteSubmitButton" ng-click="vm.onSubmit($event, true)" md-no-ink class="md-raised md-accent green-bg" translate="JSCRIPTY.SUBMIT"></md-button>\n </div>\n <h1 ng-if="!vm.project.formData"><span translate="JSCRIPTY.PROJECT_NOT_AVAILABLE">Project is not available. Please contact the administrator</span></h1>\n <mw-form-viewer ng-if="vm.project.formData" form-data="vm.project.formData" response-data="vm.project.responseData" on-submit="vm.onSubmit($event)" template-data="call" api="vm.formViewer"></mw-form-viewer>\n</md-content>'),e.put("app/main/apps/dashboards/views/general/agent/notification/dialog.html",'\x3c!-- <md-toast> --\x3e\n<div class="md-padding" layout="column" layout-align="center center">\n <span class="md-title">#{{vm.notification.id}} {{vm.notification.title}}</span>\n <span class="md-subhead" ng-if="vm.notification.queue">{{vm.notification.queue}}</span>\n <div class="padding-top-5" layout="row">\n <md-button class="md-raised md-accent" ng-click="vm.accept($event)" translate="DASHBOARDS.ACCEPT">\n ACCEPT\n </md-button>\n <md-button class="md-raised md-warn" ng-click="vm.reject($event)" translate="DASHBOARDS.REJECT">\n REJECT\n </md-button>\n </div>\n</div>\n\x3c!-- </md-toast> --\x3e'),e.put("app/main/apps/dashboards/views/general/agent/popup/agent.general.popup.html",'<md-content class="md-padding" flex>\n <div ng-if="vm.html" ng-bind-html="vm.html"></div>\n <h1 ng-if="!vm.html">Template is empty. Please contact the administrator</h1>\n</md-content>'),e.put("app/main/apps/dashboards/views/general/user/chat/user.general.chat.html",'\x3c!-- WIDGET INBOUND --\x3e\n<div class="dashboard-container md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-hangouts" class="m-0 mr-16"></md-icon>\n <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_INTERACTIONS_STATS">Today Interactions STATS</div>\n </div>\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-52 line-height-72">\n {{vm.inbound.waiting || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.WAITING\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.WAITING_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.WAITING\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="orange-fg font-size-52 line-height-72">\n {{vm.inbound.talking || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.OPENED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.OPENED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.OPENED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-52 line-height-72">\n {{vm.inbound.answered || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.MANAGED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.MANAGED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.MANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-grey-fg font-size-52 line-height-72">\n {{vm.inbound.abandoned || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.ABANDONED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.ABANDONED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.ABANDONED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.total || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.TOTAL_OFFERED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.TOTAL_OFFERED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.TOTAL_OFFERED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-42 line-height-72">\n {{ vm.inbound.avgHoldTime || \'00:00:00\' }}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.AVG_HOLD_TIME\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.AVG_HOLD_TIME_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.AVG_HOLD_TIME\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="orange-fg font-size-42 line-height-72">\n {{ vm.inbound.avgTalkTime || \'00:00:00\' }}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.AVG_MANAGED_TIME\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.AVG_MANAGED_TIME_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.AVG_MANAGED_TIME\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-42 line-height-72">\n {{ vm.inbound.answerRate || 0 }}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.MANAGED_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.MANAGED_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.MANAGED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-grey-fg font-size-42 line-height-72">\n {{ vm.inbound.abandonRate || 0 }}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.ABANDONED_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.ABANDONED_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.ABANDONED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.unmanaged || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.UNMANAGED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.UNMANAGED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.UNMANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET INBOUND --\x3e'),e.put("app/main/apps/dashboards/views/general/user/dialer/user.general.dialer.html",'\x3c!-- WIDGET INBOUND --\x3e\n<div class="dashboard-container md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-phone-outgoing" class="m-0 mr-16"></md-icon>\n <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_MOTION_BULL_STATS">Today Motion Bull STATS</div>\n </div>\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-timelapse"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-52 line-height-72">\n {{vm.inbound.waiting || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_WAITING\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_WAITING_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.VOICE_WAITING\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-phone-in-talk"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="orange-fg font-size-52 line-height-72">\n {{(vm.inbound.talking || 0) + (vm.inbound.pTalking || 0)}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_TALKING\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_TALKING_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.VOICE_TALKING\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-phone"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-52 line-height-72">\n {{vm.inbound.answered || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_ANSWERED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_ANSWERED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.VOICE_ANSWERED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-phone-missed"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-grey-fg font-size-52 line-height-72">\n {{vm.inbound.outboundDropCallsDayCallersExit || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_ABANDONED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_ABANDONED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.ABANDON_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-phone-outgoing"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.outboundDropCallsDayTimeout || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.DROPPED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.DROPPED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.DROPPED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-phone-dots"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.originated || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.ORIGINATED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.ORIGINATED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.ORIGINATED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-phone-in-talk"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="orange-fg font-size-42 line-height-72">\n {{ vm.inbound.avgTalkTime || \'00:00:00\' }}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_AVG_TALK_TIME\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_AVG_TALK_TIME_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.VOICE_AVG_TALK_TIME\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-percent"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-42 line-height-72">\n {{ vm.inbound.outboundanswerRate || 0 |number : 1}}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_ANSWER_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_ANSWER_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.VOICE_ANSWER_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-percent"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-grey-fg font-size-42 line-height-72">\n {{ vm.inbound.outboundAbandonRate || 0}}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_ABANDON_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_ABANDON_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.VOICE_ABANDON_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-percent"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-grey-fg font-size-42 line-height-72">\n {{ vm.inbound.outboundDropRate }}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.DROP_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.DROP_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.DROP_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET OUTBOUND --\x3e\n\n\x3c!-- WIDGET INBOUND --\x3e\n<div class="dashboard-container md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-phone-outgoing" class="m-0 mr-16"></md-icon>\n <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_IVR_CAMPAIGNS_STATS">Today IVR campaigns stats</div>\n </div>\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-phone-dots"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.ivr.originated || 0}}/{{vm.ivr.limitCalls || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.ORIGINATED\' | translate | uppercase}}/{{\'DASHBOARDS.LIMITED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.LIMITED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.ORIGINATEDLIMITED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET IVR --\x3e'),e.put("app/main/apps/dashboards/views/general/user/fax/user.general.fax.html",'\x3c!-- WIDGET INBOUND --\x3e\n<div class="dashboard-container md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-deskphone" class="m-0 mr-16"></md-icon>\n <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_INTERACTIONS_STATS">Today Interactions STATS</div>\n </div>\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-52 line-height-72">\n {{vm.inbound.waiting || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.WAITING\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.WAITING_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.WAITING\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="orange-fg font-size-52 line-height-72">\n {{vm.inbound.talking || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.OPENED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.OPENED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.OPENED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-52 line-height-72">\n {{vm.inbound.answered || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.MANAGED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.MANAGED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.MANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.unmanaged || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.UNMANAGED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.UNMANAGED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.UNMANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.total || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.TOTAL_OFFERED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.TOTAL_OFFERED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.TOTAL_OFFERED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="50">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-42 line-height-72">\n {{ vm.inbound.avgHoldTime || \'00:00:00\' }}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.AVG_HOLD_TIME\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.AVG_HOLD_TIME_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.AVG_HOLD_TIME\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-42 line-height-72">\n {{ vm.inbound.answerRate || 0 }}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.MANAGED_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.MANAGED_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.MANAGED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-grey-fg font-size-42 line-height-72">\n {{ vm.inbound.abandonRate || 0 }}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.UNMANAGED_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.UNMANAGED_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.UNMANAGED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET INBOUND --\x3e'),e.put("app/main/apps/dashboards/views/general/user/mail/user.general.mail.html",'\x3c!-- WIDGET INBOUND --\x3e\n<div class="dashboard-container md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-email" class="m-0 mr-16"></md-icon>\n <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_INTERACTIONS_STATS">Today Interactions STATS</div>\n </div>\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-52 line-height-72">\n {{vm.inbound.waiting || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.WAITING\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.WAITING_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.WAITING\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="orange-fg font-size-52 line-height-72">\n {{vm.inbound.talking || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.OPENED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.OPENED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.OPENED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-52 line-height-72">\n {{vm.inbound.answered || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.MANAGED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.MANAGED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.MANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.unmanaged || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.UNMANAGED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.UNMANAGED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.UNMANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.total || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.TOTAL_OFFERED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.TOTAL_OFFERED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.TOTAL_OFFERED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="50">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-42 line-height-72">\n {{ vm.inbound.avgHoldTime || \'00:00:00\' }}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.AVG_HOLD_TIME\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.AVG_HOLD_TIME_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.AVG_HOLD_TIME\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-42 line-height-72">\n {{ vm.inbound.answerRate || 0 }}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.MANAGED_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.MANAGED_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.MANAGED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-grey-fg font-size-42 line-height-72">\n {{ vm.inbound.abandonRate || 0 }}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.UNMANAGED_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.UNMANAGED_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.UNMANAGED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET INBOUND --\x3e'),e.put("app/main/apps/dashboards/views/general/user/openchannel/user.general.openchannel.html",'\x3c!-- WIDGET INBOUND --\x3e\n<div class="dashboard-container md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-google-earth" class="m-0 mr-16"></md-icon>\n <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_INTERACTIONS_STATS">Today Interactions STATS</div>\n </div>\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-52 line-height-72">\n {{vm.inbound.waiting || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.WAITING\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.WAITING_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.WAITING\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="orange-fg font-size-52 line-height-72">\n {{vm.inbound.talking || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.OPENED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.OPENED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.OPENED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-52 line-height-72">\n {{vm.inbound.answered || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.MANAGED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.MANAGED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.MANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.unmanaged || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.UNMANAGED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.UNMANAGED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.UNMANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.total || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.TOTAL_OFFERED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.TOTAL_OFFERED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.TOTAL_OFFERED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="50">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-42 line-height-72">\n {{ vm.inbound.avgHoldTime || \'00:00:00\' }}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.AVG_HOLD_TIME\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.AVG_HOLD_TIME_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.AVG_HOLD_TIME\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-42 line-height-72">\n {{ vm.inbound.answerRate || 0 }}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.MANAGED_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.MANAGED_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.MANAGED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-grey-fg font-size-42 line-height-72">\n {{ vm.inbound.abandonRate || 0 }}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.UNMANAGED_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.UNMANAGED_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.UNMANAGED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET INBOUND --\x3e'),e.put("app/main/apps/dashboards/views/general/user/sms/user.general.sms.html",'\x3c!-- WIDGET INBOUND --\x3e\n<div class="dashboard-container md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-message-text" class="m-0 mr-16"></md-icon>\n <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_INTERACTIONS_STATS">Today Interactions STATS</div>\n </div>\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-52 line-height-72">\n {{vm.inbound.waiting || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.WAITING\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.WAITING_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.WAITING\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="orange-fg font-size-52 line-height-72">\n {{vm.inbound.talking || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.OPENED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.OPENED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.OPENED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-52 line-height-72">\n {{vm.inbound.answered || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.MANAGED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.MANAGED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.MANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.unmanaged || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.UNMANAGED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.UNMANAGED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.UNMANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.total || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.TOTAL_OFFERED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.TOTAL_OFFERED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.TOTAL_OFFERED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="50">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-42 line-height-72">\n {{ vm.inbound.avgHoldTime || \'00:00:00\' }}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.AVG_HOLD_TIME\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.AVG_HOLD_TIME_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.AVG_HOLD_TIME\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-42 line-height-72">\n {{ vm.inbound.answerRate || 0 }}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.MANAGED_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.MANAGED_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.MANAGED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-grey-fg font-size-42 line-height-72">\n {{ vm.inbound.abandonRate || 0 }}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.UNMANAGED_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.UNMANAGED_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.UNMANAGED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET INBOUND --\x3e'),e.put("app/main/apps/dashboards/views/general/user/user.general.html",'<div id="dashboard-general" ng-init="vm.onInit()" class="page-layout simple right-sidenav" layout="row">\n \x3c!-- CENTER --\x3e\n <div class="center" flex ms-scroll>\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs ng-if="vm.hasDashboardPermissions" md-selected="vm.selectedTab" md-dynamic-height>\n <md-tab ng-if="vm.license.voice" label="{{\'DASHBOARDS.VOICE\' | translate}}" ui-sref="app.dashboards.general.voice">\n <div ui-view="voice"></div>\n </md-tab>\n <md-tab ng-if="vm.license.dialer" label="{{\'DASHBOARDS.MOTIONDIALER\' | translate}}" ui-sref="app.dashboards.general.dialer">\n <div ui-view="dialer"></div>\n </md-tab>\n <md-tab ng-if="vm.license.chat" label="{{\'DASHBOARDS.CHAT\' | translate}}" ui-sref="app.dashboards.general.chat">\n <div ui-view="chat"></div>\n </md-tab>\n <md-tab ng-if="vm.license.mail" label="{{\'DASHBOARDS.MAIL\' | translate}}" ui-sref="app.dashboards.general.mail">\n <div ui-view="mail"></div>\n </md-tab>\n <md-tab ng-if="vm.license.messaging" label="{{\'DASHBOARDS.SMS\' | translate}}" ui-sref="app.dashboards.general.sms">\n <div ui-view="sms"></div>\n </md-tab>\n <md-tab ng-if="vm.license.openchannel" label="{{\'DASHBOARDS.OPENCHANNEL\' | translate}}" ui-sref="app.dashboards.general.openchannel">\n <div ui-view="openchannel"></div>\n </md-tab>\n <md-tab ng-if="vm.license.fax" label="{{\'DASHBOARDS.FAX\' | translate}}" ui-sref="app.dashboards.general.fax">\n <div ui-view="fax"></div>\n </md-tab>\n <md-tab ng-if="vm.license.whatsapp" label="{{\'DASHBOARDS.WHATSAPP\' | translate}}" ui-sref="app.dashboards.general.whatsapp">\n <div ui-view="whatsapp"></div>\n </md-tab>\n </md-tabs>\n </div>\n \x3c!-- END CONTENT --\x3e\n\n <md-content ng-if="!vm.hasDashboardPermissions" layout="row" layout-align="space-around center" flex layout-padding layout-wrap>\n <div layout="column" layout-align="space-around center" flex="50">\n <span class="font-size-40 text-center">{{ \'DASHBOARDS.WELCOME_TO_MOTION\' | translate }}!</span>\n <span class="font-size-30 text-center" translate="DASHBOARDS.WELCOME_MESSAGE">Use the left sidebar to\n navigate through available sections.</span>\n </div>\n\n <div layout="column" flex="50">\n <img src="assets/images/avatars/permissions.png" alt="permissions">\n </div>\n </md-content>\n </div>\n</div>'),e.put("app/main/apps/dashboards/views/general/user/voice/user.general.voice.html",'\x3c!-- WIDGET INBOUND --\x3e\n<div class="dashboard-container md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-phone-incoming" class="m-0 mr-16"></md-icon>\n <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_INBOUND_STATS">Today Inbound STATS</div>\n </div>\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-timelapse"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-52 line-height-72">\n {{vm.inbound.waiting || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_WAITING\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_WAITING_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.VOICE_WAITING\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-phone-in-talk"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="orange-fg font-size-52 line-height-72">\n {{vm.inbound.talking || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_TALKING\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_TALKING_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.VOICE_TALKING\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-phone"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-52 line-height-72">\n {{vm.inbound.answered || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_ANSWERED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_ANSWERED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.VOICE_ANSWERED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-phone-missed"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-grey-fg font-size-52 line-height-72">\n {{vm.inbound.abandoned || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_ABANDONED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_ABANDONED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.VOICE_ABANDONED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-phone-incoming"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.total || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_TOTAL_OFFERED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_TOTAL_OFFERED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.VOICE_TOTAL_OFFERED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-timer-sand"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-42 line-height-72">\n {{ vm.inbound.avgHoldTime || \'00:00:00\' }}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_AVG_HOLD_TIME\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_AVG_HOLD_TIME_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.VOICE_AVG_HOLD_TIME\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-phone-in-talk"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="orange-fg font-size-42 line-height-72">\n {{ vm.inbound.avgTalkTime || \'00:00:00\' }}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_AVG_TALK_TIME\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_AVG_TALK_TIME_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.VOICE_AVG_TALK_TIME\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-percent"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-42 line-height-72">\n {{ vm.inbound.answerRate || 0 }}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_ANSWER_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_ANSWER_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.VOICE_ANSWER_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-percent"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-grey-fg font-size-42 line-height-72">\n {{ vm.inbound.abandonRate || 0 }}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_ABANDON_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_ABANDON_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.ABANDON_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-phone-dots"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.unmanaged || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_UNMANAGED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_UNMANAGED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.VOICE_UNMANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET INBOUND --\x3e\n\n\x3c!-- WIDGET OUTBOUND --\x3e\n<div class="dashboard-container md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-phone-outgoing" class="m-0 mr-16"></md-icon>\n <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_OUTBOUND_STATS">Today Outbound STATS</div>\n </div>\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-phone-outgoing"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-52 line-height-72">\n {{vm.outbound.total || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.TOTAL\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.TOTAL_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.TOTAL\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-phone"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-52 line-height-72">\n {{vm.outbound.answered || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.OUTBOUND_ANSWERED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.OUTBOUND_ANSWERED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.OUTBOUND_ANSWERED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-clock"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="orange-fg font-size-42 line-height-72">\n {{vm.outbound.sumDuration || 0 | secToTime | date:\'HH:mm:ss\'}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.TOT_DURATION\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.TOT_DURATION_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.TOT_DURATION\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-division"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-grey-fg font-size-42 line-height-72">\n {{vm.outbound.total ? ((vm.outbound.sumDuration / vm.outbound.total) | number: 0) : 0 | secToTime | date:\'HH:mm:ss\'}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.AVG_DURATION\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.AVG_DURATION_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.AVG_DURATION\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-percent"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-42 line-height-72">\n {{vm.outbound.total ? (vm.outbound.answered / vm.outbound.total * 100) : 0 | number: 1}}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.OUTBOUND_ANSWER_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.OUTBOUND_ANSWER_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.OUTBOUND_ANSWER_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET OUTBOUND --\x3e'),e.put("app/main/apps/dashboards/views/general/user/whatsapp/user.general.whatsapp.html",'\x3c!-- WIDGET INBOUND --\x3e\n<div class="dashboard-container md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-whatsapp" class="m-0 mr-16"></md-icon>\n <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_INTERACTIONS_STATS">Today Interactions STATS</div>\n </div>\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-52 line-height-72">\n {{vm.inbound.waiting || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.WAITING\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.WAITING_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.WAITING\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="orange-fg font-size-52 line-height-72">\n {{vm.inbound.talking || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.OPENED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.OPENED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.OPENED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-52 line-height-72">\n {{vm.inbound.answered || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.MANAGED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.MANAGED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.MANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.unmanaged || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.UNMANAGED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.UNMANAGED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.UNMANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.total || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.TOTAL_OFFERED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.TOTAL_OFFERED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.TOTAL_OFFERED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="50">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-42 line-height-72">\n {{ vm.inbound.avgHoldTime || \'00:00:00\' }}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.AVG_HOLD_TIME\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.AVG_HOLD_TIME_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.AVG_HOLD_TIME\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-42 line-height-72">\n {{ vm.inbound.answerRate || 0 }}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.MANAGED_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.MANAGED_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.MANAGED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-grey-fg font-size-42 line-height-72">\n {{ vm.inbound.abandonRate || 0 }}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.UNMANAGED_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.UNMANAGED_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.UNMANAGED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET INBOUND --\x3e'),e.put("app/main/apps/fax/views/faxAccounts/create/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="FAX.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.faxAccount.name" ng-required="true" autofocus>\n\n <div ng-messages="faxAccountForm[\'name\'].$error" ng-show="faxAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.KEY">key</label>\n <input type="text" name="key" ng-model="vm.faxAccount.key" md-maxlength="5" ng-required="true">\n\n <div ng-messages="faxAccountForm[\'key\'].$error" ng-show="faxAccountForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="FAX.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.TRUNK">trunk</label>\n <md-select name="TrunkId" ng-model="vm.faxAccount.TrunkId" required>\n <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks" ng-disabled="TrunkId.canSelect === false">{{ TrunkId.name }}</md-option>\n </md-select>\n <div ng-messages="faxAccountForm[\'TrunkId\'].$error" ng-show="faxAccountForm[\'TrunkId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.TRUNK_REQUIRED">trunk field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.LOCALSTATIONID">localstationid</label>\n <input type="text" name="localstationid" ng-model="vm.faxAccount.localstationid" ng-required="true">\n\n <div class="hint"><span translate="FAX.HELP.LOCALSTATIONID"></span></div>\n <div ng-messages="faxAccountForm[\'localstationid\'].$error" ng-show="faxAccountForm[\'localstationid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.LOCALSTATIONID_REQUIRED">localstationid field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.LIST">List</label>\n <md-select name="ListId" ng-model="vm.faxAccount.ListId" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div ng-messages="faxAccountForm[\'ListId\'].$error" ng-show="faxAccountForm[\'ListId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.faxAccount.description">\n\n <div ng-messages="faxAccountForm[\'description\'].$error" ng-show="faxAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newFaxAccount" ng-click="vm.saveFaxAccount()" class="send-button md-accent md-raised" ng-disabled="faxAccountForm.$invalid || faxAccountForm.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newFaxAccount" ng-click="vm.addNewFaxAccount()" class="send-button md-accent md-raised" ng-disabled="faxAccountForm.$invalid" aria-label="ADD" translate="FAX.ADD_FAXACCOUNT" translate-attr-aria-label="FAX.ADD_FAXACCOUNT">\n ADD FAXACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newFaxAccount" ng-click="vm.deleteFaxAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="FAX.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="FAX.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/agentadd/agentadd.html",'<md-dialog class="faxAccount-dialog" aria-label="faxAccount" ng-init="vm.onInit()">\n <form name="faxAccountForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="FAX.AGENTADD_FAXACCOUNT">Add Agent to faxAccount</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/agent/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="FAX.AGENT">Agent</label>\n <md-select name="agent" ng-model="vm.agent.agent" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="agent.name" ng-repeat="agent in vm.agents" ng-disabled="agent.canSelect === false">{{ agent.name }}</md-option>\n </md-select>\n <div ng-messages="faxAccountFormApp[\'agent\'].$error" ng-show="faxAccountFormApp[\'agent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.agent.timeout" min="0" max="2147483" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="faxAccountFormApp[\'timeout\'].$error" ng-show="faxAccountFormApp[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="FAX.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/close/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="FAX.DISPOSITION">Disposition</label>\n <input type="text" name="disposition" ng-model="vm.close.disposition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="faxAccountFormApp[\'disposition\'].$error" ng-show="faxAccountFormApp[\'disposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.DISPOSITION_REQUIRED">Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/gotoif/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="FAX.CONDITION">Condition</label>\n <input type="text" name="condition" ng-model="vm.gotoif.condition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="faxAccountFormApp[\'condition\'].$error" ng-show="faxAccountFormApp[\'condition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.CONDITION_REQUIRED">Condition field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.TRUEPRIORITY">truepriority</label>\n <input type="number" name="truepriority" ng-model="vm.gotoif.truepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="faxAccountFormApp[\'truepriority\'].$error" ng-show="faxAccountFormApp[\'truepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.TRUEPRIORITY_REQUIRED">truepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">truepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.FALSEPRIORITY">falsepriority</label>\n <input type="number" name="falsepriority" ng-model="vm.gotoif.falsepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="faxAccountFormApp[\'falsepriority\'].$error" ng-show="faxAccountFormApp[\'falsepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.FALSEPRIORITY_REQUIRED">falsepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">falsepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/gotop/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="FAX.PRIORITY">Priority</label>\n <input type="number" name="priority" ng-model="vm.gotop.priority" min="0" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="faxAccountFormApp[\'priority\'].$error" ng-show="faxAccountFormApp[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Priority must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/interval/dialog.html",'<md-dialog class="interval-dialog" aria-label="New Interval">\n <form name="intervalForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select ng-model="vm.type" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="type" ng-repeat=\'type in vm.types\'>{{ type | ucfirst }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.type === \'list\'">\n <label translate="TOOLS.INTERVALS">Intervals</label>\n <md-select ng-model="vm.interval.IntervalId" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals">{{ interval.name }}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!-- TIMERANGE START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.TIME_RANGE">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <div class="md-block" flex>\n <mdp-time-picker name="timeRangeFrom" mdp-placeholder="FROM" ng-model="vm.timeRangeFrom" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <div ng-messages="intervalForm.timeRangeFrom.$error" ng-show="intervalForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_FROM_INVALID">Time Range From field is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n <div class="md-block" flex ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_INVALID">Time Range To field is invalid</span>\n </div>\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </div>\n \x3c!-- TIMERANGE END --\x3e\n\n \x3c!-- DAYSOFWEEK START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.WEEK_DAYS">Week Days</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.dayOfWeekFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container flex class="md-block" ng-if="vm.dayOfWeekFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="dayOfWeekTo" ng-model="vm.dayOfWeekTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- DAYSOFWEEK END --\x3e\n\n \x3c!-- MONTHDAY START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTH_DAYS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthDayFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthDayFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthDayTo" ng-model="vm.monthDayTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTHDAY END --\x3e\n\n \x3c!-- MONTH START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTHS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n </md-select>\n\n </md-input-container>\n\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthTo" ng-model="vm.monthTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTH END --\x3e\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="!vm.newInterval && vm.crudPermissions.canEdit" ng-click="vm.saveInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid || intervalForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.newInterval && vm.crudPermissions.canEdit" ng-click="vm.addNewInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_INTERVAL" translate-attr-aria-label="TOOLS.ADD_INTERVAL">\n ADD INTERVAL\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/noop/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="FAX.VALUE">Value</label>\n <input type="text" name="value" ng-model="vm.noop.value" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="faxAccountFormApp[\'value\'].$error" ng-show="faxAccountFormApp[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/queue/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="FAX.QUEUE">Queue</label>\n <md-select name="queue" ng-model="vm.queue.queue" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="queue.name" ng-repeat="queue in vm.queues" ng-disabled="queue.canSelect === false">{{ queue.name }}</md-option>\n </md-select>\n <div ng-messages="faxAccountFormApp[\'queue\'].$error" ng-show="faxAccountFormApp[\'queue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.queue.timeout" min="0" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="faxAccountFormApp[\'timeout\'].$error" ng-show="faxAccountFormApp[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="FAX.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/system/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="FAX.COMMAND">Command</label>\n <input type="text" name="command" ng-model="vm.system.command" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="faxAccountFormApp[\'command\'].$error" ng-show="faxAccountFormApp[\'command\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.COMMAND_REQUIRED">Command field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.VARIABLE">Variable</label>\n <md-select name="variable" ng-model="vm.system.variable" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables" ng-disabled="variable.canSelect === false">{{ variable.name }}</md-option>\n </md-select>\n <div ng-messages="faxAccountFormApp[\'variable\'].$error" ng-show="faxAccountFormApp[\'variable\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.VARIABLE_REQUIRED">Variable field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/tag/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="FAX.TAG">Tag</label>\n <md-select name="tag" ng-model="vm.tag.tag" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags" ng-disabled="tag.canSelect === false">{{ tag.name }}</md-option>\n </md-select>\n <div ng-messages="faxAccountFormApp[\'tag\'].$error" ng-show="faxAccountFormApp[\'tag\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.TAG_REQUIRED">Tag field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/view.html",'<div id="fax-faxAccount" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-faxAccounts-button md-icon-button" aria-label="Go to faxAccounts" ng-click="vm.gotoFaxAccounts()" translate translate-attr-aria-label="FAX.GO_TO_FAXACCOUNTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="faxAccount-image" hide-xs>\n <img ng-src="assets/images/business/faxAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.faxAccount.id}}\n <span ng-if="vm.faxAccount.name">{{vm.faxAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="FAX.CREATED_AT"></span> <span>{{vm.faxAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.gotogoto(vm.faxAccount, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n <md-tooltip><span translate="FAX.GOTO_FAXACCOUNT"></span></md-tooltip>\n <md-icon md-font-icon="icon-cast"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.faxAccount, $event)" class="md-fab md-warn md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="FAX.AGENTADD_FAXACCOUNT"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveFaxAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (notificationForm.$invalid) || (transferForm.$invalid) || (advancedForm.$invalid) || (dispositionForm.$invalid) || (faxDispositionsForm.$invalid) || (actionsForm.$invalid) || (interactionsForm.$invalid)" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="FAX.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="faxAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="FAX.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="FAX.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.faxAccount.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.KEY">key</label>\n <input type="text" name="key" ng-model="vm.faxAccount.key" md-maxlength="5" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'key\'].$error" ng-show="generalForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="FAX.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.HEADERINFO">headerinfo</label>\n <input type="text" name="headerinfo" ng-model="vm.faxAccount.headerinfo" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="FAX.HELP.HEADERINFO"></span></div>\n <div ng-messages="generalForm[\'headerinfo\'].$error" ng-show="generalForm[\'headerinfo\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.HEADERINFO_REQUIRED">headerinfo field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.TRUNK">trunk</label>\n <md-select name="TrunkId" ng-model="vm.faxAccount.TrunkId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks" ng-disabled="TrunkId.canSelect === false">{{ TrunkId.name }}</md-option>\n </md-select>\n <div ng-messages="generalForm[\'TrunkId\'].$error" ng-show="generalForm[\'TrunkId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.TRUNK_REQUIRED">trunk field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.LOCALSTATIONID">localstationid</label>\n <input type="text" name="localstationid" ng-model="vm.faxAccount.localstationid" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="FAX.HELP.LOCALSTATIONID"></span></div>\n <div ng-messages="generalForm[\'localstationid\'].$error" ng-show="generalForm[\'localstationid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.LOCALSTATIONID_REQUIRED">localstationid field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.LIST">List</label>\n <md-select name="ListId" ng-model="vm.faxAccount.ListId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div ng-messages="generalForm[\'ListId\'].$error" ng-show="generalForm[\'ListId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.WAITFORTHEASSIGNEDAGENT">WaitForTheAssignedAgent</label>\n <input type="number" name="waitForTheAssignedAgent" ng-model="vm.faxAccount.waitForTheAssignedAgent" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'waitForTheAssignedAgent\'].$error" ng-show="generalForm[\'waitForTheAssignedAgent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.WAITFORTHEASSIGNEDAGENT_REQUIRED">WaitForTheAssignedAgent field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="FAX.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.faxAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="faxAccount-detail-form-container notification md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="FAX.NOTIFICATION">NOTIFICATION</div>\n </div>\n <form name="notificationForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.faxAccount.notificationSound" aria-label="notificationSound" ng-disabled="!vm.crudPermissions.canEdit"><span translate="FAX.NOTIFICATIONSOUND">notificationSound</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.faxAccount.notificationShake" aria-label="notificationShake" ng-disabled="!vm.crudPermissions.canEdit"><span translate="FAX.NOTIFICATIONSHAKE">notificationShake</span></md-switch>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="FAX.NOTIFICATIONTEMPLATE">notificationTemplate</label>\n <textarea aria-label="notificationTemplate notificationTemplate" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', removePlugins: \'magicline\' }" ng-model="vm.faxAccount.notificationTemplate"></textarea>\n </div>\n\n </form>\n </div>\n <div class="faxAccount-detail-form-container transfer md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="FAX.TRANSFER">TRANSFER</div>\n </div>\n <form name="transferForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.faxAccount.queueTransfer" aria-label="queueTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="FAX.QUEUETRANSFER">queueTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.faxAccount.queueTransfer == true" class="md-block">\n <label translate="FAX.QUEUETRANSFERTIMEOUT">queueTransferTimeout</label>\n <input type="number" name="queueTransferTimeout" ng-model="vm.faxAccount.queueTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'queueTransferTimeout\'].$error" ng-show="transferForm[\'queueTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.QUEUETRANSFERTIMEOUT_REQUIRED">queueTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="FAX.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.faxAccount.agentTransfer" aria-label="agentTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="FAX.AGENTTRANSFER">agentTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.faxAccount.agentTransfer == true" class="md-block">\n <label translate="FAX.AGENTTRANSFERTIMEOUT">agentTransferTimeout</label>\n <input type="number" name="agentTransferTimeout" ng-model="vm.faxAccount.agentTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'agentTransferTimeout\'].$error" ng-show="transferForm[\'agentTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.AGENTTRANSFERTIMEOUT_REQUIRED">agentTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="FAX.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="FAX.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <md-tab-body>\n <div class="faxAccount-detail-form-container advanced md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="FAX.ADVANCED">ADVANCED</div>\n </div>\n <form name="advancedForm" novalidate>\n <md-input-container class="md-block">\n <label translate="FAX.ECM">ECM</label>\n <md-select name="ecm" ng-model="vm.faxAccount.ecm" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'yes\'">yes</md-option>\n <md-option ng-value="\'no\'">no</md-option>\n </md-select>\n <div class="hint"><span translate="FAX.HELP.ECM"></span></div>\n <div ng-messages="advancedForm[\'ecm\'].$error" ng-show="advancedForm[\'ecm\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.ECM_REQUIRED">ECM field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.MINRATE">minrate</label>\n <md-select name="minrate" ng-model="vm.faxAccount.minrate" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'2400\'">2400</md-option>\n <md-option ng-value="\'4800\'">4800</md-option>\n <md-option ng-value="\'7200\'">7200</md-option>\n <md-option ng-value="\'9600\'">9600</md-option>\n <md-option ng-value="\'12000\'">12000</md-option>\n <md-option ng-value="\'14400\'">14400</md-option>\n </md-select>\n <div class="hint"><span translate="FAX.HELP.MINRATE"></span></div>\n <div ng-messages="advancedForm[\'minrate\'].$error" ng-show="advancedForm[\'minrate\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.MINRATE_REQUIRED">minrate field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.MAXRATE">maxrate</label>\n <md-select name="maxrate" ng-model="vm.faxAccount.maxrate" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'2400\'">2400</md-option>\n <md-option ng-value="\'4800\'">4800</md-option>\n <md-option ng-value="\'7200\'">7200</md-option>\n <md-option ng-value="\'9600\'">9600</md-option>\n <md-option ng-value="\'12000\'">12000</md-option>\n <md-option ng-value="\'14400\'">14400</md-option>\n </md-select>\n <div class="hint"><span translate="FAX.HELP.MAXRATE"></span></div>\n <div ng-messages="advancedForm[\'maxrate\'].$error" ng-show="advancedForm[\'maxrate\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.MAXRATE_REQUIRED">maxrate field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.MODEM">modem</label>\n <input type="text" name="modem" ng-model="vm.faxAccount.modem" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="FAX.HELP.MODEM"></span></div>\n <div ng-messages="advancedForm[\'modem\'].$error" ng-show="advancedForm[\'modem\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.MODEM_REQUIRED">modem field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.GATEWAY">gateway</label>\n <input type="text" name="gateway" ng-model="vm.faxAccount.gateway" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="FAX.HELP.GATEWAY"></span></div>\n <div ng-messages="advancedForm[\'gateway\'].$error" ng-show="advancedForm[\'gateway\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.GATEWAY_REQUIRED">gateway field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.FAXDETECT">faxdetect</label>\n <input type="text" name="faxdetect" ng-model="vm.faxAccount.faxdetect" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="FAX.HELP.FAXDETECT"></span></div>\n <div ng-messages="advancedForm[\'faxdetect\'].$error" ng-show="advancedForm[\'faxdetect\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.FAXDETECT_REQUIRED">faxdetect field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.T38TIMEOUT">t38timeout</label>\n <input type="number" name="t38timeout" ng-model="vm.faxAccount.t38timeout" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="FAX.HELP.T38TIMEOUT"></span></div>\n <div ng-messages="advancedForm[\'t38timeout\'].$error" ng-show="advancedForm[\'t38timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.T38TIMEOUT_REQUIRED">t38timeout field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.SIP">SIP</label>\n <md-select name="tech" ng-model="vm.faxAccount.tech" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'SIP\'">SIP</md-option>\n <md-option ng-value="\'IAX\'">IAX</md-option>\n <md-option ng-value="\'DADHI\'">DADHI</md-option>\n <md-option ng-value="\'KHOMP\'">KHOMP</md-option>\n </md-select>\n <div ng-messages="advancedForm[\'tech\'].$error" ng-show="advancedForm[\'tech\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.SIP_REQUIRED">SIP field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="faxAccount-detail-form-container disposition md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="FAX.DISPOSITION">DISPOSITION</div>\n </div>\n <form name="dispositionForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.faxAccount.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="FAX.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.faxAccount.mandatoryDisposition" class="md-block">\n <label translate="FAX.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.faxAccount.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="FAX.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="dispositionForm[\'mandatoryDispositionPauseId\'].$error" ng-show="dispositionForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="FAX.DISPOSITIONS">DISPOSITIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div ng-controller="FaxAccountDispositionsController as vm_dc" ng-init="vm_dc.init(vm.faxAccount, vm.crudPermissions)">\n <div layout="row">\n <div class="column" flex="20">\n <md-card class="mt-0">\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm_dc.query.level = null; vm_dc.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\n </button>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm_dc.query.level" ng-change="vm_dc.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm_dc.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n <div class="faxAccount-detail-form-container faxdispositions md-background-bg md-whiteframe-1dp" flex="80">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedFaxAccountDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="FAX.DISPOSITIONS">Dispositions</span>\n <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditDisposition($event)" aria-label="Add fax dispositions" translate translate-attr-label="FAX.ADD_DISPOSITION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedDispositions.length}}\n {{vm_dc.selectedDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedDispositions" csv-label="true" filename="faxAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedDispositions($event)" aria-label="delete selected" translate translate-attr-label="FAX.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_dc.selectedDispositions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getDispositions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'FAX.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'FAX.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'FAX.DESCRIPTION\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_dc.dispositions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="FAX.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="disposition" md-select-id="id" ng-repeat="disposition in vm_dc.dispositions.rows">\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm_dc.levels[disposition.level] }}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="FAX.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(disposition, $event)" translate="TOOLS.DELETE_DISPOSITION">\n Delete Disposition\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'FAX.PAGE\' | translate}}:\', rowsPerPage: \'{{\'FAX.ROWSPERPAGE\' | translate}}:\', of: \'{{\'FAX.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.dispositions.count}}" md-on-paginate="vm_dc.getDispositions" md-page-select>\n </md-table-pagination>\n </div>\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="FAX.ACTIONS">ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="faxAccount-detail-form-container actions md-background-bg md-whiteframe-1dp">\n <div ng-controller="FaxAccountActionsController as vm_ac" ng-init="vm_ac.init(vm.faxAccount, vm.crudPermissions)" class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- SIDENAV --\x3e\n <div class="navigation-simple sidenav main-sidenav md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="20" ng-if="vm_ac.crudPermissions.canEdit">\n \x3c!-- SIDENAV CONTENT --\x3e\n <md-list class="no-padding">\n <md-subheader class="md-no-sticky">\n <span translate="VOICE.APPLICATIONS_LIST">\n Applications List\n </span>\n </md-subheader>\n </md-list>\n <md-divider></md-divider>\n <md-list ng-sortable="vm_ac.list">\n <md-list-item class="handle" ng-repeat="a in vm_ac.apps">\n <md-icon md-font-icon="{{a.icon}}" class="s16"></md-icon>\n <p class="text-truncate" translate="FAX.{{(a.appAlias || a.appType) | uppercase}}">{{a.appAlias || a.appType}}</p>\n </md-list-item>\n </md-list>\n \x3c!-- / SIDENAV CONTENT --\x3e\n </div>\n \x3c!-- / SIDENAV --\x3e\n <div flex></div>\n \x3c!-- MAIN --\x3e\n <div class="main scrollable md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="{{vm_ac.crudPermissions.canEdit ? 75 : 100}}">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_ac.selectedFaxAccountApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">Drag & Drop Routing</span>\n <div flex></div>\n <ms-search-bar on-search="vm_ac.query.filter = query" on-collapse="vm_ac.query.filter = undefined" debounce="300"></ms-search-bar>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_ac.selectedFaxAccountApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_ac.selectedFaxAccountApps.length}} {{vm_ac.selectedFaxAccountApps.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_ac.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_ac.deleteSelectedFaxAccountApps($event)" aria-label="delete selected" translate translate-attr-label="FAX.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n \x3c!-- QUEUES TABLE --\x3e\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_ac.selectedFaxAccountApps">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column width="10px">\n <span translate="VOICE.PRIORITY">Priority</span>\n </th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </th>\n <th md-column width="10px"></th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body ng-sortable="vm_ac.applications">\n <tr md-row md-select="app" md-select-id="id" ng-repeat="app in vm_ac.faxAccountApps.rows | filter: vm_ac.query.filter">\n <td md-cell>\n <md-icon md-font-icon="icon-drag-vertical" class="s16 handle"></md-icon>\n </td>\n <td md-cell ng-click="vm_ac.editFaxAccountApp($event, $index)"><span>{{app.priority}}</span></td>\n <td md-cell ng-click="vm_ac.editFaxAccountApp($event, $index)">{{app.app.toLowerCase() === \'agi\' ? \'Cally-Square\' : app.app | ucfirst}}<span ng-if="app.appType.toLowerCase() === \'custom\'">*</span></td>\n <td md-cell ng-click="vm_ac.editFaxAccountApp($event, $index)"><span class="text-truncate" style="width:200px">{{app.appdata}}</span></td>\n <td md-cell ng-click="vm_ac.editInterval($event, $index)">{{app.IntervalId ? \'From List\' : app.interval}}</td>\n <td md-cell>\n <md-button ng-click="vm_ac.editInterval($event, $index)" class="md-icon-button" aria-label="Interval">\n <md-icon md-font-icon="icon-timer"></md-icon>\n <md-tooltip>\n {{app.IntervalId ? \'From List\' : (app.interval === \'*,*,*,*\' ? \'Always\' : \'Custom\')}}\n </md-tooltip>\n </md-button>\n </td>\n <td md-cell class="actions" ng-if="!vm_ac.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_ac.crudPermissions.canEdit">\n <md-button ng-click="vm_ac.editFaxAccountApp($event, $index)" translate="VOICE.EDIT_APP">\n Edit App\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_ac.crudPermissions.canEdit">\n <md-button ng-click="vm_ac.editInterval($event, $index)" translate="VOICE.EDIT_INTERVAL">\n Edit Interval\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_ac.crudPermissions.canDelete">\n <md-button ng-click="vm_ac.deleteConfirm(app, $index, $event)" translate="VOICE.DELETE_APP">\n Delete App\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-hide="vm_ac.faxAccountApps.rows.length">\n <td md-cell colspan="7">\n <span class="text-boxed-light" translate="VOICE.NO_APPS_AVAILABLE">No apps available</span>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n \x3c!-- / QUEUES TABLE --\x3e\n\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="FAX.INTERACTIONS">INTERACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="faxAccount-detail-form-container interactions md-background-bg md-whiteframe-1dp">\n <div ng-controller="FaxAccountInteractionsController as vm_dc" ng-init="vm_dc.init(vm.faxAccount, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedFaxAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="FAX.INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm_dc.getFaxAccountInteractions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_dc.quickFilters" query="vm_dc.query" search="vm_dc.getFaxAccountInteractions()"></ms-quick-filter>\n <div layout="column">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini md-accent-bg\': vm_dc.query.search }" aria-label="Filter" translate translate-attr-aria-label="DASHBOARDS.FILTER" ng-click="vm_dc.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm_dc.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'blink\': vm_dc.query.search }"></md-icon>\n </md-button>\n </div>\n <md-button class="md-icon-button" ng-click="vm_dc.getFaxAccountInteractions()" aria-label="refresh Interactions" translate translate-attr-label="FAX.REFRESH_INTERACTIONS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedFaxAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedFaxAccountInteractions.length}} {{vm_dc.selectedFaxAccountInteractions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedFaxAccountInteractions" csv-label="true" filename="faxAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedFaxAccountInteractions($event)" aria-label="delete selected" translate translate-attr-label="FAX.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedFaxAccountInteractions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getFaxAccountInteractions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'FAX.ID\' | translate }}\n </th>\n <th md-column class="no-padding">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column md-order-by="contactName">\n {{ \'FAX.CONTACT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'FAX.STARTEDAT\' | translate }}\n </th>\n <th md-column md-order-by="lastMsgAt">\n {{ \'FAX.LASTMESSAGE\' | translate }}\n </th>\n <th md-column md-order-by="closed">\n {{ \'FAX.STATUS\' | translate }}\n </th>\n <th md-column>\n {{ \'FAX.AGENT\' | translate }}\n </th>\n <th md-column md-order-by="tag">\n {{ \'FAX.TAGS\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="interaction" md-select-id="id" ng-repeat="interaction in vm_dc.faxAccountInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td md-cell>\n {{interaction.id}}\n </td>\n <td md-cell class="no-padding">\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="user in interaction.Users">{{ user.fullname | translate }}\n <span ng-if="!$last">, </span>\n </span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg md-primary-bg" layout-margin>{{ interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.attach">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td md-cell privacy ng-cloak>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'margin-bottom-0\' : interaction.contactInfo}" layout-margin>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text margin-top-0" layout-margin>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td md-cell>\n {{ interaction.createdAt | formatdate }}\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}"></md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="text-truncate">{{ interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n </td>\n <td md-cell>\n <span ng-if="interaction.closed === 0" class="green-fg">\n {{ \'FAX.OPENED\' | translate }}\n <span ng-if="interaction.substatus">\n - {{ interaction.substatus }}\n </span>\n </span>\n <span ng-if="interaction.closed === 1" class="red-fg">\n {{ \'FAX.CLOSED\' | translate }}\n <span ng-if="interaction.disposition">\n - {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}\n </span>\n <md-tooltip class="multiline">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n </span>\n </td>\n\n <td md-cell>\n {{interaction.Owner.name}}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="FAX.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm_dc.spyfaxInteraction($event, interaction)" translate="FAX.SPYINTERACTION">\n Spy Interaction\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.role === \'admin\' || vm_dc.userProfile.downloadOmnichannelInteractions">\n <md-button class="md-primary" ng-click="vm_dc.faxInteractionDownload(interaction, $event)" translate="FAX.DOWNLOAD_INTERACTION">\n Download\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(interaction, $event)" translate="FAX.DELETE_INTERACTION">\n Delete Interaction\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.faxAccountInteractions.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="FAX.NO_INTERACTION_AVAILABLE">No interaction available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'FAX.PAGE\' | translate}}:\', rowsPerPage: \'{{\'FAX.ROWSPERPAGE\' | translate}}:\', of: \'{{\'FAX.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.faxAccountInteractions.count}}" md-on-paginate="vm_dc.getFaxAccountInteractions" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/fax/views/faxAccounts/faxAccounts.html",'<div id="faxAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-deskphone" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="FAX.FAXACCOUNTS">FaxAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="FAX.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedFaxAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedFaxAccounts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="FAX.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-faxAccounts-count">\n <span>{{vm.selectedFaxAccounts.length}}</span>\n <span translate="FAX.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="FAX.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllFaxAccounts()" translate="FAX.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectFaxAccounts()" translate="FAX.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedFaxAccounts" csv-label="true" filename="faxAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedFaxAccounts($event)" aria-label="delete selected" translate translate-attr-label="FAX.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- FAXACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedFaxAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getFaxAccounts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'FAX.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'FAX.NAME\' | translate }}</th>\n <th md-column md-order-by="key">{{ \'FAX.KEY\' | translate }}</th>\n <th md-column md-order-by="TrunkId">{{ \'FAX.TRUNK\' | translate }}</th>\n <th md-column md-order-by="localstationid">{{ \'FAX.LOCALSTATIONID\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'FAX.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.faxAccounts.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="FAX.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="faxAccount" md-select-id="id" ng-repeat="faxAccount in vm.faxAccounts.rows">\n <td md-cell ng-if="faxAccount.userpic"><img class="avatar" alt="{{faxAccount.name}}" ng-src="api/users/{{faxAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!faxAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{faxAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxAccount, ev) : vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="id ">{{faxAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxAccount, ev) : vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="name ">{{faxAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxAccount, ev) : vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="key ">{{faxAccount.key}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxAccount, ev) : vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="TrunkId ">{{ (vm.trunks | filter : {\'id\':faxAccount.TrunkId} : true)[0].name }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxAccount, ev) : vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="localstationid ">{{faxAccount.localstationid}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxAccount, ev) : vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="description ">{{faxAccount.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="FAX.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(faxAccount, $event )" translate="FAX.EDIT_FAXACCOUNT">\n Edit FaxAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.interactionsgoto(faxAccount, $event )" translate="FAX.INTERACTIONS_FAXACCOUNT">\n Interactions FaxAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(faxAccount, $event )" translate="FAX.GOTOREALTIME_FAXACCOUNT">\n goToRealtime FaxAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(faxAccount, $event )" translate="FAX.AGENTADD_FAXACCOUNT">\n AgentAdd FaxAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(faxAccount, $event )" translate="FAX.DELETE_FAXACCOUNT">\n Delete FaxAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'FAX.PAGE\' | translate}}:\', rowsPerPage: \'{{\'FAX.ROWSPERPAGE\' | translate}}:\', of: \'{{\'FAX.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.faxAccounts.count}}" md-on-paginate="vm.getFaxAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / FAXACCOUNT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD FAXACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-faxAccount-button" ng-click="vm.createOrEditFaxAccount($event)" aria-label="add faxAccount" translate translate-attr-aria-label="FAX.ADD_FAXACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD FAXACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/fax/views/faxQueues/create/dialog.html",'<md-dialog class="faxQueue-dialog" aria-label="New FaxQueue">\n <form name="faxQueueForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="FAX.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.faxQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newFaxQueue">\n\n <div class="hint"><span translate="FAX.HELP.NAME"></span></div>\n <div ng-messages="faxQueueForm[\'name\'].$error" ng-show="faxQueueForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="FAX.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.faxQueue.strategy" required>\n <md-option ng-value="\'beepall\'">Beepall</md-option>\n <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n </md-select>\n <div ng-messages="faxQueueForm[\'strategy\'].$error" ng-show="faxQueueForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.AGENT_TIMEOUT">Agent_Timeout</label>\n <input type="number" name="timeout" ng-model="vm.faxQueue.timeout" min="1" max="2147483" value="10" ng-required="true">\n\n <div ng-messages="faxQueueForm[\'timeout\'].$error" ng-show="faxQueueForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="FAX.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.faxQueue.description">\n\n <div ng-messages="faxQueueForm[\'description\'].$error" ng-show="faxQueueForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newFaxQueue" ng-click="vm.saveFaxQueue()" class="send-button md-accent md-raised" ng-disabled="faxQueueForm.$invalid || faxQueueForm.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newFaxQueue" ng-click="vm.addNewFaxQueue()" class="send-button md-accent md-raised" ng-disabled="faxQueueForm.$invalid" aria-label="ADD" translate="FAX.ADD_FAXQUEUE" translate-attr-aria-label="FAX.ADD_FAXQUEUE">\n ADD FAXQUEUE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newFaxQueue" ng-click="vm.deleteFaxQueue($event)" aria-label="DELETE" translate translate-attr-aria-label="FAX.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="FAX.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxQueues/edit/agentadd/agentadd.html",'<md-dialog class="faxQueue-dialog" aria-label="faxQueue" ng-init="vm.onInit()">\n <form name="faxQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="FAX.AGENTADD_FAXQUEUE">Add Agent to faxQueue</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxQueues/edit/teamadd/teamadd.html",'<md-dialog class="faxQueue-dialog" aria-label="faxQueue" ng-init="vm.onInit()">\n <form name="faxQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="FAX.TEAMS_ASSOCIATION">Teams Association</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxQueues/edit/view.html",'<div id="fax-faxQueue" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-faxQueues-button md-icon-button" aria-label="Go to faxQueues" ng-click="vm.gotoFaxQueues()" translate translate-attr-aria-label="FAX.GO_TO_FAXQUEUES">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="faxQueue-image" hide-xs>\n <img ng-src="assets/images/business/faxQueues.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.faxQueue.id}}\n <span ng-if="vm.faxQueue.name">{{vm.faxQueue.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="FAX.CREATED_AT"></span> <span>{{vm.faxQueue.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.teamadddialog(vm.faxQueue, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n <md-tooltip><span translate="FAX.TEAMADD_FAXQUEUE"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.faxQueue, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="FAX.AGENTADD_FAXQUEUE"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-plus"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveFaxQueue()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid)" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="FAX.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="faxQueue-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="FAX.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="FAX.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.faxQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="FAX.HELP.NAME"></span></div>\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="FAX.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.faxQueue.strategy" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'beepall\'">Beepall</md-option>\n <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n </md-select>\n <div ng-messages="generalForm[\'strategy\'].$error" ng-show="generalForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.AGENT_TIMEOUT">Agent_Timeout</label>\n <input type="number" name="timeout" ng-model="vm.faxQueue.timeout" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'timeout\'].$error" ng-show="generalForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="FAX.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.faxQueue.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/fax/views/faxQueues/faxQueues.html",'<div id="faxQueues" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-deskphone" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="FAX.FAXQUEUES">FaxQueues</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="FAX.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedFaxQueues.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedFaxQueues =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="FAX.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-faxQueues-count">\n <span>{{vm.selectedFaxQueues.length}}</span>\n <span translate="FAX.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="FAX.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllFaxQueues()" translate="FAX.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectFaxQueues()" translate="FAX.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedFaxQueues" csv-label="true" filename="faxQueues.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedFaxQueues($event)" aria-label="delete selected" translate translate-attr-label="FAX.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- FAXQUEUE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedFaxQueues" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getFaxQueues">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'FAX.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'FAX.NAME\' | translate }}</th>\n <th md-column md-order-by="strategy">{{ \'FAX.STRATEGY\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.faxQueues.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="FAX.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="faxQueue" md-select-id="id" ng-repeat="faxQueue in vm.faxQueues.rows">\n <td md-cell ng-if="faxQueue.userpic"><img class="avatar" alt="{{faxQueue.name}}" ng-src="api/users/{{faxQueue.id}}/avatar" /></td>\n <td md-cell ng-if="!faxQueue.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{faxQueue.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxQueue, ev) : vm.createOrEditFaxQueue($event, faxQueue)" md-cell class="id ">{{faxQueue.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxQueue, ev) : vm.createOrEditFaxQueue($event, faxQueue)" md-cell class="name ">{{faxQueue.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxQueue, ev) : vm.createOrEditFaxQueue($event, faxQueue)" md-cell class="strategy ">{{ vm.arraystrategy[faxQueue.strategy].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="FAX.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(faxQueue, $event )" translate="FAX.EDIT_FAXQUEUE">\n Edit FaxQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(faxQueue, $event )" translate="FAX.TEAMADD_FAXQUEUE">\n teamadd FaxQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(faxQueue, $event )" translate="FAX.AGENTADD_FAXQUEUE">\n agentadd FaxQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(faxQueue, $event )" translate="FAX.DELETE_FAXQUEUE">\n Delete FaxQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(faxQueue, $event )" translate="FAX.GOTOREALTIME_FAXQUEUE">\n goToRealtime FaxQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'FAX.PAGE\' | translate}}:\', rowsPerPage: \'{{\'FAX.ROWSPERPAGE\' | translate}}:\', of: \'{{\'FAX.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.faxQueues.count}}" md-on-paginate="vm.getFaxQueues" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / FAXQUEUE TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD FAXQUEUE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-faxQueue-button" ng-click="vm.createOrEditFaxQueue($event)" aria-label="add faxQueue" translate translate-attr-aria-label="FAX.ADD_FAXQUEUE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD FAXQUEUE BUTTON --\x3e\n</div>'),e.put("app/main/apps/fax/views/realtime/accounts/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="FAX.ACCOUNTS">Accounts</span>\n <div flex></div>\n <ms-search-bar on-search="vm.vm.getFaxAccounts()" query="vm.query" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n\n\x3c!-- AGENT TABLE --\x3e\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getFaxAccounts">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'FAX.NAME\' | translate}}</th>\n <th md-column>{{\'FAX.KEY\' | translate}}</th>\n <th md-column>{{\'FAX.TOTAL\' | translate}}</th>\n <th md-column>{{\'FAX.IN\' | translate}}</th>\n <th md-column>{{\'FAX.OUT\' | translate}}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.faxAccounts">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="FAX.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="vm.faxAccounts[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td md-cell>{{vm.faxAccounts[value].name}}</td>\n <td md-cell>{{vm.faxAccounts[value].key}}</td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{(vm.faxAccounts[value].in || 0) + (vm.faxAccounts[value].out || 0)}}</span>\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="icon-arrow-down-bold blue-fg"></md-icon>\n </span>\n <span class="md-capture blue-fg">{{vm.faxAccounts[value].in || 0}}</span>\n <span class="text-boxed" ng-if="mailAccount.in">{{vm.faxAccounts[value].lastIn ? (vm.faxAccounts[value].lastIn | date: \'shortTime\') : \'\'}}</span>\n </div>\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="icon-arrow-up-bold green-fg"></md-icon>\n </span>\n <span class="md-capture green-fg">{{vm.faxAccounts[value].out || 0}}</span>\n <span class="text-boxed" ng-if="mailAccount.out">{{vm.faxAccounts[value].lastOut ? (vm.faxAccounts[value].lastOut | date: \'shortTime\') : \'\'}}</span>\n </div>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="4">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.goToFaxAccount($event, vm.faxAccounts[value])" translate="FAX.EDIT_ACCOUNT">\n Edit Account\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'FAX.PAGE\' | translate}}:\', rowsPerPage: \'{{\'FAX.ROWSPERPAGE\' | translate}}:\', of: \'{{\'FAX.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getFaxAccounts" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/fax/views/realtime/agents/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="FAX.AGENTS">Agents</span>\n <div flex></div>\n <ms-search-bar on-search="vm.onInit()" query="vm.query" on-collapse="vm.query.filter = undefined; vm.onInit()" debounce="300"></ms-search-bar>\n <md-select ng-model="vm.query.globalStatusFilter" class="md-caption" ng-change="vm.query.pauseTypeFilter = \'\'; vm.onInit()">\n <md-option ng-value="\'\'">{{ \'FAX.ALL\' | translate }}</md-option>\n <md-option value="pause">{{ \'FAX.PAUSE\' | translate }}</md-option>\n <md-option value="*pause">{{ \'FAX.PARTIALPAUSE\' | translate }}</md-option>\n <md-option value="busy">{{ \'FAX.BUSY\' | translate }}</md-option>\n <md-option value="idle">{{ \'FAX.IDLE\' | translate }}</md-option>\n </md-select>\n <md-select ng-if="vm.isPause(vm.query.globalStatusFilter)" ng-model="vm.query.pauseTypeFilter" class="md-caption" ng-change="vm.onInit()">\n <md-option ng-value="\'\'">All</md-option>\n <md-option value="DEFAULT PAUSE">DEFAULT PAUSE</md-option>\n <md-option value="ACW">ACW</md-option>\n <md-option value="LOGININPAUSE">LOGININPAUSE</md-option>\n <md-option value="Auto-Pause">AUTOPAUSE</md-option>\n <md-option ng-value="pause.name" ng-repeat="pause in vm.pauses.rows">{{pause.name}}</md-option>\n </md-select>\n </div>\n</md-toolbar>\n\x3c!-- AGENT TABLE --\x3e\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.order" md-on-reorder="vm.onInit">\n <tr md-row border="1">\n <th class="bv text-center" colspan="5">{{ \'FAX.AGENT\' | translate }}</th>\n <th class="bv bl text-center" colspan="2">{{ \'VOICE.VOICE\' | translate }}</th>\n <th ng-if="vm.license.chat" class="bv bl text-center" colspan="2">{{ \'CHAT.CHAT\' | translate }}</th>\n <th ng-if="vm.license.mail" class="bv bl text-center" colspan="2">{{ \'MAIL.MAIL\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="bv bl text-center" colspan="2">{{ \'SMS.SMS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="bv bl text-center" colspan="2">\n {{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="bv bl text-center" colspan="2">\n {{ \'WHATSAPP.WHATSAPP\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n </tr>\n <tr md-row>\n <th class="bl" colspan="2" md-column md-order-by="fullname">\n {{ \'FAX.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">\n {{ \'FAX.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">\n {{ \'FAX.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">\n {{ \'FAX.PAUSE_TIME\' | translate }}</th>\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\n <th ng-if="vm.license.chat" class="bl text-center">{{ \'CHAT.STATUS\' | translate }}</th>\n <th ng-if="vm.license.chat" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'CHAT.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.mail" class="bl text-center">{{ \'MAIL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.mail" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'MAIL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.messaging" class="bl text-center">{{ \'SMS.STATUS\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'SMS.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.openchannel" class="bl text-center">{{ \'OPENCHANNEL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'OPENCHANNEL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.fax" class="bl text-center">{{ \'FAX.STATUS\' | translate }}</th>\n <th ng-if="vm.license.fax" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'FAX.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.whatsapp" class="bl text-center">{{ \'WHATSAPP.STATUS\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'WHATSAPP.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.order.length">\n <td md-cell colspan="19">\n <div layout="row" layout-align="center center">\n <span>{{ \'FAX.NO_AGENT_ONLINE\' | translate }}</span>\n </div>\n </td>\n </tr>\n <tr md-select="vm.agents[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td class="bt padding-5">\n <div layout="row" layout-align="start center">\n <img class="avatar" ng-src="{{vm.agents[value].userpic && \'api/users/\'+vm.agents[value].id+\'/avatar\' || \'assets/images/avatars/profile.png\'}}">\n <div layout="column">\n <span>{{vm.agents[value].fullname}}</span>\n <span>{{vm.agents[value].internal}}</span>\n </div>\n </div>\n </td>\n <td class="bt padding-5">\n <div layout="row" layout-align="start center" ng-if="vm.license.screenrecording && (vm.agents[value].phoneBarEnableScreenRecordingByAgent || vm.agents[value].phoneBarEnableAutomaticScreenRecording)">\n <div class="column" ng-if="vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: green; font-size: 36px;" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'FAX.TOOLTIP_SCREENRECORDING_ON\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n <div class="column" ng-if="!vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: gray" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'FAX.TOOLTIP_SCREENRECORDING_OFF\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n </div>\n </td>\n <td class="bt">\n'+" <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','busy':'indigo-100-bg','*pause':'amber-50-bg','pause':'amber-200-bg'}[vm.agents[value].globalStatus]\">{{\n vm.isPause(vm.agents[value].globalStatus) ? '' : vm.agents[value].globalStatus | uppercase }}\n {{ vm.isPause(vm.agents[value].globalStatus) ? (vm.isPartialPause(vm.agents[value].globalStatus) ?\n '*'+vm.agents[value].pauseType || 'DEFAULT PAUSE' : vm.agents[value].pauseType || 'DEFAULT PAUSE') :\n ''}}</span>\n </td>\n <td class=\"bt custom-column\">\n <timer start-time=\"vm.agents[value].lastLoginAt\"></timer>\n </td>\n <td class=\"bt custom-column\">\n <timer ng-if=\"vm.isPause(vm.agents[value].globalStatus) || vm.isPartialPause(vm.agents[value].globalStatus)\" start-time=\"vm.agents[value].lastPauseAt\"></timer>\n </td>\n <td class=\"bt bl\">\n <div layout=\"row\">\n <span ng-if=\"!vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','talking':'indigo-100-bg','ringing':'orange-400-bg','pause':'amber-200-bg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].voiceStatus | uppercase }}</span>\n <span ng-if=\"vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5 orange-400-bg\">ONHOLD</span>\n </div>\n </td>\n <td class=\"bt bl\">\n <div layout=\"column\">\n <span ng-if=\"vm.agents[value].queue\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].queue }}</span>\n <span ng-if=\"vm.agents[value].destconnectedlinenum\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\" privacy ng-cloak>{{\n vm.agents[value].destconnectedlinenum }}</span>\n <span ng-if=\"vm.agents[value].routealias\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].routealias }}</span>\n <span class=\"padding-5\" ng-if=\"vm.agents[value].queue || vm.agents[value].destconnectedlinenum\">\n <timer start-time=\"vm.agents[value].voiceStatusTime\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">\n </timer>\n </span>\n </div>\n </td>\n <td class=\"bt bl\" ng-if=\"vm.license.chat\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].chatStatus]\">{{\n vm.agents[value].chatStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td md-number class=\"bt text-center font-size-20\" ng-if=\"vm.license.chat\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].chatStatus]\">\n {{ vm.agents[value].chatCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.mail\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].mailStatus]\">{{\n vm.agents[value].mailStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.mail\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].mailStatus]\">\n {{ vm.agents[value].mailCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.messaging\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].smsStatus]\">{{\n vm.agents[value].smsStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.messaging\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].smsStatus]\">\n {{ vm.agents[value].smsCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.openchannel\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].openchannelStatus]\">{{\n vm.agents[value].openchannelStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.openchannel\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].openchannelStatus]\">\n {{ vm.agents[value].openchannelCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.fax\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].faxStatus]\">{{\n vm.agents[value].faxStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.fax\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].faxStatus]\">\n {{ vm.agents[value].faxCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.whatsapp\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].whatsappStatus]\">{{\n vm.agents[value].whatsappStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.whatsapp\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].whatsappStatus]\">\n {{ vm.agents[value].whatsappCurrentCapacity }}</td>\n <td class=\"bl bt padding-5 text-center\" ng-if=\"vm.crudPermissions.canEdit\">\n <md-menu>\n <md-button class=\"md-icon-button\" aria-label=\"More\" translate translate-attr-aria-label=\"STAFF.MORE\" ng-click=\"$mdOpenMenu($event)\">\n <md-icon md-font-icon=\"icon-dots-vertical\"></md-icon>\n </md-button>\n <md-menu-content width=\"4\">\n <md-menu-item>\n <md-button ng-click=\"vm.logout(vm.agents[value], $event)\" translate=\"FAX.LOGOUT\">\n Logout\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click=\"vm.queueAdd(vm.agents[value], $event)\" translate=\"FAX.AGENTADD_QUEUE\">\n Add Agent In Queue\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.license.screenrecording && vm.agents[value].phoneBarEnableScreenRecordingByAgent\">\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"FAX.SCREENRECORDING\">Screen Recording\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if=\"!vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], true)\"><em translate=\"FAX.START_SCREENRECORDING\">Start\n Screen Recording</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], false)\"><em translate=\"FAX.STOP_SCREENRECORDING\">Stop\n Screen Recording</em></md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item>\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"FAX.PAUSE\">Pause</md-button>\n <md-menu-content>\n <md-menu-item>\n <md-button ng-disabled=\" vm.agents[value].voicePause && 'DEFAULT PAUSE' === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value])\"><em translate=\"FAX.DEFAULT_PAUSE\">Default\n Pause</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.pauses.rows.length\" ng-repeat=\"pause in vm.pauses.rows\">\n <md-button ng-disabled=\"vm.agents[value].voicePause && pause.name === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value], pause.name)\">{{pause.name}}\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.isPause(vm.agents[value].globalStatus)\">\n <md-button ng-click=\"vm.unPause(vm.agents[value])\" translate=\"FAX.UNPAUSE\">\n Unpause\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label=\"{page: '{{'FAX.PAGE' | translate}}:', rowsPerPage: '{{'FAX.ROWSPERPAGE' | translate}}:', of: '{{'FAX.OF' | translate}}'}\" md-limit=\"vm.query.limit\" md-limit-options=\"[10, 15, 20, 50, 100, 250]\" md-page=\"vm.query.page\" md-total=\"{{vm.filteredAgents.length}}\" md-on-paginate=\"vm.onInit\" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e"),e.put("app/main/apps/fax/views/realtime/queues/view.html",'<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="FAX.QUEUES">Queues</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getQueues">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'FAX.NAME\' | translate }}</th>\n <th md-column>{{ \'FAX.LOGGED_IN\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'FAX.PAUSED\' | translate }}</th>\n <th md-column>{{ \'FAX.WAITING\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.queues.count > 0">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="FAX.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="queue" md-select-id="id" ng-repeat="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedIn }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="FAX.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.editQueue($event, queue)" translate="FAX.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.addAgent($event, queue)" translate="FAX.AGENTSADD_QUEUE">\n Add Agents to queue\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'FAX.PAGE\' | translate}}:\', rowsPerPage: \'{{\'FAX.ROWSPERPAGE\' | translate}}:\', of: \'{{\'FAX.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),e.put("app/main/apps/fax/views/realtime/realtime.html",'<div id="realtime" class="page-layout simple tabbed" layout="column" ng-cloak>\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="FAX.AGENTS">Agents</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="FAX.TRUNKS">Trunks</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="FAX.QUEUES">Queues</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="FAX.ACCOUNTS">Accounts</span>\n </md-tab-label>\n </md-tab>\n </md-tabs>\n\n <md-card ui-view></md-card>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/fax/views/realtime/trunks/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="FAX.TRUNKS">Telephones</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getTrunks()" query="vm.query" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n\n\x3c!-- TRUNKS TABLE --\x3e\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head>\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTrunks">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'FAX.NAME\' | translate }}</th>\n <th md-column>{{ \'FAX.TRUNK_STATUS\' | translate }}</th>\n <th md-column>{{ \'FAX.REGISTRY\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.trunks">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="FAX.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(id, trunk) in vm.trunks">\n <td md-cell>{{trunk.name}}</td>\n <td md-cell>\n <i ng-class="vm.statusClass[trunk.status.toLowerCase()]">\n <md-tooltip>{{\'FAX.\' + trunk.status | uppercase | translate}}</md-tooltip>\n </i>\n <span ng-if="trunk.status === \'registered\'" class="text-boxed">{{trunk.address}}</span>\n </td>\n <td md-cell>\n <i ng-if="trunk.registry" ng-class="(trunk.stateRegistry.toLowerCase() === \'registered\') ? \'green-300-fg icon-checkbox-marked-circle\' : \'red-300-fg icon-close-circle\'">\n <md-tooltip>{{\'FAX.\' + trunk.stateRegistry | uppercase | translate}}</md-tooltip>\n </i>\n <span ng-if="trunk.registry && trunk.host && trunk.port" class="text-boxed">{{trunk.host}}:{{trunk.port}}</span>\n <span ng-if="!trunk.registry" translate="FAX.NO_REGISTRY">\n No Registry\n </span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="4">\n <md-menu-item>\n <md-button ng-click="vm.goToTrunk($event, trunk)" translate="FAX.EDIT_TRUNK">\n Edit Trunk\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'FAX.PAGE\' | translate}}:\', rowsPerPage: \'{{\'FAX.ROWSPERPAGE\' | translate}}:\', of: \'{{\'FAX.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getTrunks" md-page-select></md-table-pagination>\n\x3c!-- / TRUNKS TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/help/views/about/about.html",'<div id="maintenance" class="flex-scrollable" layout="column" ms-scroll>\n <div id="maintenance-form-wrapper" layout="column" layout-align="center center">\n <div id="maintenance-form" class="md-whiteframe-8dp">\n <div>\n <img src="/api/settings/1/logo_login" alt="logo_login" />\n </div>\n\n <br>\n\n <div>\n <div class="info-line">\n <div class="title">Useful pages</div>\n </div>\n <section layout="row" flex layout-sm="column" layout-align="center center" layout-wrap>\n <div layout="column" flex="25" layout-align="center center">\n <a class="md-fab md-mini md-button grey-bg" href="https://wiki.xcallymotion.com/display/XMV" target="_blank">\n <md-icon md-font-icon="icon-wikipedia"></md-icon>\n </a>\n <div class="info"><a href="https://wiki.xcallymotion.com/display/XMV" target="_blank">Wiki</a></div>\n </div>\n\n <div layout="column" flex="25" layout-align="center center">\n <a class="md-fab md-mini md-button md-accent" href="/apidoc" target="_blank">\n <md-icon md-font-icon="icon-apple-mobileme"></md-icon>\n </a>\n <div class="info"><a href="/apidoc" target="_blank">Motion API</a></div>\n </div>\n\n <div layout="column" flex="25" layout-align="center center">\n <a class="md-fab md-mini md-button orange-bg" href="http://www.xcally.com/bar/phonebar/Setup.msi" target="_blank">\n <md-icon md-font-icon="icon-headphones"></md-icon>\n </a>\n <div class="info"><a href="https://www.xcally.com/bar/phonebar/Setup.msi" target="_blank">Phonebar Download</a></div>\n </div>\n\n <div layout="column" flex="25" layout-align="center center">\n <a class="md-fab md-mini md-button green-bg" href="/demo" target="_blank">\n <md-icon md-font-icon="icon-console"></md-icon>\n </a>\n <div class="info"><a href="/demo" target="_blank">Playground</a></div>\n </div>\n\n </section>\n\n <br>\n\n <div class="info-line" ng-if="!vm.license.custom">\n <div class="title">Follow us on</div>\n </div>\n <section ng-if="!vm.license.custom" layout="row" layout-sm="column" layout-align="center center" layout-wrap>\n <a class="md-fab md-mini md-button blue-900-bg" href="https://www.facebook.com/xcallymotion" target="_blank">\n <md-icon md-font-icon="icon-facebook"></md-icon>\n </a>\n\n <a class="md-fab md-mini md-button" href="https://twitter.com/xcallymotion" target="_blank">\n <md-icon md-font-icon="icon-twitter"></md-icon>\n </a>\n <a class="md-fab md-mini md-button md-warn" href="https://plus.google.com/+Xcally" target="_blank">\n <md-icon md-font-icon="icon-google-plus"></md-icon>\n </a>\n <a class="md-fab md-mini md-button light-blue-800-bg" href="https://www.linkedin.com/company/xcally" target="_blank">\n <md-icon md-font-icon="icon-linkedin"></md-icon>\n </a>\n </section>\n\n <br ng-if="!vm.license.custom">\n\n <div class="info-line" ng-if="!vm.license.custom">\n <div class="title" translate="HELP.CONTACT_US">Contact Us</div>\n </div>\n <div class="info-line" ng-if="!vm.license.custom">\n <div class="info"><a href="mailto:support@xcally.com" target="_top">support@xcally.com</a></div>\n </div>\n\n <br ng-if="!vm.license.custom">\n\n <div class="info">xCALLY Motion <u>{{vm.info.current}}</u> | <a href="https://wiki.xcallymotion.com/display/XMV/Motion+GUI#MotionGUI-Version{{vm.info.current}}" target="_blank">Changelog</a></div>\n\n <br>\n\n <div class="info" ng-if="!vm.license.custom">xCALLY© 2016 - 2018 | Powered by Xenialab | <a href="http://www.xcally.com/support/eula-xcally-license-en.pdf" target="_blank">EULA</a></div>\n\n <br ng-if="!vm.license.custom">\n\n <div class="info" ng-if="!vm.license.custom"><a href="https://www.xenialab.com/" target="_blank">www.xenialab.com</a> | <a href="https://www.xcallymotion.com/" target="_blank">www.xcallymotion.com</a></div>\n </div>\n </div>\n </div>\n</div>'),e.put("app/main/apps/integrations/views/deskAccounts/create/dialog.html",'<md-dialog class="deskAccount-dialog" aria-label="New DeskAccount">\n <form name="deskAccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.deskAccount.name" ng-required="true" autofocus>\n\n <div ng-messages="deskAccountForm[\'name\'].$error" ng-show="deskAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.deskAccount.type" required>\n\n <md-option ng-value="\'integrationTab\'"> {{ \'INTEGRATIONS.INTEGRATION_TAB\' | translate }} </md-option>\n\n <md-option ng-value="\'newTab\'"> {{ \'INTEGRATIONS.NEW_TAB\' | translate }} </md-option>\n </md-select>\n <div ng-messages="deskAccountForm[\'type\'].$error" ng-show="deskAccountForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.deskAccount.remoteUri" ng-required="true">\n\n <div ng-messages="deskAccountForm[\'remoteUri\'].$error" ng-show="deskAccountForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.AUTHTYPE">AuthType</label>\n <md-select name="authType" ng-model="vm.deskAccount.authType" required>\n <md-option ng-value="\'basic\'">Basic</md-option>\n </md-select>\n <div ng-messages="deskAccountForm[\'authType\'].$error" ng-show="deskAccountForm[\'authType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.AUTHTYPE_REQUIRED">AuthType field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.deskAccount.authType == \'basic\'" class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.deskAccount.username" ng-required="true">\n\n <div ng-messages="deskAccountForm[\'username\'].$error" ng-show="deskAccountForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.deskAccount.authType == \'basic\'">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.deskAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="deskAccountForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.deskAccount.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="deskAccountForm[\'serverUrl\'].$error" ng-show="deskAccountForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.deskAccount.description">\n\n <div ng-messages="deskAccountForm[\'description\'].$error" ng-show="deskAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newDeskAccount" ng-click="vm.saveDeskAccount()" class="send-button md-accent md-raised" ng-disabled="deskAccountForm.$invalid || deskAccountForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newDeskAccount" ng-click="vm.addNewDeskAccount()" class="send-button md-accent md-raised" ng-disabled="deskAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_DESKACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_DESKACCOUNT">\n ADD DESKACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newDeskAccount" ng-click="vm.deleteDeskAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/deskAccounts/deskAccounts.html",'<div id="deskAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-heart" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="INTEGRATIONS.DESKACCOUNTS">DeskAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedDeskAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedDeskAccounts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="INTEGRATIONS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-deskAccounts-count">\n <span>{{vm.selectedDeskAccounts.length}}</span>\n <span translate="INTEGRATIONS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="INTEGRATIONS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllDeskAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectDeskAccounts()" translate="INTEGRATIONS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedDeskAccounts" csv-label="true" filename="deskAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedDeskAccounts($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- DESKACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedDeskAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getDeskAccounts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'INTEGRATIONS.NAME\' | translate }}</th>\n <th md-column md-order-by="remoteUri">{{ \'INTEGRATIONS.URI\' | translate }}</th>\n <th md-column md-order-by="username">{{ \'INTEGRATIONS.USERNAME\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.deskAccounts.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="deskAccount" md-select-id="id" ng-repeat="deskAccount in vm.deskAccounts.rows">\n <td md-cell ng-if="deskAccount.userpic"><img class="avatar" alt="{{deskAccount.name}}" ng-src="api/users/{{deskAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!deskAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{deskAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(deskAccount, ev) : vm.createOrEditDeskAccount($event, deskAccount)" md-cell class="id ">{{deskAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(deskAccount, ev) : vm.createOrEditDeskAccount($event, deskAccount)" md-cell class="name ">{{deskAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(deskAccount, ev) : vm.createOrEditDeskAccount($event, deskAccount)" md-cell class="remoteUri ">{{deskAccount.remoteUri}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(deskAccount, ev) : vm.createOrEditDeskAccount($event, deskAccount)" md-cell class="username ">{{deskAccount.username}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(deskAccount, $event )" translate="INTEGRATIONS.EDIT_DESKACCOUNT">\n Edit DeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(deskAccount, $event )" translate="INTEGRATIONS.TEST_DESKACCOUNT">\n Test DeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(deskAccount, $event )" translate="INTEGRATIONS.DELETE_DESKACCOUNT">\n Delete DeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.deskAccounts.count}}" md-on-paginate="vm.getDeskAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / DESKACCOUNT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD DESKACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-deskAccount-button" ng-click="vm.createOrEditDeskAccount($event)" aria-label="add deskAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_DESKACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD DESKACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/integrations/views/deskAccounts/edit/configurations/dialog.html",'<md-dialog class="deskConfiguration-dialog" aria-label="New DeskConfiguration">\n <form name="deskConfigurationForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="" name="name" ng-model="vm.deskConfiguration.name" ng-required="true" autofocus>\n\n <div ng-messages="deskConfigurationForm[\'name\'].$error" ng-show="deskConfigurationForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CHANNEL">Channel</label>\n <md-select name="channel" ng-model="vm.deskConfiguration.channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="deskConfigurationForm[\'channel\'].$error" ng-show="deskConfigurationForm[\'channel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.deskConfiguration.type" required>\n\n <md-option ng-value="\'inbound\'"> {{ \'INTEGRATIONS.INBOUND_IN_QUEUE\' | translate }} </md-option>\n\n <md-option ng-value="\'outbound\'"> {{ \'INTEGRATIONS.OUTBOUND_CALL\' | translate }} </md-option>\n </md-select>\n <div ng-messages="deskConfigurationForm[\'type\'].$error" ng-show="deskConfigurationForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newDeskConfiguration" ng-click="vm.saveDeskConfiguration()" class="send-button md-accent md-raised" ng-disabled="deskConfigurationForm.$invalid || deskConfigurationForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newDeskConfiguration" ng-click="vm.addNewDeskConfiguration()" class="send-button md-accent md-raised" ng-disabled="deskConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_DESKCONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_DESKCONFIGURATION">\n ADD DESKCONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newDeskConfiguration" ng-click="vm.deleteDeskConfiguration($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/deskAccounts/edit/item/dialog.html",'<md-dialog class="deskAccount-item-dialog" aria-label="New Item">\n <form name="deskAccountItemForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <div ng-switch="vm.type">\n <div ng-switch-when="subject">\n \x3c!-- SUBJECT SECTION --\x3e\n <div ng-include="\'/subject.html\'"></div>\n \x3c!-- / SUBJECT SECTION --\x3e\n </div>\n <div ng-switch-when="description">\n \x3c!-- DESCRIPTION SECTION --\x3e\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="keyValue">Key Value</md-option>\n </md-select>\n <div ng-messages="deskAccountItemForm.type.$error" ng-show="deskAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="deskAccountItemForm.content.$error" ng-show="deskAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field\n is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.item.type == \'keyValue\'">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.item.key" required md-autofocus>\n <div ng-messages="deskAccountItemForm.key.$error" ng-show="deskAccountItemForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="keyType" ng-model="vm.item.keyType" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="deskAccountItemForm.keyType.$error" ng-show="deskAccountItemForm.keyType.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="keyContent" ng-model="vm.item.keyContent" required md-autofocus>\n <div ng-messages="deskAccountItemForm.keyContent.$error" ng-show="deskAccountItemForm.keyContent.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content\n field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="deskAccountItemForm.variableName.$error" ng-show="deskAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable\n name field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}\n </md-option>\n </md-select>\n </md-input-container>\n </div>\n \x3c!-- / DESCRIPTION SECTION --\x3e\n </div>\n <div ng-switch-when="field">\n \x3c!-- FIELD SECTION --\x3e\n <div ng-if="vm.accountConnected">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.FIELD">FIELD</label>\n \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\n </md-select>\n <div ng-messages="deskAccountItemForm.customField.$error" ng-show="deskAccountItemForm.customField.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\n </div>\n <div ng-if="!vm.accountConnected">\n <p>Account is not connected. Please check your configurations!</p>\n </div>\n \x3c!-- / FIELD SECTION --\x3e\n </div>\n <div ng-switch-default>\n <p>No Item</p>\n </div>\n </div>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="deskAccountItemForm.$invalid || deskAccountItemForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="deskAccountItemForm.$invalid || deskAccountItemForm.$pristine" aria-label="ADD" translate="INTEGRATIONS.ADD" translate-attr-aria-label="INTEGRATIONS.ADD">\n ADD\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newItem" ng-click="vm.deleteItem($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>\n\n<script type="text/ng-template" id="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n <md-option ng-if="vm.customField.options.length" value="picklist">Picklist</md-option>\n </md-select>\n <div ng-messages="deskAccountItemForm.type.$error" ng-show="deskAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <md-select name="option" ng-model="vm.item.content" required>\n <md-option ng-value="option.value" ng-repeat="option in vm.customField.options">{{option.name}}</md-option>\n </md-select>\n\n <div ng-messages="deskAccountItemForm.option.$error" ng-show="deskAccountItemForm.option.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\n <div ng-messages="deskAccountItemForm.content.$error" ng-show="deskAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="deskAccountItemForm.variableName.$error" ng-show="deskAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!--/ value --\x3e\n\n<\/script>\n\n<script type="text/ng-template" id="/subject.html">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="deskAccountItemForm.type.$error" ng-show="deskAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n \n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="deskAccountItemForm.content.$error"\n ng-show="deskAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="deskAccountItemForm.variableName.$error"\n ng-show="deskAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n <\/script>'),e.put("app/main/apps/integrations/views/deskAccounts/edit/view.html",'<div id="integrations-deskAccount" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-deskAccounts-button md-icon-button" aria-label="Go to deskAccounts" ng-click="vm.gotoDeskAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_DESKACCOUNTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="deskAccount-image" hide-xs>\n <img ng-src="assets/images/business/deskAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.deskAccount.id}}\n <span ng-if="vm.deskAccount.name">{{vm.deskAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.deskAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveDeskAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (configurationsForm.$invalid)" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="deskAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.deskAccount.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.deskAccount.type" required ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'integrationTab\'"> {{ \'INTEGRATIONS.INTEGRATION_TAB\' | translate }} </md-option>\n\n <md-option ng-value="\'newTab\'"> {{ \'INTEGRATIONS.NEW_TAB\' | translate }} </md-option>\n </md-select>\n <div ng-messages="generalForm[\'type\'].$error" ng-show="generalForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.deskAccount.remoteUri" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'remoteUri\'].$error" ng-show="generalForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.AUTHTYPE">AuthType</label>\n <md-select name="authType" ng-model="vm.deskAccount.authType" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'basic\'">Basic</md-option>\n </md-select>\n <div ng-messages="generalForm[\'authType\'].$error" ng-show="generalForm[\'authType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.AUTHTYPE_REQUIRED">AuthType field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.deskAccount.authType == \'basic\'" class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.deskAccount.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'username\'].$error" ng-show="generalForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.deskAccount.authType == \'basic\'">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.deskAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="generalForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.deskAccount.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="generalForm[\'serverUrl\'].$error" ng-show="generalForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.deskAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="deskAccount-detail-form-container configurations md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</div>\n </div>\n <div ng-controller="DeskAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.deskAccount, vm.crudPermissions)" layout="row">\n <md-card class="md-whiteframe-1dp" flex="30">\n <div layout="row" layout-align="center center">\n <md-subheader flex="75" class="md-no-sticky">{{ \'INTEGRATIONS.CONFIGURATIONS\' | translate }}</md-subheader>\n <md-button flex="25" ng-if="vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditDeskConfiguration($event)" class="md-icon-button" aria-label="create deskConfiguration">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n <md-list>\n <md-list-item layout="row" layout-align="center center" ng-repeat="deskConfiguration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedDeskConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getDeskConfiguration($index)">\n <span class="text-truncate" flex="80">{{ deskConfiguration.name }}</span>\n <md-menu ng-if="vm_cc.crudPermissions.canDelete">\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteDeskConfiguration($event, deskConfiguration)" translate="INTEGRATIONS.DELETE_DESKCONFIGURATION">\n Delete DeskConfiguration\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-list-item>\n </md-list>\n </md-card>\n <div flex></div>\n <md-card class="md-whiteframe-1dp" flex="65">\n <md-tabs ng-if="vm_cc.configurations.length" md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.SUBJECTS">SUBJECTS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.subject = query" on-collapse="vm_cc.query.subject = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditSubject($event)" aria-label="add subject" translate translate-attr-label="INTEGRATIONS.ADD_SUBJECT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedSubjects.length}} {{vm_cc.selectedSubjects.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedSubjects($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedSubjects">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="subject" md-select-id="id" ng-repeat="subject in vm_cc.subjects | filter: vm_cc.query.subject">\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="id ">{{subject.id}}</td>\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="type ">\n <span ng-if="subject.FieldId">{{subject.nameField || subject.idField}}</span>\n <span ng-if="!subject.FieldId">{{subject.type}}</span>\n </td>\n <td ng-switch="subject.type" ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell>\n <span ng-switch-when="string">{{subject.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{subject.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{subject.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{subject.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditSubject($event, subject)" translate="INTEGRATIONS.EDIT_SUBJECT">\n Edit Subject\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteSubjectConfirm($event, subject)" translate="INTEGRATIONS.DELETE_SUBJECT">\n Delete Subject\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.DESCRIPTIONS">DESCRIPTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.description = query" on-collapse="vm_cc.query.description = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditDescription($event)" aria-label="add description" translate translate-attr-label="INTEGRATIONS.ADD_DESCRIPTION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedDescriptions.length}} {{vm_cc.selectedDescriptions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedDescriptions($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedDescriptions">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="description" md-select-id="id" ng-repeat="description in vm_cc.descriptions | filter: vm_cc.query.description">\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="id ">{{description.id}}</td>\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="type ">\n <span ng-if="description.FieldId">{{description.nameField || description.idField}}</span>\n <span ng-if="!description.FieldId">{{description.type}}</span>\n </td>\n <td ng-switch="description.type" ng-click="vm_cc.createOrEditDescription($event, description)" md-cell>\n <span ng-switch-when="string">{{description.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{description.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{description.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{description.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditDescription($event, description)" translate="INTEGRATIONS.EDIT_DESCRIPTION">\n Edit Description\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteDescriptionConfirm($event, description)" translate="INTEGRATIONS.DELETE_DESCRIPTION">\n Delete Description\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.FIELDS">FIELDS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.field = query" on-collapse="vm_cc.query.field = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditField($event)" aria-label="add field" translate translate-attr-label="INTEGRATIONS.ADD_FIELD">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedFields.length}} {{vm_cc.selectedFields.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedFields($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedFields">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="field" md-select-id="id" ng-repeat="field in vm_cc.fields | filter: vm_cc.query.field">\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="id ">{{field.id}}</td>\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="type ">\n <span ng-if="field.FieldId">{{field.nameField || field.idField}}</span>\n <span ng-if="!field.FieldId">{{field.type}}</span>\n </td>\n <td ng-switch="field.type" ng-click="vm_cc.createOrEditField($event, field)" md-cell>\n <span ng-switch-when="string">{{field.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{field.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{field.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{field.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditField($event, field)" translate="INTEGRATIONS.EDIT_FIELD">\n Edit Field\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteFieldConfirm($event, field)" translate="INTEGRATIONS.DELETE_FIELD">\n Delete Field\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.TAGS">TAGS</span>\n </md-tab-label>\n <md-tab-body>\n <md-table-container class="md-whiteframe-1dp padding-20">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TAGS">Tags</label>\n <md-select ng-model="vm_cc.selectedTags" ng-change="vm_cc.selectTagsChanged($event)" multiple>\n <md-option ng-value="tag.id" ng-repeat="tag in vm_cc.tags">{{ tag.name }}</md-option>\n </md-select>\n </md-input-container>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.configurations.length && vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditDeskConfiguration($event)" layout="row" layout-sm="column" layout-align="center center" layout-wrap>\n <div class="padding-20 md-whiteframe-3dp md-accent-bg" layout="column" layout-align="center center">\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <span aria-label="add configuration" translate translate-attr-label="INTEGRATIONS.ADD_CONFIGURATION">ADD CONFIGURATION</span>\n </div>\n </div>\n </md-card>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/integrations/views/dynamics365Accounts/create/dialog.html",'<md-dialog class="dynamics365Account-dialog" aria-label="New Dynamics365Account">\n <form name="dynamics365AccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.dynamics365Account.name" ng-required="true" autofocus>\n\n <div ng-messages="dynamics365AccountForm[\'name\'].$error" ng-show="dynamics365AccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.dynamics365Account.username" ng-required="true">\n\n <div ng-messages="dynamics365AccountForm[\'username\'].$error" ng-show="dynamics365AccountForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.dynamics365Account.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="dynamics365AccountForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.dynamics365Account.remoteUri" ng-required="true">\n\n <div ng-messages="dynamics365AccountForm[\'remoteUri\'].$error" ng-show="dynamics365AccountForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TENANTID">TenantId</label>\n <input type="text" name="tenantId" ng-model="vm.dynamics365Account.tenantId" ng-required="true">\n\n <div ng-messages="dynamics365AccountForm[\'tenantId\'].$error" ng-show="dynamics365AccountForm[\'tenantId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TENANTID_REQUIRED">TenantId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTID">ClientId</label>\n <input type="text" name="clientId" ng-model="vm.dynamics365Account.clientId" ng-required="true">\n\n <div ng-messages="dynamics365AccountForm[\'clientId\'].$error" ng-show="dynamics365AccountForm[\'clientId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTID_REQUIRED">ClientId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTSECRET">ClientSecret</label>\n <input type="text" name="clientSecret" ng-model="vm.dynamics365Account.clientSecret" ng-required="true">\n\n <div ng-messages="dynamics365AccountForm[\'clientSecret\'].$error" ng-show="dynamics365AccountForm[\'clientSecret\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTSECRET_REQUIRED">ClientSecret field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.dynamics365Account.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="dynamics365AccountForm[\'serverUrl\'].$error" ng-show="dynamics365AccountForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.dynamics365Account.description">\n\n <div ng-messages="dynamics365AccountForm[\'description\'].$error" ng-show="dynamics365AccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newDynamics365Account" ng-click="vm.saveDynamics365Account()" class="send-button md-accent md-raised" ng-disabled="dynamics365AccountForm.$invalid || dynamics365AccountForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newDynamics365Account" ng-click="vm.addNewDynamics365Account()" class="send-button md-accent md-raised" ng-disabled="dynamics365AccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_DYNAMICS365ACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_DYNAMICS365ACCOUNT">\n ADD DYNAMICS365ACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newDynamics365Account" ng-click="vm.deleteDynamics365Account($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/dynamics365Accounts/dynamics365Accounts.html",'<div id="dynamics365Accounts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-heart" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="INTEGRATIONS.DYNAMICS365ACCOUNTS">Dynamics365Accounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedDynamics365Accounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedDynamics365Accounts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="INTEGRATIONS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-dynamics365Accounts-count">\n <span>{{vm.selectedDynamics365Accounts.length}}</span>\n <span translate="INTEGRATIONS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="INTEGRATIONS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllDynamics365Accounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectDynamics365Accounts()" translate="INTEGRATIONS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedDynamics365Accounts" csv-label="true" filename="dynamics365Accounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedDynamics365Accounts($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- DYNAMICS365ACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedDynamics365Accounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getDynamics365Accounts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'INTEGRATIONS.NAME\' | translate }}</th>\n <th md-column md-order-by="username">{{ \'INTEGRATIONS.USERNAME\' | translate }}</th>\n <th md-column md-order-by="remoteUri">{{ \'INTEGRATIONS.URI\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.dynamics365Accounts.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="dynamics365Account" md-select-id="id" ng-repeat="dynamics365Account in vm.dynamics365Accounts.rows">\n <td md-cell ng-if="dynamics365Account.userpic"><img class="avatar" alt="{{dynamics365Account.name}}" ng-src="api/users/{{dynamics365Account.id}}/avatar" /></td>\n <td md-cell ng-if="!dynamics365Account.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{dynamics365Account.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(dynamics365Account, ev) : vm.createOrEditDynamics365Account($event, dynamics365Account)" md-cell class="id ">{{dynamics365Account.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(dynamics365Account, ev) : vm.createOrEditDynamics365Account($event, dynamics365Account)" md-cell class="name ">{{dynamics365Account.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(dynamics365Account, ev) : vm.createOrEditDynamics365Account($event, dynamics365Account)" md-cell class="username ">{{dynamics365Account.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(dynamics365Account, ev) : vm.createOrEditDynamics365Account($event, dynamics365Account)" md-cell class="remoteUri ">{{dynamics365Account.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(dynamics365Account, $event )" translate="INTEGRATIONS.EDIT_DYNAMICS365ACCOUNT">\n Edit Dynamics365Account\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(dynamics365Account, $event )" translate="INTEGRATIONS.TEST_DYNAMICS365ACCOUNT">\n Test Dynamics365Account\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\n\n <md-button ng-click="vm.deleteconfirm(dynamics365Account, $event )" translate="INTEGRATIONS.DELETE_DYNAMICS365ACCOUNT">\n Delete Dynamics365Account\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.dynamics365Accounts.count}}" md-on-paginate="vm.getDynamics365Accounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / DYNAMICS365ACCOUNT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD DYNAMICS365ACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-dynamics365Account-button" ng-click="vm.createOrEditDynamics365Account($event)" aria-label="add dynamics365Account" translate translate-attr-aria-label="INTEGRATIONS.ADD_DYNAMICS365ACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD DYNAMICS365ACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/integrations/views/dynamics365Accounts/edit/configurations/dialog.html",'<md-dialog class="dynamics365Configuration-dialog" aria-label="New Dynamics365Configuration">\n <form name="dynamics365ConfigurationForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="" name="name" ng-model="vm.dynamics365Configuration.name" ng-required="true" autofocus>\n\n <div ng-messages="dynamics365ConfigurationForm[\'name\'].$error" ng-show="dynamics365ConfigurationForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CHANNEL">Channel</label>\n <md-select name="channel" ng-model="vm.dynamics365Configuration.channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="dynamics365ConfigurationForm[\'channel\'].$error" ng-show="dynamics365ConfigurationForm[\'channel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.dynamics365Configuration.type" required>\n\n <md-option ng-value="\'inbound\'"> {{ \'INTEGRATIONS.INBOUND_IN_QUEUE\' | translate }} </md-option>\n\n <md-option ng-value="\'outbound\'"> {{ \'INTEGRATIONS.OUTBOUND_CALL\' | translate }} </md-option>\n </md-select>\n <div ng-messages="dynamics365ConfigurationForm[\'type\'].$error" ng-show="dynamics365ConfigurationForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TICKETTYPE">TicketType</label>\n <md-select name="ticketType" ng-model="vm.dynamics365Configuration.ticketType" required>\n\n <md-option ng-value="\'incident\'"> {{ \'INTEGRATIONS.CASE\' | translate }} </md-option>\n\n <md-option ng-value="\'phonecall\'"> {{ \'INTEGRATIONS.PHONECALL\' | translate }} </md-option>\n </md-select>\n <div ng-messages="dynamics365ConfigurationForm[\'ticketType\'].$error" ng-show="dynamics365ConfigurationForm[\'ticketType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TICKETTYPE_REQUIRED">TicketType field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newDynamics365Configuration" ng-click="vm.saveDynamics365Configuration()" class="send-button md-accent md-raised" ng-disabled="dynamics365ConfigurationForm.$invalid || dynamics365ConfigurationForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newDynamics365Configuration" ng-click="vm.addNewDynamics365Configuration()" class="send-button md-accent md-raised" ng-disabled="dynamics365ConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_DYNAMICS365CONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_DYNAMICS365CONFIGURATION">\n ADD DYNAMICS365CONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newDynamics365Configuration" ng-click="vm.deleteDynamics365Configuration($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/dynamics365Accounts/edit/item/dialog.html",'<md-dialog class="dynamics365Account-item-dialog" aria-label="New Item">\n <form name="dynamics365AccountItemForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <div ng-switch="vm.type">\n <div ng-switch-when="subject">\n \x3c!-- SUBJECT SECTION --\x3e\n <div ng-include="\'/subject.html\'"></div>\n \x3c!-- / SUBJECT SECTION --\x3e\n </div>\n <div ng-switch-when="description">\n \x3c!-- DESCRIPTION SECTION --\x3e\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="keyValue">Key Value</md-option>\n </md-select>\n <div ng-messages="dynamics365AccountItemForm.type.$error" ng-show="dynamics365AccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="dynamics365AccountItemForm.content.$error" ng-show="dynamics365AccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field\n is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.item.type == \'keyValue\'">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.item.key" required md-autofocus>\n <div ng-messages="dynamics365AccountItemForm.key.$error" ng-show="dynamics365AccountItemForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="keyType" ng-model="vm.item.keyType" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="dynamics365AccountItemForm.keyType.$error" ng-show="dynamics365AccountItemForm.keyType.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="keyContent" ng-model="vm.item.keyContent" required md-autofocus>\n <div ng-messages="dynamics365AccountItemForm.keyContent.$error" ng-show="dynamics365AccountItemForm.keyContent.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content\n field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="dynamics365AccountItemForm.variableName.$error" ng-show="dynamics365AccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable\n name field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}\n </md-option>\n </md-select>\n </md-input-container>\n </div>\n \x3c!-- / DESCRIPTION SECTION --\x3e\n </div>\n <div ng-switch-when="field">\n \x3c!-- FIELD SECTION --\x3e\n <div ng-if="vm.accountConnected">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.FIELD">FIELD</label>\n \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\n </md-select>\n <div ng-messages="dynamics365AccountItemForm.customField.$error" ng-show="dynamics365AccountItemForm.customField.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\n </div>\n <div ng-if="!vm.accountConnected">\n <p>Account is not connected. Please check your configurations!</p>\n </div>\n \x3c!-- / FIELD SECTION --\x3e\n </div>\n <div ng-switch-default>\n <p>No Item</p>\n </div>\n </div>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="dynamics365AccountItemForm.$invalid || dynamics365AccountItemForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="dynamics365AccountItemForm.$invalid || dynamics365AccountItemForm.$pristine" aria-label="ADD" translate="INTEGRATIONS.ADD" translate-attr-aria-label="INTEGRATIONS.ADD">\n ADD\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newItem" ng-click="vm.deleteItem($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>\n\n<script type="text/ng-template" id="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n <md-option ng-if="vm.customField.options.length" value="picklist">Picklist</md-option>\n </md-select>\n <div ng-messages="dynamics365AccountItemForm.type.$error" ng-show="dynamics365AccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <md-select name="option" ng-model="vm.item.content" required>\n <md-option ng-value="option.value" ng-repeat="option in vm.customField.options">{{option.name}}</md-option>\n </md-select>\n\n <div ng-messages="dynamics365AccountItemForm.option.$error" ng-show="dynamics365AccountItemForm.option.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\n <div ng-messages="dynamics365AccountItemForm.content.$error" ng-show="dynamics365AccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="dynamics365AccountItemForm.variableName.$error" ng-show="dynamics365AccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!--/ value --\x3e\n\n<\/script>\n\n<script type="text/ng-template" id="/subject.html">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="dynamics365AccountItemForm.type.$error" ng-show="dynamics365AccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n \n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="dynamics365AccountItemForm.content.$error"\n ng-show="dynamics365AccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="dynamics365AccountItemForm.variableName.$error"\n ng-show="dynamics365AccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n <\/script>'),e.put("app/main/apps/integrations/views/dynamics365Accounts/edit/view.html",'<div id="integrations-dynamics365Account" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-dynamics365Accounts-button md-icon-button" aria-label="Go to dynamics365Accounts" ng-click="vm.gotoDynamics365Accounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_DYNAMICS365ACCOUNTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="dynamics365Account-image" hide-xs>\n <img ng-src="assets/images/business/dynamics365Accounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.dynamics365Account.id}}\n <span ng-if="vm.dynamics365Account.name">{{vm.dynamics365Account.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.dynamics365Account.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveDynamics365Account()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (configurationsForm.$invalid)" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="dynamics365Account-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.dynamics365Account.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.dynamics365Account.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'username\'].$error" ng-show="generalForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.dynamics365Account.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="generalForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.dynamics365Account.remoteUri" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'remoteUri\'].$error" ng-show="generalForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TENANTID">TenantId</label>\n <input type="text" name="tenantId" ng-model="vm.dynamics365Account.tenantId" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'tenantId\'].$error" ng-show="generalForm[\'tenantId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TENANTID_REQUIRED">TenantId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTID">ClientId</label>\n <input type="text" name="clientId" ng-model="vm.dynamics365Account.clientId" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'clientId\'].$error" ng-show="generalForm[\'clientId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTID_REQUIRED">ClientId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTSECRET">ClientSecret</label>\n <input type="text" name="clientSecret" ng-model="vm.dynamics365Account.clientSecret" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'clientSecret\'].$error" ng-show="generalForm[\'clientSecret\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTSECRET_REQUIRED">ClientSecret field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.dynamics365Account.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="generalForm[\'serverUrl\'].$error" ng-show="generalForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.dynamics365Account.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="dynamics365Account-detail-form-container configurations md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</div>\n </div>\n <div ng-controller="Dynamics365AccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.dynamics365Account, vm.crudPermissions)" layout="row">\n <md-card class="md-whiteframe-1dp" flex="30">\n <div layout="row" layout-align="center center">\n <md-subheader flex="75" class="md-no-sticky">{{ \'INTEGRATIONS.CONFIGURATIONS\' | translate }}</md-subheader>\n <md-button flex="25" ng-if="vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditDynamics365Configuration($event)" class="md-icon-button" aria-label="create dynamics365Configuration">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n <md-list>\n <md-list-item layout="row" layout-align="center center" ng-repeat="dynamics365Configuration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedDynamics365Configuration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getDynamics365Configuration($index)">\n <span class="text-truncate" flex="80">{{ dynamics365Configuration.name }}</span>\n <md-menu ng-if="vm_cc.crudPermissions.canDelete">\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteDynamics365Configuration($event, dynamics365Configuration)" translate="INTEGRATIONS.DELETE_DYNAMICS365CONFIGURATION">\n Delete Dynamics365Configuration\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-list-item>\n </md-list>\n </md-card>\n <div flex></div>\n <md-card class="md-whiteframe-1dp" flex="65">\n <md-tabs ng-if="vm_cc.configurations.length" md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.SUBJECTS">SUBJECTS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.subject = query" on-collapse="vm_cc.query.subject = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditSubject($event)" aria-label="add subject" translate translate-attr-label="INTEGRATIONS.ADD_SUBJECT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedSubjects.length}} {{vm_cc.selectedSubjects.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedSubjects($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedSubjects">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="subject" md-select-id="id" ng-repeat="subject in vm_cc.subjects | filter: vm_cc.query.subject">\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="id ">{{subject.id}}</td>\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="type ">\n <span ng-if="subject.FieldId">{{subject.nameField || subject.idField}}</span>\n <span ng-if="!subject.FieldId">{{subject.type}}</span>\n </td>\n <td ng-switch="subject.type" ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell>\n <span ng-switch-when="string">{{subject.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{subject.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{subject.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{subject.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditSubject($event, subject)" translate="INTEGRATIONS.EDIT_SUBJECT">\n Edit Subject\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteSubjectConfirm($event, subject)" translate="INTEGRATIONS.DELETE_SUBJECT">\n Delete Subject\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.DESCRIPTIONS">DESCRIPTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.description = query" on-collapse="vm_cc.query.description = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditDescription($event)" aria-label="add description" translate translate-attr-label="INTEGRATIONS.ADD_DESCRIPTION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedDescriptions.length}} {{vm_cc.selectedDescriptions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedDescriptions($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedDescriptions">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="description" md-select-id="id" ng-repeat="description in vm_cc.descriptions | filter: vm_cc.query.description">\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="id ">{{description.id}}</td>\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="type ">\n <span ng-if="description.FieldId">{{description.nameField || description.idField}}</span>\n <span ng-if="!description.FieldId">{{description.type}}</span>\n </td>\n <td ng-switch="description.type" ng-click="vm_cc.createOrEditDescription($event, description)" md-cell>\n <span ng-switch-when="string">{{description.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{description.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{description.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{description.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditDescription($event, description)" translate="INTEGRATIONS.EDIT_DESCRIPTION">\n Edit Description\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteDescriptionConfirm($event, description)" translate="INTEGRATIONS.DELETE_DESCRIPTION">\n Delete Description\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.FIELDS">FIELDS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.field = query" on-collapse="vm_cc.query.field = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditField($event)" aria-label="add field" translate translate-attr-label="INTEGRATIONS.ADD_FIELD">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedFields.length}} {{vm_cc.selectedFields.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedFields($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedFields">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="field" md-select-id="id" ng-repeat="field in vm_cc.fields | filter: vm_cc.query.field">\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="id ">{{field.id}}</td>\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="type ">\n <span ng-if="field.FieldId">{{field.nameField || field.idField}}</span>\n <span ng-if="!field.FieldId">{{field.type}}</span>\n </td>\n <td ng-switch="field.type" ng-click="vm_cc.createOrEditField($event, field)" md-cell>\n <span ng-switch-when="string">{{field.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{field.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{field.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{field.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditField($event, field)" translate="INTEGRATIONS.EDIT_FIELD">\n Edit Field\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteFieldConfirm($event, field)" translate="INTEGRATIONS.DELETE_FIELD">\n Delete Field\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.configurations.length && vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditDynamics365Configuration($event)" layout="row" layout-sm="column" layout-align="center center" layout-wrap>\n <div class="padding-20 md-whiteframe-3dp md-accent-bg" layout="column" layout-align="center center">\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <span aria-label="add configuration" translate translate-attr-label="INTEGRATIONS.ADD_CONFIGURATION">ADD CONFIGURATION</span>\n </div>\n </div>\n </md-card>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/integrations/views/freshdeskAccounts/create/dialog.html",'<md-dialog class="freshdeskAccount-dialog" aria-label="New FreshdeskAccount">\n <form name="freshdeskAccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.freshdeskAccount.name" ng-required="true" autofocus>\n\n <div ng-messages="freshdeskAccountForm[\'name\'].$error" ng-show="freshdeskAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.freshdeskAccount.username" ng-required="true">\n\n <div ng-messages="freshdeskAccountForm[\'username\'].$error" ng-show="freshdeskAccountForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.freshdeskAccount.remoteUri" ng-required="true">\n\n <div ng-messages="freshdeskAccountForm[\'remoteUri\'].$error" ng-show="freshdeskAccountForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.APIKEY">ApiKey</label>\n <input type="text" name="apiKey" ng-model="vm.freshdeskAccount.apiKey" ng-required="true">\n\n <div ng-messages="freshdeskAccountForm[\'apiKey\'].$error" ng-show="freshdeskAccountForm[\'apiKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.APIKEY_REQUIRED">ApiKey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.freshdeskAccount.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="freshdeskAccountForm[\'serverUrl\'].$error" ng-show="freshdeskAccountForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.freshdeskAccount.description">\n\n <div ng-messages="freshdeskAccountForm[\'description\'].$error" ng-show="freshdeskAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newFreshdeskAccount" ng-click="vm.saveFreshdeskAccount()" class="send-button md-accent md-raised" ng-disabled="freshdeskAccountForm.$invalid || freshdeskAccountForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newFreshdeskAccount" ng-click="vm.addNewFreshdeskAccount()" class="send-button md-accent md-raised" ng-disabled="freshdeskAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_FRESHDESKACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_FRESHDESKACCOUNT">\n ADD FRESHDESKACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newFreshdeskAccount" ng-click="vm.deleteFreshdeskAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/freshdeskAccounts/edit/configurations/dialog.html",'<md-dialog class="freshdeskConfiguration-dialog" aria-label="New FreshdeskConfiguration">\n <form name="freshdeskConfigurationForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="" name="name" ng-model="vm.freshdeskConfiguration.name" ng-required="true" autofocus>\n\n <div ng-messages="freshdeskConfigurationForm[\'name\'].$error" ng-show="freshdeskConfigurationForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CHANNEL">Channel</label>\n <md-select name="channel" ng-model="vm.freshdeskConfiguration.channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="freshdeskConfigurationForm[\'channel\'].$error" ng-show="freshdeskConfigurationForm[\'channel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.freshdeskConfiguration.type" required>\n\n <md-option ng-value="\'inbound\'"> {{ \'INTEGRATIONS.INBOUND_IN_QUEUE\' | translate }} </md-option>\n\n <md-option ng-value="\'outbound\'"> {{ \'INTEGRATIONS.OUTBOUND_CALL\' | translate }} </md-option>\n </md-select>\n <div ng-messages="freshdeskConfigurationForm[\'type\'].$error" ng-show="freshdeskConfigurationForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newFreshdeskConfiguration" ng-click="vm.saveFreshdeskConfiguration()" class="send-button md-accent md-raised" ng-disabled="freshdeskConfigurationForm.$invalid || freshdeskConfigurationForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newFreshdeskConfiguration" ng-click="vm.addNewFreshdeskConfiguration()" class="send-button md-accent md-raised" ng-disabled="freshdeskConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_FRESHDESKCONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_FRESHDESKCONFIGURATION">\n ADD FRESHDESKCONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newFreshdeskConfiguration" ng-click="vm.deleteFreshdeskConfiguration($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/freshdeskAccounts/edit/item/dialog.html",'<md-dialog class="freshdeskAccount-item-dialog" aria-label="New Item">\n <form name="freshdeskAccountItemForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <div ng-switch="vm.type">\n <div ng-switch-when="subject">\n \x3c!-- SUBJECT SECTION --\x3e\n <div ng-include="\'/subject.html\'"></div>\n \x3c!-- / SUBJECT SECTION --\x3e\n </div>\n <div ng-switch-when="description">\n \x3c!-- DESCRIPTION SECTION --\x3e\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="keyValue">Key Value</md-option>\n </md-select>\n <div ng-messages="freshdeskAccountItemForm.type.$error" ng-show="freshdeskAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="freshdeskAccountItemForm.content.$error" ng-show="freshdeskAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field\n is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.item.type == \'keyValue\'">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.item.key" required md-autofocus>\n <div ng-messages="freshdeskAccountItemForm.key.$error" ng-show="freshdeskAccountItemForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="keyType" ng-model="vm.item.keyType" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="freshdeskAccountItemForm.keyType.$error" ng-show="freshdeskAccountItemForm.keyType.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="keyContent" ng-model="vm.item.keyContent" required md-autofocus>\n <div ng-messages="freshdeskAccountItemForm.keyContent.$error" ng-show="freshdeskAccountItemForm.keyContent.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content\n field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="freshdeskAccountItemForm.variableName.$error" ng-show="freshdeskAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable\n name field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}\n </md-option>\n </md-select>\n </md-input-container>\n </div>\n \x3c!-- / DESCRIPTION SECTION --\x3e\n </div>\n <div ng-switch-when="field">\n \x3c!-- FIELD SECTION --\x3e\n <div ng-if="vm.accountConnected">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.FIELD">FIELD</label>\n \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\n </md-select>\n <div ng-messages="freshdeskAccountItemForm.customField.$error" ng-show="freshdeskAccountItemForm.customField.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\n </div>\n <div ng-if="!vm.accountConnected">\n <p>Account is not connected. Please check your configurations!</p>\n </div>\n \x3c!-- / FIELD SECTION --\x3e\n </div>\n <div ng-switch-default>\n <p>No Item</p>\n </div>\n </div>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="freshdeskAccountItemForm.$invalid || freshdeskAccountItemForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="freshdeskAccountItemForm.$invalid || freshdeskAccountItemForm.$pristine" aria-label="ADD" translate="INTEGRATIONS.ADD" translate-attr-aria-label="INTEGRATIONS.ADD">\n ADD\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newItem" ng-click="vm.deleteItem($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>\n\n<script type="text/ng-template" id="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n <md-option ng-if="vm.customField.options.length" value="picklist">Picklist</md-option>\n </md-select>\n <div ng-messages="freshdeskAccountItemForm.type.$error" ng-show="freshdeskAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <md-select name="option" ng-model="vm.item.content" required>\n <md-option ng-value="option.value" ng-repeat="option in vm.customField.options">{{option.name}}</md-option>\n </md-select>\n\n <div ng-messages="freshdeskAccountItemForm.option.$error" ng-show="freshdeskAccountItemForm.option.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\n <div ng-messages="freshdeskAccountItemForm.content.$error" ng-show="freshdeskAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="freshdeskAccountItemForm.variableName.$error" ng-show="freshdeskAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!--/ value --\x3e\n\n<\/script>\n\n<script type="text/ng-template" id="/subject.html">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="freshdeskAccountItemForm.type.$error" ng-show="freshdeskAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n \n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="freshdeskAccountItemForm.content.$error"\n ng-show="freshdeskAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="freshdeskAccountItemForm.variableName.$error"\n ng-show="freshdeskAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n <\/script>'),e.put("app/main/apps/integrations/views/freshdeskAccounts/edit/view.html",'<div id="integrations-freshdeskAccount" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-freshdeskAccounts-button md-icon-button" aria-label="Go to freshdeskAccounts" ng-click="vm.gotoFreshdeskAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_FRESHDESKACCOUNTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="freshdeskAccount-image" hide-xs>\n <img ng-src="assets/images/business/freshdeskAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.freshdeskAccount.id}}\n <span ng-if="vm.freshdeskAccount.name">{{vm.freshdeskAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.freshdeskAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveFreshdeskAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (configurationsForm.$invalid)" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="freshdeskAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.freshdeskAccount.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.freshdeskAccount.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'username\'].$error" ng-show="generalForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.freshdeskAccount.remoteUri" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'remoteUri\'].$error" ng-show="generalForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.APIKEY">ApiKey</label>\n <input type="text" name="apiKey" ng-model="vm.freshdeskAccount.apiKey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'apiKey\'].$error" ng-show="generalForm[\'apiKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.APIKEY_REQUIRED">ApiKey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.freshdeskAccount.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="generalForm[\'serverUrl\'].$error" ng-show="generalForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.freshdeskAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="freshdeskAccount-detail-form-container configurations md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</div>\n </div>\n <div ng-controller="FreshdeskAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.freshdeskAccount, vm.crudPermissions)" layout="row">\n <md-card class="md-whiteframe-1dp" flex="30">\n <div layout="row" layout-align="center center">\n <md-subheader flex="75" class="md-no-sticky">{{ \'INTEGRATIONS.CONFIGURATIONS\' | translate }}</md-subheader>\n <md-button flex="25" ng-if="vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditFreshdeskConfiguration($event)" class="md-icon-button" aria-label="create freshdeskConfiguration">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n <md-list>\n <md-list-item layout="row" layout-align="center center" ng-repeat="freshdeskConfiguration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedFreshdeskConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getFreshdeskConfiguration($index)">\n <span class="text-truncate" flex="80">{{ freshdeskConfiguration.name }}</span>\n <md-menu ng-if="vm_cc.crudPermissions.canDelete">\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteFreshdeskConfiguration($event, freshdeskConfiguration)" translate="INTEGRATIONS.DELETE_FRESHDESKCONFIGURATION">\n Delete FreshdeskConfiguration\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-list-item>\n </md-list>\n </md-card>\n <div flex></div>\n <md-card class="md-whiteframe-1dp" flex="65">\n <md-tabs ng-if="vm_cc.configurations.length" md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.SUBJECTS">SUBJECTS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.subject = query" on-collapse="vm_cc.query.subject = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditSubject($event)" aria-label="add subject" translate translate-attr-label="INTEGRATIONS.ADD_SUBJECT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedSubjects.length}} {{vm_cc.selectedSubjects.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedSubjects($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedSubjects">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="subject" md-select-id="id" ng-repeat="subject in vm_cc.subjects | filter: vm_cc.query.subject">\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="id ">{{subject.id}}</td>\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="type ">\n <span ng-if="subject.FieldId">{{subject.nameField || subject.idField}}</span>\n <span ng-if="!subject.FieldId">{{subject.type}}</span>\n </td>\n <td ng-switch="subject.type" ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell>\n <span ng-switch-when="string">{{subject.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{subject.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{subject.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{subject.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditSubject($event, subject)" translate="INTEGRATIONS.EDIT_SUBJECT">\n Edit Subject\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteSubjectConfirm($event, subject)" translate="INTEGRATIONS.DELETE_SUBJECT">\n Delete Subject\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.DESCRIPTIONS">DESCRIPTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.description = query" on-collapse="vm_cc.query.description = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditDescription($event)" aria-label="add description" translate translate-attr-label="INTEGRATIONS.ADD_DESCRIPTION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedDescriptions.length}} {{vm_cc.selectedDescriptions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedDescriptions($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedDescriptions">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="description" md-select-id="id" ng-repeat="description in vm_cc.descriptions | filter: vm_cc.query.description">\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="id ">{{description.id}}</td>\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="type ">\n <span ng-if="description.FieldId">{{description.nameField || description.idField}}</span>\n <span ng-if="!description.FieldId">{{description.type}}</span>\n </td>\n <td ng-switch="description.type" ng-click="vm_cc.createOrEditDescription($event, description)" md-cell>\n <span ng-switch-when="string">{{description.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{description.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{description.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{description.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditDescription($event, description)" translate="INTEGRATIONS.EDIT_DESCRIPTION">\n Edit Description\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteDescriptionConfirm($event, description)" translate="INTEGRATIONS.DELETE_DESCRIPTION">\n Delete Description\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.FIELDS">FIELDS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.field = query" on-collapse="vm_cc.query.field = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditField($event)" aria-label="add field" translate translate-attr-label="INTEGRATIONS.ADD_FIELD">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedFields.length}} {{vm_cc.selectedFields.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedFields($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedFields">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="field" md-select-id="id" ng-repeat="field in vm_cc.fields | filter: vm_cc.query.field">\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="id ">{{field.id}}</td>\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="type ">\n <span ng-if="field.FieldId">{{field.nameField || field.idField}}</span>\n <span ng-if="!field.FieldId">{{field.type}}</span>\n </td>\n <td ng-switch="field.type" ng-click="vm_cc.createOrEditField($event, field)" md-cell>\n <span ng-switch-when="string">{{field.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{field.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{field.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{field.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditField($event, field)" translate="INTEGRATIONS.EDIT_FIELD">\n Edit Field\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteFieldConfirm($event, field)" translate="INTEGRATIONS.DELETE_FIELD">\n Delete Field\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.TAGS">TAGS</span>\n </md-tab-label>\n <md-tab-body>\n <md-table-container class="md-whiteframe-1dp padding-20">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TAGS">Tags</label>\n <md-select ng-model="vm_cc.selectedTags" ng-change="vm_cc.selectTagsChanged($event)" multiple>\n <md-option ng-value="tag.id" ng-repeat="tag in vm_cc.tags">{{ tag.name }}</md-option>\n </md-select>\n </md-input-container>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.configurations.length && vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditFreshdeskConfiguration($event)" layout="row" layout-sm="column" layout-align="center center" layout-wrap>\n <div class="padding-20 md-whiteframe-3dp md-accent-bg" layout="column" layout-align="center center">\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <span aria-label="add configuration" translate translate-attr-label="INTEGRATIONS.ADD_CONFIGURATION">ADD CONFIGURATION</span>\n </div>\n </div>\n </md-card>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/integrations/views/freshdeskAccounts/freshdeskAccounts.html",'<div id="freshdeskAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-heart" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="INTEGRATIONS.FRESHDESKACCOUNTS">FreshdeskAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedFreshdeskAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedFreshdeskAccounts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="INTEGRATIONS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-freshdeskAccounts-count">\n <span>{{vm.selectedFreshdeskAccounts.length}}</span>\n <span translate="INTEGRATIONS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="INTEGRATIONS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllFreshdeskAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectFreshdeskAccounts()" translate="INTEGRATIONS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedFreshdeskAccounts" csv-label="true" filename="freshdeskAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedFreshdeskAccounts($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- FRESHDESKACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedFreshdeskAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getFreshdeskAccounts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'INTEGRATIONS.NAME\' | translate }}</th>\n <th md-column md-order-by="username">{{ \'INTEGRATIONS.USERNAME\' | translate }}</th>\n <th md-column md-order-by="remoteUri">{{ \'INTEGRATIONS.URI\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.freshdeskAccounts.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="freshdeskAccount" md-select-id="id" ng-repeat="freshdeskAccount in vm.freshdeskAccounts.rows">\n <td md-cell ng-if="freshdeskAccount.userpic"><img class="avatar" alt="{{freshdeskAccount.name}}" ng-src="api/users/{{freshdeskAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!freshdeskAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{freshdeskAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshdeskAccount, ev) : vm.createOrEditFreshdeskAccount($event, freshdeskAccount)" md-cell class="id ">{{freshdeskAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshdeskAccount, ev) : vm.createOrEditFreshdeskAccount($event, freshdeskAccount)" md-cell class="name ">{{freshdeskAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshdeskAccount, ev) : vm.createOrEditFreshdeskAccount($event, freshdeskAccount)" md-cell class="username ">{{freshdeskAccount.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshdeskAccount, ev) : vm.createOrEditFreshdeskAccount($event, freshdeskAccount)" md-cell class="remoteUri ">{{freshdeskAccount.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(freshdeskAccount, $event )" translate="INTEGRATIONS.EDIT_FRESHDESKACCOUNT">\n Edit FreshdeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(freshdeskAccount, $event )" translate="INTEGRATIONS.TEST_FRESHDESKACCOUNT">\n Test FreshdeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(freshdeskAccount, $event )" translate="INTEGRATIONS.DELETE_FRESHDESKACCOUNT">\n Delete FreshdeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.freshdeskAccounts.count}}" md-on-paginate="vm.getFreshdeskAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / FRESHDESKACCOUNT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD FRESHDESKACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-freshdeskAccount-button" ng-click="vm.createOrEditFreshdeskAccount($event)" aria-label="add freshdeskAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_FRESHDESKACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD FRESHDESKACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/integrations/views/freshsalesAccounts/create/dialog.html",'<md-dialog class="freshsalesAccount-dialog" aria-label="New FreshsalesAccount">\n <form name="freshsalesAccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.freshsalesAccount.name" ng-required="true" autofocus>\n\n <div ng-messages="freshsalesAccountForm[\'name\'].$error" ng-show="freshsalesAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.freshsalesAccount.username" ng-required="true">\n\n <div ng-messages="freshsalesAccountForm[\'username\'].$error" ng-show="freshsalesAccountForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.freshsalesAccount.remoteUri" ng-required="true">\n\n <div ng-messages="freshsalesAccountForm[\'remoteUri\'].$error" ng-show="freshsalesAccountForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.APIKEY">ApiKey</label>\n <input type="text" name="apiKey" ng-model="vm.freshsalesAccount.apiKey" ng-required="true">\n\n <div ng-messages="freshsalesAccountForm[\'apiKey\'].$error" ng-show="freshsalesAccountForm[\'apiKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.APIKEY_REQUIRED">ApiKey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.freshsalesAccount.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="freshsalesAccountForm[\'serverUrl\'].$error" ng-show="freshsalesAccountForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.freshsalesAccount.description">\n\n <div ng-messages="freshsalesAccountForm[\'description\'].$error" ng-show="freshsalesAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newFreshsalesAccount" ng-click="vm.saveFreshsalesAccount()" class="send-button md-accent md-raised" ng-disabled="freshsalesAccountForm.$invalid || freshsalesAccountForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newFreshsalesAccount" ng-click="vm.addNewFreshsalesAccount()" class="send-button md-accent md-raised" ng-disabled="freshsalesAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_FRESHSALESACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_FRESHSALESACCOUNT">\n ADD FRESHSALESACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newFreshsalesAccount" ng-click="vm.deleteFreshsalesAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/freshsalesAccounts/edit/configurations/dialog.html",'<md-dialog class="freshsalesConfiguration-dialog" aria-label="New FreshsalesConfiguration">\n <form name="freshsalesConfigurationForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="" name="name" ng-model="vm.freshsalesConfiguration.name" ng-required="true" autofocus>\n\n <div ng-messages="freshsalesConfigurationForm[\'name\'].$error" ng-show="freshsalesConfigurationForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CHANNEL">Channel</label>\n <md-select name="channel" ng-model="vm.freshsalesConfiguration.channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="freshsalesConfigurationForm[\'channel\'].$error" ng-show="freshsalesConfigurationForm[\'channel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.freshsalesConfiguration.type" required>\n\n <md-option ng-value="\'inbound\'"> {{ \'INTEGRATIONS.INBOUND_IN_QUEUE\' | translate }} </md-option>\n\n <md-option ng-value="\'outbound\'"> {{ \'INTEGRATIONS.OUTBOUND_CALL\' | translate }} </md-option>\n </md-select>\n <div ng-messages="freshsalesConfigurationForm[\'type\'].$error" ng-show="freshsalesConfigurationForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newFreshsalesConfiguration" ng-click="vm.saveFreshsalesConfiguration()" class="send-button md-accent md-raised" ng-disabled="freshsalesConfigurationForm.$invalid || freshsalesConfigurationForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newFreshsalesConfiguration" ng-click="vm.addNewFreshsalesConfiguration()" class="send-button md-accent md-raised" ng-disabled="freshsalesConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_FRESHSALESCONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_FRESHSALESCONFIGURATION">\n ADD FRESHSALESCONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newFreshsalesConfiguration" ng-click="vm.deleteFreshsalesConfiguration($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/freshsalesAccounts/edit/item/dialog.html",'<md-dialog class="freshsalesAccount-item-dialog" aria-label="New Item">\n <form name="freshsalesAccountItemForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <div ng-switch="vm.type">\n <div ng-switch-when="subject">\n \x3c!-- SUBJECT SECTION --\x3e\n <div ng-include="\'/subject.html\'"></div>\n \x3c!-- / SUBJECT SECTION --\x3e\n </div>\n <div ng-switch-when="description">\n \x3c!-- DESCRIPTION SECTION --\x3e\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="keyValue">Key Value</md-option>\n </md-select>\n <div ng-messages="freshsalesAccountItemForm.type.$error" ng-show="freshsalesAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="freshsalesAccountItemForm.content.$error" ng-show="freshsalesAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field\n is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.item.type == \'keyValue\'">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.item.key" required md-autofocus>\n <div ng-messages="freshsalesAccountItemForm.key.$error" ng-show="freshsalesAccountItemForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="keyType" ng-model="vm.item.keyType" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="freshsalesAccountItemForm.keyType.$error" ng-show="freshsalesAccountItemForm.keyType.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="keyContent" ng-model="vm.item.keyContent" required md-autofocus>\n <div ng-messages="freshsalesAccountItemForm.keyContent.$error" ng-show="freshsalesAccountItemForm.keyContent.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content\n field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="freshsalesAccountItemForm.variableName.$error" ng-show="freshsalesAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable\n name field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}\n </md-option>\n </md-select>\n </md-input-container>\n </div>\n \x3c!-- / DESCRIPTION SECTION --\x3e\n </div>\n <div ng-switch-when="field">\n \x3c!-- FIELD SECTION --\x3e\n <div ng-if="vm.accountConnected">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.FIELD">FIELD</label>\n \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\n </md-select>\n <div ng-messages="freshsalesAccountItemForm.customField.$error" ng-show="freshsalesAccountItemForm.customField.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\n </div>\n <div ng-if="!vm.accountConnected">\n <p>Account is not connected. Please check your configurations!</p>\n </div>\n \x3c!-- / FIELD SECTION --\x3e\n </div>\n <div ng-switch-default>\n <p>No Item</p>\n </div>\n </div>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="freshsalesAccountItemForm.$invalid || freshsalesAccountItemForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="freshsalesAccountItemForm.$invalid || freshsalesAccountItemForm.$pristine" aria-label="ADD" translate="INTEGRATIONS.ADD" translate-attr-aria-label="INTEGRATIONS.ADD">\n ADD\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newItem" ng-click="vm.deleteItem($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>\n\n<script type="text/ng-template" id="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n <md-option ng-if="vm.customField.options.length" value="picklist">Picklist</md-option>\n </md-select>\n <div ng-messages="freshsalesAccountItemForm.type.$error" ng-show="freshsalesAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <md-select name="option" ng-model="vm.item.content" required>\n <md-option ng-value="option.value" ng-repeat="option in vm.customField.options">{{option.name}}</md-option>\n </md-select>\n\n <div ng-messages="freshsalesAccountItemForm.option.$error" ng-show="freshsalesAccountItemForm.option.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\n <div ng-messages="freshsalesAccountItemForm.content.$error" ng-show="freshsalesAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="freshsalesAccountItemForm.variableName.$error" ng-show="freshsalesAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!--/ value --\x3e\n\n<\/script>\n\n<script type="text/ng-template" id="/subject.html">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="freshsalesAccountItemForm.type.$error" ng-show="freshsalesAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n \n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="freshsalesAccountItemForm.content.$error"\n ng-show="freshsalesAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="freshsalesAccountItemForm.variableName.$error"\n ng-show="freshsalesAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n <\/script>'),e.put("app/main/apps/integrations/views/freshsalesAccounts/edit/view.html",'<div id="integrations-freshsalesAccount" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-freshsalesAccounts-button md-icon-button" aria-label="Go to freshsalesAccounts" ng-click="vm.gotoFreshsalesAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_FRESHSALESACCOUNTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="freshsalesAccount-image" hide-xs>\n <img ng-src="assets/images/business/freshsalesAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.freshsalesAccount.id}}\n <span ng-if="vm.freshsalesAccount.name">{{vm.freshsalesAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.freshsalesAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveFreshsalesAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (configurationsForm.$invalid)" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="freshsalesAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.freshsalesAccount.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.freshsalesAccount.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'username\'].$error" ng-show="generalForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.freshsalesAccount.remoteUri" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'remoteUri\'].$error" ng-show="generalForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.APIKEY">ApiKey</label>\n <input type="text" name="apiKey" ng-model="vm.freshsalesAccount.apiKey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'apiKey\'].$error" ng-show="generalForm[\'apiKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.APIKEY_REQUIRED">ApiKey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.freshsalesAccount.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="generalForm[\'serverUrl\'].$error" ng-show="generalForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.freshsalesAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="freshsalesAccount-detail-form-container configurations md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</div>\n </div>\n <div ng-controller="FreshsalesAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.freshsalesAccount, vm.crudPermissions)" layout="row">\n <md-card class="md-whiteframe-1dp" flex="30">\n <div layout="row" layout-align="center center">\n <md-subheader flex="75" class="md-no-sticky">{{ \'INTEGRATIONS.CONFIGURATIONS\' | translate }}</md-subheader>\n <md-button flex="25" ng-if="vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditFreshsalesConfiguration($event)" class="md-icon-button" aria-label="create freshsalesConfiguration">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n <md-list>\n <md-list-item layout="row" layout-align="center center" ng-repeat="freshsalesConfiguration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedFreshsalesConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getFreshsalesConfiguration($index)">\n <span class="text-truncate" flex="80">{{ freshsalesConfiguration.name }}</span>\n <md-menu ng-if="vm_cc.crudPermissions.canDelete">\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteFreshsalesConfiguration($event, freshsalesConfiguration)" translate="INTEGRATIONS.DELETE_FRESHSALESCONFIGURATION">\n Delete FreshsalesConfiguration\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-list-item>\n </md-list>\n </md-card>\n <div flex></div>\n <md-card class="md-whiteframe-1dp" flex="65">\n <md-tabs ng-if="vm_cc.configurations.length" md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.SUBJECTS">SUBJECTS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.subject = query" on-collapse="vm_cc.query.subject = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditSubject($event)" aria-label="add subject" translate translate-attr-label="INTEGRATIONS.ADD_SUBJECT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedSubjects.length}} {{vm_cc.selectedSubjects.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedSubjects($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedSubjects">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="subject" md-select-id="id" ng-repeat="subject in vm_cc.subjects | filter: vm_cc.query.subject">\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="id ">{{subject.id}}</td>\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="type ">\n <span ng-if="subject.FieldId">{{subject.nameField || subject.idField}}</span>\n <span ng-if="!subject.FieldId">{{subject.type}}</span>\n </td>\n <td ng-switch="subject.type" ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell>\n <span ng-switch-when="string">{{subject.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{subject.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{subject.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{subject.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditSubject($event, subject)" translate="INTEGRATIONS.EDIT_SUBJECT">\n Edit Subject\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteSubjectConfirm($event, subject)" translate="INTEGRATIONS.DELETE_SUBJECT">\n Delete Subject\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.DESCRIPTIONS">DESCRIPTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.description = query" on-collapse="vm_cc.query.description = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditDescription($event)" aria-label="add description" translate translate-attr-label="INTEGRATIONS.ADD_DESCRIPTION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedDescriptions.length}} {{vm_cc.selectedDescriptions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedDescriptions($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedDescriptions">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="description" md-select-id="id" ng-repeat="description in vm_cc.descriptions | filter: vm_cc.query.description">\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="id ">{{description.id}}</td>\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="type ">\n <span ng-if="description.FieldId">{{description.nameField || description.idField}}</span>\n <span ng-if="!description.FieldId">{{description.type}}</span>\n </td>\n <td ng-switch="description.type" ng-click="vm_cc.createOrEditDescription($event, description)" md-cell>\n <span ng-switch-when="string">{{description.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{description.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{description.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{description.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditDescription($event, description)" translate="INTEGRATIONS.EDIT_DESCRIPTION">\n Edit Description\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteDescriptionConfirm($event, description)" translate="INTEGRATIONS.DELETE_DESCRIPTION">\n Delete Description\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.configurations.length && vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditFreshsalesConfiguration($event)" layout="row" layout-sm="column" layout-align="center center" layout-wrap>\n <div class="padding-20 md-whiteframe-3dp md-accent-bg" layout="column" layout-align="center center">\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <span aria-label="add configuration" translate translate-attr-label="INTEGRATIONS.ADD_CONFIGURATION">ADD CONFIGURATION</span>\n </div>\n </div>\n </md-card>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/integrations/views/freshsalesAccounts/freshsalesAccounts.html",'<div id="freshsalesAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-heart" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="INTEGRATIONS.FRESHSALESACCOUNTS">FreshsalesAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedFreshsalesAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedFreshsalesAccounts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="INTEGRATIONS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-freshsalesAccounts-count">\n <span>{{vm.selectedFreshsalesAccounts.length}}</span>\n <span translate="INTEGRATIONS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="INTEGRATIONS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllFreshsalesAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectFreshsalesAccounts()" translate="INTEGRATIONS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedFreshsalesAccounts" csv-label="true" filename="freshsalesAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedFreshsalesAccounts($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- FRESHSALESACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedFreshsalesAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getFreshsalesAccounts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'INTEGRATIONS.NAME\' | translate }}</th>\n <th md-column md-order-by="username">{{ \'INTEGRATIONS.USERNAME\' | translate }}</th>\n <th md-column md-order-by="remoteUri">{{ \'INTEGRATIONS.URI\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.freshsalesAccounts.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="freshsalesAccount" md-select-id="id" ng-repeat="freshsalesAccount in vm.freshsalesAccounts.rows">\n <td md-cell ng-if="freshsalesAccount.userpic"><img class="avatar" alt="{{freshsalesAccount.name}}" ng-src="api/users/{{freshsalesAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!freshsalesAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{freshsalesAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshsalesAccount, ev) : vm.createOrEditFreshsalesAccount($event, freshsalesAccount)" md-cell class="id ">{{freshsalesAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshsalesAccount, ev) : vm.createOrEditFreshsalesAccount($event, freshsalesAccount)" md-cell class="name ">{{freshsalesAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshsalesAccount, ev) : vm.createOrEditFreshsalesAccount($event, freshsalesAccount)" md-cell class="username ">{{freshsalesAccount.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshsalesAccount, ev) : vm.createOrEditFreshsalesAccount($event, freshsalesAccount)" md-cell class="remoteUri ">{{freshsalesAccount.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(freshsalesAccount, $event )" translate="INTEGRATIONS.EDIT_FRESHSALESACCOUNT">\n Edit FreshsalesAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(freshsalesAccount, $event )" translate="INTEGRATIONS.TEST_FRESHSALESACCOUNT">\n Test FreshsalesAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(freshsalesAccount, $event )" translate="INTEGRATIONS.DELETE_FRESHSALESACCOUNT">\n Delete FreshsalesAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.freshsalesAccounts.count}}" md-on-paginate="vm.getFreshsalesAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / FRESHSALESACCOUNT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD FRESHSALESACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-freshsalesAccount-button" ng-click="vm.createOrEditFreshsalesAccount($event)" aria-label="add freshsalesAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_FRESHSALESACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD FRESHSALESACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/integrations/views/salesforceAccounts/create/dialog.html",'<md-dialog class="salesforceAccount-dialog" aria-label="New SalesforceAccount">\n <form name="salesforceAccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.salesforceAccount.name" ng-required="true" autofocus>\n\n <div ng-messages="salesforceAccountForm[\'name\'].$error" ng-show="salesforceAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.salesforceAccount.type" required>\n\n <md-option ng-value="\'integrationTab\'"> {{ \'INTEGRATIONS.INTEGRATION_TAB\' | translate }} </md-option>\n\n <md-option ng-value="\'newTab\'"> {{ \'INTEGRATIONS.NEW_TAB\' | translate }} </md-option>\n </md-select>\n <div ng-messages="salesforceAccountForm[\'type\'].$error" ng-show="salesforceAccountForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.salesforceAccount.username" ng-required="true">\n\n <div ng-messages="salesforceAccountForm[\'username\'].$error" ng-show="salesforceAccountForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.salesforceAccount.remoteUri" ng-required="true">\n\n <div ng-messages="salesforceAccountForm[\'remoteUri\'].$error" ng-show="salesforceAccountForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.salesforceAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="salesforceAccountForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTID">ClientId</label>\n <input type="text" name="clientId" ng-model="vm.salesforceAccount.clientId" ng-required="true">\n\n <div ng-messages="salesforceAccountForm[\'clientId\'].$error" ng-show="salesforceAccountForm[\'clientId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTID_REQUIRED">ClientId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTSECRET">ClientSecret</label>\n <input type="text" name="clientSecret" ng-model="vm.salesforceAccount.clientSecret" ng-required="true">\n\n <div ng-messages="salesforceAccountForm[\'clientSecret\'].$error" ng-show="salesforceAccountForm[\'clientSecret\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTSECRET_REQUIRED">ClientSecret field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.SECURITYTOKEN">SecurityToken</label>\n <input type="text" name="securityToken" ng-model="vm.salesforceAccount.securityToken" ng-required="true">\n\n <div ng-messages="salesforceAccountForm[\'securityToken\'].$error" ng-show="salesforceAccountForm[\'securityToken\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.SECURITYTOKEN_REQUIRED">SecurityToken field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.salesforceAccount.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="salesforceAccountForm[\'serverUrl\'].$error" ng-show="salesforceAccountForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.salesforceAccount.description">\n\n <div ng-messages="salesforceAccountForm[\'description\'].$error" ng-show="salesforceAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newSalesforceAccount" ng-click="vm.saveSalesforceAccount()" class="send-button md-accent md-raised" ng-disabled="salesforceAccountForm.$invalid || salesforceAccountForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newSalesforceAccount" ng-click="vm.addNewSalesforceAccount()" class="send-button md-accent md-raised" ng-disabled="salesforceAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_SALESFORCEACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_SALESFORCEACCOUNT">\n ADD SALESFORCEACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newSalesforceAccount" ng-click="vm.deleteSalesforceAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/salesforceAccounts/edit/configurations/dialog.html",'<md-dialog class="salesforceConfiguration-dialog" aria-label="New SalesforceConfiguration">\n <form name="salesforceConfigurationForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="" name="name" ng-model="vm.salesforceConfiguration.name" ng-required="true" autofocus>\n\n <div ng-messages="salesforceConfigurationForm[\'name\'].$error" ng-show="salesforceConfigurationForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CHANNEL">Channel</label>\n <md-select name="channel" ng-model="vm.salesforceConfiguration.channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="salesforceConfigurationForm[\'channel\'].$error" ng-show="salesforceConfigurationForm[\'channel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.salesforceConfiguration.type" required>\n\n <md-option ng-value="\'inbound\'"> {{ \'INTEGRATIONS.INBOUND_IN_QUEUE\' | translate }} </md-option>\n\n <md-option ng-value="\'outbound\'"> {{ \'INTEGRATIONS.OUTBOUND_CALL\' | translate }} </md-option>\n </md-select>\n <div ng-messages="salesforceConfigurationForm[\'type\'].$error" ng-show="salesforceConfigurationForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TICKETTYPE">TicketType</label>\n <md-select name="ticketType" ng-model="vm.salesforceConfiguration.ticketType" required>\n\n <md-option ng-value="\'Task\'"> {{ \'INTEGRATIONS.TASK\' | translate }} </md-option>\n\n <md-option ng-value="\'Case\'"> {{ \'INTEGRATIONS.CASE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="salesforceConfigurationForm[\'ticketType\'].$error" ng-show="salesforceConfigurationForm[\'ticketType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TICKETTYPE_REQUIRED">TicketType field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newSalesforceConfiguration" ng-click="vm.saveSalesforceConfiguration()" class="send-button md-accent md-raised" ng-disabled="salesforceConfigurationForm.$invalid || salesforceConfigurationForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newSalesforceConfiguration" ng-click="vm.addNewSalesforceConfiguration()" class="send-button md-accent md-raised" ng-disabled="salesforceConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_SALESFORCECONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_SALESFORCECONFIGURATION">\n ADD SALESFORCECONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newSalesforceConfiguration" ng-click="vm.deleteSalesforceConfiguration($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/salesforceAccounts/edit/item/dialog.html",'<md-dialog class="salesforceAccount-item-dialog" aria-label="New Item">\n <form name="salesforceAccountItemForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <div ng-switch="vm.type">\n <div ng-switch-when="subject">\n \x3c!-- SUBJECT SECTION --\x3e\n <div ng-include="\'/subject.html\'"></div>\n \x3c!-- / SUBJECT SECTION --\x3e\n </div>\n <div ng-switch-when="description">\n \x3c!-- DESCRIPTION SECTION --\x3e\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="keyValue">Key Value</md-option>\n </md-select>\n <div ng-messages="salesforceAccountItemForm.type.$error" ng-show="salesforceAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="salesforceAccountItemForm.content.$error" ng-show="salesforceAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field\n is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.item.type == \'keyValue\'">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.item.key" required md-autofocus>\n <div ng-messages="salesforceAccountItemForm.key.$error" ng-show="salesforceAccountItemForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="keyType" ng-model="vm.item.keyType" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="salesforceAccountItemForm.keyType.$error" ng-show="salesforceAccountItemForm.keyType.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="keyContent" ng-model="vm.item.keyContent" required md-autofocus>\n <div ng-messages="salesforceAccountItemForm.keyContent.$error" ng-show="salesforceAccountItemForm.keyContent.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content\n field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="salesforceAccountItemForm.variableName.$error" ng-show="salesforceAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable\n name field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}\n </md-option>\n </md-select>\n </md-input-container>\n </div>\n \x3c!-- / DESCRIPTION SECTION --\x3e\n </div>\n <div ng-switch-when="field">\n \x3c!-- FIELD SECTION --\x3e\n <div ng-if="vm.accountConnected">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.FIELD">FIELD</label>\n \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\n </md-select>\n <div ng-messages="salesforceAccountItemForm.customField.$error" ng-show="salesforceAccountItemForm.customField.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\n </div>\n <div ng-if="!vm.accountConnected">\n <p>Account is not connected. Please check your configurations!</p>\n </div>\n \x3c!-- / FIELD SECTION --\x3e\n </div>\n <div ng-switch-default>\n <p>No Item</p>\n </div>\n </div>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="salesforceAccountItemForm.$invalid || salesforceAccountItemForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="salesforceAccountItemForm.$invalid || salesforceAccountItemForm.$pristine" aria-label="ADD" translate="INTEGRATIONS.ADD" translate-attr-aria-label="INTEGRATIONS.ADD">\n ADD\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newItem" ng-click="vm.deleteItem($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>\n\n<script type="text/ng-template" id="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n <md-option ng-if="vm.customField.options.length" value="picklist">Picklist</md-option>\n </md-select>\n <div ng-messages="salesforceAccountItemForm.type.$error" ng-show="salesforceAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <md-select name="option" ng-model="vm.item.content" required>\n <md-option ng-value="option.value" ng-repeat="option in vm.customField.options">{{option.name}}</md-option>\n </md-select>\n\n <div ng-messages="salesforceAccountItemForm.option.$error" ng-show="salesforceAccountItemForm.option.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\n <div ng-messages="salesforceAccountItemForm.content.$error" ng-show="salesforceAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="salesforceAccountItemForm.variableName.$error" ng-show="salesforceAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!--/ value --\x3e\n\n<\/script>\n\n<script type="text/ng-template" id="/subject.html">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="salesforceAccountItemForm.type.$error" ng-show="salesforceAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n \n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="salesforceAccountItemForm.content.$error"\n ng-show="salesforceAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="salesforceAccountItemForm.variableName.$error"\n ng-show="salesforceAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n <\/script>'),e.put("app/main/apps/integrations/views/salesforceAccounts/edit/view.html",'<div id="integrations-salesforceAccount" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-salesforceAccounts-button md-icon-button" aria-label="Go to salesforceAccounts" ng-click="vm.gotoSalesforceAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_SALESFORCEACCOUNTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="salesforceAccount-image" hide-xs>\n <img ng-src="assets/images/business/salesforceAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.salesforceAccount.id}}\n <span ng-if="vm.salesforceAccount.name">{{vm.salesforceAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.salesforceAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveSalesforceAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (configurationsForm.$invalid)" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="salesforceAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.salesforceAccount.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.salesforceAccount.type" required ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'integrationTab\'"> {{ \'INTEGRATIONS.INTEGRATION_TAB\' | translate }} </md-option>\n\n <md-option ng-value="\'newTab\'"> {{ \'INTEGRATIONS.NEW_TAB\' | translate }} </md-option>\n </md-select>\n <div ng-messages="generalForm[\'type\'].$error" ng-show="generalForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.salesforceAccount.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'username\'].$error" ng-show="generalForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.salesforceAccount.remoteUri" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'remoteUri\'].$error" ng-show="generalForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.salesforceAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="generalForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTID">ClientId</label>\n <input type="text" name="clientId" ng-model="vm.salesforceAccount.clientId" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'clientId\'].$error" ng-show="generalForm[\'clientId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTID_REQUIRED">ClientId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTSECRET">ClientSecret</label>\n <input type="text" name="clientSecret" ng-model="vm.salesforceAccount.clientSecret" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'clientSecret\'].$error" ng-show="generalForm[\'clientSecret\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTSECRET_REQUIRED">ClientSecret field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.SECURITYTOKEN">SecurityToken</label>\n <input type="text" name="securityToken" ng-model="vm.salesforceAccount.securityToken" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'securityToken\'].$error" ng-show="generalForm[\'securityToken\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.SECURITYTOKEN_REQUIRED">SecurityToken field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.salesforceAccount.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="generalForm[\'serverUrl\'].$error" ng-show="generalForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.salesforceAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="salesforceAccount-detail-form-container configurations md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</div>\n </div>\n <div ng-controller="SalesforceAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.salesforceAccount, vm.crudPermissions)" layout="row">\n <md-card class="md-whiteframe-1dp" flex="30">\n <div layout="row" layout-align="center center">\n <md-subheader flex="75" class="md-no-sticky">{{ \'INTEGRATIONS.CONFIGURATIONS\' | translate }}</md-subheader>\n <md-button flex="25" ng-if="vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditSalesforceConfiguration($event)" class="md-icon-button" aria-label="create salesforceConfiguration">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n <md-list>\n <md-list-item layout="row" layout-align="center center" ng-repeat="salesforceConfiguration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedSalesforceConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getSalesforceConfiguration($index)">\n <span class="text-truncate" flex="80">{{ salesforceConfiguration.name }}</span>\n <md-menu ng-if="vm_cc.crudPermissions.canDelete">\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteSalesforceConfiguration($event, salesforceConfiguration)" translate="INTEGRATIONS.DELETE_SALESFORCECONFIGURATION">\n Delete SalesforceConfiguration\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-list-item>\n </md-list>\n </md-card>\n <div flex></div>\n <md-card class="md-whiteframe-1dp" flex="65">\n <md-tabs ng-if="vm_cc.configurations.length" md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.SUBJECTS">SUBJECTS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.subject = query" on-collapse="vm_cc.query.subject = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditSubject($event)" aria-label="add subject" translate translate-attr-label="INTEGRATIONS.ADD_SUBJECT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedSubjects.length}} {{vm_cc.selectedSubjects.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedSubjects($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedSubjects">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="subject" md-select-id="id" ng-repeat="subject in vm_cc.subjects | filter: vm_cc.query.subject">\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="id ">{{subject.id}}</td>\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="type ">\n <span ng-if="subject.FieldId">{{subject.nameField || subject.idField}}</span>\n <span ng-if="!subject.FieldId">{{subject.type}}</span>\n </td>\n <td ng-switch="subject.type" ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell>\n <span ng-switch-when="string">{{subject.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{subject.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{subject.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{subject.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditSubject($event, subject)" translate="INTEGRATIONS.EDIT_SUBJECT">\n Edit Subject\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteSubjectConfirm($event, subject)" translate="INTEGRATIONS.DELETE_SUBJECT">\n Delete Subject\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.DESCRIPTIONS">DESCRIPTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.description = query" on-collapse="vm_cc.query.description = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditDescription($event)" aria-label="add description" translate translate-attr-label="INTEGRATIONS.ADD_DESCRIPTION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedDescriptions.length}} {{vm_cc.selectedDescriptions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedDescriptions($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedDescriptions">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="description" md-select-id="id" ng-repeat="description in vm_cc.descriptions | filter: vm_cc.query.description">\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="id ">{{description.id}}</td>\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="type ">\n <span ng-if="description.FieldId">{{description.nameField || description.idField}}</span>\n <span ng-if="!description.FieldId">{{description.type}}</span>\n </td>\n <td ng-switch="description.type" ng-click="vm_cc.createOrEditDescription($event, description)" md-cell>\n <span ng-switch-when="string">{{description.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{description.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{description.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{description.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditDescription($event, description)" translate="INTEGRATIONS.EDIT_DESCRIPTION">\n Edit Description\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteDescriptionConfirm($event, description)" translate="INTEGRATIONS.DELETE_DESCRIPTION">\n Delete Description\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.FIELDS">FIELDS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.field = query" on-collapse="vm_cc.query.field = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditField($event)" aria-label="add field" translate translate-attr-label="INTEGRATIONS.ADD_FIELD">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedFields.length}} {{vm_cc.selectedFields.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedFields($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedFields">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="field" md-select-id="id" ng-repeat="field in vm_cc.fields | filter: vm_cc.query.field">\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="id ">{{field.id}}</td>\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="type ">\n <span ng-if="field.FieldId">{{field.nameField || field.idField}}</span>\n <span ng-if="!field.FieldId">{{field.type}}</span>\n </td>\n <td ng-switch="field.type" ng-click="vm_cc.createOrEditField($event, field)" md-cell>\n <span ng-switch-when="string">{{field.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{field.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{field.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{field.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditField($event, field)" translate="INTEGRATIONS.EDIT_FIELD">\n Edit Field\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteFieldConfirm($event, field)" translate="INTEGRATIONS.DELETE_FIELD">\n Delete Field\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ADVANCED">\n ADVANCED\n </span>\n </md-tab-label>\n <md-tab-body>\n <div layout-margin>\n <label translate="INTEGRATIONS.MODULE_SEARCH"></label>\n <md-select ng-model="vm_cc.salesforceConfiguration.moduleSearch" ng-change="vm_cc.selectChangedAdvanced()" ng-disabled="!vm_cc.crudPermissions.canEdit">\n <md-option ng-value="option.key" ng-repeat="option in [{key: \'account_contact_lead\', value: \'Account & Contact & Lead\'}, {key: \'contact_lead\', value: \'Contact & Lead\'}, {key: \'contact\', value: \'Contact\'}, {key: \'lead\', value: \'Lead\'}, {key: \'account\', value: \'Account\'}]">\n {{ option.value }}</md-option>\n </md-select>\n </div>\n <div layout-margin>\n <label translate="INTEGRATIONS.MODULE_CREATE"></label>\n <md-select ng-model="vm_cc.salesforceConfiguration.moduleCreate" ng-change="vm_cc.selectChangedAdvanced()" ng-disabled="!vm_cc.crudPermissions.canEdit">\n <md-option ng-value="option.key" ng-repeat="option in [{key: \'nothing\', value: \'Nothing\'}, {key: \'contact\', value: \'Contact\'}, {key: \'lead\', value: \'Lead\'}, {key: \'account\', value: \'Account\'}]">\n {{ option.value }}</md-option>\n </md-select>\n </div>\n\n <div layout-margin ng-if="vm_cc.salesforceConfiguration.isLead">\n <label translate="INTEGRATIONS.LEADID"></label>\n <md-input-container class="md-block">\n <input ng-model="vm_cc.salesforceConfiguration.leadId" type="text">\n </md-input-container>\n <div class="hint"><span translate="INTEGRATIONS.HELP.LEADID"></span></div>\n </div>\n\n <div layout-margin ng-if="vm_cc.salesforceConfiguration.isAccountSearch">\n <label translate="INTEGRATIONS.ADDITIONALSEARCHACCOUNT"></label>\n <md-input-container class="md-block">\n <input ng-model="vm_cc.salesforceConfiguration.additionalSearchAccount" type="text">\n </md-input-container>\n <div class="hint"><span translate="INTEGRATIONS.HELP.ADDITIONALSEARCHACCOUNT"></span></div>\n </div>\n\n <div layout-margin ng-if="vm_cc.salesforceConfiguration.isContactSearch">\n <label translate="INTEGRATIONS.ADDITIONALSEARCHCONTACT"></label>\n <md-input-container class="md-block">\n <input ng-model="vm_cc.salesforceConfiguration.additionalSearchContact" type="text">\n </md-input-container>\n <div class="hint"><span translate="INTEGRATIONS.HELP.ADDITIONALSEARCHCONTACT"></span></div>\n </div>\n\n <div layout-margin ng-if="vm_cc.salesforceConfiguration.isLeadSearch">\n <label translate="INTEGRATIONS.ADDITIONALSEARCHLEAD"></label>\n <md-input-container class="md-block">\n <input ng-model="vm_cc.salesforceConfiguration.additionalSearchLead" type="text">\n </md-input-container>\n <div class="hint"><span translate="INTEGRATIONS.HELP.ADDITIONALSEARCHLEAD"></span></div>\n </div>\n\n <md-button type="submit" ng-click="vm_cc.saveSalesforceConfiguration()" ng-disabled="!vm_cc.crudPermissions.canEdit" class="send-button md-accent md-raised" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n </md-tab-body>\n </md-tab>\n\n\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.configurations.length && vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditSalesforceConfiguration($event)" layout="row" layout-sm="column" layout-align="center center" layout-wrap>\n <div class="padding-20 md-whiteframe-3dp md-accent-bg" layout="column" layout-align="center center">\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <span aria-label="add configuration" translate translate-attr-label="INTEGRATIONS.ADD_CONFIGURATION">ADD CONFIGURATION</span>\n </div>\n </div>\n </md-card>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/integrations/views/salesforceAccounts/salesforceAccounts.html",'<div id="salesforceAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-heart" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="INTEGRATIONS.SALESFORCEACCOUNTS">SalesforceAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedSalesforceAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedSalesforceAccounts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="INTEGRATIONS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-salesforceAccounts-count">\n <span>{{vm.selectedSalesforceAccounts.length}}</span>\n <span translate="INTEGRATIONS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="INTEGRATIONS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllSalesforceAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectSalesforceAccounts()" translate="INTEGRATIONS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedSalesforceAccounts" csv-label="true" filename="salesforceAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedSalesforceAccounts($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- SALESFORCEACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedSalesforceAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getSalesforceAccounts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'INTEGRATIONS.NAME\' | translate }}</th>\n <th md-column md-order-by="username">{{ \'INTEGRATIONS.USERNAME\' | translate }}</th>\n <th md-column md-order-by="remoteUri">{{ \'INTEGRATIONS.URI\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.salesforceAccounts.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="salesforceAccount" md-select-id="id" ng-repeat="salesforceAccount in vm.salesforceAccounts.rows">\n <td md-cell ng-if="salesforceAccount.userpic"><img class="avatar" alt="{{salesforceAccount.name}}" ng-src="api/users/{{salesforceAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!salesforceAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{salesforceAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(salesforceAccount, ev) : vm.createOrEditSalesforceAccount($event, salesforceAccount)" md-cell class="id ">{{salesforceAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(salesforceAccount, ev) : vm.createOrEditSalesforceAccount($event, salesforceAccount)" md-cell class="name ">{{salesforceAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(salesforceAccount, ev) : vm.createOrEditSalesforceAccount($event, salesforceAccount)" md-cell class="username ">{{salesforceAccount.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(salesforceAccount, ev) : vm.createOrEditSalesforceAccount($event, salesforceAccount)" md-cell class="remoteUri ">{{salesforceAccount.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(salesforceAccount, $event )" translate="INTEGRATIONS.EDIT_SALESFORCEACCOUNT">\n Edit SalesforceAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(salesforceAccount, $event )" translate="INTEGRATIONS.TEST_SALESFORCEACCOUNT">\n Test SalesforceAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(salesforceAccount, $event )" translate="INTEGRATIONS.DELETE_SALESFORCEACCOUNT">\n Delete SalesforceAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.salesforceAccounts.count}}" md-on-paginate="vm.getSalesforceAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / SALESFORCEACCOUNT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD SALESFORCEACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-salesforceAccount-button" ng-click="vm.createOrEditSalesforceAccount($event)" aria-label="add salesforceAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_SALESFORCEACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD SALESFORCEACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/integrations/views/servicenowAccounts/create/dialog.html",'<md-dialog class="servicenowAccount-dialog" aria-label="New ServicenowAccount">\n <form name="servicenowAccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.servicenowAccount.name" ng-required="true" autofocus>\n\n <div ng-messages="servicenowAccountForm[\'name\'].$error" ng-show="servicenowAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.servicenowAccount.username" ng-required="true">\n\n <div ng-messages="servicenowAccountForm[\'username\'].$error" ng-show="servicenowAccountForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.servicenowAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="servicenowAccountForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.servicenowAccount.email" ng-required="true">\n\n <div ng-messages="servicenowAccountForm[\'email\'].$error" ng-show="servicenowAccountForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="email">\n <span translate="INTEGRATIONS.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.HOST">Host</label>\n <input type="url" name="remoteUri" ng-model="vm.servicenowAccount.remoteUri" ng-required="true">\n\n <div ng-messages="servicenowAccountForm[\'remoteUri\'].$error" ng-show="servicenowAccountForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.HOST_REQUIRED">Host field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.HOST_MUST_VALID_URL">Host must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.servicenowAccount.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="servicenowAccountForm[\'serverUrl\'].$error" ng-show="servicenowAccountForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.servicenowAccount.description">\n\n <div ng-messages="servicenowAccountForm[\'description\'].$error" ng-show="servicenowAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newServicenowAccount" ng-click="vm.saveServicenowAccount()" class="send-button md-accent md-raised" ng-disabled="servicenowAccountForm.$invalid || servicenowAccountForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newServicenowAccount" ng-click="vm.addNewServicenowAccount()" class="send-button md-accent md-raised" ng-disabled="servicenowAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_SERVICENOWACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_SERVICENOWACCOUNT">\n ADD SERVICENOWACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newServicenowAccount" ng-click="vm.deleteServicenowAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/servicenowAccounts/edit/configurations/dialog.html",'<md-dialog class="servicenowConfiguration-dialog" aria-label="New ServicenowConfiguration">\n <form name="servicenowConfigurationForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="" name="name" ng-model="vm.servicenowConfiguration.name" ng-required="true" autofocus>\n\n <div ng-messages="servicenowConfigurationForm[\'name\'].$error" ng-show="servicenowConfigurationForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CHANNEL">Channel</label>\n <md-select name="channel" ng-model="vm.servicenowConfiguration.channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="servicenowConfigurationForm[\'channel\'].$error" ng-show="servicenowConfigurationForm[\'channel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.servicenowConfiguration.type" required>\n\n <md-option ng-value="\'inbound\'"> {{ \'INTEGRATIONS.INBOUND_IN_QUEUE\' | translate }} </md-option>\n\n <md-option ng-value="\'outbound\'"> {{ \'INTEGRATIONS.OUTBOUND_CALL\' | translate }} </md-option>\n </md-select>\n <div ng-messages="servicenowConfigurationForm[\'type\'].$error" ng-show="servicenowConfigurationForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newServicenowConfiguration" ng-click="vm.saveServicenowConfiguration()" class="send-button md-accent md-raised" ng-disabled="servicenowConfigurationForm.$invalid || servicenowConfigurationForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newServicenowConfiguration" ng-click="vm.addNewServicenowConfiguration()" class="send-button md-accent md-raised" ng-disabled="servicenowConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_SERVICENOWCONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_SERVICENOWCONFIGURATION">\n ADD SERVICENOWCONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newServicenowConfiguration" ng-click="vm.deleteServicenowConfiguration($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/servicenowAccounts/edit/item/dialog.html",'<md-dialog class="servicenowAccount-item-dialog" aria-label="New Item">\n <form name="servicenowAccountItemForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <div ng-switch="vm.type">\n <div ng-switch-when="subject">\n \x3c!-- SUBJECT SECTION --\x3e\n <div ng-include="\'/subject.html\'"></div>\n \x3c!-- / SUBJECT SECTION --\x3e\n </div>\n <div ng-switch-when="description">\n \x3c!-- DESCRIPTION SECTION --\x3e\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="keyValue">Key Value</md-option>\n </md-select>\n <div ng-messages="servicenowAccountItemForm.type.$error" ng-show="servicenowAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="servicenowAccountItemForm.content.$error" ng-show="servicenowAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field\n is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.item.type == \'keyValue\'">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.item.key" required md-autofocus>\n <div ng-messages="servicenowAccountItemForm.key.$error" ng-show="servicenowAccountItemForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="keyType" ng-model="vm.item.keyType" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="servicenowAccountItemForm.keyType.$error" ng-show="servicenowAccountItemForm.keyType.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="keyContent" ng-model="vm.item.keyContent" required md-autofocus>\n <div ng-messages="servicenowAccountItemForm.keyContent.$error" ng-show="servicenowAccountItemForm.keyContent.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content\n field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="servicenowAccountItemForm.variableName.$error" ng-show="servicenowAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable\n name field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}\n </md-option>\n </md-select>\n </md-input-container>\n </div>\n \x3c!-- / DESCRIPTION SECTION --\x3e\n </div>\n <div ng-switch-when="field">\n \x3c!-- FIELD SECTION --\x3e\n <div ng-if="vm.accountConnected">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.FIELD">FIELD</label>\n \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\n </md-select>\n <div ng-messages="servicenowAccountItemForm.customField.$error" ng-show="servicenowAccountItemForm.customField.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\n </div>\n <div ng-if="!vm.accountConnected">\n <p>Account is not connected. Please check your configurations!</p>\n </div>\n \x3c!-- / FIELD SECTION --\x3e\n </div>\n <div ng-switch-default>\n <p>No Item</p>\n </div>\n </div>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="servicenowAccountItemForm.$invalid || servicenowAccountItemForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="servicenowAccountItemForm.$invalid || servicenowAccountItemForm.$pristine" aria-label="ADD" translate="INTEGRATIONS.ADD" translate-attr-aria-label="INTEGRATIONS.ADD">\n ADD\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newItem" ng-click="vm.deleteItem($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>\n\n<script type="text/ng-template" id="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n <md-option ng-if="vm.customField.options.length" value="picklist">Picklist</md-option>\n </md-select>\n <div ng-messages="servicenowAccountItemForm.type.$error" ng-show="servicenowAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <md-select name="option" ng-model="vm.item.content" required>\n <md-option ng-value="option.value" ng-repeat="option in vm.customField.options">{{option.name}}</md-option>\n </md-select>\n\n <div ng-messages="servicenowAccountItemForm.option.$error" ng-show="servicenowAccountItemForm.option.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\n <div ng-messages="servicenowAccountItemForm.content.$error" ng-show="servicenowAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="servicenowAccountItemForm.variableName.$error" ng-show="servicenowAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!--/ value --\x3e\n\n<\/script>\n\n<script type="text/ng-template" id="/subject.html">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="servicenowAccountItemForm.type.$error" ng-show="servicenowAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n \n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="servicenowAccountItemForm.content.$error"\n ng-show="servicenowAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="servicenowAccountItemForm.variableName.$error"\n ng-show="servicenowAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n <\/script>'),e.put("app/main/apps/integrations/views/servicenowAccounts/edit/view.html",'<div id="integrations-servicenowAccount" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-servicenowAccounts-button md-icon-button" aria-label="Go to servicenowAccounts" ng-click="vm.gotoServicenowAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_SERVICENOWACCOUNTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="servicenowAccount-image" hide-xs>\n <img ng-src="assets/images/business/servicenowAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.servicenowAccount.id}}\n <span ng-if="vm.servicenowAccount.name">{{vm.servicenowAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.servicenowAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveServicenowAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (configurationsForm.$invalid)" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="servicenowAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.servicenowAccount.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.servicenowAccount.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'username\'].$error" ng-show="generalForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.servicenowAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="generalForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.servicenowAccount.email" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'email\'].$error" ng-show="generalForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="email">\n <span translate="INTEGRATIONS.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.HOST">Host</label>\n <input type="url" name="remoteUri" ng-model="vm.servicenowAccount.remoteUri" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'remoteUri\'].$error" ng-show="generalForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.HOST_REQUIRED">Host field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.HOST_MUST_VALID_URL">Host must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.servicenowAccount.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="generalForm[\'serverUrl\'].$error" ng-show="generalForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.servicenowAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="servicenowAccount-detail-form-container configurations md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</div>\n </div>\n <div ng-controller="ServicenowAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.servicenowAccount, vm.crudPermissions)" layout="row">\n <md-card class="md-whiteframe-1dp" flex="30">\n <div layout="row" layout-align="center center">\n <md-subheader flex="75" class="md-no-sticky">{{ \'INTEGRATIONS.CONFIGURATIONS\' | translate }}</md-subheader>\n <md-button flex="25" ng-if="vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditServicenowConfiguration($event)" class="md-icon-button" aria-label="create servicenowConfiguration">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n <md-list>\n <md-list-item layout="row" layout-align="center center" ng-repeat="servicenowConfiguration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedServicenowConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getServicenowConfiguration($index)">\n <span class="text-truncate" flex="80">{{ servicenowConfiguration.name }}</span>\n <md-menu ng-if="vm_cc.crudPermissions.canDelete">\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteServicenowConfiguration($event, servicenowConfiguration)" translate="INTEGRATIONS.DELETE_SERVICENOWCONFIGURATION">\n Delete ServicenowConfiguration\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-list-item>\n </md-list>\n </md-card>\n <div flex></div>\n <md-card class="md-whiteframe-1dp" flex="65">\n <md-tabs ng-if="vm_cc.configurations.length" md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.SUBJECTS">SUBJECTS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.subject = query" on-collapse="vm_cc.query.subject = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditSubject($event)" aria-label="add subject" translate translate-attr-label="INTEGRATIONS.ADD_SUBJECT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedSubjects.length}} {{vm_cc.selectedSubjects.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedSubjects($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedSubjects">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="subject" md-select-id="id" ng-repeat="subject in vm_cc.subjects | filter: vm_cc.query.subject">\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="id ">{{subject.id}}</td>\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="type ">\n <span ng-if="subject.FieldId">{{subject.nameField || subject.idField}}</span>\n <span ng-if="!subject.FieldId">{{subject.type}}</span>\n </td>\n <td ng-switch="subject.type" ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell>\n <span ng-switch-when="string">{{subject.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{subject.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{subject.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{subject.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditSubject($event, subject)" translate="INTEGRATIONS.EDIT_SUBJECT">\n Edit Subject\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteSubjectConfirm($event, subject)" translate="INTEGRATIONS.DELETE_SUBJECT">\n Delete Subject\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.DESCRIPTIONS">DESCRIPTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.description = query" on-collapse="vm_cc.query.description = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditDescription($event)" aria-label="add description" translate translate-attr-label="INTEGRATIONS.ADD_DESCRIPTION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedDescriptions.length}} {{vm_cc.selectedDescriptions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedDescriptions($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedDescriptions">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="description" md-select-id="id" ng-repeat="description in vm_cc.descriptions | filter: vm_cc.query.description">\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="id ">{{description.id}}</td>\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="type ">\n <span ng-if="description.FieldId">{{description.nameField || description.idField}}</span>\n <span ng-if="!description.FieldId">{{description.type}}</span>\n </td>\n <td ng-switch="description.type" ng-click="vm_cc.createOrEditDescription($event, description)" md-cell>\n <span ng-switch-when="string">{{description.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{description.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{description.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{description.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditDescription($event, description)" translate="INTEGRATIONS.EDIT_DESCRIPTION">\n Edit Description\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteDescriptionConfirm($event, description)" translate="INTEGRATIONS.DELETE_DESCRIPTION">\n Delete Description\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.configurations.length && vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditServicenowConfiguration($event)" layout="row" layout-sm="column" layout-align="center center" layout-wrap>\n <div class="padding-20 md-whiteframe-3dp md-accent-bg" layout="column" layout-align="center center">\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <span aria-label="add configuration" translate translate-attr-label="INTEGRATIONS.ADD_CONFIGURATION">ADD CONFIGURATION</span>\n </div>\n </div>\n </md-card>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/integrations/views/servicenowAccounts/servicenowAccounts.html",'<div id="servicenowAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-heart" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="INTEGRATIONS.SERVICENOWACCOUNTS">ServicenowAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedServicenowAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedServicenowAccounts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="INTEGRATIONS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-servicenowAccounts-count">\n <span>{{vm.selectedServicenowAccounts.length}}</span>\n <span translate="INTEGRATIONS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="INTEGRATIONS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllServicenowAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectServicenowAccounts()" translate="INTEGRATIONS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedServicenowAccounts" csv-label="true" filename="servicenowAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedServicenowAccounts($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- SERVICENOWACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedServicenowAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getServicenowAccounts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'INTEGRATIONS.NAME\' | translate }}</th>\n <th md-column md-order-by="username">{{ \'INTEGRATIONS.USERNAME\' | translate }}</th>\n <th md-column md-order-by="email">{{ \'INTEGRATIONS.EMAIL\' | translate }}</th>\n <th md-column md-order-by="remoteUri">{{ \'INTEGRATIONS.HOST\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.servicenowAccounts.rows.length">\n <td md-cell colspan="6">\n <div layout="row" layout-align="center center">\n <span translate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="servicenowAccount" md-select-id="id" ng-repeat="servicenowAccount in vm.servicenowAccounts.rows">\n <td md-cell ng-if="servicenowAccount.userpic"><img class="avatar" alt="{{servicenowAccount.name}}" ng-src="api/users/{{servicenowAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!servicenowAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{servicenowAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(servicenowAccount, ev) : vm.createOrEditServicenowAccount($event, servicenowAccount)" md-cell class="id ">{{servicenowAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(servicenowAccount, ev) : vm.createOrEditServicenowAccount($event, servicenowAccount)" md-cell class="name ">{{servicenowAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(servicenowAccount, ev) : vm.createOrEditServicenowAccount($event, servicenowAccount)" md-cell class="username ">{{servicenowAccount.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(servicenowAccount, ev) : vm.createOrEditServicenowAccount($event, servicenowAccount)" md-cell class="email ">{{servicenowAccount.email}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(servicenowAccount, ev) : vm.createOrEditServicenowAccount($event, servicenowAccount)" md-cell class="remoteUri ">{{servicenowAccount.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(servicenowAccount, $event )" translate="INTEGRATIONS.EDIT_SERVICENOWACCOUNT">\n Edit ServicenowAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(servicenowAccount, $event )" translate="INTEGRATIONS.TEST_SERVICENOWACCOUNT">\n Test ServicenowAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\n\n <md-button ng-click="vm.deleteconfirm(servicenowAccount, $event )" translate="INTEGRATIONS.DELETE_SERVICENOWACCOUNT">\n Delete ServicenowAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.servicenowAccounts.count}}" md-on-paginate="vm.getServicenowAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / SERVICENOWACCOUNT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD SERVICENOWACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-servicenowAccount-button" ng-click="vm.createOrEditServicenowAccount($event)" aria-label="add servicenowAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_SERVICENOWACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD SERVICENOWACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/integrations/views/sugarcrmAccounts/create/dialog.html",'<md-dialog class="sugarcrmAccount-dialog" aria-label="New SugarcrmAccount">\n <form name="sugarcrmAccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.sugarcrmAccount.name" ng-required="true" autofocus>\n\n <div ng-messages="sugarcrmAccountForm[\'name\'].$error" ng-show="sugarcrmAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.sugarcrmAccount.username" ng-required="true">\n\n <div ng-messages="sugarcrmAccountForm[\'username\'].$error" ng-show="sugarcrmAccountForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.sugarcrmAccount.remoteUri" ng-required="true">\n\n <div ng-messages="sugarcrmAccountForm[\'remoteUri\'].$error" ng-show="sugarcrmAccountForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.sugarcrmAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="sugarcrmAccountForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.sugarcrmAccount.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="sugarcrmAccountForm[\'serverUrl\'].$error" ng-show="sugarcrmAccountForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.sugarcrmAccount.description">\n\n <div ng-messages="sugarcrmAccountForm[\'description\'].$error" ng-show="sugarcrmAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newSugarcrmAccount" ng-click="vm.saveSugarcrmAccount()" class="send-button md-accent md-raised" ng-disabled="sugarcrmAccountForm.$invalid || sugarcrmAccountForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newSugarcrmAccount" ng-click="vm.addNewSugarcrmAccount()" class="send-button md-accent md-raised" ng-disabled="sugarcrmAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_SUGARCRMACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_SUGARCRMACCOUNT">\n ADD SUGARCRMACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newSugarcrmAccount" ng-click="vm.deleteSugarcrmAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/sugarcrmAccounts/edit/configurations/dialog.html",'<md-dialog class="sugarcrmConfiguration-dialog" aria-label="New SugarcrmConfiguration">\n <form name="sugarcrmConfigurationForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="" name="name" ng-model="vm.sugarcrmConfiguration.name" ng-required="true" autofocus>\n\n <div ng-messages="sugarcrmConfigurationForm[\'name\'].$error" ng-show="sugarcrmConfigurationForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CHANNEL">Channel</label>\n <md-select name="channel" ng-model="vm.sugarcrmConfiguration.channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="sugarcrmConfigurationForm[\'channel\'].$error" ng-show="sugarcrmConfigurationForm[\'channel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.sugarcrmConfiguration.type" required>\n\n <md-option ng-value="\'inbound\'"> {{ \'INTEGRATIONS.INBOUND_IN_QUEUE\' | translate }} </md-option>\n\n <md-option ng-value="\'outbound\'"> {{ \'INTEGRATIONS.OUTBOUND_CALL\' | translate }} </md-option>\n </md-select>\n <div ng-messages="sugarcrmConfigurationForm[\'type\'].$error" ng-show="sugarcrmConfigurationForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newSugarcrmConfiguration" ng-click="vm.saveSugarcrmConfiguration()" class="send-button md-accent md-raised" ng-disabled="sugarcrmConfigurationForm.$invalid || sugarcrmConfigurationForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newSugarcrmConfiguration" ng-click="vm.addNewSugarcrmConfiguration()" class="send-button md-accent md-raised" ng-disabled="sugarcrmConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_SUGARCRMCONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_SUGARCRMCONFIGURATION">\n ADD SUGARCRMCONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newSugarcrmConfiguration" ng-click="vm.deleteSugarcrmConfiguration($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/sugarcrmAccounts/edit/item/dialog.html",'<md-dialog class="sugarcrmAccount-item-dialog" aria-label="New Item">\n <form name="sugarcrmAccountItemForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <div ng-switch="vm.type">\n <div ng-switch-when="subject">\n \x3c!-- SUBJECT SECTION --\x3e\n <div ng-include="\'/subject.html\'"></div>\n \x3c!-- / SUBJECT SECTION --\x3e\n </div>\n <div ng-switch-when="description">\n \x3c!-- DESCRIPTION SECTION --\x3e\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="keyValue">Key Value</md-option>\n </md-select>\n <div ng-messages="sugarcrmAccountItemForm.type.$error" ng-show="sugarcrmAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="sugarcrmAccountItemForm.content.$error" ng-show="sugarcrmAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field\n is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.item.type == \'keyValue\'">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.item.key" required md-autofocus>\n <div ng-messages="sugarcrmAccountItemForm.key.$error" ng-show="sugarcrmAccountItemForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="keyType" ng-model="vm.item.keyType" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="sugarcrmAccountItemForm.keyType.$error" ng-show="sugarcrmAccountItemForm.keyType.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="keyContent" ng-model="vm.item.keyContent" required md-autofocus>\n <div ng-messages="sugarcrmAccountItemForm.keyContent.$error" ng-show="sugarcrmAccountItemForm.keyContent.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content\n field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="sugarcrmAccountItemForm.variableName.$error" ng-show="sugarcrmAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable\n name field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}\n </md-option>\n </md-select>\n </md-input-container>\n </div>\n \x3c!-- / DESCRIPTION SECTION --\x3e\n </div>\n <div ng-switch-when="field">\n \x3c!-- FIELD SECTION --\x3e\n <div ng-if="vm.accountConnected">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.FIELD">FIELD</label>\n \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\n </md-select>\n <div ng-messages="sugarcrmAccountItemForm.customField.$error" ng-show="sugarcrmAccountItemForm.customField.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\n </div>\n <div ng-if="!vm.accountConnected">\n <p>Account is not connected. Please check your configurations!</p>\n </div>\n \x3c!-- / FIELD SECTION --\x3e\n </div>\n <div ng-switch-default>\n <p>No Item</p>\n </div>\n </div>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="sugarcrmAccountItemForm.$invalid || sugarcrmAccountItemForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="sugarcrmAccountItemForm.$invalid || sugarcrmAccountItemForm.$pristine" aria-label="ADD" translate="INTEGRATIONS.ADD" translate-attr-aria-label="INTEGRATIONS.ADD">\n ADD\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newItem" ng-click="vm.deleteItem($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>\n\n<script type="text/ng-template" id="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n <md-option ng-if="vm.customField.options.length" value="picklist">Picklist</md-option>\n </md-select>\n <div ng-messages="sugarcrmAccountItemForm.type.$error" ng-show="sugarcrmAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <md-select name="option" ng-model="vm.item.content" required>\n <md-option ng-value="option.value" ng-repeat="option in vm.customField.options">{{option.name}}</md-option>\n </md-select>\n\n <div ng-messages="sugarcrmAccountItemForm.option.$error" ng-show="sugarcrmAccountItemForm.option.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\n <div ng-messages="sugarcrmAccountItemForm.content.$error" ng-show="sugarcrmAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="sugarcrmAccountItemForm.variableName.$error" ng-show="sugarcrmAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!--/ value --\x3e\n\n<\/script>\n\n<script type="text/ng-template" id="/subject.html">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="sugarcrmAccountItemForm.type.$error" ng-show="sugarcrmAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n \n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="sugarcrmAccountItemForm.content.$error"\n ng-show="sugarcrmAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="sugarcrmAccountItemForm.variableName.$error"\n ng-show="sugarcrmAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n <\/script>'),e.put("app/main/apps/integrations/views/sugarcrmAccounts/edit/view.html",'<div id="integrations-sugarcrmAccount" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-sugarcrmAccounts-button md-icon-button" aria-label="Go to sugarcrmAccounts" ng-click="vm.gotoSugarcrmAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_SUGARCRMACCOUNTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="sugarcrmAccount-image" hide-xs>\n <img ng-src="assets/images/business/sugarcrmAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.sugarcrmAccount.id}}\n <span ng-if="vm.sugarcrmAccount.name">{{vm.sugarcrmAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.sugarcrmAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveSugarcrmAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (configurationsForm.$invalid)" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="sugarcrmAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.sugarcrmAccount.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.sugarcrmAccount.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'username\'].$error" ng-show="generalForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.sugarcrmAccount.remoteUri" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'remoteUri\'].$error" ng-show="generalForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.sugarcrmAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="generalForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.sugarcrmAccount.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="generalForm[\'serverUrl\'].$error" ng-show="generalForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.sugarcrmAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="sugarcrmAccount-detail-form-container configurations md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</div>\n </div>\n <div ng-controller="SugarcrmAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.sugarcrmAccount, vm.crudPermissions)" layout="row">\n <md-card class="md-whiteframe-1dp" flex="30">\n <div layout="row" layout-align="center center">\n <md-subheader flex="75" class="md-no-sticky">{{ \'INTEGRATIONS.CONFIGURATIONS\' | translate }}</md-subheader>\n <md-button flex="25" ng-if="vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditSugarcrmConfiguration($event)" class="md-icon-button" aria-label="create sugarcrmConfiguration">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n <md-list>\n <md-list-item layout="row" layout-align="center center" ng-repeat="sugarcrmConfiguration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedSugarcrmConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getSugarcrmConfiguration($index)">\n <span class="text-truncate" flex="80">{{ sugarcrmConfiguration.name }}</span>\n <md-menu ng-if="vm_cc.crudPermissions.canDelete">\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteSugarcrmConfiguration($event, sugarcrmConfiguration)" translate="INTEGRATIONS.DELETE_SUGARCRMCONFIGURATION">\n Delete SugarcrmConfiguration\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-list-item>\n </md-list>\n </md-card>\n <div flex></div>\n <md-card class="md-whiteframe-1dp" flex="65">\n <md-tabs ng-if="vm_cc.configurations.length" md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.SUBJECTS">SUBJECTS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.subject = query" on-collapse="vm_cc.query.subject = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditSubject($event)" aria-label="add subject" translate translate-attr-label="INTEGRATIONS.ADD_SUBJECT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedSubjects.length}} {{vm_cc.selectedSubjects.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedSubjects($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedSubjects">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="subject" md-select-id="id" ng-repeat="subject in vm_cc.subjects | filter: vm_cc.query.subject">\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="id ">{{subject.id}}</td>\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="type ">\n <span ng-if="subject.FieldId">{{subject.nameField || subject.idField}}</span>\n <span ng-if="!subject.FieldId">{{subject.type}}</span>\n </td>\n <td ng-switch="subject.type" ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell>\n <span ng-switch-when="string">{{subject.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{subject.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{subject.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{subject.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditSubject($event, subject)" translate="INTEGRATIONS.EDIT_SUBJECT">\n Edit Subject\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteSubjectConfirm($event, subject)" translate="INTEGRATIONS.DELETE_SUBJECT">\n Delete Subject\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.DESCRIPTIONS">DESCRIPTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.description = query" on-collapse="vm_cc.query.description = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditDescription($event)" aria-label="add description" translate translate-attr-label="INTEGRATIONS.ADD_DESCRIPTION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedDescriptions.length}} {{vm_cc.selectedDescriptions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedDescriptions($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedDescriptions">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="description" md-select-id="id" ng-repeat="description in vm_cc.descriptions | filter: vm_cc.query.description">\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="id ">{{description.id}}</td>\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="type ">\n <span ng-if="description.FieldId">{{description.nameField || description.idField}}</span>\n <span ng-if="!description.FieldId">{{description.type}}</span>\n </td>\n <td ng-switch="description.type" ng-click="vm_cc.createOrEditDescription($event, description)" md-cell>\n <span ng-switch-when="string">{{description.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{description.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{description.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{description.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditDescription($event, description)" translate="INTEGRATIONS.EDIT_DESCRIPTION">\n Edit Description\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteDescriptionConfirm($event, description)" translate="INTEGRATIONS.DELETE_DESCRIPTION">\n Delete Description\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.FIELDS">FIELDS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.field = query" on-collapse="vm_cc.query.field = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditField($event)" aria-label="add field" translate translate-attr-label="INTEGRATIONS.ADD_FIELD">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedFields.length}} {{vm_cc.selectedFields.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedFields($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedFields">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="field" md-select-id="id" ng-repeat="field in vm_cc.fields | filter: vm_cc.query.field">\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="id ">{{field.id}}</td>\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="type ">\n <span ng-if="field.FieldId">{{field.nameField || field.idField}}</span>\n <span ng-if="!field.FieldId">{{field.type}}</span>\n </td>\n <td ng-switch="field.type" ng-click="vm_cc.createOrEditField($event, field)" md-cell>\n <span ng-switch-when="string">{{field.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{field.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{field.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{field.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditField($event, field)" translate="INTEGRATIONS.EDIT_FIELD">\n Edit Field\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteFieldConfirm($event, field)" translate="INTEGRATIONS.DELETE_FIELD">\n Delete Field\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.configurations.length && vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditSugarcrmConfiguration($event)" layout="row" layout-sm="column" layout-align="center center" layout-wrap>\n <div class="padding-20 md-whiteframe-3dp md-accent-bg" layout="column" layout-align="center center">\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <span aria-label="add configuration" translate translate-attr-label="INTEGRATIONS.ADD_CONFIGURATION">ADD CONFIGURATION</span>\n </div>\n </div>\n </md-card>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/integrations/views/sugarcrmAccounts/sugarcrmAccounts.html",'<div id="sugarcrmAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-heart" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="INTEGRATIONS.SUGARCRMACCOUNTS">SugarcrmAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedSugarcrmAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedSugarcrmAccounts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="INTEGRATIONS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-sugarcrmAccounts-count">\n <span>{{vm.selectedSugarcrmAccounts.length}}</span>\n <span translate="INTEGRATIONS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="INTEGRATIONS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllSugarcrmAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectSugarcrmAccounts()" translate="INTEGRATIONS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedSugarcrmAccounts" csv-label="true" filename="sugarcrmAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedSugarcrmAccounts($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- SUGARCRMACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedSugarcrmAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getSugarcrmAccounts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'INTEGRATIONS.NAME\' | translate }}</th>\n <th md-column md-order-by="username">{{ \'INTEGRATIONS.USERNAME\' | translate }}</th>\n <th md-column md-order-by="remoteUri">{{ \'INTEGRATIONS.URI\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.sugarcrmAccounts.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="sugarcrmAccount" md-select-id="id" ng-repeat="sugarcrmAccount in vm.sugarcrmAccounts.rows">\n <td md-cell ng-if="sugarcrmAccount.userpic"><img class="avatar" alt="{{sugarcrmAccount.name}}" ng-src="api/users/{{sugarcrmAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!sugarcrmAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{sugarcrmAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(sugarcrmAccount, ev) : vm.createOrEditSugarcrmAccount($event, sugarcrmAccount)" md-cell class="id ">{{sugarcrmAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(sugarcrmAccount, ev) : vm.createOrEditSugarcrmAccount($event, sugarcrmAccount)" md-cell class="name ">{{sugarcrmAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(sugarcrmAccount, ev) : vm.createOrEditSugarcrmAccount($event, sugarcrmAccount)" md-cell class="username ">{{sugarcrmAccount.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(sugarcrmAccount, ev) : vm.createOrEditSugarcrmAccount($event, sugarcrmAccount)" md-cell class="remoteUri ">{{sugarcrmAccount.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(sugarcrmAccount, $event )" translate="INTEGRATIONS.EDIT_SUGARCRMACCOUNT">\n Edit SugarcrmAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(sugarcrmAccount, $event )" translate="INTEGRATIONS.TEST_SUGARCRMACCOUNT">\n Test SugarcrmAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.deleteconfirm(sugarcrmAccount, $event )" translate="INTEGRATIONS.DELETE_SUGARCRMACCOUNT">\n Delete SugarcrmAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.sugarcrmAccounts.count}}" md-on-paginate="vm.getSugarcrmAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / SUGARCRMACCOUNT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD SUGARCRMACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-sugarcrmAccount-button" ng-click="vm.createOrEditSugarcrmAccount($event)" aria-label="add sugarcrmAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_SUGARCRMACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD SUGARCRMACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/integrations/views/vtigerAccounts/create/dialog.html",'<md-dialog class="vtigerAccount-dialog" aria-label="New VtigerAccount">\n <form name="vtigerAccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.vtigerAccount.name" ng-required="true" autofocus>\n\n <div ng-messages="vtigerAccountForm[\'name\'].$error" ng-show="vtigerAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.vtigerAccount.description">\n\n <div ng-messages="vtigerAccountForm[\'description\'].$error" ng-show="vtigerAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.VTIGER_USER_NAME">vTiger_User_Name</label>\n <input type="text" name="username" ng-model="vm.vtigerAccount.username" ng-required="true">\n\n <div ng-messages="vtigerAccountForm[\'username\'].$error" ng-show="vtigerAccountForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VTIGER_USER_NAME_REQUIRED">vTiger_User_Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.ACCESS_KEY">Access_Key</label>\n <input type="text" name="accessKey" ng-model="vm.vtigerAccount.accessKey" ng-required="true">\n\n <div ng-messages="vtigerAccountForm[\'accessKey\'].$error" ng-show="vtigerAccountForm[\'accessKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.ACCESS_KEY_REQUIRED">Access_Key field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.HOST">Host</label>\n <input type="url" name="remoteUri" ng-model="vm.vtigerAccount.remoteUri" ng-required="true">\n\n <div ng-messages="vtigerAccountForm[\'remoteUri\'].$error" ng-show="vtigerAccountForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.HOST_REQUIRED">Host field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.HOST_MUST_VALID_URL">Host must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.vtigerAccount.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="vtigerAccountForm[\'serverUrl\'].$error" ng-show="vtigerAccountForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newVtigerAccount" ng-click="vm.saveVtigerAccount()" class="send-button md-accent md-raised" ng-disabled="vtigerAccountForm.$invalid || vtigerAccountForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newVtigerAccount" ng-click="vm.addNewVtigerAccount()" class="send-button md-accent md-raised" ng-disabled="vtigerAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_VTIGERACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_VTIGERACCOUNT">\n ADD VTIGERACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newVtigerAccount" ng-click="vm.deleteVtigerAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/vtigerAccounts/edit/configurations/dialog.html",'<md-dialog class="vtigerConfiguration-dialog" aria-label="New VtigerConfiguration">\n <form name="vtigerConfigurationForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="" name="name" ng-model="vm.vtigerConfiguration.name" ng-required="true" autofocus>\n\n <div ng-messages="vtigerConfigurationForm[\'name\'].$error" ng-show="vtigerConfigurationForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CHANNEL">Channel</label>\n <md-select name="channel" ng-model="vm.vtigerConfiguration.channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="vtigerConfigurationForm[\'channel\'].$error" ng-show="vtigerConfigurationForm[\'channel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.vtigerConfiguration.type" required>\n\n <md-option ng-value="\'inbound\'"> {{ \'INTEGRATIONS.INBOUND_IN_QUEUE\' | translate }} </md-option>\n\n <md-option ng-value="\'outbound\'"> {{ \'INTEGRATIONS.OUTBOUND_CALL\' | translate }} </md-option>\n </md-select>\n <div ng-messages="vtigerConfigurationForm[\'type\'].$error" ng-show="vtigerConfigurationForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newVtigerConfiguration" ng-click="vm.saveVtigerConfiguration()" class="send-button md-accent md-raised" ng-disabled="vtigerConfigurationForm.$invalid || vtigerConfigurationForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newVtigerConfiguration" ng-click="vm.addNewVtigerConfiguration()" class="send-button md-accent md-raised" ng-disabled="vtigerConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_VTIGERCONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_VTIGERCONFIGURATION">\n ADD VTIGERCONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newVtigerConfiguration" ng-click="vm.deleteVtigerConfiguration($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/vtigerAccounts/edit/item/dialog.html",'<md-dialog class="vtigerAccount-item-dialog" aria-label="New Item">\n <form name="vtigerAccountItemForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <div ng-switch="vm.type">\n <div ng-switch-when="subject">\n \x3c!-- SUBJECT SECTION --\x3e\n <div ng-include="\'/subject.html\'"></div>\n \x3c!-- / SUBJECT SECTION --\x3e\n </div>\n <div ng-switch-when="description">\n \x3c!-- DESCRIPTION SECTION --\x3e\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="keyValue">Key Value</md-option>\n </md-select>\n <div ng-messages="vtigerAccountItemForm.type.$error" ng-show="vtigerAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="vtigerAccountItemForm.content.$error" ng-show="vtigerAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field\n is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.item.type == \'keyValue\'">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.item.key" required md-autofocus>\n <div ng-messages="vtigerAccountItemForm.key.$error" ng-show="vtigerAccountItemForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="keyType" ng-model="vm.item.keyType" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="vtigerAccountItemForm.keyType.$error" ng-show="vtigerAccountItemForm.keyType.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="keyContent" ng-model="vm.item.keyContent" required md-autofocus>\n <div ng-messages="vtigerAccountItemForm.keyContent.$error" ng-show="vtigerAccountItemForm.keyContent.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content\n field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="vtigerAccountItemForm.variableName.$error" ng-show="vtigerAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable\n name field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}\n </md-option>\n </md-select>\n </md-input-container>\n </div>\n \x3c!-- / DESCRIPTION SECTION --\x3e\n </div>\n <div ng-switch-when="field">\n \x3c!-- FIELD SECTION --\x3e\n <div ng-if="vm.accountConnected">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.FIELD">FIELD</label>\n \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\n </md-select>\n <div ng-messages="vtigerAccountItemForm.customField.$error" ng-show="vtigerAccountItemForm.customField.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\n </div>\n <div ng-if="!vm.accountConnected">\n <p>Account is not connected. Please check your configurations!</p>\n </div>\n \x3c!-- / FIELD SECTION --\x3e\n </div>\n <div ng-switch-default>\n <p>No Item</p>\n </div>\n </div>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="vtigerAccountItemForm.$invalid || vtigerAccountItemForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="vtigerAccountItemForm.$invalid || vtigerAccountItemForm.$pristine" aria-label="ADD" translate="INTEGRATIONS.ADD" translate-attr-aria-label="INTEGRATIONS.ADD">\n ADD\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newItem" ng-click="vm.deleteItem($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>\n\n<script type="text/ng-template" id="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n <md-option ng-if="vm.customField.options.length" value="picklist">Picklist</md-option>\n </md-select>\n <div ng-messages="vtigerAccountItemForm.type.$error" ng-show="vtigerAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <md-select name="option" ng-model="vm.item.content" required>\n <md-option ng-value="option.value" ng-repeat="option in vm.customField.options">{{option.name}}</md-option>\n </md-select>\n\n <div ng-messages="vtigerAccountItemForm.option.$error" ng-show="vtigerAccountItemForm.option.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\n <div ng-messages="vtigerAccountItemForm.content.$error" ng-show="vtigerAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="vtigerAccountItemForm.variableName.$error" ng-show="vtigerAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!--/ value --\x3e\n\n<\/script>\n\n<script type="text/ng-template" id="/subject.html">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="vtigerAccountItemForm.type.$error" ng-show="vtigerAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n \n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="vtigerAccountItemForm.content.$error"\n ng-show="vtigerAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="vtigerAccountItemForm.variableName.$error"\n ng-show="vtigerAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n <\/script>'),e.put("app/main/apps/integrations/views/vtigerAccounts/edit/view.html",'<div id="integrations-vtigerAccount" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-vtigerAccounts-button md-icon-button" aria-label="Go to vtigerAccounts" ng-click="vm.gotoVtigerAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_VTIGERACCOUNTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="vtigerAccount-image" hide-xs>\n <img ng-src="assets/images/business/vtigerAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.vtigerAccount.id}}\n <span ng-if="vm.vtigerAccount.name">{{vm.vtigerAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.vtigerAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveVtigerAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (configurationsForm.$invalid)" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="vtigerAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.vtigerAccount.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.vtigerAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.VTIGER_USER_NAME">vTiger_User_Name</label>\n <input type="text" name="username" ng-model="vm.vtigerAccount.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'username\'].$error" ng-show="generalForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VTIGER_USER_NAME_REQUIRED">vTiger_User_Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.ACCESS_KEY">Access_Key</label>\n <input type="text" name="accessKey" ng-model="vm.vtigerAccount.accessKey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'accessKey\'].$error" ng-show="generalForm[\'accessKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.ACCESS_KEY_REQUIRED">Access_Key field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.HOST">Host</label>\n <input type="url" name="remoteUri" ng-model="vm.vtigerAccount.remoteUri" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'remoteUri\'].$error" ng-show="generalForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.HOST_REQUIRED">Host field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.HOST_MUST_VALID_URL">Host must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.vtigerAccount.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="generalForm[\'serverUrl\'].$error" ng-show="generalForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="vtigerAccount-detail-form-container configurations md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</div>\n </div>\n <div ng-controller="VtigerAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.vtigerAccount, vm.crudPermissions)" layout="row">\n <md-card class="md-whiteframe-1dp" flex="30">\n <div layout="row" layout-align="center center">\n <md-subheader flex="75" class="md-no-sticky">{{ \'INTEGRATIONS.CONFIGURATIONS\' | translate }}</md-subheader>\n <md-button flex="25" ng-if="vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditVtigerConfiguration($event)" class="md-icon-button" aria-label="create vtigerConfiguration">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n <md-list>\n <md-list-item layout="row" layout-align="center center" ng-repeat="vtigerConfiguration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedVtigerConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getVtigerConfiguration($index)">\n <span class="text-truncate" flex="80">{{ vtigerConfiguration.name }}</span>\n <md-menu ng-if="vm_cc.crudPermissions.canDelete">\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteVtigerConfiguration($event, vtigerConfiguration)" translate="INTEGRATIONS.DELETE_VTIGERCONFIGURATION">\n Delete VtigerConfiguration\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-list-item>\n </md-list>\n </md-card>\n <div flex></div>\n <md-card class="md-whiteframe-1dp" flex="65">\n <md-tabs ng-if="vm_cc.configurations.length" md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.SUBJECTS">SUBJECTS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.subject = query" on-collapse="vm_cc.query.subject = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditSubject($event)" aria-label="add subject" translate translate-attr-label="INTEGRATIONS.ADD_SUBJECT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedSubjects.length}} {{vm_cc.selectedSubjects.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedSubjects($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedSubjects">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="subject" md-select-id="id" ng-repeat="subject in vm_cc.subjects | filter: vm_cc.query.subject">\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="id ">{{subject.id}}</td>\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="type ">\n <span ng-if="subject.FieldId">{{subject.nameField || subject.idField}}</span>\n <span ng-if="!subject.FieldId">{{subject.type}}</span>\n </td>\n <td ng-switch="subject.type" ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell>\n <span ng-switch-when="string">{{subject.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{subject.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{subject.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{subject.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditSubject($event, subject)" translate="INTEGRATIONS.EDIT_SUBJECT">\n Edit Subject\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteSubjectConfirm($event, subject)" translate="INTEGRATIONS.DELETE_SUBJECT">\n Delete Subject\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.DESCRIPTIONS">DESCRIPTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.description = query" on-collapse="vm_cc.query.description = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditDescription($event)" aria-label="add description" translate translate-attr-label="INTEGRATIONS.ADD_DESCRIPTION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedDescriptions.length}} {{vm_cc.selectedDescriptions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedDescriptions($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedDescriptions">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="description" md-select-id="id" ng-repeat="description in vm_cc.descriptions | filter: vm_cc.query.description">\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="id ">{{description.id}}</td>\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="type ">\n <span ng-if="description.FieldId">{{description.nameField || description.idField}}</span>\n <span ng-if="!description.FieldId">{{description.type}}</span>\n </td>\n <td ng-switch="description.type" ng-click="vm_cc.createOrEditDescription($event, description)" md-cell>\n <span ng-switch-when="string">{{description.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{description.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{description.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{description.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditDescription($event, description)" translate="INTEGRATIONS.EDIT_DESCRIPTION">\n Edit Description\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteDescriptionConfirm($event, description)" translate="INTEGRATIONS.DELETE_DESCRIPTION">\n Delete Description\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.FIELDS">FIELDS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.field = query" on-collapse="vm_cc.query.field = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditField($event)" aria-label="add field" translate translate-attr-label="INTEGRATIONS.ADD_FIELD">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedFields.length}} {{vm_cc.selectedFields.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedFields($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedFields">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="field" md-select-id="id" ng-repeat="field in vm_cc.fields | filter: vm_cc.query.field">\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="id ">{{field.id}}</td>\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="type ">\n <span ng-if="field.FieldId">{{field.nameField || field.idField}}</span>\n <span ng-if="!field.FieldId">{{field.type}}</span>\n </td>\n <td ng-switch="field.type" ng-click="vm_cc.createOrEditField($event, field)" md-cell>\n <span ng-switch-when="string">{{field.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{field.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{field.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{field.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditField($event, field)" translate="INTEGRATIONS.EDIT_FIELD">\n Edit Field\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteFieldConfirm($event, field)" translate="INTEGRATIONS.DELETE_FIELD">\n Delete Field\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.configurations.length && vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditVtigerConfiguration($event)" layout="row" layout-sm="column" layout-align="center center" layout-wrap>\n <div class="padding-20 md-whiteframe-3dp md-accent-bg" layout="column" layout-align="center center">\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <span aria-label="add configuration" translate translate-attr-label="INTEGRATIONS.ADD_CONFIGURATION">ADD CONFIGURATION</span>\n </div>\n </div>\n </md-card>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/integrations/views/vtigerAccounts/vtigerAccounts.html",'<div id="vtigerAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-heart" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="INTEGRATIONS.VTIGERACCOUNTS">VtigerAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedVtigerAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedVtigerAccounts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="INTEGRATIONS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-vtigerAccounts-count">\n <span>{{vm.selectedVtigerAccounts.length}}</span>\n <span translate="INTEGRATIONS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="INTEGRATIONS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllVtigerAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectVtigerAccounts()" translate="INTEGRATIONS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedVtigerAccounts" csv-label="true" filename="vtigerAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedVtigerAccounts($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- VTIGERACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedVtigerAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getVtigerAccounts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'INTEGRATIONS.NAME\' | translate }}</th>\n <th md-column md-order-by="username">{{ \'INTEGRATIONS.VTIGER_USER_NAME\' | translate }}</th>\n <th md-column md-order-by="remoteUri">{{ \'INTEGRATIONS.HOST\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.vtigerAccounts.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="vtigerAccount" md-select-id="id" ng-repeat="vtigerAccount in vm.vtigerAccounts.rows">\n <td md-cell ng-if="vtigerAccount.userpic"><img class="avatar" alt="{{vtigerAccount.name}}" ng-src="api/users/{{vtigerAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!vtigerAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{vtigerAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(vtigerAccount, ev) : vm.createOrEditVtigerAccount($event, vtigerAccount)" md-cell class="id ">{{vtigerAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(vtigerAccount, ev) : vm.createOrEditVtigerAccount($event, vtigerAccount)" md-cell class="name ">{{vtigerAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(vtigerAccount, ev) : vm.createOrEditVtigerAccount($event, vtigerAccount)" md-cell class="username ">{{vtigerAccount.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(vtigerAccount, ev) : vm.createOrEditVtigerAccount($event, vtigerAccount)" md-cell class="remoteUri ">{{vtigerAccount.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(vtigerAccount, $event )" translate="INTEGRATIONS.EDIT_VTIGERACCOUNT">\n Edit VtigerAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(vtigerAccount, $event )" translate="INTEGRATIONS.TEST_VTIGERACCOUNT">\n Test VtigerAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(vtigerAccount, $event )" translate="INTEGRATIONS.DELETE_VTIGERACCOUNT">\n Delete VtigerAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.vtigerAccounts.count}}" md-on-paginate="vm.getVtigerAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / VTIGERACCOUNT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD VTIGERACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-vtigerAccount-button" ng-click="vm.createOrEditVtigerAccount($event)" aria-label="add vtigerAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_VTIGERACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD VTIGERACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/integrations/views/zendeskAccounts/create/dialog.html",'<md-dialog class="zendeskAccount-dialog" aria-label="New ZendeskAccount">\n <form name="zendeskAccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.zendeskAccount.name" ng-required="true" autofocus>\n\n <div ng-messages="zendeskAccountForm[\'name\'].$error" ng-show="zendeskAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.zendeskAccount.type" required>\n\n <md-option ng-value="\'integrationTab\'"> {{ \'INTEGRATIONS.INTEGRATION_TAB\' | translate }} </md-option>\n\n <md-option ng-value="\'newTab\'"> {{ \'INTEGRATIONS.NEW_TAB\' | translate }} </md-option>\n </md-select>\n <div ng-messages="zendeskAccountForm[\'type\'].$error" ng-show="zendeskAccountForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.zendeskAccount.username" ng-required="true">\n\n <div ng-messages="zendeskAccountForm[\'username\'].$error" ng-show="zendeskAccountForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.zendeskAccount.remoteUri" ng-required="true">\n\n <div ng-messages="zendeskAccountForm[\'remoteUri\'].$error" ng-show="zendeskAccountForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.AUTHTYPE">AuthType</label>\n <md-select name="authType" ng-model="vm.zendeskAccount.authType" required>\n <md-option ng-value="\'password\'">Password</md-option>\n <md-option ng-value="\'token\'">Token</md-option>\n </md-select>\n <div ng-messages="zendeskAccountForm[\'authType\'].$error" ng-show="zendeskAccountForm[\'authType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.AUTHTYPE_REQUIRED">AuthType field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.zendeskAccount.authType == \'password\'">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.zendeskAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="zendeskAccountForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container ng-if="vm.zendeskAccount.authType == \'token\'" class="md-block">\n <label translate="INTEGRATIONS.TOKEN">Token</label>\n <input type="text" name="token" ng-model="vm.zendeskAccount.token" ng-required="true">\n\n <div ng-messages="zendeskAccountForm[\'token\'].$error" ng-show="zendeskAccountForm[\'token\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TOKEN_REQUIRED">Token field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.zendeskAccount.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="zendeskAccountForm[\'serverUrl\'].$error" ng-show="zendeskAccountForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.zendeskAccount.description">\n\n <div ng-messages="zendeskAccountForm[\'description\'].$error" ng-show="zendeskAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newZendeskAccount" ng-click="vm.saveZendeskAccount()" class="send-button md-accent md-raised" ng-disabled="zendeskAccountForm.$invalid || zendeskAccountForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newZendeskAccount" ng-click="vm.addNewZendeskAccount()" class="send-button md-accent md-raised" ng-disabled="zendeskAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_ZENDESKACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_ZENDESKACCOUNT">\n ADD ZENDESKACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newZendeskAccount" ng-click="vm.deleteZendeskAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/zendeskAccounts/edit/item/dialog.html",'<md-dialog class="zendeskAccount-item-dialog" aria-label="New Item">\n <form name="zendeskAccountItemForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <div ng-switch="vm.type">\n <div ng-switch-when="subject">\n \x3c!-- SUBJECT SECTION --\x3e\n <div ng-include="\'/subject.html\'"></div>\n \x3c!-- / SUBJECT SECTION --\x3e\n </div>\n <div ng-switch-when="description">\n \x3c!-- DESCRIPTION SECTION --\x3e\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="keyValue">Key Value</md-option>\n </md-select>\n <div ng-messages="zendeskAccountItemForm.type.$error" ng-show="zendeskAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="zendeskAccountItemForm.content.$error" ng-show="zendeskAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field\n is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.item.type == \'keyValue\'">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.item.key" required md-autofocus>\n <div ng-messages="zendeskAccountItemForm.key.$error" ng-show="zendeskAccountItemForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="keyType" ng-model="vm.item.keyType" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="zendeskAccountItemForm.keyType.$error" ng-show="zendeskAccountItemForm.keyType.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="keyContent" ng-model="vm.item.keyContent" required md-autofocus>\n <div ng-messages="zendeskAccountItemForm.keyContent.$error" ng-show="zendeskAccountItemForm.keyContent.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content\n field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="zendeskAccountItemForm.variableName.$error" ng-show="zendeskAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable\n name field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}\n </md-option>\n </md-select>\n </md-input-container>\n </div>\n \x3c!-- / DESCRIPTION SECTION --\x3e\n </div>\n <div ng-switch-when="field">\n \x3c!-- FIELD SECTION --\x3e\n <div ng-if="vm.accountConnected">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.FIELD">FIELD</label>\n \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\n </md-select>\n <div ng-messages="zendeskAccountItemForm.customField.$error" ng-show="zendeskAccountItemForm.customField.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\n </div>\n <div ng-if="!vm.accountConnected">\n <p>Account is not connected. Please check your configurations!</p>\n </div>\n \x3c!-- / FIELD SECTION --\x3e\n </div>\n <div ng-switch-default>\n <p>No Item</p>\n </div>\n </div>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="zendeskAccountItemForm.$invalid || zendeskAccountItemForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="zendeskAccountItemForm.$invalid || zendeskAccountItemForm.$pristine" aria-label="ADD" translate="INTEGRATIONS.ADD" translate-attr-aria-label="INTEGRATIONS.ADD">\n ADD\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newItem" ng-click="vm.deleteItem($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>\n\n<script type="text/ng-template" id="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n <md-option ng-if="vm.customField.options.length" value="picklist">Picklist</md-option>\n </md-select>\n <div ng-messages="zendeskAccountItemForm.type.$error" ng-show="zendeskAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <md-select name="option" ng-model="vm.item.content" required>\n <md-option ng-value="option.value" ng-repeat="option in vm.customField.options">{{option.name}}</md-option>\n </md-select>\n\n <div ng-messages="zendeskAccountItemForm.option.$error" ng-show="zendeskAccountItemForm.option.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\n <div ng-messages="zendeskAccountItemForm.content.$error" ng-show="zendeskAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="zendeskAccountItemForm.variableName.$error" ng-show="zendeskAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!--/ value --\x3e\n\n<\/script>\n\n<script type="text/ng-template" id="/subject.html">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="zendeskAccountItemForm.type.$error" ng-show="zendeskAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n \n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="zendeskAccountItemForm.content.$error"\n ng-show="zendeskAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="zendeskAccountItemForm.variableName.$error"\n ng-show="zendeskAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n <\/script>'),e.put("app/main/apps/integrations/views/zendeskAccounts/edit/view.html",'<div id="integrations-zendeskAccount" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-zendeskAccounts-button md-icon-button" aria-label="Go to zendeskAccounts" ng-click="vm.gotoZendeskAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_ZENDESKACCOUNTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="zendeskAccount-image" hide-xs>\n <img ng-src="assets/images/business/zendeskAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.zendeskAccount.id}}\n <span ng-if="vm.zendeskAccount.name">{{vm.zendeskAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.zendeskAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveZendeskAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (zendeskConfigurationsForm.$invalid)" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="zendeskAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.zendeskAccount.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.zendeskAccount.type" required ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'integrationTab\'"> {{ \'INTEGRATIONS.INTEGRATION_TAB\' | translate }} </md-option>\n\n <md-option ng-value="\'newTab\'"> {{ \'INTEGRATIONS.NEW_TAB\' | translate }} </md-option>\n </md-select>\n <div ng-messages="generalForm[\'type\'].$error" ng-show="generalForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.zendeskAccount.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'username\'].$error" ng-show="generalForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.zendeskAccount.remoteUri" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'remoteUri\'].$error" ng-show="generalForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.AUTHTYPE">AuthType</label>\n <md-select name="authType" ng-model="vm.zendeskAccount.authType" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'password\'">Password</md-option>\n <md-option ng-value="\'token\'">Token</md-option>\n </md-select>\n <div ng-messages="generalForm[\'authType\'].$error" ng-show="generalForm[\'authType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.AUTHTYPE_REQUIRED">AuthType field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.zendeskAccount.authType == \'password\'">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.zendeskAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="generalForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container ng-if="vm.zendeskAccount.authType == \'token\'" class="md-block">\n <label translate="INTEGRATIONS.TOKEN">Token</label>\n <input type="text" name="token" ng-model="vm.zendeskAccount.token" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'token\'].$error" ng-show="generalForm[\'token\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TOKEN_REQUIRED">Token field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.zendeskAccount.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="generalForm[\'serverUrl\'].$error" ng-show="generalForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.zendeskAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="zendeskAccount-detail-form-container zendeskconfigurations md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.ZENDESKCONFIGURATIONS">ZENDESKCONFIGURATIONS</div>\n </div>\n <div ng-controller="ZendeskAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.zendeskAccount, vm.crudPermissions)" layout="row">\n <md-card class="md-whiteframe-1dp" flex="30">\n <div layout="row" layout-align="center center">\n <md-subheader flex="75" class="md-no-sticky">{{ \'INTEGRATIONS.CONFIGURATIONS\' | translate }}</md-subheader>\n <md-button flex="25" ng-if="vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditZendeskConfiguration($event)" class="md-icon-button" aria-label="create zendeskConfiguration">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n <md-list>\n <md-list-item layout="row" layout-align="center center" ng-repeat="zendeskConfiguration in vm_cc.zendeskConfigurations" class="border-top" md-colors="{background: (vm_cc.selectedZendeskConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getZendeskConfiguration($index)">\n <span class="text-truncate" flex="80">{{ zendeskConfiguration.name }}</span>\n <md-menu ng-if="vm_cc.crudPermissions.canDelete">\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteZendeskConfiguration($event, zendeskConfiguration)" translate="INTEGRATIONS.DELETE_ZENDESKCONFIGURATION">\n Delete ZendeskConfiguration\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-list-item>\n </md-list>\n </md-card>\n <div flex></div>\n <md-card class="md-whiteframe-1dp" flex="65">\n <md-tabs ng-if="vm_cc.zendeskConfigurations.length" md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.SUBJECTS">SUBJECTS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.subject = query" on-collapse="vm_cc.query.subject = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditSubject($event)" aria-label="add subject" translate translate-attr-label="INTEGRATIONS.ADD_SUBJECT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedSubjects.length}} {{vm_cc.selectedSubjects.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedSubjects($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedSubjects">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="subject" md-select-id="id" ng-repeat="subject in vm_cc.subjects | filter: vm_cc.query.subject">\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="id ">{{subject.id}}</td>\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="type ">\n <span ng-if="subject.FieldId">{{subject.nameField || subject.idField}}</span>\n <span ng-if="!subject.FieldId">{{subject.type}}</span>\n </td>\n <td ng-switch="subject.type" ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell>\n <span ng-switch-when="string">{{subject.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{subject.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{subject.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{subject.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditSubject($event, subject)" translate="INTEGRATIONS.EDIT_SUBJECT">\n Edit Subject\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteSubjectConfirm($event, subject)" translate="INTEGRATIONS.DELETE_SUBJECT">\n Delete Subject\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.DESCRIPTIONS">DESCRIPTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.description = query" on-collapse="vm_cc.query.description = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditDescription($event)" aria-label="add description" translate translate-attr-label="INTEGRATIONS.ADD_DESCRIPTION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedDescriptions.length}} {{vm_cc.selectedDescriptions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedDescriptions($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedDescriptions">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="description" md-select-id="id" ng-repeat="description in vm_cc.descriptions | filter: vm_cc.query.description">\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="id ">{{description.id}}</td>\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="type ">\n <span ng-if="description.FieldId">{{description.nameField || description.idField}}</span>\n <span ng-if="!description.FieldId">{{description.type}}</span>\n </td>\n <td ng-switch="description.type" ng-click="vm_cc.createOrEditDescription($event, description)" md-cell>\n <span ng-switch-when="string">{{description.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{description.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{description.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{description.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditDescription($event, description)" translate="INTEGRATIONS.EDIT_DESCRIPTION">\n Edit Description\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteDescriptionConfirm($event, description)" translate="INTEGRATIONS.DELETE_DESCRIPTION">\n Delete Description\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.FIELDS">FIELDS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.field = query" on-collapse="vm_cc.query.field = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditField($event)" aria-label="add field" translate translate-attr-label="INTEGRATIONS.ADD_FIELD">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedFields.length}} {{vm_cc.selectedFields.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedFields($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedFields">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="field" md-select-id="id" ng-repeat="field in vm_cc.fields | filter: vm_cc.query.field">\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="id ">{{field.id}}</td>\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="type ">\n <span ng-if="field.FieldId">{{field.nameField || field.idField}}</span>\n <span ng-if="!field.FieldId">{{field.type}}</span>\n </td>\n <td ng-switch="field.type" ng-click="vm_cc.createOrEditField($event, field)" md-cell>\n <span ng-switch-when="string">{{field.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{field.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{field.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{field.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditField($event, field)" translate="INTEGRATIONS.EDIT_FIELD">\n Edit Field\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteFieldConfirm($event, field)" translate="INTEGRATIONS.DELETE_FIELD">\n Delete Field\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.TAGS">TAGS</span>\n </md-tab-label>\n <md-tab-body>\n <md-table-container class="md-whiteframe-1dp padding-20">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TAGS">Tags</label>\n <md-select ng-model="vm_cc.selectedTags" ng-change="vm_cc.selectTagsChanged($event)" multiple>\n <md-option ng-value="tag.id" ng-repeat="tag in vm_cc.tags">{{ tag.name }}</md-option>\n </md-select>\n </md-input-container>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.zendeskConfigurations.length && vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditZendeskConfiguration($event)" layout="row" layout-sm="column" layout-align="center center" layout-wrap>\n <div class="padding-20 md-whiteframe-3dp md-accent-bg" layout="column" layout-align="center center">\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <span aria-label="add configuration" translate translate-attr-label="INTEGRATIONS.ADD_CONFIGURATION">ADD CONFIGURATION</span>\n </div>\n </div>\n </md-card>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/integrations/views/zendeskAccounts/edit/zendeskConfigurations/dialog.html",'<md-dialog class="zendeskConfiguration-dialog" aria-label="New ZendeskConfiguration">\n <form name="zendeskConfigurationForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="" name="name" ng-model="vm.zendeskConfiguration.name" ng-required="true" autofocus>\n\n <div ng-messages="zendeskConfigurationForm[\'name\'].$error" ng-show="zendeskConfigurationForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CHANNEL">Channel</label>\n <md-select name="channel" ng-model="vm.zendeskConfiguration.channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="zendeskConfigurationForm[\'channel\'].$error" ng-show="zendeskConfigurationForm[\'channel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.zendeskConfiguration.type" required>\n\n <md-option ng-value="\'inbound\'"> {{ \'INTEGRATIONS.INBOUND_IN_QUEUE\' | translate }} </md-option>\n\n <md-option ng-value="\'outbound\'"> {{ \'INTEGRATIONS.OUTBOUND_CALL\' | translate }} </md-option>\n </md-select>\n <div ng-messages="zendeskConfigurationForm[\'type\'].$error" ng-show="zendeskConfigurationForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newZendeskConfiguration" ng-click="vm.saveZendeskConfiguration()" class="send-button md-accent md-raised" ng-disabled="zendeskConfigurationForm.$invalid || zendeskConfigurationForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newZendeskConfiguration" ng-click="vm.addNewZendeskConfiguration()" class="send-button md-accent md-raised" ng-disabled="zendeskConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_ZENDESKCONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_ZENDESKCONFIGURATION">\n ADD ZENDESKCONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newZendeskConfiguration" ng-click="vm.deleteZendeskConfiguration($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/zendeskAccounts/zendeskAccounts.html",'<div id="zendeskAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-heart" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="INTEGRATIONS.ZENDESKACCOUNTS">ZendeskAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedZendeskAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedZendeskAccounts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="INTEGRATIONS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-zendeskAccounts-count">\n <span>{{vm.selectedZendeskAccounts.length}}</span>\n <span translate="INTEGRATIONS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="INTEGRATIONS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllZendeskAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectZendeskAccounts()" translate="INTEGRATIONS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedZendeskAccounts" csv-label="true" filename="zendeskAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedZendeskAccounts($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- ZENDESKACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedZendeskAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getZendeskAccounts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'INTEGRATIONS.NAME\' | translate }}</th>\n <th md-column md-order-by="username">{{ \'INTEGRATIONS.USERNAME\' | translate }}</th>\n <th md-column md-order-by="remoteUri">{{ \'INTEGRATIONS.URI\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.zendeskAccounts.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="zendeskAccount" md-select-id="id" ng-repeat="zendeskAccount in vm.zendeskAccounts.rows">\n <td md-cell ng-if="zendeskAccount.userpic"><img class="avatar" alt="{{zendeskAccount.name}}" ng-src="api/users/{{zendeskAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!zendeskAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{zendeskAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zendeskAccount, ev) : vm.createOrEditZendeskAccount($event, zendeskAccount)" md-cell class="id ">{{zendeskAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zendeskAccount, ev) : vm.createOrEditZendeskAccount($event, zendeskAccount)" md-cell class="name ">{{zendeskAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zendeskAccount, ev) : vm.createOrEditZendeskAccount($event, zendeskAccount)" md-cell class="username ">{{zendeskAccount.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zendeskAccount, ev) : vm.createOrEditZendeskAccount($event, zendeskAccount)" md-cell class="remoteUri ">{{zendeskAccount.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(zendeskAccount, $event )" translate="INTEGRATIONS.EDIT_ZENDESKACCOUNT">\n Edit ZendeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(zendeskAccount, $event )" translate="INTEGRATIONS.TEST_ZENDESKACCOUNT">\n Test ZendeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(zendeskAccount, $event )" translate="INTEGRATIONS.DELETE_ZENDESKACCOUNT">\n Delete ZendeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.zendeskAccounts.count}}" md-on-paginate="vm.getZendeskAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / ZENDESKACCOUNT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD ZENDESKACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-zendeskAccount-button" ng-click="vm.createOrEditZendeskAccount($event)" aria-label="add zendeskAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_ZENDESKACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD ZENDESKACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/integrations/views/zohoAccounts/create/dialog.html",'<md-dialog class="zohoAccount-dialog" aria-label="New ZohoAccount">\n <form name="zohoAccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.zohoAccount.name" ng-required="true" autofocus>\n\n <div ng-messages="zohoAccountForm[\'name\'].$error" ng-show="zohoAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.HOST">Host</label>\n <md-select name="host" ng-model="vm.zohoAccount.host" required>\n <md-option ng-value="\'zoho.com\'">zoho.com</md-option>\n <md-option ng-value="\'zoho.eu\'">zoho.eu</md-option>\n </md-select>\n <div ng-messages="zohoAccountForm[\'host\'].$error" ng-show="zohoAccountForm[\'host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.HOST_REQUIRED">Host field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.ZONE">Zone</label>\n <md-select name="zone" ng-model="vm.zohoAccount.zone" required>\n <md-option ng-value="\'US\'">US</md-option>\n <md-option ng-value="\'AU\'">AU</md-option>\n <md-option ng-value="\'EU\'">EU</md-option>\n <md-option ng-value="\'IN\'">IN</md-option>\n <md-option ng-value="\'CN\'">CN</md-option>\n </md-select>\n <div class="hint"><span translate="INTEGRATIONS.HELP.ZONE"></span></div>\n <div ng-messages="zohoAccountForm[\'zone\'].$error" ng-show="zohoAccountForm[\'zone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.ZONE_REQUIRED">Zone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTID">ClientId</label>\n <input type="text" name="clientId" ng-model="vm.zohoAccount.clientId" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.CLIENTID"></span></div>\n <div ng-messages="zohoAccountForm[\'clientId\'].$error" ng-show="zohoAccountForm[\'clientId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTID_REQUIRED">ClientId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTSECRET">ClientSecret</label>\n <input type="text" name="clientSecret" ng-model="vm.zohoAccount.clientSecret" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.CLIENTSECRET"></span></div>\n <div ng-messages="zohoAccountForm[\'clientSecret\'].$error" ng-show="zohoAccountForm[\'clientSecret\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTSECRET_REQUIRED">ClientSecret field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CODE">Code</label>\n <input type="text" name="code" ng-model="vm.zohoAccount.code" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.CODE"></span></div>\n <div ng-messages="zohoAccountForm[\'code\'].$error" ng-show="zohoAccountForm[\'code\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CODE_REQUIRED">Code field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.zohoAccount.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="zohoAccountForm[\'serverUrl\'].$error" ng-show="zohoAccountForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.zohoAccount.description">\n\n <div ng-messages="zohoAccountForm[\'description\'].$error" ng-show="zohoAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newZohoAccount" ng-click="vm.saveZohoAccount()" class="send-button md-accent md-raised" ng-disabled="zohoAccountForm.$invalid || zohoAccountForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newZohoAccount" ng-click="vm.addNewZohoAccount()" class="send-button md-accent md-raised" ng-disabled="zohoAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_ZOHOACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_ZOHOACCOUNT">\n ADD ZOHOACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newZohoAccount" ng-click="vm.deleteZohoAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/zohoAccounts/edit/configurations/dialog.html",'<md-dialog class="zohoConfiguration-dialog" aria-label="New ZohoConfiguration">\n <form name="zohoConfigurationForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="" name="name" ng-model="vm.zohoConfiguration.name" ng-required="true" autofocus>\n\n <div ng-messages="zohoConfigurationForm[\'name\'].$error" ng-show="zohoConfigurationForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CHANNEL">Channel</label>\n <md-select name="channel" ng-model="vm.zohoConfiguration.channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="zohoConfigurationForm[\'channel\'].$error" ng-show="zohoConfigurationForm[\'channel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.zohoConfiguration.type" required>\n\n <md-option ng-value="\'inbound\'"> {{ \'INTEGRATIONS.INBOUND_IN_QUEUE\' | translate }} </md-option>\n\n <md-option ng-value="\'outbound\'"> {{ \'INTEGRATIONS.OUTBOUND_CALL\' | translate }} </md-option>\n </md-select>\n <div ng-messages="zohoConfigurationForm[\'type\'].$error" ng-show="zohoConfigurationForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newZohoConfiguration" ng-click="vm.saveZohoConfiguration()" class="send-button md-accent md-raised" ng-disabled="zohoConfigurationForm.$invalid || zohoConfigurationForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newZohoConfiguration" ng-click="vm.addNewZohoConfiguration()" class="send-button md-accent md-raised" ng-disabled="zohoConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_ZOHOCONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_ZOHOCONFIGURATION">\n ADD ZOHOCONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newZohoConfiguration" ng-click="vm.deleteZohoConfiguration($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/zohoAccounts/edit/item/dialog.html",'<md-dialog class="zohoAccount-item-dialog" aria-label="New Item">\n <form name="zohoAccountItemForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <div ng-switch="vm.type">\n <div ng-switch-when="subject">\n \x3c!-- SUBJECT SECTION --\x3e\n <div ng-include="\'/subject.html\'"></div>\n \x3c!-- / SUBJECT SECTION --\x3e\n </div>\n <div ng-switch-when="description">\n \x3c!-- DESCRIPTION SECTION --\x3e\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="keyValue">Key Value</md-option>\n </md-select>\n <div ng-messages="zohoAccountItemForm.type.$error" ng-show="zohoAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="zohoAccountItemForm.content.$error" ng-show="zohoAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field\n is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.item.type == \'keyValue\'">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.item.key" required md-autofocus>\n <div ng-messages="zohoAccountItemForm.key.$error" ng-show="zohoAccountItemForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="keyType" ng-model="vm.item.keyType" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="zohoAccountItemForm.keyType.$error" ng-show="zohoAccountItemForm.keyType.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="keyContent" ng-model="vm.item.keyContent" required md-autofocus>\n <div ng-messages="zohoAccountItemForm.keyContent.$error" ng-show="zohoAccountItemForm.keyContent.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content\n field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="zohoAccountItemForm.variableName.$error" ng-show="zohoAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable\n name field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}\n </md-option>\n </md-select>\n </md-input-container>\n </div>\n \x3c!-- / DESCRIPTION SECTION --\x3e\n </div>\n <div ng-switch-when="field">\n \x3c!-- FIELD SECTION --\x3e\n <div ng-if="vm.accountConnected">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.FIELD">FIELD</label>\n \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\n </md-select>\n <div ng-messages="zohoAccountItemForm.customField.$error" ng-show="zohoAccountItemForm.customField.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\n </div>\n <div ng-if="!vm.accountConnected">\n <p>Account is not connected. Please check your configurations!</p>\n </div>\n \x3c!-- / FIELD SECTION --\x3e\n </div>\n <div ng-switch-default>\n <p>No Item</p>\n </div>\n </div>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="zohoAccountItemForm.$invalid || zohoAccountItemForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="zohoAccountItemForm.$invalid || zohoAccountItemForm.$pristine" aria-label="ADD" translate="INTEGRATIONS.ADD" translate-attr-aria-label="INTEGRATIONS.ADD">\n ADD\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newItem" ng-click="vm.deleteItem($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>\n\n<script type="text/ng-template" id="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n <md-option ng-if="vm.customField.options.length" value="picklist">Picklist</md-option>\n </md-select>\n <div ng-messages="zohoAccountItemForm.type.$error" ng-show="zohoAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <md-select name="option" ng-model="vm.item.content" required>\n <md-option ng-value="option.value" ng-repeat="option in vm.customField.options">{{option.name}}</md-option>\n </md-select>\n\n <div ng-messages="zohoAccountItemForm.option.$error" ng-show="zohoAccountItemForm.option.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\n <div ng-messages="zohoAccountItemForm.content.$error" ng-show="zohoAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="zohoAccountItemForm.variableName.$error" ng-show="zohoAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!--/ value --\x3e\n\n<\/script>\n\n<script type="text/ng-template" id="/subject.html">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="zohoAccountItemForm.type.$error" ng-show="zohoAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n \n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="zohoAccountItemForm.content.$error"\n ng-show="zohoAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="zohoAccountItemForm.variableName.$error"\n ng-show="zohoAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n <\/script>'),e.put("app/main/apps/integrations/views/zohoAccounts/edit/view.html",'<div id="integrations-zohoAccount" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-zohoAccounts-button md-icon-button" aria-label="Go to zohoAccounts" ng-click="vm.gotoZohoAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_ZOHOACCOUNTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="zohoAccount-image" hide-xs>\n <img ng-src="assets/images/business/zohoAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.zohoAccount.id}}\n <span ng-if="vm.zohoAccount.name">{{vm.zohoAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.zohoAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveZohoAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (configurationsForm.$invalid)" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="zohoAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.zohoAccount.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.HOST">Host</label>\n <md-select name="host" ng-model="vm.zohoAccount.host" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'zoho.com\'">zoho.com</md-option>\n <md-option ng-value="\'zoho.eu\'">zoho.eu</md-option>\n </md-select>\n <div ng-messages="generalForm[\'host\'].$error" ng-show="generalForm[\'host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.HOST_REQUIRED">Host field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.ZONE">Zone</label>\n <md-select name="zone" ng-model="vm.zohoAccount.zone" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'US\'">US</md-option>\n <md-option ng-value="\'AU\'">AU</md-option>\n <md-option ng-value="\'EU\'">EU</md-option>\n <md-option ng-value="\'IN\'">IN</md-option>\n <md-option ng-value="\'CN\'">CN</md-option>\n </md-select>\n <div class="hint"><span translate="INTEGRATIONS.HELP.ZONE"></span></div>\n <div ng-messages="generalForm[\'zone\'].$error" ng-show="generalForm[\'zone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.ZONE_REQUIRED">Zone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTID">ClientId</label>\n <input type="text" name="clientId" ng-model="vm.zohoAccount.clientId" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.CLIENTID"></span></div>\n <div ng-messages="generalForm[\'clientId\'].$error" ng-show="generalForm[\'clientId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTID_REQUIRED">ClientId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTSECRET">ClientSecret</label>\n <input type="text" name="clientSecret" ng-model="vm.zohoAccount.clientSecret" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.CLIENTSECRET"></span></div>\n <div ng-messages="generalForm[\'clientSecret\'].$error" ng-show="generalForm[\'clientSecret\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTSECRET_REQUIRED">ClientSecret field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CODE">Code</label>\n <input type="text" name="code" ng-model="vm.zohoAccount.code" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.CODE"></span></div>\n <div ng-messages="generalForm[\'code\'].$error" ng-show="generalForm[\'code\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CODE_REQUIRED">Code field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.REFRESHTOKEN">RefreshToken</label>\n <input type="text" name="refreshToken" ng-model="vm.zohoAccount.refreshToken" disabled>\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.REFRESHTOKEN"></span></div>\n <div ng-messages="generalForm[\'refreshToken\'].$error" ng-show="generalForm[\'refreshToken\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.REFRESHTOKEN_REQUIRED">RefreshToken field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.zohoAccount.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="generalForm[\'serverUrl\'].$error" ng-show="generalForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.zohoAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="zohoAccount-detail-form-container configurations md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</div>\n </div>\n <div ng-controller="ZohoAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.zohoAccount, vm.crudPermissions)" layout="row">\n <md-card class="md-whiteframe-1dp" flex="30">\n <div layout="row" layout-align="center center">\n <md-subheader flex="75" class="md-no-sticky">{{ \'INTEGRATIONS.CONFIGURATIONS\' | translate }}</md-subheader>\n <md-button flex="25" ng-if="vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditZohoConfiguration($event)" class="md-icon-button" aria-label="create zohoConfiguration">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n <md-list>\n <md-list-item layout="row" layout-align="center center" ng-repeat="zohoConfiguration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedZohoConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getZohoConfiguration($index)">\n <span class="text-truncate" flex="80">{{ zohoConfiguration.name }}</span>\n <md-menu ng-if="vm_cc.crudPermissions.canDelete">\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteZohoConfiguration($event, zohoConfiguration)" translate="INTEGRATIONS.DELETE_ZOHOCONFIGURATION">\n Delete ZohoConfiguration\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-list-item>\n </md-list>\n </md-card>\n <div flex></div>\n <md-card class="md-whiteframe-1dp" flex="65">\n <md-tabs ng-if="vm_cc.configurations.length" md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.SUBJECTS">SUBJECTS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.subject = query" on-collapse="vm_cc.query.subject = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditSubject($event)" aria-label="add subject" translate translate-attr-label="INTEGRATIONS.ADD_SUBJECT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedSubjects.length}} {{vm_cc.selectedSubjects.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedSubjects($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedSubjects">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="subject" md-select-id="id" ng-repeat="subject in vm_cc.subjects | filter: vm_cc.query.subject">\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="id ">{{subject.id}}</td>\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="type ">\n <span ng-if="subject.FieldId">{{subject.nameField || subject.idField}}</span>\n <span ng-if="!subject.FieldId">{{subject.type}}</span>\n </td>\n <td ng-switch="subject.type" ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell>\n <span ng-switch-when="string">{{subject.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{subject.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{subject.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{subject.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditSubject($event, subject)" translate="INTEGRATIONS.EDIT_SUBJECT">\n Edit Subject\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteSubjectConfirm($event, subject)" translate="INTEGRATIONS.DELETE_SUBJECT">\n Delete Subject\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.DESCRIPTIONS">DESCRIPTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.description = query" on-collapse="vm_cc.query.description = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditDescription($event)" aria-label="add description" translate translate-attr-label="INTEGRATIONS.ADD_DESCRIPTION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedDescriptions.length}} {{vm_cc.selectedDescriptions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedDescriptions($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedDescriptions">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="description" md-select-id="id" ng-repeat="description in vm_cc.descriptions | filter: vm_cc.query.description">\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="id ">{{description.id}}</td>\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="type ">\n <span ng-if="description.FieldId">{{description.nameField || description.idField}}</span>\n <span ng-if="!description.FieldId">{{description.type}}</span>\n </td>\n <td ng-switch="description.type" ng-click="vm_cc.createOrEditDescription($event, description)" md-cell>\n <span ng-switch-when="string">{{description.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{description.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{description.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{description.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditDescription($event, description)" translate="INTEGRATIONS.EDIT_DESCRIPTION">\n Edit Description\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteDescriptionConfirm($event, description)" translate="INTEGRATIONS.DELETE_DESCRIPTION">\n Delete Description\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.FIELDS">FIELDS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.field = query" on-collapse="vm_cc.query.field = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditField($event)" aria-label="add field" translate translate-attr-label="INTEGRATIONS.ADD_FIELD">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedFields.length}} {{vm_cc.selectedFields.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedFields($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedFields">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="field" md-select-id="id" ng-repeat="field in vm_cc.fields | filter: vm_cc.query.field">\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="id ">{{field.id}}</td>\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="type ">\n <span ng-if="field.FieldId">{{field.nameField || field.idField}}</span>\n <span ng-if="!field.FieldId">{{field.type}}</span>\n </td>\n <td ng-switch="field.type" ng-click="vm_cc.createOrEditField($event, field)" md-cell>\n <span ng-switch-when="string">{{field.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{field.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{field.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{field.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditField($event, field)" translate="INTEGRATIONS.EDIT_FIELD">\n Edit Field\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteFieldConfirm($event, field)" translate="INTEGRATIONS.DELETE_FIELD">\n Delete Field\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ADVANCED">\n ADVANCED\n </span>\n </md-tab-label>\n <md-tab-body>\n <div layout-margin>\n <label translate="INTEGRATIONS.MODULE_SEARCH"></label>\n <md-select ng-model="vm_cc.zohoConfiguration.moduleSearch" ng-change="vm_cc.selectChangedAdvanced()" ng-disabled="!vm_cc.crudPermissions.canEdit">\n <md-option ng-value="option.key" ng-repeat="option in [{key: \'contact_lead\', value: \'Contact & Lead\'}, {key: \'contact\', value: \'Contact\'}, {key: \'lead\', value: \'Lead\'}]">\n {{ option.value }}</md-option>\n </md-select>\n </div>\n <div layout-margin>\n <label translate="INTEGRATIONS.MODULE_CREATE"></label>\n <md-select ng-model="vm_cc.zohoConfiguration.moduleCreate" ng-change="vm_cc.selectChangedAdvanced()" ng-disabled="!vm_cc.crudPermissions.canEdit">\n <md-option ng-value="option.key" ng-repeat="option in [{key: \'nothing\', value: \'Nothing\'}, {key: \'contact\', value: \'Contact\'}, {key: \'lead\', value: \'Lead\'}]">\n {{ option.value }}</md-option>\n </md-select>\n </div>\n </md-tab-body>\n </md-tab>\n\n\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.configurations.length && vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditZohoConfiguration($event)" layout="row" layout-sm="column" layout-align="center center" layout-wrap>\n <div class="padding-20 md-whiteframe-3dp md-accent-bg" layout="column" layout-align="center center">\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <span aria-label="add configuration" translate translate-attr-label="INTEGRATIONS.ADD_CONFIGURATION">ADD CONFIGURATION</span>\n </div>\n </div>\n </md-card>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/integrations/views/zohoAccounts/zohoAccounts.html",'<div id="zohoAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-heart" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="INTEGRATIONS.ZOHOACCOUNTS">ZohoAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedZohoAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedZohoAccounts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="INTEGRATIONS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-zohoAccounts-count">\n <span>{{vm.selectedZohoAccounts.length}}</span>\n <span translate="INTEGRATIONS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="INTEGRATIONS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllZohoAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectZohoAccounts()" translate="INTEGRATIONS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedZohoAccounts" csv-label="true" filename="zohoAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedZohoAccounts($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- ZOHOACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedZohoAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getZohoAccounts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'INTEGRATIONS.NAME\' | translate }}</th>\n <th md-column md-order-by="host">{{ \'INTEGRATIONS.HOST\' | translate }}</th>\n <th md-column md-order-by="zone">{{ \'INTEGRATIONS.ZONE\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.zohoAccounts.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="zohoAccount" md-select-id="id" ng-repeat="zohoAccount in vm.zohoAccounts.rows">\n <td md-cell ng-if="zohoAccount.userpic"><img class="avatar" alt="{{zohoAccount.name}}" ng-src="api/users/{{zohoAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!zohoAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{zohoAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zohoAccount, ev) : vm.createOrEditZohoAccount($event, zohoAccount)" md-cell class="id ">{{zohoAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zohoAccount, ev) : vm.createOrEditZohoAccount($event, zohoAccount)" md-cell class="name ">{{zohoAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zohoAccount, ev) : vm.createOrEditZohoAccount($event, zohoAccount)" md-cell class="host ">{{ vm.arrayhost[zohoAccount.host].option }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zohoAccount, ev) : vm.createOrEditZohoAccount($event, zohoAccount)" md-cell class="zone ">{{ vm.arrayzone[zohoAccount.zone].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(zohoAccount, $event )" translate="INTEGRATIONS.EDIT_ZOHOACCOUNT">\n Edit ZohoAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(zohoAccount, $event )" translate="INTEGRATIONS.TEST_ZOHOACCOUNT">\n Test ZohoAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(zohoAccount, $event )" translate="INTEGRATIONS.DELETE_ZOHOACCOUNT">\n Delete ZohoAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.zohoAccounts.count}}" md-on-paginate="vm.getZohoAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / ZOHOACCOUNT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD ZOHOACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-zohoAccount-button" ng-click="vm.createOrEditZohoAccount($event)" aria-label="add zohoAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_ZOHOACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD ZOHOACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/jscripty/views/projects/create/dialog.html",'<md-dialog class="project-dialog" aria-label="New Project">\n <form name="projectForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="JSCRIPTY.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.project.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newProject">\n\n <div class="hint"><span translate="JSCRIPTY.HELP.NAME"></span></div>\n <div ng-messages="projectForm[\'name\'].$error" ng-show="projectForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="JSCRIPTY.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="JSCRIPTY.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="JSCRIPTY.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.project.description">\n\n <div ng-messages="projectForm[\'description\'].$error" ng-show="projectForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="JSCRIPTY.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newProject" ng-click="vm.saveProject()" class="send-button md-accent md-raised" ng-disabled="projectForm.$invalid || projectForm.$pristine" aria-label="SAVE" translate="JSCRIPTY.SAVE" translate-attr-aria-label="JSCRIPTY.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newProject" ng-click="vm.addNewProject()" class="send-button md-accent md-raised" ng-disabled="projectForm.$invalid" aria-label="ADD" translate="JSCRIPTY.ADD_PROJECT" translate-attr-aria-label="JSCRIPTY.ADD_PROJECT">\n ADD PROJECT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newProject" ng-click="vm.deleteProject($event)" aria-label="DELETE" translate translate-attr-aria-label="JSCRIPTY.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="JSCRIPTY.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/jscripty/views/projects/edit/clone/clone.html",'<md-dialog class="project-dialog" aria-label="Clone Project">\n <form name="projectForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="JSCRIPTY.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.project.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newProject">\n\n <div class="hint"><span translate="JSCRIPTY.HELP.NAME"></span></div>\n <div ng-messages="projectForm[\'name\'].$error" ng-show="projectForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="JSCRIPTY.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="JSCRIPTY.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <md-button type="submit" ng-click="vm.cloneProject()" class="send-button md-accent md-raised" ng-disabled="projectForm.$invalid" aria-label="CLONE" translate="JSCRIPTY.CLONE_PROJECT" translate-attr-aria-label="JSCRIPTY.CLONE_PROJECT">\n CLONE PROJECT\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/jscripty/views/projects/edit/sessions/dialog.html",'<md-dialog class="session-dialog" aria-label="New Session">\n <form name="sessionForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <md-list>\n <md-subheader class="md-no-sticky">\n <div class="margin-bottom-5"><span translate="JSCRIPTY.ANSWERS">Answers</span></div>\n <div class="subtitle secondary-text">\n <span translate="JSCRIPTY.STARTTIME" class="ng-scope font-weight-700">Start Time</span>: <span class="ng-binding">{{vm.session.starttime | date:\'medium\'}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="JSCRIPTY.MEMBERNAME" class="ng-scope font-weight-700">Member Name</span>: <span class="ng-binding">{{vm.session.membername}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="JSCRIPTY.PROJECT" class="ng-scope font-weight-700">Project</span>: <span class="ng-binding">{{vm.project.name}}</span>\n </div>\n </md-subheader>\n <md-list-item ng-if="vm.questions.rows.length" class="md-2-line contact-item" ng-repeat="question in vm.questions.rows">\n <div class="md-list-item-text compact">\n <h3>{{$index+1}}. {{question.question}}</h3>\n <p>{{question.answer}}</p>\n </div>\n <md-divider ng-if="!$last"></md-divider>\n </md-list-item>\n <md-list-item ng-if="!vm.questions.rows.length" class="md-2-line contact-item">\n <div class="md-list-item-text compact">\n <h3><span class="text-boxed-light" translate="JSCRIPTY.NO_RESULTS_AVAILABLE">No results available</span></h3>\n </div>\n </md-list-item>\n </md-list>\n\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/jscripty/views/projects/edit/view.html",'<div id="jscripty-project" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-projects-button md-icon-button" aria-label="Go to projects" ng-click="vm.gotoProjects()" translate translate-attr-aria-label="JSCRIPTY.GO_TO_PROJECTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="project-image" hide-xs>\n <img ng-src="assets/images/business/projects.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.project.id}}\n <span ng-if="vm.project.name">{{vm.project.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="JSCRIPTY.CREATED_AT"></span> <span>{{vm.project.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.clonedialog(vm.project, $event)" class="md-fab md-green-500-bg md-icon-button" aria-label="clone">\n <md-tooltip><span translate="JSCRIPTY.CLONE_PROJECT"></span></md-tooltip>\n <md-icon md-font-icon="icon-content-duplicate"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveProject()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (builderForm.$invalid) || (previewForm.$invalid) || (sessionsForm.$invalid) || (answersForm.$invalid)" translate="JSCRIPTY.SAVE" translate-attr-aria-label="JSCRIPTY.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="JSCRIPTY.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="project-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="JSCRIPTY.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="JSCRIPTY.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.project.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="JSCRIPTY.HELP.NAME"></span></div>\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="JSCRIPTY.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="JSCRIPTY.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.project.enableUncompleteSave" aria-label="EnableUncompleteSave" ng-disabled="!vm.crudPermissions.canEdit"><span translate="JSCRIPTY.ENABLEUNCOMPLETESAVE">EnableUncompleteSave</span></md-switch>\n <div class="hint"><span translate="JSCRIPTY.HELP.ENABLEUNCOMPLETESAVE"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.project.sendUnpauseOnSubmit" aria-label="SendUnpauseOnSubmit" ng-disabled="!vm.crudPermissions.canEdit"><span translate="JSCRIPTY.SENDUNPAUSEONSUBMIT">SendUnpauseOnSubmit</span></md-switch>\n <div class="hint"><span translate="JSCRIPTY.HELP.SENDUNPAUSEONSUBMIT"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="JSCRIPTY.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.project.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="JSCRIPTY.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="JSCRIPTY.BUILDER">BUILDER</span>\n </md-tab-label>\n <md-tab-body>\n <div class="project-detail-form-container builder md-background-bg md-whiteframe-1dp">\n <div ng-controller="ProjectBuilderController as vm_bc" ng-init="vm_bc.init(vm.project)">\n <mw-form-builder ng-if="vm_bc.project.formData" form-data="vm_bc.project.formData" options="vm_bc.optionsBuilder" read-only="false"></mw-form-builder>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="JSCRIPTY.PREVIEW">PREVIEW</span>\n </md-tab-label>\n <md-tab-body>\n <div class="project-detail-form-container preview md-background-bg md-whiteframe-1dp">\n <div layout="column" layout-align="center" ng-controller="ProjectViewerController as vm_vc" ng-init="vm_vc.init(vm.project)">\n <div layout="row" layout-align="center">\n <md-button class="md-raised md-accent" aria-label="Reset" ng-click="vm_vc.resetViewer()">\n Reset\n </md-button>\n </div>\n <mw-form-viewer ng-if="vm_vc.project.formData" form-data="vm_vc.project.formData" response-data="vm_vc.responseData" on-submit="vm_vc.onSubmit($event)" api="vm_vc.formViewer"></mw-form-viewer>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="JSCRIPTY.SESSIONS">SESSIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="project-detail-form-container sessions md-background-bg md-whiteframe-1dp">\n <div ng-controller="ProjectSessionsController as vm_dc" ng-init="vm_dc.init(vm.project, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedProjectSessions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="JSCRIPTY.SESSIONS">Sessions</span>\n <ms-search-bar on-search="vm_dc.getProjectSessions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedProjectSessions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedProjectSessions.length}} {{vm_dc.selectedProjectSessions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedProjectSessions" csv-label="true" filename="projects.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedProjectSessions($event)" aria-label="delete selected" translate translate-attr-label="JSCRIPTY.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedProjectSessions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getProjectSessions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'JSCRIPTY.ID\' | translate }}\n </th>\n <th md-column md-order-by="starttime">\n {{ \'JSCRIPTY.STARTTIME\' | translate }}\n </th>\n <th md-column md-order-by="endtime">\n {{ \'JSCRIPTY.ENDTIME\' | translate }}\n </th>\n <th md-column md-order-by="membername">\n {{ \'JSCRIPTY.MEMBERNAME\' | translate }}\n </th>\n <th md-column md-order-by="calleridnum">\n {{ \'JSCRIPTY.CALLERIDNUM\' | translate }}\n </th>\n <th md-column md-order-by="completed">\n {{ \'JSCRIPTY.COMPLETE\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="session" md-select-id="id" ng-repeat="session in vm_dc.projectSessions.rows">\n <td md-cell>\n {{session.id}}\n </td>\n <td md-cell>\n {{ session.starttime | formatdate }}\n </td>\n <td md-cell>\n {{ session.endtime | formatdate }}\n </td>\n <td md-cell>\n {{session.membername}}\n </td>\n <td md-cell>\n {{session.calleridnum}}\n </td>\n <td md-cell class="completed ">\n <md-icon md-colors="{color: {{session.completed ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{session.completed? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="JSCRIPTY.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm_dc.showQuestionsProjectSession($event, session)" translate="JSCRIPTY.SHOW_QUESTIONS_SESSION">\n Results Session\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(session, $event)" translate="JSCRIPTY.DELETE_SESSION">\n Delete Session\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.projectSessions.rows.length">\n <td md-cell colspan="8">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="JSCRIPTY.NO_SESSION_AVAILABLE">No session available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'JSCRIPTY.PAGE\' | translate}}:\', rowsPerPage: \'{{\'JSCRIPTY.ROWSPERPAGE\' | translate}}:\', of: \'{{\'JSCRIPTY.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.projectSessions.count}}" md-on-paginate="vm_dc.getProjectSessions" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="JSCRIPTY.ANSWERS">ANSWERS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="project-detail-form-container answers md-background-bg md-whiteframe-1dp">\n <div ng-controller="ProjectAnswersController as vm_an" ng-init="vm_an.init(vm.project, vm.userProfile)">\n <div class="pb-16" layout="row">\n <div class="h2 secondary-text" translate="JSCRIPTY.ANSWERS" flex>Answers</div>\n <div layout="row" layout-align="space-between center" flex>\n <md-date-range localization-map="vm_an.localizationMap" ng-model="vm_an.pickerModel" auto-confirm="true" show-template="true" md-on-select="vm_an.getAnswers()" placeholder="{{ \'DASHBOARDS.ALL\' | translate }}"></md-date-range>\n <md-button type="button" ng-if="vm_an.currentUser.role === \'admin\' || vm_an.userProfile.downloadJscriptySessions" ng-disabled="!vm_an.answers" ng-click="vm_an.getSummary($event)" class="md-accent md-raised md-button ng-scope md-default-theme md-ink-ripple md-green-500-bg md-icon-button" title="{{\'JSCRIPTY.EXPORT_TO_CSV\' | translate}}">\n <md-icon md-font-icon="icon-file-excel" class="md-default-theme md-font material-icons icon-file-excel"></md-icon>\n </md-button>\n </div>\n </div>\n <div layout="row">\n <md-card class="md-whiteframe-1dp" ng-if="vm_an.answers && vm_an.hasIdAnswers" flex>\n <md-list>\n <md-list-item class="md-2-line contact-item" ng-repeat="(key, question) in vm_an.answers">\n <div class="md-list-item-text compact" layout-padding>\n <h3>{{question.question}}</h3>\n <md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column></th>\n <th md-column>#</th>\n <th md-column>%</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-repeat="(key, value) in question.answers">\n <td md-cell>{{key}}</td>\n <td md-cell width="20px">{{value}}</td>\n <td md-cell width="20px">{{value*100/question.sum | number:1}}</td>\n </tr>\n <tr md-row>\n <td md-cell><b>{{\'JSCRIPTY.TOTAL\' | translate}}</b></td>\n <td md-cell width="20px"><b>{{question.sum}}</b></td>\n <td md-cell width="20px"><b>100</b></td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </div>\n <md-divider ng-if="!$last"></md-divider>\n </md-list-item>\n </md-list>\n </md-card>\n <span ng-if="!vm_an.answers || !vm_an.hasIdAnswers" class="text-boxed-light" translate="JSCRIPTY.NO_ANSWERS_AVAILABLE">No answers available</span>\n </div>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/jscripty/views/projects/projects.html",'<div id="projects" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-script" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="JSCRIPTY.PROJECTS">Projects</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="JSCRIPTY.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedProjects.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedProjects =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="JSCRIPTY.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-projects-count">\n <span>{{vm.selectedProjects.length}}</span>\n <span translate="JSCRIPTY.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="JSCRIPTY.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllProjects()" translate="JSCRIPTY.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectProjects()" translate="JSCRIPTY.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedProjects" csv-label="true" filename="projects.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedProjects($event)" aria-label="delete selected" translate translate-attr-label="JSCRIPTY.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- PROJECT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedProjects" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getProjects">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'JSCRIPTY.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'JSCRIPTY.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'JSCRIPTY.DESCRIPTION\' | translate }}</th>\n <th md-column md-order-by="createdAt">{{ \'JSCRIPTY.CREATED_AT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.projects.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="JSCRIPTY.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="project" md-select-id="id" ng-repeat="project in vm.projects.rows">\n <td md-cell ng-if="project.userpic"><img class="avatar" alt="{{project.name}}" ng-src="api/users/{{project.id}}/avatar" /></td>\n <td md-cell ng-if="!project.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{project.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="id ">{{project.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="name ">{{project.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="description ">{{project.description}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="createdAt ">{{project.createdAt | date:\'medium\' }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="JSCRIPTY.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(project, $event )" translate="JSCRIPTY.EDIT_PROJECT">\n Edit Project\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.clonedialog(project, $event )" translate="JSCRIPTY.CLONE_PROJECT">\n clone Project\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.sessionsgoto(project, $event )" translate="JSCRIPTY.SESSIONS_PROJECT">\n Sessions Project\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.deleteconfirm(project, $event )" translate="JSCRIPTY.DELETE_PROJECT">\n Delete Project\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'JSCRIPTY.PAGE\' | translate}}:\', rowsPerPage: \'{{\'JSCRIPTY.ROWSPERPAGE\' | translate}}:\', of: \'{{\'JSCRIPTY.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.projects.count}}" md-on-paginate="vm.getProjects" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / PROJECT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD PROJECT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-project-button" ng-click="vm.createOrEditProject($event)" aria-label="add project" translate translate-attr-aria-label="JSCRIPTY.ADD_PROJECT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD PROJECT BUTTON --\x3e\n</div>'),e.put("app/main/apps/mail/views/mailAccounts/create/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MAIL.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.mailAccount.name" ng-required="true" autofocus>\n\n <div ng-messages="mailAccountForm[\'name\'].$error" ng-show="mailAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.KEY">key</label>\n <input type="text" name="key" ng-model="vm.mailAccount.key" md-maxlength="5" ng-required="true">\n\n <div ng-messages="mailAccountForm[\'key\'].$error" ng-show="mailAccountForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="MAIL.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.EMAIL_ADDRESS">Email_Address</label>\n <input type="email" name="email" ng-model="vm.mailAccount.email" ng-required="true">\n\n <div ng-messages="mailAccountForm[\'email\'].$error" ng-show="mailAccountForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.EMAIL_ADDRESS_REQUIRED">Email_Address field is required</span>\n </div>\n <div ng-message="email">\n <span translate="MAIL.ERRORS.EMAIL_ADDRESS_MUST_VALID">Email_Address must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.LIST">List</label>\n <md-select name="ListId" ng-model="vm.mailAccount.ListId" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div ng-messages="mailAccountForm[\'ListId\'].$error" ng-show="mailAccountForm[\'ListId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.mailAccount.active" aria-label="Active"><span translate="MAIL.ACTIVE">Active</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.newMailAccount" class="md-block">\n <label translate="MAIL.SERVICE">Service</label>\n <md-select name="cservice" ng-model="vm.mailAccount.cservice" required>\n <md-option ng-value="null">Custom</md-option>\n <md-option ng-value="\'gmail\'">Gmail</md-option>\n <md-option ng-value="\'hotmail\'">Hotmail</md-option>\n <md-option ng-value="\'yahoo\'">Yahoo</md-option>\n <md-option ng-value="\'outlook365\'">Outlook365</md-option>\n </md-select>\n <div ng-messages="mailAccountForm[\'cservice\'].$error" ng-show="mailAccountForm[\'cservice\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.SERVICE_REQUIRED">Service field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Imap.service == null)" class="md-block">\n <label translate="MAIL.IMAP_HOST">IMAP_Host</label>\n <input type="text" name="Imap.host" ng-model="vm.mailAccount.Imap.host" ng-required="true">\n\n <div ng-messages="mailAccountForm[\'Imap.host\'].$error" ng-show="mailAccountForm[\'Imap.host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.IMAP_HOST_REQUIRED">IMAP_Host field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Imap.service == null)" class="md-block">\n <label translate="MAIL.IMAP_PORT">IMAP_Port</label>\n <input type="number" name="Imap.port" ng-model="vm.mailAccount.Imap.port" value="465" ng-required="true">\n\n <div ng-messages="mailAccountForm[\'Imap.port\'].$error" ng-show="mailAccountForm[\'Imap.port\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.IMAP_PORT_REQUIRED">IMAP_Port field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Smtp.service == null)" class="md-block">\n <label translate="MAIL.SMTP_HOST">SMTP_Host</label>\n <input type="text" name="Smtp.host" ng-model="vm.mailAccount.Smtp.host" ng-required="true">\n\n <div ng-messages="mailAccountForm[\'Smtp.host\'].$error" ng-show="mailAccountForm[\'Smtp.host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.SMTP_HOST_REQUIRED">SMTP_Host field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Smtp.service == null)" class="md-block">\n <label translate="MAIL.SMTP_PORT">SMTP_Port</label>\n <input type="number" name="Smtp.port" ng-model="vm.mailAccount.Smtp.port" value="465" ng-required="true">\n\n <div ng-messages="mailAccountForm[\'Smtp.port\'].$error" ng-show="mailAccountForm[\'Smtp.port\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.SMTP_PORT_REQUIRED">SMTP_Port field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.cservice !== undefined && vm.mailAccount.cservice == null && vm.newMailAccount" class="md-block">\n <md-switch ng-model="vm.mailAccount.cauthentication" aria-label="Authentication"><span translate="MAIL.AUTHENTICATION">Authentication</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="(vm.mailAccount.cauthentication == true || vm.mailAccount.cservice != null) && vm.newMailAccount" class="md-block">\n <label translate="MAIL.USERNAME">Username</label>\n <input type="text" name="cuser" ng-model="vm.mailAccount.cuser" ng-required="true">\n\n <div class="hint"><span translate="MAIL.HELP.USERNAME"></span></div>\n <div ng-messages="mailAccountForm[\'cuser\'].$error" ng-show="mailAccountForm[\'cuser\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="(vm.mailAccount.cauthentication == true || vm.mailAccount.cservice != null) && vm.newMailAccount">\n <label translate="MAIL.PASSWORD">Password</label>\n <input type="password" name="cpassword" ng-model="vm.mailAccount.cpassword" placeholder="Password" translate translate-attr-placeholder="MAIL.PASSWORD" required>\n <div class="hint"><span translate="MAIL.HELP.PASSWORD"></span></div>\n <div ng-messages="mailAccountForm[\'cpassword\'].$error" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MAIL.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="MAIL.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.mailAccount.description">\n\n <div ng-messages="mailAccountForm[\'description\'].$error" ng-show="mailAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newMailAccount" ng-click="vm.saveMailAccount()" class="send-button md-accent md-raised" ng-disabled="mailAccountForm.$invalid || mailAccountForm.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newMailAccount" ng-click="vm.addNewMailAccount()" class="send-button md-accent md-raised" ng-disabled="mailAccountForm.$invalid" aria-label="ADD" translate="MAIL.ADD_MAILACCOUNT" translate-attr-aria-label="MAIL.ADD_MAILACCOUNT">\n ADD MAILACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newMailAccount" ng-click="vm.deleteMailAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="MAIL.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="MAIL.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/agentadd/agentadd.html",'<md-dialog class="mailAccount-dialog" aria-label="mailAccount" ng-init="vm.onInit()">\n <form name="mailAccountForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="MAIL.AGENTADD_MAILACCOUNT">Add Agent to mailAccount</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/agent/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MAIL.AGENT">Agent</label>\n <md-select name="agent" ng-model="vm.agent.agent" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="agent.name" ng-repeat="agent in vm.agents" ng-disabled="agent.canSelect === false">{{ agent.name }}</md-option>\n </md-select>\n <div ng-messages="mailAccountFormApp[\'agent\'].$error" ng-show="mailAccountFormApp[\'agent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.agent.timeout" min="0" max="2147483" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="mailAccountFormApp[\'timeout\'].$error" ng-show="mailAccountFormApp[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/autoreply/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MAIL.TIMES">times</label>\n <md-select name="times" ng-model="vm.autoreply.times" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="2">One Time</md-option>\n <md-option ng-value="0">Always</md-option>\n <md-option ng-value="1">First Message</md-option>\n </md-select>\n <div ng-messages="mailAccountFormApp[\'times\'].$error" ng-show="mailAccountFormApp[\'times\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.TIMES_REQUIRED">times field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.REPLY_TYPE">Reply_Type</label>\n <md-select name="replyType" ng-model="vm.autoreply.replyType" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="0">Reply</md-option>\n <md-option ng-value="1">Reply All</md-option>\n </md-select>\n <div ng-messages="mailAccountFormApp[\'replyType\'].$error" ng-show="mailAccountFormApp[\'replyType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.REPLY_TYPE_REQUIRED">Reply_Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="MAIL.TEXT">Text</label>\n <textarea aria-label="Text text" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', removePlugins: \'magicline\' }" ng-model="vm.autoreply.text"></textarea>\n </div>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/close/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MAIL.DISPOSITION">Disposition</label>\n <input type="text" name="disposition" ng-model="vm.close.disposition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="mailAccountFormApp[\'disposition\'].$error" ng-show="mailAccountFormApp[\'disposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.DISPOSITION_REQUIRED">Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/gotoif/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MAIL.CONDITION">Condition</label>\n <input type="text" name="condition" ng-model="vm.gotoif.condition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="mailAccountFormApp[\'condition\'].$error" ng-show="mailAccountFormApp[\'condition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.CONDITION_REQUIRED">Condition field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.TRUEPRIORITY">truepriority</label>\n <input type="number" name="truepriority" ng-model="vm.gotoif.truepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="mailAccountFormApp[\'truepriority\'].$error" ng-show="mailAccountFormApp[\'truepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.TRUEPRIORITY_REQUIRED">truepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">truepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.FALSEPRIORITY">falsepriority</label>\n <input type="number" name="falsepriority" ng-model="vm.gotoif.falsepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="mailAccountFormApp[\'falsepriority\'].$error" ng-show="mailAccountFormApp[\'falsepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.FALSEPRIORITY_REQUIRED">falsepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">falsepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/gotop/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MAIL.PRIORITY">Priority</label>\n <input type="number" name="priority" ng-model="vm.gotop.priority" min="0" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="mailAccountFormApp[\'priority\'].$error" ng-show="mailAccountFormApp[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Priority must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/interval/dialog.html",'<md-dialog class="interval-dialog" aria-label="New Interval">\n <form name="intervalForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select ng-model="vm.type" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="type" ng-repeat=\'type in vm.types\'>{{ type | ucfirst }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.type === \'list\'">\n <label translate="TOOLS.INTERVALS">Intervals</label>\n <md-select ng-model="vm.interval.IntervalId" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals">{{ interval.name }}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!-- TIMERANGE START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.TIME_RANGE">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <div class="md-block" flex>\n <mdp-time-picker name="timeRangeFrom" mdp-placeholder="FROM" ng-model="vm.timeRangeFrom" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <div ng-messages="intervalForm.timeRangeFrom.$error" ng-show="intervalForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_FROM_INVALID">Time Range From field is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n <div class="md-block" flex ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_INVALID">Time Range To field is invalid</span>\n </div>\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </div>\n \x3c!-- TIMERANGE END --\x3e\n\n \x3c!-- DAYSOFWEEK START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.WEEK_DAYS">Week Days</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.dayOfWeekFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container flex class="md-block" ng-if="vm.dayOfWeekFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="dayOfWeekTo" ng-model="vm.dayOfWeekTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- DAYSOFWEEK END --\x3e\n\n \x3c!-- MONTHDAY START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTH_DAYS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthDayFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthDayFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthDayTo" ng-model="vm.monthDayTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTHDAY END --\x3e\n\n \x3c!-- MONTH START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTHS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n </md-select>\n\n </md-input-container>\n\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthTo" ng-model="vm.monthTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTH END --\x3e\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="!vm.newInterval && vm.crudPermissions.canEdit" ng-click="vm.saveInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid || intervalForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.newInterval && vm.crudPermissions.canEdit" ng-click="vm.addNewInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_INTERVAL" translate-attr-aria-label="TOOLS.ADD_INTERVAL">\n ADD INTERVAL\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/noop/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MAIL.VALUE">Value</label>\n <input type="text" name="value" ng-model="vm.noop.value" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="mailAccountFormApp[\'value\'].$error" ng-show="mailAccountFormApp[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/queue/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MAIL.QUEUE">Queue</label>\n <md-select name="queue" ng-model="vm.queue.queue" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="queue.name" ng-repeat="queue in vm.queues" ng-disabled="queue.canSelect === false">{{ queue.name }}</md-option>\n </md-select>\n <div ng-messages="mailAccountFormApp[\'queue\'].$error" ng-show="mailAccountFormApp[\'queue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.queue.timeout" min="0" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="mailAccountFormApp[\'timeout\'].$error" ng-show="mailAccountFormApp[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/system/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MAIL.COMMAND">Command</label>\n <input type="text" name="command" ng-model="vm.system.command" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="mailAccountFormApp[\'command\'].$error" ng-show="mailAccountFormApp[\'command\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.COMMAND_REQUIRED">Command field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.VARIABLE">Variable</label>\n <md-select name="variable" ng-model="vm.system.variable" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables" ng-disabled="variable.canSelect === false">{{ variable.name }}</md-option>\n </md-select>\n <div ng-messages="mailAccountFormApp[\'variable\'].$error" ng-show="mailAccountFormApp[\'variable\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.VARIABLE_REQUIRED">Variable field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/tag/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MAIL.TAG">Tag</label>\n <md-select name="tag" ng-model="vm.tag.tag" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags" ng-disabled="tag.canSelect === false">{{ tag.name }}</md-option>\n </md-select>\n <div ng-messages="mailAccountFormApp[\'tag\'].$error" ng-show="mailAccountFormApp[\'tag\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.TAG_REQUIRED">Tag field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/mailCannedAnswers/dialog.html",'<md-dialog class="mailCannedAnswer-dialog" aria-label="New MailCannedAnswer">\n <form name="mailCannedAnswerForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MAIL.KEY">Key</label>\n <input type="" name="key" ng-model="vm.mailCannedAnswer.key" md-maxlength="255" ng-required="true" autofocus>\n\n <div ng-messages="mailCannedAnswerForm[\'key\'].$error" ng-show="mailCannedAnswerForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.KEY_REQUIRED">Key field is required</span>\n </div>\n </div>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="MAIL.VALUE">Value</label>\n <textarea aria-label="Value value" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', removePlugins: \'magicline\' }" ng-model="vm.mailCannedAnswer.value"></textarea>\n </div>\n <md-input-container class="md-block">\n <label translate="MAIL.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.mailCannedAnswer.description">\n\n <div ng-messages="mailCannedAnswerForm[\'description\'].$error" ng-show="mailCannedAnswerForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newMailCannedAnswer" ng-click="vm.saveMailCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="mailCannedAnswerForm.$invalid || mailCannedAnswerForm.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newMailCannedAnswer" ng-click="vm.addNewMailCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="mailCannedAnswerForm.$invalid" aria-label="ADD" translate="MAIL.ADD_MAILCANNEDANSWER" translate-attr-aria-label="MAIL.ADD_MAILCANNEDANSWER">\n ADD MAILCANNEDANSWER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newMailCannedAnswer" ng-click="vm.deleteMailCannedAnswer($event)" aria-label="DELETE" translate translate-attr-aria-label="MAIL.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="MAIL.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/view.html",'<div id="mail-mailAccount" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-mailAccounts-button md-icon-button" aria-label="Go to mailAccounts" ng-click="vm.gotoMailAccounts()" translate translate-attr-aria-label="MAIL.GO_TO_MAILACCOUNTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="mailAccount-image" hide-xs>\n <img ng-src="assets/images/business/mailAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.mailAccount.id}}\n <span ng-if="vm.mailAccount.name">{{vm.mailAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="MAIL.CREATED_AT"></span> <span>{{vm.mailAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.gotogoto(vm.mailAccount, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n <md-tooltip><span translate="MAIL.GOTO_MAILACCOUNT"></span></md-tooltip>\n <md-icon md-font-icon="icon-cast"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.mailAccount, $event)" class="md-fab md-warn md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="MAIL.AGENTADD_MAILACCOUNT"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveMailAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (notificationForm.$invalid) || (transferForm.$invalid) || (imapForm.$invalid) || (smtpForm.$invalid) || (dispositionForm.$invalid) || (mailDispositionsForm.$invalid) || (mailCannedAnswersForm.$invalid) || (actionsForm.$invalid) || (interactionsForm.$invalid)" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="mailAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MAIL.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MAIL.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.mailAccount.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.KEY">key</label>\n <input type="text" name="key" ng-model="vm.mailAccount.key" md-maxlength="5" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'key\'].$error" ng-show="generalForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="MAIL.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.EMAIL_ADDRESS">Email_Address</label>\n <input type="email" name="email" ng-model="vm.mailAccount.email" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'email\'].$error" ng-show="generalForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.EMAIL_ADDRESS_REQUIRED">Email_Address field is required</span>\n </div>\n <div ng-message="email">\n <span translate="MAIL.ERRORS.EMAIL_ADDRESS_MUST_VALID">Email_Address must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.LIST">List</label>\n <md-select name="ListId" ng-model="vm.mailAccount.ListId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div ng-messages="generalForm[\'ListId\'].$error" ng-show="generalForm[\'ListId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.mailAccount.active" aria-label="Active" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.ACTIVE">Active</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.FONT_FAMILY">Font_Family</label>\n <ms-font-family name="fontFamily" ng-model="vm.mailAccount.fontFamily" required></ms-font-family>\n <div class="hint"><span translate="MAIL.HELP.FONT_FAMILY"></span></div>\n <div ng-messages="generalForm[\'fontFamily\'].$error" ng-show="generalForm[fontFamily].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.FONT_FAMILY_REQUIRED">Font_Family field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.FONT_SIZE">Font_Size</label>\n <input type="number" name="fontSize" ng-model="vm.mailAccount.fontSize" min="8" max="72" value="13" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MAIL.HELP.FONT_SIZE"></span></div>\n <div ng-messages="generalForm[\'fontSize\'].$error" ng-show="generalForm[\'fontSize\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.FONT_SIZE_REQUIRED">Font_Size field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.FONT_SIZE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Font_Size must be a valid greater or equal than</span> <span>8</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.FONT_SIZE_MUST_BE_LESS_THAN_OR_EQUAL_TO">Font_Size must be a valid greater or equal than</span> <span>72</span>\n </div>\n </div>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="MAIL.TEMPLATE">Template</label>\n <textarea aria-label="Template template" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', removePlugins: \'magicline\' }" ng-model="vm.mailAccount.template"></textarea>\n </div>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.mailAccount.markAsUnread" aria-label="mark_as_unread" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.MARK_AS_UNREAD">mark_as_unread</span></md-switch>\n <div class="hint"><span translate="MAIL.HELP.MARK_AS_UNREAD"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.WAITFORTHEASSIGNEDAGENT">WaitForTheAssignedAgent</label>\n <input type="number" name="waitForTheAssignedAgent" ng-model="vm.mailAccount.waitForTheAssignedAgent" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'waitForTheAssignedAgent\'].$error" ng-show="generalForm[\'waitForTheAssignedAgent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.WAITFORTHEASSIGNEDAGENT_REQUIRED">WaitForTheAssignedAgent field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.mailAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="mailAccount-detail-form-container notification md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MAIL.NOTIFICATION">NOTIFICATION</div>\n </div>\n <form name="notificationForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.mailAccount.notificationSound" aria-label="notificationSound" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.NOTIFICATIONSOUND">notificationSound</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.mailAccount.notificationShake" aria-label="notificationShake" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.NOTIFICATIONSHAKE">notificationShake</span></md-switch>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="MAIL.NOTIFICATIONTEMPLATE">notificationTemplate</label>\n <textarea aria-label="notificationTemplate notificationTemplate" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', removePlugins: \'magicline\' }" ng-model="vm.mailAccount.notificationTemplate"></textarea>\n </div>\n\n </form>\n </div>\n <div class="mailAccount-detail-form-container transfer md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MAIL.TRANSFER">TRANSFER</div>\n </div>\n <form name="transferForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.mailAccount.queueTransfer" aria-label="queueTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.QUEUETRANSFER">queueTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.queueTransfer == true" class="md-block">\n <label translate="MAIL.QUEUETRANSFERTIMEOUT">queueTransferTimeout</label>\n <input type="number" name="queueTransferTimeout" ng-model="vm.mailAccount.queueTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'queueTransferTimeout\'].$error" ng-show="transferForm[\'queueTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.QUEUETRANSFERTIMEOUT_REQUIRED">queueTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.mailAccount.agentTransfer" aria-label="agentTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.AGENTTRANSFER">agentTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.agentTransfer == true" class="md-block">\n <label translate="MAIL.AGENTTRANSFERTIMEOUT">agentTransferTimeout</label>\n <input type="number" name="agentTransferTimeout" ng-model="vm.mailAccount.agentTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'agentTransferTimeout\'].$error" ng-show="transferForm[\'agentTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.AGENTTRANSFERTIMEOUT_REQUIRED">agentTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.IMAP">IMAP</span>\n </md-tab-label>\n <md-tab-body>\n <div class="mailAccount-detail-form-container imap md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MAIL.IMAP">IMAP</div>\n </div>\n <form name="imapForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MAIL.SERVICE">Service</label>\n <md-select name="Imap.service" ng-model="vm.mailAccount.Imap.service" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Custom</md-option>\n <md-option ng-value="\'gmail\'">Gmail</md-option>\n <md-option ng-value="\'hotmail\'">Hotmail</md-option>\n <md-option ng-value="\'yahoo\'">Yahoo</md-option>\n <md-option ng-value="\'outlook365\'">Outlook365</md-option>\n </md-select>\n <div ng-messages="imapForm[\'Imap.service\'].$error" ng-show="imapForm[\'Imap.service\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.SERVICE_REQUIRED">Service field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Imap.service == null)" class="md-block">\n <label translate="MAIL.IMAP_HOST">IMAP_Host</label>\n <input type="text" name="Imap.host" ng-model="vm.mailAccount.Imap.host" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="imapForm[\'Imap.host\'].$error" ng-show="imapForm[\'Imap.host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.IMAP_HOST_REQUIRED">IMAP_Host field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Imap.service == null)" class="md-block">\n <label translate="MAIL.IMAP_PORT">IMAP_Port</label>\n <input type="number" name="Imap.port" ng-model="vm.mailAccount.Imap.port" value="465" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="imapForm[\'Imap.port\'].$error" ng-show="imapForm[\'Imap.port\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.IMAP_PORT_REQUIRED">IMAP_Port field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.mailAccount.Imap.tls" aria-label="ssl" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.SSL">ssl</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.Imap.service == null" class="md-block">\n <md-switch ng-model="vm.mailAccount.Imap.authentication" aria-label="Authentication" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.AUTHENTICATION">Authentication</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.Imap.authentication == true || vm.mailAccount.Imap.service != null" class="md-block">\n <label translate="MAIL.USERNAME">Username</label>\n <input type="text" name="Imap.user" ng-model="vm.mailAccount.Imap.user" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MAIL.HELP.USERNAME"></span></div>\n <div ng-messages="imapForm[\'Imap.user\'].$error" ng-show="imapForm[\'Imap.user\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.mailAccount.Imap.authentication == true || vm.mailAccount.Imap.service != null">\n <label translate="MAIL.PASSWORD">Password</label>\n <input type="password" name="Imap.password" ng-model="vm.mailAccount.Imap.password" placeholder="Password" translate translate-attr-placeholder="MAIL.PASSWORD" required>\n <div class="hint"><span translate="MAIL.HELP.PASSWORD"></span></div>\n <div ng-messages="imapForm[\'Imap.password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MAIL.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="MAIL.MAILBOX">mailbox</label>\n <input type="text" name="Imap.mailbox" ng-model="vm.mailAccount.Imap.mailbox" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="imapForm[\'Imap.mailbox\'].$error" ng-show="imapForm[\'Imap.mailbox\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.MAILBOX_REQUIRED">mailbox field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.CONNTIMEOUT">connTimeout</label>\n <input type="number" name="Imap.connTimeout" ng-model="vm.mailAccount.Imap.connTimeout" min="1" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="imapForm[\'Imap.connTimeout\'].$error" ng-show="imapForm[\'Imap.connTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.CONNTIMEOUT_REQUIRED">connTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.CONNTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">connTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.AUTHTIMEOUT">authTimeout</label>\n <input type="number" name="Imap.authTimeout" ng-model="vm.mailAccount.Imap.authTimeout" min="1" value="5" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="imapForm[\'Imap.authTimeout\'].$error" ng-show="imapForm[\'Imap.authTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.AUTHTIMEOUT_REQUIRED">authTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.AUTHTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">authTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.SMTP">SMTP</span>\n </md-tab-label>\n <md-tab-body>\n <div class="mailAccount-detail-form-container smtp md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MAIL.SMTP">SMTP</div>\n </div>\n <form name="smtpForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MAIL.SERVICE">Service</label>\n <md-select name="Smtp.service" ng-model="vm.mailAccount.Smtp.service" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Custom</md-option>\n <md-option ng-value="\'gmail\'">Gmail</md-option>\n <md-option ng-value="\'hotmail\'">Hotmail</md-option>\n <md-option ng-value="\'yahoo\'">Yahoo</md-option>\n <md-option ng-value="\'outlook365\'">Outlook365</md-option>\n </md-select>\n <div ng-messages="smtpForm[\'Smtp.service\'].$error" ng-show="smtpForm[\'Smtp.service\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.SERVICE_REQUIRED">Service field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Smtp.service == null)" class="md-block">\n <label translate="MAIL.SMTP_HOST">SMTP_Host</label>\n <input type="text" name="Smtp.host" ng-model="vm.mailAccount.Smtp.host" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smtpForm[\'Smtp.host\'].$error" ng-show="smtpForm[\'Smtp.host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.SMTP_HOST_REQUIRED">SMTP_Host field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Smtp.service == null)" class="md-block">\n <label translate="MAIL.SMTP_PORT">SMTP_Port</label>\n <input type="number" name="Smtp.port" ng-model="vm.mailAccount.Smtp.port" value="465" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smtpForm[\'Smtp.port\'].$error" ng-show="smtpForm[\'Smtp.port\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.SMTP_PORT_REQUIRED">SMTP_Port field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.Smtp.service == null" class="md-block">\n <md-switch ng-model="vm.mailAccount.Smtp.secure" aria-label="Secure" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.SECURE">Secure</span></md-switch>\n <div class="hint"><span translate="MAIL.HELP.SECURE"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.Smtp.service == null" class="md-block">\n <md-switch ng-model="vm.mailAccount.Smtp.authentication" aria-label="Authentication" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.AUTHENTICATION">Authentication</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.Smtp.authentication == true || vm.mailAccount.Smtp.service != null" class="md-block">\n <label translate="MAIL.USERNAME">Username</label>\n <input type="text" name="Smtp.user" ng-model="vm.mailAccount.Smtp.user" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MAIL.HELP.USERNAME"></span></div>\n <div ng-messages="smtpForm[\'Smtp.user\'].$error" ng-show="smtpForm[\'Smtp.user\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.mailAccount.Smtp.authentication == true || vm.mailAccount.Smtp.service != null">\n <label translate="MAIL.PASSWORD">Password</label>\n <input type="password" name="Smtp.pass" ng-model="vm.mailAccount.Smtp.pass" placeholder="Password" translate translate-attr-placeholder="MAIL.PASSWORD" required>\n <div class="hint"><span translate="MAIL.HELP.PASSWORD"></span></div>\n <div ng-messages="smtpForm[\'Smtp.pass\'].$error" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MAIL.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <md-tab-body>\n <div class="mailAccount-detail-form-container disposition md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MAIL.DISPOSITION">DISPOSITION</div>\n </div>\n <form name="dispositionForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.mailAccount.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.mandatoryDisposition" class="md-block">\n <label translate="MAIL.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.mailAccount.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="MAIL.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="dispositionForm[\'mandatoryDispositionPauseId\'].$error" ng-show="dispositionForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.DISPOSITIONS">DISPOSITIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div ng-controller="MailAccountDispositionsController as vm_dc" ng-init="vm_dc.init(vm.mailAccount, vm.crudPermissions)">\n <div layout="row">\n <div class="column" flex="20">\n <md-card class="mt-0">\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm_dc.query.level = null; vm_dc.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\n </button>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm_dc.query.level" ng-change="vm_dc.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm_dc.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n <div class="mailAccount-detail-form-container maildispositions md-background-bg md-whiteframe-1dp" flex="80">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedMailAccountDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MAIL.DISPOSITIONS">Dispositions</span>\n <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditDisposition($event)" aria-label="Add mail dispositions" translate translate-attr-label="MAIL.ADD_DISPOSITION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedDispositions.length}}\n {{vm_dc.selectedDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedDispositions" csv-label="true" filename="mailAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedDispositions($event)" aria-label="delete selected" translate translate-attr-label="MAIL.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_dc.selectedDispositions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getDispositions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'MAIL.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'MAIL.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'MAIL.DESCRIPTION\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_dc.dispositions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="MAIL.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="disposition" md-select-id="id" ng-repeat="disposition in vm_dc.dispositions.rows">\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm_dc.levels[disposition.level] }}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MAIL.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(disposition, $event)" translate="TOOLS.DELETE_DISPOSITION">\n Delete Disposition\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.dispositions.count}}" md-on-paginate="vm_dc.getDispositions" md-page-select>\n </md-table-pagination>\n </div>\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.CANNEDANSWERS">CANNEDANSWERS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="mailAccount-detail-form-container mailcannedanswers md-background-bg md-whiteframe-1dp">\n <div ng-controller="MailAccountMailCannedAnswersController as vm_dc" ng-init="vm_dc.init(vm.mailAccount, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedMailAccountMailCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MAIL.MAILCANNEDANSWERS">MailCannedAnswers</span>\n <ms-search-bar on-search="vm_dc.getMailAccountMailCannedAnswers()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditMailAccountMailCannedAnswer($event)" aria-label="add mailCannedAnswer" translate translate-attr-label="MAIL.ADD_MAILCANNEDANSWER">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedMailAccountMailCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedMailAccountMailCannedAnswers.length}} {{vm_dc.selectedMailAccountMailCannedAnswers.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedMailAccountMailCannedAnswers" csv-label="true" filename="mailAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedMailAccountMailCannedAnswers($event)" aria-label="delete selected" translate translate-attr-label="MAIL.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedMailAccountMailCannedAnswers" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getMailAccountMailCannedAnswers">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'MAIL.ID\' | translate }}\n </th>\n <th md-column md-order-by="key">\n {{ \'MAIL.KEY\' | translate }}\n </th>\n <th md-column md-order-by="value">\n {{ \'MAIL.VALUE\' | translate }}\n </th>\n <th md-column md-order-by="description">\n {{ \'MAIL.DESCRIPTION\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'MAIL.CREATED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="mailCannedAnswer" md-select-id="id" ng-repeat="mailCannedAnswer in vm_dc.mailAccountMailCannedAnswers.rows">\n <td ng-click="vm_dc.createOrEditMailAccountMailCannedAnswer($event, mailCannedAnswer)" md-cell>\n {{mailCannedAnswer.id}}\n </td>\n <td ng-click="vm_dc.createOrEditMailAccountMailCannedAnswer($event, mailCannedAnswer)" md-cell>\n {{mailCannedAnswer.key}}\n </td>\n <td ng-click="vm_dc.createOrEditMailAccountMailCannedAnswer($event, mailCannedAnswer)" md-cell>{{mailCannedAnswer.value | htmlToPlaintext }}</td>\n <td ng-click="vm_dc.createOrEditMailAccountMailCannedAnswer($event, mailCannedAnswer)" md-cell>\n {{mailCannedAnswer.description}}\n </td>\n <td ng-click="vm_dc.createOrEditMailAccountMailCannedAnswer($event, mailCannedAnswer)" md-cell>\n {{ mailCannedAnswer.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MAIL.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditMailAccountMailCannedAnswer($event, mailCannedAnswer)" translate="MAIL.EDIT_MAILCANNEDANSWER">\n Edit MailCannedAnswer\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(mailCannedAnswer, $event)" translate="MAIL.DELETE_MAILCANNEDANSWER">\n Delete MailCannedAnswer\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.mailAccountMailCannedAnswers.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MAIL.NO_MAILCANNEDANSWER_AVAILABLE">No mailcannedanswer available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.mailAccountMailCannedAnswers.count}}" md-on-paginate="vm_dc.getMailAccountMailCannedAnswers" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.ACTIONS">ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="mailAccount-detail-form-container actions md-background-bg md-whiteframe-1dp">\n <div ng-controller="MailAccountActionsController as vm_ac" ng-init="vm_ac.init(vm.mailAccount, vm.crudPermissions)" class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- SIDENAV --\x3e\n <div class="navigation-simple sidenav main-sidenav md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="20" ng-if="vm_ac.crudPermissions.canEdit">\n \x3c!-- SIDENAV CONTENT --\x3e\n <md-list class="no-padding">\n <md-subheader class="md-no-sticky">\n <span translate="VOICE.APPLICATIONS_LIST">\n Applications List\n </span>\n </md-subheader>\n </md-list>\n <md-divider></md-divider>\n <md-list ng-sortable="vm_ac.list">\n <md-list-item class="handle" ng-repeat="a in vm_ac.apps">\n <md-icon md-font-icon="{{a.icon}}" class="s16"></md-icon>\n <p class="text-truncate" translate="MAIL.{{(a.appAlias || a.appType) | uppercase}}">{{a.appAlias || a.appType}}</p>\n </md-list-item>\n </md-list>\n \x3c!-- / SIDENAV CONTENT --\x3e\n </div>\n \x3c!-- / SIDENAV --\x3e\n <div flex></div>\n \x3c!-- MAIN --\x3e\n <div class="main scrollable md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="{{vm_ac.crudPermissions.canEdit ? 75 : 100}}">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_ac.selectedMailAccountApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">Drag & Drop Routing</span>\n <div flex></div>\n <ms-search-bar on-search="vm_ac.query.filter = query" on-collapse="vm_ac.query.filter = undefined" debounce="300"></ms-search-bar>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_ac.selectedMailAccountApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_ac.selectedMailAccountApps.length}} {{vm_ac.selectedMailAccountApps.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_ac.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_ac.deleteSelectedMailAccountApps($event)" aria-label="delete selected" translate translate-attr-label="MAIL.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n \x3c!-- QUEUES TABLE --\x3e\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_ac.selectedMailAccountApps">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column width="10px">\n <span translate="VOICE.PRIORITY">Priority</span>\n </th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </th>\n <th md-column width="10px"></th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body ng-sortable="vm_ac.applications">\n <tr md-row md-select="app" md-select-id="id" ng-repeat="app in vm_ac.mailAccountApps.rows | filter: vm_ac.query.filter">\n <td md-cell>\n <md-icon md-font-icon="icon-drag-vertical" class="s16 handle"></md-icon>\n </td>\n <td md-cell ng-click="vm_ac.editMailAccountApp($event, $index)"><span>{{app.priority}}</span></td>\n <td md-cell ng-click="vm_ac.editMailAccountApp($event, $index)">{{app.app.toLowerCase() === \'agi\' ? \'Cally-Square\' : app.app | ucfirst}}<span ng-if="app.appType.toLowerCase() === \'custom\'">*</span></td>\n <td md-cell ng-click="vm_ac.editMailAccountApp($event, $index)"><span class="text-truncate" style="width:200px">{{app.appdata}}</span></td>\n <td md-cell ng-click="vm_ac.editInterval($event, $index)">{{app.IntervalId ? \'From List\' : app.interval}}</td>\n <td md-cell>\n <md-button ng-click="vm_ac.editInterval($event, $index)" class="md-icon-button" aria-label="Interval">\n <md-icon md-font-icon="icon-timer"></md-icon>\n <md-tooltip>\n {{app.IntervalId ? \'From List\' : (app.interval === \'*,*,*,*\' ? \'Always\' : \'Custom\')}}\n </md-tooltip>\n </md-button>\n </td>\n <td md-cell class="actions" ng-if="!vm_ac.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_ac.crudPermissions.canEdit">\n <md-button ng-click="vm_ac.editMailAccountApp($event, $index)" translate="VOICE.EDIT_APP">\n Edit App\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_ac.crudPermissions.canEdit">\n <md-button ng-click="vm_ac.editInterval($event, $index)" translate="VOICE.EDIT_INTERVAL">\n Edit Interval\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_ac.crudPermissions.canDelete">\n <md-button ng-click="vm_ac.deleteConfirm(app, $index, $event)" translate="VOICE.DELETE_APP">\n Delete App\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-hide="vm_ac.mailAccountApps.rows.length">\n <td md-cell colspan="7">\n <span class="text-boxed-light" translate="VOICE.NO_APPS_AVAILABLE">No apps available</span>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n \x3c!-- / QUEUES TABLE --\x3e\n\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.INTERACTIONS">INTERACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="mailAccount-detail-form-container interactions md-background-bg md-whiteframe-1dp">\n <div ng-controller="MailAccountInteractionsController as vm_dc" ng-init="vm_dc.init(vm.mailAccount, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedMailAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MAIL.INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm_dc.getMailAccountInteractions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_dc.quickFilters" query="vm_dc.query" search="vm_dc.getMailAccountInteractions()"></ms-quick-filter>\n <div layout="column">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini md-accent-bg\': vm_dc.query.search }" aria-label="Filter" translate translate-attr-aria-label="DASHBOARDS.FILTER" ng-click="vm_dc.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm_dc.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'blink\': vm_dc.query.search }"></md-icon>\n </md-button>\n </div>\n <md-button class="md-icon-button" ng-click="vm_dc.getMailAccountInteractions()" aria-label="refresh Interactions" translate translate-attr-label="MAIL.REFRESH_INTERACTIONS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedMailAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedMailAccountInteractions.length}} {{vm_dc.selectedMailAccountInteractions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedMailAccountInteractions" csv-label="true" filename="mailAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedMailAccountInteractions($event)" aria-label="delete selected" translate translate-attr-label="MAIL.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedMailAccountInteractions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getMailAccountInteractions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'MAIL.ID\' | translate }}\n </th>\n <th md-column class="no-padding">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column md-order-by="contactName">\n {{ \'MAIL.CONTACT\' | translate }}\n </th>\n <th md-column md-order-by="subject">\n {{ \'MAIL.SUBJECT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'MAIL.STARTEDAT\' | translate }}\n </th>\n <th md-column md-order-by="lastMsgAt">\n {{ \'MAIL.LASTMESSAGE\' | translate }}\n </th>\n <th md-column md-order-by="closed">\n {{ \'MAIL.STATUS\' | translate }}\n </th>\n <th md-column>\n {{ \'MAIL.AGENT\' | translate }}\n </th>\n <th md-column md-order-by="tag">\n {{ \'MAIL.TAGS\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="interaction" md-select-id="id" ng-repeat="interaction in vm_dc.mailAccountInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td md-cell>\n {{interaction.id}}\n </td>\n <td md-cell class="no-padding">\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="user in interaction.Users">{{ user.fullname | translate }}\n <span ng-if="!$last">, </span>\n </span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg md-primary-bg" layout-margin>{{ interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.attach">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td md-cell privacy ng-cloak>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'margin-bottom-0\' : interaction.contactInfo}" layout-margin>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text margin-top-0" layout-margin>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td md-cell>\n <div class="width-300">\n <span class="text-truncate font-size-12">\n {{interaction.subject}}\n </span>\n </div>\n </td>\n <td md-cell>\n {{ interaction.createdAt | formatdate }}\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}"></md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="text-truncate">{{ interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n </td>\n <td md-cell>\n <span ng-if="interaction.closed === 0" class="green-fg">\n {{ \'MAIL.OPENED\' | translate }}\n <span ng-if="interaction.substatus">\n - {{ interaction.substatus }}\n </span>\n </span>\n <span ng-if="interaction.closed === 1" class="red-fg">\n {{ \'MAIL.CLOSED\' | translate }}\n <span ng-if="interaction.disposition">\n - {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}\n </span>\n <md-tooltip class="multiline">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n </span>\n </td>\n\n <td md-cell>\n {{interaction.Owner.name}}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MAIL.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm_dc.spymailInteraction($event, interaction)" translate="MAIL.SPYINTERACTION">\n Spy Interaction\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.role === \'admin\' || (vm_dc.userProfile.downloadOmnichannelInteractions && vm_dc.userProfile.downloadAttachments)">\n <md-button class="md-primary" ng-click="vm_dc.mailInteractionDownload(interaction, $event, true)" translate="MAIL.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.role === \'admin\' || vm_dc.userProfile.downloadOmnichannelInteractions">\n <md-button class="md-primary" ng-click="vm_dc.mailInteractionDownload(interaction, $event)" translate="MAIL.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(interaction, $event)" translate="MAIL.DELETE_INTERACTION">\n Delete Interaction\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.mailAccountInteractions.rows.length">\n <td md-cell colspan="13">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MAIL.NO_INTERACTION_AVAILABLE">No interaction available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.mailAccountInteractions.count}}" md-on-paginate="vm_dc.getMailAccountInteractions" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/mail/views/mailAccounts/mailAccounts.html",'<div id="mailAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-email" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="MAIL.MAILACCOUNTS">MailAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="MAIL.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedMailAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedMailAccounts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="MAIL.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-mailAccounts-count">\n <span>{{vm.selectedMailAccounts.length}}</span>\n <span translate="MAIL.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="MAIL.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllMailAccounts()" translate="MAIL.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectMailAccounts()" translate="MAIL.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedMailAccounts" csv-label="true" filename="mailAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedMailAccounts($event)" aria-label="delete selected" translate translate-attr-label="MAIL.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- MAILACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedMailAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getMailAccounts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'MAIL.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'MAIL.NAME\' | translate }}</th>\n <th md-column md-order-by="key">{{ \'MAIL.KEY\' | translate }}</th>\n <th md-column md-order-by="email">{{ \'MAIL.EMAIL_ADDRESS\' | translate }}</th>\n <th md-column md-order-by="active">{{ \'MAIL.ACTIVE\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'MAIL.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.mailAccounts.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="MAIL.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="mailAccount" md-select-id="id" ng-repeat="mailAccount in vm.mailAccounts.rows">\n <td md-cell ng-if="mailAccount.userpic"><img class="avatar" alt="{{mailAccount.name}}" ng-src="api/users/{{mailAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!mailAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{mailAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailAccount, ev) : vm.createOrEditMailAccount($event, mailAccount)" md-cell class="id ">{{mailAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailAccount, ev) : vm.createOrEditMailAccount($event, mailAccount)" md-cell class="name ">{{mailAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailAccount, ev) : vm.createOrEditMailAccount($event, mailAccount)" md-cell class="key ">{{mailAccount.key}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailAccount, ev) : vm.createOrEditMailAccount($event, mailAccount)" md-cell class="email ">{{mailAccount.email}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailAccount, ev) : vm.createOrEditMailAccount($event, mailAccount)" md-cell class="active ">\n <md-icon md-colors="{color: {{mailAccount.active ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{mailAccount.active ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailAccount, ev) : vm.createOrEditMailAccount($event, mailAccount)" md-cell class="description ">{{mailAccount.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MAIL.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(mailAccount, $event )" translate="MAIL.EDIT_MAILACCOUNT">\n Edit MailAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.verifysmtpverifysmtp(mailAccount, $event )" translate="MAIL.VERIFYSMTP_MAILACCOUNT">\n verifysmtp MailAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.interactionsgoto(mailAccount, $event )" translate="MAIL.INTERACTIONS_MAILACCOUNT">\n Interactions MailAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(mailAccount, $event )" translate="MAIL.GOTOREALTIME_MAILACCOUNT">\n goToRealtime MailAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(mailAccount, $event )" translate="MAIL.AGENTADD_MAILACCOUNT">\n AgentAdd MailAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(mailAccount, $event )" translate="MAIL.DELETE_MAILACCOUNT">\n Delete MailAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.mailAccounts.count}}" md-on-paginate="vm.getMailAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / MAILACCOUNT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD MAILACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-mailAccount-button" ng-click="vm.createOrEditMailAccount($event)" aria-label="add mailAccount" translate translate-attr-aria-label="MAIL.ADD_MAILACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD MAILACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/mail/views/mailQueues/create/dialog.html",'<md-dialog class="mailQueue-dialog" aria-label="New MailQueue">\n <form name="mailQueueForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MAIL.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.mailQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newMailQueue">\n\n <div class="hint"><span translate="MAIL.HELP.NAME"></span></div>\n <div ng-messages="mailQueueForm[\'name\'].$error" ng-show="mailQueueForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MAIL.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.mailQueue.strategy" required>\n <md-option ng-value="\'beepall\'">Beepall</md-option>\n <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n </md-select>\n <div ng-messages="mailQueueForm[\'strategy\'].$error" ng-show="mailQueueForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.AGENT_TIMEOUT">Agent_Timeout</label>\n <input type="number" name="timeout" ng-model="vm.mailQueue.timeout" min="1" max="2147483" value="10" ng-required="true">\n\n <div ng-messages="mailQueueForm[\'timeout\'].$error" ng-show="mailQueueForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.mailQueue.description">\n\n <div ng-messages="mailQueueForm[\'description\'].$error" ng-show="mailQueueForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newMailQueue" ng-click="vm.saveMailQueue()" class="send-button md-accent md-raised" ng-disabled="mailQueueForm.$invalid || mailQueueForm.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newMailQueue" ng-click="vm.addNewMailQueue()" class="send-button md-accent md-raised" ng-disabled="mailQueueForm.$invalid" aria-label="ADD" translate="MAIL.ADD_MAILQUEUE" translate-attr-aria-label="MAIL.ADD_MAILQUEUE">\n ADD MAILQUEUE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newMailQueue" ng-click="vm.deleteMailQueue($event)" aria-label="DELETE" translate translate-attr-aria-label="MAIL.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="MAIL.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailQueues/edit/agentadd/agentadd.html",'<md-dialog class="mailQueue-dialog" aria-label="mailQueue" ng-init="vm.onInit()">\n <form name="mailQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="MAIL.AGENTADD_MAILQUEUE">Add Agent to mailQueue</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailQueues/edit/teamadd/teamadd.html",'<md-dialog class="mailQueue-dialog" aria-label="mailQueue" ng-init="vm.onInit()">\n <form name="mailQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="MAIL.TEAMS_ASSOCIATION">Teams Association</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailQueues/edit/view.html",'<div id="mail-mailQueue" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-mailQueues-button md-icon-button" aria-label="Go to mailQueues" ng-click="vm.gotoMailQueues()" translate translate-attr-aria-label="MAIL.GO_TO_MAILQUEUES">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="mailQueue-image" hide-xs>\n <img ng-src="assets/images/business/mailQueues.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.mailQueue.id}}\n <span ng-if="vm.mailQueue.name">{{vm.mailQueue.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="MAIL.CREATED_AT"></span> <span>{{vm.mailQueue.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.teamadddialog(vm.mailQueue, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n <md-tooltip><span translate="MAIL.TEAMADD_MAILQUEUE"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.mailQueue, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="MAIL.AGENTADD_MAILQUEUE"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-plus"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveMailQueue()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid)" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="mailQueue-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MAIL.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MAIL.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.mailQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="MAIL.HELP.NAME"></span></div>\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MAIL.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.mailQueue.strategy" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'beepall\'">Beepall</md-option>\n <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n </md-select>\n <div ng-messages="generalForm[\'strategy\'].$error" ng-show="generalForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.AGENT_TIMEOUT">Agent_Timeout</label>\n <input type="number" name="timeout" ng-model="vm.mailQueue.timeout" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'timeout\'].$error" ng-show="generalForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.mailQueue.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/mail/views/mailQueues/mailQueues.html",'<div id="mailQueues" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-email" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="MAIL.MAILQUEUES">MailQueues</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="MAIL.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedMailQueues.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedMailQueues =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="MAIL.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-mailQueues-count">\n <span>{{vm.selectedMailQueues.length}}</span>\n <span translate="MAIL.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="MAIL.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllMailQueues()" translate="MAIL.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectMailQueues()" translate="MAIL.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedMailQueues" csv-label="true" filename="mailQueues.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedMailQueues($event)" aria-label="delete selected" translate translate-attr-label="MAIL.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- MAILQUEUE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedMailQueues" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getMailQueues">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'MAIL.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'MAIL.NAME\' | translate }}</th>\n <th md-column md-order-by="strategy">{{ \'MAIL.STRATEGY\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.mailQueues.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="MAIL.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="mailQueue" md-select-id="id" ng-repeat="mailQueue in vm.mailQueues.rows">\n <td md-cell ng-if="mailQueue.userpic"><img class="avatar" alt="{{mailQueue.name}}" ng-src="api/users/{{mailQueue.id}}/avatar" /></td>\n <td md-cell ng-if="!mailQueue.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{mailQueue.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailQueue, ev) : vm.createOrEditMailQueue($event, mailQueue)" md-cell class="id ">{{mailQueue.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailQueue, ev) : vm.createOrEditMailQueue($event, mailQueue)" md-cell class="name ">{{mailQueue.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailQueue, ev) : vm.createOrEditMailQueue($event, mailQueue)" md-cell class="strategy ">{{ vm.arraystrategy[mailQueue.strategy].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MAIL.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(mailQueue, $event )" translate="MAIL.EDIT_MAILQUEUE">\n Edit MailQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(mailQueue, $event )" translate="MAIL.TEAMADD_MAILQUEUE">\n teamadd MailQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(mailQueue, $event )" translate="MAIL.AGENTADD_MAILQUEUE">\n agentadd MailQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(mailQueue, $event )" translate="MAIL.DELETE_MAILQUEUE">\n Delete MailQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(mailQueue, $event )" translate="MAIL.GOTOREALTIME_MAILQUEUE">\n goToRealtime MailQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.mailQueues.count}}" md-on-paginate="vm.getMailQueues" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / MAILQUEUE TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD MAILQUEUE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-mailQueue-button" ng-click="vm.createOrEditMailQueue($event)" aria-label="add mailQueue" translate translate-attr-aria-label="MAIL.ADD_MAILQUEUE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD MAILQUEUE BUTTON --\x3e\n</div>'),e.put("app/main/apps/mail/views/mailSubtatuses/create/dialog.html",'<md-dialog class="mailSubstatus-dialog" aria-label="New MailSubstatus">\n <form name="mailSubstatusForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MAIL.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.mailSubstatus.name" ng-required="true" autofocus>\n\n <div ng-messages="mailSubstatusForm[\'name\'].$error" ng-show="mailSubstatusForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.mailSubstatus.description">\n\n <div ng-messages="mailSubstatusForm[\'description\'].$error" ng-show="mailSubstatusForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newMailSubstatus" ng-click="vm.saveMailSubstatus()" class="send-button md-accent md-raised" ng-disabled="mailSubstatusForm.$invalid || mailSubstatusForm.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newMailSubstatus" ng-click="vm.addNewMailSubstatus()" class="send-button md-accent md-raised" ng-disabled="mailSubstatusForm.$invalid" aria-label="ADD" translate="MAIL.ADD_MAILSUBSTATUS" translate-attr-aria-label="MAIL.ADD_MAILSUBSTATUS">\n ADD MAILSUBSTATUS\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newMailSubstatus" ng-click="vm.deleteMailSubstatus($event)" aria-label="DELETE" translate translate-attr-aria-label="MAIL.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="MAIL.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailSubtatuses/mailSubtatuses.html",'<div id="mailSubtatuses" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-email" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="MAIL.MAILSUBSTATUSES">MailSubstatuses</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="MAIL.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedMailSubstatuses.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedMailSubstatuses =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="MAIL.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-mailSubtatuses-count">\n <span>{{vm.selectedMailSubstatuses.length}}</span>\n <span translate="MAIL.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="MAIL.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllMailSubstatuses()" translate="MAIL.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectMailSubstatuses()" translate="MAIL.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedMailSubstatuses" csv-label="true" filename="mailSubtatuses.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedMailSubstatuses($event)" aria-label="delete selected" translate translate-attr-label="MAIL.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- MAILSUBSTATUS TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedMailSubstatuses" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getMailSubstatuses">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'MAIL.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'MAIL.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'MAIL.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.mailSubtatuses.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="MAIL.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="mailSubstatus" md-select-id="id" ng-repeat="mailSubstatus in vm.mailSubtatuses.rows">\n <td md-cell ng-if="mailSubstatus.userpic"><img class="avatar" alt="{{mailSubstatus.name}}" ng-src="api/users/{{mailSubstatus.id}}/avatar" /></td>\n <td md-cell ng-if="!mailSubstatus.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{mailSubstatus.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditMailSubstatus($event, mailSubstatus)" md-cell class="id ">{{mailSubstatus.id}}</td>\n <td ng-click="vm.createOrEditMailSubstatus($event, mailSubstatus)" md-cell class="name ">{{mailSubstatus.name}}</td>\n <td ng-click="vm.createOrEditMailSubstatus($event, mailSubstatus)" md-cell class="description ">{{mailSubstatus.description}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MAIL.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(mailSubstatus, $event )" translate="MAIL.EDIT_MAILSUBSTATUS">\n Edit MailSubstatus\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(mailSubstatus, $event )" translate="MAIL.DELETE_MAILSUBSTATUS">\n Delete MailSubstatus\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.mailSubtatuses.count}}" md-on-paginate="vm.getMailSubstatuses" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / MAILSUBSTATUS TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD MAILSUBSTATUS BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-mailSubstatus-button" ng-click="vm.createOrEditMailSubstatus($event)" aria-label="add mailSubstatus" translate translate-attr-aria-label="MAIL.ADD_MAILSUBSTATUS">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD MAILSUBSTATUS BUTTON --\x3e\n</div>'),e.put("app/main/apps/mail/views/realtime/accounts/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MAIL.ACCOUNTS">Accounts</span>\n <div flex></div>\n <ms-search-bar on-search="vm.vm.getMailAccounts()" query="vm.query" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n\n\x3c!-- AGENT TABLE --\x3e\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getMailAccounts">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'MAIL.NAME\' | translate}}</th>\n <th md-column>{{\'MAIL.KEY\' | translate}}</th>\n <th md-column>{{\'MAIL.TOTAL\' | translate}}</th>\n <th md-column>{{\'MAIL.IN\' | translate}}</th>\n <th md-column>{{\'MAIL.OUT\' | translate}}</th>\n <th md-column>{{\'MAIL.IMAP_STATUS\' | translate}}</th>\n <th md-column>{{\'MAIL.SMTP_STATUS\' | translate}}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.mailAccounts">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="MAIL.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="vm.mailAccounts[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td md-cell>{{vm.mailAccounts[value].name}}</td>\n <td md-cell>{{vm.mailAccounts[value].key}}</td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{(vm.mailAccounts[value].in || 0) + (vm.mailAccounts[value].out || 0)}}</span>\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="icon-arrow-down-bold blue-fg"></md-icon>\n </span>\n <span class="md-capture blue-fg">{{vm.mailAccounts[value].in || 0}}</span>\n <span class="text-boxed" ng-if="mailAccount.in">{{vm.mailAccounts[value].lastIn ? (vm.mailAccounts[value].lastIn | date: \'shortTime\') : \'\'}}</span>\n </div>\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="icon-arrow-up-bold green-fg"></md-icon>\n </span>\n <span class="md-capture green-fg">{{vm.mailAccounts[value].out || 0}}</span>\n <span class="text-boxed" ng-if="mailAccount.out">{{vm.mailAccounts[value].lastOut ? (vm.mailAccounts[value].lastOut | date: \'shortTime\') : \'\'}}</span>\n </div>\n </td>\n <td md-cell>\n <div layout="row" layout-align="start center">\n <div layout="column" layout-align="center center">\n <md-button class="md-icon-button" aria-label="Status">\n <md-tooltip>{{vm.mailAccounts[value].Imap.messageStatus}}</md-tooltip>\n <div ng-switch="vm.mailAccounts[value].Imap.status">\n <md-icon ng-switch-when="error" md-font-icon="icon-alert yellow-fg"></md-icon>\n <md-icon ng-switch-when="disabled" md-font-icon="icon-close grey-fg"></md-icon>\n <md-icon ng-switch-default md-font-icon="icon-checkbox-marked-circle-outline green-fg"></md-icon>\n </div>\n </md-button>\n <span class="md-caption grey-fg">{{ (\'MAIL.\' + vm.mailAccounts[value].Imap.status.toUpperCase()) | translate}}</span>\n </div>\n <span class="text-boxed" ng-if="vm.mailAccounts[value].active && (vm.mailAccounts[value].Imap.lastSync && vm.mailAccounts[value].Imap.lastSync != \'\')">{{vm.mailAccounts[value].Imap.lastSync | date: \'shortTime\'}}</span>\n </div>\n </td>\n <td md-cell>\n <div layout="row" layout-align="start center" ng-if="vm.mailAccounts[value].Smtp.status">\n <div layout="column" layout-align="center center">\n <md-button class="md-icon-button" aria-label="Status">\n <md-tooltip>{{vm.mailAccounts[value].Smtp.messageStatus}}</md-tooltip>\n <md-icon md-font-icon="{{ vm.mailAccounts[value].Smtp.status == \'error\' ? \'icon-alert yellow-fg\' : \'icon-checkbox-marked-circle-outline green-fg\'}}"></md-icon>\n </md-button>\n <span class="md-caption grey-fg">{{ (\'MAIL.\' + vm.mailAccounts[value].Smtp.status.toUpperCase()) | translate}}</span>\n </div>\n <span class="text-boxed">{{vm.mailAccounts[value].Smtp.lastSync | date: \'shortTime\'}}</span>\n </div>\n <span class="md-caption grey-fg" ng-if="!vm.mailAccounts[value].Smtp.status">{{ \'MAIL.NEVER_VERIFIED\' | translate }}</span>\n </td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="4">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.goToMailAccount($event, vm.mailAccounts[value])" translate="MAIL.EDIT_ACCOUNT">\n Edit Account\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.verifySmtp($event, vm.mailAccounts[value])" translate="MAIL.VERIFY_SMTP">\n Verify Smtp\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getMailAccounts" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/mail/views/realtime/agents/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MAIL.AGENTS">Agents</span>\n <div flex></div>\n <ms-search-bar on-search="vm.onInit()" query="vm.query" on-collapse="vm.query.filter = undefined; vm.onInit()" debounce="300"></ms-search-bar>\n <md-select ng-model="vm.query.globalStatusFilter" class="md-caption" ng-change="vm.query.pauseTypeFilter = \'\'; vm.onInit()">\n <md-option ng-value="\'\'">{{ \'MAIL.ALL\' | translate }}</md-option>\n <md-option value="pause">{{ \'MAIL.PAUSE\' | translate }}</md-option>\n <md-option value="*pause">{{ \'MAIL.PARTIALPAUSE\' | translate }}</md-option>\n <md-option value="busy">{{ \'MAIL.BUSY\' | translate }}</md-option>\n <md-option value="idle">{{ \'MAIL.IDLE\' | translate }}</md-option>\n </md-select>\n <md-select ng-if="vm.isPause(vm.query.globalStatusFilter)" ng-model="vm.query.pauseTypeFilter" class="md-caption" ng-change="vm.onInit()">\n <md-option ng-value="\'\'">All</md-option>\n <md-option value="DEFAULT PAUSE">DEFAULT PAUSE</md-option>\n <md-option value="ACW">ACW</md-option>\n <md-option value="LOGININPAUSE">LOGININPAUSE</md-option>\n <md-option value="Auto-Pause">AUTOPAUSE</md-option>\n <md-option ng-value="pause.name" ng-repeat="pause in vm.pauses.rows">{{pause.name}}</md-option>\n </md-select>\n </div>\n</md-toolbar>\n\x3c!-- AGENT TABLE --\x3e\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.order" md-on-reorder="vm.onInit">\n <tr md-row border="1">\n <th class="bv text-center" colspan="5">{{ \'MAIL.AGENT\' | translate }}</th>\n <th class="bv bl text-center" colspan="2">{{ \'VOICE.VOICE\' | translate }}</th>\n <th ng-if="vm.license.chat" class="bv bl text-center" colspan="2">{{ \'CHAT.CHAT\' | translate }}</th>\n <th ng-if="vm.license.mail" class="bv bl text-center" colspan="2">{{ \'MAIL.MAIL\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="bv bl text-center" colspan="2">{{ \'SMS.SMS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="bv bl text-center" colspan="2">\n {{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="bv bl text-center" colspan="2">\n {{ \'WHATSAPP.WHATSAPP\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n </tr>\n <tr md-row>\n <th class="bl" colspan="2" md-column md-order-by="fullname">\n {{ \'MAIL.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">\n {{ \'MAIL.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">\n {{ \'MAIL.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">\n {{ \'MAIL.PAUSE_TIME\' | translate }}</th>\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\n <th ng-if="vm.license.chat" class="bl text-center">{{ \'CHAT.STATUS\' | translate }}</th>\n <th ng-if="vm.license.chat" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'CHAT.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.mail" class="bl text-center">{{ \'MAIL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.mail" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'MAIL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.messaging" class="bl text-center">{{ \'SMS.STATUS\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'SMS.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.openchannel" class="bl text-center">{{ \'OPENCHANNEL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'OPENCHANNEL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.fax" class="bl text-center">{{ \'FAX.STATUS\' | translate }}</th>\n <th ng-if="vm.license.fax" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'FAX.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.whatsapp" class="bl text-center">{{ \'WHATSAPP.STATUS\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'WHATSAPP.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.order.length">\n <td md-cell colspan="19">\n <div layout="row" layout-align="center center">\n <span>{{ \'MAIL.NO_AGENT_ONLINE\' | translate }}</span>\n </div>\n </td>\n </tr>\n <tr md-select="vm.agents[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td class="bt padding-5">\n <div layout="row" layout-align="start center">\n <img class="avatar" ng-src="{{vm.agents[value].userpic && \'api/users/\'+vm.agents[value].id+\'/avatar\' || \'assets/images/avatars/profile.png\'}}">\n <div layout="column">\n <span>{{vm.agents[value].fullname}}</span>\n <span>{{vm.agents[value].internal}}</span>\n </div>\n </div>\n </td>\n <td class="bt padding-5">\n <div layout="row" layout-align="start center" ng-if="vm.license.screenrecording && (vm.agents[value].phoneBarEnableScreenRecordingByAgent || vm.agents[value].phoneBarEnableAutomaticScreenRecording)">\n <div class="column" ng-if="vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: green; font-size: 36px;" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'MAIL.TOOLTIP_SCREENRECORDING_ON\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n <div class="column" ng-if="!vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: gray" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'MAIL.TOOLTIP_SCREENRECORDING_OFF\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n </div>\n </td>\n <td class="bt">\n'+" <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','busy':'indigo-100-bg','*pause':'amber-50-bg','pause':'amber-200-bg'}[vm.agents[value].globalStatus]\">{{\n vm.isPause(vm.agents[value].globalStatus) ? '' : vm.agents[value].globalStatus | uppercase }}\n {{ vm.isPause(vm.agents[value].globalStatus) ? (vm.isPartialPause(vm.agents[value].globalStatus) ?\n '*'+vm.agents[value].pauseType || 'DEFAULT PAUSE' : vm.agents[value].pauseType || 'DEFAULT PAUSE') :\n ''}}</span>\n </td>\n <td class=\"bt custom-column\">\n <timer start-time=\"vm.agents[value].lastLoginAt\"></timer>\n </td>\n <td class=\"bt custom-column\">\n <timer ng-if=\"vm.isPause(vm.agents[value].globalStatus) || vm.isPartialPause(vm.agents[value].globalStatus)\" start-time=\"vm.agents[value].lastPauseAt\"></timer>\n </td>\n <td class=\"bt bl\">\n <div layout=\"row\">\n <span ng-if=\"!vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','talking':'indigo-100-bg','ringing':'orange-400-bg','pause':'amber-200-bg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].voiceStatus | uppercase }}</span>\n <span ng-if=\"vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5 orange-400-bg\">ONHOLD</span>\n </div>\n </td>\n <td class=\"bt bl\">\n <div layout=\"column\">\n <span ng-if=\"vm.agents[value].queue\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].queue }}</span>\n <span ng-if=\"vm.agents[value].destconnectedlinenum\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\" privacy ng-cloak>{{\n vm.agents[value].destconnectedlinenum }}</span>\n <span ng-if=\"vm.agents[value].routealias\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].routealias }}</span>\n <span class=\"padding-5\" ng-if=\"vm.agents[value].queue || vm.agents[value].destconnectedlinenum\">\n <timer start-time=\"vm.agents[value].voiceStatusTime\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">\n </timer>\n </span>\n </div>\n </td>\n <td class=\"bt bl\" ng-if=\"vm.license.chat\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].chatStatus]\">{{\n vm.agents[value].chatStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td md-number class=\"bt text-center font-size-20\" ng-if=\"vm.license.chat\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].chatStatus]\">\n {{ vm.agents[value].chatCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.mail\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].mailStatus]\">{{\n vm.agents[value].mailStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.mail\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].mailStatus]\">\n {{ vm.agents[value].mailCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.messaging\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].smsStatus]\">{{\n vm.agents[value].smsStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.messaging\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].smsStatus]\">\n {{ vm.agents[value].smsCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.openchannel\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].openchannelStatus]\">{{\n vm.agents[value].openchannelStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.openchannel\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].openchannelStatus]\">\n {{ vm.agents[value].openchannelCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.fax\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].faxStatus]\">{{\n vm.agents[value].faxStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.fax\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].faxStatus]\">\n {{ vm.agents[value].faxCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.whatsapp\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].whatsappStatus]\">{{\n vm.agents[value].whatsappStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.whatsapp\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].whatsappStatus]\">\n {{ vm.agents[value].whatsappCurrentCapacity }}</td>\n <td class=\"bl bt padding-5 text-center\" ng-if=\"vm.crudPermissions.canEdit\">\n <md-menu>\n <md-button class=\"md-icon-button\" aria-label=\"More\" translate translate-attr-aria-label=\"STAFF.MORE\" ng-click=\"$mdOpenMenu($event)\">\n <md-icon md-font-icon=\"icon-dots-vertical\"></md-icon>\n </md-button>\n <md-menu-content width=\"4\">\n <md-menu-item>\n <md-button ng-click=\"vm.logout(vm.agents[value], $event)\" translate=\"MAIL.LOGOUT\">\n Logout\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click=\"vm.queueAdd(vm.agents[value], $event)\" translate=\"MAIL.AGENTADD_QUEUE\">\n Add Agent In Queue\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.license.screenrecording && vm.agents[value].phoneBarEnableScreenRecordingByAgent\">\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"MAIL.SCREENRECORDING\">Screen Recording\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if=\"!vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], true)\"><em translate=\"MAIL.START_SCREENRECORDING\">Start\n Screen Recording</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], false)\"><em translate=\"MAIL.STOP_SCREENRECORDING\">Stop\n Screen Recording</em></md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item>\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"MAIL.PAUSE\">Pause</md-button>\n <md-menu-content>\n <md-menu-item>\n <md-button ng-disabled=\" vm.agents[value].voicePause && 'DEFAULT PAUSE' === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value])\"><em translate=\"MAIL.DEFAULT_PAUSE\">Default\n Pause</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.pauses.rows.length\" ng-repeat=\"pause in vm.pauses.rows\">\n <md-button ng-disabled=\"vm.agents[value].voicePause && pause.name === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value], pause.name)\">{{pause.name}}\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.isPause(vm.agents[value].globalStatus)\">\n <md-button ng-click=\"vm.unPause(vm.agents[value])\" translate=\"MAIL.UNPAUSE\">\n Unpause\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label=\"{page: '{{'MAIL.PAGE' | translate}}:', rowsPerPage: '{{'MAIL.ROWSPERPAGE' | translate}}:', of: '{{'MAIL.OF' | translate}}'}\" md-limit=\"vm.query.limit\" md-limit-options=\"[10, 15, 20, 50, 100, 250]\" md-page=\"vm.query.page\" md-total=\"{{vm.filteredAgents.length}}\" md-on-paginate=\"vm.onInit\" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e"),e.put("app/main/apps/mail/views/realtime/queues/view.html",'<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MAIL.QUEUES">Queues</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getQueues">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'MAIL.NAME\' | translate }}</th>\n <th md-column>{{ \'MAIL.LOGGED_IN\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'MAIL.PAUSED\' | translate }}</th>\n <th md-column>{{ \'MAIL.WAITING\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.queues.count > 0">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="MAIL.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="queue" md-select-id="id" ng-repeat="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedIn }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MAIL.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.editQueue($event, queue)" translate="MAIL.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.addAgent($event, queue)" translate="MAIL.AGENTSADD_QUEUE">\n Add Agents to queue\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),e.put("app/main/apps/mail/views/realtime/realtime.html",'<div id="realtime" class="page-layout simple tabbed" layout="column" ng-cloak>\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.AGENTS">Agents</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.QUEUES">Queues</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.ACCOUNTS">Accounts</span>\n </md-tab-label>\n </md-tab>\n </md-tabs>\n\n <md-card ui-view></md-card>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/marketplace/views/plugins/create/dialog.html",'<md-dialog class="plugin-dialog" aria-label="New Plugin">\n <form name="pluginForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.plugin.name" ng-required="true" autofocus>\n\n <div ng-messages="pluginForm[\'name\'].$error" ng-show="pluginForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.TYPE">Type</label>\n <input type="text" name="type" ng-model="vm.plugin.type" ng-disabled="!vm.newPlugin">\n\n <div ng-messages="pluginForm[\'type\'].$error" ng-show="pluginForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.plugin.active" aria-label="Active" ng-disabled="!vm.newPlugin"><span translate="MARKETPLACE.ACTIVE">Active</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.plugin.description">\n\n <div ng-messages="pluginForm[\'description\'].$error" ng-show="pluginForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.ICON">Icon</label>\n <input type="text" name="icon" ng-model="vm.plugin.icon" ng-required="true">\n\n <div ng-messages="pluginForm[\'icon\'].$error" ng-show="pluginForm[\'icon\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.ICON_REQUIRED">Icon field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.SIDEBAR">Sidebar</label>\n <md-select name="sidebar" ng-model="vm.plugin.sidebar" required>\n <md-option ng-value="\'always\'">Always</md-option>\n <md-option ng-value="\'adminOnly\'">Admin Only</md-option>\n <md-option ng-value="\'agentOnly\'">Agent Only</md-option>\n <md-option ng-value="\'never\'">Never</md-option>\n </md-select>\n <div ng-messages="pluginForm[\'sidebar\'].$error" ng-show="pluginForm[\'sidebar\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.SIDEBAR_REQUIRED">Sidebar field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.sidebar === \'always\' || vm.plugin.sidebar === \'adminOnly\'" class="md-block">\n <label translate="MARKETPLACE.ADMINURL">AdminUrl</label>\n <input type="text" name="adminUrl" ng-model="vm.plugin.adminUrl">\n\n <div ng-messages="pluginForm[\'adminUrl\'].$error" ng-show="pluginForm[\'adminUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.ADMINURL_REQUIRED">AdminUrl field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.sidebar === \'always\' || vm.plugin.sidebar === \'agentOnly\'" class="md-block">\n <label translate="MARKETPLACE.AGENTURL">AgentUrl</label>\n <input type="text" name="agentUrl" ng-model="vm.plugin.agentUrl">\n\n <div ng-messages="pluginForm[\'agentUrl\'].$error" ng-show="pluginForm[\'agentUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.AGENTURL_REQUIRED">AgentUrl field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.type === \'script\'" class="md-block">\n <label translate="MARKETPLACE.SCRIPTNAME">ScriptName</label>\n <input type="text" name="scriptName" ng-model="vm.plugin.scriptName" ng-disabled="!vm.newPlugin">\n\n <div ng-messages="pluginForm[\'scriptName\'].$error" ng-show="pluginForm[\'scriptName\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.SCRIPTNAME_REQUIRED">ScriptName field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.type === \'script\'" class="md-block">\n <label translate="MARKETPLACE.SCRIPTPATH">ScriptPath</label>\n <input type="text" name="scriptPath" ng-model="vm.plugin.scriptPath" ng-required="true">\n\n <div ng-messages="pluginForm[\'scriptPath\'].$error" ng-show="pluginForm[\'scriptPath\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.SCRIPTPATH_REQUIRED">ScriptPath field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.VERSION">Version</label>\n <input type="text" name="version" ng-model="vm.plugin.version" ng-disabled="!vm.newPlugin">\n\n <div ng-messages="pluginForm[\'version\'].$error" ng-show="pluginForm[\'version\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.VERSION_REQUIRED">Version field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newPlugin" ng-click="vm.savePlugin()" class="send-button md-accent md-raised" ng-disabled="pluginForm.$invalid || pluginForm.$pristine" aria-label="SAVE" translate="MARKETPLACE.SAVE" translate-attr-aria-label="MARKETPLACE.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newPlugin" ng-click="vm.addNewPlugin()" class="send-button md-accent md-raised" ng-disabled="pluginForm.$invalid" aria-label="ADD" translate="MARKETPLACE.ADD_PLUGIN" translate-attr-aria-label="MARKETPLACE.ADD_PLUGIN">\n ADD PLUGIN\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newPlugin" ng-click="vm.deletePlugin($event)" aria-label="DELETE" translate translate-attr-aria-label="MARKETPLACE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="MARKETPLACE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/marketplace/views/plugins/edit/view.html",'<div id="marketplace-plugin" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-plugins-button md-icon-button" aria-label="Go to plugins" ng-click="vm.gotoPlugins()" translate translate-attr-aria-label="MARKETPLACE.GO_TO_PLUGINS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="plugin-image" hide-xs>\n <img ng-src="assets/images/business/plugins.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.plugin.id}}\n <span ng-if="vm.plugin.name">{{vm.plugin.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="MARKETPLACE.CREATED_AT"></span> <span>{{vm.plugin.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.savePlugin()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid)" translate="MARKETPLACE.SAVE" translate-attr-aria-label="MARKETPLACE.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="MARKETPLACE.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="plugin-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MARKETPLACE.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.plugin.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.TYPE">Type</label>\n <input type="text" name="type" ng-model="vm.plugin.type" disabled>\n\n <div ng-messages="generalForm[\'type\'].$error" ng-show="generalForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.plugin.active" aria-label="Active" ng-disabled="true"><span translate="MARKETPLACE.ACTIVE">Active</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.plugin.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.ICON">Icon</label>\n <input type="text" name="icon" ng-model="vm.plugin.icon" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'icon\'].$error" ng-show="generalForm[\'icon\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.ICON_REQUIRED">Icon field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.SIDEBAR">Sidebar</label>\n <md-select name="sidebar" ng-model="vm.plugin.sidebar" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'always\'">Always</md-option>\n <md-option ng-value="\'adminOnly\'">Admin Only</md-option>\n <md-option ng-value="\'agentOnly\'">Agent Only</md-option>\n <md-option ng-value="\'never\'">Never</md-option>\n </md-select>\n <div ng-messages="generalForm[\'sidebar\'].$error" ng-show="generalForm[\'sidebar\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.SIDEBAR_REQUIRED">Sidebar field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.sidebar === \'always\' || vm.plugin.sidebar === \'adminOnly\'" class="md-block">\n <label translate="MARKETPLACE.ADMINURL">AdminUrl</label>\n <input type="text" name="adminUrl" ng-model="vm.plugin.adminUrl" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'adminUrl\'].$error" ng-show="generalForm[\'adminUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.ADMINURL_REQUIRED">AdminUrl field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.sidebar === \'always\' || vm.plugin.sidebar === \'agentOnly\'" class="md-block">\n <label translate="MARKETPLACE.AGENTURL">AgentUrl</label>\n <input type="text" name="agentUrl" ng-model="vm.plugin.agentUrl" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'agentUrl\'].$error" ng-show="generalForm[\'agentUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.AGENTURL_REQUIRED">AgentUrl field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.type === \'script\'" class="md-block">\n <label translate="MARKETPLACE.SCRIPTNAME">ScriptName</label>\n <input type="text" name="scriptName" ng-model="vm.plugin.scriptName" disabled>\n\n <div ng-messages="generalForm[\'scriptName\'].$error" ng-show="generalForm[\'scriptName\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.SCRIPTNAME_REQUIRED">ScriptName field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.type === \'script\'" class="md-block">\n <label translate="MARKETPLACE.SCRIPTPATH">ScriptPath</label>\n <input type="text" name="scriptPath" ng-model="vm.plugin.scriptPath" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'scriptPath\'].$error" ng-show="generalForm[\'scriptPath\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.SCRIPTPATH_REQUIRED">ScriptPath field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.VERSION">Version</label>\n <input type="text" name="version" ng-model="vm.plugin.version" disabled>\n\n <div ng-messages="generalForm[\'version\'].$error" ng-show="generalForm[\'version\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.VERSION_REQUIRED">Version field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/marketplace/views/plugins/plugins.html",'<div id="plugins" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-cart" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="MARKETPLACE.PLUGINS">Plugins</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="MARKETPLACE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedPlugins.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedPlugins =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="MARKETPLACE.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-plugins-count">\n <span>{{vm.selectedPlugins.length}}</span>\n <span translate="MARKETPLACE.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="MARKETPLACE.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllPlugins()" translate="MARKETPLACE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectPlugins()" translate="MARKETPLACE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedPlugins" csv-label="true" filename="plugins.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedPlugins($event)" aria-label="delete selected" translate translate-attr-label="MARKETPLACE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n <div ng-if="vm.installing">\n <md-card class="md-whiteframe-1dp padding-20" flex>\n <div layout="column" layout-align="center center">\n <span class="md-title md-accent-fg padding-20 text-bold" translate="MARKETPLACE.INSTALLING">Installing</span>\n <md-progress-linear md-mode="indeterminate" class="md-accent padding-20"></md-progress-linear>\n </div>\n </md-card>\n </div>\n\n \x3c!-- PLUGIN TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedPlugins" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getPlugins">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="name">{{ \'MARKETPLACE.NAME\' | translate }}</th>\n <th md-column md-order-by="type">{{ \'MARKETPLACE.TYPE\' | translate }}</th>\n <th md-column md-order-by="active">{{ \'MARKETPLACE.ACTIVE\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'MARKETPLACE.DESCRIPTION\' | translate }}</th>\n <th md-column md-order-by="version">{{ \'MARKETPLACE.VERSION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.plugins.rows.length">\n <td md-cell colspan="6">\n <div layout="row" layout-align="center center">\n <span translate="MARKETPLACE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="plugin" md-select-id="id" ng-repeat="plugin in vm.plugins.rows">\n <td md-cell ng-if="plugin.userpic"><img class="avatar" alt="{{plugin.name}}" ng-src="api/users/{{plugin.id}}/avatar" /></td>\n <td md-cell ng-if="!plugin.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{plugin.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(plugin, ev) : vm.createOrEditPlugin($event, plugin)" md-cell class="name ">{{plugin.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(plugin, ev) : vm.createOrEditPlugin($event, plugin)" md-cell class="type ">{{plugin.type}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(plugin, ev) : vm.createOrEditPlugin($event, plugin)" md-cell class="active ">\n <md-icon md-colors="{color: {{plugin.active ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{plugin.active ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(plugin, ev) : vm.createOrEditPlugin($event, plugin)" md-cell class="description ">{{plugin.description}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(plugin, ev) : vm.createOrEditPlugin($event, plugin)" md-cell class="version ">{{plugin.version}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MARKETPLACE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit && !plugin.active">\n\n <md-button ng-click="vm.installplugin(plugin, $event )" translate="MARKETPLACE.INSTALL_PLUGIN">\n Install Plugin\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(plugin, $event )" translate="MARKETPLACE.EDIT_PLUGIN">\n Edit Plugin\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit && plugin.active && plugin.type == \'script\'">\n\n <md-button ng-click="vm.stopplugin(plugin, $event )" translate="MARKETPLACE.STOP_PLUGIN">\n Stop Plugin\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit && plugin.active && plugin.type == \'script\'">\n\n <md-button ng-click="vm.restartplugin(plugin, $event )" translate="MARKETPLACE.RESTART_PLUGIN">\n Restart Plugin\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.downloadfile2(plugin, $event , \'plugins\' )" translate="MARKETPLACE.DOWNLOAD_PLUGIN">\n Download Plugin\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit && plugin.active">\n\n <md-button ng-click="vm.uninstallplugin(plugin, $event )" translate="MARKETPLACE.UNINSTALL_PLUGIN">\n Uninstall Plugin\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(plugin, $event )" translate="MARKETPLACE.DELETE_PLUGIN">\n Delete Plugin\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'MARKETPLACE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MARKETPLACE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MARKETPLACE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.plugins.count}}" md-on-paginate="vm.getPlugins" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / PLUGIN TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- UPLOAD PLUGIN BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="upload-plugin-button" ng-click="vm.uploadPlugin($event)" aria-label="upload plugin" translate translate-attr-aria-label="MARKETPLACE.UPLOAD_PLUGIN">\n <md-icon md-font-icon="icon-upload"></md-icon>\n </md-button>\n \x3c!-- / UPLOAD PLUGIN BUTTON --\x3e\n</div>'),e.put("app/main/apps/marketplace/views/plugins/upload/dialog.html",'<md-dialog class="upload-dialog" aria-label="Upload ">\n <form name="uploadForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <div id="plugin-uploader" ng-hide="vm.uploadState == \'uploading\'" flow-init="vm.ngFlowOptions" flow-name="vm.ngFlow.flow" flow-files-submitted="vm.upload()" flow-file-added="vm.fileAdded($file)" flow-file-success="vm.fileSuccess($file, $message)" flow-error="vm.uploadError($file, $message)" flow-complete="vm.uploadComplete()" flow-drop flow-drag-enter="vm.dropping=true" flow-drag-leave="vm.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n <div class="drop-text hint-text" layout="row" layout-align="center center">\n <span translate="MARKETPLACE.DROP_TO_UPLOAD">Drop to upload</span>\n </div>\n\n <div class="upload-button" layout="column" layout-align="center center">\n <md-button class="md-accent md-raised" flow-btn>\n Upload\n </md-button>\n <span class="secondary-text mt-8" translate="MARKETPLACE.DROP_TO_UPLOAD_MESSAGE">You can also drop your file here to upload.</span>\n </div>\n </div>\n\n <div layout="column" layout-align="space-between center" ng-show="vm.uploadState == \'uploading\'">\n <div>\n <span translate="MARKETPLACE.UPLOADING">Uploading</span>\n <span>{{vm.plugin.file.name}}</span>\n </div>\n <md-progress-linear md-mode="indeterminate"></md-progress-linear>\n </div>\n\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center"></div>\n <div layout="row">\n <md-button ng-click="vm.closeDialog()" ng-hide="vm.uploadState == \'uploading\'" class="md-accent md-raised" aria-label="FINISH" translate="MARKETPLACE.FINISH" translate-attr-aria-label="MARKETPLACE.FINISH">\n FINISH\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/ivrCampaigns/create/dialog.html",'<md-dialog class="ivrCampaign-dialog" aria-label="New IvrCampaign">\n <form name="ivrCampaignForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.ivrCampaign.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newIvrCampaign">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NAME"></span></div>\n <div ng-messages="ivrCampaignForm[\'name\'].$error" ng-show="ivrCampaignForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MOTIONDIALER.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.ivrCampaign.active" aria-label="Active"><span translate="MOTIONDIALER.ACTIVE">Active</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.TRUNK">Trunk</label>\n <md-select name="TrunkId" ng-model="vm.ivrCampaign.TrunkId" required>\n <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks" ng-disabled="TrunkId.canSelect === false">{{ TrunkId.name }}</md-option>\n </md-select>\n <div ng-messages="ivrCampaignForm[\'TrunkId\'].$error" ng-show="ivrCampaignForm[\'TrunkId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.TRUNK_REQUIRED">Trunk field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.INTERVAL">Interval</label>\n <md-select name="IntervalId" ng-model="vm.ivrCampaign.IntervalId" required>\n <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval" ng-disabled="IntervalId.canSelect === false">{{ IntervalId.name }}</md-option>\n </md-select>\n <div ng-messages="ivrCampaignForm[\'IntervalId\'].$error" ng-show="ivrCampaignForm[\'IntervalId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.INTERVAL_REQUIRED">Interval field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CHECKDUPLICATE">CheckDuplicate</label>\n <md-select name="dialCheckDuplicateType" ng-model="vm.ivrCampaign.dialCheckDuplicateType" required>\n\n <md-option ng-value="\'always\'"> {{ \'MOTIONDIALER.ALWAYS\' | translate }} </md-option>\n\n <md-option ng-value="\'never\'"> {{ \'MOTIONDIALER.NEVER\' | translate }} </md-option>\n\n <md-option ng-value="\'onlyIfOpen\'"> {{ \'MOTIONDIALER.ONLY_IF_OPEN\' | translate }} </md-option>\n </md-select>\n <div ng-messages="ivrCampaignForm[\'dialCheckDuplicateType\'].$error" ng-show="ivrCampaignForm[\'dialCheckDuplicateType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CHECKDUPLICATE_REQUIRED">CheckDuplicate field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CALLYSQUAREPROJECT">CallySquareProject</label>\n <md-select name="SquareProjectId" ng-model="vm.ivrCampaign.SquareProjectId" required>\n <md-option ng-value="SquareProjectId.id" ng-repeat="SquareProjectId in vm.projects" ng-disabled="SquareProjectId.canSelect === false">{{ SquareProjectId.name }}</md-option>\n </md-select>\n <div ng-messages="ivrCampaignForm[\'SquareProjectId\'].$error" ng-show="ivrCampaignForm[\'SquareProjectId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CALLYSQUAREPROJECT_REQUIRED">CallySquareProject field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CONCURRENTCALLS">ConcurrentCalls</label>\n <input type="number" name="limitCalls" ng-model="vm.ivrCampaign.limitCalls" min="1" max="200" value="30" ng-required="true">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.CONCURRENTCALLS"></span></div>\n <div ng-messages="ivrCampaignForm[\'limitCalls\'].$error" ng-show="ivrCampaignForm[\'limitCalls\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CONCURRENTCALLS_REQUIRED">ConcurrentCalls field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CONCURRENTCALLS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">ConcurrentCalls must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CONCURRENTCALLS_MUST_BE_LESS_THAN_OR_EQUAL_TO">ConcurrentCalls must be a valid greater or equal than</span> <span>200</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.ivrCampaign.description">\n\n <div ng-messages="ivrCampaignForm[\'description\'].$error" ng-show="ivrCampaignForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newIvrCampaign" ng-click="vm.saveIvrCampaign()" class="send-button md-accent md-raised" ng-disabled="ivrCampaignForm.$invalid || ivrCampaignForm.$pristine" aria-label="SAVE" translate="MOTIONDIALER.SAVE" translate-attr-aria-label="MOTIONDIALER.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newIvrCampaign" ng-click="vm.addNewIvrCampaign()" class="send-button md-accent md-raised" ng-disabled="ivrCampaignForm.$invalid" aria-label="ADD" translate="MOTIONDIALER.ADD_IVRCAMPAIGN" translate-attr-aria-label="MOTIONDIALER.ADD_IVRCAMPAIGN">\n ADD IVRCAMPAIGN\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newIvrCampaign" ng-click="vm.deleteIvrCampaign($event)" aria-label="DELETE" translate translate-attr-aria-label="MOTIONDIALER.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="MOTIONDIALER.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/ivrCampaigns/edit/blacklistadd/blacklistadd.html",'<md-dialog class="ivrCampaign-dialog" aria-label="ivrCampaign" ng-init="vm.onInit()">\n <form name="ivrCampaignForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="MOTIONDIALER.BLACKLISTADD_IVRCAMPAIGN">Add List in IVRCAMPAIGN</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect ng-hide="vm.loading" options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n <div ng-hide="!vm.loading" layout-fill style="min-height: 397px;" layout="row" layout-sm="column" layout-align="center center">\n <md-progress-circular class="md-primary md-hue-1" md-diameter="96"></md-progress-circular>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveLists()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/ivrCampaigns/edit/clone/clone.html",'<md-dialog class="ivrCampaign-dialog" aria-label="Clone IvrCampaign">\n <form name="ivrCampaignForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.ivrCampaign.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newIvrCampaign">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NAME"></span></div>\n <div ng-messages="ivrCampaignForm[\'name\'].$error" ng-show="ivrCampaignForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MOTIONDIALER.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <md-button type="submit" ng-click="vm.cloneIvrCampaign()" class="send-button md-accent md-raised" ng-disabled="ivrCampaignForm.$invalid" aria-label="CLONE" translate="MOTIONDIALER.CLONE_IVRCAMPAIGN" translate-attr-aria-label="MOTIONDIALER.CLONE_IVRCAMPAIGN">\n CLONE IVRCAMPAIGN\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/ivrCampaigns/edit/hoppers/dialog.html",'<md-dialog class="hopper-dialog" aria-label="New Hopper">\n <form name="hopperForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <div class="md-block">\n <label translate="MOTIONDIALER.SCHEDULEDAT">ScheduledAt</label>\n <md-content layout="row" class="md-padding">\n <div flex class="md-block">\n <mdp-date-picker mdp-open-on-click name="scheduledatDate" mdp-placeholder="Date" mdp-format="YYYY-MM-DD" ng-model="vm.hopper.scheduledat" ng-init="vm.hopper.scheduledat = vm.getDateFromString(vm.hopper.scheduledat)">\n <div ng-messages="hopperForm.dateRangeFrom.$error" ng-show="hopperForm.dateRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DATE_REQUIRED">Date is required</span>\n </div>\n <div ng-message="format">\n <span translate="MOTIONDIALER.ERRORS.DATE_INVALID">Date is invalid</span>\n </div>\n </div>\n </mdp-date-picker>\n </div>\n <div flex class="md-block">\n <mdp-time-picker mdp-open-on-click name="scheduledatTime" mdp-placeholder="Time" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.hopper.scheduledat" ng-init="vm.hopper.scheduledat = vm.getDateFromString(vm.hopper.scheduledat)">\n <div ng-messages="hopperForm.timeRangeFrom.$error" ng-show="hopperForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.TIME_REQUIRED">Time is required</span>\n </div>\n <div ng-message="format">\n <span translate="MOTIONDIALER.ERRORS.TIME_INVALID">Time is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </md-content>\n </div>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.PRIORITY">Priority</label>\n <md-select name="priority" ng-model="vm.hopper.priority">\n <md-option ng-value="\'4\'">Highest</md-option>\n <md-option ng-value="\'3\'">High</md-option>\n <md-option ng-value="\'2\'">Medium</md-option>\n <md-option ng-value="\'1\'">Low</md-option>\n <md-option ng-value="\'0\'">Lowest</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.PRIORITY"></span></div>\n <div ng-messages="hopperForm[\'priority\'].$error" ng-show="hopperForm[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newHopper" ng-click="vm.saveHopper()" class="send-button md-accent md-raised" ng-disabled="hopperForm.$invalid || hopperForm.$pristine" aria-label="SAVE" translate="MOTIONDIALER.SAVE" translate-attr-aria-label="MOTIONDIALER.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newHopper" ng-click="vm.addNewHopper()" class="send-button md-accent md-raised" ng-disabled="hopperForm.$invalid" aria-label="ADD" translate="MOTIONDIALER.ADD_HOPPER" translate-attr-aria-label="MOTIONDIALER.ADD_HOPPER">\n ADD HOPPER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newHopper" ng-click="vm.deleteHopper($event)" aria-label="DELETE" translate translate-attr-aria-label="MOTIONDIALER.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="MOTIONDIALER.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/ivrCampaigns/edit/listadd/listadd.html",'<md-dialog class="ivrCampaign-dialog" aria-label="ivrCampaign" ng-init="vm.onInit()">\n <form name="ivrCampaignForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="MOTIONDIALER.LISTADD_IVRCAMPAIGN">Add List in IVRCAMPAIGN</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect ng-hide="vm.loading" options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n <div ng-hide="!vm.loading" layout-fill style="min-height: 397px;" layout="row" layout-sm="column" layout-align="center center">\n <md-progress-circular class="md-primary md-hue-1" md-diameter="96"></md-progress-circular>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveLists()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/ivrCampaigns/edit/resetlist/resetlist.html",'<md-dialog class="queueCampaign-dialog" aria-label="queueCampaign">\n <form name="queueCampaignForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="MOTIONDIALER.RESETLIST ">Reset List</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-disabled="vm.loading" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ng-hide="vm.loading">\n <div layout="row" layout-wrap flex>\n <div flex-xs flex="50">\n <md-checkbox aria-label="Select All" ng-checked="vm.isChecked()" md-indeterminate="vm.isIndeterminate()" ng-click="vm.toggleAll()">\n <span ng-if="vm.isChecked()" translate="MOTIONDIALER.UNSELECTALL"></span>\n <span ng-if="!vm.isChecked()" translate="MOTIONDIALER.SELECTALL"></span>\n </md-checkbox>\n </div>\n <div flex-xs flex="50">\n </div>\n <div flex="{{vm.items.length > 10 ? 50 : 100 }}" ng-repeat="item in vm.items">\n <md-checkbox ng-checked="vm.exists(item, vm.selected)" ng-click="vm.toggle(item, vm.selected)">\n {{ item.name | limitTo:40 }}\n </md-checkbox>\n </div>\n </div>\n </md-dialog-content>\n <md-dialog-actions ng-hide="vm.loading" layout="row" layout-align="end center">\n <div>\n </div>\n <md-button type="submit" ng-click="vm.listSelected()" class="send-button md-accent md-raised" ng-disabled="vm.loading" aria-label="RESET" translate="MOTIONDIALER.RESET" translate-attr-aria-label="MOTIONDIALER.RESET">\n SAVE\n </md-button>\n </md-dialog-actions>\n <div ng-hide="!vm.loading" layout-fill style="min-height: 397px;" layout="row" layout-sm="column" layout-align="center center">\n <md-progress-circular class="md-primary md-hue-1" md-diameter="96"></md-progress-circular>\n </div>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/ivrCampaigns/edit/view.html",'<div id="motiondialer-ivrCampaign" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-ivrCampaigns-button md-icon-button" aria-label="Go to ivrCampaigns" ng-click="vm.gotoIvrCampaigns()" translate translate-attr-aria-label="MOTIONDIALER.GO_TO_IVRCAMPAIGNS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="ivrCampaign-image" hide-xs>\n <img ng-src="assets/images/business/ivrCampaigns.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.ivrCampaign.id}}\n <span ng-if="vm.ivrCampaign.name">{{vm.ivrCampaign.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="MOTIONDIALER.CREATED_AT"></span> <span>{{vm.ivrCampaign.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.clonedialog(vm.ivrCampaign, $event)" class="md-fab md-green-500-bg md-icon-button" aria-label="clone">\n <md-tooltip><span translate="MOTIONDIALER.CLONE_IVRCAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-content-duplicate"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.listadddialog(vm.ivrCampaign, $event)" class="md-fab md-green-500-bg md-icon-button" aria-label="listadd">\n <md-tooltip><span translate="MOTIONDIALER.LISTADD_IVRCAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-format-list-numbers"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.blacklistadddialog(vm.ivrCampaign, $event)" class="md-fab md-warn md-icon-button" aria-label="blacklistadd">\n <md-tooltip><span translate="MOTIONDIALER.BLACKLISTADD_IVRCAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-block-helper"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.resetlistdialog(vm.ivrCampaign, $event)" class="md-fab md-warn md-icon-button" aria-label="resetlist">\n <md-tooltip><span translate="MOTIONDIALER.RESETLIST_IVRCAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-restore"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.gotogoto(vm.ivrCampaign, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n <md-tooltip><span translate="MOTIONDIALER.GOTO_IVRCAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-cast"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveIvrCampaign()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (campaignForm.$invalid) || (originateForm.$invalid) || (globalForm.$invalid) || (congestionForm.$invalid) || (busyForm.$invalid) || (noanswerForm.$invalid) || (nosuchnumberForm.$invalid) || (dropForm.$invalid) || (abandonedForm.$invalid) || (machineForm.$invalid) || (agentrejectForm.$invalid) || (advancedForm.$invalid) || (globalintervalForm.$invalid) || (timezoneForm.$invalid) || (amdForm.$invalid) || (hopperStatisticsForm.$invalid) || (hoppersForm.$invalid) || (hopperHistoriesForm.$invalid) || (hopperFinalsForm.$invalid) || (hopperBlacksForm.$invalid)" translate="MOTIONDIALER.SAVE" translate-attr-aria-label="MOTIONDIALER.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="ivrCampaign-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.ivrCampaign.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NAME"></span></div>\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MOTIONDIALER.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.ivrCampaign.active" aria-label="Active" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MOTIONDIALER.ACTIVE">Active</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.TRUNK">Trunk</label>\n <md-select name="TrunkId" ng-model="vm.ivrCampaign.TrunkId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks" ng-disabled="TrunkId.canSelect === false">{{ TrunkId.name }}</md-option>\n </md-select>\n <div ng-messages="generalForm[\'TrunkId\'].$error" ng-show="generalForm[\'TrunkId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.TRUNK_REQUIRED">Trunk field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.BACKUPTRUNK">BackupTrunk</label>\n <md-select name="TrunkBackupId" ng-model="vm.ivrCampaign.TrunkBackupId" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">None</md-option>\n <md-option ng-value="TrunkBackupId.id" ng-repeat="TrunkBackupId in vm.trunks" ng-disabled="TrunkBackupId.canSelect === false">{{ TrunkBackupId.name }}</md-option>\n </md-select>\n <div ng-messages="generalForm[\'TrunkBackupId\'].$error" ng-show="generalForm[\'TrunkBackupId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.BACKUPTRUNK_REQUIRED">BackupTrunk field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.INTERVAL">Interval</label>\n <md-select name="IntervalId" ng-model="vm.ivrCampaign.IntervalId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval" ng-disabled="IntervalId.canSelect === false">{{ IntervalId.name }}</md-option>\n </md-select>\n <div ng-messages="generalForm[\'IntervalId\'].$error" ng-show="generalForm[\'IntervalId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.INTERVAL_REQUIRED">Interval field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CHECKDUPLICATE">CheckDuplicate</label>\n <md-select name="dialCheckDuplicateType" ng-model="vm.ivrCampaign.dialCheckDuplicateType" required ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'always\'"> {{ \'MOTIONDIALER.ALWAYS\' | translate }} </md-option>\n\n <md-option ng-value="\'never\'"> {{ \'MOTIONDIALER.NEVER\' | translate }} </md-option>\n\n <md-option ng-value="\'onlyIfOpen\'"> {{ \'MOTIONDIALER.ONLY_IF_OPEN\' | translate }} </md-option>\n </md-select>\n <div ng-messages="generalForm[\'dialCheckDuplicateType\'].$error" ng-show="generalForm[\'dialCheckDuplicateType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CHECKDUPLICATE_REQUIRED">CheckDuplicate field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CUTDIGIT">CutDigit</label>\n <input type="number" name="dialCutDigit" ng-model="vm.ivrCampaign.dialCutDigit" min="0" max="15" value="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'dialCutDigit\'].$error" ng-show="generalForm[\'dialCutDigit\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CUTDIGIT_REQUIRED">CutDigit field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CUTDIGIT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CutDigit must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CUTDIGIT_MUST_BE_LESS_THAN_OR_EQUAL_TO">CutDigit must be a valid greater or equal than</span> <span>15</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.ivrCampaign.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.CAMPAIGN">CAMPAIGN</span>\n </md-tab-label>\n <md-tab-body>\n <div class="ivrCampaign-detail-form-container campaign md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.CAMPAIGN">CAMPAIGN</div>\n </div>\n <form name="campaignForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CALLYSQUAREPROJECT">CallySquareProject</label>\n <md-select name="SquareProjectId" ng-model="vm.ivrCampaign.SquareProjectId" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="SquareProjectId.id" ng-repeat="SquareProjectId in vm.projects" ng-disabled="SquareProjectId.canSelect === false">{{ SquareProjectId.name }}</md-option>\n </md-select>\n <div ng-messages="campaignForm[\'SquareProjectId\'].$error" ng-show="campaignForm[\'SquareProjectId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CALLYSQUAREPROJECT_REQUIRED">CallySquareProject field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CONCURRENTCALLS">ConcurrentCalls</label>\n <input type="number" name="limitCalls" ng-model="vm.ivrCampaign.limitCalls" min="1" max="200" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.CONCURRENTCALLS"></span></div>\n <div ng-messages="campaignForm[\'limitCalls\'].$error" ng-show="campaignForm[\'limitCalls\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CONCURRENTCALLS_REQUIRED">ConcurrentCalls field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CONCURRENTCALLS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">ConcurrentCalls must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CONCURRENTCALLS_MUST_BE_LESS_THAN_OR_EQUAL_TO">ConcurrentCalls must be a valid greater or equal than</span> <span>200</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="ivrCampaign-detail-form-container originate md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.ORIGINATE">ORIGINATE</div>\n </div>\n <form name="originateForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.ORIGINATECALLERIDNAME">OriginateCallerIdName</label>\n <input type="text" name="dialOriginateCallerIdName" ng-model="vm.ivrCampaign.dialOriginateCallerIdName" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ORIGINATECALLERIDNAME"></span></div>\n <div ng-messages="originateForm[\'dialOriginateCallerIdName\'].$error" ng-show="originateForm[\'dialOriginateCallerIdName\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATECALLERIDNAME_REQUIRED">OriginateCallerIdName field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.ORIGINATECALLERIDNUMBER">OriginateCallerIdNumber</label>\n <input type="text" name="dialOriginateCallerIdNumber" ng-model="vm.ivrCampaign.dialOriginateCallerIdNumber" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ORIGINATECALLERIDNUMBER"></span></div>\n <div ng-messages="originateForm[\'dialOriginateCallerIdNumber\'].$error" ng-show="originateForm[\'dialOriginateCallerIdNumber\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATECALLERIDNUMBER_REQUIRED">OriginateCallerIdNumber field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.RANDOMLASTDIGITCALLERIDNUMBER">RandomLastDigitCallerIdNumber</label>\n <input type="number" name="dialRandomLastDigitCallerIdNumber" ng-model="vm.ivrCampaign.dialRandomLastDigitCallerIdNumber" min="0" max="15" value="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.RANDOMLASTDIGITCALLERIDNUMBER"></span></div>\n <div ng-messages="originateForm[\'dialRandomLastDigitCallerIdNumber\'].$error" ng-show="originateForm[\'dialRandomLastDigitCallerIdNumber\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.RANDOMLASTDIGITCALLERIDNUMBER_REQUIRED">RandomLastDigitCallerIdNumber field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.RANDOMLASTDIGITCALLERIDNUMBER_MUST_BE_GREATER_THAN_OR_EQUAL_TO">RandomLastDigitCallerIdNumber must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.RANDOMLASTDIGITCALLERIDNUMBER_MUST_BE_LESS_THAN_OR_EQUAL_TO">RandomLastDigitCallerIdNumber must be a valid greater or equal than</span> <span>15</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.ORIGINATETIMEOUT">OriginateTimeout</label>\n <input type="number" name="dialOriginateTimeout" ng-model="vm.ivrCampaign.dialOriginateTimeout" min="1" max="999" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ORIGINATETIMEOUT"></span></div>\n <div ng-messages="originateForm[\'dialOriginateTimeout\'].$error" ng-show="originateForm[\'dialOriginateTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATETIMEOUT_REQUIRED">OriginateTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATETIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">OriginateTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATETIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">OriginateTimeout must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.PREFIX">Prefix</label>\n <input type="text" name="dialPrefix" ng-model="vm.ivrCampaign.dialPrefix" ng-pattern="/^\\d+$/" value="" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.PREFIX"></span></div>\n <div ng-messages="originateForm[\'dialPrefix\'].$error" ng-show="originateForm[\'dialPrefix\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.PREFIX_REQUIRED">Prefix field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MOTIONDIALER.ERRORS.PREFIX_MUST_VALID_PATTERN" translate-values="{ regex: \'/^\\d+$/\' }">Prefix must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.RETRYANDFREQUENCY">RETRYANDFREQUENCY</span>\n </md-tab-label>\n <md-tab-body>\n <div class="ivrCampaign-detail-form-container global md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.GLOBAL">GLOBAL</div>\n </div>\n <form name="globalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.GLOBALMAXRETRY">GlobalMaxRetry</label>\n <input type="number" name="dialGlobalMaxRetry" ng-model="vm.ivrCampaign.dialGlobalMaxRetry" min="1" max="999" value="4" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.GLOBALMAXRETRY"></span></div>\n <div ng-messages="globalForm[\'dialGlobalMaxRetry\'].$error" ng-show="globalForm[\'dialGlobalMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.GLOBALMAXRETRY_REQUIRED">GlobalMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.GLOBALMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">GlobalMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.GLOBALMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">GlobalMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="ivrCampaign-detail-form-container congestion md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.CONGESTION">CONGESTION</div>\n </div>\n <form name="congestionForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CONGESTIONMAXRETRY">CongestionMaxRetry</label>\n <input type="number" name="dialCongestionMaxRetry" ng-model="vm.ivrCampaign.dialCongestionMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.CONGESTIONMAXRETRY"></span></div>\n <div ng-messages="congestionForm[\'dialCongestionMaxRetry\'].$error" ng-show="congestionForm[\'dialCongestionMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONMAXRETRY_REQUIRED">CongestionMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CongestionMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">CongestionMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CONGESTIONRETRYTIME">CongestionRetryTime</label>\n <input type="number" name="dialCongestionRetryFrequency" ng-model="vm.ivrCampaign.dialCongestionRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.CONGESTIONRETRYTIME"></span></div>\n <div ng-messages="congestionForm[\'dialCongestionRetryFrequency\'].$error" ng-show="congestionForm[\'dialCongestionRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONRETRYTIME_REQUIRED">CongestionRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CongestionRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">CongestionRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="ivrCampaign-detail-form-container busy md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.BUSY">BUSY</div>\n </div>\n <form name="busyForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.BUSYMAXRETRY">BusyMaxRetry</label>\n <input type="number" name="dialBusyMaxRetry" ng-model="vm.ivrCampaign.dialBusyMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.BUSYMAXRETRY"></span></div>\n <div ng-messages="busyForm[\'dialBusyMaxRetry\'].$error" ng-show="busyForm[\'dialBusyMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.BUSYMAXRETRY_REQUIRED">BusyMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.BUSYMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">BusyMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.BUSYMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">BusyMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.BUSYRETRYTIME">BusyRetryTime</label>\n <input type="number" name="dialBusyRetryFrequency" ng-model="vm.ivrCampaign.dialBusyRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.BUSYRETRYTIME"></span></div>\n <div ng-messages="busyForm[\'dialBusyRetryFrequency\'].$error" ng-show="busyForm[\'dialBusyRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.BUSYRETRYTIME_REQUIRED">BusyRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.BUSYRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">BusyRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.BUSYRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">BusyRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="ivrCampaign-detail-form-container noanswer md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.NOANSWER">NOANSWER</div>\n </div>\n <form name="noanswerForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NOANSWERMAXRETRY">NoAnswerMaxRetry</label>\n <input type="number" name="dialNoAnswerMaxRetry" ng-model="vm.ivrCampaign.dialNoAnswerMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NOANSWERMAXRETRY"></span></div>\n <div ng-messages="noanswerForm[\'dialNoAnswerMaxRetry\'].$error" ng-show="noanswerForm[\'dialNoAnswerMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERMAXRETRY_REQUIRED">NoAnswerMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoAnswerMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoAnswerMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NOANSWERRETRYTIME">NoAnswerRetryTime</label>\n <input type="number" name="dialNoAnswerRetryFrequency" ng-model="vm.ivrCampaign.dialNoAnswerRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NOANSWERRETRYTIME"></span></div>\n <div ng-messages="noanswerForm[\'dialNoAnswerRetryFrequency\'].$error" ng-show="noanswerForm[\'dialNoAnswerRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERRETRYTIME_REQUIRED">NoAnswerRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoAnswerRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoAnswerRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="ivrCampaign-detail-form-container nosuchnumber md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.NOSUCHNUMBER">NOSUCHNUMBER</div>\n </div>\n <form name="nosuchnumberForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NOSUCHNUMBERMAXRETRY">NoSuchNumberMaxRetry</label>\n <input type="number" name="dialNoSuchNumberMaxRetry" ng-model="vm.ivrCampaign.dialNoSuchNumberMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NOSUCHNUMBERMAXRETRY"></span></div>\n <div ng-messages="nosuchnumberForm[\'dialNoSuchNumberMaxRetry\'].$error" ng-show="nosuchnumberForm[\'dialNoSuchNumberMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERMAXRETRY_REQUIRED">NoSuchNumberMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoSuchNumberMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoSuchNumberMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NOSUCHNUMBERRETRYTIME">NoSuchNumberRetryTime</label>\n <input type="number" name="dialNoSuchNumberRetryFrequency" ng-model="vm.ivrCampaign.dialNoSuchNumberRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NOSUCHNUMBERRETRYTIME"></span></div>\n <div ng-messages="nosuchnumberForm[\'dialNoSuchNumberRetryFrequency\'].$error" ng-show="nosuchnumberForm[\'dialNoSuchNumberRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERRETRYTIME_REQUIRED">NoSuchNumberRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoSuchNumberRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoSuchNumberRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="ivrCampaign-detail-form-container drop md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.DROP">DROP</div>\n </div>\n <form name="dropForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DROPMAXRETRY">DropMaxRetry</label>\n <input type="number" name="dialDropMaxRetry" ng-model="vm.ivrCampaign.dialDropMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.DROPMAXRETRY"></span></div>\n <div ng-messages="dropForm[\'dialDropMaxRetry\'].$error" ng-show="dropForm[\'dialDropMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DROPMAXRETRY_REQUIRED">DropMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.DROPMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">DropMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.DROPMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">DropMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DROPRETRYTIME">DropRetryTime</label>\n <input type="number" name="dialDropRetryFrequency" ng-model="vm.ivrCampaign.dialDropRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.DROPRETRYTIME"></span></div>\n <div ng-messages="dropForm[\'dialDropRetryFrequency\'].$error" ng-show="dropForm[\'dialDropRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DROPRETRYTIME_REQUIRED">DropRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.DROPRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">DropRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.DROPRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">DropRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="ivrCampaign-detail-form-container abandoned md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.ABANDONED">ABANDONED</div>\n </div>\n <form name="abandonedForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.ABANDONEDMAXRETRY">AbandonedMaxRetry</label>\n <input type="number" name="dialAbandonedMaxRetry" ng-model="vm.ivrCampaign.dialAbandonedMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ABANDONEDMAXRETRY"></span></div>\n <div ng-messages="abandonedForm[\'dialAbandonedMaxRetry\'].$error" ng-show="abandonedForm[\'dialAbandonedMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDMAXRETRY_REQUIRED">AbandonedMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AbandonedMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">AbandonedMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.ABANDONEDRETRYTIME">AbandonedRetryTime</label>\n <input type="number" name="dialAbandonedRetryFrequency" ng-model="vm.ivrCampaign.dialAbandonedRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ABANDONEDRETRYTIME"></span></div>\n <div ng-messages="abandonedForm[\'dialAbandonedRetryFrequency\'].$error" ng-show="abandonedForm[\'dialAbandonedRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDRETRYTIME_REQUIRED">AbandonedRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AbandonedRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">AbandonedRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="ivrCampaign-detail-form-container machine md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.MACHINE">MACHINE</div>\n </div>\n <form name="machineForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.MACHINEMAXRETRY">MachineMaxRetry</label>\n <input type="number" name="dialMachineMaxRetry" ng-model="vm.ivrCampaign.dialMachineMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.MACHINEMAXRETRY"></span></div>\n <div ng-messages="machineForm[\'dialMachineMaxRetry\'].$error" ng-show="machineForm[\'dialMachineMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MACHINEMAXRETRY_REQUIRED">MachineMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.MACHINEMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MachineMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.MACHINEMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">MachineMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.MACHINERETRYTIME">MachineRetryTime</label>\n <input type="number" name="dialMachineRetryFrequency" ng-model="vm.ivrCampaign.dialMachineRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.MACHINERETRYTIME"></span></div>\n <div ng-messages="machineForm[\'dialMachineRetryFrequency\'].$error" ng-show="machineForm[\'dialMachineRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MACHINERETRYTIME_REQUIRED">MachineRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.MACHINERETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MachineRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.MACHINERETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">MachineRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="ivrCampaign-detail-form-container agentreject md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.AGENTREJECT">AGENTREJECT</div>\n </div>\n <form name="agentrejectForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.AGENTREJECTMAXRETRY">AgentRejectMaxRetry</label>\n <input type="number" name="dialAgentRejectMaxRetry" ng-model="vm.ivrCampaign.dialAgentRejectMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AGENTREJECTMAXRETRY"></span></div>\n <div ng-messages="agentrejectForm[\'dialAgentRejectMaxRetry\'].$error" ng-show="agentrejectForm[\'dialAgentRejectMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTMAXRETRY_REQUIRED">AgentRejectMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AgentRejectMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">AgentRejectMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.AGENTREJECTRETRYTIME">AgentRejectRetryTime</label>\n <input type="number" name="dialAgentRejectRetryFrequency" ng-model="vm.ivrCampaign.dialAgentRejectRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AGENTREJECTRETRYTIME"></span></div>\n <div ng-messages="agentrejectForm[\'dialAgentRejectRetryFrequency\'].$error" ng-show="agentrejectForm[\'dialAgentRejectRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTRETRYTIME_REQUIRED">AgentRejectRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AgentRejectRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">AgentRejectRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <md-tab-body>\n <div class="ivrCampaign-detail-form-container advanced md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.ADVANCED">ADVANCED</div>\n </div>\n <form name="advancedForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DIALORDERBYSCHEDULEDAT">DialOrderByScheduledAt</label>\n <md-select name="dialOrderByScheduledAt" ng-model="vm.ivrCampaign.dialOrderByScheduledAt" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'DESC\'"> {{ \'MOTIONDIALER.DESC\' | translate }} </md-option>\n\n <md-option ng-value="\'ASC\'"> {{ \'MOTIONDIALER.ASC\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.DIALORDERBYSCHEDULEDAT"></span></div>\n <div ng-messages="advancedForm[\'dialOrderByScheduledAt\'].$error" ng-show="advancedForm[\'dialOrderByScheduledAt\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DIALORDERBYSCHEDULEDAT_REQUIRED">DialOrderByScheduledAt field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="ivrCampaign-detail-form-container globalinterval md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.GLOBALINTERVAL">GLOBALINTERVAL</div>\n </div>\n <form name="globalintervalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.GLOBALINTERVAL">GlobalInterval</label>\n <input type="text" name="dialGlobalInterval" ng-model="vm.ivrCampaign.dialGlobalInterval" value="07:00-22:00,*,*,*" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.GLOBALINTERVAL"></span></div>\n <div ng-messages="globalintervalForm[\'dialGlobalInterval\'].$error" ng-show="globalintervalForm[\'dialGlobalInterval\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.GLOBALINTERVAL_REQUIRED">GlobalInterval field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="ivrCampaign-detail-form-container timezone md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.TIMEZONE">TIMEZONE</div>\n </div>\n <form name="timezoneForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.TIMEZONE">Timezone</label>\n <ms-timezone name="dialTimezone" ng-model="vm.ivrCampaign.dialTimezone" autofocus ng-disabled="!vm.crudPermissions.canEdit"></ms-timezone>\n <div class="hint"><span translate="MOTIONDIALER.HELP.TIMEZONE"></span></div>\n <div ng-messages="timezoneForm[\'dialTimezone\'].$error" ng-show="timezoneForm[dialTimezone].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.TIMEZONE_REQUIRED">Timezone field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="ivrCampaign-detail-form-container amd md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.AMD">AMD</div>\n </div>\n <form name="amdForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.ivrCampaign.dialAMDActive" aria-label="AMDActive" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MOTIONDIALER.AMDACTIVE">AMDActive</span></md-switch>\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDACTIVE"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDINITIALSILENCE">AMDInitialSilence</label>\n <input type="number" name="dialAMDInitialSilence" ng-model="vm.ivrCampaign.dialAMDInitialSilence" min="0" value="2500" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDINITIALSILENCE"></span></div>\n <div ng-messages="amdForm[\'dialAMDInitialSilence\'].$error" ng-show="amdForm[\'dialAMDInitialSilence\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDINITIALSILENCE_REQUIRED">AMDInitialSilence field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDINITIALSILENCE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDInitialSilence must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDGREETING">AMDGreeting</label>\n <input type="number" name="dialAMDGreeting" ng-model="vm.ivrCampaign.dialAMDGreeting" min="0" value="1500" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDGREETING"></span></div>\n <div ng-messages="amdForm[\'dialAMDGreeting\'].$error" ng-show="amdForm[\'dialAMDGreeting\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDGREETING_REQUIRED">AMDGreeting field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDGREETING_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDGreeting must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDAFTERGREETINGSILENCE">AMDAfterGreetingSilence</label>\n <input type="number" name="dialAMDAfterGreetingSilence" ng-model="vm.ivrCampaign.dialAMDAfterGreetingSilence" min="0" value="800" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDAFTERGREETINGSILENCE"></span></div>\n <div ng-messages="amdForm[\'dialAMDAfterGreetingSilence\'].$error" ng-show="amdForm[\'dialAMDAfterGreetingSilence\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDAFTERGREETINGSILENCE_REQUIRED">AMDAfterGreetingSilence field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDAFTERGREETINGSILENCE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDAfterGreetingSilence must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDTOTALANALYSISTIME">AMDTotalAnalysisTime</label>\n <input type="number" name="dialAMDTotalAnalysisTime" ng-model="vm.ivrCampaign.dialAMDTotalAnalysisTime" min="0" value="5000" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDTOTALANALYSISTIME"></span></div>\n <div ng-messages="amdForm[\'dialAMDTotalAnalysisTime\'].$error" ng-show="amdForm[\'dialAMDTotalAnalysisTime\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDTOTALANALYSISTIME_REQUIRED">AMDTotalAnalysisTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDTOTALANALYSISTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDTotalAnalysisTime must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDMINWORDLENGTH">AMDMinWordLength</label>\n <input type="number" name="dialAMDMinWordLength" ng-model="vm.ivrCampaign.dialAMDMinWordLength" min="0" value="100" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDMINWORDLENGTH"></span></div>\n <div ng-messages="amdForm[\'dialAMDMinWordLength\'].$error" ng-show="amdForm[\'dialAMDMinWordLength\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDMINWORDLENGTH_REQUIRED">AMDMinWordLength field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDMINWORDLENGTH_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDMinWordLength must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDBETWEENWORDSSILENCE">AMDBetweenWordsSilence</label>\n <input type="number" name="dialAMDBetweenWordsSilence" ng-model="vm.ivrCampaign.dialAMDBetweenWordsSilence" min="0" value="50" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDBETWEENWORDSSILENCE"></span></div>\n <div ng-messages="amdForm[\'dialAMDBetweenWordsSilence\'].$error" ng-show="amdForm[\'dialAMDBetweenWordsSilence\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDBETWEENWORDSSILENCE_REQUIRED">AMDBetweenWordsSilence field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDBETWEENWORDSSILENCE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDBetweenWordsSilence must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDMAXIMUMNUMBEROFWORDS">AMDMaximumNumberOfWords</label>\n <input type="number" name="dialAMDMaximumNumberOfWords" ng-model="vm.ivrCampaign.dialAMDMaximumNumberOfWords" min="0" value="3" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDMAXIMUMNUMBEROFWORDS"></span></div>\n <div ng-messages="amdForm[\'dialAMDMaximumNumberOfWords\'].$error" ng-show="amdForm[\'dialAMDMaximumNumberOfWords\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMNUMBEROFWORDS_REQUIRED">AMDMaximumNumberOfWords field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMNUMBEROFWORDS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDMaximumNumberOfWords must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDSILENCETHRESHOLD">AMDSilenceThreshold</label>\n <input type="number" name="dialAMDSilenceThreshold" ng-model="vm.ivrCampaign.dialAMDSilenceThreshold" min="0" max="32767" value="256" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDSILENCETHRESHOLD"></span></div>\n <div ng-messages="amdForm[\'dialAMDSilenceThreshold\'].$error" ng-show="amdForm[\'dialAMDSilenceThreshold\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDSILENCETHRESHOLD_REQUIRED">AMDSilenceThreshold field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDSILENCETHRESHOLD_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDSilenceThreshold must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.AMDSILENCETHRESHOLD_MUST_BE_LESS_THAN_OR_EQUAL_TO">AMDSilenceThreshold must be a valid greater or equal than</span> <span>32767</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDMAXIMUMWORDLENGTH">AMDMaximumWordLength</label>\n <input type="number" name="dialAMDMaximumWordLength" ng-model="vm.ivrCampaign.dialAMDMaximumWordLength" min="0" value="5000" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDMAXIMUMWORDLENGTH"></span></div>\n <div ng-messages="amdForm[\'dialAMDMaximumWordLength\'].$error" ng-show="amdForm[\'dialAMDMaximumWordLength\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMWORDLENGTH_REQUIRED">AMDMaximumWordLength field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMWORDLENGTH_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDMaximumWordLength must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.HOPPERS">HOPPERS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="ivrCampaign-detail-form-container hopperstatistics md-background-bg md-whiteframe-1dp">\n <div ng-controller="IvrCampaignHopperStatisticsController as vm_hs" ng-init="vm_hs.init(vm.ivrCampaign)">\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.HOPPERWIDGET">Hoppers</span>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm_hs.init(vm.ivrCampaign)" aria-label="refresh Hopper" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{(vm_hs.total || 0) + (vm_hs.closed || 0)}}</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.TOTAL\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{vm_hs.fresh || 0}} ({{vm_hs.total ? ((((vm_hs.fresh || 0) * 100)/((vm_hs.closed || 0) + (vm_hs.total || 0))) | number: 2) : 0}}%)</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.FRESH\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{vm_hs.total ? (vm_hs.total - (vm_hs.fresh || 0)) : 0}} ({{vm_hs.total ? ((((vm_hs.total - (vm_hs.fresh || 0)) * 100)/((vm_hs.closed || 0) + (vm_hs.total || 0))) | number: 2) : 0}}%)</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.OPEN\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{vm_hs.closed ? (vm_hs.closed || 0) : 0}} ({{vm_hs.closed ? ((((vm_hs.closed) * 100)/(vm_hs.closed + (vm_hs.total || 0))) | number: 2) : 0}}%)</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.CLOSED\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n </div>\n\n </div>\n <div class="ivrCampaign-detail-form-container hoppers md-background-bg md-whiteframe-1dp">\n <div ng-controller="IvrCampaignHoppersController as vm_dc" ng-init="vm_dc.init(vm.ivrCampaign, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedIvrCampaignHoppers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.HOPPERS">Hoppers</span>\n <ms-search-bar on-search="vm_dc.getIvrCampaignHoppers()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm_dc.getIvrCampaignHoppers()" aria-label="refresh Hoppers" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedIvrCampaignHoppers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedIvrCampaignHoppers.length}} {{vm_dc.selectedIvrCampaignHoppers.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedIvrCampaignHoppers" csv-label="true" filename="ivrCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedIvrCampaignHoppers($event)" aria-label="delete selected" translate translate-attr-label="MOTIONDIALER.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedIvrCampaignHoppers" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getIvrCampaignHoppers">\n <tr md-row>\n <th md-column md-order-by="ContactId">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="phone">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </th>\n <th md-column md-order-by="countcongestionretry">\n {{ \'MOTIONDIALER.CONGESTION\' | translate }}\n </th>\n <th md-column md-order-by="countbusyretry">\n {{ \'MOTIONDIALER.BUSY\' | translate }}\n </th>\n <th md-column md-order-by="countnoanswerretry">\n {{ \'MOTIONDIALER.NOANSWER\' | translate }}\n </th>\n <th md-column md-order-by="countnosuchnumberretry">\n {{ \'MOTIONDIALER.NOSUCHNUMBER\' | translate }}\n </th>\n <th md-column md-order-by="countdropretry">\n {{ \'MOTIONDIALER.DROP\' | translate }}\n </th>\n <th md-column md-order-by="countabandonedretry">\n {{ \'MOTIONDIALER.ABANDONED\' | translate }}\n </th>\n <th md-column md-order-by="countmachineretry">\n {{ \'MOTIONDIALER.MACHINE\' | translate }}\n </th>\n <th md-column md-order-by="countagentrejectretry">\n {{ \'MOTIONDIALER.AGENTREJECT\' | translate }}\n </th>\n <th md-column md-order-by="scheduledat">\n {{ \'MOTIONDIALER.SCHEDULEDAT\' | translate }}\n </th>\n <th md-column md-order-by="priority">\n {{ \'MOTIONDIALER.PRIORITY\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="hopper" md-select-id="id" ng-repeat="hopper in vm_dc.ivrCampaignHoppers.rows">\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.ContactId}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell privacy ng-cloak>\n {{hopper.phone}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countcongestionretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countbusyretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countnoanswerretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countnosuchnumberretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countdropretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countabandonedretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countmachineretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countagentrejectretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{ hopper.scheduledat | formatdate }}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{ vm_dc.arraypriority[hopper.priority].option }} </td>\n\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" translate="MOTIONDIALER.EDIT_HOPPER">\n Edit Hopper\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(hopper, $event)" translate="MOTIONDIALER.DELETE_HOPPER">\n Delete Hopper\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.ivrCampaignHoppers.rows.length">\n <td md-cell colspan="15">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPER_AVAILABLE">No hopper available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.ivrCampaignHoppers.count}}" md-on-paginate="vm_dc.getIvrCampaignHoppers" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.HISTORY">HISTORY</span>\n </md-tab-label>\n <md-tab-body>\n <div class="ivrCampaign-detail-form-container hopperhistories md-background-bg md-whiteframe-1dp">\n <div ng-controller="IvrCampaignHopperHistoriesController as vm_dc" ng-init="vm_dc.init(vm.ivrCampaign, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedIvrCampaignHopperHistories.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.HOPPERHISTORIES">HopperHistories</span>\n <ms-search-bar on-search="vm_dc.getIvrCampaignHopperHistories()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm_dc.getIvrCampaignHopperHistories()" aria-label="refresh HopperHistories" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERHISTORIES">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedIvrCampaignHopperHistories.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedIvrCampaignHopperHistories.length}} {{vm_dc.selectedIvrCampaignHopperHistories.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedIvrCampaignHopperHistories" csv-label="true" filename="ivrCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedIvrCampaignHopperHistories" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getIvrCampaignHopperHistories">\n <tr md-row>\n <th md-column md-order-by="uniqueid">\n {{ \'MOTIONDIALER.UNIQUEID\' | translate }}\n </th>\n <th md-column md-order-by="ContactId">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="calleridnum">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </th>\n <th md-column md-order-by="calleridname">\n {{ \'MOTIONDIALER.NAME\' | translate }}\n </th>\n <th md-column md-order-by="statedesc">\n {{ \'MOTIONDIALER.STATUS\' | translate }}\n </th>\n <th md-column md-order-by="scheduledat">\n {{ \'MOTIONDIALER.SCHEDULEDAT\' | translate }}\n </th>\n <th md-column md-order-by="starttime">\n {{ \'MOTIONDIALER.STARTTIME\' | translate }}\n </th>\n <th md-column md-order-by="endtime">\n {{ \'MOTIONDIALER.ENDTIME\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="hopperHistory" md-select-id="id" ng-repeat="hopperHistory in vm_dc.ivrCampaignHopperHistories.rows">\n <td md-cell>\n {{hopperHistory.uniqueid}}\n </td>\n <td md-cell>\n {{hopperHistory.ContactId}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperHistory.calleridnum}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperHistory.calleridname}}\n </td>\n <td md-cell>\n {{hopperHistory.statedesc}}\n </td>\n <td md-cell>\n {{ hopperHistory.scheduledat | formatdate }}\n </td>\n <td md-cell>\n {{ hopperHistory.starttime | formatdate }}\n </td>\n <td md-cell>\n {{ hopperHistory.endtime | formatdate }}\n </td>\n <td md-cell class="actions">\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.ivrCampaignHopperHistories.rows.length">\n <td md-cell colspan="11">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPERHISTORY_AVAILABLE">No hopperhistory available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.ivrCampaignHopperHistories.count}}" md-on-paginate="vm_dc.getIvrCampaignHopperHistories" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.FINAL">FINAL</span>\n </md-tab-label>\n <md-tab-body>\n <div class="ivrCampaign-detail-form-container hopperfinals md-background-bg md-whiteframe-1dp">\n <div ng-controller="IvrCampaignHopperFinalsController as vm_dc" ng-init="vm_dc.init(vm.ivrCampaign, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedIvrCampaignHopperFinals.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.HOPPERFINALS">HopperFinals</span>\n <ms-search-bar on-search="vm_dc.getIvrCampaignHopperFinals()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm_dc.getIvrCampaignHopperFinals()" aria-label="refresh HopperFinals" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERFINALS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="vm_dc.countContactsIvrCampaignHopperFinal(vm_dc.query.id); $mdOpenMenu($event);">\n <md-icon md-font-icon="icon-backup-restore"></md-icon>\n <md-tooltip><span translate="MOTIONDIALER.RESTORECONTACTS"></span></md-tooltip>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(3)">\n <span translate="MOTIONDIALER.NOANSWER ">NoAnswer</span>\n <span class="badge">({{vm_dc.contacts.noAnswerContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(5)">\n <span translate="MOTIONDIALER.BUSY ">Busy</span>\n <span class="badge">({{vm_dc.contacts.busyContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(8)">\n <span translate="MOTIONDIALER.CONGESTION ">Congestion</span>\n <span class="badge">({{vm_dc.contacts.congestionContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(10)">\n <span translate="MOTIONDIALER.DROPPED ">Drop</span>\n <span class="badge">({{vm_dc.contacts.dropContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(11)">\n <span translate="MOTIONDIALER.ABANDONED ">Abandoned</span>\n <span class="badge">({{vm_dc.contacts.abandonedContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(22)">\n <span translate="MOTIONDIALER.RECALLFAILEDTIMEOUT">Recall</span>\n <span class="badge">({{vm_dc.contacts.reCallContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(0)">\n <span translate="MOTIONDIALER.NO_SUCH_NUMBER">NoSuchNumber</span>\n <span class="badge">({{vm_dc.contacts.noSuchContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(19)">\n <span translate="MOTIONDIALER.ANSWERING_MACHINE">AnsweringMachine</span>\n <span class="badge">({{vm_dc.contacts.answeringMachine}})</span>\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedIvrCampaignHopperFinals.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedIvrCampaignHopperFinals.length}} {{vm_dc.selectedIvrCampaignHopperFinals.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedIvrCampaignHopperFinals" csv-label="true" filename="ivrCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.moveSelectedIvrCampaignHopperFinals($event)" aria-label="move selected" translate translate-attr-label="MOTIONDIALER.MOVE_SELECTED">\n <md-icon md-font-icon="icon-restore"></md-icon>\n <md-tooltip><span translate="MOTIONDIALER.RESTORECONTACTS"></span></md-tooltip>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedIvrCampaignHopperFinals" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getIvrCampaignHopperFinals">\n <tr md-row>\n <th md-column md-order-by="uniqueid">\n {{ \'MOTIONDIALER.UNIQUEID\' | translate }}\n </th>\n <th md-column md-order-by="ContactId">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="calleridnum">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </th>\n <th md-column md-order-by="calleridname">\n {{ \'MOTIONDIALER.NAME\' | translate }}\n </th>\n <th md-column md-order-by="statedesc">\n {{ \'MOTIONDIALER.STATUS\' | translate }}\n </th>\n <th md-column md-order-by="countcongestionretry">\n {{ \'MOTIONDIALER.CONGESTION\' | translate }}\n </th>\n <th md-column md-order-by="countbusyretry">\n {{ \'MOTIONDIALER.BUSY\' | translate }}\n </th>\n <th md-column md-order-by="countnoanswerretry">\n {{ \'MOTIONDIALER.NOANSWER\' | translate }}\n </th>\n <th md-column md-order-by="countnosuchnumberretry">\n {{ \'MOTIONDIALER.NOSUCHNUMBER\' | translate }}\n </th>\n <th md-column md-order-by="countdropretry">\n {{ \'MOTIONDIALER.DROP\' | translate }}\n </th>\n <th md-column md-order-by="countabandonedretry">\n {{ \'MOTIONDIALER.ABANDONED\' | translate }}\n </th>\n <th md-column md-order-by="countmachineretry">\n {{ \'MOTIONDIALER.MACHINE\' | translate }}\n </th>\n <th md-column md-order-by="countagentrejectretry">\n {{ \'MOTIONDIALER.AGENTREJECT\' | translate }}\n </th>\n <th md-column md-order-by="starttime">\n {{ \'MOTIONDIALER.STARTTIME\' | translate }}\n </th>\n <th md-column md-order-by="endtime">\n {{ \'MOTIONDIALER.ENDTIME\' | translate }}\n </th>\n <th md-column md-order-by="disposition">\n {{ \'MOTIONDIALER.DISPOSITION\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="hopperFinal" md-select-id="id" ng-repeat="hopperFinal in vm_dc.ivrCampaignHopperFinals.rows">\n <td md-cell>\n {{hopperFinal.uniqueid}}\n </td>\n <td md-cell>\n {{hopperFinal.ContactId}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperFinal.calleridnum}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperFinal.calleridname}}\n </td>\n <td md-cell>\n {{hopperFinal.statedesc}}\n </td>\n <td md-cell>\n {{hopperFinal.countcongestionretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countbusyretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countnoanswerretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countnosuchnumberretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countdropretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countabandonedretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countmachineretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countagentrejectretry}}\n </td>\n <td md-cell>\n {{ hopperFinal.starttime | formatdate }}\n </td>\n <td md-cell>\n {{ hopperFinal.endtime | formatdate }}\n </td>\n <td md-cell>\n {{hopperFinal.disposition}}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveConfirm(hopperFinal, $event)" translate="MOTIONDIALER.MOVE_HOPPERFINAL">\n Move HopperFinal\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.ivrCampaignHopperFinals.rows.length">\n <td md-cell colspan="28">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPERFINAL_AVAILABLE">No hopperfinal available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.ivrCampaignHopperFinals.count}}" md-on-paginate="vm_dc.getIvrCampaignHopperFinals" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.BLACKLIST">BLACKLIST</span>\n </md-tab-label>\n <md-tab-body>\n <div class="ivrCampaign-detail-form-container hopperblacks md-background-bg md-whiteframe-1dp">\n <div ng-controller="IvrCampaignHopperBlacksController as vm_dc" ng-init="vm_dc.init(vm.ivrCampaign, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedIvrCampaignHopperBlacks.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.HOPPERBLACKS">HopperBlacks</span>\n <ms-search-bar on-search="vm_dc.getIvrCampaignHopperBlacks()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedIvrCampaignHopperBlacks.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedIvrCampaignHopperBlacks.length}} {{vm_dc.selectedIvrCampaignHopperBlacks.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedIvrCampaignHopperBlacks" csv-label="true" filename="ivrCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedIvrCampaignHopperBlacks" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getIvrCampaignHopperBlacks">\n <tr md-row>\n <th md-column md-order-by="ContactId">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="phone">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="hopperBlack" md-select-id="id" ng-repeat="hopperBlack in vm_dc.ivrCampaignHopperBlacks.rows">\n <td md-cell>\n {{hopperBlack.ContactId}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperBlack.phone}}\n </td>\n <td md-cell class="actions">\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.ivrCampaignHopperBlacks.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPERBLACK_AVAILABLE">No hopperblack available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.ivrCampaignHopperBlacks.count}}" md-on-paginate="vm_dc.getIvrCampaignHopperBlacks" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/motiondialer/views/ivrCampaigns/ivrCampaigns.html",'<div id="ivrCampaigns" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-fire" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="MOTIONDIALER.IVRCAMPAIGNS">IvrCampaigns</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="MOTIONDIALER.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedIvrCampaigns.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedIvrCampaigns =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="MOTIONDIALER.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-ivrCampaigns-count">\n <span>{{vm.selectedIvrCampaigns.length}}</span>\n <span translate="MOTIONDIALER.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="MOTIONDIALER.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllIvrCampaigns()" translate="MOTIONDIALER.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectIvrCampaigns()" translate="MOTIONDIALER.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedIvrCampaigns" csv-label="true" filename="ivrCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedIvrCampaigns($event)" aria-label="delete selected" translate translate-attr-label="MOTIONDIALER.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- IVRCAMPAIGN TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedIvrCampaigns" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getIvrCampaigns">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'MOTIONDIALER.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'MOTIONDIALER.NAME\' | translate }}</th>\n <th md-column md-order-by="active">{{ \'MOTIONDIALER.ACTIVE\' | translate }}</th>\n <th md-column md-order-by="TrunkId">{{ \'MOTIONDIALER.TRUNK\' | translate }}</th>\n <th md-column md-order-by="SquareProjectId">{{ \'MOTIONDIALER.CALLYSQUAREPROJECT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.ivrCampaigns.rows.length">\n <td md-cell colspan="6">\n <div layout="row" layout-align="center center">\n <span translate="MOTIONDIALER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="ivrCampaign" md-select-id="id" ng-repeat="ivrCampaign in vm.ivrCampaigns.rows">\n <td md-cell ng-if="ivrCampaign.userpic"><img class="avatar" alt="{{ivrCampaign.name}}" ng-src="api/users/{{ivrCampaign.id}}/avatar" /></td>\n <td md-cell ng-if="!ivrCampaign.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{ivrCampaign.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(ivrCampaign, ev) : vm.createOrEditIvrCampaign($event, ivrCampaign)" md-cell class="id ">{{ivrCampaign.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(ivrCampaign, ev) : vm.createOrEditIvrCampaign($event, ivrCampaign)" md-cell class="name ">{{ivrCampaign.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(ivrCampaign, ev) : vm.createOrEditIvrCampaign($event, ivrCampaign)" md-cell class="active ">\n <md-icon md-colors="{color: {{ivrCampaign.active ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{ivrCampaign.active ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(ivrCampaign, ev) : vm.createOrEditIvrCampaign($event, ivrCampaign)" md-cell class="TrunkId ">{{ (vm.trunks | filter : {\'id\':ivrCampaign.TrunkId} : true)[0].name }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(ivrCampaign, ev) : vm.createOrEditIvrCampaign($event, ivrCampaign)" md-cell class="SquareProjectId ">{{ (vm.projects | filter : {\'id\':ivrCampaign.SquareProjectId} : true)[0].name }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(ivrCampaign, $event )" translate="MOTIONDIALER.EDIT_IVRCAMPAIGN">\n Edit IvrCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.clonedialog(ivrCampaign, $event )" translate="MOTIONDIALER.CLONE_IVRCAMPAIGN">\n clone IvrCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.listadddialog(ivrCampaign, $event )" translate="MOTIONDIALER.LISTADD_IVRCAMPAIGN">\n listadd IvrCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.blacklistadddialog(ivrCampaign, $event )" translate="MOTIONDIALER.BLACKLISTADD_IVRCAMPAIGN">\n blacklistadd IvrCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(ivrCampaign, $event )" translate="MOTIONDIALER.DELETE_IVRCAMPAIGN">\n Delete IvrCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(ivrCampaign, $event )" translate="MOTIONDIALER.GOTOREALTIME_IVRCAMPAIGN">\n goToRealtime IvrCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.ivrCampaigns.count}}" md-on-paginate="vm.getIvrCampaigns" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / IVRCAMPAIGN TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD IVRCAMPAIGN BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-ivrCampaign-button" ng-click="vm.createOrEditIvrCampaign($event)" aria-label="add ivrCampaign" translate translate-attr-aria-label="MOTIONDIALER.ADD_IVRCAMPAIGN">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD IVRCAMPAIGN BUTTON --\x3e\n</div>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/create/dialog.html",'<md-dialog class="queueCampaign-dialog" aria-label="New QueueCampaign">\n <form name="queueCampaignForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.queueCampaign.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newQueueCampaign">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NAME"></span></div>\n <div ng-messages="queueCampaignForm[\'name\'].$error" ng-show="queueCampaignForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MOTIONDIALER.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.queueCampaign.dialActive" aria-label="Active"><span translate="MOTIONDIALER.ACTIVE">Active</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.TRUNK">Trunk</label>\n <md-select name="TrunkId" ng-model="vm.queueCampaign.TrunkId" required>\n <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks" ng-disabled="TrunkId.canSelect === false">{{ TrunkId.name }}</md-option>\n </md-select>\n <div ng-messages="queueCampaignForm[\'TrunkId\'].$error" ng-show="queueCampaignForm[\'TrunkId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.TRUNK_REQUIRED">Trunk field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod != \'preview\'" class="md-block">\n <label translate="MOTIONDIALER.INTERVAL">Interval</label>\n <md-select name="IntervalId" ng-model="vm.queueCampaign.IntervalId" required>\n <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval" ng-disabled="IntervalId.canSelect === false">{{ IntervalId.name }}</md-option>\n </md-select>\n <div ng-messages="queueCampaignForm[\'IntervalId\'].$error" ng-show="queueCampaignForm[\'IntervalId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.INTERVAL_REQUIRED">Interval field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CHECKDUPLICATE">CheckDuplicate</label>\n <md-select name="dialCheckDuplicateType" ng-model="vm.queueCampaign.dialCheckDuplicateType" required>\n\n <md-option ng-value="\'always\'"> {{ \'MOTIONDIALER.ALWAYS\' | translate }} </md-option>\n\n <md-option ng-value="\'never\'"> {{ \'MOTIONDIALER.NEVER\' | translate }} </md-option>\n\n <md-option ng-value="\'onlyIfOpen\'"> {{ \'MOTIONDIALER.ONLY_IF_OPEN\' | translate }} </md-option>\n </md-select>\n <div ng-messages="queueCampaignForm[\'dialCheckDuplicateType\'].$error" ng-show="queueCampaignForm[\'dialCheckDuplicateType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CHECKDUPLICATE_REQUIRED">CheckDuplicate field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.METHOD">Method</label>\n <md-select name="dialMethod" ng-model="vm.queueCampaign.dialMethod" required>\n <md-option ng-value="\'progressive\'">Progressive</md-option>\n <md-option ng-value="\'power\'">PowerDialing</md-option>\n <md-option ng-value="\'predictive\'">Predictive</md-option>\n <md-option ng-value="\'preview\'">Preview</md-option>\n <md-option ng-value="\'booked\'">BookedProgressive</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.METHOD"></span></div>\n <div ng-messages="queueCampaignForm[\'dialMethod\'].$error" ng-show="queueCampaignForm[\'dialMethod\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.METHOD_REQUIRED">Method field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod == \'power\'" class="md-block">\n <span translate="MOTIONDIALER.POWERLEVEL">PowerLevel</span>\n <div class="hint"><span translate="MOTIONDIALER.HELP.POWERLEVEL"></span></div>\n <md-slider md-discrete flex ng-model="vm.queueCampaign.dialPowerLevel" min="1" max="10" step="0.1" class="md-accent"></md-slider>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod == \'predictive\'" class="md-block">\n <label translate="MOTIONDIALER.PREDICTIVEOPTIMIZATION">PredictiveOptimization</label>\n <md-select name="dialPredictiveOptimization" ng-model="vm.queueCampaign.dialPredictiveOptimization">\n\n <md-option ng-value="\'agentBusyFactor\'"> {{ \'MOTIONDIALER.AGENTBUSYFACTOR\' | translate }} </md-option>\n\n <md-option ng-value="\'dropRate\'"> {{ \'MOTIONDIALER.DROPRATE\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.PREDICTIVEOPTIMIZATION"></span></div>\n <div ng-messages="queueCampaignForm[\'dialPredictiveOptimization\'].$error" ng-show="queueCampaignForm[\'dialPredictiveOptimization\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.PREDICTIVEOPTIMIZATION_REQUIRED">PredictiveOptimization field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod == \'predictive\'" class="md-block">\n <span translate="MOTIONDIALER.PREDICTIVEOPTIMIZATIONPERCENTAGE">PredictiveOptimizationPercentage</span>\n <div class="hint"><span translate="MOTIONDIALER.HELP.PREDICTIVEOPTIMIZATIONPERCENTAGE"></span></div>\n <md-slider md-discrete flex ng-model="vm.queueCampaign.dialPredictiveOptimizationPercentage" min="1" max="95" step="0.1" class="md-accent"></md-slider>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod == \'predictive\'" class="md-block">\n <span translate="MOTIONDIALER.PREDICTIVEINTERVAL">PredictiveInterval</span>\n <div class="hint"><span translate="MOTIONDIALER.HELP.PREDICTIVEINTERVAL"></span></div>\n <md-slider md-discrete flex ng-model="vm.queueCampaign.dialPredictiveInterval" min="5" max="30" step="1" class="md-accent"></md-slider>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod != \'preview\'" class="md-block">\n <label translate="MOTIONDIALER.MAXCONCURRENTCALLS">MaxConcurrentCalls</label>\n <input type="number" name="dialLimitQueue" ng-model="vm.queueCampaign.dialLimitQueue" min="0" max="9999" value="0" ng-required="true">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.MAXCONCURRENTCALLS"></span></div>\n <div ng-messages="queueCampaignForm[\'dialLimitQueue\'].$error" ng-show="queueCampaignForm[\'dialLimitQueue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MAXCONCURRENTCALLS_REQUIRED">MaxConcurrentCalls field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.MAXCONCURRENTCALLS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MaxConcurrentCalls must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.MAXCONCURRENTCALLS_MUST_BE_LESS_THAN_OR_EQUAL_TO">MaxConcurrentCalls must be a valid greater or equal than</span> <span>9999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.QUEUETIMEOUT">QueueTimeout</label>\n <input type="number" name="dialQueueTimeout" ng-model="vm.queueCampaign.dialQueueTimeout" min="1" max="999" value="3" ng-required="true">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.QUEUETIMEOUT"></span></div>\n <div ng-messages="queueCampaignForm[\'dialQueueTimeout\'].$error" ng-show="queueCampaignForm[\'dialQueueTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.QUEUETIMEOUT_REQUIRED">QueueTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.QUEUETIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">QueueTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.QUEUETIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">QueueTimeout must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.AGENTTIMEOUT">AgentTimeout</label>\n <input type="number" name="timeout" ng-model="vm.queueCampaign.timeout" min="0" value="3" ng-required="true">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AGENTTIMEOUT"></span></div>\n <div ng-messages="queueCampaignForm[\'timeout\'].$error" ng-show="queueCampaignForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AGENTTIMEOUT_REQUIRED">AgentTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AGENTTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AgentTimeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.queueCampaign.description">\n\n <div ng-messages="queueCampaignForm[\'description\'].$error" ng-show="queueCampaignForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newQueueCampaign" ng-click="vm.saveQueueCampaign()" class="send-button md-accent md-raised" ng-disabled="queueCampaignForm.$invalid || queueCampaignForm.$pristine" aria-label="SAVE" translate="MOTIONDIALER.SAVE" translate-attr-aria-label="MOTIONDIALER.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newQueueCampaign" ng-click="vm.addNewQueueCampaign()" class="send-button md-accent md-raised" ng-disabled="queueCampaignForm.$invalid" aria-label="ADD" translate="MOTIONDIALER.ADD_QUEUECAMPAIGN" translate-attr-aria-label="MOTIONDIALER.ADD_QUEUECAMPAIGN">\n ADD QUEUECAMPAIGN\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newQueueCampaign" ng-click="vm.deleteQueueCampaign($event)" aria-label="DELETE" translate translate-attr-aria-label="MOTIONDIALER.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="MOTIONDIALER.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/edit/agentadd/agentadd.html",'<md-dialog class="queueCampaign-dialog" aria-label="queueCampaign" ng-init="vm.onInit()">\n <form name="queueCampaignForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="MOTIONDIALER.AGENTADD_QUEUECAMPAIGN">Add Agent to queueCampaign</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <md-input-container flex class="no-margin">\n <label translate="MOTIONDIALER.PENALTY">Penalty</label>\n <input name="penalty" type="number" ng-model="vm.penalty" min="0" placeholder="0" required onkeypress="return event.charCode >= 48 && event.charCode <= 57 && this.value.length < 3">\n <div ng-messages="queueCampaignForm.penalty.$error" role="alert" multiple>\n <div ng-message="required">\n <span>{{ \'VOICE.ERRORS.PENALTY_REQUIRED\' | translate }}</span>\n </div>\n </div>\n </md-input-container>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit" add-disabled="vm.penalty === undefined"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/edit/blacklistadd/blacklistadd.html",'<md-dialog class="queueCampaign-dialog" aria-label="queueCampaign" ng-init="vm.onInit()">\n <form name="queueCampaignForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="MOTIONDIALER.BLACKLISTADD_QUEUECAMPAIGN">Add List in QUEUECAMPAIGN</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect ng-hide="vm.loading" options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n <div ng-hide="!vm.loading" layout-fill style="min-height: 397px;" layout="row" layout-sm="column" layout-align="center center">\n <md-progress-circular class="md-primary md-hue-1" md-diameter="96"></md-progress-circular>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveLists()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/edit/clone/clone.html",'<md-dialog class="queueCampaign-dialog" aria-label="Clone QueueCampaign">\n <form name="queueCampaignForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.queueCampaign.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newQueueCampaign">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NAME"></span></div>\n <div ng-messages="queueCampaignForm[\'name\'].$error" ng-show="queueCampaignForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MOTIONDIALER.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.queueCampaign.dialActive" aria-label="Active"><span translate="MOTIONDIALER.ACTIVE">Active</span></md-switch>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <md-button type="submit" ng-click="vm.cloneQueueCampaign()" class="send-button md-accent md-raised" ng-disabled="queueCampaignForm.$invalid" aria-label="CLONE" translate="MOTIONDIALER.CLONE_QUEUECAMPAIGN" translate-attr-aria-label="MOTIONDIALER.CLONE_QUEUECAMPAIGN">\n CLONE QUEUECAMPAIGN\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/edit/hoppers/dialog.html",'<md-dialog class="hopper-dialog" aria-label="New Hopper">\n <form name="hopperForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <div class="md-block">\n <label translate="MOTIONDIALER.SCHEDULEDAT">ScheduledAt</label>\n <md-content layout="row" class="md-padding">\n <div flex class="md-block">\n <mdp-date-picker mdp-open-on-click name="scheduledatDate" mdp-placeholder="Date" mdp-format="YYYY-MM-DD" ng-model="vm.hopper.scheduledat" ng-init="vm.hopper.scheduledat = vm.getDateFromString(vm.hopper.scheduledat)">\n <div ng-messages="hopperForm.dateRangeFrom.$error" ng-show="hopperForm.dateRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DATE_REQUIRED">Date is required</span>\n </div>\n <div ng-message="format">\n <span translate="MOTIONDIALER.ERRORS.DATE_INVALID">Date is invalid</span>\n </div>\n </div>\n </mdp-date-picker>\n </div>\n <div flex class="md-block">\n <mdp-time-picker mdp-open-on-click name="scheduledatTime" mdp-placeholder="Time" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.hopper.scheduledat" ng-init="vm.hopper.scheduledat = vm.getDateFromString(vm.hopper.scheduledat)">\n <div ng-messages="hopperForm.timeRangeFrom.$error" ng-show="hopperForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.TIME_REQUIRED">Time is required</span>\n </div>\n <div ng-message="format">\n <span translate="MOTIONDIALER.ERRORS.TIME_INVALID">Time is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </md-content>\n </div>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.PRIORITY">Priority</label>\n <md-select name="priority" ng-model="vm.hopper.priority">\n <md-option ng-value="\'4\'">Highest</md-option>\n <md-option ng-value="\'3\'">High</md-option>\n <md-option ng-value="\'2\'">Medium</md-option>\n <md-option ng-value="\'1\'">Low</md-option>\n <md-option ng-value="\'0\'">Lowest</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.PRIORITY"></span></div>\n <div ng-messages="hopperForm[\'priority\'].$error" ng-show="hopperForm[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.hopper.recallme" aria-label="RecallAgent"><span translate="MOTIONDIALER.RECALLAGENT">RecallAgent</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.hopper.recallme" class="md-block">\n <label translate="MOTIONDIALER.AGENT">Agent</label>\n <md-select name="UserId" ng-model="vm.hopper.UserId" required>\n <md-option ng-value="UserId.id" ng-repeat="UserId in vm.agents" ng-disabled="UserId.canSelect === false">{{ UserId.name }}</md-option>\n </md-select>\n <div ng-messages="hopperForm[\'UserId\'].$error" ng-show="hopperForm[\'UserId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newHopper" ng-click="vm.saveHopper()" class="send-button md-accent md-raised" ng-disabled="hopperForm.$invalid || hopperForm.$pristine" aria-label="SAVE" translate="MOTIONDIALER.SAVE" translate-attr-aria-label="MOTIONDIALER.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newHopper" ng-click="vm.addNewHopper()" class="send-button md-accent md-raised" ng-disabled="hopperForm.$invalid" aria-label="ADD" translate="MOTIONDIALER.ADD_HOPPER" translate-attr-aria-label="MOTIONDIALER.ADD_HOPPER">\n ADD HOPPER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newHopper" ng-click="vm.deleteHopper($event)" aria-label="DELETE" translate translate-attr-aria-label="MOTIONDIALER.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="MOTIONDIALER.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/edit/listadd/listadd.html",'<md-dialog class="queueCampaign-dialog" aria-label="queueCampaign" ng-init="vm.onInit()">\n <form name="queueCampaignForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="MOTIONDIALER.LISTADD_QUEUECAMPAIGN">Add List in QUEUECAMPAIGN</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect ng-hide="vm.loading" options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n <div ng-hide="!vm.loading" layout-fill style="min-height: 397px;" layout="row" layout-sm="column" layout-align="center center">\n <md-progress-circular class="md-primary md-hue-1" md-diameter="96"></md-progress-circular>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveLists()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/edit/resetlist/resetlist.html",'<md-dialog class="queueCampaign-dialog" aria-label="queueCampaign">\n <form name="queueCampaignForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="MOTIONDIALER.RESETLIST ">Reset List</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-disabled="vm.loading" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ng-hide="vm.loading">\n <div layout="row" layout-wrap flex>\n <div flex-xs flex="50">\n <md-checkbox aria-label="Select All" ng-checked="vm.isChecked()" md-indeterminate="vm.isIndeterminate()" ng-click="vm.toggleAll()">\n <span ng-if="vm.isChecked()" translate="MOTIONDIALER.UNSELECTALL"></span>\n <span ng-if="!vm.isChecked()" translate="MOTIONDIALER.SELECTALL"></span>\n </md-checkbox>\n </div>\n <div flex-xs flex="50">\n </div>\n <div flex="{{vm.items.length > 10 ? 50 : 100 }}" ng-repeat="item in vm.items">\n <md-checkbox ng-checked="vm.exists(item, vm.selected)" ng-click="vm.toggle(item, vm.selected)">\n {{ item.name | limitTo:40 }}\n </md-checkbox>\n </div>\n </div>\n </md-dialog-content>\n <md-dialog-actions ng-hide="vm.loading" layout="row" layout-align="end center">\n <div>\n </div>\n <md-button type="submit" ng-click="vm.listSelected()" class="send-button md-accent md-raised" ng-disabled="vm.loading" aria-label="RESET" translate="MOTIONDIALER.RESET" translate-attr-aria-label="MOTIONDIALER.RESET">\n SAVE\n </md-button>\n </md-dialog-actions>\n <div ng-hide="!vm.loading" layout-fill style="min-height: 397px;" layout="row" layout-sm="column" layout-align="center center">\n <md-progress-circular class="md-primary md-hue-1" md-diameter="96"></md-progress-circular>\n </div>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/edit/teamadd/teamadd.html",'<md-dialog class="queueCampaign-dialog" aria-label="queueCampaign" ng-init="vm.onInit()">\n <form name="queueCampaignForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="MOTIONDIALER.TEAMS_ASSOCIATION">Teams Association</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <md-input-container flex class="no-margin">\n <label translate="MOTIONDIALER.PENALTY">Penalty</label>\n <input name="penalty" type="number" ng-model="vm.penalty" min="0" placeholder="0" required onkeypress="return event.charCode >= 48 && event.charCode <= 57 && this.value.length < 3">\n <div ng-messages="queueCampaignForm.penalty.$error" role="alert" multiple>\n <div ng-message="required">\n <span>{{ \'VOICE.ERRORS.PENALTY_REQUIRED\' | translate }}</span>\n </div>\n </div>\n </md-input-container>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit" add-disabled="vm.penalty === undefined"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/edit/view.html",'<div id="motiondialer-queueCampaign" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-queueCampaigns-button md-icon-button" aria-label="Go to queueCampaigns" ng-click="vm.gotoQueueCampaigns()" translate translate-attr-aria-label="MOTIONDIALER.GO_TO_QUEUECAMPAIGNS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="queueCampaign-image" hide-xs>\n <img ng-src="assets/images/business/queueCampaigns.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.queueCampaign.id}}\n <span ng-if="vm.queueCampaign.name">{{vm.queueCampaign.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="MOTIONDIALER.CREATED_AT"></span> <span>{{vm.queueCampaign.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.clonedialog(vm.queueCampaign, $event)" class="md-fab md-green-500-bg md-icon-button" aria-label="clone">\n <md-tooltip><span translate="MOTIONDIALER.CLONE_QUEUECAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-content-duplicate"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.listadddialog(vm.queueCampaign, $event)" class="md-fab md-green-500-bg md-icon-button" aria-label="listadd">\n <md-tooltip><span translate="MOTIONDIALER.LISTADD_QUEUECAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-format-list-numbers"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.blacklistadddialog(vm.queueCampaign, $event)" class="md-fab md-warn md-icon-button" aria-label="blacklistadd">\n <md-tooltip><span translate="MOTIONDIALER.BLACKLISTADD_QUEUECAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-block-helper"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.teamadddialog(vm.queueCampaign, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n <md-tooltip><span translate="MOTIONDIALER.TEAMADD_QUEUECAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.queueCampaign, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="MOTIONDIALER.AGENTADD_QUEUECAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-plus"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.resetlistdialog(vm.queueCampaign, $event)" class="md-fab md-warn md-icon-button" aria-label="resetlist">\n <md-tooltip><span translate="MOTIONDIALER.RESETLIST_QUEUECAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-restore"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.gotogoto(vm.queueCampaign, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n <md-tooltip><span translate="MOTIONDIALER.GOTO_QUEUECAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-cast"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveQueueCampaign()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (campaignForm.$invalid) || (queueForm.$invalid) || (originateForm.$invalid) || (globalForm.$invalid) || (congestionForm.$invalid) || (busyForm.$invalid) || (noanswerForm.$invalid) || (nosuchnumberForm.$invalid) || (dropForm.$invalid) || (abandonedForm.$invalid) || (machineForm.$invalid) || (agentrejectForm.$invalid) || (advancedForm.$invalid) || (advancedpreviewForm.$invalid) || (thresholdsForm.$invalid) || (recallmeForm.$invalid) || (globalintervalForm.$invalid) || (timezoneForm.$invalid) || (amdForm.$invalid) || (hopperStatisticsForm.$invalid) || (hoppersForm.$invalid) || (hopperHistoriesForm.$invalid) || (hopperFinalsForm.$invalid) || (hopperBlacksForm.$invalid)" translate="MOTIONDIALER.SAVE" translate-attr-aria-label="MOTIONDIALER.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="queueCampaign-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.queueCampaign.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NAME"></span></div>\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MOTIONDIALER.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.queueCampaign.dialActive" aria-label="Active" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MOTIONDIALER.ACTIVE">Active</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.TRUNK">Trunk</label>\n <md-select name="TrunkId" ng-model="vm.queueCampaign.TrunkId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks" ng-disabled="TrunkId.canSelect === false">{{ TrunkId.name }}</md-option>\n </md-select>\n <div ng-messages="generalForm[\'TrunkId\'].$error" ng-show="generalForm[\'TrunkId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.TRUNK_REQUIRED">Trunk field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.BACKUPTRUNK">BackupTrunk</label>\n <md-select name="TrunkBackupId" ng-model="vm.queueCampaign.TrunkBackupId" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">None</md-option>\n <md-option ng-value="TrunkBackupId.id" ng-repeat="TrunkBackupId in vm.trunks" ng-disabled="TrunkBackupId.canSelect === false">{{ TrunkBackupId.name }}</md-option>\n </md-select>\n <div ng-messages="generalForm[\'TrunkBackupId\'].$error" ng-show="generalForm[\'TrunkBackupId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.BACKUPTRUNK_REQUIRED">BackupTrunk field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod != \'preview\'" class="md-block">\n <label translate="MOTIONDIALER.INTERVAL">Interval</label>\n <md-select name="IntervalId" ng-model="vm.queueCampaign.IntervalId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval" ng-disabled="IntervalId.canSelect === false">{{ IntervalId.name }}</md-option>\n </md-select>\n <div ng-messages="generalForm[\'IntervalId\'].$error" ng-show="generalForm[\'IntervalId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.INTERVAL_REQUIRED">Interval field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CHECKDUPLICATE">CheckDuplicate</label>\n <md-select name="dialCheckDuplicateType" ng-model="vm.queueCampaign.dialCheckDuplicateType" required ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'always\'"> {{ \'MOTIONDIALER.ALWAYS\' | translate }} </md-option>\n\n <md-option ng-value="\'never\'"> {{ \'MOTIONDIALER.NEVER\' | translate }} </md-option>\n\n <md-option ng-value="\'onlyIfOpen\'"> {{ \'MOTIONDIALER.ONLY_IF_OPEN\' | translate }} </md-option>\n </md-select>\n <div ng-messages="generalForm[\'dialCheckDuplicateType\'].$error" ng-show="generalForm[\'dialCheckDuplicateType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CHECKDUPLICATE_REQUIRED">CheckDuplicate field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CUTDIGIT">CutDigit</label>\n <input type="number" name="dialCutDigit" ng-model="vm.queueCampaign.dialCutDigit" min="0" max="15" value="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'dialCutDigit\'].$error" ng-show="generalForm[\'dialCutDigit\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CUTDIGIT_REQUIRED">CutDigit field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CUTDIGIT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CutDigit must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CUTDIGIT_MUST_BE_LESS_THAN_OR_EQUAL_TO">CutDigit must be a valid greater or equal than</span> <span>15</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.queueCampaign.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.CAMPAIGN">CAMPAIGN</span>\n </md-tab-label>\n <md-tab-body>\n <div class="queueCampaign-detail-form-container campaign md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.CAMPAIGN">CAMPAIGN</div>\n </div>\n <form name="campaignForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.METHOD">Method</label>\n <md-select name="dialMethod" ng-model="vm.queueCampaign.dialMethod" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'progressive\'">Progressive</md-option>\n <md-option ng-value="\'power\'">PowerDialing</md-option>\n <md-option ng-value="\'predictive\'">Predictive</md-option>\n <md-option ng-value="\'preview\'">Preview</md-option>\n <md-option ng-value="\'booked\'">BookedProgressive</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.METHOD"></span></div>\n <div ng-messages="campaignForm[\'dialMethod\'].$error" ng-show="campaignForm[\'dialMethod\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.METHOD_REQUIRED">Method field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod == \'power\'" class="md-block">\n <span translate="MOTIONDIALER.POWERLEVEL">PowerLevel</span>\n <div class="hint"><span translate="MOTIONDIALER.HELP.POWERLEVEL"></span></div>\n <md-slider md-discrete flex ng-model="vm.queueCampaign.dialPowerLevel" min="1" max="10" step="0.1" class="md-accent"></md-slider>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod == \'predictive\'" class="md-block">\n <label translate="MOTIONDIALER.PREDICTIVEOPTIMIZATION">PredictiveOptimization</label>\n <md-select name="dialPredictiveOptimization" ng-model="vm.queueCampaign.dialPredictiveOptimization" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'agentBusyFactor\'"> {{ \'MOTIONDIALER.AGENTBUSYFACTOR\' | translate }} </md-option>\n\n <md-option ng-value="\'dropRate\'"> {{ \'MOTIONDIALER.DROPRATE\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.PREDICTIVEOPTIMIZATION"></span></div>\n <div ng-messages="campaignForm[\'dialPredictiveOptimization\'].$error" ng-show="campaignForm[\'dialPredictiveOptimization\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.PREDICTIVEOPTIMIZATION_REQUIRED">PredictiveOptimization field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod == \'predictive\'" class="md-block">\n <span translate="MOTIONDIALER.PREDICTIVEOPTIMIZATIONPERCENTAGE">PredictiveOptimizationPercentage</span>\n <div class="hint"><span translate="MOTIONDIALER.HELP.PREDICTIVEOPTIMIZATIONPERCENTAGE"></span></div>\n <md-slider md-discrete flex ng-model="vm.queueCampaign.dialPredictiveOptimizationPercentage" min="1" max="95" step="0.1" class="md-accent"></md-slider>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod == \'predictive\'" class="md-block">\n <span translate="MOTIONDIALER.PREDICTIVEINTERVAL">PredictiveInterval</span>\n <div class="hint"><span translate="MOTIONDIALER.HELP.PREDICTIVEINTERVAL"></span></div>\n <md-slider md-discrete flex ng-model="vm.queueCampaign.dialPredictiveInterval" min="5" max="30" step="1" class="md-accent"></md-slider>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod != \'preview\'" class="md-block">\n <label translate="MOTIONDIALER.MAXCONCURRENTCALLS">MaxConcurrentCalls</label>\n <input type="number" name="dialLimitQueue" ng-model="vm.queueCampaign.dialLimitQueue" min="0" max="9999" value="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.MAXCONCURRENTCALLS"></span></div>\n <div ng-messages="campaignForm[\'dialLimitQueue\'].$error" ng-show="campaignForm[\'dialLimitQueue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MAXCONCURRENTCALLS_REQUIRED">MaxConcurrentCalls field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.MAXCONCURRENTCALLS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MaxConcurrentCalls must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.MAXCONCURRENTCALLS_MUST_BE_LESS_THAN_OR_EQUAL_TO">MaxConcurrentCalls must be a valid greater or equal than</span> <span>9999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.AGENTTIMEOUT">AgentTimeout</label>\n <input type="number" name="timeout" ng-model="vm.queueCampaign.timeout" min="0" value="3" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AGENTTIMEOUT"></span></div>\n <div ng-messages="campaignForm[\'timeout\'].$error" ng-show="campaignForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AGENTTIMEOUT_REQUIRED">AgentTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AGENTTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AgentTimeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="queueCampaign-detail-form-container queue md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.QUEUE">QUEUE</div>\n </div>\n <form name="queueForm" novalidate>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.QUEUEOPTIONS">QueueOptions</label>\n <input type="text" name="dialQueueOptions" ng-model="vm.queueCampaign.dialQueueOptions" value="tTxX" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="queueForm[\'dialQueueOptions\'].$error" ng-show="queueForm[\'dialQueueOptions\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.QUEUEOPTIONS_REQUIRED">QueueOptions field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.QUEUETIMEOUT">QueueTimeout</label>\n <input type="number" name="dialQueueTimeout" ng-model="vm.queueCampaign.dialQueueTimeout" min="1" max="999" value="3" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.QUEUETIMEOUT"></span></div>\n <div ng-messages="queueForm[\'dialQueueTimeout\'].$error" ng-show="queueForm[\'dialQueueTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.QUEUETIMEOUT_REQUIRED">QueueTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.QUEUETIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">QueueTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.QUEUETIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">QueueTimeout must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'booked\' || vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.queueCampaign.strategy" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'rrmemory\'">Round Robin Memory</md-option>\n <md-option ng-value="\'roundrobin\'" ng-if="vm.queueCampaign.dialMethod === \'booked\'">Round Robin</md-option>\n <md-option ng-value="\'leastrecent\'" ng-if="vm.queueCampaign.dialMethod !== \'booked\'">Least Recent</md-option>\n <md-option ng-value="\'fewestcalls\'" ng-if="vm.queueCampaign.dialMethod !== \'booked\'">Fewest Calls</md-option>\n <md-option ng-value="\'random\'" ng-if="vm.queueCampaign.dialMethod !== \'booked\'">Random</md-option>\n <md-option ng-value="\'linear\'" ng-if="vm.queueCampaign.dialMethod !== \'booked\'">Linear</md-option>\n <md-option ng-value="\'wrandom\'" ng-if="vm.queueCampaign.dialMethod !== \'booked\'">Weight Random</md-option>\n </md-select>\n <div ng-messages="queueForm[\'strategy\'].$error" ng-show="queueForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.RETRY">Retry</label>\n <input type="number" name="retry" ng-model="vm.queueCampaign.retry" min="0" value="3" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.RETRY"></span></div>\n <div ng-messages="queueForm[\'retry\'].$error" ng-show="queueForm[\'retry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.RETRY_REQUIRED">Retry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.RETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Retry must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.WRAPUPTIME">WrapupTime</label>\n <input type="number" name="wrapuptime" ng-model="vm.queueCampaign.wrapuptime" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.WRAPUPTIME"></span></div>\n <div ng-messages="queueForm[\'wrapuptime\'].$error" ng-show="queueForm[\'wrapuptime\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.WRAPUPTIME_REQUIRED">WrapupTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.WRAPUPTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WrapupTime must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.WEIGHT">Weight</label>\n <input type="number" name="weight" ng-model="vm.queueCampaign.weight" min="0" value="1" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.WEIGHT"></span></div>\n <div ng-messages="queueForm[\'weight\'].$error" ng-show="queueForm[\'weight\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.WEIGHT_REQUIRED">Weight field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.WEIGHT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Weight must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.MUSICONHOLD">MusicOnHold</label>\n <md-select name="musiconhold" ng-model="vm.queueCampaign.musiconhold" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="musiconhold.name" ng-repeat="musiconhold in vm.musiconholds" ng-disabled="musiconhold.canSelect === false">{{ musiconhold.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.MUSICONHOLD"></span></div>\n <div ng-messages="queueForm[\'musiconhold\'].$error" ng-show="queueForm[\'musiconhold\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MUSICONHOLD_REQUIRED">MusicOnHold field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.CALLYSQUAREPROJECT">CallySquareProject</label>\n <md-select name="dialQueueProject" ng-model="vm.queueCampaign.dialQueueProject" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">None</md-option>\n <md-option ng-value="dialQueueProject.name" ng-repeat="dialQueueProject in vm.projects" ng-disabled="dialQueueProject.canSelect === false">{{ dialQueueProject.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.CALLYSQUAREPROJECT"></span></div>\n <div ng-messages="queueForm[\'dialQueueProject\'].$error" ng-show="queueForm[\'dialQueueProject\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CALLYSQUAREPROJECT_REQUIRED">CallySquareProject field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.CALLYSQUAREPROJECT2">CallySquareProject2</label>\n <md-select name="dialQueueProject2" ng-model="vm.queueCampaign.dialQueueProject2" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">None</md-option>\n <md-option ng-value="dialQueueProject2.name" ng-repeat="dialQueueProject2 in vm.projects" ng-disabled="dialQueueProject2.canSelect === false">{{ dialQueueProject2.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.CALLYSQUAREPROJECT2"></span></div>\n <div ng-messages="queueForm[\'dialQueueProject2\'].$error" ng-show="queueForm[\'dialQueueProject2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CALLYSQUAREPROJECT2_REQUIRED">CallySquareProject2 field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'preview\' || vm.queueCampaign.dialMethod === \'booked\'" class="md-block">\n <label translate="MOTIONDIALER.CALLYSQUAREPROJECTPREVIEW">CallySquareProjectPreview</label>\n <md-select name="dialQueueProject" ng-model="vm.queueCampaign.dialQueueProject" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">None</md-option>\n <md-option ng-value="dialQueueProject.name" ng-repeat="dialQueueProject in vm.projects" ng-disabled="dialQueueProject.canSelect === false">{{ dialQueueProject.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.CALLYSQUAREPROJECTPREVIEW"></span></div>\n <div ng-messages="queueForm[\'dialQueueProject\'].$error" ng-show="queueForm[\'dialQueueProject\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CALLYSQUAREPROJECTPREVIEW_REQUIRED">CallySquareProjectPreview field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'preview\' || vm.queueCampaign.dialMethod === \'booked\'" class="md-block">\n <label translate="MOTIONDIALER.CALLYSQUAREPROJECTPREVIEW2">CallySquareProjectPreview2</label>\n <md-select name="dialQueueProject2" ng-model="vm.queueCampaign.dialQueueProject2" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">None</md-option>\n <md-option ng-value="dialQueueProject2.name" ng-repeat="dialQueueProject2 in vm.projects" ng-disabled="dialQueueProject2.canSelect === false">{{ dialQueueProject2.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.CALLYSQUAREPROJECTPREVIEW2"></span></div>\n <div ng-messages="queueForm[\'dialQueueProject2\'].$error" ng-show="queueForm[\'dialQueueProject2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CALLYSQUAREPROJECTPREVIEW2_REQUIRED">CallySquareProjectPreview2 field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialQueueProject2 && (vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\')" class="md-block">\n <md-switch ng-model="vm.queueCampaign.dialAgiAfterHangupAgent" aria-label="RunIfHangupAgent" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MOTIONDIALER.RUNIFHANGUPAGENT">RunIfHangupAgent</span></md-switch>\n <div class="hint"><span translate="MOTIONDIALER.HELP.RUNIFHANGUPAGENT"></span></div>\n </md-input-container>\n\n </form>\n </div>\n <div class="queueCampaign-detail-form-container originate md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.ORIGINATE">ORIGINATE</div>\n </div>\n <form name="originateForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.ORIGINATECALLERIDNAME">OriginateCallerIdName</label>\n <input type="text" name="dialOriginateCallerIdName" ng-model="vm.queueCampaign.dialOriginateCallerIdName" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ORIGINATECALLERIDNAME"></span></div>\n <div ng-messages="originateForm[\'dialOriginateCallerIdName\'].$error" ng-show="originateForm[\'dialOriginateCallerIdName\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATECALLERIDNAME_REQUIRED">OriginateCallerIdName field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.ORIGINATECALLERIDNUMBER">OriginateCallerIdNumber</label>\n <input type="text" name="dialOriginateCallerIdNumber" ng-model="vm.queueCampaign.dialOriginateCallerIdNumber" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ORIGINATECALLERIDNUMBER"></span></div>\n <div ng-messages="originateForm[\'dialOriginateCallerIdNumber\'].$error" ng-show="originateForm[\'dialOriginateCallerIdNumber\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATECALLERIDNUMBER_REQUIRED">OriginateCallerIdNumber field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.RANDOMLASTDIGITCALLERIDNUMBER">RandomLastDigitCallerIdNumber</label>\n <input type="number" name="dialRandomLastDigitCallerIdNumber" ng-model="vm.queueCampaign.dialRandomLastDigitCallerIdNumber" min="0" max="15" value="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.RANDOMLASTDIGITCALLERIDNUMBER"></span></div>\n <div ng-messages="originateForm[\'dialRandomLastDigitCallerIdNumber\'].$error" ng-show="originateForm[\'dialRandomLastDigitCallerIdNumber\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.RANDOMLASTDIGITCALLERIDNUMBER_REQUIRED">RandomLastDigitCallerIdNumber field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.RANDOMLASTDIGITCALLERIDNUMBER_MUST_BE_GREATER_THAN_OR_EQUAL_TO">RandomLastDigitCallerIdNumber must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.RANDOMLASTDIGITCALLERIDNUMBER_MUST_BE_LESS_THAN_OR_EQUAL_TO">RandomLastDigitCallerIdNumber must be a valid greater or equal than</span> <span>15</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.ORIGINATETIMEOUT">OriginateTimeout</label>\n <input type="number" name="dialOriginateTimeout" ng-model="vm.queueCampaign.dialOriginateTimeout" min="1" max="999" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ORIGINATETIMEOUT"></span></div>\n <div ng-messages="originateForm[\'dialOriginateTimeout\'].$error" ng-show="originateForm[\'dialOriginateTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATETIMEOUT_REQUIRED">OriginateTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATETIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">OriginateTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATETIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">OriginateTimeout must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.PREFIX">Prefix</label>\n <input type="text" name="dialPrefix" ng-model="vm.queueCampaign.dialPrefix" ng-pattern="/^\\d+$/" value="" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.PREFIX"></span></div>\n <div ng-messages="originateForm[\'dialPrefix\'].$error" ng-show="originateForm[\'dialPrefix\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.PREFIX_REQUIRED">Prefix field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MOTIONDIALER.ERRORS.PREFIX_MUST_VALID_PATTERN" translate-values="{ regex: \'/^\\d+$/\' }">Prefix must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.RETRYANDFREQUENCY">RETRYANDFREQUENCY</span>\n </md-tab-label>\n <md-tab-body>\n <div class="queueCampaign-detail-form-container global md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.GLOBAL">GLOBAL</div>\n </div>\n <form name="globalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.GLOBALMAXRETRY">GlobalMaxRetry</label>\n <input type="number" name="dialGlobalMaxRetry" ng-model="vm.queueCampaign.dialGlobalMaxRetry" min="1" max="999" value="4" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.GLOBALMAXRETRY"></span></div>\n <div ng-messages="globalForm[\'dialGlobalMaxRetry\'].$error" ng-show="globalForm[\'dialGlobalMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.GLOBALMAXRETRY_REQUIRED">GlobalMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.GLOBALMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">GlobalMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.GLOBALMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">GlobalMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="queueCampaign-detail-form-container congestion md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.CONGESTION">CONGESTION</div>\n </div>\n <form name="congestionForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CONGESTIONMAXRETRY">CongestionMaxRetry</label>\n <input type="number" name="dialCongestionMaxRetry" ng-model="vm.queueCampaign.dialCongestionMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.CONGESTIONMAXRETRY"></span></div>\n <div ng-messages="congestionForm[\'dialCongestionMaxRetry\'].$error" ng-show="congestionForm[\'dialCongestionMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONMAXRETRY_REQUIRED">CongestionMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CongestionMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">CongestionMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CONGESTIONRETRYTIME">CongestionRetryTime</label>\n <input type="number" name="dialCongestionRetryFrequency" ng-model="vm.queueCampaign.dialCongestionRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.CONGESTIONRETRYTIME"></span></div>\n <div ng-messages="congestionForm[\'dialCongestionRetryFrequency\'].$error" ng-show="congestionForm[\'dialCongestionRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONRETRYTIME_REQUIRED">CongestionRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CongestionRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">CongestionRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="queueCampaign-detail-form-container busy md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.BUSY">BUSY</div>\n </div>\n <form name="busyForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.BUSYMAXRETRY">BusyMaxRetry</label>\n <input type="number" name="dialBusyMaxRetry" ng-model="vm.queueCampaign.dialBusyMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.BUSYMAXRETRY"></span></div>\n <div ng-messages="busyForm[\'dialBusyMaxRetry\'].$error" ng-show="busyForm[\'dialBusyMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.BUSYMAXRETRY_REQUIRED">BusyMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.BUSYMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">BusyMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.BUSYMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">BusyMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.BUSYRETRYTIME">BusyRetryTime</label>\n <input type="number" name="dialBusyRetryFrequency" ng-model="vm.queueCampaign.dialBusyRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.BUSYRETRYTIME"></span></div>\n <div ng-messages="busyForm[\'dialBusyRetryFrequency\'].$error" ng-show="busyForm[\'dialBusyRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.BUSYRETRYTIME_REQUIRED">BusyRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.BUSYRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">BusyRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.BUSYRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">BusyRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="queueCampaign-detail-form-container noanswer md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.NOANSWER">NOANSWER</div>\n </div>\n <form name="noanswerForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NOANSWERMAXRETRY">NoAnswerMaxRetry</label>\n <input type="number" name="dialNoAnswerMaxRetry" ng-model="vm.queueCampaign.dialNoAnswerMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NOANSWERMAXRETRY"></span></div>\n <div ng-messages="noanswerForm[\'dialNoAnswerMaxRetry\'].$error" ng-show="noanswerForm[\'dialNoAnswerMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERMAXRETRY_REQUIRED">NoAnswerMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoAnswerMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoAnswerMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NOANSWERRETRYTIME">NoAnswerRetryTime</label>\n <input type="number" name="dialNoAnswerRetryFrequency" ng-model="vm.queueCampaign.dialNoAnswerRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NOANSWERRETRYTIME"></span></div>\n <div ng-messages="noanswerForm[\'dialNoAnswerRetryFrequency\'].$error" ng-show="noanswerForm[\'dialNoAnswerRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERRETRYTIME_REQUIRED">NoAnswerRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoAnswerRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoAnswerRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="queueCampaign-detail-form-container nosuchnumber md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.NOSUCHNUMBER">NOSUCHNUMBER</div>\n </div>\n <form name="nosuchnumberForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NOSUCHNUMBERMAXRETRY">NoSuchNumberMaxRetry</label>\n <input type="number" name="dialNoSuchNumberMaxRetry" ng-model="vm.queueCampaign.dialNoSuchNumberMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NOSUCHNUMBERMAXRETRY"></span></div>\n <div ng-messages="nosuchnumberForm[\'dialNoSuchNumberMaxRetry\'].$error" ng-show="nosuchnumberForm[\'dialNoSuchNumberMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERMAXRETRY_REQUIRED">NoSuchNumberMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoSuchNumberMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoSuchNumberMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NOSUCHNUMBERRETRYTIME">NoSuchNumberRetryTime</label>\n <input type="number" name="dialNoSuchNumberRetryFrequency" ng-model="vm.queueCampaign.dialNoSuchNumberRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NOSUCHNUMBERRETRYTIME"></span></div>\n <div ng-messages="nosuchnumberForm[\'dialNoSuchNumberRetryFrequency\'].$error" ng-show="nosuchnumberForm[\'dialNoSuchNumberRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERRETRYTIME_REQUIRED">NoSuchNumberRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoSuchNumberRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoSuchNumberRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="queueCampaign-detail-form-container drop md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.DROP">DROP</div>\n </div>\n <form name="dropForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DROPMAXRETRY">DropMaxRetry</label>\n <input type="number" name="dialDropMaxRetry" ng-model="vm.queueCampaign.dialDropMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.DROPMAXRETRY"></span></div>\n <div ng-messages="dropForm[\'dialDropMaxRetry\'].$error" ng-show="dropForm[\'dialDropMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DROPMAXRETRY_REQUIRED">DropMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.DROPMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">DropMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.DROPMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">DropMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DROPRETRYTIME">DropRetryTime</label>\n <input type="number" name="dialDropRetryFrequency" ng-model="vm.queueCampaign.dialDropRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.DROPRETRYTIME"></span></div>\n <div ng-messages="dropForm[\'dialDropRetryFrequency\'].$error" ng-show="dropForm[\'dialDropRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DROPRETRYTIME_REQUIRED">DropRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.DROPRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">DropRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.DROPRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">DropRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="queueCampaign-detail-form-container abandoned md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.ABANDONED">ABANDONED</div>\n </div>\n <form name="abandonedForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.ABANDONEDMAXRETRY">AbandonedMaxRetry</label>\n <input type="number" name="dialAbandonedMaxRetry" ng-model="vm.queueCampaign.dialAbandonedMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ABANDONEDMAXRETRY"></span></div>\n <div ng-messages="abandonedForm[\'dialAbandonedMaxRetry\'].$error" ng-show="abandonedForm[\'dialAbandonedMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDMAXRETRY_REQUIRED">AbandonedMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AbandonedMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">AbandonedMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.ABANDONEDRETRYTIME">AbandonedRetryTime</label>\n <input type="number" name="dialAbandonedRetryFrequency" ng-model="vm.queueCampaign.dialAbandonedRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ABANDONEDRETRYTIME"></span></div>\n <div ng-messages="abandonedForm[\'dialAbandonedRetryFrequency\'].$error" ng-show="abandonedForm[\'dialAbandonedRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDRETRYTIME_REQUIRED">AbandonedRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AbandonedRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">AbandonedRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="queueCampaign-detail-form-container machine md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.MACHINE">MACHINE</div>\n </div>\n <form name="machineForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.MACHINEMAXRETRY">MachineMaxRetry</label>\n <input type="number" name="dialMachineMaxRetry" ng-model="vm.queueCampaign.dialMachineMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.MACHINEMAXRETRY"></span></div>\n <div ng-messages="machineForm[\'dialMachineMaxRetry\'].$error" ng-show="machineForm[\'dialMachineMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MACHINEMAXRETRY_REQUIRED">MachineMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.MACHINEMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MachineMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.MACHINEMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">MachineMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.MACHINERETRYTIME">MachineRetryTime</label>\n <input type="number" name="dialMachineRetryFrequency" ng-model="vm.queueCampaign.dialMachineRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.MACHINERETRYTIME"></span></div>\n <div ng-messages="machineForm[\'dialMachineRetryFrequency\'].$error" ng-show="machineForm[\'dialMachineRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MACHINERETRYTIME_REQUIRED">MachineRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.MACHINERETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MachineRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.MACHINERETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">MachineRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="queueCampaign-detail-form-container agentreject md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.AGENTREJECT">AGENTREJECT</div>\n </div>\n <form name="agentrejectForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.AGENTREJECTMAXRETRY">AgentRejectMaxRetry</label>\n <input type="number" name="dialAgentRejectMaxRetry" ng-model="vm.queueCampaign.dialAgentRejectMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AGENTREJECTMAXRETRY"></span></div>\n <div ng-messages="agentrejectForm[\'dialAgentRejectMaxRetry\'].$error" ng-show="agentrejectForm[\'dialAgentRejectMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTMAXRETRY_REQUIRED">AgentRejectMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AgentRejectMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">AgentRejectMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.AGENTREJECTRETRYTIME">AgentRejectRetryTime</label>\n <input type="number" name="dialAgentRejectRetryFrequency" ng-model="vm.queueCampaign.dialAgentRejectRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AGENTREJECTRETRYTIME"></span></div>\n <div ng-messages="agentrejectForm[\'dialAgentRejectRetryFrequency\'].$error" ng-show="agentrejectForm[\'dialAgentRejectRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTRETRYTIME_REQUIRED">AgentRejectRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AgentRejectRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">AgentRejectRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <md-tab-body>\n <div ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="queueCampaign-detail-form-container advanced md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.ADVANCED">ADVANCED</div>\n </div>\n <form name="advancedForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.queueCampaign.acw" aria-label="AfterCallWork" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MOTIONDIALER.AFTERCALLWORK">AfterCallWork</span></md-switch>\n <div class="hint"><span translate="MOTIONDIALER.HELP.AFTERCALLWORK"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.acw" class="md-block">\n <label translate="MOTIONDIALER.AFTERCALLWORKDURATION">AfterCallWorkDuration</label>\n <input type="number" name="acwTimeout" ng-model="vm.queueCampaign.acwTimeout" min="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AFTERCALLWORKDURATION"></span></div>\n <div ng-messages="advancedForm[\'acwTimeout\'].$error" ng-show="advancedForm[\'acwTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AFTERCALLWORKDURATION_REQUIRED">AfterCallWorkDuration field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AFTERCALLWORKDURATION_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AfterCallWorkDuration must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.AUTOPAUSE">AutoPause</label>\n <md-select name="autopause" ng-model="vm.queueCampaign.autopause" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'all\'"> {{ \'MOTIONDIALER.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'MOTIONDIALER.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.AUTOPAUSE"></span></div>\n <div ng-messages="advancedForm[\'autopause\'].$error" ng-show="advancedForm[\'autopause\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AUTOPAUSE_REQUIRED">AutoPause field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.RINGINUSE">RingInUse</label>\n <md-select name="ringinuse" ng-model="vm.queueCampaign.ringinuse" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'MOTIONDIALER.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'MOTIONDIALER.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.RINGINUSE"></span></div>\n <div ng-messages="advancedForm[\'ringinuse\'].$error" ng-show="advancedForm[\'ringinuse\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.RINGINUSE_REQUIRED">RingInUse field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.MEMBERDELAY">MemberDelay</label>\n <input type="number" name="memberdelay" ng-model="vm.queueCampaign.memberdelay" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.MEMBERDELAY"></span></div>\n <div ng-messages="advancedForm[\'memberdelay\'].$error" ng-show="advancedForm[\'memberdelay\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MEMBERDELAY_REQUIRED">MemberDelay field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.MEMBERDELAY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MemberDelay must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.TIMEOUTRESTART">TimeoutRestart</label>\n <md-select name="timeoutrestart" ng-model="vm.queueCampaign.timeoutrestart" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'MOTIONDIALER.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'MOTIONDIALER.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.TIMEOUTRESTART"></span></div>\n <div ng-messages="advancedForm[\'timeoutrestart\'].$error" ng-show="advancedForm[\'timeoutrestart\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.TIMEOUTRESTART_REQUIRED">TimeoutRestart field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.MONITORFORMAT">MonitorFormat</label>\n <md-select name="monitor_format" ng-model="vm.queueCampaign.monitor_format" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">Inactive</md-option>\n <md-option ng-value="\'wav\'">wav</md-option>\n <md-option ng-value="\'wav49\'">wav49</md-option>\n <md-option ng-value="\'gsm\'">gsm</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.MONITORFORMAT"></span></div>\n <div ng-messages="advancedForm[\'monitor_format\'].$error" ng-show="advancedForm[\'monitor_format\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MONITORFORMAT_REQUIRED">MonitorFormat field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CONTEXT">Context</label>\n <input type="text" name="context" ng-model="vm.queueCampaign.context" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.CONTEXT"></span></div>\n <div ng-messages="advancedForm[\'context\'].$error" ng-show="advancedForm[\'context\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.SETINTERFACEVARIABLES">SetInterfaceVariables</label>\n <md-select name="setinterfacevar" ng-model="vm.queueCampaign.setinterfacevar" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'MOTIONDIALER.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'MOTIONDIALER.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.SETINTERFACEVARIABLES"></span></div>\n <div ng-messages="advancedForm[\'setinterfacevar\'].$error" ng-show="advancedForm[\'setinterfacevar\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.SETINTERFACEVARIABLES_REQUIRED">SetInterfaceVariables field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.SETQUEUEVARIABLES">SetQueueVariables</label>\n <md-select name="setqueuevar" ng-model="vm.queueCampaign.setqueuevar" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'MOTIONDIALER.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'MOTIONDIALER.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.SETQUEUEVARIABLES"></span></div>\n <div ng-messages="advancedForm[\'setqueuevar\'].$error" ng-show="advancedForm[\'setqueuevar\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.SETQUEUEVARIABLES_REQUIRED">SetQueueVariables field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.SETQUEUEENTRYVARIABLES">SetQueueEntryVariables</label>\n <md-select name="setqueueentryvar" ng-model="vm.queueCampaign.setqueueentryvar" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'MOTIONDIALER.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'MOTIONDIALER.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.SETQUEUEENTRYVARIABLES"></span></div>\n <div ng-messages="advancedForm[\'setqueueentryvar\'].$error" ng-show="advancedForm[\'setqueueentryvar\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.SETQUEUEENTRYVARIABLES_REQUIRED">SetQueueEntryVariables field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DIALORDERBYSCHEDULEDAT">DialOrderByScheduledAt</label>\n <md-select name="dialOrderByScheduledAt" ng-model="vm.queueCampaign.dialOrderByScheduledAt" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'DESC\'"> {{ \'MOTIONDIALER.DESC\' | translate }} </md-option>\n\n <md-option ng-value="\'ASC\'"> {{ \'MOTIONDIALER.ASC\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.DIALORDERBYSCHEDULEDAT"></span></div>\n <div ng-messages="advancedForm[\'dialOrderByScheduledAt\'].$error" ng-show="advancedForm[\'dialOrderByScheduledAt\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DIALORDERBYSCHEDULEDAT_REQUIRED">DialOrderByScheduledAt field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.queueCampaign.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MOTIONDIALER.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.mandatoryDisposition" class="md-block">\n <label translate="MOTIONDIALER.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.queueCampaign.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="advancedForm[\'mandatoryDispositionPauseId\'].$error" ng-show="advancedForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div ng-if="vm.queueCampaign.dialMethod === \'preview\' || vm.queueCampaign.dialMethod === \'booked\'" class="queueCampaign-detail-form-container advancedpreview md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.ADVANCEDPREVIEW">ADVANCEDPREVIEW</div>\n </div>\n <form name="advancedpreviewForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.queueCampaign.acw" aria-label="AfterCallWork" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MOTIONDIALER.AFTERCALLWORK">AfterCallWork</span></md-switch>\n <div class="hint"><span translate="MOTIONDIALER.HELP.AFTERCALLWORK"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.acw" class="md-block">\n <label translate="MOTIONDIALER.AFTERCALLWORKDURATION">AfterCallWorkDuration</label>\n <input type="number" name="acwTimeout" ng-model="vm.queueCampaign.acwTimeout" min="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AFTERCALLWORKDURATION"></span></div>\n <div ng-messages="advancedpreviewForm[\'acwTimeout\'].$error" ng-show="advancedpreviewForm[\'acwTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AFTERCALLWORKDURATION_REQUIRED">AfterCallWorkDuration field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AFTERCALLWORKDURATION_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AfterCallWorkDuration must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.MONITORFORMAT">MonitorFormat</label>\n <md-select name="monitor_format" ng-model="vm.queueCampaign.monitor_format" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">Inactive</md-option>\n <md-option ng-value="\'wav\'">wav</md-option>\n <md-option ng-value="\'wav49\'">wav49</md-option>\n <md-option ng-value="\'gsm\'">gsm</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.MONITORFORMAT"></span></div>\n <div ng-messages="advancedpreviewForm[\'monitor_format\'].$error" ng-show="advancedpreviewForm[\'monitor_format\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MONITORFORMAT_REQUIRED">MonitorFormat field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DIALORDERBYSCHEDULEDAT">DialOrderByScheduledAt</label>\n <md-select name="dialOrderByScheduledAt" ng-model="vm.queueCampaign.dialOrderByScheduledAt" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'DESC\'"> {{ \'MOTIONDIALER.DESC\' | translate }} </md-option>\n\n <md-option ng-value="\'ASC\'"> {{ \'MOTIONDIALER.ASC\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.DIALORDERBYSCHEDULEDAT"></span></div>\n <div ng-messages="advancedpreviewForm[\'dialOrderByScheduledAt\'].$error" ng-show="advancedpreviewForm[\'dialOrderByScheduledAt\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DIALORDERBYSCHEDULEDAT_REQUIRED">DialOrderByScheduledAt field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.queueCampaign.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MOTIONDIALER.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.mandatoryDisposition" class="md-block">\n <label translate="MOTIONDIALER.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.queueCampaign.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="advancedpreviewForm[\'mandatoryDispositionPauseId\'].$error" ng-show="advancedpreviewForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div ng-if="vm.queueCampaign.dialMethod === \'predictive\'" class="queueCampaign-detail-form-container thresholds md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.THRESHOLDS">THRESHOLDS</div>\n </div>\n <form name="thresholdsForm" novalidate>\n <md-input-container ng-if="vm.queueCampaign.dialMethod == \'predictive\'" class="md-block">\n <span translate="MOTIONDIALER.PREDICTIVEMAXTHRESHOLD">PredictiveMaxThreshold</span>\n <div class="hint"><span translate="MOTIONDIALER.HELP.PREDICTIVEMAXTHRESHOLD"></span></div>\n <md-slider md-discrete flex ng-model="vm.queueCampaign.dialPredictiveIntervalMaxThreshold" min="1" max="100" step="1" class="md-accent"></md-slider>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod == \'predictive\'" class="md-block">\n <span translate="MOTIONDIALER.PREDICTIVEMINTHRESHOLD">PredictiveMinThreshold</span>\n <div class="hint"><span translate="MOTIONDIALER.HELP.PREDICTIVEMINTHRESHOLD"></span></div>\n <md-slider md-discrete flex ng-model="vm.queueCampaign.dialPredictiveIntervalMinThreshold" min="1" max="100" step="1" class="md-accent"></md-slider>\n </md-input-container>\n\n </form>\n </div>\n <div class="queueCampaign-detail-form-container recallme md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.RECALLME">RECALLME</div>\n </div>\n <form name="recallmeForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DIALRECALLMETIMEOUT">DialRecallMeTimeout</label>\n <input type="number" name="dialRecallMeTimeout" ng-model="vm.queueCampaign.dialRecallMeTimeout" min="1" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.DIALRECALLMETIMEOUT"></span></div>\n <div ng-messages="recallmeForm[\'dialRecallMeTimeout\'].$error" ng-show="recallmeForm[\'dialRecallMeTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DIALRECALLMETIMEOUT_REQUIRED">DialRecallMeTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.DIALRECALLMETIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">DialRecallMeTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.queueCampaign.dialRecallInQueue" aria-label="DialRecallInQueue" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MOTIONDIALER.DIALRECALLINQUEUE">DialRecallInQueue</span></md-switch>\n <div class="hint"><span translate="MOTIONDIALER.HELP.DIALRECALLINQUEUE"></span></div>\n </md-input-container>\n\n </form>\n </div>\n <div ng-if="vm.queueCampaign.dialMethod != \'preview\'" class="queueCampaign-detail-form-container globalinterval md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.GLOBALINTERVAL">GLOBALINTERVAL</div>\n </div>\n <form name="globalintervalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.GLOBALINTERVAL">GlobalInterval</label>\n <input type="text" name="dialGlobalInterval" ng-model="vm.queueCampaign.dialGlobalInterval" value="07:00-22:00,*,*,*" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.GLOBALINTERVAL"></span></div>\n <div ng-messages="globalintervalForm[\'dialGlobalInterval\'].$error" ng-show="globalintervalForm[\'dialGlobalInterval\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.GLOBALINTERVAL_REQUIRED">GlobalInterval field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div ng-if="vm.queueCampaign.dialMethod != \'preview\'" class="queueCampaign-detail-form-container timezone md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.TIMEZONE">TIMEZONE</div>\n </div>\n <form name="timezoneForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.TIMEZONE">Timezone</label>\n <ms-timezone name="dialTimezone" ng-model="vm.queueCampaign.dialTimezone" autofocus ng-disabled="!vm.crudPermissions.canEdit"></ms-timezone>\n <div class="hint"><span translate="MOTIONDIALER.HELP.TIMEZONE"></span></div>\n <div ng-messages="timezoneForm[\'dialTimezone\'].$error" ng-show="timezoneForm[dialTimezone].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.TIMEZONE_REQUIRED">Timezone field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="queueCampaign-detail-form-container amd md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.AMD">AMD</div>\n </div>\n <form name="amdForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.queueCampaign.dialAMDActive" aria-label="AMDActive" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MOTIONDIALER.AMDACTIVE">AMDActive</span></md-switch>\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDACTIVE"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDINITIALSILENCE">AMDInitialSilence</label>\n <input type="number" name="dialAMDInitialSilence" ng-model="vm.queueCampaign.dialAMDInitialSilence" min="0" value="2500" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDINITIALSILENCE"></span></div>\n <div ng-messages="amdForm[\'dialAMDInitialSilence\'].$error" ng-show="amdForm[\'dialAMDInitialSilence\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDINITIALSILENCE_REQUIRED">AMDInitialSilence field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDINITIALSILENCE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDInitialSilence must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDGREETING">AMDGreeting</label>\n <input type="number" name="dialAMDGreeting" ng-model="vm.queueCampaign.dialAMDGreeting" min="0" value="1500" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDGREETING"></span></div>\n <div ng-messages="amdForm[\'dialAMDGreeting\'].$error" ng-show="amdForm[\'dialAMDGreeting\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDGREETING_REQUIRED">AMDGreeting field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDGREETING_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDGreeting must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDAFTERGREETINGSILENCE">AMDAfterGreetingSilence</label>\n <input type="number" name="dialAMDAfterGreetingSilence" ng-model="vm.queueCampaign.dialAMDAfterGreetingSilence" min="0" value="800" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDAFTERGREETINGSILENCE"></span></div>\n <div ng-messages="amdForm[\'dialAMDAfterGreetingSilence\'].$error" ng-show="amdForm[\'dialAMDAfterGreetingSilence\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDAFTERGREETINGSILENCE_REQUIRED">AMDAfterGreetingSilence field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDAFTERGREETINGSILENCE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDAfterGreetingSilence must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDTOTALANALYSISTIME">AMDTotalAnalysisTime</label>\n <input type="number" name="dialAMDTotalAnalysisTime" ng-model="vm.queueCampaign.dialAMDTotalAnalysisTime" min="0" value="5000" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDTOTALANALYSISTIME"></span></div>\n <div ng-messages="amdForm[\'dialAMDTotalAnalysisTime\'].$error" ng-show="amdForm[\'dialAMDTotalAnalysisTime\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDTOTALANALYSISTIME_REQUIRED">AMDTotalAnalysisTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDTOTALANALYSISTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDTotalAnalysisTime must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDMINWORDLENGTH">AMDMinWordLength</label>\n <input type="number" name="dialAMDMinWordLength" ng-model="vm.queueCampaign.dialAMDMinWordLength" min="0" value="100" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDMINWORDLENGTH"></span></div>\n <div ng-messages="amdForm[\'dialAMDMinWordLength\'].$error" ng-show="amdForm[\'dialAMDMinWordLength\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDMINWORDLENGTH_REQUIRED">AMDMinWordLength field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDMINWORDLENGTH_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDMinWordLength must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDBETWEENWORDSSILENCE">AMDBetweenWordsSilence</label>\n <input type="number" name="dialAMDBetweenWordsSilence" ng-model="vm.queueCampaign.dialAMDBetweenWordsSilence" min="0" value="50" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDBETWEENWORDSSILENCE"></span></div>\n <div ng-messages="amdForm[\'dialAMDBetweenWordsSilence\'].$error" ng-show="amdForm[\'dialAMDBetweenWordsSilence\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDBETWEENWORDSSILENCE_REQUIRED">AMDBetweenWordsSilence field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDBETWEENWORDSSILENCE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDBetweenWordsSilence must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDMAXIMUMNUMBEROFWORDS">AMDMaximumNumberOfWords</label>\n <input type="number" name="dialAMDMaximumNumberOfWords" ng-model="vm.queueCampaign.dialAMDMaximumNumberOfWords" min="0" value="3" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDMAXIMUMNUMBEROFWORDS"></span></div>\n <div ng-messages="amdForm[\'dialAMDMaximumNumberOfWords\'].$error" ng-show="amdForm[\'dialAMDMaximumNumberOfWords\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMNUMBEROFWORDS_REQUIRED">AMDMaximumNumberOfWords field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMNUMBEROFWORDS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDMaximumNumberOfWords must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDSILENCETHRESHOLD">AMDSilenceThreshold</label>\n <input type="number" name="dialAMDSilenceThreshold" ng-model="vm.queueCampaign.dialAMDSilenceThreshold" min="0" max="32767" value="256" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDSILENCETHRESHOLD"></span></div>\n <div ng-messages="amdForm[\'dialAMDSilenceThreshold\'].$error" ng-show="amdForm[\'dialAMDSilenceThreshold\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDSILENCETHRESHOLD_REQUIRED">AMDSilenceThreshold field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDSILENCETHRESHOLD_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDSilenceThreshold must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.AMDSILENCETHRESHOLD_MUST_BE_LESS_THAN_OR_EQUAL_TO">AMDSilenceThreshold must be a valid greater or equal than</span> <span>32767</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDMAXIMUMWORDLENGTH">AMDMaximumWordLength</label>\n <input type="number" name="dialAMDMaximumWordLength" ng-model="vm.queueCampaign.dialAMDMaximumWordLength" min="0" value="5000" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDMAXIMUMWORDLENGTH"></span></div>\n <div ng-messages="amdForm[\'dialAMDMaximumWordLength\'].$error" ng-show="amdForm[\'dialAMDMaximumWordLength\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMWORDLENGTH_REQUIRED">AMDMaximumWordLength field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMWORDLENGTH_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDMaximumWordLength must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.HOPPERS">HOPPERS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="queueCampaign-detail-form-container hopperstatistics md-background-bg md-whiteframe-1dp">\n <div ng-controller="QueueCampaignHopperStatisticsController as vm_hs" ng-init="vm_hs.init(vm.queueCampaign)">\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.HOPPERWIDGET">Hoppers</span>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm_hs.init(vm.queueCampaign)" aria-label="refresh Hopper" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{(vm_hs.total || 0) + (vm_hs.closed || 0)}}</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.TOTAL\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{vm_hs.fresh || 0}} ({{vm_hs.total ? ((((vm_hs.fresh || 0) * 100)/((vm_hs.closed || 0) + (vm_hs.total || 0))) | number: 2) : 0}}%)</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.FRESH\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{vm_hs.total ? (vm_hs.total - (vm_hs.fresh || 0)) : 0}} ({{vm_hs.total ? ((((vm_hs.total - (vm_hs.fresh || 0)) * 100)/((vm_hs.closed || 0) + (vm_hs.total || 0))) | number: 2) : 0}}%)</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.OPEN\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{vm_hs.closed ? (vm_hs.closed || 0) : 0}} ({{vm_hs.closed ? ((((vm_hs.closed) * 100)/(vm_hs.closed + (vm_hs.total || 0))) | number: 2) : 0}}%)</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.CLOSED\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n </div>\n\n </div>\n <div class="queueCampaign-detail-form-container hoppers md-background-bg md-whiteframe-1dp">\n <div ng-controller="QueueCampaignHoppersController as vm_dc" ng-init="vm_dc.init(vm.queueCampaign, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedQueueCampaignHoppers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.HOPPERS">Hoppers</span>\n <ms-search-bar on-search="vm_dc.getQueueCampaignHoppers()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm_dc.getQueueCampaignHoppers()" aria-label="refresh Hoppers" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedQueueCampaignHoppers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedQueueCampaignHoppers.length}} {{vm_dc.selectedQueueCampaignHoppers.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedQueueCampaignHoppers" csv-label="true" filename="queueCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedQueueCampaignHoppers($event)" aria-label="delete selected" translate translate-attr-label="MOTIONDIALER.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedQueueCampaignHoppers" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getQueueCampaignHoppers">\n <tr md-row>\n <th md-column md-order-by="ContactId">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="phone">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </th>\n <th md-column md-order-by="countcongestionretry">\n {{ \'MOTIONDIALER.CONGESTION\' | translate }}\n </th>\n <th md-column md-order-by="countbusyretry">\n {{ \'MOTIONDIALER.BUSY\' | translate }}\n </th>\n <th md-column md-order-by="countnoanswerretry">\n {{ \'MOTIONDIALER.NOANSWER\' | translate }}\n </th>\n <th md-column md-order-by="countnosuchnumberretry">\n {{ \'MOTIONDIALER.NOSUCHNUMBER\' | translate }}\n </th>\n <th md-column md-order-by="countdropretry">\n {{ \'MOTIONDIALER.DROP\' | translate }}\n </th>\n <th md-column md-order-by="countabandonedretry">\n {{ \'MOTIONDIALER.ABANDONED\' | translate }}\n </th>\n <th md-column md-order-by="countmachineretry">\n {{ \'MOTIONDIALER.MACHINE\' | translate }}\n </th>\n <th md-column md-order-by="countagentrejectretry">\n {{ \'MOTIONDIALER.AGENTREJECT\' | translate }}\n </th>\n <th md-column md-order-by="scheduledat">\n {{ \'MOTIONDIALER.SCHEDULEDAT\' | translate }}\n </th>\n <th md-column md-order-by="priority">\n {{ \'MOTIONDIALER.PRIORITY\' | translate }}\n </th>\n <th md-column md-order-by="recallme">\n {{ \'MOTIONDIALER.RECALLAGENT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="hopper" md-select-id="id" ng-repeat="hopper in vm_dc.queueCampaignHoppers.rows">\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.ContactId}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell privacy ng-cloak>\n {{hopper.phone}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countcongestionretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countbusyretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countnoanswerretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countnosuchnumberretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countdropretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countabandonedretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countmachineretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countagentrejectretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{ hopper.scheduledat | formatdate }}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{ vm_dc.arraypriority[hopper.priority].option }} </td>\n\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell class="recallme ">\n <md-icon md-colors="{color: {{hopper.recallme ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{hopper.recallme? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" translate="MOTIONDIALER.EDIT_HOPPER">\n Edit Hopper\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(hopper, $event)" translate="MOTIONDIALER.DELETE_HOPPER">\n Delete Hopper\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.queueCampaignHoppers.rows.length">\n <td md-cell colspan="17">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPER_AVAILABLE">No hopper available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.queueCampaignHoppers.count}}" md-on-paginate="vm_dc.getQueueCampaignHoppers" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.HISTORY">HISTORY</span>\n </md-tab-label>\n <md-tab-body>\n <div class="queueCampaign-detail-form-container hopperhistories md-background-bg md-whiteframe-1dp">\n <div ng-controller="QueueCampaignHopperHistoriesController as vm_dc" ng-init="vm_dc.init(vm.queueCampaign, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedQueueCampaignHopperHistories.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.HOPPERHISTORIES">HopperHistories</span>\n <ms-search-bar on-search="vm_dc.getQueueCampaignHopperHistories()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm_dc.getQueueCampaignHopperHistories()" aria-label="refresh HopperHistories" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERHISTORIES">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedQueueCampaignHopperHistories.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedQueueCampaignHopperHistories.length}} {{vm_dc.selectedQueueCampaignHopperHistories.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedQueueCampaignHopperHistories" csv-label="true" filename="queueCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedQueueCampaignHopperHistories" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getQueueCampaignHopperHistories">\n <tr md-row>\n <th md-column md-order-by="uniqueid">\n {{ \'MOTIONDIALER.UNIQUEID\' | translate }}\n </th>\n <th md-column md-order-by="ContactId">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="calleridnum">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </th>\n <th md-column md-order-by="calleridname">\n {{ \'MOTIONDIALER.NAME\' | translate }}\n </th>\n <th md-column md-order-by="statedesc">\n {{ \'MOTIONDIALER.STATUS\' | translate }}\n </th>\n <th md-column md-order-by="scheduledat">\n {{ \'MOTIONDIALER.SCHEDULEDAT\' | translate }}\n </th>\n <th md-column md-order-by="starttime">\n {{ \'MOTIONDIALER.STARTTIME\' | translate }}\n </th>\n <th md-column md-order-by="endtime">\n {{ \'MOTIONDIALER.ENDTIME\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="hopperHistory" md-select-id="id" ng-repeat="hopperHistory in vm_dc.queueCampaignHopperHistories.rows">\n <td md-cell>\n {{hopperHistory.uniqueid}}\n </td>\n <td md-cell>\n {{hopperHistory.ContactId}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperHistory.calleridnum}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperHistory.calleridname}}\n </td>\n <td md-cell>\n {{hopperHistory.statedesc}}\n </td>\n <td md-cell>\n {{ hopperHistory.scheduledat | formatdate }}\n </td>\n <td md-cell>\n {{ hopperHistory.starttime | formatdate }}\n </td>\n <td md-cell>\n {{ hopperHistory.endtime | formatdate }}\n </td>\n <td md-cell class="actions">\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.queueCampaignHopperHistories.rows.length">\n <td md-cell colspan="11">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPERHISTORY_AVAILABLE">No hopperhistory available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.queueCampaignHopperHistories.count}}" md-on-paginate="vm_dc.getQueueCampaignHopperHistories" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.FINAL">FINAL</span>\n </md-tab-label>\n <md-tab-body>\n <div class="queueCampaign-detail-form-container hopperfinals md-background-bg md-whiteframe-1dp">\n <div ng-controller="QueueCampaignHopperFinalsController as vm_dc" ng-init="vm_dc.init(vm.queueCampaign, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedQueueCampaignHopperFinals.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.HOPPERFINALS">HopperFinals</span>\n <ms-search-bar on-search="vm_dc.getQueueCampaignHopperFinals()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm_dc.getQueueCampaignHopperFinals()" aria-label="refresh HopperFinals" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERFINALS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="vm_dc.countContactsQueueCampaignHopperFinal(vm_dc.query.id); $mdOpenMenu($event);">\n <md-icon md-font-icon="icon-backup-restore"></md-icon>\n <md-tooltip><span translate="MOTIONDIALER.RESTORECONTACTS"></span></md-tooltip>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(3)">\n <span translate="MOTIONDIALER.NOANSWER ">NoAnswer</span>\n <span class="badge">({{vm_dc.contacts.noAnswerContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(5)">\n <span translate="MOTIONDIALER.BUSY ">Busy</span>\n <span class="badge">({{vm_dc.contacts.busyContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(8)">\n <span translate="MOTIONDIALER.CONGESTION ">Congestion</span>\n <span class="badge">({{vm_dc.contacts.congestionContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(10)">\n <span translate="MOTIONDIALER.DROPPED ">Drop</span>\n <span class="badge">({{vm_dc.contacts.dropContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(11)">\n <span translate="MOTIONDIALER.ABANDONED ">Abandoned</span>\n <span class="badge">({{vm_dc.contacts.abandonedContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(22)">\n <span translate="MOTIONDIALER.RECALLFAILEDTIMEOUT">Recall</span>\n <span class="badge">({{vm_dc.contacts.reCallContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(0)">\n <span translate="MOTIONDIALER.NO_SUCH_NUMBER">NoSuchNumber</span>\n <span class="badge">({{vm_dc.contacts.noSuchContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(19)">\n <span translate="MOTIONDIALER.ANSWERING_MACHINE">AnsweringMachine</span>\n <span class="badge">({{vm_dc.contacts.answeringMachine}})</span>\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedQueueCampaignHopperFinals.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedQueueCampaignHopperFinals.length}} {{vm_dc.selectedQueueCampaignHopperFinals.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedQueueCampaignHopperFinals" csv-label="true" filename="queueCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.moveSelectedQueueCampaignHopperFinals($event)" aria-label="move selected" translate translate-attr-label="MOTIONDIALER.MOVE_SELECTED">\n <md-icon md-font-icon="icon-restore"></md-icon>\n <md-tooltip><span translate="MOTIONDIALER.RESTORECONTACTS"></span></md-tooltip>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedQueueCampaignHopperFinals" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getQueueCampaignHopperFinals">\n <tr md-row>\n <th md-column md-order-by="uniqueid">\n {{ \'MOTIONDIALER.UNIQUEID\' | translate }}\n </th>\n <th md-column md-order-by="ContactId">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="calleridnum">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </th>\n <th md-column md-order-by="calleridname">\n {{ \'MOTIONDIALER.NAME\' | translate }}\n </th>\n <th md-column md-order-by="statedesc">\n {{ \'MOTIONDIALER.STATUS\' | translate }}\n </th>\n <th md-column md-order-by="countcongestionretry">\n {{ \'MOTIONDIALER.CONGESTION\' | translate }}\n </th>\n <th md-column md-order-by="countbusyretry">\n {{ \'MOTIONDIALER.BUSY\' | translate }}\n </th>\n <th md-column md-order-by="countnoanswerretry">\n {{ \'MOTIONDIALER.NOANSWER\' | translate }}\n </th>\n <th md-column md-order-by="countnosuchnumberretry">\n {{ \'MOTIONDIALER.NOSUCHNUMBER\' | translate }}\n </th>\n <th md-column md-order-by="countdropretry">\n {{ \'MOTIONDIALER.DROP\' | translate }}\n </th>\n <th md-column md-order-by="countabandonedretry">\n {{ \'MOTIONDIALER.ABANDONED\' | translate }}\n </th>\n <th md-column md-order-by="countmachineretry">\n {{ \'MOTIONDIALER.MACHINE\' | translate }}\n </th>\n <th md-column md-order-by="countagentrejectretry">\n {{ \'MOTIONDIALER.AGENTREJECT\' | translate }}\n </th>\n <th md-column md-order-by="starttime">\n {{ \'MOTIONDIALER.STARTTIME\' | translate }}\n </th>\n <th md-column md-order-by="endtime">\n {{ \'MOTIONDIALER.ENDTIME\' | translate }}\n </th>\n <th md-column md-order-by="disposition">\n {{ \'MOTIONDIALER.DISPOSITION\' | translate }}\n </th>\n <th md-column md-order-by="secondDisposition">\n {{ \'MOTIONDIALER.SECOND_LEVEL_DISPOSITION\' | translate }}\n </th>\n <th md-column md-order-by="thirdDisposition">\n {{ \'MOTIONDIALER.THIRD_LEVEL_DISPOSITION\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="hopperFinal" md-select-id="id" ng-repeat="hopperFinal in vm_dc.queueCampaignHopperFinals.rows">\n <td md-cell>\n {{hopperFinal.uniqueid}}\n </td>\n <td md-cell>\n {{hopperFinal.ContactId}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperFinal.calleridnum}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperFinal.calleridname}}\n </td>\n <td md-cell>\n {{hopperFinal.statedesc}}\n </td>\n <td md-cell>\n {{hopperFinal.countcongestionretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countbusyretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countnoanswerretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countnosuchnumberretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countdropretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countabandonedretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countmachineretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countagentrejectretry}}\n </td>\n <td md-cell>\n {{ hopperFinal.starttime | formatdate }}\n </td>\n <td md-cell>\n {{ hopperFinal.endtime | formatdate }}\n </td>\n <td md-cell>\n {{hopperFinal.disposition}}\n </td>\n <td md-cell>\n {{hopperFinal.secondDisposition}}\n </td>\n <td md-cell>\n {{hopperFinal.thirdDisposition}}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveConfirm(hopperFinal, $event)" translate="MOTIONDIALER.MOVE_HOPPERFINAL">\n Move HopperFinal\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.queueCampaignHopperFinals.rows.length">\n <td md-cell colspan="30">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPERFINAL_AVAILABLE">No hopperfinal available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.queueCampaignHopperFinals.count}}" md-on-paginate="vm_dc.getQueueCampaignHopperFinals" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.BLACKLIST">BLACKLIST</span>\n </md-tab-label>\n <md-tab-body>\n <div class="queueCampaign-detail-form-container hopperblacks md-background-bg md-whiteframe-1dp">\n <div ng-controller="QueueCampaignHopperBlacksController as vm_dc" ng-init="vm_dc.init(vm.queueCampaign, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedQueueCampaignHopperBlacks.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.HOPPERBLACKS">HopperBlacks</span>\n <ms-search-bar on-search="vm_dc.getQueueCampaignHopperBlacks()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedQueueCampaignHopperBlacks.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedQueueCampaignHopperBlacks.length}} {{vm_dc.selectedQueueCampaignHopperBlacks.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedQueueCampaignHopperBlacks" csv-label="true" filename="queueCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedQueueCampaignHopperBlacks" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getQueueCampaignHopperBlacks">\n <tr md-row>\n <th md-column md-order-by="ContactId">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="phone">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="hopperBlack" md-select-id="id" ng-repeat="hopperBlack in vm_dc.queueCampaignHopperBlacks.rows">\n <td md-cell>\n {{hopperBlack.ContactId}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperBlack.phone}}\n </td>\n <td md-cell class="actions">\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.queueCampaignHopperBlacks.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPERBLACK_AVAILABLE">No hopperblack available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.queueCampaignHopperBlacks.count}}" md-on-paginate="vm_dc.getQueueCampaignHopperBlacks" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/queueCampaigns.html",'<div id="queueCampaigns" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-fire" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="MOTIONDIALER.QUEUECAMPAIGNS">QueueCampaigns</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="MOTIONDIALER.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedQueueCampaigns.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedQueueCampaigns =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="MOTIONDIALER.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-queueCampaigns-count">\n <span>{{vm.selectedQueueCampaigns.length}}</span>\n <span translate="MOTIONDIALER.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="MOTIONDIALER.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllQueueCampaigns()" translate="MOTIONDIALER.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectQueueCampaigns()" translate="MOTIONDIALER.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedQueueCampaigns" csv-label="true" filename="queueCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedQueueCampaigns($event)" aria-label="delete selected" translate translate-attr-label="MOTIONDIALER.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- QUEUECAMPAIGN TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedQueueCampaigns" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getQueueCampaigns">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'MOTIONDIALER.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'MOTIONDIALER.NAME\' | translate }}</th>\n <th md-column md-order-by="dialActive">{{ \'MOTIONDIALER.ACTIVE\' | translate }}</th>\n <th md-column md-order-by="TrunkId">{{ \'MOTIONDIALER.TRUNK\' | translate }}</th>\n <th md-column md-order-by="dialMethod">{{ \'MOTIONDIALER.METHOD\' | translate }}</th>\n <th md-column md-order-by="strategy">{{ \'MOTIONDIALER.STRATEGY\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.queueCampaigns.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="MOTIONDIALER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="queueCampaign" md-select-id="id" ng-repeat="queueCampaign in vm.queueCampaigns.rows">\n <td md-cell ng-if="queueCampaign.userpic"><img class="avatar" alt="{{queueCampaign.name}}" ng-src="api/users/{{queueCampaign.id}}/avatar" /></td>\n <td md-cell ng-if="!queueCampaign.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{queueCampaign.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(queueCampaign, ev) : vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="id ">{{queueCampaign.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(queueCampaign, ev) : vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="name ">{{queueCampaign.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(queueCampaign, ev) : vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="dialActive ">\n <md-icon md-colors="{color: {{queueCampaign.dialActive ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{queueCampaign.dialActive ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(queueCampaign, ev) : vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="TrunkId ">{{ (vm.trunks | filter : {\'id\':queueCampaign.TrunkId} : true)[0].name }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(queueCampaign, ev) : vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="dialMethod ">{{ vm.arraydialMethod[queueCampaign.dialMethod].option }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(queueCampaign, ev) : vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="strategy ">{{ vm.arraystrategy[queueCampaign.strategy].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(queueCampaign, $event )" translate="MOTIONDIALER.EDIT_QUEUECAMPAIGN">\n Edit QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.clonedialog(queueCampaign, $event )" translate="MOTIONDIALER.CLONE_QUEUECAMPAIGN">\n clone QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.listadddialog(queueCampaign, $event )" translate="MOTIONDIALER.LISTADD_QUEUECAMPAIGN">\n listadd QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.blacklistadddialog(queueCampaign, $event )" translate="MOTIONDIALER.BLACKLISTADD_QUEUECAMPAIGN">\n blacklistadd QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(queueCampaign, $event )" translate="MOTIONDIALER.TEAMADD_QUEUECAMPAIGN">\n teamadd QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(queueCampaign, $event )" translate="MOTIONDIALER.AGENTADD_QUEUECAMPAIGN">\n agentadd QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(queueCampaign, $event )" translate="MOTIONDIALER.DELETE_QUEUECAMPAIGN">\n Delete QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(queueCampaign, $event )" translate="MOTIONDIALER.GOTOREALTIME_QUEUECAMPAIGN">\n goToRealtime QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.queueCampaigns.count}}" md-on-paginate="vm.getQueueCampaigns" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / QUEUECAMPAIGN TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD QUEUECAMPAIGN BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-queueCampaign-button" ng-click="vm.createOrEditQueueCampaign($event)" aria-label="add queueCampaign" translate translate-attr-aria-label="MOTIONDIALER.ADD_QUEUECAMPAIGN">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD QUEUECAMPAIGN BUTTON --\x3e\n</div>'),e.put("app/main/apps/motiondialer/views/realtime/abandonedcalls/view.html",'<md-toolbar class="md-table-toolbar md-default table-header">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.ABANDONEDQUEUECALLS">ABANDONED QUEUE CALLS</span>\n <ms-search-bar on-search="vm.getAbandonedCalls()" query="vm.query" on-collapse="vm.query.filter = undefined" debounce="300">\n </ms-search-bar>\n <div flex></div>\n\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getAbandonedCalls()"></ms-quick-filter>\n\n <md-button class="md-icon-button" ng-click="vm.refresh && vm.refreshAbandonedCalls($event)" aria-label="Reload" translate translate-attr-label="DASHBOARDS.RELOAD">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip ng-if="vm.showTooltip" md-visible="vm.showTooltip">{{\'DASHBOARDS.CLICKRELOAD\' | translate}}\n </md-tooltip>\n </md-button>\n </div>\n</md-toolbar>\n<md-table-container>\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getAbandonedCalls">\n <tr md-row>\n <th md-column md-order-by="id">ID</th>\n <th md-column md-order-by="calleridname">{{\'DASHBOARDS.FULLNAME\' | translate}}</th>\n <th md-column md-order-by="calleridnum">{{\'DASHBOARDS.PHONE\' | translate}}</th>\n <th md-column md-order-by="queue">{{\'DASHBOARDS.QUEUE\' | translate}}</th>\n <th md-column md-order-by="queuecallerabandonAt">{{\'DASHBOARDS.ABANDONAT\' | translate}}</th>\n <th md-column md-order-by="queuecallerexitAt">{{\'DASHBOARDS.QUEUECALLEREXITAT\' | translate}}</th>\n <th md-column md-order-by="queuecallerexitreason">{{\'DASHBOARDS.QUEUECALLEREXITREASON\' | translate}}</th>\n <th md-column md-order-by="lastAssignedTo">{{\'DASHBOARDS.LASTASSIGNEDTO\' | translate}}</th>\n <th md-column md-order-by="disposition">{{\'DASHBOARDS.DISPOSITION\' | translate}}</th>\n <th md-column md-order-by="disposition">{{\'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}</th>\n <th md-column md-order-by="disposition">{{\'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.abandonedCalls.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="call in vm.abandonedCalls.rows">\n <td md-cell class="id">{{call.id}}</td>\n <td md-cell class="firstName" privacy ng-cloak>{{call.calleridname}}</td>\n <td md-cell class="list" privacy ng-cloak>{{call.calleridnum}}</td>\n <td md-cell class="list">{{vm.queuesMap[call.queue]}}</td>\n <td md-cell class="list">\n {{call.queuecallerabandonAt ? (call.queuecallerabandonAt | formatdate) : (call.queuecallerexitAt | formatdate) }}\n </td>\n <td md-cell class="list">{{call.queuecallerexitAt ? (call.queuecallerexitAt | formatdate) : undefined }}\n </td>\n <td md-cell class="list">{{call.queuecallerexitreason}}</td>\n <td md-cell class="list">{{call.lastAssignedTo}}</td>\n <td md-cell class="list">{{ call.disposition }}</td>\n <td md-cell class="list">{{ call.secondDisposition }}</td>\n <td md-cell class="list">{{ call.thirdDisposition }}</td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="2">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button ng-click="$mdMenu.open()" class="text-capitalize" translate="DASHBOARDS.ASSIGNTO">\n Assigned\n to</md-button>\n <md-menu-content>\n <md-menu-item ng-if="call.lastAssignedTo">\n <md-button ng-click="vm.assignTo(call)"><em translate="DASHBOARDS.NONE">Not Assigned</em>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.agents.rows.length" ng-repeat="agent in vm.agents.rows">\n <md-button ng-click="vm.assignTo(call,agent)">{{agent.name}}</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.dispose(call)" class="text-capitalize" translate="DASHBOARDS.DISPOSE">\n Dispose\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.abandonedCalls.count}}" md-on-paginate="vm.getAbandonedCalls" md-page-select></md-table-pagination>'),e.put("app/main/apps/motiondialer/views/realtime/agents/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.AGENTS">Agents</span>\n <div flex></div>\n <ms-search-bar on-search="vm.onInit()" query="vm.query" on-collapse="vm.query.filter = undefined; vm.onInit()" debounce="300"></ms-search-bar>\n <md-select ng-model="vm.query.globalStatusFilter" class="md-caption" ng-change="vm.query.pauseTypeFilter = \'\'; vm.onInit()">\n <md-option ng-value="\'\'">{{ \'MOTIONDIALER.ALL\' | translate }}</md-option>\n <md-option value="pause">{{ \'MOTIONDIALER.PAUSE\' | translate }}</md-option>\n <md-option value="*pause">{{ \'MOTIONDIALER.PARTIALPAUSE\' | translate }}</md-option>\n <md-option value="busy">{{ \'MOTIONDIALER.BUSY\' | translate }}</md-option>\n <md-option value="idle">{{ \'MOTIONDIALER.IDLE\' | translate }}</md-option>\n </md-select>\n <md-select ng-if="vm.isPause(vm.query.globalStatusFilter)" ng-model="vm.query.pauseTypeFilter" class="md-caption" ng-change="vm.onInit()">\n <md-option ng-value="\'\'">All</md-option>\n <md-option value="DEFAULT PAUSE">DEFAULT PAUSE</md-option>\n <md-option value="ACW">ACW</md-option>\n <md-option value="LOGININPAUSE">LOGININPAUSE</md-option>\n <md-option value="Auto-Pause">AUTOPAUSE</md-option>\n <md-option ng-value="pause.name" ng-repeat="pause in vm.pauses.rows">{{pause.name}}</md-option>\n </md-select>\n </div>\n</md-toolbar>\n\x3c!-- AGENT TABLE --\x3e\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.order" md-on-reorder="vm.onInit">\n <tr md-row border="1">\n <th class="bv text-center" colspan="5">{{ \'MOTIONDIALER.AGENT\' | translate }}</th>\n <th class="bv bl text-center" colspan="2">{{ \'VOICE.VOICE\' | translate }}</th>\n <th ng-if="vm.license.chat" class="bv bl text-center" colspan="2">{{ \'CHAT.CHAT\' | translate }}</th>\n <th ng-if="vm.license.mail" class="bv bl text-center" colspan="2">{{ \'MAIL.MAIL\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="bv bl text-center" colspan="2">{{ \'SMS.SMS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="bv bl text-center" colspan="2">\n {{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="bv bl text-center" colspan="2">\n {{ \'WHATSAPP.WHATSAPP\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n </tr>\n <tr md-row>\n <th class="bl" colspan="2" md-column md-order-by="fullname">\n {{ \'MOTIONDIALER.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">\n {{ \'MOTIONDIALER.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">\n {{ \'MOTIONDIALER.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">\n {{ \'MOTIONDIALER.PAUSE_TIME\' | translate }}</th>\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\n <th ng-if="vm.license.chat" class="bl text-center">{{ \'CHAT.STATUS\' | translate }}</th>\n <th ng-if="vm.license.chat" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'CHAT.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.mail" class="bl text-center">{{ \'MAIL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.mail" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'MAIL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.messaging" class="bl text-center">{{ \'SMS.STATUS\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'SMS.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.openchannel" class="bl text-center">{{ \'OPENCHANNEL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'OPENCHANNEL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.fax" class="bl text-center">{{ \'FAX.STATUS\' | translate }}</th>\n <th ng-if="vm.license.fax" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'FAX.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.whatsapp" class="bl text-center">{{ \'WHATSAPP.STATUS\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'WHATSAPP.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.order.length">\n <td md-cell colspan="19">\n <div layout="row" layout-align="center center">\n <span>{{ \'MOTIONDIALER.NO_AGENT_ONLINE\' | translate }}</span>\n </div>\n </td>\n </tr>\n <tr md-select="vm.agents[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td class="bt padding-5">\n <div layout="row" layout-align="start center">\n <img class="avatar" ng-src="{{vm.agents[value].userpic && \'api/users/\'+vm.agents[value].id+\'/avatar\' || \'assets/images/avatars/profile.png\'}}">\n <div layout="column">\n <span>{{vm.agents[value].fullname}}</span>\n <span>{{vm.agents[value].internal}}</span>\n </div>\n </div>\n </td>\n <td class="bt padding-5">\n <div layout="row" layout-align="start center" ng-if="vm.license.screenrecording && (vm.agents[value].phoneBarEnableScreenRecordingByAgent || vm.agents[value].phoneBarEnableAutomaticScreenRecording)">\n <div class="column" ng-if="vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: green; font-size: 36px;" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'MOTIONDIALER.TOOLTIP_SCREENRECORDING_ON\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n <div class="column" ng-if="!vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: gray" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'MOTIONDIALER.TOOLTIP_SCREENRECORDING_OFF\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n </div>\n </td>\n <td class="bt">\n'+" <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','busy':'indigo-100-bg','*pause':'amber-50-bg','pause':'amber-200-bg'}[vm.agents[value].globalStatus]\">{{\n vm.isPause(vm.agents[value].globalStatus) ? '' : vm.agents[value].globalStatus | uppercase }}\n {{ vm.isPause(vm.agents[value].globalStatus) ? (vm.isPartialPause(vm.agents[value].globalStatus) ?\n '*'+vm.agents[value].pauseType || 'DEFAULT PAUSE' : vm.agents[value].pauseType || 'DEFAULT PAUSE') :\n ''}}</span>\n </td>\n <td class=\"bt custom-column\">\n <timer start-time=\"vm.agents[value].lastLoginAt\"></timer>\n </td>\n <td class=\"bt custom-column\">\n <timer ng-if=\"vm.isPause(vm.agents[value].globalStatus) || vm.isPartialPause(vm.agents[value].globalStatus)\" start-time=\"vm.agents[value].lastPauseAt\"></timer>\n </td>\n <td class=\"bt bl\">\n <div layout=\"row\">\n <span ng-if=\"!vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','talking':'indigo-100-bg','ringing':'orange-400-bg','pause':'amber-200-bg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].voiceStatus | uppercase }}</span>\n <span ng-if=\"vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5 orange-400-bg\">ONHOLD</span>\n </div>\n </td>\n <td class=\"bt bl\">\n <div layout=\"column\">\n <span ng-if=\"vm.agents[value].queue\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].queue }}</span>\n <span ng-if=\"vm.agents[value].destconnectedlinenum\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\" privacy ng-cloak>{{\n vm.agents[value].destconnectedlinenum }}</span>\n <span ng-if=\"vm.agents[value].routealias\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].routealias }}</span>\n <span class=\"padding-5\" ng-if=\"vm.agents[value].queue || vm.agents[value].destconnectedlinenum\">\n <timer start-time=\"vm.agents[value].voiceStatusTime\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">\n </timer>\n </span>\n </div>\n </td>\n <td class=\"bt bl\" ng-if=\"vm.license.chat\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].chatStatus]\">{{\n vm.agents[value].chatStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td md-number class=\"bt text-center font-size-20\" ng-if=\"vm.license.chat\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].chatStatus]\">\n {{ vm.agents[value].chatCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.mail\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].mailStatus]\">{{\n vm.agents[value].mailStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.mail\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].mailStatus]\">\n {{ vm.agents[value].mailCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.messaging\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].smsStatus]\">{{\n vm.agents[value].smsStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.messaging\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].smsStatus]\">\n {{ vm.agents[value].smsCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.openchannel\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].openchannelStatus]\">{{\n vm.agents[value].openchannelStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.openchannel\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].openchannelStatus]\">\n {{ vm.agents[value].openchannelCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.fax\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].faxStatus]\">{{\n vm.agents[value].faxStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.fax\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].faxStatus]\">\n {{ vm.agents[value].faxCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.whatsapp\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].whatsappStatus]\">{{\n vm.agents[value].whatsappStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.whatsapp\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].whatsappStatus]\">\n {{ vm.agents[value].whatsappCurrentCapacity }}</td>\n <td class=\"bl bt padding-5 text-center\" ng-if=\"vm.crudPermissions.canEdit\">\n <md-menu>\n <md-button class=\"md-icon-button\" aria-label=\"More\" translate translate-attr-aria-label=\"STAFF.MORE\" ng-click=\"$mdOpenMenu($event)\">\n <md-icon md-font-icon=\"icon-dots-vertical\"></md-icon>\n </md-button>\n <md-menu-content width=\"4\">\n <md-menu-item>\n <md-button ng-click=\"vm.logout(vm.agents[value], $event)\" translate=\"MOTIONDIALER.LOGOUT\">\n Logout\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click=\"vm.queueAdd(vm.agents[value], $event)\" translate=\"MOTIONDIALER.AGENTADD_QUEUE\">\n Add Agent In Queue\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.license.screenrecording && vm.agents[value].phoneBarEnableScreenRecordingByAgent\">\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"MOTIONDIALER.SCREENRECORDING\">Screen Recording\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if=\"!vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], true)\"><em translate=\"MOTIONDIALER.START_SCREENRECORDING\">Start\n Screen Recording</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], false)\"><em translate=\"MOTIONDIALER.STOP_SCREENRECORDING\">Stop\n Screen Recording</em></md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item>\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"MOTIONDIALER.PAUSE\">Pause</md-button>\n <md-menu-content>\n <md-menu-item>\n <md-button ng-disabled=\" vm.agents[value].voicePause && 'DEFAULT PAUSE' === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value])\"><em translate=\"MOTIONDIALER.DEFAULT_PAUSE\">Default\n Pause</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.pauses.rows.length\" ng-repeat=\"pause in vm.pauses.rows\">\n <md-button ng-disabled=\"vm.agents[value].voicePause && pause.name === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value], pause.name)\">{{pause.name}}\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.isPause(vm.agents[value].globalStatus)\">\n <md-button ng-click=\"vm.unPause(vm.agents[value])\" translate=\"MOTIONDIALER.UNPAUSE\">\n Unpause\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label=\"{page: '{{'MOTIONDIALER.PAGE' | translate}}:', rowsPerPage: '{{'MOTIONDIALER.ROWSPERPAGE' | translate}}:', of: '{{'MOTIONDIALER.OF' | translate}}'}\" md-limit=\"vm.query.limit\" md-limit-options=\"[10, 15, 20, 50, 100, 250]\" md-page=\"vm.query.page\" md-total=\"{{vm.filteredAgents.length}}\" md-on-paginate=\"vm.onInit\" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e"),e.put("app/main/apps/motiondialer/views/realtime/ivr_campaigns/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.IVR_CAMPAIGNS">Ivr Campaigns</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getCampaigns()" query="vm.query" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n\n\x3c!-- QUEUE TABLE --\x3e\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getCampaigns">\n <tr md-row>\n <th md-column>{{\'MOTIONDIALER.NAME\' | translate}}</th>\n <th md-column>{{\'MOTIONDIALER.TOTAL\' | translate}}</th>\n <th md-column>{{\'MOTIONDIALER.TOTAL_MANAGED\' | translate}}</th>\n <th md-column>{{\'MOTIONDIALER.LIMITED\' | translate}}</th>\n <th md-column>{{\'MOTIONDIALER.ORIGINATED\' | translate}}</th>\n <th md-column>{{\'MOTIONDIALER.MESSAGE\' | translate}}</th>\n <th md-column>{{\'MOTIONDIALER.CALLYSQUAREPROJECT\' | translate}}</th>\n <th md-column>{{\'MOTIONDIALER.TRUNK\' | translate }}</th>\n <th md-column>{{\'MOTIONDIALER.ACTIVE\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.campaigns">\n <td md-cell colspan="8">\n <div layout="row" layout-align="center center">\n <span translate="MOTIONDIALER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(id, campaign) in vm.campaigns">\n <td md-cell>\n <span>{{campaign.name}}</span>\n </td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{campaign.ivrTotalCallsDays || 0}}</span>\n </td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{campaign.ivrAnswerCallsDay || 0}} ({{(campaign.ivrTotalCallsDays) ? (campaign.ivrAnswerCallsDay || 0) * 100/(campaign.ivrTotalCallsDays ) : 0 | number:1}}%)</span>\n </td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{campaign.limitCalls || 0}}</span>\n </td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{campaign.originated || 0}}</span>\n </td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{campaign.message ? (\'MOTIONDIALER.\'+campaign.message | translate) : \'--\'}}</span>\n </td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{campaign.dialQueueProject || \'--\'}}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{campaign.Trunk ? campaign.Trunk.name : \'--\'}}</span>\n </td>\n <td md-cell>\n <md-icon md-colors="{color: {{campaign.active ? \'\\\'green\\\'\' : \'\\\'red\\\'\'}}}" md-font-icon="{{campaign.active ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.createOrEditIvrCampaign($event, campaign)" translate="MOTIONDIALER.EDIT_CAMPAIGN">\n Edit Campaign\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getCampaigns" md-page-select></md-table-pagination>\n\x3c!-- / QUEUE TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/motiondialer/views/realtime/queue_calls/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.QUEUE_CALLS">Queue Calls</span>\n </div>\n</md-toolbar>\n\x3c!-- QUEUES TABLE --\x3e\n<md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column width="30px"></th>\n <th md-column>{{ \'MOTIONDIALER.DID\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.QUEUE\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.CALLER\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.AGENT\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.DURATION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.getSize(vm.rpcVoiceQueuesChannels)">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="MOTIONDIALER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, channel) in vm.rpcVoiceQueuesChannels | limitObjectFromTo: vm.queryChannels.limit:(vm.queryChannels.page - 1) * vm.queryChannels.limit">\n <td md-cell>\n <md-icon ng-if="channel.queuecallerleaveAt" md-font-icon="icon-phone-in-talk green-fg"></md-icon>\n <md-icon ng-if="!channel.queuecallerleaveAt" md-font-icon="icon-phone-incoming md-accent"></md-icon>\n </td>\n <td md-cell>{{channel.exten}}</td>\n <td md-cell>{{channel.queue}}</td>\n <td md-cell privacy ng-cloak>{{channel.calleridnum}}</td>\n <td md-cell>\n <span ng-if="channel.queuecallerleaveAt">\n {{channel.connectedlinename}}, {{channel.connectedlinenum}}\n <span class="text-boxed">\n <timer start-time="channel.queuecallerleaveAt"></timer>\n </span>\n </span>\n <span ng-if="!channel.queuecallerleaveAt" class="text-boxed">\n {{ \'MOTIONDIALER.WAITING_FOR_AGENT\' | translate }}\n <timer start-time="channel.queuecallerjoinAt"></timer>\n </span>\n </td>\n <td md-cell>\n <span class="text-boxed">\n <timer start-time="channel.queuecallerjoinAt"></timer>\n </span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="vm.hangup(channel.uniqueid)" translate="MOTIONDIALER.HANGUP">\n Hangup\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.redirectToNumber($event, channel.uniqueid)" translate="MOTIONDIALER.REDIRECT_TO_NUMBER">\n Number\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-menu class="no-margin">\n <md-button ng-mouseenter="vm.getAvailableAgents()" translate="MOTIONDIALER.REDIRECT_TO_AGENT">\n Redirect to Agent</md-button>\n <md-menu-content>\n <md-menu-item ng-if="!vm.availableAgents">\n <md-progress-circular class="md-accent auto-margin" md-diameter="32" md-mode="indeterminate">\n </md-progress-circular>\n </md-menu-item>\n <md-menu-item ng-if="vm.availableAgents.length > 0" ng-repeat="agent in vm.availableAgents">\n <md-button ng-click="vm.redirectToAgent(channel.uniqueid, agent.name, agent.context)">\n {{agent.name}}</md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.availableAgents.length === 0">\n <span>No agents available</span>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n<md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm.queryChannels.limit" md-page="vm.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm.getSize(vm.rpcVoiceQueuesChannels)}}" md-page-select></md-table-pagination>\n\x3c!-- / QUEUES TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/motiondialer/views/realtime/queue_params/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.QUEUE_PARAMETERS">Params</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getQueues()" query="vm.query" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n\n\x3c!-- QUEUE TABLE --\x3e\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getQueues">\n <tr md-row>\n <th md-column>{{\'\n MOTIONDIALER.NAME\' | translate}}</th>\n <th md-column>{{\'\n MOTIONDIALER.TOTAL\' | translate}}</th>\n <th md-column>{{\'\n MOTIONDIALER.TOTAL_OFFERED\' | translate}}</th>\n <th md-column>{{\'\n MOTIONDIALER.MANAGED\' | translate}}</th>\n <th md-column>{{\'\n MOTIONDIALER.ABANDONED\' | translate}}</th>\n <th md-column>{{\'\n MOTIONDIALER.DROPPED\' | translate}}</th>\n <th md-column>{{\'\n MOTIONDIALER.AVG_HOLD_TIME\' | translate}}</th>\n <th md-column>{{\'\n MOTIONDIALER.AVG_DURATION\' | translate}}</th>\n <th md-column>{{\'\n MOTIONDIALER.AVG_BILLABLE\' | translate}}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.queues">\n <td md-cell colspan="8">\n <div layout="row" layout-align="center center">\n <span translate="MOTIONDIALER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(id, queue) in vm.queues">\n <td md-cell>\n <span>{{queue.name}}</span>\n </td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{(queue.answered + queue.outboundNoAnswerCallsDay + queue.outboundBusyCallsDay + queue.outboundCongestionCallsDay + queue.outboundNoSuchCallsDay + queue.outboundUnknownCallsDay + queue.outboundDropCallsDayTimeout + queue.outboundDropCallsDayCallersExit + queue.outboundBlacklistCallsDay + queue.outboundOriginateFailureCallsDay + queue.outboundAnswerAgiCallsDay + queue.outboundReCallsDay + queue.outboundRejectCallsDay )|| 0}}</span>\n </td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{queue.total || 0}}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{queue.answered || 0}} ({{(queue.answered) ? (100 - (((queue.outboundDropCallsDayTimeout || 0) * 100/(queue.total)) | number:1 ) - (((queue.outboundDropCallsDayCallersExit || 0) * 100/(queue.total )) | number:1 ) ) : 0 | number:1}}%)</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{queue.outboundDropCallsDayCallersExit || 0}} ({{(queue.outboundDropCallsDayCallersExit) ? (queue.outboundDropCallsDayCallersExit || 0) * 100/(queue.total ) : 0 | number:1}}%)</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{queue.outboundDropCallsDayTimeout || 0}} ({{(queue.outboundDropCallsDayTimeout) ? (queue.outboundDropCallsDayTimeout || 0) * 100/(queue.total) : 0 | number:1}}%)</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{queue.total ? (queue.sumHoldTime / queue.total) : 0 | number: 0 | secToTime | date:\'HH:mm:ss\'}}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{queue.total ? (queue.sumDuration / queue.total) : 0 | number: 0 | secToTime | date:\'HH:mm:ss\'}}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{queue.answered ? ((queue.sumBillable || 0) / queue.answered) : 0 | number: 0 | secToTime | date:\'HH:mm:ss\'}}</span>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>\n\x3c!-- / QUEUE TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/motiondialer/views/realtime/queues/predictive/dialog.html",'<md-dialog class="predictive-dialog" aria-label="New predictive">\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.queueCampaign.name }} Info</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content class="text-center" ms-scroll>\n <ds-widget-clock data-show-digital></ds-widget-clock>\n <div ng-if="!vm.queueCampaign.startProgressive && !vm.queueCampaign.startPredictive">\n <div class="md-title"><span translate="MOTIONDIALER.PREDICTIVE_IS_NOT_RUNNING">Predictive is not running</span></div>\n </div>\n\n <div ng-if="vm.queueCampaign.startProgressive && !vm.queueCampaign.startPredictive" class="m-10">\n <div layout="row">\n <div flex="" class="column">\n <div class="md-headline"><span translate="MOTIONDIALER.DATA_COLLECTION_IN_PROGRESSIVE">Data collection in progressive</span></div>\n <div class="md-subhead">({{vm.queueCampaign.dialPredictiveInterval}} minutes)</div>\n </div>\n </div>\n\n <div layout="row">\n <div flex="" class="column">\n <div class="md-subhead"><span translate="MOTIONDIALER.STARTTIME">Start Time</span></div>\n <div class="md-headline">{{ vm.setFormatTime(vm.queueCampaign.startProgressive) }}</div>\n </div>\n <div flex="" class="column">\n <div class="md-subhead"><span translate="MOTIONDIALER.ENDTIME">End Time</span></div>\n <div class="md-headline">\n {{ vm.addMinutes(vm.queueCampaign.startProgressive, vm.queueCampaign.dialPredictiveInterval) }}\n </div>\n </div>\n </div>\n <div>\n <span class="text-boxed blue-bg white-fg">\n {{vm.queueCampaign.message ? (\'MOTIONDIALER.\' + vm.queueCampaign.message | translate) : \'--\'}}\n </span>\n </div>\n </div>\n <div ng-if="vm.queueCampaign.startPredictive" class="m-10">\n <div layout="row">\n <div flex="" class="column">\n <div class="md-headline"><span translate="MOTIONDIALER.PREDICTIVE_IS_RUNNING">Predictive is runnning</span></div>\n <div class="md-subhead">({{vm.queueCampaign.dialPredictiveInterval}} minutes)</div>\n </div>\n </div>\n\n <div layout="row">\n <div flex="" class="column">\n <div class="md-subhead"><span translate="MOTIONDIALER.STARTTIME">Start Time</span></div>\n <div class="md-headline">{{ vm.setFormatTime(vm.queueCampaign.startPredictive) }}</div>\n </div>\n <div flex="" class="column">\n <div class="md-subhead"><span translate="MOTIONDIALER.ENDTIME">End Time</span></div>\n <div class="md-headline">\n {{ vm.addMinutes(vm.queueCampaign.startPredictive, vm.queueCampaign.dialPredictiveInterval) }}\n </div>\n </div>\n </div>\n <div>\n <span class="text-boxed blue-bg white-fg">\n {{vm.queueCampaign.message ? (\'MOTIONDIALER.\' + vm.queueCampaign.message | translate) : \'--\'}}\n </span>\n </div>\n <div class="row">\n <md-card>\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead">Predictive - {{ \'MOTIONDIALER.PREVIOUS_INTERVAL\' | translate }}</span>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table>\n <tbody md-body>\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.TOTAL_CALLS">Total Calls</span></td>\n <td md-cell>{{ vm.queueCampaign.predictiveIntervalTotalCalls }}</td>\n </tr>\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.ANSWERED_CALLS">Total Calls</span></td>\n <td md-cell>{{ vm.queueCampaign.predictiveIntervalAnsweredCalls }}</td>\n </tr>\n \x3c!-- Temporaneamente non mostrate perchè contengono anche i dati dell\'intervallo corrente --\x3e\n \x3c!-- <tr md-row>\n <td md-cell>Dropped Calls Timeout</td>\n <td md-cell>{{ vm.queueCampaign.predictiveIntervalDroppedCallsTimeout }}</td>\n </tr>\n <tr md-row>\n <td md-cell>Dropped Calls Caller Exit</td>\n <td md-cell>{{ vm.queueCampaign.predictiveIntervalDroppedCallsCallersExit }}\n </td>\n </tr> --\x3e\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.AVG_HOLD_TIME">AVG Hold Time</span></td>\n <td md-cell>~ {{ vm.queueCampaign.predictiveIntervalAvgHoldtime | number:0 }}s</td>\n </tr>\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.AVG_TALK_TIME">AVG Talk Time</span></td>\n <td md-cell>~ {{ vm.queueCampaign.predictiveIntervalAvgTalktime | number:0 }}s</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-card>\n <md-card>\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead">ErlangB - {{ \'MOTIONDIALER.CURRENT_INTERVAL\' | translate }}</span>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table>\n <tbody md-body>\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.SCHEDULED_CALLS">Scheduled Calls</span></td>\n <td md-cell>{{ vm.queueCampaign.erlangCalls }}</td>\n </tr>\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.ONE_CALL_EVERY">One call every</span></td>\n <td md-cell>~ {{ vm.queueCampaign.erlangCallToSecond | number:0 }}s</td>\n </tr>\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.DROPRATE">Drop Rate</span></td>\n <td md-cell>{{ vm.queueCampaign.erlangAbandonmentRate * 100 | number:2 }}%</td>\n </tr>\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.AGENTBUSYFACTOR">Agent Busy Factor</span></td>\n <td md-cell>{{ vm.queueCampaign.erlangBusyFactor * 100 | number:2 }}%</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-card>\n </div>\n </div>\n\n\n </md-dialog-content>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/realtime/queues/view.html",'<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.QUEUES">Queues</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getQueues">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'MOTIONDIALER.NAME\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.LOGGED_IN\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.PAUSED\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.TALKING\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.BUSY\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.WAITING\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.ORIGINATED_TEXT\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.MESSAGE\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.METHOD\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.TRUNK\' | translate }}</th>\n <th md-column md-order-by="dialActive">{{ \'MOTIONDIALER.ACTIVE\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.queues.count > 0">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span translate="MOTIONDIALER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="queue" md-select-id="id" ng-repeat="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedInDb }} ({{ queue.loggedIn }})</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.talking + queue.pTalking}}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedInDb - queue.available - queue.paused - queue.talking - queue.waiting\n }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.originated }}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{ queue.message ? (\'MOTIONDIALER.\'+queue.message | translate) : \'--\'}}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.dialMethod || 0 }}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{ queue.Trunk ? queue.Trunk.name : \'--\' }}</span>\n </td>\n <td md-cell>\n <md-icon md-colors="{color: {{queue.dialActive ? \'\\\'green\\\'\' : \'\\\'red\\\'\'}}}" md-font-icon="{{queue.dialActive ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.editQueue($event, queue)" translate="MOTIONDIALER.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="queue.dialMethod == \'predictive\'">\n <md-button ng-click="vm.showPredictiveQueueCampaignInfo($event, queue)" translate="MOTIONDIALER.SHOW_PREDICTIVE_QUEUE_CAMPAIGN_INFO">\n Show Predictive Info\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.addAgent($event, queue)" translate="MOTIONDIALER.AGENTSADD_QUEUE">\n Add Agents to queue\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),e.put("app/main/apps/motiondialer/views/realtime/realtime.html",'<div id="realtime" class="page-layout simple tabbed" layout="column" ng-cloak>\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.AGENTS">Agents</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.QUEUES">Queues</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.QUEUE_CALLS">Queue Calls</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.ABANDONEDCALLS">Abandoned Queue Calls</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.QUEUE_PARAMS">Queue Parameters</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.IVR_CAMPAIGNS">Ivr Campaigns</span>\n </md-tab-label>\n </md-tab>\n </md-tabs>\n\n <md-card ui-view></md-card>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/create/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.openchannelAccount.name" ng-required="true" autofocus ng-disabled="!vm.newOpenchannelAccount">\n\n <div ng-messages="openchannelAccountForm[\'name\'].$error" ng-show="openchannelAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.KEY">key</label>\n <input type="text" name="key" ng-model="vm.openchannelAccount.key" md-maxlength="5" ng-required="true">\n\n <div ng-messages="openchannelAccountForm[\'key\'].$error" ng-show="openchannelAccountForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="OPENCHANNEL.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.REPLYURI">replyUri</label>\n <input type="url" name="replyUri" ng-model="vm.openchannelAccount.replyUri">\n\n <div class="hint"><span translate="OPENCHANNEL.HELP.REPLYURI"></span></div>\n <div ng-messages="openchannelAccountForm[\'replyUri\'].$error" ng-show="openchannelAccountForm[\'replyUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.REPLYURI_REQUIRED">replyUri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="OPENCHANNEL.ERRORS.REPLYURI_MUST_VALID_URL">replyUri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.LIST">List</label>\n <md-select name="ListId" ng-model="vm.openchannelAccount.ListId" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="OPENCHANNEL.HELP.LIST"></span></div>\n <div ng-messages="openchannelAccountForm[\'ListId\'].$error" ng-show="openchannelAccountForm[\'ListId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.openchannelAccount.description">\n\n <div ng-messages="openchannelAccountForm[\'description\'].$error" ng-show="openchannelAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newOpenchannelAccount" ng-click="vm.saveOpenchannelAccount()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountForm.$invalid || openchannelAccountForm.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newOpenchannelAccount" ng-click="vm.addNewOpenchannelAccount()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountForm.$invalid" aria-label="ADD" translate="OPENCHANNEL.ADD_OPENCHANNELACCOUNT" translate-attr-aria-label="OPENCHANNEL.ADD_OPENCHANNELACCOUNT">\n ADD OPENCHANNELACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newOpenchannelAccount" ng-click="vm.deleteOpenchannelAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="OPENCHANNEL.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="OPENCHANNEL.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/agentadd/agentadd.html",'<md-dialog class="openchannelAccount-dialog" aria-label="openchannelAccount" ng-init="vm.onInit()">\n <form name="openchannelAccountForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="OPENCHANNEL.AGENTADD_OPENCHANNELACCOUNT">Add Agent to openchannelAccount</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/agent/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.AGENT">Agent</label>\n <md-select name="agent" ng-model="vm.agent.agent" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="agent.name" ng-repeat="agent in vm.agents" ng-disabled="agent.canSelect === false">{{ agent.name }}</md-option>\n </md-select>\n <div ng-messages="openchannelAccountFormApp[\'agent\'].$error" ng-show="openchannelAccountFormApp[\'agent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.agent.timeout" min="0" max="2147483" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'timeout\'].$error" ng-show="openchannelAccountFormApp[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="OPENCHANNEL.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/amazonlex/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.ACCESSKEYID">accesskeyid</label>\n <input type="text" name="accesskeyid" ng-model="vm.amazonlex.accesskeyid" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'accesskeyid\'].$error" ng-show="openchannelAccountFormApp[\'accesskeyid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.ACCESSKEYID_REQUIRED">accesskeyid field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.SECRETACCESSKEY">secretaccesskey</label>\n <input type="text" name="secretaccesskey" ng-model="vm.amazonlex.secretaccesskey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'secretaccesskey\'].$error" ng-show="openchannelAccountFormApp[\'secretaccesskey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.SECRETACCESSKEY_REQUIRED">secretaccesskey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.LEXREGION">lexregion</label>\n <md-select name="lexregion" ng-model="vm.amazonlex.lexregion" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'us-east-1\'">US East (N. Virginia)</md-option>\n <md-option ng-value="\'us-west-2\'">US West (Oregon)</md-option>\n <md-option ng-value="\'eu-west-1\'">EU (Ireland)</md-option>\n <md-option ng-value="\'ap-southeast-2\'">Asia Pacific (Sydney)</md-option>\n </md-select>\n <div ng-messages="openchannelAccountFormApp[\'lexregion\'].$error" ng-show="openchannelAccountFormApp[\'lexregion\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.LEXREGION_REQUIRED">lexregion field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.BOTNAME">botname</label>\n <input type="text" name="botname" ng-model="vm.amazonlex.botname" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'botname\'].$error" ng-show="openchannelAccountFormApp[\'botname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.BOTNAME_REQUIRED">botname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.amazonlex.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="OPENCHANNEL.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="openchannelAccountFormApp[\'welcomemessage\'].$error" ng-show="openchannelAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.WELCOMEMESSAGE_REQUIRED">welcomemessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="OPENCHANNEL.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/autoreply/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.TIMES">times</label>\n <md-select name="times" ng-model="vm.autoreply.times" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="2">One Time</md-option>\n <md-option ng-value="0">Always</md-option>\n <md-option ng-value="1">First Message</md-option>\n </md-select>\n <div ng-messages="openchannelAccountFormApp[\'times\'].$error" ng-show="openchannelAccountFormApp[\'times\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.TIMES_REQUIRED">times field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.TEXT">Text</label>\n <textarea name="text" ng-model="vm.autoreply.text" required></textarea>\n\n <div ng-messages="openchannelAccountFormApp[\'text\'].$error" ng-show="openchannelAccountFormApp[\'text\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.TEXT_REQUIRED">Text field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/close/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.DISPOSITION">Disposition</label>\n <input type="text" name="disposition" ng-model="vm.close.disposition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'disposition\'].$error" ng-show="openchannelAccountFormApp[\'disposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.DISPOSITION_REQUIRED">Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/dialogflow/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.dialogflow.key" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'key\'].$error" ng-show="openchannelAccountFormApp[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.KEY_REQUIRED">Key field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflow.language" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'da\'">Danish</md-option>\n <md-option ng-value="\'en\'">English</md-option>\n <md-option ng-value="\'de\'">German</md-option>\n <md-option ng-value="\'it\'">Italian</md-option>\n <md-option ng-value="\'es\'">Spanish</md-option>\n <md-option ng-value="\'fr\'">French</md-option>\n <md-option ng-value="\'id\'">Indonesian</md-option>\n <md-option ng-value="\'ja\'">Japanese</md-option>\n <md-option ng-value="\'ko\'">Korean (South Korea)</md-option>\n <md-option ng-value="\'nl\'">Dutch</md-option>\n <md-option ng-value="\'no\'">Norwegian</md-option>\n <md-option ng-value="\'pt\'">Portuguese (European)</md-option>\n <md-option ng-value="\'pt-br\'">Portuguese (Nrazilian)</md-option>\n <md-option ng-value="\'ru\'">Russian</md-option>\n <md-option ng-value="\'sv\'">Swedish</md-option>\n <md-option ng-value="\'th\'">Thai</md-option>\n <md-option ng-value="\'uk\'">Ukrainian</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese (Simplified)</md-option>\n <md-option ng-value="\'zh-HK\'">Chinese (Hong Kong)</md-option>\n <md-option ng-value="\'zh-TW\'">Chinese (Traditional)</md-option>\n </md-select>\n <div ng-messages="openchannelAccountFormApp[\'language\'].$error" ng-show="openchannelAccountFormApp[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.LANGUAGE_REQUIRED">language field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.dialogflow.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="OPENCHANNEL.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="openchannelAccountFormApp[\'welcomemessage\'].$error" ng-show="openchannelAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.WELCOMEMESSAGE_REQUIRED">welcomemessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="OPENCHANNEL.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/dialogflowv2/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.PROJECTID">ProjectID</label>\n <input type="text" name="projectId" ng-model="vm.dialogflowv2.projectId" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'projectId\'].$error" ng-show="openchannelAccountFormApp[\'projectId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.PROJECTID_REQUIRED">ProjectID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.CLIENTEMAIL">ClientEmail</label>\n <input type="text" name="clientEmail" ng-model="vm.dialogflowv2.clientEmail" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'clientEmail\'].$error" ng-show="openchannelAccountFormApp[\'clientEmail\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.CLIENTEMAIL_REQUIRED">ClientEmail field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.PRIVATEKEY">PrivateKey</label>\n <textarea name="privateKey" ng-model="vm.dialogflowv2.privateKey" required></textarea>\n\n <div ng-messages="openchannelAccountFormApp[\'privateKey\'].$error" ng-show="openchannelAccountFormApp[\'privateKey\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.PRIVATEKEY_REQUIRED">PrivateKey field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflowv2.language" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'zh-HK\'">Chinese (Cantonese)</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese (Simplified)</md-option>\n <md-option ng-value="\'zh-TW\'">Chinese (Traditional)</md-option>\n <md-option ng-value="\'da\'">Danish</md-option>\n <md-option ng-value="\'nl\'">Dutch</md-option>\n <md-option ng-value="\'en\'">English</md-option>\n <md-option ng-value="\'en-AU\'">English (Australia)</md-option>\n <md-option ng-value="\'en-CA\'">English (Canada)</md-option>\n <md-option ng-value="\'en-GB\'">English (Great Britain)</md-option>\n <md-option ng-value="\'en-IN\'">English (India)</md-option>\n <md-option ng-value="\'en-US\'">English (US)</md-option>\n <md-option ng-value="\'fr\'">French</md-option>\n <md-option ng-value="\'fr-CA\'">French (Canada)</md-option>\n <md-option ng-value="\'fr-FR\'">\'France (France)</md-option>\n <md-option ng-value="\'de\'">German</md-option>\n <md-option ng-value="\'hi\'">Hindi</md-option>\n <md-option ng-value="\'id\'">Indonesian</md-option>\n <md-option ng-value="\'it\'">Italian</md-option>\n <md-option ng-value="\'ja\'">Japanese</md-option>\n <md-option ng-value="\'ko\'">Korean</md-option>\n <md-option ng-value="\'no\'">Norwegian</md-option>\n <md-option ng-value="\'pl\'">Polish</md-option>\n <md-option ng-value="\'pt-BR\'">Portuguese (Brazil)</md-option>\n <md-option ng-value="\'pt-PT\'">Portuguese (Portugal)</md-option>\n <md-option ng-value="\'ru\'">Russian</md-option>\n <md-option ng-value="\'es\'">Spanish</md-option>\n <md-option ng-value="\'es-419\'">Spanish (Latin America)</md-option>\n <md-option ng-value="\'es-ES\'">Spanish (Spain)</md-option>\n <md-option ng-value="\'sw\'">Swedish</md-option>\n <md-option ng-value="\'th\'">Thai</md-option>\n <md-option ng-value="\'tr\'">Turkish</md-option>\n <md-option ng-value="\'uk\'">Ukrainian</md-option>\n </md-select>\n <div ng-messages="openchannelAccountFormApp[\'language\'].$error" ng-show="openchannelAccountFormApp[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.LANGUAGE_REQUIRED">language field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.dialogflowv2.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="OPENCHANNEL.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="openchannelAccountFormApp[\'welcomemessage\'].$error" ng-show="openchannelAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n\n <div ng-message="md-maxlength">\n <span translate="OPENCHANNEL.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/gotoif/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.CONDITION">Condition</label>\n <input type="text" name="condition" ng-model="vm.gotoif.condition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'condition\'].$error" ng-show="openchannelAccountFormApp[\'condition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.CONDITION_REQUIRED">Condition field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.TRUEPRIORITY">truepriority</label>\n <input type="number" name="truepriority" ng-model="vm.gotoif.truepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'truepriority\'].$error" ng-show="openchannelAccountFormApp[\'truepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.TRUEPRIORITY_REQUIRED">truepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">truepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.FALSEPRIORITY">falsepriority</label>\n <input type="number" name="falsepriority" ng-model="vm.gotoif.falsepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'falsepriority\'].$error" ng-show="openchannelAccountFormApp[\'falsepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.FALSEPRIORITY_REQUIRED">falsepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">falsepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/gotop/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.PRIORITY">Priority</label>\n <input type="number" name="priority" ng-model="vm.gotop.priority" min="0" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'priority\'].$error" ng-show="openchannelAccountFormApp[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Priority must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/interval/dialog.html",'<md-dialog class="interval-dialog" aria-label="New Interval">\n <form name="intervalForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select ng-model="vm.type" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="type" ng-repeat=\'type in vm.types\'>{{ type | ucfirst }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.type === \'list\'">\n <label translate="TOOLS.INTERVALS">Intervals</label>\n <md-select ng-model="vm.interval.IntervalId" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals">{{ interval.name }}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!-- TIMERANGE START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.TIME_RANGE">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <div class="md-block" flex>\n <mdp-time-picker name="timeRangeFrom" mdp-placeholder="FROM" ng-model="vm.timeRangeFrom" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <div ng-messages="intervalForm.timeRangeFrom.$error" ng-show="intervalForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_FROM_INVALID">Time Range From field is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n <div class="md-block" flex ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_INVALID">Time Range To field is invalid</span>\n </div>\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </div>\n \x3c!-- TIMERANGE END --\x3e\n\n \x3c!-- DAYSOFWEEK START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.WEEK_DAYS">Week Days</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.dayOfWeekFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container flex class="md-block" ng-if="vm.dayOfWeekFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="dayOfWeekTo" ng-model="vm.dayOfWeekTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- DAYSOFWEEK END --\x3e\n\n \x3c!-- MONTHDAY START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTH_DAYS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthDayFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthDayFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthDayTo" ng-model="vm.monthDayTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTHDAY END --\x3e\n\n \x3c!-- MONTH START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTHS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n </md-select>\n\n </md-input-container>\n\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthTo" ng-model="vm.monthTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTH END --\x3e\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="!vm.newInterval && vm.crudPermissions.canEdit" ng-click="vm.saveInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid || intervalForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.newInterval && vm.crudPermissions.canEdit" ng-click="vm.addNewInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_INTERVAL" translate-attr-aria-label="TOOLS.ADD_INTERVAL">\n ADD INTERVAL\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/noop/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.VALUE">Value</label>\n <input type="text" name="value" ng-model="vm.noop.value" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'value\'].$error" ng-show="openchannelAccountFormApp[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/queue/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.QUEUE">Queue</label>\n <md-select name="queue" ng-model="vm.queue.queue" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="queue.name" ng-repeat="queue in vm.queues" ng-disabled="queue.canSelect === false">{{ queue.name }}</md-option>\n </md-select>\n <div ng-messages="openchannelAccountFormApp[\'queue\'].$error" ng-show="openchannelAccountFormApp[\'queue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.queue.timeout" min="0" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'timeout\'].$error" ng-show="openchannelAccountFormApp[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="OPENCHANNEL.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/system/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.COMMAND">Command</label>\n <input type="text" name="command" ng-model="vm.system.command" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'command\'].$error" ng-show="openchannelAccountFormApp[\'command\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.COMMAND_REQUIRED">Command field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.VARIABLE">Variable</label>\n <md-select name="variable" ng-model="vm.system.variable" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables" ng-disabled="variable.canSelect === false">{{ variable.name }}</md-option>\n </md-select>\n <div ng-messages="openchannelAccountFormApp[\'variable\'].$error" ng-show="openchannelAccountFormApp[\'variable\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.VARIABLE_REQUIRED">Variable field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/tag/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.TAG">Tag</label>\n <md-select name="tag" ng-model="vm.tag.tag" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags" ng-disabled="tag.canSelect === false">{{ tag.name }}</md-option>\n </md-select>\n <div ng-messages="openchannelAccountFormApp[\'tag\'].$error" ng-show="openchannelAccountFormApp[\'tag\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.TAG_REQUIRED">Tag field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/openchannelCannedAnswers/dialog.html",'<md-dialog class="openchannelCannedAnswer-dialog" aria-label="New OpenchannelCannedAnswer">\n <form name="openchannelCannedAnswerForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.KEY">Key</label>\n <input type="" name="key" ng-model="vm.openchannelCannedAnswer.key" md-maxlength="255" ng-required="true" autofocus>\n\n <div ng-messages="openchannelCannedAnswerForm[\'key\'].$error" ng-show="openchannelCannedAnswerForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.KEY_REQUIRED">Key field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.VALUE">Value</label>\n <textarea name="value" ng-model="vm.openchannelCannedAnswer.value" required></textarea>\n\n <div ng-messages="openchannelCannedAnswerForm[\'value\'].$error" ng-show="openchannelCannedAnswerForm[\'value\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.openchannelCannedAnswer.description">\n\n <div ng-messages="openchannelCannedAnswerForm[\'description\'].$error" ng-show="openchannelCannedAnswerForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newOpenchannelCannedAnswer" ng-click="vm.saveOpenchannelCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="openchannelCannedAnswerForm.$invalid || openchannelCannedAnswerForm.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newOpenchannelCannedAnswer" ng-click="vm.addNewOpenchannelCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="openchannelCannedAnswerForm.$invalid" aria-label="ADD" translate="OPENCHANNEL.ADD_OPENCHANNELCANNEDANSWER" translate-attr-aria-label="OPENCHANNEL.ADD_OPENCHANNELCANNEDANSWER">\n ADD OPENCHANNELCANNEDANSWER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newOpenchannelCannedAnswer" ng-click="vm.deleteOpenchannelCannedAnswer($event)" aria-label="DELETE" translate translate-attr-aria-label="OPENCHANNEL.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="OPENCHANNEL.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/view.html",'<div id="openchannel-openchannelAccount" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-openchannelAccounts-button md-icon-button" aria-label="Go to openchannelAccounts" ng-click="vm.gotoOpenchannelAccounts()" translate translate-attr-aria-label="OPENCHANNEL.GO_TO_OPENCHANNELACCOUNTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="openchannelAccount-image" hide-xs>\n <img ng-src="assets/images/business/openchannelAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.openchannelAccount.id}}\n <span ng-if="vm.openchannelAccount.name">{{vm.openchannelAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="OPENCHANNEL.CREATED_AT"></span> <span>{{vm.openchannelAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.openchannelAccount, $event)" class="md-fab md-warn md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="OPENCHANNEL.AGENTADD_OPENCHANNELACCOUNT"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveOpenchannelAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (notificationForm.$invalid) || (transferForm.$invalid) || (proxyForm.$invalid) || (dispositionForm.$invalid) || (openchannelDispositionsForm.$invalid) || (openchannelCannedAnswersForm.$invalid) || (actionsForm.$invalid) || (interactionsForm.$invalid)" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="OPENCHANNEL.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="openchannelAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="OPENCHANNEL.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.openchannelAccount.name" ng-required="true" autofocus disabled>\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.KEY">key</label>\n <input type="text" name="key" ng-model="vm.openchannelAccount.key" md-maxlength="5" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'key\'].$error" ng-show="generalForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="OPENCHANNEL.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.REPLYURI">replyUri</label>\n <input type="url" name="replyUri" ng-model="vm.openchannelAccount.replyUri" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="OPENCHANNEL.HELP.REPLYURI"></span></div>\n <div ng-messages="generalForm[\'replyUri\'].$error" ng-show="generalForm[\'replyUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.REPLYURI_REQUIRED">replyUri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="OPENCHANNEL.ERRORS.REPLYURI_MUST_VALID_URL">replyUri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.LIST">List</label>\n <md-select name="ListId" ng-model="vm.openchannelAccount.ListId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="OPENCHANNEL.HELP.LIST"></span></div>\n <div ng-messages="generalForm[\'ListId\'].$error" ng-show="generalForm[\'ListId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.WAITFORTHEASSIGNEDAGENT">WaitForTheAssignedAgent</label>\n <input type="number" name="waitForTheAssignedAgent" ng-model="vm.openchannelAccount.waitForTheAssignedAgent" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'waitForTheAssignedAgent\'].$error" ng-show="generalForm[\'waitForTheAssignedAgent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.WAITFORTHEASSIGNEDAGENT_REQUIRED">WaitForTheAssignedAgent field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="OPENCHANNEL.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.MAPKEY">MapKey</label>\n <md-select name="mapKey" ng-model="vm.openchannelAccount.mapKey" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">None</md-option>\n <md-optgroup label="standard">\n <md-option ng-value="mapKey.columnName" ng-repeat="mapKey in vm.fields" ng-if="!mapKey.columnName.toString().startsWith(\'cf_\')" ng-disabled="mapKey.canSelect === false">{{ mapKey.displayName }}</md-option>\n </md-optgroup>\n <md-optgroup label="custom">\n <md-option ng-value="mapKey.columnName" ng-repeat="mapKey in vm.fields" ng-if="mapKey.columnName.toString().startsWith(\'cf_\')" ng-disabled="mapKey.canSelect === false">{{ mapKey.displayName }}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="generalForm[\'mapKey\'].$error" ng-show="generalForm[\'mapKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.MAPKEY_REQUIRED">MapKey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.openchannelAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.RECEIVEURI">receiveUri</label>\n <div layout="row" layout-align="center center">\n <button class="md-button md-fab md-mini md-primary" ngclipboard data-clipboard-target="#copytoclipboard-receiveUri" ngclipboard-success="vm.alert({title: \'copied to clipboard\', msg: e.text });" ngclipboard-error="vm.alert({title: \'error\', msg: \'copy to clipboard failed\'});">\n <md-icon md-font-icon="icon-clipboard-text"></md-icon>\n </button>\n <input class="md-input" type="text" id="copytoclipboard-receiveUri" name="receiveUri" ng-value="vm.location + \'/api/openchannel/accounts/\' + vm.openchannelAccount.id + \'/notify\'" ng-readonly="true">\n </div>\n <div class="hint"><span translate="OPENCHANNEL.HELP.RECEIVEURI"></span></div>\n </md-input-container>\n\n </form>\n </div>\n <div class="openchannelAccount-detail-form-container notification md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="OPENCHANNEL.NOTIFICATION">NOTIFICATION</div>\n </div>\n <form name="notificationForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.openchannelAccount.notificationSound" aria-label="notificationSound" ng-disabled="!vm.crudPermissions.canEdit"><span translate="OPENCHANNEL.NOTIFICATIONSOUND">notificationSound</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.openchannelAccount.notificationShake" aria-label="notificationShake" ng-disabled="!vm.crudPermissions.canEdit"><span translate="OPENCHANNEL.NOTIFICATIONSHAKE">notificationShake</span></md-switch>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="OPENCHANNEL.NOTIFICATIONTEMPLATE">notificationTemplate</label>\n <textarea aria-label="notificationTemplate notificationTemplate" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', removePlugins: \'magicline\' }" ng-model="vm.openchannelAccount.notificationTemplate"></textarea>\n </div>\n\n </form>\n </div>\n <div class="openchannelAccount-detail-form-container transfer md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="OPENCHANNEL.TRANSFER">TRANSFER</div>\n </div>\n <form name="transferForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.openchannelAccount.queueTransfer" aria-label="queueTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="OPENCHANNEL.QUEUETRANSFER">queueTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.openchannelAccount.queueTransfer == true" class="md-block">\n <label translate="OPENCHANNEL.QUEUETRANSFERTIMEOUT">queueTransferTimeout</label>\n <input type="number" name="queueTransferTimeout" ng-model="vm.openchannelAccount.queueTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'queueTransferTimeout\'].$error" ng-show="transferForm[\'queueTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.QUEUETRANSFERTIMEOUT_REQUIRED">queueTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="OPENCHANNEL.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.openchannelAccount.agentTransfer" aria-label="agentTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="OPENCHANNEL.AGENTTRANSFER">agentTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.openchannelAccount.agentTransfer == true" class="md-block">\n <label translate="OPENCHANNEL.AGENTTRANSFERTIMEOUT">agentTransferTimeout</label>\n <input type="number" name="agentTransferTimeout" ng-model="vm.openchannelAccount.agentTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'agentTransferTimeout\'].$error" ng-show="transferForm[\'agentTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.AGENTTRANSFERTIMEOUT_REQUIRED">agentTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="OPENCHANNEL.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="OPENCHANNEL.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <md-tab-body>\n <div class="openchannelAccount-detail-form-container proxy md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="OPENCHANNEL.PROXY">PROXY</div>\n </div>\n <form name="proxyForm" novalidate>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.TOKEN">token</label>\n <input type="text" name="token" ng-model="vm.openchannelAccount.token" autofocus disabled>\n\n <div class="hint"><span translate="OPENCHANNEL.HELP.TOKEN"></span></div>\n <div ng-messages="proxyForm[\'token\'].$error" ng-show="proxyForm[\'token\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.TOKEN_REQUIRED">token field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="openchannelAccount-detail-form-container disposition md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="OPENCHANNEL.DISPOSITION">DISPOSITION</div>\n </div>\n <form name="dispositionForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.openchannelAccount.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="OPENCHANNEL.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.openchannelAccount.mandatoryDisposition" class="md-block">\n <label translate="OPENCHANNEL.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.openchannelAccount.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="OPENCHANNEL.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="dispositionForm[\'mandatoryDispositionPauseId\'].$error" ng-show="dispositionForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="OPENCHANNEL.DISPOSITIONS">DISPOSITIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div ng-controller="OpenchannelAccountDispositionsController as vm_dc" ng-init="vm_dc.init(vm.openchannelAccount, vm.crudPermissions)">\n <div layout="row">\n <div class="column" flex="20">\n <md-card class="mt-0">\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm_dc.query.level = null; vm_dc.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\n </button>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm_dc.query.level" ng-change="vm_dc.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm_dc.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n <div class="openchannelAccount-detail-form-container openchanneldispositions md-background-bg md-whiteframe-1dp" flex="80">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedOpenchannelAccountDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="OPENCHANNEL.DISPOSITIONS">Dispositions</span>\n <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditDisposition($event)" aria-label="Add openchannel dispositions" translate translate-attr-label="OPENCHANNEL.ADD_DISPOSITION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedDispositions.length}}\n {{vm_dc.selectedDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedDispositions" csv-label="true" filename="openchannelAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedDispositions($event)" aria-label="delete selected" translate translate-attr-label="OPENCHANNEL.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_dc.selectedDispositions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getDispositions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'OPENCHANNEL.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'OPENCHANNEL.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'OPENCHANNEL.DESCRIPTION\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_dc.dispositions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="OPENCHANNEL.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="disposition" md-select-id="id" ng-repeat="disposition in vm_dc.dispositions.rows">\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm_dc.levels[disposition.level] }}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="OPENCHANNEL.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(disposition, $event)" translate="TOOLS.DELETE_DISPOSITION">\n Delete Disposition\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'OPENCHANNEL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'OPENCHANNEL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'OPENCHANNEL.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.dispositions.count}}" md-on-paginate="vm_dc.getDispositions" md-page-select>\n </md-table-pagination>\n </div>\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="OPENCHANNEL.CANNEDANSWERS">CANNEDANSWERS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="openchannelAccount-detail-form-container openchannelcannedanswers md-background-bg md-whiteframe-1dp">\n <div ng-controller="OpenchannelAccountOpenchannelCannedAnswersController as vm_dc" ng-init="vm_dc.init(vm.openchannelAccount, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedOpenchannelAccountOpenchannelCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="OPENCHANNEL.OPENCHANNELCANNEDANSWERS">OpenchannelCannedAnswers</span>\n <ms-search-bar on-search="vm_dc.getOpenchannelAccountOpenchannelCannedAnswers()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event)" aria-label="add openchannelCannedAnswer" translate translate-attr-label="OPENCHANNEL.ADD_OPENCHANNELCANNEDANSWER">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedOpenchannelAccountOpenchannelCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedOpenchannelAccountOpenchannelCannedAnswers.length}} {{vm_dc.selectedOpenchannelAccountOpenchannelCannedAnswers.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedOpenchannelAccountOpenchannelCannedAnswers" csv-label="true" filename="openchannelAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedOpenchannelAccountOpenchannelCannedAnswers($event)" aria-label="delete selected" translate translate-attr-label="OPENCHANNEL.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedOpenchannelAccountOpenchannelCannedAnswers" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getOpenchannelAccountOpenchannelCannedAnswers">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'OPENCHANNEL.ID\' | translate }}\n </th>\n <th md-column md-order-by="key">\n {{ \'OPENCHANNEL.KEY\' | translate }}\n </th>\n <th md-column md-order-by="value">\n {{ \'OPENCHANNEL.VALUE\' | translate }}\n </th>\n <th md-column md-order-by="description">\n {{ \'OPENCHANNEL.DESCRIPTION\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'OPENCHANNEL.CREATED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="openchannelCannedAnswer" md-select-id="id" ng-repeat="openchannelCannedAnswer in vm_dc.openchannelAccountOpenchannelCannedAnswers.rows">\n <td ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event, openchannelCannedAnswer)" md-cell>\n {{openchannelCannedAnswer.id}}\n </td>\n <td ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event, openchannelCannedAnswer)" md-cell>\n {{openchannelCannedAnswer.key}}\n </td>\n <td ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event, openchannelCannedAnswer)" md-cell>\n {{openchannelCannedAnswer.value}}\n </td>\n <td ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event, openchannelCannedAnswer)" md-cell>\n {{openchannelCannedAnswer.description}}\n </td>\n <td ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event, openchannelCannedAnswer)" md-cell>\n {{ openchannelCannedAnswer.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="OPENCHANNEL.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event, openchannelCannedAnswer)" translate="OPENCHANNEL.EDIT_OPENCHANNELCANNEDANSWER">\n Edit OpenchannelCannedAnswer\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(openchannelCannedAnswer, $event)" translate="OPENCHANNEL.DELETE_OPENCHANNELCANNEDANSWER">\n Delete OpenchannelCannedAnswer\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.openchannelAccountOpenchannelCannedAnswers.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="OPENCHANNEL.NO_OPENCHANNELCANNEDANSWER_AVAILABLE">No openchannelcannedanswer available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'OPENCHANNEL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'OPENCHANNEL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'OPENCHANNEL.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.openchannelAccountOpenchannelCannedAnswers.count}}" md-on-paginate="vm_dc.getOpenchannelAccountOpenchannelCannedAnswers" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="OPENCHANNEL.ACTIONS">ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="openchannelAccount-detail-form-container actions md-background-bg md-whiteframe-1dp">\n <div ng-controller="OpenchannelAccountActionsController as vm_ac" ng-init="vm_ac.init(vm.openchannelAccount, vm.crudPermissions)" class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- SIDENAV --\x3e\n <div class="navigation-simple sidenav main-sidenav md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="20" ng-if="vm_ac.crudPermissions.canEdit">\n \x3c!-- SIDENAV CONTENT --\x3e\n <md-list class="no-padding">\n <md-subheader class="md-no-sticky">\n <span translate="VOICE.APPLICATIONS_LIST">\n Applications List\n </span>\n </md-subheader>\n </md-list>\n <md-divider></md-divider>\n <md-list ng-sortable="vm_ac.list">\n <md-list-item class="handle" ng-repeat="a in vm_ac.apps">\n <md-icon md-font-icon="{{a.icon}}" class="s16"></md-icon>\n <p class="text-truncate" translate="OPENCHANNEL.{{(a.appAlias || a.appType) | uppercase}}">{{a.appAlias || a.appType}}</p>\n </md-list-item>\n </md-list>\n \x3c!-- / SIDENAV CONTENT --\x3e\n </div>\n \x3c!-- / SIDENAV --\x3e\n <div flex></div>\n \x3c!-- MAIN --\x3e\n <div class="main scrollable md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="{{vm_ac.crudPermissions.canEdit ? 75 : 100}}">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_ac.selectedOpenchannelAccountApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">Drag & Drop Routing</span>\n <div flex></div>\n <ms-search-bar on-search="vm_ac.query.filter = query" on-collapse="vm_ac.query.filter = undefined" debounce="300"></ms-search-bar>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_ac.selectedOpenchannelAccountApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_ac.selectedOpenchannelAccountApps.length}} {{vm_ac.selectedOpenchannelAccountApps.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_ac.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_ac.deleteSelectedOpenchannelAccountApps($event)" aria-label="delete selected" translate translate-attr-label="OPENCHANNEL.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n \x3c!-- QUEUES TABLE --\x3e\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_ac.selectedOpenchannelAccountApps">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column width="10px">\n <span translate="VOICE.PRIORITY">Priority</span>\n </th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </th>\n <th md-column width="10px"></th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body ng-sortable="vm_ac.applications">\n <tr md-row md-select="app" md-select-id="id" ng-repeat="app in vm_ac.openchannelAccountApps.rows | filter: vm_ac.query.filter">\n <td md-cell>\n <md-icon md-font-icon="icon-drag-vertical" class="s16 handle"></md-icon>\n </td>\n <td md-cell ng-click="vm_ac.editOpenchannelAccountApp($event, $index)"><span>{{app.priority}}</span></td>\n <td md-cell ng-click="vm_ac.editOpenchannelAccountApp($event, $index)">{{app.app.toLowerCase() === \'agi\' ? \'Cally-Square\' : app.app | ucfirst}}<span ng-if="app.appType.toLowerCase() === \'custom\'">*</span></td>\n <td md-cell ng-click="vm_ac.editOpenchannelAccountApp($event, $index)"><span class="text-truncate" style="width:200px">{{app.appdata}}</span></td>\n <td md-cell ng-click="vm_ac.editInterval($event, $index)">{{app.IntervalId ? \'From List\' : app.interval}}</td>\n <td md-cell>\n <md-button ng-click="vm_ac.editInterval($event, $index)" class="md-icon-button" aria-label="Interval">\n <md-icon md-font-icon="icon-timer"></md-icon>\n <md-tooltip>\n {{app.IntervalId ? \'From List\' : (app.interval === \'*,*,*,*\' ? \'Always\' : \'Custom\')}}\n </md-tooltip>\n </md-button>\n </td>\n <td md-cell class="actions" ng-if="!vm_ac.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_ac.crudPermissions.canEdit">\n <md-button ng-click="vm_ac.editOpenchannelAccountApp($event, $index)" translate="VOICE.EDIT_APP">\n Edit App\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_ac.crudPermissions.canEdit">\n <md-button ng-click="vm_ac.editInterval($event, $index)" translate="VOICE.EDIT_INTERVAL">\n Edit Interval\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_ac.crudPermissions.canDelete">\n <md-button ng-click="vm_ac.deleteConfirm(app, $index, $event)" translate="VOICE.DELETE_APP">\n Delete App\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-hide="vm_ac.openchannelAccountApps.rows.length">\n <td md-cell colspan="7">\n <span class="text-boxed-light" translate="VOICE.NO_APPS_AVAILABLE">No apps available</span>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n \x3c!-- / QUEUES TABLE --\x3e\n\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="OPENCHANNEL.INTERACTIONS">INTERACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="openchannelAccount-detail-form-container interactions md-background-bg md-whiteframe-1dp">\n <div ng-controller="OpenchannelAccountInteractionsController as vm_dc" ng-init="vm_dc.init(vm.openchannelAccount, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedOpenchannelAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="OPENCHANNEL.INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm_dc.getOpenchannelAccountInteractions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_dc.quickFilters" query="vm_dc.query" search="vm_dc.getOpenchannelAccountInteractions()"></ms-quick-filter>\n <div layout="column">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini md-accent-bg\': vm_dc.query.search }" aria-label="Filter" translate translate-attr-aria-label="DASHBOARDS.FILTER" ng-click="vm_dc.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm_dc.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'blink\': vm_dc.query.search }"></md-icon>\n </md-button>\n </div>\n <md-button class="md-icon-button" ng-click="vm_dc.getOpenchannelAccountInteractions()" aria-label="refresh Interactions" translate translate-attr-label="OPENCHANNEL.REFRESH_INTERACTIONS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedOpenchannelAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedOpenchannelAccountInteractions.length}} {{vm_dc.selectedOpenchannelAccountInteractions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedOpenchannelAccountInteractions" csv-label="true" filename="openchannelAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedOpenchannelAccountInteractions($event)" aria-label="delete selected" translate translate-attr-label="OPENCHANNEL.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedOpenchannelAccountInteractions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getOpenchannelAccountInteractions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'OPENCHANNEL.ID\' | translate }}\n </th>\n <th md-column class="no-padding">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column md-order-by="contactName">\n {{ \'OPENCHANNEL.CONTACT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'OPENCHANNEL.STARTEDAT\' | translate }}\n </th>\n <th md-column md-order-by="lastMsgAt">\n {{ \'OPENCHANNEL.LASTMESSAGE\' | translate }}\n </th>\n <th md-column md-order-by="closed">\n {{ \'OPENCHANNEL.STATUS\' | translate }}\n </th>\n <th md-column>\n {{ \'OPENCHANNEL.AGENT\' | translate }}\n </th>\n <th md-column md-order-by="tag">\n {{ \'OPENCHANNEL.TAGS\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="interaction" md-select-id="id" ng-repeat="interaction in vm_dc.openchannelAccountInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td md-cell>\n {{interaction.id}}\n </td>\n <td md-cell class="no-padding">\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="user in interaction.Users">{{ user.fullname | translate }}\n <span ng-if="!$last">, </span>\n </span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg md-primary-bg" layout-margin>{{ interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.attach">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td md-cell privacy ng-cloak>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'margin-bottom-0\' : interaction.contactInfo}" layout-margin>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text margin-top-0" layout-margin>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td md-cell>\n {{ interaction.createdAt | formatdate }}\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}"></md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="text-truncate">{{ interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n </td>\n <td md-cell>\n <span ng-if="interaction.closed === 0" class="green-fg">\n {{ \'OPENCHANNEL.OPENED\' | translate }}\n <span ng-if="interaction.substatus">\n - {{ interaction.substatus }}\n </span>\n </span>\n <span ng-if="interaction.closed === 1" class="red-fg">\n {{ \'OPENCHANNEL.CLOSED\' | translate }}\n <span ng-if="interaction.disposition">\n - {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}\n </span>\n <md-tooltip class="multiline">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n </span>\n </td>\n\n <td md-cell>\n {{interaction.Owner.name}}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="OPENCHANNEL.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm_dc.spyopenchannelInteraction($event, interaction)" translate="OPENCHANNEL.SPYINTERACTION">\n Spy Interaction\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.role === \'admin\' || (vm_dc.userProfile.downloadOmnichannelInteractions && vm_dc.userProfile.downloadAttachments)">\n <md-button class="md-primary" ng-click="vm_dc.openchannelInteractionDownload(interaction, $event, true)" translate="OPENCHANNEL.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.role === \'admin\' || vm_dc.userProfile.downloadOmnichannelInteractions">\n <md-button class="md-primary" ng-click="vm_dc.openchannelInteractionDownload(interaction, $event)" translate="OPENCHANNEL.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(interaction, $event)" translate="OPENCHANNEL.DELETE_INTERACTION">\n Delete Interaction\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.openchannelAccountInteractions.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="OPENCHANNEL.NO_INTERACTION_AVAILABLE">No interaction available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'OPENCHANNEL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'OPENCHANNEL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'OPENCHANNEL.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.openchannelAccountInteractions.count}}" md-on-paginate="vm_dc.getOpenchannelAccountInteractions" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/openchannelAccounts.html",'<div id="openchannelAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-google-earth" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="OPENCHANNEL.OPENCHANNELACCOUNTS">OpenchannelAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="OPENCHANNEL.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedOpenchannelAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedOpenchannelAccounts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="OPENCHANNEL.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-openchannelAccounts-count">\n <span>{{vm.selectedOpenchannelAccounts.length}}</span>\n <span translate="OPENCHANNEL.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="OPENCHANNEL.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllOpenchannelAccounts()" translate="OPENCHANNEL.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectOpenchannelAccounts()" translate="OPENCHANNEL.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedOpenchannelAccounts" csv-label="true" filename="openchannelAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedOpenchannelAccounts($event)" aria-label="delete selected" translate translate-attr-label="OPENCHANNEL.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- OPENCHANNELACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedOpenchannelAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getOpenchannelAccounts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'OPENCHANNEL.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'OPENCHANNEL.NAME\' | translate }}</th>\n <th md-column md-order-by="key">{{ \'OPENCHANNEL.KEY\' | translate }}</th>\n <th md-column md-order-by="replyUri">{{ \'OPENCHANNEL.REPLYURI\' | translate }}</th>\n <th md-column md-order-by="ListId">{{ \'OPENCHANNEL.LIST\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'OPENCHANNEL.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.openchannelAccounts.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="OPENCHANNEL.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="openchannelAccount" md-select-id="id" ng-repeat="openchannelAccount in vm.openchannelAccounts.rows">\n <td md-cell ng-if="openchannelAccount.userpic"><img class="avatar" alt="{{openchannelAccount.name}}" ng-src="api/users/{{openchannelAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!openchannelAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{openchannelAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelAccount, ev) : vm.createOrEditOpenchannelAccount($event, openchannelAccount)" md-cell class="id ">{{openchannelAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelAccount, ev) : vm.createOrEditOpenchannelAccount($event, openchannelAccount)" md-cell class="name ">{{openchannelAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelAccount, ev) : vm.createOrEditOpenchannelAccount($event, openchannelAccount)" md-cell class="key ">{{openchannelAccount.key}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelAccount, ev) : vm.createOrEditOpenchannelAccount($event, openchannelAccount)" md-cell class="replyUri ">{{openchannelAccount.replyUri}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelAccount, ev) : vm.createOrEditOpenchannelAccount($event, openchannelAccount)" md-cell class="ListId ">{{ (vm.lists | filter : {\'id\':openchannelAccount.ListId} : true)[0].name }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelAccount, ev) : vm.createOrEditOpenchannelAccount($event, openchannelAccount)" md-cell class="description ">{{openchannelAccount.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="OPENCHANNEL.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(openchannelAccount, $event )" translate="OPENCHANNEL.EDIT_OPENCHANNELACCOUNT">\n Edit OpenchannelAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.interactionsgoto(openchannelAccount, $event )" translate="OPENCHANNEL.INTERACTIONS_OPENCHANNELACCOUNT">\n Interactions OpenchannelAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(openchannelAccount, $event )" translate="OPENCHANNEL.AGENTADD_OPENCHANNELACCOUNT">\n AgentAdd OpenchannelAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(openchannelAccount, $event )" translate="OPENCHANNEL.DELETE_OPENCHANNELACCOUNT">\n Delete OpenchannelAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'OPENCHANNEL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'OPENCHANNEL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'OPENCHANNEL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.openchannelAccounts.count}}" md-on-paginate="vm.getOpenchannelAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / OPENCHANNELACCOUNT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD OPENCHANNELACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-openchannelAccount-button" ng-click="vm.createOrEditOpenchannelAccount($event)" aria-label="add openchannelAccount" translate translate-attr-aria-label="OPENCHANNEL.ADD_OPENCHANNELACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD OPENCHANNELACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/openchannel/views/openchannelQueues/create/dialog.html",'<md-dialog class="openchannelQueue-dialog" aria-label="New OpenchannelQueue">\n <form name="openchannelQueueForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.openchannelQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newOpenchannelQueue">\n\n <div class="hint"><span translate="OPENCHANNEL.HELP.NAME"></span></div>\n <div ng-messages="openchannelQueueForm[\'name\'].$error" ng-show="openchannelQueueForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="OPENCHANNEL.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.openchannelQueue.strategy" required>\n <md-option ng-value="\'beepall\'">Beepall</md-option>\n <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n </md-select>\n <div ng-messages="openchannelQueueForm[\'strategy\'].$error" ng-show="openchannelQueueForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.AGENT_TIMEOUT">Agent_Timeout</label>\n <input type="number" name="timeout" ng-model="vm.openchannelQueue.timeout" min="1" max="2147483" value="10" ng-required="true">\n\n <div ng-messages="openchannelQueueForm[\'timeout\'].$error" ng-show="openchannelQueueForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="OPENCHANNEL.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.openchannelQueue.description">\n\n <div ng-messages="openchannelQueueForm[\'description\'].$error" ng-show="openchannelQueueForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newOpenchannelQueue" ng-click="vm.saveOpenchannelQueue()" class="send-button md-accent md-raised" ng-disabled="openchannelQueueForm.$invalid || openchannelQueueForm.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newOpenchannelQueue" ng-click="vm.addNewOpenchannelQueue()" class="send-button md-accent md-raised" ng-disabled="openchannelQueueForm.$invalid" aria-label="ADD" translate="OPENCHANNEL.ADD_OPENCHANNELQUEUE" translate-attr-aria-label="OPENCHANNEL.ADD_OPENCHANNELQUEUE">\n ADD OPENCHANNELQUEUE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newOpenchannelQueue" ng-click="vm.deleteOpenchannelQueue($event)" aria-label="DELETE" translate translate-attr-aria-label="OPENCHANNEL.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="OPENCHANNEL.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelQueues/edit/agentadd/agentadd.html",'<md-dialog class="openchannelQueue-dialog" aria-label="openchannelQueue" ng-init="vm.onInit()">\n <form name="openchannelQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="OPENCHANNEL.AGENTADD_OPENCHANNELQUEUE">Add Agent to openchannelQueue</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelQueues/edit/teamadd/teamadd.html",'<md-dialog class="openchannelQueue-dialog" aria-label="openchannelQueue" ng-init="vm.onInit()">\n <form name="openchannelQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="OPENCHANNEL.TEAMS_ASSOCIATION">Teams Association</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelQueues/edit/view.html",'<div id="openchannel-openchannelQueue" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-openchannelQueues-button md-icon-button" aria-label="Go to openchannelQueues" ng-click="vm.gotoOpenchannelQueues()" translate translate-attr-aria-label="OPENCHANNEL.GO_TO_OPENCHANNELQUEUES">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="openchannelQueue-image" hide-xs>\n <img ng-src="assets/images/business/openchannelQueues.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.openchannelQueue.id}}\n <span ng-if="vm.openchannelQueue.name">{{vm.openchannelQueue.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="OPENCHANNEL.CREATED_AT"></span> <span>{{vm.openchannelQueue.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.teamadddialog(vm.openchannelQueue, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n <md-tooltip><span translate="OPENCHANNEL.TEAMADD_OPENCHANNELQUEUE"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.openchannelQueue, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="OPENCHANNEL.AGENTADD_OPENCHANNELQUEUE"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-plus"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveOpenchannelQueue()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid)" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="OPENCHANNEL.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="openchannelQueue-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="OPENCHANNEL.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.openchannelQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="OPENCHANNEL.HELP.NAME"></span></div>\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="OPENCHANNEL.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.openchannelQueue.strategy" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'beepall\'">Beepall</md-option>\n <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n </md-select>\n <div ng-messages="generalForm[\'strategy\'].$error" ng-show="generalForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.AGENT_TIMEOUT">Agent_Timeout</label>\n <input type="number" name="timeout" ng-model="vm.openchannelQueue.timeout" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'timeout\'].$error" ng-show="generalForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="OPENCHANNEL.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.openchannelQueue.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/openchannel/views/openchannelQueues/openchannelQueues.html",'<div id="openchannelQueues" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-google-earth" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="OPENCHANNEL.OPENCHANNELQUEUES">OpenchannelQueues</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="OPENCHANNEL.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedOpenchannelQueues.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedOpenchannelQueues =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="OPENCHANNEL.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-openchannelQueues-count">\n <span>{{vm.selectedOpenchannelQueues.length}}</span>\n <span translate="OPENCHANNEL.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="OPENCHANNEL.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllOpenchannelQueues()" translate="OPENCHANNEL.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectOpenchannelQueues()" translate="OPENCHANNEL.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedOpenchannelQueues" csv-label="true" filename="openchannelQueues.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedOpenchannelQueues($event)" aria-label="delete selected" translate translate-attr-label="OPENCHANNEL.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- OPENCHANNELQUEUE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedOpenchannelQueues" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getOpenchannelQueues">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'OPENCHANNEL.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'OPENCHANNEL.NAME\' | translate }}</th>\n <th md-column md-order-by="strategy">{{ \'OPENCHANNEL.STRATEGY\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.openchannelQueues.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="OPENCHANNEL.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="openchannelQueue" md-select-id="id" ng-repeat="openchannelQueue in vm.openchannelQueues.rows">\n <td md-cell ng-if="openchannelQueue.userpic"><img class="avatar" alt="{{openchannelQueue.name}}" ng-src="api/users/{{openchannelQueue.id}}/avatar" /></td>\n <td md-cell ng-if="!openchannelQueue.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{openchannelQueue.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelQueue, ev) : vm.createOrEditOpenchannelQueue($event, openchannelQueue)" md-cell class="id ">{{openchannelQueue.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelQueue, ev) : vm.createOrEditOpenchannelQueue($event, openchannelQueue)" md-cell class="name ">{{openchannelQueue.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelQueue, ev) : vm.createOrEditOpenchannelQueue($event, openchannelQueue)" md-cell class="strategy ">{{ vm.arraystrategy[openchannelQueue.strategy].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="OPENCHANNEL.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(openchannelQueue, $event )" translate="OPENCHANNEL.EDIT_OPENCHANNELQUEUE">\n Edit OpenchannelQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(openchannelQueue, $event )" translate="OPENCHANNEL.TEAMADD_OPENCHANNELQUEUE">\n teamadd OpenchannelQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(openchannelQueue, $event )" translate="OPENCHANNEL.AGENTADD_OPENCHANNELQUEUE">\n agentadd OpenchannelQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(openchannelQueue, $event )" translate="OPENCHANNEL.DELETE_OPENCHANNELQUEUE">\n Delete OpenchannelQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(openchannelQueue, $event )" translate="OPENCHANNEL.GOTOREALTIME_OPENCHANNELQUEUE">\n goToRealtime OpenchannelQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'OPENCHANNEL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'OPENCHANNEL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'OPENCHANNEL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.openchannelQueues.count}}" md-on-paginate="vm.getOpenchannelQueues" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / OPENCHANNELQUEUE TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD OPENCHANNELQUEUE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-openchannelQueue-button" ng-click="vm.createOrEditOpenchannelQueue($event)" aria-label="add openchannelQueue" translate translate-attr-aria-label="OPENCHANNEL.ADD_OPENCHANNELQUEUE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD OPENCHANNELQUEUE BUTTON --\x3e\n</div>'),e.put("app/main/apps/openchannel/views/realtime/agents/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="OPENCHANNEL.AGENTS">Agents</span>\n <div flex></div>\n <ms-search-bar on-search="vm.onInit()" query="vm.query" on-collapse="vm.query.filter = undefined; vm.onInit()" debounce="300"></ms-search-bar>\n <md-select ng-model="vm.query.globalStatusFilter" class="md-caption" ng-change="vm.query.pauseTypeFilter = \'\'; vm.onInit()">\n <md-option ng-value="\'\'">{{ \'OPENCHANNEL.ALL\' | translate }}</md-option>\n <md-option value="pause">{{ \'OPENCHANNEL.PAUSE\' | translate }}</md-option>\n <md-option value="*pause">{{ \'OPENCHANNEL.PARTIALPAUSE\' | translate }}</md-option>\n <md-option value="busy">{{ \'OPENCHANNEL.BUSY\' | translate }}</md-option>\n <md-option value="idle">{{ \'OPENCHANNEL.IDLE\' | translate }}</md-option>\n </md-select>\n <md-select ng-if="vm.isPause(vm.query.globalStatusFilter)" ng-model="vm.query.pauseTypeFilter" class="md-caption" ng-change="vm.onInit()">\n <md-option ng-value="\'\'">All</md-option>\n <md-option value="DEFAULT PAUSE">DEFAULT PAUSE</md-option>\n <md-option value="ACW">ACW</md-option>\n <md-option value="LOGININPAUSE">LOGININPAUSE</md-option>\n <md-option value="Auto-Pause">AUTOPAUSE</md-option>\n <md-option ng-value="pause.name" ng-repeat="pause in vm.pauses.rows">{{pause.name}}</md-option>\n </md-select>\n </div>\n</md-toolbar>\n\x3c!-- AGENT TABLE --\x3e\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.order" md-on-reorder="vm.onInit">\n <tr md-row border="1">\n <th class="bv text-center" colspan="5">{{ \'OPENCHANNEL.AGENT\' | translate }}</th>\n <th class="bv bl text-center" colspan="2">{{ \'VOICE.VOICE\' | translate }}</th>\n <th ng-if="vm.license.chat" class="bv bl text-center" colspan="2">{{ \'CHAT.CHAT\' | translate }}</th>\n <th ng-if="vm.license.mail" class="bv bl text-center" colspan="2">{{ \'MAIL.MAIL\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="bv bl text-center" colspan="2">{{ \'SMS.SMS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="bv bl text-center" colspan="2">\n {{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="bv bl text-center" colspan="2">\n {{ \'WHATSAPP.WHATSAPP\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n </tr>\n <tr md-row>\n <th class="bl" colspan="2" md-column md-order-by="fullname">\n {{ \'OPENCHANNEL.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">\n {{ \'OPENCHANNEL.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">\n {{ \'OPENCHANNEL.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">\n {{ \'OPENCHANNEL.PAUSE_TIME\' | translate }}</th>\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\n <th ng-if="vm.license.chat" class="bl text-center">{{ \'CHAT.STATUS\' | translate }}</th>\n <th ng-if="vm.license.chat" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'CHAT.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.mail" class="bl text-center">{{ \'MAIL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.mail" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'MAIL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.messaging" class="bl text-center">{{ \'SMS.STATUS\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'SMS.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.openchannel" class="bl text-center">{{ \'OPENCHANNEL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'OPENCHANNEL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.fax" class="bl text-center">{{ \'FAX.STATUS\' | translate }}</th>\n <th ng-if="vm.license.fax" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'FAX.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.whatsapp" class="bl text-center">{{ \'WHATSAPP.STATUS\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'WHATSAPP.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.order.length">\n <td md-cell colspan="19">\n <div layout="row" layout-align="center center">\n <span>{{ \'OPENCHANNEL.NO_AGENT_ONLINE\' | translate }}</span>\n </div>\n </td>\n </tr>\n <tr md-select="vm.agents[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td class="bt padding-5">\n <div layout="row" layout-align="start center">\n <img class="avatar" ng-src="{{vm.agents[value].userpic && \'api/users/\'+vm.agents[value].id+\'/avatar\' || \'assets/images/avatars/profile.png\'}}">\n <div layout="column">\n <span>{{vm.agents[value].fullname}}</span>\n <span>{{vm.agents[value].internal}}</span>\n </div>\n </div>\n </td>\n <td class="bt padding-5">\n <div layout="row" layout-align="start center" ng-if="vm.license.screenrecording && (vm.agents[value].phoneBarEnableScreenRecordingByAgent || vm.agents[value].phoneBarEnableAutomaticScreenRecording)">\n <div class="column" ng-if="vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: green; font-size: 36px;" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'OPENCHANNEL.TOOLTIP_SCREENRECORDING_ON\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n <div class="column" ng-if="!vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: gray" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'OPENCHANNEL.TOOLTIP_SCREENRECORDING_OFF\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n </div>\n </td>\n <td class="bt">\n'+" <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','busy':'indigo-100-bg','*pause':'amber-50-bg','pause':'amber-200-bg'}[vm.agents[value].globalStatus]\">{{\n vm.isPause(vm.agents[value].globalStatus) ? '' : vm.agents[value].globalStatus | uppercase }}\n {{ vm.isPause(vm.agents[value].globalStatus) ? (vm.isPartialPause(vm.agents[value].globalStatus) ?\n '*'+vm.agents[value].pauseType || 'DEFAULT PAUSE' : vm.agents[value].pauseType || 'DEFAULT PAUSE') :\n ''}}</span>\n </td>\n <td class=\"bt custom-column\">\n <timer start-time=\"vm.agents[value].lastLoginAt\"></timer>\n </td>\n <td class=\"bt custom-column\">\n <timer ng-if=\"vm.isPause(vm.agents[value].globalStatus) || vm.isPartialPause(vm.agents[value].globalStatus)\" start-time=\"vm.agents[value].lastPauseAt\"></timer>\n </td>\n <td class=\"bt bl\">\n <div layout=\"row\">\n <span ng-if=\"!vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','talking':'indigo-100-bg','ringing':'orange-400-bg','pause':'amber-200-bg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].voiceStatus | uppercase }}</span>\n <span ng-if=\"vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5 orange-400-bg\">ONHOLD</span>\n </div>\n </td>\n <td class=\"bt bl\">\n <div layout=\"column\">\n <span ng-if=\"vm.agents[value].queue\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].queue }}</span>\n <span ng-if=\"vm.agents[value].destconnectedlinenum\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\" privacy ng-cloak>{{\n vm.agents[value].destconnectedlinenum }}</span>\n <span ng-if=\"vm.agents[value].routealias\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].routealias }}</span>\n <span class=\"padding-5\" ng-if=\"vm.agents[value].queue || vm.agents[value].destconnectedlinenum\">\n <timer start-time=\"vm.agents[value].voiceStatusTime\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">\n </timer>\n </span>\n </div>\n </td>\n <td class=\"bt bl\" ng-if=\"vm.license.chat\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].chatStatus]\">{{\n vm.agents[value].chatStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td md-number class=\"bt text-center font-size-20\" ng-if=\"vm.license.chat\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].chatStatus]\">\n {{ vm.agents[value].chatCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.mail\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].mailStatus]\">{{\n vm.agents[value].mailStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.mail\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].mailStatus]\">\n {{ vm.agents[value].mailCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.messaging\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].smsStatus]\">{{\n vm.agents[value].smsStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.messaging\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].smsStatus]\">\n {{ vm.agents[value].smsCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.openchannel\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].openchannelStatus]\">{{\n vm.agents[value].openchannelStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.openchannel\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].openchannelStatus]\">\n {{ vm.agents[value].openchannelCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.fax\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].faxStatus]\">{{\n vm.agents[value].faxStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.fax\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].faxStatus]\">\n {{ vm.agents[value].faxCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.whatsapp\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].whatsappStatus]\">{{\n vm.agents[value].whatsappStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.whatsapp\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].whatsappStatus]\">\n {{ vm.agents[value].whatsappCurrentCapacity }}</td>\n <td class=\"bl bt padding-5 text-center\" ng-if=\"vm.crudPermissions.canEdit\">\n <md-menu>\n <md-button class=\"md-icon-button\" aria-label=\"More\" translate translate-attr-aria-label=\"STAFF.MORE\" ng-click=\"$mdOpenMenu($event)\">\n <md-icon md-font-icon=\"icon-dots-vertical\"></md-icon>\n </md-button>\n <md-menu-content width=\"4\">\n <md-menu-item>\n <md-button ng-click=\"vm.logout(vm.agents[value], $event)\" translate=\"OPENCHANNEL.LOGOUT\">\n Logout\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click=\"vm.queueAdd(vm.agents[value], $event)\" translate=\"OPENCHANNEL.AGENTADD_QUEUE\">\n Add Agent In Queue\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.license.screenrecording && vm.agents[value].phoneBarEnableScreenRecordingByAgent\">\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"OPENCHANNEL.SCREENRECORDING\">Screen Recording\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if=\"!vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], true)\"><em translate=\"OPENCHANNEL.START_SCREENRECORDING\">Start\n Screen Recording</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], false)\"><em translate=\"OPENCHANNEL.STOP_SCREENRECORDING\">Stop\n Screen Recording</em></md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item>\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"OPENCHANNEL.PAUSE\">Pause</md-button>\n <md-menu-content>\n <md-menu-item>\n <md-button ng-disabled=\" vm.agents[value].voicePause && 'DEFAULT PAUSE' === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value])\"><em translate=\"OPENCHANNEL.DEFAULT_PAUSE\">Default\n Pause</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.pauses.rows.length\" ng-repeat=\"pause in vm.pauses.rows\">\n <md-button ng-disabled=\"vm.agents[value].voicePause && pause.name === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value], pause.name)\">{{pause.name}}\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.isPause(vm.agents[value].globalStatus)\">\n <md-button ng-click=\"vm.unPause(vm.agents[value])\" translate=\"OPENCHANNEL.UNPAUSE\">\n Unpause\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label=\"{page: '{{'OPENCHANNEL.PAGE' | translate}}:', rowsPerPage: '{{'OPENCHANNEL.ROWSPERPAGE' | translate}}:', of: '{{'OPENCHANNEL.OF' | translate}}'}\" md-limit=\"vm.query.limit\" md-limit-options=\"[10, 15, 20, 50, 100, 250]\" md-page=\"vm.query.page\" md-total=\"{{vm.filteredAgents.length}}\" md-on-paginate=\"vm.onInit\" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e"),e.put("app/main/apps/openchannel/views/realtime/queues/view.html",'<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="OPENCHANNEL.QUEUES">Queues</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getQueues">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'OPENCHANNEL.NAME\' | translate }}</th>\n <th md-column>{{ \'OPENCHANNEL.LOGGED_IN\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'OPENCHANNEL.PAUSED\' | translate }}</th>\n <th md-column>{{ \'OPENCHANNEL.WAITING\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.queues.count > 0">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="OPENCHANNEL.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="queue" md-select-id="id" ng-repeat="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedIn }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="OPENCHANNEL.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.editQueue($event, queue)" translate="OPENCHANNEL.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.addAgent($event, queue)" translate="OPENCHANNEL.AGENTSADD_QUEUE">\n Add Agents to queue\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'OPENCHANNEL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'OPENCHANNEL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'OPENCHANNEL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),e.put("app/main/apps/openchannel/views/realtime/realtime.html",'<div id="realtime" class="page-layout simple tabbed" layout="column" ng-cloak>\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="OPENCHANNEL.AGENTS">Agents</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="OPENCHANNEL.QUEUES">Queues</span>\n </md-tab-label>\n </md-tab>\n </md-tabs>\n\n <md-card ui-view></md-card>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/plugins/views/plugin/plugin.html",'<div ng-if="!vm.plugin">\n <p>Plugin not available...</p>\n</div>\n<div id="plugin" ng-if="vm.plugin" ng-cloak layout-fill>\n <iframe ng-src="{{vm.getTrustedURL()}}" frameborder=0 style="border:0px; width:100%; height:100%;"></iframe>\n</div>'),e.put("app/main/apps/settings/views/cloudProviders/cloudProviders.html",'<div id="cloudProviders" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-cog" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="SETTINGS.AITOOLS">AiTools</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="SETTINGS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedAiTools.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedAiTools =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="SETTINGS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-cloudProviders-count">\n <span>{{vm.selectedAiTools.length}}</span>\n <span translate="SETTINGS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="SETTINGS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllAiTools()" translate="SETTINGS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectAiTools()" translate="SETTINGS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedAiTools" csv-label="true" filename="cloudProviders.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-click="vm.deleteSelectedAiTools($event)" aria-label="delete selected" translate translate-attr-label="SETTINGS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- CLOUDPROVIDER TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedAiTools" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getAiTools">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'SETTINGS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'SETTINGS.NAME\' | translate }}</th>\n <th md-column md-order-by="service">{{ \'SETTINGS.SERVICE\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.cloudProviders.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="SETTINGS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="cloudProvider" md-select-id="id" ng-repeat="cloudProvider in vm.cloudProviders.rows">\n <td md-cell ng-if="cloudProvider.userpic"><img class="avatar" alt="{{cloudProvider.name}}" ng-src="api/users/{{cloudProvider.id}}/avatar" /></td>\n <td md-cell ng-if="!cloudProvider.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{cloudProvider.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditCloudProvider($event, cloudProvider)" md-cell class="id ">{{cloudProvider.id}}</td>\n <td ng-click="vm.createOrEditCloudProvider($event, cloudProvider)" md-cell class="name ">{{cloudProvider.name}}</td>\n <td ng-click="vm.createOrEditCloudProvider($event, cloudProvider)" md-cell class="service ">{{ vm.arrayservice[cloudProvider.service].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="SETTINGS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.editdialog(cloudProvider, $event )" translate="SETTINGS.EDIT_CLOUDPROVIDER">\n Edit CloudProvider\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.deleteconfirm(cloudProvider, $event )" translate="SETTINGS.DELETE_CLOUDPROVIDER">\n Delete CloudProvider\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'SETTINGS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SETTINGS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SETTINGS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.cloudProviders.count}}" md-on-paginate="vm.getAiTools" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / CLOUDPROVIDER TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD CLOUDPROVIDER BUTTON --\x3e\n <md-button class="md-fab md-accent" id="add-cloudProvider-button" ng-click="vm.createOrEditCloudProvider($event)" aria-label="add cloudProvider" translate translate-attr-aria-label="SETTINGS.ADD_CLOUDPROVIDER">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD CLOUDPROVIDER BUTTON --\x3e\n</div>'),e.put("app/main/apps/settings/views/cloudProviders/create/dialog.html",'<md-dialog class="cloudProvider-dialog" aria-label="New CloudProvider">\n <form name="cloudProviderForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SETTINGS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.cloudProvider.name" ng-required="true" autofocus>\n\n <div ng-messages="cloudProviderForm[\'name\'].$error" ng-show="cloudProviderForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.SERVICE">Service</label>\n <md-select name="service" ng-model="vm.cloudProvider.service" required ng-disabled="!vm.newCloudProvider">\n <md-option ng-value="\'AmazonAWS\'">AmazonAWS</md-option>\n </md-select>\n <div ng-messages="cloudProviderForm[\'service\'].$error" ng-show="cloudProviderForm[\'service\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SERVICE_REQUIRED">Service field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.cloudProvider.service == \'AmazonAWS\'" class="md-block">\n <label translate="SETTINGS.ACCESSKEY">AccessKey</label>\n <input type="text" name="data2" ng-model="vm.cloudProvider.data2" ng-required="true">\n\n <div ng-messages="cloudProviderForm[\'data2\'].$error" ng-show="cloudProviderForm[\'data2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.ACCESSKEY_REQUIRED">AccessKey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.cloudProvider.service == \'AmazonAWS\'" class="md-block">\n <label translate="SETTINGS.SECRETACCESSKEY">SecretAccesskey</label>\n <input type="text" name="data1" ng-model="vm.cloudProvider.data1" ng-required="true">\n\n <div ng-messages="cloudProviderForm[\'data1\'].$error" ng-show="cloudProviderForm[\'data1\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SECRETACCESSKEY_REQUIRED">SecretAccesskey field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="!vm.newCloudProvider" ng-click="vm.saveCloudProvider()" class="send-button md-accent md-raised" ng-disabled="cloudProviderForm.$invalid || cloudProviderForm.$pristine" aria-label="SAVE" translate="SETTINGS.SAVE" translate-attr-aria-label="SETTINGS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.newCloudProvider" ng-click="vm.addNewCloudProvider()" class="send-button md-accent md-raised" ng-disabled="cloudProviderForm.$invalid" aria-label="ADD" translate="SETTINGS.ADD_CLOUDPROVIDER" translate-attr-aria-label="SETTINGS.ADD_CLOUDPROVIDER">\n ADD CLOUDPROVIDER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-click="vm.deleteCloudProvider($event)" aria-label="DELETE" translate translate-attr-aria-label="SETTINGS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="SETTINGS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/settings/views/customizations/create/dialog.html",'<md-dialog class="customization-dialog" aria-label="New Customization">\n <form name="customizationForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.customization.defaultLogo" aria-label="Default_Logo"><span translate="SETTINGS.DEFAULT_LOGO">Default_Logo</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.customization.defaultLoginLogo" aria-label="Default_Login_Logo"><span translate="SETTINGS.DEFAULT_LOGIN_LOGO">Default_Login_Logo</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.customization.defaultFavicon" aria-label="Default_Favicon"><span translate="SETTINGS.DEFAULT_FAVICON">Default_Favicon</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.customization.defaultHeaderWhiteLabel" aria-label="Default_Header_WhiteLabel"><span translate="SETTINGS.DEFAULT_HEADER_WHITELABEL">Default_Header_WhiteLabel</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="!vm.customization.defaultHeaderWhiteLabel" class="md-block">\n <label translate="SETTINGS.HEADER_WHITELABEL">Header_WhiteLabel</label>\n <input type="text" name="headerWhiteLabel" ng-model="vm.customization.headerWhiteLabel" ng-required="true">\n\n <div ng-messages="customizationForm[\'headerWhiteLabel\'].$error" ng-show="customizationForm[\'headerWhiteLabel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.HEADER_WHITELABEL_REQUIRED">Header_WhiteLabel field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.customization.defaultPageTitle" aria-label="Default_Page_Title"><span translate="SETTINGS.DEFAULT_PAGE_TITLE">Default_Page_Title</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="!vm.customization.defaultPageTitle" class="md-block">\n <label translate="SETTINGS.PAGE_TITLE">Page_Title</label>\n <input type="text" name="pageTitle" ng-model="vm.customization.pageTitle" ng-required="true">\n\n <div ng-messages="customizationForm[\'pageTitle\'].$error" ng-show="customizationForm[\'pageTitle\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PAGE_TITLE_REQUIRED">Page_Title field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.license.preferred" class="md-block">\n <md-switch ng-model="vm.customization.defaultPreferred" aria-label="Default_Preferred"><span translate="SETTINGS.DEFAULT_PREFERRED">Default_Preferred</span></md-switch>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newCustomization" ng-click="vm.saveCustomization()" class="send-button md-accent md-raised" ng-disabled="customizationForm.$invalid || customizationForm.$pristine" aria-label="SAVE" translate="SETTINGS.SAVE" translate-attr-aria-label="SETTINGS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newCustomization" ng-click="vm.addNewCustomization()" class="send-button md-accent md-raised" ng-disabled="customizationForm.$invalid" aria-label="ADD" translate="SETTINGS.ADD_CUSTOMIZATION" translate-attr-aria-label="SETTINGS.ADD_CUSTOMIZATION">\n ADD CUSTOMIZATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newCustomization" ng-click="vm.deleteCustomization($event)" aria-label="DELETE" translate translate-attr-aria-label="SETTINGS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="SETTINGS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/settings/views/customizations/customizations.html",'<div id="customizations" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-cog" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="SETTINGS.CUSTOMIZATIONS">Customizations</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div>\n <md-button type="submit" ng-click="vm.saveCustomization()" ng-disabled="(customizationsForm.$pristine && logoForm.$pristine && logologinForm.$pristine && preferredForm.$pristine && faviconForm.$pristine) || (customizationsForm.$invalid || logoForm.$invalid || logologinForm.$invalid || preferredForm.$invalid || faviconForm.$invalid)" class="send-button md-accent md-raised" translate="SETTINGS.SAVE" translate-attr-aria-label="SETTINGS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n <div class="customization-detail-form-container customizations md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SETTINGS.CUSTOMIZATIONS">CUSTOMIZATIONS</div>\n </div>\n <form name="customizationsForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.customization.defaultLogo" aria-label="Default_Logo"><span translate="SETTINGS.DEFAULT_LOGO">Default_Logo</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.customization.defaultLoginLogo" aria-label="Default_Login_Logo"><span translate="SETTINGS.DEFAULT_LOGIN_LOGO">Default_Login_Logo</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.customization.defaultFavicon" aria-label="Default_Favicon"><span translate="SETTINGS.DEFAULT_FAVICON">Default_Favicon</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.customization.defaultHeaderWhiteLabel" aria-label="Default_Header_WhiteLabel"><span translate="SETTINGS.DEFAULT_HEADER_WHITELABEL">Default_Header_WhiteLabel</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="!vm.customization.defaultHeaderWhiteLabel" class="md-block">\n <label translate="SETTINGS.HEADER_WHITELABEL">Header_WhiteLabel</label>\n <input type="text" name="headerWhiteLabel" ng-model="vm.customization.headerWhiteLabel" ng-required="true">\n\n <div ng-messages="customizationsForm[\'headerWhiteLabel\'].$error" ng-show="customizationsForm[\'headerWhiteLabel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.HEADER_WHITELABEL_REQUIRED">Header_WhiteLabel field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.customization.defaultPageTitle" aria-label="Default_Page_Title"><span translate="SETTINGS.DEFAULT_PAGE_TITLE">Default_Page_Title</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="!vm.customization.defaultPageTitle" class="md-block">\n <label translate="SETTINGS.PAGE_TITLE">Page_Title</label>\n <input type="text" name="pageTitle" ng-model="vm.customization.pageTitle" ng-required="true">\n\n <div ng-messages="customizationsForm[\'pageTitle\'].$error" ng-show="customizationsForm[\'pageTitle\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PAGE_TITLE_REQUIRED">Page_Title field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.license.preferred" class="md-block">\n <md-switch ng-model="vm.customization.defaultPreferred" aria-label="Default_Preferred"><span translate="SETTINGS.DEFAULT_PREFERRED">Default_Preferred</span></md-switch>\n </md-input-container>\n\n </form>\n </div>\n\n <div ng-if="!vm.customization.defaultLogo" class="customization-detail-form-container logo md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SETTINGS.LOGO">LOGO</div>\n </div>\n <div ng-controller="CustomizationlogoController as vm_cl" ng-init="vm_cl.init(vm.customization)" class="customization-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="customization-image-uploader" flow-init="vm_cl.ngFlowOptions" flow-name="vm_cl.ngFlow.flow" flow-files-submitted="vm_cl.upload()" flow-file-added="vm_cl.fileAdded($file)" flow-file-success="vm_cl.fileSuccess($file, $message)" flow-complete="vm_cl.uploadComplete()" flow-drop flow-drag-enter="vm_cl.dropping=true" flow-drag-leave="vm_cl.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n <div class="drop-text hint-text" layout="row" layout-align="center center">\n <span translate="EC.DROP_TO_UPLOAD">Drop to upload</span>\n </div>\n\n <div class="upload-button" layout="column" layout-align="center center">\n <md-button class="md-accent md-raised" flow-btn>\n Upload\n </md-button>\n <span class="secondary-text mt-8">You can also drop images here to upload. Only PNG, JPG - Max. 8MB</span>\n </div>\n\n <div layout="row" layout-align="start start" layout-wrap>\n <div ng-repeat="logoimage in vm_cl.customization.images" ng-switch="logoimage.type">\n <div class="customization-image uploading" ng-switch-when="uploading" layout="row" layout-align="center center">\n <div class="overlay" layout="column" layout-align="center center">\n <md-progress-linear md-mode="determinate" value="{{logoimage.file.progress() * 100}}">\n </md-progress-linear>\n </div>\n <img class="media" flow-img="logoimage.file">\n </div>\n\n <div class="customization-image" ng-switch-when="image" layout="row" layout-align="center center">\n <img class="media" ng-src="{{logoimage.url}}">\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n\n <div ng-if="!vm.customization.defaultLoginLogo" class="customization-detail-form-container logologin md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SETTINGS.LOGOLOGIN">LOGOLOGIN</div>\n </div>\n <div ng-controller="CustomizationlogologinController as vm_cll" ng-init="vm_cll.init(vm.customization)" class="customization-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="customization-image-uploader" flow-init="vm_cll.ngFlowOptions" flow-name="vm_cll.ngFlow.flow" flow-files-submitted="vm_cll.upload()" flow-file-added="vm_cll.fileAdded($file)" flow-file-success="vm_cll.fileSuccess($file, $message)" flow-complete="vm_cll.uploadComplete()" flow-drop flow-drag-enter="vm_cll.dropping=true" flow-drag-leave="vm_cll.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n <div class="drop-text hint-text" layout="row" layout-align="center center">\n <span translate="EC.DROP_TO_UPLOAD">Drop to upload</span>\n </div>\n\n <div class="upload-button" layout="column" layout-align="center center">\n <md-button class="md-accent md-raised" flow-btn>\n Upload\n </md-button>\n <span class="secondary-text mt-8">You can also drop images here to upload. Only PNG, JPG - Max. 8MB</span>\n </div>\n\n <div layout="row" layout-align="start start" layout-wrap>\n <div ng-repeat="logologinimage in vm_cll.customization.images" ng-switch="logologinimage.type">\n <div class="customization-image uploading" ng-switch-when="uploading" layout="row" layout-align="center center">\n <div class="overlay" layout="column" layout-align="center center">\n <md-progress-linear md-mode="determinate" value="{{logologinimage.file.progress() * 100}}">\n </md-progress-linear>\n </div>\n <img class="media" flow-img="logologinimage.file">\n </div>\n\n <div class="customization-image" ng-switch-when="image" layout="row" layout-align="center center">\n <img class="media" ng-src="{{logologinimage.url}}">\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n\n <div ng-if="!vm.customization.defaultPreferred && vm.license.preferred" class="customization-detail-form-container preferred md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SETTINGS.PREFERRED">PREFERRED</div>\n </div>\n <div ng-controller="CustomizationpreferredController as vm_cp" ng-init="vm_cp.init(vm.customization)" class="customization-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="customization-image-uploader" flow-init="vm_cp.ngFlowOptions" flow-name="vm_cp.ngFlow.flow" flow-files-submitted="vm_cp.upload()" flow-file-added="vm_cp.fileAdded($file)" flow-file-success="vm_cp.fileSuccess($file, $message)" flow-complete="vm_cp.uploadComplete()" flow-drop flow-drag-enter="vm_cp.dropping=true" flow-drag-leave="vm_cp.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n <div class="drop-text hint-text" layout="row" layout-align="center center">\n <span translate="EC.DROP_TO_UPLOAD">Drop to upload</span>\n </div>\n\n <div class="upload-button" layout="column" layout-align="center center">\n <md-button class="md-accent md-raised" flow-btn>\n Upload\n </md-button>\n <span class="secondary-text mt-8">You can also drop images here to upload. Only PNG, JPG - Max. 8MB</span>\n </div>\n\n <div layout="row" layout-align="start start" layout-wrap>\n <div ng-repeat="preferredimage in vm_cp.customization.images" ng-switch="preferredimage.type">\n <div class="customization-image uploading" ng-switch-when="uploading" layout="row" layout-align="center center">\n <div class="overlay" layout="column" layout-align="center center">\n <md-progress-linear md-mode="determinate" value="{{preferredimage.file.progress() * 100}}">\n </md-progress-linear>\n </div>\n <img class="media" flow-img="preferredimage.file">\n </div>\n\n <div class="customization-image" ng-switch-when="image" layout="row" layout-align="center center">\n <img class="media" ng-src="{{preferredimage.url}}">\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n\n <div ng-if="!vm.customization.defaultFavicon" class="customization-detail-form-container favicon md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SETTINGS.FAVICON">FAVICON</div>\n </div>\n <div ng-controller="CustomizationfaviconController as vm_cf" ng-init="vm_cf.init(vm.customization)" class="customization-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="customization-image-uploader" flow-init="vm_cf.ngFlowOptions" flow-name="vm_cf.ngFlow.flow" flow-files-submitted="vm_cf.upload()" flow-file-added="vm_cf.fileAdded($file)" flow-file-success="vm_cf.fileSuccess($file, $message)" flow-complete="vm_cf.uploadComplete()" flow-drop flow-drag-enter="vm_cf.dropping=true" flow-drag-leave="vm_cf.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n <div class="drop-text hint-text" layout="row" layout-align="center center">\n <span translate="EC.DROP_TO_UPLOAD">Drop to upload</span>\n </div>\n\n <div class="upload-button" layout="column" layout-align="center center">\n <md-button class="md-accent md-raised" flow-btn>\n Upload\n </md-button>\n <span class="secondary-text mt-8">You can also drop images here to upload. Only PNG, JPG, ICO - Max. 8MB</span>\n </div>\n\n <div layout="row" layout-align="start start" layout-wrap>\n <div ng-repeat="faviconimage in vm_cf.customization.images" ng-switch="faviconimage.type">\n <div class="customization-image uploading" ng-switch-when="uploading" layout="row" layout-align="center center">\n <div class="overlay" layout="column" layout-align="center center">\n <md-progress-linear md-mode="determinate" value="{{faviconimage.file.progress() * 100}}">\n </md-progress-linear>\n </div>\n <img class="media" flow-img="faviconimage.file">\n </div>\n\n <div class="customization-image" ng-switch-when="image" layout="row" layout-align="center center">\n <img class="media" ng-src="{{faviconimage.url}}">\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/settings/views/generals/create/dialog.html",'<md-dialog class="general-dialog" aria-label="New General">\n <form name="generalForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newGeneral" ng-click="vm.saveGeneral()" class="send-button md-accent md-raised" ng-disabled="generalForm.$invalid || generalForm.$pristine" aria-label="SAVE" translate="SETTINGS.SAVE" translate-attr-aria-label="SETTINGS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newGeneral" ng-click="vm.addNewGeneral()" class="send-button md-accent md-raised" ng-disabled="generalForm.$invalid" aria-label="ADD" translate="SETTINGS.ADD_GENERAL" translate-attr-aria-label="SETTINGS.ADD_GENERAL">\n ADD GENERAL\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newGeneral" ng-click="vm.deleteGeneral($event)" aria-label="DELETE" translate translate-attr-aria-label="SETTINGS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="SETTINGS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/settings/views/generals/generals.html",'<div id="generals" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-cog" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="SETTINGS.GENERAL">General</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div>\n <md-button type="submit" ng-click="vm.saveGeneral()" ng-disabled="(globalForm.$pristine && motionbarForm.$pristine && reportForm.$pristine && agentOmniDesktopInterfaceForm.$pristine && screenRecordingForm.$pristine && securityForm.$pristine && imapGeneralSettingsForm.$pristine && SSOForm.$pristine && aiToolsForm.$pristine) || (globalForm.$invalid || motionbarForm.$invalid || reportForm.$invalid || agentOmniDesktopInterfaceForm.$invalid || screenRecordingForm.$invalid || securityForm.$invalid || imapGeneralSettingsForm.$invalid || SSOForm.$invalid || aiToolsForm.$invalid)" class="send-button md-accent md-raised" translate="SETTINGS.SAVE" translate-attr-aria-label="SETTINGS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n <div class="general-detail-form-container global md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SETTINGS.GLOBAL">GLOBAL</div>\n </div>\n <form name="globalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="SETTINGS.MIN_INTERNAL">Min_Internal</label>\n <input type="number" name="min_internal" ng-model="vm.general.min_internal" min="0" value="1000" ng-required="true" autofocus>\n\n <div ng-messages="globalForm[\'min_internal\'].$error" ng-show="globalForm[\'min_internal\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.MIN_INTERNAL_REQUIRED">Min_Internal field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SETTINGS.ERRORS.MIN_INTERNAL_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Min_Internal must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.CHATTIMEOUT">chatTimeout</label>\n <input type="number" name="chatTimeout" ng-model="vm.general.chatTimeout" min="0" value="30" ng-required="true">\n\n <div ng-messages="globalForm[\'chatTimeout\'].$error" ng-show="globalForm[\'chatTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.CHATTIMEOUT_REQUIRED">chatTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SETTINGS.ERRORS.CHATTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">chatTimeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.rtlSupport" aria-label="RtlSupport"><span translate="SETTINGS.RTLSUPPORT">RtlSupport</span></md-switch>\n <div class="hint"><span translate="SETTINGS.HELP.RTLSUPPORT"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.stopRecordingOnTransfer" aria-label="Stop_Recording_On_Voice_Call_Transfer"><span translate="SETTINGS.STOP_RECORDING_ON_VOICE_CALL_TRANSFER">Stop_Recording_On_Voice_Call_Transfer</span></md-switch>\n </md-input-container>\n\n </form>\n </div>\n\n <div class="general-detail-form-container motionbar md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SETTINGS.MOTIONBAR">MOTIONBAR</div>\n </div>\n <form name="motionbarForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.phoneBarAutoUpdater" aria-label="MotionbarAutoUpdater"><span translate="SETTINGS.MOTIONBARAUTOUPDATER">MotionbarAutoUpdater</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.general.phoneBarAutoUpdater" class="md-block">\n <label translate="SETTINGS.MOTIONBARAUTOUPDATERURL">MotionbarAutoUpdaterUrl</label>\n <input type="url" name="phoneBarAutoUpdaterUrl" ng-model="vm.general.phoneBarAutoUpdaterUrl" value="https://www.xcally.com/bar/phonebar/autoupdater.xml" ng-required="vm.general.phoneBarAutoUpdater">\n\n <div ng-messages="motionbarForm[\'phoneBarAutoUpdaterUrl\'].$error" ng-show="motionbarForm[\'phoneBarAutoUpdaterUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.MOTIONBARAUTOUPDATERURL_REQUIRED">MotionbarAutoUpdaterUrl field is required</span>\n </div>\n <div ng-message="url">\n <span translate="SETTINGS.ERRORS.MOTIONBARAUTOUPDATERURL_MUST_VALID_URL">MotionbarAutoUpdaterUrl must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.phoneBarRememberMeEnabled" aria-label="MotionbarRememberMe"><span translate="SETTINGS.MOTIONBARREMEMBERME">MotionbarRememberMe</span></md-switch>\n <div class="hint"><span translate="SETTINGS.HELP.MOTIONBARREMEMBERME"></span></div>\n </md-input-container>\n\n </form>\n </div>\n\n <div class="general-detail-form-container report md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SETTINGS.REPORT">REPORT</div>\n </div>\n <form name="reportForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.split" aria-label="Split"><span translate="SETTINGS.SPLIT">Split</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.general.split" class="md-block">\n <label translate="SETTINGS.SPLITSIZECSV">SplitSizeCsv</label>\n <input type="number" name="splitSizeCsv" ng-model="vm.general.splitSizeCsv" value="5000">\n\n <div ng-messages="reportForm[\'splitSizeCsv\'].$error" ng-show="reportForm[\'splitSizeCsv\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SPLITSIZECSV_REQUIRED">SplitSizeCsv field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.general.split" class="md-block">\n <label translate="SETTINGS.SPLITSIZEPDF">SplitSizePdf</label>\n <input type="number" name="splitSizePdf" ng-model="vm.general.splitSizePdf" value="1000">\n\n <div ng-messages="reportForm[\'splitSizePdf\'].$error" ng-show="reportForm[\'splitSizePdf\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SPLITSIZEPDF_REQUIRED">SplitSizePdf field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.general.split" class="md-block">\n <label translate="SETTINGS.SPLITSIZEXLSX">SplitSizeXlsx</label>\n <input type="number" name="splitSizeXlsx" ng-model="vm.general.splitSizeXlsx" value="5000">\n\n <div ng-messages="reportForm[\'splitSizeXlsx\'].$error" ng-show="reportForm[\'splitSizeXlsx\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SPLITSIZEXLSX_REQUIRED">SplitSizeXlsx field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n\n <div class="general-detail-form-container agentomnidesktopinterface md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SETTINGS.AGENTOMNIDESKTOPINTERFACE">AGENTOMNIDESKTOPINTERFACE</div>\n </div>\n <form name="agentOmniDesktopInterfaceForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.enableEmailPreview" aria-label="EnableEmailPreview"><span translate="SETTINGS.ENABLEEMAILPREVIEW">EnableEmailPreview</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.searchOnEnterKey" aria-label="Search_On_Enter_Key"><span translate="SETTINGS.SEARCH_ON_ENTER_KEY">Search_On_Enter_Key</span></md-switch>\n <div class="hint"><span translate="SETTINGS.HELP.SEARCH_ON_ENTER_KEY"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.MESSAGESALIGNMENT">messagesAlignment</label>\n <md-select name="messagesAlignment" ng-model="vm.general.messagesAlignment">\n <md-option ng-value="\'alternate\'">Alternate</md-option>\n <md-option ng-value="\'left\'">Left</md-option>\n <md-option ng-value="\'right\'">Right</md-option>\n </md-select>\n <div ng-messages="agentOmniDesktopInterfaceForm[\'messagesAlignment\'].$error" ng-show="agentOmniDesktopInterfaceForm[\'messagesAlignment\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.MESSAGESALIGNMENT_REQUIRED">messagesAlignment field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.CHAT_INTERACTIONS_RELOAD_TIMEOUT">Chat_Interactions_Reload_Timeout</label>\n <input type="number" name="chatInteractionsReloadTimeout" ng-model="vm.general.chatInteractionsReloadTimeout">\n\n <div class="hint"><span translate="SETTINGS.HELP.INTERACTIONS_RELOAD_TIMEOUT"></span></div>\n <div ng-messages="agentOmniDesktopInterfaceForm[\'chatInteractionsReloadTimeout\'].$error" ng-show="agentOmniDesktopInterfaceForm[\'chatInteractionsReloadTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.CHAT_INTERACTIONS_RELOAD_TIMEOUT_REQUIRED">Chat_Interactions_Reload_Timeout field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.MAIL_INTERACTIONS_RELOAD_TIMEOUT">Mail_Interactions_Reload_Timeout</label>\n <input type="number" name="mailInteractionsReloadTimeout" ng-model="vm.general.mailInteractionsReloadTimeout">\n\n <div class="hint"><span translate="SETTINGS.HELP.INTERACTIONS_RELOAD_TIMEOUT"></span></div>\n <div ng-messages="agentOmniDesktopInterfaceForm[\'mailInteractionsReloadTimeout\'].$error" ng-show="agentOmniDesktopInterfaceForm[\'mailInteractionsReloadTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.MAIL_INTERACTIONS_RELOAD_TIMEOUT_REQUIRED">Mail_Interactions_Reload_Timeout field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.OPENCHANNEL_INTERACTIONS_RELOAD_TIMEOUT">Openchannel_Interactions_Reload_Timeout</label>\n <input type="number" name="openchannelInteractionsReloadTimeout" ng-model="vm.general.openchannelInteractionsReloadTimeout">\n\n <div class="hint"><span translate="SETTINGS.HELP.INTERACTIONS_RELOAD_TIMEOUT"></span></div>\n <div ng-messages="agentOmniDesktopInterfaceForm[\'openchannelInteractionsReloadTimeout\'].$error" ng-show="agentOmniDesktopInterfaceForm[\'openchannelInteractionsReloadTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.OPENCHANNEL_INTERACTIONS_RELOAD_TIMEOUT_REQUIRED">Openchannel_Interactions_Reload_Timeout field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.SMS_INTERACTIONS_RELOAD_TIMEOUT">Sms_Interactions_Reload_Timeout</label>\n <input type="number" name="smsInteractionsReloadTimeout" ng-model="vm.general.smsInteractionsReloadTimeout">\n\n <div class="hint"><span translate="SETTINGS.HELP.INTERACTIONS_RELOAD_TIMEOUT"></span></div>\n <div ng-messages="agentOmniDesktopInterfaceForm[\'smsInteractionsReloadTimeout\'].$error" ng-show="agentOmniDesktopInterfaceForm[\'smsInteractionsReloadTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SMS_INTERACTIONS_RELOAD_TIMEOUT_REQUIRED">Sms_Interactions_Reload_Timeout field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.WHATSAPP_INTERACTIONS_RELOAD_TIMEOUT">Whatsapp_Interactions_Reload_Timeout</label>\n <input type="number" name="whatsappInteractionsReloadTimeout" ng-model="vm.general.whatsappInteractionsReloadTimeout">\n\n <div class="hint"><span translate="SETTINGS.HELP.INTERACTIONS_RELOAD_TIMEOUT"></span></div>\n <div ng-messages="agentOmniDesktopInterfaceForm[\'whatsappInteractionsReloadTimeout\'].$error" ng-show="agentOmniDesktopInterfaceForm[\'whatsappInteractionsReloadTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.WHATSAPP_INTERACTIONS_RELOAD_TIMEOUT_REQUIRED">Whatsapp_Interactions_Reload_Timeout field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n\n <div ng-if="vm.license.screenrecording" class="general-detail-form-container screenrecording md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SETTINGS.SCREENRECORDING">SCREENRECORDING</div>\n </div>\n <form name="screenRecordingForm" novalidate>\n <md-input-container class="md-block">\n <label translate="SETTINGS.DEFAULTSCREENRECORDINGPATH">defaultScreenRecordingPath</label>\n <input type="text" name="defaultScreenRecordingPath" ng-model="vm.general.defaultScreenRecordingPath" autofocus>\n\n <div class="hint"><span translate="SETTINGS.HELP.DEFAULTSCREENRECORDINGPATH"></span></div>\n <div ng-messages="screenRecordingForm[\'defaultScreenRecordingPath\'].$error" ng-show="screenRecordingForm[\'defaultScreenRecordingPath\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.DEFAULTSCREENRECORDINGPATH_REQUIRED">defaultScreenRecordingPath field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n\n <div class="general-detail-form-container security md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SETTINGS.SECURITY">SECURITY</div>\n </div>\n <form name="securityForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.securePassword" aria-label="Security_Suite"><span translate="SETTINGS.SECURITY_SUITE">Security_Suite</span></md-switch>\n <div class="hint"><span translate="SETTINGS.HELP.SECURITY_SUITE"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.callRecordingEncryption" aria-label="Call_Recording_Encryption"><span translate="SETTINGS.CALL_RECORDING_ENCRYPTION">Call_Recording_Encryption</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.ALLOWEDLOGINATTEMPTS">allowedLoginAttempts</label>\n <input type="number" name="allowedLoginAttempts" ng-model="vm.general.allowedLoginAttempts" value="5" ng-required="true">\n\n <div ng-messages="securityForm[\'allowedLoginAttempts\'].$error" ng-show="securityForm[\'allowedLoginAttempts\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.ALLOWEDLOGINATTEMPTS_REQUIRED">allowedLoginAttempts field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.BLOCKDURATION">blockDuration</label>\n <input type="number" name="blockDuration" ng-model="vm.general.blockDuration" value="10" ng-required="true">\n\n <div ng-messages="securityForm[\'blockDuration\'].$error" ng-show="securityForm[\'blockDuration\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.BLOCKDURATION_REQUIRED">blockDuration field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.enforcePasswordHistory" aria-label="Enforce_Password_History"><span translate="SETTINGS.ENFORCE_PASSWORD_HISTORY">Enforce_Password_History</span></md-switch>\n <div class="hint"><span translate="SETTINGS.HELP.ENFORCE_PASSWORD_HISTORY"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.general.enforcePasswordHistory" class="md-block">\n <label translate="SETTINGS.PASSWORD_HISTORY_LIMIT">Password_History_Limit</label>\n <input type="number" name="passwordHistoryLimit" ng-model="vm.general.passwordHistoryLimit" min="2" max="5" value="3">\n\n <div class="hint"><span translate="SETTINGS.HELP.PASSWORD_HISTORY_LIMIT"></span></div>\n <div ng-messages="securityForm[\'passwordHistoryLimit\'].$error" ng-show="securityForm[\'passwordHistoryLimit\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PASSWORD_HISTORY_LIMIT_REQUIRED">Password_History_Limit field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SETTINGS.ERRORS.PASSWORD_HISTORY_LIMIT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Password_History_Limit must be a valid greater or equal than</span> <span>2</span>\n </div>\n <div ng-message="max">\n <span translate="SETTINGS.ERRORS.PASSWORD_HISTORY_LIMIT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Password_History_Limit must be a valid greater or equal than</span> <span>5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block no-margin-bottom">\n <md-switch ng-change="vm.onPrivacyPolicyChange(\'email\')" ng-model="vm.general.enablePrivacyPolicyEmail" aria-label="Privacy_Policy_Email"><span translate="SETTINGS.PRIVACY_POLICY_EMAIL">Privacy_Policy_Email</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.general.enablePrivacyPolicyEmail" class="md-block no-margin-top">\n\n <input type="number" name="privacyPolicyEmail" ng-model="vm.general.privacyPolicyEmail" min="0" value="0" ng-required="true">\n\n <div class="hint"><span translate="SETTINGS.HELP.PRIVACY_POLICY"></span></div>\n <div ng-messages="securityForm[\'privacyPolicyEmail\'].$error" ng-show="securityForm[\'privacyPolicyEmail\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PRIVACY_POLICY_EMAIL_REQUIRED">Privacy_Policy_Email field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SETTINGS.ERRORS.PRIVACY_POLICY_EMAIL_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Privacy_Policy_Email must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block no-margin-bottom">\n <md-switch ng-change="vm.onPrivacyPolicyChange(\'name\')" ng-model="vm.general.enablePrivacyPolicyName" aria-label="Privacy_Policy_Name"><span translate="SETTINGS.PRIVACY_POLICY_NAME">Privacy_Policy_Name</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.general.enablePrivacyPolicyName" class="md-block no-margin-top">\n\n <input type="number" name="privacyPolicyName" ng-model="vm.general.privacyPolicyName" min="0" value="0" ng-required="true">\n\n <div class="hint"><span translate="SETTINGS.HELP.PRIVACY_POLICY"></span></div>\n <div ng-messages="securityForm[\'privacyPolicyName\'].$error" ng-show="securityForm[\'privacyPolicyName\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PRIVACY_POLICY_NAME_REQUIRED">Privacy_Policy_Name field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SETTINGS.ERRORS.PRIVACY_POLICY_NAME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Privacy_Policy_Name must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block no-margin-bottom">\n <md-switch ng-change="vm.onPrivacyPolicyChange(\'number\')" ng-model="vm.general.enablePrivacyPolicyNumber" aria-label="Privacy_Policy_Number"><span translate="SETTINGS.PRIVACY_POLICY_NUMBER">Privacy_Policy_Number</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.general.enablePrivacyPolicyNumber" class="md-block no-margin-top">\n\n <input type="number" name="privacyPolicyNumber" ng-model="vm.general.privacyPolicyNumber" min="0" value="0" ng-required="true">\n\n <div class="hint"><span translate="SETTINGS.HELP.PRIVACY_POLICY"></span></div>\n <div ng-messages="securityForm[\'privacyPolicyNumber\'].$error" ng-show="securityForm[\'privacyPolicyNumber\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PRIVACY_POLICY_NUMBER_REQUIRED">Privacy_Policy_Number field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SETTINGS.ERRORS.PRIVACY_POLICY_NUMBER_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Privacy_Policy_Number must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n\n <div class="general-detail-form-container imapgeneralsettings md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SETTINGS.IMAPGENERALSETTINGS">IMAPGENERALSETTINGS</div>\n </div>\n <form name="imapGeneralSettingsForm" novalidate>\n <md-input-container class="md-block">\n <label translate="SETTINGS.LOGINMAILFREQUENCY">loginMailFrequency</label>\n <input type="number" name="loginMailFrequency" ng-model="vm.general.loginMailFrequency" min="10" value="10" ng-required="true" autofocus>\n\n <div class="hint"><span translate="SETTINGS.HELP.LOGINMAILFREQUENCY"></span></div>\n <div ng-messages="imapGeneralSettingsForm[\'loginMailFrequency\'].$error" ng-show="imapGeneralSettingsForm[\'loginMailFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.LOGINMAILFREQUENCY_REQUIRED">loginMailFrequency field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SETTINGS.ERRORS.LOGINMAILFREQUENCY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">loginMailFrequency must be a valid greater or equal than</span> <span>10</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n\n <div class="general-detail-form-container sso md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SETTINGS.SSO">SSO</div>\n </div>\n <form name="SSOForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.googleSsoEnabled" aria-label="Google_SSO_enabled"><span translate="SETTINGS.GOOGLE_SSO_ENABLED">Google_SSO_enabled</span></md-switch>\n </md-input-container>\n\n </form>\n </div>\n\n <div ng-if="vm.license.ai" class="general-detail-form-container aitools md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SETTINGS.AITOOLS">AITOOLS</div>\n </div>\n <form name="aiToolsForm" novalidate>\n <md-input-container class="md-block">\n <label translate="SETTINGS.LANGUAGE">Language</label>\n <md-select name="language" ng-model="vm.general.language" autofocus required>\n <md-option ng-value="\'en-US\'">US English</md-option>\n <md-option ng-value="\'en-AU\'">Australian English</md-option>\n <md-option ng-value="\'en-GB\'">British English</md-option>\n <md-option ng-value="\'en-AB\'">Scottish English</md-option>\n <md-option ng-value="\'en-WL\'">Welsh English</md-option>\n <md-option ng-value="\'en-IE\'">English (Ireland)</md-option>\n <md-option ng-value="\'en-IN\'">Indian English</md-option>\n <md-option ng-value="\'hi-IN\'">Hindi (India)</md-option>\n <md-option ng-value="\'fr-CA\'">Canadian French</md-option>\n <md-option ng-value="\'fr-FR\'">French</md-option>\n <md-option ng-value="\'de-DE\'">German</md-option>\n <md-option ng-value="\'de-CH\'">German (Switzerland)</md-option>\n <md-option ng-value="\'it-IT\'">Italian</md-option>\n <md-option ng-value="\'es-ES\'">Spanish</md-option>\n <md-option ng-value="\'es-Us\'">US Spanish</md-option>\n <md-option ng-value="\'pt-BR\'">Brazilian Portuguese</md-option>\n <md-option ng-value="\'pt-PT\'">Portuguese(Portugal)</md-option>\n <md-option ng-value="\'ar-SA\'">Modern Standard Arabic</md-option>\n <md-option ng-value="\'ar-AE\'">Arabic</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese Mandarin - Mainland</md-option>\n <md-option ng-value="\'ja-JP\'">Japanese (Japan)</md-option>\n <md-option ng-value="\'ko-KR\'">Korean (Korea)</md-option>\n <md-option ng-value="\'he-IL\'">Hebrew (Israel) - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'ms-MY\'">Malay (Malaysia) - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'fa-IR\'">Farsi (Iran) - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'ru-RU\'">Russian (Russia) - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'te-IN\'">Telugu(India) - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'ta-IN\'">Tamil - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'nl-NL\'">Dutch - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'tr-TR\'">Turkish (Turkey) - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'id-ID\'">Indonesian(Indonesia) - This language is not available for the Sentiment Analysis</md-option>\n </md-select>\n <div ng-messages="aiToolsForm[\'language\'].$error" ng-show="aiToolsForm[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.LANGUAGE_REQUIRED">Language field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.BUCKET">Bucket</label>\n <input type="text" name="bucket" ng-model="vm.general.bucket" ng-required="true">\n\n <div ng-messages="aiToolsForm[\'bucket\'].$error" ng-show="aiToolsForm[\'bucket\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.BUCKET_REQUIRED">Bucket field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.transcribe" aria-label="Transcribe"><span translate="SETTINGS.TRANSCRIBE">Transcribe</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.general.transcribe == true" class="md-block">\n <label translate="SETTINGS.TRANSCRIBEREGION">TranscribeRegion</label>\n <md-select name="transcribeRegion" ng-model="vm.general.transcribeRegion" required>\n <md-option ng-value="\'us-east-1\'">US East (N. Virginia)</md-option>\n <md-option ng-value="\'us-east-2\'">US East (Ohio)</md-option>\n <md-option ng-value="\'us-east-2\'">US West (N. California)</md-option>\n <md-option ng-value="\'us-west-2\'">US West (Oregon)</md-option>\n <md-option ng-value="\'ap-south-1\'">Asia Pacific (Mumbai)</md-option>\n <md-option ng-value="\'ap-east-1\'">Asia Pacific (Hong Kong)</md-option>\n <md-option ng-value="\'ap-northeast-2\'">Asia Pacific (Seoul)</md-option>\n <md-option ng-value="\'ap-southeast-1\'">Asia Pacific (Singapore)</md-option>\n <md-option ng-value="\'ap-southeast-2\'">Asia Pacific (Sydney)</md-option>\n <md-option ng-value="\'ap-northeast-1\'">Asia Pacific (Tokyo)</md-option>\n <md-option ng-value="\'ca-central-1\'">Canada (Central)</md-option>\n <md-option ng-value="\'eu-central-1\'">Europe (Frankfurt)</md-option>\n <md-option ng-value="\'eu-west-1\'">Europe (Ireland)</md-option>\n <md-option ng-value="\'eu-west-2\'">Europe (London)</md-option>\n <md-option ng-value="\'eu-west-3\'">Europe (Paris)</md-option>\n <md-option ng-value="\'me-south-1\'">Middle East (Bahrain)</md-option>\n <md-option ng-value="\'sa-east-1\'">South America (São Paulo)</md-option>\n </md-select>\n <div ng-messages="aiToolsForm[\'transcribeRegion\'].$error" ng-show="aiToolsForm[\'transcribeRegion\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.TRANSCRIBEREGION_REQUIRED">TranscribeRegion field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.general.transcribe == true" class="md-block">\n <label translate="SETTINGS.TRANSCRIBEACCOUNT">TranscribeAccount</label>\n <md-select name="transcribeAccountId" ng-model="vm.general.transcribeAccountId" required>\n <md-option ng-value="transcribeAccountId.id" ng-repeat="transcribeAccountId in vm.cloudProviders" ng-disabled="transcribeAccountId.canSelect === false">{{ transcribeAccountId.name }}</md-option>\n </md-select>\n <div ng-messages="aiToolsForm[\'transcribeAccountId\'].$error" ng-show="aiToolsForm[\'transcribeAccountId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.TRANSCRIBEACCOUNT_REQUIRED">TranscribeAccount field is required</span>\n </div>\n </div>\n </md-input-container>\n'+" <md-input-container ng-if=\"vm.general.transcribe == true && vm.general.language != 'he-IL' && vm.general.language != 'ms-MY' && vm.general.language != 'fa-IR' && vm.general.language != 'ru-RU' && vm.general.language != 'te-IN' && vm.general.language != 'ta-IN' && vm.general.language != 'nl-NL' && vm.general.language != 'tr-TR' && vm.general.language != 'id-ID'\" class=\"md-block\">\n <md-switch ng-model=\"vm.general.sentiment\" aria-label=\"SentimentAnalysis\"><span translate=\"SETTINGS.SENTIMENTANALYSIS\">SentimentAnalysis</span></md-switch>\n </md-input-container>\n <md-input-container ng-if=\"vm.general.sentiment == true && vm.general.transcribe == true && vm.general.language != 'he-IL' && vm.general.language != 'ms-MY' && vm.general.language != 'fa-IR' && vm.general.language != 'ru-RU' && vm.general.language != 'te-IN' && vm.general.language != 'ta-IN' && vm.general.language != 'nl-NL' && vm.general.language != 'tr-TR' && vm.general.language != 'id-ID'\" class=\"md-block\">\n <label translate=\"SETTINGS.SENTIMENTREGION\">SentimentRegion</label>\n <md-select name=\"sentimentRegion\" ng-model=\"vm.general.sentimentRegion\" required>\n <md-option ng-value=\"'us-east-1'\">US East (N. Virginia)</md-option>\n <md-option ng-value=\"'us-east-2'\">US East (Ohio)</md-option>\n <md-option ng-value=\"'us-west-2'\">US West (Oregon)</md-option>\n <md-option ng-value=\"'ap-south-1'\">Asia Pacific (Mumbai)</md-option>\n <md-option ng-value=\"'ap-northeast-2'\">Asia Pacific (Seoul)</md-option>\n <md-option ng-value=\"'ap-southeast-1'\">Asia Pacific (Singapore)</md-option>\n <md-option ng-value=\"'ap-southeast-2'\">Asia Pacific (Sydney)</md-option>\n <md-option ng-value=\"'ap-northeast-1'\">Asia Pacific (Tokyo)</md-option>\n <md-option ng-value=\"'ca-central-1'\">Canada (Central)</md-option>\n <md-option ng-value=\"'eu-central-1'\">Europe (Frankfurt)</md-option>\n <md-option ng-value=\"'eu-west-1'\">Europe (Ireland)</md-option>\n <md-option ng-value=\"'eu-west-2'\">Europe (London)</md-option>\n </md-select>\n <div ng-messages=\"aiToolsForm['sentimentRegion'].$error\" ng-show=\"aiToolsForm['sentimentRegion'].$touched\" role=\"alert\">\n <div ng-message=\"required\">\n <span translate=\"SETTINGS.ERRORS.SENTIMENTREGION_REQUIRED\">SentimentRegion field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if=\"vm.general.sentiment == true && vm.general.transcribe == true && vm.general.language != 'he-IL' && vm.general.language != 'ms-MY' && vm.general.language != 'fa-IR' && vm.general.language != 'ru-RU' && vm.general.language != 'te-IN' && vm.general.language != 'ta-IN' && vm.general.language != 'nl-NL' && vm.general.language != 'tr-TR' && vm.general.language != 'id-ID'\" class=\"md-block\">\n <label translate=\"SETTINGS.SENTIMENTACCOUNT\">SentimentAccount</label>\n <md-select name=\"sentimentAccountId\" ng-model=\"vm.general.sentimentAccountId\" required>\n <md-option ng-value=\"sentimentAccountId.id\" ng-repeat=\"sentimentAccountId in vm.cloudProviders\" ng-disabled=\"sentimentAccountId.canSelect === false\">{{ sentimentAccountId.name }}</md-option>\n </md-select>\n <div ng-messages=\"aiToolsForm['sentimentAccountId'].$error\" ng-show=\"aiToolsForm['sentimentAccountId'].$touched\" role=\"alert\">\n <div ng-message=\"required\">\n <span translate=\"SETTINGS.ERRORS.SENTIMENTACCOUNT_REQUIRED\">SentimentAccount field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n</div>"),e.put("app/main/apps/settings/views/license/license.html",'<div id="license" class="page-layout simple fullwidth doc-page">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-cog" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="SETTINGS.LICENSE">LICENSE</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n \x3c!-- <div>\n <md-button type="submit" ng-click="vm.requestLicense()" class="send-button md-raised" translate="SETTINGS.REQUEST_LICENSE" translate-attr-aria-label="SETTINGS.REQUEST_LICENSE">\n REQUEST LICENSE\n </md-button>\n </div> --\x3e\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n \x3c!-- LICENSE CARD --\x3e\n <div layout="row" flex>\n <md-card class="md-whiteframe-1dp padding-20" flex>\n <div layout="row" layout-align="center">\n <div flex layout="row" layout-align="start center">\n <div ng-if="!vm.license.custom">\n <a href="https://www.xcally.com/plans.html" target="_blank" class="md-button md-fab green-A700-bg" aria-label="Eat cake">\n <md-tooltip><span translate="SETTINGS.PRICES">Prices</span></md-tooltip>\n <md-icon md-font-icon="icon-coin"></md-icon>\n </a>\n </div>\n </div>\n <div flex>\n <div ng-switch="vm.license.months" class="text-center">\n <span ng-switch-when="1" class="md-title md-accent-fg text-bold">{{ \'SETTINGS.PLAN\' | translate }}: <span translate="SETTINGS.MONTH_TO_MONTH">MONTH TO MONTH</span></span>\n <span ng-switch-when="12" class="md-title md-accent-fg text-bold">{{ \'SETTINGS.PLAN\' | translate }}: <span translate="SETTINGS.ANNUALLY">ANNUALLY</span></span>\n <span ng-switch-when="36" class="md-title md-accent-fg text-bold">{{ \'SETTINGS.PLAN\' | translate }}: <span translate="SETTINGS.PERPETUAL">PERPETUAL</span></span>\n </div>\n </div>\n <div flex layout="row" layout-align="end center">\n <div>\n <md-button type="submit" ng-click="vm.updateLicense()" class="md-button md-fab md-accent">\n <md-tooltip><span translate="SETTINGS.UPDATE_LICENSE">License</span></md-tooltip>\n <md-icon md-font-icon="icon-pencil"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n\n <span ng-if="!vm.license.demo && !vm.license.gray && vm.license.months != 36" class="md-subhead md-warn-fg text-center">{{ \'SETTINGS.EXPIRATION_DATE\' | translate }}: {{vm.license.expiration | date: \'longDate\'}}</span>\n <span class="text-center padding-bottom-10"> {{ vm.license.machineUuid !== vm.license.uuid ? \'SETTINGS.OLD_TOKEN\' : \'SETTINGS.TOKEN\' | translate }}: <span class="text-italic text-bold">{{vm.license.uuid}}</span></span>\n\n <div layout="column">\n <span ng-if="vm.license.grayReason == \'changed\'" class="blink md-subhead md-warn-fg text-center">{{ \'SETTINGS.NEW_TOKEN_DETECTED\' | translate }}</span>\n <span ng-if="vm.license.grayReason == \'changed\'" class="text-center padding-bottom-10"> {{\'SETTINGS.NEW_TOKEN\' | translate }}: <span class="text-italic text-bold">{{vm.license.machineUuid}}</span></span>\n <span ng-if="vm.license.gray" class="blink md-subhead md-warn-fg text-center">{{ \'SETTINGS.EXPIRATION_GRAY_PERIOD\' | translate }}: {{vm.license.deadline | date: \'longDate\'}}</span>\n <span ng-if="vm.license.gray" class="text-center padding-bottom-10 text-italic text-bold"> {{\'SETTINGS.EXPIRATION_REASON\' | translate }} </span>\n <span ng-if="vm.license.grayReason == \'disabled\'" class="text-center padding-bottom-10"> {{\'SETTINGS.EXPIRATION_REASON_MESSAGE_DISABLED\' | translate }}</span>\n <span ng-if="vm.license.grayReason == \'changed\'" class="text-center padding-bottom-10"> {{\'SETTINGS.EXPIRATION_REASON_MESSAGE_CHANGED\' | translate }}</span>\n <span ng-if="vm.license.grayReason == \'changed\'" class="text-center padding-bottom-10"> {{\'SETTINGS.EXPIRATION_CHANGED_ADVISE\' | translate }}</span>\n <span ng-if="vm.license.grayReason == \'changed\'" class="text-center padding-bottom-10">{{ \'SETTINGS.SEND_EMAIL_TO\' | translate }}: <a href="mailto:license@xcally.com?subject=New%20token%20detected&body=Hi xCALLY, New Token: {{vm.license.machineUuid}}, Old token: {{vm.license.uuid}}">license@xcally.com</a>.</span>\n <span ng-if="vm.license.grayReason == \'disabled\'" class="text-center padding-bottom-10">{{ \'SETTINGS.SEND_EMAIL_TO\' | translate }}: <a href="mailto:license@xcally.com?subject=License%20disabled&body=Hi xCALLY, My Token: {{vm.license.machineUuid}}">license@xcally.com</a>.</span>\n </div>\n\n <div ng-if="vm.license.demo" layout="column">\n <span class="md-subhead md-warn-fg text-center">{{ \'SETTINGS.TRIAL_VERSION\' | translate }}</span>\n <span class="md-subhead md-warn-fg text-center"><a href="https://www.xcally.com/en/index.html#pricing-table2-h" target="_blank">{{ \'SETTINGS.PRICES\' | translate}}</a></span>\n </div>\n\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.STAFF\' | translate }}</md-subheader>\n <md-divider></md-divider>\n <md-list layout="row">\n <md-list-item class="md-2-line" flex="33">\n <md-icon md-font-icon="icon-account" class="md-avatar-icon"></md-icon>\n <div class="md-list-item-text">\n <h3>{{ vm.license.users || 0 }} <span ng-class="{\'red-fg\': vm.license.users <= vm.users && vm.license.users > 0}">({{vm.license.users >= vm.users ? vm.users : vm.license.users}})</span></h3>\n <p translate="SETTINGS.USERS">Users</p>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" flex="33">\n <md-icon md-font-icon="icon-headphones" class="md-avatar-icon"></md-icon>\n <div class="md-list-item-text">\n <h3>{{ vm.license.agents || 0 }} <span ng-class="{\'red-fg\': (vm.license.agents <= vm.agents && vm.license.agents > 0) }">({{vm.license.agents >= vm.agents ? vm.agents : vm.license.agents}})</span></h3>\n <p translate="SETTINGS.AGENTS">Agents</p>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" flex="33">\n <md-icon md-font-icon="icon-phone" class="md-avatar-icon"></md-icon>\n <div class="md-list-item-text">\n <h3>{{ vm.license.telephones || 0 }} <span ng-class="{\'red-fg\': vm.license.telephones <= vm.telephones && vm.license.telephones > 0}">({{vm.license.telephones >= vm.telephones ? vm.telephones : vm.license.telephones}})</span></h3>\n <p translate="SETTINGS.TELEPHONES">Telephones</p>\n </div>\n </md-list-item>\n </md-list>\n\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.CHANNELS\' | translate }}</md-subheader>\n <md-divider></md-divider>\n <md-list layout="row">\n <md-list-item flex="33" class="md-2-line" ng-repeat="channel in vm.channels | limitTo:3">\n <md-icon md-font-icon="{{channel.icon}}" class="md-avatar-icon" ng-class="vm.license[channel.name] ? \'green-A700-bg\' : \'red-A700-bg\'"></md-icon>\n <div class="md-list-item-text">\n <h3 translate="SETTINGS.{{channel.name | uppercase}}"></h3>\n <p ng-class="vm.license[channel.name] ? \'green-A700-fg\' : \'red-A700-fg\'">{{ \'SETTINGS.\' + (vm.license[channel.name] ? \'ENABLED\' : \'DISABLED\') | translate }}</p>\n </div>\n </md-list-item>\n </md-list>\n <md-list layout="row">\n <md-list-item flex="33" class="md-2-line" ng-repeat="channel in vm.channels | limitTo:3:3">\n <md-icon md-font-icon="{{channel.icon}}" class="md-avatar-icon" ng-class="vm.license[channel.name] ? \'green-A700-bg\' : \'red-A700-bg\'"></md-icon>\n <div class="md-list-item-text">\n <h3 translate="SETTINGS.{{channel.name | uppercase}}"></h3>\n <p ng-class="vm.license[channel.name] ? \'green-A700-fg\' : \'red-A700-fg\'">{{ \'SETTINGS.\' + (vm.license[channel.name] ? \'ENABLED\' : \'DISABLED\') | translate }}</p>\n </div>\n </md-list-item>\n </md-list>\n <md-list layout="row">\n <md-list-item flex="33" class="md-2-line" ng-repeat="channel in vm.channels | limitTo:3:6">\n <md-icon md-font-icon="{{channel.icon}}" class="md-avatar-icon" ng-class="vm.license[channel.name] ? \'green-A700-bg\' : \'red-A700-bg\'"></md-icon>\n <div class="md-list-item-text">\n <h3 translate="SETTINGS.{{channel.name | uppercase}}"></h3>\n <p ng-class="vm.license[channel.name] ? \'green-A700-fg\' : \'red-A700-fg\'">{{ \'SETTINGS.\' + (vm.license[channel.name] ? \'ENABLED\' : \'DISABLED\') | translate }}</p>\n </div>\n </md-list-item>\n </md-list>\n\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.MODULES\' | translate }}</md-subheader>\n <md-divider></md-divider>\n <md-list layout="row">\n <md-list-item class="md-2-line" ng-repeat="module in vm.modules" flex="33">\n <md-icon md-font-icon="{{module.icon}}" class="md-avatar-icon" ng-class="vm.license[module.name] ? \'green-A700-bg\' : \'red-A700-bg\'"></md-icon>\n <div class="md-list-item-text">\n <h3 translate="SETTINGS.{{module.name | uppercase}}"></h3>\n <p ng-class="vm.license[module.name] ? \'green-A700-fg\' : \'red-A700-fg\'">{{ \'SETTINGS.\' + (vm.license[module.name] ? \'ENABLED\' : \'DISABLED\') | translate }}</p>\n </div>\n </md-list-item>\n </md-list>\n\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.SESSIONS\' | translate }}</md-subheader>\n <md-divider></md-divider>\n <md-list layout="row">\n <div ng-repeat="session in vm.sessions" flex="33">\n <md-list-item class="md-2-line">\n <md-icon md-font-icon="{{session.icon}}" class="md-avatar-icon" ng-class="vm.license[session.enabled] ? \'green-A700-bg\' : \'red-A700-bg\'"></md-icon>\n <div class="md-list-item-text">\n <div layout="row" layout="start center">\n <h3 translate="SETTINGS.{{session.name | uppercase}}"></h3>\n <button ng-if="session.restart" ng-click="vm.gotoProcess($event)" class="md-mini" aria-label="restart">\n <md-tooltip>Restart</md-tooltip>\n <md-icon md-font-icon="icon-reload"></md-icon>\n </button>\n </div>\n <p ng-if="vm.license[session.name] && vm.license[session.enabled]" class="green-A700-fg">{{vm.license[session.name]}} {{ \'SETTINGS.\' + session.label | uppercase | translate }}</p>\n <p ng-if="!vm.license[session.name] && vm.license[session.enabled]" class="green-A700-fg">UNLIMITED {{ \'SETTINGS.\' + session.label | uppercase | translate }}</p>\n <p ng-if="!vm.license[session.enabled]" class="red-A700-fg">{{ \'SETTINGS.DISABLED\' | translate }}</p>\n </div>\n </md-list-item>\n\n </div>\n </md-list>\n\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.ADDONS\' | translate }}</md-subheader>\n <md-divider></md-divider>\n <md-list layout="row">\n <md-list-item class="md-2-line" ng-repeat="addon in vm.addons | limitTo:3" flex="33">\n <md-icon md-font-icon="{{addon.icon}}" class="md-avatar-icon" ng-class="vm.license[addon.name] ? \'green-A700-bg\' : \'red-A700-bg\'"></md-icon>\n <div class="md-list-item-text">\n <h3 translate="SETTINGS.{{addon.name | uppercase}}"></h3>\n <p ng-class="vm.license[addon.name] ? \'green-A700-fg\' : \'red-A700-fg\'">{{ \'SETTINGS.\' + (vm.license[addon.name] ? \'ENABLED\' : \'DISABLED\') | translate }}</p>\n </div>\n </md-list-item>\n </md-list>\n <md-list layout="row">\n <md-list-item class="md-2-line" ng-repeat="addon in vm.addons | limitTo:3:3" flex="33">\n <md-icon md-font-icon="{{addon.icon}}" class="md-avatar-icon" ng-class="vm.license[addon.name] ? \'green-A700-bg\' : \'red-A700-bg\'"></md-icon>\n <div class="md-list-item-text">\n <h3 translate="SETTINGS.{{addon.name | uppercase}}"></h3>\n <p ng-class="vm.license[addon.name] ? \'green-A700-fg\' : \'red-A700-fg\'">{{ \'SETTINGS.\' + (vm.license[addon.name] ? \'ENABLED\' : \'DISABLED\') | translate }}</p>\n </div>\n </md-list-item>\n </md-list>\n\n\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.OTHERS\' | translate }}</md-subheader>\n <md-divider></md-divider>\n <md-list layout="row">\n <md-list-item class="md-2-line" ng-repeat="other in vm.others | limitTo:3" flex="33">\n <md-icon md-font-icon="{{other.icon}}" class="md-avatar-icon" ng-class="vm.license[other.name] ? \'green-A700-bg\' : \'red-A700-bg\'"></md-icon>\n <div class="md-list-item-text">\n <h3 translate="SETTINGS.{{other.name | uppercase}}"></h3>\n <p ng-class="vm.license[other.name] ? \'green-A700-fg\' : \'red-A700-fg\'">{{ \'SETTINGS.\' + (vm.license[other.name] ? \'ENABLED\' : \'DISABLED\') | translate }}</p>\n </div>\n </md-list-item>\n </md-list>\n <md-list layout="row">\n <md-list-item class="md-2-line" ng-repeat="other in vm.others | limitTo:3:3" flex="33">\n <md-icon md-font-icon="{{other.icon}}" class="md-avatar-icon" ng-class="vm.license[other.name] ? \'green-A700-bg\' : \'red-A700-bg\'"></md-icon>\n <div class="md-list-item-text">\n <h3 translate="SETTINGS.{{other.name | uppercase}}"></h3>\n'+" <p ng-class=\"vm.license[other.name] ? 'green-A700-fg' : 'red-A700-fg'\">{{ 'SETTINGS.' + (vm.license[other.name] ? 'ENABLED' : 'DISABLED') | translate }}</p>\n </div>\n </md-list-item>\n </md-list>\n </md-card>\n </div>\n \x3c!-- / LICENSE CARD --\x3e\n\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- NO ADD BUTTON BUTTON --\x3e\n</div>"),e.put("app/main/apps/settings/views/license/request/dialog.html",'<md-dialog class="request-dialog" aria-label="Send Request">\n <form name="requestForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title" translate="SETTINGS.REQUEST_LICENSE">Request License</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SETTINGS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.license.name" required>\n <div ng-messages="requestForm.name.$error" ng-show="requestForm.name.$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.NAME_REQUIRED">Address field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.license.email" required>\n <div ng-messages="requestForm.email.$error" ng-show="requestForm.email.$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="email">\n <span translate="SETTINGS.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.PLAN">Plan</label>\n <md-select name="plan" ng-model="vm.license.months" required>\n <md-option ng-value="1"><span translate="SETTINGS.MONTH_TO_MONTH">MONTH TO MONTH</span></md-option>\n <md-option ng-value="12"><span translate="SETTINGS.ANNUALLY">ANNUALLY</span></md-option>\n <md-option ng-value="36"><span translate="SETTINGS.PERPETUAL">PERPETUAL</span></md-option>\n </md-select>\n <div ng-messages="requestForm.plan.$error" ng-show="requestForm.plan.$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PLAN_REQUIRED">Plan field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.STAFF\' | translate }}</md-subheader>\n <div layout="row" layout-align="space-between center">\n <md-input-container class="md-block" flex>\n <label translate="SETTINGS.USERS">Users</label>\n <input type="number" name="users" ng-model="vm.license.users" required>\n <div ng-messages="requestForm.users.$error" ng-show="requestForm.users.$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.USERS_REQUIRED">Users field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" flex>\n <label translate="SETTINGS.AGENTS">Agents</label>\n <input type="number" name="agents" ng-model="vm.license.agents" required>\n <div ng-messages="requestForm.agents.$error" ng-show="requestForm.agents.$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.AGENTS_REQUIRED">Agents field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" flex>\n <label translate="SETTINGS.TELEPHONES">Telephones</label>\n <input type="number" name="telephones" ng-model="vm.license.telephones" required>\n <div ng-messages="requestForm.telephones.$error" ng-show="requestForm.telephones.$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.TELEPHONES_REQUIRED">Telephones field is required</span>\n </div>\n </div>\n </md-input-container>\n </div>\n\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.CHANNELS\' | translate }}</md-subheader>\n <div layout="row" layout-align="space-between center">\n <md-switch ng-model="vm.license[channel.name]" aria-label="{{channel.name}}" ng-repeat="channel in vm.channels | limitTo:3"><span translate="SETTINGS.{{channel.name | uppercase}}"></span></md-switch>\n <md-switch ng-model="vm.license[channel.name]" aria-label="{{channel.name}}" ng-repeat="channel in vm.channels | limitTo:3:3"><span translate="SETTINGS.{{channel.name | uppercase}}"></span></md-switch>\n </div>\n\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.MODULES\' | translate }}</md-subheader>\n <div layout="row" layout-align="space-between center">\n <md-switch ng-model="vm.license[module.name]" aria-label="{{module.name}}" ng-repeat="module in vm.modules"><span translate="SETTINGS.{{module.name | uppercase}}"></span></md-switch>\n </div>\n\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.SESSIONS\' | translate }}</md-subheader>\n <div layout="row">\n <md-input-container ng-repeat="session in vm.sessions" class="md-block" flex="50">\n <label>{{ \'SETTINGS.\' + session.name | uppercase | translate }} ({{ \'SETTINGS.\' + session.label | uppercase | translate }})</label>\n <input type="number" name="{{session.name}}" ng-model="vm.license[session.name]" required>\n <div class="hint"><span>0={{ \'SETTINGS.UNLIMITED_CHANNELS\' | translate }}</span></div>\n <div ng-messages="requestForm[session.name].$error" ng-show="requestForm[session.name].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.CHANNEL_REQUIRED">Mandatory field</span>\n </div>\n </div>\n </md-input-container>\n </div>\n\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.ADDONS\' | translate }}</md-subheader>\n <div layout="row" layout-align="space-between center">\n <md-switch ng-model="vm.license[addon.name]" aria-label="{{module.name}}" ng-repeat="addon in vm.addons"><span translate="SETTINGS.{{addon.name | uppercase}}"></span></md-switch>\n </div>\n\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.OTHERS\' | translate }}</md-subheader>\n <div layout="row" layout-align="space-between center">\n <md-switch ng-model="vm.license[other.name]" aria-label="{{other.name}}" ng-repeat="other in vm.others"><span translate="SETTINGS.{{other.name | uppercase}}"></span></md-switch>\n </div>\n\n <md-input-container class="md-block">\n <label translate="SETTINGS.DESCRIPTION">Description</label>\n <textarea name="description" ng-model="vm.license.description"></textarea>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.sendRequest()" class="send-button md-accent md-raised" ng-disabled="requestForm.$invalid || requestForm.$pristine" aria-label="SEND" translate="SETTINGS.SEND" translate-attr-aria-label="SETTINGS.SEND">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/settings/views/license/update/dialog.html",'<md-dialog class="update-dialog" aria-label="Update License">\n <form name="updateForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title" translate="SETTINGS.UPDATE_LICENSE">Update License</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <md-content layout="row">\n <span class="md-title" translate="SETTINGS.UPDATE_LICENSE_MANUALLY">Do you want to update your license manually?</span>\n </md-content>\n <md-input-container class="md-block">\n <label translate="SETTINGS.ENTER_LICENSE">Enter your license</label>\n <textarea name="key" ng-model="vm.licenseKey" required></textarea>\n <div ng-messages="updateForm.name.$error" ng-show="updateForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.LICENSE_REQUIRED">License key field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.updateLicense()" class="send-button md-accent md-raised" ng-disabled="updateForm.$invalid || updateForm.$pristine" aria-label="UPDATE" translate="SETTINGS.UPDATE" translate-attr-aria-label="SETTINGS.UPDATE">\n UPDATE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/settings/views/networks/create/dialog.html",'<md-dialog class="network-dialog" aria-label="New Network">\n <form name="networkForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SETTINGS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.network.type" autofocus required>\n <md-option ng-value="\'localnet\'">LocalNET</md-option>\n <md-option ng-value="\'externip\'">ExternIP</md-option>\n <md-option ng-value="\'turn\'">Turn</md-option>\n <md-option ng-value="\'stun\'">Stun</md-option>\n </md-select>\n <div ng-messages="networkForm[\'type\'].$error" ng-show="networkForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.network.type == \'localnet\'" class="md-block">\n <label translate="SETTINGS.LOCALNETADDRESS">localNetAddress</label>\n <input type="text" name="value" ng-model="vm.network.value" ng-pattern="/^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])/(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/" ng-required="true">\n\n <div class="hint"><span translate="SETTINGS.HELP.LOCALNETADDRESS"></span></div>\n <div ng-messages="networkForm[\'value\'].$error" ng-show="networkForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.LOCALNETADDRESS_REQUIRED">localNetAddress field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="SETTINGS.ERRORS.LOCALNETADDRESS_MUST_VALID_PATTERN" translate-values="{ regex: \'/^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])/(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/\' }">localNetAddress must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.network.type == \'externip\'" class="md-block">\n <label translate="SETTINGS.ADDRESS">Address</label>\n <input type="text" name="value" ng-model="vm.network.value" ng-pattern="/^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/" ng-required="true">\n\n <div class="hint"><span translate="SETTINGS.HELP.ADDRESS"></span></div>\n <div ng-messages="networkForm[\'value\'].$error" ng-show="networkForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.ADDRESS_REQUIRED">Address field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="SETTINGS.ERRORS.ADDRESS_MUST_VALID_PATTERN" translate-values="{ regex: \'/^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/\' }">Address must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.network.type == \'turn\' || vm.network.type == \'stun\'" class="md-block">\n <label translate="SETTINGS.ADDRESS">Address</label>\n <input type="text" name="value" ng-model="vm.network.value" ng-required="true">\n\n <div ng-messages="networkForm[\'value\'].$error" ng-show="networkForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.ADDRESS_REQUIRED">Address field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.network.type == \'turn\'" class="md-block">\n <label translate="SETTINGS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.network.username" ng-required="vm.network.type == \'turn\'">\n\n <div class="hint"><span translate="SETTINGS.HELP.USERNAME"></span></div>\n <div ng-messages="networkForm[\'username\'].$error" ng-show="networkForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.network.type == \'turn\'" class="md-block">\n <label translate="SETTINGS.PASSWORD">Password</label>\n <input type="text" name="password" ng-model="vm.network.password" ng-required="vm.network.type == \'turn\'">\n\n <div class="hint"><span translate="SETTINGS.HELP.PASSWORD"></span></div>\n <div ng-messages="networkForm[\'password\'].$error" ng-show="networkForm[\'password\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="!vm.newNetwork" ng-click="vm.saveNetwork()" class="send-button md-accent md-raised" ng-disabled="networkForm.$invalid || networkForm.$pristine" aria-label="SAVE" translate="SETTINGS.SAVE" translate-attr-aria-label="SETTINGS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.newNetwork" ng-click="vm.addNewNetwork()" class="send-button md-accent md-raised" ng-disabled="networkForm.$invalid" aria-label="ADD" translate="SETTINGS.ADD_NETWORK" translate-attr-aria-label="SETTINGS.ADD_NETWORK">\n ADD NETWORK\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-click="vm.deleteNetwork($event)" aria-label="DELETE" translate translate-attr-aria-label="SETTINGS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="SETTINGS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/settings/views/networks/networks.html",'<div id="networks" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-cog" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="SETTINGS.NETWORKS">Networks</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="SETTINGS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedNetworks.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedNetworks =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="SETTINGS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-networks-count">\n <span>{{vm.selectedNetworks.length}}</span>\n <span translate="SETTINGS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="SETTINGS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllNetworks()" translate="SETTINGS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectNetworks()" translate="SETTINGS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedNetworks" csv-label="true" filename="networks.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-click="vm.deleteSelectedNetworks($event)" aria-label="delete selected" translate translate-attr-label="SETTINGS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- NETWORK TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedNetworks" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getNetworks">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'SETTINGS.ID\' | translate }}</th>\n <th md-column md-order-by="type">{{ \'SETTINGS.TYPE\' | translate }}</th>\n <th md-column md-order-by="value">{{ \'SETTINGS.ADDRESS\' | translate }}</th>\n <th md-column md-order-by="createdAt">{{ \'SETTINGS.CREATED_AT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.networks.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="SETTINGS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="network" md-select-id="id" ng-repeat="network in vm.networks.rows">\n <td md-cell ng-if="network.userpic"><img class="avatar" alt="{{network.name}}" ng-src="api/users/{{network.id}}/avatar" /></td>\n <td md-cell ng-if="!network.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{network.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditNetwork($event, network)" md-cell class="id ">{{network.id}}</td>\n <td ng-click="vm.createOrEditNetwork($event, network)" md-cell class="type ">{{ vm.arraytype[network.type].option }}</td>\n <td ng-click="vm.createOrEditNetwork($event, network)" md-cell class="value ">{{network.value}}</td>\n <td ng-click="vm.createOrEditNetwork($event, network)" md-cell class="createdAt ">{{network.createdAt | date:\'medium\' }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="SETTINGS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.editdialog(network, $event )" translate="SETTINGS.EDIT_NETWORK">\n Edit Network\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.deleteconfirm(network, $event )" translate="SETTINGS.DELETE_NETWORK">\n Delete Network\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'SETTINGS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SETTINGS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SETTINGS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.networks.count}}" md-on-paginate="vm.getNetworks" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / NETWORK TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD NETWORK BUTTON --\x3e\n <md-button class="md-fab md-accent" id="add-network-button" ng-click="vm.createOrEditNetwork($event)" aria-label="add network" translate translate-attr-aria-label="SETTINGS.ADD_NETWORK">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD NETWORK BUTTON --\x3e\n</div>'),e.put("app/main/apps/settings/views/smtps/create/dialog.html",'<md-dialog class="smtp-dialog" aria-label="New Smtp">\n <form name="smtpForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SETTINGS.ACCOUNTNAME">AccountName</label>\n <input type="text" name="name" ng-model="vm.smtp.name" ng-required="true" autofocus>\n\n <div ng-messages="smtpForm[\'name\'].$error" ng-show="smtpForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.ACCOUNTNAME_REQUIRED">AccountName field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.EMAILADDRESS">EmailAddress</label>\n <input type="email" name="email" ng-model="vm.smtp.email" ng-required="true">\n\n <div class="hint"><span translate="SETTINGS.HELP.EMAILADDRESS"></span></div>\n <div ng-messages="smtpForm[\'email\'].$error" ng-show="smtpForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.EMAILADDRESS_REQUIRED">EmailAddress field is required</span>\n </div>\n <div ng-message="email">\n <span translate="SETTINGS.ERRORS.EMAILADDRESS_MUST_VALID">EmailAddress must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.SMTP_SERVICE">SMTP_Service</label>\n <md-select name="Smtp.service" ng-model="vm.smtp.Smtp.service" required>\n <md-option ng-value="null">Custom</md-option>\n <md-option ng-value="\'gmail\'">Gmail</md-option>\n <md-option ng-value="\'hotmail\'">Hotmail</md-option>\n <md-option ng-value="\'yahoo\'">Yahoo</md-option>\n <md-option ng-value="\'outlook365\'">Outlook365</md-option>\n </md-select>\n <div ng-messages="smtpForm[\'Smtp.service\'].$error" ng-show="smtpForm[\'Smtp.service\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SMTP_SERVICE_REQUIRED">SMTP_Service field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smtp.Smtp.service == null" class="md-block">\n <label translate="SETTINGS.SMTP_HOST">SMTP_Host</label>\n <input type="text" name="Smtp.host" ng-model="vm.smtp.Smtp.host" ng-required="true">\n\n <div ng-messages="smtpForm[\'Smtp.host\'].$error" ng-show="smtpForm[\'Smtp.host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SMTP_HOST_REQUIRED">SMTP_Host field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smtp.Smtp.service == null" class="md-block">\n <label translate="SETTINGS.SMTP_PORT">SMTP_Port</label>\n <input type="number" name="Smtp.port" ng-model="vm.smtp.Smtp.port" value="465" ng-required="true">\n\n <div ng-messages="smtpForm[\'Smtp.port\'].$error" ng-show="smtpForm[\'Smtp.port\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SMTP_PORT_REQUIRED">SMTP_Port field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smtp.Smtp.service == null" class="md-block">\n <md-switch ng-model="vm.smtp.Smtp.secure" aria-label="SMTP_Secure"><span translate="SETTINGS.SMTP_SECURE">SMTP_Secure</span></md-switch>\n <div class="hint"><span translate="SETTINGS.HELP.SMTP_SECURE"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.smtp.Smtp.service == null" class="md-block">\n <md-switch ng-model="vm.smtp.Smtp.authentication" aria-label="SMTP_Authentication"><span translate="SETTINGS.SMTP_AUTHENTICATION">SMTP_Authentication</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.smtp.Smtp.authentication == true || vm.smtp.Smtp.service != null" class="md-block">\n <label translate="SETTINGS.SMTP_USERNAME">SMTP_Username</label>\n <input type="text" name="Smtp.user" ng-model="vm.smtp.Smtp.user" ng-required="true">\n\n <div class="hint"><span translate="SETTINGS.HELP.SMTP_USERNAME"></span></div>\n <div ng-messages="smtpForm[\'Smtp.user\'].$error" ng-show="smtpForm[\'Smtp.user\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SMTP_USERNAME_REQUIRED">SMTP_Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.smtp.Smtp.authentication == true || vm.smtp.Smtp.service != null">\n <label translate="SETTINGS.SMTP_PASSWORD">SMTP_Password</label>\n <input type="password" name="Smtp.pass" ng-model="vm.smtp.Smtp.pass" placeholder="Password" translate translate-attr-placeholder="SETTINGS.PASSWORD" required>\n <div class="hint"><span translate="SETTINGS.HELP.SMTP_PASSWORD"></span></div>\n <div ng-messages="smtpForm[\'Smtp.pass\'].$error" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="SETTINGS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="SETTINGS.DESCRIPTION">Description</label>\n <input type="" name="description" ng-model="vm.smtp.description">\n\n <div ng-messages="smtpForm[\'description\'].$error" ng-show="smtpForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newSmtp" ng-click="vm.saveSmtp()" class="send-button md-accent md-raised" ng-disabled="smtpForm.$invalid || smtpForm.$pristine" aria-label="SAVE" translate="SETTINGS.SAVE" translate-attr-aria-label="SETTINGS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newSmtp" ng-click="vm.addNewSmtp()" class="send-button md-accent md-raised" ng-disabled="smtpForm.$invalid" aria-label="ADD" translate="SETTINGS.ADD_SMTP" translate-attr-aria-label="SETTINGS.ADD_SMTP">\n ADD SMTP\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newSmtp" ng-click="vm.deleteSmtp($event)" aria-label="DELETE" translate translate-attr-aria-label="SETTINGS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="SETTINGS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/settings/views/smtps/smtps.html",'<div id="smtps" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-cog" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="SETTINGS.SMTP">Smtp</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div>\n <md-button type="submit" ng-click="vm.verifySmtp()" ng-disabled="!vm.smtp.id" class="send-button md-accent md-raised" translate="SETTINGS.VERIFY" translate-attr-aria-label="SETTINGS.VERIFY">\n VERIFY\n </md-button>\n <md-button type="submit" ng-click="vm.saveSmtp()" ng-disabled="(generalForm.$pristine) || (generalForm.$invalid)" class="send-button md-accent md-raised" translate="SETTINGS.SAVE" translate-attr-aria-label="SETTINGS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n <div class="smtp-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SETTINGS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="SETTINGS.ACCOUNTNAME">AccountName</label>\n <input type="text" name="name" ng-model="vm.smtp.name" ng-required="true" autofocus>\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.ACCOUNTNAME_REQUIRED">AccountName field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.EMAILADDRESS">EmailAddress</label>\n <input type="email" name="email" ng-model="vm.smtp.email" ng-required="true">\n\n <div class="hint"><span translate="SETTINGS.HELP.EMAILADDRESS"></span></div>\n <div ng-messages="generalForm[\'email\'].$error" ng-show="generalForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.EMAILADDRESS_REQUIRED">EmailAddress field is required</span>\n </div>\n <div ng-message="email">\n <span translate="SETTINGS.ERRORS.EMAILADDRESS_MUST_VALID">EmailAddress must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.SMTP_SERVICE">SMTP_Service</label>\n <md-select name="Smtp.service" ng-model="vm.smtp.Smtp.service" required>\n <md-option ng-value="null">Custom</md-option>\n <md-option ng-value="\'gmail\'">Gmail</md-option>\n <md-option ng-value="\'hotmail\'">Hotmail</md-option>\n <md-option ng-value="\'yahoo\'">Yahoo</md-option>\n <md-option ng-value="\'outlook365\'">Outlook365</md-option>\n </md-select>\n <div ng-messages="generalForm[\'Smtp.service\'].$error" ng-show="generalForm[\'Smtp.service\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SMTP_SERVICE_REQUIRED">SMTP_Service field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smtp.Smtp.service == null" class="md-block">\n <label translate="SETTINGS.SMTP_HOST">SMTP_Host</label>\n <input type="text" name="Smtp.host" ng-model="vm.smtp.Smtp.host" ng-required="true">\n\n <div ng-messages="generalForm[\'Smtp.host\'].$error" ng-show="generalForm[\'Smtp.host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SMTP_HOST_REQUIRED">SMTP_Host field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smtp.Smtp.service == null" class="md-block">\n <label translate="SETTINGS.SMTP_PORT">SMTP_Port</label>\n <input type="number" name="Smtp.port" ng-model="vm.smtp.Smtp.port" value="465" ng-required="true">\n\n <div ng-messages="generalForm[\'Smtp.port\'].$error" ng-show="generalForm[\'Smtp.port\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SMTP_PORT_REQUIRED">SMTP_Port field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smtp.Smtp.service == null" class="md-block">\n <md-switch ng-model="vm.smtp.Smtp.secure" aria-label="SMTP_Secure"><span translate="SETTINGS.SMTP_SECURE">SMTP_Secure</span></md-switch>\n <div class="hint"><span translate="SETTINGS.HELP.SMTP_SECURE"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.smtp.Smtp.service == null" class="md-block">\n <md-switch ng-model="vm.smtp.Smtp.authentication" aria-label="SMTP_Authentication"><span translate="SETTINGS.SMTP_AUTHENTICATION">SMTP_Authentication</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.smtp.Smtp.authentication == true || vm.smtp.Smtp.service != null" class="md-block">\n <label translate="SETTINGS.SMTP_USERNAME">SMTP_Username</label>\n <input type="text" name="Smtp.user" ng-model="vm.smtp.Smtp.user" ng-required="true">\n\n <div class="hint"><span translate="SETTINGS.HELP.SMTP_USERNAME"></span></div>\n <div ng-messages="generalForm[\'Smtp.user\'].$error" ng-show="generalForm[\'Smtp.user\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SMTP_USERNAME_REQUIRED">SMTP_Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.smtp.Smtp.authentication == true || vm.smtp.Smtp.service != null">\n <label translate="SETTINGS.SMTP_PASSWORD">SMTP_Password</label>\n <input type="password" name="Smtp.pass" ng-model="vm.smtp.Smtp.pass" placeholder="Password" translate translate-attr-placeholder="SETTINGS.PASSWORD" required>\n <div class="hint"><span translate="SETTINGS.HELP.SMTP_PASSWORD"></span></div>\n <div ng-messages="generalForm[\'Smtp.pass\'].$error" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="SETTINGS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="SETTINGS.DESCRIPTION">Description</label>\n <input type="" name="description" ng-model="vm.smtp.description">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/settings/views/system/system.html",'<div id="system" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-cog" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="SETTINGS.SYSTEM">SYSTEM</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" md-border-bottom flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="SETTINGS.GENERAL">GENERAL</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="system-detail-form-container personal_info md-background-bg md-whiteframe-1dp">\n <md-card class="md-whiteframe-1dp padding-20" layout="row" layout-xs="column" layout-wrap>\n <ms-widget flex="50" flex-xs="100">\n \x3c!-- Front --\x3e\n <ms-widget-front class="white-bg">\n <div class="ph-16 pt-16 pb-8 md-accent-bg">\n <div class="h3">OS</div>\n </div>\n\n <div layout="row" layout-align="start center" layout-wrap>\n <div flex="100" flex-gt-md="100">\n <div class="p-16 pb-32">\n <div class="h4">{{vm.system.system.manufacturer}} {{vm.system.system.model}}</div>\n <div class="h4">{{vm.system.cpu.manufacturer}} {{vm.system.cpu.brand}} - {{vm.system.cpu.speed}} GHz - {{vm.system.cpu.cores}} Cores</div>\n <div class="h4">{{vm.system.os.distro}} - {{vm.system.os.release}} - Kernel: {{vm.system.os.kernel}}</div>\n <div class="h4">Node.js: {{vm.system.node}}</div>\n <div class="h4">Host: {{vm.system.os.hostname}} - Uptime: {{vm.system.time.uptime / 60 | number:0}} m</div>\n <div class="h4">TimeZone: {{vm.system.time.timezone}} ({{vm.system.time.timezoneName}})</div>\n </div>\n </div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n <ms-widget flex="25" flex-xs="100">\n \x3c!-- Front --\x3e\n <ms-widget-front class="white-bg">\n <div class="ph-16 pt-16 pb-8 md-accent-bg md-hue-1">\n <div class="h3">CPU</div>\n </div>\n\n <div layout="row" layout-align="start center" layout-wrap>\n <div flex="100" flex-gt-md="100">\n <div class="p-16 pb-32">\n <div class="pb-8" layout="row" layout-align="space-between start">\n <span class="h3" translate="SETTINGS.AVG_LOAD">AVG Load</span>\n <span class="h3 secondary-text font-weight-500">{{vm.system.currentLoad.avgload * 100 | number:0}}%</span>\n </div>\n <md-progress-linear class="red" md-mode="determinate" value="{{vm.system.currentLoad.avgload * 100 | number:0}}"></md-progress-linear>\n </div>\n </div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n <ms-widget flex="25" flex-xs="100">\n \x3c!-- Front --\x3e\n <ms-widget-front class="white-bg">\n <div class="ph-16 pt-16 pb-8 md-accent-bg md-hue-3">\n <div class="h3">MEM</div>\n </div>\n\n <div layout="row" layout-align="start center" layout-wrap>\n <div flex="100" flex-gt-md="100">\n <div class="p-16 pb-32">\n <div class="h4">{{\'SETTINGS.TOTAL\' | translate}}: {{vm.system.mem.total / 1024 / 1024 / 1024 | number:0}} GB</div>\n <div class="h4">{{\'SETTINGS.FREE\' | translate}}: {{vm.system.mem.available / 1024 / 1024 / 1024 | number:0}} GB</div>\n <div class="h4">{{\'SETTINGS.USED\' | translate}}: {{vm.system.mem.active / 1024 / 1024 / 1024 | number:0}} GB</div>\n </div>\n <div class="p-16 pb-32">\n <div class="pb-8" layout="row" layout-align="space-between start">\n <span class="h3" translate="SETTINGS.USED">Used</span>\n <span class="h3 secondary-text font-weight-500">{{(vm.system.mem.active / vm.system.mem.total) * 100 | number : 0}}%</span>\n </div>\n <md-progress-linear class="md-warn" md-mode="determinate" value="{{(vm.system.mem.active / vm.system.mem.total) * 100 | number : 0 }}"></md-progress-linear>\n\n </div>\n </div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n </md-card>\n\n <md-card class="md-whiteframe-1dp padding-20" layout="row" layout-xs="column" layout-wrap>\n <ms-widget ng-repeat="disk in vm.system.fsSize" flex="25" flex-xs="100">\n \x3c!-- Front --\x3e\n <ms-widget-front class="white-bg">\n <div class="ph-16 pt-16 pb-8 md-accent-bg md-hue-3">\n <div class="h3">DISK {{$index + 1}}</div>\n </div>\n\n <div layout="row" layout-align="start center" layout-wrap>\n <div flex="100" flex-gt-md="100">\n <div class="p-16 pb-32">\n <div class="h4">{{\'SETTINGS.FILE_SYSTEM\' | translate}}: {{disk.fs}}</div>\n <div class="h4">{{\'SETTINGS.MOUNT_POINT\' | translate}}: "{{disk.mount}}"</div>\n <div class="h4">{{\'SETTINGS.TOTAL\' | translate}}: {{disk.size / 1024 / 1024 / 1024 | number:0}} GB</div>\n <div class="h4">{{\'SETTINGS.USED\' | translate}}: {{disk.used / 1024 / 1024 / 1024 | number:0}} GB</div>\n </div>\n <div class="p-16 pb-32">\n <div class="pb-8" layout="row" layout-align="space-between start">\n <span class="h3" translate="SETTINGS.USED">Used</span>\n <span class="h4 secondary-text font-weight-500">{{disk.use | number:0}}%</span>\n </div>\n <md-progress-linear class="red" md-mode="determinate" value="{{disk.use | number:0}}"></md-progress-linear>\n </div>\n </div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n </md-card>\n\n <md-card class="md-whiteframe-1dp padding-20" layout="row" layout-xs="column" layout-wrap>\n <ms-widget ng-repeat="net in vm.system.net" flex="25" flex-xs="100">\n \x3c!-- Front --\x3e\n <ms-widget-front class="white-bg">\n <div class="ph-16 pt-16 pb-8 md-accent-bg md-hue-3">\n <div class="h3">NET {{$index + 1}}</div>\n </div>\n\n <div layout="row" layout-align="start center" layout-wrap>\n <div flex="100" flex-gt-md="100">\n <div class="p-16 pb-32">\n <div class="h4">{{\'SETTINGS.INTERFACE\' | translate}}: {{net.iface}}</div>\n <div class="h4">IPv4: {{net.ip4}}</div>\n <div class="h4">IPv6: {{net.ip6}}</div>\n <div class="h4">MAC: {{net.mac}}</div>\n </div>\n </div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n </md-card>\n\n <md-card class="md-whiteframe-1dp padding-20" layout="row">\n <div flex>\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="SETTINGS.TOP_N_PROCESSES" translate-values="{value: vm.processLimit}"></span>\n <div flex></div>\n <ms-search-bar on-search="vm.searchTerm1 = query" on-collapse="vm.searchTerm1 = undefined" debounce="300"></ms-search-bar>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column>pid</th>\n <th md-column>{{\'SETTINGS.NAME\' | translate}}</th>\n <th md-column>{{\'SETTINGS.STATE\' | translate}}</th>\n <th md-column>pmem</th>\n <th md-column>pcpu</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-repeat="process in vm.system.processes.list | limitTo: vm.processLimit | filter: vm.searchTerm1 | orderBy:\'-pcpu\'">\n <td md-cell>{{process.pid}}</td>\n <td md-cell>{{process.command}}</td>\n <td md-cell>\n <span class="text-boxed white-fg" ng-class="{\n \'green-600-bg\': process.state == \'running\',\n \'yellow-600-bg\': process.state == \'sleeping\',\n \'red-600-bg\': process.state == \'blocked\'}">{{process.state | uppercase}}</span>\n </td>\n <td md-cell>{{process.pmem}}%</td>\n <td md-cell>{{process.pcpu}}%</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </div>\n </md-card>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="SETTINGS.PROCESSES">PROCESSES</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="system-detail-form-container general md-background-bg md-whiteframe-1dp">\n <md-card class="md-whiteframe-1dp padding-20" flex>\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="SETTINGS.MOTION_PROCESS_MANAGEMENT"></span>\n <div flex></div>\n <ms-search-bar on-search="vm.searchTerm2 = query" on-collapse="vm.searchTerm2 = undefined" debounce="300"></ms-search-bar>\n <md-button ng-click="vm.getProcesses()" class="md-icon-button" aria-label="Reload">\n <md-icon md-font-icon="icon-reload" class="s24"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column>id</th>\n <th md-column>pid</th>\n <th md-column>{{\'SETTINGS.NAME\' | translate}}</th>\n <th md-column>{{\'SETTINGS.STATE\' | translate}}</th>\n <th md-column>MEM</th>\n <th md-column>CPU</th>\n <th md-column width="20px">Actions</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-repeat="process in vm.processes | filter: vm.searchTerm2 | orderBy:\'-monit.cpu\'">\n <td md-cell>{{process.pm_id}}</td>\n <td md-cell>{{process.pid}}</td>\n <td md-cell>{{process.name == \'agi\' ? \'agi (Cally Square IVR)\' : process.name}}</td>\n <td md-cell>\n <span class="text-boxed white-fg" ng-class="{\'green-600-bg\': process.pm2_env.status == \'online\', \'red-600-bg\': process.pm2_env.status == \'stopped\'}">{{process.pm2_env.status | uppercase}}</span>\n </td>\n <td md-cell>{{process.monit.memory / 1024 / 1024 | number:0}} MB</td>\n <td md-cell>{{process.monit.cpu}}%</td>\n <td md-cell>\n <md-button ng-if="process.pm2_env.status !== \'online\'" ng-click="vm.updateProcess($event, process.pm_id, \'online\')" class="md-icon-button" aria-label="Play">\n <md-icon md-font-icon="icon-play" class="s24"></md-icon>\n </md-button>\n <md-button ng-if="process.pm2_env.status === \'online\'" ng-click="vm.updateProcess($event, process.pm_id, \'stopped\')" class="md-icon-button" aria-label="Stop">\n <md-icon md-font-icon="icon-stop" class="s24"></md-icon>\n </md-button>\n </td>\n </tr>\n </tbody>\n <tfoot md-foot>\n <tr md-row>\n <td md-cell></td>\n <td md-cell></td>\n <td md-cell></td>\n <td md-cell></td>\n <td md-cell>{{ (vm.processes | map: \'monit.memory\' | sum) / 1024 / 1024 | number:0 }} MB</td>\n <td md-cell></td>\n <td md-cell></td>\n </tr>\n </tfoot>\n </table>\n </md-table-container>\n </md-card>\n <md-card class="md-whiteframe-1dp padding-20" flex>\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="SETTINGS.USEFUL_COMMANDS"></span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column width="30%">{{\'SETTINGS.COMMAND\' | translate}}</th>\n <th md-column>{{\'SETTINGS.DESCRIPTION\' | translate}}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr>\n <td md-cell class="no-border">pm2 list</td>\n <td md-cell class="no-border">{{ \'SETTINGS.PM2_LIST\' | translate}}</td>\n </tr>\n <tr>\n <td md-cell class="no-border">pm2 start <id | name></td>\n <td md-cell class="no-border">{{ \'SETTINGS.PM2_START\' | translate}}</td>\n </tr>\n <tr>\n <td md-cell class="no-border">pm2 stop <id | name | all></td>\n <td md-cell class="no-border">{{ \'SETTINGS.PM2_STOP\' | translate}}</td>\n </tr>\n <tr>\n <td md-cell class="no-border">pm2 restart <id | name></td>\n <td md-cell class="no-border">{{ \'SETTINGS.PM2_RESTART\' | translate}}</td>\n </tr>\n <tr>\n <td md-cell class="no-border">pm2 logs [id | name]</td>\n <td md-cell class="no-border">{{ \'SETTINGS.PM2_LOGS\' | translate}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-card>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/settings/views/updates/update/dialog.html",'<md-dialog aria-label="Update">\n <form name="updateForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n </div>\n </md-toolbar>\n\n <div md-background-bg layout="row" layout-align="start start">\n <md-progress-linear md-mode="determinate" value="{{vm.progress}}" class="md-warn"></md-progress-linear>\n </div>\n\n <md-dialog-content ms-scroll>\n <div layout="row" layout-align="center center">\n <div ng-if="vm.updating" layout="column" layout-align="center center">\n <span class="text-center md-title">Grab a quick coffee and</span>\n <span class="text-center md-title">get back here as soon as completed!</span>\n <span class="text-center md-title">{{vm.output}}</span>\n </div>\n <div ng-if="!vm.updating">\n <div ng-if="vm.success" layout="column" layout-align="center center">\n <span class="text-center md-title">Update Completed! Thank you for your time.</span>\n <span class="text-center md-title">In order to complete the update,</span>\n <span class="text-center md-title">please click on reload button</span>\n </div>\n <div ng-if="!vm.success" layout="column" layout-align="center center">\n <span class="text-center md-title">Update Error!</span>\n <span class="text-center md-title">Please contact your administrator!</span>\n <span class="text-center md-title">{{vm.output}}</span>\n </div>\n </div>\n <img src="assets/images/business/users.jpg" alt="" width="128" height="128" />\n </div>\n </md-dialog-content>\n\n <md-dialog-actions ng-if="!vm.updating" layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.reload()" class="send-button md-warm md-raised" aria-label="RELOAD" translate="SETTINGS.RELOAD" translate-attr-aria-label="SETTINGS.RELOAD">\n RELOAD\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/settings/views/updates/updates.html",'<div id="updates" class="page-layout simple fullwidth doc-page">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-cog" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="SETTINGS.UPDATES">UPDATES</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n \x3c!-- UPDATE CARD --\x3e\n <div layout="row" ng-if="!vm.updating">\n <md-card class="md-whiteframe-1dp padding-20" flex>\n <div layout="column" layout-align="center center">\n\n <span class="md-title md-accent-fg padding-20 text-bold" translate="SETTINGS.CURRENT_VERSION">CURRENT VERSION</span>\n\n <span class="md-display-3 padding-20">{{vm.version.current}}</span>\n\n <md-button href="https://wiki.xcallymotion.com/display/XMV/Motion+GUI#MotionGUI-Version{{vm.version.current}}" target="_blank" class="md-accent" title="CHANGELOG" aria-label="CHANGELOG" translate="SETTINGS.CHANGELOG" translate-attr-aria-label="SETTINGS.CHANGELOG">\n CHANGELOG\n </md-button>\n </div>\n </md-card>\n <md-card class="md-whiteframe-20dp padding-20" flex ng-if="vm.version.current != vm.version.latest">\n <div layout="column" layout-align="center center">\n\n <span class="md-title md-warn-fg padding-20 text-bold" translate="SETTINGS.NEW_VERSION">NEW VERSION</span>\n\n <span class="md-display-3 padding-20">{{vm.version.latest}}</span>\n\n <md-button href="https://wiki.xcallymotion.com/display/XMV/Motion+GUI#MotionGUI-Version{{vm.version.latest}}" target="_blank" class="md-accent" title="CHANGELOG" aria-label="CHANGELOG" translate="SETTINGS.CHANGELOG" translate-attr-aria-label="SETTINGS.CHANGELOG">\n CHANGELOG\n </md-button>\n <md-button ng-click="vm.updateConfirm($event)" class="md-raised md-warn" aria-label="CHANGELOG" translate="SETTINGS.UPDATE" translate-attr-aria-label="SETTINGS.UPDATE">UPDATE</md-button>\n </div>\n </md-card>\n <md-card class="md-whiteframe-1dp padding-20" flex ng-if="vm.version.current == vm.version.latest">\n <div layout="column" layout-align="center center">\n\n <span class="md-title md-warn-fg padding-20 text-bold" translate="SETTINGS.REMOTE_VERSION">REMOTE VERSION</span>\n\n <span class="md-subhead padding-20" translate="SETTINGS.NO_NEW_VERSION_AVAILABLE">NO NEW VERSION AVAILABLE</span>\n </div>\n </md-card>\n </div>\n \x3c!-- / UPDATE CARD --\x3e\n\n <div ng-if="vm.updating">\n <md-card class="md-whiteframe-1dp padding-20" flex>\n <div layout="column" layout-align="center center">\n <span class="md-title md-accent-fg padding-20 text-bold" translate="SETTINGS.UPDATING">...</span>\n <md-progress-linear md-mode="determinate" class="md-accent padding-20" value="{{vm.progress}}"></md-progress-linear>\n <span class="md-display-1 padding-5 text-center">Grab a quick coffee and</span>\n <span class="md-display-1 padding-5 text-center">get back here as soon as completed</span>\n <img src="assets/images/business/users.jpg" alt="" width="40%" height="40%" />\n </div>\n </md-card>\n </div>\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- NO ADD BUTTON BUTTON --\x3e\n</div>'),e.put("app/main/apps/sms/views/realtime/agents/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="SMS.AGENTS">Agents</span>\n <div flex></div>\n <ms-search-bar on-search="vm.onInit()" query="vm.query" on-collapse="vm.query.filter = undefined; vm.onInit()" debounce="300"></ms-search-bar>\n <md-select ng-model="vm.query.globalStatusFilter" class="md-caption" ng-change="vm.query.pauseTypeFilter = \'\'; vm.onInit()">\n <md-option ng-value="\'\'">{{ \'SMS.ALL\' | translate }}</md-option>\n <md-option value="pause">{{ \'SMS.PAUSE\' | translate }}</md-option>\n <md-option value="*pause">{{ \'SMS.PARTIALPAUSE\' | translate }}</md-option>\n <md-option value="busy">{{ \'SMS.BUSY\' | translate }}</md-option>\n <md-option value="idle">{{ \'SMS.IDLE\' | translate }}</md-option>\n </md-select>\n <md-select ng-if="vm.isPause(vm.query.globalStatusFilter)" ng-model="vm.query.pauseTypeFilter" class="md-caption" ng-change="vm.onInit()">\n <md-option ng-value="\'\'">All</md-option>\n <md-option value="DEFAULT PAUSE">DEFAULT PAUSE</md-option>\n <md-option value="ACW">ACW</md-option>\n <md-option value="LOGININPAUSE">LOGININPAUSE</md-option>\n <md-option value="Auto-Pause">AUTOPAUSE</md-option>\n <md-option ng-value="pause.name" ng-repeat="pause in vm.pauses.rows">{{pause.name}}</md-option>\n </md-select>\n </div>\n</md-toolbar>\n\x3c!-- AGENT TABLE --\x3e\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.order" md-on-reorder="vm.onInit">\n <tr md-row border="1">\n <th class="bv text-center" colspan="5">{{ \'SMS.AGENT\' | translate }}</th>\n <th class="bv bl text-center" colspan="2">{{ \'VOICE.VOICE\' | translate }}</th>\n <th ng-if="vm.license.chat" class="bv bl text-center" colspan="2">{{ \'CHAT.CHAT\' | translate }}</th>\n <th ng-if="vm.license.mail" class="bv bl text-center" colspan="2">{{ \'MAIL.MAIL\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="bv bl text-center" colspan="2">{{ \'SMS.SMS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="bv bl text-center" colspan="2">\n {{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="bv bl text-center" colspan="2">\n {{ \'WHATSAPP.WHATSAPP\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n </tr>\n <tr md-row>\n <th class="bl" colspan="2" md-column md-order-by="fullname">\n {{ \'SMS.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">\n {{ \'SMS.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">\n {{ \'SMS.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">\n {{ \'SMS.PAUSE_TIME\' | translate }}</th>\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\n <th ng-if="vm.license.chat" class="bl text-center">{{ \'CHAT.STATUS\' | translate }}</th>\n <th ng-if="vm.license.chat" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'CHAT.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.mail" class="bl text-center">{{ \'MAIL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.mail" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'MAIL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.messaging" class="bl text-center">{{ \'SMS.STATUS\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'SMS.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.openchannel" class="bl text-center">{{ \'OPENCHANNEL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'OPENCHANNEL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.fax" class="bl text-center">{{ \'FAX.STATUS\' | translate }}</th>\n <th ng-if="vm.license.fax" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'FAX.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.whatsapp" class="bl text-center">{{ \'WHATSAPP.STATUS\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'WHATSAPP.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.order.length">\n <td md-cell colspan="19">\n <div layout="row" layout-align="center center">\n <span>{{ \'SMS.NO_AGENT_ONLINE\' | translate }}</span>\n </div>\n </td>\n </tr>\n <tr md-select="vm.agents[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td class="bt padding-5">\n <div layout="row" layout-align="start center">\n <img class="avatar" ng-src="{{vm.agents[value].userpic && \'api/users/\'+vm.agents[value].id+\'/avatar\' || \'assets/images/avatars/profile.png\'}}">\n <div layout="column">\n <span>{{vm.agents[value].fullname}}</span>\n <span>{{vm.agents[value].internal}}</span>\n </div>\n </div>\n </td>\n <td class="bt padding-5">\n <div layout="row" layout-align="start center" ng-if="vm.license.screenrecording && (vm.agents[value].phoneBarEnableScreenRecordingByAgent || vm.agents[value].phoneBarEnableAutomaticScreenRecording)">\n <div class="column" ng-if="vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: green; font-size: 36px;" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'SMS.TOOLTIP_SCREENRECORDING_ON\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n <div class="column" ng-if="!vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: gray" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'SMS.TOOLTIP_SCREENRECORDING_OFF\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n </div>\n </td>\n <td class="bt">\n'+" <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','busy':'indigo-100-bg','*pause':'amber-50-bg','pause':'amber-200-bg'}[vm.agents[value].globalStatus]\">{{\n vm.isPause(vm.agents[value].globalStatus) ? '' : vm.agents[value].globalStatus | uppercase }}\n {{ vm.isPause(vm.agents[value].globalStatus) ? (vm.isPartialPause(vm.agents[value].globalStatus) ?\n '*'+vm.agents[value].pauseType || 'DEFAULT PAUSE' : vm.agents[value].pauseType || 'DEFAULT PAUSE') :\n ''}}</span>\n </td>\n <td class=\"bt custom-column\">\n <timer start-time=\"vm.agents[value].lastLoginAt\"></timer>\n </td>\n <td class=\"bt custom-column\">\n <timer ng-if=\"vm.isPause(vm.agents[value].globalStatus) || vm.isPartialPause(vm.agents[value].globalStatus)\" start-time=\"vm.agents[value].lastPauseAt\"></timer>\n </td>\n <td class=\"bt bl\">\n <div layout=\"row\">\n <span ng-if=\"!vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','talking':'indigo-100-bg','ringing':'orange-400-bg','pause':'amber-200-bg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].voiceStatus | uppercase }}</span>\n <span ng-if=\"vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5 orange-400-bg\">ONHOLD</span>\n </div>\n </td>\n <td class=\"bt bl\">\n <div layout=\"column\">\n <span ng-if=\"vm.agents[value].queue\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].queue }}</span>\n <span ng-if=\"vm.agents[value].destconnectedlinenum\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\" privacy ng-cloak>{{\n vm.agents[value].destconnectedlinenum }}</span>\n <span ng-if=\"vm.agents[value].routealias\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].routealias }}</span>\n <span class=\"padding-5\" ng-if=\"vm.agents[value].queue || vm.agents[value].destconnectedlinenum\">\n <timer start-time=\"vm.agents[value].voiceStatusTime\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">\n </timer>\n </span>\n </div>\n </td>\n <td class=\"bt bl\" ng-if=\"vm.license.chat\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].chatStatus]\">{{\n vm.agents[value].chatStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td md-number class=\"bt text-center font-size-20\" ng-if=\"vm.license.chat\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].chatStatus]\">\n {{ vm.agents[value].chatCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.mail\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].mailStatus]\">{{\n vm.agents[value].mailStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.mail\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].mailStatus]\">\n {{ vm.agents[value].mailCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.messaging\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].smsStatus]\">{{\n vm.agents[value].smsStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.messaging\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].smsStatus]\">\n {{ vm.agents[value].smsCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.openchannel\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].openchannelStatus]\">{{\n vm.agents[value].openchannelStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.openchannel\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].openchannelStatus]\">\n {{ vm.agents[value].openchannelCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.fax\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].faxStatus]\">{{\n vm.agents[value].faxStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.fax\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].faxStatus]\">\n {{ vm.agents[value].faxCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.whatsapp\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].whatsappStatus]\">{{\n vm.agents[value].whatsappStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.whatsapp\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].whatsappStatus]\">\n {{ vm.agents[value].whatsappCurrentCapacity }}</td>\n <td class=\"bl bt padding-5 text-center\" ng-if=\"vm.crudPermissions.canEdit\">\n <md-menu>\n <md-button class=\"md-icon-button\" aria-label=\"More\" translate translate-attr-aria-label=\"STAFF.MORE\" ng-click=\"$mdOpenMenu($event)\">\n <md-icon md-font-icon=\"icon-dots-vertical\"></md-icon>\n </md-button>\n <md-menu-content width=\"4\">\n <md-menu-item>\n <md-button ng-click=\"vm.logout(vm.agents[value], $event)\" translate=\"SMS.LOGOUT\">\n Logout\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click=\"vm.queueAdd(vm.agents[value], $event)\" translate=\"SMS.AGENTADD_QUEUE\">\n Add Agent In Queue\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.license.screenrecording && vm.agents[value].phoneBarEnableScreenRecordingByAgent\">\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"SMS.SCREENRECORDING\">Screen Recording\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if=\"!vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], true)\"><em translate=\"SMS.START_SCREENRECORDING\">Start\n Screen Recording</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], false)\"><em translate=\"SMS.STOP_SCREENRECORDING\">Stop\n Screen Recording</em></md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item>\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"SMS.PAUSE\">Pause</md-button>\n <md-menu-content>\n <md-menu-item>\n <md-button ng-disabled=\" vm.agents[value].voicePause && 'DEFAULT PAUSE' === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value])\"><em translate=\"SMS.DEFAULT_PAUSE\">Default\n Pause</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.pauses.rows.length\" ng-repeat=\"pause in vm.pauses.rows\">\n <md-button ng-disabled=\"vm.agents[value].voicePause && pause.name === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value], pause.name)\">{{pause.name}}\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.isPause(vm.agents[value].globalStatus)\">\n <md-button ng-click=\"vm.unPause(vm.agents[value])\" translate=\"SMS.UNPAUSE\">\n Unpause\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label=\"{page: '{{'SMS.PAGE' | translate}}:', rowsPerPage: '{{'SMS.ROWSPERPAGE' | translate}}:', of: '{{'SMS.OF' | translate}}'}\" md-limit=\"vm.query.limit\" md-limit-options=\"[10, 15, 20, 50, 100, 250]\" md-page=\"vm.query.page\" md-total=\"{{vm.filteredAgents.length}}\" md-on-paginate=\"vm.onInit\" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e"),e.put("app/main/apps/sms/views/realtime/queues/view.html",'<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="SMS.QUEUES">Queues</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getQueues">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'SMS.NAME\' | translate }}</th>\n <th md-column>{{ \'SMS.LOGGED_IN\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'SMS.PAUSED\' | translate }}</th>\n <th md-column>{{ \'SMS.WAITING\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.queues.count > 0">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="SMS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="queue" md-select-id="id" ng-repeat="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedIn }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="SMS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.editQueue($event, queue)" translate="SMS.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.addAgent($event, queue)" translate="SMS.AGENTSADD_QUEUE">\n Add Agents to queue\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'SMS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SMS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SMS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),e.put("app/main/apps/sms/views/realtime/realtime.html",'<div id="realtime" class="page-layout simple tabbed" layout="column" ng-cloak>\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="SMS.AGENTS">Agents</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="SMS.QUEUES">Queues</span>\n </md-tab-label>\n </md-tab>\n </md-tabs>\n\n <md-card ui-view></md-card>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/sms/views/smsAccounts/create/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SMS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.smsAccount.name" ng-required="true" autofocus ng-disabled="!vm.newSmsAccount">\n\n <div ng-messages="smsAccountForm[\'name\'].$error" ng-show="smsAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.KEY">key</label>\n <input type="text" name="key" ng-model="vm.smsAccount.key" md-maxlength="5" ng-required="true">\n\n <div ng-messages="smsAccountForm[\'key\'].$error" ng-show="smsAccountForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="SMS.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.MOTIONPROXY">MotionProxy</label>\n <input type="url" name="remote" ng-model="vm.smsAccount.remote" md-maxlength="255" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="SMS.HELP.MOTIONPROXY"></span></div>\n <div ng-messages="smsAccountForm[\'remote\'].$error" ng-show="smsAccountForm[\'remote\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.MOTIONPROXY_REQUIRED">MotionProxy field is required</span>\n </div>\n <div ng-message="url">\n <span translate="SMS.ERRORS.MOTIONPROXY_MUST_VALID_URL">MotionProxy must be a valid url http://www.xcally.com</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="SMS.ERRORS.MOTIONPROXY_MAX_LENGTH" translate-values=\'{max: 255}\'>MotionProxy must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.LIST">List</label>\n <md-select name="ListId" ng-model="vm.smsAccount.ListId" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="SMS.HELP.LIST"></span></div>\n <div ng-messages="smsAccountForm[\'ListId\'].$error" ng-show="smsAccountForm[\'ListId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.smsAccount.type" required>\n <md-option ng-value="\'twilio\'">Twilio</md-option>\n <md-option ng-value="\'skebby\'">Skebby</md-option>\n <md-option ng-value="\'connectel\'">Connectel</md-option>\n <md-option ng-value="\'clicksend\'">ClickSend</md-option>\n <md-option ng-value="\'plivo\'">Plivo</md-option>\n <md-option ng-value="\'infobip\'">Infobip</md-option>\n <md-option ng-value="\'clickatell\'">Clickatell</md-option>\n <md-option ng-value="\'bandwidth\'">Bandwidth</md-option>\n <md-option ng-value="\'csc\'">CSCTelecom</md-option>\n <md-option ng-value="\'intelepeer\'">Intelepeer</md-option>\n </md-select>\n <div ng-messages="smsAccountForm[\'type\'].$error" ng-show="smsAccountForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.smsAccount.phone" ng-required="true">\n\n <div ng-messages="smsAccountForm[\'phone\'].$error" ng-show="smsAccountForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'twilio\'" class="md-block">\n <label translate="SMS.ACCOUNTSID">AccountSID</label>\n <input type="text" name="accountSid" ng-model="vm.smsAccount.accountSid" ng-required="true">\n\n <div ng-messages="smsAccountForm[\'accountSid\'].$error" ng-show="smsAccountForm[\'accountSid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.ACCOUNTSID_REQUIRED">AccountSID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'plivo\'" class="md-block">\n <label translate="SMS.AUTHID">AuthID</label>\n <input type="text" name="authId" ng-model="vm.smsAccount.authId" ng-required="true">\n\n <div ng-messages="smsAccountForm[\'authId\'].$error" ng-show="smsAccountForm[\'authId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.AUTHID_REQUIRED">AuthID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'twilio\' || vm.smsAccount.type == \'connectel\' || vm.smsAccount.type == \'plivo\'" class="md-block">\n <label translate="SMS.AUTHTOKEN">AuthToken</label>\n <input type="text" name="authToken" ng-model="vm.smsAccount.authToken" ng-required="true">\n\n <div ng-messages="smsAccountForm[\'authToken\'].$error" ng-show="smsAccountForm[\'authToken\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.AUTHTOKEN_REQUIRED">AuthToken field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'skebby\'" class="md-block">\n <label translate="SMS.METHOD">Method</label>\n <md-select name="smsMethod" ng-model="vm.smsAccount.smsMethod" required>\n <md-option ng-value="\'SI\'">Basic</md-option>\n <md-option ng-value="\'TI\'">Classic</md-option>\n <md-option ng-value="\'GP\'">Classic+</md-option>\n </md-select>\n <div ng-messages="smsAccountForm[\'smsMethod\'].$error" ng-show="smsAccountForm[\'smsMethod\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.METHOD_REQUIRED">Method field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'skebby\' || vm.smsAccount.type == \'clicksend\' || vm.smsAccount.type == \'csc\' || vm.smsAccount.type == \'infobip\' || vm.smsAccount.type == \'bandwidth\'" class="md-block">\n <label translate="SMS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.smsAccount.username" ng-required="true">\n\n <div ng-messages="smsAccountForm[\'username\'].$error" ng-show="smsAccountForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.smsAccount.type == \'skebby\' || vm.smsAccount.type == \'clicksend\' || vm.smsAccount.type == \'infobip\' || vm.smsAccount.type == \'bandwidth\'">\n <label translate="SMS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.smsAccount.password" placeholder="Password" translate translate-attr-placeholder="SMS.PASSWORD" required>\n <div ng-messages="smsAccountForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="SMS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container ng-if="vm.smsAccount.type == \'infobip\' || vm.smsAccount.type == \'csc\'" class="md-block">\n <label translate="SMS.BASEURL">BaseURL</label>\n <input type="text" name="baseUrl" ng-model="vm.smsAccount.baseUrl" ng-required="true">\n\n <div ng-messages="smsAccountForm[\'baseUrl\'].$error" ng-show="smsAccountForm[\'baseUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.BASEURL_REQUIRED">BaseURL field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'csc\' || vm.smsAccount.type == \'clickatell\' || vm.smsAccount.type == \'intelepeer\'" class="md-block">\n <label translate="SMS.APIKEY">ApiKey</label>\n <input type="text" name="apiKey" ng-model="vm.smsAccount.apiKey" ng-required="true">\n\n <div ng-messages="smsAccountForm[\'apiKey\'].$error" ng-show="smsAccountForm[\'apiKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.APIKEY_REQUIRED">ApiKey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'bandwidth\'" class="md-block">\n <label translate="SMS.ACCOUNTID">AccountId</label>\n <input type="text" name="accountId" ng-model="vm.smsAccount.accountId" ng-required="true">\n\n <div ng-messages="smsAccountForm[\'accountId\'].$error" ng-show="smsAccountForm[\'accountId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.ACCOUNTID_REQUIRED">AccountId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'bandwidth\'" class="md-block">\n <label translate="SMS.APPLICATIONID">ApplicationID</label>\n <input type="text" name="applicationId" ng-model="vm.smsAccount.applicationId" ng-required="true">\n\n <div ng-messages="smsAccountForm[\'applicationId\'].$error" ng-show="smsAccountForm[\'applicationId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.APPLICATIONID_REQUIRED">ApplicationID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.smsAccount.description">\n\n <div ng-messages="smsAccountForm[\'description\'].$error" ng-show="smsAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newSmsAccount" ng-click="vm.saveSmsAccount()" class="send-button md-accent md-raised" ng-disabled="smsAccountForm.$invalid || smsAccountForm.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newSmsAccount" ng-click="vm.addNewSmsAccount()" class="send-button md-accent md-raised" ng-disabled="smsAccountForm.$invalid" aria-label="ADD" translate="SMS.ADD_SMSACCOUNT" translate-attr-aria-label="SMS.ADD_SMSACCOUNT">\n ADD SMSACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newSmsAccount" ng-click="vm.deleteSmsAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="SMS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="SMS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/agentadd/agentadd.html",'<md-dialog class="smsAccount-dialog" aria-label="smsAccount" ng-init="vm.onInit()">\n <form name="smsAccountForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="SMS.AGENTADD_SMSACCOUNT">Add Agent to smsAccount</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/agent/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SMS.AGENT">Agent</label>\n <md-select name="agent" ng-model="vm.agent.agent" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="agent.name" ng-repeat="agent in vm.agents" ng-disabled="agent.canSelect === false">{{ agent.name }}</md-option>\n </md-select>\n <div ng-messages="smsAccountFormApp[\'agent\'].$error" ng-show="smsAccountFormApp[\'agent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.agent.timeout" min="0" max="2147483" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'timeout\'].$error" ng-show="smsAccountFormApp[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="SMS.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/amazonlex/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SMS.ACCESSKEYID">accesskeyid</label>\n <input type="text" name="accesskeyid" ng-model="vm.amazonlex.accesskeyid" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'accesskeyid\'].$error" ng-show="smsAccountFormApp[\'accesskeyid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.ACCESSKEYID_REQUIRED">accesskeyid field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.SECRETACCESSKEY">secretaccesskey</label>\n <input type="text" name="secretaccesskey" ng-model="vm.amazonlex.secretaccesskey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'secretaccesskey\'].$error" ng-show="smsAccountFormApp[\'secretaccesskey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.SECRETACCESSKEY_REQUIRED">secretaccesskey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.LEXREGION">lexregion</label>\n <md-select name="lexregion" ng-model="vm.amazonlex.lexregion" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'us-east-1\'">US East (N. Virginia)</md-option>\n <md-option ng-value="\'us-west-2\'">US West (Oregon)</md-option>\n <md-option ng-value="\'eu-west-1\'">EU (Ireland)</md-option>\n <md-option ng-value="\'ap-southeast-2\'">Asia Pacific (Sydney)</md-option>\n </md-select>\n <div ng-messages="smsAccountFormApp[\'lexregion\'].$error" ng-show="smsAccountFormApp[\'lexregion\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.LEXREGION_REQUIRED">lexregion field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.BOTNAME">botname</label>\n <input type="text" name="botname" ng-model="vm.amazonlex.botname" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'botname\'].$error" ng-show="smsAccountFormApp[\'botname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.BOTNAME_REQUIRED">botname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.amazonlex.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="SMS.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="smsAccountFormApp[\'welcomemessage\'].$error" ng-show="smsAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="SMS.ERRORS.WELCOMEMESSAGE_REQUIRED">welcomemessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="SMS.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/autoreply/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SMS.TIMES">times</label>\n <md-select name="times" ng-model="vm.autoreply.times" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="2">One Time</md-option>\n <md-option ng-value="0">Always</md-option>\n <md-option ng-value="1">First Message</md-option>\n </md-select>\n <div ng-messages="smsAccountFormApp[\'times\'].$error" ng-show="smsAccountFormApp[\'times\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.TIMES_REQUIRED">times field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.TEXT">Text</label>\n <textarea name="text" ng-model="vm.autoreply.text" required></textarea>\n\n <div ng-messages="smsAccountFormApp[\'text\'].$error" ng-show="smsAccountFormApp[\'text\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="SMS.ERRORS.TEXT_REQUIRED">Text field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/close/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SMS.DISPOSITION">Disposition</label>\n <input type="text" name="disposition" ng-model="vm.close.disposition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'disposition\'].$error" ng-show="smsAccountFormApp[\'disposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.DISPOSITION_REQUIRED">Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/dialogflow/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SMS.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.dialogflow.key" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'key\'].$error" ng-show="smsAccountFormApp[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.KEY_REQUIRED">Key field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflow.language" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'da\'">Danish</md-option>\n <md-option ng-value="\'en\'">English</md-option>\n <md-option ng-value="\'de\'">German</md-option>\n <md-option ng-value="\'it\'">Italian</md-option>\n <md-option ng-value="\'es\'">Spanish</md-option>\n <md-option ng-value="\'fr\'">French</md-option>\n <md-option ng-value="\'id\'">Indonesian</md-option>\n <md-option ng-value="\'ja\'">Japanese</md-option>\n <md-option ng-value="\'ko\'">Korean (South Korea)</md-option>\n <md-option ng-value="\'nl\'">Dutch</md-option>\n <md-option ng-value="\'no\'">Norwegian</md-option>\n <md-option ng-value="\'pt\'">Portuguese (European)</md-option>\n <md-option ng-value="\'pt-br\'">Portuguese (Nrazilian)</md-option>\n <md-option ng-value="\'ru\'">Russian</md-option>\n <md-option ng-value="\'sv\'">Swedish</md-option>\n <md-option ng-value="\'th\'">Thai</md-option>\n <md-option ng-value="\'uk\'">Ukrainian</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese (Simplified)</md-option>\n <md-option ng-value="\'zh-HK\'">Chinese (Hong Kong)</md-option>\n <md-option ng-value="\'zh-TW\'">Chinese (Traditional)</md-option>\n </md-select>\n <div ng-messages="smsAccountFormApp[\'language\'].$error" ng-show="smsAccountFormApp[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.LANGUAGE_REQUIRED">language field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.dialogflow.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="SMS.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="smsAccountFormApp[\'welcomemessage\'].$error" ng-show="smsAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="SMS.ERRORS.WELCOMEMESSAGE_REQUIRED">welcomemessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="SMS.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/dialogflowv2/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SMS.PROJECTID">ProjectID</label>\n <input type="text" name="projectId" ng-model="vm.dialogflowv2.projectId" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'projectId\'].$error" ng-show="smsAccountFormApp[\'projectId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.PROJECTID_REQUIRED">ProjectID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.CLIENTEMAIL">ClientEmail</label>\n <input type="text" name="clientEmail" ng-model="vm.dialogflowv2.clientEmail" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'clientEmail\'].$error" ng-show="smsAccountFormApp[\'clientEmail\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.CLIENTEMAIL_REQUIRED">ClientEmail field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.PRIVATEKEY">PrivateKey</label>\n <textarea name="privateKey" ng-model="vm.dialogflowv2.privateKey" required></textarea>\n\n <div ng-messages="smsAccountFormApp[\'privateKey\'].$error" ng-show="smsAccountFormApp[\'privateKey\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="SMS.ERRORS.PRIVATEKEY_REQUIRED">PrivateKey field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflowv2.language" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'zh-HK\'">Chinese (Cantonese)</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese (Simplified)</md-option>\n <md-option ng-value="\'zh-TW\'">Chinese (Traditional)</md-option>\n <md-option ng-value="\'da\'">Danish</md-option>\n <md-option ng-value="\'nl\'">Dutch</md-option>\n <md-option ng-value="\'en\'">English</md-option>\n <md-option ng-value="\'en-AU\'">English (Australia)</md-option>\n <md-option ng-value="\'en-CA\'">English (Canada)</md-option>\n <md-option ng-value="\'en-GB\'">English (Great Britain)</md-option>\n <md-option ng-value="\'en-IN\'">English (India)</md-option>\n <md-option ng-value="\'en-US\'">English (US)</md-option>\n <md-option ng-value="\'fr\'">French</md-option>\n <md-option ng-value="\'fr-CA\'">French (Canada)</md-option>\n <md-option ng-value="\'fr-FR\'">\'France (France)</md-option>\n <md-option ng-value="\'de\'">German</md-option>\n <md-option ng-value="\'hi\'">Hindi</md-option>\n <md-option ng-value="\'id\'">Indonesian</md-option>\n <md-option ng-value="\'it\'">Italian</md-option>\n <md-option ng-value="\'ja\'">Japanese</md-option>\n <md-option ng-value="\'ko\'">Korean</md-option>\n <md-option ng-value="\'no\'">Norwegian</md-option>\n <md-option ng-value="\'pl\'">Polish</md-option>\n <md-option ng-value="\'pt-BR\'">Portuguese (Brazil)</md-option>\n <md-option ng-value="\'pt-PT\'">Portuguese (Portugal)</md-option>\n <md-option ng-value="\'ru\'">Russian</md-option>\n <md-option ng-value="\'es\'">Spanish</md-option>\n <md-option ng-value="\'es-419\'">Spanish (Latin America)</md-option>\n <md-option ng-value="\'es-ES\'">Spanish (Spain)</md-option>\n <md-option ng-value="\'sw\'">Swedish</md-option>\n <md-option ng-value="\'th\'">Thai</md-option>\n <md-option ng-value="\'tr\'">Turkish</md-option>\n <md-option ng-value="\'uk\'">Ukrainian</md-option>\n </md-select>\n <div ng-messages="smsAccountFormApp[\'language\'].$error" ng-show="smsAccountFormApp[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.LANGUAGE_REQUIRED">language field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.dialogflowv2.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="SMS.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="smsAccountFormApp[\'welcomemessage\'].$error" ng-show="smsAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n\n <div ng-message="md-maxlength">\n <span translate="SMS.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/gotoif/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SMS.CONDITION">Condition</label>\n <input type="text" name="condition" ng-model="vm.gotoif.condition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'condition\'].$error" ng-show="smsAccountFormApp[\'condition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.CONDITION_REQUIRED">Condition field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.TRUEPRIORITY">truepriority</label>\n <input type="number" name="truepriority" ng-model="vm.gotoif.truepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'truepriority\'].$error" ng-show="smsAccountFormApp[\'truepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.TRUEPRIORITY_REQUIRED">truepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">truepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.FALSEPRIORITY">falsepriority</label>\n <input type="number" name="falsepriority" ng-model="vm.gotoif.falsepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'falsepriority\'].$error" ng-show="smsAccountFormApp[\'falsepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.FALSEPRIORITY_REQUIRED">falsepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">falsepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/gotop/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SMS.PRIORITY">Priority</label>\n <input type="number" name="priority" ng-model="vm.gotop.priority" min="0" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'priority\'].$error" ng-show="smsAccountFormApp[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Priority must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/interval/dialog.html",'<md-dialog class="interval-dialog" aria-label="New Interval">\n <form name="intervalForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select ng-model="vm.type" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="type" ng-repeat=\'type in vm.types\'>{{ type | ucfirst }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.type === \'list\'">\n <label translate="TOOLS.INTERVALS">Intervals</label>\n <md-select ng-model="vm.interval.IntervalId" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals">{{ interval.name }}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!-- TIMERANGE START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.TIME_RANGE">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <div class="md-block" flex>\n <mdp-time-picker name="timeRangeFrom" mdp-placeholder="FROM" ng-model="vm.timeRangeFrom" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <div ng-messages="intervalForm.timeRangeFrom.$error" ng-show="intervalForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_FROM_INVALID">Time Range From field is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n <div class="md-block" flex ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_INVALID">Time Range To field is invalid</span>\n </div>\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </div>\n \x3c!-- TIMERANGE END --\x3e\n\n \x3c!-- DAYSOFWEEK START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.WEEK_DAYS">Week Days</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.dayOfWeekFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container flex class="md-block" ng-if="vm.dayOfWeekFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="dayOfWeekTo" ng-model="vm.dayOfWeekTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- DAYSOFWEEK END --\x3e\n\n \x3c!-- MONTHDAY START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTH_DAYS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthDayFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthDayFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthDayTo" ng-model="vm.monthDayTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTHDAY END --\x3e\n\n \x3c!-- MONTH START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTHS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n </md-select>\n\n </md-input-container>\n\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthTo" ng-model="vm.monthTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTH END --\x3e\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="!vm.newInterval && vm.crudPermissions.canEdit" ng-click="vm.saveInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid || intervalForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.newInterval && vm.crudPermissions.canEdit" ng-click="vm.addNewInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_INTERVAL" translate-attr-aria-label="TOOLS.ADD_INTERVAL">\n ADD INTERVAL\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/noop/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SMS.VALUE">Value</label>\n <input type="text" name="value" ng-model="vm.noop.value" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'value\'].$error" ng-show="smsAccountFormApp[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/queue/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SMS.QUEUE">Queue</label>\n <md-select name="queue" ng-model="vm.queue.queue" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="queue.name" ng-repeat="queue in vm.queues" ng-disabled="queue.canSelect === false">{{ queue.name }}</md-option>\n </md-select>\n <div ng-messages="smsAccountFormApp[\'queue\'].$error" ng-show="smsAccountFormApp[\'queue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.queue.timeout" min="0" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'timeout\'].$error" ng-show="smsAccountFormApp[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="SMS.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/system/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SMS.COMMAND">Command</label>\n <input type="text" name="command" ng-model="vm.system.command" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'command\'].$error" ng-show="smsAccountFormApp[\'command\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.COMMAND_REQUIRED">Command field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.VARIABLE">Variable</label>\n <md-select name="variable" ng-model="vm.system.variable" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables" ng-disabled="variable.canSelect === false">{{ variable.name }}</md-option>\n </md-select>\n <div ng-messages="smsAccountFormApp[\'variable\'].$error" ng-show="smsAccountFormApp[\'variable\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.VARIABLE_REQUIRED">Variable field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/tag/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SMS.TAG">Tag</label>\n <md-select name="tag" ng-model="vm.tag.tag" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags" ng-disabled="tag.canSelect === false">{{ tag.name }}</md-option>\n </md-select>\n <div ng-messages="smsAccountFormApp[\'tag\'].$error" ng-show="smsAccountFormApp[\'tag\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.TAG_REQUIRED">Tag field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/smsCannedAnswers/dialog.html",'<md-dialog class="smsCannedAnswer-dialog" aria-label="New SmsCannedAnswer">\n <form name="smsCannedAnswerForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SMS.KEY">Key</label>\n <input type="" name="key" ng-model="vm.smsCannedAnswer.key" md-maxlength="255" ng-required="true" autofocus>\n\n <div ng-messages="smsCannedAnswerForm[\'key\'].$error" ng-show="smsCannedAnswerForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.KEY_REQUIRED">Key field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.VALUE">Value</label>\n <textarea name="value" ng-model="vm.smsCannedAnswer.value" required></textarea>\n\n <div ng-messages="smsCannedAnswerForm[\'value\'].$error" ng-show="smsCannedAnswerForm[\'value\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="SMS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.smsCannedAnswer.description">\n\n <div ng-messages="smsCannedAnswerForm[\'description\'].$error" ng-show="smsCannedAnswerForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newSmsCannedAnswer" ng-click="vm.saveSmsCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="smsCannedAnswerForm.$invalid || smsCannedAnswerForm.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newSmsCannedAnswer" ng-click="vm.addNewSmsCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="smsCannedAnswerForm.$invalid" aria-label="ADD" translate="SMS.ADD_SMSCANNEDANSWER" translate-attr-aria-label="SMS.ADD_SMSCANNEDANSWER">\n ADD SMSCANNEDANSWER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newSmsCannedAnswer" ng-click="vm.deleteSmsCannedAnswer($event)" aria-label="DELETE" translate translate-attr-aria-label="SMS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="SMS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/view.html",'<div id="sms-smsAccount" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-smsAccounts-button md-icon-button" aria-label="Go to smsAccounts" ng-click="vm.gotoSmsAccounts()" translate translate-attr-aria-label="SMS.GO_TO_SMSACCOUNTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="smsAccount-image" hide-xs>\n <img ng-src="assets/images/business/smsAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.smsAccount.id}}\n <span ng-if="vm.smsAccount.name">{{vm.smsAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="SMS.CREATED_AT"></span> <span>{{vm.smsAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.smsAccount, $event)" class="md-fab md-warn md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="SMS.AGENTADD_SMSACCOUNT"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveSmsAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (notificationForm.$invalid) || (transferForm.$invalid) || (proxyForm.$invalid) || (dispositionForm.$invalid) || (smsDispositionsForm.$invalid) || (smsCannedAnswersForm.$invalid) || (actionsForm.$invalid) || (interactionsForm.$invalid)" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="SMS.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="smsAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SMS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="SMS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.smsAccount.name" ng-required="true" autofocus disabled>\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.KEY">key</label>\n <input type="text" name="key" ng-model="vm.smsAccount.key" md-maxlength="5" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'key\'].$error" ng-show="generalForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="SMS.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.LIST">List</label>\n <md-select name="ListId" ng-model="vm.smsAccount.ListId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="SMS.HELP.LIST"></span></div>\n <div ng-messages="generalForm[\'ListId\'].$error" ng-show="generalForm[\'ListId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.smsAccount.type" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'twilio\'">Twilio</md-option>\n <md-option ng-value="\'skebby\'">Skebby</md-option>\n <md-option ng-value="\'connectel\'">Connectel</md-option>\n <md-option ng-value="\'clicksend\'">ClickSend</md-option>\n <md-option ng-value="\'plivo\'">Plivo</md-option>\n <md-option ng-value="\'infobip\'">Infobip</md-option>\n <md-option ng-value="\'clickatell\'">Clickatell</md-option>\n <md-option ng-value="\'bandwidth\'">Bandwidth</md-option>\n <md-option ng-value="\'csc\'">CSCTelecom</md-option>\n <md-option ng-value="\'intelepeer\'">Intelepeer</md-option>\n </md-select>\n <div ng-messages="generalForm[\'type\'].$error" ng-show="generalForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.smsAccount.phone" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'phone\'].$error" ng-show="generalForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'twilio\'" class="md-block">\n <label translate="SMS.ACCOUNTSID">AccountSID</label>\n <input type="text" name="accountSid" ng-model="vm.smsAccount.accountSid" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'accountSid\'].$error" ng-show="generalForm[\'accountSid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.ACCOUNTSID_REQUIRED">AccountSID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'plivo\'" class="md-block">\n <label translate="SMS.AUTHID">AuthID</label>\n <input type="text" name="authId" ng-model="vm.smsAccount.authId" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'authId\'].$error" ng-show="generalForm[\'authId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.AUTHID_REQUIRED">AuthID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'twilio\' || vm.smsAccount.type == \'connectel\' || vm.smsAccount.type == \'plivo\'" class="md-block">\n <label translate="SMS.AUTHTOKEN">AuthToken</label>\n <input type="text" name="authToken" ng-model="vm.smsAccount.authToken" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'authToken\'].$error" ng-show="generalForm[\'authToken\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.AUTHTOKEN_REQUIRED">AuthToken field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'skebby\'" class="md-block">\n <label translate="SMS.METHOD">Method</label>\n <md-select name="smsMethod" ng-model="vm.smsAccount.smsMethod" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'SI\'">Basic</md-option>\n <md-option ng-value="\'TI\'">Classic</md-option>\n <md-option ng-value="\'GP\'">Classic+</md-option>\n </md-select>\n <div ng-messages="generalForm[\'smsMethod\'].$error" ng-show="generalForm[\'smsMethod\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.METHOD_REQUIRED">Method field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'skebby\' || vm.smsAccount.type == \'clicksend\' || vm.smsAccount.type == \'csc\' || vm.smsAccount.type == \'infobip\' || vm.smsAccount.type == \'bandwidth\'" class="md-block">\n <label translate="SMS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.smsAccount.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'username\'].$error" ng-show="generalForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.smsAccount.type == \'skebby\' || vm.smsAccount.type == \'clicksend\' || vm.smsAccount.type == \'infobip\' || vm.smsAccount.type == \'bandwidth\'">\n <label translate="SMS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.smsAccount.password" placeholder="Password" translate translate-attr-placeholder="SMS.PASSWORD" required>\n <div ng-messages="generalForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="SMS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container ng-if="vm.smsAccount.type == \'infobip\' || vm.smsAccount.type == \'csc\'" class="md-block">\n <label translate="SMS.BASEURL">BaseURL</label>\n <input type="text" name="baseUrl" ng-model="vm.smsAccount.baseUrl" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'baseUrl\'].$error" ng-show="generalForm[\'baseUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.BASEURL_REQUIRED">BaseURL field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'csc\' || vm.smsAccount.type == \'clickatell\' || vm.smsAccount.type == \'intelepeer\'" class="md-block">\n <label translate="SMS.APIKEY">ApiKey</label>\n <input type="text" name="apiKey" ng-model="vm.smsAccount.apiKey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'apiKey\'].$error" ng-show="generalForm[\'apiKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.APIKEY_REQUIRED">ApiKey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'bandwidth\'" class="md-block">\n <label translate="SMS.ACCOUNTID">AccountId</label>\n <input type="text" name="accountId" ng-model="vm.smsAccount.accountId" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'accountId\'].$error" ng-show="generalForm[\'accountId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.ACCOUNTID_REQUIRED">AccountId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'bandwidth\'" class="md-block">\n <label translate="SMS.APPLICATIONID">ApplicationID</label>\n <input type="text" name="applicationId" ng-model="vm.smsAccount.applicationId" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'applicationId\'].$error" ng-show="generalForm[\'applicationId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.APPLICATIONID_REQUIRED">ApplicationID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'connectel\' || vm.smsAccount.type == \'clicksend\' || vm.smsAccount.type == \'plivo\'|| vm.smsAccount.type == \'csc\'|| vm.smsAccount.type == \'infobip\' || vm.smsAccount.type == \'intelepeer\'" class="md-block">\n <label translate="SMS.SENDERSTRING">SenderString</label>\n <input type="text" name="senderString" ng-model="vm.smsAccount.senderString" md-maxlength="11" ng-pattern="/^[A-Za-z0-9\\.\\s]*$/i" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'senderString\'].$error" ng-show="generalForm[\'senderString\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.SENDERSTRING_REQUIRED">SenderString field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="SMS.ERRORS.SENDERSTRING_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\s]*$/i\' }">SenderString must be valid pattern </span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="SMS.ERRORS.SENDERSTRING_MAX_LENGTH" translate-values=\'{max: 11}\'>SenderString must have a maximum length equal to 11</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.smsAccount.type == \'skebby\' && vm.smsAccount.smsMethod == \'GP\') || vm.smsAccount.type == \'connectel\' || vm.smsAccount.type == \'clicksend\' || vm.smsAccount.type == \'csc\' || vm.smsAccount.type == \'clickatell\'" class="md-block">\n <md-switch ng-model="vm.smsAccount.deliveryReport" aria-label="deliveryReport" ng-disabled="!vm.crudPermissions.canEdit"><span translate="SMS.DELIVERYREPORT">deliveryReport</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.WAITFORTHEASSIGNEDAGENT">WaitForTheAssignedAgent</label>\n <input type="number" name="waitForTheAssignedAgent" ng-model="vm.smsAccount.waitForTheAssignedAgent" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'waitForTheAssignedAgent\'].$error" ng-show="generalForm[\'waitForTheAssignedAgent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.WAITFORTHEASSIGNEDAGENT_REQUIRED">WaitForTheAssignedAgent field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="SMS.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.smsAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.RECEIVEURL">receiveUrl</label>\n <div layout="row" layout-align="center center">\n <button class="md-button md-fab md-mini md-primary" ngclipboard data-clipboard-target="#copytoclipboard-receiveUrl" ngclipboard-success="vm.alert({title: \'copied to clipboard\', msg: e.text });" ngclipboard-error="vm.alert({title: \'error\', msg: \'copy to clipboard failed\'});">\n <md-icon md-font-icon="icon-clipboard-text"></md-icon>\n </button>\n <input class="md-input" type="text" id="copytoclipboard-receiveUrl" name="receiveUrl" ng-value="vm.smsAccount.remote + \'/api/sms/accounts/\' + vm.smsAccount.id + \'/notify?token=\' + vm.smsAccount.token" ng-readonly="true">\n </div>\n <div class="hint"><span translate="SMS.HELP.RECEIVEURL"></span></div>\n </md-input-container>\n <md-input-container ng-if="( ((vm.smsAccount.type == \'skebby\' && vm.smsAccount.smsMethod == \'GP\') || vm.smsAccount.type == \'connectel\' || vm.smsAccount.type == \'clicksend\' || vm.smsAccount.type == \'csc\' || vm.smsAccount.type == \'clickatell\') && vm.smsAccount.deliveryReport) || vm.smsAccount.type == \'bandwidth\'" class="md-block">\n <label translate="SMS.DELIVERYREPORTURL">deliveryReportUrl</label>\n <div layout="row" layout-align="center center">\n <button class="md-button md-fab md-mini md-primary" ngclipboard data-clipboard-target="#copytoclipboard-deliveryReportUrl" ngclipboard-success="vm.alert({title: \'copied to clipboard\', msg: e.text });" ngclipboard-error="vm.alert({title: \'error\', msg: \'copy to clipboard failed\'});">\n <md-icon md-font-icon="icon-clipboard-text"></md-icon>\n </button>\n <input class="md-input" type="text" id="copytoclipboard-deliveryReportUrl" name="deliveryReportUrl" ng-value="vm.smsAccount.remote + \'/api/sms/accounts/\' + vm.smsAccount.id + \'/status?token=\' + vm.smsAccount.token + (vm.smsAccount.type == \'csc\' ? \'&message-id={message-id}&state={state}\' : \'\')" ng-readonly="true">\n </div>\n <div class="hint"><span translate="SMS.HELP.DELIVERYREPORTURL"></span></div>\n </md-input-container>\n\n </form>\n </div>\n <div class="smsAccount-detail-form-container notification md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SMS.NOTIFICATION">NOTIFICATION</div>\n </div>\n <form name="notificationForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.smsAccount.notificationSound" aria-label="notificationSound" ng-disabled="!vm.crudPermissions.canEdit"><span translate="SMS.NOTIFICATIONSOUND">notificationSound</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.smsAccount.notificationShake" aria-label="notificationShake" ng-disabled="!vm.crudPermissions.canEdit"><span translate="SMS.NOTIFICATIONSHAKE">notificationShake</span></md-switch>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="SMS.NOTIFICATIONTEMPLATE">notificationTemplate</label>\n <textarea aria-label="notificationTemplate notificationTemplate" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', removePlugins: \'magicline\' }" ng-model="vm.smsAccount.notificationTemplate"></textarea>\n </div>\n\n </form>\n </div>\n <div class="smsAccount-detail-form-container transfer md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SMS.TRANSFER">TRANSFER</div>\n </div>\n <form name="transferForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.smsAccount.queueTransfer" aria-label="queueTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="SMS.QUEUETRANSFER">queueTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.queueTransfer == true" class="md-block">\n <label translate="SMS.QUEUETRANSFERTIMEOUT">queueTransferTimeout</label>\n <input type="number" name="queueTransferTimeout" ng-model="vm.smsAccount.queueTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'queueTransferTimeout\'].$error" ng-show="transferForm[\'queueTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.QUEUETRANSFERTIMEOUT_REQUIRED">queueTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="SMS.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.smsAccount.agentTransfer" aria-label="agentTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="SMS.AGENTTRANSFER">agentTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.agentTransfer == true" class="md-block">\n <label translate="SMS.AGENTTRANSFERTIMEOUT">agentTransferTimeout</label>\n <input type="number" name="agentTransferTimeout" ng-model="vm.smsAccount.agentTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'agentTransferTimeout\'].$error" ng-show="transferForm[\'agentTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.AGENTTRANSFERTIMEOUT_REQUIRED">agentTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="SMS.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="SMS.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <md-tab-body>\n <div class="smsAccount-detail-form-container proxy md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SMS.PROXY">PROXY</div>\n </div>\n <form name="proxyForm" novalidate>\n <md-input-container class="md-block">\n <label translate="SMS.TOKEN">token</label>\n <input type="text" name="token" ng-model="vm.smsAccount.token" autofocus disabled>\n\n <div ng-messages="proxyForm[\'token\'].$error" ng-show="proxyForm[\'token\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.TOKEN_REQUIRED">token field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.MOTIONPROXY">MotionProxy</label>\n <input type="url" name="remote" ng-model="vm.smsAccount.remote" md-maxlength="255" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="SMS.HELP.MOTIONPROXY"></span></div>\n <div ng-messages="proxyForm[\'remote\'].$error" ng-show="proxyForm[\'remote\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.MOTIONPROXY_REQUIRED">MotionProxy field is required</span>\n </div>\n <div ng-message="url">\n <span translate="SMS.ERRORS.MOTIONPROXY_MUST_VALID_URL">MotionProxy must be a valid url http://www.xcally.com</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="SMS.ERRORS.MOTIONPROXY_MAX_LENGTH" translate-values=\'{max: 255}\'>MotionProxy must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="smsAccount-detail-form-container disposition md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SMS.DISPOSITION">DISPOSITION</div>\n </div>\n <form name="dispositionForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.smsAccount.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="SMS.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.mandatoryDisposition" class="md-block">\n <label translate="SMS.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.smsAccount.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="SMS.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="dispositionForm[\'mandatoryDispositionPauseId\'].$error" ng-show="dispositionForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="SMS.DISPOSITIONS">DISPOSITIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div ng-controller="SmsAccountDispositionsController as vm_dc" ng-init="vm_dc.init(vm.smsAccount, vm.crudPermissions)">\n <div layout="row">\n <div class="column" flex="20">\n <md-card class="mt-0">\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm_dc.query.level = null; vm_dc.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\n </button>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm_dc.query.level" ng-change="vm_dc.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm_dc.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n <div class="smsAccount-detail-form-container smsdispositions md-background-bg md-whiteframe-1dp" flex="80">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedSmsAccountDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="SMS.DISPOSITIONS">Dispositions</span>\n <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditDisposition($event)" aria-label="Add sms dispositions" translate translate-attr-label="SMS.ADD_DISPOSITION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedDispositions.length}}\n {{vm_dc.selectedDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedDispositions" csv-label="true" filename="smsAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedDispositions($event)" aria-label="delete selected" translate translate-attr-label="SMS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_dc.selectedDispositions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getDispositions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'SMS.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'SMS.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'SMS.DESCRIPTION\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_dc.dispositions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="SMS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="disposition" md-select-id="id" ng-repeat="disposition in vm_dc.dispositions.rows">\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm_dc.levels[disposition.level] }}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="SMS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(disposition, $event)" translate="TOOLS.DELETE_DISPOSITION">\n Delete Disposition\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'SMS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SMS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SMS.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.dispositions.count}}" md-on-paginate="vm_dc.getDispositions" md-page-select>\n </md-table-pagination>\n </div>\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="SMS.CANNEDANSWERS">CANNEDANSWERS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="smsAccount-detail-form-container smscannedanswers md-background-bg md-whiteframe-1dp">\n <div ng-controller="SmsAccountSmsCannedAnswersController as vm_dc" ng-init="vm_dc.init(vm.smsAccount, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedSmsAccountSmsCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="SMS.SMSCANNEDANSWERS">SmsCannedAnswers</span>\n <ms-search-bar on-search="vm_dc.getSmsAccountSmsCannedAnswers()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditSmsAccountSmsCannedAnswer($event)" aria-label="add smsCannedAnswer" translate translate-attr-label="SMS.ADD_SMSCANNEDANSWER">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedSmsAccountSmsCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedSmsAccountSmsCannedAnswers.length}} {{vm_dc.selectedSmsAccountSmsCannedAnswers.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedSmsAccountSmsCannedAnswers" csv-label="true" filename="smsAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedSmsAccountSmsCannedAnswers($event)" aria-label="delete selected" translate translate-attr-label="SMS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedSmsAccountSmsCannedAnswers" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getSmsAccountSmsCannedAnswers">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'SMS.ID\' | translate }}\n </th>\n <th md-column md-order-by="key">\n {{ \'SMS.KEY\' | translate }}\n </th>\n <th md-column md-order-by="value">\n {{ \'SMS.VALUE\' | translate }}\n </th>\n <th md-column md-order-by="description">\n {{ \'SMS.DESCRIPTION\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'SMS.CREATED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="smsCannedAnswer" md-select-id="id" ng-repeat="smsCannedAnswer in vm_dc.smsAccountSmsCannedAnswers.rows">\n <td ng-click="vm_dc.createOrEditSmsAccountSmsCannedAnswer($event, smsCannedAnswer)" md-cell>\n {{smsCannedAnswer.id}}\n </td>\n <td ng-click="vm_dc.createOrEditSmsAccountSmsCannedAnswer($event, smsCannedAnswer)" md-cell>\n {{smsCannedAnswer.key}}\n </td>\n <td ng-click="vm_dc.createOrEditSmsAccountSmsCannedAnswer($event, smsCannedAnswer)" md-cell>\n {{smsCannedAnswer.value}}\n </td>\n <td ng-click="vm_dc.createOrEditSmsAccountSmsCannedAnswer($event, smsCannedAnswer)" md-cell>\n {{smsCannedAnswer.description}}\n </td>\n <td ng-click="vm_dc.createOrEditSmsAccountSmsCannedAnswer($event, smsCannedAnswer)" md-cell>\n {{ smsCannedAnswer.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="SMS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditSmsAccountSmsCannedAnswer($event, smsCannedAnswer)" translate="SMS.EDIT_SMSCANNEDANSWER">\n Edit SmsCannedAnswer\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(smsCannedAnswer, $event)" translate="SMS.DELETE_SMSCANNEDANSWER">\n Delete SmsCannedAnswer\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.smsAccountSmsCannedAnswers.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="SMS.NO_SMSCANNEDANSWER_AVAILABLE">No smscannedanswer available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'SMS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SMS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SMS.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.smsAccountSmsCannedAnswers.count}}" md-on-paginate="vm_dc.getSmsAccountSmsCannedAnswers" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="SMS.ACTIONS">ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="smsAccount-detail-form-container actions md-background-bg md-whiteframe-1dp">\n <div ng-controller="SmsAccountActionsController as vm_ac" ng-init="vm_ac.init(vm.smsAccount, vm.crudPermissions)" class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- SIDENAV --\x3e\n <div class="navigation-simple sidenav main-sidenav md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="20" ng-if="vm_ac.crudPermissions.canEdit">\n \x3c!-- SIDENAV CONTENT --\x3e\n <md-list class="no-padding">\n <md-subheader class="md-no-sticky">\n <span translate="VOICE.APPLICATIONS_LIST">\n Applications List\n </span>\n </md-subheader>\n </md-list>\n <md-divider></md-divider>\n <md-list ng-sortable="vm_ac.list">\n <md-list-item class="handle" ng-repeat="a in vm_ac.apps">\n <md-icon md-font-icon="{{a.icon}}" class="s16"></md-icon>\n <p class="text-truncate" translate="SMS.{{(a.appAlias || a.appType) | uppercase}}">{{a.appAlias || a.appType}}</p>\n </md-list-item>\n </md-list>\n \x3c!-- / SIDENAV CONTENT --\x3e\n </div>\n \x3c!-- / SIDENAV --\x3e\n <div flex></div>\n \x3c!-- MAIN --\x3e\n <div class="main scrollable md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="{{vm_ac.crudPermissions.canEdit ? 75 : 100}}">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_ac.selectedSmsAccountApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">Drag & Drop Routing</span>\n <div flex></div>\n <ms-search-bar on-search="vm_ac.query.filter = query" on-collapse="vm_ac.query.filter = undefined" debounce="300"></ms-search-bar>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_ac.selectedSmsAccountApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_ac.selectedSmsAccountApps.length}} {{vm_ac.selectedSmsAccountApps.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_ac.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_ac.deleteSelectedSmsAccountApps($event)" aria-label="delete selected" translate translate-attr-label="SMS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n \x3c!-- QUEUES TABLE --\x3e\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_ac.selectedSmsAccountApps">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column width="10px">\n <span translate="VOICE.PRIORITY">Priority</span>\n </th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </th>\n <th md-column width="10px"></th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body ng-sortable="vm_ac.applications">\n <tr md-row md-select="app" md-select-id="id" ng-repeat="app in vm_ac.smsAccountApps.rows | filter: vm_ac.query.filter">\n <td md-cell>\n <md-icon md-font-icon="icon-drag-vertical" class="s16 handle"></md-icon>\n </td>\n <td md-cell ng-click="vm_ac.editSmsAccountApp($event, $index)"><span>{{app.priority}}</span></td>\n <td md-cell ng-click="vm_ac.editSmsAccountApp($event, $index)">{{app.app.toLowerCase() === \'agi\' ? \'Cally-Square\' : app.app | ucfirst}}<span ng-if="app.appType.toLowerCase() === \'custom\'">*</span></td>\n <td md-cell ng-click="vm_ac.editSmsAccountApp($event, $index)"><span class="text-truncate" style="width:200px">{{app.appdata}}</span></td>\n <td md-cell ng-click="vm_ac.editInterval($event, $index)">{{app.IntervalId ? \'From List\' : app.interval}}</td>\n <td md-cell>\n <md-button ng-click="vm_ac.editInterval($event, $index)" class="md-icon-button" aria-label="Interval">\n <md-icon md-font-icon="icon-timer"></md-icon>\n <md-tooltip>\n {{app.IntervalId ? \'From List\' : (app.interval === \'*,*,*,*\' ? \'Always\' : \'Custom\')}}\n </md-tooltip>\n </md-button>\n </td>\n <td md-cell class="actions" ng-if="!vm_ac.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_ac.crudPermissions.canEdit">\n <md-button ng-click="vm_ac.editSmsAccountApp($event, $index)" translate="VOICE.EDIT_APP">\n Edit App\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_ac.crudPermissions.canEdit">\n <md-button ng-click="vm_ac.editInterval($event, $index)" translate="VOICE.EDIT_INTERVAL">\n Edit Interval\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_ac.crudPermissions.canDelete">\n <md-button ng-click="vm_ac.deleteConfirm(app, $index, $event)" translate="VOICE.DELETE_APP">\n Delete App\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-hide="vm_ac.smsAccountApps.rows.length">\n <td md-cell colspan="7">\n <span class="text-boxed-light" translate="VOICE.NO_APPS_AVAILABLE">No apps available</span>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n \x3c!-- / QUEUES TABLE --\x3e\n\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="SMS.INTERACTIONS">INTERACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="smsAccount-detail-form-container interactions md-background-bg md-whiteframe-1dp">\n <div ng-controller="SmsAccountInteractionsController as vm_dc" ng-init="vm_dc.init(vm.smsAccount, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedSmsAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="SMS.INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm_dc.getSmsAccountInteractions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_dc.quickFilters" query="vm_dc.query" search="vm_dc.getSmsAccountInteractions()"></ms-quick-filter>\n <div layout="column">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini md-accent-bg\': vm_dc.query.search }" aria-label="Filter" translate translate-attr-aria-label="DASHBOARDS.FILTER" ng-click="vm_dc.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm_dc.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'blink\': vm_dc.query.search }"></md-icon>\n </md-button>\n </div>\n <md-button class="md-icon-button" ng-click="vm_dc.getSmsAccountInteractions()" aria-label="refresh Interactions" translate translate-attr-label="SMS.REFRESH_INTERACTIONS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedSmsAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedSmsAccountInteractions.length}} {{vm_dc.selectedSmsAccountInteractions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedSmsAccountInteractions" csv-label="true" filename="smsAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedSmsAccountInteractions($event)" aria-label="delete selected" translate translate-attr-label="SMS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedSmsAccountInteractions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getSmsAccountInteractions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'SMS.ID\' | translate }}\n </th>\n <th md-column class="no-padding">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column md-order-by="contactName">\n {{ \'SMS.CONTACT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'SMS.STARTEDAT\' | translate }}\n </th>\n <th md-column md-order-by="lastMsgAt">\n {{ \'SMS.LASTMESSAGE\' | translate }}\n </th>\n <th md-column md-order-by="closed">\n {{ \'SMS.STATUS\' | translate }}\n </th>\n <th md-column>\n {{ \'SMS.AGENT\' | translate }}\n </th>\n <th md-column md-order-by="tag">\n {{ \'SMS.TAGS\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="interaction" md-select-id="id" ng-repeat="interaction in vm_dc.smsAccountInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td md-cell>\n {{interaction.id}}\n </td>\n <td md-cell class="no-padding">\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="user in interaction.Users">{{ user.fullname | translate }}\n <span ng-if="!$last">, </span>\n </span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg md-primary-bg" layout-margin>{{ interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.attach">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td md-cell privacy ng-cloak>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'margin-bottom-0\' : interaction.contactInfo}" layout-margin>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text margin-top-0" layout-margin>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td md-cell>\n {{ interaction.createdAt | formatdate }}\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}"></md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="text-truncate">{{ interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n </td>\n <td md-cell>\n <span ng-if="interaction.closed === 0" class="green-fg">\n {{ \'SMS.OPENED\' | translate }}\n <span ng-if="interaction.substatus">\n - {{ interaction.substatus }}\n </span>\n </span>\n <span ng-if="interaction.closed === 1" class="red-fg">\n {{ \'SMS.CLOSED\' | translate }}\n <span ng-if="interaction.disposition">\n - {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}\n </span>\n <md-tooltip class="multiline">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n </span>\n </td>\n\n <td md-cell>\n {{interaction.Owner.name}}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="SMS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm_dc.spysmsInteraction($event, interaction)" translate="SMS.SPYINTERACTION">\n Spy Interaction\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.role === \'admin\' || vm_dc.userProfile.downloadOmnichannelInteractions">\n <md-button class="md-primary" ng-click="vm_dc.smsInteractionDownload(interaction, $event)" translate="SMS.DOWNLOAD_INTERACTION">\n Download\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(interaction, $event)" translate="SMS.DELETE_INTERACTION">\n Delete Interaction\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.smsAccountInteractions.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="SMS.NO_INTERACTION_AVAILABLE">No interaction available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'SMS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SMS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SMS.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.smsAccountInteractions.count}}" md-on-paginate="vm_dc.getSmsAccountInteractions" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/sms/views/smsAccounts/smsAccounts.html",'<div id="smsAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-message-text" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="SMS.SMSACCOUNTS">SmsAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="SMS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedSmsAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedSmsAccounts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="SMS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-smsAccounts-count">\n <span>{{vm.selectedSmsAccounts.length}}</span>\n <span translate="SMS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="SMS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllSmsAccounts()" translate="SMS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectSmsAccounts()" translate="SMS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedSmsAccounts" csv-label="true" filename="smsAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedSmsAccounts($event)" aria-label="delete selected" translate translate-attr-label="SMS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- SMSACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedSmsAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getSmsAccounts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'SMS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'SMS.NAME\' | translate }}</th>\n <th md-column md-order-by="key">{{ \'SMS.KEY\' | translate }}</th>\n <th md-column md-order-by="ListId">{{ \'SMS.LIST\' | translate }}</th>\n <th md-column md-order-by="type">{{ \'SMS.TYPE\' | translate }}</th>\n <th md-column md-order-by="phone">{{ \'SMS.PHONE\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'SMS.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.smsAccounts.rows.length">\n <td md-cell colspan="8">\n <div layout="row" layout-align="center center">\n <span translate="SMS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="smsAccount" md-select-id="id" ng-repeat="smsAccount in vm.smsAccounts.rows">\n <td md-cell ng-if="smsAccount.userpic"><img class="avatar" alt="{{smsAccount.name}}" ng-src="api/users/{{smsAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!smsAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{smsAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsAccount, ev) : vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="id ">{{smsAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsAccount, ev) : vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="name ">{{smsAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsAccount, ev) : vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="key ">{{smsAccount.key}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsAccount, ev) : vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="ListId ">{{ (vm.lists | filter : {\'id\':smsAccount.ListId} : true)[0].name }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsAccount, ev) : vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="type ">{{ vm.arraytype[smsAccount.type].option }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsAccount, ev) : vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="phone ">{{smsAccount.phone}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsAccount, ev) : vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="description ">{{smsAccount.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="SMS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(smsAccount, $event )" translate="SMS.EDIT_SMSACCOUNT">\n Edit SmsAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.interactionsgoto(smsAccount, $event )" translate="SMS.INTERACTIONS_SMSACCOUNT">\n Interactions SmsAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(smsAccount, $event )" translate="SMS.AGENTADD_SMSACCOUNT">\n AgentAdd SmsAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(smsAccount, $event )" translate="SMS.DELETE_SMSACCOUNT">\n Delete SmsAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'SMS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SMS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SMS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.smsAccounts.count}}" md-on-paginate="vm.getSmsAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / SMSACCOUNT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD SMSACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-smsAccount-button" ng-click="vm.createOrEditSmsAccount($event)" aria-label="add smsAccount" translate translate-attr-aria-label="SMS.ADD_SMSACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD SMSACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/sms/views/smsQueues/create/dialog.html",'<md-dialog class="smsQueue-dialog" aria-label="New SmsQueue">\n <form name="smsQueueForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SMS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.smsQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newSmsQueue">\n\n <div class="hint"><span translate="SMS.HELP.NAME"></span></div>\n <div ng-messages="smsQueueForm[\'name\'].$error" ng-show="smsQueueForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="SMS.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.smsQueue.strategy" required>\n <md-option ng-value="\'beepall\'">Beepall</md-option>\n <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n </md-select>\n <div ng-messages="smsQueueForm[\'strategy\'].$error" ng-show="smsQueueForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.AGENT_TIMEOUT">Agent_Timeout</label>\n <input type="number" name="timeout" ng-model="vm.smsQueue.timeout" min="1" max="2147483" value="10" ng-required="true">\n\n <div ng-messages="smsQueueForm[\'timeout\'].$error" ng-show="smsQueueForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="SMS.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.smsQueue.description">\n\n <div ng-messages="smsQueueForm[\'description\'].$error" ng-show="smsQueueForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newSmsQueue" ng-click="vm.saveSmsQueue()" class="send-button md-accent md-raised" ng-disabled="smsQueueForm.$invalid || smsQueueForm.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newSmsQueue" ng-click="vm.addNewSmsQueue()" class="send-button md-accent md-raised" ng-disabled="smsQueueForm.$invalid" aria-label="ADD" translate="SMS.ADD_SMSQUEUE" translate-attr-aria-label="SMS.ADD_SMSQUEUE">\n ADD SMSQUEUE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newSmsQueue" ng-click="vm.deleteSmsQueue($event)" aria-label="DELETE" translate translate-attr-aria-label="SMS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="SMS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsQueues/edit/agentadd/agentadd.html",'<md-dialog class="smsQueue-dialog" aria-label="smsQueue" ng-init="vm.onInit()">\n <form name="smsQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="SMS.AGENTADD_SMSQUEUE">Add Agent to smsQueue</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsQueues/edit/teamadd/teamadd.html",'<md-dialog class="smsQueue-dialog" aria-label="smsQueue" ng-init="vm.onInit()">\n <form name="smsQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="SMS.TEAMS_ASSOCIATION">Teams Association</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsQueues/edit/view.html",'<div id="sms-smsQueue" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-smsQueues-button md-icon-button" aria-label="Go to smsQueues" ng-click="vm.gotoSmsQueues()" translate translate-attr-aria-label="SMS.GO_TO_SMSQUEUES">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="smsQueue-image" hide-xs>\n <img ng-src="assets/images/business/smsQueues.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.smsQueue.id}}\n <span ng-if="vm.smsQueue.name">{{vm.smsQueue.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="SMS.CREATED_AT"></span> <span>{{vm.smsQueue.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.teamadddialog(vm.smsQueue, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n <md-tooltip><span translate="SMS.TEAMADD_SMSQUEUE"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.smsQueue, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="SMS.AGENTADD_SMSQUEUE"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-plus"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveSmsQueue()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid)" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="SMS.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="smsQueue-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SMS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="SMS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.smsQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="SMS.HELP.NAME"></span></div>\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="SMS.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.smsQueue.strategy" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'beepall\'">Beepall</md-option>\n <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n </md-select>\n <div ng-messages="generalForm[\'strategy\'].$error" ng-show="generalForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.AGENT_TIMEOUT">Agent_Timeout</label>\n <input type="number" name="timeout" ng-model="vm.smsQueue.timeout" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'timeout\'].$error" ng-show="generalForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="SMS.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.smsQueue.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/sms/views/smsQueues/smsQueues.html",'<div id="smsQueues" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-message-text" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="SMS.SMSQUEUES">SmsQueues</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="SMS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedSmsQueues.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedSmsQueues =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="SMS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-smsQueues-count">\n <span>{{vm.selectedSmsQueues.length}}</span>\n <span translate="SMS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="SMS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllSmsQueues()" translate="SMS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectSmsQueues()" translate="SMS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedSmsQueues" csv-label="true" filename="smsQueues.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedSmsQueues($event)" aria-label="delete selected" translate translate-attr-label="SMS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- SMSQUEUE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedSmsQueues" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getSmsQueues">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'SMS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'SMS.NAME\' | translate }}</th>\n <th md-column md-order-by="strategy">{{ \'SMS.STRATEGY\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.smsQueues.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="SMS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="smsQueue" md-select-id="id" ng-repeat="smsQueue in vm.smsQueues.rows">\n <td md-cell ng-if="smsQueue.userpic"><img class="avatar" alt="{{smsQueue.name}}" ng-src="api/users/{{smsQueue.id}}/avatar" /></td>\n <td md-cell ng-if="!smsQueue.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{smsQueue.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsQueue, ev) : vm.createOrEditSmsQueue($event, smsQueue)" md-cell class="id ">{{smsQueue.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsQueue, ev) : vm.createOrEditSmsQueue($event, smsQueue)" md-cell class="name ">{{smsQueue.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsQueue, ev) : vm.createOrEditSmsQueue($event, smsQueue)" md-cell class="strategy ">{{ vm.arraystrategy[smsQueue.strategy].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="SMS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(smsQueue, $event )" translate="SMS.EDIT_SMSQUEUE">\n Edit SmsQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(smsQueue, $event )" translate="SMS.TEAMADD_SMSQUEUE">\n teamadd SmsQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(smsQueue, $event )" translate="SMS.AGENTADD_SMSQUEUE">\n agentadd SmsQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(smsQueue, $event )" translate="SMS.DELETE_SMSQUEUE">\n Delete SmsQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(smsQueue, $event )" translate="SMS.GOTOREALTIME_SMSQUEUE">\n goToRealtime SmsQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'SMS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SMS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SMS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.smsQueues.count}}" md-on-paginate="vm.getSmsQueues" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / SMSQUEUE TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD SMSQUEUE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-smsQueue-button" ng-click="vm.createOrEditSmsQueue($event)" aria-label="add smsQueue" translate translate-attr-aria-label="SMS.ADD_SMSQUEUE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD SMSQUEUE BUTTON --\x3e\n</div>'),e.put("app/main/apps/staff/views/agents/agents.html",'<div id="agents" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-account-multiple" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="STAFF.AGENTS">Agents</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="STAFF.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedAgents.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedAgents =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="STAFF.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-agents-count">\n <span>{{vm.selectedAgents.length}}</span>\n <span translate="STAFF.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="STAFF.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllAgents()" translate="STAFF.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectAgents()" translate="STAFF.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedAgents" csv-label="true" filename="agents.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedAgents($event)" aria-label="delete selected" translate translate-attr-label="STAFF.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- AGENT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedAgents" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getAgents">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="fullname">{{ \'STAFF.FULLNAME\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'STAFF.USERNAME\' | translate }}</th>\n <th md-column md-order-by="showWebBar">{{ \'STAFF.SHOWWEBCONTROL\' | translate }}</th>\n <th md-column md-order-by="email">{{ \'STAFF.EMAIL\' | translate }}</th>\n <th md-column md-order-by="phone">{{ \'STAFF.PHONE\' | translate }}</th>\n <th md-column md-order-by="mobile">{{ \'STAFF.MOBILE\' | translate }}</th>\n <th md-column md-order-by="internal">{{ \'STAFF.INTERNAL\' | translate }}</th>\n <th md-column md-order-by="disabled">{{ \'STAFF.DISABLED\' | translate }}</th>\n <th md-column md-order-by="blocked">{{ \'STAFF.BLOCKED\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.agents.rows.length">\n <td md-cell colspan="10">\n <div layout="row" layout-align="center center">\n <span translate="STAFF.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="agent" md-select-id="id" ng-repeat="agent in vm.agents.rows">\n <td md-cell ng-if="agent.userpic"><img class="avatar" alt="{{agent.name}}" ng-src="api/users/{{agent.id}}/avatar" /></td>\n <td md-cell ng-if="!agent.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{agent.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="fullname font-weight-600">{{agent.fullname}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="name ">{{agent.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="showWebBar ">{{ vm.arrayshowWebBar[agent.showWebBar].option }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="email ">{{agent.email}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="phone ">{{agent.phone}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="mobile ">{{agent.mobile}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="internal ">{{agent.internal}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="disabled ">\n <md-icon md-colors="{color: {{agent.disabled ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{agent.disabled ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="blocked ">\n <md-icon md-colors="{color: {{agent.blocked ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{agent.blocked ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(agent, $event )" translate="STAFF.EDIT_AGENT">\n Edit Agent\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(agent, $event )" translate="STAFF.TEAMADD_AGENT">\n teamadd Agent\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(agent, $event )" translate="STAFF.DELETE_AGENT">\n Delete Agent\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'STAFF.PAGE\' | translate}}:\', rowsPerPage: \'{{\'STAFF.ROWSPERPAGE\' | translate}}:\', of: \'{{\'STAFF.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.agents.count}}" md-on-paginate="vm.getAgents" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / AGENT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD AGENT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-agent-button" ng-click="vm.createOrEditAgent($event)" aria-label="add agent" translate translate-attr-aria-label="STAFF.ADD_AGENT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD AGENT BUTTON --\x3e\n</div>'),e.put("app/main/apps/staff/views/agents/create/dialog.html",'<md-dialog class="agent-dialog" aria-label="New Agent">\n <form name="agentForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="STAFF.FULLNAME">Fullname</label>\n <input type="text" name="fullname" ng-model="vm.agent.fullname" ng-required="true" autofocus>\n\n <div ng-messages="agentForm[\'fullname\'].$error" ng-show="agentForm[\'fullname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.FULLNAME_REQUIRED">Fullname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.USERNAME">Username</label>\n <input type="text" name="name" ng-model="vm.agent.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" ng-disabled="!vm.newAgent">\n\n <div class="hint"><span translate="STAFF.HELP.USERNAME"></span></div>\n <div ng-messages="agentForm[\'name\'].$error" ng-show="agentForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="STAFF.ERRORS.USERNAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Username must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.agent.alias">\n\n <div ng-messages="agentForm[\'alias\'].$error" ng-show="agentForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.ALIAS_REQUIRED">Alias field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.SHOWWEBCONTROL">ShowWebControl</label>\n <md-select name="showWebBar" ng-model="vm.agent.showWebBar">\n <md-option ng-value="0">Phonebar</md-option>\n <md-option ng-value="1">External</md-option>\n <md-option ng-value="2">WebRTC</md-option>\n </md-select>\n <div ng-messages="agentForm[\'showWebBar\'].$error" ng-show="agentForm[\'showWebBar\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.SHOWWEBCONTROL_REQUIRED">ShowWebControl field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.agent.email" ng-required="true">\n\n <div ng-messages="agentForm[\'email\'].$error" ng-show="agentForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="email">\n <span translate="STAFF.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.newAgent">\n <label translate="STAFF.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.agent.password" placeholder="Password" ng-pattern="vm.passwordPattern" translate translate-attr-placeholder="STAFF.PASSWORD" required>\n <div ng-messages="agentForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="STAFF.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.newAgent && (vm.newAgent)">\n <label translate="STAFF.CONFIRM_PASSWORD">Confirm Password</label>\n <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword" required>\n <div ng-messages="agentForm.confirmPassword.$error" role="alert" multiple>\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n </div>\n <div ng-message="passwordMatch">\n <span translate="STAFF.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container ng-if="vm.newAgent" class="md-block">\n <md-switch ng-model="vm.agent.autointernal" aria-label="AutoInternal"><span translate="STAFF.AUTOINTERNAL">AutoInternal</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="!vm.agent.autointernal" class="md-block">\n <label translate="STAFF.INTERNAL">Internal</label>\n <input type="text" name="internal" ng-model="vm.agent.internal" ng-required="true" ng-disabled="!vm.newAgent">\n\n <div ng-messages="agentForm[\'internal\'].$error" ng-show="agentForm[\'internal\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.INTERNAL_REQUIRED">Internal field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.agent.description">\n\n <div ng-messages="agentForm[\'description\'].$error" ng-show="agentForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.newAgent" class="md-block">\n <md-switch ng-model="vm.agent.voicemail" aria-label="Voicemail"><span translate="STAFF.VOICEMAIL">Voicemail</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.agent.showWebBar == 0" class="md-block">\n <md-switch ng-model="vm.agent.phoneBarRemoteControl" aria-label="RemoteControl"><span translate="STAFF.REMOTECONTROL">RemoteControl</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.agent.phoneBarRemoteControl && vm.agent.showWebBar == 0" class="md-block">\n <label translate="STAFF.REMOTECONTROLPORT">RemoteControlPort</label>\n <input type="number" name="phoneBarRemoteControlPort" ng-model="vm.agent.phoneBarRemoteControlPort" value="9888" ng-required="true">\n\n <div ng-messages="agentForm[\'phoneBarRemoteControlPort\'].$error" ng-show="agentForm[\'phoneBarRemoteControlPort\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.REMOTECONTROLPORT_REQUIRED">RemoteControlPort field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.newUser" class="md-block">\n <md-switch ng-model="vm.agent.voicemail" aria-label="Voicemail"><span translate="STAFF.VOICEMAIL">Voicemail</span></md-switch>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newAgent" ng-click="vm.saveAgent()" class="send-button md-accent md-raised" ng-disabled="agentForm.$invalid || agentForm.$pristine" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newAgent" ng-click="vm.addNewAgent()" class="send-button md-accent md-raised" ng-disabled="agentForm.$invalid" aria-label="ADD" translate="STAFF.ADD_AGENT" translate-attr-aria-label="STAFF.ADD_AGENT">\n ADD AGENT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newAgent" ng-click="vm.deleteAgent($event)" aria-label="DELETE" translate translate-attr-aria-label="STAFF.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="STAFF.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/agents/edit/changepassword/changepassword.html",'<md-dialog class="agent-dialog" aria-label="{{vm.name}}">\n <form name="agentForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ \'\n STAFF.CHANGE_PASSWORD\' | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block" ng-if="vm.currentUser.id == vm.agent.id">\n <label translate="STAFF.OLD_PASSWORD">Old Password</label>\n <input type="password" name="oldPassword" ng-model="vm.oldPassword" placeholder="Password" translate translate-attr-placeholder="STAFF.OLD_PASSWORD" required>\n <div ng-messages="agentForm.oldPassword.$error" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.NEW_PASSWORD">New Password</label>\n <input type="password" name="password" ng-model="vm.password" placeholder="Password" translate ng-pattern="vm.passwordPattern" translate-attr-placeholder="STAFF.NEW_PASSWORD" required>\n <div ng-messages="agentForm.password.$error" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PASSWORD_REQUIRED">Password field is\n required</span>\n </div>\n\n\n <div ng-message="pattern">\n <span translate="STAFF.ERRORS.SECURE_PASSWORD_PATTERN">Must contain\n at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric\n character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n <div ng-message="oldPasswordMatch">\n <span translate="STAFF.ERRORS.PASSWORD_OLDPASSWORD_MATCH">New password must be different from old one</span>\n </div>\n\n\n\n\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CONFIRM_PASSWORD">Confirm Password</label>\n <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n <div ng-messages="agentForm.confirmPassword.$error" role="alert" multiple>\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CONFIRM_REQUIRED">Confirm field is\n required</span>\n </div>\n <div ng-message="passwordMatch">\n <span translate="STAFF.ERRORS.CONFIRM_NOT_MATCH">Your password did\n not match</span>\n </div>\n </div>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.savePassword()" class="send-button md-accent md-raised" ng-disabled="agentForm.$invalid || agentForm.$pristine" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",'<md-dialog class="agent-dialog" aria-label="agent" ng-init="vm.onInit()">\n <form name="agentForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2>{{vm.title}}</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <md-input-container flex class="no-margin" ng-if="vm.agent.role === \'agent\' && vm.channel === \'voice\'">\n <label translate="STAFF.PENALTY">Penalty</label>\n <input name="penalty" type="number" ng-model="vm.penalty" min="0" placeholder="0" required onkeypress="return event.charCode >= 48 && event.charCode <= 57 && this.value.length < 3">\n <div ng-messages="agentForm.penalty.$error" role="alert" multiple>\n <div ng-message="required">\n <span>{{ \'VOICE.ERRORS.PENALTY_REQUIRED\' | translate }}</span>\n </div>\n </div>\n </md-input-container>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" add-disabled="vm.channel === \'voice\' && vm.penalty === undefined"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveQueues()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/agents/edit/teamadd/teamadd.html",'<md-dialog class="agent-dialog" aria-label="agent" ng-init="vm.onInit()">\n <form name="agentForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="STAFF.TEAMS_ASSOCIATION">Teams Association</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/agents/edit/view.html",'<div id="staff-agent" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-agents-button md-icon-button" aria-label="Go to agents" ng-click="vm.gotoAgents()" translate translate-attr-aria-label="STAFF.GO_TO_AGENTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="agent-image" hide-xs>\n <img ng-src="assets/images/business/agents.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.agent.id}}\n <span ng-if="vm.agent.name">{{vm.agent.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="STAFF.CREATED_AT"></span> <span>{{vm.agent.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div ng-cloak>\n <md-fab-speed-dial md-direction="left" class="md-scale md-fab">\n <md-fab-trigger>\n <md-button aria-label="menu" class="md-fab md-primary md-icon-button">\n <md-tooltip md-direction="top" md-visible="false"><span translate="STAFF.CHANNELS">Channels</span></md-tooltip>\n <md-icon md-font-icon="icon-stackoverflow" aria-label="queueadd"></md-icon>\n </md-button>\n </md-fab-trigger>\n <md-fab-actions>\n <md-button aria-label="voice" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.agent, \'voice\', $event, \'inbound\')">\n <md-tooltip md-direction="bottom" md-visible="false"><span translate="VOICE.VOICE">Voice</span></md-tooltip>\n <md-icon md-font-icon="icon-phone" aria-label="voice"></md-icon>\n </md-button>\n <md-button ng-if="vm.license.dialer" aria-label="motion bull" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.agent, \'voice\', $event, \'outbound\')">\n <md-tooltip md-direction="bottom" md-visible="false"><span translate="MOTIONDIALER.MOTIONDIALER">Motion Bull</span></md-tooltip>\n <md-icon md-font-icon="icon-fire" aria-label="motion bull"></md-icon>\n </md-button>\n <md-button ng-if="vm.license.chat" aria-label="chat" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.agent, \'chat\', $event)">\n <md-tooltip md-direction="bottom" md-visible="false"><span translate="CHAT.CHAT">Chat</span></md-tooltip>\n <md-icon md-font-icon="icon-hangouts" aria-label="chat"></md-icon>\n </md-button>\n <md-button ng-if="vm.license.mail" aria-label="mail" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.agent, \'mail\', $event)">\n <md-tooltip md-direction="bottom" md-visible="false"><span translate="MAIL.MAIL">Email</span></md-tooltip>\n <md-icon md-font-icon="icon-email" aria-label="mail"></md-icon>\n </md-button>\n <md-button ng-if="vm.license.messaging" aria-label="sms" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.agent, \'sms\', $event)">\n <md-tooltip md-direction="bottom" md-visible="false"><span translate="SMS.SMS">Sms</span></md-tooltip>\n <md-icon md-font-icon="icon-message-text" aria-label="sms"></md-icon>\n </md-button>\n <md-button ng-if="vm.license.openchannel" aria-label="openchannel" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.agent, \'openchannel\', $event)">\n <md-tooltip md-direction="bottom" md-visible="false"><span translate="OPENCHANNEL.OPENCHANNEL">Openchannel</span></md-tooltip>\n <md-icon md-font-icon="icon-google-earth" aria-label="openchannel"></md-icon>\n </md-button>\n <md-button ng-if="vm.license.fax" aria-label="fax" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.agent, \'fax\', $event)">\n <md-tooltip md-direction="bottom" md-visible="false"><span translate="FAX.FAX">Fax</span></md-tooltip>\n <md-icon md-font-icon="icon-deskphone" aria-label="fax"></md-icon>\n </md-button>\n <md-button ng-if="vm.license.whatsapp" aria-label="whatsapp" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.agent, \'whatsapp\', $event)">\n <md-tooltip md-direction="bottom" md-visible="false"><span translate="WHATSAPP.WHATSAPP">whatsapp</span></md-tooltip>\n <md-icon md-font-icon="icon-whatsapp" aria-label="whatsapp"></md-icon>\n </md-button>\n </md-fab-actions>\n </md-fab-speed-dial>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.teamadddialog(vm.agent, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n <md-tooltip><span translate="STAFF.TEAMADD_AGENT"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.changepassworddialog(vm.agent, $event)" class="md-fab md-warn md-icon-button" aria-label="changepassword">\n <md-tooltip><span translate="STAFF.CHANGEPASSWORD_AGENT"></span></md-tooltip>\n <md-icon md-font-icon="icon-key-variant"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveAgent()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(personal_infoForm.$invalid) || (security_suiteForm.$invalid) || (change_avatarForm.$invalid) || (generalForm.$invalid) || (capacityForm.$invalid) || (settingsForm.$invalid) || (remote_controlForm.$invalid) || (sipForm.$invalid) || (callforwardingForm.$invalid) || (settings_webrtcForm.$invalid) || (sip_webrtcForm.$invalid) || (general_permissionsForm.$invalid) || (download_permissionsForm.$invalid) || (permissionsForm.$invalid)" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="STAFF.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="agent-detail-form-container personal_info md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.PERSONAL_INFO">PERSONAL_INFO</div>\n </div>\n <form name="personal_infoForm" novalidate>\n <md-input-container class="md-block">\n <label translate="STAFF.FULLNAME">Fullname</label>\n <input type="text" name="fullname" ng-model="vm.agent.fullname" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="personal_infoForm[\'fullname\'].$error" ng-show="personal_infoForm[\'fullname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.FULLNAME_REQUIRED">Fullname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.USERNAME">Username</label>\n <input type="text" name="name" ng-model="vm.agent.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" disabled>\n\n <div class="hint"><span translate="STAFF.HELP.USERNAME"></span></div>\n <div ng-messages="personal_infoForm[\'name\'].$error" ng-show="personal_infoForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="STAFF.ERRORS.USERNAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Username must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.agent.alias" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="personal_infoForm[\'alias\'].$error" ng-show="personal_infoForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.ALIAS_REQUIRED">Alias field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.SHOWWEBCONTROL">ShowWebControl</label>\n <md-select name="showWebBar" ng-model="vm.agent.showWebBar" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="0">Phonebar</md-option>\n <md-option ng-value="1">External</md-option>\n <md-option ng-value="2">WebRTC</md-option>\n </md-select>\n <div ng-messages="personal_infoForm[\'showWebBar\'].$error" ng-show="personal_infoForm[\'showWebBar\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.SHOWWEBCONTROL_REQUIRED">ShowWebControl field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.agent.email" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="personal_infoForm[\'email\'].$error" ng-show="personal_infoForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="email">\n <span translate="STAFF.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.agent.phone" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="personal_infoForm[\'phone\'].$error" ng-show="personal_infoForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.MOBILE">Mobile</label>\n <input type="text" name="mobile" ng-model="vm.agent.mobile" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="personal_infoForm[\'mobile\'].$error" ng-show="personal_infoForm[\'mobile\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.MOBILE_REQUIRED">Mobile field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.agent.showWebBar == 1" class="md-block">\n <md-switch ng-model="vm.agent.hotdesk" aria-label="Hotdesk" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.HOTDESK">Hotdesk</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.loginInPause" aria-label="LoginInPause" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.LOGININPAUSE">LoginInPause</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.agent.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="personal_infoForm[\'description\'].$error" ng-show="personal_infoForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="agent-detail-form-container security_suite md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.SECURITY_SUITE">SECURITY_SUITE</div>\n </div>\n <form name="security_suiteForm" novalidate>\n <md-input-container ng-if="vm.agent.passwordResetAt != null" class="md-block">\n <label translate="STAFF.LAST_PASSWORD_RESET_AT">Last_Password_Reset_At</label>\n <input type="text" name="passwordResetAt" ng-model="vm.agent.passwordResetAt" autofocus disabled>\n\n <div class="hint"><span translate="STAFF.HELP.LAST_PASSWORD_RESET_AT"></span></div>\n <div ng-messages="security_suiteForm[\'passwordResetAt\'].$error" ng-show="security_suiteForm[\'passwordResetAt\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.LAST_PASSWORD_RESET_AT_REQUIRED">Last_Password_Reset_At field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.agent.passwordResetAt == null" class="md-block">\n <label translate="STAFF.NO_PASSWORD_CHANGE">No_Password_Change</label>\n <input type="text" name="passwordResetAt" ng-model="vm.agent.passwordResetAt" disabled>\n\n <div ng-messages="security_suiteForm[\'passwordResetAt\'].$error" ng-show="security_suiteForm[\'passwordResetAt\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.NO_PASSWORD_CHANGE_REQUIRED">No_Password_Change field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.disabled" aria-label="Disabled" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.DISABLED">Disabled</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.DISABLED"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.agent.disabled == 0" class="md-block">\n <md-switch ng-model="vm.agent.blocked" aria-label="Blocked" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.BLOCKED">Blocked</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.BLOCKED"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.privacyEnabled" aria-label="Mask_Sensitive_Data" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.MASK_SENSITIVE_DATA">Mask_Sensitive_Data</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.MASK_SENSITIVE_DATA"></span></div>\n </md-input-container>\n\n </form>\n </div>\n <div class="agent-detail-form-container change_avatar md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.CHANGE_AVATAR">CHANGE_AVATAR</div>\n </div>\n <div ng-controller="Agentchange_avatarController as vm_ca" ng-init="vm_ca.init(vm.agent, vm.crudPermissions)" class="agent-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="agent-image-uploader" flow-init="vm_ca.ngFlowOptions" flow-name="vm_ca.ngFlow.flow" flow-files-submitted="vm_ca.upload()" flow-file-added="vm_ca.fileAdded($file)" flow-file-success="vm_ca.fileSuccess($file, $message)" flow-complete="vm_ca.uploadComplete()" flow-drop flow-drag-enter="vm_ca.dropping=true" flow-drag-leave="vm_ca.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n <div class="drop-text hint-text" layout="row" layout-align="center center">\n <span translate="EC.DROP_TO_UPLOAD">Drop to upload</span>\n </div>\n\n <div class="upload-button" layout="column" layout-align="center center">\n <md-button class="md-accent md-raised" flow-btn ng-disabled="!vm_ca.crudPermissions.canEdit">\n Upload\n </md-button>\n <span class="secondary-text mt-8">You can also drop images here to upload. Only PNG, JPG - Max. 8MB</span>\n </div>\n\n <div layout="row" layout-align="start start" layout-wrap>\n <div ng-repeat="change_avatarimage in vm_ca.agent.images" ng-switch="change_avatarimage.type">\n <div class="agent-image uploading" ng-switch-when="uploading" layout="row" layout-align="center center">\n <div class="overlay" layout="column" layout-align="center center">\n <md-progress-linear md-mode="determinate" value="{{change_avatarimage.file.progress() * 100}}">\n </md-progress-linear>\n </div>\n <img class="media" flow-img="change_avatarimage.file">\n </div>\n\n <div class="agent-image" ng-switch-when="image" layout="row" layout-align="center center">\n <img class="media" ng-src="{{change_avatarimage.url}}">\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="STAFF.VOICE">VOICE</span>\n </md-tab-label>\n <md-tab-body>\n <div class="agent-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container ng-if="!vm.agent.autointernal" class="md-block">\n <label translate="STAFF.INTERNAL">Internal</label>\n <input type="text" name="internal" ng-model="vm.agent.internal" ng-required="true" autofocus disabled>\n\n <div ng-messages="generalForm[\'internal\'].$error" ng-show="generalForm[\'internal\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.INTERNAL_REQUIRED">Internal field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.agent.showWebBar != 2" class="md-block">\n <label translate="STAFF.TRANSPORT">Transport</label>\n <md-select name="transport" ng-model="vm.agent.transport" multiple ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'udp\'">udp</md-option>\n <md-option ng-value="\'tcp\'">tcp</md-option>\n <md-option ng-value="\'ws\'" ng-if="vm.agent.showWebBar == 1">ws</md-option>\n <md-option ng-value="\'wss\'" ng-if="vm.agent.showWebBar == 1">wss</md-option>\n <md-option ng-value="\'tls\'" ng-if="vm.agent.showWebBar == 1">tls</md-option>\n </md-select>\n <div class="hint"><span translate="STAFF.HELP.TRANSPORT"></span></div>\n <div ng-messages="generalForm[\'transport\'].$error" ng-show="generalForm[\'transport\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.TRANSPORT_REQUIRED">Transport field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.HOST">Host</label>\n <input type="text" name="host" ng-model="vm.agent.host" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.HOST"></span></div>\n <div ng-messages="generalForm[\'host\'].$error" ng-show="generalForm[\'host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.HOST_REQUIRED">Host field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.NAT">NAT</label>\n <md-select name="nat" ng-model="vm.agent.nat" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'force_rport\'">force_rport</md-option>\n <md-option ng-value="\'comedia\'">comedia</md-option>\n <md-option ng-value="\'yes\'">yes</md-option>\n <md-option ng-value="\'no\'">no</md-option>\n <md-option ng-value="\'never\'">never</md-option>\n <md-option ng-value="\'route\'">route</md-option>\n </md-select>\n <div class="hint"><span translate="STAFF.HELP.NAT"></span></div>\n <div ng-messages="generalForm[\'nat\'].$error" ng-show="generalForm[\'nat\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.NAT_REQUIRED">NAT field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.TYPE">Type</label>\n <md-select name="type" ng-model="vm.agent.type" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'friend\'">Friend</md-option>\n <md-option ng-value="\'user\'">User</md-option>\n <md-option ng-value="\'peer\'">Peer</md-option>\n </md-select>\n <div class="hint"><span translate="STAFF.HELP.TYPE"></span></div>\n <div ng-messages="generalForm[\'type\'].$error" ng-show="generalForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.ALLOWCODECS">AllowCodecs</label>\n <md-select name="allow" ng-model="vm.agent.allow" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'ulaw\'">ulaw</md-option>\n <md-option ng-value="\'alaw\'">alaw</md-option>\n <md-option ng-value="\'gsm\'">gsm</md-option>\n <md-option ng-value="\'g722\'">g722</md-option>\n <md-option ng-value="\'g729\'">g729</md-option>\n <md-option ng-value="\'opus\'">opus</md-option>\n <md-option ng-value="\'h264\'">h264</md-option>\n </md-select>\n <div class="hint"><span translate="STAFF.HELP.ALLOWCODECS"></span></div>\n <div ng-messages="generalForm[\'allow\'].$error" ng-show="generalForm[\'allow\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.ALLOWCODECS_REQUIRED">AllowCodecs field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CALLERID">CallerId</label>\n <input type="text" name="callerid" ng-model="vm.agent.callerid" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'callerid\'].$error" ng-show="generalForm[\'callerid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CALLERID_REQUIRED">CallerId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.agent.context" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts" ng-disabled="context.canSelect === false">{{ context.name }}</md-option>\n </md-select>\n <div ng-messages="generalForm[\'context\'].$error" ng-show="generalForm[\'context\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CALLGROUP">Callgroup</label>\n <input type="text" name="callgroup" ng-model="vm.agent.callgroup" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.CALLGROUP"></span></div>\n <div ng-messages="generalForm[\'callgroup\'].$error" ng-show="generalForm[\'callgroup\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CALLGROUP_REQUIRED">Callgroup field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.PICKUPGROUP">Pickupgroup</label>\n <input type="text" name="pickupgroup" ng-model="vm.agent.pickupgroup" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.PICKUPGROUP"></span></div>\n <div ng-messages="generalForm[\'pickupgroup\'].$error" ng-show="generalForm[\'pickupgroup\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PICKUPGROUP_REQUIRED">Pickupgroup field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.chanspy" aria-label="chanSpy" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.CHANSPY">chanSpy</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.VIDEOSUPPORT">Videosupport</label>\n <md-select name="videosupport" ng-model="vm.agent.videosupport" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'yes\'">Yes</md-option>\n <md-option ng-value="\'no\'">No</md-option>\n <md-option ng-value="\'always\'">Always</md-option>\n </md-select>\n <div ng-messages="generalForm[\'videosupport\'].$error" ng-show="generalForm[\'videosupport\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.VIDEOSUPPORT_REQUIRED">Videosupport field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.MONITOREXTENSION">MonitorExtension</label>\n <md-select name="extensionMonitor" ng-model="vm.agent.extensionMonitor" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">Inactive</md-option>\n <md-option ng-value="\'wav\'">wav</md-option>\n <md-option ng-value="\'WAV\'">wav49</md-option>\n <md-option ng-value="\'gsm\'">gsm</md-option>\n </md-select>\n <div ng-messages="generalForm[\'extensionMonitor\'].$error" ng-show="generalForm[\'extensionMonitor\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.MONITOREXTENSION_REQUIRED">MonitorExtension field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="STAFF.OTHER_CHANNELS">OTHER_CHANNELS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="agent-detail-form-container capacity md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.CAPACITY">CAPACITY</div>\n </div>\n <form name="capacityForm" novalidate>\n <md-input-container ng-if="vm.license.chat" class="md-block">\n <label translate="STAFF.CHATCAPACITY">ChatCapacity</label>\n <input type="number" name="chatCapacity" ng-model="vm.agent.chatCapacity" min="0" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.CHATCAPACITY"></span></div>\n <div ng-messages="capacityForm[\'chatCapacity\'].$error" ng-show="capacityForm[\'chatCapacity\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CHATCAPACITY_REQUIRED">ChatCapacity field is required</span>\n </div>\n <div ng-message="min">\n <span translate="STAFF.ERRORS.CHATCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">ChatCapacity must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.license.mail" class="md-block">\n <label translate="STAFF.MAILCAPACITY">MailCapacity</label>\n <input type="number" name="mailCapacity" ng-model="vm.agent.mailCapacity" min="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.MAILCAPACITY"></span></div>\n <div ng-messages="capacityForm[\'mailCapacity\'].$error" ng-show="capacityForm[\'mailCapacity\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.MAILCAPACITY_REQUIRED">MailCapacity field is required</span>\n </div>\n <div ng-message="min">\n <span translate="STAFF.ERRORS.MAILCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MailCapacity must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.license.messaging" class="md-block">\n <label translate="STAFF.SMSCAPACITY">SMSCapacity</label>\n <input type="number" name="smsCapacity" ng-model="vm.agent.smsCapacity" min="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.SMSCAPACITY"></span></div>\n <div ng-messages="capacityForm[\'smsCapacity\'].$error" ng-show="capacityForm[\'smsCapacity\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.SMSCAPACITY_REQUIRED">SMSCapacity field is required</span>\n </div>\n <div ng-message="min">\n <span translate="STAFF.ERRORS.SMSCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">SMSCapacity must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.license.openchannel" class="md-block">\n <label translate="STAFF.OPENCHANNELCAPACITY">OpenchannelCapacity</label>\n <input type="number" name="openchannelCapacity" ng-model="vm.agent.openchannelCapacity" min="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.OPENCHANNELCAPACITY"></span></div>\n <div ng-messages="capacityForm[\'openchannelCapacity\'].$error" ng-show="capacityForm[\'openchannelCapacity\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.OPENCHANNELCAPACITY_REQUIRED">OpenchannelCapacity field is required</span>\n </div>\n <div ng-message="min">\n <span translate="STAFF.ERRORS.OPENCHANNELCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">OpenchannelCapacity must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.license.fax" class="md-block">\n <label translate="STAFF.FAXCAPACITY">FaxCapacity</label>\n <input type="number" name="faxCapacity" ng-model="vm.agent.faxCapacity" min="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.FAXCAPACITY"></span></div>\n <div ng-messages="capacityForm[\'faxCapacity\'].$error" ng-show="capacityForm[\'faxCapacity\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.FAXCAPACITY_REQUIRED">FaxCapacity field is required</span>\n </div>\n <div ng-message="min">\n <span translate="STAFF.ERRORS.FAXCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">FaxCapacity must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.license.whatsapp" class="md-block">\n <label translate="STAFF.WHATSAPPCAPACITY">WhatsappCapacity</label>\n <input type="number" name="whatsappCapacity" ng-model="vm.agent.whatsappCapacity" min="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.WHATSAPPCAPACITY"></span></div>\n <div ng-messages="capacityForm[\'whatsappCapacity\'].$error" ng-show="capacityForm[\'whatsappCapacity\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.WHATSAPPCAPACITY_REQUIRED">WhatsappCapacity field is required</span>\n </div>\n <div ng-message="min">\n <span translate="STAFF.ERRORS.WHATSAPPCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WhatsappCapacity must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab ng-if="vm.agent.showWebBar == 0">\n <md-tab-label>\n <span translate="STAFF.MOTIONBAR">MOTIONBAR</span>\n </md-tab-label>\n <md-tab-body>\n <div class="agent-detail-form-container settings md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.SETTINGS">SETTINGS</div>\n </div>\n <form name="settingsForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarEnableSettings" aria-label="EnableSettings" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ENABLESETTINGS">EnableSettings</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarAutoAnswer" aria-label="AutoAnswer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.AUTOANSWER">AutoAnswer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.agent.phoneBarAutoAnswer" class="md-block">\n <label translate="STAFF.AUTOANSWERDELAY">AutoAnswerDelay</label>\n <input type="number" name="phoneBarAutoAnswerDelay" ng-model="vm.agent.phoneBarAutoAnswerDelay" min="0" value="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="settingsForm[\'phoneBarAutoAnswerDelay\'].$error" ng-show="settingsForm[\'phoneBarAutoAnswerDelay\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.AUTOANSWERDELAY_REQUIRED">AutoAnswerDelay field is required</span>\n </div>\n <div ng-message="min">\n <span translate="STAFF.ERRORS.AUTOANSWERDELAY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AutoAnswerDelay must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarRingInUse" aria-label="RingInUse" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.RINGINUSE">RingInUse</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarEnableRecording" aria-label="EnableRecording" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ENABLERECORDING">EnableRecording</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarEnableDtmfTone" aria-label="EnableDtmfTone" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ENABLEDTMFTONE">EnableDtmfTone</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarDnd" aria-label="Dnd" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.DND">Dnd</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarUnansweredCallBadge" aria-label="UnansweredCallBadge" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.UNANSWEREDCALLBADGE">UnansweredCallBadge</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.agent.showWebBar == 0" class="md-block">\n <md-switch ng-model="vm.agent.phoneBarEnableJaws" aria-label="EnableJawsIntegration" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ENABLEJAWSINTEGRATION">EnableJawsIntegration</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.agent.showWebBar == 0 && vm.license.screenrecording" class="md-block">\n <md-switch ng-change="vm.onEnableScreenRecordingByAgentSelection()" ng-model="vm.agent.phoneBarEnableScreenRecordingByAgent" aria-label="EnableScreenRecordingByAgent" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ENABLESCREENRECORDINGBYAGENT">EnableScreenRecordingByAgent</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.agent.showWebBar == 0 && vm.license.screenrecording" class="md-block">\n <md-switch ng-change="vm.onEnableAutomaticScreenRecordingSelection()" ng-model="vm.agent.phoneBarEnableAutomaticScreenRecording" aria-label="EnableAutomaticScreenRecording" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ENABLEAUTOMATICSCREENRECORDING">EnableAutomaticScreenRecording</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.ENABLEAUTOMATICSCREENRECORDING"></span></div>\n </md-input-container>\n\n </form>\n </div>\n <div class="agent-detail-form-container remote_control md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.REMOTE_CONTROL">REMOTE_CONTROL</div>\n </div>\n <form name="remote_controlForm" novalidate>\n <md-input-container ng-if="vm.agent.showWebBar == 0" class="md-block">\n <md-switch ng-model="vm.agent.phoneBarRemoteControl" aria-label="RemoteControl" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.REMOTECONTROL">RemoteControl</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.agent.phoneBarRemoteControl && vm.agent.showWebBar == 0" class="md-block">\n <label translate="STAFF.REMOTECONTROLPORT">RemoteControlPort</label>\n <input type="number" name="phoneBarRemoteControlPort" ng-model="vm.agent.phoneBarRemoteControlPort" value="9888" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="remote_controlForm[\'phoneBarRemoteControlPort\'].$error" ng-show="remote_controlForm[\'phoneBarRemoteControlPort\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.REMOTECONTROLPORT_REQUIRED">RemoteControlPort field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="agent-detail-form-container sip md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.SIP">SIP</div>\n </div>\n <form name="sipForm" novalidate>\n <md-input-container class="md-block">\n <label translate="STAFF.SIPEXPIRES">SipExpires</label>\n <input type="number" name="phoneBarExpires" ng-model="vm.agent.phoneBarExpires" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.SIPEXPIRES"></span></div>\n <div ng-messages="sipForm[\'phoneBarExpires\'].$error" ng-show="sipForm[\'phoneBarExpires\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.SIPEXPIRES_REQUIRED">SipExpires field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.SIPPORT">SipPort</label>\n <input type="number" name="phoneBarListenPort" ng-model="vm.agent.phoneBarListenPort" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.SIPPORT"></span></div>\n <div ng-messages="sipForm[\'phoneBarListenPort\'].$error" ng-show="sipForm[\'phoneBarListenPort\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.SIPPORT_REQUIRED">SipPort field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="agent-detail-form-container callforwarding md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.CALLFORWARDING">CALLFORWARDING</div>\n </div>\n <form name="callforwardingForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarUnconditional" aria-label="Unconditional" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.UNCONDITIONAL">Unconditional</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.agent.phoneBarUnconditional" class="md-block">\n <label translate="STAFF.UNCONDITIONALNUMBER">UnconditionalNumber</label>\n <input type="text" name="phoneBarUnconditionalNumber" ng-model="vm.agent.phoneBarUnconditionalNumber" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="callforwardingForm[\'phoneBarUnconditionalNumber\'].$error" ng-show="callforwardingForm[\'phoneBarUnconditionalNumber\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.UNCONDITIONALNUMBER_REQUIRED">UnconditionalNumber field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab ng-if="vm.agent.showWebBar == 2">\n <md-tab-label>\n <span translate="STAFF.WEBRTC">WEBRTC</span>\n </md-tab-label>\n <md-tab-body>\n <div class="agent-detail-form-container settings_webrtc md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.SETTINGS_WEBRTC">SETTINGS_WEBRTC</div>\n </div>\n <form name="settings_webrtcForm" novalidate>\n <md-input-container class="md-block">\n <label translate="STAFF.DTLSCERTFILE">dtlscertfile</label>\n <input type="text" name="dtlscertfile" ng-model="vm.agent.dtlscertfile" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.DTLSCERTFILE"></span></div>\n <div ng-messages="settings_webrtcForm[\'dtlscertfile\'].$error" ng-show="settings_webrtcForm[\'dtlscertfile\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DTLSCERTFILE_REQUIRED">dtlscertfile field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.DTLSPRIVATEKEY">dtlsprivatekey</label>\n <input type="text" name="dtlsprivatekey" ng-model="vm.agent.dtlsprivatekey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.DTLSPRIVATEKEY"></span></div>\n <div ng-messages="settings_webrtcForm[\'dtlsprivatekey\'].$error" ng-show="settings_webrtcForm[\'dtlsprivatekey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DTLSPRIVATEKEY_REQUIRED">dtlsprivatekey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.WSS_PORT">WSS_Port</label>\n <input type="number" name="wssPort" ng-model="vm.agent.wssPort" min="0" value="8089" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.WSS_PORT"></span></div>\n <div ng-messages="settings_webrtcForm[\'wssPort\'].$error" ng-show="settings_webrtcForm[\'wssPort\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.WSS_PORT_REQUIRED">WSS_Port field is required</span>\n </div>\n <div ng-message="min">\n <span translate="STAFF.ERRORS.WSS_PORT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WSS_Port must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarEnableSettings" aria-label="EnableSettings" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ENABLESETTINGS">EnableSettings</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarAutoAnswer" aria-label="AutoAnswer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.AUTOANSWER">AutoAnswer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.agent.phoneBarAutoAnswer" class="md-block">\n <label translate="STAFF.AUTOANSWERDELAY">AutoAnswerDelay</label>\n <input type="number" name="phoneBarAutoAnswerDelay" ng-model="vm.agent.phoneBarAutoAnswerDelay" min="0" value="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="settings_webrtcForm[\'phoneBarAutoAnswerDelay\'].$error" ng-show="settings_webrtcForm[\'phoneBarAutoAnswerDelay\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.AUTOANSWERDELAY_REQUIRED">AutoAnswerDelay field is required</span>\n </div>\n <div ng-message="min">\n <span translate="STAFF.ERRORS.AUTOANSWERDELAY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AutoAnswerDelay must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarEnableRecording" aria-label="EnableRecording" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ENABLERECORDING">EnableRecording</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarEnableDtmfTone" aria-label="EnableDtmfTone" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ENABLEDTMFTONE">EnableDtmfTone</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarDnd" aria-label="Dnd" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.DND">Dnd</span></md-switch>\n </md-input-container>\n\n </form>\n </div>\n <div class="agent-detail-form-container sip_webrtc md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.SIP_WEBRTC">SIP_WEBRTC</div>\n </div>\n <form name="sip_webrtcForm" novalidate>\n <md-input-container class="md-block">\n <label translate="STAFF.SIPEXPIRES">SipExpires</label>\n <input type="number" name="phoneBarExpires" ng-model="vm.agent.phoneBarExpires" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.SIPEXPIRES"></span></div>\n <div ng-messages="sip_webrtcForm[\'phoneBarExpires\'].$error" ng-show="sip_webrtcForm[\'phoneBarExpires\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.SIPEXPIRES_REQUIRED">SipExpires field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="STAFF.PERMISSIONS">PERMISSIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="agent-detail-form-container general_permissions md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.GENERAL_PERMISSIONS">GENERAL_PERMISSIONS</div>\n </div>\n <form name="general_permissionsForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.allowmessenger" aria-label="EnableMessenger" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ENABLEMESSENGER">EnableMessenger</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarPrefixRequired" aria-label="PrefixRequired" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.PREFIXREQUIRED">PrefixRequired</span></md-switch>\n </md-input-container>\n\n </form>\n </div>\n <div class="agent-detail-form-container download_permissions md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.DOWNLOAD_PERMISSIONS">DOWNLOAD_PERMISSIONS</div>\n </div>\n <form name="download_permissionsForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.downloadAttachments" aria-label="Attachments" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ATTACHMENTS">Attachments</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.downloadOmnichannelInteractions" aria-label="Omnichannel_Interactions" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.OMNICHANNEL_INTERACTIONS">Omnichannel_Interactions</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.downloadVoiceRecordings" aria-label="Voice_Recordings" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.VOICE_RECORDINGS">Voice_Recordings</span></md-switch>\n </md-input-container>\n\n </form>\n </div>\n <div class="agent-detail-form-container permissions md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.PERMISSIONS">PERMISSIONS</div>\n </div>\n <div ng-controller="AgentPermissionsController as vm_pc" ng-init="vm_pc.init(vm.agent, vm.crudPermissions)" class="agent-detail-form-container">\n <md-list ng-repeat="father in vm_pc.navigation[0].children" ng-include="\'permission-nested.html\'" ng-if="vm_pc.agent.role !== \'admin\' && !father.hidden()"></md-list>\n\n \x3c!-- Nested navigation template --\x3e\n <script type="text/ng-template" id="permission-nested.html">\n <md-list-item>\n <md-icon md-font-icon="{{father.icon}}"></md-icon>\n <p translate="{{father.translate}}">{{ father.title }}</p>\n <md-switch class="md-secondary" ng-model="father.enabled" ng-change="vm_pc.onChange(father)" ng-init="father.enabled = vm_pc.agent.permissions.includes(father.id)" \n ng-disabled="!vm_pc.crudPermissions.canEdit"></md-switch>\n </md-list-item>\n\n <md-divider></md-divider>\n\n <md-list>\n <md-list-item ng-repeat="child in father.children" ng-if="child.id !== 201">\n <md-icon ng-if="child.icon" md-font-icon="{{child.icon}}"></md-icon>\n <p translate="{{child.translate}}">{{ child.title }}</p>\n <md-switch ng-model="child.enabled" ng-change="vm_pc.onChange(father, child)" ng-init="child.enabled = vm_pc.agent.permissions.includes(child.id)"\n ng-disabled="!vm_pc.crudPermissions.canEdit"></md-switch>\n </md-list-item>\n </md-list>\n <\/script>\n \x3c!-- / Nested navigation template --\x3e\n\n <span ng-if="vm_pc.agent.role === \'admin\'" class="md-headline" translate="STAFF.ALL_MODULES_AVAILABLE">All modules are already available.</span>\n\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/staff/views/teams/create/dialog.html",'<md-dialog class="team-dialog" aria-label="New Team">\n <form name="teamForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="STAFF.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.team.name" ng-required="true" autofocus>\n\n <div ng-messages="teamForm[\'name\'].$error" ng-show="teamForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.team.description">\n\n <div ng-messages="teamForm[\'description\'].$error" ng-show="teamForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newTeam" ng-click="vm.saveTeam()" class="send-button md-accent md-raised" ng-disabled="teamForm.$invalid || teamForm.$pristine" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newTeam" ng-click="vm.addNewTeam()" class="send-button md-accent md-raised" ng-disabled="teamForm.$invalid" aria-label="ADD" translate="STAFF.ADD_TEAM" translate-attr-aria-label="STAFF.ADD_TEAM">\n ADD TEAM\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newTeam" ng-click="vm.deleteTeam($event)" aria-label="DELETE" translate translate-attr-aria-label="STAFF.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="STAFF.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/teams/edit/agentadd/agentadd.html",'<md-dialog class="team-dialog" aria-label="team" ng-init="vm.onInit()">\n <form name="teamForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="STAFF.AGENTADD_TEAM">Add Agent to team</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/teams/teams.html",'<div id="teams" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-account-multiple" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="STAFF.TEAMS">Teams</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="STAFF.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedTeams.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedTeams =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="STAFF.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-teams-count">\n <span>{{vm.selectedTeams.length}}</span>\n <span translate="STAFF.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="STAFF.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllTeams()" translate="STAFF.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectTeams()" translate="STAFF.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedTeams" csv-label="true" filename="teams.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedTeams($event)" aria-label="delete selected" translate translate-attr-label="STAFF.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- TEAM TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedTeams" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTeams">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'STAFF.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'STAFF.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'STAFF.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.teams.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="STAFF.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="team" md-select-id="id" ng-repeat="team in vm.teams.rows">\n <td md-cell ng-if="team.userpic"><img class="avatar" alt="{{team.name}}" ng-src="api/users/{{team.id}}/avatar" /></td>\n <td md-cell ng-if="!team.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{team.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditTeam($event, team)" md-cell class="id ">{{team.id}}</td>\n <td ng-click="vm.createOrEditTeam($event, team)" md-cell class="name ">{{team.name}}</td>\n <td ng-click="vm.createOrEditTeam($event, team)" md-cell class="description ">{{team.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(team, $event )" translate="STAFF.EDIT_TEAM">\n Edit Team\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(team, $event )" translate="STAFF.AGENTADD_TEAM">\n AgentAdd Team\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(team, $event )" translate="STAFF.DELETE_TEAM">\n Delete Team\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'STAFF.PAGE\' | translate}}:\', rowsPerPage: \'{{\'STAFF.ROWSPERPAGE\' | translate}}:\', of: \'{{\'STAFF.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.teams.count}}" md-on-paginate="vm.getTeams" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / TEAM TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD TEAM BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-team-button" ng-click="vm.createOrEditTeam($event)" aria-label="add team" translate translate-attr-aria-label="STAFF.ADD_TEAM">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD TEAM BUTTON --\x3e\n</div>'),e.put("app/main/apps/staff/views/telephones/create/dialog.html",'<md-dialog class="telephone-dialog" aria-label="New Telephone">\n <form name="telephoneForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="STAFF.ACCOUNTNAME">Accountname</label>\n <input type="text" name="fullname" ng-model="vm.telephone.fullname" ng-required="true" autofocus>\n\n <div ng-messages="telephoneForm[\'fullname\'].$error" ng-show="telephoneForm[\'fullname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.ACCOUNTNAME_REQUIRED">Accountname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.USERNAME">Username</label>\n <input type="text" name="name" ng-model="vm.telephone.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" ng-disabled="!vm.newTelephone">\n\n <div class="hint"><span translate="STAFF.HELP.USERNAME"></span></div>\n <div ng-messages="telephoneForm[\'name\'].$error" ng-show="telephoneForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="STAFF.ERRORS.USERNAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Username must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.telephone.email" ng-required="true">\n\n <div ng-messages="telephoneForm[\'email\'].$error" ng-show="telephoneForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="email">\n <span translate="STAFF.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.newTelephone">\n <label translate="STAFF.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.telephone.password" placeholder="Password" ng-pattern="vm.passwordPattern" translate translate-attr-placeholder="STAFF.PASSWORD" required>\n <div ng-messages="telephoneForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="STAFF.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.newTelephone && (vm.newTelephone)">\n <label translate="STAFF.CONFIRM_PASSWORD">Confirm Password</label>\n <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword" required>\n <div ng-messages="telephoneForm.confirmPassword.$error" role="alert" multiple>\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n </div>\n <div ng-message="passwordMatch">\n <span translate="STAFF.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="STAFF.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.telephone.description">\n\n <div ng-messages="telephoneForm[\'description\'].$error" ng-show="telephoneForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.newTelephone" class="md-block">\n <md-switch ng-model="vm.telephone.autointernal" aria-label="AutoInternal"><span translate="STAFF.AUTOINTERNAL">AutoInternal</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="!vm.telephone.autointernal" class="md-block">\n <label translate="STAFF.INTERNAL">Internal</label>\n <input type="text" name="internal" ng-model="vm.telephone.internal" ng-required="true" ng-disabled="!vm.newTelephone">\n\n <div ng-messages="telephoneForm[\'internal\'].$error" ng-show="telephoneForm[\'internal\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.INTERNAL_REQUIRED">Internal field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.newTelephone" class="md-block">\n <md-switch ng-model="vm.telephone.voicemail" aria-label="Voicemail"><span translate="STAFF.VOICEMAIL">Voicemail</span></md-switch>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newTelephone" ng-click="vm.saveTelephone()" class="send-button md-accent md-raised" ng-disabled="telephoneForm.$invalid || telephoneForm.$pristine" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newTelephone" ng-click="vm.addNewTelephone()" class="send-button md-accent md-raised" ng-disabled="telephoneForm.$invalid" aria-label="ADD" translate="STAFF.ADD_TELEPHONE" translate-attr-aria-label="STAFF.ADD_TELEPHONE">\n ADD TELEPHONE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newTelephone" ng-click="vm.deleteTelephone($event)" aria-label="DELETE" translate translate-attr-aria-label="STAFF.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="STAFF.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/telephones/edit/changepassword/changepassword.html",'<md-dialog class="telephone-dialog" aria-label="{{vm.name}}">\n <form name="telephoneForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ \'\n STAFF.CHANGE_PASSWORD\' | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block" ng-if="vm.currentUser.id == vm.telephone.id">\n <label translate="STAFF.OLD_PASSWORD">Old Password</label>\n <input type="password" name="oldPassword" ng-model="vm.oldPassword" placeholder="Password" translate translate-attr-placeholder="STAFF.OLD_PASSWORD" required>\n <div ng-messages="telephoneForm.oldPassword.$error" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.NEW_PASSWORD">New Password</label>\n <input type="password" name="password" ng-model="vm.password" placeholder="Password" translate ng-pattern="vm.passwordPattern" translate-attr-placeholder="STAFF.NEW_PASSWORD" required>\n <div ng-messages="telephoneForm.password.$error" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PASSWORD_REQUIRED">Password field is\n required</span>\n </div>\n\n\n <div ng-message="pattern">\n <span translate="STAFF.ERRORS.SECURE_PASSWORD_PATTERN">Must contain\n at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric\n character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n <div ng-message="oldPasswordMatch">\n <span translate="STAFF.ERRORS.PASSWORD_OLDPASSWORD_MATCH">New password must be different from old one</span>\n </div>\n\n\n\n\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CONFIRM_PASSWORD">Confirm Password</label>\n <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n <div ng-messages="telephoneForm.confirmPassword.$error" role="alert" multiple>\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CONFIRM_REQUIRED">Confirm field is\n required</span>\n </div>\n <div ng-message="passwordMatch">\n <span translate="STAFF.ERRORS.CONFIRM_NOT_MATCH">Your password did\n not match</span>\n </div>\n </div>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.savePassword()" class="send-button md-accent md-raised" ng-disabled="telephoneForm.$invalid || telephoneForm.$pristine" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/telephones/edit/view.html",'<div id="staff-telephone" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-telephones-button md-icon-button" aria-label="Go to telephones" ng-click="vm.gotoTelephones()" translate translate-attr-aria-label="STAFF.GO_TO_TELEPHONES">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="telephone-image" hide-xs>\n <img ng-src="assets/images/business/telephones.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.telephone.id}}\n <span ng-if="vm.telephone.name">{{vm.telephone.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="STAFF.CREATED_AT"></span> <span>{{vm.telephone.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.changepassworddialog(vm.telephone, $event)" class="md-fab md-warn md-icon-button" aria-label="changepassword">\n <md-tooltip><span translate="STAFF.CHANGEPASSWORD_TELEPHONE"></span></md-tooltip>\n <md-icon md-font-icon="icon-key-variant"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveTelephone()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(accountForm.$invalid) || (generalForm.$invalid)" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="STAFF.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="telephone-detail-form-container account md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.ACCOUNT">ACCOUNT</div>\n </div>\n <form name="accountForm" novalidate>\n <md-input-container class="md-block">\n <label translate="STAFF.ACCOUNTNAME">Accountname</label>\n <input type="text" name="fullname" ng-model="vm.telephone.fullname" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="accountForm[\'fullname\'].$error" ng-show="accountForm[\'fullname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.ACCOUNTNAME_REQUIRED">Accountname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.USERNAME">Username</label>\n <input type="text" name="name" ng-model="vm.telephone.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" disabled>\n\n <div class="hint"><span translate="STAFF.HELP.USERNAME"></span></div>\n <div ng-messages="accountForm[\'name\'].$error" ng-show="accountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="STAFF.ERRORS.USERNAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Username must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.telephone.email" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="accountForm[\'email\'].$error" ng-show="accountForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="email">\n <span translate="STAFF.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.telephone.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="accountForm[\'description\'].$error" ng-show="accountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.telephone.phone" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="accountForm[\'phone\'].$error" ng-show="accountForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.MOBILE">Mobile</label>\n <input type="text" name="mobile" ng-model="vm.telephone.mobile" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="accountForm[\'mobile\'].$error" ng-show="accountForm[\'mobile\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.MOBILE_REQUIRED">Mobile field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="STAFF.VOICE">VOICE</span>\n </md-tab-label>\n <md-tab-body>\n <div class="telephone-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container ng-if="!vm.telephone.autointernal" class="md-block">\n <label translate="STAFF.INTERNAL">Internal</label>\n <input type="text" name="internal" ng-model="vm.telephone.internal" ng-required="true" autofocus disabled>\n\n <div ng-messages="generalForm[\'internal\'].$error" ng-show="generalForm[\'internal\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.INTERNAL_REQUIRED">Internal field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.TRANSPORT">Transport</label>\n <md-select name="transport" ng-model="vm.telephone.transport" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'udp\'">udp</md-option>\n <md-option ng-value="\'tcp\'">tcp</md-option>\n <md-option ng-value="\'ws\'">ws</md-option>\n <md-option ng-value="\'wss\'">wss</md-option>\n <md-option ng-value="\'tls\'">tls</md-option>\n </md-select>\n <div class="hint"><span translate="STAFF.HELP.TRANSPORT"></span></div>\n <div ng-messages="generalForm[\'transport\'].$error" ng-show="generalForm[\'transport\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.TRANSPORT_REQUIRED">Transport field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.NAT">NAT</label>\n <md-select name="nat" ng-model="vm.telephone.nat" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'force_rport\'">force_rport</md-option>\n <md-option ng-value="\'comedia\'">comedia</md-option>\n <md-option ng-value="\'yes\'">yes</md-option>\n <md-option ng-value="\'no\'">no</md-option>\n <md-option ng-value="\'never\'">never</md-option>\n <md-option ng-value="\'route\'">route</md-option>\n </md-select>\n <div class="hint"><span translate="STAFF.HELP.NAT"></span></div>\n <div ng-messages="generalForm[\'nat\'].$error" ng-show="generalForm[\'nat\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.NAT_REQUIRED">NAT field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.ALLOWCODECS">AllowCodecs</label>\n <md-select name="allow" ng-model="vm.telephone.allow" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'ulaw\'">ulaw</md-option>\n <md-option ng-value="\'alaw\'">alaw</md-option>\n <md-option ng-value="\'gsm\'">gsm</md-option>\n <md-option ng-value="\'g722\'">g722</md-option>\n <md-option ng-value="\'g729\'">g729</md-option>\n <md-option ng-value="\'opus\'">opus</md-option>\n <md-option ng-value="\'h264\'">h264</md-option>\n </md-select>\n <div class="hint"><span translate="STAFF.HELP.ALLOWCODECS"></span></div>\n <div ng-messages="generalForm[\'allow\'].$error" ng-show="generalForm[\'allow\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.ALLOWCODECS_REQUIRED">AllowCodecs field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CALLERID">CallerId</label>\n <input type="text" name="callerid" ng-model="vm.telephone.callerid" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'callerid\'].$error" ng-show="generalForm[\'callerid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CALLERID_REQUIRED">CallerId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.telephone.context" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts" ng-disabled="context.canSelect === false">{{ context.name }}</md-option>\n </md-select>\n <div ng-messages="generalForm[\'context\'].$error" ng-show="generalForm[\'context\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CALLGROUP">Callgroup</label>\n <input type="text" name="callgroup" ng-model="vm.telephone.callgroup" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.CALLGROUP"></span></div>\n <div ng-messages="generalForm[\'callgroup\'].$error" ng-show="generalForm[\'callgroup\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CALLGROUP_REQUIRED">Callgroup field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.PICKUPGROUP">Pickupgroup</label>\n <input type="text" name="pickupgroup" ng-model="vm.telephone.pickupgroup" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.PICKUPGROUP"></span></div>\n <div ng-messages="generalForm[\'pickupgroup\'].$error" ng-show="generalForm[\'pickupgroup\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PICKUPGROUP_REQUIRED">Pickupgroup field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.VIDEOSUPPORT">Videosupport</label>\n <md-select name="videosupport" ng-model="vm.telephone.videosupport" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'yes\'">Yes</md-option>\n <md-option ng-value="\'no\'">No</md-option>\n <md-option ng-value="\'always\'">Always</md-option>\n </md-select>\n <div ng-messages="generalForm[\'videosupport\'].$error" ng-show="generalForm[\'videosupport\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.VIDEOSUPPORT_REQUIRED">Videosupport field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.ENCRYPTION">Encryption</label>\n <md-select name="encryption" ng-model="vm.telephone.encryption" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'yes\'">yes</md-option>\n <md-option ng-value="\'no\'">no</md-option>\n </md-select>\n <div class="hint"><span translate="STAFF.HELP.ENCRYPTION"></span></div>\n <div ng-messages="generalForm[\'encryption\'].$error" ng-show="generalForm[\'encryption\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.ENCRYPTION_REQUIRED">Encryption field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/staff/views/telephones/telephones.html",'<div id="telephones" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-account-multiple" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="STAFF.TELEPHONES">Telephones</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="STAFF.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedTelephones.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedTelephones =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="STAFF.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-telephones-count">\n <span>{{vm.selectedTelephones.length}}</span>\n <span translate="STAFF.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="STAFF.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllTelephones()" translate="STAFF.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectTelephones()" translate="STAFF.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedTelephones" csv-label="true" filename="telephones.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedTelephones($event)" aria-label="delete selected" translate translate-attr-label="STAFF.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- TELEPHONE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedTelephones" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTelephones">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="fullname">{{ \'STAFF.ACCOUNTNAME\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'STAFF.USERNAME\' | translate }}</th>\n <th md-column md-order-by="email">{{ \'STAFF.EMAIL\' | translate }}</th>\n <th md-column md-order-by="internal">{{ \'STAFF.INTERNAL\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.telephones.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="STAFF.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="telephone" md-select-id="id" ng-repeat="telephone in vm.telephones.rows">\n <td md-cell ng-if="telephone.userpic"><img class="avatar" alt="{{telephone.name}}" ng-src="api/users/{{telephone.id}}/avatar" /></td>\n <td md-cell ng-if="!telephone.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{telephone.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(telephone, ev) : vm.createOrEditTelephone($event, telephone)" md-cell class="fullname font-weight-600">{{telephone.fullname}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(telephone, ev) : vm.createOrEditTelephone($event, telephone)" md-cell class="name ">{{telephone.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(telephone, ev) : vm.createOrEditTelephone($event, telephone)" md-cell class="email ">{{telephone.email}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(telephone, ev) : vm.createOrEditTelephone($event, telephone)" md-cell class="internal ">{{telephone.internal}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(telephone, $event )" translate="STAFF.EDIT_TELEPHONE">\n Edit Telephone\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(telephone, $event )" translate="STAFF.DELETE_TELEPHONE">\n Delete Telephone\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'STAFF.PAGE\' | translate}}:\', rowsPerPage: \'{{\'STAFF.ROWSPERPAGE\' | translate}}:\', of: \'{{\'STAFF.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.telephones.count}}" md-on-paginate="vm.getTelephones" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / TELEPHONE TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD TELEPHONE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-telephone-button" ng-click="vm.createOrEditTelephone($event)" aria-label="add telephone" translate translate-attr-aria-label="STAFF.ADD_TELEPHONE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD TELEPHONE BUTTON --\x3e\n</div>'),e.put("app/main/apps/staff/views/userProfiles/create/dialog.html",'<md-dialog class="userProfile-dialog" aria-label="New UserProfile">\n <form name="userProfileForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="STAFF.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.userProfile.name" ng-required="true" autofocus ng-disabled="!vm.newUserProfile">\n\n <div ng-messages="userProfileForm[\'name\'].$error" ng-show="userProfileForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.userProfile.description">\n\n <div ng-messages="userProfileForm[\'description\'].$error" ng-show="userProfileForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CRUDPERMISSIONS">CrudPermissions</label>\n <md-select name="crudPermissions" ng-model="vm.userProfile.crudPermissions" multiple required>\n\n <md-option ng-value="\'r\'" disabled> {{ \'STAFF.READ_PERMISSION\' | translate }} </md-option>\n\n <md-option ng-value="\'e\'"> {{ \'STAFF.EDIT_PERMISSION\' | translate }} </md-option>\n\n <md-option ng-value="\'d\'"> {{ \'STAFF.DELETE_PERMISSION\' | translate }} </md-option>\n </md-select>\n <div ng-messages="userProfileForm[\'crudPermissions\'].$error" ng-show="userProfileForm[\'crudPermissions\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CRUDPERMISSIONS_REQUIRED">CrudPermissions field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.privacyEnabled" aria-label="Mask_Sensitive_Data"><span translate="STAFF.MASK_SENSITIVE_DATA">Mask_Sensitive_Data</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.MASK_SENSITIVE_DATA"></span></div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newUserProfile" ng-click="vm.saveUserProfile()" class="send-button md-accent md-raised" ng-disabled="userProfileForm.$invalid || userProfileForm.$pristine" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newUserProfile" ng-click="vm.addNewUserProfile()" class="send-button md-accent md-raised" ng-disabled="userProfileForm.$invalid" aria-label="ADD" translate="STAFF.ADD_USERPROFILE" translate-attr-aria-label="STAFF.ADD_USERPROFILE">\n ADD USERPROFILE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newUserProfile" ng-click="vm.deleteUserProfile($event)" aria-label="DELETE" translate translate-attr-aria-label="STAFF.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="STAFF.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/userProfiles/edit/clone/clone.html",'<md-dialog class="userProfile-dialog" aria-label="Clone UserProfile">\n <form name="userProfileForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="STAFF.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.userProfile.name" ng-required="true" autofocus ng-disabled="!vm.newUserProfile">\n\n <div ng-messages="userProfileForm[\'name\'].$error" ng-show="userProfileForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.userProfile.description">\n\n <div ng-messages="userProfileForm[\'description\'].$error" ng-show="userProfileForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CRUDPERMISSIONS">CrudPermissions</label>\n <md-select name="crudPermissions" ng-model="vm.userProfile.crudPermissions" multiple required>\n\n <md-option ng-value="\'r\'" disabled> {{ \'STAFF.READ_PERMISSION\' | translate }} </md-option>\n\n <md-option ng-value="\'e\'"> {{ \'STAFF.EDIT_PERMISSION\' | translate }} </md-option>\n\n <md-option ng-value="\'d\'"> {{ \'STAFF.DELETE_PERMISSION\' | translate }} </md-option>\n </md-select>\n <div ng-messages="userProfileForm[\'crudPermissions\'].$error" ng-show="userProfileForm[\'crudPermissions\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CRUDPERMISSIONS_REQUIRED">CrudPermissions field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.privacyEnabled" aria-label="Mask_Sensitive_Data"><span translate="STAFF.MASK_SENSITIVE_DATA">Mask_Sensitive_Data</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.MASK_SENSITIVE_DATA"></span></div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <md-button type="submit" ng-click="vm.cloneUserProfile()" class="send-button md-accent md-raised" ng-disabled="userProfileForm.$invalid" aria-label="CLONE" translate="STAFF.CLONE_USERPROFILE" translate-attr-aria-label="STAFF.CLONE_USERPROFILE">\n CLONE USERPROFILE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/userProfiles/edit/permissionsmanage/permissionsmanage.html",'<md-dialog class="userProfile-dialog" aria-label="userProfile">\n <form name="userProfileForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2>{{vm.title}}</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog($event)">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <div layout="column" class="padding-bottom-10">\n <div layout="row" class="padding-bottom-10">\n <md-input-container flex class="no-margin">\n <label translate="STAFF.SECTIONS">Sections</label>\n <md-select name="sections" ng-model="vm.selectedSection" placeholder="{{\'STAFF.PERMISSIONS_SELECT_SECTION\' | translate}}" ng-change="vm.onChangeSection()" required>\n <md-option ng-value="subsection" ng-repeat="subsection in vm.subsections" ng-selected="{{vm.subsections.length === 1 ? \'true\' : \'false\'}}">{{subsection.translate | translate}}</md-option>\n </md-select>\n </md-input-container>\n <div layout="row" ng-show="vm.selectedSection" class="margin-left-10">\n <md-button ng-switch="vm.selectedSection.enabled" class="md-icon-button md-fab md-mini size-8 padding-10" ng-class="vm.selectedSection.enabled ? \'blue-500-bg\' : \'grey-A400-bg\'" ng-click="vm.onChangeVisibility()" aria-label="Visibility">\n <md-icon ng-switch-when="true" md-font-icon="icon-eye" aria-label="Visible section">\n <md-tooltip>{{\'STAFF.PERMISSIONS_SECTION_HIDE\' | translate}}</md-tooltip>\n </md-icon>\n <md-icon ng-switch-when="false" md-font-icon="icon-eye-off" aria-label="Hidden section">\n <md-tooltip>{{\'STAFF.PERMISSIONS_SECTION_SHOW\' | translate}}</md-tooltip>\n </md-icon>\n </md-button>\n <div>\n <md-button class="md-icon-button md-fab md-mini size-8 green-A700-bg no-margin" ng-disabled="true">\n <md-icon md-font-icon="icon-monitor" class="md-background-fg" aria-label="Read permission">\n <md-tooltip>{{\'STAFF.READ_PERMISSION\' | translate}}</md-tooltip>\n </md-icon>\n </md-button>\n <md-button class="md-icon-button md-fab md-mini size-8 no-margin" ng-class="vm.selectedSection.allowEdit ? \'green-A700-bg\' : \'grey-A400-bg\'" ng-click="vm.setPermission(\'edit\')">\n <md-icon md-font-icon="icon-pencil" aria-label="Edit permission">\n <md-tooltip>{{\'STAFF.EDIT_PERMISSION\' | translate}}</md-tooltip>\n </md-icon>\n </md-button>\n <md-button class="md-icon-button md-fab md-mini size-8 no-margin" ng-class="vm.selectedSection.allowDelete ? \'green-A700-bg\' : \'grey-A400-bg\'" ng-click="vm.setPermission(\'delete\')">\n <md-icon md-font-icon="icon-delete" aria-label="Delete permission">\n <md-tooltip>{{\'STAFF.DELETE_PERMISSION\' | translate}}</md-tooltip>\n </md-icon>\n </md-button>\n </div>\n </div>\n </div>\n <div layout="row" ng-show="vm.selectedSection" class="margin-left-10" ng-if="!vm.selectedSection.permissions || vm.selectedSection.permissions.association">\n <md-switch ng-model="vm.selectedSection.autoAssociation" class="no-margin padding-right-10" aria-label="Auto association" ng-change="vm.onChangeAutoAssociation()">\n </md-switch>\n <p class="no-margin font-size-12 line-height-30">{{\'STAFF.PERMISSIONS_AUTO_ASSOCIATION_INFO\' | translate}}</p>\n </div>\n <div layout="row" ng-show="vm.selectedSection && vm.selectedSection.title === \'Reports\' && !vm.selectedSection.autoAssociation" class="margin-bottom-10 margin-top-30" ng-if="!vm.selectedSection.permissions || vm.selectedSection.permissions.association">\n <md-input-container flex class="no-margin">\n <label translate="STAFF.REPORT_TYPE">Report Type</label>\n <md-select name="type" ng-model="vm.selectedSection.reportType" placeholder="{{\'STAFF.PERMISSIONS_SELECT_REPORT_TYPE\' | translate}}" ng-change="vm.onChangeReportType()" required>\n <md-option ng-value="\'default\'">Default</md-option>\n <md-option ng-value="\'custom\'">Custom</md-option>\n </md-select>\n </md-input-container>\n </div>\n <div ng-show="vm.selectedSection && vm.selectedSection.title === \'Dashboards\'" class="user-profile-section-help margin-bottom-10 margin-top-20">\n <md-icon md-font-icon="icon-help" aria-label="Dashboards help"></md-icon>\n <span class="no-margin font-size-12 line-height-30" translate="STAFF.HELP.CUSTOM_DASHBOARDS_PERMISSIONS"></span>\n </div>\n </div>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" ng-if="!vm.selectedSection.permissions || vm.selectedSection.permissions.association" ng-hide="vm.selectedSection.autoAssociation"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center">\n <div>\n <md-icon md-font-icon="icon-information-outline" aria-label="Delete permission"></md-icon>\n <span class="no-margin font-size-12 line-height-30" translate="STAFF.HELP.SAVE_PERMISSIONS"></span>\n </div>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveSection()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/userProfiles/edit/view.html",'<div id="staff-userProfile" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-userProfiles-button md-icon-button" aria-label="Go to userProfiles" ng-click="vm.gotoUserProfiles()" translate translate-attr-aria-label="STAFF.GO_TO_USERPROFILES">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="userProfile-image" hide-xs>\n <img ng-src="assets/images/business/userProfiles.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.userProfile.id}}\n <span ng-if="vm.userProfile.name">{{vm.userProfile.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="STAFF.CREATED_AT"></span> <span>{{vm.userProfile.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.clonedialog(vm.userProfile, $event)" class="md-fab md-amber-500-bg md-icon-button" aria-label="clone">\n <md-tooltip><span translate="STAFF.CLONE_USERPROFILE"></span></md-tooltip>\n <md-icon md-font-icon="icon-content-duplicate"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveUserProfile()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (modulesForm.$invalid) || (download_permissionsForm.$invalid)" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="STAFF.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="userProfile-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="STAFF.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.userProfile.name" ng-required="true" autofocus disabled>\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.userProfile.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CRUDPERMISSIONS">CrudPermissions</label>\n <md-select name="crudPermissions" ng-model="vm.userProfile.crudPermissions" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'r\'" disabled> {{ \'STAFF.READ_PERMISSION\' | translate }} </md-option>\n\n <md-option ng-value="\'e\'"> {{ \'STAFF.EDIT_PERMISSION\' | translate }} </md-option>\n\n <md-option ng-value="\'d\'"> {{ \'STAFF.DELETE_PERMISSION\' | translate }} </md-option>\n </md-select>\n <div ng-messages="generalForm[\'crudPermissions\'].$error" ng-show="generalForm[\'crudPermissions\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CRUDPERMISSIONS_REQUIRED">CrudPermissions field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.privacyEnabled" aria-label="Mask_Sensitive_Data" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.MASK_SENSITIVE_DATA">Mask_Sensitive_Data</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.MASK_SENSITIVE_DATA"></span></div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="STAFF.PERMISSIONS">PERMISSIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="userProfile-detail-form-container modules md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.MODULES">MODULES</div>\n </div>\n <div ng-controller="UserProfilePermissionsController as vm_pc" ng-init="vm_pc.init(vm.userProfile, vm.license)" class="userProfile-detail-form-container">\n <md-grid-list flex md-cols-gt-xs="2" md-cols-gt-sm="2" md-cols-gt-md="4" md-cols-gt-lg="6" md-row-height-gt-xs="2:1" md-row-height-gt-sm="3:1" md-row-height-gt-md="3:1" gt-xs-gutter="4px" gt-sm-gutter="4px" gt-md-gutter="16px" gt-lg-gutter="16px">\n <md-grid-tile ng-repeat="father in vm_pc.modules" ng-if="vm_pc.userProfile.role !== \'admin\' && !father.permissions.hidden" md-colspan="2">\n <md-card flex-xs flex-gt-xs="90" layout="column" no-padding no-margin>\n <md-card-header>\n <md-card-avatar>\n <md-icon class="md-avatar-icon auto-size" md-font-icon="{{father.icon}}" ng-class="{ true: father.status.color }[true]">\n <md-tooltip>{{ father.status.info }}</md-tooltip>\n </md-icon>\n </md-card-avatar>\n <md-card-header-text layout-align="center start">\n <span class="md-title" translate="{{father.translate}}">{{ father.title }}</span>\n </md-card-header-text>\n <md-card-actions class="no-margin" layout="row" ng-init="vm_pc.checkSectionResources(father)" ng-if="father.status.tag != \'unlicensed\'">\n <md-switch class="auto-height no-margin" ng-model="father.allResourcesEnabled" ng-change="vm_pc.onChangeEnableAllResources(father)" aria-label="Enable all"></md-switch>\n <md-button class="md-mini auto-width" aria-label="Manage" ng-click="vm_pc.manageResources(father)" ng-hide="father.permissions && !father.permissions.association">\n <md-tooltip>{{\'STAFF.PERMISSIONS_MANAGE\' | translate}}\n </md-tooltip>\n <md-icon md-font-icon="icon-cog"></md-icon>\n </md-button>\n </md-card-actions>\n <md-card-header-text ng-if="father.status.tag === \'unlicensed\'" layout-align="center end">\n <span class="md-subhead red-A700-fg">{{ father.status.name }}</span>\n </md-card-header-text>\n </md-card-header>\n </md-card>\n </md-grid-tile>\n </md-grid-list>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="STAFF.DOWNLOADS">DOWNLOADS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="userProfile-detail-form-container download_permissions md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.DOWNLOAD_PERMISSIONS">DOWNLOAD_PERMISSIONS</div>\n </div>\n <form name="download_permissionsForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.downloadAttachments" aria-label="Attachments" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ATTACHMENTS">Attachments</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.downloadCallySquareRecordings" aria-label="CallySquare_Recordings" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.CALLYSQUARE_RECORDINGS">CallySquare_Recordings</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.downloadContactManagerLists" aria-label="Contact_Manager_Lists" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.CONTACT_MANAGER_LISTS">Contact_Manager_Lists</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.downloadJscriptySessions" aria-label="Jscripty_Sessions" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.JSCRIPTY_SESSIONS">Jscripty_Sessions</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.downloadOmnichannelInteractions" aria-label="Omnichannel_Interactions" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.OMNICHANNEL_INTERACTIONS">Omnichannel_Interactions</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.downloadScreenRecordings" aria-label="Screen_Recordings" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.SCREEN_RECORDINGS">Screen_Recordings</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.downloadVoiceRecordings" aria-label="Voice_Recordings" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.VOICE_RECORDINGS">Voice_Recordings</span></md-switch>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/staff/views/userProfiles/userProfiles.html",'<div id="userProfiles" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-account-multiple" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="STAFF.USERPROFILES">UserProfiles</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="STAFF.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedUserProfiles.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedUserProfiles =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="STAFF.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-userProfiles-count">\n <span>{{vm.selectedUserProfiles.length}}</span>\n <span translate="STAFF.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="STAFF.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllUserProfiles()" translate="STAFF.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectUserProfiles()" translate="STAFF.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedUserProfiles" csv-label="true" filename="userProfiles.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedUserProfiles($event)" aria-label="delete selected" translate translate-attr-label="STAFF.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- USERPROFILE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedUserProfiles" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getUserProfiles">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'STAFF.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'STAFF.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'STAFF.DESCRIPTION\' | translate }}</th>\n <th md-column md-order-by="crudPermissions">{{ \'STAFF.CRUDPERMISSIONS\' | translate }}</th>\n <th md-column md-order-by="privacyEnabled">{{ \'STAFF.MASK_SENSITIVE_DATA\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.userProfiles.rows.length">\n <td md-cell colspan="6">\n <div layout="row" layout-align="center center">\n <span translate="STAFF.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="userProfile" md-select-id="id" ng-repeat="userProfile in vm.userProfiles.rows">\n <td md-cell ng-if="userProfile.userpic"><img class="avatar" alt="{{userProfile.name}}" ng-src="api/users/{{userProfile.id}}/avatar" /></td>\n <td md-cell ng-if="!userProfile.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{userProfile.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(userProfile, ev) : vm.createOrEditUserProfile($event, userProfile)" md-cell class="id ">{{userProfile.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(userProfile, ev) : vm.createOrEditUserProfile($event, userProfile)" md-cell class="name ">{{userProfile.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(userProfile, ev) : vm.createOrEditUserProfile($event, userProfile)" md-cell class="description ">{{userProfile.description}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(userProfile, ev) : vm.createOrEditUserProfile($event, userProfile)" md-cell class="crudPermissions ">{{userProfile.selectedcrudPermissions}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(userProfile, ev) : vm.createOrEditUserProfile($event, userProfile)" md-cell class="privacyEnabled ">\n <md-icon md-colors="{color: {{userProfile.privacyEnabled ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{userProfile.privacyEnabled ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(userProfile, $event )" translate="STAFF.EDIT_USERPROFILE">\n Edit UserProfile\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.clonedialog(userProfile, $event )" translate="STAFF.CLONE_USERPROFILE">\n clone UserProfile\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.role === \'admin\' && user.id !== vm.currentUser.id">\n\n <md-button ng-click="vm.deleteconfirm(userProfile, $event )" translate="STAFF.DELETE_USERPROFILE">\n Delete UserProfile\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'STAFF.PAGE\' | translate}}:\', rowsPerPage: \'{{\'STAFF.ROWSPERPAGE\' | translate}}:\', of: \'{{\'STAFF.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.userProfiles.count}}" md-on-paginate="vm.getUserProfiles" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / USERPROFILE TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD USERPROFILE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-userProfile-button" ng-click="vm.createOrEditUserProfile($event)" aria-label="add userProfile" translate translate-attr-aria-label="STAFF.ADD_USERPROFILE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD USERPROFILE BUTTON --\x3e\n</div>'),e.put("app/main/apps/staff/views/users/create/dialog.html",'<md-dialog class="user-dialog" aria-label="New User">\n <form name="userForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="STAFF.ROLE">Role</label>\n <md-select name="role" ng-model="vm.user.role" autofocus required ng-disabled="!vm.newUser">\n <md-option ng-value="\'admin\'">Admin</md-option>\n <md-option ng-value="\'user\'">User</md-option>\n </md-select>\n <div ng-messages="userForm[\'role\'].$error" ng-show="userForm[\'role\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.ROLE_REQUIRED">Role field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.user.role === \'user\'" class="md-block">\n <label translate="STAFF.USERPROFILE">UserProfile</label>\n <md-select name="userProfileId" ng-model="vm.user.userProfileId" required>\n <md-option ng-value="userProfileId.id" ng-repeat="userProfileId in vm.userProfiles" ng-disabled="userProfileId.canSelect === false">{{ userProfileId.name }}</md-option>\n </md-select>\n <div ng-messages="userForm[\'userProfileId\'].$error" ng-show="userForm[\'userProfileId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.USERPROFILE_REQUIRED">UserProfile field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.FULLNAME">Fullname</label>\n <input type="text" name="fullname" ng-model="vm.user.fullname" ng-required="true">\n\n <div ng-messages="userForm[\'fullname\'].$error" ng-show="userForm[\'fullname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.FULLNAME_REQUIRED">Fullname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.USERNAME">Username</label>\n <input type="text" name="name" ng-model="vm.user.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" ng-disabled="!vm.newUser">\n\n <div class="hint"><span translate="STAFF.HELP.USERNAME"></span></div>\n <div ng-messages="userForm[\'name\'].$error" ng-show="userForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="STAFF.ERRORS.USERNAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Username must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.user.email" ng-required="true">\n\n <div ng-messages="userForm[\'email\'].$error" ng-show="userForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="email">\n <span translate="STAFF.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.newUser">\n <label translate="STAFF.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.user.password" placeholder="Password" ng-pattern="vm.passwordPattern" translate translate-attr-placeholder="STAFF.PASSWORD" required>\n <div ng-messages="userForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="STAFF.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.newUser && (vm.newUser)">\n <label translate="STAFF.CONFIRM_PASSWORD">Confirm Password</label>\n <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword" required>\n <div ng-messages="userForm.confirmPassword.$error" role="alert" multiple>\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n </div>\n <div ng-message="passwordMatch">\n <span translate="STAFF.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="STAFF.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.user.description">\n\n <div ng-messages="userForm[\'description\'].$error" ng-show="userForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.newUser" class="md-block">\n <md-switch ng-model="vm.user.autointernal" aria-label="AutoInternal"><span translate="STAFF.AUTOINTERNAL">AutoInternal</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="!vm.user.autointernal" class="md-block">\n <label translate="STAFF.INTERNAL">Internal</label>\n <input type="text" name="internal" ng-model="vm.user.internal" ng-required="true" ng-disabled="!vm.newUser">\n\n <div ng-messages="userForm[\'internal\'].$error" ng-show="userForm[\'internal\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.INTERNAL_REQUIRED">Internal field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newUser" ng-click="vm.saveUser()" class="send-button md-accent md-raised" ng-disabled="userForm.$invalid || userForm.$pristine" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newUser" ng-click="vm.addNewUser()" class="send-button md-accent md-raised" ng-disabled="userForm.$invalid" aria-label="ADD" translate="STAFF.ADD_USER" translate-attr-aria-label="STAFF.ADD_USER">\n ADD USER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newUser" ng-click="vm.deleteUser($event)" aria-label="DELETE" translate translate-attr-aria-label="STAFF.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="STAFF.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/users/edit/apikeymanager/apikeymanager.html",'<md-dialog class="user-dialog" aria-label="{{vm.name}}">\n <form name="userForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ \'\n STAFF.MANAGE_API_KEY\' | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-card layout-fill layout-padding>\n <textarea class="api-key-area" ng-model="vm.user.apiKey" rows="6" disabled></textarea>\n </md-card>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.generateApiKey()" class="send-button md-accent md-raised" aria-label="Generate" translate="{{ vm.user.apiKey === \'N/A\' ? \'STAFF.GENERATE\' : \'STAFF.REGENERATE\' }}" translate-attr-aria-label="STAFF.GENERATE">\n Generate\n </md-button>\n <md-button type="submit" ng-click="vm.removeApiKey()" class="send-button md-accent md-raised" aria-label="Remove" translate="STAFF.REMOVE" translate-attr-aria-label="STAFF.DELETE">\n Delete\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/users/edit/changepassword/changepassword.html",'<md-dialog class="user-dialog" aria-label="{{vm.name}}">\n <form name="userForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ \'\n STAFF.CHANGE_PASSWORD\' | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block" ng-if="vm.currentUser.id == vm.user.id">\n <label translate="STAFF.OLD_PASSWORD">Old Password</label>\n <input type="password" name="oldPassword" ng-model="vm.oldPassword" placeholder="Password" translate translate-attr-placeholder="STAFF.OLD_PASSWORD" required>\n <div ng-messages="userForm.oldPassword.$error" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.NEW_PASSWORD">New Password</label>\n <input type="password" name="password" ng-model="vm.password" placeholder="Password" translate ng-pattern="vm.passwordPattern" translate-attr-placeholder="STAFF.NEW_PASSWORD" required>\n <div ng-messages="userForm.password.$error" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PASSWORD_REQUIRED">Password field is\n required</span>\n </div>\n\n\n <div ng-message="pattern">\n <span translate="STAFF.ERRORS.SECURE_PASSWORD_PATTERN">Must contain\n at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric\n character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n <div ng-message="oldPasswordMatch">\n <span translate="STAFF.ERRORS.PASSWORD_OLDPASSWORD_MATCH">New password must be different from old one</span>\n </div>\n\n\n\n\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CONFIRM_PASSWORD">Confirm Password</label>\n <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n <div ng-messages="userForm.confirmPassword.$error" role="alert" multiple>\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CONFIRM_REQUIRED">Confirm field is\n required</span>\n </div>\n <div ng-message="passwordMatch">\n <span translate="STAFF.ERRORS.CONFIRM_NOT_MATCH">Your password did\n not match</span>\n </div>\n </div>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.savePassword()" class="send-button md-accent md-raised" ng-disabled="userForm.$invalid || userForm.$pristine" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/users/edit/view.html",'<div id="staff-user" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-users-button md-icon-button" aria-label="Go to users" ng-click="vm.gotoUsers()" translate translate-attr-aria-label="STAFF.GO_TO_USERS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="user-image" hide-xs>\n <img ng-src="assets/images/business/users.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.user.id}}\n <span ng-if="vm.user.name">{{vm.user.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="STAFF.CREATED_AT"></span> <span>{{vm.user.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.apikeymanagerdialog(vm.user, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="apikeymanager">\n <md-tooltip><span translate="STAFF.APIKEYMANAGER_USER"></span></md-tooltip>\n <md-icon md-font-icon="fab fa-hubspot"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.changepassworddialog(vm.user, $event)" class="md-fab md-warn md-icon-button" aria-label="changepassword">\n <md-tooltip><span translate="STAFF.CHANGEPASSWORD_USER"></span></md-tooltip>\n <md-icon md-font-icon="icon-key-variant"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveUser()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(personal_infoForm.$invalid) || (security_suiteForm.$invalid) || (change_avatarForm.$invalid) || (generalForm.$invalid)" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="STAFF.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="user-detail-form-container personal_info md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.PERSONAL_INFO">PERSONAL_INFO</div>\n </div>\n <form name="personal_infoForm" novalidate>\n <md-input-container class="md-block">\n <label translate="STAFF.ROLE">Role</label>\n <md-select name="role" ng-model="vm.user.role" autofocus required disabled>\n <md-option ng-value="\'admin\'">Admin</md-option>\n <md-option ng-value="\'user\'">User</md-option>\n </md-select>\n <div ng-messages="personal_infoForm[\'role\'].$error" ng-show="personal_infoForm[\'role\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.ROLE_REQUIRED">Role field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.user.role === \'user\'" class="md-block">\n <label translate="STAFF.USERPROFILE">UserProfile</label>\n <md-select name="userProfileId" ng-model="vm.user.userProfileId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="userProfileId.id" ng-repeat="userProfileId in vm.userProfiles" ng-disabled="userProfileId.canSelect === false">{{ userProfileId.name }}</md-option>\n </md-select>\n <div ng-messages="personal_infoForm[\'userProfileId\'].$error" ng-show="personal_infoForm[\'userProfileId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.USERPROFILE_REQUIRED">UserProfile field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.FULLNAME">Fullname</label>\n <input type="text" name="fullname" ng-model="vm.user.fullname" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="personal_infoForm[\'fullname\'].$error" ng-show="personal_infoForm[\'fullname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.FULLNAME_REQUIRED">Fullname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.USERNAME">Username</label>\n <input type="text" name="name" ng-model="vm.user.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" disabled>\n\n <div class="hint"><span translate="STAFF.HELP.USERNAME"></span></div>\n <div ng-messages="personal_infoForm[\'name\'].$error" ng-show="personal_infoForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="STAFF.ERRORS.USERNAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Username must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.user.email" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="personal_infoForm[\'email\'].$error" ng-show="personal_infoForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="email">\n <span translate="STAFF.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.user.phone" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="personal_infoForm[\'phone\'].$error" ng-show="personal_infoForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.MOBILE">Mobile</label>\n <input type="text" name="mobile" ng-model="vm.user.mobile" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="personal_infoForm[\'mobile\'].$error" ng-show="personal_infoForm[\'mobile\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.MOBILE_REQUIRED">Mobile field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.user.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="personal_infoForm[\'description\'].$error" ng-show="personal_infoForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="user-detail-form-container security_suite md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.SECURITY_SUITE">SECURITY_SUITE</div>\n </div>\n <form name="security_suiteForm" novalidate>\n <md-input-container ng-if="vm.user.passwordResetAt != null" class="md-block">\n <label translate="STAFF.LAST_PASSWORD_RESET_AT">Last_Password_Reset_At</label>\n <input type="text" name="passwordResetAt" ng-model="vm.user.passwordResetAt" autofocus disabled>\n\n <div class="hint"><span translate="STAFF.HELP.LAST_PASSWORD_RESET_AT"></span></div>\n <div ng-messages="security_suiteForm[\'passwordResetAt\'].$error" ng-show="security_suiteForm[\'passwordResetAt\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.LAST_PASSWORD_RESET_AT_REQUIRED">Last_Password_Reset_At field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.user.passwordResetAt == null" class="md-block">\n <label translate="STAFF.NO_PASSWORD_CHANGE">No_Password_Change</label>\n <input type="text" name="passwordResetAt" ng-model="vm.user.passwordResetAt" disabled>\n\n <div ng-messages="security_suiteForm[\'passwordResetAt\'].$error" ng-show="security_suiteForm[\'passwordResetAt\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.NO_PASSWORD_CHANGE_REQUIRED">No_Password_Change field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.APIKEY">ApiKey</label>\n <div layout="row" layout-align="center center">\n <button class="md-button md-fab md-mini md-primary" ngclipboard data-clipboard-target="#copytoclipboard-apiKey" ngclipboard-success="vm.alert({title: \'copied to clipboard\', msg: \'API Key copied!\' });" ngclipboard-error="vm.alert({title: \'error\', msg: \'copy to clipboard failed\'});">\n <md-icon md-font-icon="icon-clipboard-text"></md-icon>\n </button>\n <input class="md-input" type="text" id="copytoclipboard-apiKey" name="apiKey" ng-model="vm.user.apiKey" ng-readonly="true">\n </div>\n <div class="hint"><span translate="STAFF.HELP.APIKEY"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.user.id != vm.currentUser.id && vm.currentUser.role == \'admin\'" class="md-block">\n <md-switch ng-model="vm.user.disabled" aria-label="Disabled" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.DISABLED">Disabled</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.DISABLED"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.user.id != vm.currentUser.id && vm.currentUser.role == \'admin\' && vm.user.disabled == 0" class="md-block">\n <md-switch ng-model="vm.user.blocked" aria-label="Blocked" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.BLOCKED">Blocked</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.BLOCKED"></span></div>\n </md-input-container>\n\n </form>\n </div>\n <div class="user-detail-form-container change_avatar md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.CHANGE_AVATAR">CHANGE_AVATAR</div>\n </div>\n <div ng-controller="Userchange_avatarController as vm_ca" ng-init="vm_ca.init(vm.user, vm.crudPermissions)" class="user-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="user-image-uploader" flow-init="vm_ca.ngFlowOptions" flow-name="vm_ca.ngFlow.flow" flow-files-submitted="vm_ca.upload()" flow-file-added="vm_ca.fileAdded($file)" flow-file-success="vm_ca.fileSuccess($file, $message)" flow-complete="vm_ca.uploadComplete()" flow-drop flow-drag-enter="vm_ca.dropping=true" flow-drag-leave="vm_ca.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n <div class="drop-text hint-text" layout="row" layout-align="center center">\n <span translate="EC.DROP_TO_UPLOAD">Drop to upload</span>\n </div>\n\n <div class="upload-button" layout="column" layout-align="center center">\n <md-button class="md-accent md-raised" flow-btn ng-disabled="!vm_ca.crudPermissions.canEdit">\n Upload\n </md-button>\n <span class="secondary-text mt-8">You can also drop images here to upload. Only PNG, JPG - Max. 8MB</span>\n </div>\n\n <div layout="row" layout-align="start start" layout-wrap>\n <div ng-repeat="change_avatarimage in vm_ca.user.images" ng-switch="change_avatarimage.type">\n <div class="user-image uploading" ng-switch-when="uploading" layout="row" layout-align="center center">\n <div class="overlay" layout="column" layout-align="center center">\n <md-progress-linear md-mode="determinate" value="{{change_avatarimage.file.progress() * 100}}">\n </md-progress-linear>\n </div>\n <img class="media" flow-img="change_avatarimage.file">\n </div>\n\n <div class="user-image" ng-switch-when="image" layout="row" layout-align="center center">\n <img class="media" ng-src="{{change_avatarimage.url}}">\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="STAFF.VOICE">VOICE</span>\n </md-tab-label>\n <md-tab-body>\n <div class="user-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container ng-if="!vm.user.autointernal" class="md-block">\n <label translate="STAFF.INTERNAL">Internal</label>\n <input type="text" name="internal" ng-model="vm.user.internal" ng-required="true" autofocus disabled>\n\n <div ng-messages="generalForm[\'internal\'].$error" ng-show="generalForm[\'internal\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.INTERNAL_REQUIRED">Internal field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.TRANSPORT">Transport</label>\n <md-select name="transport" ng-model="vm.user.transport" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'udp\'">udp</md-option>\n <md-option ng-value="\'tcp\'">tcp</md-option>\n <md-option ng-value="\'ws\'">ws</md-option>\n <md-option ng-value="\'wss\'">wss</md-option>\n <md-option ng-value="\'tls\'">tls</md-option>\n </md-select>\n <div ng-messages="generalForm[\'transport\'].$error" ng-show="generalForm[\'transport\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.TRANSPORT_REQUIRED">Transport field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.NAT">NAT</label>\n <md-select name="nat" ng-model="vm.user.nat" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'force_rport\'">force_rport</md-option>\n <md-option ng-value="\'comedia\'">comedia</md-option>\n <md-option ng-value="\'yes\'">yes</md-option>\n <md-option ng-value="\'no\'">no</md-option>\n <md-option ng-value="\'never\'">never</md-option>\n <md-option ng-value="\'route\'">route</md-option>\n </md-select>\n <div class="hint"><span translate="STAFF.HELP.NAT"></span></div>\n <div ng-messages="generalForm[\'nat\'].$error" ng-show="generalForm[\'nat\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.NAT_REQUIRED">NAT field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.ALLOWCODECS">AllowCodecs</label>\n <md-select name="allow" ng-model="vm.user.allow" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'ulaw\'">ulaw</md-option>\n <md-option ng-value="\'alaw\'">alaw</md-option>\n <md-option ng-value="\'gsm\'">gsm</md-option>\n <md-option ng-value="\'g722\'">g722</md-option>\n <md-option ng-value="\'g729\'">g729</md-option>\n <md-option ng-value="\'opus\'">opus</md-option>\n <md-option ng-value="\'h264\'">h264</md-option>\n </md-select>\n <div class="hint"><span translate="STAFF.HELP.ALLOWCODECS"></span></div>\n <div ng-messages="generalForm[\'allow\'].$error" ng-show="generalForm[\'allow\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.ALLOWCODECS_REQUIRED">AllowCodecs field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.user.context" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts" ng-disabled="context.canSelect === false">{{ context.name }}</md-option>\n </md-select>\n <div ng-messages="generalForm[\'context\'].$error" ng-show="generalForm[\'context\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CALLGROUP">Callgroup</label>\n <input type="text" name="callgroup" ng-model="vm.user.callgroup" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.CALLGROUP"></span></div>\n <div ng-messages="generalForm[\'callgroup\'].$error" ng-show="generalForm[\'callgroup\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CALLGROUP_REQUIRED">Callgroup field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.PICKUPGROUP">Pickupgroup</label>\n <input type="text" name="pickupgroup" ng-model="vm.user.pickupgroup" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.PICKUPGROUP"></span></div>\n <div ng-messages="generalForm[\'pickupgroup\'].$error" ng-show="generalForm[\'pickupgroup\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PICKUPGROUP_REQUIRED">Pickupgroup field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.APIKEY">ApiKey</label>\n <div layout="row" layout-align="center center">\n <button class="md-button md-fab md-mini md-primary" ngclipboard data-clipboard-target="#copytoclipboard-apiKey" ngclipboard-success="vm.alert({title: \'copied to clipboard\', msg: \'API Key copied!\' });" ngclipboard-error="vm.alert({title: \'error\', msg: \'copy to clipboard failed\'});">\n <md-icon md-font-icon="icon-clipboard-text"></md-icon>\n </button>\n <input class="md-input" type="text" id="copytoclipboard-apiKey" name="apiKey" ng-model="vm.user.apiKey" ng-readonly="true">\n </div>\n <div class="hint"><span translate="STAFF.HELP.APIKEY"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.VIDEOSUPPORT">Videosupport</label>\n <md-select name="videosupport" ng-model="vm.user.videosupport" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'yes\'">Yes</md-option>\n <md-option ng-value="\'no\'">No</md-option>\n <md-option ng-value="\'always\'">Always</md-option>\n </md-select>\n <div ng-messages="generalForm[\'videosupport\'].$error" ng-show="generalForm[\'videosupport\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.VIDEOSUPPORT_REQUIRED">Videosupport field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/staff/views/users/users.html",'<div id="users" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-account-multiple" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="STAFF.USERS">Users</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="STAFF.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedUsers.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedUsers =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="STAFF.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-users-count">\n <span>{{vm.selectedUsers.length}}</span>\n <span translate="STAFF.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="STAFF.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllUsers()" translate="STAFF.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectUsers()" translate="STAFF.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedUsers" csv-label="true" filename="users.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- USER TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedUsers" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getUsers">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="role">{{ \'STAFF.ROLE\' | translate }}</th>\n <th md-column md-order-by="userProfileId">{{ \'STAFF.USERPROFILE\' | translate }}</th>\n <th md-column md-order-by="fullname">{{ \'STAFF.FULLNAME\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'STAFF.USERNAME\' | translate }}</th>\n <th md-column md-order-by="email">{{ \'STAFF.EMAIL\' | translate }}</th>\n <th md-column md-order-by="phone">{{ \'STAFF.PHONE\' | translate }}</th>\n <th md-column md-order-by="mobile">{{ \'STAFF.MOBILE\' | translate }}</th>\n <th md-column md-order-by="internal">{{ \'STAFF.INTERNAL\' | translate }}</th>\n <th md-column md-order-by="disabled">{{ \'STAFF.DISABLED\' | translate }}</th>\n <th md-column md-order-by="blocked">{{ \'STAFF.BLOCKED\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.users.rows.length">\n <td md-cell colspan="11">\n <div layout="row" layout-align="center center">\n <span translate="STAFF.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="user" md-select-id="id" ng-repeat="user in vm.users.rows">\n <td md-cell ng-if="user.userpic"><img class="avatar" alt="{{user.name}}" ng-src="api/users/{{user.id}}/avatar" /></td>\n <td md-cell ng-if="!user.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{user.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="role ">{{ vm.arrayrole[user.role].option }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="userProfileId font-weight-600">{{ (vm.userProfiles | filter : {\'id\':user.userProfileId} : true)[0].name }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="fullname font-weight-600">{{user.fullname}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="name ">{{user.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="email ">{{user.email}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="phone ">{{user.phone}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="mobile ">{{user.mobile}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="internal ">{{user.internal}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="disabled ">\n <md-icon md-colors="{color: {{user.disabled ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{user.disabled ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="blocked ">\n <md-icon md-colors="{color: {{user.blocked ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{user.blocked ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(user, $event )" translate="STAFF.EDIT_USER">\n Edit User\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.role === \'admin\' && user.id !== vm.currentUser.id">\n\n <md-button ng-click="vm.deleteconfirm(user, $event )" translate="STAFF.DELETE_USER">\n Delete User\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'STAFF.PAGE\' | translate}}:\', rowsPerPage: \'{{\'STAFF.ROWSPERPAGE\' | translate}}:\', of: \'{{\'STAFF.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.users.count}}" md-on-paginate="vm.getUsers" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / USER TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD USER BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-user-button" ng-click="vm.createOrEditUser($event)" aria-label="add user" translate translate-attr-aria-label="STAFF.ADD_USER">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD USER BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/cannedAnswers/cannedAnswers.html",'<div id="cannedAnswers" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="TOOLS.CANNEDANSWERS">CannedAnswers</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedCannedAnswers.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedCannedAnswers =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="TOOLS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-cannedAnswers-count">\n <span>{{vm.selectedCannedAnswers.length}}</span>\n <span translate="TOOLS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TOOLS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllCannedAnswers()" translate="TOOLS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectCannedAnswers()" translate="TOOLS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedCannedAnswers" csv-label="true" filename="cannedAnswers.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedCannedAnswers($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- CANNEDANSWER TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedCannedAnswers" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getCannedAnswers">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n <th md-column md-order-by="key">{{ \'TOOLS.KEY\' | translate }}</th>\n <th md-column md-order-by="value">{{ \'TOOLS.VALUE\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.cannedAnswers.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="cannedAnswer" md-select-id="id" ng-repeat="cannedAnswer in vm.cannedAnswers.rows">\n <td md-cell ng-if="cannedAnswer.userpic"><img class="avatar" alt="{{cannedAnswer.name}}" ng-src="api/users/{{cannedAnswer.id}}/avatar" /></td>\n <td md-cell ng-if="!cannedAnswer.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{cannedAnswer.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditCannedAnswer($event, cannedAnswer)" md-cell class="id ">{{cannedAnswer.id}}</td>\n <td ng-click="vm.createOrEditCannedAnswer($event, cannedAnswer)" md-cell class="key ">{{cannedAnswer.key}}</td>\n <td ng-click="vm.createOrEditCannedAnswer($event, cannedAnswer)" md-cell class="value ">{{cannedAnswer.value}}</td>\n <td ng-click="vm.createOrEditCannedAnswer($event, cannedAnswer)" md-cell class="description ">{{cannedAnswer.description}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(cannedAnswer, $event )" translate="TOOLS.EDIT_CANNEDANSWER">\n Edit CannedAnswer\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(cannedAnswer, $event )" translate="TOOLS.DELETE_CANNEDANSWER">\n Delete CannedAnswer\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.cannedAnswers.count}}" md-on-paginate="vm.getCannedAnswers" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / CANNEDANSWER TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD CANNEDANSWER BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-cannedAnswer-button" ng-click="vm.createOrEditCannedAnswer($event)" aria-label="add cannedAnswer" translate translate-attr-aria-label="TOOLS.ADD_CANNEDANSWER">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD CANNEDANSWER BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/cannedAnswers/create/dialog.html",'<md-dialog class="cannedAnswer-dialog" aria-label="New CannedAnswer">\n <form name="cannedAnswerForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.cannedAnswer.key" md-maxlength="255" ng-required="true" autofocus>\n\n <div ng-messages="cannedAnswerForm[\'key\'].$error" ng-show="cannedAnswerForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.KEY_REQUIRED">Key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="TOOLS.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 255}\'>Key must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.VALUE">Value</label>\n <textarea name="value" ng-model="vm.cannedAnswer.value" required></textarea>\n\n <div ng-messages="cannedAnswerForm[\'value\'].$error" ng-show="cannedAnswerForm[\'value\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.cannedAnswer.description">\n\n <div ng-messages="cannedAnswerForm[\'description\'].$error" ng-show="cannedAnswerForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newCannedAnswer" ng-click="vm.saveCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="cannedAnswerForm.$invalid || cannedAnswerForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newCannedAnswer" ng-click="vm.addNewCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="cannedAnswerForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_CANNEDANSWER" translate-attr-aria-label="TOOLS.ADD_CANNEDANSWER">\n ADD CANNEDANSWER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newCannedAnswer" ng-click="vm.deleteCannedAnswer($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/customDashboards/create/dialog.html",'<md-dialog class="customDashboard-dialog" aria-label="New CustomDashboard">\n <form name="customDashboardForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.customDashboard.name" ng-required="true" autofocus>\n\n <div ng-messages="customDashboardForm[\'name\'].$error" ng-show="customDashboardForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.customDashboard.description">\n\n <div ng-messages="customDashboardForm[\'description\'].$error" ng-show="customDashboardForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newCustomDashboard" ng-click="vm.saveCustomDashboard()" class="send-button md-accent md-raised" ng-disabled="customDashboardForm.$invalid || customDashboardForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newCustomDashboard" ng-click="vm.addNewCustomDashboard()" class="send-button md-accent md-raised" ng-disabled="customDashboardForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_CUSTOMDASHBOARD" translate-attr-aria-label="TOOLS.ADD_CUSTOMDASHBOARD">\n ADD CUSTOMDASHBOARD\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newCustomDashboard" ng-click="vm.deleteCustomDashboard($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/customDashboards/customDashboards.html",'<div id="customDashboards" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="TOOLS.CUSTOMDASHBOARDS">CustomDashboards</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedCustomDashboards.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedCustomDashboards =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="TOOLS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-customDashboards-count">\n <span>{{vm.selectedCustomDashboards.length}}</span>\n <span translate="TOOLS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TOOLS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllCustomDashboards()" translate="TOOLS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectCustomDashboards()" translate="TOOLS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedCustomDashboards" csv-label="true" filename="customDashboards.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedCustomDashboards($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- CUSTOMDASHBOARD TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedCustomDashboards" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getCustomDashboards">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.customDashboards.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="customDashboard" md-select-id="id" ng-repeat="customDashboard in vm.customDashboards.rows">\n <td md-cell ng-if="customDashboard.userpic"><img class="avatar" alt="{{customDashboard.name}}" ng-src="api/users/{{customDashboard.id}}/avatar" /></td>\n <td md-cell ng-if="!customDashboard.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{customDashboard.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(customDashboard, ev) : vm.createOrEditCustomDashboard($event, customDashboard)" md-cell class="id ">{{customDashboard.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(customDashboard, ev) : vm.createOrEditCustomDashboard($event, customDashboard)" md-cell class="name ">{{customDashboard.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(customDashboard, ev) : vm.createOrEditCustomDashboard($event, customDashboard)" md-cell class="description ">{{customDashboard.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(customDashboard, $event )" translate="TOOLS.EDIT_CUSTOMDASHBOARD">\n Edit CustomDashboard\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.clonedialog(customDashboard, $event )" translate="TOOLS.CLONE_CUSTOMDASHBOARD">\n clone CustomDashboard\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotodashboardgoto(customDashboard, $event )" translate="TOOLS.GOTODASHBOARD_CUSTOMDASHBOARD">\n goToDashboard CustomDashboard\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(customDashboard, $event )" translate="TOOLS.DELETE_CUSTOMDASHBOARD">\n Delete CustomDashboard\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.customDashboards.count}}" md-on-paginate="vm.getCustomDashboards" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / CUSTOMDASHBOARD TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD CUSTOMDASHBOARD BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-customDashboard-button" ng-click="vm.createOrEditCustomDashboard($event)" aria-label="add customDashboard" translate translate-attr-aria-label="TOOLS.ADD_CUSTOMDASHBOARD">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD CUSTOMDASHBOARD BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/customDashboards/edit/clone/clone.html",'<md-dialog class="customDashboard-dialog" aria-label="Clone CustomDashboard">\n <form name="customDashboardForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.customDashboard.name" ng-required="true" autofocus>\n\n <div ng-messages="customDashboardForm[\'name\'].$error" ng-show="customDashboardForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <md-button type="submit" ng-click="vm.cloneCustomDashboard()" class="send-button md-accent md-raised" ng-disabled="customDashboardForm.$invalid" aria-label="CLONE" translate="TOOLS.CLONE_CUSTOMDASHBOARD" translate-attr-aria-label="TOOLS.CLONE_CUSTOMDASHBOARD">\n CLONE CUSTOMDASHBOARD\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/customDashboards/edit/dashboard/dialog.html",'<md-dialog class="dashboarditem-dialog" aria-label="New DashboardItem">\n <form name="dashboarditemForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.dashboarditem.type" autofocus ng-disabled="!vm.newDashboardItem">\n\n <md-option ng-value="\'counter\'"> {{ \'TOOLS.COUNTER\' | translate }} </md-option>\n\n <md-option ng-value="\'multibar-chart\'"> {{ \'TOOLS.MULTIBARCHART\' | translate }} </md-option>\n\n <md-option ng-value="\'pie-chart\'"> {{ \'TOOLS.PIECHART\' | translate }} </md-option>\n\n <md-option ng-value="\'web-report\'"> {{ \'TOOLS.WEBREPORT\' | translate }} </md-option>\n\n <md-option ng-value="\'iframe\'"> {{ \'TOOLS.IFRAME\' | translate }} </md-option>\n\n <md-option ng-value="\'clock\'"> {{ \'TOOLS.CLOCK\' | translate }} </md-option>\n\n <md-option ng-value="\'custom\'"> {{ \'TOOLS.CUSTOMTYPE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="dashboarditemForm[\'type\'].$error" ng-show="dashboarditemForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.TITLE">Title</label>\n <input type="text" name="title" ng-model="vm.dashboarditem.title" md-maxlength="255" ng-required="true">\n\n <div ng-messages="dashboarditemForm[\'title\'].$error" ng-show="dashboarditemForm[\'title\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TITLE_REQUIRED">Title field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="TOOLS.ERRORS.TITLE_MAX_LENGTH" translate-values=\'{max: 255}\'>Title must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.TITLEFONTSIZE">TitleFontSize</label>\n <input type="number" name="titleFontSize" ng-model="vm.dashboarditem.titleFontSize" value="12">\n\n <div ng-messages="dashboarditemForm[\'titleFontSize\'].$error" ng-show="dashboarditemForm[\'titleFontSize\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TITLEFONTSIZE_REQUIRED">TitleFontSize field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.dashboarditem.type == \'iframe\'" class="md-block">\n <label translate="TOOLS.URL">Url</label>\n <input type="url" name="attrUrl" ng-model="vm.dashboarditem.attrUrl" value="https://" ng-required="true">\n\n <div ng-messages="dashboarditemForm[\'attrUrl\'].$error" ng-show="dashboarditemForm[\'attrUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.URL_REQUIRED">Url field is required</span>\n </div>\n <div ng-message="url">\n <span translate="TOOLS.ERRORS.URL_MUST_VALID_URL">Url must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.dashboarditem.type == \'custom\'" class="md-block">\n <label translate="TOOLS.PATH">Path</label>\n <input type="text" name="attrPath" ng-model="vm.dashboarditem.attrPath" ng-required="true">\n\n <div ng-messages="dashboarditemForm[\'attrPath\'].$error" ng-show="dashboarditemForm[\'attrPath\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.PATH_REQUIRED">Path field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.dashboarditem.type == \'clock\'" class="md-block">\n <label translate="TOOLS.FORMAT">Format</label>\n <input type="text" name="attrHourFormat" ng-model="vm.dashboarditem.attrHourFormat" value="HH:mm:ss" ng-required="true">\n\n <div ng-messages="dashboarditemForm[\'attrHourFormat\'].$error" ng-show="dashboarditemForm[\'attrHourFormat\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.FORMAT_REQUIRED">Format field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.dashboarditem.type == \'clock\'" class="md-block">\n <label translate="TOOLS.TIMEZONE">Timezone</label>\n <md-select name="attrTimezone" ng-model="vm.dashboarditem.attrTimezone" required>\n <md-option ng-value="\'-12.00\'">GMT-12.00</md-option>\n <md-option ng-value="\'-11.00\'">GMT-11.00</md-option>\n <md-option ng-value="\'-10.00\'">GMT-10.00</md-option>\n <md-option ng-value="\'-9.00\'">GMT-9.00</md-option>\n <md-option ng-value="\'-8.00\'">GMT-8.00</md-option>\n <md-option ng-value="\'-7.00\'">GMT-7.00</md-option>\n <md-option ng-value="\'-6.00\'">GMT-6.00</md-option>\n <md-option ng-value="\'-5.00\'">GMT-5.00</md-option>\n <md-option ng-value="\'-4.00\'">GMT-4.00</md-option>\n <md-option ng-value="\'-3.30\'">GMT-3.30</md-option>\n <md-option ng-value="\'-3.00\'">GMT-3.00</md-option>\n <md-option ng-value="\'-2.00\'">GMT-2.00</md-option>\n <md-option ng-value="\'-1.00\'">GMT-1.00</md-option>\n <md-option ng-value="\'0.00\'">GMT 0.00</md-option>\n <md-option ng-value="\'1.00\'">GMT+1.00</md-option>\n <md-option ng-value="\'2.00\'">GMT+2.00</md-option>\n <md-option ng-value="\'3.00\'">GMT+3.00</md-option>\n <md-option ng-value="\'3.30\'">GMT+3.30</md-option>\n <md-option ng-value="\'4.00\'">GMT+4.00</md-option>\n <md-option ng-value="\'4.30\'">GMT+4.30</md-option>\n <md-option ng-value="\'5.00\'">GMT+5.00</md-option>\n <md-option ng-value="\'5.30\'">GMT+5.30</md-option>\n <md-option ng-value="\'5.45\'">GMT+5.45</md-option>\n <md-option ng-value="\'6.00\'">GMT+6.00</md-option>\n <md-option ng-value="\'6.30\'">GMT+6.30</md-option>\n <md-option ng-value="\'7.00\'">GMT+7.00</md-option>\n <md-option ng-value="\'8.00\'">GMT+8.00</md-option>\n <md-option ng-value="\'9.00\'">GMT+9.00</md-option>\n <md-option ng-value="\'9.30\'">GMT+9.30</md-option>\n <md-option ng-value="\'10.00\'">GMT+10.00</md-option>\n <md-option ng-value="\'11.00\'">GMT+11.00</md-option>\n <md-option ng-value="\'12.00\'">GMT+12.00</md-option>\n <md-option ng-value="\'13.00\'">GMT+13.00</md-option>\n </md-select>\n <div ng-messages="dashboarditemForm[\'attrTimezone\'].$error" ng-show="dashboarditemForm[\'attrTimezone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIMEZONE_REQUIRED">Timezone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.dashboarditem.type == \'counter\'" class="md-block">\n <label translate="TOOLS.METRIC">Metric</label>\n <md-select name="attrMetric" ng-model="vm.dashboarditem.attrMetric" required>\n\n <md-option ng-value="\'total\'"> {{ \'TOOLS.TOTAL\' | translate }} </md-option>\n\n <md-option ng-value="\'abandoned\'"> {{ \'TOOLS.ABANDONED\' | translate }} </md-option>\n\n <md-option ng-value="\'waiting\'"> {{ \'TOOLS.WAITING\' | translate }} </md-option>\n\n <md-option ng-value="\'talking\'"> {{ \'TOOLS.TALKING\' | translate }} </md-option>\n\n <md-option ng-value="\'answered\'"> {{ \'TOOLS.ANSWERED\' | translate }} </md-option>\n\n <md-option ng-value="\'unmanaged\'"> {{ \'TOOLS.UNMANAGED\' | translate }} </md-option>\n </md-select>\n <div ng-messages="dashboarditemForm[\'attrMetric\'].$error" ng-show="dashboarditemForm[\'attrMetric\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.METRIC_REQUIRED">Metric field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="[\'multibar-chart\', \'pie-chart\'].includes(vm.dashboarditem.type)" class="md-block">\n <label translate="TOOLS.SERIE1">Serie1</label>\n <md-select name="attrSerie1" ng-model="vm.dashboarditem.attrSerie1" required>\n\n <md-option ng-value="\'total\'"> {{ \'TOOLS.TOTAL\' | translate }} </md-option>\n\n <md-option ng-value="\'abandoned\'"> {{ \'TOOLS.ABANDONED\' | translate }} </md-option>\n\n <md-option ng-value="\'waiting\'"> {{ \'TOOLS.WAITING\' | translate }} </md-option>\n\n <md-option ng-value="\'talking\'"> {{ \'TOOLS.TALKING\' | translate }} </md-option>\n\n <md-option ng-value="\'answered\'"> {{ \'TOOLS.ANSWERED\' | translate }} </md-option>\n\n <md-option ng-value="\'unmanaged\'"> {{ \'TOOLS.UNMANAGED\' | translate }} </md-option>\n </md-select>\n <div ng-messages="dashboarditemForm[\'attrSerie1\'].$error" ng-show="dashboarditemForm[\'attrSerie1\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.SERIE1_REQUIRED">Serie1 field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="[\'multibar-chart\', \'pie-chart\'].includes(vm.dashboarditem.type)" class="md-block">\n <label translate="TOOLS.SERIE2">Serie2</label>\n <md-select name="attrSerie2" ng-model="vm.dashboarditem.attrSerie2">\n\n <md-option ng-value="\'null\'"> {{ \'TOOLS.NONE\' | translate }} </md-option>\n\n <md-option ng-value="\'total\'"> {{ \'TOOLS.TOTAL\' | translate }} </md-option>\n\n <md-option ng-value="\'abandoned\'"> {{ \'TOOLS.ABANDONED\' | translate }} </md-option>\n\n <md-option ng-value="\'waiting\'"> {{ \'TOOLS.WAITING\' | translate }} </md-option>\n\n <md-option ng-value="\'talking\'"> {{ \'TOOLS.TALKING\' | translate }} </md-option>\n\n <md-option ng-value="\'answered\'"> {{ \'TOOLS.ANSWERED\' | translate }} </md-option>\n\n <md-option ng-value="\'unmanaged\'"> {{ \'TOOLS.UNMANAGED\' | translate }} </md-option>\n </md-select>\n <div ng-messages="dashboarditemForm[\'attrSerie2\'].$error" ng-show="dashboarditemForm[\'attrSerie2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.SERIE2_REQUIRED">Serie2 field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="[\'multibar-chart\', \'pie-chart\'].includes(vm.dashboarditem.type)" class="md-block">\n <label translate="TOOLS.SERIE3">Serie3</label>\n <md-select name="attrSerie3" ng-model="vm.dashboarditem.attrSerie3">\n\n <md-option ng-value="\'null\'"> {{ \'TOOLS.NONE\' | translate }} </md-option>\n\n <md-option ng-value="\'total\'"> {{ \'TOOLS.TOTAL\' | translate }} </md-option>\n\n <md-option ng-value="\'abandoned\'"> {{ \'TOOLS.ABANDONED\' | translate }} </md-option>\n\n <md-option ng-value="\'waiting\'"> {{ \'TOOLS.WAITING\' | translate }} </md-option>\n\n <md-option ng-value="\'talking\'"> {{ \'TOOLS.TALKING\' | translate }} </md-option>\n\n <md-option ng-value="\'answered\'"> {{ \'TOOLS.ANSWERED\' | translate }} </md-option>\n\n <md-option ng-value="\'unmanaged\'"> {{ \'TOOLS.UNMANAGED\' | translate }} </md-option>\n </md-select>\n <div ng-messages="dashboarditemForm[\'attrSerie3\'].$error" ng-show="dashboarditemForm[\'attrSerie3\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.SERIE3_REQUIRED">Serie3 field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.dashboarditem.type == \'web-report\'" class="md-block">\n <label translate="TOOLS.REPORT">Report</label>\n <input type="search" name="report" ng-model="vm.dashboarditem.report" ng-required="true" autocomplete="off" ng-click="vm.searchReport()">\n <md-icon md-font-icon="icon-magnify" ng-click="vm.searchReport()" aria-label="Search Report"></md-icon>\n <div ng-messages="dashboarditemForm[\'report\'].$error" ng-show="dashboarditemForm[\'report\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.REPORT_REQUIRED">Report field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.dashboarditem.type == \'web-report\'" class="md-block">\n <label translate="TOOLS.REFRESH">Refresh</label>\n <input type="number" name="attrRefresh" ng-model="vm.dashboarditem.attrRefresh" min="5" value="10" ng-required="true">\n\n <div ng-messages="dashboarditemForm[\'attrRefresh\'].$error" ng-show="dashboarditemForm[\'attrRefresh\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.REFRESH_REQUIRED">Refresh field is required</span>\n </div>\n <div ng-message="min">\n <span translate="TOOLS.ERRORS.REFRESH_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Refresh must be a valid greater or equal than</span> <span>5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="[\'multibar-chart\', \'pie-chart\', \'counter\'].includes(vm.dashboarditem.type)" class="md-block">\n <label translate="TOOLS.FILTERVOICEQUEUES">FilterVoiceQueues</label>\n <md-select name="attrVoiceQueues" ng-model="vm.dashboarditem.attrVoiceQueues" multiple>\n <md-option ng-value="attrVoiceQueues.id" ng-repeat="attrVoiceQueues in vm.voiceQueues" ng-disabled="attrVoiceQueues.canSelect === false">{{ attrVoiceQueues.name }}</md-option>\n </md-select>\n <div ng-messages="dashboarditemForm[\'attrVoiceQueues\'].$error" ng-show="dashboarditemForm[\'attrVoiceQueues\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.FILTERVOICEQUEUES_REQUIRED">FilterVoiceQueues field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="[\'counter\', \'clock\'].includes(vm.dashboarditem.type)" class="md-block">\n <label translate="TOOLS.FONTSIZE">FontSize</label>\n <input type="number" name="attrFontSize" ng-model="vm.dashboarditem.attrFontSize" min="12" max="40" value="20" ng-required="true">\n\n <div ng-messages="dashboarditemForm[\'attrFontSize\'].$error" ng-show="dashboarditemForm[\'attrFontSize\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.FONTSIZE_REQUIRED">FontSize field is required</span>\n </div>\n <div ng-message="min">\n <span translate="TOOLS.ERRORS.FONTSIZE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">FontSize must be a valid greater or equal than</span> <span>12</span>\n </div>\n <div ng-message="max">\n <span translate="TOOLS.ERRORS.FONTSIZE_MUST_BE_LESS_THAN_OR_EQUAL_TO">FontSize must be a valid greater or equal than</span> <span>40</span>\n </div>\n </div>\n </md-input-container>\n <div flex md-color-picker ng-model="vm.dashboarditem.foreground" label="{{\'TOOLS.FOREGROUND\' | translate}}" md-color-hex="true" md-color-rgb="false" md-color-hsl="false" md-color-history="false" md-color-material-palette="false" md-color-alpha-channel="false" open-on-input="true"></div>\n <div flex md-color-picker ng-model="vm.dashboarditem.background" label="{{\'TOOLS.BACKGROUND\' | translate}}" md-color-hex="true" md-color-rgb="false" md-color-hsl="false" md-color-history="false" md-color-material-palette="false" md-color-alpha-channel="false" open-on-input="true"></div>\n <md-input-container class="md-block">\n <label translate="TOOLS.LINK">link</label>\n <input type="url" name="link" ng-model="vm.dashboarditem.link">\n\n <div ng-messages="dashboarditemForm[\'link\'].$error" ng-show="dashboarditemForm[\'link\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.LINK_REQUIRED">link field is required</span>\n </div>\n <div ng-message="url">\n <span translate="TOOLS.ERRORS.LINK_MUST_VALID_URL">link must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newDashboardItem" ng-click="vm.saveDashboardItem()" class="send-button md-accent md-raised" ng-disabled="dashboarditemForm.$invalid || dashboarditemForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newDashboardItem" ng-click="vm.addNewDashboardItem()" class="send-button md-accent md-raised" ng-disabled="dashboarditemForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_DASHBOARDITEM" translate-attr-aria-label="TOOLS.ADD_DASHBOARDITEM">\n ADD DASHBOARDITEM\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newDashboardItem" ng-click="vm.deleteDashboardItem($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/customDashboards/edit/view.html",'<div id="tools-customDashboard" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-customDashboards-button md-icon-button" aria-label="Go to customDashboards" ng-click="vm.gotoCustomDashboards()" translate translate-attr-aria-label="TOOLS.GO_TO_CUSTOMDASHBOARDS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="customDashboard-image" hide-xs>\n <img ng-src="assets/images/business/customDashboards.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.customDashboard.id}}\n <span ng-if="vm.customDashboard.name">{{vm.customDashboard.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="TOOLS.CREATED_AT"></span> <span>{{vm.customDashboard.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.clonedialog(vm.customDashboard, $event)" class="md-fab md-green-500-bg md-icon-button" aria-label="clone">\n <md-tooltip><span translate="TOOLS.CLONE_CUSTOMDASHBOARD"></span></md-tooltip>\n <md-icon md-font-icon="icon-content-duplicate"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.gotogoto(vm.customDashboard, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n <md-tooltip><span translate="TOOLS.GOTO_CUSTOMDASHBOARD"></span></md-tooltip>\n <md-icon md-font-icon="icon-forward"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveCustomDashboard()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (dashboardForm.$invalid)" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="TOOLS.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="customDashboard-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="TOOLS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.customDashboard.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.customDashboard.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="TOOLS.DASHBOARD">DASHBOARD</span>\n </md-tab-label>\n <md-tab-body>\n <div class="customDashboard-detail-form-container dashboard md-background-bg md-whiteframe-1dp">\n <div ng-controller="CustomDashboardItemsController as vm_cd" ng-init="vm_cd.init(vm.customDashboard, vm.crudPermissions)" class="customDashboard-detail-form-container no-padding no-margin" layout="column">\n <div ng-if="vm_cd.customDashboard.widgets.length">\n <md-button class="md-fab md-mini md-accent" ng-click="vm_cd.createOrEditWidget()" ng-if="vm_cd.crudPermissions.canEdit" aria-label="add item">\n <md-tooltip>{{ \'TOOLS.ADD_WIDGET\' | translate }}</md-tooltip>\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <md-content flex>\n <ms-widget-engine config="vm_cd.customDashboard" on-edit="vm_cd.createOrEditWidget(widget)" on-delete="vm_cd.deleteWidget(widget)"></ms-widget-engine>\n </md-content>\n </div>\n <div ng-if="!vm_cd.customDashboard.widgets.length" layout="row" layout-align="center center" flex>\n <md-button class="width-130 height-130 md-accent md-raised" ng-click="vm_cd.createOrEditWidget()" aria-label="add item" layout="column">\n <md-icon md-font-icon="icon-plus-circle" class="s50"></md-icon>\n <span layout-wrap translate="TOOLS.ADD_WIDGET"></span>\n </md-button>\n </div>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/tools/views/customDashboards/partialViews/reports/treeReports.html",'<md-dialog class="report-selection-dialog" aria-label="Report Selection" flex="60">\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2>Select Report</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeReportDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content>\n <div class="content" md-background-bg layout="row" layout-align="start start">\n <div layout="column" flex="30">\n <md-card class="padding-10 scrollable" ms-scroll>\n <div js-tree="vm.treeConfig" tree-events-obj="vm.treeDefaultEvents" ng-model="vm.treeDefaultData" tree="vm.treeDefaultInstance"></div>\n </md-card>\n <md-card class="padding-10 scrollable" ms-scroll>\n <div js-tree="vm.treeConfig" tree-events-obj="vm.treeCustomEvents" ng-model="vm.treeCustomData" tree="vm.treeCustomInstance"></div>\n </md-card>\n </div>\n <md-card flex="70">\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="h2 secondary-text">{{vm.currentNode.text}}</span>\n <p ng-if="vm.currentPath">\n <span class="text-boxed">{{vm.currentPath}}</span>\n </p>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select ng-model="vm.selectedReport" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getReports">\n <tr md-row>\n <th md-column md-order-by="id" width="10px">{{ "ANALYTICS.ID" | translate }}</th>\n <th md-column md-order-by="name">{{ "ANALYTICS.NAME" | translate }}</th>\n <th md-column md-order-by="description">{{ "ANALYTICS.DESCRIPTION" | translate }}</th>\n <th md-column md-order-by="createdAt">{{ "ANALYTICS.CREATED_AT" | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.reports.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="ANALYTICS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="report" md-select-id="id" ng-repeat="report in vm.reports.rows">\n <td md-cell class="id">{{ report.id }}</td>\n <td md-cell class="name">{{ report.name }}</td>\n <td md-cell class="description">{{ report.description }}</td>\n <td md-cell class="createdAt">{{ report.createdAt | date: "medium" }}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{ \'ANALYTICS.PAGE\' | translate }}:\', rowsPerPage: \'{{ \'ANALYTICS.ROWSPERPAGE\' | translate }}:\', of: \'{{ \'ANALYTICS.OF\' | translate }}\'}" md-limit="vm.query.limit" md-limit-options="[10]" md-page="vm.query.page" md-total="{{ vm.reports.count }}" md-on-paginate="vm.getReports" md-page-select></md-table-pagination>\n </md-card>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row">\n <span flex></span>\n <md-button class="md-raised" ng-click="vm.closeReportDialog()">CANCEL</md-button>\n <md-button class="md-accent md-raised" ng-click="vm.selectReport()">CONFIRM</md-button>\n </md-dialog-actions>\n</md-dialog>'),e.put("app/main/apps/tools/views/dispositions/create/dialog.html",'<md-dialog ng-init="vm.onInit()" class="disposition-dialog" aria-label="New Disposition">\n <form name="dispositionForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.newDisposition ? \'TOOLS.NEW_DISPOSITION\' : \'TOOLS.EDIT_DISPOSITION\' | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.disposition.name" md-maxlength="255" required md-autofocus>\n <div ng-messages="dispositionForm[\'name\'].$error" ng-show="dispositionForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="TOOLS.ERRORS.NAME_MAX_LENGTH" translate-values=\'{max: 255}\'>Name must have a maximum length\n equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.disposition.description" md-maxlength="255">\n <div ng-messages="dispositionForm[\'description\'].$error" ng-show="dispositionForm[\'description\'].$touched" role="alert">\n <div ng-message="md-maxlength">\n <span translate="TOOLS.ERRORS.DESCRIPTION_MAX_LENGTH" translate-values=\'{max: 255}\'>Description must have a\n maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.newDisposition && vm.dispositions.length > 0 || vm.disposition.ParentId" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="TOOLS.FIRST_LEVEL_DISPOSITION">First Level Disposition</label>\n <md-select name="firstLevelDisposition" ng-model="vm.firstLevelDisposition" ng-change="vm.onFirstLevelSelection()">\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'first\' }" ng-disabled="disposition.canSelect === false">{{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.firstLevelDisposition" ng-click="vm.clearSelection(\'first\'); dispositionForm.$setDirty();" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear first level disposition selection">\n </md-icon>\n </md-button>\n </div>\n <div ng-if="vm.firstLevelDisposition && vm.anySecondLevelDisposition" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="TOOLS.SECOND_LEVEL_DISPOSITION">Second Level Disposition</label>\n <md-select name="secondLevelDisposition" ng-model="vm.secondLevelDisposition">\n <md-option ng-value="disposition" ng-if="disposition.id != vm.disposition.id" ng-repeat="disposition in vm.dispositions | filter: { level: \'second\', ParentId: vm.firstLevelDisposition.id }" ng-disabled="disposition.canSelect === false">{{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.secondLevelDisposition" ng-click="vm.clearSelection(\'second\'); dispositionForm.$setDirty();" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear first level disposition selection">\n </md-icon>\n </md-button>\n </div>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newDisposition" ng-click="vm.saveDisposition()" class="send-button md-accent md-raised" ng-disabled="dispositionForm.$invalid || dispositionForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newDisposition" ng-click="vm.addNewDisposition()" class="send-button md-accent md-raised" ng-disabled="dispositionForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_DISPOSITION" translate-attr-aria-label="TOOLS.ADD_DISPOSITION">\n ADD DISPOSITION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newDisposition" ng-click="vm.deleteDisposition($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/dispositions/dispositions.html",'<div id="dispositions" class="page-layout simple left-sidenav inner-sidenav">\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="TOOLS.DISPOSITIONS">Dispositions</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedDispositions.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n <div class="close-button-wrapper" ng-click="vm.selectedDispositions = []">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="TOOLS.BACK">Back</span>\n </md-button>\n </div>\n <div flex layout="row" layout-align="space-between center">\n <div>\n <span class="selected-dispositions-count">\n <span>{{vm.selectedDispositions.length}}</span>\n <span translate="TOOLS.SELECTED">selected</span>\n </span>\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TOOLS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllDispositions()" translate="TOOLS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectDispositions()" translate="TOOLS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedDispositions" csv-label="true" filename="dispositions.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedDispositions($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n <div layout="row">\n <div class="column" flex="20">\n <md-card>\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm.query.level = null; vm.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\n </button>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm.query.level" ng-change="vm.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n \x3c!-- DISPOSITION TABLE --\x3e\n <md-card flex="80">\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedDispositions" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getDispositions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.dispositions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="disposition" md-select-id="id" ng-repeat="disposition in vm.dispositions.rows">\n <td ng-click="vm.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm.levels[disposition.level] }}</td>\n <td ng-click="vm.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteconfirm(disposition, $event)" translate="TOOLS.DELETE_DISPOSITION">\n Delete Disposition\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.dispositions.count}}" md-on-paginate="vm.getDispositions" md-page-select>\n </md-table-pagination>\n </md-card>\n \x3c!-- / DISPOSITION TABLE --\x3e\n </div>\n \x3c!-- NO RESULTS --\x3e\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n </div>\n \x3c!-- / CONTENT --\x3e\n \x3c!-- ADD DISPOSITION BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-disposition-button" ng-click="vm.createOrEditDisposition($event)" aria-label="add disposition" translate translate-attr-aria-label="TOOLS.ADD_DISPOSITION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD DISPOSITION BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/intervals/create/dialog.html",'<md-dialog class="interval-dialog" aria-label="New Interval">\n <form name="intervalForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.interval.name" ng-required="true" autofocus>\n\n <div ng-messages="intervalForm[\'name\'].$error" ng-show="intervalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.interval.description">\n\n <div ng-messages="intervalForm[\'description\'].$error" ng-show="intervalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newInterval" ng-click="vm.saveInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid || intervalForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newInterval" ng-click="vm.addNewInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_INTERVAL" translate-attr-aria-label="TOOLS.ADD_INTERVAL">\n ADD INTERVAL\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newInterval" ng-click="vm.deleteInterval($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/intervals/edit/apps/interval/dialog.html",'<md-dialog class="interval-dialog" aria-label="New Interval">\n <form name="intervalForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input ng-model="vm.interval.name" type="text" name="name" placeholder="{{\'TOOLS.NAME\' | translate}}" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" md-autofocus required>\n <div ng-messages="intervalForm.name.$error" ng-show="intervalForm.name.$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select ng-model="vm.type" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="type" ng-repeat=\'type in vm.types\'>{{ type | ucfirst }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.type === \'list\'">\n <label translate="TOOLS.INTERVALS">Intervals</label>\n <md-select ng-model="vm.interval.IntervalId" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals">{{ interval.name }}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!-- TIMERANGE START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.TIME_RANGE">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <div class="md-block" flex>\n <mdp-time-picker name="timeRangeFrom" mdp-placeholder="FROM" ng-model="vm.timeRangeFrom" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <div ng-messages="intervalForm.timeRangeFrom.$error" ng-show="intervalForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_FROM_INVALID">Time Range From field is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n <div class="md-block" flex ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_INVALID">Time Range To field is invalid</span>\n </div>\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </div>\n \x3c!-- TIMERANGE END --\x3e\n\n \x3c!-- DAYSOFWEEK START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.WEEK_DAYS">Week Days</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.dayOfWeekFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container flex class="md-block" ng-if="vm.dayOfWeekFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="dayOfWeekTo" ng-model="vm.dayOfWeekTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- DAYSOFWEEK END --\x3e\n\n \x3c!-- MONTHDAY START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTH_DAYS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthDayFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthDayFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthDayTo" ng-model="vm.monthDayTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTHDAY END --\x3e\n\n \x3c!-- MONTH START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTHS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n </md-select>\n\n </md-input-container>\n\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthTo" ng-model="vm.monthTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTH END --\x3e\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="!vm.newInterval && vm.crudPermissions.canEdit" ng-click="vm.saveInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid || intervalForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.newInterval && vm.crudPermissions.canEdit" ng-click="vm.addNewInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_INTERVAL" translate-attr-aria-label="TOOLS.ADD_INTERVAL">\n ADD INTERVAL\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/intervals/edit/intervals/dialog.html",'<md-dialog class="interval-dialog" aria-label="New Interval">\n <form name="intervalForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="" name="name" ng-model="vm.interval.name" ng-required="true" autofocus>\n\n <div ng-messages="intervalForm[\'name\'].$error" ng-show="intervalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newInterval" ng-click="vm.saveInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid || intervalForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newInterval" ng-click="vm.addNewInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_INTERVAL" translate-attr-aria-label="TOOLS.ADD_INTERVAL">\n ADD INTERVAL\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newInterval" ng-click="vm.deleteInterval($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/intervals/edit/view.html",'<div id="tools-interval" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-intervals-button md-icon-button" aria-label="Go to intervals" ng-click="vm.gotoIntervals()" translate translate-attr-aria-label="TOOLS.GO_TO_INTERVALS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="interval-image" hide-xs>\n <img ng-src="assets/images/business/intervals.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.interval.id}}\n <span ng-if="vm.interval.name">{{vm.interval.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="TOOLS.CREATED_AT"></span> <span>{{vm.interval.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveInterval()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (intervalsForm.$invalid)" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="TOOLS.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="interval-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="TOOLS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.interval.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.interval.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="TOOLS.INTERVALS">INTERVALS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="interval-detail-form-container intervals md-background-bg md-whiteframe-1dp">\n <div ng-controller="IntervalIntervalsController as vm_dc" ng-init="vm_dc.init(vm.interval, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedIntervalIntervals.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="TOOLS.INTERVALS">Intervals</span>\n <ms-search-bar on-search="vm_dc.getIntervalIntervals()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditIntervalInterval($event)" aria-label="add interval" translate translate-attr-label="TOOLS.ADD_INTERVAL">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedIntervalIntervals.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedIntervalIntervals.length}} {{vm_dc.selectedIntervalIntervals.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedIntervalIntervals" csv-label="true" filename="intervals.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedIntervalIntervals($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedIntervalIntervals" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getIntervalIntervals">\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column md-order-by="id">\n {{ \'TOOLS.ID\' | translate }}\n </th>\n <th md-column md-order-by="name">\n {{ \'TOOLS.NAME\' | translate }}\n </th>\n <th md-column md-order-by="interval">\n {{ \'TOOLS.INTERVAL\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'TOOLS.CREATED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body ng-sortable="vm_dc.sortableTable">\n <tr md-row md-select="interval" md-select-id="id" ng-repeat="interval in vm_dc.intervalIntervals.rows">\n <td md-cell>\n <md-icon md-font-icon="icon-drag-vertical" class="s16 handle"></md-icon>\n </td>\n <td ng-click="vm_dc.createOrEditIntervalInterval($event, interval)" md-cell>\n {{interval.id}}\n </td>\n <td ng-click="vm_dc.createOrEditIntervalInterval($event, interval)" md-cell>\n {{interval.name}}\n </td>\n <td ng-click="vm_dc.createOrEditIntervalInterval($event, interval)" md-cell>\n {{interval.interval}}\n </td>\n <td ng-click="vm_dc.createOrEditIntervalInterval($event, interval)" md-cell>\n {{ interval.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditIntervalInterval($event, interval)" translate="TOOLS.EDIT_INTERVAL">\n Edit Interval\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(interval, $event)" translate="TOOLS.DELETE_INTERVAL">\n Delete Interval\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.intervalIntervals.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="TOOLS.NO_INTERVALS_AVAILABLE">No intervals available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/tools/views/intervals/intervals.html",'<div id="intervals" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="TOOLS.INTERVALS">Intervals</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedIntervals.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedIntervals =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="TOOLS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-intervals-count">\n <span>{{vm.selectedIntervals.length}}</span>\n <span translate="TOOLS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TOOLS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllIntervals()" translate="TOOLS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectIntervals()" translate="TOOLS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedIntervals" csv-label="true" filename="intervals.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedIntervals($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- INTERVAL TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedIntervals" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getIntervals">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.intervals.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="interval" md-select-id="id" ng-repeat="interval in vm.intervals.rows">\n <td md-cell ng-if="interval.userpic"><img class="avatar" alt="{{interval.name}}" ng-src="api/users/{{interval.id}}/avatar" /></td>\n <td md-cell ng-if="!interval.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{interval.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(interval, ev) : vm.createOrEditInterval($event, interval)" md-cell class="id ">{{interval.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(interval, ev) : vm.createOrEditInterval($event, interval)" md-cell class="name ">{{interval.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(interval, ev) : vm.createOrEditInterval($event, interval)" md-cell class="description ">{{interval.description}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(interval, $event )" translate="TOOLS.EDIT_INTERVAL">\n Edit Interval\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(interval, $event )" translate="TOOLS.DELETE_INTERVAL">\n Delete Interval\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.intervals.count}}" md-on-paginate="vm.getIntervals" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / INTERVAL TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD INTERVAL BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-interval-button" ng-click="vm.createOrEditInterval($event)" aria-label="add interval" translate translate-attr-aria-label="TOOLS.ADD_INTERVAL">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD INTERVAL BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/pauses/create/dialog.html",'<md-dialog class="pause-dialog" aria-label="New Pause">\n <form name="pauseForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.pause.name" ng-required="true" autofocus>\n\n <div ng-messages="pauseForm[\'name\'].$error" ng-show="pauseForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.pause.description">\n\n <div ng-messages="pauseForm[\'description\'].$error" ng-show="pauseForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newPause" ng-click="vm.savePause()" class="send-button md-accent md-raised" ng-disabled="pauseForm.$invalid || pauseForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newPause" ng-click="vm.addNewPause()" class="send-button md-accent md-raised" ng-disabled="pauseForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_PAUSE" translate-attr-aria-label="TOOLS.ADD_PAUSE">\n ADD PAUSE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newPause" ng-click="vm.deletePause($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/pauses/pauses.html",'<div id="pauses" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="TOOLS.PAUSES">Pauses</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedPauses.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedPauses =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="TOOLS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-pauses-count">\n <span>{{vm.selectedPauses.length}}</span>\n <span translate="TOOLS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TOOLS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllPauses()" translate="TOOLS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectPauses()" translate="TOOLS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedPauses" csv-label="true" filename="pauses.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedPauses($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- PAUSE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedPauses" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getPauses">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.pauses.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="pause" md-select-id="id" ng-repeat="pause in vm.pauses.rows">\n <td md-cell ng-if="pause.userpic"><img class="avatar" alt="{{pause.name}}" ng-src="api/users/{{pause.id}}/avatar" /></td>\n <td md-cell ng-if="!pause.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{pause.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditPause($event, pause)" md-cell class="id ">{{pause.id}}</td>\n <td ng-click="vm.createOrEditPause($event, pause)" md-cell class="name ">{{pause.name}}</td>\n <td ng-click="vm.createOrEditPause($event, pause)" md-cell class="description ">{{pause.description}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(pause, $event )" translate="TOOLS.EDIT_PAUSE">\n Edit Pause\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(pause, $event )" translate="TOOLS.DELETE_PAUSE">\n Delete Pause\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.pauses.count}}" md-on-paginate="vm.getPauses" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / PAUSE TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD PAUSE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-pause-button" ng-click="vm.createOrEditPause($event)" aria-label="add pause" translate translate-attr-aria-label="TOOLS.ADD_PAUSE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD PAUSE BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/schedules/create/dialog.html",'<md-dialog class="schedule-dialog" aria-label="New Schedule">\n <form name="scheduleForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.schedule.name" ng-required="true" autofocus>\n\n <div ng-messages="scheduleForm[\'name\'].$error" ng-show="scheduleForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.REPORT">Report</label>\n <input type="search" name="report" ng-model="vm.schedule.report" ng-required="true" autocomplete="off" ng-click="vm.searchReport()">\n <md-icon md-font-icon="icon-magnify" ng-click="vm.searchReport()" aria-label="Search Report"></md-icon>\n <div ng-messages="scheduleForm[\'report\'].$error" ng-show="scheduleForm[\'report\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.REPORT_REQUIRED">Report field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.OUTPUT">Output</label>\n <md-select name="output" ng-model="vm.schedule.output" required>\n <md-option ng-value="\'csv\'">CSV</md-option>\n <md-option ng-value="\'pdf\'">PDF</md-option>\n <md-option ng-value="\'xlsx\'">Excel</md-option>\n </md-select>\n <div ng-messages="scheduleForm[\'output\'].$error" ng-show="scheduleForm[\'output\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.OUTPUT_REQUIRED">Output field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.schedule.active" aria-label="Active"><span translate="TOOLS.ACTIVE">Active</span></md-switch>\n </md-input-container>\n <div class="md-block">\n <label translate="TOOLS.VALIDITYSTART">ValidityStart</label>\n <md-content layout="row" class="md-padding">\n <div flex class="md-block">\n <mdp-date-picker mdp-open-on-click required name="startAtDate" mdp-placeholder="Date" mdp-format="YYYY-MM-DD" ng-model="vm.schedule.startAt" ng-init="vm.schedule.startAt = vm.getDateFromString(vm.schedule.startAt)">\n <div ng-messages="scheduleForm.dateRangeFrom.$error" ng-show="scheduleForm.dateRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DATE_REQUIRED">Date is required</span>\n </div>\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.DATE_INVALID">Date is invalid</span>\n </div>\n </div>\n </mdp-date-picker>\n </div>\n <div flex class="md-block">\n <mdp-time-picker mdp-open-on-click required name="startAtTime" mdp-placeholder="Time" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.schedule.startAt" ng-init="vm.schedule.startAt = vm.getDateFromString(vm.schedule.startAt)">\n <div ng-messages="scheduleForm.timeRangeFrom.$error" ng-show="scheduleForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_REQUIRED">Time is required</span>\n </div>\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_INVALID">Time is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </md-content>\n </div>\n <div class="md-block">\n <label translate="TOOLS.VALIDITYEND">ValidityEnd</label>\n <md-content layout="row" class="md-padding">\n <div flex class="md-block">\n <mdp-date-picker mdp-open-on-click required name="endAtDate" mdp-placeholder="Date" mdp-format="YYYY-MM-DD" ng-model="vm.schedule.endAt" ng-init="vm.schedule.endAt = vm.getDateFromString(vm.schedule.endAt)">\n <div ng-messages="scheduleForm.dateRangeFrom.$error" ng-show="scheduleForm.dateRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DATE_REQUIRED">Date is required</span>\n </div>\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.DATE_INVALID">Date is invalid</span>\n </div>\n </div>\n </mdp-date-picker>\n </div>\n <div flex class="md-block">\n <mdp-time-picker mdp-open-on-click required name="endAtTime" mdp-placeholder="Time" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.schedule.endAt" ng-init="vm.schedule.endAt = vm.getDateFromString(vm.schedule.endAt)">\n <div ng-messages="scheduleForm.timeRangeFrom.$error" ng-show="scheduleForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_REQUIRED">Time is required</span>\n </div>\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_INVALID">Time is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </md-content>\n </div>\n <div flex class="md-block">\n <label> {{ \'TOOLS.CRON\' | translate }} ({{vm.schedule.cron}})</label>\n <cron-selection name="cron" ng-model="vm.schedule.cron" template="assets/angular-cron-jobs/template.html" required></cron-selection>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.LAST">Last</label>\n <input type="number" name="subtractNumber" ng-model="vm.schedule.subtractNumber" value="1" ng-required="true">\n\n <div ng-messages="scheduleForm[\'subtractNumber\'].$error" ng-show="scheduleForm[\'subtractNumber\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.LAST_REQUIRED">Last field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.LASTUNIT">LastUnit</label>\n <md-select name="subtractUnit" ng-model="vm.schedule.subtractUnit" required>\n <md-option ng-value="\'minutes\'">Minutes</md-option>\n <md-option ng-value="\'hours\'">Hours</md-option>\n <md-option ng-value="\'days\'">Days</md-option>\n <md-option ng-value="\'weeks\'">Weeks</md-option>\n <md-option ng-value="\'months\'">Months</md-option>\n <md-option ng-value="\'quarters\'">Quarters</md-option>\n <md-option ng-value="\'years\'">Years</md-option>\n </md-select>\n <div ng-messages="scheduleForm[\'subtractUnit\'].$error" ng-show="scheduleForm[\'subtractUnit\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.LASTUNIT_REQUIRED">LastUnit field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.schedule.sendMail" aria-label="SendMail"><span translate="TOOLS.SENDMAIL">SendMail</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.schedule.sendMail" class="md-block">\n <label translate="TOOLS.MAILACCOUNT">MailAccount</label>\n <md-select name="MailAccountId" ng-model="vm.schedule.MailAccountId" required>\n <md-option ng-value="MailAccountId.id" ng-repeat="MailAccountId in vm.mailAccounts" ng-disabled="MailAccountId.canSelect === false">{{ MailAccountId.name }}</md-option>\n </md-select>\n <div ng-messages="scheduleForm[\'MailAccountId\'].$error" ng-show="scheduleForm[\'MailAccountId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.MAILACCOUNT_REQUIRED">MailAccount field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.schedule.sendMail" class="md-block">\n <label translate="TOOLS.EMAILADDRESS">EmailAddress</label>\n <input type="text" name="email" ng-model="vm.schedule.email" ng-required="true">\n\n <div class="hint"><span translate="TOOLS.HELP.EMAILADDRESS"></span></div>\n <div ng-messages="scheduleForm[\'email\'].$error" ng-show="scheduleForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.EMAILADDRESS_REQUIRED">EmailAddress field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.schedule.sendMail" class="md-block">\n <label translate="TOOLS.EMAILCCADDRESS">EmailCcAddress</label>\n <input type="text" name="cc" ng-model="vm.schedule.cc">\n\n <div class="hint"><span translate="TOOLS.HELP.EMAILCCADDRESS"></span></div>\n <div ng-messages="scheduleForm[\'cc\'].$error" ng-show="scheduleForm[\'cc\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.EMAILCCADDRESS_REQUIRED">EmailCcAddress field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.schedule.sendMail" class="md-block">\n <label translate="TOOLS.EMAILBCCADDRESS">EmailBccAddress</label>\n <input type="text" name="bcc" ng-model="vm.schedule.bcc">\n\n <div class="hint"><span translate="TOOLS.HELP.EMAILBCCADDRESS"></span></div>\n <div ng-messages="scheduleForm[\'bcc\'].$error" ng-show="scheduleForm[\'bcc\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.EMAILBCCADDRESS_REQUIRED">EmailBccAddress field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.schedule.sendMail" class="md-block">\n <md-switch ng-model="vm.schedule.sendIfEmpty" aria-label="SendIfEmpty"><span translate="TOOLS.SENDIFEMPTY">SendIfEmpty</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="" name="description" ng-model="vm.schedule.description">\n\n <div ng-messages="scheduleForm[\'description\'].$error" ng-show="scheduleForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newSchedule" ng-click="vm.saveSchedule()" class="send-button md-accent md-raised" ng-disabled="scheduleForm.$invalid || scheduleForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newSchedule" ng-click="vm.addNewSchedule()" class="send-button md-accent md-raised" ng-disabled="scheduleForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_SCHEDULE" translate-attr-aria-label="TOOLS.ADD_SCHEDULE">\n ADD SCHEDULE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newSchedule" ng-click="vm.deleteSchedule($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/schedules/partialViews/reports/treeReports.html",'<md-dialog class="report-selection-dialog" aria-label="Report Selection" flex="60">\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2>Select Report</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeReportDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content>\n <div class="content" md-background-bg layout="row" layout-align="start start">\n <div layout="column" flex="30">\n <md-card class="padding-10 scrollable" ms-scroll>\n <div js-tree="vm.treeConfig" tree-events-obj="vm.treeDefaultEvents" ng-model="vm.treeDefaultData" tree="vm.treeDefaultInstance"></div>\n </md-card>\n <md-card class="padding-10 scrollable" ms-scroll>\n <div js-tree="vm.treeConfig" tree-events-obj="vm.treeCustomEvents" ng-model="vm.treeCustomData" tree="vm.treeCustomInstance"></div>\n </md-card>\n </div>\n <md-card flex="70">\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="h2 secondary-text">{{vm.currentNode.text}}</span>\n <p ng-if="vm.currentPath">\n <span class="text-boxed">{{vm.currentPath}}</span>\n </p>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select ng-model="vm.selectedReport" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getReports">\n <tr md-row>\n <th md-column md-order-by="id" width="10px">{{ "ANALYTICS.ID" | translate }}</th>\n <th md-column md-order-by="name">{{ "ANALYTICS.NAME" | translate }}</th>\n <th md-column md-order-by="description">{{ "ANALYTICS.DESCRIPTION" | translate }}</th>\n <th md-column md-order-by="createdAt">{{ "ANALYTICS.CREATED_AT" | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.reports.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="ANALYTICS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="report" md-select-id="id" ng-repeat="report in vm.reports.rows">\n <td md-cell class="id">{{ report.id }}</td>\n <td md-cell class="name">{{ report.name }}</td>\n <td md-cell class="description">{{ report.description }}</td>\n <td md-cell class="createdAt">{{ report.createdAt | date: "medium" }}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{ \'ANALYTICS.PAGE\' | translate }}:\', rowsPerPage: \'{{ \'ANALYTICS.ROWSPERPAGE\' | translate }}:\', of: \'{{ \'ANALYTICS.OF\' | translate }}\'}" md-limit="vm.query.limit" md-limit-options="[10]" md-page="vm.query.page" md-total="{{ vm.reports.count }}" md-on-paginate="vm.getReports" md-page-select></md-table-pagination>\n </md-card>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row">\n <span flex></span>\n <md-button class="md-raised" ng-click="vm.closeReportDialog()">CANCEL</md-button>\n <md-button class="md-accent md-raised" ng-click="vm.selectReport()">CONFIRM</md-button>\n </md-dialog-actions>\n</md-dialog>'),e.put("app/main/apps/tools/views/schedules/schedules.html",'<div id="schedules" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="TOOLS.SCHEDULER">Scheduler</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedScheduler.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedScheduler =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="TOOLS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-schedules-count">\n <span>{{vm.selectedScheduler.length}}</span>\n <span translate="TOOLS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TOOLS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllScheduler()" translate="TOOLS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectScheduler()" translate="TOOLS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedScheduler" csv-label="true" filename="schedules.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedScheduler($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- SCHEDULE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedScheduler" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getScheduler">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n <th md-column md-order-by="active">{{ \'TOOLS.ACTIVE\' | translate }}</th>\n <th md-column md-order-by="startAt">{{ \'TOOLS.VALIDITYSTART\' | translate }}</th>\n <th md-column md-order-by="endAt">{{ \'TOOLS.VALIDITYEND\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.schedules.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="schedule" md-select-id="id" ng-repeat="schedule in vm.schedules.rows">\n <td md-cell ng-if="schedule.userpic"><img class="avatar" alt="{{schedule.name}}" ng-src="api/users/{{schedule.id}}/avatar" /></td>\n <td md-cell ng-if="!schedule.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{schedule.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditSchedule($event, schedule)" md-cell class="id ">{{schedule.id}}</td>\n <td ng-click="vm.createOrEditSchedule($event, schedule)" md-cell class="name ">{{schedule.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(schedule, ev) : vm.createOrEditSchedule($event, schedule)" md-cell class="active ">\n <md-icon md-colors="{color: {{schedule.active ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{schedule.active ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.createOrEditSchedule($event, schedule)" md-cell class="startAt ">{{schedule.startAt | date:\'medium\' }}</td>\n <td ng-click="vm.createOrEditSchedule($event, schedule)" md-cell class="endAt ">{{schedule.endAt | date:\'medium\' }}</td>\n <td ng-click="vm.createOrEditSchedule($event, schedule)" md-cell class="description ">{{schedule.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(schedule, $event )" translate="TOOLS.EDIT_SCHEDULE">\n Edit Schedule\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.runconfirm(schedule, $event )" translate="TOOLS.RUN_SCHEDULE">\n Run Schedule\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(schedule, $event )" translate="TOOLS.DELETE_SCHEDULE">\n Delete Schedule\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.schedules.count}}" md-on-paginate="vm.getScheduler" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / SCHEDULE TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD SCHEDULE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-schedule-button" ng-click="vm.createOrEditSchedule($event)" aria-label="add schedule" translate translate-attr-aria-label="TOOLS.ADD_SCHEDULE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD SCHEDULE BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/sounds/create/dialog.html",'<md-dialog class="sound-dialog" aria-label="New Sound">\n <form name="soundForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.sound.name" ng-required="true" autofocus>\n\n <div ng-messages="soundForm[\'name\'].$error" ng-show="soundForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.sound.description">\n\n <div ng-messages="soundForm[\'description\'].$error" ng-show="soundForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newSound" ng-click="vm.saveSound()" class="send-button md-accent md-raised" ng-disabled="soundForm.$invalid || soundForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newSound" ng-click="vm.addNewSound()" class="send-button md-accent md-raised" ng-disabled="soundForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_SOUND" translate-attr-aria-label="TOOLS.ADD_SOUND">\n ADD SOUND\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newSound" ng-click="vm.deleteSound($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/sounds/sounds.html",'<div id="sounds" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="TOOLS.SOUNDS">Sounds</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedSounds.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedSounds =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="TOOLS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-sounds-count">\n <span>{{vm.selectedSounds.length}}</span>\n <span translate="TOOLS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TOOLS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllSounds()" translate="TOOLS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectSounds()" translate="TOOLS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedSounds" csv-label="true" filename="sounds.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedSounds($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- SOUND TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedSounds" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getSounds">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n <th md-column md-order-by="audio">{{ \'TOOLS.AUDIO\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.sounds.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="sound" md-select-id="id" ng-repeat="sound in vm.sounds.rows">\n <td md-cell ng-if="sound.userpic"><img class="avatar" alt="{{sound.name}}" ng-src="api/users/{{sound.id}}/avatar" /></td>\n <td md-cell ng-if="!sound.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{sound.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditSound($event, sound)" md-cell class="id ">{{sound.id}}</td>\n <td ng-click="vm.createOrEditSound($event, sound)" md-cell class="name ">{{sound.name}}</td>\n <td md-cell class="audio ">\n \x3c!-- audio recording directive --\x3e\n <ms-recording id="sound.id" model="\'sound\'"></ms-recording>\n \x3c!-- / audio recording directive --\x3e\n </td>\n <td ng-click="vm.createOrEditSound($event, sound)" md-cell class="description ">{{sound.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(sound, $event )" translate="TOOLS.EDIT_SOUND">\n Edit Sound\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.downloadfile2(sound, $event , \'sounds\' )" translate="TOOLS.DOWNLOAD_SOUND">\n Download Sound\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(sound, $event )" translate="TOOLS.DELETE_SOUND">\n Delete Sound\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.sounds.count}}" md-on-paginate="vm.getSounds" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / SOUND TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- UPLOAD SOUND BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="upload-sound-button" ng-click="vm.uploadSound($event)" aria-label="upload sound" translate translate-attr-aria-label="TOOLS.UPLOAD_SOUND">\n <md-icon md-font-icon="icon-upload"></md-icon>\n </md-button>\n \x3c!-- / UPLOAD SOUND BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/sounds/upload/dialog.html",'<md-dialog class="upload-dialog" aria-label="Upload ">\n <form name="uploadForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <div id="sound-uploader" ng-hide="vm.uploadState == \'uploading\'" flow-init="vm.ngFlowOptions" flow-name="vm.ngFlow.flow" flow-files-submitted="vm.upload()" flow-file-added="vm.fileAdded($file)" flow-file-success="vm.fileSuccess($file, $message)" flow-error="vm.uploadError($file, $message)" flow-complete="vm.uploadComplete()" flow-drop flow-drag-enter="vm.dropping=true" flow-drag-leave="vm.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n <div class="drop-text hint-text" layout="row" layout-align="center center">\n <span translate="TOOLS.DROP_TO_UPLOAD">Drop to upload</span>\n </div>\n\n <div class="upload-button" layout="column" layout-align="center center">\n <md-button class="md-accent md-raised" flow-btn>\n Upload\n </md-button>\n <span class="secondary-text mt-8" translate="TOOLS.DROP_TO_UPLOAD_MESSAGE">You can also drop your file here to upload.</span>\n </div>\n </div>\n\n <div layout="column" layout-align="space-between center" ng-show="vm.uploadState == \'uploading\'">\n <div>\n <span translate="TOOLS.UPLOADING">Uploading</span>\n <span>{{vm.sound.file.name}}</span>\n </div>\n <md-progress-linear md-mode="indeterminate"></md-progress-linear>\n </div>\n\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center"></div>\n <div layout="row">\n <md-button ng-click="vm.closeDialog()" ng-hide="vm.uploadState == \'uploading\'" class="md-accent md-raised" aria-label="FINISH" translate="TOOLS.FINISH" translate-attr-aria-label="TOOLS.FINISH">\n FINISH\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/tags/create/dialog.html",'<md-dialog class="tag-dialog" aria-label="New Tag">\n <form name="tagForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.tag.name" ng-required="true" autofocus>\n\n <div ng-messages="tagForm[\'name\'].$error" ng-show="tagForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.tag.description">\n\n <div ng-messages="tagForm[\'description\'].$error" ng-show="tagForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <div flex md-color-picker ng-model="vm.tag.color" label="{{\'TOOLS.COLOR\' | translate}}" md-color-hex="true" md-color-rgb="false" md-color-hsl="false" md-color-history="false" md-color-material-palette="false" md-color-alpha-channel="false" open-on-input="true"></div>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newTag" ng-click="vm.saveTag()" class="send-button md-accent md-raised" ng-disabled="tagForm.$invalid || tagForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newTag" ng-click="vm.addNewTag()" class="send-button md-accent md-raised" ng-disabled="tagForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_TAG" translate-attr-aria-label="TOOLS.ADD_TAG">\n ADD TAG\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newTag" ng-click="vm.deleteTag($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/tags/tags.html",'<div id="tags" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="TOOLS.TAGS">Tags</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedTags.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedTags =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="TOOLS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-tags-count">\n <span>{{vm.selectedTags.length}}</span>\n <span translate="TOOLS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TOOLS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllTags()" translate="TOOLS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectTags()" translate="TOOLS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedTags" csv-label="true" filename="tags.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedTags($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- TAG TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedTags" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTags">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n <th md-column md-order-by="color">{{ \'TOOLS.COLOR\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.tags.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="tag" md-select-id="id" ng-repeat="tag in vm.tags.rows">\n <td md-cell ng-if="tag.userpic"><img class="avatar" alt="{{tag.name}}" ng-src="api/users/{{tag.id}}/avatar" /></td>\n <td md-cell ng-if="!tag.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{tag.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditTag($event, tag)" md-cell class="id ">{{tag.id}}</td>\n <td ng-click="vm.createOrEditTag($event, tag)" md-cell class="name ">{{tag.name}}</td>\n <td ng-click="vm.createOrEditTag($event, tag)" md-cell class="description ">{{tag.description}}</td>\n <td ng-click="vm.createOrEditTag($event, tag)" md-cell class="color ">{{tag.color}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(tag, $event )" translate="TOOLS.EDIT_TAG">\n Edit Tag\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(tag, $event )" translate="TOOLS.DELETE_TAG">\n Delete Tag\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.tags.count}}" md-on-paginate="vm.getTags" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / TAG TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD TAG BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-tag-button" ng-click="vm.createOrEditTag($event)" aria-label="add tag" translate translate-attr-aria-label="TOOLS.ADD_TAG">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD TAG BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/templates/create/dialog.html",'<md-dialog class="template-dialog" aria-label="New Template">\n <form name="templateForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.template.name" ng-required="true" autofocus>\n\n <div ng-messages="templateForm[\'name\'].$error" ng-show="templateForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="TOOLS.CONTENT">Content</label>\n <textarea aria-label="Content html" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', removePlugins: \'magicline\' }" ng-model="vm.template.html"></textarea>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.template.description">\n\n <div ng-messages="templateForm[\'description\'].$error" ng-show="templateForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newTemplate" ng-click="vm.saveTemplate()" class="send-button md-accent md-raised" ng-disabled="templateForm.$invalid || templateForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newTemplate" ng-click="vm.addNewTemplate()" class="send-button md-accent md-raised" ng-disabled="templateForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_TEMPLATE" translate-attr-aria-label="TOOLS.ADD_TEMPLATE">\n ADD TEMPLATE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newTemplate" ng-click="vm.deleteTemplate($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/templates/templates.html",'<div id="templates" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="TOOLS.TEMPLATES">Templates</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedTemplates.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedTemplates =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="TOOLS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-templates-count">\n <span>{{vm.selectedTemplates.length}}</span>\n <span translate="TOOLS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TOOLS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllTemplates()" translate="TOOLS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectTemplates()" translate="TOOLS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedTemplates" csv-label="true" filename="templates.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedTemplates($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- TEMPLATE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedTemplates" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTemplates">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.templates.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="template" md-select-id="id" ng-repeat="template in vm.templates.rows">\n <td md-cell ng-if="template.userpic"><img class="avatar" alt="{{template.name}}" ng-src="api/users/{{template.id}}/avatar" /></td>\n <td md-cell ng-if="!template.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{template.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditTemplate($event, template)" md-cell class="id ">{{template.id}}</td>\n <td ng-click="vm.createOrEditTemplate($event, template)" md-cell class="name ">{{template.name}}</td>\n <td ng-click="vm.createOrEditTemplate($event, template)" md-cell class="description ">{{template.description}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(template, $event )" translate="TOOLS.EDIT_TEMPLATE">\n Edit Template\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(template, $event )" translate="TOOLS.DELETE_TEMPLATE">\n Delete Template\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.templates.count}}" md-on-paginate="vm.getTemplates" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / TEMPLATE TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD TEMPLATE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-template-button" ng-click="vm.createOrEditTemplate($event)" aria-label="add template" translate translate-attr-aria-label="TOOLS.ADD_TEMPLATE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD TEMPLATE BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/triggers/create/dialog.html",'<md-dialog class="trigger-dialog" aria-label="New Trigger">\n <form name="triggerForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.newTrigger ? \'TOOLS.NEW_TRIGGER\' : \'TOOLS.EDIT_TRIGGER\' | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.trigger.name" required md-autofocus>\n <div ng-messages="triggerForm[\'name\'].$error" ng-show="triggerForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.CHANNEL">Channel</label>\n <md-select name="channel" ng-model="vm.trigger.channel" required ng-disabled="!vm.newTrigger">\n <md-option ng-value="\'voice\'"> {{ \'TOOLS.VOICE\' | translate }} </md-option>\n <md-option ng-value="\'openchannel\'" ng-if="vm.license.openchannel"> {{ \'TOOLS.OPENCHANNEL\' | translate }}\n </md-option>\n <md-option ng-value="\'chat\'" ng-if="vm.license.chat"> {{ \'TOOLS.CHAT\' | translate }} </md-option>\n <md-option ng-value="\'mail\'" ng-if="vm.license.mail"> {{ \'TOOLS.MAIL\' | translate }} </md-option>\n <md-option ng-value="\'sms\'" ng-if="vm.license.messaging"> {{ \'TOOLS.SMS\' | translate }} </md-option>\n <md-option ng-value="\'fax\'" ng-if="vm.license.fax"> {{ \'TOOLS.FAX\' | translate }} </md-option>\n <md-option ng-value="\'whatsapp\'" ng-if="vm.license.whatsapp"> {{ \'TOOLS.WHATSAPP\' | translate }} </md-option>\n </md-select>\n <div ng-messages="triggerForm[\'channel\'].$error" ng-show="triggerForm[\'channel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.trigger.status" aria-label="Status"><span translate="TOOLS.STATUS">Status</span>\n </md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.trigger.description">\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{ error.message }}</span>\n <span class="type">({{ error.type }})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newTrigger" ng-click="vm.saveTrigger()" class="send-button md-accent md-raised" ng-disabled="triggerForm.$invalid || triggerForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newTrigger" ng-click="vm.addNewTrigger()" class="send-button md-accent md-raised" ng-disabled="triggerForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_TRIGGER" translate-attr-aria-label="TOOLS.ADD_TRIGGER">\n ADD TRIGGER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newTrigger" ng-click="vm.deleteTrigger($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/triggers/edit/actions/actions.html",'<div ng-controller="TriggerActionsController as vm_dc" ng-init="vm_dc.onInit(vm.trigger, vm.crudPermissions)">\r\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedTriggerActions.length">\r\n <div class="md-toolbar-tools">\r\n <span class="md-subhead" translate="TOOLS.ACTIONS">Actions</span>\r\n <ms-search-bar on-search="vm_dc.getTriggerActions()" query="vm_dc.query" debounce="300" direction="down">\r\n </ms-search-bar>\r\n <div flex></div>\r\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditTriggerAction($event)" aria-label="add action" translate translate-attr-label="TOOLS.ADD_ACTION">\r\n <md-icon md-font-icon="icon-plus"></md-icon>\r\n </md-button>\r\n </div>\r\n </md-toolbar>\r\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedTriggerActions.length">\r\n <div class="md-toolbar-tools">\r\n <span class="md-subhead">{{ vm_dc.selectedTriggerActions.length }}\r\n {{ vm_dc.selectedTriggerActions.length > 1 ? \'items\' : \'item\' }} selected</span>\r\n <div flex></div>\r\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedTriggerActions" csv-label="true" filename="triggers.csv">\r\n <md-icon md-font-icon="icon-file-excel"></md-icon>\r\n </button>\r\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedTriggerActions($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\r\n <md-icon md-font-icon="icon-delete"></md-icon>\r\n </md-button>\r\n </div>\r\n </md-toolbar>\r\n <md-table-container class="font-size-12">\r\n <table md-table md-row-select multiple ng-model="vm_dc.selectedTriggerActions" md-progress="vm_dc.promise">\r\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getTriggerActions">\r\n <tr md-row>\r\n <th md-column md-order-by="id">\r\n {{ \'TOOLS.ID\' | translate }}\r\n </th>\r\n <th md-column md-order-by="action">\r\n {{ \'TOOLS.ACTION\' | translate }}\r\n </th>\r\n <th md-column md-order-by="data1">\r\n {{ \'TOOLS.TYPE\' | translate }}\r\n </th>\r\n <th md-column md-order-by="data2">\r\n {{ \'TOOLS.INFO\' | translate }}\r\n </th>\r\n <th md-column md-order-by="createdAt">\r\n {{ \'TOOLS.CREATED_AT\' | translate }}\r\n </th>\r\n <th md-column width="10px"></th>\r\n </tr>\r\n </thead>\r\n <tbody md-body>\r\n <tr md-row md-select="action" md-select-id="id" ng-repeat="action in vm_dc.triggerActions.rows">\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" md-cell>\r\n {{ action.id }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" md-cell>\r\n {{ \'TOOLS.\' + (action.action | snakecase | uppercase) | translate }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'browser\'" md-cell>\r\n {{ action.data1 === \'1\' ? \'CTI URL\' : \'Popup\' }} </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'contactManager\'" md-cell>\r\n {{ (vm_dc.lists | filter : {\'id\':(action.data1 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'contactManager\'" md-cell>\r\n {{ action.data2 === \'1\' ? \'TOOLS.YES\' : \'TOOLS.NO\' | uppercase | translate }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'urlForward\'" md-cell>\r\n {{ action.data1 }} </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="!action.data1" md-cell>\r\n {{ action.data1 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="!action.data2" md-cell>\r\n {{ action.data2 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'urlForward\'" md-cell>\r\n {{ action.data2 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'script\' && action.data2" md-cell>\r\n {{ action.data2 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'script\' && action.data1" md-cell>\r\n {{ action.data1 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'jscripty\'" md-cell>\r\n {{ (vm_dc.projects | filter : {\'id\':(action.data1 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\'" md-cell>\r\n {{ vm_dc.integrationTypes[action.data1] }} </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'zendesk\'" md-cell>\r\n {{ (vm_dc.zendeskAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'desk\'" md-cell>\r\n {{ (vm_dc.deskAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'zoho\'" md-cell>\r\n {{ (vm_dc.zohoAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'salesforce\'" md-cell>\r\n {{ (vm_dc.salesforceAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'sugarcrm\'" md-cell>\r\n {{ (vm_dc.sugarcrmAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'freshdesk\'" md-cell>\r\n {{ (vm_dc.freshdeskAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'vtiger\'" md-cell>\r\n {{ (vm_dc.vtigerAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'dynamics365\'" md-cell>\r\n {{ (vm_dc.dynamics365Accounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'servicenow\'" md-cell>\r\n {{ (vm_dc.servicenowAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'freshsales\'" md-cell>\r\n {{ (vm_dc.freshsalesAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'motionbar\'" md-cell>\r\n {{ vm_dc.motionBarOptions[action.data1] }} </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'motionbar\' && action.data1 === \'1\'" md-cell>\r\n {{ action.data2 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'motionbar\' && action.data1 === \'2\'" md-cell>\r\n {{ action.data2 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'motionbar\' && action.data1 === \'0\'" md-cell>\r\n {{ (vm_dc.templates | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'browser\' && action.data1 === \'0\'" md-cell>\r\n {{ (vm_dc.templates | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'browser\' && action.data1 === \'1\'" md-cell>\r\n {{ action.data2 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" md-cell>\r\n {{ action.createdAt | formatdate }}\r\n </td>\r\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\r\n <md-menu>\r\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\r\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\r\n </md-button>\r\n <md-menu-content width="3">\r\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\r\n <md-button ng-click="vm_dc.createOrEditTriggerAction($event, action)" translate="TOOLS.EDIT_ACTION">\r\n Edit Action\r\n </md-button>\r\n </md-menu-item>\r\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\r\n <md-button ng-click="vm_dc.deleteConfirm(action, $event)" translate="TOOLS.DELETE_ACTION">\r\n Delete Action\r\n </md-button>\r\n </md-menu-item>\r\n </md-menu-content>\r\n </md-menu>\r\n </td>\r\n </tr>\r\n <tr md-row ng-if="!vm_dc.triggerActions.rows.length">\r\n <td md-cell colspan="5">\r\n <div layout="row" layout-align="center center">\r\n <span class="text-boxed-light" translate="TOOLS.NO_ACTION_AVAILABLE">No action\r\n available</span>\r\n </div>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </md-table-container>\r\n <md-table-pagination md-label="{page: \'{{ \'TOOLS.PAGE\' | translate }}:\', rowsPerPage: \'{{ \'TOOLS.ROWSPERPAGE\' | translate }}:\', of: \'{{ \'TOOLS.OF\' | translate }}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{ vm_dc.triggerActions.count }}" md-on-paginate="vm_dc.getTriggerActions" md-page-select>\r\n </md-table-pagination>\r\n</div>'),e.put("app/main/apps/tools/views/triggers/edit/actions/create/dialog.html",'<md-dialog class="action-dialog" aria-label="New Action">\n <form name="actionForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.newAction ? \'TOOLS.NEW_ACTION\' : \'TOOLS.EDIT_ACTION\' | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <md-input-container class="md-block">\n <label translate="TOOLS.ACTION">Action</label>\n <md-select name="action" ng-model="vm.action.action" ng-init="vm.onActionInit()" ng-change="vm.onActionSelection()" md-autofocus required ng-disabled="!vm.newAction">\n <md-option ng-value="\'contactManager\'" ng-if="vm.trigger.channel == \'voice\'">\n {{ \'TOOLS.CONTACT_MANAGER\' | translate }} </md-option>\n <md-option ng-value="\'integration\'" ng-if="vm.trigger.channel == \'voice\' && ((vm.newAction && vm.hasIntegrationsPermissions) || !vm.newAction)">\n {{ \'TOOLS.INTEGRATIONS\' | translate }} </md-option>\n <md-option ng-value="\'motionbar\'"> {{ \'TOOLS.MOTIONBAR\' | translate }} </md-option>\n <md-option ng-value="\'jscripty\'"> {{ \'TOOLS.JSCRIPTY\' | translate }} </md-option>\n <md-option ng-value="\'urlForward\'"> {{ \'TOOLS.URL_FORWARD\' | translate }} </md-option>\n <md-option ng-value="\'browser\'"> {{ \'TOOLS.BROWSER\' | translate }} </md-option>\n <md-option ng-value="\'bot\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.BOT\' | translate }} </md-option>\n <md-option ng-value="\'script\'"> {{ \'TOOLS.SCRIPT\' | translate }} </md-option>\n </md-select>\n <div ng-messages="actionForm[\'action\'].$error" ng-show="actionForm[\'action\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.ACTION_REQUIRED">Action field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'jscripty\'" class="md-block">\n <label translate="TOOLS.PROJECT">Project</label>\n <md-select name="data1" ng-model="vm.action.data1" required>\n <md-option ng-value="\'\'+data1.id" ng-repeat="data1 in vm.projects" ng-disabled="data1.canSelect === false">\n {{ data1.name }}</md-option>\n </md-select>\n <div ng-messages="actionForm[\'data1\'].$error" ng-show="actionForm[\'data1\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.PROJECT_REQUIRED">Project field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'browser\'" class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select name="data1" ng-model="vm.action.data1" ng-change="vm.onTypeSelection()" required>\n <md-option ng-value="\'0\'">Popup</md-option>\n <md-option ng-value="\'1\'">CTI URL</md-option>\n </md-select>\n <div ng-messages="actionForm[\'data1\'].$error" ng-show="actionForm[\'data1\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'contactManager\'" class="md-block">\n <label translate="TOOLS.LIST">List</label>\n <md-select name="data1" ng-model="vm.action.data1" ng-change="vm.onListSelection()" required>\n <md-option ng-value="\'\'+data1.id" ng-repeat="data1 in vm.lists" ng-disabled="data1.canSelect === false">\n {{ data1.name }}</md-option>\n </md-select>\n <div ng-messages="actionForm[\'data1\'].$error" ng-show="actionForm[\'data1\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'contactManager\'" class="md-block">\n <label translate="TOOLS.SEARCH_FIELDS">Search fields</label>\n <md-select name="fields" ng-model="vm.action.data3" ng-init="vm.onSearchFieldsInit()" multiple required>\n <md-optgroup label="{{ \'TOOLS.STANDARD\' | translate }}">\n <md-option ng-value="field.columnName" ng-repeat="field in vm.contactFields">\n {{ field.displayName }}</md-option>\n </md-optgroup>\n <md-optgroup label="{{ \'TOOLS.LIST\' | translate }}" ng-if="vm.listFields.length > 0">\n <md-option ng-value="field.columnName" ng-repeat="field in vm.listFields">\n {{ field.name }}</md-option>\n </md-optgroup>\n <md-optgroup label="{{ \'TOOLS.GLOBALS\' | translate }}" ng-if="vm.customFields.length > 0">\n <md-option ng-value="field.columnName" ng-repeat="field in vm.customFields">\n {{ field.displayName }}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="actionForm[\'data3\'].$error" ng-show="actionForm[\'data3\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.SEARCH_FIELDS_REQUIRED">Search fields field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'contactManager\'" class="md-block">\n <label translate="TOOLS.AUTOCREATECONTACT">Create contact automatically</label>\n <md-select name="data2" ng-model="vm.action.data2" ng-change="vm.onAutocreateSelection()" required>\n <md-option ng-value="\'1\'"> {{ \'TOOLS.YES\' | translate }} </md-option>\n <md-option ng-value="\'0\'"> {{ \'TOOLS.NO\' | translate }} </md-option>\n </md-select>\n <div ng-messages="actionForm[\'data2\'].$error" ng-show="actionForm[\'data2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.AUTOCREATECONTACT_REQUIRED">AutoCreateContact field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'contactManager\' && vm.action.data2 === \'1\'" class="md-block">\n <label translate="TOOLS.AUTOCREATE_FIELD">Autocreate field</label>\n <md-select name="autocreateField" ng-model="vm.action.data4" ng-required="vm.action.data2 === \'1\'">\n <md-optgroup label="{{ \'TOOLS.STANDARD\' | translate }}">\n <md-option ng-value="field.columnName" ng-repeat="field in vm.contactFields">\n {{ field.displayName }}</md-option>\n </md-optgroup>\n <md-optgroup label="{{ \'TOOLS.LIST\' | translate }}" ng-if="vm.listFields.length > 0">\n <md-option ng-value="field.columnName" ng-repeat="field in vm.listFields">\n {{ field.name }}</md-option>\n </md-optgroup>\n <md-optgroup label="{{ \'TOOLS.GLOBALS\' | translate }}" ng-if="vm.customFields.length > 0">\n <md-option ng-value="field.columnName" ng-repeat="field in vm.customFields">\n {{ field.displayName }}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="actionForm[\'data4\'].$error" ng-show="actionForm[\'data4\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.AUTOCREATE_FIELD_REQUIRED">Autocreate field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'urlForward\'" class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select name="data1" ng-model="vm.action.data1" required>\n <md-option ng-value="\'GET\'">GET</md-option>\n <md-option ng-value="\'POST\'">POST</md-option>\n <md-option ng-value="\'PUT\'">PUT</md-option>\n <md-option ng-value="\'DELETE\'">DELETE</md-option>\n </md-select>\n <div ng-messages="actionForm[\'data1\'].$error" ng-show="actionForm[\'data1\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'urlForward\'" class="md-block">\n <label translate="TOOLS.URL">Url</label>\n <input type="url" name="data2" ng-model="vm.action.data2" ng-required="true">\n <div ng-messages="actionForm[\'data2\'].$error" ng-show="actionForm[\'data2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.URL_REQUIRED">Url field is required</span>\n </div>\n <div ng-message="url">\n <span translate="TOOLS.ERRORS.URL_MUST_VALID_URL">Url must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'urlForward\'" class="md-block">\n <label translate="TOOLS.TIMEOUT">Timeout</label>\n <input type="number" name="data5" ng-model="vm.action.data5" min="1" max="10" ng-required="true">\n <div class="hint"><span translate="TOOLS.HELP.TIMEOUT"></span></div>\n <div ng-messages="actionForm[\'data5\'].$error" ng-show="actionForm[\'data5\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="TOOLS.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or\n equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="TOOLS.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or\n equal than</span> <span>10</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'urlForward\'" class="md-block">\n <label translate="TOOLS.HEADERS">Headers</label>\n <textarea name="data6" ng-model="vm.action.data6"></textarea>\n <div class="hint"><span translate="TOOLS.HELP.HEADERS"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'urlForward\' && (vm.action.data1 == \'POST\' || vm.action.data1 == \'PUT\')" class="md-block">\n <label translate="TOOLS.BODY">Body</label>\n <textarea name="data7" ng-model="vm.action.data7"></textarea>\n <div class="hint"><span translate="TOOLS.HELP.BODY"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'script\'" class="md-block">\n <label translate="TOOLS.SCRIPT_TYPE">Script_Type</label>\n <input type="input" name="data2" ng-model="vm.action.data2">\n <div class="hint"><span translate="TOOLS.HELP.SCRIPT_TYPE"></span></div>\n <div ng-messages="actionForm[\'data2\'].$error" ng-show="actionForm[\'data2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.SCRIPT_TYPE_REQUIRED">Script_Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'script\'" class="md-block">\n <label translate="TOOLS.SCRIPT_INFO">Script_Info</label>\n <input type="input" name="data1" ng-model="vm.action.data1">\n <div class="hint"><span translate="TOOLS.HELP.SCRIPT_INFO"></span></div>\n <div ng-messages="actionForm[\'data1\'].$error" ng-show="actionForm[\'data1\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.SCRIPT_INFO_REQUIRED">Script_Info field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'script\'" class="md-block">\n <label translate="TOOLS.SCRIPT">Script</label>\n <textarea name="data3" ng-model="vm.action.data3" required></textarea>\n <div class="hint"><span translate="TOOLS.HELP.SCRIPT"></span></div>\n <div ng-messages="actionForm[\'data3\'].$error" ng-show="actionForm[\'data3\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.SCRIPT_REQUIRED">Script field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'integration\'" class="md-block">\n <label translate="TOOLS.INTEGRATION">Integration</label>\n <md-select name="data1" ng-model="vm.action.data1" ng-init="vm.onIntegrationInit()" ng-change="vm.onIntegrationSelection()" required>\n <md-option ng-value="\'desk\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1306]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1306])">Desk</md-option>\n <md-option ng-value="\'dynamics365\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1309]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1309])">Dynamics365</md-option>\n <md-option ng-value="\'freshdesk\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1303]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1303])">Freshdesk</md-option>\n <md-option ng-value="\'freshsales\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1304]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1304])">Freshsales</md-option>\n <md-option ng-value="\'salesforce\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1302]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1302])">Salesforce</md-option>\n <md-option ng-value="\'servicenow\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1310]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1310])">ServiceNow</md-option>\n <md-option ng-value="\'sugarcrm\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1305]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1305])">SugarCRM</md-option>\n <md-option ng-value="\'vtiger\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1308]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1308])">vTiger</md-option>\n <md-option ng-value="\'zendesk\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1301]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1301])">Zendesk</md-option>\n <md-option ng-value="\'zoho\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1307]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1307])">Zoho</md-option>\n </md-select>\n <div ng-messages="actionForm[\'data1\'].$error" ng-show="actionForm[\'data1\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.INTEGRATION_REQUIRED">Integration field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'integration\' && vm.action.data1" class="md-block">\n <label translate="TOOLS.ACCOUNT">Account</label>\n <md-select name="data2" ng-model="vm.action.data2" ng-change="vm.onIntegrationAccountSelection()" ng-disabled="vm.action.isIntegrationDisabled" required>\n <md-option ng-value="\'\'+data2.id" ng-repeat="data2 in vm.accounts">{{ data2.name }}</md-option>\n </md-select>\n <div ng-messages="actionForm[\'data2\'].$error" ng-show="actionForm[\'data2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.ACCOUNT_REQUIRED">Account field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'integration\' && vm.action.data1 && vm.action.data2" class="md-block">\n <label translate="TOOLS.CONFIGURATION">Configuration</label>\n <md-select name="data3" ng-model="vm.action.data3" required ng-disabled="vm.action.isIntegrationDisabled">\n <md-option ng-value="\'\'+data3.id" ng-repeat="data3 in vm.configurations | filter : { AccountId: (vm.action.data2 | toInteger) } : true">{{\n data3.name }}</md-option>\n </md-select>\n <div ng-messages="actionForm[\'data3\'].$error" ng-show="actionForm[\'data3\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.CONFIGURATION_REQUIRED">Configuration field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'motionbar\'" class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select name="data1" ng-model="vm.action.data1" ng-change="vm.onTypeSelection()" required>\n <md-option ng-value="\'0\'">Popup</md-option>\n <md-option ng-value="\'1\'">CTI URL</md-option>\n <md-option ng-value="\'2\'">Windows App</md-option>\n </md-select>\n <div ng-messages="actionForm[\'data1\'].$error" ng-show="actionForm[\'data1\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'motionbar\' && vm.action.data1 == \'1\'" class="md-block">\n <label translate="TOOLS.URL">Url</label>\n <input type="url" name="data2" ng-model="vm.action.data2" ng-required="true">\n <div ng-messages="actionForm[\'data2\'].$error" ng-show="actionForm[\'data2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.URL_REQUIRED">Url field is required</span>\n </div>\n <div ng-message="url">\n <span translate="TOOLS.ERRORS.URL_MUST_VALID_URL">Url must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'motionbar\' && vm.action.data1 == \'2\'" class="md-block">\n <label translate="TOOLS.APPLICATION">Application</label>\n <input type="text" name="data2" ng-model="vm.action.data2" ng-required="true">\n <div ng-messages="actionForm[\'data2\'].$error" ng-show="actionForm[\'data2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.APPLICATION_REQUIRED">Application field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'motionbar\' && vm.action.data1 == \'2\'" class="md-block">\n <label translate="TOOLS.ARGUMENTS">Arguments</label>\n <input type="text" name="data3" ng-model="vm.action.data3">\n <div ng-messages="actionForm[\'data3\'].$error" ng-show="actionForm[\'data3\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.ARGUMENTS_REQUIRED">Arguments field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'motionbar\' && vm.action.data1 == \'0\'" class="md-block">\n <label translate="TOOLS.TEMPLATE">Template</label>\n <md-select name="data2" ng-model="vm.action.data2" required>\n <md-option ng-value="\'\'+data2.id" ng-repeat="data2 in vm.templates" ng-disabled="data2.canSelect === false">\n {{ data2.name }}</md-option>\n </md-select>\n <div ng-messages="actionForm[\'data2\'].$error" ng-show="actionForm[\'data2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TEMPLATE_REQUIRED">Template field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'browser\' && vm.action.data1 == \'0\'" class="md-block">\n <label translate="TOOLS.TEMPLATE">Template</label>\n <md-select name="data2" ng-model="vm.action.data2" required>\n <md-option ng-value="\'\'+data2.id" ng-repeat="data2 in vm.templates" ng-disabled="data2.canSelect === false">\n {{ data2.name }}</md-option>\n </md-select>\n <div ng-messages="actionForm[\'data2\'].$error" ng-show="actionForm[\'data2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TEMPLATE_REQUIRED">Template field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'browser\' && vm.action.data1 == \'1\'" class="md-block">\n <label translate="TOOLS.URL">Url</label>\n <input type="url" name="data2" ng-model="vm.action.data2" ng-required="true">\n <div ng-messages="actionForm[\'data2\'].$error" ng-show="actionForm[\'data2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.URL_REQUIRED">Url field is required</span>\n </div>\n <div ng-message="url">\n <span translate="TOOLS.ERRORS.URL_MUST_VALID_URL">Url must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.action.action == \'motionbar\' || vm.action.action == \'browser\') && vm.action.data1 == \'1\'" class="md-block">\n <label translate="TOOLS.EVENTVARIABLES">EventVariables</label>\n <md-select name="data3" ng-model="vm.action.data3" required>\n <md-option ng-value="\'1\'"> {{ \'TOOLS.YES\' | translate }} </md-option>\n <md-option ng-value="\'0\'"> {{ \'TOOLS.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.EVENTVARIABLES"></span></div>\n <div ng-messages="actionForm[\'data3\'].$error" ng-show="actionForm[\'data3\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.EVENTVARIABLES_REQUIRED">EventVariables field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'browser\' && vm.action.data1 == \'1\'" class="md-block">\n <label translate="TOOLS.LOCATION">Location</label>\n <md-select name="data4" ng-model="vm.action.data4" required ng-change="vm.onActionLocationChange()">\n <md-option ng-value="0"> {{ \'TOOLS.NEW_TAB\' | translate }} </md-option>\n <md-option ng-value="1"> {{ \'TOOLS.NEW_WINDOW\' | translate }} </md-option>\n <md-option ng-value="2"> {{ \'TOOLS.MOTION_TAB\' | translate }} </md-option>\n </md-select>\n <div ng-messages="actionForm[\'data4\'].$error" ng-show="actionForm[\'data4\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.LOCATION_REQUIRED">Location field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'browser\' && vm.action.data4 == \'1\'" class="md-block">\n <label translate="TOOLS.WINDOWWIDTH">WindowWidth</label>\n <input type="text" name="data5" ng-model="vm.action.data5">\n <div ng-messages="actionForm[\'data5\'].$error" ng-show="actionForm[\'data5\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.WINDOWWIDTH_REQUIRED">WindowWidth field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'browser\' && vm.action.data4 == \'1\'" class="md-block">\n <label translate="TOOLS.WINDOWHEIGHT">WindowHeight</label>\n <input type="text" name="data6" ng-model="vm.action.data6">\n <div ng-messages="actionForm[\'data6\'].$error" ng-show="actionForm[\'data6\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.WINDOWHEIGHT_REQUIRED">WindowHeight field is required</span>\n </div>\n </div>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newAction" ng-click="vm.saveAction()" class="send-button md-accent md-raised" ng-disabled="actionForm.$invalid || actionForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newAction" ng-click="vm.addNewAction()" class="send-button md-accent md-raised" ng-disabled="actionForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_ACTION" translate-attr-aria-label="TOOLS.ADD_ACTION">\n ADD ACTION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newAction" ng-click="vm.deleteAction($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/triggers/edit/allconditions/allconditions.html",'<div ng-controller="TriggerAllConditionsController as vm_dc" ng-init="vm_dc.onInit(vm.trigger, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedAllConditions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="TOOLS.ALLCONDITIONS">All Conditions</span>\n <ms-search-bar on-search="vm_dc.getAllConditions()" query="vm_dc.query" debounce="300" direction="down">\n </ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditAllCondition($event)" aria-label="add allCondition" translate translate-attr-label="TOOLS.ADD_ALLCONDITION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedAllConditions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{ vm_dc.selectedAllConditions.length }}\n {{ vm_dc.selectedAllConditions.length > 1 ? \'items\' : \'item\' }} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedAllConditions" csv-label="true" filename="triggers.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedAllConditions($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedAllConditions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getAllConditions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'TOOLS.ID\' | translate }}\n </th>\n <th md-column md-order-by="field">\n {{ \'TOOLS.FIELD\' | translate }}\n </th>\n <th md-column md-order-by="operator">\n {{ \'TOOLS.OPERATOR\' | translate }}\n </th>\n <th md-column md-order-by="value">\n {{ \'TOOLS.VALUE\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'TOOLS.CREATED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="allCondition" md-select-id="id" ng-repeat="allCondition in vm_dc.allConditions.rows">\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" md-cell>\n {{ allCondition.id }}\n </td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" md-cell>\n {{ \'TOOLS.\' + vm_dc.fields[allCondition.field] | uppercase | translate }}\n </td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" md-cell>\n {{ \'TOOLS.\' + allCondition.operator | uppercase | translate }}\n </td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="!allCondition.value" md-cell>\n {{ allCondition.value }}\n </td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'chat\' && allCondition.field == \'account\'" md-cell>\n {{ (vm_dc.chatWebsites | filter : {\'id\':(allCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'mail\' && allCondition.field == \'account\'" md-cell>\n {{ (vm_dc.mailAccounts | filter : {\'id\':(allCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'sms\' && allCondition.field == \'account\'" md-cell>\n {{ (vm_dc.smsAccounts | filter : {\'id\':(allCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'whatsapp\' && allCondition.field == \'account\'" md-cell>\n {{ (vm_dc.whatsappAccounts | filter : {\'id\': (allCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'fax\' && allCondition.field == \'account\'" md-cell>\n {{ (vm_dc.faxAccounts | filter : {\'id\': (allCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'openchannel\' && allCondition.field == \'account\'" md-cell>\n {{ (vm_dc.openchannelAccounts | filter : {\'id\': (allCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'voice\' && allCondition.field == \'queue\'" md-cell>\n {{ (vm_dc.queues | filter : {\'name\':allCondition.value} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'voice\' && allCondition.field == \'routeId\'" md-cell>\n {{ (vm_dc.outboundRoutes | filter : {\'id\':(allCondition.value | toInteger)} : true)[0].exten }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'voice\' && allCondition.field == \'agent\'" md-cell>\n {{ (vm_dc.agents | filter : {\'name\':allCondition.value} : true)[0].fullname }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'voice\' && allCondition.field == \'lastevent\'" md-cell>\n {{ vm_dc.callStatuses[allCondition.value] }} </td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel != \'voice\' && allCondition.field == \'interaction\'" md-cell>\n {{ allCondition.value | capitalize }} </td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel != \'voice\' && allCondition.field == \'message\'" md-cell>\n {{ vm_dc.messageStatuses[allCondition.value] }} </td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" md-cell>\n {{ allCondition.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" translate="TOOLS.EDIT_ALLCONDITION">\n Edit AllCondition\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(allCondition, $event)" translate="TOOLS.DELETE_ALLCONDITION">\n Delete AllCondition\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.allConditions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="TOOLS.NO_ALLCONDITION_AVAILABLE">No condition\n available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{ \'TOOLS.PAGE\' | translate }}:\', rowsPerPage: \'{{ \'TOOLS.ROWSPERPAGE\' | translate }}:\', of: \'{{ \'TOOLS.OF\' | translate }}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{ vm_dc.allConditions.count }}" md-on-paginate="vm_dc.getAllConditions" md-page-select>\n </md-table-pagination>\n</div>'),e.put("app/main/apps/tools/views/triggers/edit/allconditions/create/dialog.html",'<md-dialog class="allCondition-dialog" aria-label="New AllCondition">\n <form name="allConditionForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.newAllCondition ? \'TOOLS.NEW_ALLCONDITION\' : \'TOOLS.EDIT_ALLCONDITION\' | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <md-input-container class="md-block">\n <label translate="TOOLS.FIELD">Field</label>\n <md-select name="field" ng-model="vm.allCondition.field" ng-change="vm.onFieldSelection()" md-autofocus required>\n <md-option ng-value="\'queue\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.QUEUE\' | translate }}\n </md-option>\n <md-option ng-value="\'lastevent\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.CALL_STATUS\' | translate }}\n </md-option>\n <md-option ng-value="\'routeId\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.OUTBOUNDROUTE\' | translate }}\n </md-option>\n <md-option ng-value="\'agent\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.AGENT\' | translate }}\n </md-option>\n <md-option ng-value="\'account\'" ng-if="vm.trigger.channel != \'voice\'"> {{ \'TOOLS.ACCOUNT\' | translate }}\n </md-option>\n <md-option ng-value="\'interaction\'" ng-if="vm.trigger.channel != \'voice\'">\n {{ \'TOOLS.INTERACTION\' | translate }} </md-option>\n <md-option ng-value="\'message\'" ng-if="vm.trigger.channel != \'voice\'"> {{ \'TOOLS.MESSAGE\' | translate }}\n </md-option>\n </md-select>\n <div ng-messages="allConditionForm[\'field\'].$error" ng-show="allConditionForm[\'field\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.FIELD_REQUIRED">Field field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.OPERATOR">Operator</label>\n <md-select name="operator" ng-model="vm.allCondition.operator" required>\n <md-option ng-value="\'equals\'"> {{ \'TOOLS.EQUALS\' | translate }} </md-option>\n <md-option ng-value="\'not_equals\'"> {{ \'TOOLS.NOT_EQUALS\' | translate }} </md-option>\n </md-select>\n <div ng-messages="allConditionForm[\'operator\'].$error" ng-show="allConditionForm[\'operator\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.OPERATOR_REQUIRED">Operator field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.allCondition.field == \'account\'" class="md-block">\n <label translate="TOOLS.ACCOUNT">Account</label>\n <md-select name="value" ng-model="vm.allCondition.value" required>\n <md-option ng-value="value.id.toString()" ng-repeat="value in vm.accounts" ng-disabled="value.canSelect === false">\n {{ value.name }}</md-option>\n </md-select>\n <div ng-messages="allConditionForm[\'value\'].$error" ng-show="allConditionForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.ACCOUNT_REQUIRED">Account field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.allCondition.field == \'queue\' && vm.trigger.channel == \'voice\'" class="md-block">\n <label translate="TOOLS.QUEUE">Queue</label>\n <md-select name="value" ng-model="vm.allCondition.value" required>\n <md-option ng-value="value.name" ng-repeat="value in vm.queues" ng-disabled="value.canSelect === false">\n {{ value.name }}</md-option>\n </md-select>\n <div ng-messages="allConditionForm[\'value\'].$error" ng-show="allConditionForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.allCondition.field == \'routeId\' && vm.trigger.channel == \'voice\'" class="md-block">\n <label translate="TOOLS.OUTBOUNDROUTE">OutboundRoute</label>\n <md-select name="value" ng-model="vm.allCondition.value" required>\n <md-option ng-value="value.id.toString()" ng-repeat="value in vm.outboundRoutes" ng-disabled="value.canSelect === false">\n {{ value.exten }}</md-option>\n </md-select>\n <div ng-messages="allConditionForm[\'value\'].$error" ng-show="allConditionForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.OUTBOUNDROUTE_REQUIRED">OutboundRoute field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.allCondition.field == \'agent\' && vm.trigger.channel == \'voice\'" class="md-block">\n <label translate="TOOLS.AGENT">Agent</label>\n <md-select name="value" ng-model="vm.allCondition.value" required>\n <md-option ng-value="value.name" ng-repeat="value in vm.agents" ng-disabled="value.canSelect === false">\n {{ value.fullname }}</md-option>\n </md-select>\n <div ng-messages="allConditionForm[\'value\'].$error" ng-show="allConditionForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.allCondition.field == \'lastevent\'" class="md-block">\n <label translate="TOOLS.VALUE">Value</label>\n <md-select name="value" ng-model="vm.allCondition.value" required>\n <md-option ng-value="status.value" ng-repeat="status in vm.callStatuses">\n {{ status.name }}</md-option>\n </md-select>\n <div ng-messages="allConditionForm[\'value\'].$error" ng-show="allConditionForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.allCondition.field == \'interaction\' && vm.trigger.channel != \'voice\'" class="md-block">\n <label translate="TOOLS.VALUE">Value</label>\n <md-select name="value" ng-model="vm.allCondition.value" required>\n <md-option ng-value="\'opened\'">Opened</md-option>\n <md-option ng-value="\'closed\'">Closed</md-option>\n </md-select>\n <div ng-messages="allConditionForm[\'value\'].$error" ng-show="allConditionForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.allCondition.field == \'message\' && vm.trigger.channel != \'voice\'" class="md-block">\n <label translate="TOOLS.VALUE">Value</label>\n <md-select name="value" ng-model="vm.allCondition.value" required>\n <md-option ng-value="\'in\'">Incoming</md-option>\n <md-option ng-value="\'out\'">Outgoing</md-option>\n <md-option ng-value="\'accept\'">Accepted</md-option>\n <md-option ng-value="\'reject\'">Rejected</md-option>\n </md-select>\n <div ng-messages="allConditionForm[\'value\'].$error" ng-show="allConditionForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newAllCondition" ng-click="vm.saveAllCondition()" class="send-button md-accent md-raised" ng-disabled="allConditionForm.$invalid || allConditionForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newAllCondition" ng-click="vm.addNewAllCondition()" class="send-button md-accent md-raised" ng-disabled="allConditionForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_ALLCONDITION" translate-attr-aria-label="TOOLS.ADD_ALLCONDITION">\n ADD ALLCONDITION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newAllCondition" ng-click="vm.deleteAllCondition($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/triggers/edit/anyconditions/anyconditions.html",'<div ng-controller="TriggerAnyConditionsController as vm_dc" ng-init="vm_dc.onInit(vm.trigger, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedAnyConditions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="TOOLS.ANYCONDITIONS">AnyConditions</span>\n <ms-search-bar on-search="vm_dc.getAnyConditions()" query="vm_dc.query" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditAnyCondition($event)" aria-label="add anyCondition" translate translate-attr-label="TOOLS.ADD_ANYCONDITION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedAnyConditions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{ vm_dc.selectedAnyConditions.length }}\n {{ vm_dc.selectedAnyConditions.length > 1 ? \'items\' : \'item\' }} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedAnyConditions" csv-label="true" filename="triggers.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedAnyConditions($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedAnyConditions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getAnyConditions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'TOOLS.ID\' | translate }}\n </th>\n <th md-column md-order-by="field">\n {{ \'TOOLS.FIELD\' | translate }}\n </th>\n <th md-column md-order-by="operator">\n {{ \'TOOLS.OPERATOR\' | translate }}\n </th>\n <th md-column md-order-by="value">\n {{ \'TOOLS.VALUE\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'TOOLS.CREATED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="anyCondition" md-select-id="id" ng-repeat="anyCondition in vm_dc.anyConditions.rows">\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" md-cell>\n {{ anyCondition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" md-cell>\n {{ \'TOOLS.\' + vm_dc.fields[anyCondition.field] | uppercase | translate }}\n </td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" md-cell>\n {{ \'TOOLS.\' + anyCondition.operator | uppercase | translate }}\n </td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="!anyCondition.value" md-cell>\n {{ anyCondition.value }}\n </td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'chat\' && anyCondition.field == \'account\'" md-cell>\n {{ (vm_dc.chatWebsites | filter : {\'id\': (anyCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'mail\' && anyCondition.field == \'account\'" md-cell>\n {{ (vm_dc.mailAccounts | filter : {\'id\':(anyCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'sms\' && anyCondition.field == \'account\'" md-cell>\n {{ (vm_dc.smsAccounts | filter : {\'id\': (anyCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, allCondition)" ng-if="vm.trigger.channel == \'whatsapp\' && anyCondition.field == \'account\'" md-cell>\n {{ (vm_dc.whatsappAccounts | filter : {\'id\':(anyCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'fax\' && anyCondition.field == \'account\'" md-cell>\n {{ (vm_dc.faxAccounts | filter : {\'id\': (anyCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'openchannel\' && anyCondition.field == \'account\'" md-cell>\n {{ (vm_dc.openchannelAccounts | filter : {\'id\': (anyCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'voice\' && anyCondition.field == \'queue\'" md-cell>\n {{ (vm_dc.queues | filter : {\'name\':anyCondition.value} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'voice\' && anyCondition.field == \'routeId\'" md-cell>\n {{ (vm_dc.outboundRoutes | filter : {\'id\': (anyCondition.value | toInteger)} : true)[0].exten }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'voice\' && anyCondition.field == \'agent\'" md-cell>\n {{ (vm_dc.agents | filter : {\'name\':anyCondition.value} : true)[0].fullname }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'voice\' && anyCondition.field == \'lastevent\'" md-cell>\n {{ vm_dc.callStatuses[anyCondition.value] }} </td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel != \'voice\' && anyCondition.field == \'interaction\'" md-cell>\n {{ anyCondition.value | capitalize }} </td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel != \'voice\' && anyCondition.field == \'message\'" md-cell>\n {{ vm_dc.messageStatuses[anyCondition.value] }} </td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" md-cell>\n {{ anyCondition.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" translate="TOOLS.EDIT_ANYCONDITION">\n Edit AnyCondition\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(anyCondition, $event)" translate="TOOLS.DELETE_ANYCONDITION">\n Delete AnyCondition\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.anyConditions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="TOOLS.NO_ANYCONDITION_AVAILABLE">No anycondition\n available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{ \'TOOLS.PAGE\' | translate }}:\', rowsPerPage: \'{{ \'TOOLS.ROWSPERPAGE\' | translate }}:\', of: \'{{ \'TOOLS.OF\' | translate }}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{ vm_dc.anyConditions.count }}" md-on-paginate="vm_dc.getAnyConditions" md-page-select>\n </md-table-pagination>\n</div>'),e.put("app/main/apps/tools/views/triggers/edit/anyconditions/create/dialog.html",'<md-dialog class="anyCondition-dialog" aria-label="New AnyCondition">\n <form name="anyConditionForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.newAnyCondition ? \'TOOLS.NEW_ANYCONDITION\' : \'TOOLS.EDIT_ANYCONDITION\' | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <md-input-container class="md-block">\n <label translate="TOOLS.FIELD">Field</label>\n <md-select name="field" ng-model="vm.anyCondition.field" ng-change="vm.onFieldSelection()" md-autofocus required>\n <md-option ng-value="\'queue\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.QUEUE\' | translate }}\n </md-option>\n <md-option ng-value="\'lastevent\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.CALL_STATUS\' | translate }}\n </md-option>\n <md-option ng-value="\'routeId\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.OUTBOUNDROUTE\' | translate }}\n </md-option>\n <md-option ng-value="\'agent\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.AGENT\' | translate }}\n </md-option>\n <md-option ng-value="\'account\'" ng-if="vm.trigger.channel != \'voice\'"> {{ \'TOOLS.ACCOUNT\' | translate }}\n </md-option>\n <md-option ng-value="\'interaction\'" ng-if="vm.trigger.channel != \'voice\'">\n {{ \'TOOLS.INTERACTION\' | translate }} </md-option>\n <md-option ng-value="\'message\'" ng-if="vm.trigger.channel != \'voice\'"> {{ \'TOOLS.MESSAGE\' | translate }}\n </md-option>\n </md-select>\n <div ng-messages="anyConditionForm[\'field\'].$error" ng-show="anyConditionForm[\'field\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.FIELD_REQUIRED">Field field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.OPERATOR">Operator</label>\n <md-select name="operator" ng-model="vm.anyCondition.operator" required>\n <md-option ng-value="\'equals\'"> {{ \'TOOLS.EQUALS\' | translate }} </md-option>\n <md-option ng-value="\'not_equals\'"> {{ \'TOOLS.NOT_EQUALS\' | translate }} </md-option>\n </md-select>\n <div ng-messages="anyConditionForm[\'operator\'].$error" ng-show="anyConditionForm[\'operator\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.OPERATOR_REQUIRED">Operator field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.anyCondition.field == \'account\'" class="md-block">\n <label translate="TOOLS.ACCOUNT">Account</label>\n <md-select name="value" ng-model="vm.anyCondition.value" required>\n <md-option ng-value="value.id.toString()" ng-repeat="value in vm.accounts" ng-disabled="value.canSelect === false">\n {{ value.name }}</md-option>\n </md-select>\n <div ng-messages="anyConditionForm[\'value\'].$error" ng-show="anyConditionForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.ACCOUNT_REQUIRED">Account field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.anyCondition.field == \'queue\' && vm.trigger.channel == \'voice\'" class="md-block">\n <label translate="TOOLS.QUEUE">Queue</label>\n <md-select name="value" ng-model="vm.anyCondition.value" required>\n <md-option ng-value="value.name" ng-repeat="value in vm.queues" ng-disabled="value.canSelect === false">\n {{ value.name }}</md-option>\n </md-select>\n <div ng-messages="anyConditionForm[\'value\'].$error" ng-show="anyConditionForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.anyCondition.field == \'routeId\' && vm.trigger.channel == \'voice\'" class="md-block">\n <label translate="TOOLS.OUTBOUNDROUTE">OutboundRoute</label>\n <md-select name="value" ng-model="vm.anyCondition.value" required>\n <md-option ng-value="value.id.toString()" ng-repeat="value in vm.outboundRoutes" ng-disabled="value.canSelect === false">\n {{ value.exten }}</md-option>\n </md-select>\n <div ng-messages="anyConditionForm[\'value\'].$error" ng-show="anyConditionForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.OUTBOUNDROUTE_REQUIRED">OutboundRoute field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.anyCondition.field == \'agent\' && vm.trigger.channel == \'voice\'" class="md-block">\n <label translate="TOOLS.AGENT">Agent</label>\n <md-select name="value" ng-model="vm.anyCondition.value" required>\n <md-option ng-value="value.name" ng-repeat="value in vm.agents" ng-disabled="value.canSelect === false">\n {{ value.fullname }}</md-option>\n </md-select>\n <div ng-messages="anyConditionForm[\'value\'].$error" ng-show="anyConditionForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.anyCondition.field == \'lastevent\'" class="md-block">\n <label translate="TOOLS.VALUE">Value</label>\n <md-select name="value" ng-model="vm.anyCondition.value" required>\n <md-option ng-value="status.value" ng-repeat="status in vm.callStatuses">\n {{ status.name }}</md-option>\n </md-select>\n <div ng-messages="anyConditionForm[\'value\'].$error" ng-show="anyConditionForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.anyCondition.field == \'interaction\' && vm.trigger.channel != \'voice\'" class="md-block">\n <label translate="TOOLS.VALUE">Value</label>\n <md-select name="value" ng-model="vm.anyCondition.value" required>\n <md-option ng-value="\'opened\'">Opened</md-option>\n <md-option ng-value="\'closed\'">Closed</md-option>\n </md-select>\n <div ng-messages="anyConditionForm[\'value\'].$error" ng-show="anyConditionForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.anyCondition.field == \'message\' && vm.trigger.channel != \'voice\'" class="md-block">\n <label translate="TOOLS.VALUE">Value</label>\n <md-select name="value" ng-model="vm.anyCondition.value" required>\n <md-option ng-value="\'in\'">Incoming</md-option>\n <md-option ng-value="\'out\'">Outgoing</md-option>\n <md-option ng-value="\'accept\'">Accepted</md-option>\n <md-option ng-value="\'reject\'">Rejected</md-option>\n </md-select>\n <div ng-messages="anyConditionForm[\'value\'].$error" ng-show="anyConditionForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newAnyCondition" ng-click="vm.saveAnyCondition()" class="send-button md-accent md-raised" ng-disabled="anyConditionForm.$invalid || anyConditionForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newAnyCondition" ng-click="vm.addNewAnyCondition()" class="send-button md-accent md-raised" ng-disabled="anyConditionForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_ANYCONDITION" translate-attr-aria-label="TOOLS.ADD_ANYCONDITION">\n ADD ANYCONDITION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newAnyCondition" ng-click="vm.deleteAnyCondition($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/triggers/edit/view.html",'<div id="tools-trigger" class="page-layout simple tabbed" layout="column">\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-triggers-button md-icon-button" aria-label="Go to triggers" ng-click="vm.gotoTriggers()" translate translate-attr-aria-label="TOOLS.GO_TO_TRIGGERS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n <div layout="row" layout-align="start center">\n <div class="trigger-image" hide-xs>\n <img ng-src="assets/images/business/triggers.jpg">\n </div>\n <div layout="column" layout-align="start start">\n <div class="h2">#{{ vm.trigger.id }}\n <span ng-if="vm.trigger.name">{{ vm.trigger.name }}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="TOOLS.CREATED_AT"></span> <span>{{ vm.trigger.createdAt | date:\'medium\' }}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveTrigger()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (allconditionsForm.$invalid) || (anyconditionsForm.$invalid) || (actionsForm.$invalid)" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="TOOLS.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="trigger-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="TOOLS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.trigger.name" required autofocus ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.CHANNEL">Channel</label>\n <md-select name="channel" ng-model="vm.trigger.channel" required disabled>\n <md-option ng-value="\'voice\'"> {{ \'TOOLS.VOICE\' | translate }} </md-option>\n <md-option ng-value="\'openchannel\'" ng-if="vm.license.openchannel">\n {{ \'TOOLS.OPENCHANNEL\' | translate }} </md-option>\n <md-option ng-value="\'chat\'" ng-if="vm.license.chat"> {{ \'TOOLS.CHAT\' | translate }} </md-option>\n <md-option ng-value="\'mail\'" ng-if="vm.license.mail"> {{ \'TOOLS.MAIL\' | translate }} </md-option>\n <md-option ng-value="\'sms\'" ng-if="vm.license.messaging"> {{ \'TOOLS.SMS\' | translate }} </md-option>\n <md-option ng-value="\'fax\'" ng-if="vm.license.fax"> {{ \'TOOLS.FAX\' | translate }} </md-option>\n <md-option ng-value="\'whatsapp\'" ng-if="vm.license.whatsapp"> {{ \'TOOLS.WHATSAPP\' | translate }}\n </md-option>\n </md-select>\n <div ng-messages="generalForm[\'channel\'].$error" ng-show="generalForm[\'channel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.trigger.status" aria-label="Status" ng-disabled="!vm.crudPermissions.canEdit">\n <span translate="TOOLS.STATUS">Status</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.trigger.description" ng-disabled="!vm.crudPermissions.canEdit">\n </md-input-container>\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="TOOLS.CONDITIONS&ACTIONS">CONDITIONS&ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="trigger-detail-form-container allconditions md-background-bg md-whiteframe-1dp" ng-include="\'app/main/apps/tools/views/triggers/edit/allconditions/allconditions.html\'">\n </div>\n <div class="trigger-detail-form-container anyconditions md-background-bg md-whiteframe-1dp" ng-include="\'app/main/apps/tools/views/triggers/edit/anyconditions/anyconditions.html\'">\n </div>\n <div class="trigger-detail-form-container actions md-background-bg md-whiteframe-1dp" ng-include="\'app/main/apps/tools/views/triggers/edit/actions/actions.html\'">\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n </div>\n \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/tools/views/triggers/triggers.html",'<div id="triggers" class="page-layout simple left-sidenav inner-sidenav">\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="TOOLS.TRIGGERS">Triggers</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedTriggers.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n <div class="close-button-wrapper" ng-click="vm.selectedTriggers =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="TOOLS.BACK">Back</span>\n </md-button>\n </div>\n <div flex layout="row" layout-align="space-between center">\n <div>\n <span class="selected-triggers-count">\n <span>{{ vm.selectedTriggers.length }}</span>\n <span translate="TOOLS.SELECTED">Selected</span>\n </span>\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TOOLS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllTriggers()" translate="TOOLS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectTriggers()" translate="TOOLS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedTriggers" csv-label="true" filename="triggers.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedTriggers($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n \x3c!-- TRIGGER TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedTriggers" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTriggers">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n <th md-column md-order-by="channel">{{ \'TOOLS.CHANNEL\' | translate }}</th>\n <th md-column md-order-by="status">{{ \'TOOLS.STATUS\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.triggers.rows.length">\n <td md-cell colspan="6">\n <div layout="row" layout-align="center center">\n <span translate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="trigger" md-select-id="id" ng-repeat="trigger in vm.triggers.rows">\n <td ng-click="vm.createOrEditTrigger($event, trigger)" md-cell class="id ">{{ trigger.id }}</td>\n <td ng-click="vm.createOrEditTrigger($event, trigger)" md-cell class="name ">{{ trigger.name }}</td>\n <td ng-click="vm.createOrEditTrigger($event, trigger)" md-cell class="channel ">\n {{ \'TOOLS.\' + trigger.channel | uppercase | translate }}</td>\n <td ng-click="vm.createOrEditTrigger($event, trigger)" md-cell class="status ">\n <md-icon md-colors="{color: {{ trigger.status ? \'\\\'green\\\'\' : \'\\\'grey\\\'\' }}}" md-font-icon="{{ trigger.status ? \'icon-check\' : \'icon-close\' }}"></md-icon>\n </td>\n <td ng-click="vm.createOrEditTrigger($event, trigger)" md-cell class="description ">\n {{ trigger.description }}</td>\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.goToEditState(trigger)" translate="TOOLS.EDIT_TRIGGER">\n Edit Trigger\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteconfirm(trigger, $event)" translate="TOOLS.DELETE_TRIGGER">\n Delete Trigger\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{ \'TOOLS.PAGE\' | translate }}:\', rowsPerPage: \'{{ \'TOOLS.ROWSPERPAGE\' | translate }}:\', of: \'{{ \'TOOLS.OF\' | translate }}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{ vm.triggers.count }}" md-on-paginate="vm.getTriggers" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / TRIGGER TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n </div>\n \x3c!-- / CONTENT --\x3e\n \x3c!-- ADD TRIGGER BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-trigger-button" ng-click="vm.createOrEditTrigger($event)" aria-label="add trigger" translate translate-attr-aria-label="TOOLS.ADD_TRIGGER">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD TRIGGER BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/trunks/create/dialog.html",'<md-dialog class="trunk-dialog" aria-label="New Trunk">\n <form name="trunkForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.trunk.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newTrunk">\n\n <div class="hint"><span translate="TOOLS.HELP.NAME"></span></div>\n <div ng-messages="trunkForm[\'name\'].$error" ng-show="trunkForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="TOOLS.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.trunk.active" aria-label="active"><span translate="TOOLS.ACTIVE">active</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.HOST">host</label>\n <input type="text" name="host" ng-model="vm.trunk.host" ng-required="true">\n\n <div class="hint"><span translate="TOOLS.HELP.HOST"></span></div>\n <div ng-messages="trunkForm[\'host\'].$error" ng-show="trunkForm[\'host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.HOST_REQUIRED">host field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.SECRET">secret</label>\n <input type="password" name="secret" ng-model="vm.trunk.secret" placeholder="Password" translate translate-attr-placeholder="TOOLS.PASSWORD">\n <div class="hint"><span translate="TOOLS.HELP.SECRET"></span></div>\n <div ng-messages="trunkForm[\'secret\'].$error" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="TOOLS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="TOOLS.DEFAULTUSER">defaultuser</label>\n <input type="text" name="defaultuser" ng-model="vm.trunk.defaultuser">\n\n <div class="hint"><span translate="TOOLS.HELP.DEFAULTUSER"></span></div>\n <div ng-messages="trunkForm[\'defaultuser\'].$error" ng-show="trunkForm[\'defaultuser\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DEFAULTUSER_REQUIRED">defaultuser field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.REGISTRY">registry</label>\n <input type="text" name="registry" ng-model="vm.trunk.registry">\n\n <div class="hint"><span translate="TOOLS.HELP.REGISTRY"></span></div>\n <div ng-messages="trunkForm[\'registry\'].$error" ng-show="trunkForm[\'registry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.REGISTRY_REQUIRED">registry field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.trunk.description">\n\n <div ng-messages="trunkForm[\'description\'].$error" ng-show="trunkForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newTrunk" ng-click="vm.saveTrunk()" class="send-button md-accent md-raised" ng-disabled="trunkForm.$invalid || trunkForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newTrunk" ng-click="vm.addNewTrunk()" class="send-button md-accent md-raised" ng-disabled="trunkForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_TRUNK" translate-attr-aria-label="TOOLS.ADD_TRUNK">\n ADD TRUNK\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newTrunk" ng-click="vm.deleteTrunk($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/trunks/edit/clone/clone.html",'<md-dialog class="trunk-dialog" aria-label="Clone Trunk">\n <form name="trunkForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.trunk.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newTrunk">\n\n <div class="hint"><span translate="TOOLS.HELP.NAME"></span></div>\n <div ng-messages="trunkForm[\'name\'].$error" ng-show="trunkForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="TOOLS.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.trunk.active" aria-label="active"><span translate="TOOLS.ACTIVE">active</span></md-switch>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <md-button type="submit" ng-click="vm.cloneTrunk()" class="send-button md-accent md-raised" ng-disabled="trunkForm.$invalid" aria-label="CLONE" translate="TOOLS.CLONE_TRUNK" translate-attr-aria-label="TOOLS.CLONE_TRUNK">\n CLONE TRUNK\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/trunks/edit/view.html",'<div id="tools-trunk" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-trunks-button md-icon-button" aria-label="Go to trunks" ng-click="vm.gotoTrunks()" translate translate-attr-aria-label="TOOLS.GO_TO_TRUNKS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="trunk-image" hide-xs>\n <img ng-src="assets/images/business/trunks.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.trunk.id}}\n <span ng-if="vm.trunk.name">{{vm.trunk.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="TOOLS.CREATED_AT"></span> <span>{{vm.trunk.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.gotogoto(vm.trunk, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n <md-tooltip><span translate="TOOLS.GOTO_TRUNK"></span></md-tooltip>\n <md-icon md-font-icon="icon-cast"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.clonedialog(vm.trunk, $event)" class="md-fab md-green-500-bg md-icon-button" aria-label="clone">\n <md-tooltip><span translate="TOOLS.CLONE_TRUNK"></span></md-tooltip>\n <md-icon md-font-icon="icon-content-duplicate"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveTrunk()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (advancedForm.$invalid) || (otherFieldsForm.$invalid)" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="TOOLS.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="trunk-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="TOOLS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.trunk.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="TOOLS.HELP.NAME"></span></div>\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="TOOLS.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.trunk.active" aria-label="active" ng-disabled="!vm.crudPermissions.canEdit"><span translate="TOOLS.ACTIVE">active</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.HOST">host</label>\n <input type="text" name="host" ng-model="vm.trunk.host" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="TOOLS.HELP.HOST"></span></div>\n <div ng-messages="generalForm[\'host\'].$error" ng-show="generalForm[\'host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.HOST_REQUIRED">host field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.SECRET">secret</label>\n <input type="password" name="secret" ng-model="vm.trunk.secret" placeholder="Password" translate translate-attr-placeholder="TOOLS.PASSWORD">\n <div class="hint"><span translate="TOOLS.HELP.SECRET"></span></div>\n <div ng-messages="generalForm[\'secret\'].$error" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="TOOLS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="TOOLS.DEFAULTUSER">defaultuser</label>\n <input type="text" name="defaultuser" ng-model="vm.trunk.defaultuser" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="TOOLS.HELP.DEFAULTUSER"></span></div>\n <div ng-messages="generalForm[\'defaultuser\'].$error" ng-show="generalForm[\'defaultuser\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DEFAULTUSER_REQUIRED">defaultuser field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.CONTEXT">context</label>\n <md-select name="context" ng-model="vm.trunk.context" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts" ng-disabled="context.canSelect === false">{{ context.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.CONTEXT"></span></div>\n <div ng-messages="generalForm[\'context\'].$error" ng-show="generalForm[\'context\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.CONTEXT_REQUIRED">context field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.CALLERID">callerid</label>\n <input type="text" name="callerid" ng-model="vm.trunk.callerid" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="TOOLS.HELP.CALLERID"></span></div>\n <div ng-messages="generalForm[\'callerid\'].$error" ng-show="generalForm[\'callerid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.CALLERID_REQUIRED">callerid field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.trunk.type" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'friend\'">Friend</md-option>\n <md-option ng-value="\'user\'">User</md-option>\n <md-option ng-value="\'peer\'">Peer</md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.TYPE"></span></div>\n <div ng-messages="generalForm[\'type\'].$error" ng-show="generalForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DTMFMODE">dtmfmode</label>\n <md-select name="dtmfmode" ng-model="vm.trunk.dtmfmode" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'rfc2833\'">rfc2833</md-option>\n <md-option ng-value="\'info\'">info</md-option>\n <md-option ng-value="\'shortinfo\'">shortinfo</md-option>\n <md-option ng-value="\'inband\'">inband</md-option>\n <md-option ng-value="\'auto\'">auto</md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.DTMFMODE"></span></div>\n <div ng-messages="generalForm[\'dtmfmode\'].$error" ng-show="generalForm[\'dtmfmode\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DTMFMODE_REQUIRED">dtmfmode field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAT">nat</label>\n <md-select name="nat" ng-model="vm.trunk.nat" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'force_rport\'">force_rport</md-option>\n <md-option ng-value="\'comedia\'">comedia</md-option>\n <md-option ng-value="\'yes\'">yes</md-option>\n <md-option ng-value="\'no\'">no</md-option>\n <md-option ng-value="\'never\'">never</md-option>\n <md-option ng-value="\'route\'">route</md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.NAT"></span></div>\n <div ng-messages="generalForm[\'nat\'].$error" ng-show="generalForm[\'nat\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAT_REQUIRED">nat field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.QUALIFY">qualify</label>\n <md-select name="qualify" ng-model="vm.trunk.qualify" required ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'TOOLS.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'TOOLS.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.QUALIFY"></span></div>\n <div ng-messages="generalForm[\'qualify\'].$error" ng-show="generalForm[\'qualify\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.QUALIFY_REQUIRED">qualify field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.ALLOWCODECS">AllowCodecs</label>\n <md-select name="allow" ng-model="vm.trunk.allow" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'ulaw\'">ulaw</md-option>\n <md-option ng-value="\'alaw\'">alaw</md-option>\n <md-option ng-value="\'gsm\'">gsm</md-option>\n <md-option ng-value="\'g723\'">g723</md-option>\n <md-option ng-value="\'g726\'">g726</md-option>\n <md-option ng-value="\'g722\'">g722</md-option>\n <md-option ng-value="\'g729\'">g729</md-option>\n <md-option ng-value="\'ilbc\'">ilbc</md-option>\n <md-option ng-value="\'opus\'">opus</md-option>\n <md-option ng-value="\'h264\'">h264</md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.ALLOWCODECS"></span></div>\n <div ng-messages="generalForm[\'allow\'].$error" ng-show="generalForm[\'allow\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.ALLOWCODECS_REQUIRED">AllowCodecs field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.INSECURE">insecure</label>\n <md-select name="insecure" ng-model="vm.trunk.insecure" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'port\'">port</md-option>\n <md-option ng-value="\'invite\'">invite</md-option>\n <md-option ng-value="\'very\'">very</md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.INSECURE"></span></div>\n <div ng-messages="generalForm[\'insecure\'].$error" ng-show="generalForm[\'insecure\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.INSECURE_REQUIRED">insecure field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.CALL_LIMIT">call_limit</label>\n <input type="number" name="call_limit" ng-model="vm.trunk.call_limit" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="TOOLS.HELP.CALL_LIMIT"></span></div>\n <div ng-messages="generalForm[\'call_limit\'].$error" ng-show="generalForm[\'call_limit\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.CALL_LIMIT_REQUIRED">call_limit field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.trunk.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="TOOLS.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <md-tab-body>\n <div class="trunk-detail-form-container advanced md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="TOOLS.ADVANCED">ADVANCED</div>\n </div>\n <form name="advancedForm" novalidate>\n <md-input-container class="md-block">\n <label translate="TOOLS.REGISTRY">registry</label>\n <input type="text" name="registry" ng-model="vm.trunk.registry" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="TOOLS.HELP.REGISTRY"></span></div>\n <div ng-messages="advancedForm[\'registry\'].$error" ng-show="advancedForm[\'registry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.REGISTRY_REQUIRED">registry field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DIRECTMEDIA">directmedia</label>\n <md-select name="directmedia" ng-model="vm.trunk.directmedia" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'yes\'">yes</md-option>\n <md-option ng-value="\'no\'">no</md-option>\n <md-option ng-value="\'nonat\'">nonat</md-option>\n <md-option ng-value="\'update\'">update</md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.DIRECTMEDIA"></span></div>\n <div ng-messages="advancedForm[\'directmedia\'].$error" ng-show="advancedForm[\'directmedia\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DIRECTMEDIA_REQUIRED">directmedia field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.CALLCOUNTER">callcounter</label>\n <md-select name="callcounter" ng-model="vm.trunk.callcounter" required ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'TOOLS.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'TOOLS.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.CALLCOUNTER"></span></div>\n <div ng-messages="advancedForm[\'callcounter\'].$error" ng-show="advancedForm[\'callcounter\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.CALLCOUNTER_REQUIRED">callcounter field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.FROMDOMAIN">fromdomain</label>\n <input type="text" name="fromdomain" ng-model="vm.trunk.fromdomain" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="TOOLS.HELP.FROMDOMAIN"></span></div>\n <div ng-messages="advancedForm[\'fromdomain\'].$error" ng-show="advancedForm[\'fromdomain\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.FROMDOMAIN_REQUIRED">fromdomain field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.FROMUSER">fromuser</label>\n <input type="text" name="fromuser" ng-model="vm.trunk.fromuser" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="TOOLS.HELP.FROMUSER"></span></div>\n <div ng-messages="advancedForm[\'fromuser\'].$error" ng-show="advancedForm[\'fromuser\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.FROMUSER_REQUIRED">fromuser field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.OUTBOUNDPROXY">outboundproxy</label>\n <input type="text" name="outboundproxy" ng-model="vm.trunk.outboundproxy" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="TOOLS.HELP.OUTBOUNDPROXY"></span></div>\n <div ng-messages="advancedForm[\'outboundproxy\'].$error" ng-show="advancedForm[\'outboundproxy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.OUTBOUNDPROXY_REQUIRED">outboundproxy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.ADD_PHONE_TO_URI">Add_phone_to_URI</label>\n <md-select name="usereqphone" ng-model="vm.trunk.usereqphone" required ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'TOOLS.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'TOOLS.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.ADD_PHONE_TO_URI"></span></div>\n <div ng-messages="advancedForm[\'usereqphone\'].$error" ng-show="advancedForm[\'usereqphone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.ADD_PHONE_TO_URI_REQUIRED">Add_phone_to_URI field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.TRUST_REMOTE_PARTY_ID">Trust_Remote_Party_ID</label>\n <md-select name="trustrpid" ng-model="vm.trunk.trustrpid" required ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'TOOLS.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'TOOLS.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.TRUST_REMOTE_PARTY_ID"></span></div>\n <div ng-messages="advancedForm[\'trustrpid\'].$error" ng-show="advancedForm[\'trustrpid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TRUST_REMOTE_PARTY_ID_REQUIRED">Trust_Remote_Party_ID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.SEND_REMOTE_PARTY_ID_HEADER">Send_Remote_Party_ID_header</label>\n <md-select name="sendrpid" ng-model="vm.trunk.sendrpid" required ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'TOOLS.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'TOOLS.NO\' | translate }} </md-option>\n\n <md-option ng-value="\'pai\'"> {{ \'TOOLS.PAI\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.SEND_REMOTE_PARTY_ID_HEADER"></span></div>\n <div ng-messages="advancedForm[\'sendrpid\'].$error" ng-show="advancedForm[\'sendrpid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.SEND_REMOTE_PARTY_ID_HEADER_REQUIRED">Send_Remote_Party_ID_header field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.ENCRYPTION">encryption</label>\n <md-select name="encryption" ng-model="vm.trunk.encryption" required ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'TOOLS.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'TOOLS.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.ENCRYPTION"></span></div>\n <div ng-messages="advancedForm[\'encryption\'].$error" ng-show="advancedForm[\'encryption\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.ENCRYPTION_REQUIRED">encryption field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.PORT">port</label>\n <input type="number" name="port" ng-model="vm.trunk.port" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="TOOLS.HELP.PORT"></span></div>\n <div ng-messages="advancedForm[\'port\'].$error" ng-show="advancedForm[\'port\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.PORT_REQUIRED">port field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.TRANSPORT">Transport</label>\n <md-select name="transport" ng-model="vm.trunk.transport" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'udp\'">udp</md-option>\n <md-option ng-value="\'tcp\'">tcp</md-option>\n <md-option ng-value="\'ws\'">ws</md-option>\n <md-option ng-value="\'wss\'">wss</md-option>\n <md-option ng-value="\'tls\'">tls</md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.TRANSPORT"></span></div>\n <div ng-messages="advancedForm[\'transport\'].$error" ng-show="advancedForm[\'transport\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TRANSPORT_REQUIRED">Transport field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.T38PT_UDPTL">t38pt_udptl</label>\n <input type="string" name="t38pt_udptl" ng-model="vm.trunk.t38pt_udptl" value="no" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="TOOLS.HELP.T38PT_UDPTL"></span></div>\n <div ng-messages="advancedForm[\'t38pt_udptl\'].$error" ng-show="advancedForm[\'t38pt_udptl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.T38PT_UDPTL_REQUIRED">t38pt_udptl field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.VIDEOSUPPORT">Videosupport</label>\n <md-select name="videosupport" ng-model="vm.trunk.videosupport" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'yes\'">Yes</md-option>\n <md-option ng-value="\'no\'">No</md-option>\n <md-option ng-value="\'always\'">Always</md-option>\n </md-select>\n <div ng-messages="advancedForm[\'videosupport\'].$error" ng-show="advancedForm[\'videosupport\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.VIDEOSUPPORT_REQUIRED">Videosupport field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="TOOLS.OTHERFIELDS">OTHERFIELDS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="trunk-detail-form-container otherfields md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="TOOLS.OTHERFIELDS">OTHERFIELDS</div>\n </div>\n <form name="otherFieldsForm" novalidate>\n <md-input-container class="md-block">\n <label translate="TOOLS.OTHERFIELDS">otherFields</label>\n <textarea name="otherFields" ng-model="vm.trunk.otherFields" autofocus></textarea>\n <div class="hint"><span translate="TOOLS.HELP.OTHERFIELDS"></span></div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/tools/views/trunks/trunks.html",'<div id="trunks" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="TOOLS.TRUNKS">Trunks</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedTrunks.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedTrunks =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="TOOLS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-trunks-count">\n <span>{{vm.selectedTrunks.length}}</span>\n <span translate="TOOLS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TOOLS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllTrunks()" translate="TOOLS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectTrunks()" translate="TOOLS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedTrunks" csv-label="true" filename="trunks.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedTrunks($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- TRUNK TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedTrunks" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTrunks">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n <th md-column md-order-by="active">{{ \'TOOLS.ACTIVE\' | translate }}</th>\n <th md-column md-order-by="host">{{ \'TOOLS.HOST\' | translate }}</th>\n <th md-column md-order-by="registry">{{ \'TOOLS.REGISTRY\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.trunks.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="trunk" md-select-id="id" ng-repeat="trunk in vm.trunks.rows">\n <td md-cell ng-if="trunk.userpic"><img class="avatar" alt="{{trunk.name}}" ng-src="api/users/{{trunk.id}}/avatar" /></td>\n <td md-cell ng-if="!trunk.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{trunk.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(trunk, ev) : vm.createOrEditTrunk($event, trunk)" md-cell class="id ">{{trunk.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(trunk, ev) : vm.createOrEditTrunk($event, trunk)" md-cell class="name ">{{trunk.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(trunk, ev) : vm.createOrEditTrunk($event, trunk)" md-cell class="active ">\n <md-icon md-colors="{color: {{trunk.active ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{trunk.active ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(trunk, ev) : vm.createOrEditTrunk($event, trunk)" md-cell class="host ">{{trunk.host}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(trunk, ev) : vm.createOrEditTrunk($event, trunk)" md-cell class="registry ">{{trunk.registry}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(trunk, ev) : vm.createOrEditTrunk($event, trunk)" md-cell class="description ">{{trunk.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(trunk, $event )" translate="TOOLS.EDIT_TRUNK">\n Edit Trunk\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.clonedialog(trunk, $event )" translate="TOOLS.CLONE_TRUNK">\n clone Trunk\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(trunk, $event )" translate="TOOLS.GOTOREALTIME_TRUNK">\n goToRealtime Trunk\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(trunk, $event )" translate="TOOLS.DELETE_TRUNK">\n Delete Trunk\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.trunks.count}}" md-on-paginate="vm.getTrunks" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / TRUNK TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD TRUNK BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-trunk-button" ng-click="vm.createOrEditTrunk($event)" aria-label="add trunk" translate translate-attr-aria-label="TOOLS.ADD_TRUNK">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD TRUNK BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/variables/create/dialog.html",'<md-dialog class="variable-dialog" aria-label="New Variable">\n <form name="variableForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.variable.name" ng-required="true" autofocus>\n\n <div ng-messages="variableForm[\'name\'].$error" ng-show="variableForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.variable.description">\n\n <div ng-messages="variableForm[\'description\'].$error" ng-show="variableForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newVariable" ng-click="vm.saveVariable()" class="send-button md-accent md-raised" ng-disabled="variableForm.$invalid || variableForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newVariable" ng-click="vm.addNewVariable()" class="send-button md-accent md-raised" ng-disabled="variableForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_VARIABLE" translate-attr-aria-label="TOOLS.ADD_VARIABLE">\n ADD VARIABLE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newVariable" ng-click="vm.deleteVariable($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/variables/variables.html",'<div id="variables" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="TOOLS.VARIABLES">Variables</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedVariables.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedVariables =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="TOOLS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-variables-count">\n <span>{{vm.selectedVariables.length}}</span>\n <span translate="TOOLS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TOOLS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllVariables()" translate="TOOLS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectVariables()" translate="TOOLS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedVariables" csv-label="true" filename="variables.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedVariables($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- VARIABLE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedVariables" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getVariables">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.variables.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="variable" md-select-id="id" ng-repeat="variable in vm.variables.rows">\n <td md-cell ng-if="variable.userpic"><img class="avatar" alt="{{variable.name}}" ng-src="api/users/{{variable.id}}/avatar" /></td>\n <td md-cell ng-if="!variable.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{variable.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditVariable($event, variable)" md-cell class="id ">{{variable.id}}</td>\n <td ng-click="vm.createOrEditVariable($event, variable)" md-cell class="name ">{{variable.name}}</td>\n <td ng-click="vm.createOrEditVariable($event, variable)" md-cell class="description ">{{variable.description}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(variable, $event )" translate="TOOLS.EDIT_VARIABLE">\n Edit Variable\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(variable, $event )" translate="TOOLS.DELETE_VARIABLE">\n Delete Variable\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.variables.count}}" md-on-paginate="vm.getVariables" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / VARIABLE TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD VARIABLE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-variable-button" ng-click="vm.createOrEditVariable($event)" aria-label="add variable" translate translate-attr-aria-label="TOOLS.ADD_VARIABLE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD VARIABLE BUTTON --\x3e\n</div>'),e.put("app/main/apps/video/views/screenRecordings/create/dialog.html",'<md-dialog class="screenRecording-dialog" aria-label="New screenRecording">\n <form name="screenRecordingForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="VIDEO.RATING">Rating</label>\n <md-select name="rating" ng-model="vm.screenRecording.rating" autofocus ng-disabled="!vm.newscreenRecording && !vm.crudPermissions.canEdit">\n <md-option ng-value="null">{{\'VIDEO.NO_RATING\' | translate}}</md-option>\n <md-option value="1">\n <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1]"></md-icon>\n </md-option>\n <md-option value="2">\n <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1,2]"></md-icon>\n </md-option>\n <md-option value="3">\n <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1,2,3]"></md-icon>\n </md-option>\n <md-option value="4">\n <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1,2,3,4]"></md-icon>\n </md-option>\n <md-option value="5">\n <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1,2,3,4,5]"></md-icon>\n </md-option>\n </md-select>\n <div ng-messages="screenRecordingForm[\'rating\'].$error" ng-show="screenRecordingForm[rating].$touched" role="alert">\n <div ng-message="required">\n <span translate="VIDEO.ERRORS.RATING_REQUIRED">Rating field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newscreenRecording" ng-click="vm.savescreenRecording()" class="send-button md-accent md-raised" ng-disabled="screenRecordingForm.$invalid || screenRecordingForm.$pristine" aria-label="SAVE" translate="VIDEO.SAVE" translate-attr-aria-label="VIDEO.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newscreenRecording" ng-click="vm.addNewscreenRecording()" class="send-button md-accent md-raised" ng-disabled="screenRecordingForm.$invalid" aria-label="ADD" translate="VIDEO.ADD_SCREENRECORDING" translate-attr-aria-label="VIDEO.ADD_SCREENRECORDING">\n ADD SCREENRECORDING\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newscreenRecording" ng-click="vm.deletescreenRecording($event)" aria-label="DELETE" translate translate-attr-aria-label="VIDEO.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="VIDEO.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/video/views/screenRecordings/partialViews/play.html",'<md-dialog class="play-dialog" aria-label="play">\n <form name="playForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="{{ vm.app.toUpperCase() }}.{{ vm.label.toUpperCase() }}">Play Recording</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-disabled="vm.loading" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ng-hide="vm.loading">\n <div layout="row" layout-sm flex>\n \x3c!-- VIRTUAL field --\x3e\n <md-card>\n\n <md-card-title ng-if="vm.actionOptions.upperTitle">\n <md-card-title-text>\n <span class="md-headline">{{ vm.filename }}</span>\n <span class="md-subhead"><span translate="{{ vm.app.toUpperCase() }}.UPDATEDAT"></span>: {{ vm.recording.updatedAt}}</span>\n </md-card-title-text>\n </md-card-title>\n\n \x3c!-- video recording directive --\x3e\n <ms-dialog-recording ng-if="vm.format" id="vm.recording.id" title="vm.filename" element="vm.element" model="vm.route" path="vm.path" class="md-card-image"></ms-dialog-recording>\n \x3c!-- / video recording directive --\x3e\n\n <span ng-if="!vm.format">\n <em ng-if="vm.found">{{ vm.app.toUpperCase() + \'.CANT_PLAY_THIS_FILE\' | translate }}</em>\n <em ng-if="!vm.found">{{ vm.app.toUpperCase() + \'.FILE_NOT_FOUND\' | translate }}</em>\n </span>\n\n <md-card-title ng-if="vm.actionOptions.lowerTitle">\n <md-card-title-text>\n <span class="md-headline">{{ vm.filename }}</span>\n <span class="md-subhead"><span translate="{{ vm.app.toUpperCase() }}.UPDATEDAT"></span>:{{ vm.recording.updatedAt}}</span>\n <span ng-if="vm.actionOptions.properties" class="md-subhead"><span translate="{{ vm.app.toUpperCase() }}.PROPERTIES"></span>:</span>\n </md-card-title-text>\n </md-card-title>\n\n <md-card-content ng-if="vm.actionOptions.properties">\n <md-list>\n <md-list-item class="md-2-line" ng-repeat="(key,value) in vm.properties" ng-click="null" ng-if="key != \'value\' && key != \'updatedAt\' && key != \'queue\'">\n\n <md-icon ng-if="vm.icon" class="md-avatar-icon" md-font-icon="vm.actionOptions.propertiesIcon" class="s24"></md-icon>\n\n <div class="md-list-item-text" layout="column">\n <p><b><span translate="{{ vm.app.toUpperCase() }}.{{ key.toUpperCase() }}"></span></b></p>\n <p>{{ value }}\n <p>\n </div>\n </md-list-item>\n </md-list>\n </md-card-content>\n\n\n </md-card>\n </div>\n </md-dialog-content>\n <div ng-hide="!vm.loading" layout-fill style="min-height: 397px;" layout="row" layout-sm="column" layout-align="center center">\n <md-progress-circular class="md-primary md-hue-1" md-diameter="96"></md-progress-circular>\n </div>\n </form>\n</md-dialog>'),e.put("app/main/apps/video/views/screenRecordings/screenRecordings.html",'<div id="screenRecordings" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-video" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="VIDEO.SCREENRECORDINGS">ScreenRecordings</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="VIDEO.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getScreenRecordings()"></ms-quick-filter>\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedScreenRecordings.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedScreenRecordings =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="VIDEO.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-screenRecordings-count">\n <span>{{vm.selectedScreenRecordings.length}}</span>\n <span translate="VIDEO.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="VIDEO.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllScreenRecordings()" translate="VIDEO.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectScreenRecordings()" translate="VIDEO.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedScreenRecordings" csv-label="true" filename="screenRecordings.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedScreenRecordings($event)" aria-label="delete selected" translate translate-attr-label="VIDEO.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- SCREENRECORDING TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedScreenRecordings" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getScreenRecordings">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'VIDEO.ID\' | translate }}</th>\n <th md-column md-order-by="rating">{{ \'VIDEO.RATING\' | translate }}</th>\n <th md-column md-order-by="UserId">{{ \'VIDEO.AGENT\' | translate }}</th>\n <th md-column md-order-by="duration">{{ \'VIDEO.DURATION\' | translate }}</th>\n <th md-column md-order-by="startedAt">{{ \'VIDEO.RECORDSTARTTIME\' | translate }}</th>\n <th md-column md-order-by="closedAt">{{ \'VIDEO.RECORDENDTIME\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.screenRecordings.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="VIDEO.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="screenRecording" md-select-id="id" ng-repeat="screenRecording in vm.screenRecordings.rows">\n <td md-cell ng-if="screenRecording.userpic"><img class="avatar" alt="{{screenRecording.name}}" ng-src="api/users/{{screenRecording.id}}/avatar" /></td>\n <td md-cell ng-if="!screenRecording.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{screenRecording.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditscreenRecording($event, screenRecording)" md-cell class="id ">{{screenRecording.id}}</td>\n <td ng-click="vm.createOrEditscreenRecording($event, screenRecording)" md-cell class="rating ">\n <md-icon md-font-icon="icon-star" style="color:red" ng-show="screenRecording.rating" ng-repeat="rating in [1,2,3,4,5] | limitTo:screenRecording.rating"></md-icon><span ng-hide="screenRecording.rating" translate="VIDEO.NO_RATING">No rating</span>\n </td>\n <td ng-click="vm.createOrEditscreenRecording($event, screenRecording)" md-cell class="UserId ">{{ (vm.users | filter : {\'id\':screenRecording.UserId} : true)[0].fullname }}</td>\n <td md-cell><span ng-bind="vm.convertDuration(screenRecording.duration)"></span></td>\n <td ng-click="vm.createOrEditscreenRecording($event, screenRecording)" md-cell class="startedAt ">{{screenRecording.startedAt | date:\'medium\' }}</td>\n <td ng-click="vm.createOrEditscreenRecording($event, screenRecording)" md-cell class="closedAt ">{{screenRecording.closedAt | date:\'medium\' }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VIDEO.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.playrecording(screenRecording, $event , \'value\' , \'play_screenrecording\' , \'video\' )" translate="VIDEO.PLAY_SCREENRECORDING">\n play screenRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.role === \'admin\' || vm.userProfile.downloadScreenRecordings">\n\n <md-button ng-click="vm.downloadfile2(screenRecording, $event , \'screen/recordings\' )" translate="VIDEO.DOWNLOAD_SCREENRECORDING">\n Download screenRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(screenRecording, $event )" translate="VIDEO.DELETE_SCREENRECORDING">\n Delete screenRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'VIDEO.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VIDEO.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VIDEO.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.screenRecordings.count}}" md-on-paginate="vm.getScreenRecordings" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / SCREENRECORDING TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- NO ADD BUTTON BUTTON --\x3e\n</div>'),e.put("app/main/apps/voice/routing/dialog.html",'<md-dialog ng-init="vm.init()" class="voice-routing-dialog" aria-label="New routing application">\n <form name="routingAppForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ \'VOICE.EDIT_\' + vm.application.appType | uppercase | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ng-switch="vm.application.appType" ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span>({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <div ng-switch-when="agi">\n <div ng-include="\'app/main/apps/voice/routing/views/agi.html\'"></div>\n </div>\n <div ng-switch-when="custom">\n <div ng-include="\'app/main/apps/voice/routing/views/custom.html\'"></div>\n </div>\n <div ng-switch-when="dial">\n <div ng-include="\'app/main/apps/voice/routing/views/dial.html\'"></div>\n </div>\n <div ng-switch-when="externalDial">\n <div ng-include="\'app/main/apps/voice/routing/views/externalDial.html\'"></div>\n </div>\n <div ng-switch-when="goTo">\n <div ng-include="\'app/main/apps/voice/routing/views/goTo.html\'"></div>\n </div>\n <div ng-switch-when="hangup">\n <div ng-include="\'app/main/apps/voice/routing/views/hangup.html\'"></div>\n </div>\n <div ng-switch-when="internalDial">\n <div ng-include="\'app/main/apps/voice/routing/views/internalDial.html\'"></div>\n </div>\n <div ng-switch-when="outboundDial">\n <div ng-include="\'app/main/apps/voice/routing/views/outboundDial.html\'"></div>\n </div>\n <div ng-switch-when="playback">\n <div ng-include="\'app/main/apps/voice/routing/views/playback.html\'"></div>\n </div>\n <div ng-switch-when="queue">\n <div ng-include="\'app/main/apps/voice/routing/views/queue.html\'"></div>\n </div>\n <div ng-switch-when="ringGroup">\n <div ng-include="\'app/main/apps/voice/routing/views/ringGroup.html\'"></div>\n </div>\n <div ng-switch-when="set">\n <div ng-include="\'app/main/apps/voice/routing/views/set.html\'"></div>\n </div>\n <div ng-switch-when="voicemail">\n <div ng-include="\'app/main/apps/voice/routing/views/voicemail.html\'"></div>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveRoutingApp()" class="send-button md-accent md-raised" ng-disabled="routingAppForm.$invalid || routingAppForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/routing/interval/dialog.html",'<md-dialog ng-init="vm.initialize()" class="interval-dialog" aria-label="Edit Interval">\n <form name="intervalForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ \'TOOLS.EDIT_INTERVAL\' | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span>({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select ng-model="vm.type" ng-disabled="!vm.crudPermissions.canEdit" ng-change="vm.onTypeChange()">\n <md-option ng-value="type" ng-repeat=\'type in vm.types\'>{{ type | startcase }}</md-option>\n </md-select>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.type === \'list\'">\n <label translate="TOOLS.INTERVALS">Intervals</label>\n <md-select ng-model="vm.interval.IntervalId" ng-disabled="!vm.crudPermissions.canEdit" required>\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals.rows" ng-disabled="interval.canSelect === false">{{ interval.name }}</md-option>\n </md-select>\n </md-input-container>\n \x3c!-- TIMERANGE START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.TIME_RANGE">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <div class="md-block" flex>\n <mdp-time-picker name="timeRangeFrom" mdp-placeholder="FROM" ng-model="vm.timeRangeFrom" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="intervalForm.timeRangeFrom.$error" ng-show="intervalForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_FROM_INVALID">Time Range From field is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n <div class="md-block" flex ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.crudPermissions.canEdit" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_INVALID">Time Range To field is invalid</span>\n </div>\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </div>\n \x3c!-- TIMERANGE END --\x3e\n \x3c!-- DAYSOFWEEK START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.WEEK_DAYS">Week Days</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.dayOfWeekFrom" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | startcase }}</span></md-option>\n </md-select>\n </md-input-container>\n <md-input-container flex class="md-block" ng-if="vm.dayOfWeekFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="dayOfWeekTo" ng-model="vm.dayOfWeekTo" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | startcase }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- DAYSOFWEEK END --\x3e\n \x3c!-- MONTHDAY START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTH_DAYS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthDayFrom" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n </md-input-container>\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthDayFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthDayTo" ng-model="vm.monthDayTo" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTHDAY END --\x3e\n \x3c!-- MONTH START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTHS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthFrom" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | startcase }}</span></md-option>\n </md-select>\n </md-input-container>\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthTo" ng-model="vm.monthTo" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | startcase }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTH END --\x3e\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit" ng-click="vm.saveInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid || intervalForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/routing/views/agi.html",'<md-input-container class="md-block">\n <label translate="VOICE.PROJECT">Project</label>\n <md-select name="project" ng-model="vm.application.project" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'agi://127.0.0.1/square,{{project.name}}\'" ng-repeat="project in vm.projects.rows" ng-disabled="project.canSelect === false">{{ project.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'project\'].$error" ng-show="routingAppForm[\'project\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PROJECT_REQUIRED">Project field is required</span>\n </div>\n </div>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/custom.html",'<md-input-container class="md-block">\n <label translate="VOICE.APPLICATION_NAME">Application_Name</label>\n <input type="text" name="app" ng-model="vm.application.app" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'app\'].$error" ng-show="routingAppForm[\'app\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.APPLICATION_NAME_REQUIRED">Application_Name field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.ARGUMENTS">Arguments</label>\n <input type="text" name="appdata" ng-model="vm.application.appdata" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'appdata\'].$error" ng-show="routingAppForm[\'appdata\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ARGUMENTS_REQUIRED">Arguments field is required</span>\n </div>\n </div>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/dial.html",'<md-input-container class="md-block">\n <label translate="VOICE.TECHNOLOGY/RESOURCE">Technology/Resource</label>\n <input type="text" name="tech" ng-model="vm.application.tech" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'tech\'].$error" ng-show="routingAppForm[\'tech\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.TECHNOLOGY/RESOURCE_REQUIRED">Technology/Resource field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.application.timeout" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'timeout\'].$error" ng-show="routingAppForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or\n equal than</span> <span>0</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.OPTIONS">Options</label>\n <input type="text" name="options" ng-model="vm.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'options\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.URL">Url</label>\n <input type="text" name="url" ng-model="vm.application.url" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'url\'].$error" ng-show="routingAppForm[\'url\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n </div>\n </div>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/externalDial.html",'<md-input-container class="md-block">\n <label translate="VOICE.TRUNK">Trunk</label>\n <md-select name="trunk" ng-model="vm.application.trunk" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="trunk.name" ng-repeat="trunk in vm.trunks.rows" ng-disabled="trunk.canSelect === false">{{\n trunk.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'trunk\'].$error" ng-show="routingAppForm[\'trunk\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.TRUNK_REQUIRED">Trunk field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.application.phone" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'phone\'].$error" ng-show="routingAppForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.application.timeout" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'timeout\'].$error" ng-show="routingAppForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or\n equal than</span> <span>0</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.OPTIONS">Options</label>\n <input type="text" name="options" ng-model="vm.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'options\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.URL">Url</label>\n <input type="text" name="url" ng-model="vm.application.url" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'url\'].$error" ng-show="routingAppForm[\'url\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n </div>\n </div>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/goTo.html",'<md-input-container class="md-block">\n <label translate="VOICE.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.application.context" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts.rows" ng-disabled="context.canSelect === false">{{\n context.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'context\'].$error" ng-show="routingAppForm[\'context\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.EXTENSION">Extension</label>\n <input type="text" name="extension" ng-model="vm.application.extension" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'extension\'].$error" ng-show="routingAppForm[\'extension\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.EXTENSION_REQUIRED">Extension field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.PRIORITY">Priority</label>\n <input type="text" name="priority" ng-model="vm.application.priority" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'priority\'].$error" ng-show="routingAppForm[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n </div>\n </div>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/hangup.html","<md-input-container class=\"md-block\">\n <label translate=\"VOICE.HANGUP_CAUSE\">Hangup_Cause</label>\n <md-select name=\"appdata\" ng-model=\"vm.application.appdata\" autofocus required ng-disabled=\"!vm.crudPermissions.canEdit\">\n <md-option ng-value=\"'1'\"> {{ 'VOICE.HANGUPCAUSE_1' | translate }} </md-option>\n <md-option ng-value=\"'16'\"> {{ 'VOICE.HANGUPCAUSE_16' | translate }} </md-option>\n <md-option ng-value=\"'17'\"> {{ 'VOICE.HANGUPCAUSE_17' | translate }} </md-option>\n <md-option ng-value=\"'18'\"> {{ 'VOICE.HANGUPCAUSE_18' | translate }} </md-option>\n <md-option ng-value=\"'21'\"> {{ 'VOICE.HANGUPCAUSE_21' | translate }} </md-option>\n <md-option ng-value=\"'22'\"> {{ 'VOICE.HANGUPCAUSE_22' | translate }} </md-option>\n <md-option ng-value=\"'27'\"> {{ 'VOICE.HANGUPCAUSE_27' | translate }} </md-option>\n <md-option ng-value=\"'38'\"> {{ 'VOICE.HANGUPCAUSE_38' | translate }} </md-option>\n <md-option ng-value=\"'41'\"> {{ 'VOICE.HANGUPCAUSE_41' | translate }} </md-option>\n </md-select>\n <div ng-messages=\"routingAppForm['appdata'].$error\" ng-show=\"routingAppForm['appdata'].$touched\" role=\"alert\">\n <div ng-message=\"required\">\n <span translate=\"VOICE.ERRORS.HANGUP_CAUSE_REQUIRED\">Hangup_Cause field is required</span>\n </div>\n </div>\n</md-input-container>"),e.put("app/main/apps/voice/routing/views/internalDial.html",'<md-input-container class="md-block">\n <label translate="VOICE.USER">User</label>\n <md-select name="user" ng-model="vm.application.user" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'SIP/{{user.name}}\'" ng-repeat="user in vm.users.rows" ng-disabled="user.canSelect === false">\n {{ user.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'user\'].$error" ng-show="routingAppForm[\'user\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.USER_REQUIRED">User field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.application.timeout" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'timeout\'].$error" ng-show="routingAppForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or\n equal than</span> <span>0</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.OPTIONS">Options</label>\n <input type="text" name="options" ng-model="vm.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'options\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.URL">Url</label>\n <input type="text" name="url" ng-model="vm.application.url" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'url\'].$error" ng-show="routingAppForm[\'url\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n </div>\n </div>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/outboundDial.html",'<md-input-container class="md-block">\n <label translate="VOICE.TRUNK">Trunk</label>\n <md-select name="trunk" ng-model="vm.application.trunk" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="trunk.name" ng-repeat="trunk in vm.trunks.rows" ng-disabled="trunk.canSelect === false">{{\n trunk.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'trunk\'].$error" ng-show="routingAppForm[\'trunk\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.TRUNK_REQUIRED">Trunk field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.CALLER_ID">Caller_ID</label>\n <input type="text" name="callerID" ng-model="vm.application.callerID" ng-disabled="!vm.crudPermissions.canEdit">\n <div class="hint"><span translate="VOICE.HELP.CALLER_ID"></span></div>\n <div ng-messages="routingAppForm[\'callerID\'].$error" ng-show="routingAppForm[\'callerID\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CALLER_ID_REQUIRED">Caller_ID field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.PREFIX">Prefix</label>\n <input type="text" name="prefix" ng-model="vm.application.prefix" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'prefix\'].$error" ng-show="routingAppForm[\'prefix\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PREFIX_REQUIRED">Prefix field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.TAGS">Tags</label>\n <md-select name="tag" ng-model="vm.application.tag" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'--\'">None</md-option>\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags.rows" ng-disabled="tag.canSelect === false">{{ tag.name }}\n </md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'tag\'].$error" ng-show="routingAppForm[\'tag\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.TAGS_REQUIRED">Tags field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.application.timeout" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'timeout\'].$error" ng-show="routingAppForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or\n equal than</span> <span>0</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.OPTIONS">Options</label>\n <input type="text" name="options" ng-model="vm.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'options\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.URL">Url</label>\n <input type="text" name="url" ng-model="vm.application.url" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'url\'].$error" ng-show="routingAppForm[\'url\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n </div>\n </div>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/playback.html",'<md-input-container class="md-block">\n <label translate="VOICE.AUDIO_FILES">Audio_Files</label>\n <md-select name="sound" ng-model="vm.application.appdata" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/{{sound.save_name}}\'" ng-repeat="sound in vm.sounds.rows" ng-disabled="sound.canSelect === false">{{ sound.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'sound\'].$error" ng-show="routingAppForm[\'sound\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.AUDIO_FILES_REQUIRED">Audio_Files field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.OPTIONS">Options</label>\n <input type="text" name="options" ng-model="vm.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'options\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <md-switch ng-model="vm.application.answer" aria-label="Answer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="VOICE.ANSWER">Answer</span></md-switch>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/queue.html",'<md-input-container class="md-block">\n <label translate="VOICE.QUEUE">Queue</label>\n <md-select name="queue" ng-model="vm.application.queue" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="queue.name" ng-repeat="queue in vm.queues.rows" ng-disabled="queue.canSelect === false">{{\n queue.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'queue\'].$error" ng-show="routingAppForm[\'queue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.OPTIONS">Options</label>\n <input type="text" name="options" ng-model="vm.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'options\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.URL">Url</label>\n <input type="text" name="URL" ng-model="vm.application.URL" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'URL\'].$error" ng-show="routingAppForm[\'URL\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.ANNOUNCE_OVERRIDES">Announce_Overrides</label>\n <md-select name="sound" ng-model="vm.application.sound" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/{{sound.save_name}}\'" ng-repeat="sound in vm.sounds.rows" ng-disabled="sound.canSelect === false">{{ sound.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'sound\'].$error" ng-show="routingAppForm[\'sound\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ANNOUNCE_OVERRIDES_REQUIRED">Announce_Overrides field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.application.timeout" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'timeout\'].$error" ng-show="routingAppForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or\n equal than</span> <span>0</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.AGI">Agi</label>\n <input type="text" name="agi" ng-model="vm.application.agi" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'agi\'].$error" ng-show="routingAppForm[\'agi\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.AGI_REQUIRED">Agi field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.MACRO">Macro</label>\n <input type="text" name="macro" ng-model="vm.application.macro" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'macro\'].$error" ng-show="routingAppForm[\'macro\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MACRO_REQUIRED">Macro field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.GOSUB">GoSub</label>\n <input type="text" name="gosub" ng-model="vm.application.gosub" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'gosub\'].$error" ng-show="routingAppForm[\'gosub\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.GOSUB_REQUIRED">GoSub field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.RULE">Rule</label>\n <input type="text" name="rule" ng-model="vm.application.rule" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'rule\'].$error" ng-show="routingAppForm[\'rule\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.RULE_REQUIRED">Rule field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.POSITION">Position</label>\n <input type="number" name="position" ng-model="vm.application.position" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'position\'].$error" ng-show="routingAppForm[\'position\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.POSITION_REQUIRED">Position field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.POSITION_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Position must be a valid greater or\n equal than</span> <span>0</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <md-switch ng-model="vm.application.answer" aria-label="Answer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="VOICE.ANSWER">Answer</span></md-switch>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/ringGroup.html",'<md-input-container class="md-block">\n <label translate="VOICE.USER">User</label>\n <md-select name="user" ng-model="vm.application.users" autofocus multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'SIP/{{user.name}}\'" ng-repeat="user in vm.users.rows" ng-disabled="user.canSelect === false">\n {{ user.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'user\'].$error" ng-show="routingAppForm[\'user\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.USER_REQUIRED">User field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.application.timeout" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'timeout\'].$error" ng-show="routingAppForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or\n equal than</span> <span>0</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.OPTIONS">Options</label>\n <input type="text" name="options" ng-model="vm.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'options\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.URL">Url</label>\n <input type="text" name="url" ng-model="vm.application.url" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'url\'].$error" ng-show="routingAppForm[\'url\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n </div>\n </div>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/set.html",'<md-input-container class="md-block">\n <label translate="VOICE.VARIABLE">Variable</label>\n <md-select name="variable" ng-model="vm.application.name" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables.rows" ng-disabled="variable.canSelect === false">{{\n variable.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'variable\'].$error" ng-show="routingAppForm[\'variable\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.VARIABLE_REQUIRED">Variable field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.VALUE">Value</label>\n <input type="text" name="value" ng-model="vm.application.value" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'value\'].$error" ng-show="routingAppForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/voicemail.html",'<md-input-container class="md-block">\n <label translate="VOICE.MAILBOX@CONTEXT">Mailbox@Context</label>\n <md-select name="voiceMail" ng-model="vm.application.voiceMail" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'{{voiceMail.mailbox}}@from-voicemail\'" ng-repeat="voiceMail in vm.voiceMails.rows" ng-disabled="voiceMail.canSelect === false">{{ voiceMail.mailbox }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'voiceMail\'].$error" ng-show="routingAppForm[\'voiceMail\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MAILBOX@CONTEXT_REQUIRED">Mailbox@Context field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.OPTIONS">Options</label>\n <input type="text" name="options" ng-model="vm.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'options\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n </div>\n </div>\n</md-input-container>'),e.put("app/main/apps/voice/views/chanSpies/chanSpies.html",'<div id="chanSpies" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="VOICE.CHANSPIES">ChanSpies</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedChanSpies.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedChanSpies =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="VOICE.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-chanSpies-count">\n <span>{{vm.selectedChanSpies.length}}</span>\n <span translate="VOICE.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="VOICE.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllChanSpies()" translate="VOICE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectChanSpies()" translate="VOICE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedChanSpies" csv-label="true" filename="chanSpies.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedChanSpies($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- CHANSPY TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedChanSpies" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getChanSpies">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'VOICE.NAME\' | translate }}</th>\n <th md-column md-order-by="prefix">{{ \'VOICE.PREFIX\' | translate }}</th>\n <th md-column md-order-by="auth">{{ \'VOICE.AUTH\' | translate }}</th>\n <th md-column md-order-by="record">{{ \'VOICE.RECORD\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'VOICE.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.chanSpies.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="chanSpy" md-select-id="id" ng-repeat="chanSpy in vm.chanSpies.rows">\n <td md-cell ng-if="chanSpy.userpic"><img class="avatar" alt="{{chanSpy.name}}" ng-src="api/users/{{chanSpy.id}}/avatar" /></td>\n <td md-cell ng-if="!chanSpy.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{chanSpy.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditchanSpy($event, chanSpy)" md-cell class="id ">{{chanSpy.id}}</td>\n <td ng-click="vm.createOrEditchanSpy($event, chanSpy)" md-cell class="name ">{{chanSpy.name}}</td>\n <td ng-click="vm.createOrEditchanSpy($event, chanSpy)" md-cell class="prefix ">{{chanSpy.prefix}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chanSpy, ev) : vm.createOrEditchanSpy($event, chanSpy)" md-cell class="auth ">\n <md-icon md-colors="{color: {{chanSpy.auth ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{chanSpy.auth ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chanSpy, ev) : vm.createOrEditchanSpy($event, chanSpy)" md-cell class="record ">\n <md-icon md-colors="{color: {{chanSpy.record ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{chanSpy.record ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.createOrEditchanSpy($event, chanSpy)" md-cell class="description ">{{chanSpy.description}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(chanSpy, $event )" translate="VOICE.EDIT_CHANSPY">\n Edit chanSpy\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(chanSpy, $event )" translate="VOICE.DELETE_CHANSPY">\n Delete chanSpy\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.chanSpies.count}}" md-on-paginate="vm.getChanSpies" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / CHANSPY TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD CHANSPY BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-chanSpy-button" ng-click="vm.createOrEditchanSpy($event)" aria-label="add chanSpy" translate translate-attr-aria-label="VOICE.ADD_CHANSPY">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD CHANSPY BUTTON --\x3e\n</div>'),e.put("app/main/apps/voice/views/chanSpies/create/dialog.html",'<md-dialog class="chanSpy-dialog" aria-label="New chanSpy">\n <form name="chanSpyForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="VOICE.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.chanSpy.name" ng-required="true" autofocus>\n\n <div ng-messages="chanSpyForm[\'name\'].$error" ng-show="chanSpyForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.PREFIX">Prefix</label>\n <input type="text" name="prefix" ng-model="vm.chanSpy.prefix" ng-required="true">\n\n <div ng-messages="chanSpyForm[\'prefix\'].$error" ng-show="chanSpyForm[\'prefix\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PREFIX_REQUIRED">Prefix field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.OPTIONS">Options</label>\n <md-select name="options" ng-model="vm.chanSpy.options" multiple required>\n <md-option ng-value="\'b\'">b: Only spy on channels involved in a bridged call.</md-option>\n <md-option ng-value="\'B\'">B: Instead of whispering on a single channel barge in on both channels involved in the call.</md-option>\n <md-option ng-value="\'E\'">E: Exit when the spied-on channel hangs up.</md-option>\n <md-option ng-value="\'o\'">o: Only listen to audio coming from this channel.</md-option>\n <md-option ng-value="\'q\'">q: Don\'t play a beep when beginning to spy on a channel, or speak the selected channel name.</md-option>\n <md-option ng-value="\'s\'">s: Skip the playback of the channel type (i.e. SIP, IAX, etc) when speaking the selected channel name.</md-option>\n <md-option ng-value="\'S\'">S: Stop when no more channels are left to spy on.</md-option>\n <md-option ng-value="\'w\'">w: Enable whisper mode, so the spying channel can talk to the spied-on channel.</md-option>\n <md-option ng-value="\'W\'">W: Enable private whisper mode, so the spying channel can talk to the spied-on channel but cannot listen to that channel.</md-option>\n </md-select>\n <div ng-messages="chanSpyForm[\'options\'].$error" ng-show="chanSpyForm[\'options\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chanSpy.auth" aria-label="Auth"><span translate="VOICE.AUTH">Auth</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.chanSpy.auth">\n <label translate="VOICE.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.chanSpy.password" placeholder="Password" translate translate-attr-placeholder="VOICE.PASSWORD" required>\n <div ng-messages="chanSpyForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="VOICE.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chanSpy.record" aria-label="Record"><span translate="VOICE.RECORD">Record</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.chanSpy.record" class="md-block">\n <label translate="VOICE.RECORDINGFORMAT">recordingFormat</label>\n <md-select name="recordingFormat" ng-model="vm.chanSpy.recordingFormat" required>\n <md-option ng-value="\'wav\'">wav</md-option>\n <md-option ng-value="\'gsm\'">gsm</md-option>\n <md-option ng-value="\'WAV\'">wav49</md-option>\n </md-select>\n <div ng-messages="chanSpyForm[\'recordingFormat\'].$error" ng-show="chanSpyForm[\'recordingFormat\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.RECORDINGFORMAT_REQUIRED">recordingFormat field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.chanSpy.description">\n\n <div ng-messages="chanSpyForm[\'description\'].$error" ng-show="chanSpyForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newchanSpy" ng-click="vm.savechanSpy()" class="send-button md-accent md-raised" ng-disabled="chanSpyForm.$invalid || chanSpyForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newchanSpy" ng-click="vm.addNewchanSpy()" class="send-button md-accent md-raised" ng-disabled="chanSpyForm.$invalid" aria-label="ADD" translate="VOICE.ADD_CHANSPY" translate-attr-aria-label="VOICE.ADD_CHANSPY">\n ADD CHANSPY\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newchanSpy" ng-click="vm.deletechanSpy($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/contexts/contexts.html",'<div id="contexts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="VOICE.CONTEXTS">Contexts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedContexts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedContexts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="VOICE.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-contexts-count">\n <span>{{vm.selectedContexts.length}}</span>\n <span translate="VOICE.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="VOICE.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllContexts()" translate="VOICE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectContexts()" translate="VOICE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedContexts" csv-label="true" filename="contexts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedContexts($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- CONTEXT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedContexts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getContexts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'VOICE.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'VOICE.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.contexts.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="context" md-select-id="id" ng-repeat="context in vm.contexts.rows">\n <td md-cell ng-if="context.userpic"><img class="avatar" alt="{{context.name}}" ng-src="api/users/{{context.id}}/avatar" /></td>\n <td md-cell ng-if="!context.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{context.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditContext($event, context)" md-cell class="id ">{{context.id}}</td>\n <td ng-click="vm.createOrEditContext($event, context)" md-cell class="name ">{{context.name}}</td>\n <td ng-click="vm.createOrEditContext($event, context)" md-cell class="description ">{{context.description}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(context, $event )" translate="VOICE.EDIT_CONTEXT">\n Edit Context\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(context, $event )" translate="VOICE.DELETE_CONTEXT">\n Delete Context\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.contexts.count}}" md-on-paginate="vm.getContexts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / CONTEXT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD CONTEXT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-context-button" ng-click="vm.createOrEditContext($event)" aria-label="add context" translate translate-attr-aria-label="VOICE.ADD_CONTEXT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD CONTEXT BUTTON --\x3e\n</div>'),e.put("app/main/apps/voice/views/contexts/create/dialog.html",'<md-dialog class="context-dialog" aria-label="New Context">\n <form name="contextForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="VOICE.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.context.name" ng-required="true" autofocus>\n\n <div ng-messages="contextForm[\'name\'].$error" ng-show="contextForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.context.description">\n\n <div ng-messages="contextForm[\'description\'].$error" ng-show="contextForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newContext" ng-click="vm.saveContext()" class="send-button md-accent md-raised" ng-disabled="contextForm.$invalid || contextForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newContext" ng-click="vm.addNewContext()" class="send-button md-accent md-raised" ng-disabled="contextForm.$invalid" aria-label="ADD" translate="VOICE.ADD_CONTEXT" translate-attr-aria-label="VOICE.ADD_CONTEXT">\n ADD CONTEXT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newContext" ng-click="vm.deleteContext($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/inboundRoutes/create/dialog.html",'<md-dialog ng-init="vm.initialize()" class="inbound-route-dialog" aria-label="New InboundRoute">\n <form name="inboundrouteForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.newInboundRoute ? \'VOICE.NEW_INBOUNDROUTE\' : \'VOICE.EDIT_INBOUNDROUTE\' | translate\n }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span>({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="VOICE.PHONENUMBER">PhoneNumber</label>\n <input type="text" name="exten" ng-model="vm.inboundRoute.exten" ng-required="true" autofocus>\n <div ng-messages="inboundrouteForm[\'exten\'].$error" ng-show="inboundrouteForm[\'exten\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PHONENUMBER_REQUIRED">PhoneNumber field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.inboundRoute.context" required>\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts.rows" ng-disabled="context.canSelect === false">{{ context.name }}</md-option>\n </md-select>\n <div ng-messages="inboundrouteForm[\'context\'].$error" ng-show="inboundrouteForm[\'context\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.inboundRoute.alias" ng-change="vm.getRouting()">\n <div ng-messages="inboundrouteForm[\'alias\'].$error" ng-show="inboundrouteForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ALIAS_REQUIRED">Alias field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.inboundRoute.description">\n <div ng-messages="inboundrouteForm[\'description\'].$error" ng-show="inboundrouteForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newInboundRoute" ng-click="vm.saveInboundRoute()" class="send-button md-accent md-raised" ng-disabled="inboundrouteForm.$invalid || inboundrouteForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newInboundRoute" ng-click="vm.addNewInboundRoute()" class="send-button md-accent md-raised" ng-disabled="inboundrouteForm.$invalid" aria-label="ADD" translate="VOICE.ADD_INBOUNDROUTE" translate-attr-aria-label="VOICE.ADD_INBOUNDROUTE">\n ADD INBOUNDROUTE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newInboundRoute" ng-click="vm.deleteInboundRoute($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/inboundRoutes/edit/view.html",'<div ng-init="vm.onInit()" id="voice-inbound-route" class="page-layout simple tabbed" layout="column">\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-inbound-routes-button md-icon-button" aria-label="Go to inbound routes" ng-click="vm.gotoInboundRoutes()" translate translate-attr-aria-label="VOICE.GO_TO_INBOUNDROUTES">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n <div layout="row" layout-align="start center">\n <div class="inbound-route-image" hide-xs>\n <img ng-src="assets/images/business/inboundroutes.jpg">\n </div>\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.inboundRoute.id}}\n <span ng-if="vm.inboundRoute.exten">{{vm.inboundRoute.exten}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="VOICE.CREATED_AT"></span> <span>{{vm.inboundRoute.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveInboundRoute()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (actionsForm.$invalid)" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n </div>\n </div>\n \x3c!-- /HEADER --\x3e\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n \x3c!-- SETTINGS TAB --\x3e\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="inbound-route-detail-form-container md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="VOICE.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="VOICE.PHONENUMBER">PhoneNumber</label>\n <input type="text" name="exten" ng-model="vm.inboundRoute.exten" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'exten\'].$error" ng-show="generalForm[\'exten\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PHONENUMBER_REQUIRED">PhoneNumber field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.inboundRoute.context" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts.rows" ng-disabled="context.canSelect === false">{{ context.name }}</md-option>\n </md-select>\n <div ng-messages="generalForm[\'context\'].$error" ng-show="generalForm[\'context\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.inboundRoute.alias" ng-change="vm.onActionsTabSelection()" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'alias\'].$error" ng-show="generalForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ALIAS_REQUIRED">Alias field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.inboundRoute.description" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n \x3c!-- /SETTINGS TAB --\x3e\n \x3c!-- ACTIONS TAB --\x3e\n <md-tab md-on-select="vm.onActionsTabSelection()">\n <md-tab-label>\n <span translate="VOICE.ACTIONS">ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="inbound-route-detail-form-container no-padding no-margin">\n <div class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- APPLICATIONS LIST --\x3e\n <div class="navigation-simple sidenav main-sidenav md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="20" ng-if="vm.crudPermissions.canEdit">\n <md-list class="no-padding">\n <md-subheader class="md-no-sticky">\n <span translate="VOICE.APPLICATIONS_LIST">\n Applications List\n </span>\n </md-subheader>\n </md-list>\n <md-divider class="no-margin"></md-divider>\n <md-list ng-sortable="vm.sortableAppsOptions">\n <md-list-item class="handle" ng-repeat="a in vm.apps">\n <div layout="row">\n <md-icon md-font-icon="icon-apps" class="s16 mr-15"></md-icon>\n <p class="text-truncate" translate="VOICE.{{(a.appAlias || a.appType) | uppercase}}">{{a.appAlias ||\n a.appType}}</p>\n </div>\n </md-list-item>\n </md-list>\n </div>\n \x3c!-- /APPLICATIONS LIST --\x3e\n <div flex></div>\n \x3c!-- ROUTING --\x3e\n <div class="main scrollable md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="{{vm.crudPermissions.canEdit ? 75 : 100}}">\n <div ng-if="vm.pendingChanges" class="p-10 md-amber-300-bg">\n <md-icon md-font-icon="icon-information-outline" aria-label="Save reminder"></md-icon>\n <span class="no-margin font-size-12 line-height-30" translate="VOICE.HELP.SAVE_ROUTES"></span>\n </div>\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm.selectedApplications.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">Drag & Drop Routing</span>\n <div flex></div>\n <ms-search-bar query="vm.query" debounce="300"></ms-search-bar>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm.selectedApplications.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm.selectedApplications.length}}\n {{vm.selectedApplications.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm.crudPermissions.canDelete" class="md-icon-button" ng-click="vm.deleteSelectedApplications($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedApplications">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </th>\n <th md-column width="10px"></th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body ng-sortable="vm.sortableRoutingOptions">\n <tr md-row md-select="a" md-select-id="id" ng-repeat="a in vm.applications.rows | filter:vm.query.filter as results">\n <td md-cell>\n <md-icon md-font-icon="icon-drag-vertical" class="s16 handle"></md-icon>\n </td>\n <td md-cell ng-click="vm.editApplication($event, $index)">{{a.app.toLowerCase() ===\n \'agi\' ? \'Cally-Square\' : a.app | ucfirst}}<span ng-if="a.appType.toLowerCase() === \'custom\'">*</span></td>\n <td md-cell ng-click="vm.editApplication($event, $index)"><span class="text-truncate" style="width:200px">{{a.appdata}}</span></td>\n <td md-cell ng-click="vm.editInterval($event, $index)">{{a.IntervalId ? \'From List\' :\n a.interval}}</td>\n <td md-cell>\n <md-button ng-click="vm.editInterval($event, $index)" class="md-icon-button" aria-label="Interval">\n <md-icon md-font-icon="icon-timer"></md-icon>\n <md-tooltip>\n {{a.IntervalId ? \'From List\' : (a.interval === \'*,*,*,*\' ? \'Always\' : \'Custom\')}}\n </md-tooltip>\n </md-button>\n </td>\n <td md-cell ng-if="!vm.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editApplication($event, $index)" translate="VOICE.EDIT_APP">\n Edit App\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editInterval($event, $index)" translate="VOICE.EDIT_INTERVAL">\n Edit Interval\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteApplication(a, $index, $event)" translate="VOICE.DELETE_APP">\n Delete App\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-class="{ \'ng-cloak\': results.length > 0 }">\n <td md-cell colspan="6">\n <span class="text-boxed-light" translate="VOICE.NO_APPS_AVAILABLE">No applications\n available</span>\n </td>\n </tr>\n </tbody>\n <tfoot md-foot>\n <tr md-row>\n <td md-cell colspan="7">\n <span><em translate="VOICE.LEGEND.CUSTOM_APPLICATION">(*) - Custom application.</em></span>\n </td>\n </tr>\n </tfoot>\n </table>\n </md-table-container>\n </div>\n \x3c!-- /ROUTING --\x3e\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n \x3c!-- /ACTIONS TAB --\x3e\n </md-tabs>\n </div>\n \x3c!-- /CONTENT --\x3e\n</div>'),e.put("app/main/apps/voice/views/inboundRoutes/inboundRoutes.html",'<div id="inbound-routes" class="page-layout simple left-sidenav inner-sidenav">\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="VOICE.INBOUNDROUTES">InboundRoutes</span>\n </div>\n </div>\n <div layout="row">\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n </div>\n </div>\n <div ng-show="vm.selectedInboundRoutes.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n <div class="close-button-wrapper" ng-click="vm.selectedInboundRoutes = []">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="VOICE.BACK">Back</span>\n </md-button>\n </div>\n <div flex layout="row" layout-align="space-between center">\n <div>\n <span class="selected-inbound-routes-count">\n <span>{{ vm.selectedInboundRoutes.length }}</span>\n <span translate="VOICE.SELECTED">selected</span>\n </span>\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="VOICE.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectedInboundRoutes = vm.inboundRoutes.rows" translate="VOICE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.selectedInboundRoutes = []" translate="VOICE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedInboundRoutes" csv-label="true" filename="inbound_routes.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedInboundRoutes($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n <div class="content" md-background-bg layout="row" layout-align="start start">\n <div class="main scrollable" ms-scroll>\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedInboundRoutes" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getInboundRoutes">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n <th md-column md-order-by="exten">{{ \'VOICE.PHONENUMBER\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'VOICE.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.inboundRoutes.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="route" md-select-id="id" ng-repeat="route in vm.inboundRoutes.rows">\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditInboundRoute($event, route)" md-cell class="id ">{{ route.id }}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditInboundRoute($event, route)" md-cell class="exten ">{{ route.exten }}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditInboundRoute($event, route)" md-cell class="description ">{{ route.description }}</td>\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editRoute(route)" translate="VOICE.EDIT_INBOUNDROUTE">\n Edit InboundRoute\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteConfirm(route, $event)" translate="VOICE.DELETE_INBOUNDROUTE">\n Delete InboundRoute\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{ \'VOICE.PAGE\' | translate }}:\', rowsPerPage: \'{{ \'VOICE.ROWSPERPAGE\' | translate }}:\', of: \'{{ \'VOICE.OF\' | translate }}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{ vm.inboundRoutes.count }}" md-on-paginate="vm.getInboundRoutes" md-page-select>\n </md-table-pagination>\n </md-card>\n </div>\n </div>\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-inbound-route-button" ng-click="vm.createOrEditInboundRoute($event)" aria-label="add inbound route" translate translate-attr-aria-label="VOICE.ADD_INBOUNDROUTE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n</div>'),e.put("app/main/apps/voice/views/internalRoutes/create/dialog.html",'<md-dialog ng-init="vm.initialize()" class="internal-route-dialog" aria-label="New InternalRoute">\n <form name="internalrouteForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.newInternalRoute ? \'VOICE.NEW_INTERNALROUTE\' : \'VOICE.EDIT_INTERNALROUTE\' | translate\n }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span>({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="VOICE.PHONENUMBER">PhoneNumber</label>\n <input type="text" name="exten" ng-model="vm.internalRoute.exten" ng-required="true" autofocus>\n <div ng-messages="internalrouteForm[\'exten\'].$error" ng-show="internalrouteForm[\'exten\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PHONENUMBER_REQUIRED">PhoneNumber field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.internalRoute.context" required>\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts.rows" ng-disabled="context.canSelect === false">{{ context.name }}</md-option>\n </md-select>\n <div ng-messages="internalrouteForm[\'context\'].$error" ng-show="internalrouteForm[\'context\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.internalRoute.alias" ng-change="vm.getRouting()">\n <div ng-messages="internalrouteForm[\'alias\'].$error" ng-show="internalrouteForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ALIAS_REQUIRED">Alias field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.internalRoute.description">\n <div ng-messages="internalrouteForm[\'description\'].$error" ng-show="internalrouteForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newInternalRoute" ng-click="vm.saveInternalRoute()" class="send-button md-accent md-raised" ng-disabled="internalrouteForm.$invalid || internalrouteForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newInternalRoute" ng-click="vm.addNewInternalRoute()" class="send-button md-accent md-raised" ng-disabled="internalrouteForm.$invalid" aria-label="ADD" translate="VOICE.ADD_INTERNALROUTE" translate-attr-aria-label="VOICE.ADD_INTERNALROUTE">\n ADD INTERNALROUTE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newInternalRoute" ng-click="vm.deleteInternalRoute($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/internalRoutes/edit/view.html",'<div ng-init="vm.onInit()" id="voice-internal-route" class="page-layout simple tabbed" layout="column">\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-internal-routes-button md-icon-button" aria-label="Go to internal routes" ng-click="vm.gotoInternalRoutes()" translate translate-attr-aria-label="VOICE.GO_TO_INTERNALROUTES">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n <div layout="row" layout-align="start center">\n <div class="internal-route-image" hide-xs>\n <img ng-src="assets/images/business/internalroutes.jpg">\n </div>\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.internalRoute.id}}\n <span ng-if="vm.internalRoute.exten">{{vm.internalRoute.exten}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="VOICE.CREATED_AT"></span> <span>{{vm.internalRoute.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveInternalRoute()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (actionsForm.$invalid)" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n </div>\n </div>\n \x3c!-- /HEADER --\x3e\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n \x3c!-- SETTINGS TAB --\x3e\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="internal-route-detail-form-container md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="VOICE.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="VOICE.PHONENUMBER">PhoneNumber</label>\n <input type="text" name="exten" ng-model="vm.internalRoute.exten" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'exten\'].$error" ng-show="generalForm[\'exten\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PHONENUMBER_REQUIRED">PhoneNumber field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.internalRoute.context" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts.rows" ng-disabled="context.canSelect === false">{{ context.name }}</md-option>\n </md-select>\n <div ng-messages="generalForm[\'context\'].$error" ng-show="generalForm[\'context\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.internalRoute.alias" ng-change="vm.onActionsTabSelection()" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'alias\'].$error" ng-show="generalForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ALIAS_REQUIRED">Alias field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.internalRoute.description" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n \x3c!-- /SETTINGS TAB --\x3e\n \x3c!-- ACTIONS TAB --\x3e\n <md-tab md-on-select="vm.onActionsTabSelection()">\n <md-tab-label>\n <span translate="VOICE.ACTIONS">ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="internal-route-detail-form-container no-padding no-margin">\n <div class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- APPLICATIONS LIST --\x3e\n <div class="navigation-simple sidenav main-sidenav md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="20" ng-if="vm.crudPermissions.canEdit">\n <md-list class="no-padding">\n <md-subheader class="md-no-sticky">\n <span translate="VOICE.APPLICATIONS_LIST">\n Applications List\n </span>\n </md-subheader>\n </md-list>\n <md-divider class="no-margin"></md-divider>\n <md-list ng-sortable="vm.sortableAppsOptions">\n <md-list-item class="handle" ng-repeat="a in vm.apps">\n <div layout="row">\n <md-icon md-font-icon="icon-apps" class="s16 mr-15"></md-icon>\n <p class="text-truncate" translate="VOICE.{{(a.appAlias || a.appType) | uppercase}}">{{a.appAlias ||\n a.appType}}</p>\n </div>\n </md-list-item>\n </md-list>\n </div>\n \x3c!-- /APPLICATIONS LIST --\x3e\n <div flex></div>\n \x3c!-- ROUTING --\x3e\n <div class="main scrollable md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="{{vm.crudPermissions.canEdit ? 75 : 100}}">\n <div ng-if="vm.pendingChanges" class="p-10 md-amber-300-bg">\n <md-icon md-font-icon="icon-information-outline" aria-label="Save reminder"></md-icon>\n <span class="no-margin font-size-12 line-height-30" translate="VOICE.HELP.SAVE_ROUTES"></span>\n </div>\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm.selectedApplications.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">Drag & Drop Routing</span>\n <div flex></div>\n <ms-search-bar query="vm.query" debounce="300"></ms-search-bar>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm.selectedApplications.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm.selectedApplications.length}}\n {{vm.selectedApplications.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm.crudPermissions.canDelete" class="md-icon-button" ng-click="vm.deleteSelectedApplications($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedApplications">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </th>\n <th md-column width="10px"></th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body ng-sortable="vm.sortableRoutingOptions">\n <tr md-row md-select="a" md-select-id="id" ng-repeat="a in vm.applications.rows | filter:vm.query.filter as results">\n <td md-cell>\n <md-icon md-font-icon="icon-drag-vertical" class="s16 handle"></md-icon>\n </td>\n <td md-cell ng-click="vm.editApplication($event, $index)">{{a.app.toLowerCase() ===\n \'agi\' ? \'Cally-Square\' : a.app | ucfirst}}<span ng-if="a.appType.toLowerCase() === \'custom\'">*</span></td>\n <td md-cell ng-click="vm.editApplication($event, $index)"><span class="text-truncate" style="width:200px">{{a.appdata}}</span></td>\n <td md-cell ng-click="vm.editInterval($event, $index)">{{a.IntervalId ? \'From List\' :\n a.interval}}</td>\n <td md-cell>\n <md-button ng-click="vm.editInterval($event, $index)" class="md-icon-button" aria-label="Interval">\n <md-icon md-font-icon="icon-timer"></md-icon>\n <md-tooltip>\n {{a.IntervalId ? \'From List\' : (a.interval === \'*,*,*,*\' ? \'Always\' : \'Custom\')}}\n </md-tooltip>\n </md-button>\n </td>\n <td md-cell ng-if="!vm.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editApplication($event, $index)" translate="VOICE.EDIT_APP">\n Edit App\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editInterval($event, $index)" translate="VOICE.EDIT_INTERVAL">\n Edit Interval\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteApplication(a, $index, $event)" translate="VOICE.DELETE_APP">\n Delete App\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-class="{ \'ng-cloak\': results.length > 0 }">\n <td md-cell colspan="6">\n <span class="text-boxed-light" translate="VOICE.NO_APPS_AVAILABLE">No applications\n available</span>\n </td>\n </tr>\n </tbody>\n <tfoot md-foot>\n <tr md-row>\n <td md-cell colspan="7">\n <span><em translate="VOICE.LEGEND.CUSTOM_APPLICATION">(*) - Custom application.</em></span>\n </td>\n </tr>\n </tfoot>\n </table>\n </md-table-container>\n </div>\n \x3c!-- /ROUTING --\x3e\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n \x3c!-- /ACTIONS TAB --\x3e\n </md-tabs>\n </div>\n \x3c!-- /CONTENT --\x3e\n</div>'),e.put("app/main/apps/voice/views/internalRoutes/internalRoutes.html",'<div id="internal-routes" class="page-layout simple left-sidenav inner-sidenav">\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="VOICE.INTERNALROUTES">InternalRoutes</span>\n </div>\n </div>\n <div layout="row">\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n </div>\n </div>\n <div ng-show="vm.selectedInternalRoutes.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n <div class="close-button-wrapper" ng-click="vm.selectedInternalRoutes = []">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="VOICE.BACK">Back</span>\n </md-button>\n </div>\n <div flex layout="row" layout-align="space-between center">\n <div>\n <span class="selected-internal-routes-count">\n <span>{{ vm.selectedInternalRoutes.length }}</span>\n <span translate="VOICE.SELECTED">selected</span>\n </span>\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="VOICE.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectedInternalRoutes = vm.internalRoutes.rows" translate="VOICE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.selectedInternalRoutes = []" translate="VOICE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedInternalRoutes" csv-label="true" filename="internal_routes.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedInternalRoutes($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n <div class="content" md-background-bg layout="row" layout-align="start start">\n <div class="main scrollable" ms-scroll>\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedInternalRoutes" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getInternalRoutes">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n <th md-column md-order-by="exten">{{ \'VOICE.PHONENUMBER\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'VOICE.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.internalRoutes.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="route" md-select-id="id" ng-repeat="route in vm.internalRoutes.rows">\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditInternalRoute($event, route)" md-cell class="id ">{{ route.id }}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditInternalRoute($event, route)" md-cell class="exten ">{{ route.exten }}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditInternalRoute($event, route)" md-cell class="description ">{{ route.description }}</td>\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editRoute(route)" translate="VOICE.EDIT_INTERNALROUTE">\n Edit InternalRoute\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteConfirm(route, $event)" translate="VOICE.DELETE_INTERNALROUTE">\n Delete InternalRoute\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{ \'VOICE.PAGE\' | translate }}:\', rowsPerPage: \'{{ \'VOICE.ROWSPERPAGE\' | translate }}:\', of: \'{{ \'VOICE.OF\' | translate }}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{ vm.internalRoutes.count }}" md-on-paginate="vm.getInternalRoutes" md-page-select>\n </md-table-pagination>\n </md-card>\n </div>\n </div>\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-internal-route-button" ng-click="vm.createOrEditInternalRoute($event)" aria-label="add internal route" translate translate-attr-aria-label="VOICE.ADD_INTERNALROUTE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n</div>'),e.put("app/main/apps/voice/views/musiconholds/create/dialog.html",'<md-dialog class="musiconhold-dialog" aria-label="New MusicOnHold">\n <form name="musiconholdForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="VOICE.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.musiconhold.name" ng-required="true" autofocus ng-disabled="!vm.newMusicOnHold">\n\n <div ng-messages="musiconholdForm[\'name\'].$error" ng-show="musiconholdForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.MODE">Mode</label>\n <md-select name="mode" ng-model="vm.musiconhold.mode" required ng-disabled="!vm.newMusicOnHold">\n\n <md-option ng-value="\'files\'"> {{ \'VOICE.FILES\' | translate }} </md-option>\n\n <md-option ng-value="\'custom\'"> {{ \'VOICE.CUSTOM\' | translate }} </md-option>\n </md-select>\n <div ng-messages="musiconholdForm[\'mode\'].$error" ng-show="musiconholdForm[\'mode\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MODE_REQUIRED">Mode field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.musiconhold.mode == \'custom\'" class="md-block">\n <label translate="VOICE.DIRECTORY">Directory</label>\n <input type="" name="directory" ng-model="vm.musiconhold.directory">\n\n <div ng-messages="musiconholdForm[\'directory\'].$error" ng-show="musiconholdForm[\'directory\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DIRECTORY_REQUIRED">Directory field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.musiconhold.mode == \'custom\'" class="md-block">\n <label translate="VOICE.APPLICATION">Application</label>\n <input type="text" name="application" ng-model="vm.musiconhold.application" ng-required="true">\n\n <div ng-messages="musiconholdForm[\'application\'].$error" ng-show="musiconholdForm[\'application\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.APPLICATION_REQUIRED">Application field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.musiconhold.mode == \'files\'" class="md-block">\n <label translate="VOICE.SORT">Sort</label>\n <md-select name="sort" ng-model="vm.musiconhold.sort">\n\n <md-option ng-value="\'random\'"> {{ \'VOICE.RANDOM\' | translate }} </md-option>\n\n <md-option ng-value="\'alpha\'"> {{ \'VOICE.ALPHABETICAL\' | translate }} </md-option>\n </md-select>\n <div ng-messages="musiconholdForm[\'sort\'].$error" ng-show="musiconholdForm[\'sort\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.SORT_REQUIRED">Sort field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newMusicOnHold" ng-click="vm.saveMusicOnHold()" class="send-button md-accent md-raised" ng-disabled="musiconholdForm.$invalid || musiconholdForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newMusicOnHold" ng-click="vm.addNewMusicOnHold()" class="send-button md-accent md-raised" ng-disabled="musiconholdForm.$invalid" aria-label="ADD" translate="VOICE.ADD_MUSICONHOLD" translate-attr-aria-label="VOICE.ADD_MUSICONHOLD">\n ADD MUSICONHOLD\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newMusicOnHold" ng-click="vm.deleteMusicOnHold($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/musiconholds/edit/mohSounds/dialog.html",'<md-dialog class="mohSound-dialog" aria-label="New MohSound">\n <form name="mohSoundForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="VOICE.FILE">File</label>\n <md-select name="id" ng-model="vm.mohSound.id" autofocus>\n <md-option ng-value="id.id" ng-repeat="id in vm.sounds" ng-disabled="id.canSelect === false">{{ id.name }}</md-option>\n </md-select>\n <div ng-messages="mohSoundForm[\'id\'].$error" ng-show="mohSoundForm[\'id\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.FILE_REQUIRED">File field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newMohSound" ng-click="vm.saveMohSound()" class="send-button md-accent md-raised" ng-disabled="mohSoundForm.$invalid || mohSoundForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newMohSound" ng-click="vm.addNewMohSound()" class="send-button md-accent md-raised" ng-disabled="mohSoundForm.$invalid" aria-label="ADD" translate="VOICE.ADD_MOHSOUND" translate-attr-aria-label="VOICE.ADD_MOHSOUND">\n ADD MOHSOUND\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newMohSound" ng-click="vm.deleteMohSound($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/musiconholds/edit/view.html",'<div id="voice-musiconhold" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-musiconholds-button md-icon-button" aria-label="Go to musiconholds" ng-click="vm.gotoMusicOnHolds()" translate translate-attr-aria-label="VOICE.GO_TO_MUSICONHOLDS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="musiconhold-image" hide-xs>\n <img ng-src="assets/images/business/musiconholds.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.musiconhold.id}}\n <span ng-if="vm.musiconhold.name">{{vm.musiconhold.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="VOICE.CREATED_AT"></span> <span>{{vm.musiconhold.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveMusicOnHold()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (mohSoundsForm.$invalid)" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="musiconhold-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="VOICE.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="VOICE.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.musiconhold.name" ng-required="true" autofocus disabled>\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.MODE">Mode</label>\n <md-select name="mode" ng-model="vm.musiconhold.mode" required disabled>\n\n <md-option ng-value="\'files\'"> {{ \'VOICE.FILES\' | translate }} </md-option>\n\n <md-option ng-value="\'custom\'"> {{ \'VOICE.CUSTOM\' | translate }} </md-option>\n </md-select>\n <div ng-messages="generalForm[\'mode\'].$error" ng-show="generalForm[\'mode\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MODE_REQUIRED">Mode field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.musiconhold.mode == \'custom\'" class="md-block">\n <label translate="VOICE.DIRECTORY">Directory</label>\n <input type="" name="directory" ng-model="vm.musiconhold.directory" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'directory\'].$error" ng-show="generalForm[\'directory\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DIRECTORY_REQUIRED">Directory field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.musiconhold.mode == \'custom\'" class="md-block">\n <label translate="VOICE.APPLICATION">Application</label>\n <input type="text" name="application" ng-model="vm.musiconhold.application" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'application\'].$error" ng-show="generalForm[\'application\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.APPLICATION_REQUIRED">Application field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.musiconhold.mode == \'files\'" class="md-block">\n <label translate="VOICE.SORT">Sort</label>\n <md-select name="sort" ng-model="vm.musiconhold.sort" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'random\'"> {{ \'VOICE.RANDOM\' | translate }} </md-option>\n\n <md-option ng-value="\'alpha\'"> {{ \'VOICE.ALPHABETICAL\' | translate }} </md-option>\n </md-select>\n <div ng-messages="generalForm[\'sort\'].$error" ng-show="generalForm[\'sort\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.SORT_REQUIRED">Sort field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.AUDIOFILES">AUDIOFILES</span>\n </md-tab-label>\n <md-tab-body>\n <div class="musiconhold-detail-form-container mohsounds md-background-bg md-whiteframe-1dp">\n <div ng-controller="MusicOnHoldMohSoundsController as vm_dc" ng-init="vm_dc.init(vm.musiconhold, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedMusicOnHoldMohSounds.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.MOHSOUNDS">MohSounds</span>\n <ms-search-bar on-search="vm_dc.getMusicOnHoldMohSounds()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditMusicOnHoldMohSound($event)" aria-label="add mohSound" translate translate-attr-label="VOICE.ADD_MOHSOUND">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedMusicOnHoldMohSounds.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedMusicOnHoldMohSounds.length}} {{vm_dc.selectedMusicOnHoldMohSounds.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedMusicOnHoldMohSounds" csv-label="true" filename="musiconholds.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedMusicOnHoldMohSounds($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedMusicOnHoldMohSounds" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getMusicOnHoldMohSounds">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'VOICE.ID\' | translate }}\n </th>\n <th md-column md-order-by="audio">\n {{ \'VOICE.AUDIO\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'VOICE.CREATED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="mohSound" md-select-id="id" ng-repeat="mohSound in vm_dc.musiconholdMohSounds.rows">\n <td md-cell>\n {{mohSound.id}}\n </td>\n <td md-cell>\n \x3c!-- audio recording directive --\x3e\n <ms-recording id="mohSound.id" model="\'sound\'"></ms-recording>\n \x3c!-- / audio recording directive --\x3e\n </td>\n <td md-cell>\n {{ mohSound.createdAt | formatdate }}\n </td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(mohSound, $event)" translate="VOICE.DELETE_MOHSOUND">\n Delete MohSound\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.musiconholdMohSounds.rows.length">\n <td md-cell colspan="8">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="VOICE.NO_MOHSOUND_AVAILABLE">No mohsound available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.musiconholdMohSounds.count}}" md-on-paginate="vm_dc.getMusicOnHoldMohSounds" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/voice/views/musiconholds/musiconholds.html",'<div id="musiconholds" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="VOICE.MUSICONHOLDS">MusicOnHolds</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedMusicOnHolds.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedMusicOnHolds =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="VOICE.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-musiconholds-count">\n <span>{{vm.selectedMusicOnHolds.length}}</span>\n <span translate="VOICE.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="VOICE.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllMusicOnHolds()" translate="VOICE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectMusicOnHolds()" translate="VOICE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedMusicOnHolds" csv-label="true" filename="musiconholds.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedMusicOnHolds($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- MUSICONHOLD TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedMusicOnHolds" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getMusicOnHolds">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'VOICE.NAME\' | translate }}</th>\n <th md-column md-order-by="mode">{{ \'VOICE.MODE\' | translate }}</th>\n <th md-column md-order-by="sort">{{ \'VOICE.SORT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.musiconholds.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="musiconhold" md-select-id="id" ng-repeat="musiconhold in vm.musiconholds.rows">\n <td md-cell ng-if="musiconhold.userpic"><img class="avatar" alt="{{musiconhold.name}}" ng-src="api/users/{{musiconhold.id}}/avatar" /></td>\n <td md-cell ng-if="!musiconhold.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{musiconhold.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(musiconhold, ev) : vm.createOrEditMusicOnHold($event, musiconhold)" md-cell class="id ">{{musiconhold.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(musiconhold, ev) : vm.createOrEditMusicOnHold($event, musiconhold)" md-cell class="name ">{{musiconhold.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(musiconhold, ev) : vm.createOrEditMusicOnHold($event, musiconhold)" md-cell class="mode ">{{ \'VOICE.\' + vm.arraymode[musiconhold.mode].option | uppercase | translate }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(musiconhold, ev) : vm.createOrEditMusicOnHold($event, musiconhold)" md-cell class="sort ">{{ \'VOICE.\' + vm.arraysort[musiconhold.sort].option | uppercase | translate }}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(musiconhold, $event )" translate="VOICE.EDIT_MUSICONHOLD">\n Edit MusicOnHold\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(musiconhold, $event )" translate="VOICE.DELETE_MUSICONHOLD">\n Delete MusicOnHold\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.musiconholds.count}}" md-on-paginate="vm.getMusicOnHolds" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / MUSICONHOLD TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD MUSICONHOLD BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-musiconhold-button" ng-click="vm.createOrEditMusicOnHold($event)" aria-label="add musiconhold" translate translate-attr-aria-label="VOICE.ADD_MUSICONHOLD">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD MUSICONHOLD BUTTON --\x3e\n</div>'),e.put("app/main/apps/voice/views/outboundRoutes/create/dialog.html",'<md-dialog ng-init="vm.initialize()" class="outbound-route-dialog" aria-label="New OutboundRoute">\n <form name="outboundrouteForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.newOutboundRoute ? \'VOICE.NEW_OUTBOUNDROUTE\' : \'VOICE.EDIT_OUTBOUNDROUTE\' | translate\n }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span>({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="VOICE.PHONENUMBER">PhoneNumber</label>\n <input type="text" name="exten" ng-model="vm.outboundRoute.exten" ng-required="true" autofocus>\n <div ng-messages="outboundrouteForm[\'exten\'].$error" ng-show="outboundrouteForm[\'exten\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PHONENUMBER_REQUIRED">PhoneNumber field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.outboundRoute.context" required>\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts.rows" ng-disabled="context.canSelect === false">{{ context.name }}</md-option>\n </md-select>\n <div ng-messages="outboundrouteForm[\'context\'].$error" ng-show="outboundrouteForm[\'context\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.RECORDING">Recording</label>\n <md-select name="recordingFormat" ng-model="vm.outboundRoute.recordingFormat" required>\n <md-option ng-value="\'none\'">none</md-option>\n <md-option ng-value="\'wav\'">wav</md-option>\n <md-option ng-value="\'WAV\'">wav49</md-option>\n <md-option ng-value="\'gsm\'">gsm</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.RECORDING"></span></div>\n <div ng-messages="outboundrouteForm[\'recordingFormat\'].$error" ng-show="outboundrouteForm[\'recordingFormat\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.RECORDING_REQUIRED">Recording field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CUTDIGITS">CutDigits</label>\n <input type="number" name="cutdigits" ng-model="vm.outboundRoute.cutdigits" min="0">\n <div ng-messages="outboundrouteForm[\'cutdigits\'].$error" ng-show="outboundrouteForm[\'cutdigits\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CUTDIGITS_REQUIRED">CutDigits field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.CUTDIGITS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CutDigits must be a valid greater\n or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.outboundRoute.alias" ng-change="vm.getRouting()">\n <div ng-messages="outboundrouteForm[\'alias\'].$error" ng-show="outboundrouteForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ALIAS_REQUIRED">Alias field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.outboundRoute.description">\n <div ng-messages="outboundrouteForm[\'description\'].$error" ng-show="outboundrouteForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newOutboundRoute" ng-click="vm.saveOutboundRoute()" class="send-button md-accent md-raised" ng-disabled="outboundrouteForm.$invalid || outboundrouteForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newOutboundRoute" ng-click="vm.addNewOutboundRoute()" class="send-button md-accent md-raised" ng-disabled="outboundrouteForm.$invalid" aria-label="ADD" translate="VOICE.ADD_OUTBOUNDROUTE" translate-attr-aria-label="VOICE.ADD_OUTBOUNDROUTE">\n ADD OUTBOUNDROUTE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newOutboundRoute" ng-click="vm.deleteOutboundRoute($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/outboundRoutes/edit/view.html",'<div ng-init="vm.onInit()" id="voice-outbound-route" class="page-layout simple tabbed" layout="column">\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-outbound-routes-button md-icon-button" aria-label="Go to outbound routes" ng-click="vm.gotoOutboundRoutes()" translate translate-attr-aria-label="VOICE.GO_TO_OUTBOUNDROUTES">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n <div layout="row" layout-align="start center">\n <div class="outbound-route-image" hide-xs>\n <img ng-src="assets/images/business/outboundroutes.jpg">\n </div>\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.outboundRoute.id}}\n <span ng-if="vm.outboundRoute.exten">{{vm.outboundRoute.exten}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="VOICE.CREATED_AT"></span> <span>{{vm.outboundRoute.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveOutboundRoute()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (actionsForm.$invalid)" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n </div>\n </div>\n \x3c!-- /HEADER --\x3e\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n \x3c!-- SETTINGS TAB --\x3e\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="outbound-route-detail-form-container md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="VOICE.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="VOICE.PHONENUMBER">PhoneNumber</label>\n <input type="text" name="exten" ng-model="vm.outboundRoute.exten" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'exten\'].$error" ng-show="generalForm[\'exten\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PHONENUMBER_REQUIRED">PhoneNumber field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.outboundRoute.context" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts.rows" ng-disabled="context.canSelect === false">{{ context.name }}</md-option>\n </md-select>\n <div ng-messages="generalForm[\'context\'].$error" ng-show="generalForm[\'context\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.RECORDING">Recording</label>\n <md-select name="recordingFormat" ng-model="vm.outboundRoute.recordingFormat" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'none\'">none</md-option>\n <md-option ng-value="\'wav\'">wav</md-option>\n <md-option ng-value="\'WAV\'">wav49</md-option>\n <md-option ng-value="\'gsm\'">gsm</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.RECORDING"></span></div>\n <div ng-messages="generalForm[\'recordingFormat\'].$error" ng-show="generalForm[\'recordingFormat\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.RECORDING_REQUIRED">Recording field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CUTDIGITS">CutDigits</label>\n <input type="number" name="cutdigits" ng-model="vm.outboundRoute.cutdigits" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'cutdigits\'].$error" ng-show="generalForm[\'cutdigits\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CUTDIGITS_REQUIRED">CutDigits field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.CUTDIGITS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CutDigits must be a valid\n greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.outboundRoute.alias" ng-change="vm.onActionsTabSelection()" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'alias\'].$error" ng-show="generalForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ALIAS_REQUIRED">Alias field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.outboundRoute.description" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n \x3c!-- /SETTINGS TAB --\x3e\n \x3c!-- ACTIONS TAB --\x3e\n <md-tab md-on-select="vm.onActionsTabSelection()">\n <md-tab-label>\n <span translate="VOICE.ACTIONS">ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="outbound-route-detail-form-container no-padding no-margin">\n <div class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- APPLICATIONS LIST --\x3e\n <div class="navigation-simple sidenav main-sidenav md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="20" ng-if="vm.crudPermissions.canEdit">\n <md-list class="no-padding">\n <md-subheader class="md-no-sticky">\n <span translate="VOICE.APPLICATIONS_LIST">\n Applications List\n </span>\n </md-subheader>\n </md-list>\n <md-divider class="no-margin"></md-divider>\n <md-list ng-sortable="vm.sortableAppsOptions">\n <md-list-item class="handle" ng-repeat="a in vm.apps">\n <div layout="row">\n <md-icon md-font-icon="icon-apps" class="s16 mr-15"></md-icon>\n <p class="text-truncate" translate="VOICE.{{(a.appAlias || a.appType) | uppercase}}">{{a.appAlias ||\n a.appType}}</p>\n </div>\n </md-list-item>\n </md-list>\n </div>\n \x3c!-- /APPLICATIONS LIST --\x3e\n <div flex></div>\n \x3c!-- ROUTING --\x3e\n <div class="main scrollable md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="{{vm.crudPermissions.canEdit ? 75 : 100}}">\n <div ng-if="vm.pendingChanges" class="p-10 md-amber-300-bg">\n <md-icon md-font-icon="icon-information-outline" aria-label="Save reminder"></md-icon>\n <span class="no-margin font-size-12 line-height-30" translate="VOICE.HELP.SAVE_ROUTES"></span>\n </div>\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm.selectedApplications.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">Drag & Drop Routing</span>\n <div flex></div>\n <ms-search-bar query="vm.query" debounce="300"></ms-search-bar>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm.selectedApplications.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm.selectedApplications.length}}\n {{vm.selectedApplications.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm.crudPermissions.canDelete" class="md-icon-button" ng-click="vm.deleteSelectedApplications($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedApplications">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </th>\n <th md-column width="10px"></th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body ng-sortable="vm.sortableRoutingOptions">\n <tr md-row md-select="a" md-select-id="id" ng-repeat="a in vm.applications.rows | filter:vm.query.filter as results">\n <td md-cell>\n <md-icon md-font-icon="icon-drag-vertical" class="s16 handle"></md-icon>\n </td>\n <td md-cell ng-click="vm.editApplication($event, $index)">{{a.app.toLowerCase() ===\n \'agi\' ? \'Cally-Square\' : a.app | ucfirst}}<span ng-if="a.appType.toLowerCase() === \'custom\'">*</span></td>\n <td md-cell ng-click="vm.editApplication($event, $index)"><span class="text-truncate" style="width:200px">{{a.appdata}}</span></td>\n <td md-cell ng-click="vm.editInterval($event, $index)">{{a.IntervalId ? \'From List\' :\n a.interval}}</td>\n <td md-cell>\n <md-button ng-click="vm.editInterval($event, $index)" class="md-icon-button" aria-label="Interval">\n <md-icon md-font-icon="icon-timer"></md-icon>\n <md-tooltip>\n {{a.IntervalId ? \'From List\' : (a.interval === \'*,*,*,*\' ? \'Always\' : \'Custom\')}}\n </md-tooltip>\n </md-button>\n </td>\n <td md-cell ng-if="!vm.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editApplication($event, $index)" translate="VOICE.EDIT_APP">\n Edit App\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editInterval($event, $index)" translate="VOICE.EDIT_INTERVAL">\n Edit Interval\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteApplication(a, $index, $event)" translate="VOICE.DELETE_APP">\n Delete App\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-class="{ \'ng-cloak\': results.length > 0 }">\n <td md-cell colspan="6">\n <span class="text-boxed-light" translate="VOICE.NO_APPS_AVAILABLE">No applications\n available</span>\n </td>\n </tr>\n </tbody>\n <tfoot md-foot>\n <tr md-row>\n <td md-cell colspan="7">\n <span><em translate="VOICE.LEGEND.CUSTOM_APPLICATION">(*) - Custom application.</em></span>\n </td>\n </tr>\n </tfoot>\n </table>\n </md-table-container>\n </div>\n \x3c!-- /ROUTING --\x3e\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n \x3c!-- /ACTIONS TAB --\x3e\n </md-tabs>\n </div>\n \x3c!-- /CONTENT --\x3e\n</div>'),e.put("app/main/apps/voice/views/outboundRoutes/outboundRoutes.html",'<div id="outbound-routes" class="page-layout simple left-sidenav inner-sidenav">\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="VOICE.OUTBOUNDROUTES">OutboundRoutes</span>\n </div>\n </div>\n <div layout="row">\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n </div>\n </div>\n <div ng-show="vm.selectedOutboundRoutes.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n <div class="close-button-wrapper" ng-click="vm.selectedOutboundRoutes = []">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="VOICE.BACK">Back</span>\n </md-button>\n </div>\n <div flex layout="row" layout-align="space-between center">\n <div>\n <span class="selected-outbound-routes-count">\n <span>{{ vm.selectedOutboundRoutes.length }}</span>\n <span translate="VOICE.SELECTED">selected</span>\n </span>\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="VOICE.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectedOutboundRoutes = vm.outboundRoutes.rows" translate="VOICE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.selectedOutboundRoutes = []" translate="VOICE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedOutboundRoutes" csv-label="true" filename="outbound_routes.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedOutboundRoutes($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n <div class="content" md-background-bg layout="row" layout-align="start start">\n <div class="main scrollable" ms-scroll>\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedOutboundRoutes" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getOutboundRoutes">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n <th md-column md-order-by="exten">{{ \'VOICE.PHONENUMBER\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'VOICE.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.outboundRoutes.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="route" md-select-id="id" ng-repeat="route in vm.outboundRoutes.rows">\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditOutboundRoute($event, route)" md-cell class="id ">{{ route.id }}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditOutboundRoute($event, route)" md-cell class="exten ">{{ route.exten }}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditOutboundRoute($event, route)" md-cell class="description ">{{ route.description }}</td>\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editRoute(route)" translate="VOICE.EDIT_OUTBOUNDROUTE">\n Edit OutboundRoute\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteConfirm(route, $event)" translate="VOICE.DELETE_OUTBOUNDROUTE">\n Delete OutboundRoute\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{ \'VOICE.PAGE\' | translate }}:\', rowsPerPage: \'{{ \'VOICE.ROWSPERPAGE\' | translate }}:\', of: \'{{ \'VOICE.OF\' | translate }}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{ vm.outboundRoutes.count }}" md-on-paginate="vm.getOutboundRoutes" md-page-select>\n </md-table-pagination>\n </md-card>\n </div>\n </div>\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-outbound-route-button" ng-click="vm.createOrEditOutboundRoute($event)" aria-label="add outbound route" translate translate-attr-aria-label="VOICE.ADD_OUTBOUNDROUTE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n</div>'),e.put("app/main/apps/voice/views/realtime/abandonedcalls/view.html",'<md-toolbar class="md-table-toolbar md-default table-header">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.ABANDONEDQUEUECALLS">ABANDONED QUEUE CALLS</span>\n <ms-search-bar on-search="vm.getAbandonedCalls()" query="vm.query" on-collapse="vm.query.filter = undefined" debounce="300">\n </ms-search-bar>\n <div flex></div>\n\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getAbandonedCalls()"></ms-quick-filter>\n\n <md-button class="md-icon-button" ng-click="vm.refresh && vm.refreshAbandonedCalls($event)" aria-label="Reload" translate translate-attr-label="DASHBOARDS.RELOAD">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip ng-if="vm.showTooltip" md-visible="vm.showTooltip">{{\'DASHBOARDS.CLICKRELOAD\' | translate}}\n </md-tooltip>\n </md-button>\n </div>\n</md-toolbar>\n<md-table-container>\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getAbandonedCalls">\n <tr md-row>\n <th md-column md-order-by="id">ID</th>\n <th md-column md-order-by="calleridname">{{\'DASHBOARDS.FULLNAME\' | translate}}</th>\n <th md-column md-order-by="calleridnum">{{\'DASHBOARDS.PHONE\' | translate}}</th>\n <th md-column md-order-by="queue">{{\'DASHBOARDS.QUEUE\' | translate}}</th>\n <th md-column md-order-by="queuecallerabandonAt">{{\'DASHBOARDS.ABANDONAT\' | translate}}</th>\n <th md-column md-order-by="lastAssignedTo">{{\'DASHBOARDS.LASTASSIGNEDTO\' | translate}}</th>\n <th md-column md-order-by="disposition">{{\'DASHBOARDS.DISPOSITION\' | translate}}</th>\n <th md-column md-order-by="disposition">{{\'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}</th>\n <th md-column md-order-by="disposition">{{\'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.abandonedCalls.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="call in vm.abandonedCalls.rows">\n <td md-cell class="id">{{call.id}}</td>\n <td md-cell class="firstName" privacy ng-cloak>{{call.calleridname}}</td>\n <td md-cell class="list" privacy ng-cloak>{{call.calleridnum}}</td>\n <td md-cell class="list">{{vm.queuesMap[call.queue]}}</td>\n <td md-cell class="list">\n {{call.queuecallerabandonAt ? (call.queuecallerabandonAt | formatdate) : (call.queuecallerexitAt | formatdate) }}\n </td>\n <td md-cell class="list">{{call.lastAssignedTo}}</td>\n <td md-cell class="list">{{ call.disposition }}</td>\n <td md-cell class="list">{{ call.secondDisposition }}</td>\n <td md-cell class="list">{{ call.thirdDisposition }}</td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="2">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button ng-click="$mdMenu.open()" class="text-capitalize" translate="DASHBOARDS.ASSIGNTO">\n Assigned\n to</md-button>\n <md-menu-content>\n <md-menu-item ng-if="call.lastAssignedTo">\n <md-button ng-click="vm.assignTo(call)"><em translate="DASHBOARDS.NONE">Not Assigned</em>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.agents.rows.length" ng-repeat="agent in vm.agents.rows">\n <md-button ng-click="vm.assignTo(call,agent)">{{agent.name}}</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.dispose(call)" class="text-capitalize" translate="DASHBOARDS.DISPOSE">\n Dispose\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.abandonedCalls.count}}" md-on-paginate="vm.getAbandonedCalls" md-page-select></md-table-pagination>'),e.put("app/main/apps/voice/views/realtime/agents/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.AGENTS">Agents</span>\n <div flex></div>\n <ms-search-bar on-search="vm.onInit()" query="vm.query" on-collapse="vm.query.filter = undefined; vm.onInit()" debounce="300"></ms-search-bar>\n <md-select ng-model="vm.query.globalStatusFilter" class="md-caption" ng-change="vm.query.pauseTypeFilter = \'\'; vm.onInit()">\n <md-option ng-value="\'\'">{{ \'VOICE.ALL\' | translate }}</md-option>\n <md-option value="pause">{{ \'VOICE.PAUSE\' | translate }}</md-option>\n <md-option value="*pause">{{ \'VOICE.PARTIALPAUSE\' | translate }}</md-option>\n <md-option value="busy">{{ \'VOICE.BUSY\' | translate }}</md-option>\n <md-option value="idle">{{ \'VOICE.IDLE\' | translate }}</md-option>\n </md-select>\n <md-select ng-if="vm.isPause(vm.query.globalStatusFilter)" ng-model="vm.query.pauseTypeFilter" class="md-caption" ng-change="vm.onInit()">\n <md-option ng-value="\'\'">All</md-option>\n <md-option value="DEFAULT PAUSE">DEFAULT PAUSE</md-option>\n <md-option value="ACW">ACW</md-option>\n <md-option value="LOGININPAUSE">LOGININPAUSE</md-option>\n <md-option value="Auto-Pause">AUTOPAUSE</md-option>\n <md-option ng-value="pause.name" ng-repeat="pause in vm.pauses.rows">{{pause.name}}</md-option>\n </md-select>\n </div>\n</md-toolbar>\n\x3c!-- AGENT TABLE --\x3e\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.order" md-on-reorder="vm.onInit">\n <tr md-row border="1">\n <th class="bv text-center" colspan="5">{{ \'VOICE.AGENT\' | translate }}</th>\n <th class="bv bl text-center" colspan="2">{{ \'VOICE.VOICE\' | translate }}</th>\n <th ng-if="vm.license.chat" class="bv bl text-center" colspan="2">{{ \'CHAT.CHAT\' | translate }}</th>\n <th ng-if="vm.license.mail" class="bv bl text-center" colspan="2">{{ \'MAIL.MAIL\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="bv bl text-center" colspan="2">{{ \'SMS.SMS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="bv bl text-center" colspan="2">\n {{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="bv bl text-center" colspan="2">\n {{ \'WHATSAPP.WHATSAPP\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n </tr>\n <tr md-row>\n <th class="bl" colspan="2" md-column md-order-by="fullname">\n {{ \'VOICE.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">\n {{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">\n {{ \'VOICE.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">\n {{ \'VOICE.PAUSE_TIME\' | translate }}</th>\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\n <th ng-if="vm.license.chat" class="bl text-center">{{ \'CHAT.STATUS\' | translate }}</th>\n <th ng-if="vm.license.chat" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'CHAT.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.mail" class="bl text-center">{{ \'MAIL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.mail" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'MAIL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.messaging" class="bl text-center">{{ \'SMS.STATUS\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'SMS.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.openchannel" class="bl text-center">{{ \'OPENCHANNEL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'OPENCHANNEL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.fax" class="bl text-center">{{ \'FAX.STATUS\' | translate }}</th>\n <th ng-if="vm.license.fax" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'FAX.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.whatsapp" class="bl text-center">{{ \'WHATSAPP.STATUS\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'WHATSAPP.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.order.length">\n <td md-cell colspan="19">\n <div layout="row" layout-align="center center">\n <span>{{ \'VOICE.NO_AGENT_ONLINE\' | translate }}</span>\n </div>\n </td>\n </tr>\n <tr md-select="vm.agents[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td class="bt padding-5">\n <div layout="row" layout-align="start center">\n <img class="avatar" ng-src="{{vm.agents[value].userpic && \'api/users/\'+vm.agents[value].id+\'/avatar\' || \'assets/images/avatars/profile.png\'}}">\n <div layout="column">\n <span>{{vm.agents[value].fullname}}</span>\n <span>{{vm.agents[value].internal}}</span>\n </div>\n </div>\n </td>\n <td class="bt padding-5">\n <div layout="row" layout-align="start center" ng-if="vm.license.screenrecording && (vm.agents[value].phoneBarEnableScreenRecordingByAgent || vm.agents[value].phoneBarEnableAutomaticScreenRecording)">\n <div class="column" ng-if="vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: green; font-size: 36px;" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'VOICE.TOOLTIP_SCREENRECORDING_ON\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n <div class="column" ng-if="!vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: gray" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'VOICE.TOOLTIP_SCREENRECORDING_OFF\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n </div>\n </td>\n <td class="bt">\n'+" <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','busy':'indigo-100-bg','*pause':'amber-50-bg','pause':'amber-200-bg'}[vm.agents[value].globalStatus]\">{{\n vm.isPause(vm.agents[value].globalStatus) ? '' : vm.agents[value].globalStatus | uppercase }}\n {{ vm.isPause(vm.agents[value].globalStatus) ? (vm.isPartialPause(vm.agents[value].globalStatus) ?\n '*'+vm.agents[value].pauseType || 'DEFAULT PAUSE' : vm.agents[value].pauseType || 'DEFAULT PAUSE') :\n ''}}</span>\n </td>\n <td class=\"bt custom-column\">\n <timer start-time=\"vm.agents[value].lastLoginAt\"></timer>\n </td>\n <td class=\"bt custom-column\">\n <timer ng-if=\"vm.isPause(vm.agents[value].globalStatus) || vm.isPartialPause(vm.agents[value].globalStatus)\" start-time=\"vm.agents[value].lastPauseAt\"></timer>\n </td>\n <td class=\"bt bl\">\n <div layout=\"row\">\n <span ng-if=\"!vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','talking':'indigo-100-bg','ringing':'orange-400-bg','pause':'amber-200-bg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].voiceStatus | uppercase }}</span>\n <span ng-if=\"vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5 orange-400-bg\">ONHOLD</span>\n </div>\n </td>\n <td class=\"bt bl\">\n <div layout=\"column\">\n <span ng-if=\"vm.agents[value].queue\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].queue }}</span>\n <span ng-if=\"vm.agents[value].destconnectedlinenum\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\" privacy ng-cloak>{{\n vm.agents[value].destconnectedlinenum }}</span>\n <span ng-if=\"vm.agents[value].routealias\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].routealias }}</span>\n <span class=\"padding-5\" ng-if=\"vm.agents[value].queue || vm.agents[value].destconnectedlinenum\">\n <timer start-time=\"vm.agents[value].voiceStatusTime\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">\n </timer>\n </span>\n </div>\n </td>\n <td class=\"bt bl\" ng-if=\"vm.license.chat\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].chatStatus]\">{{\n vm.agents[value].chatStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td md-number class=\"bt text-center font-size-20\" ng-if=\"vm.license.chat\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].chatStatus]\">\n {{ vm.agents[value].chatCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.mail\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].mailStatus]\">{{\n vm.agents[value].mailStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.mail\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].mailStatus]\">\n {{ vm.agents[value].mailCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.messaging\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].smsStatus]\">{{\n vm.agents[value].smsStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.messaging\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].smsStatus]\">\n {{ vm.agents[value].smsCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.openchannel\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].openchannelStatus]\">{{\n vm.agents[value].openchannelStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.openchannel\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].openchannelStatus]\">\n {{ vm.agents[value].openchannelCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.fax\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].faxStatus]\">{{\n vm.agents[value].faxStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.fax\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].faxStatus]\">\n {{ vm.agents[value].faxCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.whatsapp\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].whatsappStatus]\">{{\n vm.agents[value].whatsappStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.whatsapp\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].whatsappStatus]\">\n {{ vm.agents[value].whatsappCurrentCapacity }}</td>\n <td class=\"bl bt padding-5 text-center\" ng-if=\"vm.crudPermissions.canEdit\">\n <md-menu>\n <md-button class=\"md-icon-button\" aria-label=\"More\" translate translate-attr-aria-label=\"STAFF.MORE\" ng-click=\"$mdOpenMenu($event)\">\n <md-icon md-font-icon=\"icon-dots-vertical\"></md-icon>\n </md-button>\n <md-menu-content width=\"4\">\n <md-menu-item>\n <md-button ng-click=\"vm.logout(vm.agents[value], $event)\" translate=\"VOICE.LOGOUT\">\n Logout\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click=\"vm.queueAdd(vm.agents[value], $event)\" translate=\"VOICE.AGENTADD_QUEUE\">\n Add Agent In Queue\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.license.screenrecording && vm.agents[value].phoneBarEnableScreenRecordingByAgent\">\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"VOICE.SCREENRECORDING\">Screen Recording\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if=\"!vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], true)\"><em translate=\"VOICE.START_SCREENRECORDING\">Start\n Screen Recording</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], false)\"><em translate=\"VOICE.STOP_SCREENRECORDING\">Stop\n Screen Recording</em></md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item>\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"VOICE.PAUSE\">Pause</md-button>\n <md-menu-content>\n <md-menu-item>\n <md-button ng-disabled=\" vm.agents[value].voicePause && 'DEFAULT PAUSE' === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value])\"><em translate=\"VOICE.DEFAULT_PAUSE\">Default\n Pause</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.pauses.rows.length\" ng-repeat=\"pause in vm.pauses.rows\">\n <md-button ng-disabled=\"vm.agents[value].voicePause && pause.name === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value], pause.name)\">{{pause.name}}\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.isPause(vm.agents[value].globalStatus)\">\n <md-button ng-click=\"vm.unPause(vm.agents[value])\" translate=\"VOICE.UNPAUSE\">\n Unpause\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label=\"{page: '{{'VOICE.PAGE' | translate}}:', rowsPerPage: '{{'VOICE.ROWSPERPAGE' | translate}}:', of: '{{'VOICE.OF' | translate}}'}\" md-limit=\"vm.query.limit\" md-limit-options=\"[10, 15, 20, 50, 100, 250]\" md-page=\"vm.query.page\" md-total=\"{{vm.filteredAgents.length}}\" md-on-paginate=\"vm.onInit\" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e"),e.put("app/main/apps/voice/views/realtime/outbound_calls/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.OUTBOUND_CALLS">Ooutbound Calls</span>\n </div>\n</md-toolbar>\n\n\x3c!-- OUTBOUNDS TABLE --\x3e\n<md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column width="30px"></th>\n <th md-column>{{ \'VOICE.SOURCE\' | translate }}</th>\n <th md-column>{{ \'VOICE.DESTINATION\' | translate }}</th>\n <th md-column>{{ \'VOICE.ALIAS\' | translate }}</th>\n <th md-column>{{ \'VOICE.DURATION\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.calls.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="call in vm.calls.rows | filter: vm.query.filter | limitTo: vm.query.limit: (vm.query.page - 1) * vm.query.limit">\n <td md-cell>\n <i ng-class="vm.channelStatus[call.channelstatedesc.toLowerCase()]"></i>\n </td>\n <td md-cell privacy ng-cloak>\n {{call.calleridname}}, {{call.calleridnum}}\n <span class="text-boxed" ng-if="call.answered">\n <timer ng-if="call.answertime" start-time="call.answertime"></timer>\n </span>\n </td>\n <td md-cell privacy ng-cloak>{{call.exten}}</td>\n <td md-cell>{{call.routealias}}</td>\n <td md-cell>\n <span class="text-boxed" ng-if="call.channelstatedesc.toLowerCase() !== \'hangup\'">\n <timer ng-if="call.starttime" start-time="call.starttime"></timer>\n </span>\n <span class="text-boxed" ng-if="call.channelstatedesc.toLowerCase() === \'hangup\'" translate="VOICE.CLOSING">Closing</span>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.calls.count}}"></md-table-pagination>\n\x3c!-- / OUTBOUNDS TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/voice/views/realtime/queue_calls/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.QUEUE_CALLS">Queue Calls</span>\n </div>\n</md-toolbar>\n\x3c!-- QUEUES TABLE --\x3e\n<md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column width="30px"></th>\n <th md-column>{{ \'VOICE.DID\' | translate }}</th>\n <th md-column>{{ \'VOICE.ALIAS\' | translate }}</th>\n <th md-column>{{ \'VOICE.QUEUE\' | translate }}</th>\n <th md-column>{{ \'VOICE.CALLER\' | translate }}</th>\n <th md-column>{{ \'VOICE.AGENT\' | translate }}</th>\n <th md-column>{{ \'VOICE.DURATION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.getSize(vm.rpcVoiceQueuesChannels)">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, channel) in vm.rpcVoiceQueuesChannels | limitObjectFromTo: vm.queryChannels.limit:(vm.queryChannels.page - 1) * vm.queryChannels.limit">\n <td md-cell>\n <md-icon ng-if="channel.queuecallerleaveAt" md-font-icon="icon-phone-in-talk green-fg"></md-icon>\n <md-icon ng-if="!channel.queuecallerleaveAt" md-font-icon="icon-phone-incoming md-accent"></md-icon>\n </td>\n <td md-cell>{{channel.exten}}</td>\n <td md-cell>{{channel.routealias}}</td>\n <td md-cell>{{channel.queue}}</td>\n <td md-cell privacy ng-cloak>{{channel.calleridnum}}</td>\n <td md-cell>\n <span ng-if="channel.queuecallerleaveAt">\n {{channel.connectedlinename}}, {{channel.connectedlinenum}}\n <span class="text-boxed">\n <timer start-time="channel.queuecallerleaveAt"></timer>\n </span>\n </span>\n <span ng-if="!channel.queuecallerleaveAt" class="text-boxed">\n {{ \'VOICE.WAITING_FOR_AGENT\' | translate }}\n <timer start-time="channel.queuecallerjoinAt"></timer>\n </span>\n </td>\n <td md-cell>\n <span class="text-boxed">\n <timer start-time="channel.queuecallerjoinAt"></timer>\n </span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="vm.hangup(channel.uniqueid)" translate="VOICE.HANGUP">\n Hangup\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.redirectToNumber($event, channel.uniqueid)" translate="VOICE.REDIRECT_TO_NUMBER">\n Number\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-menu class="no-margin">\n <md-button ng-mouseenter="vm.getAvailableAgents()" translate="VOICE.REDIRECT_TO_AGENT">\n Redirect to Agent</md-button>\n <md-menu-content>\n <md-menu-item ng-if="!vm.availableAgents">\n <md-progress-circular class="md-accent auto-margin" md-diameter="32" md-mode="indeterminate">\n </md-progress-circular>\n </md-menu-item>\n <md-menu-item ng-if="vm.availableAgents.length > 0" ng-repeat="agent in vm.availableAgents">\n <md-button ng-click="vm.redirectToAgent(channel.uniqueid, agent.name, agent.context)">\n {{agent.name}}</md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.availableAgents.length === 0">\n <span>No agents available</span>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n<md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.queryChannels.limit" md-page="vm.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm.getSize(vm.rpcVoiceQueuesChannels)}}" md-page-select></md-table-pagination>\n\x3c!-- / QUEUES TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/voice/views/realtime/queue_params/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.QUEUE_PARAMETERS">Params</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getQueues()" query="vm.query" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n\n\x3c!-- QUEUE TABLE --\x3e\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getQueues">\n <tr md-row>\n <th md-column>{{\'\n VOICE.NAME\' | translate}}</th>\n <th md-column>{{\'\n VOICE.TOTAL_OFFERED\' | translate}}</th>\n <th md-column>{{\'\n VOICE.ANSWERED\' | translate}}</th>\n <th md-column>{{\'\n VOICE.ABANDONED\' | translate}}</th>\n <th md-column>{{\'\n VOICE.UNMANAGED\' | translate}}</th>\n <th md-column>{{\'\n VOICE.AVG_HOLD_TIME\' | translate}}</th>\n <th md-column>{{\'\n VOICE.AVG_DURATION\' | translate}}</th>\n <th md-column>{{\'\n VOICE.AVG_BILLABLE\' | translate}}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.queues">\n <td md-cell colspan="8">\n <div layout="row" layout-align="center center">\n <span translate="MOTIONDIALER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(id, queue) in vm.queues">\n <td md-cell>\n <span>{{queue.name}}</span>\n </td>\n <td md-cell>\n \x3c!-- <span class="font-size-20 grey-fg">{{queue.total || 0}}</span> --\x3e\n <span class="font-size-20 grey-fg">{{ (queue.answered || 0) + (queue.abandoned || 0) + (queue.unmanaged || 0) }}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{queue.answered || 0}} ({{(queue.total) ? (queue.answered || 0) * 100/queue.total : 0 | number:1}}%)</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{queue.abandoned || 0}} ({{(queue.total) ? (queue.abandoned || 0) * 100/queue.total : 0 | number:1}}%)</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{queue.unmanaged || 0}}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{queue.total ? ((queue.sumHoldTime || 0) / queue.total) : 0 | number: 0 | secToTime | date:\'HH:mm:ss\'}}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{(queue.total ? ((queue.sumDuration || 0) / queue.total) : 0) | number: 0 | secToTime | date:\'HH:mm:ss\'}}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{queue.answered ? ((queue.sumBillable || 0) / queue.answered) : 0 | number: 0 | secToTime | date:\'HH:mm:ss\'}}</span>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>\n\x3c!-- / QUEUE TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/voice/views/realtime/queues/view.html",'<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.QUEUES">Queues</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getQueues">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'VOICE.NAME\' | translate }}</th>\n <th md-column>{{ \'VOICE.LOGGED_IN\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'VOICE.PAUSED\' | translate }}</th>\n <th md-column>{{ \'VOICE.TALKING\' | translate }}</th>\n <th md-column>{{ \'VOICE.BUSY\' | translate }}</th>\n <th md-column>{{ \'VOICE.WAITING\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.queues.count > 0">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="queue" md-select-id="id" ng-repeat="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedInDb }} ({{ queue.loggedIn }})</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.talking }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedInDb - queue.available - queue.paused - queue.talking - queue.waiting\n }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.editQueue($event, queue)" translate="VOICE.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.addAgent($event, queue)" translate="VOICE.AGENTSADD_QUEUE">\n Add Agents to queue\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),e.put("app/main/apps/voice/views/realtime/realtime.html",'<div id="realtime" class="page-layout simple tabbed" layout="column" ng-cloak>\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.AGENTS">Agents</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.TELEPHONES">Telephones</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.TRUNKS">Trunks</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.QUEUES">Queues</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.QUEUE_CALLS">Queue Calls</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.ABANDONEDCALLS">Abandoned Queue Calls</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.QUEUE_PARAMS">Queue Parameters</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.OUTBOUND_CALLS">Outbound Calls</span>\n </md-tab-label>\n </md-tab>\n </md-tabs>\n\n <md-card ui-view></md-card>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/voice/views/realtime/telephones/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.TELEPHONES">Telephones</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getTelephones()" query="vm.query" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n\n\x3c!-- AGENT TABLE --\x3e\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTelephones">\n <tr md-row>\n <th md-column md-order-by="fullname">{{ \'VOICE.ACCOUNTNAME\' | translate }}</th>\n <th md-column md-order-by="internal">{{ \'VOICE.INTERNAL\' | translate }}</th>\n <th md-column>{{ \'VOICE.PHONE_STATE\' | translate }}</th>\n <th md-column>{{ \'VOICE.PHONE_STATUS\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.telephones">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="telephone" md-select-id="id" ng-repeat="(id, telephone) in vm.telephones">\n <td md-cell>{{telephone.fullname}}</td>\n <td md-cell>{{telephone.internal}}</td>\n <td md-cell>\n <i ng-class="vm.stateClass[telephone.state]">\n <md-tooltip>{{\'VOICE.\' + telephone.state | uppercase | translate}}</md-tooltip>\n </i>\n </td>\n <td md-cell>\n <i ng-class="vm.statusClass[telephone.status]">\n <md-tooltip>{{\'VOICE.\' + telephone.status | uppercase | translate}}</md-tooltip>\n </i>\n <span ng-if="telephone.status === \'registered\'" class="text-boxed">{{telephone.address}}</span>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getTelephones" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/voice/views/realtime/trunks/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.TRUNKS">Telephones</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getTrunks()" query="vm.query" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n\n\x3c!-- TRUNKS TABLE --\x3e\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head>\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTrunks">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'VOICE.NAME\' | translate }}</th>\n <th md-column>{{ \'VOICE.TRUNK_STATUS\' | translate }}</th>\n <th md-column>{{ \'VOICE.REGISTRY\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.trunks">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(id, trunk) in vm.trunks">\n <td md-cell>{{trunk.name}}</td>\n <td md-cell>\n <i ng-class="vm.statusClass[trunk.status.toLowerCase()]">\n <md-tooltip>{{\'VOICE.\' + trunk.status | uppercase | translate}}</md-tooltip>\n </i>\n <span ng-if="trunk.status === \'registered\'" class="text-boxed">{{trunk.address}}</span>\n </td>\n <td md-cell>\n <i ng-if="trunk.registry" ng-class="(trunk.stateRegistry.toLowerCase() === \'registered\') ? \'green-300-fg icon-checkbox-marked-circle\' : \'red-300-fg icon-close-circle\'">\n <md-tooltip>{{\'VOICE.\' + trunk.stateRegistry | uppercase | translate}}</md-tooltip>\n </i>\n <span ng-if="trunk.registry && trunk.host && trunk.port" class="text-boxed">{{trunk.host}}:{{trunk.port}}</span>\n <span ng-if="!trunk.registry" translate="VOICE.NO_REGISTRY">\n No Registry\n </span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="4">\n <md-menu-item>\n <md-button ng-click="vm.goToTrunk($event, trunk)" translate="VOICE.EDIT_TRUNK">\n Edit Trunk\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getTrunks" md-page-select></md-table-pagination>\n\x3c!-- / TRUNKS TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/voice/views/voicemails/create/dialog.html",'<md-dialog class="voicemail-dialog" aria-label="New Voicemail">\n <form name="voicemailForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="VOICE.FULLNAME">FullName</label>\n <input type="text" name="fullname" ng-model="vm.voicemail.fullname" ng-required="true" autofocus>\n\n <div ng-messages="voicemailForm[\'fullname\'].$error" ng-show="voicemailForm[\'fullname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.FULLNAME_REQUIRED">FullName field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.voicemail.email" ng-required="vm.voicemail.attach === \'yes\'">\n\n <div ng-messages="voicemailForm[\'email\'].$error" ng-show="voicemailForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="email">\n <span translate="VOICE.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.voicemail.password" placeholder="Password" translate translate-attr-placeholder="VOICE.PASSWORD" required>\n <div ng-messages="voicemailForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="VOICE.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.newVoicemail ">\n <label translate="VOICE.CONFIRM_PASSWORD">Confirm Password</label>\n <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword" required>\n <div ng-messages="voicemailForm.confirmPassword.$error" role="alert" multiple>\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n </div>\n <div ng-message="passwordMatch">\n <span translate="VOICE.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="VOICE.MAILBOX">MailBox</label>\n <input type="text" name="mailbox" ng-model="vm.voicemail.mailbox" ng-required="true" ng-disabled="!vm.newVoicemail">\n\n <div ng-messages="voicemailForm[\'mailbox\'].$error" ng-show="voicemailForm[\'mailbox\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MAILBOX_REQUIRED">MailBox field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ATTACH">Attach</label>\n <md-select name="attach" ng-model="vm.voicemail.attach">\n\n <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }} </md-option>\n </md-select>\n <div ng-messages="voicemailForm[\'attach\'].$error" ng-show="voicemailForm[\'attach\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ATTACH_REQUIRED">Attach field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newVoicemail" ng-click="vm.saveVoicemail()" class="send-button md-accent md-raised" ng-disabled="voicemailForm.$invalid || voicemailForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newVoicemail" ng-click="vm.addNewVoicemail()" class="send-button md-accent md-raised" ng-disabled="voicemailForm.$invalid" aria-label="ADD" translate="VOICE.ADD_VOICEMAIL" translate-attr-aria-label="VOICE.ADD_VOICEMAIL">\n ADD VOICEMAIL\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newVoicemail" ng-click="vm.deleteVoicemail($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/voicemails/edit/view.html",'<div id="voice-voicemail" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-voicemails-button md-icon-button" aria-label="Go to voicemails" ng-click="vm.gotoVoicemails()" translate translate-attr-aria-label="VOICE.GO_TO_VOICEMAILS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="voicemail-image" hide-xs>\n <img ng-src="assets/images/business/voicemails.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.voicemail.id}}\n <span ng-if="vm.voicemail.name">{{vm.voicemail.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="VOICE.CREATED_AT"></span> <span>{{vm.voicemail.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveVoicemail()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (advancedForm.$invalid) || (messagesForm.$invalid)" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="voicemail-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="VOICE.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="VOICE.FULLNAME">FullName</label>\n <input type="text" name="fullname" ng-model="vm.voicemail.fullname" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'fullname\'].$error" ng-show="generalForm[\'fullname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.FULLNAME_REQUIRED">FullName field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.voicemail.email" ng-required="vm.voicemail.attach === \'yes\'" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'email\'].$error" ng-show="generalForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="email">\n <span translate="VOICE.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.voicemail.password" placeholder="Password" translate translate-attr-placeholder="VOICE.PASSWORD" required>\n <div ng-messages="generalForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="VOICE.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.newVoicemail ">\n <label translate="VOICE.CONFIRM_PASSWORD">Confirm Password</label>\n <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword" required>\n <div ng-messages="generalForm.confirmPassword.$error" role="alert" multiple>\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n </div>\n <div ng-message="passwordMatch">\n <span translate="VOICE.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="VOICE.MAILBOX">MailBox</label>\n <input type="text" name="mailbox" ng-model="vm.voicemail.mailbox" ng-required="true" disabled>\n\n <div ng-messages="generalForm[\'mailbox\'].$error" ng-show="generalForm[\'mailbox\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MAILBOX_REQUIRED">MailBox field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.VOICEMAIL_CONTEXT">Voicemail_Context</label>\n <md-select name="context" ng-model="vm.voicemail.context" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts" ng-disabled="context.canSelect === false">{{ context.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.VOICEMAIL_CONTEXT"></span></div>\n <div ng-messages="generalForm[\'context\'].$error" ng-show="generalForm[\'context\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.VOICEMAIL_CONTEXT_REQUIRED">Voicemail_Context field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <md-tab-body>\n <div class="voicemail-detail-form-container advanced md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="VOICE.ADVANCED">ADVANCED</div>\n </div>\n <form name="advancedForm" novalidate>\n <md-input-container class="md-block">\n <label translate="VOICE.TIMEZONE">TimeZone</label>\n <input type="text" name="tz" ng-model="vm.voicemail.tz" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="advancedForm[\'tz\'].$error" ng-show="advancedForm[\'tz\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.TIMEZONE_REQUIRED">TimeZone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ATTACH">Attach</label>\n <md-select name="attach" ng-model="vm.voicemail.attach" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }} </md-option>\n </md-select>\n <div ng-messages="advancedForm[\'attach\'].$error" ng-show="advancedForm[\'attach\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ATTACH_REQUIRED">Attach field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ENVELOPE">Envelope</label>\n <md-select name="envelope" ng-model="vm.voicemail.envelope" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }} </md-option>\n </md-select>\n <div ng-messages="advancedForm[\'envelope\'].$error" ng-show="advancedForm[\'envelope\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ENVELOPE_REQUIRED">Envelope field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.DELETE">Delete</label>\n <md-select name="delete" ng-model="vm.voicemail.delete" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }} </md-option>\n </md-select>\n <div ng-messages="advancedForm[\'delete\'].$error" ng-show="advancedForm[\'delete\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DELETE_REQUIRED">Delete field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.EMAILBODY">EmailBody</label>\n <input type="text" name="emailbody" ng-model="vm.voicemail.emailbody" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="advancedForm[\'emailbody\'].$error" ng-show="advancedForm[\'emailbody\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.EMAILBODY_REQUIRED">EmailBody field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.EMAILSUBJECT">EmailSubject</label>\n <input type="text" name="emailsubject" ng-model="vm.voicemail.emailsubject" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="advancedForm[\'emailsubject\'].$error" ng-show="advancedForm[\'emailsubject\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.EMAILSUBJECT_REQUIRED">EmailSubject field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.MAXSECONDS">MaxSeconds</label>\n <input type="number" name="maxsecs" ng-model="vm.voicemail.maxsecs" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="advancedForm[\'maxsecs\'].$error" ng-show="advancedForm[\'maxsecs\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MAXSECONDS_REQUIRED">MaxSeconds field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.MAXSECONDS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MaxSeconds must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.MAXMESSAGES">MaxMessages</label>\n <input type="number" name="maxmsg" ng-model="vm.voicemail.maxmsg" min="0" max="9999" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="advancedForm[\'maxmsg\'].$error" ng-show="advancedForm[\'maxmsg\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MAXMESSAGES_REQUIRED">MaxMessages field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.MAXMESSAGES_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MaxMessages must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="VOICE.ERRORS.MAXMESSAGES_MUST_BE_LESS_THAN_OR_EQUAL_TO">MaxMessages must be a valid greater or equal than</span> <span>9999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.MESSAGES">MESSAGES</span>\n </md-tab-label>\n <md-tab-body>\n <div class="voicemail-detail-form-container messages md-background-bg md-whiteframe-1dp">\n <div ng-controller="VoicemailMessagesController as vm_dc" ng-init="vm_dc.init(vm.voicemail, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedVoicemailMessages.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.MESSAGES">Messages</span>\n <ms-search-bar on-search="vm_dc.getVoicemailMessages()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedVoicemailMessages.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedVoicemailMessages.length}} {{vm_dc.selectedVoicemailMessages.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedVoicemailMessages" csv-label="true" filename="voicemails.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedVoicemailMessages($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedVoicemailMessages" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getVoicemailMessages">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'VOICE.ID\' | translate }}\n </th>\n <th md-column md-order-by="callerid">\n {{ \'VOICE.CALLER_ID\' | translate }}\n </th>\n <th md-column md-order-by="duration">\n {{ \'VOICE.DURATION\' | translate }}\n </th>\n <th md-column md-order-by="audio">\n {{ \'VOICE.AUDIO\' | translate }}\n </th>\n <th md-column md-order-by="stamp">\n {{ \'VOICE.RECEIVED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="message" md-select-id="id" ng-repeat="message in vm_dc.voicemailMessages.rows">\n <td md-cell>\n {{message.id}}\n </td>\n <td md-cell>\n {{message.callerid}}\n </td>\n <td md-cell>\n {{message.duration}}\n </td>\n <td md-cell>\n \x3c!-- audio recording directive --\x3e\n <ms-recording id="message.id" model="\'voiceMailMessage\'"></ms-recording>\n \x3c!-- / audio recording directive --\x3e\n </td>\n <td md-cell>\n {{ message.stamp | formatdate }}\n </td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(message, $event)" translate="VOICE.DELETE_MESSAGE">\n Delete Message\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.voicemailMessages.rows.length">\n <td md-cell colspan="8">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="VOICE.NO_MESSAGE_AVAILABLE">No message available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.voicemailMessages.count}}" md-on-paginate="vm_dc.getVoicemailMessages" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/voice/views/voicemails/voicemails.html",'<div id="voicemails" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="VOICE.VOICEMAILS">Voicemails</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedVoicemails.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedVoicemails =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="VOICE.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-voicemails-count">\n <span>{{vm.selectedVoicemails.length}}</span>\n <span translate="VOICE.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="VOICE.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllVoicemails()" translate="VOICE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectVoicemails()" translate="VOICE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedVoicemails" csv-label="true" filename="voicemails.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedVoicemails($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- VOICEMAIL TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedVoicemails" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getVoicemails">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n <th md-column md-order-by="fullname">{{ \'VOICE.FULLNAME\' | translate }}</th>\n <th md-column md-order-by="email">{{ \'VOICE.EMAIL\' | translate }}</th>\n <th md-column md-order-by="mailbox">{{ \'VOICE.MAILBOX\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.voicemails.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="voicemail" md-select-id="id" ng-repeat="voicemail in vm.voicemails.rows">\n <td md-cell ng-if="voicemail.userpic"><img class="avatar" alt="{{voicemail.name}}" ng-src="api/users/{{voicemail.id}}/avatar" /></td>\n <td md-cell ng-if="!voicemail.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{voicemail.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voicemail, ev) : vm.createOrEditVoicemail($event, voicemail)" md-cell class="id ">{{voicemail.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voicemail, ev) : vm.createOrEditVoicemail($event, voicemail)" md-cell class="fullname ">{{voicemail.fullname}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voicemail, ev) : vm.createOrEditVoicemail($event, voicemail)" md-cell class="email ">{{voicemail.email}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voicemail, ev) : vm.createOrEditVoicemail($event, voicemail)" md-cell class="mailbox ">{{voicemail.mailbox}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(voicemail, $event )" translate="VOICE.EDIT_VOICEMAIL">\n Edit Voicemail\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(voicemail, $event )" translate="VOICE.DELETE_VOICEMAIL">\n Delete Voicemail\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.voicemails.count}}" md-on-paginate="vm.getVoicemails" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / VOICEMAIL TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD VOICEMAIL BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-voicemail-button" ng-click="vm.createOrEditVoicemail($event)" aria-label="add voicemail" translate translate-attr-aria-label="VOICE.ADD_VOICEMAIL">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD VOICEMAIL BUTTON --\x3e\n</div>'),e.put("app/main/apps/voice/views/voicePrefixes/create/dialog.html",'<md-dialog class="voicePrefix-dialog" aria-label="New voicePrefix">\n <form name="voicePrefixForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="VOICE.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.voicePrefix.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus>\n\n <div class="hint"><span translate="VOICE.HELP.NAME"></span></div>\n <div ng-messages="voicePrefixForm[\'name\'].$error" ng-show="voicePrefixForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="VOICE.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.OUTBOUNDROUTE">OutboundRoute</label>\n <md-select name="VoiceExtensionId" ng-model="vm.voicePrefix.VoiceExtensionId" required>\n <md-option ng-value="VoiceExtensionId.id" ng-repeat="VoiceExtensionId in vm.outboundRoutes" ng-disabled="VoiceExtensionId.canSelect === false">{{ VoiceExtensionId.exten }}</md-option>\n </md-select>\n <div ng-messages="voicePrefixForm[\'VoiceExtensionId\'].$error" ng-show="voicePrefixForm[\'VoiceExtensionId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.OUTBOUNDROUTE_REQUIRED">OutboundRoute field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CALLERIDALL">CallerIdAll</label>\n <input type="text" name="callerIdAll" ng-model="vm.voicePrefix.callerIdAll" ng-pattern="/"(.*)"\\s<(.*?)>$/">\n\n <div class="hint"><span translate="VOICE.HELP.CALLERIDALL"></span></div>\n <div ng-messages="voicePrefixForm[\'callerIdAll\'].$error" ng-show="voicePrefixForm[\'callerIdAll\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CALLERIDALL_REQUIRED">CallerIdAll field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="VOICE.ERRORS.CALLERIDALL_MUST_VALID_PATTERN" translate-values="{ regex: \'/"(.*)"\\s<(.*?)>$/\' }">CallerIdAll must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.voicePrefix.description">\n\n <div ng-messages="voicePrefixForm[\'description\'].$error" ng-show="voicePrefixForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newvoicePrefix" ng-click="vm.savevoicePrefix()" class="send-button md-accent md-raised" ng-disabled="voicePrefixForm.$invalid || voicePrefixForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newvoicePrefix" ng-click="vm.addNewvoicePrefix()" class="send-button md-accent md-raised" ng-disabled="voicePrefixForm.$invalid" aria-label="ADD" translate="VOICE.ADD_VOICEPREFIX" translate-attr-aria-label="VOICE.ADD_VOICEPREFIX">\n ADD VOICEPREFIX\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newvoicePrefix" ng-click="vm.deletevoicePrefix($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/voicePrefixes/edit/agentadd/agentadd.html",'<md-dialog class="voicePrefix-dialog" aria-label="voicePrefix" ng-init="vm.onInit()">\n <form name="voicePrefixForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="VOICE.AGENTADD_VOICEPREFIX">Add Agent to voicePrefix</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/voicePrefixes/voicePrefixes.html",'<div id="voicePrefixes" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="VOICE.VOICEPREFIXES">VoicePrefixes</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedVoicePrefixes.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedVoicePrefixes =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="VOICE.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-voicePrefixes-count">\n <span>{{vm.selectedVoicePrefixes.length}}</span>\n <span translate="VOICE.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="VOICE.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllVoicePrefixes()" translate="VOICE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectVoicePrefixes()" translate="VOICE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedVoicePrefixes" csv-label="true" filename="voicePrefixes.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedVoicePrefixes($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- VOICEPREFIX TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedVoicePrefixes" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getVoicePrefixes">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'VOICE.NAME\' | translate }}</th>\n <th md-column md-order-by="VoiceExtensionId">{{ \'VOICE.OUTBOUNDROUTE\' | translate }}</th>\n <th md-column md-order-by="callerIdAll">{{ \'VOICE.CALLERIDALL\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'VOICE.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.voicePrefixes.rows.length">\n <td md-cell colspan="6">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="voicePrefix" md-select-id="id" ng-repeat="voicePrefix in vm.voicePrefixes.rows">\n <td md-cell ng-if="voicePrefix.userpic"><img class="avatar" alt="{{voicePrefix.name}}" ng-src="api/users/{{voicePrefix.id}}/avatar" /></td>\n <td md-cell ng-if="!voicePrefix.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{voicePrefix.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditvoicePrefix($event, voicePrefix)" md-cell class="id ">{{voicePrefix.id}}</td>\n <td ng-click="vm.createOrEditvoicePrefix($event, voicePrefix)" md-cell class="name ">{{voicePrefix.name}}</td>\n <td ng-click="vm.createOrEditvoicePrefix($event, voicePrefix)" md-cell class="VoiceExtensionId ">{{ (vm.outboundRoutes | filter : {\'id\':voicePrefix.VoiceExtensionId} : true)[0].exten }}</td>\n <td ng-click="vm.createOrEditvoicePrefix($event, voicePrefix)" md-cell class="callerIdAll ">{{voicePrefix.callerIdAll}}</td>\n <td ng-click="vm.createOrEditvoicePrefix($event, voicePrefix)" md-cell class="description ">{{voicePrefix.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(voicePrefix, $event )" translate="VOICE.EDIT_VOICEPREFIX">\n Edit voicePrefix\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(voicePrefix, $event )" translate="VOICE.AGENTADD_VOICEPREFIX">\n AgentAdd voicePrefix\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(voicePrefix, $event )" translate="VOICE.DELETE_VOICEPREFIX">\n Delete voicePrefix\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.voicePrefixes.count}}" md-on-paginate="vm.getVoicePrefixes" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / VOICEPREFIX TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD VOICEPREFIX BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-voicePrefix-button" ng-click="vm.createOrEditvoicePrefix($event)" aria-label="add voicePrefix" translate translate-attr-aria-label="VOICE.ADD_VOICEPREFIX">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD VOICEPREFIX BUTTON --\x3e\n</div>'),e.put("app/main/apps/voice/views/voiceQueues/create/dialog.html",'<md-dialog class="voiceQueue-dialog" aria-label="New VoiceQueue">\n <form name="voiceQueueForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="VOICE.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.voiceQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newVoiceQueue">\n\n <div class="hint"><span translate="VOICE.HELP.NAME"></span></div>\n <div ng-messages="voiceQueueForm[\'name\'].$error" ng-show="voiceQueueForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="VOICE.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.voiceQueue.strategy" required>\n <md-option ng-value="\'ringall\'">Ringall</md-option>\n <md-option ng-value="\'rrmemory\'">Round Robin Memory</md-option>\n <md-option ng-value="\'leastrecent\'">Least Recent</md-option>\n <md-option ng-value="\'fewestcalls\'">Fewest Calls</md-option>\n <md-option ng-value="\'random\'">Random</md-option>\n <md-option ng-value="\'linear\'">Linear</md-option>\n <md-option ng-value="\'wrandom\'">Weight Random</md-option>\n </md-select>\n <div ng-messages="voiceQueueForm[\'strategy\'].$error" ng-show="voiceQueueForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.voiceQueue.description">\n\n <div ng-messages="voiceQueueForm[\'description\'].$error" ng-show="voiceQueueForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newVoiceQueue" ng-click="vm.saveVoiceQueue()" class="send-button md-accent md-raised" ng-disabled="voiceQueueForm.$invalid || voiceQueueForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newVoiceQueue" ng-click="vm.addNewVoiceQueue()" class="send-button md-accent md-raised" ng-disabled="voiceQueueForm.$invalid" aria-label="ADD" translate="VOICE.ADD_VOICEQUEUE" translate-attr-aria-label="VOICE.ADD_VOICEQUEUE">\n ADD VOICEQUEUE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newVoiceQueue" ng-click="vm.deleteVoiceQueue($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/voiceQueues/edit/agentadd/agentadd.html",'<md-dialog class="voiceQueue-dialog" aria-label="voiceQueue" ng-init="vm.onInit()">\n <form name="voiceQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="VOICE.AGENTADD_VOICEQUEUE">Add Agent to voiceQueue</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <md-input-container flex class="no-margin">\n <label translate="VOICE.PENALTY">Penalty</label>\n <input name="penalty" type="number" ng-model="vm.penalty" min="0" placeholder="0" required onkeypress="return event.charCode >= 48 && event.charCode <= 57 && this.value.length < 3">\n <div ng-messages="voiceQueueForm.penalty.$error" role="alert" multiple>\n <div ng-message="required">\n <span>{{ \'VOICE.ERRORS.PENALTY_REQUIRED\' | translate }}</span>\n </div>\n </div>\n </md-input-container>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit" add-disabled="vm.penalty === undefined"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/voiceQueues/edit/teamadd/teamadd.html",'<md-dialog class="voiceQueue-dialog" aria-label="voiceQueue" ng-init="vm.onInit()">\n <form name="voiceQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="VOICE.TEAMS_ASSOCIATION">Teams Association</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <md-input-container flex class="no-margin">\n <label translate="VOICE.PENALTY">Penalty</label>\n <input name="penalty" type="number" ng-model="vm.penalty" min="0" placeholder="0" required onkeypress="return event.charCode >= 48 && event.charCode <= 57 && this.value.length < 3">\n <div ng-messages="voiceQueueForm.penalty.$error" role="alert" multiple>\n <div ng-message="required">\n <span>{{ \'VOICE.ERRORS.PENALTY_REQUIRED\' | translate }}</span>\n </div>\n </div>\n </md-input-container>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit" add-disabled="vm.penalty === undefined"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/voiceQueues/edit/view.html",'<div id="voice-voiceQueue" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-voiceQueues-button md-icon-button" aria-label="Go to voiceQueues" ng-click="vm.gotoVoiceQueues()" translate translate-attr-aria-label="VOICE.GO_TO_VOICEQUEUES">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="voiceQueue-image" hide-xs>\n <img ng-src="assets/images/business/voiceQueues.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.voiceQueue.id}}\n <span ng-if="vm.voiceQueue.name">{{vm.voiceQueue.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="VOICE.CREATED_AT"></span> <span>{{vm.voiceQueue.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.teamadddialog(vm.voiceQueue, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n <md-tooltip><span translate="VOICE.TEAMADD_VOICEQUEUE"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.voiceQueue, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="VOICE.AGENTADD_VOICEQUEUE"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-plus"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.gotogoto(vm.voiceQueue, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n <md-tooltip><span translate="VOICE.GOTO_VOICEQUEUE"></span></md-tooltip>\n <md-icon md-font-icon="icon-cast"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveVoiceQueue()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (settingsForm.$invalid) || (announcementsForm.$invalid) || (advancedForm.$invalid)" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="voiceQueue-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="VOICE.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="VOICE.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.voiceQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="VOICE.HELP.NAME"></span></div>\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="VOICE.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.voiceQueue.strategy" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'ringall\'">Ringall</md-option>\n <md-option ng-value="\'rrmemory\'">Round Robin Memory</md-option>\n <md-option ng-value="\'leastrecent\'">Least Recent</md-option>\n <md-option ng-value="\'fewestcalls\'">Fewest Calls</md-option>\n <md-option ng-value="\'random\'">Random</md-option>\n <md-option ng-value="\'linear\'">Linear</md-option>\n <md-option ng-value="\'wrandom\'">Weight Random</md-option>\n </md-select>\n <div ng-messages="generalForm[\'strategy\'].$error" ng-show="generalForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.voiceQueue.timeout" min="0" value="15" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="VOICE.HELP.TIMEOUT"></span></div>\n <div ng-messages="generalForm[\'timeout\'].$error" ng-show="generalForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.MAXLENGTH">MaxLength</label>\n <input type="number" name="maxlen" ng-model="vm.voiceQueue.maxlen" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="VOICE.HELP.MAXLENGTH"></span></div>\n <div ng-messages="generalForm[\'maxlen\'].$error" ng-show="generalForm[\'maxlen\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MAXLENGTH_REQUIRED">MaxLength field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.MAXLENGTH_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MaxLength must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.RETRY">Retry</label>\n <input type="number" name="retry" ng-model="vm.voiceQueue.retry" min="0" value="2" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="VOICE.HELP.RETRY"></span></div>\n <div ng-messages="generalForm[\'retry\'].$error" ng-show="generalForm[\'retry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.RETRY_REQUIRED">Retry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.RETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Retry must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.WRAPUPTIME">WrapupTime</label>\n <input type="number" name="wrapuptime" ng-model="vm.voiceQueue.wrapuptime" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="VOICE.HELP.WRAPUPTIME"></span></div>\n <div ng-messages="generalForm[\'wrapuptime\'].$error" ng-show="generalForm[\'wrapuptime\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.WRAPUPTIME_REQUIRED">WrapupTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.WRAPUPTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WrapupTime must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.WEIGHT">Weight</label>\n <input type="number" name="weight" ng-model="vm.voiceQueue.weight" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="VOICE.HELP.WEIGHT"></span></div>\n <div ng-messages="generalForm[\'weight\'].$error" ng-show="generalForm[\'weight\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.WEIGHT_REQUIRED">Weight field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.WEIGHT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Weight must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.JOINWHENEMPTY">JoinWhenEmpty</label>\n <md-select name="joinempty" ng-model="vm.voiceQueue.joinempty" multiple ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'no\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'no\'">no</md-option>\n <md-option ng-value="\'yes\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'yes\'">yes</md-option>\n <md-option ng-value="\'strict\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'strict\'">strict</md-option>\n <md-option ng-value="\'loose\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'loose\'">loose</md-option>\n <md-option ng-value="\'paused\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'paused\'">paused</md-option>\n <md-option ng-value="\'penalty\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'penalty\'">penalty</md-option>\n <md-option ng-value="\'inuse\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'inuse\'">inuse</md-option>\n <md-option ng-value="\'ringing\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'ringing\'">ringing</md-option>\n <md-option ng-value="\'unavailable\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'unavailable\'">unavailable</md-option>\n <md-option ng-value="\'invalid\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'invalid\'">invalid</md-option>\n <md-option ng-value="\'unknown\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'unknown\'">unknown</md-option>\n <md-option ng-value="\'wrapup\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'wrapup\'">wrapup</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.JOINWHENEMPTY"></span></div>\n <div ng-messages="generalForm[\'joinempty\'].$error" ng-show="generalForm[\'joinempty\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.JOINWHENEMPTY_REQUIRED">JoinWhenEmpty field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.LEAVEWHENEMPTY">LeaveWhenEmpty</label>\n <md-select name="leavewhenempty" ng-model="vm.voiceQueue.leavewhenempty" multiple ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'no\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'no\'">no</md-option>\n <md-option ng-value="\'yes\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'yes\'">yes</md-option>\n <md-option ng-value="\'strict\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'strict\'">strict</md-option>\n <md-option ng-value="\'loose\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'loose\'">loose</md-option>\n <md-option ng-value="\'paused\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'paused\'">paused</md-option>\n <md-option ng-value="\'penalty\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'penalty\'">penalty</md-option>\n <md-option ng-value="\'inuse\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'inuse\'">inuse</md-option>\n <md-option ng-value="\'ringing\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'ringing\'">ringing</md-option>\n <md-option ng-value="\'unavailable\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'unavailable\'">unavailable</md-option>\n <md-option ng-value="\'invalid\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'invalid\'">invalid</md-option>\n <md-option ng-value="\'unknown\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'unknown\'">unknown</md-option>\n <md-option ng-value="\'wrapup\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'wrapup\'">wrapup</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.LEAVEWHENEMPTY"></span></div>\n <div ng-messages="generalForm[\'leavewhenempty\'].$error" ng-show="generalForm[\'leavewhenempty\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.LEAVEWHENEMPTY_REQUIRED">LeaveWhenEmpty field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.MUSICONHOLD">MusicOnHold</label>\n <md-select name="musiconhold" ng-model="vm.voiceQueue.musiconhold" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="musiconhold.name" ng-repeat="musiconhold in vm.musiconholds" ng-disabled="musiconhold.canSelect === false">{{ musiconhold.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.MUSICONHOLD"></span></div>\n <div ng-messages="generalForm[\'musiconhold\'].$error" ng-show="generalForm[\'musiconhold\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MUSICONHOLD_REQUIRED">MusicOnHold field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ANNOUNCETOAGENT">AnnounceToAgent</label>\n <md-select name="announce" ng-model="vm.voiceQueue.announce" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'FALSE\'">None</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + announce.save_name" ng-repeat="announce in vm.sounds" ng-disabled="announce.canSelect === false">{{ announce.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.ANNOUNCETOAGENT"></span></div>\n <div ng-messages="generalForm[\'announce\'].$error" ng-show="generalForm[\'announce\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ANNOUNCETOAGENT_REQUIRED">AnnounceToAgent field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.voiceQueue.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.ANNOUNCEMENTS">ANNOUNCEMENTS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="voiceQueue-detail-form-container settings md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="VOICE.SETTINGS">SETTINGS</div>\n </div>\n <form name="settingsForm" novalidate>\n <md-input-container class="md-block">\n <label translate="VOICE.ANNOUNCEFREQUENCY">AnnounceFrequency</label>\n <input type="number" name="announce_frequency" ng-model="vm.voiceQueue.announce_frequency" min="0" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="VOICE.HELP.ANNOUNCEFREQUENCY"></span></div>\n <div ng-messages="settingsForm[\'announce_frequency\'].$error" ng-show="settingsForm[\'announce_frequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ANNOUNCEFREQUENCY_REQUIRED">AnnounceFrequency field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.ANNOUNCEFREQUENCY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AnnounceFrequency must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.MINANNOUNCEFREQUENCY">MinAnnounceFrequency</label>\n <input type="number" name="min_announce_frequency" ng-model="vm.voiceQueue.min_announce_frequency" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="VOICE.HELP.MINANNOUNCEFREQUENCY"></span></div>\n <div ng-messages="settingsForm[\'min_announce_frequency\'].$error" ng-show="settingsForm[\'min_announce_frequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MINANNOUNCEFREQUENCY_REQUIRED">MinAnnounceFrequency field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.MINANNOUNCEFREQUENCY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MinAnnounceFrequency must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.PERIODICANNOUNCEFREQUENCY">PeriodicAnnounceFrequency</label>\n <input type="number" name="periodic_announce_frequency" ng-model="vm.voiceQueue.periodic_announce_frequency" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="VOICE.HELP.PERIODICANNOUNCEFREQUENCY"></span></div>\n <div ng-messages="settingsForm[\'periodic_announce_frequency\'].$error" ng-show="settingsForm[\'periodic_announce_frequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PERIODICANNOUNCEFREQUENCY_REQUIRED">PeriodicAnnounceFrequency field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.PERIODICANNOUNCEFREQUENCY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">PeriodicAnnounceFrequency must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.RANDOMPERIODICANNOUNCE">RandomPeriodicAnnounce</label>\n <md-select name="random_periodic_announce" ng-model="vm.voiceQueue.random_periodic_announce" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.RANDOMPERIODICANNOUNCE"></span></div>\n <div ng-messages="settingsForm[\'random_periodic_announce\'].$error" ng-show="settingsForm[\'random_periodic_announce\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.RANDOMPERIODICANNOUNCE_REQUIRED">RandomPeriodicAnnounce field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ANNOUNCEHOLDTIME">AnnounceHoldtime</label>\n <md-select name="announce_holdtime" ng-model="vm.voiceQueue.announce_holdtime" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'yes\'">Yes</md-option>\n <md-option ng-value="\'no\'">No</md-option>\n <md-option ng-value="\'once\'">Once</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.ANNOUNCEHOLDTIME"></span></div>\n <div ng-messages="settingsForm[\'announce_holdtime\'].$error" ng-show="settingsForm[\'announce_holdtime\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ANNOUNCEHOLDTIME_REQUIRED">AnnounceHoldtime field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ANNOUNCECALLERPOSITION">AnnounceCallerPosition</label>\n <md-select name="announce_position" ng-model="vm.voiceQueue.announce_position" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'yes\'">Yes</md-option>\n <md-option ng-value="\'no\'">No</md-option>\n <md-option ng-value="\'limit\'">Limit</md-option>\n <md-option ng-value="\'more\'">More</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.ANNOUNCECALLERPOSITION"></span></div>\n <div ng-messages="settingsForm[\'announce_position\'].$error" ng-show="settingsForm[\'announce_position\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ANNOUNCECALLERPOSITION_REQUIRED">AnnounceCallerPosition field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ANNOUNCEPOSITIONLIMIT">AnnouncePositionLimit</label>\n <input type="number" name="announce_position_limit" ng-model="vm.voiceQueue.announce_position_limit" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="VOICE.HELP.ANNOUNCEPOSITIONLIMIT"></span></div>\n <div ng-messages="settingsForm[\'announce_position_limit\'].$error" ng-show="settingsForm[\'announce_position_limit\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ANNOUNCEPOSITIONLIMIT_REQUIRED">AnnouncePositionLimit field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.REPORTHOLDTIMEAGENT">ReportHoldtimeAgent</label>\n <md-select name="reportholdtime" ng-model="vm.voiceQueue.reportholdtime" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.REPORTHOLDTIMEAGENT"></span></div>\n <div ng-messages="settingsForm[\'reportholdtime\'].$error" ng-show="settingsForm[\'reportholdtime\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.REPORTHOLDTIMEAGENT_REQUIRED">ReportHoldtimeAgent field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="voiceQueue-detail-form-container announcements md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="VOICE.ANNOUNCEMENTS">ANNOUNCEMENTS</div>\n </div>\n <form name="announcementsForm" novalidate>\n <md-input-container class="md-block">\n <label translate="VOICE.PERIODICANNOUNCE">PeriodicAnnounce</label>\n <md-select name="periodic_announce" ng-model="vm.voiceQueue.periodic_announce" autofocus multiple ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">Default</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + periodic_announce.save_name" ng-repeat="periodic_announce in vm.sounds" ng-disabled="periodic_announce.canSelect === false">{{ periodic_announce.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.PERIODICANNOUNCE"></span></div>\n <div ng-messages="announcementsForm[\'periodic_announce\'].$error" ng-show="announcementsForm[\'periodic_announce\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PERIODICANNOUNCE_REQUIRED">PeriodicAnnounce field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.HOLDTIMEANNOUNCE">HoldTimeAnnounce</label>\n <md-select name="queue_reporthold" ng-model="vm.voiceQueue.queue_reporthold" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_reporthold.save_name" ng-repeat="queue_reporthold in vm.sounds" ng-disabled="queue_reporthold.canSelect === false">{{ queue_reporthold.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.HOLDTIMEANNOUNCE"></span></div>\n <div ng-messages="announcementsForm[\'queue_reporthold\'].$error" ng-show="announcementsForm[\'queue_reporthold\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.HOLDTIMEANNOUNCE_REQUIRED">HoldTimeAnnounce field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.YOUARENEXTANNOUNCE">YouareNextAnnounce</label>\n <md-select name="queue_youarenext" ng-model="vm.voiceQueue.queue_youarenext" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_youarenext.save_name" ng-repeat="queue_youarenext in vm.sounds" ng-disabled="queue_youarenext.canSelect === false">{{ queue_youarenext.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.YOUARENEXTANNOUNCE"></span></div>\n <div ng-messages="announcementsForm[\'queue_youarenext\'].$error" ng-show="announcementsForm[\'queue_youarenext\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.YOUARENEXTANNOUNCE_REQUIRED">YouareNextAnnounce field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.THEREAREANNOUNCE">ThereareAnnounce</label>\n <md-select name="queue_thereare" ng-model="vm.voiceQueue.queue_thereare" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_thereare.save_name" ng-repeat="queue_thereare in vm.sounds" ng-disabled="queue_thereare.canSelect === false">{{ queue_thereare.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.THEREAREANNOUNCE"></span></div>\n <div ng-messages="announcementsForm[\'queue_thereare\'].$error" ng-show="announcementsForm[\'queue_thereare\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.THEREAREANNOUNCE_REQUIRED">ThereareAnnounce field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.WAITINGCALLSANNOUNCE">WaitingCallsAnnounce</label>\n <md-select name="queue_callswaiting" ng-model="vm.voiceQueue.queue_callswaiting" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_callswaiting.save_name" ng-repeat="queue_callswaiting in vm.sounds" ng-disabled="queue_callswaiting.canSelect === false">{{ queue_callswaiting.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.WAITINGCALLSANNOUNCE"></span></div>\n <div ng-messages="announcementsForm[\'queue_callswaiting\'].$error" ng-show="announcementsForm[\'queue_callswaiting\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.WAITINGCALLSANNOUNCE_REQUIRED">WaitingCallsAnnounce field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ESTIMATEDHOLDTIMEANNOUNCE">EstimatedHoldTimeAnnounce</label>\n <md-select name="queue_holdtime" ng-model="vm.voiceQueue.queue_holdtime" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_holdtime.save_name" ng-repeat="queue_holdtime in vm.sounds" ng-disabled="queue_holdtime.canSelect === false">{{ queue_holdtime.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.ESTIMATEDHOLDTIMEANNOUNCE"></span></div>\n <div ng-messages="announcementsForm[\'queue_holdtime\'].$error" ng-show="announcementsForm[\'queue_holdtime\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ESTIMATEDHOLDTIMEANNOUNCE_REQUIRED">EstimatedHoldTimeAnnounce field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.MINUTESANNOUNCE">MinutesAnnounce</label>\n <md-select name="queue_minutes" ng-model="vm.voiceQueue.queue_minutes" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_minutes.save_name" ng-repeat="queue_minutes in vm.sounds" ng-disabled="queue_minutes.canSelect === false">{{ queue_minutes.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.MINUTESANNOUNCE"></span></div>\n <div ng-messages="announcementsForm[\'queue_minutes\'].$error" ng-show="announcementsForm[\'queue_minutes\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MINUTESANNOUNCE_REQUIRED">MinutesAnnounce field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.MINUTEANNOUNCE">MinuteAnnounce</label>\n <md-select name="queue_minute" ng-model="vm.voiceQueue.queue_minute" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_minute.save_name" ng-repeat="queue_minute in vm.sounds" ng-disabled="queue_minute.canSelect === false">{{ queue_minute.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.MINUTEANNOUNCE"></span></div>\n <div ng-messages="announcementsForm[\'queue_minute\'].$error" ng-show="announcementsForm[\'queue_minute\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MINUTEANNOUNCE_REQUIRED">MinuteAnnounce field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.SECONDSANNOUNCE">SecondsAnnounce</label>\n <md-select name="queue_seconds" ng-model="vm.voiceQueue.queue_seconds" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_seconds.save_name" ng-repeat="queue_seconds in vm.sounds" ng-disabled="queue_seconds.canSelect === false">{{ queue_seconds.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.SECONDSANNOUNCE"></span></div>\n <div ng-messages="announcementsForm[\'queue_seconds\'].$error" ng-show="announcementsForm[\'queue_seconds\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.SECONDSANNOUNCE_REQUIRED">SecondsAnnounce field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.THANKYOUANNOUNCE">ThankYouAnnounce</label>\n <md-select name="queue_thankyou" ng-model="vm.voiceQueue.queue_thankyou" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_thankyou.save_name" ng-repeat="queue_thankyou in vm.sounds" ng-disabled="queue_thankyou.canSelect === false">{{ queue_thankyou.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.THANKYOUANNOUNCE"></span></div>\n <div ng-messages="announcementsForm[\'queue_thankyou\'].$error" ng-show="announcementsForm[\'queue_thankyou\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.THANKYOUANNOUNCE_REQUIRED">ThankYouAnnounce field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <md-tab-body>\n <div class="voiceQueue-detail-form-container advanced md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="VOICE.ADVANCED">ADVANCED</div>\n </div>\n <form name="advancedForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.voiceQueue.acw" aria-label="AfterCallWork" ng-disabled="!vm.crudPermissions.canEdit"><span translate="VOICE.AFTERCALLWORK">AfterCallWork</span></md-switch>\n <div class="hint"><span translate="VOICE.HELP.AFTERCALLWORK"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.voiceQueue.acw" class="md-block">\n <label translate="VOICE.AFTERCALLWORKDURATION">AfterCallWorkDuration</label>\n <input type="number" name="acwTimeout" ng-model="vm.voiceQueue.acwTimeout" min="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="VOICE.HELP.AFTERCALLWORKDURATION"></span></div>\n <div ng-messages="advancedForm[\'acwTimeout\'].$error" ng-show="advancedForm[\'acwTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.AFTERCALLWORKDURATION_REQUIRED">AfterCallWorkDuration field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.AFTERCALLWORKDURATION_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AfterCallWorkDuration must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.AUTOPAUSE">AutoPause</label>\n <md-select name="autopause" ng-model="vm.voiceQueue.autopause" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'all\'"> {{ \'VOICE.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.AUTOPAUSE"></span></div>\n <div ng-messages="advancedForm[\'autopause\'].$error" ng-show="advancedForm[\'autopause\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.AUTOPAUSE_REQUIRED">AutoPause field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.RINGINUSE">RingInUse</label>\n <md-select name="ringinuse" ng-model="vm.voiceQueue.ringinuse" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.RINGINUSE"></span></div>\n <div ng-messages="advancedForm[\'ringinuse\'].$error" ng-show="advancedForm[\'ringinuse\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.RINGINUSE_REQUIRED">RingInUse field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.MEMBERDELAY">MemberDelay</label>\n <input type="number" name="memberdelay" ng-model="vm.voiceQueue.memberdelay" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="VOICE.HELP.MEMBERDELAY"></span></div>\n <div ng-messages="advancedForm[\'memberdelay\'].$error" ng-show="advancedForm[\'memberdelay\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MEMBERDELAY_REQUIRED">MemberDelay field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.MEMBERDELAY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MemberDelay must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.TIMEOUTRESTART">TimeoutRestart</label>\n <md-select name="timeoutrestart" ng-model="vm.voiceQueue.timeoutrestart" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.TIMEOUTRESTART"></span></div>\n <div ng-messages="advancedForm[\'timeoutrestart\'].$error" ng-show="advancedForm[\'timeoutrestart\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.TIMEOUTRESTART_REQUIRED">TimeoutRestart field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.MONITORFORMAT">MonitorFormat</label>\n <md-select name="monitor_format" ng-model="vm.voiceQueue.monitor_format" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">Inactive</md-option>\n <md-option ng-value="\'wav\'">wav</md-option>\n <md-option ng-value="\'wav49\'">wav49</md-option>\n <md-option ng-value="\'gsm\'">gsm</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.MONITORFORMAT"></span></div>\n <div ng-messages="advancedForm[\'monitor_format\'].$error" ng-show="advancedForm[\'monitor_format\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MONITORFORMAT_REQUIRED">MonitorFormat field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CONTEXT">Context</label>\n <input type="text" name="context" ng-model="vm.voiceQueue.context" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="VOICE.HELP.CONTEXT"></span></div>\n <div ng-messages="advancedForm[\'context\'].$error" ng-show="advancedForm[\'context\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.SETINTERFACEVARIABLES">SetInterfaceVariables</label>\n <md-select name="setinterfacevar" ng-model="vm.voiceQueue.setinterfacevar" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.SETINTERFACEVARIABLES"></span></div>\n <div ng-messages="advancedForm[\'setinterfacevar\'].$error" ng-show="advancedForm[\'setinterfacevar\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.SETINTERFACEVARIABLES_REQUIRED">SetInterfaceVariables field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.SETQUEUEVARIABLES">SetQueueVariables</label>\n <md-select name="setqueuevar" ng-model="vm.voiceQueue.setqueuevar" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.SETQUEUEVARIABLES"></span></div>\n <div ng-messages="advancedForm[\'setqueuevar\'].$error" ng-show="advancedForm[\'setqueuevar\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.SETQUEUEVARIABLES_REQUIRED">SetQueueVariables field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.SETQUEUEENTRYVARIABLES">SetQueueEntryVariables</label>\n <md-select name="setqueueentryvar" ng-model="vm.voiceQueue.setqueueentryvar" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.SETQUEUEENTRYVARIABLES"></span></div>\n <div ng-messages="advancedForm[\'setqueueentryvar\'].$error" ng-show="advancedForm[\'setqueueentryvar\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.SETQUEUEENTRYVARIABLES_REQUIRED">SetQueueEntryVariables field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.SERVICELEVEL">ServiceLevel</label>\n <input type="number" name="servicelevel" ng-model="vm.voiceQueue.servicelevel" min="0" max="100" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="VOICE.HELP.SERVICELEVEL"></span></div>\n <div ng-messages="advancedForm[\'servicelevel\'].$error" ng-show="advancedForm[\'servicelevel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.SERVICELEVEL_REQUIRED">ServiceLevel field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.SERVICELEVEL_MUST_BE_GREATER_THAN_OR_EQUAL_TO">ServiceLevel must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="VOICE.ERRORS.SERVICELEVEL_MUST_BE_LESS_THAN_OR_EQUAL_TO">ServiceLevel must be a valid greater or equal than</span> <span>100</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.voiceQueue.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="VOICE.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.voiceQueue.mandatoryDisposition" class="md-block">\n <label translate="VOICE.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.voiceQueue.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="advancedForm[\'mandatoryDispositionPauseId\'].$error" ng-show="advancedForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/voice/views/voiceQueues/voiceQueues.html",'<div id="voiceQueues" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="VOICE.VOICEQUEUES">VoiceQueues</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedVoiceQueues.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedVoiceQueues =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="VOICE.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-voiceQueues-count">\n <span>{{vm.selectedVoiceQueues.length}}</span>\n <span translate="VOICE.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="VOICE.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllVoiceQueues()" translate="VOICE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectVoiceQueues()" translate="VOICE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedVoiceQueues" csv-label="true" filename="voiceQueues.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedVoiceQueues($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- VOICEQUEUE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedVoiceQueues" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getVoiceQueues">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'VOICE.NAME\' | translate }}</th>\n <th md-column md-order-by="strategy">{{ \'VOICE.STRATEGY\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'VOICE.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.voiceQueues.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="voiceQueue" md-select-id="id" ng-repeat="voiceQueue in vm.voiceQueues.rows">\n <td md-cell ng-if="voiceQueue.userpic"><img class="avatar" alt="{{voiceQueue.name}}" ng-src="api/users/{{voiceQueue.id}}/avatar" /></td>\n <td md-cell ng-if="!voiceQueue.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{voiceQueue.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceQueue, ev) : vm.createOrEditVoiceQueue($event, voiceQueue)" md-cell class="id ">{{voiceQueue.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceQueue, ev) : vm.createOrEditVoiceQueue($event, voiceQueue)" md-cell class="name ">{{voiceQueue.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceQueue, ev) : vm.createOrEditVoiceQueue($event, voiceQueue)" md-cell class="strategy ">{{ vm.arraystrategy[voiceQueue.strategy].option }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceQueue, ev) : vm.createOrEditVoiceQueue($event, voiceQueue)" md-cell class="description ">{{voiceQueue.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(voiceQueue, $event )" translate="VOICE.EDIT_VOICEQUEUE">\n Edit VoiceQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(voiceQueue, $event )" translate="VOICE.TEAMADD_VOICEQUEUE">\n teamadd VoiceQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(voiceQueue, $event )" translate="VOICE.AGENTADD_VOICEQUEUE">\n agentadd VoiceQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(voiceQueue, $event )" translate="VOICE.DELETE_VOICEQUEUE">\n Delete VoiceQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(voiceQueue, $event )" translate="VOICE.GOTOREALTIME_VOICEQUEUE">\n goToRealtime VoiceQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.voiceQueues.count}}" md-on-paginate="vm.getVoiceQueues" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / VOICEQUEUE TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD VOICEQUEUE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-voiceQueue-button" ng-click="vm.createOrEditVoiceQueue($event)" aria-label="add voiceQueue" translate translate-attr-aria-label="VOICE.ADD_VOICEQUEUE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD VOICEQUEUE BUTTON --\x3e\n</div>'),e.put("app/main/apps/voice/views/voiceRecordings/create/dialog.html",'<md-dialog class="voiceRecording-dialog" aria-label="New VoiceRecording">\n <form name="voiceRecordingForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="VOICE.RATING">Rating</label>\n <md-select name="rating" ng-model="vm.voiceRecording.rating" autofocus ng-disabled="!vm.newVoiceRecording && !vm.crudPermissions.canEdit">\n <md-option ng-value="null">{{\'VOICE.NO_RATING\' | translate}}</md-option>\n <md-option value="1">\n <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1]"></md-icon>\n </md-option>\n <md-option value="2">\n <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1,2]"></md-icon>\n </md-option>\n <md-option value="3">\n <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1,2,3]"></md-icon>\n </md-option>\n <md-option value="4">\n <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1,2,3,4]"></md-icon>\n </md-option>\n <md-option value="5">\n <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1,2,3,4,5]"></md-icon>\n </md-option>\n </md-select>\n <div ng-messages="voiceRecordingForm[\'rating\'].$error" ng-show="voiceRecordingForm[rating].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.RATING_REQUIRED">Rating field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newVoiceRecording" ng-click="vm.saveVoiceRecording()" class="send-button md-accent md-raised" ng-disabled="voiceRecordingForm.$invalid || voiceRecordingForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newVoiceRecording" ng-click="vm.addNewVoiceRecording()" class="send-button md-accent md-raised" ng-disabled="voiceRecordingForm.$invalid" aria-label="ADD" translate="VOICE.ADD_VOICERECORDING" translate-attr-aria-label="VOICE.ADD_VOICERECORDING">\n ADD VOICERECORDING\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newVoiceRecording" ng-click="vm.deleteVoiceRecording($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/voiceRecordings/edit/view.html",'<div id="voice-voiceRecording" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-voiceRecordings-button md-icon-button" aria-label="Go to voiceRecordings" ng-click="vm.gotoVoiceRecordings()" translate translate-attr-aria-label="VOICE.GO_TO_VOICERECORDINGS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="voiceRecording-image" hide-xs>\n <img ng-src="assets/images/business/voiceRecordings.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.voiceRecording.id}}\n <span ng-if="vm.voiceRecording.name">{{vm.voiceRecording.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="VOICE.CREATED_AT"></span> <span>{{vm.voiceRecording.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveVoiceRecording()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(voiceRecordingsForm.$invalid) || (transcriptForm.$invalid) || (sentimentAnalysisForm.$invalid)" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.GENERAL">GENERAL</span>\n </md-tab-label>\n <md-tab-body>\n <div class="voiceRecording-detail-form-container voicerecordings md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="VOICE.VOICERECORDINGS">VOICERECORDINGS</div>\n </div>\n <form name="voiceRecordingsForm" novalidate>\n <md-input-container class="md-block">\n <label translate="VOICE.TYPE">Type</label>\n <input type="" name="type" ng-model="vm.voiceRecording.type" autofocus disabled>\n\n <div ng-messages="voiceRecordingsForm[\'type\'].$error" ng-show="voiceRecordingsForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.UNIQUEID">UniqueId</label>\n <input type="" name="uniqueid" ng-model="vm.voiceRecording.uniqueid" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'uniqueid\'].$error" ng-show="voiceRecordingsForm[\'uniqueid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.UNIQUEID_REQUIRED">UniqueId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CALLER">Caller</label>\n <input type="" name="calleridnum" ng-model="vm.voiceRecording.calleridnum" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'calleridnum\'].$error" ng-show="voiceRecordingsForm[\'calleridnum\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CALLER_REQUIRED">Caller field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CALLED">Called</label>\n <input type="" name="exten" ng-model="vm.voiceRecording.exten" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'exten\'].$error" ng-show="voiceRecordingsForm[\'exten\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CALLED_REQUIRED">Called field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CONNECTED">Connected</label>\n <input type="" name="connectedlinenum" ng-model="vm.voiceRecording.connectedlinenum" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'connectedlinenum\'].$error" ng-show="voiceRecordingsForm[\'connectedlinenum\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CONNECTED_REQUIRED">Connected field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.QUEUE">Queue</label>\n <input type="" name="queue" ng-model="vm.voiceRecording.queue" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'queue\'].$error" ng-show="voiceRecordingsForm[\'queue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.AGENT">Agent</label>\n <input type="text" name="membername" ng-model="vm.voiceRecording.membername" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'membername\'].$error" ng-show="voiceRecordingsForm[\'membername\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.RATING">Rating</label>\n <md-select name="rating" ng-model="vm.voiceRecording.rating" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">{{\'VOICE.NO_RATING\' | translate}}</md-option>\n <md-option value="1">\n <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1]"></md-icon>\n </md-option>\n <md-option value="2">\n <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1,2]"></md-icon>\n </md-option>\n <md-option value="3">\n <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1,2,3]"></md-icon>\n </md-option>\n <md-option value="4">\n <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1,2,3,4]"></md-icon>\n </md-option>\n <md-option value="5">\n <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1,2,3,4,5]"></md-icon>\n </md-option>\n </md-select>\n <div ng-messages="voiceRecordingsForm[\'rating\'].$error" ng-show="voiceRecordingsForm[rating].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.RATING_REQUIRED">Rating field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.DISPOSITION">Disposition</label>\n <input type="text" name="userDisposition" ng-model="vm.voiceRecording.userDisposition" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'userDisposition\'].$error" ng-show="voiceRecordingsForm[\'userDisposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DISPOSITION_REQUIRED">Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.SECOND_LEVEL_DISPOSITION">Second_Level_Disposition</label>\n <input type="text" name="userSecondDisposition" ng-model="vm.voiceRecording.userSecondDisposition" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'userSecondDisposition\'].$error" ng-show="voiceRecordingsForm[\'userSecondDisposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.SECOND_LEVEL_DISPOSITION_REQUIRED">Second_Level_Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.THIRD_LEVEL_DISPOSITION">Third_Level_Disposition</label>\n <input type="text" name="userThirdDisposition" ng-model="vm.voiceRecording.userThirdDisposition" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'userThirdDisposition\'].$error" ng-show="voiceRecordingsForm[\'userThirdDisposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.THIRD_LEVEL_DISPOSITION_REQUIRED">Third_Level_Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab ng-if="vm.license.ai">\n <md-tab-label>\n <span translate="VOICE.TRANSCRIPTANALYSIS">TRANSCRIPTANALYSIS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="voiceRecording-detail-form-container transcript md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="VOICE.TRANSCRIPT">TRANSCRIPT</div>\n </div>\n <form name="transcriptForm" novalidate>\n <md-input-container ng-if="vm.voiceRecording.transcribeStatus == \'COMPLETED\'" class="md-block">\n <label translate="VOICE.TEXT">Text</label>\n <textarea name="fileText" ng-model="vm.voiceRecording.fileText" autofocus ng-disabled="true"></textarea>\n </md-input-container>\n <md-input-container ng-if="vm.voiceRecording.transcribeStatus == \'FAILED\'" class="md-block">\n <label translate="VOICE.FAILUREREASON">FailureReason</label>\n <textarea name="failureReason" ng-model="vm.voiceRecording.failureReason" ng-disabled="true"></textarea>\n </md-input-container>\n\n </form>\n </div>\n <div class="voiceRecording-detail-form-container sentimentanalysis md-background-bg md-whiteframe-1dp">\n <div ng-controller="VoiceRecordingSentimentStatisticsController as vm_ss" ng-init="vm_ss.init(vm.voiceRecording)">\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.SENTIMENTANALYSIS" style="width: 50px;">Sentiment Analysis</span>\n <div flex></div>\n </div>\n </md-toolbar>\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8 sentiment" ng-class="vm_ss.voiceRecording.sentiment">\n {{vm_ss.voiceRecording.sentiment}}\n </div>\n <div class="font-weight-500 secondary-text">\n {{ \'VOICE.SENTIMENT\' | translate | uppercase }}\n </div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">\n ({{ (vm_ss.voiceRecording.sPositive || 0) * 100 | number: 2 }}%)\n </div>\n <div class="font-weight-500 secondary-text">\n {{ \'VOICE.SENTIMENT_POSITIVE\' | translate | uppercase }}\n </div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">\n ({{ (vm_ss.voiceRecording.sNegative || 0) * 100 | number: 2 }}%)\n </div>\n <div class="font-weight-500 secondary-text">\n {{ \'VOICE.SENTIMENT_NEGATIVE\' | translate | uppercase }}\n </div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">\n ({{ (vm_ss.voiceRecording.sNeutral || 0) * 100 | number: 2 }}%)\n </div>\n <div class="font-weight-500 secondary-text">\n {{ \'VOICE.SENTIMENT_NEUTRAL\' | translate | uppercase }}\n </div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n \x3c!-- WIDGET 5 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">\n ({{ (vm_ss.voiceRecording.sMixed || 0) * 100 | number: 2 }}%)\n </div>\n <div class="font-weight-500 secondary-text">\n {{ \'VOICE.SENTIMENT_MIXED\' | translate | uppercase }}\n </div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n \x3c!-- / WIDGET 5 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/voice/views/voiceRecordings/voiceRecordings.html",'<div id="voiceRecordings" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="VOICE.VOICERECORDINGS">VoiceRecordings</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getVoiceRecordings()"></ms-quick-filter>\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedVoiceRecordings.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedVoiceRecordings =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="VOICE.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-voiceRecordings-count">\n <span>{{vm.selectedVoiceRecordings.length}}</span>\n <span translate="VOICE.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="VOICE.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllVoiceRecordings()" translate="VOICE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectVoiceRecordings()" translate="VOICE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedVoiceRecordings" csv-label="true" filename="voiceRecordings.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.license.ai" ng-click="vm.runtranscribesentimentSelectedVoiceRecordings($event)" aria-label="transcribesentiment selected" translate translate-attr-label="VOICERECORDINGS.TRANSCRIBESENTIMENT_SELECTED">\n <md-icon md-font-icon="icon-text-to-speech"></md-icon>\n <md-tooltip>{{\'VOICE.RUNTRANSCRIBESENTIMENT_VOICERECORDING\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button" ng-if="vm.license.ai" ng-click="vm.runtranscribeSelectedVoiceRecordings($event)" aria-label="transcribe selected" translate translate-attr-label="VOICERECORDINGS.TRANSCRIBE_SELECTED">\n <md-icon md-font-icon="icon-format-size"></md-icon>\n <md-tooltip>{{\'VOICE.RUNTRANSCRIBE_VOICERECORDING\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button" ng-if="vm.license.ai" ng-click="vm.runsentimentSelectedVoiceRecordings($event)" aria-label="transcribe selected" translate translate-attr-label="VOICERECORDINGS.SENTIMENT_SELECTED">\n <md-icon md-font-icon="icon-heart-outline"></md-icon>\n <md-tooltip>{{\'VOICE.RUNSENTIMENT_VOICERECORDING\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedVoiceRecordings($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- VOICERECORDING TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedVoiceRecordings" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getVoiceRecordings">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="type">{{ \'VOICE.TYPE\' | translate }}</th>\n <th md-column md-order-by="uniqueid">{{ \'VOICE.UNIQUEID\' | translate }}</th>\n <th md-column md-order-by="calleridnum">{{ \'VOICE.CALLER\' | translate }}</th>\n <th md-column md-order-by="exten">{{ \'VOICE.CALLED\' | translate }}</th>\n <th md-column md-order-by="connectedlinenum">{{ \'VOICE.CONNECTED\' | translate }}</th>\n <th md-column md-order-by="queue">{{ \'VOICE.QUEUE\' | translate }}</th>\n <th md-column md-order-by="membername">{{ \'VOICE.AGENT\' | translate }}</th>\n <th md-column md-order-by="rating">{{ \'VOICE.RATING\' | translate }}</th>\n <th md-column>{{ \'VOICE.AUDIO\' | translate }}</th>\n <th md-column md-order-by="createdAt">{{ \'VOICE.DATE\' | translate }}</th>\n <th md-column md-order-by="userDisposition">{{ \'VOICE.DISPOSITION\' | translate }}</th>\n <th md-column md-order-by="userSecondDisposition">{{ \'VOICE.SECOND_LEVEL_DISPOSITION\' | translate }}</th>\n <th md-column md-order-by="userThirdDisposition">{{ \'VOICE.THIRD_LEVEL_DISPOSITION\' | translate }}</th>\n <th md-column md-order-by="transcribeStatus" ng-if="vm.license.ai">{{ \'VOICE.TRANSCRIBE\' | translate }}</th>\n <th md-column md-order-by="sentiment" ng-if="vm.license.ai">{{ \'VOICE.SENTIMENTANALYSIS\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.voiceRecordings.rows.length">\n <td md-cell colspan="16">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="voiceRecording" md-select-id="id" ng-repeat="voiceRecording in vm.voiceRecordings.rows">\n <td md-cell ng-if="voiceRecording.userpic"><img class="avatar" alt="{{voiceRecording.name}}" ng-src="api/users/{{voiceRecording.id}}/avatar" /></td>\n <td md-cell ng-if="!voiceRecording.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{voiceRecording.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="type ">{{voiceRecording.type}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="uniqueid ">{{voiceRecording.uniqueid}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="calleridnum " privacy ng-cloak>{{voiceRecording.calleridnum}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="exten " privacy ng-cloak>{{voiceRecording.exten}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="connectedlinenum " privacy ng-cloak>{{voiceRecording.connectedlinenum}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="queue ">{{voiceRecording.queue}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="membername " privacy ng-cloak>{{voiceRecording.membername}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="rating ">\n <md-icon md-font-icon="icon-star" style="color:red" ng-show="voiceRecording.rating" ng-repeat="rating in [1,2,3,4,5] | limitTo:voiceRecording.rating"></md-icon><span ng-hide="voiceRecording.rating" translate="VOICE.NO_RATING">No rating</span>\n </td>\n <td md-cell class="audio " ng-switch="voiceRecording.format">\n \x3c!-- audio recording directive --\x3e\n <ms-recording ng-switch-when=".wav" id="voiceRecording.id" model="\'voiceRecording\'"></ms-recording>\n \x3c!-- / audio recording directive --\x3e\n <span ng-switch-when=".gsm|.WAV" ng-switch-when-separator="|">\n <em>{{ \'VOICE.CANT_PLAY_GSM_AUDIO_FILES\' | translate }}</em>\n </span>\n </td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="createdAt ">{{voiceRecording.createdAt | date:\'medium\' }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="userDisposition ">{{voiceRecording.userDisposition}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="userSecondDisposition ">{{voiceRecording.userSecondDisposition}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="userThirdDisposition ">{{voiceRecording.userThirdDisposition}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="transcribeStatus " ng-if="vm.license.ai">{{ \'VOICE.TRANSCRIBESTATUS_\' + voiceRecording.transcribeStatus | translate}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="sentiment " ng-if="vm.license.ai">{{voiceRecording.sentiment}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(voiceRecording, $event )" translate="VOICE.EDIT_VOICERECORDING">\n Edit VoiceRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="voiceRecording.transcribeStatus == \'NEW\' && vm.license.ai">\n\n <md-button ng-click="vm.runtranscriberuntranscribesentiment(voiceRecording, $event )" translate="VOICE.RUNTRANSCRIBE_VOICERECORDING">\n RunTranscribe VoiceRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="voiceRecording.transcribeStatus == \'NEW\' && vm.license.ai">\n\n <md-button ng-click="vm.runtranscribesentimentruntranscribesentiment(voiceRecording, $event )" translate="VOICE.RUNTRANSCRIBESENTIMENT_VOICERECORDING">\n RunTranscribeSentiment VoiceRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="voiceRecording.transcribeStatus == \'COMPLETED\' && voiceRecording.sentiment == null && vm.license.ai">\n\n <md-button ng-click="vm.runsentimentruntranscribesentiment(voiceRecording, $event )" translate="VOICE.RUNSENTIMENT_VOICERECORDING">\n RunSentiment VoiceRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="voiceRecording.transcribeStatus == \'COMPLETED\' && vm.license.ai">\n\n <md-button ng-click="vm.downloadtranscribefile2(voiceRecording, $event )" translate="VOICE.DOWNLOADTRANSCRIBE_VOICERECORDING">\n DownloadTranscribe VoiceRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.role === \'admin\' || vm.userProfile.downloadVoiceRecordings">\n\n <md-button ng-click="vm.downloadfile2(voiceRecording, $event , \'voice/recordings\' )" translate="VOICE.DOWNLOAD_VOICERECORDING">\n Download VoiceRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(voiceRecording, $event )" translate="VOICE.DELETE_VOICERECORDING">\n Delete VoiceRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.voiceRecordings.count}}" md-on-paginate="vm.getVoiceRecordings" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / VOICERECORDING TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- NO ADD BUTTON BUTTON --\x3e\n</div>'),e.put("app/main/apps/whatsapp/views/realtime/agents/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="WHATSAPP.AGENTS">Agents</span>\n <div flex></div>\n <ms-search-bar on-search="vm.onInit()" query="vm.query" on-collapse="vm.query.filter = undefined; vm.onInit()" debounce="300"></ms-search-bar>\n <md-select ng-model="vm.query.globalStatusFilter" class="md-caption" ng-change="vm.query.pauseTypeFilter = \'\'; vm.onInit()">\n <md-option ng-value="\'\'">{{ \'WHATSAPP.ALL\' | translate }}</md-option>\n <md-option value="pause">{{ \'WHATSAPP.PAUSE\' | translate }}</md-option>\n <md-option value="*pause">{{ \'WHATSAPP.PARTIALPAUSE\' | translate }}</md-option>\n <md-option value="busy">{{ \'WHATSAPP.BUSY\' | translate }}</md-option>\n <md-option value="idle">{{ \'WHATSAPP.IDLE\' | translate }}</md-option>\n </md-select>\n <md-select ng-if="vm.isPause(vm.query.globalStatusFilter)" ng-model="vm.query.pauseTypeFilter" class="md-caption" ng-change="vm.onInit()">\n <md-option ng-value="\'\'">All</md-option>\n <md-option value="DEFAULT PAUSE">DEFAULT PAUSE</md-option>\n <md-option value="ACW">ACW</md-option>\n <md-option value="LOGININPAUSE">LOGININPAUSE</md-option>\n <md-option value="Auto-Pause">AUTOPAUSE</md-option>\n <md-option ng-value="pause.name" ng-repeat="pause in vm.pauses.rows">{{pause.name}}</md-option>\n </md-select>\n </div>\n</md-toolbar>\n\x3c!-- AGENT TABLE --\x3e\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.order" md-on-reorder="vm.onInit">\n <tr md-row border="1">\n <th class="bv text-center" colspan="5">{{ \'WHATSAPP.AGENT\' | translate }}</th>\n <th class="bv bl text-center" colspan="2">{{ \'VOICE.VOICE\' | translate }}</th>\n <th ng-if="vm.license.chat" class="bv bl text-center" colspan="2">{{ \'CHAT.CHAT\' | translate }}</th>\n <th ng-if="vm.license.mail" class="bv bl text-center" colspan="2">{{ \'MAIL.MAIL\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="bv bl text-center" colspan="2">{{ \'SMS.SMS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="bv bl text-center" colspan="2">\n {{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="bv bl text-center" colspan="2">\n {{ \'WHATSAPP.WHATSAPP\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n </tr>\n <tr md-row>\n <th class="bl" colspan="2" md-column md-order-by="fullname">\n {{ \'WHATSAPP.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">\n {{ \'WHATSAPP.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">\n {{ \'WHATSAPP.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">\n {{ \'WHATSAPP.PAUSE_TIME\' | translate }}</th>\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\n <th ng-if="vm.license.chat" class="bl text-center">{{ \'CHAT.STATUS\' | translate }}</th>\n <th ng-if="vm.license.chat" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'CHAT.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.mail" class="bl text-center">{{ \'MAIL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.mail" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'MAIL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.messaging" class="bl text-center">{{ \'SMS.STATUS\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'SMS.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.openchannel" class="bl text-center">{{ \'OPENCHANNEL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'OPENCHANNEL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.fax" class="bl text-center">{{ \'FAX.STATUS\' | translate }}</th>\n <th ng-if="vm.license.fax" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'FAX.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.whatsapp" class="bl text-center">{{ \'WHATSAPP.STATUS\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'WHATSAPP.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.order.length">\n <td md-cell colspan="19">\n <div layout="row" layout-align="center center">\n <span>{{ \'WHATSAPP.NO_AGENT_ONLINE\' | translate }}</span>\n </div>\n </td>\n </tr>\n <tr md-select="vm.agents[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td class="bt padding-5">\n <div layout="row" layout-align="start center">\n <img class="avatar" ng-src="{{vm.agents[value].userpic && \'api/users/\'+vm.agents[value].id+\'/avatar\' || \'assets/images/avatars/profile.png\'}}">\n <div layout="column">\n <span>{{vm.agents[value].fullname}}</span>\n <span>{{vm.agents[value].internal}}</span>\n </div>\n </div>\n </td>\n <td class="bt padding-5">\n <div layout="row" layout-align="start center" ng-if="vm.license.screenrecording && (vm.agents[value].phoneBarEnableScreenRecordingByAgent || vm.agents[value].phoneBarEnableAutomaticScreenRecording)">\n <div class="column" ng-if="vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: green; font-size: 36px;" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'WHATSAPP.TOOLTIP_SCREENRECORDING_ON\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n <div class="column" ng-if="!vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: gray" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'WHATSAPP.TOOLTIP_SCREENRECORDING_OFF\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n </div>\n </td>\n <td class="bt">\n'+" <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','busy':'indigo-100-bg','*pause':'amber-50-bg','pause':'amber-200-bg'}[vm.agents[value].globalStatus]\">{{\n vm.isPause(vm.agents[value].globalStatus) ? '' : vm.agents[value].globalStatus | uppercase }}\n {{ vm.isPause(vm.agents[value].globalStatus) ? (vm.isPartialPause(vm.agents[value].globalStatus) ?\n '*'+vm.agents[value].pauseType || 'DEFAULT PAUSE' : vm.agents[value].pauseType || 'DEFAULT PAUSE') :\n ''}}</span>\n </td>\n <td class=\"bt custom-column\">\n <timer start-time=\"vm.agents[value].lastLoginAt\"></timer>\n </td>\n <td class=\"bt custom-column\">\n <timer ng-if=\"vm.isPause(vm.agents[value].globalStatus) || vm.isPartialPause(vm.agents[value].globalStatus)\" start-time=\"vm.agents[value].lastPauseAt\"></timer>\n </td>\n <td class=\"bt bl\">\n <div layout=\"row\">\n <span ng-if=\"!vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','talking':'indigo-100-bg','ringing':'orange-400-bg','pause':'amber-200-bg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].voiceStatus | uppercase }}</span>\n <span ng-if=\"vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5 orange-400-bg\">ONHOLD</span>\n </div>\n </td>\n <td class=\"bt bl\">\n <div layout=\"column\">\n <span ng-if=\"vm.agents[value].queue\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].queue }}</span>\n <span ng-if=\"vm.agents[value].destconnectedlinenum\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\" privacy ng-cloak>{{\n vm.agents[value].destconnectedlinenum }}</span>\n <span ng-if=\"vm.agents[value].routealias\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{\n vm.agents[value].routealias }}</span>\n <span class=\"padding-5\" ng-if=\"vm.agents[value].queue || vm.agents[value].destconnectedlinenum\">\n <timer start-time=\"vm.agents[value].voiceStatusTime\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">\n </timer>\n </span>\n </div>\n </td>\n <td class=\"bt bl\" ng-if=\"vm.license.chat\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].chatStatus]\">{{\n vm.agents[value].chatStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td md-number class=\"bt text-center font-size-20\" ng-if=\"vm.license.chat\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].chatStatus]\">\n {{ vm.agents[value].chatCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.mail\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].mailStatus]\">{{\n vm.agents[value].mailStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.mail\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].mailStatus]\">\n {{ vm.agents[value].mailCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.messaging\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].smsStatus]\">{{\n vm.agents[value].smsStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.messaging\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].smsStatus]\">\n {{ vm.agents[value].smsCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.openchannel\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].openchannelStatus]\">{{\n vm.agents[value].openchannelStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.openchannel\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].openchannelStatus]\">\n {{ vm.agents[value].openchannelCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.fax\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].faxStatus]\">{{\n vm.agents[value].faxStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.fax\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].faxStatus]\">\n {{ vm.agents[value].faxCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.whatsapp\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].whatsappStatus]\">{{\n vm.agents[value].whatsappStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.whatsapp\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].whatsappStatus]\">\n {{ vm.agents[value].whatsappCurrentCapacity }}</td>\n <td class=\"bl bt padding-5 text-center\" ng-if=\"vm.crudPermissions.canEdit\">\n <md-menu>\n <md-button class=\"md-icon-button\" aria-label=\"More\" translate translate-attr-aria-label=\"STAFF.MORE\" ng-click=\"$mdOpenMenu($event)\">\n <md-icon md-font-icon=\"icon-dots-vertical\"></md-icon>\n </md-button>\n <md-menu-content width=\"4\">\n <md-menu-item>\n <md-button ng-click=\"vm.logout(vm.agents[value], $event)\" translate=\"WHATSAPP.LOGOUT\">\n Logout\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click=\"vm.queueAdd(vm.agents[value], $event)\" translate=\"WHATSAPP.AGENTADD_QUEUE\">\n Add Agent In Queue\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.license.screenrecording && vm.agents[value].phoneBarEnableScreenRecordingByAgent\">\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"WHATSAPP.SCREENRECORDING\">Screen Recording\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if=\"!vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], true)\"><em translate=\"WHATSAPP.START_SCREENRECORDING\">Start\n Screen Recording</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], false)\"><em translate=\"WHATSAPP.STOP_SCREENRECORDING\">Stop\n Screen Recording</em></md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item>\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"WHATSAPP.PAUSE\">Pause</md-button>\n <md-menu-content>\n <md-menu-item>\n <md-button ng-disabled=\" vm.agents[value].voicePause && 'DEFAULT PAUSE' === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value])\"><em translate=\"WHATSAPP.DEFAULT_PAUSE\">Default\n Pause</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.pauses.rows.length\" ng-repeat=\"pause in vm.pauses.rows\">\n <md-button ng-disabled=\"vm.agents[value].voicePause && pause.name === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value], pause.name)\">{{pause.name}}\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.isPause(vm.agents[value].globalStatus)\">\n <md-button ng-click=\"vm.unPause(vm.agents[value])\" translate=\"WHATSAPP.UNPAUSE\">\n Unpause\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label=\"{page: '{{'WHATSAPP.PAGE' | translate}}:', rowsPerPage: '{{'WHATSAPP.ROWSPERPAGE' | translate}}:', of: '{{'WHATSAPP.OF' | translate}}'}\" md-limit=\"vm.query.limit\" md-limit-options=\"[10, 15, 20, 50, 100, 250]\" md-page=\"vm.query.page\" md-total=\"{{vm.filteredAgents.length}}\" md-on-paginate=\"vm.onInit\" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e"),e.put("app/main/apps/whatsapp/views/realtime/queues/view.html",'<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="WHATSAPP.QUEUES">Queues</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getQueues">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'WHATSAPP.NAME\' | translate }}</th>\n <th md-column>{{ \'WHATSAPP.LOGGED_IN\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'WHATSAPP.PAUSED\' | translate }}</th>\n <th md-column>{{ \'WHATSAPP.WAITING\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.queues.count > 0">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="WHATSAPP.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="queue" md-select-id="id" ng-repeat="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedIn }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="WHATSAPP.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.editQueue($event, queue)" translate="WHATSAPP.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.addAgent($event, queue)" translate="WHATSAPP.AGENTSADD_QUEUE">\n Add Agents to queue\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'WHATSAPP.PAGE\' | translate}}:\', rowsPerPage: \'{{\'WHATSAPP.ROWSPERPAGE\' | translate}}:\', of: \'{{\'WHATSAPP.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),e.put("app/main/apps/whatsapp/views/realtime/realtime.html",'<div id="realtime" class="page-layout simple tabbed" layout="column" ng-cloak>\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="WHATSAPP.AGENTS">Agents</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="WHATSAPP.QUEUES">Queues</span>\n </md-tab-label>\n </md-tab>\n </md-tabs>\n\n <md-card ui-view></md-card>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/create/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.whatsappAccount.name" ng-required="true" autofocus ng-disabled="!vm.newWhatsappAccount">\n\n <div class="hint"><span translate="WHATSAPP.HELP.NAME"></span></div>\n <div ng-messages="whatsappAccountForm[\'name\'].$error" ng-show="whatsappAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.KEY">key</label>\n <input type="text" name="key" ng-model="vm.whatsappAccount.key" md-maxlength="5" ng-required="true">\n\n <div ng-messages="whatsappAccountForm[\'key\'].$error" ng-show="whatsappAccountForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="WHATSAPP.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.LIST">List</label>\n <md-select name="ListId" ng-model="vm.whatsappAccount.ListId" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="WHATSAPP.HELP.LIST"></span></div>\n <div ng-messages="whatsappAccountForm[\'ListId\'].$error" ng-show="whatsappAccountForm[\'ListId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.MOTIONPROXY">MotionProxy</label>\n <input type="url" name="remote" ng-model="vm.whatsappAccount.remote" md-maxlength="255" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="WHATSAPP.HELP.MOTIONPROXY"></span></div>\n <div ng-messages="whatsappAccountForm[\'remote\'].$error" ng-show="whatsappAccountForm[\'remote\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.MOTIONPROXY_REQUIRED">MotionProxy field is required</span>\n </div>\n <div ng-message="url">\n <span translate="WHATSAPP.ERRORS.MOTIONPROXY_MUST_VALID_URL">MotionProxy must be a valid url http://www.xcally.com</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="WHATSAPP.ERRORS.MOTIONPROXY_MAX_LENGTH" translate-values=\'{max: 255}\'>MotionProxy must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.TYPE">Type</label>\n <md-select name="type" ng-model="vm.whatsappAccount.type">\n <md-option ng-value="\'twilio\'">Twilio</md-option>\n </md-select>\n <div ng-messages="whatsappAccountForm[\'type\'].$error" ng-show="whatsappAccountForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.whatsappAccount.type == \'twilio\'" class="md-block">\n <label translate="WHATSAPP.ACCOUNTSID">AccountSID</label>\n <input type="text" name="accountSid" ng-model="vm.whatsappAccount.accountSid" ng-required="true">\n\n <div ng-messages="whatsappAccountForm[\'accountSid\'].$error" ng-show="whatsappAccountForm[\'accountSid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.ACCOUNTSID_REQUIRED">AccountSID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.whatsappAccount.type == \'twilio\'" class="md-block">\n <label translate="WHATSAPP.AUTHTOKEN">AuthToken</label>\n <input type="text" name="authToken" ng-model="vm.whatsappAccount.authToken" ng-required="true">\n\n <div ng-messages="whatsappAccountForm[\'authToken\'].$error" ng-show="whatsappAccountForm[\'authToken\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.AUTHTOKEN_REQUIRED">AuthToken field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.PHONE">phone</label>\n <input type="text" name="phone" ng-model="vm.whatsappAccount.phone" ng-required="true">\n\n <div ng-messages="whatsappAccountForm[\'phone\'].$error" ng-show="whatsappAccountForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.PHONE_REQUIRED">phone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.whatsappAccount.description">\n\n <div ng-messages="whatsappAccountForm[\'description\'].$error" ng-show="whatsappAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newWhatsappAccount" ng-click="vm.saveWhatsappAccount()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountForm.$invalid || whatsappAccountForm.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newWhatsappAccount" ng-click="vm.addNewWhatsappAccount()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountForm.$invalid" aria-label="ADD" translate="WHATSAPP.ADD_WHATSAPPACCOUNT" translate-attr-aria-label="WHATSAPP.ADD_WHATSAPPACCOUNT">\n ADD WHATSAPPACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newWhatsappAccount" ng-click="vm.deleteWhatsappAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="WHATSAPP.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="WHATSAPP.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/agentadd/agentadd.html",'<md-dialog class="whatsappAccount-dialog" aria-label="whatsappAccount" ng-init="vm.onInit()">\n <form name="whatsappAccountForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="WHATSAPP.AGENTADD_WHATSAPPACCOUNT">Add Agent to whatsappAccount</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/agent/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.AGENT">Agent</label>\n <md-select name="agent" ng-model="vm.agent.agent" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="agent.name" ng-repeat="agent in vm.agents" ng-disabled="agent.canSelect === false">{{ agent.name }}</md-option>\n </md-select>\n <div ng-messages="whatsappAccountFormApp[\'agent\'].$error" ng-show="whatsappAccountFormApp[\'agent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.agent.timeout" min="0" max="2147483" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'timeout\'].$error" ng-show="whatsappAccountFormApp[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="WHATSAPP.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/amazonlex/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.ACCESSKEYID">accesskeyid</label>\n <input type="text" name="accesskeyid" ng-model="vm.amazonlex.accesskeyid" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'accesskeyid\'].$error" ng-show="whatsappAccountFormApp[\'accesskeyid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.ACCESSKEYID_REQUIRED">accesskeyid field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.SECRETACCESSKEY">secretaccesskey</label>\n <input type="text" name="secretaccesskey" ng-model="vm.amazonlex.secretaccesskey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'secretaccesskey\'].$error" ng-show="whatsappAccountFormApp[\'secretaccesskey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.SECRETACCESSKEY_REQUIRED">secretaccesskey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.LEXREGION">lexregion</label>\n <md-select name="lexregion" ng-model="vm.amazonlex.lexregion" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'us-east-1\'">US East (N. Virginia)</md-option>\n <md-option ng-value="\'us-west-2\'">US West (Oregon)</md-option>\n <md-option ng-value="\'eu-west-1\'">EU (Ireland)</md-option>\n <md-option ng-value="\'ap-southeast-2\'">Asia Pacific (Sydney)</md-option>\n </md-select>\n <div ng-messages="whatsappAccountFormApp[\'lexregion\'].$error" ng-show="whatsappAccountFormApp[\'lexregion\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.LEXREGION_REQUIRED">lexregion field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.BOTNAME">botname</label>\n <input type="text" name="botname" ng-model="vm.amazonlex.botname" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'botname\'].$error" ng-show="whatsappAccountFormApp[\'botname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.BOTNAME_REQUIRED">botname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.amazonlex.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="WHATSAPP.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="whatsappAccountFormApp[\'welcomemessage\'].$error" ng-show="whatsappAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.WELCOMEMESSAGE_REQUIRED">welcomemessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="WHATSAPP.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/autoreply/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.TIMES">times</label>\n <md-select name="times" ng-model="vm.autoreply.times" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="2">One Time</md-option>\n <md-option ng-value="0">Always</md-option>\n <md-option ng-value="1">First Message</md-option>\n </md-select>\n <div ng-messages="whatsappAccountFormApp[\'times\'].$error" ng-show="whatsappAccountFormApp[\'times\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TIMES_REQUIRED">times field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.TEXT">Text</label>\n <textarea name="text" ng-model="vm.autoreply.text" required></textarea>\n\n <div ng-messages="whatsappAccountFormApp[\'text\'].$error" ng-show="whatsappAccountFormApp[\'text\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TEXT_REQUIRED">Text field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/close/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.DISPOSITION">Disposition</label>\n <input type="text" name="disposition" ng-model="vm.close.disposition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'disposition\'].$error" ng-show="whatsappAccountFormApp[\'disposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.DISPOSITION_REQUIRED">Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/dialogflow/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.dialogflow.key" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'key\'].$error" ng-show="whatsappAccountFormApp[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.KEY_REQUIRED">Key field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflow.language" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'da\'">Danish</md-option>\n <md-option ng-value="\'en\'">English</md-option>\n <md-option ng-value="\'de\'">German</md-option>\n <md-option ng-value="\'it\'">Italian</md-option>\n <md-option ng-value="\'es\'">Spanish</md-option>\n <md-option ng-value="\'fr\'">French</md-option>\n <md-option ng-value="\'id\'">Indonesian</md-option>\n <md-option ng-value="\'ja\'">Japanese</md-option>\n <md-option ng-value="\'ko\'">Korean (South Korea)</md-option>\n <md-option ng-value="\'nl\'">Dutch</md-option>\n <md-option ng-value="\'no\'">Norwegian</md-option>\n <md-option ng-value="\'pt\'">Portuguese (European)</md-option>\n <md-option ng-value="\'pt-br\'">Portuguese (Nrazilian)</md-option>\n <md-option ng-value="\'ru\'">Russian</md-option>\n <md-option ng-value="\'sv\'">Swedish</md-option>\n <md-option ng-value="\'th\'">Thai</md-option>\n <md-option ng-value="\'uk\'">Ukrainian</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese (Simplified)</md-option>\n <md-option ng-value="\'zh-HK\'">Chinese (Hong Kong)</md-option>\n <md-option ng-value="\'zh-TW\'">Chinese (Traditional)</md-option>\n </md-select>\n <div ng-messages="whatsappAccountFormApp[\'language\'].$error" ng-show="whatsappAccountFormApp[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.LANGUAGE_REQUIRED">language field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.dialogflow.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="WHATSAPP.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="whatsappAccountFormApp[\'welcomemessage\'].$error" ng-show="whatsappAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.WELCOMEMESSAGE_REQUIRED">welcomemessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="WHATSAPP.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/dialogflowv2/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.PROJECTID">ProjectID</label>\n <input type="text" name="projectId" ng-model="vm.dialogflowv2.projectId" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'projectId\'].$error" ng-show="whatsappAccountFormApp[\'projectId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.PROJECTID_REQUIRED">ProjectID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.CLIENTEMAIL">ClientEmail</label>\n <input type="text" name="clientEmail" ng-model="vm.dialogflowv2.clientEmail" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'clientEmail\'].$error" ng-show="whatsappAccountFormApp[\'clientEmail\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.CLIENTEMAIL_REQUIRED">ClientEmail field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.PRIVATEKEY">PrivateKey</label>\n <textarea name="privateKey" ng-model="vm.dialogflowv2.privateKey" required></textarea>\n\n <div ng-messages="whatsappAccountFormApp[\'privateKey\'].$error" ng-show="whatsappAccountFormApp[\'privateKey\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.PRIVATEKEY_REQUIRED">PrivateKey field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflowv2.language" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'zh-HK\'">Chinese (Cantonese)</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese (Simplified)</md-option>\n <md-option ng-value="\'zh-TW\'">Chinese (Traditional)</md-option>\n <md-option ng-value="\'da\'">Danish</md-option>\n <md-option ng-value="\'nl\'">Dutch</md-option>\n <md-option ng-value="\'en\'">English</md-option>\n <md-option ng-value="\'en-AU\'">English (Australia)</md-option>\n <md-option ng-value="\'en-CA\'">English (Canada)</md-option>\n <md-option ng-value="\'en-GB\'">English (Great Britain)</md-option>\n <md-option ng-value="\'en-IN\'">English (India)</md-option>\n <md-option ng-value="\'en-US\'">English (US)</md-option>\n <md-option ng-value="\'fr\'">French</md-option>\n <md-option ng-value="\'fr-CA\'">French (Canada)</md-option>\n <md-option ng-value="\'fr-FR\'">\'France (France)</md-option>\n <md-option ng-value="\'de\'">German</md-option>\n <md-option ng-value="\'hi\'">Hindi</md-option>\n <md-option ng-value="\'id\'">Indonesian</md-option>\n <md-option ng-value="\'it\'">Italian</md-option>\n <md-option ng-value="\'ja\'">Japanese</md-option>\n <md-option ng-value="\'ko\'">Korean</md-option>\n <md-option ng-value="\'no\'">Norwegian</md-option>\n <md-option ng-value="\'pl\'">Polish</md-option>\n <md-option ng-value="\'pt-BR\'">Portuguese (Brazil)</md-option>\n <md-option ng-value="\'pt-PT\'">Portuguese (Portugal)</md-option>\n <md-option ng-value="\'ru\'">Russian</md-option>\n <md-option ng-value="\'es\'">Spanish</md-option>\n <md-option ng-value="\'es-419\'">Spanish (Latin America)</md-option>\n <md-option ng-value="\'es-ES\'">Spanish (Spain)</md-option>\n <md-option ng-value="\'sw\'">Swedish</md-option>\n <md-option ng-value="\'th\'">Thai</md-option>\n <md-option ng-value="\'tr\'">Turkish</md-option>\n <md-option ng-value="\'uk\'">Ukrainian</md-option>\n </md-select>\n <div ng-messages="whatsappAccountFormApp[\'language\'].$error" ng-show="whatsappAccountFormApp[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.LANGUAGE_REQUIRED">language field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.dialogflowv2.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="WHATSAPP.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="whatsappAccountFormApp[\'welcomemessage\'].$error" ng-show="whatsappAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n\n <div ng-message="md-maxlength">\n <span translate="WHATSAPP.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/gotoif/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.CONDITION">Condition</label>\n <input type="text" name="condition" ng-model="vm.gotoif.condition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'condition\'].$error" ng-show="whatsappAccountFormApp[\'condition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.CONDITION_REQUIRED">Condition field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.TRUEPRIORITY">truepriority</label>\n <input type="number" name="truepriority" ng-model="vm.gotoif.truepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'truepriority\'].$error" ng-show="whatsappAccountFormApp[\'truepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TRUEPRIORITY_REQUIRED">truepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.ERRORS.TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">truepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.FALSEPRIORITY">falsepriority</label>\n <input type="number" name="falsepriority" ng-model="vm.gotoif.falsepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'falsepriority\'].$error" ng-show="whatsappAccountFormApp[\'falsepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.FALSEPRIORITY_REQUIRED">falsepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.ERRORS.FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">falsepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/gotop/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.PRIORITY">Priority</label>\n <input type="number" name="priority" ng-model="vm.gotop.priority" min="0" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'priority\'].$error" ng-show="whatsappAccountFormApp[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.ERRORS.PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Priority must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/interval/dialog.html",'<md-dialog class="interval-dialog" aria-label="New Interval">\n <form name="intervalForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select ng-model="vm.type" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="type" ng-repeat=\'type in vm.types\'>{{ type | ucfirst }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.type === \'list\'">\n <label translate="TOOLS.INTERVALS">Intervals</label>\n <md-select ng-model="vm.interval.IntervalId" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals">{{ interval.name }}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!-- TIMERANGE START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.TIME_RANGE">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <div class="md-block" flex>\n <mdp-time-picker name="timeRangeFrom" mdp-placeholder="FROM" ng-model="vm.timeRangeFrom" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <div ng-messages="intervalForm.timeRangeFrom.$error" ng-show="intervalForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_FROM_INVALID">Time Range From field is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n <div class="md-block" flex ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_INVALID">Time Range To field is invalid</span>\n </div>\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </div>\n \x3c!-- TIMERANGE END --\x3e\n\n \x3c!-- DAYSOFWEEK START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.WEEK_DAYS">Week Days</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.dayOfWeekFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container flex class="md-block" ng-if="vm.dayOfWeekFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="dayOfWeekTo" ng-model="vm.dayOfWeekTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- DAYSOFWEEK END --\x3e\n\n \x3c!-- MONTHDAY START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTH_DAYS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthDayFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthDayFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthDayTo" ng-model="vm.monthDayTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTHDAY END --\x3e\n\n \x3c!-- MONTH START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTHS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n </md-select>\n\n </md-input-container>\n\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthTo" ng-model="vm.monthTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTH END --\x3e\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="!vm.newInterval && vm.crudPermissions.canEdit" ng-click="vm.saveInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid || intervalForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.newInterval && vm.crudPermissions.canEdit" ng-click="vm.addNewInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_INTERVAL" translate-attr-aria-label="TOOLS.ADD_INTERVAL">\n ADD INTERVAL\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/noop/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.VALUE">Value</label>\n <input type="text" name="value" ng-model="vm.noop.value" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'value\'].$error" ng-show="whatsappAccountFormApp[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/queue/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.QUEUE">Queue</label>\n <md-select name="queue" ng-model="vm.queue.queue" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="queue.name" ng-repeat="queue in vm.queues" ng-disabled="queue.canSelect === false">{{ queue.name }}</md-option>\n </md-select>\n <div ng-messages="whatsappAccountFormApp[\'queue\'].$error" ng-show="whatsappAccountFormApp[\'queue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.queue.timeout" min="0" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'timeout\'].$error" ng-show="whatsappAccountFormApp[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="WHATSAPP.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/system/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.COMMAND">Command</label>\n <input type="text" name="command" ng-model="vm.system.command" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'command\'].$error" ng-show="whatsappAccountFormApp[\'command\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.COMMAND_REQUIRED">Command field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.VARIABLE">Variable</label>\n <md-select name="variable" ng-model="vm.system.variable" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables" ng-disabled="variable.canSelect === false">{{ variable.name }}</md-option>\n </md-select>\n <div ng-messages="whatsappAccountFormApp[\'variable\'].$error" ng-show="whatsappAccountFormApp[\'variable\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.VARIABLE_REQUIRED">Variable field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/tag/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.TAG">Tag</label>\n <md-select name="tag" ng-model="vm.tag.tag" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags" ng-disabled="tag.canSelect === false">{{ tag.name }}</md-option>\n </md-select>\n <div ng-messages="whatsappAccountFormApp[\'tag\'].$error" ng-show="whatsappAccountFormApp[\'tag\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TAG_REQUIRED">Tag field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/view.html",'<div id="whatsapp-whatsappAccount" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-whatsappAccounts-button md-icon-button" aria-label="Go to whatsappAccounts" ng-click="vm.gotoWhatsappAccounts()" translate translate-attr-aria-label="WHATSAPP.GO_TO_WHATSAPPACCOUNTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="whatsappAccount-image" hide-xs>\n <img ng-src="assets/images/business/whatsappAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.whatsappAccount.id}}\n <span ng-if="vm.whatsappAccount.name">{{vm.whatsappAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="WHATSAPP.CREATED_AT"></span> <span>{{vm.whatsappAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.whatsappAccount, $event)" class="md-fab md-warn md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="WHATSAPP.AGENTADD_WHATSAPPACCOUNT"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveWhatsappAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (notificationForm.$invalid) || (transferForm.$invalid) || (proxyForm.$invalid) || (dispositionForm.$invalid) || (whatsappDispositionsForm.$invalid) || (whatsappCannedAnswersForm.$invalid) || (actionsForm.$invalid) || (interactionsForm.$invalid)" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="WHATSAPP.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="whatsappAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="WHATSAPP.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.whatsappAccount.name" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="WHATSAPP.HELP.NAME"></span></div>\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.KEY">key</label>\n <input type="text" name="key" ng-model="vm.whatsappAccount.key" md-maxlength="5" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'key\'].$error" ng-show="generalForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="WHATSAPP.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.LIST">List</label>\n <md-select name="ListId" ng-model="vm.whatsappAccount.ListId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="WHATSAPP.HELP.LIST"></span></div>\n <div ng-messages="generalForm[\'ListId\'].$error" ng-show="generalForm[\'ListId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.whatsappAccount.type == \'twilio\'" class="md-block">\n <label translate="WHATSAPP.ACCOUNTSID">AccountSID</label>\n <input type="text" name="accountSid" ng-model="vm.whatsappAccount.accountSid" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'accountSid\'].$error" ng-show="generalForm[\'accountSid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.ACCOUNTSID_REQUIRED">AccountSID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.whatsappAccount.type == \'twilio\'" class="md-block">\n <label translate="WHATSAPP.AUTHTOKEN">AuthToken</label>\n <input type="text" name="authToken" ng-model="vm.whatsappAccount.authToken" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'authToken\'].$error" ng-show="generalForm[\'authToken\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.AUTHTOKEN_REQUIRED">AuthToken field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.PHONE">phone</label>\n <input type="text" name="phone" ng-model="vm.whatsappAccount.phone" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'phone\'].$error" ng-show="generalForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.PHONE_REQUIRED">phone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.RECEIVEURL">receiveUrl</label>\n <div layout="row" layout-align="center center">\n <button class="md-button md-fab md-mini md-primary" ngclipboard data-clipboard-target="#copytoclipboard-receiveUrl" ngclipboard-success="vm.alert({title: \'copied to clipboard\', msg: e.text });" ngclipboard-error="vm.alert({title: \'error\', msg: \'copy to clipboard failed\'});">\n <md-icon md-font-icon="icon-clipboard-text"></md-icon>\n </button>\n <input class="md-input" type="text" id="copytoclipboard-receiveUrl" name="receiveUrl" ng-value="vm.whatsappAccount.remote + \'/api/whatsapp/accounts/\' + vm.whatsappAccount.id + \'/notify?token=\' + vm.whatsappAccount.token" ng-readonly="true">\n </div>\n <div class="hint"><span translate="WHATSAPP.HELP.RECEIVEURL"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.whatsappAccount.type == \'twillo\'" class="md-block">\n <label translate="WHATSAPP.DELIVERYREPORTURL">deliveryReportUrl</label>\n <div layout="row" layout-align="center center">\n <button class="md-button md-fab md-mini md-primary" ngclipboard data-clipboard-target="#copytoclipboard-deliveryReportUrl" ngclipboard-success="vm.alert({title: \'copied to clipboard\', msg: e.text });" ngclipboard-error="vm.alert({title: \'error\', msg: \'copy to clipboard failed\'});">\n <md-icon md-font-icon="icon-clipboard-text"></md-icon>\n </button>\n <input class="md-input" type="text" id="copytoclipboard-deliveryReportUrl" name="deliveryReportUrl" ng-value="vm.whatsappAccount.remote + \'/api/whatsapp/accounts/\' + vm.whatsappAccount.id + \'/status?token=\' + vm.whatsappAccount.token + (vm.whatsappAccount.type == \'csc\' ? \'&message-id={message-id}&state={state}\' : \'\')" ng-readonly="true">\n </div>\n <div class="hint"><span translate="WHATSAPP.HELP.DELIVERYREPORTURL"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.WAITFORTHEASSIGNEDAGENT">WaitForTheAssignedAgent</label>\n <input type="number" name="waitForTheAssignedAgent" ng-model="vm.whatsappAccount.waitForTheAssignedAgent" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'waitForTheAssignedAgent\'].$error" ng-show="generalForm[\'waitForTheAssignedAgent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.WAITFORTHEASSIGNEDAGENT_REQUIRED">WaitForTheAssignedAgent field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="WHATSAPP.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.whatsappAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="whatsappAccount-detail-form-container notification md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="WHATSAPP.NOTIFICATION">NOTIFICATION</div>\n </div>\n <form name="notificationForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.whatsappAccount.notificationShake" aria-label="notificationShake" ng-disabled="!vm.crudPermissions.canEdit"><span translate="WHATSAPP.NOTIFICATIONSHAKE">notificationShake</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.whatsappAccount.notificationSound" aria-label="notificationSound" ng-disabled="!vm.crudPermissions.canEdit"><span translate="WHATSAPP.NOTIFICATIONSOUND">notificationSound</span></md-switch>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="WHATSAPP.NOTIFICATIONTEMPLATE">notificationTemplate</label>\n <textarea aria-label="notificationTemplate notificationTemplate" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', removePlugins: \'magicline\' }" ng-model="vm.whatsappAccount.notificationTemplate"></textarea>\n </div>\n\n </form>\n </div>\n <div class="whatsappAccount-detail-form-container transfer md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="WHATSAPP.TRANSFER">TRANSFER</div>\n </div>\n <form name="transferForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.whatsappAccount.queueTransfer" aria-label="queueTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="WHATSAPP.QUEUETRANSFER">queueTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.whatsappAccount.queueTransfer == true" class="md-block">\n <label translate="WHATSAPP.QUEUETRANSFERTIMEOUT">queueTransferTimeout</label>\n <input type="number" name="queueTransferTimeout" ng-model="vm.whatsappAccount.queueTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'queueTransferTimeout\'].$error" ng-show="transferForm[\'queueTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.QUEUETRANSFERTIMEOUT_REQUIRED">queueTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="WHATSAPP.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.whatsappAccount.agentTransfer" aria-label="agentTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="WHATSAPP.AGENTTRANSFER">agentTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.whatsappAccount.agentTransfer == true" class="md-block">\n <label translate="WHATSAPP.AGENTTRANSFERTIMEOUT">agentTransferTimeout</label>\n <input type="number" name="agentTransferTimeout" ng-model="vm.whatsappAccount.agentTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'agentTransferTimeout\'].$error" ng-show="transferForm[\'agentTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.AGENTTRANSFERTIMEOUT_REQUIRED">agentTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="WHATSAPP.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="WHATSAPP.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <md-tab-body>\n <div class="whatsappAccount-detail-form-container proxy md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="WHATSAPP.PROXY">PROXY</div>\n </div>\n <form name="proxyForm" novalidate>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.MOTIONPROXY">MotionProxy</label>\n <input type="url" name="remote" ng-model="vm.whatsappAccount.remote" md-maxlength="255" value="LOCALIP" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="WHATSAPP.HELP.MOTIONPROXY"></span></div>\n <div ng-messages="proxyForm[\'remote\'].$error" ng-show="proxyForm[\'remote\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.MOTIONPROXY_REQUIRED">MotionProxy field is required</span>\n </div>\n <div ng-message="url">\n <span translate="WHATSAPP.ERRORS.MOTIONPROXY_MUST_VALID_URL">MotionProxy must be a valid url http://www.xcally.com</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="WHATSAPP.ERRORS.MOTIONPROXY_MAX_LENGTH" translate-values=\'{max: 255}\'>MotionProxy must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.TOKEN">token</label>\n <input type="text" name="token" ng-model="vm.whatsappAccount.token" disabled>\n\n <div ng-messages="proxyForm[\'token\'].$error" ng-show="proxyForm[\'token\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TOKEN_REQUIRED">token field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="whatsappAccount-detail-form-container disposition md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="WHATSAPP.DISPOSITION">DISPOSITION</div>\n </div>\n <form name="dispositionForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.whatsappAccount.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="WHATSAPP.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.whatsappAccount.mandatoryDisposition" class="md-block">\n <label translate="WHATSAPP.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.whatsappAccount.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="WHATSAPP.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="dispositionForm[\'mandatoryDispositionPauseId\'].$error" ng-show="dispositionForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="WHATSAPP.DISPOSITIONS">DISPOSITIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div ng-controller="WhatsappAccountDispositionsController as vm_dc" ng-init="vm_dc.init(vm.whatsappAccount, vm.crudPermissions)">\n <div layout="row">\n <div class="column" flex="20">\n <md-card class="mt-0">\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm_dc.query.level = null; vm_dc.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\n </button>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm_dc.query.level" ng-change="vm_dc.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm_dc.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n <div class="whatsappAccount-detail-form-container whatsappdispositions md-background-bg md-whiteframe-1dp" flex="80">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedWhatsappAccountDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="WHATSAPP.DISPOSITIONS">Dispositions</span>\n <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditDisposition($event)" aria-label="Add whatsapp dispositions" translate translate-attr-label="WHATSAPP.ADD_DISPOSITION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedDispositions.length}}\n {{vm_dc.selectedDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedDispositions" csv-label="true" filename="whatsappAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedDispositions($event)" aria-label="delete selected" translate translate-attr-label="WHATSAPP.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_dc.selectedDispositions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getDispositions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'WHATSAPP.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'WHATSAPP.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'WHATSAPP.DESCRIPTION\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_dc.dispositions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="WHATSAPP.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="disposition" md-select-id="id" ng-repeat="disposition in vm_dc.dispositions.rows">\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm_dc.levels[disposition.level] }}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="WHATSAPP.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(disposition, $event)" translate="TOOLS.DELETE_DISPOSITION">\n Delete Disposition\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'WHATSAPP.PAGE\' | translate}}:\', rowsPerPage: \'{{\'WHATSAPP.ROWSPERPAGE\' | translate}}:\', of: \'{{\'WHATSAPP.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.dispositions.count}}" md-on-paginate="vm_dc.getDispositions" md-page-select>\n </md-table-pagination>\n </div>\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="WHATSAPP.CANNEDANSWERS">CANNEDANSWERS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="whatsappAccount-detail-form-container whatsappcannedanswers md-background-bg md-whiteframe-1dp">\n <div ng-controller="WhatsappAccountWhatsappCannedAnswersController as vm_dc" ng-init="vm_dc.init(vm.whatsappAccount, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedWhatsappAccountWhatsappCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="WHATSAPP.WHATSAPPCANNEDANSWERS">WhatsappCannedAnswers</span>\n <ms-search-bar on-search="vm_dc.getWhatsappAccountWhatsappCannedAnswers()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditWhatsappAccountWhatsappCannedAnswer($event)" aria-label="add whatsappCannedAnswer" translate translate-attr-label="WHATSAPP.ADD_WHATSAPPCANNEDANSWER">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedWhatsappAccountWhatsappCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedWhatsappAccountWhatsappCannedAnswers.length}} {{vm_dc.selectedWhatsappAccountWhatsappCannedAnswers.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedWhatsappAccountWhatsappCannedAnswers" csv-label="true" filename="whatsappAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedWhatsappAccountWhatsappCannedAnswers($event)" aria-label="delete selected" translate translate-attr-label="WHATSAPP.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedWhatsappAccountWhatsappCannedAnswers" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getWhatsappAccountWhatsappCannedAnswers">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'WHATSAPP.ID\' | translate }}\n </th>\n <th md-column md-order-by="key">\n {{ \'WHATSAPP.KEY\' | translate }}\n </th>\n <th md-column md-order-by="value">\n {{ \'WHATSAPP.VALUE\' | translate }}\n </th>\n <th md-column md-order-by="description">\n {{ \'WHATSAPP.DESCRIPTION\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'WHATSAPP.CREATED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="whatsappCannedAnswer" md-select-id="id" ng-repeat="whatsappCannedAnswer in vm_dc.whatsappAccountWhatsappCannedAnswers.rows">\n <td ng-click="vm_dc.createOrEditWhatsappAccountWhatsappCannedAnswer($event, whatsappCannedAnswer)" md-cell>\n {{whatsappCannedAnswer.id}}\n </td>\n <td ng-click="vm_dc.createOrEditWhatsappAccountWhatsappCannedAnswer($event, whatsappCannedAnswer)" md-cell>\n {{whatsappCannedAnswer.key}}\n </td>\n <td ng-click="vm_dc.createOrEditWhatsappAccountWhatsappCannedAnswer($event, whatsappCannedAnswer)" md-cell>\n {{whatsappCannedAnswer.value}}\n </td>\n <td ng-click="vm_dc.createOrEditWhatsappAccountWhatsappCannedAnswer($event, whatsappCannedAnswer)" md-cell>\n {{whatsappCannedAnswer.description}}\n </td>\n <td ng-click="vm_dc.createOrEditWhatsappAccountWhatsappCannedAnswer($event, whatsappCannedAnswer)" md-cell>\n {{ whatsappCannedAnswer.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="WHATSAPP.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditWhatsappAccountWhatsappCannedAnswer($event, whatsappCannedAnswer)" translate="WHATSAPP.EDIT_WHATSAPPCANNEDANSWER">\n Edit WhatsappCannedAnswer\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(whatsappCannedAnswer, $event)" translate="WHATSAPP.DELETE_WHATSAPPCANNEDANSWER">\n Delete WhatsappCannedAnswer\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.whatsappAccountWhatsappCannedAnswers.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="WHATSAPP.NO_WHATSAPPCANNEDANSWER_AVAILABLE">No whatsappcannedanswer available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'WHATSAPP.PAGE\' | translate}}:\', rowsPerPage: \'{{\'WHATSAPP.ROWSPERPAGE\' | translate}}:\', of: \'{{\'WHATSAPP.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.whatsappAccountWhatsappCannedAnswers.count}}" md-on-paginate="vm_dc.getWhatsappAccountWhatsappCannedAnswers" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="WHATSAPP.ACTIONS">ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="whatsappAccount-detail-form-container actions md-background-bg md-whiteframe-1dp">\n <div ng-controller="WhatsappAccountActionsController as vm_ac" ng-init="vm_ac.init(vm.whatsappAccount, vm.crudPermissions)" class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- SIDENAV --\x3e\n <div class="navigation-simple sidenav main-sidenav md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="20" ng-if="vm_ac.crudPermissions.canEdit">\n \x3c!-- SIDENAV CONTENT --\x3e\n <md-list class="no-padding">\n <md-subheader class="md-no-sticky">\n <span translate="VOICE.APPLICATIONS_LIST">\n Applications List\n </span>\n </md-subheader>\n </md-list>\n <md-divider></md-divider>\n <md-list ng-sortable="vm_ac.list">\n <md-list-item class="handle" ng-repeat="a in vm_ac.apps">\n <md-icon md-font-icon="{{a.icon}}" class="s16"></md-icon>\n <p class="text-truncate" translate="WHATSAPP.{{(a.appAlias || a.appType) | uppercase}}">{{a.appAlias || a.appType}}</p>\n </md-list-item>\n </md-list>\n \x3c!-- / SIDENAV CONTENT --\x3e\n </div>\n \x3c!-- / SIDENAV --\x3e\n <div flex></div>\n \x3c!-- MAIN --\x3e\n <div class="main scrollable md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="{{vm_ac.crudPermissions.canEdit ? 75 : 100}}">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_ac.selectedWhatsappAccountApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">Drag & Drop Routing</span>\n <div flex></div>\n <ms-search-bar on-search="vm_ac.query.filter = query" on-collapse="vm_ac.query.filter = undefined" debounce="300"></ms-search-bar>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_ac.selectedWhatsappAccountApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_ac.selectedWhatsappAccountApps.length}} {{vm_ac.selectedWhatsappAccountApps.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_ac.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_ac.deleteSelectedWhatsappAccountApps($event)" aria-label="delete selected" translate translate-attr-label="WHATSAPP.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n \x3c!-- QUEUES TABLE --\x3e\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_ac.selectedWhatsappAccountApps">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column width="10px">\n <span translate="VOICE.PRIORITY">Priority</span>\n </th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </th>\n <th md-column width="10px"></th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body ng-sortable="vm_ac.applications">\n <tr md-row md-select="app" md-select-id="id" ng-repeat="app in vm_ac.whatsappAccountApps.rows | filter: vm_ac.query.filter">\n <td md-cell>\n <md-icon md-font-icon="icon-drag-vertical" class="s16 handle"></md-icon>\n </td>\n <td md-cell ng-click="vm_ac.editWhatsappAccountApp($event, $index)"><span>{{app.priority}}</span></td>\n <td md-cell ng-click="vm_ac.editWhatsappAccountApp($event, $index)">{{app.app.toLowerCase() === \'agi\' ? \'Cally-Square\' : app.app | ucfirst}}<span ng-if="app.appType.toLowerCase() === \'custom\'">*</span></td>\n <td md-cell ng-click="vm_ac.editWhatsappAccountApp($event, $index)"><span class="text-truncate" style="width:200px">{{app.appdata}}</span></td>\n <td md-cell ng-click="vm_ac.editInterval($event, $index)">{{app.IntervalId ? \'From List\' : app.interval}}</td>\n <td md-cell>\n <md-button ng-click="vm_ac.editInterval($event, $index)" class="md-icon-button" aria-label="Interval">\n <md-icon md-font-icon="icon-timer"></md-icon>\n <md-tooltip>\n {{app.IntervalId ? \'From List\' : (app.interval === \'*,*,*,*\' ? \'Always\' : \'Custom\')}}\n </md-tooltip>\n </md-button>\n </td>\n <td md-cell class="actions" ng-if="!vm_ac.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_ac.crudPermissions.canEdit">\n <md-button ng-click="vm_ac.editWhatsappAccountApp($event, $index)" translate="VOICE.EDIT_APP">\n Edit App\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_ac.crudPermissions.canEdit">\n <md-button ng-click="vm_ac.editInterval($event, $index)" translate="VOICE.EDIT_INTERVAL">\n Edit Interval\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_ac.crudPermissions.canDelete">\n <md-button ng-click="vm_ac.deleteConfirm(app, $index, $event)" translate="VOICE.DELETE_APP">\n Delete App\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-hide="vm_ac.whatsappAccountApps.rows.length">\n <td md-cell colspan="7">\n <span class="text-boxed-light" translate="VOICE.NO_APPS_AVAILABLE">No apps available</span>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n \x3c!-- / QUEUES TABLE --\x3e\n\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="WHATSAPP.INTERACTIONS">INTERACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="whatsappAccount-detail-form-container interactions md-background-bg md-whiteframe-1dp">\n <div ng-controller="WhatsappAccountInteractionsController as vm_dc" ng-init="vm_dc.init(vm.whatsappAccount, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedWhatsappAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="WHATSAPP.INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm_dc.getWhatsappAccountInteractions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_dc.quickFilters" query="vm_dc.query" search="vm_dc.getWhatsappAccountInteractions()"></ms-quick-filter>\n <div layout="column">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini md-accent-bg\': vm_dc.query.search }" aria-label="Filter" translate translate-attr-aria-label="DASHBOARDS.FILTER" ng-click="vm_dc.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm_dc.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'blink\': vm_dc.query.search }"></md-icon>\n </md-button>\n </div>\n <md-button class="md-icon-button" ng-click="vm_dc.getWhatsappAccountInteractions()" aria-label="refresh Interactions" translate translate-attr-label="WHATSAPP.REFRESH_INTERACTIONS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedWhatsappAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedWhatsappAccountInteractions.length}} {{vm_dc.selectedWhatsappAccountInteractions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedWhatsappAccountInteractions" csv-label="true" filename="whatsappAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedWhatsappAccountInteractions($event)" aria-label="delete selected" translate translate-attr-label="WHATSAPP.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedWhatsappAccountInteractions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getWhatsappAccountInteractions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'WHATSAPP.ID\' | translate }}\n </th>\n <th md-column class="no-padding">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column md-order-by="contactName">\n {{ \'WHATSAPP.CONTACT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'WHATSAPP.STARTEDAT\' | translate }}\n </th>\n <th md-column md-order-by="lastMsgAt">\n {{ \'WHATSAPP.LASTMESSAGE\' | translate }}\n </th>\n <th md-column md-order-by="closed">\n {{ \'WHATSAPP.STATUS\' | translate }}\n </th>\n <th md-column>\n {{ \'WHATSAPP.AGENT\' | translate }}\n </th>\n <th md-column md-order-by="tag">\n {{ \'WHATSAPP.TAGS\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="interaction" md-select-id="id" ng-repeat="interaction in vm_dc.whatsappAccountInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td md-cell>\n {{interaction.id}}\n </td>\n <td md-cell class="no-padding">\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="user in interaction.Users">{{ user.fullname | translate }}\n <span ng-if="!$last">, </span>\n </span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg md-primary-bg" layout-margin>{{ interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.attach">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td md-cell privacy ng-cloak>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'margin-bottom-0\' : interaction.contactInfo}" layout-margin>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text margin-top-0" layout-margin>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td md-cell>\n {{ interaction.createdAt | formatdate }}\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}"></md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="text-truncate">{{ interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n </td>\n <td md-cell>\n <span ng-if="interaction.closed === 0" class="green-fg">\n {{ \'WHATSAPP.OPENED\' | translate }}\n <span ng-if="interaction.substatus">\n - {{ interaction.substatus }}\n </span>\n </span>\n <span ng-if="interaction.closed === 1" class="red-fg">\n {{ \'WHATSAPP.CLOSED\' | translate }}\n <span ng-if="interaction.disposition">\n - {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}\n </span>\n <md-tooltip class="multiline">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n </span>\n </td>\n\n <td md-cell>\n {{interaction.Owner.name}}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="WHATSAPP.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm_dc.spywhatsappInteraction($event, interaction)" translate="WHATSAPP.SPYINTERACTION">\n Spy Interaction\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.role === \'admin\' || vm_dc.userProfile.downloadOmnichannelInteractions">\n <md-button class="md-primary" ng-click="vm_dc.whatsappInteractionDownload(interaction, $event)" translate="WHATSAPP.DOWNLOAD_INTERACTION">\n Download\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(interaction, $event)" translate="WHATSAPP.DELETE_INTERACTION">\n Delete Interaction\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.whatsappAccountInteractions.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="WHATSAPP.NO_INTERACTION_AVAILABLE">No interaction available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'WHATSAPP.PAGE\' | translate}}:\', rowsPerPage: \'{{\'WHATSAPP.ROWSPERPAGE\' | translate}}:\', of: \'{{\'WHATSAPP.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.whatsappAccountInteractions.count}}" md-on-paginate="vm_dc.getWhatsappAccountInteractions" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/whatsappCannedAnswers/dialog.html",'<md-dialog class="whatsappCannedAnswer-dialog" aria-label="New WhatsappCannedAnswer">\n <form name="whatsappCannedAnswerForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.KEY">Key</label>\n <input type="" name="key" ng-model="vm.whatsappCannedAnswer.key" md-maxlength="255" ng-required="true" autofocus>\n\n <div ng-messages="whatsappCannedAnswerForm[\'key\'].$error" ng-show="whatsappCannedAnswerForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.KEY_REQUIRED">Key field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.VALUE">Value</label>\n <textarea name="value" ng-model="vm.whatsappCannedAnswer.value" required></textarea>\n\n <div ng-messages="whatsappCannedAnswerForm[\'value\'].$error" ng-show="whatsappCannedAnswerForm[\'value\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.whatsappCannedAnswer.description">\n\n <div ng-messages="whatsappCannedAnswerForm[\'description\'].$error" ng-show="whatsappCannedAnswerForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newWhatsappCannedAnswer" ng-click="vm.saveWhatsappCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="whatsappCannedAnswerForm.$invalid || whatsappCannedAnswerForm.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newWhatsappCannedAnswer" ng-click="vm.addNewWhatsappCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="whatsappCannedAnswerForm.$invalid" aria-label="ADD" translate="WHATSAPP.ADD_WHATSAPPCANNEDANSWER" translate-attr-aria-label="WHATSAPP.ADD_WHATSAPPCANNEDANSWER">\n ADD WHATSAPPCANNEDANSWER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newWhatsappCannedAnswer" ng-click="vm.deleteWhatsappCannedAnswer($event)" aria-label="DELETE" translate translate-attr-aria-label="WHATSAPP.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="WHATSAPP.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/whatsappAccounts.html",'<div id="whatsappAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-whatsapp" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="WHATSAPP.WHATSAPPACCOUNTS">WhatsappAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="WHATSAPP.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedWhatsappAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedWhatsappAccounts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="WHATSAPP.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-whatsappAccounts-count">\n <span>{{vm.selectedWhatsappAccounts.length}}</span>\n <span translate="WHATSAPP.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="WHATSAPP.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllWhatsappAccounts()" translate="WHATSAPP.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectWhatsappAccounts()" translate="WHATSAPP.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedWhatsappAccounts" csv-label="true" filename="whatsappAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedWhatsappAccounts($event)" aria-label="delete selected" translate translate-attr-label="WHATSAPP.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- WHATSAPPACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedWhatsappAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getWhatsappAccounts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'WHATSAPP.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'WHATSAPP.NAME\' | translate }}</th>\n <th md-column md-order-by="key">{{ \'WHATSAPP.KEY\' | translate }}</th>\n <th md-column md-order-by="ListId">{{ \'WHATSAPP.LIST\' | translate }}</th>\n <th md-column md-order-by="type">{{ \'WHATSAPP.TYPE\' | translate }}</th>\n <th md-column md-order-by="phone">{{ \'WHATSAPP.PHONE\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'WHATSAPP.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.whatsappAccounts.rows.length">\n <td md-cell colspan="8">\n <div layout="row" layout-align="center center">\n <span translate="WHATSAPP.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="whatsappAccount" md-select-id="id" ng-repeat="whatsappAccount in vm.whatsappAccounts.rows">\n <td md-cell ng-if="whatsappAccount.userpic"><img class="avatar" alt="{{whatsappAccount.name}}" ng-src="api/users/{{whatsappAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!whatsappAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{whatsappAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappAccount, ev) : vm.createOrEditWhatsappAccount($event, whatsappAccount)" md-cell class="id ">{{whatsappAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappAccount, ev) : vm.createOrEditWhatsappAccount($event, whatsappAccount)" md-cell class="name ">{{whatsappAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappAccount, ev) : vm.createOrEditWhatsappAccount($event, whatsappAccount)" md-cell class="key ">{{whatsappAccount.key}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappAccount, ev) : vm.createOrEditWhatsappAccount($event, whatsappAccount)" md-cell class="ListId ">{{ (vm.lists | filter : {\'id\':whatsappAccount.ListId} : true)[0].name }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappAccount, ev) : vm.createOrEditWhatsappAccount($event, whatsappAccount)" md-cell class="type ">{{ vm.arraytype[whatsappAccount.type].option }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappAccount, ev) : vm.createOrEditWhatsappAccount($event, whatsappAccount)" md-cell class="phone ">{{whatsappAccount.phone}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappAccount, ev) : vm.createOrEditWhatsappAccount($event, whatsappAccount)" md-cell class="description ">{{whatsappAccount.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="WHATSAPP.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(whatsappAccount, $event )" translate="WHATSAPP.EDIT_WHATSAPPACCOUNT">\n Edit WhatsappAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.interactionsgoto(whatsappAccount, $event )" translate="WHATSAPP.INTERACTIONS_WHATSAPPACCOUNT">\n Interactions WhatsappAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(whatsappAccount, $event )" translate="WHATSAPP.AGENTADD_WHATSAPPACCOUNT">\n AgentAdd WhatsappAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(whatsappAccount, $event )" translate="WHATSAPP.DELETE_WHATSAPPACCOUNT">\n Delete WhatsappAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'WHATSAPP.PAGE\' | translate}}:\', rowsPerPage: \'{{\'WHATSAPP.ROWSPERPAGE\' | translate}}:\', of: \'{{\'WHATSAPP.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.whatsappAccounts.count}}" md-on-paginate="vm.getWhatsappAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / WHATSAPPACCOUNT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD WHATSAPPACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-whatsappAccount-button" ng-click="vm.createOrEditWhatsappAccount($event)" aria-label="add whatsappAccount" translate translate-attr-aria-label="WHATSAPP.ADD_WHATSAPPACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD WHATSAPPACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/whatsapp/views/whatsappQueues/create/dialog.html",'<md-dialog class="whatsappQueue-dialog" aria-label="New WhatsappQueue">\n <form name="whatsappQueueForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.whatsappQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newWhatsappQueue">\n\n <div class="hint"><span translate="WHATSAPP.HELP.NAME"></span></div>\n <div ng-messages="whatsappQueueForm[\'name\'].$error" ng-show="whatsappQueueForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="WHATSAPP.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.whatsappQueue.strategy" required>\n <md-option ng-value="\'beepall\'">Beepall</md-option>\n <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n </md-select>\n <div ng-messages="whatsappQueueForm[\'strategy\'].$error" ng-show="whatsappQueueForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.AGENT_TIMEOUT">Agent_Timeout</label>\n <input type="number" name="timeout" ng-model="vm.whatsappQueue.timeout" min="1" max="2147483" value="10" ng-required="true">\n\n <div ng-messages="whatsappQueueForm[\'timeout\'].$error" ng-show="whatsappQueueForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="WHATSAPP.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.whatsappQueue.description">\n\n <div ng-messages="whatsappQueueForm[\'description\'].$error" ng-show="whatsappQueueForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newWhatsappQueue" ng-click="vm.saveWhatsappQueue()" class="send-button md-accent md-raised" ng-disabled="whatsappQueueForm.$invalid || whatsappQueueForm.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newWhatsappQueue" ng-click="vm.addNewWhatsappQueue()" class="send-button md-accent md-raised" ng-disabled="whatsappQueueForm.$invalid" aria-label="ADD" translate="WHATSAPP.ADD_WHATSAPPQUEUE" translate-attr-aria-label="WHATSAPP.ADD_WHATSAPPQUEUE">\n ADD WHATSAPPQUEUE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newWhatsappQueue" ng-click="vm.deleteWhatsappQueue($event)" aria-label="DELETE" translate translate-attr-aria-label="WHATSAPP.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="WHATSAPP.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappQueues/edit/agentadd/agentadd.html",'<md-dialog class="whatsappQueue-dialog" aria-label="whatsappQueue" ng-init="vm.onInit()">\n <form name="whatsappQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="WHATSAPP.AGENTADD_WHATSAPPQUEUE">Add Agent to whatsappQueue</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappQueues/edit/teamadd/teamadd.html",'<md-dialog class="whatsappQueue-dialog" aria-label="whatsappQueue" ng-init="vm.onInit()">\n <form name="whatsappQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="WHATSAPP.TEAMS_ASSOCIATION">Teams Association</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappQueues/edit/view.html",'<div id="whatsapp-whatsappQueue" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-whatsappQueues-button md-icon-button" aria-label="Go to whatsappQueues" ng-click="vm.gotoWhatsappQueues()" translate translate-attr-aria-label="WHATSAPP.GO_TO_WHATSAPPQUEUES">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="whatsappQueue-image" hide-xs>\n <img ng-src="assets/images/business/whatsappQueues.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.whatsappQueue.id}}\n <span ng-if="vm.whatsappQueue.name">{{vm.whatsappQueue.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="WHATSAPP.CREATED_AT"></span> <span>{{vm.whatsappQueue.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.teamadddialog(vm.whatsappQueue, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n <md-tooltip><span translate="WHATSAPP.TEAMADD_WHATSAPPQUEUE"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.whatsappQueue, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="WHATSAPP.AGENTADD_WHATSAPPQUEUE"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-plus"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveWhatsappQueue()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid)" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="WHATSAPP.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="whatsappQueue-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="WHATSAPP.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.whatsappQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="WHATSAPP.HELP.NAME"></span></div>\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="WHATSAPP.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.whatsappQueue.strategy" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'beepall\'">Beepall</md-option>\n <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n </md-select>\n <div ng-messages="generalForm[\'strategy\'].$error" ng-show="generalForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.AGENT_TIMEOUT">Agent_Timeout</label>\n <input type="number" name="timeout" ng-model="vm.whatsappQueue.timeout" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'timeout\'].$error" ng-show="generalForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="WHATSAPP.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.whatsappQueue.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/whatsapp/views/whatsappQueues/whatsappQueues.html",'<div id="whatsappQueues" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-whatsapp" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="WHATSAPP.WHATSAPPQUEUES">WhatsappQueues</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="WHATSAPP.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedWhatsappQueues.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedWhatsappQueues =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="WHATSAPP.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-whatsappQueues-count">\n <span>{{vm.selectedWhatsappQueues.length}}</span>\n <span translate="WHATSAPP.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="WHATSAPP.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllWhatsappQueues()" translate="WHATSAPP.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectWhatsappQueues()" translate="WHATSAPP.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedWhatsappQueues" csv-label="true" filename="whatsappQueues.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedWhatsappQueues($event)" aria-label="delete selected" translate translate-attr-label="WHATSAPP.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- WHATSAPPQUEUE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedWhatsappQueues" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getWhatsappQueues">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'WHATSAPP.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'WHATSAPP.NAME\' | translate }}</th>\n <th md-column md-order-by="strategy">{{ \'WHATSAPP.STRATEGY\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.whatsappQueues.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="WHATSAPP.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="whatsappQueue" md-select-id="id" ng-repeat="whatsappQueue in vm.whatsappQueues.rows">\n <td md-cell ng-if="whatsappQueue.userpic"><img class="avatar" alt="{{whatsappQueue.name}}" ng-src="api/users/{{whatsappQueue.id}}/avatar" /></td>\n <td md-cell ng-if="!whatsappQueue.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{whatsappQueue.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappQueue, ev) : vm.createOrEditWhatsappQueue($event, whatsappQueue)" md-cell class="id ">{{whatsappQueue.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappQueue, ev) : vm.createOrEditWhatsappQueue($event, whatsappQueue)" md-cell class="name ">{{whatsappQueue.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappQueue, ev) : vm.createOrEditWhatsappQueue($event, whatsappQueue)" md-cell class="strategy ">{{ vm.arraystrategy[whatsappQueue.strategy].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="WHATSAPP.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(whatsappQueue, $event )" translate="WHATSAPP.EDIT_WHATSAPPQUEUE">\n Edit WhatsappQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(whatsappQueue, $event )" translate="WHATSAPP.TEAMADD_WHATSAPPQUEUE">\n teamadd WhatsappQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(whatsappQueue, $event )" translate="WHATSAPP.AGENTADD_WHATSAPPQUEUE">\n agentadd WhatsappQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(whatsappQueue, $event )" translate="WHATSAPP.DELETE_WHATSAPPQUEUE">\n Delete WhatsappQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(whatsappQueue, $event )" translate="WHATSAPP.GOTOREALTIME_WHATSAPPQUEUE">\n goToRealtime WhatsappQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'WHATSAPP.PAGE\' | translate}}:\', rowsPerPage: \'{{\'WHATSAPP.ROWSPERPAGE\' | translate}}:\', of: \'{{\'WHATSAPP.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.whatsappQueues.count}}" md-on-paginate="vm.getWhatsappQueues" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / WHATSAPPQUEUE TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD WHATSAPPQUEUE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-whatsappQueue-button" ng-click="vm.createOrEditWhatsappQueue($event)" aria-label="add whatsappQueue" translate translate-attr-aria-label="WHATSAPP.ADD_WHATSAPPQUEUE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD WHATSAPPQUEUE BUTTON --\x3e\n</div>'),e.put("app/navigation/layouts/horizontal-navigation/navigation.html",'<div layout="row" layout-align="start center">\n <ms-navigation-horizontal></ms-navigation-horizontal>\n</div>'),e.put("app/navigation/layouts/vertical-navigation-fullwidth-toolbar-2/navigation.html",'<ms-navigation class="scrollable" folded="vm.folded" ms-scroll="vm.msScrollOptions"></ms-navigation>'),e.put("app/navigation/layouts/vertical-navigation/navigation.html",'<md-toolbar class="navigation-header md-whiteframe-1dp" layout="row" layout-align="space-between center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-image"><img src="/api/settings/1/logo" alt="logo" /></span>\n \x3c!-- <span class="logo-image"><img src="assets/images/logos/whisker_32x32.png" alt="motion_whisker_32x32" /></span> --\x3e\n <span class="logo-text text-truncate">{{vm.getLogo() | uppercase}}</span>\n </div>\n <md-icon class="fold-toggle s18" md-font-icon="icon-backburger" hide show-gt-sm ng-click="vm.toggleMsNavigationFolded()"></md-icon>\n</md-toolbar>\n\n<ms-navigation class="scrollable" folded="vm.folded" ms-scroll="vm.msScrollOptions"></ms-navigation>'),e.put("app/quick-panel/quick-panel.html",'<md-content>\n <md-tabs md-no-pagination md-swipe-content md-stretch-tabs="always">\n <md-tab>\n <md-tab-label>\n <span translate="QUICKPANEL.TODAY">TODAY</span>\n </md-tab-label>\n <md-tab-body>\n <md-content class="today-tab scrollable" ms-scroll ng-include="\'app/quick-panel/tabs/today/today-tab.html\'"></md-content>\n </md-tab-body>\n </md-tab>\n <md-tab ng-if="vm.currentUser.allowmessenger || vm.currentUser.role !== \'agent\'" ng-include="\'app/quick-panel/tabs/chat/chat-tab.html\'" ng-controller="ChatInternalController as vm_ct" ng-init="vm_ct.init(vm.license)" md-on-deselect="vm_ct.user = undefined">\n <md-tab-label>\n <div ng-if="vm.unreadTotalMessages" class="md-accent-bg unread-message-count-chat">{{vm.unreadTotalMessages}}</div>\n <span>MESSENGER</span>\n </md-tab-label>\n <md-tab-body>\n <md-content class="chat-tab scrollable" ms-scroll ng-include="\'app/quick-panel/tabs/chat/chat-tab.html\'"></md-content>\n </md-tab-body>\n </md-tab>\n <md-tab ng-if="vm.currentUser.allowmessenger || vm.currentUser.role !== \'agent\'" ng-include="\'app/quick-panel/tabs/groups/group-tab.html\'" ng-controller="ChatGroupController as vm_cg" ng-init="vm_cg.init(vm.license)" md-on-deselect="vm_cg.group = undefined">\n <md-tab-label>\n <div ng-if="vm.unreadTotalGroupMessages" class="md-accent-bg unread-message-count-chat">{{vm.unreadTotalGroupMessages}}</div>\n <span translate="QUICKPANEL.GROUPS">GROUPS</span>\n </md-tab-label>\n <md-tab-body>\n <md-content class="group-tab scrollable" ms-scroll ng-include="\'app/quick-panel/tabs/groups/group-tab.html\'"></md-content>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n</md-content>'),e.put("app/quick-panel/tabs/activity/activity-tab.html",'<md-list class="friends">\n <md-subheader class="md-no-sticky">\n <span translate="QUICKPANEL.FRIENDS">Friends</span>\n </md-subheader>\n\n <md-list-item class="friend md-3-line" ng-repeat="friend in vm.activities.friends">\n <img ng-src="{{friend.avatar}}" class="md-avatar" alt="{{friend.name}}" />\n\n <div class="status {{friend.status}}"></div>\n\n <div ng-if="contact.unread" class="md-accent-bg unread-message-count">{{contact.unread}}</div>\n\n <div class="md-list-item-text">\n <h3 class="message">{{friend.message}}</h3>\n <p class="time">{{friend.time}}</p>\n </div>\n </md-list-item>\n</md-list>\n\n<md-divider></md-divider>\n\n<md-list class="servers">\n <md-subheader class="md-no-sticky">\n <span translate="QUICKPANEL.APP_SERVERS">Application Servers</span>\n </md-subheader>\n\n <md-list-item class="server md-3-line" ng-repeat="server in vm.activities.servers">\n <md-icon md-font-icon="icon-checkbox-blank-circle" class="s16 status" ng-class="server.status"></md-icon>\n\n <div class="md-list-item-text">\n <h3>{{server.location}}</h3>\n <p>{{server.detail}}</p>\n </div>\n </md-list-item>\n</md-list>\n\n<md-divider></md-divider>\n\n<md-list class="stats">\n <md-subheader class="md-no-sticky">\n <span translate="QUICKPANEL.USER_STATS">User Stats</span>\n </md-subheader>\n\n <md-list-item class="stat md-2-line" ng-repeat="stat in vm.activities.stats">\n <div class="md-list-item-text">\n <span>{{stat.title}} ({{stat.current}} / {{stat.total}})</span>\n <md-progress-linear ng-class="stat.status" md-mode="determinate" value="{{stat.percent}}"></md-progress-linear>\n </div>\n </md-list-item>\n</md-list>'),e.put("app/quick-panel/tabs/chat/chat-tab.html",'<div class="main animate-slide-left" ng-hide="vm_ct.user">\n <md-subheader class="md-no-sticky">\n <div class="search" layout="row" layout-align="space-between center">\n <md-icon md-font-icon="icon-magnify" class="icon search-icon"></md-icon>\n <input class="search-input" ng-model="vm_ct.search.$" type="text" placeholder="Search by fullname.." translate translate-attr-placeholder="QUICKPANEL.SEARCH" flex>\n <md-select ng-model="vm_ct.search.online" class="height-50 no-padding no-margin" aria-label="Chat Tab Search">\n <md-option ng-value="undefined">All</md-option>\n <md-option ng-value="true">\n <md-icon md-font-icon="icon-checkbox-blank-circle" class="s12 green-fg"></md-icon>Online\n </md-option>\n <md-option ng-value="false">\n <md-icon md-font-icon="icon-checkbox-blank-circle" class="s12 red-fg"></md-icon>Offline\n </md-option>\n </md-select>\n </div>\n </md-subheader>\n \x3c!-- <select ng-model="vm_ct.filterOnline" class="height-50 no-padding no-margin">\n <option ng-value="undefined">All</option>\n <option ng-value="true"><md-icon md-font-icon="icon-checkbox-blank-circle" class="s12 green-fg"></md-icon>Online</option>\n <option ng-value="false"><md-icon md-font-icon="icon-checkbox-blank-circle" class="s12 red-fg"></md-icon>Offline</option>\n </select> --\x3e\n <md-divider></md-divider>\n <md-list class="recent">\n <md-list-item class="contact md-3-line" ng-if="user.id != vm_ct.currentUser.id" ng-repeat="user in vm_ct.users.rows | orderBy: \'-lastMessageAt\' | filter:vm_ct.search" ng-click="vm_ct.toggleChat(user)">\n <md-divider></md-divider>\n <img ng-src="{{user.userpic ? \'api/users/\' + user.id + \'/avatar\' : \'assets/images/avatars/profile.png\'}}" class="md-avatar" alt="{{user.fullname}}" />\n <div class="status" ng-class="{true: \'online\', false: \'offline\'}[user.online]"></div>\n <div ng-if="vm_ct.unreadMessage[user.id]" class="md-accent-bg unread-message-count">\n {{vm_ct.unreadMessage[user.id]}}</div>\n <div class="md-list-item-text">\n <div layout="row">\n <h3>{{user.fullname}}</h3>\n <md-icon ng-if="!user.allowmessenger && user.role === \'agent\'" class="s16 margin-left-5" ng-style="{\'color\': \'red\' }" md-font-icon="icon-block-helper"></md-icon>\n </div>\n <p>{{user.name}} <{{user.internal}}></p>\n <div layout="row" layout-align="start center">\n <md-icon ng-if="!user.lastMessage.read && user.lastMessage.FromId === vm_ct.currentUser.id" class="s16 no-margin" md-font-icon="icon-check"></md-icon>\n <md-icon ng-if="user.lastMessage.read && user.lastMessage.FromId === vm_ct.currentUser.id" class="s16 no-margin" md-font-icon="icon-check-all md-accent"></md-icon>\n <p>{{user.lastMessage.body | limitTo:20 }}{{user.lastMessage.body.length > 20 ? \'...\' : \'\' }}</p>\n <span flex></span>\n <p class="last-message" ng-if="user.lastMessageAt != vm_ct.standardDate">\n {{user.lastMessageAt | formatdate}}</p>\n </div>\n </div>\n </md-list-item>\n </md-list>\n</div>\n\n<div class="chat animate-slide-right" ng-show="vm_ct.user" layout="column">\n <md-toolbar class="md-accent">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n\n <div layout="row" layout-align="start center">\n <md-button class="md-icon-button" ng-click="vm_ct.toggleChat()" aria-label="Back" translate translate-attr-aria-label="QUICKPANEL.BACK">\n <md-icon md-font-icon="icon-keyboard-backspace"></md-icon>\n </md-button>\n <h4>\n <span>{{vm_ct.user.fullname}}</span>\n </h4>\n </div>\n\n <div layout="row" layout-align="end center">\n <md-button ng-if="vm_ct.license.webrtc && vm_ct.currentUser.role === \'agent\' && vm_ct.currentUser.showWebBar === 2 && vm_ct.user.role === \'agent\'" class="md-icon-button" aria-label="Call" translate translate-attr-aria-label="QUICKPANEL.CALL" ng-click="vm_ct.webcall(vm_ct.user.name)">\n <md-icon md-font-icon="icon-phone"></md-icon>\n </md-button>\n <md-menu ng-if="vm_ct.currentUser.phoneBarRemoteControl && vm_ct.currentUser.role === \'agent\' && vm_ct.currentUser.showWebBar === 0 && vm_ct.user.role === \'agent\'">\n <md-button class="md-icon-button" aria-label="Call" translate translate-attr-aria-label="QUICKPANEL.CALL" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-phone"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-disabled="!vm_ct.currentUser.phoneBarRemoteControl">\n <md-button ng-click="vm_ct.call(vm_ct.user.name)">\n {{\'DASHBOARDS.CALL_NUMBER\' | translate}} ({{vm_ct.user.name}})\n </md-button>\n </md-menu-item>\n <md-menu-item ng-disabled="!vm_ct.currentUser.phoneBarRemoteControl">\n <md-button ng-click="vm_ct.transfer(vm_ct.user.name)">\n {{\'DASHBOARDS.TRANSFER_NUMBER\' | translate}} ({{vm_ct.user.name}})\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </div>\n\n </md-toolbar>\n <md-content flex layout-paddings ms-scroll id="chat-dialog">\n <div layout="row" ng-repeat="message in vm_ct.user.messages.rows" class="md-padding message-row" ng-class="message.FromId === vm_ct.currentUser.id ? \'user\' : \'contact\'">\n <img ng-if="message.FromId === vm_ct.user.id" ng-src="{{vm_ct.user.userpic ? \'api/users/\' + vm_ct.user.id + \'/avatar\' : \'assets/images/avatars/profile.png\'}}" class="avatar" alt="{{vm_ct.user.fullname}}" />\n <img ng-if="message.FromId === vm_ct.currentUser.id" class="avatar" ng-src="{{vm_ct.currentUser.userpic ? \'api/users/\' + vm_ct.currentUser.id + \'/avatar\' : \'assets/images/avatars/profile.png\'}}">\n <div class="bubble" flex>\n <span class="message" ng-bind-html="message.body | embed:{linkTarget:\'_blank\',emoji:false,fontSmiley:false}"></span>\n <div layout="row" layout-align="end center">\n <span class="time secondary-text">{{message.createdAt | formatdate }}</span>\n <md-icon ng-if="!message.read && message.FromId === vm_ct.currentUser.id" class="s16 margin-5" md-font-icon="icon-check"></md-icon>\n <md-icon ng-if="message.read && message.FromId === vm_ct.currentUser.id" class="s16 margin-5" md-font-icon="icon-check-all md-accent"></md-icon>\n </div>\n </div>\n </div>\n </md-content>\n\n <form ng-submit="vm_ct.reply()" layout="row" class="reply" layout-align="start center">\n <textarea ng-keyup="$event.keyCode == 13 && !vm_ct.disabled? vm_ct.reply() : null" flex ng-model="vm_ct.replyMessage" placeholder="Type and hit enter to send message" translate translate-attr-placeholder="QUICKPANEL.REPLY_PLACEHOLDER" autofocus></textarea>\n\n <md-button ng-disable="vm_ct.disabled" class="md-fab md-mini" type="submit" aria-label="Send message" translate translate-attr-aria-label="QUICKPANEL.SEND_MESSAGE">\n <md-icon md-font-icon="icon-send"></md-icon>\n </md-button>\n </form>\n</div>'),e.put("app/quick-panel/tabs/groups/create/dialog.html",'<md-dialog class="group-dialog" aria-label="New ChatGroup">\n <form name="groupForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog(null)">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n \x3c!--START Error--\x3e\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n \x3c!--END Error--\x3e\n\n \x3c!--START NAME--\x3e\n <md-input-container class="md-block">\n <label translate="QUICKPANEL.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.group.name" required autofocus>\n <div ng-messages="groupForm[\'name\'].$error" ng-show="groupForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="QUICKPANEL.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="QUICKPANEL.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n \x3c!--END NAME--\x3e\n\n \x3c!--START Members--\x3e\n <md-input-container class="md-block">\n <label translate="QUICKPANEL.MEMBERS">Members</label>\n <md-contact-chips ng-model="vm.group.members" md-contacts="vm.querySearch($query)" md-contact-name="name" md-contact-image="image" md-require-match="true" md-highlight-flags="i" placeholder="{{\'QUICKPANEL.MEMBERS\' | translate}}">\n </md-contact-chips>\n <div ng-messages="groupForm[\'strategy\'].$error" ng-show="groupForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="QUICKPANEL.ERRORS.MEMBERS_REQUIRED">Members field is required</span>\n </div>\n </div>\n </md-input-container>\n \x3c!--END Members--\x3e\n\n \x3c!--START Writing--\x3e\n <md-input-container class="md-block">\n <md-switch ng-model="vm.group.write" aria-label="Write">\n {{\'QUICKPANEL.ENABLE_WRITING\' | translate}}\n </md-switch>\n </md-input-container>\n \x3c!--END Writing--\x3e\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.newChatGroup" ng-click="vm.saveChatGroup()" class="send-button md-accent md-raised" ng-disabled="groupForm.$invalid || groupForm.$pristine || (vm.group.members.length < 1)" aria-label="SAVE" translate="QUICKPANEL.SAVE" translate-attr-aria-label="QUICKPANEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/quick-panel/tabs/groups/group-tab.html",'<div class="main animate-slide-left" ng-if="!vm_cg.group">\n <md-subheader>\n <div layout="row">\n \x3c!-- START Search --\x3e\n <div class="search" layout="row" layout-align="start center" flex>\n <md-icon md-font-icon="icon-magnify" class="icon search-icon"></md-icon>\n <input ng-model="vm_cg.search" type="text" translate translate-attr-placeholder="QUICKPANEL.SEARCH" flex>\n </div>\n \x3c!-- END Search --\x3e\n\n \x3c!-- START New Group --\x3e\n <md-button ng-if="vm_cg.currentUser.role !== \'agent\'" class="md-icon-button" aria-label="New" ng-click="vm_cg.addGroup(null, $event)">\n <md-icon md-font-icon="icon-account-multiple-plus" class="icon"></md-icon>\n </md-button>\n \x3c!-- END New Group --\x3e\n </div>\n </md-subheader>\n\n <md-divider></md-divider>\n\n \x3c!-- START Groups --\x3e\n <md-list class="recent no-padding">\n \x3c!-- START Group --\x3e\n <md-list-item class="contact" ng-repeat="group in vm_cg.groupsToArray() | filter:vm_cg.search" ng-click="vm_cg.toggleChat(group)">\n <img src="assets/images/avatars/group.png" class="md-avatar" alt="{{group.name}}" />\n <div ng-if="group.unreadGroupMessages" class="md-accent-bg unread-message-count">{{group.unreadGroupMessages}}</div>\n <div class="md-list-item-text">\n <div layout="row">\n <h3>{{group.name}}</h3>\n </div>\n </div>\n\n <md-button ng-if="vm_cg.currentUser.role !== \'agent\'" class="md-secondary md-icon-button" aria-label="Remove" ng-click="vm_cg.deleteGroup(group, $event)">\n <md-icon md-font-icon="icon-delete" class="icon s18"></md-icon>\n </md-button>\n\n <md-divider ng-if="!$last"></md-divider>\n </md-list-item>\n <md-list-item>\n <div ng-if="!vm_cg.groupsToArray().length" layout="row" layout-align="center center" flex>\n <span>{{\'QUICKPANEL.NO_AVAILABLE_GROUPS\' | translate}}</span>\n </div>\n </md-list-item>\n \x3c!-- END Group --\x3e\n </md-list>\n \x3c!-- END Groups --\x3e\n</div>\n\n<div class="chat animate-slide-right" ng-if="vm_cg.group" layout="column">\n <md-toolbar class="md-accent">\n <div class="md-toolbar-tools " layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="vm_cg.back()" aria-label="Back" translate translate-attr-aria-label="QUICKPANEL.BACK" flex="15">\n <md-icon md-font-icon="icon-keyboard-backspace"></md-icon>\n </md-button>\n <h4 flex layout-align="start center" style="max-height: 100%; overflow-y:auto;">\n <span translate="QUICKPANEL.YOU" translate-values=\'{participants: vm_cg.participants}\'></span>\n </h4>\n\n <div layout="row" layout-align="end center">\n <md-button ng-if="vm_cg.license.webrtc && vm_cg.currentUser.role === \'agent\' && vm_cg.currentUser.showWebBar === 2 && vm_cg.user.role === \'agent\' && vm_cg.user.showWebBar === 2" class="md-icon-button" aria-label="Call" translate translate-attr-aria-label="QUICKPANEL.CALL" ng-click="vm_cg.webcall(vm_cg.user.name)">\n <md-icon md-font-icon="icon-phone"></md-icon>\n </md-button>\n </div>\n </div>\n\n </md-toolbar>\n <md-content flex layout-paddings ms-scroll id="chat-group-dialog">\n <div layout="row" ng-repeat="message in vm_cg.group.messages" class="message-row" ng-class="message.FromId === vm_cg.currentUser.id ? \'user\' : \'contact\'">\n <img ng-if="message.FromId !== vm_cg.currentUser.id" ng-src="{{\'api/users/\' + message.FromId + \'/avatar\'}}" class="avatar" alt="{{vm_cg.user.fullname}}" />\n <img ng-if="message.FromId === vm_cg.currentUser.id" class="avatar" ng-src="{{vm_cg.currentUser.userpic ? \'api/users/\' + vm_cg.currentUser.id + \'/avatar\' : \'assets/images/avatars/profile.png\'}}">\n <div class="bubble" flex>\n <div ng-if="message.FromId !== vm_cg.currentUser.id">\n <span style="font-size: 12px;">{{vm_cg.group.membersByKeys[message.FromId].fullname}}</span>\n </div>\n <span class="message" ng-bind-html="message.body | embed:{linkTarget:\'_blank\',emoji:false,fontSmiley:false}"></span>\n <div layout="row" layout-align="end center">\n <span class="time secondary-text" style="margin-top: 0px;">{{message.createdAt | formatdate }}</span>\n <md-icon ng-if="message.FromId === vm_cg.currentUser.id" class="s16 margin-5" style="cursor: pointer;" md-font-icon="icon-information-outline" ng-click="vm_cg.showMessageInfo($event, message)"></md-icon>\n </div>\n </div>\n </div>\n </md-content>\n\n <form ng-if="(vm_cg.currentUser.role !== \'agent\') || vm_cg.group.write" ng-submit="vm_cg.reply()" layout="row" class="reply" layout-align="start center">\n <textarea ng-keyup="$event.keyCode == 13 ? vm_cg.reply() : null" flex ng-model="vm_cg.replyMessage" placeholder="Type and hit enter to send message" translate translate-attr-placeholder="QUICKPANEL.REPLY_PLACEHOLDER" autofocus></textarea>\n\n <md-button class="md-fab md-mini" type="submit" aria-label="Send message" translate translate-attr-aria-label="QUICKPANEL.SEND_MESSAGE">\n <md-icon md-font-icon="icon-send"></md-icon>\n </md-button>\n </form>\n</div>'),e.put("app/quick-panel/tabs/groups/info/dialog.html",'<md-dialog class="group-dialog" aria-label="New ChatGroup">\n <form name="groupForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog(null)">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div ng-if="vm.data.messages[$index].FromId !== vm.data.messages[$index].ToId" ng-repeat="user in vm.data.users" layout-margin>\n <div layout="row">\n <div layout="row" layout-align="start center">\n <img ng-src="{{user.userpic ? \'api/users/\' + user.id + \'/avatar\' : \'assets/images/avatars/profile.png\'}}" class="avatar" alt="{{user.fullname}}" />\n <span>{{user.fullname}}</span>\n </div>\n <div layout="row" layout-align="end center" flex>\n <md-icon class="s16 margin-5" md-font-icon="{{vm.data.messages[$index].read ? \'icon-check-all md-accent\' : \'icon-check\'}}"></md-icon>\n <span class="time secondary-text">{{vm.data.messages[$index].updatedAt | formatdate }}</span>\n </div>\n </div>\n <div>\n <md-divider ng-if="!$last"></md-divider>\n </div>\n </div>\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/quick-panel/tabs/today/today-tab.html",'<md-list class="date">\n <md-subheader class="md-no-sticky"><span translate="QUICKPANEL.TODAY">Today</span></md-subheader>\n <md-list-item class="md-display-1 md-2-line">\n <div class="secondary-text">\n <div translate="QUICKPANEL.{{ (vm.date | date:\'EEEE\').toUpperCase() }}"></div>\n <div layout="row" layout-align="start start">\n <span> {{vm.date | date:\'d\'}}</span>\n <span class="md-subhead">th</span>\n <span translate="QUICKPANEL.{{ (vm.date | date:\'MMMM\').toUpperCase() }}"></span>\n </div>\n </div>\n </md-list-item>\n</md-list>\n\n\x3c!-- <md-divider></md-divider>\n\n<md-list>\n <md-subheader class="md-no-sticky"><span translate="QUICKPANEL.EVENTS">Events</span></md-subheader>\n\n <md-list-item class="md-2-line" ng-repeat="event in vm.events" ng-click="dummyFunction()">\n <div class="md-list-item-text">\n <h3>{{event.title}}</h3>\n\n <p>{{event.detail}}</p>\n </div>\n </md-list-item>\n</md-list>\n\n<md-divider></md-divider>\n\n<md-list>\n <md-subheader class="md-no-sticky"><span translate="QUICKPANEL.NOTES">Notes</span></md-subheader>\n <md-list-item class="md-2-line" ng-repeat="note in vm.notes" ng-click="dummyFunction()">\n <div class="md-list-item-text">\n <h3>{{note.title}}</h3>\n\n <p>{{note.detail}}</p>\n </div>\n </md-list-item>\n</md-list>\n\n<md-divider></md-divider>\n\n<md-list>\n <md-subheader class="md-no-sticky"><span translate="QUICKPANEL.QUICK_SETTINGS">Quick Settings</span></md-subheader>\n\n <md-list-item>\n <h3 translate="QUICKPANEL.NOTIFICATIONS">Notifications</h3>\n <md-switch class="md-secondary" ng-model="vm.settings.notify" aria-label="Notifications" translate\n translate-attr-aria-label="QUICKPANEL.NOTIFICATIONS"></md-switch>\n </md-list-item>\n\n <md-list-item>\n <h3 translate="QUICKPANEL.CLOUD_SYNC">Cloud Sync</h3>\n <md-switch class="md-secondary" ng-model="vm.settings.cloud" aria-label="Cloud Sync" translate\n translate-attr-aria-label="QUICKPANEL.CLOUD_SYNC"></md-switch>\n </md-list-item>\n\n <md-list-item>\n <h3 translate="QUICKPANEL.RETRO_THRUSTERS">Retro Thrusters</h3>\n <md-switch class="md-secondary md-warn" ng-model="vm.settings.retro" aria-label="Retro Thrusters" translate\n translate-attr-aria-label="QUICKPANEL.RETRO_THRUSTERS"></md-switch>\n </md-list-item>\n</md-list> --\x3e'),e.put("app/reset/reset.html",'<div id="reset-password" class="flex-scrollable" layout="column" ng-init="vm.onInit()" ms-scroll>\n <div id="reset-password-form-wrapper" layout="column" layout-align="center center">\n <div id="reset-password-form" class="md-whiteframe-8dp">\n\n <img src="/api/settings/1/logo_login" alt="logo_login" class="logo_login" />\n\n <div class="title" translate="RESETPASSWORD.TITLE">Reset your password</div>\n\n <form name="resetPasswordForm" novalidate>\n\n <md-input-container class="md-block" md-no-float>\n <input type="password" name="password" ng-model="vm.form.password" ng-pattern="vm.passwordPattern" placeholder="Password" translate translate-attr-placeholder="RESETPASSWORD.PASSWORD" required>\n <div ng-messages="resetPasswordForm.password.$error" role="alert">\n <div ng-message="required">\n <span translate="RESETPASSWORD.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="RESETPASSWORD.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" md-no-float>\n <input type="password" name="passwordConfirm" ng-model="vm.form.passwordConfirm" placeholder="Password (Confirm)" match-password="password" translate translate-attr-placeholder="RESETPASSWORD.PASSWORD_CONFIRM">\n <div ng-messages="resetPasswordForm.passwordConfirm.$error" role="alert">\n <div ng-message="passwordMatch">\n <span translate="TOOLBAR.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n </div>\n </div>\n </md-input-container>\n\n <md-button type="button" ng-click="vm.resetPassword()" class="md-raised md-accent submit-button" aria-label="UPDATE MY PASSWORD" ng-disabled="resetPasswordForm.$invalid || resetPasswordForm.$pristine" translate="RESETPASSWORD.UPDATE_PASSWORD" translate-attr-aria-label="RESETPASSWORD.UPDATE_PASSWORD">\n RESET MY PASSWORD\n </md-button>\n </form>\n </div>\n </div>\n</div>'),e.put("app/toolbar/changepassword/changepassword.html",'<md-dialog class="user-dialog" aria-label="{{vm.name}}">\n <form name="changePasswordForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span ng-if="vm.reset" class="title" translate="TOOLBAR.RESETPASSWORD">Reset Password</span>\n <span ng-if="!vm.reset" class="title" translate="TOOLBAR.CHANGEPASSWORD">Change Password</span>\n <md-button ng-if="!vm.reset" class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLBAR.OLD_PASSWORD">Old Password</label>\n <input type="password" name="oldPassword" ng-model="vm.oldPassword" placeholder="Password" translate translate-attr-placeholder="TOOLBAR.OLD_PASSWORD" required>\n <div ng-messages="changePasswordForm.oldPassword.$error" role="alert">\n <div ng-message="required">\n <span translate="TOOLBAR.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLBAR.NEW_PASSWORD">New Password</label>\n <input type="password" name="password" ng-model="vm.password" placeholder="Password" ng-pattern="vm.passwordPattern" translate translate-attr-placeholder="TOOLBAR.NEW_PASSWORD" required>\n <div ng-messages="changePasswordForm.password.$error" role="alert">\n <div ng-message="required">\n <span translate="TOOLBAR.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="TOOLBAR.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n <div ng-message="oldPasswordMatch">\n <span translate="TOOLBAR.ERRORS.PASSWORD_OLDPASSWORD_MATCH">New password must be different from old one</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLBAR.CONFIRM_PASSWORD">Confirm Password</label>\n <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n <div ng-messages="changePasswordForm.confirmPassword.$error" role="alert" multiple>\n <div ng-message="required">\n <span translate="TOOLBAR.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n </div>\n <div ng-message="passwordMatch">\n <span translate="TOOLBAR.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n </div>\n </div>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.savePassword()" class="send-button md-accent md-raised" ng-disabled="changePasswordForm.$invalid || changePasswordForm.$pristine" aria-label="SAVE" translate="TOOLBAR.SAVE" translate-attr-aria-label="TOOLBAR.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/toolbar/layouts/vertical-navigation/toolbar.html",'<div layout="row" layout-align="start center">\n <div layout="row" layout-align="start center" flex>\n <md-button id="navigation-toggle" class="md-icon-button" ng-click="vm.toggleSidenav(\'navigation\')" hide-gt-sm aria-label="Toggle navigation" translate translate-attr-aria-label="TOOLBAR.TOGGLE_NAVIGATION">\n <md-icon md-font-icon="icon-menu" class="icon"></md-icon>\n </md-button>\n\n <ms-shortcuts ng-if="!vm.isAgent()"></ms-shortcuts>\n\n <div class="toolbar-separator"></div>\n\n <div ng-if="vm.license.demo" class="blink md-padding">\n <span class="md-warn-fg" translate="TOOLBAR.TRIAL_VERSION">Trial Version</span>\n </div>\n\n <div ng-if="vm.isAgent()" class="logo" layout-padding-left-8 layout="row" layout-align="start center">\n <span class="logo-image"><img src="/api/settings/1/logo" alt="logo" /></span>\n <span ng-show="vm.isAgent() && (vm.user.showWebBar != 2)" class="logo-text text-truncate">{{ vm.getLogo() |\n uppercase }}</span>\n </div>\n\n \x3c!-- phonebar directive WebRtc type--\x3e\n <ms-phonebar class="ms-phonebar" ng-if="vm.isAgent() && (vm.user.showWebBar == 2)" conf="vm.conf" sessions="vm.webRTCSessions" flex></ms-phonebar>\n \x3c!-- phonebar directive --\x3e\n </div>\n\n <div layout="row" layout-align="start center">\n\n <md-progress-circular id="toolbar-progress" ng-if="$root.loadingProgress" class="md-accent" md-diameter="32">\n </md-progress-circular>\n\n \x3c!-- Pause Management --\x3e\n <div ng-if="vm.isAgent() && (vm.user.showWebBar != 0)" layout="row" layout-align="end center">\n <div class="toolbar-separator"></div>\n\n <div class="border brad-5" layout="row" layout-align="center center" layout-margin>\n <md-button ng-if="vm.user.voicePause" class="md-icon-button no-margin" ng-click="vm.unpause()">\n <md-icon md-font-icon="icon-play-circle-outline" class="icon s24"></md-icon>\n <md-tooltip md-direction="bottom">{{\'TOOLBAR.RESUME\' | translate}}</md-tooltip>\n </md-button>\n\n <md-button ng-disabled="vm.user.voicePause && \'DEFAULT PAUSE\' === vm.user.pauseType" class="md-icon-button no-margin" ng-click="vm.pause()">\n <md-icon md-font-icon="icon-pause-circle-outline" class="icon s24"></md-icon>\n <md-tooltip md-direction="bottom">{{\'TOOLBAR.PAUSE\' | translate}}</md-tooltip>\n </md-button>\n\n <md-menu>\n <md-button aria-label="Pauses" class="md-icon-button no-margin" ng-click="$mdOpenMenu($event)">\n <md-icon md-menu-origin md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="4">\n <md-menu-item ng-if="!vm.pauses.length">\n <md-button disabled="disabled">\n <md-icon md-font-icon="icon-pause-octagon" md-menu-align-target></md-icon>\n {{\'TOOLBAR.NO_PAUSES_AVAILABLE\' | translate}}\n </md-button>\n </md-menu-item>\n <md-menu-item ng-repeat="pause in vm.pauses">\n <md-button ng-disabled="vm.user.voicePause && pause.name === vm.user.pauseType" ng-click="vm.pause(pause.name)">\n <md-icon md-font-icon="icon-pause-circle" md-menu-align-target></md-icon>\n {{pause.name}}\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </div>\n \x3c!-- Pause Management --\x3e\n\n <div class="h5 padding-10" ng-if="vm.isAgent() && (vm.user.showWebBar != 0)">\n <div layout="row" layout-align="space-between center">\n <timer ng-if="vm.user.lastLoginAt" start-time="vm.user.lastLoginAt"></timer>\n <md-tooltip>{{\'TOOLBAR.LOGIN_TIME\' | translate}}</md-tooltip>\n <md-icon md-font-icon="icon-timelapse" class="icon s16"></md-icon>\n </div>\n <div layout="row" layout-align="center center" ng-if="vm.user.voicePause">\n <timer start-time="vm.user.lastPauseAt"></timer>\n <md-tooltip>{{\'TOOLBAR.PAUSE_TIME\' | translate}}</md-tooltip>\n <md-icon md-font-icon="icon-coffee" class="icon s16"></md-icon>\n </div>\n <div ng-if="vm.user.voicePause">\n <span class="blink red-fg">{{vm.user.pauseType || \'default\' | uppercase}}</span>\n </div>\n </div>\n\n <div class="toolbar-separator" ng-if="vm.isAgent() && (vm.user.showWebBar != 0)"></div>\n\n <md-menu-bar id="user-menu">\n <md-menu md-position-mode="left bottom">\n <md-button class="user-button" ng-click="$mdOpenMenu()" aria-label="User settings" translate translate-attr-aria-label="TOOLBAR.USER_SETTINGS">\n <div layout="row" layout-align="space-between center">\n <div class="avatar-wrapper">\n <img md-menu-align-target class="avatar" src="assets/images/avatars/profile.png" ng-if="!vm.user.userpic">\n <img md-menu-align-target class="avatar" ng-src="api/users/{{vm.user.id}}/avatar" ng-if="vm.user.userpic">\n <md-icon md-font-icon ng-class="vm.userStatus.icon" ng-style="{\'color\': vm.userStatus.color }" class="icon status s16"></md-icon>\n </div>\n <div layout="column" layout-align="center center" class="padding-horizontal-5">\n <span class="font-size-14 md-subhead">{{vm.user.fullname}}</span>\n <span class="font-size-12 md-subhead">{{vm.user.name}} <{{vm.user.internal}}></span>\n </div>\n\n <md-icon md-font-icon="icon-chevron-down" class="icon s16" hide-xs></md-icon>\n </div>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm.user.showWebBar == 2 && vm.user.phoneBarEnableSettings" class="md-indent">\n <md-icon md-font-icon="icon-cog" class="icon"></md-icon>\n <md-button ng-click="vm.openSettings($event)" ng-disabled="!vm.license.webrtc"><span translate="TOOLBAR.SETTINGS">SETTINGS</span></md-button>\n </md-menu-item>\n\n <md-menu-item class="md-indent">\n <md-icon md-font-icon="icon-key-variant" class="icon"></md-icon>\n <md-button ng-click="vm.changePassword($event)"><span translate="TOOLBAR.CHANGEPASSWORD">Change\n Password</span></md-button>\n </md-menu-item>\n\n <md-menu-divider></md-menu-divider>\n\n <md-menu-item class="md-indent">\n <md-icon md-font-icon="icon-logout" class="icon"></md-icon>\n <md-button ng-click="vm.logout()">Logout</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-bar>\n\n <div class="toolbar-separator"></div>\n\n <md-button ng-if="vm.user.role === \'agent\' && vm.license.dialer" class="preview-button no-margin" ng-disabled="vm.disable" ng-click="vm.preview($event)" aria-label="Language" md-menu-origin md-menu-align-target>\n <div ng-if="vm.contacts" class="md-accent-bg open-contact-count">{{vm.contacts > 99 ? \'99+\' : vm.contacts}}</div>\n <md-icon md-font-icon="icon-fire" class="icon red-900-fg"></md-icon>\n <md-tooltip><span translate="TOOLBAR.PREVIEW">Preview</span></md-tooltip>\n </md-button>\n\n <ms-search-bar ng-if="vm.user.role !== \'agent\'" on-search="vm.search(query)" on-result-click="vm.searchResultClick(item)" debounce="300" collapse-on-blur="true"></ms-search-bar>\n\n <md-menu id="language-menu" md-offset="0 72" md-position-mode="target-right target" layout="column" layout-align="center center">\n <md-button class="md-icon-button no-margin" ng-click="$mdOpenMenu()" aria-label="Language" md-menu-origin md-menu-align-target>\n <div layout="row" layout-align="center center">\n <img class="flag" ng-src="assets/images/flags/{{vm.selectedLanguage.flag}}.png">\n </div>\n </md-button>\n\n <md-menu-content width="3" id="language-menu-content">\n <md-menu-item ng-repeat="(iso, lang) in vm.languages">\n <md-button ng-click="vm.changeLanguage(lang)" aria-label="{{lang.title}}" translate translate-attr-aria-label="{{lang.title}}">\n <span layout="row" layout-align="start center">\n <img class="flag flag-24" ng-src="assets/images/flags/{{lang.flag}}.png">\n <span translate="{{lang.translation}}">{{lang.title}}</span>\n </span>\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n\n <div class="toolbar-separator"></div>\n\n <md-button ng-if="vm.license.gray && vm.user.role !== \'agent\'" class="md-icon-button" ui-sref="app.settings.license" aria-label="Toggle quick panel">\n <md-icon md-font-icon="icon-alert" class="icon md-warn blink"></md-icon>\n </md-button>\n <md-button ng-if="vm.license.gray && vm.user.role === \'agent\'" class="md-icon-button" aria-label="Toggle quick panel">\n <md-icon md-font-icon="icon-alert" class="icon md-warn blink"></md-icon>\n </md-button>\n\n <div ng-if="vm.license.gray" class="toolbar-separator"></div>\n\n <md-button id="quick-panel-toggle" class="md-icon-button" ng-click="vm.toggleSidenav(\'quick-panel\')" aria-label="Toggle quick panel" translate translate-attr-aria-label="TOOLBAR.TOGGLE_QUICK_PANEL">\n <div ng-if="(vm.unreadTotalMessages + vm.unreadTotalGroupMessages)" class="md-accent-bg unread-message-count">\n {{vm.unreadTotalMessages + vm.unreadTotalGroupMessages}}</div>\n <md-icon md-font-icon="icon-format-list-bulleted" class="icon"></md-icon>\n </md-button>\n </div>\n</div>'),e.put("app/toolbar/preview/dialog.html",'<md-dialog class="preview-dialog" aria-label="preview">\n <form name="previewForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">Preview</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div layout="row" ng-if="vm.preview">\n <div class="md-padding md-margin" layout="column" flex="30">\n <md-input-container ng-if="vm.preview.Contact.id" class="md-block no-margin">\n <label translate="CONTACTMANAGER.ID">ID</label>\n <input type="text" ng-model="vm.preview.Contact.id" disabled="true">\n </md-input-container>\n <md-input-container ng-if="vm.preview.Queue.name" class="md-block no-margin">\n <label translate="VOICE.QUEUE">Queue</label>\n <input type="text" ng-model="vm.preview.Queue.name" disabled="true">\n </md-input-container>\n <md-input-container ng-if="vm.preview.List.name" class="md-block no-margin">\n <label translate="CONTACTMANAGER.LIST">List</label>\n <input type="text" ng-model="vm.preview.List.name" disabled="true">\n </md-input-container>\n <md-input-container ng-if="vm.preview.Contact.tags && vm.preview.Contact.tags.length" class="md-block no-margin">\n <label translate="CONTACTMANAGER.TAGS">Tags</label>\n <input type="text" ng-model="vm.preview.Contact.tags" disabled="true">\n </md-input-container>\n <md-input-container ng-if="vm.preview.Contact.Company && vm.preview.Contact.Company.name" class="md-block no-margin">\n <label translate="CONTACTMANAGER.COMPANY">Company</label>\n <input type="text" ng-model="vm.preview.Contact.Company.name" disabled="true">\n </md-input-container>\n </div>\n <md-divider></md-divider>\n <div class="md-padding md-margin" layout="column" flex="35">\n <md-input-container ng-repeat="(key, value) in vm.preview.Contact" ng-if="!vm.isNil(value) && !vm.isCustomField(key) && !vm.isHiddenField(key)" class="md-block no-margin">\n <label>{{ \'CONTACTMANAGER.\' + key.toUpperCase() | translate}}</label>\n <input type="text" ng-model="value" disabled="true" privacy=\'vm.currentUser.privacyEnabled && (key === "firstName" || key === "lastName" || key === "phone" || key === "mobile" || key === "email" || key === "fax") \' ng-cloak>\n </md-input-container>\n </div>\n <div class="md-padding md-margin" layout="column" flex="35">\n <md-input-container ng-repeat="(key, value) in vm.preview.Contact" ng-if="!vm.isNil(value) && vm.isCustomField(key) && !vm.isHiddenField(key)" class="md-block no-margin">\n <label>{{ vm.customFieldsMap[key] || key }}</label>\n <input type="text" ng-model="value" disabled="true">\n </md-input-container>\n </div>\n </div>\n <div layout="row" ng-if="!vm.preview">\n <span>no contacts available</span>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions class="md-dialog-action-center padding-rigth-15">\n <md-button class="md-icon-button md-primary" ng-hide="vm.hopperIds.length <= 1" ng-disabled="vm.disableGetContact" ng-click="vm.previousContact()" aria-label="PREVIOUSCONTACT" translate-attr-aria-label="TOOLS.PREVIOUSCONTACT">\n <md-icon md-font-icon="icon-chevron-left"></md-icon>\n </md-button>\n <md-button class="md-fab green-bg" aria-label="CALL" translate-attr-aria-label="TOOLS.CALL" ng-disabled="vm.disable" ng-click="vm.originatePreview($event)">\n <md-icon md-font-icon="icon-phone"></md-icon>\n </md-button>\n <md-button class="md-icon-button md-primary" ng-disabled="vm.disableGetContact" ng-click="vm.nextContact()" aria-label="NEXTCONTACT" translate-attr-aria-label="TOOLS.NEXTCONTACT">\n <md-icon md-font-icon="icon-chevron-right"></md-icon>\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>')}]);
\ No newline at end of file
--- /dev/null
+[data-ng-click],[ng-click],[x-ng-click]{cursor:pointer}.ms-container{width:100%!important}.ms-container .ms-list{height:380px!important}.ms-container .ms-selectable li.ms-elem-selectable,.ms-container .ms-selection li.ms-elem-selection{padding:6px 12px!important;height:34px!important}md-input-container:not(.md-input-has-value) input:not(:focus){color:inherit!important}.ms-container .ms-search{height:34px;margin-bottom:5px;border:solid 1px #e5e5e5;background-color:#fff;box-shadow:none;width:100%;padding-left:6px}.ms-container .ms-footer{text-align:center}.no-border{border:none!important}.left .motion-spinner{border-top-color:#00d7cc!important;border-left-color:#00d7cc!important}.right .motion-spinner{border-top-color:#00d7cc!important;border-right-color:#00d7cc!important}.md-option-info-text{font-size:10px}md-pagination-wrapper{width:auto!important}md-autocomplete.no-container-margin md-autocomplete-wrap md-input-container{margin:0!important}md-dialog.report-selection-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}md-dialog.advanced-search-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}.md-dialog-action-center{justify-content:center!important}.flag-24{height:24px}button.auto-width{min-width:auto!important}button.size-8{transform:scale(.8)}md-icon.auto-size{height:auto!important;width:auto!important}md-switch.auto-height{height:auto!important}.hidden{visibility:hidden}.user-profile-section-help{background:#fcf20f0f;border:1px solid rgba(0,0,0,.12);padding:5px}.email-preview-message{display:-webkit-box;margin:0 auto;display:block;height:200px;line-height:1.4;-webkit-line-clamp:10;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;word-break:break-all}button.advanced-search.md-accent-bg.md-button.md-default-theme:not([disabled]).md-icon-button:hover{background-color:#0091ea}.blink{animation:blink 2s ease-in infinite}.no-click{pointer-events:none}.spinner-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;background:rgba(43,43,43,.5)}ms-quick-filter[disabled]{pointer-events:none;opacity:.7}ms-search-bar[disabled]{pointer-events:none;opacity:.7}@keyframes blink{from,to{opacity:1}50%{opacity:0}}textarea.api-key-area{background:0 0;resize:none}.badge{min-width:20px;height:20px;line-height:20px;padding:0 7px;font-size:11px;font-weight:700;border-radius:20px;transition:opacity .2s ease-in-out .1s}md-tooltip.multiline div.md-content{height:auto!important}.auto-margin{margin:auto}md-menu-item md-menu.no-margin button{display:inline-block;border-radius:0;margin:auto 0;font-size:15px;text-transform:none;font-weight:400;height:100%;padding-left:16px;padding-right:16px;width:100%}md-date-range md-menu span.md-select-value{border-bottom-color:rgba(0,0,0,.12)}.keep-on-top{z-index:9999!important}.margin-auto{margin:auto}.xenialab-violet-light-bg{background-color:#9c4fd3!important}.xenialab-violet-light-fg{color:#9c4fd3!important}.no-margin-top{margin-top:0!important}.no-margin-bottom{margin-bottom:0!important}.disabled-button{display:inline-block;position:relative;cursor:default;min-height:36px;min-width:88px;line-height:36px;vertical-align:middle;align-items:center;text-align:center;border-radius:3px;box-sizing:border-box;user-select:none;outline:0;border:0;padding:0 6px;margin:6px 8px;background:rgba(0,0,0,.12);color:rgba(0,0,0,.38);white-space:nowrap;text-transform:uppercase;font-weight:500;font-size:14px;font-style:inherit;font-variant:inherit;font-family:inherit;text-decoration:none;overflow:hidden}@supports (-ms-ime-align:auto){md-tabs{display:inline!important}}@supports (-ms-accelerator:true){md-tabs{display:inline!important}}@supports (-moz-transform:translate(0,0)){md-tabs{display:inline!important}}body[dir=rtl] table.md-table td.md-cell,body[dir=rtl] table.md-table th.md-column{text-align:right!important}body[dir=rtl] table.md-table td.md-cell md-checkbox,body[dir=rtl] table.md-table th.md-column md-checkbox{margin-right:12px!important}body[dir=rtl] .ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button .icon{margin:0 0 0 16px!important}body[dir=rtl] .ms-navigation .ms-navigation-node .ms-navigation-item>a.ms-navigation-button{padding-right:45px}body[dir=rtl] .md-table-pagination>.buttons{direction:ltr}body[dir=rtl] .md-table-pagination>.buttons>.label{direction:rtl}body[dir=rtl] .header .logo .logo-icon{margin:5px 0 0 15px!important}body[dir=rtl] md-switch .md-container{margin-right:inherit!important}body,html{height:100%;position:relative}body{margin:0;padding:0}[tabindex='-1']:focus{outline:0}.inset{padding:10px}a.md-no-style,button.md-no-style{font-weight:400;background-color:inherit;text-align:left;border:none;padding:0;margin:0}button,input,select,textarea{vertical-align:baseline}button,html input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button}button[disabled],html input[type=button][disabled],input[type=reset][disabled],input[type=submit][disabled]{cursor:default}textarea{vertical-align:top;overflow:auto}input[type=search]{-webkit-appearance:textfield;box-sizing:content-box;-webkit-box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}input:-webkit-autofill{text-shadow:none}.md-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;text-transform:none;width:1px}.md-shadow{position:absolute;top:0;left:0;bottom:0;right:0;border-radius:inherit;pointer-events:none}.md-shadow-bottom-z-1{box-shadow:0 2px 5px 0 rgba(0,0,0,.26)}.md-shadow-bottom-z-2{box-shadow:0 4px 8px 0 rgba(0,0,0,.4)}.md-shadow-animated.md-shadow{transition:box-shadow .28s cubic-bezier(.4,0,.2,1)}.md-ripple-container{pointer-events:none;position:absolute;overflow:hidden;left:0;top:0;width:100%;height:100%;transition:all .55s cubic-bezier(.25,.8,.25,1)}.md-ripple{position:absolute;transform:translate(-50%,-50%) scale(0);transform-origin:50% 50%;opacity:0;border-radius:50%}.md-ripple.md-ripple-placed{transition:margin .9s cubic-bezier(.25,.8,.25,1),border .9s cubic-bezier(.25,.8,.25,1),width .9s cubic-bezier(.25,.8,.25,1),height .9s cubic-bezier(.25,.8,.25,1),opacity .9s cubic-bezier(.25,.8,.25,1),transform .9s cubic-bezier(.25,.8,.25,1)}.md-ripple.md-ripple-scaled{transform:translate(-50%,-50%) scale(1)}.md-ripple.md-ripple-active,.md-ripple.md-ripple-full,.md-ripple.md-ripple-visible{opacity:.2}.md-ripple.md-ripple-remove{animation:md-remove-ripple .9s cubic-bezier(.25,.8,.25,1)}@keyframes md-remove-ripple{0%{opacity:.15}100%{opacity:0}}.md-padding{padding:8px}.md-margin{margin:8px}.md-scroll-mask{position:absolute;background-color:transparent;top:0;right:0;bottom:0;left:0;z-index:50}.md-scroll-mask>.md-scroll-mask-bar{display:block;position:absolute;background-color:#fafafa;right:0;top:0;bottom:0;z-index:65;box-shadow:inset 0 0 1px rgba(0,0,0,.3)}.md-no-momentum{-webkit-overflow-scrolling:auto}.md-no-flicker{-webkit-filter:blur(0)}@media (min-width:960px){.md-padding{padding:16px}}body[dir=ltr],body[dir=rtl],html[dir=ltr],html[dir=rtl]{unicode-bidi:embed}bdo[dir=rtl]{direction:rtl;unicode-bidi:bidi-override}bdo[dir=ltr]{direction:ltr;unicode-bidi:bidi-override}body,html{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;min-height:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.md-display-4{font-size:112px;font-weight:300;letter-spacing:-.010em;line-height:112px}.md-display-3{font-size:56px;font-weight:400;letter-spacing:-.005em;line-height:56px}.md-display-2{font-size:45px;font-weight:400;line-height:64px}.md-display-1{font-size:34px;font-weight:400;line-height:40px}.md-headline{font-size:24px;font-weight:400;line-height:32px}.md-title{font-size:20px;font-weight:500;letter-spacing:.005em}.md-subhead{font-size:16px;font-weight:400;letter-spacing:.010em;line-height:24px}.md-body-1{font-size:14px;font-weight:400;letter-spacing:.010em;line-height:20px}.md-body-2{font-size:14px;font-weight:500;letter-spacing:.010em;line-height:24px}.md-caption{font-size:12px;letter-spacing:.020em}.md-button{letter-spacing:.010em}button,html,input,select,textarea{font-family:Roboto,"Helvetica Neue",sans-serif}button,input,select,textarea{font-size:100%}@keyframes md-autocomplete-list-out{0%{animation-timing-function:linear}50%{opacity:0;height:40px;animation-timing-function:ease-in}100%{height:0;opacity:0}}@keyframes md-autocomplete-list-in{0%{opacity:0;height:0;animation-timing-function:ease-out}50%{opacity:0;height:40px}100%{opacity:1;height:40px}}md-autocomplete{border-radius:2px;display:block;height:40px;position:relative;overflow:visible;min-width:190px}md-autocomplete[disabled] input{cursor:default}md-autocomplete[md-floating-label]{border-radius:0;background:0 0;height:auto}md-autocomplete[md-floating-label] md-input-container{padding-bottom:0}md-autocomplete[md-floating-label] md-autocomplete-wrap{height:auto}md-autocomplete[md-floating-label] button{position:absolute;top:auto;bottom:0;right:0;width:30px;height:30px}md-autocomplete md-autocomplete-wrap{display:flex;flex-direction:row;box-sizing:border-box;position:relative;overflow:visible;height:40px}md-autocomplete md-autocomplete-wrap.md-menu-showing{z-index:51}md-autocomplete md-autocomplete-wrap input,md-autocomplete md-autocomplete-wrap md-input-container{flex:1 1 0%;box-sizing:border-box;min-width:0}md-autocomplete md-autocomplete-wrap md-progress-linear{position:absolute;bottom:-2px;left:0}md-autocomplete md-autocomplete-wrap md-progress-linear.md-inline{bottom:40px;right:2px;left:2px;width:auto}md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate{position:absolute;top:0;left:0;width:100%;height:3px;transition:none}md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate .md-container{transition:none;height:3px}md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate.ng-enter{transition:opacity .15s linear}md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate.ng-enter.ng-enter-active{opacity:1}md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate.ng-leave{transition:opacity .15s linear}md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate.ng-leave.ng-leave-active{opacity:0}md-autocomplete input:not(.md-input){font-size:14px;box-sizing:border-box;border:none;box-shadow:none;outline:0;background:0 0;width:100%;padding:0 15px;line-height:40px;height:40px}md-autocomplete input:not(.md-input)::-ms-clear{display:none}md-autocomplete button{position:relative;line-height:20px;text-align:center;width:30px;height:30px;cursor:pointer;border:none;border-radius:50%;padding:0;font-size:12px;background:0 0;margin:auto 5px}md-autocomplete button:after{content:'';position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;border-radius:50%;transform:scale(0);opacity:0;transition:all .4s cubic-bezier(.25,.8,.25,1)}md-autocomplete button:focus{outline:0}md-autocomplete button:focus:after{transform:scale(1);opacity:1}md-autocomplete button md-icon{position:absolute;top:50%;left:50%;transform:translate3d(-50%,-50%,0) scale(.9)}md-autocomplete button md-icon path{stroke-width:0}md-autocomplete button.ng-enter{transform:scale(0);transition:transform .15s ease-out}md-autocomplete button.ng-enter.ng-enter-active{transform:scale(1)}md-autocomplete button.ng-leave{transition:transform .15s ease-out}md-autocomplete button.ng-leave.ng-leave-active{transform:scale(0)}@media screen and (-ms-high-contrast:active){md-autocomplete input{border:1px solid #fff}md-autocomplete li:focus{color:#fff}}.md-virtual-repeat-container.md-autocomplete-suggestions-container{position:absolute;box-shadow:0 2px 5px rgba(0,0,0,.25);height:225.5px;max-height:225.5px;z-index:100}.md-virtual-repeat-container.md-not-found{height:48px}.md-autocomplete-suggestions{margin:0;list-style:none;padding:0}.md-autocomplete-suggestions li{font-size:14px;overflow:hidden;padding:0 15px;line-height:48px;height:48px;transition:background .15s linear;margin:0;white-space:nowrap;text-overflow:ellipsis}.md-autocomplete-suggestions li:focus{outline:0}.md-autocomplete-suggestions li:not(.md-not-found-wrapper){cursor:pointer}@media screen and (-ms-high-contrast:active){.md-autocomplete-suggestions,md-autocomplete{border:1px solid #fff}}md-backdrop{transition:opacity 450ms;position:absolute;top:0;bottom:0;left:0;right:0;z-index:50}md-backdrop.md-menu-backdrop{position:fixed!important;z-index:99}md-backdrop.md-select-backdrop{z-index:81;transition-duration:0}md-backdrop.md-dialog-backdrop{z-index:79}md-backdrop.md-bottom-sheet-backdrop{z-index:69}md-backdrop.md-sidenav-backdrop{z-index:59}md-backdrop.md-click-catcher{position:absolute}md-backdrop.md-opaque{opacity:.48}md-backdrop.md-opaque.ng-enter{opacity:0}md-backdrop.md-opaque.ng-enter.md-opaque.ng-enter-active{opacity:.48}md-backdrop.md-opaque.ng-leave{opacity:.48;transition:opacity .4s}md-backdrop.md-opaque.ng-leave.md-opaque.ng-leave-active{opacity:0}md-bottom-sheet{position:absolute;left:0;right:0;bottom:0;padding:8px 16px 88px 16px;z-index:70;border-top-width:1px;border-top-style:solid;transform:translate3d(0,80px,0);transition:all .4s cubic-bezier(.25,.8,.25,1);transition-property:transform}md-bottom-sheet.md-has-header{padding-top:0}md-bottom-sheet.ng-enter{opacity:0;transform:translate3d(0,100%,0)}md-bottom-sheet.ng-enter-active{opacity:1;display:block;transform:translate3d(0,80px,0)!important}md-bottom-sheet.ng-leave-active{transform:translate3d(0,100%,0)!important;transition:all .3s cubic-bezier(.55,0,.55,.2)}md-bottom-sheet .md-subheader{background-color:transparent;font-family:Roboto,"Helvetica Neue",sans-serif;line-height:56px;padding:0;white-space:nowrap}md-bottom-sheet md-inline-icon{display:inline-block;height:24px;width:24px;fill:#444}md-bottom-sheet md-list-item{display:flex;outline:0}md-bottom-sheet md-list-item:hover{cursor:pointer}md-bottom-sheet.md-list md-list-item{padding:0;align-items:center;height:48px}md-bottom-sheet.md-grid{padding-left:24px;padding-right:24px;padding-top:0}md-bottom-sheet.md-grid md-list{display:flex;flex-direction:row;flex-wrap:wrap;transition:all .5s;align-items:center}md-bottom-sheet.md-grid md-list-item{flex-direction:column;align-items:center;transition:all .5s;height:96px;margin-top:8px;margin-bottom:8px}@media (max-width:960px){md-bottom-sheet.md-grid md-list-item{flex:1 1 33.3333333333%;max-width:33.3333333333%}md-bottom-sheet.md-grid md-list-item:nth-of-type(3n+1){align-items:flex-start}md-bottom-sheet.md-grid md-list-item:nth-of-type(3n){align-items:flex-end}}@media (min-width:960px) and (max-width:1279px){md-bottom-sheet.md-grid md-list-item{flex:1 1 25%;max-width:25%}}@media (min-width:1280px) and (max-width:1919px){md-bottom-sheet.md-grid md-list-item{flex:1 1 16.6666666667%;max-width:16.6666666667%}}@media (min-width:1920px){md-bottom-sheet.md-grid md-list-item{flex:1 1 14.2857142857%;max-width:14.2857142857%}}md-bottom-sheet.md-grid md-list-item::before{display:none}md-bottom-sheet.md-grid md-list-item .md-list-item-content{display:flex;flex-direction:column;align-items:center;width:48px;padding-bottom:16px}md-bottom-sheet.md-grid md-list-item .md-grid-item-content{border:1px solid transparent;display:flex;flex-direction:column;align-items:center;width:80px}md-bottom-sheet.md-grid md-list-item .md-grid-text{font-weight:400;line-height:16px;font-size:13px;margin:0;white-space:nowrap;width:64px;text-align:center;text-transform:none;padding-top:8px}@media screen and (-ms-high-contrast:active){md-bottom-sheet{border:1px solid #fff}}button.md-button::-moz-focus-inner{border:0}.md-button{display:inline-block;position:relative;cursor:pointer;min-height:36px;min-width:88px;line-height:36px;vertical-align:middle;align-items:center;text-align:center;border-radius:3px;box-sizing:border-box;user-select:none;outline:0;border:0;padding:0 6px;margin:6px 8px;background:0 0;color:currentColor;white-space:nowrap;text-transform:uppercase;font-weight:500;font-size:14px;font-style:inherit;font-variant:inherit;font-family:inherit;text-decoration:none;overflow:hidden;transition:box-shadow .4s cubic-bezier(.25,.8,.25,1),background-color .4s cubic-bezier(.25,.8,.25,1)}.md-button:focus{outline:0}.md-button:focus,.md-button:hover{text-decoration:none}.md-button.ng-hide,.md-button.ng-leave{transition:none}.md-button.md-cornered{border-radius:0}.md-button.md-icon{padding:0;background:0 0}.md-button.md-raised:not([disabled]){box-shadow:0 2px 5px 0 rgba(0,0,0,.26)}.md-button.md-icon-button{margin:0 6px;height:40px;min-width:0;line-height:24px;padding:8px;width:40px;border-radius:50%}.md-button.md-icon-button .md-ripple-container{border-radius:50%;background-clip:padding-box;overflow:hidden;-webkit-mask-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC)}.md-button.md-fab{z-index:20;line-height:56px;min-width:0;width:56px;height:56px;vertical-align:middle;box-shadow:0 2px 5px 0 rgba(0,0,0,.26);border-radius:50%;background-clip:padding-box;overflow:hidden;transition:all .3s cubic-bezier(.55,0,.55,.2);transition-property:background-color,box-shadow,transform}.md-button.md-fab.md-fab-bottom-right{top:auto;right:20px;bottom:20px;left:auto;position:absolute}.md-button.md-fab.md-fab-bottom-left{top:auto;right:auto;bottom:20px;left:20px;position:absolute}.md-button.md-fab.md-fab-top-right{top:20px;right:20px;bottom:auto;left:auto;position:absolute}.md-button.md-fab.md-fab-top-left{top:20px;right:auto;bottom:auto;left:20px;position:absolute}.md-button.md-fab .md-ripple-container{border-radius:50%;background-clip:padding-box;overflow:hidden;-webkit-mask-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC)}.md-button.md-fab.md-mini{line-height:40px;width:40px;height:40px}.md-button.md-fab.ng-hide,.md-button.md-fab.ng-leave{transition:none}.md-button:not([disabled]).md-fab.md-focused,.md-button:not([disabled]).md-raised.md-focused{box-shadow:0 2px 5px 0 rgba(0,0,0,.26)}.md-button:not([disabled]).md-fab:active,.md-button:not([disabled]).md-raised:active{box-shadow:0 4px 8px 0 rgba(0,0,0,.4)}.md-button .md-ripple-container{border-radius:3px;background-clip:padding-box;overflow:hidden;-webkit-mask-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC)}.md-button.md-icon-button md-icon,button.md-button.md-fab md-icon{display:block}.md-toast-open-top .md-button.md-fab-top-left,.md-toast-open-top .md-button.md-fab-top-right{transition:all .4s cubic-bezier(.25,.8,.25,1);transform:translate3d(0,42px,0)}.md-toast-open-top .md-button.md-fab-top-left:not([disabled]).md-focused,.md-toast-open-top .md-button.md-fab-top-left:not([disabled]):hover,.md-toast-open-top .md-button.md-fab-top-right:not([disabled]).md-focused,.md-toast-open-top .md-button.md-fab-top-right:not([disabled]):hover{transform:translate3d(0,41px,0)}.md-toast-open-bottom .md-button.md-fab-bottom-left,.md-toast-open-bottom .md-button.md-fab-bottom-right{transition:all .4s cubic-bezier(.25,.8,.25,1);transform:translate3d(0,-42px,0)}.md-toast-open-bottom .md-button.md-fab-bottom-left:not([disabled]).md-focused,.md-toast-open-bottom .md-button.md-fab-bottom-left:not([disabled]):hover,.md-toast-open-bottom .md-button.md-fab-bottom-right:not([disabled]).md-focused,.md-toast-open-bottom .md-button.md-fab-bottom-right:not([disabled]):hover{transform:translate3d(0,-43px,0)}.md-button-group{display:flex;flex:1;width:100%}.md-button-group>.md-button{flex:1;display:block;overflow:hidden;width:0;border-width:1px 0 1px 1px;border-radius:0;text-align:center;text-overflow:ellipsis;white-space:nowrap}.md-button-group>.md-button:first-child{border-radius:2px 0 0 2px}.md-button-group>.md-button:last-child{border-right-width:1px;border-radius:0 2px 2px 0}@media screen and (-ms-high-contrast:active){.md-button.md-fab,.md-button.md-raised{border:1px solid #fff}}md-card{box-sizing:border-box;display:flex;flex-direction:column;margin:8px;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}md-card md-card-header{padding:16px;display:flex;flex-direction:row}md-card md-card-header:first-child md-card-avatar{margin-right:12px}[dir=rtl] md-card md-card-header:first-child md-card-avatar{margin-right:auto;margin-left:12px}md-card md-card-header:last-child md-card-avatar{margin-left:12px}[dir=rtl] md-card md-card-header:last-child md-card-avatar{margin-left:auto;margin-right:12px}md-card md-card-header md-card-avatar{width:40px;height:40px}md-card md-card-header md-card-avatar .md-user-avatar,md-card md-card-header md-card-avatar md-icon{border-radius:50%}md-card md-card-header md-card-avatar md-icon{padding:8px}md-card md-card-header md-card-avatar+md-card-header-text{max-height:40px}md-card md-card-header md-card-avatar+md-card-header-text .md-title{font-size:14px}md-card md-card-header md-card-header-text{display:flex;flex:1;flex-direction:column}md-card md-card-header md-card-header-text .md-subhead{font-size:14px}md-card md-card-title-media img,md-card>img,md-card>md-card-header img{box-sizing:border-box;display:flex;flex:0 0 auto;width:100%;height:auto}md-card md-card-title{padding:24px 16px 16px;display:flex;flex:1 1 auto;flex-direction:row}md-card md-card-title+md-card-content{padding-top:0}md-card md-card-title md-card-title-text{flex:1;flex-direction:column;display:flex}md-card md-card-title md-card-title-text .md-subhead{padding-top:0;font-size:14px}md-card md-card-title md-card-title-text:only-child .md-subhead{padding-top:12px}md-card md-card-title md-card-title-media{margin-top:-8px}md-card md-card-title md-card-title-media .md-media-sm{height:80px;width:80px}md-card md-card-title md-card-title-media .md-media-md{height:112px;width:112px}md-card md-card-title md-card-title-media .md-media-lg{height:152px;width:152px}md-card md-card-content{display:block;padding:16px}md-card md-card-content>p:first-child{margin-top:0}md-card md-card-content>p:last-child{margin-bottom:0}md-card md-card-content .md-media-xl{height:240px;width:240px}md-card .md-actions,md-card md-card-actions{margin:8px}md-card .md-actions.layout-column .md-button:not(.md-icon-button),md-card md-card-actions.layout-column .md-button:not(.md-icon-button){margin:2px 0}md-card .md-actions.layout-column .md-button:not(.md-icon-button):first-of-type,md-card md-card-actions.layout-column .md-button:not(.md-icon-button):first-of-type{margin-top:0}md-card .md-actions.layout-column .md-button:not(.md-icon-button):last-of-type,md-card md-card-actions.layout-column .md-button:not(.md-icon-button):last-of-type{margin-bottom:0}md-card .md-actions.layout-column .md-button.md-icon-button,md-card md-card-actions.layout-column .md-button.md-icon-button{margin-top:6px;margin-bottom:6px}md-card .md-actions md-card-icon-actions,md-card md-card-actions md-card-icon-actions{flex:1;justify-content:flex-start;display:flex;flex-direction:row}md-card .md-actions:not(.layout-column) .md-button:not(.md-icon-button),md-card md-card-actions:not(.layout-column) .md-button:not(.md-icon-button){margin:0 4px}md-card .md-actions:not(.layout-column) .md-button:not(.md-icon-button):first-of-type,md-card md-card-actions:not(.layout-column) .md-button:not(.md-icon-button):first-of-type{margin-left:0}[dir=rtl] md-card .md-actions:not(.layout-column) .md-button:not(.md-icon-button):first-of-type,[dir=rtl] md-card md-card-actions:not(.layout-column) .md-button:not(.md-icon-button):first-of-type{margin-left:auto;margin-right:0}md-card .md-actions:not(.layout-column) .md-button:not(.md-icon-button):last-of-type,md-card md-card-actions:not(.layout-column) .md-button:not(.md-icon-button):last-of-type{margin-right:0}[dir=rtl] md-card .md-actions:not(.layout-column) .md-button:not(.md-icon-button):last-of-type,[dir=rtl] md-card md-card-actions:not(.layout-column) .md-button:not(.md-icon-button):last-of-type{margin-right:auto;margin-left:0}md-card .md-actions:not(.layout-column) .md-button.md-icon-button,md-card md-card-actions:not(.layout-column) .md-button.md-icon-button{margin-left:6px;margin-right:6px}md-card .md-actions:not(.layout-column) .md-button.md-icon-button:first-of-type,md-card md-card-actions:not(.layout-column) .md-button.md-icon-button:first-of-type{margin-left:12px}[dir=rtl] md-card .md-actions:not(.layout-column) .md-button.md-icon-button:first-of-type,[dir=rtl] md-card md-card-actions:not(.layout-column) .md-button.md-icon-button:first-of-type{margin-left:auto;margin-right:12px}md-card .md-actions:not(.layout-column) .md-button.md-icon-button:last-of-type,md-card md-card-actions:not(.layout-column) .md-button.md-icon-button:last-of-type{margin-right:12px}[dir=rtl] md-card .md-actions:not(.layout-column) .md-button.md-icon-button:last-of-type,[dir=rtl] md-card md-card-actions:not(.layout-column) .md-button.md-icon-button:last-of-type{margin-right:auto;margin-left:12px}md-card .md-actions:not(.layout-column) .md-button+md-card-icon-actions,md-card md-card-actions:not(.layout-column) .md-button+md-card-icon-actions{flex:1;justify-content:flex-end;display:flex;flex-direction:row}md-card md-card-footer{margin-top:auto;padding:16px}@media screen and (-ms-high-contrast:active){md-card{border:1px solid #fff}}.md-image-no-fill>img{width:auto;height:auto}.md-contact-chips .md-chips md-chip{padding:0 25px 0 0}[dir=rtl] .md-contact-chips .md-chips md-chip{padding:0 0 0 25px}.md-contact-chips .md-chips md-chip .md-contact-avatar{float:left}[dir=rtl] .md-contact-chips .md-chips md-chip .md-contact-avatar{float:right}.md-contact-chips .md-chips md-chip .md-contact-avatar img{height:32px;border-radius:16px}.md-contact-chips .md-chips md-chip .md-contact-name{display:inline-block;height:32px;margin-left:8px}[dir=rtl] .md-contact-chips .md-chips md-chip .md-contact-name{margin-left:auto;margin-right:8px}.md-contact-suggestion{height:56px}.md-contact-suggestion img{height:40px;border-radius:20px;margin-top:8px}.md-contact-suggestion .md-contact-name{margin-left:8px;width:120px}[dir=rtl] .md-contact-suggestion .md-contact-name{margin-left:auto;margin-right:8px}.md-contact-suggestion .md-contact-email,.md-contact-suggestion .md-contact-name{display:inline-block;overflow:hidden;text-overflow:ellipsis}.md-contact-chips-suggestions li{height:100%}.md-chips{display:block;font-family:Roboto,"Helvetica Neue",sans-serif;font-size:16px;padding:0 0 8px 3px;vertical-align:middle}.md-chips:after{content:'';display:table;clear:both}[dir=rtl] .md-chips{padding:0 3px 8px 0}.md-chips.md-readonly .md-chip-input-container{min-height:32px}.md-chips:not(.md-readonly){cursor:text}.md-chips.md-removable md-chip{padding-right:22px}[dir=rtl] .md-chips.md-removable md-chip{padding-right:0;padding-left:22px}.md-chips.md-removable md-chip .md-chip-content{padding-right:4px}[dir=rtl] .md-chips.md-removable md-chip .md-chip-content{padding-right:0;padding-left:4px}.md-chips md-chip{cursor:default;border-radius:16px;display:block;height:32px;line-height:32px;margin:8px 8px 0 0;padding:0 12px 0 12px;float:left;box-sizing:border-box;max-width:100%;position:relative}[dir=rtl] .md-chips md-chip{margin:8px 0 0 8px}[dir=rtl] .md-chips md-chip{float:right}.md-chips md-chip .md-chip-content{display:block;float:left;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}[dir=rtl] .md-chips md-chip .md-chip-content{float:right}.md-chips md-chip .md-chip-content:focus{outline:0}.md-chips md-chip._md-chip-content-edit-is-enabled{-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none}.md-chips md-chip .md-chip-remove-container{position:absolute;right:0;line-height:22px}[dir=rtl] .md-chips md-chip .md-chip-remove-container{right:auto;left:0}.md-chips md-chip .md-chip-remove{text-align:center;width:32px;height:32px;min-width:0;padding:0;background:0 0;border:none;box-shadow:none;margin:0;position:relative}.md-chips md-chip .md-chip-remove md-icon{height:18px;width:18px;position:absolute;top:50%;left:50%;transform:translate3d(-50%,-50%,0)}.md-chips .md-chip-input-container{display:block;line-height:32px;margin:8px 8px 0 0;padding:0;float:left}[dir=rtl] .md-chips .md-chip-input-container{margin:8px 0 0 8px}[dir=rtl] .md-chips .md-chip-input-container{float:right}.md-chips .md-chip-input-container input:not([type]),.md-chips .md-chip-input-container input[type=email],.md-chips .md-chip-input-container input[type=number],.md-chips .md-chip-input-container input[type=tel],.md-chips .md-chip-input-container input[type=text],.md-chips .md-chip-input-container input[type=url]{border:0;height:32px;line-height:32px;padding:0}.md-chips .md-chip-input-container input:not([type]):focus,.md-chips .md-chip-input-container input[type=email]:focus,.md-chips .md-chip-input-container input[type=number]:focus,.md-chips .md-chip-input-container input[type=tel]:focus,.md-chips .md-chip-input-container input[type=text]:focus,.md-chips .md-chip-input-container input[type=url]:focus{outline:0}.md-chips .md-chip-input-container md-autocomplete,.md-chips .md-chip-input-container md-autocomplete-wrap{background:0 0;height:32px}.md-chips .md-chip-input-container md-autocomplete md-autocomplete-wrap{box-shadow:none}.md-chips .md-chip-input-container md-autocomplete input{position:relative}.md-chips .md-chip-input-container input{border:0;height:32px;line-height:32px;padding:0}.md-chips .md-chip-input-container input:focus{outline:0}.md-chips .md-chip-input-container md-autocomplete,.md-chips .md-chip-input-container md-autocomplete-wrap{height:32px}.md-chips .md-chip-input-container md-autocomplete{box-shadow:none}.md-chips .md-chip-input-container md-autocomplete input{position:relative}.md-chips .md-chip-input-container:not(:first-child){margin:8px 8px 0 0}[dir=rtl] .md-chips .md-chip-input-container:not(:first-child){margin:8px 0 0 8px}.md-chips .md-chip-input-container input{background:0 0;border-width:0}.md-chips md-autocomplete button{display:none}@media screen and (-ms-high-contrast:active){.md-chip-input-container,md-chip{border:1px solid #fff}.md-chip-input-container md-autocomplete{border:none}}.md-inline-form md-checkbox{margin:19px 0 18px}md-checkbox{box-sizing:border-box;display:inline-block;margin-bottom:16px;white-space:nowrap;cursor:pointer;outline:0;user-select:none;position:relative;min-width:20px;min-height:20px;margin-left:0;margin-right:16px}[dir=rtl] md-checkbox{margin-left:16px}[dir=rtl] md-checkbox{margin-right:0}md-checkbox:last-of-type{margin-left:0;margin-right:0}md-checkbox.md-focused:not([disabled]) .md-container:before{left:-8px;top:-8px;right:-8px;bottom:-8px}md-checkbox.md-focused:not([disabled]):not(.md-checked) .md-container:before{background-color:rgba(0,0,0,.12)}md-checkbox.md-align-top-left>div.md-container{top:12px}md-checkbox .md-container{position:absolute;top:50%;transform:translateY(-50%);box-sizing:border-box;display:inline-block;width:20px;height:20px;left:0;right:auto}[dir=rtl] md-checkbox .md-container{left:auto}[dir=rtl] md-checkbox .md-container{right:0}md-checkbox .md-container:before{box-sizing:border-box;background-color:transparent;border-radius:50%;content:'';position:absolute;display:block;height:auto;left:0;top:0;right:0;bottom:0;transition:all .5s;width:auto}md-checkbox .md-container:after{box-sizing:border-box;content:'';position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px}md-checkbox .md-container .md-ripple-container{position:absolute;display:block;width:auto;height:auto;left:-15px;top:-15px;right:-15px;bottom:-15px}md-checkbox .md-icon{box-sizing:border-box;transition:240ms;position:absolute;top:0;left:0;width:20px;height:20px;border-width:2px;border-style:solid;border-radius:2px}md-checkbox.md-checked .md-icon{border-color:transparent}md-checkbox.md-checked .md-icon:after{box-sizing:border-box;transform:rotate(45deg);position:absolute;left:4.6666666667px;top:.2222222222px;display:table;width:6.6666666667px;height:13.3333333333px;border-width:2px;border-style:solid;border-top:0;border-left:0;content:''}md-checkbox[disabled]{cursor:default}md-checkbox.md-indeterminate .md-icon:after{box-sizing:border-box;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:table;width:12px;height:2px;border-width:2px;border-style:solid;border-top:0;border-left:0;content:''}md-checkbox .md-label{box-sizing:border-box;position:relative;display:inline-block;vertical-align:middle;white-space:normal;user-select:text;margin-left:30px;margin-right:0}[dir=rtl] md-checkbox .md-label{margin-left:0}[dir=rtl] md-checkbox .md-label{margin-right:30px}md-content{display:block;position:relative;overflow:auto;-webkit-overflow-scrolling:touch}md-content[md-scroll-y]{overflow-y:auto;overflow-x:hidden}md-content[md-scroll-x]{overflow-x:auto;overflow-y:hidden}@media print{md-content{overflow:visible!important}}md-calendar{font-size:13px;user-select:none}.md-calendar-scroll-mask{display:inline-block;overflow:hidden;height:308px}.md-calendar-scroll-mask .md-virtual-repeat-scroller{overflow-y:scroll;-webkit-overflow-scrolling:touch}.md-calendar-scroll-mask .md-virtual-repeat-scroller::-webkit-scrollbar{display:none}.md-calendar-scroll-mask .md-virtual-repeat-offsetter{width:100%}.md-calendar-scroll-container{box-shadow:inset -3px 3px 6px rgba(0,0,0,.2);display:inline-block;height:308px;width:346px}.md-calendar-date{height:44px;width:44px;text-align:center;padding:0;border:none;box-sizing:content-box}.md-calendar-date:first-child{padding-left:16px}[dir=rtl] .md-calendar-date:first-child{padding-left:0;padding-right:16px}.md-calendar-date:last-child{padding-right:16px}[dir=rtl] .md-calendar-date:last-child{padding-right:0;padding-left:16px}.md-calendar-date.md-calendar-date-disabled{cursor:default}.md-calendar-date-selection-indicator{transition:background-color,color .4s cubic-bezier(.25,.8,.25,1);border-radius:50%;display:inline-block;width:40px;height:40px;line-height:40px}.md-calendar-date:not(.md-disabled) .md-calendar-date-selection-indicator{cursor:pointer}.md-calendar-month-label{height:44px;font-size:14px;font-weight:500;padding:0 0 0 24px}[dir=rtl] .md-calendar-month-label{padding:0 24px 0 0}md-calendar-month .md-calendar-month-label:not(.md-calendar-month-label-disabled){cursor:pointer}.md-calendar-month-label md-icon{transform:rotate(180deg)}[dir=rtl] .md-calendar-month-label md-icon{transform:none}.md-calendar-month-label span{vertical-align:middle}.md-calendar-day-header{table-layout:fixed;border-spacing:0;border-collapse:collapse}.md-calendar-day-header th{height:40px;width:44px;text-align:center;padding:0;border:none;box-sizing:content-box;font-weight:400}.md-calendar-day-header th:first-child{padding-left:16px}[dir=rtl] .md-calendar-day-header th:first-child{padding-left:0;padding-right:16px}.md-calendar-day-header th:last-child{padding-right:16px}[dir=rtl] .md-calendar-day-header th:last-child{padding-right:0;padding-left:16px}.md-calendar{table-layout:fixed;border-spacing:0;border-collapse:collapse}.md-calendar tr:last-child td{border-bottom-width:1px;border-bottom-style:solid}.md-calendar:first-child{border-top:1px solid transparent}.md-calendar tbody,.md-calendar td,.md-calendar tr{vertical-align:middle;box-sizing:content-box}md-datepicker{white-space:nowrap;overflow:hidden;padding-right:18px;margin-right:-18px;vertical-align:middle}[dir=rtl] md-datepicker{padding-right:0;padding-left:18px}[dir=rtl] md-datepicker{margin-right:auto;margin-left:-18px}.md-inline-form md-datepicker{margin-top:12px}.md-datepicker-button{display:inline-block;box-sizing:border-box;background:0 0;vertical-align:middle;position:relative}.md-datepicker-button:before{top:0;left:0;bottom:0;right:0;position:absolute;content:'';speak:none}.md-datepicker-input{font-size:14px;box-sizing:border-box;border:none;box-shadow:none;outline:0;background:0 0;min-width:120px;max-width:328px;padding:0 0 5px}.md-datepicker-input::-ms-clear{display:none}._md-datepicker-floating-label>md-datepicker{overflow:visible}._md-datepicker-floating-label>md-datepicker .md-datepicker-input-container{border:none}._md-datepicker-floating-label>md-datepicker .md-datepicker-button{float:left;margin-top:-2.5px}[dir=rtl] ._md-datepicker-floating-label>md-datepicker .md-datepicker-button{float:right}._md-datepicker-floating-label._md-datepicker-has-calendar-icon>label:not(.md-no-float):not(.md-container-ignore){right:18px;left:auto;width:calc(100% - 84px)}[dir=rtl] ._md-datepicker-floating-label._md-datepicker-has-calendar-icon>label:not(.md-no-float):not(.md-container-ignore){right:auto}[dir=rtl] ._md-datepicker-floating-label._md-datepicker-has-calendar-icon>label:not(.md-no-float):not(.md-container-ignore){left:18px}._md-datepicker-floating-label._md-datepicker-has-calendar-icon .md-input-message-animation{margin-left:64px}[dir=rtl] ._md-datepicker-floating-label._md-datepicker-has-calendar-icon .md-input-message-animation{margin-left:auto;margin-right:64px}.md-datepicker-input-container{position:relative;border-bottom-width:1px;border-bottom-style:solid;display:inline-block;width:auto}.md-icon-button+.md-datepicker-input-container{margin-left:12px}[dir=rtl] .md-icon-button+.md-datepicker-input-container{margin-left:auto;margin-right:12px}.md-datepicker-input-container.md-datepicker-focused{border-bottom-width:2px}.md-datepicker-is-showing .md-scroll-mask{z-index:99}.md-datepicker-calendar-pane{position:absolute;top:0;left:-100%;z-index:100;border-width:1px;border-style:solid;background:0 0;transform:scale(0);transform-origin:0 0;transition:transform .2s cubic-bezier(.25,.8,.25,1)}.md-datepicker-calendar-pane.md-pane-open{transform:scale(1)}.md-datepicker-input-mask{height:40px;width:340px;position:relative;overflow:hidden;background:0 0;pointer-events:none;cursor:text}.md-datepicker-calendar{opacity:0;transition:opacity .2s cubic-bezier(.5,0,.25,1)}.md-pane-open .md-datepicker-calendar{opacity:1}.md-datepicker-calendar md-calendar:focus{outline:0}.md-datepicker-expand-triangle{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid}.md-datepicker-triangle-button{position:absolute;right:0;top:5px;transform:translateY(-25%) translateX(45%)}[dir=rtl] .md-datepicker-triangle-button{right:auto;left:0}[dir=rtl] .md-datepicker-triangle-button{transform:translateY(-25%) translateX(-45%)}.md-datepicker-triangle-button.md-button.md-icon-button{height:36px;width:36px;position:absolute;padding:8px}md-datepicker[disabled] .md-datepicker-input-container{border-bottom-color:transparent}md-datepicker[disabled] .md-datepicker-triangle-button{display:none}.md-datepicker-open{overflow:hidden}.md-datepicker-open .md-datepicker-input-container,.md-datepicker-open input.md-input{border-bottom-color:transparent}.md-datepicker-open .md-datepicker-triangle-button,.md-datepicker-open.md-input-has-placeholder>label,.md-datepicker-open.md-input-has-value>label{display:none}.md-datepicker-pos-adjusted .md-datepicker-input-mask{display:none}.md-datepicker-calendar-pane .md-calendar{transform:translateY(-85px);transition:transform .65s cubic-bezier(.25,.8,.25,1);transition-delay:125ms}.md-datepicker-calendar-pane.md-pane-open .md-calendar{transform:translateY(0)}.md-dialog-is-showing{max-height:100%}.md-dialog-container{display:flex;justify-content:center;align-items:center;position:absolute;top:0;left:0;width:100%;height:100%;z-index:80;overflow:hidden}md-dialog{opacity:0;min-width:240px;max-width:80%;max-height:80%;position:relative;overflow:auto;box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 13px 19px 2px rgba(0,0,0,.14),0 5px 24px 4px rgba(0,0,0,.12);display:flex;flex-direction:column}md-dialog.md-transition-in{opacity:1;transition:all .4s cubic-bezier(.25,.8,.25,1);transform:translate(0,0) scale(1)}md-dialog.md-transition-out{opacity:0;transition:all .4s cubic-bezier(.25,.8,.25,1);transform:translate(0,100%) scale(.2)}md-dialog>form{display:flex;flex-direction:column;overflow:auto}md-dialog .md-dialog-content{padding:24px}md-dialog md-dialog-content{order:1;flex-direction:column;overflow:auto;-webkit-overflow-scrolling:touch}md-dialog md-dialog-content:not([layout=row])>:first-child:not(.md-subheader){margin-top:0}md-dialog md-dialog-content:focus{outline:0}md-dialog md-dialog-content .md-subheader{margin:0}md-dialog md-dialog-content .md-dialog-content-body{width:100%}md-dialog md-dialog-content .md-prompt-input-container{width:100%;box-sizing:border-box}md-dialog .md-actions,md-dialog md-dialog-actions{display:flex;order:2;box-sizing:border-box;align-items:center;justify-content:flex-end;margin-bottom:0;padding-right:8px;padding-left:16px;min-height:52px;overflow:hidden}[dir=rtl] md-dialog .md-actions,[dir=rtl] md-dialog md-dialog-actions{padding-right:16px}[dir=rtl] md-dialog .md-actions,[dir=rtl] md-dialog md-dialog-actions{padding-left:8px}md-dialog .md-actions .md-button,md-dialog md-dialog-actions .md-button{margin-bottom:8px;margin-left:8px;margin-right:0;margin-top:8px}[dir=rtl] md-dialog .md-actions .md-button,[dir=rtl] md-dialog md-dialog-actions .md-button{margin-left:0}[dir=rtl] md-dialog .md-actions .md-button,[dir=rtl] md-dialog md-dialog-actions .md-button{margin-right:8px}md-dialog.md-content-overflow .md-actions,md-dialog.md-content-overflow md-dialog-actions{border-top-width:1px;border-top-style:solid}@media screen and (-ms-high-contrast:active){md-dialog{border:1px solid #fff}}@media (max-width:959px){md-dialog.md-dialog-fullscreen{min-height:100%;min-width:100%;border-radius:0}}md-divider{display:block;border-top-width:1px;border-top-style:solid;margin:0}md-divider[md-inset]{margin-left:80px}[dir=rtl] md-divider[md-inset]{margin-left:auto;margin-right:80px}.layout-gt-lg-row>md-divider,.layout-gt-md-row>md-divider,.layout-gt-sm-row>md-divider,.layout-gt-xs-row>md-divider,.layout-lg-row>md-divider,.layout-md-row>md-divider,.layout-row>md-divider,.layout-sm-row>md-divider,.layout-xl-row>md-divider,.layout-xs-row>md-divider{border-top-width:0;border-right-width:1px;border-right-style:solid}md-fab-speed-dial{position:relative;display:flex;align-items:center;z-index:20}md-fab-speed-dial.md-fab-bottom-right{top:auto;right:20px;bottom:20px;left:auto;position:absolute}md-fab-speed-dial.md-fab-bottom-left{top:auto;right:auto;bottom:20px;left:20px;position:absolute}md-fab-speed-dial.md-fab-top-right{top:20px;right:20px;bottom:auto;left:auto;position:absolute}md-fab-speed-dial.md-fab-top-left{top:20px;right:auto;bottom:auto;left:20px;position:absolute}md-fab-speed-dial:not(.md-hover-full){pointer-events:none}md-fab-speed-dial:not(.md-hover-full) .md-fab-action-item,md-fab-speed-dial:not(.md-hover-full) md-fab-trigger{pointer-events:auto}md-fab-speed-dial:not(.md-hover-full).md-is-open{pointer-events:auto}md-fab-speed-dial ._md-css-variables{z-index:20}md-fab-speed-dial.md-is-open .md-fab-action-item{align-items:center}md-fab-speed-dial md-fab-actions{display:flex;height:auto}md-fab-speed-dial md-fab-actions .md-fab-action-item{transition:all .3s cubic-bezier(.55,0,.55,.2)}md-fab-speed-dial.md-down{flex-direction:column}md-fab-speed-dial.md-down md-fab-trigger{order:1}md-fab-speed-dial.md-down md-fab-actions{flex-direction:column;order:2}md-fab-speed-dial.md-up{flex-direction:column}md-fab-speed-dial.md-up md-fab-trigger{order:2}md-fab-speed-dial.md-up md-fab-actions{flex-direction:column-reverse;order:1}md-fab-speed-dial.md-left{flex-direction:row}md-fab-speed-dial.md-left md-fab-trigger{order:2}md-fab-speed-dial.md-left md-fab-actions{flex-direction:row-reverse;order:1}md-fab-speed-dial.md-left md-fab-actions .md-fab-action-item{transition:all .3s cubic-bezier(.55,0,.55,.2)}md-fab-speed-dial.md-right{flex-direction:row}md-fab-speed-dial.md-right md-fab-trigger{order:1}md-fab-speed-dial.md-right md-fab-actions{flex-direction:row;order:2}md-fab-speed-dial.md-right md-fab-actions .md-fab-action-item{transition:all .3s cubic-bezier(.55,0,.55,.2)}md-fab-speed-dial.md-fling-remove .md-fab-action-item>*,md-fab-speed-dial.md-scale-remove .md-fab-action-item>*{visibility:hidden}md-fab-speed-dial.md-fling .md-fab-action-item{opacity:1}md-fab-speed-dial.md-fling.md-animations-waiting .md-fab-action-item{opacity:0;transition-duration:0s}md-fab-speed-dial.md-scale .md-fab-action-item{transform:scale(0);transition:all .3s cubic-bezier(.55,0,.55,.2);transition-duration:.1428571429s}md-fab-toolbar{display:block}md-fab-toolbar.md-fab-bottom-right{top:auto;right:20px;bottom:20px;left:auto;position:absolute}md-fab-toolbar.md-fab-bottom-left{top:auto;right:auto;bottom:20px;left:20px;position:absolute}md-fab-toolbar.md-fab-top-right{top:20px;right:20px;bottom:auto;left:auto;position:absolute}md-fab-toolbar.md-fab-top-left{top:20px;right:auto;bottom:auto;left:20px;position:absolute}md-fab-toolbar .md-fab-toolbar-wrapper{display:block;position:relative;overflow:hidden;height:68px}md-fab-toolbar md-fab-trigger{position:absolute;z-index:20}md-fab-toolbar md-fab-trigger button{overflow:visible!important}md-fab-toolbar md-fab-trigger .md-fab-toolbar-background{display:block;position:absolute;z-index:21;opacity:1;transition:all .3s cubic-bezier(.55,0,.55,.2)}md-fab-toolbar md-fab-trigger md-icon{position:relative;z-index:22;opacity:1;transition:all .2s ease-in}md-fab-toolbar.md-left md-fab-trigger{right:0}[dir=rtl] md-fab-toolbar.md-left md-fab-trigger{right:auto;left:0}md-fab-toolbar.md-left .md-toolbar-tools{flex-direction:row-reverse}md-fab-toolbar.md-left .md-toolbar-tools>.md-button:first-child{margin-right:.6rem}[dir=rtl] md-fab-toolbar.md-left .md-toolbar-tools>.md-button:first-child{margin-right:auto;margin-left:.6rem}md-fab-toolbar.md-left .md-toolbar-tools>.md-button:first-child{margin-left:-.8rem}[dir=rtl] md-fab-toolbar.md-left .md-toolbar-tools>.md-button:first-child{margin-left:auto;margin-right:-.8rem}md-fab-toolbar.md-left .md-toolbar-tools>.md-button:last-child{margin-right:8px}[dir=rtl] md-fab-toolbar.md-left .md-toolbar-tools>.md-button:last-child{margin-right:auto;margin-left:8px}md-fab-toolbar.md-right md-fab-trigger{left:0}[dir=rtl] md-fab-toolbar.md-right md-fab-trigger{left:auto;right:0}md-fab-toolbar.md-right .md-toolbar-tools{flex-direction:row}md-fab-toolbar md-toolbar{background-color:transparent!important;pointer-events:none;z-index:23}md-fab-toolbar md-toolbar .md-toolbar-tools{padding:0 20px;margin-top:3px}md-fab-toolbar md-toolbar .md-fab-action-item{opacity:0;transform:scale(0);transition:all .3s cubic-bezier(.55,0,.55,.2);transition-duration:.15s}md-fab-toolbar.md-is-open md-fab-trigger>button{box-shadow:none}md-fab-toolbar.md-is-open md-fab-trigger>button md-icon{opacity:0}md-fab-toolbar.md-is-open .md-fab-action-item{opacity:1;transform:scale(1)}md-grid-list{box-sizing:border-box;display:block;position:relative}md-grid-list md-grid-tile,md-grid-list md-grid-tile-footer,md-grid-list md-grid-tile-header,md-grid-list md-grid-tile>figure{box-sizing:border-box}md-grid-list md-grid-tile{display:block;position:absolute}md-grid-list md-grid-tile figure{display:flex;align-items:center;justify-content:center;height:100%;position:absolute;top:0;right:0;bottom:0;left:0;padding:0;margin:0}md-grid-list md-grid-tile md-grid-tile-footer,md-grid-list md-grid-tile md-grid-tile-header{display:flex;flex-direction:row;align-items:center;height:48px;color:#fff;background:rgba(0,0,0,.18);overflow:hidden;position:absolute;left:0;right:0}md-grid-list md-grid-tile md-grid-tile-footer h3,md-grid-list md-grid-tile md-grid-tile-footer h4,md-grid-list md-grid-tile md-grid-tile-header h3,md-grid-list md-grid-tile md-grid-tile-header h4{font-weight:400;margin:0 0 0 16px}md-grid-list md-grid-tile md-grid-tile-footer h3,md-grid-list md-grid-tile md-grid-tile-header h3{font-size:14px}md-grid-list md-grid-tile md-grid-tile-footer h4,md-grid-list md-grid-tile md-grid-tile-header h4{font-size:12px}md-grid-list md-grid-tile md-grid-tile-header{top:0}md-grid-list md-grid-tile md-grid-tile-footer{bottom:0}@media screen and (-ms-high-contrast:active){md-grid-tile{border:1px solid #fff}md-grid-tile-footer{border-top:1px solid #fff}}md-icon{margin:auto;background-repeat:no-repeat no-repeat;display:inline-block;vertical-align:middle;fill:currentColor;height:24px;width:24px;min-height:24px;min-width:24px}md-icon svg{pointer-events:none;display:block}md-icon[md-font-icon]{line-height:24px;width:auto}md-input-container{display:inline-block;position:relative;padding:2px;margin:18px 0;vertical-align:middle}md-input-container:after{content:'';display:table;clear:both}md-input-container.md-block{display:block}md-input-container .md-errors-spacer{float:right;min-height:24px;min-width:1px}[dir=rtl] md-input-container .md-errors-spacer{float:left}md-input-container>md-icon{position:absolute;top:8px;left:2px;right:auto}[dir=rtl] md-input-container>md-icon{left:auto}[dir=rtl] md-input-container>md-icon{right:2px}md-input-container input[type=color],md-input-container input[type=date],md-input-container input[type=datetime-local],md-input-container input[type=datetime],md-input-container input[type=email],md-input-container input[type=month],md-input-container input[type=number],md-input-container input[type=password],md-input-container input[type=search],md-input-container input[type=tel],md-input-container input[type=text],md-input-container input[type=time],md-input-container input[type=url],md-input-container input[type=week],md-input-container textarea{-moz-appearance:none;-webkit-appearance:none}md-input-container input[type=date],md-input-container input[type=datetime-local],md-input-container input[type=month],md-input-container input[type=time],md-input-container input[type=week]{min-height:26px}md-input-container textarea{resize:none;overflow:hidden}md-input-container textarea.md-input{min-height:26px;-ms-flex-preferred-size:auto}md-input-container textarea[md-no-autogrow]{height:auto;overflow:auto}md-input-container label:not(.md-container-ignore){position:absolute;bottom:100%;left:0;right:auto}[dir=rtl] md-input-container label:not(.md-container-ignore){left:auto}[dir=rtl] md-input-container label:not(.md-container-ignore){right:0}md-input-container label:not(.md-container-ignore).md-required:after{content:' *';font-size:13px;vertical-align:top}md-input-container .md-placeholder,md-input-container label:not(.md-no-float):not(.md-container-ignore){overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%;order:1;pointer-events:none;-webkit-font-smoothing:antialiased;padding-left:3px;padding-right:0;z-index:1;transform:translate3d(0,28px,0) scale(1);transition:transform .4s cubic-bezier(.25,.8,.25,1);max-width:100%;transform-origin:left top}[dir=rtl] md-input-container .md-placeholder,[dir=rtl] md-input-container label:not(.md-no-float):not(.md-container-ignore){padding-left:0}[dir=rtl] md-input-container .md-placeholder,[dir=rtl] md-input-container label:not(.md-no-float):not(.md-container-ignore){padding-right:3px}[dir=rtl] md-input-container .md-placeholder,[dir=rtl] md-input-container label:not(.md-no-float):not(.md-container-ignore){transform-origin:right top}md-input-container .md-placeholder{position:absolute;top:0;opacity:0;transition-property:opacity,transform;transform:translate3d(0,30px,0)}md-input-container.md-input-focused .md-placeholder{opacity:1;transform:translate3d(0,24px,0)}md-input-container.md-input-has-value .md-placeholder{transition:none;opacity:0}md-input-container:not(.md-input-has-value) input:not(:focus),md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-ampm-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-day-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-hour-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-millisecond-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-minute-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-month-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-second-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-text,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-week-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-year-field{color:transparent}md-input-container .md-input{order:2;display:block;margin-top:0;background:0 0;padding-top:2px;padding-bottom:1px;padding-left:2px;padding-right:2px;border-width:0 0 1px 0;line-height:26px;height:30px;-ms-flex-preferred-size:26px;border-radius:0;border-style:solid;width:100%;box-sizing:border-box;float:left}[dir=rtl] md-input-container .md-input{float:right}md-input-container .md-input:focus{outline:0}md-input-container .md-input:invalid{outline:0;box-shadow:none}md-input-container .md-input.md-no-flex{flex:none!important}md-input-container .md-char-counter{text-align:right;padding-right:2px;padding-left:0}[dir=rtl] md-input-container .md-char-counter{text-align:left}[dir=rtl] md-input-container .md-char-counter{padding-right:0}[dir=rtl] md-input-container .md-char-counter{padding-left:2px}md-input-container .md-input-messages-animation{position:relative;order:4;overflow:hidden;clear:left}[dir=rtl] md-input-container .md-input-messages-animation{clear:right}md-input-container .md-input-messages-animation.ng-enter .md-input-message-animation{opacity:0;margin-top:-100px}md-input-container .md-char-counter,md-input-container .md-input-message-animation{font-size:12px;line-height:14px;overflow:hidden;transition:all .3s cubic-bezier(.55,0,.55,.2);opacity:1;margin-top:0;padding-top:5px}md-input-container .md-char-counter:not(.md-char-counter),md-input-container .md-input-message-animation:not(.md-char-counter){padding-right:5px;padding-left:0}[dir=rtl] md-input-container .md-char-counter:not(.md-char-counter),[dir=rtl] md-input-container .md-input-message-animation:not(.md-char-counter){padding-right:0}[dir=rtl] md-input-container .md-char-counter:not(.md-char-counter),[dir=rtl] md-input-container .md-input-message-animation:not(.md-char-counter){padding-left:5px}md-input-container:not(.md-input-invalid) .md-auto-hide .md-input-message-animation{opacity:0;margin-top:-100px}md-input-container .md-input-message-animation:not(.ng-animate){opacity:0;margin-top:-100px}md-input-container .md-input-message-animation.ng-enter{opacity:0;margin-top:-100px}md-input-container.md-input-focused label:not(.md-no-float),md-input-container.md-input-has-placeholder label:not(.md-no-float),md-input-container.md-input-has-value label:not(.md-no-float){transform:translate3d(0,6px,0) scale(.75);transition:transform cubic-bezier(.25,.8,.25,1) .4s,width cubic-bezier(.25,.8,.25,1) .4s}md-input-container.md-input-has-value label{transition:none}md-input-container .md-input.ng-invalid.ng-dirty,md-input-container.md-input-focused .md-input,md-input-container.md-input-resized .md-input{padding-bottom:0;border-width:0 0 2px 0}[disabled] md-input-container .md-input,md-input-container .md-input[disabled]{background-position:bottom -1px left 0;background-size:4px 1px;background-repeat:repeat-x}md-input-container.md-icon-float{transition:margin-top .4s cubic-bezier(.25,.8,.25,1)}md-input-container.md-icon-float>label{pointer-events:none;position:absolute}md-input-container.md-icon-float>md-icon{top:8px;left:2px;right:auto}[dir=rtl] md-input-container.md-icon-float>md-icon{left:auto}[dir=rtl] md-input-container.md-icon-float>md-icon{right:2px}md-input-container.md-icon-left>label .md-placeholder,md-input-container.md-icon-left>label:not(.md-no-float):not(.md-container-ignore),md-input-container.md-icon-right>label .md-placeholder,md-input-container.md-icon-right>label:not(.md-no-float):not(.md-container-ignore){width:calc(100% - 36px - 18px)}md-input-container.md-icon-left{padding-left:36px;padding-right:0}[dir=rtl] md-input-container.md-icon-left{padding-left:0}[dir=rtl] md-input-container.md-icon-left{padding-right:36px}md-input-container.md-icon-left>label{left:36px;right:auto}[dir=rtl] md-input-container.md-icon-left>label{left:auto}[dir=rtl] md-input-container.md-icon-left>label{right:36px}md-input-container.md-icon-right{padding-left:0;padding-right:36px}[dir=rtl] md-input-container.md-icon-right{padding-left:36px}[dir=rtl] md-input-container.md-icon-right{padding-right:0}md-input-container.md-icon-right>md-icon:last-of-type{margin:0;right:2px;left:auto}[dir=rtl] md-input-container.md-icon-right>md-icon:last-of-type{right:auto}[dir=rtl] md-input-container.md-icon-right>md-icon:last-of-type{left:2px}md-input-container.md-icon-left.md-icon-right{padding-left:36px;padding-right:36px}md-input-container.md-icon-left.md-icon-right>label .md-placeholder,md-input-container.md-icon-left.md-icon-right>label:not(.md-no-float):not(.md-container-ignore){width:calc(100% - (36px * 2))}.md-resize-wrapper{position:relative}.md-resize-wrapper:after{content:'';display:table;clear:both}.md-resize-handle{position:absolute;bottom:-5px;left:0;height:10px;background:0 0;width:100%;cursor:ns-resize}@media screen and (-ms-high-contrast:active){md-input-container.md-default-theme>md-icon{fill:#fff}}md-list{display:block;padding:8px 0 8px 0}md-list .md-subheader{font-size:14px;font-weight:500;letter-spacing:.010em;line-height:1.2em}md-list.md-dense md-list-item,md-list.md-dense md-list-item .md-list-item-inner{min-height:48px}md-list.md-dense md-list-item .md-list-item-inner::before,md-list.md-dense md-list-item::before{content:'';min-height:48px;visibility:hidden;display:inline-block}md-list.md-dense md-list-item .md-list-item-inner md-icon:first-child,md-list.md-dense md-list-item md-icon:first-child{width:20px;height:20px}md-list.md-dense md-list-item .md-list-item-inner>md-icon:first-child:not(.md-avatar-icon),md-list.md-dense md-list-item>md-icon:first-child:not(.md-avatar-icon){margin-right:36px}[dir=rtl] md-list.md-dense md-list-item .md-list-item-inner>md-icon:first-child:not(.md-avatar-icon),[dir=rtl] md-list.md-dense md-list-item>md-icon:first-child:not(.md-avatar-icon){margin-right:auto;margin-left:36px}md-list.md-dense md-list-item .md-avatar,md-list.md-dense md-list-item .md-avatar-icon,md-list.md-dense md-list-item .md-list-item-inner .md-avatar,md-list.md-dense md-list-item .md-list-item-inner .md-avatar-icon{margin-right:20px}[dir=rtl] md-list.md-dense md-list-item .md-avatar,[dir=rtl] md-list.md-dense md-list-item .md-avatar-icon,[dir=rtl] md-list.md-dense md-list-item .md-list-item-inner .md-avatar,[dir=rtl] md-list.md-dense md-list-item .md-list-item-inner .md-avatar-icon{margin-right:auto;margin-left:20px}md-list.md-dense md-list-item .md-avatar,md-list.md-dense md-list-item .md-list-item-inner .md-avatar{flex:none;width:36px;height:36px}md-list.md-dense md-list-item.md-2-line .md-list-item-text.md-offset,md-list.md-dense md-list-item.md-2-line>.md-no-style .md-list-item-text.md-offset,md-list.md-dense md-list-item.md-3-line .md-list-item-text.md-offset,md-list.md-dense md-list-item.md-3-line>.md-no-style .md-list-item-text.md-offset{margin-left:56px}[dir=rtl] md-list.md-dense md-list-item.md-2-line .md-list-item-text.md-offset,[dir=rtl] md-list.md-dense md-list-item.md-2-line>.md-no-style .md-list-item-text.md-offset,[dir=rtl] md-list.md-dense md-list-item.md-3-line .md-list-item-text.md-offset,[dir=rtl] md-list.md-dense md-list-item.md-3-line>.md-no-style .md-list-item-text.md-offset{margin-left:auto;margin-right:56px}md-list.md-dense md-list-item.md-2-line .md-list-item-text h3,md-list.md-dense md-list-item.md-2-line .md-list-item-text h4,md-list.md-dense md-list-item.md-2-line .md-list-item-text p,md-list.md-dense md-list-item.md-2-line>.md-no-style .md-list-item-text h3,md-list.md-dense md-list-item.md-2-line>.md-no-style .md-list-item-text h4,md-list.md-dense md-list-item.md-2-line>.md-no-style .md-list-item-text p,md-list.md-dense md-list-item.md-3-line .md-list-item-text h3,md-list.md-dense md-list-item.md-3-line .md-list-item-text h4,md-list.md-dense md-list-item.md-3-line .md-list-item-text p,md-list.md-dense md-list-item.md-3-line>.md-no-style .md-list-item-text h3,md-list.md-dense md-list-item.md-3-line>.md-no-style .md-list-item-text h4,md-list.md-dense md-list-item.md-3-line>.md-no-style .md-list-item-text p{line-height:1.05;font-size:12px}md-list.md-dense md-list-item.md-2-line .md-list-item-text h3,md-list.md-dense md-list-item.md-2-line>.md-no-style .md-list-item-text h3,md-list.md-dense md-list-item.md-3-line .md-list-item-text h3,md-list.md-dense md-list-item.md-3-line>.md-no-style .md-list-item-text h3{font-size:13px}md-list.md-dense md-list-item.md-2-line,md-list.md-dense md-list-item.md-2-line>.md-no-style{min-height:60px}md-list.md-dense md-list-item.md-2-line::before,md-list.md-dense md-list-item.md-2-line>.md-no-style::before{content:'';min-height:60px;visibility:hidden;display:inline-block}md-list.md-dense md-list-item.md-2-line .md-avatar-icon,md-list.md-dense md-list-item.md-2-line>.md-avatar,md-list.md-dense md-list-item.md-2-line>.md-no-style .md-avatar-icon,md-list.md-dense md-list-item.md-2-line>.md-no-style>.md-avatar{margin-top:12px}md-list.md-dense md-list-item.md-3-line,md-list.md-dense md-list-item.md-3-line>.md-no-style{min-height:76px}md-list.md-dense md-list-item.md-3-line::before,md-list.md-dense md-list-item.md-3-line>.md-no-style::before{content:'';min-height:76px;visibility:hidden;display:inline-block}md-list.md-dense md-list-item.md-3-line>.md-avatar,md-list.md-dense md-list-item.md-3-line>.md-no-style>.md-avatar,md-list.md-dense md-list-item.md-3-line>.md-no-style>md-icon:first-child,md-list.md-dense md-list-item.md-3-line>md-icon:first-child{margin-top:16px}md-list-item{position:relative}md-list-item.md-proxy-focus.md-focused .md-no-style{transition:background-color .15s linear}md-list-item._md-button-wrap{position:relative}md-list-item._md-button-wrap>div.md-button:first-child{display:flex;align-items:center;justify-content:flex-start;padding:0 16px;margin:0;font-weight:400;text-align:left;border:medium none}[dir=rtl] md-list-item._md-button-wrap>div.md-button:first-child{text-align:right}md-list-item._md-button-wrap>div.md-button:first-child>.md-button:first-child{position:absolute;top:0;left:0;height:100%;margin:0;padding:0}md-list-item._md-button-wrap>div.md-button:first-child .md-list-item-inner{width:100%;min-height:inherit}md-list-item .md-no-style,md-list-item.md-no-proxy{position:relative;padding:0 16px;flex:1 1 auto}md-list-item .md-no-style.md-button,md-list-item.md-no-proxy.md-button{font-size:inherit;height:inherit;text-align:left;text-transform:none;width:100%;white-space:normal;flex-direction:inherit;align-items:inherit;border-radius:0;margin:0}[dir=rtl] md-list-item .md-no-style.md-button,[dir=rtl] md-list-item.md-no-proxy.md-button{text-align:right}md-list-item .md-no-style.md-button>.md-ripple-container,md-list-item.md-no-proxy.md-button>.md-ripple-container{border-radius:0}md-list-item .md-no-style:focus,md-list-item.md-no-proxy:focus{outline:0}md-list-item.md-clickable:hover{cursor:pointer}md-list-item md-divider{position:absolute;bottom:0;left:0;width:100%}[dir=rtl] md-list-item md-divider{left:auto;right:0}md-list-item md-divider[md-inset]{left:72px;width:calc(100% - 72px);margin:0!important}[dir=rtl] md-list-item md-divider[md-inset]{left:auto;right:72px}md-list-item,md-list-item .md-list-item-inner{display:flex;justify-content:flex-start;align-items:center;min-height:48px;height:auto}md-list-item .md-list-item-inner::before,md-list-item::before{content:'';min-height:48px;visibility:hidden;display:inline-block}md-list-item .md-list-item-inner>div.md-primary>md-icon:not(.md-avatar-icon),md-list-item .md-list-item-inner>div.md-secondary>md-icon:not(.md-avatar-icon),md-list-item .md-list-item-inner>md-icon.md-secondary:not(.md-avatar-icon),md-list-item .md-list-item-inner>md-icon:first-child:not(.md-avatar-icon),md-list-item>div.md-primary>md-icon:not(.md-avatar-icon),md-list-item>div.md-secondary>md-icon:not(.md-avatar-icon),md-list-item>md-icon.md-secondary:not(.md-avatar-icon),md-list-item>md-icon:first-child:not(.md-avatar-icon){width:24px;margin-top:16px;margin-bottom:12px;box-sizing:content-box}md-list-item .md-list-item-inner md-checkbox.md-secondary,md-list-item .md-list-item-inner>div.md-primary>md-checkbox,md-list-item .md-list-item-inner>div.md-secondary>md-checkbox,md-list-item .md-list-item-inner>md-checkbox,md-list-item md-checkbox.md-secondary,md-list-item>div.md-primary>md-checkbox,md-list-item>div.md-secondary>md-checkbox,md-list-item>md-checkbox{align-self:center}md-list-item .md-list-item-inner md-checkbox.md-secondary .md-label,md-list-item .md-list-item-inner>div.md-primary>md-checkbox .md-label,md-list-item .md-list-item-inner>div.md-secondary>md-checkbox .md-label,md-list-item .md-list-item-inner>md-checkbox .md-label,md-list-item md-checkbox.md-secondary .md-label,md-list-item>div.md-primary>md-checkbox .md-label,md-list-item>div.md-secondary>md-checkbox .md-label,md-list-item>md-checkbox .md-label{display:none}md-list-item .md-list-item-inner>md-icon:first-child:not(.md-avatar-icon),md-list-item>md-icon:first-child:not(.md-avatar-icon){margin-right:32px}[dir=rtl] md-list-item .md-list-item-inner>md-icon:first-child:not(.md-avatar-icon),[dir=rtl] md-list-item>md-icon:first-child:not(.md-avatar-icon){margin-right:auto;margin-left:32px}md-list-item .md-avatar,md-list-item .md-avatar-icon,md-list-item .md-list-item-inner .md-avatar,md-list-item .md-list-item-inner .md-avatar-icon{margin-top:8px;margin-bottom:8px;margin-right:16px;border-radius:50%;box-sizing:content-box}[dir=rtl] md-list-item .md-avatar,[dir=rtl] md-list-item .md-avatar-icon,[dir=rtl] md-list-item .md-list-item-inner .md-avatar,[dir=rtl] md-list-item .md-list-item-inner .md-avatar-icon{margin-right:auto;margin-left:16px}md-list-item .md-avatar,md-list-item .md-list-item-inner .md-avatar{flex:none;width:40px;height:40px}md-list-item .md-avatar-icon,md-list-item .md-list-item-inner .md-avatar-icon{padding:8px}md-list-item .md-avatar-icon svg,md-list-item .md-list-item-inner .md-avatar-icon svg{width:24px;height:24px}md-list-item .md-list-item-inner>md-checkbox,md-list-item>md-checkbox{width:24px;margin-left:3px;margin-right:29px;margin-top:16px}[dir=rtl] md-list-item .md-list-item-inner>md-checkbox,[dir=rtl] md-list-item>md-checkbox{margin-left:29px}[dir=rtl] md-list-item .md-list-item-inner>md-checkbox,[dir=rtl] md-list-item>md-checkbox{margin-right:3px}md-list-item .md-list-item-inner .md-secondary-container,md-list-item .md-secondary-container{display:flex;align-items:center;flex-shrink:0;margin:auto;margin-right:0;margin-left:auto}[dir=rtl] md-list-item .md-list-item-inner .md-secondary-container,[dir=rtl] md-list-item .md-secondary-container{margin-right:auto}[dir=rtl] md-list-item .md-list-item-inner .md-secondary-container,[dir=rtl] md-list-item .md-secondary-container{margin-left:0}md-list-item .md-list-item-inner .md-secondary-container .md-button:last-of-type,md-list-item .md-list-item-inner .md-secondary-container .md-icon-button:last-of-type,md-list-item .md-secondary-container .md-button:last-of-type,md-list-item .md-secondary-container .md-icon-button:last-of-type{margin-right:0}[dir=rtl] md-list-item .md-list-item-inner .md-secondary-container .md-button:last-of-type,[dir=rtl] md-list-item .md-list-item-inner .md-secondary-container .md-icon-button:last-of-type,[dir=rtl] md-list-item .md-secondary-container .md-button:last-of-type,[dir=rtl] md-list-item .md-secondary-container .md-icon-button:last-of-type{margin-right:auto;margin-left:0}md-list-item .md-list-item-inner .md-secondary-container md-checkbox,md-list-item .md-secondary-container md-checkbox{margin-top:0;margin-bottom:0}md-list-item .md-list-item-inner .md-secondary-container md-checkbox:last-child,md-list-item .md-secondary-container md-checkbox:last-child{width:24px;margin-right:0}[dir=rtl] md-list-item .md-list-item-inner .md-secondary-container md-checkbox:last-child,[dir=rtl] md-list-item .md-secondary-container md-checkbox:last-child{margin-right:auto;margin-left:0}md-list-item .md-list-item-inner .md-secondary-container md-switch,md-list-item .md-secondary-container md-switch{margin-top:0;margin-bottom:0;margin-right:-6px}[dir=rtl] md-list-item .md-list-item-inner .md-secondary-container md-switch,[dir=rtl] md-list-item .md-secondary-container md-switch{margin-right:auto;margin-left:-6px}md-list-item .md-list-item-inner>.md-list-item-inner>p,md-list-item .md-list-item-inner>p,md-list-item>.md-list-item-inner>p,md-list-item>p{flex:1 1 auto;margin:0}md-list-item.md-2-line,md-list-item.md-2-line>.md-no-style,md-list-item.md-3-line,md-list-item.md-3-line>.md-no-style{align-items:flex-start;justify-content:center}md-list-item.md-2-line.md-long-text,md-list-item.md-2-line>.md-no-style.md-long-text,md-list-item.md-3-line.md-long-text,md-list-item.md-3-line>.md-no-style.md-long-text{margin-top:8px;margin-bottom:8px}md-list-item.md-2-line .md-list-item-text,md-list-item.md-2-line>.md-no-style .md-list-item-text,md-list-item.md-3-line .md-list-item-text,md-list-item.md-3-line>.md-no-style .md-list-item-text{flex:1 1 auto;margin:auto;text-overflow:ellipsis;overflow:hidden}md-list-item.md-2-line .md-list-item-text.md-offset,md-list-item.md-2-line>.md-no-style .md-list-item-text.md-offset,md-list-item.md-3-line .md-list-item-text.md-offset,md-list-item.md-3-line>.md-no-style .md-list-item-text.md-offset{margin-left:56px}[dir=rtl] md-list-item.md-2-line .md-list-item-text.md-offset,[dir=rtl] md-list-item.md-2-line>.md-no-style .md-list-item-text.md-offset,[dir=rtl] md-list-item.md-3-line .md-list-item-text.md-offset,[dir=rtl] md-list-item.md-3-line>.md-no-style .md-list-item-text.md-offset{margin-left:auto;margin-right:56px}md-list-item.md-2-line .md-list-item-text h3,md-list-item.md-2-line>.md-no-style .md-list-item-text h3,md-list-item.md-3-line .md-list-item-text h3,md-list-item.md-3-line>.md-no-style .md-list-item-text h3{font-size:16px;font-weight:400;letter-spacing:.010em;margin:0;line-height:1.2em;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}md-list-item.md-2-line .md-list-item-text h4,md-list-item.md-2-line>.md-no-style .md-list-item-text h4,md-list-item.md-3-line .md-list-item-text h4,md-list-item.md-3-line>.md-no-style .md-list-item-text h4{font-size:14px;letter-spacing:.010em;margin:3px 0 1px 0;font-weight:400;line-height:1.2em;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}md-list-item.md-2-line .md-list-item-text p,md-list-item.md-2-line>.md-no-style .md-list-item-text p,md-list-item.md-3-line .md-list-item-text p,md-list-item.md-3-line>.md-no-style .md-list-item-text p{font-size:14px;font-weight:500;letter-spacing:.010em;margin:0;line-height:1.6em}md-list-item.md-2-line,md-list-item.md-2-line>.md-no-style{height:auto;min-height:72px}md-list-item.md-2-line::before,md-list-item.md-2-line>.md-no-style::before{content:'';min-height:72px;visibility:hidden;display:inline-block}md-list-item.md-2-line .md-avatar-icon,md-list-item.md-2-line>.md-avatar,md-list-item.md-2-line>.md-no-style .md-avatar-icon,md-list-item.md-2-line>.md-no-style>.md-avatar{margin-top:12px}md-list-item.md-2-line>.md-no-style>md-icon:first-child,md-list-item.md-2-line>md-icon:first-child{align-self:flex-start}md-list-item.md-2-line .md-list-item-text,md-list-item.md-2-line>.md-no-style .md-list-item-text{flex:1 1 auto}md-list-item.md-3-line,md-list-item.md-3-line>.md-no-style{height:auto;min-height:88px}md-list-item.md-3-line::before,md-list-item.md-3-line>.md-no-style::before{content:'';min-height:88px;visibility:hidden;display:inline-block}md-list-item.md-3-line>.md-avatar,md-list-item.md-3-line>.md-no-style>.md-avatar,md-list-item.md-3-line>.md-no-style>md-icon:first-child,md-list-item.md-3-line>md-icon:first-child{margin-top:16px}.md-open-menu-container{position:fixed;left:0;top:0;z-index:100;opacity:0;border-radius:2px}.md-open-menu-container md-menu-divider{margin-top:4px;margin-bottom:4px;height:1px;min-height:1px;max-height:1px;width:100%}.md-open-menu-container md-menu-content>*{opacity:0}.md-open-menu-container:not(.md-clickable){pointer-events:none}.md-open-menu-container.md-active{opacity:1;transition:all .4s cubic-bezier(.25,.8,.25,1);transition-duration:.2s}.md-open-menu-container.md-active>md-menu-content>*{opacity:1;transition:all .3s cubic-bezier(.55,0,.55,.2);transition-duration:.2s;transition-delay:.1s}.md-open-menu-container.md-leave{opacity:0;transition:all .3s cubic-bezier(.55,0,.55,.2);transition-duration:250ms}md-menu-content{display:flex;flex-direction:column;padding:8px 0;max-height:304px;overflow-y:auto}md-menu-content.md-dense{max-height:208px}md-menu-content.md-dense md-menu-item{height:32px;min-height:0}md-menu-item{display:flex;flex-direction:row;min-height:48px;height:48px;align-content:center;justify-content:flex-start}md-menu-item>*{width:100%;margin:auto 0;padding-left:16px;padding-right:16px}md-menu-item>a.md-button{padding-top:5px}md-menu-item>.md-button{text-align:left;display:inline-block;border-radius:0;margin:auto 0;font-size:15px;text-transform:none;font-weight:400;height:100%;padding-left:16px;padding-right:16px;width:100%}md-menu-item>.md-button::-moz-focus-inner{padding:0;border:0}[dir=rtl] md-menu-item>.md-button{text-align:right}md-menu-item>.md-button md-icon{margin:auto 16px auto 0}[dir=rtl] md-menu-item>.md-button md-icon{margin:auto 0 auto 16px}md-menu-item>.md-button p{display:inline-block;margin:auto}md-menu-item>.md-button span{margin-top:auto;margin-bottom:auto}md-menu-item>.md-button .md-ripple-container{border-radius:inherit}md-toolbar .md-menu{height:auto;margin:auto;padding:0}@media (max-width:959px){md-menu-content{min-width:112px}md-menu-content[width="3"]{min-width:168px}md-menu-content[width="4"]{min-width:224px}md-menu-content[width="5"]{min-width:280px}md-menu-content[width="6"]{min-width:336px}md-menu-content[width="7"]{min-width:392px}}@media (min-width:960px){md-menu-content{min-width:96px}md-menu-content[width="3"]{min-width:192px}md-menu-content[width="4"]{min-width:256px}md-menu-content[width="5"]{min-width:320px}md-menu-content[width="6"]{min-width:384px}md-menu-content[width="7"]{min-width:448px}}md-toolbar.md-menu-toolbar h2.md-toolbar-tools{line-height:1rem;height:auto;padding:28px;padding-bottom:12px}md-toolbar.md-has-open-menu{position:relative;z-index:100}md-menu-bar{padding:0 20px;display:block;position:relative;z-index:2}md-menu-bar .md-menu{display:inline-block;padding:0;position:relative}md-menu-bar button{font-size:14px;padding:0 10px;margin:0;border:0;background-color:transparent;height:40px}md-menu-bar md-backdrop.md-menu-backdrop{z-index:-2}md-menu-content.md-menu-bar-menu.md-dense{max-height:none;padding:16px 0}md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent{position:relative}md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent>md-icon{position:absolute;padding:0;width:24px;top:6px;left:24px}[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent>md-icon{left:auto;right:24px}md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent .md-menu>.md-button,md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent>.md-button{padding:0 32px 0 64px}[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent .md-menu>.md-button,[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent>.md-button{padding:0 64px 0 32px}md-menu-content.md-menu-bar-menu.md-dense .md-button{min-height:0;height:32px;display:flex}md-menu-content.md-menu-bar-menu.md-dense .md-button span{flex-grow:1}md-menu-content.md-menu-bar-menu.md-dense .md-button span.md-alt-text{flex-grow:0;align-self:flex-end;margin:0 8px}md-menu-content.md-menu-bar-menu.md-dense md-menu-divider{margin:8px 0}md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button,md-menu-content.md-menu-bar-menu.md-dense md-menu-item>.md-button{text-align:left}[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button,[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense md-menu-item>.md-button{text-align:right}md-menu-content.md-menu-bar-menu.md-dense .md-menu{padding:0}md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button{position:relative;margin:0;width:100%;text-transform:none;font-weight:400;border-radius:0;padding-left:16px}[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button{padding-left:0;padding-right:16px}md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button:after{display:block;content:'\25BC';position:absolute;top:0;speak:none;transform:rotate(270deg) scaleY(.45) scaleX(.9);right:28px}[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button:after{transform:rotate(90deg) scaleY(.45) scaleX(.9)}[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button:after{right:auto;left:28px}.md-nav-bar{border-style:solid;border-width:0 0 1px;height:48px;position:relative}._md-nav-bar-list{outline:0;list-style:none;margin:0;padding:0;box-sizing:border-box;display:flex;flex-direction:row}.md-nav-item:first-of-type{margin-left:8px}.md-button._md-nav-button{line-height:24px;margin:0 4px;padding:12px 16px;transition:background-color .35s cubic-bezier(.35,0,.25,1)}.md-button._md-nav-button:focus{outline:0}.md-button._md-nav-button:hover{background-color:inherit}md-nav-ink-bar{bottom:0;height:2px;left:auto;position:absolute;right:auto;background-color:#000}md-nav-ink-bar._md-left{transition:left 125ms cubic-bezier(.35,0,.25,1),right .25s cubic-bezier(.35,0,.25,1)}md-nav-ink-bar._md-right{transition:left .25s cubic-bezier(.35,0,.25,1),right 125ms cubic-bezier(.35,0,.25,1)}md-nav-extra-content{min-height:48px;padding-right:12px}.md-panel-outer-wrapper{height:100%;left:0;position:absolute;top:0;width:100%}._md-panel-hidden{display:none}._md-panel-fullscreen{border-radius:0;left:0;min-height:100%;min-width:100%;position:fixed;top:0}._md-panel-shown .md-panel{opacity:1;transition:none}.md-panel{opacity:0;position:fixed}.md-panel._md-panel-shown{opacity:1;transition:none}.md-panel._md-panel-animate-enter{opacity:1;transition:all .3s cubic-bezier(0,0,.2,1)}.md-panel._md-panel-animate-leave{opacity:1;transition:all .3s cubic-bezier(.4,0,1,1)}.md-panel._md-panel-animate-fade-out,.md-panel._md-panel-animate-scale-out{opacity:0}.md-panel._md-panel-backdrop{height:100%;position:absolute;width:100%}.md-panel._md-opaque-enter{opacity:.48;transition:opacity .3s cubic-bezier(0,0,.2,1)}.md-panel._md-opaque-leave{transition:opacity .3s cubic-bezier(.4,0,1,1)}@keyframes indeterminate-rotate{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}md-progress-circular{position:relative;display:block}md-progress-circular._md-progress-circular-disabled{visibility:hidden}md-progress-circular.md-mode-indeterminate svg{animation:indeterminate-rotate 2.9s linear infinite}md-progress-circular svg{position:absolute;overflow:visible;top:0;left:0}md-progress-linear{display:block;position:relative;width:100%;height:5px;padding-top:0!important;margin-bottom:0!important}md-progress-linear._md-progress-linear-disabled{visibility:hidden}md-progress-linear .md-container{display:block;position:relative;overflow:hidden;width:100%;height:5px;transform:translate(0,0) scale(1,1)}md-progress-linear .md-container .md-bar{position:absolute;left:0;top:0;bottom:0;width:100%;height:5px}md-progress-linear .md-container .md-dashed:before{content:"";display:none;position:absolute;margin-top:0;height:5px;width:100%;background-color:transparent;background-size:10px 10px!important;background-position:0 -23px}md-progress-linear .md-container .md-bar1,md-progress-linear .md-container .md-bar2{transition:transform .2s linear}md-progress-linear .md-container.md-mode-query .md-bar1{display:none}md-progress-linear .md-container.md-mode-query .md-bar2{transition:all .2s linear;animation:query .8s infinite cubic-bezier(.39,.575,.565,1)}md-progress-linear .md-container.md-mode-determinate .md-bar1{display:none}md-progress-linear .md-container.md-mode-indeterminate .md-bar1{animation:md-progress-linear-indeterminate-scale-1 4s infinite,md-progress-linear-indeterminate-1 4s infinite}md-progress-linear .md-container.md-mode-indeterminate .md-bar2{animation:md-progress-linear-indeterminate-scale-2 4s infinite,md-progress-linear-indeterminate-2 4s infinite}md-progress-linear .md-container.ng-hide ._md-progress-linear-disabled md-progress-linear .md-container{animation:none}md-progress-linear .md-container.ng-hide ._md-progress-linear-disabled md-progress-linear .md-container .md-bar1{animation-name:none}md-progress-linear .md-container.ng-hide ._md-progress-linear-disabled md-progress-linear .md-container .md-bar2{animation-name:none}md-progress-linear .md-container.md-mode-buffer{background-color:transparent!important;transition:all .2s linear}md-progress-linear .md-container.md-mode-buffer .md-dashed:before{display:block;animation:buffer 3s infinite linear}@keyframes query{0%{opacity:1;transform:translateX(35%) scale(.3,1)}100%{opacity:0;transform:translateX(-50%) scale(0,1)}}@keyframes buffer{0%{opacity:1;background-position:0 -23px}50%{opacity:0}100%{opacity:1;background-position:-200px -23px}}@keyframes md-progress-linear-indeterminate-scale-1{0%{transform:scaleX(.1);animation-timing-function:linear}36.6%{transform:scaleX(.1);animation-timing-function:cubic-bezier(.334731432,.124819821,.785843996,1)}69.15%{transform:scaleX(.83);animation-timing-function:cubic-bezier(.225732004,0,.233648906,1.3709798)}100%{transform:scaleX(.1)}}@keyframes md-progress-linear-indeterminate-1{0%{left:-105.166666667%;animation-timing-function:linear}20%{left:-105.166666667%;animation-timing-function:cubic-bezier(.5,0,.701732,.495818703)}69.15%{left:21.5%;animation-timing-function:cubic-bezier(.302435,.38135197,.55,.956352125)}100%{left:95.4444444444%}}@keyframes md-progress-linear-indeterminate-scale-2{0%{transform:scaleX(.1);animation-timing-function:cubic-bezier(.205028172,.057050836,.57660995,.453970841)}19.15%{transform:scaleX(.57);animation-timing-function:cubic-bezier(.152312994,.196431957,.648373778,1.00431535)}44.15%{transform:scaleX(.91);animation-timing-function:cubic-bezier(.25775882,-.003163357,.211761916,1.38178961)}100%{transform:scaleX(.1)}}@keyframes md-progress-linear-indeterminate-2{0%{left:-54.8888888889%;animation-timing-function:cubic-bezier(.15,0,.5150584,.409684966)}25%{left:-17.25%;animation-timing-function:cubic-bezier(.3103299,.284057684,.8,.733718979)}48.35%{left:29.5%;animation-timing-function:cubic-bezier(.4,.627034903,.6,.902025796)}100%{left:117.388888889%}}md-radio-button{box-sizing:border-box;display:block;margin-bottom:16px;white-space:nowrap;cursor:pointer;position:relative}md-radio-button[disabled]{cursor:default}md-radio-button[disabled] .md-container{cursor:default}md-radio-button .md-container{position:absolute;top:50%;transform:translateY(-50%);box-sizing:border-box;display:inline-block;width:20px;height:20px;cursor:pointer;left:0;right:auto}[dir=rtl] md-radio-button .md-container{left:auto}[dir=rtl] md-radio-button .md-container{right:0}md-radio-button .md-container .md-ripple-container{position:absolute;display:block;width:auto;height:auto;left:-15px;top:-15px;right:-15px;bottom:-15px}md-radio-button .md-container:before{box-sizing:border-box;background-color:transparent;border-radius:50%;content:'';position:absolute;display:block;height:auto;left:0;top:0;right:0;bottom:0;transition:all .5s;width:auto}md-radio-button.md-align-top-left>div.md-container{top:12px}md-radio-button .md-off{box-sizing:border-box;position:absolute;top:0;left:0;width:20px;height:20px;border-style:solid;border-width:2px;border-radius:50%;transition:border-color ease .28s}md-radio-button .md-on{box-sizing:border-box;position:absolute;top:0;left:0;width:20px;height:20px;border-radius:50%;transition:transform ease .28s;transform:scale(0)}md-radio-button.md-checked .md-on{transform:scale(.5)}md-radio-button .md-label{box-sizing:border-box;position:relative;display:inline-block;margin-left:30px;margin-right:0;vertical-align:middle;white-space:normal;pointer-events:none;width:auto}[dir=rtl] md-radio-button .md-label{margin-left:0}[dir=rtl] md-radio-button .md-label{margin-right:30px}md-radio-group.layout-column md-radio-button,md-radio-group.layout-gt-lg-column md-radio-button,md-radio-group.layout-gt-md-column md-radio-button,md-radio-group.layout-gt-sm-column md-radio-button,md-radio-group.layout-gt-xs-column md-radio-button,md-radio-group.layout-lg-column md-radio-button,md-radio-group.layout-md-column md-radio-button,md-radio-group.layout-sm-column md-radio-button,md-radio-group.layout-xl-column md-radio-button,md-radio-group.layout-xs-column md-radio-button{margin-bottom:16px}md-radio-group.layout-gt-lg-row md-radio-button,md-radio-group.layout-gt-md-row md-radio-button,md-radio-group.layout-gt-sm-row md-radio-button,md-radio-group.layout-gt-xs-row md-radio-button,md-radio-group.layout-lg-row md-radio-button,md-radio-group.layout-md-row md-radio-button,md-radio-group.layout-row md-radio-button,md-radio-group.layout-sm-row md-radio-button,md-radio-group.layout-xl-row md-radio-button,md-radio-group.layout-xs-row md-radio-button{margin-top:0;margin-bottom:0;margin-left:0;margin-right:16px}[dir=rtl] md-radio-group.layout-gt-lg-row md-radio-button,[dir=rtl] md-radio-group.layout-gt-md-row md-radio-button,[dir=rtl] md-radio-group.layout-gt-sm-row md-radio-button,[dir=rtl] md-radio-group.layout-gt-xs-row md-radio-button,[dir=rtl] md-radio-group.layout-lg-row md-radio-button,[dir=rtl] md-radio-group.layout-md-row md-radio-button,[dir=rtl] md-radio-group.layout-row md-radio-button,[dir=rtl] md-radio-group.layout-sm-row md-radio-button,[dir=rtl] md-radio-group.layout-xl-row md-radio-button,[dir=rtl] md-radio-group.layout-xs-row md-radio-button{margin-left:16px}[dir=rtl] md-radio-group.layout-gt-lg-row md-radio-button,[dir=rtl] md-radio-group.layout-gt-md-row md-radio-button,[dir=rtl] md-radio-group.layout-gt-sm-row md-radio-button,[dir=rtl] md-radio-group.layout-gt-xs-row md-radio-button,[dir=rtl] md-radio-group.layout-lg-row md-radio-button,[dir=rtl] md-radio-group.layout-md-row md-radio-button,[dir=rtl] md-radio-group.layout-row md-radio-button,[dir=rtl] md-radio-group.layout-sm-row md-radio-button,[dir=rtl] md-radio-group.layout-xl-row md-radio-button,[dir=rtl] md-radio-group.layout-xs-row md-radio-button{margin-right:0}md-radio-group.layout-gt-lg-row md-radio-button:last-of-type,md-radio-group.layout-gt-md-row md-radio-button:last-of-type,md-radio-group.layout-gt-sm-row md-radio-button:last-of-type,md-radio-group.layout-gt-xs-row md-radio-button:last-of-type,md-radio-group.layout-lg-row md-radio-button:last-of-type,md-radio-group.layout-md-row md-radio-button:last-of-type,md-radio-group.layout-row md-radio-button:last-of-type,md-radio-group.layout-sm-row md-radio-button:last-of-type,md-radio-group.layout-xl-row md-radio-button:last-of-type,md-radio-group.layout-xs-row md-radio-button:last-of-type{margin-left:0;margin-right:0}md-radio-group:focus{outline:0}md-radio-group.md-focused .md-checked .md-container:before{left:-8px;top:-8px;right:-8px;bottom:-8px}md-radio-group[disabled] md-radio-button{cursor:default}md-radio-group[disabled] md-radio-button .md-container{cursor:default}.md-inline-form md-radio-group{margin:18px 0 19px}.md-inline-form md-radio-group md-radio-button{display:inline-block;height:30px;padding:2px;box-sizing:border-box;margin-top:0;margin-bottom:0}@media screen and (-ms-high-contrast:active){md-radio-button.md-default-theme .md-on{background-color:#fff}}md-input-container:not([md-no-float]) .md-select-placeholder span:first-child{transition:transform .4s cubic-bezier(.25,.8,.25,1);transform-origin:left top}[dir=rtl] md-input-container:not([md-no-float]) .md-select-placeholder span:first-child{transform-origin:right top}md-input-container.md-input-focused:not([md-no-float]) .md-select-placeholder span:first-child{transform:translateY(-22px) translateX(-2px) scale(.75)}.md-select-menu-container{position:fixed;left:0;top:0;z-index:90;opacity:0;display:none;transform:translateY(-1px)}.md-select-menu-container:not(.md-clickable){pointer-events:none}.md-select-menu-container md-progress-circular{display:table;margin:24px auto!important}.md-select-menu-container.md-active{display:block;opacity:1}.md-select-menu-container.md-active md-select-menu{transition:all .4s cubic-bezier(.25,.8,.25,1);transition-duration:150ms}.md-select-menu-container.md-active md-select-menu>*{opacity:1;transition:all .3s cubic-bezier(.55,0,.55,.2);transition-duration:150ms;transition-delay:.1s}.md-select-menu-container.md-leave{opacity:0;transition:all .3s cubic-bezier(.55,0,.55,.2);transition-duration:250ms}md-input-container>md-select{margin:0;order:2}md-input-container:not(.md-input-has-value) md-select.ng-required:not(.md-no-asterisk) .md-select-value span:first-child:after,md-input-container:not(.md-input-has-value) md-select[required]:not(.md-no-asterisk) .md-select-value span:first-child:after{content:' *';font-size:13px;vertical-align:top}md-input-container.md-input-invalid md-select .md-select-value{border-bottom-style:solid;padding-bottom:1px}md-select{display:flex;margin:20px 0 26px 0}md-select.ng-required.ng-invalid:not(.md-no-asterisk) .md-select-value span:first-child:after,md-select[required].ng-invalid:not(.md-no-asterisk) .md-select-value span:first-child:after{content:' *';font-size:13px;vertical-align:top}md-select[disabled] .md-select-value{background-position:0 bottom;background-size:4px 1px;background-repeat:repeat-x;margin-bottom:-1px}md-select:focus{outline:0}md-select[disabled]:hover{cursor:default}md-select:not([disabled]):hover{cursor:pointer}md-select:not([disabled]).ng-invalid.ng-touched .md-select-value{border-bottom-style:solid;padding-bottom:1px}md-select:not([disabled]):focus .md-select-value{border-bottom-width:2px;border-bottom-style:solid;padding-bottom:0}md-select:not([disabled]):focus.ng-invalid.ng-touched .md-select-value{padding-bottom:0}md-input-container.md-input-has-value .md-select-value>span:not(.md-select-icon){transform:translate3d(0,1px,0)}.md-select-value{display:flex;align-items:center;padding:2px 2px 1px;border-bottom-width:1px;border-bottom-style:solid;background-color:transparent;position:relative;box-sizing:content-box;min-width:64px;min-height:26px;flex-grow:1}.md-select-value>span:not(.md-select-icon){max-width:100%;flex:1 1 auto;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.md-select-value>span:not(.md-select-icon) .md-text{display:inline}.md-select-value .md-select-icon{display:block;align-items:flex-end;text-align:end;width:24px;margin:0 4px;transform:translate3d(0,-2px,0);font-size:1.2rem}.md-select-value .md-select-icon:after{display:block;content:'\25BC';position:relative;top:2px;speak:none;font-size:13px;transform:scaleY(.5) scaleX(1)}.md-select-value.md-select-placeholder{display:flex;order:1;pointer-events:none;-webkit-font-smoothing:antialiased;padding-left:2px;z-index:1}md-select-menu{display:flex;flex-direction:column;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12);max-height:256px;min-height:48px;overflow-y:hidden;transform-origin:left top;transform:scale(1)}md-select-menu.md-reverse{flex-direction:column-reverse}md-select-menu:not(.md-overflow) md-content{padding-top:8px;padding-bottom:8px}[dir=rtl] md-select-menu{transform-origin:right top}md-select-menu md-content{min-width:136px;min-height:48px;max-height:256px;overflow-y:auto}md-select-menu>*{opacity:0}md-option{cursor:pointer;position:relative;display:flex;align-items:center;width:auto;transition:background .15s linear;padding:0 16px 0 16px;height:48px}md-option[disabled]{cursor:default}md-option:focus{outline:0}md-option .md-text{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}md-optgroup{display:block}md-optgroup label{display:block;font-size:14px;text-transform:uppercase;padding:16px;font-weight:500}md-optgroup md-option{padding-left:32px;padding-right:32px}@media screen and (-ms-high-contrast:active){.md-select-backdrop{background-color:transparent}md-select-menu{border:1px solid #fff}}md-select-menu[multiple] md-option.md-checkbox-enabled{padding-left:40px;padding-right:16px}[dir=rtl] md-select-menu[multiple] md-option.md-checkbox-enabled{padding-left:16px}[dir=rtl] md-select-menu[multiple] md-option.md-checkbox-enabled{padding-right:40px}md-select-menu[multiple] md-option.md-checkbox-enabled .md-container{position:absolute;top:50%;transform:translateY(-50%);box-sizing:border-box;display:inline-block;width:20px;height:20px;left:0;right:auto}[dir=rtl] md-select-menu[multiple] md-option.md-checkbox-enabled .md-container{left:auto}[dir=rtl] md-select-menu[multiple] md-option.md-checkbox-enabled .md-container{right:0}md-select-menu[multiple] md-option.md-checkbox-enabled .md-container:before{box-sizing:border-box;background-color:transparent;border-radius:50%;content:'';position:absolute;display:block;height:auto;left:0;top:0;right:0;bottom:0;transition:all .5s;width:auto}md-select-menu[multiple] md-option.md-checkbox-enabled .md-container:after{box-sizing:border-box;content:'';position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px}md-select-menu[multiple] md-option.md-checkbox-enabled .md-container .md-ripple-container{position:absolute;display:block;width:auto;height:auto;left:-15px;top:-15px;right:-15px;bottom:-15px}md-select-menu[multiple] md-option.md-checkbox-enabled .md-icon{box-sizing:border-box;transition:240ms;position:absolute;top:0;left:0;width:20px;height:20px;border-width:2px;border-style:solid;border-radius:2px}md-select-menu[multiple] md-option.md-checkbox-enabled[selected] .md-icon{border-color:transparent}md-select-menu[multiple] md-option.md-checkbox-enabled[selected] .md-icon:after{box-sizing:border-box;transform:rotate(45deg);position:absolute;left:4.6666666667px;top:.2222222222px;display:table;width:6.6666666667px;height:13.3333333333px;border-width:2px;border-style:solid;border-top:0;border-left:0;content:''}md-select-menu[multiple] md-option.md-checkbox-enabled[disabled]{cursor:default}md-select-menu[multiple] md-option.md-checkbox-enabled.md-indeterminate .md-icon:after{box-sizing:border-box;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:table;width:12px;height:2px;border-width:2px;border-style:solid;border-top:0;border-left:0;content:''}md-select-menu[multiple] md-option.md-checkbox-enabled .md-container{margin-left:10.6666666667px;margin-right:auto}[dir=rtl] md-select-menu[multiple] md-option.md-checkbox-enabled .md-container{margin-left:auto}[dir=rtl] md-select-menu[multiple] md-option.md-checkbox-enabled .md-container{margin-right:10.6666666667px}md-sidenav{box-sizing:border-box;position:absolute;flex-direction:column;z-index:60;width:320px;max-width:320px;bottom:0;overflow:auto;-webkit-overflow-scrolling:touch}md-sidenav ul{list-style:none}md-sidenav.md-closed{display:none}md-sidenav.md-closed-add,md-sidenav.md-closed-remove{display:flex;transition:.2s ease-in all}md-sidenav.md-closed-add.md-closed-add-active,md-sidenav.md-closed-remove.md-closed-remove-active{transition:all .4s cubic-bezier(.25,.8,.25,1)}md-sidenav.md-locked-open-add,md-sidenav.md-locked-open-remove{position:static;display:flex;transform:translate3d(0,0,0)}md-sidenav.md-locked-open,md-sidenav.md-locked-open-remove.md-closed,md-sidenav.md-locked-open.md-closed,md-sidenav.md-locked-open.md-closed.md-sidenav-left,md-sidenav.md-locked-open.md-closed.md-sidenav-right{position:static;display:flex;transform:translate3d(0,0,0)}md-sidenav.md-locked-open-remove-active{transition:width .3s cubic-bezier(.55,0,.55,.2),min-width .3s cubic-bezier(.55,0,.55,.2);width:0!important;min-width:0!important}md-sidenav.md-closed.md-locked-open-add{width:0!important;min-width:0!important;transform:translate3d(0,0,0)}md-sidenav.md-closed.md-locked-open-add-active{transition:width .3s cubic-bezier(.55,0,.55,.2),min-width .3s cubic-bezier(.55,0,.55,.2);width:320px;min-width:320px;transform:translate3d(0,0,0)}.md-sidenav-backdrop.md-locked-open{display:none}.md-sidenav-left,md-sidenav{left:0;top:0;transform:translate3d(0,0,0)}.md-sidenav-left.md-closed,md-sidenav.md-closed{transform:translate3d(-100%,0,0)}.md-sidenav-right{left:100%;top:0;transform:translate(-100%,0)}.md-sidenav-right.md-closed{transform:translate(0,0)}@media (min-width:600px){md-sidenav{max-width:400px}}@media (max-width:456px){md-sidenav{width:calc(100% - 56px);min-width:calc(100% - 56px);max-width:calc(100% - 56px)}}@media screen and (-ms-high-contrast:active){.md-sidenav-left,md-sidenav{border-right:1px solid #fff}.md-sidenav-right{border-left:1px solid #fff}}@keyframes sliderFocusThumb{0%{transform:scale(.7)}30%{transform:scale(1)}100%{transform:scale(.7)}}@keyframes sliderDiscreteFocusThumb{0%{transform:scale(.7)}50%{transform:scale(.8)}100%{transform:scale(0)}}@keyframes sliderDiscreteFocusRing{0%{transform:scale(.7);opacity:0}50%{transform:scale(1);opacity:1}100%{transform:scale(0)}}md-slider{height:48px;min-width:128px;position:relative;margin-left:4px;margin-right:4px;padding:0;display:block;flex-direction:row}md-slider *,md-slider :after{box-sizing:border-box}md-slider .md-slider-wrapper{outline:0;width:100%;height:100%}md-slider .md-slider-content{position:relative}md-slider .md-track-container{width:100%;position:absolute;top:23px;height:2px}md-slider .md-track{position:absolute;left:0;right:0;height:100%}md-slider .md-track-fill{transition:all .4s cubic-bezier(.25,.8,.25,1);transition-property:width,height}md-slider .md-track-ticks{position:absolute;left:0;right:0;height:100%}md-slider .md-track-ticks canvas{width:100%;height:100%}md-slider .md-thumb-container{position:absolute;left:0;top:50%;transform:translate3d(-50%,-50%,0);transition:all .4s cubic-bezier(.25,.8,.25,1);transition-property:left,right,bottom}[dir=rtl] md-slider .md-thumb-container{left:auto;right:0}md-slider .md-thumb{z-index:1;position:absolute;left:-10px;top:14px;width:20px;height:20px;border-radius:20px;transform:scale(.7);transition:all .4s cubic-bezier(.25,.8,.25,1)}[dir=rtl] md-slider .md-thumb{left:auto;right:-10px}md-slider .md-thumb:after{content:'';position:absolute;width:20px;height:20px;border-radius:20px;border-width:3px;border-style:solid;transition:inherit}md-slider .md-sign{display:flex;align-items:center;justify-content:center;position:absolute;left:-14px;top:-17px;width:28px;height:28px;border-radius:28px;transform:scale(.4) translate3d(0,67.5px,0);transition:all .3s cubic-bezier(.35,0,.25,1)}md-slider .md-sign:after{position:absolute;content:'';left:0;border-radius:16px;top:19px;border-left:14px solid transparent;border-right:14px solid transparent;border-top-width:16px;border-top-style:solid;opacity:0;transform:translate3d(0,-8px,0);transition:all .2s cubic-bezier(.35,0,.25,1)}[dir=rtl] md-slider .md-sign:after{left:auto;right:0}md-slider .md-sign .md-thumb-text{z-index:1;font-size:12px;font-weight:700}md-slider .md-focus-ring{position:absolute;left:-17px;top:7px;width:34px;height:34px;border-radius:34px;transform:scale(.7);opacity:0;transition:all .35s cubic-bezier(.35,0,.25,1)}[dir=rtl] md-slider .md-focus-ring{left:auto;right:-17px}md-slider .md-disabled-thumb{position:absolute;left:-14px;top:10px;width:28px;height:28px;border-radius:28px;transform:scale(.5);border-width:4px;border-style:solid;display:none}[dir=rtl] md-slider .md-disabled-thumb{left:auto;right:-14px}md-slider.md-min .md-sign{opacity:0}md-slider:focus{outline:0}md-slider.md-dragging .md-thumb-container,md-slider.md-dragging .md-track-fill{transition:none}md-slider:not([md-discrete]) .md-sign,md-slider:not([md-discrete]) .md-track-ticks{display:none}md-slider:not([md-discrete]):not([disabled]) .md-slider-wrapper .md-thumb:hover{transform:scale(.8)}md-slider:not([md-discrete]):not([disabled]) .md-slider-wrapper.md-focused .md-focus-ring{transform:scale(1);opacity:1}md-slider:not([md-discrete]):not([disabled]) .md-slider-wrapper.md-focused .md-thumb{animation:sliderFocusThumb .7s cubic-bezier(.35,0,.25,1)}md-slider:not([md-discrete]):not([disabled]).md-active .md-slider-wrapper .md-thumb{transform:scale(1)}md-slider[md-discrete]:not([disabled]) .md-slider-wrapper.md-focused .md-focus-ring{transform:scale(0);animation:sliderDiscreteFocusRing .5s cubic-bezier(.35,0,.25,1)}md-slider[md-discrete]:not([disabled]) .md-slider-wrapper.md-focused .md-thumb{animation:sliderDiscreteFocusThumb .5s cubic-bezier(.35,0,.25,1)}md-slider[md-discrete]:not([disabled]) .md-slider-wrapper.md-focused .md-thumb,md-slider[md-discrete]:not([disabled]).md-active .md-thumb{transform:scale(0)}md-slider[md-discrete]:not([disabled]) .md-slider-wrapper.md-focused .md-sign,md-slider[md-discrete]:not([disabled]) .md-slider-wrapper.md-focused .md-sign:after,md-slider[md-discrete]:not([disabled]).md-active .md-sign,md-slider[md-discrete]:not([disabled]).md-active .md-sign:after{opacity:1;transform:translate3d(0,0,0) scale(1)}md-slider[md-discrete][disabled][readonly] .md-thumb{transform:scale(0)}md-slider[md-discrete][disabled][readonly] .md-sign,md-slider[md-discrete][disabled][readonly] .md-sign:after{opacity:1;transform:translate3d(0,0,0) scale(1)}md-slider[disabled] .md-track-fill{display:none}md-slider[disabled] .md-track-ticks{opacity:0}md-slider[disabled]:not([readonly]) .md-sign{opacity:0}md-slider[disabled] .md-thumb{transform:scale(.5)}md-slider[disabled] .md-disabled-thumb{display:block}md-slider[md-vertical]{flex-direction:column;min-height:128px;min-width:0}md-slider[md-vertical] .md-slider-wrapper{flex:1;padding-top:12px;padding-bottom:12px;width:48px;align-self:center;display:flex;justify-content:center}md-slider[md-vertical] .md-track-container{height:100%;width:2px;top:0;left:calc(50% - (2px / 2))}md-slider[md-vertical] .md-thumb-container{top:auto;margin-bottom:23px;left:calc(50% - 1px);bottom:0}md-slider[md-vertical] .md-thumb-container .md-thumb:after{left:1px}md-slider[md-vertical] .md-thumb-container .md-focus-ring{left:-16px}md-slider[md-vertical] .md-track-fill{bottom:0}md-slider[md-vertical][md-discrete] .md-sign{left:-40px;top:9.5px;transform:scale(.4) translate3d(67.5px,0,0)}md-slider[md-vertical][md-discrete] .md-sign:after{top:9.5px;left:19px;border-top:14px solid transparent;border-right:0;border-bottom:14px solid transparent;border-left-width:16px;border-left-style:solid;opacity:0;transform:translate3d(0,-8px,0);transition:all .2s ease-in-out}md-slider[md-vertical][md-discrete] .md-sign .md-thumb-text{z-index:1;font-size:12px;font-weight:700}md-slider[md-vertical][md-discrete] .md-focused .md-sign:after,md-slider[md-vertical][md-discrete].md-active .md-sign:after,md-slider[md-vertical][md-discrete][disabled][readonly] .md-sign:after{top:0}md-slider[md-vertical][disabled][readonly] .md-thumb{transform:scale(0)}md-slider[md-vertical][disabled][readonly] .md-sign,md-slider[md-vertical][disabled][readonly] .md-sign:after{opacity:1;transform:translate3d(0,0,0) scale(1)}md-slider[md-invert]:not([md-vertical]) .md-track-fill{left:auto;right:0}[dir=rtl] md-slider[md-invert]:not([md-vertical]) .md-track-fill{left:0}[dir=rtl] md-slider[md-invert]:not([md-vertical]) .md-track-fill{right:auto}md-slider[md-invert][md-vertical] .md-track-fill{bottom:auto;top:0}md-slider-container{display:flex;align-items:center;flex-direction:row}md-slider-container>:first-child:not(md-slider),md-slider-container>:last-child:not(md-slider){min-width:25px;max-width:42px;height:25px;transition:all .4s cubic-bezier(.25,.8,.25,1);transition-property:color,max-width}md-slider-container>:first-child:not(md-slider){margin-right:16px}[dir=rtl] md-slider-container>:first-child:not(md-slider){margin-right:auto;margin-left:16px}md-slider-container>:last-child:not(md-slider){margin-left:16px}[dir=rtl] md-slider-container>:last-child:not(md-slider){margin-left:auto;margin-right:16px}md-slider-container[md-vertical]{flex-direction:column}md-slider-container[md-vertical]>:first-child:not(md-slider),md-slider-container[md-vertical]>:last-child:not(md-slider){margin-right:0;margin-left:0;text-align:center}md-slider-container md-input-container input[type=number]{text-align:center;padding-left:15px;height:50px;margin-top:-25px}[dir=rtl] md-slider-container md-input-container input[type=number]{padding-left:0;padding-right:15px}@media screen and (-ms-high-contrast:active){md-slider.md-default-theme .md-track{border-bottom:1px solid #fff}}.md-sticky-clone{z-index:2;top:0;left:0;right:0;position:absolute!important;transform:translate3d(-9999px,-9999px,0)}.md-sticky-clone[sticky-state=active]{transform:translate3d(0,0,0)}.md-sticky-clone[sticky-state=active]:not(.md-sticky-no-effect) .md-subheader-inner{animation:subheaderStickyHoverIn .3s ease-out both}@keyframes subheaderStickyHoverIn{0%{box-shadow:0 0 0 0 transparent}100%{box-shadow:0 2px 4px 0 rgba(0,0,0,.16)}}@keyframes subheaderStickyHoverOut{0%{box-shadow:0 2px 4px 0 rgba(0,0,0,.16)}100%{box-shadow:0 0 0 0 transparent}}.md-subheader-wrapper:not(.md-sticky-no-effect){transition:.2s ease-out margin}.md-subheader-wrapper:not(.md-sticky-no-effect) .md-subheader{margin:0}.md-subheader-wrapper:not(.md-sticky-no-effect).md-sticky-clone{z-index:2}.md-subheader-wrapper:not(.md-sticky-no-effect)[sticky-state=active]{margin-top:-2px}.md-subheader-wrapper:not(.md-sticky-no-effect):not(.md-sticky-clone)[sticky-prev-state=active] .md-subheader-inner:after{animation:subheaderStickyHoverOut .3s ease-out both}.md-subheader{display:block;font-size:14px;font-weight:500;line-height:1em;margin:0;position:relative}.md-subheader .md-subheader-inner{display:block;padding:16px}.md-subheader .md-subheader-content{display:block;z-index:1;position:relative}.md-inline-form md-switch{margin-top:18px;margin-bottom:19px}md-switch{margin:16px 0;white-space:nowrap;cursor:pointer;outline:0;user-select:none;height:30px;line-height:28px;align-items:center;display:flex;margin-left:inherit;margin-right:16px}[dir=rtl] md-switch{margin-left:16px}[dir=rtl] md-switch{margin-right:inherit}md-switch:last-of-type{margin-left:inherit;margin-right:0}[dir=rtl] md-switch:last-of-type{margin-left:0}[dir=rtl] md-switch:last-of-type{margin-right:inherit}md-switch[disabled]{cursor:default}md-switch[disabled] .md-container{cursor:default}md-switch .md-container{cursor:grab;width:36px;height:24px;position:relative;user-select:none;margin-right:8px;float:left}[dir=rtl] md-switch .md-container{margin-right:auto;margin-left:8px}md-switch:not([disabled]) .md-dragging,md-switch:not([disabled]).md-dragging .md-container{cursor:grabbing}md-switch.md-focused:not([disabled]) .md-thumb:before{left:-8px;top:-8px;right:-8px;bottom:-8px}md-switch.md-focused:not([disabled]):not(.md-checked) .md-thumb:before{background-color:rgba(0,0,0,.12)}md-switch .md-label{border-color:transparent;border-width:0;float:left}md-switch .md-bar{left:1px;width:34px;top:5px;height:14px;border-radius:8px;position:absolute}md-switch .md-thumb-container{top:2px;left:0;width:16px;position:absolute;transform:translate3d(0,0,0);z-index:1}md-switch.md-checked .md-thumb-container{transform:translate3d(100%,0,0)}md-switch .md-thumb{position:absolute;margin:0;left:0;top:0;outline:0;height:20px;width:20px;border-radius:50%;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}md-switch .md-thumb:before{background-color:transparent;border-radius:50%;content:'';position:absolute;display:block;height:auto;left:0;top:0;right:0;bottom:0;transition:all .5s;width:auto}md-switch .md-thumb .md-ripple-container{position:absolute;display:block;width:auto;height:auto;left:-20px;top:-20px;right:-20px;bottom:-20px}md-switch:not(.md-dragging) .md-bar,md-switch:not(.md-dragging) .md-thumb,md-switch:not(.md-dragging) .md-thumb-container{transition:all 80ms linear;transition-property:transform,background-color}md-switch:not(.md-dragging) .md-bar,md-switch:not(.md-dragging) .md-thumb{transition-delay:50ms}@media screen and (-ms-high-contrast:active){md-switch.md-default-theme .md-bar{background-color:#666}md-switch.md-default-theme.md-checked .md-bar{background-color:#9e9e9e}md-switch.md-default-theme .md-thumb{background-color:#fff}}@keyframes md-tab-content-hide{0%{opacity:1}50%{opacity:1}100%{opacity:0}}md-tab-data{position:absolute;top:0;left:0;right:0;bottom:0;z-index:-1;opacity:0}md-tabs{display:block;margin:0;border-radius:2px;overflow:hidden;position:relative;flex-shrink:0}md-tabs:not(.md-no-tab-content):not(.md-dynamic-height){min-height:248px}md-tabs[md-align-tabs=bottom]{padding-bottom:48px}md-tabs[md-align-tabs=bottom] md-tabs-wrapper{position:absolute;bottom:0;left:0;right:0;height:48px;z-index:2}md-tabs[md-align-tabs=bottom] md-tabs-content-wrapper{top:0;bottom:48px}md-tabs.md-dynamic-height md-tabs-content-wrapper{min-height:0;position:relative;top:auto;left:auto;right:auto;bottom:auto;overflow:visible}md-tabs.md-dynamic-height md-tab-content.md-active{position:relative}md-tabs[md-border-bottom] md-tabs-wrapper{border-width:0 0 1px;border-style:solid}md-tabs[md-border-bottom]:not(.md-dynamic-height) md-tabs-content-wrapper{top:49px}md-tabs-wrapper{display:block;position:relative;transform:translate3d(0,0,0)}md-tabs-wrapper md-next-button,md-tabs-wrapper md-prev-button{height:100%;width:32px;position:absolute;top:50%;transform:translateY(-50%);line-height:1em;z-index:2;cursor:pointer;font-size:16px;background:transparent no-repeat center center;transition:all .5s cubic-bezier(.35,0,.25,1)}md-tabs-wrapper md-next-button:focus,md-tabs-wrapper md-prev-button:focus{outline:0}md-tabs-wrapper md-next-button.md-disabled,md-tabs-wrapper md-prev-button.md-disabled{opacity:.25;cursor:default}md-tabs-wrapper md-next-button.ng-leave,md-tabs-wrapper md-prev-button.ng-leave{transition:none}md-tabs-wrapper md-next-button md-icon,md-tabs-wrapper md-prev-button md-icon{position:absolute;top:50%;left:50%;transform:translate3d(-50%,-50%,0)}md-tabs-wrapper md-prev-button{left:0;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE3LjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPiA8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPiA8c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSIyNHB4IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMjQgMjQiIHhtbDpzcGFjZT0icHJlc2VydmUiPiA8ZyBpZD0iSGVhZGVyIj4gPGc+IDxyZWN0IHg9Ii02MTgiIHk9Ii0xMjA4IiBmaWxsPSJub25lIiB3aWR0aD0iMTQwMCIgaGVpZ2h0PSIzNjAwIi8+IDwvZz4gPC9nPiA8ZyBpZD0iTGFiZWwiPiA8L2c+IDxnIGlkPSJJY29uIj4gPGc+IDxwb2x5Z29uIHBvaW50cz0iMTUuNCw3LjQgMTQsNiA4LDEyIDE0LDE4IDE1LjQsMTYuNiAxMC44LDEyIAkJIiBzdHlsZT0iZmlsbDp3aGl0ZTsiLz4gPHJlY3QgZmlsbD0ibm9uZSIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ii8+IDwvZz4gPC9nPiA8ZyBpZD0iR3JpZCIgZGlzcGxheT0ibm9uZSI+IDxnIGRpc3BsYXk9ImlubGluZSI+IDwvZz4gPC9nPiA8L3N2Zz4NCg==)}[dir=rtl] md-tabs-wrapper md-prev-button{left:auto;right:0}md-tabs-wrapper md-next-button{right:0;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE3LjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPiA8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPiA8c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSIyNHB4IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMjQgMjQiIHhtbDpzcGFjZT0icHJlc2VydmUiPiA8ZyBpZD0iSGVhZGVyIj4gPGc+IDxyZWN0IHg9Ii02MTgiIHk9Ii0xMzM2IiBmaWxsPSJub25lIiB3aWR0aD0iMTQwMCIgaGVpZ2h0PSIzNjAwIi8+IDwvZz4gPC9nPiA8ZyBpZD0iTGFiZWwiPiA8L2c+IDxnIGlkPSJJY29uIj4gPGc+IDxwb2x5Z29uIHBvaW50cz0iMTAsNiA4LjYsNy40IDEzLjIsMTIgOC42LDE2LjYgMTAsMTggMTYsMTIgCQkiIHN0eWxlPSJmaWxsOndoaXRlOyIvPiA8cmVjdCBmaWxsPSJub25lIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiLz4gPC9nPiA8L2c+IDxnIGlkPSJHcmlkIiBkaXNwbGF5PSJub25lIj4gPGcgZGlzcGxheT0iaW5saW5lIj4gPC9nPiA8L2c+IDwvc3ZnPg0K)}[dir=rtl] md-tabs-wrapper md-next-button{right:auto;left:0}md-tabs-wrapper md-next-button md-icon{transform:translate3d(-50%,-50%,0) rotate(180deg)}md-tabs-wrapper.md-stretch-tabs md-pagination-wrapper{width:100%;display:flex;flex-direction:row}md-tabs-wrapper.md-stretch-tabs md-pagination-wrapper md-tab-item{flex-grow:1}md-tabs-canvas{position:relative;overflow:hidden;display:block;height:48px}md-tabs-canvas:after{content:'';display:table;clear:both}md-tabs-canvas .md-dummy-wrapper{position:absolute;top:0;left:0}[dir=rtl] md-tabs-canvas .md-dummy-wrapper{left:auto;right:0}md-tabs-canvas.md-paginated{margin:0 32px}md-tabs-canvas.md-center-tabs{display:flex;flex-direction:column;text-align:center}md-tabs-canvas.md-center-tabs .md-tab{float:none;display:inline-block}md-pagination-wrapper{height:48px;display:block;transition:transform .5s cubic-bezier(.35,0,.25,1);position:absolute;width:999999px;left:0;transform:translate3d(0,0,0)}md-pagination-wrapper:after{content:'';display:table;clear:both}[dir=rtl] md-pagination-wrapper{left:auto;right:0}md-pagination-wrapper.md-center-tabs{position:relative;width:auto;margin:0 auto}md-tabs-content-wrapper{display:block;position:absolute;top:48px;left:0;right:0;bottom:0;overflow:hidden}md-tab-content{display:block;position:absolute;top:0;left:0;right:0;bottom:0;transition:transform .5s cubic-bezier(.35,0,.25,1);overflow:auto;transform:translate3d(0,0,0)}md-tab-content.md-no-scroll{bottom:auto;overflow:hidden}md-tab-content.md-no-transition,md-tab-content.ng-leave{transition:none}md-tab-content.md-left:not(.md-active){transform:translateX(-100%);animation:1s md-tab-content-hide;opacity:0}[dir=rtl] md-tab-content.md-left:not(.md-active){transform:translateX(100%)}md-tab-content.md-left:not(.md-active) *{transition:visibility 0s linear;transition-delay:.5s;visibility:hidden}md-tab-content.md-right:not(.md-active){transform:translateX(100%);animation:1s md-tab-content-hide;opacity:0}[dir=rtl] md-tab-content.md-right:not(.md-active){transform:translateX(-100%)}md-tab-content.md-right:not(.md-active) *{transition:visibility 0s linear;transition-delay:.5s;visibility:hidden}md-tab-content>div.ng-leave{animation:1s md-tab-content-hide}md-ink-bar{position:absolute;left:auto;right:auto;bottom:0;height:2px}md-ink-bar.md-left{transition:left 125ms cubic-bezier(.35,0,.25,1),right .25s cubic-bezier(.35,0,.25,1)}md-ink-bar.md-right{transition:left .25s cubic-bezier(.35,0,.25,1),right 125ms cubic-bezier(.35,0,.25,1)}md-tab{position:absolute;z-index:-1;left:-9999px}.md-tab{font-size:14px;text-align:center;line-height:24px;padding:12px 24px;transition:background-color .35s cubic-bezier(.35,0,.25,1);cursor:pointer;white-space:nowrap;position:relative;text-transform:uppercase;float:left;font-weight:500;box-sizing:border-box;overflow:hidden;text-overflow:ellipsis}[dir=rtl] .md-tab{float:right}.md-tab.md-focused{box-shadow:none;outline:0}.md-tab.md-active{cursor:default}.md-tab.md-disabled{pointer-events:none;touch-action:pan-y;user-select:none;-webkit-user-drag:none;opacity:.5;cursor:default}.md-tab.ng-leave{transition:none}md-toolbar+md-tabs{border-top-left-radius:0;border-top-right-radius:0}.md-toast-text{padding:0 6px}md-toast{position:absolute;z-index:105;box-sizing:border-box;cursor:default;overflow:hidden;padding:8px;opacity:1;transition:all .4s cubic-bezier(.25,.8,.25,1)}md-toast .md-toast-content{display:flex;direction:row;align-items:center;max-height:168px;max-width:100%;min-height:48px;padding:0 18px;box-shadow:0 2px 5px 0 rgba(0,0,0,.26);border-radius:2px;font-size:14px;overflow:hidden;transform:translate3d(0,0,0) rotateZ(0);transition:all .4s cubic-bezier(.25,.8,.25,1);justify-content:flex-start}md-toast .md-toast-content::before{content:'';min-height:48px;visibility:hidden;display:inline-block}[dir=rtl] md-toast .md-toast-content{justify-content:flex-end}md-toast .md-toast-content span{flex:1 1 0%;box-sizing:border-box;min-width:0}md-toast.md-capsule{border-radius:24px}md-toast.md-capsule .md-toast-content{border-radius:24px}md-toast.ng-leave-active .md-toast-content{transition:all .3s cubic-bezier(.55,0,.55,.2)}md-toast.md-swipedown .md-toast-content,md-toast.md-swipeleft .md-toast-content,md-toast.md-swiperight .md-toast-content,md-toast.md-swipeup .md-toast-content{transition:all .4s cubic-bezier(.25,.8,.25,1)}md-toast.ng-enter{opacity:0}md-toast.ng-enter .md-toast-content{transform:translate3d(0,100%,0)}md-toast.ng-enter.md-top .md-toast-content{transform:translate3d(0,-100%,0)}md-toast.ng-enter.ng-enter-active{opacity:1}md-toast.ng-enter.ng-enter-active .md-toast-content{transform:translate3d(0,0,0)}md-toast.ng-leave.ng-leave-active .md-toast-content{opacity:0;transform:translate3d(0,100%,0)}md-toast.ng-leave.ng-leave-active.md-swipeup .md-toast-content{transform:translate3d(0,-50%,0)}md-toast.ng-leave.ng-leave-active.md-swipedown .md-toast-content{transform:translate3d(0,50%,0)}md-toast.ng-leave.ng-leave-active.md-top .md-toast-content{transform:translate3d(0,-100%,0)}md-toast .md-action{line-height:19px;margin-left:24px;margin-right:0;cursor:pointer;text-transform:uppercase;float:right}md-toast .md-button{min-width:0;margin-right:0;margin-left:12px}[dir=rtl] md-toast .md-button{margin-right:12px}[dir=rtl] md-toast .md-button{margin-left:0}@media (max-width:959px){md-toast{left:0;right:0;width:100%;max-width:100%;min-width:0;border-radius:0;bottom:0;padding:0}md-toast.ng-leave.ng-leave-active.md-swipeup .md-toast-content{transform:translate3d(0,-50%,0)}md-toast.ng-leave.ng-leave-active.md-swipedown .md-toast-content{transform:translate3d(0,50%,0)}}@media (min-width:960px){md-toast{min-width:304px}md-toast.md-bottom{bottom:0}md-toast.md-left{left:0}md-toast.md-right{right:0}md-toast.md-top{top:0}md-toast._md-start{left:0}[dir=rtl] md-toast._md-start{left:auto;right:0}md-toast._md-end{right:0}[dir=rtl] md-toast._md-end{right:auto;left:0}md-toast.ng-leave.ng-leave-active.md-swipeleft .md-toast-content{transform:translate3d(-50%,0,0)}md-toast.ng-leave.ng-leave-active.md-swiperight .md-toast-content{transform:translate3d(50%,0,0)}}@media (min-width:1920px){md-toast .md-toast-content{max-width:568px}}@media screen and (-ms-high-contrast:active){md-toast{border:1px solid #fff}}.md-toast-animating{overflow:hidden!important}md-toolbar{box-sizing:border-box;display:flex;flex-direction:column;position:relative;z-index:2;font-size:20px;min-height:64px;width:100%}md-toolbar._md-toolbar-transitions{transition-duration:.5s;transition-timing-function:cubic-bezier(.35,0,.25,1);transition-property:background-color,fill,color}md-toolbar.md-whiteframe-z1-add,md-toolbar.md-whiteframe-z1-remove{transition:box-shadow .5s linear}md-toolbar md-toolbar-filler{width:72px}md-toolbar *,md-toolbar :after,md-toolbar :before{box-sizing:border-box}md-toolbar.ng-animate{transition:none}md-toolbar.md-tall{height:128px;min-height:128px;max-height:128px}md-toolbar.md-medium-tall{height:88px;min-height:88px;max-height:88px}md-toolbar.md-medium-tall .md-toolbar-tools{height:48px;min-height:48px;max-height:48px}md-toolbar>.md-indent{margin-left:64px}[dir=rtl] md-toolbar>.md-indent{margin-left:auto;margin-right:64px}md-toolbar~md-content>md-list{padding:0}md-toolbar~md-content>md-list md-list-item:last-child md-divider{display:none}.md-toolbar-tools{font-size:20px;letter-spacing:.005em;box-sizing:border-box;font-weight:400;display:flex;align-items:center;flex-direction:row;width:100%;height:64px;max-height:64px;padding:0 16px;margin:0}.md-toolbar-tools h1,.md-toolbar-tools h2,.md-toolbar-tools h3{font-size:inherit;font-weight:inherit;margin:inherit}.md-toolbar-tools a{color:inherit;text-decoration:none}.md-toolbar-tools .fill-height{display:flex;align-items:center}.md-toolbar-tools .md-button{margin-top:0;margin-bottom:0}.md-toolbar-tools .md-button,.md-toolbar-tools .md-button.md-icon-button md-icon{transition-duration:.5s;transition-timing-function:cubic-bezier(.35,0,.25,1);transition-property:background-color,fill,color}.md-toolbar-tools .md-button.md-icon-button md-icon.ng-animate,.md-toolbar-tools .md-button.ng-animate{transition:none}.md-toolbar-tools>.md-button:first-child{margin-left:-8px}[dir=rtl] .md-toolbar-tools>.md-button:first-child{margin-left:auto;margin-right:-8px}.md-toolbar-tools>.md-button:last-child{margin-right:-8px}[dir=rtl] .md-toolbar-tools>.md-button:last-child{margin-right:auto;margin-left:-8px}.md-toolbar-tools>md-menu:last-child{margin-right:-8px}[dir=rtl] .md-toolbar-tools>md-menu:last-child{margin-right:auto;margin-left:-8px}.md-toolbar-tools>md-menu:last-child>.md-button{margin-right:0}[dir=rtl] .md-toolbar-tools>md-menu:last-child>.md-button{margin-right:auto;margin-left:0}@media screen and (-ms-high-contrast:active){.md-toolbar-tools{border-bottom:1px solid #fff}}@media (min-width:0) and (max-width:959px) and (orientation:portrait){md-toolbar{min-height:56px}.md-toolbar-tools{height:56px;max-height:56px}}@media (min-width:0) and (max-width:959px) and (orientation:landscape){md-toolbar{min-height:48px}.md-toolbar-tools{height:48px;max-height:48px}}md-tooltip{position:absolute;z-index:100;overflow:hidden;pointer-events:none;border-radius:4px;font-weight:500;font-size:14px}@media (min-width:960px){md-tooltip{font-size:10px}}md-tooltip .md-content{position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transform-origin:center top;transform:scale(0);opacity:0;height:32px;line-height:32px;padding-left:16px;padding-right:16px}@media (min-width:960px){md-tooltip .md-content{height:22px;line-height:22px;padding-left:8px;padding-right:8px}}md-tooltip .md-content.md-show-add{transition:all .4s cubic-bezier(.25,.8,.25,1);transition-duration:.2s;transform:scale(0);opacity:0}md-tooltip .md-content.md-show,md-tooltip .md-content.md-show-add-active{transform:scale(1);opacity:.9;transform-origin:center top}md-tooltip .md-content.md-show-remove{transition:all .4s cubic-bezier(.25,.8,.25,1);transition-duration:.2s}md-tooltip .md-content.md-show-remove.md-show-remove-active{transform:scale(0);opacity:0}md-tooltip.md-hide{transition:all .3s cubic-bezier(.55,0,.55,.2)}md-tooltip.md-show{transition:all .4s cubic-bezier(.25,.8,.25,1);pointer-events:auto}.md-virtual-repeat-container{box-sizing:border-box;display:block;margin:0;overflow:hidden;padding:0;position:relative}.md-virtual-repeat-container .md-virtual-repeat-scroller{bottom:0;box-sizing:border-box;left:0;margin:0;overflow-x:hidden;padding:0;position:absolute;right:0;top:0;-webkit-overflow-scrolling:touch}.md-virtual-repeat-container .md-virtual-repeat-sizer{box-sizing:border-box;height:1px;display:block;margin:0;padding:0;width:1px}.md-virtual-repeat-container .md-virtual-repeat-offsetter{box-sizing:border-box;left:0;margin:0;padding:0;position:absolute;right:0;top:0}.md-virtual-repeat-container.md-orient-horizontal .md-virtual-repeat-scroller{overflow-x:auto;overflow-y:hidden}.md-virtual-repeat-container.md-orient-horizontal .md-virtual-repeat-offsetter{bottom:16px;right:auto;white-space:nowrap}[dir=rtl] .md-virtual-repeat-container.md-orient-horizontal .md-virtual-repeat-offsetter{right:auto;left:auto}.md-whiteframe-1dp,.md-whiteframe-z1{box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}.md-whiteframe-2dp{box-shadow:0 1px 5px 0 rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.12)}.md-whiteframe-3dp{box-shadow:0 1px 8px 0 rgba(0,0,0,.2),0 3px 4px 0 rgba(0,0,0,.14),0 3px 3px -2px rgba(0,0,0,.12)}.md-whiteframe-4dp,.md-whiteframe-z2{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}.md-whiteframe-5dp{box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 5px 8px 0 rgba(0,0,0,.14),0 1px 14px 0 rgba(0,0,0,.12)}.md-whiteframe-6dp{box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}.md-whiteframe-7dp,.md-whiteframe-z3{box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12)}.md-whiteframe-8dp{box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.md-whiteframe-9dp{box-shadow:0 5px 6px -3px rgba(0,0,0,.2),0 9px 12px 1px rgba(0,0,0,.14),0 3px 16px 2px rgba(0,0,0,.12)}.md-whiteframe-10dp,.md-whiteframe-z4{box-shadow:0 6px 6px -3px rgba(0,0,0,.2),0 10px 14px 1px rgba(0,0,0,.14),0 4px 18px 3px rgba(0,0,0,.12)}.md-whiteframe-11dp{box-shadow:0 6px 7px -4px rgba(0,0,0,.2),0 11px 15px 1px rgba(0,0,0,.14),0 4px 20px 3px rgba(0,0,0,.12)}.md-whiteframe-12dp{box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 12px 17px 2px rgba(0,0,0,.14),0 5px 22px 4px rgba(0,0,0,.12)}.md-whiteframe-13dp,.md-whiteframe-z5{box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 13px 19px 2px rgba(0,0,0,.14),0 5px 24px 4px rgba(0,0,0,.12)}.md-whiteframe-14dp{box-shadow:0 7px 9px -4px rgba(0,0,0,.2),0 14px 21px 2px rgba(0,0,0,.14),0 5px 26px 4px rgba(0,0,0,.12)}.md-whiteframe-15dp{box-shadow:0 8px 9px -5px rgba(0,0,0,.2),0 15px 22px 2px rgba(0,0,0,.14),0 6px 28px 5px rgba(0,0,0,.12)}.md-whiteframe-16dp{box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12)}.md-whiteframe-17dp{box-shadow:0 8px 11px -5px rgba(0,0,0,.2),0 17px 26px 2px rgba(0,0,0,.14),0 6px 32px 5px rgba(0,0,0,.12)}.md-whiteframe-18dp{box-shadow:0 9px 11px -5px rgba(0,0,0,.2),0 18px 28px 2px rgba(0,0,0,.14),0 7px 34px 6px rgba(0,0,0,.12)}.md-whiteframe-19dp{box-shadow:0 9px 12px -6px rgba(0,0,0,.2),0 19px 29px 2px rgba(0,0,0,.14),0 7px 36px 6px rgba(0,0,0,.12)}.md-whiteframe-20dp{box-shadow:0 10px 13px -6px rgba(0,0,0,.2),0 20px 31px 3px rgba(0,0,0,.14),0 8px 38px 7px rgba(0,0,0,.12)}.md-whiteframe-21dp{box-shadow:0 10px 13px -6px rgba(0,0,0,.2),0 21px 33px 3px rgba(0,0,0,.14),0 8px 40px 7px rgba(0,0,0,.12)}.md-whiteframe-22dp{box-shadow:0 10px 14px -6px rgba(0,0,0,.2),0 22px 35px 3px rgba(0,0,0,.14),0 8px 42px 7px rgba(0,0,0,.12)}.md-whiteframe-23dp{box-shadow:0 11px 14px -7px rgba(0,0,0,.2),0 23px 36px 3px rgba(0,0,0,.14),0 9px 44px 8px rgba(0,0,0,.12)}.md-whiteframe-24dp{box-shadow:0 11px 15px -7px rgba(0,0,0,.2),0 24px 38px 3px rgba(0,0,0,.14),0 9px 46px 8px rgba(0,0,0,.12)}@media screen and (-ms-high-contrast:active){md-whiteframe{border:1px solid #fff}}@media print{[md-whiteframe],md-whiteframe{background-color:#fff}}.ng-cloak,.x-ng-cloak,[data-ng-cloak],[ng-cloak],[ng\:cloak],[x-ng-cloak]{display:none!important}@-moz-document url-prefix(){.layout-fill{margin:0;width:100%;min-height:100%;height:100%}}.flex-order{order:0}.flex-order--20{order:-20}.flex-order--19{order:-19}.flex-order--18{order:-18}.flex-order--17{order:-17}.flex-order--16{order:-16}.flex-order--15{order:-15}.flex-order--14{order:-14}.flex-order--13{order:-13}.flex-order--12{order:-12}.flex-order--11{order:-11}.flex-order--10{order:-10}.flex-order--9{order:-9}.flex-order--8{order:-8}.flex-order--7{order:-7}.flex-order--6{order:-6}.flex-order--5{order:-5}.flex-order--4{order:-4}.flex-order--3{order:-3}.flex-order--2{order:-2}.flex-order--1{order:-1}.flex-order-0{order:0}.flex-order-1{order:1}.flex-order-2{order:2}.flex-order-3{order:3}.flex-order-4{order:4}.flex-order-5{order:5}.flex-order-6{order:6}.flex-order-7{order:7}.flex-order-8{order:8}.flex-order-9{order:9}.flex-order-10{order:10}.flex-order-11{order:11}.flex-order-12{order:12}.flex-order-13{order:13}.flex-order-14{order:14}.flex-order-15{order:15}.flex-order-16{order:16}.flex-order-17{order:17}.flex-order-18{order:18}.flex-order-19{order:19}.flex-order-20{order:20}.flex-offset-0,.offset-0{margin-left:0}[dir=rtl] .flex-offset-0,[dir=rtl] .offset-0{margin-left:auto;margin-right:0}.flex-offset-5,.offset-5{margin-left:5%}[dir=rtl] .flex-offset-5,[dir=rtl] .offset-5{margin-left:auto;margin-right:5%}.flex-offset-10,.offset-10{margin-left:10%}[dir=rtl] .flex-offset-10,[dir=rtl] .offset-10{margin-left:auto;margin-right:10%}.flex-offset-15,.offset-15{margin-left:15%}[dir=rtl] .flex-offset-15,[dir=rtl] .offset-15{margin-left:auto;margin-right:15%}.flex-offset-20,.offset-20{margin-left:20%}[dir=rtl] .flex-offset-20,[dir=rtl] .offset-20{margin-left:auto;margin-right:20%}.flex-offset-25,.offset-25{margin-left:25%}[dir=rtl] .flex-offset-25,[dir=rtl] .offset-25{margin-left:auto;margin-right:25%}.flex-offset-30,.offset-30{margin-left:30%}[dir=rtl] .flex-offset-30,[dir=rtl] .offset-30{margin-left:auto;margin-right:30%}.flex-offset-35,.offset-35{margin-left:35%}[dir=rtl] .flex-offset-35,[dir=rtl] .offset-35{margin-left:auto;margin-right:35%}.flex-offset-40,.offset-40{margin-left:40%}[dir=rtl] .flex-offset-40,[dir=rtl] .offset-40{margin-left:auto;margin-right:40%}.flex-offset-45,.offset-45{margin-left:45%}[dir=rtl] .flex-offset-45,[dir=rtl] .offset-45{margin-left:auto;margin-right:45%}.flex-offset-50,.offset-50{margin-left:50%}[dir=rtl] .flex-offset-50,[dir=rtl] .offset-50{margin-left:auto;margin-right:50%}.flex-offset-55,.offset-55{margin-left:55%}[dir=rtl] .flex-offset-55,[dir=rtl] .offset-55{margin-left:auto;margin-right:55%}.flex-offset-60,.offset-60{margin-left:60%}[dir=rtl] .flex-offset-60,[dir=rtl] .offset-60{margin-left:auto;margin-right:60%}.flex-offset-65,.offset-65{margin-left:65%}[dir=rtl] .flex-offset-65,[dir=rtl] .offset-65{margin-left:auto;margin-right:65%}.flex-offset-70,.offset-70{margin-left:70%}[dir=rtl] .flex-offset-70,[dir=rtl] .offset-70{margin-left:auto;margin-right:70%}.flex-offset-75,.offset-75{margin-left:75%}[dir=rtl] .flex-offset-75,[dir=rtl] .offset-75{margin-left:auto;margin-right:75%}.flex-offset-80,.offset-80{margin-left:80%}[dir=rtl] .flex-offset-80,[dir=rtl] .offset-80{margin-left:auto;margin-right:80%}.flex-offset-85,.offset-85{margin-left:85%}[dir=rtl] .flex-offset-85,[dir=rtl] .offset-85{margin-left:auto;margin-right:85%}.flex-offset-90,.offset-90{margin-left:90%}[dir=rtl] .flex-offset-90,[dir=rtl] .offset-90{margin-left:auto;margin-right:90%}.flex-offset-95,.offset-95{margin-left:95%}[dir=rtl] .flex-offset-95,[dir=rtl] .offset-95{margin-left:auto;margin-right:95%}.flex-offset-33,.offset-33{margin-left:calc(100% / 3)}.flex-offset-66,.offset-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-66,[dir=rtl] .offset-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align,.layout-align-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-start,.layout-align-start-center,.layout-align-start-end,.layout-align-start-start,.layout-align-start-stretch{justify-content:flex-start}.layout-align-center,.layout-align-center-center,.layout-align-center-end,.layout-align-center-start,.layout-align-center-stretch{justify-content:center}.layout-align-end,.layout-align-end-center,.layout-align-end-end,.layout-align-end-start,.layout-align-end-stretch{justify-content:flex-end}.layout-align-space-around,.layout-align-space-around-center,.layout-align-space-around-end,.layout-align-space-around-start,.layout-align-space-around-stretch{justify-content:space-around}.layout-align-space-between,.layout-align-space-between-center,.layout-align-space-between-end,.layout-align-space-between-start,.layout-align-space-between-stretch{justify-content:space-between}.layout-align-center-start,.layout-align-end-start,.layout-align-space-around-start,.layout-align-space-between-start,.layout-align-start-start{align-items:flex-start;align-content:flex-start}.layout-align-center-center,.layout-align-end-center,.layout-align-space-around-center,.layout-align-space-between-center,.layout-align-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-center-center>*,.layout-align-end-center>*,.layout-align-space-around-center>*,.layout-align-space-between-center>*,.layout-align-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-center-end,.layout-align-end-end,.layout-align-space-around-end,.layout-align-space-between-end,.layout-align-start-end{align-items:flex-end;align-content:flex-end}.layout-align-center-stretch,.layout-align-end-stretch,.layout-align-space-around-stretch,.layout-align-space-between-stretch,.layout-align-start-stretch{align-items:stretch;align-content:stretch}.flex{flex:1;box-sizing:border-box}.flex-grow{flex:1 1 100%;box-sizing:border-box}.flex-initial{flex:0 1 auto;box-sizing:border-box}.flex-auto{flex:1 1 auto;box-sizing:border-box}.flex-none{flex:0 0 auto;box-sizing:border-box}.flex-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box}.layout-row>.flex-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-row>.flex{min-width:0}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-column>.flex{min-height:0}.layout,.layout-column,.layout-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-column{flex-direction:column}.layout-row{flex-direction:row}.layout-padding-sm>*,.layout-padding>.flex-sm{padding:4px}.layout-padding,.layout-padding-gt-sm,.layout-padding-gt-sm>*,.layout-padding-md,.layout-padding-md>*,.layout-padding>*,.layout-padding>.flex,.layout-padding>.flex-gt-sm,.layout-padding>.flex-md{padding:8px}.layout-padding-gt-lg>*,.layout-padding-gt-md>*,.layout-padding-lg>*,.layout-padding>.flex-gt-lg,.layout-padding>.flex-gt-md,.layout-padding>.flex-lg{padding:16px}.layout-margin-sm>*,.layout-margin>.flex-sm{margin:4px}.layout-margin,.layout-margin-gt-sm,.layout-margin-gt-sm>*,.layout-margin-md,.layout-margin-md>*,.layout-margin>*,.layout-margin>.flex,.layout-margin>.flex-gt-sm,.layout-margin>.flex-md{margin:8px}.layout-margin-gt-lg>*,.layout-margin-gt-md>*,.layout-margin-lg>*,.layout-margin>.flex-gt-lg,.layout-margin>.flex-gt-md,.layout-margin>.flex-lg{margin:16px}.layout-wrap{flex-wrap:wrap}.layout-nowrap{flex-wrap:nowrap}.layout-fill{margin:0;width:100%;min-height:100%;height:100%}@media (max-width:599px){.hide-xs:not(.show-xs):not(.show),.hide:not(.show-xs):not(.show){display:none}.flex-order-xs--20{order:-20}.flex-order-xs--19{order:-19}.flex-order-xs--18{order:-18}.flex-order-xs--17{order:-17}.flex-order-xs--16{order:-16}.flex-order-xs--15{order:-15}.flex-order-xs--14{order:-14}.flex-order-xs--13{order:-13}.flex-order-xs--12{order:-12}.flex-order-xs--11{order:-11}.flex-order-xs--10{order:-10}.flex-order-xs--9{order:-9}.flex-order-xs--8{order:-8}.flex-order-xs--7{order:-7}.flex-order-xs--6{order:-6}.flex-order-xs--5{order:-5}.flex-order-xs--4{order:-4}.flex-order-xs--3{order:-3}.flex-order-xs--2{order:-2}.flex-order-xs--1{order:-1}.flex-order-xs-0{order:0}.flex-order-xs-1{order:1}.flex-order-xs-2{order:2}.flex-order-xs-3{order:3}.flex-order-xs-4{order:4}.flex-order-xs-5{order:5}.flex-order-xs-6{order:6}.flex-order-xs-7{order:7}.flex-order-xs-8{order:8}.flex-order-xs-9{order:9}.flex-order-xs-10{order:10}.flex-order-xs-11{order:11}.flex-order-xs-12{order:12}.flex-order-xs-13{order:13}.flex-order-xs-14{order:14}.flex-order-xs-15{order:15}.flex-order-xs-16{order:16}.flex-order-xs-17{order:17}.flex-order-xs-18{order:18}.flex-order-xs-19{order:19}.flex-order-xs-20{order:20}.flex-offset-xs-0,.offset-xs-0{margin-left:0}[dir=rtl] .flex-offset-xs-0,[dir=rtl] .offset-xs-0{margin-left:auto;margin-right:0}.flex-offset-xs-5,.offset-xs-5{margin-left:5%}[dir=rtl] .flex-offset-xs-5,[dir=rtl] .offset-xs-5{margin-left:auto;margin-right:5%}.flex-offset-xs-10,.offset-xs-10{margin-left:10%}[dir=rtl] .flex-offset-xs-10,[dir=rtl] .offset-xs-10{margin-left:auto;margin-right:10%}.flex-offset-xs-15,.offset-xs-15{margin-left:15%}[dir=rtl] .flex-offset-xs-15,[dir=rtl] .offset-xs-15{margin-left:auto;margin-right:15%}.flex-offset-xs-20,.offset-xs-20{margin-left:20%}[dir=rtl] .flex-offset-xs-20,[dir=rtl] .offset-xs-20{margin-left:auto;margin-right:20%}.flex-offset-xs-25,.offset-xs-25{margin-left:25%}[dir=rtl] .flex-offset-xs-25,[dir=rtl] .offset-xs-25{margin-left:auto;margin-right:25%}.flex-offset-xs-30,.offset-xs-30{margin-left:30%}[dir=rtl] .flex-offset-xs-30,[dir=rtl] .offset-xs-30{margin-left:auto;margin-right:30%}.flex-offset-xs-35,.offset-xs-35{margin-left:35%}[dir=rtl] .flex-offset-xs-35,[dir=rtl] .offset-xs-35{margin-left:auto;margin-right:35%}.flex-offset-xs-40,.offset-xs-40{margin-left:40%}[dir=rtl] .flex-offset-xs-40,[dir=rtl] .offset-xs-40{margin-left:auto;margin-right:40%}.flex-offset-xs-45,.offset-xs-45{margin-left:45%}[dir=rtl] .flex-offset-xs-45,[dir=rtl] .offset-xs-45{margin-left:auto;margin-right:45%}.flex-offset-xs-50,.offset-xs-50{margin-left:50%}[dir=rtl] .flex-offset-xs-50,[dir=rtl] .offset-xs-50{margin-left:auto;margin-right:50%}.flex-offset-xs-55,.offset-xs-55{margin-left:55%}[dir=rtl] .flex-offset-xs-55,[dir=rtl] .offset-xs-55{margin-left:auto;margin-right:55%}.flex-offset-xs-60,.offset-xs-60{margin-left:60%}[dir=rtl] .flex-offset-xs-60,[dir=rtl] .offset-xs-60{margin-left:auto;margin-right:60%}.flex-offset-xs-65,.offset-xs-65{margin-left:65%}[dir=rtl] .flex-offset-xs-65,[dir=rtl] .offset-xs-65{margin-left:auto;margin-right:65%}.flex-offset-xs-70,.offset-xs-70{margin-left:70%}[dir=rtl] .flex-offset-xs-70,[dir=rtl] .offset-xs-70{margin-left:auto;margin-right:70%}.flex-offset-xs-75,.offset-xs-75{margin-left:75%}[dir=rtl] .flex-offset-xs-75,[dir=rtl] .offset-xs-75{margin-left:auto;margin-right:75%}.flex-offset-xs-80,.offset-xs-80{margin-left:80%}[dir=rtl] .flex-offset-xs-80,[dir=rtl] .offset-xs-80{margin-left:auto;margin-right:80%}.flex-offset-xs-85,.offset-xs-85{margin-left:85%}[dir=rtl] .flex-offset-xs-85,[dir=rtl] .offset-xs-85{margin-left:auto;margin-right:85%}.flex-offset-xs-90,.offset-xs-90{margin-left:90%}[dir=rtl] .flex-offset-xs-90,[dir=rtl] .offset-xs-90{margin-left:auto;margin-right:90%}.flex-offset-xs-95,.offset-xs-95{margin-left:95%}[dir=rtl] .flex-offset-xs-95,[dir=rtl] .offset-xs-95{margin-left:auto;margin-right:95%}.flex-offset-xs-33,.offset-xs-33{margin-left:calc(100% / 3)}.flex-offset-xs-66,.offset-xs-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-xs-66,[dir=rtl] .offset-xs-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-xs,.layout-align-xs-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-xs-start,.layout-align-xs-start-center,.layout-align-xs-start-end,.layout-align-xs-start-start,.layout-align-xs-start-stretch{justify-content:flex-start}.layout-align-xs-center,.layout-align-xs-center-center,.layout-align-xs-center-end,.layout-align-xs-center-start,.layout-align-xs-center-stretch{justify-content:center}.layout-align-xs-end,.layout-align-xs-end-center,.layout-align-xs-end-end,.layout-align-xs-end-start,.layout-align-xs-end-stretch{justify-content:flex-end}.layout-align-xs-space-around,.layout-align-xs-space-around-center,.layout-align-xs-space-around-end,.layout-align-xs-space-around-start,.layout-align-xs-space-around-stretch{justify-content:space-around}.layout-align-xs-space-between,.layout-align-xs-space-between-center,.layout-align-xs-space-between-end,.layout-align-xs-space-between-start,.layout-align-xs-space-between-stretch{justify-content:space-between}.layout-align-xs-center-start,.layout-align-xs-end-start,.layout-align-xs-space-around-start,.layout-align-xs-space-between-start,.layout-align-xs-start-start{align-items:flex-start;align-content:flex-start}.layout-align-xs-center-center,.layout-align-xs-end-center,.layout-align-xs-space-around-center,.layout-align-xs-space-between-center,.layout-align-xs-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-xs-center-center>*,.layout-align-xs-end-center>*,.layout-align-xs-space-around-center>*,.layout-align-xs-space-between-center>*,.layout-align-xs-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-xs-center-end,.layout-align-xs-end-end,.layout-align-xs-space-around-end,.layout-align-xs-space-between-end,.layout-align-xs-start-end{align-items:flex-end;align-content:flex-end}.layout-align-xs-center-stretch,.layout-align-xs-end-stretch,.layout-align-xs-space-around-stretch,.layout-align-xs-space-between-stretch,.layout-align-xs-start-stretch{align-items:stretch;align-content:stretch}.flex-xs{flex:1;box-sizing:border-box}.flex-xs-grow{flex:1 1 100%;box-sizing:border-box}.flex-xs-initial{flex:0 1 auto;box-sizing:border-box}.flex-xs-auto{flex:1 1 auto;box-sizing:border-box}.flex-xs-none{flex:0 0 auto;box-sizing:border-box}.flex-xs-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-xs-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-xs-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-xs-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-xs-column>.flex-xs-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-xs-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-xs-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-xs-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-xs-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-xs-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-xs-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-xs-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-xs-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-xs-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-xs-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-xs-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-xs-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-xs-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-xs-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-xs-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-xs-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-xs-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-xs-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-xs-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-xs-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-xs-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-xs-row>.flex{min-width:0}.layout-xs-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-xs-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-column>.flex{min-height:0}.layout-xs,.layout-xs-column,.layout-xs-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-xs-column{flex-direction:column}.layout-xs-row{flex-direction:row}}@media (min-width:600px){.flex-order-gt-xs--20{order:-20}.flex-order-gt-xs--19{order:-19}.flex-order-gt-xs--18{order:-18}.flex-order-gt-xs--17{order:-17}.flex-order-gt-xs--16{order:-16}.flex-order-gt-xs--15{order:-15}.flex-order-gt-xs--14{order:-14}.flex-order-gt-xs--13{order:-13}.flex-order-gt-xs--12{order:-12}.flex-order-gt-xs--11{order:-11}.flex-order-gt-xs--10{order:-10}.flex-order-gt-xs--9{order:-9}.flex-order-gt-xs--8{order:-8}.flex-order-gt-xs--7{order:-7}.flex-order-gt-xs--6{order:-6}.flex-order-gt-xs--5{order:-5}.flex-order-gt-xs--4{order:-4}.flex-order-gt-xs--3{order:-3}.flex-order-gt-xs--2{order:-2}.flex-order-gt-xs--1{order:-1}.flex-order-gt-xs-0{order:0}.flex-order-gt-xs-1{order:1}.flex-order-gt-xs-2{order:2}.flex-order-gt-xs-3{order:3}.flex-order-gt-xs-4{order:4}.flex-order-gt-xs-5{order:5}.flex-order-gt-xs-6{order:6}.flex-order-gt-xs-7{order:7}.flex-order-gt-xs-8{order:8}.flex-order-gt-xs-9{order:9}.flex-order-gt-xs-10{order:10}.flex-order-gt-xs-11{order:11}.flex-order-gt-xs-12{order:12}.flex-order-gt-xs-13{order:13}.flex-order-gt-xs-14{order:14}.flex-order-gt-xs-15{order:15}.flex-order-gt-xs-16{order:16}.flex-order-gt-xs-17{order:17}.flex-order-gt-xs-18{order:18}.flex-order-gt-xs-19{order:19}.flex-order-gt-xs-20{order:20}.flex-offset-gt-xs-0,.offset-gt-xs-0{margin-left:0}[dir=rtl] .flex-offset-gt-xs-0,[dir=rtl] .offset-gt-xs-0{margin-left:auto;margin-right:0}.flex-offset-gt-xs-5,.offset-gt-xs-5{margin-left:5%}[dir=rtl] .flex-offset-gt-xs-5,[dir=rtl] .offset-gt-xs-5{margin-left:auto;margin-right:5%}.flex-offset-gt-xs-10,.offset-gt-xs-10{margin-left:10%}[dir=rtl] .flex-offset-gt-xs-10,[dir=rtl] .offset-gt-xs-10{margin-left:auto;margin-right:10%}.flex-offset-gt-xs-15,.offset-gt-xs-15{margin-left:15%}[dir=rtl] .flex-offset-gt-xs-15,[dir=rtl] .offset-gt-xs-15{margin-left:auto;margin-right:15%}.flex-offset-gt-xs-20,.offset-gt-xs-20{margin-left:20%}[dir=rtl] .flex-offset-gt-xs-20,[dir=rtl] .offset-gt-xs-20{margin-left:auto;margin-right:20%}.flex-offset-gt-xs-25,.offset-gt-xs-25{margin-left:25%}[dir=rtl] .flex-offset-gt-xs-25,[dir=rtl] .offset-gt-xs-25{margin-left:auto;margin-right:25%}.flex-offset-gt-xs-30,.offset-gt-xs-30{margin-left:30%}[dir=rtl] .flex-offset-gt-xs-30,[dir=rtl] .offset-gt-xs-30{margin-left:auto;margin-right:30%}.flex-offset-gt-xs-35,.offset-gt-xs-35{margin-left:35%}[dir=rtl] .flex-offset-gt-xs-35,[dir=rtl] .offset-gt-xs-35{margin-left:auto;margin-right:35%}.flex-offset-gt-xs-40,.offset-gt-xs-40{margin-left:40%}[dir=rtl] .flex-offset-gt-xs-40,[dir=rtl] .offset-gt-xs-40{margin-left:auto;margin-right:40%}.flex-offset-gt-xs-45,.offset-gt-xs-45{margin-left:45%}[dir=rtl] .flex-offset-gt-xs-45,[dir=rtl] .offset-gt-xs-45{margin-left:auto;margin-right:45%}.flex-offset-gt-xs-50,.offset-gt-xs-50{margin-left:50%}[dir=rtl] .flex-offset-gt-xs-50,[dir=rtl] .offset-gt-xs-50{margin-left:auto;margin-right:50%}.flex-offset-gt-xs-55,.offset-gt-xs-55{margin-left:55%}[dir=rtl] .flex-offset-gt-xs-55,[dir=rtl] .offset-gt-xs-55{margin-left:auto;margin-right:55%}.flex-offset-gt-xs-60,.offset-gt-xs-60{margin-left:60%}[dir=rtl] .flex-offset-gt-xs-60,[dir=rtl] .offset-gt-xs-60{margin-left:auto;margin-right:60%}.flex-offset-gt-xs-65,.offset-gt-xs-65{margin-left:65%}[dir=rtl] .flex-offset-gt-xs-65,[dir=rtl] .offset-gt-xs-65{margin-left:auto;margin-right:65%}.flex-offset-gt-xs-70,.offset-gt-xs-70{margin-left:70%}[dir=rtl] .flex-offset-gt-xs-70,[dir=rtl] .offset-gt-xs-70{margin-left:auto;margin-right:70%}.flex-offset-gt-xs-75,.offset-gt-xs-75{margin-left:75%}[dir=rtl] .flex-offset-gt-xs-75,[dir=rtl] .offset-gt-xs-75{margin-left:auto;margin-right:75%}.flex-offset-gt-xs-80,.offset-gt-xs-80{margin-left:80%}[dir=rtl] .flex-offset-gt-xs-80,[dir=rtl] .offset-gt-xs-80{margin-left:auto;margin-right:80%}.flex-offset-gt-xs-85,.offset-gt-xs-85{margin-left:85%}[dir=rtl] .flex-offset-gt-xs-85,[dir=rtl] .offset-gt-xs-85{margin-left:auto;margin-right:85%}.flex-offset-gt-xs-90,.offset-gt-xs-90{margin-left:90%}[dir=rtl] .flex-offset-gt-xs-90,[dir=rtl] .offset-gt-xs-90{margin-left:auto;margin-right:90%}.flex-offset-gt-xs-95,.offset-gt-xs-95{margin-left:95%}[dir=rtl] .flex-offset-gt-xs-95,[dir=rtl] .offset-gt-xs-95{margin-left:auto;margin-right:95%}.flex-offset-gt-xs-33,.offset-gt-xs-33{margin-left:calc(100% / 3)}.flex-offset-gt-xs-66,.offset-gt-xs-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-gt-xs-66,[dir=rtl] .offset-gt-xs-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-gt-xs,.layout-align-gt-xs-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-gt-xs-start,.layout-align-gt-xs-start-center,.layout-align-gt-xs-start-end,.layout-align-gt-xs-start-start,.layout-align-gt-xs-start-stretch{justify-content:flex-start}.layout-align-gt-xs-center,.layout-align-gt-xs-center-center,.layout-align-gt-xs-center-end,.layout-align-gt-xs-center-start,.layout-align-gt-xs-center-stretch{justify-content:center}.layout-align-gt-xs-end,.layout-align-gt-xs-end-center,.layout-align-gt-xs-end-end,.layout-align-gt-xs-end-start,.layout-align-gt-xs-end-stretch{justify-content:flex-end}.layout-align-gt-xs-space-around,.layout-align-gt-xs-space-around-center,.layout-align-gt-xs-space-around-end,.layout-align-gt-xs-space-around-start,.layout-align-gt-xs-space-around-stretch{justify-content:space-around}.layout-align-gt-xs-space-between,.layout-align-gt-xs-space-between-center,.layout-align-gt-xs-space-between-end,.layout-align-gt-xs-space-between-start,.layout-align-gt-xs-space-between-stretch{justify-content:space-between}.layout-align-gt-xs-center-start,.layout-align-gt-xs-end-start,.layout-align-gt-xs-space-around-start,.layout-align-gt-xs-space-between-start,.layout-align-gt-xs-start-start{align-items:flex-start;align-content:flex-start}.layout-align-gt-xs-center-center,.layout-align-gt-xs-end-center,.layout-align-gt-xs-space-around-center,.layout-align-gt-xs-space-between-center,.layout-align-gt-xs-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-gt-xs-center-center>*,.layout-align-gt-xs-end-center>*,.layout-align-gt-xs-space-around-center>*,.layout-align-gt-xs-space-between-center>*,.layout-align-gt-xs-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-gt-xs-center-end,.layout-align-gt-xs-end-end,.layout-align-gt-xs-space-around-end,.layout-align-gt-xs-space-between-end,.layout-align-gt-xs-start-end{align-items:flex-end;align-content:flex-end}.layout-align-gt-xs-center-stretch,.layout-align-gt-xs-end-stretch,.layout-align-gt-xs-space-around-stretch,.layout-align-gt-xs-space-between-stretch,.layout-align-gt-xs-start-stretch{align-items:stretch;align-content:stretch}.flex-gt-xs{flex:1;box-sizing:border-box}.flex-gt-xs-grow{flex:1 1 100%;box-sizing:border-box}.flex-gt-xs-initial{flex:0 1 auto;box-sizing:border-box}.flex-gt-xs-auto{flex:1 1 auto;box-sizing:border-box}.flex-gt-xs-none{flex:0 0 auto;box-sizing:border-box}.flex-gt-xs-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-gt-xs-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-gt-xs-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-gt-xs-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-gt-xs-column>.flex-gt-xs-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-gt-xs-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-gt-xs-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-gt-xs-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-gt-xs-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-gt-xs-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-gt-xs-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-gt-xs-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-gt-xs-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-gt-xs-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-gt-xs-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-gt-xs-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-gt-xs-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-gt-xs-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-gt-xs-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-gt-xs-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-gt-xs-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-gt-xs-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-gt-xs-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-gt-xs-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-gt-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-gt-xs-row>.flex{min-width:0}.layout-gt-xs-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-column>.flex{min-height:0}.layout-gt-xs,.layout-gt-xs-column,.layout-gt-xs-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-gt-xs-column{flex-direction:column}.layout-gt-xs-row{flex-direction:row}}@media (min-width:600px) and (max-width:959px){.hide-gt-xs:not(.show-gt-xs):not(.show-sm):not(.show),.hide:not(.show-gt-xs):not(.show-sm):not(.show){display:none}.hide-sm:not(.show-gt-xs):not(.show-sm):not(.show){display:none}.flex-order-sm--20{order:-20}.flex-order-sm--19{order:-19}.flex-order-sm--18{order:-18}.flex-order-sm--17{order:-17}.flex-order-sm--16{order:-16}.flex-order-sm--15{order:-15}.flex-order-sm--14{order:-14}.flex-order-sm--13{order:-13}.flex-order-sm--12{order:-12}.flex-order-sm--11{order:-11}.flex-order-sm--10{order:-10}.flex-order-sm--9{order:-9}.flex-order-sm--8{order:-8}.flex-order-sm--7{order:-7}.flex-order-sm--6{order:-6}.flex-order-sm--5{order:-5}.flex-order-sm--4{order:-4}.flex-order-sm--3{order:-3}.flex-order-sm--2{order:-2}.flex-order-sm--1{order:-1}.flex-order-sm-0{order:0}.flex-order-sm-1{order:1}.flex-order-sm-2{order:2}.flex-order-sm-3{order:3}.flex-order-sm-4{order:4}.flex-order-sm-5{order:5}.flex-order-sm-6{order:6}.flex-order-sm-7{order:7}.flex-order-sm-8{order:8}.flex-order-sm-9{order:9}.flex-order-sm-10{order:10}.flex-order-sm-11{order:11}.flex-order-sm-12{order:12}.flex-order-sm-13{order:13}.flex-order-sm-14{order:14}.flex-order-sm-15{order:15}.flex-order-sm-16{order:16}.flex-order-sm-17{order:17}.flex-order-sm-18{order:18}.flex-order-sm-19{order:19}.flex-order-sm-20{order:20}.flex-offset-sm-0,.offset-sm-0{margin-left:0}[dir=rtl] .flex-offset-sm-0,[dir=rtl] .offset-sm-0{margin-left:auto;margin-right:0}.flex-offset-sm-5,.offset-sm-5{margin-left:5%}[dir=rtl] .flex-offset-sm-5,[dir=rtl] .offset-sm-5{margin-left:auto;margin-right:5%}.flex-offset-sm-10,.offset-sm-10{margin-left:10%}[dir=rtl] .flex-offset-sm-10,[dir=rtl] .offset-sm-10{margin-left:auto;margin-right:10%}.flex-offset-sm-15,.offset-sm-15{margin-left:15%}[dir=rtl] .flex-offset-sm-15,[dir=rtl] .offset-sm-15{margin-left:auto;margin-right:15%}.flex-offset-sm-20,.offset-sm-20{margin-left:20%}[dir=rtl] .flex-offset-sm-20,[dir=rtl] .offset-sm-20{margin-left:auto;margin-right:20%}.flex-offset-sm-25,.offset-sm-25{margin-left:25%}[dir=rtl] .flex-offset-sm-25,[dir=rtl] .offset-sm-25{margin-left:auto;margin-right:25%}.flex-offset-sm-30,.offset-sm-30{margin-left:30%}[dir=rtl] .flex-offset-sm-30,[dir=rtl] .offset-sm-30{margin-left:auto;margin-right:30%}.flex-offset-sm-35,.offset-sm-35{margin-left:35%}[dir=rtl] .flex-offset-sm-35,[dir=rtl] .offset-sm-35{margin-left:auto;margin-right:35%}.flex-offset-sm-40,.offset-sm-40{margin-left:40%}[dir=rtl] .flex-offset-sm-40,[dir=rtl] .offset-sm-40{margin-left:auto;margin-right:40%}.flex-offset-sm-45,.offset-sm-45{margin-left:45%}[dir=rtl] .flex-offset-sm-45,[dir=rtl] .offset-sm-45{margin-left:auto;margin-right:45%}.flex-offset-sm-50,.offset-sm-50{margin-left:50%}[dir=rtl] .flex-offset-sm-50,[dir=rtl] .offset-sm-50{margin-left:auto;margin-right:50%}.flex-offset-sm-55,.offset-sm-55{margin-left:55%}[dir=rtl] .flex-offset-sm-55,[dir=rtl] .offset-sm-55{margin-left:auto;margin-right:55%}.flex-offset-sm-60,.offset-sm-60{margin-left:60%}[dir=rtl] .flex-offset-sm-60,[dir=rtl] .offset-sm-60{margin-left:auto;margin-right:60%}.flex-offset-sm-65,.offset-sm-65{margin-left:65%}[dir=rtl] .flex-offset-sm-65,[dir=rtl] .offset-sm-65{margin-left:auto;margin-right:65%}.flex-offset-sm-70,.offset-sm-70{margin-left:70%}[dir=rtl] .flex-offset-sm-70,[dir=rtl] .offset-sm-70{margin-left:auto;margin-right:70%}.flex-offset-sm-75,.offset-sm-75{margin-left:75%}[dir=rtl] .flex-offset-sm-75,[dir=rtl] .offset-sm-75{margin-left:auto;margin-right:75%}.flex-offset-sm-80,.offset-sm-80{margin-left:80%}[dir=rtl] .flex-offset-sm-80,[dir=rtl] .offset-sm-80{margin-left:auto;margin-right:80%}.flex-offset-sm-85,.offset-sm-85{margin-left:85%}[dir=rtl] .flex-offset-sm-85,[dir=rtl] .offset-sm-85{margin-left:auto;margin-right:85%}.flex-offset-sm-90,.offset-sm-90{margin-left:90%}[dir=rtl] .flex-offset-sm-90,[dir=rtl] .offset-sm-90{margin-left:auto;margin-right:90%}.flex-offset-sm-95,.offset-sm-95{margin-left:95%}[dir=rtl] .flex-offset-sm-95,[dir=rtl] .offset-sm-95{margin-left:auto;margin-right:95%}.flex-offset-sm-33,.offset-sm-33{margin-left:calc(100% / 3)}.flex-offset-sm-66,.offset-sm-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-sm-66,[dir=rtl] .offset-sm-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-sm,.layout-align-sm-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-sm-start,.layout-align-sm-start-center,.layout-align-sm-start-end,.layout-align-sm-start-start,.layout-align-sm-start-stretch{justify-content:flex-start}.layout-align-sm-center,.layout-align-sm-center-center,.layout-align-sm-center-end,.layout-align-sm-center-start,.layout-align-sm-center-stretch{justify-content:center}.layout-align-sm-end,.layout-align-sm-end-center,.layout-align-sm-end-end,.layout-align-sm-end-start,.layout-align-sm-end-stretch{justify-content:flex-end}.layout-align-sm-space-around,.layout-align-sm-space-around-center,.layout-align-sm-space-around-end,.layout-align-sm-space-around-start,.layout-align-sm-space-around-stretch{justify-content:space-around}.layout-align-sm-space-between,.layout-align-sm-space-between-center,.layout-align-sm-space-between-end,.layout-align-sm-space-between-start,.layout-align-sm-space-between-stretch{justify-content:space-between}.layout-align-sm-center-start,.layout-align-sm-end-start,.layout-align-sm-space-around-start,.layout-align-sm-space-between-start,.layout-align-sm-start-start{align-items:flex-start;align-content:flex-start}.layout-align-sm-center-center,.layout-align-sm-end-center,.layout-align-sm-space-around-center,.layout-align-sm-space-between-center,.layout-align-sm-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-sm-center-center>*,.layout-align-sm-end-center>*,.layout-align-sm-space-around-center>*,.layout-align-sm-space-between-center>*,.layout-align-sm-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-sm-center-end,.layout-align-sm-end-end,.layout-align-sm-space-around-end,.layout-align-sm-space-between-end,.layout-align-sm-start-end{align-items:flex-end;align-content:flex-end}.layout-align-sm-center-stretch,.layout-align-sm-end-stretch,.layout-align-sm-space-around-stretch,.layout-align-sm-space-between-stretch,.layout-align-sm-start-stretch{align-items:stretch;align-content:stretch}.flex-sm{flex:1;box-sizing:border-box}.flex-sm-grow{flex:1 1 100%;box-sizing:border-box}.flex-sm-initial{flex:0 1 auto;box-sizing:border-box}.flex-sm-auto{flex:1 1 auto;box-sizing:border-box}.flex-sm-none{flex:0 0 auto;box-sizing:border-box}.flex-sm-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-sm-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-sm-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-sm-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-sm-column>.flex-sm-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-sm-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-sm-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-sm-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-sm-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-sm-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-sm-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-sm-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-sm-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-sm-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-sm-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-sm-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-sm-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-sm-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-sm-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-sm-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-sm-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-sm-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-sm-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-sm-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-sm-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-sm-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-sm-row>.flex{min-width:0}.layout-sm-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-sm-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-column>.flex{min-height:0}.layout-sm,.layout-sm-column,.layout-sm-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-sm-column{flex-direction:column}.layout-sm-row{flex-direction:row}}@media (min-width:960px){.flex-order-gt-sm--20{order:-20}.flex-order-gt-sm--19{order:-19}.flex-order-gt-sm--18{order:-18}.flex-order-gt-sm--17{order:-17}.flex-order-gt-sm--16{order:-16}.flex-order-gt-sm--15{order:-15}.flex-order-gt-sm--14{order:-14}.flex-order-gt-sm--13{order:-13}.flex-order-gt-sm--12{order:-12}.flex-order-gt-sm--11{order:-11}.flex-order-gt-sm--10{order:-10}.flex-order-gt-sm--9{order:-9}.flex-order-gt-sm--8{order:-8}.flex-order-gt-sm--7{order:-7}.flex-order-gt-sm--6{order:-6}.flex-order-gt-sm--5{order:-5}.flex-order-gt-sm--4{order:-4}.flex-order-gt-sm--3{order:-3}.flex-order-gt-sm--2{order:-2}.flex-order-gt-sm--1{order:-1}.flex-order-gt-sm-0{order:0}.flex-order-gt-sm-1{order:1}.flex-order-gt-sm-2{order:2}.flex-order-gt-sm-3{order:3}.flex-order-gt-sm-4{order:4}.flex-order-gt-sm-5{order:5}.flex-order-gt-sm-6{order:6}.flex-order-gt-sm-7{order:7}.flex-order-gt-sm-8{order:8}.flex-order-gt-sm-9{order:9}.flex-order-gt-sm-10{order:10}.flex-order-gt-sm-11{order:11}.flex-order-gt-sm-12{order:12}.flex-order-gt-sm-13{order:13}.flex-order-gt-sm-14{order:14}.flex-order-gt-sm-15{order:15}.flex-order-gt-sm-16{order:16}.flex-order-gt-sm-17{order:17}.flex-order-gt-sm-18{order:18}.flex-order-gt-sm-19{order:19}.flex-order-gt-sm-20{order:20}.flex-offset-gt-sm-0,.offset-gt-sm-0{margin-left:0}[dir=rtl] .flex-offset-gt-sm-0,[dir=rtl] .offset-gt-sm-0{margin-left:auto;margin-right:0}.flex-offset-gt-sm-5,.offset-gt-sm-5{margin-left:5%}[dir=rtl] .flex-offset-gt-sm-5,[dir=rtl] .offset-gt-sm-5{margin-left:auto;margin-right:5%}.flex-offset-gt-sm-10,.offset-gt-sm-10{margin-left:10%}[dir=rtl] .flex-offset-gt-sm-10,[dir=rtl] .offset-gt-sm-10{margin-left:auto;margin-right:10%}.flex-offset-gt-sm-15,.offset-gt-sm-15{margin-left:15%}[dir=rtl] .flex-offset-gt-sm-15,[dir=rtl] .offset-gt-sm-15{margin-left:auto;margin-right:15%}.flex-offset-gt-sm-20,.offset-gt-sm-20{margin-left:20%}[dir=rtl] .flex-offset-gt-sm-20,[dir=rtl] .offset-gt-sm-20{margin-left:auto;margin-right:20%}.flex-offset-gt-sm-25,.offset-gt-sm-25{margin-left:25%}[dir=rtl] .flex-offset-gt-sm-25,[dir=rtl] .offset-gt-sm-25{margin-left:auto;margin-right:25%}.flex-offset-gt-sm-30,.offset-gt-sm-30{margin-left:30%}[dir=rtl] .flex-offset-gt-sm-30,[dir=rtl] .offset-gt-sm-30{margin-left:auto;margin-right:30%}.flex-offset-gt-sm-35,.offset-gt-sm-35{margin-left:35%}[dir=rtl] .flex-offset-gt-sm-35,[dir=rtl] .offset-gt-sm-35{margin-left:auto;margin-right:35%}.flex-offset-gt-sm-40,.offset-gt-sm-40{margin-left:40%}[dir=rtl] .flex-offset-gt-sm-40,[dir=rtl] .offset-gt-sm-40{margin-left:auto;margin-right:40%}.flex-offset-gt-sm-45,.offset-gt-sm-45{margin-left:45%}[dir=rtl] .flex-offset-gt-sm-45,[dir=rtl] .offset-gt-sm-45{margin-left:auto;margin-right:45%}.flex-offset-gt-sm-50,.offset-gt-sm-50{margin-left:50%}[dir=rtl] .flex-offset-gt-sm-50,[dir=rtl] .offset-gt-sm-50{margin-left:auto;margin-right:50%}.flex-offset-gt-sm-55,.offset-gt-sm-55{margin-left:55%}[dir=rtl] .flex-offset-gt-sm-55,[dir=rtl] .offset-gt-sm-55{margin-left:auto;margin-right:55%}.flex-offset-gt-sm-60,.offset-gt-sm-60{margin-left:60%}[dir=rtl] .flex-offset-gt-sm-60,[dir=rtl] .offset-gt-sm-60{margin-left:auto;margin-right:60%}.flex-offset-gt-sm-65,.offset-gt-sm-65{margin-left:65%}[dir=rtl] .flex-offset-gt-sm-65,[dir=rtl] .offset-gt-sm-65{margin-left:auto;margin-right:65%}.flex-offset-gt-sm-70,.offset-gt-sm-70{margin-left:70%}[dir=rtl] .flex-offset-gt-sm-70,[dir=rtl] .offset-gt-sm-70{margin-left:auto;margin-right:70%}.flex-offset-gt-sm-75,.offset-gt-sm-75{margin-left:75%}[dir=rtl] .flex-offset-gt-sm-75,[dir=rtl] .offset-gt-sm-75{margin-left:auto;margin-right:75%}.flex-offset-gt-sm-80,.offset-gt-sm-80{margin-left:80%}[dir=rtl] .flex-offset-gt-sm-80,[dir=rtl] .offset-gt-sm-80{margin-left:auto;margin-right:80%}.flex-offset-gt-sm-85,.offset-gt-sm-85{margin-left:85%}[dir=rtl] .flex-offset-gt-sm-85,[dir=rtl] .offset-gt-sm-85{margin-left:auto;margin-right:85%}.flex-offset-gt-sm-90,.offset-gt-sm-90{margin-left:90%}[dir=rtl] .flex-offset-gt-sm-90,[dir=rtl] .offset-gt-sm-90{margin-left:auto;margin-right:90%}.flex-offset-gt-sm-95,.offset-gt-sm-95{margin-left:95%}[dir=rtl] .flex-offset-gt-sm-95,[dir=rtl] .offset-gt-sm-95{margin-left:auto;margin-right:95%}.flex-offset-gt-sm-33,.offset-gt-sm-33{margin-left:calc(100% / 3)}.flex-offset-gt-sm-66,.offset-gt-sm-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-gt-sm-66,[dir=rtl] .offset-gt-sm-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-gt-sm,.layout-align-gt-sm-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-gt-sm-start,.layout-align-gt-sm-start-center,.layout-align-gt-sm-start-end,.layout-align-gt-sm-start-start,.layout-align-gt-sm-start-stretch{justify-content:flex-start}.layout-align-gt-sm-center,.layout-align-gt-sm-center-center,.layout-align-gt-sm-center-end,.layout-align-gt-sm-center-start,.layout-align-gt-sm-center-stretch{justify-content:center}.layout-align-gt-sm-end,.layout-align-gt-sm-end-center,.layout-align-gt-sm-end-end,.layout-align-gt-sm-end-start,.layout-align-gt-sm-end-stretch{justify-content:flex-end}.layout-align-gt-sm-space-around,.layout-align-gt-sm-space-around-center,.layout-align-gt-sm-space-around-end,.layout-align-gt-sm-space-around-start,.layout-align-gt-sm-space-around-stretch{justify-content:space-around}.layout-align-gt-sm-space-between,.layout-align-gt-sm-space-between-center,.layout-align-gt-sm-space-between-end,.layout-align-gt-sm-space-between-start,.layout-align-gt-sm-space-between-stretch{justify-content:space-between}.layout-align-gt-sm-center-start,.layout-align-gt-sm-end-start,.layout-align-gt-sm-space-around-start,.layout-align-gt-sm-space-between-start,.layout-align-gt-sm-start-start{align-items:flex-start;align-content:flex-start}.layout-align-gt-sm-center-center,.layout-align-gt-sm-end-center,.layout-align-gt-sm-space-around-center,.layout-align-gt-sm-space-between-center,.layout-align-gt-sm-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-gt-sm-center-center>*,.layout-align-gt-sm-end-center>*,.layout-align-gt-sm-space-around-center>*,.layout-align-gt-sm-space-between-center>*,.layout-align-gt-sm-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-gt-sm-center-end,.layout-align-gt-sm-end-end,.layout-align-gt-sm-space-around-end,.layout-align-gt-sm-space-between-end,.layout-align-gt-sm-start-end{align-items:flex-end;align-content:flex-end}.layout-align-gt-sm-center-stretch,.layout-align-gt-sm-end-stretch,.layout-align-gt-sm-space-around-stretch,.layout-align-gt-sm-space-between-stretch,.layout-align-gt-sm-start-stretch{align-items:stretch;align-content:stretch}.flex-gt-sm{flex:1;box-sizing:border-box}.flex-gt-sm-grow{flex:1 1 100%;box-sizing:border-box}.flex-gt-sm-initial{flex:0 1 auto;box-sizing:border-box}.flex-gt-sm-auto{flex:1 1 auto;box-sizing:border-box}.flex-gt-sm-none{flex:0 0 auto;box-sizing:border-box}.flex-gt-sm-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-gt-sm-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-gt-sm-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-gt-sm-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-gt-sm-column>.flex-gt-sm-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-gt-sm-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-gt-sm-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-gt-sm-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-gt-sm-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-gt-sm-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-gt-sm-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-gt-sm-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-gt-sm-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-gt-sm-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-gt-sm-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-gt-sm-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-gt-sm-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-gt-sm-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-gt-sm-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-gt-sm-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-gt-sm-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-gt-sm-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-gt-sm-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-gt-sm-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-gt-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-gt-sm-row>.flex{min-width:0}.layout-gt-sm-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-column>.flex{min-height:0}.layout-gt-sm,.layout-gt-sm-column,.layout-gt-sm-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-gt-sm-column{flex-direction:column}.layout-gt-sm-row{flex-direction:row}}@media (min-width:960px) and (max-width:1279px){.hide-gt-sm:not(.show-gt-xs):not(.show-gt-sm):not(.show-md):not(.show),.hide-gt-xs:not(.show-gt-xs):not(.show-gt-sm):not(.show-md):not(.show),.hide:not(.show-gt-xs):not(.show-gt-sm):not(.show-md):not(.show){display:none}.hide-md:not(.show-md):not(.show-gt-sm):not(.show-gt-xs):not(.show){display:none}.flex-order-md--20{order:-20}.flex-order-md--19{order:-19}.flex-order-md--18{order:-18}.flex-order-md--17{order:-17}.flex-order-md--16{order:-16}.flex-order-md--15{order:-15}.flex-order-md--14{order:-14}.flex-order-md--13{order:-13}.flex-order-md--12{order:-12}.flex-order-md--11{order:-11}.flex-order-md--10{order:-10}.flex-order-md--9{order:-9}.flex-order-md--8{order:-8}.flex-order-md--7{order:-7}.flex-order-md--6{order:-6}.flex-order-md--5{order:-5}.flex-order-md--4{order:-4}.flex-order-md--3{order:-3}.flex-order-md--2{order:-2}.flex-order-md--1{order:-1}.flex-order-md-0{order:0}.flex-order-md-1{order:1}.flex-order-md-2{order:2}.flex-order-md-3{order:3}.flex-order-md-4{order:4}.flex-order-md-5{order:5}.flex-order-md-6{order:6}.flex-order-md-7{order:7}.flex-order-md-8{order:8}.flex-order-md-9{order:9}.flex-order-md-10{order:10}.flex-order-md-11{order:11}.flex-order-md-12{order:12}.flex-order-md-13{order:13}.flex-order-md-14{order:14}.flex-order-md-15{order:15}.flex-order-md-16{order:16}.flex-order-md-17{order:17}.flex-order-md-18{order:18}.flex-order-md-19{order:19}.flex-order-md-20{order:20}.flex-offset-md-0,.offset-md-0{margin-left:0}[dir=rtl] .flex-offset-md-0,[dir=rtl] .offset-md-0{margin-left:auto;margin-right:0}.flex-offset-md-5,.offset-md-5{margin-left:5%}[dir=rtl] .flex-offset-md-5,[dir=rtl] .offset-md-5{margin-left:auto;margin-right:5%}.flex-offset-md-10,.offset-md-10{margin-left:10%}[dir=rtl] .flex-offset-md-10,[dir=rtl] .offset-md-10{margin-left:auto;margin-right:10%}.flex-offset-md-15,.offset-md-15{margin-left:15%}[dir=rtl] .flex-offset-md-15,[dir=rtl] .offset-md-15{margin-left:auto;margin-right:15%}.flex-offset-md-20,.offset-md-20{margin-left:20%}[dir=rtl] .flex-offset-md-20,[dir=rtl] .offset-md-20{margin-left:auto;margin-right:20%}.flex-offset-md-25,.offset-md-25{margin-left:25%}[dir=rtl] .flex-offset-md-25,[dir=rtl] .offset-md-25{margin-left:auto;margin-right:25%}.flex-offset-md-30,.offset-md-30{margin-left:30%}[dir=rtl] .flex-offset-md-30,[dir=rtl] .offset-md-30{margin-left:auto;margin-right:30%}.flex-offset-md-35,.offset-md-35{margin-left:35%}[dir=rtl] .flex-offset-md-35,[dir=rtl] .offset-md-35{margin-left:auto;margin-right:35%}.flex-offset-md-40,.offset-md-40{margin-left:40%}[dir=rtl] .flex-offset-md-40,[dir=rtl] .offset-md-40{margin-left:auto;margin-right:40%}.flex-offset-md-45,.offset-md-45{margin-left:45%}[dir=rtl] .flex-offset-md-45,[dir=rtl] .offset-md-45{margin-left:auto;margin-right:45%}.flex-offset-md-50,.offset-md-50{margin-left:50%}[dir=rtl] .flex-offset-md-50,[dir=rtl] .offset-md-50{margin-left:auto;margin-right:50%}.flex-offset-md-55,.offset-md-55{margin-left:55%}[dir=rtl] .flex-offset-md-55,[dir=rtl] .offset-md-55{margin-left:auto;margin-right:55%}.flex-offset-md-60,.offset-md-60{margin-left:60%}[dir=rtl] .flex-offset-md-60,[dir=rtl] .offset-md-60{margin-left:auto;margin-right:60%}.flex-offset-md-65,.offset-md-65{margin-left:65%}[dir=rtl] .flex-offset-md-65,[dir=rtl] .offset-md-65{margin-left:auto;margin-right:65%}.flex-offset-md-70,.offset-md-70{margin-left:70%}[dir=rtl] .flex-offset-md-70,[dir=rtl] .offset-md-70{margin-left:auto;margin-right:70%}.flex-offset-md-75,.offset-md-75{margin-left:75%}[dir=rtl] .flex-offset-md-75,[dir=rtl] .offset-md-75{margin-left:auto;margin-right:75%}.flex-offset-md-80,.offset-md-80{margin-left:80%}[dir=rtl] .flex-offset-md-80,[dir=rtl] .offset-md-80{margin-left:auto;margin-right:80%}.flex-offset-md-85,.offset-md-85{margin-left:85%}[dir=rtl] .flex-offset-md-85,[dir=rtl] .offset-md-85{margin-left:auto;margin-right:85%}.flex-offset-md-90,.offset-md-90{margin-left:90%}[dir=rtl] .flex-offset-md-90,[dir=rtl] .offset-md-90{margin-left:auto;margin-right:90%}.flex-offset-md-95,.offset-md-95{margin-left:95%}[dir=rtl] .flex-offset-md-95,[dir=rtl] .offset-md-95{margin-left:auto;margin-right:95%}.flex-offset-md-33,.offset-md-33{margin-left:calc(100% / 3)}.flex-offset-md-66,.offset-md-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-md-66,[dir=rtl] .offset-md-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-md,.layout-align-md-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-md-start,.layout-align-md-start-center,.layout-align-md-start-end,.layout-align-md-start-start,.layout-align-md-start-stretch{justify-content:flex-start}.layout-align-md-center,.layout-align-md-center-center,.layout-align-md-center-end,.layout-align-md-center-start,.layout-align-md-center-stretch{justify-content:center}.layout-align-md-end,.layout-align-md-end-center,.layout-align-md-end-end,.layout-align-md-end-start,.layout-align-md-end-stretch{justify-content:flex-end}.layout-align-md-space-around,.layout-align-md-space-around-center,.layout-align-md-space-around-end,.layout-align-md-space-around-start,.layout-align-md-space-around-stretch{justify-content:space-around}.layout-align-md-space-between,.layout-align-md-space-between-center,.layout-align-md-space-between-end,.layout-align-md-space-between-start,.layout-align-md-space-between-stretch{justify-content:space-between}.layout-align-md-center-start,.layout-align-md-end-start,.layout-align-md-space-around-start,.layout-align-md-space-between-start,.layout-align-md-start-start{align-items:flex-start;align-content:flex-start}.layout-align-md-center-center,.layout-align-md-end-center,.layout-align-md-space-around-center,.layout-align-md-space-between-center,.layout-align-md-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-md-center-center>*,.layout-align-md-end-center>*,.layout-align-md-space-around-center>*,.layout-align-md-space-between-center>*,.layout-align-md-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-md-center-end,.layout-align-md-end-end,.layout-align-md-space-around-end,.layout-align-md-space-between-end,.layout-align-md-start-end{align-items:flex-end;align-content:flex-end}.layout-align-md-center-stretch,.layout-align-md-end-stretch,.layout-align-md-space-around-stretch,.layout-align-md-space-between-stretch,.layout-align-md-start-stretch{align-items:stretch;align-content:stretch}.flex-md{flex:1;box-sizing:border-box}.flex-md-grow{flex:1 1 100%;box-sizing:border-box}.flex-md-initial{flex:0 1 auto;box-sizing:border-box}.flex-md-auto{flex:1 1 auto;box-sizing:border-box}.flex-md-none{flex:0 0 auto;box-sizing:border-box}.flex-md-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-md-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-md-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-md-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-md-column>.flex-md-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-md-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-md-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-md-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-md-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-md-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-md-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-md-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-md-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-md-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-md-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-md-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-md-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-md-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-md-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-md-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-md-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-md-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-md-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-md-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-md-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-md-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-md-row>.flex{min-width:0}.layout-md-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-md-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-column>.flex{min-height:0}.layout-md,.layout-md-column,.layout-md-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-md-column{flex-direction:column}.layout-md-row{flex-direction:row}}@media (min-width:1280px){.flex-order-gt-md--20{order:-20}.flex-order-gt-md--19{order:-19}.flex-order-gt-md--18{order:-18}.flex-order-gt-md--17{order:-17}.flex-order-gt-md--16{order:-16}.flex-order-gt-md--15{order:-15}.flex-order-gt-md--14{order:-14}.flex-order-gt-md--13{order:-13}.flex-order-gt-md--12{order:-12}.flex-order-gt-md--11{order:-11}.flex-order-gt-md--10{order:-10}.flex-order-gt-md--9{order:-9}.flex-order-gt-md--8{order:-8}.flex-order-gt-md--7{order:-7}.flex-order-gt-md--6{order:-6}.flex-order-gt-md--5{order:-5}.flex-order-gt-md--4{order:-4}.flex-order-gt-md--3{order:-3}.flex-order-gt-md--2{order:-2}.flex-order-gt-md--1{order:-1}.flex-order-gt-md-0{order:0}.flex-order-gt-md-1{order:1}.flex-order-gt-md-2{order:2}.flex-order-gt-md-3{order:3}.flex-order-gt-md-4{order:4}.flex-order-gt-md-5{order:5}.flex-order-gt-md-6{order:6}.flex-order-gt-md-7{order:7}.flex-order-gt-md-8{order:8}.flex-order-gt-md-9{order:9}.flex-order-gt-md-10{order:10}.flex-order-gt-md-11{order:11}.flex-order-gt-md-12{order:12}.flex-order-gt-md-13{order:13}.flex-order-gt-md-14{order:14}.flex-order-gt-md-15{order:15}.flex-order-gt-md-16{order:16}.flex-order-gt-md-17{order:17}.flex-order-gt-md-18{order:18}.flex-order-gt-md-19{order:19}.flex-order-gt-md-20{order:20}.flex-offset-gt-md-0,.offset-gt-md-0{margin-left:0}[dir=rtl] .flex-offset-gt-md-0,[dir=rtl] .offset-gt-md-0{margin-left:auto;margin-right:0}.flex-offset-gt-md-5,.offset-gt-md-5{margin-left:5%}[dir=rtl] .flex-offset-gt-md-5,[dir=rtl] .offset-gt-md-5{margin-left:auto;margin-right:5%}.flex-offset-gt-md-10,.offset-gt-md-10{margin-left:10%}[dir=rtl] .flex-offset-gt-md-10,[dir=rtl] .offset-gt-md-10{margin-left:auto;margin-right:10%}.flex-offset-gt-md-15,.offset-gt-md-15{margin-left:15%}[dir=rtl] .flex-offset-gt-md-15,[dir=rtl] .offset-gt-md-15{margin-left:auto;margin-right:15%}.flex-offset-gt-md-20,.offset-gt-md-20{margin-left:20%}[dir=rtl] .flex-offset-gt-md-20,[dir=rtl] .offset-gt-md-20{margin-left:auto;margin-right:20%}.flex-offset-gt-md-25,.offset-gt-md-25{margin-left:25%}[dir=rtl] .flex-offset-gt-md-25,[dir=rtl] .offset-gt-md-25{margin-left:auto;margin-right:25%}.flex-offset-gt-md-30,.offset-gt-md-30{margin-left:30%}[dir=rtl] .flex-offset-gt-md-30,[dir=rtl] .offset-gt-md-30{margin-left:auto;margin-right:30%}.flex-offset-gt-md-35,.offset-gt-md-35{margin-left:35%}[dir=rtl] .flex-offset-gt-md-35,[dir=rtl] .offset-gt-md-35{margin-left:auto;margin-right:35%}.flex-offset-gt-md-40,.offset-gt-md-40{margin-left:40%}[dir=rtl] .flex-offset-gt-md-40,[dir=rtl] .offset-gt-md-40{margin-left:auto;margin-right:40%}.flex-offset-gt-md-45,.offset-gt-md-45{margin-left:45%}[dir=rtl] .flex-offset-gt-md-45,[dir=rtl] .offset-gt-md-45{margin-left:auto;margin-right:45%}.flex-offset-gt-md-50,.offset-gt-md-50{margin-left:50%}[dir=rtl] .flex-offset-gt-md-50,[dir=rtl] .offset-gt-md-50{margin-left:auto;margin-right:50%}.flex-offset-gt-md-55,.offset-gt-md-55{margin-left:55%}[dir=rtl] .flex-offset-gt-md-55,[dir=rtl] .offset-gt-md-55{margin-left:auto;margin-right:55%}.flex-offset-gt-md-60,.offset-gt-md-60{margin-left:60%}[dir=rtl] .flex-offset-gt-md-60,[dir=rtl] .offset-gt-md-60{margin-left:auto;margin-right:60%}.flex-offset-gt-md-65,.offset-gt-md-65{margin-left:65%}[dir=rtl] .flex-offset-gt-md-65,[dir=rtl] .offset-gt-md-65{margin-left:auto;margin-right:65%}.flex-offset-gt-md-70,.offset-gt-md-70{margin-left:70%}[dir=rtl] .flex-offset-gt-md-70,[dir=rtl] .offset-gt-md-70{margin-left:auto;margin-right:70%}.flex-offset-gt-md-75,.offset-gt-md-75{margin-left:75%}[dir=rtl] .flex-offset-gt-md-75,[dir=rtl] .offset-gt-md-75{margin-left:auto;margin-right:75%}.flex-offset-gt-md-80,.offset-gt-md-80{margin-left:80%}[dir=rtl] .flex-offset-gt-md-80,[dir=rtl] .offset-gt-md-80{margin-left:auto;margin-right:80%}.flex-offset-gt-md-85,.offset-gt-md-85{margin-left:85%}[dir=rtl] .flex-offset-gt-md-85,[dir=rtl] .offset-gt-md-85{margin-left:auto;margin-right:85%}.flex-offset-gt-md-90,.offset-gt-md-90{margin-left:90%}[dir=rtl] .flex-offset-gt-md-90,[dir=rtl] .offset-gt-md-90{margin-left:auto;margin-right:90%}.flex-offset-gt-md-95,.offset-gt-md-95{margin-left:95%}[dir=rtl] .flex-offset-gt-md-95,[dir=rtl] .offset-gt-md-95{margin-left:auto;margin-right:95%}.flex-offset-gt-md-33,.offset-gt-md-33{margin-left:calc(100% / 3)}.flex-offset-gt-md-66,.offset-gt-md-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-gt-md-66,[dir=rtl] .offset-gt-md-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-gt-md,.layout-align-gt-md-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-gt-md-start,.layout-align-gt-md-start-center,.layout-align-gt-md-start-end,.layout-align-gt-md-start-start,.layout-align-gt-md-start-stretch{justify-content:flex-start}.layout-align-gt-md-center,.layout-align-gt-md-center-center,.layout-align-gt-md-center-end,.layout-align-gt-md-center-start,.layout-align-gt-md-center-stretch{justify-content:center}.layout-align-gt-md-end,.layout-align-gt-md-end-center,.layout-align-gt-md-end-end,.layout-align-gt-md-end-start,.layout-align-gt-md-end-stretch{justify-content:flex-end}.layout-align-gt-md-space-around,.layout-align-gt-md-space-around-center,.layout-align-gt-md-space-around-end,.layout-align-gt-md-space-around-start,.layout-align-gt-md-space-around-stretch{justify-content:space-around}.layout-align-gt-md-space-between,.layout-align-gt-md-space-between-center,.layout-align-gt-md-space-between-end,.layout-align-gt-md-space-between-start,.layout-align-gt-md-space-between-stretch{justify-content:space-between}.layout-align-gt-md-center-start,.layout-align-gt-md-end-start,.layout-align-gt-md-space-around-start,.layout-align-gt-md-space-between-start,.layout-align-gt-md-start-start{align-items:flex-start;align-content:flex-start}.layout-align-gt-md-center-center,.layout-align-gt-md-end-center,.layout-align-gt-md-space-around-center,.layout-align-gt-md-space-between-center,.layout-align-gt-md-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-gt-md-center-center>*,.layout-align-gt-md-end-center>*,.layout-align-gt-md-space-around-center>*,.layout-align-gt-md-space-between-center>*,.layout-align-gt-md-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-gt-md-center-end,.layout-align-gt-md-end-end,.layout-align-gt-md-space-around-end,.layout-align-gt-md-space-between-end,.layout-align-gt-md-start-end{align-items:flex-end;align-content:flex-end}.layout-align-gt-md-center-stretch,.layout-align-gt-md-end-stretch,.layout-align-gt-md-space-around-stretch,.layout-align-gt-md-space-between-stretch,.layout-align-gt-md-start-stretch{align-items:stretch;align-content:stretch}.flex-gt-md{flex:1;box-sizing:border-box}.flex-gt-md-grow{flex:1 1 100%;box-sizing:border-box}.flex-gt-md-initial{flex:0 1 auto;box-sizing:border-box}.flex-gt-md-auto{flex:1 1 auto;box-sizing:border-box}.flex-gt-md-none{flex:0 0 auto;box-sizing:border-box}.flex-gt-md-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-gt-md-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-gt-md-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-gt-md-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-gt-md-column>.flex-gt-md-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-gt-md-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-gt-md-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-gt-md-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-gt-md-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-gt-md-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-gt-md-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-gt-md-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-gt-md-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-gt-md-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-gt-md-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-gt-md-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-gt-md-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-gt-md-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-gt-md-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-gt-md-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-gt-md-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-gt-md-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-gt-md-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-gt-md-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-gt-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-gt-md-row>.flex{min-width:0}.layout-gt-md-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-column>.flex{min-height:0}.layout-gt-md,.layout-gt-md-column,.layout-gt-md-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-gt-md-column{flex-direction:column}.layout-gt-md-row{flex-direction:row}}@media (min-width:1280px) and (max-width:1919px){.hide-gt-md:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-lg):not(.show),.hide-gt-sm:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-lg):not(.show),.hide-gt-xs:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-lg):not(.show),.hide:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-lg):not(.show){display:none}.hide-lg:not(.show-lg):not(.show-gt-md):not(.show-gt-sm):not(.show-gt-xs):not(.show){display:none}.flex-order-lg--20{order:-20}.flex-order-lg--19{order:-19}.flex-order-lg--18{order:-18}.flex-order-lg--17{order:-17}.flex-order-lg--16{order:-16}.flex-order-lg--15{order:-15}.flex-order-lg--14{order:-14}.flex-order-lg--13{order:-13}.flex-order-lg--12{order:-12}.flex-order-lg--11{order:-11}.flex-order-lg--10{order:-10}.flex-order-lg--9{order:-9}.flex-order-lg--8{order:-8}.flex-order-lg--7{order:-7}.flex-order-lg--6{order:-6}.flex-order-lg--5{order:-5}.flex-order-lg--4{order:-4}.flex-order-lg--3{order:-3}.flex-order-lg--2{order:-2}.flex-order-lg--1{order:-1}.flex-order-lg-0{order:0}.flex-order-lg-1{order:1}.flex-order-lg-2{order:2}.flex-order-lg-3{order:3}.flex-order-lg-4{order:4}.flex-order-lg-5{order:5}.flex-order-lg-6{order:6}.flex-order-lg-7{order:7}.flex-order-lg-8{order:8}.flex-order-lg-9{order:9}.flex-order-lg-10{order:10}.flex-order-lg-11{order:11}.flex-order-lg-12{order:12}.flex-order-lg-13{order:13}.flex-order-lg-14{order:14}.flex-order-lg-15{order:15}.flex-order-lg-16{order:16}.flex-order-lg-17{order:17}.flex-order-lg-18{order:18}.flex-order-lg-19{order:19}.flex-order-lg-20{order:20}.flex-offset-lg-0,.offset-lg-0{margin-left:0}[dir=rtl] .flex-offset-lg-0,[dir=rtl] .offset-lg-0{margin-left:auto;margin-right:0}.flex-offset-lg-5,.offset-lg-5{margin-left:5%}[dir=rtl] .flex-offset-lg-5,[dir=rtl] .offset-lg-5{margin-left:auto;margin-right:5%}.flex-offset-lg-10,.offset-lg-10{margin-left:10%}[dir=rtl] .flex-offset-lg-10,[dir=rtl] .offset-lg-10{margin-left:auto;margin-right:10%}.flex-offset-lg-15,.offset-lg-15{margin-left:15%}[dir=rtl] .flex-offset-lg-15,[dir=rtl] .offset-lg-15{margin-left:auto;margin-right:15%}.flex-offset-lg-20,.offset-lg-20{margin-left:20%}[dir=rtl] .flex-offset-lg-20,[dir=rtl] .offset-lg-20{margin-left:auto;margin-right:20%}.flex-offset-lg-25,.offset-lg-25{margin-left:25%}[dir=rtl] .flex-offset-lg-25,[dir=rtl] .offset-lg-25{margin-left:auto;margin-right:25%}.flex-offset-lg-30,.offset-lg-30{margin-left:30%}[dir=rtl] .flex-offset-lg-30,[dir=rtl] .offset-lg-30{margin-left:auto;margin-right:30%}.flex-offset-lg-35,.offset-lg-35{margin-left:35%}[dir=rtl] .flex-offset-lg-35,[dir=rtl] .offset-lg-35{margin-left:auto;margin-right:35%}.flex-offset-lg-40,.offset-lg-40{margin-left:40%}[dir=rtl] .flex-offset-lg-40,[dir=rtl] .offset-lg-40{margin-left:auto;margin-right:40%}.flex-offset-lg-45,.offset-lg-45{margin-left:45%}[dir=rtl] .flex-offset-lg-45,[dir=rtl] .offset-lg-45{margin-left:auto;margin-right:45%}.flex-offset-lg-50,.offset-lg-50{margin-left:50%}[dir=rtl] .flex-offset-lg-50,[dir=rtl] .offset-lg-50{margin-left:auto;margin-right:50%}.flex-offset-lg-55,.offset-lg-55{margin-left:55%}[dir=rtl] .flex-offset-lg-55,[dir=rtl] .offset-lg-55{margin-left:auto;margin-right:55%}.flex-offset-lg-60,.offset-lg-60{margin-left:60%}[dir=rtl] .flex-offset-lg-60,[dir=rtl] .offset-lg-60{margin-left:auto;margin-right:60%}.flex-offset-lg-65,.offset-lg-65{margin-left:65%}[dir=rtl] .flex-offset-lg-65,[dir=rtl] .offset-lg-65{margin-left:auto;margin-right:65%}.flex-offset-lg-70,.offset-lg-70{margin-left:70%}[dir=rtl] .flex-offset-lg-70,[dir=rtl] .offset-lg-70{margin-left:auto;margin-right:70%}.flex-offset-lg-75,.offset-lg-75{margin-left:75%}[dir=rtl] .flex-offset-lg-75,[dir=rtl] .offset-lg-75{margin-left:auto;margin-right:75%}.flex-offset-lg-80,.offset-lg-80{margin-left:80%}[dir=rtl] .flex-offset-lg-80,[dir=rtl] .offset-lg-80{margin-left:auto;margin-right:80%}.flex-offset-lg-85,.offset-lg-85{margin-left:85%}[dir=rtl] .flex-offset-lg-85,[dir=rtl] .offset-lg-85{margin-left:auto;margin-right:85%}.flex-offset-lg-90,.offset-lg-90{margin-left:90%}[dir=rtl] .flex-offset-lg-90,[dir=rtl] .offset-lg-90{margin-left:auto;margin-right:90%}.flex-offset-lg-95,.offset-lg-95{margin-left:95%}[dir=rtl] .flex-offset-lg-95,[dir=rtl] .offset-lg-95{margin-left:auto;margin-right:95%}.flex-offset-lg-33,.offset-lg-33{margin-left:calc(100% / 3)}.flex-offset-lg-66,.offset-lg-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-lg-66,[dir=rtl] .offset-lg-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-lg,.layout-align-lg-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-lg-start,.layout-align-lg-start-center,.layout-align-lg-start-end,.layout-align-lg-start-start,.layout-align-lg-start-stretch{justify-content:flex-start}.layout-align-lg-center,.layout-align-lg-center-center,.layout-align-lg-center-end,.layout-align-lg-center-start,.layout-align-lg-center-stretch{justify-content:center}.layout-align-lg-end,.layout-align-lg-end-center,.layout-align-lg-end-end,.layout-align-lg-end-start,.layout-align-lg-end-stretch{justify-content:flex-end}.layout-align-lg-space-around,.layout-align-lg-space-around-center,.layout-align-lg-space-around-end,.layout-align-lg-space-around-start,.layout-align-lg-space-around-stretch{justify-content:space-around}.layout-align-lg-space-between,.layout-align-lg-space-between-center,.layout-align-lg-space-between-end,.layout-align-lg-space-between-start,.layout-align-lg-space-between-stretch{justify-content:space-between}.layout-align-lg-center-start,.layout-align-lg-end-start,.layout-align-lg-space-around-start,.layout-align-lg-space-between-start,.layout-align-lg-start-start{align-items:flex-start;align-content:flex-start}.layout-align-lg-center-center,.layout-align-lg-end-center,.layout-align-lg-space-around-center,.layout-align-lg-space-between-center,.layout-align-lg-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-lg-center-center>*,.layout-align-lg-end-center>*,.layout-align-lg-space-around-center>*,.layout-align-lg-space-between-center>*,.layout-align-lg-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-lg-center-end,.layout-align-lg-end-end,.layout-align-lg-space-around-end,.layout-align-lg-space-between-end,.layout-align-lg-start-end{align-items:flex-end;align-content:flex-end}.layout-align-lg-center-stretch,.layout-align-lg-end-stretch,.layout-align-lg-space-around-stretch,.layout-align-lg-space-between-stretch,.layout-align-lg-start-stretch{align-items:stretch;align-content:stretch}.flex-lg{flex:1;box-sizing:border-box}.flex-lg-grow{flex:1 1 100%;box-sizing:border-box}.flex-lg-initial{flex:0 1 auto;box-sizing:border-box}.flex-lg-auto{flex:1 1 auto;box-sizing:border-box}.flex-lg-none{flex:0 0 auto;box-sizing:border-box}.flex-lg-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-lg-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-lg-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-lg-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-lg-column>.flex-lg-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-lg-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-lg-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-lg-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-lg-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-lg-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-lg-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-lg-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-lg-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-lg-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-lg-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-lg-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-lg-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-lg-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-lg-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-lg-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-lg-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-lg-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-lg-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-lg-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-lg-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-lg-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-lg-row>.flex{min-width:0}.layout-lg-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-lg-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-column>.flex{min-height:0}.layout-lg,.layout-lg-column,.layout-lg-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-lg-column{flex-direction:column}.layout-lg-row{flex-direction:row}}@media (min-width:1920px){.flex-order-gt-lg--20{order:-20}.flex-order-gt-lg--19{order:-19}.flex-order-gt-lg--18{order:-18}.flex-order-gt-lg--17{order:-17}.flex-order-gt-lg--16{order:-16}.flex-order-gt-lg--15{order:-15}.flex-order-gt-lg--14{order:-14}.flex-order-gt-lg--13{order:-13}.flex-order-gt-lg--12{order:-12}.flex-order-gt-lg--11{order:-11}.flex-order-gt-lg--10{order:-10}.flex-order-gt-lg--9{order:-9}.flex-order-gt-lg--8{order:-8}.flex-order-gt-lg--7{order:-7}.flex-order-gt-lg--6{order:-6}.flex-order-gt-lg--5{order:-5}.flex-order-gt-lg--4{order:-4}.flex-order-gt-lg--3{order:-3}.flex-order-gt-lg--2{order:-2}.flex-order-gt-lg--1{order:-1}.flex-order-gt-lg-0{order:0}.flex-order-gt-lg-1{order:1}.flex-order-gt-lg-2{order:2}.flex-order-gt-lg-3{order:3}.flex-order-gt-lg-4{order:4}.flex-order-gt-lg-5{order:5}.flex-order-gt-lg-6{order:6}.flex-order-gt-lg-7{order:7}.flex-order-gt-lg-8{order:8}.flex-order-gt-lg-9{order:9}.flex-order-gt-lg-10{order:10}.flex-order-gt-lg-11{order:11}.flex-order-gt-lg-12{order:12}.flex-order-gt-lg-13{order:13}.flex-order-gt-lg-14{order:14}.flex-order-gt-lg-15{order:15}.flex-order-gt-lg-16{order:16}.flex-order-gt-lg-17{order:17}.flex-order-gt-lg-18{order:18}.flex-order-gt-lg-19{order:19}.flex-order-gt-lg-20{order:20}.flex-offset-gt-lg-0,.offset-gt-lg-0{margin-left:0}[dir=rtl] .flex-offset-gt-lg-0,[dir=rtl] .offset-gt-lg-0{margin-left:auto;margin-right:0}.flex-offset-gt-lg-5,.offset-gt-lg-5{margin-left:5%}[dir=rtl] .flex-offset-gt-lg-5,[dir=rtl] .offset-gt-lg-5{margin-left:auto;margin-right:5%}.flex-offset-gt-lg-10,.offset-gt-lg-10{margin-left:10%}[dir=rtl] .flex-offset-gt-lg-10,[dir=rtl] .offset-gt-lg-10{margin-left:auto;margin-right:10%}.flex-offset-gt-lg-15,.offset-gt-lg-15{margin-left:15%}[dir=rtl] .flex-offset-gt-lg-15,[dir=rtl] .offset-gt-lg-15{margin-left:auto;margin-right:15%}.flex-offset-gt-lg-20,.offset-gt-lg-20{margin-left:20%}[dir=rtl] .flex-offset-gt-lg-20,[dir=rtl] .offset-gt-lg-20{margin-left:auto;margin-right:20%}.flex-offset-gt-lg-25,.offset-gt-lg-25{margin-left:25%}[dir=rtl] .flex-offset-gt-lg-25,[dir=rtl] .offset-gt-lg-25{margin-left:auto;margin-right:25%}.flex-offset-gt-lg-30,.offset-gt-lg-30{margin-left:30%}[dir=rtl] .flex-offset-gt-lg-30,[dir=rtl] .offset-gt-lg-30{margin-left:auto;margin-right:30%}.flex-offset-gt-lg-35,.offset-gt-lg-35{margin-left:35%}[dir=rtl] .flex-offset-gt-lg-35,[dir=rtl] .offset-gt-lg-35{margin-left:auto;margin-right:35%}.flex-offset-gt-lg-40,.offset-gt-lg-40{margin-left:40%}[dir=rtl] .flex-offset-gt-lg-40,[dir=rtl] .offset-gt-lg-40{margin-left:auto;margin-right:40%}.flex-offset-gt-lg-45,.offset-gt-lg-45{margin-left:45%}[dir=rtl] .flex-offset-gt-lg-45,[dir=rtl] .offset-gt-lg-45{margin-left:auto;margin-right:45%}.flex-offset-gt-lg-50,.offset-gt-lg-50{margin-left:50%}[dir=rtl] .flex-offset-gt-lg-50,[dir=rtl] .offset-gt-lg-50{margin-left:auto;margin-right:50%}.flex-offset-gt-lg-55,.offset-gt-lg-55{margin-left:55%}[dir=rtl] .flex-offset-gt-lg-55,[dir=rtl] .offset-gt-lg-55{margin-left:auto;margin-right:55%}.flex-offset-gt-lg-60,.offset-gt-lg-60{margin-left:60%}[dir=rtl] .flex-offset-gt-lg-60,[dir=rtl] .offset-gt-lg-60{margin-left:auto;margin-right:60%}.flex-offset-gt-lg-65,.offset-gt-lg-65{margin-left:65%}[dir=rtl] .flex-offset-gt-lg-65,[dir=rtl] .offset-gt-lg-65{margin-left:auto;margin-right:65%}.flex-offset-gt-lg-70,.offset-gt-lg-70{margin-left:70%}[dir=rtl] .flex-offset-gt-lg-70,[dir=rtl] .offset-gt-lg-70{margin-left:auto;margin-right:70%}.flex-offset-gt-lg-75,.offset-gt-lg-75{margin-left:75%}[dir=rtl] .flex-offset-gt-lg-75,[dir=rtl] .offset-gt-lg-75{margin-left:auto;margin-right:75%}.flex-offset-gt-lg-80,.offset-gt-lg-80{margin-left:80%}[dir=rtl] .flex-offset-gt-lg-80,[dir=rtl] .offset-gt-lg-80{margin-left:auto;margin-right:80%}.flex-offset-gt-lg-85,.offset-gt-lg-85{margin-left:85%}[dir=rtl] .flex-offset-gt-lg-85,[dir=rtl] .offset-gt-lg-85{margin-left:auto;margin-right:85%}.flex-offset-gt-lg-90,.offset-gt-lg-90{margin-left:90%}[dir=rtl] .flex-offset-gt-lg-90,[dir=rtl] .offset-gt-lg-90{margin-left:auto;margin-right:90%}.flex-offset-gt-lg-95,.offset-gt-lg-95{margin-left:95%}[dir=rtl] .flex-offset-gt-lg-95,[dir=rtl] .offset-gt-lg-95{margin-left:auto;margin-right:95%}.flex-offset-gt-lg-33,.offset-gt-lg-33{margin-left:calc(100% / 3)}.flex-offset-gt-lg-66,.offset-gt-lg-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-gt-lg-66,[dir=rtl] .offset-gt-lg-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-gt-lg,.layout-align-gt-lg-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-gt-lg-start,.layout-align-gt-lg-start-center,.layout-align-gt-lg-start-end,.layout-align-gt-lg-start-start,.layout-align-gt-lg-start-stretch{justify-content:flex-start}.layout-align-gt-lg-center,.layout-align-gt-lg-center-center,.layout-align-gt-lg-center-end,.layout-align-gt-lg-center-start,.layout-align-gt-lg-center-stretch{justify-content:center}.layout-align-gt-lg-end,.layout-align-gt-lg-end-center,.layout-align-gt-lg-end-end,.layout-align-gt-lg-end-start,.layout-align-gt-lg-end-stretch{justify-content:flex-end}.layout-align-gt-lg-space-around,.layout-align-gt-lg-space-around-center,.layout-align-gt-lg-space-around-end,.layout-align-gt-lg-space-around-start,.layout-align-gt-lg-space-around-stretch{justify-content:space-around}.layout-align-gt-lg-space-between,.layout-align-gt-lg-space-between-center,.layout-align-gt-lg-space-between-end,.layout-align-gt-lg-space-between-start,.layout-align-gt-lg-space-between-stretch{justify-content:space-between}.layout-align-gt-lg-center-start,.layout-align-gt-lg-end-start,.layout-align-gt-lg-space-around-start,.layout-align-gt-lg-space-between-start,.layout-align-gt-lg-start-start{align-items:flex-start;align-content:flex-start}.layout-align-gt-lg-center-center,.layout-align-gt-lg-end-center,.layout-align-gt-lg-space-around-center,.layout-align-gt-lg-space-between-center,.layout-align-gt-lg-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-gt-lg-center-center>*,.layout-align-gt-lg-end-center>*,.layout-align-gt-lg-space-around-center>*,.layout-align-gt-lg-space-between-center>*,.layout-align-gt-lg-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-gt-lg-center-end,.layout-align-gt-lg-end-end,.layout-align-gt-lg-space-around-end,.layout-align-gt-lg-space-between-end,.layout-align-gt-lg-start-end{align-items:flex-end;align-content:flex-end}.layout-align-gt-lg-center-stretch,.layout-align-gt-lg-end-stretch,.layout-align-gt-lg-space-around-stretch,.layout-align-gt-lg-space-between-stretch,.layout-align-gt-lg-start-stretch{align-items:stretch;align-content:stretch}.flex-gt-lg{flex:1;box-sizing:border-box}.flex-gt-lg-grow{flex:1 1 100%;box-sizing:border-box}.flex-gt-lg-initial{flex:0 1 auto;box-sizing:border-box}.flex-gt-lg-auto{flex:1 1 auto;box-sizing:border-box}.flex-gt-lg-none{flex:0 0 auto;box-sizing:border-box}.flex-gt-lg-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-gt-lg-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-gt-lg-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-gt-lg-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-gt-lg-column>.flex-gt-lg-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-gt-lg-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-gt-lg-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-gt-lg-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-gt-lg-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-gt-lg-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-gt-lg-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-gt-lg-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-gt-lg-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-gt-lg-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-gt-lg-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-gt-lg-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-gt-lg-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-gt-lg-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-gt-lg-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-gt-lg-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-gt-lg-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-gt-lg-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-gt-lg-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-gt-lg-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-gt-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-gt-lg-row>.flex{min-width:0}.layout-gt-lg-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-column>.flex{min-height:0}.layout-gt-lg,.layout-gt-lg-column,.layout-gt-lg-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-gt-lg-column{flex-direction:column}.layout-gt-lg-row{flex-direction:row}.flex-order-xl--20{order:-20}.flex-order-xl--19{order:-19}.flex-order-xl--18{order:-18}.flex-order-xl--17{order:-17}.flex-order-xl--16{order:-16}.flex-order-xl--15{order:-15}.flex-order-xl--14{order:-14}.flex-order-xl--13{order:-13}.flex-order-xl--12{order:-12}.flex-order-xl--11{order:-11}.flex-order-xl--10{order:-10}.flex-order-xl--9{order:-9}.flex-order-xl--8{order:-8}.flex-order-xl--7{order:-7}.flex-order-xl--6{order:-6}.flex-order-xl--5{order:-5}.flex-order-xl--4{order:-4}.flex-order-xl--3{order:-3}.flex-order-xl--2{order:-2}.flex-order-xl--1{order:-1}.flex-order-xl-0{order:0}.flex-order-xl-1{order:1}.flex-order-xl-2{order:2}.flex-order-xl-3{order:3}.flex-order-xl-4{order:4}.flex-order-xl-5{order:5}.flex-order-xl-6{order:6}.flex-order-xl-7{order:7}.flex-order-xl-8{order:8}.flex-order-xl-9{order:9}.flex-order-xl-10{order:10}.flex-order-xl-11{order:11}.flex-order-xl-12{order:12}.flex-order-xl-13{order:13}.flex-order-xl-14{order:14}.flex-order-xl-15{order:15}.flex-order-xl-16{order:16}.flex-order-xl-17{order:17}.flex-order-xl-18{order:18}.flex-order-xl-19{order:19}.flex-order-xl-20{order:20}.flex-offset-xl-0,.offset-xl-0{margin-left:0}[dir=rtl] .flex-offset-xl-0,[dir=rtl] .offset-xl-0{margin-left:auto;margin-right:0}.flex-offset-xl-5,.offset-xl-5{margin-left:5%}[dir=rtl] .flex-offset-xl-5,[dir=rtl] .offset-xl-5{margin-left:auto;margin-right:5%}.flex-offset-xl-10,.offset-xl-10{margin-left:10%}[dir=rtl] .flex-offset-xl-10,[dir=rtl] .offset-xl-10{margin-left:auto;margin-right:10%}.flex-offset-xl-15,.offset-xl-15{margin-left:15%}[dir=rtl] .flex-offset-xl-15,[dir=rtl] .offset-xl-15{margin-left:auto;margin-right:15%}.flex-offset-xl-20,.offset-xl-20{margin-left:20%}[dir=rtl] .flex-offset-xl-20,[dir=rtl] .offset-xl-20{margin-left:auto;margin-right:20%}.flex-offset-xl-25,.offset-xl-25{margin-left:25%}[dir=rtl] .flex-offset-xl-25,[dir=rtl] .offset-xl-25{margin-left:auto;margin-right:25%}.flex-offset-xl-30,.offset-xl-30{margin-left:30%}[dir=rtl] .flex-offset-xl-30,[dir=rtl] .offset-xl-30{margin-left:auto;margin-right:30%}.flex-offset-xl-35,.offset-xl-35{margin-left:35%}[dir=rtl] .flex-offset-xl-35,[dir=rtl] .offset-xl-35{margin-left:auto;margin-right:35%}.flex-offset-xl-40,.offset-xl-40{margin-left:40%}[dir=rtl] .flex-offset-xl-40,[dir=rtl] .offset-xl-40{margin-left:auto;margin-right:40%}.flex-offset-xl-45,.offset-xl-45{margin-left:45%}[dir=rtl] .flex-offset-xl-45,[dir=rtl] .offset-xl-45{margin-left:auto;margin-right:45%}.flex-offset-xl-50,.offset-xl-50{margin-left:50%}[dir=rtl] .flex-offset-xl-50,[dir=rtl] .offset-xl-50{margin-left:auto;margin-right:50%}.flex-offset-xl-55,.offset-xl-55{margin-left:55%}[dir=rtl] .flex-offset-xl-55,[dir=rtl] .offset-xl-55{margin-left:auto;margin-right:55%}.flex-offset-xl-60,.offset-xl-60{margin-left:60%}[dir=rtl] .flex-offset-xl-60,[dir=rtl] .offset-xl-60{margin-left:auto;margin-right:60%}.flex-offset-xl-65,.offset-xl-65{margin-left:65%}[dir=rtl] .flex-offset-xl-65,[dir=rtl] .offset-xl-65{margin-left:auto;margin-right:65%}.flex-offset-xl-70,.offset-xl-70{margin-left:70%}[dir=rtl] .flex-offset-xl-70,[dir=rtl] .offset-xl-70{margin-left:auto;margin-right:70%}.flex-offset-xl-75,.offset-xl-75{margin-left:75%}[dir=rtl] .flex-offset-xl-75,[dir=rtl] .offset-xl-75{margin-left:auto;margin-right:75%}.flex-offset-xl-80,.offset-xl-80{margin-left:80%}[dir=rtl] .flex-offset-xl-80,[dir=rtl] .offset-xl-80{margin-left:auto;margin-right:80%}.flex-offset-xl-85,.offset-xl-85{margin-left:85%}[dir=rtl] .flex-offset-xl-85,[dir=rtl] .offset-xl-85{margin-left:auto;margin-right:85%}.flex-offset-xl-90,.offset-xl-90{margin-left:90%}[dir=rtl] .flex-offset-xl-90,[dir=rtl] .offset-xl-90{margin-left:auto;margin-right:90%}.flex-offset-xl-95,.offset-xl-95{margin-left:95%}[dir=rtl] .flex-offset-xl-95,[dir=rtl] .offset-xl-95{margin-left:auto;margin-right:95%}.flex-offset-xl-33,.offset-xl-33{margin-left:calc(100% / 3)}.flex-offset-xl-66,.offset-xl-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-xl-66,[dir=rtl] .offset-xl-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-xl,.layout-align-xl-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-xl-start,.layout-align-xl-start-center,.layout-align-xl-start-end,.layout-align-xl-start-start,.layout-align-xl-start-stretch{justify-content:flex-start}.layout-align-xl-center,.layout-align-xl-center-center,.layout-align-xl-center-end,.layout-align-xl-center-start,.layout-align-xl-center-stretch{justify-content:center}.layout-align-xl-end,.layout-align-xl-end-center,.layout-align-xl-end-end,.layout-align-xl-end-start,.layout-align-xl-end-stretch{justify-content:flex-end}.layout-align-xl-space-around,.layout-align-xl-space-around-center,.layout-align-xl-space-around-end,.layout-align-xl-space-around-start,.layout-align-xl-space-around-stretch{justify-content:space-around}.layout-align-xl-space-between,.layout-align-xl-space-between-center,.layout-align-xl-space-between-end,.layout-align-xl-space-between-start,.layout-align-xl-space-between-stretch{justify-content:space-between}.layout-align-xl-center-start,.layout-align-xl-end-start,.layout-align-xl-space-around-start,.layout-align-xl-space-between-start,.layout-align-xl-start-start{align-items:flex-start;align-content:flex-start}.layout-align-xl-center-center,.layout-align-xl-end-center,.layout-align-xl-space-around-center,.layout-align-xl-space-between-center,.layout-align-xl-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-xl-center-center>*,.layout-align-xl-end-center>*,.layout-align-xl-space-around-center>*,.layout-align-xl-space-between-center>*,.layout-align-xl-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-xl-center-end,.layout-align-xl-end-end,.layout-align-xl-space-around-end,.layout-align-xl-space-between-end,.layout-align-xl-start-end{align-items:flex-end;align-content:flex-end}.layout-align-xl-center-stretch,.layout-align-xl-end-stretch,.layout-align-xl-space-around-stretch,.layout-align-xl-space-between-stretch,.layout-align-xl-start-stretch{align-items:stretch;align-content:stretch}.flex-xl{flex:1;box-sizing:border-box}.flex-xl-grow{flex:1 1 100%;box-sizing:border-box}.flex-xl-initial{flex:0 1 auto;box-sizing:border-box}.flex-xl-auto{flex:1 1 auto;box-sizing:border-box}.flex-xl-none{flex:0 0 auto;box-sizing:border-box}.flex-xl-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-xl-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-xl-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-xl-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-xl-column>.flex-xl-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-xl-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-xl-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-xl-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-xl-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-xl-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-xl-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-xl-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-xl-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-xl-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-xl-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-xl-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-xl-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-xl-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-xl-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-xl-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-xl-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-xl-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-xl-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-xl-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-xl-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-xl-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-xl-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-xl-row>.flex{min-width:0}.layout-xl-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-xl-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-column>.flex{min-height:0}.layout-xl,.layout-xl-column,.layout-xl-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-xl-column{flex-direction:column}.layout-xl-row{flex-direction:row}.hide-gt-lg:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show-xl):not(.show),.hide-gt-md:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show-xl):not(.show),.hide-gt-sm:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show-xl):not(.show),.hide-gt-xs:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show-xl):not(.show),.hide:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show-xl):not(.show){display:none}.hide-xl:not(.show-xl):not(.show-gt-lg):not(.show-gt-md):not(.show-gt-sm):not(.show-gt-xs):not(.show){display:none}}@media print{.hide-print:not(.show-print):not(.show){display:none!important}}*{text-rendering:optimizeLegibility;-o-text-rendering:optimizeLegibility;-ms-text-rendering:optimizeLegibility;-moz-text-rendering:optimizeLegibility;-webkit-text-rendering:optimizeLegibility;-webkit-tap-highlight-color:transparent;box-sizing:border-box}:after,:before{box-sizing:border-box}:focus{outline:0}:not(md-input-container)>button,:not(md-input-container)>input[type=button],:not(md-input-container)>input[type=email],:not(md-input-container)>input[type=image],:not(md-input-container)>input[type=password],:not(md-input-container)>input[type=search],:not(md-input-container)>input[type=submit],:not(md-input-container)>input[type=tel],:not(md-input-container)>input[type=text],:not(md-input-container)>textarea{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;appearance:none;-moz-appearance:none;-webkit-appearance:none;border:none;padding:0;margin:0}:not(md-input-container)>button,:not(md-input-container)>input[type=button],:not(md-input-container)>input[type=submit]{background:0 0}button{border-radius:0;font-family:inherit;font-size:inherit;padding:0;margin:0;appearance:none;-moz-appearance:none;-webkit-appearance:none}[layout]>*{min-height:auto;min-height:initial}md-card>:not(md-card-content) img,md-card>img{height:inherit;height:initial}.md-datepicker-calendar-pane *{box-sizing:initial}md-autocomplete-wrap>input[type=search]{background:#fff;padding:0 15px!important}md-backdrop.md-opaque{background-color:rgba(33,33,33,.48)!important}md-card md-card-header md-card-avatar md-icon{width:40px;height:40px}md-checkbox.no-label{margin:0}md-chip .md-chip-remove md-icon{margin-left:2px}md-chip .md-chip-remove md-icon svg{width:18px;height:18px;max-width:18px;max-height:18px;margin:4px}md-datepicker .md-datepicker-button{padding:0!important;margin:0!important;vertical-align:middle}md-datepicker .md-datepicker-input-container{margin-left:0}.md-inline-form md-datepicker{margin-top:14px}md-dialog md-dialog-content{padding:32px 24px 24px 24px}md-dialog md-dialog-actions{min-height:64px;padding-top:8px;padding-bottom:8px}md-dialog md-dialog-actions .md-button{margin:0 8px}md-input-container.no-errors-spacer .md-errors-spacer{display:none}md-input-container .input-hint{position:absolute;right:auto;bottom:7px;left:2px;font-size:12px;line-height:14px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-input-container.md-icon-left .input-hint{left:38px}md-list-item .md-list-item-text p{font-size:13px!important}.md-menu,md-menu{padding:0}md-menu-content.md-menu-bar-menu.md-dense{padding:8px 0}md-menu-content.md-menu-bar-menu.md-dense .md-button,md-menu-content.md-menu-bar-menu.md-dense md-menu-item{height:40px;line-height:40px}md-menu-content.md-menu-bar-menu.md-dense .md-button.md-indent>md-icon,md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent>md-icon{top:8px}.md-open-menu-container md-menu-content md-menu-item.selected{opacity:.4}md-menu-content md-menu-item .md-button{text-align:left}md-select.simplified{margin:0 8px}md-select.simplified .md-select-value{border:none!important;box-sizing:border-box;padding:0}md-select.simplified .md-select-value :first-child{transform:none;height:auto}md-select.simplified .md-select-value .md-select-icon{transform:none;font-size:16px}md-select.simplified .md-select-value .md-select-icon:after{top:1px}md-select[multiple] md-select-value>:first-child{display:flex}md-select[multiple] md-select-value>:first-child>:first-child{flex:0}md-select[multiple] md-select-value>:first-child .md-container{padding-right:6px}md-select[multiple] md-select-value>:first-child .md-container:first-of-type{padding-right:0}md-select-menu md-select-header{position:relative;display:flex;align-items:center;width:auto;height:48px;padding-left:10.667px;box-shadow:0 1px 0 0 rgba(0,0,0,.1),0 0 0 0 rgba(0,0,0,.14),0 0 0 0 rgba(0,0,0,.12);cursor:pointer}md-select-menu md-select-header input[type=search]{border:none;outline:0;height:100%;width:100%;padding:0}md-sidenav{-webkit-overflow-scrolling:touch}md-toolbar.colored-toolbar{color:rgba(255,255,255,.87)}md-toolbar.colored-toolbar md-menu-bar md-menu._md-open>button{background:rgba(0,0,0,.12)}md-toolbar.colored-toolbar md-menu._md-open>button{background:rgba(0,0,0,.12)}md-toolbar.colored-toolbar input{color:rgba(255,255,255,.87)!important}md-progress-circular[disabled]{visibility:hidden}body,html{overflow:hidden!important}#main{position:absolute;top:0;right:0;bottom:0;left:0}body.boxed{background:#3f4450}body.boxed #main{overflow:hidden!important;width:100%;max-width:1280px;margin:0 auto;box-shadow:0 0 12px rgba(0,0,0,.45)}#layout-content-only{position:relative;height:100%;max-height:100%}#layout-content-only #content{position:absolute;top:0;right:0;bottom:0;left:0}#layout-content-with-toolbar{position:relative;height:100%;max-height:100%}#layout-content-with-toolbar #content{position:absolute;top:64px;right:0;bottom:0;left:0}#layout-vertical-navigation{height:100%;max-height:100%}#layout-vertical-navigation #content-container{position:relative;overflow:hidden}#layout-vertical-navigation #content-container #content{position:absolute;top:64px;right:0;bottom:0;left:0}#layout-vertical-navigation-fullwidth-toolbar{height:100%;max-height:100%}#layout-vertical-navigation-fullwidth-toolbar #main-container{position:relative}#layout-vertical-navigation-fullwidth-toolbar #main-container #content-container{position:relative;overflow:hidden}#layout-vertical-navigation-fullwidth-toolbar #main-container #content-container #content{position:absolute;top:0;right:0;bottom:0;left:0}#layout-vertical-navigation-fullwidth-toolbar-2{height:100%;max-height:100%}#layout-vertical-navigation-fullwidth-toolbar-2 #main-container{position:relative}#layout-vertical-navigation-fullwidth-toolbar-2 #main-container #content-container{position:relative;overflow:hidden}#layout-vertical-navigation-fullwidth-toolbar-2 #main-container #content-container #content{position:absolute;top:0;right:0;bottom:0;left:0}#layout-horizontal-navigation{height:100%;max-height:100%}#layout-horizontal-navigation #content-container{position:relative;overflow:hidden}#layout-horizontal-navigation #content-container #content{position:absolute;top:0;right:0;bottom:0;left:0}.page-layout{position:relative;overflow:hidden}.page-layout .top-bg{position:absolute;z-index:1;top:0;right:0;left:0;height:200px;background-image:url(/assets/images/backgrounds/header-bg.png);background-size:cover}.page-layout md-backdrop{z-index:50}.page-layout>.header .breadcrumb{margin-bottom:16px;font-weight:500;color:rgba(0,0,0,.54)}.page-layout>.header .breadcrumb md-icon{margin:0}.page-layout>.header .breadcrumb .separator{margin:0 8px}.page-layout>.header .title{font-size:34px}.page-layout.carded{min-height:100%;height:100%}.page-layout.carded.fullwidth.single-scroll{height:auto}.page-layout.carded.fullwidth.single-scroll>.center .content-card .content{overflow:hidden}.page-layout.carded.fullwidth>.center{position:relative;z-index:2;margin-left:32px;margin-right:32px}.page-layout.carded.fullwidth>.center .header{height:136px;min-height:136px;max-height:136px;padding:24px}.page-layout.carded.fullwidth>.center .content-card{background:#fff;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12);overflow:hidden}.page-layout.carded.fullwidth>.center .content-card .toolbar{padding:8px 24px;height:64px;min-height:64px;max-height:64px;border-bottom:1px solid rgba(0,0,0,.12)}.page-layout.carded.fullwidth>.center .content-card .content{padding:24px;background:#fff}.page-layout.carded.left-sidenav.single-scroll{height:auto}.page-layout.carded.left-sidenav.single-scroll>.center .content-card .content{overflow:hidden}.page-layout.carded.left-sidenav>.sidenav{width:240px;min-width:240px;max-width:240px;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12);z-index:51}.page-layout.carded.left-sidenav>.sidenav .header{height:200px;min-height:200px;max-height:200px;padding:24px}.page-layout.carded.left-sidenav>.sidenav .content{background:0 0;padding:24px}.page-layout.carded.left-sidenav>.sidenav.md-locked-open{width:220px;min-width:220px;max-width:220px;z-index:2;background:0 0;box-shadow:none}.page-layout.carded.left-sidenav>.sidenav.md-locked-open+.center{margin-left:0}.page-layout.carded.left-sidenav>.sidenav:not(.md-locked-open) .header{border-bottom:1px solid rgba(0,0,0,.12)}.page-layout.carded.left-sidenav>.sidenav:not(.md-locked-open) .content{overflow:hidden}.page-layout.carded.left-sidenav>.center{position:relative;z-index:2;margin-left:32px;margin-right:32px}.page-layout.carded.left-sidenav>.center .header{height:136px;min-height:136px;max-height:136px;padding:24px}.page-layout.carded.left-sidenav>.center .content-card{background:#fff;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12);overflow:hidden}.page-layout.carded.left-sidenav>.center .content-card .toolbar{padding:8px 24px;height:64px;min-height:64px;max-height:64px;border-bottom:1px solid rgba(0,0,0,.12)}.page-layout.carded.left-sidenav>.center .content-card .toolbar .sidenav-toggle{margin:0 8px 0 0!important;padding:0!important;border-radius:0}.page-layout.carded.left-sidenav>.center .content-card .content{padding:24px;background:#fff}.page-layout.carded.right-sidenav.single-scroll{height:auto}.page-layout.carded.right-sidenav.single-scroll>.center .content-card .content{overflow:hidden}.page-layout.carded.right-sidenav>.sidenav{width:240px;min-width:240px;max-width:240px;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12);z-index:51}.page-layout.carded.right-sidenav>.sidenav .header{height:200px;min-height:200px;max-height:200px;padding:24px 24px 24px 0}.page-layout.carded.right-sidenav>.sidenav .content{background:0 0;padding:24px 24px 24px 0}.page-layout.carded.right-sidenav>.sidenav.md-locked-open{width:196px;min-width:196px;max-width:196px;z-index:2;background:0 0;box-shadow:none}.page-layout.carded.right-sidenav>.sidenav:not(.md-locked-open) .header{padding:24px;border-bottom:1px solid rgba(0,0,0,.12)}.page-layout.carded.right-sidenav>.sidenav:not(.md-locked-open) .content{overflow:hidden;padding:24px}.page-layout.carded.right-sidenav>.center{position:relative;z-index:2;margin-left:32px;margin-right:32px}.page-layout.carded.right-sidenav>.center .header{height:136px;min-height:136px;max-height:136px;padding:24px}.page-layout.carded.right-sidenav>.center .content-card{background:#fff;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12);overflow:hidden}.page-layout.carded.right-sidenav>.center .content-card .toolbar{padding:8px 24px;height:64px;min-height:64px;max-height:64px;border-bottom:1px solid rgba(0,0,0,.12)}.page-layout.carded.right-sidenav>.center .content-card .toolbar .sidenav-toggle{margin:0 0 0 8px!important;padding:0!important;border-radius:0}.page-layout.carded.right-sidenav>.center .content-card .content{padding:24px;background:#fff}.page-layout.simple.fullwidth,.page-layout.simple.inner-sidenav{min-height:100%}.page-layout.simple.fullwidth>.header,.page-layout.simple.inner-sidenav>.header{height:200px;min-height:200px;max-height:200px;padding:24px;background-image:url(/assets/images/backgrounds/header-bg.png);background-size:cover}.page-layout.simple.fullwidth>.content,.page-layout.simple.inner-sidenav>.content{padding:24px}.page-layout.simple.left-sidenav{min-height:100%;height:100%}.page-layout.simple.left-sidenav.single-scroll{height:auto}.page-layout.simple.left-sidenav.single-scroll>.center{overflow:hidden}.page-layout.simple.left-sidenav.inner-sidenav>.content>md-sidenav{margin-right:24px}.page-layout.simple.left-sidenav .sidenav{width:240px;min-width:240px;max-width:240px;padding:24px;z-index:51;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12)}.page-layout.simple.left-sidenav .sidenav.md-locked-open{width:220px;min-width:220px;max-width:220px;z-index:2;box-shadow:none;background:0 0}.page-layout.simple.left-sidenav>.center{position:relative;overflow:auto;z-index:3;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12)}.page-layout.simple.left-sidenav>.center .header{height:200px;min-height:200px;max-height:200px;padding:24px;background-image:url(/assets/images/backgrounds/header-bg.png);background-size:cover}.page-layout.simple.left-sidenav>.center .content{padding:24px;background:#fff}.page-layout.simple.right-sidenav{min-height:100%;height:100%}.page-layout.simple.right-sidenav.single-scroll{height:auto}.page-layout.simple.right-sidenav.single-scroll>.center{overflow:hidden}.page-layout.simple.right-sidenav.inner-sidenav>.content>md-sidenav{margin-left:24px}.page-layout.simple.right-sidenav .sidenav{width:240px;min-width:240px;max-width:240px;padding:24px;z-index:51;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12)}.page-layout.simple.right-sidenav .sidenav.md-locked-open{width:220px;min-width:220px;max-width:220px;z-index:2;box-shadow:none;background:0 0}.page-layout.simple.right-sidenav>.center{position:relative;overflow:auto;z-index:3;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12)}.page-layout.simple.right-sidenav>.center .header{height:200px;min-height:200px;max-height:200px;padding:24px;background-image:url(/assets/images/backgrounds/header-bg.png);background-size:cover}.page-layout.simple.right-sidenav>.center .content{padding:24px;background:#fff}.page-layout.simple.inner-sidenav{height:auto}.page-layout.simple.inner-sidenav>.content>md-sidenav.md-locked-open{padding:0}.page-layout.simple.tabbed{min-height:100%}.page-layout.simple.tabbed>.header{height:200px;min-height:200px;max-height:200px;padding:24px;background-image:url(/assets/images/backgrounds/header-bg.png);background-size:cover}.page-layout.simple.tabbed>.content>md-tabs>md-tabs-wrapper{background:#fff;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12);padding:0 24px}.page-layout.simple.tabbed>.content>md-tabs>md-tabs-wrapper md-tabs-canvas{height:56px}.page-layout.simple.tabbed>.content>md-tabs>md-tabs-wrapper md-tabs-canvas md-pagination-wrapper{height:56px}.page-layout.simple.tabbed>.content>md-tabs>md-tabs-wrapper md-tabs-canvas .md-tab{padding:16px 24px;text-transform:none}.page-layout.simple.tabbed>.content>md-tabs:not(.md-dynamic-height) md-tabs-content-wrapper{top:56px}.page-layout.simple.tabbed>.content>md-tabs>md-tabs-content-wrapper>md-tab-content{padding:24px}.page-layout.simple.tabbed>.content>md-nav-bar .md-nav-bar{background:#fff;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12);border:none;height:56px}.page-layout.simple.tabbed>.content>md-nav-bar .md-nav-bar nav{margin:0 12px}.page-layout.simple.tabbed>.content>md-nav-bar .md-nav-bar nav .md-nav-item{height:56px}.page-layout.simple.tabbed>.content>md-nav-bar .md-nav-bar nav .md-nav-item ._md-nav-button{height:56px;line-height:32px}.page-layout.simple.tabbed>.content>md-nav-bar .md-nav-bar nav .md-nav-item ._md-nav-button-text{text-transform:none}.page-layout.blank{min-height:100%;padding:24px}.single-scroll .carded.fullwidth{height:auto}.single-scroll .carded.fullwidth>.center .content-card .content{overflow:hidden}.single-scroll .carded.left-sidenav{height:auto}.single-scroll .carded.left-sidenav>.center .content-card .content{overflow:hidden}.single-scroll .carded.right-sidenav{height:auto}.single-scroll .carded.right-sidenav>.center .content-card .content{overflow:hidden}.single-scroll .simple.left-sidenav{height:auto}.single-scroll .simple.left-sidenav>.center{overflow:hidden}.single-scroll .simple.right-sidenav{height:auto}.single-scroll .simple.right-sidenav>.center{overflow:hidden}@media screen and (max-width:1280px){.page-layout.simple.inner-sidenav.left-sidenav>.content,.page-layout.simple.inner-sidenav.right-sidenav>.content{height:auto!important}.page-layout.simple.inner-sidenav.left-sidenav>.content>md-sidenav,.page-layout.simple.inner-sidenav.right-sidenav>.content>md-sidenav{margin-left:0;margin-right:0}.sidenav-open .page-layout.simple.inner-sidenav{height:100%}}@media screen and (max-width:600px){.page-layout .top-bg{height:160px}.page-layout.carded.fullwidth>.center,.page-layout.carded.left-sidenav>.center,.page-layout.carded.right-sidenav>.center{margin-left:16px;margin-right:16px}.page-layout.carded.fullwidth>.center .header,.page-layout.carded.left-sidenav>.center .header,.page-layout.carded.right-sidenav>.center .header{height:96px;min-height:96px;max-height:96px;padding:16px}.page-layout.carded.fullwidth{height:auto}.page-layout.carded.fullwidth>.center .content-card .content{overflow:hidden}.page-layout.carded.left-sidenav,.page-layout.carded.right-sidenav{height:auto}.page-layout.carded.left-sidenav>.center .content-card .content,.page-layout.carded.right-sidenav>.center .content-card .content{overflow:hidden}.page-layout.simple.fullwidth>.header,.page-layout.simple.inner-sidenav>.header{height:160px;min-height:160px;max-height:160px;padding:16px}.page-layout.simple.left-sidenav>.center .header,.page-layout.simple.right-sidenav>.center .header{height:160px;min-height:160px;max-height:160px;padding:16px}.page-layout.simple.left-sidenav,.page-layout.simple.right-sidenav{height:auto}.page-layout.simple.left-sidenav>.center,.page-layout.simple.right-sidenav>.center{overflow:hidden}}.animate-slide-up{-webkit-backface-visibility:hidden;-webkit-perspective:1000px;transition-property:none;transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:1}.animate-slide-up.ng-enter{transform:translateY(100%);opacity:0}.animate-slide-up.ng-enter.ng-enter-active{transition-property:all;transform:translateY(0);opacity:1}.animate-slide-up.ng-leave{transform:translateY(0);opacity:1}.animate-slide-up.ng-leave.ng-leave-active{transition-property:all;transform:translateY(-100%);opacity:0}.animate-slide-up.ng-hide{transform:translateY(-100%);opacity:0}.animate-slide-up.ng-hide-add-active,.animate-slide-up.ng-hide-remove-active{transition-property:all}.animate-slide-down{-webkit-backface-visibility:hidden;-webkit-perspective:1000px;transition-property:none;transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:1}.animate-slide-down.ng-enter{transform:translateY(-100%);opacity:0}.animate-slide-down.ng-enter.ng-enter-active{transition-property:all;transform:translateY(0);opacity:1}.animate-slide-down.ng-leave{transform:translateY(0);opacity:1}.animate-slide-down.ng-leave.ng-leave-active{transition-property:all;transform:translateY(100%);opacity:0}.animate-slide-down.ng-hide{transform:translateY(-100%);opacity:0}.animate-slide-down.ng-hide-add-active,.animate-slide-down.ng-hide-remove-active{transition-property:all}.animate-slide-left{-webkit-backface-visibility:hidden;-webkit-perspective:1000px;transition-property:none;transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:1}.animate-slide-left.ng-enter{transform:translateX(100%);opacity:0}.animate-slide-left.ng-enter.ng-enter-active{transition-property:all;transform:translateX(0);opacity:1}.animate-slide-left.ng-leave{transform:translateX(0);opacity:1}.animate-slide-left.ng-leave.ng-leave-active{transition-property:all;transform:translateX(-100%);opacity:0}.animate-slide-left.ng-hide{transform:translateX(-100%);opacity:0}.animate-slide-left.ng-hide-add-active,.animate-slide-left.ng-hide-remove-active{transition-property:all}.animate-slide-right{-webkit-backface-visibility:hidden;-webkit-perspective:1000px;transition-property:none;transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:1}.animate-slide-right.ng-enter{transform:translateX(-100%);opacity:0}.animate-slide-right.ng-enter.ng-enter-active{transition-property:all;transform:translateX(0);opacity:1}.animate-slide-right.ng-leave{transform:translateX(0);opacity:1}.animate-slide-right.ng-leave.ng-leave-active{transition-property:all;transform:translateX(100%);opacity:0}.animate-slide-right.ng-hide{transform:translateX(100%);opacity:0}.animate-slide-right.ng-hide-add-active,.animate-slide-right.ng-hide-remove-active{transition-property:all}.animate-fade-in-out{-webkit-backface-visibility:hidden;-webkit-perspective:1000px;transition-property:none;transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:1}.animate-fade-in-out.ng-enter{opacity:0}.animate-fade-in-out.ng-enter.ng-enter-active{transition-property:all;opacity:1}.animate-fade-in-out.ng-leave{opacity:1}.animate-fade-in-out.ng-leave.ng-leave-active{transition-property:all;opacity:0}.animate-fade-in-out.ng-hide{opacity:0}.animate-fade-in-out.ng-hide-add-active,.animate-fade-in-out.ng-hide-remove-active{transition-property:all}@keyframes slide-in-left{0%{opacity:0;transform:translateX(-500px)}65%{opacity:1;transform:translateX(0)}100%{transform:translateX(0)}}@keyframes slide-in-right{0%{opacity:0;transform:translateX(500px)}65%{opacity:1;transform:translateX(0)}100%{transform:translateX(0)}}@keyframes slide-in-bottom{0%{opacity:0;transform:translateY(200px)}65%{opacity:1;transform:translateY(0)}100%{transform:translateY(0)}}.animate-rotate{animation:rotate 1.75s linear infinite}@keyframes rotate{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.black-fg,.black-text{color:rgba(0,0,0,.87)!important}.black-fg .icon,.black-fg .secondary-text,.black-fg.icon,.black-fg.secondary-text,.black-text .icon,.black-text .secondary-text,.black-text.icon,.black-text.secondary-text{color:rgba(0,0,0,.54)!important}.black-fg .disabled-text,.black-fg .hint-text,.black-fg.disabled-text,.black-fg.hint-text,.black-text .disabled-text,.black-text .hint-text,.black-text.disabled-text,.black-text.hint-text{color:rgba(0,0,0,.26)!important}.black-fg .divider,.black-fg .faint-text,.black-fg.divider,.black-fg.faint-text,.black-text .divider,.black-text .faint-text,.black-text.divider,.black-text.faint-text{color:rgba(0,0,0,.12)!important}.white-fg,.white-text{color:#fff!important}.white-fg .icon,.white-fg .secondary-text,.white-fg.icon,.white-fg.secondary-text,.white-text .icon,.white-text .secondary-text,.white-text.icon,.white-text.secondary-text{color:rgba(255,255,255,.7)!important}.white-fg .disabled-text,.white-fg .hint-text,.white-fg.disabled-text,.white-fg.hint-text,.white-text .disabled-text,.white-text .hint-text,.white-text.disabled-text,.white-text.hint-text{color:rgba(255,255,255,.3)!important}.white-fg .divider,.white-fg .faint-text,.white-fg.divider,.white-fg.faint-text,.white-text .divider,.white-text .faint-text,.white-text.divider,.white-text.faint-text{color:rgba(255,255,255,.12)!important}.white-fg md-icon,.white-text md-icon{color:#fff}.white-fg md-progress-linear .md-container,.white-text md-progress-linear .md-container{background:rgba(255,255,255,.3)}.white-fg md-progress-linear .md-bar,.white-text md-progress-linear .md-bar{background:rgba(255,255,255,.7)}.red-50-bg{background-color:#ffebee!important}.md-red-50-bg{background-color:#ffebee!important;color:rgba(0,0,0,.87)}.red-50-fg{color:#ffebee!important}.red-50-border{border-color:#ffebee!important}.red-50-border-top{border-top-color:#ffebee!important}.red-50-border-right{border-right-color:#ffebee!important}.red-50-border-bottom{border-bottom-color:#ffebee!important}.red-50-border-left{border-left-color:#ffebee!important}.red-100-bg{background-color:#ffcdd2!important}.md-red-100-bg{background-color:#ffcdd2!important;color:rgba(0,0,0,.87)}.red-100-fg{color:#ffcdd2!important}.red-100-border{border-color:#ffcdd2!important}.red-100-border-top{border-top-color:#ffcdd2!important}.red-100-border-right{border-right-color:#ffcdd2!important}.red-100-border-bottom{border-bottom-color:#ffcdd2!important}.red-100-border-left{border-left-color:#ffcdd2!important}.red-200-bg{background-color:#ef9a9a!important}.md-red-200-bg{background-color:#ef9a9a!important;color:rgba(0,0,0,.87)}.red-200-fg{color:#ef9a9a!important}.red-200-border{border-color:#ef9a9a!important}.red-200-border-top{border-top-color:#ef9a9a!important}.red-200-border-right{border-right-color:#ef9a9a!important}.red-200-border-bottom{border-bottom-color:#ef9a9a!important}.red-200-border-left{border-left-color:#ef9a9a!important}.red-300-bg{background-color:#e57373!important}.md-red-300-bg{background-color:#e57373!important;color:rgba(0,0,0,.87)}.red-300-fg{color:#e57373!important}.red-300-border{border-color:#e57373!important}.red-300-border-top{border-top-color:#e57373!important}.red-300-border-right{border-right-color:#e57373!important}.red-300-border-bottom{border-bottom-color:#e57373!important}.red-300-border-left{border-left-color:#e57373!important}.red-400-bg{background-color:#ef5350!important}.md-red-400-bg{background-color:#ef5350!important;color:#fff}.red-400-fg{color:#ef5350!important}.red-400-border{border-color:#ef5350!important}.red-400-border-top{border-top-color:#ef5350!important}.red-400-border-right{border-right-color:#ef5350!important}.red-400-border-bottom{border-bottom-color:#ef5350!important}.red-400-border-left{border-left-color:#ef5350!important}.red-500-bg{background-color:#f44336!important}.md-red-500-bg{background-color:#f44336!important;color:#fff}.red-500-fg{color:#f44336!important}.red-500-border{border-color:#f44336!important}.red-500-border-top{border-top-color:#f44336!important}.red-500-border-right{border-right-color:#f44336!important}.red-500-border-bottom{border-bottom-color:#f44336!important}.red-500-border-left{border-left-color:#f44336!important}.md-red-bg{background-color:#f44336!important;color:#fff}.red-bg{background-color:#f44336!important}.red-fg{color:#f44336!important}.red-border{border-color:#f44336!important}.red-border-top{border-top-color:#f44336!important}.red-border-right{border-right-color:#f44336!important}.red-border-bottom{border-bottom-color:#f44336!important}.red-border-left{border-left-color:#f44336!important}.red-600-bg{background-color:#e53935!important}.md-red-600-bg{background-color:#e53935!important;color:#fff}.red-600-fg{color:#e53935!important}.red-600-border{border-color:#e53935!important}.red-600-border-top{border-top-color:#e53935!important}.red-600-border-right{border-right-color:#e53935!important}.red-600-border-bottom{border-bottom-color:#e53935!important}.red-600-border-left{border-left-color:#e53935!important}.red-700-bg{background-color:#d32f2f!important}.md-red-700-bg{background-color:#d32f2f!important;color:#fff}.red-700-fg{color:#d32f2f!important}.red-700-border{border-color:#d32f2f!important}.red-700-border-top{border-top-color:#d32f2f!important}.red-700-border-right{border-right-color:#d32f2f!important}.red-700-border-bottom{border-bottom-color:#d32f2f!important}.red-700-border-left{border-left-color:#d32f2f!important}.red-800-bg{background-color:#c62828!important}.md-red-800-bg{background-color:#c62828!important;color:rgba(255,255,255,.87)}.red-800-fg{color:#c62828!important}.red-800-border{border-color:#c62828!important}.red-800-border-top{border-top-color:#c62828!important}.red-800-border-right{border-right-color:#c62828!important}.red-800-border-bottom{border-bottom-color:#c62828!important}.red-800-border-left{border-left-color:#c62828!important}.red-900-bg{background-color:#b71c1c!important}.md-red-900-bg{background-color:#b71c1c!important;color:rgba(255,255,255,.87)}.red-900-fg{color:#b71c1c!important}.red-900-border{border-color:#b71c1c!important}.red-900-border-top{border-top-color:#b71c1c!important}.red-900-border-right{border-right-color:#b71c1c!important}.red-900-border-bottom{border-bottom-color:#b71c1c!important}.red-900-border-left{border-left-color:#b71c1c!important}.red-A100-bg{background-color:#ff8a80!important}.md-red-A100-bg{background-color:#ff8a80!important;color:rgba(0,0,0,.87)}.red-A100-fg{color:#ff8a80!important}.red-A100-border{border-color:#ff8a80!important}.red-A100-border-top{border-top-color:#ff8a80!important}.red-A100-border-right{border-right-color:#ff8a80!important}.red-A100-border-bottom{border-bottom-color:#ff8a80!important}.red-A100-border-left{border-left-color:#ff8a80!important}.red-A200-bg{background-color:#ff5252!important}.md-red-A200-bg{background-color:#ff5252!important;color:#fff}.red-A200-fg{color:#ff5252!important}.red-A200-border{border-color:#ff5252!important}.red-A200-border-top{border-top-color:#ff5252!important}.red-A200-border-right{border-right-color:#ff5252!important}.red-A200-border-bottom{border-bottom-color:#ff5252!important}.red-A200-border-left{border-left-color:#ff5252!important}.red-A400-bg{background-color:#ff1744!important}.md-red-A400-bg{background-color:#ff1744!important;color:#fff}.red-A400-fg{color:#ff1744!important}.red-A400-border{border-color:#ff1744!important}.red-A400-border-top{border-top-color:#ff1744!important}.red-A400-border-right{border-right-color:#ff1744!important}.red-A400-border-bottom{border-bottom-color:#ff1744!important}.red-A400-border-left{border-left-color:#ff1744!important}.red-A700-bg{background-color:#d50000!important}.md-red-A700-bg{background-color:#d50000!important;color:#fff}.red-A700-fg{color:#d50000!important}.red-A700-border{border-color:#d50000!important}.red-A700-border-top{border-top-color:#d50000!important}.red-A700-border-right{border-right-color:#d50000!important}.red-A700-border-bottom{border-bottom-color:#d50000!important}.red-A700-border-left{border-left-color:#d50000!important}.pink-50-bg{background-color:#fce4ec!important}.md-pink-50-bg{background-color:#fce4ec!important;color:rgba(0,0,0,.87)}.pink-50-fg{color:#fce4ec!important}.pink-50-border{border-color:#fce4ec!important}.pink-50-border-top{border-top-color:#fce4ec!important}.pink-50-border-right{border-right-color:#fce4ec!important}.pink-50-border-bottom{border-bottom-color:#fce4ec!important}.pink-50-border-left{border-left-color:#fce4ec!important}.pink-100-bg{background-color:#f8bbd0!important}.md-pink-100-bg{background-color:#f8bbd0!important;color:rgba(0,0,0,.87)}.pink-100-fg{color:#f8bbd0!important}.pink-100-border{border-color:#f8bbd0!important}.pink-100-border-top{border-top-color:#f8bbd0!important}.pink-100-border-right{border-right-color:#f8bbd0!important}.pink-100-border-bottom{border-bottom-color:#f8bbd0!important}.pink-100-border-left{border-left-color:#f8bbd0!important}.pink-200-bg{background-color:#f48fb1!important}.md-pink-200-bg{background-color:#f48fb1!important;color:rgba(0,0,0,.87)}.pink-200-fg{color:#f48fb1!important}.pink-200-border{border-color:#f48fb1!important}.pink-200-border-top{border-top-color:#f48fb1!important}.pink-200-border-right{border-right-color:#f48fb1!important}.pink-200-border-bottom{border-bottom-color:#f48fb1!important}.pink-200-border-left{border-left-color:#f48fb1!important}.pink-300-bg{background-color:#f06292!important}.md-pink-300-bg{background-color:#f06292!important;color:rgba(255,255,255,.87)}.pink-300-fg{color:#f06292!important}.pink-300-border{border-color:#f06292!important}.pink-300-border-top{border-top-color:#f06292!important}.pink-300-border-right{border-right-color:#f06292!important}.pink-300-border-bottom{border-bottom-color:#f06292!important}.pink-300-border-left{border-left-color:#f06292!important}.pink-400-bg{background-color:#ec407a!important}.md-pink-400-bg{background-color:#ec407a!important;color:rgba(255,255,255,.87)}.pink-400-fg{color:#ec407a!important}.pink-400-border{border-color:#ec407a!important}.pink-400-border-top{border-top-color:#ec407a!important}.pink-400-border-right{border-right-color:#ec407a!important}.pink-400-border-bottom{border-bottom-color:#ec407a!important}.pink-400-border-left{border-left-color:#ec407a!important}.pink-500-bg{background-color:#e91e63!important}.md-pink-500-bg{background-color:#e91e63!important;color:#fff}.pink-500-fg{color:#e91e63!important}.pink-500-border{border-color:#e91e63!important}.pink-500-border-top{border-top-color:#e91e63!important}.pink-500-border-right{border-right-color:#e91e63!important}.pink-500-border-bottom{border-bottom-color:#e91e63!important}.pink-500-border-left{border-left-color:#e91e63!important}.md-pink-bg{background-color:#e91e63!important;color:#fff}.pink-bg{background-color:#e91e63!important}.pink-fg{color:#e91e63!important}.pink-border{border-color:#e91e63!important}.pink-border-top{border-top-color:#e91e63!important}.pink-border-right{border-right-color:#e91e63!important}.pink-border-bottom{border-bottom-color:#e91e63!important}.pink-border-left{border-left-color:#e91e63!important}.pink-600-bg{background-color:#d81b60!important}.md-pink-600-bg{background-color:#d81b60!important;color:#fff}.pink-600-fg{color:#d81b60!important}.pink-600-border{border-color:#d81b60!important}.pink-600-border-top{border-top-color:#d81b60!important}.pink-600-border-right{border-right-color:#d81b60!important}.pink-600-border-bottom{border-bottom-color:#d81b60!important}.pink-600-border-left{border-left-color:#d81b60!important}.pink-700-bg{background-color:#c2185b!important}.md-pink-700-bg{background-color:#c2185b!important;color:rgba(255,255,255,.87)}.pink-700-fg{color:#c2185b!important}.pink-700-border{border-color:#c2185b!important}.pink-700-border-top{border-top-color:#c2185b!important}.pink-700-border-right{border-right-color:#c2185b!important}.pink-700-border-bottom{border-bottom-color:#c2185b!important}.pink-700-border-left{border-left-color:#c2185b!important}.pink-800-bg{background-color:#ad1457!important}.md-pink-800-bg{background-color:#ad1457!important;color:rgba(255,255,255,.87)}.pink-800-fg{color:#ad1457!important}.pink-800-border{border-color:#ad1457!important}.pink-800-border-top{border-top-color:#ad1457!important}.pink-800-border-right{border-right-color:#ad1457!important}.pink-800-border-bottom{border-bottom-color:#ad1457!important}.pink-800-border-left{border-left-color:#ad1457!important}.pink-900-bg{background-color:#880e4f!important}.md-pink-900-bg{background-color:#880e4f!important;color:rgba(255,255,255,.87)}.pink-900-fg{color:#880e4f!important}.pink-900-border{border-color:#880e4f!important}.pink-900-border-top{border-top-color:#880e4f!important}.pink-900-border-right{border-right-color:#880e4f!important}.pink-900-border-bottom{border-bottom-color:#880e4f!important}.pink-900-border-left{border-left-color:#880e4f!important}.pink-A100-bg{background-color:#ff80ab!important}.md-pink-A100-bg{background-color:#ff80ab!important;color:rgba(0,0,0,.87)}.pink-A100-fg{color:#ff80ab!important}.pink-A100-border{border-color:#ff80ab!important}.pink-A100-border-top{border-top-color:#ff80ab!important}.pink-A100-border-right{border-right-color:#ff80ab!important}.pink-A100-border-bottom{border-bottom-color:#ff80ab!important}.pink-A100-border-left{border-left-color:#ff80ab!important}.pink-A200-bg{background-color:#ff4081!important}.md-pink-A200-bg{background-color:#ff4081!important;color:#fff}.pink-A200-fg{color:#ff4081!important}.pink-A200-border{border-color:#ff4081!important}.pink-A200-border-top{border-top-color:#ff4081!important}.pink-A200-border-right{border-right-color:#ff4081!important}.pink-A200-border-bottom{border-bottom-color:#ff4081!important}.pink-A200-border-left{border-left-color:#ff4081!important}.pink-A400-bg{background-color:#f50057!important}.md-pink-A400-bg{background-color:#f50057!important;color:#fff}.pink-A400-fg{color:#f50057!important}.pink-A400-border{border-color:#f50057!important}.pink-A400-border-top{border-top-color:#f50057!important}.pink-A400-border-right{border-right-color:#f50057!important}.pink-A400-border-bottom{border-bottom-color:#f50057!important}.pink-A400-border-left{border-left-color:#f50057!important}.pink-A700-bg{background-color:#c51162!important}.md-pink-A700-bg{background-color:#c51162!important;color:#fff}.pink-A700-fg{color:#c51162!important}.pink-A700-border{border-color:#c51162!important}.pink-A700-border-top{border-top-color:#c51162!important}.pink-A700-border-right{border-right-color:#c51162!important}.pink-A700-border-bottom{border-bottom-color:#c51162!important}.pink-A700-border-left{border-left-color:#c51162!important}.purple-50-bg{background-color:#f3e5f5!important}.md-purple-50-bg{background-color:#f3e5f5!important;color:rgba(0,0,0,.87)}.purple-50-fg{color:#f3e5f5!important}.purple-50-border{border-color:#f3e5f5!important}.purple-50-border-top{border-top-color:#f3e5f5!important}.purple-50-border-right{border-right-color:#f3e5f5!important}.purple-50-border-bottom{border-bottom-color:#f3e5f5!important}.purple-50-border-left{border-left-color:#f3e5f5!important}.purple-100-bg{background-color:#e1bee7!important}.md-purple-100-bg{background-color:#e1bee7!important;color:rgba(0,0,0,.87)}.purple-100-fg{color:#e1bee7!important}.purple-100-border{border-color:#e1bee7!important}.purple-100-border-top{border-top-color:#e1bee7!important}.purple-100-border-right{border-right-color:#e1bee7!important}.purple-100-border-bottom{border-bottom-color:#e1bee7!important}.purple-100-border-left{border-left-color:#e1bee7!important}.purple-200-bg{background-color:#ce93d8!important}.md-purple-200-bg{background-color:#ce93d8!important;color:rgba(0,0,0,.87)}.purple-200-fg{color:#ce93d8!important}.purple-200-border{border-color:#ce93d8!important}.purple-200-border-top{border-top-color:#ce93d8!important}.purple-200-border-right{border-right-color:#ce93d8!important}.purple-200-border-bottom{border-bottom-color:#ce93d8!important}.purple-200-border-left{border-left-color:#ce93d8!important}.purple-300-bg{background-color:#ba68c8!important}.md-purple-300-bg{background-color:#ba68c8!important;color:#fff}.purple-300-fg{color:#ba68c8!important}.purple-300-border{border-color:#ba68c8!important}.purple-300-border-top{border-top-color:#ba68c8!important}.purple-300-border-right{border-right-color:#ba68c8!important}.purple-300-border-bottom{border-bottom-color:#ba68c8!important}.purple-300-border-left{border-left-color:#ba68c8!important}.purple-400-bg{background-color:#ab47bc!important}.md-purple-400-bg{background-color:#ab47bc!important;color:#fff}.purple-400-fg{color:#ab47bc!important}.purple-400-border{border-color:#ab47bc!important}.purple-400-border-top{border-top-color:#ab47bc!important}.purple-400-border-right{border-right-color:#ab47bc!important}.purple-400-border-bottom{border-bottom-color:#ab47bc!important}.purple-400-border-left{border-left-color:#ab47bc!important}.purple-500-bg{background-color:#9c27b0!important}.md-purple-500-bg{background-color:#9c27b0!important;color:rgba(255,255,255,.87)}.purple-500-fg{color:#9c27b0!important}.purple-500-border{border-color:#9c27b0!important}.purple-500-border-top{border-top-color:#9c27b0!important}.purple-500-border-right{border-right-color:#9c27b0!important}.purple-500-border-bottom{border-bottom-color:#9c27b0!important}.purple-500-border-left{border-left-color:#9c27b0!important}.md-purple-bg{background-color:#9c27b0!important;color:rgba(255,255,255,.87)}.purple-bg{background-color:#9c27b0!important}.purple-fg{color:#9c27b0!important}.purple-border{border-color:#9c27b0!important}.purple-border-top{border-top-color:#9c27b0!important}.purple-border-right{border-right-color:#9c27b0!important}.purple-border-bottom{border-bottom-color:#9c27b0!important}.purple-border-left{border-left-color:#9c27b0!important}.purple-600-bg{background-color:#8e24aa!important}.md-purple-600-bg{background-color:#8e24aa!important;color:rgba(255,255,255,.87)}.purple-600-fg{color:#8e24aa!important}.purple-600-border{border-color:#8e24aa!important}.purple-600-border-top{border-top-color:#8e24aa!important}.purple-600-border-right{border-right-color:#8e24aa!important}.purple-600-border-bottom{border-bottom-color:#8e24aa!important}.purple-600-border-left{border-left-color:#8e24aa!important}.purple-700-bg{background-color:#7b1fa2!important}.md-purple-700-bg{background-color:#7b1fa2!important;color:rgba(255,255,255,.87)}.purple-700-fg{color:#7b1fa2!important}.purple-700-border{border-color:#7b1fa2!important}.purple-700-border-top{border-top-color:#7b1fa2!important}.purple-700-border-right{border-right-color:#7b1fa2!important}.purple-700-border-bottom{border-bottom-color:#7b1fa2!important}.purple-700-border-left{border-left-color:#7b1fa2!important}.purple-800-bg{background-color:#6a1b9a!important}.md-purple-800-bg{background-color:#6a1b9a!important;color:rgba(255,255,255,.87)}.purple-800-fg{color:#6a1b9a!important}.purple-800-border{border-color:#6a1b9a!important}.purple-800-border-top{border-top-color:#6a1b9a!important}.purple-800-border-right{border-right-color:#6a1b9a!important}.purple-800-border-bottom{border-bottom-color:#6a1b9a!important}.purple-800-border-left{border-left-color:#6a1b9a!important}.purple-900-bg{background-color:#4a148c!important}.md-purple-900-bg{background-color:#4a148c!important;color:rgba(255,255,255,.87)}.purple-900-fg{color:#4a148c!important}.purple-900-border{border-color:#4a148c!important}.purple-900-border-top{border-top-color:#4a148c!important}.purple-900-border-right{border-right-color:#4a148c!important}.purple-900-border-bottom{border-bottom-color:#4a148c!important}.purple-900-border-left{border-left-color:#4a148c!important}.purple-A100-bg{background-color:#ea80fc!important}.md-purple-A100-bg{background-color:#ea80fc!important;color:rgba(0,0,0,.87)}.purple-A100-fg{color:#ea80fc!important}.purple-A100-border{border-color:#ea80fc!important}.purple-A100-border-top{border-top-color:#ea80fc!important}.purple-A100-border-right{border-right-color:#ea80fc!important}.purple-A100-border-bottom{border-bottom-color:#ea80fc!important}.purple-A100-border-left{border-left-color:#ea80fc!important}.purple-A200-bg{background-color:#e040fb!important}.md-purple-A200-bg{background-color:#e040fb!important;color:#fff}.purple-A200-fg{color:#e040fb!important}.purple-A200-border{border-color:#e040fb!important}.purple-A200-border-top{border-top-color:#e040fb!important}.purple-A200-border-right{border-right-color:#e040fb!important}.purple-A200-border-bottom{border-bottom-color:#e040fb!important}.purple-A200-border-left{border-left-color:#e040fb!important}.purple-A400-bg{background-color:#d500f9!important}.md-purple-A400-bg{background-color:#d500f9!important;color:#fff}.purple-A400-fg{color:#d500f9!important}.purple-A400-border{border-color:#d500f9!important}.purple-A400-border-top{border-top-color:#d500f9!important}.purple-A400-border-right{border-right-color:#d500f9!important}.purple-A400-border-bottom{border-bottom-color:#d500f9!important}.purple-A400-border-left{border-left-color:#d500f9!important}.purple-A700-bg{background-color:#a0f!important}.md-purple-A700-bg{background-color:#a0f!important;color:#fff}.purple-A700-fg{color:#a0f!important}.purple-A700-border{border-color:#a0f!important}.purple-A700-border-top{border-top-color:#a0f!important}.purple-A700-border-right{border-right-color:#a0f!important}.purple-A700-border-bottom{border-bottom-color:#a0f!important}.purple-A700-border-left{border-left-color:#a0f!important}.deep-purple-50-bg{background-color:#ede7f6!important}.md-deep-purple-50-bg{background-color:#ede7f6!important;color:rgba(0,0,0,.87)}.deep-purple-50-fg{color:#ede7f6!important}.deep-purple-50-border{border-color:#ede7f6!important}.deep-purple-50-border-top{border-top-color:#ede7f6!important}.deep-purple-50-border-right{border-right-color:#ede7f6!important}.deep-purple-50-border-bottom{border-bottom-color:#ede7f6!important}.deep-purple-50-border-left{border-left-color:#ede7f6!important}.deep-purple-100-bg{background-color:#d1c4e9!important}.md-deep-purple-100-bg{background-color:#d1c4e9!important;color:rgba(0,0,0,.87)}.deep-purple-100-fg{color:#d1c4e9!important}.deep-purple-100-border{border-color:#d1c4e9!important}.deep-purple-100-border-top{border-top-color:#d1c4e9!important}.deep-purple-100-border-right{border-right-color:#d1c4e9!important}.deep-purple-100-border-bottom{border-bottom-color:#d1c4e9!important}.deep-purple-100-border-left{border-left-color:#d1c4e9!important}.deep-purple-200-bg{background-color:#b39ddb!important}.md-deep-purple-200-bg{background-color:#b39ddb!important;color:rgba(0,0,0,.87)}.deep-purple-200-fg{color:#b39ddb!important}.deep-purple-200-border{border-color:#b39ddb!important}.deep-purple-200-border-top{border-top-color:#b39ddb!important}.deep-purple-200-border-right{border-right-color:#b39ddb!important}.deep-purple-200-border-bottom{border-bottom-color:#b39ddb!important}.deep-purple-200-border-left{border-left-color:#b39ddb!important}.deep-purple-300-bg{background-color:#9575cd!important}.md-deep-purple-300-bg{background-color:#9575cd!important;color:#fff}.deep-purple-300-fg{color:#9575cd!important}.deep-purple-300-border{border-color:#9575cd!important}.deep-purple-300-border-top{border-top-color:#9575cd!important}.deep-purple-300-border-right{border-right-color:#9575cd!important}.deep-purple-300-border-bottom{border-bottom-color:#9575cd!important}.deep-purple-300-border-left{border-left-color:#9575cd!important}.deep-purple-400-bg{background-color:#7e57c2!important}.md-deep-purple-400-bg{background-color:#7e57c2!important;color:#fff}.deep-purple-400-fg{color:#7e57c2!important}.deep-purple-400-border{border-color:#7e57c2!important}.deep-purple-400-border-top{border-top-color:#7e57c2!important}.deep-purple-400-border-right{border-right-color:#7e57c2!important}.deep-purple-400-border-bottom{border-bottom-color:#7e57c2!important}.deep-purple-400-border-left{border-left-color:#7e57c2!important}.deep-purple-500-bg{background-color:#673ab7!important}.md-deep-purple-500-bg{background-color:#673ab7!important;color:rgba(255,255,255,.87)}.deep-purple-500-fg{color:#673ab7!important}.deep-purple-500-border{border-color:#673ab7!important}.deep-purple-500-border-top{border-top-color:#673ab7!important}.deep-purple-500-border-right{border-right-color:#673ab7!important}.deep-purple-500-border-bottom{border-bottom-color:#673ab7!important}.deep-purple-500-border-left{border-left-color:#673ab7!important}.md-deep-purple-bg{background-color:#673ab7!important;color:rgba(255,255,255,.87)}.deep-purple-bg{background-color:#673ab7!important}.deep-purple-fg{color:#673ab7!important}.deep-purple-border{border-color:#673ab7!important}.deep-purple-border-top{border-top-color:#673ab7!important}.deep-purple-border-right{border-right-color:#673ab7!important}.deep-purple-border-bottom{border-bottom-color:#673ab7!important}.deep-purple-border-left{border-left-color:#673ab7!important}.deep-purple-600-bg{background-color:#5e35b1!important}.md-deep-purple-600-bg{background-color:#5e35b1!important;color:rgba(255,255,255,.87)}.deep-purple-600-fg{color:#5e35b1!important}.deep-purple-600-border{border-color:#5e35b1!important}.deep-purple-600-border-top{border-top-color:#5e35b1!important}.deep-purple-600-border-right{border-right-color:#5e35b1!important}.deep-purple-600-border-bottom{border-bottom-color:#5e35b1!important}.deep-purple-600-border-left{border-left-color:#5e35b1!important}.deep-purple-700-bg{background-color:#512da8!important}.md-deep-purple-700-bg{background-color:#512da8!important;color:rgba(255,255,255,.87)}.deep-purple-700-fg{color:#512da8!important}.deep-purple-700-border{border-color:#512da8!important}.deep-purple-700-border-top{border-top-color:#512da8!important}.deep-purple-700-border-right{border-right-color:#512da8!important}.deep-purple-700-border-bottom{border-bottom-color:#512da8!important}.deep-purple-700-border-left{border-left-color:#512da8!important}.deep-purple-800-bg{background-color:#4527a0!important}.md-deep-purple-800-bg{background-color:#4527a0!important;color:rgba(255,255,255,.87)}.deep-purple-800-fg{color:#4527a0!important}.deep-purple-800-border{border-color:#4527a0!important}.deep-purple-800-border-top{border-top-color:#4527a0!important}.deep-purple-800-border-right{border-right-color:#4527a0!important}.deep-purple-800-border-bottom{border-bottom-color:#4527a0!important}.deep-purple-800-border-left{border-left-color:#4527a0!important}.deep-purple-900-bg{background-color:#311b92!important}.md-deep-purple-900-bg{background-color:#311b92!important;color:rgba(255,255,255,.87)}.deep-purple-900-fg{color:#311b92!important}.deep-purple-900-border{border-color:#311b92!important}.deep-purple-900-border-top{border-top-color:#311b92!important}.deep-purple-900-border-right{border-right-color:#311b92!important}.deep-purple-900-border-bottom{border-bottom-color:#311b92!important}.deep-purple-900-border-left{border-left-color:#311b92!important}.deep-purple-A100-bg{background-color:#b388ff!important}.md-deep-purple-A100-bg{background-color:#b388ff!important;color:rgba(0,0,0,.87)}.deep-purple-A100-fg{color:#b388ff!important}.deep-purple-A100-border{border-color:#b388ff!important}.deep-purple-A100-border-top{border-top-color:#b388ff!important}.deep-purple-A100-border-right{border-right-color:#b388ff!important}.deep-purple-A100-border-bottom{border-bottom-color:#b388ff!important}.deep-purple-A100-border-left{border-left-color:#b388ff!important}.deep-purple-A200-bg{background-color:#7c4dff!important}.md-deep-purple-A200-bg{background-color:#7c4dff!important;color:#fff}.deep-purple-A200-fg{color:#7c4dff!important}.deep-purple-A200-border{border-color:#7c4dff!important}.deep-purple-A200-border-top{border-top-color:#7c4dff!important}.deep-purple-A200-border-right{border-right-color:#7c4dff!important}.deep-purple-A200-border-bottom{border-bottom-color:#7c4dff!important}.deep-purple-A200-border-left{border-left-color:#7c4dff!important}.deep-purple-A400-bg{background-color:#651fff!important}.md-deep-purple-A400-bg{background-color:#651fff!important;color:rgba(255,255,255,.87)}.deep-purple-A400-fg{color:#651fff!important}.deep-purple-A400-border{border-color:#651fff!important}.deep-purple-A400-border-top{border-top-color:#651fff!important}.deep-purple-A400-border-right{border-right-color:#651fff!important}.deep-purple-A400-border-bottom{border-bottom-color:#651fff!important}.deep-purple-A400-border-left{border-left-color:#651fff!important}.deep-purple-A700-bg{background-color:#6200ea!important}.md-deep-purple-A700-bg{background-color:#6200ea!important;color:rgba(255,255,255,.87)}.deep-purple-A700-fg{color:#6200ea!important}.deep-purple-A700-border{border-color:#6200ea!important}.deep-purple-A700-border-top{border-top-color:#6200ea!important}.deep-purple-A700-border-right{border-right-color:#6200ea!important}.deep-purple-A700-border-bottom{border-bottom-color:#6200ea!important}.deep-purple-A700-border-left{border-left-color:#6200ea!important}.indigo-50-bg{background-color:#e8eaf6!important}.md-indigo-50-bg{background-color:#e8eaf6!important;color:rgba(0,0,0,.87)}.indigo-50-fg{color:#e8eaf6!important}.indigo-50-border{border-color:#e8eaf6!important}.indigo-50-border-top{border-top-color:#e8eaf6!important}.indigo-50-border-right{border-right-color:#e8eaf6!important}.indigo-50-border-bottom{border-bottom-color:#e8eaf6!important}.indigo-50-border-left{border-left-color:#e8eaf6!important}.indigo-100-bg{background-color:#c5cae9!important}.md-indigo-100-bg{background-color:#c5cae9!important;color:rgba(0,0,0,.87)}.indigo-100-fg{color:#c5cae9!important}.indigo-100-border{border-color:#c5cae9!important}.indigo-100-border-top{border-top-color:#c5cae9!important}.indigo-100-border-right{border-right-color:#c5cae9!important}.indigo-100-border-bottom{border-bottom-color:#c5cae9!important}.indigo-100-border-left{border-left-color:#c5cae9!important}.indigo-200-bg{background-color:#9fa8da!important}.md-indigo-200-bg{background-color:#9fa8da!important;color:rgba(0,0,0,.87)}.indigo-200-fg{color:#9fa8da!important}.indigo-200-border{border-color:#9fa8da!important}.indigo-200-border-top{border-top-color:#9fa8da!important}.indigo-200-border-right{border-right-color:#9fa8da!important}.indigo-200-border-bottom{border-bottom-color:#9fa8da!important}.indigo-200-border-left{border-left-color:#9fa8da!important}.indigo-300-bg{background-color:#7986cb!important}.md-indigo-300-bg{background-color:#7986cb!important;color:#fff}.indigo-300-fg{color:#7986cb!important}.indigo-300-border{border-color:#7986cb!important}.indigo-300-border-top{border-top-color:#7986cb!important}.indigo-300-border-right{border-right-color:#7986cb!important}.indigo-300-border-bottom{border-bottom-color:#7986cb!important}.indigo-300-border-left{border-left-color:#7986cb!important}.indigo-400-bg{background-color:#5c6bc0!important}.md-indigo-400-bg{background-color:#5c6bc0!important;color:#fff}.indigo-400-fg{color:#5c6bc0!important}.indigo-400-border{border-color:#5c6bc0!important}.indigo-400-border-top{border-top-color:#5c6bc0!important}.indigo-400-border-right{border-right-color:#5c6bc0!important}.indigo-400-border-bottom{border-bottom-color:#5c6bc0!important}.indigo-400-border-left{border-left-color:#5c6bc0!important}.indigo-500-bg{background-color:#3f51b5!important}.md-indigo-500-bg{background-color:#3f51b5!important;color:rgba(255,255,255,.87)}.indigo-500-fg{color:#3f51b5!important}.indigo-500-border{border-color:#3f51b5!important}.indigo-500-border-top{border-top-color:#3f51b5!important}.indigo-500-border-right{border-right-color:#3f51b5!important}.indigo-500-border-bottom{border-bottom-color:#3f51b5!important}.indigo-500-border-left{border-left-color:#3f51b5!important}.md-indigo-bg{background-color:#3f51b5!important;color:rgba(255,255,255,.87)}.indigo-bg{background-color:#3f51b5!important}.indigo-fg{color:#3f51b5!important}.indigo-border{border-color:#3f51b5!important}.indigo-border-top{border-top-color:#3f51b5!important}.indigo-border-right{border-right-color:#3f51b5!important}.indigo-border-bottom{border-bottom-color:#3f51b5!important}.indigo-border-left{border-left-color:#3f51b5!important}.indigo-600-bg{background-color:#3949ab!important}.md-indigo-600-bg{background-color:#3949ab!important;color:rgba(255,255,255,.87)}.indigo-600-fg{color:#3949ab!important}.indigo-600-border{border-color:#3949ab!important}.indigo-600-border-top{border-top-color:#3949ab!important}.indigo-600-border-right{border-right-color:#3949ab!important}.indigo-600-border-bottom{border-bottom-color:#3949ab!important}.indigo-600-border-left{border-left-color:#3949ab!important}.indigo-700-bg{background-color:#303f9f!important}.md-indigo-700-bg{background-color:#303f9f!important;color:rgba(255,255,255,.87)}.indigo-700-fg{color:#303f9f!important}.indigo-700-border{border-color:#303f9f!important}.indigo-700-border-top{border-top-color:#303f9f!important}.indigo-700-border-right{border-right-color:#303f9f!important}.indigo-700-border-bottom{border-bottom-color:#303f9f!important}.indigo-700-border-left{border-left-color:#303f9f!important}.indigo-800-bg{background-color:#283593!important}.md-indigo-800-bg{background-color:#283593!important;color:rgba(255,255,255,.87)}.indigo-800-fg{color:#283593!important}.indigo-800-border{border-color:#283593!important}.indigo-800-border-top{border-top-color:#283593!important}.indigo-800-border-right{border-right-color:#283593!important}.indigo-800-border-bottom{border-bottom-color:#283593!important}.indigo-800-border-left{border-left-color:#283593!important}.indigo-900-bg{background-color:#1a237e!important}.md-indigo-900-bg{background-color:#1a237e!important;color:rgba(255,255,255,.87)}.indigo-900-fg{color:#1a237e!important}.indigo-900-border{border-color:#1a237e!important}.indigo-900-border-top{border-top-color:#1a237e!important}.indigo-900-border-right{border-right-color:#1a237e!important}.indigo-900-border-bottom{border-bottom-color:#1a237e!important}.indigo-900-border-left{border-left-color:#1a237e!important}.indigo-A100-bg{background-color:#8c9eff!important}.md-indigo-A100-bg{background-color:#8c9eff!important;color:rgba(0,0,0,.87)}.indigo-A100-fg{color:#8c9eff!important}.indigo-A100-border{border-color:#8c9eff!important}.indigo-A100-border-top{border-top-color:#8c9eff!important}.indigo-A100-border-right{border-right-color:#8c9eff!important}.indigo-A100-border-bottom{border-bottom-color:#8c9eff!important}.indigo-A100-border-left{border-left-color:#8c9eff!important}.indigo-A200-bg{background-color:#536dfe!important}.md-indigo-A200-bg{background-color:#536dfe!important;color:#fff}.indigo-A200-fg{color:#536dfe!important}.indigo-A200-border{border-color:#536dfe!important}.indigo-A200-border-top{border-top-color:#536dfe!important}.indigo-A200-border-right{border-right-color:#536dfe!important}.indigo-A200-border-bottom{border-bottom-color:#536dfe!important}.indigo-A200-border-left{border-left-color:#536dfe!important}.indigo-A400-bg{background-color:#3d5afe!important}.md-indigo-A400-bg{background-color:#3d5afe!important;color:#fff}.indigo-A400-fg{color:#3d5afe!important}.indigo-A400-border{border-color:#3d5afe!important}.indigo-A400-border-top{border-top-color:#3d5afe!important}.indigo-A400-border-right{border-right-color:#3d5afe!important}.indigo-A400-border-bottom{border-bottom-color:#3d5afe!important}.indigo-A400-border-left{border-left-color:#3d5afe!important}.indigo-A700-bg{background-color:#304ffe!important}.md-indigo-A700-bg{background-color:#304ffe!important;color:rgba(255,255,255,.87)}.indigo-A700-fg{color:#304ffe!important}.indigo-A700-border{border-color:#304ffe!important}.indigo-A700-border-top{border-top-color:#304ffe!important}.indigo-A700-border-right{border-right-color:#304ffe!important}.indigo-A700-border-bottom{border-bottom-color:#304ffe!important}.indigo-A700-border-left{border-left-color:#304ffe!important}.blue-50-bg{background-color:#e3f2fd!important}.md-blue-50-bg{background-color:#e3f2fd!important;color:rgba(0,0,0,.87)}.blue-50-fg{color:#e3f2fd!important}.blue-50-border{border-color:#e3f2fd!important}.blue-50-border-top{border-top-color:#e3f2fd!important}.blue-50-border-right{border-right-color:#e3f2fd!important}.blue-50-border-bottom{border-bottom-color:#e3f2fd!important}.blue-50-border-left{border-left-color:#e3f2fd!important}.blue-100-bg{background-color:#bbdefb!important}.md-blue-100-bg{background-color:#bbdefb!important;color:rgba(0,0,0,.87)}.blue-100-fg{color:#bbdefb!important}.blue-100-border{border-color:#bbdefb!important}.blue-100-border-top{border-top-color:#bbdefb!important}.blue-100-border-right{border-right-color:#bbdefb!important}.blue-100-border-bottom{border-bottom-color:#bbdefb!important}.blue-100-border-left{border-left-color:#bbdefb!important}.blue-200-bg{background-color:#90caf9!important}.md-blue-200-bg{background-color:#90caf9!important;color:rgba(0,0,0,.87)}.blue-200-fg{color:#90caf9!important}.blue-200-border{border-color:#90caf9!important}.blue-200-border-top{border-top-color:#90caf9!important}.blue-200-border-right{border-right-color:#90caf9!important}.blue-200-border-bottom{border-bottom-color:#90caf9!important}.blue-200-border-left{border-left-color:#90caf9!important}.blue-300-bg{background-color:#64b5f6!important}.md-blue-300-bg{background-color:#64b5f6!important;color:rgba(0,0,0,.87)}.blue-300-fg{color:#64b5f6!important}.blue-300-border{border-color:#64b5f6!important}.blue-300-border-top{border-top-color:#64b5f6!important}.blue-300-border-right{border-right-color:#64b5f6!important}.blue-300-border-bottom{border-bottom-color:#64b5f6!important}.blue-300-border-left{border-left-color:#64b5f6!important}.blue-400-bg{background-color:#42a5f5!important}.md-blue-400-bg{background-color:#42a5f5!important;color:rgba(0,0,0,.87)}.blue-400-fg{color:#42a5f5!important}.blue-400-border{border-color:#42a5f5!important}.blue-400-border-top{border-top-color:#42a5f5!important}.blue-400-border-right{border-right-color:#42a5f5!important}.blue-400-border-bottom{border-bottom-color:#42a5f5!important}.blue-400-border-left{border-left-color:#42a5f5!important}.blue-500-bg{background-color:#2196f3!important}.md-blue-500-bg{background-color:#2196f3!important;color:#fff}.blue-500-fg{color:#2196f3!important}.blue-500-border{border-color:#2196f3!important}.blue-500-border-top{border-top-color:#2196f3!important}.blue-500-border-right{border-right-color:#2196f3!important}.blue-500-border-bottom{border-bottom-color:#2196f3!important}.blue-500-border-left{border-left-color:#2196f3!important}.md-blue-bg{background-color:#2196f3!important;color:#fff}.blue-bg{background-color:#2196f3!important}.blue-fg{color:#2196f3!important}.blue-border{border-color:#2196f3!important}.blue-border-top{border-top-color:#2196f3!important}.blue-border-right{border-right-color:#2196f3!important}.blue-border-bottom{border-bottom-color:#2196f3!important}.blue-border-left{border-left-color:#2196f3!important}.blue-600-bg{background-color:#1e88e5!important}.md-blue-600-bg{background-color:#1e88e5!important;color:#fff}.blue-600-fg{color:#1e88e5!important}.blue-600-border{border-color:#1e88e5!important}.blue-600-border-top{border-top-color:#1e88e5!important}.blue-600-border-right{border-right-color:#1e88e5!important}.blue-600-border-bottom{border-bottom-color:#1e88e5!important}.blue-600-border-left{border-left-color:#1e88e5!important}.blue-700-bg{background-color:#1976d2!important}.md-blue-700-bg{background-color:#1976d2!important;color:#fff}.blue-700-fg{color:#1976d2!important}.blue-700-border{border-color:#1976d2!important}.blue-700-border-top{border-top-color:#1976d2!important}.blue-700-border-right{border-right-color:#1976d2!important}.blue-700-border-bottom{border-bottom-color:#1976d2!important}.blue-700-border-left{border-left-color:#1976d2!important}.blue-800-bg{background-color:#1565c0!important}.md-blue-800-bg{background-color:#1565c0!important;color:rgba(255,255,255,.87)}.blue-800-fg{color:#1565c0!important}.blue-800-border{border-color:#1565c0!important}.blue-800-border-top{border-top-color:#1565c0!important}.blue-800-border-right{border-right-color:#1565c0!important}.blue-800-border-bottom{border-bottom-color:#1565c0!important}.blue-800-border-left{border-left-color:#1565c0!important}.blue-900-bg{background-color:#0d47a1!important}.md-blue-900-bg{background-color:#0d47a1!important;color:rgba(255,255,255,.87)}.blue-900-fg{color:#0d47a1!important}.blue-900-border{border-color:#0d47a1!important}.blue-900-border-top{border-top-color:#0d47a1!important}.blue-900-border-right{border-right-color:#0d47a1!important}.blue-900-border-bottom{border-bottom-color:#0d47a1!important}.blue-900-border-left{border-left-color:#0d47a1!important}.blue-A100-bg{background-color:#82b1ff!important}.md-blue-A100-bg{background-color:#82b1ff!important;color:rgba(0,0,0,.87)}.blue-A100-fg{color:#82b1ff!important}.blue-A100-border{border-color:#82b1ff!important}.blue-A100-border-top{border-top-color:#82b1ff!important}.blue-A100-border-right{border-right-color:#82b1ff!important}.blue-A100-border-bottom{border-bottom-color:#82b1ff!important}.blue-A100-border-left{border-left-color:#82b1ff!important}.blue-A200-bg{background-color:#448aff!important}.md-blue-A200-bg{background-color:#448aff!important;color:#fff}.blue-A200-fg{color:#448aff!important}.blue-A200-border{border-color:#448aff!important}.blue-A200-border-top{border-top-color:#448aff!important}.blue-A200-border-right{border-right-color:#448aff!important}.blue-A200-border-bottom{border-bottom-color:#448aff!important}.blue-A200-border-left{border-left-color:#448aff!important}.blue-A400-bg{background-color:#2979ff!important}.md-blue-A400-bg{background-color:#2979ff!important;color:#fff}.blue-A400-fg{color:#2979ff!important}.blue-A400-border{border-color:#2979ff!important}.blue-A400-border-top{border-top-color:#2979ff!important}.blue-A400-border-right{border-right-color:#2979ff!important}.blue-A400-border-bottom{border-bottom-color:#2979ff!important}.blue-A400-border-left{border-left-color:#2979ff!important}.blue-A700-bg{background-color:#2962ff!important}.md-blue-A700-bg{background-color:#2962ff!important;color:#fff}.blue-A700-fg{color:#2962ff!important}.blue-A700-border{border-color:#2962ff!important}.blue-A700-border-top{border-top-color:#2962ff!important}.blue-A700-border-right{border-right-color:#2962ff!important}.blue-A700-border-bottom{border-bottom-color:#2962ff!important}.blue-A700-border-left{border-left-color:#2962ff!important}.light-blue-50-bg{background-color:#e1f5fe!important}.md-light-blue-50-bg{background-color:#e1f5fe!important;color:rgba(0,0,0,.87)}.light-blue-50-fg{color:#e1f5fe!important}.light-blue-50-border{border-color:#e1f5fe!important}.light-blue-50-border-top{border-top-color:#e1f5fe!important}.light-blue-50-border-right{border-right-color:#e1f5fe!important}.light-blue-50-border-bottom{border-bottom-color:#e1f5fe!important}.light-blue-50-border-left{border-left-color:#e1f5fe!important}.light-blue-100-bg{background-color:#b3e5fc!important}.md-light-blue-100-bg{background-color:#b3e5fc!important;color:rgba(0,0,0,.87)}.light-blue-100-fg{color:#b3e5fc!important}.light-blue-100-border{border-color:#b3e5fc!important}.light-blue-100-border-top{border-top-color:#b3e5fc!important}.light-blue-100-border-right{border-right-color:#b3e5fc!important}.light-blue-100-border-bottom{border-bottom-color:#b3e5fc!important}.light-blue-100-border-left{border-left-color:#b3e5fc!important}.light-blue-200-bg{background-color:#81d4fa!important}.md-light-blue-200-bg{background-color:#81d4fa!important;color:rgba(0,0,0,.87)}.light-blue-200-fg{color:#81d4fa!important}.light-blue-200-border{border-color:#81d4fa!important}.light-blue-200-border-top{border-top-color:#81d4fa!important}.light-blue-200-border-right{border-right-color:#81d4fa!important}.light-blue-200-border-bottom{border-bottom-color:#81d4fa!important}.light-blue-200-border-left{border-left-color:#81d4fa!important}.light-blue-300-bg{background-color:#4fc3f7!important}.md-light-blue-300-bg{background-color:#4fc3f7!important;color:rgba(0,0,0,.87)}.light-blue-300-fg{color:#4fc3f7!important}.light-blue-300-border{border-color:#4fc3f7!important}.light-blue-300-border-top{border-top-color:#4fc3f7!important}.light-blue-300-border-right{border-right-color:#4fc3f7!important}.light-blue-300-border-bottom{border-bottom-color:#4fc3f7!important}.light-blue-300-border-left{border-left-color:#4fc3f7!important}.light-blue-400-bg{background-color:#29b6f6!important}.md-light-blue-400-bg{background-color:#29b6f6!important;color:rgba(0,0,0,.87)}.light-blue-400-fg{color:#29b6f6!important}.light-blue-400-border{border-color:#29b6f6!important}.light-blue-400-border-top{border-top-color:#29b6f6!important}.light-blue-400-border-right{border-right-color:#29b6f6!important}.light-blue-400-border-bottom{border-bottom-color:#29b6f6!important}.light-blue-400-border-left{border-left-color:#29b6f6!important}.light-blue-500-bg{background-color:#03a9f4!important}.md-light-blue-500-bg{background-color:#03a9f4!important;color:rgba(0,0,0,.87)}.light-blue-500-fg{color:#03a9f4!important}.light-blue-500-border{border-color:#03a9f4!important}.light-blue-500-border-top{border-top-color:#03a9f4!important}.light-blue-500-border-right{border-right-color:#03a9f4!important}.light-blue-500-border-bottom{border-bottom-color:#03a9f4!important}.light-blue-500-border-left{border-left-color:#03a9f4!important}.md-light-blue-bg{background-color:#03a9f4!important;color:rgba(0,0,0,.87)}.light-blue-bg{background-color:#03a9f4!important}.light-blue-fg{color:#03a9f4!important}.light-blue-border{border-color:#03a9f4!important}.light-blue-border-top{border-top-color:#03a9f4!important}.light-blue-border-right{border-right-color:#03a9f4!important}.light-blue-border-bottom{border-bottom-color:#03a9f4!important}.light-blue-border-left{border-left-color:#03a9f4!important}.light-blue-600-bg{background-color:#039be5!important}.md-light-blue-600-bg{background-color:#039be5!important;color:#fff}.light-blue-600-fg{color:#039be5!important}.light-blue-600-border{border-color:#039be5!important}.light-blue-600-border-top{border-top-color:#039be5!important}.light-blue-600-border-right{border-right-color:#039be5!important}.light-blue-600-border-bottom{border-bottom-color:#039be5!important}.light-blue-600-border-left{border-left-color:#039be5!important}.light-blue-700-bg{background-color:#0288d1!important}.md-light-blue-700-bg{background-color:#0288d1!important;color:#fff}.light-blue-700-fg{color:#0288d1!important}.light-blue-700-border{border-color:#0288d1!important}.light-blue-700-border-top{border-top-color:#0288d1!important}.light-blue-700-border-right{border-right-color:#0288d1!important}.light-blue-700-border-bottom{border-bottom-color:#0288d1!important}.light-blue-700-border-left{border-left-color:#0288d1!important}.light-blue-800-bg{background-color:#0277bd!important}.md-light-blue-800-bg{background-color:#0277bd!important;color:#fff}.light-blue-800-fg{color:#0277bd!important}.light-blue-800-border{border-color:#0277bd!important}.light-blue-800-border-top{border-top-color:#0277bd!important}.light-blue-800-border-right{border-right-color:#0277bd!important}.light-blue-800-border-bottom{border-bottom-color:#0277bd!important}.light-blue-800-border-left{border-left-color:#0277bd!important}.light-blue-900-bg{background-color:#01579b!important}.md-light-blue-900-bg{background-color:#01579b!important;color:#fff}.light-blue-900-fg{color:#01579b!important}.light-blue-900-border{border-color:#01579b!important}.light-blue-900-border-top{border-top-color:#01579b!important}.light-blue-900-border-right{border-right-color:#01579b!important}.light-blue-900-border-bottom{border-bottom-color:#01579b!important}.light-blue-900-border-left{border-left-color:#01579b!important}.light-blue-A100-bg{background-color:#80d8ff!important}.md-light-blue-A100-bg{background-color:#80d8ff!important;color:rgba(0,0,0,.87)}.light-blue-A100-fg{color:#80d8ff!important}.light-blue-A100-border{border-color:#80d8ff!important}.light-blue-A100-border-top{border-top-color:#80d8ff!important}.light-blue-A100-border-right{border-right-color:#80d8ff!important}.light-blue-A100-border-bottom{border-bottom-color:#80d8ff!important}.light-blue-A100-border-left{border-left-color:#80d8ff!important}.light-blue-A200-bg{background-color:#40c4ff!important}.md-light-blue-A200-bg{background-color:#40c4ff!important;color:rgba(0,0,0,.87)}.light-blue-A200-fg{color:#40c4ff!important}.light-blue-A200-border{border-color:#40c4ff!important}.light-blue-A200-border-top{border-top-color:#40c4ff!important}.light-blue-A200-border-right{border-right-color:#40c4ff!important}.light-blue-A200-border-bottom{border-bottom-color:#40c4ff!important}.light-blue-A200-border-left{border-left-color:#40c4ff!important}.light-blue-A400-bg{background-color:#00b0ff!important}.md-light-blue-A400-bg{background-color:#00b0ff!important;color:rgba(0,0,0,.87)}.light-blue-A400-fg{color:#00b0ff!important}.light-blue-A400-border{border-color:#00b0ff!important}.light-blue-A400-border-top{border-top-color:#00b0ff!important}.light-blue-A400-border-right{border-right-color:#00b0ff!important}.light-blue-A400-border-bottom{border-bottom-color:#00b0ff!important}.light-blue-A400-border-left{border-left-color:#00b0ff!important}.light-blue-A700-bg{background-color:#0091ea!important}.md-light-blue-A700-bg{background-color:#0091ea!important;color:#fff}.light-blue-A700-fg{color:#0091ea!important}.light-blue-A700-border{border-color:#0091ea!important}.light-blue-A700-border-top{border-top-color:#0091ea!important}.light-blue-A700-border-right{border-right-color:#0091ea!important}.light-blue-A700-border-bottom{border-bottom-color:#0091ea!important}.light-blue-A700-border-left{border-left-color:#0091ea!important}.cyan-50-bg{background-color:#e0f7fa!important}.md-cyan-50-bg{background-color:#e0f7fa!important;color:rgba(0,0,0,.87)}.cyan-50-fg{color:#e0f7fa!important}.cyan-50-border{border-color:#e0f7fa!important}.cyan-50-border-top{border-top-color:#e0f7fa!important}.cyan-50-border-right{border-right-color:#e0f7fa!important}.cyan-50-border-bottom{border-bottom-color:#e0f7fa!important}.cyan-50-border-left{border-left-color:#e0f7fa!important}.cyan-100-bg{background-color:#b2ebf2!important}.md-cyan-100-bg{background-color:#b2ebf2!important;color:rgba(0,0,0,.87)}.cyan-100-fg{color:#b2ebf2!important}.cyan-100-border{border-color:#b2ebf2!important}.cyan-100-border-top{border-top-color:#b2ebf2!important}.cyan-100-border-right{border-right-color:#b2ebf2!important}.cyan-100-border-bottom{border-bottom-color:#b2ebf2!important}.cyan-100-border-left{border-left-color:#b2ebf2!important}.cyan-200-bg{background-color:#80deea!important}.md-cyan-200-bg{background-color:#80deea!important;color:rgba(0,0,0,.87)}.cyan-200-fg{color:#80deea!important}.cyan-200-border{border-color:#80deea!important}.cyan-200-border-top{border-top-color:#80deea!important}.cyan-200-border-right{border-right-color:#80deea!important}.cyan-200-border-bottom{border-bottom-color:#80deea!important}.cyan-200-border-left{border-left-color:#80deea!important}.cyan-300-bg{background-color:#4dd0e1!important}.md-cyan-300-bg{background-color:#4dd0e1!important;color:rgba(0,0,0,.87)}.cyan-300-fg{color:#4dd0e1!important}.cyan-300-border{border-color:#4dd0e1!important}.cyan-300-border-top{border-top-color:#4dd0e1!important}.cyan-300-border-right{border-right-color:#4dd0e1!important}.cyan-300-border-bottom{border-bottom-color:#4dd0e1!important}.cyan-300-border-left{border-left-color:#4dd0e1!important}.cyan-400-bg{background-color:#26c6da!important}.md-cyan-400-bg{background-color:#26c6da!important;color:rgba(0,0,0,.87)}.cyan-400-fg{color:#26c6da!important}.cyan-400-border{border-color:#26c6da!important}.cyan-400-border-top{border-top-color:#26c6da!important}.cyan-400-border-right{border-right-color:#26c6da!important}.cyan-400-border-bottom{border-bottom-color:#26c6da!important}.cyan-400-border-left{border-left-color:#26c6da!important}.cyan-500-bg{background-color:#00bcd4!important}.md-cyan-500-bg{background-color:#00bcd4!important;color:rgba(0,0,0,.87)}.cyan-500-fg{color:#00bcd4!important}.cyan-500-border{border-color:#00bcd4!important}.cyan-500-border-top{border-top-color:#00bcd4!important}.cyan-500-border-right{border-right-color:#00bcd4!important}.cyan-500-border-bottom{border-bottom-color:#00bcd4!important}.cyan-500-border-left{border-left-color:#00bcd4!important}.md-cyan-bg{background-color:#00bcd4!important;color:rgba(0,0,0,.87)}.cyan-bg{background-color:#00bcd4!important}.cyan-fg{color:#00bcd4!important}.cyan-border{border-color:#00bcd4!important}.cyan-border-top{border-top-color:#00bcd4!important}.cyan-border-right{border-right-color:#00bcd4!important}.cyan-border-bottom{border-bottom-color:#00bcd4!important}.cyan-border-left{border-left-color:#00bcd4!important}.cyan-600-bg{background-color:#00acc1!important}.md-cyan-600-bg{background-color:#00acc1!important;color:rgba(0,0,0,.87)}.cyan-600-fg{color:#00acc1!important}.cyan-600-border{border-color:#00acc1!important}.cyan-600-border-top{border-top-color:#00acc1!important}.cyan-600-border-right{border-right-color:#00acc1!important}.cyan-600-border-bottom{border-bottom-color:#00acc1!important}.cyan-600-border-left{border-left-color:#00acc1!important}.cyan-700-bg{background-color:#0097a7!important}.md-cyan-700-bg{background-color:#0097a7!important;color:#fff}.cyan-700-fg{color:#0097a7!important}.cyan-700-border{border-color:#0097a7!important}.cyan-700-border-top{border-top-color:#0097a7!important}.cyan-700-border-right{border-right-color:#0097a7!important}.cyan-700-border-bottom{border-bottom-color:#0097a7!important}.cyan-700-border-left{border-left-color:#0097a7!important}.cyan-800-bg{background-color:#00838f!important}.md-cyan-800-bg{background-color:#00838f!important;color:#fff}.cyan-800-fg{color:#00838f!important}.cyan-800-border{border-color:#00838f!important}.cyan-800-border-top{border-top-color:#00838f!important}.cyan-800-border-right{border-right-color:#00838f!important}.cyan-800-border-bottom{border-bottom-color:#00838f!important}.cyan-800-border-left{border-left-color:#00838f!important}.cyan-900-bg{background-color:#006064!important}.md-cyan-900-bg{background-color:#006064!important;color:#fff}.cyan-900-fg{color:#006064!important}.cyan-900-border{border-color:#006064!important}.cyan-900-border-top{border-top-color:#006064!important}.cyan-900-border-right{border-right-color:#006064!important}.cyan-900-border-bottom{border-bottom-color:#006064!important}.cyan-900-border-left{border-left-color:#006064!important}.cyan-A100-bg{background-color:#84ffff!important}.md-cyan-A100-bg{background-color:#84ffff!important;color:rgba(0,0,0,.87)}.cyan-A100-fg{color:#84ffff!important}.cyan-A100-border{border-color:#84ffff!important}.cyan-A100-border-top{border-top-color:#84ffff!important}.cyan-A100-border-right{border-right-color:#84ffff!important}.cyan-A100-border-bottom{border-bottom-color:#84ffff!important}.cyan-A100-border-left{border-left-color:#84ffff!important}.cyan-A200-bg{background-color:#18ffff!important}.md-cyan-A200-bg{background-color:#18ffff!important;color:rgba(0,0,0,.87)}.cyan-A200-fg{color:#18ffff!important}.cyan-A200-border{border-color:#18ffff!important}.cyan-A200-border-top{border-top-color:#18ffff!important}.cyan-A200-border-right{border-right-color:#18ffff!important}.cyan-A200-border-bottom{border-bottom-color:#18ffff!important}.cyan-A200-border-left{border-left-color:#18ffff!important}.cyan-A400-bg{background-color:#00e5ff!important}.md-cyan-A400-bg{background-color:#00e5ff!important;color:rgba(0,0,0,.87)}.cyan-A400-fg{color:#00e5ff!important}.cyan-A400-border{border-color:#00e5ff!important}.cyan-A400-border-top{border-top-color:#00e5ff!important}.cyan-A400-border-right{border-right-color:#00e5ff!important}.cyan-A400-border-bottom{border-bottom-color:#00e5ff!important}.cyan-A400-border-left{border-left-color:#00e5ff!important}.cyan-A700-bg{background-color:#00b8d4!important}.md-cyan-A700-bg{background-color:#00b8d4!important;color:rgba(0,0,0,.87)}.cyan-A700-fg{color:#00b8d4!important}.cyan-A700-border{border-color:#00b8d4!important}.cyan-A700-border-top{border-top-color:#00b8d4!important}.cyan-A700-border-right{border-right-color:#00b8d4!important}.cyan-A700-border-bottom{border-bottom-color:#00b8d4!important}.cyan-A700-border-left{border-left-color:#00b8d4!important}.teal-50-bg{background-color:#e0f2f1!important}.md-teal-50-bg{background-color:#e0f2f1!important;color:rgba(0,0,0,.87)}.teal-50-fg{color:#e0f2f1!important}.teal-50-border{border-color:#e0f2f1!important}.teal-50-border-top{border-top-color:#e0f2f1!important}.teal-50-border-right{border-right-color:#e0f2f1!important}.teal-50-border-bottom{border-bottom-color:#e0f2f1!important}.teal-50-border-left{border-left-color:#e0f2f1!important}.teal-100-bg{background-color:#b2dfdb!important}.md-teal-100-bg{background-color:#b2dfdb!important;color:rgba(0,0,0,.87)}.teal-100-fg{color:#b2dfdb!important}.teal-100-border{border-color:#b2dfdb!important}.teal-100-border-top{border-top-color:#b2dfdb!important}.teal-100-border-right{border-right-color:#b2dfdb!important}.teal-100-border-bottom{border-bottom-color:#b2dfdb!important}.teal-100-border-left{border-left-color:#b2dfdb!important}.teal-200-bg{background-color:#80cbc4!important}.md-teal-200-bg{background-color:#80cbc4!important;color:rgba(0,0,0,.87)}.teal-200-fg{color:#80cbc4!important}.teal-200-border{border-color:#80cbc4!important}.teal-200-border-top{border-top-color:#80cbc4!important}.teal-200-border-right{border-right-color:#80cbc4!important}.teal-200-border-bottom{border-bottom-color:#80cbc4!important}.teal-200-border-left{border-left-color:#80cbc4!important}.teal-300-bg{background-color:#4db6ac!important}.md-teal-300-bg{background-color:#4db6ac!important;color:rgba(0,0,0,.87)}.teal-300-fg{color:#4db6ac!important}.teal-300-border{border-color:#4db6ac!important}.teal-300-border-top{border-top-color:#4db6ac!important}.teal-300-border-right{border-right-color:#4db6ac!important}.teal-300-border-bottom{border-bottom-color:#4db6ac!important}.teal-300-border-left{border-left-color:#4db6ac!important}.teal-400-bg{background-color:#26a69a!important}.md-teal-400-bg{background-color:#26a69a!important;color:rgba(0,0,0,.87)}.teal-400-fg{color:#26a69a!important}.teal-400-border{border-color:#26a69a!important}.teal-400-border-top{border-top-color:#26a69a!important}.teal-400-border-right{border-right-color:#26a69a!important}.teal-400-border-bottom{border-bottom-color:#26a69a!important}.teal-400-border-left{border-left-color:#26a69a!important}.teal-500-bg{background-color:#009688!important}.md-teal-500-bg{background-color:#009688!important;color:#fff}.teal-500-fg{color:#009688!important}.teal-500-border{border-color:#009688!important}.teal-500-border-top{border-top-color:#009688!important}.teal-500-border-right{border-right-color:#009688!important}.teal-500-border-bottom{border-bottom-color:#009688!important}.teal-500-border-left{border-left-color:#009688!important}.md-teal-bg{background-color:#009688!important;color:#fff}.teal-bg{background-color:#009688!important}.teal-fg{color:#009688!important}.teal-border{border-color:#009688!important}.teal-border-top{border-top-color:#009688!important}.teal-border-right{border-right-color:#009688!important}.teal-border-bottom{border-bottom-color:#009688!important}.teal-border-left{border-left-color:#009688!important}.teal-600-bg{background-color:#00897b!important}.md-teal-600-bg{background-color:#00897b!important;color:#fff}.teal-600-fg{color:#00897b!important}.teal-600-border{border-color:#00897b!important}.teal-600-border-top{border-top-color:#00897b!important}.teal-600-border-right{border-right-color:#00897b!important}.teal-600-border-bottom{border-bottom-color:#00897b!important}.teal-600-border-left{border-left-color:#00897b!important}.teal-700-bg{background-color:#00796b!important}.md-teal-700-bg{background-color:#00796b!important;color:#fff}.teal-700-fg{color:#00796b!important}.teal-700-border{border-color:#00796b!important}.teal-700-border-top{border-top-color:#00796b!important}.teal-700-border-right{border-right-color:#00796b!important}.teal-700-border-bottom{border-bottom-color:#00796b!important}.teal-700-border-left{border-left-color:#00796b!important}.teal-800-bg{background-color:#00695c!important}.md-teal-800-bg{background-color:#00695c!important;color:rgba(255,255,255,.87)}.teal-800-fg{color:#00695c!important}.teal-800-border{border-color:#00695c!important}.teal-800-border-top{border-top-color:#00695c!important}.teal-800-border-right{border-right-color:#00695c!important}.teal-800-border-bottom{border-bottom-color:#00695c!important}.teal-800-border-left{border-left-color:#00695c!important}.teal-900-bg{background-color:#004d40!important}.md-teal-900-bg{background-color:#004d40!important;color:rgba(255,255,255,.87)}.teal-900-fg{color:#004d40!important}.teal-900-border{border-color:#004d40!important}.teal-900-border-top{border-top-color:#004d40!important}.teal-900-border-right{border-right-color:#004d40!important}.teal-900-border-bottom{border-bottom-color:#004d40!important}.teal-900-border-left{border-left-color:#004d40!important}.teal-A100-bg{background-color:#a7ffeb!important}.md-teal-A100-bg{background-color:#a7ffeb!important;color:rgba(0,0,0,.87)}.teal-A100-fg{color:#a7ffeb!important}.teal-A100-border{border-color:#a7ffeb!important}.teal-A100-border-top{border-top-color:#a7ffeb!important}.teal-A100-border-right{border-right-color:#a7ffeb!important}.teal-A100-border-bottom{border-bottom-color:#a7ffeb!important}.teal-A100-border-left{border-left-color:#a7ffeb!important}.teal-A200-bg{background-color:#64ffda!important}.md-teal-A200-bg{background-color:#64ffda!important;color:rgba(0,0,0,.87)}.teal-A200-fg{color:#64ffda!important}.teal-A200-border{border-color:#64ffda!important}.teal-A200-border-top{border-top-color:#64ffda!important}.teal-A200-border-right{border-right-color:#64ffda!important}.teal-A200-border-bottom{border-bottom-color:#64ffda!important}.teal-A200-border-left{border-left-color:#64ffda!important}.teal-A400-bg{background-color:#1de9b6!important}.md-teal-A400-bg{background-color:#1de9b6!important;color:rgba(0,0,0,.87)}.teal-A400-fg{color:#1de9b6!important}.teal-A400-border{border-color:#1de9b6!important}.teal-A400-border-top{border-top-color:#1de9b6!important}.teal-A400-border-right{border-right-color:#1de9b6!important}.teal-A400-border-bottom{border-bottom-color:#1de9b6!important}.teal-A400-border-left{border-left-color:#1de9b6!important}.teal-A700-bg{background-color:#00bfa5!important}.md-teal-A700-bg{background-color:#00bfa5!important;color:rgba(0,0,0,.87)}.teal-A700-fg{color:#00bfa5!important}.teal-A700-border{border-color:#00bfa5!important}.teal-A700-border-top{border-top-color:#00bfa5!important}.teal-A700-border-right{border-right-color:#00bfa5!important}.teal-A700-border-bottom{border-bottom-color:#00bfa5!important}.teal-A700-border-left{border-left-color:#00bfa5!important}.green-50-bg{background-color:#e8f5e9!important}.md-green-50-bg{background-color:#e8f5e9!important;color:rgba(0,0,0,.87)}.green-50-fg{color:#e8f5e9!important}.green-50-border{border-color:#e8f5e9!important}.green-50-border-top{border-top-color:#e8f5e9!important}.green-50-border-right{border-right-color:#e8f5e9!important}.green-50-border-bottom{border-bottom-color:#e8f5e9!important}.green-50-border-left{border-left-color:#e8f5e9!important}.green-100-bg{background-color:#c8e6c9!important}.md-green-100-bg{background-color:#c8e6c9!important;color:rgba(0,0,0,.87)}.green-100-fg{color:#c8e6c9!important}.green-100-border{border-color:#c8e6c9!important}.green-100-border-top{border-top-color:#c8e6c9!important}.green-100-border-right{border-right-color:#c8e6c9!important}.green-100-border-bottom{border-bottom-color:#c8e6c9!important}.green-100-border-left{border-left-color:#c8e6c9!important}.green-200-bg{background-color:#a5d6a7!important}.md-green-200-bg{background-color:#a5d6a7!important;color:rgba(0,0,0,.87)}.green-200-fg{color:#a5d6a7!important}.green-200-border{border-color:#a5d6a7!important}.green-200-border-top{border-top-color:#a5d6a7!important}.green-200-border-right{border-right-color:#a5d6a7!important}.green-200-border-bottom{border-bottom-color:#a5d6a7!important}.green-200-border-left{border-left-color:#a5d6a7!important}.green-300-bg{background-color:#81c784!important}.md-green-300-bg{background-color:#81c784!important;color:rgba(0,0,0,.87)}.green-300-fg{color:#81c784!important}.green-300-border{border-color:#81c784!important}.green-300-border-top{border-top-color:#81c784!important}.green-300-border-right{border-right-color:#81c784!important}.green-300-border-bottom{border-bottom-color:#81c784!important}.green-300-border-left{border-left-color:#81c784!important}.green-400-bg{background-color:#66bb6a!important}.md-green-400-bg{background-color:#66bb6a!important;color:rgba(0,0,0,.87)}.green-400-fg{color:#66bb6a!important}.green-400-border{border-color:#66bb6a!important}.green-400-border-top{border-top-color:#66bb6a!important}.green-400-border-right{border-right-color:#66bb6a!important}.green-400-border-bottom{border-bottom-color:#66bb6a!important}.green-400-border-left{border-left-color:#66bb6a!important}.green-500-bg{background-color:#4caf50!important}.md-green-500-bg{background-color:#4caf50!important;color:rgba(0,0,0,.87)}.green-500-fg{color:#4caf50!important}.green-500-border{border-color:#4caf50!important}.green-500-border-top{border-top-color:#4caf50!important}.green-500-border-right{border-right-color:#4caf50!important}.green-500-border-bottom{border-bottom-color:#4caf50!important}.green-500-border-left{border-left-color:#4caf50!important}.md-green-bg{background-color:#4caf50!important;color:rgba(0,0,0,.87)}.green-bg{background-color:#4caf50!important}.green-fg{color:#4caf50!important}.green-border{border-color:#4caf50!important}.green-border-top{border-top-color:#4caf50!important}.green-border-right{border-right-color:#4caf50!important}.green-border-bottom{border-bottom-color:#4caf50!important}.green-border-left{border-left-color:#4caf50!important}.green-600-bg{background-color:#43a047!important}.md-green-600-bg{background-color:#43a047!important;color:#fff}.green-600-fg{color:#43a047!important}.green-600-border{border-color:#43a047!important}.green-600-border-top{border-top-color:#43a047!important}.green-600-border-right{border-right-color:#43a047!important}.green-600-border-bottom{border-bottom-color:#43a047!important}.green-600-border-left{border-left-color:#43a047!important}.green-700-bg{background-color:#388e3c!important}.md-green-700-bg{background-color:#388e3c!important;color:#fff}.green-700-fg{color:#388e3c!important}.green-700-border{border-color:#388e3c!important}.green-700-border-top{border-top-color:#388e3c!important}.green-700-border-right{border-right-color:#388e3c!important}.green-700-border-bottom{border-bottom-color:#388e3c!important}.green-700-border-left{border-left-color:#388e3c!important}.green-800-bg{background-color:#2e7d32!important}.md-green-800-bg{background-color:#2e7d32!important;color:rgba(255,255,255,.87)}.green-800-fg{color:#2e7d32!important}.green-800-border{border-color:#2e7d32!important}.green-800-border-top{border-top-color:#2e7d32!important}.green-800-border-right{border-right-color:#2e7d32!important}.green-800-border-bottom{border-bottom-color:#2e7d32!important}.green-800-border-left{border-left-color:#2e7d32!important}.green-900-bg{background-color:#1b5e20!important}.md-green-900-bg{background-color:#1b5e20!important;color:rgba(255,255,255,.87)}.green-900-fg{color:#1b5e20!important}.green-900-border{border-color:#1b5e20!important}.green-900-border-top{border-top-color:#1b5e20!important}.green-900-border-right{border-right-color:#1b5e20!important}.green-900-border-bottom{border-bottom-color:#1b5e20!important}.green-900-border-left{border-left-color:#1b5e20!important}.green-A100-bg{background-color:#b9f6ca!important}.md-green-A100-bg{background-color:#b9f6ca!important;color:rgba(0,0,0,.87)}.green-A100-fg{color:#b9f6ca!important}.green-A100-border{border-color:#b9f6ca!important}.green-A100-border-top{border-top-color:#b9f6ca!important}.green-A100-border-right{border-right-color:#b9f6ca!important}.green-A100-border-bottom{border-bottom-color:#b9f6ca!important}.green-A100-border-left{border-left-color:#b9f6ca!important}.green-A200-bg{background-color:#69f0ae!important}.md-green-A200-bg{background-color:#69f0ae!important;color:rgba(0,0,0,.87)}.green-A200-fg{color:#69f0ae!important}.green-A200-border{border-color:#69f0ae!important}.green-A200-border-top{border-top-color:#69f0ae!important}.green-A200-border-right{border-right-color:#69f0ae!important}.green-A200-border-bottom{border-bottom-color:#69f0ae!important}.green-A200-border-left{border-left-color:#69f0ae!important}.green-A400-bg{background-color:#00e676!important}.md-green-A400-bg{background-color:#00e676!important;color:rgba(0,0,0,.87)}.green-A400-fg{color:#00e676!important}.green-A400-border{border-color:#00e676!important}.green-A400-border-top{border-top-color:#00e676!important}.green-A400-border-right{border-right-color:#00e676!important}.green-A400-border-bottom{border-bottom-color:#00e676!important}.green-A400-border-left{border-left-color:#00e676!important}.green-A700-bg{background-color:#00c853!important}.md-green-A700-bg{background-color:#00c853!important;color:rgba(0,0,0,.87)}.green-A700-fg{color:#00c853!important}.green-A700-border{border-color:#00c853!important}.green-A700-border-top{border-top-color:#00c853!important}.green-A700-border-right{border-right-color:#00c853!important}.green-A700-border-bottom{border-bottom-color:#00c853!important}.green-A700-border-left{border-left-color:#00c853!important}.light-green-50-bg{background-color:#f1f8e9!important}.md-light-green-50-bg{background-color:#f1f8e9!important;color:rgba(0,0,0,.87)}.light-green-50-fg{color:#f1f8e9!important}.light-green-50-border{border-color:#f1f8e9!important}.light-green-50-border-top{border-top-color:#f1f8e9!important}.light-green-50-border-right{border-right-color:#f1f8e9!important}.light-green-50-border-bottom{border-bottom-color:#f1f8e9!important}.light-green-50-border-left{border-left-color:#f1f8e9!important}.light-green-100-bg{background-color:#dcedc8!important}.md-light-green-100-bg{background-color:#dcedc8!important;color:rgba(0,0,0,.87)}.light-green-100-fg{color:#dcedc8!important}.light-green-100-border{border-color:#dcedc8!important}.light-green-100-border-top{border-top-color:#dcedc8!important}.light-green-100-border-right{border-right-color:#dcedc8!important}.light-green-100-border-bottom{border-bottom-color:#dcedc8!important}.light-green-100-border-left{border-left-color:#dcedc8!important}.light-green-200-bg{background-color:#c5e1a5!important}.md-light-green-200-bg{background-color:#c5e1a5!important;color:rgba(0,0,0,.87)}.light-green-200-fg{color:#c5e1a5!important}.light-green-200-border{border-color:#c5e1a5!important}.light-green-200-border-top{border-top-color:#c5e1a5!important}.light-green-200-border-right{border-right-color:#c5e1a5!important}.light-green-200-border-bottom{border-bottom-color:#c5e1a5!important}.light-green-200-border-left{border-left-color:#c5e1a5!important}.light-green-300-bg{background-color:#aed581!important}.md-light-green-300-bg{background-color:#aed581!important;color:rgba(0,0,0,.87)}.light-green-300-fg{color:#aed581!important}.light-green-300-border{border-color:#aed581!important}.light-green-300-border-top{border-top-color:#aed581!important}.light-green-300-border-right{border-right-color:#aed581!important}.light-green-300-border-bottom{border-bottom-color:#aed581!important}.light-green-300-border-left{border-left-color:#aed581!important}.light-green-400-bg{background-color:#9ccc65!important}.md-light-green-400-bg{background-color:#9ccc65!important;color:rgba(0,0,0,.87)}.light-green-400-fg{color:#9ccc65!important}.light-green-400-border{border-color:#9ccc65!important}.light-green-400-border-top{border-top-color:#9ccc65!important}.light-green-400-border-right{border-right-color:#9ccc65!important}.light-green-400-border-bottom{border-bottom-color:#9ccc65!important}.light-green-400-border-left{border-left-color:#9ccc65!important}.light-green-500-bg{background-color:#8bc34a!important}.md-light-green-500-bg{background-color:#8bc34a!important;color:rgba(0,0,0,.87)}.light-green-500-fg{color:#8bc34a!important}.light-green-500-border{border-color:#8bc34a!important}.light-green-500-border-top{border-top-color:#8bc34a!important}.light-green-500-border-right{border-right-color:#8bc34a!important}.light-green-500-border-bottom{border-bottom-color:#8bc34a!important}.light-green-500-border-left{border-left-color:#8bc34a!important}.md-light-green-bg{background-color:#8bc34a!important;color:rgba(0,0,0,.87)}.light-green-bg{background-color:#8bc34a!important}.light-green-fg{color:#8bc34a!important}.light-green-border{border-color:#8bc34a!important}.light-green-border-top{border-top-color:#8bc34a!important}.light-green-border-right{border-right-color:#8bc34a!important}.light-green-border-bottom{border-bottom-color:#8bc34a!important}.light-green-border-left{border-left-color:#8bc34a!important}.light-green-600-bg{background-color:#7cb342!important}.md-light-green-600-bg{background-color:#7cb342!important;color:rgba(0,0,0,.87)}.light-green-600-fg{color:#7cb342!important}.light-green-600-border{border-color:#7cb342!important}.light-green-600-border-top{border-top-color:#7cb342!important}.light-green-600-border-right{border-right-color:#7cb342!important}.light-green-600-border-bottom{border-bottom-color:#7cb342!important}.light-green-600-border-left{border-left-color:#7cb342!important}.light-green-700-bg{background-color:#689f38!important}.md-light-green-700-bg{background-color:#689f38!important;color:#fff}.light-green-700-fg{color:#689f38!important}.light-green-700-border{border-color:#689f38!important}.light-green-700-border-top{border-top-color:#689f38!important}.light-green-700-border-right{border-right-color:#689f38!important}.light-green-700-border-bottom{border-bottom-color:#689f38!important}.light-green-700-border-left{border-left-color:#689f38!important}.light-green-800-bg{background-color:#558b2f!important}.md-light-green-800-bg{background-color:#558b2f!important;color:#fff}.light-green-800-fg{color:#558b2f!important}.light-green-800-border{border-color:#558b2f!important}.light-green-800-border-top{border-top-color:#558b2f!important}.light-green-800-border-right{border-right-color:#558b2f!important}.light-green-800-border-bottom{border-bottom-color:#558b2f!important}.light-green-800-border-left{border-left-color:#558b2f!important}.light-green-900-bg{background-color:#33691e!important}.md-light-green-900-bg{background-color:#33691e!important;color:#fff}.light-green-900-fg{color:#33691e!important}.light-green-900-border{border-color:#33691e!important}.light-green-900-border-top{border-top-color:#33691e!important}.light-green-900-border-right{border-right-color:#33691e!important}.light-green-900-border-bottom{border-bottom-color:#33691e!important}.light-green-900-border-left{border-left-color:#33691e!important}.light-green-A100-bg{background-color:#ccff90!important}.md-light-green-A100-bg{background-color:#ccff90!important;color:rgba(0,0,0,.87)}.light-green-A100-fg{color:#ccff90!important}.light-green-A100-border{border-color:#ccff90!important}.light-green-A100-border-top{border-top-color:#ccff90!important}.light-green-A100-border-right{border-right-color:#ccff90!important}.light-green-A100-border-bottom{border-bottom-color:#ccff90!important}.light-green-A100-border-left{border-left-color:#ccff90!important}.light-green-A200-bg{background-color:#b2ff59!important}.md-light-green-A200-bg{background-color:#b2ff59!important;color:rgba(0,0,0,.87)}.light-green-A200-fg{color:#b2ff59!important}.light-green-A200-border{border-color:#b2ff59!important}.light-green-A200-border-top{border-top-color:#b2ff59!important}.light-green-A200-border-right{border-right-color:#b2ff59!important}.light-green-A200-border-bottom{border-bottom-color:#b2ff59!important}.light-green-A200-border-left{border-left-color:#b2ff59!important}.light-green-A400-bg{background-color:#76ff03!important}.md-light-green-A400-bg{background-color:#76ff03!important;color:rgba(0,0,0,.87)}.light-green-A400-fg{color:#76ff03!important}.light-green-A400-border{border-color:#76ff03!important}.light-green-A400-border-top{border-top-color:#76ff03!important}.light-green-A400-border-right{border-right-color:#76ff03!important}.light-green-A400-border-bottom{border-bottom-color:#76ff03!important}.light-green-A400-border-left{border-left-color:#76ff03!important}.light-green-A700-bg{background-color:#64dd17!important}.md-light-green-A700-bg{background-color:#64dd17!important;color:rgba(0,0,0,.87)}.light-green-A700-fg{color:#64dd17!important}.light-green-A700-border{border-color:#64dd17!important}.light-green-A700-border-top{border-top-color:#64dd17!important}.light-green-A700-border-right{border-right-color:#64dd17!important}.light-green-A700-border-bottom{border-bottom-color:#64dd17!important}.light-green-A700-border-left{border-left-color:#64dd17!important}.lime-50-bg{background-color:#f9fbe7!important}.md-lime-50-bg{background-color:#f9fbe7!important;color:rgba(0,0,0,.87)}.lime-50-fg{color:#f9fbe7!important}.lime-50-border{border-color:#f9fbe7!important}.lime-50-border-top{border-top-color:#f9fbe7!important}.lime-50-border-right{border-right-color:#f9fbe7!important}.lime-50-border-bottom{border-bottom-color:#f9fbe7!important}.lime-50-border-left{border-left-color:#f9fbe7!important}.lime-100-bg{background-color:#f0f4c3!important}.md-lime-100-bg{background-color:#f0f4c3!important;color:rgba(0,0,0,.87)}.lime-100-fg{color:#f0f4c3!important}.lime-100-border{border-color:#f0f4c3!important}.lime-100-border-top{border-top-color:#f0f4c3!important}.lime-100-border-right{border-right-color:#f0f4c3!important}.lime-100-border-bottom{border-bottom-color:#f0f4c3!important}.lime-100-border-left{border-left-color:#f0f4c3!important}.lime-200-bg{background-color:#e6ee9c!important}.md-lime-200-bg{background-color:#e6ee9c!important;color:rgba(0,0,0,.87)}.lime-200-fg{color:#e6ee9c!important}.lime-200-border{border-color:#e6ee9c!important}.lime-200-border-top{border-top-color:#e6ee9c!important}.lime-200-border-right{border-right-color:#e6ee9c!important}.lime-200-border-bottom{border-bottom-color:#e6ee9c!important}.lime-200-border-left{border-left-color:#e6ee9c!important}.lime-300-bg{background-color:#dce775!important}.md-lime-300-bg{background-color:#dce775!important;color:rgba(0,0,0,.87)}.lime-300-fg{color:#dce775!important}.lime-300-border{border-color:#dce775!important}.lime-300-border-top{border-top-color:#dce775!important}.lime-300-border-right{border-right-color:#dce775!important}.lime-300-border-bottom{border-bottom-color:#dce775!important}.lime-300-border-left{border-left-color:#dce775!important}.lime-400-bg{background-color:#d4e157!important}.md-lime-400-bg{background-color:#d4e157!important;color:rgba(0,0,0,.87)}.lime-400-fg{color:#d4e157!important}.lime-400-border{border-color:#d4e157!important}.lime-400-border-top{border-top-color:#d4e157!important}.lime-400-border-right{border-right-color:#d4e157!important}.lime-400-border-bottom{border-bottom-color:#d4e157!important}.lime-400-border-left{border-left-color:#d4e157!important}.lime-500-bg{background-color:#cddc39!important}.md-lime-500-bg{background-color:#cddc39!important;color:rgba(0,0,0,.87)}.lime-500-fg{color:#cddc39!important}.lime-500-border{border-color:#cddc39!important}.lime-500-border-top{border-top-color:#cddc39!important}.lime-500-border-right{border-right-color:#cddc39!important}.lime-500-border-bottom{border-bottom-color:#cddc39!important}.lime-500-border-left{border-left-color:#cddc39!important}.md-lime-bg{background-color:#cddc39!important;color:rgba(0,0,0,.87)}.lime-bg{background-color:#cddc39!important}.lime-fg{color:#cddc39!important}.lime-border{border-color:#cddc39!important}.lime-border-top{border-top-color:#cddc39!important}.lime-border-right{border-right-color:#cddc39!important}.lime-border-bottom{border-bottom-color:#cddc39!important}.lime-border-left{border-left-color:#cddc39!important}.lime-600-bg{background-color:#c0ca33!important}.md-lime-600-bg{background-color:#c0ca33!important;color:rgba(0,0,0,.87)}.lime-600-fg{color:#c0ca33!important}.lime-600-border{border-color:#c0ca33!important}.lime-600-border-top{border-top-color:#c0ca33!important}.lime-600-border-right{border-right-color:#c0ca33!important}.lime-600-border-bottom{border-bottom-color:#c0ca33!important}.lime-600-border-left{border-left-color:#c0ca33!important}.lime-700-bg{background-color:#afb42b!important}.md-lime-700-bg{background-color:#afb42b!important;color:rgba(0,0,0,.87)}.lime-700-fg{color:#afb42b!important}.lime-700-border{border-color:#afb42b!important}.lime-700-border-top{border-top-color:#afb42b!important}.lime-700-border-right{border-right-color:#afb42b!important}.lime-700-border-bottom{border-bottom-color:#afb42b!important}.lime-700-border-left{border-left-color:#afb42b!important}.lime-800-bg{background-color:#9e9d24!important}.md-lime-800-bg{background-color:#9e9d24!important;color:rgba(0,0,0,.87)}.lime-800-fg{color:#9e9d24!important}.lime-800-border{border-color:#9e9d24!important}.lime-800-border-top{border-top-color:#9e9d24!important}.lime-800-border-right{border-right-color:#9e9d24!important}.lime-800-border-bottom{border-bottom-color:#9e9d24!important}.lime-800-border-left{border-left-color:#9e9d24!important}.lime-900-bg{background-color:#827717!important}.md-lime-900-bg{background-color:#827717!important;color:#fff}.lime-900-fg{color:#827717!important}.lime-900-border{border-color:#827717!important}.lime-900-border-top{border-top-color:#827717!important}.lime-900-border-right{border-right-color:#827717!important}.lime-900-border-bottom{border-bottom-color:#827717!important}.lime-900-border-left{border-left-color:#827717!important}.lime-A100-bg{background-color:#f4ff81!important}.md-lime-A100-bg{background-color:#f4ff81!important;color:rgba(0,0,0,.87)}.lime-A100-fg{color:#f4ff81!important}.lime-A100-border{border-color:#f4ff81!important}.lime-A100-border-top{border-top-color:#f4ff81!important}.lime-A100-border-right{border-right-color:#f4ff81!important}.lime-A100-border-bottom{border-bottom-color:#f4ff81!important}.lime-A100-border-left{border-left-color:#f4ff81!important}.lime-A200-bg{background-color:#eeff41!important}.md-lime-A200-bg{background-color:#eeff41!important;color:rgba(0,0,0,.87)}.lime-A200-fg{color:#eeff41!important}.lime-A200-border{border-color:#eeff41!important}.lime-A200-border-top{border-top-color:#eeff41!important}.lime-A200-border-right{border-right-color:#eeff41!important}.lime-A200-border-bottom{border-bottom-color:#eeff41!important}.lime-A200-border-left{border-left-color:#eeff41!important}.lime-A400-bg{background-color:#c6ff00!important}.md-lime-A400-bg{background-color:#c6ff00!important;color:rgba(0,0,0,.87)}.lime-A400-fg{color:#c6ff00!important}.lime-A400-border{border-color:#c6ff00!important}.lime-A400-border-top{border-top-color:#c6ff00!important}.lime-A400-border-right{border-right-color:#c6ff00!important}.lime-A400-border-bottom{border-bottom-color:#c6ff00!important}.lime-A400-border-left{border-left-color:#c6ff00!important}.lime-A700-bg{background-color:#aeea00!important}.md-lime-A700-bg{background-color:#aeea00!important;color:rgba(0,0,0,.87)}.lime-A700-fg{color:#aeea00!important}.lime-A700-border{border-color:#aeea00!important}.lime-A700-border-top{border-top-color:#aeea00!important}.lime-A700-border-right{border-right-color:#aeea00!important}.lime-A700-border-bottom{border-bottom-color:#aeea00!important}.lime-A700-border-left{border-left-color:#aeea00!important}.yellow-50-bg{background-color:#fffde7!important}.md-yellow-50-bg{background-color:#fffde7!important;color:rgba(0,0,0,.87)}.yellow-50-fg{color:#fffde7!important}.yellow-50-border{border-color:#fffde7!important}.yellow-50-border-top{border-top-color:#fffde7!important}.yellow-50-border-right{border-right-color:#fffde7!important}.yellow-50-border-bottom{border-bottom-color:#fffde7!important}.yellow-50-border-left{border-left-color:#fffde7!important}.yellow-100-bg{background-color:#fff9c4!important}.md-yellow-100-bg{background-color:#fff9c4!important;color:rgba(0,0,0,.87)}.yellow-100-fg{color:#fff9c4!important}.yellow-100-border{border-color:#fff9c4!important}.yellow-100-border-top{border-top-color:#fff9c4!important}.yellow-100-border-right{border-right-color:#fff9c4!important}.yellow-100-border-bottom{border-bottom-color:#fff9c4!important}.yellow-100-border-left{border-left-color:#fff9c4!important}.yellow-200-bg{background-color:#fff59d!important}.md-yellow-200-bg{background-color:#fff59d!important;color:rgba(0,0,0,.87)}.yellow-200-fg{color:#fff59d!important}.yellow-200-border{border-color:#fff59d!important}.yellow-200-border-top{border-top-color:#fff59d!important}.yellow-200-border-right{border-right-color:#fff59d!important}.yellow-200-border-bottom{border-bottom-color:#fff59d!important}.yellow-200-border-left{border-left-color:#fff59d!important}.yellow-300-bg{background-color:#fff176!important}.md-yellow-300-bg{background-color:#fff176!important;color:rgba(0,0,0,.87)}.yellow-300-fg{color:#fff176!important}.yellow-300-border{border-color:#fff176!important}.yellow-300-border-top{border-top-color:#fff176!important}.yellow-300-border-right{border-right-color:#fff176!important}.yellow-300-border-bottom{border-bottom-color:#fff176!important}.yellow-300-border-left{border-left-color:#fff176!important}.yellow-400-bg{background-color:#ffee58!important}.md-yellow-400-bg{background-color:#ffee58!important;color:rgba(0,0,0,.87)}.yellow-400-fg{color:#ffee58!important}.yellow-400-border{border-color:#ffee58!important}.yellow-400-border-top{border-top-color:#ffee58!important}.yellow-400-border-right{border-right-color:#ffee58!important}.yellow-400-border-bottom{border-bottom-color:#ffee58!important}.yellow-400-border-left{border-left-color:#ffee58!important}.yellow-500-bg{background-color:#ffeb3b!important}.md-yellow-500-bg{background-color:#ffeb3b!important;color:rgba(0,0,0,.87)}.yellow-500-fg{color:#ffeb3b!important}.yellow-500-border{border-color:#ffeb3b!important}.yellow-500-border-top{border-top-color:#ffeb3b!important}.yellow-500-border-right{border-right-color:#ffeb3b!important}.yellow-500-border-bottom{border-bottom-color:#ffeb3b!important}.yellow-500-border-left{border-left-color:#ffeb3b!important}.md-yellow-bg{background-color:#ffeb3b!important;color:rgba(0,0,0,.87)}.yellow-bg{background-color:#ffeb3b!important}.yellow-fg{color:#ffeb3b!important}.yellow-border{border-color:#ffeb3b!important}.yellow-border-top{border-top-color:#ffeb3b!important}.yellow-border-right{border-right-color:#ffeb3b!important}.yellow-border-bottom{border-bottom-color:#ffeb3b!important}.yellow-border-left{border-left-color:#ffeb3b!important}.yellow-600-bg{background-color:#fdd835!important}.md-yellow-600-bg{background-color:#fdd835!important;color:rgba(0,0,0,.87)}.yellow-600-fg{color:#fdd835!important}.yellow-600-border{border-color:#fdd835!important}.yellow-600-border-top{border-top-color:#fdd835!important}.yellow-600-border-right{border-right-color:#fdd835!important}.yellow-600-border-bottom{border-bottom-color:#fdd835!important}.yellow-600-border-left{border-left-color:#fdd835!important}.yellow-700-bg{background-color:#fbc02d!important}.md-yellow-700-bg{background-color:#fbc02d!important;color:rgba(0,0,0,.87)}.yellow-700-fg{color:#fbc02d!important}.yellow-700-border{border-color:#fbc02d!important}.yellow-700-border-top{border-top-color:#fbc02d!important}.yellow-700-border-right{border-right-color:#fbc02d!important}.yellow-700-border-bottom{border-bottom-color:#fbc02d!important}.yellow-700-border-left{border-left-color:#fbc02d!important}.yellow-800-bg{background-color:#f9a825!important}.md-yellow-800-bg{background-color:#f9a825!important;color:rgba(0,0,0,.87)}.yellow-800-fg{color:#f9a825!important}.yellow-800-border{border-color:#f9a825!important}.yellow-800-border-top{border-top-color:#f9a825!important}.yellow-800-border-right{border-right-color:#f9a825!important}.yellow-800-border-bottom{border-bottom-color:#f9a825!important}.yellow-800-border-left{border-left-color:#f9a825!important}.yellow-900-bg{background-color:#f57f17!important}.md-yellow-900-bg{background-color:#f57f17!important;color:rgba(0,0,0,.87)}.yellow-900-fg{color:#f57f17!important}.yellow-900-border{border-color:#f57f17!important}.yellow-900-border-top{border-top-color:#f57f17!important}.yellow-900-border-right{border-right-color:#f57f17!important}.yellow-900-border-bottom{border-bottom-color:#f57f17!important}.yellow-900-border-left{border-left-color:#f57f17!important}.yellow-A100-bg{background-color:#ffff8d!important}.md-yellow-A100-bg{background-color:#ffff8d!important;color:rgba(0,0,0,.87)}.yellow-A100-fg{color:#ffff8d!important}.yellow-A100-border{border-color:#ffff8d!important}.yellow-A100-border-top{border-top-color:#ffff8d!important}.yellow-A100-border-right{border-right-color:#ffff8d!important}.yellow-A100-border-bottom{border-bottom-color:#ffff8d!important}.yellow-A100-border-left{border-left-color:#ffff8d!important}.yellow-A200-bg{background-color:#ff0!important}.md-yellow-A200-bg{background-color:#ff0!important;color:rgba(0,0,0,.87)}.yellow-A200-fg{color:#ff0!important}.yellow-A200-border{border-color:#ff0!important}.yellow-A200-border-top{border-top-color:#ff0!important}.yellow-A200-border-right{border-right-color:#ff0!important}.yellow-A200-border-bottom{border-bottom-color:#ff0!important}.yellow-A200-border-left{border-left-color:#ff0!important}.yellow-A400-bg{background-color:#ffea00!important}.md-yellow-A400-bg{background-color:#ffea00!important;color:rgba(0,0,0,.87)}.yellow-A400-fg{color:#ffea00!important}.yellow-A400-border{border-color:#ffea00!important}.yellow-A400-border-top{border-top-color:#ffea00!important}.yellow-A400-border-right{border-right-color:#ffea00!important}.yellow-A400-border-bottom{border-bottom-color:#ffea00!important}.yellow-A400-border-left{border-left-color:#ffea00!important}.yellow-A700-bg{background-color:#ffd600!important}.md-yellow-A700-bg{background-color:#ffd600!important;color:rgba(0,0,0,.87)}.yellow-A700-fg{color:#ffd600!important}.yellow-A700-border{border-color:#ffd600!important}.yellow-A700-border-top{border-top-color:#ffd600!important}.yellow-A700-border-right{border-right-color:#ffd600!important}.yellow-A700-border-bottom{border-bottom-color:#ffd600!important}.yellow-A700-border-left{border-left-color:#ffd600!important}.amber-50-bg{background-color:#fff8e1!important}.md-amber-50-bg{background-color:#fff8e1!important;color:rgba(0,0,0,.87)}.amber-50-fg{color:#fff8e1!important}.amber-50-border{border-color:#fff8e1!important}.amber-50-border-top{border-top-color:#fff8e1!important}.amber-50-border-right{border-right-color:#fff8e1!important}.amber-50-border-bottom{border-bottom-color:#fff8e1!important}.amber-50-border-left{border-left-color:#fff8e1!important}.amber-100-bg{background-color:#ffecb3!important}.md-amber-100-bg{background-color:#ffecb3!important;color:rgba(0,0,0,.87)}.amber-100-fg{color:#ffecb3!important}.amber-100-border{border-color:#ffecb3!important}.amber-100-border-top{border-top-color:#ffecb3!important}.amber-100-border-right{border-right-color:#ffecb3!important}.amber-100-border-bottom{border-bottom-color:#ffecb3!important}.amber-100-border-left{border-left-color:#ffecb3!important}.amber-200-bg{background-color:#ffe082!important}.md-amber-200-bg{background-color:#ffe082!important;color:rgba(0,0,0,.87)}.amber-200-fg{color:#ffe082!important}.amber-200-border{border-color:#ffe082!important}.amber-200-border-top{border-top-color:#ffe082!important}.amber-200-border-right{border-right-color:#ffe082!important}.amber-200-border-bottom{border-bottom-color:#ffe082!important}.amber-200-border-left{border-left-color:#ffe082!important}.amber-300-bg{background-color:#ffd54f!important}.md-amber-300-bg{background-color:#ffd54f!important;color:rgba(0,0,0,.87)}.amber-300-fg{color:#ffd54f!important}.amber-300-border{border-color:#ffd54f!important}.amber-300-border-top{border-top-color:#ffd54f!important}.amber-300-border-right{border-right-color:#ffd54f!important}.amber-300-border-bottom{border-bottom-color:#ffd54f!important}.amber-300-border-left{border-left-color:#ffd54f!important}.amber-400-bg{background-color:#ffca28!important}.md-amber-400-bg{background-color:#ffca28!important;color:rgba(0,0,0,.87)}.amber-400-fg{color:#ffca28!important}.amber-400-border{border-color:#ffca28!important}.amber-400-border-top{border-top-color:#ffca28!important}.amber-400-border-right{border-right-color:#ffca28!important}.amber-400-border-bottom{border-bottom-color:#ffca28!important}.amber-400-border-left{border-left-color:#ffca28!important}.amber-500-bg{background-color:#ffc107!important}.md-amber-500-bg{background-color:#ffc107!important;color:rgba(0,0,0,.87)}.amber-500-fg{color:#ffc107!important}.amber-500-border{border-color:#ffc107!important}.amber-500-border-top{border-top-color:#ffc107!important}.amber-500-border-right{border-right-color:#ffc107!important}.amber-500-border-bottom{border-bottom-color:#ffc107!important}.amber-500-border-left{border-left-color:#ffc107!important}.md-amber-bg{background-color:#ffc107!important;color:rgba(0,0,0,.87)}.amber-bg{background-color:#ffc107!important}.amber-fg{color:#ffc107!important}.amber-border{border-color:#ffc107!important}.amber-border-top{border-top-color:#ffc107!important}.amber-border-right{border-right-color:#ffc107!important}.amber-border-bottom{border-bottom-color:#ffc107!important}.amber-border-left{border-left-color:#ffc107!important}.amber-600-bg{background-color:#ffb300!important}.md-amber-600-bg{background-color:#ffb300!important;color:rgba(0,0,0,.87)}.amber-600-fg{color:#ffb300!important}.amber-600-border{border-color:#ffb300!important}.amber-600-border-top{border-top-color:#ffb300!important}.amber-600-border-right{border-right-color:#ffb300!important}.amber-600-border-bottom{border-bottom-color:#ffb300!important}.amber-600-border-left{border-left-color:#ffb300!important}.amber-700-bg{background-color:#ffa000!important}.md-amber-700-bg{background-color:#ffa000!important;color:rgba(0,0,0,.87)}.amber-700-fg{color:#ffa000!important}.amber-700-border{border-color:#ffa000!important}.amber-700-border-top{border-top-color:#ffa000!important}.amber-700-border-right{border-right-color:#ffa000!important}.amber-700-border-bottom{border-bottom-color:#ffa000!important}.amber-700-border-left{border-left-color:#ffa000!important}.amber-800-bg{background-color:#ff8f00!important}.md-amber-800-bg{background-color:#ff8f00!important;color:rgba(0,0,0,.87)}.amber-800-fg{color:#ff8f00!important}.amber-800-border{border-color:#ff8f00!important}.amber-800-border-top{border-top-color:#ff8f00!important}.amber-800-border-right{border-right-color:#ff8f00!important}.amber-800-border-bottom{border-bottom-color:#ff8f00!important}.amber-800-border-left{border-left-color:#ff8f00!important}.amber-900-bg{background-color:#ff6f00!important}.md-amber-900-bg{background-color:#ff6f00!important;color:rgba(0,0,0,.87)}.amber-900-fg{color:#ff6f00!important}.amber-900-border{border-color:#ff6f00!important}.amber-900-border-top{border-top-color:#ff6f00!important}.amber-900-border-right{border-right-color:#ff6f00!important}.amber-900-border-bottom{border-bottom-color:#ff6f00!important}.amber-900-border-left{border-left-color:#ff6f00!important}.amber-A100-bg{background-color:#ffe57f!important}.md-amber-A100-bg{background-color:#ffe57f!important;color:rgba(0,0,0,.87)}.amber-A100-fg{color:#ffe57f!important}.amber-A100-border{border-color:#ffe57f!important}.amber-A100-border-top{border-top-color:#ffe57f!important}.amber-A100-border-right{border-right-color:#ffe57f!important}.amber-A100-border-bottom{border-bottom-color:#ffe57f!important}.amber-A100-border-left{border-left-color:#ffe57f!important}.amber-A200-bg{background-color:#ffd740!important}.md-amber-A200-bg{background-color:#ffd740!important;color:rgba(0,0,0,.87)}.amber-A200-fg{color:#ffd740!important}.amber-A200-border{border-color:#ffd740!important}.amber-A200-border-top{border-top-color:#ffd740!important}.amber-A200-border-right{border-right-color:#ffd740!important}.amber-A200-border-bottom{border-bottom-color:#ffd740!important}.amber-A200-border-left{border-left-color:#ffd740!important}.amber-A400-bg{background-color:#ffc400!important}.md-amber-A400-bg{background-color:#ffc400!important;color:rgba(0,0,0,.87)}.amber-A400-fg{color:#ffc400!important}.amber-A400-border{border-color:#ffc400!important}.amber-A400-border-top{border-top-color:#ffc400!important}.amber-A400-border-right{border-right-color:#ffc400!important}.amber-A400-border-bottom{border-bottom-color:#ffc400!important}.amber-A400-border-left{border-left-color:#ffc400!important}.amber-A700-bg{background-color:#ffab00!important}.md-amber-A700-bg{background-color:#ffab00!important;color:rgba(0,0,0,.87)}.amber-A700-fg{color:#ffab00!important}.amber-A700-border{border-color:#ffab00!important}.amber-A700-border-top{border-top-color:#ffab00!important}.amber-A700-border-right{border-right-color:#ffab00!important}.amber-A700-border-bottom{border-bottom-color:#ffab00!important}.amber-A700-border-left{border-left-color:#ffab00!important}.orange-50-bg{background-color:#fff3e0!important}.md-orange-50-bg{background-color:#fff3e0!important;color:rgba(0,0,0,.87)}.orange-50-fg{color:#fff3e0!important}.orange-50-border{border-color:#fff3e0!important}.orange-50-border-top{border-top-color:#fff3e0!important}.orange-50-border-right{border-right-color:#fff3e0!important}.orange-50-border-bottom{border-bottom-color:#fff3e0!important}.orange-50-border-left{border-left-color:#fff3e0!important}.orange-100-bg{background-color:#ffe0b2!important}.md-orange-100-bg{background-color:#ffe0b2!important;color:rgba(0,0,0,.87)}.orange-100-fg{color:#ffe0b2!important}.orange-100-border{border-color:#ffe0b2!important}.orange-100-border-top{border-top-color:#ffe0b2!important}.orange-100-border-right{border-right-color:#ffe0b2!important}.orange-100-border-bottom{border-bottom-color:#ffe0b2!important}.orange-100-border-left{border-left-color:#ffe0b2!important}.orange-200-bg{background-color:#ffcc80!important}.md-orange-200-bg{background-color:#ffcc80!important;color:rgba(0,0,0,.87)}.orange-200-fg{color:#ffcc80!important}.orange-200-border{border-color:#ffcc80!important}.orange-200-border-top{border-top-color:#ffcc80!important}.orange-200-border-right{border-right-color:#ffcc80!important}.orange-200-border-bottom{border-bottom-color:#ffcc80!important}.orange-200-border-left{border-left-color:#ffcc80!important}.orange-300-bg{background-color:#ffb74d!important}.md-orange-300-bg{background-color:#ffb74d!important;color:rgba(0,0,0,.87)}.orange-300-fg{color:#ffb74d!important}.orange-300-border{border-color:#ffb74d!important}.orange-300-border-top{border-top-color:#ffb74d!important}.orange-300-border-right{border-right-color:#ffb74d!important}.orange-300-border-bottom{border-bottom-color:#ffb74d!important}.orange-300-border-left{border-left-color:#ffb74d!important}.orange-400-bg{background-color:#ffa726!important}.md-orange-400-bg{background-color:#ffa726!important;color:rgba(0,0,0,.87)}.orange-400-fg{color:#ffa726!important}.orange-400-border{border-color:#ffa726!important}.orange-400-border-top{border-top-color:#ffa726!important}.orange-400-border-right{border-right-color:#ffa726!important}.orange-400-border-bottom{border-bottom-color:#ffa726!important}.orange-400-border-left{border-left-color:#ffa726!important}.orange-500-bg{background-color:#ff9800!important}.md-orange-500-bg{background-color:#ff9800!important;color:rgba(0,0,0,.87)}.orange-500-fg{color:#ff9800!important}.orange-500-border{border-color:#ff9800!important}.orange-500-border-top{border-top-color:#ff9800!important}.orange-500-border-right{border-right-color:#ff9800!important}.orange-500-border-bottom{border-bottom-color:#ff9800!important}.orange-500-border-left{border-left-color:#ff9800!important}.md-orange-bg{background-color:#ff9800!important;color:rgba(0,0,0,.87)}.orange-bg{background-color:#ff9800!important}.orange-fg{color:#ff9800!important}.orange-border{border-color:#ff9800!important}.orange-border-top{border-top-color:#ff9800!important}.orange-border-right{border-right-color:#ff9800!important}.orange-border-bottom{border-bottom-color:#ff9800!important}.orange-border-left{border-left-color:#ff9800!important}.orange-600-bg{background-color:#fb8c00!important}.md-orange-600-bg{background-color:#fb8c00!important;color:rgba(0,0,0,.87)}.orange-600-fg{color:#fb8c00!important}.orange-600-border{border-color:#fb8c00!important}.orange-600-border-top{border-top-color:#fb8c00!important}.orange-600-border-right{border-right-color:#fb8c00!important}.orange-600-border-bottom{border-bottom-color:#fb8c00!important}.orange-600-border-left{border-left-color:#fb8c00!important}.orange-700-bg{background-color:#f57c00!important}.md-orange-700-bg{background-color:#f57c00!important;color:rgba(0,0,0,.87)}.orange-700-fg{color:#f57c00!important}.orange-700-border{border-color:#f57c00!important}.orange-700-border-top{border-top-color:#f57c00!important}.orange-700-border-right{border-right-color:#f57c00!important}.orange-700-border-bottom{border-bottom-color:#f57c00!important}.orange-700-border-left{border-left-color:#f57c00!important}.orange-800-bg{background-color:#ef6c00!important}.md-orange-800-bg{background-color:#ef6c00!important;color:#fff}.orange-800-fg{color:#ef6c00!important}.orange-800-border{border-color:#ef6c00!important}.orange-800-border-top{border-top-color:#ef6c00!important}.orange-800-border-right{border-right-color:#ef6c00!important}.orange-800-border-bottom{border-bottom-color:#ef6c00!important}.orange-800-border-left{border-left-color:#ef6c00!important}.orange-900-bg{background-color:#e65100!important}.md-orange-900-bg{background-color:#e65100!important;color:#fff}.orange-900-fg{color:#e65100!important}.orange-900-border{border-color:#e65100!important}.orange-900-border-top{border-top-color:#e65100!important}.orange-900-border-right{border-right-color:#e65100!important}.orange-900-border-bottom{border-bottom-color:#e65100!important}.orange-900-border-left{border-left-color:#e65100!important}.orange-A100-bg{background-color:#ffd180!important}.md-orange-A100-bg{background-color:#ffd180!important;color:rgba(0,0,0,.87)}.orange-A100-fg{color:#ffd180!important}.orange-A100-border{border-color:#ffd180!important}.orange-A100-border-top{border-top-color:#ffd180!important}.orange-A100-border-right{border-right-color:#ffd180!important}.orange-A100-border-bottom{border-bottom-color:#ffd180!important}.orange-A100-border-left{border-left-color:#ffd180!important}.orange-A200-bg{background-color:#ffab40!important}.md-orange-A200-bg{background-color:#ffab40!important;color:rgba(0,0,0,.87)}.orange-A200-fg{color:#ffab40!important}.orange-A200-border{border-color:#ffab40!important}.orange-A200-border-top{border-top-color:#ffab40!important}.orange-A200-border-right{border-right-color:#ffab40!important}.orange-A200-border-bottom{border-bottom-color:#ffab40!important}.orange-A200-border-left{border-left-color:#ffab40!important}.orange-A400-bg{background-color:#ff9100!important}.md-orange-A400-bg{background-color:#ff9100!important;color:rgba(0,0,0,.87)}.orange-A400-fg{color:#ff9100!important}.orange-A400-border{border-color:#ff9100!important}.orange-A400-border-top{border-top-color:#ff9100!important}.orange-A400-border-right{border-right-color:#ff9100!important}.orange-A400-border-bottom{border-bottom-color:#ff9100!important}.orange-A400-border-left{border-left-color:#ff9100!important}.orange-A700-bg{background-color:#ff6d00!important}.md-orange-A700-bg{background-color:#ff6d00!important;color:rgba(0,0,0,.87)}.orange-A700-fg{color:#ff6d00!important}.orange-A700-border{border-color:#ff6d00!important}.orange-A700-border-top{border-top-color:#ff6d00!important}.orange-A700-border-right{border-right-color:#ff6d00!important}.orange-A700-border-bottom{border-bottom-color:#ff6d00!important}.orange-A700-border-left{border-left-color:#ff6d00!important}.deep-orange-50-bg{background-color:#fbe9e7!important}.md-deep-orange-50-bg{background-color:#fbe9e7!important;color:rgba(0,0,0,.87)}.deep-orange-50-fg{color:#fbe9e7!important}.deep-orange-50-border{border-color:#fbe9e7!important}.deep-orange-50-border-top{border-top-color:#fbe9e7!important}.deep-orange-50-border-right{border-right-color:#fbe9e7!important}.deep-orange-50-border-bottom{border-bottom-color:#fbe9e7!important}.deep-orange-50-border-left{border-left-color:#fbe9e7!important}.deep-orange-100-bg{background-color:#ffccbc!important}.md-deep-orange-100-bg{background-color:#ffccbc!important;color:rgba(0,0,0,.87)}.deep-orange-100-fg{color:#ffccbc!important}.deep-orange-100-border{border-color:#ffccbc!important}.deep-orange-100-border-top{border-top-color:#ffccbc!important}.deep-orange-100-border-right{border-right-color:#ffccbc!important}.deep-orange-100-border-bottom{border-bottom-color:#ffccbc!important}.deep-orange-100-border-left{border-left-color:#ffccbc!important}.deep-orange-200-bg{background-color:#ffab91!important}.md-deep-orange-200-bg{background-color:#ffab91!important;color:rgba(0,0,0,.87)}.deep-orange-200-fg{color:#ffab91!important}.deep-orange-200-border{border-color:#ffab91!important}.deep-orange-200-border-top{border-top-color:#ffab91!important}.deep-orange-200-border-right{border-right-color:#ffab91!important}.deep-orange-200-border-bottom{border-bottom-color:#ffab91!important}.deep-orange-200-border-left{border-left-color:#ffab91!important}.deep-orange-300-bg{background-color:#ff8a65!important}.md-deep-orange-300-bg{background-color:#ff8a65!important;color:rgba(0,0,0,.87)}.deep-orange-300-fg{color:#ff8a65!important}.deep-orange-300-border{border-color:#ff8a65!important}.deep-orange-300-border-top{border-top-color:#ff8a65!important}.deep-orange-300-border-right{border-right-color:#ff8a65!important}.deep-orange-300-border-bottom{border-bottom-color:#ff8a65!important}.deep-orange-300-border-left{border-left-color:#ff8a65!important}.deep-orange-400-bg{background-color:#ff7043!important}.md-deep-orange-400-bg{background-color:#ff7043!important;color:rgba(0,0,0,.87)}.deep-orange-400-fg{color:#ff7043!important}.deep-orange-400-border{border-color:#ff7043!important}.deep-orange-400-border-top{border-top-color:#ff7043!important}.deep-orange-400-border-right{border-right-color:#ff7043!important}.deep-orange-400-border-bottom{border-bottom-color:#ff7043!important}.deep-orange-400-border-left{border-left-color:#ff7043!important}.deep-orange-500-bg{background-color:#ff5722!important}.md-deep-orange-500-bg{background-color:#ff5722!important;color:#fff}.deep-orange-500-fg{color:#ff5722!important}.deep-orange-500-border{border-color:#ff5722!important}.deep-orange-500-border-top{border-top-color:#ff5722!important}.deep-orange-500-border-right{border-right-color:#ff5722!important}.deep-orange-500-border-bottom{border-bottom-color:#ff5722!important}.deep-orange-500-border-left{border-left-color:#ff5722!important}.md-deep-orange-bg{background-color:#ff5722!important;color:#fff}.deep-orange-bg{background-color:#ff5722!important}.deep-orange-fg{color:#ff5722!important}.deep-orange-border{border-color:#ff5722!important}.deep-orange-border-top{border-top-color:#ff5722!important}.deep-orange-border-right{border-right-color:#ff5722!important}.deep-orange-border-bottom{border-bottom-color:#ff5722!important}.deep-orange-border-left{border-left-color:#ff5722!important}.deep-orange-600-bg{background-color:#f4511e!important}.md-deep-orange-600-bg{background-color:#f4511e!important;color:#fff}.deep-orange-600-fg{color:#f4511e!important}.deep-orange-600-border{border-color:#f4511e!important}.deep-orange-600-border-top{border-top-color:#f4511e!important}.deep-orange-600-border-right{border-right-color:#f4511e!important}.deep-orange-600-border-bottom{border-bottom-color:#f4511e!important}.deep-orange-600-border-left{border-left-color:#f4511e!important}.deep-orange-700-bg{background-color:#e64a19!important}.md-deep-orange-700-bg{background-color:#e64a19!important;color:#fff}.deep-orange-700-fg{color:#e64a19!important}.deep-orange-700-border{border-color:#e64a19!important}.deep-orange-700-border-top{border-top-color:#e64a19!important}.deep-orange-700-border-right{border-right-color:#e64a19!important}.deep-orange-700-border-bottom{border-bottom-color:#e64a19!important}.deep-orange-700-border-left{border-left-color:#e64a19!important}.deep-orange-800-bg{background-color:#d84315!important}.md-deep-orange-800-bg{background-color:#d84315!important;color:#fff}.deep-orange-800-fg{color:#d84315!important}.deep-orange-800-border{border-color:#d84315!important}.deep-orange-800-border-top{border-top-color:#d84315!important}.deep-orange-800-border-right{border-right-color:#d84315!important}.deep-orange-800-border-bottom{border-bottom-color:#d84315!important}.deep-orange-800-border-left{border-left-color:#d84315!important}.deep-orange-900-bg{background-color:#bf360c!important}.md-deep-orange-900-bg{background-color:#bf360c!important;color:#fff}.deep-orange-900-fg{color:#bf360c!important}.deep-orange-900-border{border-color:#bf360c!important}.deep-orange-900-border-top{border-top-color:#bf360c!important}.deep-orange-900-border-right{border-right-color:#bf360c!important}.deep-orange-900-border-bottom{border-bottom-color:#bf360c!important}.deep-orange-900-border-left{border-left-color:#bf360c!important}.deep-orange-A100-bg{background-color:#ff9e80!important}.md-deep-orange-A100-bg{background-color:#ff9e80!important;color:rgba(0,0,0,.87)}.deep-orange-A100-fg{color:#ff9e80!important}.deep-orange-A100-border{border-color:#ff9e80!important}.deep-orange-A100-border-top{border-top-color:#ff9e80!important}.deep-orange-A100-border-right{border-right-color:#ff9e80!important}.deep-orange-A100-border-bottom{border-bottom-color:#ff9e80!important}.deep-orange-A100-border-left{border-left-color:#ff9e80!important}.deep-orange-A200-bg{background-color:#ff6e40!important}.md-deep-orange-A200-bg{background-color:#ff6e40!important;color:rgba(0,0,0,.87)}.deep-orange-A200-fg{color:#ff6e40!important}.deep-orange-A200-border{border-color:#ff6e40!important}.deep-orange-A200-border-top{border-top-color:#ff6e40!important}.deep-orange-A200-border-right{border-right-color:#ff6e40!important}.deep-orange-A200-border-bottom{border-bottom-color:#ff6e40!important}.deep-orange-A200-border-left{border-left-color:#ff6e40!important}.deep-orange-A400-bg{background-color:#ff3d00!important}.md-deep-orange-A400-bg{background-color:#ff3d00!important;color:#fff}.deep-orange-A400-fg{color:#ff3d00!important}.deep-orange-A400-border{border-color:#ff3d00!important}.deep-orange-A400-border-top{border-top-color:#ff3d00!important}.deep-orange-A400-border-right{border-right-color:#ff3d00!important}.deep-orange-A400-border-bottom{border-bottom-color:#ff3d00!important}.deep-orange-A400-border-left{border-left-color:#ff3d00!important}.deep-orange-A700-bg{background-color:#dd2c00!important}.md-deep-orange-A700-bg{background-color:#dd2c00!important;color:#fff}.deep-orange-A700-fg{color:#dd2c00!important}.deep-orange-A700-border{border-color:#dd2c00!important}.deep-orange-A700-border-top{border-top-color:#dd2c00!important}.deep-orange-A700-border-right{border-right-color:#dd2c00!important}.deep-orange-A700-border-bottom{border-bottom-color:#dd2c00!important}.deep-orange-A700-border-left{border-left-color:#dd2c00!important}.brown-50-bg{background-color:#efebe9!important}.md-brown-50-bg{background-color:#efebe9!important;color:rgba(0,0,0,.87)}.brown-50-fg{color:#efebe9!important}.brown-50-border{border-color:#efebe9!important}.brown-50-border-top{border-top-color:#efebe9!important}.brown-50-border-right{border-right-color:#efebe9!important}.brown-50-border-bottom{border-bottom-color:#efebe9!important}.brown-50-border-left{border-left-color:#efebe9!important}.brown-100-bg{background-color:#d7ccc8!important}.md-brown-100-bg{background-color:#d7ccc8!important;color:rgba(0,0,0,.87)}.brown-100-fg{color:#d7ccc8!important}.brown-100-border{border-color:#d7ccc8!important}.brown-100-border-top{border-top-color:#d7ccc8!important}.brown-100-border-right{border-right-color:#d7ccc8!important}.brown-100-border-bottom{border-bottom-color:#d7ccc8!important}.brown-100-border-left{border-left-color:#d7ccc8!important}.brown-200-bg{background-color:#bcaaa4!important}.md-brown-200-bg{background-color:#bcaaa4!important;color:rgba(0,0,0,.87)}.brown-200-fg{color:#bcaaa4!important}.brown-200-border{border-color:#bcaaa4!important}.brown-200-border-top{border-top-color:#bcaaa4!important}.brown-200-border-right{border-right-color:#bcaaa4!important}.brown-200-border-bottom{border-bottom-color:#bcaaa4!important}.brown-200-border-left{border-left-color:#bcaaa4!important}.brown-300-bg{background-color:#a1887f!important}.md-brown-300-bg{background-color:#a1887f!important;color:#fff}.brown-300-fg{color:#a1887f!important}.brown-300-border{border-color:#a1887f!important}.brown-300-border-top{border-top-color:#a1887f!important}.brown-300-border-right{border-right-color:#a1887f!important}.brown-300-border-bottom{border-bottom-color:#a1887f!important}.brown-300-border-left{border-left-color:#a1887f!important}.brown-400-bg{background-color:#8d6e63!important}.md-brown-400-bg{background-color:#8d6e63!important;color:#fff}.brown-400-fg{color:#8d6e63!important}.brown-400-border{border-color:#8d6e63!important}.brown-400-border-top{border-top-color:#8d6e63!important}.brown-400-border-right{border-right-color:#8d6e63!important}.brown-400-border-bottom{border-bottom-color:#8d6e63!important}.brown-400-border-left{border-left-color:#8d6e63!important}.brown-500-bg{background-color:#795548!important}.md-brown-500-bg{background-color:#795548!important;color:rgba(255,255,255,.87)}.brown-500-fg{color:#795548!important}.brown-500-border{border-color:#795548!important}.brown-500-border-top{border-top-color:#795548!important}.brown-500-border-right{border-right-color:#795548!important}.brown-500-border-bottom{border-bottom-color:#795548!important}.brown-500-border-left{border-left-color:#795548!important}.md-brown-bg{background-color:#795548!important;color:rgba(255,255,255,.87)}.brown-bg{background-color:#795548!important}.brown-fg{color:#795548!important}.brown-border{border-color:#795548!important}.brown-border-top{border-top-color:#795548!important}.brown-border-right{border-right-color:#795548!important}.brown-border-bottom{border-bottom-color:#795548!important}.brown-border-left{border-left-color:#795548!important}.brown-600-bg{background-color:#6d4c41!important}.md-brown-600-bg{background-color:#6d4c41!important;color:rgba(255,255,255,.87)}.brown-600-fg{color:#6d4c41!important}.brown-600-border{border-color:#6d4c41!important}.brown-600-border-top{border-top-color:#6d4c41!important}.brown-600-border-right{border-right-color:#6d4c41!important}.brown-600-border-bottom{border-bottom-color:#6d4c41!important}.brown-600-border-left{border-left-color:#6d4c41!important}.brown-700-bg{background-color:#5d4037!important}.md-brown-700-bg{background-color:#5d4037!important;color:rgba(255,255,255,.87)}.brown-700-fg{color:#5d4037!important}.brown-700-border{border-color:#5d4037!important}.brown-700-border-top{border-top-color:#5d4037!important}.brown-700-border-right{border-right-color:#5d4037!important}.brown-700-border-bottom{border-bottom-color:#5d4037!important}.brown-700-border-left{border-left-color:#5d4037!important}.brown-800-bg{background-color:#4e342e!important}.md-brown-800-bg{background-color:#4e342e!important;color:rgba(255,255,255,.87)}.brown-800-fg{color:#4e342e!important}.brown-800-border{border-color:#4e342e!important}.brown-800-border-top{border-top-color:#4e342e!important}.brown-800-border-right{border-right-color:#4e342e!important}.brown-800-border-bottom{border-bottom-color:#4e342e!important}.brown-800-border-left{border-left-color:#4e342e!important}.brown-900-bg{background-color:#3e2723!important}.md-brown-900-bg{background-color:#3e2723!important;color:rgba(255,255,255,.87)}.brown-900-fg{color:#3e2723!important}.brown-900-border{border-color:#3e2723!important}.brown-900-border-top{border-top-color:#3e2723!important}.brown-900-border-right{border-right-color:#3e2723!important}.brown-900-border-bottom{border-bottom-color:#3e2723!important}.brown-900-border-left{border-left-color:#3e2723!important}.brown-A100-bg{background-color:#d7ccc8!important}.md-brown-A100-bg{background-color:#d7ccc8!important;color:rgba(255,255,255,.87)}.brown-A100-fg{color:#d7ccc8!important}.brown-A100-border{border-color:#d7ccc8!important}.brown-A100-border-top{border-top-color:#d7ccc8!important}.brown-A100-border-right{border-right-color:#d7ccc8!important}.brown-A100-border-bottom{border-bottom-color:#d7ccc8!important}.brown-A100-border-left{border-left-color:#d7ccc8!important}.brown-A200-bg{background-color:#bcaaa4!important}.md-brown-A200-bg{background-color:#bcaaa4!important;color:rgba(255,255,255,.87)}.brown-A200-fg{color:#bcaaa4!important}.brown-A200-border{border-color:#bcaaa4!important}.brown-A200-border-top{border-top-color:#bcaaa4!important}.brown-A200-border-right{border-right-color:#bcaaa4!important}.brown-A200-border-bottom{border-bottom-color:#bcaaa4!important}.brown-A200-border-left{border-left-color:#bcaaa4!important}.brown-A400-bg{background-color:#8d6e63!important}.md-brown-A400-bg{background-color:#8d6e63!important;color:rgba(255,255,255,.87)}.brown-A400-fg{color:#8d6e63!important}.brown-A400-border{border-color:#8d6e63!important}.brown-A400-border-top{border-top-color:#8d6e63!important}.brown-A400-border-right{border-right-color:#8d6e63!important}.brown-A400-border-bottom{border-bottom-color:#8d6e63!important}.brown-A400-border-left{border-left-color:#8d6e63!important}.brown-A700-bg{background-color:#5d4037!important}.md-brown-A700-bg{background-color:#5d4037!important;color:rgba(255,255,255,.87)}.brown-A700-fg{color:#5d4037!important}.brown-A700-border{border-color:#5d4037!important}.brown-A700-border-top{border-top-color:#5d4037!important}.brown-A700-border-right{border-right-color:#5d4037!important}.brown-A700-border-bottom{border-bottom-color:#5d4037!important}.brown-A700-border-left{border-left-color:#5d4037!important}.grey-50-bg{background-color:#fafafa!important}.md-grey-50-bg{background-color:#fafafa!important;color:rgba(0,0,0,.87)}.grey-50-fg{color:#fafafa!important}.grey-50-border{border-color:#fafafa!important}.grey-50-border-top{border-top-color:#fafafa!important}.grey-50-border-right{border-right-color:#fafafa!important}.grey-50-border-bottom{border-bottom-color:#fafafa!important}.grey-50-border-left{border-left-color:#fafafa!important}.grey-100-bg{background-color:#f5f5f5!important}.md-grey-100-bg{background-color:#f5f5f5!important;color:rgba(0,0,0,.87)}.grey-100-fg{color:#f5f5f5!important}.grey-100-border{border-color:#f5f5f5!important}.grey-100-border-top{border-top-color:#f5f5f5!important}.grey-100-border-right{border-right-color:#f5f5f5!important}.grey-100-border-bottom{border-bottom-color:#f5f5f5!important}.grey-100-border-left{border-left-color:#f5f5f5!important}.grey-200-bg{background-color:#eee!important}.md-grey-200-bg{background-color:#eee!important;color:rgba(0,0,0,.87)}.grey-200-fg{color:#eee!important}.grey-200-border{border-color:#eee!important}.grey-200-border-top{border-top-color:#eee!important}.grey-200-border-right{border-right-color:#eee!important}.grey-200-border-bottom{border-bottom-color:#eee!important}.grey-200-border-left{border-left-color:#eee!important}.grey-300-bg{background-color:#e0e0e0!important}.md-grey-300-bg{background-color:#e0e0e0!important;color:rgba(0,0,0,.87)}.grey-300-fg{color:#e0e0e0!important}.grey-300-border{border-color:#e0e0e0!important}.grey-300-border-top{border-top-color:#e0e0e0!important}.grey-300-border-right{border-right-color:#e0e0e0!important}.grey-300-border-bottom{border-bottom-color:#e0e0e0!important}.grey-300-border-left{border-left-color:#e0e0e0!important}.grey-400-bg{background-color:#bdbdbd!important}.md-grey-400-bg{background-color:#bdbdbd!important;color:rgba(0,0,0,.87)}.grey-400-fg{color:#bdbdbd!important}.grey-400-border{border-color:#bdbdbd!important}.grey-400-border-top{border-top-color:#bdbdbd!important}.grey-400-border-right{border-right-color:#bdbdbd!important}.grey-400-border-bottom{border-bottom-color:#bdbdbd!important}.grey-400-border-left{border-left-color:#bdbdbd!important}.grey-500-bg{background-color:#9e9e9e!important}.md-grey-500-bg{background-color:#9e9e9e!important;color:rgba(0,0,0,.87)}.grey-500-fg{color:#9e9e9e!important}.grey-500-border{border-color:#9e9e9e!important}.grey-500-border-top{border-top-color:#9e9e9e!important}.grey-500-border-right{border-right-color:#9e9e9e!important}.grey-500-border-bottom{border-bottom-color:#9e9e9e!important}.grey-500-border-left{border-left-color:#9e9e9e!important}.md-grey-bg{background-color:#9e9e9e!important;color:rgba(0,0,0,.87)}.grey-bg{background-color:#9e9e9e!important}.grey-fg{color:#9e9e9e!important}.grey-border{border-color:#9e9e9e!important}.grey-border-top{border-top-color:#9e9e9e!important}.grey-border-right{border-right-color:#9e9e9e!important}.grey-border-bottom{border-bottom-color:#9e9e9e!important}.grey-border-left{border-left-color:#9e9e9e!important}.grey-600-bg{background-color:#757575!important}.md-grey-600-bg{background-color:#757575!important;color:rgba(255,255,255,.87)}.grey-600-fg{color:#757575!important}.grey-600-border{border-color:#757575!important}.grey-600-border-top{border-top-color:#757575!important}.grey-600-border-right{border-right-color:#757575!important}.grey-600-border-bottom{border-bottom-color:#757575!important}.grey-600-border-left{border-left-color:#757575!important}.grey-700-bg{background-color:#616161!important}.md-grey-700-bg{background-color:#616161!important;color:rgba(255,255,255,.87)}.grey-700-fg{color:#616161!important}.grey-700-border{border-color:#616161!important}.grey-700-border-top{border-top-color:#616161!important}.grey-700-border-right{border-right-color:#616161!important}.grey-700-border-bottom{border-bottom-color:#616161!important}.grey-700-border-left{border-left-color:#616161!important}.grey-800-bg{background-color:#424242!important}.md-grey-800-bg{background-color:#424242!important;color:rgba(255,255,255,.87)}.grey-800-fg{color:#424242!important}.grey-800-border{border-color:#424242!important}.grey-800-border-top{border-top-color:#424242!important}.grey-800-border-right{border-right-color:#424242!important}.grey-800-border-bottom{border-bottom-color:#424242!important}.grey-800-border-left{border-left-color:#424242!important}.grey-900-bg{background-color:#212121!important}.md-grey-900-bg{background-color:#212121!important;color:rgba(255,255,255,.87)}.grey-900-fg{color:#212121!important}.grey-900-border{border-color:#212121!important}.grey-900-border-top{border-top-color:#212121!important}.grey-900-border-right{border-right-color:#212121!important}.grey-900-border-bottom{border-bottom-color:#212121!important}.grey-900-border-left{border-left-color:#212121!important}.grey-1000-bg{background-color:#000!important}.md-grey-1000-bg{background-color:#000!important}.grey-1000-fg{color:#000!important}.grey-1000-border{border-color:#000!important}.grey-1000-border-top{border-top-color:#000!important}.grey-1000-border-right{border-right-color:#000!important}.grey-1000-border-bottom{border-bottom-color:#000!important}.grey-1000-border-left{border-left-color:#000!important}.grey-A100-bg{background-color:#fff!important}.md-grey-A100-bg{background-color:#fff!important;color:rgba(0,0,0,.87)}.grey-A100-fg{color:#fff!important}.grey-A100-border{border-color:#fff!important}.grey-A100-border-top{border-top-color:#fff!important}.grey-A100-border-right{border-right-color:#fff!important}.grey-A100-border-bottom{border-bottom-color:#fff!important}.grey-A100-border-left{border-left-color:#fff!important}.grey-A200-bg{background-color:#eee!important}.md-grey-A200-bg{background-color:#eee!important;color:rgba(0,0,0,.87)}.grey-A200-fg{color:#eee!important}.grey-A200-border{border-color:#eee!important}.grey-A200-border-top{border-top-color:#eee!important}.grey-A200-border-right{border-right-color:#eee!important}.grey-A200-border-bottom{border-bottom-color:#eee!important}.grey-A200-border-left{border-left-color:#eee!important}.grey-A400-bg{background-color:#bdbdbd!important}.md-grey-A400-bg{background-color:#bdbdbd!important;color:rgba(0,0,0,.87)}.grey-A400-fg{color:#bdbdbd!important}.grey-A400-border{border-color:#bdbdbd!important}.grey-A400-border-top{border-top-color:#bdbdbd!important}.grey-A400-border-right{border-right-color:#bdbdbd!important}.grey-A400-border-bottom{border-bottom-color:#bdbdbd!important}.grey-A400-border-left{border-left-color:#bdbdbd!important}.grey-A700-bg{background-color:#616161!important}.md-grey-A700-bg{background-color:#616161!important;color:rgba(0,0,0,.87)}.grey-A700-fg{color:#616161!important}.grey-A700-border{border-color:#616161!important}.grey-A700-border-top{border-top-color:#616161!important}.grey-A700-border-right{border-right-color:#616161!important}.grey-A700-border-bottom{border-bottom-color:#616161!important}.grey-A700-border-left{border-left-color:#616161!important}.blue-grey-50-bg{background-color:#eceff1!important}.md-blue-grey-50-bg{background-color:#eceff1!important;color:rgba(0,0,0,.87)}.blue-grey-50-fg{color:#eceff1!important}.blue-grey-50-border{border-color:#eceff1!important}.blue-grey-50-border-top{border-top-color:#eceff1!important}.blue-grey-50-border-right{border-right-color:#eceff1!important}.blue-grey-50-border-bottom{border-bottom-color:#eceff1!important}.blue-grey-50-border-left{border-left-color:#eceff1!important}.blue-grey-100-bg{background-color:#cfd8dc!important}.md-blue-grey-100-bg{background-color:#cfd8dc!important;color:rgba(0,0,0,.87)}.blue-grey-100-fg{color:#cfd8dc!important}.blue-grey-100-border{border-color:#cfd8dc!important}.blue-grey-100-border-top{border-top-color:#cfd8dc!important}.blue-grey-100-border-right{border-right-color:#cfd8dc!important}.blue-grey-100-border-bottom{border-bottom-color:#cfd8dc!important}.blue-grey-100-border-left{border-left-color:#cfd8dc!important}.blue-grey-200-bg{background-color:#b0bec5!important}.md-blue-grey-200-bg{background-color:#b0bec5!important;color:rgba(0,0,0,.87)}.blue-grey-200-fg{color:#b0bec5!important}.blue-grey-200-border{border-color:#b0bec5!important}.blue-grey-200-border-top{border-top-color:#b0bec5!important}.blue-grey-200-border-right{border-right-color:#b0bec5!important}.blue-grey-200-border-bottom{border-bottom-color:#b0bec5!important}.blue-grey-200-border-left{border-left-color:#b0bec5!important}.blue-grey-300-bg{background-color:#90a4ae!important}.md-blue-grey-300-bg{background-color:#90a4ae!important;color:rgba(0,0,0,.87)}.blue-grey-300-fg{color:#90a4ae!important}.blue-grey-300-border{border-color:#90a4ae!important}.blue-grey-300-border-top{border-top-color:#90a4ae!important}.blue-grey-300-border-right{border-right-color:#90a4ae!important}.blue-grey-300-border-bottom{border-bottom-color:#90a4ae!important}.blue-grey-300-border-left{border-left-color:#90a4ae!important}.blue-grey-400-bg{background-color:#78909c!important}.md-blue-grey-400-bg{background-color:#78909c!important;color:#fff}.blue-grey-400-fg{color:#78909c!important}.blue-grey-400-border{border-color:#78909c!important}.blue-grey-400-border-top{border-top-color:#78909c!important}.blue-grey-400-border-right{border-right-color:#78909c!important}.blue-grey-400-border-bottom{border-bottom-color:#78909c!important}.blue-grey-400-border-left{border-left-color:#78909c!important}.blue-grey-500-bg{background-color:#607d8b!important}.md-blue-grey-500-bg{background-color:#607d8b!important;color:#fff}.blue-grey-500-fg{color:#607d8b!important}.blue-grey-500-border{border-color:#607d8b!important}.blue-grey-500-border-top{border-top-color:#607d8b!important}.blue-grey-500-border-right{border-right-color:#607d8b!important}.blue-grey-500-border-bottom{border-bottom-color:#607d8b!important}.blue-grey-500-border-left{border-left-color:#607d8b!important}.md-blue-grey-bg{background-color:#607d8b!important;color:#fff}.blue-grey-bg{background-color:#607d8b!important}.blue-grey-fg{color:#607d8b!important}.blue-grey-border{border-color:#607d8b!important}.blue-grey-border-top{border-top-color:#607d8b!important}.blue-grey-border-right{border-right-color:#607d8b!important}.blue-grey-border-bottom{border-bottom-color:#607d8b!important}.blue-grey-border-left{border-left-color:#607d8b!important}.blue-grey-600-bg{background-color:#546e7a!important}.md-blue-grey-600-bg{background-color:#546e7a!important;color:rgba(255,255,255,.87)}.blue-grey-600-fg{color:#546e7a!important}.blue-grey-600-border{border-color:#546e7a!important}.blue-grey-600-border-top{border-top-color:#546e7a!important}.blue-grey-600-border-right{border-right-color:#546e7a!important}.blue-grey-600-border-bottom{border-bottom-color:#546e7a!important}.blue-grey-600-border-left{border-left-color:#546e7a!important}.blue-grey-700-bg{background-color:#455a64!important}.md-blue-grey-700-bg{background-color:#455a64!important;color:rgba(255,255,255,.87)}.blue-grey-700-fg{color:#455a64!important}.blue-grey-700-border{border-color:#455a64!important}.blue-grey-700-border-top{border-top-color:#455a64!important}.blue-grey-700-border-right{border-right-color:#455a64!important}.blue-grey-700-border-bottom{border-bottom-color:#455a64!important}.blue-grey-700-border-left{border-left-color:#455a64!important}.blue-grey-800-bg{background-color:#37474f!important}.md-blue-grey-800-bg{background-color:#37474f!important;color:rgba(255,255,255,.87)}.blue-grey-800-fg{color:#37474f!important}.blue-grey-800-border{border-color:#37474f!important}.blue-grey-800-border-top{border-top-color:#37474f!important}.blue-grey-800-border-right{border-right-color:#37474f!important}.blue-grey-800-border-bottom{border-bottom-color:#37474f!important}.blue-grey-800-border-left{border-left-color:#37474f!important}.blue-grey-900-bg{background-color:#263238!important}.md-blue-grey-900-bg{background-color:#263238!important;color:rgba(255,255,255,.87)}.blue-grey-900-fg{color:#263238!important}.blue-grey-900-border{border-color:#263238!important}.blue-grey-900-border-top{border-top-color:#263238!important}.blue-grey-900-border-right{border-right-color:#263238!important}.blue-grey-900-border-bottom{border-bottom-color:#263238!important}.blue-grey-900-border-left{border-left-color:#263238!important}.blue-grey-A100-bg{background-color:#cfd8dc!important}.md-blue-grey-A100-bg{background-color:#cfd8dc!important;color:rgba(255,255,255,.87)}.blue-grey-A100-fg{color:#cfd8dc!important}.blue-grey-A100-border{border-color:#cfd8dc!important}.blue-grey-A100-border-top{border-top-color:#cfd8dc!important}.blue-grey-A100-border-right{border-right-color:#cfd8dc!important}.blue-grey-A100-border-bottom{border-bottom-color:#cfd8dc!important}.blue-grey-A100-border-left{border-left-color:#cfd8dc!important}.blue-grey-A200-bg{background-color:#b0bec5!important}.md-blue-grey-A200-bg{background-color:#b0bec5!important;color:rgba(255,255,255,.87)}.blue-grey-A200-fg{color:#b0bec5!important}.blue-grey-A200-border{border-color:#b0bec5!important}.blue-grey-A200-border-top{border-top-color:#b0bec5!important}.blue-grey-A200-border-right{border-right-color:#b0bec5!important}.blue-grey-A200-border-bottom{border-bottom-color:#b0bec5!important}.blue-grey-A200-border-left{border-left-color:#b0bec5!important}.blue-grey-A400-bg{background-color:#78909c!important}.md-blue-grey-A400-bg{background-color:#78909c!important;color:rgba(255,255,255,.87)}.blue-grey-A400-fg{color:#78909c!important}.blue-grey-A400-border{border-color:#78909c!important}.blue-grey-A400-border-top{border-top-color:#78909c!important}.blue-grey-A400-border-right{border-right-color:#78909c!important}.blue-grey-A400-border-bottom{border-bottom-color:#78909c!important}.blue-grey-A400-border-left{border-left-color:#78909c!important}.blue-grey-A700-bg{background-color:#455a64!important}.md-blue-grey-A700-bg{background-color:#455a64!important;color:rgba(255,255,255,.87)}.blue-grey-A700-fg{color:#455a64!important}.blue-grey-A700-border{border-color:#455a64!important}.blue-grey-A700-border-top{border-top-color:#455a64!important}.blue-grey-A700-border-right{border-right-color:#455a64!important}.blue-grey-A700-border-bottom{border-bottom-color:#455a64!important}.blue-grey-A700-border-left{border-left-color:#455a64!important}.white-500-bg{background-color:#fff!important}.md-white-500-bg{background-color:#fff!important;color:rgba(0,0,0,.87)}.white-500-fg{color:#fff!important}.white-500-border{border-color:#fff!important}.white-500-border-top{border-top-color:#fff!important}.white-500-border-right{border-right-color:#fff!important}.white-500-border-bottom{border-bottom-color:#fff!important}.white-500-border-left{border-left-color:#fff!important}.md-white-bg{background-color:#fff!important;color:rgba(0,0,0,.87)}.white-bg{background-color:#fff!important}.white-fg{color:#fff!important}.white-border{border-color:#fff!important}.white-border-top{border-top-color:#fff!important}.white-border-right{border-right-color:#fff!important}.white-border-bottom{border-bottom-color:#fff!important}.white-border-left{border-left-color:#fff!important}.black-500-bg{background-color:#000!important}.md-black-500-bg{background-color:#000!important;color:rgba(255,255,255,.87)}.black-500-fg{color:#000!important}.black-500-border{border-color:#000!important}.black-500-border-top{border-top-color:#000!important}.black-500-border-right{border-right-color:#000!important}.black-500-border-bottom{border-bottom-color:#000!important}.black-500-border-left{border-left-color:#000!important}.md-black-bg{background-color:#000!important;color:rgba(255,255,255,.87)}.black-bg{background-color:#000!important}.black-fg{color:#000!important}.black-border{border-color:#000!important}.black-border-top{border-top-color:#000!important}.black-border-right{border-right-color:#000!important}.black-border-bottom{border-bottom-color:#000!important}.black-border-left{border-left-color:#000!important}i,md-icon[md-font-icon]{font-size:24px;width:24px;height:24px;min-width:24px;min-height:24px;line-height:24px}i.s4,md-icon[md-font-icon].s4{font-size:4px!important;width:4px!important;height:4px!important;min-width:4px!important;min-height:4px!important;line-height:4px!important}i.s6,md-icon[md-font-icon].s6{font-size:6px!important;width:6px!important;height:6px!important;min-width:6px!important;min-height:6px!important;line-height:6px!important}i.s8,md-icon[md-font-icon].s8{font-size:8px!important;width:8px!important;height:8px!important;min-width:8px!important;min-height:8px!important;line-height:8px!important}i.s10,md-icon[md-font-icon].s10{font-size:10px!important;width:10px!important;height:10px!important;min-width:10px!important;min-height:10px!important;line-height:10px!important}i.s12,md-icon[md-font-icon].s12{font-size:12px!important;width:12px!important;height:12px!important;min-width:12px!important;min-height:12px!important;line-height:12px!important}i.s14,md-icon[md-font-icon].s14{font-size:14px!important;width:14px!important;height:14px!important;min-width:14px!important;min-height:14px!important;line-height:14px!important}i.s16,md-icon[md-font-icon].s16{font-size:16px!important;width:16px!important;height:16px!important;min-width:16px!important;min-height:16px!important;line-height:16px!important}i.s18,md-icon[md-font-icon].s18{font-size:18px!important;width:18px!important;height:18px!important;min-width:18px!important;min-height:18px!important;line-height:18px!important}i.s20,md-icon[md-font-icon].s20{font-size:20px!important;width:20px!important;height:20px!important;min-width:20px!important;min-height:20px!important;line-height:20px!important}i.s22,md-icon[md-font-icon].s22{font-size:22px!important;width:22px!important;height:22px!important;min-width:22px!important;min-height:22px!important;line-height:22px!important}i.s24,md-icon[md-font-icon].s24{font-size:24px!important;width:24px!important;height:24px!important;min-width:24px!important;min-height:24px!important;line-height:24px!important}i.s26,md-icon[md-font-icon].s26{font-size:26px!important;width:26px!important;height:26px!important;min-width:26px!important;min-height:26px!important;line-height:26px!important}i.s28,md-icon[md-font-icon].s28{font-size:28px!important;width:28px!important;height:28px!important;min-width:28px!important;min-height:28px!important;line-height:28px!important}i.s30,md-icon[md-font-icon].s30{font-size:30px!important;width:30px!important;height:30px!important;min-width:30px!important;min-height:30px!important;line-height:30px!important}i.s32,md-icon[md-font-icon].s32{font-size:32px!important;width:32px!important;height:32px!important;min-width:32px!important;min-height:32px!important;line-height:32px!important}i.s34,md-icon[md-font-icon].s34{font-size:34px!important;width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important;line-height:34px!important}i.s36,md-icon[md-font-icon].s36{font-size:36px!important;width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;line-height:36px!important}i.s38,md-icon[md-font-icon].s38{font-size:38px!important;width:38px!important;height:38px!important;min-width:38px!important;min-height:38px!important;line-height:38px!important}i.s40,md-icon[md-font-icon].s40{font-size:40px!important;width:40px!important;height:40px!important;min-width:40px!important;min-height:40px!important;line-height:40px!important}i.s42,md-icon[md-font-icon].s42{font-size:42px!important;width:42px!important;height:42px!important;min-width:42px!important;min-height:42px!important;line-height:42px!important}i.s44,md-icon[md-font-icon].s44{font-size:44px!important;width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;line-height:44px!important}i.s46,md-icon[md-font-icon].s46{font-size:46px!important;width:46px!important;height:46px!important;min-width:46px!important;min-height:46px!important;line-height:46px!important}i.s48,md-icon[md-font-icon].s48{font-size:48px!important;width:48px!important;height:48px!important;min-width:48px!important;min-height:48px!important;line-height:48px!important}i.s50,md-icon[md-font-icon].s50{font-size:50px!important;width:50px!important;height:50px!important;min-width:50px!important;min-height:50px!important;line-height:50px!important}i.s52,md-icon[md-font-icon].s52{font-size:52px!important;width:52px!important;height:52px!important;min-width:52px!important;min-height:52px!important;line-height:52px!important}i.s54,md-icon[md-font-icon].s54{font-size:54px!important;width:54px!important;height:54px!important;min-width:54px!important;min-height:54px!important;line-height:54px!important}i.s56,md-icon[md-font-icon].s56{font-size:56px!important;width:56px!important;height:56px!important;min-width:56px!important;min-height:56px!important;line-height:56px!important}i.s58,md-icon[md-font-icon].s58{font-size:58px!important;width:58px!important;height:58px!important;min-width:58px!important;min-height:58px!important;line-height:58px!important}i.s60,md-icon[md-font-icon].s60{font-size:60px!important;width:60px!important;height:60px!important;min-width:60px!important;min-height:60px!important;line-height:60px!important}i.s62,md-icon[md-font-icon].s62{font-size:62px!important;width:62px!important;height:62px!important;min-width:62px!important;min-height:62px!important;line-height:62px!important}i.s64,md-icon[md-font-icon].s64{font-size:64px!important;width:64px!important;height:64px!important;min-width:64px!important;min-height:64px!important;line-height:64px!important}i.s66,md-icon[md-font-icon].s66{font-size:66px!important;width:66px!important;height:66px!important;min-width:66px!important;min-height:66px!important;line-height:66px!important}i.s68,md-icon[md-font-icon].s68{font-size:68px!important;width:68px!important;height:68px!important;min-width:68px!important;min-height:68px!important;line-height:68px!important}i.s70,md-icon[md-font-icon].s70{font-size:70px!important;width:70px!important;height:70px!important;min-width:70px!important;min-height:70px!important;line-height:70px!important}i.s72,md-icon[md-font-icon].s72{font-size:72px!important;width:72px!important;height:72px!important;min-width:72px!important;min-height:72px!important;line-height:72px!important}i.s74,md-icon[md-font-icon].s74{font-size:74px!important;width:74px!important;height:74px!important;min-width:74px!important;min-height:74px!important;line-height:74px!important}i.s76,md-icon[md-font-icon].s76{font-size:76px!important;width:76px!important;height:76px!important;min-width:76px!important;min-height:76px!important;line-height:76px!important}i.s78,md-icon[md-font-icon].s78{font-size:78px!important;width:78px!important;height:78px!important;min-width:78px!important;min-height:78px!important;line-height:78px!important}i.s80,md-icon[md-font-icon].s80{font-size:80px!important;width:80px!important;height:80px!important;min-width:80px!important;min-height:80px!important;line-height:80px!important}i.s82,md-icon[md-font-icon].s82{font-size:82px!important;width:82px!important;height:82px!important;min-width:82px!important;min-height:82px!important;line-height:82px!important}i.s84,md-icon[md-font-icon].s84{font-size:84px!important;width:84px!important;height:84px!important;min-width:84px!important;min-height:84px!important;line-height:84px!important}i.s86,md-icon[md-font-icon].s86{font-size:86px!important;width:86px!important;height:86px!important;min-width:86px!important;min-height:86px!important;line-height:86px!important}i.s88,md-icon[md-font-icon].s88{font-size:88px!important;width:88px!important;height:88px!important;min-width:88px!important;min-height:88px!important;line-height:88px!important}i.s90,md-icon[md-font-icon].s90{font-size:90px!important;width:90px!important;height:90px!important;min-width:90px!important;min-height:90px!important;line-height:90px!important}i.s92,md-icon[md-font-icon].s92{font-size:92px!important;width:92px!important;height:92px!important;min-width:92px!important;min-height:92px!important;line-height:92px!important}i.s94,md-icon[md-font-icon].s94{font-size:94px!important;width:94px!important;height:94px!important;min-width:94px!important;min-height:94px!important;line-height:94px!important}i.s96,md-icon[md-font-icon].s96{font-size:96px!important;width:96px!important;height:96px!important;min-width:96px!important;min-height:96px!important;line-height:96px!important}i.s98,md-icon[md-font-icon].s98{font-size:98px!important;width:98px!important;height:98px!important;min-width:98px!important;min-height:98px!important;line-height:98px!important}i.s100,md-icon[md-font-icon].s100{font-size:100px!important;width:100px!important;height:100px!important;min-width:100px!important;min-height:100px!important;line-height:100px!important}i.s102,md-icon[md-font-icon].s102{font-size:102px!important;width:102px!important;height:102px!important;min-width:102px!important;min-height:102px!important;line-height:102px!important}i.s104,md-icon[md-font-icon].s104{font-size:104px!important;width:104px!important;height:104px!important;min-width:104px!important;min-height:104px!important;line-height:104px!important}i.s106,md-icon[md-font-icon].s106{font-size:106px!important;width:106px!important;height:106px!important;min-width:106px!important;min-height:106px!important;line-height:106px!important}i.s108,md-icon[md-font-icon].s108{font-size:108px!important;width:108px!important;height:108px!important;min-width:108px!important;min-height:108px!important;line-height:108px!important}i.s110,md-icon[md-font-icon].s110{font-size:110px!important;width:110px!important;height:110px!important;min-width:110px!important;min-height:110px!important;line-height:110px!important}i.s112,md-icon[md-font-icon].s112{font-size:112px!important;width:112px!important;height:112px!important;min-width:112px!important;min-height:112px!important;line-height:112px!important}i.s114,md-icon[md-font-icon].s114{font-size:114px!important;width:114px!important;height:114px!important;min-width:114px!important;min-height:114px!important;line-height:114px!important}i.s116,md-icon[md-font-icon].s116{font-size:116px!important;width:116px!important;height:116px!important;min-width:116px!important;min-height:116px!important;line-height:116px!important}i.s118,md-icon[md-font-icon].s118{font-size:118px!important;width:118px!important;height:118px!important;min-width:118px!important;min-height:118px!important;line-height:118px!important}i.s120,md-icon[md-font-icon].s120{font-size:120px!important;width:120px!important;height:120px!important;min-width:120px!important;min-height:120px!important;line-height:120px!important}i.s122,md-icon[md-font-icon].s122{font-size:122px!important;width:122px!important;height:122px!important;min-width:122px!important;min-height:122px!important;line-height:122px!important}i.s124,md-icon[md-font-icon].s124{font-size:124px!important;width:124px!important;height:124px!important;min-width:124px!important;min-height:124px!important;line-height:124px!important}i.s126,md-icon[md-font-icon].s126{font-size:126px!important;width:126px!important;height:126px!important;min-width:126px!important;min-height:126px!important;line-height:126px!important}i.s128,md-icon[md-font-icon].s128{font-size:128px!important;width:128px!important;height:128px!important;min-width:128px!important;min-height:128px!important;line-height:128px!important}i.s130,md-icon[md-font-icon].s130{font-size:130px!important;width:130px!important;height:130px!important;min-width:130px!important;min-height:130px!important;line-height:130px!important}i.s132,md-icon[md-font-icon].s132{font-size:132px!important;width:132px!important;height:132px!important;min-width:132px!important;min-height:132px!important;line-height:132px!important}i.s134,md-icon[md-font-icon].s134{font-size:134px!important;width:134px!important;height:134px!important;min-width:134px!important;min-height:134px!important;line-height:134px!important}i.s136,md-icon[md-font-icon].s136{font-size:136px!important;width:136px!important;height:136px!important;min-width:136px!important;min-height:136px!important;line-height:136px!important}i.s138,md-icon[md-font-icon].s138{font-size:138px!important;width:138px!important;height:138px!important;min-width:138px!important;min-height:138px!important;line-height:138px!important}i.s140,md-icon[md-font-icon].s140{font-size:140px!important;width:140px!important;height:140px!important;min-width:140px!important;min-height:140px!important;line-height:140px!important}i.s142,md-icon[md-font-icon].s142{font-size:142px!important;width:142px!important;height:142px!important;min-width:142px!important;min-height:142px!important;line-height:142px!important}i.s144,md-icon[md-font-icon].s144{font-size:144px!important;width:144px!important;height:144px!important;min-width:144px!important;min-height:144px!important;line-height:144px!important}i.s146,md-icon[md-font-icon].s146{font-size:146px!important;width:146px!important;height:146px!important;min-width:146px!important;min-height:146px!important;line-height:146px!important}i.s148,md-icon[md-font-icon].s148{font-size:148px!important;width:148px!important;height:148px!important;min-width:148px!important;min-height:148px!important;line-height:148px!important}i.s150,md-icon[md-font-icon].s150{font-size:150px!important;width:150px!important;height:150px!important;min-width:150px!important;min-height:150px!important;line-height:150px!important}i.s152,md-icon[md-font-icon].s152{font-size:152px!important;width:152px!important;height:152px!important;min-width:152px!important;min-height:152px!important;line-height:152px!important}i.s154,md-icon[md-font-icon].s154{font-size:154px!important;width:154px!important;height:154px!important;min-width:154px!important;min-height:154px!important;line-height:154px!important}i.s156,md-icon[md-font-icon].s156{font-size:156px!important;width:156px!important;height:156px!important;min-width:156px!important;min-height:156px!important;line-height:156px!important}i.s158,md-icon[md-font-icon].s158{font-size:158px!important;width:158px!important;height:158px!important;min-width:158px!important;min-height:158px!important;line-height:158px!important}i.s160,md-icon[md-font-icon].s160{font-size:160px!important;width:160px!important;height:160px!important;min-width:160px!important;min-height:160px!important;line-height:160px!important}i.s162,md-icon[md-font-icon].s162{font-size:162px!important;width:162px!important;height:162px!important;min-width:162px!important;min-height:162px!important;line-height:162px!important}i.s164,md-icon[md-font-icon].s164{font-size:164px!important;width:164px!important;height:164px!important;min-width:164px!important;min-height:164px!important;line-height:164px!important}i.s166,md-icon[md-font-icon].s166{font-size:166px!important;width:166px!important;height:166px!important;min-width:166px!important;min-height:166px!important;line-height:166px!important}i.s168,md-icon[md-font-icon].s168{font-size:168px!important;width:168px!important;height:168px!important;min-width:168px!important;min-height:168px!important;line-height:168px!important}i.s170,md-icon[md-font-icon].s170{font-size:170px!important;width:170px!important;height:170px!important;min-width:170px!important;min-height:170px!important;line-height:170px!important}i.s172,md-icon[md-font-icon].s172{font-size:172px!important;width:172px!important;height:172px!important;min-width:172px!important;min-height:172px!important;line-height:172px!important}i.s174,md-icon[md-font-icon].s174{font-size:174px!important;width:174px!important;height:174px!important;min-width:174px!important;min-height:174px!important;line-height:174px!important}i.s176,md-icon[md-font-icon].s176{font-size:176px!important;width:176px!important;height:176px!important;min-width:176px!important;min-height:176px!important;line-height:176px!important}i.s178,md-icon[md-font-icon].s178{font-size:178px!important;width:178px!important;height:178px!important;min-width:178px!important;min-height:178px!important;line-height:178px!important}i.s180,md-icon[md-font-icon].s180{font-size:180px!important;width:180px!important;height:180px!important;min-width:180px!important;min-height:180px!important;line-height:180px!important}i.s182,md-icon[md-font-icon].s182{font-size:182px!important;width:182px!important;height:182px!important;min-width:182px!important;min-height:182px!important;line-height:182px!important}i.s184,md-icon[md-font-icon].s184{font-size:184px!important;width:184px!important;height:184px!important;min-width:184px!important;min-height:184px!important;line-height:184px!important}i.s186,md-icon[md-font-icon].s186{font-size:186px!important;width:186px!important;height:186px!important;min-width:186px!important;min-height:186px!important;line-height:186px!important}i.s188,md-icon[md-font-icon].s188{font-size:188px!important;width:188px!important;height:188px!important;min-width:188px!important;min-height:188px!important;line-height:188px!important}i.s190,md-icon[md-font-icon].s190{font-size:190px!important;width:190px!important;height:190px!important;min-width:190px!important;min-height:190px!important;line-height:190px!important}i.s192,md-icon[md-font-icon].s192{font-size:192px!important;width:192px!important;height:192px!important;min-width:192px!important;min-height:192px!important;line-height:192px!important}i.s194,md-icon[md-font-icon].s194{font-size:194px!important;width:194px!important;height:194px!important;min-width:194px!important;min-height:194px!important;line-height:194px!important}i.s196,md-icon[md-font-icon].s196{font-size:196px!important;width:196px!important;height:196px!important;min-width:196px!important;min-height:196px!important;line-height:196px!important}i.s198,md-icon[md-font-icon].s198{font-size:198px!important;width:198px!important;height:198px!important;min-width:198px!important;min-height:198px!important;line-height:198px!important}i.s200,md-icon[md-font-icon].s200{font-size:200px!important;width:200px!important;height:200px!important;min-width:200px!important;min-height:200px!important;line-height:200px!important}i.s202,md-icon[md-font-icon].s202{font-size:202px!important;width:202px!important;height:202px!important;min-width:202px!important;min-height:202px!important;line-height:202px!important}i.s204,md-icon[md-font-icon].s204{font-size:204px!important;width:204px!important;height:204px!important;min-width:204px!important;min-height:204px!important;line-height:204px!important}i.s206,md-icon[md-font-icon].s206{font-size:206px!important;width:206px!important;height:206px!important;min-width:206px!important;min-height:206px!important;line-height:206px!important}i.s208,md-icon[md-font-icon].s208{font-size:208px!important;width:208px!important;height:208px!important;min-width:208px!important;min-height:208px!important;line-height:208px!important}i.s210,md-icon[md-font-icon].s210{font-size:210px!important;width:210px!important;height:210px!important;min-width:210px!important;min-height:210px!important;line-height:210px!important}i.s212,md-icon[md-font-icon].s212{font-size:212px!important;width:212px!important;height:212px!important;min-width:212px!important;min-height:212px!important;line-height:212px!important}i.s214,md-icon[md-font-icon].s214{font-size:214px!important;width:214px!important;height:214px!important;min-width:214px!important;min-height:214px!important;line-height:214px!important}i.s216,md-icon[md-font-icon].s216{font-size:216px!important;width:216px!important;height:216px!important;min-width:216px!important;min-height:216px!important;line-height:216px!important}i.s218,md-icon[md-font-icon].s218{font-size:218px!important;width:218px!important;height:218px!important;min-width:218px!important;min-height:218px!important;line-height:218px!important}i.s220,md-icon[md-font-icon].s220{font-size:220px!important;width:220px!important;height:220px!important;min-width:220px!important;min-height:220px!important;line-height:220px!important}i.s222,md-icon[md-font-icon].s222{font-size:222px!important;width:222px!important;height:222px!important;min-width:222px!important;min-height:222px!important;line-height:222px!important}i.s224,md-icon[md-font-icon].s224{font-size:224px!important;width:224px!important;height:224px!important;min-width:224px!important;min-height:224px!important;line-height:224px!important}i.s226,md-icon[md-font-icon].s226{font-size:226px!important;width:226px!important;height:226px!important;min-width:226px!important;min-height:226px!important;line-height:226px!important}i.s228,md-icon[md-font-icon].s228{font-size:228px!important;width:228px!important;height:228px!important;min-width:228px!important;min-height:228px!important;line-height:228px!important}i.s230,md-icon[md-font-icon].s230{font-size:230px!important;width:230px!important;height:230px!important;min-width:230px!important;min-height:230px!important;line-height:230px!important}i.s232,md-icon[md-font-icon].s232{font-size:232px!important;width:232px!important;height:232px!important;min-width:232px!important;min-height:232px!important;line-height:232px!important}i.s234,md-icon[md-font-icon].s234{font-size:234px!important;width:234px!important;height:234px!important;min-width:234px!important;min-height:234px!important;line-height:234px!important}i.s236,md-icon[md-font-icon].s236{font-size:236px!important;width:236px!important;height:236px!important;min-width:236px!important;min-height:236px!important;line-height:236px!important}i.s238,md-icon[md-font-icon].s238{font-size:238px!important;width:238px!important;height:238px!important;min-width:238px!important;min-height:238px!important;line-height:238px!important}i.s240,md-icon[md-font-icon].s240{font-size:240px!important;width:240px!important;height:240px!important;min-width:240px!important;min-height:240px!important;line-height:240px!important}i.s242,md-icon[md-font-icon].s242{font-size:242px!important;width:242px!important;height:242px!important;min-width:242px!important;min-height:242px!important;line-height:242px!important}i.s244,md-icon[md-font-icon].s244{font-size:244px!important;width:244px!important;height:244px!important;min-width:244px!important;min-height:244px!important;line-height:244px!important}i.s246,md-icon[md-font-icon].s246{font-size:246px!important;width:246px!important;height:246px!important;min-width:246px!important;min-height:246px!important;line-height:246px!important}i.s248,md-icon[md-font-icon].s248{font-size:248px!important;width:248px!important;height:248px!important;min-width:248px!important;min-height:248px!important;line-height:248px!important}i.s250,md-icon[md-font-icon].s250{font-size:250px!important;width:250px!important;height:250px!important;min-width:250px!important;min-height:250px!important;line-height:250px!important}i.s252,md-icon[md-font-icon].s252{font-size:252px!important;width:252px!important;height:252px!important;min-width:252px!important;min-height:252px!important;line-height:252px!important}i.s254,md-icon[md-font-icon].s254{font-size:254px!important;width:254px!important;height:254px!important;min-width:254px!important;min-height:254px!important;line-height:254px!important}i.s256,md-icon[md-font-icon].s256{font-size:256px!important;width:256px!important;height:256px!important;min-width:256px!important;min-height:256px!important;line-height:256px!important}@font-face{font-family:icomoon;src:url(../assets/icons/fonts/icomoon.eot?5km1tg);src:url(../assets/icons/fonts/icomoon.eot?#iefix5km1tg) format("embedded-opentype"),url(../assets/icons/fonts/icomoon.ttf?5km1tg) format("truetype"),url(../assets/icons/fonts/icomoon.woff?5km1tg) format("woff"),url(../assets/icons/fonts/icomoon.svg?5km1tg#icomoon) format("svg");font-weight:400;font-style:normal}[class*=' icon-'],[class^=icon-]{font-family:icomoon;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-account-alert:before{content:'\e600'}.icon-account-box-outline:before{content:'\e601'}.icon-account-box:before{content:'\e602'}.icon-account-check:before{content:'\e603'}.icon-account-circle:before{content:'\e604'}.icon-account-key:before{content:'\e605'}.icon-account-location:before{content:'\e606'}.icon-account-minus:before{content:'\e607'}.icon-account-multiple-outline:before{content:'\e608'}.icon-account-multiple-plus:before{content:'\e609'}.icon-account-multiple:before{content:'\e60a'}.icon-account-network:before{content:'\e60b'}.icon-account-outline:before{content:'\e60c'}.icon-account-plus:before{content:'\e60d'}.icon-account-remove:before{content:'\e60e'}.icon-account-search:before{content:'\e60f'}.icon-account-switch:before{content:'\e610'}.icon-account:before{content:'\e611'}.icon-airballoon:before{content:'\e612'}.icon-airplane-off:before{content:'\e613'}.icon-airplane:before{content:'\e614'}.icon-alarm-check:before{content:'\e615'}.icon-alarm-multiple:before{content:'\e616'}.icon-alarm-off:before{content:'\e617'}.icon-alarm-plus:before{content:'\e618'}.icon-alarm:before{content:'\e619'}.icon-album:before{content:'\e61a'}.icon-alert-box:before{content:'\e61b'}.icon-alert-circle:before{content:'\e61c'}.icon-alert-octagon:before{content:'\e61d'}.icon-alert:before{content:'\e61e'}.icon-alpha:before{content:'\e61f'}.icon-alphabetical:before{content:'\e620'}.icon-amazon-clouddrive:before{content:'\e621'}.icon-amazon:before{content:'\e622'}.icon-ambulance:before{content:'\e623'}.icon-android-debug-bridge:before{content:'\e624'}.icon-android-studio:before{content:'\e625'}.icon-android:before{content:'\e626'}.icon-apple-finder:before{content:'\e627'}.icon-apple-ios:before{content:'\e628'}.icon-apple-mobileme:before{content:'\e629'}.icon-apple-safari:before{content:'\e62a'}.icon-apple:before{content:'\e62b'}.icon-appnet:before{content:'\e62c'}.icon-apps:before{content:'\e62d'}.icon-archive:before{content:'\e62e'}.icon-arrange-bring-forward:before{content:'\e62f'}.icon-arrange-bring-to-front:before{content:'\e630'}.icon-arrange-send-backward:before{content:'\e631'}.icon-arrange-send-to-back:before{content:'\e632'}.icon-arrow-all:before{content:'\e633'}.icon-arrow-bottom-left:before{content:'\e634'}.icon-arrow-bottom-right:before{content:'\e635'}.icon-arrow-collapse:before{content:'\e636'}.icon-arrow-down-bold-circle-outline:before{content:'\e637'}.icon-arrow-down-bold-circle:before{content:'\e638'}.icon-arrow-down-bold-hexagon-outline:before{content:'\e639'}.icon-arrow-down-bold:before{content:'\e63a'}.icon-arrow-down:before{content:'\e63b'}.icon-arrow-expand:before{content:'\e63c'}.icon-arrow-left-bold-circle-outline:before{content:'\e63d'}.icon-arrow-left-bold-circle:before{content:'\e63e'}.icon-arrow-left-bold-hexagon-outline:before{content:'\e63f'}.icon-arrow-left-bold:before{content:'\e640'}.icon-arrow-left:before{content:'\e641'}.icon-arrow-right-bold-circle-outline:before{content:'\e642'}.icon-arrow-right-bold-circle:before{content:'\e643'}.icon-arrow-right-bold-hexagon-outline:before{content:'\e644'}.icon-arrow-right-bold:before{content:'\e645'}.icon-arrow-right:before{content:'\e646'}.icon-arrow-top-left:before{content:'\e647'}.icon-arrow-top-right:before{content:'\e648'}.icon-arrow-up-bold-circle-outline:before{content:'\e649'}.icon-arrow-up-bold-circle:before{content:'\e64a'}.icon-arrow-up-bold-hexagon-outline:before{content:'\e64b'}.icon-arrow-up-bold:before{content:'\e64c'}.icon-arrow-up:before{content:'\e64d'}.icon-at:before{content:'\e64e'}.icon-attachment:before{content:'\e64f'}.icon-audiobook:before{content:'\e650'}.icon-auto-fix:before{content:'\e651'}.icon-auto-upload:before{content:'\e652'}.icon-baby:before{content:'\e653'}.icon-backburger:before{content:'\e654'}.icon-backup-restore:before{content:'\e655'}.icon-bank:before{content:'\e656'}.icon-barcode:before{content:'\e657'}.icon-barley:before{content:'\e658'}.icon-barrel:before{content:'\e659'}.icon-basecamp:before{content:'\e65a'}.icon-basket-fill:before{content:'\e65b'}.icon-basket-unfill:before{content:'\e65c'}.icon-basket:before{content:'\e65d'}.icon-battery-10:before{content:'\e65e'}.icon-battery-20:before{content:'\e65f'}.icon-battery-30:before{content:'\e660'}.icon-battery-40:before{content:'\e661'}.icon-battery-50:before{content:'\e662'}.icon-battery-60:before{content:'\e663'}.icon-battery-70:before{content:'\e664'}.icon-battery-80:before{content:'\e665'}.icon-battery-90:before{content:'\e666'}.icon-battery-alert:before{content:'\e667'}.icon-battery-charging-20:before{content:'\e668'}.icon-battery-charging-30:before{content:'\e669'}.icon-battery-charging-40:before{content:'\e66a'}.icon-battery-charging-60:before{content:'\e66b'}.icon-battery-charging-80:before{content:'\e66c'}.icon-battery-charging-90:before{content:'\e66d'}.icon-battery-charging-100:before{content:'\e66e'}.icon-battery-minus:before{content:'\e66f'}.icon-battery-negative:before{content:'\e670'}.icon-battery-outline:before{content:'\e671'}.icon-battery-plus:before{content:'\e672'}.icon-battery-positive:before{content:'\e673'}.icon-battery-standard:before{content:'\e674'}.icon-battery-unknown:before{content:'\e675'}.icon-battery:before{content:'\e676'}.icon-beach:before{content:'\e677'}.icon-beaker-empty-outline:before{content:'\e678'}.icon-beaker-empty:before{content:'\e679'}.icon-beaker-outline:before{content:'\e67a'}.icon-beaker:before{content:'\e67b'}.icon-beats:before{content:'\e67c'}.icon-beer:before{content:'\e67d'}.icon-behance:before{content:'\e67e'}.icon-bell-off:before{content:'\e67f'}.icon-bell-outline:before{content:'\e680'}.icon-bell-ring-outline:before{content:'\e681'}.icon-bell-ring:before{content:'\e682'}.icon-bell-sleep:before{content:'\e683'}.icon-bell:before{content:'\e684'}.icon-beta:before{content:'\e685'}.icon-bike:before{content:'\e686'}.icon-bing:before{content:'\e687'}.icon-binoculars:before{content:'\e688'}.icon-bio:before{content:'\e689'}.icon-bitbucket:before{content:'\e68a'}.icon-black-mesa:before{content:'\e68b'}.icon-blackberry:before{content:'\e68c'}.icon-blinds:before{content:'\e68d'}.icon-block-helper:before{content:'\e68e'}.icon-blogger:before{content:'\e68f'}.icon-bluetooth-audio:before{content:'\e690'}.icon-bluetooth-connect:before{content:'\e691'}.icon-bluetooth-settings:before{content:'\e692'}.icon-bluetooth-transfer:before{content:'\e693'}.icon-bluetooth:before{content:'\e694'}.icon-blur-linear:before{content:'\e695'}.icon-blur-off:before{content:'\e696'}.icon-blur-radial:before{content:'\e697'}.icon-blur:before{content:'\e698'}.icon-bone:before{content:'\e699'}.icon-book-multiple-variant:before{content:'\e69a'}.icon-book-multiple:before{content:'\e69b'}.icon-book-open:before{content:'\e69c'}.icon-book-variant:before{content:'\e69d'}.icon-book:before{content:'\e69e'}.icon-bookmark-check:before{content:'\e69f'}.icon-bookmark-music:before{content:'\e6a0'}.icon-bookmark-outline-plus:before{content:'\e6a1'}.icon-bookmark-outline:before{content:'\e6a2'}.icon-bookmark-plus:before{content:'\e6a3'}.icon-bookmark-remove:before{content:'\e6a4'}.icon-bookmark:before{content:'\e6a5'}.icon-border-all:before{content:'\e6a6'}.icon-border-bottom:before{content:'\e6a7'}.icon-border-color:before{content:'\e6a8'}.icon-border-horizontal:before{content:'\e6a9'}.icon-border-inside:before{content:'\e6aa'}.icon-border-left:before{content:'\e6ab'}.icon-border-none:before{content:'\e6ac'}.icon-border-outside:before{content:'\e6ad'}.icon-border-right:before{content:'\e6ae'}.icon-border-top:before{content:'\e6af'}.icon-border-vertical:before{content:'\e6b0'}.icon-bowling:before{content:'\e6b1'}.icon-box-download:before{content:'\e6b2'}.icon-box-upload:before{content:'\e6b3'}.icon-box:before{content:'\e6b4'}.icon-briefcase-checked:before{content:'\e6b5'}.icon-briefcase-download:before{content:'\e6b6'}.icon-briefcase-upload:before{content:'\e6b7'}.icon-briefcase:before{content:'\e6b8'}.icon-brightness-1:before{content:'\e6b9'}.icon-brightness-2:before{content:'\e6ba'}.icon-brightness-3:before{content:'\e6bb'}.icon-brightness-4:before{content:'\e6bc'}.icon-brightness-5:before{content:'\e6bd'}.icon-brightness-6:before{content:'\e6be'}.icon-brightness-7:before{content:'\e6bf'}.icon-brightness-auto:before{content:'\e6c0'}.icon-brightness:before{content:'\e6c1'}.icon-broom:before{content:'\e6c2'}.icon-brush:before{content:'\e6c3'}.icon-bug:before{content:'\e6c4'}.icon-bulletin-board:before{content:'\e6c5'}.icon-bullhorn:before{content:'\e6c6'}.icon-bus:before{content:'\e6c7'}.icon-cake-variant:before{content:'\e6c8'}.icon-cake:before{content:'\e6c9'}.icon-calculator:before{content:'\e6ca'}.icon-calendar-blank:before{content:'\e6cb'}.icon-calendar-check-multiple:before{content:'\e6cc'}.icon-calendar-check:before{content:'\e6cd'}.icon-calendar-clock:before{content:'\e6ce'}.icon-calendar-multiple:before{content:'\e6cf'}.icon-calendar-plus:before{content:'\e6d0'}.icon-calendar-remove:before{content:'\e6d1'}.icon-calendar-select:before{content:'\e6d2'}.icon-calendar-text:before{content:'\e6d3'}.icon-calendar-today:before{content:'\e6d4'}.icon-calendar:before{content:'\e6d5'}.icon-camcorder-box-off:before{content:'\e6d6'}.icon-camcorder-box:before{content:'\e6d7'}.icon-camcorder-off:before{content:'\e6d8'}.icon-camcorder:before{content:'\e6d9'}.icon-camera-front-variant:before{content:'\e6da'}.icon-camera-front:before{content:'\e6db'}.icon-camera-iris:before{content:'\e6dc'}.icon-camera-party-mode:before{content:'\e6dd'}.icon-camera-rear-variant:before{content:'\e6de'}.icon-camera-rear:before{content:'\e6df'}.icon-camera-switch:before{content:'\e6e0'}.icon-camera-timer:before{content:'\e6e1'}.icon-camera:before{content:'\e6e2'}.icon-cancel:before{content:'\e6e3'}.icon-candycane:before{content:'\e6e4'}.icon-car-wash:before{content:'\e6e5'}.icon-car:before{content:'\e6e6'}.icon-carrot:before{content:'\e6e7'}.icon-cart-outline:before{content:'\e6e8'}.icon-cart:before{content:'\e6e9'}.icon-cash-100:before{content:'\e6ea'}.icon-cash-multiple:before{content:'\e6eb'}.icon-cash-usd:before{content:'\e6ec'}.icon-cash:before{content:'\e6ed'}.icon-cast-connected:before{content:'\e6ee'}.icon-cast:before{content:'\e6ef'}.icon-castle:before{content:'\e6f0'}.icon-cat:before{content:'\e6f1'}.icon-cellphone-android:before{content:'\e6f2'}.icon-cellphone-dock:before{content:'\e6f3'}.icon-cellphone-iphone:before{content:'\e6f4'}.icon-cellphone-link-off:before{content:'\e6f5'}.icon-cellphone-link:before{content:'\e6f6'}.icon-cellphone-settings:before{content:'\e6f7'}.icon-cellphone:before{content:'\e6f8'}.icon-chair-school:before{content:'\e6f9'}.icon-chart-arc:before{content:'\e6fa'}.icon-chart-areaspline:before{content:'\e6fb'}.icon-chart-bar:before{content:'\e6fc'}.icon-chart-histogram:before{content:'\e6fd'}.icon-chart-line:before{content:'\e6fe'}.icon-chart-pie:before{content:'\e6ff'}.icon-check-all:before{content:'\e700'}.icon-check-bookmark:before{content:'\e701'}.icon-check-circle:before{content:'\e702'}.icon-check:before{content:'\e703'}.icon-checkbox-blank-circle-outline:before{content:'\e704'}.icon-checkbox-blank-circle:before{content:'\e705'}.icon-checkbox-blank-outline:before{content:'\e706'}.icon-checkbox-blank:before{content:'\e707'}.icon-checkbox-marked-circle-outline:before{content:'\e708'}.icon-checkbox-marked-circle:before{content:'\e709'}.icon-checkbox-marked-outline:before{content:'\e70a'}.icon-checkbox-marked:before{content:'\e70b'}.icon-checkbox-multiple-blank-outline:before{content:'\e70c'}.icon-checkbox-multiple-blank:before{content:'\e70d'}.icon-checkbox-multiple-marked-outline:before{content:'\e70e'}.icon-checkbox-multiple-marked:before{content:'\e70f'}.icon-checkerboard:before{content:'\e710'}.icon-chevron-double-down:before{content:'\e711'}.icon-chevron-double-left:before{content:'\e712'}.icon-chevron-double-right:before{content:'\e713'}.icon-chevron-double-up:before{content:'\e714'}.icon-chevron-down:before{content:'\e715'}.icon-chevron-left:before{content:'\e716'}.icon-chevron-right:before{content:'\e717'}.icon-chevron-up:before{content:'\e718'}.icon-church:before{content:'\e719'}.icon-cisco-webex:before{content:'\e71a'}.icon-city:before{content:'\e71b'}.icon-clapperboard:before{content:'\e71c'}.icon-clipboard-account:before{content:'\e71d'}.icon-clipboard-alert:before{content:'\e71e'}.icon-clipboard-arrow-down:before{content:'\e71f'}.icon-clipboard-arrow-left:before{content:'\e720'}.icon-clipboard-check:before{content:'\e721'}.icon-clipboard-outline:before{content:'\e722'}.icon-clipboard-text:before{content:'\e723'}.icon-clipboard:before{content:'\e724'}.icon-clippy:before{content:'\e725'}.icon-clock-fast:before{content:'\e726'}.icon-clock:before{content:'\e727'}.icon-close-circle-outline:before{content:'\e728'}.icon-close-circle:before{content:'\e729'}.icon-close-network:before{content:'\e72a'}.icon-close:before{content:'\e72b'}.icon-closed-caption:before{content:'\e72c'}.icon-cloud-check:before{content:'\e72d'}.icon-cloud-circle:before{content:'\e72e'}.icon-cloud-download:before{content:'\e72f'}.icon-cloud-outline-off:before{content:'\e730'}.icon-cloud-outline:before{content:'\e731'}.icon-cloud-upload:before{content:'\e732'}.icon-cloud:before{content:'\e733'}.icon-code-array:before{content:'\e734'}.icon-code-braces:before{content:'\e735'}.icon-code-equal:before{content:'\e736'}.icon-code-greater-than-or-equal:before{content:'\e737'}.icon-code-greater-than:before{content:'\e738'}.icon-code-less-than-or-equal:before{content:'\e739'}.icon-code-less-than:before{content:'\e73a'}.icon-code-not-equal-variant:before{content:'\e73b'}.icon-code-not-equal:before{content:'\e73c'}.icon-code-string:before{content:'\e73d'}.icon-code-tags:before{content:'\e73e'}.icon-codepen:before{content:'\e73f'}.icon-coffee-to-go:before{content:'\e740'}.icon-coffee:before{content:'\e741'}.icon-cog-box:before{content:'\e742'}.icon-cog:before{content:'\e743'}.icon-coin:before{content:'\e744'}.icon-color-helper:before{content:'\e745'}.icon-comment-account-outline:before{content:'\e746'}.icon-comment-account:before{content:'\e747'}.icon-comment-alert-outline:before{content:'\e748'}.icon-comment-alert:before{content:'\e749'}.icon-comment-check-outline:before{content:'\e74a'}.icon-comment-check:before{content:'\e74b'}.icon-comment-multipe-outline:before{content:'\e74c'}.icon-comment-outline:before{content:'\e74d'}.icon-comment-plus-outline:before{content:'\e74e'}.icon-comment-processing-outline:before{content:'\e74f'}.icon-comment-processing:before{content:'\e750'}.icon-comment-remove-outline:before{content:'\e751'}.icon-comment-text-outline:before{content:'\e752'}.icon-comment-text:before{content:'\e753'}.icon-comment:before{content:'\e754'}.icon-compare:before{content:'\e755'}.icon-compass-outline:before{content:'\e756'}.icon-compass:before{content:'\e757'}.icon-console:before{content:'\e758'}.icon-content-copy:before{content:'\e759'}.icon-content-cut:before{content:'\e75a'}.icon-content-duplicate:before{content:'\e75b'}.icon-content-paste:before{content:'\e75c'}.icon-content-save-all:before{content:'\e75d'}.icon-content-save:before{content:'\e75e'}.icon-contrast-box:before{content:'\e75f'}.icon-contrast-circle:before{content:'\e760'}.icon-contrast:before{content:'\e761'}.icon-controller-xbox:before{content:'\e762'}.icon-cow:before{content:'\e763'}.icon-credit-card-multiple:before{content:'\e764'}.icon-credit-card:before{content:'\e765'}.icon-crop-free:before{content:'\e766'}.icon-crop-landscape:before{content:'\e767'}.icon-crop-portrait:before{content:'\e768'}.icon-crop-square:before{content:'\e769'}.icon-crop:before{content:'\e76a'}.icon-crosshairs-gps:before{content:'\e76b'}.icon-crosshairs:before{content:'\e76c'}.icon-crown:before{content:'\e76d'}.icon-cube-outline:before{content:'\e76e'}.icon-cube-unfolded:before{content:'\e76f'}.icon-cube:before{content:'\e770'}.icon-cup-water:before{content:'\e771'}.icon-cup:before{content:'\e772'}.icon-currency-btc:before{content:'\e773'}.icon-currency-eur:before{content:'\e774'}.icon-currency-gbp:before{content:'\e775'}.icon-currency-inr:before{content:'\e776'}.icon-currency-rub:before{content:'\e777'}.icon-currency-try:before{content:'\e778'}.icon-currency-usd:before{content:'\e779'}.icon-cursor-default-outline:before{content:'\e77a'}.icon-cursor-default:before{content:'\e77b'}.icon-cursor-move:before{content:'\e77c'}.icon-cursor-pointer:before{content:'\e77d'}.icon-data:before{content:'\e77e'}.icon-debug-step-into:before{content:'\e77f'}.icon-debug-step-out:before{content:'\e780'}.icon-debug-step-over:before{content:'\e781'}.icon-decimal-decrease:before{content:'\e782'}.icon-decimal-increase:before{content:'\e783'}.icon-delete-variant:before{content:'\e784'}.icon-delete:before{content:'\e785'}.icon-deskphone:before{content:'\e786'}.icon-desktop-mac:before{content:'\e787'}.icon-desktop-tower:before{content:'\e788'}.icon-details:before{content:'\e789'}.icon-deviantart:before{content:'\e78a'}.icon-diamond:before{content:'\e78b'}.icon-dice-1:before{content:'\e78c'}.icon-dice-2:before{content:'\e78d'}.icon-dice-3:before{content:'\e78e'}.icon-dice-4:before{content:'\e78f'}.icon-dice-5:before{content:'\e790'}.icon-dice-6:before{content:'\e791'}.icon-dice:before{content:'\e792'}.icon-directions:before{content:'\e793'}.icon-disk-alert:before{content:'\e794'}.icon-disqus-outline:before{content:'\e795'}.icon-disqus:before{content:'\e796'}.icon-division-box:before{content:'\e797'}.icon-division:before{content:'\e798'}.icon-dns:before{content:'\e799'}.icon-document:before{content:'\e79a'}.icon-domain:before{content:'\e79b'}.icon-dots-horizontal:before{content:'\e79c'}.icon-dots-vertical:before{content:'\e79d'}.icon-download:before{content:'\e79e'}.icon-drag-horizontal:before{content:'\e79f'}.icon-drag-vertical:before{content:'\e7a0'}.icon-drag:before{content:'\e7a1'}.icon-drawing-box:before{content:'\e7a2'}.icon-drawing:before{content:'\e7a3'}.icon-dribbble-box:before{content:'\e7a4'}.icon-dribbble:before{content:'\e7a5'}.icon-drone:before{content:'\e7a6'}.icon-dropbox:before{content:'\e7a7'}.icon-drupal:before{content:'\e7a8'}.icon-duck:before{content:'\e7a9'}.icon-dumbbell:before{content:'\e7aa'}.icon-earth-off:before{content:'\e7ab'}.icon-earth:before{content:'\e7ac'}.icon-ebay:before{content:'\e7ad'}.icon-edge:before{content:'\e7ae'}.icon-eject:before{content:'\e7af'}.icon-elevation-decline:before{content:'\e7b0'}.icon-elevation-rise:before{content:'\e7b1'}.icon-elevator:before{content:'\e7b2'}.icon-email-open:before{content:'\e7b3'}.icon-email-secure:before{content:'\e7b4'}.icon-email:before{content:'\e7b5'}.icon-emoticon-cool:before{content:'\e7b6'}.icon-emoticon-devil:before{content:'\e7b7'}.icon-emoticon-happy:before{content:'\e7b8'}.icon-emoticon-neutral:before{content:'\e7b9'}.icon-emoticon-poop:before{content:'\e7ba'}.icon-emoticon-sad:before{content:'\e7bb'}.icon-emoticon-tongue:before{content:'\e7bc'}.icon-emoticon:before{content:'\e7bd'}.icon-engine-outline:before{content:'\e7be'}.icon-engine:before{content:'\e7bf'}.icon-equal-box:before{content:'\e7c0'}.icon-equal:before{content:'\e7c1'}.icon-eraser:before{content:'\e7c2'}.icon-escalator:before{content:'\e7c3'}.icon-etsy:before{content:'\e7c4'}.icon-evernote:before{content:'\e7c5'}.icon-exclamation:before{content:'\e7c6'}.icon-exit-to-app:before{content:'\e7c7'}.icon-export:before{content:'\e7c8'}.icon-eye-off:before{content:'\e7c9'}.icon-eye:before{content:'\e7ca'}.icon-eyedropper-variant:before{content:'\e7cb'}.icon-eyedropper:before{content:'\e7cc'}.icon-facebook-box:before{content:'\e7cd'}.icon-facebook:before{content:'\e7ce'}.icon-factory:before{content:'\e7cf'}.icon-fan:before{content:'\e7d0'}.icon-fast-forward:before{content:'\e7d1'}.icon-ferry:before{content:'\e7d2'}.icon-file-cloud:before{content:'\e7d3'}.icon-file-delimited:before{content:'\e7d4'}.icon-file-document-box:before{content:'\e7d5'}.icon-file-document:before{content:'\e7d6'}.icon-file-excel-box:before{content:'\e7d7'}.icon-file-excel:before{content:'\e7d8'}.icon-file-find:before{content:'\e7d9'}.icon-file-hidden:before{content:'\e7da'}.icon-file-image-box:before{content:'\e7db'}.icon-file-image:before{content:'\e7dc'}.icon-file-multiple:before{content:'\e7dd'}.icon-file-music:before{content:'\e7de'}.icon-file-outline:before{content:'\e7df'}.icon-file-pdf-box:before{content:'\e7e0'}.icon-file-pdf:before{content:'\e7e1'}.icon-file-powerpoint-box:before{content:'\e7e2'}.icon-file-powerpoint:before{content:'\e7e3'}.icon-file-presentation-box:before{content:'\e7e4'}.icon-file-video:before{content:'\e7e5'}.icon-file-word-box:before{content:'\e7e6'}.icon-file-word:before{content:'\e7e7'}.icon-file-xml:before{content:'\e7e8'}.icon-file:before{content:'\e7e9'}.icon-fill:before{content:'\e7ea'}.icon-film:before{content:'\e7eb'}.icon-filmstrip-off:before{content:'\e7ec'}.icon-filmstrip:before{content:'\e7ed'}.icon-filter-outline:before{content:'\e7ee'}.icon-filter-remove-outline:before{content:'\e7ef'}.icon-filter-remove:before{content:'\e7f0'}.icon-filter-variant:before{content:'\e7f1'}.icon-filter:before{content:'\e7f2'}.icon-fire:before{content:'\e7f3'}.icon-fish:before{content:'\e7f4'}.icon-flag-checkered-variant:before{content:'\e7f5'}.icon-flag-checkered:before{content:'\e7f6'}.icon-flag-outline-variant:before{content:'\e7f7'}.icon-flag-outline:before{content:'\e7f8'}.icon-flag-triangle:before{content:'\e7f9'}.icon-flag-variant:before{content:'\e7fa'}.icon-flag:before{content:'\e7fb'}.icon-flash-auto:before{content:'\e7fc'}.icon-flash-off:before{content:'\e7fd'}.icon-flash:before{content:'\e7fe'}.icon-flashlight-off:before{content:'\e7ff'}.icon-flashlight:before{content:'\e800'}.icon-flattr:before{content:'\e801'}.icon-flickr-after:before{content:'\e802'}.icon-flickr-before:before{content:'\e803'}.icon-flip-to-back:before{content:'\e804'}.icon-flip-to-front:before{content:'\e805'}.icon-floppy:before{content:'\e806'}.icon-flower:before{content:'\e807'}.icon-folder-account:before{content:'\e808'}.icon-folder-download:before{content:'\e809'}.icon-folder-google-drive:before{content:'\e80a'}.icon-folder-image:before{content:'\e80b'}.icon-folder-lock-open:before{content:'\e80c'}.icon-folder-lock:before{content:'\e80d'}.icon-folder-move:before{content:'\e80e'}.icon-folder-multiple-image:before{content:'\e80f'}.icon-folder-multiple-outline:before{content:'\e810'}.icon-folder-multiple:before{content:'\e811'}.icon-folder-outline-lock:before{content:'\e812'}.icon-folder-outline:before{content:'\e813'}.icon-folder-plus:before{content:'\e814'}.icon-folder-remove:before{content:'\e815'}.icon-folder-upload:before{content:'\e816'}.icon-folder:before{content:'\e817'}.icon-food-apple:before{content:'\e818'}.icon-food-variant:before{content:'\e819'}.icon-food:before{content:'\e81a'}.icon-football-helmet:before{content:'\e81b'}.icon-football:before{content:'\e81c'}.icon-format-align-center:before{content:'\e81d'}.icon-format-align-justify:before{content:'\e81e'}.icon-format-align-left:before{content:'\e81f'}.icon-format-align-right:before{content:'\e820'}.icon-format-bold:before{content:'\e821'}.icon-format-clear:before{content:'\e822'}.icon-format-color-fill:before{content:'\e823'}.icon-format-color:before{content:'\e824'}.icon-format-float-center:before{content:'\e825'}.icon-format-float-left:before{content:'\e826'}.icon-format-float-none:before{content:'\e827'}.icon-format-float-right:before{content:'\e828'}.icon-format-header-1:before{content:'\e829'}.icon-format-header-2:before{content:'\e82a'}.icon-format-header-3:before{content:'\e82b'}.icon-format-header-4:before{content:'\e82c'}.icon-format-header-5:before{content:'\e82d'}.icon-format-header-6:before{content:'\e82e'}.icon-format-header-decrease:before{content:'\e82f'}.icon-format-header-down:before{content:'\e830'}.icon-format-header-equal:before{content:'\e831'}.icon-format-header-increase:before{content:'\e832'}.icon-format-header-pound:before{content:'\e833'}.icon-format-header-up:before{content:'\e834'}.icon-format-indent-decrease:before{content:'\e835'}.icon-format-indent-increase:before{content:'\e836'}.icon-format-italic:before{content:'\e837'}.icon-format-line-spacing:before{content:'\e838'}.icon-format-list-bulleted:before{content:'\e839'}.icon-format-list-numbers:before{content:'\e83a'}.icon-format-object-inline:before{content:'\e83b'}.icon-format-object-square:before{content:'\e83c'}.icon-format-object-tight:before{content:'\e83d'}.icon-format-object-top-bottom:before{content:'\e83e'}.icon-format-paint:before{content:'\e83f'}.icon-format-paragraph:before{content:'\e840'}.icon-format-quote:before{content:'\e841'}.icon-format-size:before{content:'\e842'}.icon-format-strikethrough:before{content:'\e843'}.icon-format-subscript:before{content:'\e844'}.icon-format-superscript:before{content:'\e845'}.icon-format-text:before{content:'\e846'}.icon-format-textdirection-l-to-r:before{content:'\e847'}.icon-format-textdirection-r-to-l:before{content:'\e848'}.icon-format-underline:before{content:'\e849'}.icon-forum:before{content:'\e84a'}.icon-forward:before{content:'\e84b'}.icon-foursquare:before{content:'\e84c'}.icon-fridge:before{content:'\e84d'}.icon-fullscreen-exit:before{content:'\e84e'}.icon-fullscreen:before{content:'\e84f'}.icon-function:before{content:'\e850'}.icon-gamepad-variant:before{content:'\e851'}.icon-gamepad:before{content:'\e852'}.icon-gas-station:before{content:'\e853'}.icon-gavel:before{content:'\e854'}.icon-gender-female:before{content:'\e855'}.icon-gender-male-female:before{content:'\e856'}.icon-gender-male:before{content:'\e857'}.icon-gender-transgender:before{content:'\e858'}.icon-gift:before{content:'\e859'}.icon-git:before{content:'\e85a'}.icon-github-box:before{content:'\e85b'}.icon-github:before{content:'\e85c'}.icon-glass-flute:before{content:'\e85d'}.icon-glass-mug:before{content:'\e85e'}.icon-glass-stange:before{content:'\e85f'}.icon-glass-tulip:before{content:'\e860'}.icon-glasses:before{content:'\e861'}.icon-gmail:before{content:'\e862'}.icon-google-chrome:before{content:'\e863'}.icon-google-circles-communities:before{content:'\e864'}.icon-google-circles-extended:before{content:'\e865'}.icon-google-circles-invite:before{content:'\e866'}.icon-google-circles:before{content:'\e867'}.icon-google-controller-off:before{content:'\e868'}.icon-google-controller:before{content:'\e869'}.icon-google-drive:before{content:'\e86a'}.icon-google-earth:before{content:'\e86b'}.icon-google-glass:before{content:'\e86c'}.icon-google-maps:before{content:'\e86d'}.icon-google-pages:before{content:'\e86e'}.icon-google-play:before{content:'\e86f'}.icon-google-plus-box:before{content:'\e870'}.icon-google-plus:before{content:'\e871'}.icon-google:before{content:'\e872'}.icon-grid-off:before{content:'\e873'}.icon-grid:before{content:'\e874'}.icon-group:before{content:'\e875'}.icon-hand-pointing-right:before{content:'\e876'}.icon-hanger:before{content:'\e877'}.icon-hangouts:before{content:'\e878'}.icon-harddisk:before{content:'\e879'}.icon-headphones-box:before{content:'\e87a'}.icon-headphones-dots:before{content:'\e87b'}.icon-headphones:before{content:'\e87c'}.icon-headset-dock:before{content:'\e87d'}.icon-headset-off:before{content:'\e87e'}.icon-headset:before{content:'\e87f'}.icon-heart-box-outline:before{content:'\e880'}.icon-heart-box:before{content:'\e881'}.icon-heart-broken:before{content:'\e882'}.icon-heart-outline:before{content:'\e883'}.icon-heart:before{content:'\e884'}.icon-help-circle:before{content:'\e885'}.icon-help:before{content:'\e886'}.icon-hexagon-outline:before{content:'\e887'}.icon-hexagon:before{content:'\e888'}.icon-history:before{content:'\e889'}.icon-hololens:before{content:'\e88a'}.icon-home-modern:before{content:'\e88b'}.icon-home-variant:before{content:'\e88c'}.icon-home:before{content:'\e88d'}.icon-hops:before{content:'\e88e'}.icon-hospital-building:before{content:'\e88f'}.icon-hospital-marker:before{content:'\e890'}.icon-hospital:before{content:'\e891'}.icon-hotel:before{content:'\e892'}.icon-houzz-box:before{content:'\e893'}.icon-human-child:before{content:'\e894'}.icon-human-male-female:before{content:'\e895'}.icon-human:before{content:'\e896'}.icon-image-album:before{content:'\e897'}.icon-image-area-close:before{content:'\e898'}.icon-image-area:before{content:'\e899'}.icon-image-broken:before{content:'\e89a'}.icon-image-filter-black-white:before{content:'\e89b'}.icon-image-filter-center-focus:before{content:'\e89c'}.icon-image-filter-drama:before{content:'\e89d'}.icon-image-filter-frames:before{content:'\e89e'}.icon-image-filter-hdr:before{content:'\e89f'}.icon-image-filter-none:before{content:'\e8a0'}.icon-image-filter-tilt-shift:before{content:'\e8a1'}.icon-image-filter-vintage:before{content:'\e8a2'}.icon-image-filter:before{content:'\e8a3'}.icon-image:before{content:'\e8a4'}.icon-import:before{content:'\e8a5'}.icon-inbox:before{content:'\e8a6'}.icon-indent:before{content:'\e8a7'}.icon-information-outline:before{content:'\e8a8'}.icon-information:before{content:'\e8a9'}.icon-instagram:before{content:'\e8aa'}.icon-instapaper:before{content:'\e8ab'}.icon-internet-explorer:before{content:'\e8ac'}.icon-invert-colors:before{content:'\e8ad'}.icon-jira:before{content:'\e8ae'}.icon-jsfiddle:before{content:'\e8af'}.icon-keg:before{content:'\e8b0'}.icon-key-change:before{content:'\e8b1'}.icon-key-minus:before{content:'\e8b2'}.icon-key-plus:before{content:'\e8b3'}.icon-key-remove:before{content:'\e8b4'}.icon-key-variant:before{content:'\e8b5'}.icon-key:before{content:'\e8b6'}.icon-keyboard-backspace:before{content:'\e8b7'}.icon-keyboard-caps:before{content:'\e8b8'}.icon-keyboard-close:before{content:'\e8b9'}.icon-keyboard-off:before{content:'\e8ba'}.icon-keyboard-return:before{content:'\e8bb'}.icon-keyboard-tab:before{content:'\e8bc'}.icon-keyboard-variant:before{content:'\e8bd'}.icon-keyboard:before{content:'\e8be'}.icon-label-outline:before{content:'\e8bf'}.icon-label:before{content:'\e8c0'}.icon-language-csharp:before{content:'\e8c1'}.icon-language-css3:before{content:'\e8c2'}.icon-language-html5:before{content:'\e8c3'}.icon-language-javascript:before{content:'\e8c4'}.icon-language-python-text:before{content:'\e8c5'}.icon-language-python:before{content:'\e8c6'}.icon-laptop-chromebook:before{content:'\e8c7'}.icon-laptop-mac:before{content:'\e8c8'}.icon-laptop-windows:before{content:'\e8c9'}.icon-laptop:before{content:'\e8ca'}.icon-lastfm:before{content:'\e8cb'}.icon-launch:before{content:'\e8cc'}.icon-layers-off:before{content:'\e8cd'}.icon-layers:before{content:'\e8ce'}.icon-leaf:before{content:'\e8cf'}.icon-library-books:before{content:'\e8d0'}.icon-library-music:before{content:'\e8d1'}.icon-library-plus:before{content:'\e8d2'}.icon-library:before{content:'\e8d3'}.icon-lightbulb-outline:before{content:'\e8d4'}.icon-lightbulb:before{content:'\e8d5'}.icon-link-off:before{content:'\e8d6'}.icon-link-variant-off:before{content:'\e8d7'}.icon-link-variant:before{content:'\e8d8'}.icon-link:before{content:'\e8d9'}.icon-linkedin-box:before{content:'\e8da'}.icon-linkedin:before{content:'\e8db'}.icon-linode:before{content:'\e8dc'}.icon-linux:before{content:'\e8dd'}.icon-lock-outline:before{content:'\e8de'}.icon-lock-unlocked-outline:before{content:'\e8df'}.icon-lock-unlocked:before{content:'\e8e0'}.icon-lock:before{content:'\e8e1'}.icon-login:before{content:'\e8e2'}.icon-logout:before{content:'\e8e3'}.icon-looks:before{content:'\e8e4'}.icon-loupe:before{content:'\e8e5'}.icon-lumx:before{content:'\e8e6'}.icon-magnet-on:before{content:'\e8e7'}.icon-magnet:before{content:'\e8e8'}.icon-magnify-minus:before{content:'\e8e9'}.icon-magnify-plus:before{content:'\e8ea'}.icon-magnify:before{content:'\e8eb'}.icon-mail-ru:before{content:'\e8ec'}.icon-map-marker-circle:before{content:'\e8ed'}.icon-map-marker-multiple:before{content:'\e8ee'}.icon-map-marker-off:before{content:'\e8ef'}.icon-map-marker-radius:before{content:'\e8f0'}.icon-map-marker:before{content:'\e8f1'}.icon-map:before{content:'\e8f2'}.icon-margin:before{content:'\e8f3'}.icon-markdown:before{content:'\e8f4'}.icon-marker-check:before{content:'\e8f5'}.icon-martini:before{content:'\e8f6'}.icon-material-ui:before{content:'\e8f7'}.icon-maxcdn:before{content:'\e8f8'}.icon-medium:before{content:'\e8f9'}.icon-memory:before{content:'\e8fa'}.icon-menu-down:before{content:'\e8fb'}.icon-menu-left:before{content:'\e8fc'}.icon-menu-right:before{content:'\e8fd'}.icon-menu-up:before{content:'\e8fe'}.icon-menu:before{content:'\e8ff'}.icon-message-alert:before{content:'\e900'}.icon-message-draw:before{content:'\e901'}.icon-message-image:before{content:'\e902'}.icon-message-processing:before{content:'\e903'}.icon-message-reply:before{content:'\e904'}.icon-message-text-outline:before{content:'\e905'}.icon-message-text:before{content:'\e906'}.icon-message-video:before{content:'\e907'}.icon-message:before{content:'\e908'}.icon-microphone-dots:before{content:'\e909'}.icon-microphone-off:before{content:'\e90a'}.icon-microphone-outline:before{content:'\e90b'}.icon-microphone-settings:before{content:'\e90c'}.icon-microphone-variant-off:before{content:'\e90d'}.icon-microphone-variant:before{content:'\e90e'}.icon-microphone:before{content:'\e90f'}.icon-minus-box:before{content:'\e910'}.icon-minus-circle-outline:before{content:'\e911'}.icon-minus-circle:before{content:'\e912'}.icon-minus-network:before{content:'\e913'}.icon-minus:before{content:'\e914'}.icon-monitor-multiple:before{content:'\e915'}.icon-monitor:before{content:'\e916'}.icon-more:before{content:'\e917'}.icon-mouse-off:before{content:'\e918'}.icon-mouse-variant-off:before{content:'\e919'}.icon-mouse-variant:before{content:'\e91a'}.icon-mouse:before{content:'\e91b'}.icon-movie:before{content:'\e91c'}.icon-multiplication-box:before{content:'\e91d'}.icon-multiplication:before{content:'\e91e'}.icon-music-box-outline:before{content:'\e91f'}.icon-music-box:before{content:'\e920'}.icon-music-circle:before{content:'\e921'}.icon-music-note-eighth:before{content:'\e922'}.icon-music-note-half:before{content:'\e923'}.icon-music-note-off:before{content:'\e924'}.icon-music-note-quarter:before{content:'\e925'}.icon-music-note-sixteenth:before{content:'\e926'}.icon-music-note-whole:before{content:'\e927'}.icon-music-note:before{content:'\e928'}.icon-nature-people:before{content:'\e929'}.icon-nature:before{content:'\e92a'}.icon-navigation:before{content:'\e92b'}.icon-needle:before{content:'\e92c'}.icon-nest-protect:before{content:'\e92d'}.icon-nest-thermostat:before{content:'\e92e'}.icon-newspaper:before{content:'\e92f'}.icon-nfc-tap:before{content:'\e930'}.icon-nfc-variant:before{content:'\e931'}.icon-nfc:before{content:'\e932'}.icon-no:before{content:'\e933'}.icon-not-equal:before{content:'\e934'}.icon-note-outline:before{content:'\e935'}.icon-note-text:before{content:'\e936'}.icon-note:before{content:'\e937'}.icon-numeric-0-box-multiple-outline:before{content:'\e938'}.icon-numeric-0-box-outline:before{content:'\e939'}.icon-numeric-0-box:before{content:'\e93a'}.icon-numeric-1-box-multiple-outline:before{content:'\e93b'}.icon-numeric-1-box-outline:before{content:'\e93c'}.icon-numeric-1-box:before{content:'\e93d'}.icon-numeric-2-box-multiple-outline:before{content:'\e93e'}.icon-numeric-2-box-outline:before{content:'\e93f'}.icon-numeric-2-box:before{content:'\e940'}.icon-numeric-3-box-multiple-outline:before{content:'\e941'}.icon-numeric-3-box-outline:before{content:'\e942'}.icon-numeric-3-box:before{content:'\e943'}.icon-numeric-4-box-multiple-outline:before{content:'\e944'}.icon-numeric-4-box-outline:before{content:'\e945'}.icon-numeric-4-box:before{content:'\e946'}.icon-numeric-5-box-multiple-outline:before{content:'\e947'}.icon-numeric-5-box-outline:before{content:'\e948'}.icon-numeric-5-box:before{content:'\e949'}.icon-numeric-6-box-multiple-outline:before{content:'\e94a'}.icon-numeric-6-box-outline:before{content:'\e94b'}.icon-numeric-6-box:before{content:'\e94c'}.icon-numeric-7-box-multiple-outline:before{content:'\e94d'}.icon-numeric-7-box-outline:before{content:'\e94e'}.icon-numeric-7-box:before{content:'\e94f'}.icon-numeric-8-box-multiple-outline:before{content:'\e950'}.icon-numeric-8-box-outline:before{content:'\e951'}.icon-numeric-8-box:before{content:'\e952'}.icon-numeric-9-box-multiple-outline:before{content:'\e953'}.icon-numeric-9-box-outline:before{content:'\e954'}.icon-numeric-9-box:before{content:'\e955'}.icon-numeric-9-plus-box-multiple-outline:before{content:'\e956'}.icon-numeric-9-plus-box-outline:before{content:'\e957'}.icon-numeric-9-plus-box:before{content:'\e958'}.icon-numeric:before{content:'\e959'}.icon-nutriton:before{content:'\e95a'}.icon-odnoklassniki:before{content:'\e95b'}.icon-office:before{content:'\e95c'}.icon-oil:before{content:'\e95d'}.icon-omega:before{content:'\e95e'}.icon-onedrive:before{content:'\e95f'}.icon-open-in-app:before{content:'\e960'}.icon-open-in-new:before{content:'\e961'}.icon-ornament-variant:before{content:'\e962'}.icon-ornament:before{content:'\e963'}.icon-outbox:before{content:'\e964'}.icon-outdent:before{content:'\e965'}.icon-owl:before{content:'\e966'}.icon-package-down:before{content:'\e967'}.icon-package-up:before{content:'\e968'}.icon-package-variant-closed:before{content:'\e969'}.icon-package-variant:before{content:'\e96a'}.icon-package:before{content:'\e96b'}.icon-palette-advanced:before{content:'\e96c'}.icon-palette:before{content:'\e96d'}.icon-panda:before{content:'\e96e'}.icon-pandora:before{content:'\e96f'}.icon-panorama-fisheye:before{content:'\e970'}.icon-panorama-horizontal:before{content:'\e971'}.icon-panorama-vertical:before{content:'\e972'}.icon-panorama-wide-angle:before{content:'\e973'}.icon-panorama:before{content:'\e974'}.icon-paper-cut-vertical:before{content:'\e975'}.icon-paperclip:before{content:'\e976'}.icon-parking:before{content:'\e977'}.icon-pause-circle-outline:before{content:'\e978'}.icon-pause-circle:before{content:'\e979'}.icon-pause-octagon-outline:before{content:'\e97a'}.icon-pause-octagon:before{content:'\e97b'}.icon-pause:before{content:'\e97c'}.icon-paw:before{content:'\e97d'}.icon-pen:before{content:'\e97e'}.icon-pencil-box-outline:before{content:'\e97f'}.icon-pencil-box:before{content:'\e980'}.icon-pencil:before{content:'\e981'}.icon-people:before{content:'\e982'}.icon-percent:before{content:'\e983'}.icon-person-box:before{content:'\e984'}.icon-person-minus:before{content:'\e985'}.icon-person-plus:before{content:'\e986'}.icon-pharmacy:before{content:'\e987'}.icon-phone-bluetooth:before{content:'\e988'}.icon-phone-dots:before{content:'\e989'}.icon-phone-forward:before{content:'\e98a'}.icon-phone-hangup:before{content:'\e98b'}.icon-phone-in-talk:before{content:'\e98c'}.icon-phone-incoming:before{content:'\e98d'}.icon-phone-locked:before{content:'\e98e'}.icon-phone-log:before{content:'\e98f'}.icon-phone-missed:before{content:'\e990'}.icon-phone-outgoing:before{content:'\e991'}.icon-phone-paused:before{content:'\e992'}.icon-phone:before{content:'\e993'}.icon-picture:before{content:'\e994'}.icon-pig:before{content:'\e995'}.icon-pill:before{content:'\e996'}.icon-pin-off:before{content:'\e997'}.icon-pin:before{content:'\e998'}.icon-pine-tree-box:before{content:'\e999'}.icon-pine-tree:before{content:'\e99a'}.icon-pinterest-box:before{content:'\e99b'}.icon-pinterest:before{content:'\e99c'}.icon-pizza:before{content:'\e99d'}.icon-plane:before{content:'\e99e'}.icon-play-box-outline:before{content:'\e99f'}.icon-play-circle-outline:before{content:'\e9a0'}.icon-play-circle:before{content:'\e9a1'}.icon-play:before{content:'\e9a2'}.icon-playlist-minus:before{content:'\e9a3'}.icon-playlist-plus:before{content:'\e9a4'}.icon-playstation:before{content:'\e9a5'}.icon-plus-box:before{content:'\e9a6'}.icon-plus-circle-outline:before{content:'\e9a7'}.icon-plus-circle:before{content:'\e9a8'}.icon-plus-network:before{content:'\e9a9'}.icon-plus-one:before{content:'\e9aa'}.icon-plus:before{content:'\e9ab'}.icon-pocket:before{content:'\e9ac'}.icon-poll-box:before{content:'\e9ad'}.icon-poll:before{content:'\e9ae'}.icon-polymer:before{content:'\e9af'}.icon-popcorn:before{content:'\e9b0'}.icon-pound-box:before{content:'\e9b1'}.icon-pound:before{content:'\e9b2'}.icon-power-settings:before{content:'\e9b3'}.icon-power-socket:before{content:'\e9b4'}.icon-power:before{content:'\e9b5'}.icon-presentation-play:before{content:'\e9b6'}.icon-presentation:before{content:'\e9b7'}.icon-printer-3d:before{content:'\e9b8'}.icon-printer:before{content:'\e9b9'}.icon-pulse:before{content:'\e9ba'}.icon-puzzle:before{content:'\e9bb'}.icon-qrcode:before{content:'\e9bc'}.icon-quadcopter:before{content:'\e9bd'}.icon-quality-high:before{content:'\e9be'}.icon-question-mark-circle:before{content:'\e9bf'}.icon-quick-reply:before{content:'\e9c0'}.icon-quicktime:before{content:'\e9c1'}.icon-rabbit:before{content:'\e9c2'}.icon-radiator:before{content:'\e9c3'}.icon-radio-tower:before{content:'\e9c4'}.icon-radio:before{content:'\e9c5'}.icon-radioactive:before{content:'\e9c6'}.icon-radiobox-blank:before{content:'\e9c7'}.icon-radiobox-marked:before{content:'\e9c8'}.icon-raspberrypi:before{content:'\e9c9'}.icon-rdio:before{content:'\e9ca'}.icon-read:before{content:'\e9cb'}.icon-readability:before{content:'\e9cc'}.icon-receipt:before{content:'\e9cd'}.icon-recycle:before{content:'\e9ce'}.icon-reddit:before{content:'\e9cf'}.icon-redo-variant:before{content:'\e9d0'}.icon-redo:before{content:'\e9d1'}.icon-refresh:before{content:'\e9d2'}.icon-relative-scale:before{content:'\e9d3'}.icon-reload:before{content:'\e9d4'}.icon-remote:before{content:'\e9d5'}.icon-rename-box:before{content:'\e9d6'}.icon-repeat-off:before{content:'\e9d7'}.icon-repeat-once:before{content:'\e9d8'}.icon-repeat:before{content:'\e9d9'}.icon-replay:before{content:'\e9da'}.icon-reply-all:before{content:'\e9db'}.icon-reply:before{content:'\e9dc'}.icon-reproduction:before{content:'\e9dd'}.icon-resize-bottom-right:before{content:'\e9de'}.icon-responsive:before{content:'\e9df'}.icon-restore:before{content:'\e9e0'}.icon-rewind:before{content:'\e9e1'}.icon-ribbon:before{content:'\e9e2'}.icon-road:before{content:'\e9e3'}.icon-rocket:before{content:'\e9e4'}.icon-rotate-3d:before{content:'\e9e5'}.icon-rotate-left-variant:before{content:'\e9e6'}.icon-rotate-left:before{content:'\e9e7'}.icon-rotate-right-variant:before{content:'\e9e8'}.icon-rotate-right:before{content:'\e9e9'}.icon-routes:before{content:'\e9ea'}.icon-rss-box:before{content:'\e9eb'}.icon-ruler:before{content:'\e9ec'}.icon-run:before{content:'\e9ed'}.icon-sale:before{content:'\e9ee'}.icon-satellite-variant:before{content:'\e9ef'}.icon-satellite:before{content:'\e9f0'}.icon-scale-bathroom:before{content:'\e9f1'}.icon-scale:before{content:'\e9f2'}.icon-school:before{content:'\e9f3'}.icon-screen-rotation-lock:before{content:'\e9f4'}.icon-screen-rotation:before{content:'\e9f5'}.icon-script:before{content:'\e9f6'}.icon-security-network:before{content:'\e9f7'}.icon-security:before{content:'\e9f8'}.icon-select-all:before{content:'\e9f9'}.icon-select-inverse:before{content:'\e9fa'}.icon-select-off:before{content:'\e9fb'}.icon-select:before{content:'\e9fc'}.icon-send:before{content:'\e9fd'}.icon-server-minus:before{content:'\e9fe'}.icon-server-network-off:before{content:'\e9ff'}.icon-server-network:before{content:'\ea00'}.icon-server-off:before{content:'\ea01'}.icon-server-plus:before{content:'\ea02'}.icon-server-remove:before{content:'\ea03'}.icon-server-security:before{content:'\ea04'}.icon-server:before{content:'\ea05'}.icon-shape-plus:before{content:'\ea06'}.icon-share-variant:before{content:'\ea07'}.icon-share:before{content:'\ea08'}.icon-shield-outline:before{content:'\ea09'}.icon-shield:before{content:'\ea0a'}.icon-shopping-music:before{content:'\ea0b'}.icon-shopping:before{content:'\ea0c'}.icon-shuffle:before{content:'\ea0d'}.icon-sigma:before{content:'\ea0e'}.icon-sign-caution:before{content:'\ea0f'}.icon-signal:before{content:'\ea10'}.icon-silverware-fork:before{content:'\ea11'}.icon-silverware-spoon:before{content:'\ea12'}.icon-silverware-variant:before{content:'\ea13'}.icon-silverware:before{content:'\ea14'}.icon-sim-alert:before{content:'\ea15'}.icon-sim:before{content:'\ea16'}.icon-sitemap:before{content:'\ea17'}.icon-skip-next:before{content:'\ea18'}.icon-skip-previous:before{content:'\ea19'}.icon-skype-business:before{content:'\ea1a'}.icon-skype:before{content:'\ea1b'}.icon-sleep-off:before{content:'\ea1c'}.icon-sleep:before{content:'\ea1d'}.icon-smoking-off:before{content:'\ea1e'}.icon-smoking:before{content:'\ea1f'}.icon-snapchat:before{content:'\ea20'}.icon-snowman:before{content:'\ea21'}.icon-sofa:before{content:'\ea22'}.icon-sort-alphabetical:before{content:'\ea23'}.icon-sort-ascending:before{content:'\ea24'}.icon-sort-descending:before{content:'\ea25'}.icon-sort-numeric:before{content:'\ea26'}.icon-sort-variant:before{content:'\ea27'}.icon-sort:before{content:'\ea28'}.icon-soundcloud:before{content:'\ea29'}.icon-source-fork:before{content:'\ea2a'}.icon-source-pull:before{content:'\ea2b'}.icon-speaker-off:before{content:'\ea2c'}.icon-speaker:before{content:'\ea2d'}.icon-speedometer:before{content:'\ea2e'}.icon-spellcheck:before{content:'\ea2f'}.icon-spotify:before{content:'\ea30'}.icon-spotlight-beam:before{content:'\ea31'}.icon-spotlight:before{content:'\ea32'}.icon-spreadsheet:before{content:'\ea33'}.icon-square-inc-cash:before{content:'\ea34'}.icon-square-inc:before{content:'\ea35'}.icon-stackoverflow:before{content:'\ea36'}.icon-star-circle:before{content:'\ea37'}.icon-star-half:before{content:'\ea38'}.icon-star-of-david:before{content:'\ea39'}.icon-star-outline:before{content:'\ea3a'}.icon-star:before{content:'\ea3b'}.icon-steam:before{content:'\ea3c'}.icon-stethoscope:before{content:'\ea3d'}.icon-stocking:before{content:'\ea3e'}.icon-stop:before{content:'\ea3f'}.icon-store-24-hour:before{content:'\ea40'}.icon-store:before{content:'\ea41'}.icon-stove:before{content:'\ea42'}.icon-subway:before{content:'\ea43'}.icon-sunglasses:before{content:'\ea44'}.icon-swap-horizontal:before{content:'\ea45'}.icon-swap-vertical:before{content:'\ea46'}.icon-swim:before{content:'\ea47'}.icon-sword:before{content:'\ea48'}.icon-sync-alert:before{content:'\ea49'}.icon-sync-off:before{content:'\ea4a'}.icon-sync:before{content:'\ea4b'}.icon-tab-unselected:before{content:'\ea4c'}.icon-tab:before{content:'\ea4d'}.icon-table-column-plus-after:before{content:'\ea4e'}.icon-table-column-plus-before:before{content:'\ea4f'}.icon-table-column-remove:before{content:'\ea50'}.icon-table-column-width:before{content:'\ea51'}.icon-table-edit:before{content:'\ea52'}.icon-table-large:before{content:'\ea53'}.icon-table-row-height:before{content:'\ea54'}.icon-table-row-plus-after:before{content:'\ea55'}.icon-table-row-plus-before:before{content:'\ea56'}.icon-table-row-remove:before{content:'\ea57'}.icon-table:before{content:'\ea58'}.icon-tablet-android:before{content:'\ea59'}.icon-tablet-ipad:before{content:'\ea5a'}.icon-tablet:before{content:'\ea5b'}.icon-tag-faces:before{content:'\ea5c'}.icon-tag-multiple:before{content:'\ea5d'}.icon-tag-outline:before{content:'\ea5e'}.icon-tag-text-outline:before{content:'\ea5f'}.icon-tag:before{content:'\ea60'}.icon-taxi:before{content:'\ea61'}.icon-teamviewer:before{content:'\ea62'}.icon-telegram:before{content:'\ea63'}.icon-television-guide:before{content:'\ea64'}.icon-television:before{content:'\ea65'}.icon-temperature-celsius:before{content:'\ea66'}.icon-temperature-fahrenheit:before{content:'\ea67'}.icon-temperature-kelvin:before{content:'\ea68'}.icon-tennis:before{content:'\ea69'}.icon-tent:before{content:'\ea6a'}.icon-terrain:before{content:'\ea6b'}.icon-text-to-speech-off:before{content:'\ea6c'}.icon-text-to-speech:before{content:'\ea6d'}.icon-texture:before{content:'\ea6e'}.icon-theater:before{content:'\ea6f'}.icon-theme-light-dark:before{content:'\ea70'}.icon-thermometer-lines:before{content:'\ea71'}.icon-thermometer:before{content:'\ea72'}.icon-thumb-down-outline:before{content:'\ea73'}.icon-thumb-down:before{content:'\ea74'}.icon-thumb-up-outline:before{content:'\ea75'}.icon-thumb-up:before{content:'\ea76'}.icon-thumbs-up-down:before{content:'\ea77'}.icon-ticket-account:before{content:'\ea78'}.icon-ticket:before{content:'\ea79'}.icon-tie:before{content:'\ea7a'}.icon-tile-four:before{content:'\ea7b'}.icon-timelapse:before{content:'\ea7c'}.icon-timer-3:before{content:'\ea7d'}.icon-timer-10:before{content:'\ea7e'}.icon-timer-off:before{content:'\ea7f'}.icon-timer-sand:before{content:'\ea80'}.icon-timer:before{content:'\ea81'}.icon-timetable:before{content:'\ea82'}.icon-toggle-switch-off:before{content:'\ea83'}.icon-toggle-switch-on:before{content:'\ea84'}.icon-tooltip-edit:before{content:'\ea85'}.icon-tooltip-image:before{content:'\ea86'}.icon-tooltip-outline-plus:before{content:'\ea87'}.icon-tooltip-outline:before{content:'\ea88'}.icon-tooltip-text:before{content:'\ea89'}.icon-tooltip:before{content:'\ea8a'}.icon-tor:before{content:'\ea8b'}.icon-traffic-light:before{content:'\ea8c'}.icon-train:before{content:'\ea8d'}.icon-tram:before{content:'\ea8e'}.icon-transcribe-close:before{content:'\ea8f'}.icon-transcribe:before{content:'\ea90'}.icon-transfer:before{content:'\ea91'}.icon-trash:before{content:'\ea92'}.icon-tree:before{content:'\ea93'}.icon-trello:before{content:'\ea94'}.icon-trending-down:before{content:'\ea95'}.icon-trending-neutral:before{content:'\ea96'}.icon-trending-up:before{content:'\ea97'}.icon-truck:before{content:'\ea98'}.icon-tshirt-crew:before{content:'\ea99'}.icon-tshirt-v:before{content:'\ea9a'}.icon-tumblr-reblog:before{content:'\ea9b'}.icon-tumblr:before{content:'\ea9c'}.icon-twitch:before{content:'\ea9d'}.icon-twitter-box:before{content:'\ea9e'}.icon-twitter-circle:before{content:'\ea9f'}.icon-twitter-retweet:before{content:'\eaa0'}.icon-twitter:before{content:'\eaa1'}.icon-ubuntu:before{content:'\eaa2'}.icon-umbrella-outline:before{content:'\eaa3'}.icon-umbrella:before{content:'\eaa4'}.icon-undo-variant:before{content:'\eaa5'}.icon-undo:before{content:'\eaa6'}.icon-unfold-less:before{content:'\eaa7'}.icon-unfold-more:before{content:'\eaa8'}.icon-ungroup:before{content:'\eaa9'}.icon-untappd:before{content:'\eaaa'}.icon-upload:before{content:'\eaab'}.icon-usb:before{content:'\eaac'}.icon-vector-curve:before{content:'\eaad'}.icon-vector-point:before{content:'\eaae'}.icon-vector-square:before{content:'\eaaf'}.icon-verified:before{content:'\eab0'}.icon-vibration:before{content:'\eab1'}.icon-video-off:before{content:'\eab2'}.icon-video-switch:before{content:'\eab3'}.icon-video:before{content:'\eab4'}.icon-view-agenda:before{content:'\eab5'}.icon-view-array:before{content:'\eab6'}.icon-view-carousel:before{content:'\eab7'}.icon-view-column:before{content:'\eab8'}.icon-view-dashboard:before{content:'\eab9'}.icon-view-day:before{content:'\eaba'}.icon-view-headline:before{content:'\eabb'}.icon-view-list:before{content:'\eabc'}.icon-view-module:before{content:'\eabd'}.icon-view-quilt:before{content:'\eabe'}.icon-view-stream:before{content:'\eabf'}.icon-view-week:before{content:'\eac0'}.icon-vimeo:before{content:'\eac1'}.icon-vine:before{content:'\eac2'}.icon-vk-box:before{content:'\eac3'}.icon-vk-circle:before{content:'\eac4'}.icon-vk:before{content:'\eac5'}.icon-voicemail:before{content:'\eac6'}.icon-volume-high:before{content:'\eac7'}.icon-volume-low:before{content:'\eac8'}.icon-volume-medium:before{content:'\eac9'}.icon-volume-off:before{content:'\eaca'}.icon-volume:before{content:'\eacb'}.icon-vpn:before{content:'\eacc'}.icon-walk:before{content:'\eacd'}.icon-wallet-giftcard:before{content:'\eace'}.icon-wallet-membership:before{content:'\eacf'}.icon-wallet-travel:before{content:'\ead0'}.icon-wallet:before{content:'\ead1'}.icon-washing-machine:before{content:'\ead2'}.icon-watch-export:before{content:'\ead3'}.icon-watch-import:before{content:'\ead4'}.icon-watch:before{content:'\ead5'}.icon-water-off:before{content:'\ead6'}.icon-water-pump:before{content:'\ead7'}.icon-water:before{content:'\ead8'}.icon-weather-cloudy:before{content:'\ead9'}.icon-weather-fog:before{content:'\eada'}.icon-weather-hail:before{content:'\eadb'}.icon-weather-lightning:before{content:'\eadc'}.icon-weather-night:before{content:'\eadd'}.icon-weather-partlycloudy:before{content:'\eade'}.icon-weather-pouring:before{content:'\eadf'}.icon-weather-rainy:before{content:'\eae0'}.icon-weather-snowy:before{content:'\eae1'}.icon-weather-sunny:before{content:'\eae2'}.icon-weather-sunset-down:before{content:'\eae3'}.icon-weather-sunset-up:before{content:'\eae4'}.icon-weather-sunset:before{content:'\eae5'}.icon-weather-windy-variant:before{content:'\eae6'}.icon-weather-windy:before{content:'\eae7'}.icon-web:before{content:'\eae8'}.icon-webcam:before{content:'\eae9'}.icon-weight-kilogram:before{content:'\eaea'}.icon-weight:before{content:'\eaeb'}.icon-whatsapp:before{content:'\eaec'}.icon-wheelchair-accessibility:before{content:'\eaed'}.icon-white-balance-auto:before{content:'\eaee'}.icon-white-balance-incandescent:before{content:'\eaef'}.icon-white-balance-irradescent:before{content:'\eaf0'}.icon-white-balance-sunny:before{content:'\eaf1'}.icon-wifi:before{content:'\eaf2'}.icon-wii:before{content:'\eaf3'}.icon-wikipedia:before{content:'\eaf4'}.icon-window-close:before{content:'\eaf5'}.icon-window-closed:before{content:'\eaf6'}.icon-window-maximize:before{content:'\eaf7'}.icon-window-minimize:before{content:'\eaf8'}.icon-window-open:before{content:'\eaf9'}.icon-window-restore:before{content:'\eafa'}.icon-windows:before{content:'\eafb'}.icon-wordpress:before{content:'\eafc'}.icon-worker:before{content:'\eafd'}.icon-wunderlist:before{content:'\eafe'}.icon-xbox-controller-off:before{content:'\eaff'}.icon-xbox-controller:before{content:'\eb00'}.icon-xbox:before{content:'\eb01'}.icon-xda:before{content:'\eb02'}.icon-xml:before{content:'\eb03'}.icon-yeast:before{content:'\eb04'}.icon-yelp:before{content:'\eb05'}.icon-youtube-play:before{content:'\eb06'}.icon-youtube:before{content:'\eb07'}.icon-zip-box:before{content:'\eb08'}.avatar{width:40px;min-width:40px;height:40px;line-height:40px;margin:0 8px 0 0;border-radius:50%;font-size:17px;font-weight:500;text-align:center;color:#fff}.avatar.square{border-radius:0}.avatar.small{width:20px;min-width:20px;height:20px;line-height:20px}.avatar.big{width:72px;min-width:72px;height:72px;line-height:72px}.avatar.huge{width:96px;min-width:96px;height:96px;line-height:96px}.form-wrapper{background:#fff;padding:16px}.form-wrapper .form-title{font-size:21px;padding:8px 0}.navigation-simple .item{position:relative;cursor:pointer;text-align:left;margin:0;padding:0 24px;text-transform:none;line-height:48px;max-height:48px;height:48px}.navigation-simple .item md-icon{margin:0 16px 0 0}.navigation-simple .item .title{font-size:13px;font-weight:500;line-height:1}.navigation-simple .item.selected{background-color:rgba(0,0,0,.06)}.navigation-simple .subheader{font-size:13px;border-top:1px solid rgba(0,0,0,.12);font-weight:500;margin-top:8px}.navigation-simple .subheader.light{border-top:1px solid rgba(255,255,255,.12)}.navigation-simple md-divider{margin:8px 0}.simple-pagination{position:relative;display:inline-flex;flex-direction:row;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12);background-color:#fff;padding:0 8px}.simple-pagination .pagination-item{min-width:48px;min-height:56px;line-height:56px;border-radius:0;margin:0;font-weight:400;color:rgba(0,0,0,.54)}.simple-pagination .pagination-item:hover{color:rgba(0,0,0,.87)}.simple-pagination .pagination-item.active{cursor:default;color:rgba(0,0,0,.87)}.simple-pagination .pagination-item.disabled{cursor:default;color:rgba(0,0,0,.26)}.price-tables .price-table{position:relative;background-color:#fff;width:280px;border-radius:2px;margin:24px 24px 0 0;overflow:hidden}.price-tables .price-table.style-1 .package-type{font-size:17px;padding:16px 24px}.price-tables .price-table.style-1 .package-type .sale{font-size:13px;font-weight:600}.price-tables .price-table.style-1 .price{padding:32px 32px 16px 32px}.price-tables .price-table.style-1 .price .currency{padding-right:4px;font-size:24px;font-weight:500;color:rgba(0,0,0,.54)}.price-tables .price-table.style-1 .price .value{font-size:72px;font-weight:300;line-height:1}.price-tables .price-table.style-1 .price .period{padding:0 0 5px 4px;font-size:17px;color:rgba(0,0,0,.54)}.price-tables .price-table.style-1 md-divider{margin:16px 32px}.price-tables .price-table.style-1 .terms{padding:16px 32px;font-size:15px}.price-tables .price-table.style-1 .cta-button{margin:16px auto 32px auto;width:128px}.price-tables .price-table.style-2 .badge{position:absolute;top:0;left:50%;transform:translateX(-50%);font-size:11px;font-weight:500;padding:6px 8px}.price-tables .price-table.style-2 .package-type{padding:48px 32px 24px 32px;font-size:20px;font-weight:500;text-align:center}.price-tables .price-table.style-2 .price{padding:0 32px 8px 32px}.price-tables .price-table.style-2 .price .currency{padding-right:4px;font-size:24px;font-weight:500;color:rgba(0,0,0,.54)}.price-tables .price-table.style-2 .price .value{font-size:56px;font-weight:300;line-height:1}.price-tables .price-table.style-2 .period{padding:0 32px;font-size:15px;font-weight:500;color:rgba(0,0,0,.54);text-align:center}.price-tables .price-table.style-2 .terms{padding:32px;font-size:15px}.price-tables .price-table.style-2 .terms .term{padding-bottom:8px}.price-tables .price-table.style-2 .terms .term:last-child{padding-bottom:0}.price-tables .price-table.style-2 .cta-button{margin:8px auto 32px auto;width:128px}.price-tables .price-table.style-3 .package-type{padding:32px;text-align:center}.price-tables .price-table.style-3 .package-type .title{font-size:34px}.price-tables .price-table.style-3 .package-type .subtitle{font-size:17px;color:rgba(0,0,0,.54);font-weight:500}.price-tables .price-table.style-3 .price{padding:16px 32px}.price-tables .price-table.style-3 .price .currency{padding-right:4px;font-size:15px;font-weight:500}.price-tables .price-table.style-3 .price .value{font-size:34px;font-weight:300;line-height:1}.price-tables .price-table.style-3 .price .period{padding-left:4px;text-align:center}.price-tables .price-table.style-3 .terms{margin:32px;font-size:15px;color:rgba(0,0,0,.54)}.price-tables .price-table.style-3 .terms .term{padding-bottom:16px}.price-tables .price-table.style-3 .terms .term:last-child{padding-bottom:0}.price-tables .price-table.style-3 .cta-button{margin:8px 32px}.price-tables .price-table.style-3 .note{padding:8px 32px 16px 32px;text-align:center;color:rgba(0,0,0,.54)}.simple-table-container{background:#fff}.simple-table-container .table-title{font-size:20px;padding:24px}table.simple{width:100%;border:none;border-spacing:0;text-align:left}table.simple thead tr th{padding:16px 8px;font-weight:500;color:rgba(0,0,0,.54);border-bottom:1px solid rgba(0,0,0,.12);white-space:nowrap;min-width:120px}table.simple thead tr th:first-child{padding-left:24px}table.simple thead tr th:last-child{padding-right:24px}table.simple tbody tr td{padding:16px 8px;border-bottom:1px solid rgba(0,0,0,.12)}table.simple tbody tr td:first-child{padding-left:24px}table.simple tbody tr td:last-child{padding-right:24px}table.simple tbody tr:last-child td{border-bottom:none}table.simple.clickable tbody tr{cursor:pointer}table.simple.clickable tbody tr:hover{background:rgba(0,0,0,.03)}html{font-size:62.5%;font-family:Roboto,"Helvetica Neue",Arial,sans-serif;line-height:1.4;letter-spacing:-.1px}body{font-size:1.3rem}body,html{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}form{font-size:1.6rem}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-weight:400}.h1,h1{font-size:2.4rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.6rem}.h4,h4{font-size:1.4rem}.h5,h5{font-size:1.3rem}.h6,h6{font-size:1.2rem}a{text-decoration:none}a:active,a:hover{text-decoration:underline}abbr{cursor:help;border-bottom:1px dotted rgba(0,0,0,.54)}blockquote{border-left:3px solid rgba(0,0,0,.12);font-style:italic;margin:1em 0;padding-left:16px}blockquote footer{font-style:normal}blockquote footer:before{content:'\2014 \00A0'}blockquote.reverse{border-left:none;border-right:3px solid rgba(0,0,0,.12);text-align:right;padding-left:0;padding-right:16px}blockquote.reverse footer:before{content:''}blockquote.reverse footer:after{content:'\2014 \00A0'}code{font-family:Monaco,Menlo,Consolas,"Ubuntu Mono",monospace}code:not(.highlight){background:rgba(0,0,0,.065);color:#106cc8;margin:0 1px;padding:2px 3px;border-radius:2px}dl dt{font-weight:700}dl dd{margin:4px 0 16px 0}mark{background:#f7f49a}pre{line-height:1.6;margin:8px 16px;white-space:pre-wrap}small{font-size:80%}table thead tr th{text-align:left}.text-italic{font-style:italic}.text-semibold{font-weight:600}.text-bold,strong{font-weight:700}.text-strike{text-decoration:line-through}.text-super{vertical-align:super}.text-sub{vertical-align:sub}.text-capitalize{text-transform:capitalize}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-weight-100{font-weight:100}.font-weight-200{font-weight:200}.font-weight-300{font-weight:300}.font-weight-400{font-weight:400}.font-weight-500{font-weight:500}.font-weight-600{font-weight:600}.font-weight-700{font-weight:700}.font-weight-800{font-weight:800}.font-weight-900{font-weight:900}.font-size-2{font-size:2px}.font-size-4{font-size:4px}.font-size-6{font-size:6px}.font-size-8{font-size:8px}.font-size-10{font-size:10px}.font-size-12{font-size:12px}.font-size-14{font-size:14px}.font-size-16{font-size:16px}.font-size-18{font-size:18px}.font-size-20{font-size:20px}.font-size-22{font-size:22px}.font-size-24{font-size:24px}.font-size-26{font-size:26px}.font-size-28{font-size:28px}.font-size-30{font-size:30px}.font-size-32{font-size:32px}.font-size-34{font-size:34px}.font-size-36{font-size:36px}.font-size-38{font-size:38px}.font-size-40{font-size:40px}.font-size-42{font-size:42px}.font-size-44{font-size:44px}.font-size-46{font-size:46px}.font-size-48{font-size:48px}.font-size-50{font-size:50px}.font-size-52{font-size:52px}.font-size-54{font-size:54px}.font-size-56{font-size:56px}.font-size-58{font-size:58px}.font-size-60{font-size:60px}.font-size-62{font-size:62px}.font-size-64{font-size:64px}.font-size-66{font-size:66px}.font-size-68{font-size:68px}.font-size-70{font-size:70px}.font-size-72{font-size:72px}.font-size-74{font-size:74px}.font-size-76{font-size:76px}.font-size-78{font-size:78px}.font-size-80{font-size:80px}.font-size-82{font-size:82px}.font-size-84{font-size:84px}.font-size-86{font-size:86px}.font-size-88{font-size:88px}.font-size-90{font-size:90px}.font-size-92{font-size:92px}.font-size-94{font-size:94px}.font-size-96{font-size:96px}.font-size-98{font-size:98px}.font-size-100{font-size:100px}.font-size-102{font-size:102px}.font-size-104{font-size:104px}.font-size-106{font-size:106px}.font-size-108{font-size:108px}.font-size-110{font-size:110px}.font-size-112{font-size:112px}.font-size-114{font-size:114px}.font-size-116{font-size:116px}.font-size-118{font-size:118px}.font-size-120{font-size:120px}.line-height-2{line-height:2px}.line-height-4{line-height:4px}.line-height-6{line-height:6px}.line-height-8{line-height:8px}.line-height-10{line-height:10px}.line-height-12{line-height:12px}.line-height-14{line-height:14px}.line-height-16{line-height:16px}.line-height-18{line-height:18px}.line-height-20{line-height:20px}.line-height-22{line-height:22px}.line-height-24{line-height:24px}.line-height-26{line-height:26px}.line-height-28{line-height:28px}.line-height-30{line-height:30px}.line-height-32{line-height:32px}.line-height-34{line-height:34px}.line-height-36{line-height:36px}.line-height-38{line-height:38px}.line-height-40{line-height:40px}.line-height-42{line-height:42px}.line-height-44{line-height:44px}.line-height-46{line-height:46px}.line-height-48{line-height:48px}.line-height-50{line-height:50px}.line-height-52{line-height:52px}.line-height-54{line-height:54px}.line-height-56{line-height:56px}.line-height-58{line-height:58px}.line-height-60{line-height:60px}.line-height-62{line-height:62px}.line-height-64{line-height:64px}.line-height-66{line-height:66px}.line-height-68{line-height:68px}.line-height-70{line-height:70px}.line-height-72{line-height:72px}.line-height-74{line-height:74px}.line-height-76{line-height:76px}.line-height-78{line-height:78px}.line-height-80{line-height:80px}.line-height-82{line-height:82px}.line-height-84{line-height:84px}.line-height-86{line-height:86px}.line-height-88{line-height:88px}.line-height-90{line-height:90px}.line-height-92{line-height:92px}.line-height-94{line-height:94px}.line-height-96{line-height:96px}.line-height-98{line-height:98px}.line-height-100{line-height:100px}.line-height-102{line-height:102px}.line-height-104{line-height:104px}.line-height-106{line-height:106px}.line-height-108{line-height:108px}.line-height-110{line-height:110px}.line-height-112{line-height:112px}.line-height-114{line-height:114px}.line-height-116{line-height:116px}.line-height-118{line-height:118px}.line-height-120{line-height:120px}.text-boxed,.text-boxed-light{border-radius:2px;padding:4px 8px;margin:0 8px;font-size:11px;font-weight:500;color:rgba(0,0,0,.54);background-color:rgba(0,0,0,.12);white-space:nowrap}.text-boxed-light{background-color:rgba(255,255,255,.7)}.text-truncate{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-nowrap{white-space:nowrap}.angular-google-map-container{height:400px}.moment-picker .moment-picker-container{width:296px;border:none;border-radius:2px;box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12);margin-left:0;padding:8px}.moment-picker .moment-picker-container td,.moment-picker .moment-picker-container th{min-width:0;width:40px;height:40px;padding:8px;text-shadow:none;border-radius:35px}.moment-picker .moment-picker-container td:hover,.moment-picker .moment-picker-container th:hover{background:#f5f5f5;background-image:none}.moment-picker .moment-picker-container td.selected{background:#03a9f4;background-image:none}.moment-picker .moment-picker-container .header-view th{border-radius:0;white-space:nowrap;width:auto}.moment-picker .moment-picker-container .header-view th:first-child,.moment-picker .moment-picker-container .header-view th:last-child{width:20%}.c3{transition:all .3s ease}.c3 svg{font:12px RobotoDraft,Roboto,'Helvetica Neue',sans-serif}.c3 line,.c3 path{fill:none;stroke:#000}.c3 text{font-family:Roboto,"Helvetica Neue",Arial,sans-serif;user-select:none}.c3 .c3-bars path,.c3 .c3-event-rect,.c3 .c3-legend-item-tile,.c3 .c3-xgrid-focus,.c3 .c3-ygrid{shape-rendering:crispEdges}.c3 .c3-chart-line{transition:all .3s ease}.c3 .c3-line{stroke-width:1px}.c3.stroke-3 .c3-line{stroke-width:3px}.c3.stroke-2 .c3-line{stroke-width:2px}.c3 .c3-circle{transition:all .3s ease;stroke:#fff;stroke-width:2}.c3 .c3-circle._expanded_{stroke-width:3;stroke:#fff}.c3 .c3-chart-arc path{stroke:#fff}.c3 .c3-chart-arc text{fill:#fff;font-size:13px}.c3 .c3-grid line{stroke:rgba(0,0,0,.04);stroke-width:1px;stroke-dasharray:0}.c3 .c3-grid text{fill:#aaa}.c3 .c3-axis .tick{stroke-width:0}.c3 .c3-axis text{fill:rgba(0,0,0,.33)}.c3 .c3-axis line,.c3 .c3-axis path{stroke:rgba(0,0,0,.04)}.c3 .c3-xgrid,.c3 .c3-ygrid{stroke-dasharray:0 0}.c3 .c3-text.c3-empty{fill:grey;font-size:2em}.c3 .c3-bar{stroke-width:0}.c3 .c3-bar._expanded_{fill-opacity:.75}.c3 .c3-target.c3-focused{opacity:1}.c3 .c3-target.c3-focused .c3-target.c3-focused path.c3-step,.c3 .c3-target.c3-focused path.c3-line{stroke-width:3px;transition:all .3s ease}.c3 .c3-target.c3-defocused{opacity:.3!important}.c3 .c3-region{fill:#4682b4;fill-opacity:.1}.c3 .c3-brush .extent{fill-opacity:.1}.c3 .c3-legend-item{font-size:12px}.c3 .c3-legend-item-hidden{opacity:.15}.c3 .c3-legend-background{opacity:.75;fill:#fff;stroke:#d3d3d3;stroke-width:1}.c3 .c3-tooltip-container{z-index:10}.c3 .c3-tooltip{border-collapse:collapse;border-spacing:0;background-color:#fff;empty-cells:show;box-shadow:0 2px 4px -1px rgba(0,0,0,.14),0 4px 5px 0 rgba(0,0,0,.098),0 1px 10px 0 rgba(0,0,0,.084);opacity:1;border-radius:2px;overflow:hidden;padding:4px 0}.c3 .c3-tooltip tr{border:none}.c3 .c3-tooltip th{background-color:transparent;font-size:14px;font-weight:400;padding:8px 12px;text-align:left;color:rgba(0,0,0,.54)}.c3 .c3-tooltip td{font-size:13px;padding:4px 12px!important;background-color:#fff;border-left:none;color:rgba(0,0,0,.84)}.c3 .c3-tooltip td>span{display:inline-block;width:10px;height:10px;margin-right:6px}.c3 .c3-tooltip td.value{font-size:14px!important;text-align:right;color:rgba(0,0,0,.84)}.c3 .c3-area{stroke-width:0;opacity:.2}.c3 .c3-chart-arcs-title{dominant-baseline:middle;font-size:1.3em}.c3 .c3-chart-arcs .c3-chart-arcs-background{fill:#e0e0e0;stroke:none}.c3 .c3-chart-arcs .c3-chart-arcs-gauge-unit{fill:#000;font-size:16px}.c3 .c3-chart-arcs .c3-chart-arcs-gauge-max{fill:#777}.c3 .c3-chart-arcs .c3-chart-arcs-gauge-min{fill:#777}.c3 .c3-chart-arc .c3-gauge-value{fill:#000}.ct-label{font-size:13px}.ct-chart-donut .ct-label,.ct-chart-pie .ct-label{font-size:13px}.bar-legend,.chart-legend,.doughnut-legend,.line-legend,.pie-legend,.polararea-legend,.radar-legend{margin-top:15px}table.dataTable{width:100%;margin:0 auto;clear:both;border-spacing:0}table.dataTable thead tr{background:#fff}table.dataTable thead th{text-align:left;vertical-align:middle;border-bottom:1px solid rgba(0,0,0,.12);padding:16px 8px}table.dataTable thead th:first-child{padding-left:24px}table.dataTable thead th:last-child{border-right:none;padding-right:24px}table.dataTable thead th:active{outline:0}table.dataTable thead th.dt-head-left{text-align:left}table.dataTable thead th.dt-head-center{text-align:center}table.dataTable thead th.dt-head-right{text-align:right}table.dataTable thead th.dt-head-justify{text-align:justify}table.dataTable thead th.dt-head-nowrap{white-space:nowrap}table.dataTable thead th .table-header .column-title{display:block;font-weight:600;white-space:nowrap}table.dataTable thead th .table-header .selectize-control{margin-top:15px}table.dataTable thead th .table-header .selectize-control.single .selectize-input{padding:7px 10px}table.dataTable thead th .table-header .selectize-control.single .selectize-input:after{right:10px;border-width:5px 4px 0 4px;border-color:rgba(0,0,0,.12) transparent transparent transparent}table.dataTable thead th .table-header .column-search-input{display:inline-block;margin-top:15px;width:100%;height:33px}table.dataTable thead td{padding:15px;vertical-align:middle}table.dataTable thead td:active{outline:0}table.dataTable thead td.dt-head-left{text-align:left}table.dataTable thead td.dt-head-center{text-align:center}table.dataTable thead td.dt-head-right{text-align:right}table.dataTable thead td.dt-head-justify{text-align:justify}table.dataTable thead td.dt-head-nowrap{white-space:nowrap}table.dataTable thead .sorting,table.dataTable thead .sorting_asc,table.dataTable thead .sorting_desc{background:0 0}table.dataTable thead .sorting .table-header .column-title,table.dataTable thead .sorting_asc .table-header .column-title,table.dataTable thead .sorting_desc .table-header .column-title{cursor:pointer}table.dataTable thead .sorting .table-header .column-title:after,table.dataTable thead .sorting_asc .table-header .column-title:after,table.dataTable thead .sorting_desc .table-header .column-title:after{position:relative;font-family:icomoon;font-weight:400;margin-left:10px;top:2px;font-size:16px;color:rgba(0,0,0,.54)}table.dataTable thead .sorting .table-header .column-title:after{content:'\eaa8'}table.dataTable thead .sorting_asc .table-header .column-title:after{content:'\e718'}table.dataTable thead .sorting_desc .table-header .column-title:after{content:'\e715'}table.dataTable tfoot th{font-weight:600;text-align:left;padding:10px 18px 6px 18px;border-top:1px solid #111}table.dataTable tfoot th.dt-head-left{text-align:left}table.dataTable tfoot th.dt-head-center{text-align:center}table.dataTable tfoot th.dt-head-right{text-align:right}table.dataTable tfoot th.dt-head-justify{text-align:justify}table.dataTable tfoot th.dt-head-nowrap{white-space:nowrap}table.dataTable tfoot td{padding:10px 18px 6px 18px;border-top:1px solid #111}table.dataTable tfoot td.dt-head-left{text-align:left}table.dataTable tfoot td.dt-head-center{text-align:center}table.dataTable tfoot td.dt-head-right{text-align:right}table.dataTable tfoot td.dt-head-justify{text-align:justify}table.dataTable tfoot td.dt-head-nowrap{white-space:nowrap}table.dataTable tbody tr{background-color:#fff}table.dataTable tbody tr.selected{background-color:#b0bed9}table.dataTable tbody tr.details-open td.detail-column i{background:#fff}table.dataTable tbody tr.details-row.odd tr{background:#fff}table.dataTable tbody tr.details-row>td{padding:0}table.dataTable tbody th{padding:14px 15px;vertical-align:middle}table.dataTable tbody th.dt-body-left{text-align:left}table.dataTable tbody th.dt-body-center{text-align:center}table.dataTable tbody th.dt-body-right{text-align:right}table.dataTable tbody th.dt-body-justify{text-align:justify}table.dataTable tbody th.dt-body-nowrap{white-space:nowrap}table.dataTable tbody td{padding:16px 8px;vertical-align:middle}table.dataTable tbody td:first-child{padding-left:24px}table.dataTable tbody td:last-child{padding-right:24px}table.dataTable tbody td.dt-body-left{text-align:left}table.dataTable tbody td.dt-body-center{text-align:center}table.dataTable tbody td.dt-body-right{text-align:right}table.dataTable tbody td.dt-body-justify{text-align:justify}table.dataTable tbody td.dt-body-nowrap{white-space:nowrap}table.dataTable th.dt-left{text-align:left}table.dataTable th.dt-center{text-align:center}table.dataTable th.dt-right{text-align:right}table.dataTable th.dt-justify{text-align:justify}table.dataTable th.dt-nowrap{white-space:nowrap}table.dataTable td.dt-left{text-align:left}table.dataTable td.dt-center{text-align:center}table.dataTable td.dataTables_empty{height:51px;text-align:center}table.dataTable td.dt-right{text-align:right}table.dataTable td.dt-justify{text-align:justify}table.dataTable td.dt-nowrap{white-space:nowrap}table.dataTable.row-border thead{border-bottom:1px solid rgba(0,0,0,.12)}table.dataTable.row-border tbody tr:first-child th{border-top:none}table.dataTable.row-border tbody tr:first-child td{border-top:none}table.dataTable.row-border tbody tr:last-child td{border-bottom:1px solid rgba(0,0,0,.12)}table.dataTable.row-border tbody th{border-top:1px solid rgba(0,0,0,.12)}table.dataTable.row-border tbody td{border-top:1px solid rgba(0,0,0,.12)}table.dataTable.cell-border tbody tr:first-child th{border-top:none}table.dataTable.cell-border tbody tr:first-child td{border-top:none}table.dataTable.cell-border tbody th{border-top:1px solid rgba(0,0,0,.12);border-right:1px solid rgba(0,0,0,.12)}table.dataTable.cell-border tbody th:last-child{border-right:none}table.dataTable.cell-border tbody td{border-top:1px solid rgba(0,0,0,.12);border-right:1px solid rgba(0,0,0,.12)}table.dataTable.cell-border tbody td:last-child{border-right:none}table.dataTable.stripe tbody tr.odd{background-color:#fff}table.dataTable.stripe tbody tr.odd.selected{background-color:#abb9d3}table.dataTable.hover tbody tr:hover{background-color:#f5f5f5}table.dataTable.hover tbody tr:hover.selected{background-color:#a9b7d1}table.dataTable.hover tbody tr.odd:hover{background-color:#f5f5f5}table.dataTable.hover tbody tr.odd:hover.selected{background-color:#a9b7d1}table.dataTable.hover tbody tr.even:hover{background-color:#f5f5f5}table.dataTable.hover tbody tr.even:hover.selected{background-color:#a9b7d1}table.dataTable.order-column tbody tr>.sorting_1{background-color:#f9f9f9}table.dataTable.order-column tbody tr>.sorting_2{background-color:#f9f9f9}table.dataTable.order-column tbody tr>.sorting_3{background-color:#f9f9f9}table.dataTable.order-column tbody tr.selected>.sorting_1{background-color:#acbad4}table.dataTable.order-column tbody tr.selected>.sorting_2{background-color:#acbad4}table.dataTable.order-column tbody tr.selected>.sorting_3{background-color:#acbad4}table.dataTable.order-column.stripe tbody tr.odd>.sorting_1{background-color:#f1f1f1}table.dataTable.order-column.stripe tbody tr.odd>.sorting_2{background-color:#f3f3f3}table.dataTable.order-column.stripe tbody tr.odd>.sorting_3{background-color:#f5f5f5}table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_1{background-color:#a6b3cd}table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_2{background-color:#a7b5ce}table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_3{background-color:#a9b6d0}table.dataTable.order-column.stripe tbody tr.even>.sorting_1{background-color:#f9f9f9}table.dataTable.order-column.stripe tbody tr.even>.sorting_2{background-color:#fbfbfb}table.dataTable.order-column.stripe tbody tr.even>.sorting_3{background-color:#fdfdfd}table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_1{background-color:#acbad4}table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_2{background-color:#adbbd6}table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_3{background-color:#afbdd8}table.dataTable.order-column.hover tbody tr:hover>.sorting_1{background-color:#eaeaea}table.dataTable.order-column.hover tbody tr:hover>.sorting_2{background-color:#ebebeb}table.dataTable.order-column.hover tbody tr:hover>.sorting_3{background-color:#eee}table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_1{background-color:#a1aec7}table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_2{background-color:#a2afc8}table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_3{background-color:#a4b2cb}table.dataTable.order-column.hover tbody tr.odd:hover>.sorting_1{background-color:#eaeaea}table.dataTable.order-column.hover tbody tr.odd:hover>.sorting_2{background-color:#ebebeb}table.dataTable.order-column.hover tbody tr.odd:hover>.sorting_3{background-color:#eee}table.dataTable.order-column.hover tbody tr.odd:hover.selected>.sorting_1{background-color:#a1aec7}table.dataTable.order-column.hover tbody tr.odd:hover.selected>.sorting_2{background-color:#a2afc8}table.dataTable.order-column.hover tbody tr.odd:hover.selected>.sorting_3{background-color:#a4b2cb}table.dataTable.order-column.hover tbody tr.even:hover>.sorting_1{background-color:#eaeaea}table.dataTable.order-column.hover tbody tr.even:hover>.sorting_2{background-color:#ebebeb}table.dataTable.order-column.hover tbody tr.even:hover>.sorting_3{background-color:#eee}table.dataTable.order-column.hover tbody tr.even:hover.selected>.sorting_1{background-color:#a1aec7}table.dataTable.order-column.hover tbody tr.even:hover.selected>.sorting_2{background-color:#a2afc8}table.dataTable.order-column.hover tbody tr.even:hover.selected>.sorting_3{background-color:#a4b2cb}table.dataTable.no-footer{border-bottom:none}table.dataTable.nowrap th{white-space:nowrap}table.dataTable.nowrap td{white-space:nowrap}table.dataTable.compact thead th{padding:5px 9px}table.dataTable.compact thead td{padding:5px 9px}table.dataTable.compact tfoot th{padding:5px 9px 3px 9px}table.dataTable.compact tfoot td{padding:5px 9px 3px 9px}table.dataTable.compact tbody th{padding:4px 5px}table.dataTable.compact tbody td{padding:4px 5px}.dataTables_wrapper{display:flex;flex:1 0 auto;flex-direction:column;min-height:0}.dataTables_wrapper .top{padding:16px 24px}.dataTables_wrapper .bottom{display:flex;min-height:64px;justify-content:space-between;padding:16px 8px;border-top:1px solid rgba(0,0,0,.12)}.dataTables_wrapper .bottom .left{display:flex;flex:0 0 50%;max-width:50%;align-self:center;padding:0 8px}.dataTables_wrapper .bottom .left .length{display:block}.dataTables_wrapper .bottom .right{display:flex;flex:0 0 50%;max-width:50%;align-self:center;justify-content:flex-end;padding:0 8px}.dataTables_wrapper .bottom .right .info{display:block;align-self:center}.dataTables_wrapper .bottom .right .info .dataTables_info{padding:0 8px;font-weight:600}.dataTables_wrapper .bottom .right .pagination{display:block;align-self:center;white-space:nowrap}.dataTables_wrapper .bottom .right .pagination .dataTables_paginate{padding:0;margin:0!important}.dataTables_wrapper .dataTables_filter{float:right}.dataTables_wrapper .dataTables_filter input{margin-left:.5em;border:1px solid rgba(0,0,0,.12);height:24px;padding:4px 8px}.dataTables_wrapper .dataTables_paginate .paginate_button{background:#fff;color:rgba(0,0,0,.87);border:1px solid rgba(0,0,0,.12);padding:9px 12px;border-radius:2px;cursor:pointer;user-select:none;margin:0 2px}.dataTables_wrapper .dataTables_paginate .paginate_button:hover{box-shadow:inset 999em 0 0 0 rgba(0,0,0,.05);color:rgba(0,0,0,.87)!important;border:1px solid rgba(0,0,0,.12)!important;background:0 0}.dataTables_wrapper .dataTables_paginate .paginate_button:active{box-shadow:inset 999em 0 0 0 rgba(0,0,0,.08),inset 0 1px 3px 0 rgba(0,0,0,.1),0 1px 0 0 rgba(255,255,255,.35)}.dataTables_wrapper .dataTables_paginate .paginate_button.current,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover{color:rgba(0,0,0,.54)!important;border-color:rgba(0,0,0,.12)!important;background:#fff!important;box-shadow:none!important;cursor:default}.dataTables_wrapper .dataTables_processing{position:absolute;top:50%;left:50%;width:100%;height:40px;margin-left:-50%;margin-top:-25px;padding-top:20px;text-align:center;font-size:1.2em;background-color:#fff;background:-webkit-gradient(linear,left top,right top,color-stop(0,rgba(255,255,255,0)),color-stop(25%,rgba(255,255,255,.9)),color-stop(75%,rgba(255,255,255,.9)),color-stop(100%,rgba(255,255,255,0)));background:-webkit-linear-gradient(left,rgba(255,255,255,0) 0,rgba(255,255,255,.9) 25%,rgba(255,255,255,.9) 75%,rgba(255,255,255,0) 100%);background:-moz-linear-gradient(left,rgba(255,255,255,0) 0,rgba(255,255,255,.9) 25%,rgba(255,255,255,.9) 75%,rgba(255,255,255,0) 100%);background:-ms-linear-gradient(left,rgba(255,255,255,0) 0,rgba(255,255,255,.9) 25%,rgba(255,255,255,.9) 75%,rgba(255,255,255,0) 100%);background:-o-linear-gradient(left,rgba(255,255,255,0) 0,rgba(255,255,255,.9) 25%,rgba(255,255,255,.9) 75%,rgba(255,255,255,0) 100%);background:linear-gradient(to right,rgba(255,255,255,0) 0,rgba(255,255,255,.9) 25%,rgba(255,255,255,.9) 75%,rgba(255,255,255,0) 100%)}.dataTables_wrapper .dataTables_scroll{display:flex;flex:1 1 0;flex-direction:column;clear:both;min-height:0}.dataTables_wrapper .dataTables_scroll table.dataTable{box-shadow:none}.dataTables_wrapper .dataTables_scroll table.dataTable.row-border thead{border:none}.dataTables_wrapper .dataTables_scroll .dataTables_scrollHead{display:flex;min-height:56px;box-shadow:0 0 0 1px rgba(0,0,0,.095),0 1px 1px 0 rgba(0,0,0,.1),0 2px 1px 0 rgba(0,0,0,.05);background:#fff;overflow:visible!important}.dataTables_wrapper .dataTables_scroll .dataTables_scrollHead tr th:last-child .table-header .column-title{position:relative;left:7px}.dataTables_wrapper .dataTables_scroll .dataTables_scrollBody{display:flex;overflow-x:hidden!important;overflow-y:scroll!important;-webkit-overflow-scrolling:touch}.dataTables_wrapper .dataTables_scroll .dataTables_scrollBody th>.dataTables_sizing{height:0;overflow:hidden;margin:0!important;padding:0!important}.dataTables_wrapper .dataTables_scroll .dataTables_scrollBody td>.dataTables_sizing{height:0;overflow:hidden;margin:0!important;padding:0!important}.dataTables_wrapper.no-footer .dataTables_scrollBody{border-bottom:none}.dataTables_wrapper.no-footer .dataTables_scrollBody table,.dataTables_wrapper.no-footer .dataTables_scrollHead table{border-bottom:none}.dataTables_wrapper:after{visibility:hidden;display:block;content:'';clear:both;height:0}table.dataTable .show-details{padding:5px 10px;font-weight:700}table.dataTable .action-buttons{display:flex;justify-content:center}table.dataTable .action-buttons .button{padding:8px}.fullpage-datatable .dataTables_wrapper{height:100%;max-height:100%}.explorer-11 .fullpage-datatable .dataTables_scroll{flex:1}table.dataTable.dtr-inline.collapsed.dtr-inline.collapsed>tbody>tr>td:first-child,table.dataTable.dtr-inline.collapsed.dtr-inline.collapsed>tbody>tr>th:first-child{padding-left:40px}table.dataTable.dtr-inline.collapsed.dtr-inline.collapsed>tbody>tr>td:first-child:before,table.dataTable.dtr-inline.collapsed.dtr-inline.collapsed>tbody>tr>th:first-child:before{content:'+';width:15px;height:15px;line-height:15px;top:50%;margin-top:-7px;left:8px;color:rgba(0,0,0,.54);background:0 0;border:none;box-shadow:0 0 0 2px rgba(0,0,0,.54);font-weight:700}table.dataTable.dtr-inline.collapsed.dtr-inline.collapsed>tbody>tr.parent>td:first-child:before,table.dataTable.dtr-inline.collapsed.dtr-inline.collapsed>tbody>tr.parent>th:first-child:before{background:0 0}table.dataTable.dtr-inline.collapsed>tbody>tr.child ul{display:block}table.dataTable.dtr-inline.collapsed>tbody>tr.child ul li{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;border-bottom:1px solid rgba(0,0,0,.12);padding:8px 0}table.dataTable.dtr-inline.collapsed>tbody>tr.child ul li:first-child{padding-top:0}table.dataTable.dtr-inline.collapsed>tbody>tr.child ul li:last-child{border-bottom:none;padding-bottom:0}table.dataTable.dtr-inline.collapsed>tbody>tr.child ul li .dtr-title{margin-right:8px}[hljs],hljs{display:block;overflow-x:auto;color:#333;background:#f8f8f8;-webkit-text-size-adjust:none}.diff .hljs-header,.hljs-comment{color:#998;font-style:italic}.css .rule .hljs-keyword,.hljs-keyword,.hljs-request,.hljs-status,.hljs-subst,.hljs-winutils,.nginx .hljs-title{color:#333;font-weight:700}.hljs-hexcolor,.hljs-number,.ruby .hljs-constant{color:teal}.hljs-doctag,.hljs-string,.hljs-tag .hljs-value,.tex .hljs-formula{color:#d14}.hljs-id,.hljs-title,.scss .hljs-preprocessor{color:#900;font-weight:700}.hljs-list .hljs-keyword,.hljs-subst{font-weight:400}.hljs-class .hljs-title,.hljs-type,.tex .hljs-command,.vhdl .hljs-literal{color:#458;font-weight:700}.django .hljs-tag .hljs-keyword,.hljs-rule .hljs-property,.hljs-tag,.hljs-tag .hljs-title{color:navy;font-weight:400}.hljs-attribute,.hljs-name,.hljs-variable,.lisp .hljs-body{color:teal}.hljs-regexp{color:#009926}.clojure .hljs-keyword,.hljs-prompt,.hljs-symbol,.lisp .hljs-keyword,.ruby .hljs-symbol .hljs-string,.scheme .hljs-keyword,.tex .hljs-special{color:#990073}.hljs-built_in{color:#0086b3}.hljs-cdata,.hljs-doctype,.hljs-pi,.hljs-pragma,.hljs-preprocessor,.hljs-shebang{color:#999;font-weight:700}.hljs-deletion{background:#fdd}.hljs-addition{background:#dfd}.diff .hljs-change{background:#0086b3}.hljs-chunk{color:#aaa}nvd3{display:block;width:100%;height:100%}nvd3.remove-x-lines .nv-x .tick line{display:none}nvd3.remove-y-lines .nv-y .tick line{display:none}nvd3.remove-line-stroke .nv-groups path.nv-line{stroke-width:0!important}nvd3.remove-opacity .nv-groups .nv-group{fill-opacity:1!important}nvd3.show-line-points .nv-line .nv-scatter .nv-groups .nv-point{fill-opacity:1!important;stroke-opacity:1!important}.nvd3 text{font-family:Roboto,"Helvetica Neue",Arial,sans-serif}.nvd3 line.nv-guideline{stroke:rgba(0,0,0,.54)}.nvd3 .nv-groups .nv-point.hover{stroke-width:3px!important;fill-opacity:1!important;stroke-opacity:1!important}.nvtooltip{background:0 0;color:#fff;padding:0;border:none}.nvtooltip.gravity-n:after{display:block;position:absolute;content:'';width:0;height:0;left:50%;bottom:100%;margin-left:-5px;border:5px solid transparent;border-bottom-color:rgba(0,0,0,.87)}.nvtooltip.gravity-s:after{display:block;position:absolute;content:'';width:0;height:0;top:100%;left:50%;margin-left:-5px;border:5px solid transparent;border-top-color:rgba(0,0,0,.87)}.nvtooltip.gravity-e:after{display:block;position:absolute;content:'';width:0;height:0;top:50%;right:0;margin-top:-6px;margin-right:-11px;border:6px solid transparent;border-left-color:rgba(0,0,0,.87)}.nvtooltip.gravity-w:after{display:block;position:absolute;content:'';width:0;height:0;top:50%;margin-top:-6px;margin-left:-11px;border:6px solid transparent;border-right-color:rgba(0,0,0,.87)}.nvtooltip table{background:rgba(0,0,0,.87);padding:8px 12px;margin:0;border-radius:2px}.nvtooltip table tbody tr td.legend-color-guide div{border:none}.nvtooltip table tbody tr td:last-child{padding-right:0}.ps-container:hover .ps-in-scrolling{pointer-events:auto}.ps-container .ps-in-scrolling{pointer-events:auto}.ps-container>.ps-scrollbar-x-rail{background:0 0!important;margin:4px 0;height:4px;z-index:49}.ps-container>.ps-scrollbar-x-rail>.ps-scrollbar-x{height:4px}.ps-container>.ps-scrollbar-y-rail{background:0 0!important;margin:4px 0;width:4px;z-index:49}.ps-container>.ps-scrollbar-y-rail>.ps-scrollbar-y{width:4px}.ta-root{display:block}.ta-root .ta-scroll-window.form-control{border:1px solid rgba(0,0,0,.12)}.ta-root.focussed>.ta-scroll-window.form-control{outline:0 solid transparent;border:1px solid rgba(0,0,0,.12);box-shadow:none}.ta-root textarea.ta-editor.ta-html{resize:vertical;width:100%!important;border:1px solid rgba(0,0,0,.12);padding:16px}.ta-root .ta-toolbar{border:1px solid rgba(0,0,0,.12);border-bottom:none;background:#f5f5f5}.ta-root .ta-toolbar .ta-group{display:flex;align-items:center;align-content:center;flex-wrap:wrap}.ta-root .ta-toolbar .ta-group #toolbarCC,.ta-root .ta-toolbar .ta-group #toolbarWC{display:inline-block!important;line-height:24px}.ta-root .ta-toolbar .ta-group .md-button{width:40px;min-width:40px;line-height:14px;height:36px;min-height:36px;padding:6px;margin:4px 0}.ta-root .ta-toolbar .ta-group .md-button i{font-size:20px;width:20px;height:20px;line-height:20px}.ng-cloak,.x-ng-cloak,[data-ng-cloak],[ng-cloak],[ng\:cloak],[x-ng-cloak]{display:none!important}.no-padding{padding:0!important}.no-margin{margin:0!important}.no-radius{border-radius:0}.divider-vertical{background:rgba(0,0,0,.12);height:24px;width:1px;margin:0 8px}.hidden{visibility:hidden;opacity:0}[fill-width]{min-width:100%}[fill-height]{min-height:100%}.full-height{height:100%!important}a img{display:block;outline:0}img{max-width:100%;height:auto;vertical-align:top;border:none}.scrollable{display:block;position:relative;overflow-x:auto;overflow-y:auto;-webkit-overflow-scrolling:touch}.scrollable.only-x{overflow-x:auto;overflow-y:hidden}.scrollable.only-y{overflow-x:hidden;overflow-y:auto}.flex-scrollable{position:relative;overflow-x:auto;overflow-y:auto;-webkit-overflow-scrolling:touch}.flex-scrollable.only-x{overflow-x:auto;overflow-y:hidden}.flex-scrollable.only-y{overflow-x:hidden;overflow-y:auto}.background-image-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:-1}.align-vertical:before{display:inline-block;height:100%;content:'';vertical-align:middle}.align-vertical .align-vertical-bottom,.align-vertical .align-vertical-middle,.align-vertical .align-vertical-top{display:inline-block}.align-vertical .align-vertical-top{vertical-align:top}.align-vertical .align-vertical-middle{vertical-align:middle}.align-vertical .align-vertical-bottom{vertical-align:bottom}.p-0,.padding-0{padding:0}.padding-top-0,.pt-0{padding-top:0}.padding-right-0,.pr-0{padding-right:0}.padding-bottom-0,.pb-0{padding-bottom:0}.padding-left-0,.pl-0{padding-left:0}.padding-horizontal-0,.ph-0{padding-left:0;padding-right:0}.padding-vertical-0,.pv-0{padding-top:0;padding-bottom:0}.p-5,.padding-5{padding:5px}.padding-top-5,.pt-5{padding-top:5px}.padding-right-5,.pr-5{padding-right:5px}.padding-bottom-5,.pb-5{padding-bottom:5px}.padding-left-5,.pl-5{padding-left:5px}.padding-horizontal-5,.ph-5{padding-left:5px;padding-right:5px}.padding-vertical-5,.pv-5{padding-top:5px;padding-bottom:5px}.p-10,.padding-10{padding:10px}.padding-top-10,.pt-10{padding-top:10px}.padding-right-10,.pr-10{padding-right:10px}.padding-bottom-10,.pb-10{padding-bottom:10px}.padding-left-10,.pl-10{padding-left:10px}.padding-horizontal-10,.ph-10{padding-left:10px;padding-right:10px}.padding-vertical-10,.pv-10{padding-top:10px;padding-bottom:10px}.p-15,.padding-15{padding:15px}.padding-top-15,.pt-15{padding-top:15px}.padding-right-15,.pr-15{padding-right:15px}.padding-bottom-15,.pb-15{padding-bottom:15px}.padding-left-15,.pl-15{padding-left:15px}.padding-horizontal-15,.ph-15{padding-left:15px;padding-right:15px}.padding-vertical-15,.pv-15{padding-top:15px;padding-bottom:15px}.p-20,.padding-20{padding:20px}.padding-top-20,.pt-20{padding-top:20px}.padding-right-20,.pr-20{padding-right:20px}.padding-bottom-20,.pb-20{padding-bottom:20px}.padding-left-20,.pl-20{padding-left:20px}.padding-horizontal-20,.ph-20{padding-left:20px;padding-right:20px}.padding-vertical-20,.pv-20{padding-top:20px;padding-bottom:20px}.p-25,.padding-25{padding:25px}.padding-top-25,.pt-25{padding-top:25px}.padding-right-25,.pr-25{padding-right:25px}.padding-bottom-25,.pb-25{padding-bottom:25px}.padding-left-25,.pl-25{padding-left:25px}.padding-horizontal-25,.ph-25{padding-left:25px;padding-right:25px}.padding-vertical-25,.pv-25{padding-top:25px;padding-bottom:25px}.p-30,.padding-30{padding:30px}.padding-top-30,.pt-30{padding-top:30px}.padding-right-30,.pr-30{padding-right:30px}.padding-bottom-30,.pb-30{padding-bottom:30px}.padding-left-30,.pl-30{padding-left:30px}.padding-horizontal-30,.ph-30{padding-left:30px;padding-right:30px}.padding-vertical-30,.pv-30{padding-top:30px;padding-bottom:30px}.p-35,.padding-35{padding:35px}.padding-top-35,.pt-35{padding-top:35px}.padding-right-35,.pr-35{padding-right:35px}.padding-bottom-35,.pb-35{padding-bottom:35px}.padding-left-35,.pl-35{padding-left:35px}.padding-horizontal-35,.ph-35{padding-left:35px;padding-right:35px}.padding-vertical-35,.pv-35{padding-top:35px;padding-bottom:35px}.p-40,.padding-40{padding:40px}.padding-top-40,.pt-40{padding-top:40px}.padding-right-40,.pr-40{padding-right:40px}.padding-bottom-40,.pb-40{padding-bottom:40px}.padding-left-40,.pl-40{padding-left:40px}.padding-horizontal-40,.ph-40{padding-left:40px;padding-right:40px}.padding-vertical-40,.pv-40{padding-top:40px;padding-bottom:40px}.p-45,.padding-45{padding:45px}.padding-top-45,.pt-45{padding-top:45px}.padding-right-45,.pr-45{padding-right:45px}.padding-bottom-45,.pb-45{padding-bottom:45px}.padding-left-45,.pl-45{padding-left:45px}.padding-horizontal-45,.ph-45{padding-left:45px;padding-right:45px}.padding-vertical-45,.pv-45{padding-top:45px;padding-bottom:45px}.p-50,.padding-50{padding:50px}.padding-top-50,.pt-50{padding-top:50px}.padding-right-50,.pr-50{padding-right:50px}.padding-bottom-50,.pb-50{padding-bottom:50px}.padding-left-50,.pl-50{padding-left:50px}.padding-horizontal-50,.ph-50{padding-left:50px;padding-right:50px}.padding-vertical-50,.pv-50{padding-top:50px;padding-bottom:50px}.p-55,.padding-55{padding:55px}.padding-top-55,.pt-55{padding-top:55px}.padding-right-55,.pr-55{padding-right:55px}.padding-bottom-55,.pb-55{padding-bottom:55px}.padding-left-55,.pl-55{padding-left:55px}.padding-horizontal-55,.ph-55{padding-left:55px;padding-right:55px}.padding-vertical-55,.pv-55{padding-top:55px;padding-bottom:55px}.p-60,.padding-60{padding:60px}.padding-top-60,.pt-60{padding-top:60px}.padding-right-60,.pr-60{padding-right:60px}.padding-bottom-60,.pb-60{padding-bottom:60px}.padding-left-60,.pl-60{padding-left:60px}.padding-horizontal-60,.ph-60{padding-left:60px;padding-right:60px}.padding-vertical-60,.pv-60{padding-top:60px;padding-bottom:60px}.p-65,.padding-65{padding:65px}.padding-top-65,.pt-65{padding-top:65px}.padding-right-65,.pr-65{padding-right:65px}.padding-bottom-65,.pb-65{padding-bottom:65px}.padding-left-65,.pl-65{padding-left:65px}.padding-horizontal-65,.ph-65{padding-left:65px;padding-right:65px}.padding-vertical-65,.pv-65{padding-top:65px;padding-bottom:65px}.p-70,.padding-70{padding:70px}.padding-top-70,.pt-70{padding-top:70px}.padding-right-70,.pr-70{padding-right:70px}.padding-bottom-70,.pb-70{padding-bottom:70px}.padding-left-70,.pl-70{padding-left:70px}.padding-horizontal-70,.ph-70{padding-left:70px;padding-right:70px}.padding-vertical-70,.pv-70{padding-top:70px;padding-bottom:70px}.p-75,.padding-75{padding:75px}.padding-top-75,.pt-75{padding-top:75px}.padding-right-75,.pr-75{padding-right:75px}.padding-bottom-75,.pb-75{padding-bottom:75px}.padding-left-75,.pl-75{padding-left:75px}.padding-horizontal-75,.ph-75{padding-left:75px;padding-right:75px}.padding-vertical-75,.pv-75{padding-top:75px;padding-bottom:75px}.p-80,.padding-80{padding:80px}.padding-top-80,.pt-80{padding-top:80px}.padding-right-80,.pr-80{padding-right:80px}.padding-bottom-80,.pb-80{padding-bottom:80px}.padding-left-80,.pl-80{padding-left:80px}.padding-horizontal-80,.ph-80{padding-left:80px;padding-right:80px}.padding-vertical-80,.pv-80{padding-top:80px;padding-bottom:80px}.p-85,.padding-85{padding:85px}.padding-top-85,.pt-85{padding-top:85px}.padding-right-85,.pr-85{padding-right:85px}.padding-bottom-85,.pb-85{padding-bottom:85px}.padding-left-85,.pl-85{padding-left:85px}.padding-horizontal-85,.ph-85{padding-left:85px;padding-right:85px}.padding-vertical-85,.pv-85{padding-top:85px;padding-bottom:85px}.p-90,.padding-90{padding:90px}.padding-top-90,.pt-90{padding-top:90px}.padding-right-90,.pr-90{padding-right:90px}.padding-bottom-90,.pb-90{padding-bottom:90px}.padding-left-90,.pl-90{padding-left:90px}.padding-horizontal-90,.ph-90{padding-left:90px;padding-right:90px}.padding-vertical-90,.pv-90{padding-top:90px;padding-bottom:90px}.p-95,.padding-95{padding:95px}.padding-top-95,.pt-95{padding-top:95px}.padding-right-95,.pr-95{padding-right:95px}.padding-bottom-95,.pb-95{padding-bottom:95px}.padding-left-95,.pl-95{padding-left:95px}.padding-horizontal-95,.ph-95{padding-left:95px;padding-right:95px}.padding-vertical-95,.pv-95{padding-top:95px;padding-bottom:95px}.p-100,.padding-100{padding:100px}.padding-top-100,.pt-100{padding-top:100px}.padding-right-100,.pr-100{padding-right:100px}.padding-bottom-100,.pb-100{padding-bottom:100px}.padding-left-100,.pl-100{padding-left:100px}.padding-horizontal-100,.ph-100{padding-left:100px;padding-right:100px}.padding-vertical-100,.pv-100{padding-top:100px;padding-bottom:100px}.p-8,.padding-8{padding:8px}.padding-top-8,.pt-8{padding-top:8px}.padding-right-8,.pr-8{padding-right:8px}.padding-bottom-8,.pb-8{padding-bottom:8px}.padding-left-8,.pl-8{padding-left:8px}.padding-horizontal-8,.ph-8{padding-left:8px;padding-right:8px}.padding-vertical-8,.pv-8{padding-top:8px;padding-bottom:8px}.p-16,.padding-16{padding:16px}.padding-top-16,.pt-16{padding-top:16px}.padding-right-16,.pr-16{padding-right:16px}.padding-bottom-16,.pb-16{padding-bottom:16px}.padding-left-16,.pl-16{padding-left:16px}.padding-horizontal-16,.ph-16{padding-left:16px;padding-right:16px}.padding-vertical-16,.pv-16{padding-top:16px;padding-bottom:16px}.p-24,.padding-24{padding:24px}.padding-top-24,.pt-24{padding-top:24px}.padding-right-24,.pr-24{padding-right:24px}.padding-bottom-24,.pb-24{padding-bottom:24px}.padding-left-24,.pl-24{padding-left:24px}.padding-horizontal-24,.ph-24{padding-left:24px;padding-right:24px}.padding-vertical-24,.pv-24{padding-top:24px;padding-bottom:24px}.p-32,.padding-32{padding:32px}.padding-top-32,.pt-32{padding-top:32px}.padding-right-32,.pr-32{padding-right:32px}.padding-bottom-32,.pb-32{padding-bottom:32px}.padding-left-32,.pl-32{padding-left:32px}.padding-horizontal-32,.ph-32{padding-left:32px;padding-right:32px}.padding-vertical-32,.pv-32{padding-top:32px;padding-bottom:32px}.p-48,.padding-48{padding:48px}.padding-top-48,.pt-48{padding-top:48px}.padding-right-48,.pr-48{padding-right:48px}.padding-bottom-48,.pb-48{padding-bottom:48px}.padding-left-48,.pl-48{padding-left:48px}.padding-horizontal-48,.ph-48{padding-left:48px;padding-right:48px}.padding-vertical-48,.pv-48{padding-top:48px;padding-bottom:48px}.p-56,.padding-56{padding:56px}.padding-top-56,.pt-56{padding-top:56px}.padding-right-56,.pr-56{padding-right:56px}.padding-bottom-56,.pb-56{padding-bottom:56px}.padding-left-56,.pl-56{padding-left:56px}.padding-horizontal-56,.ph-56{padding-left:56px;padding-right:56px}.padding-vertical-56,.pv-56{padding-top:56px;padding-bottom:56px}.p-64,.padding-64{padding:64px}.padding-top-64,.pt-64{padding-top:64px}.padding-right-64,.pr-64{padding-right:64px}.padding-bottom-64,.pb-64{padding-bottom:64px}.padding-left-64,.pl-64{padding-left:64px}.padding-horizontal-64,.ph-64{padding-left:64px;padding-right:64px}.padding-vertical-64,.pv-64{padding-top:64px;padding-bottom:64px}.p-72,.padding-72{padding:72px}.padding-top-72,.pt-72{padding-top:72px}.padding-right-72,.pr-72{padding-right:72px}.padding-bottom-72,.pb-72{padding-bottom:72px}.padding-left-72,.pl-72{padding-left:72px}.padding-horizontal-72,.ph-72{padding-left:72px;padding-right:72px}.padding-vertical-72,.pv-72{padding-top:72px;padding-bottom:72px}.p-88,.padding-88{padding:88px}.padding-top-88,.pt-88{padding-top:88px}.padding-right-88,.pr-88{padding-right:88px}.padding-bottom-88,.pb-88{padding-bottom:88px}.padding-left-88,.pl-88{padding-left:88px}.padding-horizontal-88,.ph-88{padding-left:88px;padding-right:88px}.padding-vertical-88,.pv-88{padding-top:88px;padding-bottom:88px}.p-96,.padding-96{padding:96px}.padding-top-96,.pt-96{padding-top:96px}.padding-right-96,.pr-96{padding-right:96px}.padding-bottom-96,.pb-96{padding-bottom:96px}.padding-left-96,.pl-96{padding-left:96px}.padding-horizontal-96,.ph-96{padding-left:96px;padding-right:96px}.padding-vertical-96,.pv-96{padding-top:96px;padding-bottom:96px}.m-0,.margin-0{margin:0}.margin-top-0,.mt-0{margin-top:0}.margin-right-0,.mr-0{margin-right:0}.margin-bottom-0,.mb-0{margin-bottom:0}.margin-left-0,.ml-0{margin-left:0}.margin-horizontal-0,.mh-0{margin-left:0;margin-right:0}.margin-vertical-0,.mv-0{margin-top:0;margin-bottom:0}.m-5,.margin-5{margin:5px}.margin-top-5,.mt-5{margin-top:5px}.margin-right-5,.mr-5{margin-right:5px}.margin-bottom-5,.mb-5{margin-bottom:5px}.margin-left-5,.ml-5{margin-left:5px}.margin-horizontal-5,.mh-5{margin-left:5px;margin-right:5px}.margin-vertical-5,.mv-5{margin-top:5px;margin-bottom:5px}.m-10,.margin-10{margin:10px}.margin-top-10,.mt-10{margin-top:10px}.margin-right-10,.mr-10{margin-right:10px}.margin-bottom-10,.mb-10{margin-bottom:10px}.margin-left-10,.ml-10{margin-left:10px}.margin-horizontal-10,.mh-10{margin-left:10px;margin-right:10px}.margin-vertical-10,.mv-10{margin-top:10px;margin-bottom:10px}.m-15,.margin-15{margin:15px}.margin-top-15,.mt-15{margin-top:15px}.margin-right-15,.mr-15{margin-right:15px}.margin-bottom-15,.mb-15{margin-bottom:15px}.margin-left-15,.ml-15{margin-left:15px}.margin-horizontal-15,.mh-15{margin-left:15px;margin-right:15px}.margin-vertical-15,.mv-15{margin-top:15px;margin-bottom:15px}.m-20,.margin-20{margin:20px}.margin-top-20,.mt-20{margin-top:20px}.margin-right-20,.mr-20{margin-right:20px}.margin-bottom-20,.mb-20{margin-bottom:20px}.margin-left-20,.ml-20{margin-left:20px}.margin-horizontal-20,.mh-20{margin-left:20px;margin-right:20px}.margin-vertical-20,.mv-20{margin-top:20px;margin-bottom:20px}.m-25,.margin-25{margin:25px}.margin-top-25,.mt-25{margin-top:25px}.margin-right-25,.mr-25{margin-right:25px}.margin-bottom-25,.mb-25{margin-bottom:25px}.margin-left-25,.ml-25{margin-left:25px}.margin-horizontal-25,.mh-25{margin-left:25px;margin-right:25px}.margin-vertical-25,.mv-25{margin-top:25px;margin-bottom:25px}.m-30,.margin-30{margin:30px}.margin-top-30,.mt-30{margin-top:30px}.margin-right-30,.mr-30{margin-right:30px}.margin-bottom-30,.mb-30{margin-bottom:30px}.margin-left-30,.ml-30{margin-left:30px}.margin-horizontal-30,.mh-30{margin-left:30px;margin-right:30px}.margin-vertical-30,.mv-30{margin-top:30px;margin-bottom:30px}.m-35,.margin-35{margin:35px}.margin-top-35,.mt-35{margin-top:35px}.margin-right-35,.mr-35{margin-right:35px}.margin-bottom-35,.mb-35{margin-bottom:35px}.margin-left-35,.ml-35{margin-left:35px}.margin-horizontal-35,.mh-35{margin-left:35px;margin-right:35px}.margin-vertical-35,.mv-35{margin-top:35px;margin-bottom:35px}.m-40,.margin-40{margin:40px}.margin-top-40,.mt-40{margin-top:40px}.margin-right-40,.mr-40{margin-right:40px}.margin-bottom-40,.mb-40{margin-bottom:40px}.margin-left-40,.ml-40{margin-left:40px}.margin-horizontal-40,.mh-40{margin-left:40px;margin-right:40px}.margin-vertical-40,.mv-40{margin-top:40px;margin-bottom:40px}.m-45,.margin-45{margin:45px}.margin-top-45,.mt-45{margin-top:45px}.margin-right-45,.mr-45{margin-right:45px}.margin-bottom-45,.mb-45{margin-bottom:45px}.margin-left-45,.ml-45{margin-left:45px}.margin-horizontal-45,.mh-45{margin-left:45px;margin-right:45px}.margin-vertical-45,.mv-45{margin-top:45px;margin-bottom:45px}.m-50,.margin-50{margin:50px}.margin-top-50,.mt-50{margin-top:50px}.margin-right-50,.mr-50{margin-right:50px}.margin-bottom-50,.mb-50{margin-bottom:50px}.margin-left-50,.ml-50{margin-left:50px}.margin-horizontal-50,.mh-50{margin-left:50px;margin-right:50px}.margin-vertical-50,.mv-50{margin-top:50px;margin-bottom:50px}.m-55,.margin-55{margin:55px}.margin-top-55,.mt-55{margin-top:55px}.margin-right-55,.mr-55{margin-right:55px}.margin-bottom-55,.mb-55{margin-bottom:55px}.margin-left-55,.ml-55{margin-left:55px}.margin-horizontal-55,.mh-55{margin-left:55px;margin-right:55px}.margin-vertical-55,.mv-55{margin-top:55px;margin-bottom:55px}.m-60,.margin-60{margin:60px}.margin-top-60,.mt-60{margin-top:60px}.margin-right-60,.mr-60{margin-right:60px}.margin-bottom-60,.mb-60{margin-bottom:60px}.margin-left-60,.ml-60{margin-left:60px}.margin-horizontal-60,.mh-60{margin-left:60px;margin-right:60px}.margin-vertical-60,.mv-60{margin-top:60px;margin-bottom:60px}.m-65,.margin-65{margin:65px}.margin-top-65,.mt-65{margin-top:65px}.margin-right-65,.mr-65{margin-right:65px}.margin-bottom-65,.mb-65{margin-bottom:65px}.margin-left-65,.ml-65{margin-left:65px}.margin-horizontal-65,.mh-65{margin-left:65px;margin-right:65px}.margin-vertical-65,.mv-65{margin-top:65px;margin-bottom:65px}.m-70,.margin-70{margin:70px}.margin-top-70,.mt-70{margin-top:70px}.margin-right-70,.mr-70{margin-right:70px}.margin-bottom-70,.mb-70{margin-bottom:70px}.margin-left-70,.ml-70{margin-left:70px}.margin-horizontal-70,.mh-70{margin-left:70px;margin-right:70px}.margin-vertical-70,.mv-70{margin-top:70px;margin-bottom:70px}.m-75,.margin-75{margin:75px}.margin-top-75,.mt-75{margin-top:75px}.margin-right-75,.mr-75{margin-right:75px}.margin-bottom-75,.mb-75{margin-bottom:75px}.margin-left-75,.ml-75{margin-left:75px}.margin-horizontal-75,.mh-75{margin-left:75px;margin-right:75px}.margin-vertical-75,.mv-75{margin-top:75px;margin-bottom:75px}.m-80,.margin-80{margin:80px}.margin-top-80,.mt-80{margin-top:80px}.margin-right-80,.mr-80{margin-right:80px}.margin-bottom-80,.mb-80{margin-bottom:80px}.margin-left-80,.ml-80{margin-left:80px}.margin-horizontal-80,.mh-80{margin-left:80px;margin-right:80px}.margin-vertical-80,.mv-80{margin-top:80px;margin-bottom:80px}.m-85,.margin-85{margin:85px}.margin-top-85,.mt-85{margin-top:85px}.margin-right-85,.mr-85{margin-right:85px}.margin-bottom-85,.mb-85{margin-bottom:85px}.margin-left-85,.ml-85{margin-left:85px}.margin-horizontal-85,.mh-85{margin-left:85px;margin-right:85px}.margin-vertical-85,.mv-85{margin-top:85px;margin-bottom:85px}.m-90,.margin-90{margin:90px}.margin-top-90,.mt-90{margin-top:90px}.margin-right-90,.mr-90{margin-right:90px}.margin-bottom-90,.mb-90{margin-bottom:90px}.margin-left-90,.ml-90{margin-left:90px}.margin-horizontal-90,.mh-90{margin-left:90px;margin-right:90px}.margin-vertical-90,.mv-90{margin-top:90px;margin-bottom:90px}.m-95,.margin-95{margin:95px}.margin-top-95,.mt-95{margin-top:95px}.margin-right-95,.mr-95{margin-right:95px}.margin-bottom-95,.mb-95{margin-bottom:95px}.margin-left-95,.ml-95{margin-left:95px}.margin-horizontal-95,.mh-95{margin-left:95px;margin-right:95px}.margin-vertical-95,.mv-95{margin-top:95px;margin-bottom:95px}.m-100,.margin-100{margin:100px}.margin-top-100,.mt-100{margin-top:100px}.margin-right-100,.mr-100{margin-right:100px}.margin-bottom-100,.mb-100{margin-bottom:100px}.margin-left-100,.ml-100{margin-left:100px}.margin-horizontal-100,.mh-100{margin-left:100px;margin-right:100px}.margin-vertical-100,.mv-100{margin-top:100px;margin-bottom:100px}.m-8,.margin-8{margin:8px}.margin-top-8,.mt-8{margin-top:8px}.margin-right-8,.mr-8{margin-right:8px}.margin-bottom-8,.mb-8{margin-bottom:8px}.margin-left-8,.ml-8{margin-left:8px}.margin-horizontal-8,.mh-8{margin-left:8px;margin-right:8px}.margin-vertical-8,.mv-8{margin-top:8px;margin-bottom:8px}.m-16,.margin-16{margin:16px}.margin-top-16,.mt-16{margin-top:16px}.margin-right-16,.mr-16{margin-right:16px}.margin-bottom-16,.mb-16{margin-bottom:16px}.margin-left-16,.ml-16{margin-left:16px}.margin-horizontal-16,.mh-16{margin-left:16px;margin-right:16px}.margin-vertical-16,.mv-16{margin-top:16px;margin-bottom:16px}.m-24,.margin-24{margin:24px}.margin-top-24,.mt-24{margin-top:24px}.margin-right-24,.mr-24{margin-right:24px}.margin-bottom-24,.mb-24{margin-bottom:24px}.margin-left-24,.ml-24{margin-left:24px}.margin-horizontal-24,.mh-24{margin-left:24px;margin-right:24px}.margin-vertical-24,.mv-24{margin-top:24px;margin-bottom:24px}.m-32,.margin-32{margin:32px}.margin-top-32,.mt-32{margin-top:32px}.margin-right-32,.mr-32{margin-right:32px}.margin-bottom-32,.mb-32{margin-bottom:32px}.margin-left-32,.ml-32{margin-left:32px}.margin-horizontal-32,.mh-32{margin-left:32px;margin-right:32px}.margin-vertical-32,.mv-32{margin-top:32px;margin-bottom:32px}.m-48,.margin-48{margin:48px}.margin-top-48,.mt-48{margin-top:48px}.margin-right-48,.mr-48{margin-right:48px}.margin-bottom-48,.mb-48{margin-bottom:48px}.margin-left-48,.ml-48{margin-left:48px}.margin-horizontal-48,.mh-48{margin-left:48px;margin-right:48px}.margin-vertical-48,.mv-48{margin-top:48px;margin-bottom:48px}.m-56,.margin-56{margin:56px}.margin-top-56,.mt-56{margin-top:56px}.margin-right-56,.mr-56{margin-right:56px}.margin-bottom-56,.mb-56{margin-bottom:56px}.margin-left-56,.ml-56{margin-left:56px}.margin-horizontal-56,.mh-56{margin-left:56px;margin-right:56px}.margin-vertical-56,.mv-56{margin-top:56px;margin-bottom:56px}.m-64,.margin-64{margin:64px}.margin-top-64,.mt-64{margin-top:64px}.margin-right-64,.mr-64{margin-right:64px}.margin-bottom-64,.mb-64{margin-bottom:64px}.margin-left-64,.ml-64{margin-left:64px}.margin-horizontal-64,.mh-64{margin-left:64px;margin-right:64px}.margin-vertical-64,.mv-64{margin-top:64px;margin-bottom:64px}.m-72,.margin-72{margin:72px}.margin-top-72,.mt-72{margin-top:72px}.margin-right-72,.mr-72{margin-right:72px}.margin-bottom-72,.mb-72{margin-bottom:72px}.margin-left-72,.ml-72{margin-left:72px}.margin-horizontal-72,.mh-72{margin-left:72px;margin-right:72px}.margin-vertical-72,.mv-72{margin-top:72px;margin-bottom:72px}.m-88,.margin-88{margin:88px}.margin-top-88,.mt-88{margin-top:88px}.margin-right-88,.mr-88{margin-right:88px}.margin-bottom-88,.mb-88{margin-bottom:88px}.margin-left-88,.ml-88{margin-left:88px}.margin-horizontal-88,.mh-88{margin-left:88px;margin-right:88px}.margin-vertical-88,.mv-88{margin-top:88px;margin-bottom:88px}.m-96,.margin-96{margin:96px}.margin-top-96,.mt-96{margin-top:96px}.margin-right-96,.mr-96{margin-right:96px}.margin-bottom-96,.mb-96{margin-bottom:96px}.margin-left-96,.ml-96{margin-left:96px}.margin-horizontal-96,.mh-96{margin-left:96px;margin-right:96px}.margin-vertical-96,.mv-96{margin-top:96px;margin-bottom:96px}.h-0,.height-0{height:0!important;min-height:0!important;max-height:0!important}.w-0,.width-0{width:0!important;min-width:0!important;max-width:0!important}.h-5,.height-5{height:5px!important;min-height:5px!important;max-height:5px!important}.w-5,.width-5{width:5px!important;min-width:5px!important;max-width:5px!important}.h-10,.height-10{height:10px!important;min-height:10px!important;max-height:10px!important}.w-10,.width-10{width:10px!important;min-width:10px!important;max-width:10px!important}.h-15,.height-15{height:15px!important;min-height:15px!important;max-height:15px!important}.w-15,.width-15{width:15px!important;min-width:15px!important;max-width:15px!important}.h-20,.height-20{height:20px!important;min-height:20px!important;max-height:20px!important}.w-20,.width-20{width:20px!important;min-width:20px!important;max-width:20px!important}.h-25,.height-25{height:25px!important;min-height:25px!important;max-height:25px!important}.w-25,.width-25{width:25px!important;min-width:25px!important;max-width:25px!important}.h-30,.height-30{height:30px!important;min-height:30px!important;max-height:30px!important}.w-30,.width-30{width:30px!important;min-width:30px!important;max-width:30px!important}.h-35,.height-35{height:35px!important;min-height:35px!important;max-height:35px!important}.w-35,.width-35{width:35px!important;min-width:35px!important;max-width:35px!important}.h-40,.height-40{height:40px!important;min-height:40px!important;max-height:40px!important}.w-40,.width-40{width:40px!important;min-width:40px!important;max-width:40px!important}.h-45,.height-45{height:45px!important;min-height:45px!important;max-height:45px!important}.w-45,.width-45{width:45px!important;min-width:45px!important;max-width:45px!important}.h-50,.height-50{height:50px!important;min-height:50px!important;max-height:50px!important}.w-50,.width-50{width:50px!important;min-width:50px!important;max-width:50px!important}.h-55,.height-55{height:55px!important;min-height:55px!important;max-height:55px!important}.w-55,.width-55{width:55px!important;min-width:55px!important;max-width:55px!important}.h-60,.height-60{height:60px!important;min-height:60px!important;max-height:60px!important}.w-60,.width-60{width:60px!important;min-width:60px!important;max-width:60px!important}.h-65,.height-65{height:65px!important;min-height:65px!important;max-height:65px!important}.w-65,.width-65{width:65px!important;min-width:65px!important;max-width:65px!important}.h-70,.height-70{height:70px!important;min-height:70px!important;max-height:70px!important}.w-70,.width-70{width:70px!important;min-width:70px!important;max-width:70px!important}.h-75,.height-75{height:75px!important;min-height:75px!important;max-height:75px!important}.w-75,.width-75{width:75px!important;min-width:75px!important;max-width:75px!important}.h-80,.height-80{height:80px!important;min-height:80px!important;max-height:80px!important}.w-80,.width-80{width:80px!important;min-width:80px!important;max-width:80px!important}.h-85,.height-85{height:85px!important;min-height:85px!important;max-height:85px!important}.w-85,.width-85{width:85px!important;min-width:85px!important;max-width:85px!important}.h-90,.height-90{height:90px!important;min-height:90px!important;max-height:90px!important}.w-90,.width-90{width:90px!important;min-width:90px!important;max-width:90px!important}.h-95,.height-95{height:95px!important;min-height:95px!important;max-height:95px!important}.w-95,.width-95{width:95px!important;min-width:95px!important;max-width:95px!important}.h-100,.height-100{height:100px!important;min-height:100px!important;max-height:100px!important}.w-100,.width-100{width:100px!important;min-width:100px!important;max-width:100px!important}.h-105,.height-105{height:105px!important;min-height:105px!important;max-height:105px!important}.w-105,.width-105{width:105px!important;min-width:105px!important;max-width:105px!important}.h-110,.height-110{height:110px!important;min-height:110px!important;max-height:110px!important}.w-110,.width-110{width:110px!important;min-width:110px!important;max-width:110px!important}.h-115,.height-115{height:115px!important;min-height:115px!important;max-height:115px!important}.w-115,.width-115{width:115px!important;min-width:115px!important;max-width:115px!important}.h-120,.height-120{height:120px!important;min-height:120px!important;max-height:120px!important}.w-120,.width-120{width:120px!important;min-width:120px!important;max-width:120px!important}.h-125,.height-125{height:125px!important;min-height:125px!important;max-height:125px!important}.w-125,.width-125{width:125px!important;min-width:125px!important;max-width:125px!important}.h-130,.height-130{height:130px!important;min-height:130px!important;max-height:130px!important}.w-130,.width-130{width:130px!important;min-width:130px!important;max-width:130px!important}.h-135,.height-135{height:135px!important;min-height:135px!important;max-height:135px!important}.w-135,.width-135{width:135px!important;min-width:135px!important;max-width:135px!important}.h-140,.height-140{height:140px!important;min-height:140px!important;max-height:140px!important}.w-140,.width-140{width:140px!important;min-width:140px!important;max-width:140px!important}.h-145,.height-145{height:145px!important;min-height:145px!important;max-height:145px!important}.w-145,.width-145{width:145px!important;min-width:145px!important;max-width:145px!important}.h-150,.height-150{height:150px!important;min-height:150px!important;max-height:150px!important}.w-150,.width-150{width:150px!important;min-width:150px!important;max-width:150px!important}.h-155,.height-155{height:155px!important;min-height:155px!important;max-height:155px!important}.w-155,.width-155{width:155px!important;min-width:155px!important;max-width:155px!important}.h-160,.height-160{height:160px!important;min-height:160px!important;max-height:160px!important}.w-160,.width-160{width:160px!important;min-width:160px!important;max-width:160px!important}.h-165,.height-165{height:165px!important;min-height:165px!important;max-height:165px!important}.w-165,.width-165{width:165px!important;min-width:165px!important;max-width:165px!important}.h-170,.height-170{height:170px!important;min-height:170px!important;max-height:170px!important}.w-170,.width-170{width:170px!important;min-width:170px!important;max-width:170px!important}.h-175,.height-175{height:175px!important;min-height:175px!important;max-height:175px!important}.w-175,.width-175{width:175px!important;min-width:175px!important;max-width:175px!important}.h-180,.height-180{height:180px!important;min-height:180px!important;max-height:180px!important}.w-180,.width-180{width:180px!important;min-width:180px!important;max-width:180px!important}.h-185,.height-185{height:185px!important;min-height:185px!important;max-height:185px!important}.w-185,.width-185{width:185px!important;min-width:185px!important;max-width:185px!important}.h-190,.height-190{height:190px!important;min-height:190px!important;max-height:190px!important}.w-190,.width-190{width:190px!important;min-width:190px!important;max-width:190px!important}.h-195,.height-195{height:195px!important;min-height:195px!important;max-height:195px!important}.w-195,.width-195{width:195px!important;min-width:195px!important;max-width:195px!important}.h-200,.height-200{height:200px!important;min-height:200px!important;max-height:200px!important}.w-200,.width-200{width:200px!important;min-width:200px!important;max-width:200px!important}.h-205,.height-205{height:205px!important;min-height:205px!important;max-height:205px!important}.w-205,.width-205{width:205px!important;min-width:205px!important;max-width:205px!important}.h-210,.height-210{height:210px!important;min-height:210px!important;max-height:210px!important}.w-210,.width-210{width:210px!important;min-width:210px!important;max-width:210px!important}.h-215,.height-215{height:215px!important;min-height:215px!important;max-height:215px!important}.w-215,.width-215{width:215px!important;min-width:215px!important;max-width:215px!important}.h-220,.height-220{height:220px!important;min-height:220px!important;max-height:220px!important}.w-220,.width-220{width:220px!important;min-width:220px!important;max-width:220px!important}.h-225,.height-225{height:225px!important;min-height:225px!important;max-height:225px!important}.w-225,.width-225{width:225px!important;min-width:225px!important;max-width:225px!important}.h-230,.height-230{height:230px!important;min-height:230px!important;max-height:230px!important}.w-230,.width-230{width:230px!important;min-width:230px!important;max-width:230px!important}.h-235,.height-235{height:235px!important;min-height:235px!important;max-height:235px!important}.w-235,.width-235{width:235px!important;min-width:235px!important;max-width:235px!important}.h-240,.height-240{height:240px!important;min-height:240px!important;max-height:240px!important}.w-240,.width-240{width:240px!important;min-width:240px!important;max-width:240px!important}.h-245,.height-245{height:245px!important;min-height:245px!important;max-height:245px!important}.w-245,.width-245{width:245px!important;min-width:245px!important;max-width:245px!important}.h-250,.height-250{height:250px!important;min-height:250px!important;max-height:250px!important}.w-250,.width-250{width:250px!important;min-width:250px!important;max-width:250px!important}.h-255,.height-255{height:255px!important;min-height:255px!important;max-height:255px!important}.w-255,.width-255{width:255px!important;min-width:255px!important;max-width:255px!important}.h-260,.height-260{height:260px!important;min-height:260px!important;max-height:260px!important}.w-260,.width-260{width:260px!important;min-width:260px!important;max-width:260px!important}.h-265,.height-265{height:265px!important;min-height:265px!important;max-height:265px!important}.w-265,.width-265{width:265px!important;min-width:265px!important;max-width:265px!important}.h-270,.height-270{height:270px!important;min-height:270px!important;max-height:270px!important}.w-270,.width-270{width:270px!important;min-width:270px!important;max-width:270px!important}.h-275,.height-275{height:275px!important;min-height:275px!important;max-height:275px!important}.w-275,.width-275{width:275px!important;min-width:275px!important;max-width:275px!important}.h-280,.height-280{height:280px!important;min-height:280px!important;max-height:280px!important}.w-280,.width-280{width:280px!important;min-width:280px!important;max-width:280px!important}.h-285,.height-285{height:285px!important;min-height:285px!important;max-height:285px!important}.w-285,.width-285{width:285px!important;min-width:285px!important;max-width:285px!important}.h-290,.height-290{height:290px!important;min-height:290px!important;max-height:290px!important}.w-290,.width-290{width:290px!important;min-width:290px!important;max-width:290px!important}.h-295,.height-295{height:295px!important;min-height:295px!important;max-height:295px!important}.w-295,.width-295{width:295px!important;min-width:295px!important;max-width:295px!important}.h-300,.height-300{height:300px!important;min-height:300px!important;max-height:300px!important}.w-300,.width-300{width:300px!important;min-width:300px!important;max-width:300px!important}.h-305,.height-305{height:305px!important;min-height:305px!important;max-height:305px!important}.w-305,.width-305{width:305px!important;min-width:305px!important;max-width:305px!important}.h-310,.height-310{height:310px!important;min-height:310px!important;max-height:310px!important}.w-310,.width-310{width:310px!important;min-width:310px!important;max-width:310px!important}.h-315,.height-315{height:315px!important;min-height:315px!important;max-height:315px!important}.w-315,.width-315{width:315px!important;min-width:315px!important;max-width:315px!important}.h-320,.height-320{height:320px!important;min-height:320px!important;max-height:320px!important}.w-320,.width-320{width:320px!important;min-width:320px!important;max-width:320px!important}.h-325,.height-325{height:325px!important;min-height:325px!important;max-height:325px!important}.w-325,.width-325{width:325px!important;min-width:325px!important;max-width:325px!important}.h-330,.height-330{height:330px!important;min-height:330px!important;max-height:330px!important}.w-330,.width-330{width:330px!important;min-width:330px!important;max-width:330px!important}.h-335,.height-335{height:335px!important;min-height:335px!important;max-height:335px!important}.w-335,.width-335{width:335px!important;min-width:335px!important;max-width:335px!important}.h-340,.height-340{height:340px!important;min-height:340px!important;max-height:340px!important}.w-340,.width-340{width:340px!important;min-width:340px!important;max-width:340px!important}.h-345,.height-345{height:345px!important;min-height:345px!important;max-height:345px!important}.w-345,.width-345{width:345px!important;min-width:345px!important;max-width:345px!important}.h-350,.height-350{height:350px!important;min-height:350px!important;max-height:350px!important}.w-350,.width-350{width:350px!important;min-width:350px!important;max-width:350px!important}.h-355,.height-355{height:355px!important;min-height:355px!important;max-height:355px!important}.w-355,.width-355{width:355px!important;min-width:355px!important;max-width:355px!important}.h-360,.height-360{height:360px!important;min-height:360px!important;max-height:360px!important}.w-360,.width-360{width:360px!important;min-width:360px!important;max-width:360px!important}.h-365,.height-365{height:365px!important;min-height:365px!important;max-height:365px!important}.w-365,.width-365{width:365px!important;min-width:365px!important;max-width:365px!important}.h-370,.height-370{height:370px!important;min-height:370px!important;max-height:370px!important}.w-370,.width-370{width:370px!important;min-width:370px!important;max-width:370px!important}.h-375,.height-375{height:375px!important;min-height:375px!important;max-height:375px!important}.w-375,.width-375{width:375px!important;min-width:375px!important;max-width:375px!important}.h-380,.height-380{height:380px!important;min-height:380px!important;max-height:380px!important}.w-380,.width-380{width:380px!important;min-width:380px!important;max-width:380px!important}.h-385,.height-385{height:385px!important;min-height:385px!important;max-height:385px!important}.w-385,.width-385{width:385px!important;min-width:385px!important;max-width:385px!important}.h-390,.height-390{height:390px!important;min-height:390px!important;max-height:390px!important}.w-390,.width-390{width:390px!important;min-width:390px!important;max-width:390px!important}.h-395,.height-395{height:395px!important;min-height:395px!important;max-height:395px!important}.w-395,.width-395{width:395px!important;min-width:395px!important;max-width:395px!important}.h-400,.height-400{height:400px!important;min-height:400px!important;max-height:400px!important}.w-400,.width-400{width:400px!important;min-width:400px!important;max-width:400px!important}.h-405,.height-405{height:405px!important;min-height:405px!important;max-height:405px!important}.w-405,.width-405{width:405px!important;min-width:405px!important;max-width:405px!important}.h-410,.height-410{height:410px!important;min-height:410px!important;max-height:410px!important}.w-410,.width-410{width:410px!important;min-width:410px!important;max-width:410px!important}.h-415,.height-415{height:415px!important;min-height:415px!important;max-height:415px!important}.w-415,.width-415{width:415px!important;min-width:415px!important;max-width:415px!important}.h-420,.height-420{height:420px!important;min-height:420px!important;max-height:420px!important}.w-420,.width-420{width:420px!important;min-width:420px!important;max-width:420px!important}.h-425,.height-425{height:425px!important;min-height:425px!important;max-height:425px!important}.w-425,.width-425{width:425px!important;min-width:425px!important;max-width:425px!important}.h-430,.height-430{height:430px!important;min-height:430px!important;max-height:430px!important}.w-430,.width-430{width:430px!important;min-width:430px!important;max-width:430px!important}.h-435,.height-435{height:435px!important;min-height:435px!important;max-height:435px!important}.w-435,.width-435{width:435px!important;min-width:435px!important;max-width:435px!important}.h-440,.height-440{height:440px!important;min-height:440px!important;max-height:440px!important}.w-440,.width-440{width:440px!important;min-width:440px!important;max-width:440px!important}.h-445,.height-445{height:445px!important;min-height:445px!important;max-height:445px!important}.w-445,.width-445{width:445px!important;min-width:445px!important;max-width:445px!important}.h-450,.height-450{height:450px!important;min-height:450px!important;max-height:450px!important}.w-450,.width-450{width:450px!important;min-width:450px!important;max-width:450px!important}.h-455,.height-455{height:455px!important;min-height:455px!important;max-height:455px!important}.w-455,.width-455{width:455px!important;min-width:455px!important;max-width:455px!important}.h-460,.height-460{height:460px!important;min-height:460px!important;max-height:460px!important}.w-460,.width-460{width:460px!important;min-width:460px!important;max-width:460px!important}.h-465,.height-465{height:465px!important;min-height:465px!important;max-height:465px!important}.w-465,.width-465{width:465px!important;min-width:465px!important;max-width:465px!important}.h-470,.height-470{height:470px!important;min-height:470px!important;max-height:470px!important}.w-470,.width-470{width:470px!important;min-width:470px!important;max-width:470px!important}.h-475,.height-475{height:475px!important;min-height:475px!important;max-height:475px!important}.w-475,.width-475{width:475px!important;min-width:475px!important;max-width:475px!important}.h-480,.height-480{height:480px!important;min-height:480px!important;max-height:480px!important}.w-480,.width-480{width:480px!important;min-width:480px!important;max-width:480px!important}.h-485,.height-485{height:485px!important;min-height:485px!important;max-height:485px!important}.w-485,.width-485{width:485px!important;min-width:485px!important;max-width:485px!important}.h-490,.height-490{height:490px!important;min-height:490px!important;max-height:490px!important}.w-490,.width-490{width:490px!important;min-width:490px!important;max-width:490px!important}.h-495,.height-495{height:495px!important;min-height:495px!important;max-height:495px!important}.w-495,.width-495{width:495px!important;min-width:495px!important;max-width:495px!important}.h-500,.height-500{height:500px!important;min-height:500px!important;max-height:500px!important}.w-500,.width-500{width:500px!important;min-width:500px!important;max-width:500px!important}.h-8,.height-8{height:8px!important;min-height:8px!important;max-height:8px!important}.w-8,.width-8{width:8px!important;min-width:8px!important;max-width:8px!important}.h-16,.height-16{height:16px!important;min-height:16px!important;max-height:16px!important}.w-16,.width-16{width:16px!important;min-width:16px!important;max-width:16px!important}.h-24,.height-24{height:24px!important;min-height:24px!important;max-height:24px!important}.w-24,.width-24{width:24px!important;min-width:24px!important;max-width:24px!important}.h-32,.height-32{height:32px!important;min-height:32px!important;max-height:32px!important}.w-32,.width-32{width:32px!important;min-width:32px!important;max-width:32px!important}.h-48,.height-48{height:48px!important;min-height:48px!important;max-height:48px!important}.w-48,.width-48{width:48px!important;min-width:48px!important;max-width:48px!important}.h-56,.height-56{height:56px!important;min-height:56px!important;max-height:56px!important}.w-56,.width-56{width:56px!important;min-width:56px!important;max-width:56px!important}.h-64,.height-64{height:64px!important;min-height:64px!important;max-height:64px!important}.w-64,.width-64{width:64px!important;min-width:64px!important;max-width:64px!important}.h-72,.height-72{height:72px!important;min-height:72px!important;max-height:72px!important}.w-72,.width-72{width:72px!important;min-width:72px!important;max-width:72px!important}.h-88,.height-88{height:88px!important;min-height:88px!important;max-height:88px!important}.w-88,.width-88{width:88px!important;min-width:88px!important;max-width:88px!important}.h-96,.height-96{height:96px!important;min-height:96px!important;max-height:96px!important}.w-96,.width-96{width:96px!important;min-width:96px!important;max-width:96px!important}.h-104,.height-104{height:104px!important;min-height:104px!important;max-height:104px!important}.w-104,.width-104{width:104px!important;min-width:104px!important;max-width:104px!important}.h-112,.height-112{height:112px!important;min-height:112px!important;max-height:112px!important}.w-112,.width-112{width:112px!important;min-width:112px!important;max-width:112px!important}.h-128,.height-128{height:128px!important;min-height:128px!important;max-height:128px!important}.w-128,.width-128{width:128px!important;min-width:128px!important;max-width:128px!important}.h-136,.height-136{height:136px!important;min-height:136px!important;max-height:136px!important}.w-136,.width-136{width:136px!important;min-width:136px!important;max-width:136px!important}.h-144,.height-144{height:144px!important;min-height:144px!important;max-height:144px!important}.w-144,.width-144{width:144px!important;min-width:144px!important;max-width:144px!important}.h-152,.height-152{height:152px!important;min-height:152px!important;max-height:152px!important}.w-152,.width-152{width:152px!important;min-width:152px!important;max-width:152px!important}.h-168,.height-168{height:168px!important;min-height:168px!important;max-height:168px!important}.w-168,.width-168{width:168px!important;min-width:168px!important;max-width:168px!important}.h-176,.height-176{height:176px!important;min-height:176px!important;max-height:176px!important}.w-176,.width-176{width:176px!important;min-width:176px!important;max-width:176px!important}.h-184,.height-184{height:184px!important;min-height:184px!important;max-height:184px!important}.w-184,.width-184{width:184px!important;min-width:184px!important;max-width:184px!important}.h-192,.height-192{height:192px!important;min-height:192px!important;max-height:192px!important}.w-192,.width-192{width:192px!important;min-width:192px!important;max-width:192px!important}.h-208,.height-208{height:208px!important;min-height:208px!important;max-height:208px!important}.w-208,.width-208{width:208px!important;min-width:208px!important;max-width:208px!important}.h-216,.height-216{height:216px!important;min-height:216px!important;max-height:216px!important}.w-216,.width-216{width:216px!important;min-width:216px!important;max-width:216px!important}.h-224,.height-224{height:224px!important;min-height:224px!important;max-height:224px!important}.w-224,.width-224{width:224px!important;min-width:224px!important;max-width:224px!important}.h-232,.height-232{height:232px!important;min-height:232px!important;max-height:232px!important}.w-232,.width-232{width:232px!important;min-width:232px!important;max-width:232px!important}.h-248,.height-248{height:248px!important;min-height:248px!important;max-height:248px!important}.w-248,.width-248{width:248px!important;min-width:248px!important;max-width:248px!important}.h-256,.height-256{height:256px!important;min-height:256px!important;max-height:256px!important}.w-256,.width-256{width:256px!important;min-width:256px!important;max-width:256px!important}.h-264,.height-264{height:264px!important;min-height:264px!important;max-height:264px!important}.w-264,.width-264{width:264px!important;min-width:264px!important;max-width:264px!important}.h-272,.height-272{height:272px!important;min-height:272px!important;max-height:272px!important}.w-272,.width-272{width:272px!important;min-width:272px!important;max-width:272px!important}.h-288,.height-288{height:288px!important;min-height:288px!important;max-height:288px!important}.w-288,.width-288{width:288px!important;min-width:288px!important;max-width:288px!important}.h-296,.height-296{height:296px!important;min-height:296px!important;max-height:296px!important}.w-296,.width-296{width:296px!important;min-width:296px!important;max-width:296px!important}.h-304,.height-304{height:304px!important;min-height:304px!important;max-height:304px!important}.w-304,.width-304{width:304px!important;min-width:304px!important;max-width:304px!important}.h-312,.height-312{height:312px!important;min-height:312px!important;max-height:312px!important}.w-312,.width-312{width:312px!important;min-width:312px!important;max-width:312px!important}.h-328,.height-328{height:328px!important;min-height:328px!important;max-height:328px!important}.w-328,.width-328{width:328px!important;min-width:328px!important;max-width:328px!important}.h-336,.height-336{height:336px!important;min-height:336px!important;max-height:336px!important}.w-336,.width-336{width:336px!important;min-width:336px!important;max-width:336px!important}.h-344,.height-344{height:344px!important;min-height:344px!important;max-height:344px!important}.w-344,.width-344{width:344px!important;min-width:344px!important;max-width:344px!important}.h-352,.height-352{height:352px!important;min-height:352px!important;max-height:352px!important}.w-352,.width-352{width:352px!important;min-width:352px!important;max-width:352px!important}.h-368,.height-368{height:368px!important;min-height:368px!important;max-height:368px!important}.w-368,.width-368{width:368px!important;min-width:368px!important;max-width:368px!important}.h-376,.height-376{height:376px!important;min-height:376px!important;max-height:376px!important}.w-376,.width-376{width:376px!important;min-width:376px!important;max-width:376px!important}.h-384,.height-384{height:384px!important;min-height:384px!important;max-height:384px!important}.w-384,.width-384{width:384px!important;min-width:384px!important;max-width:384px!important}.h-392,.height-392{height:392px!important;min-height:392px!important;max-height:392px!important}.w-392,.width-392{width:392px!important;min-width:392px!important;max-width:392px!important}.h-408,.height-408{height:408px!important;min-height:408px!important;max-height:408px!important}.w-408,.width-408{width:408px!important;min-width:408px!important;max-width:408px!important}.h-416,.height-416{height:416px!important;min-height:416px!important;max-height:416px!important}.w-416,.width-416{width:416px!important;min-width:416px!important;max-width:416px!important}.h-424,.height-424{height:424px!important;min-height:424px!important;max-height:424px!important}.w-424,.width-424{width:424px!important;min-width:424px!important;max-width:424px!important}.h-432,.height-432{height:432px!important;min-height:432px!important;max-height:432px!important}.w-432,.width-432{width:432px!important;min-width:432px!important;max-width:432px!important}.h-448,.height-448{height:448px!important;min-height:448px!important;max-height:448px!important}.w-448,.width-448{width:448px!important;min-width:448px!important;max-width:448px!important}.h-456,.height-456{height:456px!important;min-height:456px!important;max-height:456px!important}.w-456,.width-456{width:456px!important;min-width:456px!important;max-width:456px!important}.h-464,.height-464{height:464px!important;min-height:464px!important;max-height:464px!important}.w-464,.width-464{width:464px!important;min-width:464px!important;max-width:464px!important}.h-472,.height-472{height:472px!important;min-height:472px!important;max-height:472px!important}.w-472,.width-472{width:472px!important;min-width:472px!important;max-width:472px!important}.h-488,.height-488{height:488px!important;min-height:488px!important;max-height:488px!important}.w-488,.width-488{width:488px!important;min-width:488px!important;max-width:488px!important}.h-496,.height-496{height:496px!important;min-height:496px!important;max-height:496px!important}.w-496,.width-496{width:496px!important;min-width:496px!important;max-width:496px!important}.h-504,.height-504{height:504px!important;min-height:504px!important;max-height:504px!important}.w-504,.width-504{width:504px!important;min-width:504px!important;max-width:504px!important}.h-512,.height-512{height:512px!important;min-height:512px!important;max-height:512px!important}.w-512,.width-512{width:512px!important;min-width:512px!important;max-width:512px!important}.h-528,.height-528{height:528px!important;min-height:528px!important;max-height:528px!important}.w-528,.width-528{width:528px!important;min-width:528px!important;max-width:528px!important}.h-536,.height-536{height:536px!important;min-height:536px!important;max-height:536px!important}.w-536,.width-536{width:536px!important;min-width:536px!important;max-width:536px!important}.h-544,.height-544{height:544px!important;min-height:544px!important;max-height:544px!important}.w-544,.width-544{width:544px!important;min-width:544px!important;max-width:544px!important}.h-552,.height-552{height:552px!important;min-height:552px!important;max-height:552px!important}.w-552,.width-552{width:552px!important;min-width:552px!important;max-width:552px!important}.h-568,.height-568{height:568px!important;min-height:568px!important;max-height:568px!important}.w-568,.width-568{width:568px!important;min-width:568px!important;max-width:568px!important}.h-576,.height-576{height:576px!important;min-height:576px!important;max-height:576px!important}.w-576,.width-576{width:576px!important;min-width:576px!important;max-width:576px!important}.h-584,.height-584{height:584px!important;min-height:584px!important;max-height:584px!important}.w-584,.width-584{width:584px!important;min-width:584px!important;max-width:584px!important}.h-592,.height-592{height:592px!important;min-height:592px!important;max-height:592px!important}.w-592,.width-592{width:592px!important;min-width:592px!important;max-width:592px!important}.h-608,.height-608{height:608px!important;min-height:608px!important;max-height:608px!important}.w-608,.width-608{width:608px!important;min-width:608px!important;max-width:608px!important}.h-616,.height-616{height:616px!important;min-height:616px!important;max-height:616px!important}.w-616,.width-616{width:616px!important;min-width:616px!important;max-width:616px!important}.h-624,.height-624{height:624px!important;min-height:624px!important;max-height:624px!important}.w-624,.width-624{width:624px!important;min-width:624px!important;max-width:624px!important}.h-632,.height-632{height:632px!important;min-height:632px!important;max-height:632px!important}.w-632,.width-632{width:632px!important;min-width:632px!important;max-width:632px!important}.h-648,.height-648{height:648px!important;min-height:648px!important;max-height:648px!important}.w-648,.width-648{width:648px!important;min-width:648px!important;max-width:648px!important}.h-656,.height-656{height:656px!important;min-height:656px!important;max-height:656px!important}.w-656,.width-656{width:656px!important;min-width:656px!important;max-width:656px!important}.h-664,.height-664{height:664px!important;min-height:664px!important;max-height:664px!important}.w-664,.width-664{width:664px!important;min-width:664px!important;max-width:664px!important}.h-672,.height-672{height:672px!important;min-height:672px!important;max-height:672px!important}.w-672,.width-672{width:672px!important;min-width:672px!important;max-width:672px!important}.h-688,.height-688{height:688px!important;min-height:688px!important;max-height:688px!important}.w-688,.width-688{width:688px!important;min-width:688px!important;max-width:688px!important}.h-696,.height-696{height:696px!important;min-height:696px!important;max-height:696px!important}.w-696,.width-696{width:696px!important;min-width:696px!important;max-width:696px!important}.h-704,.height-704{height:704px!important;min-height:704px!important;max-height:704px!important}.w-704,.width-704{width:704px!important;min-width:704px!important;max-width:704px!important}.h-712,.height-712{height:712px!important;min-height:712px!important;max-height:712px!important}.w-712,.width-712{width:712px!important;min-width:712px!important;max-width:712px!important}.h-728,.height-728{height:728px!important;min-height:728px!important;max-height:728px!important}.w-728,.width-728{width:728px!important;min-width:728px!important;max-width:728px!important}.h-736,.height-736{height:736px!important;min-height:736px!important;max-height:736px!important}.w-736,.width-736{width:736px!important;min-width:736px!important;max-width:736px!important}.h-744,.height-744{height:744px!important;min-height:744px!important;max-height:744px!important}.w-744,.width-744{width:744px!important;min-width:744px!important;max-width:744px!important}.h-752,.height-752{height:752px!important;min-height:752px!important;max-height:752px!important}.w-752,.width-752{width:752px!important;min-width:752px!important;max-width:752px!important}.h-768,.height-768{height:768px!important;min-height:768px!important;max-height:768px!important}.w-768,.width-768{width:768px!important;min-width:768px!important;max-width:768px!important}.h-776,.height-776{height:776px!important;min-height:776px!important;max-height:776px!important}.w-776,.width-776{width:776px!important;min-width:776px!important;max-width:776px!important}.h-784,.height-784{height:784px!important;min-height:784px!important;max-height:784px!important}.w-784,.width-784{width:784px!important;min-width:784px!important;max-width:784px!important}.h-792,.height-792{height:792px!important;min-height:792px!important;max-height:792px!important}.w-792,.width-792{width:792px!important;min-width:792px!important;max-width:792px!important}.b,.border{border:1px solid rgba(0,0,0,.12)}.border-top,.bt{border-top:1px solid rgba(0,0,0,.12)}.border-right,.br{border-right:1px solid rgba(0,0,0,.12)}.bb,.border-bottom{border-bottom:1px solid rgba(0,0,0,.12)}.bl,.border-left{border-left:1px solid rgba(0,0,0,.12)}.bh,.border-horizontal{border-left:1px solid rgba(0,0,0,.12);border-right:1px solid rgba(0,0,0,.12)}.border-vertical,.bv{border-top:1px solid rgba(0,0,0,.12);border-bottom:1px solid rgba(0,0,0,.12)}.brad-1{border-radius:1px}.brad-2{border-radius:2px}.brad-3{border-radius:3px}.brad-4{border-radius:4px}.brad-5{border-radius:5px}.brad-6{border-radius:6px}.brad-7{border-radius:7px}.brad-8{border-radius:8px}.brad-9{border-radius:9px}.brad-10{border-radius:10px}.brad-11{border-radius:11px}.brad-12{border-radius:12px}@media all{.page-break{display:none}}@media print{.page-break{display:block;break-after:always;page-break-after:always}#main #vertical-navigation{display:none}#main #toolbar{display:none}#main #quick-panel{display:none}#main #content{position:relative!important;top:0!important;right:0!important;bottom:0!important;left:0!important;background:0 0!important}ms-theme-options{display:none}.ps-scrollbar-x-rail,.ps-scrollbar-y-rail{display:none!important}.printable{overflow:visible!important}.printable .template-layout{display:inline!important}}.advanced-search-container{border-bottom:1px rgba(0,0,0,.12) solid}.advanced-search-conditions{border-bottom:1px rgba(0,0,0,.12) solid;padding:4px 0}.advanced-search-conditions .errors{font-size:12px;color:#dd2c00;margin-top:10px}.advanced-search-conditions .advanced-search-chips md-chips-wrap{box-shadow:none}.advanced-search-conditions .advanced-search-chips md-chip{position:relative}.advanced-search-conditions .advanced-search-chips md-chip .md-chip-content md-chip-template span p.filter-text{display:inline-block;margin:0}.advanced-search-conditions .advanced-search-chips md-chip .md-chip-remove-container{position:absolute;right:4px;top:4px;margin-right:0;height:24px}.advanced-search-conditions .advanced-search-chips md-chip .md-chip-remove-container button.remove-filter{position:relative;height:24px;width:24px;line-height:30px;text-align:center;border-radius:50%;border:none;box-shadow:none;padding:0;margin:0;transition:background .15s linear;display:block}.advanced-search-conditions .advanced-search-chips md-chip .md-chip-remove-container button.remove-filter md-icon{position:absolute;top:50%;left:50%;transform:translate3d(-50%,-50%,0);color:#616161}.advanced-search-conditions .advanced-search-chips md-chip .md-chip-remove-container button.remove-filter md-icon:focus,.advanced-search-conditions .advanced-search-chips md-chip .md-chip-remove-container button.remove-filter md-icon:hover{color:rgba(255,0,0,.8)}.advanced-search-conditions .advanced-search-chips md-chips-wrap.md-removable md-chip md-chip-template{padding-right:5px}.advanced-search-bar{padding:10px 0}.advanced-search-bar md-input-container.no-errors{font-size:12px;transition:0s none;-webkit-transition:0s none;animation:0s none;-webkit-animation:0s none}.advanced-search-bar md-input-container.no-errors input{font-family:Arial Unicode MS,Arial,Helvetica}.advanced-search-bar md-input-container.no-errors .md-errors-spacer{min-height:0}md-option div div.operators-list{display:table}md-option div div.operators-list span{display:table-cell}md-option div div.operators-list span.operator-symbol{display:table-cell;font-size:14px;width:30px}.advanced-search-bar mdp-date-picker button{margin:0!important}.advanced-search-bar mdp-date-picker md-input-container{flex:1;margin:0}.advanced-search-bar mdp-date-picker md-input-container label{font-size:12px}.advanced-search-bar mdp-date-picker md-input-container .md-errors-spacer{min-height:0}.advanced-search-bar div md-date-range{font-size:12px;margin-left:10px}.advanced-search-bar div.autocomplete-input md-icon{margin:8px 8px 8px 0}.advanced-search-bar div.autocomplete-input md-autocomplete{font-size:12px!important}.advanced-search-bar div.autocomplete-input md-autocomplete md-autocomplete-wrap{height:0}.advanced-search-bar div.autocomplete-input md-autocomplete md-autocomplete-wrap md-input-container{margin:0}.advanced-search-bar div.autocomplete-input md-autocomplete md-autocomplete-wrap md-input-container input[type=search]{padding:0!important}.advanced-search-bar div.autocomplete-input md-autocomplete md-autocomplete-wrap md-input-container div.md-errors-spacer{min-height:0}md-toolbar.advanced-search-dialog-header{background-image:url(/assets/images/backgrounds/header-bg.png);background-position:top}.md-autocomplete-suggestions-container li .highlight,.md-autocomplete-suggestions-container.md-default-theme li .highlight{color:#ca1d1d;font-weight:700}.chip-disabled{opacity:.4}.ms-card{display:flex;flex-direction:row;padding:8px}.ms-card .ms-card-content-wrapper{position:relative;overflow:hidden;width:100%;max-width:400px;border-radius:2px;background:#fff;box-shadow:0 3px 1px -2px rgba(0,0,0,.14),0 2px 2px 0 rgba(0,0,0,.098),0 1px 5px 0 rgba(0,0,0,.084)}.ms-card .template-1 .media .image{width:100%;border-radius:2px 2px 0 0}.ms-card .template-10 .media{width:80px;min-width:80px;max-width:80px}.ms-card .template-2 .header .avatar .image{display:block;width:40px;height:40px;border-radius:20px}.ms-card .template-2 .media .image{width:100%}.ms-card .template-4 .info{position:absolute;right:0;bottom:0;left:0;z-index:2;background:rgba(0,0,0,.54)}.ms-card .template-4 .media{z-index:1}.ms-card .template-4 .media .image{width:100%}.ms-card .template-5 .media{width:80px;min-width:80px;max-width:80px}.ms-card .template-5 .info,.ms-card .template-5 .media{-ms-flex:0 1 auto}.ms-card .template-8 .media .image{width:100%;border-radius:2px 2px 0 0}.ms-card .template-9 .header .avatar .image{display:block;width:40px;height:40px;border-radius:20px}.ms-card .template-9 .media .image{width:100%}md-list-item .md-list-item-text p.ms-dual-multiselect-line-xs{font-size:10px!important;padding-top:5px}md-list-item md-icon.hidden{visibility:hidden}md-icon.add-disabled{cursor:default!important;opacity:.4}md-list-item.read-only-mode{cursor:none!important}.ms-form-wizard{background:#fff;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}.ms-form-wizard md-tabs md-tabs-wrapper{box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas{height:72px}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-pagination-wrapper{height:72px}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-pagination-wrapper md-tab-item{opacity:1!important;padding:24px}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-pagination-wrapper md-tab-item:before{content:'';display:block;position:absolute;top:50%;left:0;right:50%;border-bottom:1px solid rgba(0,0,0,.12);z-index:8}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-pagination-wrapper md-tab-item:after{content:'';display:block;position:absolute;top:50%;left:50%;right:0;border-bottom:1px solid rgba(0,0,0,.12);z-index:8}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-pagination-wrapper md-tab-item:first-of-type:before{display:none}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-pagination-wrapper md-tab-item:last-of-type:after{display:none}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-pagination-wrapper md-tab-item.md-disabled .ms-form-wizard-step-label .ms-form-wizard-step-number{background:rgba(0,0,0,.12)!important}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-pagination-wrapper md-tab-item .md-ripple-container{z-index:11}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-ink-bar{display:none!important}.ms-form-wizard .ms-form-wizard-step-label{display:inline-block;position:relative;background:#fff;z-index:10;padding:0 16px;line-height:24px}.ms-form-wizard .ms-form-wizard-step-label .ms-form-wizard-step-number{display:inline-block;vertical-align:middle;width:24px;height:24px;line-height:24px;font-size:14px;margin-right:12px;border-radius:50%;color:#fff!important}.ms-form-wizard .ms-form-wizard-step-label .ms-form-wizard-step-number i{line-height:24px!important}.ms-form-wizard .ms-form-wizard-step-label .ms-form-wizard-step-text{display:inline-block;vertical-align:middle;position:relative;line-height:24px}.ms-form-wizard .ms-form-wizard-form{padding:24px 16px}.ms-form-wizard .navigation{padding:16px}.ms-form-wizard .navigation .steps{display:flex;align-items:center;justify-content:center;padding:0 16px}.ms-form-wizard .navigation .steps span{width:5px;height:5px;margin:0 4px;border-radius:50%}.ms-form-wizard .navigation .steps span:not(.md-accent-bg){background:rgba(0,0,0,.12)}.ms-form-wizard .navigation .steps span.selected{width:8px;height:8px}ms-info-bar{display:block;position:relative;width:100%;height:44px;background-color:#e91e63;z-index:99998;box-shadow:0 1px 5px 0 rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.12)}ms-info-bar #ms-info-bar-message{padding:8px 16px;line-height:28px;font-size:14px}ms-info-bar #ms-info-bar-message a{overflow:hidden;height:48px;color:#fff}ms-masonry{width:100%;display:block}ms-masonry [ms-masonry-item],ms-masonry ms-masonry-item{transition:transform .3s ease;position:absolute;transform:translate3d(50vw,100vh,0)}ms-material-color-picker md-menu .md-button{font-size:12px}md-menu-content.ms-material-color-picker-menu-content{width:208px;max-width:208px;min-width:208px;padding:0;overflow:hidden}md-menu-content.ms-material-color-picker-menu-content header{height:48px;text-transform:uppercase}md-menu-content.ms-material-color-picker-menu-content header .md-button{display:flex;margin:0}md-menu-content.ms-material-color-picker-menu-content header>span{line-height:13px}md-menu-content.ms-material-color-picker-menu-content .colors{position:relative;width:208px;min-height:258px;height:258px;padding:4px}md-menu-content.ms-material-color-picker-menu-content .colors .color{position:relative;width:46px;height:46px;margin:2px;border-radius:0;cursor:pointer}md-menu-content.ms-material-color-picker-menu-content .colors .color .label{padding:2px;font-size:10px}md-menu-content.ms-material-color-picker-menu-content .colors .color .icon-check{position:absolute;top:2px;right:2px;font-size:16px;opacity:.7}ms-nav{display:block;position:relative;color:rgba(255,255,255,.7);user-select:none;z-index:70}ms-nav ms-nav-item{display:block;position:relative;line-height:48px}ms-nav ms-nav-item.ms-nav-title{line-height:32px;font-size:12px;font-weight:500;margin-top:8px;padding:0 24px;width:100%;color:rgba(255,255,255,.3);text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}ms-nav ms-nav-item .ms-nav-button{display:flex;align-self:flex-start;align-items:center;position:relative;cursor:pointer;padding:0 48px 0 24px;color:rgba(255,255,255,.7);text-decoration:none}ms-nav ms-nav-item .ms-nav-button:not(.active):hover{background:rgba(0,0,0,.1);text-decoration:none}ms-nav ms-nav-item .ms-nav-button .ms-nav-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:opacity .2s ease-in-out .1s}ms-nav ms-nav-item .ms-nav-button .arrow{position:absolute;top:16px;right:24px;margin:0;transition:transform .3s ease-in-out,opacity .2s ease-in-out .1s}ms-nav ms-nav-item .ms-nav-button .ms-nav-badge{position:absolute;top:50%;right:24px;min-width:20px;height:20px;line-height:20px;padding:0 7px;font-size:11px;font-weight:700;border-radius:20px;transform:translateY(-50%);transition:opacity .2s ease-in-out .1s}ms-nav ms-nav-item .ms-nav-button.active{color:#fff!important}ms-nav ms-nav-item .ms-nav-button.active .ms-nav-badge{background:#fff!important;color:rgba(0,0,0,.87)!important}ms-nav ms-nav-item .ms-nav-button.active i{color:#fff}ms-nav ms-nav-item i{color:rgba(255,255,255,.7);margin:0 16px 0 0}ms-nav .ms-nav-toggle ms-nav-toggle-items{display:none;overflow:hidden}ms-nav .ms-nav-toggle ms-nav-toggle-items.expand-animation{transition:height .35s cubic-bezier(.25,.46,.45,.94)}ms-nav .ms-nav-toggle ms-nav-toggle-items.collapse-animation{transition:height .35s cubic-bezier(.25,.46,.45,.94)}ms-nav .ms-nav-toggle ms-nav-toggle-items ms-nav-item .ms-nav-button{padding-left:58px}ms-nav .ms-nav-toggle ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item .ms-nav-button{padding-left:68px}ms-nav .ms-nav-toggle ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item .ms-nav-button{padding-left:78px}ms-nav .ms-nav-toggle ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item .ms-nav-button{padding-left:88px}ms-nav .ms-nav-toggle ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item .ms-nav-button{padding-left:98px}ms-nav .ms-nav-toggle.active>.ms-nav-button{color:#fff}ms-nav .ms-nav-toggle.active>.ms-nav-button a,ms-nav .ms-nav-toggle.active>.ms-nav-button md-icon{color:#fff}ms-nav .ms-nav-toggle[collapsed=false]>.ms-nav-button>.arrow{transform:rotate(90deg)}ms-nav>.ms-nav-toggle[collapsed=false]{background-color:rgba(0,0,0,.12)}@media only screen and (min-width:1280px){.ms-nav-folded #ms-nav-fold-close-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;z-index:998}.ms-nav-folded #ms-nav-fold-open-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:999}.ms-nav-folded:not(.ms-nav-folded-open) ms-nav ms-nav-item.ms-nav-title{height:32px}.ms-nav-folded:not(.ms-nav-folded-open) ms-nav ms-nav-item.ms-nav-title:before{content:'';display:block;position:relative;top:12px;width:16px;border-top:1px solid rgba(255,255,255,.12)}.ms-nav-folded:not(.ms-nav-folded-open) ms-nav ms-nav-item.ms-nav-title span{display:none}.ms-nav-folded:not(.ms-nav-folded-open) ms-nav ms-nav-item .ms-nav-button{height:48px}.ms-nav-folded:not(.ms-nav-folded-open) ms-nav ms-nav-item .ms-nav-button>.arrow,.ms-nav-folded:not(.ms-nav-folded-open) ms-nav ms-nav-item .ms-nav-button>.ms-nav-badge,.ms-nav-folded:not(.ms-nav-folded-open) ms-nav ms-nav-item .ms-nav-button>.ms-nav-label{opacity:0;visibility:hidden}}.ms-navigation{display:block;position:relative;color:rgba(255,255,255,.7);user-select:none}.ms-navigation li,.ms-navigation ul{padding:0;margin:0}.ms-navigation ul{display:block;overflow:hidden}.ms-navigation ul li{position:relative}.ms-navigation ul li.collapsed ul{display:none}.ms-navigation .animate-height{transition:height .25s cubic-bezier(.25,.46,.45,.94)}.ms-navigation .ms-navigation-node .ms-navigation-item{display:block;position:relative;cursor:pointer;color:rgba(255,255,255,.7)}.ms-navigation .ms-navigation-node .ms-navigation-item:hover{background:rgba(0,0,0,.1)}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button{display:flex;position:relative;width:100%;height:48px;line-height:48px;flex-direction:row;justify-content:flex-start;align-items:center;padding-right:16px;color:rgba(255,255,255,.7);text-decoration:none;white-space:nowrap;overflow:hidden}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button .icon{color:rgba(255,255,255,.7);margin:0 16px 0 0}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button span{white-space:nowrap;overflow:hidden;opacity:1;transition:opacity .25s ease-in-out .1s}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button a{white-space:nowrap;overflow:hidden;opacity:1;transition:opacity .25s ease-in-out .1s}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button .arrow{margin:0;opacity:1;transition:transform .3s ease-in-out,opacity .25s ease-in-out .1s}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button .badge{position:absolute;top:50%;right:16px;min-width:20px;height:20px;line-height:20px;padding:0 7px;font-size:11px;font-weight:700;border-radius:20px;transform:translateY(-50%);transition:opacity .2s ease-in-out .1s}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button.active{color:#fff}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button.active .icon{color:#fff}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button.active .badge{background:#fff!important;color:rgba(0,0,0,.87)!important}.ms-navigation .ms-navigation-node:not(.collapsed)>.ms-navigation-item>.ms-navigation-button .arrow{transform:rotate(90deg)}.ms-navigation .ms-navigation-node.group>.ms-navigation-item{font-size:12px;font-weight:500;margin-top:8px;cursor:auto;background:0 0!important;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ms-navigation .ms-navigation-node.group>.ms-navigation-item>.ms-navigation-button{height:32px;line-height:32px;color:rgba(255,255,255,.3)}.ms-navigation .ms-navigation-node:not(.group).has-children:not(.collapsed){background-color:rgba(0,0,0,.12)}.ms-navigation .ms-navigation-node:not(.group).has-children.collapsing{background-color:rgba(0,0,0,.12)}.ms-navigation .ms-navigation-node:not(.group).has-children .has-children:not(.collapsed){background:0 0}.ms-navigation li .ms-navigation-button{padding-left:24px}.ms-navigation li li .ms-navigation-button{padding-left:56px}.ms-navigation li li li .ms-navigation-button{padding-left:72px}.ms-navigation li li li li .ms-navigation-button{padding-left:88px}.ms-navigation li li li li li .ms-navigation-button{padding-left:104px}.ms-navigation li.group .ms-navigation-button{padding-left:24px}.ms-navigation li.group li .ms-navigation-button{padding-left:24px}.ms-navigation li.group li li .ms-navigation-button{padding-left:56px}.ms-navigation li.group li li li .ms-navigation-button{padding-left:72px}.ms-navigation li.group li li li li .ms-navigation-button{padding-left:88px}#horizontal-navigation{height:64px;min-height:64px;max-height:64px;background:#fff;z-index:54}#horizontal-navigation .ms-navigation-horizontal{display:flex;position:relative;user-select:none}#horizontal-navigation .ms-navigation-horizontal li,#horizontal-navigation .ms-navigation-horizontal ul{padding:0;margin:0;list-style:none}#horizontal-navigation .ms-navigation-horizontal .horizontal{display:flex;flex:1}#horizontal-navigation .ms-navigation-horizontal .horizontal li{position:relative;cursor:pointer}#horizontal-navigation .ms-navigation-horizontal .horizontal li:not(.active):hover{background:rgba(0,0,0,.12)}#horizontal-navigation .ms-navigation-horizontal .horizontal>li>.ms-navigation-horizontal-item>.ms-navigation-horizontal-button{display:block;float:left;padding:12px 14px}#horizontal-navigation .ms-navigation-horizontal .horizontal>li>.ms-navigation-horizontal-item>.ms-navigation-horizontal-button .arrow{display:none}#horizontal-navigation .ms-navigation-horizontal .horizontal>li>.ms-navigation-horizontal-item>.ms-navigation-horizontal-button.active{background:0 0;border-bottom:2px solid}#horizontal-navigation .ms-navigation-horizontal .horizontal>li:last-child{margin-right:0}#horizontal-navigation .ms-navigation-horizontal .horizontal>li li .ms-navigation-horizontal-item .ms-navigation-horizontal-button.active{color:#fff!important}#horizontal-navigation .ms-navigation-horizontal .horizontal .has-children ul{display:none;position:absolute;background:#fff;z-index:999;min-width:200px;box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12);top:0;left:100%}#horizontal-navigation .ms-navigation-horizontal .horizontal .has-children:hover>ul{display:block}#horizontal-navigation .ms-navigation-horizontal .horizontal>.has-children>ul{top:100%;left:0}#horizontal-navigation .ms-navigation-horizontal .horizontal .ms-navigation-horizontal-item .ms-navigation-horizontal-button{display:flex;align-items:center;width:100%;color:rgba(0,0,0,.87);white-space:nowrap;padding:14px 16px;text-decoration:none}#horizontal-navigation .ms-navigation-horizontal .horizontal .ms-navigation-horizontal-item .ms-navigation-horizontal-button .icon{color:rgba(0,0,0,.54);margin-right:8px}#horizontal-navigation .ms-navigation-horizontal .horizontal .ms-navigation-horizontal-item .ms-navigation-horizontal-button .badge{min-width:20px;height:20px;line-height:20px;padding:0 7px;font-size:11px;font-weight:700;border-radius:20px;transition:opacity .2s ease-in-out .1s}#horizontal-navigation .ms-navigation-horizontal .horizontal .ms-navigation-horizontal-item .ms-navigation-horizontal-button .arrow{margin-left:8px}#horizontal-navigation .ms-navigation-horizontal .horizontal .ms-navigation-horizontal-item .ms-navigation-horizontal-button.active .badge{background:#fff!important;color:rgba(0,0,0,.87)!important}#horizontal-navigation .ms-navigation-horizontal .horizontal .ms-navigation-horizontal-item .ms-navigation-horizontal-button.active .icon{color:#fff}@media only screen and (min-width:960px){body.ms-navigation-folded:not(.ms-navigation-folded-open) .ms-navigation .animate-height{transition:none}body.ms-navigation-folded:not(.ms-navigation-folded-open) .ms-navigation .ms-navigation-node .ms-navigation-item .ms-navigation-button .icon{margin:0}body.ms-navigation-folded:not(.ms-navigation-folded-open) .ms-navigation .ms-navigation-node .ms-navigation-item .ms-navigation-button .arrow,body.ms-navigation-folded:not(.ms-navigation-folded-open) .ms-navigation .ms-navigation-node .ms-navigation-item .ms-navigation-button .badge,body.ms-navigation-folded:not(.ms-navigation-folded-open) .ms-navigation .ms-navigation-node .ms-navigation-item .ms-navigation-button .title{opacity:0;visibility:hidden}body.ms-navigation-folded:not(.ms-navigation-folded-open) .ms-navigation .ms-navigation-node.group>.ms-navigation-item .ms-navigation-button:before{content:'';display:block;position:relative;width:16px;border-top:1px solid rgba(255,255,255,.12)}body.ms-navigation-folded:not(.ms-navigation-folded-open) #ms-navigation-fold-expander{position:absolute;top:0;right:0;bottom:0;left:0;z-index:999}body.ms-navigation-folded #ms-navigation-fold-collapser{position:absolute;top:0;right:0;bottom:0;left:0;z-index:59}}@media only screen and (max-width:960px){body.ms-navigation-horizontal-mobile-menu-active #horizontal-navigation .navigation-toggle{height:64px;margin-right:16px}body.ms-navigation-horizontal-mobile-menu-active #horizontal-navigation .navigation-toggle .md-button{margin:0;width:64px;height:64px}body.ms-navigation-horizontal-mobile-menu-active #horizontal-navigation .ms-navigation-horizontal{display:block!important;background:#fff}#horizontal-navigation{z-index:60}#horizontal-navigation .ms-navigation-horizontal{position:absolute;display:none;top:0;right:0;bottom:0;left:0;padding:0 0 16px 0;z-index:9998;overflow-x:hidden;overflow-y:scroll}#horizontal-navigation .ms-navigation-horizontal .horizontal{flex-direction:column;min-height:100%;width:100%}#horizontal-navigation .ms-navigation-horizontal .horizontal li:not(.active):hover{background:0 0}#horizontal-navigation .ms-navigation-horizontal .horizontal li:not(.active) .ms-navigation-horizontal-item{margin:4px}#horizontal-navigation .ms-navigation-horizontal .horizontal li:not(.active) .ms-navigation-horizontal-item:hover{background:rgba(0,0,0,.12)}#horizontal-navigation .ms-navigation-horizontal .horizontal>li{padding:0 12px}#horizontal-navigation .ms-navigation-horizontal .horizontal>li>.ms-navigation-horizontal-item>.ms-navigation-horizontal-button{display:flex;float:none}#horizontal-navigation .ms-navigation-horizontal .horizontal>li>.ms-navigation-horizontal-item>.ms-navigation-horizontal-button .arrow{display:block}#horizontal-navigation .ms-navigation-horizontal .horizontal .has-children ul{position:relative;top:0;left:0;box-shadow:none}#horizontal-navigation .ms-navigation-horizontal .horizontal .has-children:hover>ul{display:none}#horizontal-navigation .ms-navigation-horizontal .horizontal .has-children .expanded>.ms-navigation-horizontal-button .arrow{transform:rotate(90deg)}#horizontal-navigation .ms-navigation-horizontal .horizontal .has-children .expanded+ul{display:block;margin-left:16px}#horizontal-navigation .ms-navigation-horizontal .horizontal .ms-navigation-horizontal-item{min-height:48px;height:48px}}md-dialog.md-phonebar-dialog{max-width:720px;width:720px}md-dialog.md-phonebar-dialog md-dialog-content{display:block;position:relative;height:500px}md-dialog.md-phonebar-dialog md-toolbar .title{font-size:17px}md-dialog.md-phonebar-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.md-phonebar-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}md-dialog.md-phonebar-dialog md-tabs{position:static}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}.ms-phonebar{height:64px;font-size:13px}.ms-phonebar .phonebar-container{height:64px;padding:0}.ms-phonebar .phonebar-container .quantity-indicator{display:inline-block;vertical-align:middle;width:8px;height:8px;border-radius:4px;margin-right:5px;margin-left:5px}.ms-phonebar .phonebar-container .sessions{overflow-x:auto}.ms-phonebar .phonebar-container .session{border-radius:3px;border:1px solid #dcdcdc;margin-left:3px;cursor:pointer}.ms-phonebar .phonebar-container .session-info{padding-left:3px;padding-right:3px;color:grey}.ms-phonebar .phonebar-container .session-button{border:1px solid grey;margin:3px}.ms-phonebar .phonebar-container .button-bar{border:1px solid grey}.ms-phonebar .phonebar-container .num-pad{position:fixed;border-radius:3px;border:1px solid #9e9e9e;top:80px;left:80px}.ms-phonebar .phonebar-container .num-pad-logo{height:40px;width:42px}.ms-phonebar .phonebar-container p{margin:0;padding:0 0 10px 0;line-height:10px;font-size:10px}.ms-phonebar .phonebar-container .span4{width:50px;float:left;margin:8px}.ms-phonebar .phonebar-container .num{border:1px solid #9e9e9e;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;height:50px;background-color:#fff;color:#333;cursor:pointer}.ms-phonebar .phonebar-container .num:hover{background-color:#9e9e9e;color:#fff;transition-property:background-color .2s linear 0s;-moz-transition:background-color .2s linear 0s;-webkit-transition:background-color .2s linear 0s;-o-transition:background-color .2s linear 0s}.ms-phonebar .phonebar-container .txt{font-size:20px;text-align:center;margin-top:3px;font-family:Lato,sans-serif;color:#333}.ms-phonebar .phonebar-container .small{font-size:15px}.ms-phonebar .phonebar-container .angucomplete-dropdown{top:45px;overflow-y:auto;max-height:200px}.ms-phonebar .phonebar-container .highlight{color:red}.ms-phonebar .phonebar-container .input-number{margin-left:5px;padding:8px;border:1px solid #ccc;border-radius:3px;box-sizing:border-box}.ms-phonebar .phonebar-container .phonebar{position:relative}.ms-phonebar .phonebar-container .phonebar>div{height:64px;min-width:44px}.ms-phonebar .phonebar-container .phonebar>div.dragging{cursor:grabbing}.ms-phonebar .phonebar-container .phonebar>div.dragging .md-ripple-container{display:none}.ms-phonebar .phonebar-container .phonebar>div.ghost .shortcut{opacity:.27}.ms-phonebar .phonebar-container.mobile-bar-active{position:absolute;top:0;right:0;bottom:0;left:0;background:#fff;z-index:99;max-width:none!important}.ms-phonebar .phonebar-container.mobile-bar-active .phonebar,.ms-phonebar .phonebar-container.mobile-bar-active .toggle-mobile-menu{display:flex!important}.ms-phonebar .phonebar-container.mobile-bar-active .toggle-mobile-menu{margin-left:14px}.ms-phonebar .phonebar-container.mobile-bar-active>div{border-right:1px solid rgba(0,0,0,.12)}.quick-filter-container md-select .md-select-value.md-select-placeholder{color:inherit}.quick-filter-container md-select[multiple] md-select-value>:first-child{max-width:250px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.ms-responsive-table-wrapper{overflow-x:auto;overflow-y:hidden}.ms-scroll{overflow:hidden!important}.ms-search-bar{height:64px;font-size:13px}.ms-search-bar .ms-search-bar-collapser,.ms-search-bar .ms-search-bar-expander{cursor:pointer;padding:0 20px;margin:0;width:64px!important;height:64px!important;line-height:64px!important}.ms-search-bar .ms-search-bar-loader{width:64px!important;height:64px!important;line-height:64px!important}.ms-search-bar .ms-search-button-expanded{pointer-events:none}.ms-search-bar .ms-search-bar-collapser{display:none}.ms-search-bar input{background-color:transparent;font-size:16px}.ms-search-bar .ms-search-bar-results{position:absolute;top:64px;left:0;right:0;overflow-x:hidden;overflow-y:scroll;background:#fff;max-height:300px;box-shadow:0 1px 8px 0 rgba(0,0,0,.2),0 3px 4px 0 rgba(0,0,0,.14),0 3px 3px -2px rgba(0,0,0,.12)}.ms-search-bar .ms-search-bar-results .no-results{font-size:18px;padding:16px;color:rgba(0,0,0,.54)}.ms-search-bar .ms-search-bar-results .result{position:relative;height:56px;min-height:56px;max-height:56px;padding:16px;cursor:pointer}.ms-search-bar .ms-search-bar-results .result.selected{background:rgba(0,0,0,.07)}.ms-search-bar .ms-search-bar-results .result .icon-container{min-width:32px;margin-right:8px}.ms-search-bar .ms-search-bar-results .result .icon-container .square{width:6px;height:6px}.ms-search-bar .ms-search-bar-results .result .title{font-size:16px}.ms-search-bar .ms-search-bar-results .result .description{padding-top:6px;font-size:14px}.ms-search-bar.expanded{position:absolute;top:0;right:0;bottom:0;left:0;background:#fff;z-index:10}.ms-search-bar.expanded #ms-search-bar-input{display:block}.ms-search-bar.expanded .ms-search-bar-collapser{display:block}.ms-search-bar.down{top:64px;border-bottom:1px rgba(0,0,0,.12) solid}.ms-search-bar[disabled] input{pointer-events:none}body.ms-search-bar-expanded #toolbar{z-index:999!important}@media screen and (max-width:960px){.ms-search-bar-label{padding:0 8px 0 12px}}.ms-shortcuts{height:64px;font-size:13px}.ms-shortcuts .shortcuts-container{height:64px;padding:0 8px;max-width:400px}.ms-shortcuts .shortcuts-container .shortcuts{position:relative;overflow-x:scroll}.ms-shortcuts .shortcuts-container .shortcuts>div{height:64px;min-width:44px}.ms-shortcuts .shortcuts-container .shortcuts>div.dragging{cursor:grabbing}.ms-shortcuts .shortcuts-container .shortcuts>div.dragging .md-ripple-container{display:none}.ms-shortcuts .shortcuts-container .shortcuts>div.ghost .shortcut{opacity:.27}.ms-shortcuts .shortcuts-container .shortcuts>div .shortcut{margin:2px}.ms-shortcuts .shortcuts-container .shortcuts>div .shortcut .first-letter{display:inline-block;vertical-align:middle;font-size:20px;text-transform:uppercase;color:rgba(0,0,0,.54)}.ms-shortcuts .shortcuts-container .shortcut-menu{margin:0}.ms-shortcuts .shortcuts-container.mobile-bar-active{position:absolute;top:0;right:0;bottom:0;left:0;background:#fff;z-index:99;max-width:none!important}.ms-shortcuts .shortcuts-container.mobile-bar-active .shortcut-menu,.ms-shortcuts .shortcuts-container.mobile-bar-active .shortcuts,.ms-shortcuts .shortcuts-container.mobile-bar-active .toggle-mobile-menu{display:flex!important}.ms-shortcuts .shortcuts-container.mobile-bar-active .toggle-mobile-menu{margin-left:14px}.ms-shortcuts .shortcuts-container.mobile-bar-active>div{border-right:1px solid rgba(0,0,0,.12)}#ms-shortcut-add-menu{position:relative;width:240px;min-width:240px;max-width:240px}#ms-shortcut-add-menu .add-shortcut-button{width:48px;height:48px;padding:0 12px;margin:0}#ms-shortcut-add-menu .shortcut-search{height:45px;padding:0 8px}#ms-shortcut-add-menu .shortcut-search .search-icon{width:40px;height:40px;line-height:48px}#ms-shortcut-add-menu .shortcut-search .shortcut-loader{padding:10px}#ms-shortcut-add-menu .shortcut-search input{padding:8px}#ms-shortcut-add-menu .results{position:relative;overflow-y:scroll;max-height:233px;margin-top:8px;padding-top:8px;border-top:1px solid rgba(0,0,0,.12)}#ms-shortcut-add-menu .results .no-results{font-size:18px;padding:16px;color:rgba(0,0,0,.54)}#ms-shortcut-add-menu .results .result{position:relative;min-height:56px;padding:16px;cursor:pointer}#ms-shortcut-add-menu .results .result.selected{background:rgba(0,0,0,.07)}#ms-shortcut-add-menu .results .result .icon-container{min-width:32px;margin-right:8px}#ms-shortcut-add-menu .results .result .icon-container .square{width:6px;height:6px}#ms-shortcut-add-menu .results .result .title{font-size:16px}#ms-shortcut-add-menu .results .result .description{padding-top:6px;font-size:14px}#splash-screen{display:block;position:absolute;top:0;left:0;right:0;bottom:0;background-color:#3c4252;z-index:99999}#splash-screen.ng-leave{opacity:1;transition:all linear .2s}#splash-screen.ng-leave-active{opacity:0}#splash-screen .center{display:block;width:100%;position:absolute;top:50%;transform:translateY(-50%)}#splash-screen .logo{width:96px;height:96px;line-height:96px;margin:0 auto;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:56px;text-align:center;border-radius:2px;background-color:#039be5;color:#fff;box-shadow:0 2px 14px 0 rgba(0,0,0,.22)}#splash-screen .spinner-wrapper{display:block;position:relative;width:100%;min-height:100px;height:100px}#splash-screen .spinner-wrapper .spinner{position:absolute;overflow:hidden;left:50%;margin-left:-50px;animation:outer-rotate 2.91667s linear infinite}#splash-screen .spinner-wrapper .spinner .inner{width:100px;height:100px;position:relative;animation:sporadic-rotate 5.25s cubic-bezier(.35,0,.25,1) infinite}#splash-screen .spinner-wrapper .spinner .inner .gap{position:absolute;left:49px;right:49px;top:0;bottom:0;border-top:10px solid;box-sizing:border-box}#splash-screen .spinner-wrapper .spinner .inner .left,#splash-screen .spinner-wrapper .spinner .inner .right{position:absolute;top:0;height:100px;width:50px;overflow:hidden}#splash-screen .spinner-wrapper .spinner .inner .left .half-circle,#splash-screen .spinner-wrapper .spinner .inner .right .half-circle{position:absolute;top:0;width:100px;height:100px;box-sizing:border-box;border:10px solid #4285f4;border-bottom-color:transparent;border-radius:50%}#splash-screen .spinner-wrapper .spinner .inner .left{left:0}#splash-screen .spinner-wrapper .spinner .inner .left .half-circle{left:0;border-right-color:transparent;animation:left-wobble 1.3125s cubic-bezier(.35,0,.25,1) infinite;-webkit-animation:left-wobble 1.3125s cubic-bezier(.35,0,.25,1) infinite}#splash-screen .spinner-wrapper .spinner .inner .right{right:0}#splash-screen .spinner-wrapper .spinner .inner .right .half-circle{right:0;border-left-color:transparent;animation:right-wobble 1.3125s cubic-bezier(.35,0,.25,1) infinite;-webkit-animation:right-wobble 1.3125s cubic-bezier(.35,0,.25,1) infinite}@keyframes outer-rotate{0%{transform:rotate(0) scale(.5)}100%{transform:rotate(360deg) scale(.5)}}@keyframes left-wobble{0%,100%{transform:rotate(130deg)}50%{transform:rotate(-5deg)}}@keyframes right-wobble{0%,100%{transform:rotate(-130deg)}50%{transform:rotate(5deg)}}@keyframes sporadic-rotate{12.5%{transform:rotate(135deg)}25%{transform:rotate(270deg)}37.5%{transform:rotate(405deg)}50%{transform:rotate(540deg)}62.5%{transform:rotate(675deg)}75%{transform:rotate(810deg)}87.5%{transform:rotate(945deg)}100%{transform:rotate(1080deg)}}.ms-stepper .ms-stepper-horizontal{background:#fff;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation{height:72px;min-height:72px;max-height:72px;background:#fff;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item{display:flex;flex-direction:row;align-items:center;position:relative;height:72px;min-height:72px;max-height:72px;line-height:24px;margin:0;padding:24px;border-radius:0;cursor:pointer;font-size:14px;text-transform:none}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item:after,.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item:before{content:'';display:block;position:absolute;top:50%;width:24px;border-bottom:1px solid rgba(0,0,0,.12)}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item:before{left:0}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item:after{right:0}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item:first-child:before{display:none}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item:last-child:after{display:none}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item.current .title{font-weight:600;color:rgba(0,0,0,.87)}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item.disabled{cursor:default}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item.disabled .step{background:rgba(0,0,0,.12)}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item.disabled .title{color:rgba(0,0,0,.27)}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item.disabled .subtitle{color:rgba(0,0,0,.27)}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item.optional{padding:16px 24px}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item .step{width:24px;min-width:24px;height:24px;border-radius:50%;margin:0 8px 0 16px;color:#fff}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item .step .icon{color:#fff;font-weight:700;line-height:24px!important}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item .title{padding-right:16px;color:rgba(0,0,0,.54)}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item .subtitle{font-size:12px;padding-right:16px;color:rgba(0,0,0,.54);line-height:1}.ms-stepper .ms-stepper-horizontal .ms-stepper-steps{padding:24px 16px}.ms-stepper .ms-stepper-horizontal .ms-stepper-controls{padding:0 16px 16px 16px}.ms-stepper .ms-stepper-horizontal .ms-stepper-controls .ms-stepper-dots{display:none;align-items:center;justify-content:center;padding:0 16px}.ms-stepper .ms-stepper-horizontal .ms-stepper-controls .ms-stepper-dots span{width:5px;height:5px;margin:0 4px;border-radius:50%}.ms-stepper .ms-stepper-horizontal .ms-stepper-controls .ms-stepper-dots span:not(.md-accent-bg){background:rgba(0,0,0,.12)}.ms-stepper .ms-stepper-horizontal .ms-stepper-controls .ms-stepper-dots span.selected{width:8px;height:8px}@media screen and (max-width:600px){.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation{display:none}.ms-stepper .ms-stepper-horizontal .ms-stepper-controls .ms-stepper-dots{display:flex}}.ms-stepper .ms-stepper-vertical{position:relative;background:#fff;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}.ms-stepper .ms-stepper-vertical .ms-stepper-vertical-line{display:block;position:absolute;width:1px;top:32px;bottom:32px;left:43px;border-left:1px solid rgba(0,0,0,.12)}.ms-stepper .ms-stepper-vertical .ms-stepper-steps{padding:8px 0}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step{display:block}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item{display:flex;flex-direction:row;align-items:center;position:relative;width:100%;height:72px;min-height:72px;max-height:72px;line-height:24px;margin:0;padding:0 24px;border-radius:0;cursor:pointer;font-size:14px;text-transform:none}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item:first-child:before{display:none}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item:last-child:after{display:none}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item:hover:not(.disabled) .step{background-color:#ececec;border-color:#ececec}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item.current .title{font-weight:600;color:rgba(0,0,0,.87)}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item.disabled{cursor:default}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item.disabled .title{color:rgba(0,0,0,.27)}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item.disabled .subtitle{color:rgba(0,0,0,.27)}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item.optional{padding:16px 24px}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item .step{width:40px;min-width:40px;height:40px;margin:0 16px 0 0;border-radius:50%;background:#fff;border:8px solid #fff;color:#fff;transition:border-color .4s cubic-bezier(.25,.8,.25,1),background-color .4s cubic-bezier(.25,.8,.25,1)}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item .step .icon{font-weight:700;line-height:28px!important}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item .title{padding-right:16px;color:rgba(0,0,0,.54)}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item .subtitle{font-size:12px;padding-right:16px;color:rgba(0,0,0,.54);line-height:1}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-step-content{padding:0 24px 16px 64px}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-controls{padding:0 16px 16px 56px}.ms-tab-scroll .scroll-arrow{height:inherit;padding:0}.ms-tab-scroll .bar-container{overflow:hidden}.ms-tab-scroll .scroll-container{overflow-x:hidden;overflow-y:hidden;transition:transform .2s ease-in-out}.ms-timeline .ms-timeline-loader{position:relative;display:flex;align-items:center;justify-content:center;width:56px;height:56px;margin:0 auto;background:#fff;font-weight:500;opacity:0;z-index:11;border-radius:50%}.ms-timeline .ms-timeline-loader.show{opacity:1}.ms-timeline .ms-timeline-loader .spinner{width:24px;height:24px;border:3px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%}.ms-widget .ms-widget-front{box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}.ms-widget .ms-widget-back{box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}.ms-widget.sidenav-widget .ms-widget-back,.ms-widget.sidenav-widget .ms-widget-front{box-shadow:none}.ms-widget .flip-to-front{position:absolute;top:0;right:0}.ms-widget .c3{height:100%}.ms-widget .chart-fill-8{margin:0 -8px -8px -8px}.ms-widget .chart-fill-16{margin:0 -16px -16px -16px}.ms-widget .chart-fill-24{margin:0 -24px -24px -24px}.ms-widget .chart-fill-32{margin:0 -32px -32px -32px}.ms-widget .chart-fill-40{margin:0 -40px -40px -40px}.ms-widget .chart-fill-48{margin:0 -48px -48px -48px}.ms-widget .chart-fill-56{margin:0 -56px -56px -56px}.ms-widget .chart-fill-64{margin:0 -64px -64px -64px}.ms-widget .chart-fill-72{margin:0 -72px -72px -72px}.ms-widget .chart-fill-80{margin:0 -80px -80px -80px}.ms-widget{position:relative;font-size:1.3rem;perspective:3000px;padding:12px}.ms-widget .ms-widget-front{display:flex;flex-direction:column;flex:1 1 auto;position:relative;overflow:hidden;visibility:visible;width:100%;opacity:1;z-index:10;border-radius:2px;transition:transform .5s ease-out 0s,visibility 0s ease-in .2s,opacity 0s ease-in .2s;transform:rotateY(0);backface-visibility:hidden}.ms-widget .ms-widget-back{display:block;position:absolute;overflow:hidden;visibility:hidden;opacity:0;z-index:10;top:12px;right:12px;bottom:12px;left:12px;border-radius:2px;transition:transform .5s ease-out 0s,visibility 0s ease-in .2s,opacity 0s ease-in .2s;transform:rotateY(180deg);backface-visibility:hidden}.ms-widget .md-button{margin:0}.ms-widget .md-button.md-icon-button{margin:0}.ms-widget.flipped .ms-widget-front{visibility:hidden;opacity:0;transform:rotateY(180deg)}.ms-widget.flipped .ms-widget-back{display:block;visibility:visible;opacity:1;transform:rotateY(360deg)}.ms-widget.sidenav-widget{padding:0}.ms-widget.ar-2-1 .widget{padding:0;position:relative}.ms-widget.ar-2-1 .widget:before{display:block;content:'';width:100%;padding-top:50%}.ms-widget.ar-2-1 .widget>.widget{position:absolute;top:8px;left:8px;right:8px;bottom:8px}.ms-widget.ar-1-1 .widget{padding:0;position:relative}.ms-widget.ar-1-1 .widget:before{display:block;content:'';width:100%;padding-top:100%}.ms-widget.ar-1-1 .widget>.widget{position:absolute;top:8px;left:8px;right:8px;bottom:8px}.ms-theme-options .ms-theme-options-button{position:absolute;top:160px;right:0;z-index:50;box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12);width:48px;height:48px;line-height:48px;text-align:center;cursor:pointer;border-radius:0;margin:0;pointer-events:auto;opacity:.75}.ms-theme-options .ms-theme-options-button:hover{opacity:1}.ms-theme-options md-sidenav{width:384px;min-width:384px;max-width:384px}.ms-theme-options md-sidenav .ms-theme-options-list{background:#fff;z-index:12;pointer-events:auto}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option{padding:16px}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.layout-options md-radio-button{width:160px;max-width:160px;margin:8px 8px 16px 8px}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.layout-options md-radio-button.md-checked ._md-label img,.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.layout-options md-radio-button:hover ._md-label img{opacity:1;box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.layout-options md-radio-button ._md-container{display:none}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.layout-options md-radio-button ._md-label{margin-left:0}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.layout-options md-radio-button ._md-label img{opacity:.8;margin-bottom:8px}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.color-palettes md-menu-item{max-width:192px}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.color-palettes .theme-button{border-bottom:16px solid;text-align:left;width:101px;height:88px;box-shadow:none;opacity:.8}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.color-palettes .theme-button.active,.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.color-palettes .theme-button:hover{opacity:1;box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option md-radio-button{margin:8px}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option .option-title{font-size:14px;font-weight:500;padding:0 8px 12px 8px}#error-404 .content{width:90%;max-width:512px;margin-top:128px}#error-404 .content .error-code{font-size:112px;text-align:center;line-height:1;margin-bottom:16px;font-weight:500}#error-404 .content .message{font-size:24px;text-align:center;color:rgba(0,0,0,.54)}#error-404 .content .search{width:100%;height:56px;line-height:56px;margin:48px auto 16px auto;padding:16px;background:#fff}#error-404 .content .search input{padding:0 0 0 16px}#error-404 .content .back-link{font-size:15px;text-align:center}#error-500 .content{width:90%;max-width:512px;margin-top:128px}#error-500 .content .error-code{font-size:112px;line-height:1;text-align:center;margin-bottom:16px;font-weight:500}#error-500 .content .message{font-size:24px;text-align:center;color:rgba(0,0,0,.54)}#error-500 .content .sub-message{font-size:17px;text-align:center;color:rgba(0,0,0,.54);margin:16px auto 48px auto}#error-500 .content .report-link{text-align:center;font-size:15px}#forgot-password{height:100%;background:url(/assets/images/backgrounds/tech.png) no-repeat;background-size:cover}#forgot-password #forgot-password-form-wrapper{flex:1 0 auto;padding:32px}#forgot-password #forgot-password-form-wrapper #forgot-password-form{width:384px;max-width:384px;padding:32px;text-align:center;background:#fff}#forgot-password #forgot-password-form-wrapper #forgot-password-form .logo{width:128px;height:128px;line-height:128px;font-size:86px;font-weight:500;margin:32px auto;color:#fff;border-radius:2px}#forgot-password #forgot-password-form-wrapper #forgot-password-form .title{font-size:17px;margin:16px 0 32px 0}#forgot-password #forgot-password-form-wrapper #forgot-password-form .logo_login{max-height:200px}#forgot-password #forgot-password-form-wrapper #forgot-password-form form{width:100%;text-align:left}#forgot-password #forgot-password-form-wrapper #forgot-password-form form .submit-button{width:220px;margin:16px auto;display:block}#forgot-password #forgot-password-form-wrapper #forgot-password-form .login{margin:32px auto 24px auto;width:250px;font-weight:500}#forgot-password #forgot-password-form-wrapper #forgot-password-form .login .text{margin-right:8px}@media screen and (max-width:600px){#forgot-password #forgot-password-form-wrapper{padding:16px}#forgot-password #forgot-password-form-wrapper #forgot-password-form{padding:24px;width:100%}#forgot-password #forgot-password-form-wrapper #forgot-password-form form .md-button{width:90%}}#login{height:100%;background:url(/assets/images/backgrounds/tech.png) no-repeat;background-size:cover}#login #login-form-wrapper{flex:1 0 auto;padding:32px}#login #login-form-wrapper #login-form{width:384px;max-width:384px;padding:32px;background:#fff;text-align:center}#login #login-form-wrapper #login-form .logo{width:128px;height:128px;line-height:128px;font-size:86px;font-weight:500;margin:32px auto;color:#fff;border-radius:2px}#login #login-form-wrapper #login-form .title{font-size:17px;margin:16px 0 32px 0}#login #login-form-wrapper #login-form .logo_login{max-height:200px}#login #login-form-wrapper #login-form form{width:100%;text-align:left}#login #login-form-wrapper #login-form form md-checkbox{margin:0}#login #login-form-wrapper #login-form form .remember-forgot-password{font-size:13px;margin-top:8px}#login #login-form-wrapper #login-form form .remember-forgot-password .remember-me{margin-bottom:16px}#login #login-form-wrapper #login-form form .remember-forgot-password .forgot-password{font-size:13px;font-weight:500;margin-bottom:16px}#login #login-form-wrapper #login-form form .submit-button{width:220px;margin:16px auto;display:block}#login #login-form-wrapper #login-form .register{margin:32px auto 24px auto;width:250px;font-weight:500}#login #login-form-wrapper #login-form .register .text{margin-right:8px}#login #login-form-wrapper #login-form .separator{font-size:15px;font-weight:600;margin:24px auto 16px auto;position:relative;overflow:hidden;width:100px;color:rgba(0,0,0,.54)}#login #login-form-wrapper #login-form .separator .text{display:inline-block;vertical-align:baseline;position:relative;padding:0 8px;z-index:9999}#login #login-form-wrapper #login-form .separator .text:after,#login #login-form-wrapper #login-form .separator .text:before{content:'';display:block;width:30px;position:absolute;top:10px;border-top:1px solid rgba(0,0,0,.12)}#login #login-form-wrapper #login-form .separator .text:before{right:100%}#login #login-form-wrapper #login-form .separator .text:after{left:100%}#login #login-form-wrapper #login-form .md-button.facebook,#login #login-form-wrapper #login-form .md-button.google{width:192px;text-transform:none;color:#fff;font-size:13px}#login #login-form-wrapper #login-form .md-button.facebook md-icon,#login #login-form-wrapper #login-form .md-button.google md-icon{color:#fff;margin:0 8px 0 0}#login #login-form-wrapper #login-form .md-button.google{background-color:#d73d32}#login #login-form-wrapper #login-form .md-button.facebook{background-color:#3f5c9a}@media screen and (max-width:600px){#login #login-form-wrapper{padding:16px}#login #login-form-wrapper #login-form{padding:24px;width:100%}#login #login-form-wrapper #login-form form .md-button{width:90%}#login #login-form-wrapper #login-form .md-button.facebook,#login #login-form-wrapper #login-form .md-button.google{width:80%}}md-dialog.extractedReport-dialog{max-width:720px;width:720px}md-dialog.extractedReport-dialog md-dialog-content{display:block;position:relative}md-dialog.extractedReport-dialog md-toolbar .title{font-size:17px}md-dialog.extractedReport-dialog md-input-container textarea{min-height:150px}md-dialog.extractedReport-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.extractedReport-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.extractedReport-dialog .date-container{padding:16px 0 24px 0}md-dialog.extractedReport-dialog .error-list{font-size:13px}md-dialog.extractedReport-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.extractedReport-dialog .error-list .error .message{font-weight:500}md-dialog.extractedReport-dialog .error-list .error .md-button{margin:0}md-dialog.extractedReport-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.extractedReport-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#extractedReports{position:relative}#extractedReports>.header{height:76px;min-height:76px;max-height:76px}#extractedReports>.header .logo .logo-icon{margin:0 16px 0 0}#extractedReports>.header .logo .logo-text{font-size:24px}#extractedReports>.header md-icon{color:#fff}#extractedReports>.header .search-input-wrapper{position:relative}#extractedReports>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#extractedReports>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#extractedReports>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#extractedReports>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#extractedReports>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#extractedReports>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#extractedReports>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#extractedReports>.header.selected-bar .close-button-wrapper{width:244px}#extractedReports>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#extractedReports>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#extractedReports>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#extractedReports #add-extractedReport-button{position:fixed;bottom:8px;right:8px;padding:0}#extractedReports #upload-extractedReport-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.metric-dialog{max-width:720px;width:720px}md-dialog.metric-dialog md-dialog-content{display:block;position:relative}md-dialog.metric-dialog md-toolbar .title{font-size:17px}md-dialog.metric-dialog md-input-container textarea{min-height:150px}md-dialog.metric-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.metric-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.metric-dialog .date-container{padding:16px 0 24px 0}md-dialog.metric-dialog .error-list{font-size:13px}md-dialog.metric-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.metric-dialog .error-list .error .message{font-weight:500}md-dialog.metric-dialog .error-list .error .md-button{margin:0}md-dialog.metric-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.metric-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#metrics{position:relative}#metrics>.header{height:76px;min-height:76px;max-height:76px}#metrics>.header .logo .logo-icon{margin:0 16px 0 0}#metrics>.header .logo .logo-text{font-size:24px}#metrics>.header md-icon{color:#fff}#metrics>.header .search-input-wrapper{position:relative}#metrics>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#metrics>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#metrics>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#metrics>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#metrics>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#metrics>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#metrics>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#metrics>.header.selected-bar .close-button-wrapper{width:244px}#metrics>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#metrics>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#metrics>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#metrics #add-metric-button{position:fixed;bottom:8px;right:8px;padding:0}#metrics #upload-metric-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.report-dialog{max-width:720px;width:720px}md-dialog.report-dialog md-dialog-content{display:block;position:relative}md-dialog.report-dialog md-toolbar .title{font-size:17px}md-dialog.report-dialog md-input-container textarea{min-height:150px}md-dialog.report-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.report-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.report-dialog .date-container{padding:16px 0 24px 0}md-dialog.report-dialog .error-list{font-size:13px}md-dialog.report-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.report-dialog .error-list .error .message{font-weight:500}md-dialog.report-dialog .error-list .error .md-button{margin:0}md-dialog.report-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.report-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.report-dialog{max-width:720px;width:720px}md-dialog.report-dialog md-dialog-content{display:block;position:relative}md-dialog.report-dialog md-toolbar .title{font-size:17px}md-dialog.report-dialog md-input-container textarea{min-height:150px}md-dialog.report-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.report-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.report-dialog .date-container{padding:16px 0 24px 0}md-dialog.report-dialog .error-list{font-size:13px}md-dialog.report-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.report-dialog .error-list .error .message{font-weight:500}md-dialog.report-dialog .error-list .error .md-button{margin:0}md-dialog.report-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.report-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.reportField-dialog{max-width:720px;width:720px}md-dialog.reportField-dialog md-dialog-content{display:block;position:relative}md-dialog.reportField-dialog md-toolbar .title{font-size:17px}md-dialog.reportField-dialog md-input-container textarea{min-height:150px}md-dialog.reportField-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.reportField-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.reportField-dialog .date-container{padding:16px 0 24px 0}md-dialog.reportField-dialog .error-list{font-size:13px}md-dialog.reportField-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.reportField-dialog .error-list .error .message{font-weight:500}md-dialog.reportField-dialog .error-list .error .md-button{margin:0}md-dialog.reportField-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.reportField-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#analytics-report .header{height:76px;min-height:76px;max-height:76px}#analytics-report .header .goto-reports-button{margin-right:16px}#analytics-report .header .report-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#analytics-report .header .report-image img{height:100%;width:auto;max-width:none}#analytics-report .header .subtitle{margin:6px 0 0 0}#analytics-report .report-detail-form-container{padding:24px;margin-bottom:24px}#analytics-report .report-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#analytics-report .report-detail-form-container .handle{cursor:move}#analytics-report .report-detail-form-container md-input-container md-switch{margin:0!important}#analytics-report .report-detail-form-container #report-image-uploader{position:relative}#analytics-report .report-detail-form-container #report-image-uploader.dropping .drop-text{display:flex}#analytics-report .report-detail-form-container #report-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#analytics-report .report-detail-form-container #report-image-uploader .upload-button{margin-bottom:16px}#analytics-report .report-detail-form-container #report-image-uploader .report-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#analytics-report .report-detail-form-container #report-image-uploader .report-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#analytics-report .report-detail-form-container #report-image-uploader .report-image .media{max-height:100%}md-dialog.report-dialog{max-width:720px;width:720px}md-dialog.report-dialog md-dialog-content{display:block;position:relative}md-dialog.report-dialog md-toolbar .title{font-size:17px}md-dialog.report-dialog md-input-container textarea{min-height:150px}md-dialog.report-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.report-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.report-dialog .date-container{padding:16px 0 24px 0}md-dialog.report-dialog .error-list{font-size:13px}md-dialog.report-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.report-dialog .error-list .error .message{font-weight:500}md-dialog.report-dialog .error-list .error .md-button{margin:0}md-dialog.report-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.report-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#reports{position:relative}#reports>.header{height:76px;min-height:76px;max-height:76px}#reports>.header .logo .logo-icon{margin:0 16px 0 0}#reports>.header .logo .logo-text{font-size:24px}#reports>.header md-icon{color:#fff}#reports>.header .search-input-wrapper{position:relative}#reports>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#reports>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#reports>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#reports>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#reports>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#reports>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#reports>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#reports>.header.selected-bar .close-button-wrapper{width:244px}#reports>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#reports>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#reports>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}md-dialog.report-dialog{max-width:720px;width:720px}md-dialog.report-dialog md-dialog-content{display:block;position:relative}md-dialog.report-dialog md-toolbar .title{font-size:17px}md-dialog.report-dialog md-input-container textarea{min-height:150px}md-dialog.report-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.report-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.report-dialog .date-container{padding:16px 0 24px 0}md-dialog.report-dialog .error-list{font-size:13px}md-dialog.report-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.report-dialog .error-list .error .message{font-weight:500}md-dialog.report-dialog .error-list .error .md-button{margin:0}md-dialog.report-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.report-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.web-dialog md-dialog-content{display:block;position:relative}md-dialog.web-dialog md-toolbar .title{font-size:17px}md-dialog.web-dialog md-input-container textarea{min-height:150px}md-dialog.web-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.web-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.web-dialog .date-container{padding:16px 0 24px 0}md-dialog.web-dialog .error-list{font-size:13px}md-dialog.web-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.web-dialog .error-list .error .message{font-weight:500}md-dialog.web-dialog .error-list .error .md-button{margin:0}md-dialog.web-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.web-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.odbc-dialog{max-width:720px;width:720px}md-dialog.odbc-dialog md-dialog-content{display:block;position:relative}md-dialog.odbc-dialog md-toolbar .title{font-size:17px}md-dialog.odbc-dialog md-input-container textarea{min-height:150px}md-dialog.odbc-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.odbc-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.odbc-dialog .date-container{padding:16px 0 24px 0}md-dialog.odbc-dialog .error-list{font-size:13px}md-dialog.odbc-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.odbc-dialog .error-list .error .message{font-weight:500}md-dialog.odbc-dialog .error-list .error .md-button{margin:0}md-dialog.odbc-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.odbc-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#odbcs{position:relative}#odbcs>.header{height:76px;min-height:76px;max-height:76px}#odbcs>.header .logo .logo-icon{margin:0 16px 0 0}#odbcs>.header .logo .logo-text{font-size:24px}#odbcs>.header md-icon{color:#fff}#odbcs>.header .search-input-wrapper{position:relative}#odbcs>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#odbcs>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#odbcs>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#odbcs>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#odbcs>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#odbcs>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#odbcs>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#odbcs>.header.selected-bar .close-button-wrapper{width:244px}#odbcs>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#odbcs>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#odbcs>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#odbcs #add-odbc-button{position:fixed;bottom:8px;right:8px;padding:0}#odbcs #upload-odbc-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.project-dialog{max-width:720px;width:720px}md-dialog.project-dialog md-dialog-content{display:block;position:relative}md-dialog.project-dialog md-toolbar .title{font-size:17px}md-dialog.project-dialog md-input-container textarea{min-height:150px}md-dialog.project-dialog .date-container{padding:16px 0 24px 0}md-dialog.project-dialog .error-list{font-size:13px}md-dialog.project-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.project-dialog .error-list .error .message{font-weight:500}md-dialog.project-dialog .error-list .error .md-button{margin:0}md-dialog.project-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.project-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}md-dialog.project-dialog .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#callysquare-project .header{height:76px;min-height:76px;max-height:76px}#callysquare-project .header .goto-projects-button{margin-right:16px}#callysquare-project .header .project-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#callysquare-project .header .project-image img{height:100%;width:auto;max-width:none}#callysquare-project .header .subtitle{margin:6px 0 0 0}#callysquare-project .project-detail-form-container{padding:24px;margin-bottom:24px}#callysquare-project .project-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#callysquare-project .project-detail-form-container #project-image-uploader{position:relative}#callysquare-project .project-detail-form-container #project-image-uploader.dropping .drop-text{display:flex}#callysquare-project .project-detail-form-container #project-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#callysquare-project .project-detail-form-container #project-image-uploader .upload-button{margin-bottom:16px}#callysquare-project .project-detail-form-container #project-image-uploader .project-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#callysquare-project .project-detail-form-container #project-image-uploader .project-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#callysquare-project .project-detail-form-container #project-image-uploader .project-image .media{max-height:100%}#callysquare-project>.callysquare-content{position:absolute;top:76px;bottom:0;left:0;right:0}#projects{position:relative}#projects>.header{height:76px;min-height:76px;max-height:76px}#projects>.header .logo .logo-icon{margin:0 16px 0 0}#projects>.header .logo .logo-text{font-size:24px}#projects>.header md-icon{color:#fff}#projects>.header .search-input-wrapper{position:relative}#projects>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#projects>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#projects>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#projects>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#projects>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#projects>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#projects>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#projects>.header.selected-bar .close-button-wrapper{width:244px}#projects>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#projects>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#projects>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#projects #add-project-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.squareRecording-dialog{max-width:720px;width:720px}md-dialog.squareRecording-dialog md-dialog-content{display:block;position:relative}md-dialog.squareRecording-dialog md-toolbar .title{font-size:17px}md-dialog.squareRecording-dialog md-input-container textarea{min-height:150px}md-dialog.squareRecording-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.squareRecording-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.squareRecording-dialog .date-container{padding:16px 0 24px 0}md-dialog.squareRecording-dialog .error-list{font-size:13px}md-dialog.squareRecording-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.squareRecording-dialog .error-list .error .message{font-weight:500}md-dialog.squareRecording-dialog .error-list .error .md-button{margin:0}md-dialog.squareRecording-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.squareRecording-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#squareRecordings{position:relative}#squareRecordings>.header{height:76px;min-height:76px;max-height:76px}#squareRecordings>.header .logo .logo-icon{margin:0 16px 0 0}#squareRecordings>.header .logo .logo-text{font-size:24px}#squareRecordings>.header md-icon{color:#fff}#squareRecordings>.header .search-input-wrapper{position:relative}#squareRecordings>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#squareRecordings>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#squareRecordings>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#squareRecordings>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#squareRecordings>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#squareRecordings>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#squareRecordings>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#squareRecordings>.header.selected-bar .close-button-wrapper{width:244px}#squareRecordings>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#squareRecordings>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#squareRecordings>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#squareRecordings #add-squareRecording-button{position:fixed;bottom:8px;right:8px;padding:0}#squareRecordings #upload-squareRecording-button{position:fixed;bottom:8px;right:8px;padding:0}#chatQueues{position:relative}#chatQueues>.header{height:76px;min-height:76px;max-height:76px}#chatQueues>.header .logo .logo-icon{margin:0 16px 0 0}#chatQueues>.header .logo .logo-text{font-size:24px}#chatQueues>.header md-icon{color:#fff}#chatQueues>.header .search-input-wrapper{position:relative}#chatQueues>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#chatQueues>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#chatQueues>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#chatQueues>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#chatQueues>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#chatQueues>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#chatQueues>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#chatQueues>.header.selected-bar .close-button-wrapper{width:244px}#chatQueues>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#chatQueues>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#chatQueues>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#chatQueues #add-chatQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#chatQueues #upload-chatQueue-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.chatQueue-dialog{max-width:720px;width:720px}md-dialog.chatQueue-dialog md-dialog-content{display:block;position:relative}md-dialog.chatQueue-dialog md-toolbar .title{font-size:17px}md-dialog.chatQueue-dialog md-input-container textarea{min-height:150px}md-dialog.chatQueue-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.chatQueue-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.chatQueue-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatQueue-dialog .error-list{font-size:13px}md-dialog.chatQueue-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatQueue-dialog .error-list .error .message{font-weight:500}md-dialog.chatQueue-dialog .error-list .error .md-button{margin:0}md-dialog.chatQueue-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatQueue-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#chat-chatQueue .header{height:76px;min-height:76px;max-height:76px}#chat-chatQueue .header .goto-chatQueues-button{margin-right:16px}#chat-chatQueue .header .chatQueue-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#chat-chatQueue .header .chatQueue-image img{height:100%;width:auto;max-width:none}#chat-chatQueue .header .subtitle{margin:6px 0 0 0}#chat-chatQueue .chatQueue-detail-form-container{padding:24px;margin-bottom:24px}#chat-chatQueue .chatQueue-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#chat-chatQueue .chatQueue-detail-form-container .handle{cursor:move}#chat-chatQueue .chatQueue-detail-form-container md-input-container md-switch{margin:0!important}#chat-chatQueue .chatQueue-detail-form-container #chatQueue-image-uploader{position:relative}#chat-chatQueue .chatQueue-detail-form-container #chatQueue-image-uploader.dropping .drop-text{display:flex}#chat-chatQueue .chatQueue-detail-form-container #chatQueue-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#chat-chatQueue .chatQueue-detail-form-container #chatQueue-image-uploader .upload-button{margin-bottom:16px}#chat-chatQueue .chatQueue-detail-form-container #chatQueue-image-uploader .chatQueue-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#chat-chatQueue .chatQueue-detail-form-container #chatQueue-image-uploader .chatQueue-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#chat-chatQueue .chatQueue-detail-form-container #chatQueue-image-uploader .chatQueue-image .media{max-height:100%}#chat-chatQueue md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#chat-chatQueue md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#chat-chatQueue md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#chat-chatQueue md-table-container.font-size-12 td.md-cell{font-size:12px!important}#chatWebsites{position:relative}#chatWebsites>.header{height:76px;min-height:76px;max-height:76px}#chatWebsites>.header .logo .logo-icon{margin:0 16px 0 0}#chatWebsites>.header .logo .logo-text{font-size:24px}#chatWebsites>.header md-icon{color:#fff}#chatWebsites>.header .search-input-wrapper{position:relative}#chatWebsites>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#chatWebsites>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#chatWebsites>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#chatWebsites>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#chatWebsites>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#chatWebsites>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#chatWebsites>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#chatWebsites>.header.selected-bar .close-button-wrapper{width:244px}#chatWebsites>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#chatWebsites>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#chatWebsites>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#chatWebsites #add-chatWebsite-button{position:fixed;bottom:8px;right:8px;padding:0}#chatWebsites #upload-chatWebsite-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.chatWebsite-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatCannedAnswer-dialog{max-width:720px;width:720px}md-dialog.chatCannedAnswer-dialog md-dialog-content{display:block;position:relative}md-dialog.chatCannedAnswer-dialog md-toolbar .title{font-size:17px}md-dialog.chatCannedAnswer-dialog md-input-container textarea{min-height:150px}md-dialog.chatCannedAnswer-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.chatCannedAnswer-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.chatCannedAnswer-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatCannedAnswer-dialog .error-list{font-size:13px}md-dialog.chatCannedAnswer-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatCannedAnswer-dialog .error-list .error .message{font-weight:500}md-dialog.chatCannedAnswer-dialog .error-list .error .md-button{margin:0}md-dialog.chatCannedAnswer-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatCannedAnswer-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.offlineMessage-dialog{max-width:720px;width:720px}md-dialog.offlineMessage-dialog md-dialog-content{display:block;position:relative}md-dialog.offlineMessage-dialog md-toolbar .title{font-size:17px}md-dialog.offlineMessage-dialog md-input-container textarea{min-height:150px}md-dialog.offlineMessage-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.offlineMessage-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.offlineMessage-dialog .date-container{padding:16px 0 24px 0}md-dialog.offlineMessage-dialog .error-list{font-size:13px}md-dialog.offlineMessage-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.offlineMessage-dialog .error-list .error .message{font-weight:500}md-dialog.offlineMessage-dialog .error-list .error .md-button{margin:0}md-dialog.offlineMessage-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.offlineMessage-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatProactiveAction-dialog{max-width:720px;width:720px}md-dialog.chatProactiveAction-dialog md-dialog-content{display:block;position:relative}md-dialog.chatProactiveAction-dialog md-toolbar .title{font-size:17px}md-dialog.chatProactiveAction-dialog md-input-container textarea{min-height:150px}md-dialog.chatProactiveAction-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.chatProactiveAction-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.chatProactiveAction-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatProactiveAction-dialog .error-list{font-size:13px}md-dialog.chatProactiveAction-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatProactiveAction-dialog .error-list .error .message{font-weight:500}md-dialog.chatProactiveAction-dialog .error-list .error .md-button{margin:0}md-dialog.chatProactiveAction-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatProactiveAction-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#chat-chatWebsite .header{height:76px;min-height:76px;max-height:76px}#chat-chatWebsite .header .goto-chatWebsites-button{margin-right:16px}#chat-chatWebsite .header .chatWebsite-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#chat-chatWebsite .header .chatWebsite-image img{height:100%;width:auto;max-width:none}#chat-chatWebsite .header .subtitle{margin:6px 0 0 0}#chat-chatWebsite .chatWebsite-detail-form-container{padding:24px;margin-bottom:24px}#chat-chatWebsite .chatWebsite-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#chat-chatWebsite .chatWebsite-detail-form-container .handle{cursor:move}#chat-chatWebsite .chatWebsite-detail-form-container md-input-container md-switch{margin:0!important}#chat-chatWebsite .chatWebsite-detail-form-container #chatWebsite-image-uploader{position:relative}#chat-chatWebsite .chatWebsite-detail-form-container #chatWebsite-image-uploader.dropping .drop-text{display:flex}#chat-chatWebsite .chatWebsite-detail-form-container #chatWebsite-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#chat-chatWebsite .chatWebsite-detail-form-container #chatWebsite-image-uploader .upload-button{margin-bottom:16px}#chat-chatWebsite .chatWebsite-detail-form-container #chatWebsite-image-uploader .chatWebsite-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#chat-chatWebsite .chatWebsite-detail-form-container #chatWebsite-image-uploader .chatWebsite-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#chat-chatWebsite .chatWebsite-detail-form-container #chatWebsite-image-uploader .chatWebsite-image .media{max-height:100%}#chat-chatWebsite md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#chat-chatWebsite md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#chat-chatWebsite md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#chat-chatWebsite md-table-container.font-size-12 td.md-cell{font-size:12px!important}#realtime>.content .blink{animation:blinker 2s linear infinite}#realtime>.content .avatar-wrapper{position:relative}#realtime>.content .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .search-input-wrapper{position:relative;margin-left:20px}#realtime>.content .search-input-wrapper label{padding:6px;cursor:pointer}#realtime>.content .search-input-wrapper md-input-container{padding-top:20px}#realtime>.content .main .labels{padding:8px 16px}#realtime>.content .main .labels .label{margin:0 0 2px 4px;padding:2px 5px;font-size:11px;white-space:nowrap;border-radius:2px}#realtime>.content .main .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .main .avatar-wrapper{position:relative}#realtime>.content .main .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .custom-column{padding:0 24px!important}@keyframes blinker{50%{opacity:0}}#companies{position:relative}#companies>.header{height:76px;min-height:76px;max-height:76px}#companies>.header .logo .logo-icon{margin:0 16px 0 0}#companies>.header .logo .logo-text{font-size:24px}#companies>.header md-icon{color:#fff}#companies>.header .search-input-wrapper{position:relative}#companies>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#companies>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#companies>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#companies>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#companies>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#companies>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#companies>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#companies>.header.selected-bar .close-button-wrapper{width:244px}#companies>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#companies>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#companies>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#companies #add-company-button{position:fixed;bottom:8px;right:8px;padding:0}#companies #upload-company-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.company-dialog{max-width:720px;width:720px}md-dialog.company-dialog md-dialog-content{display:block;position:relative}md-dialog.company-dialog md-toolbar .title{font-size:17px}md-dialog.company-dialog md-input-container textarea{min-height:150px}md-dialog.company-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.company-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.company-dialog .date-container{padding:16px 0 24px 0}md-dialog.company-dialog .error-list{font-size:13px}md-dialog.company-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.company-dialog .error-list .error .message{font-weight:500}md-dialog.company-dialog .error-list .error .md-button{margin:0}md-dialog.company-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.company-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#contactmanager-company .header{height:76px;min-height:76px;max-height:76px}#contactmanager-company .header .goto-companies-button{margin-right:16px}#contactmanager-company .header .company-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#contactmanager-company .header .company-image img{height:100%;width:auto;max-width:none}#contactmanager-company .header .subtitle{margin:6px 0 0 0}#contactmanager-company .company-detail-form-container{padding:24px;margin-bottom:24px}#contactmanager-company .company-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#contactmanager-company .company-detail-form-container .handle{cursor:move}#contactmanager-company .company-detail-form-container md-input-container md-switch{margin:0!important}#contactmanager-company .company-detail-form-container #company-image-uploader{position:relative}#contactmanager-company .company-detail-form-container #company-image-uploader.dropping .drop-text{display:flex}#contactmanager-company .company-detail-form-container #company-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#contactmanager-company .company-detail-form-container #company-image-uploader .upload-button{margin-bottom:16px}#contactmanager-company .company-detail-form-container #company-image-uploader .company-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#contactmanager-company .company-detail-form-container #company-image-uploader .company-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#contactmanager-company .company-detail-form-container #company-image-uploader .company-image .media{max-height:100%}#contactmanager-company md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#contactmanager-company md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#contactmanager-company md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#contactmanager-company md-table-container.font-size-12 td.md-cell{font-size:12px!important}#contacts{position:relative}#contacts>.header{height:76px;min-height:76px;max-height:76px}#contacts>.header .logo .logo-icon{margin:0 16px 0 0}#contacts>.header .logo .logo-text{font-size:24px}#contacts>.header md-icon{color:#fff}#contacts>.header .search-input-wrapper{position:relative}#contacts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#contacts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#contacts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#contacts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#contacts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#contacts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#contacts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#contacts>.header.selected-bar .close-button-wrapper{width:244px}#contacts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#contacts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#contacts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#contacts #add-contact-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.cm-contact-dialog{max-width:720px;width:720px}md-dialog.cm-contact-dialog md-dialog-content{display:block;position:relative}md-dialog.cm-contact-dialog md-toolbar .title{font-size:17px}md-dialog.cm-contact-dialog md-input-container textarea{min-height:150px}md-dialog.cm-contact-dialog .date-container{padding:16px 0 24px 0}md-dialog.cm-contact-dialog .error-list{font-size:13px}md-dialog.cm-contact-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.cm-contact-dialog .error-list .error .message{font-weight:500}md-dialog.cm-contact-dialog .error-list .error .md-button{margin:0}md-dialog.cm-contact-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.cm-contact-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.cm-contact-dialog{max-width:720px;width:720px}md-dialog.cm-contact-dialog md-dialog-content{display:block;position:relative}md-dialog.cm-contact-dialog md-toolbar .title{font-size:17px}md-dialog.cm-contact-dialog md-input-container textarea{min-height:150px}md-dialog.cm-contact-dialog .date-container{padding:16px 0 24px 0}md-dialog.cm-contact-dialog .error-list{font-size:13px}md-dialog.cm-contact-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.cm-contact-dialog .error-list .error .message{font-weight:500}md-dialog.cm-contact-dialog .error-list .error .md-button{margin:0}md-dialog.cm-contact-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.cm-contact-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.hopper-dialog{max-width:720px;width:720px}md-dialog.hopper-dialog md-dialog-content{display:block;position:relative}md-dialog.hopper-dialog md-toolbar .title{font-size:17px}md-dialog.hopper-dialog md-input-container textarea{min-height:150px}md-dialog.hopper-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.hopper-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.hopper-dialog .date-container{padding:16px 0 24px 0}md-dialog.hopper-dialog .error-list{font-size:13px}md-dialog.hopper-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.hopper-dialog .error-list .error .message{font-weight:500}md-dialog.hopper-dialog .error-list .error .md-button{margin:0}md-dialog.hopper-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.hopper-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#cm-contact .pointer{cursor:pointer}#cm-contact .header{height:76px;min-height:76px;max-height:76px}#cm-contact .header .goto-contacts-button{margin-right:16px}#cm-contact .header .contact-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#cm-contact .header .contact-image img{height:100%;width:auto;max-width:none}#cm-contact .header .subtitle{margin:6px 0 0 0}#cm-contact .contact-detail-form-container{padding:24px;margin-bottom:24px}#cm-contact .contact-detail-form-container md-input-container:not(.md-input-invalid)>md-icon.email{color:green}#cm-contact .contact-detail-form-container md-input-container:not(.md-input-invalid)>md-icon.firstname{color:#1e90ff}#cm-contact .contact-detail-form-container md-input-container.md-input-invalid>md-icon.email,#cm-contact .contact-detail-form-container md-input-container.md-input-invalid>md-icon.firstname{color:red}#cm-contact .contact-detail-form-container .hint{position:absolute;left:2px;right:auto;bottom:7px;font-size:10px;line-height:14px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.import-dialog{max-width:720px;width:720px}md-dialog.import-dialog md-dialog-content{display:block;position:relative}md-dialog.import-dialog md-toolbar .title{font-size:17px}md-dialog.import-dialog md-input-container textarea{min-height:150px}md-dialog.import-dialog .date-container{padding:16px 0 24px 0}md-dialog.import-dialog .error-list{font-size:13px}md-dialog.import-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.import-dialog .error-list .error .message{font-weight:500}md-dialog.import-dialog .error-list .error .md-button{margin:0}md-dialog.import-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.import-dialog .error-list .info{background-color:rgba(24,160,135,.08);border:1px solid rgba(24,160,135,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.import-dialog .error-list .info .message{font-weight:500}md-dialog.import-dialog .error-list .info .md-button{margin:0}md-dialog.import-dialog .error-list .info:last-child{margin-bottom:30px}md-dialog.import-dialog .contact-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}md-dialog.import-dialog .contact-image img{height:100%;width:auto;max-width:none}md-dialog.import-dialog .contact-image .media{max-height:100%}md-dialog.import-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.cm-contact-dialog{max-width:720px;width:720px}md-dialog.cm-contact-dialog md-dialog-content{display:block;position:relative}md-dialog.cm-contact-dialog md-toolbar .title{font-size:17px}md-dialog.cm-contact-dialog md-input-container textarea{min-height:150px}md-dialog.cm-contact-dialog .date-container{padding:16px 0 24px 0}md-dialog.cm-contact-dialog .error-list{font-size:13px}md-dialog.cm-contact-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.cm-contact-dialog .error-list .error .message{font-weight:500}md-dialog.cm-contact-dialog .error-list .error .md-button{margin:0}md-dialog.cm-contact-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.cm-contact-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.globalCustomField-dialog{max-width:720px;width:720px}md-dialog.globalCustomField-dialog md-dialog-content{display:block;position:relative}md-dialog.globalCustomField-dialog md-toolbar .title{font-size:17px}md-dialog.globalCustomField-dialog md-input-container textarea{min-height:150px}md-dialog.globalCustomField-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.globalCustomField-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.globalCustomField-dialog .date-container{padding:16px 0 24px 0}md-dialog.globalCustomField-dialog .error-list{font-size:13px}md-dialog.globalCustomField-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.globalCustomField-dialog .error-list .error .message{font-weight:500}md-dialog.globalCustomField-dialog .error-list .error .md-button{margin:0}md-dialog.globalCustomField-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.globalCustomField-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#globalCustomFields{position:relative}#globalCustomFields>.header{height:76px;min-height:76px;max-height:76px}#globalCustomFields>.header .logo .logo-icon{margin:0 16px 0 0}#globalCustomFields>.header .logo .logo-text{font-size:24px}#globalCustomFields>.header md-icon{color:#fff}#globalCustomFields>.header .search-input-wrapper{position:relative}#globalCustomFields>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#globalCustomFields>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#globalCustomFields>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#globalCustomFields>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#globalCustomFields>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#globalCustomFields>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#globalCustomFields>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#globalCustomFields>.header.selected-bar .close-button-wrapper{width:244px}#globalCustomFields>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#globalCustomFields>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#globalCustomFields>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#globalCustomFields #add-globalCustomField-button{position:fixed;bottom:8px;right:8px;padding:0}#globalCustomFields #upload-globalCustomField-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.list-dialog{max-width:720px;width:720px}md-dialog.list-dialog md-dialog-content{display:block;position:relative}md-dialog.list-dialog md-toolbar .title{font-size:17px}md-dialog.list-dialog md-input-container textarea{min-height:150px}md-dialog.list-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.list-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.list-dialog .date-container{padding:16px 0 24px 0}md-dialog.list-dialog .error-list{font-size:13px}md-dialog.list-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.list-dialog .error-list .error .message{font-weight:500}md-dialog.list-dialog .error-list .error .md-button{margin:0}md-dialog.list-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.list-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.customField-dialog{max-width:720px;width:720px}md-dialog.customField-dialog md-dialog-content{display:block;position:relative}md-dialog.customField-dialog md-toolbar .title{font-size:17px}md-dialog.customField-dialog md-input-container textarea{min-height:150px}md-dialog.customField-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.customField-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.customField-dialog .date-container{padding:16px 0 24px 0}md-dialog.customField-dialog .error-list{font-size:13px}md-dialog.customField-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.customField-dialog .error-list .error .message{font-weight:500}md-dialog.customField-dialog .error-list .error .md-button{margin:0}md-dialog.customField-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.customField-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#contactmanager-list .header{height:76px;min-height:76px;max-height:76px}#contactmanager-list .header .goto-lists-button{margin-right:16px}#contactmanager-list .header .list-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#contactmanager-list .header .list-image img{height:100%;width:auto;max-width:none}#contactmanager-list .header .subtitle{margin:6px 0 0 0}#contactmanager-list .list-detail-form-container{padding:24px;margin-bottom:24px}#contactmanager-list .list-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#contactmanager-list .list-detail-form-container .handle{cursor:move}#contactmanager-list .list-detail-form-container md-input-container md-switch{margin:0!important}#contactmanager-list .list-detail-form-container #list-image-uploader{position:relative}#contactmanager-list .list-detail-form-container #list-image-uploader.dropping .drop-text{display:flex}#contactmanager-list .list-detail-form-container #list-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#contactmanager-list .list-detail-form-container #list-image-uploader .upload-button{margin-bottom:16px}#contactmanager-list .list-detail-form-container #list-image-uploader .list-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#contactmanager-list .list-detail-form-container #list-image-uploader .list-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#contactmanager-list .list-detail-form-container #list-image-uploader .list-image .media{max-height:100%}#contactmanager-list md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#contactmanager-list md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#contactmanager-list md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#contactmanager-list md-table-container.font-size-12 td.md-cell{font-size:12px!important}#lists{position:relative}#lists>.header{height:76px;min-height:76px;max-height:76px}#lists>.header .logo .logo-icon{margin:0 16px 0 0}#lists>.header .logo .logo-text{font-size:24px}#lists>.header md-icon{color:#fff}#lists>.header .search-input-wrapper{position:relative}#lists>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#lists>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#lists>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#lists>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#lists>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#lists>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#lists>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#lists>.header.selected-bar .close-button-wrapper{width:244px}#lists>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#lists>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#lists>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#lists #add-list-button{position:fixed;bottom:8px;right:8px;padding:0}#lists #upload-list-button{position:fixed;bottom:8px;right:8px;padding:0}#dashboard-custom .filter-header{background-image:url(/assets/images/backgrounds/header-bg.png);color:#fff}#agent-general{position:fixed;width:100%;height:100%}#agent-general .agent-content{position:fixed;top:36px;bottom:0;left:0;right:0}#agent-general .badge{min-width:20px;height:20px;line-height:20px;padding:0 7px;font-size:11px;font-weight:700;border-radius:20px;transition:opacity .2s ease-in-out .1s}#agent-general .table-header{background-image:url(/assets/images/backgrounds/header-bg.png);color:#fff}#agent-general .table-header .md-toolbar-tools div md-select .md-select-value.md-select-placeholder{color:#fff}#agent-general .table-header .md-toolbar-tools div md-select[disabled] .md-select-value.md-select-placeholder{color:#fff}#agent-general .table-header .md-toolbar-tools div md-select[disabled] .md-select-value.md-select-placeholder .md-select-icon{display:none}#agent-general .table-header ms-quick-filter .quick-filter-date-clear-button{color:#fff}#agent-general .tooltip-preview{position:relative;display:inline-block;text-decoration:underline}#agent-general .tooltip-preview .tooltip-preview-text{visibility:hidden;width:500px;position:absolute;white-space:pre-line;left:100%;z-index:9999}#agent-general .tooltip-preview:hover .tooltip-preview-text{visibility:visible}#agent-general .reload-list md-icon{color:#fff}#agent-general .advanced-search md-icon{color:#fff}#agent-general .create-new md-icon{color:#fff}#agent-general div.draft-manager-bar{background-color:#f5f5f5;position:sticky;height:34px;bottom:0;border-top:1px solid #e0e0e0}#agent-general div.draft-manager-bar ms-tab-scroll{overflow:hidden}#agent-general div.draft-manager-bar ms-tab-scroll div.draft-manager-tab{height:34px;border-right:1px solid #e0e0e0}#agent-general td.width-5,#agent-general th.width-5{width:5px!important;min-width:auto!important;max-width:none!important}#agent-general td.width-10,#agent-general th.width-10{width:10px!important;min-width:auto!important;max-width:none!important}#agent-general td.width-15,#agent-general th.width-15{width:15px!important;min-width:auto!important;max-width:none!important}#agent-general td.no-padding,#agent-general th.no-padding{padding:0!important}#agent-general span.contact-text{width:100px!important}#agent-general span.subject-text{width:300px!important}#agent-general span.no-margin-bottom{margin-bottom:0!important}#agent-general span.no-margin-top{margin-top:0!important}#agent-general md-table-container.interactions-list thead tr th:not(.no-padding):not(.id-header){padding:0 20px 0 0!important}#agent-general md-table-container.interactions-list tbody tr td:not(.no-padding):not(.actions-padding):not(.id){padding:0 20px 0 0!important}#agent-general td.actions-padding{padding:0 8px 0 0!important}#agent-general md-toolbar.md-table-toolbar[disabled]{pointer-events:none}#agent-general md-toolbar.md-table-toolbar[disabled] ms-search-bar{opacity:.7}#agent-general md-toolbar.md-table-toolbar[disabled] ms-quick-filter{opacity:.7}#agent-general md-toolbar.md-table-toolbar[disabled] button.advanced-search,#agent-general md-toolbar.md-table-toolbar[disabled] button.interaction-reload{opacity:.7}#agent-general md-card.call-info-card{min-width:200px}#agent-general md-card.call-info-card div.reload-container{position:relative}#agent-general md-card.call-info-card button.reload-button{position:absolute;right:-16px}@media screen and (max-width:1280px){#agent-general span.contact-text{width:100px!important}#agent-general span.subject-text{width:350px!important}}@media screen and (max-width:1920px){#agent-general span.contact-text{width:150px!important}#agent-general span.subject-text{width:500px!important}}#agent-general-dialog{position:fixed;width:100%;height:100%}#agent-general-dialog .agent-content{position:fixed;top:0;bottom:0;left:0;right:0}body .md-select-menu-container{z-index:110}.md-toolbar-tools{font-size:12px}div.toolbar-quick-filter[disabled]{pointer-events:none;opacity:.7}md-dialog.agent-dialog{max-width:720px;width:720px}md-dialog.agent-dialog md-dialog-content{display:block;position:relative}md-dialog.agent-dialog md-toolbar .title{font-size:17px}md-dialog.agent-dialog md-input-container textarea{min-height:150px}md-dialog.agent-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.agent-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.agent-dialog .date-container{padding:16px 0 24px 0}md-dialog.agent-dialog .error-list{font-size:13px}md-dialog.agent-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.agent-dialog .error-list .error .message{font-weight:500}md-dialog.agent-dialog .error-list .error .md-button{margin:0}md-dialog.agent-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.agent-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.agent-dialog{max-width:720px;width:720px}md-dialog.agent-dialog md-dialog-content{display:block;position:relative}md-dialog.agent-dialog md-toolbar .title{font-size:17px}md-dialog.agent-dialog md-input-container textarea{min-height:150px}md-dialog.agent-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.agent-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.agent-dialog .date-container{padding:16px 0 24px 0}md-dialog.agent-dialog .error-list{font-size:13px}md-dialog.agent-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.agent-dialog .error-list .error .message{font-weight:500}md-dialog.agent-dialog .error-list .error .md-button{margin:0}md-dialog.agent-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.agent-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.contact-trigger-dialog{max-width:720px;width:720px}md-dialog.contact-trigger-dialog md-dialog-content{display:block;position:relative;max-height:400px;height:400px}md-dialog.contact-trigger-dialog md-toolbar{background-image:url(/assets/images/backgrounds/header-bg.png);background-position:top}md-dialog.contact-trigger-dialog md-toolbar .title{font-size:17px}md-dialog.contact-trigger-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}md-dialog.contact-trigger-dialog md-dialog-actions button.select-button{position:absolute;right:0;margin-right:16px}md-dialog md-grid-list.one-row-layout{height:150px;max-height:150px}md-dialog md-grid-list.two-rows-layout{height:300px;max-height:300px}md-dialog md-card.contact-info:hover{background-color:#e9eef1ad}@media screen and (max-width:1280px){md-dialog.contact-trigger-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.contact-trigger-dialog{width:90%}}md-dialog.agent-dialog{max-width:720px;width:720px}md-dialog.agent-dialog md-dialog-content{display:block;position:relative}md-dialog.agent-dialog md-toolbar .title{font-size:17px}md-dialog.agent-dialog md-input-container textarea{min-height:150px}md-dialog.agent-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.agent-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.agent-dialog .date-container{padding:16px 0 24px 0}md-dialog.agent-dialog .error-list{font-size:13px}md-dialog.agent-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.agent-dialog .error-list .error .message{font-weight:500}md-dialog.agent-dialog .error-list .error .md-button{margin:0}md-dialog.agent-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.agent-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.details-dialog{max-width:500px;width:500px}md-dialog.details-dialog md-dialog-content{display:block;position:relative}md-dialog.details-dialog md-toolbar .title{font-size:17px}md-dialog.details-dialog md-input-container textarea{min-height:150px}md-dialog.details-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.details-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.details-dialog .date-container{padding:16px 0 24px 0}md-dialog.details-dialog .error-list{font-size:13px}md-dialog.details-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.details-dialog .error-list .error .message{font-weight:500}md-dialog.details-dialog .error-list .error .md-button{margin:0}md-dialog.details-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.details-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#interaction-app .tags{font-size:12px}#interaction-app .tags .tag{border-radius:2px;padding:3px 8px;background-color:rgba(0,0,0,.08)}#interaction-app .tags .tag .tag-color{width:8px;height:8px;margin-right:8px;border-radius:50%}#interaction-app .content-card{position:relative;height:100%}#interaction-app .content-card .interaction{background:linear-gradient(to bottom,rgba(255,255,255,.8) 0,rgba(255,255,255,.6) 20%,rgba(255,255,255,.8))}#interaction-app .content-card .interaction .avatar-small{width:30px;min-width:30px;height:30px;line-height:30px;margin:0 8px 0 0;border-radius:50%;font-size:17px;font-weight:500;text-align:center;color:#fff}#interaction-app .content-card .interaction .interaction-agents{min-height:40px;background-color:#f3f4f5;color:rgba(0,0,0,.87);border-bottom:1px solid rgba(0,0,0,.08)}#interaction-app .content-card .interaction .interaction-agents .responsive-interactions-button{padding:0}#interaction-app .content-card .interaction .interaction-agents .interaction-contact{cursor:pointer}#interaction-app .content-card .interaction .interaction-agents .interaction-contact .avatar{margin-right:16px}#interaction-app .content-card .interaction .interaction-toolbar{min-height:64px;background-color:#f3f4f5;color:rgba(0,0,0,.87);border-bottom:1px solid rgba(0,0,0,.08)}#interaction-app .content-card .interaction .interaction-toolbar md-icon{color:rgba(0,0,0,.87)}#interaction-app .content-card .interaction .interaction-toolbar .responsive-interactions-button{padding:0}#interaction-app .content-card .interaction .interaction-toolbar .interaction-contact{cursor:pointer}#interaction-app .content-card .interaction .interaction-toolbar .interaction-contact .avatar{margin-right:16px}#interaction-app .content-card .interaction .cannedarea{margin-right:7px;font-size:14px;border:1px solid #ccc;border-radius:3px;align-self:stretch}#interaction-app .content-card .interaction .cannedarea md-autocomplete-wrap{padding:0 1em}#interaction-app .content-card .interaction .emojionearea{margin-right:7px}#interaction-app .content-card .interaction #interaction-content{background:url(/assets/images/patterns/circles-light.png) repeat}#interaction-app .content-card .interaction #interaction-content .message-row .mail-content{padding:24px 0}#interaction-app .content-card .interaction #interaction-content .message-row .mail-content .subject{color:rgba(0,0,0,.54)}#interaction-app .content-card .interaction #interaction-content .message-row .mail-content .subject .subject-text{margin-right:4px;text-transform:lowercase}#interaction-app .content-card .interaction #interaction-content .message-row .mail-content .info{padding-bottom:16px}#interaction-app .content-card .interaction #interaction-content .message-row .mail-content .info .avatar{margin-right:16px}#interaction-app .content-card .interaction #interaction-content .message-row .mail-content .info .name{margin-right:8px;font-weight:500}#interaction-app .content-card .interaction #interaction-content .message-row .mail-content .info .toggle-details{padding-top:16px;cursor:pointer;font-weight:500}#interaction-app .content-card .interaction #interaction-content .message-row .mail-content .info .details{padding-top:8px}#interaction-app .content-card .interaction #interaction-content .message-row .mail-content .info .details .title{font-weight:500;margin-right:6px}#interaction-app .content-card .interaction #interaction-content .message-row .mail-content .info .details .detail{color:rgba(0,0,0,.54)}#interaction-app .content-card .interaction #interaction-content .message-row .bubble{position:relative;padding:6px 7px 8px 9px;background-color:#fff;border:1px solid #dcdfe1;border-radius:6px;word-break:break-word}#interaction-app .content-card .interaction #interaction-content .message-row .bubble:after,#interaction-app .content-card .interaction #interaction-content .message-row .bubble:before{content:' ';position:absolute;width:0;height:0}#interaction-app .content-card .interaction #interaction-content .message-row .bubble:after{left:-7px;right:auto;top:0;bottom:auto;border:11px solid;border-color:#fff transparent transparent transparent}#interaction-app .content-card .interaction #interaction-content .message-row .bubble:before{left:-9px;right:auto;top:-1px;bottom:auto;border:8px solid;border-color:#dcdfe1 transparent transparent transparent}#interaction-app .content-card .interaction #interaction-content .message-row .bubble .time{font-size:11px;margin-top:0;text-align:right}#interaction-app .content-card .interaction #interaction-content .message-row .bubble .message{white-space:pre-wrap}#interaction-app .content-card .interaction #interaction-content .message-row .bubble .message span{word-break:break-all}#interaction-app .content-card .interaction #interaction-content .message-row.in{padding:5px}#interaction-app .content-card .interaction #interaction-content .message-row.in .avatar{margin:0 16px 0 0}#interaction-app .content-card .interaction #interaction-content .message-row.in-right-aligned{padding:5px;align-items:flex-end}#interaction-app .content-card .interaction #interaction-content .message-row.in-right-aligned .avatar{order:2;margin:0 0 0 16px}#interaction-app .content-card .interaction #interaction-content .message-row.in-right-aligned .bubble{margin-left:auto;order:1}#interaction-app .content-card .interaction #interaction-content .message-row.in-right-aligned .bubble:after{right:-9px;left:auto;top:auto;bottom:0;border-color:transparent transparent #e8f5e9 transparent}#interaction-app .content-card .interaction #interaction-content .message-row.in-right-aligned .bubble:before{right:-11px;left:auto;-moz-transform:scaleX(-1);-o-transform:scaleX(-1);-webkit-transform:scaleX(-1);transform:scaleX(-1)}#interaction-app .content-card .interaction #interaction-content .message-row.out{padding:5px;align-items:flex-end}#interaction-app .content-card .interaction #interaction-content .message-row.out .avatar{order:2;margin:0 0 0 16px}#interaction-app .content-card .interaction #interaction-content .message-row.out .bubble{margin-left:auto;background-color:#e8f5e9;border:1px solid #dfebe0;order:1}#interaction-app .content-card .interaction #interaction-content .message-row.out .bubble:after{right:-7px;left:auto;top:auto;bottom:0;border-color:transparent transparent #e8f5e9 transparent}#interaction-app .content-card .interaction #interaction-content .message-row.out .bubble:before{right:-9px;left:auto;top:auto;bottom:-1px;border-color:transparent transparent #dfebe0 transparent}#interaction-app .content-card .interaction #interaction-content .message-row.out-left-aligned{padding:5px}#interaction-app .content-card .interaction #interaction-content .message-row.out-left-aligned .avatar{order:1;margin:0 16px 0 0}#interaction-app .content-card .interaction #interaction-content .message-row.out-left-aligned .bubble{background-color:#e8f5e9;border:1px solid #dfebe0;order:2}#interaction-app .content-card .interaction #interaction-content .message-row.out-left-aligned .bubble:after{right:-7px;left:auto;top:auto;bottom:0;border-color:transparent transparent #e8f5e9 transparent}#interaction-app .content-card .interaction #interaction-content .message-row.out-left-aligned .bubble:before{right:-9px;left:auto;top:auto;bottom:-1px;border-color:transparent transparent #dfebe0 transparent}#interaction-app .content-card .interaction .interaction-footer{min-height:64px;max-height:180px;background-color:#f3f4f5;color:rgba(0,0,0,.87);border-top:1px solid rgba(0,0,0,.08);padding:8px 8px 8px 16px}#interaction-app .content-card .interaction .interaction-footer .reply-form md-input-container{margin:0;padding-right:16px}#interaction-app .content-card .interaction .interaction-footer .reply-form md-input-container textarea{overflow:auto;max-height:80px;transition:height .2s ease}#interaction-app .content-card .interaction .interaction-footer .reply-form md-input-container textarea.grow{height:80px}#interaction-app .content-card .interaction .interaction-footer .reply-form md-input-container .md-errors-spacer{display:none}#interaction-app .content-card .interaction .interaction-footer .reply-form .md-button{margin:0}#interaction-app .content-card .info md-list-item{min-height:40px;height:52px}#interaction-app .content-card .start-point{background:linear-gradient(to bottom,rgba(255,255,255,.8) 0,rgba(255,255,255,.6) 20%,rgba(255,255,255,.8))}#interaction-app .content-card .start-point .big-circle{background:linear-gradient(to bottom,rgba(255,255,255,.8) 0,rgba(255,255,255,.6) 20%,rgba(255,255,255,.8));border-radius:50%;width:300px;height:300px;line-height:300px;text-align:center}#interaction-app .content-card .start-point .app-title{font-weight:500;font-size:32px;margin:12px 0}#interaction-app .content-card .start-point .secondary-text{font-size:16px}#interaction-app .content-card .sidenav md-toolbar{border-bottom:1px solid rgba(0,0,0,.08)}#interaction-app .content-card .sidenav md-toolbar .md-toolbar-tools-bottom .search{height:36px;line-height:36px;padding:8px;background:#fff;font-size:13px}#interaction-app .content-card .sidenav md-toolbar .md-toolbar-tools-bottom .search .icon{margin:0;color:rgba(0,0,0,.54)}#interaction-app .content-card .sidenav md-toolbar .md-toolbar-tools-bottom .search input{padding-left:12px;height:36px;color:rgba(0,0,0,.54)}#interaction-app .content-card .sidenav md-list.contact-list,#interaction-app .content-card .sidenav md-list.interaction-list{position:relative;transition:all .2s ease-out}#interaction-app .content-card .sidenav md-list.contact-list .subheader,#interaction-app .content-card .sidenav md-list.contact-list md-list-item,#interaction-app .content-card .sidenav md-list.interaction-list .subheader,#interaction-app .content-card .sidenav md-list.interaction-list md-list-item{position:absolute;right:0;left:0;width:100%;transition:transform .2s ease-out;background:#fff;will-change:transform}#interaction-app .content-card .sidenav md-list.contact-list .subheader.ng-leave,#interaction-app .content-card .sidenav md-list.contact-list md-list-item.ng-leave,#interaction-app .content-card .sidenav md-list.interaction-list .subheader.ng-leave,#interaction-app .content-card .sidenav md-list.interaction-list md-list-item.ng-leave{transform:translateY(0);display:none}#interaction-app .content-card .sidenav md-list.contact-list .subheader.ng-leave.ng-leave-active,#interaction-app .content-card .sidenav md-list.contact-list md-list-item.ng-leave.ng-leave-active,#interaction-app .content-card .sidenav md-list.interaction-list .subheader.ng-leave.ng-leave-active,#interaction-app .content-card .sidenav md-list.interaction-list md-list-item.ng-leave.ng-leave-active{transform:translateY(-100%)}#interaction-app .content-card .sidenav md-list.contact-list .subheader.ng-hide,#interaction-app .content-card .sidenav md-list.contact-list md-list-item.ng-hide,#interaction-app .content-card .sidenav md-list.interaction-list .subheader.ng-hide,#interaction-app .content-card .sidenav md-list.interaction-list md-list-item.ng-hide{display:none}#interaction-app .content-card .sidenav md-list.contact-list .subheader.ng-hide-add-active,#interaction-app .content-card .sidenav md-list.contact-list .subheader.ng-hide-remove-active,#interaction-app .content-card .sidenav md-list.contact-list md-list-item.ng-hide-add-active,#interaction-app .content-card .sidenav md-list.contact-list md-list-item.ng-hide-remove-active,#interaction-app .content-card .sidenav md-list.interaction-list .subheader.ng-hide-add-active,#interaction-app .content-card .sidenav md-list.interaction-list .subheader.ng-hide-remove-active,#interaction-app .content-card .sidenav md-list.interaction-list md-list-item.ng-hide-add-active,#interaction-app .content-card .sidenav md-list.interaction-list md-list-item.ng-hide-remove-active{display:block;transition-property:all}#interaction-app .content-card .sidenav md-list.contact-list .subheader,#interaction-app .content-card .sidenav md-list.interaction-list .subheader{padding-left:16px;font-size:20px;font-weight:300;height:88px;line-height:88px}#interaction-app .content-card .sidenav .no-results-message{position:absolute;width:100%;height:88px;padding:16px;background:#fff;font-size:15px;font-weight:400}#interaction-app .avatar-wrapper{position:relative}#interaction-app .avatar-wrapper .avatar{margin-top:0;margin-bottom:0}#interaction-app .status{position:absolute;top:28px;left:28px;border-radius:50%}#interaction-app .status.online{color:#4caf50}#interaction-app .status.online:before{content:'\e709'}#interaction-app .status.do-not-disturb{color:#f44336}#interaction-app .status.do-not-disturb:before{content:'\e912'}#interaction-app .status.away{background-color:#ffc107;color:#fff}#interaction-app .status.away:before{content:'\e727'}#interaction-app .status.offline{color:#4caf50;background-color:#fff}#interaction-app .status.offline:before{content:'\e704'}#interaction-app .editable-wrap{position:relative}#interaction-app .editable-wrap .editable-controls{display:flex;flex-direction:row;align-items:center;width:100%}#interaction-app .editable-wrap .editable-controls .editable-input{width:inherit;background-color:#fff;padding:8px;border:1px solid rgba(0,0,0,.12)}#interaction-app .editable-wrap .editable-controls .editable-buttons{display:inherit}#interaction-app .editable-wrap .editable-controls .editable-buttons .md-button{margin:0}#interaction-app .editable-wrap .editable-controls .editable-buttons .md-button:first-of-type{padding-right:0}#interaction-app .editable-wrap .editable-controls .editable-buttons .md-button .icon-cancel{color:rgba(0,0,0,.32)}#interaction-app .editable-click{cursor:pointer;text-decoration:none;color:inherit;border-bottom:none}#interaction-app .emoji-picker-icon{right:5px;cursor:pointer}#interaction-app .input-show-hide{transition:all linear .5s}#interaction-app .input-show-hide.ng-hide{opacity:0}#interaction-app div.interaction-reply-button-container{display:inline;padding-bottom:14px}#timeline{position:relative;height:auto;padding-bottom:30px}#timeline:before{display:block;position:absolute;z-index:10;content:'';width:2px;background:rgba(0,0,0,.08);top:0;left:50%;bottom:0;margin-left:-1px}#timeline .ms-timeline-item{overflow:hidden;position:relative;z-index:20;width:100%;margin:0 auto;max-width:1200px}#timeline .ms-timeline-item .timeline-card{order:1}#timeline .ms-timeline-item .timeline-card .interaction .header .avatar .image{display:block;width:40px;height:40px;border-radius:20px}#timeline .ms-timeline-item .timeline-card .interaction .media .image{width:100%}#timeline .ms-timeline-item .timeline-point{position:absolute;width:40px;height:40px;line-height:40px;text-align:center;border-radius:50%;left:50%;margin:16px 0 0 -28px;order:2}#timeline .ms-timeline-item .timeline-point md-icon{color:#fff}#timeline .ms-timeline-item .timeline-detail{flex:50% 0 0;padding-top:28px;order:3}#timeline .ms-timeline-item .timeline-detail .time{font-size:15px;padding-left:68px}#timeline .ms-timeline-item .timeline-detail .event{color:rgba(0,0,0,.54);padding-left:68px}#timeline .ms-timeline-item:nth-child(odd) .timeline-card{flex-direction:row-reverse}#timeline .ms-timeline-item:nth-child(even) .timeline-card{order:3;padding-right:0}#timeline .ms-timeline-item:nth-child(even) .timeline-card ms-card{padding-left:84px}#timeline .ms-timeline-item:nth-child(even) .timeline-detail{order:1;padding-left:0;text-align:right}#timeline .ms-timeline-item:nth-child(even) .timeline-detail .event,#timeline .ms-timeline-item:nth-child(even) .timeline-detail .time{padding-right:68px}#timeline .ms-timeline-item:first-child{padding-top:15px}#timeline .ms-timeline-item.animate .timeline-card{animation:slide-in-left .4s}#timeline .ms-timeline-item.animate .timeline-point{animation:slide-in-bottom .4s}#timeline .ms-timeline-item.animate .timeline-detail{animation:slide-in-right .4s}#timeline .ms-timeline-item:nth-child(even).animate .timeline-card{animation:slide-in-right .4s}#timeline .ms-timeline-item:nth-child(even).animate .timeline-detail{animation:slide-in-left .4s}#timeline.timeline-left .ms-timeline-item .timeline-card{order:1}#timeline.timeline-left .ms-timeline-item .timeline-card ms-card{padding-right:68px;padding-left:0;margin-left:auto}#timeline.timeline-left .ms-timeline-item .timeline-detail{order:3;text-align:left}#timeline.timeline-left .ms-timeline-item.animate .timeline-card{animation:slide-in-left .4s}#timeline.timeline-left .ms-timeline-item.animate .timeline-detail{animation:slide-in-right .4s}#timeline.timeline-right .ms-timeline-item .timeline-card{order:3}#timeline.timeline-right .ms-timeline-item .timeline-card ms-card{padding-left:68px;padding-right:0;margin-right:auto}#timeline.timeline-right .ms-timeline-item .timeline-detail{order:1;text-align:right}#timeline.timeline-right .ms-timeline-item .timeline-detail .event,#timeline.timeline-right .ms-timeline-item .timeline-detail .time{padding-right:68px;padding-left:0}#timeline.timeline-right .ms-timeline-item.animate .timeline-card{animation:slide-in-right .4s}#timeline.timeline-right .ms-timeline-item.animate .timeline-detail{animation:slide-in-left .4s}@media screen and (max-width:1280px){#timeline .ms-timeline-item,#timeline.timeline-left .ms-timeline-item,#timeline.timeline-right .ms-timeline-item{display:block}#timeline .ms-timeline-item .timeline-point,#timeline.timeline-left .ms-timeline-item .timeline-point,#timeline.timeline-right .ms-timeline-item .timeline-point{position:relative;left:auto;margin:0 auto 16px auto;padding:0}#timeline .ms-timeline-item .timeline-detail,#timeline.timeline-left .ms-timeline-item .timeline-detail,#timeline.timeline-right .ms-timeline-item .timeline-detail{padding:2px;margin-bottom:16px}#timeline .ms-timeline-item .timeline-detail .event,#timeline .ms-timeline-item .timeline-detail .time,#timeline.timeline-left .ms-timeline-item .timeline-detail .event,#timeline.timeline-left .ms-timeline-item .timeline-detail .time,#timeline.timeline-right .ms-timeline-item .timeline-detail .event,#timeline.timeline-right .ms-timeline-item .timeline-detail .time{padding-right:0;padding-left:0;text-align:center}#timeline .ms-timeline-item .timeline-card ms-card,#timeline.timeline-left .ms-timeline-item .timeline-card ms-card,#timeline.timeline-right .ms-timeline-item .timeline-card ms-card{margin:0 auto;padding:0}#timeline .ms-timeline-item:nth-child(even) .timeline-point,#timeline.timeline-left .ms-timeline-item:nth-child(even) .timeline-point,#timeline.timeline-right .ms-timeline-item:nth-child(even) .timeline-point{position:relative;left:auto;margin:0 auto 16px auto;padding:0}#timeline .ms-timeline-item:nth-child(even) .timeline-detail,#timeline.timeline-left .ms-timeline-item:nth-child(even) .timeline-detail,#timeline.timeline-right .ms-timeline-item:nth-child(even) .timeline-detail{padding:2px;margin-bottom:16px}#timeline .ms-timeline-item:nth-child(even) .timeline-detail .event,#timeline .ms-timeline-item:nth-child(even) .timeline-detail .time,#timeline.timeline-left .ms-timeline-item:nth-child(even) .timeline-detail .event,#timeline.timeline-left .ms-timeline-item:nth-child(even) .timeline-detail .time,#timeline.timeline-right .ms-timeline-item:nth-child(even) .timeline-detail .event,#timeline.timeline-right .ms-timeline-item:nth-child(even) .timeline-detail .time{padding-right:0;padding-left:0;text-align:center}#timeline .ms-timeline-item:nth-child(even) .timeline-card ms-card,#timeline.timeline-left .ms-timeline-item:nth-child(even) .timeline-card ms-card,#timeline.timeline-right .ms-timeline-item:nth-child(even) .timeline-card ms-card{margin:0 auto;padding:0}}md-dialog.compose-dialog{max-width:720px;width:720px}md-dialog.compose-dialog.mail-no-secret{max-height:97%;max-width:90%!important;width:100%!important}md-dialog.compose-dialog md-dialog-content{display:block;position:relative}md-dialog.compose-dialog md-toolbar .title{font-size:17px}md-dialog.compose-dialog md-toolbar .vertical-divider{position:absolute;border-right-width:.5px;border-right-style:solid;height:100%}md-dialog.compose-dialog md-chips md-chip{font-size:12px}md-dialog.compose-dialog md-chips .md-chip-input-container{width:100%}md-dialog.compose-dialog .to{position:relative}md-dialog.compose-dialog .to.hidden-cc input{padding-right:32px}md-dialog.compose-dialog .to.hidden-cc.hidden-bcc input{padding-right:56px}md-dialog.compose-dialog .to.hidden-bcc input{padding-right:32px}md-dialog.compose-dialog .to .cc-bcc{position:absolute;bottom:8px;right:0}md-dialog.compose-dialog .to .cc-bcc .show-bcc,md-dialog.compose-dialog .to .cc-bcc .show-cc{cursor:pointer;font-size:12px}md-dialog.compose-dialog .to .cc-bcc .show-bcc{margin-left:8px}md-dialog.compose-dialog .attachment-list{font-size:13px}md-dialog.compose-dialog .attachment-list .attachment{background-color:rgba(0,0,0,.08);border:1px solid rgba(0,0,0,.16);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.compose-dialog .attachment-list .attachment .filename{font-weight:500}md-dialog.compose-dialog .attachment-list .attachment .md-button{margin:0}md-dialog.compose-dialog .attachment-list .attachment:last-child{margin-bottom:0}md-dialog.compose-dialog .error-list{font-size:13px}md-dialog.compose-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.compose-dialog .error-list .error .message{font-weight:500}md-dialog.compose-dialog .error-list .error .md-button{margin:0}md-dialog.compose-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.compose-dialog .emojionearea{max-width:700px;min-height:300px}md-dialog.compose-dialog md-dialog-actions{position:relative;justify-content:space-between;border-top:1px solid rgba(0,0,0,.12);background-color:rgba(0,0,0,.03)}@media screen and (max-width:960px){md-dialog.compose-dialog{width:80%}}@media screen and (max-width:600px){md-dialog.compose-dialog{width:90%}}md-dialog.disposition-dialog{max-width:720px;width:720px}md-dialog.disposition-dialog md-dialog-content{display:block;position:relative}md-dialog.disposition-dialog md-toolbar .title{font-size:17px}md-dialog.disposition-dialog md-input-container textarea{min-height:150px}md-dialog.disposition-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.disposition-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.disposition-dialog .date-container{padding:16px 0 24px 0}md-dialog.disposition-dialog .error-list{font-size:13px}md-dialog.disposition-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.disposition-dialog .error-list .error .message{font-weight:500}md-dialog.disposition-dialog .error-list .error .md-button{margin:0}md-dialog.disposition-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.disposition-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.disposition-dialog{max-width:720px;width:720px}md-dialog.disposition-dialog md-dialog-content{display:block;position:relative}md-dialog.disposition-dialog md-toolbar .title{font-size:17px}md-dialog.disposition-dialog md-input-container textarea{min-height:150px}md-dialog.disposition-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.disposition-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.disposition-dialog .date-container{padding:16px 0 24px 0}md-dialog.disposition-dialog .error-list{font-size:13px}md-dialog.disposition-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.disposition-dialog .error-list .error .message{font-weight:500}md-dialog.disposition-dialog .error-list .error .md-button{margin:0}md-dialog.disposition-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.disposition-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.disposition-dialog{max-width:720px;width:720px}md-dialog.disposition-dialog md-dialog-content{display:block;position:relative}md-dialog.disposition-dialog md-toolbar .title{font-size:17px}md-dialog.disposition-dialog md-input-container textarea{min-height:150px}md-dialog.disposition-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.disposition-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.disposition-dialog .date-container{padding:16px 0 24px 0}md-dialog.disposition-dialog .error-list{font-size:13px}md-dialog.disposition-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.disposition-dialog .error-list .error .message{font-weight:500}md-dialog.disposition-dialog .error-list .error .md-button{margin:0}md-dialog.disposition-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.disposition-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#dashboard-general>.center>.header{height:160px;min-height:160px;max-height:160px;padding-bottom:0}#dashboard-general>.center>.header .selected-general{background:rgba(0,0,0,.12);color:#fff;padding:8px 16px;height:40px;line-height:24px;font-size:16px}#dashboard-general>.center>.header .general-selector{margin-left:1px;border-radius:0;background:rgba(0,0,0,.12)}#dashboard-general>.center>.header .general-selector md-icon{color:#fff}#dashboard-general>.center>.content{background:0 0;padding:0}#dashboard-general>.center>.content>md-tabs>md-tabs-wrapper{background:#fff;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12);padding:0 24px}#dashboard-general>.center>.content>md-tabs>md-tabs-wrapper md-tabs-canvas{height:56px}#dashboard-general>.center>.content>md-tabs>md-tabs-wrapper md-tabs-canvas md-pagination-wrapper{height:56px}#dashboard-general>.center>.content>md-tabs>md-tabs-wrapper md-tabs-canvas .md-tab{padding:16px 24px;text-transform:none}#dashboard-general>.center>.content>md-tabs:not(.md-dynamic-height) md-tabs-content-wrapper{top:56px}#dashboard-general>.center>.content>md-tabs>md-tabs-content-wrapper md-tab-content{padding:12px}#dashboard-general>.sidenav{width:330px;min-width:330px;max-width:330px;padding:0;z-index:51;box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}#dashboard-general>.sidenav.md-locked-open{width:250px;min-width:250px;max-width:250px;z-index:2;box-shadow:none;background:#eee}#dashboard-general .dashboard-container{padding:24px;margin-bottom:24px}#dashboard-general .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.faxAccount-dialog{max-width:720px;width:720px}md-dialog.faxAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.faxAccount-dialog md-toolbar .title{font-size:17px}md-dialog.faxAccount-dialog md-input-container textarea{min-height:150px}md-dialog.faxAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.faxAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.faxAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxAccount-dialog .error-list{font-size:13px}md-dialog.faxAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxAccount-dialog .error-list .error .message{font-weight:500}md-dialog.faxAccount-dialog .error-list .error .md-button{margin:0}md-dialog.faxAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.faxAccount-dialog{max-width:720px;width:720px}md-dialog.faxAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.faxAccount-dialog md-toolbar .title{font-size:17px}md-dialog.faxAccount-dialog md-input-container textarea{min-height:150px}md-dialog.faxAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxAccount-dialog .error-list{font-size:13px}md-dialog.faxAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxAccount-dialog .error-list .error .message{font-weight:500}md-dialog.faxAccount-dialog .error-list .error .md-button{margin:0}md-dialog.faxAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.faxAccount-dialog{max-width:720px;width:720px}md-dialog.faxAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.faxAccount-dialog md-toolbar .title{font-size:17px}md-dialog.faxAccount-dialog md-input-container textarea{min-height:150px}md-dialog.faxAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxAccount-dialog .error-list{font-size:13px}md-dialog.faxAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxAccount-dialog .error-list .error .message{font-weight:500}md-dialog.faxAccount-dialog .error-list .error .md-button{margin:0}md-dialog.faxAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.faxAccount-dialog{max-width:720px;width:720px}md-dialog.faxAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.faxAccount-dialog md-toolbar .title{font-size:17px}md-dialog.faxAccount-dialog md-input-container textarea{min-height:150px}md-dialog.faxAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxAccount-dialog .error-list{font-size:13px}md-dialog.faxAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxAccount-dialog .error-list .error .message{font-weight:500}md-dialog.faxAccount-dialog .error-list .error .md-button{margin:0}md-dialog.faxAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.faxAccount-dialog{max-width:720px;width:720px}md-dialog.faxAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.faxAccount-dialog md-toolbar .title{font-size:17px}md-dialog.faxAccount-dialog md-input-container textarea{min-height:150px}md-dialog.faxAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxAccount-dialog .error-list{font-size:13px}md-dialog.faxAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxAccount-dialog .error-list .error .message{font-weight:500}md-dialog.faxAccount-dialog .error-list .error .md-button{margin:0}md-dialog.faxAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.faxAccount-dialog{max-width:720px;width:720px}md-dialog.faxAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.faxAccount-dialog md-toolbar .title{font-size:17px}md-dialog.faxAccount-dialog md-input-container textarea{min-height:150px}md-dialog.faxAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxAccount-dialog .error-list{font-size:13px}md-dialog.faxAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxAccount-dialog .error-list .error .message{font-weight:500}md-dialog.faxAccount-dialog .error-list .error .md-button{margin:0}md-dialog.faxAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.faxAccount-dialog{max-width:720px;width:720px}md-dialog.faxAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.faxAccount-dialog md-toolbar .title{font-size:17px}md-dialog.faxAccount-dialog md-input-container textarea{min-height:150px}md-dialog.faxAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxAccount-dialog .error-list{font-size:13px}md-dialog.faxAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxAccount-dialog .error-list .error .message{font-weight:500}md-dialog.faxAccount-dialog .error-list .error .md-button{margin:0}md-dialog.faxAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.faxAccount-dialog{max-width:720px;width:720px}md-dialog.faxAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.faxAccount-dialog md-toolbar .title{font-size:17px}md-dialog.faxAccount-dialog md-input-container textarea{min-height:150px}md-dialog.faxAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxAccount-dialog .error-list{font-size:13px}md-dialog.faxAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxAccount-dialog .error-list .error .message{font-weight:500}md-dialog.faxAccount-dialog .error-list .error .md-button{margin:0}md-dialog.faxAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.faxAccount-dialog{max-width:720px;width:720px}md-dialog.faxAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.faxAccount-dialog md-toolbar .title{font-size:17px}md-dialog.faxAccount-dialog md-input-container textarea{min-height:150px}md-dialog.faxAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxAccount-dialog .error-list{font-size:13px}md-dialog.faxAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxAccount-dialog .error-list .error .message{font-weight:500}md-dialog.faxAccount-dialog .error-list .error .md-button{margin:0}md-dialog.faxAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.faxAccount-dialog{max-width:720px;width:720px}md-dialog.faxAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.faxAccount-dialog md-toolbar .title{font-size:17px}md-dialog.faxAccount-dialog md-input-container textarea{min-height:150px}md-dialog.faxAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxAccount-dialog .error-list{font-size:13px}md-dialog.faxAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxAccount-dialog .error-list .error .message{font-weight:500}md-dialog.faxAccount-dialog .error-list .error .md-button{margin:0}md-dialog.faxAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#fax-faxAccount .header{height:76px;min-height:76px;max-height:76px}#fax-faxAccount .header .goto-faxAccounts-button{margin-right:16px}#fax-faxAccount .header .faxAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#fax-faxAccount .header .faxAccount-image img{height:100%;width:auto;max-width:none}#fax-faxAccount .header .subtitle{margin:6px 0 0 0}#fax-faxAccount .faxAccount-detail-form-container{padding:24px;margin-bottom:24px}#fax-faxAccount .faxAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#fax-faxAccount .faxAccount-detail-form-container .handle{cursor:move}#fax-faxAccount .faxAccount-detail-form-container md-input-container md-switch{margin:0!important}#fax-faxAccount .faxAccount-detail-form-container #faxAccount-image-uploader{position:relative}#fax-faxAccount .faxAccount-detail-form-container #faxAccount-image-uploader.dropping .drop-text{display:flex}#fax-faxAccount .faxAccount-detail-form-container #faxAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#fax-faxAccount .faxAccount-detail-form-container #faxAccount-image-uploader .upload-button{margin-bottom:16px}#fax-faxAccount .faxAccount-detail-form-container #faxAccount-image-uploader .faxAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#fax-faxAccount .faxAccount-detail-form-container #faxAccount-image-uploader .faxAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#fax-faxAccount .faxAccount-detail-form-container #faxAccount-image-uploader .faxAccount-image .media{max-height:100%}#fax-faxAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#fax-faxAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#fax-faxAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#fax-faxAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}#faxAccounts{position:relative}#faxAccounts>.header{height:76px;min-height:76px;max-height:76px}#faxAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#faxAccounts>.header .logo .logo-text{font-size:24px}#faxAccounts>.header md-icon{color:#fff}#faxAccounts>.header .search-input-wrapper{position:relative}#faxAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#faxAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#faxAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#faxAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#faxAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#faxAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#faxAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#faxAccounts>.header.selected-bar .close-button-wrapper{width:244px}#faxAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#faxAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#faxAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#faxAccounts #add-faxAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#faxAccounts #upload-faxAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.faxQueue-dialog{max-width:720px;width:720px}md-dialog.faxQueue-dialog md-dialog-content{display:block;position:relative}md-dialog.faxQueue-dialog md-toolbar .title{font-size:17px}md-dialog.faxQueue-dialog md-input-container textarea{min-height:150px}md-dialog.faxQueue-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.faxQueue-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.faxQueue-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxQueue-dialog .error-list{font-size:13px}md-dialog.faxQueue-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxQueue-dialog .error-list .error .message{font-weight:500}md-dialog.faxQueue-dialog .error-list .error .md-button{margin:0}md-dialog.faxQueue-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxQueue-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#fax-faxQueue .header{height:76px;min-height:76px;max-height:76px}#fax-faxQueue .header .goto-faxQueues-button{margin-right:16px}#fax-faxQueue .header .faxQueue-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#fax-faxQueue .header .faxQueue-image img{height:100%;width:auto;max-width:none}#fax-faxQueue .header .subtitle{margin:6px 0 0 0}#fax-faxQueue .faxQueue-detail-form-container{padding:24px;margin-bottom:24px}#fax-faxQueue .faxQueue-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#fax-faxQueue .faxQueue-detail-form-container .handle{cursor:move}#fax-faxQueue .faxQueue-detail-form-container md-input-container md-switch{margin:0!important}#fax-faxQueue .faxQueue-detail-form-container #faxQueue-image-uploader{position:relative}#fax-faxQueue .faxQueue-detail-form-container #faxQueue-image-uploader.dropping .drop-text{display:flex}#fax-faxQueue .faxQueue-detail-form-container #faxQueue-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#fax-faxQueue .faxQueue-detail-form-container #faxQueue-image-uploader .upload-button{margin-bottom:16px}#fax-faxQueue .faxQueue-detail-form-container #faxQueue-image-uploader .faxQueue-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#fax-faxQueue .faxQueue-detail-form-container #faxQueue-image-uploader .faxQueue-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#fax-faxQueue .faxQueue-detail-form-container #faxQueue-image-uploader .faxQueue-image .media{max-height:100%}#fax-faxQueue md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#fax-faxQueue md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#fax-faxQueue md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#fax-faxQueue md-table-container.font-size-12 td.md-cell{font-size:12px!important}#faxQueues{position:relative}#faxQueues>.header{height:76px;min-height:76px;max-height:76px}#faxQueues>.header .logo .logo-icon{margin:0 16px 0 0}#faxQueues>.header .logo .logo-text{font-size:24px}#faxQueues>.header md-icon{color:#fff}#faxQueues>.header .search-input-wrapper{position:relative}#faxQueues>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#faxQueues>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#faxQueues>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#faxQueues>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#faxQueues>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#faxQueues>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#faxQueues>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#faxQueues>.header.selected-bar .close-button-wrapper{width:244px}#faxQueues>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#faxQueues>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#faxQueues>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#faxQueues #add-faxQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#faxQueues #upload-faxQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#realtime>.content .blink{animation:blinker 2s linear infinite}#realtime>.content .avatar-wrapper{position:relative}#realtime>.content .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .search-input-wrapper{position:relative;margin-left:20px}#realtime>.content .search-input-wrapper label{padding:6px;cursor:pointer}#realtime>.content .search-input-wrapper md-input-container{padding-top:20px}#realtime>.content .main .labels{padding:8px 16px}#realtime>.content .main .labels .label{margin:0 0 2px 4px;padding:2px 5px;font-size:11px;white-space:nowrap;border-radius:2px}#realtime>.content .main .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .main .avatar-wrapper{position:relative}#realtime>.content .main .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .custom-column{padding:0 24px!important}@keyframes blinker{50%{opacity:0}}#profile .about-tab{max-width:1200px}#profile .about-tab .about{padding:8px}#profile .about-tab .about .general .location md-icon{line-height:13px!important}#profile .about-tab .about .work .job .company{padding:0 16px 0 0;font-weight:500}#profile .about-tab .about .work .job .date{color:rgba(0,0,0,.54)}#profile .about-tab .about-sidebar{padding:8px 8px 8px 32px}#profile .about-tab .about-sidebar .friends .content .friend{padding:4px}#profile .about-tab .about-sidebar .groups .content .group{margin-bottom:16px}#profile .about-tab .about-sidebar .groups .content .group:last-child{margin-bottom:0}#profile .about-tab .about-sidebar .groups .content .group .logo{border:1px solid rgba(0,0,0,.12);margin-right:16px}#profile .about-tab .about-sidebar .groups .content .group .name{font-weight:500;font-size:15px}#profile .about-tab .about-sidebar .groups .content .group .category,#profile .about-tab .about-sidebar .groups .content .group .members{color:rgba(0,0,0,.54)}#profile .about-tab .about-sidebar .groups .content .group .members{margin-top:16px}@media screen and (max-width:960px){#profile .about-tab .about-sidebar{padding:8px}}#maintenance{height:100%;background:url(/assets/images/backgrounds/tech.png) no-repeat;background-size:cover}#maintenance #maintenance-form-wrapper{flex:1 0 auto;padding:32px}#maintenance #maintenance-form-wrapper #maintenance-form{max-width:384px;padding:32px;background:#fff;text-align:center}#maintenance #maintenance-form-wrapper #maintenance-form .logo{width:128px;height:128px;line-height:128px;font-size:86px;font-weight:500;margin:32px auto;color:#fff;border-radius:2px}#maintenance #maintenance-form-wrapper #maintenance-form .title{font-size:17px;margin-top:16px}#maintenance #maintenance-form-wrapper #maintenance-form .subtitle{margin:16px 0;max-width:300px;color:rgba(0,0,0,.54);font-size:15px}@media screen and (max-width:600px){#maintenance #maintenance-form-wrapper{padding:16px}#maintenance #maintenance-form-wrapper #maintenance-form{padding:24px;width:100%}}md-dialog.deskAccount-dialog{max-width:720px;width:720px}md-dialog.deskAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.deskAccount-dialog md-toolbar .title{font-size:17px}md-dialog.deskAccount-dialog md-input-container textarea{min-height:150px}md-dialog.deskAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.deskAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.deskAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.deskAccount-dialog .error-list{font-size:13px}md-dialog.deskAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.deskAccount-dialog .error-list .error .message{font-weight:500}md-dialog.deskAccount-dialog .error-list .error .md-button{margin:0}md-dialog.deskAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.deskAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#deskAccounts{position:relative}#deskAccounts>.header{height:76px;min-height:76px;max-height:76px}#deskAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#deskAccounts>.header .logo .logo-text{font-size:24px}#deskAccounts>.header md-icon{color:#fff}#deskAccounts>.header .search-input-wrapper{position:relative}#deskAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#deskAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#deskAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#deskAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#deskAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#deskAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#deskAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#deskAccounts>.header.selected-bar .close-button-wrapper{width:244px}#deskAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#deskAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#deskAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#deskAccounts #add-deskAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#deskAccounts #upload-deskAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.deskConfiguration-dialog{max-width:720px;width:720px}md-dialog.deskConfiguration-dialog md-dialog-content{display:block;position:relative}md-dialog.deskConfiguration-dialog md-toolbar .title{font-size:17px}md-dialog.deskConfiguration-dialog md-input-container textarea{min-height:150px}md-dialog.deskConfiguration-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.deskConfiguration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.deskConfiguration-dialog .date-container{padding:16px 0 24px 0}md-dialog.deskConfiguration-dialog .error-list{font-size:13px}md-dialog.deskConfiguration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.deskConfiguration-dialog .error-list .error .message{font-weight:500}md-dialog.deskConfiguration-dialog .error-list .error .md-button{margin:0}md-dialog.deskConfiguration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.deskConfiguration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.deskAccount-item-dialog{max-width:720px;width:720px}md-dialog.deskAccount-item-dialog md-dialog-content{display:block;position:relative}md-dialog.deskAccount-item-dialog md-toolbar .title{font-size:17px}md-dialog.deskAccount-item-dialog md-input-container textarea{min-height:150px}md-dialog.deskAccount-item-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.deskAccount-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.deskAccount-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.deskAccount-item-dialog .error-list{font-size:13px}md-dialog.deskAccount-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.deskAccount-item-dialog .error-list .error .message{font-weight:500}md-dialog.deskAccount-item-dialog .error-list .error .md-button{margin:0}md-dialog.deskAccount-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.deskAccount-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-deskAccount .header{height:76px;min-height:76px;max-height:76px}#integrations-deskAccount .header .goto-deskAccounts-button{margin-right:16px}#integrations-deskAccount .header .deskAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-deskAccount .header .deskAccount-image img{height:100%;width:auto;max-width:none}#integrations-deskAccount .header .subtitle{margin:6px 0 0 0}#integrations-deskAccount .deskAccount-detail-form-container{padding:24px;margin-bottom:24px}#integrations-deskAccount .deskAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#integrations-deskAccount .deskAccount-detail-form-container .handle{cursor:move}#integrations-deskAccount .deskAccount-detail-form-container md-input-container md-switch{margin:0!important}#integrations-deskAccount .deskAccount-detail-form-container #deskAccount-image-uploader{position:relative}#integrations-deskAccount .deskAccount-detail-form-container #deskAccount-image-uploader.dropping .drop-text{display:flex}#integrations-deskAccount .deskAccount-detail-form-container #deskAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-deskAccount .deskAccount-detail-form-container #deskAccount-image-uploader .upload-button{margin-bottom:16px}#integrations-deskAccount .deskAccount-detail-form-container #deskAccount-image-uploader .deskAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-deskAccount .deskAccount-detail-form-container #deskAccount-image-uploader .deskAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-deskAccount .deskAccount-detail-form-container #deskAccount-image-uploader .deskAccount-image .media{max-height:100%}#integrations-deskAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#integrations-deskAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#integrations-deskAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#integrations-deskAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}md-dialog.dynamics365Account-dialog{max-width:720px;width:720px}md-dialog.dynamics365Account-dialog md-dialog-content{display:block;position:relative}md-dialog.dynamics365Account-dialog md-toolbar .title{font-size:17px}md-dialog.dynamics365Account-dialog md-input-container textarea{min-height:150px}md-dialog.dynamics365Account-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.dynamics365Account-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.dynamics365Account-dialog .date-container{padding:16px 0 24px 0}md-dialog.dynamics365Account-dialog .error-list{font-size:13px}md-dialog.dynamics365Account-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.dynamics365Account-dialog .error-list .error .message{font-weight:500}md-dialog.dynamics365Account-dialog .error-list .error .md-button{margin:0}md-dialog.dynamics365Account-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.dynamics365Account-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#dynamics365Accounts{position:relative}#dynamics365Accounts>.header{height:76px;min-height:76px;max-height:76px}#dynamics365Accounts>.header .logo .logo-icon{margin:0 16px 0 0}#dynamics365Accounts>.header .logo .logo-text{font-size:24px}#dynamics365Accounts>.header md-icon{color:#fff}#dynamics365Accounts>.header .search-input-wrapper{position:relative}#dynamics365Accounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#dynamics365Accounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#dynamics365Accounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#dynamics365Accounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#dynamics365Accounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#dynamics365Accounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#dynamics365Accounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#dynamics365Accounts>.header.selected-bar .close-button-wrapper{width:244px}#dynamics365Accounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#dynamics365Accounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#dynamics365Accounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#dynamics365Accounts #add-dynamics365Account-button{position:fixed;bottom:8px;right:8px;padding:0}#dynamics365Accounts #upload-dynamics365Account-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.dynamics365Configuration-dialog{max-width:720px;width:720px}md-dialog.dynamics365Configuration-dialog md-dialog-content{display:block;position:relative}md-dialog.dynamics365Configuration-dialog md-toolbar .title{font-size:17px}md-dialog.dynamics365Configuration-dialog md-input-container textarea{min-height:150px}md-dialog.dynamics365Configuration-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.dynamics365Configuration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.dynamics365Configuration-dialog .date-container{padding:16px 0 24px 0}md-dialog.dynamics365Configuration-dialog .error-list{font-size:13px}md-dialog.dynamics365Configuration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.dynamics365Configuration-dialog .error-list .error .message{font-weight:500}md-dialog.dynamics365Configuration-dialog .error-list .error .md-button{margin:0}md-dialog.dynamics365Configuration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.dynamics365Configuration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.dynamics365Account-item-dialog{max-width:720px;width:720px}md-dialog.dynamics365Account-item-dialog md-dialog-content{display:block;position:relative}md-dialog.dynamics365Account-item-dialog md-toolbar .title{font-size:17px}md-dialog.dynamics365Account-item-dialog md-input-container textarea{min-height:150px}md-dialog.dynamics365Account-item-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.dynamics365Account-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.dynamics365Account-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.dynamics365Account-item-dialog .error-list{font-size:13px}md-dialog.dynamics365Account-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.dynamics365Account-item-dialog .error-list .error .message{font-weight:500}md-dialog.dynamics365Account-item-dialog .error-list .error .md-button{margin:0}md-dialog.dynamics365Account-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.dynamics365Account-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-dynamics365Account .header{height:76px;min-height:76px;max-height:76px}#integrations-dynamics365Account .header .goto-dynamics365Accounts-button{margin-right:16px}#integrations-dynamics365Account .header .dynamics365Account-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-dynamics365Account .header .dynamics365Account-image img{height:100%;width:auto;max-width:none}#integrations-dynamics365Account .header .subtitle{margin:6px 0 0 0}#integrations-dynamics365Account .dynamics365Account-detail-form-container{padding:24px;margin-bottom:24px}#integrations-dynamics365Account .dynamics365Account-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#integrations-dynamics365Account .dynamics365Account-detail-form-container .handle{cursor:move}#integrations-dynamics365Account .dynamics365Account-detail-form-container md-input-container md-switch{margin:0!important}#integrations-dynamics365Account .dynamics365Account-detail-form-container #dynamics365Account-image-uploader{position:relative}#integrations-dynamics365Account .dynamics365Account-detail-form-container #dynamics365Account-image-uploader.dropping .drop-text{display:flex}#integrations-dynamics365Account .dynamics365Account-detail-form-container #dynamics365Account-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-dynamics365Account .dynamics365Account-detail-form-container #dynamics365Account-image-uploader .upload-button{margin-bottom:16px}#integrations-dynamics365Account .dynamics365Account-detail-form-container #dynamics365Account-image-uploader .dynamics365Account-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-dynamics365Account .dynamics365Account-detail-form-container #dynamics365Account-image-uploader .dynamics365Account-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-dynamics365Account .dynamics365Account-detail-form-container #dynamics365Account-image-uploader .dynamics365Account-image .media{max-height:100%}#integrations-dynamics365Account md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#integrations-dynamics365Account md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#integrations-dynamics365Account md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#integrations-dynamics365Account md-table-container.font-size-12 td.md-cell{font-size:12px!important}md-dialog.freshdeskAccount-dialog{max-width:720px;width:720px}md-dialog.freshdeskAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.freshdeskAccount-dialog md-toolbar .title{font-size:17px}md-dialog.freshdeskAccount-dialog md-input-container textarea{min-height:150px}md-dialog.freshdeskAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.freshdeskAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.freshdeskAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.freshdeskAccount-dialog .error-list{font-size:13px}md-dialog.freshdeskAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.freshdeskAccount-dialog .error-list .error .message{font-weight:500}md-dialog.freshdeskAccount-dialog .error-list .error .md-button{margin:0}md-dialog.freshdeskAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.freshdeskAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.freshdeskConfiguration-dialog{max-width:720px;width:720px}md-dialog.freshdeskConfiguration-dialog md-dialog-content{display:block;position:relative}md-dialog.freshdeskConfiguration-dialog md-toolbar .title{font-size:17px}md-dialog.freshdeskConfiguration-dialog md-input-container textarea{min-height:150px}md-dialog.freshdeskConfiguration-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.freshdeskConfiguration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.freshdeskConfiguration-dialog .date-container{padding:16px 0 24px 0}md-dialog.freshdeskConfiguration-dialog .error-list{font-size:13px}md-dialog.freshdeskConfiguration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.freshdeskConfiguration-dialog .error-list .error .message{font-weight:500}md-dialog.freshdeskConfiguration-dialog .error-list .error .md-button{margin:0}md-dialog.freshdeskConfiguration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.freshdeskConfiguration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.freshdeskAccount-item-dialog{max-width:720px;width:720px}md-dialog.freshdeskAccount-item-dialog md-dialog-content{display:block;position:relative}md-dialog.freshdeskAccount-item-dialog md-toolbar .title{font-size:17px}md-dialog.freshdeskAccount-item-dialog md-input-container textarea{min-height:150px}md-dialog.freshdeskAccount-item-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.freshdeskAccount-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.freshdeskAccount-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.freshdeskAccount-item-dialog .error-list{font-size:13px}md-dialog.freshdeskAccount-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.freshdeskAccount-item-dialog .error-list .error .message{font-weight:500}md-dialog.freshdeskAccount-item-dialog .error-list .error .md-button{margin:0}md-dialog.freshdeskAccount-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.freshdeskAccount-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-freshdeskAccount .header{height:76px;min-height:76px;max-height:76px}#integrations-freshdeskAccount .header .goto-freshdeskAccounts-button{margin-right:16px}#integrations-freshdeskAccount .header .freshdeskAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-freshdeskAccount .header .freshdeskAccount-image img{height:100%;width:auto;max-width:none}#integrations-freshdeskAccount .header .subtitle{margin:6px 0 0 0}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container{padding:24px;margin-bottom:24px}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container .handle{cursor:move}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container md-input-container md-switch{margin:0!important}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container #freshdeskAccount-image-uploader{position:relative}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container #freshdeskAccount-image-uploader.dropping .drop-text{display:flex}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container #freshdeskAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container #freshdeskAccount-image-uploader .upload-button{margin-bottom:16px}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container #freshdeskAccount-image-uploader .freshdeskAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container #freshdeskAccount-image-uploader .freshdeskAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container #freshdeskAccount-image-uploader .freshdeskAccount-image .media{max-height:100%}#integrations-freshdeskAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#integrations-freshdeskAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#integrations-freshdeskAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#integrations-freshdeskAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}#freshdeskAccounts{position:relative}#freshdeskAccounts>.header{height:76px;min-height:76px;max-height:76px}#freshdeskAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#freshdeskAccounts>.header .logo .logo-text{font-size:24px}#freshdeskAccounts>.header md-icon{color:#fff}#freshdeskAccounts>.header .search-input-wrapper{position:relative}#freshdeskAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#freshdeskAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#freshdeskAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#freshdeskAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#freshdeskAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#freshdeskAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#freshdeskAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#freshdeskAccounts>.header.selected-bar .close-button-wrapper{width:244px}#freshdeskAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#freshdeskAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#freshdeskAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#freshdeskAccounts #add-freshdeskAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#freshdeskAccounts #upload-freshdeskAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.freshsalesAccount-dialog{max-width:720px;width:720px}md-dialog.freshsalesAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.freshsalesAccount-dialog md-toolbar .title{font-size:17px}md-dialog.freshsalesAccount-dialog md-input-container textarea{min-height:150px}md-dialog.freshsalesAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.freshsalesAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.freshsalesAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.freshsalesAccount-dialog .error-list{font-size:13px}md-dialog.freshsalesAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.freshsalesAccount-dialog .error-list .error .message{font-weight:500}md-dialog.freshsalesAccount-dialog .error-list .error .md-button{margin:0}md-dialog.freshsalesAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.freshsalesAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.freshsalesConfiguration-dialog{max-width:720px;width:720px}md-dialog.freshsalesConfiguration-dialog md-dialog-content{display:block;position:relative}md-dialog.freshsalesConfiguration-dialog md-toolbar .title{font-size:17px}md-dialog.freshsalesConfiguration-dialog md-input-container textarea{min-height:150px}md-dialog.freshsalesConfiguration-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.freshsalesConfiguration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.freshsalesConfiguration-dialog .date-container{padding:16px 0 24px 0}md-dialog.freshsalesConfiguration-dialog .error-list{font-size:13px}md-dialog.freshsalesConfiguration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.freshsalesConfiguration-dialog .error-list .error .message{font-weight:500}md-dialog.freshsalesConfiguration-dialog .error-list .error .md-button{margin:0}md-dialog.freshsalesConfiguration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.freshsalesConfiguration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.freshsalesAccount-item-dialog{max-width:720px;width:720px}md-dialog.freshsalesAccount-item-dialog md-dialog-content{display:block;position:relative}md-dialog.freshsalesAccount-item-dialog md-toolbar .title{font-size:17px}md-dialog.freshsalesAccount-item-dialog md-input-container textarea{min-height:150px}md-dialog.freshsalesAccount-item-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.freshsalesAccount-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.freshsalesAccount-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.freshsalesAccount-item-dialog .error-list{font-size:13px}md-dialog.freshsalesAccount-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.freshsalesAccount-item-dialog .error-list .error .message{font-weight:500}md-dialog.freshsalesAccount-item-dialog .error-list .error .md-button{margin:0}md-dialog.freshsalesAccount-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.freshsalesAccount-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-freshsalesAccount .header{height:76px;min-height:76px;max-height:76px}#integrations-freshsalesAccount .header .goto-freshsalesAccounts-button{margin-right:16px}#integrations-freshsalesAccount .header .freshsalesAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-freshsalesAccount .header .freshsalesAccount-image img{height:100%;width:auto;max-width:none}#integrations-freshsalesAccount .header .subtitle{margin:6px 0 0 0}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container{padding:24px;margin-bottom:24px}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container .handle{cursor:move}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container md-input-container md-switch{margin:0!important}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container #freshsalesAccount-image-uploader{position:relative}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container #freshsalesAccount-image-uploader.dropping .drop-text{display:flex}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container #freshsalesAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container #freshsalesAccount-image-uploader .upload-button{margin-bottom:16px}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container #freshsalesAccount-image-uploader .freshsalesAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container #freshsalesAccount-image-uploader .freshsalesAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container #freshsalesAccount-image-uploader .freshsalesAccount-image .media{max-height:100%}#integrations-freshsalesAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#integrations-freshsalesAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#integrations-freshsalesAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#integrations-freshsalesAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}#freshsalesAccounts{position:relative}#freshsalesAccounts>.header{height:76px;min-height:76px;max-height:76px}#freshsalesAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#freshsalesAccounts>.header .logo .logo-text{font-size:24px}#freshsalesAccounts>.header md-icon{color:#fff}#freshsalesAccounts>.header .search-input-wrapper{position:relative}#freshsalesAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#freshsalesAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#freshsalesAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#freshsalesAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#freshsalesAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#freshsalesAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#freshsalesAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#freshsalesAccounts>.header.selected-bar .close-button-wrapper{width:244px}#freshsalesAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#freshsalesAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#freshsalesAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#freshsalesAccounts #add-freshsalesAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#freshsalesAccounts #upload-freshsalesAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.salesforceAccount-dialog{max-width:720px;width:720px}md-dialog.salesforceAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.salesforceAccount-dialog md-toolbar .title{font-size:17px}md-dialog.salesforceAccount-dialog md-input-container textarea{min-height:150px}md-dialog.salesforceAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.salesforceAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.salesforceAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.salesforceAccount-dialog .error-list{font-size:13px}md-dialog.salesforceAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.salesforceAccount-dialog .error-list .error .message{font-weight:500}md-dialog.salesforceAccount-dialog .error-list .error .md-button{margin:0}md-dialog.salesforceAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.salesforceAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.salesforceConfiguration-dialog{max-width:720px;width:720px}md-dialog.salesforceConfiguration-dialog md-dialog-content{display:block;position:relative}md-dialog.salesforceConfiguration-dialog md-toolbar .title{font-size:17px}md-dialog.salesforceConfiguration-dialog md-input-container textarea{min-height:150px}md-dialog.salesforceConfiguration-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.salesforceConfiguration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.salesforceConfiguration-dialog .date-container{padding:16px 0 24px 0}md-dialog.salesforceConfiguration-dialog .error-list{font-size:13px}md-dialog.salesforceConfiguration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.salesforceConfiguration-dialog .error-list .error .message{font-weight:500}md-dialog.salesforceConfiguration-dialog .error-list .error .md-button{margin:0}md-dialog.salesforceConfiguration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.salesforceConfiguration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.salesforceAccount-item-dialog{max-width:720px;width:720px}md-dialog.salesforceAccount-item-dialog md-dialog-content{display:block;position:relative}md-dialog.salesforceAccount-item-dialog md-toolbar .title{font-size:17px}md-dialog.salesforceAccount-item-dialog md-input-container textarea{min-height:150px}md-dialog.salesforceAccount-item-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.salesforceAccount-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.salesforceAccount-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.salesforceAccount-item-dialog .error-list{font-size:13px}md-dialog.salesforceAccount-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.salesforceAccount-item-dialog .error-list .error .message{font-weight:500}md-dialog.salesforceAccount-item-dialog .error-list .error .md-button{margin:0}md-dialog.salesforceAccount-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.salesforceAccount-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-salesforceAccount .header{height:76px;min-height:76px;max-height:76px}#integrations-salesforceAccount .header .goto-salesforceAccounts-button{margin-right:16px}#integrations-salesforceAccount .header .salesforceAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-salesforceAccount .header .salesforceAccount-image img{height:100%;width:auto;max-width:none}#integrations-salesforceAccount .header .subtitle{margin:6px 0 0 0}#integrations-salesforceAccount .salesforceAccount-detail-form-container{padding:24px;margin-bottom:24px}#integrations-salesforceAccount .salesforceAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#integrations-salesforceAccount .salesforceAccount-detail-form-container .handle{cursor:move}#integrations-salesforceAccount .salesforceAccount-detail-form-container md-input-container md-switch{margin:0!important}#integrations-salesforceAccount .salesforceAccount-detail-form-container #salesforceAccount-image-uploader{position:relative}#integrations-salesforceAccount .salesforceAccount-detail-form-container #salesforceAccount-image-uploader.dropping .drop-text{display:flex}#integrations-salesforceAccount .salesforceAccount-detail-form-container #salesforceAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-salesforceAccount .salesforceAccount-detail-form-container #salesforceAccount-image-uploader .upload-button{margin-bottom:16px}#integrations-salesforceAccount .salesforceAccount-detail-form-container #salesforceAccount-image-uploader .salesforceAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-salesforceAccount .salesforceAccount-detail-form-container #salesforceAccount-image-uploader .salesforceAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-salesforceAccount .salesforceAccount-detail-form-container #salesforceAccount-image-uploader .salesforceAccount-image .media{max-height:100%}#integrations-salesforceAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#integrations-salesforceAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#integrations-salesforceAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#integrations-salesforceAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}#salesforceAccounts{position:relative}#salesforceAccounts>.header{height:76px;min-height:76px;max-height:76px}#salesforceAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#salesforceAccounts>.header .logo .logo-text{font-size:24px}#salesforceAccounts>.header md-icon{color:#fff}#salesforceAccounts>.header .search-input-wrapper{position:relative}#salesforceAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#salesforceAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#salesforceAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#salesforceAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#salesforceAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#salesforceAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#salesforceAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#salesforceAccounts>.header.selected-bar .close-button-wrapper{width:244px}#salesforceAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#salesforceAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#salesforceAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#salesforceAccounts #add-salesforceAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#salesforceAccounts #upload-salesforceAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.servicenowAccount-dialog{max-width:720px;width:720px}md-dialog.servicenowAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.servicenowAccount-dialog md-toolbar .title{font-size:17px}md-dialog.servicenowAccount-dialog md-input-container textarea{min-height:150px}md-dialog.servicenowAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.servicenowAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.servicenowAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.servicenowAccount-dialog .error-list{font-size:13px}md-dialog.servicenowAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.servicenowAccount-dialog .error-list .error .message{font-weight:500}md-dialog.servicenowAccount-dialog .error-list .error .md-button{margin:0}md-dialog.servicenowAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.servicenowAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.servicenowConfiguration-dialog{max-width:720px;width:720px}md-dialog.servicenowConfiguration-dialog md-dialog-content{display:block;position:relative}md-dialog.servicenowConfiguration-dialog md-toolbar .title{font-size:17px}md-dialog.servicenowConfiguration-dialog md-input-container textarea{min-height:150px}md-dialog.servicenowConfiguration-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.servicenowConfiguration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.servicenowConfiguration-dialog .date-container{padding:16px 0 24px 0}md-dialog.servicenowConfiguration-dialog .error-list{font-size:13px}md-dialog.servicenowConfiguration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.servicenowConfiguration-dialog .error-list .error .message{font-weight:500}md-dialog.servicenowConfiguration-dialog .error-list .error .md-button{margin:0}md-dialog.servicenowConfiguration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.servicenowConfiguration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.servicenowAccount-item-dialog{max-width:720px;width:720px}md-dialog.servicenowAccount-item-dialog md-dialog-content{display:block;position:relative}md-dialog.servicenowAccount-item-dialog md-toolbar .title{font-size:17px}md-dialog.servicenowAccount-item-dialog md-input-container textarea{min-height:150px}md-dialog.servicenowAccount-item-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.servicenowAccount-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.servicenowAccount-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.servicenowAccount-item-dialog .error-list{font-size:13px}md-dialog.servicenowAccount-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.servicenowAccount-item-dialog .error-list .error .message{font-weight:500}md-dialog.servicenowAccount-item-dialog .error-list .error .md-button{margin:0}md-dialog.servicenowAccount-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.servicenowAccount-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-servicenowAccount .header{height:76px;min-height:76px;max-height:76px}#integrations-servicenowAccount .header .goto-servicenowAccounts-button{margin-right:16px}#integrations-servicenowAccount .header .servicenowAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-servicenowAccount .header .servicenowAccount-image img{height:100%;width:auto;max-width:none}#integrations-servicenowAccount .header .subtitle{margin:6px 0 0 0}#integrations-servicenowAccount .servicenowAccount-detail-form-container{padding:24px;margin-bottom:24px}#integrations-servicenowAccount .servicenowAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#integrations-servicenowAccount .servicenowAccount-detail-form-container .handle{cursor:move}#integrations-servicenowAccount .servicenowAccount-detail-form-container md-input-container md-switch{margin:0!important}#integrations-servicenowAccount .servicenowAccount-detail-form-container #servicenowAccount-image-uploader{position:relative}#integrations-servicenowAccount .servicenowAccount-detail-form-container #servicenowAccount-image-uploader.dropping .drop-text{display:flex}#integrations-servicenowAccount .servicenowAccount-detail-form-container #servicenowAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-servicenowAccount .servicenowAccount-detail-form-container #servicenowAccount-image-uploader .upload-button{margin-bottom:16px}#integrations-servicenowAccount .servicenowAccount-detail-form-container #servicenowAccount-image-uploader .servicenowAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-servicenowAccount .servicenowAccount-detail-form-container #servicenowAccount-image-uploader .servicenowAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-servicenowAccount .servicenowAccount-detail-form-container #servicenowAccount-image-uploader .servicenowAccount-image .media{max-height:100%}#integrations-servicenowAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#integrations-servicenowAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#integrations-servicenowAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#integrations-servicenowAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}#servicenowAccounts{position:relative}#servicenowAccounts>.header{height:76px;min-height:76px;max-height:76px}#servicenowAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#servicenowAccounts>.header .logo .logo-text{font-size:24px}#servicenowAccounts>.header md-icon{color:#fff}#servicenowAccounts>.header .search-input-wrapper{position:relative}#servicenowAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#servicenowAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#servicenowAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#servicenowAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#servicenowAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#servicenowAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#servicenowAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#servicenowAccounts>.header.selected-bar .close-button-wrapper{width:244px}#servicenowAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#servicenowAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#servicenowAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#servicenowAccounts #add-servicenowAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#servicenowAccounts #upload-servicenowAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.sugarcrmAccount-dialog{max-width:720px;width:720px}md-dialog.sugarcrmAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.sugarcrmAccount-dialog md-toolbar .title{font-size:17px}md-dialog.sugarcrmAccount-dialog md-input-container textarea{min-height:150px}md-dialog.sugarcrmAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.sugarcrmAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.sugarcrmAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.sugarcrmAccount-dialog .error-list{font-size:13px}md-dialog.sugarcrmAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.sugarcrmAccount-dialog .error-list .error .message{font-weight:500}md-dialog.sugarcrmAccount-dialog .error-list .error .md-button{margin:0}md-dialog.sugarcrmAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.sugarcrmAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.sugarcrmConfiguration-dialog{max-width:720px;width:720px}md-dialog.sugarcrmConfiguration-dialog md-dialog-content{display:block;position:relative}md-dialog.sugarcrmConfiguration-dialog md-toolbar .title{font-size:17px}md-dialog.sugarcrmConfiguration-dialog md-input-container textarea{min-height:150px}md-dialog.sugarcrmConfiguration-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.sugarcrmConfiguration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.sugarcrmConfiguration-dialog .date-container{padding:16px 0 24px 0}md-dialog.sugarcrmConfiguration-dialog .error-list{font-size:13px}md-dialog.sugarcrmConfiguration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.sugarcrmConfiguration-dialog .error-list .error .message{font-weight:500}md-dialog.sugarcrmConfiguration-dialog .error-list .error .md-button{margin:0}md-dialog.sugarcrmConfiguration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.sugarcrmConfiguration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.sugarcrmAccount-item-dialog{max-width:720px;width:720px}md-dialog.sugarcrmAccount-item-dialog md-dialog-content{display:block;position:relative}md-dialog.sugarcrmAccount-item-dialog md-toolbar .title{font-size:17px}md-dialog.sugarcrmAccount-item-dialog md-input-container textarea{min-height:150px}md-dialog.sugarcrmAccount-item-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.sugarcrmAccount-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.sugarcrmAccount-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.sugarcrmAccount-item-dialog .error-list{font-size:13px}md-dialog.sugarcrmAccount-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.sugarcrmAccount-item-dialog .error-list .error .message{font-weight:500}md-dialog.sugarcrmAccount-item-dialog .error-list .error .md-button{margin:0}md-dialog.sugarcrmAccount-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.sugarcrmAccount-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-sugarcrmAccount .header{height:76px;min-height:76px;max-height:76px}#integrations-sugarcrmAccount .header .goto-sugarcrmAccounts-button{margin-right:16px}#integrations-sugarcrmAccount .header .sugarcrmAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-sugarcrmAccount .header .sugarcrmAccount-image img{height:100%;width:auto;max-width:none}#integrations-sugarcrmAccount .header .subtitle{margin:6px 0 0 0}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container{padding:24px;margin-bottom:24px}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container .handle{cursor:move}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container md-input-container md-switch{margin:0!important}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container #sugarcrmAccount-image-uploader{position:relative}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container #sugarcrmAccount-image-uploader.dropping .drop-text{display:flex}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container #sugarcrmAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container #sugarcrmAccount-image-uploader .upload-button{margin-bottom:16px}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container #sugarcrmAccount-image-uploader .sugarcrmAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container #sugarcrmAccount-image-uploader .sugarcrmAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container #sugarcrmAccount-image-uploader .sugarcrmAccount-image .media{max-height:100%}#integrations-sugarcrmAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#integrations-sugarcrmAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#integrations-sugarcrmAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#integrations-sugarcrmAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}#sugarcrmAccounts{position:relative}#sugarcrmAccounts>.header{height:76px;min-height:76px;max-height:76px}#sugarcrmAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#sugarcrmAccounts>.header .logo .logo-text{font-size:24px}#sugarcrmAccounts>.header md-icon{color:#fff}#sugarcrmAccounts>.header .search-input-wrapper{position:relative}#sugarcrmAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#sugarcrmAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#sugarcrmAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#sugarcrmAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#sugarcrmAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#sugarcrmAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#sugarcrmAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#sugarcrmAccounts>.header.selected-bar .close-button-wrapper{width:244px}#sugarcrmAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#sugarcrmAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#sugarcrmAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#sugarcrmAccounts #add-sugarcrmAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#sugarcrmAccounts #upload-sugarcrmAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.vtigerAccount-dialog{max-width:720px;width:720px}md-dialog.vtigerAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.vtigerAccount-dialog md-toolbar .title{font-size:17px}md-dialog.vtigerAccount-dialog md-input-container textarea{min-height:150px}md-dialog.vtigerAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.vtigerAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.vtigerAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.vtigerAccount-dialog .error-list{font-size:13px}md-dialog.vtigerAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.vtigerAccount-dialog .error-list .error .message{font-weight:500}md-dialog.vtigerAccount-dialog .error-list .error .md-button{margin:0}md-dialog.vtigerAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.vtigerAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.vtigerConfiguration-dialog{max-width:720px;width:720px}md-dialog.vtigerConfiguration-dialog md-dialog-content{display:block;position:relative}md-dialog.vtigerConfiguration-dialog md-toolbar .title{font-size:17px}md-dialog.vtigerConfiguration-dialog md-input-container textarea{min-height:150px}md-dialog.vtigerConfiguration-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.vtigerConfiguration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.vtigerConfiguration-dialog .date-container{padding:16px 0 24px 0}md-dialog.vtigerConfiguration-dialog .error-list{font-size:13px}md-dialog.vtigerConfiguration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.vtigerConfiguration-dialog .error-list .error .message{font-weight:500}md-dialog.vtigerConfiguration-dialog .error-list .error .md-button{margin:0}md-dialog.vtigerConfiguration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.vtigerConfiguration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.vtigerAccount-item-dialog{max-width:720px;width:720px}md-dialog.vtigerAccount-item-dialog md-dialog-content{display:block;position:relative}md-dialog.vtigerAccount-item-dialog md-toolbar .title{font-size:17px}md-dialog.vtigerAccount-item-dialog md-input-container textarea{min-height:150px}md-dialog.vtigerAccount-item-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.vtigerAccount-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.vtigerAccount-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.vtigerAccount-item-dialog .error-list{font-size:13px}md-dialog.vtigerAccount-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.vtigerAccount-item-dialog .error-list .error .message{font-weight:500}md-dialog.vtigerAccount-item-dialog .error-list .error .md-button{margin:0}md-dialog.vtigerAccount-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.vtigerAccount-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-vtigerAccount .header{height:76px;min-height:76px;max-height:76px}#integrations-vtigerAccount .header .goto-vtigerAccounts-button{margin-right:16px}#integrations-vtigerAccount .header .vtigerAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-vtigerAccount .header .vtigerAccount-image img{height:100%;width:auto;max-width:none}#integrations-vtigerAccount .header .subtitle{margin:6px 0 0 0}#integrations-vtigerAccount .vtigerAccount-detail-form-container{padding:24px;margin-bottom:24px}#integrations-vtigerAccount .vtigerAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#integrations-vtigerAccount .vtigerAccount-detail-form-container .handle{cursor:move}#integrations-vtigerAccount .vtigerAccount-detail-form-container md-input-container md-switch{margin:0!important}#integrations-vtigerAccount .vtigerAccount-detail-form-container #vtigerAccount-image-uploader{position:relative}#integrations-vtigerAccount .vtigerAccount-detail-form-container #vtigerAccount-image-uploader.dropping .drop-text{display:flex}#integrations-vtigerAccount .vtigerAccount-detail-form-container #vtigerAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-vtigerAccount .vtigerAccount-detail-form-container #vtigerAccount-image-uploader .upload-button{margin-bottom:16px}#integrations-vtigerAccount .vtigerAccount-detail-form-container #vtigerAccount-image-uploader .vtigerAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-vtigerAccount .vtigerAccount-detail-form-container #vtigerAccount-image-uploader .vtigerAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-vtigerAccount .vtigerAccount-detail-form-container #vtigerAccount-image-uploader .vtigerAccount-image .media{max-height:100%}#integrations-vtigerAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#integrations-vtigerAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#integrations-vtigerAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#integrations-vtigerAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}#vtigerAccounts{position:relative}#vtigerAccounts>.header{height:76px;min-height:76px;max-height:76px}#vtigerAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#vtigerAccounts>.header .logo .logo-text{font-size:24px}#vtigerAccounts>.header md-icon{color:#fff}#vtigerAccounts>.header .search-input-wrapper{position:relative}#vtigerAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#vtigerAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#vtigerAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#vtigerAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#vtigerAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#vtigerAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#vtigerAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#vtigerAccounts>.header.selected-bar .close-button-wrapper{width:244px}#vtigerAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#vtigerAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#vtigerAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#vtigerAccounts #add-vtigerAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#vtigerAccounts #upload-vtigerAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.zendeskAccount-dialog{max-width:720px;width:720px}md-dialog.zendeskAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.zendeskAccount-dialog md-toolbar .title{font-size:17px}md-dialog.zendeskAccount-dialog md-input-container textarea{min-height:150px}md-dialog.zendeskAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.zendeskAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.zendeskAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.zendeskAccount-dialog .error-list{font-size:13px}md-dialog.zendeskAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.zendeskAccount-dialog .error-list .error .message{font-weight:500}md-dialog.zendeskAccount-dialog .error-list .error .md-button{margin:0}md-dialog.zendeskAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.zendeskAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.zendeskAccount-item-dialog{max-width:720px;width:720px}md-dialog.zendeskAccount-item-dialog md-dialog-content{display:block;position:relative}md-dialog.zendeskAccount-item-dialog md-toolbar .title{font-size:17px}md-dialog.zendeskAccount-item-dialog md-input-container textarea{min-height:150px}md-dialog.zendeskAccount-item-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.zendeskAccount-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.zendeskAccount-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.zendeskAccount-item-dialog .error-list{font-size:13px}md-dialog.zendeskAccount-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.zendeskAccount-item-dialog .error-list .error .message{font-weight:500}md-dialog.zendeskAccount-item-dialog .error-list .error .md-button{margin:0}md-dialog.zendeskAccount-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.zendeskAccount-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-zendeskAccount .header{height:76px;min-height:76px;max-height:76px}#integrations-zendeskAccount .header .goto-zendeskAccounts-button{margin-right:16px}#integrations-zendeskAccount .header .zendeskAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-zendeskAccount .header .zendeskAccount-image img{height:100%;width:auto;max-width:none}#integrations-zendeskAccount .header .subtitle{margin:6px 0 0 0}#integrations-zendeskAccount .zendeskAccount-detail-form-container{padding:24px;margin-bottom:24px}#integrations-zendeskAccount .zendeskAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#integrations-zendeskAccount .zendeskAccount-detail-form-container .handle{cursor:move}#integrations-zendeskAccount .zendeskAccount-detail-form-container md-input-container md-switch{margin:0!important}#integrations-zendeskAccount .zendeskAccount-detail-form-container #zendeskAccount-image-uploader{position:relative}#integrations-zendeskAccount .zendeskAccount-detail-form-container #zendeskAccount-image-uploader.dropping .drop-text{display:flex}#integrations-zendeskAccount .zendeskAccount-detail-form-container #zendeskAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-zendeskAccount .zendeskAccount-detail-form-container #zendeskAccount-image-uploader .upload-button{margin-bottom:16px}#integrations-zendeskAccount .zendeskAccount-detail-form-container #zendeskAccount-image-uploader .zendeskAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-zendeskAccount .zendeskAccount-detail-form-container #zendeskAccount-image-uploader .zendeskAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-zendeskAccount .zendeskAccount-detail-form-container #zendeskAccount-image-uploader .zendeskAccount-image .media{max-height:100%}#integrations-zendeskAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#integrations-zendeskAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#integrations-zendeskAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#integrations-zendeskAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}md-dialog.zendeskConfiguration-dialog{max-width:720px;width:720px}md-dialog.zendeskConfiguration-dialog md-dialog-content{display:block;position:relative}md-dialog.zendeskConfiguration-dialog md-toolbar .title{font-size:17px}md-dialog.zendeskConfiguration-dialog md-input-container textarea{min-height:150px}md-dialog.zendeskConfiguration-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.zendeskConfiguration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.zendeskConfiguration-dialog .date-container{padding:16px 0 24px 0}md-dialog.zendeskConfiguration-dialog .error-list{font-size:13px}md-dialog.zendeskConfiguration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.zendeskConfiguration-dialog .error-list .error .message{font-weight:500}md-dialog.zendeskConfiguration-dialog .error-list .error .md-button{margin:0}md-dialog.zendeskConfiguration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.zendeskConfiguration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#zendeskAccounts{position:relative}#zendeskAccounts>.header{height:76px;min-height:76px;max-height:76px}#zendeskAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#zendeskAccounts>.header .logo .logo-text{font-size:24px}#zendeskAccounts>.header md-icon{color:#fff}#zendeskAccounts>.header .search-input-wrapper{position:relative}#zendeskAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#zendeskAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#zendeskAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#zendeskAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#zendeskAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#zendeskAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#zendeskAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#zendeskAccounts>.header.selected-bar .close-button-wrapper{width:244px}#zendeskAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#zendeskAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#zendeskAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#zendeskAccounts #add-zendeskAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#zendeskAccounts #upload-zendeskAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.zohoAccount-dialog{max-width:720px;width:720px}md-dialog.zohoAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.zohoAccount-dialog md-toolbar .title{font-size:17px}md-dialog.zohoAccount-dialog md-input-container textarea{min-height:150px}md-dialog.zohoAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.zohoAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.zohoAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.zohoAccount-dialog .error-list{font-size:13px}md-dialog.zohoAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.zohoAccount-dialog .error-list .error .message{font-weight:500}md-dialog.zohoAccount-dialog .error-list .error .md-button{margin:0}md-dialog.zohoAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.zohoAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.zohoConfiguration-dialog{max-width:720px;width:720px}md-dialog.zohoConfiguration-dialog md-dialog-content{display:block;position:relative}md-dialog.zohoConfiguration-dialog md-toolbar .title{font-size:17px}md-dialog.zohoConfiguration-dialog md-input-container textarea{min-height:150px}md-dialog.zohoConfiguration-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.zohoConfiguration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.zohoConfiguration-dialog .date-container{padding:16px 0 24px 0}md-dialog.zohoConfiguration-dialog .error-list{font-size:13px}md-dialog.zohoConfiguration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.zohoConfiguration-dialog .error-list .error .message{font-weight:500}md-dialog.zohoConfiguration-dialog .error-list .error .md-button{margin:0}md-dialog.zohoConfiguration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.zohoConfiguration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.zohoAccount-item-dialog{max-width:720px;width:720px}md-dialog.zohoAccount-item-dialog md-dialog-content{display:block;position:relative}md-dialog.zohoAccount-item-dialog md-toolbar .title{font-size:17px}md-dialog.zohoAccount-item-dialog md-input-container textarea{min-height:150px}md-dialog.zohoAccount-item-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.zohoAccount-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.zohoAccount-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.zohoAccount-item-dialog .error-list{font-size:13px}md-dialog.zohoAccount-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.zohoAccount-item-dialog .error-list .error .message{font-weight:500}md-dialog.zohoAccount-item-dialog .error-list .error .md-button{margin:0}md-dialog.zohoAccount-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.zohoAccount-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-zohoAccount .header{height:76px;min-height:76px;max-height:76px}#integrations-zohoAccount .header .goto-zohoAccounts-button{margin-right:16px}#integrations-zohoAccount .header .zohoAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-zohoAccount .header .zohoAccount-image img{height:100%;width:auto;max-width:none}#integrations-zohoAccount .header .subtitle{margin:6px 0 0 0}#integrations-zohoAccount .zohoAccount-detail-form-container{padding:24px;margin-bottom:24px}#integrations-zohoAccount .zohoAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#integrations-zohoAccount .zohoAccount-detail-form-container .handle{cursor:move}#integrations-zohoAccount .zohoAccount-detail-form-container md-input-container md-switch{margin:0!important}#integrations-zohoAccount .zohoAccount-detail-form-container #zohoAccount-image-uploader{position:relative}#integrations-zohoAccount .zohoAccount-detail-form-container #zohoAccount-image-uploader.dropping .drop-text{display:flex}#integrations-zohoAccount .zohoAccount-detail-form-container #zohoAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-zohoAccount .zohoAccount-detail-form-container #zohoAccount-image-uploader .upload-button{margin-bottom:16px}#integrations-zohoAccount .zohoAccount-detail-form-container #zohoAccount-image-uploader .zohoAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-zohoAccount .zohoAccount-detail-form-container #zohoAccount-image-uploader .zohoAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-zohoAccount .zohoAccount-detail-form-container #zohoAccount-image-uploader .zohoAccount-image .media{max-height:100%}#integrations-zohoAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#integrations-zohoAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#integrations-zohoAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#integrations-zohoAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}#zohoAccounts{position:relative}#zohoAccounts>.header{height:76px;min-height:76px;max-height:76px}#zohoAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#zohoAccounts>.header .logo .logo-text{font-size:24px}#zohoAccounts>.header md-icon{color:#fff}#zohoAccounts>.header .search-input-wrapper{position:relative}#zohoAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#zohoAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#zohoAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#zohoAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#zohoAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#zohoAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#zohoAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#zohoAccounts>.header.selected-bar .close-button-wrapper{width:244px}#zohoAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#zohoAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#zohoAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#zohoAccounts #add-zohoAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#zohoAccounts #upload-zohoAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.project-dialog{max-width:720px;width:720px}md-dialog.project-dialog md-dialog-content{display:block;position:relative}md-dialog.project-dialog md-toolbar .title{font-size:17px}md-dialog.project-dialog md-input-container textarea{min-height:150px}md-dialog.project-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.project-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.project-dialog .date-container{padding:16px 0 24px 0}md-dialog.project-dialog .error-list{font-size:13px}md-dialog.project-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.project-dialog .error-list .error .message{font-weight:500}md-dialog.project-dialog .error-list .error .md-button{margin:0}md-dialog.project-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.project-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.session-dialog{max-width:720px;width:720px}md-dialog.session-dialog md-dialog-content{display:block;position:relative}md-dialog.session-dialog md-toolbar .title{font-size:17px}md-dialog.session-dialog md-input-container textarea{min-height:150px}md-dialog.session-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.session-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.session-dialog .date-container{padding:16px 0 24px 0}md-dialog.session-dialog .error-list{font-size:13px}md-dialog.session-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.session-dialog .error-list .error .message{font-weight:500}md-dialog.session-dialog .error-list .error .md-button{margin:0}md-dialog.session-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.session-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#jscripty-project .header{height:76px;min-height:76px;max-height:76px}#jscripty-project .header .goto-projects-button{margin-right:16px}#jscripty-project .header .project-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#jscripty-project .header .project-image img{height:100%;width:auto;max-width:none}#jscripty-project .header .subtitle{margin:6px 0 0 0}#jscripty-project .project-detail-form-container{padding:24px;margin-bottom:24px}#jscripty-project .project-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#jscripty-project .project-detail-form-container .handle{cursor:move}#jscripty-project .project-detail-form-container md-input-container md-switch{margin:0!important}#jscripty-project .project-detail-form-container #project-image-uploader{position:relative}#jscripty-project .project-detail-form-container #project-image-uploader.dropping .drop-text{display:flex}#jscripty-project .project-detail-form-container #project-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#jscripty-project .project-detail-form-container #project-image-uploader .upload-button{margin-bottom:16px}#jscripty-project .project-detail-form-container #project-image-uploader .project-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#jscripty-project .project-detail-form-container #project-image-uploader .project-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#jscripty-project .project-detail-form-container #project-image-uploader .project-image .media{max-height:100%}#jscripty-project md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#jscripty-project md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#jscripty-project md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#jscripty-project md-table-container.font-size-12 td.md-cell{font-size:12px!important}#projects{position:relative}#projects>.header{height:76px;min-height:76px;max-height:76px}#projects>.header .logo .logo-icon{margin:0 16px 0 0}#projects>.header .logo .logo-text{font-size:24px}#projects>.header md-icon{color:#fff}#projects>.header .search-input-wrapper{position:relative}#projects>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#projects>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#projects>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#projects>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#projects>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#projects>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#projects>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#projects>.header.selected-bar .close-button-wrapper{width:244px}#projects>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#projects>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#projects>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#projects #add-project-button{position:fixed;bottom:8px;right:8px;padding:0}#projects #upload-project-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.mailAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailCannedAnswer-dialog{max-width:720px;width:720px}md-dialog.mailCannedAnswer-dialog md-dialog-content{display:block;position:relative}md-dialog.mailCannedAnswer-dialog md-toolbar .title{font-size:17px}md-dialog.mailCannedAnswer-dialog md-input-container textarea{min-height:150px}md-dialog.mailCannedAnswer-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.mailCannedAnswer-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.mailCannedAnswer-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailCannedAnswer-dialog .error-list{font-size:13px}md-dialog.mailCannedAnswer-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailCannedAnswer-dialog .error-list .error .message{font-weight:500}md-dialog.mailCannedAnswer-dialog .error-list .error .md-button{margin:0}md-dialog.mailCannedAnswer-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailCannedAnswer-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#mail-mailAccount .header{height:76px;min-height:76px;max-height:76px}#mail-mailAccount .header .goto-mailAccounts-button{margin-right:16px}#mail-mailAccount .header .mailAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#mail-mailAccount .header .mailAccount-image img{height:100%;width:auto;max-width:none}#mail-mailAccount .header .subtitle{margin:6px 0 0 0}#mail-mailAccount .mailAccount-detail-form-container{padding:24px;margin-bottom:24px}#mail-mailAccount .mailAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#mail-mailAccount .mailAccount-detail-form-container .handle{cursor:move}#mail-mailAccount .mailAccount-detail-form-container md-input-container md-switch{margin:0!important}#mail-mailAccount .mailAccount-detail-form-container #mailAccount-image-uploader{position:relative}#mail-mailAccount .mailAccount-detail-form-container #mailAccount-image-uploader.dropping .drop-text{display:flex}#mail-mailAccount .mailAccount-detail-form-container #mailAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#mail-mailAccount .mailAccount-detail-form-container #mailAccount-image-uploader .upload-button{margin-bottom:16px}#mail-mailAccount .mailAccount-detail-form-container #mailAccount-image-uploader .mailAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#mail-mailAccount .mailAccount-detail-form-container #mailAccount-image-uploader .mailAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#mail-mailAccount .mailAccount-detail-form-container #mailAccount-image-uploader .mailAccount-image .media{max-height:100%}#mail-mailAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#mail-mailAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#mail-mailAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#mail-mailAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}#mailAccounts{position:relative}#mailAccounts>.header{height:76px;min-height:76px;max-height:76px}#mailAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#mailAccounts>.header .logo .logo-text{font-size:24px}#mailAccounts>.header md-icon{color:#fff}#mailAccounts>.header .search-input-wrapper{position:relative}#mailAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#mailAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#mailAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#mailAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#mailAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#mailAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#mailAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#mailAccounts>.header.selected-bar .close-button-wrapper{width:244px}#mailAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#mailAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#mailAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#mailAccounts #add-mailAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#mailAccounts #upload-mailAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.mailQueue-dialog{max-width:720px;width:720px}md-dialog.mailQueue-dialog md-dialog-content{display:block;position:relative}md-dialog.mailQueue-dialog md-toolbar .title{font-size:17px}md-dialog.mailQueue-dialog md-input-container textarea{min-height:150px}md-dialog.mailQueue-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.mailQueue-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.mailQueue-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailQueue-dialog .error-list{font-size:13px}md-dialog.mailQueue-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailQueue-dialog .error-list .error .message{font-weight:500}md-dialog.mailQueue-dialog .error-list .error .md-button{margin:0}md-dialog.mailQueue-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailQueue-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#mail-mailQueue .header{height:76px;min-height:76px;max-height:76px}#mail-mailQueue .header .goto-mailQueues-button{margin-right:16px}#mail-mailQueue .header .mailQueue-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#mail-mailQueue .header .mailQueue-image img{height:100%;width:auto;max-width:none}#mail-mailQueue .header .subtitle{margin:6px 0 0 0}#mail-mailQueue .mailQueue-detail-form-container{padding:24px;margin-bottom:24px}#mail-mailQueue .mailQueue-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#mail-mailQueue .mailQueue-detail-form-container .handle{cursor:move}#mail-mailQueue .mailQueue-detail-form-container md-input-container md-switch{margin:0!important}#mail-mailQueue .mailQueue-detail-form-container #mailQueue-image-uploader{position:relative}#mail-mailQueue .mailQueue-detail-form-container #mailQueue-image-uploader.dropping .drop-text{display:flex}#mail-mailQueue .mailQueue-detail-form-container #mailQueue-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#mail-mailQueue .mailQueue-detail-form-container #mailQueue-image-uploader .upload-button{margin-bottom:16px}#mail-mailQueue .mailQueue-detail-form-container #mailQueue-image-uploader .mailQueue-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#mail-mailQueue .mailQueue-detail-form-container #mailQueue-image-uploader .mailQueue-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#mail-mailQueue .mailQueue-detail-form-container #mailQueue-image-uploader .mailQueue-image .media{max-height:100%}#mail-mailQueue md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#mail-mailQueue md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#mail-mailQueue md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#mail-mailQueue md-table-container.font-size-12 td.md-cell{font-size:12px!important}#mailQueues{position:relative}#mailQueues>.header{height:76px;min-height:76px;max-height:76px}#mailQueues>.header .logo .logo-icon{margin:0 16px 0 0}#mailQueues>.header .logo .logo-text{font-size:24px}#mailQueues>.header md-icon{color:#fff}#mailQueues>.header .search-input-wrapper{position:relative}#mailQueues>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#mailQueues>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#mailQueues>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#mailQueues>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#mailQueues>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#mailQueues>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#mailQueues>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#mailQueues>.header.selected-bar .close-button-wrapper{width:244px}#mailQueues>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#mailQueues>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#mailQueues>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#mailQueues #add-mailQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#mailQueues #upload-mailQueue-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.mailSubstatus-dialog{max-width:720px;width:720px}md-dialog.mailSubstatus-dialog md-dialog-content{display:block;position:relative}md-dialog.mailSubstatus-dialog md-toolbar .title{font-size:17px}md-dialog.mailSubstatus-dialog md-input-container textarea{min-height:150px}md-dialog.mailSubstatus-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.mailSubstatus-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.mailSubstatus-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailSubstatus-dialog .error-list{font-size:13px}md-dialog.mailSubstatus-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailSubstatus-dialog .error-list .error .message{font-weight:500}md-dialog.mailSubstatus-dialog .error-list .error .md-button{margin:0}md-dialog.mailSubstatus-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailSubstatus-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#mailSubtatuses{position:relative}#mailSubtatuses>.header{height:76px;min-height:76px;max-height:76px}#mailSubtatuses>.header .logo .logo-icon{margin:0 16px 0 0}#mailSubtatuses>.header .logo .logo-text{font-size:24px}#mailSubtatuses>.header md-icon{color:#fff}#mailSubtatuses>.header .search-input-wrapper{position:relative}#mailSubtatuses>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#mailSubtatuses>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#mailSubtatuses>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#mailSubtatuses>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#mailSubtatuses>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#mailSubtatuses>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#mailSubtatuses>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#mailSubtatuses>.header.selected-bar .close-button-wrapper{width:244px}#mailSubtatuses>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#mailSubtatuses>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#mailSubtatuses>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#mailSubtatuses #add-mailSubstatus-button{position:fixed;bottom:8px;right:8px;padding:0}#mailSubtatuses #upload-mailSubstatus-button{position:fixed;bottom:8px;right:8px;padding:0}#realtime>.content .blink{animation:blinker 2s linear infinite}#realtime>.content .avatar-wrapper{position:relative}#realtime>.content .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .search-input-wrapper{position:relative;margin-left:20px}#realtime>.content .search-input-wrapper label{padding:6px;cursor:pointer}#realtime>.content .search-input-wrapper md-input-container{padding-top:20px}#realtime>.content .main .labels{padding:8px 16px}#realtime>.content .main .labels .label{margin:0 0 2px 4px;padding:2px 5px;font-size:11px;white-space:nowrap;border-radius:2px}#realtime>.content .main .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .main .avatar-wrapper{position:relative}#realtime>.content .main .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .custom-column{padding:0 24px!important}@keyframes blinker{50%{opacity:0}}md-dialog.plugin-dialog{max-width:720px;width:720px}md-dialog.plugin-dialog md-dialog-content{display:block;position:relative}md-dialog.plugin-dialog md-toolbar .title{font-size:17px}md-dialog.plugin-dialog md-input-container textarea{min-height:150px}md-dialog.plugin-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.plugin-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.plugin-dialog .date-container{padding:16px 0 24px 0}md-dialog.plugin-dialog .error-list{font-size:13px}md-dialog.plugin-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.plugin-dialog .error-list .error .message{font-weight:500}md-dialog.plugin-dialog .error-list .error .md-button{margin:0}md-dialog.plugin-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.plugin-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#marketplace-plugin .header{height:76px;min-height:76px;max-height:76px}#marketplace-plugin .header .goto-plugins-button{margin-right:16px}#marketplace-plugin .header .plugin-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#marketplace-plugin .header .plugin-image img{height:100%;width:auto;max-width:none}#marketplace-plugin .header .subtitle{margin:6px 0 0 0}#marketplace-plugin .plugin-detail-form-container{padding:24px;margin-bottom:24px}#marketplace-plugin .plugin-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#marketplace-plugin .plugin-detail-form-container .handle{cursor:move}#marketplace-plugin .plugin-detail-form-container md-input-container md-switch{margin:0!important}#marketplace-plugin .plugin-detail-form-container #plugin-image-uploader{position:relative}#marketplace-plugin .plugin-detail-form-container #plugin-image-uploader.dropping .drop-text{display:flex}#marketplace-plugin .plugin-detail-form-container #plugin-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#marketplace-plugin .plugin-detail-form-container #plugin-image-uploader .upload-button{margin-bottom:16px}#marketplace-plugin .plugin-detail-form-container #plugin-image-uploader .plugin-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#marketplace-plugin .plugin-detail-form-container #plugin-image-uploader .plugin-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#marketplace-plugin .plugin-detail-form-container #plugin-image-uploader .plugin-image .media{max-height:100%}#marketplace-plugin md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#marketplace-plugin md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#marketplace-plugin md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#marketplace-plugin md-table-container.font-size-12 td.md-cell{font-size:12px!important}#plugins{position:relative}#plugins>.header{height:76px;min-height:76px;max-height:76px}#plugins>.header .logo .logo-icon{margin:0 16px 0 0}#plugins>.header .logo .logo-text{font-size:24px}#plugins>.header md-icon{color:#fff}#plugins>.header .search-input-wrapper{position:relative}#plugins>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#plugins>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#plugins>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#plugins>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#plugins>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#plugins>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#plugins>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#plugins>.header.selected-bar .close-button-wrapper{width:244px}#plugins>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#plugins>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#plugins>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#plugins #add-plugin-button{position:fixed;bottom:8px;right:8px;padding:0}#plugins #upload-plugin-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.upload-dialog{max-width:720px;width:720px}md-dialog.upload-dialog md-dialog-content{display:block;position:relative}md-dialog.upload-dialog md-toolbar .title{font-size:17px}md-dialog.upload-dialog md-input-container textarea{min-height:150px}md-dialog.upload-dialog md-progress-linear{padding-top:16px!important}md-dialog.upload-dialog .date-container{padding:16px 0 24px 0}md-dialog.upload-dialog .error-list{font-size:13px}md-dialog.upload-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.upload-dialog .error-list .error .message{font-weight:500}md-dialog.upload-dialog .error-list .error .md-button{margin:0}md-dialog.upload-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.upload-dialog .plugin-image{overflow:hidden;max-width:148px;margin-right:16px;border:3px solid rgba(0,0,0,.12);padding:10px}md-dialog.upload-dialog .plugin-image img{width:auto;max-width:none}md-dialog.upload-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.ivrCampaign-dialog{max-width:720px;width:720px}md-dialog.ivrCampaign-dialog md-dialog-content{display:block;position:relative}md-dialog.ivrCampaign-dialog md-toolbar .title{font-size:17px}md-dialog.ivrCampaign-dialog md-input-container textarea{min-height:150px}md-dialog.ivrCampaign-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.ivrCampaign-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.ivrCampaign-dialog .date-container{padding:16px 0 24px 0}md-dialog.ivrCampaign-dialog .error-list{font-size:13px}md-dialog.ivrCampaign-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.ivrCampaign-dialog .error-list .error .message{font-weight:500}md-dialog.ivrCampaign-dialog .error-list .error .md-button{margin:0}md-dialog.ivrCampaign-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.ivrCampaign-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.hopper-dialog{max-width:720px;width:720px}md-dialog.hopper-dialog md-dialog-content{display:block;position:relative}md-dialog.hopper-dialog md-toolbar .title{font-size:17px}md-dialog.hopper-dialog md-input-container textarea{min-height:150px}md-dialog.hopper-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.hopper-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.hopper-dialog .date-container{padding:16px 0 24px 0}md-dialog.hopper-dialog .error-list{font-size:13px}md-dialog.hopper-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.hopper-dialog .error-list .error .message{font-weight:500}md-dialog.hopper-dialog .error-list .error .md-button{margin:0}md-dialog.hopper-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.hopper-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#motiondialer-ivrCampaign .header{height:76px;min-height:76px;max-height:76px}#motiondialer-ivrCampaign .header .goto-ivrCampaigns-button{margin-right:16px}#motiondialer-ivrCampaign .header .ivrCampaign-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#motiondialer-ivrCampaign .header .ivrCampaign-image img{height:100%;width:auto;max-width:none}#motiondialer-ivrCampaign .header .subtitle{margin:6px 0 0 0}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container{padding:24px;margin-bottom:24px}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container .handle{cursor:move}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container md-input-container md-switch{margin:0!important}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container #ivrCampaign-image-uploader{position:relative}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container #ivrCampaign-image-uploader.dropping .drop-text{display:flex}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container #ivrCampaign-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container #ivrCampaign-image-uploader .upload-button{margin-bottom:16px}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container #ivrCampaign-image-uploader .ivrCampaign-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container #ivrCampaign-image-uploader .ivrCampaign-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container #ivrCampaign-image-uploader .ivrCampaign-image .media{max-height:100%}#motiondialer-ivrCampaign md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#motiondialer-ivrCampaign md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#motiondialer-ivrCampaign md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#motiondialer-ivrCampaign md-table-container.font-size-12 td.md-cell{font-size:12px!important}#ivrCampaigns{position:relative}#ivrCampaigns>.header{height:76px;min-height:76px;max-height:76px}#ivrCampaigns>.header .logo .logo-icon{margin:0 16px 0 0}#ivrCampaigns>.header .logo .logo-text{font-size:24px}#ivrCampaigns>.header md-icon{color:#fff}#ivrCampaigns>.header .search-input-wrapper{position:relative}#ivrCampaigns>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#ivrCampaigns>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#ivrCampaigns>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#ivrCampaigns>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#ivrCampaigns>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#ivrCampaigns>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#ivrCampaigns>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#ivrCampaigns>.header.selected-bar .close-button-wrapper{width:244px}#ivrCampaigns>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#ivrCampaigns>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#ivrCampaigns>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#ivrCampaigns #add-ivrCampaign-button{position:fixed;bottom:8px;right:8px;padding:0}#ivrCampaigns #upload-ivrCampaign-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.queueCampaign-dialog{max-width:720px;width:720px}md-dialog.queueCampaign-dialog md-dialog-content{display:block;position:relative}md-dialog.queueCampaign-dialog md-toolbar .title{font-size:17px}md-dialog.queueCampaign-dialog md-input-container textarea{min-height:150px}md-dialog.queueCampaign-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.queueCampaign-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.queueCampaign-dialog .date-container{padding:16px 0 24px 0}md-dialog.queueCampaign-dialog .error-list{font-size:13px}md-dialog.queueCampaign-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.queueCampaign-dialog .error-list .error .message{font-weight:500}md-dialog.queueCampaign-dialog .error-list .error .md-button{margin:0}md-dialog.queueCampaign-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.queueCampaign-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.hopper-dialog{max-width:720px;width:720px}md-dialog.hopper-dialog md-dialog-content{display:block;position:relative}md-dialog.hopper-dialog md-toolbar .title{font-size:17px}md-dialog.hopper-dialog md-input-container textarea{min-height:150px}md-dialog.hopper-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.hopper-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.hopper-dialog .date-container{padding:16px 0 24px 0}md-dialog.hopper-dialog .error-list{font-size:13px}md-dialog.hopper-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.hopper-dialog .error-list .error .message{font-weight:500}md-dialog.hopper-dialog .error-list .error .md-button{margin:0}md-dialog.hopper-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.hopper-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#motiondialer-queueCampaign .header{height:76px;min-height:76px;max-height:76px}#motiondialer-queueCampaign .header .goto-queueCampaigns-button{margin-right:16px}#motiondialer-queueCampaign .header .queueCampaign-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#motiondialer-queueCampaign .header .queueCampaign-image img{height:100%;width:auto;max-width:none}#motiondialer-queueCampaign .header .subtitle{margin:6px 0 0 0}#motiondialer-queueCampaign .queueCampaign-detail-form-container{padding:24px;margin-bottom:24px}#motiondialer-queueCampaign .queueCampaign-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#motiondialer-queueCampaign .queueCampaign-detail-form-container .handle{cursor:move}#motiondialer-queueCampaign .queueCampaign-detail-form-container md-input-container md-switch{margin:0!important}#motiondialer-queueCampaign .queueCampaign-detail-form-container #queueCampaign-image-uploader{position:relative}#motiondialer-queueCampaign .queueCampaign-detail-form-container #queueCampaign-image-uploader.dropping .drop-text{display:flex}#motiondialer-queueCampaign .queueCampaign-detail-form-container #queueCampaign-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#motiondialer-queueCampaign .queueCampaign-detail-form-container #queueCampaign-image-uploader .upload-button{margin-bottom:16px}#motiondialer-queueCampaign .queueCampaign-detail-form-container #queueCampaign-image-uploader .queueCampaign-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#motiondialer-queueCampaign .queueCampaign-detail-form-container #queueCampaign-image-uploader .queueCampaign-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#motiondialer-queueCampaign .queueCampaign-detail-form-container #queueCampaign-image-uploader .queueCampaign-image .media{max-height:100%}#motiondialer-queueCampaign md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#motiondialer-queueCampaign md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#motiondialer-queueCampaign md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#motiondialer-queueCampaign md-table-container.font-size-12 td.md-cell{font-size:12px!important}#queueCampaigns{position:relative}#queueCampaigns>.header{height:76px;min-height:76px;max-height:76px}#queueCampaigns>.header .logo .logo-icon{margin:0 16px 0 0}#queueCampaigns>.header .logo .logo-text{font-size:24px}#queueCampaigns>.header md-icon{color:#fff}#queueCampaigns>.header .search-input-wrapper{position:relative}#queueCampaigns>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#queueCampaigns>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#queueCampaigns>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#queueCampaigns>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#queueCampaigns>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#queueCampaigns>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#queueCampaigns>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#queueCampaigns>.header.selected-bar .close-button-wrapper{width:244px}#queueCampaigns>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#queueCampaigns>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#queueCampaigns>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#queueCampaigns #add-queueCampaign-button{position:fixed;bottom:8px;right:8px;padding:0}#queueCampaigns #upload-queueCampaign-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.predictive-dialog{max-width:720px;width:720px}md-dialog.predictive-dialog md-dialog-content{display:block;position:relative}md-dialog.predictive-dialog md-toolbar .title{font-size:17px}md-dialog.predictive-dialog md-input-container textarea{min-height:150px}md-dialog.predictive-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.predictive-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.predictive-dialog .date-container{padding:16px 0 24px 0}md-dialog.predictive-dialog .error-list{font-size:13px}md-dialog.predictive-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.predictive-dialog .error-list .error .message{font-weight:500}md-dialog.predictive-dialog .error-list .error .md-button{margin:0}md-dialog.predictive-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.predictive-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#realtime>.content .blink{animation:blinker 2s linear infinite}#realtime>.content .avatar-wrapper{position:relative}#realtime>.content .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .search-input-wrapper{position:relative;margin-left:20px}#realtime>.content .search-input-wrapper label{padding:6px;cursor:pointer}#realtime>.content .search-input-wrapper md-input-container{padding-top:20px}#realtime>.content .main .labels{padding:8px 16px}#realtime>.content .main .labels .label{margin:0 0 2px 4px;padding:2px 5px;font-size:11px;white-space:nowrap;border-radius:2px}#realtime>.content .main .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .main .avatar-wrapper{position:relative}#realtime>.content .main .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .custom-column{padding:0 24px!important}@keyframes blinker{50%{opacity:0}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.openchannelAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelCannedAnswer-dialog{max-width:720px;width:720px}md-dialog.openchannelCannedAnswer-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelCannedAnswer-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelCannedAnswer-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelCannedAnswer-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.openchannelCannedAnswer-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.openchannelCannedAnswer-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelCannedAnswer-dialog .error-list{font-size:13px}md-dialog.openchannelCannedAnswer-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelCannedAnswer-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelCannedAnswer-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelCannedAnswer-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelCannedAnswer-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#openchannel-openchannelAccount .header{height:76px;min-height:76px;max-height:76px}#openchannel-openchannelAccount .header .goto-openchannelAccounts-button{margin-right:16px}#openchannel-openchannelAccount .header .openchannelAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#openchannel-openchannelAccount .header .openchannelAccount-image img{height:100%;width:auto;max-width:none}#openchannel-openchannelAccount .header .subtitle{margin:6px 0 0 0}#openchannel-openchannelAccount .openchannelAccount-detail-form-container{padding:24px;margin-bottom:24px}#openchannel-openchannelAccount .openchannelAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#openchannel-openchannelAccount .openchannelAccount-detail-form-container .handle{cursor:move}#openchannel-openchannelAccount .openchannelAccount-detail-form-container md-input-container md-switch{margin:0!important}#openchannel-openchannelAccount .openchannelAccount-detail-form-container #openchannelAccount-image-uploader{position:relative}#openchannel-openchannelAccount .openchannelAccount-detail-form-container #openchannelAccount-image-uploader.dropping .drop-text{display:flex}#openchannel-openchannelAccount .openchannelAccount-detail-form-container #openchannelAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#openchannel-openchannelAccount .openchannelAccount-detail-form-container #openchannelAccount-image-uploader .upload-button{margin-bottom:16px}#openchannel-openchannelAccount .openchannelAccount-detail-form-container #openchannelAccount-image-uploader .openchannelAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#openchannel-openchannelAccount .openchannelAccount-detail-form-container #openchannelAccount-image-uploader .openchannelAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#openchannel-openchannelAccount .openchannelAccount-detail-form-container #openchannelAccount-image-uploader .openchannelAccount-image .media{max-height:100%}#openchannel-openchannelAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#openchannel-openchannelAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#openchannel-openchannelAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#openchannel-openchannelAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}#openchannelAccounts{position:relative}#openchannelAccounts>.header{height:76px;min-height:76px;max-height:76px}#openchannelAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#openchannelAccounts>.header .logo .logo-text{font-size:24px}#openchannelAccounts>.header md-icon{color:#fff}#openchannelAccounts>.header .search-input-wrapper{position:relative}#openchannelAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#openchannelAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#openchannelAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#openchannelAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#openchannelAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#openchannelAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#openchannelAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#openchannelAccounts>.header.selected-bar .close-button-wrapper{width:244px}#openchannelAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#openchannelAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#openchannelAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#openchannelAccounts #add-openchannelAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#openchannelAccounts #upload-openchannelAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.openchannelQueue-dialog{max-width:720px;width:720px}md-dialog.openchannelQueue-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelQueue-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelQueue-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelQueue-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.openchannelQueue-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.openchannelQueue-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelQueue-dialog .error-list{font-size:13px}md-dialog.openchannelQueue-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelQueue-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelQueue-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelQueue-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelQueue-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#openchannel-openchannelQueue .header{height:76px;min-height:76px;max-height:76px}#openchannel-openchannelQueue .header .goto-openchannelQueues-button{margin-right:16px}#openchannel-openchannelQueue .header .openchannelQueue-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#openchannel-openchannelQueue .header .openchannelQueue-image img{height:100%;width:auto;max-width:none}#openchannel-openchannelQueue .header .subtitle{margin:6px 0 0 0}#openchannel-openchannelQueue .openchannelQueue-detail-form-container{padding:24px;margin-bottom:24px}#openchannel-openchannelQueue .openchannelQueue-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#openchannel-openchannelQueue .openchannelQueue-detail-form-container .handle{cursor:move}#openchannel-openchannelQueue .openchannelQueue-detail-form-container md-input-container md-switch{margin:0!important}#openchannel-openchannelQueue .openchannelQueue-detail-form-container #openchannelQueue-image-uploader{position:relative}#openchannel-openchannelQueue .openchannelQueue-detail-form-container #openchannelQueue-image-uploader.dropping .drop-text{display:flex}#openchannel-openchannelQueue .openchannelQueue-detail-form-container #openchannelQueue-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#openchannel-openchannelQueue .openchannelQueue-detail-form-container #openchannelQueue-image-uploader .upload-button{margin-bottom:16px}#openchannel-openchannelQueue .openchannelQueue-detail-form-container #openchannelQueue-image-uploader .openchannelQueue-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#openchannel-openchannelQueue .openchannelQueue-detail-form-container #openchannelQueue-image-uploader .openchannelQueue-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#openchannel-openchannelQueue .openchannelQueue-detail-form-container #openchannelQueue-image-uploader .openchannelQueue-image .media{max-height:100%}#openchannel-openchannelQueue md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#openchannel-openchannelQueue md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#openchannel-openchannelQueue md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#openchannel-openchannelQueue md-table-container.font-size-12 td.md-cell{font-size:12px!important}#openchannelQueues{position:relative}#openchannelQueues>.header{height:76px;min-height:76px;max-height:76px}#openchannelQueues>.header .logo .logo-icon{margin:0 16px 0 0}#openchannelQueues>.header .logo .logo-text{font-size:24px}#openchannelQueues>.header md-icon{color:#fff}#openchannelQueues>.header .search-input-wrapper{position:relative}#openchannelQueues>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#openchannelQueues>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#openchannelQueues>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#openchannelQueues>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#openchannelQueues>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#openchannelQueues>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#openchannelQueues>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#openchannelQueues>.header.selected-bar .close-button-wrapper{width:244px}#openchannelQueues>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#openchannelQueues>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#openchannelQueues>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#openchannelQueues #add-openchannelQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#openchannelQueues #upload-openchannelQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#realtime>.content .blink{animation:blinker 2s linear infinite}#realtime>.content .avatar-wrapper{position:relative}#realtime>.content .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .search-input-wrapper{position:relative;margin-left:20px}#realtime>.content .search-input-wrapper label{padding:6px;cursor:pointer}#realtime>.content .search-input-wrapper md-input-container{padding-top:20px}#realtime>.content .main .labels{padding:8px 16px}#realtime>.content .main .labels .label{margin:0 0 2px 4px;padding:2px 5px;font-size:11px;white-space:nowrap;border-radius:2px}#realtime>.content .main .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .main .avatar-wrapper{position:relative}#realtime>.content .main .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .custom-column{padding:0 24px!important}@keyframes blinker{50%{opacity:0}}#plugin .filter-header{background-image:url(/assets/images/backgrounds/header-bg.png);color:#fff}#cloudProviders{position:relative}#cloudProviders>.header{height:76px;min-height:76px;max-height:76px}#cloudProviders>.header .logo .logo-icon{margin:0 16px 0 0}#cloudProviders>.header .logo .logo-text{font-size:24px}#cloudProviders>.header md-icon{color:#fff}#cloudProviders>.header .search-input-wrapper{position:relative}#cloudProviders>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#cloudProviders>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#cloudProviders>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#cloudProviders>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#cloudProviders>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#cloudProviders>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#cloudProviders>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#cloudProviders>.header.selected-bar .close-button-wrapper{width:244px}#cloudProviders>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#cloudProviders>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#cloudProviders>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#cloudProviders #add-cloudProvider-button{position:fixed;bottom:8px;right:8px;padding:0}#cloudProviders #upload-cloudProvider-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.cloudProvider-dialog{max-width:720px;width:720px}md-dialog.cloudProvider-dialog md-dialog-content{display:block;position:relative}md-dialog.cloudProvider-dialog md-toolbar .title{font-size:17px}md-dialog.cloudProvider-dialog md-input-container textarea{min-height:150px}md-dialog.cloudProvider-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.cloudProvider-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.cloudProvider-dialog .date-container{padding:16px 0 24px 0}md-dialog.cloudProvider-dialog .error-list{font-size:13px}md-dialog.cloudProvider-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.cloudProvider-dialog .error-list .error .message{font-weight:500}md-dialog.cloudProvider-dialog .error-list .error .md-button{margin:0}md-dialog.cloudProvider-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.cloudProvider-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.customization-dialog{max-width:720px;width:720px}md-dialog.customization-dialog md-dialog-content{display:block;position:relative}md-dialog.customization-dialog md-toolbar .title{font-size:17px}md-dialog.customization-dialog md-input-container textarea{min-height:150px}md-dialog.customization-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.customization-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.customization-dialog .date-container{padding:16px 0 24px 0}md-dialog.customization-dialog .error-list{font-size:13px}md-dialog.customization-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.customization-dialog .error-list .error .message{font-weight:500}md-dialog.customization-dialog .error-list .error .md-button{margin:0}md-dialog.customization-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.customization-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#customizations{position:relative}#customizations>.header{height:76px;min-height:76px;max-height:76px}#customizations>.header .logo .logo-icon{margin:0 16px 0 0}#customizations>.header .logo .logo-text{font-size:24px}#customizations>.header md-icon{color:#fff}#customizations>.header .search-input-wrapper{position:relative}#customizations>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#customizations>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#customizations>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#customizations>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#customizations>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#customizations>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#customizations>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#customizations>.header.selected-bar .close-button-wrapper{width:244px}#customizations>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#customizations>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#customizations>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#customizations>.content .customization-detail-form-container{padding:24px;margin-bottom:24px}#customizations>.content .customization-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#customizations>.content .customization-detail-form-container .handle{cursor:move}#customizations>.content .customization-detail-form-container md-input-container md-switch{margin:0!important}#customizations>.content .customization-detail-form-container #customization-image-uploader{position:relative}#customizations>.content .customization-detail-form-container #customization-image-uploader.dropping .drop-text{display:flex}#customizations>.content .customization-detail-form-container #customization-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#customizations>.content .customization-detail-form-container #customization-image-uploader .upload-button{margin-bottom:16px}#customizations>.content .customization-detail-form-container #customization-image-uploader .customization-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#customizations>.content .customization-detail-form-container #customization-image-uploader .customization-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#customizations>.content .customization-detail-form-container #customization-image-uploader .customization-image .media{max-height:100%}#customizations #add-customization-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.general-dialog{max-width:720px;width:720px}md-dialog.general-dialog md-dialog-content{display:block;position:relative}md-dialog.general-dialog md-toolbar .title{font-size:17px}md-dialog.general-dialog md-input-container textarea{min-height:150px}md-dialog.general-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.general-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.general-dialog .date-container{padding:16px 0 24px 0}md-dialog.general-dialog .error-list{font-size:13px}md-dialog.general-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.general-dialog .error-list .error .message{font-weight:500}md-dialog.general-dialog .error-list .error .md-button{margin:0}md-dialog.general-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.general-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#generals{position:relative}#generals>.header{height:76px;min-height:76px;max-height:76px}#generals>.header .logo .logo-icon{margin:0 16px 0 0}#generals>.header .logo .logo-text{font-size:24px}#generals>.header md-icon{color:#fff}#generals>.header .search-input-wrapper{position:relative}#generals>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#generals>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#generals>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#generals>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#generals>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#generals>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#generals>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#generals>.header.selected-bar .close-button-wrapper{width:244px}#generals>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#generals>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#generals>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#generals>.content .general-detail-form-container{padding:24px;margin-bottom:24px}#generals>.content .general-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#generals>.content .general-detail-form-container .handle{cursor:move}#generals>.content .general-detail-form-container md-input-container md-switch{margin:0!important}#generals>.content .general-detail-form-container #general-image-uploader{position:relative}#generals>.content .general-detail-form-container #general-image-uploader.dropping .drop-text{display:flex}#generals>.content .general-detail-form-container #general-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#generals>.content .general-detail-form-container #general-image-uploader .upload-button{margin-bottom:16px}#generals>.content .general-detail-form-container #general-image-uploader .general-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#generals>.content .general-detail-form-container #general-image-uploader .general-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#generals>.content .general-detail-form-container #general-image-uploader .general-image .media{max-height:100%}#generals #add-general-button{position:fixed;bottom:8px;right:8px;padding:0}#license{position:relative}#license .blink{animation:blinker 2s linear infinite}#license>.header{height:76px;min-height:76px;max-height:76px}#license>.header .logo .logo-icon{margin:0 16px 0 0}#license>.header .logo .logo-text{font-size:24px}#license>.header md-icon{color:#fff}#license>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#license>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#license>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#license>.content .badge{position:absolute;top:0;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);font-size:11px;font-weight:500;padding:6px 8px}md-dialog.request-dialog{max-width:720px;width:720px}md-dialog.request-dialog md-dialog-content{display:block;position:relative}md-dialog.request-dialog md-toolbar .title{font-size:17px}md-dialog.request-dialog md-input-container textarea{min-height:150px}md-dialog.request-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.request-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.request-dialog .date-container{padding:16px 0 24px 0}md-dialog.request-dialog .error-list{font-size:13px}md-dialog.request-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.request-dialog .error-list .error .message{font-weight:500}md-dialog.request-dialog .error-list .error .md-button{margin:0}md-dialog.request-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.request-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.update-dialog{max-width:720px;width:720px}md-dialog.update-dialog md-dialog-content{display:block;position:relative}md-dialog.update-dialog md-toolbar .title{font-size:17px}md-dialog.update-dialog md-input-container textarea{min-height:60px}md-dialog.update-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.update-dialog .error-list{font-size:13px}md-dialog.update-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.update-dialog .error-list .error .message{font-weight:500}md-dialog.update-dialog .error-list .error .md-button{margin:0}md-dialog.update-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.update-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.network-dialog{max-width:720px;width:720px}md-dialog.network-dialog md-dialog-content{display:block;position:relative}md-dialog.network-dialog md-toolbar .title{font-size:17px}md-dialog.network-dialog md-input-container textarea{min-height:150px}md-dialog.network-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.network-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.network-dialog .date-container{padding:16px 0 24px 0}md-dialog.network-dialog .error-list{font-size:13px}md-dialog.network-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.network-dialog .error-list .error .message{font-weight:500}md-dialog.network-dialog .error-list .error .md-button{margin:0}md-dialog.network-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.network-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#networks{position:relative}#networks>.header{height:76px;min-height:76px;max-height:76px}#networks>.header .logo .logo-icon{margin:0 16px 0 0}#networks>.header .logo .logo-text{font-size:24px}#networks>.header md-icon{color:#fff}#networks>.header .search-input-wrapper{position:relative}#networks>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#networks>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#networks>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#networks>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#networks>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#networks>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#networks>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#networks>.header.selected-bar .close-button-wrapper{width:244px}#networks>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#networks>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#networks>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#networks #add-network-button{position:fixed;bottom:8px;right:8px;padding:0}#networks #upload-network-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.smtp-dialog{max-width:720px;width:720px}md-dialog.smtp-dialog md-dialog-content{display:block;position:relative}md-dialog.smtp-dialog md-toolbar .title{font-size:17px}md-dialog.smtp-dialog md-input-container textarea{min-height:150px}md-dialog.smtp-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.smtp-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.smtp-dialog .date-container{padding:16px 0 24px 0}md-dialog.smtp-dialog .error-list{font-size:13px}md-dialog.smtp-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smtp-dialog .error-list .error .message{font-weight:500}md-dialog.smtp-dialog .error-list .error .md-button{margin:0}md-dialog.smtp-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smtp-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#smtps{position:relative}#smtps>.header{height:76px;min-height:76px;max-height:76px}#smtps>.header .logo .logo-icon{margin:0 16px 0 0}#smtps>.header .logo .logo-text{font-size:24px}#smtps>.header md-icon{color:#fff}#smtps>.header .search-input-wrapper{position:relative}#smtps>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#smtps>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#smtps>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#smtps>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#smtps>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#smtps>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#smtps>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#smtps>.header.selected-bar .close-button-wrapper{width:244px}#smtps>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#smtps>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#smtps>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#smtps>.content .smtp-detail-form-container{padding:24px;margin-bottom:24px}#smtps>.content .smtp-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#smtps>.content .smtp-detail-form-container .handle{cursor:move}#smtps>.content .smtp-detail-form-container md-input-container md-switch{margin:0!important}#smtps>.content .smtp-detail-form-container #smtp-image-uploader{position:relative}#smtps>.content .smtp-detail-form-container #smtp-image-uploader.dropping .drop-text{display:flex}#smtps>.content .smtp-detail-form-container #smtp-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#smtps>.content .smtp-detail-form-container #smtp-image-uploader .upload-button{margin-bottom:16px}#smtps>.content .smtp-detail-form-container #smtp-image-uploader .smtp-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#smtps>.content .smtp-detail-form-container #smtp-image-uploader .smtp-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#smtps>.content .smtp-detail-form-container #smtp-image-uploader .smtp-image .media{max-height:100%}#smtps #add-smtp-button{position:fixed;bottom:8px;right:8px;padding:0}#system>.header{height:76px;min-height:76px;max-height:76px}#system>.header .logo .logo-icon{margin:0 16px 0 0}#system>.header .logo .logo-text{font-size:24px}#system>.header md-icon{color:#fff}#system .system-detail-form-container{padding:24px;margin-bottom:24px}#system .system-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#system .system-detail-form-container .handle{cursor:move}#system .system-detail-form-container md-input-container md-switch{margin:0!important}#system .system-detail-form-container #system-image-uploader{position:relative}#system .system-detail-form-container #system-image-uploader.dropping .drop-text{display:flex}#system .system-detail-form-container #system-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#system .system-detail-form-container #system-image-uploader .upload-button{margin-bottom:16px}#system .system-detail-form-container #system-image-uploader .system-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#system .system-detail-form-container #system-image-uploader .system-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#system .system-detail-form-container #system-image-uploader .system-image .media{max-height:100%}#updates{position:relative}#updates>.header{height:76px;min-height:76px;max-height:76px}#updates>.header .logo .logo-icon{margin:0 16px 0 0}#updates>.header .logo .logo-text{font-size:24px}#updates>.header md-icon{color:#fff}#updates>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#updates>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#updates>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#realtime>.content .blink{animation:blinker 2s linear infinite}#realtime>.content .avatar-wrapper{position:relative}#realtime>.content .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .search-input-wrapper{position:relative;margin-left:20px}#realtime>.content .search-input-wrapper label{padding:6px;cursor:pointer}#realtime>.content .search-input-wrapper md-input-container{padding-top:20px}#realtime>.content .main .labels{padding:8px 16px}#realtime>.content .main .labels .label{margin:0 0 2px 4px;padding:2px 5px;font-size:11px;white-space:nowrap;border-radius:2px}#realtime>.content .main .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .main .avatar-wrapper{position:relative}#realtime>.content .main .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .custom-column{padding:0 24px!important}@keyframes blinker{50%{opacity:0}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.smsAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsCannedAnswer-dialog{max-width:720px;width:720px}md-dialog.smsCannedAnswer-dialog md-dialog-content{display:block;position:relative}md-dialog.smsCannedAnswer-dialog md-toolbar .title{font-size:17px}md-dialog.smsCannedAnswer-dialog md-input-container textarea{min-height:150px}md-dialog.smsCannedAnswer-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.smsCannedAnswer-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.smsCannedAnswer-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsCannedAnswer-dialog .error-list{font-size:13px}md-dialog.smsCannedAnswer-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsCannedAnswer-dialog .error-list .error .message{font-weight:500}md-dialog.smsCannedAnswer-dialog .error-list .error .md-button{margin:0}md-dialog.smsCannedAnswer-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsCannedAnswer-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#sms-smsAccount .header{height:76px;min-height:76px;max-height:76px}#sms-smsAccount .header .goto-smsAccounts-button{margin-right:16px}#sms-smsAccount .header .smsAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#sms-smsAccount .header .smsAccount-image img{height:100%;width:auto;max-width:none}#sms-smsAccount .header .subtitle{margin:6px 0 0 0}#sms-smsAccount .smsAccount-detail-form-container{padding:24px;margin-bottom:24px}#sms-smsAccount .smsAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#sms-smsAccount .smsAccount-detail-form-container .handle{cursor:move}#sms-smsAccount .smsAccount-detail-form-container md-input-container md-switch{margin:0!important}#sms-smsAccount .smsAccount-detail-form-container #smsAccount-image-uploader{position:relative}#sms-smsAccount .smsAccount-detail-form-container #smsAccount-image-uploader.dropping .drop-text{display:flex}#sms-smsAccount .smsAccount-detail-form-container #smsAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#sms-smsAccount .smsAccount-detail-form-container #smsAccount-image-uploader .upload-button{margin-bottom:16px}#sms-smsAccount .smsAccount-detail-form-container #smsAccount-image-uploader .smsAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#sms-smsAccount .smsAccount-detail-form-container #smsAccount-image-uploader .smsAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#sms-smsAccount .smsAccount-detail-form-container #smsAccount-image-uploader .smsAccount-image .media{max-height:100%}#sms-smsAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#sms-smsAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#sms-smsAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#sms-smsAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}#smsAccounts{position:relative}#smsAccounts>.header{height:76px;min-height:76px;max-height:76px}#smsAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#smsAccounts>.header .logo .logo-text{font-size:24px}#smsAccounts>.header md-icon{color:#fff}#smsAccounts>.header .search-input-wrapper{position:relative}#smsAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#smsAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#smsAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#smsAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#smsAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#smsAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#smsAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#smsAccounts>.header.selected-bar .close-button-wrapper{width:244px}#smsAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#smsAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#smsAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#smsAccounts #add-smsAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#smsAccounts #upload-smsAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.smsQueue-dialog{max-width:720px;width:720px}md-dialog.smsQueue-dialog md-dialog-content{display:block;position:relative}md-dialog.smsQueue-dialog md-toolbar .title{font-size:17px}md-dialog.smsQueue-dialog md-input-container textarea{min-height:150px}md-dialog.smsQueue-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.smsQueue-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.smsQueue-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsQueue-dialog .error-list{font-size:13px}md-dialog.smsQueue-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsQueue-dialog .error-list .error .message{font-weight:500}md-dialog.smsQueue-dialog .error-list .error .md-button{margin:0}md-dialog.smsQueue-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsQueue-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#sms-smsQueue .header{height:76px;min-height:76px;max-height:76px}#sms-smsQueue .header .goto-smsQueues-button{margin-right:16px}#sms-smsQueue .header .smsQueue-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#sms-smsQueue .header .smsQueue-image img{height:100%;width:auto;max-width:none}#sms-smsQueue .header .subtitle{margin:6px 0 0 0}#sms-smsQueue .smsQueue-detail-form-container{padding:24px;margin-bottom:24px}#sms-smsQueue .smsQueue-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#sms-smsQueue .smsQueue-detail-form-container .handle{cursor:move}#sms-smsQueue .smsQueue-detail-form-container md-input-container md-switch{margin:0!important}#sms-smsQueue .smsQueue-detail-form-container #smsQueue-image-uploader{position:relative}#sms-smsQueue .smsQueue-detail-form-container #smsQueue-image-uploader.dropping .drop-text{display:flex}#sms-smsQueue .smsQueue-detail-form-container #smsQueue-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#sms-smsQueue .smsQueue-detail-form-container #smsQueue-image-uploader .upload-button{margin-bottom:16px}#sms-smsQueue .smsQueue-detail-form-container #smsQueue-image-uploader .smsQueue-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#sms-smsQueue .smsQueue-detail-form-container #smsQueue-image-uploader .smsQueue-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#sms-smsQueue .smsQueue-detail-form-container #smsQueue-image-uploader .smsQueue-image .media{max-height:100%}#sms-smsQueue md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#sms-smsQueue md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#sms-smsQueue md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#sms-smsQueue md-table-container.font-size-12 td.md-cell{font-size:12px!important}#smsQueues{position:relative}#smsQueues>.header{height:76px;min-height:76px;max-height:76px}#smsQueues>.header .logo .logo-icon{margin:0 16px 0 0}#smsQueues>.header .logo .logo-text{font-size:24px}#smsQueues>.header md-icon{color:#fff}#smsQueues>.header .search-input-wrapper{position:relative}#smsQueues>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#smsQueues>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#smsQueues>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#smsQueues>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#smsQueues>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#smsQueues>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#smsQueues>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#smsQueues>.header.selected-bar .close-button-wrapper{width:244px}#smsQueues>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#smsQueues>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#smsQueues>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#smsQueues #add-smsQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#smsQueues #upload-smsQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#agents{position:relative}#agents>.header{height:76px;min-height:76px;max-height:76px}#agents>.header .logo .logo-icon{margin:0 16px 0 0}#agents>.header .logo .logo-text{font-size:24px}#agents>.header md-icon{color:#fff}#agents>.header .search-input-wrapper{position:relative}#agents>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#agents>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#agents>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#agents>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#agents>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#agents>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#agents>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#agents>.header.selected-bar .close-button-wrapper{width:244px}#agents>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#agents>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#agents>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#agents #add-agent-button{position:fixed;bottom:8px;right:8px;padding:0}#agents #upload-agent-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.agent-dialog{max-width:720px;width:720px}md-dialog.agent-dialog md-dialog-content{display:block;position:relative}md-dialog.agent-dialog md-toolbar .title{font-size:17px}md-dialog.agent-dialog md-input-container textarea{min-height:150px}md-dialog.agent-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.agent-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.agent-dialog .date-container{padding:16px 0 24px 0}md-dialog.agent-dialog .error-list{font-size:13px}md-dialog.agent-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.agent-dialog .error-list .error .message{font-weight:500}md-dialog.agent-dialog .error-list .error .md-button{margin:0}md-dialog.agent-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.agent-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#staff-agent .header{height:76px;min-height:76px;max-height:76px}#staff-agent .header .goto-agents-button{margin-right:16px}#staff-agent .header .agent-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#staff-agent .header .agent-image img{height:100%;width:auto;max-width:none}#staff-agent .header .subtitle{margin:6px 0 0 0}#staff-agent .agent-detail-form-container{padding:24px;margin-bottom:24px}#staff-agent .agent-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#staff-agent .agent-detail-form-container .handle{cursor:move}#staff-agent .agent-detail-form-container md-input-container md-switch{margin:0!important}#staff-agent .agent-detail-form-container #agent-image-uploader{position:relative}#staff-agent .agent-detail-form-container #agent-image-uploader.dropping .drop-text{display:flex}#staff-agent .agent-detail-form-container #agent-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#staff-agent .agent-detail-form-container #agent-image-uploader .upload-button{margin-bottom:16px}#staff-agent .agent-detail-form-container #agent-image-uploader .agent-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#staff-agent .agent-detail-form-container #agent-image-uploader .agent-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#staff-agent .agent-detail-form-container #agent-image-uploader .agent-image .media{max-height:100%}#staff-agent md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#staff-agent md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#staff-agent md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#staff-agent md-table-container.font-size-12 td.md-cell{font-size:12px!important}md-dialog.team-dialog{max-width:720px;width:720px}md-dialog.team-dialog md-dialog-content{display:block;position:relative}md-dialog.team-dialog md-toolbar .title{font-size:17px}md-dialog.team-dialog md-input-container textarea{min-height:150px}md-dialog.team-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.team-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.team-dialog .date-container{padding:16px 0 24px 0}md-dialog.team-dialog .error-list{font-size:13px}md-dialog.team-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.team-dialog .error-list .error .message{font-weight:500}md-dialog.team-dialog .error-list .error .md-button{margin:0}md-dialog.team-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.team-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#teams{position:relative}#teams>.header{height:76px;min-height:76px;max-height:76px}#teams>.header .logo .logo-icon{margin:0 16px 0 0}#teams>.header .logo .logo-text{font-size:24px}#teams>.header md-icon{color:#fff}#teams>.header .search-input-wrapper{position:relative}#teams>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#teams>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#teams>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#teams>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#teams>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#teams>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#teams>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#teams>.header.selected-bar .close-button-wrapper{width:244px}#teams>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#teams>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#teams>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#teams #add-team-button{position:fixed;bottom:8px;right:8px;padding:0}#teams #upload-team-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.telephone-dialog{max-width:720px;width:720px}md-dialog.telephone-dialog md-dialog-content{display:block;position:relative}md-dialog.telephone-dialog md-toolbar .title{font-size:17px}md-dialog.telephone-dialog md-input-container textarea{min-height:150px}md-dialog.telephone-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.telephone-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.telephone-dialog .date-container{padding:16px 0 24px 0}md-dialog.telephone-dialog .error-list{font-size:13px}md-dialog.telephone-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.telephone-dialog .error-list .error .message{font-weight:500}md-dialog.telephone-dialog .error-list .error .md-button{margin:0}md-dialog.telephone-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.telephone-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#staff-telephone .header{height:76px;min-height:76px;max-height:76px}#staff-telephone .header .goto-telephones-button{margin-right:16px}#staff-telephone .header .telephone-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#staff-telephone .header .telephone-image img{height:100%;width:auto;max-width:none}#staff-telephone .header .subtitle{margin:6px 0 0 0}#staff-telephone .telephone-detail-form-container{padding:24px;margin-bottom:24px}#staff-telephone .telephone-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#staff-telephone .telephone-detail-form-container .handle{cursor:move}#staff-telephone .telephone-detail-form-container md-input-container md-switch{margin:0!important}#staff-telephone .telephone-detail-form-container #telephone-image-uploader{position:relative}#staff-telephone .telephone-detail-form-container #telephone-image-uploader.dropping .drop-text{display:flex}#staff-telephone .telephone-detail-form-container #telephone-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#staff-telephone .telephone-detail-form-container #telephone-image-uploader .upload-button{margin-bottom:16px}#staff-telephone .telephone-detail-form-container #telephone-image-uploader .telephone-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#staff-telephone .telephone-detail-form-container #telephone-image-uploader .telephone-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#staff-telephone .telephone-detail-form-container #telephone-image-uploader .telephone-image .media{max-height:100%}#staff-telephone md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#staff-telephone md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#staff-telephone md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#staff-telephone md-table-container.font-size-12 td.md-cell{font-size:12px!important}#telephones{position:relative}#telephones>.header{height:76px;min-height:76px;max-height:76px}#telephones>.header .logo .logo-icon{margin:0 16px 0 0}#telephones>.header .logo .logo-text{font-size:24px}#telephones>.header md-icon{color:#fff}#telephones>.header .search-input-wrapper{position:relative}#telephones>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#telephones>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#telephones>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#telephones>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#telephones>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#telephones>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#telephones>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#telephones>.header.selected-bar .close-button-wrapper{width:244px}#telephones>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#telephones>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#telephones>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#telephones #add-telephone-button{position:fixed;bottom:8px;right:8px;padding:0}#telephones #upload-telephone-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.userProfile-dialog{max-width:720px;width:720px}md-dialog.userProfile-dialog md-dialog-content{display:block;position:relative}md-dialog.userProfile-dialog md-toolbar .title{font-size:17px}md-dialog.userProfile-dialog md-input-container textarea{min-height:150px}md-dialog.userProfile-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.userProfile-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.userProfile-dialog .date-container{padding:16px 0 24px 0}md-dialog.userProfile-dialog .error-list{font-size:13px}md-dialog.userProfile-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.userProfile-dialog .error-list .error .message{font-weight:500}md-dialog.userProfile-dialog .error-list .error .md-button{margin:0}md-dialog.userProfile-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.userProfile-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#staff-userProfile .header{height:76px;min-height:76px;max-height:76px}#staff-userProfile .header .goto-userProfiles-button{margin-right:16px}#staff-userProfile .header .userProfile-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#staff-userProfile .header .userProfile-image img{height:100%;width:auto;max-width:none}#staff-userProfile .header .subtitle{margin:6px 0 0 0}#staff-userProfile .userProfile-detail-form-container{padding:24px;margin-bottom:24px}#staff-userProfile .userProfile-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#staff-userProfile .userProfile-detail-form-container .handle{cursor:move}#staff-userProfile .userProfile-detail-form-container md-input-container md-switch{margin:0!important}#staff-userProfile .userProfile-detail-form-container #userProfile-image-uploader{position:relative}#staff-userProfile .userProfile-detail-form-container #userProfile-image-uploader.dropping .drop-text{display:flex}#staff-userProfile .userProfile-detail-form-container #userProfile-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#staff-userProfile .userProfile-detail-form-container #userProfile-image-uploader .upload-button{margin-bottom:16px}#staff-userProfile .userProfile-detail-form-container #userProfile-image-uploader .userProfile-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#staff-userProfile .userProfile-detail-form-container #userProfile-image-uploader .userProfile-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#staff-userProfile .userProfile-detail-form-container #userProfile-image-uploader .userProfile-image .media{max-height:100%}#staff-userProfile md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#staff-userProfile md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#staff-userProfile md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#staff-userProfile md-table-container.font-size-12 td.md-cell{font-size:12px!important}#userProfiles{position:relative}#userProfiles>.header{height:76px;min-height:76px;max-height:76px}#userProfiles>.header .logo .logo-icon{margin:0 16px 0 0}#userProfiles>.header .logo .logo-text{font-size:24px}#userProfiles>.header md-icon{color:#fff}#userProfiles>.header .search-input-wrapper{position:relative}#userProfiles>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#userProfiles>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#userProfiles>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#userProfiles>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#userProfiles>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#userProfiles>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#userProfiles>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#userProfiles>.header.selected-bar .close-button-wrapper{width:244px}#userProfiles>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#userProfiles>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#userProfiles>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#userProfiles #add-userProfile-button{position:fixed;bottom:8px;right:8px;padding:0}#userProfiles #upload-userProfile-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.user-dialog{max-width:720px;width:720px}md-dialog.user-dialog md-dialog-content{display:block;position:relative}md-dialog.user-dialog md-toolbar .title{font-size:17px}md-dialog.user-dialog md-input-container textarea{min-height:150px}md-dialog.user-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.user-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.user-dialog .date-container{padding:16px 0 24px 0}md-dialog.user-dialog .error-list{font-size:13px}md-dialog.user-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.user-dialog .error-list .error .message{font-weight:500}md-dialog.user-dialog .error-list .error .md-button{margin:0}md-dialog.user-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.user-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#staff-user .header{height:76px;min-height:76px;max-height:76px}#staff-user .header .goto-users-button{margin-right:16px}#staff-user .header .user-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#staff-user .header .user-image img{height:100%;width:auto;max-width:none}#staff-user .header .subtitle{margin:6px 0 0 0}#staff-user .user-detail-form-container{padding:24px;margin-bottom:24px}#staff-user .user-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#staff-user .user-detail-form-container .handle{cursor:move}#staff-user .user-detail-form-container md-input-container md-switch{margin:0!important}#staff-user .user-detail-form-container #user-image-uploader{position:relative}#staff-user .user-detail-form-container #user-image-uploader.dropping .drop-text{display:flex}#staff-user .user-detail-form-container #user-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#staff-user .user-detail-form-container #user-image-uploader .upload-button{margin-bottom:16px}#staff-user .user-detail-form-container #user-image-uploader .user-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#staff-user .user-detail-form-container #user-image-uploader .user-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#staff-user .user-detail-form-container #user-image-uploader .user-image .media{max-height:100%}#staff-user md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#staff-user md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#staff-user md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#staff-user md-table-container.font-size-12 td.md-cell{font-size:12px!important}#users{position:relative}#users>.header{height:76px;min-height:76px;max-height:76px}#users>.header .logo .logo-icon{margin:0 16px 0 0}#users>.header .logo .logo-text{font-size:24px}#users>.header md-icon{color:#fff}#users>.header .search-input-wrapper{position:relative}#users>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#users>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#users>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#users>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#users>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#users>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#users>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#users>.header.selected-bar .close-button-wrapper{width:244px}#users>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#users>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#users>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#users #add-user-button{position:fixed;bottom:8px;right:8px;padding:0}#users #upload-user-button{position:fixed;bottom:8px;right:8px;padding:0}#cannedAnswers{position:relative}#cannedAnswers>.header{height:76px;min-height:76px;max-height:76px}#cannedAnswers>.header .logo .logo-icon{margin:0 16px 0 0}#cannedAnswers>.header .logo .logo-text{font-size:24px}#cannedAnswers>.header md-icon{color:#fff}#cannedAnswers>.header .search-input-wrapper{position:relative}#cannedAnswers>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#cannedAnswers>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#cannedAnswers>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#cannedAnswers>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#cannedAnswers>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#cannedAnswers>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#cannedAnswers>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#cannedAnswers>.header.selected-bar .close-button-wrapper{width:244px}#cannedAnswers>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#cannedAnswers>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#cannedAnswers>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#cannedAnswers #add-cannedAnswer-button{position:fixed;bottom:8px;right:8px;padding:0}#cannedAnswers #upload-cannedAnswer-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.cannedAnswer-dialog{max-width:720px;width:720px}md-dialog.cannedAnswer-dialog md-dialog-content{display:block;position:relative}md-dialog.cannedAnswer-dialog md-toolbar .title{font-size:17px}md-dialog.cannedAnswer-dialog md-input-container textarea{min-height:150px}md-dialog.cannedAnswer-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.cannedAnswer-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.cannedAnswer-dialog .date-container{padding:16px 0 24px 0}md-dialog.cannedAnswer-dialog .error-list{font-size:13px}md-dialog.cannedAnswer-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.cannedAnswer-dialog .error-list .error .message{font-weight:500}md-dialog.cannedAnswer-dialog .error-list .error .md-button{margin:0}md-dialog.cannedAnswer-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.cannedAnswer-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.customDashboard-dialog{max-width:720px;width:720px}md-dialog.customDashboard-dialog md-dialog-content{display:block;position:relative}md-dialog.customDashboard-dialog md-toolbar .title{font-size:17px}md-dialog.customDashboard-dialog md-input-container textarea{min-height:150px}md-dialog.customDashboard-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.customDashboard-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.customDashboard-dialog .date-container{padding:16px 0 24px 0}md-dialog.customDashboard-dialog .error-list{font-size:13px}md-dialog.customDashboard-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.customDashboard-dialog .error-list .error .message{font-weight:500}md-dialog.customDashboard-dialog .error-list .error .md-button{margin:0}md-dialog.customDashboard-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.customDashboard-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#customDashboards{position:relative}#customDashboards>.header{height:76px;min-height:76px;max-height:76px}#customDashboards>.header .logo .logo-icon{margin:0 16px 0 0}#customDashboards>.header .logo .logo-text{font-size:24px}#customDashboards>.header md-icon{color:#fff}#customDashboards>.header .search-input-wrapper{position:relative}#customDashboards>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#customDashboards>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#customDashboards>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#customDashboards>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#customDashboards>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#customDashboards>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#customDashboards>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#customDashboards>.header.selected-bar .close-button-wrapper{width:244px}#customDashboards>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#customDashboards>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#customDashboards>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#customDashboards #add-customDashboard-button{position:fixed;bottom:8px;right:8px;padding:0}#customDashboards #upload-customDashboard-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.dashboarditem-dialog{max-width:720px;width:720px}md-dialog.dashboarditem-dialog md-dialog-content{display:block;position:relative}md-dialog.dashboarditem-dialog md-toolbar .title{font-size:17px}md-dialog.dashboarditem-dialog md-input-container textarea{min-height:150px}md-dialog.dashboarditem-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.dashboarditem-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.dashboarditem-dialog .date-container{padding:16px 0 24px 0}md-dialog.dashboarditem-dialog .error-list{font-size:13px}md-dialog.dashboarditem-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.dashboarditem-dialog .error-list .error .message{font-weight:500}md-dialog.dashboarditem-dialog .error-list .error .md-button{margin:0}md-dialog.dashboarditem-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.dashboarditem-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#tools-customDashboard .header{height:76px;min-height:76px;max-height:76px}#tools-customDashboard .header .goto-customDashboards-button{margin-right:16px}#tools-customDashboard .header .customDashboard-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#tools-customDashboard .header .customDashboard-image img{height:100%;width:auto;max-width:none}#tools-customDashboard .header .subtitle{margin:6px 0 0 0}#tools-customDashboard .customDashboard-detail-form-container{padding:24px;margin-bottom:24px}#tools-customDashboard .customDashboard-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#tools-customDashboard .customDashboard-detail-form-container .handle{cursor:move}#tools-customDashboard .customDashboard-detail-form-container md-input-container md-switch{margin:0!important}#tools-customDashboard .customDashboard-detail-form-container #customDashboard-image-uploader{position:relative}#tools-customDashboard .customDashboard-detail-form-container #customDashboard-image-uploader.dropping .drop-text{display:flex}#tools-customDashboard .customDashboard-detail-form-container #customDashboard-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#tools-customDashboard .customDashboard-detail-form-container #customDashboard-image-uploader .upload-button{margin-bottom:16px}#tools-customDashboard .customDashboard-detail-form-container #customDashboard-image-uploader .customDashboard-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#tools-customDashboard .customDashboard-detail-form-container #customDashboard-image-uploader .customDashboard-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#tools-customDashboard .customDashboard-detail-form-container #customDashboard-image-uploader .customDashboard-image .media{max-height:100%}#tools-customDashboard md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#tools-customDashboard md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#tools-customDashboard md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#tools-customDashboard md-table-container.font-size-12 td.md-cell{font-size:12px!important}md-dialog.disposition-dialog{max-width:720px;width:720px}md-dialog.disposition-dialog md-dialog-content{display:block;position:relative}md-dialog.disposition-dialog md-toolbar .title{font-size:17px}md-dialog.disposition-dialog md-input-container textarea{min-height:150px}md-dialog.disposition-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.disposition-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.disposition-dialog .date-container{padding:16px 0 24px 0}md-dialog.disposition-dialog .error-list{font-size:13px}md-dialog.disposition-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.disposition-dialog .error-list .error .message{font-weight:500}md-dialog.disposition-dialog .error-list .error .md-button{margin:0}md-dialog.disposition-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.disposition-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#dispositions{position:relative}#dispositions>.header{height:76px;min-height:76px;max-height:76px}#dispositions>.header .logo .logo-icon{margin:0 16px 0 0}#dispositions>.header .logo .logo-text{font-size:24px}#dispositions>.header md-icon{color:#fff}#dispositions>.header .search-input-wrapper{position:relative}#dispositions>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#dispositions>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#dispositions>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#dispositions>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#dispositions>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#dispositions>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#dispositions>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#dispositions>.header.selected-bar .close-button-wrapper{width:244px}#dispositions>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#dispositions>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#dispositions>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#dispositions #add-disposition-button{position:fixed;bottom:8px;right:8px;padding:0}#dispositions #upload-disposition-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.interval-dialog{max-width:720px;width:720px}md-dialog.interval-dialog md-dialog-content{display:block;position:relative}md-dialog.interval-dialog md-toolbar .title{font-size:17px}md-dialog.interval-dialog md-input-container textarea{min-height:150px}md-dialog.interval-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.interval-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.interval-dialog .date-container{padding:16px 0 24px 0}md-dialog.interval-dialog .error-list{font-size:13px}md-dialog.interval-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.interval-dialog .error-list .error .message{font-weight:500}md-dialog.interval-dialog .error-list .error .md-button{margin:0}md-dialog.interval-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.interval-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.interval-dialog{max-width:720px;width:720px}md-dialog.interval-dialog md-dialog-content{display:block;position:relative}md-dialog.interval-dialog md-toolbar .title{font-size:17px}md-dialog.interval-dialog md-input-container textarea{min-height:150px}md-dialog.interval-dialog .date-container{padding:16px 0 24px 0}md-dialog.interval-dialog .error-list{font-size:13px}md-dialog.interval-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.interval-dialog .error-list .error .message{font-weight:500}md-dialog.interval-dialog .error-list .error .md-button{margin:0}md-dialog.interval-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.interval-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.interval-dialog{max-width:720px;width:720px}md-dialog.interval-dialog md-dialog-content{display:block;position:relative}md-dialog.interval-dialog md-toolbar .title{font-size:17px}md-dialog.interval-dialog md-input-container textarea{min-height:150px}md-dialog.interval-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.interval-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.interval-dialog .date-container{padding:16px 0 24px 0}md-dialog.interval-dialog .error-list{font-size:13px}md-dialog.interval-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.interval-dialog .error-list .error .message{font-weight:500}md-dialog.interval-dialog .error-list .error .md-button{margin:0}md-dialog.interval-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.interval-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#tools-interval .header{height:76px;min-height:76px;max-height:76px}#tools-interval .header .goto-intervals-button{margin-right:16px}#tools-interval .header .interval-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#tools-interval .header .interval-image img{height:100%;width:auto;max-width:none}#tools-interval .header .subtitle{margin:6px 0 0 0}#tools-interval .interval-detail-form-container{padding:24px;margin-bottom:24px}#tools-interval .interval-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#tools-interval .interval-detail-form-container .handle{cursor:move}#tools-interval .interval-detail-form-container md-input-container md-switch{margin:0!important}#tools-interval .interval-detail-form-container #interval-image-uploader{position:relative}#tools-interval .interval-detail-form-container #interval-image-uploader.dropping .drop-text{display:flex}#tools-interval .interval-detail-form-container #interval-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#tools-interval .interval-detail-form-container #interval-image-uploader .upload-button{margin-bottom:16px}#tools-interval .interval-detail-form-container #interval-image-uploader .interval-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#tools-interval .interval-detail-form-container #interval-image-uploader .interval-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#tools-interval .interval-detail-form-container #interval-image-uploader .interval-image .media{max-height:100%}#tools-interval md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#tools-interval md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#tools-interval md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#tools-interval md-table-container.font-size-12 td.md-cell{font-size:12px!important}#intervals{position:relative}#intervals>.header{height:76px;min-height:76px;max-height:76px}#intervals>.header .logo .logo-icon{margin:0 16px 0 0}#intervals>.header .logo .logo-text{font-size:24px}#intervals>.header md-icon{color:#fff}#intervals>.header .search-input-wrapper{position:relative}#intervals>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#intervals>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#intervals>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#intervals>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#intervals>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#intervals>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#intervals>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#intervals>.header.selected-bar .close-button-wrapper{width:244px}#intervals>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#intervals>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#intervals>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#intervals #add-interval-button{position:fixed;bottom:8px;right:8px;padding:0}#intervals #upload-interval-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.pause-dialog{max-width:720px;width:720px}md-dialog.pause-dialog md-dialog-content{display:block;position:relative}md-dialog.pause-dialog md-toolbar .title{font-size:17px}md-dialog.pause-dialog md-input-container textarea{min-height:150px}md-dialog.pause-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.pause-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.pause-dialog .date-container{padding:16px 0 24px 0}md-dialog.pause-dialog .error-list{font-size:13px}md-dialog.pause-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.pause-dialog .error-list .error .message{font-weight:500}md-dialog.pause-dialog .error-list .error .md-button{margin:0}md-dialog.pause-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.pause-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#pauses{position:relative}#pauses>.header{height:76px;min-height:76px;max-height:76px}#pauses>.header .logo .logo-icon{margin:0 16px 0 0}#pauses>.header .logo .logo-text{font-size:24px}#pauses>.header md-icon{color:#fff}#pauses>.header .search-input-wrapper{position:relative}#pauses>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#pauses>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#pauses>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#pauses>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#pauses>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#pauses>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#pauses>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#pauses>.header.selected-bar .close-button-wrapper{width:244px}#pauses>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#pauses>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#pauses>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#pauses #add-pause-button{position:fixed;bottom:8px;right:8px;padding:0}#pauses #upload-pause-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.schedule-dialog{max-width:720px;width:720px}md-dialog.schedule-dialog md-dialog-content{display:block;position:relative}md-dialog.schedule-dialog md-toolbar .title{font-size:17px}md-dialog.schedule-dialog md-input-container textarea{min-height:150px}md-dialog.schedule-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.schedule-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.schedule-dialog .date-container{padding:16px 0 24px 0}md-dialog.schedule-dialog .error-list{font-size:13px}md-dialog.schedule-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.schedule-dialog .error-list .error .message{font-weight:500}md-dialog.schedule-dialog .error-list .error .md-button{margin:0}md-dialog.schedule-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.schedule-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#schedules{position:relative}#schedules>.header{height:76px;min-height:76px;max-height:76px}#schedules>.header .logo .logo-icon{margin:0 16px 0 0}#schedules>.header .logo .logo-text{font-size:24px}#schedules>.header md-icon{color:#fff}#schedules>.header .search-input-wrapper{position:relative}#schedules>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#schedules>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#schedules>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#schedules>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#schedules>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#schedules>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#schedules>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#schedules>.header.selected-bar .close-button-wrapper{width:244px}#schedules>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#schedules>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#schedules>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#schedules #add-schedule-button{position:fixed;bottom:8px;right:8px;padding:0}#schedules #upload-schedule-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.sound-dialog{max-width:720px;width:720px}md-dialog.sound-dialog md-dialog-content{display:block;position:relative}md-dialog.sound-dialog md-toolbar .title{font-size:17px}md-dialog.sound-dialog md-input-container textarea{min-height:150px}md-dialog.sound-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.sound-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.sound-dialog .date-container{padding:16px 0 24px 0}md-dialog.sound-dialog .error-list{font-size:13px}md-dialog.sound-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.sound-dialog .error-list .error .message{font-weight:500}md-dialog.sound-dialog .error-list .error .md-button{margin:0}md-dialog.sound-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.sound-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#sounds{position:relative}#sounds>.header{height:76px;min-height:76px;max-height:76px}#sounds>.header .logo .logo-icon{margin:0 16px 0 0}#sounds>.header .logo .logo-text{font-size:24px}#sounds>.header md-icon{color:#fff}#sounds>.header .search-input-wrapper{position:relative}#sounds>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#sounds>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#sounds>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#sounds>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#sounds>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#sounds>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#sounds>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#sounds>.header.selected-bar .close-button-wrapper{width:244px}#sounds>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#sounds>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#sounds>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#sounds #add-sound-button{position:fixed;bottom:8px;right:8px;padding:0}#sounds #upload-sound-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.upload-dialog{max-width:720px;width:720px}md-dialog.upload-dialog md-dialog-content{display:block;position:relative}md-dialog.upload-dialog md-toolbar .title{font-size:17px}md-dialog.upload-dialog md-input-container textarea{min-height:150px}md-dialog.upload-dialog md-progress-linear{padding-top:16px!important}md-dialog.upload-dialog .date-container{padding:16px 0 24px 0}md-dialog.upload-dialog .error-list{font-size:13px}md-dialog.upload-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.upload-dialog .error-list .error .message{font-weight:500}md-dialog.upload-dialog .error-list .error .md-button{margin:0}md-dialog.upload-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.upload-dialog .sound-image{overflow:hidden;max-width:148px;margin-right:16px;border:3px solid rgba(0,0,0,.12);padding:10px}md-dialog.upload-dialog .sound-image img{width:auto;max-width:none}md-dialog.upload-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.tag-dialog{max-width:720px;width:720px}md-dialog.tag-dialog md-dialog-content{display:block;position:relative}md-dialog.tag-dialog md-toolbar .title{font-size:17px}md-dialog.tag-dialog md-input-container textarea{min-height:150px}md-dialog.tag-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.tag-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.tag-dialog .date-container{padding:16px 0 24px 0}md-dialog.tag-dialog .error-list{font-size:13px}md-dialog.tag-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.tag-dialog .error-list .error .message{font-weight:500}md-dialog.tag-dialog .error-list .error .md-button{margin:0}md-dialog.tag-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.tag-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#tags{position:relative}#tags>.header{height:76px;min-height:76px;max-height:76px}#tags>.header .logo .logo-icon{margin:0 16px 0 0}#tags>.header .logo .logo-text{font-size:24px}#tags>.header md-icon{color:#fff}#tags>.header .search-input-wrapper{position:relative}#tags>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#tags>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#tags>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#tags>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#tags>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#tags>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#tags>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#tags>.header.selected-bar .close-button-wrapper{width:244px}#tags>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#tags>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#tags>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#tags #add-tag-button{position:fixed;bottom:8px;right:8px;padding:0}#tags #upload-tag-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.template-dialog{max-width:720px;width:720px}md-dialog.template-dialog md-dialog-content{display:block;position:relative}md-dialog.template-dialog md-toolbar .title{font-size:17px}md-dialog.template-dialog md-input-container textarea{min-height:150px}md-dialog.template-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.template-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.template-dialog .date-container{padding:16px 0 24px 0}md-dialog.template-dialog .error-list{font-size:13px}md-dialog.template-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.template-dialog .error-list .error .message{font-weight:500}md-dialog.template-dialog .error-list .error .md-button{margin:0}md-dialog.template-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.template-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#templates{position:relative}#templates>.header{height:76px;min-height:76px;max-height:76px}#templates>.header .logo .logo-icon{margin:0 16px 0 0}#templates>.header .logo .logo-text{font-size:24px}#templates>.header md-icon{color:#fff}#templates>.header .search-input-wrapper{position:relative}#templates>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#templates>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#templates>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#templates>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#templates>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#templates>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#templates>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#templates>.header.selected-bar .close-button-wrapper{width:244px}#templates>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#templates>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#templates>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#templates #add-template-button{position:fixed;bottom:8px;right:8px;padding:0}#templates #upload-template-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.trigger-dialog{max-width:720px;width:720px}md-dialog.trigger-dialog md-dialog-content{display:block;position:relative}md-dialog.trigger-dialog md-toolbar .title{font-size:17px}md-dialog.trigger-dialog md-input-container textarea{min-height:150px}md-dialog.trigger-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.trigger-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.trigger-dialog .date-container{padding:16px 0 24px 0}md-dialog.trigger-dialog .error-list{font-size:13px}md-dialog.trigger-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.trigger-dialog .error-list .error .message{font-weight:500}md-dialog.trigger-dialog .error-list .error .md-button{margin:0}md-dialog.trigger-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.trigger-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.action-dialog{max-width:720px;width:720px}md-dialog.action-dialog md-dialog-content{display:block;position:relative}md-dialog.action-dialog md-toolbar .title{font-size:17px}md-dialog.action-dialog md-input-container textarea{min-height:150px}md-dialog.action-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.action-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.action-dialog .date-container{padding:16px 0 24px 0}md-dialog.action-dialog .error-list{font-size:13px}md-dialog.action-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.action-dialog .error-list .error .message{font-weight:500}md-dialog.action-dialog .error-list .error .md-button{margin:0}md-dialog.action-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.action-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.allCondition-dialog{max-width:720px;width:720px}md-dialog.allCondition-dialog md-dialog-content{display:block;position:relative}md-dialog.allCondition-dialog md-toolbar .title{font-size:17px}md-dialog.allCondition-dialog md-input-container textarea{min-height:150px}md-dialog.allCondition-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.allCondition-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.allCondition-dialog .date-container{padding:16px 0 24px 0}md-dialog.allCondition-dialog .error-list{font-size:13px}md-dialog.allCondition-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.allCondition-dialog .error-list .error .message{font-weight:500}md-dialog.allCondition-dialog .error-list .error .md-button{margin:0}md-dialog.allCondition-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.allCondition-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.anyCondition-dialog{max-width:720px;width:720px}md-dialog.anyCondition-dialog md-dialog-content{display:block;position:relative}md-dialog.anyCondition-dialog md-toolbar .title{font-size:17px}md-dialog.anyCondition-dialog md-input-container textarea{min-height:150px}md-dialog.anyCondition-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.anyCondition-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.anyCondition-dialog .date-container{padding:16px 0 24px 0}md-dialog.anyCondition-dialog .error-list{font-size:13px}md-dialog.anyCondition-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.anyCondition-dialog .error-list .error .message{font-weight:500}md-dialog.anyCondition-dialog .error-list .error .md-button{margin:0}md-dialog.anyCondition-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.anyCondition-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#tools-trigger .header{height:76px;min-height:76px;max-height:76px}#tools-trigger .header .goto-triggers-button{margin-right:16px}#tools-trigger .header .trigger-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#tools-trigger .header .trigger-image img{height:100%;width:auto;max-width:none}#tools-trigger .header .subtitle{margin:6px 0 0 0}#tools-trigger .trigger-detail-form-container{padding:24px;margin-bottom:24px}#tools-trigger .trigger-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#tools-trigger .trigger-detail-form-container .handle{cursor:move}#tools-trigger .trigger-detail-form-container md-input-container md-switch{margin:0!important}#tools-trigger .trigger-detail-form-container #trigger-image-uploader{position:relative}#tools-trigger .trigger-detail-form-container #trigger-image-uploader.dropping .drop-text{display:flex}#tools-trigger .trigger-detail-form-container #trigger-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#tools-trigger .trigger-detail-form-container #trigger-image-uploader .upload-button{margin-bottom:16px}#tools-trigger .trigger-detail-form-container #trigger-image-uploader .trigger-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#tools-trigger .trigger-detail-form-container #trigger-image-uploader .trigger-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#tools-trigger .trigger-detail-form-container #trigger-image-uploader .trigger-image .media{max-height:100%}#tools-trigger md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#tools-trigger md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#tools-trigger md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#tools-trigger md-table-container.font-size-12 td.md-cell{font-size:12px!important}#triggers{position:relative}#triggers>.header{height:76px;min-height:76px;max-height:76px}#triggers>.header .logo .logo-icon{margin:0 16px 0 0}#triggers>.header .logo .logo-text{font-size:24px}#triggers>.header md-icon{color:#fff}#triggers>.header .search-input-wrapper{position:relative}#triggers>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#triggers>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#triggers>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#triggers>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#triggers>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#triggers>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#triggers>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#triggers>.header.selected-bar .close-button-wrapper{width:244px}#triggers>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#triggers>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#triggers>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#triggers #add-trigger-button{position:fixed;bottom:8px;right:8px;padding:0}#triggers #upload-trigger-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.trunk-dialog{max-width:720px;width:720px}md-dialog.trunk-dialog md-dialog-content{display:block;position:relative}md-dialog.trunk-dialog md-toolbar .title{font-size:17px}md-dialog.trunk-dialog md-input-container textarea{min-height:150px}md-dialog.trunk-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.trunk-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.trunk-dialog .date-container{padding:16px 0 24px 0}md-dialog.trunk-dialog .error-list{font-size:13px}md-dialog.trunk-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.trunk-dialog .error-list .error .message{font-weight:500}md-dialog.trunk-dialog .error-list .error .md-button{margin:0}md-dialog.trunk-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.trunk-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#tools-trunk .header{height:76px;min-height:76px;max-height:76px}#tools-trunk .header .goto-trunks-button{margin-right:16px}#tools-trunk .header .trunk-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#tools-trunk .header .trunk-image img{height:100%;width:auto;max-width:none}#tools-trunk .header .subtitle{margin:6px 0 0 0}#tools-trunk .trunk-detail-form-container{padding:24px;margin-bottom:24px}#tools-trunk .trunk-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#tools-trunk .trunk-detail-form-container .handle{cursor:move}#tools-trunk .trunk-detail-form-container md-input-container md-switch{margin:0!important}#tools-trunk .trunk-detail-form-container #trunk-image-uploader{position:relative}#tools-trunk .trunk-detail-form-container #trunk-image-uploader.dropping .drop-text{display:flex}#tools-trunk .trunk-detail-form-container #trunk-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#tools-trunk .trunk-detail-form-container #trunk-image-uploader .upload-button{margin-bottom:16px}#tools-trunk .trunk-detail-form-container #trunk-image-uploader .trunk-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#tools-trunk .trunk-detail-form-container #trunk-image-uploader .trunk-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#tools-trunk .trunk-detail-form-container #trunk-image-uploader .trunk-image .media{max-height:100%}#tools-trunk md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#tools-trunk md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#tools-trunk md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#tools-trunk md-table-container.font-size-12 td.md-cell{font-size:12px!important}#trunks{position:relative}#trunks>.header{height:76px;min-height:76px;max-height:76px}#trunks>.header .logo .logo-icon{margin:0 16px 0 0}#trunks>.header .logo .logo-text{font-size:24px}#trunks>.header md-icon{color:#fff}#trunks>.header .search-input-wrapper{position:relative}#trunks>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#trunks>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#trunks>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#trunks>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#trunks>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#trunks>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#trunks>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#trunks>.header.selected-bar .close-button-wrapper{width:244px}#trunks>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#trunks>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#trunks>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#trunks #add-trunk-button{position:fixed;bottom:8px;right:8px;padding:0}#trunks #upload-trunk-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.variable-dialog{max-width:720px;width:720px}md-dialog.variable-dialog md-dialog-content{display:block;position:relative}md-dialog.variable-dialog md-toolbar .title{font-size:17px}md-dialog.variable-dialog md-input-container textarea{min-height:150px}md-dialog.variable-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.variable-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.variable-dialog .date-container{padding:16px 0 24px 0}md-dialog.variable-dialog .error-list{font-size:13px}md-dialog.variable-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.variable-dialog .error-list .error .message{font-weight:500}md-dialog.variable-dialog .error-list .error .md-button{margin:0}md-dialog.variable-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.variable-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#variables{position:relative}#variables>.header{height:76px;min-height:76px;max-height:76px}#variables>.header .logo .logo-icon{margin:0 16px 0 0}#variables>.header .logo .logo-text{font-size:24px}#variables>.header md-icon{color:#fff}#variables>.header .search-input-wrapper{position:relative}#variables>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#variables>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#variables>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#variables>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#variables>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#variables>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#variables>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#variables>.header.selected-bar .close-button-wrapper{width:244px}#variables>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#variables>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#variables>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#variables #add-variable-button{position:fixed;bottom:8px;right:8px;padding:0}#variables #upload-variable-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.screenRecording-dialog{max-width:720px;width:720px}md-dialog.screenRecording-dialog md-dialog-content{display:block;position:relative}md-dialog.screenRecording-dialog md-toolbar .title{font-size:17px}md-dialog.screenRecording-dialog md-input-container textarea{min-height:150px}md-dialog.screenRecording-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.screenRecording-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.screenRecording-dialog .date-container{padding:16px 0 24px 0}md-dialog.screenRecording-dialog .error-list{font-size:13px}md-dialog.screenRecording-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.screenRecording-dialog .error-list .error .message{font-weight:500}md-dialog.screenRecording-dialog .error-list .error .md-button{margin:0}md-dialog.screenRecording-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.screenRecording-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#screenRecordings{position:relative}#screenRecordings>.header{height:76px;min-height:76px;max-height:76px}#screenRecordings>.header .logo .logo-icon{margin:0 16px 0 0}#screenRecordings>.header .logo .logo-text{font-size:24px}#screenRecordings>.header md-icon{color:#fff}#screenRecordings>.header .search-input-wrapper{position:relative}#screenRecordings>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#screenRecordings>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#screenRecordings>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#screenRecordings>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#screenRecordings>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#screenRecordings>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#screenRecordings>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#screenRecordings>.header.selected-bar .close-button-wrapper{width:244px}#screenRecordings>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#screenRecordings>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#screenRecordings>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#screenRecordings #add-screenRecording-button{position:fixed;bottom:8px;right:8px;padding:0}#screenRecordings #upload-screenRecording-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.voice-routing-dialog{max-width:720px;width:720px}md-dialog.voice-routing-dialog md-dialog-content{display:block;position:relative}md-dialog.voice-routing-dialog md-toolbar .title{font-size:17px}md-dialog.voice-routing-dialog md-input-container textarea{min-height:150px}md-dialog.voice-routing-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.voice-routing-dialog .date-container{padding:16px 0 24px 0}md-dialog.voice-routing-dialog .error-list{font-size:13px}md-dialog.voice-routing-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.voice-routing-dialog .error-list .error .message{font-weight:500}md-dialog.voice-routing-dialog .error-list .error .md-button{margin:0}md-dialog.voice-routing-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.voice-routing-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.interval-dialog{max-width:720px;width:720px}md-dialog.interval-dialog md-dialog-content{display:block;position:relative}md-dialog.interval-dialog md-toolbar .title{font-size:17px}md-dialog.interval-dialog md-input-container textarea{min-height:150px}md-dialog.interval-dialog .date-container{padding:16px 0 24px 0}md-dialog.interval-dialog .error-list{font-size:13px}md-dialog.interval-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.interval-dialog .error-list .error .message{font-weight:500}md-dialog.interval-dialog .error-list .error .md-button{margin:0}md-dialog.interval-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.interval-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#chanSpies{position:relative}#chanSpies>.header{height:76px;min-height:76px;max-height:76px}#chanSpies>.header .logo .logo-icon{margin:0 16px 0 0}#chanSpies>.header .logo .logo-text{font-size:24px}#chanSpies>.header md-icon{color:#fff}#chanSpies>.header .search-input-wrapper{position:relative}#chanSpies>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#chanSpies>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#chanSpies>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#chanSpies>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#chanSpies>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#chanSpies>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#chanSpies>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#chanSpies>.header.selected-bar .close-button-wrapper{width:244px}#chanSpies>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#chanSpies>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#chanSpies>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#chanSpies #add-chanSpy-button{position:fixed;bottom:8px;right:8px;padding:0}#chanSpies #upload-chanSpy-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.chanSpy-dialog{max-width:720px;width:720px}md-dialog.chanSpy-dialog md-dialog-content{display:block;position:relative}md-dialog.chanSpy-dialog md-toolbar .title{font-size:17px}md-dialog.chanSpy-dialog md-input-container textarea{min-height:150px}md-dialog.chanSpy-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.chanSpy-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.chanSpy-dialog .date-container{padding:16px 0 24px 0}md-dialog.chanSpy-dialog .error-list{font-size:13px}md-dialog.chanSpy-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chanSpy-dialog .error-list .error .message{font-weight:500}md-dialog.chanSpy-dialog .error-list .error .md-button{margin:0}md-dialog.chanSpy-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chanSpy-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#contexts{position:relative}#contexts>.header{height:76px;min-height:76px;max-height:76px}#contexts>.header .logo .logo-icon{margin:0 16px 0 0}#contexts>.header .logo .logo-text{font-size:24px}#contexts>.header md-icon{color:#fff}#contexts>.header .search-input-wrapper{position:relative}#contexts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#contexts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#contexts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#contexts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#contexts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#contexts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#contexts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#contexts>.header.selected-bar .close-button-wrapper{width:244px}#contexts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#contexts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#contexts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#contexts #add-context-button{position:fixed;bottom:8px;right:8px;padding:0}#contexts #upload-context-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.context-dialog{max-width:720px;width:720px}md-dialog.context-dialog md-dialog-content{display:block;position:relative}md-dialog.context-dialog md-toolbar .title{font-size:17px}md-dialog.context-dialog md-input-container textarea{min-height:150px}md-dialog.context-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.context-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.context-dialog .date-container{padding:16px 0 24px 0}md-dialog.context-dialog .error-list{font-size:13px}md-dialog.context-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.context-dialog .error-list .error .message{font-weight:500}md-dialog.context-dialog .error-list .error .md-button{margin:0}md-dialog.context-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.context-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.inbound-route-dialog{max-width:720px;width:720px}md-dialog.inbound-route-dialog md-dialog-content{display:block;position:relative}md-dialog.inbound-route-dialog md-toolbar .title{font-size:17px}md-dialog.inbound-route-dialog md-input-container textarea{min-height:150px}md-dialog.inbound-route-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.inbound-route-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.inbound-route-dialog .date-container{padding:16px 0 24px 0}md-dialog.inbound-route-dialog .error-list{font-size:13px}md-dialog.inbound-route-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.inbound-route-dialog .error-list .error .message{font-weight:500}md-dialog.inbound-route-dialog .error-list .error .md-button{margin:0}md-dialog.inbound-route-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.inbound-route-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#voice-inbound-route .header{height:76px;min-height:76px;max-height:76px}#voice-inbound-route .header .goto-inbound-routes-button{margin-right:16px}#voice-inbound-route .header .inbound-route-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#voice-inbound-route .header .inbound-route-image img{height:100%;width:auto;max-width:none}#voice-inbound-route .header .subtitle{margin:6px 0 0 0}#voice-inbound-route .inbound-route-detail-form-container{padding:24px;margin-bottom:24px}#voice-inbound-route .inbound-route-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#voice-inbound-route .inbound-route-detail-form-container .handle{cursor:move}#voice-inbound-route .inbound-route-detail-form-container md-input-container md-switch{margin:0!important}#voice-inbound-route md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#voice-inbound-route md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#voice-inbound-route md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#voice-inbound-route md-table-container.font-size-12 td.md-cell{font-size:12px!important}#inbound-routes{position:relative}#inbound-routes>.header{height:76px;min-height:76px;max-height:76px}#inbound-routes>.header .logo .logo-icon{margin:0 16px 0 0}#inbound-routes>.header .logo .logo-text{font-size:24px}#inbound-routes>.header md-icon{color:#fff}#inbound-routes>.header .search-input-wrapper{position:relative}#inbound-routes>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#inbound-routes>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#inbound-routes>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#inbound-routes>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#inbound-routes>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#inbound-routes>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#inbound-routes>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#inbound-routes>.header.selected-bar .close-button-wrapper{width:244px}#inbound-routes>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#inbound-routes>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#inbound-routes>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#inbound-routes #add-inbound-route-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.internal-route-dialog{max-width:720px;width:720px}md-dialog.internal-route-dialog md-dialog-content{display:block;position:relative}md-dialog.internal-route-dialog md-toolbar .title{font-size:17px}md-dialog.internal-route-dialog md-input-container textarea{min-height:150px}md-dialog.internal-route-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.internal-route-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.internal-route-dialog .date-container{padding:16px 0 24px 0}md-dialog.internal-route-dialog .error-list{font-size:13px}md-dialog.internal-route-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.internal-route-dialog .error-list .error .message{font-weight:500}md-dialog.internal-route-dialog .error-list .error .md-button{margin:0}md-dialog.internal-route-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.internal-route-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#voice-internal-route .header{height:76px;min-height:76px;max-height:76px}#voice-internal-route .header .goto-internal-routes-button{margin-right:16px}#voice-internal-route .header .internal-route-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#voice-internal-route .header .internal-route-image img{height:100%;width:auto;max-width:none}#voice-internal-route .header .subtitle{margin:6px 0 0 0}#voice-internal-route .internal-route-detail-form-container{padding:24px;margin-bottom:24px}#voice-internal-route .internal-route-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#voice-internal-route .internal-route-detail-form-container .handle{cursor:move}#voice-internal-route .internal-route-detail-form-container md-input-container md-switch{margin:0!important}#voice-internal-route md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#voice-internal-route md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#voice-internal-route md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#voice-internal-route md-table-container.font-size-12 td.md-cell{font-size:12px!important}#internal-routes{position:relative}#internal-routes>.header{height:76px;min-height:76px;max-height:76px}#internal-routes>.header .logo .logo-icon{margin:0 16px 0 0}#internal-routes>.header .logo .logo-text{font-size:24px}#internal-routes>.header md-icon{color:#fff}#internal-routes>.header .search-input-wrapper{position:relative}#internal-routes>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#internal-routes>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#internal-routes>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#internal-routes>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#internal-routes>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#internal-routes>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#internal-routes>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#internal-routes>.header.selected-bar .close-button-wrapper{width:244px}#internal-routes>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#internal-routes>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#internal-routes>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#internal-routes #add-internal-route-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.musiconhold-dialog{max-width:720px;width:720px}md-dialog.musiconhold-dialog md-dialog-content{display:block;position:relative}md-dialog.musiconhold-dialog md-toolbar .title{font-size:17px}md-dialog.musiconhold-dialog md-input-container textarea{min-height:150px}md-dialog.musiconhold-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.musiconhold-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.musiconhold-dialog .date-container{padding:16px 0 24px 0}md-dialog.musiconhold-dialog .error-list{font-size:13px}md-dialog.musiconhold-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.musiconhold-dialog .error-list .error .message{font-weight:500}md-dialog.musiconhold-dialog .error-list .error .md-button{margin:0}md-dialog.musiconhold-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.musiconhold-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mohSound-dialog{max-width:720px;width:720px}md-dialog.mohSound-dialog md-dialog-content{display:block;position:relative}md-dialog.mohSound-dialog md-toolbar .title{font-size:17px}md-dialog.mohSound-dialog md-input-container textarea{min-height:150px}md-dialog.mohSound-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.mohSound-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.mohSound-dialog .date-container{padding:16px 0 24px 0}md-dialog.mohSound-dialog .error-list{font-size:13px}md-dialog.mohSound-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mohSound-dialog .error-list .error .message{font-weight:500}md-dialog.mohSound-dialog .error-list .error .md-button{margin:0}md-dialog.mohSound-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mohSound-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#voice-musiconhold .header{height:76px;min-height:76px;max-height:76px}#voice-musiconhold .header .goto-musiconholds-button{margin-right:16px}#voice-musiconhold .header .musiconhold-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#voice-musiconhold .header .musiconhold-image img{height:100%;width:auto;max-width:none}#voice-musiconhold .header .subtitle{margin:6px 0 0 0}#voice-musiconhold .musiconhold-detail-form-container{padding:24px;margin-bottom:24px}#voice-musiconhold .musiconhold-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#voice-musiconhold .musiconhold-detail-form-container .handle{cursor:move}#voice-musiconhold .musiconhold-detail-form-container md-input-container md-switch{margin:0!important}#voice-musiconhold .musiconhold-detail-form-container #musiconhold-image-uploader{position:relative}#voice-musiconhold .musiconhold-detail-form-container #musiconhold-image-uploader.dropping .drop-text{display:flex}#voice-musiconhold .musiconhold-detail-form-container #musiconhold-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#voice-musiconhold .musiconhold-detail-form-container #musiconhold-image-uploader .upload-button{margin-bottom:16px}#voice-musiconhold .musiconhold-detail-form-container #musiconhold-image-uploader .musiconhold-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#voice-musiconhold .musiconhold-detail-form-container #musiconhold-image-uploader .musiconhold-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#voice-musiconhold .musiconhold-detail-form-container #musiconhold-image-uploader .musiconhold-image .media{max-height:100%}#voice-musiconhold md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#voice-musiconhold md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#voice-musiconhold md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#voice-musiconhold md-table-container.font-size-12 td.md-cell{font-size:12px!important}#musiconholds{position:relative}#musiconholds>.header{height:76px;min-height:76px;max-height:76px}#musiconholds>.header .logo .logo-icon{margin:0 16px 0 0}#musiconholds>.header .logo .logo-text{font-size:24px}#musiconholds>.header md-icon{color:#fff}#musiconholds>.header .search-input-wrapper{position:relative}#musiconholds>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#musiconholds>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#musiconholds>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#musiconholds>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#musiconholds>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#musiconholds>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#musiconholds>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#musiconholds>.header.selected-bar .close-button-wrapper{width:244px}#musiconholds>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#musiconholds>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#musiconholds>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#musiconholds #add-musiconhold-button{position:fixed;bottom:8px;right:8px;padding:0}#musiconholds #upload-musiconhold-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.outbound-route-dialog{max-width:720px;width:720px}md-dialog.outbound-route-dialog md-dialog-content{display:block;position:relative}md-dialog.outbound-route-dialog md-toolbar .title{font-size:17px}md-dialog.outbound-route-dialog md-input-container textarea{min-height:150px}md-dialog.outbound-route-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.outbound-route-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.outbound-route-dialog .date-container{padding:16px 0 24px 0}md-dialog.outbound-route-dialog .error-list{font-size:13px}md-dialog.outbound-route-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.outbound-route-dialog .error-list .error .message{font-weight:500}md-dialog.outbound-route-dialog .error-list .error .md-button{margin:0}md-dialog.outbound-route-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.outbound-route-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#voice-outbound-route .header{height:76px;min-height:76px;max-height:76px}#voice-outbound-route .header .goto-outbound-routes-button{margin-right:16px}#voice-outbound-route .header .outbound-route-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#voice-outbound-route .header .outbound-route-image img{height:100%;width:auto;max-width:none}#voice-outbound-route .header .subtitle{margin:6px 0 0 0}#voice-outbound-route .outbound-route-detail-form-container{padding:24px;margin-bottom:24px}#voice-outbound-route .outbound-route-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#voice-outbound-route .outbound-route-detail-form-container .handle{cursor:move}#voice-outbound-route .outbound-route-detail-form-container md-input-container md-switch{margin:0!important}#voice-outbound-route md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#voice-outbound-route md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#voice-outbound-route md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#voice-outbound-route md-table-container.font-size-12 td.md-cell{font-size:12px!important}#outbound-routes{position:relative}#outbound-routes>.header{height:76px;min-height:76px;max-height:76px}#outbound-routes>.header .logo .logo-icon{margin:0 16px 0 0}#outbound-routes>.header .logo .logo-text{font-size:24px}#outbound-routes>.header md-icon{color:#fff}#outbound-routes>.header .search-input-wrapper{position:relative}#outbound-routes>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#outbound-routes>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#outbound-routes>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#outbound-routes>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#outbound-routes>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#outbound-routes>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#outbound-routes>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#outbound-routes>.header.selected-bar .close-button-wrapper{width:244px}#outbound-routes>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#outbound-routes>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#outbound-routes>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#outbound-routes #add-outbound-route-button{position:fixed;bottom:8px;right:8px;padding:0}#realtime>.content .blink{animation:blinker 2s linear infinite}#realtime>.content .avatar-wrapper{position:relative}#realtime>.content .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .search-input-wrapper{position:relative;margin-left:20px}#realtime>.content .search-input-wrapper label{padding:6px;cursor:pointer}#realtime>.content .search-input-wrapper md-input-container{padding-top:20px}#realtime>.content .main .labels{padding:8px 16px}#realtime>.content .main .labels .label{margin:0 0 2px 4px;padding:2px 5px;font-size:11px;white-space:nowrap;border-radius:2px}#realtime>.content .main .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .main .avatar-wrapper{position:relative}#realtime>.content .main .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .custom-column{padding:0 24px!important}@keyframes blinker{50%{opacity:0}}md-dialog.voicemail-dialog{max-width:720px;width:720px}md-dialog.voicemail-dialog md-dialog-content{display:block;position:relative}md-dialog.voicemail-dialog md-toolbar .title{font-size:17px}md-dialog.voicemail-dialog md-input-container textarea{min-height:150px}md-dialog.voicemail-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.voicemail-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.voicemail-dialog .date-container{padding:16px 0 24px 0}md-dialog.voicemail-dialog .error-list{font-size:13px}md-dialog.voicemail-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.voicemail-dialog .error-list .error .message{font-weight:500}md-dialog.voicemail-dialog .error-list .error .md-button{margin:0}md-dialog.voicemail-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.voicemail-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#voice-voicemail .header{height:76px;min-height:76px;max-height:76px}#voice-voicemail .header .goto-voicemails-button{margin-right:16px}#voice-voicemail .header .voicemail-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#voice-voicemail .header .voicemail-image img{height:100%;width:auto;max-width:none}#voice-voicemail .header .subtitle{margin:6px 0 0 0}#voice-voicemail .voicemail-detail-form-container{padding:24px;margin-bottom:24px}#voice-voicemail .voicemail-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#voice-voicemail .voicemail-detail-form-container .handle{cursor:move}#voice-voicemail .voicemail-detail-form-container md-input-container md-switch{margin:0!important}#voice-voicemail .voicemail-detail-form-container #voicemail-image-uploader{position:relative}#voice-voicemail .voicemail-detail-form-container #voicemail-image-uploader.dropping .drop-text{display:flex}#voice-voicemail .voicemail-detail-form-container #voicemail-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#voice-voicemail .voicemail-detail-form-container #voicemail-image-uploader .upload-button{margin-bottom:16px}#voice-voicemail .voicemail-detail-form-container #voicemail-image-uploader .voicemail-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#voice-voicemail .voicemail-detail-form-container #voicemail-image-uploader .voicemail-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#voice-voicemail .voicemail-detail-form-container #voicemail-image-uploader .voicemail-image .media{max-height:100%}#voice-voicemail md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#voice-voicemail md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#voice-voicemail md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#voice-voicemail md-table-container.font-size-12 td.md-cell{font-size:12px!important}#voicemails{position:relative}#voicemails>.header{height:76px;min-height:76px;max-height:76px}#voicemails>.header .logo .logo-icon{margin:0 16px 0 0}#voicemails>.header .logo .logo-text{font-size:24px}#voicemails>.header md-icon{color:#fff}#voicemails>.header .search-input-wrapper{position:relative}#voicemails>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#voicemails>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#voicemails>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#voicemails>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#voicemails>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#voicemails>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#voicemails>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#voicemails>.header.selected-bar .close-button-wrapper{width:244px}#voicemails>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#voicemails>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#voicemails>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#voicemails #add-voicemail-button{position:fixed;bottom:8px;right:8px;padding:0}#voicemails #upload-voicemail-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.voicePrefix-dialog{max-width:720px;width:720px}md-dialog.voicePrefix-dialog md-dialog-content{display:block;position:relative}md-dialog.voicePrefix-dialog md-toolbar .title{font-size:17px}md-dialog.voicePrefix-dialog md-input-container textarea{min-height:150px}md-dialog.voicePrefix-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.voicePrefix-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.voicePrefix-dialog .date-container{padding:16px 0 24px 0}md-dialog.voicePrefix-dialog .error-list{font-size:13px}md-dialog.voicePrefix-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.voicePrefix-dialog .error-list .error .message{font-weight:500}md-dialog.voicePrefix-dialog .error-list .error .md-button{margin:0}md-dialog.voicePrefix-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.voicePrefix-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#voicePrefixes{position:relative}#voicePrefixes>.header{height:76px;min-height:76px;max-height:76px}#voicePrefixes>.header .logo .logo-icon{margin:0 16px 0 0}#voicePrefixes>.header .logo .logo-text{font-size:24px}#voicePrefixes>.header md-icon{color:#fff}#voicePrefixes>.header .search-input-wrapper{position:relative}#voicePrefixes>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#voicePrefixes>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#voicePrefixes>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#voicePrefixes>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#voicePrefixes>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#voicePrefixes>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#voicePrefixes>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#voicePrefixes>.header.selected-bar .close-button-wrapper{width:244px}#voicePrefixes>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#voicePrefixes>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#voicePrefixes>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#voicePrefixes #add-voicePrefix-button{position:fixed;bottom:8px;right:8px;padding:0}#voicePrefixes #upload-voicePrefix-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.voiceQueue-dialog{max-width:720px;width:720px}md-dialog.voiceQueue-dialog md-dialog-content{display:block;position:relative}md-dialog.voiceQueue-dialog md-toolbar .title{font-size:17px}md-dialog.voiceQueue-dialog md-input-container textarea{min-height:150px}md-dialog.voiceQueue-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.voiceQueue-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.voiceQueue-dialog .date-container{padding:16px 0 24px 0}md-dialog.voiceQueue-dialog .error-list{font-size:13px}md-dialog.voiceQueue-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.voiceQueue-dialog .error-list .error .message{font-weight:500}md-dialog.voiceQueue-dialog .error-list .error .md-button{margin:0}md-dialog.voiceQueue-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.voiceQueue-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#voice-voiceQueue .header{height:76px;min-height:76px;max-height:76px}#voice-voiceQueue .header .goto-voiceQueues-button{margin-right:16px}#voice-voiceQueue .header .voiceQueue-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#voice-voiceQueue .header .voiceQueue-image img{height:100%;width:auto;max-width:none}#voice-voiceQueue .header .subtitle{margin:6px 0 0 0}#voice-voiceQueue .voiceQueue-detail-form-container{padding:24px;margin-bottom:24px}#voice-voiceQueue .voiceQueue-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#voice-voiceQueue .voiceQueue-detail-form-container .handle{cursor:move}#voice-voiceQueue .voiceQueue-detail-form-container md-input-container md-switch{margin:0!important}#voice-voiceQueue .voiceQueue-detail-form-container #voiceQueue-image-uploader{position:relative}#voice-voiceQueue .voiceQueue-detail-form-container #voiceQueue-image-uploader.dropping .drop-text{display:flex}#voice-voiceQueue .voiceQueue-detail-form-container #voiceQueue-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#voice-voiceQueue .voiceQueue-detail-form-container #voiceQueue-image-uploader .upload-button{margin-bottom:16px}#voice-voiceQueue .voiceQueue-detail-form-container #voiceQueue-image-uploader .voiceQueue-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#voice-voiceQueue .voiceQueue-detail-form-container #voiceQueue-image-uploader .voiceQueue-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#voice-voiceQueue .voiceQueue-detail-form-container #voiceQueue-image-uploader .voiceQueue-image .media{max-height:100%}#voice-voiceQueue md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#voice-voiceQueue md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#voice-voiceQueue md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#voice-voiceQueue md-table-container.font-size-12 td.md-cell{font-size:12px!important}#voiceQueues{position:relative}#voiceQueues>.header{height:76px;min-height:76px;max-height:76px}#voiceQueues>.header .logo .logo-icon{margin:0 16px 0 0}#voiceQueues>.header .logo .logo-text{font-size:24px}#voiceQueues>.header md-icon{color:#fff}#voiceQueues>.header .search-input-wrapper{position:relative}#voiceQueues>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#voiceQueues>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#voiceQueues>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#voiceQueues>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#voiceQueues>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#voiceQueues>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#voiceQueues>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#voiceQueues>.header.selected-bar .close-button-wrapper{width:244px}#voiceQueues>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#voiceQueues>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#voiceQueues>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#voiceQueues #add-voiceQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#voiceQueues #upload-voiceQueue-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.voiceRecording-dialog{max-width:720px;width:720px}md-dialog.voiceRecording-dialog md-dialog-content{display:block;position:relative}md-dialog.voiceRecording-dialog md-toolbar .title{font-size:17px}md-dialog.voiceRecording-dialog md-input-container textarea{min-height:150px}md-dialog.voiceRecording-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.voiceRecording-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.voiceRecording-dialog .date-container{padding:16px 0 24px 0}md-dialog.voiceRecording-dialog .error-list{font-size:13px}md-dialog.voiceRecording-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.voiceRecording-dialog .error-list .error .message{font-weight:500}md-dialog.voiceRecording-dialog .error-list .error .md-button{margin:0}md-dialog.voiceRecording-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.voiceRecording-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#voice-voiceRecording .header{height:76px;min-height:76px;max-height:76px}#voice-voiceRecording .header .goto-voiceRecordings-button{margin-right:16px}#voice-voiceRecording .header .voiceRecording-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#voice-voiceRecording .header .voiceRecording-image img{height:100%;width:auto;max-width:none}#voice-voiceRecording .header .subtitle{margin:6px 0 0 0}#voice-voiceRecording .voiceRecording-detail-form-container{padding:24px;margin-bottom:24px}#voice-voiceRecording .voiceRecording-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#voice-voiceRecording .voiceRecording-detail-form-container .handle{cursor:move}#voice-voiceRecording .voiceRecording-detail-form-container md-input-container md-switch{margin:0!important}#voice-voiceRecording .voiceRecording-detail-form-container #voiceRecording-image-uploader{position:relative}#voice-voiceRecording .voiceRecording-detail-form-container #voiceRecording-image-uploader.dropping .drop-text{display:flex}#voice-voiceRecording .voiceRecording-detail-form-container #voiceRecording-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#voice-voiceRecording .voiceRecording-detail-form-container #voiceRecording-image-uploader .upload-button{margin-bottom:16px}#voice-voiceRecording .voiceRecording-detail-form-container #voiceRecording-image-uploader .voiceRecording-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#voice-voiceRecording .voiceRecording-detail-form-container #voiceRecording-image-uploader .voiceRecording-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#voice-voiceRecording .voiceRecording-detail-form-container #voiceRecording-image-uploader .voiceRecording-image .media{max-height:100%}#voice-voiceRecording md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#voice-voiceRecording md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#voice-voiceRecording md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#voice-voiceRecording md-table-container.font-size-12 td.md-cell{font-size:12px!important}#voice-voiceRecording .sentiment.POSITIVE{color:#4caf50;font-size:25px}#voice-voiceRecording .sentiment.NEGATIVE{color:#f40505;font-size:30px}#voice-voiceRecording .sentiment.NEUTRAL{color:#03a9f4;font-size:30px}#voice-voiceRecording .sentiment.MIXED{color:#9c27b0;font-size:30px}#voiceRecordings{position:relative}#voiceRecordings>.header{height:76px;min-height:76px;max-height:76px}#voiceRecordings>.header .logo .logo-icon{margin:0 16px 0 0}#voiceRecordings>.header .logo .logo-text{font-size:24px}#voiceRecordings>.header md-icon{color:#fff}#voiceRecordings>.header .search-input-wrapper{position:relative}#voiceRecordings>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#voiceRecordings>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#voiceRecordings>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#voiceRecordings>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#voiceRecordings>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#voiceRecordings>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#voiceRecordings>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#voiceRecordings>.header.selected-bar .close-button-wrapper{width:244px}#voiceRecordings>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#voiceRecordings>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#voiceRecordings>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#voiceRecordings #add-voiceRecording-button{position:fixed;bottom:8px;right:8px;padding:0}#voiceRecordings #upload-voiceRecording-button{position:fixed;bottom:8px;right:8px;padding:0}#realtime>.content .blink{animation:blinker 2s linear infinite}#realtime>.content .avatar-wrapper{position:relative}#realtime>.content .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .search-input-wrapper{position:relative;margin-left:20px}#realtime>.content .search-input-wrapper label{padding:6px;cursor:pointer}#realtime>.content .search-input-wrapper md-input-container{padding-top:20px}#realtime>.content .main .labels{padding:8px 16px}#realtime>.content .main .labels .label{margin:0 0 2px 4px;padding:2px 5px;font-size:11px;white-space:nowrap;border-radius:2px}#realtime>.content .main .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .main .avatar-wrapper{position:relative}#realtime>.content .main .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .custom-column{padding:0 24px!important}@keyframes blinker{50%{opacity:0}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.whatsappAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#whatsapp-whatsappAccount .header{height:76px;min-height:76px;max-height:76px}#whatsapp-whatsappAccount .header .goto-whatsappAccounts-button{margin-right:16px}#whatsapp-whatsappAccount .header .whatsappAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#whatsapp-whatsappAccount .header .whatsappAccount-image img{height:100%;width:auto;max-width:none}#whatsapp-whatsappAccount .header .subtitle{margin:6px 0 0 0}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container{padding:24px;margin-bottom:24px}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container .handle{cursor:move}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container md-input-container md-switch{margin:0!important}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container #whatsappAccount-image-uploader{position:relative}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container #whatsappAccount-image-uploader.dropping .drop-text{display:flex}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container #whatsappAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container #whatsappAccount-image-uploader .upload-button{margin-bottom:16px}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container #whatsappAccount-image-uploader .whatsappAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container #whatsappAccount-image-uploader .whatsappAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container #whatsappAccount-image-uploader .whatsappAccount-image .media{max-height:100%}#whatsapp-whatsappAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#whatsapp-whatsappAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#whatsapp-whatsappAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#whatsapp-whatsappAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}md-dialog.whatsappCannedAnswer-dialog{max-width:720px;width:720px}md-dialog.whatsappCannedAnswer-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappCannedAnswer-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappCannedAnswer-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappCannedAnswer-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.whatsappCannedAnswer-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.whatsappCannedAnswer-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappCannedAnswer-dialog .error-list{font-size:13px}md-dialog.whatsappCannedAnswer-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappCannedAnswer-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappCannedAnswer-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappCannedAnswer-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappCannedAnswer-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#whatsappAccounts{position:relative}#whatsappAccounts>.header{height:76px;min-height:76px;max-height:76px}#whatsappAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#whatsappAccounts>.header .logo .logo-text{font-size:24px}#whatsappAccounts>.header md-icon{color:#fff}#whatsappAccounts>.header .search-input-wrapper{position:relative}#whatsappAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#whatsappAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#whatsappAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#whatsappAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#whatsappAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#whatsappAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#whatsappAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#whatsappAccounts>.header.selected-bar .close-button-wrapper{width:244px}#whatsappAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#whatsappAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#whatsappAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#whatsappAccounts #add-whatsappAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#whatsappAccounts #upload-whatsappAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.whatsappQueue-dialog{max-width:720px;width:720px}md-dialog.whatsappQueue-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappQueue-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappQueue-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappQueue-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.whatsappQueue-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.whatsappQueue-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappQueue-dialog .error-list{font-size:13px}md-dialog.whatsappQueue-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappQueue-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappQueue-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappQueue-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappQueue-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#whatsapp-whatsappQueue .header{height:76px;min-height:76px;max-height:76px}#whatsapp-whatsappQueue .header .goto-whatsappQueues-button{margin-right:16px}#whatsapp-whatsappQueue .header .whatsappQueue-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#whatsapp-whatsappQueue .header .whatsappQueue-image img{height:100%;width:auto;max-width:none}#whatsapp-whatsappQueue .header .subtitle{margin:6px 0 0 0}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container{padding:24px;margin-bottom:24px}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container .handle{cursor:move}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container md-input-container md-switch{margin:0!important}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container #whatsappQueue-image-uploader{position:relative}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container #whatsappQueue-image-uploader.dropping .drop-text{display:flex}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container #whatsappQueue-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container #whatsappQueue-image-uploader .upload-button{margin-bottom:16px}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container #whatsappQueue-image-uploader .whatsappQueue-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container #whatsappQueue-image-uploader .whatsappQueue-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container #whatsappQueue-image-uploader .whatsappQueue-image .media{max-height:100%}#whatsapp-whatsappQueue md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#whatsapp-whatsappQueue md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#whatsapp-whatsappQueue md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#whatsapp-whatsappQueue md-table-container.font-size-12 td.md-cell{font-size:12px!important}#whatsappQueues{position:relative}#whatsappQueues>.header{height:76px;min-height:76px;max-height:76px}#whatsappQueues>.header .logo .logo-icon{margin:0 16px 0 0}#whatsappQueues>.header .logo .logo-text{font-size:24px}#whatsappQueues>.header md-icon{color:#fff}#whatsappQueues>.header .search-input-wrapper{position:relative}#whatsappQueues>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#whatsappQueues>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#whatsappQueues>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#whatsappQueues>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#whatsappQueues>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#whatsappQueues>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#whatsappQueues>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#whatsappQueues>.header.selected-bar .close-button-wrapper{width:244px}#whatsappQueues>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#whatsappQueues>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#whatsappQueues>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#whatsappQueues #add-whatsappQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#whatsappQueues #upload-whatsappQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#layout-vertical-navigation-fullwidth-toolbar-2 #vertical-navigation{width:240px;min-width:240px;max-width:240px;overflow-x:hidden;transition:all .3s cubic-bezier(.55,0,.55,.2),width .1s linear,min-width .1s linear,max-width .1s linear;box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}#layout-vertical-navigation-fullwidth-toolbar-2 #vertical-navigation .navigation-header{height:64px;min-height:64px;background-color:rgba(255,255,255,.05);padding:0 16px 0 24px}#layout-vertical-navigation-fullwidth-toolbar-2 #vertical-navigation:not(._md-locked-open){box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}@media only screen and (min-width:960px){.ms-navigation-folded #content-container{margin-left:64px}.ms-navigation-folded #layout-vertical-navigation-fullwidth-toolbar-2 #vertical-navigation{position:absolute}.ms-navigation-folded:not(.ms-navigation-folded-open) #layout-vertical-navigation-fullwidth-toolbar-2 #vertical-navigation{position:absolute;width:64px;min-width:64px;max-width:64px}.ms-navigation-folded:not(.ms-navigation-folded-open) #layout-vertical-navigation-fullwidth-toolbar-2 #vertical-navigation .navigation-header{padding:0 16px}.ms-navigation-folded:not(.ms-navigation-folded-open) #layout-vertical-navigation-fullwidth-toolbar-2 #vertical-navigation .navigation-header .logo-text{display:none}}#vertical-navigation{width:240px;min-width:240px;max-width:240px;overflow-x:hidden;transition:all .3s cubic-bezier(.55,0,.55,.2),width .1s linear,min-width .1s linear,max-width .1s linear;box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}#vertical-navigation .navigation-header{height:64px;min-height:64px;background-color:rgba(255,255,255,.05);padding:0 16px 0 24px}#vertical-navigation .navigation-header .logo .logo-image{display:block;width:32px;min-width:32px;height:32px;line-height:32px;text-align:center;font-size:16px;font-weight:500;color:#fff;border-radius:2px}#vertical-navigation .navigation-header .logo .logo-text{color:#fff;margin-left:16px;font-size:16px}#vertical-navigation .navigation-header .fold-toggle{transition:transform .3s ease-in-out .1s;transform:rotate(0);margin:0;padding:8px;width:34px!important;height:34px!important;cursor:pointer}#vertical-navigation:not(._md-locked-open){box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}@media only screen and (min-width:960px){.ms-navigation-folded #content-container{margin-left:64px}.ms-navigation-folded #vertical-navigation{position:absolute}.ms-navigation-folded #vertical-navigation .navigation-header .fold-toggle{transform:rotate(180deg);opacity:0}.ms-navigation-folded.ms-navigation-folded-open #vertical-navigation .navigation-header .fold-toggle{transition:transform .3s ease-in-out .1s,opacity .3s ease-in-out .2s;opacity:1}.ms-navigation-folded:not(.ms-navigation-folded-open) #vertical-navigation{position:absolute;width:64px;min-width:64px;max-width:64px}.ms-navigation-folded:not(.ms-navigation-folded-open) #vertical-navigation .navigation-header{padding:0 16px}.ms-navigation-folded:not(.ms-navigation-folded-open) #vertical-navigation .navigation-header .logo-text{display:none}}#quick-panel{width:330px;min-width:330px;max-width:330px;z-index:99}#quick-panel md-content{height:100%}#quick-panel md-content md-tabs{position:static;height:100%}#quick-panel md-content md-tabs md-tabs-wrapper{background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.06)}#quick-panel md-content md-tabs md-tabs-wrapper .md-tab{max-width:none!important}#quick-panel md-content md-tabs md-tabs-content-wrapper md-tab-content{height:100%;overflow:hidden}#quick-panel md-content md-tabs md-tabs-content-wrapper md-tab-content>div{overflow:hidden;height:100%}.unread-message-count-chat{position:absolute;top:5px;left:10px;width:18px;height:18px;z-index:10;border-radius:50%;text-align:center;line-height:18px;font-size:10px}@media screen and (max-width:600px){#quick-panel{width:80%;min-width:80%;max-width:80%}}#quick-panel .activity-tab .friends .friend{position:relative}#quick-panel .activity-tab .friends .friend .status{position:absolute;top:8px;left:44px;width:18px;height:18px;z-index:10;border-radius:50%;border:3px solid #fff}#quick-panel .activity-tab .friends .friend .status.online{background-color:#00c853}#quick-panel .activity-tab .friends .friend .status.offline{background-color:#d50000}#quick-panel .activity-tab .friends .friend .status.away{background-color:#ff6d00}#quick-panel .activity-tab .friends .friend .unread-message-count{position:absolute;left:16px;bottom:16px;width:18px;height:18px;z-index:10;border-radius:50%;text-align:center;line-height:18px;font-size:11px}#quick-panel .activity-tab .servers .server .status{margin:24px 20px 28px 8px}#quick-panel .activity-tab .servers .server .status.normal{color:#00c853}#quick-panel .activity-tab .servers .server .status.warn{color:#d50000}#quick-panel .activity-tab .servers .server .status.error{color:#ff6d00}#quick-panel .activity-tab .stat md-progress-linear.normal .md-bar{background-color:#00c853}#quick-panel .activity-tab .stat md-progress-linear.normal .md-container{background-color:rgba(0,200,83,.3)}#quick-panel .activity-tab .stat md-progress-linear.warn .md-bar{background-color:#ff6d00}#quick-panel .activity-tab .stat md-progress-linear.warn .md-container{background-color:rgba(255,109,0,.3)}#quick-panel .activity-tab .stat md-progress-linear.alert .md-bar{background-color:#d50000}#quick-panel .activity-tab .stat md-progress-linear.alert .md-container{background-color:rgba(213,0,0,.3)}#quick-panel .chat-tab .chat,#quick-panel .chat-tab .main{position:absolute;width:100%;top:0;bottom:0}#quick-panel .chat-tab .main .contact{position:relative}#quick-panel .chat-tab .main .contact .status{position:absolute;top:8px;left:44px;width:18px;height:18px;border:3px solid #fff;border-radius:50%;z-index:10}#quick-panel .chat-tab .main .contact .status.online{background-color:#00c853}#quick-panel .chat-tab .main .contact .status.offline{background-color:#d50000}#quick-panel .chat-tab .main .contact .status.away{background-color:#ff6d00}#quick-panel .chat-tab .main .contact .unread-message-count{position:absolute;left:16px;bottom:16px;width:18px;height:18px;z-index:10;border-radius:50%;text-align:center;line-height:18px;font-size:11px}#quick-panel .chat-tab .main .recent .contact .status{top:18px}#quick-panel .chat-tab .chat{max-height:100%;overflow:hidden}#quick-panel .chat-tab .chat .message-row .bubble{position:relative;padding:8px;background-color:#eceff1;border:1px solid #dcdfe1}#quick-panel .chat-tab .chat .message-row .bubble:after,#quick-panel .chat-tab .chat .message-row .bubble:before{content:' ';position:absolute;width:0;height:0}#quick-panel .chat-tab .chat .message-row .bubble:after{left:-7px;right:auto;top:0;bottom:auto;border:11px solid;border-color:#eceff1 transparent transparent transparent}#quick-panel .chat-tab .chat .message-row .bubble:before{left:-9px;right:auto;top:-1px;bottom:auto;border:8px solid;border-color:#dcdfe1 transparent transparent transparent}#quick-panel .chat-tab .chat .message-row .bubble .time{font-size:11px;margin-top:8px}#quick-panel .chat-tab .chat .message-row .bubble .message{word-wrap:break-word}#quick-panel .chat-tab .chat .message-row.contact .avatar{margin:0 16px 0 0}#quick-panel .chat-tab .chat .message-row.user{align-items:flex-end}#quick-panel .chat-tab .chat .message-row.user .avatar{order:2;margin:0 0 0 16px}#quick-panel .chat-tab .chat .message-row.user .bubble{background-color:#e8f5e9;border:1px solid #dfebe0;order:1}#quick-panel .chat-tab .chat .message-row.user .bubble:after{right:-7px;left:auto;top:auto;bottom:0;border-color:transparent transparent #e8f5e9 transparent}#quick-panel .chat-tab .chat .message-row.user .bubble:before{right:-9px;left:auto;top:auto;bottom:-1px;border-color:transparent transparent #dfebe0 transparent}#quick-panel .chat-tab .chat .reply{border-top:1px solid rgba(0,0,0,.12)}#quick-panel .chat-tab .chat .reply textarea{margin:8px;resize:none;padding:8px 16px 8px 8px}md-dialog.group-dialog{max-width:720px;width:720px}md-dialog.group-dialog md-dialog-content{display:block;position:relative}md-dialog.group-dialog md-toolbar .title{font-size:17px}md-dialog.group-dialog md-input-container textarea{min-height:150px}md-dialog.group-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.group-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.group-dialog .date-container{padding:16px 0 24px 0}md-dialog.group-dialog .error-list{font-size:13px}md-dialog.group-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.group-dialog .error-list .error .message{font-weight:500}md-dialog.group-dialog .error-list .error .md-button{margin:0}md-dialog.group-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.group-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#quick-panel .group-tab .chat,#quick-panel .group-tab .main{position:absolute;width:100%;top:0;bottom:0}#quick-panel .group-tab .main .contact{position:relative}#quick-panel .group-tab .main .contact .status{position:absolute;top:8px;left:44px;width:18px;height:18px;border:3px solid #fff;border-radius:50%;z-index:10}#quick-panel .group-tab .main .contact .status.online{background-color:#00c853}#quick-panel .group-tab .main .contact .status.offline{background-color:#d50000}#quick-panel .group-tab .main .contact .status.away{background-color:#ff6d00}#quick-panel .group-tab .main .contact .unread-message-count{position:absolute;left:16px;bottom:16px;width:18px;height:18px;z-index:10;border-radius:50%;text-align:center;line-height:18px;font-size:11px}#quick-panel .group-tab .main .recent .contact .status{top:18px}#quick-panel .group-tab .chat{max-height:100%;overflow:hidden}#quick-panel .group-tab .chat .message-row{padding:8px}#quick-panel .group-tab .chat .message-row .bubble{position:relative;padding:8px;background-color:#eceff1;border:1px solid #dcdfe1}#quick-panel .group-tab .chat .message-row .bubble:after,#quick-panel .group-tab .chat .message-row .bubble:before{content:' ';position:absolute;width:0;height:0}#quick-panel .group-tab .chat .message-row .bubble:after{left:-7px;right:auto;top:0;bottom:auto;border:11px solid;border-color:#eceff1 transparent transparent transparent}#quick-panel .group-tab .chat .message-row .bubble:before{left:-9px;right:auto;top:-1px;bottom:auto;border:8px solid;border-color:#dcdfe1 transparent transparent transparent}#quick-panel .group-tab .chat .message-row .bubble .time{font-size:11px;margin-top:8px}#quick-panel .group-tab .chat .message-row .bubble .message{word-wrap:break-word}#quick-panel .group-tab .chat .message-row.contact .avatar{margin:0 16px 0 0}#quick-panel .group-tab .chat .message-row.user{align-items:flex-end}#quick-panel .group-tab .chat .message-row.user .avatar{order:2;margin:0 0 0 16px}#quick-panel .group-tab .chat .message-row.user .bubble{background-color:#e8f5e9;border:1px solid #dfebe0;order:1}#quick-panel .group-tab .chat .message-row.user .bubble:after{right:-7px;left:auto;top:auto;bottom:0;border-color:transparent transparent #e8f5e9 transparent}#quick-panel .group-tab .chat .message-row.user .bubble:before{right:-9px;left:auto;top:auto;bottom:-1px;border-color:transparent transparent #dfebe0 transparent}#quick-panel .group-tab .chat .reply{border-top:1px solid rgba(0,0,0,.12)}#quick-panel .group-tab .chat .reply textarea{margin:8px;resize:none;padding:8px 16px 8px 8px}md-dialog.group-dialog{max-width:720px;width:720px}md-dialog.group-dialog md-dialog-content{display:block;position:relative}md-dialog.group-dialog md-toolbar .title{font-size:17px}md-dialog.group-dialog md-input-container textarea{min-height:150px}md-dialog.group-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.group-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.group-dialog .date-container{padding:16px 0 24px 0}md-dialog.group-dialog .error-list{font-size:13px}md-dialog.group-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.group-dialog .error-list .error .message{font-weight:500}md-dialog.group-dialog .error-list .error .md-button{margin:0}md-dialog.group-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.group-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#reset-password{height:100%;background:url(/assets/images/backgrounds/tech.png) no-repeat;background-size:cover}#reset-password #reset-password-form-wrapper{flex:1 0 auto;padding:32px}#reset-password #reset-password-form-wrapper #reset-password-form{width:384px;max-width:384px;padding:32px;text-align:center;background:#fff}#reset-password #reset-password-form-wrapper #reset-password-form .logo{width:128px;height:128px;line-height:128px;font-size:86px;font-weight:500;margin:32px auto;color:#fff;border-radius:2px}#reset-password #reset-password-form-wrapper #reset-password-form .title{font-size:17px;margin:16px 0 32px 0}#reset-password #reset-password-form-wrapper #reset-password-form .logo_login{max-height:200px}#reset-password #reset-password-form-wrapper #reset-password-form form{width:100%;text-align:left}#reset-password #reset-password-form-wrapper #reset-password-form form .submit-button{width:220px;margin:16px auto;display:block}#reset-password #reset-password-form-wrapper #reset-password-form .login{margin:32px auto 24px auto;width:250px;font-weight:500}#reset-password #reset-password-form-wrapper #reset-password-form .login .text{margin-right:8px}@media screen and (max-width:600px){#reset-password #reset-password-form-wrapper{padding:16px}#reset-password #reset-password-form-wrapper #reset-password-form{padding:24px;width:100%}#reset-password #reset-password-form-wrapper #reset-password-form form .md-button{width:90%}}md-dialog.preview-dialog{max-width:1020px;width:1020px}md-dialog.preview-dialog md-dialog-content{display:block;position:relative;padding:0}md-dialog.preview-dialog md-toolbar .title{font-size:17px}md-dialog.preview-dialog md-input-container textarea{min-height:150px}md-dialog.preview-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.preview-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.preview-dialog .date-container{padding:16px 0 24px 0}md-dialog.preview-dialog .error-list{font-size:13px}md-dialog.preview-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.preview-dialog .error-list .error .message{font-weight:500}md-dialog.preview-dialog .error-list .error .md-button{margin:0}md-dialog.preview-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.preview-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#toolbar{height:64px;min-height:64px;max-height:64px;z-index:55!important}#toolbar .blink{animation:blinker 2s linear infinite}#toolbar #navigation-toggle{width:64px;min-width:64px;height:64px;margin:0;border-right:1px solid rgba(0,0,0,.12);border-radius:0}#toolbar .logo-image{display:block;width:32px;min-width:32px;height:32px;line-height:32px;text-align:center;font-size:16px;font-weight:500;color:#fff;border-radius:2px;margin-left:10px;margin-right:8px}#toolbar #user-menu{height:64px;padding:0}#toolbar #user-menu md-menu-item .md-button{font-size:15px}#toolbar #user-menu md-menu-item .md-button md-icon{margin:auto 16px auto 0}#toolbar #user-menu .user-button{margin:0;padding:0 16px;height:64px;text-transform:none}#toolbar #user-menu .user-button .avatar-wrapper{position:relative}#toolbar #user-menu .user-button .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#toolbar #user-menu .user-button .username{margin:0 12px 0 8px}#toolbar #language-menu{height:64px}#toolbar #language-menu .language-button{min-width:64px;height:64px;margin:0;padding:0 16px;border-radius:0}#toolbar #language-menu .language-button .iso{text-transform:uppercase}#toolbar #language-menu .language-button .flag{margin-right:8px}#toolbar #quick-panel-toggle{width:64px;height:64px;margin:0;border-radius:0}#toolbar #quick-panel-toggle .unread-message-count{position:absolute;top:8px;left:38px;width:18px;height:18px;z-index:10;border-radius:50%;text-align:center;line-height:18px;font-size:10px}#toolbar .toolbar-separator{height:64px;width:1px;background:rgba(0,0,0,.12)}#language-menu-content md-menu-item .flag{margin-right:16px}#language-message{min-height:88px;max-width:600px}#language-message .md-toast-content{height:90px}.open-contact-count{position:absolute;top:1px;left:25px;width:18px;height:18px;z-index:10;border-radius:50%;text-align:center;line-height:18px;font-size:10px}.md-button.preview-button{min-width:46px;min-height:50px}@media screen and (max-width:600px){#toolbar #user-menu .user-button{min-width:64px;padding:0 2px 0 10px}}.geEditor{font-family:Helvetica Neue,Helvetica,Arial Unicode MS,Arial;font-size:10pt;overflow:hidden;height:100%}.geMenubarContainer .geItem,.geSidebarContainer .geTitle,.geToolbar .geButton,.geToolbar .geLabel{cursor:pointer!important}.geContentEditable div,.geContentEditable table,.geContentEditable table td{border:1px dashed #d3d3d3}.geBackgroundPage{-webkit-box-shadow:0 0 3px 0 #d9d9d9;-moz-box-shadow:0 0 3px 0 #d9d9d9;box-shadow:0 0 3px 0 #d9d9d9}.geMenubarContainer a,.geSidebarContainer a,.geToolbar a{color:#000!important;text-decoration:none}.geDiagramContainer,.geFooterContainer,.geHsplit,.geMenubarContainer,.geOutlineContainer,.geSidebarContainer,.geToolbarContainer,.geVsplit{overflow:hidden;position:absolute;cursor:default}.geDiagramContainer,.geOutlineContainer{background-color:#fff;outline:0}.geMenubar,.geToolbar{white-space:nowrap;display:block;width:100%}.geMenubarContainer .geItem,.geSidebar,.geSidebar .geItem,.geSidebarContainer .geTitle,.geToolbar .geButton,.geToolbar .geLabel,.mxPopupMenuItem{-webkit-transition:all .1s ease-in-out;-moz-transition:all .1s ease-in-out;-o-transition:all .1s ease-in-out;-ms-transition:all .1s ease-in-out;transition:all .1s ease-in-out}.geHint{background-color:#fff;border:1px solid gray;padding:4px 16px 4px 16px;border-radius:3px;-webkit-box-shadow:1px 1px 2px 0 #ddd;-moz-box-shadow:1px 1px 2px 0 #ddd;box-shadow:1px 1px 2px 0 #ddd;opacity:.8}.geStatusAlert{white-space:nowrap;margin-top:-5px;font-size:12px;padding:4px 6px 4px 6px;background-color:#f2dede;border:1px solid #ebccd1;color:#a94442!important;border-radius:3px}.geStatusAlert:hover{background-color:#f1d8d8;border-color:#d6b2b8}.geStatusMessage{white-space:nowrap;margin-top:-5px;padding:4px 6px 4px 6px;font-size:12px;background-image:-webkit-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#c8e5bc));background-image:linear-gradient(to bottom,#dff0d8 0,#c8e5bc 100%);background-repeat:repeat-x;border:1px solid #b2dba1;border-radius:3px;color:#3c763d!important}.geStatusMessage:hover{background:#c8e5bc;border-color:#b2dba1}.geAlert{position:absolute;white-space:nowrap;padding:14px;background-color:#f2dede;border:1px solid #ebccd1;color:#a94442;border-radius:3px;-webkit-box-shadow:2px 2px 3px 0 #ddd;-moz-box-shadow:2px 2px 3px 0 #ddd;box-shadow:2px 2px 3px 0 #ddd}.geBtn{background-color:#f5f5f5;border-radius:2px;border:1px solid #d8d8d8;color:#333;cursor:default;font-size:11px;font-weight:700;height:29px;line-height:27px;margin:0 0 0 8px;min-width:72px;outline:0;padding:0 8px;cursor:pointer}.geBtn:hover{-webkit-box-shadow:0 1px 1px rgba(0,0,0,.1);-moz-box-shadow:0 1px 1px rgba(0,0,0,.1);box-shadow:0 1px 1px rgba(0,0,0,.1);border:1px solid #c6c6c6;background-color:#f8f8f8;background-image:linear-gradient(#f8f8f8 0,#f1f1f1 100%);color:#111}.geBtn:disabled{opacity:.5}.geBtnUp{background-image:url(data:image/gif;base64,R0lGODlhCgAGAJECAGZmZtXV1f///wAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0QzM3ODJERjg4NUQxMUU0OTFEQ0E2MzRGQzcwNUY3NCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0QzM3ODJFMDg4NUQxMUU0OTFEQ0E2MzRGQzcwNUY3NCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjRDMzc4MkREODg1RDExRTQ5MURDQTYzNEZDNzA1Rjc0IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjRDMzc4MkRFODg1RDExRTQ5MURDQTYzNEZDNzA1Rjc0Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Af/+/fz7+vn49/b19PPy8fDv7u3s6+rp6Ofm5eTj4uHg397d3Nva2djX1tXU09LR0M/OzczLysnIx8bFxMPCwcC/vr28u7q5uLe2tbSzsrGwr66trKuqqainpqWko6KhoJ+enZybmpmYl5aVlJOSkZCPjo2Mi4qJiIeGhYSDgoGAf359fHt6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNiYWBfXl1cW1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMCAQAAIfkEAQAAAgAsAAAAAAoABgAAAg6UjwiQBhGYglCKhXFLBQA7);background-position:center center;background-repeat:no-repeat}.geBtnUp:active{background-color:#4d90fe;background-image:linear-gradient(#4d90fe 0,#357ae8 100%)}.geBtnDown{background-image:url(data:image/gif;base64,R0lGODlhCgAGAJECANXV1WZmZv///wAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0QzM3ODJEQjg4NUQxMUU0OTFEQ0E2MzRGQzcwNUY3NCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0QzM3ODJEQzg4NUQxMUU0OTFEQ0E2MzRGQzcwNUY3NCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjRDMzc4MkQ5ODg1RDExRTQ5MURDQTYzNEZDNzA1Rjc0IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjRDMzc4MkRBODg1RDExRTQ5MURDQTYzNEZDNzA1Rjc0Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Af/+/fz7+vn49/b19PPy8fDv7u3s6+rp6Ofm5eTj4uHg397d3Nva2djX1tXU09LR0M/OzczLysnIx8bFxMPCwcC/vr28u7q5uLe2tbSzsrGwr66trKuqqainpqWko6KhoJ+enZybmpmYl5aVlJOSkZCPjo2Mi4qJiIeGhYSDgoGAf359fHt6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNiYWBfXl1cW1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMCAQAAIfkEAQAAAgAsAAAAAAoABgAAAg6UjxLLewEiCAnOZBzeBQA7);background-position:center center;background-repeat:no-repeat}.geBtnDown:active{background-color:#4d90fe;background-image:linear-gradient(#4d90fe 0,#357ae8 100%)}.geColorBtn{background-color:#f5f5f5;background-image:linear-gradient(#f5f5f5 0,#e1e1e1 100%);border-radius:4px;border:1px solid rgba(0,0,0,.5);color:#333;cursor:default;margin:0;outline:0;padding:0;cursor:pointer}.geColorBtn:hover{-webkit-box-shadow:0 1px 1px rgba(0,0,0,.1);-moz-box-shadow:0 1px 1px rgba(0,0,0,.1);box-shadow:0 1px 1px rgba(0,0,0,.1);border:1px solid rgba(0,0,0,.7)}.geColorBtn:active{background-color:#4d90fe;background-image:linear-gradient(#4d90fe 0,#357ae8 100%);border:1px solid #2f5bb7;color:#fff}.geColorBtn:disabled{opacity:.5}.gePrimaryBtn{background-color:#4d90fe;background-image:linear-gradient(#4d90fe 0,#4787ed 100%);border:1px solid #3079ed;color:#fff}.gePrimaryBtn:hover{background-color:#357ae8;background-image:linear-gradient(#4d90fe 0,#357ae8 100%);border:1px solid #2f5bb7;color:#fff}.gePrimaryBtn:disabled{opacity:.5}.geAlertLink{color:#843534;font-weight:700;text-decoration:none}.geMenubarContainer{background-color:#fff}.geMenubar{padding:0 2px 0 2px;vertical-align:middle}.geMenubarContainer .geItem,.geToolbar .geItem{padding:6px 8px 6px 8px;cursor:default}.geMenubarContainer .geItem:hover,.geToolbarContainer .geItem:hover{background:#eee}.mxDisabled:hover{background:inherit!important}.geMenubar a.geStatus{color:#b3b3b3;padding-left:6px;display:inline-block;cursor:default!important}.geMenubar a.geStatus:hover{background:0 0}.geMenubarMenu{border:1px solid #d5d5d5!important}.geToolbarContainer{background:#f5f5f5;border-bottom:1px solid #e0e0e0}.geSidebarContainer .geToolbarContainer{background:0 0;border-bottom:none}.geSidebarContainer button{text-overflow:ellipsis;overflow:hidden}.geToolbar{padding:1px 0 0 6px;border-top:1px solid #e0e0e0;-webkit-box-shadow:inset 0 1px 0 0 #fff;-moz-box-shadow:inset 0 1px 0 0 #fff;box-shadow:inset 0 1px 0 0 #fff}.geToolbarContainer .geSeparator{float:left;width:1px;height:34px;background:#e5e5e5;margin-left:6px;margin-right:6px;margin-top:-2px}.geToolbarContainer .geButton{float:left;width:20px;height:20px;padding:0 2px 4px 2px;margin:2px;border:1px solid transparent;cursor:pointer;opacity:.6}.geToolbarContainer .geButton:hover{border:1px solid gray;border-radius:2px;opacity:1;filter:none!important}.geToolbarContainer .geButton:active{border:1px solid #000}div.mxWindow .geButton{margin:-1px 2px 2px 2px;padding:1px 2px 2px 1px}.geToolbarContainer .geLabel{float:left;margin:2px;cursor:pointer;padding:3px 5px 3px 5px;border:1px solid transparent;opacity:.6}.geToolbarContainer .geLabel:hover{border:1px solid gray;border-radius:2px;opacity:.9}.geToolbarContainer .geLabel:active{border:1px solid #000;opacity:1;filter:none!important}.geToolbarContainer .mxDisabled:hover{border:1px solid transparent!important;opacity:.2!important}.geToolbarMenu{border:3px solid #e0e0e0!important;-webkit-box-shadow:none!important;-moz-box-shadow:none!important;box-shadow:none!important;filter:none!important}.geDiagramBackdrop{background-color:#ebebeb;border-style:solid;border-color:#e5e5e5;border-width:1px 0 0 1px}.geSidebarContainer{background:#fff;overflow:hidden;position:absolute;border-top:1px solid #e5e5e5;overflow:auto}.geSidebar{background:#f5f5f5;border-bottom:1px solid #e5e5e5;padding:5px;padding-bottom:12px;overflow:hidden}.geSidebarContainer .geTitle{display:block;font-size:9pt;border-bottom:1px solid #e5e5e5;font-weight:400;padding:6px 0 6px 14px;margin:0;cursor:default;background:#eee;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.4em}.geSidebarContainer .geTitle:hover{background:#e5e5e5}.geTitle img{opacity:.5}.geTitle img:hover{opacity:1}.geSidebar .geItem{display:inline-block;background-repeat:no-repeat;background-position:50% 50%;border:1px solid transparent;border-radius:2px;cursor:move}.geSidebar .geItem:hover{border:1px solid gray!important}.geItem{vertical-align:top;display:inline-block}.geSidebarTooltip{position:absolute;background:#fff;overflow:hidden;border:1px solid gray;border-radius:8px;-webkit-box-shadow:0 0 2px 2px #d5d5d5;-moz-box-shadow:0 0 2px 2px #d5d5d5;box-shadow:0 0 2px 2px #d5d5d5}.geFooterContainer{background:#e5e5e5;border-top:1px solid silver}.geFooterContainer a{font-size:14px;color:#235695;font-weight:700;text-decoration:none}.geFooterContainer table{border-collapse:collapse;margin:0 auto}.geFooterContainer td{border-left:1px solid silver;border-right:1px solid silver}.geFooterContainer td:hover{background-color:#b3b3b3}.geFooterContainer a{display:block;box-sizing:border-box;width:100%;height:100%;padding:11px 42px 11px 42px;white-space:nowrap}.geHsplit{cursor:col-resize;background-color:#e5e5e5;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAHBAMAAADdS/HjAAAAGFBMVEUzMzP///9tbW1QUFCKiopBQUF8fHxfX1/IXlmXAAAAHUlEQVQImWMQEGAQFWUQFmYQF2cQEmIQE2MQEQEACy4BF67hpEwAAAAASUVORK5CYII=);background-repeat:no-repeat;background-position:center center}.geVsplit{font-size:1pt;cursor:row-resize;background-color:#e5e5e5;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAEBAMAAACw6DhOAAAAGFBMVEUzMzP///9tbW1QUFCKiopBQUF8fHxfX1/IXlmXAAAAFElEQVQImWNgNVdzYBAUFBRggLMAEzYBy29kEPgAAAAASUVORK5CYII=);background-repeat:no-repeat;background-position:center center}.geHsplit:hover,.geVsplit:hover{background-color:#d5d5d5}.geDialog{position:absolute;background:#fff;overflow:hidden;padding:30px;border:1px solid #acacac;-webkit-box-shadow:0 0 2px 2px #d5d5d5;-moz-box-shadow:0 0 2px 2px #d5d5d5;box-shadow:0 0 2px 2px #d5d5d5;z-index:2}.geDialogClose{position:absolute;width:9px;height:9px;opacity:.5;cursor:pointer}.geDialogClose:hover{opacity:1}.geDialogTitle{box-sizing:border-box;white-space:nowrap;background:#e5e5e5;border-bottom:1px solid silver;font-size:15px;font-weight:700;text-align:center;color:#235695}.geDialogFooter{background:#f5f5f5;white-space:nowrap;text-align:right;box-sizing:border-box;border-top:1px solid #e5e5e5;color:#a9a9a9}.geSprite{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAk/CAYAAACauMYVAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAsTAAALEwEAmpwYAAABWWlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyI+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgpMwidZAAAWn0lEQVR4Ae2dW4gdxdbHO0aJYjzxTtR4EhSDSNB84kPEQOL9CB/Ex4igg8iAGCSgiIIQH1SOqJAnn4N4wBdvYBRBcYTIp0+OF0SDYoJRgyAmeA1e5lv/PrM6q6urqqu7a2/3ZP4NPVVdtda/Vv2qZ9Nrd++9i2IE2xJoHn/88XOq/ccff5RtepxSuv7HqxPE0GkNtC+lVH/YjiTSKoi+EaqA9T9OG3OW4xNdu3btHPZY9DGbRqRtYhiozaYhunfvXu95aoVCNjqzhqh2uGWbkLVPFrWRWgFfvSFqnW3dOtt2W7c2Zd2evI3OhAbr34g0wb/VZOGIjuRVagG+nrYuKQ1IgARIgARIgARIgARIoEbAm93BwmYb1mP58uXFoUOHgn6wTUok8K4Ddgj+9NNPxamnnhpNhpNENdL169eXVQj32jB93VUAEaJNxKORBtmEmGIAoNCBfGXS9C1TiLRF6huobNOp24g3b97cQBIU8HX4RJVp2+oH2dgI7aAp56m1Z50ESIAESIAESIAESIAESGCREtBMJXX6SclZqpjaUVRJ5CuPEabI623ii3rvXN/SVeFsgioO4SwRquDElNU7E3ZB+kTX9g5QH036kAAJkAAJkAAJkAAJkMDEEqiupBFh36vpsVxF1yJVnqkRjyVCDaoWaWqE6qzlWCKuRaojp0Y8lgg1qFqkqRGqs5ZjibgWqY6cGvFYItSgWJIACZAACZAACZAACZDAJBHwXknbAENX1bGr6IZoSMQO5KvbQUZyi9M36OC2xvRVMRWDnbb6jmT6FFW8+UoyzcdSlUbCVMVZkgAJkAAJkAAJkAAJTCqB1Pypc/yu8Jo1a6KfhE0eAMI7duyYS/04aJIwBCGsUeL507bPmbYKQwCCFsUgYQjaJ2MHC7uCvim1RVxLzSHY5YPUq1atKvbt21fTQBC9sxN8ltcnCNHGKCnR2g8HP/TQQ+U5/Mgjj1RajUjxiXc4hTYrCJtff/213K19pW4bUfdF7Aree++9tf+0p556qtRrRKribsSuoNr1KhEx9pAzonUjDtmynQRIgARIgARIgARIgASOGQLlNbrN6Hy3LNtm6/ovwC+qtVNom66v3/p7Ux4YuLsrZLNst686tiO5grZPHdCmbzCgzdp4I1VHX6kDou/AgQOFFW7Y25HU0ZauA/ps0mb9O0eq4uvWrWv9OrgaE3XsUmaJNDZgdPp29JiI2xcVdY1Tj72iOLE1SpRJJ7pvRBXRPpwuaLOnjfb5Ste/tPE1Rk9sR9n68/XUgcNDEiABEiABEiABEjgmCTTunMkl4Z65ublVbbM97rjj3v3999+3+uyqLFo7Ifjqq6+ulq1YsqQxJr6huXj77beLe+65Z5/6uGVDFAZysVtcdNFFXlGJrpDfPSp13nrrLczouauvvnpj2TD/x3vNjz5flOooUy8uvPDCDV9//fX/yb3ADc8///we7UMZFEXnn3/+WbzwwgvF559/XiBCbCeccEJx/fXXF4899tiyxx9/fNXpp5++VO4K19bAO/3SW/4goquuuqp4+OGHi08//bQ8vuyyy4rbb7+9ePTRR4svvvjioAyy9a+//jqiPt5y6dKl+z777DNZr6Pb+++/P3fHHXfMSd/cGWecMXf55Zcjc3lfBDZ4RdxGnyjkZ2Zm5q655ppSGOIiOuP66nGUKYx++eWX4pVXXilXfGpqqnjppZcKuZNbyDjrzzvvvJk33njjORXTMioqrIoPPvigPDdxmm3cuLG49tpri5tvvrm47bbbVkj/pp9//vlfL7744nYVRBldKBgsW7asEIbFWWedVZx00kkFBvrtt9/QVZ520r/ihx9+gOjOslH+REWx+hC0G04zWcjimWee2X/OOefsWrFiRfHtt98esjZeUTji39H3D4B29EvfPnkP5eErr7zS6pV1r+h7771XfPXVV0HRjz76qCFkGxqvGHIyPycru9Ia+eoS6az8l9UWyGfHNhIgARIgARIgARIgARLoQKBxfer6fvLJJ899/PHHZb506aWXvnvxxRdvdW3c48aV9O7du/eIUZUW3nXXXStvvPHGZbhUf/rpp1dK/z4VQUp5ySWXHJAHhuMJ75133rlKcqfVJ5988mpJJFYfPnx42ZNPPlk88cQTuPu4DG3og83999+/WjKTKgAdrJFHfffdd8Xs7OxWcd4sD//Ofvnll4UIlzvqDz74YCGPkIvJ7Nbvv/++TCpULFgijZTO1TK1nVI/hJTR3edTyNXnn3/+nIjDvrY1mGqvJAm7pP6iHjvlYee4dhgUffPNN9dLzrQG1sjyZJu56aabZlCZ31ZrxS2DoiI0Jcab4IDMT7bNr7/++gwqSMxuuOGGt1D3bY2F8hnNt22S/Goq0l91BSOtLI5W3paId0mEu+abuk8fGR1OeIlOme4Spip4dChPLRjpdddd1ztF7MLUE5O/aSSioek3/p89MZU2YO5uDVFZnAPyb/kf19B3LIL7pf2Ar49tJEACJEACJEACJEAC/Qh4c1O5sfWhXHz9MyK5Rx51/N9Qf+OqD4abNm36hxQrQk5XXHHFvyQz/PDss8++1GfjFf3xxx+RHm595513tp944ollBq3Octfs3YMHD+6US87/iPAeEd6ofVp6Rec7D956662N+6FHjhz5Hxl055lnnrlUbnduEFR75F5qTTgmWj5d/OyzzxYbNtSCXSaDrsSTx7fccstSYd+46o6KIuKVK1cWuIPeZWsVhZjcyC6++eYbPExcyLQLyZ6jYySJ4pamvFlQ3vPDImKXvCAo3CnlQSaCtzgQKcrQ1kkU2TQ+y3vKKafkiRR5KkSBAnxjWzDSBx54YEpuYJfLftpppxUXXHBBsWbNmkLOzZhe2ecVlYh2Crf9El352iBPG+BxhlIY4ueee24lLJxXvPbaaw9UDVLxrr68f7Lz7rvvxim0Wd548Z6k8q9a6sg7GKdKBaL/Lhvkj1dUOyXQ2fvuu08PG6Xc4C5PM7Hr+ZvkDUk2kAAJkAAJkAAJkAAJkAAJLFYC3vdQXBiS+jRvj4mR3AFO8nf1quPt27d3+qho5RirINpQxK6fN410jTZv3lxOH19Rlm3rEiUGbY1UMucySjzNnW3rGmVrpPqh4G3btnUK0nuehVZ58HnZKTQakwAJkAAJkAAJkAAJkAAJZCBQu+YPXeu3jTOWXKBXpGOJzMXTK1JXZCyR94p0LJG5OHpF6oqMJfJekY4lMhcHj0mABEiABEiABEiABEhgnkDXe1Ktd876kKVomJr9ZmFYYcF6f7uwHUaFswmqOISzRKiCE1NWGV/f9090JsdwFph99bOfp1ZQX/6yna8qqCvdVvKlr40Q+0mABEiABEiABEiABBY8gSqP8s2kLbcK5U4juZL2BTi4rTH9timHRrQoBk3fCtnBBomGZjVI1EZn69EPBsMwNMVQlPAZSaQQDm6xaGJ9I4m0lWksouAU2UECJEACJEACJEACJEACJEACWQnITzuVP5mLDEX3Qff4VCRUWnHYtM4GRvpZaDXGJ7j1B391IHusdt5SPwzs7ZRGDKaitgzZF4gm2Gk65JeuGsKmu55F4wemUjb50a+oWeM9lKi1dAKP/Fhawyz0vkDDkA0kQAIkQAIkQAIkQAIkQAILnkAtkUBe1GdGY0kiapG6UaZGPv5IUyNzZzT+SN0IUiMff6SpkbkzGn+kbgSpkY8lUjc4HpMACZAACZAACZAACZAACaQQaOSmqdf5Vty95h/vQ63u6DYyrYdmlSXS6enpOew6WBZRFdOSokoiXxl8Tjp0uqQMPZKFakRqT3p77qVEqDYjiVTFWZIACZAACZAACZAACZDARBKQa/0P5XeLD0lwbT8Z9E/Ywd6dSONKWn5XV38qO/yLyP9VQQa+Yt6+ptsQrfX2PFjkoo08SjHKyk7JzwtfrceeEovkaY5/2nhKnFb7vNAu+3ZfH9qCkaJTfjB9lxSHZcdT2ftl3yc7tk2YCSq+rXX15eTeKQIzUk75BHxtraI+p7a2hqgszgFx+lMd5Ri/Nr1fSvzrJm0NppJFb5Sp7pGFwI+aHZFfud4KJeFrBfEb8mCMH6FGENxIgARIgARIgARIgARIYHERQNJabnL17E+K1KCltPexWkwXWjc+WWw/XTw4foiBN/YswlYwqzCmqoKp025kfKmOMTuKxuj061s4TPvNj14kQAIkQAIkQAIkQAIkQAIBAqEsL9RuZRZOIsFI7bodra9ahdumRbFjx47qXSCta99R63qtegup3vzfI5w+vva2t4uiCwVnGxXqbYK+ILK0eacfmrY74t8WtRsIj0mABEiABEiABEiABEiABBYBAffWMb6lGd/dnTx1+63Xrpi+eWDLJGE4QBi7dcax+63Y+rXarcJWSOvuF4C7InZ2bl95rEJa4ru4vYZOozuLaMLb9l3cqu1+t3ctN0WEaqjl8uXLi0OHDtXstI8lCZAACZAACZAACZAACZAACTQIuFkfjhtGnoZg1uHLVNS/7Y6ZN49SwW3btpU3CiGCHcfYtF8HaS11yjaLW7t2bTVttEM0FUU5IBzcSKwojHw2NtoGUxXEdF0xOO7du3eJtbFiwbovClfcZ2MFGwu1bt26st8ytQ7arna2L1rXSFRAjXWRdPranlyqcKjstPp2VD29VFiFtF2Prc+g+tiFG6vfJfzZ2dklOAsk6i5utCUBEiABEiABEiABEiCBySGgl+DuNX9bhI2MTx0gpHW3nNws2kaqCVqndEf5WSG33mbT+H4pK+AmuuhDFm1tkuptUUCkzaaRR2l27Ca7GpG2q522t5YaiQqogy4S+rWtU6nCobLT6tuRQ/9R2t5b2A5i62MXbqy+jaatziy6jRD7SYAESIAESIAESOBYJtA9ffHQsDkAUsxoHmX9raNt13opNp9gJIvCOZToarKhAySXbZFaoUGX51bI1ilqaeSpk2kejlZlkTMtX6Xsi0Xolcgya6tXL336emgHaHMO9Zev/FYoR6ShwdhOAiRAAiRAAiRAAscYgZFk0dmupO2FXTZRe+WYbTWtaLZIbXQUtTTy1KvsxK5eHmlRySnK1c+2LJXQSJiOJDetIrWvh9U8elYq0Zznac9Y6EYCJEACJEACJEACC43AIsqid+/eXT41m+2qEYIQU+HBa0/BwQgLMiTDHgSynjZ4UdA924uDvmxp2WOSNRdm0TUcPCABEiABEiABEiCBTgQmK4vWa1m9Uhx870UF9VpWr211gE6s1BjOKqhtg0qNcpCI68woXSL9jnVxsq44F6ffYvi8Jo8lItIdEWc5hSAIMRVGOeScHMldcwTIjQRIgARIgARIgAQWAYHJyqJd4DaLru6duEZdj/VytKtf1N6KZovUjkhRSyNPnUzzcLQqi5wpPxdtTwbWSYAESIAESIAESOBYJTCSLLr6vGlXajYXhS+yaG0bdHkOIU3JVbBrcDX7mMigSGujmAOKGhiZqsHzNLa6vcceIsrV74096DgSpiPJoqtI7UvYkNMJTHgvOnhmsIMESIAESIAESIAESIAESCBEoPYW0tCsRDOc0GBsJwESIAESIAESIAESIAESIAESmFQCyAiHfGYyOC8Ij0RchbOLW2FXfLKy6FikwQWJdVjBLGeDCmYRQ+TugsRmwz4SIAESIAESIAESIAESIAESGD2B7GmPhnxsCE9WFj0yttkXa/IFlSVLEiABEiABEiABEiABEiABEuhEIHu6g9FVFGXWu5LZha2g1m3Ek5NFa3S2tJF2WnU1tmKoDxYc+epniVCnz5IESIAESIAESIAESIAESIAEJoMAUh2boA1OfVxBFbfCtYQ3hQNEQnb6Eebat4vFHEJCvvaRRFp9v5RvRF/byy+/7GsuQu1eY1+ju1h2kXz2bCMBEiABEiABEiABEiABEiCBBUYglh12zvgwdyuo+ahl0lnUCqqQK9xJ1CfoE66JxpzUOVZqxDXRmAP6YoOqIOw6iYaErWAvUVfYFUR/7y2GorcoHUmABEiABEiABEiABEiABEjg7yNg70IOvgNpxZA/2d0n3ppGpiZhNvOriaYKhBZAhWuiPuPUgVQQGq33omEcu8+MPivoCyzaZhfMt0BRZ3aSAAmQAAmQAAmQAAmQAAmQwGQTQKI2klQHwiMRV+Hs4iqoA1gstYQXBl1WVXNS9dPjLho121ikNcPUA52yCqf6Be1U0DIMGqd0ZIssZTDakAAJkAAJkAAJkAAJkAAJkEArgexpD0ZU0awpEMSseJZETUVDwr2zaJsx6yC2DQN22lQETqhjH4xARbMJ2uiyRKiMskaooixJgARIgARIgARIgARIgARIYDIIILvTtMeXS7U+fexOA4L6xDFyUew4HpRGIjJ3IBzb9pF8u5hv0GibjcgahtqtTbAOdtPT0zUEOB7EFKNBAJHpPlgwOAV2kAAJkAAJkAAJkAAJkAAJkMDfQmBQMuaLGIKaS/n6O7epIByzCFtBjaZVGE6xPZQutgprBL6yV6Q+IbfNCg+KMCSMAdy+QcfZBQdFQ2cSIAESIAESIAESIAESIAESyEIAqU5bulN7Tjo2qgrpt2Jt2bKlNO/1bDRutELQl+xqGunenK0Fp1NzS5+gOiYJq7GWfSL9e5hqxFoqGj1mSQIkQAIkQAIkQAIkQAIkQAILmIBmdFmmoGLImwYLWrHBgq7YEMEqNx0iAjzevD9npI01cMUbBkMarPgQHa+vins72UgCJEACJEACJEACJEACJEACIyWgGcnQLLAKcnEJji+LrgDnqGRfJA1q4Qlr5CxJgARIgARIgARIgARIgARIIIlA9rTHCmZJzV3BwaI+wb6i48uiEaHuSSsbM/IhiNkn97nCyY5thla4zZb9JEACJEACJEACJEACJEACJLBACNhUBxkfjgeF7gpqGtlHOCnh9T5YHZlCkmjEv+qyA9e++LuycCrWwenyHlbfe66fIXetQu2uXfDYXaw+ixQUZwcJkAAJkAAJkAAJkAAJkAAJTA4B5KZ9o6nSSCtgBbtme9BpiFpBHaircE3UJ9hHuBKNCapwrLSzqUThEBO2TjFx9NVE0eAT7iLoFXWFuwrCP7j5Ig4as4MESIAESIAESIAESIAESIAEFhYBe2dy8F1JK4Zcyu6p4rU0MjUha8sCK9FUwdAi2oEqURinClsB3yDVvWh0wjh27xl9bYK+Qao2u2CpC1Q5s0ICJEACJEACJEACJEACJEACC4OApj5ZolWx1CwwOqgVGyxoxbQeHT3SWSW8GpXmnnoc8a11qV+tUaODmNZrBkMOVBDiXaNtHdeKtxp3NVDxrn60JwESIAESIAESIAESIAESIIHhBDQjyZZHWcEsolYQ8x0s6goOEQ1m0V1FW7NoCGIbPH2IuAiyiLrC2URdYRxzIwESIAESIAESIAESIAESIIFjgIBNzpBD4bjPtKqnjyGgTxcjz8SO477CZTCh7C7UHptB0heBpQjbLDpJ1DrEImz0gd309HRtYXA8iClGgQCmqvtgwUbobCABEiABEiABEiABEiABEiCBiSCQkuV1ChSCmlN1cgwZqyD6swhbQR10kLBP0BWGTWhX20bpEx4UqY5ghbMIusIYQNuylNkFs0RFERIgARIgARIgARIgARIgARLIRgBpT5/Up3pO2kaiQvqtWFu2bCm7e92Uxc1XCCJ9tIOgrimle8PWtasdxwTVUIUViy3VplHGhFUwJdLRM3VD1+m57TwmgTCB/wdigVA7yGo0NAAAAABJRU5ErkJggg==) no-repeat top left;width:21px;height:21px}.geSprite-actualsize{background-position:0 0}.geSprite-bold{background-position:0 -46px}.geSprite-bottom{background-position:0 -92px}.geSprite-center{background-position:0 -138px}.geSprite-delete{background-position:0 -184px}.geSprite-fillcolor{background-position:0 -230px}.geSprite-fit{background-position:0 -276px}.geSprite-fontcolor{background-position:0 -322px}.geSprite-gradientcolor{background-position:0 -368px}.geSprite-image{background-position:0 -414px}.geSprite-italic{background-position:0 -460px}.geSprite-left{background-position:0 -506px}.geSprite-middle{background-position:0 -552px}.geSprite-print{background-position:0 -598px}.geSprite-redo{background-position:0 -644px}.geSprite-right{background-position:0 -690px}.geSprite-shadow{background-position:0 -736px}.geSprite-strokecolor{background-position:0 -782px}.geSprite-top{background-position:0 -828px}.geSprite-underline{background-position:0 -874px}.geSprite-undo{background-position:0 -920px}.geSprite-zoomin{background-position:0 -966px}.geSprite-zoomout{background-position:0 -1012px}.geSprite-helbow{background-position:0 -1058px}.geSprite-velbow{background-position:0 -1104px}.geSprite-straight{background-position:0 -1150px}.geSprite-entity{background-position:0 -1196px}.geSprite-segment{background-position:0 -1242px}.geSprite-orthogonal{background-position:0 -1288px}.geSprite-noarrow{background-position:0 -1334px}.geSprite-endclassic{background-position:0 -1380px}.geSprite-endopen{background-position:0 -1426px}.geSprite-endblock{background-position:0 -1472px}.geSprite-endoval{background-position:0 -1518px}.geSprite-enddiamond{background-position:0 -1564px}.geSprite-endthindiamond{background-position:0 -1610px}.geSprite-endclassictrans{background-position:0 -1656px}.geSprite-endblocktrans{background-position:0 -1702px}.geSprite-endovaltrans{background-position:0 -1748px}.geSprite-enddiamondtrans{background-position:0 -1794px}.geSprite-endthindiamondtrans{background-position:0 -1840px}.geSprite-startclassic{background-position:0 -1886px}.geSprite-startopen{background-position:0 -1932px}.geSprite-startblock{background-position:0 -1978px}.geSprite-startoval{background-position:0 -2024px}.geSprite-startdiamond{background-position:0 -2070px}.geSprite-startthindiamond{background-position:0 -2116px}.geSprite-startclassictrans{background-position:0 -2162px}.geSprite-startblocktrans{background-position:0 -2208px}.geSprite-startovaltrans{background-position:0 -2254px}.geSprite-startdiamondtrans{background-position:0 -2300px}.geSprite-startthindiamondtrans{background-position:0 -2346px}.geSprite-copy{background-position:0 -410px}.geSprite-cut{background-position:0 -320px}.geSprite-paste{background-position:0 -367px}.geSprite-duplicate{background-position:0 -736px}.geSprite-save{background-position:0 -782px}.geSprite-publish{background-position:0 -92px}.geBaseButton{padding:10px;border-radius:6px;border:1px solid silver;cursor:pointer;background-color:#ececec;background-image:linear-gradient(#ececec 0,#fcfcfc 100%)}.geBaseButton:hover{background:#ececec}.geBigButton{color:#fff;border:none;padding:10px;font-size:14pt;white-space:nowrap;border-radius:6px;text-shadow:#295989 0 1px 0;background-color:#428bca;background-image:linear-gradient(#4687ce 0,#3068a2 100%);-webkit-box-shadow:rgba(255,255,255,.0980392) 0 1px 0 0 inset,rgba(0,0,0,.2) 0 1px 1px 0;-moz-box-shadow:rgba(255,255,255,.0980392) 0 1px 0 0 inset,rgba(0,0,0,.2) 0 1px 1px 0;box-shadow:rgba(255,255,255,.0980392) 0 1px 0 0 inset,rgba(0,0,0,.2) 0 1px 1px 0}.geBigButton:hover{background-color:#2d6ca2;background-image:linear-gradient(#5a94d3 0,#3673b5 100%)}.geBigButton:active{background-color:#3673b5;background-image:none}@media print{div.geNoPrint{display:none!important}}html div.mxRubberband{border-color:#00d;background:#9cf}td.mxPopupMenuIcon div{width:16px;height:16px}html div.mxPopupMenu{-webkit-box-shadow:2px 2px 3px #d5d5d5;-moz-box-shadow:2px 2px 3px #d5d5d5;box-shadow:2px 2px 3px #d5d5d5;background:#fff;position:absolute;border:3px solid #e7e7e7;padding:3px}html table.mxPopupMenu{border-collapse:collapse;margin:0}html td.mxPopupMenuItem{padding:7px 30px 7px 30px;font-family:Helvetica Neue,Helvetica,Arial Unicode MS,Arial;font-size:10pt}html td.mxPopupMenuIcon{background-color:#fff;padding:0}td.mxPopupMenuIcon .geIcon{padding:2px;padding-bottom:4px;margin:2px;border:1px solid transparent;opacity:.5}td.mxPopupMenuIcon .geIcon:hover{border:1px solid gray;border-radius:2px;opacity:1}html tr.mxPopupMenuItemHover{background-color:#eee;color:#000}table.mxPopupMenu hr{color:#ccc;background-color:#ccc;border:none;height:1px}table.mxPopupMenu tr{font-size:4pt}html td.mxWindowTitle{font-family:Helvetica Neue,Helvetica,Arial Unicode MS,Arial;text-align:left;font-size:12px;color:#707070;padding:4px}div.mxTooltip{-webkit-box-shadow:3px 3px 12px silver;-moz-box-shadow:3px 3px 12px silver;box-shadow:3px 3px 12px silver;background:#ffc;border-style:solid;border-width:1px;border-color:#000;font-family:Arial;font-size:8pt;position:absolute;cursor:default;padding:4px;color:#000}body{font-family:Arial Unicode MS,Arial,Helvetica;font-size:10pt}
\ No newline at end of file
+++ /dev/null
-[data-ng-click],[ng-click],[x-ng-click]{cursor:pointer}.ms-container{width:100%!important}.ms-container .ms-list{height:380px!important}.ms-container .ms-selectable li.ms-elem-selectable,.ms-container .ms-selection li.ms-elem-selection{padding:6px 12px!important;height:34px!important}md-input-container:not(.md-input-has-value) input:not(:focus){color:inherit!important}.ms-container .ms-search{height:34px;margin-bottom:5px;border:solid 1px #e5e5e5;background-color:#fff;box-shadow:none;width:100%;padding-left:6px}.ms-container .ms-footer{text-align:center}.no-border{border:none!important}.left .motion-spinner{border-top-color:#00d7cc!important;border-left-color:#00d7cc!important}.right .motion-spinner{border-top-color:#00d7cc!important;border-right-color:#00d7cc!important}.md-option-info-text{font-size:10px}md-pagination-wrapper{width:auto!important}md-autocomplete.no-container-margin md-autocomplete-wrap md-input-container{margin:0!important}md-dialog.report-selection-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}md-dialog.advanced-search-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}.md-dialog-action-center{justify-content:center!important}.flag-24{height:24px}button.auto-width{min-width:auto!important}button.size-8{transform:scale(.8)}md-icon.auto-size{height:auto!important;width:auto!important}md-switch.auto-height{height:auto!important}.hidden{visibility:hidden}.user-profile-section-help{background:#fcf20f0f;border:1px solid rgba(0,0,0,.12);padding:5px}.email-preview-message{display:-webkit-box;margin:0 auto;display:block;height:200px;line-height:1.4;-webkit-line-clamp:10;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;word-break:break-all}button.advanced-search.md-accent-bg.md-button.md-default-theme:not([disabled]).md-icon-button:hover{background-color:#0091ea}.blink{animation:blink 2s ease-in infinite}.no-click{pointer-events:none}.spinner-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;background:rgba(43,43,43,.5)}ms-quick-filter[disabled]{pointer-events:none;opacity:.7}ms-search-bar[disabled]{pointer-events:none;opacity:.7}@keyframes blink{from,to{opacity:1}50%{opacity:0}}textarea.api-key-area{background:0 0;resize:none}.badge{min-width:20px;height:20px;line-height:20px;padding:0 7px;font-size:11px;font-weight:700;border-radius:20px;transition:opacity .2s ease-in-out .1s}md-tooltip.multiline div.md-content{height:auto!important}.auto-margin{margin:auto}md-menu-item md-menu.no-margin button{display:inline-block;border-radius:0;margin:auto 0;font-size:15px;text-transform:none;font-weight:400;height:100%;padding-left:16px;padding-right:16px;width:100%}md-date-range md-menu span.md-select-value{border-bottom-color:rgba(0,0,0,.12)}.keep-on-top{z-index:9999!important}.margin-auto{margin:auto}.xenialab-violet-light-bg{background-color:#9c4fd3!important}.xenialab-violet-light-fg{color:#9c4fd3!important}.no-margin-top{margin-top:0!important}.no-margin-bottom{margin-bottom:0!important}.disabled-button{display:inline-block;position:relative;cursor:default;min-height:36px;min-width:88px;line-height:36px;vertical-align:middle;align-items:center;text-align:center;border-radius:3px;box-sizing:border-box;user-select:none;outline:0;border:0;padding:0 6px;margin:6px 8px;background:rgba(0,0,0,.12);color:rgba(0,0,0,.38);white-space:nowrap;text-transform:uppercase;font-weight:500;font-size:14px;font-style:inherit;font-variant:inherit;font-family:inherit;text-decoration:none;overflow:hidden}.word-break-all{word-break:break-all}@supports (-ms-ime-align:auto){md-tabs{display:inline!important}}@supports (-ms-accelerator:true){md-tabs{display:inline!important}}@supports (-moz-transform:translate(0,0)){md-tabs{display:inline!important}}body[dir=rtl] table.md-table td.md-cell,body[dir=rtl] table.md-table th.md-column{text-align:right!important}body[dir=rtl] table.md-table td.md-cell md-checkbox,body[dir=rtl] table.md-table th.md-column md-checkbox{margin-right:12px!important}body[dir=rtl] .ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button .icon{margin:0 0 0 16px!important}body[dir=rtl] .ms-navigation .ms-navigation-node .ms-navigation-item>a.ms-navigation-button{padding-right:45px}body[dir=rtl] .md-table-pagination>.buttons{direction:ltr}body[dir=rtl] .md-table-pagination>.buttons>.label{direction:rtl}body[dir=rtl] .header .logo .logo-icon{margin:5px 0 0 15px!important}body[dir=rtl] md-switch .md-container{margin-right:inherit!important}#toasty.toasty-position-top-right{top:64px}body,html{height:100%;position:relative}body{margin:0;padding:0}[tabindex='-1']:focus{outline:0}.inset{padding:10px}a.md-no-style,button.md-no-style{font-weight:400;background-color:inherit;text-align:left;border:none;padding:0;margin:0}button,input,select,textarea{vertical-align:baseline}button,html input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button}button[disabled],html input[type=button][disabled],input[type=reset][disabled],input[type=submit][disabled]{cursor:default}textarea{vertical-align:top;overflow:auto}input[type=search]{-webkit-appearance:textfield;box-sizing:content-box;-webkit-box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}input:-webkit-autofill{text-shadow:none}.md-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;text-transform:none;width:1px}.md-shadow{position:absolute;top:0;left:0;bottom:0;right:0;border-radius:inherit;pointer-events:none}.md-shadow-bottom-z-1{box-shadow:0 2px 5px 0 rgba(0,0,0,.26)}.md-shadow-bottom-z-2{box-shadow:0 4px 8px 0 rgba(0,0,0,.4)}.md-shadow-animated.md-shadow{transition:box-shadow .28s cubic-bezier(.4,0,.2,1)}.md-ripple-container{pointer-events:none;position:absolute;overflow:hidden;left:0;top:0;width:100%;height:100%;transition:all .55s cubic-bezier(.25,.8,.25,1)}.md-ripple{position:absolute;transform:translate(-50%,-50%) scale(0);transform-origin:50% 50%;opacity:0;border-radius:50%}.md-ripple.md-ripple-placed{transition:margin .9s cubic-bezier(.25,.8,.25,1),border .9s cubic-bezier(.25,.8,.25,1),width .9s cubic-bezier(.25,.8,.25,1),height .9s cubic-bezier(.25,.8,.25,1),opacity .9s cubic-bezier(.25,.8,.25,1),transform .9s cubic-bezier(.25,.8,.25,1)}.md-ripple.md-ripple-scaled{transform:translate(-50%,-50%) scale(1)}.md-ripple.md-ripple-active,.md-ripple.md-ripple-full,.md-ripple.md-ripple-visible{opacity:.2}.md-ripple.md-ripple-remove{animation:md-remove-ripple .9s cubic-bezier(.25,.8,.25,1)}@keyframes md-remove-ripple{0%{opacity:.15}100%{opacity:0}}.md-padding{padding:8px}.md-margin{margin:8px}.md-scroll-mask{position:absolute;background-color:transparent;top:0;right:0;bottom:0;left:0;z-index:50}.md-scroll-mask>.md-scroll-mask-bar{display:block;position:absolute;background-color:#fafafa;right:0;top:0;bottom:0;z-index:65;box-shadow:inset 0 0 1px rgba(0,0,0,.3)}.md-no-momentum{-webkit-overflow-scrolling:auto}.md-no-flicker{-webkit-filter:blur(0)}@media (min-width:960px){.md-padding{padding:16px}}body[dir=ltr],body[dir=rtl],html[dir=ltr],html[dir=rtl]{unicode-bidi:embed}bdo[dir=rtl]{direction:rtl;unicode-bidi:bidi-override}bdo[dir=ltr]{direction:ltr;unicode-bidi:bidi-override}body,html{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;min-height:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.md-display-4{font-size:112px;font-weight:300;letter-spacing:-.010em;line-height:112px}.md-display-3{font-size:56px;font-weight:400;letter-spacing:-.005em;line-height:56px}.md-display-2{font-size:45px;font-weight:400;line-height:64px}.md-display-1{font-size:34px;font-weight:400;line-height:40px}.md-headline{font-size:24px;font-weight:400;line-height:32px}.md-title{font-size:20px;font-weight:500;letter-spacing:.005em}.md-subhead{font-size:16px;font-weight:400;letter-spacing:.010em;line-height:24px}.md-body-1{font-size:14px;font-weight:400;letter-spacing:.010em;line-height:20px}.md-body-2{font-size:14px;font-weight:500;letter-spacing:.010em;line-height:24px}.md-caption{font-size:12px;letter-spacing:.020em}.md-button{letter-spacing:.010em}button,html,input,select,textarea{font-family:Roboto,"Helvetica Neue",sans-serif}button,input,select,textarea{font-size:100%}@keyframes md-autocomplete-list-out{0%{animation-timing-function:linear}50%{opacity:0;height:40px;animation-timing-function:ease-in}100%{height:0;opacity:0}}@keyframes md-autocomplete-list-in{0%{opacity:0;height:0;animation-timing-function:ease-out}50%{opacity:0;height:40px}100%{opacity:1;height:40px}}md-autocomplete{border-radius:2px;display:block;height:40px;position:relative;overflow:visible;min-width:190px}md-autocomplete[disabled] input{cursor:default}md-autocomplete[md-floating-label]{border-radius:0;background:0 0;height:auto}md-autocomplete[md-floating-label] md-input-container{padding-bottom:0}md-autocomplete[md-floating-label] md-autocomplete-wrap{height:auto}md-autocomplete[md-floating-label] button{position:absolute;top:auto;bottom:0;right:0;width:30px;height:30px}md-autocomplete md-autocomplete-wrap{display:flex;flex-direction:row;box-sizing:border-box;position:relative;overflow:visible;height:40px}md-autocomplete md-autocomplete-wrap.md-menu-showing{z-index:51}md-autocomplete md-autocomplete-wrap input,md-autocomplete md-autocomplete-wrap md-input-container{flex:1 1 0%;box-sizing:border-box;min-width:0}md-autocomplete md-autocomplete-wrap md-progress-linear{position:absolute;bottom:-2px;left:0}md-autocomplete md-autocomplete-wrap md-progress-linear.md-inline{bottom:40px;right:2px;left:2px;width:auto}md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate{position:absolute;top:0;left:0;width:100%;height:3px;transition:none}md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate .md-container{transition:none;height:3px}md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate.ng-enter{transition:opacity .15s linear}md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate.ng-enter.ng-enter-active{opacity:1}md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate.ng-leave{transition:opacity .15s linear}md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate.ng-leave.ng-leave-active{opacity:0}md-autocomplete input:not(.md-input){font-size:14px;box-sizing:border-box;border:none;box-shadow:none;outline:0;background:0 0;width:100%;padding:0 15px;line-height:40px;height:40px}md-autocomplete input:not(.md-input)::-ms-clear{display:none}md-autocomplete button{position:relative;line-height:20px;text-align:center;width:30px;height:30px;cursor:pointer;border:none;border-radius:50%;padding:0;font-size:12px;background:0 0;margin:auto 5px}md-autocomplete button:after{content:'';position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;border-radius:50%;transform:scale(0);opacity:0;transition:all .4s cubic-bezier(.25,.8,.25,1)}md-autocomplete button:focus{outline:0}md-autocomplete button:focus:after{transform:scale(1);opacity:1}md-autocomplete button md-icon{position:absolute;top:50%;left:50%;transform:translate3d(-50%,-50%,0) scale(.9)}md-autocomplete button md-icon path{stroke-width:0}md-autocomplete button.ng-enter{transform:scale(0);transition:transform .15s ease-out}md-autocomplete button.ng-enter.ng-enter-active{transform:scale(1)}md-autocomplete button.ng-leave{transition:transform .15s ease-out}md-autocomplete button.ng-leave.ng-leave-active{transform:scale(0)}@media screen and (-ms-high-contrast:active){md-autocomplete input{border:1px solid #fff}md-autocomplete li:focus{color:#fff}}.md-virtual-repeat-container.md-autocomplete-suggestions-container{position:absolute;box-shadow:0 2px 5px rgba(0,0,0,.25);height:225.5px;max-height:225.5px;z-index:100}.md-virtual-repeat-container.md-not-found{height:48px}.md-autocomplete-suggestions{margin:0;list-style:none;padding:0}.md-autocomplete-suggestions li{font-size:14px;overflow:hidden;padding:0 15px;line-height:48px;height:48px;transition:background .15s linear;margin:0;white-space:nowrap;text-overflow:ellipsis}.md-autocomplete-suggestions li:focus{outline:0}.md-autocomplete-suggestions li:not(.md-not-found-wrapper){cursor:pointer}@media screen and (-ms-high-contrast:active){.md-autocomplete-suggestions,md-autocomplete{border:1px solid #fff}}md-backdrop{transition:opacity 450ms;position:absolute;top:0;bottom:0;left:0;right:0;z-index:50}md-backdrop.md-menu-backdrop{position:fixed!important;z-index:99}md-backdrop.md-select-backdrop{z-index:81;transition-duration:0}md-backdrop.md-dialog-backdrop{z-index:79}md-backdrop.md-bottom-sheet-backdrop{z-index:69}md-backdrop.md-sidenav-backdrop{z-index:59}md-backdrop.md-click-catcher{position:absolute}md-backdrop.md-opaque{opacity:.48}md-backdrop.md-opaque.ng-enter{opacity:0}md-backdrop.md-opaque.ng-enter.md-opaque.ng-enter-active{opacity:.48}md-backdrop.md-opaque.ng-leave{opacity:.48;transition:opacity .4s}md-backdrop.md-opaque.ng-leave.md-opaque.ng-leave-active{opacity:0}md-bottom-sheet{position:absolute;left:0;right:0;bottom:0;padding:8px 16px 88px 16px;z-index:70;border-top-width:1px;border-top-style:solid;transform:translate3d(0,80px,0);transition:all .4s cubic-bezier(.25,.8,.25,1);transition-property:transform}md-bottom-sheet.md-has-header{padding-top:0}md-bottom-sheet.ng-enter{opacity:0;transform:translate3d(0,100%,0)}md-bottom-sheet.ng-enter-active{opacity:1;display:block;transform:translate3d(0,80px,0)!important}md-bottom-sheet.ng-leave-active{transform:translate3d(0,100%,0)!important;transition:all .3s cubic-bezier(.55,0,.55,.2)}md-bottom-sheet .md-subheader{background-color:transparent;font-family:Roboto,"Helvetica Neue",sans-serif;line-height:56px;padding:0;white-space:nowrap}md-bottom-sheet md-inline-icon{display:inline-block;height:24px;width:24px;fill:#444}md-bottom-sheet md-list-item{display:flex;outline:0}md-bottom-sheet md-list-item:hover{cursor:pointer}md-bottom-sheet.md-list md-list-item{padding:0;align-items:center;height:48px}md-bottom-sheet.md-grid{padding-left:24px;padding-right:24px;padding-top:0}md-bottom-sheet.md-grid md-list{display:flex;flex-direction:row;flex-wrap:wrap;transition:all .5s;align-items:center}md-bottom-sheet.md-grid md-list-item{flex-direction:column;align-items:center;transition:all .5s;height:96px;margin-top:8px;margin-bottom:8px}@media (max-width:960px){md-bottom-sheet.md-grid md-list-item{flex:1 1 33.3333333333%;max-width:33.3333333333%}md-bottom-sheet.md-grid md-list-item:nth-of-type(3n+1){align-items:flex-start}md-bottom-sheet.md-grid md-list-item:nth-of-type(3n){align-items:flex-end}}@media (min-width:960px) and (max-width:1279px){md-bottom-sheet.md-grid md-list-item{flex:1 1 25%;max-width:25%}}@media (min-width:1280px) and (max-width:1919px){md-bottom-sheet.md-grid md-list-item{flex:1 1 16.6666666667%;max-width:16.6666666667%}}@media (min-width:1920px){md-bottom-sheet.md-grid md-list-item{flex:1 1 14.2857142857%;max-width:14.2857142857%}}md-bottom-sheet.md-grid md-list-item::before{display:none}md-bottom-sheet.md-grid md-list-item .md-list-item-content{display:flex;flex-direction:column;align-items:center;width:48px;padding-bottom:16px}md-bottom-sheet.md-grid md-list-item .md-grid-item-content{border:1px solid transparent;display:flex;flex-direction:column;align-items:center;width:80px}md-bottom-sheet.md-grid md-list-item .md-grid-text{font-weight:400;line-height:16px;font-size:13px;margin:0;white-space:nowrap;width:64px;text-align:center;text-transform:none;padding-top:8px}@media screen and (-ms-high-contrast:active){md-bottom-sheet{border:1px solid #fff}}button.md-button::-moz-focus-inner{border:0}.md-button{display:inline-block;position:relative;cursor:pointer;min-height:36px;min-width:88px;line-height:36px;vertical-align:middle;align-items:center;text-align:center;border-radius:3px;box-sizing:border-box;user-select:none;outline:0;border:0;padding:0 6px;margin:6px 8px;background:0 0;color:currentColor;white-space:nowrap;text-transform:uppercase;font-weight:500;font-size:14px;font-style:inherit;font-variant:inherit;font-family:inherit;text-decoration:none;overflow:hidden;transition:box-shadow .4s cubic-bezier(.25,.8,.25,1),background-color .4s cubic-bezier(.25,.8,.25,1)}.md-button:focus{outline:0}.md-button:focus,.md-button:hover{text-decoration:none}.md-button.ng-hide,.md-button.ng-leave{transition:none}.md-button.md-cornered{border-radius:0}.md-button.md-icon{padding:0;background:0 0}.md-button.md-raised:not([disabled]){box-shadow:0 2px 5px 0 rgba(0,0,0,.26)}.md-button.md-icon-button{margin:0 6px;height:40px;min-width:0;line-height:24px;padding:8px;width:40px;border-radius:50%}.md-button.md-icon-button .md-ripple-container{border-radius:50%;background-clip:padding-box;overflow:hidden;-webkit-mask-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC)}.md-button.md-fab{z-index:20;line-height:56px;min-width:0;width:56px;height:56px;vertical-align:middle;box-shadow:0 2px 5px 0 rgba(0,0,0,.26);border-radius:50%;background-clip:padding-box;overflow:hidden;transition:all .3s cubic-bezier(.55,0,.55,.2);transition-property:background-color,box-shadow,transform}.md-button.md-fab.md-fab-bottom-right{top:auto;right:20px;bottom:20px;left:auto;position:absolute}.md-button.md-fab.md-fab-bottom-left{top:auto;right:auto;bottom:20px;left:20px;position:absolute}.md-button.md-fab.md-fab-top-right{top:20px;right:20px;bottom:auto;left:auto;position:absolute}.md-button.md-fab.md-fab-top-left{top:20px;right:auto;bottom:auto;left:20px;position:absolute}.md-button.md-fab .md-ripple-container{border-radius:50%;background-clip:padding-box;overflow:hidden;-webkit-mask-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC)}.md-button.md-fab.md-mini{line-height:40px;width:40px;height:40px}.md-button.md-fab.ng-hide,.md-button.md-fab.ng-leave{transition:none}.md-button:not([disabled]).md-fab.md-focused,.md-button:not([disabled]).md-raised.md-focused{box-shadow:0 2px 5px 0 rgba(0,0,0,.26)}.md-button:not([disabled]).md-fab:active,.md-button:not([disabled]).md-raised:active{box-shadow:0 4px 8px 0 rgba(0,0,0,.4)}.md-button .md-ripple-container{border-radius:3px;background-clip:padding-box;overflow:hidden;-webkit-mask-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC)}.md-button.md-icon-button md-icon,button.md-button.md-fab md-icon{display:block}.md-toast-open-top .md-button.md-fab-top-left,.md-toast-open-top .md-button.md-fab-top-right{transition:all .4s cubic-bezier(.25,.8,.25,1);transform:translate3d(0,42px,0)}.md-toast-open-top .md-button.md-fab-top-left:not([disabled]).md-focused,.md-toast-open-top .md-button.md-fab-top-left:not([disabled]):hover,.md-toast-open-top .md-button.md-fab-top-right:not([disabled]).md-focused,.md-toast-open-top .md-button.md-fab-top-right:not([disabled]):hover{transform:translate3d(0,41px,0)}.md-toast-open-bottom .md-button.md-fab-bottom-left,.md-toast-open-bottom .md-button.md-fab-bottom-right{transition:all .4s cubic-bezier(.25,.8,.25,1);transform:translate3d(0,-42px,0)}.md-toast-open-bottom .md-button.md-fab-bottom-left:not([disabled]).md-focused,.md-toast-open-bottom .md-button.md-fab-bottom-left:not([disabled]):hover,.md-toast-open-bottom .md-button.md-fab-bottom-right:not([disabled]).md-focused,.md-toast-open-bottom .md-button.md-fab-bottom-right:not([disabled]):hover{transform:translate3d(0,-43px,0)}.md-button-group{display:flex;flex:1;width:100%}.md-button-group>.md-button{flex:1;display:block;overflow:hidden;width:0;border-width:1px 0 1px 1px;border-radius:0;text-align:center;text-overflow:ellipsis;white-space:nowrap}.md-button-group>.md-button:first-child{border-radius:2px 0 0 2px}.md-button-group>.md-button:last-child{border-right-width:1px;border-radius:0 2px 2px 0}@media screen and (-ms-high-contrast:active){.md-button.md-fab,.md-button.md-raised{border:1px solid #fff}}md-card{box-sizing:border-box;display:flex;flex-direction:column;margin:8px;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}md-card md-card-header{padding:16px;display:flex;flex-direction:row}md-card md-card-header:first-child md-card-avatar{margin-right:12px}[dir=rtl] md-card md-card-header:first-child md-card-avatar{margin-right:auto;margin-left:12px}md-card md-card-header:last-child md-card-avatar{margin-left:12px}[dir=rtl] md-card md-card-header:last-child md-card-avatar{margin-left:auto;margin-right:12px}md-card md-card-header md-card-avatar{width:40px;height:40px}md-card md-card-header md-card-avatar .md-user-avatar,md-card md-card-header md-card-avatar md-icon{border-radius:50%}md-card md-card-header md-card-avatar md-icon{padding:8px}md-card md-card-header md-card-avatar+md-card-header-text{max-height:40px}md-card md-card-header md-card-avatar+md-card-header-text .md-title{font-size:14px}md-card md-card-header md-card-header-text{display:flex;flex:1;flex-direction:column}md-card md-card-header md-card-header-text .md-subhead{font-size:14px}md-card md-card-title-media img,md-card>img,md-card>md-card-header img{box-sizing:border-box;display:flex;flex:0 0 auto;width:100%;height:auto}md-card md-card-title{padding:24px 16px 16px;display:flex;flex:1 1 auto;flex-direction:row}md-card md-card-title+md-card-content{padding-top:0}md-card md-card-title md-card-title-text{flex:1;flex-direction:column;display:flex}md-card md-card-title md-card-title-text .md-subhead{padding-top:0;font-size:14px}md-card md-card-title md-card-title-text:only-child .md-subhead{padding-top:12px}md-card md-card-title md-card-title-media{margin-top:-8px}md-card md-card-title md-card-title-media .md-media-sm{height:80px;width:80px}md-card md-card-title md-card-title-media .md-media-md{height:112px;width:112px}md-card md-card-title md-card-title-media .md-media-lg{height:152px;width:152px}md-card md-card-content{display:block;padding:16px}md-card md-card-content>p:first-child{margin-top:0}md-card md-card-content>p:last-child{margin-bottom:0}md-card md-card-content .md-media-xl{height:240px;width:240px}md-card .md-actions,md-card md-card-actions{margin:8px}md-card .md-actions.layout-column .md-button:not(.md-icon-button),md-card md-card-actions.layout-column .md-button:not(.md-icon-button){margin:2px 0}md-card .md-actions.layout-column .md-button:not(.md-icon-button):first-of-type,md-card md-card-actions.layout-column .md-button:not(.md-icon-button):first-of-type{margin-top:0}md-card .md-actions.layout-column .md-button:not(.md-icon-button):last-of-type,md-card md-card-actions.layout-column .md-button:not(.md-icon-button):last-of-type{margin-bottom:0}md-card .md-actions.layout-column .md-button.md-icon-button,md-card md-card-actions.layout-column .md-button.md-icon-button{margin-top:6px;margin-bottom:6px}md-card .md-actions md-card-icon-actions,md-card md-card-actions md-card-icon-actions{flex:1;justify-content:flex-start;display:flex;flex-direction:row}md-card .md-actions:not(.layout-column) .md-button:not(.md-icon-button),md-card md-card-actions:not(.layout-column) .md-button:not(.md-icon-button){margin:0 4px}md-card .md-actions:not(.layout-column) .md-button:not(.md-icon-button):first-of-type,md-card md-card-actions:not(.layout-column) .md-button:not(.md-icon-button):first-of-type{margin-left:0}[dir=rtl] md-card .md-actions:not(.layout-column) .md-button:not(.md-icon-button):first-of-type,[dir=rtl] md-card md-card-actions:not(.layout-column) .md-button:not(.md-icon-button):first-of-type{margin-left:auto;margin-right:0}md-card .md-actions:not(.layout-column) .md-button:not(.md-icon-button):last-of-type,md-card md-card-actions:not(.layout-column) .md-button:not(.md-icon-button):last-of-type{margin-right:0}[dir=rtl] md-card .md-actions:not(.layout-column) .md-button:not(.md-icon-button):last-of-type,[dir=rtl] md-card md-card-actions:not(.layout-column) .md-button:not(.md-icon-button):last-of-type{margin-right:auto;margin-left:0}md-card .md-actions:not(.layout-column) .md-button.md-icon-button,md-card md-card-actions:not(.layout-column) .md-button.md-icon-button{margin-left:6px;margin-right:6px}md-card .md-actions:not(.layout-column) .md-button.md-icon-button:first-of-type,md-card md-card-actions:not(.layout-column) .md-button.md-icon-button:first-of-type{margin-left:12px}[dir=rtl] md-card .md-actions:not(.layout-column) .md-button.md-icon-button:first-of-type,[dir=rtl] md-card md-card-actions:not(.layout-column) .md-button.md-icon-button:first-of-type{margin-left:auto;margin-right:12px}md-card .md-actions:not(.layout-column) .md-button.md-icon-button:last-of-type,md-card md-card-actions:not(.layout-column) .md-button.md-icon-button:last-of-type{margin-right:12px}[dir=rtl] md-card .md-actions:not(.layout-column) .md-button.md-icon-button:last-of-type,[dir=rtl] md-card md-card-actions:not(.layout-column) .md-button.md-icon-button:last-of-type{margin-right:auto;margin-left:12px}md-card .md-actions:not(.layout-column) .md-button+md-card-icon-actions,md-card md-card-actions:not(.layout-column) .md-button+md-card-icon-actions{flex:1;justify-content:flex-end;display:flex;flex-direction:row}md-card md-card-footer{margin-top:auto;padding:16px}@media screen and (-ms-high-contrast:active){md-card{border:1px solid #fff}}.md-image-no-fill>img{width:auto;height:auto}.md-contact-chips .md-chips md-chip{padding:0 25px 0 0}[dir=rtl] .md-contact-chips .md-chips md-chip{padding:0 0 0 25px}.md-contact-chips .md-chips md-chip .md-contact-avatar{float:left}[dir=rtl] .md-contact-chips .md-chips md-chip .md-contact-avatar{float:right}.md-contact-chips .md-chips md-chip .md-contact-avatar img{height:32px;border-radius:16px}.md-contact-chips .md-chips md-chip .md-contact-name{display:inline-block;height:32px;margin-left:8px}[dir=rtl] .md-contact-chips .md-chips md-chip .md-contact-name{margin-left:auto;margin-right:8px}.md-contact-suggestion{height:56px}.md-contact-suggestion img{height:40px;border-radius:20px;margin-top:8px}.md-contact-suggestion .md-contact-name{margin-left:8px;width:120px}[dir=rtl] .md-contact-suggestion .md-contact-name{margin-left:auto;margin-right:8px}.md-contact-suggestion .md-contact-email,.md-contact-suggestion .md-contact-name{display:inline-block;overflow:hidden;text-overflow:ellipsis}.md-contact-chips-suggestions li{height:100%}.md-chips{display:block;font-family:Roboto,"Helvetica Neue",sans-serif;font-size:16px;padding:0 0 8px 3px;vertical-align:middle}.md-chips:after{content:'';display:table;clear:both}[dir=rtl] .md-chips{padding:0 3px 8px 0}.md-chips.md-readonly .md-chip-input-container{min-height:32px}.md-chips:not(.md-readonly){cursor:text}.md-chips.md-removable md-chip{padding-right:22px}[dir=rtl] .md-chips.md-removable md-chip{padding-right:0;padding-left:22px}.md-chips.md-removable md-chip .md-chip-content{padding-right:4px}[dir=rtl] .md-chips.md-removable md-chip .md-chip-content{padding-right:0;padding-left:4px}.md-chips md-chip{cursor:default;border-radius:16px;display:block;height:32px;line-height:32px;margin:8px 8px 0 0;padding:0 12px 0 12px;float:left;box-sizing:border-box;max-width:100%;position:relative}[dir=rtl] .md-chips md-chip{margin:8px 0 0 8px}[dir=rtl] .md-chips md-chip{float:right}.md-chips md-chip .md-chip-content{display:block;float:left;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}[dir=rtl] .md-chips md-chip .md-chip-content{float:right}.md-chips md-chip .md-chip-content:focus{outline:0}.md-chips md-chip._md-chip-content-edit-is-enabled{-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none}.md-chips md-chip .md-chip-remove-container{position:absolute;right:0;line-height:22px}[dir=rtl] .md-chips md-chip .md-chip-remove-container{right:auto;left:0}.md-chips md-chip .md-chip-remove{text-align:center;width:32px;height:32px;min-width:0;padding:0;background:0 0;border:none;box-shadow:none;margin:0;position:relative}.md-chips md-chip .md-chip-remove md-icon{height:18px;width:18px;position:absolute;top:50%;left:50%;transform:translate3d(-50%,-50%,0)}.md-chips .md-chip-input-container{display:block;line-height:32px;margin:8px 8px 0 0;padding:0;float:left}[dir=rtl] .md-chips .md-chip-input-container{margin:8px 0 0 8px}[dir=rtl] .md-chips .md-chip-input-container{float:right}.md-chips .md-chip-input-container input:not([type]),.md-chips .md-chip-input-container input[type=email],.md-chips .md-chip-input-container input[type=number],.md-chips .md-chip-input-container input[type=tel],.md-chips .md-chip-input-container input[type=text],.md-chips .md-chip-input-container input[type=url]{border:0;height:32px;line-height:32px;padding:0}.md-chips .md-chip-input-container input:not([type]):focus,.md-chips .md-chip-input-container input[type=email]:focus,.md-chips .md-chip-input-container input[type=number]:focus,.md-chips .md-chip-input-container input[type=tel]:focus,.md-chips .md-chip-input-container input[type=text]:focus,.md-chips .md-chip-input-container input[type=url]:focus{outline:0}.md-chips .md-chip-input-container md-autocomplete,.md-chips .md-chip-input-container md-autocomplete-wrap{background:0 0;height:32px}.md-chips .md-chip-input-container md-autocomplete md-autocomplete-wrap{box-shadow:none}.md-chips .md-chip-input-container md-autocomplete input{position:relative}.md-chips .md-chip-input-container input{border:0;height:32px;line-height:32px;padding:0}.md-chips .md-chip-input-container input:focus{outline:0}.md-chips .md-chip-input-container md-autocomplete,.md-chips .md-chip-input-container md-autocomplete-wrap{height:32px}.md-chips .md-chip-input-container md-autocomplete{box-shadow:none}.md-chips .md-chip-input-container md-autocomplete input{position:relative}.md-chips .md-chip-input-container:not(:first-child){margin:8px 8px 0 0}[dir=rtl] .md-chips .md-chip-input-container:not(:first-child){margin:8px 0 0 8px}.md-chips .md-chip-input-container input{background:0 0;border-width:0}.md-chips md-autocomplete button{display:none}@media screen and (-ms-high-contrast:active){.md-chip-input-container,md-chip{border:1px solid #fff}.md-chip-input-container md-autocomplete{border:none}}.md-inline-form md-checkbox{margin:19px 0 18px}md-checkbox{box-sizing:border-box;display:inline-block;margin-bottom:16px;white-space:nowrap;cursor:pointer;outline:0;user-select:none;position:relative;min-width:20px;min-height:20px;margin-left:0;margin-right:16px}[dir=rtl] md-checkbox{margin-left:16px}[dir=rtl] md-checkbox{margin-right:0}md-checkbox:last-of-type{margin-left:0;margin-right:0}md-checkbox.md-focused:not([disabled]) .md-container:before{left:-8px;top:-8px;right:-8px;bottom:-8px}md-checkbox.md-focused:not([disabled]):not(.md-checked) .md-container:before{background-color:rgba(0,0,0,.12)}md-checkbox.md-align-top-left>div.md-container{top:12px}md-checkbox .md-container{position:absolute;top:50%;transform:translateY(-50%);box-sizing:border-box;display:inline-block;width:20px;height:20px;left:0;right:auto}[dir=rtl] md-checkbox .md-container{left:auto}[dir=rtl] md-checkbox .md-container{right:0}md-checkbox .md-container:before{box-sizing:border-box;background-color:transparent;border-radius:50%;content:'';position:absolute;display:block;height:auto;left:0;top:0;right:0;bottom:0;transition:all .5s;width:auto}md-checkbox .md-container:after{box-sizing:border-box;content:'';position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px}md-checkbox .md-container .md-ripple-container{position:absolute;display:block;width:auto;height:auto;left:-15px;top:-15px;right:-15px;bottom:-15px}md-checkbox .md-icon{box-sizing:border-box;transition:240ms;position:absolute;top:0;left:0;width:20px;height:20px;border-width:2px;border-style:solid;border-radius:2px}md-checkbox.md-checked .md-icon{border-color:transparent}md-checkbox.md-checked .md-icon:after{box-sizing:border-box;transform:rotate(45deg);position:absolute;left:4.6666666667px;top:.2222222222px;display:table;width:6.6666666667px;height:13.3333333333px;border-width:2px;border-style:solid;border-top:0;border-left:0;content:''}md-checkbox[disabled]{cursor:default}md-checkbox.md-indeterminate .md-icon:after{box-sizing:border-box;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:table;width:12px;height:2px;border-width:2px;border-style:solid;border-top:0;border-left:0;content:''}md-checkbox .md-label{box-sizing:border-box;position:relative;display:inline-block;vertical-align:middle;white-space:normal;user-select:text;margin-left:30px;margin-right:0}[dir=rtl] md-checkbox .md-label{margin-left:0}[dir=rtl] md-checkbox .md-label{margin-right:30px}md-content{display:block;position:relative;overflow:auto;-webkit-overflow-scrolling:touch}md-content[md-scroll-y]{overflow-y:auto;overflow-x:hidden}md-content[md-scroll-x]{overflow-x:auto;overflow-y:hidden}@media print{md-content{overflow:visible!important}}md-calendar{font-size:13px;user-select:none}.md-calendar-scroll-mask{display:inline-block;overflow:hidden;height:308px}.md-calendar-scroll-mask .md-virtual-repeat-scroller{overflow-y:scroll;-webkit-overflow-scrolling:touch}.md-calendar-scroll-mask .md-virtual-repeat-scroller::-webkit-scrollbar{display:none}.md-calendar-scroll-mask .md-virtual-repeat-offsetter{width:100%}.md-calendar-scroll-container{box-shadow:inset -3px 3px 6px rgba(0,0,0,.2);display:inline-block;height:308px;width:346px}.md-calendar-date{height:44px;width:44px;text-align:center;padding:0;border:none;box-sizing:content-box}.md-calendar-date:first-child{padding-left:16px}[dir=rtl] .md-calendar-date:first-child{padding-left:0;padding-right:16px}.md-calendar-date:last-child{padding-right:16px}[dir=rtl] .md-calendar-date:last-child{padding-right:0;padding-left:16px}.md-calendar-date.md-calendar-date-disabled{cursor:default}.md-calendar-date-selection-indicator{transition:background-color,color .4s cubic-bezier(.25,.8,.25,1);border-radius:50%;display:inline-block;width:40px;height:40px;line-height:40px}.md-calendar-date:not(.md-disabled) .md-calendar-date-selection-indicator{cursor:pointer}.md-calendar-month-label{height:44px;font-size:14px;font-weight:500;padding:0 0 0 24px}[dir=rtl] .md-calendar-month-label{padding:0 24px 0 0}md-calendar-month .md-calendar-month-label:not(.md-calendar-month-label-disabled){cursor:pointer}.md-calendar-month-label md-icon{transform:rotate(180deg)}[dir=rtl] .md-calendar-month-label md-icon{transform:none}.md-calendar-month-label span{vertical-align:middle}.md-calendar-day-header{table-layout:fixed;border-spacing:0;border-collapse:collapse}.md-calendar-day-header th{height:40px;width:44px;text-align:center;padding:0;border:none;box-sizing:content-box;font-weight:400}.md-calendar-day-header th:first-child{padding-left:16px}[dir=rtl] .md-calendar-day-header th:first-child{padding-left:0;padding-right:16px}.md-calendar-day-header th:last-child{padding-right:16px}[dir=rtl] .md-calendar-day-header th:last-child{padding-right:0;padding-left:16px}.md-calendar{table-layout:fixed;border-spacing:0;border-collapse:collapse}.md-calendar tr:last-child td{border-bottom-width:1px;border-bottom-style:solid}.md-calendar:first-child{border-top:1px solid transparent}.md-calendar tbody,.md-calendar td,.md-calendar tr{vertical-align:middle;box-sizing:content-box}md-datepicker{white-space:nowrap;overflow:hidden;padding-right:18px;margin-right:-18px;vertical-align:middle}[dir=rtl] md-datepicker{padding-right:0;padding-left:18px}[dir=rtl] md-datepicker{margin-right:auto;margin-left:-18px}.md-inline-form md-datepicker{margin-top:12px}.md-datepicker-button{display:inline-block;box-sizing:border-box;background:0 0;vertical-align:middle;position:relative}.md-datepicker-button:before{top:0;left:0;bottom:0;right:0;position:absolute;content:'';speak:none}.md-datepicker-input{font-size:14px;box-sizing:border-box;border:none;box-shadow:none;outline:0;background:0 0;min-width:120px;max-width:328px;padding:0 0 5px}.md-datepicker-input::-ms-clear{display:none}._md-datepicker-floating-label>md-datepicker{overflow:visible}._md-datepicker-floating-label>md-datepicker .md-datepicker-input-container{border:none}._md-datepicker-floating-label>md-datepicker .md-datepicker-button{float:left;margin-top:-2.5px}[dir=rtl] ._md-datepicker-floating-label>md-datepicker .md-datepicker-button{float:right}._md-datepicker-floating-label._md-datepicker-has-calendar-icon>label:not(.md-no-float):not(.md-container-ignore){right:18px;left:auto;width:calc(100% - 84px)}[dir=rtl] ._md-datepicker-floating-label._md-datepicker-has-calendar-icon>label:not(.md-no-float):not(.md-container-ignore){right:auto}[dir=rtl] ._md-datepicker-floating-label._md-datepicker-has-calendar-icon>label:not(.md-no-float):not(.md-container-ignore){left:18px}._md-datepicker-floating-label._md-datepicker-has-calendar-icon .md-input-message-animation{margin-left:64px}[dir=rtl] ._md-datepicker-floating-label._md-datepicker-has-calendar-icon .md-input-message-animation{margin-left:auto;margin-right:64px}.md-datepicker-input-container{position:relative;border-bottom-width:1px;border-bottom-style:solid;display:inline-block;width:auto}.md-icon-button+.md-datepicker-input-container{margin-left:12px}[dir=rtl] .md-icon-button+.md-datepicker-input-container{margin-left:auto;margin-right:12px}.md-datepicker-input-container.md-datepicker-focused{border-bottom-width:2px}.md-datepicker-is-showing .md-scroll-mask{z-index:99}.md-datepicker-calendar-pane{position:absolute;top:0;left:-100%;z-index:100;border-width:1px;border-style:solid;background:0 0;transform:scale(0);transform-origin:0 0;transition:transform .2s cubic-bezier(.25,.8,.25,1)}.md-datepicker-calendar-pane.md-pane-open{transform:scale(1)}.md-datepicker-input-mask{height:40px;width:340px;position:relative;overflow:hidden;background:0 0;pointer-events:none;cursor:text}.md-datepicker-calendar{opacity:0;transition:opacity .2s cubic-bezier(.5,0,.25,1)}.md-pane-open .md-datepicker-calendar{opacity:1}.md-datepicker-calendar md-calendar:focus{outline:0}.md-datepicker-expand-triangle{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid}.md-datepicker-triangle-button{position:absolute;right:0;top:5px;transform:translateY(-25%) translateX(45%)}[dir=rtl] .md-datepicker-triangle-button{right:auto;left:0}[dir=rtl] .md-datepicker-triangle-button{transform:translateY(-25%) translateX(-45%)}.md-datepicker-triangle-button.md-button.md-icon-button{height:36px;width:36px;position:absolute;padding:8px}md-datepicker[disabled] .md-datepicker-input-container{border-bottom-color:transparent}md-datepicker[disabled] .md-datepicker-triangle-button{display:none}.md-datepicker-open{overflow:hidden}.md-datepicker-open .md-datepicker-input-container,.md-datepicker-open input.md-input{border-bottom-color:transparent}.md-datepicker-open .md-datepicker-triangle-button,.md-datepicker-open.md-input-has-placeholder>label,.md-datepicker-open.md-input-has-value>label{display:none}.md-datepicker-pos-adjusted .md-datepicker-input-mask{display:none}.md-datepicker-calendar-pane .md-calendar{transform:translateY(-85px);transition:transform .65s cubic-bezier(.25,.8,.25,1);transition-delay:125ms}.md-datepicker-calendar-pane.md-pane-open .md-calendar{transform:translateY(0)}.md-dialog-is-showing{max-height:100%}.md-dialog-container{display:flex;justify-content:center;align-items:center;position:absolute;top:0;left:0;width:100%;height:100%;z-index:80;overflow:hidden}md-dialog{opacity:0;min-width:240px;max-width:80%;max-height:80%;position:relative;overflow:auto;box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 13px 19px 2px rgba(0,0,0,.14),0 5px 24px 4px rgba(0,0,0,.12);display:flex;flex-direction:column}md-dialog.md-transition-in{opacity:1;transition:all .4s cubic-bezier(.25,.8,.25,1);transform:translate(0,0) scale(1)}md-dialog.md-transition-out{opacity:0;transition:all .4s cubic-bezier(.25,.8,.25,1);transform:translate(0,100%) scale(.2)}md-dialog>form{display:flex;flex-direction:column;overflow:auto}md-dialog .md-dialog-content{padding:24px}md-dialog md-dialog-content{order:1;flex-direction:column;overflow:auto;-webkit-overflow-scrolling:touch}md-dialog md-dialog-content:not([layout=row])>:first-child:not(.md-subheader){margin-top:0}md-dialog md-dialog-content:focus{outline:0}md-dialog md-dialog-content .md-subheader{margin:0}md-dialog md-dialog-content .md-dialog-content-body{width:100%}md-dialog md-dialog-content .md-prompt-input-container{width:100%;box-sizing:border-box}md-dialog .md-actions,md-dialog md-dialog-actions{display:flex;order:2;box-sizing:border-box;align-items:center;justify-content:flex-end;margin-bottom:0;padding-right:8px;padding-left:16px;min-height:52px;overflow:hidden}[dir=rtl] md-dialog .md-actions,[dir=rtl] md-dialog md-dialog-actions{padding-right:16px}[dir=rtl] md-dialog .md-actions,[dir=rtl] md-dialog md-dialog-actions{padding-left:8px}md-dialog .md-actions .md-button,md-dialog md-dialog-actions .md-button{margin-bottom:8px;margin-left:8px;margin-right:0;margin-top:8px}[dir=rtl] md-dialog .md-actions .md-button,[dir=rtl] md-dialog md-dialog-actions .md-button{margin-left:0}[dir=rtl] md-dialog .md-actions .md-button,[dir=rtl] md-dialog md-dialog-actions .md-button{margin-right:8px}md-dialog.md-content-overflow .md-actions,md-dialog.md-content-overflow md-dialog-actions{border-top-width:1px;border-top-style:solid}@media screen and (-ms-high-contrast:active){md-dialog{border:1px solid #fff}}@media (max-width:959px){md-dialog.md-dialog-fullscreen{min-height:100%;min-width:100%;border-radius:0}}md-divider{display:block;border-top-width:1px;border-top-style:solid;margin:0}md-divider[md-inset]{margin-left:80px}[dir=rtl] md-divider[md-inset]{margin-left:auto;margin-right:80px}.layout-gt-lg-row>md-divider,.layout-gt-md-row>md-divider,.layout-gt-sm-row>md-divider,.layout-gt-xs-row>md-divider,.layout-lg-row>md-divider,.layout-md-row>md-divider,.layout-row>md-divider,.layout-sm-row>md-divider,.layout-xl-row>md-divider,.layout-xs-row>md-divider{border-top-width:0;border-right-width:1px;border-right-style:solid}md-fab-speed-dial{position:relative;display:flex;align-items:center;z-index:20}md-fab-speed-dial.md-fab-bottom-right{top:auto;right:20px;bottom:20px;left:auto;position:absolute}md-fab-speed-dial.md-fab-bottom-left{top:auto;right:auto;bottom:20px;left:20px;position:absolute}md-fab-speed-dial.md-fab-top-right{top:20px;right:20px;bottom:auto;left:auto;position:absolute}md-fab-speed-dial.md-fab-top-left{top:20px;right:auto;bottom:auto;left:20px;position:absolute}md-fab-speed-dial:not(.md-hover-full){pointer-events:none}md-fab-speed-dial:not(.md-hover-full) .md-fab-action-item,md-fab-speed-dial:not(.md-hover-full) md-fab-trigger{pointer-events:auto}md-fab-speed-dial:not(.md-hover-full).md-is-open{pointer-events:auto}md-fab-speed-dial ._md-css-variables{z-index:20}md-fab-speed-dial.md-is-open .md-fab-action-item{align-items:center}md-fab-speed-dial md-fab-actions{display:flex;height:auto}md-fab-speed-dial md-fab-actions .md-fab-action-item{transition:all .3s cubic-bezier(.55,0,.55,.2)}md-fab-speed-dial.md-down{flex-direction:column}md-fab-speed-dial.md-down md-fab-trigger{order:1}md-fab-speed-dial.md-down md-fab-actions{flex-direction:column;order:2}md-fab-speed-dial.md-up{flex-direction:column}md-fab-speed-dial.md-up md-fab-trigger{order:2}md-fab-speed-dial.md-up md-fab-actions{flex-direction:column-reverse;order:1}md-fab-speed-dial.md-left{flex-direction:row}md-fab-speed-dial.md-left md-fab-trigger{order:2}md-fab-speed-dial.md-left md-fab-actions{flex-direction:row-reverse;order:1}md-fab-speed-dial.md-left md-fab-actions .md-fab-action-item{transition:all .3s cubic-bezier(.55,0,.55,.2)}md-fab-speed-dial.md-right{flex-direction:row}md-fab-speed-dial.md-right md-fab-trigger{order:1}md-fab-speed-dial.md-right md-fab-actions{flex-direction:row;order:2}md-fab-speed-dial.md-right md-fab-actions .md-fab-action-item{transition:all .3s cubic-bezier(.55,0,.55,.2)}md-fab-speed-dial.md-fling-remove .md-fab-action-item>*,md-fab-speed-dial.md-scale-remove .md-fab-action-item>*{visibility:hidden}md-fab-speed-dial.md-fling .md-fab-action-item{opacity:1}md-fab-speed-dial.md-fling.md-animations-waiting .md-fab-action-item{opacity:0;transition-duration:0s}md-fab-speed-dial.md-scale .md-fab-action-item{transform:scale(0);transition:all .3s cubic-bezier(.55,0,.55,.2);transition-duration:.1428571429s}md-fab-toolbar{display:block}md-fab-toolbar.md-fab-bottom-right{top:auto;right:20px;bottom:20px;left:auto;position:absolute}md-fab-toolbar.md-fab-bottom-left{top:auto;right:auto;bottom:20px;left:20px;position:absolute}md-fab-toolbar.md-fab-top-right{top:20px;right:20px;bottom:auto;left:auto;position:absolute}md-fab-toolbar.md-fab-top-left{top:20px;right:auto;bottom:auto;left:20px;position:absolute}md-fab-toolbar .md-fab-toolbar-wrapper{display:block;position:relative;overflow:hidden;height:68px}md-fab-toolbar md-fab-trigger{position:absolute;z-index:20}md-fab-toolbar md-fab-trigger button{overflow:visible!important}md-fab-toolbar md-fab-trigger .md-fab-toolbar-background{display:block;position:absolute;z-index:21;opacity:1;transition:all .3s cubic-bezier(.55,0,.55,.2)}md-fab-toolbar md-fab-trigger md-icon{position:relative;z-index:22;opacity:1;transition:all .2s ease-in}md-fab-toolbar.md-left md-fab-trigger{right:0}[dir=rtl] md-fab-toolbar.md-left md-fab-trigger{right:auto;left:0}md-fab-toolbar.md-left .md-toolbar-tools{flex-direction:row-reverse}md-fab-toolbar.md-left .md-toolbar-tools>.md-button:first-child{margin-right:.6rem}[dir=rtl] md-fab-toolbar.md-left .md-toolbar-tools>.md-button:first-child{margin-right:auto;margin-left:.6rem}md-fab-toolbar.md-left .md-toolbar-tools>.md-button:first-child{margin-left:-.8rem}[dir=rtl] md-fab-toolbar.md-left .md-toolbar-tools>.md-button:first-child{margin-left:auto;margin-right:-.8rem}md-fab-toolbar.md-left .md-toolbar-tools>.md-button:last-child{margin-right:8px}[dir=rtl] md-fab-toolbar.md-left .md-toolbar-tools>.md-button:last-child{margin-right:auto;margin-left:8px}md-fab-toolbar.md-right md-fab-trigger{left:0}[dir=rtl] md-fab-toolbar.md-right md-fab-trigger{left:auto;right:0}md-fab-toolbar.md-right .md-toolbar-tools{flex-direction:row}md-fab-toolbar md-toolbar{background-color:transparent!important;pointer-events:none;z-index:23}md-fab-toolbar md-toolbar .md-toolbar-tools{padding:0 20px;margin-top:3px}md-fab-toolbar md-toolbar .md-fab-action-item{opacity:0;transform:scale(0);transition:all .3s cubic-bezier(.55,0,.55,.2);transition-duration:.15s}md-fab-toolbar.md-is-open md-fab-trigger>button{box-shadow:none}md-fab-toolbar.md-is-open md-fab-trigger>button md-icon{opacity:0}md-fab-toolbar.md-is-open .md-fab-action-item{opacity:1;transform:scale(1)}md-grid-list{box-sizing:border-box;display:block;position:relative}md-grid-list md-grid-tile,md-grid-list md-grid-tile-footer,md-grid-list md-grid-tile-header,md-grid-list md-grid-tile>figure{box-sizing:border-box}md-grid-list md-grid-tile{display:block;position:absolute}md-grid-list md-grid-tile figure{display:flex;align-items:center;justify-content:center;height:100%;position:absolute;top:0;right:0;bottom:0;left:0;padding:0;margin:0}md-grid-list md-grid-tile md-grid-tile-footer,md-grid-list md-grid-tile md-grid-tile-header{display:flex;flex-direction:row;align-items:center;height:48px;color:#fff;background:rgba(0,0,0,.18);overflow:hidden;position:absolute;left:0;right:0}md-grid-list md-grid-tile md-grid-tile-footer h3,md-grid-list md-grid-tile md-grid-tile-footer h4,md-grid-list md-grid-tile md-grid-tile-header h3,md-grid-list md-grid-tile md-grid-tile-header h4{font-weight:400;margin:0 0 0 16px}md-grid-list md-grid-tile md-grid-tile-footer h3,md-grid-list md-grid-tile md-grid-tile-header h3{font-size:14px}md-grid-list md-grid-tile md-grid-tile-footer h4,md-grid-list md-grid-tile md-grid-tile-header h4{font-size:12px}md-grid-list md-grid-tile md-grid-tile-header{top:0}md-grid-list md-grid-tile md-grid-tile-footer{bottom:0}@media screen and (-ms-high-contrast:active){md-grid-tile{border:1px solid #fff}md-grid-tile-footer{border-top:1px solid #fff}}md-icon{margin:auto;background-repeat:no-repeat no-repeat;display:inline-block;vertical-align:middle;fill:currentColor;height:24px;width:24px;min-height:24px;min-width:24px}md-icon svg{pointer-events:none;display:block}md-icon[md-font-icon]{line-height:24px;width:auto}md-input-container{display:inline-block;position:relative;padding:2px;margin:18px 0;vertical-align:middle}md-input-container:after{content:'';display:table;clear:both}md-input-container.md-block{display:block}md-input-container .md-errors-spacer{float:right;min-height:24px;min-width:1px}[dir=rtl] md-input-container .md-errors-spacer{float:left}md-input-container>md-icon{position:absolute;top:8px;left:2px;right:auto}[dir=rtl] md-input-container>md-icon{left:auto}[dir=rtl] md-input-container>md-icon{right:2px}md-input-container input[type=color],md-input-container input[type=date],md-input-container input[type=datetime-local],md-input-container input[type=datetime],md-input-container input[type=email],md-input-container input[type=month],md-input-container input[type=number],md-input-container input[type=password],md-input-container input[type=search],md-input-container input[type=tel],md-input-container input[type=text],md-input-container input[type=time],md-input-container input[type=url],md-input-container input[type=week],md-input-container textarea{-moz-appearance:none;-webkit-appearance:none}md-input-container input[type=date],md-input-container input[type=datetime-local],md-input-container input[type=month],md-input-container input[type=time],md-input-container input[type=week]{min-height:26px}md-input-container textarea{resize:none;overflow:hidden}md-input-container textarea.md-input{min-height:26px;-ms-flex-preferred-size:auto}md-input-container textarea[md-no-autogrow]{height:auto;overflow:auto}md-input-container label:not(.md-container-ignore){position:absolute;bottom:100%;left:0;right:auto}[dir=rtl] md-input-container label:not(.md-container-ignore){left:auto}[dir=rtl] md-input-container label:not(.md-container-ignore){right:0}md-input-container label:not(.md-container-ignore).md-required:after{content:' *';font-size:13px;vertical-align:top}md-input-container .md-placeholder,md-input-container label:not(.md-no-float):not(.md-container-ignore){overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%;order:1;pointer-events:none;-webkit-font-smoothing:antialiased;padding-left:3px;padding-right:0;z-index:1;transform:translate3d(0,28px,0) scale(1);transition:transform .4s cubic-bezier(.25,.8,.25,1);max-width:100%;transform-origin:left top}[dir=rtl] md-input-container .md-placeholder,[dir=rtl] md-input-container label:not(.md-no-float):not(.md-container-ignore){padding-left:0}[dir=rtl] md-input-container .md-placeholder,[dir=rtl] md-input-container label:not(.md-no-float):not(.md-container-ignore){padding-right:3px}[dir=rtl] md-input-container .md-placeholder,[dir=rtl] md-input-container label:not(.md-no-float):not(.md-container-ignore){transform-origin:right top}md-input-container .md-placeholder{position:absolute;top:0;opacity:0;transition-property:opacity,transform;transform:translate3d(0,30px,0)}md-input-container.md-input-focused .md-placeholder{opacity:1;transform:translate3d(0,24px,0)}md-input-container.md-input-has-value .md-placeholder{transition:none;opacity:0}md-input-container:not(.md-input-has-value) input:not(:focus),md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-ampm-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-day-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-hour-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-millisecond-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-minute-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-month-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-second-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-text,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-week-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-year-field{color:transparent}md-input-container .md-input{order:2;display:block;margin-top:0;background:0 0;padding-top:2px;padding-bottom:1px;padding-left:2px;padding-right:2px;border-width:0 0 1px 0;line-height:26px;height:30px;-ms-flex-preferred-size:26px;border-radius:0;border-style:solid;width:100%;box-sizing:border-box;float:left}[dir=rtl] md-input-container .md-input{float:right}md-input-container .md-input:focus{outline:0}md-input-container .md-input:invalid{outline:0;box-shadow:none}md-input-container .md-input.md-no-flex{flex:none!important}md-input-container .md-char-counter{text-align:right;padding-right:2px;padding-left:0}[dir=rtl] md-input-container .md-char-counter{text-align:left}[dir=rtl] md-input-container .md-char-counter{padding-right:0}[dir=rtl] md-input-container .md-char-counter{padding-left:2px}md-input-container .md-input-messages-animation{position:relative;order:4;overflow:hidden;clear:left}[dir=rtl] md-input-container .md-input-messages-animation{clear:right}md-input-container .md-input-messages-animation.ng-enter .md-input-message-animation{opacity:0;margin-top:-100px}md-input-container .md-char-counter,md-input-container .md-input-message-animation{font-size:12px;line-height:14px;overflow:hidden;transition:all .3s cubic-bezier(.55,0,.55,.2);opacity:1;margin-top:0;padding-top:5px}md-input-container .md-char-counter:not(.md-char-counter),md-input-container .md-input-message-animation:not(.md-char-counter){padding-right:5px;padding-left:0}[dir=rtl] md-input-container .md-char-counter:not(.md-char-counter),[dir=rtl] md-input-container .md-input-message-animation:not(.md-char-counter){padding-right:0}[dir=rtl] md-input-container .md-char-counter:not(.md-char-counter),[dir=rtl] md-input-container .md-input-message-animation:not(.md-char-counter){padding-left:5px}md-input-container:not(.md-input-invalid) .md-auto-hide .md-input-message-animation{opacity:0;margin-top:-100px}md-input-container .md-input-message-animation:not(.ng-animate){opacity:0;margin-top:-100px}md-input-container .md-input-message-animation.ng-enter{opacity:0;margin-top:-100px}md-input-container.md-input-focused label:not(.md-no-float),md-input-container.md-input-has-placeholder label:not(.md-no-float),md-input-container.md-input-has-value label:not(.md-no-float){transform:translate3d(0,6px,0) scale(.75);transition:transform cubic-bezier(.25,.8,.25,1) .4s,width cubic-bezier(.25,.8,.25,1) .4s}md-input-container.md-input-has-value label{transition:none}md-input-container .md-input.ng-invalid.ng-dirty,md-input-container.md-input-focused .md-input,md-input-container.md-input-resized .md-input{padding-bottom:0;border-width:0 0 2px 0}[disabled] md-input-container .md-input,md-input-container .md-input[disabled]{background-position:bottom -1px left 0;background-size:4px 1px;background-repeat:repeat-x}md-input-container.md-icon-float{transition:margin-top .4s cubic-bezier(.25,.8,.25,1)}md-input-container.md-icon-float>label{pointer-events:none;position:absolute}md-input-container.md-icon-float>md-icon{top:8px;left:2px;right:auto}[dir=rtl] md-input-container.md-icon-float>md-icon{left:auto}[dir=rtl] md-input-container.md-icon-float>md-icon{right:2px}md-input-container.md-icon-left>label .md-placeholder,md-input-container.md-icon-left>label:not(.md-no-float):not(.md-container-ignore),md-input-container.md-icon-right>label .md-placeholder,md-input-container.md-icon-right>label:not(.md-no-float):not(.md-container-ignore){width:calc(100% - 36px - 18px)}md-input-container.md-icon-left{padding-left:36px;padding-right:0}[dir=rtl] md-input-container.md-icon-left{padding-left:0}[dir=rtl] md-input-container.md-icon-left{padding-right:36px}md-input-container.md-icon-left>label{left:36px;right:auto}[dir=rtl] md-input-container.md-icon-left>label{left:auto}[dir=rtl] md-input-container.md-icon-left>label{right:36px}md-input-container.md-icon-right{padding-left:0;padding-right:36px}[dir=rtl] md-input-container.md-icon-right{padding-left:36px}[dir=rtl] md-input-container.md-icon-right{padding-right:0}md-input-container.md-icon-right>md-icon:last-of-type{margin:0;right:2px;left:auto}[dir=rtl] md-input-container.md-icon-right>md-icon:last-of-type{right:auto}[dir=rtl] md-input-container.md-icon-right>md-icon:last-of-type{left:2px}md-input-container.md-icon-left.md-icon-right{padding-left:36px;padding-right:36px}md-input-container.md-icon-left.md-icon-right>label .md-placeholder,md-input-container.md-icon-left.md-icon-right>label:not(.md-no-float):not(.md-container-ignore){width:calc(100% - (36px * 2))}.md-resize-wrapper{position:relative}.md-resize-wrapper:after{content:'';display:table;clear:both}.md-resize-handle{position:absolute;bottom:-5px;left:0;height:10px;background:0 0;width:100%;cursor:ns-resize}@media screen and (-ms-high-contrast:active){md-input-container.md-default-theme>md-icon{fill:#fff}}md-list{display:block;padding:8px 0 8px 0}md-list .md-subheader{font-size:14px;font-weight:500;letter-spacing:.010em;line-height:1.2em}md-list.md-dense md-list-item,md-list.md-dense md-list-item .md-list-item-inner{min-height:48px}md-list.md-dense md-list-item .md-list-item-inner::before,md-list.md-dense md-list-item::before{content:'';min-height:48px;visibility:hidden;display:inline-block}md-list.md-dense md-list-item .md-list-item-inner md-icon:first-child,md-list.md-dense md-list-item md-icon:first-child{width:20px;height:20px}md-list.md-dense md-list-item .md-list-item-inner>md-icon:first-child:not(.md-avatar-icon),md-list.md-dense md-list-item>md-icon:first-child:not(.md-avatar-icon){margin-right:36px}[dir=rtl] md-list.md-dense md-list-item .md-list-item-inner>md-icon:first-child:not(.md-avatar-icon),[dir=rtl] md-list.md-dense md-list-item>md-icon:first-child:not(.md-avatar-icon){margin-right:auto;margin-left:36px}md-list.md-dense md-list-item .md-avatar,md-list.md-dense md-list-item .md-avatar-icon,md-list.md-dense md-list-item .md-list-item-inner .md-avatar,md-list.md-dense md-list-item .md-list-item-inner .md-avatar-icon{margin-right:20px}[dir=rtl] md-list.md-dense md-list-item .md-avatar,[dir=rtl] md-list.md-dense md-list-item .md-avatar-icon,[dir=rtl] md-list.md-dense md-list-item .md-list-item-inner .md-avatar,[dir=rtl] md-list.md-dense md-list-item .md-list-item-inner .md-avatar-icon{margin-right:auto;margin-left:20px}md-list.md-dense md-list-item .md-avatar,md-list.md-dense md-list-item .md-list-item-inner .md-avatar{flex:none;width:36px;height:36px}md-list.md-dense md-list-item.md-2-line .md-list-item-text.md-offset,md-list.md-dense md-list-item.md-2-line>.md-no-style .md-list-item-text.md-offset,md-list.md-dense md-list-item.md-3-line .md-list-item-text.md-offset,md-list.md-dense md-list-item.md-3-line>.md-no-style .md-list-item-text.md-offset{margin-left:56px}[dir=rtl] md-list.md-dense md-list-item.md-2-line .md-list-item-text.md-offset,[dir=rtl] md-list.md-dense md-list-item.md-2-line>.md-no-style .md-list-item-text.md-offset,[dir=rtl] md-list.md-dense md-list-item.md-3-line .md-list-item-text.md-offset,[dir=rtl] md-list.md-dense md-list-item.md-3-line>.md-no-style .md-list-item-text.md-offset{margin-left:auto;margin-right:56px}md-list.md-dense md-list-item.md-2-line .md-list-item-text h3,md-list.md-dense md-list-item.md-2-line .md-list-item-text h4,md-list.md-dense md-list-item.md-2-line .md-list-item-text p,md-list.md-dense md-list-item.md-2-line>.md-no-style .md-list-item-text h3,md-list.md-dense md-list-item.md-2-line>.md-no-style .md-list-item-text h4,md-list.md-dense md-list-item.md-2-line>.md-no-style .md-list-item-text p,md-list.md-dense md-list-item.md-3-line .md-list-item-text h3,md-list.md-dense md-list-item.md-3-line .md-list-item-text h4,md-list.md-dense md-list-item.md-3-line .md-list-item-text p,md-list.md-dense md-list-item.md-3-line>.md-no-style .md-list-item-text h3,md-list.md-dense md-list-item.md-3-line>.md-no-style .md-list-item-text h4,md-list.md-dense md-list-item.md-3-line>.md-no-style .md-list-item-text p{line-height:1.05;font-size:12px}md-list.md-dense md-list-item.md-2-line .md-list-item-text h3,md-list.md-dense md-list-item.md-2-line>.md-no-style .md-list-item-text h3,md-list.md-dense md-list-item.md-3-line .md-list-item-text h3,md-list.md-dense md-list-item.md-3-line>.md-no-style .md-list-item-text h3{font-size:13px}md-list.md-dense md-list-item.md-2-line,md-list.md-dense md-list-item.md-2-line>.md-no-style{min-height:60px}md-list.md-dense md-list-item.md-2-line::before,md-list.md-dense md-list-item.md-2-line>.md-no-style::before{content:'';min-height:60px;visibility:hidden;display:inline-block}md-list.md-dense md-list-item.md-2-line .md-avatar-icon,md-list.md-dense md-list-item.md-2-line>.md-avatar,md-list.md-dense md-list-item.md-2-line>.md-no-style .md-avatar-icon,md-list.md-dense md-list-item.md-2-line>.md-no-style>.md-avatar{margin-top:12px}md-list.md-dense md-list-item.md-3-line,md-list.md-dense md-list-item.md-3-line>.md-no-style{min-height:76px}md-list.md-dense md-list-item.md-3-line::before,md-list.md-dense md-list-item.md-3-line>.md-no-style::before{content:'';min-height:76px;visibility:hidden;display:inline-block}md-list.md-dense md-list-item.md-3-line>.md-avatar,md-list.md-dense md-list-item.md-3-line>.md-no-style>.md-avatar,md-list.md-dense md-list-item.md-3-line>.md-no-style>md-icon:first-child,md-list.md-dense md-list-item.md-3-line>md-icon:first-child{margin-top:16px}md-list-item{position:relative}md-list-item.md-proxy-focus.md-focused .md-no-style{transition:background-color .15s linear}md-list-item._md-button-wrap{position:relative}md-list-item._md-button-wrap>div.md-button:first-child{display:flex;align-items:center;justify-content:flex-start;padding:0 16px;margin:0;font-weight:400;text-align:left;border:medium none}[dir=rtl] md-list-item._md-button-wrap>div.md-button:first-child{text-align:right}md-list-item._md-button-wrap>div.md-button:first-child>.md-button:first-child{position:absolute;top:0;left:0;height:100%;margin:0;padding:0}md-list-item._md-button-wrap>div.md-button:first-child .md-list-item-inner{width:100%;min-height:inherit}md-list-item .md-no-style,md-list-item.md-no-proxy{position:relative;padding:0 16px;flex:1 1 auto}md-list-item .md-no-style.md-button,md-list-item.md-no-proxy.md-button{font-size:inherit;height:inherit;text-align:left;text-transform:none;width:100%;white-space:normal;flex-direction:inherit;align-items:inherit;border-radius:0;margin:0}[dir=rtl] md-list-item .md-no-style.md-button,[dir=rtl] md-list-item.md-no-proxy.md-button{text-align:right}md-list-item .md-no-style.md-button>.md-ripple-container,md-list-item.md-no-proxy.md-button>.md-ripple-container{border-radius:0}md-list-item .md-no-style:focus,md-list-item.md-no-proxy:focus{outline:0}md-list-item.md-clickable:hover{cursor:pointer}md-list-item md-divider{position:absolute;bottom:0;left:0;width:100%}[dir=rtl] md-list-item md-divider{left:auto;right:0}md-list-item md-divider[md-inset]{left:72px;width:calc(100% - 72px);margin:0!important}[dir=rtl] md-list-item md-divider[md-inset]{left:auto;right:72px}md-list-item,md-list-item .md-list-item-inner{display:flex;justify-content:flex-start;align-items:center;min-height:48px;height:auto}md-list-item .md-list-item-inner::before,md-list-item::before{content:'';min-height:48px;visibility:hidden;display:inline-block}md-list-item .md-list-item-inner>div.md-primary>md-icon:not(.md-avatar-icon),md-list-item .md-list-item-inner>div.md-secondary>md-icon:not(.md-avatar-icon),md-list-item .md-list-item-inner>md-icon.md-secondary:not(.md-avatar-icon),md-list-item .md-list-item-inner>md-icon:first-child:not(.md-avatar-icon),md-list-item>div.md-primary>md-icon:not(.md-avatar-icon),md-list-item>div.md-secondary>md-icon:not(.md-avatar-icon),md-list-item>md-icon.md-secondary:not(.md-avatar-icon),md-list-item>md-icon:first-child:not(.md-avatar-icon){width:24px;margin-top:16px;margin-bottom:12px;box-sizing:content-box}md-list-item .md-list-item-inner md-checkbox.md-secondary,md-list-item .md-list-item-inner>div.md-primary>md-checkbox,md-list-item .md-list-item-inner>div.md-secondary>md-checkbox,md-list-item .md-list-item-inner>md-checkbox,md-list-item md-checkbox.md-secondary,md-list-item>div.md-primary>md-checkbox,md-list-item>div.md-secondary>md-checkbox,md-list-item>md-checkbox{align-self:center}md-list-item .md-list-item-inner md-checkbox.md-secondary .md-label,md-list-item .md-list-item-inner>div.md-primary>md-checkbox .md-label,md-list-item .md-list-item-inner>div.md-secondary>md-checkbox .md-label,md-list-item .md-list-item-inner>md-checkbox .md-label,md-list-item md-checkbox.md-secondary .md-label,md-list-item>div.md-primary>md-checkbox .md-label,md-list-item>div.md-secondary>md-checkbox .md-label,md-list-item>md-checkbox .md-label{display:none}md-list-item .md-list-item-inner>md-icon:first-child:not(.md-avatar-icon),md-list-item>md-icon:first-child:not(.md-avatar-icon){margin-right:32px}[dir=rtl] md-list-item .md-list-item-inner>md-icon:first-child:not(.md-avatar-icon),[dir=rtl] md-list-item>md-icon:first-child:not(.md-avatar-icon){margin-right:auto;margin-left:32px}md-list-item .md-avatar,md-list-item .md-avatar-icon,md-list-item .md-list-item-inner .md-avatar,md-list-item .md-list-item-inner .md-avatar-icon{margin-top:8px;margin-bottom:8px;margin-right:16px;border-radius:50%;box-sizing:content-box}[dir=rtl] md-list-item .md-avatar,[dir=rtl] md-list-item .md-avatar-icon,[dir=rtl] md-list-item .md-list-item-inner .md-avatar,[dir=rtl] md-list-item .md-list-item-inner .md-avatar-icon{margin-right:auto;margin-left:16px}md-list-item .md-avatar,md-list-item .md-list-item-inner .md-avatar{flex:none;width:40px;height:40px}md-list-item .md-avatar-icon,md-list-item .md-list-item-inner .md-avatar-icon{padding:8px}md-list-item .md-avatar-icon svg,md-list-item .md-list-item-inner .md-avatar-icon svg{width:24px;height:24px}md-list-item .md-list-item-inner>md-checkbox,md-list-item>md-checkbox{width:24px;margin-left:3px;margin-right:29px;margin-top:16px}[dir=rtl] md-list-item .md-list-item-inner>md-checkbox,[dir=rtl] md-list-item>md-checkbox{margin-left:29px}[dir=rtl] md-list-item .md-list-item-inner>md-checkbox,[dir=rtl] md-list-item>md-checkbox{margin-right:3px}md-list-item .md-list-item-inner .md-secondary-container,md-list-item .md-secondary-container{display:flex;align-items:center;flex-shrink:0;margin:auto;margin-right:0;margin-left:auto}[dir=rtl] md-list-item .md-list-item-inner .md-secondary-container,[dir=rtl] md-list-item .md-secondary-container{margin-right:auto}[dir=rtl] md-list-item .md-list-item-inner .md-secondary-container,[dir=rtl] md-list-item .md-secondary-container{margin-left:0}md-list-item .md-list-item-inner .md-secondary-container .md-button:last-of-type,md-list-item .md-list-item-inner .md-secondary-container .md-icon-button:last-of-type,md-list-item .md-secondary-container .md-button:last-of-type,md-list-item .md-secondary-container .md-icon-button:last-of-type{margin-right:0}[dir=rtl] md-list-item .md-list-item-inner .md-secondary-container .md-button:last-of-type,[dir=rtl] md-list-item .md-list-item-inner .md-secondary-container .md-icon-button:last-of-type,[dir=rtl] md-list-item .md-secondary-container .md-button:last-of-type,[dir=rtl] md-list-item .md-secondary-container .md-icon-button:last-of-type{margin-right:auto;margin-left:0}md-list-item .md-list-item-inner .md-secondary-container md-checkbox,md-list-item .md-secondary-container md-checkbox{margin-top:0;margin-bottom:0}md-list-item .md-list-item-inner .md-secondary-container md-checkbox:last-child,md-list-item .md-secondary-container md-checkbox:last-child{width:24px;margin-right:0}[dir=rtl] md-list-item .md-list-item-inner .md-secondary-container md-checkbox:last-child,[dir=rtl] md-list-item .md-secondary-container md-checkbox:last-child{margin-right:auto;margin-left:0}md-list-item .md-list-item-inner .md-secondary-container md-switch,md-list-item .md-secondary-container md-switch{margin-top:0;margin-bottom:0;margin-right:-6px}[dir=rtl] md-list-item .md-list-item-inner .md-secondary-container md-switch,[dir=rtl] md-list-item .md-secondary-container md-switch{margin-right:auto;margin-left:-6px}md-list-item .md-list-item-inner>.md-list-item-inner>p,md-list-item .md-list-item-inner>p,md-list-item>.md-list-item-inner>p,md-list-item>p{flex:1 1 auto;margin:0}md-list-item.md-2-line,md-list-item.md-2-line>.md-no-style,md-list-item.md-3-line,md-list-item.md-3-line>.md-no-style{align-items:flex-start;justify-content:center}md-list-item.md-2-line.md-long-text,md-list-item.md-2-line>.md-no-style.md-long-text,md-list-item.md-3-line.md-long-text,md-list-item.md-3-line>.md-no-style.md-long-text{margin-top:8px;margin-bottom:8px}md-list-item.md-2-line .md-list-item-text,md-list-item.md-2-line>.md-no-style .md-list-item-text,md-list-item.md-3-line .md-list-item-text,md-list-item.md-3-line>.md-no-style .md-list-item-text{flex:1 1 auto;margin:auto;text-overflow:ellipsis;overflow:hidden}md-list-item.md-2-line .md-list-item-text.md-offset,md-list-item.md-2-line>.md-no-style .md-list-item-text.md-offset,md-list-item.md-3-line .md-list-item-text.md-offset,md-list-item.md-3-line>.md-no-style .md-list-item-text.md-offset{margin-left:56px}[dir=rtl] md-list-item.md-2-line .md-list-item-text.md-offset,[dir=rtl] md-list-item.md-2-line>.md-no-style .md-list-item-text.md-offset,[dir=rtl] md-list-item.md-3-line .md-list-item-text.md-offset,[dir=rtl] md-list-item.md-3-line>.md-no-style .md-list-item-text.md-offset{margin-left:auto;margin-right:56px}md-list-item.md-2-line .md-list-item-text h3,md-list-item.md-2-line>.md-no-style .md-list-item-text h3,md-list-item.md-3-line .md-list-item-text h3,md-list-item.md-3-line>.md-no-style .md-list-item-text h3{font-size:16px;font-weight:400;letter-spacing:.010em;margin:0;line-height:1.2em;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}md-list-item.md-2-line .md-list-item-text h4,md-list-item.md-2-line>.md-no-style .md-list-item-text h4,md-list-item.md-3-line .md-list-item-text h4,md-list-item.md-3-line>.md-no-style .md-list-item-text h4{font-size:14px;letter-spacing:.010em;margin:3px 0 1px 0;font-weight:400;line-height:1.2em;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}md-list-item.md-2-line .md-list-item-text p,md-list-item.md-2-line>.md-no-style .md-list-item-text p,md-list-item.md-3-line .md-list-item-text p,md-list-item.md-3-line>.md-no-style .md-list-item-text p{font-size:14px;font-weight:500;letter-spacing:.010em;margin:0;line-height:1.6em}md-list-item.md-2-line,md-list-item.md-2-line>.md-no-style{height:auto;min-height:72px}md-list-item.md-2-line::before,md-list-item.md-2-line>.md-no-style::before{content:'';min-height:72px;visibility:hidden;display:inline-block}md-list-item.md-2-line .md-avatar-icon,md-list-item.md-2-line>.md-avatar,md-list-item.md-2-line>.md-no-style .md-avatar-icon,md-list-item.md-2-line>.md-no-style>.md-avatar{margin-top:12px}md-list-item.md-2-line>.md-no-style>md-icon:first-child,md-list-item.md-2-line>md-icon:first-child{align-self:flex-start}md-list-item.md-2-line .md-list-item-text,md-list-item.md-2-line>.md-no-style .md-list-item-text{flex:1 1 auto}md-list-item.md-3-line,md-list-item.md-3-line>.md-no-style{height:auto;min-height:88px}md-list-item.md-3-line::before,md-list-item.md-3-line>.md-no-style::before{content:'';min-height:88px;visibility:hidden;display:inline-block}md-list-item.md-3-line>.md-avatar,md-list-item.md-3-line>.md-no-style>.md-avatar,md-list-item.md-3-line>.md-no-style>md-icon:first-child,md-list-item.md-3-line>md-icon:first-child{margin-top:16px}.md-open-menu-container{position:fixed;left:0;top:0;z-index:100;opacity:0;border-radius:2px}.md-open-menu-container md-menu-divider{margin-top:4px;margin-bottom:4px;height:1px;min-height:1px;max-height:1px;width:100%}.md-open-menu-container md-menu-content>*{opacity:0}.md-open-menu-container:not(.md-clickable){pointer-events:none}.md-open-menu-container.md-active{opacity:1;transition:all .4s cubic-bezier(.25,.8,.25,1);transition-duration:.2s}.md-open-menu-container.md-active>md-menu-content>*{opacity:1;transition:all .3s cubic-bezier(.55,0,.55,.2);transition-duration:.2s;transition-delay:.1s}.md-open-menu-container.md-leave{opacity:0;transition:all .3s cubic-bezier(.55,0,.55,.2);transition-duration:250ms}md-menu-content{display:flex;flex-direction:column;padding:8px 0;max-height:304px;overflow-y:auto}md-menu-content.md-dense{max-height:208px}md-menu-content.md-dense md-menu-item{height:32px;min-height:0}md-menu-item{display:flex;flex-direction:row;min-height:48px;height:48px;align-content:center;justify-content:flex-start}md-menu-item>*{width:100%;margin:auto 0;padding-left:16px;padding-right:16px}md-menu-item>a.md-button{padding-top:5px}md-menu-item>.md-button{text-align:left;display:inline-block;border-radius:0;margin:auto 0;font-size:15px;text-transform:none;font-weight:400;height:100%;padding-left:16px;padding-right:16px;width:100%}md-menu-item>.md-button::-moz-focus-inner{padding:0;border:0}[dir=rtl] md-menu-item>.md-button{text-align:right}md-menu-item>.md-button md-icon{margin:auto 16px auto 0}[dir=rtl] md-menu-item>.md-button md-icon{margin:auto 0 auto 16px}md-menu-item>.md-button p{display:inline-block;margin:auto}md-menu-item>.md-button span{margin-top:auto;margin-bottom:auto}md-menu-item>.md-button .md-ripple-container{border-radius:inherit}md-toolbar .md-menu{height:auto;margin:auto;padding:0}@media (max-width:959px){md-menu-content{min-width:112px}md-menu-content[width="3"]{min-width:168px}md-menu-content[width="4"]{min-width:224px}md-menu-content[width="5"]{min-width:280px}md-menu-content[width="6"]{min-width:336px}md-menu-content[width="7"]{min-width:392px}}@media (min-width:960px){md-menu-content{min-width:96px}md-menu-content[width="3"]{min-width:192px}md-menu-content[width="4"]{min-width:256px}md-menu-content[width="5"]{min-width:320px}md-menu-content[width="6"]{min-width:384px}md-menu-content[width="7"]{min-width:448px}}md-toolbar.md-menu-toolbar h2.md-toolbar-tools{line-height:1rem;height:auto;padding:28px;padding-bottom:12px}md-toolbar.md-has-open-menu{position:relative;z-index:100}md-menu-bar{padding:0 20px;display:block;position:relative;z-index:2}md-menu-bar .md-menu{display:inline-block;padding:0;position:relative}md-menu-bar button{font-size:14px;padding:0 10px;margin:0;border:0;background-color:transparent;height:40px}md-menu-bar md-backdrop.md-menu-backdrop{z-index:-2}md-menu-content.md-menu-bar-menu.md-dense{max-height:none;padding:16px 0}md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent{position:relative}md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent>md-icon{position:absolute;padding:0;width:24px;top:6px;left:24px}[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent>md-icon{left:auto;right:24px}md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent .md-menu>.md-button,md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent>.md-button{padding:0 32px 0 64px}[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent .md-menu>.md-button,[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent>.md-button{padding:0 64px 0 32px}md-menu-content.md-menu-bar-menu.md-dense .md-button{min-height:0;height:32px;display:flex}md-menu-content.md-menu-bar-menu.md-dense .md-button span{flex-grow:1}md-menu-content.md-menu-bar-menu.md-dense .md-button span.md-alt-text{flex-grow:0;align-self:flex-end;margin:0 8px}md-menu-content.md-menu-bar-menu.md-dense md-menu-divider{margin:8px 0}md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button,md-menu-content.md-menu-bar-menu.md-dense md-menu-item>.md-button{text-align:left}[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button,[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense md-menu-item>.md-button{text-align:right}md-menu-content.md-menu-bar-menu.md-dense .md-menu{padding:0}md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button{position:relative;margin:0;width:100%;text-transform:none;font-weight:400;border-radius:0;padding-left:16px}[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button{padding-left:0;padding-right:16px}md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button:after{display:block;content:'\25BC';position:absolute;top:0;speak:none;transform:rotate(270deg) scaleY(.45) scaleX(.9);right:28px}[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button:after{transform:rotate(90deg) scaleY(.45) scaleX(.9)}[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button:after{right:auto;left:28px}.md-nav-bar{border-style:solid;border-width:0 0 1px;height:48px;position:relative}._md-nav-bar-list{outline:0;list-style:none;margin:0;padding:0;box-sizing:border-box;display:flex;flex-direction:row}.md-nav-item:first-of-type{margin-left:8px}.md-button._md-nav-button{line-height:24px;margin:0 4px;padding:12px 16px;transition:background-color .35s cubic-bezier(.35,0,.25,1)}.md-button._md-nav-button:focus{outline:0}.md-button._md-nav-button:hover{background-color:inherit}md-nav-ink-bar{bottom:0;height:2px;left:auto;position:absolute;right:auto;background-color:#000}md-nav-ink-bar._md-left{transition:left 125ms cubic-bezier(.35,0,.25,1),right .25s cubic-bezier(.35,0,.25,1)}md-nav-ink-bar._md-right{transition:left .25s cubic-bezier(.35,0,.25,1),right 125ms cubic-bezier(.35,0,.25,1)}md-nav-extra-content{min-height:48px;padding-right:12px}.md-panel-outer-wrapper{height:100%;left:0;position:absolute;top:0;width:100%}._md-panel-hidden{display:none}._md-panel-fullscreen{border-radius:0;left:0;min-height:100%;min-width:100%;position:fixed;top:0}._md-panel-shown .md-panel{opacity:1;transition:none}.md-panel{opacity:0;position:fixed}.md-panel._md-panel-shown{opacity:1;transition:none}.md-panel._md-panel-animate-enter{opacity:1;transition:all .3s cubic-bezier(0,0,.2,1)}.md-panel._md-panel-animate-leave{opacity:1;transition:all .3s cubic-bezier(.4,0,1,1)}.md-panel._md-panel-animate-fade-out,.md-panel._md-panel-animate-scale-out{opacity:0}.md-panel._md-panel-backdrop{height:100%;position:absolute;width:100%}.md-panel._md-opaque-enter{opacity:.48;transition:opacity .3s cubic-bezier(0,0,.2,1)}.md-panel._md-opaque-leave{transition:opacity .3s cubic-bezier(.4,0,1,1)}@keyframes indeterminate-rotate{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}md-progress-circular{position:relative;display:block}md-progress-circular._md-progress-circular-disabled{visibility:hidden}md-progress-circular.md-mode-indeterminate svg{animation:indeterminate-rotate 2.9s linear infinite}md-progress-circular svg{position:absolute;overflow:visible;top:0;left:0}md-progress-linear{display:block;position:relative;width:100%;height:5px;padding-top:0!important;margin-bottom:0!important}md-progress-linear._md-progress-linear-disabled{visibility:hidden}md-progress-linear .md-container{display:block;position:relative;overflow:hidden;width:100%;height:5px;transform:translate(0,0) scale(1,1)}md-progress-linear .md-container .md-bar{position:absolute;left:0;top:0;bottom:0;width:100%;height:5px}md-progress-linear .md-container .md-dashed:before{content:"";display:none;position:absolute;margin-top:0;height:5px;width:100%;background-color:transparent;background-size:10px 10px!important;background-position:0 -23px}md-progress-linear .md-container .md-bar1,md-progress-linear .md-container .md-bar2{transition:transform .2s linear}md-progress-linear .md-container.md-mode-query .md-bar1{display:none}md-progress-linear .md-container.md-mode-query .md-bar2{transition:all .2s linear;animation:query .8s infinite cubic-bezier(.39,.575,.565,1)}md-progress-linear .md-container.md-mode-determinate .md-bar1{display:none}md-progress-linear .md-container.md-mode-indeterminate .md-bar1{animation:md-progress-linear-indeterminate-scale-1 4s infinite,md-progress-linear-indeterminate-1 4s infinite}md-progress-linear .md-container.md-mode-indeterminate .md-bar2{animation:md-progress-linear-indeterminate-scale-2 4s infinite,md-progress-linear-indeterminate-2 4s infinite}md-progress-linear .md-container.ng-hide ._md-progress-linear-disabled md-progress-linear .md-container{animation:none}md-progress-linear .md-container.ng-hide ._md-progress-linear-disabled md-progress-linear .md-container .md-bar1{animation-name:none}md-progress-linear .md-container.ng-hide ._md-progress-linear-disabled md-progress-linear .md-container .md-bar2{animation-name:none}md-progress-linear .md-container.md-mode-buffer{background-color:transparent!important;transition:all .2s linear}md-progress-linear .md-container.md-mode-buffer .md-dashed:before{display:block;animation:buffer 3s infinite linear}@keyframes query{0%{opacity:1;transform:translateX(35%) scale(.3,1)}100%{opacity:0;transform:translateX(-50%) scale(0,1)}}@keyframes buffer{0%{opacity:1;background-position:0 -23px}50%{opacity:0}100%{opacity:1;background-position:-200px -23px}}@keyframes md-progress-linear-indeterminate-scale-1{0%{transform:scaleX(.1);animation-timing-function:linear}36.6%{transform:scaleX(.1);animation-timing-function:cubic-bezier(.334731432,.124819821,.785843996,1)}69.15%{transform:scaleX(.83);animation-timing-function:cubic-bezier(.225732004,0,.233648906,1.3709798)}100%{transform:scaleX(.1)}}@keyframes md-progress-linear-indeterminate-1{0%{left:-105.166666667%;animation-timing-function:linear}20%{left:-105.166666667%;animation-timing-function:cubic-bezier(.5,0,.701732,.495818703)}69.15%{left:21.5%;animation-timing-function:cubic-bezier(.302435,.38135197,.55,.956352125)}100%{left:95.4444444444%}}@keyframes md-progress-linear-indeterminate-scale-2{0%{transform:scaleX(.1);animation-timing-function:cubic-bezier(.205028172,.057050836,.57660995,.453970841)}19.15%{transform:scaleX(.57);animation-timing-function:cubic-bezier(.152312994,.196431957,.648373778,1.00431535)}44.15%{transform:scaleX(.91);animation-timing-function:cubic-bezier(.25775882,-.003163357,.211761916,1.38178961)}100%{transform:scaleX(.1)}}@keyframes md-progress-linear-indeterminate-2{0%{left:-54.8888888889%;animation-timing-function:cubic-bezier(.15,0,.5150584,.409684966)}25%{left:-17.25%;animation-timing-function:cubic-bezier(.3103299,.284057684,.8,.733718979)}48.35%{left:29.5%;animation-timing-function:cubic-bezier(.4,.627034903,.6,.902025796)}100%{left:117.388888889%}}md-radio-button{box-sizing:border-box;display:block;margin-bottom:16px;white-space:nowrap;cursor:pointer;position:relative}md-radio-button[disabled]{cursor:default}md-radio-button[disabled] .md-container{cursor:default}md-radio-button .md-container{position:absolute;top:50%;transform:translateY(-50%);box-sizing:border-box;display:inline-block;width:20px;height:20px;cursor:pointer;left:0;right:auto}[dir=rtl] md-radio-button .md-container{left:auto}[dir=rtl] md-radio-button .md-container{right:0}md-radio-button .md-container .md-ripple-container{position:absolute;display:block;width:auto;height:auto;left:-15px;top:-15px;right:-15px;bottom:-15px}md-radio-button .md-container:before{box-sizing:border-box;background-color:transparent;border-radius:50%;content:'';position:absolute;display:block;height:auto;left:0;top:0;right:0;bottom:0;transition:all .5s;width:auto}md-radio-button.md-align-top-left>div.md-container{top:12px}md-radio-button .md-off{box-sizing:border-box;position:absolute;top:0;left:0;width:20px;height:20px;border-style:solid;border-width:2px;border-radius:50%;transition:border-color ease .28s}md-radio-button .md-on{box-sizing:border-box;position:absolute;top:0;left:0;width:20px;height:20px;border-radius:50%;transition:transform ease .28s;transform:scale(0)}md-radio-button.md-checked .md-on{transform:scale(.5)}md-radio-button .md-label{box-sizing:border-box;position:relative;display:inline-block;margin-left:30px;margin-right:0;vertical-align:middle;white-space:normal;pointer-events:none;width:auto}[dir=rtl] md-radio-button .md-label{margin-left:0}[dir=rtl] md-radio-button .md-label{margin-right:30px}md-radio-group.layout-column md-radio-button,md-radio-group.layout-gt-lg-column md-radio-button,md-radio-group.layout-gt-md-column md-radio-button,md-radio-group.layout-gt-sm-column md-radio-button,md-radio-group.layout-gt-xs-column md-radio-button,md-radio-group.layout-lg-column md-radio-button,md-radio-group.layout-md-column md-radio-button,md-radio-group.layout-sm-column md-radio-button,md-radio-group.layout-xl-column md-radio-button,md-radio-group.layout-xs-column md-radio-button{margin-bottom:16px}md-radio-group.layout-gt-lg-row md-radio-button,md-radio-group.layout-gt-md-row md-radio-button,md-radio-group.layout-gt-sm-row md-radio-button,md-radio-group.layout-gt-xs-row md-radio-button,md-radio-group.layout-lg-row md-radio-button,md-radio-group.layout-md-row md-radio-button,md-radio-group.layout-row md-radio-button,md-radio-group.layout-sm-row md-radio-button,md-radio-group.layout-xl-row md-radio-button,md-radio-group.layout-xs-row md-radio-button{margin-top:0;margin-bottom:0;margin-left:0;margin-right:16px}[dir=rtl] md-radio-group.layout-gt-lg-row md-radio-button,[dir=rtl] md-radio-group.layout-gt-md-row md-radio-button,[dir=rtl] md-radio-group.layout-gt-sm-row md-radio-button,[dir=rtl] md-radio-group.layout-gt-xs-row md-radio-button,[dir=rtl] md-radio-group.layout-lg-row md-radio-button,[dir=rtl] md-radio-group.layout-md-row md-radio-button,[dir=rtl] md-radio-group.layout-row md-radio-button,[dir=rtl] md-radio-group.layout-sm-row md-radio-button,[dir=rtl] md-radio-group.layout-xl-row md-radio-button,[dir=rtl] md-radio-group.layout-xs-row md-radio-button{margin-left:16px}[dir=rtl] md-radio-group.layout-gt-lg-row md-radio-button,[dir=rtl] md-radio-group.layout-gt-md-row md-radio-button,[dir=rtl] md-radio-group.layout-gt-sm-row md-radio-button,[dir=rtl] md-radio-group.layout-gt-xs-row md-radio-button,[dir=rtl] md-radio-group.layout-lg-row md-radio-button,[dir=rtl] md-radio-group.layout-md-row md-radio-button,[dir=rtl] md-radio-group.layout-row md-radio-button,[dir=rtl] md-radio-group.layout-sm-row md-radio-button,[dir=rtl] md-radio-group.layout-xl-row md-radio-button,[dir=rtl] md-radio-group.layout-xs-row md-radio-button{margin-right:0}md-radio-group.layout-gt-lg-row md-radio-button:last-of-type,md-radio-group.layout-gt-md-row md-radio-button:last-of-type,md-radio-group.layout-gt-sm-row md-radio-button:last-of-type,md-radio-group.layout-gt-xs-row md-radio-button:last-of-type,md-radio-group.layout-lg-row md-radio-button:last-of-type,md-radio-group.layout-md-row md-radio-button:last-of-type,md-radio-group.layout-row md-radio-button:last-of-type,md-radio-group.layout-sm-row md-radio-button:last-of-type,md-radio-group.layout-xl-row md-radio-button:last-of-type,md-radio-group.layout-xs-row md-radio-button:last-of-type{margin-left:0;margin-right:0}md-radio-group:focus{outline:0}md-radio-group.md-focused .md-checked .md-container:before{left:-8px;top:-8px;right:-8px;bottom:-8px}md-radio-group[disabled] md-radio-button{cursor:default}md-radio-group[disabled] md-radio-button .md-container{cursor:default}.md-inline-form md-radio-group{margin:18px 0 19px}.md-inline-form md-radio-group md-radio-button{display:inline-block;height:30px;padding:2px;box-sizing:border-box;margin-top:0;margin-bottom:0}@media screen and (-ms-high-contrast:active){md-radio-button.md-default-theme .md-on{background-color:#fff}}md-input-container:not([md-no-float]) .md-select-placeholder span:first-child{transition:transform .4s cubic-bezier(.25,.8,.25,1);transform-origin:left top}[dir=rtl] md-input-container:not([md-no-float]) .md-select-placeholder span:first-child{transform-origin:right top}md-input-container.md-input-focused:not([md-no-float]) .md-select-placeholder span:first-child{transform:translateY(-22px) translateX(-2px) scale(.75)}.md-select-menu-container{position:fixed;left:0;top:0;z-index:90;opacity:0;display:none;transform:translateY(-1px)}.md-select-menu-container:not(.md-clickable){pointer-events:none}.md-select-menu-container md-progress-circular{display:table;margin:24px auto!important}.md-select-menu-container.md-active{display:block;opacity:1}.md-select-menu-container.md-active md-select-menu{transition:all .4s cubic-bezier(.25,.8,.25,1);transition-duration:150ms}.md-select-menu-container.md-active md-select-menu>*{opacity:1;transition:all .3s cubic-bezier(.55,0,.55,.2);transition-duration:150ms;transition-delay:.1s}.md-select-menu-container.md-leave{opacity:0;transition:all .3s cubic-bezier(.55,0,.55,.2);transition-duration:250ms}md-input-container>md-select{margin:0;order:2}md-input-container:not(.md-input-has-value) md-select.ng-required:not(.md-no-asterisk) .md-select-value span:first-child:after,md-input-container:not(.md-input-has-value) md-select[required]:not(.md-no-asterisk) .md-select-value span:first-child:after{content:' *';font-size:13px;vertical-align:top}md-input-container.md-input-invalid md-select .md-select-value{border-bottom-style:solid;padding-bottom:1px}md-select{display:flex;margin:20px 0 26px 0}md-select.ng-required.ng-invalid:not(.md-no-asterisk) .md-select-value span:first-child:after,md-select[required].ng-invalid:not(.md-no-asterisk) .md-select-value span:first-child:after{content:' *';font-size:13px;vertical-align:top}md-select[disabled] .md-select-value{background-position:0 bottom;background-size:4px 1px;background-repeat:repeat-x;margin-bottom:-1px}md-select:focus{outline:0}md-select[disabled]:hover{cursor:default}md-select:not([disabled]):hover{cursor:pointer}md-select:not([disabled]).ng-invalid.ng-touched .md-select-value{border-bottom-style:solid;padding-bottom:1px}md-select:not([disabled]):focus .md-select-value{border-bottom-width:2px;border-bottom-style:solid;padding-bottom:0}md-select:not([disabled]):focus.ng-invalid.ng-touched .md-select-value{padding-bottom:0}md-input-container.md-input-has-value .md-select-value>span:not(.md-select-icon){transform:translate3d(0,1px,0)}.md-select-value{display:flex;align-items:center;padding:2px 2px 1px;border-bottom-width:1px;border-bottom-style:solid;background-color:transparent;position:relative;box-sizing:content-box;min-width:64px;min-height:26px;flex-grow:1}.md-select-value>span:not(.md-select-icon){max-width:100%;flex:1 1 auto;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.md-select-value>span:not(.md-select-icon) .md-text{display:inline}.md-select-value .md-select-icon{display:block;align-items:flex-end;text-align:end;width:24px;margin:0 4px;transform:translate3d(0,-2px,0);font-size:1.2rem}.md-select-value .md-select-icon:after{display:block;content:'\25BC';position:relative;top:2px;speak:none;font-size:13px;transform:scaleY(.5) scaleX(1)}.md-select-value.md-select-placeholder{display:flex;order:1;pointer-events:none;-webkit-font-smoothing:antialiased;padding-left:2px;z-index:1}md-select-menu{display:flex;flex-direction:column;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12);max-height:256px;min-height:48px;overflow-y:hidden;transform-origin:left top;transform:scale(1)}md-select-menu.md-reverse{flex-direction:column-reverse}md-select-menu:not(.md-overflow) md-content{padding-top:8px;padding-bottom:8px}[dir=rtl] md-select-menu{transform-origin:right top}md-select-menu md-content{min-width:136px;min-height:48px;max-height:256px;overflow-y:auto}md-select-menu>*{opacity:0}md-option{cursor:pointer;position:relative;display:flex;align-items:center;width:auto;transition:background .15s linear;padding:0 16px 0 16px;height:48px}md-option[disabled]{cursor:default}md-option:focus{outline:0}md-option .md-text{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}md-optgroup{display:block}md-optgroup label{display:block;font-size:14px;text-transform:uppercase;padding:16px;font-weight:500}md-optgroup md-option{padding-left:32px;padding-right:32px}@media screen and (-ms-high-contrast:active){.md-select-backdrop{background-color:transparent}md-select-menu{border:1px solid #fff}}md-select-menu[multiple] md-option.md-checkbox-enabled{padding-left:40px;padding-right:16px}[dir=rtl] md-select-menu[multiple] md-option.md-checkbox-enabled{padding-left:16px}[dir=rtl] md-select-menu[multiple] md-option.md-checkbox-enabled{padding-right:40px}md-select-menu[multiple] md-option.md-checkbox-enabled .md-container{position:absolute;top:50%;transform:translateY(-50%);box-sizing:border-box;display:inline-block;width:20px;height:20px;left:0;right:auto}[dir=rtl] md-select-menu[multiple] md-option.md-checkbox-enabled .md-container{left:auto}[dir=rtl] md-select-menu[multiple] md-option.md-checkbox-enabled .md-container{right:0}md-select-menu[multiple] md-option.md-checkbox-enabled .md-container:before{box-sizing:border-box;background-color:transparent;border-radius:50%;content:'';position:absolute;display:block;height:auto;left:0;top:0;right:0;bottom:0;transition:all .5s;width:auto}md-select-menu[multiple] md-option.md-checkbox-enabled .md-container:after{box-sizing:border-box;content:'';position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px}md-select-menu[multiple] md-option.md-checkbox-enabled .md-container .md-ripple-container{position:absolute;display:block;width:auto;height:auto;left:-15px;top:-15px;right:-15px;bottom:-15px}md-select-menu[multiple] md-option.md-checkbox-enabled .md-icon{box-sizing:border-box;transition:240ms;position:absolute;top:0;left:0;width:20px;height:20px;border-width:2px;border-style:solid;border-radius:2px}md-select-menu[multiple] md-option.md-checkbox-enabled[selected] .md-icon{border-color:transparent}md-select-menu[multiple] md-option.md-checkbox-enabled[selected] .md-icon:after{box-sizing:border-box;transform:rotate(45deg);position:absolute;left:4.6666666667px;top:.2222222222px;display:table;width:6.6666666667px;height:13.3333333333px;border-width:2px;border-style:solid;border-top:0;border-left:0;content:''}md-select-menu[multiple] md-option.md-checkbox-enabled[disabled]{cursor:default}md-select-menu[multiple] md-option.md-checkbox-enabled.md-indeterminate .md-icon:after{box-sizing:border-box;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:table;width:12px;height:2px;border-width:2px;border-style:solid;border-top:0;border-left:0;content:''}md-select-menu[multiple] md-option.md-checkbox-enabled .md-container{margin-left:10.6666666667px;margin-right:auto}[dir=rtl] md-select-menu[multiple] md-option.md-checkbox-enabled .md-container{margin-left:auto}[dir=rtl] md-select-menu[multiple] md-option.md-checkbox-enabled .md-container{margin-right:10.6666666667px}md-sidenav{box-sizing:border-box;position:absolute;flex-direction:column;z-index:60;width:320px;max-width:320px;bottom:0;overflow:auto;-webkit-overflow-scrolling:touch}md-sidenav ul{list-style:none}md-sidenav.md-closed{display:none}md-sidenav.md-closed-add,md-sidenav.md-closed-remove{display:flex;transition:.2s ease-in all}md-sidenav.md-closed-add.md-closed-add-active,md-sidenav.md-closed-remove.md-closed-remove-active{transition:all .4s cubic-bezier(.25,.8,.25,1)}md-sidenav.md-locked-open-add,md-sidenav.md-locked-open-remove{position:static;display:flex;transform:translate3d(0,0,0)}md-sidenav.md-locked-open,md-sidenav.md-locked-open-remove.md-closed,md-sidenav.md-locked-open.md-closed,md-sidenav.md-locked-open.md-closed.md-sidenav-left,md-sidenav.md-locked-open.md-closed.md-sidenav-right{position:static;display:flex;transform:translate3d(0,0,0)}md-sidenav.md-locked-open-remove-active{transition:width .3s cubic-bezier(.55,0,.55,.2),min-width .3s cubic-bezier(.55,0,.55,.2);width:0!important;min-width:0!important}md-sidenav.md-closed.md-locked-open-add{width:0!important;min-width:0!important;transform:translate3d(0,0,0)}md-sidenav.md-closed.md-locked-open-add-active{transition:width .3s cubic-bezier(.55,0,.55,.2),min-width .3s cubic-bezier(.55,0,.55,.2);width:320px;min-width:320px;transform:translate3d(0,0,0)}.md-sidenav-backdrop.md-locked-open{display:none}.md-sidenav-left,md-sidenav{left:0;top:0;transform:translate3d(0,0,0)}.md-sidenav-left.md-closed,md-sidenav.md-closed{transform:translate3d(-100%,0,0)}.md-sidenav-right{left:100%;top:0;transform:translate(-100%,0)}.md-sidenav-right.md-closed{transform:translate(0,0)}@media (min-width:600px){md-sidenav{max-width:400px}}@media (max-width:456px){md-sidenav{width:calc(100% - 56px);min-width:calc(100% - 56px);max-width:calc(100% - 56px)}}@media screen and (-ms-high-contrast:active){.md-sidenav-left,md-sidenav{border-right:1px solid #fff}.md-sidenav-right{border-left:1px solid #fff}}@keyframes sliderFocusThumb{0%{transform:scale(.7)}30%{transform:scale(1)}100%{transform:scale(.7)}}@keyframes sliderDiscreteFocusThumb{0%{transform:scale(.7)}50%{transform:scale(.8)}100%{transform:scale(0)}}@keyframes sliderDiscreteFocusRing{0%{transform:scale(.7);opacity:0}50%{transform:scale(1);opacity:1}100%{transform:scale(0)}}md-slider{height:48px;min-width:128px;position:relative;margin-left:4px;margin-right:4px;padding:0;display:block;flex-direction:row}md-slider *,md-slider :after{box-sizing:border-box}md-slider .md-slider-wrapper{outline:0;width:100%;height:100%}md-slider .md-slider-content{position:relative}md-slider .md-track-container{width:100%;position:absolute;top:23px;height:2px}md-slider .md-track{position:absolute;left:0;right:0;height:100%}md-slider .md-track-fill{transition:all .4s cubic-bezier(.25,.8,.25,1);transition-property:width,height}md-slider .md-track-ticks{position:absolute;left:0;right:0;height:100%}md-slider .md-track-ticks canvas{width:100%;height:100%}md-slider .md-thumb-container{position:absolute;left:0;top:50%;transform:translate3d(-50%,-50%,0);transition:all .4s cubic-bezier(.25,.8,.25,1);transition-property:left,right,bottom}[dir=rtl] md-slider .md-thumb-container{left:auto;right:0}md-slider .md-thumb{z-index:1;position:absolute;left:-10px;top:14px;width:20px;height:20px;border-radius:20px;transform:scale(.7);transition:all .4s cubic-bezier(.25,.8,.25,1)}[dir=rtl] md-slider .md-thumb{left:auto;right:-10px}md-slider .md-thumb:after{content:'';position:absolute;width:20px;height:20px;border-radius:20px;border-width:3px;border-style:solid;transition:inherit}md-slider .md-sign{display:flex;align-items:center;justify-content:center;position:absolute;left:-14px;top:-17px;width:28px;height:28px;border-radius:28px;transform:scale(.4) translate3d(0,67.5px,0);transition:all .3s cubic-bezier(.35,0,.25,1)}md-slider .md-sign:after{position:absolute;content:'';left:0;border-radius:16px;top:19px;border-left:14px solid transparent;border-right:14px solid transparent;border-top-width:16px;border-top-style:solid;opacity:0;transform:translate3d(0,-8px,0);transition:all .2s cubic-bezier(.35,0,.25,1)}[dir=rtl] md-slider .md-sign:after{left:auto;right:0}md-slider .md-sign .md-thumb-text{z-index:1;font-size:12px;font-weight:700}md-slider .md-focus-ring{position:absolute;left:-17px;top:7px;width:34px;height:34px;border-radius:34px;transform:scale(.7);opacity:0;transition:all .35s cubic-bezier(.35,0,.25,1)}[dir=rtl] md-slider .md-focus-ring{left:auto;right:-17px}md-slider .md-disabled-thumb{position:absolute;left:-14px;top:10px;width:28px;height:28px;border-radius:28px;transform:scale(.5);border-width:4px;border-style:solid;display:none}[dir=rtl] md-slider .md-disabled-thumb{left:auto;right:-14px}md-slider.md-min .md-sign{opacity:0}md-slider:focus{outline:0}md-slider.md-dragging .md-thumb-container,md-slider.md-dragging .md-track-fill{transition:none}md-slider:not([md-discrete]) .md-sign,md-slider:not([md-discrete]) .md-track-ticks{display:none}md-slider:not([md-discrete]):not([disabled]) .md-slider-wrapper .md-thumb:hover{transform:scale(.8)}md-slider:not([md-discrete]):not([disabled]) .md-slider-wrapper.md-focused .md-focus-ring{transform:scale(1);opacity:1}md-slider:not([md-discrete]):not([disabled]) .md-slider-wrapper.md-focused .md-thumb{animation:sliderFocusThumb .7s cubic-bezier(.35,0,.25,1)}md-slider:not([md-discrete]):not([disabled]).md-active .md-slider-wrapper .md-thumb{transform:scale(1)}md-slider[md-discrete]:not([disabled]) .md-slider-wrapper.md-focused .md-focus-ring{transform:scale(0);animation:sliderDiscreteFocusRing .5s cubic-bezier(.35,0,.25,1)}md-slider[md-discrete]:not([disabled]) .md-slider-wrapper.md-focused .md-thumb{animation:sliderDiscreteFocusThumb .5s cubic-bezier(.35,0,.25,1)}md-slider[md-discrete]:not([disabled]) .md-slider-wrapper.md-focused .md-thumb,md-slider[md-discrete]:not([disabled]).md-active .md-thumb{transform:scale(0)}md-slider[md-discrete]:not([disabled]) .md-slider-wrapper.md-focused .md-sign,md-slider[md-discrete]:not([disabled]) .md-slider-wrapper.md-focused .md-sign:after,md-slider[md-discrete]:not([disabled]).md-active .md-sign,md-slider[md-discrete]:not([disabled]).md-active .md-sign:after{opacity:1;transform:translate3d(0,0,0) scale(1)}md-slider[md-discrete][disabled][readonly] .md-thumb{transform:scale(0)}md-slider[md-discrete][disabled][readonly] .md-sign,md-slider[md-discrete][disabled][readonly] .md-sign:after{opacity:1;transform:translate3d(0,0,0) scale(1)}md-slider[disabled] .md-track-fill{display:none}md-slider[disabled] .md-track-ticks{opacity:0}md-slider[disabled]:not([readonly]) .md-sign{opacity:0}md-slider[disabled] .md-thumb{transform:scale(.5)}md-slider[disabled] .md-disabled-thumb{display:block}md-slider[md-vertical]{flex-direction:column;min-height:128px;min-width:0}md-slider[md-vertical] .md-slider-wrapper{flex:1;padding-top:12px;padding-bottom:12px;width:48px;align-self:center;display:flex;justify-content:center}md-slider[md-vertical] .md-track-container{height:100%;width:2px;top:0;left:calc(50% - (2px / 2))}md-slider[md-vertical] .md-thumb-container{top:auto;margin-bottom:23px;left:calc(50% - 1px);bottom:0}md-slider[md-vertical] .md-thumb-container .md-thumb:after{left:1px}md-slider[md-vertical] .md-thumb-container .md-focus-ring{left:-16px}md-slider[md-vertical] .md-track-fill{bottom:0}md-slider[md-vertical][md-discrete] .md-sign{left:-40px;top:9.5px;transform:scale(.4) translate3d(67.5px,0,0)}md-slider[md-vertical][md-discrete] .md-sign:after{top:9.5px;left:19px;border-top:14px solid transparent;border-right:0;border-bottom:14px solid transparent;border-left-width:16px;border-left-style:solid;opacity:0;transform:translate3d(0,-8px,0);transition:all .2s ease-in-out}md-slider[md-vertical][md-discrete] .md-sign .md-thumb-text{z-index:1;font-size:12px;font-weight:700}md-slider[md-vertical][md-discrete] .md-focused .md-sign:after,md-slider[md-vertical][md-discrete].md-active .md-sign:after,md-slider[md-vertical][md-discrete][disabled][readonly] .md-sign:after{top:0}md-slider[md-vertical][disabled][readonly] .md-thumb{transform:scale(0)}md-slider[md-vertical][disabled][readonly] .md-sign,md-slider[md-vertical][disabled][readonly] .md-sign:after{opacity:1;transform:translate3d(0,0,0) scale(1)}md-slider[md-invert]:not([md-vertical]) .md-track-fill{left:auto;right:0}[dir=rtl] md-slider[md-invert]:not([md-vertical]) .md-track-fill{left:0}[dir=rtl] md-slider[md-invert]:not([md-vertical]) .md-track-fill{right:auto}md-slider[md-invert][md-vertical] .md-track-fill{bottom:auto;top:0}md-slider-container{display:flex;align-items:center;flex-direction:row}md-slider-container>:first-child:not(md-slider),md-slider-container>:last-child:not(md-slider){min-width:25px;max-width:42px;height:25px;transition:all .4s cubic-bezier(.25,.8,.25,1);transition-property:color,max-width}md-slider-container>:first-child:not(md-slider){margin-right:16px}[dir=rtl] md-slider-container>:first-child:not(md-slider){margin-right:auto;margin-left:16px}md-slider-container>:last-child:not(md-slider){margin-left:16px}[dir=rtl] md-slider-container>:last-child:not(md-slider){margin-left:auto;margin-right:16px}md-slider-container[md-vertical]{flex-direction:column}md-slider-container[md-vertical]>:first-child:not(md-slider),md-slider-container[md-vertical]>:last-child:not(md-slider){margin-right:0;margin-left:0;text-align:center}md-slider-container md-input-container input[type=number]{text-align:center;padding-left:15px;height:50px;margin-top:-25px}[dir=rtl] md-slider-container md-input-container input[type=number]{padding-left:0;padding-right:15px}@media screen and (-ms-high-contrast:active){md-slider.md-default-theme .md-track{border-bottom:1px solid #fff}}.md-sticky-clone{z-index:2;top:0;left:0;right:0;position:absolute!important;transform:translate3d(-9999px,-9999px,0)}.md-sticky-clone[sticky-state=active]{transform:translate3d(0,0,0)}.md-sticky-clone[sticky-state=active]:not(.md-sticky-no-effect) .md-subheader-inner{animation:subheaderStickyHoverIn .3s ease-out both}@keyframes subheaderStickyHoverIn{0%{box-shadow:0 0 0 0 transparent}100%{box-shadow:0 2px 4px 0 rgba(0,0,0,.16)}}@keyframes subheaderStickyHoverOut{0%{box-shadow:0 2px 4px 0 rgba(0,0,0,.16)}100%{box-shadow:0 0 0 0 transparent}}.md-subheader-wrapper:not(.md-sticky-no-effect){transition:.2s ease-out margin}.md-subheader-wrapper:not(.md-sticky-no-effect) .md-subheader{margin:0}.md-subheader-wrapper:not(.md-sticky-no-effect).md-sticky-clone{z-index:2}.md-subheader-wrapper:not(.md-sticky-no-effect)[sticky-state=active]{margin-top:-2px}.md-subheader-wrapper:not(.md-sticky-no-effect):not(.md-sticky-clone)[sticky-prev-state=active] .md-subheader-inner:after{animation:subheaderStickyHoverOut .3s ease-out both}.md-subheader{display:block;font-size:14px;font-weight:500;line-height:1em;margin:0;position:relative}.md-subheader .md-subheader-inner{display:block;padding:16px}.md-subheader .md-subheader-content{display:block;z-index:1;position:relative}.md-inline-form md-switch{margin-top:18px;margin-bottom:19px}md-switch{margin:16px 0;white-space:nowrap;cursor:pointer;outline:0;user-select:none;height:30px;line-height:28px;align-items:center;display:flex;margin-left:inherit;margin-right:16px}[dir=rtl] md-switch{margin-left:16px}[dir=rtl] md-switch{margin-right:inherit}md-switch:last-of-type{margin-left:inherit;margin-right:0}[dir=rtl] md-switch:last-of-type{margin-left:0}[dir=rtl] md-switch:last-of-type{margin-right:inherit}md-switch[disabled]{cursor:default}md-switch[disabled] .md-container{cursor:default}md-switch .md-container{cursor:grab;width:36px;height:24px;position:relative;user-select:none;margin-right:8px;float:left}[dir=rtl] md-switch .md-container{margin-right:auto;margin-left:8px}md-switch:not([disabled]) .md-dragging,md-switch:not([disabled]).md-dragging .md-container{cursor:grabbing}md-switch.md-focused:not([disabled]) .md-thumb:before{left:-8px;top:-8px;right:-8px;bottom:-8px}md-switch.md-focused:not([disabled]):not(.md-checked) .md-thumb:before{background-color:rgba(0,0,0,.12)}md-switch .md-label{border-color:transparent;border-width:0;float:left}md-switch .md-bar{left:1px;width:34px;top:5px;height:14px;border-radius:8px;position:absolute}md-switch .md-thumb-container{top:2px;left:0;width:16px;position:absolute;transform:translate3d(0,0,0);z-index:1}md-switch.md-checked .md-thumb-container{transform:translate3d(100%,0,0)}md-switch .md-thumb{position:absolute;margin:0;left:0;top:0;outline:0;height:20px;width:20px;border-radius:50%;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}md-switch .md-thumb:before{background-color:transparent;border-radius:50%;content:'';position:absolute;display:block;height:auto;left:0;top:0;right:0;bottom:0;transition:all .5s;width:auto}md-switch .md-thumb .md-ripple-container{position:absolute;display:block;width:auto;height:auto;left:-20px;top:-20px;right:-20px;bottom:-20px}md-switch:not(.md-dragging) .md-bar,md-switch:not(.md-dragging) .md-thumb,md-switch:not(.md-dragging) .md-thumb-container{transition:all 80ms linear;transition-property:transform,background-color}md-switch:not(.md-dragging) .md-bar,md-switch:not(.md-dragging) .md-thumb{transition-delay:50ms}@media screen and (-ms-high-contrast:active){md-switch.md-default-theme .md-bar{background-color:#666}md-switch.md-default-theme.md-checked .md-bar{background-color:#9e9e9e}md-switch.md-default-theme .md-thumb{background-color:#fff}}@keyframes md-tab-content-hide{0%{opacity:1}50%{opacity:1}100%{opacity:0}}md-tab-data{position:absolute;top:0;left:0;right:0;bottom:0;z-index:-1;opacity:0}md-tabs{display:block;margin:0;border-radius:2px;overflow:hidden;position:relative;flex-shrink:0}md-tabs:not(.md-no-tab-content):not(.md-dynamic-height){min-height:248px}md-tabs[md-align-tabs=bottom]{padding-bottom:48px}md-tabs[md-align-tabs=bottom] md-tabs-wrapper{position:absolute;bottom:0;left:0;right:0;height:48px;z-index:2}md-tabs[md-align-tabs=bottom] md-tabs-content-wrapper{top:0;bottom:48px}md-tabs.md-dynamic-height md-tabs-content-wrapper{min-height:0;position:relative;top:auto;left:auto;right:auto;bottom:auto;overflow:visible}md-tabs.md-dynamic-height md-tab-content.md-active{position:relative}md-tabs[md-border-bottom] md-tabs-wrapper{border-width:0 0 1px;border-style:solid}md-tabs[md-border-bottom]:not(.md-dynamic-height) md-tabs-content-wrapper{top:49px}md-tabs-wrapper{display:block;position:relative;transform:translate3d(0,0,0)}md-tabs-wrapper md-next-button,md-tabs-wrapper md-prev-button{height:100%;width:32px;position:absolute;top:50%;transform:translateY(-50%);line-height:1em;z-index:2;cursor:pointer;font-size:16px;background:transparent no-repeat center center;transition:all .5s cubic-bezier(.35,0,.25,1)}md-tabs-wrapper md-next-button:focus,md-tabs-wrapper md-prev-button:focus{outline:0}md-tabs-wrapper md-next-button.md-disabled,md-tabs-wrapper md-prev-button.md-disabled{opacity:.25;cursor:default}md-tabs-wrapper md-next-button.ng-leave,md-tabs-wrapper md-prev-button.ng-leave{transition:none}md-tabs-wrapper md-next-button md-icon,md-tabs-wrapper md-prev-button md-icon{position:absolute;top:50%;left:50%;transform:translate3d(-50%,-50%,0)}md-tabs-wrapper md-prev-button{left:0;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE3LjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPiA8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPiA8c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSIyNHB4IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMjQgMjQiIHhtbDpzcGFjZT0icHJlc2VydmUiPiA8ZyBpZD0iSGVhZGVyIj4gPGc+IDxyZWN0IHg9Ii02MTgiIHk9Ii0xMjA4IiBmaWxsPSJub25lIiB3aWR0aD0iMTQwMCIgaGVpZ2h0PSIzNjAwIi8+IDwvZz4gPC9nPiA8ZyBpZD0iTGFiZWwiPiA8L2c+IDxnIGlkPSJJY29uIj4gPGc+IDxwb2x5Z29uIHBvaW50cz0iMTUuNCw3LjQgMTQsNiA4LDEyIDE0LDE4IDE1LjQsMTYuNiAxMC44LDEyIAkJIiBzdHlsZT0iZmlsbDp3aGl0ZTsiLz4gPHJlY3QgZmlsbD0ibm9uZSIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ii8+IDwvZz4gPC9nPiA8ZyBpZD0iR3JpZCIgZGlzcGxheT0ibm9uZSI+IDxnIGRpc3BsYXk9ImlubGluZSI+IDwvZz4gPC9nPiA8L3N2Zz4NCg==)}[dir=rtl] md-tabs-wrapper md-prev-button{left:auto;right:0}md-tabs-wrapper md-next-button{right:0;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE3LjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPiA8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPiA8c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSIyNHB4IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMjQgMjQiIHhtbDpzcGFjZT0icHJlc2VydmUiPiA8ZyBpZD0iSGVhZGVyIj4gPGc+IDxyZWN0IHg9Ii02MTgiIHk9Ii0xMzM2IiBmaWxsPSJub25lIiB3aWR0aD0iMTQwMCIgaGVpZ2h0PSIzNjAwIi8+IDwvZz4gPC9nPiA8ZyBpZD0iTGFiZWwiPiA8L2c+IDxnIGlkPSJJY29uIj4gPGc+IDxwb2x5Z29uIHBvaW50cz0iMTAsNiA4LjYsNy40IDEzLjIsMTIgOC42LDE2LjYgMTAsMTggMTYsMTIgCQkiIHN0eWxlPSJmaWxsOndoaXRlOyIvPiA8cmVjdCBmaWxsPSJub25lIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiLz4gPC9nPiA8L2c+IDxnIGlkPSJHcmlkIiBkaXNwbGF5PSJub25lIj4gPGcgZGlzcGxheT0iaW5saW5lIj4gPC9nPiA8L2c+IDwvc3ZnPg0K)}[dir=rtl] md-tabs-wrapper md-next-button{right:auto;left:0}md-tabs-wrapper md-next-button md-icon{transform:translate3d(-50%,-50%,0) rotate(180deg)}md-tabs-wrapper.md-stretch-tabs md-pagination-wrapper{width:100%;display:flex;flex-direction:row}md-tabs-wrapper.md-stretch-tabs md-pagination-wrapper md-tab-item{flex-grow:1}md-tabs-canvas{position:relative;overflow:hidden;display:block;height:48px}md-tabs-canvas:after{content:'';display:table;clear:both}md-tabs-canvas .md-dummy-wrapper{position:absolute;top:0;left:0}[dir=rtl] md-tabs-canvas .md-dummy-wrapper{left:auto;right:0}md-tabs-canvas.md-paginated{margin:0 32px}md-tabs-canvas.md-center-tabs{display:flex;flex-direction:column;text-align:center}md-tabs-canvas.md-center-tabs .md-tab{float:none;display:inline-block}md-pagination-wrapper{height:48px;display:block;transition:transform .5s cubic-bezier(.35,0,.25,1);position:absolute;width:999999px;left:0;transform:translate3d(0,0,0)}md-pagination-wrapper:after{content:'';display:table;clear:both}[dir=rtl] md-pagination-wrapper{left:auto;right:0}md-pagination-wrapper.md-center-tabs{position:relative;width:auto;margin:0 auto}md-tabs-content-wrapper{display:block;position:absolute;top:48px;left:0;right:0;bottom:0;overflow:hidden}md-tab-content{display:block;position:absolute;top:0;left:0;right:0;bottom:0;transition:transform .5s cubic-bezier(.35,0,.25,1);overflow:auto;transform:translate3d(0,0,0)}md-tab-content.md-no-scroll{bottom:auto;overflow:hidden}md-tab-content.md-no-transition,md-tab-content.ng-leave{transition:none}md-tab-content.md-left:not(.md-active){transform:translateX(-100%);animation:1s md-tab-content-hide;opacity:0}[dir=rtl] md-tab-content.md-left:not(.md-active){transform:translateX(100%)}md-tab-content.md-left:not(.md-active) *{transition:visibility 0s linear;transition-delay:.5s;visibility:hidden}md-tab-content.md-right:not(.md-active){transform:translateX(100%);animation:1s md-tab-content-hide;opacity:0}[dir=rtl] md-tab-content.md-right:not(.md-active){transform:translateX(-100%)}md-tab-content.md-right:not(.md-active) *{transition:visibility 0s linear;transition-delay:.5s;visibility:hidden}md-tab-content>div.ng-leave{animation:1s md-tab-content-hide}md-ink-bar{position:absolute;left:auto;right:auto;bottom:0;height:2px}md-ink-bar.md-left{transition:left 125ms cubic-bezier(.35,0,.25,1),right .25s cubic-bezier(.35,0,.25,1)}md-ink-bar.md-right{transition:left .25s cubic-bezier(.35,0,.25,1),right 125ms cubic-bezier(.35,0,.25,1)}md-tab{position:absolute;z-index:-1;left:-9999px}.md-tab{font-size:14px;text-align:center;line-height:24px;padding:12px 24px;transition:background-color .35s cubic-bezier(.35,0,.25,1);cursor:pointer;white-space:nowrap;position:relative;text-transform:uppercase;float:left;font-weight:500;box-sizing:border-box;overflow:hidden;text-overflow:ellipsis}[dir=rtl] .md-tab{float:right}.md-tab.md-focused{box-shadow:none;outline:0}.md-tab.md-active{cursor:default}.md-tab.md-disabled{pointer-events:none;touch-action:pan-y;user-select:none;-webkit-user-drag:none;opacity:.5;cursor:default}.md-tab.ng-leave{transition:none}md-toolbar+md-tabs{border-top-left-radius:0;border-top-right-radius:0}.md-toast-text{padding:0 6px}md-toast{position:absolute;z-index:105;box-sizing:border-box;cursor:default;overflow:hidden;padding:8px;opacity:1;transition:all .4s cubic-bezier(.25,.8,.25,1)}md-toast .md-toast-content{display:flex;direction:row;align-items:center;max-height:168px;max-width:100%;min-height:48px;padding:0 18px;box-shadow:0 2px 5px 0 rgba(0,0,0,.26);border-radius:2px;font-size:14px;overflow:hidden;transform:translate3d(0,0,0) rotateZ(0);transition:all .4s cubic-bezier(.25,.8,.25,1);justify-content:flex-start}md-toast .md-toast-content::before{content:'';min-height:48px;visibility:hidden;display:inline-block}[dir=rtl] md-toast .md-toast-content{justify-content:flex-end}md-toast .md-toast-content span{flex:1 1 0%;box-sizing:border-box;min-width:0}md-toast.md-capsule{border-radius:24px}md-toast.md-capsule .md-toast-content{border-radius:24px}md-toast.ng-leave-active .md-toast-content{transition:all .3s cubic-bezier(.55,0,.55,.2)}md-toast.md-swipedown .md-toast-content,md-toast.md-swipeleft .md-toast-content,md-toast.md-swiperight .md-toast-content,md-toast.md-swipeup .md-toast-content{transition:all .4s cubic-bezier(.25,.8,.25,1)}md-toast.ng-enter{opacity:0}md-toast.ng-enter .md-toast-content{transform:translate3d(0,100%,0)}md-toast.ng-enter.md-top .md-toast-content{transform:translate3d(0,-100%,0)}md-toast.ng-enter.ng-enter-active{opacity:1}md-toast.ng-enter.ng-enter-active .md-toast-content{transform:translate3d(0,0,0)}md-toast.ng-leave.ng-leave-active .md-toast-content{opacity:0;transform:translate3d(0,100%,0)}md-toast.ng-leave.ng-leave-active.md-swipeup .md-toast-content{transform:translate3d(0,-50%,0)}md-toast.ng-leave.ng-leave-active.md-swipedown .md-toast-content{transform:translate3d(0,50%,0)}md-toast.ng-leave.ng-leave-active.md-top .md-toast-content{transform:translate3d(0,-100%,0)}md-toast .md-action{line-height:19px;margin-left:24px;margin-right:0;cursor:pointer;text-transform:uppercase;float:right}md-toast .md-button{min-width:0;margin-right:0;margin-left:12px}[dir=rtl] md-toast .md-button{margin-right:12px}[dir=rtl] md-toast .md-button{margin-left:0}@media (max-width:959px){md-toast{left:0;right:0;width:100%;max-width:100%;min-width:0;border-radius:0;bottom:0;padding:0}md-toast.ng-leave.ng-leave-active.md-swipeup .md-toast-content{transform:translate3d(0,-50%,0)}md-toast.ng-leave.ng-leave-active.md-swipedown .md-toast-content{transform:translate3d(0,50%,0)}}@media (min-width:960px){md-toast{min-width:304px}md-toast.md-bottom{bottom:0}md-toast.md-left{left:0}md-toast.md-right{right:0}md-toast.md-top{top:0}md-toast._md-start{left:0}[dir=rtl] md-toast._md-start{left:auto;right:0}md-toast._md-end{right:0}[dir=rtl] md-toast._md-end{right:auto;left:0}md-toast.ng-leave.ng-leave-active.md-swipeleft .md-toast-content{transform:translate3d(-50%,0,0)}md-toast.ng-leave.ng-leave-active.md-swiperight .md-toast-content{transform:translate3d(50%,0,0)}}@media (min-width:1920px){md-toast .md-toast-content{max-width:568px}}@media screen and (-ms-high-contrast:active){md-toast{border:1px solid #fff}}.md-toast-animating{overflow:hidden!important}md-toolbar{box-sizing:border-box;display:flex;flex-direction:column;position:relative;z-index:2;font-size:20px;min-height:64px;width:100%}md-toolbar._md-toolbar-transitions{transition-duration:.5s;transition-timing-function:cubic-bezier(.35,0,.25,1);transition-property:background-color,fill,color}md-toolbar.md-whiteframe-z1-add,md-toolbar.md-whiteframe-z1-remove{transition:box-shadow .5s linear}md-toolbar md-toolbar-filler{width:72px}md-toolbar *,md-toolbar :after,md-toolbar :before{box-sizing:border-box}md-toolbar.ng-animate{transition:none}md-toolbar.md-tall{height:128px;min-height:128px;max-height:128px}md-toolbar.md-medium-tall{height:88px;min-height:88px;max-height:88px}md-toolbar.md-medium-tall .md-toolbar-tools{height:48px;min-height:48px;max-height:48px}md-toolbar>.md-indent{margin-left:64px}[dir=rtl] md-toolbar>.md-indent{margin-left:auto;margin-right:64px}md-toolbar~md-content>md-list{padding:0}md-toolbar~md-content>md-list md-list-item:last-child md-divider{display:none}.md-toolbar-tools{font-size:20px;letter-spacing:.005em;box-sizing:border-box;font-weight:400;display:flex;align-items:center;flex-direction:row;width:100%;height:64px;max-height:64px;padding:0 16px;margin:0}.md-toolbar-tools h1,.md-toolbar-tools h2,.md-toolbar-tools h3{font-size:inherit;font-weight:inherit;margin:inherit}.md-toolbar-tools a{color:inherit;text-decoration:none}.md-toolbar-tools .fill-height{display:flex;align-items:center}.md-toolbar-tools .md-button{margin-top:0;margin-bottom:0}.md-toolbar-tools .md-button,.md-toolbar-tools .md-button.md-icon-button md-icon{transition-duration:.5s;transition-timing-function:cubic-bezier(.35,0,.25,1);transition-property:background-color,fill,color}.md-toolbar-tools .md-button.md-icon-button md-icon.ng-animate,.md-toolbar-tools .md-button.ng-animate{transition:none}.md-toolbar-tools>.md-button:first-child{margin-left:-8px}[dir=rtl] .md-toolbar-tools>.md-button:first-child{margin-left:auto;margin-right:-8px}.md-toolbar-tools>.md-button:last-child{margin-right:-8px}[dir=rtl] .md-toolbar-tools>.md-button:last-child{margin-right:auto;margin-left:-8px}.md-toolbar-tools>md-menu:last-child{margin-right:-8px}[dir=rtl] .md-toolbar-tools>md-menu:last-child{margin-right:auto;margin-left:-8px}.md-toolbar-tools>md-menu:last-child>.md-button{margin-right:0}[dir=rtl] .md-toolbar-tools>md-menu:last-child>.md-button{margin-right:auto;margin-left:0}@media screen and (-ms-high-contrast:active){.md-toolbar-tools{border-bottom:1px solid #fff}}@media (min-width:0) and (max-width:959px) and (orientation:portrait){md-toolbar{min-height:56px}.md-toolbar-tools{height:56px;max-height:56px}}@media (min-width:0) and (max-width:959px) and (orientation:landscape){md-toolbar{min-height:48px}.md-toolbar-tools{height:48px;max-height:48px}}md-tooltip{position:absolute;z-index:100;overflow:hidden;pointer-events:none;border-radius:4px;font-weight:500;font-size:14px}@media (min-width:960px){md-tooltip{font-size:10px}}md-tooltip .md-content{position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transform-origin:center top;transform:scale(0);opacity:0;height:32px;line-height:32px;padding-left:16px;padding-right:16px}@media (min-width:960px){md-tooltip .md-content{height:22px;line-height:22px;padding-left:8px;padding-right:8px}}md-tooltip .md-content.md-show-add{transition:all .4s cubic-bezier(.25,.8,.25,1);transition-duration:.2s;transform:scale(0);opacity:0}md-tooltip .md-content.md-show,md-tooltip .md-content.md-show-add-active{transform:scale(1);opacity:.9;transform-origin:center top}md-tooltip .md-content.md-show-remove{transition:all .4s cubic-bezier(.25,.8,.25,1);transition-duration:.2s}md-tooltip .md-content.md-show-remove.md-show-remove-active{transform:scale(0);opacity:0}md-tooltip.md-hide{transition:all .3s cubic-bezier(.55,0,.55,.2)}md-tooltip.md-show{transition:all .4s cubic-bezier(.25,.8,.25,1);pointer-events:auto}.md-virtual-repeat-container{box-sizing:border-box;display:block;margin:0;overflow:hidden;padding:0;position:relative}.md-virtual-repeat-container .md-virtual-repeat-scroller{bottom:0;box-sizing:border-box;left:0;margin:0;overflow-x:hidden;padding:0;position:absolute;right:0;top:0;-webkit-overflow-scrolling:touch}.md-virtual-repeat-container .md-virtual-repeat-sizer{box-sizing:border-box;height:1px;display:block;margin:0;padding:0;width:1px}.md-virtual-repeat-container .md-virtual-repeat-offsetter{box-sizing:border-box;left:0;margin:0;padding:0;position:absolute;right:0;top:0}.md-virtual-repeat-container.md-orient-horizontal .md-virtual-repeat-scroller{overflow-x:auto;overflow-y:hidden}.md-virtual-repeat-container.md-orient-horizontal .md-virtual-repeat-offsetter{bottom:16px;right:auto;white-space:nowrap}[dir=rtl] .md-virtual-repeat-container.md-orient-horizontal .md-virtual-repeat-offsetter{right:auto;left:auto}.md-whiteframe-1dp,.md-whiteframe-z1{box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}.md-whiteframe-2dp{box-shadow:0 1px 5px 0 rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.12)}.md-whiteframe-3dp{box-shadow:0 1px 8px 0 rgba(0,0,0,.2),0 3px 4px 0 rgba(0,0,0,.14),0 3px 3px -2px rgba(0,0,0,.12)}.md-whiteframe-4dp,.md-whiteframe-z2{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}.md-whiteframe-5dp{box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 5px 8px 0 rgba(0,0,0,.14),0 1px 14px 0 rgba(0,0,0,.12)}.md-whiteframe-6dp{box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}.md-whiteframe-7dp,.md-whiteframe-z3{box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12)}.md-whiteframe-8dp{box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.md-whiteframe-9dp{box-shadow:0 5px 6px -3px rgba(0,0,0,.2),0 9px 12px 1px rgba(0,0,0,.14),0 3px 16px 2px rgba(0,0,0,.12)}.md-whiteframe-10dp,.md-whiteframe-z4{box-shadow:0 6px 6px -3px rgba(0,0,0,.2),0 10px 14px 1px rgba(0,0,0,.14),0 4px 18px 3px rgba(0,0,0,.12)}.md-whiteframe-11dp{box-shadow:0 6px 7px -4px rgba(0,0,0,.2),0 11px 15px 1px rgba(0,0,0,.14),0 4px 20px 3px rgba(0,0,0,.12)}.md-whiteframe-12dp{box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 12px 17px 2px rgba(0,0,0,.14),0 5px 22px 4px rgba(0,0,0,.12)}.md-whiteframe-13dp,.md-whiteframe-z5{box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 13px 19px 2px rgba(0,0,0,.14),0 5px 24px 4px rgba(0,0,0,.12)}.md-whiteframe-14dp{box-shadow:0 7px 9px -4px rgba(0,0,0,.2),0 14px 21px 2px rgba(0,0,0,.14),0 5px 26px 4px rgba(0,0,0,.12)}.md-whiteframe-15dp{box-shadow:0 8px 9px -5px rgba(0,0,0,.2),0 15px 22px 2px rgba(0,0,0,.14),0 6px 28px 5px rgba(0,0,0,.12)}.md-whiteframe-16dp{box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12)}.md-whiteframe-17dp{box-shadow:0 8px 11px -5px rgba(0,0,0,.2),0 17px 26px 2px rgba(0,0,0,.14),0 6px 32px 5px rgba(0,0,0,.12)}.md-whiteframe-18dp{box-shadow:0 9px 11px -5px rgba(0,0,0,.2),0 18px 28px 2px rgba(0,0,0,.14),0 7px 34px 6px rgba(0,0,0,.12)}.md-whiteframe-19dp{box-shadow:0 9px 12px -6px rgba(0,0,0,.2),0 19px 29px 2px rgba(0,0,0,.14),0 7px 36px 6px rgba(0,0,0,.12)}.md-whiteframe-20dp{box-shadow:0 10px 13px -6px rgba(0,0,0,.2),0 20px 31px 3px rgba(0,0,0,.14),0 8px 38px 7px rgba(0,0,0,.12)}.md-whiteframe-21dp{box-shadow:0 10px 13px -6px rgba(0,0,0,.2),0 21px 33px 3px rgba(0,0,0,.14),0 8px 40px 7px rgba(0,0,0,.12)}.md-whiteframe-22dp{box-shadow:0 10px 14px -6px rgba(0,0,0,.2),0 22px 35px 3px rgba(0,0,0,.14),0 8px 42px 7px rgba(0,0,0,.12)}.md-whiteframe-23dp{box-shadow:0 11px 14px -7px rgba(0,0,0,.2),0 23px 36px 3px rgba(0,0,0,.14),0 9px 44px 8px rgba(0,0,0,.12)}.md-whiteframe-24dp{box-shadow:0 11px 15px -7px rgba(0,0,0,.2),0 24px 38px 3px rgba(0,0,0,.14),0 9px 46px 8px rgba(0,0,0,.12)}@media screen and (-ms-high-contrast:active){md-whiteframe{border:1px solid #fff}}@media print{[md-whiteframe],md-whiteframe{background-color:#fff}}.ng-cloak,.x-ng-cloak,[data-ng-cloak],[ng-cloak],[ng\:cloak],[x-ng-cloak]{display:none!important}@-moz-document url-prefix(){.layout-fill{margin:0;width:100%;min-height:100%;height:100%}}.flex-order{order:0}.flex-order--20{order:-20}.flex-order--19{order:-19}.flex-order--18{order:-18}.flex-order--17{order:-17}.flex-order--16{order:-16}.flex-order--15{order:-15}.flex-order--14{order:-14}.flex-order--13{order:-13}.flex-order--12{order:-12}.flex-order--11{order:-11}.flex-order--10{order:-10}.flex-order--9{order:-9}.flex-order--8{order:-8}.flex-order--7{order:-7}.flex-order--6{order:-6}.flex-order--5{order:-5}.flex-order--4{order:-4}.flex-order--3{order:-3}.flex-order--2{order:-2}.flex-order--1{order:-1}.flex-order-0{order:0}.flex-order-1{order:1}.flex-order-2{order:2}.flex-order-3{order:3}.flex-order-4{order:4}.flex-order-5{order:5}.flex-order-6{order:6}.flex-order-7{order:7}.flex-order-8{order:8}.flex-order-9{order:9}.flex-order-10{order:10}.flex-order-11{order:11}.flex-order-12{order:12}.flex-order-13{order:13}.flex-order-14{order:14}.flex-order-15{order:15}.flex-order-16{order:16}.flex-order-17{order:17}.flex-order-18{order:18}.flex-order-19{order:19}.flex-order-20{order:20}.flex-offset-0,.offset-0{margin-left:0}[dir=rtl] .flex-offset-0,[dir=rtl] .offset-0{margin-left:auto;margin-right:0}.flex-offset-5,.offset-5{margin-left:5%}[dir=rtl] .flex-offset-5,[dir=rtl] .offset-5{margin-left:auto;margin-right:5%}.flex-offset-10,.offset-10{margin-left:10%}[dir=rtl] .flex-offset-10,[dir=rtl] .offset-10{margin-left:auto;margin-right:10%}.flex-offset-15,.offset-15{margin-left:15%}[dir=rtl] .flex-offset-15,[dir=rtl] .offset-15{margin-left:auto;margin-right:15%}.flex-offset-20,.offset-20{margin-left:20%}[dir=rtl] .flex-offset-20,[dir=rtl] .offset-20{margin-left:auto;margin-right:20%}.flex-offset-25,.offset-25{margin-left:25%}[dir=rtl] .flex-offset-25,[dir=rtl] .offset-25{margin-left:auto;margin-right:25%}.flex-offset-30,.offset-30{margin-left:30%}[dir=rtl] .flex-offset-30,[dir=rtl] .offset-30{margin-left:auto;margin-right:30%}.flex-offset-35,.offset-35{margin-left:35%}[dir=rtl] .flex-offset-35,[dir=rtl] .offset-35{margin-left:auto;margin-right:35%}.flex-offset-40,.offset-40{margin-left:40%}[dir=rtl] .flex-offset-40,[dir=rtl] .offset-40{margin-left:auto;margin-right:40%}.flex-offset-45,.offset-45{margin-left:45%}[dir=rtl] .flex-offset-45,[dir=rtl] .offset-45{margin-left:auto;margin-right:45%}.flex-offset-50,.offset-50{margin-left:50%}[dir=rtl] .flex-offset-50,[dir=rtl] .offset-50{margin-left:auto;margin-right:50%}.flex-offset-55,.offset-55{margin-left:55%}[dir=rtl] .flex-offset-55,[dir=rtl] .offset-55{margin-left:auto;margin-right:55%}.flex-offset-60,.offset-60{margin-left:60%}[dir=rtl] .flex-offset-60,[dir=rtl] .offset-60{margin-left:auto;margin-right:60%}.flex-offset-65,.offset-65{margin-left:65%}[dir=rtl] .flex-offset-65,[dir=rtl] .offset-65{margin-left:auto;margin-right:65%}.flex-offset-70,.offset-70{margin-left:70%}[dir=rtl] .flex-offset-70,[dir=rtl] .offset-70{margin-left:auto;margin-right:70%}.flex-offset-75,.offset-75{margin-left:75%}[dir=rtl] .flex-offset-75,[dir=rtl] .offset-75{margin-left:auto;margin-right:75%}.flex-offset-80,.offset-80{margin-left:80%}[dir=rtl] .flex-offset-80,[dir=rtl] .offset-80{margin-left:auto;margin-right:80%}.flex-offset-85,.offset-85{margin-left:85%}[dir=rtl] .flex-offset-85,[dir=rtl] .offset-85{margin-left:auto;margin-right:85%}.flex-offset-90,.offset-90{margin-left:90%}[dir=rtl] .flex-offset-90,[dir=rtl] .offset-90{margin-left:auto;margin-right:90%}.flex-offset-95,.offset-95{margin-left:95%}[dir=rtl] .flex-offset-95,[dir=rtl] .offset-95{margin-left:auto;margin-right:95%}.flex-offset-33,.offset-33{margin-left:calc(100% / 3)}.flex-offset-66,.offset-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-66,[dir=rtl] .offset-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align,.layout-align-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-start,.layout-align-start-center,.layout-align-start-end,.layout-align-start-start,.layout-align-start-stretch{justify-content:flex-start}.layout-align-center,.layout-align-center-center,.layout-align-center-end,.layout-align-center-start,.layout-align-center-stretch{justify-content:center}.layout-align-end,.layout-align-end-center,.layout-align-end-end,.layout-align-end-start,.layout-align-end-stretch{justify-content:flex-end}.layout-align-space-around,.layout-align-space-around-center,.layout-align-space-around-end,.layout-align-space-around-start,.layout-align-space-around-stretch{justify-content:space-around}.layout-align-space-between,.layout-align-space-between-center,.layout-align-space-between-end,.layout-align-space-between-start,.layout-align-space-between-stretch{justify-content:space-between}.layout-align-center-start,.layout-align-end-start,.layout-align-space-around-start,.layout-align-space-between-start,.layout-align-start-start{align-items:flex-start;align-content:flex-start}.layout-align-center-center,.layout-align-end-center,.layout-align-space-around-center,.layout-align-space-between-center,.layout-align-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-center-center>*,.layout-align-end-center>*,.layout-align-space-around-center>*,.layout-align-space-between-center>*,.layout-align-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-center-end,.layout-align-end-end,.layout-align-space-around-end,.layout-align-space-between-end,.layout-align-start-end{align-items:flex-end;align-content:flex-end}.layout-align-center-stretch,.layout-align-end-stretch,.layout-align-space-around-stretch,.layout-align-space-between-stretch,.layout-align-start-stretch{align-items:stretch;align-content:stretch}.flex{flex:1;box-sizing:border-box}.flex-grow{flex:1 1 100%;box-sizing:border-box}.flex-initial{flex:0 1 auto;box-sizing:border-box}.flex-auto{flex:1 1 auto;box-sizing:border-box}.flex-none{flex:0 0 auto;box-sizing:border-box}.flex-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box}.layout-row>.flex-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-row>.flex{min-width:0}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-column>.flex{min-height:0}.layout,.layout-column,.layout-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-column{flex-direction:column}.layout-row{flex-direction:row}.layout-padding-sm>*,.layout-padding>.flex-sm{padding:4px}.layout-padding,.layout-padding-gt-sm,.layout-padding-gt-sm>*,.layout-padding-md,.layout-padding-md>*,.layout-padding>*,.layout-padding>.flex,.layout-padding>.flex-gt-sm,.layout-padding>.flex-md{padding:8px}.layout-padding-gt-lg>*,.layout-padding-gt-md>*,.layout-padding-lg>*,.layout-padding>.flex-gt-lg,.layout-padding>.flex-gt-md,.layout-padding>.flex-lg{padding:16px}.layout-margin-sm>*,.layout-margin>.flex-sm{margin:4px}.layout-margin,.layout-margin-gt-sm,.layout-margin-gt-sm>*,.layout-margin-md,.layout-margin-md>*,.layout-margin>*,.layout-margin>.flex,.layout-margin>.flex-gt-sm,.layout-margin>.flex-md{margin:8px}.layout-margin-gt-lg>*,.layout-margin-gt-md>*,.layout-margin-lg>*,.layout-margin>.flex-gt-lg,.layout-margin>.flex-gt-md,.layout-margin>.flex-lg{margin:16px}.layout-wrap{flex-wrap:wrap}.layout-nowrap{flex-wrap:nowrap}.layout-fill{margin:0;width:100%;min-height:100%;height:100%}@media (max-width:599px){.hide-xs:not(.show-xs):not(.show),.hide:not(.show-xs):not(.show){display:none}.flex-order-xs--20{order:-20}.flex-order-xs--19{order:-19}.flex-order-xs--18{order:-18}.flex-order-xs--17{order:-17}.flex-order-xs--16{order:-16}.flex-order-xs--15{order:-15}.flex-order-xs--14{order:-14}.flex-order-xs--13{order:-13}.flex-order-xs--12{order:-12}.flex-order-xs--11{order:-11}.flex-order-xs--10{order:-10}.flex-order-xs--9{order:-9}.flex-order-xs--8{order:-8}.flex-order-xs--7{order:-7}.flex-order-xs--6{order:-6}.flex-order-xs--5{order:-5}.flex-order-xs--4{order:-4}.flex-order-xs--3{order:-3}.flex-order-xs--2{order:-2}.flex-order-xs--1{order:-1}.flex-order-xs-0{order:0}.flex-order-xs-1{order:1}.flex-order-xs-2{order:2}.flex-order-xs-3{order:3}.flex-order-xs-4{order:4}.flex-order-xs-5{order:5}.flex-order-xs-6{order:6}.flex-order-xs-7{order:7}.flex-order-xs-8{order:8}.flex-order-xs-9{order:9}.flex-order-xs-10{order:10}.flex-order-xs-11{order:11}.flex-order-xs-12{order:12}.flex-order-xs-13{order:13}.flex-order-xs-14{order:14}.flex-order-xs-15{order:15}.flex-order-xs-16{order:16}.flex-order-xs-17{order:17}.flex-order-xs-18{order:18}.flex-order-xs-19{order:19}.flex-order-xs-20{order:20}.flex-offset-xs-0,.offset-xs-0{margin-left:0}[dir=rtl] .flex-offset-xs-0,[dir=rtl] .offset-xs-0{margin-left:auto;margin-right:0}.flex-offset-xs-5,.offset-xs-5{margin-left:5%}[dir=rtl] .flex-offset-xs-5,[dir=rtl] .offset-xs-5{margin-left:auto;margin-right:5%}.flex-offset-xs-10,.offset-xs-10{margin-left:10%}[dir=rtl] .flex-offset-xs-10,[dir=rtl] .offset-xs-10{margin-left:auto;margin-right:10%}.flex-offset-xs-15,.offset-xs-15{margin-left:15%}[dir=rtl] .flex-offset-xs-15,[dir=rtl] .offset-xs-15{margin-left:auto;margin-right:15%}.flex-offset-xs-20,.offset-xs-20{margin-left:20%}[dir=rtl] .flex-offset-xs-20,[dir=rtl] .offset-xs-20{margin-left:auto;margin-right:20%}.flex-offset-xs-25,.offset-xs-25{margin-left:25%}[dir=rtl] .flex-offset-xs-25,[dir=rtl] .offset-xs-25{margin-left:auto;margin-right:25%}.flex-offset-xs-30,.offset-xs-30{margin-left:30%}[dir=rtl] .flex-offset-xs-30,[dir=rtl] .offset-xs-30{margin-left:auto;margin-right:30%}.flex-offset-xs-35,.offset-xs-35{margin-left:35%}[dir=rtl] .flex-offset-xs-35,[dir=rtl] .offset-xs-35{margin-left:auto;margin-right:35%}.flex-offset-xs-40,.offset-xs-40{margin-left:40%}[dir=rtl] .flex-offset-xs-40,[dir=rtl] .offset-xs-40{margin-left:auto;margin-right:40%}.flex-offset-xs-45,.offset-xs-45{margin-left:45%}[dir=rtl] .flex-offset-xs-45,[dir=rtl] .offset-xs-45{margin-left:auto;margin-right:45%}.flex-offset-xs-50,.offset-xs-50{margin-left:50%}[dir=rtl] .flex-offset-xs-50,[dir=rtl] .offset-xs-50{margin-left:auto;margin-right:50%}.flex-offset-xs-55,.offset-xs-55{margin-left:55%}[dir=rtl] .flex-offset-xs-55,[dir=rtl] .offset-xs-55{margin-left:auto;margin-right:55%}.flex-offset-xs-60,.offset-xs-60{margin-left:60%}[dir=rtl] .flex-offset-xs-60,[dir=rtl] .offset-xs-60{margin-left:auto;margin-right:60%}.flex-offset-xs-65,.offset-xs-65{margin-left:65%}[dir=rtl] .flex-offset-xs-65,[dir=rtl] .offset-xs-65{margin-left:auto;margin-right:65%}.flex-offset-xs-70,.offset-xs-70{margin-left:70%}[dir=rtl] .flex-offset-xs-70,[dir=rtl] .offset-xs-70{margin-left:auto;margin-right:70%}.flex-offset-xs-75,.offset-xs-75{margin-left:75%}[dir=rtl] .flex-offset-xs-75,[dir=rtl] .offset-xs-75{margin-left:auto;margin-right:75%}.flex-offset-xs-80,.offset-xs-80{margin-left:80%}[dir=rtl] .flex-offset-xs-80,[dir=rtl] .offset-xs-80{margin-left:auto;margin-right:80%}.flex-offset-xs-85,.offset-xs-85{margin-left:85%}[dir=rtl] .flex-offset-xs-85,[dir=rtl] .offset-xs-85{margin-left:auto;margin-right:85%}.flex-offset-xs-90,.offset-xs-90{margin-left:90%}[dir=rtl] .flex-offset-xs-90,[dir=rtl] .offset-xs-90{margin-left:auto;margin-right:90%}.flex-offset-xs-95,.offset-xs-95{margin-left:95%}[dir=rtl] .flex-offset-xs-95,[dir=rtl] .offset-xs-95{margin-left:auto;margin-right:95%}.flex-offset-xs-33,.offset-xs-33{margin-left:calc(100% / 3)}.flex-offset-xs-66,.offset-xs-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-xs-66,[dir=rtl] .offset-xs-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-xs,.layout-align-xs-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-xs-start,.layout-align-xs-start-center,.layout-align-xs-start-end,.layout-align-xs-start-start,.layout-align-xs-start-stretch{justify-content:flex-start}.layout-align-xs-center,.layout-align-xs-center-center,.layout-align-xs-center-end,.layout-align-xs-center-start,.layout-align-xs-center-stretch{justify-content:center}.layout-align-xs-end,.layout-align-xs-end-center,.layout-align-xs-end-end,.layout-align-xs-end-start,.layout-align-xs-end-stretch{justify-content:flex-end}.layout-align-xs-space-around,.layout-align-xs-space-around-center,.layout-align-xs-space-around-end,.layout-align-xs-space-around-start,.layout-align-xs-space-around-stretch{justify-content:space-around}.layout-align-xs-space-between,.layout-align-xs-space-between-center,.layout-align-xs-space-between-end,.layout-align-xs-space-between-start,.layout-align-xs-space-between-stretch{justify-content:space-between}.layout-align-xs-center-start,.layout-align-xs-end-start,.layout-align-xs-space-around-start,.layout-align-xs-space-between-start,.layout-align-xs-start-start{align-items:flex-start;align-content:flex-start}.layout-align-xs-center-center,.layout-align-xs-end-center,.layout-align-xs-space-around-center,.layout-align-xs-space-between-center,.layout-align-xs-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-xs-center-center>*,.layout-align-xs-end-center>*,.layout-align-xs-space-around-center>*,.layout-align-xs-space-between-center>*,.layout-align-xs-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-xs-center-end,.layout-align-xs-end-end,.layout-align-xs-space-around-end,.layout-align-xs-space-between-end,.layout-align-xs-start-end{align-items:flex-end;align-content:flex-end}.layout-align-xs-center-stretch,.layout-align-xs-end-stretch,.layout-align-xs-space-around-stretch,.layout-align-xs-space-between-stretch,.layout-align-xs-start-stretch{align-items:stretch;align-content:stretch}.flex-xs{flex:1;box-sizing:border-box}.flex-xs-grow{flex:1 1 100%;box-sizing:border-box}.flex-xs-initial{flex:0 1 auto;box-sizing:border-box}.flex-xs-auto{flex:1 1 auto;box-sizing:border-box}.flex-xs-none{flex:0 0 auto;box-sizing:border-box}.flex-xs-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-xs-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-xs-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-xs-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-xs-column>.flex-xs-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-xs-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-xs-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-xs-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-xs-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-xs-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-xs-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-xs-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-xs-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-xs-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-xs-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-xs-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-xs-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-xs-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-xs-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-xs-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-xs-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-xs-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-xs-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-xs-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-xs-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-xs-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-xs-row>.flex{min-width:0}.layout-xs-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-xs-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-column>.flex{min-height:0}.layout-xs,.layout-xs-column,.layout-xs-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-xs-column{flex-direction:column}.layout-xs-row{flex-direction:row}}@media (min-width:600px){.flex-order-gt-xs--20{order:-20}.flex-order-gt-xs--19{order:-19}.flex-order-gt-xs--18{order:-18}.flex-order-gt-xs--17{order:-17}.flex-order-gt-xs--16{order:-16}.flex-order-gt-xs--15{order:-15}.flex-order-gt-xs--14{order:-14}.flex-order-gt-xs--13{order:-13}.flex-order-gt-xs--12{order:-12}.flex-order-gt-xs--11{order:-11}.flex-order-gt-xs--10{order:-10}.flex-order-gt-xs--9{order:-9}.flex-order-gt-xs--8{order:-8}.flex-order-gt-xs--7{order:-7}.flex-order-gt-xs--6{order:-6}.flex-order-gt-xs--5{order:-5}.flex-order-gt-xs--4{order:-4}.flex-order-gt-xs--3{order:-3}.flex-order-gt-xs--2{order:-2}.flex-order-gt-xs--1{order:-1}.flex-order-gt-xs-0{order:0}.flex-order-gt-xs-1{order:1}.flex-order-gt-xs-2{order:2}.flex-order-gt-xs-3{order:3}.flex-order-gt-xs-4{order:4}.flex-order-gt-xs-5{order:5}.flex-order-gt-xs-6{order:6}.flex-order-gt-xs-7{order:7}.flex-order-gt-xs-8{order:8}.flex-order-gt-xs-9{order:9}.flex-order-gt-xs-10{order:10}.flex-order-gt-xs-11{order:11}.flex-order-gt-xs-12{order:12}.flex-order-gt-xs-13{order:13}.flex-order-gt-xs-14{order:14}.flex-order-gt-xs-15{order:15}.flex-order-gt-xs-16{order:16}.flex-order-gt-xs-17{order:17}.flex-order-gt-xs-18{order:18}.flex-order-gt-xs-19{order:19}.flex-order-gt-xs-20{order:20}.flex-offset-gt-xs-0,.offset-gt-xs-0{margin-left:0}[dir=rtl] .flex-offset-gt-xs-0,[dir=rtl] .offset-gt-xs-0{margin-left:auto;margin-right:0}.flex-offset-gt-xs-5,.offset-gt-xs-5{margin-left:5%}[dir=rtl] .flex-offset-gt-xs-5,[dir=rtl] .offset-gt-xs-5{margin-left:auto;margin-right:5%}.flex-offset-gt-xs-10,.offset-gt-xs-10{margin-left:10%}[dir=rtl] .flex-offset-gt-xs-10,[dir=rtl] .offset-gt-xs-10{margin-left:auto;margin-right:10%}.flex-offset-gt-xs-15,.offset-gt-xs-15{margin-left:15%}[dir=rtl] .flex-offset-gt-xs-15,[dir=rtl] .offset-gt-xs-15{margin-left:auto;margin-right:15%}.flex-offset-gt-xs-20,.offset-gt-xs-20{margin-left:20%}[dir=rtl] .flex-offset-gt-xs-20,[dir=rtl] .offset-gt-xs-20{margin-left:auto;margin-right:20%}.flex-offset-gt-xs-25,.offset-gt-xs-25{margin-left:25%}[dir=rtl] .flex-offset-gt-xs-25,[dir=rtl] .offset-gt-xs-25{margin-left:auto;margin-right:25%}.flex-offset-gt-xs-30,.offset-gt-xs-30{margin-left:30%}[dir=rtl] .flex-offset-gt-xs-30,[dir=rtl] .offset-gt-xs-30{margin-left:auto;margin-right:30%}.flex-offset-gt-xs-35,.offset-gt-xs-35{margin-left:35%}[dir=rtl] .flex-offset-gt-xs-35,[dir=rtl] .offset-gt-xs-35{margin-left:auto;margin-right:35%}.flex-offset-gt-xs-40,.offset-gt-xs-40{margin-left:40%}[dir=rtl] .flex-offset-gt-xs-40,[dir=rtl] .offset-gt-xs-40{margin-left:auto;margin-right:40%}.flex-offset-gt-xs-45,.offset-gt-xs-45{margin-left:45%}[dir=rtl] .flex-offset-gt-xs-45,[dir=rtl] .offset-gt-xs-45{margin-left:auto;margin-right:45%}.flex-offset-gt-xs-50,.offset-gt-xs-50{margin-left:50%}[dir=rtl] .flex-offset-gt-xs-50,[dir=rtl] .offset-gt-xs-50{margin-left:auto;margin-right:50%}.flex-offset-gt-xs-55,.offset-gt-xs-55{margin-left:55%}[dir=rtl] .flex-offset-gt-xs-55,[dir=rtl] .offset-gt-xs-55{margin-left:auto;margin-right:55%}.flex-offset-gt-xs-60,.offset-gt-xs-60{margin-left:60%}[dir=rtl] .flex-offset-gt-xs-60,[dir=rtl] .offset-gt-xs-60{margin-left:auto;margin-right:60%}.flex-offset-gt-xs-65,.offset-gt-xs-65{margin-left:65%}[dir=rtl] .flex-offset-gt-xs-65,[dir=rtl] .offset-gt-xs-65{margin-left:auto;margin-right:65%}.flex-offset-gt-xs-70,.offset-gt-xs-70{margin-left:70%}[dir=rtl] .flex-offset-gt-xs-70,[dir=rtl] .offset-gt-xs-70{margin-left:auto;margin-right:70%}.flex-offset-gt-xs-75,.offset-gt-xs-75{margin-left:75%}[dir=rtl] .flex-offset-gt-xs-75,[dir=rtl] .offset-gt-xs-75{margin-left:auto;margin-right:75%}.flex-offset-gt-xs-80,.offset-gt-xs-80{margin-left:80%}[dir=rtl] .flex-offset-gt-xs-80,[dir=rtl] .offset-gt-xs-80{margin-left:auto;margin-right:80%}.flex-offset-gt-xs-85,.offset-gt-xs-85{margin-left:85%}[dir=rtl] .flex-offset-gt-xs-85,[dir=rtl] .offset-gt-xs-85{margin-left:auto;margin-right:85%}.flex-offset-gt-xs-90,.offset-gt-xs-90{margin-left:90%}[dir=rtl] .flex-offset-gt-xs-90,[dir=rtl] .offset-gt-xs-90{margin-left:auto;margin-right:90%}.flex-offset-gt-xs-95,.offset-gt-xs-95{margin-left:95%}[dir=rtl] .flex-offset-gt-xs-95,[dir=rtl] .offset-gt-xs-95{margin-left:auto;margin-right:95%}.flex-offset-gt-xs-33,.offset-gt-xs-33{margin-left:calc(100% / 3)}.flex-offset-gt-xs-66,.offset-gt-xs-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-gt-xs-66,[dir=rtl] .offset-gt-xs-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-gt-xs,.layout-align-gt-xs-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-gt-xs-start,.layout-align-gt-xs-start-center,.layout-align-gt-xs-start-end,.layout-align-gt-xs-start-start,.layout-align-gt-xs-start-stretch{justify-content:flex-start}.layout-align-gt-xs-center,.layout-align-gt-xs-center-center,.layout-align-gt-xs-center-end,.layout-align-gt-xs-center-start,.layout-align-gt-xs-center-stretch{justify-content:center}.layout-align-gt-xs-end,.layout-align-gt-xs-end-center,.layout-align-gt-xs-end-end,.layout-align-gt-xs-end-start,.layout-align-gt-xs-end-stretch{justify-content:flex-end}.layout-align-gt-xs-space-around,.layout-align-gt-xs-space-around-center,.layout-align-gt-xs-space-around-end,.layout-align-gt-xs-space-around-start,.layout-align-gt-xs-space-around-stretch{justify-content:space-around}.layout-align-gt-xs-space-between,.layout-align-gt-xs-space-between-center,.layout-align-gt-xs-space-between-end,.layout-align-gt-xs-space-between-start,.layout-align-gt-xs-space-between-stretch{justify-content:space-between}.layout-align-gt-xs-center-start,.layout-align-gt-xs-end-start,.layout-align-gt-xs-space-around-start,.layout-align-gt-xs-space-between-start,.layout-align-gt-xs-start-start{align-items:flex-start;align-content:flex-start}.layout-align-gt-xs-center-center,.layout-align-gt-xs-end-center,.layout-align-gt-xs-space-around-center,.layout-align-gt-xs-space-between-center,.layout-align-gt-xs-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-gt-xs-center-center>*,.layout-align-gt-xs-end-center>*,.layout-align-gt-xs-space-around-center>*,.layout-align-gt-xs-space-between-center>*,.layout-align-gt-xs-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-gt-xs-center-end,.layout-align-gt-xs-end-end,.layout-align-gt-xs-space-around-end,.layout-align-gt-xs-space-between-end,.layout-align-gt-xs-start-end{align-items:flex-end;align-content:flex-end}.layout-align-gt-xs-center-stretch,.layout-align-gt-xs-end-stretch,.layout-align-gt-xs-space-around-stretch,.layout-align-gt-xs-space-between-stretch,.layout-align-gt-xs-start-stretch{align-items:stretch;align-content:stretch}.flex-gt-xs{flex:1;box-sizing:border-box}.flex-gt-xs-grow{flex:1 1 100%;box-sizing:border-box}.flex-gt-xs-initial{flex:0 1 auto;box-sizing:border-box}.flex-gt-xs-auto{flex:1 1 auto;box-sizing:border-box}.flex-gt-xs-none{flex:0 0 auto;box-sizing:border-box}.flex-gt-xs-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-gt-xs-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-gt-xs-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-gt-xs-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-gt-xs-column>.flex-gt-xs-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-gt-xs-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-gt-xs-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-gt-xs-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-gt-xs-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-gt-xs-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-gt-xs-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-gt-xs-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-gt-xs-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-gt-xs-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-gt-xs-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-gt-xs-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-gt-xs-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-gt-xs-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-gt-xs-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-gt-xs-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-gt-xs-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-gt-xs-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-gt-xs-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-gt-xs-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-gt-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-gt-xs-row>.flex{min-width:0}.layout-gt-xs-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-column>.flex{min-height:0}.layout-gt-xs,.layout-gt-xs-column,.layout-gt-xs-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-gt-xs-column{flex-direction:column}.layout-gt-xs-row{flex-direction:row}}@media (min-width:600px) and (max-width:959px){.hide-gt-xs:not(.show-gt-xs):not(.show-sm):not(.show),.hide:not(.show-gt-xs):not(.show-sm):not(.show){display:none}.hide-sm:not(.show-gt-xs):not(.show-sm):not(.show){display:none}.flex-order-sm--20{order:-20}.flex-order-sm--19{order:-19}.flex-order-sm--18{order:-18}.flex-order-sm--17{order:-17}.flex-order-sm--16{order:-16}.flex-order-sm--15{order:-15}.flex-order-sm--14{order:-14}.flex-order-sm--13{order:-13}.flex-order-sm--12{order:-12}.flex-order-sm--11{order:-11}.flex-order-sm--10{order:-10}.flex-order-sm--9{order:-9}.flex-order-sm--8{order:-8}.flex-order-sm--7{order:-7}.flex-order-sm--6{order:-6}.flex-order-sm--5{order:-5}.flex-order-sm--4{order:-4}.flex-order-sm--3{order:-3}.flex-order-sm--2{order:-2}.flex-order-sm--1{order:-1}.flex-order-sm-0{order:0}.flex-order-sm-1{order:1}.flex-order-sm-2{order:2}.flex-order-sm-3{order:3}.flex-order-sm-4{order:4}.flex-order-sm-5{order:5}.flex-order-sm-6{order:6}.flex-order-sm-7{order:7}.flex-order-sm-8{order:8}.flex-order-sm-9{order:9}.flex-order-sm-10{order:10}.flex-order-sm-11{order:11}.flex-order-sm-12{order:12}.flex-order-sm-13{order:13}.flex-order-sm-14{order:14}.flex-order-sm-15{order:15}.flex-order-sm-16{order:16}.flex-order-sm-17{order:17}.flex-order-sm-18{order:18}.flex-order-sm-19{order:19}.flex-order-sm-20{order:20}.flex-offset-sm-0,.offset-sm-0{margin-left:0}[dir=rtl] .flex-offset-sm-0,[dir=rtl] .offset-sm-0{margin-left:auto;margin-right:0}.flex-offset-sm-5,.offset-sm-5{margin-left:5%}[dir=rtl] .flex-offset-sm-5,[dir=rtl] .offset-sm-5{margin-left:auto;margin-right:5%}.flex-offset-sm-10,.offset-sm-10{margin-left:10%}[dir=rtl] .flex-offset-sm-10,[dir=rtl] .offset-sm-10{margin-left:auto;margin-right:10%}.flex-offset-sm-15,.offset-sm-15{margin-left:15%}[dir=rtl] .flex-offset-sm-15,[dir=rtl] .offset-sm-15{margin-left:auto;margin-right:15%}.flex-offset-sm-20,.offset-sm-20{margin-left:20%}[dir=rtl] .flex-offset-sm-20,[dir=rtl] .offset-sm-20{margin-left:auto;margin-right:20%}.flex-offset-sm-25,.offset-sm-25{margin-left:25%}[dir=rtl] .flex-offset-sm-25,[dir=rtl] .offset-sm-25{margin-left:auto;margin-right:25%}.flex-offset-sm-30,.offset-sm-30{margin-left:30%}[dir=rtl] .flex-offset-sm-30,[dir=rtl] .offset-sm-30{margin-left:auto;margin-right:30%}.flex-offset-sm-35,.offset-sm-35{margin-left:35%}[dir=rtl] .flex-offset-sm-35,[dir=rtl] .offset-sm-35{margin-left:auto;margin-right:35%}.flex-offset-sm-40,.offset-sm-40{margin-left:40%}[dir=rtl] .flex-offset-sm-40,[dir=rtl] .offset-sm-40{margin-left:auto;margin-right:40%}.flex-offset-sm-45,.offset-sm-45{margin-left:45%}[dir=rtl] .flex-offset-sm-45,[dir=rtl] .offset-sm-45{margin-left:auto;margin-right:45%}.flex-offset-sm-50,.offset-sm-50{margin-left:50%}[dir=rtl] .flex-offset-sm-50,[dir=rtl] .offset-sm-50{margin-left:auto;margin-right:50%}.flex-offset-sm-55,.offset-sm-55{margin-left:55%}[dir=rtl] .flex-offset-sm-55,[dir=rtl] .offset-sm-55{margin-left:auto;margin-right:55%}.flex-offset-sm-60,.offset-sm-60{margin-left:60%}[dir=rtl] .flex-offset-sm-60,[dir=rtl] .offset-sm-60{margin-left:auto;margin-right:60%}.flex-offset-sm-65,.offset-sm-65{margin-left:65%}[dir=rtl] .flex-offset-sm-65,[dir=rtl] .offset-sm-65{margin-left:auto;margin-right:65%}.flex-offset-sm-70,.offset-sm-70{margin-left:70%}[dir=rtl] .flex-offset-sm-70,[dir=rtl] .offset-sm-70{margin-left:auto;margin-right:70%}.flex-offset-sm-75,.offset-sm-75{margin-left:75%}[dir=rtl] .flex-offset-sm-75,[dir=rtl] .offset-sm-75{margin-left:auto;margin-right:75%}.flex-offset-sm-80,.offset-sm-80{margin-left:80%}[dir=rtl] .flex-offset-sm-80,[dir=rtl] .offset-sm-80{margin-left:auto;margin-right:80%}.flex-offset-sm-85,.offset-sm-85{margin-left:85%}[dir=rtl] .flex-offset-sm-85,[dir=rtl] .offset-sm-85{margin-left:auto;margin-right:85%}.flex-offset-sm-90,.offset-sm-90{margin-left:90%}[dir=rtl] .flex-offset-sm-90,[dir=rtl] .offset-sm-90{margin-left:auto;margin-right:90%}.flex-offset-sm-95,.offset-sm-95{margin-left:95%}[dir=rtl] .flex-offset-sm-95,[dir=rtl] .offset-sm-95{margin-left:auto;margin-right:95%}.flex-offset-sm-33,.offset-sm-33{margin-left:calc(100% / 3)}.flex-offset-sm-66,.offset-sm-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-sm-66,[dir=rtl] .offset-sm-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-sm,.layout-align-sm-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-sm-start,.layout-align-sm-start-center,.layout-align-sm-start-end,.layout-align-sm-start-start,.layout-align-sm-start-stretch{justify-content:flex-start}.layout-align-sm-center,.layout-align-sm-center-center,.layout-align-sm-center-end,.layout-align-sm-center-start,.layout-align-sm-center-stretch{justify-content:center}.layout-align-sm-end,.layout-align-sm-end-center,.layout-align-sm-end-end,.layout-align-sm-end-start,.layout-align-sm-end-stretch{justify-content:flex-end}.layout-align-sm-space-around,.layout-align-sm-space-around-center,.layout-align-sm-space-around-end,.layout-align-sm-space-around-start,.layout-align-sm-space-around-stretch{justify-content:space-around}.layout-align-sm-space-between,.layout-align-sm-space-between-center,.layout-align-sm-space-between-end,.layout-align-sm-space-between-start,.layout-align-sm-space-between-stretch{justify-content:space-between}.layout-align-sm-center-start,.layout-align-sm-end-start,.layout-align-sm-space-around-start,.layout-align-sm-space-between-start,.layout-align-sm-start-start{align-items:flex-start;align-content:flex-start}.layout-align-sm-center-center,.layout-align-sm-end-center,.layout-align-sm-space-around-center,.layout-align-sm-space-between-center,.layout-align-sm-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-sm-center-center>*,.layout-align-sm-end-center>*,.layout-align-sm-space-around-center>*,.layout-align-sm-space-between-center>*,.layout-align-sm-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-sm-center-end,.layout-align-sm-end-end,.layout-align-sm-space-around-end,.layout-align-sm-space-between-end,.layout-align-sm-start-end{align-items:flex-end;align-content:flex-end}.layout-align-sm-center-stretch,.layout-align-sm-end-stretch,.layout-align-sm-space-around-stretch,.layout-align-sm-space-between-stretch,.layout-align-sm-start-stretch{align-items:stretch;align-content:stretch}.flex-sm{flex:1;box-sizing:border-box}.flex-sm-grow{flex:1 1 100%;box-sizing:border-box}.flex-sm-initial{flex:0 1 auto;box-sizing:border-box}.flex-sm-auto{flex:1 1 auto;box-sizing:border-box}.flex-sm-none{flex:0 0 auto;box-sizing:border-box}.flex-sm-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-sm-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-sm-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-sm-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-sm-column>.flex-sm-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-sm-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-sm-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-sm-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-sm-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-sm-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-sm-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-sm-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-sm-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-sm-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-sm-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-sm-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-sm-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-sm-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-sm-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-sm-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-sm-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-sm-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-sm-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-sm-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-sm-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-sm-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-sm-row>.flex{min-width:0}.layout-sm-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-sm-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-column>.flex{min-height:0}.layout-sm,.layout-sm-column,.layout-sm-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-sm-column{flex-direction:column}.layout-sm-row{flex-direction:row}}@media (min-width:960px){.flex-order-gt-sm--20{order:-20}.flex-order-gt-sm--19{order:-19}.flex-order-gt-sm--18{order:-18}.flex-order-gt-sm--17{order:-17}.flex-order-gt-sm--16{order:-16}.flex-order-gt-sm--15{order:-15}.flex-order-gt-sm--14{order:-14}.flex-order-gt-sm--13{order:-13}.flex-order-gt-sm--12{order:-12}.flex-order-gt-sm--11{order:-11}.flex-order-gt-sm--10{order:-10}.flex-order-gt-sm--9{order:-9}.flex-order-gt-sm--8{order:-8}.flex-order-gt-sm--7{order:-7}.flex-order-gt-sm--6{order:-6}.flex-order-gt-sm--5{order:-5}.flex-order-gt-sm--4{order:-4}.flex-order-gt-sm--3{order:-3}.flex-order-gt-sm--2{order:-2}.flex-order-gt-sm--1{order:-1}.flex-order-gt-sm-0{order:0}.flex-order-gt-sm-1{order:1}.flex-order-gt-sm-2{order:2}.flex-order-gt-sm-3{order:3}.flex-order-gt-sm-4{order:4}.flex-order-gt-sm-5{order:5}.flex-order-gt-sm-6{order:6}.flex-order-gt-sm-7{order:7}.flex-order-gt-sm-8{order:8}.flex-order-gt-sm-9{order:9}.flex-order-gt-sm-10{order:10}.flex-order-gt-sm-11{order:11}.flex-order-gt-sm-12{order:12}.flex-order-gt-sm-13{order:13}.flex-order-gt-sm-14{order:14}.flex-order-gt-sm-15{order:15}.flex-order-gt-sm-16{order:16}.flex-order-gt-sm-17{order:17}.flex-order-gt-sm-18{order:18}.flex-order-gt-sm-19{order:19}.flex-order-gt-sm-20{order:20}.flex-offset-gt-sm-0,.offset-gt-sm-0{margin-left:0}[dir=rtl] .flex-offset-gt-sm-0,[dir=rtl] .offset-gt-sm-0{margin-left:auto;margin-right:0}.flex-offset-gt-sm-5,.offset-gt-sm-5{margin-left:5%}[dir=rtl] .flex-offset-gt-sm-5,[dir=rtl] .offset-gt-sm-5{margin-left:auto;margin-right:5%}.flex-offset-gt-sm-10,.offset-gt-sm-10{margin-left:10%}[dir=rtl] .flex-offset-gt-sm-10,[dir=rtl] .offset-gt-sm-10{margin-left:auto;margin-right:10%}.flex-offset-gt-sm-15,.offset-gt-sm-15{margin-left:15%}[dir=rtl] .flex-offset-gt-sm-15,[dir=rtl] .offset-gt-sm-15{margin-left:auto;margin-right:15%}.flex-offset-gt-sm-20,.offset-gt-sm-20{margin-left:20%}[dir=rtl] .flex-offset-gt-sm-20,[dir=rtl] .offset-gt-sm-20{margin-left:auto;margin-right:20%}.flex-offset-gt-sm-25,.offset-gt-sm-25{margin-left:25%}[dir=rtl] .flex-offset-gt-sm-25,[dir=rtl] .offset-gt-sm-25{margin-left:auto;margin-right:25%}.flex-offset-gt-sm-30,.offset-gt-sm-30{margin-left:30%}[dir=rtl] .flex-offset-gt-sm-30,[dir=rtl] .offset-gt-sm-30{margin-left:auto;margin-right:30%}.flex-offset-gt-sm-35,.offset-gt-sm-35{margin-left:35%}[dir=rtl] .flex-offset-gt-sm-35,[dir=rtl] .offset-gt-sm-35{margin-left:auto;margin-right:35%}.flex-offset-gt-sm-40,.offset-gt-sm-40{margin-left:40%}[dir=rtl] .flex-offset-gt-sm-40,[dir=rtl] .offset-gt-sm-40{margin-left:auto;margin-right:40%}.flex-offset-gt-sm-45,.offset-gt-sm-45{margin-left:45%}[dir=rtl] .flex-offset-gt-sm-45,[dir=rtl] .offset-gt-sm-45{margin-left:auto;margin-right:45%}.flex-offset-gt-sm-50,.offset-gt-sm-50{margin-left:50%}[dir=rtl] .flex-offset-gt-sm-50,[dir=rtl] .offset-gt-sm-50{margin-left:auto;margin-right:50%}.flex-offset-gt-sm-55,.offset-gt-sm-55{margin-left:55%}[dir=rtl] .flex-offset-gt-sm-55,[dir=rtl] .offset-gt-sm-55{margin-left:auto;margin-right:55%}.flex-offset-gt-sm-60,.offset-gt-sm-60{margin-left:60%}[dir=rtl] .flex-offset-gt-sm-60,[dir=rtl] .offset-gt-sm-60{margin-left:auto;margin-right:60%}.flex-offset-gt-sm-65,.offset-gt-sm-65{margin-left:65%}[dir=rtl] .flex-offset-gt-sm-65,[dir=rtl] .offset-gt-sm-65{margin-left:auto;margin-right:65%}.flex-offset-gt-sm-70,.offset-gt-sm-70{margin-left:70%}[dir=rtl] .flex-offset-gt-sm-70,[dir=rtl] .offset-gt-sm-70{margin-left:auto;margin-right:70%}.flex-offset-gt-sm-75,.offset-gt-sm-75{margin-left:75%}[dir=rtl] .flex-offset-gt-sm-75,[dir=rtl] .offset-gt-sm-75{margin-left:auto;margin-right:75%}.flex-offset-gt-sm-80,.offset-gt-sm-80{margin-left:80%}[dir=rtl] .flex-offset-gt-sm-80,[dir=rtl] .offset-gt-sm-80{margin-left:auto;margin-right:80%}.flex-offset-gt-sm-85,.offset-gt-sm-85{margin-left:85%}[dir=rtl] .flex-offset-gt-sm-85,[dir=rtl] .offset-gt-sm-85{margin-left:auto;margin-right:85%}.flex-offset-gt-sm-90,.offset-gt-sm-90{margin-left:90%}[dir=rtl] .flex-offset-gt-sm-90,[dir=rtl] .offset-gt-sm-90{margin-left:auto;margin-right:90%}.flex-offset-gt-sm-95,.offset-gt-sm-95{margin-left:95%}[dir=rtl] .flex-offset-gt-sm-95,[dir=rtl] .offset-gt-sm-95{margin-left:auto;margin-right:95%}.flex-offset-gt-sm-33,.offset-gt-sm-33{margin-left:calc(100% / 3)}.flex-offset-gt-sm-66,.offset-gt-sm-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-gt-sm-66,[dir=rtl] .offset-gt-sm-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-gt-sm,.layout-align-gt-sm-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-gt-sm-start,.layout-align-gt-sm-start-center,.layout-align-gt-sm-start-end,.layout-align-gt-sm-start-start,.layout-align-gt-sm-start-stretch{justify-content:flex-start}.layout-align-gt-sm-center,.layout-align-gt-sm-center-center,.layout-align-gt-sm-center-end,.layout-align-gt-sm-center-start,.layout-align-gt-sm-center-stretch{justify-content:center}.layout-align-gt-sm-end,.layout-align-gt-sm-end-center,.layout-align-gt-sm-end-end,.layout-align-gt-sm-end-start,.layout-align-gt-sm-end-stretch{justify-content:flex-end}.layout-align-gt-sm-space-around,.layout-align-gt-sm-space-around-center,.layout-align-gt-sm-space-around-end,.layout-align-gt-sm-space-around-start,.layout-align-gt-sm-space-around-stretch{justify-content:space-around}.layout-align-gt-sm-space-between,.layout-align-gt-sm-space-between-center,.layout-align-gt-sm-space-between-end,.layout-align-gt-sm-space-between-start,.layout-align-gt-sm-space-between-stretch{justify-content:space-between}.layout-align-gt-sm-center-start,.layout-align-gt-sm-end-start,.layout-align-gt-sm-space-around-start,.layout-align-gt-sm-space-between-start,.layout-align-gt-sm-start-start{align-items:flex-start;align-content:flex-start}.layout-align-gt-sm-center-center,.layout-align-gt-sm-end-center,.layout-align-gt-sm-space-around-center,.layout-align-gt-sm-space-between-center,.layout-align-gt-sm-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-gt-sm-center-center>*,.layout-align-gt-sm-end-center>*,.layout-align-gt-sm-space-around-center>*,.layout-align-gt-sm-space-between-center>*,.layout-align-gt-sm-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-gt-sm-center-end,.layout-align-gt-sm-end-end,.layout-align-gt-sm-space-around-end,.layout-align-gt-sm-space-between-end,.layout-align-gt-sm-start-end{align-items:flex-end;align-content:flex-end}.layout-align-gt-sm-center-stretch,.layout-align-gt-sm-end-stretch,.layout-align-gt-sm-space-around-stretch,.layout-align-gt-sm-space-between-stretch,.layout-align-gt-sm-start-stretch{align-items:stretch;align-content:stretch}.flex-gt-sm{flex:1;box-sizing:border-box}.flex-gt-sm-grow{flex:1 1 100%;box-sizing:border-box}.flex-gt-sm-initial{flex:0 1 auto;box-sizing:border-box}.flex-gt-sm-auto{flex:1 1 auto;box-sizing:border-box}.flex-gt-sm-none{flex:0 0 auto;box-sizing:border-box}.flex-gt-sm-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-gt-sm-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-gt-sm-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-gt-sm-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-gt-sm-column>.flex-gt-sm-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-gt-sm-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-gt-sm-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-gt-sm-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-gt-sm-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-gt-sm-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-gt-sm-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-gt-sm-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-gt-sm-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-gt-sm-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-gt-sm-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-gt-sm-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-gt-sm-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-gt-sm-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-gt-sm-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-gt-sm-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-gt-sm-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-gt-sm-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-gt-sm-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-gt-sm-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-gt-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-gt-sm-row>.flex{min-width:0}.layout-gt-sm-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-column>.flex{min-height:0}.layout-gt-sm,.layout-gt-sm-column,.layout-gt-sm-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-gt-sm-column{flex-direction:column}.layout-gt-sm-row{flex-direction:row}}@media (min-width:960px) and (max-width:1279px){.hide-gt-sm:not(.show-gt-xs):not(.show-gt-sm):not(.show-md):not(.show),.hide-gt-xs:not(.show-gt-xs):not(.show-gt-sm):not(.show-md):not(.show),.hide:not(.show-gt-xs):not(.show-gt-sm):not(.show-md):not(.show){display:none}.hide-md:not(.show-md):not(.show-gt-sm):not(.show-gt-xs):not(.show){display:none}.flex-order-md--20{order:-20}.flex-order-md--19{order:-19}.flex-order-md--18{order:-18}.flex-order-md--17{order:-17}.flex-order-md--16{order:-16}.flex-order-md--15{order:-15}.flex-order-md--14{order:-14}.flex-order-md--13{order:-13}.flex-order-md--12{order:-12}.flex-order-md--11{order:-11}.flex-order-md--10{order:-10}.flex-order-md--9{order:-9}.flex-order-md--8{order:-8}.flex-order-md--7{order:-7}.flex-order-md--6{order:-6}.flex-order-md--5{order:-5}.flex-order-md--4{order:-4}.flex-order-md--3{order:-3}.flex-order-md--2{order:-2}.flex-order-md--1{order:-1}.flex-order-md-0{order:0}.flex-order-md-1{order:1}.flex-order-md-2{order:2}.flex-order-md-3{order:3}.flex-order-md-4{order:4}.flex-order-md-5{order:5}.flex-order-md-6{order:6}.flex-order-md-7{order:7}.flex-order-md-8{order:8}.flex-order-md-9{order:9}.flex-order-md-10{order:10}.flex-order-md-11{order:11}.flex-order-md-12{order:12}.flex-order-md-13{order:13}.flex-order-md-14{order:14}.flex-order-md-15{order:15}.flex-order-md-16{order:16}.flex-order-md-17{order:17}.flex-order-md-18{order:18}.flex-order-md-19{order:19}.flex-order-md-20{order:20}.flex-offset-md-0,.offset-md-0{margin-left:0}[dir=rtl] .flex-offset-md-0,[dir=rtl] .offset-md-0{margin-left:auto;margin-right:0}.flex-offset-md-5,.offset-md-5{margin-left:5%}[dir=rtl] .flex-offset-md-5,[dir=rtl] .offset-md-5{margin-left:auto;margin-right:5%}.flex-offset-md-10,.offset-md-10{margin-left:10%}[dir=rtl] .flex-offset-md-10,[dir=rtl] .offset-md-10{margin-left:auto;margin-right:10%}.flex-offset-md-15,.offset-md-15{margin-left:15%}[dir=rtl] .flex-offset-md-15,[dir=rtl] .offset-md-15{margin-left:auto;margin-right:15%}.flex-offset-md-20,.offset-md-20{margin-left:20%}[dir=rtl] .flex-offset-md-20,[dir=rtl] .offset-md-20{margin-left:auto;margin-right:20%}.flex-offset-md-25,.offset-md-25{margin-left:25%}[dir=rtl] .flex-offset-md-25,[dir=rtl] .offset-md-25{margin-left:auto;margin-right:25%}.flex-offset-md-30,.offset-md-30{margin-left:30%}[dir=rtl] .flex-offset-md-30,[dir=rtl] .offset-md-30{margin-left:auto;margin-right:30%}.flex-offset-md-35,.offset-md-35{margin-left:35%}[dir=rtl] .flex-offset-md-35,[dir=rtl] .offset-md-35{margin-left:auto;margin-right:35%}.flex-offset-md-40,.offset-md-40{margin-left:40%}[dir=rtl] .flex-offset-md-40,[dir=rtl] .offset-md-40{margin-left:auto;margin-right:40%}.flex-offset-md-45,.offset-md-45{margin-left:45%}[dir=rtl] .flex-offset-md-45,[dir=rtl] .offset-md-45{margin-left:auto;margin-right:45%}.flex-offset-md-50,.offset-md-50{margin-left:50%}[dir=rtl] .flex-offset-md-50,[dir=rtl] .offset-md-50{margin-left:auto;margin-right:50%}.flex-offset-md-55,.offset-md-55{margin-left:55%}[dir=rtl] .flex-offset-md-55,[dir=rtl] .offset-md-55{margin-left:auto;margin-right:55%}.flex-offset-md-60,.offset-md-60{margin-left:60%}[dir=rtl] .flex-offset-md-60,[dir=rtl] .offset-md-60{margin-left:auto;margin-right:60%}.flex-offset-md-65,.offset-md-65{margin-left:65%}[dir=rtl] .flex-offset-md-65,[dir=rtl] .offset-md-65{margin-left:auto;margin-right:65%}.flex-offset-md-70,.offset-md-70{margin-left:70%}[dir=rtl] .flex-offset-md-70,[dir=rtl] .offset-md-70{margin-left:auto;margin-right:70%}.flex-offset-md-75,.offset-md-75{margin-left:75%}[dir=rtl] .flex-offset-md-75,[dir=rtl] .offset-md-75{margin-left:auto;margin-right:75%}.flex-offset-md-80,.offset-md-80{margin-left:80%}[dir=rtl] .flex-offset-md-80,[dir=rtl] .offset-md-80{margin-left:auto;margin-right:80%}.flex-offset-md-85,.offset-md-85{margin-left:85%}[dir=rtl] .flex-offset-md-85,[dir=rtl] .offset-md-85{margin-left:auto;margin-right:85%}.flex-offset-md-90,.offset-md-90{margin-left:90%}[dir=rtl] .flex-offset-md-90,[dir=rtl] .offset-md-90{margin-left:auto;margin-right:90%}.flex-offset-md-95,.offset-md-95{margin-left:95%}[dir=rtl] .flex-offset-md-95,[dir=rtl] .offset-md-95{margin-left:auto;margin-right:95%}.flex-offset-md-33,.offset-md-33{margin-left:calc(100% / 3)}.flex-offset-md-66,.offset-md-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-md-66,[dir=rtl] .offset-md-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-md,.layout-align-md-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-md-start,.layout-align-md-start-center,.layout-align-md-start-end,.layout-align-md-start-start,.layout-align-md-start-stretch{justify-content:flex-start}.layout-align-md-center,.layout-align-md-center-center,.layout-align-md-center-end,.layout-align-md-center-start,.layout-align-md-center-stretch{justify-content:center}.layout-align-md-end,.layout-align-md-end-center,.layout-align-md-end-end,.layout-align-md-end-start,.layout-align-md-end-stretch{justify-content:flex-end}.layout-align-md-space-around,.layout-align-md-space-around-center,.layout-align-md-space-around-end,.layout-align-md-space-around-start,.layout-align-md-space-around-stretch{justify-content:space-around}.layout-align-md-space-between,.layout-align-md-space-between-center,.layout-align-md-space-between-end,.layout-align-md-space-between-start,.layout-align-md-space-between-stretch{justify-content:space-between}.layout-align-md-center-start,.layout-align-md-end-start,.layout-align-md-space-around-start,.layout-align-md-space-between-start,.layout-align-md-start-start{align-items:flex-start;align-content:flex-start}.layout-align-md-center-center,.layout-align-md-end-center,.layout-align-md-space-around-center,.layout-align-md-space-between-center,.layout-align-md-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-md-center-center>*,.layout-align-md-end-center>*,.layout-align-md-space-around-center>*,.layout-align-md-space-between-center>*,.layout-align-md-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-md-center-end,.layout-align-md-end-end,.layout-align-md-space-around-end,.layout-align-md-space-between-end,.layout-align-md-start-end{align-items:flex-end;align-content:flex-end}.layout-align-md-center-stretch,.layout-align-md-end-stretch,.layout-align-md-space-around-stretch,.layout-align-md-space-between-stretch,.layout-align-md-start-stretch{align-items:stretch;align-content:stretch}.flex-md{flex:1;box-sizing:border-box}.flex-md-grow{flex:1 1 100%;box-sizing:border-box}.flex-md-initial{flex:0 1 auto;box-sizing:border-box}.flex-md-auto{flex:1 1 auto;box-sizing:border-box}.flex-md-none{flex:0 0 auto;box-sizing:border-box}.flex-md-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-md-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-md-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-md-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-md-column>.flex-md-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-md-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-md-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-md-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-md-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-md-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-md-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-md-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-md-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-md-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-md-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-md-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-md-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-md-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-md-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-md-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-md-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-md-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-md-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-md-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-md-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-md-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-md-row>.flex{min-width:0}.layout-md-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-md-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-column>.flex{min-height:0}.layout-md,.layout-md-column,.layout-md-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-md-column{flex-direction:column}.layout-md-row{flex-direction:row}}@media (min-width:1280px){.flex-order-gt-md--20{order:-20}.flex-order-gt-md--19{order:-19}.flex-order-gt-md--18{order:-18}.flex-order-gt-md--17{order:-17}.flex-order-gt-md--16{order:-16}.flex-order-gt-md--15{order:-15}.flex-order-gt-md--14{order:-14}.flex-order-gt-md--13{order:-13}.flex-order-gt-md--12{order:-12}.flex-order-gt-md--11{order:-11}.flex-order-gt-md--10{order:-10}.flex-order-gt-md--9{order:-9}.flex-order-gt-md--8{order:-8}.flex-order-gt-md--7{order:-7}.flex-order-gt-md--6{order:-6}.flex-order-gt-md--5{order:-5}.flex-order-gt-md--4{order:-4}.flex-order-gt-md--3{order:-3}.flex-order-gt-md--2{order:-2}.flex-order-gt-md--1{order:-1}.flex-order-gt-md-0{order:0}.flex-order-gt-md-1{order:1}.flex-order-gt-md-2{order:2}.flex-order-gt-md-3{order:3}.flex-order-gt-md-4{order:4}.flex-order-gt-md-5{order:5}.flex-order-gt-md-6{order:6}.flex-order-gt-md-7{order:7}.flex-order-gt-md-8{order:8}.flex-order-gt-md-9{order:9}.flex-order-gt-md-10{order:10}.flex-order-gt-md-11{order:11}.flex-order-gt-md-12{order:12}.flex-order-gt-md-13{order:13}.flex-order-gt-md-14{order:14}.flex-order-gt-md-15{order:15}.flex-order-gt-md-16{order:16}.flex-order-gt-md-17{order:17}.flex-order-gt-md-18{order:18}.flex-order-gt-md-19{order:19}.flex-order-gt-md-20{order:20}.flex-offset-gt-md-0,.offset-gt-md-0{margin-left:0}[dir=rtl] .flex-offset-gt-md-0,[dir=rtl] .offset-gt-md-0{margin-left:auto;margin-right:0}.flex-offset-gt-md-5,.offset-gt-md-5{margin-left:5%}[dir=rtl] .flex-offset-gt-md-5,[dir=rtl] .offset-gt-md-5{margin-left:auto;margin-right:5%}.flex-offset-gt-md-10,.offset-gt-md-10{margin-left:10%}[dir=rtl] .flex-offset-gt-md-10,[dir=rtl] .offset-gt-md-10{margin-left:auto;margin-right:10%}.flex-offset-gt-md-15,.offset-gt-md-15{margin-left:15%}[dir=rtl] .flex-offset-gt-md-15,[dir=rtl] .offset-gt-md-15{margin-left:auto;margin-right:15%}.flex-offset-gt-md-20,.offset-gt-md-20{margin-left:20%}[dir=rtl] .flex-offset-gt-md-20,[dir=rtl] .offset-gt-md-20{margin-left:auto;margin-right:20%}.flex-offset-gt-md-25,.offset-gt-md-25{margin-left:25%}[dir=rtl] .flex-offset-gt-md-25,[dir=rtl] .offset-gt-md-25{margin-left:auto;margin-right:25%}.flex-offset-gt-md-30,.offset-gt-md-30{margin-left:30%}[dir=rtl] .flex-offset-gt-md-30,[dir=rtl] .offset-gt-md-30{margin-left:auto;margin-right:30%}.flex-offset-gt-md-35,.offset-gt-md-35{margin-left:35%}[dir=rtl] .flex-offset-gt-md-35,[dir=rtl] .offset-gt-md-35{margin-left:auto;margin-right:35%}.flex-offset-gt-md-40,.offset-gt-md-40{margin-left:40%}[dir=rtl] .flex-offset-gt-md-40,[dir=rtl] .offset-gt-md-40{margin-left:auto;margin-right:40%}.flex-offset-gt-md-45,.offset-gt-md-45{margin-left:45%}[dir=rtl] .flex-offset-gt-md-45,[dir=rtl] .offset-gt-md-45{margin-left:auto;margin-right:45%}.flex-offset-gt-md-50,.offset-gt-md-50{margin-left:50%}[dir=rtl] .flex-offset-gt-md-50,[dir=rtl] .offset-gt-md-50{margin-left:auto;margin-right:50%}.flex-offset-gt-md-55,.offset-gt-md-55{margin-left:55%}[dir=rtl] .flex-offset-gt-md-55,[dir=rtl] .offset-gt-md-55{margin-left:auto;margin-right:55%}.flex-offset-gt-md-60,.offset-gt-md-60{margin-left:60%}[dir=rtl] .flex-offset-gt-md-60,[dir=rtl] .offset-gt-md-60{margin-left:auto;margin-right:60%}.flex-offset-gt-md-65,.offset-gt-md-65{margin-left:65%}[dir=rtl] .flex-offset-gt-md-65,[dir=rtl] .offset-gt-md-65{margin-left:auto;margin-right:65%}.flex-offset-gt-md-70,.offset-gt-md-70{margin-left:70%}[dir=rtl] .flex-offset-gt-md-70,[dir=rtl] .offset-gt-md-70{margin-left:auto;margin-right:70%}.flex-offset-gt-md-75,.offset-gt-md-75{margin-left:75%}[dir=rtl] .flex-offset-gt-md-75,[dir=rtl] .offset-gt-md-75{margin-left:auto;margin-right:75%}.flex-offset-gt-md-80,.offset-gt-md-80{margin-left:80%}[dir=rtl] .flex-offset-gt-md-80,[dir=rtl] .offset-gt-md-80{margin-left:auto;margin-right:80%}.flex-offset-gt-md-85,.offset-gt-md-85{margin-left:85%}[dir=rtl] .flex-offset-gt-md-85,[dir=rtl] .offset-gt-md-85{margin-left:auto;margin-right:85%}.flex-offset-gt-md-90,.offset-gt-md-90{margin-left:90%}[dir=rtl] .flex-offset-gt-md-90,[dir=rtl] .offset-gt-md-90{margin-left:auto;margin-right:90%}.flex-offset-gt-md-95,.offset-gt-md-95{margin-left:95%}[dir=rtl] .flex-offset-gt-md-95,[dir=rtl] .offset-gt-md-95{margin-left:auto;margin-right:95%}.flex-offset-gt-md-33,.offset-gt-md-33{margin-left:calc(100% / 3)}.flex-offset-gt-md-66,.offset-gt-md-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-gt-md-66,[dir=rtl] .offset-gt-md-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-gt-md,.layout-align-gt-md-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-gt-md-start,.layout-align-gt-md-start-center,.layout-align-gt-md-start-end,.layout-align-gt-md-start-start,.layout-align-gt-md-start-stretch{justify-content:flex-start}.layout-align-gt-md-center,.layout-align-gt-md-center-center,.layout-align-gt-md-center-end,.layout-align-gt-md-center-start,.layout-align-gt-md-center-stretch{justify-content:center}.layout-align-gt-md-end,.layout-align-gt-md-end-center,.layout-align-gt-md-end-end,.layout-align-gt-md-end-start,.layout-align-gt-md-end-stretch{justify-content:flex-end}.layout-align-gt-md-space-around,.layout-align-gt-md-space-around-center,.layout-align-gt-md-space-around-end,.layout-align-gt-md-space-around-start,.layout-align-gt-md-space-around-stretch{justify-content:space-around}.layout-align-gt-md-space-between,.layout-align-gt-md-space-between-center,.layout-align-gt-md-space-between-end,.layout-align-gt-md-space-between-start,.layout-align-gt-md-space-between-stretch{justify-content:space-between}.layout-align-gt-md-center-start,.layout-align-gt-md-end-start,.layout-align-gt-md-space-around-start,.layout-align-gt-md-space-between-start,.layout-align-gt-md-start-start{align-items:flex-start;align-content:flex-start}.layout-align-gt-md-center-center,.layout-align-gt-md-end-center,.layout-align-gt-md-space-around-center,.layout-align-gt-md-space-between-center,.layout-align-gt-md-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-gt-md-center-center>*,.layout-align-gt-md-end-center>*,.layout-align-gt-md-space-around-center>*,.layout-align-gt-md-space-between-center>*,.layout-align-gt-md-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-gt-md-center-end,.layout-align-gt-md-end-end,.layout-align-gt-md-space-around-end,.layout-align-gt-md-space-between-end,.layout-align-gt-md-start-end{align-items:flex-end;align-content:flex-end}.layout-align-gt-md-center-stretch,.layout-align-gt-md-end-stretch,.layout-align-gt-md-space-around-stretch,.layout-align-gt-md-space-between-stretch,.layout-align-gt-md-start-stretch{align-items:stretch;align-content:stretch}.flex-gt-md{flex:1;box-sizing:border-box}.flex-gt-md-grow{flex:1 1 100%;box-sizing:border-box}.flex-gt-md-initial{flex:0 1 auto;box-sizing:border-box}.flex-gt-md-auto{flex:1 1 auto;box-sizing:border-box}.flex-gt-md-none{flex:0 0 auto;box-sizing:border-box}.flex-gt-md-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-gt-md-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-gt-md-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-gt-md-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-gt-md-column>.flex-gt-md-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-gt-md-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-gt-md-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-gt-md-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-gt-md-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-gt-md-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-gt-md-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-gt-md-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-gt-md-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-gt-md-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-gt-md-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-gt-md-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-gt-md-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-gt-md-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-gt-md-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-gt-md-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-gt-md-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-gt-md-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-gt-md-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-gt-md-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-gt-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-gt-md-row>.flex{min-width:0}.layout-gt-md-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-column>.flex{min-height:0}.layout-gt-md,.layout-gt-md-column,.layout-gt-md-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-gt-md-column{flex-direction:column}.layout-gt-md-row{flex-direction:row}}@media (min-width:1280px) and (max-width:1919px){.hide-gt-md:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-lg):not(.show),.hide-gt-sm:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-lg):not(.show),.hide-gt-xs:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-lg):not(.show),.hide:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-lg):not(.show){display:none}.hide-lg:not(.show-lg):not(.show-gt-md):not(.show-gt-sm):not(.show-gt-xs):not(.show){display:none}.flex-order-lg--20{order:-20}.flex-order-lg--19{order:-19}.flex-order-lg--18{order:-18}.flex-order-lg--17{order:-17}.flex-order-lg--16{order:-16}.flex-order-lg--15{order:-15}.flex-order-lg--14{order:-14}.flex-order-lg--13{order:-13}.flex-order-lg--12{order:-12}.flex-order-lg--11{order:-11}.flex-order-lg--10{order:-10}.flex-order-lg--9{order:-9}.flex-order-lg--8{order:-8}.flex-order-lg--7{order:-7}.flex-order-lg--6{order:-6}.flex-order-lg--5{order:-5}.flex-order-lg--4{order:-4}.flex-order-lg--3{order:-3}.flex-order-lg--2{order:-2}.flex-order-lg--1{order:-1}.flex-order-lg-0{order:0}.flex-order-lg-1{order:1}.flex-order-lg-2{order:2}.flex-order-lg-3{order:3}.flex-order-lg-4{order:4}.flex-order-lg-5{order:5}.flex-order-lg-6{order:6}.flex-order-lg-7{order:7}.flex-order-lg-8{order:8}.flex-order-lg-9{order:9}.flex-order-lg-10{order:10}.flex-order-lg-11{order:11}.flex-order-lg-12{order:12}.flex-order-lg-13{order:13}.flex-order-lg-14{order:14}.flex-order-lg-15{order:15}.flex-order-lg-16{order:16}.flex-order-lg-17{order:17}.flex-order-lg-18{order:18}.flex-order-lg-19{order:19}.flex-order-lg-20{order:20}.flex-offset-lg-0,.offset-lg-0{margin-left:0}[dir=rtl] .flex-offset-lg-0,[dir=rtl] .offset-lg-0{margin-left:auto;margin-right:0}.flex-offset-lg-5,.offset-lg-5{margin-left:5%}[dir=rtl] .flex-offset-lg-5,[dir=rtl] .offset-lg-5{margin-left:auto;margin-right:5%}.flex-offset-lg-10,.offset-lg-10{margin-left:10%}[dir=rtl] .flex-offset-lg-10,[dir=rtl] .offset-lg-10{margin-left:auto;margin-right:10%}.flex-offset-lg-15,.offset-lg-15{margin-left:15%}[dir=rtl] .flex-offset-lg-15,[dir=rtl] .offset-lg-15{margin-left:auto;margin-right:15%}.flex-offset-lg-20,.offset-lg-20{margin-left:20%}[dir=rtl] .flex-offset-lg-20,[dir=rtl] .offset-lg-20{margin-left:auto;margin-right:20%}.flex-offset-lg-25,.offset-lg-25{margin-left:25%}[dir=rtl] .flex-offset-lg-25,[dir=rtl] .offset-lg-25{margin-left:auto;margin-right:25%}.flex-offset-lg-30,.offset-lg-30{margin-left:30%}[dir=rtl] .flex-offset-lg-30,[dir=rtl] .offset-lg-30{margin-left:auto;margin-right:30%}.flex-offset-lg-35,.offset-lg-35{margin-left:35%}[dir=rtl] .flex-offset-lg-35,[dir=rtl] .offset-lg-35{margin-left:auto;margin-right:35%}.flex-offset-lg-40,.offset-lg-40{margin-left:40%}[dir=rtl] .flex-offset-lg-40,[dir=rtl] .offset-lg-40{margin-left:auto;margin-right:40%}.flex-offset-lg-45,.offset-lg-45{margin-left:45%}[dir=rtl] .flex-offset-lg-45,[dir=rtl] .offset-lg-45{margin-left:auto;margin-right:45%}.flex-offset-lg-50,.offset-lg-50{margin-left:50%}[dir=rtl] .flex-offset-lg-50,[dir=rtl] .offset-lg-50{margin-left:auto;margin-right:50%}.flex-offset-lg-55,.offset-lg-55{margin-left:55%}[dir=rtl] .flex-offset-lg-55,[dir=rtl] .offset-lg-55{margin-left:auto;margin-right:55%}.flex-offset-lg-60,.offset-lg-60{margin-left:60%}[dir=rtl] .flex-offset-lg-60,[dir=rtl] .offset-lg-60{margin-left:auto;margin-right:60%}.flex-offset-lg-65,.offset-lg-65{margin-left:65%}[dir=rtl] .flex-offset-lg-65,[dir=rtl] .offset-lg-65{margin-left:auto;margin-right:65%}.flex-offset-lg-70,.offset-lg-70{margin-left:70%}[dir=rtl] .flex-offset-lg-70,[dir=rtl] .offset-lg-70{margin-left:auto;margin-right:70%}.flex-offset-lg-75,.offset-lg-75{margin-left:75%}[dir=rtl] .flex-offset-lg-75,[dir=rtl] .offset-lg-75{margin-left:auto;margin-right:75%}.flex-offset-lg-80,.offset-lg-80{margin-left:80%}[dir=rtl] .flex-offset-lg-80,[dir=rtl] .offset-lg-80{margin-left:auto;margin-right:80%}.flex-offset-lg-85,.offset-lg-85{margin-left:85%}[dir=rtl] .flex-offset-lg-85,[dir=rtl] .offset-lg-85{margin-left:auto;margin-right:85%}.flex-offset-lg-90,.offset-lg-90{margin-left:90%}[dir=rtl] .flex-offset-lg-90,[dir=rtl] .offset-lg-90{margin-left:auto;margin-right:90%}.flex-offset-lg-95,.offset-lg-95{margin-left:95%}[dir=rtl] .flex-offset-lg-95,[dir=rtl] .offset-lg-95{margin-left:auto;margin-right:95%}.flex-offset-lg-33,.offset-lg-33{margin-left:calc(100% / 3)}.flex-offset-lg-66,.offset-lg-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-lg-66,[dir=rtl] .offset-lg-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-lg,.layout-align-lg-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-lg-start,.layout-align-lg-start-center,.layout-align-lg-start-end,.layout-align-lg-start-start,.layout-align-lg-start-stretch{justify-content:flex-start}.layout-align-lg-center,.layout-align-lg-center-center,.layout-align-lg-center-end,.layout-align-lg-center-start,.layout-align-lg-center-stretch{justify-content:center}.layout-align-lg-end,.layout-align-lg-end-center,.layout-align-lg-end-end,.layout-align-lg-end-start,.layout-align-lg-end-stretch{justify-content:flex-end}.layout-align-lg-space-around,.layout-align-lg-space-around-center,.layout-align-lg-space-around-end,.layout-align-lg-space-around-start,.layout-align-lg-space-around-stretch{justify-content:space-around}.layout-align-lg-space-between,.layout-align-lg-space-between-center,.layout-align-lg-space-between-end,.layout-align-lg-space-between-start,.layout-align-lg-space-between-stretch{justify-content:space-between}.layout-align-lg-center-start,.layout-align-lg-end-start,.layout-align-lg-space-around-start,.layout-align-lg-space-between-start,.layout-align-lg-start-start{align-items:flex-start;align-content:flex-start}.layout-align-lg-center-center,.layout-align-lg-end-center,.layout-align-lg-space-around-center,.layout-align-lg-space-between-center,.layout-align-lg-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-lg-center-center>*,.layout-align-lg-end-center>*,.layout-align-lg-space-around-center>*,.layout-align-lg-space-between-center>*,.layout-align-lg-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-lg-center-end,.layout-align-lg-end-end,.layout-align-lg-space-around-end,.layout-align-lg-space-between-end,.layout-align-lg-start-end{align-items:flex-end;align-content:flex-end}.layout-align-lg-center-stretch,.layout-align-lg-end-stretch,.layout-align-lg-space-around-stretch,.layout-align-lg-space-between-stretch,.layout-align-lg-start-stretch{align-items:stretch;align-content:stretch}.flex-lg{flex:1;box-sizing:border-box}.flex-lg-grow{flex:1 1 100%;box-sizing:border-box}.flex-lg-initial{flex:0 1 auto;box-sizing:border-box}.flex-lg-auto{flex:1 1 auto;box-sizing:border-box}.flex-lg-none{flex:0 0 auto;box-sizing:border-box}.flex-lg-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-lg-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-lg-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-lg-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-lg-column>.flex-lg-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-lg-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-lg-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-lg-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-lg-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-lg-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-lg-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-lg-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-lg-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-lg-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-lg-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-lg-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-lg-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-lg-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-lg-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-lg-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-lg-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-lg-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-lg-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-lg-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-lg-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-lg-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-lg-row>.flex{min-width:0}.layout-lg-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-lg-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-column>.flex{min-height:0}.layout-lg,.layout-lg-column,.layout-lg-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-lg-column{flex-direction:column}.layout-lg-row{flex-direction:row}}@media (min-width:1920px){.flex-order-gt-lg--20{order:-20}.flex-order-gt-lg--19{order:-19}.flex-order-gt-lg--18{order:-18}.flex-order-gt-lg--17{order:-17}.flex-order-gt-lg--16{order:-16}.flex-order-gt-lg--15{order:-15}.flex-order-gt-lg--14{order:-14}.flex-order-gt-lg--13{order:-13}.flex-order-gt-lg--12{order:-12}.flex-order-gt-lg--11{order:-11}.flex-order-gt-lg--10{order:-10}.flex-order-gt-lg--9{order:-9}.flex-order-gt-lg--8{order:-8}.flex-order-gt-lg--7{order:-7}.flex-order-gt-lg--6{order:-6}.flex-order-gt-lg--5{order:-5}.flex-order-gt-lg--4{order:-4}.flex-order-gt-lg--3{order:-3}.flex-order-gt-lg--2{order:-2}.flex-order-gt-lg--1{order:-1}.flex-order-gt-lg-0{order:0}.flex-order-gt-lg-1{order:1}.flex-order-gt-lg-2{order:2}.flex-order-gt-lg-3{order:3}.flex-order-gt-lg-4{order:4}.flex-order-gt-lg-5{order:5}.flex-order-gt-lg-6{order:6}.flex-order-gt-lg-7{order:7}.flex-order-gt-lg-8{order:8}.flex-order-gt-lg-9{order:9}.flex-order-gt-lg-10{order:10}.flex-order-gt-lg-11{order:11}.flex-order-gt-lg-12{order:12}.flex-order-gt-lg-13{order:13}.flex-order-gt-lg-14{order:14}.flex-order-gt-lg-15{order:15}.flex-order-gt-lg-16{order:16}.flex-order-gt-lg-17{order:17}.flex-order-gt-lg-18{order:18}.flex-order-gt-lg-19{order:19}.flex-order-gt-lg-20{order:20}.flex-offset-gt-lg-0,.offset-gt-lg-0{margin-left:0}[dir=rtl] .flex-offset-gt-lg-0,[dir=rtl] .offset-gt-lg-0{margin-left:auto;margin-right:0}.flex-offset-gt-lg-5,.offset-gt-lg-5{margin-left:5%}[dir=rtl] .flex-offset-gt-lg-5,[dir=rtl] .offset-gt-lg-5{margin-left:auto;margin-right:5%}.flex-offset-gt-lg-10,.offset-gt-lg-10{margin-left:10%}[dir=rtl] .flex-offset-gt-lg-10,[dir=rtl] .offset-gt-lg-10{margin-left:auto;margin-right:10%}.flex-offset-gt-lg-15,.offset-gt-lg-15{margin-left:15%}[dir=rtl] .flex-offset-gt-lg-15,[dir=rtl] .offset-gt-lg-15{margin-left:auto;margin-right:15%}.flex-offset-gt-lg-20,.offset-gt-lg-20{margin-left:20%}[dir=rtl] .flex-offset-gt-lg-20,[dir=rtl] .offset-gt-lg-20{margin-left:auto;margin-right:20%}.flex-offset-gt-lg-25,.offset-gt-lg-25{margin-left:25%}[dir=rtl] .flex-offset-gt-lg-25,[dir=rtl] .offset-gt-lg-25{margin-left:auto;margin-right:25%}.flex-offset-gt-lg-30,.offset-gt-lg-30{margin-left:30%}[dir=rtl] .flex-offset-gt-lg-30,[dir=rtl] .offset-gt-lg-30{margin-left:auto;margin-right:30%}.flex-offset-gt-lg-35,.offset-gt-lg-35{margin-left:35%}[dir=rtl] .flex-offset-gt-lg-35,[dir=rtl] .offset-gt-lg-35{margin-left:auto;margin-right:35%}.flex-offset-gt-lg-40,.offset-gt-lg-40{margin-left:40%}[dir=rtl] .flex-offset-gt-lg-40,[dir=rtl] .offset-gt-lg-40{margin-left:auto;margin-right:40%}.flex-offset-gt-lg-45,.offset-gt-lg-45{margin-left:45%}[dir=rtl] .flex-offset-gt-lg-45,[dir=rtl] .offset-gt-lg-45{margin-left:auto;margin-right:45%}.flex-offset-gt-lg-50,.offset-gt-lg-50{margin-left:50%}[dir=rtl] .flex-offset-gt-lg-50,[dir=rtl] .offset-gt-lg-50{margin-left:auto;margin-right:50%}.flex-offset-gt-lg-55,.offset-gt-lg-55{margin-left:55%}[dir=rtl] .flex-offset-gt-lg-55,[dir=rtl] .offset-gt-lg-55{margin-left:auto;margin-right:55%}.flex-offset-gt-lg-60,.offset-gt-lg-60{margin-left:60%}[dir=rtl] .flex-offset-gt-lg-60,[dir=rtl] .offset-gt-lg-60{margin-left:auto;margin-right:60%}.flex-offset-gt-lg-65,.offset-gt-lg-65{margin-left:65%}[dir=rtl] .flex-offset-gt-lg-65,[dir=rtl] .offset-gt-lg-65{margin-left:auto;margin-right:65%}.flex-offset-gt-lg-70,.offset-gt-lg-70{margin-left:70%}[dir=rtl] .flex-offset-gt-lg-70,[dir=rtl] .offset-gt-lg-70{margin-left:auto;margin-right:70%}.flex-offset-gt-lg-75,.offset-gt-lg-75{margin-left:75%}[dir=rtl] .flex-offset-gt-lg-75,[dir=rtl] .offset-gt-lg-75{margin-left:auto;margin-right:75%}.flex-offset-gt-lg-80,.offset-gt-lg-80{margin-left:80%}[dir=rtl] .flex-offset-gt-lg-80,[dir=rtl] .offset-gt-lg-80{margin-left:auto;margin-right:80%}.flex-offset-gt-lg-85,.offset-gt-lg-85{margin-left:85%}[dir=rtl] .flex-offset-gt-lg-85,[dir=rtl] .offset-gt-lg-85{margin-left:auto;margin-right:85%}.flex-offset-gt-lg-90,.offset-gt-lg-90{margin-left:90%}[dir=rtl] .flex-offset-gt-lg-90,[dir=rtl] .offset-gt-lg-90{margin-left:auto;margin-right:90%}.flex-offset-gt-lg-95,.offset-gt-lg-95{margin-left:95%}[dir=rtl] .flex-offset-gt-lg-95,[dir=rtl] .offset-gt-lg-95{margin-left:auto;margin-right:95%}.flex-offset-gt-lg-33,.offset-gt-lg-33{margin-left:calc(100% / 3)}.flex-offset-gt-lg-66,.offset-gt-lg-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-gt-lg-66,[dir=rtl] .offset-gt-lg-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-gt-lg,.layout-align-gt-lg-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-gt-lg-start,.layout-align-gt-lg-start-center,.layout-align-gt-lg-start-end,.layout-align-gt-lg-start-start,.layout-align-gt-lg-start-stretch{justify-content:flex-start}.layout-align-gt-lg-center,.layout-align-gt-lg-center-center,.layout-align-gt-lg-center-end,.layout-align-gt-lg-center-start,.layout-align-gt-lg-center-stretch{justify-content:center}.layout-align-gt-lg-end,.layout-align-gt-lg-end-center,.layout-align-gt-lg-end-end,.layout-align-gt-lg-end-start,.layout-align-gt-lg-end-stretch{justify-content:flex-end}.layout-align-gt-lg-space-around,.layout-align-gt-lg-space-around-center,.layout-align-gt-lg-space-around-end,.layout-align-gt-lg-space-around-start,.layout-align-gt-lg-space-around-stretch{justify-content:space-around}.layout-align-gt-lg-space-between,.layout-align-gt-lg-space-between-center,.layout-align-gt-lg-space-between-end,.layout-align-gt-lg-space-between-start,.layout-align-gt-lg-space-between-stretch{justify-content:space-between}.layout-align-gt-lg-center-start,.layout-align-gt-lg-end-start,.layout-align-gt-lg-space-around-start,.layout-align-gt-lg-space-between-start,.layout-align-gt-lg-start-start{align-items:flex-start;align-content:flex-start}.layout-align-gt-lg-center-center,.layout-align-gt-lg-end-center,.layout-align-gt-lg-space-around-center,.layout-align-gt-lg-space-between-center,.layout-align-gt-lg-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-gt-lg-center-center>*,.layout-align-gt-lg-end-center>*,.layout-align-gt-lg-space-around-center>*,.layout-align-gt-lg-space-between-center>*,.layout-align-gt-lg-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-gt-lg-center-end,.layout-align-gt-lg-end-end,.layout-align-gt-lg-space-around-end,.layout-align-gt-lg-space-between-end,.layout-align-gt-lg-start-end{align-items:flex-end;align-content:flex-end}.layout-align-gt-lg-center-stretch,.layout-align-gt-lg-end-stretch,.layout-align-gt-lg-space-around-stretch,.layout-align-gt-lg-space-between-stretch,.layout-align-gt-lg-start-stretch{align-items:stretch;align-content:stretch}.flex-gt-lg{flex:1;box-sizing:border-box}.flex-gt-lg-grow{flex:1 1 100%;box-sizing:border-box}.flex-gt-lg-initial{flex:0 1 auto;box-sizing:border-box}.flex-gt-lg-auto{flex:1 1 auto;box-sizing:border-box}.flex-gt-lg-none{flex:0 0 auto;box-sizing:border-box}.flex-gt-lg-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-gt-lg-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-gt-lg-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-gt-lg-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-gt-lg-column>.flex-gt-lg-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-gt-lg-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-gt-lg-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-gt-lg-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-gt-lg-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-gt-lg-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-gt-lg-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-gt-lg-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-gt-lg-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-gt-lg-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-gt-lg-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-gt-lg-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-gt-lg-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-gt-lg-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-gt-lg-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-gt-lg-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-gt-lg-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-gt-lg-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-gt-lg-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-gt-lg-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-gt-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-gt-lg-row>.flex{min-width:0}.layout-gt-lg-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-column>.flex{min-height:0}.layout-gt-lg,.layout-gt-lg-column,.layout-gt-lg-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-gt-lg-column{flex-direction:column}.layout-gt-lg-row{flex-direction:row}.flex-order-xl--20{order:-20}.flex-order-xl--19{order:-19}.flex-order-xl--18{order:-18}.flex-order-xl--17{order:-17}.flex-order-xl--16{order:-16}.flex-order-xl--15{order:-15}.flex-order-xl--14{order:-14}.flex-order-xl--13{order:-13}.flex-order-xl--12{order:-12}.flex-order-xl--11{order:-11}.flex-order-xl--10{order:-10}.flex-order-xl--9{order:-9}.flex-order-xl--8{order:-8}.flex-order-xl--7{order:-7}.flex-order-xl--6{order:-6}.flex-order-xl--5{order:-5}.flex-order-xl--4{order:-4}.flex-order-xl--3{order:-3}.flex-order-xl--2{order:-2}.flex-order-xl--1{order:-1}.flex-order-xl-0{order:0}.flex-order-xl-1{order:1}.flex-order-xl-2{order:2}.flex-order-xl-3{order:3}.flex-order-xl-4{order:4}.flex-order-xl-5{order:5}.flex-order-xl-6{order:6}.flex-order-xl-7{order:7}.flex-order-xl-8{order:8}.flex-order-xl-9{order:9}.flex-order-xl-10{order:10}.flex-order-xl-11{order:11}.flex-order-xl-12{order:12}.flex-order-xl-13{order:13}.flex-order-xl-14{order:14}.flex-order-xl-15{order:15}.flex-order-xl-16{order:16}.flex-order-xl-17{order:17}.flex-order-xl-18{order:18}.flex-order-xl-19{order:19}.flex-order-xl-20{order:20}.flex-offset-xl-0,.offset-xl-0{margin-left:0}[dir=rtl] .flex-offset-xl-0,[dir=rtl] .offset-xl-0{margin-left:auto;margin-right:0}.flex-offset-xl-5,.offset-xl-5{margin-left:5%}[dir=rtl] .flex-offset-xl-5,[dir=rtl] .offset-xl-5{margin-left:auto;margin-right:5%}.flex-offset-xl-10,.offset-xl-10{margin-left:10%}[dir=rtl] .flex-offset-xl-10,[dir=rtl] .offset-xl-10{margin-left:auto;margin-right:10%}.flex-offset-xl-15,.offset-xl-15{margin-left:15%}[dir=rtl] .flex-offset-xl-15,[dir=rtl] .offset-xl-15{margin-left:auto;margin-right:15%}.flex-offset-xl-20,.offset-xl-20{margin-left:20%}[dir=rtl] .flex-offset-xl-20,[dir=rtl] .offset-xl-20{margin-left:auto;margin-right:20%}.flex-offset-xl-25,.offset-xl-25{margin-left:25%}[dir=rtl] .flex-offset-xl-25,[dir=rtl] .offset-xl-25{margin-left:auto;margin-right:25%}.flex-offset-xl-30,.offset-xl-30{margin-left:30%}[dir=rtl] .flex-offset-xl-30,[dir=rtl] .offset-xl-30{margin-left:auto;margin-right:30%}.flex-offset-xl-35,.offset-xl-35{margin-left:35%}[dir=rtl] .flex-offset-xl-35,[dir=rtl] .offset-xl-35{margin-left:auto;margin-right:35%}.flex-offset-xl-40,.offset-xl-40{margin-left:40%}[dir=rtl] .flex-offset-xl-40,[dir=rtl] .offset-xl-40{margin-left:auto;margin-right:40%}.flex-offset-xl-45,.offset-xl-45{margin-left:45%}[dir=rtl] .flex-offset-xl-45,[dir=rtl] .offset-xl-45{margin-left:auto;margin-right:45%}.flex-offset-xl-50,.offset-xl-50{margin-left:50%}[dir=rtl] .flex-offset-xl-50,[dir=rtl] .offset-xl-50{margin-left:auto;margin-right:50%}.flex-offset-xl-55,.offset-xl-55{margin-left:55%}[dir=rtl] .flex-offset-xl-55,[dir=rtl] .offset-xl-55{margin-left:auto;margin-right:55%}.flex-offset-xl-60,.offset-xl-60{margin-left:60%}[dir=rtl] .flex-offset-xl-60,[dir=rtl] .offset-xl-60{margin-left:auto;margin-right:60%}.flex-offset-xl-65,.offset-xl-65{margin-left:65%}[dir=rtl] .flex-offset-xl-65,[dir=rtl] .offset-xl-65{margin-left:auto;margin-right:65%}.flex-offset-xl-70,.offset-xl-70{margin-left:70%}[dir=rtl] .flex-offset-xl-70,[dir=rtl] .offset-xl-70{margin-left:auto;margin-right:70%}.flex-offset-xl-75,.offset-xl-75{margin-left:75%}[dir=rtl] .flex-offset-xl-75,[dir=rtl] .offset-xl-75{margin-left:auto;margin-right:75%}.flex-offset-xl-80,.offset-xl-80{margin-left:80%}[dir=rtl] .flex-offset-xl-80,[dir=rtl] .offset-xl-80{margin-left:auto;margin-right:80%}.flex-offset-xl-85,.offset-xl-85{margin-left:85%}[dir=rtl] .flex-offset-xl-85,[dir=rtl] .offset-xl-85{margin-left:auto;margin-right:85%}.flex-offset-xl-90,.offset-xl-90{margin-left:90%}[dir=rtl] .flex-offset-xl-90,[dir=rtl] .offset-xl-90{margin-left:auto;margin-right:90%}.flex-offset-xl-95,.offset-xl-95{margin-left:95%}[dir=rtl] .flex-offset-xl-95,[dir=rtl] .offset-xl-95{margin-left:auto;margin-right:95%}.flex-offset-xl-33,.offset-xl-33{margin-left:calc(100% / 3)}.flex-offset-xl-66,.offset-xl-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-xl-66,[dir=rtl] .offset-xl-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-xl,.layout-align-xl-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-xl-start,.layout-align-xl-start-center,.layout-align-xl-start-end,.layout-align-xl-start-start,.layout-align-xl-start-stretch{justify-content:flex-start}.layout-align-xl-center,.layout-align-xl-center-center,.layout-align-xl-center-end,.layout-align-xl-center-start,.layout-align-xl-center-stretch{justify-content:center}.layout-align-xl-end,.layout-align-xl-end-center,.layout-align-xl-end-end,.layout-align-xl-end-start,.layout-align-xl-end-stretch{justify-content:flex-end}.layout-align-xl-space-around,.layout-align-xl-space-around-center,.layout-align-xl-space-around-end,.layout-align-xl-space-around-start,.layout-align-xl-space-around-stretch{justify-content:space-around}.layout-align-xl-space-between,.layout-align-xl-space-between-center,.layout-align-xl-space-between-end,.layout-align-xl-space-between-start,.layout-align-xl-space-between-stretch{justify-content:space-between}.layout-align-xl-center-start,.layout-align-xl-end-start,.layout-align-xl-space-around-start,.layout-align-xl-space-between-start,.layout-align-xl-start-start{align-items:flex-start;align-content:flex-start}.layout-align-xl-center-center,.layout-align-xl-end-center,.layout-align-xl-space-around-center,.layout-align-xl-space-between-center,.layout-align-xl-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-xl-center-center>*,.layout-align-xl-end-center>*,.layout-align-xl-space-around-center>*,.layout-align-xl-space-between-center>*,.layout-align-xl-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-xl-center-end,.layout-align-xl-end-end,.layout-align-xl-space-around-end,.layout-align-xl-space-between-end,.layout-align-xl-start-end{align-items:flex-end;align-content:flex-end}.layout-align-xl-center-stretch,.layout-align-xl-end-stretch,.layout-align-xl-space-around-stretch,.layout-align-xl-space-between-stretch,.layout-align-xl-start-stretch{align-items:stretch;align-content:stretch}.flex-xl{flex:1;box-sizing:border-box}.flex-xl-grow{flex:1 1 100%;box-sizing:border-box}.flex-xl-initial{flex:0 1 auto;box-sizing:border-box}.flex-xl-auto{flex:1 1 auto;box-sizing:border-box}.flex-xl-none{flex:0 0 auto;box-sizing:border-box}.flex-xl-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-xl-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-xl-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-xl-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-xl-column>.flex-xl-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-xl-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-xl-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-xl-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-xl-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-xl-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-xl-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-xl-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-xl-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-xl-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-xl-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-xl-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-xl-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-xl-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-xl-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-xl-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-xl-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-xl-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-xl-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-xl-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-xl-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-xl-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-xl-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-xl-row>.flex{min-width:0}.layout-xl-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-xl-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-column>.flex{min-height:0}.layout-xl,.layout-xl-column,.layout-xl-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-xl-column{flex-direction:column}.layout-xl-row{flex-direction:row}.hide-gt-lg:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show-xl):not(.show),.hide-gt-md:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show-xl):not(.show),.hide-gt-sm:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show-xl):not(.show),.hide-gt-xs:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show-xl):not(.show),.hide:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show-xl):not(.show){display:none}.hide-xl:not(.show-xl):not(.show-gt-lg):not(.show-gt-md):not(.show-gt-sm):not(.show-gt-xs):not(.show){display:none}}@media print{.hide-print:not(.show-print):not(.show){display:none!important}}*{text-rendering:optimizeLegibility;-o-text-rendering:optimizeLegibility;-ms-text-rendering:optimizeLegibility;-moz-text-rendering:optimizeLegibility;-webkit-text-rendering:optimizeLegibility;-webkit-tap-highlight-color:transparent;box-sizing:border-box}:after,:before{box-sizing:border-box}:focus{outline:0}:not(md-input-container)>button,:not(md-input-container)>input[type=button],:not(md-input-container)>input[type=email],:not(md-input-container)>input[type=image],:not(md-input-container)>input[type=password],:not(md-input-container)>input[type=search],:not(md-input-container)>input[type=submit],:not(md-input-container)>input[type=tel],:not(md-input-container)>input[type=text],:not(md-input-container)>textarea{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;appearance:none;-moz-appearance:none;-webkit-appearance:none;border:none;padding:0;margin:0}:not(md-input-container)>button,:not(md-input-container)>input[type=button],:not(md-input-container)>input[type=submit]{background:0 0}button{border-radius:0;font-family:inherit;font-size:inherit;padding:0;margin:0;appearance:none;-moz-appearance:none;-webkit-appearance:none}[layout]>*{min-height:auto;min-height:initial}md-card>:not(md-card-content) img,md-card>img{height:inherit;height:initial}.md-datepicker-calendar-pane *{box-sizing:initial}md-autocomplete-wrap>input[type=search]{background:#fff;padding:0 15px!important}md-backdrop.md-opaque{background-color:rgba(33,33,33,.48)!important}md-card md-card-header md-card-avatar md-icon{width:40px;height:40px}md-checkbox.no-label{margin:0}md-chip .md-chip-remove md-icon{margin-left:2px}md-chip .md-chip-remove md-icon svg{width:18px;height:18px;max-width:18px;max-height:18px;margin:4px}md-datepicker .md-datepicker-button{padding:0!important;margin:0!important;vertical-align:middle}md-datepicker .md-datepicker-input-container{margin-left:0}.md-inline-form md-datepicker{margin-top:14px}md-dialog md-dialog-content{padding:32px 24px 24px 24px}md-dialog md-dialog-actions{min-height:64px;padding-top:8px;padding-bottom:8px}md-dialog md-dialog-actions .md-button{margin:0 8px}md-input-container.no-errors-spacer .md-errors-spacer{display:none}md-input-container .input-hint{position:absolute;right:auto;bottom:7px;left:2px;font-size:12px;line-height:14px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-input-container.md-icon-left .input-hint{left:38px}md-list-item .md-list-item-text p{font-size:13px!important}.md-menu,md-menu{padding:0}md-menu-content.md-menu-bar-menu.md-dense{padding:8px 0}md-menu-content.md-menu-bar-menu.md-dense .md-button,md-menu-content.md-menu-bar-menu.md-dense md-menu-item{height:40px;line-height:40px}md-menu-content.md-menu-bar-menu.md-dense .md-button.md-indent>md-icon,md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent>md-icon{top:8px}.md-open-menu-container md-menu-content md-menu-item.selected{opacity:.4}md-menu-content md-menu-item .md-button{text-align:left}md-select.simplified{margin:0 8px}md-select.simplified .md-select-value{border:none!important;box-sizing:border-box;padding:0}md-select.simplified .md-select-value :first-child{transform:none;height:auto}md-select.simplified .md-select-value .md-select-icon{transform:none;font-size:16px}md-select.simplified .md-select-value .md-select-icon:after{top:1px}md-select[multiple] md-select-value>:first-child{display:flex}md-select[multiple] md-select-value>:first-child>:first-child{flex:0}md-select[multiple] md-select-value>:first-child .md-container{padding-right:6px}md-select[multiple] md-select-value>:first-child .md-container:first-of-type{padding-right:0}md-select-menu md-select-header{position:relative;display:flex;align-items:center;width:auto;height:48px;padding-left:10.667px;box-shadow:0 1px 0 0 rgba(0,0,0,.1),0 0 0 0 rgba(0,0,0,.14),0 0 0 0 rgba(0,0,0,.12);cursor:pointer}md-select-menu md-select-header input[type=search]{border:none;outline:0;height:100%;width:100%;padding:0}md-sidenav{-webkit-overflow-scrolling:touch}md-toolbar.colored-toolbar{color:rgba(255,255,255,.87)}md-toolbar.colored-toolbar md-menu-bar md-menu._md-open>button{background:rgba(0,0,0,.12)}md-toolbar.colored-toolbar md-menu._md-open>button{background:rgba(0,0,0,.12)}md-toolbar.colored-toolbar input{color:rgba(255,255,255,.87)!important}md-progress-circular[disabled]{visibility:hidden}body,html{overflow:hidden!important}#main{position:absolute;top:0;right:0;bottom:0;left:0}body.boxed{background:#3f4450}body.boxed #main{overflow:hidden!important;width:100%;max-width:1280px;margin:0 auto;box-shadow:0 0 12px rgba(0,0,0,.45)}#layout-content-only{position:relative;height:100%;max-height:100%}#layout-content-only #content{position:absolute;top:0;right:0;bottom:0;left:0}#layout-content-with-toolbar{position:relative;height:100%;max-height:100%}#layout-content-with-toolbar #content{position:absolute;top:64px;right:0;bottom:0;left:0}#layout-vertical-navigation{height:100%;max-height:100%}#layout-vertical-navigation #content-container{position:relative;overflow:hidden}#layout-vertical-navigation #content-container #content{position:absolute;top:64px;right:0;bottom:0;left:0}#layout-vertical-navigation-fullwidth-toolbar{height:100%;max-height:100%}#layout-vertical-navigation-fullwidth-toolbar #main-container{position:relative}#layout-vertical-navigation-fullwidth-toolbar #main-container #content-container{position:relative;overflow:hidden}#layout-vertical-navigation-fullwidth-toolbar #main-container #content-container #content{position:absolute;top:0;right:0;bottom:0;left:0}#layout-vertical-navigation-fullwidth-toolbar-2{height:100%;max-height:100%}#layout-vertical-navigation-fullwidth-toolbar-2 #main-container{position:relative}#layout-vertical-navigation-fullwidth-toolbar-2 #main-container #content-container{position:relative;overflow:hidden}#layout-vertical-navigation-fullwidth-toolbar-2 #main-container #content-container #content{position:absolute;top:0;right:0;bottom:0;left:0}#layout-horizontal-navigation{height:100%;max-height:100%}#layout-horizontal-navigation #content-container{position:relative;overflow:hidden}#layout-horizontal-navigation #content-container #content{position:absolute;top:0;right:0;bottom:0;left:0}.page-layout{position:relative;overflow:hidden}.page-layout .top-bg{position:absolute;z-index:1;top:0;right:0;left:0;height:200px;background-image:url(/assets/images/backgrounds/header-bg.png);background-size:cover}.page-layout md-backdrop{z-index:50}.page-layout>.header .breadcrumb{margin-bottom:16px;font-weight:500;color:rgba(0,0,0,.54)}.page-layout>.header .breadcrumb md-icon{margin:0}.page-layout>.header .breadcrumb .separator{margin:0 8px}.page-layout>.header .title{font-size:34px}.page-layout.carded{min-height:100%;height:100%}.page-layout.carded.fullwidth.single-scroll{height:auto}.page-layout.carded.fullwidth.single-scroll>.center .content-card .content{overflow:hidden}.page-layout.carded.fullwidth>.center{position:relative;z-index:2;margin-left:32px;margin-right:32px}.page-layout.carded.fullwidth>.center .header{height:136px;min-height:136px;max-height:136px;padding:24px}.page-layout.carded.fullwidth>.center .content-card{background:#fff;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12);overflow:hidden}.page-layout.carded.fullwidth>.center .content-card .toolbar{padding:8px 24px;height:64px;min-height:64px;max-height:64px;border-bottom:1px solid rgba(0,0,0,.12)}.page-layout.carded.fullwidth>.center .content-card .content{padding:24px;background:#fff}.page-layout.carded.left-sidenav.single-scroll{height:auto}.page-layout.carded.left-sidenav.single-scroll>.center .content-card .content{overflow:hidden}.page-layout.carded.left-sidenav>.sidenav{width:240px;min-width:240px;max-width:240px;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12);z-index:51}.page-layout.carded.left-sidenav>.sidenav .header{height:200px;min-height:200px;max-height:200px;padding:24px}.page-layout.carded.left-sidenav>.sidenav .content{background:0 0;padding:24px}.page-layout.carded.left-sidenav>.sidenav.md-locked-open{width:220px;min-width:220px;max-width:220px;z-index:2;background:0 0;box-shadow:none}.page-layout.carded.left-sidenav>.sidenav.md-locked-open+.center{margin-left:0}.page-layout.carded.left-sidenav>.sidenav:not(.md-locked-open) .header{border-bottom:1px solid rgba(0,0,0,.12)}.page-layout.carded.left-sidenav>.sidenav:not(.md-locked-open) .content{overflow:hidden}.page-layout.carded.left-sidenav>.center{position:relative;z-index:2;margin-left:32px;margin-right:32px}.page-layout.carded.left-sidenav>.center .header{height:136px;min-height:136px;max-height:136px;padding:24px}.page-layout.carded.left-sidenav>.center .content-card{background:#fff;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12);overflow:hidden}.page-layout.carded.left-sidenav>.center .content-card .toolbar{padding:8px 24px;height:64px;min-height:64px;max-height:64px;border-bottom:1px solid rgba(0,0,0,.12)}.page-layout.carded.left-sidenav>.center .content-card .toolbar .sidenav-toggle{margin:0 8px 0 0!important;padding:0!important;border-radius:0}.page-layout.carded.left-sidenav>.center .content-card .content{padding:24px;background:#fff}.page-layout.carded.right-sidenav.single-scroll{height:auto}.page-layout.carded.right-sidenav.single-scroll>.center .content-card .content{overflow:hidden}.page-layout.carded.right-sidenav>.sidenav{width:240px;min-width:240px;max-width:240px;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12);z-index:51}.page-layout.carded.right-sidenav>.sidenav .header{height:200px;min-height:200px;max-height:200px;padding:24px 24px 24px 0}.page-layout.carded.right-sidenav>.sidenav .content{background:0 0;padding:24px 24px 24px 0}.page-layout.carded.right-sidenav>.sidenav.md-locked-open{width:196px;min-width:196px;max-width:196px;z-index:2;background:0 0;box-shadow:none}.page-layout.carded.right-sidenav>.sidenav:not(.md-locked-open) .header{padding:24px;border-bottom:1px solid rgba(0,0,0,.12)}.page-layout.carded.right-sidenav>.sidenav:not(.md-locked-open) .content{overflow:hidden;padding:24px}.page-layout.carded.right-sidenav>.center{position:relative;z-index:2;margin-left:32px;margin-right:32px}.page-layout.carded.right-sidenav>.center .header{height:136px;min-height:136px;max-height:136px;padding:24px}.page-layout.carded.right-sidenav>.center .content-card{background:#fff;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12);overflow:hidden}.page-layout.carded.right-sidenav>.center .content-card .toolbar{padding:8px 24px;height:64px;min-height:64px;max-height:64px;border-bottom:1px solid rgba(0,0,0,.12)}.page-layout.carded.right-sidenav>.center .content-card .toolbar .sidenav-toggle{margin:0 0 0 8px!important;padding:0!important;border-radius:0}.page-layout.carded.right-sidenav>.center .content-card .content{padding:24px;background:#fff}.page-layout.simple.fullwidth,.page-layout.simple.inner-sidenav{min-height:100%}.page-layout.simple.fullwidth>.header,.page-layout.simple.inner-sidenav>.header{height:200px;min-height:200px;max-height:200px;padding:24px;background-image:url(/assets/images/backgrounds/header-bg.png);background-size:cover}.page-layout.simple.fullwidth>.content,.page-layout.simple.inner-sidenav>.content{padding:24px}.page-layout.simple.left-sidenav{min-height:100%;height:100%}.page-layout.simple.left-sidenav.single-scroll{height:auto}.page-layout.simple.left-sidenav.single-scroll>.center{overflow:hidden}.page-layout.simple.left-sidenav.inner-sidenav>.content>md-sidenav{margin-right:24px}.page-layout.simple.left-sidenav .sidenav{width:240px;min-width:240px;max-width:240px;padding:24px;z-index:51;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12)}.page-layout.simple.left-sidenav .sidenav.md-locked-open{width:220px;min-width:220px;max-width:220px;z-index:2;box-shadow:none;background:0 0}.page-layout.simple.left-sidenav>.center{position:relative;overflow:auto;z-index:3;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12)}.page-layout.simple.left-sidenav>.center .header{height:200px;min-height:200px;max-height:200px;padding:24px;background-image:url(/assets/images/backgrounds/header-bg.png);background-size:cover}.page-layout.simple.left-sidenav>.center .content{padding:24px;background:#fff}.page-layout.simple.right-sidenav{min-height:100%;height:100%}.page-layout.simple.right-sidenav.single-scroll{height:auto}.page-layout.simple.right-sidenav.single-scroll>.center{overflow:hidden}.page-layout.simple.right-sidenav.inner-sidenav>.content>md-sidenav{margin-left:24px}.page-layout.simple.right-sidenav .sidenav{width:240px;min-width:240px;max-width:240px;padding:24px;z-index:51;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12)}.page-layout.simple.right-sidenav .sidenav.md-locked-open{width:220px;min-width:220px;max-width:220px;z-index:2;box-shadow:none;background:0 0}.page-layout.simple.right-sidenav>.center{position:relative;overflow:auto;z-index:3;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12)}.page-layout.simple.right-sidenav>.center .header{height:200px;min-height:200px;max-height:200px;padding:24px;background-image:url(/assets/images/backgrounds/header-bg.png);background-size:cover}.page-layout.simple.right-sidenav>.center .content{padding:24px;background:#fff}.page-layout.simple.inner-sidenav{height:auto}.page-layout.simple.inner-sidenav>.content>md-sidenav.md-locked-open{padding:0}.page-layout.simple.tabbed{min-height:100%}.page-layout.simple.tabbed>.header{height:200px;min-height:200px;max-height:200px;padding:24px;background-image:url(/assets/images/backgrounds/header-bg.png);background-size:cover}.page-layout.simple.tabbed>.content>md-tabs>md-tabs-wrapper{background:#fff;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12);padding:0 24px}.page-layout.simple.tabbed>.content>md-tabs>md-tabs-wrapper md-tabs-canvas{height:56px}.page-layout.simple.tabbed>.content>md-tabs>md-tabs-wrapper md-tabs-canvas md-pagination-wrapper{height:56px}.page-layout.simple.tabbed>.content>md-tabs>md-tabs-wrapper md-tabs-canvas .md-tab{padding:16px 24px;text-transform:none}.page-layout.simple.tabbed>.content>md-tabs:not(.md-dynamic-height) md-tabs-content-wrapper{top:56px}.page-layout.simple.tabbed>.content>md-tabs>md-tabs-content-wrapper>md-tab-content{padding:24px}.page-layout.simple.tabbed>.content>md-nav-bar .md-nav-bar{background:#fff;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12);border:none;height:56px}.page-layout.simple.tabbed>.content>md-nav-bar .md-nav-bar nav{margin:0 12px}.page-layout.simple.tabbed>.content>md-nav-bar .md-nav-bar nav .md-nav-item{height:56px}.page-layout.simple.tabbed>.content>md-nav-bar .md-nav-bar nav .md-nav-item ._md-nav-button{height:56px;line-height:32px}.page-layout.simple.tabbed>.content>md-nav-bar .md-nav-bar nav .md-nav-item ._md-nav-button-text{text-transform:none}.page-layout.blank{min-height:100%;padding:24px}.single-scroll .carded.fullwidth{height:auto}.single-scroll .carded.fullwidth>.center .content-card .content{overflow:hidden}.single-scroll .carded.left-sidenav{height:auto}.single-scroll .carded.left-sidenav>.center .content-card .content{overflow:hidden}.single-scroll .carded.right-sidenav{height:auto}.single-scroll .carded.right-sidenav>.center .content-card .content{overflow:hidden}.single-scroll .simple.left-sidenav{height:auto}.single-scroll .simple.left-sidenav>.center{overflow:hidden}.single-scroll .simple.right-sidenav{height:auto}.single-scroll .simple.right-sidenav>.center{overflow:hidden}@media screen and (max-width:1280px){.page-layout.simple.inner-sidenav.left-sidenav>.content,.page-layout.simple.inner-sidenav.right-sidenav>.content{height:auto!important}.page-layout.simple.inner-sidenav.left-sidenav>.content>md-sidenav,.page-layout.simple.inner-sidenav.right-sidenav>.content>md-sidenav{margin-left:0;margin-right:0}.sidenav-open .page-layout.simple.inner-sidenav{height:100%}}@media screen and (max-width:600px){.page-layout .top-bg{height:160px}.page-layout.carded.fullwidth>.center,.page-layout.carded.left-sidenav>.center,.page-layout.carded.right-sidenav>.center{margin-left:16px;margin-right:16px}.page-layout.carded.fullwidth>.center .header,.page-layout.carded.left-sidenav>.center .header,.page-layout.carded.right-sidenav>.center .header{height:96px;min-height:96px;max-height:96px;padding:16px}.page-layout.carded.fullwidth{height:auto}.page-layout.carded.fullwidth>.center .content-card .content{overflow:hidden}.page-layout.carded.left-sidenav,.page-layout.carded.right-sidenav{height:auto}.page-layout.carded.left-sidenav>.center .content-card .content,.page-layout.carded.right-sidenav>.center .content-card .content{overflow:hidden}.page-layout.simple.fullwidth>.header,.page-layout.simple.inner-sidenav>.header{height:160px;min-height:160px;max-height:160px;padding:16px}.page-layout.simple.left-sidenav>.center .header,.page-layout.simple.right-sidenav>.center .header{height:160px;min-height:160px;max-height:160px;padding:16px}.page-layout.simple.left-sidenav,.page-layout.simple.right-sidenav{height:auto}.page-layout.simple.left-sidenav>.center,.page-layout.simple.right-sidenav>.center{overflow:hidden}}.animate-slide-up{-webkit-backface-visibility:hidden;-webkit-perspective:1000px;transition-property:none;transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:1}.animate-slide-up.ng-enter{transform:translateY(100%);opacity:0}.animate-slide-up.ng-enter.ng-enter-active{transition-property:all;transform:translateY(0);opacity:1}.animate-slide-up.ng-leave{transform:translateY(0);opacity:1}.animate-slide-up.ng-leave.ng-leave-active{transition-property:all;transform:translateY(-100%);opacity:0}.animate-slide-up.ng-hide{transform:translateY(-100%);opacity:0}.animate-slide-up.ng-hide-add-active,.animate-slide-up.ng-hide-remove-active{transition-property:all}.animate-slide-down{-webkit-backface-visibility:hidden;-webkit-perspective:1000px;transition-property:none;transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:1}.animate-slide-down.ng-enter{transform:translateY(-100%);opacity:0}.animate-slide-down.ng-enter.ng-enter-active{transition-property:all;transform:translateY(0);opacity:1}.animate-slide-down.ng-leave{transform:translateY(0);opacity:1}.animate-slide-down.ng-leave.ng-leave-active{transition-property:all;transform:translateY(100%);opacity:0}.animate-slide-down.ng-hide{transform:translateY(-100%);opacity:0}.animate-slide-down.ng-hide-add-active,.animate-slide-down.ng-hide-remove-active{transition-property:all}.animate-slide-left{-webkit-backface-visibility:hidden;-webkit-perspective:1000px;transition-property:none;transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:1}.animate-slide-left.ng-enter{transform:translateX(100%);opacity:0}.animate-slide-left.ng-enter.ng-enter-active{transition-property:all;transform:translateX(0);opacity:1}.animate-slide-left.ng-leave{transform:translateX(0);opacity:1}.animate-slide-left.ng-leave.ng-leave-active{transition-property:all;transform:translateX(-100%);opacity:0}.animate-slide-left.ng-hide{transform:translateX(-100%);opacity:0}.animate-slide-left.ng-hide-add-active,.animate-slide-left.ng-hide-remove-active{transition-property:all}.animate-slide-right{-webkit-backface-visibility:hidden;-webkit-perspective:1000px;transition-property:none;transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:1}.animate-slide-right.ng-enter{transform:translateX(-100%);opacity:0}.animate-slide-right.ng-enter.ng-enter-active{transition-property:all;transform:translateX(0);opacity:1}.animate-slide-right.ng-leave{transform:translateX(0);opacity:1}.animate-slide-right.ng-leave.ng-leave-active{transition-property:all;transform:translateX(100%);opacity:0}.animate-slide-right.ng-hide{transform:translateX(100%);opacity:0}.animate-slide-right.ng-hide-add-active,.animate-slide-right.ng-hide-remove-active{transition-property:all}.animate-fade-in-out{-webkit-backface-visibility:hidden;-webkit-perspective:1000px;transition-property:none;transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:1}.animate-fade-in-out.ng-enter{opacity:0}.animate-fade-in-out.ng-enter.ng-enter-active{transition-property:all;opacity:1}.animate-fade-in-out.ng-leave{opacity:1}.animate-fade-in-out.ng-leave.ng-leave-active{transition-property:all;opacity:0}.animate-fade-in-out.ng-hide{opacity:0}.animate-fade-in-out.ng-hide-add-active,.animate-fade-in-out.ng-hide-remove-active{transition-property:all}@keyframes slide-in-left{0%{opacity:0;transform:translateX(-500px)}65%{opacity:1;transform:translateX(0)}100%{transform:translateX(0)}}@keyframes slide-in-right{0%{opacity:0;transform:translateX(500px)}65%{opacity:1;transform:translateX(0)}100%{transform:translateX(0)}}@keyframes slide-in-bottom{0%{opacity:0;transform:translateY(200px)}65%{opacity:1;transform:translateY(0)}100%{transform:translateY(0)}}.animate-rotate{animation:rotate 1.75s linear infinite}@keyframes rotate{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.black-fg,.black-text{color:rgba(0,0,0,.87)!important}.black-fg .icon,.black-fg .secondary-text,.black-fg.icon,.black-fg.secondary-text,.black-text .icon,.black-text .secondary-text,.black-text.icon,.black-text.secondary-text{color:rgba(0,0,0,.54)!important}.black-fg .disabled-text,.black-fg .hint-text,.black-fg.disabled-text,.black-fg.hint-text,.black-text .disabled-text,.black-text .hint-text,.black-text.disabled-text,.black-text.hint-text{color:rgba(0,0,0,.26)!important}.black-fg .divider,.black-fg .faint-text,.black-fg.divider,.black-fg.faint-text,.black-text .divider,.black-text .faint-text,.black-text.divider,.black-text.faint-text{color:rgba(0,0,0,.12)!important}.white-fg,.white-text{color:#fff!important}.white-fg .icon,.white-fg .secondary-text,.white-fg.icon,.white-fg.secondary-text,.white-text .icon,.white-text .secondary-text,.white-text.icon,.white-text.secondary-text{color:rgba(255,255,255,.7)!important}.white-fg .disabled-text,.white-fg .hint-text,.white-fg.disabled-text,.white-fg.hint-text,.white-text .disabled-text,.white-text .hint-text,.white-text.disabled-text,.white-text.hint-text{color:rgba(255,255,255,.3)!important}.white-fg .divider,.white-fg .faint-text,.white-fg.divider,.white-fg.faint-text,.white-text .divider,.white-text .faint-text,.white-text.divider,.white-text.faint-text{color:rgba(255,255,255,.12)!important}.white-fg md-icon,.white-text md-icon{color:#fff}.white-fg md-progress-linear .md-container,.white-text md-progress-linear .md-container{background:rgba(255,255,255,.3)}.white-fg md-progress-linear .md-bar,.white-text md-progress-linear .md-bar{background:rgba(255,255,255,.7)}.red-50-bg{background-color:#ffebee!important}.md-red-50-bg{background-color:#ffebee!important;color:rgba(0,0,0,.87)}.red-50-fg{color:#ffebee!important}.red-50-border{border-color:#ffebee!important}.red-50-border-top{border-top-color:#ffebee!important}.red-50-border-right{border-right-color:#ffebee!important}.red-50-border-bottom{border-bottom-color:#ffebee!important}.red-50-border-left{border-left-color:#ffebee!important}.red-100-bg{background-color:#ffcdd2!important}.md-red-100-bg{background-color:#ffcdd2!important;color:rgba(0,0,0,.87)}.red-100-fg{color:#ffcdd2!important}.red-100-border{border-color:#ffcdd2!important}.red-100-border-top{border-top-color:#ffcdd2!important}.red-100-border-right{border-right-color:#ffcdd2!important}.red-100-border-bottom{border-bottom-color:#ffcdd2!important}.red-100-border-left{border-left-color:#ffcdd2!important}.red-200-bg{background-color:#ef9a9a!important}.md-red-200-bg{background-color:#ef9a9a!important;color:rgba(0,0,0,.87)}.red-200-fg{color:#ef9a9a!important}.red-200-border{border-color:#ef9a9a!important}.red-200-border-top{border-top-color:#ef9a9a!important}.red-200-border-right{border-right-color:#ef9a9a!important}.red-200-border-bottom{border-bottom-color:#ef9a9a!important}.red-200-border-left{border-left-color:#ef9a9a!important}.red-300-bg{background-color:#e57373!important}.md-red-300-bg{background-color:#e57373!important;color:rgba(0,0,0,.87)}.red-300-fg{color:#e57373!important}.red-300-border{border-color:#e57373!important}.red-300-border-top{border-top-color:#e57373!important}.red-300-border-right{border-right-color:#e57373!important}.red-300-border-bottom{border-bottom-color:#e57373!important}.red-300-border-left{border-left-color:#e57373!important}.red-400-bg{background-color:#ef5350!important}.md-red-400-bg{background-color:#ef5350!important;color:#fff}.red-400-fg{color:#ef5350!important}.red-400-border{border-color:#ef5350!important}.red-400-border-top{border-top-color:#ef5350!important}.red-400-border-right{border-right-color:#ef5350!important}.red-400-border-bottom{border-bottom-color:#ef5350!important}.red-400-border-left{border-left-color:#ef5350!important}.red-500-bg{background-color:#f44336!important}.md-red-500-bg{background-color:#f44336!important;color:#fff}.red-500-fg{color:#f44336!important}.red-500-border{border-color:#f44336!important}.red-500-border-top{border-top-color:#f44336!important}.red-500-border-right{border-right-color:#f44336!important}.red-500-border-bottom{border-bottom-color:#f44336!important}.red-500-border-left{border-left-color:#f44336!important}.md-red-bg{background-color:#f44336!important;color:#fff}.red-bg{background-color:#f44336!important}.red-fg{color:#f44336!important}.red-border{border-color:#f44336!important}.red-border-top{border-top-color:#f44336!important}.red-border-right{border-right-color:#f44336!important}.red-border-bottom{border-bottom-color:#f44336!important}.red-border-left{border-left-color:#f44336!important}.red-600-bg{background-color:#e53935!important}.md-red-600-bg{background-color:#e53935!important;color:#fff}.red-600-fg{color:#e53935!important}.red-600-border{border-color:#e53935!important}.red-600-border-top{border-top-color:#e53935!important}.red-600-border-right{border-right-color:#e53935!important}.red-600-border-bottom{border-bottom-color:#e53935!important}.red-600-border-left{border-left-color:#e53935!important}.red-700-bg{background-color:#d32f2f!important}.md-red-700-bg{background-color:#d32f2f!important;color:#fff}.red-700-fg{color:#d32f2f!important}.red-700-border{border-color:#d32f2f!important}.red-700-border-top{border-top-color:#d32f2f!important}.red-700-border-right{border-right-color:#d32f2f!important}.red-700-border-bottom{border-bottom-color:#d32f2f!important}.red-700-border-left{border-left-color:#d32f2f!important}.red-800-bg{background-color:#c62828!important}.md-red-800-bg{background-color:#c62828!important;color:rgba(255,255,255,.87)}.red-800-fg{color:#c62828!important}.red-800-border{border-color:#c62828!important}.red-800-border-top{border-top-color:#c62828!important}.red-800-border-right{border-right-color:#c62828!important}.red-800-border-bottom{border-bottom-color:#c62828!important}.red-800-border-left{border-left-color:#c62828!important}.red-900-bg{background-color:#b71c1c!important}.md-red-900-bg{background-color:#b71c1c!important;color:rgba(255,255,255,.87)}.red-900-fg{color:#b71c1c!important}.red-900-border{border-color:#b71c1c!important}.red-900-border-top{border-top-color:#b71c1c!important}.red-900-border-right{border-right-color:#b71c1c!important}.red-900-border-bottom{border-bottom-color:#b71c1c!important}.red-900-border-left{border-left-color:#b71c1c!important}.red-A100-bg{background-color:#ff8a80!important}.md-red-A100-bg{background-color:#ff8a80!important;color:rgba(0,0,0,.87)}.red-A100-fg{color:#ff8a80!important}.red-A100-border{border-color:#ff8a80!important}.red-A100-border-top{border-top-color:#ff8a80!important}.red-A100-border-right{border-right-color:#ff8a80!important}.red-A100-border-bottom{border-bottom-color:#ff8a80!important}.red-A100-border-left{border-left-color:#ff8a80!important}.red-A200-bg{background-color:#ff5252!important}.md-red-A200-bg{background-color:#ff5252!important;color:#fff}.red-A200-fg{color:#ff5252!important}.red-A200-border{border-color:#ff5252!important}.red-A200-border-top{border-top-color:#ff5252!important}.red-A200-border-right{border-right-color:#ff5252!important}.red-A200-border-bottom{border-bottom-color:#ff5252!important}.red-A200-border-left{border-left-color:#ff5252!important}.red-A400-bg{background-color:#ff1744!important}.md-red-A400-bg{background-color:#ff1744!important;color:#fff}.red-A400-fg{color:#ff1744!important}.red-A400-border{border-color:#ff1744!important}.red-A400-border-top{border-top-color:#ff1744!important}.red-A400-border-right{border-right-color:#ff1744!important}.red-A400-border-bottom{border-bottom-color:#ff1744!important}.red-A400-border-left{border-left-color:#ff1744!important}.red-A700-bg{background-color:#d50000!important}.md-red-A700-bg{background-color:#d50000!important;color:#fff}.red-A700-fg{color:#d50000!important}.red-A700-border{border-color:#d50000!important}.red-A700-border-top{border-top-color:#d50000!important}.red-A700-border-right{border-right-color:#d50000!important}.red-A700-border-bottom{border-bottom-color:#d50000!important}.red-A700-border-left{border-left-color:#d50000!important}.pink-50-bg{background-color:#fce4ec!important}.md-pink-50-bg{background-color:#fce4ec!important;color:rgba(0,0,0,.87)}.pink-50-fg{color:#fce4ec!important}.pink-50-border{border-color:#fce4ec!important}.pink-50-border-top{border-top-color:#fce4ec!important}.pink-50-border-right{border-right-color:#fce4ec!important}.pink-50-border-bottom{border-bottom-color:#fce4ec!important}.pink-50-border-left{border-left-color:#fce4ec!important}.pink-100-bg{background-color:#f8bbd0!important}.md-pink-100-bg{background-color:#f8bbd0!important;color:rgba(0,0,0,.87)}.pink-100-fg{color:#f8bbd0!important}.pink-100-border{border-color:#f8bbd0!important}.pink-100-border-top{border-top-color:#f8bbd0!important}.pink-100-border-right{border-right-color:#f8bbd0!important}.pink-100-border-bottom{border-bottom-color:#f8bbd0!important}.pink-100-border-left{border-left-color:#f8bbd0!important}.pink-200-bg{background-color:#f48fb1!important}.md-pink-200-bg{background-color:#f48fb1!important;color:rgba(0,0,0,.87)}.pink-200-fg{color:#f48fb1!important}.pink-200-border{border-color:#f48fb1!important}.pink-200-border-top{border-top-color:#f48fb1!important}.pink-200-border-right{border-right-color:#f48fb1!important}.pink-200-border-bottom{border-bottom-color:#f48fb1!important}.pink-200-border-left{border-left-color:#f48fb1!important}.pink-300-bg{background-color:#f06292!important}.md-pink-300-bg{background-color:#f06292!important;color:rgba(255,255,255,.87)}.pink-300-fg{color:#f06292!important}.pink-300-border{border-color:#f06292!important}.pink-300-border-top{border-top-color:#f06292!important}.pink-300-border-right{border-right-color:#f06292!important}.pink-300-border-bottom{border-bottom-color:#f06292!important}.pink-300-border-left{border-left-color:#f06292!important}.pink-400-bg{background-color:#ec407a!important}.md-pink-400-bg{background-color:#ec407a!important;color:rgba(255,255,255,.87)}.pink-400-fg{color:#ec407a!important}.pink-400-border{border-color:#ec407a!important}.pink-400-border-top{border-top-color:#ec407a!important}.pink-400-border-right{border-right-color:#ec407a!important}.pink-400-border-bottom{border-bottom-color:#ec407a!important}.pink-400-border-left{border-left-color:#ec407a!important}.pink-500-bg{background-color:#e91e63!important}.md-pink-500-bg{background-color:#e91e63!important;color:#fff}.pink-500-fg{color:#e91e63!important}.pink-500-border{border-color:#e91e63!important}.pink-500-border-top{border-top-color:#e91e63!important}.pink-500-border-right{border-right-color:#e91e63!important}.pink-500-border-bottom{border-bottom-color:#e91e63!important}.pink-500-border-left{border-left-color:#e91e63!important}.md-pink-bg{background-color:#e91e63!important;color:#fff}.pink-bg{background-color:#e91e63!important}.pink-fg{color:#e91e63!important}.pink-border{border-color:#e91e63!important}.pink-border-top{border-top-color:#e91e63!important}.pink-border-right{border-right-color:#e91e63!important}.pink-border-bottom{border-bottom-color:#e91e63!important}.pink-border-left{border-left-color:#e91e63!important}.pink-600-bg{background-color:#d81b60!important}.md-pink-600-bg{background-color:#d81b60!important;color:#fff}.pink-600-fg{color:#d81b60!important}.pink-600-border{border-color:#d81b60!important}.pink-600-border-top{border-top-color:#d81b60!important}.pink-600-border-right{border-right-color:#d81b60!important}.pink-600-border-bottom{border-bottom-color:#d81b60!important}.pink-600-border-left{border-left-color:#d81b60!important}.pink-700-bg{background-color:#c2185b!important}.md-pink-700-bg{background-color:#c2185b!important;color:rgba(255,255,255,.87)}.pink-700-fg{color:#c2185b!important}.pink-700-border{border-color:#c2185b!important}.pink-700-border-top{border-top-color:#c2185b!important}.pink-700-border-right{border-right-color:#c2185b!important}.pink-700-border-bottom{border-bottom-color:#c2185b!important}.pink-700-border-left{border-left-color:#c2185b!important}.pink-800-bg{background-color:#ad1457!important}.md-pink-800-bg{background-color:#ad1457!important;color:rgba(255,255,255,.87)}.pink-800-fg{color:#ad1457!important}.pink-800-border{border-color:#ad1457!important}.pink-800-border-top{border-top-color:#ad1457!important}.pink-800-border-right{border-right-color:#ad1457!important}.pink-800-border-bottom{border-bottom-color:#ad1457!important}.pink-800-border-left{border-left-color:#ad1457!important}.pink-900-bg{background-color:#880e4f!important}.md-pink-900-bg{background-color:#880e4f!important;color:rgba(255,255,255,.87)}.pink-900-fg{color:#880e4f!important}.pink-900-border{border-color:#880e4f!important}.pink-900-border-top{border-top-color:#880e4f!important}.pink-900-border-right{border-right-color:#880e4f!important}.pink-900-border-bottom{border-bottom-color:#880e4f!important}.pink-900-border-left{border-left-color:#880e4f!important}.pink-A100-bg{background-color:#ff80ab!important}.md-pink-A100-bg{background-color:#ff80ab!important;color:rgba(0,0,0,.87)}.pink-A100-fg{color:#ff80ab!important}.pink-A100-border{border-color:#ff80ab!important}.pink-A100-border-top{border-top-color:#ff80ab!important}.pink-A100-border-right{border-right-color:#ff80ab!important}.pink-A100-border-bottom{border-bottom-color:#ff80ab!important}.pink-A100-border-left{border-left-color:#ff80ab!important}.pink-A200-bg{background-color:#ff4081!important}.md-pink-A200-bg{background-color:#ff4081!important;color:#fff}.pink-A200-fg{color:#ff4081!important}.pink-A200-border{border-color:#ff4081!important}.pink-A200-border-top{border-top-color:#ff4081!important}.pink-A200-border-right{border-right-color:#ff4081!important}.pink-A200-border-bottom{border-bottom-color:#ff4081!important}.pink-A200-border-left{border-left-color:#ff4081!important}.pink-A400-bg{background-color:#f50057!important}.md-pink-A400-bg{background-color:#f50057!important;color:#fff}.pink-A400-fg{color:#f50057!important}.pink-A400-border{border-color:#f50057!important}.pink-A400-border-top{border-top-color:#f50057!important}.pink-A400-border-right{border-right-color:#f50057!important}.pink-A400-border-bottom{border-bottom-color:#f50057!important}.pink-A400-border-left{border-left-color:#f50057!important}.pink-A700-bg{background-color:#c51162!important}.md-pink-A700-bg{background-color:#c51162!important;color:#fff}.pink-A700-fg{color:#c51162!important}.pink-A700-border{border-color:#c51162!important}.pink-A700-border-top{border-top-color:#c51162!important}.pink-A700-border-right{border-right-color:#c51162!important}.pink-A700-border-bottom{border-bottom-color:#c51162!important}.pink-A700-border-left{border-left-color:#c51162!important}.purple-50-bg{background-color:#f3e5f5!important}.md-purple-50-bg{background-color:#f3e5f5!important;color:rgba(0,0,0,.87)}.purple-50-fg{color:#f3e5f5!important}.purple-50-border{border-color:#f3e5f5!important}.purple-50-border-top{border-top-color:#f3e5f5!important}.purple-50-border-right{border-right-color:#f3e5f5!important}.purple-50-border-bottom{border-bottom-color:#f3e5f5!important}.purple-50-border-left{border-left-color:#f3e5f5!important}.purple-100-bg{background-color:#e1bee7!important}.md-purple-100-bg{background-color:#e1bee7!important;color:rgba(0,0,0,.87)}.purple-100-fg{color:#e1bee7!important}.purple-100-border{border-color:#e1bee7!important}.purple-100-border-top{border-top-color:#e1bee7!important}.purple-100-border-right{border-right-color:#e1bee7!important}.purple-100-border-bottom{border-bottom-color:#e1bee7!important}.purple-100-border-left{border-left-color:#e1bee7!important}.purple-200-bg{background-color:#ce93d8!important}.md-purple-200-bg{background-color:#ce93d8!important;color:rgba(0,0,0,.87)}.purple-200-fg{color:#ce93d8!important}.purple-200-border{border-color:#ce93d8!important}.purple-200-border-top{border-top-color:#ce93d8!important}.purple-200-border-right{border-right-color:#ce93d8!important}.purple-200-border-bottom{border-bottom-color:#ce93d8!important}.purple-200-border-left{border-left-color:#ce93d8!important}.purple-300-bg{background-color:#ba68c8!important}.md-purple-300-bg{background-color:#ba68c8!important;color:#fff}.purple-300-fg{color:#ba68c8!important}.purple-300-border{border-color:#ba68c8!important}.purple-300-border-top{border-top-color:#ba68c8!important}.purple-300-border-right{border-right-color:#ba68c8!important}.purple-300-border-bottom{border-bottom-color:#ba68c8!important}.purple-300-border-left{border-left-color:#ba68c8!important}.purple-400-bg{background-color:#ab47bc!important}.md-purple-400-bg{background-color:#ab47bc!important;color:#fff}.purple-400-fg{color:#ab47bc!important}.purple-400-border{border-color:#ab47bc!important}.purple-400-border-top{border-top-color:#ab47bc!important}.purple-400-border-right{border-right-color:#ab47bc!important}.purple-400-border-bottom{border-bottom-color:#ab47bc!important}.purple-400-border-left{border-left-color:#ab47bc!important}.purple-500-bg{background-color:#9c27b0!important}.md-purple-500-bg{background-color:#9c27b0!important;color:rgba(255,255,255,.87)}.purple-500-fg{color:#9c27b0!important}.purple-500-border{border-color:#9c27b0!important}.purple-500-border-top{border-top-color:#9c27b0!important}.purple-500-border-right{border-right-color:#9c27b0!important}.purple-500-border-bottom{border-bottom-color:#9c27b0!important}.purple-500-border-left{border-left-color:#9c27b0!important}.md-purple-bg{background-color:#9c27b0!important;color:rgba(255,255,255,.87)}.purple-bg{background-color:#9c27b0!important}.purple-fg{color:#9c27b0!important}.purple-border{border-color:#9c27b0!important}.purple-border-top{border-top-color:#9c27b0!important}.purple-border-right{border-right-color:#9c27b0!important}.purple-border-bottom{border-bottom-color:#9c27b0!important}.purple-border-left{border-left-color:#9c27b0!important}.purple-600-bg{background-color:#8e24aa!important}.md-purple-600-bg{background-color:#8e24aa!important;color:rgba(255,255,255,.87)}.purple-600-fg{color:#8e24aa!important}.purple-600-border{border-color:#8e24aa!important}.purple-600-border-top{border-top-color:#8e24aa!important}.purple-600-border-right{border-right-color:#8e24aa!important}.purple-600-border-bottom{border-bottom-color:#8e24aa!important}.purple-600-border-left{border-left-color:#8e24aa!important}.purple-700-bg{background-color:#7b1fa2!important}.md-purple-700-bg{background-color:#7b1fa2!important;color:rgba(255,255,255,.87)}.purple-700-fg{color:#7b1fa2!important}.purple-700-border{border-color:#7b1fa2!important}.purple-700-border-top{border-top-color:#7b1fa2!important}.purple-700-border-right{border-right-color:#7b1fa2!important}.purple-700-border-bottom{border-bottom-color:#7b1fa2!important}.purple-700-border-left{border-left-color:#7b1fa2!important}.purple-800-bg{background-color:#6a1b9a!important}.md-purple-800-bg{background-color:#6a1b9a!important;color:rgba(255,255,255,.87)}.purple-800-fg{color:#6a1b9a!important}.purple-800-border{border-color:#6a1b9a!important}.purple-800-border-top{border-top-color:#6a1b9a!important}.purple-800-border-right{border-right-color:#6a1b9a!important}.purple-800-border-bottom{border-bottom-color:#6a1b9a!important}.purple-800-border-left{border-left-color:#6a1b9a!important}.purple-900-bg{background-color:#4a148c!important}.md-purple-900-bg{background-color:#4a148c!important;color:rgba(255,255,255,.87)}.purple-900-fg{color:#4a148c!important}.purple-900-border{border-color:#4a148c!important}.purple-900-border-top{border-top-color:#4a148c!important}.purple-900-border-right{border-right-color:#4a148c!important}.purple-900-border-bottom{border-bottom-color:#4a148c!important}.purple-900-border-left{border-left-color:#4a148c!important}.purple-A100-bg{background-color:#ea80fc!important}.md-purple-A100-bg{background-color:#ea80fc!important;color:rgba(0,0,0,.87)}.purple-A100-fg{color:#ea80fc!important}.purple-A100-border{border-color:#ea80fc!important}.purple-A100-border-top{border-top-color:#ea80fc!important}.purple-A100-border-right{border-right-color:#ea80fc!important}.purple-A100-border-bottom{border-bottom-color:#ea80fc!important}.purple-A100-border-left{border-left-color:#ea80fc!important}.purple-A200-bg{background-color:#e040fb!important}.md-purple-A200-bg{background-color:#e040fb!important;color:#fff}.purple-A200-fg{color:#e040fb!important}.purple-A200-border{border-color:#e040fb!important}.purple-A200-border-top{border-top-color:#e040fb!important}.purple-A200-border-right{border-right-color:#e040fb!important}.purple-A200-border-bottom{border-bottom-color:#e040fb!important}.purple-A200-border-left{border-left-color:#e040fb!important}.purple-A400-bg{background-color:#d500f9!important}.md-purple-A400-bg{background-color:#d500f9!important;color:#fff}.purple-A400-fg{color:#d500f9!important}.purple-A400-border{border-color:#d500f9!important}.purple-A400-border-top{border-top-color:#d500f9!important}.purple-A400-border-right{border-right-color:#d500f9!important}.purple-A400-border-bottom{border-bottom-color:#d500f9!important}.purple-A400-border-left{border-left-color:#d500f9!important}.purple-A700-bg{background-color:#a0f!important}.md-purple-A700-bg{background-color:#a0f!important;color:#fff}.purple-A700-fg{color:#a0f!important}.purple-A700-border{border-color:#a0f!important}.purple-A700-border-top{border-top-color:#a0f!important}.purple-A700-border-right{border-right-color:#a0f!important}.purple-A700-border-bottom{border-bottom-color:#a0f!important}.purple-A700-border-left{border-left-color:#a0f!important}.deep-purple-50-bg{background-color:#ede7f6!important}.md-deep-purple-50-bg{background-color:#ede7f6!important;color:rgba(0,0,0,.87)}.deep-purple-50-fg{color:#ede7f6!important}.deep-purple-50-border{border-color:#ede7f6!important}.deep-purple-50-border-top{border-top-color:#ede7f6!important}.deep-purple-50-border-right{border-right-color:#ede7f6!important}.deep-purple-50-border-bottom{border-bottom-color:#ede7f6!important}.deep-purple-50-border-left{border-left-color:#ede7f6!important}.deep-purple-100-bg{background-color:#d1c4e9!important}.md-deep-purple-100-bg{background-color:#d1c4e9!important;color:rgba(0,0,0,.87)}.deep-purple-100-fg{color:#d1c4e9!important}.deep-purple-100-border{border-color:#d1c4e9!important}.deep-purple-100-border-top{border-top-color:#d1c4e9!important}.deep-purple-100-border-right{border-right-color:#d1c4e9!important}.deep-purple-100-border-bottom{border-bottom-color:#d1c4e9!important}.deep-purple-100-border-left{border-left-color:#d1c4e9!important}.deep-purple-200-bg{background-color:#b39ddb!important}.md-deep-purple-200-bg{background-color:#b39ddb!important;color:rgba(0,0,0,.87)}.deep-purple-200-fg{color:#b39ddb!important}.deep-purple-200-border{border-color:#b39ddb!important}.deep-purple-200-border-top{border-top-color:#b39ddb!important}.deep-purple-200-border-right{border-right-color:#b39ddb!important}.deep-purple-200-border-bottom{border-bottom-color:#b39ddb!important}.deep-purple-200-border-left{border-left-color:#b39ddb!important}.deep-purple-300-bg{background-color:#9575cd!important}.md-deep-purple-300-bg{background-color:#9575cd!important;color:#fff}.deep-purple-300-fg{color:#9575cd!important}.deep-purple-300-border{border-color:#9575cd!important}.deep-purple-300-border-top{border-top-color:#9575cd!important}.deep-purple-300-border-right{border-right-color:#9575cd!important}.deep-purple-300-border-bottom{border-bottom-color:#9575cd!important}.deep-purple-300-border-left{border-left-color:#9575cd!important}.deep-purple-400-bg{background-color:#7e57c2!important}.md-deep-purple-400-bg{background-color:#7e57c2!important;color:#fff}.deep-purple-400-fg{color:#7e57c2!important}.deep-purple-400-border{border-color:#7e57c2!important}.deep-purple-400-border-top{border-top-color:#7e57c2!important}.deep-purple-400-border-right{border-right-color:#7e57c2!important}.deep-purple-400-border-bottom{border-bottom-color:#7e57c2!important}.deep-purple-400-border-left{border-left-color:#7e57c2!important}.deep-purple-500-bg{background-color:#673ab7!important}.md-deep-purple-500-bg{background-color:#673ab7!important;color:rgba(255,255,255,.87)}.deep-purple-500-fg{color:#673ab7!important}.deep-purple-500-border{border-color:#673ab7!important}.deep-purple-500-border-top{border-top-color:#673ab7!important}.deep-purple-500-border-right{border-right-color:#673ab7!important}.deep-purple-500-border-bottom{border-bottom-color:#673ab7!important}.deep-purple-500-border-left{border-left-color:#673ab7!important}.md-deep-purple-bg{background-color:#673ab7!important;color:rgba(255,255,255,.87)}.deep-purple-bg{background-color:#673ab7!important}.deep-purple-fg{color:#673ab7!important}.deep-purple-border{border-color:#673ab7!important}.deep-purple-border-top{border-top-color:#673ab7!important}.deep-purple-border-right{border-right-color:#673ab7!important}.deep-purple-border-bottom{border-bottom-color:#673ab7!important}.deep-purple-border-left{border-left-color:#673ab7!important}.deep-purple-600-bg{background-color:#5e35b1!important}.md-deep-purple-600-bg{background-color:#5e35b1!important;color:rgba(255,255,255,.87)}.deep-purple-600-fg{color:#5e35b1!important}.deep-purple-600-border{border-color:#5e35b1!important}.deep-purple-600-border-top{border-top-color:#5e35b1!important}.deep-purple-600-border-right{border-right-color:#5e35b1!important}.deep-purple-600-border-bottom{border-bottom-color:#5e35b1!important}.deep-purple-600-border-left{border-left-color:#5e35b1!important}.deep-purple-700-bg{background-color:#512da8!important}.md-deep-purple-700-bg{background-color:#512da8!important;color:rgba(255,255,255,.87)}.deep-purple-700-fg{color:#512da8!important}.deep-purple-700-border{border-color:#512da8!important}.deep-purple-700-border-top{border-top-color:#512da8!important}.deep-purple-700-border-right{border-right-color:#512da8!important}.deep-purple-700-border-bottom{border-bottom-color:#512da8!important}.deep-purple-700-border-left{border-left-color:#512da8!important}.deep-purple-800-bg{background-color:#4527a0!important}.md-deep-purple-800-bg{background-color:#4527a0!important;color:rgba(255,255,255,.87)}.deep-purple-800-fg{color:#4527a0!important}.deep-purple-800-border{border-color:#4527a0!important}.deep-purple-800-border-top{border-top-color:#4527a0!important}.deep-purple-800-border-right{border-right-color:#4527a0!important}.deep-purple-800-border-bottom{border-bottom-color:#4527a0!important}.deep-purple-800-border-left{border-left-color:#4527a0!important}.deep-purple-900-bg{background-color:#311b92!important}.md-deep-purple-900-bg{background-color:#311b92!important;color:rgba(255,255,255,.87)}.deep-purple-900-fg{color:#311b92!important}.deep-purple-900-border{border-color:#311b92!important}.deep-purple-900-border-top{border-top-color:#311b92!important}.deep-purple-900-border-right{border-right-color:#311b92!important}.deep-purple-900-border-bottom{border-bottom-color:#311b92!important}.deep-purple-900-border-left{border-left-color:#311b92!important}.deep-purple-A100-bg{background-color:#b388ff!important}.md-deep-purple-A100-bg{background-color:#b388ff!important;color:rgba(0,0,0,.87)}.deep-purple-A100-fg{color:#b388ff!important}.deep-purple-A100-border{border-color:#b388ff!important}.deep-purple-A100-border-top{border-top-color:#b388ff!important}.deep-purple-A100-border-right{border-right-color:#b388ff!important}.deep-purple-A100-border-bottom{border-bottom-color:#b388ff!important}.deep-purple-A100-border-left{border-left-color:#b388ff!important}.deep-purple-A200-bg{background-color:#7c4dff!important}.md-deep-purple-A200-bg{background-color:#7c4dff!important;color:#fff}.deep-purple-A200-fg{color:#7c4dff!important}.deep-purple-A200-border{border-color:#7c4dff!important}.deep-purple-A200-border-top{border-top-color:#7c4dff!important}.deep-purple-A200-border-right{border-right-color:#7c4dff!important}.deep-purple-A200-border-bottom{border-bottom-color:#7c4dff!important}.deep-purple-A200-border-left{border-left-color:#7c4dff!important}.deep-purple-A400-bg{background-color:#651fff!important}.md-deep-purple-A400-bg{background-color:#651fff!important;color:rgba(255,255,255,.87)}.deep-purple-A400-fg{color:#651fff!important}.deep-purple-A400-border{border-color:#651fff!important}.deep-purple-A400-border-top{border-top-color:#651fff!important}.deep-purple-A400-border-right{border-right-color:#651fff!important}.deep-purple-A400-border-bottom{border-bottom-color:#651fff!important}.deep-purple-A400-border-left{border-left-color:#651fff!important}.deep-purple-A700-bg{background-color:#6200ea!important}.md-deep-purple-A700-bg{background-color:#6200ea!important;color:rgba(255,255,255,.87)}.deep-purple-A700-fg{color:#6200ea!important}.deep-purple-A700-border{border-color:#6200ea!important}.deep-purple-A700-border-top{border-top-color:#6200ea!important}.deep-purple-A700-border-right{border-right-color:#6200ea!important}.deep-purple-A700-border-bottom{border-bottom-color:#6200ea!important}.deep-purple-A700-border-left{border-left-color:#6200ea!important}.indigo-50-bg{background-color:#e8eaf6!important}.md-indigo-50-bg{background-color:#e8eaf6!important;color:rgba(0,0,0,.87)}.indigo-50-fg{color:#e8eaf6!important}.indigo-50-border{border-color:#e8eaf6!important}.indigo-50-border-top{border-top-color:#e8eaf6!important}.indigo-50-border-right{border-right-color:#e8eaf6!important}.indigo-50-border-bottom{border-bottom-color:#e8eaf6!important}.indigo-50-border-left{border-left-color:#e8eaf6!important}.indigo-100-bg{background-color:#c5cae9!important}.md-indigo-100-bg{background-color:#c5cae9!important;color:rgba(0,0,0,.87)}.indigo-100-fg{color:#c5cae9!important}.indigo-100-border{border-color:#c5cae9!important}.indigo-100-border-top{border-top-color:#c5cae9!important}.indigo-100-border-right{border-right-color:#c5cae9!important}.indigo-100-border-bottom{border-bottom-color:#c5cae9!important}.indigo-100-border-left{border-left-color:#c5cae9!important}.indigo-200-bg{background-color:#9fa8da!important}.md-indigo-200-bg{background-color:#9fa8da!important;color:rgba(0,0,0,.87)}.indigo-200-fg{color:#9fa8da!important}.indigo-200-border{border-color:#9fa8da!important}.indigo-200-border-top{border-top-color:#9fa8da!important}.indigo-200-border-right{border-right-color:#9fa8da!important}.indigo-200-border-bottom{border-bottom-color:#9fa8da!important}.indigo-200-border-left{border-left-color:#9fa8da!important}.indigo-300-bg{background-color:#7986cb!important}.md-indigo-300-bg{background-color:#7986cb!important;color:#fff}.indigo-300-fg{color:#7986cb!important}.indigo-300-border{border-color:#7986cb!important}.indigo-300-border-top{border-top-color:#7986cb!important}.indigo-300-border-right{border-right-color:#7986cb!important}.indigo-300-border-bottom{border-bottom-color:#7986cb!important}.indigo-300-border-left{border-left-color:#7986cb!important}.indigo-400-bg{background-color:#5c6bc0!important}.md-indigo-400-bg{background-color:#5c6bc0!important;color:#fff}.indigo-400-fg{color:#5c6bc0!important}.indigo-400-border{border-color:#5c6bc0!important}.indigo-400-border-top{border-top-color:#5c6bc0!important}.indigo-400-border-right{border-right-color:#5c6bc0!important}.indigo-400-border-bottom{border-bottom-color:#5c6bc0!important}.indigo-400-border-left{border-left-color:#5c6bc0!important}.indigo-500-bg{background-color:#3f51b5!important}.md-indigo-500-bg{background-color:#3f51b5!important;color:rgba(255,255,255,.87)}.indigo-500-fg{color:#3f51b5!important}.indigo-500-border{border-color:#3f51b5!important}.indigo-500-border-top{border-top-color:#3f51b5!important}.indigo-500-border-right{border-right-color:#3f51b5!important}.indigo-500-border-bottom{border-bottom-color:#3f51b5!important}.indigo-500-border-left{border-left-color:#3f51b5!important}.md-indigo-bg{background-color:#3f51b5!important;color:rgba(255,255,255,.87)}.indigo-bg{background-color:#3f51b5!important}.indigo-fg{color:#3f51b5!important}.indigo-border{border-color:#3f51b5!important}.indigo-border-top{border-top-color:#3f51b5!important}.indigo-border-right{border-right-color:#3f51b5!important}.indigo-border-bottom{border-bottom-color:#3f51b5!important}.indigo-border-left{border-left-color:#3f51b5!important}.indigo-600-bg{background-color:#3949ab!important}.md-indigo-600-bg{background-color:#3949ab!important;color:rgba(255,255,255,.87)}.indigo-600-fg{color:#3949ab!important}.indigo-600-border{border-color:#3949ab!important}.indigo-600-border-top{border-top-color:#3949ab!important}.indigo-600-border-right{border-right-color:#3949ab!important}.indigo-600-border-bottom{border-bottom-color:#3949ab!important}.indigo-600-border-left{border-left-color:#3949ab!important}.indigo-700-bg{background-color:#303f9f!important}.md-indigo-700-bg{background-color:#303f9f!important;color:rgba(255,255,255,.87)}.indigo-700-fg{color:#303f9f!important}.indigo-700-border{border-color:#303f9f!important}.indigo-700-border-top{border-top-color:#303f9f!important}.indigo-700-border-right{border-right-color:#303f9f!important}.indigo-700-border-bottom{border-bottom-color:#303f9f!important}.indigo-700-border-left{border-left-color:#303f9f!important}.indigo-800-bg{background-color:#283593!important}.md-indigo-800-bg{background-color:#283593!important;color:rgba(255,255,255,.87)}.indigo-800-fg{color:#283593!important}.indigo-800-border{border-color:#283593!important}.indigo-800-border-top{border-top-color:#283593!important}.indigo-800-border-right{border-right-color:#283593!important}.indigo-800-border-bottom{border-bottom-color:#283593!important}.indigo-800-border-left{border-left-color:#283593!important}.indigo-900-bg{background-color:#1a237e!important}.md-indigo-900-bg{background-color:#1a237e!important;color:rgba(255,255,255,.87)}.indigo-900-fg{color:#1a237e!important}.indigo-900-border{border-color:#1a237e!important}.indigo-900-border-top{border-top-color:#1a237e!important}.indigo-900-border-right{border-right-color:#1a237e!important}.indigo-900-border-bottom{border-bottom-color:#1a237e!important}.indigo-900-border-left{border-left-color:#1a237e!important}.indigo-A100-bg{background-color:#8c9eff!important}.md-indigo-A100-bg{background-color:#8c9eff!important;color:rgba(0,0,0,.87)}.indigo-A100-fg{color:#8c9eff!important}.indigo-A100-border{border-color:#8c9eff!important}.indigo-A100-border-top{border-top-color:#8c9eff!important}.indigo-A100-border-right{border-right-color:#8c9eff!important}.indigo-A100-border-bottom{border-bottom-color:#8c9eff!important}.indigo-A100-border-left{border-left-color:#8c9eff!important}.indigo-A200-bg{background-color:#536dfe!important}.md-indigo-A200-bg{background-color:#536dfe!important;color:#fff}.indigo-A200-fg{color:#536dfe!important}.indigo-A200-border{border-color:#536dfe!important}.indigo-A200-border-top{border-top-color:#536dfe!important}.indigo-A200-border-right{border-right-color:#536dfe!important}.indigo-A200-border-bottom{border-bottom-color:#536dfe!important}.indigo-A200-border-left{border-left-color:#536dfe!important}.indigo-A400-bg{background-color:#3d5afe!important}.md-indigo-A400-bg{background-color:#3d5afe!important;color:#fff}.indigo-A400-fg{color:#3d5afe!important}.indigo-A400-border{border-color:#3d5afe!important}.indigo-A400-border-top{border-top-color:#3d5afe!important}.indigo-A400-border-right{border-right-color:#3d5afe!important}.indigo-A400-border-bottom{border-bottom-color:#3d5afe!important}.indigo-A400-border-left{border-left-color:#3d5afe!important}.indigo-A700-bg{background-color:#304ffe!important}.md-indigo-A700-bg{background-color:#304ffe!important;color:rgba(255,255,255,.87)}.indigo-A700-fg{color:#304ffe!important}.indigo-A700-border{border-color:#304ffe!important}.indigo-A700-border-top{border-top-color:#304ffe!important}.indigo-A700-border-right{border-right-color:#304ffe!important}.indigo-A700-border-bottom{border-bottom-color:#304ffe!important}.indigo-A700-border-left{border-left-color:#304ffe!important}.blue-50-bg{background-color:#e3f2fd!important}.md-blue-50-bg{background-color:#e3f2fd!important;color:rgba(0,0,0,.87)}.blue-50-fg{color:#e3f2fd!important}.blue-50-border{border-color:#e3f2fd!important}.blue-50-border-top{border-top-color:#e3f2fd!important}.blue-50-border-right{border-right-color:#e3f2fd!important}.blue-50-border-bottom{border-bottom-color:#e3f2fd!important}.blue-50-border-left{border-left-color:#e3f2fd!important}.blue-100-bg{background-color:#bbdefb!important}.md-blue-100-bg{background-color:#bbdefb!important;color:rgba(0,0,0,.87)}.blue-100-fg{color:#bbdefb!important}.blue-100-border{border-color:#bbdefb!important}.blue-100-border-top{border-top-color:#bbdefb!important}.blue-100-border-right{border-right-color:#bbdefb!important}.blue-100-border-bottom{border-bottom-color:#bbdefb!important}.blue-100-border-left{border-left-color:#bbdefb!important}.blue-200-bg{background-color:#90caf9!important}.md-blue-200-bg{background-color:#90caf9!important;color:rgba(0,0,0,.87)}.blue-200-fg{color:#90caf9!important}.blue-200-border{border-color:#90caf9!important}.blue-200-border-top{border-top-color:#90caf9!important}.blue-200-border-right{border-right-color:#90caf9!important}.blue-200-border-bottom{border-bottom-color:#90caf9!important}.blue-200-border-left{border-left-color:#90caf9!important}.blue-300-bg{background-color:#64b5f6!important}.md-blue-300-bg{background-color:#64b5f6!important;color:rgba(0,0,0,.87)}.blue-300-fg{color:#64b5f6!important}.blue-300-border{border-color:#64b5f6!important}.blue-300-border-top{border-top-color:#64b5f6!important}.blue-300-border-right{border-right-color:#64b5f6!important}.blue-300-border-bottom{border-bottom-color:#64b5f6!important}.blue-300-border-left{border-left-color:#64b5f6!important}.blue-400-bg{background-color:#42a5f5!important}.md-blue-400-bg{background-color:#42a5f5!important;color:rgba(0,0,0,.87)}.blue-400-fg{color:#42a5f5!important}.blue-400-border{border-color:#42a5f5!important}.blue-400-border-top{border-top-color:#42a5f5!important}.blue-400-border-right{border-right-color:#42a5f5!important}.blue-400-border-bottom{border-bottom-color:#42a5f5!important}.blue-400-border-left{border-left-color:#42a5f5!important}.blue-500-bg{background-color:#2196f3!important}.md-blue-500-bg{background-color:#2196f3!important;color:#fff}.blue-500-fg{color:#2196f3!important}.blue-500-border{border-color:#2196f3!important}.blue-500-border-top{border-top-color:#2196f3!important}.blue-500-border-right{border-right-color:#2196f3!important}.blue-500-border-bottom{border-bottom-color:#2196f3!important}.blue-500-border-left{border-left-color:#2196f3!important}.md-blue-bg{background-color:#2196f3!important;color:#fff}.blue-bg{background-color:#2196f3!important}.blue-fg{color:#2196f3!important}.blue-border{border-color:#2196f3!important}.blue-border-top{border-top-color:#2196f3!important}.blue-border-right{border-right-color:#2196f3!important}.blue-border-bottom{border-bottom-color:#2196f3!important}.blue-border-left{border-left-color:#2196f3!important}.blue-600-bg{background-color:#1e88e5!important}.md-blue-600-bg{background-color:#1e88e5!important;color:#fff}.blue-600-fg{color:#1e88e5!important}.blue-600-border{border-color:#1e88e5!important}.blue-600-border-top{border-top-color:#1e88e5!important}.blue-600-border-right{border-right-color:#1e88e5!important}.blue-600-border-bottom{border-bottom-color:#1e88e5!important}.blue-600-border-left{border-left-color:#1e88e5!important}.blue-700-bg{background-color:#1976d2!important}.md-blue-700-bg{background-color:#1976d2!important;color:#fff}.blue-700-fg{color:#1976d2!important}.blue-700-border{border-color:#1976d2!important}.blue-700-border-top{border-top-color:#1976d2!important}.blue-700-border-right{border-right-color:#1976d2!important}.blue-700-border-bottom{border-bottom-color:#1976d2!important}.blue-700-border-left{border-left-color:#1976d2!important}.blue-800-bg{background-color:#1565c0!important}.md-blue-800-bg{background-color:#1565c0!important;color:rgba(255,255,255,.87)}.blue-800-fg{color:#1565c0!important}.blue-800-border{border-color:#1565c0!important}.blue-800-border-top{border-top-color:#1565c0!important}.blue-800-border-right{border-right-color:#1565c0!important}.blue-800-border-bottom{border-bottom-color:#1565c0!important}.blue-800-border-left{border-left-color:#1565c0!important}.blue-900-bg{background-color:#0d47a1!important}.md-blue-900-bg{background-color:#0d47a1!important;color:rgba(255,255,255,.87)}.blue-900-fg{color:#0d47a1!important}.blue-900-border{border-color:#0d47a1!important}.blue-900-border-top{border-top-color:#0d47a1!important}.blue-900-border-right{border-right-color:#0d47a1!important}.blue-900-border-bottom{border-bottom-color:#0d47a1!important}.blue-900-border-left{border-left-color:#0d47a1!important}.blue-A100-bg{background-color:#82b1ff!important}.md-blue-A100-bg{background-color:#82b1ff!important;color:rgba(0,0,0,.87)}.blue-A100-fg{color:#82b1ff!important}.blue-A100-border{border-color:#82b1ff!important}.blue-A100-border-top{border-top-color:#82b1ff!important}.blue-A100-border-right{border-right-color:#82b1ff!important}.blue-A100-border-bottom{border-bottom-color:#82b1ff!important}.blue-A100-border-left{border-left-color:#82b1ff!important}.blue-A200-bg{background-color:#448aff!important}.md-blue-A200-bg{background-color:#448aff!important;color:#fff}.blue-A200-fg{color:#448aff!important}.blue-A200-border{border-color:#448aff!important}.blue-A200-border-top{border-top-color:#448aff!important}.blue-A200-border-right{border-right-color:#448aff!important}.blue-A200-border-bottom{border-bottom-color:#448aff!important}.blue-A200-border-left{border-left-color:#448aff!important}.blue-A400-bg{background-color:#2979ff!important}.md-blue-A400-bg{background-color:#2979ff!important;color:#fff}.blue-A400-fg{color:#2979ff!important}.blue-A400-border{border-color:#2979ff!important}.blue-A400-border-top{border-top-color:#2979ff!important}.blue-A400-border-right{border-right-color:#2979ff!important}.blue-A400-border-bottom{border-bottom-color:#2979ff!important}.blue-A400-border-left{border-left-color:#2979ff!important}.blue-A700-bg{background-color:#2962ff!important}.md-blue-A700-bg{background-color:#2962ff!important;color:#fff}.blue-A700-fg{color:#2962ff!important}.blue-A700-border{border-color:#2962ff!important}.blue-A700-border-top{border-top-color:#2962ff!important}.blue-A700-border-right{border-right-color:#2962ff!important}.blue-A700-border-bottom{border-bottom-color:#2962ff!important}.blue-A700-border-left{border-left-color:#2962ff!important}.light-blue-50-bg{background-color:#e1f5fe!important}.md-light-blue-50-bg{background-color:#e1f5fe!important;color:rgba(0,0,0,.87)}.light-blue-50-fg{color:#e1f5fe!important}.light-blue-50-border{border-color:#e1f5fe!important}.light-blue-50-border-top{border-top-color:#e1f5fe!important}.light-blue-50-border-right{border-right-color:#e1f5fe!important}.light-blue-50-border-bottom{border-bottom-color:#e1f5fe!important}.light-blue-50-border-left{border-left-color:#e1f5fe!important}.light-blue-100-bg{background-color:#b3e5fc!important}.md-light-blue-100-bg{background-color:#b3e5fc!important;color:rgba(0,0,0,.87)}.light-blue-100-fg{color:#b3e5fc!important}.light-blue-100-border{border-color:#b3e5fc!important}.light-blue-100-border-top{border-top-color:#b3e5fc!important}.light-blue-100-border-right{border-right-color:#b3e5fc!important}.light-blue-100-border-bottom{border-bottom-color:#b3e5fc!important}.light-blue-100-border-left{border-left-color:#b3e5fc!important}.light-blue-200-bg{background-color:#81d4fa!important}.md-light-blue-200-bg{background-color:#81d4fa!important;color:rgba(0,0,0,.87)}.light-blue-200-fg{color:#81d4fa!important}.light-blue-200-border{border-color:#81d4fa!important}.light-blue-200-border-top{border-top-color:#81d4fa!important}.light-blue-200-border-right{border-right-color:#81d4fa!important}.light-blue-200-border-bottom{border-bottom-color:#81d4fa!important}.light-blue-200-border-left{border-left-color:#81d4fa!important}.light-blue-300-bg{background-color:#4fc3f7!important}.md-light-blue-300-bg{background-color:#4fc3f7!important;color:rgba(0,0,0,.87)}.light-blue-300-fg{color:#4fc3f7!important}.light-blue-300-border{border-color:#4fc3f7!important}.light-blue-300-border-top{border-top-color:#4fc3f7!important}.light-blue-300-border-right{border-right-color:#4fc3f7!important}.light-blue-300-border-bottom{border-bottom-color:#4fc3f7!important}.light-blue-300-border-left{border-left-color:#4fc3f7!important}.light-blue-400-bg{background-color:#29b6f6!important}.md-light-blue-400-bg{background-color:#29b6f6!important;color:rgba(0,0,0,.87)}.light-blue-400-fg{color:#29b6f6!important}.light-blue-400-border{border-color:#29b6f6!important}.light-blue-400-border-top{border-top-color:#29b6f6!important}.light-blue-400-border-right{border-right-color:#29b6f6!important}.light-blue-400-border-bottom{border-bottom-color:#29b6f6!important}.light-blue-400-border-left{border-left-color:#29b6f6!important}.light-blue-500-bg{background-color:#03a9f4!important}.md-light-blue-500-bg{background-color:#03a9f4!important;color:rgba(0,0,0,.87)}.light-blue-500-fg{color:#03a9f4!important}.light-blue-500-border{border-color:#03a9f4!important}.light-blue-500-border-top{border-top-color:#03a9f4!important}.light-blue-500-border-right{border-right-color:#03a9f4!important}.light-blue-500-border-bottom{border-bottom-color:#03a9f4!important}.light-blue-500-border-left{border-left-color:#03a9f4!important}.md-light-blue-bg{background-color:#03a9f4!important;color:rgba(0,0,0,.87)}.light-blue-bg{background-color:#03a9f4!important}.light-blue-fg{color:#03a9f4!important}.light-blue-border{border-color:#03a9f4!important}.light-blue-border-top{border-top-color:#03a9f4!important}.light-blue-border-right{border-right-color:#03a9f4!important}.light-blue-border-bottom{border-bottom-color:#03a9f4!important}.light-blue-border-left{border-left-color:#03a9f4!important}.light-blue-600-bg{background-color:#039be5!important}.md-light-blue-600-bg{background-color:#039be5!important;color:#fff}.light-blue-600-fg{color:#039be5!important}.light-blue-600-border{border-color:#039be5!important}.light-blue-600-border-top{border-top-color:#039be5!important}.light-blue-600-border-right{border-right-color:#039be5!important}.light-blue-600-border-bottom{border-bottom-color:#039be5!important}.light-blue-600-border-left{border-left-color:#039be5!important}.light-blue-700-bg{background-color:#0288d1!important}.md-light-blue-700-bg{background-color:#0288d1!important;color:#fff}.light-blue-700-fg{color:#0288d1!important}.light-blue-700-border{border-color:#0288d1!important}.light-blue-700-border-top{border-top-color:#0288d1!important}.light-blue-700-border-right{border-right-color:#0288d1!important}.light-blue-700-border-bottom{border-bottom-color:#0288d1!important}.light-blue-700-border-left{border-left-color:#0288d1!important}.light-blue-800-bg{background-color:#0277bd!important}.md-light-blue-800-bg{background-color:#0277bd!important;color:#fff}.light-blue-800-fg{color:#0277bd!important}.light-blue-800-border{border-color:#0277bd!important}.light-blue-800-border-top{border-top-color:#0277bd!important}.light-blue-800-border-right{border-right-color:#0277bd!important}.light-blue-800-border-bottom{border-bottom-color:#0277bd!important}.light-blue-800-border-left{border-left-color:#0277bd!important}.light-blue-900-bg{background-color:#01579b!important}.md-light-blue-900-bg{background-color:#01579b!important;color:#fff}.light-blue-900-fg{color:#01579b!important}.light-blue-900-border{border-color:#01579b!important}.light-blue-900-border-top{border-top-color:#01579b!important}.light-blue-900-border-right{border-right-color:#01579b!important}.light-blue-900-border-bottom{border-bottom-color:#01579b!important}.light-blue-900-border-left{border-left-color:#01579b!important}.light-blue-A100-bg{background-color:#80d8ff!important}.md-light-blue-A100-bg{background-color:#80d8ff!important;color:rgba(0,0,0,.87)}.light-blue-A100-fg{color:#80d8ff!important}.light-blue-A100-border{border-color:#80d8ff!important}.light-blue-A100-border-top{border-top-color:#80d8ff!important}.light-blue-A100-border-right{border-right-color:#80d8ff!important}.light-blue-A100-border-bottom{border-bottom-color:#80d8ff!important}.light-blue-A100-border-left{border-left-color:#80d8ff!important}.light-blue-A200-bg{background-color:#40c4ff!important}.md-light-blue-A200-bg{background-color:#40c4ff!important;color:rgba(0,0,0,.87)}.light-blue-A200-fg{color:#40c4ff!important}.light-blue-A200-border{border-color:#40c4ff!important}.light-blue-A200-border-top{border-top-color:#40c4ff!important}.light-blue-A200-border-right{border-right-color:#40c4ff!important}.light-blue-A200-border-bottom{border-bottom-color:#40c4ff!important}.light-blue-A200-border-left{border-left-color:#40c4ff!important}.light-blue-A400-bg{background-color:#00b0ff!important}.md-light-blue-A400-bg{background-color:#00b0ff!important;color:rgba(0,0,0,.87)}.light-blue-A400-fg{color:#00b0ff!important}.light-blue-A400-border{border-color:#00b0ff!important}.light-blue-A400-border-top{border-top-color:#00b0ff!important}.light-blue-A400-border-right{border-right-color:#00b0ff!important}.light-blue-A400-border-bottom{border-bottom-color:#00b0ff!important}.light-blue-A400-border-left{border-left-color:#00b0ff!important}.light-blue-A700-bg{background-color:#0091ea!important}.md-light-blue-A700-bg{background-color:#0091ea!important;color:#fff}.light-blue-A700-fg{color:#0091ea!important}.light-blue-A700-border{border-color:#0091ea!important}.light-blue-A700-border-top{border-top-color:#0091ea!important}.light-blue-A700-border-right{border-right-color:#0091ea!important}.light-blue-A700-border-bottom{border-bottom-color:#0091ea!important}.light-blue-A700-border-left{border-left-color:#0091ea!important}.cyan-50-bg{background-color:#e0f7fa!important}.md-cyan-50-bg{background-color:#e0f7fa!important;color:rgba(0,0,0,.87)}.cyan-50-fg{color:#e0f7fa!important}.cyan-50-border{border-color:#e0f7fa!important}.cyan-50-border-top{border-top-color:#e0f7fa!important}.cyan-50-border-right{border-right-color:#e0f7fa!important}.cyan-50-border-bottom{border-bottom-color:#e0f7fa!important}.cyan-50-border-left{border-left-color:#e0f7fa!important}.cyan-100-bg{background-color:#b2ebf2!important}.md-cyan-100-bg{background-color:#b2ebf2!important;color:rgba(0,0,0,.87)}.cyan-100-fg{color:#b2ebf2!important}.cyan-100-border{border-color:#b2ebf2!important}.cyan-100-border-top{border-top-color:#b2ebf2!important}.cyan-100-border-right{border-right-color:#b2ebf2!important}.cyan-100-border-bottom{border-bottom-color:#b2ebf2!important}.cyan-100-border-left{border-left-color:#b2ebf2!important}.cyan-200-bg{background-color:#80deea!important}.md-cyan-200-bg{background-color:#80deea!important;color:rgba(0,0,0,.87)}.cyan-200-fg{color:#80deea!important}.cyan-200-border{border-color:#80deea!important}.cyan-200-border-top{border-top-color:#80deea!important}.cyan-200-border-right{border-right-color:#80deea!important}.cyan-200-border-bottom{border-bottom-color:#80deea!important}.cyan-200-border-left{border-left-color:#80deea!important}.cyan-300-bg{background-color:#4dd0e1!important}.md-cyan-300-bg{background-color:#4dd0e1!important;color:rgba(0,0,0,.87)}.cyan-300-fg{color:#4dd0e1!important}.cyan-300-border{border-color:#4dd0e1!important}.cyan-300-border-top{border-top-color:#4dd0e1!important}.cyan-300-border-right{border-right-color:#4dd0e1!important}.cyan-300-border-bottom{border-bottom-color:#4dd0e1!important}.cyan-300-border-left{border-left-color:#4dd0e1!important}.cyan-400-bg{background-color:#26c6da!important}.md-cyan-400-bg{background-color:#26c6da!important;color:rgba(0,0,0,.87)}.cyan-400-fg{color:#26c6da!important}.cyan-400-border{border-color:#26c6da!important}.cyan-400-border-top{border-top-color:#26c6da!important}.cyan-400-border-right{border-right-color:#26c6da!important}.cyan-400-border-bottom{border-bottom-color:#26c6da!important}.cyan-400-border-left{border-left-color:#26c6da!important}.cyan-500-bg{background-color:#00bcd4!important}.md-cyan-500-bg{background-color:#00bcd4!important;color:rgba(0,0,0,.87)}.cyan-500-fg{color:#00bcd4!important}.cyan-500-border{border-color:#00bcd4!important}.cyan-500-border-top{border-top-color:#00bcd4!important}.cyan-500-border-right{border-right-color:#00bcd4!important}.cyan-500-border-bottom{border-bottom-color:#00bcd4!important}.cyan-500-border-left{border-left-color:#00bcd4!important}.md-cyan-bg{background-color:#00bcd4!important;color:rgba(0,0,0,.87)}.cyan-bg{background-color:#00bcd4!important}.cyan-fg{color:#00bcd4!important}.cyan-border{border-color:#00bcd4!important}.cyan-border-top{border-top-color:#00bcd4!important}.cyan-border-right{border-right-color:#00bcd4!important}.cyan-border-bottom{border-bottom-color:#00bcd4!important}.cyan-border-left{border-left-color:#00bcd4!important}.cyan-600-bg{background-color:#00acc1!important}.md-cyan-600-bg{background-color:#00acc1!important;color:rgba(0,0,0,.87)}.cyan-600-fg{color:#00acc1!important}.cyan-600-border{border-color:#00acc1!important}.cyan-600-border-top{border-top-color:#00acc1!important}.cyan-600-border-right{border-right-color:#00acc1!important}.cyan-600-border-bottom{border-bottom-color:#00acc1!important}.cyan-600-border-left{border-left-color:#00acc1!important}.cyan-700-bg{background-color:#0097a7!important}.md-cyan-700-bg{background-color:#0097a7!important;color:#fff}.cyan-700-fg{color:#0097a7!important}.cyan-700-border{border-color:#0097a7!important}.cyan-700-border-top{border-top-color:#0097a7!important}.cyan-700-border-right{border-right-color:#0097a7!important}.cyan-700-border-bottom{border-bottom-color:#0097a7!important}.cyan-700-border-left{border-left-color:#0097a7!important}.cyan-800-bg{background-color:#00838f!important}.md-cyan-800-bg{background-color:#00838f!important;color:#fff}.cyan-800-fg{color:#00838f!important}.cyan-800-border{border-color:#00838f!important}.cyan-800-border-top{border-top-color:#00838f!important}.cyan-800-border-right{border-right-color:#00838f!important}.cyan-800-border-bottom{border-bottom-color:#00838f!important}.cyan-800-border-left{border-left-color:#00838f!important}.cyan-900-bg{background-color:#006064!important}.md-cyan-900-bg{background-color:#006064!important;color:#fff}.cyan-900-fg{color:#006064!important}.cyan-900-border{border-color:#006064!important}.cyan-900-border-top{border-top-color:#006064!important}.cyan-900-border-right{border-right-color:#006064!important}.cyan-900-border-bottom{border-bottom-color:#006064!important}.cyan-900-border-left{border-left-color:#006064!important}.cyan-A100-bg{background-color:#84ffff!important}.md-cyan-A100-bg{background-color:#84ffff!important;color:rgba(0,0,0,.87)}.cyan-A100-fg{color:#84ffff!important}.cyan-A100-border{border-color:#84ffff!important}.cyan-A100-border-top{border-top-color:#84ffff!important}.cyan-A100-border-right{border-right-color:#84ffff!important}.cyan-A100-border-bottom{border-bottom-color:#84ffff!important}.cyan-A100-border-left{border-left-color:#84ffff!important}.cyan-A200-bg{background-color:#18ffff!important}.md-cyan-A200-bg{background-color:#18ffff!important;color:rgba(0,0,0,.87)}.cyan-A200-fg{color:#18ffff!important}.cyan-A200-border{border-color:#18ffff!important}.cyan-A200-border-top{border-top-color:#18ffff!important}.cyan-A200-border-right{border-right-color:#18ffff!important}.cyan-A200-border-bottom{border-bottom-color:#18ffff!important}.cyan-A200-border-left{border-left-color:#18ffff!important}.cyan-A400-bg{background-color:#00e5ff!important}.md-cyan-A400-bg{background-color:#00e5ff!important;color:rgba(0,0,0,.87)}.cyan-A400-fg{color:#00e5ff!important}.cyan-A400-border{border-color:#00e5ff!important}.cyan-A400-border-top{border-top-color:#00e5ff!important}.cyan-A400-border-right{border-right-color:#00e5ff!important}.cyan-A400-border-bottom{border-bottom-color:#00e5ff!important}.cyan-A400-border-left{border-left-color:#00e5ff!important}.cyan-A700-bg{background-color:#00b8d4!important}.md-cyan-A700-bg{background-color:#00b8d4!important;color:rgba(0,0,0,.87)}.cyan-A700-fg{color:#00b8d4!important}.cyan-A700-border{border-color:#00b8d4!important}.cyan-A700-border-top{border-top-color:#00b8d4!important}.cyan-A700-border-right{border-right-color:#00b8d4!important}.cyan-A700-border-bottom{border-bottom-color:#00b8d4!important}.cyan-A700-border-left{border-left-color:#00b8d4!important}.teal-50-bg{background-color:#e0f2f1!important}.md-teal-50-bg{background-color:#e0f2f1!important;color:rgba(0,0,0,.87)}.teal-50-fg{color:#e0f2f1!important}.teal-50-border{border-color:#e0f2f1!important}.teal-50-border-top{border-top-color:#e0f2f1!important}.teal-50-border-right{border-right-color:#e0f2f1!important}.teal-50-border-bottom{border-bottom-color:#e0f2f1!important}.teal-50-border-left{border-left-color:#e0f2f1!important}.teal-100-bg{background-color:#b2dfdb!important}.md-teal-100-bg{background-color:#b2dfdb!important;color:rgba(0,0,0,.87)}.teal-100-fg{color:#b2dfdb!important}.teal-100-border{border-color:#b2dfdb!important}.teal-100-border-top{border-top-color:#b2dfdb!important}.teal-100-border-right{border-right-color:#b2dfdb!important}.teal-100-border-bottom{border-bottom-color:#b2dfdb!important}.teal-100-border-left{border-left-color:#b2dfdb!important}.teal-200-bg{background-color:#80cbc4!important}.md-teal-200-bg{background-color:#80cbc4!important;color:rgba(0,0,0,.87)}.teal-200-fg{color:#80cbc4!important}.teal-200-border{border-color:#80cbc4!important}.teal-200-border-top{border-top-color:#80cbc4!important}.teal-200-border-right{border-right-color:#80cbc4!important}.teal-200-border-bottom{border-bottom-color:#80cbc4!important}.teal-200-border-left{border-left-color:#80cbc4!important}.teal-300-bg{background-color:#4db6ac!important}.md-teal-300-bg{background-color:#4db6ac!important;color:rgba(0,0,0,.87)}.teal-300-fg{color:#4db6ac!important}.teal-300-border{border-color:#4db6ac!important}.teal-300-border-top{border-top-color:#4db6ac!important}.teal-300-border-right{border-right-color:#4db6ac!important}.teal-300-border-bottom{border-bottom-color:#4db6ac!important}.teal-300-border-left{border-left-color:#4db6ac!important}.teal-400-bg{background-color:#26a69a!important}.md-teal-400-bg{background-color:#26a69a!important;color:rgba(0,0,0,.87)}.teal-400-fg{color:#26a69a!important}.teal-400-border{border-color:#26a69a!important}.teal-400-border-top{border-top-color:#26a69a!important}.teal-400-border-right{border-right-color:#26a69a!important}.teal-400-border-bottom{border-bottom-color:#26a69a!important}.teal-400-border-left{border-left-color:#26a69a!important}.teal-500-bg{background-color:#009688!important}.md-teal-500-bg{background-color:#009688!important;color:#fff}.teal-500-fg{color:#009688!important}.teal-500-border{border-color:#009688!important}.teal-500-border-top{border-top-color:#009688!important}.teal-500-border-right{border-right-color:#009688!important}.teal-500-border-bottom{border-bottom-color:#009688!important}.teal-500-border-left{border-left-color:#009688!important}.md-teal-bg{background-color:#009688!important;color:#fff}.teal-bg{background-color:#009688!important}.teal-fg{color:#009688!important}.teal-border{border-color:#009688!important}.teal-border-top{border-top-color:#009688!important}.teal-border-right{border-right-color:#009688!important}.teal-border-bottom{border-bottom-color:#009688!important}.teal-border-left{border-left-color:#009688!important}.teal-600-bg{background-color:#00897b!important}.md-teal-600-bg{background-color:#00897b!important;color:#fff}.teal-600-fg{color:#00897b!important}.teal-600-border{border-color:#00897b!important}.teal-600-border-top{border-top-color:#00897b!important}.teal-600-border-right{border-right-color:#00897b!important}.teal-600-border-bottom{border-bottom-color:#00897b!important}.teal-600-border-left{border-left-color:#00897b!important}.teal-700-bg{background-color:#00796b!important}.md-teal-700-bg{background-color:#00796b!important;color:#fff}.teal-700-fg{color:#00796b!important}.teal-700-border{border-color:#00796b!important}.teal-700-border-top{border-top-color:#00796b!important}.teal-700-border-right{border-right-color:#00796b!important}.teal-700-border-bottom{border-bottom-color:#00796b!important}.teal-700-border-left{border-left-color:#00796b!important}.teal-800-bg{background-color:#00695c!important}.md-teal-800-bg{background-color:#00695c!important;color:rgba(255,255,255,.87)}.teal-800-fg{color:#00695c!important}.teal-800-border{border-color:#00695c!important}.teal-800-border-top{border-top-color:#00695c!important}.teal-800-border-right{border-right-color:#00695c!important}.teal-800-border-bottom{border-bottom-color:#00695c!important}.teal-800-border-left{border-left-color:#00695c!important}.teal-900-bg{background-color:#004d40!important}.md-teal-900-bg{background-color:#004d40!important;color:rgba(255,255,255,.87)}.teal-900-fg{color:#004d40!important}.teal-900-border{border-color:#004d40!important}.teal-900-border-top{border-top-color:#004d40!important}.teal-900-border-right{border-right-color:#004d40!important}.teal-900-border-bottom{border-bottom-color:#004d40!important}.teal-900-border-left{border-left-color:#004d40!important}.teal-A100-bg{background-color:#a7ffeb!important}.md-teal-A100-bg{background-color:#a7ffeb!important;color:rgba(0,0,0,.87)}.teal-A100-fg{color:#a7ffeb!important}.teal-A100-border{border-color:#a7ffeb!important}.teal-A100-border-top{border-top-color:#a7ffeb!important}.teal-A100-border-right{border-right-color:#a7ffeb!important}.teal-A100-border-bottom{border-bottom-color:#a7ffeb!important}.teal-A100-border-left{border-left-color:#a7ffeb!important}.teal-A200-bg{background-color:#64ffda!important}.md-teal-A200-bg{background-color:#64ffda!important;color:rgba(0,0,0,.87)}.teal-A200-fg{color:#64ffda!important}.teal-A200-border{border-color:#64ffda!important}.teal-A200-border-top{border-top-color:#64ffda!important}.teal-A200-border-right{border-right-color:#64ffda!important}.teal-A200-border-bottom{border-bottom-color:#64ffda!important}.teal-A200-border-left{border-left-color:#64ffda!important}.teal-A400-bg{background-color:#1de9b6!important}.md-teal-A400-bg{background-color:#1de9b6!important;color:rgba(0,0,0,.87)}.teal-A400-fg{color:#1de9b6!important}.teal-A400-border{border-color:#1de9b6!important}.teal-A400-border-top{border-top-color:#1de9b6!important}.teal-A400-border-right{border-right-color:#1de9b6!important}.teal-A400-border-bottom{border-bottom-color:#1de9b6!important}.teal-A400-border-left{border-left-color:#1de9b6!important}.teal-A700-bg{background-color:#00bfa5!important}.md-teal-A700-bg{background-color:#00bfa5!important;color:rgba(0,0,0,.87)}.teal-A700-fg{color:#00bfa5!important}.teal-A700-border{border-color:#00bfa5!important}.teal-A700-border-top{border-top-color:#00bfa5!important}.teal-A700-border-right{border-right-color:#00bfa5!important}.teal-A700-border-bottom{border-bottom-color:#00bfa5!important}.teal-A700-border-left{border-left-color:#00bfa5!important}.green-50-bg{background-color:#e8f5e9!important}.md-green-50-bg{background-color:#e8f5e9!important;color:rgba(0,0,0,.87)}.green-50-fg{color:#e8f5e9!important}.green-50-border{border-color:#e8f5e9!important}.green-50-border-top{border-top-color:#e8f5e9!important}.green-50-border-right{border-right-color:#e8f5e9!important}.green-50-border-bottom{border-bottom-color:#e8f5e9!important}.green-50-border-left{border-left-color:#e8f5e9!important}.green-100-bg{background-color:#c8e6c9!important}.md-green-100-bg{background-color:#c8e6c9!important;color:rgba(0,0,0,.87)}.green-100-fg{color:#c8e6c9!important}.green-100-border{border-color:#c8e6c9!important}.green-100-border-top{border-top-color:#c8e6c9!important}.green-100-border-right{border-right-color:#c8e6c9!important}.green-100-border-bottom{border-bottom-color:#c8e6c9!important}.green-100-border-left{border-left-color:#c8e6c9!important}.green-200-bg{background-color:#a5d6a7!important}.md-green-200-bg{background-color:#a5d6a7!important;color:rgba(0,0,0,.87)}.green-200-fg{color:#a5d6a7!important}.green-200-border{border-color:#a5d6a7!important}.green-200-border-top{border-top-color:#a5d6a7!important}.green-200-border-right{border-right-color:#a5d6a7!important}.green-200-border-bottom{border-bottom-color:#a5d6a7!important}.green-200-border-left{border-left-color:#a5d6a7!important}.green-300-bg{background-color:#81c784!important}.md-green-300-bg{background-color:#81c784!important;color:rgba(0,0,0,.87)}.green-300-fg{color:#81c784!important}.green-300-border{border-color:#81c784!important}.green-300-border-top{border-top-color:#81c784!important}.green-300-border-right{border-right-color:#81c784!important}.green-300-border-bottom{border-bottom-color:#81c784!important}.green-300-border-left{border-left-color:#81c784!important}.green-400-bg{background-color:#66bb6a!important}.md-green-400-bg{background-color:#66bb6a!important;color:rgba(0,0,0,.87)}.green-400-fg{color:#66bb6a!important}.green-400-border{border-color:#66bb6a!important}.green-400-border-top{border-top-color:#66bb6a!important}.green-400-border-right{border-right-color:#66bb6a!important}.green-400-border-bottom{border-bottom-color:#66bb6a!important}.green-400-border-left{border-left-color:#66bb6a!important}.green-500-bg{background-color:#4caf50!important}.md-green-500-bg{background-color:#4caf50!important;color:rgba(0,0,0,.87)}.green-500-fg{color:#4caf50!important}.green-500-border{border-color:#4caf50!important}.green-500-border-top{border-top-color:#4caf50!important}.green-500-border-right{border-right-color:#4caf50!important}.green-500-border-bottom{border-bottom-color:#4caf50!important}.green-500-border-left{border-left-color:#4caf50!important}.md-green-bg{background-color:#4caf50!important;color:rgba(0,0,0,.87)}.green-bg{background-color:#4caf50!important}.green-fg{color:#4caf50!important}.green-border{border-color:#4caf50!important}.green-border-top{border-top-color:#4caf50!important}.green-border-right{border-right-color:#4caf50!important}.green-border-bottom{border-bottom-color:#4caf50!important}.green-border-left{border-left-color:#4caf50!important}.green-600-bg{background-color:#43a047!important}.md-green-600-bg{background-color:#43a047!important;color:#fff}.green-600-fg{color:#43a047!important}.green-600-border{border-color:#43a047!important}.green-600-border-top{border-top-color:#43a047!important}.green-600-border-right{border-right-color:#43a047!important}.green-600-border-bottom{border-bottom-color:#43a047!important}.green-600-border-left{border-left-color:#43a047!important}.green-700-bg{background-color:#388e3c!important}.md-green-700-bg{background-color:#388e3c!important;color:#fff}.green-700-fg{color:#388e3c!important}.green-700-border{border-color:#388e3c!important}.green-700-border-top{border-top-color:#388e3c!important}.green-700-border-right{border-right-color:#388e3c!important}.green-700-border-bottom{border-bottom-color:#388e3c!important}.green-700-border-left{border-left-color:#388e3c!important}.green-800-bg{background-color:#2e7d32!important}.md-green-800-bg{background-color:#2e7d32!important;color:rgba(255,255,255,.87)}.green-800-fg{color:#2e7d32!important}.green-800-border{border-color:#2e7d32!important}.green-800-border-top{border-top-color:#2e7d32!important}.green-800-border-right{border-right-color:#2e7d32!important}.green-800-border-bottom{border-bottom-color:#2e7d32!important}.green-800-border-left{border-left-color:#2e7d32!important}.green-900-bg{background-color:#1b5e20!important}.md-green-900-bg{background-color:#1b5e20!important;color:rgba(255,255,255,.87)}.green-900-fg{color:#1b5e20!important}.green-900-border{border-color:#1b5e20!important}.green-900-border-top{border-top-color:#1b5e20!important}.green-900-border-right{border-right-color:#1b5e20!important}.green-900-border-bottom{border-bottom-color:#1b5e20!important}.green-900-border-left{border-left-color:#1b5e20!important}.green-A100-bg{background-color:#b9f6ca!important}.md-green-A100-bg{background-color:#b9f6ca!important;color:rgba(0,0,0,.87)}.green-A100-fg{color:#b9f6ca!important}.green-A100-border{border-color:#b9f6ca!important}.green-A100-border-top{border-top-color:#b9f6ca!important}.green-A100-border-right{border-right-color:#b9f6ca!important}.green-A100-border-bottom{border-bottom-color:#b9f6ca!important}.green-A100-border-left{border-left-color:#b9f6ca!important}.green-A200-bg{background-color:#69f0ae!important}.md-green-A200-bg{background-color:#69f0ae!important;color:rgba(0,0,0,.87)}.green-A200-fg{color:#69f0ae!important}.green-A200-border{border-color:#69f0ae!important}.green-A200-border-top{border-top-color:#69f0ae!important}.green-A200-border-right{border-right-color:#69f0ae!important}.green-A200-border-bottom{border-bottom-color:#69f0ae!important}.green-A200-border-left{border-left-color:#69f0ae!important}.green-A400-bg{background-color:#00e676!important}.md-green-A400-bg{background-color:#00e676!important;color:rgba(0,0,0,.87)}.green-A400-fg{color:#00e676!important}.green-A400-border{border-color:#00e676!important}.green-A400-border-top{border-top-color:#00e676!important}.green-A400-border-right{border-right-color:#00e676!important}.green-A400-border-bottom{border-bottom-color:#00e676!important}.green-A400-border-left{border-left-color:#00e676!important}.green-A700-bg{background-color:#00c853!important}.md-green-A700-bg{background-color:#00c853!important;color:rgba(0,0,0,.87)}.green-A700-fg{color:#00c853!important}.green-A700-border{border-color:#00c853!important}.green-A700-border-top{border-top-color:#00c853!important}.green-A700-border-right{border-right-color:#00c853!important}.green-A700-border-bottom{border-bottom-color:#00c853!important}.green-A700-border-left{border-left-color:#00c853!important}.light-green-50-bg{background-color:#f1f8e9!important}.md-light-green-50-bg{background-color:#f1f8e9!important;color:rgba(0,0,0,.87)}.light-green-50-fg{color:#f1f8e9!important}.light-green-50-border{border-color:#f1f8e9!important}.light-green-50-border-top{border-top-color:#f1f8e9!important}.light-green-50-border-right{border-right-color:#f1f8e9!important}.light-green-50-border-bottom{border-bottom-color:#f1f8e9!important}.light-green-50-border-left{border-left-color:#f1f8e9!important}.light-green-100-bg{background-color:#dcedc8!important}.md-light-green-100-bg{background-color:#dcedc8!important;color:rgba(0,0,0,.87)}.light-green-100-fg{color:#dcedc8!important}.light-green-100-border{border-color:#dcedc8!important}.light-green-100-border-top{border-top-color:#dcedc8!important}.light-green-100-border-right{border-right-color:#dcedc8!important}.light-green-100-border-bottom{border-bottom-color:#dcedc8!important}.light-green-100-border-left{border-left-color:#dcedc8!important}.light-green-200-bg{background-color:#c5e1a5!important}.md-light-green-200-bg{background-color:#c5e1a5!important;color:rgba(0,0,0,.87)}.light-green-200-fg{color:#c5e1a5!important}.light-green-200-border{border-color:#c5e1a5!important}.light-green-200-border-top{border-top-color:#c5e1a5!important}.light-green-200-border-right{border-right-color:#c5e1a5!important}.light-green-200-border-bottom{border-bottom-color:#c5e1a5!important}.light-green-200-border-left{border-left-color:#c5e1a5!important}.light-green-300-bg{background-color:#aed581!important}.md-light-green-300-bg{background-color:#aed581!important;color:rgba(0,0,0,.87)}.light-green-300-fg{color:#aed581!important}.light-green-300-border{border-color:#aed581!important}.light-green-300-border-top{border-top-color:#aed581!important}.light-green-300-border-right{border-right-color:#aed581!important}.light-green-300-border-bottom{border-bottom-color:#aed581!important}.light-green-300-border-left{border-left-color:#aed581!important}.light-green-400-bg{background-color:#9ccc65!important}.md-light-green-400-bg{background-color:#9ccc65!important;color:rgba(0,0,0,.87)}.light-green-400-fg{color:#9ccc65!important}.light-green-400-border{border-color:#9ccc65!important}.light-green-400-border-top{border-top-color:#9ccc65!important}.light-green-400-border-right{border-right-color:#9ccc65!important}.light-green-400-border-bottom{border-bottom-color:#9ccc65!important}.light-green-400-border-left{border-left-color:#9ccc65!important}.light-green-500-bg{background-color:#8bc34a!important}.md-light-green-500-bg{background-color:#8bc34a!important;color:rgba(0,0,0,.87)}.light-green-500-fg{color:#8bc34a!important}.light-green-500-border{border-color:#8bc34a!important}.light-green-500-border-top{border-top-color:#8bc34a!important}.light-green-500-border-right{border-right-color:#8bc34a!important}.light-green-500-border-bottom{border-bottom-color:#8bc34a!important}.light-green-500-border-left{border-left-color:#8bc34a!important}.md-light-green-bg{background-color:#8bc34a!important;color:rgba(0,0,0,.87)}.light-green-bg{background-color:#8bc34a!important}.light-green-fg{color:#8bc34a!important}.light-green-border{border-color:#8bc34a!important}.light-green-border-top{border-top-color:#8bc34a!important}.light-green-border-right{border-right-color:#8bc34a!important}.light-green-border-bottom{border-bottom-color:#8bc34a!important}.light-green-border-left{border-left-color:#8bc34a!important}.light-green-600-bg{background-color:#7cb342!important}.md-light-green-600-bg{background-color:#7cb342!important;color:rgba(0,0,0,.87)}.light-green-600-fg{color:#7cb342!important}.light-green-600-border{border-color:#7cb342!important}.light-green-600-border-top{border-top-color:#7cb342!important}.light-green-600-border-right{border-right-color:#7cb342!important}.light-green-600-border-bottom{border-bottom-color:#7cb342!important}.light-green-600-border-left{border-left-color:#7cb342!important}.light-green-700-bg{background-color:#689f38!important}.md-light-green-700-bg{background-color:#689f38!important;color:#fff}.light-green-700-fg{color:#689f38!important}.light-green-700-border{border-color:#689f38!important}.light-green-700-border-top{border-top-color:#689f38!important}.light-green-700-border-right{border-right-color:#689f38!important}.light-green-700-border-bottom{border-bottom-color:#689f38!important}.light-green-700-border-left{border-left-color:#689f38!important}.light-green-800-bg{background-color:#558b2f!important}.md-light-green-800-bg{background-color:#558b2f!important;color:#fff}.light-green-800-fg{color:#558b2f!important}.light-green-800-border{border-color:#558b2f!important}.light-green-800-border-top{border-top-color:#558b2f!important}.light-green-800-border-right{border-right-color:#558b2f!important}.light-green-800-border-bottom{border-bottom-color:#558b2f!important}.light-green-800-border-left{border-left-color:#558b2f!important}.light-green-900-bg{background-color:#33691e!important}.md-light-green-900-bg{background-color:#33691e!important;color:#fff}.light-green-900-fg{color:#33691e!important}.light-green-900-border{border-color:#33691e!important}.light-green-900-border-top{border-top-color:#33691e!important}.light-green-900-border-right{border-right-color:#33691e!important}.light-green-900-border-bottom{border-bottom-color:#33691e!important}.light-green-900-border-left{border-left-color:#33691e!important}.light-green-A100-bg{background-color:#ccff90!important}.md-light-green-A100-bg{background-color:#ccff90!important;color:rgba(0,0,0,.87)}.light-green-A100-fg{color:#ccff90!important}.light-green-A100-border{border-color:#ccff90!important}.light-green-A100-border-top{border-top-color:#ccff90!important}.light-green-A100-border-right{border-right-color:#ccff90!important}.light-green-A100-border-bottom{border-bottom-color:#ccff90!important}.light-green-A100-border-left{border-left-color:#ccff90!important}.light-green-A200-bg{background-color:#b2ff59!important}.md-light-green-A200-bg{background-color:#b2ff59!important;color:rgba(0,0,0,.87)}.light-green-A200-fg{color:#b2ff59!important}.light-green-A200-border{border-color:#b2ff59!important}.light-green-A200-border-top{border-top-color:#b2ff59!important}.light-green-A200-border-right{border-right-color:#b2ff59!important}.light-green-A200-border-bottom{border-bottom-color:#b2ff59!important}.light-green-A200-border-left{border-left-color:#b2ff59!important}.light-green-A400-bg{background-color:#76ff03!important}.md-light-green-A400-bg{background-color:#76ff03!important;color:rgba(0,0,0,.87)}.light-green-A400-fg{color:#76ff03!important}.light-green-A400-border{border-color:#76ff03!important}.light-green-A400-border-top{border-top-color:#76ff03!important}.light-green-A400-border-right{border-right-color:#76ff03!important}.light-green-A400-border-bottom{border-bottom-color:#76ff03!important}.light-green-A400-border-left{border-left-color:#76ff03!important}.light-green-A700-bg{background-color:#64dd17!important}.md-light-green-A700-bg{background-color:#64dd17!important;color:rgba(0,0,0,.87)}.light-green-A700-fg{color:#64dd17!important}.light-green-A700-border{border-color:#64dd17!important}.light-green-A700-border-top{border-top-color:#64dd17!important}.light-green-A700-border-right{border-right-color:#64dd17!important}.light-green-A700-border-bottom{border-bottom-color:#64dd17!important}.light-green-A700-border-left{border-left-color:#64dd17!important}.lime-50-bg{background-color:#f9fbe7!important}.md-lime-50-bg{background-color:#f9fbe7!important;color:rgba(0,0,0,.87)}.lime-50-fg{color:#f9fbe7!important}.lime-50-border{border-color:#f9fbe7!important}.lime-50-border-top{border-top-color:#f9fbe7!important}.lime-50-border-right{border-right-color:#f9fbe7!important}.lime-50-border-bottom{border-bottom-color:#f9fbe7!important}.lime-50-border-left{border-left-color:#f9fbe7!important}.lime-100-bg{background-color:#f0f4c3!important}.md-lime-100-bg{background-color:#f0f4c3!important;color:rgba(0,0,0,.87)}.lime-100-fg{color:#f0f4c3!important}.lime-100-border{border-color:#f0f4c3!important}.lime-100-border-top{border-top-color:#f0f4c3!important}.lime-100-border-right{border-right-color:#f0f4c3!important}.lime-100-border-bottom{border-bottom-color:#f0f4c3!important}.lime-100-border-left{border-left-color:#f0f4c3!important}.lime-200-bg{background-color:#e6ee9c!important}.md-lime-200-bg{background-color:#e6ee9c!important;color:rgba(0,0,0,.87)}.lime-200-fg{color:#e6ee9c!important}.lime-200-border{border-color:#e6ee9c!important}.lime-200-border-top{border-top-color:#e6ee9c!important}.lime-200-border-right{border-right-color:#e6ee9c!important}.lime-200-border-bottom{border-bottom-color:#e6ee9c!important}.lime-200-border-left{border-left-color:#e6ee9c!important}.lime-300-bg{background-color:#dce775!important}.md-lime-300-bg{background-color:#dce775!important;color:rgba(0,0,0,.87)}.lime-300-fg{color:#dce775!important}.lime-300-border{border-color:#dce775!important}.lime-300-border-top{border-top-color:#dce775!important}.lime-300-border-right{border-right-color:#dce775!important}.lime-300-border-bottom{border-bottom-color:#dce775!important}.lime-300-border-left{border-left-color:#dce775!important}.lime-400-bg{background-color:#d4e157!important}.md-lime-400-bg{background-color:#d4e157!important;color:rgba(0,0,0,.87)}.lime-400-fg{color:#d4e157!important}.lime-400-border{border-color:#d4e157!important}.lime-400-border-top{border-top-color:#d4e157!important}.lime-400-border-right{border-right-color:#d4e157!important}.lime-400-border-bottom{border-bottom-color:#d4e157!important}.lime-400-border-left{border-left-color:#d4e157!important}.lime-500-bg{background-color:#cddc39!important}.md-lime-500-bg{background-color:#cddc39!important;color:rgba(0,0,0,.87)}.lime-500-fg{color:#cddc39!important}.lime-500-border{border-color:#cddc39!important}.lime-500-border-top{border-top-color:#cddc39!important}.lime-500-border-right{border-right-color:#cddc39!important}.lime-500-border-bottom{border-bottom-color:#cddc39!important}.lime-500-border-left{border-left-color:#cddc39!important}.md-lime-bg{background-color:#cddc39!important;color:rgba(0,0,0,.87)}.lime-bg{background-color:#cddc39!important}.lime-fg{color:#cddc39!important}.lime-border{border-color:#cddc39!important}.lime-border-top{border-top-color:#cddc39!important}.lime-border-right{border-right-color:#cddc39!important}.lime-border-bottom{border-bottom-color:#cddc39!important}.lime-border-left{border-left-color:#cddc39!important}.lime-600-bg{background-color:#c0ca33!important}.md-lime-600-bg{background-color:#c0ca33!important;color:rgba(0,0,0,.87)}.lime-600-fg{color:#c0ca33!important}.lime-600-border{border-color:#c0ca33!important}.lime-600-border-top{border-top-color:#c0ca33!important}.lime-600-border-right{border-right-color:#c0ca33!important}.lime-600-border-bottom{border-bottom-color:#c0ca33!important}.lime-600-border-left{border-left-color:#c0ca33!important}.lime-700-bg{background-color:#afb42b!important}.md-lime-700-bg{background-color:#afb42b!important;color:rgba(0,0,0,.87)}.lime-700-fg{color:#afb42b!important}.lime-700-border{border-color:#afb42b!important}.lime-700-border-top{border-top-color:#afb42b!important}.lime-700-border-right{border-right-color:#afb42b!important}.lime-700-border-bottom{border-bottom-color:#afb42b!important}.lime-700-border-left{border-left-color:#afb42b!important}.lime-800-bg{background-color:#9e9d24!important}.md-lime-800-bg{background-color:#9e9d24!important;color:rgba(0,0,0,.87)}.lime-800-fg{color:#9e9d24!important}.lime-800-border{border-color:#9e9d24!important}.lime-800-border-top{border-top-color:#9e9d24!important}.lime-800-border-right{border-right-color:#9e9d24!important}.lime-800-border-bottom{border-bottom-color:#9e9d24!important}.lime-800-border-left{border-left-color:#9e9d24!important}.lime-900-bg{background-color:#827717!important}.md-lime-900-bg{background-color:#827717!important;color:#fff}.lime-900-fg{color:#827717!important}.lime-900-border{border-color:#827717!important}.lime-900-border-top{border-top-color:#827717!important}.lime-900-border-right{border-right-color:#827717!important}.lime-900-border-bottom{border-bottom-color:#827717!important}.lime-900-border-left{border-left-color:#827717!important}.lime-A100-bg{background-color:#f4ff81!important}.md-lime-A100-bg{background-color:#f4ff81!important;color:rgba(0,0,0,.87)}.lime-A100-fg{color:#f4ff81!important}.lime-A100-border{border-color:#f4ff81!important}.lime-A100-border-top{border-top-color:#f4ff81!important}.lime-A100-border-right{border-right-color:#f4ff81!important}.lime-A100-border-bottom{border-bottom-color:#f4ff81!important}.lime-A100-border-left{border-left-color:#f4ff81!important}.lime-A200-bg{background-color:#eeff41!important}.md-lime-A200-bg{background-color:#eeff41!important;color:rgba(0,0,0,.87)}.lime-A200-fg{color:#eeff41!important}.lime-A200-border{border-color:#eeff41!important}.lime-A200-border-top{border-top-color:#eeff41!important}.lime-A200-border-right{border-right-color:#eeff41!important}.lime-A200-border-bottom{border-bottom-color:#eeff41!important}.lime-A200-border-left{border-left-color:#eeff41!important}.lime-A400-bg{background-color:#c6ff00!important}.md-lime-A400-bg{background-color:#c6ff00!important;color:rgba(0,0,0,.87)}.lime-A400-fg{color:#c6ff00!important}.lime-A400-border{border-color:#c6ff00!important}.lime-A400-border-top{border-top-color:#c6ff00!important}.lime-A400-border-right{border-right-color:#c6ff00!important}.lime-A400-border-bottom{border-bottom-color:#c6ff00!important}.lime-A400-border-left{border-left-color:#c6ff00!important}.lime-A700-bg{background-color:#aeea00!important}.md-lime-A700-bg{background-color:#aeea00!important;color:rgba(0,0,0,.87)}.lime-A700-fg{color:#aeea00!important}.lime-A700-border{border-color:#aeea00!important}.lime-A700-border-top{border-top-color:#aeea00!important}.lime-A700-border-right{border-right-color:#aeea00!important}.lime-A700-border-bottom{border-bottom-color:#aeea00!important}.lime-A700-border-left{border-left-color:#aeea00!important}.yellow-50-bg{background-color:#fffde7!important}.md-yellow-50-bg{background-color:#fffde7!important;color:rgba(0,0,0,.87)}.yellow-50-fg{color:#fffde7!important}.yellow-50-border{border-color:#fffde7!important}.yellow-50-border-top{border-top-color:#fffde7!important}.yellow-50-border-right{border-right-color:#fffde7!important}.yellow-50-border-bottom{border-bottom-color:#fffde7!important}.yellow-50-border-left{border-left-color:#fffde7!important}.yellow-100-bg{background-color:#fff9c4!important}.md-yellow-100-bg{background-color:#fff9c4!important;color:rgba(0,0,0,.87)}.yellow-100-fg{color:#fff9c4!important}.yellow-100-border{border-color:#fff9c4!important}.yellow-100-border-top{border-top-color:#fff9c4!important}.yellow-100-border-right{border-right-color:#fff9c4!important}.yellow-100-border-bottom{border-bottom-color:#fff9c4!important}.yellow-100-border-left{border-left-color:#fff9c4!important}.yellow-200-bg{background-color:#fff59d!important}.md-yellow-200-bg{background-color:#fff59d!important;color:rgba(0,0,0,.87)}.yellow-200-fg{color:#fff59d!important}.yellow-200-border{border-color:#fff59d!important}.yellow-200-border-top{border-top-color:#fff59d!important}.yellow-200-border-right{border-right-color:#fff59d!important}.yellow-200-border-bottom{border-bottom-color:#fff59d!important}.yellow-200-border-left{border-left-color:#fff59d!important}.yellow-300-bg{background-color:#fff176!important}.md-yellow-300-bg{background-color:#fff176!important;color:rgba(0,0,0,.87)}.yellow-300-fg{color:#fff176!important}.yellow-300-border{border-color:#fff176!important}.yellow-300-border-top{border-top-color:#fff176!important}.yellow-300-border-right{border-right-color:#fff176!important}.yellow-300-border-bottom{border-bottom-color:#fff176!important}.yellow-300-border-left{border-left-color:#fff176!important}.yellow-400-bg{background-color:#ffee58!important}.md-yellow-400-bg{background-color:#ffee58!important;color:rgba(0,0,0,.87)}.yellow-400-fg{color:#ffee58!important}.yellow-400-border{border-color:#ffee58!important}.yellow-400-border-top{border-top-color:#ffee58!important}.yellow-400-border-right{border-right-color:#ffee58!important}.yellow-400-border-bottom{border-bottom-color:#ffee58!important}.yellow-400-border-left{border-left-color:#ffee58!important}.yellow-500-bg{background-color:#ffeb3b!important}.md-yellow-500-bg{background-color:#ffeb3b!important;color:rgba(0,0,0,.87)}.yellow-500-fg{color:#ffeb3b!important}.yellow-500-border{border-color:#ffeb3b!important}.yellow-500-border-top{border-top-color:#ffeb3b!important}.yellow-500-border-right{border-right-color:#ffeb3b!important}.yellow-500-border-bottom{border-bottom-color:#ffeb3b!important}.yellow-500-border-left{border-left-color:#ffeb3b!important}.md-yellow-bg{background-color:#ffeb3b!important;color:rgba(0,0,0,.87)}.yellow-bg{background-color:#ffeb3b!important}.yellow-fg{color:#ffeb3b!important}.yellow-border{border-color:#ffeb3b!important}.yellow-border-top{border-top-color:#ffeb3b!important}.yellow-border-right{border-right-color:#ffeb3b!important}.yellow-border-bottom{border-bottom-color:#ffeb3b!important}.yellow-border-left{border-left-color:#ffeb3b!important}.yellow-600-bg{background-color:#fdd835!important}.md-yellow-600-bg{background-color:#fdd835!important;color:rgba(0,0,0,.87)}.yellow-600-fg{color:#fdd835!important}.yellow-600-border{border-color:#fdd835!important}.yellow-600-border-top{border-top-color:#fdd835!important}.yellow-600-border-right{border-right-color:#fdd835!important}.yellow-600-border-bottom{border-bottom-color:#fdd835!important}.yellow-600-border-left{border-left-color:#fdd835!important}.yellow-700-bg{background-color:#fbc02d!important}.md-yellow-700-bg{background-color:#fbc02d!important;color:rgba(0,0,0,.87)}.yellow-700-fg{color:#fbc02d!important}.yellow-700-border{border-color:#fbc02d!important}.yellow-700-border-top{border-top-color:#fbc02d!important}.yellow-700-border-right{border-right-color:#fbc02d!important}.yellow-700-border-bottom{border-bottom-color:#fbc02d!important}.yellow-700-border-left{border-left-color:#fbc02d!important}.yellow-800-bg{background-color:#f9a825!important}.md-yellow-800-bg{background-color:#f9a825!important;color:rgba(0,0,0,.87)}.yellow-800-fg{color:#f9a825!important}.yellow-800-border{border-color:#f9a825!important}.yellow-800-border-top{border-top-color:#f9a825!important}.yellow-800-border-right{border-right-color:#f9a825!important}.yellow-800-border-bottom{border-bottom-color:#f9a825!important}.yellow-800-border-left{border-left-color:#f9a825!important}.yellow-900-bg{background-color:#f57f17!important}.md-yellow-900-bg{background-color:#f57f17!important;color:rgba(0,0,0,.87)}.yellow-900-fg{color:#f57f17!important}.yellow-900-border{border-color:#f57f17!important}.yellow-900-border-top{border-top-color:#f57f17!important}.yellow-900-border-right{border-right-color:#f57f17!important}.yellow-900-border-bottom{border-bottom-color:#f57f17!important}.yellow-900-border-left{border-left-color:#f57f17!important}.yellow-A100-bg{background-color:#ffff8d!important}.md-yellow-A100-bg{background-color:#ffff8d!important;color:rgba(0,0,0,.87)}.yellow-A100-fg{color:#ffff8d!important}.yellow-A100-border{border-color:#ffff8d!important}.yellow-A100-border-top{border-top-color:#ffff8d!important}.yellow-A100-border-right{border-right-color:#ffff8d!important}.yellow-A100-border-bottom{border-bottom-color:#ffff8d!important}.yellow-A100-border-left{border-left-color:#ffff8d!important}.yellow-A200-bg{background-color:#ff0!important}.md-yellow-A200-bg{background-color:#ff0!important;color:rgba(0,0,0,.87)}.yellow-A200-fg{color:#ff0!important}.yellow-A200-border{border-color:#ff0!important}.yellow-A200-border-top{border-top-color:#ff0!important}.yellow-A200-border-right{border-right-color:#ff0!important}.yellow-A200-border-bottom{border-bottom-color:#ff0!important}.yellow-A200-border-left{border-left-color:#ff0!important}.yellow-A400-bg{background-color:#ffea00!important}.md-yellow-A400-bg{background-color:#ffea00!important;color:rgba(0,0,0,.87)}.yellow-A400-fg{color:#ffea00!important}.yellow-A400-border{border-color:#ffea00!important}.yellow-A400-border-top{border-top-color:#ffea00!important}.yellow-A400-border-right{border-right-color:#ffea00!important}.yellow-A400-border-bottom{border-bottom-color:#ffea00!important}.yellow-A400-border-left{border-left-color:#ffea00!important}.yellow-A700-bg{background-color:#ffd600!important}.md-yellow-A700-bg{background-color:#ffd600!important;color:rgba(0,0,0,.87)}.yellow-A700-fg{color:#ffd600!important}.yellow-A700-border{border-color:#ffd600!important}.yellow-A700-border-top{border-top-color:#ffd600!important}.yellow-A700-border-right{border-right-color:#ffd600!important}.yellow-A700-border-bottom{border-bottom-color:#ffd600!important}.yellow-A700-border-left{border-left-color:#ffd600!important}.amber-50-bg{background-color:#fff8e1!important}.md-amber-50-bg{background-color:#fff8e1!important;color:rgba(0,0,0,.87)}.amber-50-fg{color:#fff8e1!important}.amber-50-border{border-color:#fff8e1!important}.amber-50-border-top{border-top-color:#fff8e1!important}.amber-50-border-right{border-right-color:#fff8e1!important}.amber-50-border-bottom{border-bottom-color:#fff8e1!important}.amber-50-border-left{border-left-color:#fff8e1!important}.amber-100-bg{background-color:#ffecb3!important}.md-amber-100-bg{background-color:#ffecb3!important;color:rgba(0,0,0,.87)}.amber-100-fg{color:#ffecb3!important}.amber-100-border{border-color:#ffecb3!important}.amber-100-border-top{border-top-color:#ffecb3!important}.amber-100-border-right{border-right-color:#ffecb3!important}.amber-100-border-bottom{border-bottom-color:#ffecb3!important}.amber-100-border-left{border-left-color:#ffecb3!important}.amber-200-bg{background-color:#ffe082!important}.md-amber-200-bg{background-color:#ffe082!important;color:rgba(0,0,0,.87)}.amber-200-fg{color:#ffe082!important}.amber-200-border{border-color:#ffe082!important}.amber-200-border-top{border-top-color:#ffe082!important}.amber-200-border-right{border-right-color:#ffe082!important}.amber-200-border-bottom{border-bottom-color:#ffe082!important}.amber-200-border-left{border-left-color:#ffe082!important}.amber-300-bg{background-color:#ffd54f!important}.md-amber-300-bg{background-color:#ffd54f!important;color:rgba(0,0,0,.87)}.amber-300-fg{color:#ffd54f!important}.amber-300-border{border-color:#ffd54f!important}.amber-300-border-top{border-top-color:#ffd54f!important}.amber-300-border-right{border-right-color:#ffd54f!important}.amber-300-border-bottom{border-bottom-color:#ffd54f!important}.amber-300-border-left{border-left-color:#ffd54f!important}.amber-400-bg{background-color:#ffca28!important}.md-amber-400-bg{background-color:#ffca28!important;color:rgba(0,0,0,.87)}.amber-400-fg{color:#ffca28!important}.amber-400-border{border-color:#ffca28!important}.amber-400-border-top{border-top-color:#ffca28!important}.amber-400-border-right{border-right-color:#ffca28!important}.amber-400-border-bottom{border-bottom-color:#ffca28!important}.amber-400-border-left{border-left-color:#ffca28!important}.amber-500-bg{background-color:#ffc107!important}.md-amber-500-bg{background-color:#ffc107!important;color:rgba(0,0,0,.87)}.amber-500-fg{color:#ffc107!important}.amber-500-border{border-color:#ffc107!important}.amber-500-border-top{border-top-color:#ffc107!important}.amber-500-border-right{border-right-color:#ffc107!important}.amber-500-border-bottom{border-bottom-color:#ffc107!important}.amber-500-border-left{border-left-color:#ffc107!important}.md-amber-bg{background-color:#ffc107!important;color:rgba(0,0,0,.87)}.amber-bg{background-color:#ffc107!important}.amber-fg{color:#ffc107!important}.amber-border{border-color:#ffc107!important}.amber-border-top{border-top-color:#ffc107!important}.amber-border-right{border-right-color:#ffc107!important}.amber-border-bottom{border-bottom-color:#ffc107!important}.amber-border-left{border-left-color:#ffc107!important}.amber-600-bg{background-color:#ffb300!important}.md-amber-600-bg{background-color:#ffb300!important;color:rgba(0,0,0,.87)}.amber-600-fg{color:#ffb300!important}.amber-600-border{border-color:#ffb300!important}.amber-600-border-top{border-top-color:#ffb300!important}.amber-600-border-right{border-right-color:#ffb300!important}.amber-600-border-bottom{border-bottom-color:#ffb300!important}.amber-600-border-left{border-left-color:#ffb300!important}.amber-700-bg{background-color:#ffa000!important}.md-amber-700-bg{background-color:#ffa000!important;color:rgba(0,0,0,.87)}.amber-700-fg{color:#ffa000!important}.amber-700-border{border-color:#ffa000!important}.amber-700-border-top{border-top-color:#ffa000!important}.amber-700-border-right{border-right-color:#ffa000!important}.amber-700-border-bottom{border-bottom-color:#ffa000!important}.amber-700-border-left{border-left-color:#ffa000!important}.amber-800-bg{background-color:#ff8f00!important}.md-amber-800-bg{background-color:#ff8f00!important;color:rgba(0,0,0,.87)}.amber-800-fg{color:#ff8f00!important}.amber-800-border{border-color:#ff8f00!important}.amber-800-border-top{border-top-color:#ff8f00!important}.amber-800-border-right{border-right-color:#ff8f00!important}.amber-800-border-bottom{border-bottom-color:#ff8f00!important}.amber-800-border-left{border-left-color:#ff8f00!important}.amber-900-bg{background-color:#ff6f00!important}.md-amber-900-bg{background-color:#ff6f00!important;color:rgba(0,0,0,.87)}.amber-900-fg{color:#ff6f00!important}.amber-900-border{border-color:#ff6f00!important}.amber-900-border-top{border-top-color:#ff6f00!important}.amber-900-border-right{border-right-color:#ff6f00!important}.amber-900-border-bottom{border-bottom-color:#ff6f00!important}.amber-900-border-left{border-left-color:#ff6f00!important}.amber-A100-bg{background-color:#ffe57f!important}.md-amber-A100-bg{background-color:#ffe57f!important;color:rgba(0,0,0,.87)}.amber-A100-fg{color:#ffe57f!important}.amber-A100-border{border-color:#ffe57f!important}.amber-A100-border-top{border-top-color:#ffe57f!important}.amber-A100-border-right{border-right-color:#ffe57f!important}.amber-A100-border-bottom{border-bottom-color:#ffe57f!important}.amber-A100-border-left{border-left-color:#ffe57f!important}.amber-A200-bg{background-color:#ffd740!important}.md-amber-A200-bg{background-color:#ffd740!important;color:rgba(0,0,0,.87)}.amber-A200-fg{color:#ffd740!important}.amber-A200-border{border-color:#ffd740!important}.amber-A200-border-top{border-top-color:#ffd740!important}.amber-A200-border-right{border-right-color:#ffd740!important}.amber-A200-border-bottom{border-bottom-color:#ffd740!important}.amber-A200-border-left{border-left-color:#ffd740!important}.amber-A400-bg{background-color:#ffc400!important}.md-amber-A400-bg{background-color:#ffc400!important;color:rgba(0,0,0,.87)}.amber-A400-fg{color:#ffc400!important}.amber-A400-border{border-color:#ffc400!important}.amber-A400-border-top{border-top-color:#ffc400!important}.amber-A400-border-right{border-right-color:#ffc400!important}.amber-A400-border-bottom{border-bottom-color:#ffc400!important}.amber-A400-border-left{border-left-color:#ffc400!important}.amber-A700-bg{background-color:#ffab00!important}.md-amber-A700-bg{background-color:#ffab00!important;color:rgba(0,0,0,.87)}.amber-A700-fg{color:#ffab00!important}.amber-A700-border{border-color:#ffab00!important}.amber-A700-border-top{border-top-color:#ffab00!important}.amber-A700-border-right{border-right-color:#ffab00!important}.amber-A700-border-bottom{border-bottom-color:#ffab00!important}.amber-A700-border-left{border-left-color:#ffab00!important}.orange-50-bg{background-color:#fff3e0!important}.md-orange-50-bg{background-color:#fff3e0!important;color:rgba(0,0,0,.87)}.orange-50-fg{color:#fff3e0!important}.orange-50-border{border-color:#fff3e0!important}.orange-50-border-top{border-top-color:#fff3e0!important}.orange-50-border-right{border-right-color:#fff3e0!important}.orange-50-border-bottom{border-bottom-color:#fff3e0!important}.orange-50-border-left{border-left-color:#fff3e0!important}.orange-100-bg{background-color:#ffe0b2!important}.md-orange-100-bg{background-color:#ffe0b2!important;color:rgba(0,0,0,.87)}.orange-100-fg{color:#ffe0b2!important}.orange-100-border{border-color:#ffe0b2!important}.orange-100-border-top{border-top-color:#ffe0b2!important}.orange-100-border-right{border-right-color:#ffe0b2!important}.orange-100-border-bottom{border-bottom-color:#ffe0b2!important}.orange-100-border-left{border-left-color:#ffe0b2!important}.orange-200-bg{background-color:#ffcc80!important}.md-orange-200-bg{background-color:#ffcc80!important;color:rgba(0,0,0,.87)}.orange-200-fg{color:#ffcc80!important}.orange-200-border{border-color:#ffcc80!important}.orange-200-border-top{border-top-color:#ffcc80!important}.orange-200-border-right{border-right-color:#ffcc80!important}.orange-200-border-bottom{border-bottom-color:#ffcc80!important}.orange-200-border-left{border-left-color:#ffcc80!important}.orange-300-bg{background-color:#ffb74d!important}.md-orange-300-bg{background-color:#ffb74d!important;color:rgba(0,0,0,.87)}.orange-300-fg{color:#ffb74d!important}.orange-300-border{border-color:#ffb74d!important}.orange-300-border-top{border-top-color:#ffb74d!important}.orange-300-border-right{border-right-color:#ffb74d!important}.orange-300-border-bottom{border-bottom-color:#ffb74d!important}.orange-300-border-left{border-left-color:#ffb74d!important}.orange-400-bg{background-color:#ffa726!important}.md-orange-400-bg{background-color:#ffa726!important;color:rgba(0,0,0,.87)}.orange-400-fg{color:#ffa726!important}.orange-400-border{border-color:#ffa726!important}.orange-400-border-top{border-top-color:#ffa726!important}.orange-400-border-right{border-right-color:#ffa726!important}.orange-400-border-bottom{border-bottom-color:#ffa726!important}.orange-400-border-left{border-left-color:#ffa726!important}.orange-500-bg{background-color:#ff9800!important}.md-orange-500-bg{background-color:#ff9800!important;color:rgba(0,0,0,.87)}.orange-500-fg{color:#ff9800!important}.orange-500-border{border-color:#ff9800!important}.orange-500-border-top{border-top-color:#ff9800!important}.orange-500-border-right{border-right-color:#ff9800!important}.orange-500-border-bottom{border-bottom-color:#ff9800!important}.orange-500-border-left{border-left-color:#ff9800!important}.md-orange-bg{background-color:#ff9800!important;color:rgba(0,0,0,.87)}.orange-bg{background-color:#ff9800!important}.orange-fg{color:#ff9800!important}.orange-border{border-color:#ff9800!important}.orange-border-top{border-top-color:#ff9800!important}.orange-border-right{border-right-color:#ff9800!important}.orange-border-bottom{border-bottom-color:#ff9800!important}.orange-border-left{border-left-color:#ff9800!important}.orange-600-bg{background-color:#fb8c00!important}.md-orange-600-bg{background-color:#fb8c00!important;color:rgba(0,0,0,.87)}.orange-600-fg{color:#fb8c00!important}.orange-600-border{border-color:#fb8c00!important}.orange-600-border-top{border-top-color:#fb8c00!important}.orange-600-border-right{border-right-color:#fb8c00!important}.orange-600-border-bottom{border-bottom-color:#fb8c00!important}.orange-600-border-left{border-left-color:#fb8c00!important}.orange-700-bg{background-color:#f57c00!important}.md-orange-700-bg{background-color:#f57c00!important;color:rgba(0,0,0,.87)}.orange-700-fg{color:#f57c00!important}.orange-700-border{border-color:#f57c00!important}.orange-700-border-top{border-top-color:#f57c00!important}.orange-700-border-right{border-right-color:#f57c00!important}.orange-700-border-bottom{border-bottom-color:#f57c00!important}.orange-700-border-left{border-left-color:#f57c00!important}.orange-800-bg{background-color:#ef6c00!important}.md-orange-800-bg{background-color:#ef6c00!important;color:#fff}.orange-800-fg{color:#ef6c00!important}.orange-800-border{border-color:#ef6c00!important}.orange-800-border-top{border-top-color:#ef6c00!important}.orange-800-border-right{border-right-color:#ef6c00!important}.orange-800-border-bottom{border-bottom-color:#ef6c00!important}.orange-800-border-left{border-left-color:#ef6c00!important}.orange-900-bg{background-color:#e65100!important}.md-orange-900-bg{background-color:#e65100!important;color:#fff}.orange-900-fg{color:#e65100!important}.orange-900-border{border-color:#e65100!important}.orange-900-border-top{border-top-color:#e65100!important}.orange-900-border-right{border-right-color:#e65100!important}.orange-900-border-bottom{border-bottom-color:#e65100!important}.orange-900-border-left{border-left-color:#e65100!important}.orange-A100-bg{background-color:#ffd180!important}.md-orange-A100-bg{background-color:#ffd180!important;color:rgba(0,0,0,.87)}.orange-A100-fg{color:#ffd180!important}.orange-A100-border{border-color:#ffd180!important}.orange-A100-border-top{border-top-color:#ffd180!important}.orange-A100-border-right{border-right-color:#ffd180!important}.orange-A100-border-bottom{border-bottom-color:#ffd180!important}.orange-A100-border-left{border-left-color:#ffd180!important}.orange-A200-bg{background-color:#ffab40!important}.md-orange-A200-bg{background-color:#ffab40!important;color:rgba(0,0,0,.87)}.orange-A200-fg{color:#ffab40!important}.orange-A200-border{border-color:#ffab40!important}.orange-A200-border-top{border-top-color:#ffab40!important}.orange-A200-border-right{border-right-color:#ffab40!important}.orange-A200-border-bottom{border-bottom-color:#ffab40!important}.orange-A200-border-left{border-left-color:#ffab40!important}.orange-A400-bg{background-color:#ff9100!important}.md-orange-A400-bg{background-color:#ff9100!important;color:rgba(0,0,0,.87)}.orange-A400-fg{color:#ff9100!important}.orange-A400-border{border-color:#ff9100!important}.orange-A400-border-top{border-top-color:#ff9100!important}.orange-A400-border-right{border-right-color:#ff9100!important}.orange-A400-border-bottom{border-bottom-color:#ff9100!important}.orange-A400-border-left{border-left-color:#ff9100!important}.orange-A700-bg{background-color:#ff6d00!important}.md-orange-A700-bg{background-color:#ff6d00!important;color:rgba(0,0,0,.87)}.orange-A700-fg{color:#ff6d00!important}.orange-A700-border{border-color:#ff6d00!important}.orange-A700-border-top{border-top-color:#ff6d00!important}.orange-A700-border-right{border-right-color:#ff6d00!important}.orange-A700-border-bottom{border-bottom-color:#ff6d00!important}.orange-A700-border-left{border-left-color:#ff6d00!important}.deep-orange-50-bg{background-color:#fbe9e7!important}.md-deep-orange-50-bg{background-color:#fbe9e7!important;color:rgba(0,0,0,.87)}.deep-orange-50-fg{color:#fbe9e7!important}.deep-orange-50-border{border-color:#fbe9e7!important}.deep-orange-50-border-top{border-top-color:#fbe9e7!important}.deep-orange-50-border-right{border-right-color:#fbe9e7!important}.deep-orange-50-border-bottom{border-bottom-color:#fbe9e7!important}.deep-orange-50-border-left{border-left-color:#fbe9e7!important}.deep-orange-100-bg{background-color:#ffccbc!important}.md-deep-orange-100-bg{background-color:#ffccbc!important;color:rgba(0,0,0,.87)}.deep-orange-100-fg{color:#ffccbc!important}.deep-orange-100-border{border-color:#ffccbc!important}.deep-orange-100-border-top{border-top-color:#ffccbc!important}.deep-orange-100-border-right{border-right-color:#ffccbc!important}.deep-orange-100-border-bottom{border-bottom-color:#ffccbc!important}.deep-orange-100-border-left{border-left-color:#ffccbc!important}.deep-orange-200-bg{background-color:#ffab91!important}.md-deep-orange-200-bg{background-color:#ffab91!important;color:rgba(0,0,0,.87)}.deep-orange-200-fg{color:#ffab91!important}.deep-orange-200-border{border-color:#ffab91!important}.deep-orange-200-border-top{border-top-color:#ffab91!important}.deep-orange-200-border-right{border-right-color:#ffab91!important}.deep-orange-200-border-bottom{border-bottom-color:#ffab91!important}.deep-orange-200-border-left{border-left-color:#ffab91!important}.deep-orange-300-bg{background-color:#ff8a65!important}.md-deep-orange-300-bg{background-color:#ff8a65!important;color:rgba(0,0,0,.87)}.deep-orange-300-fg{color:#ff8a65!important}.deep-orange-300-border{border-color:#ff8a65!important}.deep-orange-300-border-top{border-top-color:#ff8a65!important}.deep-orange-300-border-right{border-right-color:#ff8a65!important}.deep-orange-300-border-bottom{border-bottom-color:#ff8a65!important}.deep-orange-300-border-left{border-left-color:#ff8a65!important}.deep-orange-400-bg{background-color:#ff7043!important}.md-deep-orange-400-bg{background-color:#ff7043!important;color:rgba(0,0,0,.87)}.deep-orange-400-fg{color:#ff7043!important}.deep-orange-400-border{border-color:#ff7043!important}.deep-orange-400-border-top{border-top-color:#ff7043!important}.deep-orange-400-border-right{border-right-color:#ff7043!important}.deep-orange-400-border-bottom{border-bottom-color:#ff7043!important}.deep-orange-400-border-left{border-left-color:#ff7043!important}.deep-orange-500-bg{background-color:#ff5722!important}.md-deep-orange-500-bg{background-color:#ff5722!important;color:#fff}.deep-orange-500-fg{color:#ff5722!important}.deep-orange-500-border{border-color:#ff5722!important}.deep-orange-500-border-top{border-top-color:#ff5722!important}.deep-orange-500-border-right{border-right-color:#ff5722!important}.deep-orange-500-border-bottom{border-bottom-color:#ff5722!important}.deep-orange-500-border-left{border-left-color:#ff5722!important}.md-deep-orange-bg{background-color:#ff5722!important;color:#fff}.deep-orange-bg{background-color:#ff5722!important}.deep-orange-fg{color:#ff5722!important}.deep-orange-border{border-color:#ff5722!important}.deep-orange-border-top{border-top-color:#ff5722!important}.deep-orange-border-right{border-right-color:#ff5722!important}.deep-orange-border-bottom{border-bottom-color:#ff5722!important}.deep-orange-border-left{border-left-color:#ff5722!important}.deep-orange-600-bg{background-color:#f4511e!important}.md-deep-orange-600-bg{background-color:#f4511e!important;color:#fff}.deep-orange-600-fg{color:#f4511e!important}.deep-orange-600-border{border-color:#f4511e!important}.deep-orange-600-border-top{border-top-color:#f4511e!important}.deep-orange-600-border-right{border-right-color:#f4511e!important}.deep-orange-600-border-bottom{border-bottom-color:#f4511e!important}.deep-orange-600-border-left{border-left-color:#f4511e!important}.deep-orange-700-bg{background-color:#e64a19!important}.md-deep-orange-700-bg{background-color:#e64a19!important;color:#fff}.deep-orange-700-fg{color:#e64a19!important}.deep-orange-700-border{border-color:#e64a19!important}.deep-orange-700-border-top{border-top-color:#e64a19!important}.deep-orange-700-border-right{border-right-color:#e64a19!important}.deep-orange-700-border-bottom{border-bottom-color:#e64a19!important}.deep-orange-700-border-left{border-left-color:#e64a19!important}.deep-orange-800-bg{background-color:#d84315!important}.md-deep-orange-800-bg{background-color:#d84315!important;color:#fff}.deep-orange-800-fg{color:#d84315!important}.deep-orange-800-border{border-color:#d84315!important}.deep-orange-800-border-top{border-top-color:#d84315!important}.deep-orange-800-border-right{border-right-color:#d84315!important}.deep-orange-800-border-bottom{border-bottom-color:#d84315!important}.deep-orange-800-border-left{border-left-color:#d84315!important}.deep-orange-900-bg{background-color:#bf360c!important}.md-deep-orange-900-bg{background-color:#bf360c!important;color:#fff}.deep-orange-900-fg{color:#bf360c!important}.deep-orange-900-border{border-color:#bf360c!important}.deep-orange-900-border-top{border-top-color:#bf360c!important}.deep-orange-900-border-right{border-right-color:#bf360c!important}.deep-orange-900-border-bottom{border-bottom-color:#bf360c!important}.deep-orange-900-border-left{border-left-color:#bf360c!important}.deep-orange-A100-bg{background-color:#ff9e80!important}.md-deep-orange-A100-bg{background-color:#ff9e80!important;color:rgba(0,0,0,.87)}.deep-orange-A100-fg{color:#ff9e80!important}.deep-orange-A100-border{border-color:#ff9e80!important}.deep-orange-A100-border-top{border-top-color:#ff9e80!important}.deep-orange-A100-border-right{border-right-color:#ff9e80!important}.deep-orange-A100-border-bottom{border-bottom-color:#ff9e80!important}.deep-orange-A100-border-left{border-left-color:#ff9e80!important}.deep-orange-A200-bg{background-color:#ff6e40!important}.md-deep-orange-A200-bg{background-color:#ff6e40!important;color:rgba(0,0,0,.87)}.deep-orange-A200-fg{color:#ff6e40!important}.deep-orange-A200-border{border-color:#ff6e40!important}.deep-orange-A200-border-top{border-top-color:#ff6e40!important}.deep-orange-A200-border-right{border-right-color:#ff6e40!important}.deep-orange-A200-border-bottom{border-bottom-color:#ff6e40!important}.deep-orange-A200-border-left{border-left-color:#ff6e40!important}.deep-orange-A400-bg{background-color:#ff3d00!important}.md-deep-orange-A400-bg{background-color:#ff3d00!important;color:#fff}.deep-orange-A400-fg{color:#ff3d00!important}.deep-orange-A400-border{border-color:#ff3d00!important}.deep-orange-A400-border-top{border-top-color:#ff3d00!important}.deep-orange-A400-border-right{border-right-color:#ff3d00!important}.deep-orange-A400-border-bottom{border-bottom-color:#ff3d00!important}.deep-orange-A400-border-left{border-left-color:#ff3d00!important}.deep-orange-A700-bg{background-color:#dd2c00!important}.md-deep-orange-A700-bg{background-color:#dd2c00!important;color:#fff}.deep-orange-A700-fg{color:#dd2c00!important}.deep-orange-A700-border{border-color:#dd2c00!important}.deep-orange-A700-border-top{border-top-color:#dd2c00!important}.deep-orange-A700-border-right{border-right-color:#dd2c00!important}.deep-orange-A700-border-bottom{border-bottom-color:#dd2c00!important}.deep-orange-A700-border-left{border-left-color:#dd2c00!important}.brown-50-bg{background-color:#efebe9!important}.md-brown-50-bg{background-color:#efebe9!important;color:rgba(0,0,0,.87)}.brown-50-fg{color:#efebe9!important}.brown-50-border{border-color:#efebe9!important}.brown-50-border-top{border-top-color:#efebe9!important}.brown-50-border-right{border-right-color:#efebe9!important}.brown-50-border-bottom{border-bottom-color:#efebe9!important}.brown-50-border-left{border-left-color:#efebe9!important}.brown-100-bg{background-color:#d7ccc8!important}.md-brown-100-bg{background-color:#d7ccc8!important;color:rgba(0,0,0,.87)}.brown-100-fg{color:#d7ccc8!important}.brown-100-border{border-color:#d7ccc8!important}.brown-100-border-top{border-top-color:#d7ccc8!important}.brown-100-border-right{border-right-color:#d7ccc8!important}.brown-100-border-bottom{border-bottom-color:#d7ccc8!important}.brown-100-border-left{border-left-color:#d7ccc8!important}.brown-200-bg{background-color:#bcaaa4!important}.md-brown-200-bg{background-color:#bcaaa4!important;color:rgba(0,0,0,.87)}.brown-200-fg{color:#bcaaa4!important}.brown-200-border{border-color:#bcaaa4!important}.brown-200-border-top{border-top-color:#bcaaa4!important}.brown-200-border-right{border-right-color:#bcaaa4!important}.brown-200-border-bottom{border-bottom-color:#bcaaa4!important}.brown-200-border-left{border-left-color:#bcaaa4!important}.brown-300-bg{background-color:#a1887f!important}.md-brown-300-bg{background-color:#a1887f!important;color:#fff}.brown-300-fg{color:#a1887f!important}.brown-300-border{border-color:#a1887f!important}.brown-300-border-top{border-top-color:#a1887f!important}.brown-300-border-right{border-right-color:#a1887f!important}.brown-300-border-bottom{border-bottom-color:#a1887f!important}.brown-300-border-left{border-left-color:#a1887f!important}.brown-400-bg{background-color:#8d6e63!important}.md-brown-400-bg{background-color:#8d6e63!important;color:#fff}.brown-400-fg{color:#8d6e63!important}.brown-400-border{border-color:#8d6e63!important}.brown-400-border-top{border-top-color:#8d6e63!important}.brown-400-border-right{border-right-color:#8d6e63!important}.brown-400-border-bottom{border-bottom-color:#8d6e63!important}.brown-400-border-left{border-left-color:#8d6e63!important}.brown-500-bg{background-color:#795548!important}.md-brown-500-bg{background-color:#795548!important;color:rgba(255,255,255,.87)}.brown-500-fg{color:#795548!important}.brown-500-border{border-color:#795548!important}.brown-500-border-top{border-top-color:#795548!important}.brown-500-border-right{border-right-color:#795548!important}.brown-500-border-bottom{border-bottom-color:#795548!important}.brown-500-border-left{border-left-color:#795548!important}.md-brown-bg{background-color:#795548!important;color:rgba(255,255,255,.87)}.brown-bg{background-color:#795548!important}.brown-fg{color:#795548!important}.brown-border{border-color:#795548!important}.brown-border-top{border-top-color:#795548!important}.brown-border-right{border-right-color:#795548!important}.brown-border-bottom{border-bottom-color:#795548!important}.brown-border-left{border-left-color:#795548!important}.brown-600-bg{background-color:#6d4c41!important}.md-brown-600-bg{background-color:#6d4c41!important;color:rgba(255,255,255,.87)}.brown-600-fg{color:#6d4c41!important}.brown-600-border{border-color:#6d4c41!important}.brown-600-border-top{border-top-color:#6d4c41!important}.brown-600-border-right{border-right-color:#6d4c41!important}.brown-600-border-bottom{border-bottom-color:#6d4c41!important}.brown-600-border-left{border-left-color:#6d4c41!important}.brown-700-bg{background-color:#5d4037!important}.md-brown-700-bg{background-color:#5d4037!important;color:rgba(255,255,255,.87)}.brown-700-fg{color:#5d4037!important}.brown-700-border{border-color:#5d4037!important}.brown-700-border-top{border-top-color:#5d4037!important}.brown-700-border-right{border-right-color:#5d4037!important}.brown-700-border-bottom{border-bottom-color:#5d4037!important}.brown-700-border-left{border-left-color:#5d4037!important}.brown-800-bg{background-color:#4e342e!important}.md-brown-800-bg{background-color:#4e342e!important;color:rgba(255,255,255,.87)}.brown-800-fg{color:#4e342e!important}.brown-800-border{border-color:#4e342e!important}.brown-800-border-top{border-top-color:#4e342e!important}.brown-800-border-right{border-right-color:#4e342e!important}.brown-800-border-bottom{border-bottom-color:#4e342e!important}.brown-800-border-left{border-left-color:#4e342e!important}.brown-900-bg{background-color:#3e2723!important}.md-brown-900-bg{background-color:#3e2723!important;color:rgba(255,255,255,.87)}.brown-900-fg{color:#3e2723!important}.brown-900-border{border-color:#3e2723!important}.brown-900-border-top{border-top-color:#3e2723!important}.brown-900-border-right{border-right-color:#3e2723!important}.brown-900-border-bottom{border-bottom-color:#3e2723!important}.brown-900-border-left{border-left-color:#3e2723!important}.brown-A100-bg{background-color:#d7ccc8!important}.md-brown-A100-bg{background-color:#d7ccc8!important;color:rgba(255,255,255,.87)}.brown-A100-fg{color:#d7ccc8!important}.brown-A100-border{border-color:#d7ccc8!important}.brown-A100-border-top{border-top-color:#d7ccc8!important}.brown-A100-border-right{border-right-color:#d7ccc8!important}.brown-A100-border-bottom{border-bottom-color:#d7ccc8!important}.brown-A100-border-left{border-left-color:#d7ccc8!important}.brown-A200-bg{background-color:#bcaaa4!important}.md-brown-A200-bg{background-color:#bcaaa4!important;color:rgba(255,255,255,.87)}.brown-A200-fg{color:#bcaaa4!important}.brown-A200-border{border-color:#bcaaa4!important}.brown-A200-border-top{border-top-color:#bcaaa4!important}.brown-A200-border-right{border-right-color:#bcaaa4!important}.brown-A200-border-bottom{border-bottom-color:#bcaaa4!important}.brown-A200-border-left{border-left-color:#bcaaa4!important}.brown-A400-bg{background-color:#8d6e63!important}.md-brown-A400-bg{background-color:#8d6e63!important;color:rgba(255,255,255,.87)}.brown-A400-fg{color:#8d6e63!important}.brown-A400-border{border-color:#8d6e63!important}.brown-A400-border-top{border-top-color:#8d6e63!important}.brown-A400-border-right{border-right-color:#8d6e63!important}.brown-A400-border-bottom{border-bottom-color:#8d6e63!important}.brown-A400-border-left{border-left-color:#8d6e63!important}.brown-A700-bg{background-color:#5d4037!important}.md-brown-A700-bg{background-color:#5d4037!important;color:rgba(255,255,255,.87)}.brown-A700-fg{color:#5d4037!important}.brown-A700-border{border-color:#5d4037!important}.brown-A700-border-top{border-top-color:#5d4037!important}.brown-A700-border-right{border-right-color:#5d4037!important}.brown-A700-border-bottom{border-bottom-color:#5d4037!important}.brown-A700-border-left{border-left-color:#5d4037!important}.grey-50-bg{background-color:#fafafa!important}.md-grey-50-bg{background-color:#fafafa!important;color:rgba(0,0,0,.87)}.grey-50-fg{color:#fafafa!important}.grey-50-border{border-color:#fafafa!important}.grey-50-border-top{border-top-color:#fafafa!important}.grey-50-border-right{border-right-color:#fafafa!important}.grey-50-border-bottom{border-bottom-color:#fafafa!important}.grey-50-border-left{border-left-color:#fafafa!important}.grey-100-bg{background-color:#f5f5f5!important}.md-grey-100-bg{background-color:#f5f5f5!important;color:rgba(0,0,0,.87)}.grey-100-fg{color:#f5f5f5!important}.grey-100-border{border-color:#f5f5f5!important}.grey-100-border-top{border-top-color:#f5f5f5!important}.grey-100-border-right{border-right-color:#f5f5f5!important}.grey-100-border-bottom{border-bottom-color:#f5f5f5!important}.grey-100-border-left{border-left-color:#f5f5f5!important}.grey-200-bg{background-color:#eee!important}.md-grey-200-bg{background-color:#eee!important;color:rgba(0,0,0,.87)}.grey-200-fg{color:#eee!important}.grey-200-border{border-color:#eee!important}.grey-200-border-top{border-top-color:#eee!important}.grey-200-border-right{border-right-color:#eee!important}.grey-200-border-bottom{border-bottom-color:#eee!important}.grey-200-border-left{border-left-color:#eee!important}.grey-300-bg{background-color:#e0e0e0!important}.md-grey-300-bg{background-color:#e0e0e0!important;color:rgba(0,0,0,.87)}.grey-300-fg{color:#e0e0e0!important}.grey-300-border{border-color:#e0e0e0!important}.grey-300-border-top{border-top-color:#e0e0e0!important}.grey-300-border-right{border-right-color:#e0e0e0!important}.grey-300-border-bottom{border-bottom-color:#e0e0e0!important}.grey-300-border-left{border-left-color:#e0e0e0!important}.grey-400-bg{background-color:#bdbdbd!important}.md-grey-400-bg{background-color:#bdbdbd!important;color:rgba(0,0,0,.87)}.grey-400-fg{color:#bdbdbd!important}.grey-400-border{border-color:#bdbdbd!important}.grey-400-border-top{border-top-color:#bdbdbd!important}.grey-400-border-right{border-right-color:#bdbdbd!important}.grey-400-border-bottom{border-bottom-color:#bdbdbd!important}.grey-400-border-left{border-left-color:#bdbdbd!important}.grey-500-bg{background-color:#9e9e9e!important}.md-grey-500-bg{background-color:#9e9e9e!important;color:rgba(0,0,0,.87)}.grey-500-fg{color:#9e9e9e!important}.grey-500-border{border-color:#9e9e9e!important}.grey-500-border-top{border-top-color:#9e9e9e!important}.grey-500-border-right{border-right-color:#9e9e9e!important}.grey-500-border-bottom{border-bottom-color:#9e9e9e!important}.grey-500-border-left{border-left-color:#9e9e9e!important}.md-grey-bg{background-color:#9e9e9e!important;color:rgba(0,0,0,.87)}.grey-bg{background-color:#9e9e9e!important}.grey-fg{color:#9e9e9e!important}.grey-border{border-color:#9e9e9e!important}.grey-border-top{border-top-color:#9e9e9e!important}.grey-border-right{border-right-color:#9e9e9e!important}.grey-border-bottom{border-bottom-color:#9e9e9e!important}.grey-border-left{border-left-color:#9e9e9e!important}.grey-600-bg{background-color:#757575!important}.md-grey-600-bg{background-color:#757575!important;color:rgba(255,255,255,.87)}.grey-600-fg{color:#757575!important}.grey-600-border{border-color:#757575!important}.grey-600-border-top{border-top-color:#757575!important}.grey-600-border-right{border-right-color:#757575!important}.grey-600-border-bottom{border-bottom-color:#757575!important}.grey-600-border-left{border-left-color:#757575!important}.grey-700-bg{background-color:#616161!important}.md-grey-700-bg{background-color:#616161!important;color:rgba(255,255,255,.87)}.grey-700-fg{color:#616161!important}.grey-700-border{border-color:#616161!important}.grey-700-border-top{border-top-color:#616161!important}.grey-700-border-right{border-right-color:#616161!important}.grey-700-border-bottom{border-bottom-color:#616161!important}.grey-700-border-left{border-left-color:#616161!important}.grey-800-bg{background-color:#424242!important}.md-grey-800-bg{background-color:#424242!important;color:rgba(255,255,255,.87)}.grey-800-fg{color:#424242!important}.grey-800-border{border-color:#424242!important}.grey-800-border-top{border-top-color:#424242!important}.grey-800-border-right{border-right-color:#424242!important}.grey-800-border-bottom{border-bottom-color:#424242!important}.grey-800-border-left{border-left-color:#424242!important}.grey-900-bg{background-color:#212121!important}.md-grey-900-bg{background-color:#212121!important;color:rgba(255,255,255,.87)}.grey-900-fg{color:#212121!important}.grey-900-border{border-color:#212121!important}.grey-900-border-top{border-top-color:#212121!important}.grey-900-border-right{border-right-color:#212121!important}.grey-900-border-bottom{border-bottom-color:#212121!important}.grey-900-border-left{border-left-color:#212121!important}.grey-1000-bg{background-color:#000!important}.md-grey-1000-bg{background-color:#000!important}.grey-1000-fg{color:#000!important}.grey-1000-border{border-color:#000!important}.grey-1000-border-top{border-top-color:#000!important}.grey-1000-border-right{border-right-color:#000!important}.grey-1000-border-bottom{border-bottom-color:#000!important}.grey-1000-border-left{border-left-color:#000!important}.grey-A100-bg{background-color:#fff!important}.md-grey-A100-bg{background-color:#fff!important;color:rgba(0,0,0,.87)}.grey-A100-fg{color:#fff!important}.grey-A100-border{border-color:#fff!important}.grey-A100-border-top{border-top-color:#fff!important}.grey-A100-border-right{border-right-color:#fff!important}.grey-A100-border-bottom{border-bottom-color:#fff!important}.grey-A100-border-left{border-left-color:#fff!important}.grey-A200-bg{background-color:#eee!important}.md-grey-A200-bg{background-color:#eee!important;color:rgba(0,0,0,.87)}.grey-A200-fg{color:#eee!important}.grey-A200-border{border-color:#eee!important}.grey-A200-border-top{border-top-color:#eee!important}.grey-A200-border-right{border-right-color:#eee!important}.grey-A200-border-bottom{border-bottom-color:#eee!important}.grey-A200-border-left{border-left-color:#eee!important}.grey-A400-bg{background-color:#bdbdbd!important}.md-grey-A400-bg{background-color:#bdbdbd!important;color:rgba(0,0,0,.87)}.grey-A400-fg{color:#bdbdbd!important}.grey-A400-border{border-color:#bdbdbd!important}.grey-A400-border-top{border-top-color:#bdbdbd!important}.grey-A400-border-right{border-right-color:#bdbdbd!important}.grey-A400-border-bottom{border-bottom-color:#bdbdbd!important}.grey-A400-border-left{border-left-color:#bdbdbd!important}.grey-A700-bg{background-color:#616161!important}.md-grey-A700-bg{background-color:#616161!important;color:rgba(0,0,0,.87)}.grey-A700-fg{color:#616161!important}.grey-A700-border{border-color:#616161!important}.grey-A700-border-top{border-top-color:#616161!important}.grey-A700-border-right{border-right-color:#616161!important}.grey-A700-border-bottom{border-bottom-color:#616161!important}.grey-A700-border-left{border-left-color:#616161!important}.blue-grey-50-bg{background-color:#eceff1!important}.md-blue-grey-50-bg{background-color:#eceff1!important;color:rgba(0,0,0,.87)}.blue-grey-50-fg{color:#eceff1!important}.blue-grey-50-border{border-color:#eceff1!important}.blue-grey-50-border-top{border-top-color:#eceff1!important}.blue-grey-50-border-right{border-right-color:#eceff1!important}.blue-grey-50-border-bottom{border-bottom-color:#eceff1!important}.blue-grey-50-border-left{border-left-color:#eceff1!important}.blue-grey-100-bg{background-color:#cfd8dc!important}.md-blue-grey-100-bg{background-color:#cfd8dc!important;color:rgba(0,0,0,.87)}.blue-grey-100-fg{color:#cfd8dc!important}.blue-grey-100-border{border-color:#cfd8dc!important}.blue-grey-100-border-top{border-top-color:#cfd8dc!important}.blue-grey-100-border-right{border-right-color:#cfd8dc!important}.blue-grey-100-border-bottom{border-bottom-color:#cfd8dc!important}.blue-grey-100-border-left{border-left-color:#cfd8dc!important}.blue-grey-200-bg{background-color:#b0bec5!important}.md-blue-grey-200-bg{background-color:#b0bec5!important;color:rgba(0,0,0,.87)}.blue-grey-200-fg{color:#b0bec5!important}.blue-grey-200-border{border-color:#b0bec5!important}.blue-grey-200-border-top{border-top-color:#b0bec5!important}.blue-grey-200-border-right{border-right-color:#b0bec5!important}.blue-grey-200-border-bottom{border-bottom-color:#b0bec5!important}.blue-grey-200-border-left{border-left-color:#b0bec5!important}.blue-grey-300-bg{background-color:#90a4ae!important}.md-blue-grey-300-bg{background-color:#90a4ae!important;color:rgba(0,0,0,.87)}.blue-grey-300-fg{color:#90a4ae!important}.blue-grey-300-border{border-color:#90a4ae!important}.blue-grey-300-border-top{border-top-color:#90a4ae!important}.blue-grey-300-border-right{border-right-color:#90a4ae!important}.blue-grey-300-border-bottom{border-bottom-color:#90a4ae!important}.blue-grey-300-border-left{border-left-color:#90a4ae!important}.blue-grey-400-bg{background-color:#78909c!important}.md-blue-grey-400-bg{background-color:#78909c!important;color:#fff}.blue-grey-400-fg{color:#78909c!important}.blue-grey-400-border{border-color:#78909c!important}.blue-grey-400-border-top{border-top-color:#78909c!important}.blue-grey-400-border-right{border-right-color:#78909c!important}.blue-grey-400-border-bottom{border-bottom-color:#78909c!important}.blue-grey-400-border-left{border-left-color:#78909c!important}.blue-grey-500-bg{background-color:#607d8b!important}.md-blue-grey-500-bg{background-color:#607d8b!important;color:#fff}.blue-grey-500-fg{color:#607d8b!important}.blue-grey-500-border{border-color:#607d8b!important}.blue-grey-500-border-top{border-top-color:#607d8b!important}.blue-grey-500-border-right{border-right-color:#607d8b!important}.blue-grey-500-border-bottom{border-bottom-color:#607d8b!important}.blue-grey-500-border-left{border-left-color:#607d8b!important}.md-blue-grey-bg{background-color:#607d8b!important;color:#fff}.blue-grey-bg{background-color:#607d8b!important}.blue-grey-fg{color:#607d8b!important}.blue-grey-border{border-color:#607d8b!important}.blue-grey-border-top{border-top-color:#607d8b!important}.blue-grey-border-right{border-right-color:#607d8b!important}.blue-grey-border-bottom{border-bottom-color:#607d8b!important}.blue-grey-border-left{border-left-color:#607d8b!important}.blue-grey-600-bg{background-color:#546e7a!important}.md-blue-grey-600-bg{background-color:#546e7a!important;color:rgba(255,255,255,.87)}.blue-grey-600-fg{color:#546e7a!important}.blue-grey-600-border{border-color:#546e7a!important}.blue-grey-600-border-top{border-top-color:#546e7a!important}.blue-grey-600-border-right{border-right-color:#546e7a!important}.blue-grey-600-border-bottom{border-bottom-color:#546e7a!important}.blue-grey-600-border-left{border-left-color:#546e7a!important}.blue-grey-700-bg{background-color:#455a64!important}.md-blue-grey-700-bg{background-color:#455a64!important;color:rgba(255,255,255,.87)}.blue-grey-700-fg{color:#455a64!important}.blue-grey-700-border{border-color:#455a64!important}.blue-grey-700-border-top{border-top-color:#455a64!important}.blue-grey-700-border-right{border-right-color:#455a64!important}.blue-grey-700-border-bottom{border-bottom-color:#455a64!important}.blue-grey-700-border-left{border-left-color:#455a64!important}.blue-grey-800-bg{background-color:#37474f!important}.md-blue-grey-800-bg{background-color:#37474f!important;color:rgba(255,255,255,.87)}.blue-grey-800-fg{color:#37474f!important}.blue-grey-800-border{border-color:#37474f!important}.blue-grey-800-border-top{border-top-color:#37474f!important}.blue-grey-800-border-right{border-right-color:#37474f!important}.blue-grey-800-border-bottom{border-bottom-color:#37474f!important}.blue-grey-800-border-left{border-left-color:#37474f!important}.blue-grey-900-bg{background-color:#263238!important}.md-blue-grey-900-bg{background-color:#263238!important;color:rgba(255,255,255,.87)}.blue-grey-900-fg{color:#263238!important}.blue-grey-900-border{border-color:#263238!important}.blue-grey-900-border-top{border-top-color:#263238!important}.blue-grey-900-border-right{border-right-color:#263238!important}.blue-grey-900-border-bottom{border-bottom-color:#263238!important}.blue-grey-900-border-left{border-left-color:#263238!important}.blue-grey-A100-bg{background-color:#cfd8dc!important}.md-blue-grey-A100-bg{background-color:#cfd8dc!important;color:rgba(255,255,255,.87)}.blue-grey-A100-fg{color:#cfd8dc!important}.blue-grey-A100-border{border-color:#cfd8dc!important}.blue-grey-A100-border-top{border-top-color:#cfd8dc!important}.blue-grey-A100-border-right{border-right-color:#cfd8dc!important}.blue-grey-A100-border-bottom{border-bottom-color:#cfd8dc!important}.blue-grey-A100-border-left{border-left-color:#cfd8dc!important}.blue-grey-A200-bg{background-color:#b0bec5!important}.md-blue-grey-A200-bg{background-color:#b0bec5!important;color:rgba(255,255,255,.87)}.blue-grey-A200-fg{color:#b0bec5!important}.blue-grey-A200-border{border-color:#b0bec5!important}.blue-grey-A200-border-top{border-top-color:#b0bec5!important}.blue-grey-A200-border-right{border-right-color:#b0bec5!important}.blue-grey-A200-border-bottom{border-bottom-color:#b0bec5!important}.blue-grey-A200-border-left{border-left-color:#b0bec5!important}.blue-grey-A400-bg{background-color:#78909c!important}.md-blue-grey-A400-bg{background-color:#78909c!important;color:rgba(255,255,255,.87)}.blue-grey-A400-fg{color:#78909c!important}.blue-grey-A400-border{border-color:#78909c!important}.blue-grey-A400-border-top{border-top-color:#78909c!important}.blue-grey-A400-border-right{border-right-color:#78909c!important}.blue-grey-A400-border-bottom{border-bottom-color:#78909c!important}.blue-grey-A400-border-left{border-left-color:#78909c!important}.blue-grey-A700-bg{background-color:#455a64!important}.md-blue-grey-A700-bg{background-color:#455a64!important;color:rgba(255,255,255,.87)}.blue-grey-A700-fg{color:#455a64!important}.blue-grey-A700-border{border-color:#455a64!important}.blue-grey-A700-border-top{border-top-color:#455a64!important}.blue-grey-A700-border-right{border-right-color:#455a64!important}.blue-grey-A700-border-bottom{border-bottom-color:#455a64!important}.blue-grey-A700-border-left{border-left-color:#455a64!important}.white-500-bg{background-color:#fff!important}.md-white-500-bg{background-color:#fff!important;color:rgba(0,0,0,.87)}.white-500-fg{color:#fff!important}.white-500-border{border-color:#fff!important}.white-500-border-top{border-top-color:#fff!important}.white-500-border-right{border-right-color:#fff!important}.white-500-border-bottom{border-bottom-color:#fff!important}.white-500-border-left{border-left-color:#fff!important}.md-white-bg{background-color:#fff!important;color:rgba(0,0,0,.87)}.white-bg{background-color:#fff!important}.white-fg{color:#fff!important}.white-border{border-color:#fff!important}.white-border-top{border-top-color:#fff!important}.white-border-right{border-right-color:#fff!important}.white-border-bottom{border-bottom-color:#fff!important}.white-border-left{border-left-color:#fff!important}.black-500-bg{background-color:#000!important}.md-black-500-bg{background-color:#000!important;color:rgba(255,255,255,.87)}.black-500-fg{color:#000!important}.black-500-border{border-color:#000!important}.black-500-border-top{border-top-color:#000!important}.black-500-border-right{border-right-color:#000!important}.black-500-border-bottom{border-bottom-color:#000!important}.black-500-border-left{border-left-color:#000!important}.md-black-bg{background-color:#000!important;color:rgba(255,255,255,.87)}.black-bg{background-color:#000!important}.black-fg{color:#000!important}.black-border{border-color:#000!important}.black-border-top{border-top-color:#000!important}.black-border-right{border-right-color:#000!important}.black-border-bottom{border-bottom-color:#000!important}.black-border-left{border-left-color:#000!important}i,md-icon[md-font-icon]{font-size:24px;width:24px;height:24px;min-width:24px;min-height:24px;line-height:24px}i.s4,md-icon[md-font-icon].s4{font-size:4px!important;width:4px!important;height:4px!important;min-width:4px!important;min-height:4px!important;line-height:4px!important}i.s6,md-icon[md-font-icon].s6{font-size:6px!important;width:6px!important;height:6px!important;min-width:6px!important;min-height:6px!important;line-height:6px!important}i.s8,md-icon[md-font-icon].s8{font-size:8px!important;width:8px!important;height:8px!important;min-width:8px!important;min-height:8px!important;line-height:8px!important}i.s10,md-icon[md-font-icon].s10{font-size:10px!important;width:10px!important;height:10px!important;min-width:10px!important;min-height:10px!important;line-height:10px!important}i.s12,md-icon[md-font-icon].s12{font-size:12px!important;width:12px!important;height:12px!important;min-width:12px!important;min-height:12px!important;line-height:12px!important}i.s14,md-icon[md-font-icon].s14{font-size:14px!important;width:14px!important;height:14px!important;min-width:14px!important;min-height:14px!important;line-height:14px!important}i.s16,md-icon[md-font-icon].s16{font-size:16px!important;width:16px!important;height:16px!important;min-width:16px!important;min-height:16px!important;line-height:16px!important}i.s18,md-icon[md-font-icon].s18{font-size:18px!important;width:18px!important;height:18px!important;min-width:18px!important;min-height:18px!important;line-height:18px!important}i.s20,md-icon[md-font-icon].s20{font-size:20px!important;width:20px!important;height:20px!important;min-width:20px!important;min-height:20px!important;line-height:20px!important}i.s22,md-icon[md-font-icon].s22{font-size:22px!important;width:22px!important;height:22px!important;min-width:22px!important;min-height:22px!important;line-height:22px!important}i.s24,md-icon[md-font-icon].s24{font-size:24px!important;width:24px!important;height:24px!important;min-width:24px!important;min-height:24px!important;line-height:24px!important}i.s26,md-icon[md-font-icon].s26{font-size:26px!important;width:26px!important;height:26px!important;min-width:26px!important;min-height:26px!important;line-height:26px!important}i.s28,md-icon[md-font-icon].s28{font-size:28px!important;width:28px!important;height:28px!important;min-width:28px!important;min-height:28px!important;line-height:28px!important}i.s30,md-icon[md-font-icon].s30{font-size:30px!important;width:30px!important;height:30px!important;min-width:30px!important;min-height:30px!important;line-height:30px!important}i.s32,md-icon[md-font-icon].s32{font-size:32px!important;width:32px!important;height:32px!important;min-width:32px!important;min-height:32px!important;line-height:32px!important}i.s34,md-icon[md-font-icon].s34{font-size:34px!important;width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important;line-height:34px!important}i.s36,md-icon[md-font-icon].s36{font-size:36px!important;width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;line-height:36px!important}i.s38,md-icon[md-font-icon].s38{font-size:38px!important;width:38px!important;height:38px!important;min-width:38px!important;min-height:38px!important;line-height:38px!important}i.s40,md-icon[md-font-icon].s40{font-size:40px!important;width:40px!important;height:40px!important;min-width:40px!important;min-height:40px!important;line-height:40px!important}i.s42,md-icon[md-font-icon].s42{font-size:42px!important;width:42px!important;height:42px!important;min-width:42px!important;min-height:42px!important;line-height:42px!important}i.s44,md-icon[md-font-icon].s44{font-size:44px!important;width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;line-height:44px!important}i.s46,md-icon[md-font-icon].s46{font-size:46px!important;width:46px!important;height:46px!important;min-width:46px!important;min-height:46px!important;line-height:46px!important}i.s48,md-icon[md-font-icon].s48{font-size:48px!important;width:48px!important;height:48px!important;min-width:48px!important;min-height:48px!important;line-height:48px!important}i.s50,md-icon[md-font-icon].s50{font-size:50px!important;width:50px!important;height:50px!important;min-width:50px!important;min-height:50px!important;line-height:50px!important}i.s52,md-icon[md-font-icon].s52{font-size:52px!important;width:52px!important;height:52px!important;min-width:52px!important;min-height:52px!important;line-height:52px!important}i.s54,md-icon[md-font-icon].s54{font-size:54px!important;width:54px!important;height:54px!important;min-width:54px!important;min-height:54px!important;line-height:54px!important}i.s56,md-icon[md-font-icon].s56{font-size:56px!important;width:56px!important;height:56px!important;min-width:56px!important;min-height:56px!important;line-height:56px!important}i.s58,md-icon[md-font-icon].s58{font-size:58px!important;width:58px!important;height:58px!important;min-width:58px!important;min-height:58px!important;line-height:58px!important}i.s60,md-icon[md-font-icon].s60{font-size:60px!important;width:60px!important;height:60px!important;min-width:60px!important;min-height:60px!important;line-height:60px!important}i.s62,md-icon[md-font-icon].s62{font-size:62px!important;width:62px!important;height:62px!important;min-width:62px!important;min-height:62px!important;line-height:62px!important}i.s64,md-icon[md-font-icon].s64{font-size:64px!important;width:64px!important;height:64px!important;min-width:64px!important;min-height:64px!important;line-height:64px!important}i.s66,md-icon[md-font-icon].s66{font-size:66px!important;width:66px!important;height:66px!important;min-width:66px!important;min-height:66px!important;line-height:66px!important}i.s68,md-icon[md-font-icon].s68{font-size:68px!important;width:68px!important;height:68px!important;min-width:68px!important;min-height:68px!important;line-height:68px!important}i.s70,md-icon[md-font-icon].s70{font-size:70px!important;width:70px!important;height:70px!important;min-width:70px!important;min-height:70px!important;line-height:70px!important}i.s72,md-icon[md-font-icon].s72{font-size:72px!important;width:72px!important;height:72px!important;min-width:72px!important;min-height:72px!important;line-height:72px!important}i.s74,md-icon[md-font-icon].s74{font-size:74px!important;width:74px!important;height:74px!important;min-width:74px!important;min-height:74px!important;line-height:74px!important}i.s76,md-icon[md-font-icon].s76{font-size:76px!important;width:76px!important;height:76px!important;min-width:76px!important;min-height:76px!important;line-height:76px!important}i.s78,md-icon[md-font-icon].s78{font-size:78px!important;width:78px!important;height:78px!important;min-width:78px!important;min-height:78px!important;line-height:78px!important}i.s80,md-icon[md-font-icon].s80{font-size:80px!important;width:80px!important;height:80px!important;min-width:80px!important;min-height:80px!important;line-height:80px!important}i.s82,md-icon[md-font-icon].s82{font-size:82px!important;width:82px!important;height:82px!important;min-width:82px!important;min-height:82px!important;line-height:82px!important}i.s84,md-icon[md-font-icon].s84{font-size:84px!important;width:84px!important;height:84px!important;min-width:84px!important;min-height:84px!important;line-height:84px!important}i.s86,md-icon[md-font-icon].s86{font-size:86px!important;width:86px!important;height:86px!important;min-width:86px!important;min-height:86px!important;line-height:86px!important}i.s88,md-icon[md-font-icon].s88{font-size:88px!important;width:88px!important;height:88px!important;min-width:88px!important;min-height:88px!important;line-height:88px!important}i.s90,md-icon[md-font-icon].s90{font-size:90px!important;width:90px!important;height:90px!important;min-width:90px!important;min-height:90px!important;line-height:90px!important}i.s92,md-icon[md-font-icon].s92{font-size:92px!important;width:92px!important;height:92px!important;min-width:92px!important;min-height:92px!important;line-height:92px!important}i.s94,md-icon[md-font-icon].s94{font-size:94px!important;width:94px!important;height:94px!important;min-width:94px!important;min-height:94px!important;line-height:94px!important}i.s96,md-icon[md-font-icon].s96{font-size:96px!important;width:96px!important;height:96px!important;min-width:96px!important;min-height:96px!important;line-height:96px!important}i.s98,md-icon[md-font-icon].s98{font-size:98px!important;width:98px!important;height:98px!important;min-width:98px!important;min-height:98px!important;line-height:98px!important}i.s100,md-icon[md-font-icon].s100{font-size:100px!important;width:100px!important;height:100px!important;min-width:100px!important;min-height:100px!important;line-height:100px!important}i.s102,md-icon[md-font-icon].s102{font-size:102px!important;width:102px!important;height:102px!important;min-width:102px!important;min-height:102px!important;line-height:102px!important}i.s104,md-icon[md-font-icon].s104{font-size:104px!important;width:104px!important;height:104px!important;min-width:104px!important;min-height:104px!important;line-height:104px!important}i.s106,md-icon[md-font-icon].s106{font-size:106px!important;width:106px!important;height:106px!important;min-width:106px!important;min-height:106px!important;line-height:106px!important}i.s108,md-icon[md-font-icon].s108{font-size:108px!important;width:108px!important;height:108px!important;min-width:108px!important;min-height:108px!important;line-height:108px!important}i.s110,md-icon[md-font-icon].s110{font-size:110px!important;width:110px!important;height:110px!important;min-width:110px!important;min-height:110px!important;line-height:110px!important}i.s112,md-icon[md-font-icon].s112{font-size:112px!important;width:112px!important;height:112px!important;min-width:112px!important;min-height:112px!important;line-height:112px!important}i.s114,md-icon[md-font-icon].s114{font-size:114px!important;width:114px!important;height:114px!important;min-width:114px!important;min-height:114px!important;line-height:114px!important}i.s116,md-icon[md-font-icon].s116{font-size:116px!important;width:116px!important;height:116px!important;min-width:116px!important;min-height:116px!important;line-height:116px!important}i.s118,md-icon[md-font-icon].s118{font-size:118px!important;width:118px!important;height:118px!important;min-width:118px!important;min-height:118px!important;line-height:118px!important}i.s120,md-icon[md-font-icon].s120{font-size:120px!important;width:120px!important;height:120px!important;min-width:120px!important;min-height:120px!important;line-height:120px!important}i.s122,md-icon[md-font-icon].s122{font-size:122px!important;width:122px!important;height:122px!important;min-width:122px!important;min-height:122px!important;line-height:122px!important}i.s124,md-icon[md-font-icon].s124{font-size:124px!important;width:124px!important;height:124px!important;min-width:124px!important;min-height:124px!important;line-height:124px!important}i.s126,md-icon[md-font-icon].s126{font-size:126px!important;width:126px!important;height:126px!important;min-width:126px!important;min-height:126px!important;line-height:126px!important}i.s128,md-icon[md-font-icon].s128{font-size:128px!important;width:128px!important;height:128px!important;min-width:128px!important;min-height:128px!important;line-height:128px!important}i.s130,md-icon[md-font-icon].s130{font-size:130px!important;width:130px!important;height:130px!important;min-width:130px!important;min-height:130px!important;line-height:130px!important}i.s132,md-icon[md-font-icon].s132{font-size:132px!important;width:132px!important;height:132px!important;min-width:132px!important;min-height:132px!important;line-height:132px!important}i.s134,md-icon[md-font-icon].s134{font-size:134px!important;width:134px!important;height:134px!important;min-width:134px!important;min-height:134px!important;line-height:134px!important}i.s136,md-icon[md-font-icon].s136{font-size:136px!important;width:136px!important;height:136px!important;min-width:136px!important;min-height:136px!important;line-height:136px!important}i.s138,md-icon[md-font-icon].s138{font-size:138px!important;width:138px!important;height:138px!important;min-width:138px!important;min-height:138px!important;line-height:138px!important}i.s140,md-icon[md-font-icon].s140{font-size:140px!important;width:140px!important;height:140px!important;min-width:140px!important;min-height:140px!important;line-height:140px!important}i.s142,md-icon[md-font-icon].s142{font-size:142px!important;width:142px!important;height:142px!important;min-width:142px!important;min-height:142px!important;line-height:142px!important}i.s144,md-icon[md-font-icon].s144{font-size:144px!important;width:144px!important;height:144px!important;min-width:144px!important;min-height:144px!important;line-height:144px!important}i.s146,md-icon[md-font-icon].s146{font-size:146px!important;width:146px!important;height:146px!important;min-width:146px!important;min-height:146px!important;line-height:146px!important}i.s148,md-icon[md-font-icon].s148{font-size:148px!important;width:148px!important;height:148px!important;min-width:148px!important;min-height:148px!important;line-height:148px!important}i.s150,md-icon[md-font-icon].s150{font-size:150px!important;width:150px!important;height:150px!important;min-width:150px!important;min-height:150px!important;line-height:150px!important}i.s152,md-icon[md-font-icon].s152{font-size:152px!important;width:152px!important;height:152px!important;min-width:152px!important;min-height:152px!important;line-height:152px!important}i.s154,md-icon[md-font-icon].s154{font-size:154px!important;width:154px!important;height:154px!important;min-width:154px!important;min-height:154px!important;line-height:154px!important}i.s156,md-icon[md-font-icon].s156{font-size:156px!important;width:156px!important;height:156px!important;min-width:156px!important;min-height:156px!important;line-height:156px!important}i.s158,md-icon[md-font-icon].s158{font-size:158px!important;width:158px!important;height:158px!important;min-width:158px!important;min-height:158px!important;line-height:158px!important}i.s160,md-icon[md-font-icon].s160{font-size:160px!important;width:160px!important;height:160px!important;min-width:160px!important;min-height:160px!important;line-height:160px!important}i.s162,md-icon[md-font-icon].s162{font-size:162px!important;width:162px!important;height:162px!important;min-width:162px!important;min-height:162px!important;line-height:162px!important}i.s164,md-icon[md-font-icon].s164{font-size:164px!important;width:164px!important;height:164px!important;min-width:164px!important;min-height:164px!important;line-height:164px!important}i.s166,md-icon[md-font-icon].s166{font-size:166px!important;width:166px!important;height:166px!important;min-width:166px!important;min-height:166px!important;line-height:166px!important}i.s168,md-icon[md-font-icon].s168{font-size:168px!important;width:168px!important;height:168px!important;min-width:168px!important;min-height:168px!important;line-height:168px!important}i.s170,md-icon[md-font-icon].s170{font-size:170px!important;width:170px!important;height:170px!important;min-width:170px!important;min-height:170px!important;line-height:170px!important}i.s172,md-icon[md-font-icon].s172{font-size:172px!important;width:172px!important;height:172px!important;min-width:172px!important;min-height:172px!important;line-height:172px!important}i.s174,md-icon[md-font-icon].s174{font-size:174px!important;width:174px!important;height:174px!important;min-width:174px!important;min-height:174px!important;line-height:174px!important}i.s176,md-icon[md-font-icon].s176{font-size:176px!important;width:176px!important;height:176px!important;min-width:176px!important;min-height:176px!important;line-height:176px!important}i.s178,md-icon[md-font-icon].s178{font-size:178px!important;width:178px!important;height:178px!important;min-width:178px!important;min-height:178px!important;line-height:178px!important}i.s180,md-icon[md-font-icon].s180{font-size:180px!important;width:180px!important;height:180px!important;min-width:180px!important;min-height:180px!important;line-height:180px!important}i.s182,md-icon[md-font-icon].s182{font-size:182px!important;width:182px!important;height:182px!important;min-width:182px!important;min-height:182px!important;line-height:182px!important}i.s184,md-icon[md-font-icon].s184{font-size:184px!important;width:184px!important;height:184px!important;min-width:184px!important;min-height:184px!important;line-height:184px!important}i.s186,md-icon[md-font-icon].s186{font-size:186px!important;width:186px!important;height:186px!important;min-width:186px!important;min-height:186px!important;line-height:186px!important}i.s188,md-icon[md-font-icon].s188{font-size:188px!important;width:188px!important;height:188px!important;min-width:188px!important;min-height:188px!important;line-height:188px!important}i.s190,md-icon[md-font-icon].s190{font-size:190px!important;width:190px!important;height:190px!important;min-width:190px!important;min-height:190px!important;line-height:190px!important}i.s192,md-icon[md-font-icon].s192{font-size:192px!important;width:192px!important;height:192px!important;min-width:192px!important;min-height:192px!important;line-height:192px!important}i.s194,md-icon[md-font-icon].s194{font-size:194px!important;width:194px!important;height:194px!important;min-width:194px!important;min-height:194px!important;line-height:194px!important}i.s196,md-icon[md-font-icon].s196{font-size:196px!important;width:196px!important;height:196px!important;min-width:196px!important;min-height:196px!important;line-height:196px!important}i.s198,md-icon[md-font-icon].s198{font-size:198px!important;width:198px!important;height:198px!important;min-width:198px!important;min-height:198px!important;line-height:198px!important}i.s200,md-icon[md-font-icon].s200{font-size:200px!important;width:200px!important;height:200px!important;min-width:200px!important;min-height:200px!important;line-height:200px!important}i.s202,md-icon[md-font-icon].s202{font-size:202px!important;width:202px!important;height:202px!important;min-width:202px!important;min-height:202px!important;line-height:202px!important}i.s204,md-icon[md-font-icon].s204{font-size:204px!important;width:204px!important;height:204px!important;min-width:204px!important;min-height:204px!important;line-height:204px!important}i.s206,md-icon[md-font-icon].s206{font-size:206px!important;width:206px!important;height:206px!important;min-width:206px!important;min-height:206px!important;line-height:206px!important}i.s208,md-icon[md-font-icon].s208{font-size:208px!important;width:208px!important;height:208px!important;min-width:208px!important;min-height:208px!important;line-height:208px!important}i.s210,md-icon[md-font-icon].s210{font-size:210px!important;width:210px!important;height:210px!important;min-width:210px!important;min-height:210px!important;line-height:210px!important}i.s212,md-icon[md-font-icon].s212{font-size:212px!important;width:212px!important;height:212px!important;min-width:212px!important;min-height:212px!important;line-height:212px!important}i.s214,md-icon[md-font-icon].s214{font-size:214px!important;width:214px!important;height:214px!important;min-width:214px!important;min-height:214px!important;line-height:214px!important}i.s216,md-icon[md-font-icon].s216{font-size:216px!important;width:216px!important;height:216px!important;min-width:216px!important;min-height:216px!important;line-height:216px!important}i.s218,md-icon[md-font-icon].s218{font-size:218px!important;width:218px!important;height:218px!important;min-width:218px!important;min-height:218px!important;line-height:218px!important}i.s220,md-icon[md-font-icon].s220{font-size:220px!important;width:220px!important;height:220px!important;min-width:220px!important;min-height:220px!important;line-height:220px!important}i.s222,md-icon[md-font-icon].s222{font-size:222px!important;width:222px!important;height:222px!important;min-width:222px!important;min-height:222px!important;line-height:222px!important}i.s224,md-icon[md-font-icon].s224{font-size:224px!important;width:224px!important;height:224px!important;min-width:224px!important;min-height:224px!important;line-height:224px!important}i.s226,md-icon[md-font-icon].s226{font-size:226px!important;width:226px!important;height:226px!important;min-width:226px!important;min-height:226px!important;line-height:226px!important}i.s228,md-icon[md-font-icon].s228{font-size:228px!important;width:228px!important;height:228px!important;min-width:228px!important;min-height:228px!important;line-height:228px!important}i.s230,md-icon[md-font-icon].s230{font-size:230px!important;width:230px!important;height:230px!important;min-width:230px!important;min-height:230px!important;line-height:230px!important}i.s232,md-icon[md-font-icon].s232{font-size:232px!important;width:232px!important;height:232px!important;min-width:232px!important;min-height:232px!important;line-height:232px!important}i.s234,md-icon[md-font-icon].s234{font-size:234px!important;width:234px!important;height:234px!important;min-width:234px!important;min-height:234px!important;line-height:234px!important}i.s236,md-icon[md-font-icon].s236{font-size:236px!important;width:236px!important;height:236px!important;min-width:236px!important;min-height:236px!important;line-height:236px!important}i.s238,md-icon[md-font-icon].s238{font-size:238px!important;width:238px!important;height:238px!important;min-width:238px!important;min-height:238px!important;line-height:238px!important}i.s240,md-icon[md-font-icon].s240{font-size:240px!important;width:240px!important;height:240px!important;min-width:240px!important;min-height:240px!important;line-height:240px!important}i.s242,md-icon[md-font-icon].s242{font-size:242px!important;width:242px!important;height:242px!important;min-width:242px!important;min-height:242px!important;line-height:242px!important}i.s244,md-icon[md-font-icon].s244{font-size:244px!important;width:244px!important;height:244px!important;min-width:244px!important;min-height:244px!important;line-height:244px!important}i.s246,md-icon[md-font-icon].s246{font-size:246px!important;width:246px!important;height:246px!important;min-width:246px!important;min-height:246px!important;line-height:246px!important}i.s248,md-icon[md-font-icon].s248{font-size:248px!important;width:248px!important;height:248px!important;min-width:248px!important;min-height:248px!important;line-height:248px!important}i.s250,md-icon[md-font-icon].s250{font-size:250px!important;width:250px!important;height:250px!important;min-width:250px!important;min-height:250px!important;line-height:250px!important}i.s252,md-icon[md-font-icon].s252{font-size:252px!important;width:252px!important;height:252px!important;min-width:252px!important;min-height:252px!important;line-height:252px!important}i.s254,md-icon[md-font-icon].s254{font-size:254px!important;width:254px!important;height:254px!important;min-width:254px!important;min-height:254px!important;line-height:254px!important}i.s256,md-icon[md-font-icon].s256{font-size:256px!important;width:256px!important;height:256px!important;min-width:256px!important;min-height:256px!important;line-height:256px!important}@font-face{font-family:icomoon;src:url(../assets/icons/fonts/icomoon.eot?5km1tg);src:url(../assets/icons/fonts/icomoon.eot?#iefix5km1tg) format("embedded-opentype"),url(../assets/icons/fonts/icomoon.ttf?5km1tg) format("truetype"),url(../assets/icons/fonts/icomoon.woff?5km1tg) format("woff"),url(../assets/icons/fonts/icomoon.svg?5km1tg#icomoon) format("svg");font-weight:400;font-style:normal}[class*=' icon-'],[class^=icon-]{font-family:icomoon;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-account-alert:before{content:'\e600'}.icon-account-box-outline:before{content:'\e601'}.icon-account-box:before{content:'\e602'}.icon-account-check:before{content:'\e603'}.icon-account-circle:before{content:'\e604'}.icon-account-key:before{content:'\e605'}.icon-account-location:before{content:'\e606'}.icon-account-minus:before{content:'\e607'}.icon-account-multiple-outline:before{content:'\e608'}.icon-account-multiple-plus:before{content:'\e609'}.icon-account-multiple:before{content:'\e60a'}.icon-account-network:before{content:'\e60b'}.icon-account-outline:before{content:'\e60c'}.icon-account-plus:before{content:'\e60d'}.icon-account-remove:before{content:'\e60e'}.icon-account-search:before{content:'\e60f'}.icon-account-switch:before{content:'\e610'}.icon-account:before{content:'\e611'}.icon-airballoon:before{content:'\e612'}.icon-airplane-off:before{content:'\e613'}.icon-airplane:before{content:'\e614'}.icon-alarm-check:before{content:'\e615'}.icon-alarm-multiple:before{content:'\e616'}.icon-alarm-off:before{content:'\e617'}.icon-alarm-plus:before{content:'\e618'}.icon-alarm:before{content:'\e619'}.icon-album:before{content:'\e61a'}.icon-alert-box:before{content:'\e61b'}.icon-alert-circle:before{content:'\e61c'}.icon-alert-octagon:before{content:'\e61d'}.icon-alert:before{content:'\e61e'}.icon-alpha:before{content:'\e61f'}.icon-alphabetical:before{content:'\e620'}.icon-amazon-clouddrive:before{content:'\e621'}.icon-amazon:before{content:'\e622'}.icon-ambulance:before{content:'\e623'}.icon-android-debug-bridge:before{content:'\e624'}.icon-android-studio:before{content:'\e625'}.icon-android:before{content:'\e626'}.icon-apple-finder:before{content:'\e627'}.icon-apple-ios:before{content:'\e628'}.icon-apple-mobileme:before{content:'\e629'}.icon-apple-safari:before{content:'\e62a'}.icon-apple:before{content:'\e62b'}.icon-appnet:before{content:'\e62c'}.icon-apps:before{content:'\e62d'}.icon-archive:before{content:'\e62e'}.icon-arrange-bring-forward:before{content:'\e62f'}.icon-arrange-bring-to-front:before{content:'\e630'}.icon-arrange-send-backward:before{content:'\e631'}.icon-arrange-send-to-back:before{content:'\e632'}.icon-arrow-all:before{content:'\e633'}.icon-arrow-bottom-left:before{content:'\e634'}.icon-arrow-bottom-right:before{content:'\e635'}.icon-arrow-collapse:before{content:'\e636'}.icon-arrow-down-bold-circle-outline:before{content:'\e637'}.icon-arrow-down-bold-circle:before{content:'\e638'}.icon-arrow-down-bold-hexagon-outline:before{content:'\e639'}.icon-arrow-down-bold:before{content:'\e63a'}.icon-arrow-down:before{content:'\e63b'}.icon-arrow-expand:before{content:'\e63c'}.icon-arrow-left-bold-circle-outline:before{content:'\e63d'}.icon-arrow-left-bold-circle:before{content:'\e63e'}.icon-arrow-left-bold-hexagon-outline:before{content:'\e63f'}.icon-arrow-left-bold:before{content:'\e640'}.icon-arrow-left:before{content:'\e641'}.icon-arrow-right-bold-circle-outline:before{content:'\e642'}.icon-arrow-right-bold-circle:before{content:'\e643'}.icon-arrow-right-bold-hexagon-outline:before{content:'\e644'}.icon-arrow-right-bold:before{content:'\e645'}.icon-arrow-right:before{content:'\e646'}.icon-arrow-top-left:before{content:'\e647'}.icon-arrow-top-right:before{content:'\e648'}.icon-arrow-up-bold-circle-outline:before{content:'\e649'}.icon-arrow-up-bold-circle:before{content:'\e64a'}.icon-arrow-up-bold-hexagon-outline:before{content:'\e64b'}.icon-arrow-up-bold:before{content:'\e64c'}.icon-arrow-up:before{content:'\e64d'}.icon-at:before{content:'\e64e'}.icon-attachment:before{content:'\e64f'}.icon-audiobook:before{content:'\e650'}.icon-auto-fix:before{content:'\e651'}.icon-auto-upload:before{content:'\e652'}.icon-baby:before{content:'\e653'}.icon-backburger:before{content:'\e654'}.icon-backup-restore:before{content:'\e655'}.icon-bank:before{content:'\e656'}.icon-barcode:before{content:'\e657'}.icon-barley:before{content:'\e658'}.icon-barrel:before{content:'\e659'}.icon-basecamp:before{content:'\e65a'}.icon-basket-fill:before{content:'\e65b'}.icon-basket-unfill:before{content:'\e65c'}.icon-basket:before{content:'\e65d'}.icon-battery-10:before{content:'\e65e'}.icon-battery-20:before{content:'\e65f'}.icon-battery-30:before{content:'\e660'}.icon-battery-40:before{content:'\e661'}.icon-battery-50:before{content:'\e662'}.icon-battery-60:before{content:'\e663'}.icon-battery-70:before{content:'\e664'}.icon-battery-80:before{content:'\e665'}.icon-battery-90:before{content:'\e666'}.icon-battery-alert:before{content:'\e667'}.icon-battery-charging-20:before{content:'\e668'}.icon-battery-charging-30:before{content:'\e669'}.icon-battery-charging-40:before{content:'\e66a'}.icon-battery-charging-60:before{content:'\e66b'}.icon-battery-charging-80:before{content:'\e66c'}.icon-battery-charging-90:before{content:'\e66d'}.icon-battery-charging-100:before{content:'\e66e'}.icon-battery-minus:before{content:'\e66f'}.icon-battery-negative:before{content:'\e670'}.icon-battery-outline:before{content:'\e671'}.icon-battery-plus:before{content:'\e672'}.icon-battery-positive:before{content:'\e673'}.icon-battery-standard:before{content:'\e674'}.icon-battery-unknown:before{content:'\e675'}.icon-battery:before{content:'\e676'}.icon-beach:before{content:'\e677'}.icon-beaker-empty-outline:before{content:'\e678'}.icon-beaker-empty:before{content:'\e679'}.icon-beaker-outline:before{content:'\e67a'}.icon-beaker:before{content:'\e67b'}.icon-beats:before{content:'\e67c'}.icon-beer:before{content:'\e67d'}.icon-behance:before{content:'\e67e'}.icon-bell-off:before{content:'\e67f'}.icon-bell-outline:before{content:'\e680'}.icon-bell-ring-outline:before{content:'\e681'}.icon-bell-ring:before{content:'\e682'}.icon-bell-sleep:before{content:'\e683'}.icon-bell:before{content:'\e684'}.icon-beta:before{content:'\e685'}.icon-bike:before{content:'\e686'}.icon-bing:before{content:'\e687'}.icon-binoculars:before{content:'\e688'}.icon-bio:before{content:'\e689'}.icon-bitbucket:before{content:'\e68a'}.icon-black-mesa:before{content:'\e68b'}.icon-blackberry:before{content:'\e68c'}.icon-blinds:before{content:'\e68d'}.icon-block-helper:before{content:'\e68e'}.icon-blogger:before{content:'\e68f'}.icon-bluetooth-audio:before{content:'\e690'}.icon-bluetooth-connect:before{content:'\e691'}.icon-bluetooth-settings:before{content:'\e692'}.icon-bluetooth-transfer:before{content:'\e693'}.icon-bluetooth:before{content:'\e694'}.icon-blur-linear:before{content:'\e695'}.icon-blur-off:before{content:'\e696'}.icon-blur-radial:before{content:'\e697'}.icon-blur:before{content:'\e698'}.icon-bone:before{content:'\e699'}.icon-book-multiple-variant:before{content:'\e69a'}.icon-book-multiple:before{content:'\e69b'}.icon-book-open:before{content:'\e69c'}.icon-book-variant:before{content:'\e69d'}.icon-book:before{content:'\e69e'}.icon-bookmark-check:before{content:'\e69f'}.icon-bookmark-music:before{content:'\e6a0'}.icon-bookmark-outline-plus:before{content:'\e6a1'}.icon-bookmark-outline:before{content:'\e6a2'}.icon-bookmark-plus:before{content:'\e6a3'}.icon-bookmark-remove:before{content:'\e6a4'}.icon-bookmark:before{content:'\e6a5'}.icon-border-all:before{content:'\e6a6'}.icon-border-bottom:before{content:'\e6a7'}.icon-border-color:before{content:'\e6a8'}.icon-border-horizontal:before{content:'\e6a9'}.icon-border-inside:before{content:'\e6aa'}.icon-border-left:before{content:'\e6ab'}.icon-border-none:before{content:'\e6ac'}.icon-border-outside:before{content:'\e6ad'}.icon-border-right:before{content:'\e6ae'}.icon-border-top:before{content:'\e6af'}.icon-border-vertical:before{content:'\e6b0'}.icon-bowling:before{content:'\e6b1'}.icon-box-download:before{content:'\e6b2'}.icon-box-upload:before{content:'\e6b3'}.icon-box:before{content:'\e6b4'}.icon-briefcase-checked:before{content:'\e6b5'}.icon-briefcase-download:before{content:'\e6b6'}.icon-briefcase-upload:before{content:'\e6b7'}.icon-briefcase:before{content:'\e6b8'}.icon-brightness-1:before{content:'\e6b9'}.icon-brightness-2:before{content:'\e6ba'}.icon-brightness-3:before{content:'\e6bb'}.icon-brightness-4:before{content:'\e6bc'}.icon-brightness-5:before{content:'\e6bd'}.icon-brightness-6:before{content:'\e6be'}.icon-brightness-7:before{content:'\e6bf'}.icon-brightness-auto:before{content:'\e6c0'}.icon-brightness:before{content:'\e6c1'}.icon-broom:before{content:'\e6c2'}.icon-brush:before{content:'\e6c3'}.icon-bug:before{content:'\e6c4'}.icon-bulletin-board:before{content:'\e6c5'}.icon-bullhorn:before{content:'\e6c6'}.icon-bus:before{content:'\e6c7'}.icon-cake-variant:before{content:'\e6c8'}.icon-cake:before{content:'\e6c9'}.icon-calculator:before{content:'\e6ca'}.icon-calendar-blank:before{content:'\e6cb'}.icon-calendar-check-multiple:before{content:'\e6cc'}.icon-calendar-check:before{content:'\e6cd'}.icon-calendar-clock:before{content:'\e6ce'}.icon-calendar-multiple:before{content:'\e6cf'}.icon-calendar-plus:before{content:'\e6d0'}.icon-calendar-remove:before{content:'\e6d1'}.icon-calendar-select:before{content:'\e6d2'}.icon-calendar-text:before{content:'\e6d3'}.icon-calendar-today:before{content:'\e6d4'}.icon-calendar:before{content:'\e6d5'}.icon-camcorder-box-off:before{content:'\e6d6'}.icon-camcorder-box:before{content:'\e6d7'}.icon-camcorder-off:before{content:'\e6d8'}.icon-camcorder:before{content:'\e6d9'}.icon-camera-front-variant:before{content:'\e6da'}.icon-camera-front:before{content:'\e6db'}.icon-camera-iris:before{content:'\e6dc'}.icon-camera-party-mode:before{content:'\e6dd'}.icon-camera-rear-variant:before{content:'\e6de'}.icon-camera-rear:before{content:'\e6df'}.icon-camera-switch:before{content:'\e6e0'}.icon-camera-timer:before{content:'\e6e1'}.icon-camera:before{content:'\e6e2'}.icon-cancel:before{content:'\e6e3'}.icon-candycane:before{content:'\e6e4'}.icon-car-wash:before{content:'\e6e5'}.icon-car:before{content:'\e6e6'}.icon-carrot:before{content:'\e6e7'}.icon-cart-outline:before{content:'\e6e8'}.icon-cart:before{content:'\e6e9'}.icon-cash-100:before{content:'\e6ea'}.icon-cash-multiple:before{content:'\e6eb'}.icon-cash-usd:before{content:'\e6ec'}.icon-cash:before{content:'\e6ed'}.icon-cast-connected:before{content:'\e6ee'}.icon-cast:before{content:'\e6ef'}.icon-castle:before{content:'\e6f0'}.icon-cat:before{content:'\e6f1'}.icon-cellphone-android:before{content:'\e6f2'}.icon-cellphone-dock:before{content:'\e6f3'}.icon-cellphone-iphone:before{content:'\e6f4'}.icon-cellphone-link-off:before{content:'\e6f5'}.icon-cellphone-link:before{content:'\e6f6'}.icon-cellphone-settings:before{content:'\e6f7'}.icon-cellphone:before{content:'\e6f8'}.icon-chair-school:before{content:'\e6f9'}.icon-chart-arc:before{content:'\e6fa'}.icon-chart-areaspline:before{content:'\e6fb'}.icon-chart-bar:before{content:'\e6fc'}.icon-chart-histogram:before{content:'\e6fd'}.icon-chart-line:before{content:'\e6fe'}.icon-chart-pie:before{content:'\e6ff'}.icon-check-all:before{content:'\e700'}.icon-check-bookmark:before{content:'\e701'}.icon-check-circle:before{content:'\e702'}.icon-check:before{content:'\e703'}.icon-checkbox-blank-circle-outline:before{content:'\e704'}.icon-checkbox-blank-circle:before{content:'\e705'}.icon-checkbox-blank-outline:before{content:'\e706'}.icon-checkbox-blank:before{content:'\e707'}.icon-checkbox-marked-circle-outline:before{content:'\e708'}.icon-checkbox-marked-circle:before{content:'\e709'}.icon-checkbox-marked-outline:before{content:'\e70a'}.icon-checkbox-marked:before{content:'\e70b'}.icon-checkbox-multiple-blank-outline:before{content:'\e70c'}.icon-checkbox-multiple-blank:before{content:'\e70d'}.icon-checkbox-multiple-marked-outline:before{content:'\e70e'}.icon-checkbox-multiple-marked:before{content:'\e70f'}.icon-checkerboard:before{content:'\e710'}.icon-chevron-double-down:before{content:'\e711'}.icon-chevron-double-left:before{content:'\e712'}.icon-chevron-double-right:before{content:'\e713'}.icon-chevron-double-up:before{content:'\e714'}.icon-chevron-down:before{content:'\e715'}.icon-chevron-left:before{content:'\e716'}.icon-chevron-right:before{content:'\e717'}.icon-chevron-up:before{content:'\e718'}.icon-church:before{content:'\e719'}.icon-cisco-webex:before{content:'\e71a'}.icon-city:before{content:'\e71b'}.icon-clapperboard:before{content:'\e71c'}.icon-clipboard-account:before{content:'\e71d'}.icon-clipboard-alert:before{content:'\e71e'}.icon-clipboard-arrow-down:before{content:'\e71f'}.icon-clipboard-arrow-left:before{content:'\e720'}.icon-clipboard-check:before{content:'\e721'}.icon-clipboard-outline:before{content:'\e722'}.icon-clipboard-text:before{content:'\e723'}.icon-clipboard:before{content:'\e724'}.icon-clippy:before{content:'\e725'}.icon-clock-fast:before{content:'\e726'}.icon-clock:before{content:'\e727'}.icon-close-circle-outline:before{content:'\e728'}.icon-close-circle:before{content:'\e729'}.icon-close-network:before{content:'\e72a'}.icon-close:before{content:'\e72b'}.icon-closed-caption:before{content:'\e72c'}.icon-cloud-check:before{content:'\e72d'}.icon-cloud-circle:before{content:'\e72e'}.icon-cloud-download:before{content:'\e72f'}.icon-cloud-outline-off:before{content:'\e730'}.icon-cloud-outline:before{content:'\e731'}.icon-cloud-upload:before{content:'\e732'}.icon-cloud:before{content:'\e733'}.icon-code-array:before{content:'\e734'}.icon-code-braces:before{content:'\e735'}.icon-code-equal:before{content:'\e736'}.icon-code-greater-than-or-equal:before{content:'\e737'}.icon-code-greater-than:before{content:'\e738'}.icon-code-less-than-or-equal:before{content:'\e739'}.icon-code-less-than:before{content:'\e73a'}.icon-code-not-equal-variant:before{content:'\e73b'}.icon-code-not-equal:before{content:'\e73c'}.icon-code-string:before{content:'\e73d'}.icon-code-tags:before{content:'\e73e'}.icon-codepen:before{content:'\e73f'}.icon-coffee-to-go:before{content:'\e740'}.icon-coffee:before{content:'\e741'}.icon-cog-box:before{content:'\e742'}.icon-cog:before{content:'\e743'}.icon-coin:before{content:'\e744'}.icon-color-helper:before{content:'\e745'}.icon-comment-account-outline:before{content:'\e746'}.icon-comment-account:before{content:'\e747'}.icon-comment-alert-outline:before{content:'\e748'}.icon-comment-alert:before{content:'\e749'}.icon-comment-check-outline:before{content:'\e74a'}.icon-comment-check:before{content:'\e74b'}.icon-comment-multipe-outline:before{content:'\e74c'}.icon-comment-outline:before{content:'\e74d'}.icon-comment-plus-outline:before{content:'\e74e'}.icon-comment-processing-outline:before{content:'\e74f'}.icon-comment-processing:before{content:'\e750'}.icon-comment-remove-outline:before{content:'\e751'}.icon-comment-text-outline:before{content:'\e752'}.icon-comment-text:before{content:'\e753'}.icon-comment:before{content:'\e754'}.icon-compare:before{content:'\e755'}.icon-compass-outline:before{content:'\e756'}.icon-compass:before{content:'\e757'}.icon-console:before{content:'\e758'}.icon-content-copy:before{content:'\e759'}.icon-content-cut:before{content:'\e75a'}.icon-content-duplicate:before{content:'\e75b'}.icon-content-paste:before{content:'\e75c'}.icon-content-save-all:before{content:'\e75d'}.icon-content-save:before{content:'\e75e'}.icon-contrast-box:before{content:'\e75f'}.icon-contrast-circle:before{content:'\e760'}.icon-contrast:before{content:'\e761'}.icon-controller-xbox:before{content:'\e762'}.icon-cow:before{content:'\e763'}.icon-credit-card-multiple:before{content:'\e764'}.icon-credit-card:before{content:'\e765'}.icon-crop-free:before{content:'\e766'}.icon-crop-landscape:before{content:'\e767'}.icon-crop-portrait:before{content:'\e768'}.icon-crop-square:before{content:'\e769'}.icon-crop:before{content:'\e76a'}.icon-crosshairs-gps:before{content:'\e76b'}.icon-crosshairs:before{content:'\e76c'}.icon-crown:before{content:'\e76d'}.icon-cube-outline:before{content:'\e76e'}.icon-cube-unfolded:before{content:'\e76f'}.icon-cube:before{content:'\e770'}.icon-cup-water:before{content:'\e771'}.icon-cup:before{content:'\e772'}.icon-currency-btc:before{content:'\e773'}.icon-currency-eur:before{content:'\e774'}.icon-currency-gbp:before{content:'\e775'}.icon-currency-inr:before{content:'\e776'}.icon-currency-rub:before{content:'\e777'}.icon-currency-try:before{content:'\e778'}.icon-currency-usd:before{content:'\e779'}.icon-cursor-default-outline:before{content:'\e77a'}.icon-cursor-default:before{content:'\e77b'}.icon-cursor-move:before{content:'\e77c'}.icon-cursor-pointer:before{content:'\e77d'}.icon-data:before{content:'\e77e'}.icon-debug-step-into:before{content:'\e77f'}.icon-debug-step-out:before{content:'\e780'}.icon-debug-step-over:before{content:'\e781'}.icon-decimal-decrease:before{content:'\e782'}.icon-decimal-increase:before{content:'\e783'}.icon-delete-variant:before{content:'\e784'}.icon-delete:before{content:'\e785'}.icon-deskphone:before{content:'\e786'}.icon-desktop-mac:before{content:'\e787'}.icon-desktop-tower:before{content:'\e788'}.icon-details:before{content:'\e789'}.icon-deviantart:before{content:'\e78a'}.icon-diamond:before{content:'\e78b'}.icon-dice-1:before{content:'\e78c'}.icon-dice-2:before{content:'\e78d'}.icon-dice-3:before{content:'\e78e'}.icon-dice-4:before{content:'\e78f'}.icon-dice-5:before{content:'\e790'}.icon-dice-6:before{content:'\e791'}.icon-dice:before{content:'\e792'}.icon-directions:before{content:'\e793'}.icon-disk-alert:before{content:'\e794'}.icon-disqus-outline:before{content:'\e795'}.icon-disqus:before{content:'\e796'}.icon-division-box:before{content:'\e797'}.icon-division:before{content:'\e798'}.icon-dns:before{content:'\e799'}.icon-document:before{content:'\e79a'}.icon-domain:before{content:'\e79b'}.icon-dots-horizontal:before{content:'\e79c'}.icon-dots-vertical:before{content:'\e79d'}.icon-download:before{content:'\e79e'}.icon-drag-horizontal:before{content:'\e79f'}.icon-drag-vertical:before{content:'\e7a0'}.icon-drag:before{content:'\e7a1'}.icon-drawing-box:before{content:'\e7a2'}.icon-drawing:before{content:'\e7a3'}.icon-dribbble-box:before{content:'\e7a4'}.icon-dribbble:before{content:'\e7a5'}.icon-drone:before{content:'\e7a6'}.icon-dropbox:before{content:'\e7a7'}.icon-drupal:before{content:'\e7a8'}.icon-duck:before{content:'\e7a9'}.icon-dumbbell:before{content:'\e7aa'}.icon-earth-off:before{content:'\e7ab'}.icon-earth:before{content:'\e7ac'}.icon-ebay:before{content:'\e7ad'}.icon-edge:before{content:'\e7ae'}.icon-eject:before{content:'\e7af'}.icon-elevation-decline:before{content:'\e7b0'}.icon-elevation-rise:before{content:'\e7b1'}.icon-elevator:before{content:'\e7b2'}.icon-email-open:before{content:'\e7b3'}.icon-email-secure:before{content:'\e7b4'}.icon-email:before{content:'\e7b5'}.icon-emoticon-cool:before{content:'\e7b6'}.icon-emoticon-devil:before{content:'\e7b7'}.icon-emoticon-happy:before{content:'\e7b8'}.icon-emoticon-neutral:before{content:'\e7b9'}.icon-emoticon-poop:before{content:'\e7ba'}.icon-emoticon-sad:before{content:'\e7bb'}.icon-emoticon-tongue:before{content:'\e7bc'}.icon-emoticon:before{content:'\e7bd'}.icon-engine-outline:before{content:'\e7be'}.icon-engine:before{content:'\e7bf'}.icon-equal-box:before{content:'\e7c0'}.icon-equal:before{content:'\e7c1'}.icon-eraser:before{content:'\e7c2'}.icon-escalator:before{content:'\e7c3'}.icon-etsy:before{content:'\e7c4'}.icon-evernote:before{content:'\e7c5'}.icon-exclamation:before{content:'\e7c6'}.icon-exit-to-app:before{content:'\e7c7'}.icon-export:before{content:'\e7c8'}.icon-eye-off:before{content:'\e7c9'}.icon-eye:before{content:'\e7ca'}.icon-eyedropper-variant:before{content:'\e7cb'}.icon-eyedropper:before{content:'\e7cc'}.icon-facebook-box:before{content:'\e7cd'}.icon-facebook:before{content:'\e7ce'}.icon-factory:before{content:'\e7cf'}.icon-fan:before{content:'\e7d0'}.icon-fast-forward:before{content:'\e7d1'}.icon-ferry:before{content:'\e7d2'}.icon-file-cloud:before{content:'\e7d3'}.icon-file-delimited:before{content:'\e7d4'}.icon-file-document-box:before{content:'\e7d5'}.icon-file-document:before{content:'\e7d6'}.icon-file-excel-box:before{content:'\e7d7'}.icon-file-excel:before{content:'\e7d8'}.icon-file-find:before{content:'\e7d9'}.icon-file-hidden:before{content:'\e7da'}.icon-file-image-box:before{content:'\e7db'}.icon-file-image:before{content:'\e7dc'}.icon-file-multiple:before{content:'\e7dd'}.icon-file-music:before{content:'\e7de'}.icon-file-outline:before{content:'\e7df'}.icon-file-pdf-box:before{content:'\e7e0'}.icon-file-pdf:before{content:'\e7e1'}.icon-file-powerpoint-box:before{content:'\e7e2'}.icon-file-powerpoint:before{content:'\e7e3'}.icon-file-presentation-box:before{content:'\e7e4'}.icon-file-video:before{content:'\e7e5'}.icon-file-word-box:before{content:'\e7e6'}.icon-file-word:before{content:'\e7e7'}.icon-file-xml:before{content:'\e7e8'}.icon-file:before{content:'\e7e9'}.icon-fill:before{content:'\e7ea'}.icon-film:before{content:'\e7eb'}.icon-filmstrip-off:before{content:'\e7ec'}.icon-filmstrip:before{content:'\e7ed'}.icon-filter-outline:before{content:'\e7ee'}.icon-filter-remove-outline:before{content:'\e7ef'}.icon-filter-remove:before{content:'\e7f0'}.icon-filter-variant:before{content:'\e7f1'}.icon-filter:before{content:'\e7f2'}.icon-fire:before{content:'\e7f3'}.icon-fish:before{content:'\e7f4'}.icon-flag-checkered-variant:before{content:'\e7f5'}.icon-flag-checkered:before{content:'\e7f6'}.icon-flag-outline-variant:before{content:'\e7f7'}.icon-flag-outline:before{content:'\e7f8'}.icon-flag-triangle:before{content:'\e7f9'}.icon-flag-variant:before{content:'\e7fa'}.icon-flag:before{content:'\e7fb'}.icon-flash-auto:before{content:'\e7fc'}.icon-flash-off:before{content:'\e7fd'}.icon-flash:before{content:'\e7fe'}.icon-flashlight-off:before{content:'\e7ff'}.icon-flashlight:before{content:'\e800'}.icon-flattr:before{content:'\e801'}.icon-flickr-after:before{content:'\e802'}.icon-flickr-before:before{content:'\e803'}.icon-flip-to-back:before{content:'\e804'}.icon-flip-to-front:before{content:'\e805'}.icon-floppy:before{content:'\e806'}.icon-flower:before{content:'\e807'}.icon-folder-account:before{content:'\e808'}.icon-folder-download:before{content:'\e809'}.icon-folder-google-drive:before{content:'\e80a'}.icon-folder-image:before{content:'\e80b'}.icon-folder-lock-open:before{content:'\e80c'}.icon-folder-lock:before{content:'\e80d'}.icon-folder-move:before{content:'\e80e'}.icon-folder-multiple-image:before{content:'\e80f'}.icon-folder-multiple-outline:before{content:'\e810'}.icon-folder-multiple:before{content:'\e811'}.icon-folder-outline-lock:before{content:'\e812'}.icon-folder-outline:before{content:'\e813'}.icon-folder-plus:before{content:'\e814'}.icon-folder-remove:before{content:'\e815'}.icon-folder-upload:before{content:'\e816'}.icon-folder:before{content:'\e817'}.icon-food-apple:before{content:'\e818'}.icon-food-variant:before{content:'\e819'}.icon-food:before{content:'\e81a'}.icon-football-helmet:before{content:'\e81b'}.icon-football:before{content:'\e81c'}.icon-format-align-center:before{content:'\e81d'}.icon-format-align-justify:before{content:'\e81e'}.icon-format-align-left:before{content:'\e81f'}.icon-format-align-right:before{content:'\e820'}.icon-format-bold:before{content:'\e821'}.icon-format-clear:before{content:'\e822'}.icon-format-color-fill:before{content:'\e823'}.icon-format-color:before{content:'\e824'}.icon-format-float-center:before{content:'\e825'}.icon-format-float-left:before{content:'\e826'}.icon-format-float-none:before{content:'\e827'}.icon-format-float-right:before{content:'\e828'}.icon-format-header-1:before{content:'\e829'}.icon-format-header-2:before{content:'\e82a'}.icon-format-header-3:before{content:'\e82b'}.icon-format-header-4:before{content:'\e82c'}.icon-format-header-5:before{content:'\e82d'}.icon-format-header-6:before{content:'\e82e'}.icon-format-header-decrease:before{content:'\e82f'}.icon-format-header-down:before{content:'\e830'}.icon-format-header-equal:before{content:'\e831'}.icon-format-header-increase:before{content:'\e832'}.icon-format-header-pound:before{content:'\e833'}.icon-format-header-up:before{content:'\e834'}.icon-format-indent-decrease:before{content:'\e835'}.icon-format-indent-increase:before{content:'\e836'}.icon-format-italic:before{content:'\e837'}.icon-format-line-spacing:before{content:'\e838'}.icon-format-list-bulleted:before{content:'\e839'}.icon-format-list-numbers:before{content:'\e83a'}.icon-format-object-inline:before{content:'\e83b'}.icon-format-object-square:before{content:'\e83c'}.icon-format-object-tight:before{content:'\e83d'}.icon-format-object-top-bottom:before{content:'\e83e'}.icon-format-paint:before{content:'\e83f'}.icon-format-paragraph:before{content:'\e840'}.icon-format-quote:before{content:'\e841'}.icon-format-size:before{content:'\e842'}.icon-format-strikethrough:before{content:'\e843'}.icon-format-subscript:before{content:'\e844'}.icon-format-superscript:before{content:'\e845'}.icon-format-text:before{content:'\e846'}.icon-format-textdirection-l-to-r:before{content:'\e847'}.icon-format-textdirection-r-to-l:before{content:'\e848'}.icon-format-underline:before{content:'\e849'}.icon-forum:before{content:'\e84a'}.icon-forward:before{content:'\e84b'}.icon-foursquare:before{content:'\e84c'}.icon-fridge:before{content:'\e84d'}.icon-fullscreen-exit:before{content:'\e84e'}.icon-fullscreen:before{content:'\e84f'}.icon-function:before{content:'\e850'}.icon-gamepad-variant:before{content:'\e851'}.icon-gamepad:before{content:'\e852'}.icon-gas-station:before{content:'\e853'}.icon-gavel:before{content:'\e854'}.icon-gender-female:before{content:'\e855'}.icon-gender-male-female:before{content:'\e856'}.icon-gender-male:before{content:'\e857'}.icon-gender-transgender:before{content:'\e858'}.icon-gift:before{content:'\e859'}.icon-git:before{content:'\e85a'}.icon-github-box:before{content:'\e85b'}.icon-github:before{content:'\e85c'}.icon-glass-flute:before{content:'\e85d'}.icon-glass-mug:before{content:'\e85e'}.icon-glass-stange:before{content:'\e85f'}.icon-glass-tulip:before{content:'\e860'}.icon-glasses:before{content:'\e861'}.icon-gmail:before{content:'\e862'}.icon-google-chrome:before{content:'\e863'}.icon-google-circles-communities:before{content:'\e864'}.icon-google-circles-extended:before{content:'\e865'}.icon-google-circles-invite:before{content:'\e866'}.icon-google-circles:before{content:'\e867'}.icon-google-controller-off:before{content:'\e868'}.icon-google-controller:before{content:'\e869'}.icon-google-drive:before{content:'\e86a'}.icon-google-earth:before{content:'\e86b'}.icon-google-glass:before{content:'\e86c'}.icon-google-maps:before{content:'\e86d'}.icon-google-pages:before{content:'\e86e'}.icon-google-play:before{content:'\e86f'}.icon-google-plus-box:before{content:'\e870'}.icon-google-plus:before{content:'\e871'}.icon-google:before{content:'\e872'}.icon-grid-off:before{content:'\e873'}.icon-grid:before{content:'\e874'}.icon-group:before{content:'\e875'}.icon-hand-pointing-right:before{content:'\e876'}.icon-hanger:before{content:'\e877'}.icon-hangouts:before{content:'\e878'}.icon-harddisk:before{content:'\e879'}.icon-headphones-box:before{content:'\e87a'}.icon-headphones-dots:before{content:'\e87b'}.icon-headphones:before{content:'\e87c'}.icon-headset-dock:before{content:'\e87d'}.icon-headset-off:before{content:'\e87e'}.icon-headset:before{content:'\e87f'}.icon-heart-box-outline:before{content:'\e880'}.icon-heart-box:before{content:'\e881'}.icon-heart-broken:before{content:'\e882'}.icon-heart-outline:before{content:'\e883'}.icon-heart:before{content:'\e884'}.icon-help-circle:before{content:'\e885'}.icon-help:before{content:'\e886'}.icon-hexagon-outline:before{content:'\e887'}.icon-hexagon:before{content:'\e888'}.icon-history:before{content:'\e889'}.icon-hololens:before{content:'\e88a'}.icon-home-modern:before{content:'\e88b'}.icon-home-variant:before{content:'\e88c'}.icon-home:before{content:'\e88d'}.icon-hops:before{content:'\e88e'}.icon-hospital-building:before{content:'\e88f'}.icon-hospital-marker:before{content:'\e890'}.icon-hospital:before{content:'\e891'}.icon-hotel:before{content:'\e892'}.icon-houzz-box:before{content:'\e893'}.icon-human-child:before{content:'\e894'}.icon-human-male-female:before{content:'\e895'}.icon-human:before{content:'\e896'}.icon-image-album:before{content:'\e897'}.icon-image-area-close:before{content:'\e898'}.icon-image-area:before{content:'\e899'}.icon-image-broken:before{content:'\e89a'}.icon-image-filter-black-white:before{content:'\e89b'}.icon-image-filter-center-focus:before{content:'\e89c'}.icon-image-filter-drama:before{content:'\e89d'}.icon-image-filter-frames:before{content:'\e89e'}.icon-image-filter-hdr:before{content:'\e89f'}.icon-image-filter-none:before{content:'\e8a0'}.icon-image-filter-tilt-shift:before{content:'\e8a1'}.icon-image-filter-vintage:before{content:'\e8a2'}.icon-image-filter:before{content:'\e8a3'}.icon-image:before{content:'\e8a4'}.icon-import:before{content:'\e8a5'}.icon-inbox:before{content:'\e8a6'}.icon-indent:before{content:'\e8a7'}.icon-information-outline:before{content:'\e8a8'}.icon-information:before{content:'\e8a9'}.icon-instagram:before{content:'\e8aa'}.icon-instapaper:before{content:'\e8ab'}.icon-internet-explorer:before{content:'\e8ac'}.icon-invert-colors:before{content:'\e8ad'}.icon-jira:before{content:'\e8ae'}.icon-jsfiddle:before{content:'\e8af'}.icon-keg:before{content:'\e8b0'}.icon-key-change:before{content:'\e8b1'}.icon-key-minus:before{content:'\e8b2'}.icon-key-plus:before{content:'\e8b3'}.icon-key-remove:before{content:'\e8b4'}.icon-key-variant:before{content:'\e8b5'}.icon-key:before{content:'\e8b6'}.icon-keyboard-backspace:before{content:'\e8b7'}.icon-keyboard-caps:before{content:'\e8b8'}.icon-keyboard-close:before{content:'\e8b9'}.icon-keyboard-off:before{content:'\e8ba'}.icon-keyboard-return:before{content:'\e8bb'}.icon-keyboard-tab:before{content:'\e8bc'}.icon-keyboard-variant:before{content:'\e8bd'}.icon-keyboard:before{content:'\e8be'}.icon-label-outline:before{content:'\e8bf'}.icon-label:before{content:'\e8c0'}.icon-language-csharp:before{content:'\e8c1'}.icon-language-css3:before{content:'\e8c2'}.icon-language-html5:before{content:'\e8c3'}.icon-language-javascript:before{content:'\e8c4'}.icon-language-python-text:before{content:'\e8c5'}.icon-language-python:before{content:'\e8c6'}.icon-laptop-chromebook:before{content:'\e8c7'}.icon-laptop-mac:before{content:'\e8c8'}.icon-laptop-windows:before{content:'\e8c9'}.icon-laptop:before{content:'\e8ca'}.icon-lastfm:before{content:'\e8cb'}.icon-launch:before{content:'\e8cc'}.icon-layers-off:before{content:'\e8cd'}.icon-layers:before{content:'\e8ce'}.icon-leaf:before{content:'\e8cf'}.icon-library-books:before{content:'\e8d0'}.icon-library-music:before{content:'\e8d1'}.icon-library-plus:before{content:'\e8d2'}.icon-library:before{content:'\e8d3'}.icon-lightbulb-outline:before{content:'\e8d4'}.icon-lightbulb:before{content:'\e8d5'}.icon-link-off:before{content:'\e8d6'}.icon-link-variant-off:before{content:'\e8d7'}.icon-link-variant:before{content:'\e8d8'}.icon-link:before{content:'\e8d9'}.icon-linkedin-box:before{content:'\e8da'}.icon-linkedin:before{content:'\e8db'}.icon-linode:before{content:'\e8dc'}.icon-linux:before{content:'\e8dd'}.icon-lock-outline:before{content:'\e8de'}.icon-lock-unlocked-outline:before{content:'\e8df'}.icon-lock-unlocked:before{content:'\e8e0'}.icon-lock:before{content:'\e8e1'}.icon-login:before{content:'\e8e2'}.icon-logout:before{content:'\e8e3'}.icon-looks:before{content:'\e8e4'}.icon-loupe:before{content:'\e8e5'}.icon-lumx:before{content:'\e8e6'}.icon-magnet-on:before{content:'\e8e7'}.icon-magnet:before{content:'\e8e8'}.icon-magnify-minus:before{content:'\e8e9'}.icon-magnify-plus:before{content:'\e8ea'}.icon-magnify:before{content:'\e8eb'}.icon-mail-ru:before{content:'\e8ec'}.icon-map-marker-circle:before{content:'\e8ed'}.icon-map-marker-multiple:before{content:'\e8ee'}.icon-map-marker-off:before{content:'\e8ef'}.icon-map-marker-radius:before{content:'\e8f0'}.icon-map-marker:before{content:'\e8f1'}.icon-map:before{content:'\e8f2'}.icon-margin:before{content:'\e8f3'}.icon-markdown:before{content:'\e8f4'}.icon-marker-check:before{content:'\e8f5'}.icon-martini:before{content:'\e8f6'}.icon-material-ui:before{content:'\e8f7'}.icon-maxcdn:before{content:'\e8f8'}.icon-medium:before{content:'\e8f9'}.icon-memory:before{content:'\e8fa'}.icon-menu-down:before{content:'\e8fb'}.icon-menu-left:before{content:'\e8fc'}.icon-menu-right:before{content:'\e8fd'}.icon-menu-up:before{content:'\e8fe'}.icon-menu:before{content:'\e8ff'}.icon-message-alert:before{content:'\e900'}.icon-message-draw:before{content:'\e901'}.icon-message-image:before{content:'\e902'}.icon-message-processing:before{content:'\e903'}.icon-message-reply:before{content:'\e904'}.icon-message-text-outline:before{content:'\e905'}.icon-message-text:before{content:'\e906'}.icon-message-video:before{content:'\e907'}.icon-message:before{content:'\e908'}.icon-microphone-dots:before{content:'\e909'}.icon-microphone-off:before{content:'\e90a'}.icon-microphone-outline:before{content:'\e90b'}.icon-microphone-settings:before{content:'\e90c'}.icon-microphone-variant-off:before{content:'\e90d'}.icon-microphone-variant:before{content:'\e90e'}.icon-microphone:before{content:'\e90f'}.icon-minus-box:before{content:'\e910'}.icon-minus-circle-outline:before{content:'\e911'}.icon-minus-circle:before{content:'\e912'}.icon-minus-network:before{content:'\e913'}.icon-minus:before{content:'\e914'}.icon-monitor-multiple:before{content:'\e915'}.icon-monitor:before{content:'\e916'}.icon-more:before{content:'\e917'}.icon-mouse-off:before{content:'\e918'}.icon-mouse-variant-off:before{content:'\e919'}.icon-mouse-variant:before{content:'\e91a'}.icon-mouse:before{content:'\e91b'}.icon-movie:before{content:'\e91c'}.icon-multiplication-box:before{content:'\e91d'}.icon-multiplication:before{content:'\e91e'}.icon-music-box-outline:before{content:'\e91f'}.icon-music-box:before{content:'\e920'}.icon-music-circle:before{content:'\e921'}.icon-music-note-eighth:before{content:'\e922'}.icon-music-note-half:before{content:'\e923'}.icon-music-note-off:before{content:'\e924'}.icon-music-note-quarter:before{content:'\e925'}.icon-music-note-sixteenth:before{content:'\e926'}.icon-music-note-whole:before{content:'\e927'}.icon-music-note:before{content:'\e928'}.icon-nature-people:before{content:'\e929'}.icon-nature:before{content:'\e92a'}.icon-navigation:before{content:'\e92b'}.icon-needle:before{content:'\e92c'}.icon-nest-protect:before{content:'\e92d'}.icon-nest-thermostat:before{content:'\e92e'}.icon-newspaper:before{content:'\e92f'}.icon-nfc-tap:before{content:'\e930'}.icon-nfc-variant:before{content:'\e931'}.icon-nfc:before{content:'\e932'}.icon-no:before{content:'\e933'}.icon-not-equal:before{content:'\e934'}.icon-note-outline:before{content:'\e935'}.icon-note-text:before{content:'\e936'}.icon-note:before{content:'\e937'}.icon-numeric-0-box-multiple-outline:before{content:'\e938'}.icon-numeric-0-box-outline:before{content:'\e939'}.icon-numeric-0-box:before{content:'\e93a'}.icon-numeric-1-box-multiple-outline:before{content:'\e93b'}.icon-numeric-1-box-outline:before{content:'\e93c'}.icon-numeric-1-box:before{content:'\e93d'}.icon-numeric-2-box-multiple-outline:before{content:'\e93e'}.icon-numeric-2-box-outline:before{content:'\e93f'}.icon-numeric-2-box:before{content:'\e940'}.icon-numeric-3-box-multiple-outline:before{content:'\e941'}.icon-numeric-3-box-outline:before{content:'\e942'}.icon-numeric-3-box:before{content:'\e943'}.icon-numeric-4-box-multiple-outline:before{content:'\e944'}.icon-numeric-4-box-outline:before{content:'\e945'}.icon-numeric-4-box:before{content:'\e946'}.icon-numeric-5-box-multiple-outline:before{content:'\e947'}.icon-numeric-5-box-outline:before{content:'\e948'}.icon-numeric-5-box:before{content:'\e949'}.icon-numeric-6-box-multiple-outline:before{content:'\e94a'}.icon-numeric-6-box-outline:before{content:'\e94b'}.icon-numeric-6-box:before{content:'\e94c'}.icon-numeric-7-box-multiple-outline:before{content:'\e94d'}.icon-numeric-7-box-outline:before{content:'\e94e'}.icon-numeric-7-box:before{content:'\e94f'}.icon-numeric-8-box-multiple-outline:before{content:'\e950'}.icon-numeric-8-box-outline:before{content:'\e951'}.icon-numeric-8-box:before{content:'\e952'}.icon-numeric-9-box-multiple-outline:before{content:'\e953'}.icon-numeric-9-box-outline:before{content:'\e954'}.icon-numeric-9-box:before{content:'\e955'}.icon-numeric-9-plus-box-multiple-outline:before{content:'\e956'}.icon-numeric-9-plus-box-outline:before{content:'\e957'}.icon-numeric-9-plus-box:before{content:'\e958'}.icon-numeric:before{content:'\e959'}.icon-nutriton:before{content:'\e95a'}.icon-odnoklassniki:before{content:'\e95b'}.icon-office:before{content:'\e95c'}.icon-oil:before{content:'\e95d'}.icon-omega:before{content:'\e95e'}.icon-onedrive:before{content:'\e95f'}.icon-open-in-app:before{content:'\e960'}.icon-open-in-new:before{content:'\e961'}.icon-ornament-variant:before{content:'\e962'}.icon-ornament:before{content:'\e963'}.icon-outbox:before{content:'\e964'}.icon-outdent:before{content:'\e965'}.icon-owl:before{content:'\e966'}.icon-package-down:before{content:'\e967'}.icon-package-up:before{content:'\e968'}.icon-package-variant-closed:before{content:'\e969'}.icon-package-variant:before{content:'\e96a'}.icon-package:before{content:'\e96b'}.icon-palette-advanced:before{content:'\e96c'}.icon-palette:before{content:'\e96d'}.icon-panda:before{content:'\e96e'}.icon-pandora:before{content:'\e96f'}.icon-panorama-fisheye:before{content:'\e970'}.icon-panorama-horizontal:before{content:'\e971'}.icon-panorama-vertical:before{content:'\e972'}.icon-panorama-wide-angle:before{content:'\e973'}.icon-panorama:before{content:'\e974'}.icon-paper-cut-vertical:before{content:'\e975'}.icon-paperclip:before{content:'\e976'}.icon-parking:before{content:'\e977'}.icon-pause-circle-outline:before{content:'\e978'}.icon-pause-circle:before{content:'\e979'}.icon-pause-octagon-outline:before{content:'\e97a'}.icon-pause-octagon:before{content:'\e97b'}.icon-pause:before{content:'\e97c'}.icon-paw:before{content:'\e97d'}.icon-pen:before{content:'\e97e'}.icon-pencil-box-outline:before{content:'\e97f'}.icon-pencil-box:before{content:'\e980'}.icon-pencil:before{content:'\e981'}.icon-people:before{content:'\e982'}.icon-percent:before{content:'\e983'}.icon-person-box:before{content:'\e984'}.icon-person-minus:before{content:'\e985'}.icon-person-plus:before{content:'\e986'}.icon-pharmacy:before{content:'\e987'}.icon-phone-bluetooth:before{content:'\e988'}.icon-phone-dots:before{content:'\e989'}.icon-phone-forward:before{content:'\e98a'}.icon-phone-hangup:before{content:'\e98b'}.icon-phone-in-talk:before{content:'\e98c'}.icon-phone-incoming:before{content:'\e98d'}.icon-phone-locked:before{content:'\e98e'}.icon-phone-log:before{content:'\e98f'}.icon-phone-missed:before{content:'\e990'}.icon-phone-outgoing:before{content:'\e991'}.icon-phone-paused:before{content:'\e992'}.icon-phone:before{content:'\e993'}.icon-picture:before{content:'\e994'}.icon-pig:before{content:'\e995'}.icon-pill:before{content:'\e996'}.icon-pin-off:before{content:'\e997'}.icon-pin:before{content:'\e998'}.icon-pine-tree-box:before{content:'\e999'}.icon-pine-tree:before{content:'\e99a'}.icon-pinterest-box:before{content:'\e99b'}.icon-pinterest:before{content:'\e99c'}.icon-pizza:before{content:'\e99d'}.icon-plane:before{content:'\e99e'}.icon-play-box-outline:before{content:'\e99f'}.icon-play-circle-outline:before{content:'\e9a0'}.icon-play-circle:before{content:'\e9a1'}.icon-play:before{content:'\e9a2'}.icon-playlist-minus:before{content:'\e9a3'}.icon-playlist-plus:before{content:'\e9a4'}.icon-playstation:before{content:'\e9a5'}.icon-plus-box:before{content:'\e9a6'}.icon-plus-circle-outline:before{content:'\e9a7'}.icon-plus-circle:before{content:'\e9a8'}.icon-plus-network:before{content:'\e9a9'}.icon-plus-one:before{content:'\e9aa'}.icon-plus:before{content:'\e9ab'}.icon-pocket:before{content:'\e9ac'}.icon-poll-box:before{content:'\e9ad'}.icon-poll:before{content:'\e9ae'}.icon-polymer:before{content:'\e9af'}.icon-popcorn:before{content:'\e9b0'}.icon-pound-box:before{content:'\e9b1'}.icon-pound:before{content:'\e9b2'}.icon-power-settings:before{content:'\e9b3'}.icon-power-socket:before{content:'\e9b4'}.icon-power:before{content:'\e9b5'}.icon-presentation-play:before{content:'\e9b6'}.icon-presentation:before{content:'\e9b7'}.icon-printer-3d:before{content:'\e9b8'}.icon-printer:before{content:'\e9b9'}.icon-pulse:before{content:'\e9ba'}.icon-puzzle:before{content:'\e9bb'}.icon-qrcode:before{content:'\e9bc'}.icon-quadcopter:before{content:'\e9bd'}.icon-quality-high:before{content:'\e9be'}.icon-question-mark-circle:before{content:'\e9bf'}.icon-quick-reply:before{content:'\e9c0'}.icon-quicktime:before{content:'\e9c1'}.icon-rabbit:before{content:'\e9c2'}.icon-radiator:before{content:'\e9c3'}.icon-radio-tower:before{content:'\e9c4'}.icon-radio:before{content:'\e9c5'}.icon-radioactive:before{content:'\e9c6'}.icon-radiobox-blank:before{content:'\e9c7'}.icon-radiobox-marked:before{content:'\e9c8'}.icon-raspberrypi:before{content:'\e9c9'}.icon-rdio:before{content:'\e9ca'}.icon-read:before{content:'\e9cb'}.icon-readability:before{content:'\e9cc'}.icon-receipt:before{content:'\e9cd'}.icon-recycle:before{content:'\e9ce'}.icon-reddit:before{content:'\e9cf'}.icon-redo-variant:before{content:'\e9d0'}.icon-redo:before{content:'\e9d1'}.icon-refresh:before{content:'\e9d2'}.icon-relative-scale:before{content:'\e9d3'}.icon-reload:before{content:'\e9d4'}.icon-remote:before{content:'\e9d5'}.icon-rename-box:before{content:'\e9d6'}.icon-repeat-off:before{content:'\e9d7'}.icon-repeat-once:before{content:'\e9d8'}.icon-repeat:before{content:'\e9d9'}.icon-replay:before{content:'\e9da'}.icon-reply-all:before{content:'\e9db'}.icon-reply:before{content:'\e9dc'}.icon-reproduction:before{content:'\e9dd'}.icon-resize-bottom-right:before{content:'\e9de'}.icon-responsive:before{content:'\e9df'}.icon-restore:before{content:'\e9e0'}.icon-rewind:before{content:'\e9e1'}.icon-ribbon:before{content:'\e9e2'}.icon-road:before{content:'\e9e3'}.icon-rocket:before{content:'\e9e4'}.icon-rotate-3d:before{content:'\e9e5'}.icon-rotate-left-variant:before{content:'\e9e6'}.icon-rotate-left:before{content:'\e9e7'}.icon-rotate-right-variant:before{content:'\e9e8'}.icon-rotate-right:before{content:'\e9e9'}.icon-routes:before{content:'\e9ea'}.icon-rss-box:before{content:'\e9eb'}.icon-ruler:before{content:'\e9ec'}.icon-run:before{content:'\e9ed'}.icon-sale:before{content:'\e9ee'}.icon-satellite-variant:before{content:'\e9ef'}.icon-satellite:before{content:'\e9f0'}.icon-scale-bathroom:before{content:'\e9f1'}.icon-scale:before{content:'\e9f2'}.icon-school:before{content:'\e9f3'}.icon-screen-rotation-lock:before{content:'\e9f4'}.icon-screen-rotation:before{content:'\e9f5'}.icon-script:before{content:'\e9f6'}.icon-security-network:before{content:'\e9f7'}.icon-security:before{content:'\e9f8'}.icon-select-all:before{content:'\e9f9'}.icon-select-inverse:before{content:'\e9fa'}.icon-select-off:before{content:'\e9fb'}.icon-select:before{content:'\e9fc'}.icon-send:before{content:'\e9fd'}.icon-server-minus:before{content:'\e9fe'}.icon-server-network-off:before{content:'\e9ff'}.icon-server-network:before{content:'\ea00'}.icon-server-off:before{content:'\ea01'}.icon-server-plus:before{content:'\ea02'}.icon-server-remove:before{content:'\ea03'}.icon-server-security:before{content:'\ea04'}.icon-server:before{content:'\ea05'}.icon-shape-plus:before{content:'\ea06'}.icon-share-variant:before{content:'\ea07'}.icon-share:before{content:'\ea08'}.icon-shield-outline:before{content:'\ea09'}.icon-shield:before{content:'\ea0a'}.icon-shopping-music:before{content:'\ea0b'}.icon-shopping:before{content:'\ea0c'}.icon-shuffle:before{content:'\ea0d'}.icon-sigma:before{content:'\ea0e'}.icon-sign-caution:before{content:'\ea0f'}.icon-signal:before{content:'\ea10'}.icon-silverware-fork:before{content:'\ea11'}.icon-silverware-spoon:before{content:'\ea12'}.icon-silverware-variant:before{content:'\ea13'}.icon-silverware:before{content:'\ea14'}.icon-sim-alert:before{content:'\ea15'}.icon-sim:before{content:'\ea16'}.icon-sitemap:before{content:'\ea17'}.icon-skip-next:before{content:'\ea18'}.icon-skip-previous:before{content:'\ea19'}.icon-skype-business:before{content:'\ea1a'}.icon-skype:before{content:'\ea1b'}.icon-sleep-off:before{content:'\ea1c'}.icon-sleep:before{content:'\ea1d'}.icon-smoking-off:before{content:'\ea1e'}.icon-smoking:before{content:'\ea1f'}.icon-snapchat:before{content:'\ea20'}.icon-snowman:before{content:'\ea21'}.icon-sofa:before{content:'\ea22'}.icon-sort-alphabetical:before{content:'\ea23'}.icon-sort-ascending:before{content:'\ea24'}.icon-sort-descending:before{content:'\ea25'}.icon-sort-numeric:before{content:'\ea26'}.icon-sort-variant:before{content:'\ea27'}.icon-sort:before{content:'\ea28'}.icon-soundcloud:before{content:'\ea29'}.icon-source-fork:before{content:'\ea2a'}.icon-source-pull:before{content:'\ea2b'}.icon-speaker-off:before{content:'\ea2c'}.icon-speaker:before{content:'\ea2d'}.icon-speedometer:before{content:'\ea2e'}.icon-spellcheck:before{content:'\ea2f'}.icon-spotify:before{content:'\ea30'}.icon-spotlight-beam:before{content:'\ea31'}.icon-spotlight:before{content:'\ea32'}.icon-spreadsheet:before{content:'\ea33'}.icon-square-inc-cash:before{content:'\ea34'}.icon-square-inc:before{content:'\ea35'}.icon-stackoverflow:before{content:'\ea36'}.icon-star-circle:before{content:'\ea37'}.icon-star-half:before{content:'\ea38'}.icon-star-of-david:before{content:'\ea39'}.icon-star-outline:before{content:'\ea3a'}.icon-star:before{content:'\ea3b'}.icon-steam:before{content:'\ea3c'}.icon-stethoscope:before{content:'\ea3d'}.icon-stocking:before{content:'\ea3e'}.icon-stop:before{content:'\ea3f'}.icon-store-24-hour:before{content:'\ea40'}.icon-store:before{content:'\ea41'}.icon-stove:before{content:'\ea42'}.icon-subway:before{content:'\ea43'}.icon-sunglasses:before{content:'\ea44'}.icon-swap-horizontal:before{content:'\ea45'}.icon-swap-vertical:before{content:'\ea46'}.icon-swim:before{content:'\ea47'}.icon-sword:before{content:'\ea48'}.icon-sync-alert:before{content:'\ea49'}.icon-sync-off:before{content:'\ea4a'}.icon-sync:before{content:'\ea4b'}.icon-tab-unselected:before{content:'\ea4c'}.icon-tab:before{content:'\ea4d'}.icon-table-column-plus-after:before{content:'\ea4e'}.icon-table-column-plus-before:before{content:'\ea4f'}.icon-table-column-remove:before{content:'\ea50'}.icon-table-column-width:before{content:'\ea51'}.icon-table-edit:before{content:'\ea52'}.icon-table-large:before{content:'\ea53'}.icon-table-row-height:before{content:'\ea54'}.icon-table-row-plus-after:before{content:'\ea55'}.icon-table-row-plus-before:before{content:'\ea56'}.icon-table-row-remove:before{content:'\ea57'}.icon-table:before{content:'\ea58'}.icon-tablet-android:before{content:'\ea59'}.icon-tablet-ipad:before{content:'\ea5a'}.icon-tablet:before{content:'\ea5b'}.icon-tag-faces:before{content:'\ea5c'}.icon-tag-multiple:before{content:'\ea5d'}.icon-tag-outline:before{content:'\ea5e'}.icon-tag-text-outline:before{content:'\ea5f'}.icon-tag:before{content:'\ea60'}.icon-taxi:before{content:'\ea61'}.icon-teamviewer:before{content:'\ea62'}.icon-telegram:before{content:'\ea63'}.icon-television-guide:before{content:'\ea64'}.icon-television:before{content:'\ea65'}.icon-temperature-celsius:before{content:'\ea66'}.icon-temperature-fahrenheit:before{content:'\ea67'}.icon-temperature-kelvin:before{content:'\ea68'}.icon-tennis:before{content:'\ea69'}.icon-tent:before{content:'\ea6a'}.icon-terrain:before{content:'\ea6b'}.icon-text-to-speech-off:before{content:'\ea6c'}.icon-text-to-speech:before{content:'\ea6d'}.icon-texture:before{content:'\ea6e'}.icon-theater:before{content:'\ea6f'}.icon-theme-light-dark:before{content:'\ea70'}.icon-thermometer-lines:before{content:'\ea71'}.icon-thermometer:before{content:'\ea72'}.icon-thumb-down-outline:before{content:'\ea73'}.icon-thumb-down:before{content:'\ea74'}.icon-thumb-up-outline:before{content:'\ea75'}.icon-thumb-up:before{content:'\ea76'}.icon-thumbs-up-down:before{content:'\ea77'}.icon-ticket-account:before{content:'\ea78'}.icon-ticket:before{content:'\ea79'}.icon-tie:before{content:'\ea7a'}.icon-tile-four:before{content:'\ea7b'}.icon-timelapse:before{content:'\ea7c'}.icon-timer-3:before{content:'\ea7d'}.icon-timer-10:before{content:'\ea7e'}.icon-timer-off:before{content:'\ea7f'}.icon-timer-sand:before{content:'\ea80'}.icon-timer:before{content:'\ea81'}.icon-timetable:before{content:'\ea82'}.icon-toggle-switch-off:before{content:'\ea83'}.icon-toggle-switch-on:before{content:'\ea84'}.icon-tooltip-edit:before{content:'\ea85'}.icon-tooltip-image:before{content:'\ea86'}.icon-tooltip-outline-plus:before{content:'\ea87'}.icon-tooltip-outline:before{content:'\ea88'}.icon-tooltip-text:before{content:'\ea89'}.icon-tooltip:before{content:'\ea8a'}.icon-tor:before{content:'\ea8b'}.icon-traffic-light:before{content:'\ea8c'}.icon-train:before{content:'\ea8d'}.icon-tram:before{content:'\ea8e'}.icon-transcribe-close:before{content:'\ea8f'}.icon-transcribe:before{content:'\ea90'}.icon-transfer:before{content:'\ea91'}.icon-trash:before{content:'\ea92'}.icon-tree:before{content:'\ea93'}.icon-trello:before{content:'\ea94'}.icon-trending-down:before{content:'\ea95'}.icon-trending-neutral:before{content:'\ea96'}.icon-trending-up:before{content:'\ea97'}.icon-truck:before{content:'\ea98'}.icon-tshirt-crew:before{content:'\ea99'}.icon-tshirt-v:before{content:'\ea9a'}.icon-tumblr-reblog:before{content:'\ea9b'}.icon-tumblr:before{content:'\ea9c'}.icon-twitch:before{content:'\ea9d'}.icon-twitter-box:before{content:'\ea9e'}.icon-twitter-circle:before{content:'\ea9f'}.icon-twitter-retweet:before{content:'\eaa0'}.icon-twitter:before{content:'\eaa1'}.icon-ubuntu:before{content:'\eaa2'}.icon-umbrella-outline:before{content:'\eaa3'}.icon-umbrella:before{content:'\eaa4'}.icon-undo-variant:before{content:'\eaa5'}.icon-undo:before{content:'\eaa6'}.icon-unfold-less:before{content:'\eaa7'}.icon-unfold-more:before{content:'\eaa8'}.icon-ungroup:before{content:'\eaa9'}.icon-untappd:before{content:'\eaaa'}.icon-upload:before{content:'\eaab'}.icon-usb:before{content:'\eaac'}.icon-vector-curve:before{content:'\eaad'}.icon-vector-point:before{content:'\eaae'}.icon-vector-square:before{content:'\eaaf'}.icon-verified:before{content:'\eab0'}.icon-vibration:before{content:'\eab1'}.icon-video-off:before{content:'\eab2'}.icon-video-switch:before{content:'\eab3'}.icon-video:before{content:'\eab4'}.icon-view-agenda:before{content:'\eab5'}.icon-view-array:before{content:'\eab6'}.icon-view-carousel:before{content:'\eab7'}.icon-view-column:before{content:'\eab8'}.icon-view-dashboard:before{content:'\eab9'}.icon-view-day:before{content:'\eaba'}.icon-view-headline:before{content:'\eabb'}.icon-view-list:before{content:'\eabc'}.icon-view-module:before{content:'\eabd'}.icon-view-quilt:before{content:'\eabe'}.icon-view-stream:before{content:'\eabf'}.icon-view-week:before{content:'\eac0'}.icon-vimeo:before{content:'\eac1'}.icon-vine:before{content:'\eac2'}.icon-vk-box:before{content:'\eac3'}.icon-vk-circle:before{content:'\eac4'}.icon-vk:before{content:'\eac5'}.icon-voicemail:before{content:'\eac6'}.icon-volume-high:before{content:'\eac7'}.icon-volume-low:before{content:'\eac8'}.icon-volume-medium:before{content:'\eac9'}.icon-volume-off:before{content:'\eaca'}.icon-volume:before{content:'\eacb'}.icon-vpn:before{content:'\eacc'}.icon-walk:before{content:'\eacd'}.icon-wallet-giftcard:before{content:'\eace'}.icon-wallet-membership:before{content:'\eacf'}.icon-wallet-travel:before{content:'\ead0'}.icon-wallet:before{content:'\ead1'}.icon-washing-machine:before{content:'\ead2'}.icon-watch-export:before{content:'\ead3'}.icon-watch-import:before{content:'\ead4'}.icon-watch:before{content:'\ead5'}.icon-water-off:before{content:'\ead6'}.icon-water-pump:before{content:'\ead7'}.icon-water:before{content:'\ead8'}.icon-weather-cloudy:before{content:'\ead9'}.icon-weather-fog:before{content:'\eada'}.icon-weather-hail:before{content:'\eadb'}.icon-weather-lightning:before{content:'\eadc'}.icon-weather-night:before{content:'\eadd'}.icon-weather-partlycloudy:before{content:'\eade'}.icon-weather-pouring:before{content:'\eadf'}.icon-weather-rainy:before{content:'\eae0'}.icon-weather-snowy:before{content:'\eae1'}.icon-weather-sunny:before{content:'\eae2'}.icon-weather-sunset-down:before{content:'\eae3'}.icon-weather-sunset-up:before{content:'\eae4'}.icon-weather-sunset:before{content:'\eae5'}.icon-weather-windy-variant:before{content:'\eae6'}.icon-weather-windy:before{content:'\eae7'}.icon-web:before{content:'\eae8'}.icon-webcam:before{content:'\eae9'}.icon-weight-kilogram:before{content:'\eaea'}.icon-weight:before{content:'\eaeb'}.icon-whatsapp:before{content:'\eaec'}.icon-wheelchair-accessibility:before{content:'\eaed'}.icon-white-balance-auto:before{content:'\eaee'}.icon-white-balance-incandescent:before{content:'\eaef'}.icon-white-balance-irradescent:before{content:'\eaf0'}.icon-white-balance-sunny:before{content:'\eaf1'}.icon-wifi:before{content:'\eaf2'}.icon-wii:before{content:'\eaf3'}.icon-wikipedia:before{content:'\eaf4'}.icon-window-close:before{content:'\eaf5'}.icon-window-closed:before{content:'\eaf6'}.icon-window-maximize:before{content:'\eaf7'}.icon-window-minimize:before{content:'\eaf8'}.icon-window-open:before{content:'\eaf9'}.icon-window-restore:before{content:'\eafa'}.icon-windows:before{content:'\eafb'}.icon-wordpress:before{content:'\eafc'}.icon-worker:before{content:'\eafd'}.icon-wunderlist:before{content:'\eafe'}.icon-xbox-controller-off:before{content:'\eaff'}.icon-xbox-controller:before{content:'\eb00'}.icon-xbox:before{content:'\eb01'}.icon-xda:before{content:'\eb02'}.icon-xml:before{content:'\eb03'}.icon-yeast:before{content:'\eb04'}.icon-yelp:before{content:'\eb05'}.icon-youtube-play:before{content:'\eb06'}.icon-youtube:before{content:'\eb07'}.icon-zip-box:before{content:'\eb08'}.avatar{width:40px;min-width:40px;height:40px;line-height:40px;margin:0 8px 0 0;border-radius:50%;font-size:17px;font-weight:500;text-align:center;color:#fff}.avatar.square{border-radius:0}.avatar.small{width:20px;min-width:20px;height:20px;line-height:20px}.avatar.big{width:72px;min-width:72px;height:72px;line-height:72px}.avatar.huge{width:96px;min-width:96px;height:96px;line-height:96px}.form-wrapper{background:#fff;padding:16px}.form-wrapper .form-title{font-size:21px;padding:8px 0}.navigation-simple .item{position:relative;cursor:pointer;text-align:left;margin:0;padding:0 24px;text-transform:none;line-height:48px;max-height:48px;height:48px}.navigation-simple .item md-icon{margin:0 16px 0 0}.navigation-simple .item .title{font-size:13px;font-weight:500;line-height:1}.navigation-simple .item.selected{background-color:rgba(0,0,0,.06)}.navigation-simple .subheader{font-size:13px;border-top:1px solid rgba(0,0,0,.12);font-weight:500;margin-top:8px}.navigation-simple .subheader.light{border-top:1px solid rgba(255,255,255,.12)}.navigation-simple md-divider{margin:8px 0}.simple-pagination{position:relative;display:inline-flex;flex-direction:row;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12);background-color:#fff;padding:0 8px}.simple-pagination .pagination-item{min-width:48px;min-height:56px;line-height:56px;border-radius:0;margin:0;font-weight:400;color:rgba(0,0,0,.54)}.simple-pagination .pagination-item:hover{color:rgba(0,0,0,.87)}.simple-pagination .pagination-item.active{cursor:default;color:rgba(0,0,0,.87)}.simple-pagination .pagination-item.disabled{cursor:default;color:rgba(0,0,0,.26)}.price-tables .price-table{position:relative;background-color:#fff;width:280px;border-radius:2px;margin:24px 24px 0 0;overflow:hidden}.price-tables .price-table.style-1 .package-type{font-size:17px;padding:16px 24px}.price-tables .price-table.style-1 .package-type .sale{font-size:13px;font-weight:600}.price-tables .price-table.style-1 .price{padding:32px 32px 16px 32px}.price-tables .price-table.style-1 .price .currency{padding-right:4px;font-size:24px;font-weight:500;color:rgba(0,0,0,.54)}.price-tables .price-table.style-1 .price .value{font-size:72px;font-weight:300;line-height:1}.price-tables .price-table.style-1 .price .period{padding:0 0 5px 4px;font-size:17px;color:rgba(0,0,0,.54)}.price-tables .price-table.style-1 md-divider{margin:16px 32px}.price-tables .price-table.style-1 .terms{padding:16px 32px;font-size:15px}.price-tables .price-table.style-1 .cta-button{margin:16px auto 32px auto;width:128px}.price-tables .price-table.style-2 .badge{position:absolute;top:0;left:50%;transform:translateX(-50%);font-size:11px;font-weight:500;padding:6px 8px}.price-tables .price-table.style-2 .package-type{padding:48px 32px 24px 32px;font-size:20px;font-weight:500;text-align:center}.price-tables .price-table.style-2 .price{padding:0 32px 8px 32px}.price-tables .price-table.style-2 .price .currency{padding-right:4px;font-size:24px;font-weight:500;color:rgba(0,0,0,.54)}.price-tables .price-table.style-2 .price .value{font-size:56px;font-weight:300;line-height:1}.price-tables .price-table.style-2 .period{padding:0 32px;font-size:15px;font-weight:500;color:rgba(0,0,0,.54);text-align:center}.price-tables .price-table.style-2 .terms{padding:32px;font-size:15px}.price-tables .price-table.style-2 .terms .term{padding-bottom:8px}.price-tables .price-table.style-2 .terms .term:last-child{padding-bottom:0}.price-tables .price-table.style-2 .cta-button{margin:8px auto 32px auto;width:128px}.price-tables .price-table.style-3 .package-type{padding:32px;text-align:center}.price-tables .price-table.style-3 .package-type .title{font-size:34px}.price-tables .price-table.style-3 .package-type .subtitle{font-size:17px;color:rgba(0,0,0,.54);font-weight:500}.price-tables .price-table.style-3 .price{padding:16px 32px}.price-tables .price-table.style-3 .price .currency{padding-right:4px;font-size:15px;font-weight:500}.price-tables .price-table.style-3 .price .value{font-size:34px;font-weight:300;line-height:1}.price-tables .price-table.style-3 .price .period{padding-left:4px;text-align:center}.price-tables .price-table.style-3 .terms{margin:32px;font-size:15px;color:rgba(0,0,0,.54)}.price-tables .price-table.style-3 .terms .term{padding-bottom:16px}.price-tables .price-table.style-3 .terms .term:last-child{padding-bottom:0}.price-tables .price-table.style-3 .cta-button{margin:8px 32px}.price-tables .price-table.style-3 .note{padding:8px 32px 16px 32px;text-align:center;color:rgba(0,0,0,.54)}.simple-table-container{background:#fff}.simple-table-container .table-title{font-size:20px;padding:24px}table.simple{width:100%;border:none;border-spacing:0;text-align:left}table.simple thead tr th{padding:16px 8px;font-weight:500;color:rgba(0,0,0,.54);border-bottom:1px solid rgba(0,0,0,.12);white-space:nowrap;min-width:120px}table.simple thead tr th:first-child{padding-left:24px}table.simple thead tr th:last-child{padding-right:24px}table.simple tbody tr td{padding:16px 8px;border-bottom:1px solid rgba(0,0,0,.12)}table.simple tbody tr td:first-child{padding-left:24px}table.simple tbody tr td:last-child{padding-right:24px}table.simple tbody tr:last-child td{border-bottom:none}table.simple.clickable tbody tr{cursor:pointer}table.simple.clickable tbody tr:hover{background:rgba(0,0,0,.03)}html{font-size:62.5%;font-family:Roboto,"Helvetica Neue",Arial,sans-serif;line-height:1.4;letter-spacing:-.1px}body{font-size:1.3rem}body,html{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}form{font-size:1.6rem}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-weight:400}.h1,h1{font-size:2.4rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.6rem}.h4,h4{font-size:1.4rem}.h5,h5{font-size:1.3rem}.h6,h6{font-size:1.2rem}a{text-decoration:none}a:active,a:hover{text-decoration:underline}abbr{cursor:help;border-bottom:1px dotted rgba(0,0,0,.54)}blockquote{border-left:3px solid rgba(0,0,0,.12);font-style:italic;margin:1em 0;padding-left:16px}blockquote footer{font-style:normal}blockquote footer:before{content:'\2014 \00A0'}blockquote.reverse{border-left:none;border-right:3px solid rgba(0,0,0,.12);text-align:right;padding-left:0;padding-right:16px}blockquote.reverse footer:before{content:''}blockquote.reverse footer:after{content:'\2014 \00A0'}code{font-family:Monaco,Menlo,Consolas,"Ubuntu Mono",monospace}code:not(.highlight){background:rgba(0,0,0,.065);color:#106cc8;margin:0 1px;padding:2px 3px;border-radius:2px}dl dt{font-weight:700}dl dd{margin:4px 0 16px 0}mark{background:#f7f49a}pre{line-height:1.6;margin:8px 16px;white-space:pre-wrap}small{font-size:80%}table thead tr th{text-align:left}.text-italic{font-style:italic}.text-semibold{font-weight:600}.text-bold,strong{font-weight:700}.text-strike{text-decoration:line-through}.text-super{vertical-align:super}.text-sub{vertical-align:sub}.text-capitalize{text-transform:capitalize}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-weight-100{font-weight:100}.font-weight-200{font-weight:200}.font-weight-300{font-weight:300}.font-weight-400{font-weight:400}.font-weight-500{font-weight:500}.font-weight-600{font-weight:600}.font-weight-700{font-weight:700}.font-weight-800{font-weight:800}.font-weight-900{font-weight:900}.font-size-2{font-size:2px}.font-size-4{font-size:4px}.font-size-6{font-size:6px}.font-size-8{font-size:8px}.font-size-10{font-size:10px}.font-size-12{font-size:12px}.font-size-14{font-size:14px}.font-size-16{font-size:16px}.font-size-18{font-size:18px}.font-size-20{font-size:20px}.font-size-22{font-size:22px}.font-size-24{font-size:24px}.font-size-26{font-size:26px}.font-size-28{font-size:28px}.font-size-30{font-size:30px}.font-size-32{font-size:32px}.font-size-34{font-size:34px}.font-size-36{font-size:36px}.font-size-38{font-size:38px}.font-size-40{font-size:40px}.font-size-42{font-size:42px}.font-size-44{font-size:44px}.font-size-46{font-size:46px}.font-size-48{font-size:48px}.font-size-50{font-size:50px}.font-size-52{font-size:52px}.font-size-54{font-size:54px}.font-size-56{font-size:56px}.font-size-58{font-size:58px}.font-size-60{font-size:60px}.font-size-62{font-size:62px}.font-size-64{font-size:64px}.font-size-66{font-size:66px}.font-size-68{font-size:68px}.font-size-70{font-size:70px}.font-size-72{font-size:72px}.font-size-74{font-size:74px}.font-size-76{font-size:76px}.font-size-78{font-size:78px}.font-size-80{font-size:80px}.font-size-82{font-size:82px}.font-size-84{font-size:84px}.font-size-86{font-size:86px}.font-size-88{font-size:88px}.font-size-90{font-size:90px}.font-size-92{font-size:92px}.font-size-94{font-size:94px}.font-size-96{font-size:96px}.font-size-98{font-size:98px}.font-size-100{font-size:100px}.font-size-102{font-size:102px}.font-size-104{font-size:104px}.font-size-106{font-size:106px}.font-size-108{font-size:108px}.font-size-110{font-size:110px}.font-size-112{font-size:112px}.font-size-114{font-size:114px}.font-size-116{font-size:116px}.font-size-118{font-size:118px}.font-size-120{font-size:120px}.line-height-2{line-height:2px}.line-height-4{line-height:4px}.line-height-6{line-height:6px}.line-height-8{line-height:8px}.line-height-10{line-height:10px}.line-height-12{line-height:12px}.line-height-14{line-height:14px}.line-height-16{line-height:16px}.line-height-18{line-height:18px}.line-height-20{line-height:20px}.line-height-22{line-height:22px}.line-height-24{line-height:24px}.line-height-26{line-height:26px}.line-height-28{line-height:28px}.line-height-30{line-height:30px}.line-height-32{line-height:32px}.line-height-34{line-height:34px}.line-height-36{line-height:36px}.line-height-38{line-height:38px}.line-height-40{line-height:40px}.line-height-42{line-height:42px}.line-height-44{line-height:44px}.line-height-46{line-height:46px}.line-height-48{line-height:48px}.line-height-50{line-height:50px}.line-height-52{line-height:52px}.line-height-54{line-height:54px}.line-height-56{line-height:56px}.line-height-58{line-height:58px}.line-height-60{line-height:60px}.line-height-62{line-height:62px}.line-height-64{line-height:64px}.line-height-66{line-height:66px}.line-height-68{line-height:68px}.line-height-70{line-height:70px}.line-height-72{line-height:72px}.line-height-74{line-height:74px}.line-height-76{line-height:76px}.line-height-78{line-height:78px}.line-height-80{line-height:80px}.line-height-82{line-height:82px}.line-height-84{line-height:84px}.line-height-86{line-height:86px}.line-height-88{line-height:88px}.line-height-90{line-height:90px}.line-height-92{line-height:92px}.line-height-94{line-height:94px}.line-height-96{line-height:96px}.line-height-98{line-height:98px}.line-height-100{line-height:100px}.line-height-102{line-height:102px}.line-height-104{line-height:104px}.line-height-106{line-height:106px}.line-height-108{line-height:108px}.line-height-110{line-height:110px}.line-height-112{line-height:112px}.line-height-114{line-height:114px}.line-height-116{line-height:116px}.line-height-118{line-height:118px}.line-height-120{line-height:120px}.text-boxed,.text-boxed-light{border-radius:2px;padding:4px 8px;margin:0 8px;font-size:11px;font-weight:500;color:rgba(0,0,0,.54);background-color:rgba(0,0,0,.12);white-space:nowrap}.text-boxed-light{background-color:rgba(255,255,255,.7)}.text-truncate{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-nowrap{white-space:nowrap}.angular-google-map-container{height:400px}.moment-picker .moment-picker-container{width:296px;border:none;border-radius:2px;box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12);margin-left:0;padding:8px}.moment-picker .moment-picker-container td,.moment-picker .moment-picker-container th{min-width:0;width:40px;height:40px;padding:8px;text-shadow:none;border-radius:35px}.moment-picker .moment-picker-container td:hover,.moment-picker .moment-picker-container th:hover{background:#f5f5f5;background-image:none}.moment-picker .moment-picker-container td.selected{background:#03a9f4;background-image:none}.moment-picker .moment-picker-container .header-view th{border-radius:0;white-space:nowrap;width:auto}.moment-picker .moment-picker-container .header-view th:first-child,.moment-picker .moment-picker-container .header-view th:last-child{width:20%}.c3{transition:all .3s ease}.c3 svg{font:12px RobotoDraft,Roboto,'Helvetica Neue',sans-serif}.c3 line,.c3 path{fill:none;stroke:#000}.c3 text{font-family:Roboto,"Helvetica Neue",Arial,sans-serif;user-select:none}.c3 .c3-bars path,.c3 .c3-event-rect,.c3 .c3-legend-item-tile,.c3 .c3-xgrid-focus,.c3 .c3-ygrid{shape-rendering:crispEdges}.c3 .c3-chart-line{transition:all .3s ease}.c3 .c3-line{stroke-width:1px}.c3.stroke-3 .c3-line{stroke-width:3px}.c3.stroke-2 .c3-line{stroke-width:2px}.c3 .c3-circle{transition:all .3s ease;stroke:#fff;stroke-width:2}.c3 .c3-circle._expanded_{stroke-width:3;stroke:#fff}.c3 .c3-chart-arc path{stroke:#fff}.c3 .c3-chart-arc text{fill:#fff;font-size:13px}.c3 .c3-grid line{stroke:rgba(0,0,0,.04);stroke-width:1px;stroke-dasharray:0}.c3 .c3-grid text{fill:#aaa}.c3 .c3-axis .tick{stroke-width:0}.c3 .c3-axis text{fill:rgba(0,0,0,.33)}.c3 .c3-axis line,.c3 .c3-axis path{stroke:rgba(0,0,0,.04)}.c3 .c3-xgrid,.c3 .c3-ygrid{stroke-dasharray:0 0}.c3 .c3-text.c3-empty{fill:grey;font-size:2em}.c3 .c3-bar{stroke-width:0}.c3 .c3-bar._expanded_{fill-opacity:.75}.c3 .c3-target.c3-focused{opacity:1}.c3 .c3-target.c3-focused .c3-target.c3-focused path.c3-step,.c3 .c3-target.c3-focused path.c3-line{stroke-width:3px;transition:all .3s ease}.c3 .c3-target.c3-defocused{opacity:.3!important}.c3 .c3-region{fill:#4682b4;fill-opacity:.1}.c3 .c3-brush .extent{fill-opacity:.1}.c3 .c3-legend-item{font-size:12px}.c3 .c3-legend-item-hidden{opacity:.15}.c3 .c3-legend-background{opacity:.75;fill:#fff;stroke:#d3d3d3;stroke-width:1}.c3 .c3-tooltip-container{z-index:10}.c3 .c3-tooltip{border-collapse:collapse;border-spacing:0;background-color:#fff;empty-cells:show;box-shadow:0 2px 4px -1px rgba(0,0,0,.14),0 4px 5px 0 rgba(0,0,0,.098),0 1px 10px 0 rgba(0,0,0,.084);opacity:1;border-radius:2px;overflow:hidden;padding:4px 0}.c3 .c3-tooltip tr{border:none}.c3 .c3-tooltip th{background-color:transparent;font-size:14px;font-weight:400;padding:8px 12px;text-align:left;color:rgba(0,0,0,.54)}.c3 .c3-tooltip td{font-size:13px;padding:4px 12px!important;background-color:#fff;border-left:none;color:rgba(0,0,0,.84)}.c3 .c3-tooltip td>span{display:inline-block;width:10px;height:10px;margin-right:6px}.c3 .c3-tooltip td.value{font-size:14px!important;text-align:right;color:rgba(0,0,0,.84)}.c3 .c3-area{stroke-width:0;opacity:.2}.c3 .c3-chart-arcs-title{dominant-baseline:middle;font-size:1.3em}.c3 .c3-chart-arcs .c3-chart-arcs-background{fill:#e0e0e0;stroke:none}.c3 .c3-chart-arcs .c3-chart-arcs-gauge-unit{fill:#000;font-size:16px}.c3 .c3-chart-arcs .c3-chart-arcs-gauge-max{fill:#777}.c3 .c3-chart-arcs .c3-chart-arcs-gauge-min{fill:#777}.c3 .c3-chart-arc .c3-gauge-value{fill:#000}.ct-label{font-size:13px}.ct-chart-donut .ct-label,.ct-chart-pie .ct-label{font-size:13px}.bar-legend,.chart-legend,.doughnut-legend,.line-legend,.pie-legend,.polararea-legend,.radar-legend{margin-top:15px}table.dataTable{width:100%;margin:0 auto;clear:both;border-spacing:0}table.dataTable thead tr{background:#fff}table.dataTable thead th{text-align:left;vertical-align:middle;border-bottom:1px solid rgba(0,0,0,.12);padding:16px 8px}table.dataTable thead th:first-child{padding-left:24px}table.dataTable thead th:last-child{border-right:none;padding-right:24px}table.dataTable thead th:active{outline:0}table.dataTable thead th.dt-head-left{text-align:left}table.dataTable thead th.dt-head-center{text-align:center}table.dataTable thead th.dt-head-right{text-align:right}table.dataTable thead th.dt-head-justify{text-align:justify}table.dataTable thead th.dt-head-nowrap{white-space:nowrap}table.dataTable thead th .table-header .column-title{display:block;font-weight:600;white-space:nowrap}table.dataTable thead th .table-header .selectize-control{margin-top:15px}table.dataTable thead th .table-header .selectize-control.single .selectize-input{padding:7px 10px}table.dataTable thead th .table-header .selectize-control.single .selectize-input:after{right:10px;border-width:5px 4px 0 4px;border-color:rgba(0,0,0,.12) transparent transparent transparent}table.dataTable thead th .table-header .column-search-input{display:inline-block;margin-top:15px;width:100%;height:33px}table.dataTable thead td{padding:15px;vertical-align:middle}table.dataTable thead td:active{outline:0}table.dataTable thead td.dt-head-left{text-align:left}table.dataTable thead td.dt-head-center{text-align:center}table.dataTable thead td.dt-head-right{text-align:right}table.dataTable thead td.dt-head-justify{text-align:justify}table.dataTable thead td.dt-head-nowrap{white-space:nowrap}table.dataTable thead .sorting,table.dataTable thead .sorting_asc,table.dataTable thead .sorting_desc{background:0 0}table.dataTable thead .sorting .table-header .column-title,table.dataTable thead .sorting_asc .table-header .column-title,table.dataTable thead .sorting_desc .table-header .column-title{cursor:pointer}table.dataTable thead .sorting .table-header .column-title:after,table.dataTable thead .sorting_asc .table-header .column-title:after,table.dataTable thead .sorting_desc .table-header .column-title:after{position:relative;font-family:icomoon;font-weight:400;margin-left:10px;top:2px;font-size:16px;color:rgba(0,0,0,.54)}table.dataTable thead .sorting .table-header .column-title:after{content:'\eaa8'}table.dataTable thead .sorting_asc .table-header .column-title:after{content:'\e718'}table.dataTable thead .sorting_desc .table-header .column-title:after{content:'\e715'}table.dataTable tfoot th{font-weight:600;text-align:left;padding:10px 18px 6px 18px;border-top:1px solid #111}table.dataTable tfoot th.dt-head-left{text-align:left}table.dataTable tfoot th.dt-head-center{text-align:center}table.dataTable tfoot th.dt-head-right{text-align:right}table.dataTable tfoot th.dt-head-justify{text-align:justify}table.dataTable tfoot th.dt-head-nowrap{white-space:nowrap}table.dataTable tfoot td{padding:10px 18px 6px 18px;border-top:1px solid #111}table.dataTable tfoot td.dt-head-left{text-align:left}table.dataTable tfoot td.dt-head-center{text-align:center}table.dataTable tfoot td.dt-head-right{text-align:right}table.dataTable tfoot td.dt-head-justify{text-align:justify}table.dataTable tfoot td.dt-head-nowrap{white-space:nowrap}table.dataTable tbody tr{background-color:#fff}table.dataTable tbody tr.selected{background-color:#b0bed9}table.dataTable tbody tr.details-open td.detail-column i{background:#fff}table.dataTable tbody tr.details-row.odd tr{background:#fff}table.dataTable tbody tr.details-row>td{padding:0}table.dataTable tbody th{padding:14px 15px;vertical-align:middle}table.dataTable tbody th.dt-body-left{text-align:left}table.dataTable tbody th.dt-body-center{text-align:center}table.dataTable tbody th.dt-body-right{text-align:right}table.dataTable tbody th.dt-body-justify{text-align:justify}table.dataTable tbody th.dt-body-nowrap{white-space:nowrap}table.dataTable tbody td{padding:16px 8px;vertical-align:middle}table.dataTable tbody td:first-child{padding-left:24px}table.dataTable tbody td:last-child{padding-right:24px}table.dataTable tbody td.dt-body-left{text-align:left}table.dataTable tbody td.dt-body-center{text-align:center}table.dataTable tbody td.dt-body-right{text-align:right}table.dataTable tbody td.dt-body-justify{text-align:justify}table.dataTable tbody td.dt-body-nowrap{white-space:nowrap}table.dataTable th.dt-left{text-align:left}table.dataTable th.dt-center{text-align:center}table.dataTable th.dt-right{text-align:right}table.dataTable th.dt-justify{text-align:justify}table.dataTable th.dt-nowrap{white-space:nowrap}table.dataTable td.dt-left{text-align:left}table.dataTable td.dt-center{text-align:center}table.dataTable td.dataTables_empty{height:51px;text-align:center}table.dataTable td.dt-right{text-align:right}table.dataTable td.dt-justify{text-align:justify}table.dataTable td.dt-nowrap{white-space:nowrap}table.dataTable.row-border thead{border-bottom:1px solid rgba(0,0,0,.12)}table.dataTable.row-border tbody tr:first-child th{border-top:none}table.dataTable.row-border tbody tr:first-child td{border-top:none}table.dataTable.row-border tbody tr:last-child td{border-bottom:1px solid rgba(0,0,0,.12)}table.dataTable.row-border tbody th{border-top:1px solid rgba(0,0,0,.12)}table.dataTable.row-border tbody td{border-top:1px solid rgba(0,0,0,.12)}table.dataTable.cell-border tbody tr:first-child th{border-top:none}table.dataTable.cell-border tbody tr:first-child td{border-top:none}table.dataTable.cell-border tbody th{border-top:1px solid rgba(0,0,0,.12);border-right:1px solid rgba(0,0,0,.12)}table.dataTable.cell-border tbody th:last-child{border-right:none}table.dataTable.cell-border tbody td{border-top:1px solid rgba(0,0,0,.12);border-right:1px solid rgba(0,0,0,.12)}table.dataTable.cell-border tbody td:last-child{border-right:none}table.dataTable.stripe tbody tr.odd{background-color:#fff}table.dataTable.stripe tbody tr.odd.selected{background-color:#abb9d3}table.dataTable.hover tbody tr:hover{background-color:#f5f5f5}table.dataTable.hover tbody tr:hover.selected{background-color:#a9b7d1}table.dataTable.hover tbody tr.odd:hover{background-color:#f5f5f5}table.dataTable.hover tbody tr.odd:hover.selected{background-color:#a9b7d1}table.dataTable.hover tbody tr.even:hover{background-color:#f5f5f5}table.dataTable.hover tbody tr.even:hover.selected{background-color:#a9b7d1}table.dataTable.order-column tbody tr>.sorting_1{background-color:#f9f9f9}table.dataTable.order-column tbody tr>.sorting_2{background-color:#f9f9f9}table.dataTable.order-column tbody tr>.sorting_3{background-color:#f9f9f9}table.dataTable.order-column tbody tr.selected>.sorting_1{background-color:#acbad4}table.dataTable.order-column tbody tr.selected>.sorting_2{background-color:#acbad4}table.dataTable.order-column tbody tr.selected>.sorting_3{background-color:#acbad4}table.dataTable.order-column.stripe tbody tr.odd>.sorting_1{background-color:#f1f1f1}table.dataTable.order-column.stripe tbody tr.odd>.sorting_2{background-color:#f3f3f3}table.dataTable.order-column.stripe tbody tr.odd>.sorting_3{background-color:#f5f5f5}table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_1{background-color:#a6b3cd}table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_2{background-color:#a7b5ce}table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_3{background-color:#a9b6d0}table.dataTable.order-column.stripe tbody tr.even>.sorting_1{background-color:#f9f9f9}table.dataTable.order-column.stripe tbody tr.even>.sorting_2{background-color:#fbfbfb}table.dataTable.order-column.stripe tbody tr.even>.sorting_3{background-color:#fdfdfd}table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_1{background-color:#acbad4}table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_2{background-color:#adbbd6}table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_3{background-color:#afbdd8}table.dataTable.order-column.hover tbody tr:hover>.sorting_1{background-color:#eaeaea}table.dataTable.order-column.hover tbody tr:hover>.sorting_2{background-color:#ebebeb}table.dataTable.order-column.hover tbody tr:hover>.sorting_3{background-color:#eee}table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_1{background-color:#a1aec7}table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_2{background-color:#a2afc8}table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_3{background-color:#a4b2cb}table.dataTable.order-column.hover tbody tr.odd:hover>.sorting_1{background-color:#eaeaea}table.dataTable.order-column.hover tbody tr.odd:hover>.sorting_2{background-color:#ebebeb}table.dataTable.order-column.hover tbody tr.odd:hover>.sorting_3{background-color:#eee}table.dataTable.order-column.hover tbody tr.odd:hover.selected>.sorting_1{background-color:#a1aec7}table.dataTable.order-column.hover tbody tr.odd:hover.selected>.sorting_2{background-color:#a2afc8}table.dataTable.order-column.hover tbody tr.odd:hover.selected>.sorting_3{background-color:#a4b2cb}table.dataTable.order-column.hover tbody tr.even:hover>.sorting_1{background-color:#eaeaea}table.dataTable.order-column.hover tbody tr.even:hover>.sorting_2{background-color:#ebebeb}table.dataTable.order-column.hover tbody tr.even:hover>.sorting_3{background-color:#eee}table.dataTable.order-column.hover tbody tr.even:hover.selected>.sorting_1{background-color:#a1aec7}table.dataTable.order-column.hover tbody tr.even:hover.selected>.sorting_2{background-color:#a2afc8}table.dataTable.order-column.hover tbody tr.even:hover.selected>.sorting_3{background-color:#a4b2cb}table.dataTable.no-footer{border-bottom:none}table.dataTable.nowrap th{white-space:nowrap}table.dataTable.nowrap td{white-space:nowrap}table.dataTable.compact thead th{padding:5px 9px}table.dataTable.compact thead td{padding:5px 9px}table.dataTable.compact tfoot th{padding:5px 9px 3px 9px}table.dataTable.compact tfoot td{padding:5px 9px 3px 9px}table.dataTable.compact tbody th{padding:4px 5px}table.dataTable.compact tbody td{padding:4px 5px}.dataTables_wrapper{display:flex;flex:1 0 auto;flex-direction:column;min-height:0}.dataTables_wrapper .top{padding:16px 24px}.dataTables_wrapper .bottom{display:flex;min-height:64px;justify-content:space-between;padding:16px 8px;border-top:1px solid rgba(0,0,0,.12)}.dataTables_wrapper .bottom .left{display:flex;flex:0 0 50%;max-width:50%;align-self:center;padding:0 8px}.dataTables_wrapper .bottom .left .length{display:block}.dataTables_wrapper .bottom .right{display:flex;flex:0 0 50%;max-width:50%;align-self:center;justify-content:flex-end;padding:0 8px}.dataTables_wrapper .bottom .right .info{display:block;align-self:center}.dataTables_wrapper .bottom .right .info .dataTables_info{padding:0 8px;font-weight:600}.dataTables_wrapper .bottom .right .pagination{display:block;align-self:center;white-space:nowrap}.dataTables_wrapper .bottom .right .pagination .dataTables_paginate{padding:0;margin:0!important}.dataTables_wrapper .dataTables_filter{float:right}.dataTables_wrapper .dataTables_filter input{margin-left:.5em;border:1px solid rgba(0,0,0,.12);height:24px;padding:4px 8px}.dataTables_wrapper .dataTables_paginate .paginate_button{background:#fff;color:rgba(0,0,0,.87);border:1px solid rgba(0,0,0,.12);padding:9px 12px;border-radius:2px;cursor:pointer;user-select:none;margin:0 2px}.dataTables_wrapper .dataTables_paginate .paginate_button:hover{box-shadow:inset 999em 0 0 0 rgba(0,0,0,.05);color:rgba(0,0,0,.87)!important;border:1px solid rgba(0,0,0,.12)!important;background:0 0}.dataTables_wrapper .dataTables_paginate .paginate_button:active{box-shadow:inset 999em 0 0 0 rgba(0,0,0,.08),inset 0 1px 3px 0 rgba(0,0,0,.1),0 1px 0 0 rgba(255,255,255,.35)}.dataTables_wrapper .dataTables_paginate .paginate_button.current,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover{color:rgba(0,0,0,.54)!important;border-color:rgba(0,0,0,.12)!important;background:#fff!important;box-shadow:none!important;cursor:default}.dataTables_wrapper .dataTables_processing{position:absolute;top:50%;left:50%;width:100%;height:40px;margin-left:-50%;margin-top:-25px;padding-top:20px;text-align:center;font-size:1.2em;background-color:#fff;background:-webkit-gradient(linear,left top,right top,color-stop(0,rgba(255,255,255,0)),color-stop(25%,rgba(255,255,255,.9)),color-stop(75%,rgba(255,255,255,.9)),color-stop(100%,rgba(255,255,255,0)));background:-webkit-linear-gradient(left,rgba(255,255,255,0) 0,rgba(255,255,255,.9) 25%,rgba(255,255,255,.9) 75%,rgba(255,255,255,0) 100%);background:-moz-linear-gradient(left,rgba(255,255,255,0) 0,rgba(255,255,255,.9) 25%,rgba(255,255,255,.9) 75%,rgba(255,255,255,0) 100%);background:-ms-linear-gradient(left,rgba(255,255,255,0) 0,rgba(255,255,255,.9) 25%,rgba(255,255,255,.9) 75%,rgba(255,255,255,0) 100%);background:-o-linear-gradient(left,rgba(255,255,255,0) 0,rgba(255,255,255,.9) 25%,rgba(255,255,255,.9) 75%,rgba(255,255,255,0) 100%);background:linear-gradient(to right,rgba(255,255,255,0) 0,rgba(255,255,255,.9) 25%,rgba(255,255,255,.9) 75%,rgba(255,255,255,0) 100%)}.dataTables_wrapper .dataTables_scroll{display:flex;flex:1 1 0;flex-direction:column;clear:both;min-height:0}.dataTables_wrapper .dataTables_scroll table.dataTable{box-shadow:none}.dataTables_wrapper .dataTables_scroll table.dataTable.row-border thead{border:none}.dataTables_wrapper .dataTables_scroll .dataTables_scrollHead{display:flex;min-height:56px;box-shadow:0 0 0 1px rgba(0,0,0,.095),0 1px 1px 0 rgba(0,0,0,.1),0 2px 1px 0 rgba(0,0,0,.05);background:#fff;overflow:visible!important}.dataTables_wrapper .dataTables_scroll .dataTables_scrollHead tr th:last-child .table-header .column-title{position:relative;left:7px}.dataTables_wrapper .dataTables_scroll .dataTables_scrollBody{display:flex;overflow-x:hidden!important;overflow-y:scroll!important;-webkit-overflow-scrolling:touch}.dataTables_wrapper .dataTables_scroll .dataTables_scrollBody th>.dataTables_sizing{height:0;overflow:hidden;margin:0!important;padding:0!important}.dataTables_wrapper .dataTables_scroll .dataTables_scrollBody td>.dataTables_sizing{height:0;overflow:hidden;margin:0!important;padding:0!important}.dataTables_wrapper.no-footer .dataTables_scrollBody{border-bottom:none}.dataTables_wrapper.no-footer .dataTables_scrollBody table,.dataTables_wrapper.no-footer .dataTables_scrollHead table{border-bottom:none}.dataTables_wrapper:after{visibility:hidden;display:block;content:'';clear:both;height:0}table.dataTable .show-details{padding:5px 10px;font-weight:700}table.dataTable .action-buttons{display:flex;justify-content:center}table.dataTable .action-buttons .button{padding:8px}.fullpage-datatable .dataTables_wrapper{height:100%;max-height:100%}.explorer-11 .fullpage-datatable .dataTables_scroll{flex:1}table.dataTable.dtr-inline.collapsed.dtr-inline.collapsed>tbody>tr>td:first-child,table.dataTable.dtr-inline.collapsed.dtr-inline.collapsed>tbody>tr>th:first-child{padding-left:40px}table.dataTable.dtr-inline.collapsed.dtr-inline.collapsed>tbody>tr>td:first-child:before,table.dataTable.dtr-inline.collapsed.dtr-inline.collapsed>tbody>tr>th:first-child:before{content:'+';width:15px;height:15px;line-height:15px;top:50%;margin-top:-7px;left:8px;color:rgba(0,0,0,.54);background:0 0;border:none;box-shadow:0 0 0 2px rgba(0,0,0,.54);font-weight:700}table.dataTable.dtr-inline.collapsed.dtr-inline.collapsed>tbody>tr.parent>td:first-child:before,table.dataTable.dtr-inline.collapsed.dtr-inline.collapsed>tbody>tr.parent>th:first-child:before{background:0 0}table.dataTable.dtr-inline.collapsed>tbody>tr.child ul{display:block}table.dataTable.dtr-inline.collapsed>tbody>tr.child ul li{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;border-bottom:1px solid rgba(0,0,0,.12);padding:8px 0}table.dataTable.dtr-inline.collapsed>tbody>tr.child ul li:first-child{padding-top:0}table.dataTable.dtr-inline.collapsed>tbody>tr.child ul li:last-child{border-bottom:none;padding-bottom:0}table.dataTable.dtr-inline.collapsed>tbody>tr.child ul li .dtr-title{margin-right:8px}[hljs],hljs{display:block;overflow-x:auto;color:#333;background:#f8f8f8;-webkit-text-size-adjust:none}.diff .hljs-header,.hljs-comment{color:#998;font-style:italic}.css .rule .hljs-keyword,.hljs-keyword,.hljs-request,.hljs-status,.hljs-subst,.hljs-winutils,.nginx .hljs-title{color:#333;font-weight:700}.hljs-hexcolor,.hljs-number,.ruby .hljs-constant{color:teal}.hljs-doctag,.hljs-string,.hljs-tag .hljs-value,.tex .hljs-formula{color:#d14}.hljs-id,.hljs-title,.scss .hljs-preprocessor{color:#900;font-weight:700}.hljs-list .hljs-keyword,.hljs-subst{font-weight:400}.hljs-class .hljs-title,.hljs-type,.tex .hljs-command,.vhdl .hljs-literal{color:#458;font-weight:700}.django .hljs-tag .hljs-keyword,.hljs-rule .hljs-property,.hljs-tag,.hljs-tag .hljs-title{color:navy;font-weight:400}.hljs-attribute,.hljs-name,.hljs-variable,.lisp .hljs-body{color:teal}.hljs-regexp{color:#009926}.clojure .hljs-keyword,.hljs-prompt,.hljs-symbol,.lisp .hljs-keyword,.ruby .hljs-symbol .hljs-string,.scheme .hljs-keyword,.tex .hljs-special{color:#990073}.hljs-built_in{color:#0086b3}.hljs-cdata,.hljs-doctype,.hljs-pi,.hljs-pragma,.hljs-preprocessor,.hljs-shebang{color:#999;font-weight:700}.hljs-deletion{background:#fdd}.hljs-addition{background:#dfd}.diff .hljs-change{background:#0086b3}.hljs-chunk{color:#aaa}nvd3{display:block;width:100%;height:100%}nvd3.remove-x-lines .nv-x .tick line{display:none}nvd3.remove-y-lines .nv-y .tick line{display:none}nvd3.remove-line-stroke .nv-groups path.nv-line{stroke-width:0!important}nvd3.remove-opacity .nv-groups .nv-group{fill-opacity:1!important}nvd3.show-line-points .nv-line .nv-scatter .nv-groups .nv-point{fill-opacity:1!important;stroke-opacity:1!important}.nvd3 text{font-family:Roboto,"Helvetica Neue",Arial,sans-serif}.nvd3 line.nv-guideline{stroke:rgba(0,0,0,.54)}.nvd3 .nv-groups .nv-point.hover{stroke-width:3px!important;fill-opacity:1!important;stroke-opacity:1!important}.nvtooltip{background:0 0;color:#fff;padding:0;border:none}.nvtooltip.gravity-n:after{display:block;position:absolute;content:'';width:0;height:0;left:50%;bottom:100%;margin-left:-5px;border:5px solid transparent;border-bottom-color:rgba(0,0,0,.87)}.nvtooltip.gravity-s:after{display:block;position:absolute;content:'';width:0;height:0;top:100%;left:50%;margin-left:-5px;border:5px solid transparent;border-top-color:rgba(0,0,0,.87)}.nvtooltip.gravity-e:after{display:block;position:absolute;content:'';width:0;height:0;top:50%;right:0;margin-top:-6px;margin-right:-11px;border:6px solid transparent;border-left-color:rgba(0,0,0,.87)}.nvtooltip.gravity-w:after{display:block;position:absolute;content:'';width:0;height:0;top:50%;margin-top:-6px;margin-left:-11px;border:6px solid transparent;border-right-color:rgba(0,0,0,.87)}.nvtooltip table{background:rgba(0,0,0,.87);padding:8px 12px;margin:0;border-radius:2px}.nvtooltip table tbody tr td.legend-color-guide div{border:none}.nvtooltip table tbody tr td:last-child{padding-right:0}.ps-container:hover .ps-in-scrolling{pointer-events:auto}.ps-container .ps-in-scrolling{pointer-events:auto}.ps-container>.ps-scrollbar-x-rail{background:0 0!important;margin:4px 0;height:4px;z-index:49}.ps-container>.ps-scrollbar-x-rail>.ps-scrollbar-x{height:4px}.ps-container>.ps-scrollbar-y-rail{background:0 0!important;margin:4px 0;width:4px;z-index:49}.ps-container>.ps-scrollbar-y-rail>.ps-scrollbar-y{width:4px}.ta-root{display:block}.ta-root .ta-scroll-window.form-control{border:1px solid rgba(0,0,0,.12)}.ta-root.focussed>.ta-scroll-window.form-control{outline:0 solid transparent;border:1px solid rgba(0,0,0,.12);box-shadow:none}.ta-root textarea.ta-editor.ta-html{resize:vertical;width:100%!important;border:1px solid rgba(0,0,0,.12);padding:16px}.ta-root .ta-toolbar{border:1px solid rgba(0,0,0,.12);border-bottom:none;background:#f5f5f5}.ta-root .ta-toolbar .ta-group{display:flex;align-items:center;align-content:center;flex-wrap:wrap}.ta-root .ta-toolbar .ta-group #toolbarCC,.ta-root .ta-toolbar .ta-group #toolbarWC{display:inline-block!important;line-height:24px}.ta-root .ta-toolbar .ta-group .md-button{width:40px;min-width:40px;line-height:14px;height:36px;min-height:36px;padding:6px;margin:4px 0}.ta-root .ta-toolbar .ta-group .md-button i{font-size:20px;width:20px;height:20px;line-height:20px}.ng-cloak,.x-ng-cloak,[data-ng-cloak],[ng-cloak],[ng\:cloak],[x-ng-cloak]{display:none!important}.no-padding{padding:0!important}.no-margin{margin:0!important}.no-radius{border-radius:0}.divider-vertical{background:rgba(0,0,0,.12);height:24px;width:1px;margin:0 8px}.hidden{visibility:hidden;opacity:0}[fill-width]{min-width:100%}[fill-height]{min-height:100%}.full-height{height:100%!important}a img{display:block;outline:0}img{max-width:100%;height:auto;vertical-align:top;border:none}.scrollable{display:block;position:relative;overflow-x:auto;overflow-y:auto;-webkit-overflow-scrolling:touch}.scrollable.only-x{overflow-x:auto;overflow-y:hidden}.scrollable.only-y{overflow-x:hidden;overflow-y:auto}.flex-scrollable{position:relative;overflow-x:auto;overflow-y:auto;-webkit-overflow-scrolling:touch}.flex-scrollable.only-x{overflow-x:auto;overflow-y:hidden}.flex-scrollable.only-y{overflow-x:hidden;overflow-y:auto}.background-image-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:-1}.align-vertical:before{display:inline-block;height:100%;content:'';vertical-align:middle}.align-vertical .align-vertical-bottom,.align-vertical .align-vertical-middle,.align-vertical .align-vertical-top{display:inline-block}.align-vertical .align-vertical-top{vertical-align:top}.align-vertical .align-vertical-middle{vertical-align:middle}.align-vertical .align-vertical-bottom{vertical-align:bottom}.p-0,.padding-0{padding:0}.padding-top-0,.pt-0{padding-top:0}.padding-right-0,.pr-0{padding-right:0}.padding-bottom-0,.pb-0{padding-bottom:0}.padding-left-0,.pl-0{padding-left:0}.padding-horizontal-0,.ph-0{padding-left:0;padding-right:0}.padding-vertical-0,.pv-0{padding-top:0;padding-bottom:0}.p-5,.padding-5{padding:5px}.padding-top-5,.pt-5{padding-top:5px}.padding-right-5,.pr-5{padding-right:5px}.padding-bottom-5,.pb-5{padding-bottom:5px}.padding-left-5,.pl-5{padding-left:5px}.padding-horizontal-5,.ph-5{padding-left:5px;padding-right:5px}.padding-vertical-5,.pv-5{padding-top:5px;padding-bottom:5px}.p-10,.padding-10{padding:10px}.padding-top-10,.pt-10{padding-top:10px}.padding-right-10,.pr-10{padding-right:10px}.padding-bottom-10,.pb-10{padding-bottom:10px}.padding-left-10,.pl-10{padding-left:10px}.padding-horizontal-10,.ph-10{padding-left:10px;padding-right:10px}.padding-vertical-10,.pv-10{padding-top:10px;padding-bottom:10px}.p-15,.padding-15{padding:15px}.padding-top-15,.pt-15{padding-top:15px}.padding-right-15,.pr-15{padding-right:15px}.padding-bottom-15,.pb-15{padding-bottom:15px}.padding-left-15,.pl-15{padding-left:15px}.padding-horizontal-15,.ph-15{padding-left:15px;padding-right:15px}.padding-vertical-15,.pv-15{padding-top:15px;padding-bottom:15px}.p-20,.padding-20{padding:20px}.padding-top-20,.pt-20{padding-top:20px}.padding-right-20,.pr-20{padding-right:20px}.padding-bottom-20,.pb-20{padding-bottom:20px}.padding-left-20,.pl-20{padding-left:20px}.padding-horizontal-20,.ph-20{padding-left:20px;padding-right:20px}.padding-vertical-20,.pv-20{padding-top:20px;padding-bottom:20px}.p-25,.padding-25{padding:25px}.padding-top-25,.pt-25{padding-top:25px}.padding-right-25,.pr-25{padding-right:25px}.padding-bottom-25,.pb-25{padding-bottom:25px}.padding-left-25,.pl-25{padding-left:25px}.padding-horizontal-25,.ph-25{padding-left:25px;padding-right:25px}.padding-vertical-25,.pv-25{padding-top:25px;padding-bottom:25px}.p-30,.padding-30{padding:30px}.padding-top-30,.pt-30{padding-top:30px}.padding-right-30,.pr-30{padding-right:30px}.padding-bottom-30,.pb-30{padding-bottom:30px}.padding-left-30,.pl-30{padding-left:30px}.padding-horizontal-30,.ph-30{padding-left:30px;padding-right:30px}.padding-vertical-30,.pv-30{padding-top:30px;padding-bottom:30px}.p-35,.padding-35{padding:35px}.padding-top-35,.pt-35{padding-top:35px}.padding-right-35,.pr-35{padding-right:35px}.padding-bottom-35,.pb-35{padding-bottom:35px}.padding-left-35,.pl-35{padding-left:35px}.padding-horizontal-35,.ph-35{padding-left:35px;padding-right:35px}.padding-vertical-35,.pv-35{padding-top:35px;padding-bottom:35px}.p-40,.padding-40{padding:40px}.padding-top-40,.pt-40{padding-top:40px}.padding-right-40,.pr-40{padding-right:40px}.padding-bottom-40,.pb-40{padding-bottom:40px}.padding-left-40,.pl-40{padding-left:40px}.padding-horizontal-40,.ph-40{padding-left:40px;padding-right:40px}.padding-vertical-40,.pv-40{padding-top:40px;padding-bottom:40px}.p-45,.padding-45{padding:45px}.padding-top-45,.pt-45{padding-top:45px}.padding-right-45,.pr-45{padding-right:45px}.padding-bottom-45,.pb-45{padding-bottom:45px}.padding-left-45,.pl-45{padding-left:45px}.padding-horizontal-45,.ph-45{padding-left:45px;padding-right:45px}.padding-vertical-45,.pv-45{padding-top:45px;padding-bottom:45px}.p-50,.padding-50{padding:50px}.padding-top-50,.pt-50{padding-top:50px}.padding-right-50,.pr-50{padding-right:50px}.padding-bottom-50,.pb-50{padding-bottom:50px}.padding-left-50,.pl-50{padding-left:50px}.padding-horizontal-50,.ph-50{padding-left:50px;padding-right:50px}.padding-vertical-50,.pv-50{padding-top:50px;padding-bottom:50px}.p-55,.padding-55{padding:55px}.padding-top-55,.pt-55{padding-top:55px}.padding-right-55,.pr-55{padding-right:55px}.padding-bottom-55,.pb-55{padding-bottom:55px}.padding-left-55,.pl-55{padding-left:55px}.padding-horizontal-55,.ph-55{padding-left:55px;padding-right:55px}.padding-vertical-55,.pv-55{padding-top:55px;padding-bottom:55px}.p-60,.padding-60{padding:60px}.padding-top-60,.pt-60{padding-top:60px}.padding-right-60,.pr-60{padding-right:60px}.padding-bottom-60,.pb-60{padding-bottom:60px}.padding-left-60,.pl-60{padding-left:60px}.padding-horizontal-60,.ph-60{padding-left:60px;padding-right:60px}.padding-vertical-60,.pv-60{padding-top:60px;padding-bottom:60px}.p-65,.padding-65{padding:65px}.padding-top-65,.pt-65{padding-top:65px}.padding-right-65,.pr-65{padding-right:65px}.padding-bottom-65,.pb-65{padding-bottom:65px}.padding-left-65,.pl-65{padding-left:65px}.padding-horizontal-65,.ph-65{padding-left:65px;padding-right:65px}.padding-vertical-65,.pv-65{padding-top:65px;padding-bottom:65px}.p-70,.padding-70{padding:70px}.padding-top-70,.pt-70{padding-top:70px}.padding-right-70,.pr-70{padding-right:70px}.padding-bottom-70,.pb-70{padding-bottom:70px}.padding-left-70,.pl-70{padding-left:70px}.padding-horizontal-70,.ph-70{padding-left:70px;padding-right:70px}.padding-vertical-70,.pv-70{padding-top:70px;padding-bottom:70px}.p-75,.padding-75{padding:75px}.padding-top-75,.pt-75{padding-top:75px}.padding-right-75,.pr-75{padding-right:75px}.padding-bottom-75,.pb-75{padding-bottom:75px}.padding-left-75,.pl-75{padding-left:75px}.padding-horizontal-75,.ph-75{padding-left:75px;padding-right:75px}.padding-vertical-75,.pv-75{padding-top:75px;padding-bottom:75px}.p-80,.padding-80{padding:80px}.padding-top-80,.pt-80{padding-top:80px}.padding-right-80,.pr-80{padding-right:80px}.padding-bottom-80,.pb-80{padding-bottom:80px}.padding-left-80,.pl-80{padding-left:80px}.padding-horizontal-80,.ph-80{padding-left:80px;padding-right:80px}.padding-vertical-80,.pv-80{padding-top:80px;padding-bottom:80px}.p-85,.padding-85{padding:85px}.padding-top-85,.pt-85{padding-top:85px}.padding-right-85,.pr-85{padding-right:85px}.padding-bottom-85,.pb-85{padding-bottom:85px}.padding-left-85,.pl-85{padding-left:85px}.padding-horizontal-85,.ph-85{padding-left:85px;padding-right:85px}.padding-vertical-85,.pv-85{padding-top:85px;padding-bottom:85px}.p-90,.padding-90{padding:90px}.padding-top-90,.pt-90{padding-top:90px}.padding-right-90,.pr-90{padding-right:90px}.padding-bottom-90,.pb-90{padding-bottom:90px}.padding-left-90,.pl-90{padding-left:90px}.padding-horizontal-90,.ph-90{padding-left:90px;padding-right:90px}.padding-vertical-90,.pv-90{padding-top:90px;padding-bottom:90px}.p-95,.padding-95{padding:95px}.padding-top-95,.pt-95{padding-top:95px}.padding-right-95,.pr-95{padding-right:95px}.padding-bottom-95,.pb-95{padding-bottom:95px}.padding-left-95,.pl-95{padding-left:95px}.padding-horizontal-95,.ph-95{padding-left:95px;padding-right:95px}.padding-vertical-95,.pv-95{padding-top:95px;padding-bottom:95px}.p-100,.padding-100{padding:100px}.padding-top-100,.pt-100{padding-top:100px}.padding-right-100,.pr-100{padding-right:100px}.padding-bottom-100,.pb-100{padding-bottom:100px}.padding-left-100,.pl-100{padding-left:100px}.padding-horizontal-100,.ph-100{padding-left:100px;padding-right:100px}.padding-vertical-100,.pv-100{padding-top:100px;padding-bottom:100px}.p-8,.padding-8{padding:8px}.padding-top-8,.pt-8{padding-top:8px}.padding-right-8,.pr-8{padding-right:8px}.padding-bottom-8,.pb-8{padding-bottom:8px}.padding-left-8,.pl-8{padding-left:8px}.padding-horizontal-8,.ph-8{padding-left:8px;padding-right:8px}.padding-vertical-8,.pv-8{padding-top:8px;padding-bottom:8px}.p-16,.padding-16{padding:16px}.padding-top-16,.pt-16{padding-top:16px}.padding-right-16,.pr-16{padding-right:16px}.padding-bottom-16,.pb-16{padding-bottom:16px}.padding-left-16,.pl-16{padding-left:16px}.padding-horizontal-16,.ph-16{padding-left:16px;padding-right:16px}.padding-vertical-16,.pv-16{padding-top:16px;padding-bottom:16px}.p-24,.padding-24{padding:24px}.padding-top-24,.pt-24{padding-top:24px}.padding-right-24,.pr-24{padding-right:24px}.padding-bottom-24,.pb-24{padding-bottom:24px}.padding-left-24,.pl-24{padding-left:24px}.padding-horizontal-24,.ph-24{padding-left:24px;padding-right:24px}.padding-vertical-24,.pv-24{padding-top:24px;padding-bottom:24px}.p-32,.padding-32{padding:32px}.padding-top-32,.pt-32{padding-top:32px}.padding-right-32,.pr-32{padding-right:32px}.padding-bottom-32,.pb-32{padding-bottom:32px}.padding-left-32,.pl-32{padding-left:32px}.padding-horizontal-32,.ph-32{padding-left:32px;padding-right:32px}.padding-vertical-32,.pv-32{padding-top:32px;padding-bottom:32px}.p-48,.padding-48{padding:48px}.padding-top-48,.pt-48{padding-top:48px}.padding-right-48,.pr-48{padding-right:48px}.padding-bottom-48,.pb-48{padding-bottom:48px}.padding-left-48,.pl-48{padding-left:48px}.padding-horizontal-48,.ph-48{padding-left:48px;padding-right:48px}.padding-vertical-48,.pv-48{padding-top:48px;padding-bottom:48px}.p-56,.padding-56{padding:56px}.padding-top-56,.pt-56{padding-top:56px}.padding-right-56,.pr-56{padding-right:56px}.padding-bottom-56,.pb-56{padding-bottom:56px}.padding-left-56,.pl-56{padding-left:56px}.padding-horizontal-56,.ph-56{padding-left:56px;padding-right:56px}.padding-vertical-56,.pv-56{padding-top:56px;padding-bottom:56px}.p-64,.padding-64{padding:64px}.padding-top-64,.pt-64{padding-top:64px}.padding-right-64,.pr-64{padding-right:64px}.padding-bottom-64,.pb-64{padding-bottom:64px}.padding-left-64,.pl-64{padding-left:64px}.padding-horizontal-64,.ph-64{padding-left:64px;padding-right:64px}.padding-vertical-64,.pv-64{padding-top:64px;padding-bottom:64px}.p-72,.padding-72{padding:72px}.padding-top-72,.pt-72{padding-top:72px}.padding-right-72,.pr-72{padding-right:72px}.padding-bottom-72,.pb-72{padding-bottom:72px}.padding-left-72,.pl-72{padding-left:72px}.padding-horizontal-72,.ph-72{padding-left:72px;padding-right:72px}.padding-vertical-72,.pv-72{padding-top:72px;padding-bottom:72px}.p-88,.padding-88{padding:88px}.padding-top-88,.pt-88{padding-top:88px}.padding-right-88,.pr-88{padding-right:88px}.padding-bottom-88,.pb-88{padding-bottom:88px}.padding-left-88,.pl-88{padding-left:88px}.padding-horizontal-88,.ph-88{padding-left:88px;padding-right:88px}.padding-vertical-88,.pv-88{padding-top:88px;padding-bottom:88px}.p-96,.padding-96{padding:96px}.padding-top-96,.pt-96{padding-top:96px}.padding-right-96,.pr-96{padding-right:96px}.padding-bottom-96,.pb-96{padding-bottom:96px}.padding-left-96,.pl-96{padding-left:96px}.padding-horizontal-96,.ph-96{padding-left:96px;padding-right:96px}.padding-vertical-96,.pv-96{padding-top:96px;padding-bottom:96px}.m-0,.margin-0{margin:0}.margin-top-0,.mt-0{margin-top:0}.margin-right-0,.mr-0{margin-right:0}.margin-bottom-0,.mb-0{margin-bottom:0}.margin-left-0,.ml-0{margin-left:0}.margin-horizontal-0,.mh-0{margin-left:0;margin-right:0}.margin-vertical-0,.mv-0{margin-top:0;margin-bottom:0}.m-5,.margin-5{margin:5px}.margin-top-5,.mt-5{margin-top:5px}.margin-right-5,.mr-5{margin-right:5px}.margin-bottom-5,.mb-5{margin-bottom:5px}.margin-left-5,.ml-5{margin-left:5px}.margin-horizontal-5,.mh-5{margin-left:5px;margin-right:5px}.margin-vertical-5,.mv-5{margin-top:5px;margin-bottom:5px}.m-10,.margin-10{margin:10px}.margin-top-10,.mt-10{margin-top:10px}.margin-right-10,.mr-10{margin-right:10px}.margin-bottom-10,.mb-10{margin-bottom:10px}.margin-left-10,.ml-10{margin-left:10px}.margin-horizontal-10,.mh-10{margin-left:10px;margin-right:10px}.margin-vertical-10,.mv-10{margin-top:10px;margin-bottom:10px}.m-15,.margin-15{margin:15px}.margin-top-15,.mt-15{margin-top:15px}.margin-right-15,.mr-15{margin-right:15px}.margin-bottom-15,.mb-15{margin-bottom:15px}.margin-left-15,.ml-15{margin-left:15px}.margin-horizontal-15,.mh-15{margin-left:15px;margin-right:15px}.margin-vertical-15,.mv-15{margin-top:15px;margin-bottom:15px}.m-20,.margin-20{margin:20px}.margin-top-20,.mt-20{margin-top:20px}.margin-right-20,.mr-20{margin-right:20px}.margin-bottom-20,.mb-20{margin-bottom:20px}.margin-left-20,.ml-20{margin-left:20px}.margin-horizontal-20,.mh-20{margin-left:20px;margin-right:20px}.margin-vertical-20,.mv-20{margin-top:20px;margin-bottom:20px}.m-25,.margin-25{margin:25px}.margin-top-25,.mt-25{margin-top:25px}.margin-right-25,.mr-25{margin-right:25px}.margin-bottom-25,.mb-25{margin-bottom:25px}.margin-left-25,.ml-25{margin-left:25px}.margin-horizontal-25,.mh-25{margin-left:25px;margin-right:25px}.margin-vertical-25,.mv-25{margin-top:25px;margin-bottom:25px}.m-30,.margin-30{margin:30px}.margin-top-30,.mt-30{margin-top:30px}.margin-right-30,.mr-30{margin-right:30px}.margin-bottom-30,.mb-30{margin-bottom:30px}.margin-left-30,.ml-30{margin-left:30px}.margin-horizontal-30,.mh-30{margin-left:30px;margin-right:30px}.margin-vertical-30,.mv-30{margin-top:30px;margin-bottom:30px}.m-35,.margin-35{margin:35px}.margin-top-35,.mt-35{margin-top:35px}.margin-right-35,.mr-35{margin-right:35px}.margin-bottom-35,.mb-35{margin-bottom:35px}.margin-left-35,.ml-35{margin-left:35px}.margin-horizontal-35,.mh-35{margin-left:35px;margin-right:35px}.margin-vertical-35,.mv-35{margin-top:35px;margin-bottom:35px}.m-40,.margin-40{margin:40px}.margin-top-40,.mt-40{margin-top:40px}.margin-right-40,.mr-40{margin-right:40px}.margin-bottom-40,.mb-40{margin-bottom:40px}.margin-left-40,.ml-40{margin-left:40px}.margin-horizontal-40,.mh-40{margin-left:40px;margin-right:40px}.margin-vertical-40,.mv-40{margin-top:40px;margin-bottom:40px}.m-45,.margin-45{margin:45px}.margin-top-45,.mt-45{margin-top:45px}.margin-right-45,.mr-45{margin-right:45px}.margin-bottom-45,.mb-45{margin-bottom:45px}.margin-left-45,.ml-45{margin-left:45px}.margin-horizontal-45,.mh-45{margin-left:45px;margin-right:45px}.margin-vertical-45,.mv-45{margin-top:45px;margin-bottom:45px}.m-50,.margin-50{margin:50px}.margin-top-50,.mt-50{margin-top:50px}.margin-right-50,.mr-50{margin-right:50px}.margin-bottom-50,.mb-50{margin-bottom:50px}.margin-left-50,.ml-50{margin-left:50px}.margin-horizontal-50,.mh-50{margin-left:50px;margin-right:50px}.margin-vertical-50,.mv-50{margin-top:50px;margin-bottom:50px}.m-55,.margin-55{margin:55px}.margin-top-55,.mt-55{margin-top:55px}.margin-right-55,.mr-55{margin-right:55px}.margin-bottom-55,.mb-55{margin-bottom:55px}.margin-left-55,.ml-55{margin-left:55px}.margin-horizontal-55,.mh-55{margin-left:55px;margin-right:55px}.margin-vertical-55,.mv-55{margin-top:55px;margin-bottom:55px}.m-60,.margin-60{margin:60px}.margin-top-60,.mt-60{margin-top:60px}.margin-right-60,.mr-60{margin-right:60px}.margin-bottom-60,.mb-60{margin-bottom:60px}.margin-left-60,.ml-60{margin-left:60px}.margin-horizontal-60,.mh-60{margin-left:60px;margin-right:60px}.margin-vertical-60,.mv-60{margin-top:60px;margin-bottom:60px}.m-65,.margin-65{margin:65px}.margin-top-65,.mt-65{margin-top:65px}.margin-right-65,.mr-65{margin-right:65px}.margin-bottom-65,.mb-65{margin-bottom:65px}.margin-left-65,.ml-65{margin-left:65px}.margin-horizontal-65,.mh-65{margin-left:65px;margin-right:65px}.margin-vertical-65,.mv-65{margin-top:65px;margin-bottom:65px}.m-70,.margin-70{margin:70px}.margin-top-70,.mt-70{margin-top:70px}.margin-right-70,.mr-70{margin-right:70px}.margin-bottom-70,.mb-70{margin-bottom:70px}.margin-left-70,.ml-70{margin-left:70px}.margin-horizontal-70,.mh-70{margin-left:70px;margin-right:70px}.margin-vertical-70,.mv-70{margin-top:70px;margin-bottom:70px}.m-75,.margin-75{margin:75px}.margin-top-75,.mt-75{margin-top:75px}.margin-right-75,.mr-75{margin-right:75px}.margin-bottom-75,.mb-75{margin-bottom:75px}.margin-left-75,.ml-75{margin-left:75px}.margin-horizontal-75,.mh-75{margin-left:75px;margin-right:75px}.margin-vertical-75,.mv-75{margin-top:75px;margin-bottom:75px}.m-80,.margin-80{margin:80px}.margin-top-80,.mt-80{margin-top:80px}.margin-right-80,.mr-80{margin-right:80px}.margin-bottom-80,.mb-80{margin-bottom:80px}.margin-left-80,.ml-80{margin-left:80px}.margin-horizontal-80,.mh-80{margin-left:80px;margin-right:80px}.margin-vertical-80,.mv-80{margin-top:80px;margin-bottom:80px}.m-85,.margin-85{margin:85px}.margin-top-85,.mt-85{margin-top:85px}.margin-right-85,.mr-85{margin-right:85px}.margin-bottom-85,.mb-85{margin-bottom:85px}.margin-left-85,.ml-85{margin-left:85px}.margin-horizontal-85,.mh-85{margin-left:85px;margin-right:85px}.margin-vertical-85,.mv-85{margin-top:85px;margin-bottom:85px}.m-90,.margin-90{margin:90px}.margin-top-90,.mt-90{margin-top:90px}.margin-right-90,.mr-90{margin-right:90px}.margin-bottom-90,.mb-90{margin-bottom:90px}.margin-left-90,.ml-90{margin-left:90px}.margin-horizontal-90,.mh-90{margin-left:90px;margin-right:90px}.margin-vertical-90,.mv-90{margin-top:90px;margin-bottom:90px}.m-95,.margin-95{margin:95px}.margin-top-95,.mt-95{margin-top:95px}.margin-right-95,.mr-95{margin-right:95px}.margin-bottom-95,.mb-95{margin-bottom:95px}.margin-left-95,.ml-95{margin-left:95px}.margin-horizontal-95,.mh-95{margin-left:95px;margin-right:95px}.margin-vertical-95,.mv-95{margin-top:95px;margin-bottom:95px}.m-100,.margin-100{margin:100px}.margin-top-100,.mt-100{margin-top:100px}.margin-right-100,.mr-100{margin-right:100px}.margin-bottom-100,.mb-100{margin-bottom:100px}.margin-left-100,.ml-100{margin-left:100px}.margin-horizontal-100,.mh-100{margin-left:100px;margin-right:100px}.margin-vertical-100,.mv-100{margin-top:100px;margin-bottom:100px}.m-8,.margin-8{margin:8px}.margin-top-8,.mt-8{margin-top:8px}.margin-right-8,.mr-8{margin-right:8px}.margin-bottom-8,.mb-8{margin-bottom:8px}.margin-left-8,.ml-8{margin-left:8px}.margin-horizontal-8,.mh-8{margin-left:8px;margin-right:8px}.margin-vertical-8,.mv-8{margin-top:8px;margin-bottom:8px}.m-16,.margin-16{margin:16px}.margin-top-16,.mt-16{margin-top:16px}.margin-right-16,.mr-16{margin-right:16px}.margin-bottom-16,.mb-16{margin-bottom:16px}.margin-left-16,.ml-16{margin-left:16px}.margin-horizontal-16,.mh-16{margin-left:16px;margin-right:16px}.margin-vertical-16,.mv-16{margin-top:16px;margin-bottom:16px}.m-24,.margin-24{margin:24px}.margin-top-24,.mt-24{margin-top:24px}.margin-right-24,.mr-24{margin-right:24px}.margin-bottom-24,.mb-24{margin-bottom:24px}.margin-left-24,.ml-24{margin-left:24px}.margin-horizontal-24,.mh-24{margin-left:24px;margin-right:24px}.margin-vertical-24,.mv-24{margin-top:24px;margin-bottom:24px}.m-32,.margin-32{margin:32px}.margin-top-32,.mt-32{margin-top:32px}.margin-right-32,.mr-32{margin-right:32px}.margin-bottom-32,.mb-32{margin-bottom:32px}.margin-left-32,.ml-32{margin-left:32px}.margin-horizontal-32,.mh-32{margin-left:32px;margin-right:32px}.margin-vertical-32,.mv-32{margin-top:32px;margin-bottom:32px}.m-48,.margin-48{margin:48px}.margin-top-48,.mt-48{margin-top:48px}.margin-right-48,.mr-48{margin-right:48px}.margin-bottom-48,.mb-48{margin-bottom:48px}.margin-left-48,.ml-48{margin-left:48px}.margin-horizontal-48,.mh-48{margin-left:48px;margin-right:48px}.margin-vertical-48,.mv-48{margin-top:48px;margin-bottom:48px}.m-56,.margin-56{margin:56px}.margin-top-56,.mt-56{margin-top:56px}.margin-right-56,.mr-56{margin-right:56px}.margin-bottom-56,.mb-56{margin-bottom:56px}.margin-left-56,.ml-56{margin-left:56px}.margin-horizontal-56,.mh-56{margin-left:56px;margin-right:56px}.margin-vertical-56,.mv-56{margin-top:56px;margin-bottom:56px}.m-64,.margin-64{margin:64px}.margin-top-64,.mt-64{margin-top:64px}.margin-right-64,.mr-64{margin-right:64px}.margin-bottom-64,.mb-64{margin-bottom:64px}.margin-left-64,.ml-64{margin-left:64px}.margin-horizontal-64,.mh-64{margin-left:64px;margin-right:64px}.margin-vertical-64,.mv-64{margin-top:64px;margin-bottom:64px}.m-72,.margin-72{margin:72px}.margin-top-72,.mt-72{margin-top:72px}.margin-right-72,.mr-72{margin-right:72px}.margin-bottom-72,.mb-72{margin-bottom:72px}.margin-left-72,.ml-72{margin-left:72px}.margin-horizontal-72,.mh-72{margin-left:72px;margin-right:72px}.margin-vertical-72,.mv-72{margin-top:72px;margin-bottom:72px}.m-88,.margin-88{margin:88px}.margin-top-88,.mt-88{margin-top:88px}.margin-right-88,.mr-88{margin-right:88px}.margin-bottom-88,.mb-88{margin-bottom:88px}.margin-left-88,.ml-88{margin-left:88px}.margin-horizontal-88,.mh-88{margin-left:88px;margin-right:88px}.margin-vertical-88,.mv-88{margin-top:88px;margin-bottom:88px}.m-96,.margin-96{margin:96px}.margin-top-96,.mt-96{margin-top:96px}.margin-right-96,.mr-96{margin-right:96px}.margin-bottom-96,.mb-96{margin-bottom:96px}.margin-left-96,.ml-96{margin-left:96px}.margin-horizontal-96,.mh-96{margin-left:96px;margin-right:96px}.margin-vertical-96,.mv-96{margin-top:96px;margin-bottom:96px}.h-0,.height-0{height:0!important;min-height:0!important;max-height:0!important}.w-0,.width-0{width:0!important;min-width:0!important;max-width:0!important}.h-5,.height-5{height:5px!important;min-height:5px!important;max-height:5px!important}.w-5,.width-5{width:5px!important;min-width:5px!important;max-width:5px!important}.h-10,.height-10{height:10px!important;min-height:10px!important;max-height:10px!important}.w-10,.width-10{width:10px!important;min-width:10px!important;max-width:10px!important}.h-15,.height-15{height:15px!important;min-height:15px!important;max-height:15px!important}.w-15,.width-15{width:15px!important;min-width:15px!important;max-width:15px!important}.h-20,.height-20{height:20px!important;min-height:20px!important;max-height:20px!important}.w-20,.width-20{width:20px!important;min-width:20px!important;max-width:20px!important}.h-25,.height-25{height:25px!important;min-height:25px!important;max-height:25px!important}.w-25,.width-25{width:25px!important;min-width:25px!important;max-width:25px!important}.h-30,.height-30{height:30px!important;min-height:30px!important;max-height:30px!important}.w-30,.width-30{width:30px!important;min-width:30px!important;max-width:30px!important}.h-35,.height-35{height:35px!important;min-height:35px!important;max-height:35px!important}.w-35,.width-35{width:35px!important;min-width:35px!important;max-width:35px!important}.h-40,.height-40{height:40px!important;min-height:40px!important;max-height:40px!important}.w-40,.width-40{width:40px!important;min-width:40px!important;max-width:40px!important}.h-45,.height-45{height:45px!important;min-height:45px!important;max-height:45px!important}.w-45,.width-45{width:45px!important;min-width:45px!important;max-width:45px!important}.h-50,.height-50{height:50px!important;min-height:50px!important;max-height:50px!important}.w-50,.width-50{width:50px!important;min-width:50px!important;max-width:50px!important}.h-55,.height-55{height:55px!important;min-height:55px!important;max-height:55px!important}.w-55,.width-55{width:55px!important;min-width:55px!important;max-width:55px!important}.h-60,.height-60{height:60px!important;min-height:60px!important;max-height:60px!important}.w-60,.width-60{width:60px!important;min-width:60px!important;max-width:60px!important}.h-65,.height-65{height:65px!important;min-height:65px!important;max-height:65px!important}.w-65,.width-65{width:65px!important;min-width:65px!important;max-width:65px!important}.h-70,.height-70{height:70px!important;min-height:70px!important;max-height:70px!important}.w-70,.width-70{width:70px!important;min-width:70px!important;max-width:70px!important}.h-75,.height-75{height:75px!important;min-height:75px!important;max-height:75px!important}.w-75,.width-75{width:75px!important;min-width:75px!important;max-width:75px!important}.h-80,.height-80{height:80px!important;min-height:80px!important;max-height:80px!important}.w-80,.width-80{width:80px!important;min-width:80px!important;max-width:80px!important}.h-85,.height-85{height:85px!important;min-height:85px!important;max-height:85px!important}.w-85,.width-85{width:85px!important;min-width:85px!important;max-width:85px!important}.h-90,.height-90{height:90px!important;min-height:90px!important;max-height:90px!important}.w-90,.width-90{width:90px!important;min-width:90px!important;max-width:90px!important}.h-95,.height-95{height:95px!important;min-height:95px!important;max-height:95px!important}.w-95,.width-95{width:95px!important;min-width:95px!important;max-width:95px!important}.h-100,.height-100{height:100px!important;min-height:100px!important;max-height:100px!important}.w-100,.width-100{width:100px!important;min-width:100px!important;max-width:100px!important}.h-105,.height-105{height:105px!important;min-height:105px!important;max-height:105px!important}.w-105,.width-105{width:105px!important;min-width:105px!important;max-width:105px!important}.h-110,.height-110{height:110px!important;min-height:110px!important;max-height:110px!important}.w-110,.width-110{width:110px!important;min-width:110px!important;max-width:110px!important}.h-115,.height-115{height:115px!important;min-height:115px!important;max-height:115px!important}.w-115,.width-115{width:115px!important;min-width:115px!important;max-width:115px!important}.h-120,.height-120{height:120px!important;min-height:120px!important;max-height:120px!important}.w-120,.width-120{width:120px!important;min-width:120px!important;max-width:120px!important}.h-125,.height-125{height:125px!important;min-height:125px!important;max-height:125px!important}.w-125,.width-125{width:125px!important;min-width:125px!important;max-width:125px!important}.h-130,.height-130{height:130px!important;min-height:130px!important;max-height:130px!important}.w-130,.width-130{width:130px!important;min-width:130px!important;max-width:130px!important}.h-135,.height-135{height:135px!important;min-height:135px!important;max-height:135px!important}.w-135,.width-135{width:135px!important;min-width:135px!important;max-width:135px!important}.h-140,.height-140{height:140px!important;min-height:140px!important;max-height:140px!important}.w-140,.width-140{width:140px!important;min-width:140px!important;max-width:140px!important}.h-145,.height-145{height:145px!important;min-height:145px!important;max-height:145px!important}.w-145,.width-145{width:145px!important;min-width:145px!important;max-width:145px!important}.h-150,.height-150{height:150px!important;min-height:150px!important;max-height:150px!important}.w-150,.width-150{width:150px!important;min-width:150px!important;max-width:150px!important}.h-155,.height-155{height:155px!important;min-height:155px!important;max-height:155px!important}.w-155,.width-155{width:155px!important;min-width:155px!important;max-width:155px!important}.h-160,.height-160{height:160px!important;min-height:160px!important;max-height:160px!important}.w-160,.width-160{width:160px!important;min-width:160px!important;max-width:160px!important}.h-165,.height-165{height:165px!important;min-height:165px!important;max-height:165px!important}.w-165,.width-165{width:165px!important;min-width:165px!important;max-width:165px!important}.h-170,.height-170{height:170px!important;min-height:170px!important;max-height:170px!important}.w-170,.width-170{width:170px!important;min-width:170px!important;max-width:170px!important}.h-175,.height-175{height:175px!important;min-height:175px!important;max-height:175px!important}.w-175,.width-175{width:175px!important;min-width:175px!important;max-width:175px!important}.h-180,.height-180{height:180px!important;min-height:180px!important;max-height:180px!important}.w-180,.width-180{width:180px!important;min-width:180px!important;max-width:180px!important}.h-185,.height-185{height:185px!important;min-height:185px!important;max-height:185px!important}.w-185,.width-185{width:185px!important;min-width:185px!important;max-width:185px!important}.h-190,.height-190{height:190px!important;min-height:190px!important;max-height:190px!important}.w-190,.width-190{width:190px!important;min-width:190px!important;max-width:190px!important}.h-195,.height-195{height:195px!important;min-height:195px!important;max-height:195px!important}.w-195,.width-195{width:195px!important;min-width:195px!important;max-width:195px!important}.h-200,.height-200{height:200px!important;min-height:200px!important;max-height:200px!important}.w-200,.width-200{width:200px!important;min-width:200px!important;max-width:200px!important}.h-205,.height-205{height:205px!important;min-height:205px!important;max-height:205px!important}.w-205,.width-205{width:205px!important;min-width:205px!important;max-width:205px!important}.h-210,.height-210{height:210px!important;min-height:210px!important;max-height:210px!important}.w-210,.width-210{width:210px!important;min-width:210px!important;max-width:210px!important}.h-215,.height-215{height:215px!important;min-height:215px!important;max-height:215px!important}.w-215,.width-215{width:215px!important;min-width:215px!important;max-width:215px!important}.h-220,.height-220{height:220px!important;min-height:220px!important;max-height:220px!important}.w-220,.width-220{width:220px!important;min-width:220px!important;max-width:220px!important}.h-225,.height-225{height:225px!important;min-height:225px!important;max-height:225px!important}.w-225,.width-225{width:225px!important;min-width:225px!important;max-width:225px!important}.h-230,.height-230{height:230px!important;min-height:230px!important;max-height:230px!important}.w-230,.width-230{width:230px!important;min-width:230px!important;max-width:230px!important}.h-235,.height-235{height:235px!important;min-height:235px!important;max-height:235px!important}.w-235,.width-235{width:235px!important;min-width:235px!important;max-width:235px!important}.h-240,.height-240{height:240px!important;min-height:240px!important;max-height:240px!important}.w-240,.width-240{width:240px!important;min-width:240px!important;max-width:240px!important}.h-245,.height-245{height:245px!important;min-height:245px!important;max-height:245px!important}.w-245,.width-245{width:245px!important;min-width:245px!important;max-width:245px!important}.h-250,.height-250{height:250px!important;min-height:250px!important;max-height:250px!important}.w-250,.width-250{width:250px!important;min-width:250px!important;max-width:250px!important}.h-255,.height-255{height:255px!important;min-height:255px!important;max-height:255px!important}.w-255,.width-255{width:255px!important;min-width:255px!important;max-width:255px!important}.h-260,.height-260{height:260px!important;min-height:260px!important;max-height:260px!important}.w-260,.width-260{width:260px!important;min-width:260px!important;max-width:260px!important}.h-265,.height-265{height:265px!important;min-height:265px!important;max-height:265px!important}.w-265,.width-265{width:265px!important;min-width:265px!important;max-width:265px!important}.h-270,.height-270{height:270px!important;min-height:270px!important;max-height:270px!important}.w-270,.width-270{width:270px!important;min-width:270px!important;max-width:270px!important}.h-275,.height-275{height:275px!important;min-height:275px!important;max-height:275px!important}.w-275,.width-275{width:275px!important;min-width:275px!important;max-width:275px!important}.h-280,.height-280{height:280px!important;min-height:280px!important;max-height:280px!important}.w-280,.width-280{width:280px!important;min-width:280px!important;max-width:280px!important}.h-285,.height-285{height:285px!important;min-height:285px!important;max-height:285px!important}.w-285,.width-285{width:285px!important;min-width:285px!important;max-width:285px!important}.h-290,.height-290{height:290px!important;min-height:290px!important;max-height:290px!important}.w-290,.width-290{width:290px!important;min-width:290px!important;max-width:290px!important}.h-295,.height-295{height:295px!important;min-height:295px!important;max-height:295px!important}.w-295,.width-295{width:295px!important;min-width:295px!important;max-width:295px!important}.h-300,.height-300{height:300px!important;min-height:300px!important;max-height:300px!important}.w-300,.width-300{width:300px!important;min-width:300px!important;max-width:300px!important}.h-305,.height-305{height:305px!important;min-height:305px!important;max-height:305px!important}.w-305,.width-305{width:305px!important;min-width:305px!important;max-width:305px!important}.h-310,.height-310{height:310px!important;min-height:310px!important;max-height:310px!important}.w-310,.width-310{width:310px!important;min-width:310px!important;max-width:310px!important}.h-315,.height-315{height:315px!important;min-height:315px!important;max-height:315px!important}.w-315,.width-315{width:315px!important;min-width:315px!important;max-width:315px!important}.h-320,.height-320{height:320px!important;min-height:320px!important;max-height:320px!important}.w-320,.width-320{width:320px!important;min-width:320px!important;max-width:320px!important}.h-325,.height-325{height:325px!important;min-height:325px!important;max-height:325px!important}.w-325,.width-325{width:325px!important;min-width:325px!important;max-width:325px!important}.h-330,.height-330{height:330px!important;min-height:330px!important;max-height:330px!important}.w-330,.width-330{width:330px!important;min-width:330px!important;max-width:330px!important}.h-335,.height-335{height:335px!important;min-height:335px!important;max-height:335px!important}.w-335,.width-335{width:335px!important;min-width:335px!important;max-width:335px!important}.h-340,.height-340{height:340px!important;min-height:340px!important;max-height:340px!important}.w-340,.width-340{width:340px!important;min-width:340px!important;max-width:340px!important}.h-345,.height-345{height:345px!important;min-height:345px!important;max-height:345px!important}.w-345,.width-345{width:345px!important;min-width:345px!important;max-width:345px!important}.h-350,.height-350{height:350px!important;min-height:350px!important;max-height:350px!important}.w-350,.width-350{width:350px!important;min-width:350px!important;max-width:350px!important}.h-355,.height-355{height:355px!important;min-height:355px!important;max-height:355px!important}.w-355,.width-355{width:355px!important;min-width:355px!important;max-width:355px!important}.h-360,.height-360{height:360px!important;min-height:360px!important;max-height:360px!important}.w-360,.width-360{width:360px!important;min-width:360px!important;max-width:360px!important}.h-365,.height-365{height:365px!important;min-height:365px!important;max-height:365px!important}.w-365,.width-365{width:365px!important;min-width:365px!important;max-width:365px!important}.h-370,.height-370{height:370px!important;min-height:370px!important;max-height:370px!important}.w-370,.width-370{width:370px!important;min-width:370px!important;max-width:370px!important}.h-375,.height-375{height:375px!important;min-height:375px!important;max-height:375px!important}.w-375,.width-375{width:375px!important;min-width:375px!important;max-width:375px!important}.h-380,.height-380{height:380px!important;min-height:380px!important;max-height:380px!important}.w-380,.width-380{width:380px!important;min-width:380px!important;max-width:380px!important}.h-385,.height-385{height:385px!important;min-height:385px!important;max-height:385px!important}.w-385,.width-385{width:385px!important;min-width:385px!important;max-width:385px!important}.h-390,.height-390{height:390px!important;min-height:390px!important;max-height:390px!important}.w-390,.width-390{width:390px!important;min-width:390px!important;max-width:390px!important}.h-395,.height-395{height:395px!important;min-height:395px!important;max-height:395px!important}.w-395,.width-395{width:395px!important;min-width:395px!important;max-width:395px!important}.h-400,.height-400{height:400px!important;min-height:400px!important;max-height:400px!important}.w-400,.width-400{width:400px!important;min-width:400px!important;max-width:400px!important}.h-405,.height-405{height:405px!important;min-height:405px!important;max-height:405px!important}.w-405,.width-405{width:405px!important;min-width:405px!important;max-width:405px!important}.h-410,.height-410{height:410px!important;min-height:410px!important;max-height:410px!important}.w-410,.width-410{width:410px!important;min-width:410px!important;max-width:410px!important}.h-415,.height-415{height:415px!important;min-height:415px!important;max-height:415px!important}.w-415,.width-415{width:415px!important;min-width:415px!important;max-width:415px!important}.h-420,.height-420{height:420px!important;min-height:420px!important;max-height:420px!important}.w-420,.width-420{width:420px!important;min-width:420px!important;max-width:420px!important}.h-425,.height-425{height:425px!important;min-height:425px!important;max-height:425px!important}.w-425,.width-425{width:425px!important;min-width:425px!important;max-width:425px!important}.h-430,.height-430{height:430px!important;min-height:430px!important;max-height:430px!important}.w-430,.width-430{width:430px!important;min-width:430px!important;max-width:430px!important}.h-435,.height-435{height:435px!important;min-height:435px!important;max-height:435px!important}.w-435,.width-435{width:435px!important;min-width:435px!important;max-width:435px!important}.h-440,.height-440{height:440px!important;min-height:440px!important;max-height:440px!important}.w-440,.width-440{width:440px!important;min-width:440px!important;max-width:440px!important}.h-445,.height-445{height:445px!important;min-height:445px!important;max-height:445px!important}.w-445,.width-445{width:445px!important;min-width:445px!important;max-width:445px!important}.h-450,.height-450{height:450px!important;min-height:450px!important;max-height:450px!important}.w-450,.width-450{width:450px!important;min-width:450px!important;max-width:450px!important}.h-455,.height-455{height:455px!important;min-height:455px!important;max-height:455px!important}.w-455,.width-455{width:455px!important;min-width:455px!important;max-width:455px!important}.h-460,.height-460{height:460px!important;min-height:460px!important;max-height:460px!important}.w-460,.width-460{width:460px!important;min-width:460px!important;max-width:460px!important}.h-465,.height-465{height:465px!important;min-height:465px!important;max-height:465px!important}.w-465,.width-465{width:465px!important;min-width:465px!important;max-width:465px!important}.h-470,.height-470{height:470px!important;min-height:470px!important;max-height:470px!important}.w-470,.width-470{width:470px!important;min-width:470px!important;max-width:470px!important}.h-475,.height-475{height:475px!important;min-height:475px!important;max-height:475px!important}.w-475,.width-475{width:475px!important;min-width:475px!important;max-width:475px!important}.h-480,.height-480{height:480px!important;min-height:480px!important;max-height:480px!important}.w-480,.width-480{width:480px!important;min-width:480px!important;max-width:480px!important}.h-485,.height-485{height:485px!important;min-height:485px!important;max-height:485px!important}.w-485,.width-485{width:485px!important;min-width:485px!important;max-width:485px!important}.h-490,.height-490{height:490px!important;min-height:490px!important;max-height:490px!important}.w-490,.width-490{width:490px!important;min-width:490px!important;max-width:490px!important}.h-495,.height-495{height:495px!important;min-height:495px!important;max-height:495px!important}.w-495,.width-495{width:495px!important;min-width:495px!important;max-width:495px!important}.h-500,.height-500{height:500px!important;min-height:500px!important;max-height:500px!important}.w-500,.width-500{width:500px!important;min-width:500px!important;max-width:500px!important}.h-8,.height-8{height:8px!important;min-height:8px!important;max-height:8px!important}.w-8,.width-8{width:8px!important;min-width:8px!important;max-width:8px!important}.h-16,.height-16{height:16px!important;min-height:16px!important;max-height:16px!important}.w-16,.width-16{width:16px!important;min-width:16px!important;max-width:16px!important}.h-24,.height-24{height:24px!important;min-height:24px!important;max-height:24px!important}.w-24,.width-24{width:24px!important;min-width:24px!important;max-width:24px!important}.h-32,.height-32{height:32px!important;min-height:32px!important;max-height:32px!important}.w-32,.width-32{width:32px!important;min-width:32px!important;max-width:32px!important}.h-48,.height-48{height:48px!important;min-height:48px!important;max-height:48px!important}.w-48,.width-48{width:48px!important;min-width:48px!important;max-width:48px!important}.h-56,.height-56{height:56px!important;min-height:56px!important;max-height:56px!important}.w-56,.width-56{width:56px!important;min-width:56px!important;max-width:56px!important}.h-64,.height-64{height:64px!important;min-height:64px!important;max-height:64px!important}.w-64,.width-64{width:64px!important;min-width:64px!important;max-width:64px!important}.h-72,.height-72{height:72px!important;min-height:72px!important;max-height:72px!important}.w-72,.width-72{width:72px!important;min-width:72px!important;max-width:72px!important}.h-88,.height-88{height:88px!important;min-height:88px!important;max-height:88px!important}.w-88,.width-88{width:88px!important;min-width:88px!important;max-width:88px!important}.h-96,.height-96{height:96px!important;min-height:96px!important;max-height:96px!important}.w-96,.width-96{width:96px!important;min-width:96px!important;max-width:96px!important}.h-104,.height-104{height:104px!important;min-height:104px!important;max-height:104px!important}.w-104,.width-104{width:104px!important;min-width:104px!important;max-width:104px!important}.h-112,.height-112{height:112px!important;min-height:112px!important;max-height:112px!important}.w-112,.width-112{width:112px!important;min-width:112px!important;max-width:112px!important}.h-128,.height-128{height:128px!important;min-height:128px!important;max-height:128px!important}.w-128,.width-128{width:128px!important;min-width:128px!important;max-width:128px!important}.h-136,.height-136{height:136px!important;min-height:136px!important;max-height:136px!important}.w-136,.width-136{width:136px!important;min-width:136px!important;max-width:136px!important}.h-144,.height-144{height:144px!important;min-height:144px!important;max-height:144px!important}.w-144,.width-144{width:144px!important;min-width:144px!important;max-width:144px!important}.h-152,.height-152{height:152px!important;min-height:152px!important;max-height:152px!important}.w-152,.width-152{width:152px!important;min-width:152px!important;max-width:152px!important}.h-168,.height-168{height:168px!important;min-height:168px!important;max-height:168px!important}.w-168,.width-168{width:168px!important;min-width:168px!important;max-width:168px!important}.h-176,.height-176{height:176px!important;min-height:176px!important;max-height:176px!important}.w-176,.width-176{width:176px!important;min-width:176px!important;max-width:176px!important}.h-184,.height-184{height:184px!important;min-height:184px!important;max-height:184px!important}.w-184,.width-184{width:184px!important;min-width:184px!important;max-width:184px!important}.h-192,.height-192{height:192px!important;min-height:192px!important;max-height:192px!important}.w-192,.width-192{width:192px!important;min-width:192px!important;max-width:192px!important}.h-208,.height-208{height:208px!important;min-height:208px!important;max-height:208px!important}.w-208,.width-208{width:208px!important;min-width:208px!important;max-width:208px!important}.h-216,.height-216{height:216px!important;min-height:216px!important;max-height:216px!important}.w-216,.width-216{width:216px!important;min-width:216px!important;max-width:216px!important}.h-224,.height-224{height:224px!important;min-height:224px!important;max-height:224px!important}.w-224,.width-224{width:224px!important;min-width:224px!important;max-width:224px!important}.h-232,.height-232{height:232px!important;min-height:232px!important;max-height:232px!important}.w-232,.width-232{width:232px!important;min-width:232px!important;max-width:232px!important}.h-248,.height-248{height:248px!important;min-height:248px!important;max-height:248px!important}.w-248,.width-248{width:248px!important;min-width:248px!important;max-width:248px!important}.h-256,.height-256{height:256px!important;min-height:256px!important;max-height:256px!important}.w-256,.width-256{width:256px!important;min-width:256px!important;max-width:256px!important}.h-264,.height-264{height:264px!important;min-height:264px!important;max-height:264px!important}.w-264,.width-264{width:264px!important;min-width:264px!important;max-width:264px!important}.h-272,.height-272{height:272px!important;min-height:272px!important;max-height:272px!important}.w-272,.width-272{width:272px!important;min-width:272px!important;max-width:272px!important}.h-288,.height-288{height:288px!important;min-height:288px!important;max-height:288px!important}.w-288,.width-288{width:288px!important;min-width:288px!important;max-width:288px!important}.h-296,.height-296{height:296px!important;min-height:296px!important;max-height:296px!important}.w-296,.width-296{width:296px!important;min-width:296px!important;max-width:296px!important}.h-304,.height-304{height:304px!important;min-height:304px!important;max-height:304px!important}.w-304,.width-304{width:304px!important;min-width:304px!important;max-width:304px!important}.h-312,.height-312{height:312px!important;min-height:312px!important;max-height:312px!important}.w-312,.width-312{width:312px!important;min-width:312px!important;max-width:312px!important}.h-328,.height-328{height:328px!important;min-height:328px!important;max-height:328px!important}.w-328,.width-328{width:328px!important;min-width:328px!important;max-width:328px!important}.h-336,.height-336{height:336px!important;min-height:336px!important;max-height:336px!important}.w-336,.width-336{width:336px!important;min-width:336px!important;max-width:336px!important}.h-344,.height-344{height:344px!important;min-height:344px!important;max-height:344px!important}.w-344,.width-344{width:344px!important;min-width:344px!important;max-width:344px!important}.h-352,.height-352{height:352px!important;min-height:352px!important;max-height:352px!important}.w-352,.width-352{width:352px!important;min-width:352px!important;max-width:352px!important}.h-368,.height-368{height:368px!important;min-height:368px!important;max-height:368px!important}.w-368,.width-368{width:368px!important;min-width:368px!important;max-width:368px!important}.h-376,.height-376{height:376px!important;min-height:376px!important;max-height:376px!important}.w-376,.width-376{width:376px!important;min-width:376px!important;max-width:376px!important}.h-384,.height-384{height:384px!important;min-height:384px!important;max-height:384px!important}.w-384,.width-384{width:384px!important;min-width:384px!important;max-width:384px!important}.h-392,.height-392{height:392px!important;min-height:392px!important;max-height:392px!important}.w-392,.width-392{width:392px!important;min-width:392px!important;max-width:392px!important}.h-408,.height-408{height:408px!important;min-height:408px!important;max-height:408px!important}.w-408,.width-408{width:408px!important;min-width:408px!important;max-width:408px!important}.h-416,.height-416{height:416px!important;min-height:416px!important;max-height:416px!important}.w-416,.width-416{width:416px!important;min-width:416px!important;max-width:416px!important}.h-424,.height-424{height:424px!important;min-height:424px!important;max-height:424px!important}.w-424,.width-424{width:424px!important;min-width:424px!important;max-width:424px!important}.h-432,.height-432{height:432px!important;min-height:432px!important;max-height:432px!important}.w-432,.width-432{width:432px!important;min-width:432px!important;max-width:432px!important}.h-448,.height-448{height:448px!important;min-height:448px!important;max-height:448px!important}.w-448,.width-448{width:448px!important;min-width:448px!important;max-width:448px!important}.h-456,.height-456{height:456px!important;min-height:456px!important;max-height:456px!important}.w-456,.width-456{width:456px!important;min-width:456px!important;max-width:456px!important}.h-464,.height-464{height:464px!important;min-height:464px!important;max-height:464px!important}.w-464,.width-464{width:464px!important;min-width:464px!important;max-width:464px!important}.h-472,.height-472{height:472px!important;min-height:472px!important;max-height:472px!important}.w-472,.width-472{width:472px!important;min-width:472px!important;max-width:472px!important}.h-488,.height-488{height:488px!important;min-height:488px!important;max-height:488px!important}.w-488,.width-488{width:488px!important;min-width:488px!important;max-width:488px!important}.h-496,.height-496{height:496px!important;min-height:496px!important;max-height:496px!important}.w-496,.width-496{width:496px!important;min-width:496px!important;max-width:496px!important}.h-504,.height-504{height:504px!important;min-height:504px!important;max-height:504px!important}.w-504,.width-504{width:504px!important;min-width:504px!important;max-width:504px!important}.h-512,.height-512{height:512px!important;min-height:512px!important;max-height:512px!important}.w-512,.width-512{width:512px!important;min-width:512px!important;max-width:512px!important}.h-528,.height-528{height:528px!important;min-height:528px!important;max-height:528px!important}.w-528,.width-528{width:528px!important;min-width:528px!important;max-width:528px!important}.h-536,.height-536{height:536px!important;min-height:536px!important;max-height:536px!important}.w-536,.width-536{width:536px!important;min-width:536px!important;max-width:536px!important}.h-544,.height-544{height:544px!important;min-height:544px!important;max-height:544px!important}.w-544,.width-544{width:544px!important;min-width:544px!important;max-width:544px!important}.h-552,.height-552{height:552px!important;min-height:552px!important;max-height:552px!important}.w-552,.width-552{width:552px!important;min-width:552px!important;max-width:552px!important}.h-568,.height-568{height:568px!important;min-height:568px!important;max-height:568px!important}.w-568,.width-568{width:568px!important;min-width:568px!important;max-width:568px!important}.h-576,.height-576{height:576px!important;min-height:576px!important;max-height:576px!important}.w-576,.width-576{width:576px!important;min-width:576px!important;max-width:576px!important}.h-584,.height-584{height:584px!important;min-height:584px!important;max-height:584px!important}.w-584,.width-584{width:584px!important;min-width:584px!important;max-width:584px!important}.h-592,.height-592{height:592px!important;min-height:592px!important;max-height:592px!important}.w-592,.width-592{width:592px!important;min-width:592px!important;max-width:592px!important}.h-608,.height-608{height:608px!important;min-height:608px!important;max-height:608px!important}.w-608,.width-608{width:608px!important;min-width:608px!important;max-width:608px!important}.h-616,.height-616{height:616px!important;min-height:616px!important;max-height:616px!important}.w-616,.width-616{width:616px!important;min-width:616px!important;max-width:616px!important}.h-624,.height-624{height:624px!important;min-height:624px!important;max-height:624px!important}.w-624,.width-624{width:624px!important;min-width:624px!important;max-width:624px!important}.h-632,.height-632{height:632px!important;min-height:632px!important;max-height:632px!important}.w-632,.width-632{width:632px!important;min-width:632px!important;max-width:632px!important}.h-648,.height-648{height:648px!important;min-height:648px!important;max-height:648px!important}.w-648,.width-648{width:648px!important;min-width:648px!important;max-width:648px!important}.h-656,.height-656{height:656px!important;min-height:656px!important;max-height:656px!important}.w-656,.width-656{width:656px!important;min-width:656px!important;max-width:656px!important}.h-664,.height-664{height:664px!important;min-height:664px!important;max-height:664px!important}.w-664,.width-664{width:664px!important;min-width:664px!important;max-width:664px!important}.h-672,.height-672{height:672px!important;min-height:672px!important;max-height:672px!important}.w-672,.width-672{width:672px!important;min-width:672px!important;max-width:672px!important}.h-688,.height-688{height:688px!important;min-height:688px!important;max-height:688px!important}.w-688,.width-688{width:688px!important;min-width:688px!important;max-width:688px!important}.h-696,.height-696{height:696px!important;min-height:696px!important;max-height:696px!important}.w-696,.width-696{width:696px!important;min-width:696px!important;max-width:696px!important}.h-704,.height-704{height:704px!important;min-height:704px!important;max-height:704px!important}.w-704,.width-704{width:704px!important;min-width:704px!important;max-width:704px!important}.h-712,.height-712{height:712px!important;min-height:712px!important;max-height:712px!important}.w-712,.width-712{width:712px!important;min-width:712px!important;max-width:712px!important}.h-728,.height-728{height:728px!important;min-height:728px!important;max-height:728px!important}.w-728,.width-728{width:728px!important;min-width:728px!important;max-width:728px!important}.h-736,.height-736{height:736px!important;min-height:736px!important;max-height:736px!important}.w-736,.width-736{width:736px!important;min-width:736px!important;max-width:736px!important}.h-744,.height-744{height:744px!important;min-height:744px!important;max-height:744px!important}.w-744,.width-744{width:744px!important;min-width:744px!important;max-width:744px!important}.h-752,.height-752{height:752px!important;min-height:752px!important;max-height:752px!important}.w-752,.width-752{width:752px!important;min-width:752px!important;max-width:752px!important}.h-768,.height-768{height:768px!important;min-height:768px!important;max-height:768px!important}.w-768,.width-768{width:768px!important;min-width:768px!important;max-width:768px!important}.h-776,.height-776{height:776px!important;min-height:776px!important;max-height:776px!important}.w-776,.width-776{width:776px!important;min-width:776px!important;max-width:776px!important}.h-784,.height-784{height:784px!important;min-height:784px!important;max-height:784px!important}.w-784,.width-784{width:784px!important;min-width:784px!important;max-width:784px!important}.h-792,.height-792{height:792px!important;min-height:792px!important;max-height:792px!important}.w-792,.width-792{width:792px!important;min-width:792px!important;max-width:792px!important}.b,.border{border:1px solid rgba(0,0,0,.12)}.border-top,.bt{border-top:1px solid rgba(0,0,0,.12)}.border-right,.br{border-right:1px solid rgba(0,0,0,.12)}.bb,.border-bottom{border-bottom:1px solid rgba(0,0,0,.12)}.bl,.border-left{border-left:1px solid rgba(0,0,0,.12)}.bh,.border-horizontal{border-left:1px solid rgba(0,0,0,.12);border-right:1px solid rgba(0,0,0,.12)}.border-vertical,.bv{border-top:1px solid rgba(0,0,0,.12);border-bottom:1px solid rgba(0,0,0,.12)}.brad-1{border-radius:1px}.brad-2{border-radius:2px}.brad-3{border-radius:3px}.brad-4{border-radius:4px}.brad-5{border-radius:5px}.brad-6{border-radius:6px}.brad-7{border-radius:7px}.brad-8{border-radius:8px}.brad-9{border-radius:9px}.brad-10{border-radius:10px}.brad-11{border-radius:11px}.brad-12{border-radius:12px}@media all{.page-break{display:none}}@media print{.page-break{display:block;break-after:always;page-break-after:always}#main #vertical-navigation{display:none}#main #toolbar{display:none}#main #quick-panel{display:none}#main #content{position:relative!important;top:0!important;right:0!important;bottom:0!important;left:0!important;background:0 0!important}ms-theme-options{display:none}.ps-scrollbar-x-rail,.ps-scrollbar-y-rail{display:none!important}.printable{overflow:visible!important}.printable .template-layout{display:inline!important}}.advanced-search-container{border-bottom:1px rgba(0,0,0,.12) solid}.advanced-search-conditions{border-bottom:1px rgba(0,0,0,.12) solid;padding:4px 0}.advanced-search-conditions .errors{font-size:12px;color:#dd2c00;margin-top:10px}.advanced-search-conditions .advanced-search-chips md-chips-wrap{box-shadow:none}.advanced-search-conditions .advanced-search-chips md-chip{position:relative}.advanced-search-conditions .advanced-search-chips md-chip .md-chip-content md-chip-template span p.filter-text{display:inline-block;margin:0}.advanced-search-conditions .advanced-search-chips md-chip .md-chip-remove-container{position:absolute;right:4px;top:4px;margin-right:0;height:24px}.advanced-search-conditions .advanced-search-chips md-chip .md-chip-remove-container button.remove-filter{position:relative;height:24px;width:24px;line-height:30px;text-align:center;border-radius:50%;border:none;box-shadow:none;padding:0;margin:0;transition:background .15s linear;display:block}.advanced-search-conditions .advanced-search-chips md-chip .md-chip-remove-container button.remove-filter md-icon{position:absolute;top:50%;left:50%;transform:translate3d(-50%,-50%,0);color:#616161}.advanced-search-conditions .advanced-search-chips md-chip .md-chip-remove-container button.remove-filter md-icon:focus,.advanced-search-conditions .advanced-search-chips md-chip .md-chip-remove-container button.remove-filter md-icon:hover{color:rgba(255,0,0,.8)}.advanced-search-conditions .advanced-search-chips md-chips-wrap.md-removable md-chip md-chip-template{padding-right:5px}.advanced-search-bar{padding:10px 0}.advanced-search-bar md-input-container.no-errors{font-size:12px;transition:0s none;-webkit-transition:0s none;animation:0s none;-webkit-animation:0s none}.advanced-search-bar md-input-container.no-errors input{font-family:Arial Unicode MS,Arial,Helvetica}.advanced-search-bar md-input-container.no-errors .md-errors-spacer{min-height:0}md-option div div.operators-list{display:table}md-option div div.operators-list span{display:table-cell}md-option div div.operators-list span.operator-symbol{display:table-cell;font-size:14px;width:30px}.advanced-search-bar mdp-date-picker button{margin:0!important}.advanced-search-bar mdp-date-picker md-input-container{flex:1;margin:0}.advanced-search-bar mdp-date-picker md-input-container label{font-size:12px}.advanced-search-bar mdp-date-picker md-input-container .md-errors-spacer{min-height:0}.advanced-search-bar div md-date-range{font-size:12px;margin-left:10px}.advanced-search-bar div.autocomplete-input md-icon{margin:8px 8px 8px 0}.advanced-search-bar div.autocomplete-input md-autocomplete{font-size:12px!important}.advanced-search-bar div.autocomplete-input md-autocomplete md-autocomplete-wrap{height:0}.advanced-search-bar div.autocomplete-input md-autocomplete md-autocomplete-wrap md-input-container{margin:0}.advanced-search-bar div.autocomplete-input md-autocomplete md-autocomplete-wrap md-input-container input[type=search]{padding:0!important}.advanced-search-bar div.autocomplete-input md-autocomplete md-autocomplete-wrap md-input-container div.md-errors-spacer{min-height:0}md-toolbar.advanced-search-dialog-header{background-image:url(/assets/images/backgrounds/header-bg.png);background-position:top}.md-autocomplete-suggestions-container li .highlight,.md-autocomplete-suggestions-container.md-default-theme li .highlight{color:#ca1d1d;font-weight:700}.chip-disabled{opacity:.4}.ms-card{display:flex;flex-direction:row;padding:8px}.ms-card .ms-card-content-wrapper{position:relative;overflow:hidden;width:100%;max-width:400px;border-radius:2px;background:#fff;box-shadow:0 3px 1px -2px rgba(0,0,0,.14),0 2px 2px 0 rgba(0,0,0,.098),0 1px 5px 0 rgba(0,0,0,.084)}.ms-card .template-1 .media .image{width:100%;border-radius:2px 2px 0 0}.ms-card .template-10 .media{width:80px;min-width:80px;max-width:80px}.ms-card .template-2 .header .avatar .image{display:block;width:40px;height:40px;border-radius:20px}.ms-card .template-2 .media .image{width:100%}.ms-card .template-4 .info{position:absolute;right:0;bottom:0;left:0;z-index:2;background:rgba(0,0,0,.54)}.ms-card .template-4 .media{z-index:1}.ms-card .template-4 .media .image{width:100%}.ms-card .template-5 .media{width:80px;min-width:80px;max-width:80px}.ms-card .template-5 .info,.ms-card .template-5 .media{-ms-flex:0 1 auto}.ms-card .template-8 .media .image{width:100%;border-radius:2px 2px 0 0}.ms-card .template-9 .header .avatar .image{display:block;width:40px;height:40px;border-radius:20px}.ms-card .template-9 .media .image{width:100%}md-list-item .md-list-item-text p.ms-dual-multiselect-line-xs{font-size:10px!important;padding-top:5px}md-list-item md-icon.hidden{visibility:hidden}md-icon.add-disabled{cursor:default!important;opacity:.4}md-list-item.read-only-mode{cursor:none!important}.ms-form-wizard{background:#fff;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}.ms-form-wizard md-tabs md-tabs-wrapper{box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas{height:72px}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-pagination-wrapper{height:72px}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-pagination-wrapper md-tab-item{opacity:1!important;padding:24px}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-pagination-wrapper md-tab-item:before{content:'';display:block;position:absolute;top:50%;left:0;right:50%;border-bottom:1px solid rgba(0,0,0,.12);z-index:8}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-pagination-wrapper md-tab-item:after{content:'';display:block;position:absolute;top:50%;left:50%;right:0;border-bottom:1px solid rgba(0,0,0,.12);z-index:8}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-pagination-wrapper md-tab-item:first-of-type:before{display:none}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-pagination-wrapper md-tab-item:last-of-type:after{display:none}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-pagination-wrapper md-tab-item.md-disabled .ms-form-wizard-step-label .ms-form-wizard-step-number{background:rgba(0,0,0,.12)!important}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-pagination-wrapper md-tab-item .md-ripple-container{z-index:11}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-ink-bar{display:none!important}.ms-form-wizard .ms-form-wizard-step-label{display:inline-block;position:relative;background:#fff;z-index:10;padding:0 16px;line-height:24px}.ms-form-wizard .ms-form-wizard-step-label .ms-form-wizard-step-number{display:inline-block;vertical-align:middle;width:24px;height:24px;line-height:24px;font-size:14px;margin-right:12px;border-radius:50%;color:#fff!important}.ms-form-wizard .ms-form-wizard-step-label .ms-form-wizard-step-number i{line-height:24px!important}.ms-form-wizard .ms-form-wizard-step-label .ms-form-wizard-step-text{display:inline-block;vertical-align:middle;position:relative;line-height:24px}.ms-form-wizard .ms-form-wizard-form{padding:24px 16px}.ms-form-wizard .navigation{padding:16px}.ms-form-wizard .navigation .steps{display:flex;align-items:center;justify-content:center;padding:0 16px}.ms-form-wizard .navigation .steps span{width:5px;height:5px;margin:0 4px;border-radius:50%}.ms-form-wizard .navigation .steps span:not(.md-accent-bg){background:rgba(0,0,0,.12)}.ms-form-wizard .navigation .steps span.selected{width:8px;height:8px}ms-info-bar{display:block;position:relative;width:100%;height:44px;background-color:#e91e63;z-index:99998;box-shadow:0 1px 5px 0 rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.12)}ms-info-bar #ms-info-bar-message{padding:8px 16px;line-height:28px;font-size:14px}ms-info-bar #ms-info-bar-message a{overflow:hidden;height:48px;color:#fff}ms-masonry{width:100%;display:block}ms-masonry [ms-masonry-item],ms-masonry ms-masonry-item{transition:transform .3s ease;position:absolute;transform:translate3d(50vw,100vh,0)}ms-material-color-picker md-menu .md-button{font-size:12px}md-menu-content.ms-material-color-picker-menu-content{width:208px;max-width:208px;min-width:208px;padding:0;overflow:hidden}md-menu-content.ms-material-color-picker-menu-content header{height:48px;text-transform:uppercase}md-menu-content.ms-material-color-picker-menu-content header .md-button{display:flex;margin:0}md-menu-content.ms-material-color-picker-menu-content header>span{line-height:13px}md-menu-content.ms-material-color-picker-menu-content .colors{position:relative;width:208px;min-height:258px;height:258px;padding:4px}md-menu-content.ms-material-color-picker-menu-content .colors .color{position:relative;width:46px;height:46px;margin:2px;border-radius:0;cursor:pointer}md-menu-content.ms-material-color-picker-menu-content .colors .color .label{padding:2px;font-size:10px}md-menu-content.ms-material-color-picker-menu-content .colors .color .icon-check{position:absolute;top:2px;right:2px;font-size:16px;opacity:.7}ms-nav{display:block;position:relative;color:rgba(255,255,255,.7);user-select:none;z-index:70}ms-nav ms-nav-item{display:block;position:relative;line-height:48px}ms-nav ms-nav-item.ms-nav-title{line-height:32px;font-size:12px;font-weight:500;margin-top:8px;padding:0 24px;width:100%;color:rgba(255,255,255,.3);text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}ms-nav ms-nav-item .ms-nav-button{display:flex;align-self:flex-start;align-items:center;position:relative;cursor:pointer;padding:0 48px 0 24px;color:rgba(255,255,255,.7);text-decoration:none}ms-nav ms-nav-item .ms-nav-button:not(.active):hover{background:rgba(0,0,0,.1);text-decoration:none}ms-nav ms-nav-item .ms-nav-button .ms-nav-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:opacity .2s ease-in-out .1s}ms-nav ms-nav-item .ms-nav-button .arrow{position:absolute;top:16px;right:24px;margin:0;transition:transform .3s ease-in-out,opacity .2s ease-in-out .1s}ms-nav ms-nav-item .ms-nav-button .ms-nav-badge{position:absolute;top:50%;right:24px;min-width:20px;height:20px;line-height:20px;padding:0 7px;font-size:11px;font-weight:700;border-radius:20px;transform:translateY(-50%);transition:opacity .2s ease-in-out .1s}ms-nav ms-nav-item .ms-nav-button.active{color:#fff!important}ms-nav ms-nav-item .ms-nav-button.active .ms-nav-badge{background:#fff!important;color:rgba(0,0,0,.87)!important}ms-nav ms-nav-item .ms-nav-button.active i{color:#fff}ms-nav ms-nav-item i{color:rgba(255,255,255,.7);margin:0 16px 0 0}ms-nav .ms-nav-toggle ms-nav-toggle-items{display:none;overflow:hidden}ms-nav .ms-nav-toggle ms-nav-toggle-items.expand-animation{transition:height .35s cubic-bezier(.25,.46,.45,.94)}ms-nav .ms-nav-toggle ms-nav-toggle-items.collapse-animation{transition:height .35s cubic-bezier(.25,.46,.45,.94)}ms-nav .ms-nav-toggle ms-nav-toggle-items ms-nav-item .ms-nav-button{padding-left:58px}ms-nav .ms-nav-toggle ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item .ms-nav-button{padding-left:68px}ms-nav .ms-nav-toggle ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item .ms-nav-button{padding-left:78px}ms-nav .ms-nav-toggle ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item .ms-nav-button{padding-left:88px}ms-nav .ms-nav-toggle ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item .ms-nav-button{padding-left:98px}ms-nav .ms-nav-toggle.active>.ms-nav-button{color:#fff}ms-nav .ms-nav-toggle.active>.ms-nav-button a,ms-nav .ms-nav-toggle.active>.ms-nav-button md-icon{color:#fff}ms-nav .ms-nav-toggle[collapsed=false]>.ms-nav-button>.arrow{transform:rotate(90deg)}ms-nav>.ms-nav-toggle[collapsed=false]{background-color:rgba(0,0,0,.12)}@media only screen and (min-width:1280px){.ms-nav-folded #ms-nav-fold-close-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;z-index:998}.ms-nav-folded #ms-nav-fold-open-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:999}.ms-nav-folded:not(.ms-nav-folded-open) ms-nav ms-nav-item.ms-nav-title{height:32px}.ms-nav-folded:not(.ms-nav-folded-open) ms-nav ms-nav-item.ms-nav-title:before{content:'';display:block;position:relative;top:12px;width:16px;border-top:1px solid rgba(255,255,255,.12)}.ms-nav-folded:not(.ms-nav-folded-open) ms-nav ms-nav-item.ms-nav-title span{display:none}.ms-nav-folded:not(.ms-nav-folded-open) ms-nav ms-nav-item .ms-nav-button{height:48px}.ms-nav-folded:not(.ms-nav-folded-open) ms-nav ms-nav-item .ms-nav-button>.arrow,.ms-nav-folded:not(.ms-nav-folded-open) ms-nav ms-nav-item .ms-nav-button>.ms-nav-badge,.ms-nav-folded:not(.ms-nav-folded-open) ms-nav ms-nav-item .ms-nav-button>.ms-nav-label{opacity:0;visibility:hidden}}.ms-navigation{display:block;position:relative;color:rgba(255,255,255,.7);user-select:none}.ms-navigation li,.ms-navigation ul{padding:0;margin:0}.ms-navigation ul{display:block;overflow:hidden}.ms-navigation ul li{position:relative}.ms-navigation ul li.collapsed ul{display:none}.ms-navigation .animate-height{transition:height .25s cubic-bezier(.25,.46,.45,.94)}.ms-navigation .ms-navigation-node .ms-navigation-item{display:block;position:relative;cursor:pointer;color:rgba(255,255,255,.7)}.ms-navigation .ms-navigation-node .ms-navigation-item:hover{background:rgba(0,0,0,.1)}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button{display:flex;position:relative;width:100%;height:48px;line-height:48px;flex-direction:row;justify-content:flex-start;align-items:center;padding-right:16px;color:rgba(255,255,255,.7);text-decoration:none;white-space:nowrap;overflow:hidden}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button .icon{color:rgba(255,255,255,.7);margin:0 16px 0 0}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button span{white-space:nowrap;overflow:hidden;opacity:1;transition:opacity .25s ease-in-out .1s}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button a{white-space:nowrap;overflow:hidden;opacity:1;transition:opacity .25s ease-in-out .1s}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button .arrow{margin:0;opacity:1;transition:transform .3s ease-in-out,opacity .25s ease-in-out .1s}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button .badge{position:absolute;top:50%;right:16px;min-width:20px;height:20px;line-height:20px;padding:0 7px;font-size:11px;font-weight:700;border-radius:20px;transform:translateY(-50%);transition:opacity .2s ease-in-out .1s}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button.active{color:#fff}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button.active .icon{color:#fff}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button.active .badge{background:#fff!important;color:rgba(0,0,0,.87)!important}.ms-navigation .ms-navigation-node:not(.collapsed)>.ms-navigation-item>.ms-navigation-button .arrow{transform:rotate(90deg)}.ms-navigation .ms-navigation-node.group>.ms-navigation-item{font-size:12px;font-weight:500;margin-top:8px;cursor:auto;background:0 0!important;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ms-navigation .ms-navigation-node.group>.ms-navigation-item>.ms-navigation-button{height:32px;line-height:32px;color:rgba(255,255,255,.3)}.ms-navigation .ms-navigation-node:not(.group).has-children:not(.collapsed){background-color:rgba(0,0,0,.12)}.ms-navigation .ms-navigation-node:not(.group).has-children.collapsing{background-color:rgba(0,0,0,.12)}.ms-navigation .ms-navigation-node:not(.group).has-children .has-children:not(.collapsed){background:0 0}.ms-navigation li .ms-navigation-button{padding-left:24px}.ms-navigation li li .ms-navigation-button{padding-left:56px}.ms-navigation li li li .ms-navigation-button{padding-left:72px}.ms-navigation li li li li .ms-navigation-button{padding-left:88px}.ms-navigation li li li li li .ms-navigation-button{padding-left:104px}.ms-navigation li.group .ms-navigation-button{padding-left:24px}.ms-navigation li.group li .ms-navigation-button{padding-left:24px}.ms-navigation li.group li li .ms-navigation-button{padding-left:56px}.ms-navigation li.group li li li .ms-navigation-button{padding-left:72px}.ms-navigation li.group li li li li .ms-navigation-button{padding-left:88px}#horizontal-navigation{height:64px;min-height:64px;max-height:64px;background:#fff;z-index:54}#horizontal-navigation .ms-navigation-horizontal{display:flex;position:relative;user-select:none}#horizontal-navigation .ms-navigation-horizontal li,#horizontal-navigation .ms-navigation-horizontal ul{padding:0;margin:0;list-style:none}#horizontal-navigation .ms-navigation-horizontal .horizontal{display:flex;flex:1}#horizontal-navigation .ms-navigation-horizontal .horizontal li{position:relative;cursor:pointer}#horizontal-navigation .ms-navigation-horizontal .horizontal li:not(.active):hover{background:rgba(0,0,0,.12)}#horizontal-navigation .ms-navigation-horizontal .horizontal>li>.ms-navigation-horizontal-item>.ms-navigation-horizontal-button{display:block;float:left;padding:12px 14px}#horizontal-navigation .ms-navigation-horizontal .horizontal>li>.ms-navigation-horizontal-item>.ms-navigation-horizontal-button .arrow{display:none}#horizontal-navigation .ms-navigation-horizontal .horizontal>li>.ms-navigation-horizontal-item>.ms-navigation-horizontal-button.active{background:0 0;border-bottom:2px solid}#horizontal-navigation .ms-navigation-horizontal .horizontal>li:last-child{margin-right:0}#horizontal-navigation .ms-navigation-horizontal .horizontal>li li .ms-navigation-horizontal-item .ms-navigation-horizontal-button.active{color:#fff!important}#horizontal-navigation .ms-navigation-horizontal .horizontal .has-children ul{display:none;position:absolute;background:#fff;z-index:999;min-width:200px;box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12);top:0;left:100%}#horizontal-navigation .ms-navigation-horizontal .horizontal .has-children:hover>ul{display:block}#horizontal-navigation .ms-navigation-horizontal .horizontal>.has-children>ul{top:100%;left:0}#horizontal-navigation .ms-navigation-horizontal .horizontal .ms-navigation-horizontal-item .ms-navigation-horizontal-button{display:flex;align-items:center;width:100%;color:rgba(0,0,0,.87);white-space:nowrap;padding:14px 16px;text-decoration:none}#horizontal-navigation .ms-navigation-horizontal .horizontal .ms-navigation-horizontal-item .ms-navigation-horizontal-button .icon{color:rgba(0,0,0,.54);margin-right:8px}#horizontal-navigation .ms-navigation-horizontal .horizontal .ms-navigation-horizontal-item .ms-navigation-horizontal-button .badge{min-width:20px;height:20px;line-height:20px;padding:0 7px;font-size:11px;font-weight:700;border-radius:20px;transition:opacity .2s ease-in-out .1s}#horizontal-navigation .ms-navigation-horizontal .horizontal .ms-navigation-horizontal-item .ms-navigation-horizontal-button .arrow{margin-left:8px}#horizontal-navigation .ms-navigation-horizontal .horizontal .ms-navigation-horizontal-item .ms-navigation-horizontal-button.active .badge{background:#fff!important;color:rgba(0,0,0,.87)!important}#horizontal-navigation .ms-navigation-horizontal .horizontal .ms-navigation-horizontal-item .ms-navigation-horizontal-button.active .icon{color:#fff}@media only screen and (min-width:960px){body.ms-navigation-folded:not(.ms-navigation-folded-open) .ms-navigation .animate-height{transition:none}body.ms-navigation-folded:not(.ms-navigation-folded-open) .ms-navigation .ms-navigation-node .ms-navigation-item .ms-navigation-button .icon{margin:0}body.ms-navigation-folded:not(.ms-navigation-folded-open) .ms-navigation .ms-navigation-node .ms-navigation-item .ms-navigation-button .arrow,body.ms-navigation-folded:not(.ms-navigation-folded-open) .ms-navigation .ms-navigation-node .ms-navigation-item .ms-navigation-button .badge,body.ms-navigation-folded:not(.ms-navigation-folded-open) .ms-navigation .ms-navigation-node .ms-navigation-item .ms-navigation-button .title{opacity:0;visibility:hidden}body.ms-navigation-folded:not(.ms-navigation-folded-open) .ms-navigation .ms-navigation-node.group>.ms-navigation-item .ms-navigation-button:before{content:'';display:block;position:relative;width:16px;border-top:1px solid rgba(255,255,255,.12)}body.ms-navigation-folded:not(.ms-navigation-folded-open) #ms-navigation-fold-expander{position:absolute;top:0;right:0;bottom:0;left:0;z-index:999}body.ms-navigation-folded #ms-navigation-fold-collapser{position:absolute;top:0;right:0;bottom:0;left:0;z-index:59}}@media only screen and (max-width:960px){body.ms-navigation-horizontal-mobile-menu-active #horizontal-navigation .navigation-toggle{height:64px;margin-right:16px}body.ms-navigation-horizontal-mobile-menu-active #horizontal-navigation .navigation-toggle .md-button{margin:0;width:64px;height:64px}body.ms-navigation-horizontal-mobile-menu-active #horizontal-navigation .ms-navigation-horizontal{display:block!important;background:#fff}#horizontal-navigation{z-index:60}#horizontal-navigation .ms-navigation-horizontal{position:absolute;display:none;top:0;right:0;bottom:0;left:0;padding:0 0 16px 0;z-index:9998;overflow-x:hidden;overflow-y:scroll}#horizontal-navigation .ms-navigation-horizontal .horizontal{flex-direction:column;min-height:100%;width:100%}#horizontal-navigation .ms-navigation-horizontal .horizontal li:not(.active):hover{background:0 0}#horizontal-navigation .ms-navigation-horizontal .horizontal li:not(.active) .ms-navigation-horizontal-item{margin:4px}#horizontal-navigation .ms-navigation-horizontal .horizontal li:not(.active) .ms-navigation-horizontal-item:hover{background:rgba(0,0,0,.12)}#horizontal-navigation .ms-navigation-horizontal .horizontal>li{padding:0 12px}#horizontal-navigation .ms-navigation-horizontal .horizontal>li>.ms-navigation-horizontal-item>.ms-navigation-horizontal-button{display:flex;float:none}#horizontal-navigation .ms-navigation-horizontal .horizontal>li>.ms-navigation-horizontal-item>.ms-navigation-horizontal-button .arrow{display:block}#horizontal-navigation .ms-navigation-horizontal .horizontal .has-children ul{position:relative;top:0;left:0;box-shadow:none}#horizontal-navigation .ms-navigation-horizontal .horizontal .has-children:hover>ul{display:none}#horizontal-navigation .ms-navigation-horizontal .horizontal .has-children .expanded>.ms-navigation-horizontal-button .arrow{transform:rotate(90deg)}#horizontal-navigation .ms-navigation-horizontal .horizontal .has-children .expanded+ul{display:block;margin-left:16px}#horizontal-navigation .ms-navigation-horizontal .horizontal .ms-navigation-horizontal-item{min-height:48px;height:48px}}md-dialog.md-phonebar-dialog{max-width:720px;width:720px}md-dialog.md-phonebar-dialog md-dialog-content{display:block;position:relative;height:500px}md-dialog.md-phonebar-dialog md-toolbar .title{font-size:17px}md-dialog.md-phonebar-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.md-phonebar-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}md-dialog.md-phonebar-dialog md-tabs{position:static}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}.ms-phonebar{height:64px;font-size:13px}.ms-phonebar .phonebar-container{height:64px;padding:0}.ms-phonebar .phonebar-container .quantity-indicator{display:inline-block;vertical-align:middle;width:8px;height:8px;border-radius:4px;margin-right:5px;margin-left:5px}.ms-phonebar .phonebar-container .sessions{overflow-x:auto}.ms-phonebar .phonebar-container .session{border-radius:3px;border:1px solid #dcdcdc;margin-left:3px;cursor:pointer}.ms-phonebar .phonebar-container .session-info{padding-left:3px;padding-right:3px;color:grey}.ms-phonebar .phonebar-container .session-button{border:1px solid grey;margin:3px}.ms-phonebar .phonebar-container .button-bar{border:1px solid grey}.ms-phonebar .phonebar-container .num-pad{position:fixed;border-radius:3px;border:1px solid #9e9e9e;top:80px;left:80px}.ms-phonebar .phonebar-container .num-pad-logo{height:40px;width:42px}.ms-phonebar .phonebar-container p{margin:0;padding:0 0 10px 0;line-height:10px;font-size:10px}.ms-phonebar .phonebar-container .span4{width:50px;float:left;margin:8px}.ms-phonebar .phonebar-container .num{border:1px solid #9e9e9e;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;height:50px;background-color:#fff;color:#333;cursor:pointer}.ms-phonebar .phonebar-container .num:hover{background-color:#9e9e9e;color:#fff;transition-property:background-color .2s linear 0s;-moz-transition:background-color .2s linear 0s;-webkit-transition:background-color .2s linear 0s;-o-transition:background-color .2s linear 0s}.ms-phonebar .phonebar-container .txt{font-size:20px;text-align:center;margin-top:3px;font-family:Lato,sans-serif;color:#333}.ms-phonebar .phonebar-container .small{font-size:15px}.ms-phonebar .phonebar-container .angucomplete-dropdown{top:45px;overflow-y:auto;max-height:200px}.ms-phonebar .phonebar-container .highlight{color:red}.ms-phonebar .phonebar-container .input-number{margin-left:5px;padding:8px;border:1px solid #ccc;border-radius:3px;box-sizing:border-box}.ms-phonebar .phonebar-container .phonebar{position:relative}.ms-phonebar .phonebar-container .phonebar>div{height:64px;min-width:44px}.ms-phonebar .phonebar-container .phonebar>div.dragging{cursor:grabbing}.ms-phonebar .phonebar-container .phonebar>div.dragging .md-ripple-container{display:none}.ms-phonebar .phonebar-container .phonebar>div.ghost .shortcut{opacity:.27}.ms-phonebar .phonebar-container.mobile-bar-active{position:absolute;top:0;right:0;bottom:0;left:0;background:#fff;z-index:99;max-width:none!important}.ms-phonebar .phonebar-container.mobile-bar-active .phonebar,.ms-phonebar .phonebar-container.mobile-bar-active .toggle-mobile-menu{display:flex!important}.ms-phonebar .phonebar-container.mobile-bar-active .toggle-mobile-menu{margin-left:14px}.ms-phonebar .phonebar-container.mobile-bar-active>div{border-right:1px solid rgba(0,0,0,.12)}.quick-filter-container md-select .md-select-value.md-select-placeholder{color:inherit}.quick-filter-container md-select[multiple] md-select-value>:first-child{max-width:250px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.ms-responsive-table-wrapper{overflow-x:auto;overflow-y:hidden}.ms-scroll{overflow:hidden!important}.ms-search-bar{height:64px;font-size:13px}.ms-search-bar .ms-search-bar-collapser,.ms-search-bar .ms-search-bar-expander{cursor:pointer;padding:0 20px;margin:0;width:64px!important;height:64px!important;line-height:64px!important}.ms-search-bar .ms-search-bar-loader{width:64px!important;height:64px!important;line-height:64px!important}.ms-search-bar .ms-search-button-expanded{pointer-events:none}.ms-search-bar .ms-search-bar-collapser{display:none}.ms-search-bar input{background-color:transparent;font-size:16px}.ms-search-bar .ms-search-bar-results{position:absolute;top:64px;left:0;right:0;overflow-x:hidden;overflow-y:scroll;background:#fff;max-height:300px;box-shadow:0 1px 8px 0 rgba(0,0,0,.2),0 3px 4px 0 rgba(0,0,0,.14),0 3px 3px -2px rgba(0,0,0,.12)}.ms-search-bar .ms-search-bar-results .no-results{font-size:18px;padding:16px;color:rgba(0,0,0,.54)}.ms-search-bar .ms-search-bar-results .result{position:relative;height:56px;min-height:56px;max-height:56px;padding:16px;cursor:pointer}.ms-search-bar .ms-search-bar-results .result.selected{background:rgba(0,0,0,.07)}.ms-search-bar .ms-search-bar-results .result .icon-container{min-width:32px;margin-right:8px}.ms-search-bar .ms-search-bar-results .result .icon-container .square{width:6px;height:6px}.ms-search-bar .ms-search-bar-results .result .title{font-size:16px}.ms-search-bar .ms-search-bar-results .result .description{padding-top:6px;font-size:14px}.ms-search-bar.expanded{position:absolute;top:0;right:0;bottom:0;left:0;background:#fff;z-index:10}.ms-search-bar.expanded #ms-search-bar-input{display:block}.ms-search-bar.expanded .ms-search-bar-collapser{display:block}.ms-search-bar.down{top:64px;border-bottom:1px rgba(0,0,0,.12) solid}.ms-search-bar[disabled] input{pointer-events:none}body.ms-search-bar-expanded #toolbar{z-index:999!important}@media screen and (max-width:960px){.ms-search-bar-label{padding:0 8px 0 12px}}.ms-shortcuts{height:64px;font-size:13px}.ms-shortcuts .shortcuts-container{height:64px;padding:0 8px;max-width:400px}.ms-shortcuts .shortcuts-container .shortcuts{position:relative;overflow-x:scroll}.ms-shortcuts .shortcuts-container .shortcuts>div{height:64px;min-width:44px}.ms-shortcuts .shortcuts-container .shortcuts>div.dragging{cursor:grabbing}.ms-shortcuts .shortcuts-container .shortcuts>div.dragging .md-ripple-container{display:none}.ms-shortcuts .shortcuts-container .shortcuts>div.ghost .shortcut{opacity:.27}.ms-shortcuts .shortcuts-container .shortcuts>div .shortcut{margin:2px}.ms-shortcuts .shortcuts-container .shortcuts>div .shortcut .first-letter{display:inline-block;vertical-align:middle;font-size:20px;text-transform:uppercase;color:rgba(0,0,0,.54)}.ms-shortcuts .shortcuts-container .shortcut-menu{margin:0}.ms-shortcuts .shortcuts-container.mobile-bar-active{position:absolute;top:0;right:0;bottom:0;left:0;background:#fff;z-index:99;max-width:none!important}.ms-shortcuts .shortcuts-container.mobile-bar-active .shortcut-menu,.ms-shortcuts .shortcuts-container.mobile-bar-active .shortcuts,.ms-shortcuts .shortcuts-container.mobile-bar-active .toggle-mobile-menu{display:flex!important}.ms-shortcuts .shortcuts-container.mobile-bar-active .toggle-mobile-menu{margin-left:14px}.ms-shortcuts .shortcuts-container.mobile-bar-active>div{border-right:1px solid rgba(0,0,0,.12)}#ms-shortcut-add-menu{position:relative;width:240px;min-width:240px;max-width:240px}#ms-shortcut-add-menu .add-shortcut-button{width:48px;height:48px;padding:0 12px;margin:0}#ms-shortcut-add-menu .shortcut-search{height:45px;padding:0 8px}#ms-shortcut-add-menu .shortcut-search .search-icon{width:40px;height:40px;line-height:48px}#ms-shortcut-add-menu .shortcut-search .shortcut-loader{padding:10px}#ms-shortcut-add-menu .shortcut-search input{padding:8px}#ms-shortcut-add-menu .results{position:relative;overflow-y:scroll;max-height:233px;margin-top:8px;padding-top:8px;border-top:1px solid rgba(0,0,0,.12)}#ms-shortcut-add-menu .results .no-results{font-size:18px;padding:16px;color:rgba(0,0,0,.54)}#ms-shortcut-add-menu .results .result{position:relative;min-height:56px;padding:16px;cursor:pointer}#ms-shortcut-add-menu .results .result.selected{background:rgba(0,0,0,.07)}#ms-shortcut-add-menu .results .result .icon-container{min-width:32px;margin-right:8px}#ms-shortcut-add-menu .results .result .icon-container .square{width:6px;height:6px}#ms-shortcut-add-menu .results .result .title{font-size:16px}#ms-shortcut-add-menu .results .result .description{padding-top:6px;font-size:14px}#splash-screen{display:block;position:absolute;top:0;left:0;right:0;bottom:0;background-color:#3c4252;z-index:99999}#splash-screen.ng-leave{opacity:1;transition:all linear .2s}#splash-screen.ng-leave-active{opacity:0}#splash-screen .center{display:block;width:100%;position:absolute;top:50%;transform:translateY(-50%)}#splash-screen .logo{width:96px;height:96px;line-height:96px;margin:0 auto;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:56px;text-align:center;border-radius:2px;background-color:#039be5;color:#fff;box-shadow:0 2px 14px 0 rgba(0,0,0,.22)}#splash-screen .spinner-wrapper{display:block;position:relative;width:100%;min-height:100px;height:100px}#splash-screen .spinner-wrapper .spinner{position:absolute;overflow:hidden;left:50%;margin-left:-50px;animation:outer-rotate 2.91667s linear infinite}#splash-screen .spinner-wrapper .spinner .inner{width:100px;height:100px;position:relative;animation:sporadic-rotate 5.25s cubic-bezier(.35,0,.25,1) infinite}#splash-screen .spinner-wrapper .spinner .inner .gap{position:absolute;left:49px;right:49px;top:0;bottom:0;border-top:10px solid;box-sizing:border-box}#splash-screen .spinner-wrapper .spinner .inner .left,#splash-screen .spinner-wrapper .spinner .inner .right{position:absolute;top:0;height:100px;width:50px;overflow:hidden}#splash-screen .spinner-wrapper .spinner .inner .left .half-circle,#splash-screen .spinner-wrapper .spinner .inner .right .half-circle{position:absolute;top:0;width:100px;height:100px;box-sizing:border-box;border:10px solid #4285f4;border-bottom-color:transparent;border-radius:50%}#splash-screen .spinner-wrapper .spinner .inner .left{left:0}#splash-screen .spinner-wrapper .spinner .inner .left .half-circle{left:0;border-right-color:transparent;animation:left-wobble 1.3125s cubic-bezier(.35,0,.25,1) infinite;-webkit-animation:left-wobble 1.3125s cubic-bezier(.35,0,.25,1) infinite}#splash-screen .spinner-wrapper .spinner .inner .right{right:0}#splash-screen .spinner-wrapper .spinner .inner .right .half-circle{right:0;border-left-color:transparent;animation:right-wobble 1.3125s cubic-bezier(.35,0,.25,1) infinite;-webkit-animation:right-wobble 1.3125s cubic-bezier(.35,0,.25,1) infinite}@keyframes outer-rotate{0%{transform:rotate(0) scale(.5)}100%{transform:rotate(360deg) scale(.5)}}@keyframes left-wobble{0%,100%{transform:rotate(130deg)}50%{transform:rotate(-5deg)}}@keyframes right-wobble{0%,100%{transform:rotate(-130deg)}50%{transform:rotate(5deg)}}@keyframes sporadic-rotate{12.5%{transform:rotate(135deg)}25%{transform:rotate(270deg)}37.5%{transform:rotate(405deg)}50%{transform:rotate(540deg)}62.5%{transform:rotate(675deg)}75%{transform:rotate(810deg)}87.5%{transform:rotate(945deg)}100%{transform:rotate(1080deg)}}.ms-stepper .ms-stepper-horizontal{background:#fff;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation{height:72px;min-height:72px;max-height:72px;background:#fff;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item{display:flex;flex-direction:row;align-items:center;position:relative;height:72px;min-height:72px;max-height:72px;line-height:24px;margin:0;padding:24px;border-radius:0;cursor:pointer;font-size:14px;text-transform:none}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item:after,.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item:before{content:'';display:block;position:absolute;top:50%;width:24px;border-bottom:1px solid rgba(0,0,0,.12)}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item:before{left:0}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item:after{right:0}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item:first-child:before{display:none}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item:last-child:after{display:none}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item.current .title{font-weight:600;color:rgba(0,0,0,.87)}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item.disabled{cursor:default}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item.disabled .step{background:rgba(0,0,0,.12)}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item.disabled .title{color:rgba(0,0,0,.27)}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item.disabled .subtitle{color:rgba(0,0,0,.27)}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item.optional{padding:16px 24px}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item .step{width:24px;min-width:24px;height:24px;border-radius:50%;margin:0 8px 0 16px;color:#fff}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item .step .icon{color:#fff;font-weight:700;line-height:24px!important}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item .title{padding-right:16px;color:rgba(0,0,0,.54)}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item .subtitle{font-size:12px;padding-right:16px;color:rgba(0,0,0,.54);line-height:1}.ms-stepper .ms-stepper-horizontal .ms-stepper-steps{padding:24px 16px}.ms-stepper .ms-stepper-horizontal .ms-stepper-controls{padding:0 16px 16px 16px}.ms-stepper .ms-stepper-horizontal .ms-stepper-controls .ms-stepper-dots{display:none;align-items:center;justify-content:center;padding:0 16px}.ms-stepper .ms-stepper-horizontal .ms-stepper-controls .ms-stepper-dots span{width:5px;height:5px;margin:0 4px;border-radius:50%}.ms-stepper .ms-stepper-horizontal .ms-stepper-controls .ms-stepper-dots span:not(.md-accent-bg){background:rgba(0,0,0,.12)}.ms-stepper .ms-stepper-horizontal .ms-stepper-controls .ms-stepper-dots span.selected{width:8px;height:8px}@media screen and (max-width:600px){.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation{display:none}.ms-stepper .ms-stepper-horizontal .ms-stepper-controls .ms-stepper-dots{display:flex}}.ms-stepper .ms-stepper-vertical{position:relative;background:#fff;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}.ms-stepper .ms-stepper-vertical .ms-stepper-vertical-line{display:block;position:absolute;width:1px;top:32px;bottom:32px;left:43px;border-left:1px solid rgba(0,0,0,.12)}.ms-stepper .ms-stepper-vertical .ms-stepper-steps{padding:8px 0}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step{display:block}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item{display:flex;flex-direction:row;align-items:center;position:relative;width:100%;height:72px;min-height:72px;max-height:72px;line-height:24px;margin:0;padding:0 24px;border-radius:0;cursor:pointer;font-size:14px;text-transform:none}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item:first-child:before{display:none}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item:last-child:after{display:none}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item:hover:not(.disabled) .step{background-color:#ececec;border-color:#ececec}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item.current .title{font-weight:600;color:rgba(0,0,0,.87)}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item.disabled{cursor:default}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item.disabled .title{color:rgba(0,0,0,.27)}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item.disabled .subtitle{color:rgba(0,0,0,.27)}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item.optional{padding:16px 24px}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item .step{width:40px;min-width:40px;height:40px;margin:0 16px 0 0;border-radius:50%;background:#fff;border:8px solid #fff;color:#fff;transition:border-color .4s cubic-bezier(.25,.8,.25,1),background-color .4s cubic-bezier(.25,.8,.25,1)}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item .step .icon{font-weight:700;line-height:28px!important}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item .title{padding-right:16px;color:rgba(0,0,0,.54)}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item .subtitle{font-size:12px;padding-right:16px;color:rgba(0,0,0,.54);line-height:1}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-step-content{padding:0 24px 16px 64px}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-controls{padding:0 16px 16px 56px}.ms-tab-scroll .scroll-arrow{height:inherit;padding:0}.ms-tab-scroll .bar-container{overflow:hidden}.ms-tab-scroll .scroll-container{overflow-x:hidden;overflow-y:hidden;transition:transform .2s ease-in-out}.ms-timeline .ms-timeline-loader{position:relative;display:flex;align-items:center;justify-content:center;width:56px;height:56px;margin:0 auto;background:#fff;font-weight:500;opacity:0;z-index:11;border-radius:50%}.ms-timeline .ms-timeline-loader.show{opacity:1}.ms-timeline .ms-timeline-loader .spinner{width:24px;height:24px;border:3px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%}.ms-widget .ms-widget-front{box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}.ms-widget .ms-widget-back{box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}.ms-widget.sidenav-widget .ms-widget-back,.ms-widget.sidenav-widget .ms-widget-front{box-shadow:none}.ms-widget .flip-to-front{position:absolute;top:0;right:0}.ms-widget .c3{height:100%}.ms-widget .chart-fill-8{margin:0 -8px -8px -8px}.ms-widget .chart-fill-16{margin:0 -16px -16px -16px}.ms-widget .chart-fill-24{margin:0 -24px -24px -24px}.ms-widget .chart-fill-32{margin:0 -32px -32px -32px}.ms-widget .chart-fill-40{margin:0 -40px -40px -40px}.ms-widget .chart-fill-48{margin:0 -48px -48px -48px}.ms-widget .chart-fill-56{margin:0 -56px -56px -56px}.ms-widget .chart-fill-64{margin:0 -64px -64px -64px}.ms-widget .chart-fill-72{margin:0 -72px -72px -72px}.ms-widget .chart-fill-80{margin:0 -80px -80px -80px}.ms-widget{position:relative;font-size:1.3rem;perspective:3000px;padding:12px}.ms-widget .ms-widget-front{display:flex;flex-direction:column;flex:1 1 auto;position:relative;overflow:hidden;visibility:visible;width:100%;opacity:1;z-index:10;border-radius:2px;transition:transform .5s ease-out 0s,visibility 0s ease-in .2s,opacity 0s ease-in .2s;transform:rotateY(0);backface-visibility:hidden}.ms-widget .ms-widget-back{display:block;position:absolute;overflow:hidden;visibility:hidden;opacity:0;z-index:10;top:12px;right:12px;bottom:12px;left:12px;border-radius:2px;transition:transform .5s ease-out 0s,visibility 0s ease-in .2s,opacity 0s ease-in .2s;transform:rotateY(180deg);backface-visibility:hidden}.ms-widget .md-button{margin:0}.ms-widget .md-button.md-icon-button{margin:0}.ms-widget.flipped .ms-widget-front{visibility:hidden;opacity:0;transform:rotateY(180deg)}.ms-widget.flipped .ms-widget-back{display:block;visibility:visible;opacity:1;transform:rotateY(360deg)}.ms-widget.sidenav-widget{padding:0}.ms-widget.ar-2-1 .widget{padding:0;position:relative}.ms-widget.ar-2-1 .widget:before{display:block;content:'';width:100%;padding-top:50%}.ms-widget.ar-2-1 .widget>.widget{position:absolute;top:8px;left:8px;right:8px;bottom:8px}.ms-widget.ar-1-1 .widget{padding:0;position:relative}.ms-widget.ar-1-1 .widget:before{display:block;content:'';width:100%;padding-top:100%}.ms-widget.ar-1-1 .widget>.widget{position:absolute;top:8px;left:8px;right:8px;bottom:8px}.ms-theme-options .ms-theme-options-button{position:absolute;top:160px;right:0;z-index:50;box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12);width:48px;height:48px;line-height:48px;text-align:center;cursor:pointer;border-radius:0;margin:0;pointer-events:auto;opacity:.75}.ms-theme-options .ms-theme-options-button:hover{opacity:1}.ms-theme-options md-sidenav{width:384px;min-width:384px;max-width:384px}.ms-theme-options md-sidenav .ms-theme-options-list{background:#fff;z-index:12;pointer-events:auto}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option{padding:16px}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.layout-options md-radio-button{width:160px;max-width:160px;margin:8px 8px 16px 8px}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.layout-options md-radio-button.md-checked ._md-label img,.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.layout-options md-radio-button:hover ._md-label img{opacity:1;box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.layout-options md-radio-button ._md-container{display:none}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.layout-options md-radio-button ._md-label{margin-left:0}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.layout-options md-radio-button ._md-label img{opacity:.8;margin-bottom:8px}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.color-palettes md-menu-item{max-width:192px}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.color-palettes .theme-button{border-bottom:16px solid;text-align:left;width:101px;height:88px;box-shadow:none;opacity:.8}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.color-palettes .theme-button.active,.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.color-palettes .theme-button:hover{opacity:1;box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option md-radio-button{margin:8px}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option .option-title{font-size:14px;font-weight:500;padding:0 8px 12px 8px}#error-404 .content{width:90%;max-width:512px;margin-top:128px}#error-404 .content .error-code{font-size:112px;text-align:center;line-height:1;margin-bottom:16px;font-weight:500}#error-404 .content .message{font-size:24px;text-align:center;color:rgba(0,0,0,.54)}#error-404 .content .search{width:100%;height:56px;line-height:56px;margin:48px auto 16px auto;padding:16px;background:#fff}#error-404 .content .search input{padding:0 0 0 16px}#error-404 .content .back-link{font-size:15px;text-align:center}#error-500 .content{width:90%;max-width:512px;margin-top:128px}#error-500 .content .error-code{font-size:112px;line-height:1;text-align:center;margin-bottom:16px;font-weight:500}#error-500 .content .message{font-size:24px;text-align:center;color:rgba(0,0,0,.54)}#error-500 .content .sub-message{font-size:17px;text-align:center;color:rgba(0,0,0,.54);margin:16px auto 48px auto}#error-500 .content .report-link{text-align:center;font-size:15px}#forgot-password{height:100%;background:url(/assets/images/backgrounds/tech.png) no-repeat;background-size:cover}#forgot-password #forgot-password-form-wrapper{flex:1 0 auto;padding:32px}#forgot-password #forgot-password-form-wrapper #forgot-password-form{width:384px;max-width:384px;padding:32px;text-align:center;background:#fff}#forgot-password #forgot-password-form-wrapper #forgot-password-form .logo{width:128px;height:128px;line-height:128px;font-size:86px;font-weight:500;margin:32px auto;color:#fff;border-radius:2px}#forgot-password #forgot-password-form-wrapper #forgot-password-form .title{font-size:17px;margin:16px 0 32px 0}#forgot-password #forgot-password-form-wrapper #forgot-password-form .logo_login{max-height:200px}#forgot-password #forgot-password-form-wrapper #forgot-password-form form{width:100%;text-align:left}#forgot-password #forgot-password-form-wrapper #forgot-password-form form .submit-button{width:220px;margin:16px auto;display:block}#forgot-password #forgot-password-form-wrapper #forgot-password-form .login{margin:32px auto 24px auto;width:250px;font-weight:500}#forgot-password #forgot-password-form-wrapper #forgot-password-form .login .text{margin-right:8px}@media screen and (max-width:600px){#forgot-password #forgot-password-form-wrapper{padding:16px}#forgot-password #forgot-password-form-wrapper #forgot-password-form{padding:24px;width:100%}#forgot-password #forgot-password-form-wrapper #forgot-password-form form .md-button{width:90%}}#login{height:100%;background:url(/assets/images/backgrounds/tech.png) no-repeat;background-size:cover}#login #login-form-wrapper{flex:1 0 auto;padding:32px}#login #login-form-wrapper #login-form{width:384px;max-width:384px;padding:32px;background:#fff;text-align:center}#login #login-form-wrapper #login-form .logo{width:128px;height:128px;line-height:128px;font-size:86px;font-weight:500;margin:32px auto;color:#fff;border-radius:2px}#login #login-form-wrapper #login-form .title{font-size:17px;margin:16px 0 32px 0}#login #login-form-wrapper #login-form .logo_login{max-height:200px}#login #login-form-wrapper #login-form form{width:100%;text-align:left}#login #login-form-wrapper #login-form form md-checkbox{margin:0}#login #login-form-wrapper #login-form form .remember-forgot-password{font-size:13px;margin-top:8px}#login #login-form-wrapper #login-form form .remember-forgot-password .remember-me{margin-bottom:16px}#login #login-form-wrapper #login-form form .remember-forgot-password .forgot-password{font-size:13px;font-weight:500;margin-bottom:16px}#login #login-form-wrapper #login-form form .submit-button{width:220px;margin:16px auto;display:block}#login #login-form-wrapper #login-form .register{margin:32px auto 24px auto;width:250px;font-weight:500}#login #login-form-wrapper #login-form .register .text{margin-right:8px}#login #login-form-wrapper #login-form .separator{font-size:15px;font-weight:600;margin:24px auto 16px auto;position:relative;overflow:hidden;width:100px;color:rgba(0,0,0,.54)}#login #login-form-wrapper #login-form .separator .text{display:inline-block;vertical-align:baseline;position:relative;padding:0 8px;z-index:9999}#login #login-form-wrapper #login-form .separator .text:after,#login #login-form-wrapper #login-form .separator .text:before{content:'';display:block;width:30px;position:absolute;top:10px;border-top:1px solid rgba(0,0,0,.12)}#login #login-form-wrapper #login-form .separator .text:before{right:100%}#login #login-form-wrapper #login-form .separator .text:after{left:100%}#login #login-form-wrapper #login-form .md-button.facebook,#login #login-form-wrapper #login-form .md-button.google{width:192px;text-transform:none;color:#fff;font-size:13px}#login #login-form-wrapper #login-form .md-button.facebook md-icon,#login #login-form-wrapper #login-form .md-button.google md-icon{color:#fff;margin:0 8px 0 0}#login #login-form-wrapper #login-form .md-button.google{background-color:#d73d32}#login #login-form-wrapper #login-form .md-button.facebook{background-color:#3f5c9a}@media screen and (max-width:600px){#login #login-form-wrapper{padding:16px}#login #login-form-wrapper #login-form{padding:24px;width:100%}#login #login-form-wrapper #login-form form .md-button{width:90%}#login #login-form-wrapper #login-form .md-button.facebook,#login #login-form-wrapper #login-form .md-button.google{width:80%}}md-dialog.extractedReport-dialog{max-width:720px;width:720px}md-dialog.extractedReport-dialog md-dialog-content{display:block;position:relative}md-dialog.extractedReport-dialog md-toolbar .title{font-size:17px}md-dialog.extractedReport-dialog md-input-container textarea{min-height:150px}md-dialog.extractedReport-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.extractedReport-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.extractedReport-dialog .date-container{padding:16px 0 24px 0}md-dialog.extractedReport-dialog .error-list{font-size:13px}md-dialog.extractedReport-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.extractedReport-dialog .error-list .error .message{font-weight:500}md-dialog.extractedReport-dialog .error-list .error .md-button{margin:0}md-dialog.extractedReport-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.extractedReport-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#extractedReports{position:relative}#extractedReports>.header{height:76px;min-height:76px;max-height:76px}#extractedReports>.header .logo .logo-icon{margin:0 16px 0 0}#extractedReports>.header .logo .logo-text{font-size:24px}#extractedReports>.header md-icon{color:#fff}#extractedReports>.header .search-input-wrapper{position:relative}#extractedReports>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#extractedReports>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#extractedReports>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#extractedReports>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#extractedReports>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#extractedReports>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#extractedReports>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#extractedReports>.header.selected-bar .close-button-wrapper{width:244px}#extractedReports>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#extractedReports>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#extractedReports>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#extractedReports #add-extractedReport-button{position:fixed;bottom:8px;right:8px;padding:0}#extractedReports #upload-extractedReport-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.metric-dialog{max-width:720px;width:720px}md-dialog.metric-dialog md-dialog-content{display:block;position:relative}md-dialog.metric-dialog md-toolbar .title{font-size:17px}md-dialog.metric-dialog md-input-container textarea{min-height:150px}md-dialog.metric-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.metric-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.metric-dialog .date-container{padding:16px 0 24px 0}md-dialog.metric-dialog .error-list{font-size:13px}md-dialog.metric-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.metric-dialog .error-list .error .message{font-weight:500}md-dialog.metric-dialog .error-list .error .md-button{margin:0}md-dialog.metric-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.metric-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#metrics{position:relative}#metrics>.header{height:76px;min-height:76px;max-height:76px}#metrics>.header .logo .logo-icon{margin:0 16px 0 0}#metrics>.header .logo .logo-text{font-size:24px}#metrics>.header md-icon{color:#fff}#metrics>.header .search-input-wrapper{position:relative}#metrics>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#metrics>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#metrics>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#metrics>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#metrics>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#metrics>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#metrics>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#metrics>.header.selected-bar .close-button-wrapper{width:244px}#metrics>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#metrics>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#metrics>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#metrics #add-metric-button{position:fixed;bottom:8px;right:8px;padding:0}#metrics #upload-metric-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.report-dialog{max-width:720px;width:720px}md-dialog.report-dialog md-dialog-content{display:block;position:relative}md-dialog.report-dialog md-toolbar .title{font-size:17px}md-dialog.report-dialog md-input-container textarea{min-height:150px}md-dialog.report-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.report-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.report-dialog .date-container{padding:16px 0 24px 0}md-dialog.report-dialog .error-list{font-size:13px}md-dialog.report-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.report-dialog .error-list .error .message{font-weight:500}md-dialog.report-dialog .error-list .error .md-button{margin:0}md-dialog.report-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.report-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.report-dialog{max-width:720px;width:720px}md-dialog.report-dialog md-dialog-content{display:block;position:relative}md-dialog.report-dialog md-toolbar .title{font-size:17px}md-dialog.report-dialog md-input-container textarea{min-height:150px}md-dialog.report-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.report-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.report-dialog .date-container{padding:16px 0 24px 0}md-dialog.report-dialog .error-list{font-size:13px}md-dialog.report-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.report-dialog .error-list .error .message{font-weight:500}md-dialog.report-dialog .error-list .error .md-button{margin:0}md-dialog.report-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.report-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.reportField-dialog{max-width:720px;width:720px}md-dialog.reportField-dialog md-dialog-content{display:block;position:relative}md-dialog.reportField-dialog md-toolbar .title{font-size:17px}md-dialog.reportField-dialog md-input-container textarea{min-height:150px}md-dialog.reportField-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.reportField-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.reportField-dialog .date-container{padding:16px 0 24px 0}md-dialog.reportField-dialog .error-list{font-size:13px}md-dialog.reportField-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.reportField-dialog .error-list .error .message{font-weight:500}md-dialog.reportField-dialog .error-list .error .md-button{margin:0}md-dialog.reportField-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.reportField-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#analytics-report .header{height:76px;min-height:76px;max-height:76px}#analytics-report .header .goto-reports-button{margin-right:16px}#analytics-report .header .report-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#analytics-report .header .report-image img{height:100%;width:auto;max-width:none}#analytics-report .header .subtitle{margin:6px 0 0 0}#analytics-report .report-detail-form-container{padding:24px;margin-bottom:24px}#analytics-report .report-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#analytics-report .report-detail-form-container .handle{cursor:move}#analytics-report .report-detail-form-container md-input-container md-switch{margin:0!important}#analytics-report .report-detail-form-container #report-image-uploader{position:relative}#analytics-report .report-detail-form-container #report-image-uploader.dropping .drop-text{display:flex}#analytics-report .report-detail-form-container #report-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#analytics-report .report-detail-form-container #report-image-uploader .upload-button{margin-bottom:16px}#analytics-report .report-detail-form-container #report-image-uploader .report-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#analytics-report .report-detail-form-container #report-image-uploader .report-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#analytics-report .report-detail-form-container #report-image-uploader .report-image .media{max-height:100%}md-dialog.report-dialog{max-width:720px;width:720px}md-dialog.report-dialog md-dialog-content{display:block;position:relative}md-dialog.report-dialog md-toolbar .title{font-size:17px}md-dialog.report-dialog md-input-container textarea{min-height:150px}md-dialog.report-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.report-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.report-dialog .date-container{padding:16px 0 24px 0}md-dialog.report-dialog .error-list{font-size:13px}md-dialog.report-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.report-dialog .error-list .error .message{font-weight:500}md-dialog.report-dialog .error-list .error .md-button{margin:0}md-dialog.report-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.report-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#reports{position:relative}#reports>.header{height:76px;min-height:76px;max-height:76px}#reports>.header .logo .logo-icon{margin:0 16px 0 0}#reports>.header .logo .logo-text{font-size:24px}#reports>.header md-icon{color:#fff}#reports>.header .search-input-wrapper{position:relative}#reports>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#reports>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#reports>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#reports>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#reports>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#reports>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#reports>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#reports>.header.selected-bar .close-button-wrapper{width:244px}#reports>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#reports>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#reports>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}md-dialog.report-dialog{max-width:720px;width:720px}md-dialog.report-dialog md-dialog-content{display:block;position:relative}md-dialog.report-dialog md-toolbar .title{font-size:17px}md-dialog.report-dialog md-input-container textarea{min-height:150px}md-dialog.report-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.report-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.report-dialog .date-container{padding:16px 0 24px 0}md-dialog.report-dialog .error-list{font-size:13px}md-dialog.report-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.report-dialog .error-list .error .message{font-weight:500}md-dialog.report-dialog .error-list .error .md-button{margin:0}md-dialog.report-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.report-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.web-dialog md-dialog-content{display:block;position:relative}md-dialog.web-dialog md-toolbar .title{font-size:17px}md-dialog.web-dialog md-input-container textarea{min-height:150px}md-dialog.web-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.web-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.web-dialog .date-container{padding:16px 0 24px 0}md-dialog.web-dialog .error-list{font-size:13px}md-dialog.web-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.web-dialog .error-list .error .message{font-weight:500}md-dialog.web-dialog .error-list .error .md-button{margin:0}md-dialog.web-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.web-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.odbc-dialog{max-width:720px;width:720px}md-dialog.odbc-dialog md-dialog-content{display:block;position:relative}md-dialog.odbc-dialog md-toolbar .title{font-size:17px}md-dialog.odbc-dialog md-input-container textarea{min-height:150px}md-dialog.odbc-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.odbc-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.odbc-dialog .date-container{padding:16px 0 24px 0}md-dialog.odbc-dialog .error-list{font-size:13px}md-dialog.odbc-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.odbc-dialog .error-list .error .message{font-weight:500}md-dialog.odbc-dialog .error-list .error .md-button{margin:0}md-dialog.odbc-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.odbc-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#odbcs{position:relative}#odbcs>.header{height:76px;min-height:76px;max-height:76px}#odbcs>.header .logo .logo-icon{margin:0 16px 0 0}#odbcs>.header .logo .logo-text{font-size:24px}#odbcs>.header md-icon{color:#fff}#odbcs>.header .search-input-wrapper{position:relative}#odbcs>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#odbcs>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#odbcs>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#odbcs>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#odbcs>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#odbcs>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#odbcs>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#odbcs>.header.selected-bar .close-button-wrapper{width:244px}#odbcs>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#odbcs>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#odbcs>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#odbcs #add-odbc-button{position:fixed;bottom:8px;right:8px;padding:0}#odbcs #upload-odbc-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.project-dialog{max-width:720px;width:720px}md-dialog.project-dialog md-dialog-content{display:block;position:relative}md-dialog.project-dialog md-toolbar .title{font-size:17px}md-dialog.project-dialog md-input-container textarea{min-height:150px}md-dialog.project-dialog .date-container{padding:16px 0 24px 0}md-dialog.project-dialog .error-list{font-size:13px}md-dialog.project-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.project-dialog .error-list .error .message{font-weight:500}md-dialog.project-dialog .error-list .error .md-button{margin:0}md-dialog.project-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.project-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}md-dialog.project-dialog .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#callysquare-project .header{height:76px;min-height:76px;max-height:76px}#callysquare-project .header .goto-projects-button{margin-right:16px}#callysquare-project .header .project-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#callysquare-project .header .project-image img{height:100%;width:auto;max-width:none}#callysquare-project .header .subtitle{margin:6px 0 0 0}#callysquare-project .project-detail-form-container{padding:24px;margin-bottom:24px}#callysquare-project .project-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#callysquare-project .project-detail-form-container #project-image-uploader{position:relative}#callysquare-project .project-detail-form-container #project-image-uploader.dropping .drop-text{display:flex}#callysquare-project .project-detail-form-container #project-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#callysquare-project .project-detail-form-container #project-image-uploader .upload-button{margin-bottom:16px}#callysquare-project .project-detail-form-container #project-image-uploader .project-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#callysquare-project .project-detail-form-container #project-image-uploader .project-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#callysquare-project .project-detail-form-container #project-image-uploader .project-image .media{max-height:100%}#callysquare-project>.callysquare-content{position:absolute;top:76px;bottom:0;left:0;right:0}#projects{position:relative}#projects>.header{height:76px;min-height:76px;max-height:76px}#projects>.header .logo .logo-icon{margin:0 16px 0 0}#projects>.header .logo .logo-text{font-size:24px}#projects>.header md-icon{color:#fff}#projects>.header .search-input-wrapper{position:relative}#projects>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#projects>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#projects>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#projects>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#projects>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#projects>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#projects>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#projects>.header.selected-bar .close-button-wrapper{width:244px}#projects>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#projects>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#projects>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#projects #add-project-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.squareRecording-dialog{max-width:720px;width:720px}md-dialog.squareRecording-dialog md-dialog-content{display:block;position:relative}md-dialog.squareRecording-dialog md-toolbar .title{font-size:17px}md-dialog.squareRecording-dialog md-input-container textarea{min-height:150px}md-dialog.squareRecording-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.squareRecording-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.squareRecording-dialog .date-container{padding:16px 0 24px 0}md-dialog.squareRecording-dialog .error-list{font-size:13px}md-dialog.squareRecording-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.squareRecording-dialog .error-list .error .message{font-weight:500}md-dialog.squareRecording-dialog .error-list .error .md-button{margin:0}md-dialog.squareRecording-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.squareRecording-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#squareRecordings{position:relative}#squareRecordings>.header{height:76px;min-height:76px;max-height:76px}#squareRecordings>.header .logo .logo-icon{margin:0 16px 0 0}#squareRecordings>.header .logo .logo-text{font-size:24px}#squareRecordings>.header md-icon{color:#fff}#squareRecordings>.header .search-input-wrapper{position:relative}#squareRecordings>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#squareRecordings>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#squareRecordings>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#squareRecordings>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#squareRecordings>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#squareRecordings>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#squareRecordings>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#squareRecordings>.header.selected-bar .close-button-wrapper{width:244px}#squareRecordings>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#squareRecordings>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#squareRecordings>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#squareRecordings #add-squareRecording-button{position:fixed;bottom:8px;right:8px;padding:0}#squareRecordings #upload-squareRecording-button{position:fixed;bottom:8px;right:8px;padding:0}#chatQueues{position:relative}#chatQueues>.header{height:76px;min-height:76px;max-height:76px}#chatQueues>.header .logo .logo-icon{margin:0 16px 0 0}#chatQueues>.header .logo .logo-text{font-size:24px}#chatQueues>.header md-icon{color:#fff}#chatQueues>.header .search-input-wrapper{position:relative}#chatQueues>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#chatQueues>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#chatQueues>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#chatQueues>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#chatQueues>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#chatQueues>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#chatQueues>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#chatQueues>.header.selected-bar .close-button-wrapper{width:244px}#chatQueues>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#chatQueues>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#chatQueues>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#chatQueues #add-chatQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#chatQueues #upload-chatQueue-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.chatQueue-dialog{max-width:720px;width:720px}md-dialog.chatQueue-dialog md-dialog-content{display:block;position:relative}md-dialog.chatQueue-dialog md-toolbar .title{font-size:17px}md-dialog.chatQueue-dialog md-input-container textarea{min-height:150px}md-dialog.chatQueue-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.chatQueue-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.chatQueue-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatQueue-dialog .error-list{font-size:13px}md-dialog.chatQueue-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatQueue-dialog .error-list .error .message{font-weight:500}md-dialog.chatQueue-dialog .error-list .error .md-button{margin:0}md-dialog.chatQueue-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatQueue-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#chat-chatQueue .header{height:76px;min-height:76px;max-height:76px}#chat-chatQueue .header .goto-chatQueues-button{margin-right:16px}#chat-chatQueue .header .chatQueue-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#chat-chatQueue .header .chatQueue-image img{height:100%;width:auto;max-width:none}#chat-chatQueue .header .subtitle{margin:6px 0 0 0}#chat-chatQueue .chatQueue-detail-form-container{padding:24px;margin-bottom:24px}#chat-chatQueue .chatQueue-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#chat-chatQueue .chatQueue-detail-form-container .handle{cursor:move}#chat-chatQueue .chatQueue-detail-form-container md-input-container md-switch{margin:0!important}#chat-chatQueue .chatQueue-detail-form-container #chatQueue-image-uploader{position:relative}#chat-chatQueue .chatQueue-detail-form-container #chatQueue-image-uploader.dropping .drop-text{display:flex}#chat-chatQueue .chatQueue-detail-form-container #chatQueue-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#chat-chatQueue .chatQueue-detail-form-container #chatQueue-image-uploader .upload-button{margin-bottom:16px}#chat-chatQueue .chatQueue-detail-form-container #chatQueue-image-uploader .chatQueue-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#chat-chatQueue .chatQueue-detail-form-container #chatQueue-image-uploader .chatQueue-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#chat-chatQueue .chatQueue-detail-form-container #chatQueue-image-uploader .chatQueue-image .media{max-height:100%}#chat-chatQueue md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#chat-chatQueue md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#chat-chatQueue md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#chat-chatQueue md-table-container.font-size-12 td.md-cell{font-size:12px!important}#chatWebsites{position:relative}#chatWebsites>.header{height:76px;min-height:76px;max-height:76px}#chatWebsites>.header .logo .logo-icon{margin:0 16px 0 0}#chatWebsites>.header .logo .logo-text{font-size:24px}#chatWebsites>.header md-icon{color:#fff}#chatWebsites>.header .search-input-wrapper{position:relative}#chatWebsites>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#chatWebsites>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#chatWebsites>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#chatWebsites>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#chatWebsites>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#chatWebsites>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#chatWebsites>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#chatWebsites>.header.selected-bar .close-button-wrapper{width:244px}#chatWebsites>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#chatWebsites>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#chatWebsites>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#chatWebsites #add-chatWebsite-button{position:fixed;bottom:8px;right:8px;padding:0}#chatWebsites #upload-chatWebsite-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.chatWebsite-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatCannedAnswer-dialog{max-width:720px;width:720px}md-dialog.chatCannedAnswer-dialog md-dialog-content{display:block;position:relative}md-dialog.chatCannedAnswer-dialog md-toolbar .title{font-size:17px}md-dialog.chatCannedAnswer-dialog md-input-container textarea{min-height:150px}md-dialog.chatCannedAnswer-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.chatCannedAnswer-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.chatCannedAnswer-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatCannedAnswer-dialog .error-list{font-size:13px}md-dialog.chatCannedAnswer-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatCannedAnswer-dialog .error-list .error .message{font-weight:500}md-dialog.chatCannedAnswer-dialog .error-list .error .md-button{margin:0}md-dialog.chatCannedAnswer-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatCannedAnswer-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.offlineMessage-dialog{max-width:720px;width:720px}md-dialog.offlineMessage-dialog md-dialog-content{display:block;position:relative}md-dialog.offlineMessage-dialog md-toolbar .title{font-size:17px}md-dialog.offlineMessage-dialog md-input-container textarea{min-height:150px}md-dialog.offlineMessage-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.offlineMessage-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.offlineMessage-dialog .date-container{padding:16px 0 24px 0}md-dialog.offlineMessage-dialog .error-list{font-size:13px}md-dialog.offlineMessage-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.offlineMessage-dialog .error-list .error .message{font-weight:500}md-dialog.offlineMessage-dialog .error-list .error .md-button{margin:0}md-dialog.offlineMessage-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.offlineMessage-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatProactiveAction-dialog{max-width:720px;width:720px}md-dialog.chatProactiveAction-dialog md-dialog-content{display:block;position:relative}md-dialog.chatProactiveAction-dialog md-toolbar .title{font-size:17px}md-dialog.chatProactiveAction-dialog md-input-container textarea{min-height:150px}md-dialog.chatProactiveAction-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.chatProactiveAction-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.chatProactiveAction-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatProactiveAction-dialog .error-list{font-size:13px}md-dialog.chatProactiveAction-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatProactiveAction-dialog .error-list .error .message{font-weight:500}md-dialog.chatProactiveAction-dialog .error-list .error .md-button{margin:0}md-dialog.chatProactiveAction-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatProactiveAction-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#chat-chatWebsite .header{height:76px;min-height:76px;max-height:76px}#chat-chatWebsite .header .goto-chatWebsites-button{margin-right:16px}#chat-chatWebsite .header .chatWebsite-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#chat-chatWebsite .header .chatWebsite-image img{height:100%;width:auto;max-width:none}#chat-chatWebsite .header .subtitle{margin:6px 0 0 0}#chat-chatWebsite .chatWebsite-detail-form-container{padding:24px;margin-bottom:24px}#chat-chatWebsite .chatWebsite-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#chat-chatWebsite .chatWebsite-detail-form-container .handle{cursor:move}#chat-chatWebsite .chatWebsite-detail-form-container md-input-container md-switch{margin:0!important}#chat-chatWebsite .chatWebsite-detail-form-container #chatWebsite-image-uploader{position:relative}#chat-chatWebsite .chatWebsite-detail-form-container #chatWebsite-image-uploader.dropping .drop-text{display:flex}#chat-chatWebsite .chatWebsite-detail-form-container #chatWebsite-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#chat-chatWebsite .chatWebsite-detail-form-container #chatWebsite-image-uploader .upload-button{margin-bottom:16px}#chat-chatWebsite .chatWebsite-detail-form-container #chatWebsite-image-uploader .chatWebsite-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#chat-chatWebsite .chatWebsite-detail-form-container #chatWebsite-image-uploader .chatWebsite-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#chat-chatWebsite .chatWebsite-detail-form-container #chatWebsite-image-uploader .chatWebsite-image .media{max-height:100%}#chat-chatWebsite md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#chat-chatWebsite md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#chat-chatWebsite md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#chat-chatWebsite md-table-container.font-size-12 td.md-cell{font-size:12px!important}@media screen and (min-width:1921px){#chat-chatWebsite .actionAppData{width:800px!important}}@media screen and (max-width:1920px){#chat-chatWebsite .actionAppData{width:700px!important}}@media screen and (min-width:1751px) and (max-width:1919px){#chat-chatWebsite .actionAppData{width:600px!important}}@media screen and (min-width:1601px) and (max-width:1750px){#chat-chatWebsite .actionAppData{width:500px!important}}@media screen and (min-width:1537px) and (max-width:1600px){#chat-chatWebsite .actionAppData{width:450px!important}}@media screen and (min-width:1281px) and (max-width:1536px){#chat-chatWebsite .actionAppData{width:300px!important}}@media screen and (max-width:1280px){#chat-chatWebsite .actionAppData{width:150px!important}}@media screen and (max-width:960px){#chat-chatWebsite .actionAppData{width:80px!important}}#realtime>.content .blink{animation:blinker 2s linear infinite}#realtime>.content .avatar-wrapper{position:relative}#realtime>.content .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .search-input-wrapper{position:relative;margin-left:20px}#realtime>.content .search-input-wrapper label{padding:6px;cursor:pointer}#realtime>.content .search-input-wrapper md-input-container{padding-top:20px}#realtime>.content .main .labels{padding:8px 16px}#realtime>.content .main .labels .label{margin:0 0 2px 4px;padding:2px 5px;font-size:11px;white-space:nowrap;border-radius:2px}#realtime>.content .main .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .main .avatar-wrapper{position:relative}#realtime>.content .main .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .custom-column{padding:0 24px!important}@keyframes blinker{50%{opacity:0}}#companies{position:relative}#companies>.header{height:76px;min-height:76px;max-height:76px}#companies>.header .logo .logo-icon{margin:0 16px 0 0}#companies>.header .logo .logo-text{font-size:24px}#companies>.header md-icon{color:#fff}#companies>.header .search-input-wrapper{position:relative}#companies>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#companies>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#companies>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#companies>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#companies>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#companies>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#companies>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#companies>.header.selected-bar .close-button-wrapper{width:244px}#companies>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#companies>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#companies>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#companies #add-company-button{position:fixed;bottom:8px;right:8px;padding:0}#companies #upload-company-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.company-dialog{max-width:720px;width:720px}md-dialog.company-dialog md-dialog-content{display:block;position:relative}md-dialog.company-dialog md-toolbar .title{font-size:17px}md-dialog.company-dialog md-input-container textarea{min-height:150px}md-dialog.company-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.company-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.company-dialog .date-container{padding:16px 0 24px 0}md-dialog.company-dialog .error-list{font-size:13px}md-dialog.company-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.company-dialog .error-list .error .message{font-weight:500}md-dialog.company-dialog .error-list .error .md-button{margin:0}md-dialog.company-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.company-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#contactmanager-company .header{height:76px;min-height:76px;max-height:76px}#contactmanager-company .header .goto-companies-button{margin-right:16px}#contactmanager-company .header .company-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#contactmanager-company .header .company-image img{height:100%;width:auto;max-width:none}#contactmanager-company .header .subtitle{margin:6px 0 0 0}#contactmanager-company .company-detail-form-container{padding:24px;margin-bottom:24px}#contactmanager-company .company-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#contactmanager-company .company-detail-form-container .handle{cursor:move}#contactmanager-company .company-detail-form-container md-input-container md-switch{margin:0!important}#contactmanager-company .company-detail-form-container #company-image-uploader{position:relative}#contactmanager-company .company-detail-form-container #company-image-uploader.dropping .drop-text{display:flex}#contactmanager-company .company-detail-form-container #company-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#contactmanager-company .company-detail-form-container #company-image-uploader .upload-button{margin-bottom:16px}#contactmanager-company .company-detail-form-container #company-image-uploader .company-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#contactmanager-company .company-detail-form-container #company-image-uploader .company-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#contactmanager-company .company-detail-form-container #company-image-uploader .company-image .media{max-height:100%}#contactmanager-company md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#contactmanager-company md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#contactmanager-company md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#contactmanager-company md-table-container.font-size-12 td.md-cell{font-size:12px!important}#contacts{position:relative}#contacts>.header{height:76px;min-height:76px;max-height:76px}#contacts>.header .logo .logo-icon{margin:0 16px 0 0}#contacts>.header .logo .logo-text{font-size:24px}#contacts>.header md-icon{color:#fff}#contacts>.header .search-input-wrapper{position:relative}#contacts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#contacts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#contacts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#contacts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#contacts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#contacts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#contacts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#contacts>.header.selected-bar .close-button-wrapper{width:244px}#contacts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#contacts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#contacts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#contacts #add-contact-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.cm-contact-dialog{max-width:720px;width:720px}md-dialog.cm-contact-dialog md-dialog-content{display:block;position:relative}md-dialog.cm-contact-dialog md-toolbar .title{font-size:17px}md-dialog.cm-contact-dialog md-input-container textarea{min-height:150px}md-dialog.cm-contact-dialog .date-container{padding:16px 0 24px 0}md-dialog.cm-contact-dialog .error-list{font-size:13px}md-dialog.cm-contact-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.cm-contact-dialog .error-list .error .message{font-weight:500}md-dialog.cm-contact-dialog .error-list .error .md-button{margin:0}md-dialog.cm-contact-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.cm-contact-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.cm-contact-dialog{max-width:720px;width:720px}md-dialog.cm-contact-dialog md-dialog-content{display:block;position:relative}md-dialog.cm-contact-dialog md-toolbar .title{font-size:17px}md-dialog.cm-contact-dialog md-input-container textarea{min-height:150px}md-dialog.cm-contact-dialog .date-container{padding:16px 0 24px 0}md-dialog.cm-contact-dialog .error-list{font-size:13px}md-dialog.cm-contact-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.cm-contact-dialog .error-list .error .message{font-weight:500}md-dialog.cm-contact-dialog .error-list .error .md-button{margin:0}md-dialog.cm-contact-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.cm-contact-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.hopper-dialog{max-width:720px;width:720px}md-dialog.hopper-dialog md-dialog-content{display:block;position:relative}md-dialog.hopper-dialog md-toolbar .title{font-size:17px}md-dialog.hopper-dialog md-input-container textarea{min-height:150px}md-dialog.hopper-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.hopper-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.hopper-dialog .date-container{padding:16px 0 24px 0}md-dialog.hopper-dialog .error-list{font-size:13px}md-dialog.hopper-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.hopper-dialog .error-list .error .message{font-weight:500}md-dialog.hopper-dialog .error-list .error .md-button{margin:0}md-dialog.hopper-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.hopper-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#cm-contact .pointer{cursor:pointer}#cm-contact .header{height:76px;min-height:76px;max-height:76px}#cm-contact .header .goto-contacts-button{margin-right:16px}#cm-contact .header .contact-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#cm-contact .header .contact-image img{height:100%;width:auto;max-width:none}#cm-contact .header .subtitle{margin:6px 0 0 0}#cm-contact .contact-detail-form-container{padding:24px;margin-bottom:24px}#cm-contact .contact-detail-form-container md-input-container:not(.md-input-invalid)>md-icon.email{color:green}#cm-contact .contact-detail-form-container md-input-container:not(.md-input-invalid)>md-icon.firstname{color:#1e90ff}#cm-contact .contact-detail-form-container md-input-container.md-input-invalid>md-icon.email,#cm-contact .contact-detail-form-container md-input-container.md-input-invalid>md-icon.firstname{color:red}#cm-contact .contact-detail-form-container .hint{position:absolute;left:2px;right:auto;bottom:7px;font-size:10px;line-height:14px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.import-dialog{max-width:720px;width:720px}md-dialog.import-dialog md-dialog-content{display:block;position:relative}md-dialog.import-dialog md-toolbar .title{font-size:17px}md-dialog.import-dialog md-input-container textarea{min-height:150px}md-dialog.import-dialog .date-container{padding:16px 0 24px 0}md-dialog.import-dialog .error-list{font-size:13px}md-dialog.import-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.import-dialog .error-list .error .message{font-weight:500}md-dialog.import-dialog .error-list .error .md-button{margin:0}md-dialog.import-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.import-dialog .error-list .info{background-color:rgba(24,160,135,.08);border:1px solid rgba(24,160,135,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.import-dialog .error-list .info .message{font-weight:500}md-dialog.import-dialog .error-list .info .md-button{margin:0}md-dialog.import-dialog .error-list .info:last-child{margin-bottom:30px}md-dialog.import-dialog .contact-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}md-dialog.import-dialog .contact-image img{height:100%;width:auto;max-width:none}md-dialog.import-dialog .contact-image .media{max-height:100%}md-dialog.import-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.cm-contact-dialog{max-width:720px;width:720px}md-dialog.cm-contact-dialog md-dialog-content{display:block;position:relative}md-dialog.cm-contact-dialog md-toolbar .title{font-size:17px}md-dialog.cm-contact-dialog md-input-container textarea{min-height:150px}md-dialog.cm-contact-dialog .date-container{padding:16px 0 24px 0}md-dialog.cm-contact-dialog .error-list{font-size:13px}md-dialog.cm-contact-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.cm-contact-dialog .error-list .error .message{font-weight:500}md-dialog.cm-contact-dialog .error-list .error .md-button{margin:0}md-dialog.cm-contact-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.cm-contact-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.globalCustomField-dialog{max-width:720px;width:720px}md-dialog.globalCustomField-dialog md-dialog-content{display:block;position:relative}md-dialog.globalCustomField-dialog md-toolbar .title{font-size:17px}md-dialog.globalCustomField-dialog md-input-container textarea{min-height:150px}md-dialog.globalCustomField-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.globalCustomField-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.globalCustomField-dialog .date-container{padding:16px 0 24px 0}md-dialog.globalCustomField-dialog .error-list{font-size:13px}md-dialog.globalCustomField-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.globalCustomField-dialog .error-list .error .message{font-weight:500}md-dialog.globalCustomField-dialog .error-list .error .md-button{margin:0}md-dialog.globalCustomField-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.globalCustomField-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#globalCustomFields{position:relative}#globalCustomFields>.header{height:76px;min-height:76px;max-height:76px}#globalCustomFields>.header .logo .logo-icon{margin:0 16px 0 0}#globalCustomFields>.header .logo .logo-text{font-size:24px}#globalCustomFields>.header md-icon{color:#fff}#globalCustomFields>.header .search-input-wrapper{position:relative}#globalCustomFields>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#globalCustomFields>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#globalCustomFields>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#globalCustomFields>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#globalCustomFields>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#globalCustomFields>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#globalCustomFields>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#globalCustomFields>.header.selected-bar .close-button-wrapper{width:244px}#globalCustomFields>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#globalCustomFields>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#globalCustomFields>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#globalCustomFields #add-globalCustomField-button{position:fixed;bottom:8px;right:8px;padding:0}#globalCustomFields #upload-globalCustomField-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.list-dialog{max-width:720px;width:720px}md-dialog.list-dialog md-dialog-content{display:block;position:relative}md-dialog.list-dialog md-toolbar .title{font-size:17px}md-dialog.list-dialog md-input-container textarea{min-height:150px}md-dialog.list-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.list-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.list-dialog .date-container{padding:16px 0 24px 0}md-dialog.list-dialog .error-list{font-size:13px}md-dialog.list-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.list-dialog .error-list .error .message{font-weight:500}md-dialog.list-dialog .error-list .error .md-button{margin:0}md-dialog.list-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.list-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.customField-dialog{max-width:720px;width:720px}md-dialog.customField-dialog md-dialog-content{display:block;position:relative}md-dialog.customField-dialog md-toolbar .title{font-size:17px}md-dialog.customField-dialog md-input-container textarea{min-height:150px}md-dialog.customField-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.customField-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.customField-dialog .date-container{padding:16px 0 24px 0}md-dialog.customField-dialog .error-list{font-size:13px}md-dialog.customField-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.customField-dialog .error-list .error .message{font-weight:500}md-dialog.customField-dialog .error-list .error .md-button{margin:0}md-dialog.customField-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.customField-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#contactmanager-list .header{height:76px;min-height:76px;max-height:76px}#contactmanager-list .header .goto-lists-button{margin-right:16px}#contactmanager-list .header .list-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#contactmanager-list .header .list-image img{height:100%;width:auto;max-width:none}#contactmanager-list .header .subtitle{margin:6px 0 0 0}#contactmanager-list .list-detail-form-container{padding:24px;margin-bottom:24px}#contactmanager-list .list-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#contactmanager-list .list-detail-form-container .handle{cursor:move}#contactmanager-list .list-detail-form-container md-input-container md-switch{margin:0!important}#contactmanager-list .list-detail-form-container #list-image-uploader{position:relative}#contactmanager-list .list-detail-form-container #list-image-uploader.dropping .drop-text{display:flex}#contactmanager-list .list-detail-form-container #list-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#contactmanager-list .list-detail-form-container #list-image-uploader .upload-button{margin-bottom:16px}#contactmanager-list .list-detail-form-container #list-image-uploader .list-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#contactmanager-list .list-detail-form-container #list-image-uploader .list-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#contactmanager-list .list-detail-form-container #list-image-uploader .list-image .media{max-height:100%}#contactmanager-list md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#contactmanager-list md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#contactmanager-list md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#contactmanager-list md-table-container.font-size-12 td.md-cell{font-size:12px!important}#lists{position:relative}#lists>.header{height:76px;min-height:76px;max-height:76px}#lists>.header .logo .logo-icon{margin:0 16px 0 0}#lists>.header .logo .logo-text{font-size:24px}#lists>.header md-icon{color:#fff}#lists>.header .search-input-wrapper{position:relative}#lists>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#lists>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#lists>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#lists>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#lists>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#lists>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#lists>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#lists>.header.selected-bar .close-button-wrapper{width:244px}#lists>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#lists>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#lists>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#lists #add-list-button{position:fixed;bottom:8px;right:8px;padding:0}#lists #upload-list-button{position:fixed;bottom:8px;right:8px;padding:0}#dashboard-custom .filter-header{background-image:url(/assets/images/backgrounds/header-bg.png);color:#fff}#agent-general{position:fixed;width:100%;height:100%}#agent-general .agent-content{position:fixed;top:36px;bottom:0;left:0;right:0}#agent-general .badge{min-width:20px;height:20px;line-height:20px;padding:0 7px;font-size:11px;font-weight:700;border-radius:20px;transition:opacity .2s ease-in-out .1s}#agent-general .table-header{background-image:url(/assets/images/backgrounds/header-bg.png);color:#fff}#agent-general .table-header .md-toolbar-tools div md-select .md-select-value.md-select-placeholder{color:#fff}#agent-general .table-header .md-toolbar-tools div md-select[disabled] .md-select-value.md-select-placeholder{color:#fff}#agent-general .table-header .md-toolbar-tools div md-select[disabled] .md-select-value.md-select-placeholder .md-select-icon{display:none}#agent-general .table-header ms-quick-filter .quick-filter-date-clear-button{color:#fff}#agent-general .tooltip-preview{position:relative;display:inline-block;text-decoration:underline}#agent-general .tooltip-preview .tooltip-preview-text{visibility:hidden;width:500px;position:fixed;white-space:pre-line;left:28%;z-index:9999}#agent-general .tooltip-preview:hover .tooltip-preview-text{visibility:visible}#agent-general .reload-list md-icon{color:#fff}#agent-general .advanced-search md-icon{color:#fff}#agent-general .create-new md-icon{color:#fff}#agent-general div.draft-manager-bar{background-color:#f5f5f5;position:sticky;height:34px;bottom:0;border-top:1px solid #e0e0e0}#agent-general div.draft-manager-bar ms-tab-scroll{overflow:hidden}#agent-general div.draft-manager-bar ms-tab-scroll div.draft-manager-tab{height:34px;border-right:1px solid #e0e0e0}#agent-general td.width-5,#agent-general th.width-5{width:5px!important;min-width:auto!important;max-width:none!important}#agent-general td.width-10,#agent-general th.width-10{width:10px!important;min-width:auto!important;max-width:none!important}#agent-general td.width-15,#agent-general th.width-15{width:15px!important;min-width:auto!important;max-width:none!important}#agent-general td.no-padding,#agent-general th.no-padding{padding:0!important}#agent-general span.contact-text{width:100px!important}#agent-general span.subject-text{width:300px!important}#agent-general span.no-margin-bottom{margin-bottom:0!important}#agent-general span.no-margin-top{margin-top:0!important}#agent-general md-table-container.interactions-list thead tr th:not(.no-padding):not(.id-header){padding:0 20px 0 0!important}#agent-general md-table-container.interactions-list tbody tr td:not(.no-padding):not(.actions-padding):not(.id){padding:0 20px 0 0!important}#agent-general td.actions-padding{padding:0 8px 0 0!important}#agent-general md-toolbar.md-table-toolbar[disabled]{pointer-events:none}#agent-general md-toolbar.md-table-toolbar[disabled] ms-search-bar{opacity:.7}#agent-general md-toolbar.md-table-toolbar[disabled] ms-quick-filter{opacity:.7}#agent-general md-toolbar.md-table-toolbar[disabled] button.advanced-search,#agent-general md-toolbar.md-table-toolbar[disabled] button.interaction-reload{opacity:.7}#agent-general md-card.call-info-card{min-width:220px}#agent-general md-card.call-info-card md-card-content,#agent-general md-card.call-info-card md-card-header{padding:10px!important}#agent-general md-card.call-info-card button.reload-button{padding:0;height:22px;width:auto}@media screen and (max-width:1280px){#agent-general span.contact-text{width:100px!important}#agent-general span.subject-text{width:350px!important}}@media screen and (max-width:1920px){#agent-general span.contact-text{width:150px!important}#agent-general span.subject-text{width:500px!important}}#agent-general-dialog{position:fixed;width:100%;height:100%}#agent-general-dialog .agent-content{position:fixed;top:0;bottom:0;left:0;right:0}body .md-select-menu-container{z-index:110}.md-toolbar-tools{font-size:12px}div.toolbar-quick-filter[disabled]{pointer-events:none;opacity:.7}md-dialog.agent-dialog{max-width:720px;width:720px}md-dialog.agent-dialog md-dialog-content{display:block;position:relative}md-dialog.agent-dialog md-toolbar .title{font-size:17px}md-dialog.agent-dialog md-input-container textarea{min-height:150px}md-dialog.agent-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.agent-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.agent-dialog .date-container{padding:16px 0 24px 0}md-dialog.agent-dialog .error-list{font-size:13px}md-dialog.agent-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.agent-dialog .error-list .error .message{font-weight:500}md-dialog.agent-dialog .error-list .error .md-button{margin:0}md-dialog.agent-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.agent-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.agent-dialog{max-width:720px;width:720px}md-dialog.agent-dialog md-dialog-content{display:block;position:relative}md-dialog.agent-dialog md-toolbar .title{font-size:17px}md-dialog.agent-dialog md-input-container textarea{min-height:150px}md-dialog.agent-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.agent-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.agent-dialog .date-container{padding:16px 0 24px 0}md-dialog.agent-dialog .error-list{font-size:13px}md-dialog.agent-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.agent-dialog .error-list .error .message{font-weight:500}md-dialog.agent-dialog .error-list .error .md-button{margin:0}md-dialog.agent-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.agent-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.contact-trigger-dialog{max-width:720px;width:720px}md-dialog.contact-trigger-dialog md-dialog-content{display:block;position:relative;max-height:400px;height:400px}md-dialog.contact-trigger-dialog md-toolbar{background-image:url(/assets/images/backgrounds/header-bg.png);background-position:top}md-dialog.contact-trigger-dialog md-toolbar .title{font-size:17px}md-dialog.contact-trigger-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}md-dialog.contact-trigger-dialog md-dialog-actions button.select-button{position:absolute;right:0;margin-right:16px}md-dialog md-grid-list.one-row-layout{height:150px;max-height:150px}md-dialog md-grid-list.two-rows-layout{height:300px;max-height:300px}md-dialog md-card.contact-info:hover{background-color:#e9eef1ad}@media screen and (max-width:1280px){md-dialog.contact-trigger-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.contact-trigger-dialog{width:90%}}md-dialog.agent-dialog{max-width:720px;width:720px}md-dialog.agent-dialog md-dialog-content{display:block;position:relative}md-dialog.agent-dialog md-toolbar .title{font-size:17px}md-dialog.agent-dialog md-input-container textarea{min-height:150px}md-dialog.agent-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.agent-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.agent-dialog .date-container{padding:16px 0 24px 0}md-dialog.agent-dialog .error-list{font-size:13px}md-dialog.agent-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.agent-dialog .error-list .error .message{font-weight:500}md-dialog.agent-dialog .error-list .error .md-button{margin:0}md-dialog.agent-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.agent-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.details-dialog{max-width:500px;width:500px}md-dialog.details-dialog md-dialog-content{display:block;position:relative}md-dialog.details-dialog md-toolbar .title{font-size:17px}md-dialog.details-dialog md-input-container textarea{min-height:150px}md-dialog.details-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.details-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.details-dialog .date-container{padding:16px 0 24px 0}md-dialog.details-dialog .error-list{font-size:13px}md-dialog.details-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.details-dialog .error-list .error .message{font-weight:500}md-dialog.details-dialog .error-list .error .md-button{margin:0}md-dialog.details-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.details-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#interaction-app .tags{font-size:12px}#interaction-app .tags .tag{border-radius:2px;padding:3px 8px;background-color:rgba(0,0,0,.08)}#interaction-app .tags .tag .tag-color{width:8px;height:8px;margin-right:8px;border-radius:50%}#interaction-app .content-card{position:relative;height:100%}#interaction-app .content-card .interaction{background:linear-gradient(to bottom,rgba(255,255,255,.8) 0,rgba(255,255,255,.6) 20%,rgba(255,255,255,.8))}#interaction-app .content-card .interaction .avatar-small{width:30px;min-width:30px;height:30px;line-height:30px;margin:0 8px 0 0;border-radius:50%;font-size:17px;font-weight:500;text-align:center;color:#fff}#interaction-app .content-card .interaction .interaction-agents{min-height:40px;background-color:#f3f4f5;color:rgba(0,0,0,.87);border-bottom:1px solid rgba(0,0,0,.08)}#interaction-app .content-card .interaction .interaction-agents .responsive-interactions-button{padding:0}#interaction-app .content-card .interaction .interaction-agents .interaction-contact{cursor:pointer}#interaction-app .content-card .interaction .interaction-agents .interaction-contact .avatar{margin-right:16px}#interaction-app .content-card .interaction .interaction-toolbar{min-height:64px;background-color:#f3f4f5;color:rgba(0,0,0,.87);border-bottom:1px solid rgba(0,0,0,.08)}#interaction-app .content-card .interaction .interaction-toolbar md-icon{color:rgba(0,0,0,.87)}#interaction-app .content-card .interaction .interaction-toolbar .responsive-interactions-button{padding:0}#interaction-app .content-card .interaction .interaction-toolbar .interaction-contact{cursor:pointer}#interaction-app .content-card .interaction .interaction-toolbar .interaction-contact .avatar{margin-right:16px}#interaction-app .content-card .interaction .cannedarea{margin-right:7px;font-size:14px;border:1px solid #ccc;border-radius:3px;align-self:stretch}#interaction-app .content-card .interaction .cannedarea md-autocomplete-wrap{padding:0 1em}#interaction-app .content-card .interaction .emojionearea{margin-right:7px}#interaction-app .content-card .interaction #interaction-content{background:url(/assets/images/patterns/circles-light.png) repeat}#interaction-app .content-card .interaction #interaction-content .message-row .mail-content{padding:24px 0}#interaction-app .content-card .interaction #interaction-content .message-row .mail-content .subject{color:rgba(0,0,0,.54)}#interaction-app .content-card .interaction #interaction-content .message-row .mail-content .subject .subject-text{margin-right:4px;text-transform:lowercase}#interaction-app .content-card .interaction #interaction-content .message-row .mail-content .info{padding-bottom:16px}#interaction-app .content-card .interaction #interaction-content .message-row .mail-content .info .avatar{margin-right:16px}#interaction-app .content-card .interaction #interaction-content .message-row .mail-content .info .name{margin-right:8px;font-weight:500}#interaction-app .content-card .interaction #interaction-content .message-row .mail-content .info .toggle-details{padding-top:16px;cursor:pointer;font-weight:500}#interaction-app .content-card .interaction #interaction-content .message-row .mail-content .info .details{padding-top:8px}#interaction-app .content-card .interaction #interaction-content .message-row .mail-content .info .details .title{font-weight:500;margin-right:6px}#interaction-app .content-card .interaction #interaction-content .message-row .mail-content .info .details .detail{color:rgba(0,0,0,.54)}#interaction-app .content-card .interaction #interaction-content .message-row .bubble{position:relative;padding:6px 7px 8px 9px;background-color:#fff;border:1px solid #dcdfe1;border-radius:6px;word-break:break-word}#interaction-app .content-card .interaction #interaction-content .message-row .bubble:after,#interaction-app .content-card .interaction #interaction-content .message-row .bubble:before{content:' ';position:absolute;width:0;height:0}#interaction-app .content-card .interaction #interaction-content .message-row .bubble:after{left:-7px;right:auto;top:0;bottom:auto;border:11px solid;border-color:#fff transparent transparent transparent}#interaction-app .content-card .interaction #interaction-content .message-row .bubble:before{left:-9px;right:auto;top:-1px;bottom:auto;border:8px solid;border-color:#dcdfe1 transparent transparent transparent}#interaction-app .content-card .interaction #interaction-content .message-row .bubble .time{font-size:11px;margin-top:0;text-align:right}#interaction-app .content-card .interaction #interaction-content .message-row .bubble .message{white-space:pre-wrap}#interaction-app .content-card .interaction #interaction-content .message-row .bubble .message span{word-break:break-all}#interaction-app .content-card .interaction #interaction-content .message-row.in{padding:5px}#interaction-app .content-card .interaction #interaction-content .message-row.in .avatar{margin:0 16px 0 0}#interaction-app .content-card .interaction #interaction-content .message-row.in-right-aligned{padding:5px;align-items:flex-end}#interaction-app .content-card .interaction #interaction-content .message-row.in-right-aligned .avatar{order:2;margin:0 0 0 16px}#interaction-app .content-card .interaction #interaction-content .message-row.in-right-aligned .bubble{margin-left:auto;order:1}#interaction-app .content-card .interaction #interaction-content .message-row.in-right-aligned .bubble:after{right:-9px;left:auto;top:auto;bottom:0;border-color:transparent transparent #e8f5e9 transparent}#interaction-app .content-card .interaction #interaction-content .message-row.in-right-aligned .bubble:before{right:-11px;left:auto;-moz-transform:scaleX(-1);-o-transform:scaleX(-1);-webkit-transform:scaleX(-1);transform:scaleX(-1)}#interaction-app .content-card .interaction #interaction-content .message-row.out{padding:5px;align-items:flex-end}#interaction-app .content-card .interaction #interaction-content .message-row.out .avatar{order:2;margin:0 0 0 16px}#interaction-app .content-card .interaction #interaction-content .message-row.out .bubble{margin-left:auto;background-color:#e8f5e9;border:1px solid #dfebe0;order:1}#interaction-app .content-card .interaction #interaction-content .message-row.out .bubble:after{right:-7px;left:auto;top:auto;bottom:0;border-color:transparent transparent #e8f5e9 transparent}#interaction-app .content-card .interaction #interaction-content .message-row.out .bubble:before{right:-9px;left:auto;top:auto;bottom:-1px;border-color:transparent transparent #dfebe0 transparent}#interaction-app .content-card .interaction #interaction-content .message-row.out-left-aligned{padding:5px}#interaction-app .content-card .interaction #interaction-content .message-row.out-left-aligned .avatar{order:1;margin:0 16px 0 0}#interaction-app .content-card .interaction #interaction-content .message-row.out-left-aligned .bubble{background-color:#e8f5e9;border:1px solid #dfebe0;order:2}#interaction-app .content-card .interaction #interaction-content .message-row.out-left-aligned .bubble:after{right:-7px;left:auto;top:auto;bottom:0;border-color:transparent transparent #e8f5e9 transparent}#interaction-app .content-card .interaction #interaction-content .message-row.out-left-aligned .bubble:before{right:-9px;left:auto;top:auto;bottom:-1px;border-color:transparent transparent #dfebe0 transparent}#interaction-app .content-card .interaction .interaction-footer{min-height:64px;max-height:180px;background-color:#f3f4f5;color:rgba(0,0,0,.87);border-top:1px solid rgba(0,0,0,.08);padding:8px 8px 8px 16px}#interaction-app .content-card .interaction .interaction-footer .reply-form md-input-container{margin:0;padding-right:16px}#interaction-app .content-card .interaction .interaction-footer .reply-form md-input-container textarea{overflow:auto;max-height:80px;transition:height .2s ease}#interaction-app .content-card .interaction .interaction-footer .reply-form md-input-container textarea.grow{height:80px}#interaction-app .content-card .interaction .interaction-footer .reply-form md-input-container .md-errors-spacer{display:none}#interaction-app .content-card .interaction .interaction-footer .reply-form .md-button{margin:0}#interaction-app .content-card .info md-list-item{min-height:40px;height:52px}#interaction-app .content-card .start-point{background:linear-gradient(to bottom,rgba(255,255,255,.8) 0,rgba(255,255,255,.6) 20%,rgba(255,255,255,.8))}#interaction-app .content-card .start-point .big-circle{background:linear-gradient(to bottom,rgba(255,255,255,.8) 0,rgba(255,255,255,.6) 20%,rgba(255,255,255,.8));border-radius:50%;width:300px;height:300px;line-height:300px;text-align:center}#interaction-app .content-card .start-point .app-title{font-weight:500;font-size:32px;margin:12px 0}#interaction-app .content-card .start-point .secondary-text{font-size:16px}#interaction-app .content-card .sidenav md-toolbar{border-bottom:1px solid rgba(0,0,0,.08)}#interaction-app .content-card .sidenav md-toolbar .md-toolbar-tools-bottom .search{height:36px;line-height:36px;padding:8px;background:#fff;font-size:13px}#interaction-app .content-card .sidenav md-toolbar .md-toolbar-tools-bottom .search .icon{margin:0;color:rgba(0,0,0,.54)}#interaction-app .content-card .sidenav md-toolbar .md-toolbar-tools-bottom .search input{padding-left:12px;height:36px;color:rgba(0,0,0,.54)}#interaction-app .content-card .sidenav md-list.contact-list,#interaction-app .content-card .sidenav md-list.interaction-list{position:relative;transition:all .2s ease-out}#interaction-app .content-card .sidenav md-list.contact-list .subheader,#interaction-app .content-card .sidenav md-list.contact-list md-list-item,#interaction-app .content-card .sidenav md-list.interaction-list .subheader,#interaction-app .content-card .sidenav md-list.interaction-list md-list-item{position:absolute;right:0;left:0;width:100%;transition:transform .2s ease-out;background:#fff;will-change:transform}#interaction-app .content-card .sidenav md-list.contact-list .subheader.ng-leave,#interaction-app .content-card .sidenav md-list.contact-list md-list-item.ng-leave,#interaction-app .content-card .sidenav md-list.interaction-list .subheader.ng-leave,#interaction-app .content-card .sidenav md-list.interaction-list md-list-item.ng-leave{transform:translateY(0);display:none}#interaction-app .content-card .sidenav md-list.contact-list .subheader.ng-leave.ng-leave-active,#interaction-app .content-card .sidenav md-list.contact-list md-list-item.ng-leave.ng-leave-active,#interaction-app .content-card .sidenav md-list.interaction-list .subheader.ng-leave.ng-leave-active,#interaction-app .content-card .sidenav md-list.interaction-list md-list-item.ng-leave.ng-leave-active{transform:translateY(-100%)}#interaction-app .content-card .sidenav md-list.contact-list .subheader.ng-hide,#interaction-app .content-card .sidenav md-list.contact-list md-list-item.ng-hide,#interaction-app .content-card .sidenav md-list.interaction-list .subheader.ng-hide,#interaction-app .content-card .sidenav md-list.interaction-list md-list-item.ng-hide{display:none}#interaction-app .content-card .sidenav md-list.contact-list .subheader.ng-hide-add-active,#interaction-app .content-card .sidenav md-list.contact-list .subheader.ng-hide-remove-active,#interaction-app .content-card .sidenav md-list.contact-list md-list-item.ng-hide-add-active,#interaction-app .content-card .sidenav md-list.contact-list md-list-item.ng-hide-remove-active,#interaction-app .content-card .sidenav md-list.interaction-list .subheader.ng-hide-add-active,#interaction-app .content-card .sidenav md-list.interaction-list .subheader.ng-hide-remove-active,#interaction-app .content-card .sidenav md-list.interaction-list md-list-item.ng-hide-add-active,#interaction-app .content-card .sidenav md-list.interaction-list md-list-item.ng-hide-remove-active{display:block;transition-property:all}#interaction-app .content-card .sidenav md-list.contact-list .subheader,#interaction-app .content-card .sidenav md-list.interaction-list .subheader{padding-left:16px;font-size:20px;font-weight:300;height:88px;line-height:88px}#interaction-app .content-card .sidenav .no-results-message{position:absolute;width:100%;height:88px;padding:16px;background:#fff;font-size:15px;font-weight:400}#interaction-app .avatar-wrapper{position:relative}#interaction-app .avatar-wrapper .avatar{margin-top:0;margin-bottom:0}#interaction-app .status{position:absolute;top:28px;left:28px;border-radius:50%}#interaction-app .status.online{color:#4caf50}#interaction-app .status.online:before{content:'\e709'}#interaction-app .status.do-not-disturb{color:#f44336}#interaction-app .status.do-not-disturb:before{content:'\e912'}#interaction-app .status.away{background-color:#ffc107;color:#fff}#interaction-app .status.away:before{content:'\e727'}#interaction-app .status.offline{color:#4caf50;background-color:#fff}#interaction-app .status.offline:before{content:'\e704'}#interaction-app .editable-wrap{position:relative}#interaction-app .editable-wrap .editable-controls{display:flex;flex-direction:row;align-items:center;width:100%}#interaction-app .editable-wrap .editable-controls .editable-input{width:inherit;background-color:#fff;padding:8px;border:1px solid rgba(0,0,0,.12)}#interaction-app .editable-wrap .editable-controls .editable-buttons{display:inherit}#interaction-app .editable-wrap .editable-controls .editable-buttons .md-button{margin:0}#interaction-app .editable-wrap .editable-controls .editable-buttons .md-button:first-of-type{padding-right:0}#interaction-app .editable-wrap .editable-controls .editable-buttons .md-button .icon-cancel{color:rgba(0,0,0,.32)}#interaction-app .editable-click{cursor:pointer;text-decoration:none;color:inherit;border-bottom:none}#interaction-app .emoji-picker-icon{right:5px;cursor:pointer}#interaction-app .input-show-hide{transition:all linear .5s}#interaction-app .input-show-hide.ng-hide{opacity:0}#interaction-app div.interaction-reply-button-container{display:inline;padding-bottom:14px}#timeline{position:relative;height:auto;padding-bottom:30px}#timeline:before{display:block;position:absolute;z-index:10;content:'';width:2px;background:rgba(0,0,0,.08);top:0;left:50%;bottom:0;margin-left:-1px}#timeline .ms-timeline-item{overflow:hidden;position:relative;z-index:20;width:100%;margin:0 auto;max-width:1200px}#timeline .ms-timeline-item .timeline-card{order:1}#timeline .ms-timeline-item .timeline-card .interaction .header .avatar .image{display:block;width:40px;height:40px;border-radius:20px}#timeline .ms-timeline-item .timeline-card .interaction .media .image{width:100%}#timeline .ms-timeline-item .timeline-point{position:absolute;width:40px;height:40px;line-height:40px;text-align:center;border-radius:50%;left:50%;margin:16px 0 0 -28px;order:2}#timeline .ms-timeline-item .timeline-point md-icon{color:#fff}#timeline .ms-timeline-item .timeline-detail{flex:50% 0 0;padding-top:28px;order:3}#timeline .ms-timeline-item .timeline-detail .time{font-size:15px;padding-left:68px}#timeline .ms-timeline-item .timeline-detail .event{color:rgba(0,0,0,.54);padding-left:68px}#timeline .ms-timeline-item:nth-child(odd) .timeline-card{flex-direction:row-reverse}#timeline .ms-timeline-item:nth-child(even) .timeline-card{order:3;padding-right:0}#timeline .ms-timeline-item:nth-child(even) .timeline-card ms-card{padding-left:84px}#timeline .ms-timeline-item:nth-child(even) .timeline-detail{order:1;padding-left:0;text-align:right}#timeline .ms-timeline-item:nth-child(even) .timeline-detail .event,#timeline .ms-timeline-item:nth-child(even) .timeline-detail .time{padding-right:68px}#timeline .ms-timeline-item:first-child{padding-top:15px}#timeline .ms-timeline-item.animate .timeline-card{animation:slide-in-left .4s}#timeline .ms-timeline-item.animate .timeline-point{animation:slide-in-bottom .4s}#timeline .ms-timeline-item.animate .timeline-detail{animation:slide-in-right .4s}#timeline .ms-timeline-item:nth-child(even).animate .timeline-card{animation:slide-in-right .4s}#timeline .ms-timeline-item:nth-child(even).animate .timeline-detail{animation:slide-in-left .4s}#timeline.timeline-left .ms-timeline-item .timeline-card{order:1}#timeline.timeline-left .ms-timeline-item .timeline-card ms-card{padding-right:68px;padding-left:0;margin-left:auto}#timeline.timeline-left .ms-timeline-item .timeline-detail{order:3;text-align:left}#timeline.timeline-left .ms-timeline-item.animate .timeline-card{animation:slide-in-left .4s}#timeline.timeline-left .ms-timeline-item.animate .timeline-detail{animation:slide-in-right .4s}#timeline.timeline-right .ms-timeline-item .timeline-card{order:3}#timeline.timeline-right .ms-timeline-item .timeline-card ms-card{padding-left:68px;padding-right:0;margin-right:auto}#timeline.timeline-right .ms-timeline-item .timeline-detail{order:1;text-align:right}#timeline.timeline-right .ms-timeline-item .timeline-detail .event,#timeline.timeline-right .ms-timeline-item .timeline-detail .time{padding-right:68px;padding-left:0}#timeline.timeline-right .ms-timeline-item.animate .timeline-card{animation:slide-in-right .4s}#timeline.timeline-right .ms-timeline-item.animate .timeline-detail{animation:slide-in-left .4s}@media screen and (max-width:1280px){#timeline .ms-timeline-item,#timeline.timeline-left .ms-timeline-item,#timeline.timeline-right .ms-timeline-item{display:block}#timeline .ms-timeline-item .timeline-point,#timeline.timeline-left .ms-timeline-item .timeline-point,#timeline.timeline-right .ms-timeline-item .timeline-point{position:relative;left:auto;margin:0 auto 16px auto;padding:0}#timeline .ms-timeline-item .timeline-detail,#timeline.timeline-left .ms-timeline-item .timeline-detail,#timeline.timeline-right .ms-timeline-item .timeline-detail{padding:2px;margin-bottom:16px}#timeline .ms-timeline-item .timeline-detail .event,#timeline .ms-timeline-item .timeline-detail .time,#timeline.timeline-left .ms-timeline-item .timeline-detail .event,#timeline.timeline-left .ms-timeline-item .timeline-detail .time,#timeline.timeline-right .ms-timeline-item .timeline-detail .event,#timeline.timeline-right .ms-timeline-item .timeline-detail .time{padding-right:0;padding-left:0;text-align:center}#timeline .ms-timeline-item .timeline-card ms-card,#timeline.timeline-left .ms-timeline-item .timeline-card ms-card,#timeline.timeline-right .ms-timeline-item .timeline-card ms-card{margin:0 auto;padding:0}#timeline .ms-timeline-item:nth-child(even) .timeline-point,#timeline.timeline-left .ms-timeline-item:nth-child(even) .timeline-point,#timeline.timeline-right .ms-timeline-item:nth-child(even) .timeline-point{position:relative;left:auto;margin:0 auto 16px auto;padding:0}#timeline .ms-timeline-item:nth-child(even) .timeline-detail,#timeline.timeline-left .ms-timeline-item:nth-child(even) .timeline-detail,#timeline.timeline-right .ms-timeline-item:nth-child(even) .timeline-detail{padding:2px;margin-bottom:16px}#timeline .ms-timeline-item:nth-child(even) .timeline-detail .event,#timeline .ms-timeline-item:nth-child(even) .timeline-detail .time,#timeline.timeline-left .ms-timeline-item:nth-child(even) .timeline-detail .event,#timeline.timeline-left .ms-timeline-item:nth-child(even) .timeline-detail .time,#timeline.timeline-right .ms-timeline-item:nth-child(even) .timeline-detail .event,#timeline.timeline-right .ms-timeline-item:nth-child(even) .timeline-detail .time{padding-right:0;padding-left:0;text-align:center}#timeline .ms-timeline-item:nth-child(even) .timeline-card ms-card,#timeline.timeline-left .ms-timeline-item:nth-child(even) .timeline-card ms-card,#timeline.timeline-right .ms-timeline-item:nth-child(even) .timeline-card ms-card{margin:0 auto;padding:0}}md-dialog.compose-dialog{max-width:720px;width:720px}md-dialog.compose-dialog.mail-no-secret{max-height:97%;max-width:90%!important;width:100%!important}md-dialog.compose-dialog md-dialog-content{display:block;position:relative}md-dialog.compose-dialog md-toolbar .title{font-size:17px}md-dialog.compose-dialog md-toolbar .vertical-divider{position:absolute;border-right-width:.5px;border-right-style:solid;height:100%}md-dialog.compose-dialog md-chips md-chip{font-size:12px}md-dialog.compose-dialog md-chips .md-chip-input-container{width:100%}md-dialog.compose-dialog .to{position:relative}md-dialog.compose-dialog .to.hidden-cc input{padding-right:32px}md-dialog.compose-dialog .to.hidden-cc.hidden-bcc input{padding-right:56px}md-dialog.compose-dialog .to.hidden-bcc input{padding-right:32px}md-dialog.compose-dialog .to .cc-bcc{position:absolute;bottom:8px;right:0}md-dialog.compose-dialog .to .cc-bcc .show-bcc,md-dialog.compose-dialog .to .cc-bcc .show-cc{cursor:pointer;font-size:12px}md-dialog.compose-dialog .to .cc-bcc .show-bcc{margin-left:8px}md-dialog.compose-dialog .attachment-list{font-size:13px}md-dialog.compose-dialog .attachment-list .attachment{background-color:rgba(0,0,0,.08);border:1px solid rgba(0,0,0,.16);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.compose-dialog .attachment-list .attachment .filename{font-weight:500}md-dialog.compose-dialog .attachment-list .attachment .md-button{margin:0}md-dialog.compose-dialog .attachment-list .attachment:last-child{margin-bottom:0}md-dialog.compose-dialog .error-list{font-size:13px}md-dialog.compose-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.compose-dialog .error-list .error .message{font-weight:500}md-dialog.compose-dialog .error-list .error .md-button{margin:0}md-dialog.compose-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.compose-dialog .emojionearea{max-width:700px;min-height:300px}md-dialog.compose-dialog md-dialog-actions{position:relative;justify-content:space-between;border-top:1px solid rgba(0,0,0,.12);background-color:rgba(0,0,0,.03)}@media screen and (max-width:960px){md-dialog.compose-dialog{width:80%}}@media screen and (max-width:600px){md-dialog.compose-dialog{width:90%}}md-dialog.disposition-dialog{max-width:720px;width:720px}md-dialog.disposition-dialog md-dialog-content{display:block;position:relative}md-dialog.disposition-dialog md-toolbar .title{font-size:17px}md-dialog.disposition-dialog md-input-container textarea{min-height:150px}md-dialog.disposition-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.disposition-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.disposition-dialog .date-container{padding:16px 0 24px 0}md-dialog.disposition-dialog .error-list{font-size:13px}md-dialog.disposition-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.disposition-dialog .error-list .error .message{font-weight:500}md-dialog.disposition-dialog .error-list .error .md-button{margin:0}md-dialog.disposition-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.disposition-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.disposition-dialog{max-width:720px;width:720px}md-dialog.disposition-dialog md-dialog-content{display:block;position:relative}md-dialog.disposition-dialog md-toolbar .title{font-size:17px}md-dialog.disposition-dialog md-input-container textarea{min-height:150px}md-dialog.disposition-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.disposition-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.disposition-dialog .date-container{padding:16px 0 24px 0}md-dialog.disposition-dialog .error-list{font-size:13px}md-dialog.disposition-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.disposition-dialog .error-list .error .message{font-weight:500}md-dialog.disposition-dialog .error-list .error .md-button{margin:0}md-dialog.disposition-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.disposition-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.disposition-dialog{max-width:720px;width:720px}md-dialog.disposition-dialog md-dialog-content{display:block;position:relative}md-dialog.disposition-dialog md-toolbar .title{font-size:17px}md-dialog.disposition-dialog md-input-container textarea{min-height:150px}md-dialog.disposition-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.disposition-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.disposition-dialog .date-container{padding:16px 0 24px 0}md-dialog.disposition-dialog .error-list{font-size:13px}md-dialog.disposition-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.disposition-dialog .error-list .error .message{font-weight:500}md-dialog.disposition-dialog .error-list .error .md-button{margin:0}md-dialog.disposition-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.disposition-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#dashboard-general>.center>.header{height:160px;min-height:160px;max-height:160px;padding-bottom:0}#dashboard-general>.center>.header .selected-general{background:rgba(0,0,0,.12);color:#fff;padding:8px 16px;height:40px;line-height:24px;font-size:16px}#dashboard-general>.center>.header .general-selector{margin-left:1px;border-radius:0;background:rgba(0,0,0,.12)}#dashboard-general>.center>.header .general-selector md-icon{color:#fff}#dashboard-general>.center>.content{background:0 0;padding:0}#dashboard-general>.center>.content>md-tabs>md-tabs-wrapper{background:#fff;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12);padding:0 24px}#dashboard-general>.center>.content>md-tabs>md-tabs-wrapper md-tabs-canvas{height:56px}#dashboard-general>.center>.content>md-tabs>md-tabs-wrapper md-tabs-canvas md-pagination-wrapper{height:56px}#dashboard-general>.center>.content>md-tabs>md-tabs-wrapper md-tabs-canvas .md-tab{padding:16px 24px;text-transform:none}#dashboard-general>.center>.content>md-tabs:not(.md-dynamic-height) md-tabs-content-wrapper{top:56px}#dashboard-general>.center>.content>md-tabs>md-tabs-content-wrapper md-tab-content{padding:12px}#dashboard-general>.sidenav{width:330px;min-width:330px;max-width:330px;padding:0;z-index:51;box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}#dashboard-general>.sidenav.md-locked-open{width:250px;min-width:250px;max-width:250px;z-index:2;box-shadow:none;background:#eee}#dashboard-general .dashboard-container{padding:24px;margin-bottom:24px}#dashboard-general .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.faxAccount-dialog{max-width:720px;width:720px}md-dialog.faxAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.faxAccount-dialog md-toolbar .title{font-size:17px}md-dialog.faxAccount-dialog md-input-container textarea{min-height:150px}md-dialog.faxAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.faxAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.faxAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxAccount-dialog .error-list{font-size:13px}md-dialog.faxAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxAccount-dialog .error-list .error .message{font-weight:500}md-dialog.faxAccount-dialog .error-list .error .md-button{margin:0}md-dialog.faxAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.faxAccount-dialog{max-width:720px;width:720px}md-dialog.faxAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.faxAccount-dialog md-toolbar .title{font-size:17px}md-dialog.faxAccount-dialog md-input-container textarea{min-height:150px}md-dialog.faxAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxAccount-dialog .error-list{font-size:13px}md-dialog.faxAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxAccount-dialog .error-list .error .message{font-weight:500}md-dialog.faxAccount-dialog .error-list .error .md-button{margin:0}md-dialog.faxAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.faxAccount-dialog{max-width:720px;width:720px}md-dialog.faxAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.faxAccount-dialog md-toolbar .title{font-size:17px}md-dialog.faxAccount-dialog md-input-container textarea{min-height:150px}md-dialog.faxAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxAccount-dialog .error-list{font-size:13px}md-dialog.faxAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxAccount-dialog .error-list .error .message{font-weight:500}md-dialog.faxAccount-dialog .error-list .error .md-button{margin:0}md-dialog.faxAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.faxAccount-dialog{max-width:720px;width:720px}md-dialog.faxAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.faxAccount-dialog md-toolbar .title{font-size:17px}md-dialog.faxAccount-dialog md-input-container textarea{min-height:150px}md-dialog.faxAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxAccount-dialog .error-list{font-size:13px}md-dialog.faxAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxAccount-dialog .error-list .error .message{font-weight:500}md-dialog.faxAccount-dialog .error-list .error .md-button{margin:0}md-dialog.faxAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.faxAccount-dialog{max-width:720px;width:720px}md-dialog.faxAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.faxAccount-dialog md-toolbar .title{font-size:17px}md-dialog.faxAccount-dialog md-input-container textarea{min-height:150px}md-dialog.faxAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxAccount-dialog .error-list{font-size:13px}md-dialog.faxAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxAccount-dialog .error-list .error .message{font-weight:500}md-dialog.faxAccount-dialog .error-list .error .md-button{margin:0}md-dialog.faxAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.faxAccount-dialog{max-width:720px;width:720px}md-dialog.faxAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.faxAccount-dialog md-toolbar .title{font-size:17px}md-dialog.faxAccount-dialog md-input-container textarea{min-height:150px}md-dialog.faxAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxAccount-dialog .error-list{font-size:13px}md-dialog.faxAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxAccount-dialog .error-list .error .message{font-weight:500}md-dialog.faxAccount-dialog .error-list .error .md-button{margin:0}md-dialog.faxAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.faxAccount-dialog{max-width:720px;width:720px}md-dialog.faxAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.faxAccount-dialog md-toolbar .title{font-size:17px}md-dialog.faxAccount-dialog md-input-container textarea{min-height:150px}md-dialog.faxAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxAccount-dialog .error-list{font-size:13px}md-dialog.faxAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxAccount-dialog .error-list .error .message{font-weight:500}md-dialog.faxAccount-dialog .error-list .error .md-button{margin:0}md-dialog.faxAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.faxAccount-dialog{max-width:720px;width:720px}md-dialog.faxAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.faxAccount-dialog md-toolbar .title{font-size:17px}md-dialog.faxAccount-dialog md-input-container textarea{min-height:150px}md-dialog.faxAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxAccount-dialog .error-list{font-size:13px}md-dialog.faxAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxAccount-dialog .error-list .error .message{font-weight:500}md-dialog.faxAccount-dialog .error-list .error .md-button{margin:0}md-dialog.faxAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.faxAccount-dialog{max-width:720px;width:720px}md-dialog.faxAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.faxAccount-dialog md-toolbar .title{font-size:17px}md-dialog.faxAccount-dialog md-input-container textarea{min-height:150px}md-dialog.faxAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxAccount-dialog .error-list{font-size:13px}md-dialog.faxAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxAccount-dialog .error-list .error .message{font-weight:500}md-dialog.faxAccount-dialog .error-list .error .md-button{margin:0}md-dialog.faxAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.faxAccount-dialog{max-width:720px;width:720px}md-dialog.faxAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.faxAccount-dialog md-toolbar .title{font-size:17px}md-dialog.faxAccount-dialog md-input-container textarea{min-height:150px}md-dialog.faxAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxAccount-dialog .error-list{font-size:13px}md-dialog.faxAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxAccount-dialog .error-list .error .message{font-weight:500}md-dialog.faxAccount-dialog .error-list .error .md-button{margin:0}md-dialog.faxAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#fax-faxAccount .header{height:76px;min-height:76px;max-height:76px}#fax-faxAccount .header .goto-faxAccounts-button{margin-right:16px}#fax-faxAccount .header .faxAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#fax-faxAccount .header .faxAccount-image img{height:100%;width:auto;max-width:none}#fax-faxAccount .header .subtitle{margin:6px 0 0 0}#fax-faxAccount .faxAccount-detail-form-container{padding:24px;margin-bottom:24px}#fax-faxAccount .faxAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#fax-faxAccount .faxAccount-detail-form-container .handle{cursor:move}#fax-faxAccount .faxAccount-detail-form-container md-input-container md-switch{margin:0!important}#fax-faxAccount .faxAccount-detail-form-container #faxAccount-image-uploader{position:relative}#fax-faxAccount .faxAccount-detail-form-container #faxAccount-image-uploader.dropping .drop-text{display:flex}#fax-faxAccount .faxAccount-detail-form-container #faxAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#fax-faxAccount .faxAccount-detail-form-container #faxAccount-image-uploader .upload-button{margin-bottom:16px}#fax-faxAccount .faxAccount-detail-form-container #faxAccount-image-uploader .faxAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#fax-faxAccount .faxAccount-detail-form-container #faxAccount-image-uploader .faxAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#fax-faxAccount .faxAccount-detail-form-container #faxAccount-image-uploader .faxAccount-image .media{max-height:100%}#fax-faxAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#fax-faxAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#fax-faxAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#fax-faxAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}@media screen and (min-width:1921px){#fax-faxAccount .actionAppData{width:800px!important}}@media screen and (max-width:1920px){#fax-faxAccount .actionAppData{width:700px!important}}@media screen and (min-width:1751px) and (max-width:1919px){#fax-faxAccount .actionAppData{width:600px!important}}@media screen and (min-width:1601px) and (max-width:1750px){#fax-faxAccount .actionAppData{width:500px!important}}@media screen and (min-width:1537px) and (max-width:1600px){#fax-faxAccount .actionAppData{width:450px!important}}@media screen and (min-width:1281px) and (max-width:1536px){#fax-faxAccount .actionAppData{width:300px!important}}@media screen and (max-width:1280px){#fax-faxAccount .actionAppData{width:150px!important}}@media screen and (max-width:960px){#fax-faxAccount .actionAppData{width:80px!important}}#faxAccounts{position:relative}#faxAccounts>.header{height:76px;min-height:76px;max-height:76px}#faxAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#faxAccounts>.header .logo .logo-text{font-size:24px}#faxAccounts>.header md-icon{color:#fff}#faxAccounts>.header .search-input-wrapper{position:relative}#faxAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#faxAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#faxAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#faxAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#faxAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#faxAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#faxAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#faxAccounts>.header.selected-bar .close-button-wrapper{width:244px}#faxAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#faxAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#faxAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#faxAccounts #add-faxAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#faxAccounts #upload-faxAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.faxQueue-dialog{max-width:720px;width:720px}md-dialog.faxQueue-dialog md-dialog-content{display:block;position:relative}md-dialog.faxQueue-dialog md-toolbar .title{font-size:17px}md-dialog.faxQueue-dialog md-input-container textarea{min-height:150px}md-dialog.faxQueue-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.faxQueue-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.faxQueue-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxQueue-dialog .error-list{font-size:13px}md-dialog.faxQueue-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxQueue-dialog .error-list .error .message{font-weight:500}md-dialog.faxQueue-dialog .error-list .error .md-button{margin:0}md-dialog.faxQueue-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxQueue-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#fax-faxQueue .header{height:76px;min-height:76px;max-height:76px}#fax-faxQueue .header .goto-faxQueues-button{margin-right:16px}#fax-faxQueue .header .faxQueue-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#fax-faxQueue .header .faxQueue-image img{height:100%;width:auto;max-width:none}#fax-faxQueue .header .subtitle{margin:6px 0 0 0}#fax-faxQueue .faxQueue-detail-form-container{padding:24px;margin-bottom:24px}#fax-faxQueue .faxQueue-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#fax-faxQueue .faxQueue-detail-form-container .handle{cursor:move}#fax-faxQueue .faxQueue-detail-form-container md-input-container md-switch{margin:0!important}#fax-faxQueue .faxQueue-detail-form-container #faxQueue-image-uploader{position:relative}#fax-faxQueue .faxQueue-detail-form-container #faxQueue-image-uploader.dropping .drop-text{display:flex}#fax-faxQueue .faxQueue-detail-form-container #faxQueue-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#fax-faxQueue .faxQueue-detail-form-container #faxQueue-image-uploader .upload-button{margin-bottom:16px}#fax-faxQueue .faxQueue-detail-form-container #faxQueue-image-uploader .faxQueue-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#fax-faxQueue .faxQueue-detail-form-container #faxQueue-image-uploader .faxQueue-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#fax-faxQueue .faxQueue-detail-form-container #faxQueue-image-uploader .faxQueue-image .media{max-height:100%}#fax-faxQueue md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#fax-faxQueue md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#fax-faxQueue md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#fax-faxQueue md-table-container.font-size-12 td.md-cell{font-size:12px!important}#faxQueues{position:relative}#faxQueues>.header{height:76px;min-height:76px;max-height:76px}#faxQueues>.header .logo .logo-icon{margin:0 16px 0 0}#faxQueues>.header .logo .logo-text{font-size:24px}#faxQueues>.header md-icon{color:#fff}#faxQueues>.header .search-input-wrapper{position:relative}#faxQueues>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#faxQueues>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#faxQueues>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#faxQueues>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#faxQueues>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#faxQueues>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#faxQueues>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#faxQueues>.header.selected-bar .close-button-wrapper{width:244px}#faxQueues>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#faxQueues>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#faxQueues>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#faxQueues #add-faxQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#faxQueues #upload-faxQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#realtime>.content .blink{animation:blinker 2s linear infinite}#realtime>.content .avatar-wrapper{position:relative}#realtime>.content .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .search-input-wrapper{position:relative;margin-left:20px}#realtime>.content .search-input-wrapper label{padding:6px;cursor:pointer}#realtime>.content .search-input-wrapper md-input-container{padding-top:20px}#realtime>.content .main .labels{padding:8px 16px}#realtime>.content .main .labels .label{margin:0 0 2px 4px;padding:2px 5px;font-size:11px;white-space:nowrap;border-radius:2px}#realtime>.content .main .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .main .avatar-wrapper{position:relative}#realtime>.content .main .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .custom-column{padding:0 24px!important}@keyframes blinker{50%{opacity:0}}#profile .about-tab{max-width:1200px}#profile .about-tab .about{padding:8px}#profile .about-tab .about .general .location md-icon{line-height:13px!important}#profile .about-tab .about .work .job .company{padding:0 16px 0 0;font-weight:500}#profile .about-tab .about .work .job .date{color:rgba(0,0,0,.54)}#profile .about-tab .about-sidebar{padding:8px 8px 8px 32px}#profile .about-tab .about-sidebar .friends .content .friend{padding:4px}#profile .about-tab .about-sidebar .groups .content .group{margin-bottom:16px}#profile .about-tab .about-sidebar .groups .content .group:last-child{margin-bottom:0}#profile .about-tab .about-sidebar .groups .content .group .logo{border:1px solid rgba(0,0,0,.12);margin-right:16px}#profile .about-tab .about-sidebar .groups .content .group .name{font-weight:500;font-size:15px}#profile .about-tab .about-sidebar .groups .content .group .category,#profile .about-tab .about-sidebar .groups .content .group .members{color:rgba(0,0,0,.54)}#profile .about-tab .about-sidebar .groups .content .group .members{margin-top:16px}@media screen and (max-width:960px){#profile .about-tab .about-sidebar{padding:8px}}#maintenance{height:100%;background:url(/assets/images/backgrounds/tech.png) no-repeat;background-size:cover}#maintenance #maintenance-form-wrapper{flex:1 0 auto;padding:32px}#maintenance #maintenance-form-wrapper #maintenance-form{max-width:384px;padding:32px;background:#fff;text-align:center}#maintenance #maintenance-form-wrapper #maintenance-form .logo{width:128px;height:128px;line-height:128px;font-size:86px;font-weight:500;margin:32px auto;color:#fff;border-radius:2px}#maintenance #maintenance-form-wrapper #maintenance-form .title{font-size:17px;margin-top:16px}#maintenance #maintenance-form-wrapper #maintenance-form .subtitle{margin:16px 0;max-width:300px;color:rgba(0,0,0,.54);font-size:15px}@media screen and (max-width:600px){#maintenance #maintenance-form-wrapper{padding:16px}#maintenance #maintenance-form-wrapper #maintenance-form{padding:24px;width:100%}}md-dialog.deskAccount-dialog{max-width:720px;width:720px}md-dialog.deskAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.deskAccount-dialog md-toolbar .title{font-size:17px}md-dialog.deskAccount-dialog md-input-container textarea{min-height:150px}md-dialog.deskAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.deskAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.deskAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.deskAccount-dialog .error-list{font-size:13px}md-dialog.deskAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.deskAccount-dialog .error-list .error .message{font-weight:500}md-dialog.deskAccount-dialog .error-list .error .md-button{margin:0}md-dialog.deskAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.deskAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#deskAccounts{position:relative}#deskAccounts>.header{height:76px;min-height:76px;max-height:76px}#deskAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#deskAccounts>.header .logo .logo-text{font-size:24px}#deskAccounts>.header md-icon{color:#fff}#deskAccounts>.header .search-input-wrapper{position:relative}#deskAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#deskAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#deskAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#deskAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#deskAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#deskAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#deskAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#deskAccounts>.header.selected-bar .close-button-wrapper{width:244px}#deskAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#deskAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#deskAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#deskAccounts #add-deskAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#deskAccounts #upload-deskAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.deskConfiguration-dialog{max-width:720px;width:720px}md-dialog.deskConfiguration-dialog md-dialog-content{display:block;position:relative}md-dialog.deskConfiguration-dialog md-toolbar .title{font-size:17px}md-dialog.deskConfiguration-dialog md-input-container textarea{min-height:150px}md-dialog.deskConfiguration-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.deskConfiguration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.deskConfiguration-dialog .date-container{padding:16px 0 24px 0}md-dialog.deskConfiguration-dialog .error-list{font-size:13px}md-dialog.deskConfiguration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.deskConfiguration-dialog .error-list .error .message{font-weight:500}md-dialog.deskConfiguration-dialog .error-list .error .md-button{margin:0}md-dialog.deskConfiguration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.deskConfiguration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.deskAccount-item-dialog{max-width:720px;width:720px}md-dialog.deskAccount-item-dialog md-dialog-content{display:block;position:relative}md-dialog.deskAccount-item-dialog md-toolbar .title{font-size:17px}md-dialog.deskAccount-item-dialog md-input-container textarea{min-height:150px}md-dialog.deskAccount-item-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.deskAccount-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.deskAccount-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.deskAccount-item-dialog .error-list{font-size:13px}md-dialog.deskAccount-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.deskAccount-item-dialog .error-list .error .message{font-weight:500}md-dialog.deskAccount-item-dialog .error-list .error .md-button{margin:0}md-dialog.deskAccount-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.deskAccount-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-deskAccount .header{height:76px;min-height:76px;max-height:76px}#integrations-deskAccount .header .goto-deskAccounts-button{margin-right:16px}#integrations-deskAccount .header .deskAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-deskAccount .header .deskAccount-image img{height:100%;width:auto;max-width:none}#integrations-deskAccount .header .subtitle{margin:6px 0 0 0}#integrations-deskAccount .deskAccount-detail-form-container{padding:24px;margin-bottom:24px}#integrations-deskAccount .deskAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#integrations-deskAccount .deskAccount-detail-form-container .handle{cursor:move}#integrations-deskAccount .deskAccount-detail-form-container md-input-container md-switch{margin:0!important}#integrations-deskAccount .deskAccount-detail-form-container #deskAccount-image-uploader{position:relative}#integrations-deskAccount .deskAccount-detail-form-container #deskAccount-image-uploader.dropping .drop-text{display:flex}#integrations-deskAccount .deskAccount-detail-form-container #deskAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-deskAccount .deskAccount-detail-form-container #deskAccount-image-uploader .upload-button{margin-bottom:16px}#integrations-deskAccount .deskAccount-detail-form-container #deskAccount-image-uploader .deskAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-deskAccount .deskAccount-detail-form-container #deskAccount-image-uploader .deskAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-deskAccount .deskAccount-detail-form-container #deskAccount-image-uploader .deskAccount-image .media{max-height:100%}#integrations-deskAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#integrations-deskAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#integrations-deskAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#integrations-deskAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}md-dialog.dynamics365Account-dialog{max-width:720px;width:720px}md-dialog.dynamics365Account-dialog md-dialog-content{display:block;position:relative}md-dialog.dynamics365Account-dialog md-toolbar .title{font-size:17px}md-dialog.dynamics365Account-dialog md-input-container textarea{min-height:150px}md-dialog.dynamics365Account-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.dynamics365Account-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.dynamics365Account-dialog .date-container{padding:16px 0 24px 0}md-dialog.dynamics365Account-dialog .error-list{font-size:13px}md-dialog.dynamics365Account-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.dynamics365Account-dialog .error-list .error .message{font-weight:500}md-dialog.dynamics365Account-dialog .error-list .error .md-button{margin:0}md-dialog.dynamics365Account-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.dynamics365Account-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#dynamics365Accounts{position:relative}#dynamics365Accounts>.header{height:76px;min-height:76px;max-height:76px}#dynamics365Accounts>.header .logo .logo-icon{margin:0 16px 0 0}#dynamics365Accounts>.header .logo .logo-text{font-size:24px}#dynamics365Accounts>.header md-icon{color:#fff}#dynamics365Accounts>.header .search-input-wrapper{position:relative}#dynamics365Accounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#dynamics365Accounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#dynamics365Accounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#dynamics365Accounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#dynamics365Accounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#dynamics365Accounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#dynamics365Accounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#dynamics365Accounts>.header.selected-bar .close-button-wrapper{width:244px}#dynamics365Accounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#dynamics365Accounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#dynamics365Accounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#dynamics365Accounts #add-dynamics365Account-button{position:fixed;bottom:8px;right:8px;padding:0}#dynamics365Accounts #upload-dynamics365Account-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.dynamics365Configuration-dialog{max-width:720px;width:720px}md-dialog.dynamics365Configuration-dialog md-dialog-content{display:block;position:relative}md-dialog.dynamics365Configuration-dialog md-toolbar .title{font-size:17px}md-dialog.dynamics365Configuration-dialog md-input-container textarea{min-height:150px}md-dialog.dynamics365Configuration-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.dynamics365Configuration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.dynamics365Configuration-dialog .date-container{padding:16px 0 24px 0}md-dialog.dynamics365Configuration-dialog .error-list{font-size:13px}md-dialog.dynamics365Configuration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.dynamics365Configuration-dialog .error-list .error .message{font-weight:500}md-dialog.dynamics365Configuration-dialog .error-list .error .md-button{margin:0}md-dialog.dynamics365Configuration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.dynamics365Configuration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.dynamics365Account-item-dialog{max-width:720px;width:720px}md-dialog.dynamics365Account-item-dialog md-dialog-content{display:block;position:relative}md-dialog.dynamics365Account-item-dialog md-toolbar .title{font-size:17px}md-dialog.dynamics365Account-item-dialog md-input-container textarea{min-height:150px}md-dialog.dynamics365Account-item-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.dynamics365Account-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.dynamics365Account-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.dynamics365Account-item-dialog .error-list{font-size:13px}md-dialog.dynamics365Account-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.dynamics365Account-item-dialog .error-list .error .message{font-weight:500}md-dialog.dynamics365Account-item-dialog .error-list .error .md-button{margin:0}md-dialog.dynamics365Account-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.dynamics365Account-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-dynamics365Account .header{height:76px;min-height:76px;max-height:76px}#integrations-dynamics365Account .header .goto-dynamics365Accounts-button{margin-right:16px}#integrations-dynamics365Account .header .dynamics365Account-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-dynamics365Account .header .dynamics365Account-image img{height:100%;width:auto;max-width:none}#integrations-dynamics365Account .header .subtitle{margin:6px 0 0 0}#integrations-dynamics365Account .dynamics365Account-detail-form-container{padding:24px;margin-bottom:24px}#integrations-dynamics365Account .dynamics365Account-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#integrations-dynamics365Account .dynamics365Account-detail-form-container .handle{cursor:move}#integrations-dynamics365Account .dynamics365Account-detail-form-container md-input-container md-switch{margin:0!important}#integrations-dynamics365Account .dynamics365Account-detail-form-container #dynamics365Account-image-uploader{position:relative}#integrations-dynamics365Account .dynamics365Account-detail-form-container #dynamics365Account-image-uploader.dropping .drop-text{display:flex}#integrations-dynamics365Account .dynamics365Account-detail-form-container #dynamics365Account-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-dynamics365Account .dynamics365Account-detail-form-container #dynamics365Account-image-uploader .upload-button{margin-bottom:16px}#integrations-dynamics365Account .dynamics365Account-detail-form-container #dynamics365Account-image-uploader .dynamics365Account-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-dynamics365Account .dynamics365Account-detail-form-container #dynamics365Account-image-uploader .dynamics365Account-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-dynamics365Account .dynamics365Account-detail-form-container #dynamics365Account-image-uploader .dynamics365Account-image .media{max-height:100%}#integrations-dynamics365Account md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#integrations-dynamics365Account md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#integrations-dynamics365Account md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#integrations-dynamics365Account md-table-container.font-size-12 td.md-cell{font-size:12px!important}md-dialog.freshdeskAccount-dialog{max-width:720px;width:720px}md-dialog.freshdeskAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.freshdeskAccount-dialog md-toolbar .title{font-size:17px}md-dialog.freshdeskAccount-dialog md-input-container textarea{min-height:150px}md-dialog.freshdeskAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.freshdeskAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.freshdeskAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.freshdeskAccount-dialog .error-list{font-size:13px}md-dialog.freshdeskAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.freshdeskAccount-dialog .error-list .error .message{font-weight:500}md-dialog.freshdeskAccount-dialog .error-list .error .md-button{margin:0}md-dialog.freshdeskAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.freshdeskAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.freshdeskConfiguration-dialog{max-width:720px;width:720px}md-dialog.freshdeskConfiguration-dialog md-dialog-content{display:block;position:relative}md-dialog.freshdeskConfiguration-dialog md-toolbar .title{font-size:17px}md-dialog.freshdeskConfiguration-dialog md-input-container textarea{min-height:150px}md-dialog.freshdeskConfiguration-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.freshdeskConfiguration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.freshdeskConfiguration-dialog .date-container{padding:16px 0 24px 0}md-dialog.freshdeskConfiguration-dialog .error-list{font-size:13px}md-dialog.freshdeskConfiguration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.freshdeskConfiguration-dialog .error-list .error .message{font-weight:500}md-dialog.freshdeskConfiguration-dialog .error-list .error .md-button{margin:0}md-dialog.freshdeskConfiguration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.freshdeskConfiguration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.freshdeskAccount-item-dialog{max-width:720px;width:720px}md-dialog.freshdeskAccount-item-dialog md-dialog-content{display:block;position:relative}md-dialog.freshdeskAccount-item-dialog md-toolbar .title{font-size:17px}md-dialog.freshdeskAccount-item-dialog md-input-container textarea{min-height:150px}md-dialog.freshdeskAccount-item-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.freshdeskAccount-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.freshdeskAccount-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.freshdeskAccount-item-dialog .error-list{font-size:13px}md-dialog.freshdeskAccount-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.freshdeskAccount-item-dialog .error-list .error .message{font-weight:500}md-dialog.freshdeskAccount-item-dialog .error-list .error .md-button{margin:0}md-dialog.freshdeskAccount-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.freshdeskAccount-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-freshdeskAccount .header{height:76px;min-height:76px;max-height:76px}#integrations-freshdeskAccount .header .goto-freshdeskAccounts-button{margin-right:16px}#integrations-freshdeskAccount .header .freshdeskAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-freshdeskAccount .header .freshdeskAccount-image img{height:100%;width:auto;max-width:none}#integrations-freshdeskAccount .header .subtitle{margin:6px 0 0 0}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container{padding:24px;margin-bottom:24px}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container .handle{cursor:move}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container md-input-container md-switch{margin:0!important}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container #freshdeskAccount-image-uploader{position:relative}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container #freshdeskAccount-image-uploader.dropping .drop-text{display:flex}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container #freshdeskAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container #freshdeskAccount-image-uploader .upload-button{margin-bottom:16px}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container #freshdeskAccount-image-uploader .freshdeskAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container #freshdeskAccount-image-uploader .freshdeskAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container #freshdeskAccount-image-uploader .freshdeskAccount-image .media{max-height:100%}#integrations-freshdeskAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#integrations-freshdeskAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#integrations-freshdeskAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#integrations-freshdeskAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}#freshdeskAccounts{position:relative}#freshdeskAccounts>.header{height:76px;min-height:76px;max-height:76px}#freshdeskAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#freshdeskAccounts>.header .logo .logo-text{font-size:24px}#freshdeskAccounts>.header md-icon{color:#fff}#freshdeskAccounts>.header .search-input-wrapper{position:relative}#freshdeskAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#freshdeskAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#freshdeskAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#freshdeskAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#freshdeskAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#freshdeskAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#freshdeskAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#freshdeskAccounts>.header.selected-bar .close-button-wrapper{width:244px}#freshdeskAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#freshdeskAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#freshdeskAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#freshdeskAccounts #add-freshdeskAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#freshdeskAccounts #upload-freshdeskAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.freshsalesAccount-dialog{max-width:720px;width:720px}md-dialog.freshsalesAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.freshsalesAccount-dialog md-toolbar .title{font-size:17px}md-dialog.freshsalesAccount-dialog md-input-container textarea{min-height:150px}md-dialog.freshsalesAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.freshsalesAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.freshsalesAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.freshsalesAccount-dialog .error-list{font-size:13px}md-dialog.freshsalesAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.freshsalesAccount-dialog .error-list .error .message{font-weight:500}md-dialog.freshsalesAccount-dialog .error-list .error .md-button{margin:0}md-dialog.freshsalesAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.freshsalesAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.freshsalesConfiguration-dialog{max-width:720px;width:720px}md-dialog.freshsalesConfiguration-dialog md-dialog-content{display:block;position:relative}md-dialog.freshsalesConfiguration-dialog md-toolbar .title{font-size:17px}md-dialog.freshsalesConfiguration-dialog md-input-container textarea{min-height:150px}md-dialog.freshsalesConfiguration-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.freshsalesConfiguration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.freshsalesConfiguration-dialog .date-container{padding:16px 0 24px 0}md-dialog.freshsalesConfiguration-dialog .error-list{font-size:13px}md-dialog.freshsalesConfiguration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.freshsalesConfiguration-dialog .error-list .error .message{font-weight:500}md-dialog.freshsalesConfiguration-dialog .error-list .error .md-button{margin:0}md-dialog.freshsalesConfiguration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.freshsalesConfiguration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.freshsalesAccount-item-dialog{max-width:720px;width:720px}md-dialog.freshsalesAccount-item-dialog md-dialog-content{display:block;position:relative}md-dialog.freshsalesAccount-item-dialog md-toolbar .title{font-size:17px}md-dialog.freshsalesAccount-item-dialog md-input-container textarea{min-height:150px}md-dialog.freshsalesAccount-item-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.freshsalesAccount-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.freshsalesAccount-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.freshsalesAccount-item-dialog .error-list{font-size:13px}md-dialog.freshsalesAccount-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.freshsalesAccount-item-dialog .error-list .error .message{font-weight:500}md-dialog.freshsalesAccount-item-dialog .error-list .error .md-button{margin:0}md-dialog.freshsalesAccount-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.freshsalesAccount-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-freshsalesAccount .header{height:76px;min-height:76px;max-height:76px}#integrations-freshsalesAccount .header .goto-freshsalesAccounts-button{margin-right:16px}#integrations-freshsalesAccount .header .freshsalesAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-freshsalesAccount .header .freshsalesAccount-image img{height:100%;width:auto;max-width:none}#integrations-freshsalesAccount .header .subtitle{margin:6px 0 0 0}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container{padding:24px;margin-bottom:24px}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container .handle{cursor:move}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container md-input-container md-switch{margin:0!important}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container #freshsalesAccount-image-uploader{position:relative}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container #freshsalesAccount-image-uploader.dropping .drop-text{display:flex}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container #freshsalesAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container #freshsalesAccount-image-uploader .upload-button{margin-bottom:16px}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container #freshsalesAccount-image-uploader .freshsalesAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container #freshsalesAccount-image-uploader .freshsalesAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container #freshsalesAccount-image-uploader .freshsalesAccount-image .media{max-height:100%}#integrations-freshsalesAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#integrations-freshsalesAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#integrations-freshsalesAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#integrations-freshsalesAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}#freshsalesAccounts{position:relative}#freshsalesAccounts>.header{height:76px;min-height:76px;max-height:76px}#freshsalesAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#freshsalesAccounts>.header .logo .logo-text{font-size:24px}#freshsalesAccounts>.header md-icon{color:#fff}#freshsalesAccounts>.header .search-input-wrapper{position:relative}#freshsalesAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#freshsalesAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#freshsalesAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#freshsalesAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#freshsalesAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#freshsalesAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#freshsalesAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#freshsalesAccounts>.header.selected-bar .close-button-wrapper{width:244px}#freshsalesAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#freshsalesAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#freshsalesAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#freshsalesAccounts #add-freshsalesAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#freshsalesAccounts #upload-freshsalesAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.salesforceAccount-dialog{max-width:720px;width:720px}md-dialog.salesforceAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.salesforceAccount-dialog md-toolbar .title{font-size:17px}md-dialog.salesforceAccount-dialog md-input-container textarea{min-height:150px}md-dialog.salesforceAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.salesforceAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.salesforceAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.salesforceAccount-dialog .error-list{font-size:13px}md-dialog.salesforceAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.salesforceAccount-dialog .error-list .error .message{font-weight:500}md-dialog.salesforceAccount-dialog .error-list .error .md-button{margin:0}md-dialog.salesforceAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.salesforceAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.salesforceConfiguration-dialog{max-width:720px;width:720px}md-dialog.salesforceConfiguration-dialog md-dialog-content{display:block;position:relative}md-dialog.salesforceConfiguration-dialog md-toolbar .title{font-size:17px}md-dialog.salesforceConfiguration-dialog md-input-container textarea{min-height:150px}md-dialog.salesforceConfiguration-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.salesforceConfiguration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.salesforceConfiguration-dialog .date-container{padding:16px 0 24px 0}md-dialog.salesforceConfiguration-dialog .error-list{font-size:13px}md-dialog.salesforceConfiguration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.salesforceConfiguration-dialog .error-list .error .message{font-weight:500}md-dialog.salesforceConfiguration-dialog .error-list .error .md-button{margin:0}md-dialog.salesforceConfiguration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.salesforceConfiguration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.salesforceAccount-item-dialog{max-width:720px;width:720px}md-dialog.salesforceAccount-item-dialog md-dialog-content{display:block;position:relative}md-dialog.salesforceAccount-item-dialog md-toolbar .title{font-size:17px}md-dialog.salesforceAccount-item-dialog md-input-container textarea{min-height:150px}md-dialog.salesforceAccount-item-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.salesforceAccount-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.salesforceAccount-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.salesforceAccount-item-dialog .error-list{font-size:13px}md-dialog.salesforceAccount-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.salesforceAccount-item-dialog .error-list .error .message{font-weight:500}md-dialog.salesforceAccount-item-dialog .error-list .error .md-button{margin:0}md-dialog.salesforceAccount-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.salesforceAccount-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-salesforceAccount .header{height:76px;min-height:76px;max-height:76px}#integrations-salesforceAccount .header .goto-salesforceAccounts-button{margin-right:16px}#integrations-salesforceAccount .header .salesforceAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-salesforceAccount .header .salesforceAccount-image img{height:100%;width:auto;max-width:none}#integrations-salesforceAccount .header .subtitle{margin:6px 0 0 0}#integrations-salesforceAccount .salesforceAccount-detail-form-container{padding:24px;margin-bottom:24px}#integrations-salesforceAccount .salesforceAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#integrations-salesforceAccount .salesforceAccount-detail-form-container .handle{cursor:move}#integrations-salesforceAccount .salesforceAccount-detail-form-container md-input-container md-switch{margin:0!important}#integrations-salesforceAccount .salesforceAccount-detail-form-container #salesforceAccount-image-uploader{position:relative}#integrations-salesforceAccount .salesforceAccount-detail-form-container #salesforceAccount-image-uploader.dropping .drop-text{display:flex}#integrations-salesforceAccount .salesforceAccount-detail-form-container #salesforceAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-salesforceAccount .salesforceAccount-detail-form-container #salesforceAccount-image-uploader .upload-button{margin-bottom:16px}#integrations-salesforceAccount .salesforceAccount-detail-form-container #salesforceAccount-image-uploader .salesforceAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-salesforceAccount .salesforceAccount-detail-form-container #salesforceAccount-image-uploader .salesforceAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-salesforceAccount .salesforceAccount-detail-form-container #salesforceAccount-image-uploader .salesforceAccount-image .media{max-height:100%}#integrations-salesforceAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#integrations-salesforceAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#integrations-salesforceAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#integrations-salesforceAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}#salesforceAccounts{position:relative}#salesforceAccounts>.header{height:76px;min-height:76px;max-height:76px}#salesforceAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#salesforceAccounts>.header .logo .logo-text{font-size:24px}#salesforceAccounts>.header md-icon{color:#fff}#salesforceAccounts>.header .search-input-wrapper{position:relative}#salesforceAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#salesforceAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#salesforceAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#salesforceAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#salesforceAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#salesforceAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#salesforceAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#salesforceAccounts>.header.selected-bar .close-button-wrapper{width:244px}#salesforceAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#salesforceAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#salesforceAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#salesforceAccounts #add-salesforceAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#salesforceAccounts #upload-salesforceAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.servicenowAccount-dialog{max-width:720px;width:720px}md-dialog.servicenowAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.servicenowAccount-dialog md-toolbar .title{font-size:17px}md-dialog.servicenowAccount-dialog md-input-container textarea{min-height:150px}md-dialog.servicenowAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.servicenowAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.servicenowAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.servicenowAccount-dialog .error-list{font-size:13px}md-dialog.servicenowAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.servicenowAccount-dialog .error-list .error .message{font-weight:500}md-dialog.servicenowAccount-dialog .error-list .error .md-button{margin:0}md-dialog.servicenowAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.servicenowAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.servicenowConfiguration-dialog{max-width:720px;width:720px}md-dialog.servicenowConfiguration-dialog md-dialog-content{display:block;position:relative}md-dialog.servicenowConfiguration-dialog md-toolbar .title{font-size:17px}md-dialog.servicenowConfiguration-dialog md-input-container textarea{min-height:150px}md-dialog.servicenowConfiguration-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.servicenowConfiguration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.servicenowConfiguration-dialog .date-container{padding:16px 0 24px 0}md-dialog.servicenowConfiguration-dialog .error-list{font-size:13px}md-dialog.servicenowConfiguration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.servicenowConfiguration-dialog .error-list .error .message{font-weight:500}md-dialog.servicenowConfiguration-dialog .error-list .error .md-button{margin:0}md-dialog.servicenowConfiguration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.servicenowConfiguration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.servicenowAccount-item-dialog{max-width:720px;width:720px}md-dialog.servicenowAccount-item-dialog md-dialog-content{display:block;position:relative}md-dialog.servicenowAccount-item-dialog md-toolbar .title{font-size:17px}md-dialog.servicenowAccount-item-dialog md-input-container textarea{min-height:150px}md-dialog.servicenowAccount-item-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.servicenowAccount-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.servicenowAccount-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.servicenowAccount-item-dialog .error-list{font-size:13px}md-dialog.servicenowAccount-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.servicenowAccount-item-dialog .error-list .error .message{font-weight:500}md-dialog.servicenowAccount-item-dialog .error-list .error .md-button{margin:0}md-dialog.servicenowAccount-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.servicenowAccount-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-servicenowAccount .header{height:76px;min-height:76px;max-height:76px}#integrations-servicenowAccount .header .goto-servicenowAccounts-button{margin-right:16px}#integrations-servicenowAccount .header .servicenowAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-servicenowAccount .header .servicenowAccount-image img{height:100%;width:auto;max-width:none}#integrations-servicenowAccount .header .subtitle{margin:6px 0 0 0}#integrations-servicenowAccount .servicenowAccount-detail-form-container{padding:24px;margin-bottom:24px}#integrations-servicenowAccount .servicenowAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#integrations-servicenowAccount .servicenowAccount-detail-form-container .handle{cursor:move}#integrations-servicenowAccount .servicenowAccount-detail-form-container md-input-container md-switch{margin:0!important}#integrations-servicenowAccount .servicenowAccount-detail-form-container #servicenowAccount-image-uploader{position:relative}#integrations-servicenowAccount .servicenowAccount-detail-form-container #servicenowAccount-image-uploader.dropping .drop-text{display:flex}#integrations-servicenowAccount .servicenowAccount-detail-form-container #servicenowAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-servicenowAccount .servicenowAccount-detail-form-container #servicenowAccount-image-uploader .upload-button{margin-bottom:16px}#integrations-servicenowAccount .servicenowAccount-detail-form-container #servicenowAccount-image-uploader .servicenowAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-servicenowAccount .servicenowAccount-detail-form-container #servicenowAccount-image-uploader .servicenowAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-servicenowAccount .servicenowAccount-detail-form-container #servicenowAccount-image-uploader .servicenowAccount-image .media{max-height:100%}#integrations-servicenowAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#integrations-servicenowAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#integrations-servicenowAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#integrations-servicenowAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}#servicenowAccounts{position:relative}#servicenowAccounts>.header{height:76px;min-height:76px;max-height:76px}#servicenowAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#servicenowAccounts>.header .logo .logo-text{font-size:24px}#servicenowAccounts>.header md-icon{color:#fff}#servicenowAccounts>.header .search-input-wrapper{position:relative}#servicenowAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#servicenowAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#servicenowAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#servicenowAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#servicenowAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#servicenowAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#servicenowAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#servicenowAccounts>.header.selected-bar .close-button-wrapper{width:244px}#servicenowAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#servicenowAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#servicenowAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#servicenowAccounts #add-servicenowAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#servicenowAccounts #upload-servicenowAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.sugarcrmAccount-dialog{max-width:720px;width:720px}md-dialog.sugarcrmAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.sugarcrmAccount-dialog md-toolbar .title{font-size:17px}md-dialog.sugarcrmAccount-dialog md-input-container textarea{min-height:150px}md-dialog.sugarcrmAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.sugarcrmAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.sugarcrmAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.sugarcrmAccount-dialog .error-list{font-size:13px}md-dialog.sugarcrmAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.sugarcrmAccount-dialog .error-list .error .message{font-weight:500}md-dialog.sugarcrmAccount-dialog .error-list .error .md-button{margin:0}md-dialog.sugarcrmAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.sugarcrmAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.sugarcrmConfiguration-dialog{max-width:720px;width:720px}md-dialog.sugarcrmConfiguration-dialog md-dialog-content{display:block;position:relative}md-dialog.sugarcrmConfiguration-dialog md-toolbar .title{font-size:17px}md-dialog.sugarcrmConfiguration-dialog md-input-container textarea{min-height:150px}md-dialog.sugarcrmConfiguration-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.sugarcrmConfiguration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.sugarcrmConfiguration-dialog .date-container{padding:16px 0 24px 0}md-dialog.sugarcrmConfiguration-dialog .error-list{font-size:13px}md-dialog.sugarcrmConfiguration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.sugarcrmConfiguration-dialog .error-list .error .message{font-weight:500}md-dialog.sugarcrmConfiguration-dialog .error-list .error .md-button{margin:0}md-dialog.sugarcrmConfiguration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.sugarcrmConfiguration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.sugarcrmAccount-item-dialog{max-width:720px;width:720px}md-dialog.sugarcrmAccount-item-dialog md-dialog-content{display:block;position:relative}md-dialog.sugarcrmAccount-item-dialog md-toolbar .title{font-size:17px}md-dialog.sugarcrmAccount-item-dialog md-input-container textarea{min-height:150px}md-dialog.sugarcrmAccount-item-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.sugarcrmAccount-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.sugarcrmAccount-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.sugarcrmAccount-item-dialog .error-list{font-size:13px}md-dialog.sugarcrmAccount-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.sugarcrmAccount-item-dialog .error-list .error .message{font-weight:500}md-dialog.sugarcrmAccount-item-dialog .error-list .error .md-button{margin:0}md-dialog.sugarcrmAccount-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.sugarcrmAccount-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-sugarcrmAccount .header{height:76px;min-height:76px;max-height:76px}#integrations-sugarcrmAccount .header .goto-sugarcrmAccounts-button{margin-right:16px}#integrations-sugarcrmAccount .header .sugarcrmAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-sugarcrmAccount .header .sugarcrmAccount-image img{height:100%;width:auto;max-width:none}#integrations-sugarcrmAccount .header .subtitle{margin:6px 0 0 0}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container{padding:24px;margin-bottom:24px}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container .handle{cursor:move}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container md-input-container md-switch{margin:0!important}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container #sugarcrmAccount-image-uploader{position:relative}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container #sugarcrmAccount-image-uploader.dropping .drop-text{display:flex}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container #sugarcrmAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container #sugarcrmAccount-image-uploader .upload-button{margin-bottom:16px}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container #sugarcrmAccount-image-uploader .sugarcrmAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container #sugarcrmAccount-image-uploader .sugarcrmAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container #sugarcrmAccount-image-uploader .sugarcrmAccount-image .media{max-height:100%}#integrations-sugarcrmAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#integrations-sugarcrmAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#integrations-sugarcrmAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#integrations-sugarcrmAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}#sugarcrmAccounts{position:relative}#sugarcrmAccounts>.header{height:76px;min-height:76px;max-height:76px}#sugarcrmAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#sugarcrmAccounts>.header .logo .logo-text{font-size:24px}#sugarcrmAccounts>.header md-icon{color:#fff}#sugarcrmAccounts>.header .search-input-wrapper{position:relative}#sugarcrmAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#sugarcrmAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#sugarcrmAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#sugarcrmAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#sugarcrmAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#sugarcrmAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#sugarcrmAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#sugarcrmAccounts>.header.selected-bar .close-button-wrapper{width:244px}#sugarcrmAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#sugarcrmAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#sugarcrmAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#sugarcrmAccounts #add-sugarcrmAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#sugarcrmAccounts #upload-sugarcrmAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.vtigerAccount-dialog{max-width:720px;width:720px}md-dialog.vtigerAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.vtigerAccount-dialog md-toolbar .title{font-size:17px}md-dialog.vtigerAccount-dialog md-input-container textarea{min-height:150px}md-dialog.vtigerAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.vtigerAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.vtigerAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.vtigerAccount-dialog .error-list{font-size:13px}md-dialog.vtigerAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.vtigerAccount-dialog .error-list .error .message{font-weight:500}md-dialog.vtigerAccount-dialog .error-list .error .md-button{margin:0}md-dialog.vtigerAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.vtigerAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.vtigerConfiguration-dialog{max-width:720px;width:720px}md-dialog.vtigerConfiguration-dialog md-dialog-content{display:block;position:relative}md-dialog.vtigerConfiguration-dialog md-toolbar .title{font-size:17px}md-dialog.vtigerConfiguration-dialog md-input-container textarea{min-height:150px}md-dialog.vtigerConfiguration-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.vtigerConfiguration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.vtigerConfiguration-dialog .date-container{padding:16px 0 24px 0}md-dialog.vtigerConfiguration-dialog .error-list{font-size:13px}md-dialog.vtigerConfiguration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.vtigerConfiguration-dialog .error-list .error .message{font-weight:500}md-dialog.vtigerConfiguration-dialog .error-list .error .md-button{margin:0}md-dialog.vtigerConfiguration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.vtigerConfiguration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.vtigerAccount-item-dialog{max-width:720px;width:720px}md-dialog.vtigerAccount-item-dialog md-dialog-content{display:block;position:relative}md-dialog.vtigerAccount-item-dialog md-toolbar .title{font-size:17px}md-dialog.vtigerAccount-item-dialog md-input-container textarea{min-height:150px}md-dialog.vtigerAccount-item-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.vtigerAccount-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.vtigerAccount-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.vtigerAccount-item-dialog .error-list{font-size:13px}md-dialog.vtigerAccount-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.vtigerAccount-item-dialog .error-list .error .message{font-weight:500}md-dialog.vtigerAccount-item-dialog .error-list .error .md-button{margin:0}md-dialog.vtigerAccount-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.vtigerAccount-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-vtigerAccount .header{height:76px;min-height:76px;max-height:76px}#integrations-vtigerAccount .header .goto-vtigerAccounts-button{margin-right:16px}#integrations-vtigerAccount .header .vtigerAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-vtigerAccount .header .vtigerAccount-image img{height:100%;width:auto;max-width:none}#integrations-vtigerAccount .header .subtitle{margin:6px 0 0 0}#integrations-vtigerAccount .vtigerAccount-detail-form-container{padding:24px;margin-bottom:24px}#integrations-vtigerAccount .vtigerAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#integrations-vtigerAccount .vtigerAccount-detail-form-container .handle{cursor:move}#integrations-vtigerAccount .vtigerAccount-detail-form-container md-input-container md-switch{margin:0!important}#integrations-vtigerAccount .vtigerAccount-detail-form-container #vtigerAccount-image-uploader{position:relative}#integrations-vtigerAccount .vtigerAccount-detail-form-container #vtigerAccount-image-uploader.dropping .drop-text{display:flex}#integrations-vtigerAccount .vtigerAccount-detail-form-container #vtigerAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-vtigerAccount .vtigerAccount-detail-form-container #vtigerAccount-image-uploader .upload-button{margin-bottom:16px}#integrations-vtigerAccount .vtigerAccount-detail-form-container #vtigerAccount-image-uploader .vtigerAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-vtigerAccount .vtigerAccount-detail-form-container #vtigerAccount-image-uploader .vtigerAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-vtigerAccount .vtigerAccount-detail-form-container #vtigerAccount-image-uploader .vtigerAccount-image .media{max-height:100%}#integrations-vtigerAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#integrations-vtigerAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#integrations-vtigerAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#integrations-vtigerAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}#vtigerAccounts{position:relative}#vtigerAccounts>.header{height:76px;min-height:76px;max-height:76px}#vtigerAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#vtigerAccounts>.header .logo .logo-text{font-size:24px}#vtigerAccounts>.header md-icon{color:#fff}#vtigerAccounts>.header .search-input-wrapper{position:relative}#vtigerAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#vtigerAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#vtigerAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#vtigerAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#vtigerAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#vtigerAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#vtigerAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#vtigerAccounts>.header.selected-bar .close-button-wrapper{width:244px}#vtigerAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#vtigerAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#vtigerAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#vtigerAccounts #add-vtigerAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#vtigerAccounts #upload-vtigerAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.zendeskAccount-dialog{max-width:720px;width:720px}md-dialog.zendeskAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.zendeskAccount-dialog md-toolbar .title{font-size:17px}md-dialog.zendeskAccount-dialog md-input-container textarea{min-height:150px}md-dialog.zendeskAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.zendeskAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.zendeskAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.zendeskAccount-dialog .error-list{font-size:13px}md-dialog.zendeskAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.zendeskAccount-dialog .error-list .error .message{font-weight:500}md-dialog.zendeskAccount-dialog .error-list .error .md-button{margin:0}md-dialog.zendeskAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.zendeskAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.zendeskAccount-item-dialog{max-width:720px;width:720px}md-dialog.zendeskAccount-item-dialog md-dialog-content{display:block;position:relative}md-dialog.zendeskAccount-item-dialog md-toolbar .title{font-size:17px}md-dialog.zendeskAccount-item-dialog md-input-container textarea{min-height:150px}md-dialog.zendeskAccount-item-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.zendeskAccount-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.zendeskAccount-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.zendeskAccount-item-dialog .error-list{font-size:13px}md-dialog.zendeskAccount-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.zendeskAccount-item-dialog .error-list .error .message{font-weight:500}md-dialog.zendeskAccount-item-dialog .error-list .error .md-button{margin:0}md-dialog.zendeskAccount-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.zendeskAccount-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-zendeskAccount .header{height:76px;min-height:76px;max-height:76px}#integrations-zendeskAccount .header .goto-zendeskAccounts-button{margin-right:16px}#integrations-zendeskAccount .header .zendeskAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-zendeskAccount .header .zendeskAccount-image img{height:100%;width:auto;max-width:none}#integrations-zendeskAccount .header .subtitle{margin:6px 0 0 0}#integrations-zendeskAccount .zendeskAccount-detail-form-container{padding:24px;margin-bottom:24px}#integrations-zendeskAccount .zendeskAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#integrations-zendeskAccount .zendeskAccount-detail-form-container .handle{cursor:move}#integrations-zendeskAccount .zendeskAccount-detail-form-container md-input-container md-switch{margin:0!important}#integrations-zendeskAccount .zendeskAccount-detail-form-container #zendeskAccount-image-uploader{position:relative}#integrations-zendeskAccount .zendeskAccount-detail-form-container #zendeskAccount-image-uploader.dropping .drop-text{display:flex}#integrations-zendeskAccount .zendeskAccount-detail-form-container #zendeskAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-zendeskAccount .zendeskAccount-detail-form-container #zendeskAccount-image-uploader .upload-button{margin-bottom:16px}#integrations-zendeskAccount .zendeskAccount-detail-form-container #zendeskAccount-image-uploader .zendeskAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-zendeskAccount .zendeskAccount-detail-form-container #zendeskAccount-image-uploader .zendeskAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-zendeskAccount .zendeskAccount-detail-form-container #zendeskAccount-image-uploader .zendeskAccount-image .media{max-height:100%}#integrations-zendeskAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#integrations-zendeskAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#integrations-zendeskAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#integrations-zendeskAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}md-dialog.zendeskConfiguration-dialog{max-width:720px;width:720px}md-dialog.zendeskConfiguration-dialog md-dialog-content{display:block;position:relative}md-dialog.zendeskConfiguration-dialog md-toolbar .title{font-size:17px}md-dialog.zendeskConfiguration-dialog md-input-container textarea{min-height:150px}md-dialog.zendeskConfiguration-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.zendeskConfiguration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.zendeskConfiguration-dialog .date-container{padding:16px 0 24px 0}md-dialog.zendeskConfiguration-dialog .error-list{font-size:13px}md-dialog.zendeskConfiguration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.zendeskConfiguration-dialog .error-list .error .message{font-weight:500}md-dialog.zendeskConfiguration-dialog .error-list .error .md-button{margin:0}md-dialog.zendeskConfiguration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.zendeskConfiguration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#zendeskAccounts{position:relative}#zendeskAccounts>.header{height:76px;min-height:76px;max-height:76px}#zendeskAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#zendeskAccounts>.header .logo .logo-text{font-size:24px}#zendeskAccounts>.header md-icon{color:#fff}#zendeskAccounts>.header .search-input-wrapper{position:relative}#zendeskAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#zendeskAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#zendeskAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#zendeskAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#zendeskAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#zendeskAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#zendeskAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#zendeskAccounts>.header.selected-bar .close-button-wrapper{width:244px}#zendeskAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#zendeskAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#zendeskAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#zendeskAccounts #add-zendeskAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#zendeskAccounts #upload-zendeskAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.zohoAccount-dialog{max-width:720px;width:720px}md-dialog.zohoAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.zohoAccount-dialog md-toolbar .title{font-size:17px}md-dialog.zohoAccount-dialog md-input-container textarea{min-height:150px}md-dialog.zohoAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.zohoAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.zohoAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.zohoAccount-dialog .error-list{font-size:13px}md-dialog.zohoAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.zohoAccount-dialog .error-list .error .message{font-weight:500}md-dialog.zohoAccount-dialog .error-list .error .md-button{margin:0}md-dialog.zohoAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.zohoAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.zohoConfiguration-dialog{max-width:720px;width:720px}md-dialog.zohoConfiguration-dialog md-dialog-content{display:block;position:relative}md-dialog.zohoConfiguration-dialog md-toolbar .title{font-size:17px}md-dialog.zohoConfiguration-dialog md-input-container textarea{min-height:150px}md-dialog.zohoConfiguration-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.zohoConfiguration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.zohoConfiguration-dialog .date-container{padding:16px 0 24px 0}md-dialog.zohoConfiguration-dialog .error-list{font-size:13px}md-dialog.zohoConfiguration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.zohoConfiguration-dialog .error-list .error .message{font-weight:500}md-dialog.zohoConfiguration-dialog .error-list .error .md-button{margin:0}md-dialog.zohoConfiguration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.zohoConfiguration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.zohoAccount-item-dialog{max-width:720px;width:720px}md-dialog.zohoAccount-item-dialog md-dialog-content{display:block;position:relative}md-dialog.zohoAccount-item-dialog md-toolbar .title{font-size:17px}md-dialog.zohoAccount-item-dialog md-input-container textarea{min-height:150px}md-dialog.zohoAccount-item-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.zohoAccount-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.zohoAccount-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.zohoAccount-item-dialog .error-list{font-size:13px}md-dialog.zohoAccount-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.zohoAccount-item-dialog .error-list .error .message{font-weight:500}md-dialog.zohoAccount-item-dialog .error-list .error .md-button{margin:0}md-dialog.zohoAccount-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.zohoAccount-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-zohoAccount .header{height:76px;min-height:76px;max-height:76px}#integrations-zohoAccount .header .goto-zohoAccounts-button{margin-right:16px}#integrations-zohoAccount .header .zohoAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-zohoAccount .header .zohoAccount-image img{height:100%;width:auto;max-width:none}#integrations-zohoAccount .header .subtitle{margin:6px 0 0 0}#integrations-zohoAccount .zohoAccount-detail-form-container{padding:24px;margin-bottom:24px}#integrations-zohoAccount .zohoAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#integrations-zohoAccount .zohoAccount-detail-form-container .handle{cursor:move}#integrations-zohoAccount .zohoAccount-detail-form-container md-input-container md-switch{margin:0!important}#integrations-zohoAccount .zohoAccount-detail-form-container #zohoAccount-image-uploader{position:relative}#integrations-zohoAccount .zohoAccount-detail-form-container #zohoAccount-image-uploader.dropping .drop-text{display:flex}#integrations-zohoAccount .zohoAccount-detail-form-container #zohoAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-zohoAccount .zohoAccount-detail-form-container #zohoAccount-image-uploader .upload-button{margin-bottom:16px}#integrations-zohoAccount .zohoAccount-detail-form-container #zohoAccount-image-uploader .zohoAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-zohoAccount .zohoAccount-detail-form-container #zohoAccount-image-uploader .zohoAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-zohoAccount .zohoAccount-detail-form-container #zohoAccount-image-uploader .zohoAccount-image .media{max-height:100%}#integrations-zohoAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#integrations-zohoAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#integrations-zohoAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#integrations-zohoAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}#zohoAccounts{position:relative}#zohoAccounts>.header{height:76px;min-height:76px;max-height:76px}#zohoAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#zohoAccounts>.header .logo .logo-text{font-size:24px}#zohoAccounts>.header md-icon{color:#fff}#zohoAccounts>.header .search-input-wrapper{position:relative}#zohoAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#zohoAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#zohoAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#zohoAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#zohoAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#zohoAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#zohoAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#zohoAccounts>.header.selected-bar .close-button-wrapper{width:244px}#zohoAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#zohoAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#zohoAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#zohoAccounts #add-zohoAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#zohoAccounts #upload-zohoAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.project-dialog{max-width:720px;width:720px}md-dialog.project-dialog md-dialog-content{display:block;position:relative}md-dialog.project-dialog md-toolbar .title{font-size:17px}md-dialog.project-dialog md-input-container textarea{min-height:150px}md-dialog.project-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.project-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.project-dialog .date-container{padding:16px 0 24px 0}md-dialog.project-dialog .error-list{font-size:13px}md-dialog.project-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.project-dialog .error-list .error .message{font-weight:500}md-dialog.project-dialog .error-list .error .md-button{margin:0}md-dialog.project-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.project-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.session-dialog{max-width:720px;width:720px}md-dialog.session-dialog md-dialog-content{display:block;position:relative}md-dialog.session-dialog md-toolbar .title{font-size:17px}md-dialog.session-dialog md-input-container textarea{min-height:150px}md-dialog.session-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.session-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.session-dialog .date-container{padding:16px 0 24px 0}md-dialog.session-dialog .error-list{font-size:13px}md-dialog.session-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.session-dialog .error-list .error .message{font-weight:500}md-dialog.session-dialog .error-list .error .md-button{margin:0}md-dialog.session-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.session-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#jscripty-project .header{height:76px;min-height:76px;max-height:76px}#jscripty-project .header .goto-projects-button{margin-right:16px}#jscripty-project .header .project-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#jscripty-project .header .project-image img{height:100%;width:auto;max-width:none}#jscripty-project .header .subtitle{margin:6px 0 0 0}#jscripty-project .project-detail-form-container{padding:24px;margin-bottom:24px}#jscripty-project .project-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#jscripty-project .project-detail-form-container .handle{cursor:move}#jscripty-project .project-detail-form-container md-input-container md-switch{margin:0!important}#jscripty-project .project-detail-form-container #project-image-uploader{position:relative}#jscripty-project .project-detail-form-container #project-image-uploader.dropping .drop-text{display:flex}#jscripty-project .project-detail-form-container #project-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#jscripty-project .project-detail-form-container #project-image-uploader .upload-button{margin-bottom:16px}#jscripty-project .project-detail-form-container #project-image-uploader .project-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#jscripty-project .project-detail-form-container #project-image-uploader .project-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#jscripty-project .project-detail-form-container #project-image-uploader .project-image .media{max-height:100%}#jscripty-project md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#jscripty-project md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#jscripty-project md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#jscripty-project md-table-container.font-size-12 td.md-cell{font-size:12px!important}#projects{position:relative}#projects>.header{height:76px;min-height:76px;max-height:76px}#projects>.header .logo .logo-icon{margin:0 16px 0 0}#projects>.header .logo .logo-text{font-size:24px}#projects>.header md-icon{color:#fff}#projects>.header .search-input-wrapper{position:relative}#projects>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#projects>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#projects>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#projects>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#projects>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#projects>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#projects>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#projects>.header.selected-bar .close-button-wrapper{width:244px}#projects>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#projects>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#projects>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#projects #add-project-button{position:fixed;bottom:8px;right:8px;padding:0}#projects #upload-project-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.mailAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailCannedAnswer-dialog{max-width:720px;width:720px}md-dialog.mailCannedAnswer-dialog md-dialog-content{display:block;position:relative}md-dialog.mailCannedAnswer-dialog md-toolbar .title{font-size:17px}md-dialog.mailCannedAnswer-dialog md-input-container textarea{min-height:150px}md-dialog.mailCannedAnswer-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.mailCannedAnswer-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.mailCannedAnswer-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailCannedAnswer-dialog .error-list{font-size:13px}md-dialog.mailCannedAnswer-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailCannedAnswer-dialog .error-list .error .message{font-weight:500}md-dialog.mailCannedAnswer-dialog .error-list .error .md-button{margin:0}md-dialog.mailCannedAnswer-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailCannedAnswer-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#mail-mailAccount .header{height:76px;min-height:76px;max-height:76px}#mail-mailAccount .header .goto-mailAccounts-button{margin-right:16px}#mail-mailAccount .header .mailAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#mail-mailAccount .header .mailAccount-image img{height:100%;width:auto;max-width:none}#mail-mailAccount .header .subtitle{margin:6px 0 0 0}#mail-mailAccount .mailAccount-detail-form-container{padding:24px;margin-bottom:24px}#mail-mailAccount .mailAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#mail-mailAccount .mailAccount-detail-form-container .handle{cursor:move}#mail-mailAccount .mailAccount-detail-form-container md-input-container md-switch{margin:0!important}#mail-mailAccount .mailAccount-detail-form-container #mailAccount-image-uploader{position:relative}#mail-mailAccount .mailAccount-detail-form-container #mailAccount-image-uploader.dropping .drop-text{display:flex}#mail-mailAccount .mailAccount-detail-form-container #mailAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#mail-mailAccount .mailAccount-detail-form-container #mailAccount-image-uploader .upload-button{margin-bottom:16px}#mail-mailAccount .mailAccount-detail-form-container #mailAccount-image-uploader .mailAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#mail-mailAccount .mailAccount-detail-form-container #mailAccount-image-uploader .mailAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#mail-mailAccount .mailAccount-detail-form-container #mailAccount-image-uploader .mailAccount-image .media{max-height:100%}#mail-mailAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#mail-mailAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#mail-mailAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#mail-mailAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}@media screen and (min-width:1921px){#mail-mailAccount .actionAppData{width:800px!important}}@media screen and (max-width:1920px){#mail-mailAccount .actionAppData{width:700px!important}}@media screen and (min-width:1751px) and (max-width:1919px){#mail-mailAccount .actionAppData{width:600px!important}}@media screen and (min-width:1601px) and (max-width:1750px){#mail-mailAccount .actionAppData{width:500px!important}}@media screen and (min-width:1537px) and (max-width:1600px){#mail-mailAccount .actionAppData{width:450px!important}}@media screen and (min-width:1281px) and (max-width:1536px){#mail-mailAccount .actionAppData{width:300px!important}}@media screen and (max-width:1280px){#mail-mailAccount .actionAppData{width:150px!important}}@media screen and (max-width:960px){#mail-mailAccount .actionAppData{width:80px!important}}#mailAccounts{position:relative}#mailAccounts>.header{height:76px;min-height:76px;max-height:76px}#mailAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#mailAccounts>.header .logo .logo-text{font-size:24px}#mailAccounts>.header md-icon{color:#fff}#mailAccounts>.header .search-input-wrapper{position:relative}#mailAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#mailAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#mailAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#mailAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#mailAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#mailAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#mailAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#mailAccounts>.header.selected-bar .close-button-wrapper{width:244px}#mailAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#mailAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#mailAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#mailAccounts #add-mailAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#mailAccounts #upload-mailAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.mailQueue-dialog{max-width:720px;width:720px}md-dialog.mailQueue-dialog md-dialog-content{display:block;position:relative}md-dialog.mailQueue-dialog md-toolbar .title{font-size:17px}md-dialog.mailQueue-dialog md-input-container textarea{min-height:150px}md-dialog.mailQueue-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.mailQueue-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.mailQueue-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailQueue-dialog .error-list{font-size:13px}md-dialog.mailQueue-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailQueue-dialog .error-list .error .message{font-weight:500}md-dialog.mailQueue-dialog .error-list .error .md-button{margin:0}md-dialog.mailQueue-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailQueue-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#mail-mailQueue .header{height:76px;min-height:76px;max-height:76px}#mail-mailQueue .header .goto-mailQueues-button{margin-right:16px}#mail-mailQueue .header .mailQueue-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#mail-mailQueue .header .mailQueue-image img{height:100%;width:auto;max-width:none}#mail-mailQueue .header .subtitle{margin:6px 0 0 0}#mail-mailQueue .mailQueue-detail-form-container{padding:24px;margin-bottom:24px}#mail-mailQueue .mailQueue-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#mail-mailQueue .mailQueue-detail-form-container .handle{cursor:move}#mail-mailQueue .mailQueue-detail-form-container md-input-container md-switch{margin:0!important}#mail-mailQueue .mailQueue-detail-form-container #mailQueue-image-uploader{position:relative}#mail-mailQueue .mailQueue-detail-form-container #mailQueue-image-uploader.dropping .drop-text{display:flex}#mail-mailQueue .mailQueue-detail-form-container #mailQueue-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#mail-mailQueue .mailQueue-detail-form-container #mailQueue-image-uploader .upload-button{margin-bottom:16px}#mail-mailQueue .mailQueue-detail-form-container #mailQueue-image-uploader .mailQueue-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#mail-mailQueue .mailQueue-detail-form-container #mailQueue-image-uploader .mailQueue-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#mail-mailQueue .mailQueue-detail-form-container #mailQueue-image-uploader .mailQueue-image .media{max-height:100%}#mail-mailQueue md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#mail-mailQueue md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#mail-mailQueue md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#mail-mailQueue md-table-container.font-size-12 td.md-cell{font-size:12px!important}#mailQueues{position:relative}#mailQueues>.header{height:76px;min-height:76px;max-height:76px}#mailQueues>.header .logo .logo-icon{margin:0 16px 0 0}#mailQueues>.header .logo .logo-text{font-size:24px}#mailQueues>.header md-icon{color:#fff}#mailQueues>.header .search-input-wrapper{position:relative}#mailQueues>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#mailQueues>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#mailQueues>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#mailQueues>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#mailQueues>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#mailQueues>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#mailQueues>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#mailQueues>.header.selected-bar .close-button-wrapper{width:244px}#mailQueues>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#mailQueues>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#mailQueues>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#mailQueues #add-mailQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#mailQueues #upload-mailQueue-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.mailSubstatus-dialog{max-width:720px;width:720px}md-dialog.mailSubstatus-dialog md-dialog-content{display:block;position:relative}md-dialog.mailSubstatus-dialog md-toolbar .title{font-size:17px}md-dialog.mailSubstatus-dialog md-input-container textarea{min-height:150px}md-dialog.mailSubstatus-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.mailSubstatus-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.mailSubstatus-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailSubstatus-dialog .error-list{font-size:13px}md-dialog.mailSubstatus-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailSubstatus-dialog .error-list .error .message{font-weight:500}md-dialog.mailSubstatus-dialog .error-list .error .md-button{margin:0}md-dialog.mailSubstatus-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailSubstatus-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#mailSubtatuses{position:relative}#mailSubtatuses>.header{height:76px;min-height:76px;max-height:76px}#mailSubtatuses>.header .logo .logo-icon{margin:0 16px 0 0}#mailSubtatuses>.header .logo .logo-text{font-size:24px}#mailSubtatuses>.header md-icon{color:#fff}#mailSubtatuses>.header .search-input-wrapper{position:relative}#mailSubtatuses>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#mailSubtatuses>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#mailSubtatuses>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#mailSubtatuses>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#mailSubtatuses>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#mailSubtatuses>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#mailSubtatuses>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#mailSubtatuses>.header.selected-bar .close-button-wrapper{width:244px}#mailSubtatuses>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#mailSubtatuses>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#mailSubtatuses>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#mailSubtatuses #add-mailSubstatus-button{position:fixed;bottom:8px;right:8px;padding:0}#mailSubtatuses #upload-mailSubstatus-button{position:fixed;bottom:8px;right:8px;padding:0}#realtime>.content .blink{animation:blinker 2s linear infinite}#realtime>.content .avatar-wrapper{position:relative}#realtime>.content .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .search-input-wrapper{position:relative;margin-left:20px}#realtime>.content .search-input-wrapper label{padding:6px;cursor:pointer}#realtime>.content .search-input-wrapper md-input-container{padding-top:20px}#realtime>.content .main .labels{padding:8px 16px}#realtime>.content .main .labels .label{margin:0 0 2px 4px;padding:2px 5px;font-size:11px;white-space:nowrap;border-radius:2px}#realtime>.content .main .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .main .avatar-wrapper{position:relative}#realtime>.content .main .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .custom-column{padding:0 24px!important}@keyframes blinker{50%{opacity:0}}md-dialog.plugin-dialog{max-width:720px;width:720px}md-dialog.plugin-dialog md-dialog-content{display:block;position:relative}md-dialog.plugin-dialog md-toolbar .title{font-size:17px}md-dialog.plugin-dialog md-input-container textarea{min-height:150px}md-dialog.plugin-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.plugin-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.plugin-dialog .date-container{padding:16px 0 24px 0}md-dialog.plugin-dialog .error-list{font-size:13px}md-dialog.plugin-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.plugin-dialog .error-list .error .message{font-weight:500}md-dialog.plugin-dialog .error-list .error .md-button{margin:0}md-dialog.plugin-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.plugin-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#marketplace-plugin .header{height:76px;min-height:76px;max-height:76px}#marketplace-plugin .header .goto-plugins-button{margin-right:16px}#marketplace-plugin .header .plugin-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#marketplace-plugin .header .plugin-image img{height:100%;width:auto;max-width:none}#marketplace-plugin .header .subtitle{margin:6px 0 0 0}#marketplace-plugin .plugin-detail-form-container{padding:24px;margin-bottom:24px}#marketplace-plugin .plugin-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#marketplace-plugin .plugin-detail-form-container .handle{cursor:move}#marketplace-plugin .plugin-detail-form-container md-input-container md-switch{margin:0!important}#marketplace-plugin .plugin-detail-form-container #plugin-image-uploader{position:relative}#marketplace-plugin .plugin-detail-form-container #plugin-image-uploader.dropping .drop-text{display:flex}#marketplace-plugin .plugin-detail-form-container #plugin-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#marketplace-plugin .plugin-detail-form-container #plugin-image-uploader .upload-button{margin-bottom:16px}#marketplace-plugin .plugin-detail-form-container #plugin-image-uploader .plugin-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#marketplace-plugin .plugin-detail-form-container #plugin-image-uploader .plugin-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#marketplace-plugin .plugin-detail-form-container #plugin-image-uploader .plugin-image .media{max-height:100%}#marketplace-plugin md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#marketplace-plugin md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#marketplace-plugin md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#marketplace-plugin md-table-container.font-size-12 td.md-cell{font-size:12px!important}#plugins{position:relative}#plugins>.header{height:76px;min-height:76px;max-height:76px}#plugins>.header .logo .logo-icon{margin:0 16px 0 0}#plugins>.header .logo .logo-text{font-size:24px}#plugins>.header md-icon{color:#fff}#plugins>.header .search-input-wrapper{position:relative}#plugins>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#plugins>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#plugins>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#plugins>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#plugins>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#plugins>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#plugins>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#plugins>.header.selected-bar .close-button-wrapper{width:244px}#plugins>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#plugins>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#plugins>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#plugins #add-plugin-button{position:fixed;bottom:8px;right:8px;padding:0}#plugins #upload-plugin-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.upload-dialog{max-width:720px;width:720px}md-dialog.upload-dialog md-dialog-content{display:block;position:relative}md-dialog.upload-dialog md-toolbar .title{font-size:17px}md-dialog.upload-dialog md-input-container textarea{min-height:150px}md-dialog.upload-dialog md-progress-linear{padding-top:16px!important}md-dialog.upload-dialog .date-container{padding:16px 0 24px 0}md-dialog.upload-dialog .error-list{font-size:13px}md-dialog.upload-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.upload-dialog .error-list .error .message{font-weight:500}md-dialog.upload-dialog .error-list .error .md-button{margin:0}md-dialog.upload-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.upload-dialog .plugin-image{overflow:hidden;max-width:148px;margin-right:16px;border:3px solid rgba(0,0,0,.12);padding:10px}md-dialog.upload-dialog .plugin-image img{width:auto;max-width:none}md-dialog.upload-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.ivrCampaign-dialog{max-width:720px;width:720px}md-dialog.ivrCampaign-dialog md-dialog-content{display:block;position:relative}md-dialog.ivrCampaign-dialog md-toolbar .title{font-size:17px}md-dialog.ivrCampaign-dialog md-input-container textarea{min-height:150px}md-dialog.ivrCampaign-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.ivrCampaign-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.ivrCampaign-dialog .date-container{padding:16px 0 24px 0}md-dialog.ivrCampaign-dialog .error-list{font-size:13px}md-dialog.ivrCampaign-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.ivrCampaign-dialog .error-list .error .message{font-weight:500}md-dialog.ivrCampaign-dialog .error-list .error .md-button{margin:0}md-dialog.ivrCampaign-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.ivrCampaign-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.hopper-dialog{max-width:720px;width:720px}md-dialog.hopper-dialog md-dialog-content{display:block;position:relative}md-dialog.hopper-dialog md-toolbar .title{font-size:17px}md-dialog.hopper-dialog md-input-container textarea{min-height:150px}md-dialog.hopper-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.hopper-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.hopper-dialog .date-container{padding:16px 0 24px 0}md-dialog.hopper-dialog .error-list{font-size:13px}md-dialog.hopper-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.hopper-dialog .error-list .error .message{font-weight:500}md-dialog.hopper-dialog .error-list .error .md-button{margin:0}md-dialog.hopper-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.hopper-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#motiondialer-ivrCampaign .header{height:76px;min-height:76px;max-height:76px}#motiondialer-ivrCampaign .header .goto-ivrCampaigns-button{margin-right:16px}#motiondialer-ivrCampaign .header .ivrCampaign-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#motiondialer-ivrCampaign .header .ivrCampaign-image img{height:100%;width:auto;max-width:none}#motiondialer-ivrCampaign .header .subtitle{margin:6px 0 0 0}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container{padding:24px;margin-bottom:24px}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container .handle{cursor:move}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container md-input-container md-switch{margin:0!important}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container #ivrCampaign-image-uploader{position:relative}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container #ivrCampaign-image-uploader.dropping .drop-text{display:flex}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container #ivrCampaign-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container #ivrCampaign-image-uploader .upload-button{margin-bottom:16px}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container #ivrCampaign-image-uploader .ivrCampaign-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container #ivrCampaign-image-uploader .ivrCampaign-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container #ivrCampaign-image-uploader .ivrCampaign-image .media{max-height:100%}#motiondialer-ivrCampaign md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#motiondialer-ivrCampaign md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#motiondialer-ivrCampaign md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#motiondialer-ivrCampaign md-table-container.font-size-12 td.md-cell{font-size:12px!important}#ivrCampaigns{position:relative}#ivrCampaigns>.header{height:76px;min-height:76px;max-height:76px}#ivrCampaigns>.header .logo .logo-icon{margin:0 16px 0 0}#ivrCampaigns>.header .logo .logo-text{font-size:24px}#ivrCampaigns>.header md-icon{color:#fff}#ivrCampaigns>.header .search-input-wrapper{position:relative}#ivrCampaigns>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#ivrCampaigns>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#ivrCampaigns>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#ivrCampaigns>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#ivrCampaigns>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#ivrCampaigns>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#ivrCampaigns>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#ivrCampaigns>.header.selected-bar .close-button-wrapper{width:244px}#ivrCampaigns>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#ivrCampaigns>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#ivrCampaigns>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#ivrCampaigns #add-ivrCampaign-button{position:fixed;bottom:8px;right:8px;padding:0}#ivrCampaigns #upload-ivrCampaign-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.queueCampaign-dialog{max-width:720px;width:720px}md-dialog.queueCampaign-dialog md-dialog-content{display:block;position:relative}md-dialog.queueCampaign-dialog md-toolbar .title{font-size:17px}md-dialog.queueCampaign-dialog md-input-container textarea{min-height:150px}md-dialog.queueCampaign-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.queueCampaign-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.queueCampaign-dialog .date-container{padding:16px 0 24px 0}md-dialog.queueCampaign-dialog .error-list{font-size:13px}md-dialog.queueCampaign-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.queueCampaign-dialog .error-list .error .message{font-weight:500}md-dialog.queueCampaign-dialog .error-list .error .md-button{margin:0}md-dialog.queueCampaign-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.queueCampaign-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.hopper-dialog{max-width:720px;width:720px}md-dialog.hopper-dialog md-dialog-content{display:block;position:relative}md-dialog.hopper-dialog md-toolbar .title{font-size:17px}md-dialog.hopper-dialog md-input-container textarea{min-height:150px}md-dialog.hopper-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.hopper-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.hopper-dialog .date-container{padding:16px 0 24px 0}md-dialog.hopper-dialog .error-list{font-size:13px}md-dialog.hopper-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.hopper-dialog .error-list .error .message{font-weight:500}md-dialog.hopper-dialog .error-list .error .md-button{margin:0}md-dialog.hopper-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.hopper-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#motiondialer-queueCampaign .header{height:76px;min-height:76px;max-height:76px}#motiondialer-queueCampaign .header .goto-queueCampaigns-button{margin-right:16px}#motiondialer-queueCampaign .header .queueCampaign-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#motiondialer-queueCampaign .header .queueCampaign-image img{height:100%;width:auto;max-width:none}#motiondialer-queueCampaign .header .subtitle{margin:6px 0 0 0}#motiondialer-queueCampaign .queueCampaign-detail-form-container{padding:24px;margin-bottom:24px}#motiondialer-queueCampaign .queueCampaign-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#motiondialer-queueCampaign .queueCampaign-detail-form-container .handle{cursor:move}#motiondialer-queueCampaign .queueCampaign-detail-form-container md-input-container md-switch{margin:0!important}#motiondialer-queueCampaign .queueCampaign-detail-form-container #queueCampaign-image-uploader{position:relative}#motiondialer-queueCampaign .queueCampaign-detail-form-container #queueCampaign-image-uploader.dropping .drop-text{display:flex}#motiondialer-queueCampaign .queueCampaign-detail-form-container #queueCampaign-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#motiondialer-queueCampaign .queueCampaign-detail-form-container #queueCampaign-image-uploader .upload-button{margin-bottom:16px}#motiondialer-queueCampaign .queueCampaign-detail-form-container #queueCampaign-image-uploader .queueCampaign-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#motiondialer-queueCampaign .queueCampaign-detail-form-container #queueCampaign-image-uploader .queueCampaign-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#motiondialer-queueCampaign .queueCampaign-detail-form-container #queueCampaign-image-uploader .queueCampaign-image .media{max-height:100%}#motiondialer-queueCampaign md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#motiondialer-queueCampaign md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#motiondialer-queueCampaign md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#motiondialer-queueCampaign md-table-container.font-size-12 td.md-cell{font-size:12px!important}#queueCampaigns{position:relative}#queueCampaigns>.header{height:76px;min-height:76px;max-height:76px}#queueCampaigns>.header .logo .logo-icon{margin:0 16px 0 0}#queueCampaigns>.header .logo .logo-text{font-size:24px}#queueCampaigns>.header md-icon{color:#fff}#queueCampaigns>.header .search-input-wrapper{position:relative}#queueCampaigns>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#queueCampaigns>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#queueCampaigns>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#queueCampaigns>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#queueCampaigns>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#queueCampaigns>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#queueCampaigns>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#queueCampaigns>.header.selected-bar .close-button-wrapper{width:244px}#queueCampaigns>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#queueCampaigns>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#queueCampaigns>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#queueCampaigns #add-queueCampaign-button{position:fixed;bottom:8px;right:8px;padding:0}#queueCampaigns #upload-queueCampaign-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.predictive-dialog{max-width:720px;width:720px}md-dialog.predictive-dialog md-dialog-content{display:block;position:relative}md-dialog.predictive-dialog md-toolbar .title{font-size:17px}md-dialog.predictive-dialog md-input-container textarea{min-height:150px}md-dialog.predictive-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.predictive-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.predictive-dialog .date-container{padding:16px 0 24px 0}md-dialog.predictive-dialog .error-list{font-size:13px}md-dialog.predictive-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.predictive-dialog .error-list .error .message{font-weight:500}md-dialog.predictive-dialog .error-list .error .md-button{margin:0}md-dialog.predictive-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.predictive-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#realtime>.content .blink{animation:blinker 2s linear infinite}#realtime>.content .avatar-wrapper{position:relative}#realtime>.content .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .search-input-wrapper{position:relative;margin-left:20px}#realtime>.content .search-input-wrapper label{padding:6px;cursor:pointer}#realtime>.content .search-input-wrapper md-input-container{padding-top:20px}#realtime>.content .main .labels{padding:8px 16px}#realtime>.content .main .labels .label{margin:0 0 2px 4px;padding:2px 5px;font-size:11px;white-space:nowrap;border-radius:2px}#realtime>.content .main .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .main .avatar-wrapper{position:relative}#realtime>.content .main .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .custom-column{padding:0 24px!important}@keyframes blinker{50%{opacity:0}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.openchannelAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelCannedAnswer-dialog{max-width:720px;width:720px}md-dialog.openchannelCannedAnswer-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelCannedAnswer-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelCannedAnswer-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelCannedAnswer-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.openchannelCannedAnswer-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.openchannelCannedAnswer-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelCannedAnswer-dialog .error-list{font-size:13px}md-dialog.openchannelCannedAnswer-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelCannedAnswer-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelCannedAnswer-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelCannedAnswer-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelCannedAnswer-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#openchannel-openchannelAccount .header{height:76px;min-height:76px;max-height:76px}#openchannel-openchannelAccount .header .goto-openchannelAccounts-button{margin-right:16px}#openchannel-openchannelAccount .header .openchannelAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#openchannel-openchannelAccount .header .openchannelAccount-image img{height:100%;width:auto;max-width:none}#openchannel-openchannelAccount .header .subtitle{margin:6px 0 0 0}#openchannel-openchannelAccount .openchannelAccount-detail-form-container{padding:24px;margin-bottom:24px}#openchannel-openchannelAccount .openchannelAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#openchannel-openchannelAccount .openchannelAccount-detail-form-container .handle{cursor:move}#openchannel-openchannelAccount .openchannelAccount-detail-form-container md-input-container md-switch{margin:0!important}#openchannel-openchannelAccount .openchannelAccount-detail-form-container #openchannelAccount-image-uploader{position:relative}#openchannel-openchannelAccount .openchannelAccount-detail-form-container #openchannelAccount-image-uploader.dropping .drop-text{display:flex}#openchannel-openchannelAccount .openchannelAccount-detail-form-container #openchannelAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#openchannel-openchannelAccount .openchannelAccount-detail-form-container #openchannelAccount-image-uploader .upload-button{margin-bottom:16px}#openchannel-openchannelAccount .openchannelAccount-detail-form-container #openchannelAccount-image-uploader .openchannelAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#openchannel-openchannelAccount .openchannelAccount-detail-form-container #openchannelAccount-image-uploader .openchannelAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#openchannel-openchannelAccount .openchannelAccount-detail-form-container #openchannelAccount-image-uploader .openchannelAccount-image .media{max-height:100%}#openchannel-openchannelAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#openchannel-openchannelAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#openchannel-openchannelAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#openchannel-openchannelAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}@media screen and (min-width:1921px){#openchannel-openchannelAccount .actionAppData{width:800px!important}}@media screen and (max-width:1920px){#openchannel-openchannelAccount .actionAppData{width:700px!important}}@media screen and (min-width:1751px) and (max-width:1919px){#openchannel-openchannelAccount .actionAppData{width:600px!important}}@media screen and (min-width:1601px) and (max-width:1750px){#openchannel-openchannelAccount .actionAppData{width:500px!important}}@media screen and (min-width:1537px) and (max-width:1600px){#openchannel-openchannelAccount .actionAppData{width:450px!important}}@media screen and (min-width:1281px) and (max-width:1536px){#openchannel-openchannelAccount .actionAppData{width:300px!important}}@media screen and (max-width:1280px){#openchannel-openchannelAccount .actionAppData{width:150px!important}}@media screen and (max-width:960px){#openchannel-openchannelAccount .actionAppData{width:80px!important}}#openchannelAccounts{position:relative}#openchannelAccounts>.header{height:76px;min-height:76px;max-height:76px}#openchannelAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#openchannelAccounts>.header .logo .logo-text{font-size:24px}#openchannelAccounts>.header md-icon{color:#fff}#openchannelAccounts>.header .search-input-wrapper{position:relative}#openchannelAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#openchannelAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#openchannelAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#openchannelAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#openchannelAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#openchannelAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#openchannelAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#openchannelAccounts>.header.selected-bar .close-button-wrapper{width:244px}#openchannelAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#openchannelAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#openchannelAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#openchannelAccounts #add-openchannelAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#openchannelAccounts #upload-openchannelAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.openchannelQueue-dialog{max-width:720px;width:720px}md-dialog.openchannelQueue-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelQueue-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelQueue-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelQueue-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.openchannelQueue-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.openchannelQueue-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelQueue-dialog .error-list{font-size:13px}md-dialog.openchannelQueue-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelQueue-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelQueue-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelQueue-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelQueue-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#openchannel-openchannelQueue .header{height:76px;min-height:76px;max-height:76px}#openchannel-openchannelQueue .header .goto-openchannelQueues-button{margin-right:16px}#openchannel-openchannelQueue .header .openchannelQueue-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#openchannel-openchannelQueue .header .openchannelQueue-image img{height:100%;width:auto;max-width:none}#openchannel-openchannelQueue .header .subtitle{margin:6px 0 0 0}#openchannel-openchannelQueue .openchannelQueue-detail-form-container{padding:24px;margin-bottom:24px}#openchannel-openchannelQueue .openchannelQueue-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#openchannel-openchannelQueue .openchannelQueue-detail-form-container .handle{cursor:move}#openchannel-openchannelQueue .openchannelQueue-detail-form-container md-input-container md-switch{margin:0!important}#openchannel-openchannelQueue .openchannelQueue-detail-form-container #openchannelQueue-image-uploader{position:relative}#openchannel-openchannelQueue .openchannelQueue-detail-form-container #openchannelQueue-image-uploader.dropping .drop-text{display:flex}#openchannel-openchannelQueue .openchannelQueue-detail-form-container #openchannelQueue-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#openchannel-openchannelQueue .openchannelQueue-detail-form-container #openchannelQueue-image-uploader .upload-button{margin-bottom:16px}#openchannel-openchannelQueue .openchannelQueue-detail-form-container #openchannelQueue-image-uploader .openchannelQueue-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#openchannel-openchannelQueue .openchannelQueue-detail-form-container #openchannelQueue-image-uploader .openchannelQueue-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#openchannel-openchannelQueue .openchannelQueue-detail-form-container #openchannelQueue-image-uploader .openchannelQueue-image .media{max-height:100%}#openchannel-openchannelQueue md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#openchannel-openchannelQueue md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#openchannel-openchannelQueue md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#openchannel-openchannelQueue md-table-container.font-size-12 td.md-cell{font-size:12px!important}#openchannelQueues{position:relative}#openchannelQueues>.header{height:76px;min-height:76px;max-height:76px}#openchannelQueues>.header .logo .logo-icon{margin:0 16px 0 0}#openchannelQueues>.header .logo .logo-text{font-size:24px}#openchannelQueues>.header md-icon{color:#fff}#openchannelQueues>.header .search-input-wrapper{position:relative}#openchannelQueues>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#openchannelQueues>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#openchannelQueues>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#openchannelQueues>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#openchannelQueues>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#openchannelQueues>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#openchannelQueues>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#openchannelQueues>.header.selected-bar .close-button-wrapper{width:244px}#openchannelQueues>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#openchannelQueues>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#openchannelQueues>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#openchannelQueues #add-openchannelQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#openchannelQueues #upload-openchannelQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#realtime>.content .blink{animation:blinker 2s linear infinite}#realtime>.content .avatar-wrapper{position:relative}#realtime>.content .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .search-input-wrapper{position:relative;margin-left:20px}#realtime>.content .search-input-wrapper label{padding:6px;cursor:pointer}#realtime>.content .search-input-wrapper md-input-container{padding-top:20px}#realtime>.content .main .labels{padding:8px 16px}#realtime>.content .main .labels .label{margin:0 0 2px 4px;padding:2px 5px;font-size:11px;white-space:nowrap;border-radius:2px}#realtime>.content .main .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .main .avatar-wrapper{position:relative}#realtime>.content .main .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .custom-column{padding:0 24px!important}@keyframes blinker{50%{opacity:0}}#plugin .filter-header{background-image:url(/assets/images/backgrounds/header-bg.png);color:#fff}#cloudProviders{position:relative}#cloudProviders>.header{height:76px;min-height:76px;max-height:76px}#cloudProviders>.header .logo .logo-icon{margin:0 16px 0 0}#cloudProviders>.header .logo .logo-text{font-size:24px}#cloudProviders>.header md-icon{color:#fff}#cloudProviders>.header .search-input-wrapper{position:relative}#cloudProviders>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#cloudProviders>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#cloudProviders>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#cloudProviders>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#cloudProviders>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#cloudProviders>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#cloudProviders>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#cloudProviders>.header.selected-bar .close-button-wrapper{width:244px}#cloudProviders>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#cloudProviders>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#cloudProviders>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#cloudProviders #add-cloudProvider-button{position:fixed;bottom:8px;right:8px;padding:0}#cloudProviders #upload-cloudProvider-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.cloudProvider-dialog{max-width:720px;width:720px}md-dialog.cloudProvider-dialog md-dialog-content{display:block;position:relative}md-dialog.cloudProvider-dialog md-toolbar .title{font-size:17px}md-dialog.cloudProvider-dialog md-input-container textarea{min-height:150px}md-dialog.cloudProvider-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.cloudProvider-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.cloudProvider-dialog .date-container{padding:16px 0 24px 0}md-dialog.cloudProvider-dialog .error-list{font-size:13px}md-dialog.cloudProvider-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.cloudProvider-dialog .error-list .error .message{font-weight:500}md-dialog.cloudProvider-dialog .error-list .error .md-button{margin:0}md-dialog.cloudProvider-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.cloudProvider-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.customization-dialog{max-width:720px;width:720px}md-dialog.customization-dialog md-dialog-content{display:block;position:relative}md-dialog.customization-dialog md-toolbar .title{font-size:17px}md-dialog.customization-dialog md-input-container textarea{min-height:150px}md-dialog.customization-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.customization-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.customization-dialog .date-container{padding:16px 0 24px 0}md-dialog.customization-dialog .error-list{font-size:13px}md-dialog.customization-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.customization-dialog .error-list .error .message{font-weight:500}md-dialog.customization-dialog .error-list .error .md-button{margin:0}md-dialog.customization-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.customization-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#customizations{position:relative}#customizations>.header{height:76px;min-height:76px;max-height:76px}#customizations>.header .logo .logo-icon{margin:0 16px 0 0}#customizations>.header .logo .logo-text{font-size:24px}#customizations>.header md-icon{color:#fff}#customizations>.header .search-input-wrapper{position:relative}#customizations>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#customizations>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#customizations>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#customizations>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#customizations>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#customizations>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#customizations>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#customizations>.header.selected-bar .close-button-wrapper{width:244px}#customizations>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#customizations>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#customizations>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#customizations>.content .customization-detail-form-container{padding:24px;margin-bottom:24px}#customizations>.content .customization-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#customizations>.content .customization-detail-form-container .handle{cursor:move}#customizations>.content .customization-detail-form-container md-input-container md-switch{margin:0!important}#customizations>.content .customization-detail-form-container #customization-image-uploader{position:relative}#customizations>.content .customization-detail-form-container #customization-image-uploader.dropping .drop-text{display:flex}#customizations>.content .customization-detail-form-container #customization-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#customizations>.content .customization-detail-form-container #customization-image-uploader .upload-button{margin-bottom:16px}#customizations>.content .customization-detail-form-container #customization-image-uploader .customization-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#customizations>.content .customization-detail-form-container #customization-image-uploader .customization-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#customizations>.content .customization-detail-form-container #customization-image-uploader .customization-image .media{max-height:100%}#customizations #add-customization-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.general-dialog{max-width:720px;width:720px}md-dialog.general-dialog md-dialog-content{display:block;position:relative}md-dialog.general-dialog md-toolbar .title{font-size:17px}md-dialog.general-dialog md-input-container textarea{min-height:150px}md-dialog.general-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.general-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.general-dialog .date-container{padding:16px 0 24px 0}md-dialog.general-dialog .error-list{font-size:13px}md-dialog.general-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.general-dialog .error-list .error .message{font-weight:500}md-dialog.general-dialog .error-list .error .md-button{margin:0}md-dialog.general-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.general-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#generals{position:relative}#generals>.header{height:76px;min-height:76px;max-height:76px}#generals>.header .logo .logo-icon{margin:0 16px 0 0}#generals>.header .logo .logo-text{font-size:24px}#generals>.header md-icon{color:#fff}#generals>.header .search-input-wrapper{position:relative}#generals>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#generals>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#generals>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#generals>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#generals>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#generals>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#generals>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#generals>.header.selected-bar .close-button-wrapper{width:244px}#generals>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#generals>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#generals>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#generals>.content .general-detail-form-container{padding:24px;margin-bottom:24px}#generals>.content .general-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#generals>.content .general-detail-form-container .handle{cursor:move}#generals>.content .general-detail-form-container md-input-container md-switch{margin:0!important}#generals>.content .general-detail-form-container #general-image-uploader{position:relative}#generals>.content .general-detail-form-container #general-image-uploader.dropping .drop-text{display:flex}#generals>.content .general-detail-form-container #general-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#generals>.content .general-detail-form-container #general-image-uploader .upload-button{margin-bottom:16px}#generals>.content .general-detail-form-container #general-image-uploader .general-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#generals>.content .general-detail-form-container #general-image-uploader .general-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#generals>.content .general-detail-form-container #general-image-uploader .general-image .media{max-height:100%}#generals #add-general-button{position:fixed;bottom:8px;right:8px;padding:0}#license{position:relative}#license .blink{animation:blinker 2s linear infinite}#license>.header{height:76px;min-height:76px;max-height:76px}#license>.header .logo .logo-icon{margin:0 16px 0 0}#license>.header .logo .logo-text{font-size:24px}#license>.header md-icon{color:#fff}#license>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#license>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#license>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#license>.content .badge{position:absolute;top:0;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);font-size:11px;font-weight:500;padding:6px 8px}md-dialog.request-dialog{max-width:720px;width:720px}md-dialog.request-dialog md-dialog-content{display:block;position:relative}md-dialog.request-dialog md-toolbar .title{font-size:17px}md-dialog.request-dialog md-input-container textarea{min-height:150px}md-dialog.request-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.request-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.request-dialog .date-container{padding:16px 0 24px 0}md-dialog.request-dialog .error-list{font-size:13px}md-dialog.request-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.request-dialog .error-list .error .message{font-weight:500}md-dialog.request-dialog .error-list .error .md-button{margin:0}md-dialog.request-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.request-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.update-dialog{max-width:720px;width:720px}md-dialog.update-dialog md-dialog-content{display:block;position:relative}md-dialog.update-dialog md-toolbar .title{font-size:17px}md-dialog.update-dialog md-input-container textarea{min-height:60px}md-dialog.update-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.update-dialog .error-list{font-size:13px}md-dialog.update-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.update-dialog .error-list .error .message{font-weight:500}md-dialog.update-dialog .error-list .error .md-button{margin:0}md-dialog.update-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.update-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.network-dialog{max-width:720px;width:720px}md-dialog.network-dialog md-dialog-content{display:block;position:relative}md-dialog.network-dialog md-toolbar .title{font-size:17px}md-dialog.network-dialog md-input-container textarea{min-height:150px}md-dialog.network-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.network-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.network-dialog .date-container{padding:16px 0 24px 0}md-dialog.network-dialog .error-list{font-size:13px}md-dialog.network-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.network-dialog .error-list .error .message{font-weight:500}md-dialog.network-dialog .error-list .error .md-button{margin:0}md-dialog.network-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.network-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#networks{position:relative}#networks>.header{height:76px;min-height:76px;max-height:76px}#networks>.header .logo .logo-icon{margin:0 16px 0 0}#networks>.header .logo .logo-text{font-size:24px}#networks>.header md-icon{color:#fff}#networks>.header .search-input-wrapper{position:relative}#networks>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#networks>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#networks>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#networks>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#networks>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#networks>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#networks>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#networks>.header.selected-bar .close-button-wrapper{width:244px}#networks>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#networks>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#networks>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#networks #add-network-button{position:fixed;bottom:8px;right:8px;padding:0}#networks #upload-network-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.smtp-dialog{max-width:720px;width:720px}md-dialog.smtp-dialog md-dialog-content{display:block;position:relative}md-dialog.smtp-dialog md-toolbar .title{font-size:17px}md-dialog.smtp-dialog md-input-container textarea{min-height:150px}md-dialog.smtp-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.smtp-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.smtp-dialog .date-container{padding:16px 0 24px 0}md-dialog.smtp-dialog .error-list{font-size:13px}md-dialog.smtp-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smtp-dialog .error-list .error .message{font-weight:500}md-dialog.smtp-dialog .error-list .error .md-button{margin:0}md-dialog.smtp-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smtp-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#smtps{position:relative}#smtps>.header{height:76px;min-height:76px;max-height:76px}#smtps>.header .logo .logo-icon{margin:0 16px 0 0}#smtps>.header .logo .logo-text{font-size:24px}#smtps>.header md-icon{color:#fff}#smtps>.header .search-input-wrapper{position:relative}#smtps>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#smtps>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#smtps>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#smtps>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#smtps>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#smtps>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#smtps>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#smtps>.header.selected-bar .close-button-wrapper{width:244px}#smtps>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#smtps>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#smtps>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#smtps>.content .smtp-detail-form-container{padding:24px;margin-bottom:24px}#smtps>.content .smtp-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#smtps>.content .smtp-detail-form-container .handle{cursor:move}#smtps>.content .smtp-detail-form-container md-input-container md-switch{margin:0!important}#smtps>.content .smtp-detail-form-container #smtp-image-uploader{position:relative}#smtps>.content .smtp-detail-form-container #smtp-image-uploader.dropping .drop-text{display:flex}#smtps>.content .smtp-detail-form-container #smtp-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#smtps>.content .smtp-detail-form-container #smtp-image-uploader .upload-button{margin-bottom:16px}#smtps>.content .smtp-detail-form-container #smtp-image-uploader .smtp-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#smtps>.content .smtp-detail-form-container #smtp-image-uploader .smtp-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#smtps>.content .smtp-detail-form-container #smtp-image-uploader .smtp-image .media{max-height:100%}#smtps #add-smtp-button{position:fixed;bottom:8px;right:8px;padding:0}#system>.header{height:76px;min-height:76px;max-height:76px}#system>.header .logo .logo-icon{margin:0 16px 0 0}#system>.header .logo .logo-text{font-size:24px}#system>.header md-icon{color:#fff}#system .system-detail-form-container{padding:24px;margin-bottom:24px}#system .system-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#system .system-detail-form-container .handle{cursor:move}#system .system-detail-form-container md-input-container md-switch{margin:0!important}#system .system-detail-form-container #system-image-uploader{position:relative}#system .system-detail-form-container #system-image-uploader.dropping .drop-text{display:flex}#system .system-detail-form-container #system-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#system .system-detail-form-container #system-image-uploader .upload-button{margin-bottom:16px}#system .system-detail-form-container #system-image-uploader .system-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#system .system-detail-form-container #system-image-uploader .system-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#system .system-detail-form-container #system-image-uploader .system-image .media{max-height:100%}#updates{position:relative}#updates>.header{height:76px;min-height:76px;max-height:76px}#updates>.header .logo .logo-icon{margin:0 16px 0 0}#updates>.header .logo .logo-text{font-size:24px}#updates>.header md-icon{color:#fff}#updates>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#updates>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#updates>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#realtime>.content .blink{animation:blinker 2s linear infinite}#realtime>.content .avatar-wrapper{position:relative}#realtime>.content .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .search-input-wrapper{position:relative;margin-left:20px}#realtime>.content .search-input-wrapper label{padding:6px;cursor:pointer}#realtime>.content .search-input-wrapper md-input-container{padding-top:20px}#realtime>.content .main .labels{padding:8px 16px}#realtime>.content .main .labels .label{margin:0 0 2px 4px;padding:2px 5px;font-size:11px;white-space:nowrap;border-radius:2px}#realtime>.content .main .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .main .avatar-wrapper{position:relative}#realtime>.content .main .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .custom-column{padding:0 24px!important}@keyframes blinker{50%{opacity:0}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.smsAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsCannedAnswer-dialog{max-width:720px;width:720px}md-dialog.smsCannedAnswer-dialog md-dialog-content{display:block;position:relative}md-dialog.smsCannedAnswer-dialog md-toolbar .title{font-size:17px}md-dialog.smsCannedAnswer-dialog md-input-container textarea{min-height:150px}md-dialog.smsCannedAnswer-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.smsCannedAnswer-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.smsCannedAnswer-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsCannedAnswer-dialog .error-list{font-size:13px}md-dialog.smsCannedAnswer-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsCannedAnswer-dialog .error-list .error .message{font-weight:500}md-dialog.smsCannedAnswer-dialog .error-list .error .md-button{margin:0}md-dialog.smsCannedAnswer-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsCannedAnswer-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#sms-smsAccount .header{height:76px;min-height:76px;max-height:76px}#sms-smsAccount .header .goto-smsAccounts-button{margin-right:16px}#sms-smsAccount .header .smsAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#sms-smsAccount .header .smsAccount-image img{height:100%;width:auto;max-width:none}#sms-smsAccount .header .subtitle{margin:6px 0 0 0}#sms-smsAccount .smsAccount-detail-form-container{padding:24px;margin-bottom:24px}#sms-smsAccount .smsAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#sms-smsAccount .smsAccount-detail-form-container .handle{cursor:move}#sms-smsAccount .smsAccount-detail-form-container md-input-container md-switch{margin:0!important}#sms-smsAccount .smsAccount-detail-form-container #smsAccount-image-uploader{position:relative}#sms-smsAccount .smsAccount-detail-form-container #smsAccount-image-uploader.dropping .drop-text{display:flex}#sms-smsAccount .smsAccount-detail-form-container #smsAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#sms-smsAccount .smsAccount-detail-form-container #smsAccount-image-uploader .upload-button{margin-bottom:16px}#sms-smsAccount .smsAccount-detail-form-container #smsAccount-image-uploader .smsAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#sms-smsAccount .smsAccount-detail-form-container #smsAccount-image-uploader .smsAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#sms-smsAccount .smsAccount-detail-form-container #smsAccount-image-uploader .smsAccount-image .media{max-height:100%}#sms-smsAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#sms-smsAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#sms-smsAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#sms-smsAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}@media screen and (min-width:1921px){#sms-smsAccount .actionAppData{width:800px!important}}@media screen and (max-width:1920px){#sms-smsAccount .actionAppData{width:700px!important}}@media screen and (min-width:1751px) and (max-width:1919px){#sms-smsAccount .actionAppData{width:600px!important}}@media screen and (min-width:1601px) and (max-width:1750px){#sms-smsAccount .actionAppData{width:500px!important}}@media screen and (min-width:1537px) and (max-width:1600px){#sms-smsAccount .actionAppData{width:450px!important}}@media screen and (min-width:1281px) and (max-width:1536px){#sms-smsAccount .actionAppData{width:300px!important}}@media screen and (max-width:1280px){#sms-smsAccount .actionAppData{width:150px!important}}@media screen and (max-width:960px){#sms-smsAccount .actionAppData{width:80px!important}}#smsAccounts{position:relative}#smsAccounts>.header{height:76px;min-height:76px;max-height:76px}#smsAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#smsAccounts>.header .logo .logo-text{font-size:24px}#smsAccounts>.header md-icon{color:#fff}#smsAccounts>.header .search-input-wrapper{position:relative}#smsAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#smsAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#smsAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#smsAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#smsAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#smsAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#smsAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#smsAccounts>.header.selected-bar .close-button-wrapper{width:244px}#smsAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#smsAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#smsAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#smsAccounts #add-smsAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#smsAccounts #upload-smsAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.smsQueue-dialog{max-width:720px;width:720px}md-dialog.smsQueue-dialog md-dialog-content{display:block;position:relative}md-dialog.smsQueue-dialog md-toolbar .title{font-size:17px}md-dialog.smsQueue-dialog md-input-container textarea{min-height:150px}md-dialog.smsQueue-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.smsQueue-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.smsQueue-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsQueue-dialog .error-list{font-size:13px}md-dialog.smsQueue-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsQueue-dialog .error-list .error .message{font-weight:500}md-dialog.smsQueue-dialog .error-list .error .md-button{margin:0}md-dialog.smsQueue-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsQueue-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#sms-smsQueue .header{height:76px;min-height:76px;max-height:76px}#sms-smsQueue .header .goto-smsQueues-button{margin-right:16px}#sms-smsQueue .header .smsQueue-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#sms-smsQueue .header .smsQueue-image img{height:100%;width:auto;max-width:none}#sms-smsQueue .header .subtitle{margin:6px 0 0 0}#sms-smsQueue .smsQueue-detail-form-container{padding:24px;margin-bottom:24px}#sms-smsQueue .smsQueue-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#sms-smsQueue .smsQueue-detail-form-container .handle{cursor:move}#sms-smsQueue .smsQueue-detail-form-container md-input-container md-switch{margin:0!important}#sms-smsQueue .smsQueue-detail-form-container #smsQueue-image-uploader{position:relative}#sms-smsQueue .smsQueue-detail-form-container #smsQueue-image-uploader.dropping .drop-text{display:flex}#sms-smsQueue .smsQueue-detail-form-container #smsQueue-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#sms-smsQueue .smsQueue-detail-form-container #smsQueue-image-uploader .upload-button{margin-bottom:16px}#sms-smsQueue .smsQueue-detail-form-container #smsQueue-image-uploader .smsQueue-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#sms-smsQueue .smsQueue-detail-form-container #smsQueue-image-uploader .smsQueue-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#sms-smsQueue .smsQueue-detail-form-container #smsQueue-image-uploader .smsQueue-image .media{max-height:100%}#sms-smsQueue md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#sms-smsQueue md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#sms-smsQueue md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#sms-smsQueue md-table-container.font-size-12 td.md-cell{font-size:12px!important}#smsQueues{position:relative}#smsQueues>.header{height:76px;min-height:76px;max-height:76px}#smsQueues>.header .logo .logo-icon{margin:0 16px 0 0}#smsQueues>.header .logo .logo-text{font-size:24px}#smsQueues>.header md-icon{color:#fff}#smsQueues>.header .search-input-wrapper{position:relative}#smsQueues>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#smsQueues>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#smsQueues>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#smsQueues>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#smsQueues>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#smsQueues>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#smsQueues>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#smsQueues>.header.selected-bar .close-button-wrapper{width:244px}#smsQueues>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#smsQueues>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#smsQueues>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#smsQueues #add-smsQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#smsQueues #upload-smsQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#agents{position:relative}#agents>.header{height:76px;min-height:76px;max-height:76px}#agents>.header .logo .logo-icon{margin:0 16px 0 0}#agents>.header .logo .logo-text{font-size:24px}#agents>.header md-icon{color:#fff}#agents>.header .search-input-wrapper{position:relative}#agents>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#agents>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#agents>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#agents>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#agents>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#agents>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#agents>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#agents>.header.selected-bar .close-button-wrapper{width:244px}#agents>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#agents>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#agents>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#agents #add-agent-button{position:fixed;bottom:8px;right:8px;padding:0}#agents #upload-agent-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.agent-dialog{max-width:720px;width:720px}md-dialog.agent-dialog md-dialog-content{display:block;position:relative}md-dialog.agent-dialog md-toolbar .title{font-size:17px}md-dialog.agent-dialog md-input-container textarea{min-height:150px}md-dialog.agent-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.agent-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.agent-dialog .date-container{padding:16px 0 24px 0}md-dialog.agent-dialog .error-list{font-size:13px}md-dialog.agent-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.agent-dialog .error-list .error .message{font-weight:500}md-dialog.agent-dialog .error-list .error .md-button{margin:0}md-dialog.agent-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.agent-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#staff-agent .header{height:76px;min-height:76px;max-height:76px}#staff-agent .header .goto-agents-button{margin-right:16px}#staff-agent .header .agent-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#staff-agent .header .agent-image img{height:100%;width:auto;max-width:none}#staff-agent .header .subtitle{margin:6px 0 0 0}#staff-agent .agent-detail-form-container{padding:24px;margin-bottom:24px}#staff-agent .agent-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#staff-agent .agent-detail-form-container .handle{cursor:move}#staff-agent .agent-detail-form-container md-input-container md-switch{margin:0!important}#staff-agent .agent-detail-form-container #agent-image-uploader{position:relative}#staff-agent .agent-detail-form-container #agent-image-uploader.dropping .drop-text{display:flex}#staff-agent .agent-detail-form-container #agent-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#staff-agent .agent-detail-form-container #agent-image-uploader .upload-button{margin-bottom:16px}#staff-agent .agent-detail-form-container #agent-image-uploader .agent-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#staff-agent .agent-detail-form-container #agent-image-uploader .agent-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#staff-agent .agent-detail-form-container #agent-image-uploader .agent-image .media{max-height:100%}#staff-agent md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#staff-agent md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#staff-agent md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#staff-agent md-table-container.font-size-12 td.md-cell{font-size:12px!important}md-dialog.team-dialog{max-width:720px;width:720px}md-dialog.team-dialog md-dialog-content{display:block;position:relative}md-dialog.team-dialog md-toolbar .title{font-size:17px}md-dialog.team-dialog md-input-container textarea{min-height:150px}md-dialog.team-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.team-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.team-dialog .date-container{padding:16px 0 24px 0}md-dialog.team-dialog .error-list{font-size:13px}md-dialog.team-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.team-dialog .error-list .error .message{font-weight:500}md-dialog.team-dialog .error-list .error .md-button{margin:0}md-dialog.team-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.team-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#teams{position:relative}#teams>.header{height:76px;min-height:76px;max-height:76px}#teams>.header .logo .logo-icon{margin:0 16px 0 0}#teams>.header .logo .logo-text{font-size:24px}#teams>.header md-icon{color:#fff}#teams>.header .search-input-wrapper{position:relative}#teams>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#teams>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#teams>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#teams>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#teams>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#teams>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#teams>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#teams>.header.selected-bar .close-button-wrapper{width:244px}#teams>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#teams>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#teams>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#teams #add-team-button{position:fixed;bottom:8px;right:8px;padding:0}#teams #upload-team-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.telephone-dialog{max-width:720px;width:720px}md-dialog.telephone-dialog md-dialog-content{display:block;position:relative}md-dialog.telephone-dialog md-toolbar .title{font-size:17px}md-dialog.telephone-dialog md-input-container textarea{min-height:150px}md-dialog.telephone-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.telephone-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.telephone-dialog .date-container{padding:16px 0 24px 0}md-dialog.telephone-dialog .error-list{font-size:13px}md-dialog.telephone-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.telephone-dialog .error-list .error .message{font-weight:500}md-dialog.telephone-dialog .error-list .error .md-button{margin:0}md-dialog.telephone-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.telephone-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#staff-telephone .header{height:76px;min-height:76px;max-height:76px}#staff-telephone .header .goto-telephones-button{margin-right:16px}#staff-telephone .header .telephone-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#staff-telephone .header .telephone-image img{height:100%;width:auto;max-width:none}#staff-telephone .header .subtitle{margin:6px 0 0 0}#staff-telephone .telephone-detail-form-container{padding:24px;margin-bottom:24px}#staff-telephone .telephone-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#staff-telephone .telephone-detail-form-container .handle{cursor:move}#staff-telephone .telephone-detail-form-container md-input-container md-switch{margin:0!important}#staff-telephone .telephone-detail-form-container #telephone-image-uploader{position:relative}#staff-telephone .telephone-detail-form-container #telephone-image-uploader.dropping .drop-text{display:flex}#staff-telephone .telephone-detail-form-container #telephone-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#staff-telephone .telephone-detail-form-container #telephone-image-uploader .upload-button{margin-bottom:16px}#staff-telephone .telephone-detail-form-container #telephone-image-uploader .telephone-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#staff-telephone .telephone-detail-form-container #telephone-image-uploader .telephone-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#staff-telephone .telephone-detail-form-container #telephone-image-uploader .telephone-image .media{max-height:100%}#staff-telephone md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#staff-telephone md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#staff-telephone md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#staff-telephone md-table-container.font-size-12 td.md-cell{font-size:12px!important}#telephones{position:relative}#telephones>.header{height:76px;min-height:76px;max-height:76px}#telephones>.header .logo .logo-icon{margin:0 16px 0 0}#telephones>.header .logo .logo-text{font-size:24px}#telephones>.header md-icon{color:#fff}#telephones>.header .search-input-wrapper{position:relative}#telephones>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#telephones>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#telephones>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#telephones>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#telephones>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#telephones>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#telephones>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#telephones>.header.selected-bar .close-button-wrapper{width:244px}#telephones>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#telephones>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#telephones>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#telephones #add-telephone-button{position:fixed;bottom:8px;right:8px;padding:0}#telephones #upload-telephone-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.userProfile-dialog{max-width:720px;width:720px}md-dialog.userProfile-dialog md-dialog-content{display:block;position:relative}md-dialog.userProfile-dialog md-toolbar .title{font-size:17px}md-dialog.userProfile-dialog md-input-container textarea{min-height:150px}md-dialog.userProfile-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.userProfile-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.userProfile-dialog .date-container{padding:16px 0 24px 0}md-dialog.userProfile-dialog .error-list{font-size:13px}md-dialog.userProfile-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.userProfile-dialog .error-list .error .message{font-weight:500}md-dialog.userProfile-dialog .error-list .error .md-button{margin:0}md-dialog.userProfile-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.userProfile-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#staff-userProfile .header{height:76px;min-height:76px;max-height:76px}#staff-userProfile .header .goto-userProfiles-button{margin-right:16px}#staff-userProfile .header .userProfile-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#staff-userProfile .header .userProfile-image img{height:100%;width:auto;max-width:none}#staff-userProfile .header .subtitle{margin:6px 0 0 0}#staff-userProfile .userProfile-detail-form-container{padding:24px;margin-bottom:24px}#staff-userProfile .userProfile-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#staff-userProfile .userProfile-detail-form-container .handle{cursor:move}#staff-userProfile .userProfile-detail-form-container md-input-container md-switch{margin:0!important}#staff-userProfile .userProfile-detail-form-container #userProfile-image-uploader{position:relative}#staff-userProfile .userProfile-detail-form-container #userProfile-image-uploader.dropping .drop-text{display:flex}#staff-userProfile .userProfile-detail-form-container #userProfile-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#staff-userProfile .userProfile-detail-form-container #userProfile-image-uploader .upload-button{margin-bottom:16px}#staff-userProfile .userProfile-detail-form-container #userProfile-image-uploader .userProfile-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#staff-userProfile .userProfile-detail-form-container #userProfile-image-uploader .userProfile-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#staff-userProfile .userProfile-detail-form-container #userProfile-image-uploader .userProfile-image .media{max-height:100%}#staff-userProfile md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#staff-userProfile md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#staff-userProfile md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#staff-userProfile md-table-container.font-size-12 td.md-cell{font-size:12px!important}#userProfiles{position:relative}#userProfiles>.header{height:76px;min-height:76px;max-height:76px}#userProfiles>.header .logo .logo-icon{margin:0 16px 0 0}#userProfiles>.header .logo .logo-text{font-size:24px}#userProfiles>.header md-icon{color:#fff}#userProfiles>.header .search-input-wrapper{position:relative}#userProfiles>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#userProfiles>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#userProfiles>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#userProfiles>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#userProfiles>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#userProfiles>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#userProfiles>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#userProfiles>.header.selected-bar .close-button-wrapper{width:244px}#userProfiles>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#userProfiles>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#userProfiles>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#userProfiles #add-userProfile-button{position:fixed;bottom:8px;right:8px;padding:0}#userProfiles #upload-userProfile-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.user-dialog{max-width:720px;width:720px}md-dialog.user-dialog md-dialog-content{display:block;position:relative}md-dialog.user-dialog md-toolbar .title{font-size:17px}md-dialog.user-dialog md-input-container textarea{min-height:150px}md-dialog.user-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.user-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.user-dialog .date-container{padding:16px 0 24px 0}md-dialog.user-dialog .error-list{font-size:13px}md-dialog.user-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.user-dialog .error-list .error .message{font-weight:500}md-dialog.user-dialog .error-list .error .md-button{margin:0}md-dialog.user-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.user-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#staff-user .header{height:76px;min-height:76px;max-height:76px}#staff-user .header .goto-users-button{margin-right:16px}#staff-user .header .user-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#staff-user .header .user-image img{height:100%;width:auto;max-width:none}#staff-user .header .subtitle{margin:6px 0 0 0}#staff-user .user-detail-form-container{padding:24px;margin-bottom:24px}#staff-user .user-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#staff-user .user-detail-form-container .handle{cursor:move}#staff-user .user-detail-form-container md-input-container md-switch{margin:0!important}#staff-user .user-detail-form-container #user-image-uploader{position:relative}#staff-user .user-detail-form-container #user-image-uploader.dropping .drop-text{display:flex}#staff-user .user-detail-form-container #user-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#staff-user .user-detail-form-container #user-image-uploader .upload-button{margin-bottom:16px}#staff-user .user-detail-form-container #user-image-uploader .user-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#staff-user .user-detail-form-container #user-image-uploader .user-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#staff-user .user-detail-form-container #user-image-uploader .user-image .media{max-height:100%}#staff-user md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#staff-user md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#staff-user md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#staff-user md-table-container.font-size-12 td.md-cell{font-size:12px!important}#users{position:relative}#users>.header{height:76px;min-height:76px;max-height:76px}#users>.header .logo .logo-icon{margin:0 16px 0 0}#users>.header .logo .logo-text{font-size:24px}#users>.header md-icon{color:#fff}#users>.header .search-input-wrapper{position:relative}#users>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#users>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#users>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#users>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#users>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#users>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#users>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#users>.header.selected-bar .close-button-wrapper{width:244px}#users>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#users>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#users>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#users #add-user-button{position:fixed;bottom:8px;right:8px;padding:0}#users #upload-user-button{position:fixed;bottom:8px;right:8px;padding:0}#cannedAnswers{position:relative}#cannedAnswers>.header{height:76px;min-height:76px;max-height:76px}#cannedAnswers>.header .logo .logo-icon{margin:0 16px 0 0}#cannedAnswers>.header .logo .logo-text{font-size:24px}#cannedAnswers>.header md-icon{color:#fff}#cannedAnswers>.header .search-input-wrapper{position:relative}#cannedAnswers>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#cannedAnswers>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#cannedAnswers>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#cannedAnswers>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#cannedAnswers>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#cannedAnswers>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#cannedAnswers>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#cannedAnswers>.header.selected-bar .close-button-wrapper{width:244px}#cannedAnswers>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#cannedAnswers>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#cannedAnswers>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#cannedAnswers #add-cannedAnswer-button{position:fixed;bottom:8px;right:8px;padding:0}#cannedAnswers #upload-cannedAnswer-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.cannedAnswer-dialog{max-width:720px;width:720px}md-dialog.cannedAnswer-dialog md-dialog-content{display:block;position:relative}md-dialog.cannedAnswer-dialog md-toolbar .title{font-size:17px}md-dialog.cannedAnswer-dialog md-input-container textarea{min-height:150px}md-dialog.cannedAnswer-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.cannedAnswer-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.cannedAnswer-dialog .date-container{padding:16px 0 24px 0}md-dialog.cannedAnswer-dialog .error-list{font-size:13px}md-dialog.cannedAnswer-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.cannedAnswer-dialog .error-list .error .message{font-weight:500}md-dialog.cannedAnswer-dialog .error-list .error .md-button{margin:0}md-dialog.cannedAnswer-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.cannedAnswer-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.customDashboard-dialog{max-width:720px;width:720px}md-dialog.customDashboard-dialog md-dialog-content{display:block;position:relative}md-dialog.customDashboard-dialog md-toolbar .title{font-size:17px}md-dialog.customDashboard-dialog md-input-container textarea{min-height:150px}md-dialog.customDashboard-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.customDashboard-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.customDashboard-dialog .date-container{padding:16px 0 24px 0}md-dialog.customDashboard-dialog .error-list{font-size:13px}md-dialog.customDashboard-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.customDashboard-dialog .error-list .error .message{font-weight:500}md-dialog.customDashboard-dialog .error-list .error .md-button{margin:0}md-dialog.customDashboard-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.customDashboard-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#customDashboards{position:relative}#customDashboards>.header{height:76px;min-height:76px;max-height:76px}#customDashboards>.header .logo .logo-icon{margin:0 16px 0 0}#customDashboards>.header .logo .logo-text{font-size:24px}#customDashboards>.header md-icon{color:#fff}#customDashboards>.header .search-input-wrapper{position:relative}#customDashboards>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#customDashboards>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#customDashboards>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#customDashboards>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#customDashboards>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#customDashboards>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#customDashboards>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#customDashboards>.header.selected-bar .close-button-wrapper{width:244px}#customDashboards>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#customDashboards>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#customDashboards>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#customDashboards #add-customDashboard-button{position:fixed;bottom:8px;right:8px;padding:0}#customDashboards #upload-customDashboard-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.dashboarditem-dialog{max-width:720px;width:720px}md-dialog.dashboarditem-dialog md-dialog-content{display:block;position:relative}md-dialog.dashboarditem-dialog md-toolbar .title{font-size:17px}md-dialog.dashboarditem-dialog md-input-container textarea{min-height:150px}md-dialog.dashboarditem-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.dashboarditem-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.dashboarditem-dialog .date-container{padding:16px 0 24px 0}md-dialog.dashboarditem-dialog .error-list{font-size:13px}md-dialog.dashboarditem-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.dashboarditem-dialog .error-list .error .message{font-weight:500}md-dialog.dashboarditem-dialog .error-list .error .md-button{margin:0}md-dialog.dashboarditem-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.dashboarditem-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#tools-customDashboard .header{height:76px;min-height:76px;max-height:76px}#tools-customDashboard .header .goto-customDashboards-button{margin-right:16px}#tools-customDashboard .header .customDashboard-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#tools-customDashboard .header .customDashboard-image img{height:100%;width:auto;max-width:none}#tools-customDashboard .header .subtitle{margin:6px 0 0 0}#tools-customDashboard .customDashboard-detail-form-container{padding:24px;margin-bottom:24px}#tools-customDashboard .customDashboard-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#tools-customDashboard .customDashboard-detail-form-container .handle{cursor:move}#tools-customDashboard .customDashboard-detail-form-container md-input-container md-switch{margin:0!important}#tools-customDashboard .customDashboard-detail-form-container #customDashboard-image-uploader{position:relative}#tools-customDashboard .customDashboard-detail-form-container #customDashboard-image-uploader.dropping .drop-text{display:flex}#tools-customDashboard .customDashboard-detail-form-container #customDashboard-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#tools-customDashboard .customDashboard-detail-form-container #customDashboard-image-uploader .upload-button{margin-bottom:16px}#tools-customDashboard .customDashboard-detail-form-container #customDashboard-image-uploader .customDashboard-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#tools-customDashboard .customDashboard-detail-form-container #customDashboard-image-uploader .customDashboard-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#tools-customDashboard .customDashboard-detail-form-container #customDashboard-image-uploader .customDashboard-image .media{max-height:100%}#tools-customDashboard md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#tools-customDashboard md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#tools-customDashboard md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#tools-customDashboard md-table-container.font-size-12 td.md-cell{font-size:12px!important}md-dialog.disposition-dialog{max-width:720px;width:720px}md-dialog.disposition-dialog md-dialog-content{display:block;position:relative}md-dialog.disposition-dialog md-toolbar .title{font-size:17px}md-dialog.disposition-dialog md-input-container textarea{min-height:150px}md-dialog.disposition-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.disposition-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.disposition-dialog .date-container{padding:16px 0 24px 0}md-dialog.disposition-dialog .error-list{font-size:13px}md-dialog.disposition-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.disposition-dialog .error-list .error .message{font-weight:500}md-dialog.disposition-dialog .error-list .error .md-button{margin:0}md-dialog.disposition-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.disposition-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#dispositions{position:relative}#dispositions>.header{height:76px;min-height:76px;max-height:76px}#dispositions>.header .logo .logo-icon{margin:0 16px 0 0}#dispositions>.header .logo .logo-text{font-size:24px}#dispositions>.header md-icon{color:#fff}#dispositions>.header .search-input-wrapper{position:relative}#dispositions>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#dispositions>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#dispositions>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#dispositions>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#dispositions>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#dispositions>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#dispositions>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#dispositions>.header.selected-bar .close-button-wrapper{width:244px}#dispositions>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#dispositions>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#dispositions>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#dispositions #add-disposition-button{position:fixed;bottom:8px;right:8px;padding:0}#dispositions #upload-disposition-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.interval-dialog{max-width:720px;width:720px}md-dialog.interval-dialog md-dialog-content{display:block;position:relative}md-dialog.interval-dialog md-toolbar .title{font-size:17px}md-dialog.interval-dialog md-input-container textarea{min-height:150px}md-dialog.interval-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.interval-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.interval-dialog .date-container{padding:16px 0 24px 0}md-dialog.interval-dialog .error-list{font-size:13px}md-dialog.interval-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.interval-dialog .error-list .error .message{font-weight:500}md-dialog.interval-dialog .error-list .error .md-button{margin:0}md-dialog.interval-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.interval-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.interval-dialog{max-width:720px;width:720px}md-dialog.interval-dialog md-dialog-content{display:block;position:relative}md-dialog.interval-dialog md-toolbar .title{font-size:17px}md-dialog.interval-dialog md-input-container textarea{min-height:150px}md-dialog.interval-dialog .date-container{padding:16px 0 24px 0}md-dialog.interval-dialog .error-list{font-size:13px}md-dialog.interval-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.interval-dialog .error-list .error .message{font-weight:500}md-dialog.interval-dialog .error-list .error .md-button{margin:0}md-dialog.interval-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.interval-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.interval-dialog{max-width:720px;width:720px}md-dialog.interval-dialog md-dialog-content{display:block;position:relative}md-dialog.interval-dialog md-toolbar .title{font-size:17px}md-dialog.interval-dialog md-input-container textarea{min-height:150px}md-dialog.interval-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.interval-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.interval-dialog .date-container{padding:16px 0 24px 0}md-dialog.interval-dialog .error-list{font-size:13px}md-dialog.interval-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.interval-dialog .error-list .error .message{font-weight:500}md-dialog.interval-dialog .error-list .error .md-button{margin:0}md-dialog.interval-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.interval-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#tools-interval .header{height:76px;min-height:76px;max-height:76px}#tools-interval .header .goto-intervals-button{margin-right:16px}#tools-interval .header .interval-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#tools-interval .header .interval-image img{height:100%;width:auto;max-width:none}#tools-interval .header .subtitle{margin:6px 0 0 0}#tools-interval .interval-detail-form-container{padding:24px;margin-bottom:24px}#tools-interval .interval-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#tools-interval .interval-detail-form-container .handle{cursor:move}#tools-interval .interval-detail-form-container md-input-container md-switch{margin:0!important}#tools-interval .interval-detail-form-container #interval-image-uploader{position:relative}#tools-interval .interval-detail-form-container #interval-image-uploader.dropping .drop-text{display:flex}#tools-interval .interval-detail-form-container #interval-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#tools-interval .interval-detail-form-container #interval-image-uploader .upload-button{margin-bottom:16px}#tools-interval .interval-detail-form-container #interval-image-uploader .interval-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#tools-interval .interval-detail-form-container #interval-image-uploader .interval-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#tools-interval .interval-detail-form-container #interval-image-uploader .interval-image .media{max-height:100%}#tools-interval md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#tools-interval md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#tools-interval md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#tools-interval md-table-container.font-size-12 td.md-cell{font-size:12px!important}#intervals{position:relative}#intervals>.header{height:76px;min-height:76px;max-height:76px}#intervals>.header .logo .logo-icon{margin:0 16px 0 0}#intervals>.header .logo .logo-text{font-size:24px}#intervals>.header md-icon{color:#fff}#intervals>.header .search-input-wrapper{position:relative}#intervals>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#intervals>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#intervals>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#intervals>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#intervals>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#intervals>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#intervals>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#intervals>.header.selected-bar .close-button-wrapper{width:244px}#intervals>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#intervals>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#intervals>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#intervals #add-interval-button{position:fixed;bottom:8px;right:8px;padding:0}#intervals #upload-interval-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.pause-dialog{max-width:720px;width:720px}md-dialog.pause-dialog md-dialog-content{display:block;position:relative}md-dialog.pause-dialog md-toolbar .title{font-size:17px}md-dialog.pause-dialog md-input-container textarea{min-height:150px}md-dialog.pause-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.pause-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.pause-dialog .date-container{padding:16px 0 24px 0}md-dialog.pause-dialog .error-list{font-size:13px}md-dialog.pause-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.pause-dialog .error-list .error .message{font-weight:500}md-dialog.pause-dialog .error-list .error .md-button{margin:0}md-dialog.pause-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.pause-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#pauses{position:relative}#pauses>.header{height:76px;min-height:76px;max-height:76px}#pauses>.header .logo .logo-icon{margin:0 16px 0 0}#pauses>.header .logo .logo-text{font-size:24px}#pauses>.header md-icon{color:#fff}#pauses>.header .search-input-wrapper{position:relative}#pauses>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#pauses>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#pauses>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#pauses>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#pauses>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#pauses>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#pauses>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#pauses>.header.selected-bar .close-button-wrapper{width:244px}#pauses>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#pauses>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#pauses>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#pauses #add-pause-button{position:fixed;bottom:8px;right:8px;padding:0}#pauses #upload-pause-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.schedule-dialog{max-width:720px;width:720px}md-dialog.schedule-dialog md-dialog-content{display:block;position:relative}md-dialog.schedule-dialog md-toolbar .title{font-size:17px}md-dialog.schedule-dialog md-input-container textarea{min-height:150px}md-dialog.schedule-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.schedule-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.schedule-dialog .date-container{padding:16px 0 24px 0}md-dialog.schedule-dialog .error-list{font-size:13px}md-dialog.schedule-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.schedule-dialog .error-list .error .message{font-weight:500}md-dialog.schedule-dialog .error-list .error .md-button{margin:0}md-dialog.schedule-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.schedule-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#schedules{position:relative}#schedules>.header{height:76px;min-height:76px;max-height:76px}#schedules>.header .logo .logo-icon{margin:0 16px 0 0}#schedules>.header .logo .logo-text{font-size:24px}#schedules>.header md-icon{color:#fff}#schedules>.header .search-input-wrapper{position:relative}#schedules>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#schedules>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#schedules>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#schedules>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#schedules>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#schedules>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#schedules>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#schedules>.header.selected-bar .close-button-wrapper{width:244px}#schedules>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#schedules>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#schedules>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#schedules #add-schedule-button{position:fixed;bottom:8px;right:8px;padding:0}#schedules #upload-schedule-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.sound-dialog{max-width:720px;width:720px}md-dialog.sound-dialog md-dialog-content{display:block;position:relative}md-dialog.sound-dialog md-toolbar .title{font-size:17px}md-dialog.sound-dialog md-input-container textarea{min-height:150px}md-dialog.sound-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.sound-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.sound-dialog .date-container{padding:16px 0 24px 0}md-dialog.sound-dialog .error-list{font-size:13px}md-dialog.sound-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.sound-dialog .error-list .error .message{font-weight:500}md-dialog.sound-dialog .error-list .error .md-button{margin:0}md-dialog.sound-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.sound-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#sounds{position:relative}#sounds>.header{height:76px;min-height:76px;max-height:76px}#sounds>.header .logo .logo-icon{margin:0 16px 0 0}#sounds>.header .logo .logo-text{font-size:24px}#sounds>.header md-icon{color:#fff}#sounds>.header .search-input-wrapper{position:relative}#sounds>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#sounds>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#sounds>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#sounds>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#sounds>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#sounds>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#sounds>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#sounds>.header.selected-bar .close-button-wrapper{width:244px}#sounds>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#sounds>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#sounds>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#sounds #add-sound-button{position:fixed;bottom:8px;right:8px;padding:0}#sounds #upload-sound-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.upload-dialog{max-width:720px;width:720px}md-dialog.upload-dialog md-dialog-content{display:block;position:relative}md-dialog.upload-dialog md-toolbar .title{font-size:17px}md-dialog.upload-dialog md-input-container textarea{min-height:150px}md-dialog.upload-dialog md-progress-linear{padding-top:16px!important}md-dialog.upload-dialog .date-container{padding:16px 0 24px 0}md-dialog.upload-dialog .error-list{font-size:13px}md-dialog.upload-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.upload-dialog .error-list .error .message{font-weight:500}md-dialog.upload-dialog .error-list .error .md-button{margin:0}md-dialog.upload-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.upload-dialog .sound-image{overflow:hidden;max-width:148px;margin-right:16px;border:3px solid rgba(0,0,0,.12);padding:10px}md-dialog.upload-dialog .sound-image img{width:auto;max-width:none}md-dialog.upload-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.tag-dialog{max-width:720px;width:720px}md-dialog.tag-dialog md-dialog-content{display:block;position:relative}md-dialog.tag-dialog md-toolbar .title{font-size:17px}md-dialog.tag-dialog md-input-container textarea{min-height:150px}md-dialog.tag-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.tag-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.tag-dialog .date-container{padding:16px 0 24px 0}md-dialog.tag-dialog .error-list{font-size:13px}md-dialog.tag-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.tag-dialog .error-list .error .message{font-weight:500}md-dialog.tag-dialog .error-list .error .md-button{margin:0}md-dialog.tag-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.tag-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#tags{position:relative}#tags>.header{height:76px;min-height:76px;max-height:76px}#tags>.header .logo .logo-icon{margin:0 16px 0 0}#tags>.header .logo .logo-text{font-size:24px}#tags>.header md-icon{color:#fff}#tags>.header .search-input-wrapper{position:relative}#tags>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#tags>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#tags>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#tags>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#tags>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#tags>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#tags>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#tags>.header.selected-bar .close-button-wrapper{width:244px}#tags>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#tags>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#tags>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#tags #add-tag-button{position:fixed;bottom:8px;right:8px;padding:0}#tags #upload-tag-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.template-dialog{max-width:720px;width:720px}md-dialog.template-dialog md-dialog-content{display:block;position:relative}md-dialog.template-dialog md-toolbar .title{font-size:17px}md-dialog.template-dialog md-input-container textarea{min-height:150px}md-dialog.template-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.template-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.template-dialog .date-container{padding:16px 0 24px 0}md-dialog.template-dialog .error-list{font-size:13px}md-dialog.template-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.template-dialog .error-list .error .message{font-weight:500}md-dialog.template-dialog .error-list .error .md-button{margin:0}md-dialog.template-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.template-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#templates{position:relative}#templates>.header{height:76px;min-height:76px;max-height:76px}#templates>.header .logo .logo-icon{margin:0 16px 0 0}#templates>.header .logo .logo-text{font-size:24px}#templates>.header md-icon{color:#fff}#templates>.header .search-input-wrapper{position:relative}#templates>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#templates>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#templates>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#templates>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#templates>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#templates>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#templates>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#templates>.header.selected-bar .close-button-wrapper{width:244px}#templates>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#templates>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#templates>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#templates #add-template-button{position:fixed;bottom:8px;right:8px;padding:0}#templates #upload-template-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.trigger-dialog{max-width:720px;width:720px}md-dialog.trigger-dialog md-dialog-content{display:block;position:relative}md-dialog.trigger-dialog md-toolbar .title{font-size:17px}md-dialog.trigger-dialog md-input-container textarea{min-height:150px}md-dialog.trigger-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.trigger-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.trigger-dialog .date-container{padding:16px 0 24px 0}md-dialog.trigger-dialog .error-list{font-size:13px}md-dialog.trigger-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.trigger-dialog .error-list .error .message{font-weight:500}md-dialog.trigger-dialog .error-list .error .md-button{margin:0}md-dialog.trigger-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.trigger-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.action-dialog{max-width:720px;width:720px}md-dialog.action-dialog md-dialog-content{display:block;position:relative}md-dialog.action-dialog md-toolbar .title{font-size:17px}md-dialog.action-dialog md-input-container textarea{min-height:150px}md-dialog.action-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.action-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.action-dialog .date-container{padding:16px 0 24px 0}md-dialog.action-dialog .error-list{font-size:13px}md-dialog.action-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.action-dialog .error-list .error .message{font-weight:500}md-dialog.action-dialog .error-list .error .md-button{margin:0}md-dialog.action-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.action-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.allCondition-dialog{max-width:720px;width:720px}md-dialog.allCondition-dialog md-dialog-content{display:block;position:relative}md-dialog.allCondition-dialog md-toolbar .title{font-size:17px}md-dialog.allCondition-dialog md-input-container textarea{min-height:150px}md-dialog.allCondition-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.allCondition-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.allCondition-dialog .date-container{padding:16px 0 24px 0}md-dialog.allCondition-dialog .error-list{font-size:13px}md-dialog.allCondition-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.allCondition-dialog .error-list .error .message{font-weight:500}md-dialog.allCondition-dialog .error-list .error .md-button{margin:0}md-dialog.allCondition-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.allCondition-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.anyCondition-dialog{max-width:720px;width:720px}md-dialog.anyCondition-dialog md-dialog-content{display:block;position:relative}md-dialog.anyCondition-dialog md-toolbar .title{font-size:17px}md-dialog.anyCondition-dialog md-input-container textarea{min-height:150px}md-dialog.anyCondition-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.anyCondition-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.anyCondition-dialog .date-container{padding:16px 0 24px 0}md-dialog.anyCondition-dialog .error-list{font-size:13px}md-dialog.anyCondition-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.anyCondition-dialog .error-list .error .message{font-weight:500}md-dialog.anyCondition-dialog .error-list .error .md-button{margin:0}md-dialog.anyCondition-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.anyCondition-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#tools-trigger .header{height:76px;min-height:76px;max-height:76px}#tools-trigger .header .goto-triggers-button{margin-right:16px}#tools-trigger .header .trigger-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#tools-trigger .header .trigger-image img{height:100%;width:auto;max-width:none}#tools-trigger .header .subtitle{margin:6px 0 0 0}#tools-trigger .trigger-detail-form-container{padding:24px;margin-bottom:24px}#tools-trigger .trigger-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#tools-trigger .trigger-detail-form-container .handle{cursor:move}#tools-trigger .trigger-detail-form-container md-input-container md-switch{margin:0!important}#tools-trigger .trigger-detail-form-container #trigger-image-uploader{position:relative}#tools-trigger .trigger-detail-form-container #trigger-image-uploader.dropping .drop-text{display:flex}#tools-trigger .trigger-detail-form-container #trigger-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#tools-trigger .trigger-detail-form-container #trigger-image-uploader .upload-button{margin-bottom:16px}#tools-trigger .trigger-detail-form-container #trigger-image-uploader .trigger-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#tools-trigger .trigger-detail-form-container #trigger-image-uploader .trigger-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#tools-trigger .trigger-detail-form-container #trigger-image-uploader .trigger-image .media{max-height:100%}#tools-trigger md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#tools-trigger md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#tools-trigger md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#tools-trigger md-table-container.font-size-12 td.md-cell{font-size:12px!important}#triggers{position:relative}#triggers>.header{height:76px;min-height:76px;max-height:76px}#triggers>.header .logo .logo-icon{margin:0 16px 0 0}#triggers>.header .logo .logo-text{font-size:24px}#triggers>.header md-icon{color:#fff}#triggers>.header .search-input-wrapper{position:relative}#triggers>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#triggers>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#triggers>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#triggers>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#triggers>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#triggers>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#triggers>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#triggers>.header.selected-bar .close-button-wrapper{width:244px}#triggers>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#triggers>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#triggers>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#triggers #add-trigger-button{position:fixed;bottom:8px;right:8px;padding:0}#triggers #upload-trigger-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.trunk-dialog{max-width:720px;width:720px}md-dialog.trunk-dialog md-dialog-content{display:block;position:relative}md-dialog.trunk-dialog md-toolbar .title{font-size:17px}md-dialog.trunk-dialog md-input-container textarea{min-height:150px}md-dialog.trunk-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.trunk-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.trunk-dialog .date-container{padding:16px 0 24px 0}md-dialog.trunk-dialog .error-list{font-size:13px}md-dialog.trunk-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.trunk-dialog .error-list .error .message{font-weight:500}md-dialog.trunk-dialog .error-list .error .md-button{margin:0}md-dialog.trunk-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.trunk-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#tools-trunk .header{height:76px;min-height:76px;max-height:76px}#tools-trunk .header .goto-trunks-button{margin-right:16px}#tools-trunk .header .trunk-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#tools-trunk .header .trunk-image img{height:100%;width:auto;max-width:none}#tools-trunk .header .subtitle{margin:6px 0 0 0}#tools-trunk .trunk-detail-form-container{padding:24px;margin-bottom:24px}#tools-trunk .trunk-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#tools-trunk .trunk-detail-form-container .handle{cursor:move}#tools-trunk .trunk-detail-form-container md-input-container md-switch{margin:0!important}#tools-trunk .trunk-detail-form-container #trunk-image-uploader{position:relative}#tools-trunk .trunk-detail-form-container #trunk-image-uploader.dropping .drop-text{display:flex}#tools-trunk .trunk-detail-form-container #trunk-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#tools-trunk .trunk-detail-form-container #trunk-image-uploader .upload-button{margin-bottom:16px}#tools-trunk .trunk-detail-form-container #trunk-image-uploader .trunk-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#tools-trunk .trunk-detail-form-container #trunk-image-uploader .trunk-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#tools-trunk .trunk-detail-form-container #trunk-image-uploader .trunk-image .media{max-height:100%}#tools-trunk md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#tools-trunk md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#tools-trunk md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#tools-trunk md-table-container.font-size-12 td.md-cell{font-size:12px!important}#trunks{position:relative}#trunks>.header{height:76px;min-height:76px;max-height:76px}#trunks>.header .logo .logo-icon{margin:0 16px 0 0}#trunks>.header .logo .logo-text{font-size:24px}#trunks>.header md-icon{color:#fff}#trunks>.header .search-input-wrapper{position:relative}#trunks>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#trunks>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#trunks>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#trunks>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#trunks>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#trunks>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#trunks>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#trunks>.header.selected-bar .close-button-wrapper{width:244px}#trunks>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#trunks>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#trunks>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#trunks #add-trunk-button{position:fixed;bottom:8px;right:8px;padding:0}#trunks #upload-trunk-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.variable-dialog{max-width:720px;width:720px}md-dialog.variable-dialog md-dialog-content{display:block;position:relative}md-dialog.variable-dialog md-toolbar .title{font-size:17px}md-dialog.variable-dialog md-input-container textarea{min-height:150px}md-dialog.variable-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.variable-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.variable-dialog .date-container{padding:16px 0 24px 0}md-dialog.variable-dialog .error-list{font-size:13px}md-dialog.variable-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.variable-dialog .error-list .error .message{font-weight:500}md-dialog.variable-dialog .error-list .error .md-button{margin:0}md-dialog.variable-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.variable-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#variables{position:relative}#variables>.header{height:76px;min-height:76px;max-height:76px}#variables>.header .logo .logo-icon{margin:0 16px 0 0}#variables>.header .logo .logo-text{font-size:24px}#variables>.header md-icon{color:#fff}#variables>.header .search-input-wrapper{position:relative}#variables>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#variables>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#variables>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#variables>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#variables>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#variables>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#variables>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#variables>.header.selected-bar .close-button-wrapper{width:244px}#variables>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#variables>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#variables>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#variables #add-variable-button{position:fixed;bottom:8px;right:8px;padding:0}#variables #upload-variable-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.screenRecording-dialog{max-width:720px;width:720px}md-dialog.screenRecording-dialog md-dialog-content{display:block;position:relative}md-dialog.screenRecording-dialog md-toolbar .title{font-size:17px}md-dialog.screenRecording-dialog md-input-container textarea{min-height:150px}md-dialog.screenRecording-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.screenRecording-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.screenRecording-dialog .date-container{padding:16px 0 24px 0}md-dialog.screenRecording-dialog .error-list{font-size:13px}md-dialog.screenRecording-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.screenRecording-dialog .error-list .error .message{font-weight:500}md-dialog.screenRecording-dialog .error-list .error .md-button{margin:0}md-dialog.screenRecording-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.screenRecording-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#screenRecordings{position:relative}#screenRecordings>.header{height:76px;min-height:76px;max-height:76px}#screenRecordings>.header .logo .logo-icon{margin:0 16px 0 0}#screenRecordings>.header .logo .logo-text{font-size:24px}#screenRecordings>.header md-icon{color:#fff}#screenRecordings>.header .search-input-wrapper{position:relative}#screenRecordings>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#screenRecordings>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#screenRecordings>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#screenRecordings>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#screenRecordings>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#screenRecordings>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#screenRecordings>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#screenRecordings>.header.selected-bar .close-button-wrapper{width:244px}#screenRecordings>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#screenRecordings>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#screenRecordings>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#screenRecordings #add-screenRecording-button{position:fixed;bottom:8px;right:8px;padding:0}#screenRecordings #upload-screenRecording-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.voice-routing-dialog{max-width:720px;width:720px}md-dialog.voice-routing-dialog md-dialog-content{display:block;position:relative}md-dialog.voice-routing-dialog md-toolbar .title{font-size:17px}md-dialog.voice-routing-dialog md-input-container textarea{min-height:150px}md-dialog.voice-routing-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.voice-routing-dialog .date-container{padding:16px 0 24px 0}md-dialog.voice-routing-dialog .error-list{font-size:13px}md-dialog.voice-routing-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.voice-routing-dialog .error-list .error .message{font-weight:500}md-dialog.voice-routing-dialog .error-list .error .md-button{margin:0}md-dialog.voice-routing-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.voice-routing-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.interval-dialog{max-width:720px;width:720px}md-dialog.interval-dialog md-dialog-content{display:block;position:relative}md-dialog.interval-dialog md-toolbar .title{font-size:17px}md-dialog.interval-dialog md-input-container textarea{min-height:150px}md-dialog.interval-dialog .date-container{padding:16px 0 24px 0}md-dialog.interval-dialog .error-list{font-size:13px}md-dialog.interval-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.interval-dialog .error-list .error .message{font-weight:500}md-dialog.interval-dialog .error-list .error .md-button{margin:0}md-dialog.interval-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.interval-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#chanSpies{position:relative}#chanSpies>.header{height:76px;min-height:76px;max-height:76px}#chanSpies>.header .logo .logo-icon{margin:0 16px 0 0}#chanSpies>.header .logo .logo-text{font-size:24px}#chanSpies>.header md-icon{color:#fff}#chanSpies>.header .search-input-wrapper{position:relative}#chanSpies>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#chanSpies>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#chanSpies>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#chanSpies>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#chanSpies>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#chanSpies>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#chanSpies>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#chanSpies>.header.selected-bar .close-button-wrapper{width:244px}#chanSpies>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#chanSpies>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#chanSpies>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#chanSpies #add-chanSpy-button{position:fixed;bottom:8px;right:8px;padding:0}#chanSpies #upload-chanSpy-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.chanSpy-dialog{max-width:720px;width:720px}md-dialog.chanSpy-dialog md-dialog-content{display:block;position:relative}md-dialog.chanSpy-dialog md-toolbar .title{font-size:17px}md-dialog.chanSpy-dialog md-input-container textarea{min-height:150px}md-dialog.chanSpy-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.chanSpy-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.chanSpy-dialog .date-container{padding:16px 0 24px 0}md-dialog.chanSpy-dialog .error-list{font-size:13px}md-dialog.chanSpy-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chanSpy-dialog .error-list .error .message{font-weight:500}md-dialog.chanSpy-dialog .error-list .error .md-button{margin:0}md-dialog.chanSpy-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chanSpy-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#contexts{position:relative}#contexts>.header{height:76px;min-height:76px;max-height:76px}#contexts>.header .logo .logo-icon{margin:0 16px 0 0}#contexts>.header .logo .logo-text{font-size:24px}#contexts>.header md-icon{color:#fff}#contexts>.header .search-input-wrapper{position:relative}#contexts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#contexts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#contexts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#contexts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#contexts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#contexts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#contexts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#contexts>.header.selected-bar .close-button-wrapper{width:244px}#contexts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#contexts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#contexts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#contexts #add-context-button{position:fixed;bottom:8px;right:8px;padding:0}#contexts #upload-context-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.context-dialog{max-width:720px;width:720px}md-dialog.context-dialog md-dialog-content{display:block;position:relative}md-dialog.context-dialog md-toolbar .title{font-size:17px}md-dialog.context-dialog md-input-container textarea{min-height:150px}md-dialog.context-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.context-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.context-dialog .date-container{padding:16px 0 24px 0}md-dialog.context-dialog .error-list{font-size:13px}md-dialog.context-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.context-dialog .error-list .error .message{font-weight:500}md-dialog.context-dialog .error-list .error .md-button{margin:0}md-dialog.context-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.context-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.inbound-route-dialog{max-width:720px;width:720px}md-dialog.inbound-route-dialog md-dialog-content{display:block;position:relative}md-dialog.inbound-route-dialog md-toolbar .title{font-size:17px}md-dialog.inbound-route-dialog md-input-container textarea{min-height:150px}md-dialog.inbound-route-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.inbound-route-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.inbound-route-dialog .date-container{padding:16px 0 24px 0}md-dialog.inbound-route-dialog .error-list{font-size:13px}md-dialog.inbound-route-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.inbound-route-dialog .error-list .error .message{font-weight:500}md-dialog.inbound-route-dialog .error-list .error .md-button{margin:0}md-dialog.inbound-route-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.inbound-route-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#voice-inbound-route .header{height:76px;min-height:76px;max-height:76px}#voice-inbound-route .header .goto-inbound-routes-button{margin-right:16px}#voice-inbound-route .header .inbound-route-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#voice-inbound-route .header .inbound-route-image img{height:100%;width:auto;max-width:none}#voice-inbound-route .header .subtitle{margin:6px 0 0 0}#voice-inbound-route .inbound-route-detail-form-container{padding:24px;margin-bottom:24px}#voice-inbound-route .inbound-route-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#voice-inbound-route .inbound-route-detail-form-container .handle{cursor:move}#voice-inbound-route .inbound-route-detail-form-container md-input-container md-switch{margin:0!important}#voice-inbound-route md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#voice-inbound-route md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#voice-inbound-route md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#voice-inbound-route md-table-container.font-size-12 td.md-cell{font-size:12px!important}@media screen and (min-width:1921px){#voice-inbound-route .actionAppData{width:800px!important}}@media screen and (max-width:1920px){#voice-inbound-route .actionAppData{width:700px!important}}@media screen and (min-width:1751px) and (max-width:1919px){#voice-inbound-route .actionAppData{width:600px!important}}@media screen and (min-width:1601px) and (max-width:1750px){#voice-inbound-route .actionAppData{width:500px!important}}@media screen and (min-width:1537px) and (max-width:1600px){#voice-inbound-route .actionAppData{width:450px!important}}@media screen and (min-width:1281px) and (max-width:1536px){#voice-inbound-route .actionAppData{width:300px!important}}@media screen and (max-width:1280px){#voice-inbound-route .actionAppData{width:150px!important}}@media screen and (max-width:960px){#voice-inbound-route .actionAppData{width:80px!important}}#inbound-routes{position:relative}#inbound-routes>.header{height:76px;min-height:76px;max-height:76px}#inbound-routes>.header .logo .logo-icon{margin:0 16px 0 0}#inbound-routes>.header .logo .logo-text{font-size:24px}#inbound-routes>.header md-icon{color:#fff}#inbound-routes>.header .search-input-wrapper{position:relative}#inbound-routes>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#inbound-routes>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#inbound-routes>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#inbound-routes>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#inbound-routes>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#inbound-routes>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#inbound-routes>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#inbound-routes>.header.selected-bar .close-button-wrapper{width:244px}#inbound-routes>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#inbound-routes>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#inbound-routes>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#inbound-routes #add-inbound-route-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.internal-route-dialog{max-width:720px;width:720px}md-dialog.internal-route-dialog md-dialog-content{display:block;position:relative}md-dialog.internal-route-dialog md-toolbar .title{font-size:17px}md-dialog.internal-route-dialog md-input-container textarea{min-height:150px}md-dialog.internal-route-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.internal-route-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.internal-route-dialog .date-container{padding:16px 0 24px 0}md-dialog.internal-route-dialog .error-list{font-size:13px}md-dialog.internal-route-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.internal-route-dialog .error-list .error .message{font-weight:500}md-dialog.internal-route-dialog .error-list .error .md-button{margin:0}md-dialog.internal-route-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.internal-route-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#voice-internal-route .header{height:76px;min-height:76px;max-height:76px}#voice-internal-route .header .goto-internal-routes-button{margin-right:16px}#voice-internal-route .header .internal-route-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#voice-internal-route .header .internal-route-image img{height:100%;width:auto;max-width:none}#voice-internal-route .header .subtitle{margin:6px 0 0 0}#voice-internal-route .internal-route-detail-form-container{padding:24px;margin-bottom:24px}#voice-internal-route .internal-route-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#voice-internal-route .internal-route-detail-form-container .handle{cursor:move}#voice-internal-route .internal-route-detail-form-container md-input-container md-switch{margin:0!important}#voice-internal-route md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#voice-internal-route md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#voice-internal-route md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#voice-internal-route md-table-container.font-size-12 td.md-cell{font-size:12px!important}@media screen and (min-width:1921px){#voice-internal-route .actionAppData{width:800px!important}}@media screen and (max-width:1920px){#voice-internal-route .actionAppData{width:700px!important}}@media screen and (min-width:1751px) and (max-width:1919px){#voice-internal-route .actionAppData{width:600px!important}}@media screen and (min-width:1601px) and (max-width:1750px){#voice-internal-route .actionAppData{width:500px!important}}@media screen and (min-width:1537px) and (max-width:1600px){#voice-internal-route .actionAppData{width:450px!important}}@media screen and (min-width:1281px) and (max-width:1536px){#voice-internal-route .actionAppData{width:300px!important}}@media screen and (max-width:1280px){#voice-internal-route .actionAppData{width:150px!important}}@media screen and (max-width:960px){#voice-internal-route .actionAppData{width:80px!important}}#internal-routes{position:relative}#internal-routes>.header{height:76px;min-height:76px;max-height:76px}#internal-routes>.header .logo .logo-icon{margin:0 16px 0 0}#internal-routes>.header .logo .logo-text{font-size:24px}#internal-routes>.header md-icon{color:#fff}#internal-routes>.header .search-input-wrapper{position:relative}#internal-routes>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#internal-routes>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#internal-routes>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#internal-routes>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#internal-routes>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#internal-routes>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#internal-routes>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#internal-routes>.header.selected-bar .close-button-wrapper{width:244px}#internal-routes>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#internal-routes>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#internal-routes>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#internal-routes #add-internal-route-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.musiconhold-dialog{max-width:720px;width:720px}md-dialog.musiconhold-dialog md-dialog-content{display:block;position:relative}md-dialog.musiconhold-dialog md-toolbar .title{font-size:17px}md-dialog.musiconhold-dialog md-input-container textarea{min-height:150px}md-dialog.musiconhold-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.musiconhold-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.musiconhold-dialog .date-container{padding:16px 0 24px 0}md-dialog.musiconhold-dialog .error-list{font-size:13px}md-dialog.musiconhold-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.musiconhold-dialog .error-list .error .message{font-weight:500}md-dialog.musiconhold-dialog .error-list .error .md-button{margin:0}md-dialog.musiconhold-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.musiconhold-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mohSound-dialog{max-width:720px;width:720px}md-dialog.mohSound-dialog md-dialog-content{display:block;position:relative}md-dialog.mohSound-dialog md-toolbar .title{font-size:17px}md-dialog.mohSound-dialog md-input-container textarea{min-height:150px}md-dialog.mohSound-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.mohSound-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.mohSound-dialog .date-container{padding:16px 0 24px 0}md-dialog.mohSound-dialog .error-list{font-size:13px}md-dialog.mohSound-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mohSound-dialog .error-list .error .message{font-weight:500}md-dialog.mohSound-dialog .error-list .error .md-button{margin:0}md-dialog.mohSound-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mohSound-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#voice-musiconhold .header{height:76px;min-height:76px;max-height:76px}#voice-musiconhold .header .goto-musiconholds-button{margin-right:16px}#voice-musiconhold .header .musiconhold-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#voice-musiconhold .header .musiconhold-image img{height:100%;width:auto;max-width:none}#voice-musiconhold .header .subtitle{margin:6px 0 0 0}#voice-musiconhold .musiconhold-detail-form-container{padding:24px;margin-bottom:24px}#voice-musiconhold .musiconhold-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#voice-musiconhold .musiconhold-detail-form-container .handle{cursor:move}#voice-musiconhold .musiconhold-detail-form-container md-input-container md-switch{margin:0!important}#voice-musiconhold .musiconhold-detail-form-container #musiconhold-image-uploader{position:relative}#voice-musiconhold .musiconhold-detail-form-container #musiconhold-image-uploader.dropping .drop-text{display:flex}#voice-musiconhold .musiconhold-detail-form-container #musiconhold-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#voice-musiconhold .musiconhold-detail-form-container #musiconhold-image-uploader .upload-button{margin-bottom:16px}#voice-musiconhold .musiconhold-detail-form-container #musiconhold-image-uploader .musiconhold-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#voice-musiconhold .musiconhold-detail-form-container #musiconhold-image-uploader .musiconhold-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#voice-musiconhold .musiconhold-detail-form-container #musiconhold-image-uploader .musiconhold-image .media{max-height:100%}#voice-musiconhold md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#voice-musiconhold md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#voice-musiconhold md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#voice-musiconhold md-table-container.font-size-12 td.md-cell{font-size:12px!important}#musiconholds{position:relative}#musiconholds>.header{height:76px;min-height:76px;max-height:76px}#musiconholds>.header .logo .logo-icon{margin:0 16px 0 0}#musiconholds>.header .logo .logo-text{font-size:24px}#musiconholds>.header md-icon{color:#fff}#musiconholds>.header .search-input-wrapper{position:relative}#musiconholds>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#musiconholds>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#musiconholds>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#musiconholds>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#musiconholds>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#musiconholds>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#musiconholds>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#musiconholds>.header.selected-bar .close-button-wrapper{width:244px}#musiconholds>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#musiconholds>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#musiconholds>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#musiconholds #add-musiconhold-button{position:fixed;bottom:8px;right:8px;padding:0}#musiconholds #upload-musiconhold-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.outbound-route-dialog{max-width:720px;width:720px}md-dialog.outbound-route-dialog md-dialog-content{display:block;position:relative}md-dialog.outbound-route-dialog md-toolbar .title{font-size:17px}md-dialog.outbound-route-dialog md-input-container textarea{min-height:150px}md-dialog.outbound-route-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.outbound-route-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.outbound-route-dialog .date-container{padding:16px 0 24px 0}md-dialog.outbound-route-dialog .error-list{font-size:13px}md-dialog.outbound-route-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.outbound-route-dialog .error-list .error .message{font-weight:500}md-dialog.outbound-route-dialog .error-list .error .md-button{margin:0}md-dialog.outbound-route-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.outbound-route-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#voice-outbound-route .header{height:76px;min-height:76px;max-height:76px}#voice-outbound-route .header .goto-outbound-routes-button{margin-right:16px}#voice-outbound-route .header .outbound-route-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#voice-outbound-route .header .outbound-route-image img{height:100%;width:auto;max-width:none}#voice-outbound-route .header .subtitle{margin:6px 0 0 0}#voice-outbound-route .outbound-route-detail-form-container{padding:24px;margin-bottom:24px}#voice-outbound-route .outbound-route-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#voice-outbound-route .outbound-route-detail-form-container .handle{cursor:move}#voice-outbound-route .outbound-route-detail-form-container md-input-container md-switch{margin:0!important}#voice-outbound-route md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#voice-outbound-route md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#voice-outbound-route md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#voice-outbound-route md-table-container.font-size-12 td.md-cell{font-size:12px!important}@media screen and (min-width:1921px){#voice-outbound-route .actionAppData{width:800px!important}}@media screen and (max-width:1920px){#voice-outbound-route .actionAppData{width:700px!important}}@media screen and (min-width:1751px) and (max-width:1919px){#voice-outbound-route .actionAppData{width:600px!important}}@media screen and (min-width:1601px) and (max-width:1750px){#voice-outbound-route .actionAppData{width:500px!important}}@media screen and (min-width:1537px) and (max-width:1600px){#voice-outbound-route .actionAppData{width:450px!important}}@media screen and (min-width:1281px) and (max-width:1536px){#voice-outbound-route .actionAppData{width:300px!important}}@media screen and (max-width:1280px){#voice-outbound-route .actionAppData{width:150px!important}}@media screen and (max-width:960px){#voice-outbound-route .actionAppData{width:80px!important}}#outbound-routes{position:relative}#outbound-routes>.header{height:76px;min-height:76px;max-height:76px}#outbound-routes>.header .logo .logo-icon{margin:0 16px 0 0}#outbound-routes>.header .logo .logo-text{font-size:24px}#outbound-routes>.header md-icon{color:#fff}#outbound-routes>.header .search-input-wrapper{position:relative}#outbound-routes>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#outbound-routes>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#outbound-routes>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#outbound-routes>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#outbound-routes>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#outbound-routes>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#outbound-routes>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#outbound-routes>.header.selected-bar .close-button-wrapper{width:244px}#outbound-routes>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#outbound-routes>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#outbound-routes>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#outbound-routes #add-outbound-route-button{position:fixed;bottom:8px;right:8px;padding:0}#realtime>.content .blink{animation:blinker 2s linear infinite}#realtime>.content .avatar-wrapper{position:relative}#realtime>.content .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .search-input-wrapper{position:relative;margin-left:20px}#realtime>.content .search-input-wrapper label{padding:6px;cursor:pointer}#realtime>.content .search-input-wrapper md-input-container{padding-top:20px}#realtime>.content .main .labels{padding:8px 16px}#realtime>.content .main .labels .label{margin:0 0 2px 4px;padding:2px 5px;font-size:11px;white-space:nowrap;border-radius:2px}#realtime>.content .main .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .main .avatar-wrapper{position:relative}#realtime>.content .main .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .custom-column{padding:0 24px!important}@keyframes blinker{50%{opacity:0}}md-dialog.voicemail-dialog{max-width:720px;width:720px}md-dialog.voicemail-dialog md-dialog-content{display:block;position:relative}md-dialog.voicemail-dialog md-toolbar .title{font-size:17px}md-dialog.voicemail-dialog md-input-container textarea{min-height:150px}md-dialog.voicemail-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.voicemail-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.voicemail-dialog .date-container{padding:16px 0 24px 0}md-dialog.voicemail-dialog .error-list{font-size:13px}md-dialog.voicemail-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.voicemail-dialog .error-list .error .message{font-weight:500}md-dialog.voicemail-dialog .error-list .error .md-button{margin:0}md-dialog.voicemail-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.voicemail-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#voice-voicemail .header{height:76px;min-height:76px;max-height:76px}#voice-voicemail .header .goto-voicemails-button{margin-right:16px}#voice-voicemail .header .voicemail-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#voice-voicemail .header .voicemail-image img{height:100%;width:auto;max-width:none}#voice-voicemail .header .subtitle{margin:6px 0 0 0}#voice-voicemail .voicemail-detail-form-container{padding:24px;margin-bottom:24px}#voice-voicemail .voicemail-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#voice-voicemail .voicemail-detail-form-container .handle{cursor:move}#voice-voicemail .voicemail-detail-form-container md-input-container md-switch{margin:0!important}#voice-voicemail .voicemail-detail-form-container #voicemail-image-uploader{position:relative}#voice-voicemail .voicemail-detail-form-container #voicemail-image-uploader.dropping .drop-text{display:flex}#voice-voicemail .voicemail-detail-form-container #voicemail-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#voice-voicemail .voicemail-detail-form-container #voicemail-image-uploader .upload-button{margin-bottom:16px}#voice-voicemail .voicemail-detail-form-container #voicemail-image-uploader .voicemail-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#voice-voicemail .voicemail-detail-form-container #voicemail-image-uploader .voicemail-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#voice-voicemail .voicemail-detail-form-container #voicemail-image-uploader .voicemail-image .media{max-height:100%}#voice-voicemail md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#voice-voicemail md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#voice-voicemail md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#voice-voicemail md-table-container.font-size-12 td.md-cell{font-size:12px!important}#voicemails{position:relative}#voicemails>.header{height:76px;min-height:76px;max-height:76px}#voicemails>.header .logo .logo-icon{margin:0 16px 0 0}#voicemails>.header .logo .logo-text{font-size:24px}#voicemails>.header md-icon{color:#fff}#voicemails>.header .search-input-wrapper{position:relative}#voicemails>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#voicemails>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#voicemails>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#voicemails>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#voicemails>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#voicemails>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#voicemails>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#voicemails>.header.selected-bar .close-button-wrapper{width:244px}#voicemails>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#voicemails>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#voicemails>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#voicemails #add-voicemail-button{position:fixed;bottom:8px;right:8px;padding:0}#voicemails #upload-voicemail-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.voicePrefix-dialog{max-width:720px;width:720px}md-dialog.voicePrefix-dialog md-dialog-content{display:block;position:relative}md-dialog.voicePrefix-dialog md-toolbar .title{font-size:17px}md-dialog.voicePrefix-dialog md-input-container textarea{min-height:150px}md-dialog.voicePrefix-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.voicePrefix-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.voicePrefix-dialog .date-container{padding:16px 0 24px 0}md-dialog.voicePrefix-dialog .error-list{font-size:13px}md-dialog.voicePrefix-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.voicePrefix-dialog .error-list .error .message{font-weight:500}md-dialog.voicePrefix-dialog .error-list .error .md-button{margin:0}md-dialog.voicePrefix-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.voicePrefix-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#voicePrefixes{position:relative}#voicePrefixes>.header{height:76px;min-height:76px;max-height:76px}#voicePrefixes>.header .logo .logo-icon{margin:0 16px 0 0}#voicePrefixes>.header .logo .logo-text{font-size:24px}#voicePrefixes>.header md-icon{color:#fff}#voicePrefixes>.header .search-input-wrapper{position:relative}#voicePrefixes>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#voicePrefixes>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#voicePrefixes>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#voicePrefixes>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#voicePrefixes>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#voicePrefixes>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#voicePrefixes>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#voicePrefixes>.header.selected-bar .close-button-wrapper{width:244px}#voicePrefixes>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#voicePrefixes>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#voicePrefixes>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#voicePrefixes #add-voicePrefix-button{position:fixed;bottom:8px;right:8px;padding:0}#voicePrefixes #upload-voicePrefix-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.voiceQueue-dialog{max-width:720px;width:720px}md-dialog.voiceQueue-dialog md-dialog-content{display:block;position:relative}md-dialog.voiceQueue-dialog md-toolbar .title{font-size:17px}md-dialog.voiceQueue-dialog md-input-container textarea{min-height:150px}md-dialog.voiceQueue-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.voiceQueue-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.voiceQueue-dialog .date-container{padding:16px 0 24px 0}md-dialog.voiceQueue-dialog .error-list{font-size:13px}md-dialog.voiceQueue-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.voiceQueue-dialog .error-list .error .message{font-weight:500}md-dialog.voiceQueue-dialog .error-list .error .md-button{margin:0}md-dialog.voiceQueue-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.voiceQueue-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#voice-voiceQueue .header{height:76px;min-height:76px;max-height:76px}#voice-voiceQueue .header .goto-voiceQueues-button{margin-right:16px}#voice-voiceQueue .header .voiceQueue-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#voice-voiceQueue .header .voiceQueue-image img{height:100%;width:auto;max-width:none}#voice-voiceQueue .header .subtitle{margin:6px 0 0 0}#voice-voiceQueue .voiceQueue-detail-form-container{padding:24px;margin-bottom:24px}#voice-voiceQueue .voiceQueue-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#voice-voiceQueue .voiceQueue-detail-form-container .handle{cursor:move}#voice-voiceQueue .voiceQueue-detail-form-container md-input-container md-switch{margin:0!important}#voice-voiceQueue .voiceQueue-detail-form-container #voiceQueue-image-uploader{position:relative}#voice-voiceQueue .voiceQueue-detail-form-container #voiceQueue-image-uploader.dropping .drop-text{display:flex}#voice-voiceQueue .voiceQueue-detail-form-container #voiceQueue-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#voice-voiceQueue .voiceQueue-detail-form-container #voiceQueue-image-uploader .upload-button{margin-bottom:16px}#voice-voiceQueue .voiceQueue-detail-form-container #voiceQueue-image-uploader .voiceQueue-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#voice-voiceQueue .voiceQueue-detail-form-container #voiceQueue-image-uploader .voiceQueue-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#voice-voiceQueue .voiceQueue-detail-form-container #voiceQueue-image-uploader .voiceQueue-image .media{max-height:100%}#voice-voiceQueue md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#voice-voiceQueue md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#voice-voiceQueue md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#voice-voiceQueue md-table-container.font-size-12 td.md-cell{font-size:12px!important}#voiceQueues{position:relative}#voiceQueues>.header{height:76px;min-height:76px;max-height:76px}#voiceQueues>.header .logo .logo-icon{margin:0 16px 0 0}#voiceQueues>.header .logo .logo-text{font-size:24px}#voiceQueues>.header md-icon{color:#fff}#voiceQueues>.header .search-input-wrapper{position:relative}#voiceQueues>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#voiceQueues>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#voiceQueues>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#voiceQueues>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#voiceQueues>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#voiceQueues>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#voiceQueues>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#voiceQueues>.header.selected-bar .close-button-wrapper{width:244px}#voiceQueues>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#voiceQueues>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#voiceQueues>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#voiceQueues #add-voiceQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#voiceQueues #upload-voiceQueue-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.voiceRecording-dialog{max-width:720px;width:720px}md-dialog.voiceRecording-dialog md-dialog-content{display:block;position:relative}md-dialog.voiceRecording-dialog md-toolbar .title{font-size:17px}md-dialog.voiceRecording-dialog md-input-container textarea{min-height:150px}md-dialog.voiceRecording-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.voiceRecording-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.voiceRecording-dialog .date-container{padding:16px 0 24px 0}md-dialog.voiceRecording-dialog .error-list{font-size:13px}md-dialog.voiceRecording-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.voiceRecording-dialog .error-list .error .message{font-weight:500}md-dialog.voiceRecording-dialog .error-list .error .md-button{margin:0}md-dialog.voiceRecording-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.voiceRecording-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#voice-voiceRecording .header{height:76px;min-height:76px;max-height:76px}#voice-voiceRecording .header .goto-voiceRecordings-button{margin-right:16px}#voice-voiceRecording .header .voiceRecording-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#voice-voiceRecording .header .voiceRecording-image img{height:100%;width:auto;max-width:none}#voice-voiceRecording .header .subtitle{margin:6px 0 0 0}#voice-voiceRecording .voiceRecording-detail-form-container{padding:24px;margin-bottom:24px}#voice-voiceRecording .voiceRecording-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#voice-voiceRecording .voiceRecording-detail-form-container .handle{cursor:move}#voice-voiceRecording .voiceRecording-detail-form-container md-input-container md-switch{margin:0!important}#voice-voiceRecording .voiceRecording-detail-form-container #voiceRecording-image-uploader{position:relative}#voice-voiceRecording .voiceRecording-detail-form-container #voiceRecording-image-uploader.dropping .drop-text{display:flex}#voice-voiceRecording .voiceRecording-detail-form-container #voiceRecording-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#voice-voiceRecording .voiceRecording-detail-form-container #voiceRecording-image-uploader .upload-button{margin-bottom:16px}#voice-voiceRecording .voiceRecording-detail-form-container #voiceRecording-image-uploader .voiceRecording-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#voice-voiceRecording .voiceRecording-detail-form-container #voiceRecording-image-uploader .voiceRecording-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#voice-voiceRecording .voiceRecording-detail-form-container #voiceRecording-image-uploader .voiceRecording-image .media{max-height:100%}#voice-voiceRecording md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#voice-voiceRecording md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#voice-voiceRecording md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#voice-voiceRecording md-table-container.font-size-12 td.md-cell{font-size:12px!important}#voice-voiceRecording .sentiment.POSITIVE{color:#4caf50;font-size:25px}#voice-voiceRecording .sentiment.NEGATIVE{color:#f40505;font-size:30px}#voice-voiceRecording .sentiment.NEUTRAL{color:#03a9f4;font-size:30px}#voice-voiceRecording .sentiment.MIXED{color:#9c27b0;font-size:30px}#voiceRecordings{position:relative}#voiceRecordings>.header{height:76px;min-height:76px;max-height:76px}#voiceRecordings>.header .logo .logo-icon{margin:0 16px 0 0}#voiceRecordings>.header .logo .logo-text{font-size:24px}#voiceRecordings>.header md-icon{color:#fff}#voiceRecordings>.header .search-input-wrapper{position:relative}#voiceRecordings>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#voiceRecordings>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#voiceRecordings>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#voiceRecordings>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#voiceRecordings>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#voiceRecordings>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#voiceRecordings>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#voiceRecordings>.header.selected-bar .close-button-wrapper{width:244px}#voiceRecordings>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#voiceRecordings>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#voiceRecordings>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#voiceRecordings #add-voiceRecording-button{position:fixed;bottom:8px;right:8px;padding:0}#voiceRecordings #upload-voiceRecording-button{position:fixed;bottom:8px;right:8px;padding:0}#realtime>.content .blink{animation:blinker 2s linear infinite}#realtime>.content .avatar-wrapper{position:relative}#realtime>.content .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .search-input-wrapper{position:relative;margin-left:20px}#realtime>.content .search-input-wrapper label{padding:6px;cursor:pointer}#realtime>.content .search-input-wrapper md-input-container{padding-top:20px}#realtime>.content .main .labels{padding:8px 16px}#realtime>.content .main .labels .label{margin:0 0 2px 4px;padding:2px 5px;font-size:11px;white-space:nowrap;border-radius:2px}#realtime>.content .main .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .main .avatar-wrapper{position:relative}#realtime>.content .main .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .custom-column{padding:0 24px!important}@keyframes blinker{50%{opacity:0}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.whatsappAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#whatsapp-whatsappAccount .header{height:76px;min-height:76px;max-height:76px}#whatsapp-whatsappAccount .header .goto-whatsappAccounts-button{margin-right:16px}#whatsapp-whatsappAccount .header .whatsappAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#whatsapp-whatsappAccount .header .whatsappAccount-image img{height:100%;width:auto;max-width:none}#whatsapp-whatsappAccount .header .subtitle{margin:6px 0 0 0}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container{padding:24px;margin-bottom:24px}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container .handle{cursor:move}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container md-input-container md-switch{margin:0!important}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container #whatsappAccount-image-uploader{position:relative}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container #whatsappAccount-image-uploader.dropping .drop-text{display:flex}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container #whatsappAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container #whatsappAccount-image-uploader .upload-button{margin-bottom:16px}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container #whatsappAccount-image-uploader .whatsappAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container #whatsappAccount-image-uploader .whatsappAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container #whatsappAccount-image-uploader .whatsappAccount-image .media{max-height:100%}#whatsapp-whatsappAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#whatsapp-whatsappAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#whatsapp-whatsappAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#whatsapp-whatsappAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}@media screen and (min-width:1921px){#whatsapp-whatsappAccount .actionAppData{width:800px!important}}@media screen and (max-width:1920px){#whatsapp-whatsappAccount .actionAppData{width:700px!important}}@media screen and (min-width:1751px) and (max-width:1919px){#whatsapp-whatsappAccount .actionAppData{width:600px!important}}@media screen and (min-width:1601px) and (max-width:1750px){#whatsapp-whatsappAccount .actionAppData{width:500px!important}}@media screen and (min-width:1537px) and (max-width:1600px){#whatsapp-whatsappAccount .actionAppData{width:450px!important}}@media screen and (min-width:1281px) and (max-width:1536px){#whatsapp-whatsappAccount .actionAppData{width:300px!important}}@media screen and (max-width:1280px){#whatsapp-whatsappAccount .actionAppData{width:150px!important}}@media screen and (max-width:960px){#whatsapp-whatsappAccount .actionAppData{width:80px!important}}md-dialog.whatsappCannedAnswer-dialog{max-width:720px;width:720px}md-dialog.whatsappCannedAnswer-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappCannedAnswer-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappCannedAnswer-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappCannedAnswer-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.whatsappCannedAnswer-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.whatsappCannedAnswer-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappCannedAnswer-dialog .error-list{font-size:13px}md-dialog.whatsappCannedAnswer-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappCannedAnswer-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappCannedAnswer-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappCannedAnswer-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappCannedAnswer-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#whatsappAccounts{position:relative}#whatsappAccounts>.header{height:76px;min-height:76px;max-height:76px}#whatsappAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#whatsappAccounts>.header .logo .logo-text{font-size:24px}#whatsappAccounts>.header md-icon{color:#fff}#whatsappAccounts>.header .search-input-wrapper{position:relative}#whatsappAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#whatsappAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#whatsappAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#whatsappAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#whatsappAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#whatsappAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#whatsappAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#whatsappAccounts>.header.selected-bar .close-button-wrapper{width:244px}#whatsappAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#whatsappAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#whatsappAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#whatsappAccounts #add-whatsappAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#whatsappAccounts #upload-whatsappAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.whatsappQueue-dialog{max-width:720px;width:720px}md-dialog.whatsappQueue-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappQueue-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappQueue-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappQueue-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.whatsappQueue-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.whatsappQueue-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappQueue-dialog .error-list{font-size:13px}md-dialog.whatsappQueue-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappQueue-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappQueue-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappQueue-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappQueue-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#whatsapp-whatsappQueue .header{height:76px;min-height:76px;max-height:76px}#whatsapp-whatsappQueue .header .goto-whatsappQueues-button{margin-right:16px}#whatsapp-whatsappQueue .header .whatsappQueue-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#whatsapp-whatsappQueue .header .whatsappQueue-image img{height:100%;width:auto;max-width:none}#whatsapp-whatsappQueue .header .subtitle{margin:6px 0 0 0}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container{padding:24px;margin-bottom:24px}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container .handle{cursor:move}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container md-input-container md-switch{margin:0!important}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container #whatsappQueue-image-uploader{position:relative}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container #whatsappQueue-image-uploader.dropping .drop-text{display:flex}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container #whatsappQueue-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container #whatsappQueue-image-uploader .upload-button{margin-bottom:16px}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container #whatsappQueue-image-uploader .whatsappQueue-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container #whatsappQueue-image-uploader .whatsappQueue-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container #whatsappQueue-image-uploader .whatsappQueue-image .media{max-height:100%}#whatsapp-whatsappQueue md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#whatsapp-whatsappQueue md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#whatsapp-whatsappQueue md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#whatsapp-whatsappQueue md-table-container.font-size-12 td.md-cell{font-size:12px!important}#whatsappQueues{position:relative}#whatsappQueues>.header{height:76px;min-height:76px;max-height:76px}#whatsappQueues>.header .logo .logo-icon{margin:0 16px 0 0}#whatsappQueues>.header .logo .logo-text{font-size:24px}#whatsappQueues>.header md-icon{color:#fff}#whatsappQueues>.header .search-input-wrapper{position:relative}#whatsappQueues>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#whatsappQueues>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#whatsappQueues>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#whatsappQueues>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#whatsappQueues>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#whatsappQueues>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#whatsappQueues>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#whatsappQueues>.header.selected-bar .close-button-wrapper{width:244px}#whatsappQueues>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#whatsappQueues>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#whatsappQueues>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#whatsappQueues #add-whatsappQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#whatsappQueues #upload-whatsappQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#layout-vertical-navigation-fullwidth-toolbar-2 #vertical-navigation{width:240px;min-width:240px;max-width:240px;overflow-x:hidden;transition:all .3s cubic-bezier(.55,0,.55,.2),width .1s linear,min-width .1s linear,max-width .1s linear;box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}#layout-vertical-navigation-fullwidth-toolbar-2 #vertical-navigation .navigation-header{height:64px;min-height:64px;background-color:rgba(255,255,255,.05);padding:0 16px 0 24px}#layout-vertical-navigation-fullwidth-toolbar-2 #vertical-navigation:not(._md-locked-open){box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}@media only screen and (min-width:960px){.ms-navigation-folded #content-container{margin-left:64px}.ms-navigation-folded #layout-vertical-navigation-fullwidth-toolbar-2 #vertical-navigation{position:absolute}.ms-navigation-folded:not(.ms-navigation-folded-open) #layout-vertical-navigation-fullwidth-toolbar-2 #vertical-navigation{position:absolute;width:64px;min-width:64px;max-width:64px}.ms-navigation-folded:not(.ms-navigation-folded-open) #layout-vertical-navigation-fullwidth-toolbar-2 #vertical-navigation .navigation-header{padding:0 16px}.ms-navigation-folded:not(.ms-navigation-folded-open) #layout-vertical-navigation-fullwidth-toolbar-2 #vertical-navigation .navigation-header .logo-text{display:none}}#vertical-navigation{width:240px;min-width:240px;max-width:240px;overflow-x:hidden;transition:all .3s cubic-bezier(.55,0,.55,.2),width .1s linear,min-width .1s linear,max-width .1s linear;box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}#vertical-navigation .navigation-header{height:64px;min-height:64px;background-color:rgba(255,255,255,.05);padding:0 16px 0 24px}#vertical-navigation .navigation-header .logo .logo-image{display:block;width:32px;min-width:32px;height:32px;line-height:32px;text-align:center;font-size:16px;font-weight:500;color:#fff;border-radius:2px}#vertical-navigation .navigation-header .logo .logo-text{color:#fff;margin-left:16px;font-size:16px}#vertical-navigation .navigation-header .fold-toggle{transition:transform .3s ease-in-out .1s;transform:rotate(0);margin:0;padding:8px;width:34px!important;height:34px!important;cursor:pointer}#vertical-navigation:not(._md-locked-open){box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}@media only screen and (min-width:960px){.ms-navigation-folded #content-container{margin-left:64px}.ms-navigation-folded #vertical-navigation{position:absolute}.ms-navigation-folded #vertical-navigation .navigation-header .fold-toggle{transform:rotate(180deg);opacity:0}.ms-navigation-folded.ms-navigation-folded-open #vertical-navigation .navigation-header .fold-toggle{transition:transform .3s ease-in-out .1s,opacity .3s ease-in-out .2s;opacity:1}.ms-navigation-folded:not(.ms-navigation-folded-open) #vertical-navigation{position:absolute;width:64px;min-width:64px;max-width:64px}.ms-navigation-folded:not(.ms-navigation-folded-open) #vertical-navigation .navigation-header{padding:0 16px}.ms-navigation-folded:not(.ms-navigation-folded-open) #vertical-navigation .navigation-header .logo-text{display:none}}#quick-panel{width:330px;min-width:330px;max-width:330px;z-index:99}#quick-panel md-content{height:100%}#quick-panel md-content md-tabs{position:static;height:100%}#quick-panel md-content md-tabs md-tabs-wrapper{background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.06)}#quick-panel md-content md-tabs md-tabs-wrapper .md-tab{max-width:none!important}#quick-panel md-content md-tabs md-tabs-content-wrapper md-tab-content{height:100%;overflow:hidden}#quick-panel md-content md-tabs md-tabs-content-wrapper md-tab-content>div{overflow:hidden;height:100%}.unread-message-count-chat{position:absolute;top:5px;left:10px;width:18px;height:18px;z-index:10;border-radius:50%;text-align:center;line-height:18px;font-size:10px}@media screen and (max-width:600px){#quick-panel{width:80%;min-width:80%;max-width:80%}}#quick-panel .activity-tab .friends .friend{position:relative}#quick-panel .activity-tab .friends .friend .status{position:absolute;top:8px;left:44px;width:18px;height:18px;z-index:10;border-radius:50%;border:3px solid #fff}#quick-panel .activity-tab .friends .friend .status.online{background-color:#00c853}#quick-panel .activity-tab .friends .friend .status.offline{background-color:#d50000}#quick-panel .activity-tab .friends .friend .status.away{background-color:#ff6d00}#quick-panel .activity-tab .friends .friend .unread-message-count{position:absolute;left:16px;bottom:16px;width:18px;height:18px;z-index:10;border-radius:50%;text-align:center;line-height:18px;font-size:11px}#quick-panel .activity-tab .servers .server .status{margin:24px 20px 28px 8px}#quick-panel .activity-tab .servers .server .status.normal{color:#00c853}#quick-panel .activity-tab .servers .server .status.warn{color:#d50000}#quick-panel .activity-tab .servers .server .status.error{color:#ff6d00}#quick-panel .activity-tab .stat md-progress-linear.normal .md-bar{background-color:#00c853}#quick-panel .activity-tab .stat md-progress-linear.normal .md-container{background-color:rgba(0,200,83,.3)}#quick-panel .activity-tab .stat md-progress-linear.warn .md-bar{background-color:#ff6d00}#quick-panel .activity-tab .stat md-progress-linear.warn .md-container{background-color:rgba(255,109,0,.3)}#quick-panel .activity-tab .stat md-progress-linear.alert .md-bar{background-color:#d50000}#quick-panel .activity-tab .stat md-progress-linear.alert .md-container{background-color:rgba(213,0,0,.3)}#quick-panel .chat-tab .chat,#quick-panel .chat-tab .main{position:absolute;width:100%;top:0;bottom:0}#quick-panel .chat-tab .main .contact{position:relative}#quick-panel .chat-tab .main .contact .status{position:absolute;top:8px;left:44px;width:18px;height:18px;border:3px solid #fff;border-radius:50%;z-index:10}#quick-panel .chat-tab .main .contact .status.online{background-color:#00c853}#quick-panel .chat-tab .main .contact .status.offline{background-color:#d50000}#quick-panel .chat-tab .main .contact .status.away{background-color:#ff6d00}#quick-panel .chat-tab .main .contact .unread-message-count{position:absolute;left:16px;bottom:16px;width:18px;height:18px;z-index:10;border-radius:50%;text-align:center;line-height:18px;font-size:11px}#quick-panel .chat-tab .main .recent .contact .status{top:18px}#quick-panel .chat-tab .chat{max-height:100%;overflow:hidden}#quick-panel .chat-tab .chat .message-row .bubble{position:relative;padding:8px;background-color:#eceff1;border:1px solid #dcdfe1}#quick-panel .chat-tab .chat .message-row .bubble:after,#quick-panel .chat-tab .chat .message-row .bubble:before{content:' ';position:absolute;width:0;height:0}#quick-panel .chat-tab .chat .message-row .bubble:after{left:-7px;right:auto;top:0;bottom:auto;border:11px solid;border-color:#eceff1 transparent transparent transparent}#quick-panel .chat-tab .chat .message-row .bubble:before{left:-9px;right:auto;top:-1px;bottom:auto;border:8px solid;border-color:#dcdfe1 transparent transparent transparent}#quick-panel .chat-tab .chat .message-row .bubble .time{font-size:11px;margin-top:8px}#quick-panel .chat-tab .chat .message-row .bubble .message{word-wrap:break-word}#quick-panel .chat-tab .chat .message-row.contact .avatar{margin:0 16px 0 0}#quick-panel .chat-tab .chat .message-row.user{align-items:flex-end}#quick-panel .chat-tab .chat .message-row.user .avatar{order:2;margin:0 0 0 16px}#quick-panel .chat-tab .chat .message-row.user .bubble{background-color:#e8f5e9;border:1px solid #dfebe0;order:1}#quick-panel .chat-tab .chat .message-row.user .bubble:after{right:-7px;left:auto;top:auto;bottom:0;border-color:transparent transparent #e8f5e9 transparent}#quick-panel .chat-tab .chat .message-row.user .bubble:before{right:-9px;left:auto;top:auto;bottom:-1px;border-color:transparent transparent #dfebe0 transparent}#quick-panel .chat-tab .chat .reply{border-top:1px solid rgba(0,0,0,.12)}#quick-panel .chat-tab .chat .reply textarea{margin:8px;resize:none;padding:8px 16px 8px 8px}md-dialog.group-dialog{max-width:720px;width:720px}md-dialog.group-dialog md-dialog-content{display:block;position:relative}md-dialog.group-dialog md-toolbar .title{font-size:17px}md-dialog.group-dialog md-input-container textarea{min-height:150px}md-dialog.group-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.group-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.group-dialog .date-container{padding:16px 0 24px 0}md-dialog.group-dialog .error-list{font-size:13px}md-dialog.group-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.group-dialog .error-list .error .message{font-weight:500}md-dialog.group-dialog .error-list .error .md-button{margin:0}md-dialog.group-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.group-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#quick-panel .group-tab .chat,#quick-panel .group-tab .main{position:absolute;width:100%;top:0;bottom:0}#quick-panel .group-tab .main .contact{position:relative}#quick-panel .group-tab .main .contact .status{position:absolute;top:8px;left:44px;width:18px;height:18px;border:3px solid #fff;border-radius:50%;z-index:10}#quick-panel .group-tab .main .contact .status.online{background-color:#00c853}#quick-panel .group-tab .main .contact .status.offline{background-color:#d50000}#quick-panel .group-tab .main .contact .status.away{background-color:#ff6d00}#quick-panel .group-tab .main .contact .unread-message-count{position:absolute;left:16px;bottom:16px;width:18px;height:18px;z-index:10;border-radius:50%;text-align:center;line-height:18px;font-size:11px}#quick-panel .group-tab .main .recent .contact .status{top:18px}#quick-panel .group-tab .chat{max-height:100%;overflow:hidden}#quick-panel .group-tab .chat .message-row{padding:8px}#quick-panel .group-tab .chat .message-row .bubble{position:relative;padding:8px;background-color:#eceff1;border:1px solid #dcdfe1}#quick-panel .group-tab .chat .message-row .bubble:after,#quick-panel .group-tab .chat .message-row .bubble:before{content:' ';position:absolute;width:0;height:0}#quick-panel .group-tab .chat .message-row .bubble:after{left:-7px;right:auto;top:0;bottom:auto;border:11px solid;border-color:#eceff1 transparent transparent transparent}#quick-panel .group-tab .chat .message-row .bubble:before{left:-9px;right:auto;top:-1px;bottom:auto;border:8px solid;border-color:#dcdfe1 transparent transparent transparent}#quick-panel .group-tab .chat .message-row .bubble .time{font-size:11px;margin-top:8px}#quick-panel .group-tab .chat .message-row .bubble .message{word-wrap:break-word}#quick-panel .group-tab .chat .message-row.contact .avatar{margin:0 16px 0 0}#quick-panel .group-tab .chat .message-row.user{align-items:flex-end}#quick-panel .group-tab .chat .message-row.user .avatar{order:2;margin:0 0 0 16px}#quick-panel .group-tab .chat .message-row.user .bubble{background-color:#e8f5e9;border:1px solid #dfebe0;order:1}#quick-panel .group-tab .chat .message-row.user .bubble:after{right:-7px;left:auto;top:auto;bottom:0;border-color:transparent transparent #e8f5e9 transparent}#quick-panel .group-tab .chat .message-row.user .bubble:before{right:-9px;left:auto;top:auto;bottom:-1px;border-color:transparent transparent #dfebe0 transparent}#quick-panel .group-tab .chat .reply{border-top:1px solid rgba(0,0,0,.12)}#quick-panel .group-tab .chat .reply textarea{margin:8px;resize:none;padding:8px 16px 8px 8px}md-dialog.group-dialog{max-width:720px;width:720px}md-dialog.group-dialog md-dialog-content{display:block;position:relative}md-dialog.group-dialog md-toolbar .title{font-size:17px}md-dialog.group-dialog md-input-container textarea{min-height:150px}md-dialog.group-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.group-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.group-dialog .date-container{padding:16px 0 24px 0}md-dialog.group-dialog .error-list{font-size:13px}md-dialog.group-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.group-dialog .error-list .error .message{font-weight:500}md-dialog.group-dialog .error-list .error .md-button{margin:0}md-dialog.group-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.group-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#reset-password{height:100%;background:url(/assets/images/backgrounds/tech.png) no-repeat;background-size:cover}#reset-password #reset-password-form-wrapper{flex:1 0 auto;padding:32px}#reset-password #reset-password-form-wrapper #reset-password-form{width:384px;max-width:384px;padding:32px;text-align:center;background:#fff}#reset-password #reset-password-form-wrapper #reset-password-form .logo{width:128px;height:128px;line-height:128px;font-size:86px;font-weight:500;margin:32px auto;color:#fff;border-radius:2px}#reset-password #reset-password-form-wrapper #reset-password-form .title{font-size:17px;margin:16px 0 32px 0}#reset-password #reset-password-form-wrapper #reset-password-form .logo_login{max-height:200px}#reset-password #reset-password-form-wrapper #reset-password-form form{width:100%;text-align:left}#reset-password #reset-password-form-wrapper #reset-password-form form .submit-button{width:220px;margin:16px auto;display:block}#reset-password #reset-password-form-wrapper #reset-password-form .login{margin:32px auto 24px auto;width:250px;font-weight:500}#reset-password #reset-password-form-wrapper #reset-password-form .login .text{margin-right:8px}@media screen and (max-width:600px){#reset-password #reset-password-form-wrapper{padding:16px}#reset-password #reset-password-form-wrapper #reset-password-form{padding:24px;width:100%}#reset-password #reset-password-form-wrapper #reset-password-form form .md-button{width:90%}}md-dialog.preview-dialog{max-width:1020px;width:1020px}md-dialog.preview-dialog md-dialog-content{display:block;position:relative;padding:0}md-dialog.preview-dialog md-toolbar .title{font-size:17px}md-dialog.preview-dialog md-input-container textarea{min-height:150px}md-dialog.preview-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.preview-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.preview-dialog .date-container{padding:16px 0 24px 0}md-dialog.preview-dialog .error-list{font-size:13px}md-dialog.preview-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.preview-dialog .error-list .error .message{font-weight:500}md-dialog.preview-dialog .error-list .error .md-button{margin:0}md-dialog.preview-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.preview-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#toolbar{height:64px;min-height:64px;max-height:64px;z-index:55!important}#toolbar .blink{animation:blinker 2s linear infinite}#toolbar #navigation-toggle{width:64px;min-width:64px;height:64px;margin:0;border-right:1px solid rgba(0,0,0,.12);border-radius:0}#toolbar .logo-image{display:block;width:32px;min-width:32px;height:32px;line-height:32px;text-align:center;font-size:16px;font-weight:500;color:#fff;border-radius:2px;margin-left:10px;margin-right:8px}#toolbar #user-menu{height:64px;padding:0}#toolbar #user-menu md-menu-item .md-button{font-size:15px}#toolbar #user-menu md-menu-item .md-button md-icon{margin:auto 16px auto 0}#toolbar #user-menu .user-button{margin:0;padding:0 16px;height:64px;text-transform:none}#toolbar #user-menu .user-button .avatar-wrapper{position:relative}#toolbar #user-menu .user-button .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#toolbar #user-menu .user-button .username{margin:0 12px 0 8px}#toolbar #language-menu{height:64px}#toolbar #language-menu .language-button{min-width:64px;height:64px;margin:0;padding:0 16px;border-radius:0}#toolbar #language-menu .language-button .iso{text-transform:uppercase}#toolbar #language-menu .language-button .flag{margin-right:8px}#toolbar #quick-panel-toggle{width:64px;height:64px;margin:0;border-radius:0}#toolbar #quick-panel-toggle .unread-message-count{position:absolute;top:8px;left:38px;width:18px;height:18px;z-index:10;border-radius:50%;text-align:center;line-height:18px;font-size:10px}#toolbar .toolbar-separator{height:64px;width:1px;background:rgba(0,0,0,.12)}#language-menu-content md-menu-item .flag{margin-right:16px}#language-message{min-height:88px;max-width:600px}#language-message .md-toast-content{height:90px}.open-contact-count{position:absolute;top:1px;left:25px;width:18px;height:18px;z-index:10;border-radius:50%;text-align:center;line-height:18px;font-size:10px}.md-button.preview-button{min-width:46px;min-height:50px}@media screen and (max-width:600px){#toolbar #user-menu .user-button{min-width:64px;padding:0 2px 0 10px}}.geEditor{font-family:Helvetica Neue,Helvetica,Arial Unicode MS,Arial;font-size:10pt;overflow:hidden;height:100%}.geMenubarContainer .geItem,.geSidebarContainer .geTitle,.geToolbar .geButton,.geToolbar .geLabel{cursor:pointer!important}.geContentEditable div,.geContentEditable table,.geContentEditable table td{border:1px dashed #d3d3d3}.geBackgroundPage{-webkit-box-shadow:0 0 3px 0 #d9d9d9;-moz-box-shadow:0 0 3px 0 #d9d9d9;box-shadow:0 0 3px 0 #d9d9d9}.geMenubarContainer a,.geSidebarContainer a,.geToolbar a{color:#000!important;text-decoration:none}.geDiagramContainer,.geFooterContainer,.geHsplit,.geMenubarContainer,.geOutlineContainer,.geSidebarContainer,.geToolbarContainer,.geVsplit{overflow:hidden;position:absolute;cursor:default}.geDiagramContainer,.geOutlineContainer{background-color:#fff;outline:0}.geMenubar,.geToolbar{white-space:nowrap;display:block;width:100%}.geMenubarContainer .geItem,.geSidebar,.geSidebar .geItem,.geSidebarContainer .geTitle,.geToolbar .geButton,.geToolbar .geLabel,.mxPopupMenuItem{-webkit-transition:all .1s ease-in-out;-moz-transition:all .1s ease-in-out;-o-transition:all .1s ease-in-out;-ms-transition:all .1s ease-in-out;transition:all .1s ease-in-out}.geHint{background-color:#fff;border:1px solid gray;padding:4px 16px 4px 16px;border-radius:3px;-webkit-box-shadow:1px 1px 2px 0 #ddd;-moz-box-shadow:1px 1px 2px 0 #ddd;box-shadow:1px 1px 2px 0 #ddd;opacity:.8}.geStatusAlert{white-space:nowrap;margin-top:-5px;font-size:12px;padding:4px 6px 4px 6px;background-color:#f2dede;border:1px solid #ebccd1;color:#a94442!important;border-radius:3px}.geStatusAlert:hover{background-color:#f1d8d8;border-color:#d6b2b8}.geStatusMessage{white-space:nowrap;margin-top:-5px;padding:4px 6px 4px 6px;font-size:12px;background-image:-webkit-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#c8e5bc));background-image:linear-gradient(to bottom,#dff0d8 0,#c8e5bc 100%);background-repeat:repeat-x;border:1px solid #b2dba1;border-radius:3px;color:#3c763d!important}.geStatusMessage:hover{background:#c8e5bc;border-color:#b2dba1}.geAlert{position:absolute;white-space:nowrap;padding:14px;background-color:#f2dede;border:1px solid #ebccd1;color:#a94442;border-radius:3px;-webkit-box-shadow:2px 2px 3px 0 #ddd;-moz-box-shadow:2px 2px 3px 0 #ddd;box-shadow:2px 2px 3px 0 #ddd}.geBtn{background-color:#f5f5f5;border-radius:2px;border:1px solid #d8d8d8;color:#333;cursor:default;font-size:11px;font-weight:700;height:29px;line-height:27px;margin:0 0 0 8px;min-width:72px;outline:0;padding:0 8px;cursor:pointer}.geBtn:hover{-webkit-box-shadow:0 1px 1px rgba(0,0,0,.1);-moz-box-shadow:0 1px 1px rgba(0,0,0,.1);box-shadow:0 1px 1px rgba(0,0,0,.1);border:1px solid #c6c6c6;background-color:#f8f8f8;background-image:linear-gradient(#f8f8f8 0,#f1f1f1 100%);color:#111}.geBtn:disabled{opacity:.5}.geBtnUp{background-image:url(data:image/gif;base64,R0lGODlhCgAGAJECAGZmZtXV1f///wAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0QzM3ODJERjg4NUQxMUU0OTFEQ0E2MzRGQzcwNUY3NCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0QzM3ODJFMDg4NUQxMUU0OTFEQ0E2MzRGQzcwNUY3NCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjRDMzc4MkREODg1RDExRTQ5MURDQTYzNEZDNzA1Rjc0IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjRDMzc4MkRFODg1RDExRTQ5MURDQTYzNEZDNzA1Rjc0Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Af/+/fz7+vn49/b19PPy8fDv7u3s6+rp6Ofm5eTj4uHg397d3Nva2djX1tXU09LR0M/OzczLysnIx8bFxMPCwcC/vr28u7q5uLe2tbSzsrGwr66trKuqqainpqWko6KhoJ+enZybmpmYl5aVlJOSkZCPjo2Mi4qJiIeGhYSDgoGAf359fHt6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNiYWBfXl1cW1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMCAQAAIfkEAQAAAgAsAAAAAAoABgAAAg6UjwiQBhGYglCKhXFLBQA7);background-position:center center;background-repeat:no-repeat}.geBtnUp:active{background-color:#4d90fe;background-image:linear-gradient(#4d90fe 0,#357ae8 100%)}.geBtnDown{background-image:url(data:image/gif;base64,R0lGODlhCgAGAJECANXV1WZmZv///wAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0QzM3ODJEQjg4NUQxMUU0OTFEQ0E2MzRGQzcwNUY3NCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0QzM3ODJEQzg4NUQxMUU0OTFEQ0E2MzRGQzcwNUY3NCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjRDMzc4MkQ5ODg1RDExRTQ5MURDQTYzNEZDNzA1Rjc0IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjRDMzc4MkRBODg1RDExRTQ5MURDQTYzNEZDNzA1Rjc0Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Af/+/fz7+vn49/b19PPy8fDv7u3s6+rp6Ofm5eTj4uHg397d3Nva2djX1tXU09LR0M/OzczLysnIx8bFxMPCwcC/vr28u7q5uLe2tbSzsrGwr66trKuqqainpqWko6KhoJ+enZybmpmYl5aVlJOSkZCPjo2Mi4qJiIeGhYSDgoGAf359fHt6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNiYWBfXl1cW1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMCAQAAIfkEAQAAAgAsAAAAAAoABgAAAg6UjxLLewEiCAnOZBzeBQA7);background-position:center center;background-repeat:no-repeat}.geBtnDown:active{background-color:#4d90fe;background-image:linear-gradient(#4d90fe 0,#357ae8 100%)}.geColorBtn{background-color:#f5f5f5;background-image:linear-gradient(#f5f5f5 0,#e1e1e1 100%);border-radius:4px;border:1px solid rgba(0,0,0,.5);color:#333;cursor:default;margin:0;outline:0;padding:0;cursor:pointer}.geColorBtn:hover{-webkit-box-shadow:0 1px 1px rgba(0,0,0,.1);-moz-box-shadow:0 1px 1px rgba(0,0,0,.1);box-shadow:0 1px 1px rgba(0,0,0,.1);border:1px solid rgba(0,0,0,.7)}.geColorBtn:active{background-color:#4d90fe;background-image:linear-gradient(#4d90fe 0,#357ae8 100%);border:1px solid #2f5bb7;color:#fff}.geColorBtn:disabled{opacity:.5}.gePrimaryBtn{background-color:#4d90fe;background-image:linear-gradient(#4d90fe 0,#4787ed 100%);border:1px solid #3079ed;color:#fff}.gePrimaryBtn:hover{background-color:#357ae8;background-image:linear-gradient(#4d90fe 0,#357ae8 100%);border:1px solid #2f5bb7;color:#fff}.gePrimaryBtn:disabled{opacity:.5}.geAlertLink{color:#843534;font-weight:700;text-decoration:none}.geMenubarContainer{background-color:#fff}.geMenubar{padding:0 2px 0 2px;vertical-align:middle}.geMenubarContainer .geItem,.geToolbar .geItem{padding:6px 8px 6px 8px;cursor:default}.geMenubarContainer .geItem:hover,.geToolbarContainer .geItem:hover{background:#eee}.mxDisabled:hover{background:inherit!important}.geMenubar a.geStatus{color:#b3b3b3;padding-left:6px;display:inline-block;cursor:default!important}.geMenubar a.geStatus:hover{background:0 0}.geMenubarMenu{border:1px solid #d5d5d5!important}.geToolbarContainer{background:#f5f5f5;border-bottom:1px solid #e0e0e0}.geSidebarContainer .geToolbarContainer{background:0 0;border-bottom:none}.geSidebarContainer button{text-overflow:ellipsis;overflow:hidden}.geToolbar{padding:1px 0 0 6px;border-top:1px solid #e0e0e0;-webkit-box-shadow:inset 0 1px 0 0 #fff;-moz-box-shadow:inset 0 1px 0 0 #fff;box-shadow:inset 0 1px 0 0 #fff}.geToolbarContainer .geSeparator{float:left;width:1px;height:34px;background:#e5e5e5;margin-left:6px;margin-right:6px;margin-top:-2px}.geToolbarContainer .geButton{float:left;width:20px;height:20px;padding:0 2px 4px 2px;margin:2px;border:1px solid transparent;cursor:pointer;opacity:.6}.geToolbarContainer .geButton:hover{border:1px solid gray;border-radius:2px;opacity:1;filter:none!important}.geToolbarContainer .geButton:active{border:1px solid #000}div.mxWindow .geButton{margin:-1px 2px 2px 2px;padding:1px 2px 2px 1px}.geToolbarContainer .geLabel{float:left;margin:2px;cursor:pointer;padding:3px 5px 3px 5px;border:1px solid transparent;opacity:.6}.geToolbarContainer .geLabel:hover{border:1px solid gray;border-radius:2px;opacity:.9}.geToolbarContainer .geLabel:active{border:1px solid #000;opacity:1;filter:none!important}.geToolbarContainer .mxDisabled:hover{border:1px solid transparent!important;opacity:.2!important}.geToolbarMenu{border:3px solid #e0e0e0!important;-webkit-box-shadow:none!important;-moz-box-shadow:none!important;box-shadow:none!important;filter:none!important}.geDiagramBackdrop{background-color:#ebebeb;border-style:solid;border-color:#e5e5e5;border-width:1px 0 0 1px}.geSidebarContainer{background:#fff;overflow:hidden;position:absolute;border-top:1px solid #e5e5e5;overflow:auto}.geSidebar{background:#f5f5f5;border-bottom:1px solid #e5e5e5;padding:5px;padding-bottom:12px;overflow:hidden}.geSidebarContainer .geTitle{display:block;font-size:9pt;border-bottom:1px solid #e5e5e5;font-weight:400;padding:6px 0 6px 14px;margin:0;cursor:default;background:#eee;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.4em}.geSidebarContainer .geTitle:hover{background:#e5e5e5}.geTitle img{opacity:.5}.geTitle img:hover{opacity:1}.geSidebar .geItem{display:inline-block;background-repeat:no-repeat;background-position:50% 50%;border:1px solid transparent;border-radius:2px;cursor:move}.geSidebar .geItem:hover{border:1px solid gray!important}.geItem{vertical-align:top;display:inline-block}.geSidebarTooltip{position:absolute;background:#fff;overflow:hidden;border:1px solid gray;border-radius:8px;-webkit-box-shadow:0 0 2px 2px #d5d5d5;-moz-box-shadow:0 0 2px 2px #d5d5d5;box-shadow:0 0 2px 2px #d5d5d5}.geFooterContainer{background:#e5e5e5;border-top:1px solid silver}.geFooterContainer a{font-size:14px;color:#235695;font-weight:700;text-decoration:none}.geFooterContainer table{border-collapse:collapse;margin:0 auto}.geFooterContainer td{border-left:1px solid silver;border-right:1px solid silver}.geFooterContainer td:hover{background-color:#b3b3b3}.geFooterContainer a{display:block;box-sizing:border-box;width:100%;height:100%;padding:11px 42px 11px 42px;white-space:nowrap}.geHsplit{cursor:col-resize;background-color:#e5e5e5;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAHBAMAAADdS/HjAAAAGFBMVEUzMzP///9tbW1QUFCKiopBQUF8fHxfX1/IXlmXAAAAHUlEQVQImWMQEGAQFWUQFmYQF2cQEmIQE2MQEQEACy4BF67hpEwAAAAASUVORK5CYII=);background-repeat:no-repeat;background-position:center center}.geVsplit{font-size:1pt;cursor:row-resize;background-color:#e5e5e5;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAEBAMAAACw6DhOAAAAGFBMVEUzMzP///9tbW1QUFCKiopBQUF8fHxfX1/IXlmXAAAAFElEQVQImWNgNVdzYBAUFBRggLMAEzYBy29kEPgAAAAASUVORK5CYII=);background-repeat:no-repeat;background-position:center center}.geHsplit:hover,.geVsplit:hover{background-color:#d5d5d5}.geDialog{position:absolute;background:#fff;overflow:hidden;padding:30px;border:1px solid #acacac;-webkit-box-shadow:0 0 2px 2px #d5d5d5;-moz-box-shadow:0 0 2px 2px #d5d5d5;box-shadow:0 0 2px 2px #d5d5d5;z-index:2}.geDialogClose{position:absolute;width:9px;height:9px;opacity:.5;cursor:pointer}.geDialogClose:hover{opacity:1}.geDialogTitle{box-sizing:border-box;white-space:nowrap;background:#e5e5e5;border-bottom:1px solid silver;font-size:15px;font-weight:700;text-align:center;color:#235695}.geDialogFooter{background:#f5f5f5;white-space:nowrap;text-align:right;box-sizing:border-box;border-top:1px solid #e5e5e5;color:#a9a9a9}.geSprite{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAk/CAYAAACauMYVAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAsTAAALEwEAmpwYAAABWWlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyI+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgpMwidZAAAWn0lEQVR4Ae2dW4gdxdbHO0aJYjzxTtR4EhSDSNB84kPEQOL9CB/Ex4igg8iAGCSgiIIQH1SOqJAnn4N4wBdvYBRBcYTIp0+OF0SDYoJRgyAmeA1e5lv/PrM6q6urqqu7a2/3ZP4NPVVdtda/Vv2qZ9Nrd++9i2IE2xJoHn/88XOq/ccff5RtepxSuv7HqxPE0GkNtC+lVH/YjiTSKoi+EaqA9T9OG3OW4xNdu3btHPZY9DGbRqRtYhiozaYhunfvXu95aoVCNjqzhqh2uGWbkLVPFrWRWgFfvSFqnW3dOtt2W7c2Zd2evI3OhAbr34g0wb/VZOGIjuRVagG+nrYuKQ1IgARIgARIgARIgARIoEbAm93BwmYb1mP58uXFoUOHgn6wTUok8K4Ddgj+9NNPxamnnhpNhpNENdL169eXVQj32jB93VUAEaJNxKORBtmEmGIAoNCBfGXS9C1TiLRF6huobNOp24g3b97cQBIU8HX4RJVp2+oH2dgI7aAp56m1Z50ESIAESIAESIAESIAESGCREtBMJXX6SclZqpjaUVRJ5CuPEabI623ii3rvXN/SVeFsgioO4SwRquDElNU7E3ZB+kTX9g5QH036kAAJkAAJkAAJkAAJkMDEEqiupBFh36vpsVxF1yJVnqkRjyVCDaoWaWqE6qzlWCKuRaojp0Y8lgg1qFqkqRGqs5ZjibgWqY6cGvFYItSgWJIACZAACZAACZAACZDAJBHwXknbAENX1bGr6IZoSMQO5KvbQUZyi9M36OC2xvRVMRWDnbb6jmT6FFW8+UoyzcdSlUbCVMVZkgAJkAAJkAAJkAAJTCqB1Pypc/yu8Jo1a6KfhE0eAMI7duyYS/04aJIwBCGsUeL507bPmbYKQwCCFsUgYQjaJ2MHC7uCvim1RVxLzSHY5YPUq1atKvbt21fTQBC9sxN8ltcnCNHGKCnR2g8HP/TQQ+U5/Mgjj1RajUjxiXc4hTYrCJtff/213K19pW4bUfdF7Aree++9tf+0p556qtRrRKribsSuoNr1KhEx9pAzonUjDtmynQRIgARIgARIgARIgASOGQLlNbrN6Hy3LNtm6/ovwC+qtVNom66v3/p7Ux4YuLsrZLNst686tiO5grZPHdCmbzCgzdp4I1VHX6kDou/AgQOFFW7Y25HU0ZauA/ps0mb9O0eq4uvWrWv9OrgaE3XsUmaJNDZgdPp29JiI2xcVdY1Tj72iOLE1SpRJJ7pvRBXRPpwuaLOnjfb5Ste/tPE1Rk9sR9n68/XUgcNDEiABEiABEiABEjgmCTTunMkl4Z65ublVbbM97rjj3v3999+3+uyqLFo7Ifjqq6+ulq1YsqQxJr6huXj77beLe+65Z5/6uGVDFAZysVtcdNFFXlGJrpDfPSp13nrrLczouauvvnpj2TD/x3vNjz5flOooUy8uvPDCDV9//fX/yb3ADc8///we7UMZFEXnn3/+WbzwwgvF559/XiBCbCeccEJx/fXXF4899tiyxx9/fNXpp5++VO4K19bAO/3SW/4goquuuqp4+OGHi08//bQ8vuyyy4rbb7+9ePTRR4svvvjioAyy9a+//jqiPt5y6dKl+z777DNZr6Pb+++/P3fHHXfMSd/cGWecMXf55Zcjc3lfBDZ4RdxGnyjkZ2Zm5q655ppSGOIiOuP66nGUKYx++eWX4pVXXilXfGpqqnjppZcKuZNbyDjrzzvvvJk33njjORXTMioqrIoPPvigPDdxmm3cuLG49tpri5tvvrm47bbbVkj/pp9//vlfL7744nYVRBldKBgsW7asEIbFWWedVZx00kkFBvrtt9/QVZ520r/ihx9+gOjOslH+REWx+hC0G04zWcjimWee2X/OOefsWrFiRfHtt98esjZeUTji39H3D4B29EvfPnkP5eErr7zS6pV1r+h7771XfPXVV0HRjz76qCFkGxqvGHIyPycru9Ia+eoS6az8l9UWyGfHNhIgARIgARIgARIgARLoQKBxfer6fvLJJ899/PHHZb506aWXvnvxxRdvdW3c48aV9O7du/eIUZUW3nXXXStvvPHGZbhUf/rpp1dK/z4VQUp5ySWXHJAHhuMJ75133rlKcqfVJ5988mpJJFYfPnx42ZNPPlk88cQTuPu4DG3og83999+/WjKTKgAdrJFHfffdd8Xs7OxWcd4sD//Ofvnll4UIlzvqDz74YCGPkIvJ7Nbvv/++TCpULFgijZTO1TK1nVI/hJTR3edTyNXnn3/+nIjDvrY1mGqvJAm7pP6iHjvlYee4dhgUffPNN9dLzrQG1sjyZJu56aabZlCZ31ZrxS2DoiI0Jcab4IDMT7bNr7/++gwqSMxuuOGGt1D3bY2F8hnNt22S/Goq0l91BSOtLI5W3paId0mEu+abuk8fGR1OeIlOme4Spip4dChPLRjpdddd1ztF7MLUE5O/aSSioek3/p89MZU2YO5uDVFZnAPyb/kf19B3LIL7pf2Ar49tJEACJEACJEACJEAC/Qh4c1O5sfWhXHz9MyK5Rx51/N9Qf+OqD4abNm36hxQrQk5XXHHFvyQz/PDss8++1GfjFf3xxx+RHm595513tp944ollBq3Octfs3YMHD+6US87/iPAeEd6ofVp6Rec7D956662N+6FHjhz5Hxl055lnnrlUbnduEFR75F5qTTgmWj5d/OyzzxYbNtSCXSaDrsSTx7fccstSYd+46o6KIuKVK1cWuIPeZWsVhZjcyC6++eYbPExcyLQLyZ6jYySJ4pamvFlQ3vPDImKXvCAo3CnlQSaCtzgQKcrQ1kkU2TQ+y3vKKafkiRR5KkSBAnxjWzDSBx54YEpuYJfLftpppxUXXHBBsWbNmkLOzZhe2ecVlYh2Crf9El352iBPG+BxhlIY4ueee24lLJxXvPbaaw9UDVLxrr68f7Lz7rvvxim0Wd548Z6k8q9a6sg7GKdKBaL/Lhvkj1dUOyXQ2fvuu08PG6Xc4C5PM7Hr+ZvkDUk2kAAJkAAJkAAJkAAJkAAJLFYC3vdQXBiS+jRvj4mR3AFO8nf1quPt27d3+qho5RirINpQxK6fN410jTZv3lxOH19Rlm3rEiUGbY1UMucySjzNnW3rGmVrpPqh4G3btnUK0nuehVZ58HnZKTQakwAJkAAJkAAJkAAJkAAJZCBQu+YPXeu3jTOWXKBXpGOJzMXTK1JXZCyR94p0LJG5OHpF6oqMJfJekY4lMhcHj0mABEiABEiABEiABEhgnkDXe1Ktd876kKVomJr9ZmFYYcF6f7uwHUaFswmqOISzRKiCE1NWGV/f9090JsdwFph99bOfp1ZQX/6yna8qqCvdVvKlr40Q+0mABEiABEiABEiABBY8gSqP8s2kLbcK5U4juZL2BTi4rTH9timHRrQoBk3fCtnBBomGZjVI1EZn69EPBsMwNMVQlPAZSaQQDm6xaGJ9I4m0lWksouAU2UECJEACJEACJEACJEACJEACWQnITzuVP5mLDEX3Qff4VCRUWnHYtM4GRvpZaDXGJ7j1B391IHusdt5SPwzs7ZRGDKaitgzZF4gm2Gk65JeuGsKmu55F4wemUjb50a+oWeM9lKi1dAKP/Fhawyz0vkDDkA0kQAIkQAIkQAIkQAIkQAILnkAtkUBe1GdGY0kiapG6UaZGPv5IUyNzZzT+SN0IUiMff6SpkbkzGn+kbgSpkY8lUjc4HpMACZAACZAACZAACZAACaQQaOSmqdf5Vty95h/vQ63u6DYyrYdmlSXS6enpOew6WBZRFdOSokoiXxl8Tjp0uqQMPZKFakRqT3p77qVEqDYjiVTFWZIACZAACZAACZAACZDARBKQa/0P5XeLD0lwbT8Z9E/Ywd6dSONKWn5XV38qO/yLyP9VQQa+Yt6+ptsQrfX2PFjkoo08SjHKyk7JzwtfrceeEovkaY5/2nhKnFb7vNAu+3ZfH9qCkaJTfjB9lxSHZcdT2ftl3yc7tk2YCSq+rXX15eTeKQIzUk75BHxtraI+p7a2hqgszgFx+lMd5Ri/Nr1fSvzrJm0NppJFb5Sp7pGFwI+aHZFfud4KJeFrBfEb8mCMH6FGENxIgARIgARIgARIgARIYHERQNJabnL17E+K1KCltPexWkwXWjc+WWw/XTw4foiBN/YswlYwqzCmqoKp025kfKmOMTuKxuj061s4TPvNj14kQAIkQAIkQAIkQAIkQAIBAqEsL9RuZRZOIsFI7bodra9ahdumRbFjx47qXSCta99R63qtegup3vzfI5w+vva2t4uiCwVnGxXqbYK+ILK0eacfmrY74t8WtRsIj0mABEiABEiABEiABEiABBYBAffWMb6lGd/dnTx1+63Xrpi+eWDLJGE4QBi7dcax+63Y+rXarcJWSOvuF4C7InZ2bl95rEJa4ru4vYZOozuLaMLb9l3cqu1+t3ctN0WEaqjl8uXLi0OHDtXstI8lCZAACZAACZAACZAACZAACTQIuFkfjhtGnoZg1uHLVNS/7Y6ZN49SwW3btpU3CiGCHcfYtF8HaS11yjaLW7t2bTVttEM0FUU5IBzcSKwojHw2NtoGUxXEdF0xOO7du3eJtbFiwbovClfcZ2MFGwu1bt26st8ytQ7arna2L1rXSFRAjXWRdPranlyqcKjstPp2VD29VFiFtF2Prc+g+tiFG6vfJfzZ2dklOAsk6i5utCUBEiABEiABEiABEiCBySGgl+DuNX9bhI2MTx0gpHW3nNws2kaqCVqndEf5WSG33mbT+H4pK+AmuuhDFm1tkuptUUCkzaaRR2l27Ca7GpG2q522t5YaiQqogy4S+rWtU6nCobLT6tuRQ/9R2t5b2A5i62MXbqy+jaatziy6jRD7SYAESIAESIAESOBYJtA9ffHQsDkAUsxoHmX9raNt13opNp9gJIvCOZToarKhAySXbZFaoUGX51bI1ilqaeSpk2kejlZlkTMtX6Xsi0Xolcgya6tXL336emgHaHMO9Zev/FYoR6ShwdhOAiRAAiRAAiRAAscYgZFk0dmupO2FXTZRe+WYbTWtaLZIbXQUtTTy1KvsxK5eHmlRySnK1c+2LJXQSJiOJDetIrWvh9U8elYq0Zznac9Y6EYCJEACJEACJEACC43AIsqid+/eXT41m+2qEYIQU+HBa0/BwQgLMiTDHgSynjZ4UdA924uDvmxp2WOSNRdm0TUcPCABEiABEiABEiCBTgQmK4vWa1m9Uhx870UF9VpWr211gE6s1BjOKqhtg0qNcpCI68woXSL9jnVxsq44F6ffYvi8Jo8lItIdEWc5hSAIMRVGOeScHMldcwTIjQRIgARIgARIgAQWAYHJyqJd4DaLru6duEZdj/VytKtf1N6KZovUjkhRSyNPnUzzcLQqi5wpPxdtTwbWSYAESIAESIAESOBYJTCSLLr6vGlXajYXhS+yaG0bdHkOIU3JVbBrcDX7mMigSGujmAOKGhiZqsHzNLa6vcceIsrV74096DgSpiPJoqtI7UvYkNMJTHgvOnhmsIMESIAESIAESIAESIAESCBEoPYW0tCsRDOc0GBsJwESIAESIAESIAESIAESIAESmFQCyAiHfGYyOC8Ij0RchbOLW2FXfLKy6FikwQWJdVjBLGeDCmYRQ+TugsRmwz4SIAESIAESIAESIAESIAESGD2B7GmPhnxsCE9WFj0yttkXa/IFlSVLEiABEiABEiABEiABEiABEuhEIHu6g9FVFGXWu5LZha2g1m3Ek5NFa3S2tJF2WnU1tmKoDxYc+epniVCnz5IESIAESIAESIAESIAESIAEJoMAUh2boA1OfVxBFbfCtYQ3hQNEQnb6Eebat4vFHEJCvvaRRFp9v5RvRF/byy+/7GsuQu1eY1+ju1h2kXz2bCMBEiABEiABEiABEiABEiCBBUYglh12zvgwdyuo+ahl0lnUCqqQK9xJ1CfoE66JxpzUOVZqxDXRmAP6YoOqIOw6iYaErWAvUVfYFUR/7y2GorcoHUmABEiABEiABEiABEiABEjg7yNg70IOvgNpxZA/2d0n3ppGpiZhNvOriaYKhBZAhWuiPuPUgVQQGq33omEcu8+MPivoCyzaZhfMt0BRZ3aSAAmQAAmQAAmQAAmQAAmQwGQTQKI2klQHwiMRV+Hs4iqoA1gstYQXBl1WVXNS9dPjLho121ikNcPUA52yCqf6Be1U0DIMGqd0ZIssZTDakAAJkAAJkAAJkAAJkAAJkEArgexpD0ZU0awpEMSseJZETUVDwr2zaJsx6yC2DQN22lQETqhjH4xARbMJ2uiyRKiMskaooixJgARIgARIgARIgARIgARIYDIIILvTtMeXS7U+fexOA4L6xDFyUew4HpRGIjJ3IBzb9pF8u5hv0GibjcgahtqtTbAOdtPT0zUEOB7EFKNBAJHpPlgwOAV2kAAJkAAJkAAJkAAJkAAJkMDfQmBQMuaLGIKaS/n6O7epIByzCFtBjaZVGE6xPZQutgprBL6yV6Q+IbfNCg+KMCSMAdy+QcfZBQdFQ2cSIAESIAESIAESIAESIAESyEIAqU5bulN7Tjo2qgrpt2Jt2bKlNO/1bDRutELQl+xqGunenK0Fp1NzS5+gOiYJq7GWfSL9e5hqxFoqGj1mSQIkQAIkQAIkQAIkQAIkQAILmIBmdFmmoGLImwYLWrHBgq7YEMEqNx0iAjzevD9npI01cMUbBkMarPgQHa+vins72UgCJEACJEACJEACJEACJEACIyWgGcnQLLAKcnEJji+LrgDnqGRfJA1q4Qlr5CxJgARIgARIgARIgARIgARIIIlA9rTHCmZJzV3BwaI+wb6i48uiEaHuSSsbM/IhiNkn97nCyY5thla4zZb9JEACJEACJEACJEACJEACJLBACNhUBxkfjgeF7gpqGtlHOCnh9T5YHZlCkmjEv+qyA9e++LuycCrWwenyHlbfe66fIXetQu2uXfDYXaw+ixQUZwcJkAAJkAAJkAAJkAAJkAAJTA4B5KZ9o6nSSCtgBbtme9BpiFpBHaircE3UJ9hHuBKNCapwrLSzqUThEBO2TjFx9NVE0eAT7iLoFXWFuwrCP7j5Ig4as4MESIAESIAESIAESIAESIAEFhYBe2dy8F1JK4Zcyu6p4rU0MjUha8sCK9FUwdAi2oEqURinClsB3yDVvWh0wjh27xl9bYK+Qao2u2CpC1Q5s0ICJEACJEACJEACJEACJEACC4OApj5ZolWx1CwwOqgVGyxoxbQeHT3SWSW8GpXmnnoc8a11qV+tUaODmNZrBkMOVBDiXaNtHdeKtxp3NVDxrn60JwESIAESIAESIAESIAESIIHhBDQjyZZHWcEsolYQ8x0s6goOEQ1m0V1FW7NoCGIbPH2IuAiyiLrC2URdYRxzIwESIAESIAESIAESIAESIIFjgIBNzpBD4bjPtKqnjyGgTxcjz8SO477CZTCh7C7UHptB0heBpQjbLDpJ1DrEImz0gd309HRtYXA8iClGgQCmqvtgwUbobCABEiABEiABEiABEiABEiCBiSCQkuV1ChSCmlN1cgwZqyD6swhbQR10kLBP0BWGTWhX20bpEx4UqY5ghbMIusIYQNuylNkFs0RFERIgARIgARIgARIgARIgARLIRgBpT5/Up3pO2kaiQvqtWFu2bCm7e92Uxc1XCCJ9tIOgrimle8PWtasdxwTVUIUViy3VplHGhFUwJdLRM3VD1+m57TwmgTCB/wdigVA7yGo0NAAAAABJRU5ErkJggg==) no-repeat top left;width:21px;height:21px}.geSprite-actualsize{background-position:0 0}.geSprite-bold{background-position:0 -46px}.geSprite-bottom{background-position:0 -92px}.geSprite-center{background-position:0 -138px}.geSprite-delete{background-position:0 -184px}.geSprite-fillcolor{background-position:0 -230px}.geSprite-fit{background-position:0 -276px}.geSprite-fontcolor{background-position:0 -322px}.geSprite-gradientcolor{background-position:0 -368px}.geSprite-image{background-position:0 -414px}.geSprite-italic{background-position:0 -460px}.geSprite-left{background-position:0 -506px}.geSprite-middle{background-position:0 -552px}.geSprite-print{background-position:0 -598px}.geSprite-redo{background-position:0 -644px}.geSprite-right{background-position:0 -690px}.geSprite-shadow{background-position:0 -736px}.geSprite-strokecolor{background-position:0 -782px}.geSprite-top{background-position:0 -828px}.geSprite-underline{background-position:0 -874px}.geSprite-undo{background-position:0 -920px}.geSprite-zoomin{background-position:0 -966px}.geSprite-zoomout{background-position:0 -1012px}.geSprite-helbow{background-position:0 -1058px}.geSprite-velbow{background-position:0 -1104px}.geSprite-straight{background-position:0 -1150px}.geSprite-entity{background-position:0 -1196px}.geSprite-segment{background-position:0 -1242px}.geSprite-orthogonal{background-position:0 -1288px}.geSprite-noarrow{background-position:0 -1334px}.geSprite-endclassic{background-position:0 -1380px}.geSprite-endopen{background-position:0 -1426px}.geSprite-endblock{background-position:0 -1472px}.geSprite-endoval{background-position:0 -1518px}.geSprite-enddiamond{background-position:0 -1564px}.geSprite-endthindiamond{background-position:0 -1610px}.geSprite-endclassictrans{background-position:0 -1656px}.geSprite-endblocktrans{background-position:0 -1702px}.geSprite-endovaltrans{background-position:0 -1748px}.geSprite-enddiamondtrans{background-position:0 -1794px}.geSprite-endthindiamondtrans{background-position:0 -1840px}.geSprite-startclassic{background-position:0 -1886px}.geSprite-startopen{background-position:0 -1932px}.geSprite-startblock{background-position:0 -1978px}.geSprite-startoval{background-position:0 -2024px}.geSprite-startdiamond{background-position:0 -2070px}.geSprite-startthindiamond{background-position:0 -2116px}.geSprite-startclassictrans{background-position:0 -2162px}.geSprite-startblocktrans{background-position:0 -2208px}.geSprite-startovaltrans{background-position:0 -2254px}.geSprite-startdiamondtrans{background-position:0 -2300px}.geSprite-startthindiamondtrans{background-position:0 -2346px}.geSprite-copy{background-position:0 -410px}.geSprite-cut{background-position:0 -320px}.geSprite-paste{background-position:0 -367px}.geSprite-duplicate{background-position:0 -736px}.geSprite-save{background-position:0 -782px}.geSprite-publish{background-position:0 -92px}.geBaseButton{padding:10px;border-radius:6px;border:1px solid silver;cursor:pointer;background-color:#ececec;background-image:linear-gradient(#ececec 0,#fcfcfc 100%)}.geBaseButton:hover{background:#ececec}.geBigButton{color:#fff;border:none;padding:10px;font-size:14pt;white-space:nowrap;border-radius:6px;text-shadow:#295989 0 1px 0;background-color:#428bca;background-image:linear-gradient(#4687ce 0,#3068a2 100%);-webkit-box-shadow:rgba(255,255,255,.0980392) 0 1px 0 0 inset,rgba(0,0,0,.2) 0 1px 1px 0;-moz-box-shadow:rgba(255,255,255,.0980392) 0 1px 0 0 inset,rgba(0,0,0,.2) 0 1px 1px 0;box-shadow:rgba(255,255,255,.0980392) 0 1px 0 0 inset,rgba(0,0,0,.2) 0 1px 1px 0}.geBigButton:hover{background-color:#2d6ca2;background-image:linear-gradient(#5a94d3 0,#3673b5 100%)}.geBigButton:active{background-color:#3673b5;background-image:none}@media print{div.geNoPrint{display:none!important}}html div.mxRubberband{border-color:#00d;background:#9cf}td.mxPopupMenuIcon div{width:16px;height:16px}html div.mxPopupMenu{-webkit-box-shadow:2px 2px 3px #d5d5d5;-moz-box-shadow:2px 2px 3px #d5d5d5;box-shadow:2px 2px 3px #d5d5d5;background:#fff;position:absolute;border:3px solid #e7e7e7;padding:3px}html table.mxPopupMenu{border-collapse:collapse;margin:0}html td.mxPopupMenuItem{padding:7px 30px 7px 30px;font-family:Helvetica Neue,Helvetica,Arial Unicode MS,Arial;font-size:10pt}html td.mxPopupMenuIcon{background-color:#fff;padding:0}td.mxPopupMenuIcon .geIcon{padding:2px;padding-bottom:4px;margin:2px;border:1px solid transparent;opacity:.5}td.mxPopupMenuIcon .geIcon:hover{border:1px solid gray;border-radius:2px;opacity:1}html tr.mxPopupMenuItemHover{background-color:#eee;color:#000}table.mxPopupMenu hr{color:#ccc;background-color:#ccc;border:none;height:1px}table.mxPopupMenu tr{font-size:4pt}html td.mxWindowTitle{font-family:Helvetica Neue,Helvetica,Arial Unicode MS,Arial;text-align:left;font-size:12px;color:#707070;padding:4px}div.mxTooltip{-webkit-box-shadow:3px 3px 12px silver;-moz-box-shadow:3px 3px 12px silver;box-shadow:3px 3px 12px silver;background:#ffc;border-style:solid;border-width:1px;border-color:#000;font-family:Arial;font-size:8pt;position:absolute;cursor:default;padding:4px;color:#000}body{font-family:Arial Unicode MS,Arial,Helvetica;font-size:10pt}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x826e=['STRING','contactManager[searchFields],\x20script[script],\x20integration[ConfigurationId],\x20motionbar[NULL,eventVariables(0=No,1=Yes),WinAppArguments],\x20browser[NULL,eventVariables(0=No,1=Yes)]','browser[location(0=NewTab,1=NewWindow,2=MotionTab)],\x20contactManager[autoCreateField]','urlForward[headers],\x20browser[wsindowHeight]','TEXT','exports','VIRTUAL','getDataValue','action','motionbar','jscripty','urlForward','browser','Allowed\x20values:\x20contactManager,\x20integration,\x20motionbar,\x20jscripty,\x20urlForward,\x20browser,\x20bot,\x20script'];(function(_0x354bb1,_0x13c981){var _0x359351=function(_0x457226){while(--_0x457226){_0x354bb1['push'](_0x354bb1['shift']());}};_0x359351(++_0x13c981);}(_0x826e,0x163));var _0xe826=function(_0x1bb33e,_0x26a28f){_0x1bb33e=_0x1bb33e-0x0;var _0x3077e0=_0x826e[_0x1bb33e];return _0x3077e0;};'use strict';var Sequelize=require('sequelize');module[_0xe826('0x0')]={'name':{'type':Sequelize[_0xe826('0x1')],'get':function(_0x26b60c){return this[_0xe826('0x2')](_0xe826('0x3'));}},'action':{'type':Sequelize['STRING'],'allowNull':![],'validate':{'isIn':{'args':[['contactManager','integration',_0xe826('0x4'),_0xe826('0x5'),_0xe826('0x6'),_0xe826('0x7'),'bot','script']],'msg':_0xe826('0x8')}},'comment':_0xe826('0x8')},'data1':{'type':Sequelize['STRING'](0x1000),'comment':'jscripty[ProjectId],\x20browser[type(0=Popup,1=CTI\x20URL)],\x20contactManager[ListId],\x20urlForward[type(GET,POST,PUT,DELETE)],\x20script[info],\x20integration[intName(desk,dynamics365,freshdesk,freshsales,salesforce,sugarcrm,vtiger,zendesk,zoho)],\x20motionbar[type(0=Popup,1=CTI\x20URL,2=WinApp)]'},'data2':{'type':Sequelize[_0xe826('0x9')](0x1000),'comment':'contactManager[autoCreate(0=No,1=Yes)],\x20urlForward[URL],\x20script[type],\x20integration[AccountId],\x20motionbar[TemplateId,URL,WinAppPath],\x20browser[TemplateId,URL]'},'data3':{'type':Sequelize[_0xe826('0x9')](0x1000),'comment':_0xe826('0xa')},'data4':{'type':Sequelize[_0xe826('0x9')](0x1000),'comments':_0xe826('0xb')},'data5':{'type':Sequelize[_0xe826('0x9')](0x1000),'comments':'urlForward[timeout],\x20browser[windowWidth],\x20contactManager[ignoreDialerContactId]'},'data6':{'type':Sequelize[_0xe826('0x9')],'comments':_0xe826('0xc')},'data7':{'type':Sequelize[_0xe826('0xd')],'comments':'urlForward[body]'}};
\ No newline at end of file
+var _0xfd20=['exports','getDataValue','action','contactManager','motionbar','jscripty','urlForward','browser','bot','Allowed\x20values:\x20contactManager,\x20integration,\x20motionbar,\x20jscripty,\x20urlForward,\x20browser,\x20bot,\x20script','STRING','jscripty[ProjectId],\x20browser[type(0=Popup,1=CTI\x20URL)],\x20contactManager[ListId],\x20urlForward[type(GET,POST,PUT,DELETE)],\x20script[info],\x20integration[intName(desk,dynamics365,freshdesk,freshsales,salesforce,sugarcrm,vtiger,zendesk,zoho)],\x20motionbar[type(0=Popup,1=CTI\x20URL,2=WinApp)]','contactManager[autoCreate(0=No,1=Yes)],\x20urlForward[URL],\x20script[type],\x20integration[AccountId],\x20motionbar[TemplateId,URL,WinAppPath],\x20browser[TemplateId,URL]','contactManager[searchFields],\x20script[script],\x20integration[ConfigurationId],\x20motionbar[NULL,eventVariables(0=No,1=Yes),WinAppArguments],\x20browser[NULL,eventVariables(0=No,1=Yes)]','browser[location(0=NewTab,1=NewWindow,2=MotionTab)],\x20contactManager[autoCreateField]','TEXT','urlForward[body]'];(function(_0xab0227,_0x27b26f){var _0x19f8a3=function(_0x4661d9){while(--_0x4661d9){_0xab0227['push'](_0xab0227['shift']());}};_0x19f8a3(++_0x27b26f);}(_0xfd20,0x66));var _0x0fd2=function(_0x2d4501,_0x328b79){_0x2d4501=_0x2d4501-0x0;var _0x4725b4=_0xfd20[_0x2d4501];return _0x4725b4;};'use strict';var Sequelize=require('sequelize');module[_0x0fd2('0x0')]={'name':{'type':Sequelize['VIRTUAL'],'get':function(_0x54f464){return this[_0x0fd2('0x1')](_0x0fd2('0x2'));}},'action':{'type':Sequelize['STRING'],'allowNull':![],'validate':{'isIn':{'args':[[_0x0fd2('0x3'),'integration',_0x0fd2('0x4'),_0x0fd2('0x5'),_0x0fd2('0x6'),_0x0fd2('0x7'),_0x0fd2('0x8'),'script']],'msg':'Allowed\x20values:\x20contactManager,\x20integration,\x20motionbar,\x20jscripty,\x20urlForward,\x20browser,\x20bot,\x20script'}},'comment':_0x0fd2('0x9')},'data1':{'type':Sequelize[_0x0fd2('0xa')](0x1000),'comment':_0x0fd2('0xb')},'data2':{'type':Sequelize[_0x0fd2('0xa')](0x1000),'comment':_0x0fd2('0xc')},'data3':{'type':Sequelize[_0x0fd2('0xa')](0x1000),'comment':_0x0fd2('0xd')},'data4':{'type':Sequelize['STRING'](0x1000),'comments':_0x0fd2('0xe')},'data5':{'type':Sequelize[_0x0fd2('0xa')](0x1000),'comments':'urlForward[timeout],\x20browser[windowWidth]'},'data6':{'type':Sequelize[_0x0fd2('0xa')],'comments':'urlForward[headers],\x20browser[wsindowHeight]'},'data7':{'type':Sequelize[_0x0fd2('0xf')],'comments':_0x0fd2('0x10')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdc8a=['params','catch','find','eml-format','rimraf','fast-json-patch','request-promise','moment','util','path','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../mysqldb','status','end','json','offset','undefined','limit','set','apply','reject','save','then','destroy','sendStatus','error','name','send','update','body','Action'];(function(_0x4c4042,_0x3967e4){var _0x4bb9d1=function(_0xac1371){while(--_0xac1371){_0x4c4042['push'](_0x4c4042['shift']());}};_0x4bb9d1(++_0x3967e4);}(_0xdc8a,0xe4));var _0xadc8=function(_0x1dd415,_0x1b38bb){_0x1dd415=_0x1dd415-0x0;var _0x3855cf=_0xdc8a[_0x1dd415];return _0x3855cf;};'use strict';var emlformat=require(_0xadc8('0x0'));var rimraf=require(_0xadc8('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xadc8('0x2'));var rp=require(_0xadc8('0x3'));var moment=require(_0xadc8('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xadc8('0x5'));var path=require(_0xadc8('0x6'));var sox=require('sox');var csv=require(_0xadc8('0x7'));var ejs=require(_0xadc8('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xadc8('0x9'));var squel=require(_0xadc8('0xa'));var crypto=require(_0xadc8('0xb'));var jsforce=require(_0xadc8('0xc'));var deskjs=require(_0xadc8('0xd'));var toCsv=require('to-csv');var querystring=require(_0xadc8('0xe'));var Papa=require('papaparse');var Redis=require(_0xadc8('0xf'));var authService=require(_0xadc8('0x10'));var qs=require(_0xadc8('0x11'));var as=require(_0xadc8('0x12'));var hardwareService=require(_0xadc8('0x13'));var logger=require('../../config/logger')(_0xadc8('0x14'));var utils=require(_0xadc8('0x15'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0xadc8('0x16'))['db'];function respondWithStatusCode(_0x492c13,_0x547b84){_0x547b84=_0x547b84||0xcc;return function(_0xec8b1b){if(_0xec8b1b){return _0x492c13['sendStatus'](_0x547b84);}return _0x492c13[_0xadc8('0x17')](_0x547b84)[_0xadc8('0x18')]();};}function respondWithResult(_0x443d80,_0x564189){_0x564189=_0x564189||0xc8;return function(_0x3168c1){if(_0x3168c1){return _0x443d80[_0xadc8('0x17')](_0x564189)[_0xadc8('0x19')](_0x3168c1);}};}function respondWithFilteredResult(_0x4fc719,_0x4195fe){return function(_0x27562b){if(_0x27562b){var _0x3d1daf=typeof _0x4195fe[_0xadc8('0x1a')]===_0xadc8('0x1b')&&typeof _0x4195fe['limit']===_0xadc8('0x1b');var _0x4bc18e=_0x27562b['count'];var _0x1ba344=_0x3d1daf?0x0:_0x4195fe[_0xadc8('0x1a')];var _0x3357c9=_0x3d1daf?_0x27562b['count']:_0x4195fe['offset']+_0x4195fe[_0xadc8('0x1c')];var _0x59a6ff;if(_0x3357c9>=_0x4bc18e){_0x3357c9=_0x4bc18e;_0x59a6ff=0xc8;}else{_0x59a6ff=0xce;}_0x4fc719['status'](_0x59a6ff);return _0x4fc719[_0xadc8('0x1d')]('Content-Range',_0x1ba344+'-'+_0x3357c9+'/'+_0x4bc18e)[_0xadc8('0x19')](_0x27562b);}return null;};}function patchUpdates(_0x429998){return function(_0x57bf22){try{jsonpatch[_0xadc8('0x1e')](_0x57bf22,_0x429998,!![]);}catch(_0x92cf28){return BPromise[_0xadc8('0x1f')](_0x92cf28);}return _0x57bf22[_0xadc8('0x20')]();};}function saveUpdates(_0x33649f,_0xac0a0b){return function(_0x4d74d5){if(_0x4d74d5){return _0x4d74d5['update'](_0x33649f)[_0xadc8('0x21')](function(_0x58d4ad){return _0x58d4ad;});}return null;};}function removeEntity(_0x79b3dd,_0x51cf46){return function(_0x3a98ce){if(_0x3a98ce){return _0x3a98ce[_0xadc8('0x22')]()[_0xadc8('0x21')](function(){_0x79b3dd[_0xadc8('0x17')](0xcc)['end']();});}};}function handleEntityNotFound(_0x354eff,_0x4ddffd){return function(_0x1699fe){if(!_0x1699fe){_0x354eff[_0xadc8('0x23')](0x194);}return _0x1699fe;};}function handleError(_0x42b5a2,_0x3fb88c){_0x3fb88c=_0x3fb88c||0x1f4;return function(_0x42d274){logger[_0xadc8('0x24')](_0x42d274['stack']);if(_0x42d274['name']){delete _0x42d274[_0xadc8('0x25')];}_0x42b5a2[_0xadc8('0x17')](_0x3fb88c)[_0xadc8('0x26')](_0x42d274);};}exports[_0xadc8('0x27')]=function(_0x32b2c9,_0xff286){if(_0x32b2c9[_0xadc8('0x28')]['id']){delete _0x32b2c9[_0xadc8('0x28')]['id'];}return db[_0xadc8('0x29')]['find']({'where':{'id':_0x32b2c9[_0xadc8('0x2a')]['id']}})[_0xadc8('0x21')](handleEntityNotFound(_0xff286,null))[_0xadc8('0x21')](saveUpdates(_0x32b2c9[_0xadc8('0x28')],null))[_0xadc8('0x21')](respondWithResult(_0xff286,null))[_0xadc8('0x2b')](handleError(_0xff286,null));};exports[_0xadc8('0x22')]=function(_0x4f9f35,_0xa3b27d){return db[_0xadc8('0x29')][_0xadc8('0x2c')]({'where':{'id':_0x4f9f35[_0xadc8('0x2a')]['id']}})[_0xadc8('0x21')](handleEntityNotFound(_0xa3b27d,null))['then'](removeEntity(_0xa3b27d,null))[_0xadc8('0x2b')](handleError(_0xa3b27d,null));};
\ No newline at end of file
+var _0xcac1=['crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/environment','sendStatus','end','offset','undefined','limit','count','status','set','Content-Range','apply','reject','save','update','destroy','error','stack','name','send','body','Action','find','params','then','catch','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','util','to-csv','ejs','fs-extra','squel'];(function(_0x1d7472,_0x35ec49){var _0x5f0272=function(_0x3fd9ca){while(--_0x3fd9ca){_0x1d7472['push'](_0x1d7472['shift']());}};_0x5f0272(++_0x35ec49);}(_0xcac1,0x14e));var _0x1cac=function(_0x26eb88,_0x5efcf1){_0x26eb88=_0x26eb88-0x0;var _0x5a1b15=_0xcac1[_0x26eb88];return _0x5a1b15;};'use strict';var emlformat=require(_0x1cac('0x0'));var rimraf=require(_0x1cac('0x1'));var zipdir=require(_0x1cac('0x2'));var jsonpatch=require(_0x1cac('0x3'));var rp=require(_0x1cac('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x1cac('0x5'));var path=require('path');var sox=require('sox');var csv=require(_0x1cac('0x6'));var ejs=require(_0x1cac('0x7'));var fs=require('fs');var fs_extra=require(_0x1cac('0x8'));var _=require('lodash');var squel=require(_0x1cac('0x9'));var crypto=require(_0x1cac('0xa'));var jsforce=require('jsforce');var deskjs=require(_0x1cac('0xb'));var toCsv=require('to-csv');var querystring=require(_0x1cac('0xc'));var Papa=require(_0x1cac('0xd'));var Redis=require(_0x1cac('0xe'));var authService=require(_0x1cac('0xf'));var qs=require(_0x1cac('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x1cac('0x11'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require(_0x1cac('0x12'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x194b57,_0x4743c7){_0x4743c7=_0x4743c7||0xcc;return function(_0x2fb60a){if(_0x2fb60a){return _0x194b57[_0x1cac('0x13')](_0x4743c7);}return _0x194b57['status'](_0x4743c7)[_0x1cac('0x14')]();};}function respondWithResult(_0x478610,_0x3a3e8c){_0x3a3e8c=_0x3a3e8c||0xc8;return function(_0x3ad054){if(_0x3ad054){return _0x478610['status'](_0x3a3e8c)['json'](_0x3ad054);}};}function respondWithFilteredResult(_0x3e2a9e,_0x35f8a6){return function(_0x3aa05a){if(_0x3aa05a){var _0xad7af7=typeof _0x35f8a6[_0x1cac('0x15')]===_0x1cac('0x16')&&typeof _0x35f8a6[_0x1cac('0x17')]===_0x1cac('0x16');var _0x4c06d8=_0x3aa05a['count'];var _0x3a651a=_0xad7af7?0x0:_0x35f8a6[_0x1cac('0x15')];var _0x3eb36b=_0xad7af7?_0x3aa05a[_0x1cac('0x18')]:_0x35f8a6[_0x1cac('0x15')]+_0x35f8a6[_0x1cac('0x17')];var _0x56ceca;if(_0x3eb36b>=_0x4c06d8){_0x3eb36b=_0x4c06d8;_0x56ceca=0xc8;}else{_0x56ceca=0xce;}_0x3e2a9e[_0x1cac('0x19')](_0x56ceca);return _0x3e2a9e[_0x1cac('0x1a')](_0x1cac('0x1b'),_0x3a651a+'-'+_0x3eb36b+'/'+_0x4c06d8)['json'](_0x3aa05a);}return null;};}function patchUpdates(_0x387589){return function(_0x5474fa){try{jsonpatch[_0x1cac('0x1c')](_0x5474fa,_0x387589,!![]);}catch(_0x578f9b){return BPromise[_0x1cac('0x1d')](_0x578f9b);}return _0x5474fa[_0x1cac('0x1e')]();};}function saveUpdates(_0x50e786,_0x2b59b9){return function(_0x6172ef){if(_0x6172ef){return _0x6172ef[_0x1cac('0x1f')](_0x50e786)['then'](function(_0xe81141){return _0xe81141;});}return null;};}function removeEntity(_0x3daf59,_0x4d7b1d){return function(_0x2d6a22){if(_0x2d6a22){return _0x2d6a22[_0x1cac('0x20')]()['then'](function(){_0x3daf59[_0x1cac('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x593575,_0xceac97){return function(_0x2342d6){if(!_0x2342d6){_0x593575[_0x1cac('0x13')](0x194);}return _0x2342d6;};}function handleError(_0x10b6f1,_0x2a64e9){_0x2a64e9=_0x2a64e9||0x1f4;return function(_0x207dd2){logger[_0x1cac('0x21')](_0x207dd2[_0x1cac('0x22')]);if(_0x207dd2[_0x1cac('0x23')]){delete _0x207dd2['name'];}_0x10b6f1[_0x1cac('0x19')](_0x2a64e9)[_0x1cac('0x24')](_0x207dd2);};}exports[_0x1cac('0x1f')]=function(_0x25e71b,_0xabe607){if(_0x25e71b[_0x1cac('0x25')]['id']){delete _0x25e71b[_0x1cac('0x25')]['id'];}return db[_0x1cac('0x26')][_0x1cac('0x27')]({'where':{'id':_0x25e71b[_0x1cac('0x28')]['id']}})[_0x1cac('0x29')](handleEntityNotFound(_0xabe607,null))[_0x1cac('0x29')](saveUpdates(_0x25e71b['body'],null))[_0x1cac('0x29')](respondWithResult(_0xabe607,null))[_0x1cac('0x2a')](handleError(_0xabe607,null));};exports[_0x1cac('0x20')]=function(_0x33ea57,_0x2ecbad){return db[_0x1cac('0x26')][_0x1cac('0x27')]({'where':{'id':_0x33ea57[_0x1cac('0x28')]['id']}})[_0x1cac('0x29')](handleEntityNotFound(_0x2ecbad,null))[_0x1cac('0x29')](removeEntity(_0x2ecbad,null))['catch'](handleError(_0x2ecbad,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5100=['moment','bluebird','path','../../config/environment','./action.attributes','tools_actions','lodash','util','../../config/logger','api'];(function(_0x5e0565,_0x507a73){var _0x118380=function(_0xf99a56){while(--_0xf99a56){_0x5e0565['push'](_0x5e0565['shift']());}};_0x118380(++_0x507a73);}(_0x5100,0x132));var _0x0510=function(_0x4d3d46,_0x35282a){_0x4d3d46=_0x4d3d46-0x0;var _0x4b76d4=_0x5100[_0x4d3d46];return _0x4b76d4;};'use strict';var _=require(_0x0510('0x0'));var util=require(_0x0510('0x1'));var logger=require(_0x0510('0x2'))(_0x0510('0x3'));var moment=require(_0x0510('0x4'));var BPromise=require(_0x0510('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x0510('0x6'));var rimraf=require('rimraf');var config=require(_0x0510('0x7'));var attributes=require(_0x0510('0x8'));module['exports']=function(_0x314bfe,_0x187274){return _0x314bfe['define']('Action',attributes,{'tableName':_0x0510('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xa108=['../../config/environment','./action.attributes','define','Action','tools_actions','util','../../config/logger','moment','bluebird','request-promise','path'];(function(_0x416f0f,_0x5453e6){var _0x2ac5c6=function(_0x112b7f){while(--_0x112b7f){_0x416f0f['push'](_0x416f0f['shift']());}};_0x2ac5c6(++_0x5453e6);}(_0xa108,0x1c8));var _0x8a10=function(_0x1306f5,_0x1ff80e){_0x1306f5=_0x1306f5-0x0;var _0x508e6f=_0xa108[_0x1306f5];return _0x508e6f;};'use strict';var _=require('lodash');var util=require(_0x8a10('0x0'));var logger=require(_0x8a10('0x1'))('api');var moment=require(_0x8a10('0x2'));var BPromise=require(_0x8a10('0x3'));var rp=require(_0x8a10('0x4'));var fs=require('fs');var path=require(_0x8a10('0x5'));var rimraf=require('rimraf');var config=require(_0x8a10('0x6'));var attributes=require(_0x8a10('0x7'));module['exports']=function(_0x5a4619,_0x365b2a){return _0x5a4619[_0x8a10('0x8')](_0x8a10('0x9'),attributes,{'tableName':_0x8a10('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4975=['ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','request','info','Action,\x20%s,\x20%s','request\x20sent','debug','Action,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','lodash','moment','bluebird','randomstring'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x4975,0x86));var _0x5497=function(_0x2b0474,_0x2565b9){_0x2b0474=_0x2b0474-0x0;var _0x1c8326=_0x4975[_0x2b0474];return _0x1c8326;};'use strict';var _=require(_0x5497('0x0'));var util=require('util');var moment=require(_0x5497('0x1'));var BPromise=require(_0x5497('0x2'));var rs=require(_0x5497('0x3'));var fs=require('fs');var Redis=require(_0x5497('0x4'));var db=require(_0x5497('0x5'))['db'];var utils=require(_0x5497('0x6'));var logger=require(_0x5497('0x7'))(_0x5497('0x8'));var config=require(_0x5497('0x9'));var jayson=require(_0x5497('0xa'));var client=jayson['client'][_0x5497('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x4f563d,_0x1d0019,_0x674a2a){return new BPromise(function(_0x368e8b,_0x57f930){return client[_0x5497('0xc')](_0x4f563d,_0x674a2a)['then'](function(_0x1f63d8){logger[_0x5497('0xd')](_0x5497('0xe'),_0x1d0019,_0x5497('0xf'));logger[_0x5497('0x10')](_0x5497('0x11'),_0x1d0019,_0x5497('0xf'),JSON[_0x5497('0x12')](_0x1f63d8));if(_0x1f63d8['error']){if(_0x1f63d8['error']['code']===0x1f4){logger[_0x5497('0x13')](_0x5497('0xe'),_0x1d0019,_0x1f63d8[_0x5497('0x13')][_0x5497('0x14')]);return _0x57f930(_0x1f63d8[_0x5497('0x13')][_0x5497('0x14')]);}logger[_0x5497('0x13')](_0x5497('0xe'),_0x1d0019,_0x1f63d8[_0x5497('0x13')][_0x5497('0x14')]);return _0x368e8b(_0x1f63d8['error'][_0x5497('0x14')]);}else{logger['info'](_0x5497('0xe'),_0x1d0019,_0x5497('0xf'));_0x368e8b(_0x1f63d8[_0x5497('0x15')][_0x5497('0x14')]);}})[_0x5497('0x16')](function(_0x4073e6){logger[_0x5497('0x13')]('Action,\x20%s,\x20%s',_0x1d0019,_0x4073e6);_0x57f930(_0x4073e6);});});}
\ No newline at end of file
+var _0x4975=['ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','request','info','Action,\x20%s,\x20%s','request\x20sent','debug','Action,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','lodash','moment','bluebird','randomstring'];(function(_0x4dbaad,_0x730318){var _0x226c72=function(_0x501972){while(--_0x501972){_0x4dbaad['push'](_0x4dbaad['shift']());}};_0x226c72(++_0x730318);}(_0x4975,0x86));var _0x5497=function(_0x228d8a,_0x564cfb){_0x228d8a=_0x228d8a-0x0;var _0x52ba4e=_0x4975[_0x228d8a];return _0x52ba4e;};'use strict';var _=require(_0x5497('0x0'));var util=require('util');var moment=require(_0x5497('0x1'));var BPromise=require(_0x5497('0x2'));var rs=require(_0x5497('0x3'));var fs=require('fs');var Redis=require(_0x5497('0x4'));var db=require(_0x5497('0x5'))['db'];var utils=require(_0x5497('0x6'));var logger=require(_0x5497('0x7'))(_0x5497('0x8'));var config=require(_0x5497('0x9'));var jayson=require(_0x5497('0xa'));var client=jayson['client'][_0x5497('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x4f563d,_0x1d0019,_0x674a2a){return new BPromise(function(_0x368e8b,_0x57f930){return client[_0x5497('0xc')](_0x4f563d,_0x674a2a)['then'](function(_0x1f63d8){logger[_0x5497('0xd')](_0x5497('0xe'),_0x1d0019,_0x5497('0xf'));logger[_0x5497('0x10')](_0x5497('0x11'),_0x1d0019,_0x5497('0xf'),JSON[_0x5497('0x12')](_0x1f63d8));if(_0x1f63d8['error']){if(_0x1f63d8['error']['code']===0x1f4){logger[_0x5497('0x13')](_0x5497('0xe'),_0x1d0019,_0x1f63d8[_0x5497('0x13')][_0x5497('0x14')]);return _0x57f930(_0x1f63d8[_0x5497('0x13')][_0x5497('0x14')]);}logger[_0x5497('0x13')](_0x5497('0xe'),_0x1d0019,_0x1f63d8[_0x5497('0x13')][_0x5497('0x14')]);return _0x368e8b(_0x1f63d8['error'][_0x5497('0x14')]);}else{logger['info'](_0x5497('0xe'),_0x1d0019,_0x5497('0xf'));_0x368e8b(_0x1f63d8[_0x5497('0x15')][_0x5497('0x14')]);}})[_0x5497('0x16')](function(_0x4073e6){logger[_0x5497('0x13')]('Action,\x20%s,\x20%s',_0x1d0019,_0x4073e6);_0x57f930(_0x4073e6);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x207a=['util','connect-timeout','express','fs-extra','../../components/interaction/service','./action.controller','put','/:id','delete','isAuthenticated','exports','multer'];(function(_0x5a86fa,_0x13c0e9){var _0x2b0c5f=function(_0x57f874){while(--_0x57f874){_0x5a86fa['push'](_0x5a86fa['shift']());}};_0x2b0c5f(++_0x13c0e9);}(_0x207a,0x83));var _0xa207=function(_0xb6015f,_0x2e3fd8){_0xb6015f=_0xb6015f-0x0;var _0x48407e=_0x207a[_0xb6015f];return _0x48407e;};'use strict';var multer=require(_0xa207('0x0'));var util=require(_0xa207('0x1'));var path=require('path');var timeout=require(_0xa207('0x2'));var express=require(_0xa207('0x3'));var router=express['Router']();var fs_extra=require(_0xa207('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0xa207('0x5'));var config=require('../../config/environment');var controller=require(_0xa207('0x6'));router[_0xa207('0x7')](_0xa207('0x8'),auth['isAuthenticated'](),controller['update']);router[_0xa207('0x9')]('/:id',auth[_0xa207('0xa')](),controller['destroy']);module[_0xa207('0xb')]=router;
\ No newline at end of file
+var _0xc5ff=['express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./action.controller','put','/:id','update','delete','destroy','exports','path'];(function(_0x4b7b62,_0x4920a9){var _0x2280df=function(_0x21e1f8){while(--_0x21e1f8){_0x4b7b62['push'](_0x4b7b62['shift']());}};_0x2280df(++_0x4920a9);}(_0xc5ff,0x15d));var _0xfc5f=function(_0x555fa2,_0x26e523){_0x555fa2=_0x555fa2-0x0;var _0x52d4bb=_0xc5ff[_0x555fa2];return _0x52d4bb;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0xfc5f('0x0'));var timeout=require('connect-timeout');var express=require(_0xfc5f('0x1'));var router=express[_0xfc5f('0x2')]();var fs_extra=require(_0xfc5f('0x3'));var auth=require(_0xfc5f('0x4'));var interaction=require(_0xfc5f('0x5'));var config=require(_0xfc5f('0x6'));var controller=require(_0xfc5f('0x7'));router[_0xfc5f('0x8')](_0xfc5f('0x9'),auth['isAuthenticated'](),controller[_0xfc5f('0xa')]);router[_0xfc5f('0xb')](_0xfc5f('0x9'),auth['isAuthenticated'](),controller[_0xfc5f('0xc')]);module[_0xfc5f('0xd')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2bd8=['TEXT','sequelize','STRING'];(function(_0x47f2c5,_0x40c84b){var _0x38b405=function(_0x22c2aa){while(--_0x22c2aa){_0x47f2c5['push'](_0x47f2c5['shift']());}};_0x38b405(++_0x40c84b);}(_0x2bd8,0x130));var _0x82bd=function(_0x460b1f,_0x494b84){_0x460b1f=_0x460b1f-0x0;var _0x9e09d0=_0x2bd8[_0x460b1f];return _0x9e09d0;};'use strict';var Sequelize=require(_0x82bd('0x0'));module['exports']={'name':{'type':Sequelize[_0x82bd('0x1')],'allowNull':![]},'description':{'type':Sequelize[_0x82bd('0x1')]},'parent':{'type':Sequelize[_0x82bd('0x1')]},'table':{'type':Sequelize[_0x82bd('0x1')]},'conditions':{'type':Sequelize[_0x82bd('0x2')]},'joins':{'type':Sequelize[_0x82bd('0x2')]}};
\ No newline at end of file
+var _0xc4aa=['STRING','sequelize','exports'];(function(_0x24703f,_0x2669d3){var _0x2dc703=function(_0x4b6b90){while(--_0x4b6b90){_0x24703f['push'](_0x24703f['shift']());}};_0x2dc703(++_0x2669d3);}(_0xc4aa,0x1b7));var _0xac4a=function(_0x342baa,_0x4a110f){_0x342baa=_0x342baa-0x0;var _0x1208f3=_0xc4aa[_0x342baa];return _0x1208f3;};'use strict';var Sequelize=require(_0xac4a('0x0'));module[_0xac4a('0x1')]={'name':{'type':Sequelize[_0xac4a('0x2')],'allowNull':![]},'description':{'type':Sequelize[_0xac4a('0x2')]},'parent':{'type':Sequelize[_0xac4a('0x2')]},'table':{'type':Sequelize[_0xac4a('0x2')]},'conditions':{'type':Sequelize['TEXT']},'joins':{'type':Sequelize['TEXT']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6a13=['autoAssociation','UserProfileResource','preview','right_join','cross_join','SUM(%s)','COUNT(%s)','MAX(%s)','GROUP_CONCAT(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','SEC_TO_TIME(%s)','DATE(%s)','HOUR(%s)','ROUND(%s)','UNIX_TIMESTAMP(%s)','IS\x20NULL','IS\x20NOT\x20NULL','IS\x20EMPTY','IS\x20NOT\x20EMPTY','length','rules','operator','group','field','condition','getFields','Sequelize','ValidationErrorItem','Please\x20insert\x20at\x20least\x20one\x20field','AnalyticMetric','findAll','keyBy','select','from','MetricId','metric','replace','function','groupBy','orderBy','alias','joins','parse','includes','foreignTable','foreignKey','format','%s.%s\x20=\x20%s.%s','table','parentKey','conditions','debug','toString','sequelize','join','left_join','COUNT(DISTINCT\x20%s)','MIN(%s)','AVG(%s)','value','order','DESC','clone','output','web','fullPath','%s-%s.%s','csv','AnalyticExtractedReport','cdr','.calldate\x20BETWEEN\x20?\x20AND\x20?','startDate','endDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','fork','../../components/export/','../../files/reports','savename','countTable','COUNT(*)','QueryTypes','SELECT','run','Limited\x20Query:','rimraf','fast-json-patch','request-promise','mustache','util','path','fs-extra','lodash','squel','jsforce','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','CustomReports','destroy','error','stack','name','send','index','map','AnalyticCustomReport','rawAttributes','fieldName','type','model','query','keys','attributes','intersection','fields','sort','filters','pick','where','merge','VIRTUAL','filter','options','include','rows','catch','show','params','includeAll','find','create','body','user','get','role','UserProfileSection'];(function(_0x27380a,_0x11b4db){var _0x49557d=function(_0x11984a){while(--_0x11984a){_0x27380a['push'](_0x27380a['shift']());}};_0x49557d(++_0x11b4db);}(_0x6a13,0xf4));var _0x36a1=function(_0x309c75,_0x2514f5){_0x309c75=_0x309c75-0x0;var _0x187e12=_0x6a13[_0x309c75];return _0x187e12;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x36a1('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x36a1('0x1'));var rp=require(_0x36a1('0x2'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x36a1('0x3'));var util=require(_0x36a1('0x4'));var path=require(_0x36a1('0x5'));var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x36a1('0x6'));var _=require(_0x36a1('0x7'));var squel=require(_0x36a1('0x8'));var crypto=require('crypto');var jsforce=require(_0x36a1('0x9'));var deskjs=require('desk.js');var toCsv=require(_0x36a1('0xa'));var querystring=require(_0x36a1('0xb'));var Papa=require(_0x36a1('0xc'));var Redis=require(_0x36a1('0xd'));var authService=require(_0x36a1('0xe'));var qs=require(_0x36a1('0xf'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x36a1('0x10'));var logger=require(_0x36a1('0x11'))('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x36a1('0x12'));var db=require(_0x36a1('0x13'))['db'];var dbH=require('../../mysqldb')['dbH'];function respondWithStatusCode(_0x157a56,_0x10aaff){_0x10aaff=_0x10aaff||0xcc;return function(_0x272324){if(_0x272324){return _0x157a56[_0x36a1('0x14')](_0x10aaff);}return _0x157a56[_0x36a1('0x15')](_0x10aaff)[_0x36a1('0x16')]();};}function respondWithResult(_0x25b8c9,_0x4aee16){_0x4aee16=_0x4aee16||0xc8;return function(_0x5ac42f){if(_0x5ac42f){return _0x25b8c9[_0x36a1('0x15')](_0x4aee16)[_0x36a1('0x17')](_0x5ac42f);}};}function respondWithFilteredResult(_0x3e7621,_0x39be59){return function(_0x5a144a){if(_0x5a144a){var _0x2550a2=typeof _0x39be59[_0x36a1('0x18')]===_0x36a1('0x19')&&typeof _0x39be59[_0x36a1('0x1a')]===_0x36a1('0x19');var _0x50376e=_0x5a144a[_0x36a1('0x1b')];var _0x544f07=_0x2550a2?0x0:_0x39be59[_0x36a1('0x18')];var _0x47ab17=_0x2550a2?_0x5a144a[_0x36a1('0x1b')]:_0x39be59[_0x36a1('0x18')]+_0x39be59['limit'];var _0x38b9fc;if(_0x47ab17>=_0x50376e){_0x47ab17=_0x50376e;_0x38b9fc=0xc8;}else{_0x38b9fc=0xce;}_0x3e7621['status'](_0x38b9fc);return _0x3e7621[_0x36a1('0x1c')](_0x36a1('0x1d'),_0x544f07+'-'+_0x47ab17+'/'+_0x50376e)[_0x36a1('0x17')](_0x5a144a);}return null;};}function patchUpdates(_0x5c34e2){return function(_0x16eaa5){try{jsonpatch[_0x36a1('0x1e')](_0x16eaa5,_0x5c34e2,!![]);}catch(_0xd8cabc){return BPromise[_0x36a1('0x1f')](_0xd8cabc);}return _0x16eaa5[_0x36a1('0x20')]();};}function saveUpdates(_0x593308,_0x3df7f4){return function(_0x1e55d2){if(_0x1e55d2){return _0x1e55d2[_0x36a1('0x21')](_0x593308)[_0x36a1('0x22')](function(_0x547f4b){return _0x547f4b;});}return null;};}function removeEntity(_0x9eb22f,_0x4a1eba){return function(_0x5752b6){if(_0x5752b6){return _0x5752b6['destroy']()[_0x36a1('0x22')](function(){var _0x4f79ef=_0x5752b6['get']({'plain':!![]});var _0x5c80ae=_0x36a1('0x23');return db['UserProfileResource'][_0x36a1('0x24')]({'where':{'type':_0x5c80ae,'resourceId':_0x4f79ef['id']}})[_0x36a1('0x22')](function(){return _0x5752b6;});})[_0x36a1('0x22')](function(){_0x9eb22f[_0x36a1('0x15')](0xcc)[_0x36a1('0x16')]();});}};}function handleEntityNotFound(_0x388bc7,_0x506577){return function(_0x13439f){if(!_0x13439f){_0x388bc7['sendStatus'](0x194);}return _0x13439f;};}function handleError(_0x53d44a,_0x2ed36c){_0x2ed36c=_0x2ed36c||0x1f4;return function(_0x5087a2){logger[_0x36a1('0x25')](_0x5087a2[_0x36a1('0x26')]);if(_0x5087a2['name']){delete _0x5087a2[_0x36a1('0x27')];}_0x53d44a[_0x36a1('0x15')](_0x2ed36c)[_0x36a1('0x28')](_0x5087a2);};}exports[_0x36a1('0x29')]=function(_0x526131,_0x30a389){var _0x507ae4={},_0x495d7f={},_0x4a83a7={'count':0x0,'rows':[]};var _0x205712=_[_0x36a1('0x2a')](db[_0x36a1('0x2b')][_0x36a1('0x2c')],function(_0x2046ec){return{'name':_0x2046ec[_0x36a1('0x2d')],'type':_0x2046ec[_0x36a1('0x2e')]['key']};});_0x495d7f[_0x36a1('0x2f')]=_[_0x36a1('0x2a')](_0x205712,_0x36a1('0x27'));_0x495d7f[_0x36a1('0x30')]=_[_0x36a1('0x31')](_0x526131[_0x36a1('0x30')]);_0x495d7f['filters']=_['intersection'](_0x495d7f[_0x36a1('0x2f')],_0x495d7f[_0x36a1('0x30')]);_0x507ae4[_0x36a1('0x32')]=_[_0x36a1('0x33')](_0x495d7f[_0x36a1('0x2f')],qs[_0x36a1('0x34')](_0x526131[_0x36a1('0x30')][_0x36a1('0x34')]));_0x507ae4[_0x36a1('0x32')]=_0x507ae4[_0x36a1('0x32')]['length']?_0x507ae4[_0x36a1('0x32')]:_0x495d7f[_0x36a1('0x2f')];if(!_0x526131['query']['hasOwnProperty']('nolimit')){_0x507ae4[_0x36a1('0x1a')]=qs[_0x36a1('0x1a')](_0x526131[_0x36a1('0x30')][_0x36a1('0x1a')]);_0x507ae4[_0x36a1('0x18')]=qs[_0x36a1('0x18')](_0x526131[_0x36a1('0x30')][_0x36a1('0x18')]);}_0x507ae4['order']=qs[_0x36a1('0x35')](_0x526131[_0x36a1('0x30')][_0x36a1('0x35')]);_0x507ae4['where']=qs[_0x36a1('0x36')](_[_0x36a1('0x37')](_0x526131[_0x36a1('0x30')],_0x495d7f['filters']),_0x205712);if(_0x526131[_0x36a1('0x30')]['filter']){_0x507ae4[_0x36a1('0x38')]=_[_0x36a1('0x39')](_0x507ae4['where'],{'$or':_['map'](_0x205712,function(_0x5e1be2){if(_0x5e1be2[_0x36a1('0x2e')]!==_0x36a1('0x3a')){var _0x58eebf={};_0x58eebf[_0x5e1be2[_0x36a1('0x27')]]={'$like':'%'+_0x526131[_0x36a1('0x30')][_0x36a1('0x3b')]+'%'};return _0x58eebf;}})});}_0x507ae4=_[_0x36a1('0x39')]({},_0x507ae4,_0x526131[_0x36a1('0x3c')]);var _0x267454={'where':_0x507ae4['where']};return db[_0x36a1('0x2b')]['count'](_0x267454)[_0x36a1('0x22')](function(_0x27876a){_0x4a83a7[_0x36a1('0x1b')]=_0x27876a;if(_0x526131[_0x36a1('0x30')]['includeAll']){_0x507ae4[_0x36a1('0x3d')]=[{'all':!![]}];}return db['AnalyticCustomReport']['findAll'](_0x507ae4);})[_0x36a1('0x22')](function(_0xdc62f6){_0x4a83a7[_0x36a1('0x3e')]=_0xdc62f6;return _0x4a83a7;})[_0x36a1('0x22')](respondWithFilteredResult(_0x30a389,_0x507ae4))[_0x36a1('0x3f')](handleError(_0x30a389,null));};exports[_0x36a1('0x40')]=function(_0x36f763,_0x501244){var _0x3cbe1b={'raw':![],'where':{'id':_0x36f763[_0x36a1('0x41')]['id']}},_0x2eca9e={};_0x2eca9e[_0x36a1('0x2f')]=_[_0x36a1('0x31')](db[_0x36a1('0x2b')]['rawAttributes']);_0x2eca9e['query']=_['keys'](_0x36f763['query']);_0x2eca9e[_0x36a1('0x36')]=_[_0x36a1('0x33')](_0x2eca9e[_0x36a1('0x2f')],_0x2eca9e['query']);_0x3cbe1b[_0x36a1('0x32')]=_['intersection'](_0x2eca9e['model'],qs[_0x36a1('0x34')](_0x36f763['query'][_0x36a1('0x34')]));_0x3cbe1b['attributes']=_0x3cbe1b['attributes']['length']?_0x3cbe1b[_0x36a1('0x32')]:_0x2eca9e[_0x36a1('0x2f')];if(_0x36f763[_0x36a1('0x30')][_0x36a1('0x42')]){_0x3cbe1b[_0x36a1('0x3d')]=[{'all':!![]}];}_0x3cbe1b=_['merge']({},_0x3cbe1b,_0x36f763[_0x36a1('0x3c')]);return db[_0x36a1('0x2b')][_0x36a1('0x43')](_0x3cbe1b)[_0x36a1('0x22')](handleEntityNotFound(_0x501244,null))[_0x36a1('0x22')](respondWithResult(_0x501244,null))[_0x36a1('0x3f')](handleError(_0x501244,null));};exports[_0x36a1('0x44')]=function(_0x5b6163,_0x1b6a2f){return db[_0x36a1('0x2b')][_0x36a1('0x44')](_0x5b6163[_0x36a1('0x45')],{})[_0x36a1('0x22')](function(_0x2bf459){var _0x1084eb=_0x5b6163[_0x36a1('0x46')][_0x36a1('0x47')]({'plain':!![]});if(!_0x1084eb)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x1084eb[_0x36a1('0x48')]==='user'){var _0x18c7d7=_0x2bf459['get']({'plain':!![]});var _0x4a0a99='Reports';return db[_0x36a1('0x49')][_0x36a1('0x43')]({'where':{'name':_0x4a0a99,'userProfileId':_0x1084eb['userProfileId']},'raw':!![]})[_0x36a1('0x22')](function(_0x4ef4c5){if(_0x4ef4c5&&_0x4ef4c5[_0x36a1('0x4a')]===0x0){return db[_0x36a1('0x4b')][_0x36a1('0x44')]({'name':_0x18c7d7[_0x36a1('0x27')],'resourceId':_0x18c7d7['id'],'type':_0x36a1('0x23'),'sectionId':_0x4ef4c5['id']},{})[_0x36a1('0x22')](function(){return _0x2bf459;});}else{return _0x2bf459;}})[_0x36a1('0x3f')](function(_0x4e41b5){logger[_0x36a1('0x25')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x4e41b5);throw _0x4e41b5;});}return _0x2bf459;})[_0x36a1('0x22')](respondWithResult(_0x1b6a2f,0xc9))[_0x36a1('0x3f')](handleError(_0x1b6a2f,null));};exports[_0x36a1('0x21')]=function(_0x269644,_0x173330){if(_0x269644[_0x36a1('0x45')]['id']){delete _0x269644[_0x36a1('0x45')]['id'];}return db[_0x36a1('0x2b')][_0x36a1('0x43')]({'where':{'id':_0x269644[_0x36a1('0x41')]['id']}})[_0x36a1('0x22')](handleEntityNotFound(_0x173330,null))['then'](saveUpdates(_0x269644[_0x36a1('0x45')],null))[_0x36a1('0x22')](respondWithResult(_0x173330,null))['catch'](handleError(_0x173330,null));};exports['destroy']=function(_0x56c739,_0xcd6c9b){return db[_0x36a1('0x2b')]['find']({'where':{'id':_0x56c739[_0x36a1('0x41')]['id']}})[_0x36a1('0x22')](handleEntityNotFound(_0xcd6c9b,null))[_0x36a1('0x22')](removeEntity(_0xcd6c9b,null))[_0x36a1('0x3f')](handleError(_0xcd6c9b,null));};exports[_0x36a1('0x4c')]=function(_0x3de41a,_0x559495){var _0x5908af=0xa;var _0x1a5a7a=['join','left_join',_0x36a1('0x4d'),_0x36a1('0x4e')];var _0x16bc20={'SUM':_0x36a1('0x4f'),'COUNT':_0x36a1('0x50'),'COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':_0x36a1('0x51'),'MIN':'MIN(%s)','AVG':'AVG(%s)','GROUP_CONCAT':_0x36a1('0x52'),'GROUP_CONCAT ASC':_0x36a1('0x53'),'GROUP_CONCAT DESC':_0x36a1('0x54')};var _0x438251={'SEC_TO_TIME':_0x36a1('0x55'),'DATE':_0x36a1('0x56'),'HOUR':_0x36a1('0x57'),'ROUND':_0x36a1('0x58'),'UNIX_TIMESTAMP':_0x36a1('0x59')};var _0x587b46=function(_0x3ca1b7){return!_['includes']([_0x36a1('0x5a'),_0x36a1('0x5b'),_0x36a1('0x5c'),_0x36a1('0x5d')],_0x3ca1b7);};var _0x4d287f=function(_0x43ae40){if(!_0x43ae40||!_0x43ae40['rules'][_0x36a1('0x5e')]){return'';}for(var _0x4cdb0c='(',_0x5da59d=0x0;_0x5da59d<_0x43ae40[_0x36a1('0x5f')][_0x36a1('0x5e')];_0x5da59d+=0x1){_0x5da59d>0x0&&(_0x4cdb0c+='\x20'+_0x43ae40[_0x36a1('0x60')]+'\x20');_0x4cdb0c+=_0x43ae40[_0x36a1('0x5f')][_0x5da59d][_0x36a1('0x61')]?_0x4d287f(_0x43ae40['rules'][_0x5da59d][_0x36a1('0x61')]):_0x43ae40[_0x36a1('0x5f')][_0x5da59d][_0x36a1('0x62')]+'\x20'+_0x43ae40['rules'][_0x5da59d][_0x36a1('0x63')]+(_0x587b46(_0x43ae40[_0x36a1('0x5f')][_0x5da59d][_0x36a1('0x63')])?'\x20'+_0x43ae40[_0x36a1('0x5f')][_0x5da59d]['value']:'');}return _0x4cdb0c+')';};var _0x6ac7f0={'where':{'id':_0x3de41a[_0x36a1('0x41')]['id']}},_0x5c75ce,_0x52d9ae,_0x3008c1,_0x328ca2,_0x2fd427;_0x6ac7f0=_[_0x36a1('0x39')]({},_0x6ac7f0,_0x3de41a['options']);return db[_0x36a1('0x2b')][_0x36a1('0x43')](_0x6ac7f0)[_0x36a1('0x22')](function(_0x4d888c){if(_0x4d888c){_0x5c75ce=_0x4d888c;return _0x4d888c[_0x36a1('0x64')]();}return null;})[_0x36a1('0x22')](function(_0x3ae349){if(_0x3ae349){if(!_0x3ae349[_0x36a1('0x5e')]){throw new db[(_0x36a1('0x65'))][(_0x36a1('0x66'))](_0x36a1('0x67'),0x193);}_0x52d9ae=_0x3ae349;return db[_0x36a1('0x68')][_0x36a1('0x69')]({'raw':!![]});}return null;})[_0x36a1('0x22')](function(_0x58cc66){if(_0x58cc66){_0x3008c1=_[_0x36a1('0x6a')](_0x58cc66,'id');var _0xf91bf2;var _0xd4309b=squel[_0x36a1('0x6b')]();_0xd4309b[_0x36a1('0x6c')](_0x5c75ce['table']);for(var _0x211de7=0x0;_0x211de7<_0x52d9ae[_0x36a1('0x5e')];_0x211de7+=0x1){_0xf91bf2=_0x52d9ae[_0x211de7][_0x36a1('0x6d')]?_0x3008c1[_0x52d9ae[_0x211de7]['MetricId']][_0x36a1('0x6e')]:_0x52d9ae[_0x211de7][_0x36a1('0x62')];_0xf91bf2=_0x52d9ae[_0x211de7]['function']?_[_0x36a1('0x6f')](_0x16bc20[_0x52d9ae[_0x211de7][_0x36a1('0x70')]],'%s',_0xf91bf2):_0xf91bf2;_0xf91bf2=_0x52d9ae[_0x211de7]['format']?_[_0x36a1('0x6f')](_0x438251[_0x52d9ae[_0x211de7]['format']],'%s',_0xf91bf2):_0xf91bf2;if(_0x52d9ae[_0x211de7][_0x36a1('0x71')]){_0xd4309b['group'](_0xf91bf2);}_0x52d9ae[_0x211de7][_0x36a1('0x72')]&&_0xd4309b['order'](_0xf91bf2,_0x52d9ae[_0x211de7][_0x36a1('0x72')]==='DESC'?![]:!![]);_0xd4309b[_0x36a1('0x62')](_0xf91bf2,_0x52d9ae[_0x211de7][_0x36a1('0x73')]||_0xf91bf2);}if(_0x5c75ce[_0x36a1('0x74')]){_0x5c75ce['joins']=JSON[_0x36a1('0x75')](_0x5c75ce[_0x36a1('0x74')]);for(var _0x19cb6b=0x0;_0x19cb6b<_0x5c75ce[_0x36a1('0x74')]['length'];_0x19cb6b+=0x1){if(_0x5c75ce[_0x36a1('0x74')][_0x19cb6b][_0x36a1('0x2e')]&&_[_0x36a1('0x76')](_0x1a5a7a,_0x5c75ce[_0x36a1('0x74')][_0x19cb6b]['type'])&&_0x5c75ce[_0x36a1('0x74')][_0x19cb6b]['parentKey']&&_0x5c75ce[_0x36a1('0x74')][_0x19cb6b][_0x36a1('0x77')]&&_0x5c75ce['joins'][_0x19cb6b][_0x36a1('0x78')]){_0xd4309b[_0x5c75ce[_0x36a1('0x74')][_0x19cb6b][_0x36a1('0x2e')]](_0x5c75ce[_0x36a1('0x74')][_0x19cb6b]['foreignTable'],null,util[_0x36a1('0x79')](_0x36a1('0x7a'),_0x5c75ce[_0x36a1('0x7b')],_0x5c75ce[_0x36a1('0x74')][_0x19cb6b][_0x36a1('0x7c')],_0x5c75ce[_0x36a1('0x74')][_0x19cb6b]['foreignTable'],_0x5c75ce['joins'][_0x19cb6b][_0x36a1('0x78')]));}}}if(_0x5c75ce[_0x36a1('0x7d')]){_0x5c75ce[_0x36a1('0x7d')]=JSON['parse'](_0x5c75ce['conditions']);_0xd4309b[_0x36a1('0x38')](_0x4d287f(_0x5c75ce[_0x36a1('0x7d')][_0x36a1('0x61')]));}_0x2fd427=_0xd4309b['clone']();_0xd4309b[_0x36a1('0x1a')](_0x5908af);_0xd4309b[_0x36a1('0x18')](0x0);logger[_0x36a1('0x7e')]('Limited\x20Query:',_0xd4309b[_0x36a1('0x7f')]());return dbH[_0x36a1('0x80')]['query'](_0xd4309b['toString'](),{'type':dbH[_0x36a1('0x80')]['QueryTypes']['SELECT']});}})[_0x36a1('0x22')](respondWithResult(_0x559495,null))[_0x36a1('0x3f')](handleError(_0x559495,null));};function runReport(_0xcace51,_0x508389,_0x5f3017){var _0x55ea60=_0x508389[_0x36a1('0x27')];var _0x249205=0xa;var _0x4962e6=[_0x36a1('0x81'),_0x36a1('0x82'),_0x36a1('0x4d'),_0x36a1('0x4e')];var _0x575c15={'SUM':_0x36a1('0x4f'),'COUNT':_0x36a1('0x50'),'COUNT DISTINCT':_0x36a1('0x83'),'MAX':'MAX(%s)','MIN':_0x36a1('0x84'),'AVG':_0x36a1('0x85'),'GROUP_CONCAT':_0x36a1('0x52'),'GROUP_CONCAT ASC':_0x36a1('0x53'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x593455={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':'DATE(%s)','HOUR':'HOUR(%s)','ROUND':_0x36a1('0x58'),'UNIX_TIMESTAMP':_0x36a1('0x59')};var _0x521ebe=function(_0x177121){return!_[_0x36a1('0x76')]([_0x36a1('0x5a'),_0x36a1('0x5b'),'IS\x20EMPTY',_0x36a1('0x5d')],_0x177121);};var _0x32a541=function(_0x28451d){if(!_0x28451d||!_0x28451d[_0x36a1('0x5f')][_0x36a1('0x5e')]){return'';}for(var _0x50962a='(',_0x470592=0x0;_0x470592<_0x28451d[_0x36a1('0x5f')][_0x36a1('0x5e')];_0x470592+=0x1){_0x470592>0x0&&(_0x50962a+='\x20'+_0x28451d['operator']+'\x20');_0x50962a+=_0x28451d['rules'][_0x470592][_0x36a1('0x61')]?_0x32a541(_0x28451d[_0x36a1('0x5f')][_0x470592][_0x36a1('0x61')]):_0x28451d[_0x36a1('0x5f')][_0x470592][_0x36a1('0x62')]+'\x20'+_0x28451d['rules'][_0x470592][_0x36a1('0x63')]+(_0x521ebe(_0x28451d[_0x36a1('0x5f')][_0x470592][_0x36a1('0x63')])?'\x20'+_0x28451d[_0x36a1('0x5f')][_0x470592][_0x36a1('0x86')]:'');}return _0x50962a+')';};var _0xe22113={'where':{'id':_0xcace51['id']}},_0x486b2c,_0x11cc15,_0x634347,_0x42801d,_0x4d4e19;_0xe22113=_[_0x36a1('0x39')]({},_0xe22113,_0x5f3017);return db[_0x36a1('0x2b')][_0x36a1('0x43')](_0xe22113)[_0x36a1('0x22')](function(_0xcaf1c5){if(_0xcaf1c5){_0x486b2c=_0xcaf1c5;return _0xcaf1c5[_0x36a1('0x64')]();}return null;})['then'](function(_0x2927c7){if(_0x2927c7){if(!_0x2927c7[_0x36a1('0x5e')]){throw new db[(_0x36a1('0x65'))][(_0x36a1('0x66'))]('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x11cc15=_0x2927c7;return db[_0x36a1('0x68')][_0x36a1('0x69')]({'raw':!![]});}return null;})[_0x36a1('0x22')](function(_0x1a9798){if(_0x1a9798){_0x634347=_[_0x36a1('0x6a')](_0x1a9798,'id');var _0x51b89d;var _0xc27c61=squel[_0x36a1('0x6b')]();_0xc27c61[_0x36a1('0x6c')](_0x486b2c['table']);for(var _0x5a8615=0x0;_0x5a8615<_0x11cc15['length'];_0x5a8615+=0x1){_0x51b89d=_0x11cc15[_0x5a8615]['MetricId']?_0x634347[_0x11cc15[_0x5a8615][_0x36a1('0x6d')]][_0x36a1('0x6e')]:_0x11cc15[_0x5a8615][_0x36a1('0x62')];_0x51b89d=_0x11cc15[_0x5a8615][_0x36a1('0x70')]?_[_0x36a1('0x6f')](_0x575c15[_0x11cc15[_0x5a8615]['function']],'%s',_0x51b89d):_0x51b89d;_0x51b89d=_0x11cc15[_0x5a8615]['format']?_['replace'](_0x593455[_0x11cc15[_0x5a8615][_0x36a1('0x79')]],'%s',_0x51b89d):_0x51b89d;if(_0x11cc15[_0x5a8615][_0x36a1('0x71')]){_0xc27c61[_0x36a1('0x61')](_0x51b89d);}_0x11cc15[_0x5a8615]['orderBy']&&_0xc27c61[_0x36a1('0x87')](_0x51b89d,_0x11cc15[_0x5a8615][_0x36a1('0x72')]===_0x36a1('0x88')?![]:!![]);_0xc27c61['field'](_0x51b89d,_0x11cc15[_0x5a8615][_0x36a1('0x73')]||_0x51b89d);}if(_0x486b2c[_0x36a1('0x74')]){_0x486b2c[_0x36a1('0x74')]=JSON[_0x36a1('0x75')](_0x486b2c[_0x36a1('0x74')]);for(var _0x3f614a=0x0;_0x3f614a<_0x486b2c[_0x36a1('0x74')][_0x36a1('0x5e')];_0x3f614a+=0x1){if(_0x486b2c[_0x36a1('0x74')][_0x3f614a][_0x36a1('0x2e')]&&_[_0x36a1('0x76')](_0x4962e6,_0x486b2c[_0x36a1('0x74')][_0x3f614a][_0x36a1('0x2e')])&&_0x486b2c[_0x36a1('0x74')][_0x3f614a][_0x36a1('0x7c')]&&_0x486b2c[_0x36a1('0x74')][_0x3f614a][_0x36a1('0x77')]&&_0x486b2c['joins'][_0x3f614a][_0x36a1('0x78')]){_0xc27c61[_0x486b2c[_0x36a1('0x74')][_0x3f614a][_0x36a1('0x2e')]](_0x486b2c[_0x36a1('0x74')][_0x3f614a][_0x36a1('0x77')],null,util['format'](_0x36a1('0x7a'),_0x486b2c['table'],_0x486b2c['joins'][_0x3f614a][_0x36a1('0x7c')],_0x486b2c['joins'][_0x3f614a][_0x36a1('0x77')],_0x486b2c[_0x36a1('0x74')][_0x3f614a][_0x36a1('0x78')]));}}}if(_0x486b2c[_0x36a1('0x7d')]){_0x486b2c[_0x36a1('0x7d')]=JSON[_0x36a1('0x75')](_0x486b2c[_0x36a1('0x7d')]);_0xc27c61[_0x36a1('0x38')](_0x32a541(_0x486b2c['conditions'][_0x36a1('0x61')]));}_0x4d4e19=_0xc27c61[_0x36a1('0x89')]();_0xc27c61[_0x36a1('0x1a')](_0x249205);_0xc27c61[_0x36a1('0x18')](0x0);return;}})[_0x36a1('0x22')](function(){if(_0x508389[_0x36a1('0x8a')]===_0x36a1('0x8b')){return null;}var _0x41ac17=_['merge'](_0x508389,{'name':_0x508389[_0x36a1('0x8c')]||_0x508389[_0x36a1('0x27')]||_0x486b2c[_0x36a1('0x27')],'basename':_0x55ea60,'savename':util[_0x36a1('0x79')](_0x36a1('0x8d'),_0x508389['name']||_0x486b2c[_0x36a1('0x27')],require('randomstring')['generate'](0x4),_0x508389[_0x36a1('0x8a')]||_0x36a1('0x8e')),'reportId':_0x486b2c['id'],'reportType':'custom'});return db[_0x36a1('0x8f')][_0x36a1('0x44')](_0x41ac17,{'raw':!![]});})[_0x36a1('0x22')](function(_0x1a0f6b){if(_0x486b2c[_0x36a1('0x7b')]===_0x36a1('0x90')){_0x4d4e19[_0x36a1('0x38')](_0x486b2c['table']+_0x36a1('0x91'),_0x508389[_0x36a1('0x92')],_0x508389[_0x36a1('0x93')]);}else{_0x4d4e19[_0x36a1('0x38')](_0x486b2c[_0x36a1('0x7b')]+_0x36a1('0x94'),_0x508389[_0x36a1('0x92')],_0x508389[_0x36a1('0x93')]);}if(_0x1a0f6b){logger['info']('Run\x20Query:',_0x4d4e19[_0x36a1('0x7f')]());require('child_process')[_0x36a1('0x95')](path['join'](__dirname,_0x36a1('0x96'),_0x1a0f6b[_0x36a1('0x8a')]),[_0x1a0f6b['id'],_0x4d4e19['toString'](),path[_0x36a1('0x81')](__dirname,_0x36a1('0x97'),_0x1a0f6b[_0x36a1('0x98')]),_0x55ea60]);return _0x1a0f6b;}else{var _0x119afa=squel[_0x36a1('0x6b')]();_0x119afa[_0x36a1('0x6c')]('('+_0x4d4e19['toString']()+')',_0x36a1('0x99'));_0x119afa['field'](_0x36a1('0x9a'),_0x36a1('0x1b'));_0x4d4e19[_0x36a1('0x1a')](_0x508389[_0x36a1('0x1a')]||_0x249205);_0x4d4e19[_0x36a1('0x18')](_0x508389[_0x36a1('0x18')]||0x0);return dbH[_0x36a1('0x80')][_0x36a1('0x30')](_0x119afa[_0x36a1('0x7f')](),{'type':dbH['sequelize'][_0x36a1('0x9b')][_0x36a1('0x9c')]})[_0x36a1('0x22')](function(_0x3354b6){if(!_0x3354b6['length']){_0x42801d=0x0;}else{_0x42801d=_0x3354b6[0x0][_0x36a1('0x1b')]||0x0;}return dbH[_0x36a1('0x80')][_0x36a1('0x30')](_0x4d4e19[_0x36a1('0x7f')](),{'type':dbH[_0x36a1('0x80')][_0x36a1('0x9b')]['SELECT']});})[_0x36a1('0x22')](function(_0x4389ed){return{'rows':_0x4389ed||[],'count':_0x42801d};});}});}exports[_0x36a1('0x9d')]=function(_0xe159c,_0x15ba09){return runReport(_0xe159c[_0x36a1('0x41')],_0xe159c[_0x36a1('0x30')],_0xe159c[_0x36a1('0x3c')])[_0x36a1('0x22')](respondWithResult(_0x15ba09,null))['catch'](handleError(_0x15ba09,null));};exports['runReport']=runReport;exports['query']=function(_0x5c2378,_0x75663c){var _0x8d7f9b=0xa;var _0x4ca0ef=[_0x36a1('0x81'),_0x36a1('0x82'),_0x36a1('0x4d'),_0x36a1('0x4e')];var _0x136686={'SUM':_0x36a1('0x4f'),'COUNT':'COUNT(%s)','COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':'MAX(%s)','MIN':_0x36a1('0x84'),'AVG':_0x36a1('0x85'),'GROUP_CONCAT':_0x36a1('0x52'),'GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':_0x36a1('0x54')};var _0x34da42={'SEC_TO_TIME':_0x36a1('0x55'),'DATE':_0x36a1('0x56'),'HOUR':_0x36a1('0x57'),'ROUND':'ROUND(%s)','UNIX_TIMESTAMP':_0x36a1('0x59')};var _0x210ff3=function(_0x19c89c){return!_['includes']([_0x36a1('0x5a'),_0x36a1('0x5b'),_0x36a1('0x5c'),_0x36a1('0x5d')],_0x19c89c);};var _0x14bb27=function(_0x4804a2){if(!_0x4804a2||!_0x4804a2[_0x36a1('0x5f')]['length']){return'';}for(var _0x2e136e='(',_0x4a9499=0x0;_0x4a9499<_0x4804a2[_0x36a1('0x5f')][_0x36a1('0x5e')];_0x4a9499+=0x1){_0x4a9499>0x0&&(_0x2e136e+='\x20'+_0x4804a2[_0x36a1('0x60')]+'\x20');_0x2e136e+=_0x4804a2[_0x36a1('0x5f')][_0x4a9499]['group']?_0x14bb27(_0x4804a2[_0x36a1('0x5f')][_0x4a9499]['group']):_0x4804a2['rules'][_0x4a9499]['field']+'\x20'+_0x4804a2[_0x36a1('0x5f')][_0x4a9499][_0x36a1('0x63')]+(_0x210ff3(_0x4804a2[_0x36a1('0x5f')][_0x4a9499][_0x36a1('0x63')])?'\x20'+_0x4804a2[_0x36a1('0x5f')][_0x4a9499][_0x36a1('0x86')]:'');}return _0x2e136e+')';};var _0x27f965={'where':{'id':_0x5c2378[_0x36a1('0x41')]['id']}},_0x47e484,_0x528a9d,_0x5b456c,_0x42cc27,_0x7d75c6;_0x27f965=_['merge']({},_0x27f965,_0x5c2378['options']);return db[_0x36a1('0x2b')][_0x36a1('0x43')](_0x27f965)['then'](function(_0x19bea6){if(_0x19bea6){_0x47e484=_0x19bea6;return _0x19bea6[_0x36a1('0x64')]();}return null;})[_0x36a1('0x22')](function(_0x4438ef){if(_0x4438ef){if(!_0x4438ef[_0x36a1('0x5e')]){throw new db[(_0x36a1('0x65'))][(_0x36a1('0x66'))](_0x36a1('0x67'),0x193);}_0x528a9d=_0x4438ef;return db['AnalyticMetric'][_0x36a1('0x69')]({'raw':!![]});}return null;})[_0x36a1('0x22')](function(_0x2801dd){if(_0x2801dd){_0x5b456c=_[_0x36a1('0x6a')](_0x2801dd,'id');var _0x12518c;var _0x5dff3f=squel[_0x36a1('0x6b')]();_0x5dff3f[_0x36a1('0x6c')](_0x47e484[_0x36a1('0x7b')]);for(var _0x534074=0x0;_0x534074<_0x528a9d['length'];_0x534074+=0x1){_0x12518c=_0x528a9d[_0x534074][_0x36a1('0x6d')]?_0x5b456c[_0x528a9d[_0x534074][_0x36a1('0x6d')]]['metric']:_0x528a9d[_0x534074][_0x36a1('0x62')];_0x12518c=_0x528a9d[_0x534074]['function']?_[_0x36a1('0x6f')](_0x136686[_0x528a9d[_0x534074][_0x36a1('0x70')]],'%s',_0x12518c):_0x12518c;_0x12518c=_0x528a9d[_0x534074][_0x36a1('0x79')]?_[_0x36a1('0x6f')](_0x34da42[_0x528a9d[_0x534074]['format']],'%s',_0x12518c):_0x12518c;if(_0x528a9d[_0x534074][_0x36a1('0x71')]){_0x5dff3f['group'](_0x12518c);}_0x528a9d[_0x534074][_0x36a1('0x72')]&&_0x5dff3f[_0x36a1('0x87')](_0x12518c,_0x528a9d[_0x534074][_0x36a1('0x72')]===_0x36a1('0x88')?![]:!![]);_0x5dff3f[_0x36a1('0x62')](_0x12518c,_0x528a9d[_0x534074][_0x36a1('0x73')]||_0x12518c);}if(_0x47e484[_0x36a1('0x74')]){_0x47e484['joins']=JSON[_0x36a1('0x75')](_0x47e484[_0x36a1('0x74')]);for(var _0xade88e=0x0;_0xade88e<_0x47e484[_0x36a1('0x74')]['length'];_0xade88e+=0x1){if(_0x47e484[_0x36a1('0x74')][_0xade88e][_0x36a1('0x2e')]&&_[_0x36a1('0x76')](_0x4ca0ef,_0x47e484['joins'][_0xade88e]['type'])&&_0x47e484['joins'][_0xade88e][_0x36a1('0x7c')]&&_0x47e484[_0x36a1('0x74')][_0xade88e][_0x36a1('0x77')]&&_0x47e484[_0x36a1('0x74')][_0xade88e][_0x36a1('0x78')]){_0x5dff3f[_0x47e484[_0x36a1('0x74')][_0xade88e]['type']](_0x47e484['joins'][_0xade88e][_0x36a1('0x77')],null,util['format'](_0x36a1('0x7a'),_0x47e484[_0x36a1('0x7b')],_0x47e484[_0x36a1('0x74')][_0xade88e]['parentKey'],_0x47e484[_0x36a1('0x74')][_0xade88e][_0x36a1('0x77')],_0x47e484['joins'][_0xade88e][_0x36a1('0x78')]));}}}if(_0x47e484[_0x36a1('0x7d')]){_0x47e484['conditions']=JSON[_0x36a1('0x75')](_0x47e484['conditions']);_0x5dff3f[_0x36a1('0x38')](_0x14bb27(_0x47e484[_0x36a1('0x7d')][_0x36a1('0x61')]));}_0x7d75c6=_0x5dff3f[_0x36a1('0x89')]();_0x5dff3f[_0x36a1('0x1a')](_0x8d7f9b);_0x5dff3f[_0x36a1('0x18')](0x0);logger[_0x36a1('0x7e')](_0x36a1('0x9e'),_0x5dff3f[_0x36a1('0x7f')]());return dbH[_0x36a1('0x80')][_0x36a1('0x30')](_0x5dff3f['toString'](),{'type':dbH[_0x36a1('0x80')][_0x36a1('0x9b')][_0x36a1('0x9c')]});}})[_0x36a1('0x22')](function(){return{'sql':_0x7d75c6[_0x36a1('0x7f')]()};})['then'](respondWithResult(_0x75663c,null))['catch'](handleError(_0x75663c,null));};
\ No newline at end of file
+var _0xa5d9=['custom','AnalyticExtractedReport','.calldate\x20BETWEEN\x20?\x20AND\x20?','endDate','startDate','Run\x20Query:','child_process','../../components/export/','../../files/reports','savename','countTable','COUNT(*)','run','runReport','AVG(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','ROUND(%s)','AnalyticMetric','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','dbH','end','status','json','offset','undefined','limit','count','set','Content-Range','save','then','get','CustomReports','destroy','sendStatus','error','stack','name','send','index','AnalyticCustomReport','rawAttributes','fieldName','key','map','query','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','filter','type','VIRTUAL','merge','includeAll','include','rows','catch','keys','options','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','find','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','params','preview','join','left_join','right_join','cross_join','COUNT(%s)','COUNT(DISTINCT\x20%s)','MAX(%s)','GROUP_CONCAT(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','SEC_TO_TIME(%s)','DATE(%s)','HOUR(%s)','includes','IS\x20NULL','IS\x20NOT\x20NULL','IS\x20EMPTY','IS\x20NOT\x20EMPTY','rules','operator','group','field','condition','getFields','Sequelize','ValidationErrorItem','Please\x20insert\x20at\x20least\x20one\x20field','findAll','keyBy','select','table','MetricId','metric','function','format','replace','groupBy','orderBy','alias','joins','parentKey','foreignTable','foreignKey','%s.%s\x20=\x20%s.%s','conditions','parse','clone','debug','Limited\x20Query:','toString','sequelize','QueryTypes','SELECT','SUM(%s)','UNIX_TIMESTAMP(%s)','value','from','DESC','output','web','fullPath','%s-%s.%s','randomstring','generate','csv'];(function(_0x4b76cb,_0xba6fcc){var _0x4c23d3=function(_0x4d98ec){while(--_0x4d98ec){_0x4b76cb['push'](_0x4b76cb['shift']());}};_0x4c23d3(++_0xba6fcc);}(_0xa5d9,0xb8));var _0x9a5d=function(_0x35830,_0x178dc0){_0x35830=_0x35830-0x0;var _0x498b89=_0xa5d9[_0x35830];return _0x498b89;};'use strict';var emlformat=require(_0x9a5d('0x0'));var rimraf=require(_0x9a5d('0x1'));var zipdir=require(_0x9a5d('0x2'));var jsonpatch=require(_0x9a5d('0x3'));var rp=require(_0x9a5d('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x9a5d('0x5'));var path=require(_0x9a5d('0x6'));var sox=require('sox');var csv=require(_0x9a5d('0x7'));var ejs=require(_0x9a5d('0x8'));var fs=require('fs');var fs_extra=require(_0x9a5d('0x9'));var _=require(_0x9a5d('0xa'));var squel=require(_0x9a5d('0xb'));var crypto=require(_0x9a5d('0xc'));var jsforce=require(_0x9a5d('0xd'));var deskjs=require(_0x9a5d('0xe'));var toCsv=require(_0x9a5d('0x7'));var querystring=require(_0x9a5d('0xf'));var Papa=require(_0x9a5d('0x10'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x9a5d('0x11'));var hardwareService=require(_0x9a5d('0x12'));var logger=require(_0x9a5d('0x13'))(_0x9a5d('0x14'));var utils=require(_0x9a5d('0x15'));var config=require(_0x9a5d('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0x9a5d('0x17'))['db'];var dbH=require(_0x9a5d('0x17'))[_0x9a5d('0x18')];function respondWithStatusCode(_0x211125,_0x3753c1){_0x3753c1=_0x3753c1||0xcc;return function(_0x4befb3){if(_0x4befb3){return _0x211125['sendStatus'](_0x3753c1);}return _0x211125['status'](_0x3753c1)[_0x9a5d('0x19')]();};}function respondWithResult(_0x2b85b8,_0x2aead0){_0x2aead0=_0x2aead0||0xc8;return function(_0x197bfa){if(_0x197bfa){return _0x2b85b8[_0x9a5d('0x1a')](_0x2aead0)[_0x9a5d('0x1b')](_0x197bfa);}};}function respondWithFilteredResult(_0x477c75,_0x595bc3){return function(_0x25c6d7){if(_0x25c6d7){var _0x582288=typeof _0x595bc3[_0x9a5d('0x1c')]===_0x9a5d('0x1d')&&typeof _0x595bc3[_0x9a5d('0x1e')]===_0x9a5d('0x1d');var _0x48eea2=_0x25c6d7[_0x9a5d('0x1f')];var _0x5ce584=_0x582288?0x0:_0x595bc3[_0x9a5d('0x1c')];var _0x5ba92b=_0x582288?_0x25c6d7[_0x9a5d('0x1f')]:_0x595bc3[_0x9a5d('0x1c')]+_0x595bc3[_0x9a5d('0x1e')];var _0x3bbf49;if(_0x5ba92b>=_0x48eea2){_0x5ba92b=_0x48eea2;_0x3bbf49=0xc8;}else{_0x3bbf49=0xce;}_0x477c75[_0x9a5d('0x1a')](_0x3bbf49);return _0x477c75[_0x9a5d('0x20')](_0x9a5d('0x21'),_0x5ce584+'-'+_0x5ba92b+'/'+_0x48eea2)[_0x9a5d('0x1b')](_0x25c6d7);}return null;};}function patchUpdates(_0x21558c){return function(_0x57a28c){try{jsonpatch['apply'](_0x57a28c,_0x21558c,!![]);}catch(_0x75553f){return BPromise['reject'](_0x75553f);}return _0x57a28c[_0x9a5d('0x22')]();};}function saveUpdates(_0x47db71,_0xbb32c1){return function(_0x227d93){if(_0x227d93){return _0x227d93['update'](_0x47db71)['then'](function(_0x4899a9){return _0x4899a9;});}return null;};}function removeEntity(_0x148dc8,_0x26f821){return function(_0x46801d){if(_0x46801d){return _0x46801d['destroy']()[_0x9a5d('0x23')](function(){var _0x2cb129=_0x46801d[_0x9a5d('0x24')]({'plain':!![]});var _0x322927=_0x9a5d('0x25');return db['UserProfileResource'][_0x9a5d('0x26')]({'where':{'type':_0x322927,'resourceId':_0x2cb129['id']}})[_0x9a5d('0x23')](function(){return _0x46801d;});})[_0x9a5d('0x23')](function(){_0x148dc8[_0x9a5d('0x1a')](0xcc)[_0x9a5d('0x19')]();});}};}function handleEntityNotFound(_0x229610,_0x3016fc){return function(_0x11a6aa){if(!_0x11a6aa){_0x229610[_0x9a5d('0x27')](0x194);}return _0x11a6aa;};}function handleError(_0x2fd4f9,_0x1d3e53){_0x1d3e53=_0x1d3e53||0x1f4;return function(_0x2facc3){logger[_0x9a5d('0x28')](_0x2facc3[_0x9a5d('0x29')]);if(_0x2facc3[_0x9a5d('0x2a')]){delete _0x2facc3['name'];}_0x2fd4f9[_0x9a5d('0x1a')](_0x1d3e53)[_0x9a5d('0x2b')](_0x2facc3);};}exports[_0x9a5d('0x2c')]=function(_0xe2cdb1,_0x3b73fe){var _0x1efb00={},_0x3ce95e={},_0x25bd84={'count':0x0,'rows':[]};var _0x5cdfdf=_['map'](db[_0x9a5d('0x2d')][_0x9a5d('0x2e')],function(_0x3c6a10){return{'name':_0x3c6a10[_0x9a5d('0x2f')],'type':_0x3c6a10['type'][_0x9a5d('0x30')]};});_0x3ce95e['model']=_[_0x9a5d('0x31')](_0x5cdfdf,_0x9a5d('0x2a'));_0x3ce95e['query']=_['keys'](_0xe2cdb1[_0x9a5d('0x32')]);_0x3ce95e['filters']=_[_0x9a5d('0x33')](_0x3ce95e[_0x9a5d('0x34')],_0x3ce95e['query']);_0x1efb00[_0x9a5d('0x35')]=_['intersection'](_0x3ce95e[_0x9a5d('0x34')],qs[_0x9a5d('0x36')](_0xe2cdb1[_0x9a5d('0x32')]['fields']));_0x1efb00[_0x9a5d('0x35')]=_0x1efb00[_0x9a5d('0x35')][_0x9a5d('0x37')]?_0x1efb00['attributes']:_0x3ce95e[_0x9a5d('0x34')];if(!_0xe2cdb1[_0x9a5d('0x32')][_0x9a5d('0x38')](_0x9a5d('0x39'))){_0x1efb00[_0x9a5d('0x1e')]=qs[_0x9a5d('0x1e')](_0xe2cdb1[_0x9a5d('0x32')]['limit']);_0x1efb00['offset']=qs[_0x9a5d('0x1c')](_0xe2cdb1[_0x9a5d('0x32')][_0x9a5d('0x1c')]);}_0x1efb00[_0x9a5d('0x3a')]=qs[_0x9a5d('0x3b')](_0xe2cdb1['query'][_0x9a5d('0x3b')]);_0x1efb00[_0x9a5d('0x3c')]=qs['filters'](_['pick'](_0xe2cdb1[_0x9a5d('0x32')],_0x3ce95e[_0x9a5d('0x3d')]),_0x5cdfdf);if(_0xe2cdb1[_0x9a5d('0x32')][_0x9a5d('0x3e')]){_0x1efb00[_0x9a5d('0x3c')]=_['merge'](_0x1efb00[_0x9a5d('0x3c')],{'$or':_[_0x9a5d('0x31')](_0x5cdfdf,function(_0x36bb83){if(_0x36bb83[_0x9a5d('0x3f')]!==_0x9a5d('0x40')){var _0x5df98f={};_0x5df98f[_0x36bb83['name']]={'$like':'%'+_0xe2cdb1[_0x9a5d('0x32')]['filter']+'%'};return _0x5df98f;}})});}_0x1efb00=_[_0x9a5d('0x41')]({},_0x1efb00,_0xe2cdb1['options']);var _0x3c2f72={'where':_0x1efb00[_0x9a5d('0x3c')]};return db[_0x9a5d('0x2d')][_0x9a5d('0x1f')](_0x3c2f72)[_0x9a5d('0x23')](function(_0x1364ff){_0x25bd84[_0x9a5d('0x1f')]=_0x1364ff;if(_0xe2cdb1['query'][_0x9a5d('0x42')]){_0x1efb00[_0x9a5d('0x43')]=[{'all':!![]}];}return db[_0x9a5d('0x2d')]['findAll'](_0x1efb00);})[_0x9a5d('0x23')](function(_0x1d019b){_0x25bd84[_0x9a5d('0x44')]=_0x1d019b;return _0x25bd84;})[_0x9a5d('0x23')](respondWithFilteredResult(_0x3b73fe,_0x1efb00))[_0x9a5d('0x45')](handleError(_0x3b73fe,null));};exports['show']=function(_0x5533d3,_0x59b18d){var _0x5317ab={'raw':![],'where':{'id':_0x5533d3['params']['id']}},_0x1a168d={};_0x1a168d[_0x9a5d('0x34')]=_[_0x9a5d('0x46')](db[_0x9a5d('0x2d')]['rawAttributes']);_0x1a168d['query']=_['keys'](_0x5533d3[_0x9a5d('0x32')]);_0x1a168d[_0x9a5d('0x3d')]=_[_0x9a5d('0x33')](_0x1a168d[_0x9a5d('0x34')],_0x1a168d[_0x9a5d('0x32')]);_0x5317ab[_0x9a5d('0x35')]=_[_0x9a5d('0x33')](_0x1a168d['model'],qs[_0x9a5d('0x36')](_0x5533d3[_0x9a5d('0x32')][_0x9a5d('0x36')]));_0x5317ab[_0x9a5d('0x35')]=_0x5317ab['attributes'][_0x9a5d('0x37')]?_0x5317ab['attributes']:_0x1a168d['model'];if(_0x5533d3[_0x9a5d('0x32')][_0x9a5d('0x42')]){_0x5317ab[_0x9a5d('0x43')]=[{'all':!![]}];}_0x5317ab=_[_0x9a5d('0x41')]({},_0x5317ab,_0x5533d3[_0x9a5d('0x47')]);return db['AnalyticCustomReport']['find'](_0x5317ab)[_0x9a5d('0x23')](handleEntityNotFound(_0x59b18d,null))['then'](respondWithResult(_0x59b18d,null))[_0x9a5d('0x45')](handleError(_0x59b18d,null));};exports[_0x9a5d('0x48')]=function(_0xd33582,_0x4c2167){return db[_0x9a5d('0x2d')]['create'](_0xd33582[_0x9a5d('0x49')],{})[_0x9a5d('0x23')](function(_0x44c146){var _0x4fd252=_0xd33582[_0x9a5d('0x4a')][_0x9a5d('0x24')]({'plain':!![]});if(!_0x4fd252)throw new Error(_0x9a5d('0x4b'));if(_0x4fd252[_0x9a5d('0x4c')]===_0x9a5d('0x4a')){var _0x486b45=_0x44c146[_0x9a5d('0x24')]({'plain':!![]});var _0x4e8a1c='Reports';return db['UserProfileSection'][_0x9a5d('0x4d')]({'where':{'name':_0x4e8a1c,'userProfileId':_0x4fd252[_0x9a5d('0x4e')]},'raw':!![]})['then'](function(_0x4c5ad4){if(_0x4c5ad4&&_0x4c5ad4[_0x9a5d('0x4f')]===0x0){return db['UserProfileResource'][_0x9a5d('0x48')]({'name':_0x486b45[_0x9a5d('0x2a')],'resourceId':_0x486b45['id'],'type':'CustomReports','sectionId':_0x4c5ad4['id']},{})['then'](function(){return _0x44c146;});}else{return _0x44c146;}})['catch'](function(_0x4f0315){logger[_0x9a5d('0x28')](_0x9a5d('0x50'),_0x4f0315);throw _0x4f0315;});}return _0x44c146;})[_0x9a5d('0x23')](respondWithResult(_0x4c2167,0xc9))[_0x9a5d('0x45')](handleError(_0x4c2167,null));};exports[_0x9a5d('0x51')]=function(_0x3d1666,_0x65a7b6){if(_0x3d1666[_0x9a5d('0x49')]['id']){delete _0x3d1666[_0x9a5d('0x49')]['id'];}return db[_0x9a5d('0x2d')][_0x9a5d('0x4d')]({'where':{'id':_0x3d1666[_0x9a5d('0x52')]['id']}})[_0x9a5d('0x23')](handleEntityNotFound(_0x65a7b6,null))[_0x9a5d('0x23')](saveUpdates(_0x3d1666[_0x9a5d('0x49')],null))[_0x9a5d('0x23')](respondWithResult(_0x65a7b6,null))[_0x9a5d('0x45')](handleError(_0x65a7b6,null));};exports[_0x9a5d('0x26')]=function(_0x1d99f6,_0x5b31e7){return db[_0x9a5d('0x2d')][_0x9a5d('0x4d')]({'where':{'id':_0x1d99f6[_0x9a5d('0x52')]['id']}})[_0x9a5d('0x23')](handleEntityNotFound(_0x5b31e7,null))[_0x9a5d('0x23')](removeEntity(_0x5b31e7,null))['catch'](handleError(_0x5b31e7,null));};exports[_0x9a5d('0x53')]=function(_0x414f13,_0x17ffe6){var _0x5704b5=0xa;var _0x136aa5=[_0x9a5d('0x54'),_0x9a5d('0x55'),_0x9a5d('0x56'),_0x9a5d('0x57')];var _0x224c21={'SUM':'SUM(%s)','COUNT':_0x9a5d('0x58'),'COUNT DISTINCT':_0x9a5d('0x59'),'MAX':_0x9a5d('0x5a'),'MIN':'MIN(%s)','AVG':'AVG(%s)','GROUP_CONCAT':_0x9a5d('0x5b'),'GROUP_CONCAT ASC':_0x9a5d('0x5c'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x2072be={'SEC_TO_TIME':_0x9a5d('0x5d'),'DATE':_0x9a5d('0x5e'),'HOUR':_0x9a5d('0x5f'),'ROUND':'ROUND(%s)','UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x325476=function(_0x465ed9){return!_[_0x9a5d('0x60')]([_0x9a5d('0x61'),_0x9a5d('0x62'),_0x9a5d('0x63'),_0x9a5d('0x64')],_0x465ed9);};var _0x3fbbd9=function(_0x59b489){if(!_0x59b489||!_0x59b489[_0x9a5d('0x65')][_0x9a5d('0x37')]){return'';}for(var _0x18e37f='(',_0x5219ed=0x0;_0x5219ed<_0x59b489['rules'][_0x9a5d('0x37')];_0x5219ed+=0x1){_0x5219ed>0x0&&(_0x18e37f+='\x20'+_0x59b489[_0x9a5d('0x66')]+'\x20');_0x18e37f+=_0x59b489['rules'][_0x5219ed][_0x9a5d('0x67')]?_0x3fbbd9(_0x59b489[_0x9a5d('0x65')][_0x5219ed][_0x9a5d('0x67')]):_0x59b489['rules'][_0x5219ed][_0x9a5d('0x68')]+'\x20'+_0x59b489[_0x9a5d('0x65')][_0x5219ed]['condition']+(_0x325476(_0x59b489['rules'][_0x5219ed][_0x9a5d('0x69')])?'\x20'+_0x59b489[_0x9a5d('0x65')][_0x5219ed]['value']:'');}return _0x18e37f+')';};var _0x22c005={'where':{'id':_0x414f13[_0x9a5d('0x52')]['id']}},_0x5794b1,_0x2eab28,_0x57bdcc,_0x352bca,_0xb7fa62;_0x22c005=_[_0x9a5d('0x41')]({},_0x22c005,_0x414f13[_0x9a5d('0x47')]);return db[_0x9a5d('0x2d')]['find'](_0x22c005)[_0x9a5d('0x23')](function(_0x4771a5){if(_0x4771a5){_0x5794b1=_0x4771a5;return _0x4771a5[_0x9a5d('0x6a')]();}return null;})['then'](function(_0x4ece18){if(_0x4ece18){if(!_0x4ece18['length']){throw new db[(_0x9a5d('0x6b'))][(_0x9a5d('0x6c'))](_0x9a5d('0x6d'),0x193);}_0x2eab28=_0x4ece18;return db['AnalyticMetric'][_0x9a5d('0x6e')]({'raw':!![]});}return null;})['then'](function(_0x145138){if(_0x145138){_0x57bdcc=_[_0x9a5d('0x6f')](_0x145138,'id');var _0x506024;var _0x1dbe9c=squel[_0x9a5d('0x70')]();_0x1dbe9c['from'](_0x5794b1[_0x9a5d('0x71')]);for(var _0x13c173=0x0;_0x13c173<_0x2eab28[_0x9a5d('0x37')];_0x13c173+=0x1){_0x506024=_0x2eab28[_0x13c173][_0x9a5d('0x72')]?_0x57bdcc[_0x2eab28[_0x13c173][_0x9a5d('0x72')]][_0x9a5d('0x73')]:_0x2eab28[_0x13c173][_0x9a5d('0x68')];_0x506024=_0x2eab28[_0x13c173][_0x9a5d('0x74')]?_['replace'](_0x224c21[_0x2eab28[_0x13c173]['function']],'%s',_0x506024):_0x506024;_0x506024=_0x2eab28[_0x13c173][_0x9a5d('0x75')]?_[_0x9a5d('0x76')](_0x2072be[_0x2eab28[_0x13c173]['format']],'%s',_0x506024):_0x506024;if(_0x2eab28[_0x13c173][_0x9a5d('0x77')]){_0x1dbe9c[_0x9a5d('0x67')](_0x506024);}_0x2eab28[_0x13c173][_0x9a5d('0x78')]&&_0x1dbe9c['order'](_0x506024,_0x2eab28[_0x13c173][_0x9a5d('0x78')]==='DESC'?![]:!![]);_0x1dbe9c[_0x9a5d('0x68')](_0x506024,_0x2eab28[_0x13c173][_0x9a5d('0x79')]||_0x506024);}if(_0x5794b1[_0x9a5d('0x7a')]){_0x5794b1[_0x9a5d('0x7a')]=JSON['parse'](_0x5794b1[_0x9a5d('0x7a')]);for(var _0x547bdc=0x0;_0x547bdc<_0x5794b1[_0x9a5d('0x7a')][_0x9a5d('0x37')];_0x547bdc+=0x1){if(_0x5794b1[_0x9a5d('0x7a')][_0x547bdc][_0x9a5d('0x3f')]&&_['includes'](_0x136aa5,_0x5794b1[_0x9a5d('0x7a')][_0x547bdc][_0x9a5d('0x3f')])&&_0x5794b1[_0x9a5d('0x7a')][_0x547bdc][_0x9a5d('0x7b')]&&_0x5794b1['joins'][_0x547bdc][_0x9a5d('0x7c')]&&_0x5794b1[_0x9a5d('0x7a')][_0x547bdc][_0x9a5d('0x7d')]){_0x1dbe9c[_0x5794b1[_0x9a5d('0x7a')][_0x547bdc][_0x9a5d('0x3f')]](_0x5794b1['joins'][_0x547bdc][_0x9a5d('0x7c')],null,util['format'](_0x9a5d('0x7e'),_0x5794b1[_0x9a5d('0x71')],_0x5794b1[_0x9a5d('0x7a')][_0x547bdc][_0x9a5d('0x7b')],_0x5794b1[_0x9a5d('0x7a')][_0x547bdc][_0x9a5d('0x7c')],_0x5794b1['joins'][_0x547bdc]['foreignKey']));}}}if(_0x5794b1[_0x9a5d('0x7f')]){_0x5794b1[_0x9a5d('0x7f')]=JSON[_0x9a5d('0x80')](_0x5794b1[_0x9a5d('0x7f')]);_0x1dbe9c[_0x9a5d('0x3c')](_0x3fbbd9(_0x5794b1['conditions']['group']));}_0xb7fa62=_0x1dbe9c[_0x9a5d('0x81')]();_0x1dbe9c['limit'](_0x5704b5);_0x1dbe9c['offset'](0x0);logger[_0x9a5d('0x82')](_0x9a5d('0x83'),_0x1dbe9c[_0x9a5d('0x84')]());return dbH[_0x9a5d('0x85')][_0x9a5d('0x32')](_0x1dbe9c[_0x9a5d('0x84')](),{'type':dbH[_0x9a5d('0x85')][_0x9a5d('0x86')][_0x9a5d('0x87')]});}})[_0x9a5d('0x23')](respondWithResult(_0x17ffe6,null))[_0x9a5d('0x45')](handleError(_0x17ffe6,null));};function runReport(_0x41ef91,_0x2f8a34,_0x33e4aa){var _0x4a9e0b=_0x2f8a34['name'];var _0x23a818=0xa;var _0x1712e8=[_0x9a5d('0x54'),_0x9a5d('0x55'),_0x9a5d('0x56'),_0x9a5d('0x57')];var _0x40e5e4={'SUM':_0x9a5d('0x88'),'COUNT':_0x9a5d('0x58'),'COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':'MAX(%s)','MIN':'MIN(%s)','AVG':'AVG(%s)','GROUP_CONCAT':_0x9a5d('0x5b'),'GROUP_CONCAT ASC':_0x9a5d('0x5c'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x4c25fe={'SEC_TO_TIME':_0x9a5d('0x5d'),'DATE':_0x9a5d('0x5e'),'HOUR':_0x9a5d('0x5f'),'ROUND':'ROUND(%s)','UNIX_TIMESTAMP':_0x9a5d('0x89')};var _0x475f31=function(_0x5f5be6){return!_['includes']([_0x9a5d('0x61'),_0x9a5d('0x62'),_0x9a5d('0x63'),_0x9a5d('0x64')],_0x5f5be6);};var _0x5c0f3f=function(_0x3da839){if(!_0x3da839||!_0x3da839[_0x9a5d('0x65')][_0x9a5d('0x37')]){return'';}for(var _0x57f772='(',_0x48cd8e=0x0;_0x48cd8e<_0x3da839[_0x9a5d('0x65')][_0x9a5d('0x37')];_0x48cd8e+=0x1){_0x48cd8e>0x0&&(_0x57f772+='\x20'+_0x3da839[_0x9a5d('0x66')]+'\x20');_0x57f772+=_0x3da839[_0x9a5d('0x65')][_0x48cd8e]['group']?_0x5c0f3f(_0x3da839[_0x9a5d('0x65')][_0x48cd8e][_0x9a5d('0x67')]):_0x3da839['rules'][_0x48cd8e][_0x9a5d('0x68')]+'\x20'+_0x3da839[_0x9a5d('0x65')][_0x48cd8e][_0x9a5d('0x69')]+(_0x475f31(_0x3da839[_0x9a5d('0x65')][_0x48cd8e][_0x9a5d('0x69')])?'\x20'+_0x3da839[_0x9a5d('0x65')][_0x48cd8e][_0x9a5d('0x8a')]:'');}return _0x57f772+')';};var _0x5a44d6={'where':{'id':_0x41ef91['id']}},_0x3b3843,_0x3fab46,_0x346c75,_0x2b601c,_0x175ff1;_0x5a44d6=_[_0x9a5d('0x41')]({},_0x5a44d6,_0x33e4aa);return db['AnalyticCustomReport']['find'](_0x5a44d6)[_0x9a5d('0x23')](function(_0x1f46ff){if(_0x1f46ff){_0x3b3843=_0x1f46ff;return _0x1f46ff[_0x9a5d('0x6a')]();}return null;})[_0x9a5d('0x23')](function(_0xe16d7e){if(_0xe16d7e){if(!_0xe16d7e[_0x9a5d('0x37')]){throw new db['Sequelize']['ValidationErrorItem'](_0x9a5d('0x6d'),0x193);}_0x3fab46=_0xe16d7e;return db['AnalyticMetric'][_0x9a5d('0x6e')]({'raw':!![]});}return null;})[_0x9a5d('0x23')](function(_0x32a023){if(_0x32a023){_0x346c75=_[_0x9a5d('0x6f')](_0x32a023,'id');var _0x2d9da7;var _0x5103e1=squel[_0x9a5d('0x70')]();_0x5103e1[_0x9a5d('0x8b')](_0x3b3843['table']);for(var _0x1d5476=0x0;_0x1d5476<_0x3fab46[_0x9a5d('0x37')];_0x1d5476+=0x1){_0x2d9da7=_0x3fab46[_0x1d5476][_0x9a5d('0x72')]?_0x346c75[_0x3fab46[_0x1d5476][_0x9a5d('0x72')]][_0x9a5d('0x73')]:_0x3fab46[_0x1d5476][_0x9a5d('0x68')];_0x2d9da7=_0x3fab46[_0x1d5476]['function']?_[_0x9a5d('0x76')](_0x40e5e4[_0x3fab46[_0x1d5476]['function']],'%s',_0x2d9da7):_0x2d9da7;_0x2d9da7=_0x3fab46[_0x1d5476][_0x9a5d('0x75')]?_['replace'](_0x4c25fe[_0x3fab46[_0x1d5476][_0x9a5d('0x75')]],'%s',_0x2d9da7):_0x2d9da7;if(_0x3fab46[_0x1d5476][_0x9a5d('0x77')]){_0x5103e1[_0x9a5d('0x67')](_0x2d9da7);}_0x3fab46[_0x1d5476][_0x9a5d('0x78')]&&_0x5103e1[_0x9a5d('0x3a')](_0x2d9da7,_0x3fab46[_0x1d5476]['orderBy']===_0x9a5d('0x8c')?![]:!![]);_0x5103e1[_0x9a5d('0x68')](_0x2d9da7,_0x3fab46[_0x1d5476][_0x9a5d('0x79')]||_0x2d9da7);}if(_0x3b3843[_0x9a5d('0x7a')]){_0x3b3843['joins']=JSON['parse'](_0x3b3843[_0x9a5d('0x7a')]);for(var _0x5a9de6=0x0;_0x5a9de6<_0x3b3843['joins'][_0x9a5d('0x37')];_0x5a9de6+=0x1){if(_0x3b3843[_0x9a5d('0x7a')][_0x5a9de6][_0x9a5d('0x3f')]&&_['includes'](_0x1712e8,_0x3b3843[_0x9a5d('0x7a')][_0x5a9de6][_0x9a5d('0x3f')])&&_0x3b3843[_0x9a5d('0x7a')][_0x5a9de6]['parentKey']&&_0x3b3843[_0x9a5d('0x7a')][_0x5a9de6][_0x9a5d('0x7c')]&&_0x3b3843[_0x9a5d('0x7a')][_0x5a9de6]['foreignKey']){_0x5103e1[_0x3b3843[_0x9a5d('0x7a')][_0x5a9de6][_0x9a5d('0x3f')]](_0x3b3843['joins'][_0x5a9de6][_0x9a5d('0x7c')],null,util[_0x9a5d('0x75')]('%s.%s\x20=\x20%s.%s',_0x3b3843[_0x9a5d('0x71')],_0x3b3843[_0x9a5d('0x7a')][_0x5a9de6]['parentKey'],_0x3b3843['joins'][_0x5a9de6][_0x9a5d('0x7c')],_0x3b3843[_0x9a5d('0x7a')][_0x5a9de6][_0x9a5d('0x7d')]));}}}if(_0x3b3843['conditions']){_0x3b3843['conditions']=JSON[_0x9a5d('0x80')](_0x3b3843[_0x9a5d('0x7f')]);_0x5103e1[_0x9a5d('0x3c')](_0x5c0f3f(_0x3b3843[_0x9a5d('0x7f')][_0x9a5d('0x67')]));}_0x175ff1=_0x5103e1[_0x9a5d('0x81')]();_0x5103e1[_0x9a5d('0x1e')](_0x23a818);_0x5103e1['offset'](0x0);return;}})[_0x9a5d('0x23')](function(){if(_0x2f8a34[_0x9a5d('0x8d')]===_0x9a5d('0x8e')){return null;}var _0xfa67=_[_0x9a5d('0x41')](_0x2f8a34,{'name':_0x2f8a34[_0x9a5d('0x8f')]||_0x2f8a34[_0x9a5d('0x2a')]||_0x3b3843[_0x9a5d('0x2a')],'basename':_0x4a9e0b,'savename':util[_0x9a5d('0x75')](_0x9a5d('0x90'),_0x2f8a34['name']||_0x3b3843['name'],require(_0x9a5d('0x91'))[_0x9a5d('0x92')](0x4),_0x2f8a34[_0x9a5d('0x8d')]||_0x9a5d('0x93')),'reportId':_0x3b3843['id'],'reportType':_0x9a5d('0x94')});return db[_0x9a5d('0x95')][_0x9a5d('0x48')](_0xfa67,{'raw':!![]});})['then'](function(_0xb7e5d3){if(_0x3b3843[_0x9a5d('0x71')]==='cdr'){_0x175ff1[_0x9a5d('0x3c')](_0x3b3843[_0x9a5d('0x71')]+_0x9a5d('0x96'),_0x2f8a34['startDate'],_0x2f8a34[_0x9a5d('0x97')]);}else{_0x175ff1[_0x9a5d('0x3c')](_0x3b3843['table']+'.createdAt\x20BETWEEN\x20?\x20AND\x20?',_0x2f8a34[_0x9a5d('0x98')],_0x2f8a34[_0x9a5d('0x97')]);}if(_0xb7e5d3){logger['info'](_0x9a5d('0x99'),_0x175ff1[_0x9a5d('0x84')]());require(_0x9a5d('0x9a'))['fork'](path[_0x9a5d('0x54')](__dirname,_0x9a5d('0x9b'),_0xb7e5d3[_0x9a5d('0x8d')]),[_0xb7e5d3['id'],_0x175ff1['toString'](),path[_0x9a5d('0x54')](__dirname,_0x9a5d('0x9c'),_0xb7e5d3[_0x9a5d('0x9d')]),_0x4a9e0b]);return _0xb7e5d3;}else{var _0x7a92a0=squel[_0x9a5d('0x70')]();_0x7a92a0[_0x9a5d('0x8b')]('('+_0x175ff1[_0x9a5d('0x84')]()+')',_0x9a5d('0x9e'));_0x7a92a0[_0x9a5d('0x68')](_0x9a5d('0x9f'),_0x9a5d('0x1f'));_0x175ff1[_0x9a5d('0x1e')](_0x2f8a34[_0x9a5d('0x1e')]||_0x23a818);_0x175ff1[_0x9a5d('0x1c')](_0x2f8a34['offset']||0x0);return dbH[_0x9a5d('0x85')][_0x9a5d('0x32')](_0x7a92a0[_0x9a5d('0x84')](),{'type':dbH[_0x9a5d('0x85')][_0x9a5d('0x86')]['SELECT']})['then'](function(_0x1d77a9){if(!_0x1d77a9[_0x9a5d('0x37')]){_0x2b601c=0x0;}else{_0x2b601c=_0x1d77a9[0x0]['count']||0x0;}return dbH[_0x9a5d('0x85')][_0x9a5d('0x32')](_0x175ff1[_0x9a5d('0x84')](),{'type':dbH['sequelize'][_0x9a5d('0x86')][_0x9a5d('0x87')]});})['then'](function(_0x44e60b){return{'rows':_0x44e60b||[],'count':_0x2b601c};});}});}exports[_0x9a5d('0xa0')]=function(_0xa9a451,_0x38ce4b){return runReport(_0xa9a451[_0x9a5d('0x52')],_0xa9a451['query'],_0xa9a451[_0x9a5d('0x47')])[_0x9a5d('0x23')](respondWithResult(_0x38ce4b,null))['catch'](handleError(_0x38ce4b,null));};exports[_0x9a5d('0xa1')]=runReport;exports[_0x9a5d('0x32')]=function(_0x3726e3,_0x2259b8){var _0x4f8f07=0xa;var _0x33617a=[_0x9a5d('0x54'),_0x9a5d('0x55'),_0x9a5d('0x56'),_0x9a5d('0x57')];var _0x5819ea={'SUM':_0x9a5d('0x88'),'COUNT':'COUNT(%s)','COUNT DISTINCT':_0x9a5d('0x59'),'MAX':_0x9a5d('0x5a'),'MIN':'MIN(%s)','AVG':_0x9a5d('0xa2'),'GROUP_CONCAT':_0x9a5d('0x5b'),'GROUP_CONCAT ASC':_0x9a5d('0x5c'),'GROUP_CONCAT DESC':_0x9a5d('0xa3')};var _0x162bd1={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':'DATE(%s)','HOUR':_0x9a5d('0x5f'),'ROUND':_0x9a5d('0xa4'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x4cc793=function(_0xf3819f){return!_['includes']([_0x9a5d('0x61'),'IS\x20NOT\x20NULL',_0x9a5d('0x63'),_0x9a5d('0x64')],_0xf3819f);};var _0x318ac0=function(_0x455f1b){if(!_0x455f1b||!_0x455f1b['rules']['length']){return'';}for(var _0x1eba28='(',_0x28f290=0x0;_0x28f290<_0x455f1b['rules'][_0x9a5d('0x37')];_0x28f290+=0x1){_0x28f290>0x0&&(_0x1eba28+='\x20'+_0x455f1b['operator']+'\x20');_0x1eba28+=_0x455f1b[_0x9a5d('0x65')][_0x28f290][_0x9a5d('0x67')]?_0x318ac0(_0x455f1b[_0x9a5d('0x65')][_0x28f290][_0x9a5d('0x67')]):_0x455f1b[_0x9a5d('0x65')][_0x28f290]['field']+'\x20'+_0x455f1b[_0x9a5d('0x65')][_0x28f290][_0x9a5d('0x69')]+(_0x4cc793(_0x455f1b[_0x9a5d('0x65')][_0x28f290][_0x9a5d('0x69')])?'\x20'+_0x455f1b[_0x9a5d('0x65')][_0x28f290]['value']:'');}return _0x1eba28+')';};var _0xd4375c={'where':{'id':_0x3726e3[_0x9a5d('0x52')]['id']}},_0x236e65,_0x3b33ed,_0x399d74,_0x55992f,_0x5b7da5;_0xd4375c=_[_0x9a5d('0x41')]({},_0xd4375c,_0x3726e3[_0x9a5d('0x47')]);return db[_0x9a5d('0x2d')]['find'](_0xd4375c)['then'](function(_0x3e4a74){if(_0x3e4a74){_0x236e65=_0x3e4a74;return _0x3e4a74['getFields']();}return null;})[_0x9a5d('0x23')](function(_0x25dbad){if(_0x25dbad){if(!_0x25dbad['length']){throw new db[(_0x9a5d('0x6b'))][(_0x9a5d('0x6c'))](_0x9a5d('0x6d'),0x193);}_0x3b33ed=_0x25dbad;return db[_0x9a5d('0xa5')][_0x9a5d('0x6e')]({'raw':!![]});}return null;})[_0x9a5d('0x23')](function(_0x2bbcdf){if(_0x2bbcdf){_0x399d74=_['keyBy'](_0x2bbcdf,'id');var _0x42a71b;var _0x2e8c4a=squel[_0x9a5d('0x70')]();_0x2e8c4a[_0x9a5d('0x8b')](_0x236e65[_0x9a5d('0x71')]);for(var _0x5d1f4e=0x0;_0x5d1f4e<_0x3b33ed[_0x9a5d('0x37')];_0x5d1f4e+=0x1){_0x42a71b=_0x3b33ed[_0x5d1f4e][_0x9a5d('0x72')]?_0x399d74[_0x3b33ed[_0x5d1f4e]['MetricId']][_0x9a5d('0x73')]:_0x3b33ed[_0x5d1f4e][_0x9a5d('0x68')];_0x42a71b=_0x3b33ed[_0x5d1f4e][_0x9a5d('0x74')]?_[_0x9a5d('0x76')](_0x5819ea[_0x3b33ed[_0x5d1f4e][_0x9a5d('0x74')]],'%s',_0x42a71b):_0x42a71b;_0x42a71b=_0x3b33ed[_0x5d1f4e][_0x9a5d('0x75')]?_[_0x9a5d('0x76')](_0x162bd1[_0x3b33ed[_0x5d1f4e][_0x9a5d('0x75')]],'%s',_0x42a71b):_0x42a71b;if(_0x3b33ed[_0x5d1f4e][_0x9a5d('0x77')]){_0x2e8c4a[_0x9a5d('0x67')](_0x42a71b);}_0x3b33ed[_0x5d1f4e][_0x9a5d('0x78')]&&_0x2e8c4a['order'](_0x42a71b,_0x3b33ed[_0x5d1f4e][_0x9a5d('0x78')]==='DESC'?![]:!![]);_0x2e8c4a[_0x9a5d('0x68')](_0x42a71b,_0x3b33ed[_0x5d1f4e][_0x9a5d('0x79')]||_0x42a71b);}if(_0x236e65[_0x9a5d('0x7a')]){_0x236e65[_0x9a5d('0x7a')]=JSON['parse'](_0x236e65[_0x9a5d('0x7a')]);for(var _0x493931=0x0;_0x493931<_0x236e65[_0x9a5d('0x7a')][_0x9a5d('0x37')];_0x493931+=0x1){if(_0x236e65['joins'][_0x493931][_0x9a5d('0x3f')]&&_['includes'](_0x33617a,_0x236e65['joins'][_0x493931]['type'])&&_0x236e65[_0x9a5d('0x7a')][_0x493931]['parentKey']&&_0x236e65[_0x9a5d('0x7a')][_0x493931][_0x9a5d('0x7c')]&&_0x236e65[_0x9a5d('0x7a')][_0x493931]['foreignKey']){_0x2e8c4a[_0x236e65[_0x9a5d('0x7a')][_0x493931]['type']](_0x236e65[_0x9a5d('0x7a')][_0x493931][_0x9a5d('0x7c')],null,util['format'](_0x9a5d('0x7e'),_0x236e65[_0x9a5d('0x71')],_0x236e65[_0x9a5d('0x7a')][_0x493931][_0x9a5d('0x7b')],_0x236e65[_0x9a5d('0x7a')][_0x493931][_0x9a5d('0x7c')],_0x236e65[_0x9a5d('0x7a')][_0x493931][_0x9a5d('0x7d')]));}}}if(_0x236e65[_0x9a5d('0x7f')]){_0x236e65['conditions']=JSON[_0x9a5d('0x80')](_0x236e65[_0x9a5d('0x7f')]);_0x2e8c4a[_0x9a5d('0x3c')](_0x318ac0(_0x236e65['conditions']['group']));}_0x5b7da5=_0x2e8c4a[_0x9a5d('0x81')]();_0x2e8c4a['limit'](_0x4f8f07);_0x2e8c4a['offset'](0x0);logger['debug'](_0x9a5d('0x83'),_0x2e8c4a[_0x9a5d('0x84')]());return dbH[_0x9a5d('0x85')][_0x9a5d('0x32')](_0x2e8c4a[_0x9a5d('0x84')](),{'type':dbH[_0x9a5d('0x85')][_0x9a5d('0x86')][_0x9a5d('0x87')]});}})['then'](function(){return{'sql':_0x5b7da5['toString']()};})[_0x9a5d('0x23')](respondWithResult(_0x2259b8,null))[_0x9a5d('0x45')](handleError(_0x2259b8,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe3cf=['rimraf','../../config/environment','./analyticCustomReport.attributes','exports','AnalyticCustomReport','analytics_custom_reports','lodash','util','../../config/logger','request-promise','path'];(function(_0x495f5e,_0x505cba){var _0x1a1669=function(_0x4c169b){while(--_0x4c169b){_0x495f5e['push'](_0x495f5e['shift']());}};_0x1a1669(++_0x505cba);}(_0xe3cf,0x103));var _0xfe3c=function(_0x242054,_0x36cd5a){_0x242054=_0x242054-0x0;var _0x2d5b33=_0xe3cf[_0x242054];return _0x2d5b33;};'use strict';var _=require(_0xfe3c('0x0'));var util=require(_0xfe3c('0x1'));var logger=require(_0xfe3c('0x2'))('api');var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0xfe3c('0x3'));var fs=require('fs');var path=require(_0xfe3c('0x4'));var rimraf=require(_0xfe3c('0x5'));var config=require(_0xfe3c('0x6'));var attributes=require(_0xfe3c('0x7'));module[_0xfe3c('0x8')]=function(_0x553928,_0x1b29e8){return _0x553928['define'](_0xfe3c('0x9'),attributes,{'tableName':_0xfe3c('0xa'),'paranoid':!![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x6aee=['api','bluebird','path','rimraf','../../config/environment','./analyticCustomReport.attributes','exports','analytics_custom_reports','lodash','util'];(function(_0x2dafbe,_0x5d04de){var _0x58a45a=function(_0x50ac96){while(--_0x50ac96){_0x2dafbe['push'](_0x2dafbe['shift']());}};_0x58a45a(++_0x5d04de);}(_0x6aee,0x134));var _0xe6ae=function(_0x3083f7,_0x309c11){_0x3083f7=_0x3083f7-0x0;var _0x3d1c3c=_0x6aee[_0x3083f7];return _0x3d1c3c;};'use strict';var _=require(_0xe6ae('0x0'));var util=require(_0xe6ae('0x1'));var logger=require('../../config/logger')(_0xe6ae('0x2'));var moment=require('moment');var BPromise=require(_0xe6ae('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xe6ae('0x4'));var rimraf=require(_0xe6ae('0x5'));var config=require(_0xe6ae('0x6'));var attributes=require(_0xe6ae('0x7'));module[_0xe6ae('0x8')]=function(_0x641dc9,_0x432825){return _0x641dc9['define']('AnalyticCustomReport',attributes,{'tableName':_0xe6ae('0x9'),'paranoid':!![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8f9a=['stringify','error','code','message','result','catch','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','jayson/promise','http','request','then','info','AnalyticCustomReport,\x20%s,\x20%s','debug','AnalyticCustomReport,\x20%s,\x20%s,\x20%s','request\x20sent'];(function(_0x160606,_0x38d60b){var _0x3457e6=function(_0x3dadfa){while(--_0x3dadfa){_0x160606['push'](_0x160606['shift']());}};_0x3457e6(++_0x38d60b);}(_0x8f9a,0x16b));var _0xa8f9=function(_0x3fd073,_0x32931f){_0x3fd073=_0x3fd073-0x0;var _0x40d7b1=_0x8f9a[_0x3fd073];return _0x40d7b1;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0xa8f9('0x0'));var BPromise=require(_0xa8f9('0x1'));var rs=require(_0xa8f9('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xa8f9('0x3'))['db'];var utils=require(_0xa8f9('0x4'));var logger=require(_0xa8f9('0x5'))('rpc');var config=require('../../config/environment');var jayson=require(_0xa8f9('0x6'));var client=jayson['client'][_0xa8f9('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x4e5262,_0x4acf8c,_0x45107e){return new BPromise(function(_0x47b24d,_0x3b219d){return client[_0xa8f9('0x8')](_0x4e5262,_0x45107e)[_0xa8f9('0x9')](function(_0x34410d){logger[_0xa8f9('0xa')](_0xa8f9('0xb'),_0x4acf8c,'request\x20sent');logger[_0xa8f9('0xc')](_0xa8f9('0xd'),_0x4acf8c,_0xa8f9('0xe'),JSON[_0xa8f9('0xf')](_0x34410d));if(_0x34410d[_0xa8f9('0x10')]){if(_0x34410d[_0xa8f9('0x10')][_0xa8f9('0x11')]===0x1f4){logger[_0xa8f9('0x10')]('AnalyticCustomReport,\x20%s,\x20%s',_0x4acf8c,_0x34410d['error'][_0xa8f9('0x12')]);return _0x3b219d(_0x34410d[_0xa8f9('0x10')][_0xa8f9('0x12')]);}logger[_0xa8f9('0x10')]('AnalyticCustomReport,\x20%s,\x20%s',_0x4acf8c,_0x34410d['error']['message']);return _0x47b24d(_0x34410d[_0xa8f9('0x10')][_0xa8f9('0x12')]);}else{logger[_0xa8f9('0xa')]('AnalyticCustomReport,\x20%s,\x20%s',_0x4acf8c,_0xa8f9('0xe'));_0x47b24d(_0x34410d[_0xa8f9('0x13')]['message']);}})[_0xa8f9('0x14')](function(_0x5a63d7){logger[_0xa8f9('0x10')](_0xa8f9('0xb'),_0x4acf8c,_0x5a63d7);_0x3b219d(_0x5a63d7);});});}
\ No newline at end of file
+var _0x775d=['../../config/utils','../../config/logger','rpc','client','http','then','info','AnalyticCustomReport,\x20%s,\x20%s','request\x20sent','debug','stringify','code','error','message','catch','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb'];(function(_0x209941,_0x5c9988){var _0x1e8729=function(_0x51a9b8){while(--_0x51a9b8){_0x209941['push'](_0x209941['shift']());}};_0x1e8729(++_0x5c9988);}(_0x775d,0x15f));var _0xd775=function(_0x209032,_0x251a46){_0x209032=_0x209032-0x0;var _0x3c311e=_0x775d[_0x209032];return _0x3c311e;};'use strict';var _=require(_0xd775('0x0'));var util=require('util');var moment=require(_0xd775('0x1'));var BPromise=require(_0xd775('0x2'));var rs=require(_0xd775('0x3'));var fs=require('fs');var Redis=require(_0xd775('0x4'));var db=require(_0xd775('0x5'))['db'];var utils=require(_0xd775('0x6'));var logger=require(_0xd775('0x7'))(_0xd775('0x8'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0xd775('0x9')][_0xd775('0xa')]({'port':0x232a});function respondWithRpcPromise(_0xbef926,_0x17b9f1,_0x1680ba){return new BPromise(function(_0x28fc4b,_0x39dcad){return client['request'](_0xbef926,_0x1680ba)[_0xd775('0xb')](function(_0x170ecb){logger[_0xd775('0xc')](_0xd775('0xd'),_0x17b9f1,_0xd775('0xe'));logger[_0xd775('0xf')]('AnalyticCustomReport,\x20%s,\x20%s,\x20%s',_0x17b9f1,_0xd775('0xe'),JSON[_0xd775('0x10')](_0x170ecb));if(_0x170ecb['error']){if(_0x170ecb['error'][_0xd775('0x11')]===0x1f4){logger[_0xd775('0x12')](_0xd775('0xd'),_0x17b9f1,_0x170ecb[_0xd775('0x12')][_0xd775('0x13')]);return _0x39dcad(_0x170ecb[_0xd775('0x12')]['message']);}logger[_0xd775('0x12')](_0xd775('0xd'),_0x17b9f1,_0x170ecb['error'][_0xd775('0x13')]);return _0x28fc4b(_0x170ecb[_0xd775('0x12')]['message']);}else{logger[_0xd775('0xc')]('AnalyticCustomReport,\x20%s,\x20%s',_0x17b9f1,'request\x20sent');_0x28fc4b(_0x170ecb['result'][_0xd775('0x13')]);}})[_0xd775('0x14')](function(_0x1edbd7){logger[_0xd775('0x12')](_0xd775('0xd'),_0x17b9f1,_0x1edbd7);_0x39dcad(_0x1edbd7);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x097c=['update','delete','destroy','multer','util','path','connect-timeout','fs-extra','../../components/auth/service','../../config/environment','./analyticCustomReport.controller','get','isAuthenticated','index','/:id','/:id/preview','preview','/:id/run','run','post','put'];(function(_0x4b51aa,_0x2d363e){var _0x586b66=function(_0x310d73){while(--_0x310d73){_0x4b51aa['push'](_0x4b51aa['shift']());}};_0x586b66(++_0x2d363e);}(_0x097c,0x168));var _0xc097=function(_0xba7682,_0x47231f){_0xba7682=_0xba7682-0x0;var _0x52ad33=_0x097c[_0xba7682];return _0x52ad33;};'use strict';var multer=require(_0xc097('0x0'));var util=require(_0xc097('0x1'));var path=require(_0xc097('0x2'));var timeout=require(_0xc097('0x3'));var express=require('express');var router=express['Router']();var fs_extra=require(_0xc097('0x4'));var auth=require(_0xc097('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0xc097('0x6'));var controller=require(_0xc097('0x7'));router[_0xc097('0x8')]('/',auth[_0xc097('0x9')](),controller[_0xc097('0xa')]);router[_0xc097('0x8')](_0xc097('0xb'),auth[_0xc097('0x9')](),controller['show']);router[_0xc097('0x8')](_0xc097('0xc'),auth['isAuthenticated'](),controller[_0xc097('0xd')]);router['get'](_0xc097('0xe'),auth['isAuthenticated'](),controller[_0xc097('0xf')]);router['get']('/:id/query',auth['isAuthenticated'](),controller['query']);router[_0xc097('0x10')]('/',auth[_0xc097('0x9')](),controller['create']);router[_0xc097('0x11')]('/:id',auth[_0xc097('0x9')](),controller[_0xc097('0x12')]);router[_0xc097('0x13')](_0xc097('0xb'),auth[_0xc097('0x9')](),controller[_0xc097('0x14')]);module['exports']=router;
\ No newline at end of file
+var _0x69da=['../../components/interaction/service','../../config/environment','./analyticCustomReport.controller','isAuthenticated','get','show','/:id/preview','preview','/:id/run','run','/:id/query','put','/:id','update','delete','destroy','exports','util','connect-timeout','express','Router','fs-extra'];(function(_0x42512d,_0x3e8f60){var _0x242bbd=function(_0x17322f){while(--_0x17322f){_0x42512d['push'](_0x42512d['shift']());}};_0x242bbd(++_0x3e8f60);}(_0x69da,0x95));var _0xa69d=function(_0xa464c9,_0x7c86d8){_0xa464c9=_0xa464c9-0x0;var _0x3d73c4=_0x69da[_0xa464c9];return _0x3d73c4;};'use strict';var multer=require('multer');var util=require(_0xa69d('0x0'));var path=require('path');var timeout=require(_0xa69d('0x1'));var express=require(_0xa69d('0x2'));var router=express[_0xa69d('0x3')]();var fs_extra=require(_0xa69d('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0xa69d('0x5'));var config=require(_0xa69d('0x6'));var controller=require(_0xa69d('0x7'));router['get']('/',auth[_0xa69d('0x8')](),controller['index']);router[_0xa69d('0x9')]('/:id',auth[_0xa69d('0x8')](),controller[_0xa69d('0xa')]);router[_0xa69d('0x9')](_0xa69d('0xb'),auth[_0xa69d('0x8')](),controller[_0xa69d('0xc')]);router['get'](_0xa69d('0xd'),auth['isAuthenticated'](),controller[_0xa69d('0xe')]);router['get'](_0xa69d('0xf'),auth[_0xa69d('0x8')](),controller['query']);router['post']('/',auth[_0xa69d('0x8')](),controller['create']);router[_0xa69d('0x10')](_0xa69d('0x11'),auth[_0xa69d('0x8')](),controller[_0xa69d('0x12')]);router[_0xa69d('0x13')](_0xa69d('0x11'),auth[_0xa69d('0x8')](),controller[_0xa69d('0x14')]);module[_0xa69d('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2675=['sequelize','STRING','TEXT'];(function(_0x4f431d,_0xd51a3b){var _0x4f31e1=function(_0x1c688d){while(--_0x1c688d){_0x4f431d['push'](_0x4f431d['shift']());}};_0x4f31e1(++_0xd51a3b);}(_0x2675,0x75));var _0x5267=function(_0x1319e6,_0xbac853){_0x1319e6=_0x1319e6-0x0;var _0x14ec6b=_0x2675[_0x1319e6];return _0x14ec6b;};'use strict';var Sequelize=require(_0x5267('0x0'));module['exports']={'name':{'type':Sequelize['STRING'],'allowNull':![]},'description':{'type':Sequelize['STRING']},'parent':{'type':Sequelize[_0x5267('0x1')]},'table':{'type':Sequelize[_0x5267('0x1')]},'conditions':{'type':Sequelize['TEXT']},'joins':{'type':Sequelize[_0x5267('0x2')]}};
\ No newline at end of file
+var _0x98a8=['sequelize','exports','STRING','TEXT'];(function(_0x4e95e0,_0x523ab8){var _0x22a1bd=function(_0x5cbdac){while(--_0x5cbdac){_0x4e95e0['push'](_0x4e95e0['shift']());}};_0x22a1bd(++_0x523ab8);}(_0x98a8,0x12c));var _0x898a=function(_0x6579f7,_0x19052e){_0x6579f7=_0x6579f7-0x0;var _0x1665e5=_0x98a8[_0x6579f7];return _0x1665e5;};'use strict';var Sequelize=require(_0x898a('0x0'));module[_0x898a('0x1')]={'name':{'type':Sequelize[_0x898a('0x2')],'allowNull':![]},'description':{'type':Sequelize[_0x898a('0x2')]},'parent':{'type':Sequelize[_0x898a('0x2')]},'table':{'type':Sequelize[_0x898a('0x2')]},'conditions':{'type':Sequelize[_0x898a('0x3')]},'joins':{'type':Sequelize['TEXT']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdc97=['startDate','toString','../../components/export/','savename','COUNT(*)','eml-format','rimraf','zip-dir','request-promise','bluebird','mustache','path','sox','to-csv','ejs','lodash','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','dbH','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','reject','save','then','destroy','DefaultReports','UserProfileResource','error','stack','name','map','AnalyticDefaultReport','rawAttributes','fieldName','query','keys','filters','intersection','model','attributes','fields','order','sort','where','pick','filter','merge','type','VIRTUAL','options','includeAll','include','findAll','rows','catch','params','find','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','preview','left_join','right_join','cross_join','COUNT(DISTINCT\x20%s)','MAX(%s)','MIN(%s)','AVG(%s)','GROUP_CONCAT(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','SEC_TO_TIME(%s)','DATE(%s)','HOUR(%s)','ROUND(%s)','UNIX_TIMESTAMP(%s)','includes','IS\x20NULL','IS\x20NOT\x20NULL','IS\x20EMPTY','IS\x20NOT\x20EMPTY','rules','length','operator','group','field','condition','Sequelize','ValidationErrorItem','keyBy','select','from','table','MetricId','metric','function','replace','format','groupBy','orderBy','DESC','alias','joins','parse','foreignTable','foreignKey','%s.%s\x20=\x20%s.%s','parentKey','conditions','debug','Limited\x20Query:','sequelize','QueryTypes','SELECT','join','SUM(%s)','COUNT(%s)','value','Please\x20insert\x20at\x20least\x20one\x20field','AnalyticMetric','clone','web','fullPath','%s-%s.%s','randomstring','generate','output','csv','default','.calldate\x20BETWEEN\x20?\x20AND\x20?','endDate'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xdc97,0x13b));var _0x7dc9=function(_0x36f32e,_0x485452){_0x36f32e=_0x36f32e-0x0;var _0x491c76=_0xdc97[_0x36f32e];return _0x491c76;};'use strict';var emlformat=require(_0x7dc9('0x0'));var rimraf=require(_0x7dc9('0x1'));var zipdir=require(_0x7dc9('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x7dc9('0x3'));var moment=require('moment');var BPromise=require(_0x7dc9('0x4'));var Mustache=require(_0x7dc9('0x5'));var util=require('util');var path=require(_0x7dc9('0x6'));var sox=require(_0x7dc9('0x7'));var csv=require(_0x7dc9('0x8'));var ejs=require(_0x7dc9('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x7dc9('0xa'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x7dc9('0xb'));var deskjs=require(_0x7dc9('0xc'));var toCsv=require(_0x7dc9('0x8'));var querystring=require(_0x7dc9('0xd'));var Papa=require(_0x7dc9('0xe'));var Redis=require('ioredis');var authService=require(_0x7dc9('0xf'));var qs=require(_0x7dc9('0x10'));var as=require(_0x7dc9('0x11'));var hardwareService=require(_0x7dc9('0x12'));var logger=require(_0x7dc9('0x13'))(_0x7dc9('0x14'));var utils=require(_0x7dc9('0x15'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];var dbH=require('../../mysqldb')[_0x7dc9('0x16')];function respondWithStatusCode(_0x14e5db,_0x5c6ca5){_0x5c6ca5=_0x5c6ca5||0xcc;return function(_0xbd06be){if(_0xbd06be){return _0x14e5db[_0x7dc9('0x17')](_0x5c6ca5);}return _0x14e5db[_0x7dc9('0x18')](_0x5c6ca5)[_0x7dc9('0x19')]();};}function respondWithResult(_0x31d43d,_0x11af93){_0x11af93=_0x11af93||0xc8;return function(_0x524d09){if(_0x524d09){return _0x31d43d[_0x7dc9('0x18')](_0x11af93)[_0x7dc9('0x1a')](_0x524d09);}};}function respondWithFilteredResult(_0x1b0aa1,_0x442819){return function(_0x11606f){if(_0x11606f){var _0xbe0437=typeof _0x442819[_0x7dc9('0x1b')]===_0x7dc9('0x1c')&&typeof _0x442819[_0x7dc9('0x1d')]==='undefined';var _0x22577e=_0x11606f['count'];var _0x1f5906=_0xbe0437?0x0:_0x442819[_0x7dc9('0x1b')];var _0x5d61d7=_0xbe0437?_0x11606f[_0x7dc9('0x1e')]:_0x442819[_0x7dc9('0x1b')]+_0x442819[_0x7dc9('0x1d')];var _0x4b2703;if(_0x5d61d7>=_0x22577e){_0x5d61d7=_0x22577e;_0x4b2703=0xc8;}else{_0x4b2703=0xce;}_0x1b0aa1[_0x7dc9('0x18')](_0x4b2703);return _0x1b0aa1[_0x7dc9('0x1f')](_0x7dc9('0x20'),_0x1f5906+'-'+_0x5d61d7+'/'+_0x22577e)[_0x7dc9('0x1a')](_0x11606f);}return null;};}function patchUpdates(_0x155cc4){return function(_0x2b38d6){try{jsonpatch['apply'](_0x2b38d6,_0x155cc4,!![]);}catch(_0x593e60){return BPromise[_0x7dc9('0x21')](_0x593e60);}return _0x2b38d6[_0x7dc9('0x22')]();};}function saveUpdates(_0x596e0f,_0x349001){return function(_0x27f7fa){if(_0x27f7fa){return _0x27f7fa['update'](_0x596e0f)[_0x7dc9('0x23')](function(_0x43d31f){return _0x43d31f;});}return null;};}function removeEntity(_0x41110a,_0x4906b1){return function(_0x424763){if(_0x424763){return _0x424763[_0x7dc9('0x24')]()[_0x7dc9('0x23')](function(){var _0x55a482=_0x424763['get']({'plain':!![]});var _0x4b9ba6=_0x7dc9('0x25');return db[_0x7dc9('0x26')]['destroy']({'where':{'type':_0x4b9ba6,'resourceId':_0x55a482['id']}})['then'](function(){return _0x424763;});})[_0x7dc9('0x23')](function(){_0x41110a['status'](0xcc)[_0x7dc9('0x19')]();});}};}function handleEntityNotFound(_0x1c690b,_0x3a74a0){return function(_0x3e4102){if(!_0x3e4102){_0x1c690b[_0x7dc9('0x17')](0x194);}return _0x3e4102;};}function handleError(_0x450124,_0x236d42){_0x236d42=_0x236d42||0x1f4;return function(_0x229f8e){logger[_0x7dc9('0x27')](_0x229f8e[_0x7dc9('0x28')]);if(_0x229f8e[_0x7dc9('0x29')]){delete _0x229f8e[_0x7dc9('0x29')];}_0x450124['status'](_0x236d42)['send'](_0x229f8e);};}exports['index']=function(_0x49a4a5,_0x4a68f0){var _0x553a03={},_0x58c4e8={},_0x59f5d8={'count':0x0,'rows':[]};var _0x4463dc=_[_0x7dc9('0x2a')](db[_0x7dc9('0x2b')][_0x7dc9('0x2c')],function(_0x3300ff){return{'name':_0x3300ff[_0x7dc9('0x2d')],'type':_0x3300ff['type']['key']};});_0x58c4e8['model']=_[_0x7dc9('0x2a')](_0x4463dc,'name');_0x58c4e8[_0x7dc9('0x2e')]=_[_0x7dc9('0x2f')](_0x49a4a5[_0x7dc9('0x2e')]);_0x58c4e8[_0x7dc9('0x30')]=_[_0x7dc9('0x31')](_0x58c4e8[_0x7dc9('0x32')],_0x58c4e8[_0x7dc9('0x2e')]);_0x553a03[_0x7dc9('0x33')]=_['intersection'](_0x58c4e8[_0x7dc9('0x32')],qs['fields'](_0x49a4a5[_0x7dc9('0x2e')][_0x7dc9('0x34')]));_0x553a03[_0x7dc9('0x33')]=_0x553a03[_0x7dc9('0x33')]['length']?_0x553a03[_0x7dc9('0x33')]:_0x58c4e8['model'];if(!_0x49a4a5[_0x7dc9('0x2e')]['hasOwnProperty']('nolimit')){_0x553a03[_0x7dc9('0x1d')]=qs[_0x7dc9('0x1d')](_0x49a4a5[_0x7dc9('0x2e')][_0x7dc9('0x1d')]);_0x553a03['offset']=qs[_0x7dc9('0x1b')](_0x49a4a5[_0x7dc9('0x2e')][_0x7dc9('0x1b')]);}_0x553a03[_0x7dc9('0x35')]=qs[_0x7dc9('0x36')](_0x49a4a5[_0x7dc9('0x2e')][_0x7dc9('0x36')]);_0x553a03[_0x7dc9('0x37')]=qs[_0x7dc9('0x30')](_[_0x7dc9('0x38')](_0x49a4a5[_0x7dc9('0x2e')],_0x58c4e8[_0x7dc9('0x30')]),_0x4463dc);if(_0x49a4a5['query'][_0x7dc9('0x39')]){_0x553a03[_0x7dc9('0x37')]=_[_0x7dc9('0x3a')](_0x553a03[_0x7dc9('0x37')],{'$or':_['map'](_0x4463dc,function(_0x3492e6){if(_0x3492e6[_0x7dc9('0x3b')]!==_0x7dc9('0x3c')){var _0x3876b6={};_0x3876b6[_0x3492e6[_0x7dc9('0x29')]]={'$like':'%'+_0x49a4a5[_0x7dc9('0x2e')]['filter']+'%'};return _0x3876b6;}})});}_0x553a03=_['merge']({},_0x553a03,_0x49a4a5[_0x7dc9('0x3d')]);var _0x36a965={'where':_0x553a03['where']};return db[_0x7dc9('0x2b')]['count'](_0x36a965)[_0x7dc9('0x23')](function(_0x2a91fe){_0x59f5d8[_0x7dc9('0x1e')]=_0x2a91fe;if(_0x49a4a5['query'][_0x7dc9('0x3e')]){_0x553a03[_0x7dc9('0x3f')]=[{'all':!![]}];}return db[_0x7dc9('0x2b')][_0x7dc9('0x40')](_0x553a03);})[_0x7dc9('0x23')](function(_0x23499a){_0x59f5d8[_0x7dc9('0x41')]=_0x23499a;return _0x59f5d8;})['then'](respondWithFilteredResult(_0x4a68f0,_0x553a03))[_0x7dc9('0x42')](handleError(_0x4a68f0,null));};exports['show']=function(_0x52d883,_0xcced6c){var _0x294276={'raw':!![],'where':{'id':_0x52d883[_0x7dc9('0x43')]['id']}},_0x18c8a1={};_0x18c8a1[_0x7dc9('0x32')]=_[_0x7dc9('0x2f')](db[_0x7dc9('0x2b')][_0x7dc9('0x2c')]);_0x18c8a1[_0x7dc9('0x2e')]=_['keys'](_0x52d883[_0x7dc9('0x2e')]);_0x18c8a1[_0x7dc9('0x30')]=_[_0x7dc9('0x31')](_0x18c8a1[_0x7dc9('0x32')],_0x18c8a1[_0x7dc9('0x2e')]);_0x294276[_0x7dc9('0x33')]=_['intersection'](_0x18c8a1[_0x7dc9('0x32')],qs[_0x7dc9('0x34')](_0x52d883['query'][_0x7dc9('0x34')]));_0x294276[_0x7dc9('0x33')]=_0x294276[_0x7dc9('0x33')]['length']?_0x294276[_0x7dc9('0x33')]:_0x18c8a1['model'];if(_0x52d883['query'][_0x7dc9('0x3e')]){_0x294276[_0x7dc9('0x3f')]=[{'all':!![]}];}_0x294276=_[_0x7dc9('0x3a')]({},_0x294276,_0x52d883['options']);return db['AnalyticDefaultReport'][_0x7dc9('0x44')](_0x294276)['then'](handleEntityNotFound(_0xcced6c,null))[_0x7dc9('0x23')](respondWithResult(_0xcced6c,null))[_0x7dc9('0x42')](handleError(_0xcced6c,null));};exports['create']=function(_0x24ccce,_0x1d6c0a){return db[_0x7dc9('0x2b')][_0x7dc9('0x45')](_0x24ccce[_0x7dc9('0x46')],{})[_0x7dc9('0x23')](function(_0x86739f){var _0x3a1102=_0x24ccce[_0x7dc9('0x47')][_0x7dc9('0x48')]({'plain':!![]});if(!_0x3a1102)throw new Error(_0x7dc9('0x49'));if(_0x3a1102[_0x7dc9('0x4a')]===_0x7dc9('0x47')){var _0x59be9b=_0x86739f[_0x7dc9('0x48')]({'plain':!![]});var _0x4fcfd5='Reports';return db[_0x7dc9('0x4b')][_0x7dc9('0x44')]({'where':{'name':_0x4fcfd5,'userProfileId':_0x3a1102[_0x7dc9('0x4c')]},'raw':!![]})[_0x7dc9('0x23')](function(_0x346d27){if(_0x346d27&&_0x346d27['autoAssociation']===0x0){return db[_0x7dc9('0x26')][_0x7dc9('0x45')]({'name':_0x59be9b[_0x7dc9('0x29')],'resourceId':_0x59be9b['id'],'type':'DefaultReports','sectionId':_0x346d27['id']},{})[_0x7dc9('0x23')](function(){return _0x86739f;});}else{return _0x86739f;}})[_0x7dc9('0x42')](function(_0x2cf133){logger[_0x7dc9('0x27')](_0x7dc9('0x4d'),_0x2cf133);throw _0x2cf133;});}return _0x86739f;})[_0x7dc9('0x23')](respondWithResult(_0x1d6c0a,0xc9))['catch'](handleError(_0x1d6c0a,null));};exports[_0x7dc9('0x4e')]=function(_0x2ecc80,_0x2b0941){if(_0x2ecc80[_0x7dc9('0x46')]['id']){delete _0x2ecc80[_0x7dc9('0x46')]['id'];}return db[_0x7dc9('0x2b')][_0x7dc9('0x44')]({'where':{'id':_0x2ecc80[_0x7dc9('0x43')]['id']}})[_0x7dc9('0x23')](handleEntityNotFound(_0x2b0941,null))[_0x7dc9('0x23')](saveUpdates(_0x2ecc80[_0x7dc9('0x46')],null))[_0x7dc9('0x23')](respondWithResult(_0x2b0941,null))['catch'](handleError(_0x2b0941,null));};exports[_0x7dc9('0x24')]=function(_0x39be46,_0x38df9a){return db[_0x7dc9('0x2b')][_0x7dc9('0x44')]({'where':{'id':_0x39be46['params']['id']}})[_0x7dc9('0x23')](handleEntityNotFound(_0x38df9a,null))[_0x7dc9('0x23')](removeEntity(_0x38df9a,null))[_0x7dc9('0x42')](handleError(_0x38df9a,null));};exports[_0x7dc9('0x4f')]=function(_0x2a1db8,_0x2f01a0){var _0x495a06=0xa;var _0x547caa=['join',_0x7dc9('0x50'),_0x7dc9('0x51'),_0x7dc9('0x52')];var _0x2afefc={'SUM':'SUM(%s)','COUNT':'COUNT(%s)','COUNT DISTINCT':_0x7dc9('0x53'),'MAX':_0x7dc9('0x54'),'MIN':_0x7dc9('0x55'),'AVG':_0x7dc9('0x56'),'GROUP_CONCAT':_0x7dc9('0x57'),'GROUP_CONCAT ASC':_0x7dc9('0x58'),'GROUP_CONCAT DESC':_0x7dc9('0x59')};var _0x4905f6={'SEC_TO_TIME':_0x7dc9('0x5a'),'DATE':_0x7dc9('0x5b'),'HOUR':_0x7dc9('0x5c'),'ROUND':_0x7dc9('0x5d'),'UNIX_TIMESTAMP':_0x7dc9('0x5e')};var _0x4bbf8b=function(_0x175858){return!_[_0x7dc9('0x5f')]([_0x7dc9('0x60'),_0x7dc9('0x61'),_0x7dc9('0x62'),_0x7dc9('0x63')],_0x175858);};var _0x286ac5=function(_0x2a02ed){if(!_0x2a02ed||!_0x2a02ed[_0x7dc9('0x64')][_0x7dc9('0x65')]){return'';}for(var _0x19c209='(',_0xf3ae59=0x0;_0xf3ae59<_0x2a02ed[_0x7dc9('0x64')]['length'];_0xf3ae59+=0x1){_0xf3ae59>0x0&&(_0x19c209+='\x20'+_0x2a02ed[_0x7dc9('0x66')]+'\x20');_0x19c209+=_0x2a02ed['rules'][_0xf3ae59][_0x7dc9('0x67')]?_0x286ac5(_0x2a02ed[_0x7dc9('0x64')][_0xf3ae59]['group']):_0x2a02ed[_0x7dc9('0x64')][_0xf3ae59][_0x7dc9('0x68')]+'\x20'+_0x2a02ed['rules'][_0xf3ae59][_0x7dc9('0x69')]+(_0x4bbf8b(_0x2a02ed[_0x7dc9('0x64')][_0xf3ae59][_0x7dc9('0x69')])?'\x20'+_0x2a02ed['rules'][_0xf3ae59]['value']:'');}return _0x19c209+')';};var _0x205d01={'where':{'id':_0x2a1db8[_0x7dc9('0x43')]['id']}},_0x366d4d,_0x4ed60e,_0x3aba59,_0x15d02f,_0x2bbf61;_0x205d01=_[_0x7dc9('0x3a')]({},_0x205d01,_0x2a1db8[_0x7dc9('0x3d')]);return db['AnalyticDefaultReport'][_0x7dc9('0x44')](_0x205d01)[_0x7dc9('0x23')](function(_0x3f81dd){if(_0x3f81dd){_0x366d4d=_0x3f81dd;return _0x3f81dd['getFields']();}return null;})['then'](function(_0x1b2369){if(_0x1b2369){if(!_0x1b2369[_0x7dc9('0x65')]){throw new db[(_0x7dc9('0x6a'))][(_0x7dc9('0x6b'))]('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x4ed60e=_0x1b2369;return db['AnalyticMetric'][_0x7dc9('0x40')]({'raw':!![]});}return null;})[_0x7dc9('0x23')](function(_0x25f8b3){if(_0x25f8b3){_0x3aba59=_[_0x7dc9('0x6c')](_0x25f8b3,'id');var _0x5d211b;var _0xea1728=squel[_0x7dc9('0x6d')]();_0xea1728[_0x7dc9('0x6e')](_0x366d4d[_0x7dc9('0x6f')]);for(var _0x19e0b1=0x0;_0x19e0b1<_0x4ed60e[_0x7dc9('0x65')];_0x19e0b1+=0x1){_0x5d211b=_0x4ed60e[_0x19e0b1][_0x7dc9('0x70')]?_0x3aba59[_0x4ed60e[_0x19e0b1]['MetricId']][_0x7dc9('0x71')]:_0x4ed60e[_0x19e0b1][_0x7dc9('0x68')];_0x5d211b=_0x4ed60e[_0x19e0b1]['function']?_['replace'](_0x2afefc[_0x4ed60e[_0x19e0b1][_0x7dc9('0x72')]],'%s',_0x5d211b):_0x5d211b;_0x5d211b=_0x4ed60e[_0x19e0b1]['format']?_[_0x7dc9('0x73')](_0x4905f6[_0x4ed60e[_0x19e0b1][_0x7dc9('0x74')]],'%s',_0x5d211b):_0x5d211b;if(_0x4ed60e[_0x19e0b1][_0x7dc9('0x75')]){_0xea1728[_0x7dc9('0x67')](_0x5d211b);}_0x4ed60e[_0x19e0b1][_0x7dc9('0x76')]&&_0xea1728[_0x7dc9('0x35')](_0x5d211b,_0x4ed60e[_0x19e0b1][_0x7dc9('0x76')]===_0x7dc9('0x77')?![]:!![]);_0xea1728[_0x7dc9('0x68')](_0x5d211b,_0x4ed60e[_0x19e0b1][_0x7dc9('0x78')]||_0x5d211b);}if(_0x366d4d['joins']){_0x366d4d[_0x7dc9('0x79')]=JSON[_0x7dc9('0x7a')](_0x366d4d[_0x7dc9('0x79')]);for(var _0x499393=0x0;_0x499393<_0x366d4d[_0x7dc9('0x79')]['length'];_0x499393+=0x1){if(_0x366d4d['joins'][_0x499393][_0x7dc9('0x3b')]&&_[_0x7dc9('0x5f')](_0x547caa,_0x366d4d['joins'][_0x499393][_0x7dc9('0x3b')])&&_0x366d4d['joins'][_0x499393]['parentKey']&&_0x366d4d[_0x7dc9('0x79')][_0x499393][_0x7dc9('0x7b')]&&_0x366d4d[_0x7dc9('0x79')][_0x499393][_0x7dc9('0x7c')]){_0xea1728[_0x366d4d['joins'][_0x499393][_0x7dc9('0x3b')]](_0x366d4d[_0x7dc9('0x79')][_0x499393][_0x7dc9('0x7b')],null,util[_0x7dc9('0x74')](_0x7dc9('0x7d'),_0x366d4d[_0x7dc9('0x6f')],_0x366d4d[_0x7dc9('0x79')][_0x499393][_0x7dc9('0x7e')],_0x366d4d['joins'][_0x499393]['foreignTable'],_0x366d4d[_0x7dc9('0x79')][_0x499393]['foreignKey']));}}}if(_0x366d4d[_0x7dc9('0x7f')]){_0x366d4d[_0x7dc9('0x7f')]=JSON[_0x7dc9('0x7a')](_0x366d4d[_0x7dc9('0x7f')]);_0xea1728['where'](_0x286ac5(_0x366d4d[_0x7dc9('0x7f')][_0x7dc9('0x67')]));}_0x2bbf61=_0xea1728['clone']();_0xea1728[_0x7dc9('0x1d')](_0x495a06);_0xea1728[_0x7dc9('0x1b')](0x0);logger[_0x7dc9('0x80')](_0x7dc9('0x81'),_0xea1728['toString']());return dbH[_0x7dc9('0x82')][_0x7dc9('0x2e')](_0xea1728['toString'](),{'type':dbH['sequelize'][_0x7dc9('0x83')][_0x7dc9('0x84')]});}})['then'](respondWithResult(_0x2f01a0,null))[_0x7dc9('0x42')](handleError(_0x2f01a0,null));};function runReport(_0x5f08f6,_0x2e7296,_0x1d0722){var _0x1acdba=_0x2e7296['name'];var _0x33d68c=0xa;var _0x3c7daf=[_0x7dc9('0x85'),'left_join',_0x7dc9('0x51'),'cross_join'];var _0x5761cb={'SUM':_0x7dc9('0x86'),'COUNT':_0x7dc9('0x87'),'COUNT DISTINCT':_0x7dc9('0x53'),'MAX':_0x7dc9('0x54'),'MIN':_0x7dc9('0x55'),'AVG':'AVG(%s)','GROUP_CONCAT':_0x7dc9('0x57'),'GROUP_CONCAT ASC':_0x7dc9('0x58'),'GROUP_CONCAT DESC':_0x7dc9('0x59')};var _0x2dc92e={'SEC_TO_TIME':_0x7dc9('0x5a'),'DATE':'DATE(%s)','HOUR':_0x7dc9('0x5c'),'ROUND':_0x7dc9('0x5d'),'UNIX_TIMESTAMP':_0x7dc9('0x5e')};var _0x200df7=function(_0x53c992){return!_[_0x7dc9('0x5f')](['IS\x20NULL','IS\x20NOT\x20NULL',_0x7dc9('0x62'),'IS\x20NOT\x20EMPTY'],_0x53c992);};var _0x21da79=function(_0x476a24){if(!_0x476a24||!_0x476a24[_0x7dc9('0x64')][_0x7dc9('0x65')]){return'';}for(var _0x38dccc='(',_0xc716c3=0x0;_0xc716c3<_0x476a24['rules'][_0x7dc9('0x65')];_0xc716c3+=0x1){_0xc716c3>0x0&&(_0x38dccc+='\x20'+_0x476a24[_0x7dc9('0x66')]+'\x20');_0x38dccc+=_0x476a24[_0x7dc9('0x64')][_0xc716c3][_0x7dc9('0x67')]?_0x21da79(_0x476a24[_0x7dc9('0x64')][_0xc716c3]['group']):_0x476a24[_0x7dc9('0x64')][_0xc716c3]['field']+'\x20'+_0x476a24[_0x7dc9('0x64')][_0xc716c3][_0x7dc9('0x69')]+(_0x200df7(_0x476a24[_0x7dc9('0x64')][_0xc716c3]['condition'])?'\x20'+_0x476a24[_0x7dc9('0x64')][_0xc716c3][_0x7dc9('0x88')]:'');}return _0x38dccc+')';};var _0x5e8806={'where':{'id':_0x5f08f6['id']}},_0x1a9c7e,_0x3f8839,_0xf74b6,_0x2b3d46,_0x5c466d;_0x5e8806=_[_0x7dc9('0x3a')]({},_0x5e8806,_0x1d0722);return db['AnalyticDefaultReport'][_0x7dc9('0x44')](_0x5e8806)[_0x7dc9('0x23')](function(_0x3e06b3){if(_0x3e06b3){_0x1a9c7e=_0x3e06b3;return _0x3e06b3['getFields']();}return null;})[_0x7dc9('0x23')](function(_0x4588a7){if(_0x4588a7){if(!_0x4588a7[_0x7dc9('0x65')]){throw new db['Sequelize']['ValidationErrorItem'](_0x7dc9('0x89'),0x193);}_0x3f8839=_0x4588a7;return db[_0x7dc9('0x8a')]['findAll']({'raw':!![]});}return null;})['then'](function(_0xb0c228){if(_0xb0c228){_0xf74b6=_[_0x7dc9('0x6c')](_0xb0c228,'id');var _0x5f3487;var _0x29c228=squel['select']();_0x29c228[_0x7dc9('0x6e')](_0x1a9c7e[_0x7dc9('0x6f')]);for(var _0x235473=0x0;_0x235473<_0x3f8839[_0x7dc9('0x65')];_0x235473+=0x1){_0x5f3487=_0x3f8839[_0x235473][_0x7dc9('0x70')]?_0xf74b6[_0x3f8839[_0x235473][_0x7dc9('0x70')]]['metric']:_0x3f8839[_0x235473][_0x7dc9('0x68')];_0x5f3487=_0x3f8839[_0x235473][_0x7dc9('0x72')]?_[_0x7dc9('0x73')](_0x5761cb[_0x3f8839[_0x235473][_0x7dc9('0x72')]],'%s',_0x5f3487):_0x5f3487;_0x5f3487=_0x3f8839[_0x235473][_0x7dc9('0x74')]?_['replace'](_0x2dc92e[_0x3f8839[_0x235473][_0x7dc9('0x74')]],'%s',_0x5f3487):_0x5f3487;if(_0x3f8839[_0x235473][_0x7dc9('0x75')]){_0x29c228[_0x7dc9('0x67')](_0x5f3487);}_0x3f8839[_0x235473][_0x7dc9('0x76')]&&_0x29c228['order'](_0x5f3487,_0x3f8839[_0x235473][_0x7dc9('0x76')]===_0x7dc9('0x77')?![]:!![]);_0x29c228['field'](_0x5f3487,_0x3f8839[_0x235473][_0x7dc9('0x78')]||_0x5f3487);}if(_0x1a9c7e['joins']){_0x1a9c7e[_0x7dc9('0x79')]=JSON[_0x7dc9('0x7a')](_0x1a9c7e[_0x7dc9('0x79')]);for(var _0x4173c2=0x0;_0x4173c2<_0x1a9c7e[_0x7dc9('0x79')][_0x7dc9('0x65')];_0x4173c2+=0x1){if(_0x1a9c7e[_0x7dc9('0x79')][_0x4173c2][_0x7dc9('0x3b')]&&_['includes'](_0x3c7daf,_0x1a9c7e[_0x7dc9('0x79')][_0x4173c2][_0x7dc9('0x3b')])&&_0x1a9c7e[_0x7dc9('0x79')][_0x4173c2][_0x7dc9('0x7e')]&&_0x1a9c7e[_0x7dc9('0x79')][_0x4173c2]['foreignTable']&&_0x1a9c7e[_0x7dc9('0x79')][_0x4173c2][_0x7dc9('0x7c')]){_0x29c228[_0x1a9c7e[_0x7dc9('0x79')][_0x4173c2][_0x7dc9('0x3b')]](_0x1a9c7e['joins'][_0x4173c2][_0x7dc9('0x7b')],null,util['format'](_0x7dc9('0x7d'),_0x1a9c7e['table'],_0x1a9c7e[_0x7dc9('0x79')][_0x4173c2][_0x7dc9('0x7e')],_0x1a9c7e[_0x7dc9('0x79')][_0x4173c2][_0x7dc9('0x7b')],_0x1a9c7e[_0x7dc9('0x79')][_0x4173c2][_0x7dc9('0x7c')]));}}}if(_0x1a9c7e[_0x7dc9('0x7f')]){_0x1a9c7e[_0x7dc9('0x7f')]=JSON[_0x7dc9('0x7a')](_0x1a9c7e[_0x7dc9('0x7f')]);_0x29c228[_0x7dc9('0x37')](_0x21da79(_0x1a9c7e[_0x7dc9('0x7f')]['group']));}_0x5c466d=_0x29c228[_0x7dc9('0x8b')]();_0x29c228[_0x7dc9('0x1d')](_0x33d68c);_0x29c228[_0x7dc9('0x1b')](0x0);return;}})[_0x7dc9('0x23')](function(){if(_0x2e7296['output']===_0x7dc9('0x8c')){return null;}var _0x35e061=_[_0x7dc9('0x3a')](_0x2e7296,{'name':_0x2e7296[_0x7dc9('0x8d')]||_0x2e7296['name']||_0x1a9c7e[_0x7dc9('0x29')],'basename':_0x1acdba,'savename':util[_0x7dc9('0x74')](_0x7dc9('0x8e'),_0x2e7296['name']||_0x1a9c7e['name'],require(_0x7dc9('0x8f'))[_0x7dc9('0x90')](0x4),_0x2e7296[_0x7dc9('0x91')]||_0x7dc9('0x92')),'reportId':_0x1a9c7e['id'],'reportType':_0x7dc9('0x93')});return db['AnalyticExtractedReport'][_0x7dc9('0x45')](_0x35e061,{'raw':!![]});})[_0x7dc9('0x23')](function(_0x648bf9){if(_0x1a9c7e[_0x7dc9('0x6f')]==='cdr'){_0x5c466d[_0x7dc9('0x37')](_0x1a9c7e['table']+_0x7dc9('0x94'),_0x2e7296['startDate'],_0x2e7296[_0x7dc9('0x95')]);}else{_0x5c466d[_0x7dc9('0x37')](_0x1a9c7e[_0x7dc9('0x6f')]+'.createdAt\x20BETWEEN\x20?\x20AND\x20?',_0x2e7296[_0x7dc9('0x96')],_0x2e7296[_0x7dc9('0x95')]);}if(_0x648bf9){logger['info']('Run\x20Query:',_0x5c466d[_0x7dc9('0x97')]());require('child_process')['fork'](path[_0x7dc9('0x85')](__dirname,_0x7dc9('0x98'),_0x648bf9[_0x7dc9('0x91')]),[_0x648bf9['id'],_0x5c466d['toString'](),path['join'](__dirname,'../../files/reports',_0x648bf9[_0x7dc9('0x99')]),_0x1acdba]);return _0x648bf9;}else{var _0xb825f3=squel[_0x7dc9('0x6d')]();_0xb825f3[_0x7dc9('0x6e')]('('+_0x5c466d['toString']()+')','countTable');_0xb825f3[_0x7dc9('0x68')](_0x7dc9('0x9a'),_0x7dc9('0x1e'));_0x5c466d['limit'](_0x2e7296['limit']||_0x33d68c);_0x5c466d[_0x7dc9('0x1b')](_0x2e7296['offset']||0x0);return dbH[_0x7dc9('0x82')][_0x7dc9('0x2e')](_0xb825f3['toString'](),{'type':dbH[_0x7dc9('0x82')][_0x7dc9('0x83')][_0x7dc9('0x84')]})[_0x7dc9('0x23')](function(_0x14cbd9){if(!_0x14cbd9[_0x7dc9('0x65')]){_0x2b3d46=0x0;}else{_0x2b3d46=_0x14cbd9[0x0][_0x7dc9('0x1e')]||0x0;}return dbH[_0x7dc9('0x82')]['query'](_0x5c466d[_0x7dc9('0x97')](),{'type':dbH['sequelize'][_0x7dc9('0x83')]['SELECT']});})[_0x7dc9('0x23')](function(_0x20f245){return{'rows':_0x20f245||[],'count':_0x2b3d46};});}});}exports['run']=function(_0x67d933,_0x1b2b88){return runReport(_0x67d933[_0x7dc9('0x43')],_0x67d933[_0x7dc9('0x2e')],_0x67d933[_0x7dc9('0x3d')])['then'](respondWithResult(_0x1b2b88,null))[_0x7dc9('0x42')](handleError(_0x1b2b88,null));};exports['runReport']=runReport;exports[_0x7dc9('0x2e')]=function(_0x313b41,_0x275675){var _0x299c23=0xa;var _0x4c1c43=[_0x7dc9('0x85'),_0x7dc9('0x50'),'right_join',_0x7dc9('0x52')];var _0x1fbaea={'SUM':_0x7dc9('0x86'),'COUNT':_0x7dc9('0x87'),'COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':_0x7dc9('0x54'),'MIN':_0x7dc9('0x55'),'AVG':_0x7dc9('0x56'),'GROUP_CONCAT':_0x7dc9('0x57'),'GROUP_CONCAT ASC':_0x7dc9('0x58'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x6c7fdc={'SEC_TO_TIME':_0x7dc9('0x5a'),'DATE':_0x7dc9('0x5b'),'HOUR':_0x7dc9('0x5c'),'ROUND':'ROUND(%s)','UNIX_TIMESTAMP':_0x7dc9('0x5e')};var _0x5c9d64=function(_0x59710c){return!_['includes']([_0x7dc9('0x60'),_0x7dc9('0x61'),_0x7dc9('0x62'),_0x7dc9('0x63')],_0x59710c);};var _0x24a1e2=function(_0x45bcf4){if(!_0x45bcf4||!_0x45bcf4[_0x7dc9('0x64')][_0x7dc9('0x65')]){return'';}for(var _0x4b18e1='(',_0x28e50e=0x0;_0x28e50e<_0x45bcf4[_0x7dc9('0x64')][_0x7dc9('0x65')];_0x28e50e+=0x1){_0x28e50e>0x0&&(_0x4b18e1+='\x20'+_0x45bcf4['operator']+'\x20');_0x4b18e1+=_0x45bcf4[_0x7dc9('0x64')][_0x28e50e][_0x7dc9('0x67')]?_0x24a1e2(_0x45bcf4[_0x7dc9('0x64')][_0x28e50e][_0x7dc9('0x67')]):_0x45bcf4[_0x7dc9('0x64')][_0x28e50e][_0x7dc9('0x68')]+'\x20'+_0x45bcf4[_0x7dc9('0x64')][_0x28e50e][_0x7dc9('0x69')]+(_0x5c9d64(_0x45bcf4[_0x7dc9('0x64')][_0x28e50e][_0x7dc9('0x69')])?'\x20'+_0x45bcf4[_0x7dc9('0x64')][_0x28e50e][_0x7dc9('0x88')]:'');}return _0x4b18e1+')';};var _0x1dc474={'where':{'id':_0x313b41[_0x7dc9('0x43')]['id']}},_0x31121a,_0x454b3a,_0x409a9f,_0x187f17,_0x809ae5;_0x1dc474=_[_0x7dc9('0x3a')]({},_0x1dc474,_0x313b41['options']);return db[_0x7dc9('0x2b')]['find'](_0x1dc474)[_0x7dc9('0x23')](function(_0x56e1ba){if(_0x56e1ba){_0x31121a=_0x56e1ba;return _0x56e1ba['getFields']();}return null;})[_0x7dc9('0x23')](function(_0x342b95){if(_0x342b95){if(!_0x342b95['length']){throw new db[(_0x7dc9('0x6a'))]['ValidationErrorItem'](_0x7dc9('0x89'),0x193);}_0x454b3a=_0x342b95;return db[_0x7dc9('0x8a')]['findAll']({'raw':!![]});}return null;})['then'](function(_0x338c78){if(_0x338c78){_0x409a9f=_[_0x7dc9('0x6c')](_0x338c78,'id');var _0x8ee4f4;var _0x8f887e=squel['select']();_0x8f887e[_0x7dc9('0x6e')](_0x31121a[_0x7dc9('0x6f')]);for(var _0x4e2edf=0x0;_0x4e2edf<_0x454b3a[_0x7dc9('0x65')];_0x4e2edf+=0x1){_0x8ee4f4=_0x454b3a[_0x4e2edf][_0x7dc9('0x70')]?_0x409a9f[_0x454b3a[_0x4e2edf]['MetricId']]['metric']:_0x454b3a[_0x4e2edf][_0x7dc9('0x68')];_0x8ee4f4=_0x454b3a[_0x4e2edf][_0x7dc9('0x72')]?_[_0x7dc9('0x73')](_0x1fbaea[_0x454b3a[_0x4e2edf][_0x7dc9('0x72')]],'%s',_0x8ee4f4):_0x8ee4f4;_0x8ee4f4=_0x454b3a[_0x4e2edf]['format']?_[_0x7dc9('0x73')](_0x6c7fdc[_0x454b3a[_0x4e2edf]['format']],'%s',_0x8ee4f4):_0x8ee4f4;if(_0x454b3a[_0x4e2edf]['groupBy']){_0x8f887e[_0x7dc9('0x67')](_0x8ee4f4);}_0x454b3a[_0x4e2edf][_0x7dc9('0x76')]&&_0x8f887e[_0x7dc9('0x35')](_0x8ee4f4,_0x454b3a[_0x4e2edf][_0x7dc9('0x76')]===_0x7dc9('0x77')?![]:!![]);_0x8f887e[_0x7dc9('0x68')](_0x8ee4f4,_0x454b3a[_0x4e2edf][_0x7dc9('0x78')]||_0x8ee4f4);}if(_0x31121a['joins']){_0x31121a[_0x7dc9('0x79')]=JSON[_0x7dc9('0x7a')](_0x31121a[_0x7dc9('0x79')]);for(var _0x283f96=0x0;_0x283f96<_0x31121a[_0x7dc9('0x79')][_0x7dc9('0x65')];_0x283f96+=0x1){if(_0x31121a[_0x7dc9('0x79')][_0x283f96]['type']&&_[_0x7dc9('0x5f')](_0x4c1c43,_0x31121a[_0x7dc9('0x79')][_0x283f96][_0x7dc9('0x3b')])&&_0x31121a[_0x7dc9('0x79')][_0x283f96][_0x7dc9('0x7e')]&&_0x31121a['joins'][_0x283f96][_0x7dc9('0x7b')]&&_0x31121a['joins'][_0x283f96][_0x7dc9('0x7c')]){_0x8f887e[_0x31121a[_0x7dc9('0x79')][_0x283f96]['type']](_0x31121a[_0x7dc9('0x79')][_0x283f96][_0x7dc9('0x7b')],null,util[_0x7dc9('0x74')](_0x7dc9('0x7d'),_0x31121a[_0x7dc9('0x6f')],_0x31121a[_0x7dc9('0x79')][_0x283f96]['parentKey'],_0x31121a[_0x7dc9('0x79')][_0x283f96][_0x7dc9('0x7b')],_0x31121a['joins'][_0x283f96][_0x7dc9('0x7c')]));}}}if(_0x31121a[_0x7dc9('0x7f')]){_0x31121a['conditions']=JSON['parse'](_0x31121a[_0x7dc9('0x7f')]);_0x8f887e[_0x7dc9('0x37')](_0x24a1e2(_0x31121a[_0x7dc9('0x7f')]['group']));}_0x809ae5=_0x8f887e[_0x7dc9('0x8b')]();_0x8f887e['limit'](_0x299c23);_0x8f887e[_0x7dc9('0x1b')](0x0);logger[_0x7dc9('0x80')](_0x7dc9('0x81'),_0x8f887e['toString']());return dbH[_0x7dc9('0x82')]['query'](_0x8f887e['toString'](),{'type':dbH[_0x7dc9('0x82')][_0x7dc9('0x83')][_0x7dc9('0x84')]});}})[_0x7dc9('0x23')](function(){return{'sql':_0x809ae5[_0x7dc9('0x97')]()};})['then'](respondWithResult(_0x275675,null))['catch'](handleError(_0x275675,null));};
\ No newline at end of file
+var _0x7a54=['options','AnalyticDefaultReport','includeAll','include','show','keys','attributes','create','body','user','role','get','Reports','UserProfileSection','userProfileId','UserProfileResource','catch','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','find','params','right_join','cross_join','SUM(%s)','COUNT(%s)','MIN(%s)','AVG(%s)','GROUP_CONCAT(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','SEC_TO_TIME(%s)','DATE(%s)','ROUND(%s)','includes','IS\x20NULL','IS\x20NOT\x20NULL','IS\x20NOT\x20EMPTY','rules','group','condition','value','Sequelize','ValidationErrorItem','Please\x20insert\x20at\x20least\x20one\x20field','AnalyticMetric','findAll','keyBy','select','from','MetricId','metric','field','function','replace','format','orderBy','DESC','joins','parse','type','parentKey','foreignTable','foreignKey','%s.%s\x20=\x20%s.%s','table','conditions','debug','toString','sequelize','QueryTypes','SELECT','join','left_join','COUNT(DISTINCT\x20%s)','MAX(%s)','HOUR(%s)','UNIX_TIMESTAMP(%s)','IS\x20EMPTY','operator','groupBy','alias','output','web','fullPath','%s-%s.%s','generate','default','AnalyticExtractedReport','cdr','startDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','endDate','info','Run\x20Query:','child_process','../../components/export/','../../files/reports','savename','countTable','COUNT(*)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','getFields','clone','Limited\x20Query:','eml-format','rimraf','zip-dir','request-promise','moment','mustache','util','path','sox','to-csv','fs-extra','squel','crypto','desk.js','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','dbH','sendStatus','status','end','json','limit','count','offset','Content-Range','apply','save','then','destroy','DefaultReports','error','stack','name','index','map','fieldName','model','query','filters','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','filter','VIRTUAL','merge'];(function(_0x59eefb,_0x2151ce){var _0x1a49e8=function(_0x5a758c){while(--_0x5a758c){_0x59eefb['push'](_0x59eefb['shift']());}};_0x1a49e8(++_0x2151ce);}(_0x7a54,0x106));var _0x47a5=function(_0x578082,_0x508bb8){_0x578082=_0x578082-0x0;var _0x528ccc=_0x7a54[_0x578082];return _0x528ccc;};'use strict';var emlformat=require(_0x47a5('0x0'));var rimraf=require(_0x47a5('0x1'));var zipdir=require(_0x47a5('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x47a5('0x3'));var moment=require(_0x47a5('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x47a5('0x5'));var util=require(_0x47a5('0x6'));var path=require(_0x47a5('0x7'));var sox=require(_0x47a5('0x8'));var csv=require(_0x47a5('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x47a5('0xa'));var _=require('lodash');var squel=require(_0x47a5('0xb'));var crypto=require(_0x47a5('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x47a5('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x47a5('0xe'));var authService=require(_0x47a5('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0x47a5('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x47a5('0x11'));var utils=require(_0x47a5('0x12'));var config=require(_0x47a5('0x13'));var licenseUtil=require(_0x47a5('0x14'));var db=require(_0x47a5('0x15'))['db'];var dbH=require(_0x47a5('0x15'))[_0x47a5('0x16')];function respondWithStatusCode(_0x5beb89,_0x44bd3e){_0x44bd3e=_0x44bd3e||0xcc;return function(_0x221b54){if(_0x221b54){return _0x5beb89[_0x47a5('0x17')](_0x44bd3e);}return _0x5beb89[_0x47a5('0x18')](_0x44bd3e)[_0x47a5('0x19')]();};}function respondWithResult(_0x620ee9,_0x3c6c46){_0x3c6c46=_0x3c6c46||0xc8;return function(_0x190faa){if(_0x190faa){return _0x620ee9['status'](_0x3c6c46)[_0x47a5('0x1a')](_0x190faa);}};}function respondWithFilteredResult(_0x11faf5,_0x3b001e){return function(_0x2a2cbb){if(_0x2a2cbb){var _0x1ef44c=typeof _0x3b001e['offset']==='undefined'&&typeof _0x3b001e[_0x47a5('0x1b')]==='undefined';var _0x5247fd=_0x2a2cbb[_0x47a5('0x1c')];var _0xaf70a6=_0x1ef44c?0x0:_0x3b001e[_0x47a5('0x1d')];var _0x1ef371=_0x1ef44c?_0x2a2cbb[_0x47a5('0x1c')]:_0x3b001e[_0x47a5('0x1d')]+_0x3b001e[_0x47a5('0x1b')];var _0xe3c618;if(_0x1ef371>=_0x5247fd){_0x1ef371=_0x5247fd;_0xe3c618=0xc8;}else{_0xe3c618=0xce;}_0x11faf5[_0x47a5('0x18')](_0xe3c618);return _0x11faf5['set'](_0x47a5('0x1e'),_0xaf70a6+'-'+_0x1ef371+'/'+_0x5247fd)[_0x47a5('0x1a')](_0x2a2cbb);}return null;};}function patchUpdates(_0x47cf3c){return function(_0x2b0360){try{jsonpatch[_0x47a5('0x1f')](_0x2b0360,_0x47cf3c,!![]);}catch(_0x36874d){return BPromise['reject'](_0x36874d);}return _0x2b0360[_0x47a5('0x20')]();};}function saveUpdates(_0x2f142b,_0x23db32){return function(_0x7a9f9e){if(_0x7a9f9e){return _0x7a9f9e['update'](_0x2f142b)[_0x47a5('0x21')](function(_0x385687){return _0x385687;});}return null;};}function removeEntity(_0x513981,_0x28747d){return function(_0xc4cd63){if(_0xc4cd63){return _0xc4cd63[_0x47a5('0x22')]()[_0x47a5('0x21')](function(){var _0x3abd6a=_0xc4cd63['get']({'plain':!![]});var _0x53078a=_0x47a5('0x23');return db['UserProfileResource'][_0x47a5('0x22')]({'where':{'type':_0x53078a,'resourceId':_0x3abd6a['id']}})['then'](function(){return _0xc4cd63;});})[_0x47a5('0x21')](function(){_0x513981[_0x47a5('0x18')](0xcc)[_0x47a5('0x19')]();});}};}function handleEntityNotFound(_0x1dac65,_0x21f296){return function(_0x3ba0b7){if(!_0x3ba0b7){_0x1dac65[_0x47a5('0x17')](0x194);}return _0x3ba0b7;};}function handleError(_0x136b14,_0x16631f){_0x16631f=_0x16631f||0x1f4;return function(_0x361bfa){logger[_0x47a5('0x24')](_0x361bfa[_0x47a5('0x25')]);if(_0x361bfa[_0x47a5('0x26')]){delete _0x361bfa['name'];}_0x136b14[_0x47a5('0x18')](_0x16631f)['send'](_0x361bfa);};}exports[_0x47a5('0x27')]=function(_0x9ac908,_0x16901f){var _0x4d6b57={},_0x256650={},_0x625952={'count':0x0,'rows':[]};var _0x39b50b=_[_0x47a5('0x28')](db['AnalyticDefaultReport']['rawAttributes'],function(_0x6f9a12){return{'name':_0x6f9a12[_0x47a5('0x29')],'type':_0x6f9a12['type']['key']};});_0x256650[_0x47a5('0x2a')]=_[_0x47a5('0x28')](_0x39b50b,'name');_0x256650[_0x47a5('0x2b')]=_['keys'](_0x9ac908[_0x47a5('0x2b')]);_0x256650[_0x47a5('0x2c')]=_['intersection'](_0x256650['model'],_0x256650[_0x47a5('0x2b')]);_0x4d6b57['attributes']=_[_0x47a5('0x2d')](_0x256650[_0x47a5('0x2a')],qs[_0x47a5('0x2e')](_0x9ac908['query'][_0x47a5('0x2e')]));_0x4d6b57['attributes']=_0x4d6b57['attributes'][_0x47a5('0x2f')]?_0x4d6b57['attributes']:_0x256650[_0x47a5('0x2a')];if(!_0x9ac908['query'][_0x47a5('0x30')](_0x47a5('0x31'))){_0x4d6b57[_0x47a5('0x1b')]=qs[_0x47a5('0x1b')](_0x9ac908[_0x47a5('0x2b')][_0x47a5('0x1b')]);_0x4d6b57[_0x47a5('0x1d')]=qs[_0x47a5('0x1d')](_0x9ac908[_0x47a5('0x2b')]['offset']);}_0x4d6b57[_0x47a5('0x32')]=qs[_0x47a5('0x33')](_0x9ac908['query'][_0x47a5('0x33')]);_0x4d6b57[_0x47a5('0x34')]=qs[_0x47a5('0x2c')](_['pick'](_0x9ac908[_0x47a5('0x2b')],_0x256650[_0x47a5('0x2c')]),_0x39b50b);if(_0x9ac908['query'][_0x47a5('0x35')]){_0x4d6b57[_0x47a5('0x34')]=_['merge'](_0x4d6b57['where'],{'$or':_['map'](_0x39b50b,function(_0x12d9f2){if(_0x12d9f2['type']!==_0x47a5('0x36')){var _0x1f9631={};_0x1f9631[_0x12d9f2[_0x47a5('0x26')]]={'$like':'%'+_0x9ac908[_0x47a5('0x2b')][_0x47a5('0x35')]+'%'};return _0x1f9631;}})});}_0x4d6b57=_[_0x47a5('0x37')]({},_0x4d6b57,_0x9ac908[_0x47a5('0x38')]);var _0x1f3d01={'where':_0x4d6b57[_0x47a5('0x34')]};return db[_0x47a5('0x39')][_0x47a5('0x1c')](_0x1f3d01)[_0x47a5('0x21')](function(_0x23d6d8){_0x625952['count']=_0x23d6d8;if(_0x9ac908[_0x47a5('0x2b')][_0x47a5('0x3a')]){_0x4d6b57[_0x47a5('0x3b')]=[{'all':!![]}];}return db[_0x47a5('0x39')]['findAll'](_0x4d6b57);})[_0x47a5('0x21')](function(_0x528ef3){_0x625952['rows']=_0x528ef3;return _0x625952;})['then'](respondWithFilteredResult(_0x16901f,_0x4d6b57))['catch'](handleError(_0x16901f,null));};exports[_0x47a5('0x3c')]=function(_0x5ec4e5,_0x2bb502){var _0x3a740b={'raw':!![],'where':{'id':_0x5ec4e5['params']['id']}},_0x448610={};_0x448610[_0x47a5('0x2a')]=_[_0x47a5('0x3d')](db['AnalyticDefaultReport']['rawAttributes']);_0x448610[_0x47a5('0x2b')]=_['keys'](_0x5ec4e5[_0x47a5('0x2b')]);_0x448610[_0x47a5('0x2c')]=_[_0x47a5('0x2d')](_0x448610[_0x47a5('0x2a')],_0x448610[_0x47a5('0x2b')]);_0x3a740b[_0x47a5('0x3e')]=_[_0x47a5('0x2d')](_0x448610[_0x47a5('0x2a')],qs[_0x47a5('0x2e')](_0x5ec4e5[_0x47a5('0x2b')][_0x47a5('0x2e')]));_0x3a740b[_0x47a5('0x3e')]=_0x3a740b[_0x47a5('0x3e')][_0x47a5('0x2f')]?_0x3a740b[_0x47a5('0x3e')]:_0x448610[_0x47a5('0x2a')];if(_0x5ec4e5['query'][_0x47a5('0x3a')]){_0x3a740b[_0x47a5('0x3b')]=[{'all':!![]}];}_0x3a740b=_['merge']({},_0x3a740b,_0x5ec4e5['options']);return db[_0x47a5('0x39')]['find'](_0x3a740b)[_0x47a5('0x21')](handleEntityNotFound(_0x2bb502,null))[_0x47a5('0x21')](respondWithResult(_0x2bb502,null))['catch'](handleError(_0x2bb502,null));};exports['create']=function(_0x3d85cc,_0x52d409){return db[_0x47a5('0x39')][_0x47a5('0x3f')](_0x3d85cc[_0x47a5('0x40')],{})[_0x47a5('0x21')](function(_0x44fe8a){var _0x26acd2=_0x3d85cc[_0x47a5('0x41')]['get']({'plain':!![]});if(!_0x26acd2)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x26acd2[_0x47a5('0x42')]===_0x47a5('0x41')){var _0x1163e3=_0x44fe8a[_0x47a5('0x43')]({'plain':!![]});var _0x2c7020=_0x47a5('0x44');return db[_0x47a5('0x45')]['find']({'where':{'name':_0x2c7020,'userProfileId':_0x26acd2[_0x47a5('0x46')]},'raw':!![]})[_0x47a5('0x21')](function(_0x5f6a){if(_0x5f6a&&_0x5f6a['autoAssociation']===0x0){return db[_0x47a5('0x47')]['create']({'name':_0x1163e3[_0x47a5('0x26')],'resourceId':_0x1163e3['id'],'type':_0x47a5('0x23'),'sectionId':_0x5f6a['id']},{})[_0x47a5('0x21')](function(){return _0x44fe8a;});}else{return _0x44fe8a;}})[_0x47a5('0x48')](function(_0x588551){logger[_0x47a5('0x24')](_0x47a5('0x49'),_0x588551);throw _0x588551;});}return _0x44fe8a;})[_0x47a5('0x21')](respondWithResult(_0x52d409,0xc9))[_0x47a5('0x48')](handleError(_0x52d409,null));};exports[_0x47a5('0x4a')]=function(_0x6a53b3,_0x24e9f4){if(_0x6a53b3['body']['id']){delete _0x6a53b3[_0x47a5('0x40')]['id'];}return db[_0x47a5('0x39')][_0x47a5('0x4b')]({'where':{'id':_0x6a53b3[_0x47a5('0x4c')]['id']}})[_0x47a5('0x21')](handleEntityNotFound(_0x24e9f4,null))[_0x47a5('0x21')](saveUpdates(_0x6a53b3['body'],null))[_0x47a5('0x21')](respondWithResult(_0x24e9f4,null))[_0x47a5('0x48')](handleError(_0x24e9f4,null));};exports[_0x47a5('0x22')]=function(_0x53871e,_0x4c5ed){return db[_0x47a5('0x39')][_0x47a5('0x4b')]({'where':{'id':_0x53871e['params']['id']}})['then'](handleEntityNotFound(_0x4c5ed,null))[_0x47a5('0x21')](removeEntity(_0x4c5ed,null))[_0x47a5('0x48')](handleError(_0x4c5ed,null));};exports['preview']=function(_0x4cf792,_0x6d6b2b){var _0x4d6a82=0xa;var _0x16bb8a=['join','left_join',_0x47a5('0x4d'),_0x47a5('0x4e')];var _0x53eedf={'SUM':_0x47a5('0x4f'),'COUNT':_0x47a5('0x50'),'COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':'MAX(%s)','MIN':_0x47a5('0x51'),'AVG':_0x47a5('0x52'),'GROUP_CONCAT':_0x47a5('0x53'),'GROUP_CONCAT ASC':_0x47a5('0x54'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x199621={'SEC_TO_TIME':_0x47a5('0x55'),'DATE':_0x47a5('0x56'),'HOUR':'HOUR(%s)','ROUND':_0x47a5('0x57'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x485e3c=function(_0x470da6){return!_[_0x47a5('0x58')]([_0x47a5('0x59'),_0x47a5('0x5a'),'IS\x20EMPTY',_0x47a5('0x5b')],_0x470da6);};var _0x5d1550=function(_0x5cbe97){if(!_0x5cbe97||!_0x5cbe97['rules']['length']){return'';}for(var _0x212d92='(',_0x6cd4ea=0x0;_0x6cd4ea<_0x5cbe97[_0x47a5('0x5c')]['length'];_0x6cd4ea+=0x1){_0x6cd4ea>0x0&&(_0x212d92+='\x20'+_0x5cbe97['operator']+'\x20');_0x212d92+=_0x5cbe97[_0x47a5('0x5c')][_0x6cd4ea][_0x47a5('0x5d')]?_0x5d1550(_0x5cbe97[_0x47a5('0x5c')][_0x6cd4ea][_0x47a5('0x5d')]):_0x5cbe97[_0x47a5('0x5c')][_0x6cd4ea]['field']+'\x20'+_0x5cbe97[_0x47a5('0x5c')][_0x6cd4ea]['condition']+(_0x485e3c(_0x5cbe97[_0x47a5('0x5c')][_0x6cd4ea][_0x47a5('0x5e')])?'\x20'+_0x5cbe97['rules'][_0x6cd4ea][_0x47a5('0x5f')]:'');}return _0x212d92+')';};var _0x345104={'where':{'id':_0x4cf792[_0x47a5('0x4c')]['id']}},_0x132854,_0x3e8274,_0x2d6494,_0x215634,_0x35cca8;_0x345104=_['merge']({},_0x345104,_0x4cf792[_0x47a5('0x38')]);return db[_0x47a5('0x39')][_0x47a5('0x4b')](_0x345104)[_0x47a5('0x21')](function(_0x396cb0){if(_0x396cb0){_0x132854=_0x396cb0;return _0x396cb0['getFields']();}return null;})[_0x47a5('0x21')](function(_0xdfcecc){if(_0xdfcecc){if(!_0xdfcecc[_0x47a5('0x2f')]){throw new db[(_0x47a5('0x60'))][(_0x47a5('0x61'))](_0x47a5('0x62'),0x193);}_0x3e8274=_0xdfcecc;return db[_0x47a5('0x63')][_0x47a5('0x64')]({'raw':!![]});}return null;})[_0x47a5('0x21')](function(_0x44cb90){if(_0x44cb90){_0x2d6494=_[_0x47a5('0x65')](_0x44cb90,'id');var _0x44fda9;var _0x3c0006=squel[_0x47a5('0x66')]();_0x3c0006[_0x47a5('0x67')](_0x132854['table']);for(var _0x42dd7d=0x0;_0x42dd7d<_0x3e8274[_0x47a5('0x2f')];_0x42dd7d+=0x1){_0x44fda9=_0x3e8274[_0x42dd7d][_0x47a5('0x68')]?_0x2d6494[_0x3e8274[_0x42dd7d]['MetricId']][_0x47a5('0x69')]:_0x3e8274[_0x42dd7d][_0x47a5('0x6a')];_0x44fda9=_0x3e8274[_0x42dd7d][_0x47a5('0x6b')]?_[_0x47a5('0x6c')](_0x53eedf[_0x3e8274[_0x42dd7d]['function']],'%s',_0x44fda9):_0x44fda9;_0x44fda9=_0x3e8274[_0x42dd7d][_0x47a5('0x6d')]?_['replace'](_0x199621[_0x3e8274[_0x42dd7d][_0x47a5('0x6d')]],'%s',_0x44fda9):_0x44fda9;if(_0x3e8274[_0x42dd7d]['groupBy']){_0x3c0006[_0x47a5('0x5d')](_0x44fda9);}_0x3e8274[_0x42dd7d]['orderBy']&&_0x3c0006[_0x47a5('0x32')](_0x44fda9,_0x3e8274[_0x42dd7d][_0x47a5('0x6e')]===_0x47a5('0x6f')?![]:!![]);_0x3c0006['field'](_0x44fda9,_0x3e8274[_0x42dd7d]['alias']||_0x44fda9);}if(_0x132854['joins']){_0x132854[_0x47a5('0x70')]=JSON[_0x47a5('0x71')](_0x132854[_0x47a5('0x70')]);for(var _0x117510=0x0;_0x117510<_0x132854['joins'][_0x47a5('0x2f')];_0x117510+=0x1){if(_0x132854[_0x47a5('0x70')][_0x117510][_0x47a5('0x72')]&&_[_0x47a5('0x58')](_0x16bb8a,_0x132854[_0x47a5('0x70')][_0x117510][_0x47a5('0x72')])&&_0x132854[_0x47a5('0x70')][_0x117510][_0x47a5('0x73')]&&_0x132854[_0x47a5('0x70')][_0x117510][_0x47a5('0x74')]&&_0x132854[_0x47a5('0x70')][_0x117510][_0x47a5('0x75')]){_0x3c0006[_0x132854['joins'][_0x117510][_0x47a5('0x72')]](_0x132854['joins'][_0x117510][_0x47a5('0x74')],null,util[_0x47a5('0x6d')](_0x47a5('0x76'),_0x132854[_0x47a5('0x77')],_0x132854[_0x47a5('0x70')][_0x117510][_0x47a5('0x73')],_0x132854[_0x47a5('0x70')][_0x117510][_0x47a5('0x74')],_0x132854[_0x47a5('0x70')][_0x117510][_0x47a5('0x75')]));}}}if(_0x132854[_0x47a5('0x78')]){_0x132854[_0x47a5('0x78')]=JSON[_0x47a5('0x71')](_0x132854[_0x47a5('0x78')]);_0x3c0006[_0x47a5('0x34')](_0x5d1550(_0x132854['conditions']['group']));}_0x35cca8=_0x3c0006['clone']();_0x3c0006['limit'](_0x4d6a82);_0x3c0006[_0x47a5('0x1d')](0x0);logger[_0x47a5('0x79')]('Limited\x20Query:',_0x3c0006[_0x47a5('0x7a')]());return dbH[_0x47a5('0x7b')][_0x47a5('0x2b')](_0x3c0006[_0x47a5('0x7a')](),{'type':dbH[_0x47a5('0x7b')][_0x47a5('0x7c')][_0x47a5('0x7d')]});}})[_0x47a5('0x21')](respondWithResult(_0x6d6b2b,null))[_0x47a5('0x48')](handleError(_0x6d6b2b,null));};function runReport(_0x1ffe3c,_0x24a6c1,_0x5e5f16){var _0x18fa31=_0x24a6c1[_0x47a5('0x26')];var _0x420671=0xa;var _0x4f35ff=[_0x47a5('0x7e'),_0x47a5('0x7f'),_0x47a5('0x4d'),'cross_join'];var _0x19dc8c={'SUM':'SUM(%s)','COUNT':'COUNT(%s)','COUNT DISTINCT':_0x47a5('0x80'),'MAX':_0x47a5('0x81'),'MIN':_0x47a5('0x51'),'AVG':_0x47a5('0x52'),'GROUP_CONCAT':_0x47a5('0x53'),'GROUP_CONCAT ASC':_0x47a5('0x54'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x592322={'SEC_TO_TIME':_0x47a5('0x55'),'DATE':'DATE(%s)','HOUR':_0x47a5('0x82'),'ROUND':_0x47a5('0x57'),'UNIX_TIMESTAMP':_0x47a5('0x83')};var _0xb16bdd=function(_0x53ea2b){return!_[_0x47a5('0x58')](['IS\x20NULL','IS\x20NOT\x20NULL',_0x47a5('0x84'),_0x47a5('0x5b')],_0x53ea2b);};var _0x5b91f7=function(_0x1926bd){if(!_0x1926bd||!_0x1926bd[_0x47a5('0x5c')][_0x47a5('0x2f')]){return'';}for(var _0x4c25ec='(',_0x280372=0x0;_0x280372<_0x1926bd['rules'][_0x47a5('0x2f')];_0x280372+=0x1){_0x280372>0x0&&(_0x4c25ec+='\x20'+_0x1926bd[_0x47a5('0x85')]+'\x20');_0x4c25ec+=_0x1926bd[_0x47a5('0x5c')][_0x280372]['group']?_0x5b91f7(_0x1926bd[_0x47a5('0x5c')][_0x280372][_0x47a5('0x5d')]):_0x1926bd[_0x47a5('0x5c')][_0x280372]['field']+'\x20'+_0x1926bd[_0x47a5('0x5c')][_0x280372]['condition']+(_0xb16bdd(_0x1926bd[_0x47a5('0x5c')][_0x280372]['condition'])?'\x20'+_0x1926bd[_0x47a5('0x5c')][_0x280372][_0x47a5('0x5f')]:'');}return _0x4c25ec+')';};var _0x20a742={'where':{'id':_0x1ffe3c['id']}},_0x211fbf,_0x51738b,_0x42fcce,_0x2ae130,_0x23c393;_0x20a742=_[_0x47a5('0x37')]({},_0x20a742,_0x5e5f16);return db[_0x47a5('0x39')]['find'](_0x20a742)['then'](function(_0x569550){if(_0x569550){_0x211fbf=_0x569550;return _0x569550['getFields']();}return null;})[_0x47a5('0x21')](function(_0xa8809a){if(_0xa8809a){if(!_0xa8809a[_0x47a5('0x2f')]){throw new db['Sequelize'][(_0x47a5('0x61'))](_0x47a5('0x62'),0x193);}_0x51738b=_0xa8809a;return db['AnalyticMetric'][_0x47a5('0x64')]({'raw':!![]});}return null;})[_0x47a5('0x21')](function(_0x19acfa){if(_0x19acfa){_0x42fcce=_[_0x47a5('0x65')](_0x19acfa,'id');var _0x58dacd;var _0x4b5353=squel[_0x47a5('0x66')]();_0x4b5353[_0x47a5('0x67')](_0x211fbf['table']);for(var _0x27d422=0x0;_0x27d422<_0x51738b[_0x47a5('0x2f')];_0x27d422+=0x1){_0x58dacd=_0x51738b[_0x27d422]['MetricId']?_0x42fcce[_0x51738b[_0x27d422][_0x47a5('0x68')]][_0x47a5('0x69')]:_0x51738b[_0x27d422][_0x47a5('0x6a')];_0x58dacd=_0x51738b[_0x27d422]['function']?_[_0x47a5('0x6c')](_0x19dc8c[_0x51738b[_0x27d422]['function']],'%s',_0x58dacd):_0x58dacd;_0x58dacd=_0x51738b[_0x27d422][_0x47a5('0x6d')]?_['replace'](_0x592322[_0x51738b[_0x27d422][_0x47a5('0x6d')]],'%s',_0x58dacd):_0x58dacd;if(_0x51738b[_0x27d422][_0x47a5('0x86')]){_0x4b5353['group'](_0x58dacd);}_0x51738b[_0x27d422][_0x47a5('0x6e')]&&_0x4b5353['order'](_0x58dacd,_0x51738b[_0x27d422][_0x47a5('0x6e')]===_0x47a5('0x6f')?![]:!![]);_0x4b5353[_0x47a5('0x6a')](_0x58dacd,_0x51738b[_0x27d422][_0x47a5('0x87')]||_0x58dacd);}if(_0x211fbf['joins']){_0x211fbf[_0x47a5('0x70')]=JSON['parse'](_0x211fbf['joins']);for(var _0x2bb2df=0x0;_0x2bb2df<_0x211fbf[_0x47a5('0x70')][_0x47a5('0x2f')];_0x2bb2df+=0x1){if(_0x211fbf[_0x47a5('0x70')][_0x2bb2df][_0x47a5('0x72')]&&_['includes'](_0x4f35ff,_0x211fbf[_0x47a5('0x70')][_0x2bb2df][_0x47a5('0x72')])&&_0x211fbf[_0x47a5('0x70')][_0x2bb2df][_0x47a5('0x73')]&&_0x211fbf['joins'][_0x2bb2df][_0x47a5('0x74')]&&_0x211fbf['joins'][_0x2bb2df][_0x47a5('0x75')]){_0x4b5353[_0x211fbf[_0x47a5('0x70')][_0x2bb2df][_0x47a5('0x72')]](_0x211fbf[_0x47a5('0x70')][_0x2bb2df][_0x47a5('0x74')],null,util[_0x47a5('0x6d')](_0x47a5('0x76'),_0x211fbf[_0x47a5('0x77')],_0x211fbf[_0x47a5('0x70')][_0x2bb2df]['parentKey'],_0x211fbf[_0x47a5('0x70')][_0x2bb2df][_0x47a5('0x74')],_0x211fbf['joins'][_0x2bb2df][_0x47a5('0x75')]));}}}if(_0x211fbf[_0x47a5('0x78')]){_0x211fbf[_0x47a5('0x78')]=JSON['parse'](_0x211fbf['conditions']);_0x4b5353[_0x47a5('0x34')](_0x5b91f7(_0x211fbf[_0x47a5('0x78')]['group']));}_0x23c393=_0x4b5353['clone']();_0x4b5353[_0x47a5('0x1b')](_0x420671);_0x4b5353[_0x47a5('0x1d')](0x0);return;}})['then'](function(){if(_0x24a6c1[_0x47a5('0x88')]===_0x47a5('0x89')){return null;}var _0x4c9e6a=_[_0x47a5('0x37')](_0x24a6c1,{'name':_0x24a6c1[_0x47a5('0x8a')]||_0x24a6c1[_0x47a5('0x26')]||_0x211fbf[_0x47a5('0x26')],'basename':_0x18fa31,'savename':util[_0x47a5('0x6d')](_0x47a5('0x8b'),_0x24a6c1['name']||_0x211fbf['name'],require('randomstring')[_0x47a5('0x8c')](0x4),_0x24a6c1[_0x47a5('0x88')]||'csv'),'reportId':_0x211fbf['id'],'reportType':_0x47a5('0x8d')});return db[_0x47a5('0x8e')][_0x47a5('0x3f')](_0x4c9e6a,{'raw':!![]});})[_0x47a5('0x21')](function(_0xcdbfd7){if(_0x211fbf['table']===_0x47a5('0x8f')){_0x23c393['where'](_0x211fbf['table']+'.calldate\x20BETWEEN\x20?\x20AND\x20?',_0x24a6c1[_0x47a5('0x90')],_0x24a6c1['endDate']);}else{_0x23c393[_0x47a5('0x34')](_0x211fbf[_0x47a5('0x77')]+_0x47a5('0x91'),_0x24a6c1['startDate'],_0x24a6c1[_0x47a5('0x92')]);}if(_0xcdbfd7){logger[_0x47a5('0x93')](_0x47a5('0x94'),_0x23c393[_0x47a5('0x7a')]());require(_0x47a5('0x95'))['fork'](path[_0x47a5('0x7e')](__dirname,_0x47a5('0x96'),_0xcdbfd7['output']),[_0xcdbfd7['id'],_0x23c393[_0x47a5('0x7a')](),path[_0x47a5('0x7e')](__dirname,_0x47a5('0x97'),_0xcdbfd7[_0x47a5('0x98')]),_0x18fa31]);return _0xcdbfd7;}else{var _0x3c117a=squel[_0x47a5('0x66')]();_0x3c117a['from']('('+_0x23c393[_0x47a5('0x7a')]()+')',_0x47a5('0x99'));_0x3c117a['field'](_0x47a5('0x9a'),_0x47a5('0x1c'));_0x23c393[_0x47a5('0x1b')](_0x24a6c1[_0x47a5('0x1b')]||_0x420671);_0x23c393['offset'](_0x24a6c1['offset']||0x0);return dbH['sequelize']['query'](_0x3c117a[_0x47a5('0x7a')](),{'type':dbH[_0x47a5('0x7b')][_0x47a5('0x7c')][_0x47a5('0x7d')]})[_0x47a5('0x21')](function(_0x6bc37b){if(!_0x6bc37b[_0x47a5('0x2f')]){_0x2ae130=0x0;}else{_0x2ae130=_0x6bc37b[0x0][_0x47a5('0x1c')]||0x0;}return dbH['sequelize'][_0x47a5('0x2b')](_0x23c393[_0x47a5('0x7a')](),{'type':dbH[_0x47a5('0x7b')][_0x47a5('0x7c')]['SELECT']});})['then'](function(_0x3770ae){return{'rows':_0x3770ae||[],'count':_0x2ae130};});}});}exports['run']=function(_0x4cb8e4,_0x1b6a5c){return runReport(_0x4cb8e4[_0x47a5('0x4c')],_0x4cb8e4['query'],_0x4cb8e4[_0x47a5('0x38')])[_0x47a5('0x21')](respondWithResult(_0x1b6a5c,null))[_0x47a5('0x48')](handleError(_0x1b6a5c,null));};exports['runReport']=runReport;exports[_0x47a5('0x2b')]=function(_0xee23c7,_0x48a491){var _0x1172fd=0xa;var _0x280b7b=[_0x47a5('0x7e'),_0x47a5('0x7f'),_0x47a5('0x4d'),_0x47a5('0x4e')];var _0x482c87={'SUM':_0x47a5('0x4f'),'COUNT':'COUNT(%s)','COUNT DISTINCT':_0x47a5('0x80'),'MAX':_0x47a5('0x81'),'MIN':_0x47a5('0x51'),'AVG':_0x47a5('0x52'),'GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':_0x47a5('0x54'),'GROUP_CONCAT DESC':_0x47a5('0x9b')};var _0x151540={'SEC_TO_TIME':_0x47a5('0x55'),'DATE':_0x47a5('0x56'),'HOUR':_0x47a5('0x82'),'ROUND':_0x47a5('0x57'),'UNIX_TIMESTAMP':_0x47a5('0x83')};var _0x1b3e82=function(_0xa2045c){return!_[_0x47a5('0x58')]([_0x47a5('0x59'),'IS\x20NOT\x20NULL',_0x47a5('0x84'),_0x47a5('0x5b')],_0xa2045c);};var _0x591bde=function(_0x55d955){if(!_0x55d955||!_0x55d955[_0x47a5('0x5c')][_0x47a5('0x2f')]){return'';}for(var _0x2ccf21='(',_0x2ff467=0x0;_0x2ff467<_0x55d955['rules'][_0x47a5('0x2f')];_0x2ff467+=0x1){_0x2ff467>0x0&&(_0x2ccf21+='\x20'+_0x55d955[_0x47a5('0x85')]+'\x20');_0x2ccf21+=_0x55d955[_0x47a5('0x5c')][_0x2ff467][_0x47a5('0x5d')]?_0x591bde(_0x55d955[_0x47a5('0x5c')][_0x2ff467][_0x47a5('0x5d')]):_0x55d955[_0x47a5('0x5c')][_0x2ff467]['field']+'\x20'+_0x55d955['rules'][_0x2ff467][_0x47a5('0x5e')]+(_0x1b3e82(_0x55d955['rules'][_0x2ff467][_0x47a5('0x5e')])?'\x20'+_0x55d955['rules'][_0x2ff467][_0x47a5('0x5f')]:'');}return _0x2ccf21+')';};var _0x8b4354={'where':{'id':_0xee23c7[_0x47a5('0x4c')]['id']}},_0x134c1a,_0x2bc7ae,_0x49cb8c,_0x220557,_0x11f07b;_0x8b4354=_['merge']({},_0x8b4354,_0xee23c7['options']);return db[_0x47a5('0x39')][_0x47a5('0x4b')](_0x8b4354)[_0x47a5('0x21')](function(_0xfccf9c){if(_0xfccf9c){_0x134c1a=_0xfccf9c;return _0xfccf9c[_0x47a5('0x9c')]();}return null;})[_0x47a5('0x21')](function(_0x1c0323){if(_0x1c0323){if(!_0x1c0323[_0x47a5('0x2f')]){throw new db['Sequelize'][(_0x47a5('0x61'))]('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x2bc7ae=_0x1c0323;return db[_0x47a5('0x63')][_0x47a5('0x64')]({'raw':!![]});}return null;})['then'](function(_0x48d4cf){if(_0x48d4cf){_0x49cb8c=_[_0x47a5('0x65')](_0x48d4cf,'id');var _0x41d2da;var _0x530387=squel[_0x47a5('0x66')]();_0x530387[_0x47a5('0x67')](_0x134c1a[_0x47a5('0x77')]);for(var _0x44567e=0x0;_0x44567e<_0x2bc7ae['length'];_0x44567e+=0x1){_0x41d2da=_0x2bc7ae[_0x44567e][_0x47a5('0x68')]?_0x49cb8c[_0x2bc7ae[_0x44567e]['MetricId']]['metric']:_0x2bc7ae[_0x44567e]['field'];_0x41d2da=_0x2bc7ae[_0x44567e][_0x47a5('0x6b')]?_['replace'](_0x482c87[_0x2bc7ae[_0x44567e][_0x47a5('0x6b')]],'%s',_0x41d2da):_0x41d2da;_0x41d2da=_0x2bc7ae[_0x44567e][_0x47a5('0x6d')]?_[_0x47a5('0x6c')](_0x151540[_0x2bc7ae[_0x44567e][_0x47a5('0x6d')]],'%s',_0x41d2da):_0x41d2da;if(_0x2bc7ae[_0x44567e][_0x47a5('0x86')]){_0x530387[_0x47a5('0x5d')](_0x41d2da);}_0x2bc7ae[_0x44567e][_0x47a5('0x6e')]&&_0x530387[_0x47a5('0x32')](_0x41d2da,_0x2bc7ae[_0x44567e][_0x47a5('0x6e')]===_0x47a5('0x6f')?![]:!![]);_0x530387[_0x47a5('0x6a')](_0x41d2da,_0x2bc7ae[_0x44567e][_0x47a5('0x87')]||_0x41d2da);}if(_0x134c1a[_0x47a5('0x70')]){_0x134c1a[_0x47a5('0x70')]=JSON[_0x47a5('0x71')](_0x134c1a['joins']);for(var _0xdd95c8=0x0;_0xdd95c8<_0x134c1a[_0x47a5('0x70')][_0x47a5('0x2f')];_0xdd95c8+=0x1){if(_0x134c1a[_0x47a5('0x70')][_0xdd95c8]['type']&&_[_0x47a5('0x58')](_0x280b7b,_0x134c1a['joins'][_0xdd95c8][_0x47a5('0x72')])&&_0x134c1a['joins'][_0xdd95c8][_0x47a5('0x73')]&&_0x134c1a[_0x47a5('0x70')][_0xdd95c8][_0x47a5('0x74')]&&_0x134c1a['joins'][_0xdd95c8][_0x47a5('0x75')]){_0x530387[_0x134c1a[_0x47a5('0x70')][_0xdd95c8][_0x47a5('0x72')]](_0x134c1a['joins'][_0xdd95c8]['foreignTable'],null,util[_0x47a5('0x6d')](_0x47a5('0x76'),_0x134c1a[_0x47a5('0x77')],_0x134c1a[_0x47a5('0x70')][_0xdd95c8][_0x47a5('0x73')],_0x134c1a['joins'][_0xdd95c8][_0x47a5('0x74')],_0x134c1a['joins'][_0xdd95c8][_0x47a5('0x75')]));}}}if(_0x134c1a[_0x47a5('0x78')]){_0x134c1a[_0x47a5('0x78')]=JSON[_0x47a5('0x71')](_0x134c1a['conditions']);_0x530387['where'](_0x591bde(_0x134c1a[_0x47a5('0x78')][_0x47a5('0x5d')]));}_0x11f07b=_0x530387[_0x47a5('0x9d')]();_0x530387[_0x47a5('0x1b')](_0x1172fd);_0x530387[_0x47a5('0x1d')](0x0);logger[_0x47a5('0x79')](_0x47a5('0x9e'),_0x530387[_0x47a5('0x7a')]());return dbH[_0x47a5('0x7b')]['query'](_0x530387['toString'](),{'type':dbH[_0x47a5('0x7b')]['QueryTypes'][_0x47a5('0x7d')]});}})[_0x47a5('0x21')](function(){return{'sql':_0x11f07b[_0x47a5('0x7a')]()};})['then'](respondWithResult(_0x48a491,null))[_0x47a5('0x48')](handleError(_0x48a491,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4905=['moment','bluebird','request-promise','rimraf','../../config/environment','./analyticDefaultReport.attributes','exports','AnalyticDefaultReport','lodash','util','../../config/logger','api'];(function(_0x4f966a,_0x22d73b){var _0x31993d=function(_0x4d0891){while(--_0x4d0891){_0x4f966a['push'](_0x4f966a['shift']());}};_0x31993d(++_0x22d73b);}(_0x4905,0x80));var _0x5490=function(_0x1e4f2f,_0x35edfa){_0x1e4f2f=_0x1e4f2f-0x0;var _0xccea89=_0x4905[_0x1e4f2f];return _0xccea89;};'use strict';var _=require(_0x5490('0x0'));var util=require(_0x5490('0x1'));var logger=require(_0x5490('0x2'))(_0x5490('0x3'));var moment=require(_0x5490('0x4'));var BPromise=require(_0x5490('0x5'));var rp=require(_0x5490('0x6'));var fs=require('fs');var path=require('path');var rimraf=require(_0x5490('0x7'));var config=require(_0x5490('0x8'));var attributes=require(_0x5490('0x9'));module[_0x5490('0xa')]=function(_0x3cbc8e,_0x4220c1){return _0x3cbc8e['define'](_0x5490('0xb'),attributes,{'tableName':'analytics_default_reports','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x4c5c=['../../config/environment','./analyticDefaultReport.attributes','exports','define','AnalyticDefaultReport','lodash','util','api','bluebird','path','rimraf'];(function(_0x172133,_0x10246b){var _0x2460e5=function(_0x3c4918){while(--_0x3c4918){_0x172133['push'](_0x172133['shift']());}};_0x2460e5(++_0x10246b);}(_0x4c5c,0x123));var _0xc4c5=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x4c5c[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0xc4c5('0x0'));var util=require(_0xc4c5('0x1'));var logger=require('../../config/logger')(_0xc4c5('0x2'));var moment=require('moment');var BPromise=require(_0xc4c5('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xc4c5('0x4'));var rimraf=require(_0xc4c5('0x5'));var config=require(_0xc4c5('0x6'));var attributes=require(_0xc4c5('0x7'));module[_0xc4c5('0x8')]=function(_0x55e1d4,_0x2baf0a){return _0x55e1d4[_0xc4c5('0x9')](_0xc4c5('0xa'),attributes,{'tableName':'analytics_default_reports','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbb8e=['rpc','jayson/promise','client','http','request','info','AnalyticDefaultReport,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger'];(function(_0x48d6a3,_0x37c848){var _0x38bfa0=function(_0x3fba2e){while(--_0x3fba2e){_0x48d6a3['push'](_0x48d6a3['shift']());}};_0x38bfa0(++_0x37c848);}(_0xbb8e,0x19a));var _0xebb8=function(_0x3af341,_0x56730c){_0x3af341=_0x3af341-0x0;var _0x7de169=_0xbb8e[_0x3af341];return _0x7de169;};'use strict';var _=require(_0xebb8('0x0'));var util=require(_0xebb8('0x1'));var moment=require('moment');var BPromise=require(_0xebb8('0x2'));var rs=require(_0xebb8('0x3'));var fs=require('fs');var Redis=require(_0xebb8('0x4'));var db=require(_0xebb8('0x5'))['db'];var utils=require(_0xebb8('0x6'));var logger=require(_0xebb8('0x7'))(_0xebb8('0x8'));var config=require('../../config/environment');var jayson=require(_0xebb8('0x9'));var client=jayson[_0xebb8('0xa')][_0xebb8('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x16b6b8,_0x4d0f50,_0x459c86){return new BPromise(function(_0x54f68e,_0x482a5b){return client[_0xebb8('0xc')](_0x16b6b8,_0x459c86)['then'](function(_0x57328c){logger[_0xebb8('0xd')](_0xebb8('0xe'),_0x4d0f50,_0xebb8('0xf'));logger[_0xebb8('0x10')]('AnalyticDefaultReport,\x20%s,\x20%s,\x20%s',_0x4d0f50,_0xebb8('0xf'),JSON[_0xebb8('0x11')](_0x57328c));if(_0x57328c[_0xebb8('0x12')]){if(_0x57328c[_0xebb8('0x12')][_0xebb8('0x13')]===0x1f4){logger['error'](_0xebb8('0xe'),_0x4d0f50,_0x57328c['error'][_0xebb8('0x14')]);return _0x482a5b(_0x57328c[_0xebb8('0x12')][_0xebb8('0x14')]);}logger[_0xebb8('0x12')](_0xebb8('0xe'),_0x4d0f50,_0x57328c['error'][_0xebb8('0x14')]);return _0x54f68e(_0x57328c[_0xebb8('0x12')][_0xebb8('0x14')]);}else{logger[_0xebb8('0xd')](_0xebb8('0xe'),_0x4d0f50,'request\x20sent');_0x54f68e(_0x57328c[_0xebb8('0x15')][_0xebb8('0x14')]);}})['catch'](function(_0x508472){logger[_0xebb8('0x12')](_0xebb8('0xe'),_0x4d0f50,_0x508472);_0x482a5b(_0x508472);});});}
\ No newline at end of file
+var _0xeb2c=['ioredis','../../mysqldb','../../config/utils','jayson/promise','http','then','AnalyticDefaultReport,\x20%s,\x20%s','request\x20sent','debug','AnalyticDefaultReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','lodash','util','moment','randomstring'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xeb2c,0x1ca));var _0xceb2=function(_0x319784,_0x47e6d4){_0x319784=_0x319784-0x0;var _0x1917da=_0xeb2c[_0x319784];return _0x1917da;};'use strict';var _=require(_0xceb2('0x0'));var util=require(_0xceb2('0x1'));var moment=require(_0xceb2('0x2'));var BPromise=require('bluebird');var rs=require(_0xceb2('0x3'));var fs=require('fs');var Redis=require(_0xceb2('0x4'));var db=require(_0xceb2('0x5'))['db'];var utils=require(_0xceb2('0x6'));var logger=require('../../config/logger')('rpc');var config=require('../../config/environment');var jayson=require(_0xceb2('0x7'));var client=jayson['client'][_0xceb2('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x5047bb,_0x16a74e,_0x379fda){return new BPromise(function(_0x5cf4a8,_0x20ad36){return client['request'](_0x5047bb,_0x379fda)[_0xceb2('0x9')](function(_0x1cd6e8){logger['info'](_0xceb2('0xa'),_0x16a74e,_0xceb2('0xb'));logger[_0xceb2('0xc')](_0xceb2('0xd'),_0x16a74e,_0xceb2('0xb'),JSON[_0xceb2('0xe')](_0x1cd6e8));if(_0x1cd6e8[_0xceb2('0xf')]){if(_0x1cd6e8[_0xceb2('0xf')][_0xceb2('0x10')]===0x1f4){logger['error']('AnalyticDefaultReport,\x20%s,\x20%s',_0x16a74e,_0x1cd6e8[_0xceb2('0xf')][_0xceb2('0x11')]);return _0x20ad36(_0x1cd6e8[_0xceb2('0xf')][_0xceb2('0x11')]);}logger[_0xceb2('0xf')](_0xceb2('0xa'),_0x16a74e,_0x1cd6e8['error']['message']);return _0x5cf4a8(_0x1cd6e8[_0xceb2('0xf')][_0xceb2('0x11')]);}else{logger[_0xceb2('0x12')](_0xceb2('0xa'),_0x16a74e,_0xceb2('0xb'));_0x5cf4a8(_0x1cd6e8[_0xceb2('0x13')][_0xceb2('0x11')]);}})[_0xceb2('0x14')](function(_0x17673c){logger[_0xceb2('0xf')](_0xceb2('0xa'),_0x16a74e,_0x17673c);_0x20ad36(_0x17673c);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9e07=['exports','multer','util','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','./analyticDefaultReport.controller','isAuthenticated','index','/:id','show','get','/:id/preview','run','query','post','update','delete','destroy'];(function(_0x2d4c3e,_0x158273){var _0x47b398=function(_0x58d29f){while(--_0x58d29f){_0x2d4c3e['push'](_0x2d4c3e['shift']());}};_0x47b398(++_0x158273);}(_0x9e07,0x1cf));var _0x79e0=function(_0x3fb889,_0x365def){_0x3fb889=_0x3fb889-0x0;var _0x5d444f=_0x9e07[_0x3fb889];return _0x5d444f;};'use strict';var multer=require(_0x79e0('0x0'));var util=require(_0x79e0('0x1'));var path=require('path');var timeout=require(_0x79e0('0x2'));var express=require(_0x79e0('0x3'));var router=express[_0x79e0('0x4')]();var fs_extra=require(_0x79e0('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x79e0('0x6'));var config=require(_0x79e0('0x7'));var controller=require(_0x79e0('0x8'));router['get']('/',auth[_0x79e0('0x9')](),controller[_0x79e0('0xa')]);router['get'](_0x79e0('0xb'),auth['isAuthenticated'](),controller[_0x79e0('0xc')]);router[_0x79e0('0xd')](_0x79e0('0xe'),auth[_0x79e0('0x9')](),controller['preview']);router[_0x79e0('0xd')]('/:id/run',auth['isAuthenticated'](),controller[_0x79e0('0xf')]);router[_0x79e0('0xd')]('/:id/query',auth[_0x79e0('0x9')](),controller[_0x79e0('0x10')]);router[_0x79e0('0x11')]('/',auth[_0x79e0('0x9')](),controller['create']);router['put'](_0x79e0('0xb'),auth['isAuthenticated'](),controller[_0x79e0('0x12')]);router[_0x79e0('0x13')](_0x79e0('0xb'),auth[_0x79e0('0x9')](),controller[_0x79e0('0x14')]);module[_0x79e0('0x15')]=router;
\ No newline at end of file
+var _0xed60=['run','query','post','create','update','delete','/:id','destroy','exports','util','path','express','Router','../../components/interaction/service','./analyticDefaultReport.controller','isAuthenticated','index','get','show','/:id/preview','preview','/:id/run'];(function(_0x6b9a6d,_0x266f07){var _0x424859=function(_0x1b2dd1){while(--_0x1b2dd1){_0x6b9a6d['push'](_0x6b9a6d['shift']());}};_0x424859(++_0x266f07);}(_0xed60,0x77));var _0x0ed6=function(_0x3939ea,_0x10c50a){_0x3939ea=_0x3939ea-0x0;var _0x5af6c4=_0xed60[_0x3939ea];return _0x5af6c4;};'use strict';var multer=require('multer');var util=require(_0x0ed6('0x0'));var path=require(_0x0ed6('0x1'));var timeout=require('connect-timeout');var express=require(_0x0ed6('0x2'));var router=express[_0x0ed6('0x3')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0x0ed6('0x4'));var config=require('../../config/environment');var controller=require(_0x0ed6('0x5'));router['get']('/',auth[_0x0ed6('0x6')](),controller[_0x0ed6('0x7')]);router[_0x0ed6('0x8')]('/:id',auth[_0x0ed6('0x6')](),controller[_0x0ed6('0x9')]);router[_0x0ed6('0x8')](_0x0ed6('0xa'),auth[_0x0ed6('0x6')](),controller[_0x0ed6('0xb')]);router['get'](_0x0ed6('0xc'),auth[_0x0ed6('0x6')](),controller[_0x0ed6('0xd')]);router[_0x0ed6('0x8')]('/:id/query',auth['isAuthenticated'](),controller[_0x0ed6('0xe')]);router[_0x0ed6('0xf')]('/',auth[_0x0ed6('0x6')](),controller[_0x0ed6('0x10')]);router['put']('/:id',auth[_0x0ed6('0x6')](),controller[_0x0ed6('0x11')]);router[_0x0ed6('0x12')](_0x0ed6('0x13'),auth[_0x0ed6('0x6')](),controller[_0x0ed6('0x14')]);module[_0x0ed6('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4b9d=['Loading','manual','scheduled','INTEGER','UNSIGNED','sequelize','moment','STRING','ENUM','csv','xlsx','DATE'];(function(_0x5b644e,_0x2e5e07){var _0x49c6bf=function(_0x3032d9){while(--_0x3032d9){_0x5b644e['push'](_0x5b644e['shift']());}};_0x49c6bf(++_0x2e5e07);}(_0x4b9d,0x10d));var _0xd4b9=function(_0x266618,_0x18f637){_0x266618=_0x266618-0x0;var _0x54dbf5=_0x4b9d[_0x266618];return _0x54dbf5;};'use strict';var Sequelize=require(_0xd4b9('0x0'));var moment=require(_0xd4b9('0x1'));module['exports']={'name':{'type':Sequelize[_0xd4b9('0x2')],'allowNull':![]},'basename':{'type':Sequelize['STRING'],'allowNull':![]},'output':{'type':Sequelize[_0xd4b9('0x3')](_0xd4b9('0x4'),'pdf',_0xd4b9('0x5')),'allowNull':![],'defaultValue':'csv'},'savename':{'type':Sequelize[_0xd4b9('0x2')],'allowNull':![]},'startDate':{'type':Sequelize[_0xd4b9('0x6')]},'endDate':{'type':Sequelize[_0xd4b9('0x6')]},'status':{'type':Sequelize[_0xd4b9('0x2')],'defaultValue':_0xd4b9('0x7')},'type':{'type':Sequelize['ENUM'](_0xd4b9('0x8'),_0xd4b9('0x9')),'allowNull':![],'defaultValue':_0xd4b9('0x8')},'reportId':{'type':Sequelize[_0xd4b9('0xa')](0xb)[_0xd4b9('0xb')]},'reportType':{'type':Sequelize[_0xd4b9('0x2')]}};
\ No newline at end of file
+var _0x9424=['scheduled','INTEGER','UNSIGNED','sequelize','moment','exports','STRING','csv','pdf','xlsx','DATE','Loading','manual'];(function(_0xb0f7c3,_0x4eae95){var _0x28ea68=function(_0x4395a7){while(--_0x4395a7){_0xb0f7c3['push'](_0xb0f7c3['shift']());}};_0x28ea68(++_0x4eae95);}(_0x9424,0x114));var _0x4942=function(_0xffc13f,_0x550cda){_0xffc13f=_0xffc13f-0x0;var _0x517f80=_0x9424[_0xffc13f];return _0x517f80;};'use strict';var Sequelize=require(_0x4942('0x0'));var moment=require(_0x4942('0x1'));module[_0x4942('0x2')]={'name':{'type':Sequelize[_0x4942('0x3')],'allowNull':![]},'basename':{'type':Sequelize[_0x4942('0x3')],'allowNull':![]},'output':{'type':Sequelize['ENUM'](_0x4942('0x4'),_0x4942('0x5'),_0x4942('0x6')),'allowNull':![],'defaultValue':_0x4942('0x4')},'savename':{'type':Sequelize[_0x4942('0x3')],'allowNull':![]},'startDate':{'type':Sequelize[_0x4942('0x7')]},'endDate':{'type':Sequelize['DATE']},'status':{'type':Sequelize[_0x4942('0x3')],'defaultValue':_0x4942('0x8')},'type':{'type':Sequelize['ENUM'](_0x4942('0x9'),_0x4942('0xa')),'allowNull':![],'defaultValue':_0x4942('0x9')},'reportId':{'type':Sequelize[_0x4942('0xb')](0xb)[_0x4942('0xc')]},'reportType':{'type':Sequelize[_0x4942('0x3')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6e52=['UserProfileSection','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','catch','download','basename','savename','output','join','root','server/files/reports','Sequelize','ValidationError','exists','format','%s.%s','toLowerCase','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','ejs','lodash','squel','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','update','destroy','then','get','ExtractedReports','end','error','stack','name','send','AnalyticExtractedReport','rawAttributes','fieldName','type','key','model','query','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','sort','where','pick','merge','map','VIRTUAL','filter','options','includeAll','include','rows','show','params','keys','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role'];(function(_0x176dd3,_0x1f546f){var _0x21bdd6=function(_0x59df8a){while(--_0x59df8a){_0x176dd3['push'](_0x176dd3['shift']());}};_0x21bdd6(++_0x1f546f);}(_0x6e52,0x1ed));var _0x26e5=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0x6e52[_0x20a584];return _0x4b41a8;};'use strict';var emlformat=require(_0x26e5('0x0'));var rimraf=require(_0x26e5('0x1'));var zipdir=require(_0x26e5('0x2'));var jsonpatch=require(_0x26e5('0x3'));var rp=require(_0x26e5('0x4'));var moment=require(_0x26e5('0x5'));var BPromise=require(_0x26e5('0x6'));var Mustache=require(_0x26e5('0x7'));var util=require(_0x26e5('0x8'));var path=require(_0x26e5('0x9'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x26e5('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x26e5('0xb'));var squel=require(_0x26e5('0xc'));var crypto=require('crypto');var jsforce=require(_0x26e5('0xd'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x26e5('0xe'));var Papa=require(_0x26e5('0xf'));var Redis=require(_0x26e5('0x10'));var authService=require(_0x26e5('0x11'));var qs=require(_0x26e5('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')('api');var utils=require(_0x26e5('0x13'));var config=require(_0x26e5('0x14'));var licenseUtil=require('../../config/license/util');var db=require(_0x26e5('0x15'))['db'];function respondWithStatusCode(_0x3f95f1,_0x1115e9){_0x1115e9=_0x1115e9||0xcc;return function(_0x34a9ff){if(_0x34a9ff){return _0x3f95f1[_0x26e5('0x16')](_0x1115e9);}return _0x3f95f1[_0x26e5('0x17')](_0x1115e9)['end']();};}function respondWithResult(_0x3aa84d,_0x2e64bd){_0x2e64bd=_0x2e64bd||0xc8;return function(_0x3e497d){if(_0x3e497d){return _0x3aa84d[_0x26e5('0x17')](_0x2e64bd)[_0x26e5('0x18')](_0x3e497d);}};}function respondWithFilteredResult(_0x4140a9,_0x5dc2f7){return function(_0x2428ea){if(_0x2428ea){var _0x61f2f0=typeof _0x5dc2f7[_0x26e5('0x19')]===_0x26e5('0x1a')&&typeof _0x5dc2f7[_0x26e5('0x1b')]===_0x26e5('0x1a');var _0x58efdc=_0x2428ea[_0x26e5('0x1c')];var _0x154f5e=_0x61f2f0?0x0:_0x5dc2f7[_0x26e5('0x19')];var _0x340395=_0x61f2f0?_0x2428ea['count']:_0x5dc2f7[_0x26e5('0x19')]+_0x5dc2f7[_0x26e5('0x1b')];var _0x355b96;if(_0x340395>=_0x58efdc){_0x340395=_0x58efdc;_0x355b96=0xc8;}else{_0x355b96=0xce;}_0x4140a9[_0x26e5('0x17')](_0x355b96);return _0x4140a9[_0x26e5('0x1d')](_0x26e5('0x1e'),_0x154f5e+'-'+_0x340395+'/'+_0x58efdc)[_0x26e5('0x18')](_0x2428ea);}return null;};}function patchUpdates(_0x9dd6a){return function(_0x5703f8){try{jsonpatch[_0x26e5('0x1f')](_0x5703f8,_0x9dd6a,!![]);}catch(_0x3f2acb){return BPromise[_0x26e5('0x20')](_0x3f2acb);}return _0x5703f8['save']();};}function saveUpdates(_0x17f165,_0x25f29d){return function(_0x34ff68){if(_0x34ff68){return _0x34ff68[_0x26e5('0x21')](_0x17f165)['then'](function(_0x52431a){return _0x52431a;});}return null;};}function removeEntity(_0x294c99,_0x4de306){return function(_0x1a7372){if(_0x1a7372){return _0x1a7372[_0x26e5('0x22')]()[_0x26e5('0x23')](function(){var _0x1fda11=_0x1a7372[_0x26e5('0x24')]({'plain':!![]});var _0x3f8500=_0x26e5('0x25');return db['UserProfileResource'][_0x26e5('0x22')]({'where':{'type':_0x3f8500,'resourceId':_0x1fda11['id']}})['then'](function(){return _0x1a7372;});})[_0x26e5('0x23')](function(){_0x294c99[_0x26e5('0x17')](0xcc)[_0x26e5('0x26')]();});}};}function handleEntityNotFound(_0x56969c,_0x30e7a0){return function(_0x4efbf9){if(!_0x4efbf9){_0x56969c[_0x26e5('0x16')](0x194);}return _0x4efbf9;};}function handleError(_0x33b23f,_0x15795b){_0x15795b=_0x15795b||0x1f4;return function(_0x5d3e61){logger[_0x26e5('0x27')](_0x5d3e61[_0x26e5('0x28')]);if(_0x5d3e61[_0x26e5('0x29')]){delete _0x5d3e61[_0x26e5('0x29')];}_0x33b23f[_0x26e5('0x17')](_0x15795b)[_0x26e5('0x2a')](_0x5d3e61);};}exports['index']=function(_0x56a182,_0x1adbc2){var _0x3bc8a2={},_0x2b8b62={},_0x297951={'count':0x0,'rows':[]};var _0x5239e7=_['map'](db[_0x26e5('0x2b')][_0x26e5('0x2c')],function(_0x1b15dc){return{'name':_0x1b15dc[_0x26e5('0x2d')],'type':_0x1b15dc[_0x26e5('0x2e')][_0x26e5('0x2f')]};});_0x2b8b62[_0x26e5('0x30')]=_['map'](_0x5239e7,_0x26e5('0x29'));_0x2b8b62['query']=_['keys'](_0x56a182[_0x26e5('0x31')]);_0x2b8b62[_0x26e5('0x32')]=_['intersection'](_0x2b8b62[_0x26e5('0x30')],_0x2b8b62[_0x26e5('0x31')]);_0x3bc8a2[_0x26e5('0x33')]=_[_0x26e5('0x34')](_0x2b8b62[_0x26e5('0x30')],qs[_0x26e5('0x35')](_0x56a182[_0x26e5('0x31')][_0x26e5('0x35')]));_0x3bc8a2['attributes']=_0x3bc8a2[_0x26e5('0x33')][_0x26e5('0x36')]?_0x3bc8a2['attributes']:_0x2b8b62['model'];if(!_0x56a182[_0x26e5('0x31')][_0x26e5('0x37')](_0x26e5('0x38'))){_0x3bc8a2[_0x26e5('0x1b')]=qs[_0x26e5('0x1b')](_0x56a182[_0x26e5('0x31')]['limit']);_0x3bc8a2[_0x26e5('0x19')]=qs[_0x26e5('0x19')](_0x56a182[_0x26e5('0x31')][_0x26e5('0x19')]);}_0x3bc8a2['order']=qs[_0x26e5('0x39')](_0x56a182[_0x26e5('0x31')][_0x26e5('0x39')]);_0x3bc8a2[_0x26e5('0x3a')]=qs[_0x26e5('0x32')](_[_0x26e5('0x3b')](_0x56a182[_0x26e5('0x31')],_0x2b8b62[_0x26e5('0x32')]),_0x5239e7);if(_0x56a182['query']['filter']){_0x3bc8a2[_0x26e5('0x3a')]=_[_0x26e5('0x3c')](_0x3bc8a2[_0x26e5('0x3a')],{'$or':_[_0x26e5('0x3d')](_0x5239e7,function(_0x24a30f){if(_0x24a30f[_0x26e5('0x2e')]!==_0x26e5('0x3e')){var _0x22f3ee={};_0x22f3ee[_0x24a30f[_0x26e5('0x29')]]={'$like':'%'+_0x56a182[_0x26e5('0x31')][_0x26e5('0x3f')]+'%'};return _0x22f3ee;}})});}_0x3bc8a2=_[_0x26e5('0x3c')]({},_0x3bc8a2,_0x56a182[_0x26e5('0x40')]);var _0xb87bef={'where':_0x3bc8a2[_0x26e5('0x3a')]};return db[_0x26e5('0x2b')][_0x26e5('0x1c')](_0xb87bef)['then'](function(_0x37b316){_0x297951[_0x26e5('0x1c')]=_0x37b316;if(_0x56a182[_0x26e5('0x31')][_0x26e5('0x41')]){_0x3bc8a2[_0x26e5('0x42')]=[{'all':!![]}];}return db[_0x26e5('0x2b')]['findAll'](_0x3bc8a2);})[_0x26e5('0x23')](function(_0x3749c2){_0x297951[_0x26e5('0x43')]=_0x3749c2;return _0x297951;})[_0x26e5('0x23')](respondWithFilteredResult(_0x1adbc2,_0x3bc8a2))['catch'](handleError(_0x1adbc2,null));};exports[_0x26e5('0x44')]=function(_0x2a4a46,_0x1f4538){var _0x467881={'raw':!![],'where':{'id':_0x2a4a46[_0x26e5('0x45')]['id']}},_0x19c7bc={};_0x19c7bc[_0x26e5('0x30')]=_[_0x26e5('0x46')](db[_0x26e5('0x2b')][_0x26e5('0x2c')]);_0x19c7bc[_0x26e5('0x31')]=_[_0x26e5('0x46')](_0x2a4a46[_0x26e5('0x31')]);_0x19c7bc[_0x26e5('0x32')]=_[_0x26e5('0x34')](_0x19c7bc['model'],_0x19c7bc[_0x26e5('0x31')]);_0x467881[_0x26e5('0x33')]=_[_0x26e5('0x34')](_0x19c7bc[_0x26e5('0x30')],qs[_0x26e5('0x35')](_0x2a4a46[_0x26e5('0x31')][_0x26e5('0x35')]));_0x467881[_0x26e5('0x33')]=_0x467881['attributes'][_0x26e5('0x36')]?_0x467881[_0x26e5('0x33')]:_0x19c7bc[_0x26e5('0x30')];if(_0x2a4a46[_0x26e5('0x31')][_0x26e5('0x41')]){_0x467881['include']=[{'all':!![]}];}_0x467881=_['merge']({},_0x467881,_0x2a4a46[_0x26e5('0x40')]);return db[_0x26e5('0x2b')][_0x26e5('0x47')](_0x467881)[_0x26e5('0x23')](handleEntityNotFound(_0x1f4538,null))[_0x26e5('0x23')](respondWithResult(_0x1f4538,null))['catch'](handleError(_0x1f4538,null));};exports[_0x26e5('0x48')]=function(_0x12858f,_0x351485){return db['AnalyticExtractedReport'][_0x26e5('0x48')](_0x12858f[_0x26e5('0x49')],{})['then'](function(_0x165aa3){var _0x321266=_0x12858f[_0x26e5('0x4a')]['get']({'plain':!![]});if(!_0x321266)throw new Error(_0x26e5('0x4b'));if(_0x321266[_0x26e5('0x4c')]===_0x26e5('0x4a')){var _0x475c61=_0x165aa3[_0x26e5('0x24')]({'plain':!![]});var _0x269350='ExtractedReports';return db[_0x26e5('0x4d')][_0x26e5('0x47')]({'where':{'name':_0x269350,'userProfileId':_0x321266['userProfileId']},'raw':!![]})['then'](function(_0x172e14){if(_0x172e14&&_0x172e14[_0x26e5('0x4e')]===0x0){return db[_0x26e5('0x4f')][_0x26e5('0x48')]({'name':_0x475c61['name'],'resourceId':_0x475c61['id'],'type':_0x172e14[_0x26e5('0x29')],'sectionId':_0x172e14['id']},{})[_0x26e5('0x23')](function(){return _0x165aa3;});}else{return _0x165aa3;}})['catch'](function(_0x3bb119){logger[_0x26e5('0x27')](_0x26e5('0x50'),_0x3bb119);throw _0x3bb119;});}return _0x165aa3;})[_0x26e5('0x23')](respondWithResult(_0x351485,0xc9))[_0x26e5('0x51')](handleError(_0x351485,null));};exports['update']=function(_0x5a0017,_0x5802e8){if(_0x5a0017[_0x26e5('0x49')]['id']){delete _0x5a0017[_0x26e5('0x49')]['id'];}return db[_0x26e5('0x2b')][_0x26e5('0x47')]({'where':{'id':_0x5a0017[_0x26e5('0x45')]['id']}})['then'](handleEntityNotFound(_0x5802e8,null))[_0x26e5('0x23')](saveUpdates(_0x5a0017[_0x26e5('0x49')],null))[_0x26e5('0x23')](respondWithResult(_0x5802e8,null))[_0x26e5('0x51')](handleError(_0x5802e8,null));};exports[_0x26e5('0x22')]=function(_0x2d970f,_0x3cac80){return db['AnalyticExtractedReport'][_0x26e5('0x47')]({'where':{'id':_0x2d970f['params']['id']}})[_0x26e5('0x23')](handleEntityNotFound(_0x3cac80,null))[_0x26e5('0x23')](removeEntity(_0x3cac80,null))[_0x26e5('0x51')](handleError(_0x3cac80,null));};exports[_0x26e5('0x52')]=function(_0x509d62,_0x48ea95,_0x4ae22b){return db[_0x26e5('0x2b')]['find']({'where':{'id':_0x509d62[_0x26e5('0x45')]['id']},'attributes':[_0x26e5('0x29'),_0x26e5('0x53'),_0x26e5('0x54'),_0x26e5('0x55')],'raw':!![]})['then'](handleEntityNotFound(_0x48ea95,null))[_0x26e5('0x23')](function(_0x51a3f8){if(_0x51a3f8){if(!fs['existsSync'](path[_0x26e5('0x56')](config[_0x26e5('0x57')],_0x26e5('0x58'),_0x51a3f8[_0x26e5('0x54')]))){throw new db[(_0x26e5('0x59'))][(_0x26e5('0x5a'))]('Report\x20not\x20found\x20or\x20empty');}if(_0x509d62[_0x26e5('0x31')][_0x26e5('0x5b')]){return _0x48ea95['sendStatus'](0xc8);}return _0x48ea95[_0x26e5('0x52')](path[_0x26e5('0x56')](config['root'],_0x26e5('0x58'),_0x51a3f8['savename']),util[_0x26e5('0x5c')](_0x26e5('0x5d'),_0x51a3f8[_0x26e5('0x53')]||_0x51a3f8[_0x26e5('0x29')],_0x51a3f8[_0x26e5('0x55')][_0x26e5('0x5e')]()));}})[_0x26e5('0x51')](handleError(_0x48ea95,null));};
\ No newline at end of file
+var _0x0a5e=['basename','savename','output','existsSync','join','Sequelize','ValidationError','Report\x20not\x20found\x20or\x20empty','exists','download','root','server/files/reports','format','%s.%s','toLowerCase','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','limit','undefined','count','set','Content-Range','apply','reject','save','update','then','destroy','get','ExtractedReports','UserProfileResource','stack','name','send','map','AnalyticExtractedReport','rawAttributes','type','key','query','keys','filters','intersection','model','attributes','fields','hasOwnProperty','where','VIRTUAL','filter','merge','options','include','rows','catch','show','params','length','find','create','body','user','error'];(function(_0x280f4a,_0x2ed8d6){var _0x1bb157=function(_0x37de94){while(--_0x37de94){_0x280f4a['push'](_0x280f4a['shift']());}};_0x1bb157(++_0x2ed8d6);}(_0x0a5e,0x6c));var _0xe0a5=function(_0x288d6f,_0x4e66a2){_0x288d6f=_0x288d6f-0x0;var _0x547294=_0x0a5e[_0x288d6f];return _0x547294;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xe0a5('0x0'));var jsonpatch=require(_0xe0a5('0x1'));var rp=require(_0xe0a5('0x2'));var moment=require(_0xe0a5('0x3'));var BPromise=require(_0xe0a5('0x4'));var Mustache=require(_0xe0a5('0x5'));var util=require(_0xe0a5('0x6'));var path=require(_0xe0a5('0x7'));var sox=require(_0xe0a5('0x8'));var csv=require(_0xe0a5('0x9'));var ejs=require(_0xe0a5('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xe0a5('0xb'));var squel=require(_0xe0a5('0xc'));var crypto=require(_0xe0a5('0xd'));var jsforce=require(_0xe0a5('0xe'));var deskjs=require(_0xe0a5('0xf'));var toCsv=require(_0xe0a5('0x9'));var querystring=require(_0xe0a5('0x10'));var Papa=require(_0xe0a5('0x11'));var Redis=require(_0xe0a5('0x12'));var authService=require(_0xe0a5('0x13'));var qs=require(_0xe0a5('0x14'));var as=require(_0xe0a5('0x15'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xe0a5('0x16'))('api');var utils=require(_0xe0a5('0x17'));var config=require(_0xe0a5('0x18'));var licenseUtil=require(_0xe0a5('0x19'));var db=require(_0xe0a5('0x1a'))['db'];function respondWithStatusCode(_0x53b422,_0xdd7091){_0xdd7091=_0xdd7091||0xcc;return function(_0x548060){if(_0x548060){return _0x53b422[_0xe0a5('0x1b')](_0xdd7091);}return _0x53b422[_0xe0a5('0x1c')](_0xdd7091)[_0xe0a5('0x1d')]();};}function respondWithResult(_0x25dc7e,_0x5253d1){_0x5253d1=_0x5253d1||0xc8;return function(_0x4d06f0){if(_0x4d06f0){return _0x25dc7e[_0xe0a5('0x1c')](_0x5253d1)[_0xe0a5('0x1e')](_0x4d06f0);}};}function respondWithFilteredResult(_0x2cfc52,_0x48b7b7){return function(_0x3b9a27){if(_0x3b9a27){var _0x4e804d=typeof _0x48b7b7[_0xe0a5('0x1f')]==='undefined'&&typeof _0x48b7b7[_0xe0a5('0x20')]===_0xe0a5('0x21');var _0x14e8cd=_0x3b9a27[_0xe0a5('0x22')];var _0x415c29=_0x4e804d?0x0:_0x48b7b7[_0xe0a5('0x1f')];var _0x3ae587=_0x4e804d?_0x3b9a27[_0xe0a5('0x22')]:_0x48b7b7['offset']+_0x48b7b7[_0xe0a5('0x20')];var _0x2e9acc;if(_0x3ae587>=_0x14e8cd){_0x3ae587=_0x14e8cd;_0x2e9acc=0xc8;}else{_0x2e9acc=0xce;}_0x2cfc52[_0xe0a5('0x1c')](_0x2e9acc);return _0x2cfc52[_0xe0a5('0x23')](_0xe0a5('0x24'),_0x415c29+'-'+_0x3ae587+'/'+_0x14e8cd)[_0xe0a5('0x1e')](_0x3b9a27);}return null;};}function patchUpdates(_0x1dad68){return function(_0x31cb1f){try{jsonpatch[_0xe0a5('0x25')](_0x31cb1f,_0x1dad68,!![]);}catch(_0x2a4463){return BPromise[_0xe0a5('0x26')](_0x2a4463);}return _0x31cb1f[_0xe0a5('0x27')]();};}function saveUpdates(_0x1d3435,_0xc1a73a){return function(_0x3bca76){if(_0x3bca76){return _0x3bca76[_0xe0a5('0x28')](_0x1d3435)[_0xe0a5('0x29')](function(_0x5c8589){return _0x5c8589;});}return null;};}function removeEntity(_0x3db5fc,_0x17ecd9){return function(_0x571e52){if(_0x571e52){return _0x571e52[_0xe0a5('0x2a')]()['then'](function(){var _0xe573ab=_0x571e52[_0xe0a5('0x2b')]({'plain':!![]});var _0x3c14d4=_0xe0a5('0x2c');return db[_0xe0a5('0x2d')][_0xe0a5('0x2a')]({'where':{'type':_0x3c14d4,'resourceId':_0xe573ab['id']}})[_0xe0a5('0x29')](function(){return _0x571e52;});})['then'](function(){_0x3db5fc[_0xe0a5('0x1c')](0xcc)[_0xe0a5('0x1d')]();});}};}function handleEntityNotFound(_0x24dc9b,_0x5db2b7){return function(_0x73f489){if(!_0x73f489){_0x24dc9b[_0xe0a5('0x1b')](0x194);}return _0x73f489;};}function handleError(_0x178dc8,_0x326ba0){_0x326ba0=_0x326ba0||0x1f4;return function(_0xa51400){logger['error'](_0xa51400[_0xe0a5('0x2e')]);if(_0xa51400['name']){delete _0xa51400[_0xe0a5('0x2f')];}_0x178dc8[_0xe0a5('0x1c')](_0x326ba0)[_0xe0a5('0x30')](_0xa51400);};}exports['index']=function(_0x312c5e,_0x5d1d55){var _0x160e34={},_0x45fd11={},_0x3b19c9={'count':0x0,'rows':[]};var _0x3ea67e=_[_0xe0a5('0x31')](db[_0xe0a5('0x32')][_0xe0a5('0x33')],function(_0xc23e75){return{'name':_0xc23e75['fieldName'],'type':_0xc23e75[_0xe0a5('0x34')][_0xe0a5('0x35')]};});_0x45fd11['model']=_[_0xe0a5('0x31')](_0x3ea67e,'name');_0x45fd11[_0xe0a5('0x36')]=_[_0xe0a5('0x37')](_0x312c5e[_0xe0a5('0x36')]);_0x45fd11[_0xe0a5('0x38')]=_[_0xe0a5('0x39')](_0x45fd11[_0xe0a5('0x3a')],_0x45fd11[_0xe0a5('0x36')]);_0x160e34[_0xe0a5('0x3b')]=_[_0xe0a5('0x39')](_0x45fd11[_0xe0a5('0x3a')],qs[_0xe0a5('0x3c')](_0x312c5e[_0xe0a5('0x36')][_0xe0a5('0x3c')]));_0x160e34[_0xe0a5('0x3b')]=_0x160e34[_0xe0a5('0x3b')]['length']?_0x160e34['attributes']:_0x45fd11[_0xe0a5('0x3a')];if(!_0x312c5e[_0xe0a5('0x36')][_0xe0a5('0x3d')]('nolimit')){_0x160e34[_0xe0a5('0x20')]=qs[_0xe0a5('0x20')](_0x312c5e['query']['limit']);_0x160e34[_0xe0a5('0x1f')]=qs[_0xe0a5('0x1f')](_0x312c5e[_0xe0a5('0x36')][_0xe0a5('0x1f')]);}_0x160e34['order']=qs['sort'](_0x312c5e[_0xe0a5('0x36')]['sort']);_0x160e34['where']=qs['filters'](_['pick'](_0x312c5e[_0xe0a5('0x36')],_0x45fd11[_0xe0a5('0x38')]),_0x3ea67e);if(_0x312c5e['query']['filter']){_0x160e34[_0xe0a5('0x3e')]=_['merge'](_0x160e34[_0xe0a5('0x3e')],{'$or':_[_0xe0a5('0x31')](_0x3ea67e,function(_0x2ec769){if(_0x2ec769[_0xe0a5('0x34')]!==_0xe0a5('0x3f')){var _0x277e6c={};_0x277e6c[_0x2ec769[_0xe0a5('0x2f')]]={'$like':'%'+_0x312c5e[_0xe0a5('0x36')][_0xe0a5('0x40')]+'%'};return _0x277e6c;}})});}_0x160e34=_[_0xe0a5('0x41')]({},_0x160e34,_0x312c5e[_0xe0a5('0x42')]);var _0x3b2441={'where':_0x160e34['where']};return db[_0xe0a5('0x32')][_0xe0a5('0x22')](_0x3b2441)['then'](function(_0x16727b){_0x3b19c9[_0xe0a5('0x22')]=_0x16727b;if(_0x312c5e['query']['includeAll']){_0x160e34[_0xe0a5('0x43')]=[{'all':!![]}];}return db[_0xe0a5('0x32')]['findAll'](_0x160e34);})[_0xe0a5('0x29')](function(_0x99373){_0x3b19c9[_0xe0a5('0x44')]=_0x99373;return _0x3b19c9;})['then'](respondWithFilteredResult(_0x5d1d55,_0x160e34))[_0xe0a5('0x45')](handleError(_0x5d1d55,null));};exports[_0xe0a5('0x46')]=function(_0x20e66e,_0x31a171){var _0x28ea8a={'raw':!![],'where':{'id':_0x20e66e[_0xe0a5('0x47')]['id']}},_0x32a0f1={};_0x32a0f1[_0xe0a5('0x3a')]=_[_0xe0a5('0x37')](db[_0xe0a5('0x32')]['rawAttributes']);_0x32a0f1[_0xe0a5('0x36')]=_['keys'](_0x20e66e[_0xe0a5('0x36')]);_0x32a0f1[_0xe0a5('0x38')]=_[_0xe0a5('0x39')](_0x32a0f1[_0xe0a5('0x3a')],_0x32a0f1[_0xe0a5('0x36')]);_0x28ea8a[_0xe0a5('0x3b')]=_[_0xe0a5('0x39')](_0x32a0f1[_0xe0a5('0x3a')],qs[_0xe0a5('0x3c')](_0x20e66e[_0xe0a5('0x36')][_0xe0a5('0x3c')]));_0x28ea8a[_0xe0a5('0x3b')]=_0x28ea8a[_0xe0a5('0x3b')][_0xe0a5('0x48')]?_0x28ea8a[_0xe0a5('0x3b')]:_0x32a0f1['model'];if(_0x20e66e['query']['includeAll']){_0x28ea8a['include']=[{'all':!![]}];}_0x28ea8a=_[_0xe0a5('0x41')]({},_0x28ea8a,_0x20e66e[_0xe0a5('0x42')]);return db[_0xe0a5('0x32')][_0xe0a5('0x49')](_0x28ea8a)['then'](handleEntityNotFound(_0x31a171,null))[_0xe0a5('0x29')](respondWithResult(_0x31a171,null))['catch'](handleError(_0x31a171,null));};exports['create']=function(_0x40c602,_0x2a7ef6){return db[_0xe0a5('0x32')][_0xe0a5('0x4a')](_0x40c602[_0xe0a5('0x4b')],{})[_0xe0a5('0x29')](function(_0x21f576){var _0x1bc8ec=_0x40c602[_0xe0a5('0x4c')][_0xe0a5('0x2b')]({'plain':!![]});if(!_0x1bc8ec)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x1bc8ec['role']===_0xe0a5('0x4c')){var _0x37189c=_0x21f576[_0xe0a5('0x2b')]({'plain':!![]});var _0x48375d=_0xe0a5('0x2c');return db['UserProfileSection'][_0xe0a5('0x49')]({'where':{'name':_0x48375d,'userProfileId':_0x1bc8ec['userProfileId']},'raw':!![]})[_0xe0a5('0x29')](function(_0x10c58e){if(_0x10c58e&&_0x10c58e['autoAssociation']===0x0){return db[_0xe0a5('0x2d')][_0xe0a5('0x4a')]({'name':_0x37189c['name'],'resourceId':_0x37189c['id'],'type':_0x10c58e[_0xe0a5('0x2f')],'sectionId':_0x10c58e['id']},{})[_0xe0a5('0x29')](function(){return _0x21f576;});}else{return _0x21f576;}})[_0xe0a5('0x45')](function(_0x3d0233){logger[_0xe0a5('0x4d')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x3d0233);throw _0x3d0233;});}return _0x21f576;})[_0xe0a5('0x29')](respondWithResult(_0x2a7ef6,0xc9))['catch'](handleError(_0x2a7ef6,null));};exports[_0xe0a5('0x28')]=function(_0x2b2c3b,_0x2c0c55){if(_0x2b2c3b[_0xe0a5('0x4b')]['id']){delete _0x2b2c3b['body']['id'];}return db[_0xe0a5('0x32')][_0xe0a5('0x49')]({'where':{'id':_0x2b2c3b['params']['id']}})[_0xe0a5('0x29')](handleEntityNotFound(_0x2c0c55,null))[_0xe0a5('0x29')](saveUpdates(_0x2b2c3b[_0xe0a5('0x4b')],null))[_0xe0a5('0x29')](respondWithResult(_0x2c0c55,null))[_0xe0a5('0x45')](handleError(_0x2c0c55,null));};exports[_0xe0a5('0x2a')]=function(_0x378599,_0x5361ac){return db['AnalyticExtractedReport'][_0xe0a5('0x49')]({'where':{'id':_0x378599[_0xe0a5('0x47')]['id']}})[_0xe0a5('0x29')](handleEntityNotFound(_0x5361ac,null))[_0xe0a5('0x29')](removeEntity(_0x5361ac,null))[_0xe0a5('0x45')](handleError(_0x5361ac,null));};exports['download']=function(_0x514ba1,_0x6448db,_0x430ec3){return db[_0xe0a5('0x32')][_0xe0a5('0x49')]({'where':{'id':_0x514ba1[_0xe0a5('0x47')]['id']},'attributes':['name',_0xe0a5('0x4e'),_0xe0a5('0x4f'),_0xe0a5('0x50')],'raw':!![]})[_0xe0a5('0x29')](handleEntityNotFound(_0x6448db,null))['then'](function(_0x2f78d5){if(_0x2f78d5){if(!fs[_0xe0a5('0x51')](path[_0xe0a5('0x52')](config['root'],'server/files/reports',_0x2f78d5[_0xe0a5('0x4f')]))){throw new db[(_0xe0a5('0x53'))][(_0xe0a5('0x54'))](_0xe0a5('0x55'));}if(_0x514ba1['query'][_0xe0a5('0x56')]){return _0x6448db['sendStatus'](0xc8);}return _0x6448db[_0xe0a5('0x57')](path['join'](config[_0xe0a5('0x58')],_0xe0a5('0x59'),_0x2f78d5['savename']),util[_0xe0a5('0x5a')](_0xe0a5('0x5b'),_0x2f78d5[_0xe0a5('0x4e')]||_0x2f78d5['name'],_0x2f78d5[_0xe0a5('0x50')][_0xe0a5('0x5c')]()));}})[_0xe0a5('0x45')](handleError(_0x6448db,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9c4a=['analytics_extracted_reports','lodash','../../config/logger','api','moment','request-promise','rimraf','../../config/environment','./analyticExtractedReport.attributes','exports','define','AnalyticExtractedReport'];(function(_0xe1b14b,_0x275799){var _0x21da52=function(_0x5232a7){while(--_0x5232a7){_0xe1b14b['push'](_0xe1b14b['shift']());}};_0x21da52(++_0x275799);}(_0x9c4a,0xe5));var _0xa9c4=function(_0x39e283,_0x247e6b){_0x39e283=_0x39e283-0x0;var _0x7de89f=_0x9c4a[_0x39e283];return _0x7de89f;};'use strict';var _=require(_0xa9c4('0x0'));var util=require('util');var logger=require(_0xa9c4('0x1'))(_0xa9c4('0x2'));var moment=require(_0xa9c4('0x3'));var BPromise=require('bluebird');var rp=require(_0xa9c4('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0xa9c4('0x5'));var config=require(_0xa9c4('0x6'));var attributes=require(_0xa9c4('0x7'));module[_0xa9c4('0x8')]=function(_0x2ee55e,_0x35ab42){return _0x2ee55e[_0xa9c4('0x9')](_0xa9c4('0xa'),attributes,{'tableName':_0xa9c4('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xa8e3=['AnalyticExtractedReport','analytics_extracted_reports','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','./analyticExtractedReport.attributes','exports','define'];(function(_0x1fc512,_0x1996db){var _0xae94b9=function(_0x18f59d){while(--_0x18f59d){_0x1fc512['push'](_0x1fc512['shift']());}};_0xae94b9(++_0x1996db);}(_0xa8e3,0x9c));var _0x3a8e=function(_0x10dc64,_0x11bb29){_0x10dc64=_0x10dc64-0x0;var _0x9cf98d=_0xa8e3[_0x10dc64];return _0x9cf98d;};'use strict';var _=require(_0x3a8e('0x0'));var util=require(_0x3a8e('0x1'));var logger=require(_0x3a8e('0x2'))(_0x3a8e('0x3'));var moment=require(_0x3a8e('0x4'));var BPromise=require(_0x3a8e('0x5'));var rp=require(_0x3a8e('0x6'));var fs=require('fs');var path=require(_0x3a8e('0x7'));var rimraf=require(_0x3a8e('0x8'));var config=require('../../config/environment');var attributes=require(_0x3a8e('0x9'));module[_0x3a8e('0xa')]=function(_0x1c0fd8,_0x82604d){return _0x1c0fd8[_0x3a8e('0xb')](_0x3a8e('0xc'),attributes,{'tableName':_0x3a8e('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8da8=['ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','then','info','AnalyticExtractedReport,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','lodash','util','moment','bluebird','randomstring'];(function(_0x5c0687,_0xe75ce2){var _0x581f60=function(_0x374997){while(--_0x374997){_0x5c0687['push'](_0x5c0687['shift']());}};_0x581f60(++_0xe75ce2);}(_0x8da8,0x187));var _0x88da=function(_0x291fc4,_0x39bf93){_0x291fc4=_0x291fc4-0x0;var _0x6f8a72=_0x8da8[_0x291fc4];return _0x6f8a72;};'use strict';var _=require(_0x88da('0x0'));var util=require(_0x88da('0x1'));var moment=require(_0x88da('0x2'));var BPromise=require(_0x88da('0x3'));var rs=require(_0x88da('0x4'));var fs=require('fs');var Redis=require(_0x88da('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0x88da('0x6'));var logger=require(_0x88da('0x7'))(_0x88da('0x8'));var config=require(_0x88da('0x9'));var jayson=require(_0x88da('0xa'));var client=jayson[_0x88da('0xb')]['http']({'port':0x232a});function respondWithRpcPromise(_0x6baa96,_0x33e3be,_0x3de109){return new BPromise(function(_0x3b2868,_0x58a969){return client['request'](_0x6baa96,_0x3de109)[_0x88da('0xc')](function(_0x10db86){logger[_0x88da('0xd')](_0x88da('0xe'),_0x33e3be,_0x88da('0xf'));logger[_0x88da('0x10')]('AnalyticExtractedReport,\x20%s,\x20%s,\x20%s',_0x33e3be,_0x88da('0xf'),JSON[_0x88da('0x11')](_0x10db86));if(_0x10db86['error']){if(_0x10db86[_0x88da('0x12')][_0x88da('0x13')]===0x1f4){logger[_0x88da('0x12')](_0x88da('0xe'),_0x33e3be,_0x10db86['error'][_0x88da('0x14')]);return _0x58a969(_0x10db86['error']['message']);}logger['error'](_0x88da('0xe'),_0x33e3be,_0x10db86[_0x88da('0x12')][_0x88da('0x14')]);return _0x3b2868(_0x10db86[_0x88da('0x12')]['message']);}else{logger[_0x88da('0xd')]('AnalyticExtractedReport,\x20%s,\x20%s',_0x33e3be,'request\x20sent');_0x3b2868(_0x10db86[_0x88da('0x15')][_0x88da('0x14')]);}})['catch'](function(_0x4d9ffd){logger[_0x88da('0x12')](_0x88da('0xe'),_0x33e3be,_0x4d9ffd);_0x58a969(_0x4d9ffd);});});}
\ No newline at end of file
+var _0x6f18=['moment','randomstring','ioredis','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','request','then','info','AnalyticExtractedReport,\x20%s,\x20%s','request\x20sent','debug','AnalyticExtractedReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','lodash'];(function(_0x90f2d6,_0x34b9ca){var _0x59544c=function(_0x2ff9c4){while(--_0x2ff9c4){_0x90f2d6['push'](_0x90f2d6['shift']());}};_0x59544c(++_0x34b9ca);}(_0x6f18,0x1b4));var _0x86f1=function(_0x203339,_0x3f0e16){_0x203339=_0x203339-0x0;var _0x14f4a0=_0x6f18[_0x203339];return _0x14f4a0;};'use strict';var _=require(_0x86f1('0x0'));var util=require('util');var moment=require(_0x86f1('0x1'));var BPromise=require('bluebird');var rs=require(_0x86f1('0x2'));var fs=require('fs');var Redis=require(_0x86f1('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x86f1('0x4'));var logger=require(_0x86f1('0x5'))('rpc');var config=require(_0x86f1('0x6'));var jayson=require(_0x86f1('0x7'));var client=jayson[_0x86f1('0x8')][_0x86f1('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x403f48,_0x4c7943,_0x5b0f45){return new BPromise(function(_0x3cc3c5,_0x3223eb){return client[_0x86f1('0xa')](_0x403f48,_0x5b0f45)[_0x86f1('0xb')](function(_0x4f1f6e){logger[_0x86f1('0xc')](_0x86f1('0xd'),_0x4c7943,_0x86f1('0xe'));logger[_0x86f1('0xf')](_0x86f1('0x10'),_0x4c7943,_0x86f1('0xe'),JSON[_0x86f1('0x11')](_0x4f1f6e));if(_0x4f1f6e[_0x86f1('0x12')]){if(_0x4f1f6e['error'][_0x86f1('0x13')]===0x1f4){logger[_0x86f1('0x12')](_0x86f1('0xd'),_0x4c7943,_0x4f1f6e[_0x86f1('0x12')][_0x86f1('0x14')]);return _0x3223eb(_0x4f1f6e[_0x86f1('0x12')]['message']);}logger[_0x86f1('0x12')](_0x86f1('0xd'),_0x4c7943,_0x4f1f6e[_0x86f1('0x12')][_0x86f1('0x14')]);return _0x3cc3c5(_0x4f1f6e[_0x86f1('0x12')][_0x86f1('0x14')]);}else{logger[_0x86f1('0xc')](_0x86f1('0xd'),_0x4c7943,'request\x20sent');_0x3cc3c5(_0x4f1f6e[_0x86f1('0x15')][_0x86f1('0x14')]);}})[_0x86f1('0x16')](function(_0x4452c4){logger[_0x86f1('0x12')](_0x86f1('0xd'),_0x4c7943,_0x4452c4);_0x3223eb(_0x4452c4);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x11fb=['Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','isAuthenticated','index','get','/:id','download','create','delete','destroy','exports','util','path'];(function(_0x15acd2,_0x18730e){var _0x3b192d=function(_0x42c28f){while(--_0x42c28f){_0x15acd2['push'](_0x15acd2['shift']());}};_0x3b192d(++_0x18730e);}(_0x11fb,0x1ce));var _0xb11f=function(_0x3eee70,_0x2173d6){_0x3eee70=_0x3eee70-0x0;var _0x14f04a=_0x11fb[_0x3eee70];return _0x14f04a;};'use strict';var multer=require('multer');var util=require(_0xb11f('0x0'));var path=require(_0xb11f('0x1'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0xb11f('0x2')]();var fs_extra=require(_0xb11f('0x3'));var auth=require(_0xb11f('0x4'));var interaction=require(_0xb11f('0x5'));var config=require(_0xb11f('0x6'));var controller=require('./analyticExtractedReport.controller');router['get']('/',auth[_0xb11f('0x7')](),controller[_0xb11f('0x8')]);router[_0xb11f('0x9')](_0xb11f('0xa'),auth[_0xb11f('0x7')](),controller['show']);router[_0xb11f('0x9')]('/:id/download',auth['isAuthenticated'](),controller[_0xb11f('0xb')]);router['post']('/',auth[_0xb11f('0x7')](),controller[_0xb11f('0xc')]);router['put'](_0xb11f('0xa'),auth[_0xb11f('0x7')](),controller['update']);router[_0xb11f('0xd')](_0xb11f('0xa'),auth[_0xb11f('0x7')](),controller[_0xb11f('0xe')]);module[_0xb11f('0xf')]=router;
\ No newline at end of file
+var _0xf410=['update','destroy','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','isAuthenticated','/:id','show','get','/:id/download','create'];(function(_0x28d52c,_0x3720f1){var _0x4ef1a0=function(_0x59ae2b){while(--_0x59ae2b){_0x28d52c['push'](_0x28d52c['shift']());}};_0x4ef1a0(++_0x3720f1);}(_0xf410,0xb7));var _0x0f41=function(_0x1fbf48,_0x15a4c7){_0x1fbf48=_0x1fbf48-0x0;var _0x3eb293=_0xf410[_0x1fbf48];return _0x3eb293;};'use strict';var multer=require(_0x0f41('0x0'));var util=require(_0x0f41('0x1'));var path=require(_0x0f41('0x2'));var timeout=require(_0x0f41('0x3'));var express=require(_0x0f41('0x4'));var router=express[_0x0f41('0x5')]();var fs_extra=require(_0x0f41('0x6'));var auth=require('../../components/auth/service');var interaction=require(_0x0f41('0x7'));var config=require(_0x0f41('0x8'));var controller=require('./analyticExtractedReport.controller');router['get']('/',auth[_0x0f41('0x9')](),controller['index']);router['get'](_0x0f41('0xa'),auth['isAuthenticated'](),controller[_0x0f41('0xb')]);router[_0x0f41('0xc')](_0x0f41('0xd'),auth[_0x0f41('0x9')](),controller['download']);router['post']('/',auth['isAuthenticated'](),controller[_0x0f41('0xe')]);router['put']('/:id',auth['isAuthenticated'](),controller[_0x0f41('0xf')]);router['delete'](_0x0f41('0xa'),auth[_0x0f41('0x9')](),controller[_0x0f41('0x10')]);module[_0x0f41('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xea6d=['sequelize','exports','STRING','BOOLEAN'];(function(_0x483985,_0x3e589e){var _0x3a513a=function(_0x9099a9){while(--_0x9099a9){_0x483985['push'](_0x483985['shift']());}};_0x3a513a(++_0x3e589e);}(_0xea6d,0x16c));var _0xdea6=function(_0x1693cf,_0x2ccbcc){_0x1693cf=_0x1693cf-0x0;var _0x56b509=_0xea6d[_0x1693cf];return _0x56b509;};'use strict';var Sequelize=require(_0xdea6('0x0'));module[_0xdea6('0x1')]={'field':{'type':Sequelize['TEXT']},'alias':{'type':Sequelize['STRING']},'function':{'type':Sequelize[_0xdea6('0x2')]},'format':{'type':Sequelize[_0xdea6('0x2')]},'groupBy':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'orderBy':{'type':Sequelize[_0xdea6('0x2')]},'custom':{'type':Sequelize[_0xdea6('0x3')],'defaultValue':![]}};
\ No newline at end of file
+var _0x0d39=['BOOLEAN','exports','TEXT','STRING'];(function(_0x395a86,_0x8664f1){var _0x1a9722=function(_0x4ce4a7){while(--_0x4ce4a7){_0x395a86['push'](_0x395a86['shift']());}};_0x1a9722(++_0x8664f1);}(_0x0d39,0xa5));var _0x90d3=function(_0x5b48ec,_0x11cb52){_0x5b48ec=_0x5b48ec-0x0;var _0x2b73d4=_0x0d39[_0x5b48ec];return _0x2b73d4;};'use strict';var Sequelize=require('sequelize');module[_0x90d3('0x0')]={'field':{'type':Sequelize[_0x90d3('0x1')]},'alias':{'type':Sequelize[_0x90d3('0x2')]},'function':{'type':Sequelize[_0x90d3('0x2')]},'format':{'type':Sequelize[_0x90d3('0x2')]},'groupBy':{'type':Sequelize[_0x90d3('0x3')],'defaultValue':![]},'orderBy':{'type':Sequelize[_0x90d3('0x2')]},'custom':{'type':Sequelize[_0x90d3('0x3')],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5a52=['../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','end','status','json','limit','undefined','count','offset','set','Content-Range','apply','save','update','then','destroy','sendStatus','error','name','send','index','map','AnalyticFieldReport','rawAttributes','fieldName','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','merge','where','type','options','includeAll','rows','params','include','find','create','catch','bulkCreate','body','bulkDestroy','ids','addFields','AnalyticCustomReport','findOne','CustomReportId','findAll','eml-format','rimraf','request-promise','moment','util','path','sox','to-csv','ejs','lodash','jsforce','querystring','ioredis','../../components/parsers/qs'];(function(_0x135b81,_0x39db4b){var _0x5d8a8e=function(_0x3a7614){while(--_0x3a7614){_0x135b81['push'](_0x135b81['shift']());}};_0x5d8a8e(++_0x39db4b);}(_0x5a52,0x178));var _0x25a5=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x5a52[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0x25a5('0x0'));var rimraf=require(_0x25a5('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x25a5('0x2'));var moment=require(_0x25a5('0x3'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x25a5('0x4'));var path=require(_0x25a5('0x5'));var sox=require(_0x25a5('0x6'));var csv=require(_0x25a5('0x7'));var ejs=require(_0x25a5('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x25a5('0x9'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x25a5('0xa'));var deskjs=require('desk.js');var toCsv=require(_0x25a5('0x7'));var querystring=require(_0x25a5('0xb'));var Papa=require('papaparse');var Redis=require(_0x25a5('0xc'));var authService=require('../../components/auth/service');var qs=require(_0x25a5('0xd'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x25a5('0xe'))(_0x25a5('0xf'));var utils=require(_0x25a5('0x10'));var config=require(_0x25a5('0x11'));var licenseUtil=require(_0x25a5('0x12'));var db=require(_0x25a5('0x13'))['db'];function respondWithStatusCode(_0x1e052b,_0x5c92f3){_0x5c92f3=_0x5c92f3||0xcc;return function(_0x322eb0){if(_0x322eb0){return _0x1e052b['sendStatus'](_0x5c92f3);}return _0x1e052b['status'](_0x5c92f3)[_0x25a5('0x14')]();};}function respondWithResult(_0x1ba7a0,_0x301cfd){_0x301cfd=_0x301cfd||0xc8;return function(_0x2c2f0f){if(_0x2c2f0f){return _0x1ba7a0[_0x25a5('0x15')](_0x301cfd)[_0x25a5('0x16')](_0x2c2f0f);}};}function respondWithFilteredResult(_0x1b2899,_0x5ac1b5){return function(_0x104bf2){if(_0x104bf2){var _0x325d5e=typeof _0x5ac1b5['offset']==='undefined'&&typeof _0x5ac1b5[_0x25a5('0x17')]===_0x25a5('0x18');var _0x465b60=_0x104bf2[_0x25a5('0x19')];var _0x7570e3=_0x325d5e?0x0:_0x5ac1b5['offset'];var _0x28d24e=_0x325d5e?_0x104bf2[_0x25a5('0x19')]:_0x5ac1b5[_0x25a5('0x1a')]+_0x5ac1b5[_0x25a5('0x17')];var _0x1e69d1;if(_0x28d24e>=_0x465b60){_0x28d24e=_0x465b60;_0x1e69d1=0xc8;}else{_0x1e69d1=0xce;}_0x1b2899[_0x25a5('0x15')](_0x1e69d1);return _0x1b2899[_0x25a5('0x1b')](_0x25a5('0x1c'),_0x7570e3+'-'+_0x28d24e+'/'+_0x465b60)[_0x25a5('0x16')](_0x104bf2);}return null;};}function patchUpdates(_0x321f5a){return function(_0x523964){try{jsonpatch[_0x25a5('0x1d')](_0x523964,_0x321f5a,!![]);}catch(_0x211950){return BPromise['reject'](_0x211950);}return _0x523964[_0x25a5('0x1e')]();};}function saveUpdates(_0x2d62bf,_0x49639f){return function(_0x44a6f3){if(_0x44a6f3){return _0x44a6f3[_0x25a5('0x1f')](_0x2d62bf)[_0x25a5('0x20')](function(_0x36ca77){return _0x36ca77;});}return null;};}function removeEntity(_0x1db32c,_0x21dce7){return function(_0x1ed064){if(_0x1ed064){return _0x1ed064[_0x25a5('0x21')]()['then'](function(){_0x1db32c[_0x25a5('0x15')](0xcc)[_0x25a5('0x14')]();});}};}function handleEntityNotFound(_0x50016d,_0x104dc0){return function(_0x2ad39a){if(!_0x2ad39a){_0x50016d[_0x25a5('0x22')](0x194);}return _0x2ad39a;};}function handleError(_0x301f68,_0x2f11cf){_0x2f11cf=_0x2f11cf||0x1f4;return function(_0xd343e){logger[_0x25a5('0x23')](_0xd343e['stack']);if(_0xd343e['name']){delete _0xd343e[_0x25a5('0x24')];}_0x301f68[_0x25a5('0x15')](_0x2f11cf)[_0x25a5('0x25')](_0xd343e);};}exports[_0x25a5('0x26')]=function(_0x34f168,_0x4c6b32){var _0x536363={},_0x4b56bc={},_0x59afd4={'count':0x0,'rows':[]};var _0x43764a=_[_0x25a5('0x27')](db[_0x25a5('0x28')][_0x25a5('0x29')],function(_0x2511f6){return{'name':_0x2511f6[_0x25a5('0x2a')],'type':_0x2511f6['type'][_0x25a5('0x2b')]};});_0x4b56bc[_0x25a5('0x2c')]=_[_0x25a5('0x27')](_0x43764a,_0x25a5('0x24'));_0x4b56bc[_0x25a5('0x2d')]=_[_0x25a5('0x2e')](_0x34f168['query']);_0x4b56bc[_0x25a5('0x2f')]=_[_0x25a5('0x30')](_0x4b56bc['model'],_0x4b56bc['query']);_0x536363[_0x25a5('0x31')]=_['intersection'](_0x4b56bc[_0x25a5('0x2c')],qs['fields'](_0x34f168['query'][_0x25a5('0x32')]));_0x536363[_0x25a5('0x31')]=_0x536363[_0x25a5('0x31')][_0x25a5('0x33')]?_0x536363[_0x25a5('0x31')]:_0x4b56bc[_0x25a5('0x2c')];if(!_0x34f168[_0x25a5('0x2d')][_0x25a5('0x34')](_0x25a5('0x35'))){_0x536363['limit']=qs['limit'](_0x34f168['query'][_0x25a5('0x17')]);_0x536363['offset']=qs['offset'](_0x34f168[_0x25a5('0x2d')][_0x25a5('0x1a')]);}_0x536363[_0x25a5('0x36')]=qs[_0x25a5('0x37')](_0x34f168[_0x25a5('0x2d')]['sort']);_0x536363['where']=qs[_0x25a5('0x2f')](_[_0x25a5('0x38')](_0x34f168[_0x25a5('0x2d')],_0x4b56bc[_0x25a5('0x2f')]),_0x43764a);if(_0x34f168[_0x25a5('0x2d')][_0x25a5('0x39')]){_0x536363['where']=_[_0x25a5('0x3a')](_0x536363[_0x25a5('0x3b')],{'$or':_[_0x25a5('0x27')](_0x43764a,function(_0x1b368f){if(_0x1b368f[_0x25a5('0x3c')]!=='VIRTUAL'){var _0x29f5ab={};_0x29f5ab[_0x1b368f['name']]={'$like':'%'+_0x34f168[_0x25a5('0x2d')][_0x25a5('0x39')]+'%'};return _0x29f5ab;}})});}_0x536363=_[_0x25a5('0x3a')]({},_0x536363,_0x34f168[_0x25a5('0x3d')]);var _0x37874b={'where':_0x536363[_0x25a5('0x3b')]};return db[_0x25a5('0x28')][_0x25a5('0x19')](_0x37874b)[_0x25a5('0x20')](function(_0x47ad3e){_0x59afd4[_0x25a5('0x19')]=_0x47ad3e;if(_0x34f168[_0x25a5('0x2d')][_0x25a5('0x3e')]){_0x536363['include']=[{'all':!![]}];}return db['AnalyticFieldReport']['findAll'](_0x536363);})[_0x25a5('0x20')](function(_0x548da3){_0x59afd4[_0x25a5('0x3f')]=_0x548da3;return _0x59afd4;})[_0x25a5('0x20')](respondWithFilteredResult(_0x4c6b32,_0x536363))['catch'](handleError(_0x4c6b32,null));};exports['show']=function(_0x4fcff6,_0x68125e){var _0x46bbcf={'raw':![],'where':{'id':_0x4fcff6[_0x25a5('0x40')]['id']}},_0xc32aaf={};_0xc32aaf[_0x25a5('0x2c')]=_[_0x25a5('0x2e')](db[_0x25a5('0x28')][_0x25a5('0x29')]);_0xc32aaf['query']=_[_0x25a5('0x2e')](_0x4fcff6['query']);_0xc32aaf['filters']=_[_0x25a5('0x30')](_0xc32aaf['model'],_0xc32aaf[_0x25a5('0x2d')]);_0x46bbcf['attributes']=_[_0x25a5('0x30')](_0xc32aaf[_0x25a5('0x2c')],qs['fields'](_0x4fcff6['query'][_0x25a5('0x32')]));_0x46bbcf[_0x25a5('0x31')]=_0x46bbcf['attributes'][_0x25a5('0x33')]?_0x46bbcf['attributes']:_0xc32aaf[_0x25a5('0x2c')];if(_0x4fcff6[_0x25a5('0x2d')][_0x25a5('0x3e')]){_0x46bbcf[_0x25a5('0x41')]=[{'all':!![]}];}_0x46bbcf=_[_0x25a5('0x3a')]({},_0x46bbcf,_0x4fcff6[_0x25a5('0x3d')]);return db[_0x25a5('0x28')][_0x25a5('0x42')](_0x46bbcf)[_0x25a5('0x20')](handleEntityNotFound(_0x68125e,null))['then'](respondWithResult(_0x68125e,null))['catch'](handleError(_0x68125e,null));};exports['create']=function(_0xe6d3e6,_0x54dd9b){return db['AnalyticFieldReport'][_0x25a5('0x43')](_0xe6d3e6['body'],{})['then'](respondWithResult(_0x54dd9b,0xc9))[_0x25a5('0x44')](handleError(_0x54dd9b,null));};exports[_0x25a5('0x45')]=function(_0x10e3b0,_0x17d5fa){return db['AnalyticFieldReport'][_0x25a5('0x45')](_0x10e3b0[_0x25a5('0x46')],{'raw':![],'individualHooks':!![]})[_0x25a5('0x20')](respondWithResult(_0x17d5fa,0xc9))['catch'](handleError(_0x17d5fa,null));};exports[_0x25a5('0x1f')]=function(_0x57d518,_0x330cc4){if(_0x57d518[_0x25a5('0x46')]['id']){delete _0x57d518[_0x25a5('0x46')]['id'];}return db['AnalyticFieldReport'][_0x25a5('0x42')]({'where':{'id':_0x57d518['params']['id']}})[_0x25a5('0x20')](handleEntityNotFound(_0x330cc4,null))[_0x25a5('0x20')](saveUpdates(_0x57d518['body'],null))[_0x25a5('0x20')](respondWithResult(_0x330cc4,null))[_0x25a5('0x44')](handleError(_0x330cc4,null));};exports['destroy']=function(_0x33ca67,_0xeec670){return db['AnalyticFieldReport']['find']({'where':{'id':_0x33ca67[_0x25a5('0x40')]['id']}})[_0x25a5('0x20')](handleEntityNotFound(_0xeec670,null))[_0x25a5('0x20')](removeEntity(_0xeec670,null))['catch'](handleError(_0xeec670,null));};exports[_0x25a5('0x47')]=function(_0x2eb04a,_0x3a5457){return db[_0x25a5('0x28')][_0x25a5('0x21')]({'where':{'id':_0x2eb04a[_0x25a5('0x2d')][_0x25a5('0x48')]||[]},'raw':![],'individualHooks':!![]})['then'](respondWithResult(_0x3a5457,0xcc))[_0x25a5('0x44')](handleError(_0x3a5457,null));};exports[_0x25a5('0x49')]=function(_0x45a49f,_0x463376,_0x2f5ef4){return db[_0x25a5('0x4a')][_0x25a5('0x4b')]({'where':{'id':_0x45a49f[_0x25a5('0x40')]['id']}})[_0x25a5('0x20')](handleEntityNotFound(_0x463376,null))[_0x25a5('0x20')](function(_0xadcf0c){if(_0xadcf0c){return db['sequelize']['transaction'](function(_0x3afee){return db[_0x25a5('0x28')][_0x25a5('0x21')]({'where':{'CustomReportId':_0x45a49f[_0x25a5('0x40')]['id']},'transaction':_0x3afee})[_0x25a5('0x20')](function(_0x228608){var _0x4efb01=_[_0x25a5('0x27')](_0x45a49f[_0x25a5('0x46')],function(_0x165a7f){delete _0x165a7f['id'];_0x165a7f[_0x25a5('0x4c')]=_0x45a49f['params']['id'];return _0x165a7f;});return db[_0x25a5('0x28')][_0x25a5('0x45')](_0x4efb01,{'transaction':_0x3afee});});})['then'](function(){return db[_0x25a5('0x28')][_0x25a5('0x4d')]({'where':{'CustomReportId':_0x45a49f[_0x25a5('0x40')]['id']}});});}})['then'](respondWithResult(_0x463376,null))[_0x25a5('0x44')](handleError(_0x463376,null));};
\ No newline at end of file
+var _0xd10c=['filter','merge','VIRTUAL','count','includeAll','include','findAll','rows','catch','show','params','rawAttributes','options','find','create','bulkCreate','body','update','ids','findOne','transaction','CustomReportId','eml-format','rimraf','zip-dir','request-promise','mustache','util','path','to-csv','ejs','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','undefined','limit','offset','Content-Range','reject','save','then','destroy','error','name','send','index','AnalyticFieldReport','fieldName','type','key','model','map','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick'];(function(_0x946518,_0x22816f){var _0x909b69=function(_0x2fa5a4){while(--_0x2fa5a4){_0x946518['push'](_0x946518['shift']());}};_0x909b69(++_0x22816f);}(_0xd10c,0x15a));var _0xcd10=function(_0x194ed9,_0x347fe8){_0x194ed9=_0x194ed9-0x0;var _0x56780d=_0xd10c[_0x194ed9];return _0x56780d;};'use strict';var emlformat=require(_0xcd10('0x0'));var rimraf=require(_0xcd10('0x1'));var zipdir=require(_0xcd10('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xcd10('0x3'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xcd10('0x4'));var util=require(_0xcd10('0x5'));var path=require(_0xcd10('0x6'));var sox=require('sox');var csv=require(_0xcd10('0x7'));var ejs=require(_0xcd10('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0xcd10('0x9'));var crypto=require(_0xcd10('0xa'));var jsforce=require(_0xcd10('0xb'));var deskjs=require(_0xcd10('0xc'));var toCsv=require(_0xcd10('0x7'));var querystring=require(_0xcd10('0xd'));var Papa=require(_0xcd10('0xe'));var Redis=require(_0xcd10('0xf'));var authService=require(_0xcd10('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0xcd10('0x11'));var hardwareService=require(_0xcd10('0x12'));var logger=require(_0xcd10('0x13'))('api');var utils=require(_0xcd10('0x14'));var config=require(_0xcd10('0x15'));var licenseUtil=require(_0xcd10('0x16'));var db=require(_0xcd10('0x17'))['db'];function respondWithStatusCode(_0x4d2962,_0xfb1a0f){_0xfb1a0f=_0xfb1a0f||0xcc;return function(_0x1b0233){if(_0x1b0233){return _0x4d2962[_0xcd10('0x18')](_0xfb1a0f);}return _0x4d2962[_0xcd10('0x19')](_0xfb1a0f)[_0xcd10('0x1a')]();};}function respondWithResult(_0x38cc60,_0x4edeff){_0x4edeff=_0x4edeff||0xc8;return function(_0x27c261){if(_0x27c261){return _0x38cc60[_0xcd10('0x19')](_0x4edeff)[_0xcd10('0x1b')](_0x27c261);}};}function respondWithFilteredResult(_0x5b804b,_0x4eed67){return function(_0x1da47f){if(_0x1da47f){var _0x39c990=typeof _0x4eed67['offset']===_0xcd10('0x1c')&&typeof _0x4eed67[_0xcd10('0x1d')]==='undefined';var _0x5898b7=_0x1da47f['count'];var _0x28fed8=_0x39c990?0x0:_0x4eed67['offset'];var _0xaed201=_0x39c990?_0x1da47f['count']:_0x4eed67[_0xcd10('0x1e')]+_0x4eed67[_0xcd10('0x1d')];var _0xe31113;if(_0xaed201>=_0x5898b7){_0xaed201=_0x5898b7;_0xe31113=0xc8;}else{_0xe31113=0xce;}_0x5b804b[_0xcd10('0x19')](_0xe31113);return _0x5b804b['set'](_0xcd10('0x1f'),_0x28fed8+'-'+_0xaed201+'/'+_0x5898b7)[_0xcd10('0x1b')](_0x1da47f);}return null;};}function patchUpdates(_0x3fea7b){return function(_0x267424){try{jsonpatch['apply'](_0x267424,_0x3fea7b,!![]);}catch(_0x5a6a67){return BPromise[_0xcd10('0x20')](_0x5a6a67);}return _0x267424[_0xcd10('0x21')]();};}function saveUpdates(_0x2fa62b,_0x5a9c8e){return function(_0x5b6ad6){if(_0x5b6ad6){return _0x5b6ad6['update'](_0x2fa62b)[_0xcd10('0x22')](function(_0x2339a7){return _0x2339a7;});}return null;};}function removeEntity(_0x23a3e7,_0x1dd554){return function(_0x533056){if(_0x533056){return _0x533056[_0xcd10('0x23')]()[_0xcd10('0x22')](function(){_0x23a3e7[_0xcd10('0x19')](0xcc)[_0xcd10('0x1a')]();});}};}function handleEntityNotFound(_0x3e7b91,_0x312e1b){return function(_0x443bc4){if(!_0x443bc4){_0x3e7b91[_0xcd10('0x18')](0x194);}return _0x443bc4;};}function handleError(_0x1d1568,_0x237d67){_0x237d67=_0x237d67||0x1f4;return function(_0x56a155){logger[_0xcd10('0x24')](_0x56a155['stack']);if(_0x56a155[_0xcd10('0x25')]){delete _0x56a155[_0xcd10('0x25')];}_0x1d1568[_0xcd10('0x19')](_0x237d67)[_0xcd10('0x26')](_0x56a155);};}exports[_0xcd10('0x27')]=function(_0x852c0c,_0x402531){var _0x1f8762={},_0x5f460e={},_0x4e85f9={'count':0x0,'rows':[]};var _0x6e41f2=_['map'](db[_0xcd10('0x28')]['rawAttributes'],function(_0x10de4e){return{'name':_0x10de4e[_0xcd10('0x29')],'type':_0x10de4e[_0xcd10('0x2a')][_0xcd10('0x2b')]};});_0x5f460e[_0xcd10('0x2c')]=_[_0xcd10('0x2d')](_0x6e41f2,_0xcd10('0x25'));_0x5f460e['query']=_[_0xcd10('0x2e')](_0x852c0c[_0xcd10('0x2f')]);_0x5f460e[_0xcd10('0x30')]=_[_0xcd10('0x31')](_0x5f460e[_0xcd10('0x2c')],_0x5f460e[_0xcd10('0x2f')]);_0x1f8762[_0xcd10('0x32')]=_[_0xcd10('0x31')](_0x5f460e['model'],qs[_0xcd10('0x33')](_0x852c0c['query'][_0xcd10('0x33')]));_0x1f8762['attributes']=_0x1f8762[_0xcd10('0x32')][_0xcd10('0x34')]?_0x1f8762[_0xcd10('0x32')]:_0x5f460e[_0xcd10('0x2c')];if(!_0x852c0c[_0xcd10('0x2f')][_0xcd10('0x35')](_0xcd10('0x36'))){_0x1f8762[_0xcd10('0x1d')]=qs['limit'](_0x852c0c[_0xcd10('0x2f')][_0xcd10('0x1d')]);_0x1f8762[_0xcd10('0x1e')]=qs[_0xcd10('0x1e')](_0x852c0c[_0xcd10('0x2f')][_0xcd10('0x1e')]);}_0x1f8762[_0xcd10('0x37')]=qs[_0xcd10('0x38')](_0x852c0c[_0xcd10('0x2f')]['sort']);_0x1f8762[_0xcd10('0x39')]=qs[_0xcd10('0x30')](_[_0xcd10('0x3a')](_0x852c0c['query'],_0x5f460e[_0xcd10('0x30')]),_0x6e41f2);if(_0x852c0c[_0xcd10('0x2f')][_0xcd10('0x3b')]){_0x1f8762[_0xcd10('0x39')]=_[_0xcd10('0x3c')](_0x1f8762[_0xcd10('0x39')],{'$or':_['map'](_0x6e41f2,function(_0x446560){if(_0x446560['type']!==_0xcd10('0x3d')){var _0x3fd446={};_0x3fd446[_0x446560[_0xcd10('0x25')]]={'$like':'%'+_0x852c0c[_0xcd10('0x2f')][_0xcd10('0x3b')]+'%'};return _0x3fd446;}})});}_0x1f8762=_[_0xcd10('0x3c')]({},_0x1f8762,_0x852c0c['options']);var _0x2249d={'where':_0x1f8762[_0xcd10('0x39')]};return db[_0xcd10('0x28')][_0xcd10('0x3e')](_0x2249d)['then'](function(_0x538565){_0x4e85f9[_0xcd10('0x3e')]=_0x538565;if(_0x852c0c[_0xcd10('0x2f')][_0xcd10('0x3f')]){_0x1f8762[_0xcd10('0x40')]=[{'all':!![]}];}return db['AnalyticFieldReport'][_0xcd10('0x41')](_0x1f8762);})[_0xcd10('0x22')](function(_0xb2ada8){_0x4e85f9[_0xcd10('0x42')]=_0xb2ada8;return _0x4e85f9;})[_0xcd10('0x22')](respondWithFilteredResult(_0x402531,_0x1f8762))[_0xcd10('0x43')](handleError(_0x402531,null));};exports[_0xcd10('0x44')]=function(_0x2b4cbf,_0x3b7694){var _0x43cdbf={'raw':![],'where':{'id':_0x2b4cbf[_0xcd10('0x45')]['id']}},_0x21e41e={};_0x21e41e[_0xcd10('0x2c')]=_[_0xcd10('0x2e')](db[_0xcd10('0x28')][_0xcd10('0x46')]);_0x21e41e[_0xcd10('0x2f')]=_[_0xcd10('0x2e')](_0x2b4cbf['query']);_0x21e41e[_0xcd10('0x30')]=_[_0xcd10('0x31')](_0x21e41e[_0xcd10('0x2c')],_0x21e41e[_0xcd10('0x2f')]);_0x43cdbf['attributes']=_['intersection'](_0x21e41e[_0xcd10('0x2c')],qs[_0xcd10('0x33')](_0x2b4cbf[_0xcd10('0x2f')][_0xcd10('0x33')]));_0x43cdbf[_0xcd10('0x32')]=_0x43cdbf[_0xcd10('0x32')][_0xcd10('0x34')]?_0x43cdbf[_0xcd10('0x32')]:_0x21e41e[_0xcd10('0x2c')];if(_0x2b4cbf[_0xcd10('0x2f')][_0xcd10('0x3f')]){_0x43cdbf['include']=[{'all':!![]}];}_0x43cdbf=_[_0xcd10('0x3c')]({},_0x43cdbf,_0x2b4cbf[_0xcd10('0x47')]);return db[_0xcd10('0x28')][_0xcd10('0x48')](_0x43cdbf)['then'](handleEntityNotFound(_0x3b7694,null))[_0xcd10('0x22')](respondWithResult(_0x3b7694,null))[_0xcd10('0x43')](handleError(_0x3b7694,null));};exports['create']=function(_0x3e5f7a,_0x3b9d3b){return db['AnalyticFieldReport'][_0xcd10('0x49')](_0x3e5f7a['body'],{})[_0xcd10('0x22')](respondWithResult(_0x3b9d3b,0xc9))['catch'](handleError(_0x3b9d3b,null));};exports[_0xcd10('0x4a')]=function(_0x10b032,_0x3d68c9){return db[_0xcd10('0x28')][_0xcd10('0x4a')](_0x10b032[_0xcd10('0x4b')],{'raw':![],'individualHooks':!![]})[_0xcd10('0x22')](respondWithResult(_0x3d68c9,0xc9))['catch'](handleError(_0x3d68c9,null));};exports[_0xcd10('0x4c')]=function(_0x160715,_0x598006){if(_0x160715['body']['id']){delete _0x160715[_0xcd10('0x4b')]['id'];}return db[_0xcd10('0x28')]['find']({'where':{'id':_0x160715[_0xcd10('0x45')]['id']}})[_0xcd10('0x22')](handleEntityNotFound(_0x598006,null))[_0xcd10('0x22')](saveUpdates(_0x160715['body'],null))[_0xcd10('0x22')](respondWithResult(_0x598006,null))[_0xcd10('0x43')](handleError(_0x598006,null));};exports[_0xcd10('0x23')]=function(_0x486750,_0x3e3c4a){return db['AnalyticFieldReport'][_0xcd10('0x48')]({'where':{'id':_0x486750[_0xcd10('0x45')]['id']}})[_0xcd10('0x22')](handleEntityNotFound(_0x3e3c4a,null))[_0xcd10('0x22')](removeEntity(_0x3e3c4a,null))['catch'](handleError(_0x3e3c4a,null));};exports['bulkDestroy']=function(_0x145716,_0x42acef){return db[_0xcd10('0x28')][_0xcd10('0x23')]({'where':{'id':_0x145716[_0xcd10('0x2f')][_0xcd10('0x4d')]||[]},'raw':![],'individualHooks':!![]})[_0xcd10('0x22')](respondWithResult(_0x42acef,0xcc))[_0xcd10('0x43')](handleError(_0x42acef,null));};exports['addFields']=function(_0x211320,_0x2039fe,_0x4c2d7f){return db['AnalyticCustomReport'][_0xcd10('0x4e')]({'where':{'id':_0x211320[_0xcd10('0x45')]['id']}})[_0xcd10('0x22')](handleEntityNotFound(_0x2039fe,null))[_0xcd10('0x22')](function(_0x427ca6){if(_0x427ca6){return db['sequelize'][_0xcd10('0x4f')](function(_0x53dada){return db[_0xcd10('0x28')][_0xcd10('0x23')]({'where':{'CustomReportId':_0x211320['params']['id']},'transaction':_0x53dada})[_0xcd10('0x22')](function(_0x230cea){var _0x56c24b=_['map'](_0x211320[_0xcd10('0x4b')],function(_0x389884){delete _0x389884['id'];_0x389884[_0xcd10('0x50')]=_0x211320[_0xcd10('0x45')]['id'];return _0x389884;});return db[_0xcd10('0x28')][_0xcd10('0x4a')](_0x56c24b,{'transaction':_0x53dada});});})['then'](function(){return db[_0xcd10('0x28')][_0xcd10('0x41')]({'where':{'CustomReportId':_0x211320['params']['id']}});});}})[_0xcd10('0x22')](respondWithResult(_0x2039fe,null))[_0xcd10('0x43')](handleError(_0x2039fe,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4a14=['../../config/logger','api','bluebird','path','rimraf','../../config/environment','./analyticFieldReport.attributes','exports','AnalyticFieldReport','analytics_report_fields','lodash','util'];(function(_0x4099ee,_0x38495a){var _0x1b7bfc=function(_0x5f5388){while(--_0x5f5388){_0x4099ee['push'](_0x4099ee['shift']());}};_0x1b7bfc(++_0x38495a);}(_0x4a14,0x11e));var _0x44a1=function(_0xb06ca0,_0x1afdfd){_0xb06ca0=_0xb06ca0-0x0;var _0x2dfd9b=_0x4a14[_0xb06ca0];return _0x2dfd9b;};'use strict';var _=require(_0x44a1('0x0'));var util=require(_0x44a1('0x1'));var logger=require(_0x44a1('0x2'))(_0x44a1('0x3'));var moment=require('moment');var BPromise=require(_0x44a1('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x44a1('0x5'));var rimraf=require(_0x44a1('0x6'));var config=require(_0x44a1('0x7'));var attributes=require(_0x44a1('0x8'));module[_0x44a1('0x9')]=function(_0x3512c7,_0x5e5b0b){return _0x3512c7['define'](_0x44a1('0xa'),attributes,{'tableName':_0x44a1('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xf263=['analytics_report_fields','util','../../config/logger','api','moment','request-promise','../../config/environment','exports','define','AnalyticFieldReport'];(function(_0x3c44d2,_0x20b6b3){var _0x22fe72=function(_0x24f27d){while(--_0x24f27d){_0x3c44d2['push'](_0x3c44d2['shift']());}};_0x22fe72(++_0x20b6b3);}(_0xf263,0x1eb));var _0x3f26=function(_0x2dacca,_0x3b55a5){_0x2dacca=_0x2dacca-0x0;var _0x4e8745=_0xf263[_0x2dacca];return _0x4e8745;};'use strict';var _=require('lodash');var util=require(_0x3f26('0x0'));var logger=require(_0x3f26('0x1'))(_0x3f26('0x2'));var moment=require(_0x3f26('0x3'));var BPromise=require('bluebird');var rp=require(_0x3f26('0x4'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0x3f26('0x5'));var attributes=require('./analyticFieldReport.attributes');module[_0x3f26('0x6')]=function(_0x2a3be8,_0x10317f){return _0x2a3be8[_0x3f26('0x7')](_0x3f26('0x8'),attributes,{'tableName':_0x3f26('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6978=['request\x20sent','debug','AnalyticFieldReport,\x20%s,\x20%s,\x20%s','error','code','message','result','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','request','then','info','AnalyticFieldReport,\x20%s,\x20%s'];(function(_0x1eccf0,_0x4a4efe){var _0x582f43=function(_0x27ad67){while(--_0x27ad67){_0x1eccf0['push'](_0x1eccf0['shift']());}};_0x582f43(++_0x4a4efe);}(_0x6978,0x16f));var _0x8697=function(_0x108d5f,_0x33f82d){_0x108d5f=_0x108d5f-0x0;var _0x456ea3=_0x6978[_0x108d5f];return _0x456ea3;};'use strict';var _=require(_0x8697('0x0'));var util=require(_0x8697('0x1'));var moment=require(_0x8697('0x2'));var BPromise=require(_0x8697('0x3'));var rs=require(_0x8697('0x4'));var fs=require('fs');var Redis=require(_0x8697('0x5'));var db=require(_0x8697('0x6'))['db'];var utils=require(_0x8697('0x7'));var logger=require(_0x8697('0x8'))(_0x8697('0x9'));var config=require(_0x8697('0xa'));var jayson=require('jayson/promise');var client=jayson[_0x8697('0xb')][_0x8697('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x5a9458,_0x5d223a,_0x188ab8){return new BPromise(function(_0x1482f0,_0x1f18cb){return client[_0x8697('0xd')](_0x5a9458,_0x188ab8)[_0x8697('0xe')](function(_0x4517db){logger[_0x8697('0xf')](_0x8697('0x10'),_0x5d223a,_0x8697('0x11'));logger[_0x8697('0x12')](_0x8697('0x13'),_0x5d223a,_0x8697('0x11'),JSON['stringify'](_0x4517db));if(_0x4517db['error']){if(_0x4517db[_0x8697('0x14')][_0x8697('0x15')]===0x1f4){logger[_0x8697('0x14')](_0x8697('0x10'),_0x5d223a,_0x4517db[_0x8697('0x14')][_0x8697('0x16')]);return _0x1f18cb(_0x4517db[_0x8697('0x14')][_0x8697('0x16')]);}logger['error'](_0x8697('0x10'),_0x5d223a,_0x4517db['error']['message']);return _0x1482f0(_0x4517db['error']['message']);}else{logger[_0x8697('0xf')](_0x8697('0x10'),_0x5d223a,'request\x20sent');_0x1482f0(_0x4517db[_0x8697('0x17')][_0x8697('0x16')]);}})['catch'](function(_0x1d995c){logger['error'](_0x8697('0x10'),_0x5d223a,_0x1d995c);_0x1f18cb(_0x1d995c);});});}
\ No newline at end of file
+var _0x8f0c=['../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','request','info','AnalyticFieldReport,\x20%s,\x20%s','request\x20sent','debug','AnalyticFieldReport,\x20%s,\x20%s,\x20%s','stringify','error','message','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb'];(function(_0x77fd25,_0x226ea2){var _0xe14528=function(_0x1551d5){while(--_0x1551d5){_0x77fd25['push'](_0x77fd25['shift']());}};_0xe14528(++_0x226ea2);}(_0x8f0c,0x9a));var _0xc8f0=function(_0x2d5934,_0x1acc4f){_0x2d5934=_0x2d5934-0x0;var _0x5807c8=_0x8f0c[_0x2d5934];return _0x5807c8;};'use strict';var _=require(_0xc8f0('0x0'));var util=require(_0xc8f0('0x1'));var moment=require(_0xc8f0('0x2'));var BPromise=require(_0xc8f0('0x3'));var rs=require(_0xc8f0('0x4'));var fs=require('fs');var Redis=require(_0xc8f0('0x5'));var db=require(_0xc8f0('0x6'))['db'];var utils=require(_0xc8f0('0x7'));var logger=require(_0xc8f0('0x8'))(_0xc8f0('0x9'));var config=require(_0xc8f0('0xa'));var jayson=require(_0xc8f0('0xb'));var client=jayson['client'][_0xc8f0('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x4b4083,_0x230d3c,_0x32ba3f){return new BPromise(function(_0x5a0df3,_0x2f4375){return client[_0xc8f0('0xd')](_0x4b4083,_0x32ba3f)['then'](function(_0x34d998){logger[_0xc8f0('0xe')](_0xc8f0('0xf'),_0x230d3c,_0xc8f0('0x10'));logger[_0xc8f0('0x11')](_0xc8f0('0x12'),_0x230d3c,_0xc8f0('0x10'),JSON[_0xc8f0('0x13')](_0x34d998));if(_0x34d998[_0xc8f0('0x14')]){if(_0x34d998['error']['code']===0x1f4){logger[_0xc8f0('0x14')]('AnalyticFieldReport,\x20%s,\x20%s',_0x230d3c,_0x34d998['error']['message']);return _0x2f4375(_0x34d998[_0xc8f0('0x14')][_0xc8f0('0x15')]);}logger[_0xc8f0('0x14')](_0xc8f0('0xf'),_0x230d3c,_0x34d998[_0xc8f0('0x14')][_0xc8f0('0x15')]);return _0x5a0df3(_0x34d998[_0xc8f0('0x14')][_0xc8f0('0x15')]);}else{logger[_0xc8f0('0xe')]('AnalyticFieldReport,\x20%s,\x20%s',_0x230d3c,_0xc8f0('0x10'));_0x5a0df3(_0x34d998['result'][_0xc8f0('0x15')]);}})[_0xc8f0('0x16')](function(_0x5bad77){logger['error']('AnalyticFieldReport,\x20%s,\x20%s',_0x230d3c,_0x5bad77);_0x2f4375(_0x5bad77);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['delete','/destroy_many','bulkDestroy','destroy','exports','multer','util','path','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./analyticFieldReport.controller','get','index','/:id','post','/create_many','isAuthenticated','bulkCreate','/:id/create_many','update'];(function(_0x2fe63d,_0x5b80ac){var _0x11b001=function(_0x573030){while(--_0x573030){_0x2fe63d['push'](_0x2fe63d['shift']());}};_0x11b001(++_0x5b80ac);}(_0xa9e0,0x123));var _0x0a9e=function(_0x2dafbe,_0x5d04de){_0x2dafbe=_0x2dafbe-0x0;var _0x58a45a=_0xa9e0[_0x2dafbe];return _0x58a45a;};'use strict';var multer=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var path=require(_0x0a9e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x0a9e('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x0a9e('0x4'));var interaction=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));var controller=require(_0x0a9e('0x7'));router[_0x0a9e('0x8')]('/',auth['isAuthenticated'](),controller[_0x0a9e('0x9')]);router[_0x0a9e('0x8')](_0x0a9e('0xa'),auth['isAuthenticated'](),controller['show']);router[_0x0a9e('0xb')]('/',auth['isAuthenticated'](),controller['create']);router[_0x0a9e('0xb')](_0x0a9e('0xc'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0xe')]);router[_0x0a9e('0xb')](_0x0a9e('0xf'),auth['isAuthenticated'](),controller['addFields']);router['put']('/:id',auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x10')]);router[_0x0a9e('0x11')](_0x0a9e('0x12'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x13')]);router['delete'](_0x0a9e('0xa'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x14')]);module[_0x0a9e('0x15')]=router;
\ No newline at end of file
+var _0xa9e0=['delete','/destroy_many','bulkDestroy','destroy','exports','multer','util','path','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./analyticFieldReport.controller','get','index','/:id','post','/create_many','isAuthenticated','bulkCreate','/:id/create_many','update'];(function(_0x2ecfc3,_0x1d17c4){var _0x476a85=function(_0x29ca0c){while(--_0x29ca0c){_0x2ecfc3['push'](_0x2ecfc3['shift']());}};_0x476a85(++_0x1d17c4);}(_0xa9e0,0x123));var _0x0a9e=function(_0x18a79d,_0x57bd2c){_0x18a79d=_0x18a79d-0x0;var _0x4f8848=_0xa9e0[_0x18a79d];return _0x4f8848;};'use strict';var multer=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var path=require(_0x0a9e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x0a9e('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x0a9e('0x4'));var interaction=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));var controller=require(_0x0a9e('0x7'));router[_0x0a9e('0x8')]('/',auth['isAuthenticated'](),controller[_0x0a9e('0x9')]);router[_0x0a9e('0x8')](_0x0a9e('0xa'),auth['isAuthenticated'](),controller['show']);router[_0x0a9e('0xb')]('/',auth['isAuthenticated'](),controller['create']);router[_0x0a9e('0xb')](_0x0a9e('0xc'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0xe')]);router[_0x0a9e('0xb')](_0x0a9e('0xf'),auth['isAuthenticated'](),controller['addFields']);router['put']('/:id',auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x10')]);router[_0x0a9e('0x11')](_0x0a9e('0x12'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x13')]);router['delete'](_0x0a9e('0xa'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x14')]);module[_0x0a9e('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x96cc=['TEXT','sequelize','STRING'];(function(_0x30bb30,_0x564af1){var _0xce44e7=function(_0x5b96aa){while(--_0x5b96aa){_0x30bb30['push'](_0x30bb30['shift']());}};_0xce44e7(++_0x564af1);}(_0x96cc,0x16c));var _0xc96c=function(_0x2d41fc,_0x58b122){_0x2d41fc=_0x2d41fc-0x0;var _0x51473d=_0x96cc[_0x2d41fc];return _0x51473d;};'use strict';var Sequelize=require(_0xc96c('0x0'));module['exports']={'name':{'type':Sequelize[_0xc96c('0x1')],'allowNull':![],'unique':'name'},'table':{'type':Sequelize[_0xc96c('0x1')]},'metric':{'type':Sequelize[_0xc96c('0x2')]},'description':{'type':Sequelize[_0xc96c('0x1')]}};
\ No newline at end of file
+var _0x705f=['TEXT','STRING'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x705f,0x75));var _0xf705=function(_0x2d2a33,_0x2d1d1f){_0x2d2a33=_0x2d2a33-0x0;var _0x32d8ba=_0x705f[_0x2d2a33];return _0x32d8ba;};'use strict';var Sequelize=require('sequelize');module['exports']={'name':{'type':Sequelize[_0xf705('0x0')],'allowNull':![],'unique':'name'},'table':{'type':Sequelize[_0xf705('0x0')]},'metric':{'type':Sequelize[_0xf705('0x1')]},'description':{'type':Sequelize[_0xf705('0x0')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8ef6=['../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','undefined','limit','set','Content-Range','apply','reject','save','then','destroy','get','UserProfileResource','error','stack','name','index','map','fieldName','key','model','keys','query','intersection','attributes','length','hasOwnProperty','order','sort','where','filters','filter','merge','type','VIRTUAL','options','AnalyticMetric','count','includeAll','include','findAll','rows','catch','show','params','rawAttributes','fields','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Metrics','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','body','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware'];(function(_0xbc4659,_0x578fba){var _0x5831f9=function(_0x5eb0eb){while(--_0x5eb0eb){_0xbc4659['push'](_0xbc4659['shift']());}};_0x5831f9(++_0x578fba);}(_0x8ef6,0xf2));var _0x68ef=function(_0x13448a,_0x559bd9){_0x13448a=_0x13448a-0x0;var _0x76c5b0=_0x8ef6[_0x13448a];return _0x76c5b0;};'use strict';var emlformat=require(_0x68ef('0x0'));var rimraf=require(_0x68ef('0x1'));var zipdir=require(_0x68ef('0x2'));var jsonpatch=require(_0x68ef('0x3'));var rp=require(_0x68ef('0x4'));var moment=require(_0x68ef('0x5'));var BPromise=require(_0x68ef('0x6'));var Mustache=require('mustache');var util=require(_0x68ef('0x7'));var path=require(_0x68ef('0x8'));var sox=require(_0x68ef('0x9'));var csv=require(_0x68ef('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x68ef('0xb'));var squel=require(_0x68ef('0xc'));var crypto=require(_0x68ef('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x68ef('0xe'));var toCsv=require(_0x68ef('0xa'));var querystring=require(_0x68ef('0xf'));var Papa=require(_0x68ef('0x10'));var Redis=require(_0x68ef('0x11'));var authService=require(_0x68ef('0x12'));var qs=require(_0x68ef('0x13'));var as=require(_0x68ef('0x14'));var hardwareService=require(_0x68ef('0x15'));var logger=require(_0x68ef('0x16'))(_0x68ef('0x17'));var utils=require(_0x68ef('0x18'));var config=require('../../config/environment');var licenseUtil=require(_0x68ef('0x19'));var db=require(_0x68ef('0x1a'))['db'];function respondWithStatusCode(_0x1e117a,_0x454ef4){_0x454ef4=_0x454ef4||0xcc;return function(_0x40f253){if(_0x40f253){return _0x1e117a[_0x68ef('0x1b')](_0x454ef4);}return _0x1e117a['status'](_0x454ef4)[_0x68ef('0x1c')]();};}function respondWithResult(_0xc50cce,_0x2657c5){_0x2657c5=_0x2657c5||0xc8;return function(_0x47fbb5){if(_0x47fbb5){return _0xc50cce[_0x68ef('0x1d')](_0x2657c5)[_0x68ef('0x1e')](_0x47fbb5);}};}function respondWithFilteredResult(_0x24682d,_0x5005ba){return function(_0x35493d){if(_0x35493d){var _0x37c4cc=typeof _0x5005ba[_0x68ef('0x1f')]===_0x68ef('0x20')&&typeof _0x5005ba['limit']===_0x68ef('0x20');var _0x54139e=_0x35493d['count'];var _0x2633c1=_0x37c4cc?0x0:_0x5005ba[_0x68ef('0x1f')];var _0x4ade0d=_0x37c4cc?_0x35493d['count']:_0x5005ba[_0x68ef('0x1f')]+_0x5005ba[_0x68ef('0x21')];var _0x318514;if(_0x4ade0d>=_0x54139e){_0x4ade0d=_0x54139e;_0x318514=0xc8;}else{_0x318514=0xce;}_0x24682d['status'](_0x318514);return _0x24682d[_0x68ef('0x22')](_0x68ef('0x23'),_0x2633c1+'-'+_0x4ade0d+'/'+_0x54139e)[_0x68ef('0x1e')](_0x35493d);}return null;};}function patchUpdates(_0x5b246b){return function(_0x3c46d4){try{jsonpatch[_0x68ef('0x24')](_0x3c46d4,_0x5b246b,!![]);}catch(_0x5af19f){return BPromise[_0x68ef('0x25')](_0x5af19f);}return _0x3c46d4[_0x68ef('0x26')]();};}function saveUpdates(_0x19aa3d,_0x5ddec7){return function(_0x59723c){if(_0x59723c){return _0x59723c['update'](_0x19aa3d)[_0x68ef('0x27')](function(_0x2023f2){return _0x2023f2;});}return null;};}function removeEntity(_0x312cc9,_0x2e6e39){return function(_0x438b4c){if(_0x438b4c){return _0x438b4c[_0x68ef('0x28')]()[_0x68ef('0x27')](function(){var _0x49374f=_0x438b4c[_0x68ef('0x29')]({'plain':!![]});var _0x13280b='Metrics';return db[_0x68ef('0x2a')]['destroy']({'where':{'type':_0x13280b,'resourceId':_0x49374f['id']}})['then'](function(){return _0x438b4c;});})['then'](function(){_0x312cc9[_0x68ef('0x1d')](0xcc)[_0x68ef('0x1c')]();});}};}function handleEntityNotFound(_0x123041,_0x29518e){return function(_0x52e67e){if(!_0x52e67e){_0x123041['sendStatus'](0x194);}return _0x52e67e;};}function handleError(_0x1cbe4f,_0x28907a){_0x28907a=_0x28907a||0x1f4;return function(_0x7bf96){logger[_0x68ef('0x2b')](_0x7bf96[_0x68ef('0x2c')]);if(_0x7bf96[_0x68ef('0x2d')]){delete _0x7bf96[_0x68ef('0x2d')];}_0x1cbe4f[_0x68ef('0x1d')](_0x28907a)['send'](_0x7bf96);};}exports[_0x68ef('0x2e')]=function(_0x4314bd,_0x132d9e){var _0x4c25aa={},_0x370a8f={},_0x523120={'count':0x0,'rows':[]};var _0x133788=_[_0x68ef('0x2f')](db['AnalyticMetric']['rawAttributes'],function(_0x159395){return{'name':_0x159395[_0x68ef('0x30')],'type':_0x159395['type'][_0x68ef('0x31')]};});_0x370a8f[_0x68ef('0x32')]=_[_0x68ef('0x2f')](_0x133788,_0x68ef('0x2d'));_0x370a8f['query']=_[_0x68ef('0x33')](_0x4314bd[_0x68ef('0x34')]);_0x370a8f['filters']=_[_0x68ef('0x35')](_0x370a8f['model'],_0x370a8f[_0x68ef('0x34')]);_0x4c25aa[_0x68ef('0x36')]=_['intersection'](_0x370a8f[_0x68ef('0x32')],qs['fields'](_0x4314bd[_0x68ef('0x34')]['fields']));_0x4c25aa[_0x68ef('0x36')]=_0x4c25aa[_0x68ef('0x36')][_0x68ef('0x37')]?_0x4c25aa['attributes']:_0x370a8f[_0x68ef('0x32')];if(!_0x4314bd['query'][_0x68ef('0x38')]('nolimit')){_0x4c25aa[_0x68ef('0x21')]=qs[_0x68ef('0x21')](_0x4314bd[_0x68ef('0x34')][_0x68ef('0x21')]);_0x4c25aa[_0x68ef('0x1f')]=qs[_0x68ef('0x1f')](_0x4314bd['query'][_0x68ef('0x1f')]);}_0x4c25aa[_0x68ef('0x39')]=qs[_0x68ef('0x3a')](_0x4314bd['query'][_0x68ef('0x3a')]);_0x4c25aa[_0x68ef('0x3b')]=qs[_0x68ef('0x3c')](_['pick'](_0x4314bd['query'],_0x370a8f[_0x68ef('0x3c')]),_0x133788);if(_0x4314bd[_0x68ef('0x34')][_0x68ef('0x3d')]){_0x4c25aa[_0x68ef('0x3b')]=_[_0x68ef('0x3e')](_0x4c25aa[_0x68ef('0x3b')],{'$or':_[_0x68ef('0x2f')](_0x133788,function(_0x5b1246){if(_0x5b1246[_0x68ef('0x3f')]!==_0x68ef('0x40')){var _0x2f6ee0={};_0x2f6ee0[_0x5b1246[_0x68ef('0x2d')]]={'$like':'%'+_0x4314bd['query'][_0x68ef('0x3d')]+'%'};return _0x2f6ee0;}})});}_0x4c25aa=_[_0x68ef('0x3e')]({},_0x4c25aa,_0x4314bd[_0x68ef('0x41')]);var _0x410c10={'where':_0x4c25aa[_0x68ef('0x3b')]};return db[_0x68ef('0x42')]['count'](_0x410c10)[_0x68ef('0x27')](function(_0x3f7699){_0x523120[_0x68ef('0x43')]=_0x3f7699;if(_0x4314bd[_0x68ef('0x34')][_0x68ef('0x44')]){_0x4c25aa[_0x68ef('0x45')]=[{'all':!![]}];}return db[_0x68ef('0x42')][_0x68ef('0x46')](_0x4c25aa);})[_0x68ef('0x27')](function(_0x531096){_0x523120[_0x68ef('0x47')]=_0x531096;return _0x523120;})[_0x68ef('0x27')](respondWithFilteredResult(_0x132d9e,_0x4c25aa))[_0x68ef('0x48')](handleError(_0x132d9e,null));};exports[_0x68ef('0x49')]=function(_0xdeacf2,_0x183377){var _0xcac58f={'raw':!![],'where':{'id':_0xdeacf2[_0x68ef('0x4a')]['id']}},_0x576767={};_0x576767['model']=_[_0x68ef('0x33')](db[_0x68ef('0x42')][_0x68ef('0x4b')]);_0x576767[_0x68ef('0x34')]=_['keys'](_0xdeacf2[_0x68ef('0x34')]);_0x576767['filters']=_[_0x68ef('0x35')](_0x576767['model'],_0x576767[_0x68ef('0x34')]);_0xcac58f[_0x68ef('0x36')]=_[_0x68ef('0x35')](_0x576767['model'],qs['fields'](_0xdeacf2[_0x68ef('0x34')][_0x68ef('0x4c')]));_0xcac58f['attributes']=_0xcac58f['attributes']['length']?_0xcac58f[_0x68ef('0x36')]:_0x576767[_0x68ef('0x32')];if(_0xdeacf2[_0x68ef('0x34')][_0x68ef('0x44')]){_0xcac58f[_0x68ef('0x45')]=[{'all':!![]}];}_0xcac58f=_['merge']({},_0xcac58f,_0xdeacf2['options']);return db[_0x68ef('0x42')][_0x68ef('0x4d')](_0xcac58f)[_0x68ef('0x27')](handleEntityNotFound(_0x183377,null))[_0x68ef('0x27')](respondWithResult(_0x183377,null))['catch'](handleError(_0x183377,null));};exports[_0x68ef('0x4e')]=function(_0x474e5a,_0x1c9b6f){return db[_0x68ef('0x42')]['create'](_0x474e5a['body'],{})[_0x68ef('0x27')](function(_0x3c3074){var _0x566e7c=_0x474e5a[_0x68ef('0x4f')][_0x68ef('0x29')]({'plain':!![]});if(!_0x566e7c)throw new Error(_0x68ef('0x50'));if(_0x566e7c[_0x68ef('0x51')]===_0x68ef('0x4f')){var _0x4f0f77=_0x3c3074[_0x68ef('0x29')]({'plain':!![]});var _0x3984ca=_0x68ef('0x52');return db['UserProfileSection'][_0x68ef('0x4d')]({'where':{'name':_0x3984ca,'userProfileId':_0x566e7c[_0x68ef('0x53')]},'raw':!![]})[_0x68ef('0x27')](function(_0x50ef1f){if(_0x50ef1f&&_0x50ef1f[_0x68ef('0x54')]===0x0){return db['UserProfileResource']['create']({'name':_0x4f0f77[_0x68ef('0x2d')],'resourceId':_0x4f0f77['id'],'type':_0x50ef1f['name'],'sectionId':_0x50ef1f['id']},{})[_0x68ef('0x27')](function(){return _0x3c3074;});}else{return _0x3c3074;}})[_0x68ef('0x48')](function(_0x53ebd){logger[_0x68ef('0x2b')](_0x68ef('0x55'),_0x53ebd);throw _0x53ebd;});}return _0x3c3074;})[_0x68ef('0x27')](respondWithResult(_0x1c9b6f,0xc9))[_0x68ef('0x48')](handleError(_0x1c9b6f,null));};exports[_0x68ef('0x56')]=function(_0x2b35f4,_0x247915){if(_0x2b35f4['body']['id']){delete _0x2b35f4['body']['id'];}return db[_0x68ef('0x42')][_0x68ef('0x4d')]({'where':{'id':_0x2b35f4[_0x68ef('0x4a')]['id']}})[_0x68ef('0x27')](handleEntityNotFound(_0x247915,null))[_0x68ef('0x27')](saveUpdates(_0x2b35f4[_0x68ef('0x57')],null))[_0x68ef('0x27')](respondWithResult(_0x247915,null))[_0x68ef('0x48')](handleError(_0x247915,null));};exports[_0x68ef('0x28')]=function(_0x4c2e9c,_0x5685bb){return db[_0x68ef('0x42')]['find']({'where':{'id':_0x4c2e9c[_0x68ef('0x4a')]['id']}})['then'](handleEntityNotFound(_0x5685bb,null))[_0x68ef('0x27')](removeEntity(_0x5685bb,null))[_0x68ef('0x48')](handleError(_0x5685bb,null));};
\ No newline at end of file
+var _0x7217=['Content-Range','apply','reject','save','update','then','destroy','get','Metrics','UserProfileResource','sendStatus','error','stack','name','send','index','map','AnalyticMetric','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','length','nolimit','sort','where','pick','filter','VIRTUAL','merge','options','includeAll','include','rows','catch','show','params','rawAttributes','find','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','create','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','limit','count','set'];(function(_0x386d12,_0x1c6ca8){var _0x5caf2c=function(_0x596c44){while(--_0x596c44){_0x386d12['push'](_0x386d12['shift']());}};_0x5caf2c(++_0x1c6ca8);}(_0x7217,0x19e));var _0x7721=function(_0xf71120,_0x25b7f9){_0xf71120=_0xf71120-0x0;var _0xbe2fd3=_0x7217[_0xf71120];return _0xbe2fd3;};'use strict';var emlformat=require(_0x7721('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x7721('0x1'));var jsonpatch=require(_0x7721('0x2'));var rp=require(_0x7721('0x3'));var moment=require(_0x7721('0x4'));var BPromise=require(_0x7721('0x5'));var Mustache=require('mustache');var util=require('util');var path=require(_0x7721('0x6'));var sox=require(_0x7721('0x7'));var csv=require(_0x7721('0x8'));var ejs=require(_0x7721('0x9'));var fs=require('fs');var fs_extra=require(_0x7721('0xa'));var _=require(_0x7721('0xb'));var squel=require(_0x7721('0xc'));var crypto=require(_0x7721('0xd'));var jsforce=require(_0x7721('0xe'));var deskjs=require(_0x7721('0xf'));var toCsv=require(_0x7721('0x8'));var querystring=require(_0x7721('0x10'));var Papa=require(_0x7721('0x11'));var Redis=require(_0x7721('0x12'));var authService=require(_0x7721('0x13'));var qs=require('../../components/parsers/qs');var as=require(_0x7721('0x14'));var hardwareService=require(_0x7721('0x15'));var logger=require(_0x7721('0x16'))(_0x7721('0x17'));var utils=require(_0x7721('0x18'));var config=require(_0x7721('0x19'));var licenseUtil=require(_0x7721('0x1a'));var db=require(_0x7721('0x1b'))['db'];function respondWithStatusCode(_0x55b4ca,_0x2911ec){_0x2911ec=_0x2911ec||0xcc;return function(_0x199930){if(_0x199930){return _0x55b4ca['sendStatus'](_0x2911ec);}return _0x55b4ca[_0x7721('0x1c')](_0x2911ec)[_0x7721('0x1d')]();};}function respondWithResult(_0x3f01c5,_0x2e9752){_0x2e9752=_0x2e9752||0xc8;return function(_0x5069da){if(_0x5069da){return _0x3f01c5[_0x7721('0x1c')](_0x2e9752)[_0x7721('0x1e')](_0x5069da);}};}function respondWithFilteredResult(_0x534f1b,_0x4e199a){return function(_0x4b183e){if(_0x4b183e){var _0x5ed54=typeof _0x4e199a[_0x7721('0x1f')]===_0x7721('0x20')&&typeof _0x4e199a[_0x7721('0x21')]==='undefined';var _0x20f669=_0x4b183e['count'];var _0x3fc09e=_0x5ed54?0x0:_0x4e199a['offset'];var _0xfec626=_0x5ed54?_0x4b183e[_0x7721('0x22')]:_0x4e199a[_0x7721('0x1f')]+_0x4e199a[_0x7721('0x21')];var _0x2286e5;if(_0xfec626>=_0x20f669){_0xfec626=_0x20f669;_0x2286e5=0xc8;}else{_0x2286e5=0xce;}_0x534f1b[_0x7721('0x1c')](_0x2286e5);return _0x534f1b[_0x7721('0x23')](_0x7721('0x24'),_0x3fc09e+'-'+_0xfec626+'/'+_0x20f669)[_0x7721('0x1e')](_0x4b183e);}return null;};}function patchUpdates(_0xaeccc4){return function(_0x4ce1db){try{jsonpatch[_0x7721('0x25')](_0x4ce1db,_0xaeccc4,!![]);}catch(_0x2c1583){return BPromise[_0x7721('0x26')](_0x2c1583);}return _0x4ce1db[_0x7721('0x27')]();};}function saveUpdates(_0x57140c,_0x28f5a6){return function(_0x512f31){if(_0x512f31){return _0x512f31[_0x7721('0x28')](_0x57140c)[_0x7721('0x29')](function(_0x3e8a4e){return _0x3e8a4e;});}return null;};}function removeEntity(_0x1caad8,_0x121cc4){return function(_0x395b15){if(_0x395b15){return _0x395b15[_0x7721('0x2a')]()['then'](function(){var _0x216f20=_0x395b15[_0x7721('0x2b')]({'plain':!![]});var _0x125564=_0x7721('0x2c');return db[_0x7721('0x2d')][_0x7721('0x2a')]({'where':{'type':_0x125564,'resourceId':_0x216f20['id']}})[_0x7721('0x29')](function(){return _0x395b15;});})[_0x7721('0x29')](function(){_0x1caad8[_0x7721('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x258ddf,_0x5b0551){return function(_0x499b87){if(!_0x499b87){_0x258ddf[_0x7721('0x2e')](0x194);}return _0x499b87;};}function handleError(_0x343c19,_0x53c904){_0x53c904=_0x53c904||0x1f4;return function(_0x158d98){logger[_0x7721('0x2f')](_0x158d98[_0x7721('0x30')]);if(_0x158d98[_0x7721('0x31')]){delete _0x158d98[_0x7721('0x31')];}_0x343c19['status'](_0x53c904)[_0x7721('0x32')](_0x158d98);};}exports[_0x7721('0x33')]=function(_0x497f9f,_0x4a25c9){var _0xfde9ec={},_0x220bbf={},_0x48f329={'count':0x0,'rows':[]};var _0x46f772=_[_0x7721('0x34')](db[_0x7721('0x35')]['rawAttributes'],function(_0x3d9a32){return{'name':_0x3d9a32[_0x7721('0x36')],'type':_0x3d9a32[_0x7721('0x37')][_0x7721('0x38')]};});_0x220bbf[_0x7721('0x39')]=_['map'](_0x46f772,_0x7721('0x31'));_0x220bbf[_0x7721('0x3a')]=_[_0x7721('0x3b')](_0x497f9f['query']);_0x220bbf[_0x7721('0x3c')]=_[_0x7721('0x3d')](_0x220bbf['model'],_0x220bbf[_0x7721('0x3a')]);_0xfde9ec['attributes']=_[_0x7721('0x3d')](_0x220bbf[_0x7721('0x39')],qs[_0x7721('0x3e')](_0x497f9f[_0x7721('0x3a')][_0x7721('0x3e')]));_0xfde9ec[_0x7721('0x3f')]=_0xfde9ec[_0x7721('0x3f')][_0x7721('0x40')]?_0xfde9ec[_0x7721('0x3f')]:_0x220bbf[_0x7721('0x39')];if(!_0x497f9f[_0x7721('0x3a')]['hasOwnProperty'](_0x7721('0x41'))){_0xfde9ec['limit']=qs[_0x7721('0x21')](_0x497f9f[_0x7721('0x3a')][_0x7721('0x21')]);_0xfde9ec[_0x7721('0x1f')]=qs[_0x7721('0x1f')](_0x497f9f[_0x7721('0x3a')]['offset']);}_0xfde9ec['order']=qs['sort'](_0x497f9f['query'][_0x7721('0x42')]);_0xfde9ec[_0x7721('0x43')]=qs[_0x7721('0x3c')](_[_0x7721('0x44')](_0x497f9f['query'],_0x220bbf[_0x7721('0x3c')]),_0x46f772);if(_0x497f9f['query'][_0x7721('0x45')]){_0xfde9ec[_0x7721('0x43')]=_['merge'](_0xfde9ec[_0x7721('0x43')],{'$or':_[_0x7721('0x34')](_0x46f772,function(_0x4e77ff){if(_0x4e77ff['type']!==_0x7721('0x46')){var _0xfc4dc4={};_0xfc4dc4[_0x4e77ff[_0x7721('0x31')]]={'$like':'%'+_0x497f9f[_0x7721('0x3a')]['filter']+'%'};return _0xfc4dc4;}})});}_0xfde9ec=_[_0x7721('0x47')]({},_0xfde9ec,_0x497f9f[_0x7721('0x48')]);var _0x40ce8c={'where':_0xfde9ec[_0x7721('0x43')]};return db[_0x7721('0x35')]['count'](_0x40ce8c)[_0x7721('0x29')](function(_0x4a2c28){_0x48f329[_0x7721('0x22')]=_0x4a2c28;if(_0x497f9f['query'][_0x7721('0x49')]){_0xfde9ec[_0x7721('0x4a')]=[{'all':!![]}];}return db[_0x7721('0x35')]['findAll'](_0xfde9ec);})[_0x7721('0x29')](function(_0x11d853){_0x48f329[_0x7721('0x4b')]=_0x11d853;return _0x48f329;})['then'](respondWithFilteredResult(_0x4a25c9,_0xfde9ec))[_0x7721('0x4c')](handleError(_0x4a25c9,null));};exports[_0x7721('0x4d')]=function(_0xdb3033,_0x2d5f35){var _0x135dbc={'raw':!![],'where':{'id':_0xdb3033[_0x7721('0x4e')]['id']}},_0x57d09b={};_0x57d09b['model']=_['keys'](db[_0x7721('0x35')][_0x7721('0x4f')]);_0x57d09b[_0x7721('0x3a')]=_[_0x7721('0x3b')](_0xdb3033[_0x7721('0x3a')]);_0x57d09b[_0x7721('0x3c')]=_[_0x7721('0x3d')](_0x57d09b[_0x7721('0x39')],_0x57d09b[_0x7721('0x3a')]);_0x135dbc[_0x7721('0x3f')]=_['intersection'](_0x57d09b['model'],qs[_0x7721('0x3e')](_0xdb3033[_0x7721('0x3a')][_0x7721('0x3e')]));_0x135dbc[_0x7721('0x3f')]=_0x135dbc['attributes'][_0x7721('0x40')]?_0x135dbc[_0x7721('0x3f')]:_0x57d09b['model'];if(_0xdb3033[_0x7721('0x3a')]['includeAll']){_0x135dbc[_0x7721('0x4a')]=[{'all':!![]}];}_0x135dbc=_['merge']({},_0x135dbc,_0xdb3033[_0x7721('0x48')]);return db[_0x7721('0x35')][_0x7721('0x50')](_0x135dbc)['then'](handleEntityNotFound(_0x2d5f35,null))[_0x7721('0x29')](respondWithResult(_0x2d5f35,null))[_0x7721('0x4c')](handleError(_0x2d5f35,null));};exports['create']=function(_0x223d93,_0x1196c2){return db[_0x7721('0x35')]['create'](_0x223d93[_0x7721('0x51')],{})['then'](function(_0xdb1ca8){var _0x310549=_0x223d93[_0x7721('0x52')][_0x7721('0x2b')]({'plain':!![]});if(!_0x310549)throw new Error(_0x7721('0x53'));if(_0x310549[_0x7721('0x54')]===_0x7721('0x52')){var _0x7fbb73=_0xdb1ca8[_0x7721('0x2b')]({'plain':!![]});var _0x3386aa=_0x7721('0x2c');return db[_0x7721('0x55')][_0x7721('0x50')]({'where':{'name':_0x3386aa,'userProfileId':_0x310549[_0x7721('0x56')]},'raw':!![]})[_0x7721('0x29')](function(_0x5b741d){if(_0x5b741d&&_0x5b741d[_0x7721('0x57')]===0x0){return db[_0x7721('0x2d')][_0x7721('0x58')]({'name':_0x7fbb73[_0x7721('0x31')],'resourceId':_0x7fbb73['id'],'type':_0x5b741d[_0x7721('0x31')],'sectionId':_0x5b741d['id']},{})[_0x7721('0x29')](function(){return _0xdb1ca8;});}else{return _0xdb1ca8;}})[_0x7721('0x4c')](function(_0x57484c){logger[_0x7721('0x2f')](_0x7721('0x59'),_0x57484c);throw _0x57484c;});}return _0xdb1ca8;})[_0x7721('0x29')](respondWithResult(_0x1196c2,0xc9))[_0x7721('0x4c')](handleError(_0x1196c2,null));};exports[_0x7721('0x28')]=function(_0x9c0d4,_0x7fbd6c){if(_0x9c0d4[_0x7721('0x51')]['id']){delete _0x9c0d4[_0x7721('0x51')]['id'];}return db[_0x7721('0x35')][_0x7721('0x50')]({'where':{'id':_0x9c0d4['params']['id']}})[_0x7721('0x29')](handleEntityNotFound(_0x7fbd6c,null))[_0x7721('0x29')](saveUpdates(_0x9c0d4[_0x7721('0x51')],null))[_0x7721('0x29')](respondWithResult(_0x7fbd6c,null))[_0x7721('0x4c')](handleError(_0x7fbd6c,null));};exports[_0x7721('0x2a')]=function(_0x41644f,_0x36fe6f){return db[_0x7721('0x35')][_0x7721('0x50')]({'where':{'id':_0x41644f[_0x7721('0x4e')]['id']}})[_0x7721('0x29')](handleEntityNotFound(_0x36fe6f,null))[_0x7721('0x29')](removeEntity(_0x36fe6f,null))[_0x7721('0x4c')](handleError(_0x36fe6f,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb0df=['analytics_metrics','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','exports','AnalyticMetric'];(function(_0x2082bb,_0x216c62){var _0x8ceeeb=function(_0x2b9a60){while(--_0x2b9a60){_0x2082bb['push'](_0x2082bb['shift']());}};_0x8ceeeb(++_0x216c62);}(_0xb0df,0x85));var _0xfb0d=function(_0x673722,_0x275d7e){_0x673722=_0x673722-0x0;var _0x21249c=_0xb0df[_0x673722];return _0x21249c;};'use strict';var _=require('lodash');var util=require(_0xfb0d('0x0'));var logger=require(_0xfb0d('0x1'))(_0xfb0d('0x2'));var moment=require(_0xfb0d('0x3'));var BPromise=require(_0xfb0d('0x4'));var rp=require(_0xfb0d('0x5'));var fs=require('fs');var path=require(_0xfb0d('0x6'));var rimraf=require(_0xfb0d('0x7'));var config=require(_0xfb0d('0x8'));var attributes=require('./analyticMetric.attributes');module[_0xfb0d('0x9')]=function(_0x12458c,_0x58e4c0){return _0x12458c['define'](_0xfb0d('0xa'),attributes,{'tableName':_0xfb0d('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xe5e0=['../../config/logger','api','moment','bluebird','request-promise','path','rimraf','./analyticMetric.attributes','exports','define','AnalyticMetric','analytics_metrics','lodash','util'];(function(_0x4de5a7,_0x18c50d){var _0x2cefc1=function(_0x3ac2c6){while(--_0x3ac2c6){_0x4de5a7['push'](_0x4de5a7['shift']());}};_0x2cefc1(++_0x18c50d);}(_0xe5e0,0x1be));var _0x0e5e=function(_0x41a727,_0x1cf419){_0x41a727=_0x41a727-0x0;var _0x3eef84=_0xe5e0[_0x41a727];return _0x3eef84;};'use strict';var _=require(_0x0e5e('0x0'));var util=require(_0x0e5e('0x1'));var logger=require(_0x0e5e('0x2'))(_0x0e5e('0x3'));var moment=require(_0x0e5e('0x4'));var BPromise=require(_0x0e5e('0x5'));var rp=require(_0x0e5e('0x6'));var fs=require('fs');var path=require(_0x0e5e('0x7'));var rimraf=require(_0x0e5e('0x8'));var config=require('../../config/environment');var attributes=require(_0x0e5e('0x9'));module[_0x0e5e('0xa')]=function(_0x14afb0,_0x5f044c){return _0x14afb0[_0x0e5e('0xb')](_0x0e5e('0xc'),attributes,{'tableName':_0x0e5e('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4404=['../../config/logger','request','then','info','AnalyticMetric,\x20%s,\x20%s','request\x20sent','debug','AnalyticMetric,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils'];(function(_0x25dd3b,_0x27e043){var _0x3084aa=function(_0x45f3c1){while(--_0x45f3c1){_0x25dd3b['push'](_0x25dd3b['shift']());}};_0x3084aa(++_0x27e043);}(_0x4404,0x16e));var _0x4440=function(_0x494fcb,_0x4f6a92){_0x494fcb=_0x494fcb-0x0;var _0x1a3a98=_0x4404[_0x494fcb];return _0x1a3a98;};'use strict';var _=require(_0x4440('0x0'));var util=require(_0x4440('0x1'));var moment=require(_0x4440('0x2'));var BPromise=require(_0x4440('0x3'));var rs=require(_0x4440('0x4'));var fs=require('fs');var Redis=require(_0x4440('0x5'));var db=require(_0x4440('0x6'))['db'];var utils=require(_0x4440('0x7'));var logger=require(_0x4440('0x8'))('rpc');var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x1ed9a8,_0x4626d2,_0x21f35c){return new BPromise(function(_0x57b514,_0x567895){return client[_0x4440('0x9')](_0x1ed9a8,_0x21f35c)[_0x4440('0xa')](function(_0x440080){logger[_0x4440('0xb')](_0x4440('0xc'),_0x4626d2,_0x4440('0xd'));logger[_0x4440('0xe')](_0x4440('0xf'),_0x4626d2,'request\x20sent',JSON[_0x4440('0x10')](_0x440080));if(_0x440080['error']){if(_0x440080[_0x4440('0x11')][_0x4440('0x12')]===0x1f4){logger[_0x4440('0x11')](_0x4440('0xc'),_0x4626d2,_0x440080[_0x4440('0x11')][_0x4440('0x13')]);return _0x567895(_0x440080[_0x4440('0x11')]['message']);}logger['error'](_0x4440('0xc'),_0x4626d2,_0x440080['error'][_0x4440('0x13')]);return _0x57b514(_0x440080[_0x4440('0x11')][_0x4440('0x13')]);}else{logger[_0x4440('0xb')](_0x4440('0xc'),_0x4626d2,'request\x20sent');_0x57b514(_0x440080[_0x4440('0x14')][_0x4440('0x13')]);}})[_0x4440('0x15')](function(_0x502549){logger[_0x4440('0x11')](_0x4440('0xc'),_0x4626d2,_0x502549);_0x567895(_0x502549);});});}
\ No newline at end of file
+var _0xe7f1=['catch','lodash','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','AnalyticMetric,\x20%s,\x20%s','request\x20sent','debug','error','code','message','info'];(function(_0x45096e,_0x17e82d){var _0xba1fa3=function(_0x29f43c){while(--_0x29f43c){_0x45096e['push'](_0x45096e['shift']());}};_0xba1fa3(++_0x17e82d);}(_0xe7f1,0x171));var _0x1e7f=function(_0xffe6ea,_0x453117){_0xffe6ea=_0xffe6ea-0x0;var _0x425e16=_0xe7f1[_0xffe6ea];return _0x425e16;};'use strict';var _=require(_0x1e7f('0x0'));var util=require(_0x1e7f('0x1'));var moment=require(_0x1e7f('0x2'));var BPromise=require(_0x1e7f('0x3'));var rs=require(_0x1e7f('0x4'));var fs=require('fs');var Redis=require(_0x1e7f('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0x1e7f('0x6'));var logger=require(_0x1e7f('0x7'))(_0x1e7f('0x8'));var config=require(_0x1e7f('0x9'));var jayson=require(_0x1e7f('0xa'));var client=jayson[_0x1e7f('0xb')][_0x1e7f('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x55e490,_0x52b9b1,_0x4a2196){return new BPromise(function(_0x29a0ab,_0x73015c){return client[_0x1e7f('0xd')](_0x55e490,_0x4a2196)[_0x1e7f('0xe')](function(_0x58ba7f){logger['info'](_0x1e7f('0xf'),_0x52b9b1,_0x1e7f('0x10'));logger[_0x1e7f('0x11')]('AnalyticMetric,\x20%s,\x20%s,\x20%s',_0x52b9b1,'request\x20sent',JSON['stringify'](_0x58ba7f));if(_0x58ba7f[_0x1e7f('0x12')]){if(_0x58ba7f[_0x1e7f('0x12')][_0x1e7f('0x13')]===0x1f4){logger['error'](_0x1e7f('0xf'),_0x52b9b1,_0x58ba7f[_0x1e7f('0x12')]['message']);return _0x73015c(_0x58ba7f[_0x1e7f('0x12')]['message']);}logger['error'](_0x1e7f('0xf'),_0x52b9b1,_0x58ba7f[_0x1e7f('0x12')][_0x1e7f('0x14')]);return _0x29a0ab(_0x58ba7f['error']['message']);}else{logger[_0x1e7f('0x15')]('AnalyticMetric,\x20%s,\x20%s',_0x52b9b1,'request\x20sent');_0x29a0ab(_0x58ba7f['result']['message']);}})[_0x1e7f('0x16')](function(_0x3b50be){logger[_0x1e7f('0x12')](_0x1e7f('0xf'),_0x52b9b1,_0x3b50be);_0x73015c(_0x3b50be);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7412=['delete','destroy','exports','multer','connect-timeout','Router','isAuthenticated','index','get','show','post','put','/:id','update'];(function(_0x307888,_0x2e8d30){var _0x3af557=function(_0x48aa49){while(--_0x48aa49){_0x307888['push'](_0x307888['shift']());}};_0x3af557(++_0x2e8d30);}(_0x7412,0x161));var _0x2741=function(_0xfa634c,_0x414e0e){_0xfa634c=_0xfa634c-0x0;var _0x73e478=_0x7412[_0xfa634c];return _0x73e478;};'use strict';var multer=require(_0x2741('0x0'));var util=require('util');var path=require('path');var timeout=require(_0x2741('0x1'));var express=require('express');var router=express[_0x2741('0x2')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require('./analyticMetric.controller');router['get']('/',auth[_0x2741('0x3')](),controller[_0x2741('0x4')]);router[_0x2741('0x5')]('/:id',auth[_0x2741('0x3')](),controller[_0x2741('0x6')]);router[_0x2741('0x7')]('/',auth[_0x2741('0x3')](),controller['create']);router[_0x2741('0x8')](_0x2741('0x9'),auth[_0x2741('0x3')](),controller[_0x2741('0xa')]);router[_0x2741('0xb')]('/:id',auth[_0x2741('0x3')](),controller[_0x2741('0xc')]);module[_0x2741('0xd')]=router;
\ No newline at end of file
+var _0xd6d2=['../../config/environment','./analyticMetric.controller','isAuthenticated','index','get','/:id','show','post','create','put','update','delete','destroy','multer','util','connect-timeout','express','fs-extra','../../components/interaction/service'];(function(_0x4a23a9,_0x17a2c0){var _0x18c27f=function(_0x3414e3){while(--_0x3414e3){_0x4a23a9['push'](_0x4a23a9['shift']());}};_0x18c27f(++_0x17a2c0);}(_0xd6d2,0xcb));var _0x2d6d=function(_0x17f9d2,_0x3f7ba7){_0x17f9d2=_0x17f9d2-0x0;var _0x2959cd=_0xd6d2[_0x17f9d2];return _0x2959cd;};'use strict';var multer=require(_0x2d6d('0x0'));var util=require(_0x2d6d('0x1'));var path=require('path');var timeout=require(_0x2d6d('0x2'));var express=require(_0x2d6d('0x3'));var router=express['Router']();var fs_extra=require(_0x2d6d('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0x2d6d('0x5'));var config=require(_0x2d6d('0x6'));var controller=require(_0x2d6d('0x7'));router['get']('/',auth[_0x2d6d('0x8')](),controller[_0x2d6d('0x9')]);router[_0x2d6d('0xa')](_0x2d6d('0xb'),auth[_0x2d6d('0x8')](),controller[_0x2d6d('0xc')]);router[_0x2d6d('0xd')]('/',auth[_0x2d6d('0x8')](),controller[_0x2d6d('0xe')]);router[_0x2d6d('0xf')](_0x2d6d('0xb'),auth['isAuthenticated'](),controller[_0x2d6d('0x10')]);router[_0x2d6d('0x11')](_0x2d6d('0xb'),auth[_0x2d6d('0x8')](),controller[_0x2d6d('0x12')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfb6a=['TEXT','sequelize'];(function(_0x3cfc01,_0x4ea6b9){var _0x52d02c=function(_0x375398){while(--_0x375398){_0x3cfc01['push'](_0x3cfc01['shift']());}};_0x52d02c(++_0x4ea6b9);}(_0xfb6a,0x79));var _0xafb6=function(_0x564e9f,_0x225a15){_0x564e9f=_0x564e9f-0x0;var _0x3a9f3e=_0xfb6a[_0x564e9f];return _0x3a9f3e;};'use strict';var Sequelize=require(_0xafb6('0x0'));module['exports']={'tree':{'type':Sequelize[_0xafb6('0x1')],'allowNull':![]}};
\ No newline at end of file
+var _0xcdb1=['exports','sequelize'];(function(_0x46981d,_0x1332be){var _0x37e4d5=function(_0x18bdcd){while(--_0x18bdcd){_0x46981d['push'](_0x46981d['shift']());}};_0x37e4d5(++_0x1332be);}(_0xcdb1,0x177));var _0x1cdb=function(_0x3ab51d,_0x2fa01d){_0x3ab51d=_0x3ab51d-0x0;var _0x29a04e=_0xcdb1[_0x3ab51d];return _0x29a04e;};'use strict';var Sequelize=require(_0x1cdb('0x0'));module[_0x1cdb('0x1')]={'tree':{'type':Sequelize['TEXT'],'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5024=['findAll','rows','catch','show','params','include','create','body','find','eml-format','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','jsforce','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','end','status','offset','limit','undefined','set','Content-Range','json','apply','reject','update','then','destroy','sendStatus','stack','send','index','map','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','length','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','name','options','AnalyticTreeReport','count','includeAll'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x5024,0x16c));var _0x4502=function(_0x4d9ad1,_0x467b48){_0x4d9ad1=_0x4d9ad1-0x0;var _0x4962dd=_0x5024[_0x4d9ad1];return _0x4962dd;};'use strict';var emlformat=require(_0x4502('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x4502('0x1'));var BPromise=require(_0x4502('0x2'));var Mustache=require(_0x4502('0x3'));var util=require(_0x4502('0x4'));var path=require('path');var sox=require(_0x4502('0x5'));var csv=require(_0x4502('0x6'));var ejs=require(_0x4502('0x7'));var fs=require('fs');var fs_extra=require(_0x4502('0x8'));var _=require(_0x4502('0x9'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x4502('0xa'));var deskjs=require('desk.js');var toCsv=require(_0x4502('0x6'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x4502('0xb'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x4502('0xc'));var hardwareService=require(_0x4502('0xd'));var logger=require(_0x4502('0xe'))(_0x4502('0xf'));var utils=require(_0x4502('0x10'));var config=require('../../config/environment');var licenseUtil=require(_0x4502('0x11'));var db=require(_0x4502('0x12'))['db'];function respondWithStatusCode(_0x2c459f,_0x22c7a6){_0x22c7a6=_0x22c7a6||0xcc;return function(_0x43a701){if(_0x43a701){return _0x2c459f['sendStatus'](_0x22c7a6);}return _0x2c459f['status'](_0x22c7a6)[_0x4502('0x13')]();};}function respondWithResult(_0x4bb5ba,_0x41af7f){_0x41af7f=_0x41af7f||0xc8;return function(_0x235a3d){if(_0x235a3d){return _0x4bb5ba[_0x4502('0x14')](_0x41af7f)['json'](_0x235a3d);}};}function respondWithFilteredResult(_0x399d60,_0x378a0a){return function(_0x5300b8){if(_0x5300b8){var _0x308bd4=typeof _0x378a0a[_0x4502('0x15')]==='undefined'&&typeof _0x378a0a[_0x4502('0x16')]===_0x4502('0x17');var _0x5894f7=_0x5300b8['count'];var _0x43b8f5=_0x308bd4?0x0:_0x378a0a[_0x4502('0x15')];var _0x35c4e4=_0x308bd4?_0x5300b8['count']:_0x378a0a[_0x4502('0x15')]+_0x378a0a[_0x4502('0x16')];var _0x4eb3f1;if(_0x35c4e4>=_0x5894f7){_0x35c4e4=_0x5894f7;_0x4eb3f1=0xc8;}else{_0x4eb3f1=0xce;}_0x399d60[_0x4502('0x14')](_0x4eb3f1);return _0x399d60[_0x4502('0x18')](_0x4502('0x19'),_0x43b8f5+'-'+_0x35c4e4+'/'+_0x5894f7)[_0x4502('0x1a')](_0x5300b8);}return null;};}function patchUpdates(_0x1c4441){return function(_0xcf8ee1){try{jsonpatch[_0x4502('0x1b')](_0xcf8ee1,_0x1c4441,!![]);}catch(_0x303b9e){return BPromise[_0x4502('0x1c')](_0x303b9e);}return _0xcf8ee1['save']();};}function saveUpdates(_0x3ef6b1,_0x406924){return function(_0x577455){if(_0x577455){return _0x577455[_0x4502('0x1d')](_0x3ef6b1)[_0x4502('0x1e')](function(_0x428075){return _0x428075;});}return null;};}function removeEntity(_0x4c1738,_0x1777e8){return function(_0x360f8c){if(_0x360f8c){return _0x360f8c[_0x4502('0x1f')]()['then'](function(){_0x4c1738[_0x4502('0x14')](0xcc)['end']();});}};}function handleEntityNotFound(_0x57cb7e,_0x2503f1){return function(_0x4044f1){if(!_0x4044f1){_0x57cb7e[_0x4502('0x20')](0x194);}return _0x4044f1;};}function handleError(_0x1387bb,_0x20b33){_0x20b33=_0x20b33||0x1f4;return function(_0x4d0a70){logger['error'](_0x4d0a70[_0x4502('0x21')]);if(_0x4d0a70['name']){delete _0x4d0a70['name'];}_0x1387bb[_0x4502('0x14')](_0x20b33)[_0x4502('0x22')](_0x4d0a70);};}exports[_0x4502('0x23')]=function(_0x2bc568,_0x592c19){var _0x3fadf5={},_0x45e5e3={},_0x17023f={'count':0x0,'rows':[]};var _0xc8c37b=_[_0x4502('0x24')](db['AnalyticTreeReport'][_0x4502('0x25')],function(_0x2f3851){return{'name':_0x2f3851[_0x4502('0x26')],'type':_0x2f3851[_0x4502('0x27')][_0x4502('0x28')]};});_0x45e5e3[_0x4502('0x29')]=_[_0x4502('0x24')](_0xc8c37b,'name');_0x45e5e3[_0x4502('0x2a')]=_[_0x4502('0x2b')](_0x2bc568['query']);_0x45e5e3[_0x4502('0x2c')]=_['intersection'](_0x45e5e3[_0x4502('0x29')],_0x45e5e3[_0x4502('0x2a')]);_0x3fadf5['attributes']=_[_0x4502('0x2d')](_0x45e5e3[_0x4502('0x29')],qs[_0x4502('0x2e')](_0x2bc568[_0x4502('0x2a')][_0x4502('0x2e')]));_0x3fadf5[_0x4502('0x2f')]=_0x3fadf5[_0x4502('0x2f')][_0x4502('0x30')]?_0x3fadf5['attributes']:_0x45e5e3[_0x4502('0x29')];if(!_0x2bc568[_0x4502('0x2a')]['hasOwnProperty'](_0x4502('0x31'))){_0x3fadf5[_0x4502('0x16')]=qs[_0x4502('0x16')](_0x2bc568[_0x4502('0x2a')][_0x4502('0x16')]);_0x3fadf5[_0x4502('0x15')]=qs[_0x4502('0x15')](_0x2bc568[_0x4502('0x2a')][_0x4502('0x15')]);}_0x3fadf5[_0x4502('0x32')]=qs[_0x4502('0x33')](_0x2bc568['query'][_0x4502('0x33')]);_0x3fadf5[_0x4502('0x34')]=qs[_0x4502('0x2c')](_[_0x4502('0x35')](_0x2bc568[_0x4502('0x2a')],_0x45e5e3[_0x4502('0x2c')]),_0xc8c37b);if(_0x2bc568[_0x4502('0x2a')][_0x4502('0x36')]){_0x3fadf5[_0x4502('0x34')]=_[_0x4502('0x37')](_0x3fadf5['where'],{'$or':_[_0x4502('0x24')](_0xc8c37b,function(_0xd5e8a8){if(_0xd5e8a8['type']!==_0x4502('0x38')){var _0x688fdd={};_0x688fdd[_0xd5e8a8[_0x4502('0x39')]]={'$like':'%'+_0x2bc568[_0x4502('0x2a')][_0x4502('0x36')]+'%'};return _0x688fdd;}})});}_0x3fadf5=_[_0x4502('0x37')]({},_0x3fadf5,_0x2bc568[_0x4502('0x3a')]);var _0x8f00d2={'where':_0x3fadf5['where']};return db[_0x4502('0x3b')][_0x4502('0x3c')](_0x8f00d2)[_0x4502('0x1e')](function(_0x3d4b13){_0x17023f['count']=_0x3d4b13;if(_0x2bc568[_0x4502('0x2a')][_0x4502('0x3d')]){_0x3fadf5['include']=[{'all':!![]}];}return db['AnalyticTreeReport'][_0x4502('0x3e')](_0x3fadf5);})[_0x4502('0x1e')](function(_0xccc5c3){_0x17023f[_0x4502('0x3f')]=_0xccc5c3;return _0x17023f;})[_0x4502('0x1e')](respondWithFilteredResult(_0x592c19,_0x3fadf5))[_0x4502('0x40')](handleError(_0x592c19,null));};exports[_0x4502('0x41')]=function(_0x42a549,_0x5a9a14){var _0x406811={'raw':!![],'where':{'id':_0x42a549[_0x4502('0x42')]['id']}},_0x4cf132={};_0x4cf132[_0x4502('0x29')]=_['keys'](db['AnalyticTreeReport'][_0x4502('0x25')]);_0x4cf132[_0x4502('0x2a')]=_['keys'](_0x42a549['query']);_0x4cf132[_0x4502('0x2c')]=_[_0x4502('0x2d')](_0x4cf132[_0x4502('0x29')],_0x4cf132[_0x4502('0x2a')]);_0x406811['attributes']=_[_0x4502('0x2d')](_0x4cf132[_0x4502('0x29')],qs[_0x4502('0x2e')](_0x42a549[_0x4502('0x2a')][_0x4502('0x2e')]));_0x406811[_0x4502('0x2f')]=_0x406811[_0x4502('0x2f')][_0x4502('0x30')]?_0x406811[_0x4502('0x2f')]:_0x4cf132[_0x4502('0x29')];if(_0x42a549[_0x4502('0x2a')][_0x4502('0x3d')]){_0x406811[_0x4502('0x43')]=[{'all':!![]}];}_0x406811=_[_0x4502('0x37')]({},_0x406811,_0x42a549[_0x4502('0x3a')]);return db[_0x4502('0x3b')]['find'](_0x406811)[_0x4502('0x1e')](handleEntityNotFound(_0x5a9a14,null))['then'](respondWithResult(_0x5a9a14,null))['catch'](handleError(_0x5a9a14,null));};exports[_0x4502('0x44')]=function(_0x2d6252,_0x113e4b){return db['AnalyticTreeReport'][_0x4502('0x44')](_0x2d6252[_0x4502('0x45')],{})[_0x4502('0x1e')](respondWithResult(_0x113e4b,0xc9))[_0x4502('0x40')](handleError(_0x113e4b,null));};exports[_0x4502('0x1d')]=function(_0x162ef9,_0x5f06ea){if(_0x162ef9[_0x4502('0x45')]['id']){delete _0x162ef9[_0x4502('0x45')]['id'];}return db[_0x4502('0x3b')][_0x4502('0x46')]({'where':{'id':_0x162ef9[_0x4502('0x42')]['id']}})[_0x4502('0x1e')](handleEntityNotFound(_0x5f06ea,null))[_0x4502('0x1e')](saveUpdates(_0x162ef9[_0x4502('0x45')],null))[_0x4502('0x1e')](respondWithResult(_0x5f06ea,null))['catch'](handleError(_0x5f06ea,null));};exports[_0x4502('0x1f')]=function(_0x2169be,_0x437569){return db['AnalyticTreeReport'][_0x4502('0x46')]({'where':{'id':_0x2169be[_0x4502('0x42')]['id']}})[_0x4502('0x1e')](handleEntityNotFound(_0x437569,null))[_0x4502('0x1e')](removeEntity(_0x437569,null))[_0x4502('0x40')](handleError(_0x437569,null));};
\ No newline at end of file
+var _0x2edb=['../../mysqldb','status','json','offset','undefined','count','limit','set','Content-Range','reject','then','end','sendStatus','error','stack','name','send','index','map','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','length','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','AnalyticTreeReport','includeAll','include','findAll','rows','catch','show','fields','find','create','body','params','destroy','rimraf','zip-dir','fast-json-patch','request-promise','mustache','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../config/utils','../../config/environment','../../config/license/util'];(function(_0xaa9085,_0x814743){var _0x35c212=function(_0x515e2b){while(--_0x515e2b){_0xaa9085['push'](_0xaa9085['shift']());}};_0x35c212(++_0x814743);}(_0x2edb,0x1d7));var _0xb2ed=function(_0x269b97,_0x10d133){_0x269b97=_0x269b97-0x0;var _0x120efa=_0x2edb[_0x269b97];return _0x120efa;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xb2ed('0x0'));var zipdir=require(_0xb2ed('0x1'));var jsonpatch=require(_0xb2ed('0x2'));var rp=require(_0xb2ed('0x3'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xb2ed('0x4'));var util=require('util');var path=require('path');var sox=require(_0xb2ed('0x5'));var csv=require(_0xb2ed('0x6'));var ejs=require(_0xb2ed('0x7'));var fs=require('fs');var fs_extra=require(_0xb2ed('0x8'));var _=require('lodash');var squel=require(_0xb2ed('0x9'));var crypto=require(_0xb2ed('0xa'));var jsforce=require(_0xb2ed('0xb'));var deskjs=require(_0xb2ed('0xc'));var toCsv=require(_0xb2ed('0x6'));var querystring=require(_0xb2ed('0xd'));var Papa=require(_0xb2ed('0xe'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0xb2ed('0xf'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')('api');var utils=require(_0xb2ed('0x10'));var config=require(_0xb2ed('0x11'));var licenseUtil=require(_0xb2ed('0x12'));var db=require(_0xb2ed('0x13'))['db'];function respondWithStatusCode(_0x4cdbe7,_0x4264b2){_0x4264b2=_0x4264b2||0xcc;return function(_0xc3a6eb){if(_0xc3a6eb){return _0x4cdbe7['sendStatus'](_0x4264b2);}return _0x4cdbe7['status'](_0x4264b2)['end']();};}function respondWithResult(_0x3dad8d,_0xe31ac2){_0xe31ac2=_0xe31ac2||0xc8;return function(_0xffbf65){if(_0xffbf65){return _0x3dad8d[_0xb2ed('0x14')](_0xe31ac2)[_0xb2ed('0x15')](_0xffbf65);}};}function respondWithFilteredResult(_0x3fc425,_0x4d54af){return function(_0x5d0f76){if(_0x5d0f76){var _0x39b9b5=typeof _0x4d54af[_0xb2ed('0x16')]==='undefined'&&typeof _0x4d54af['limit']===_0xb2ed('0x17');var _0x471755=_0x5d0f76[_0xb2ed('0x18')];var _0x22f79d=_0x39b9b5?0x0:_0x4d54af[_0xb2ed('0x16')];var _0x27d84c=_0x39b9b5?_0x5d0f76[_0xb2ed('0x18')]:_0x4d54af[_0xb2ed('0x16')]+_0x4d54af[_0xb2ed('0x19')];var _0x2b309b;if(_0x27d84c>=_0x471755){_0x27d84c=_0x471755;_0x2b309b=0xc8;}else{_0x2b309b=0xce;}_0x3fc425[_0xb2ed('0x14')](_0x2b309b);return _0x3fc425[_0xb2ed('0x1a')](_0xb2ed('0x1b'),_0x22f79d+'-'+_0x27d84c+'/'+_0x471755)[_0xb2ed('0x15')](_0x5d0f76);}return null;};}function patchUpdates(_0x3a16af){return function(_0x283031){try{jsonpatch['apply'](_0x283031,_0x3a16af,!![]);}catch(_0x439f9b){return BPromise[_0xb2ed('0x1c')](_0x439f9b);}return _0x283031['save']();};}function saveUpdates(_0x3eb820,_0x23f10c){return function(_0x3f95a6){if(_0x3f95a6){return _0x3f95a6['update'](_0x3eb820)[_0xb2ed('0x1d')](function(_0x19c31a){return _0x19c31a;});}return null;};}function removeEntity(_0x59637e,_0x4abac5){return function(_0x46a65a){if(_0x46a65a){return _0x46a65a['destroy']()[_0xb2ed('0x1d')](function(){_0x59637e[_0xb2ed('0x14')](0xcc)[_0xb2ed('0x1e')]();});}};}function handleEntityNotFound(_0x4f60a6,_0x5a38a8){return function(_0x2ecb30){if(!_0x2ecb30){_0x4f60a6[_0xb2ed('0x1f')](0x194);}return _0x2ecb30;};}function handleError(_0x269ce6,_0x3498cc){_0x3498cc=_0x3498cc||0x1f4;return function(_0x53e2bb){logger[_0xb2ed('0x20')](_0x53e2bb[_0xb2ed('0x21')]);if(_0x53e2bb['name']){delete _0x53e2bb[_0xb2ed('0x22')];}_0x269ce6[_0xb2ed('0x14')](_0x3498cc)[_0xb2ed('0x23')](_0x53e2bb);};}exports[_0xb2ed('0x24')]=function(_0x17f3f3,_0x4aa9a5){var _0x37ea0f={},_0x3b0f0b={},_0x1fbbd3={'count':0x0,'rows':[]};var _0x4e48f4=_[_0xb2ed('0x25')](db['AnalyticTreeReport'][_0xb2ed('0x26')],function(_0x129da9){return{'name':_0x129da9[_0xb2ed('0x27')],'type':_0x129da9[_0xb2ed('0x28')][_0xb2ed('0x29')]};});_0x3b0f0b[_0xb2ed('0x2a')]=_[_0xb2ed('0x25')](_0x4e48f4,_0xb2ed('0x22'));_0x3b0f0b[_0xb2ed('0x2b')]=_[_0xb2ed('0x2c')](_0x17f3f3[_0xb2ed('0x2b')]);_0x3b0f0b[_0xb2ed('0x2d')]=_[_0xb2ed('0x2e')](_0x3b0f0b[_0xb2ed('0x2a')],_0x3b0f0b[_0xb2ed('0x2b')]);_0x37ea0f[_0xb2ed('0x2f')]=_[_0xb2ed('0x2e')](_0x3b0f0b['model'],qs['fields'](_0x17f3f3[_0xb2ed('0x2b')]['fields']));_0x37ea0f[_0xb2ed('0x2f')]=_0x37ea0f['attributes'][_0xb2ed('0x30')]?_0x37ea0f[_0xb2ed('0x2f')]:_0x3b0f0b[_0xb2ed('0x2a')];if(!_0x17f3f3['query']['hasOwnProperty'](_0xb2ed('0x31'))){_0x37ea0f['limit']=qs[_0xb2ed('0x19')](_0x17f3f3[_0xb2ed('0x2b')][_0xb2ed('0x19')]);_0x37ea0f[_0xb2ed('0x16')]=qs[_0xb2ed('0x16')](_0x17f3f3['query'][_0xb2ed('0x16')]);}_0x37ea0f[_0xb2ed('0x32')]=qs['sort'](_0x17f3f3[_0xb2ed('0x2b')][_0xb2ed('0x33')]);_0x37ea0f[_0xb2ed('0x34')]=qs[_0xb2ed('0x2d')](_[_0xb2ed('0x35')](_0x17f3f3[_0xb2ed('0x2b')],_0x3b0f0b[_0xb2ed('0x2d')]),_0x4e48f4);if(_0x17f3f3[_0xb2ed('0x2b')][_0xb2ed('0x36')]){_0x37ea0f['where']=_[_0xb2ed('0x37')](_0x37ea0f[_0xb2ed('0x34')],{'$or':_[_0xb2ed('0x25')](_0x4e48f4,function(_0x402fef){if(_0x402fef[_0xb2ed('0x28')]!==_0xb2ed('0x38')){var _0x127b53={};_0x127b53[_0x402fef[_0xb2ed('0x22')]]={'$like':'%'+_0x17f3f3[_0xb2ed('0x2b')][_0xb2ed('0x36')]+'%'};return _0x127b53;}})});}_0x37ea0f=_[_0xb2ed('0x37')]({},_0x37ea0f,_0x17f3f3['options']);var _0xe3b3d8={'where':_0x37ea0f['where']};return db[_0xb2ed('0x39')][_0xb2ed('0x18')](_0xe3b3d8)[_0xb2ed('0x1d')](function(_0x5e82da){_0x1fbbd3[_0xb2ed('0x18')]=_0x5e82da;if(_0x17f3f3['query'][_0xb2ed('0x3a')]){_0x37ea0f[_0xb2ed('0x3b')]=[{'all':!![]}];}return db[_0xb2ed('0x39')][_0xb2ed('0x3c')](_0x37ea0f);})[_0xb2ed('0x1d')](function(_0x4505da){_0x1fbbd3[_0xb2ed('0x3d')]=_0x4505da;return _0x1fbbd3;})['then'](respondWithFilteredResult(_0x4aa9a5,_0x37ea0f))[_0xb2ed('0x3e')](handleError(_0x4aa9a5,null));};exports[_0xb2ed('0x3f')]=function(_0x3ecb65,_0x150dae){var _0x51633e={'raw':!![],'where':{'id':_0x3ecb65['params']['id']}},_0x35843b={};_0x35843b[_0xb2ed('0x2a')]=_[_0xb2ed('0x2c')](db[_0xb2ed('0x39')]['rawAttributes']);_0x35843b[_0xb2ed('0x2b')]=_[_0xb2ed('0x2c')](_0x3ecb65['query']);_0x35843b[_0xb2ed('0x2d')]=_[_0xb2ed('0x2e')](_0x35843b['model'],_0x35843b[_0xb2ed('0x2b')]);_0x51633e['attributes']=_[_0xb2ed('0x2e')](_0x35843b[_0xb2ed('0x2a')],qs[_0xb2ed('0x40')](_0x3ecb65[_0xb2ed('0x2b')][_0xb2ed('0x40')]));_0x51633e[_0xb2ed('0x2f')]=_0x51633e['attributes'][_0xb2ed('0x30')]?_0x51633e[_0xb2ed('0x2f')]:_0x35843b['model'];if(_0x3ecb65['query'][_0xb2ed('0x3a')]){_0x51633e[_0xb2ed('0x3b')]=[{'all':!![]}];}_0x51633e=_[_0xb2ed('0x37')]({},_0x51633e,_0x3ecb65['options']);return db[_0xb2ed('0x39')][_0xb2ed('0x41')](_0x51633e)['then'](handleEntityNotFound(_0x150dae,null))[_0xb2ed('0x1d')](respondWithResult(_0x150dae,null))[_0xb2ed('0x3e')](handleError(_0x150dae,null));};exports[_0xb2ed('0x42')]=function(_0x70f5f9,_0x3eaab0){return db[_0xb2ed('0x39')][_0xb2ed('0x42')](_0x70f5f9[_0xb2ed('0x43')],{})[_0xb2ed('0x1d')](respondWithResult(_0x3eaab0,0xc9))[_0xb2ed('0x3e')](handleError(_0x3eaab0,null));};exports['update']=function(_0x1d1c9e,_0x508026){if(_0x1d1c9e['body']['id']){delete _0x1d1c9e['body']['id'];}return db[_0xb2ed('0x39')]['find']({'where':{'id':_0x1d1c9e[_0xb2ed('0x44')]['id']}})['then'](handleEntityNotFound(_0x508026,null))[_0xb2ed('0x1d')](saveUpdates(_0x1d1c9e[_0xb2ed('0x43')],null))[_0xb2ed('0x1d')](respondWithResult(_0x508026,null))[_0xb2ed('0x3e')](handleError(_0x508026,null));};exports[_0xb2ed('0x45')]=function(_0x241d21,_0x38a3c){return db[_0xb2ed('0x39')]['find']({'where':{'id':_0x241d21['params']['id']}})[_0xb2ed('0x1d')](handleEntityNotFound(_0x38a3c,null))[_0xb2ed('0x1d')](removeEntity(_0x38a3c,null))[_0xb2ed('0x3e')](handleError(_0x38a3c,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x01be=['request-promise','rimraf','./analyticTreeReport.attributes','AnalyticTreeReport','lodash','api','bluebird'];(function(_0x17d9e3,_0x1f969c){var _0x14192d=function(_0x159745){while(--_0x159745){_0x17d9e3['push'](_0x17d9e3['shift']());}};_0x14192d(++_0x1f969c);}(_0x01be,0x162));var _0xe01b=function(_0x129c23,_0x2d8387){_0x129c23=_0x129c23-0x0;var _0x133723=_0x01be[_0x129c23];return _0x133723;};'use strict';var _=require(_0xe01b('0x0'));var util=require('util');var logger=require('../../config/logger')(_0xe01b('0x1'));var moment=require('moment');var BPromise=require(_0xe01b('0x2'));var rp=require(_0xe01b('0x3'));var fs=require('fs');var path=require('path');var rimraf=require(_0xe01b('0x4'));var config=require('../../config/environment');var attributes=require(_0xe01b('0x5'));module['exports']=function(_0x4316e3,_0x2a1123){return _0x4316e3['define'](_0xe01b('0x6'),attributes,{'tableName':'analytics_report_trees','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x634e=['./analyticTreeReport.attributes','exports','define','AnalyticTreeReport','analytics_report_trees','lodash','util','../../config/logger','api','moment','request-promise','path','rimraf','../../config/environment'];(function(_0x28901e,_0x13ba7a){var _0x29468c=function(_0x55796f){while(--_0x55796f){_0x28901e['push'](_0x28901e['shift']());}};_0x29468c(++_0x13ba7a);}(_0x634e,0xe5));var _0xe634=function(_0x4a9771,_0x52429b){_0x4a9771=_0x4a9771-0x0;var _0x52e0ed=_0x634e[_0x4a9771];return _0x52e0ed;};'use strict';var _=require(_0xe634('0x0'));var util=require(_0xe634('0x1'));var logger=require(_0xe634('0x2'))(_0xe634('0x3'));var moment=require(_0xe634('0x4'));var BPromise=require('bluebird');var rp=require(_0xe634('0x5'));var fs=require('fs');var path=require(_0xe634('0x6'));var rimraf=require(_0xe634('0x7'));var config=require(_0xe634('0x8'));var attributes=require(_0xe634('0x9'));module[_0xe634('0xa')]=function(_0x3c1c3f,_0x5bc201){return _0x3c1c3f[_0xe634('0xb')](_0xe634('0xc'),attributes,{'tableName':_0xe634('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xadb5=['error','code','message','result','catch','util','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','request','then','info','AnalyticTreeReport,\x20%s,\x20%s','request\x20sent','stringify'];(function(_0x1e0144,_0x1528e3){var _0x172a14=function(_0x3ab22e){while(--_0x3ab22e){_0x1e0144['push'](_0x1e0144['shift']());}};_0x172a14(++_0x1528e3);}(_0xadb5,0xad));var _0x5adb=function(_0x48d4f9,_0x4dfecb){_0x48d4f9=_0x48d4f9-0x0;var _0x506d6c=_0xadb5[_0x48d4f9];return _0x506d6c;};'use strict';var _=require('lodash');var util=require(_0x5adb('0x0'));var moment=require('moment');var BPromise=require(_0x5adb('0x1'));var rs=require(_0x5adb('0x2'));var fs=require('fs');var Redis=require(_0x5adb('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x5adb('0x4'));var logger=require(_0x5adb('0x5'))(_0x5adb('0x6'));var config=require('../../config/environment');var jayson=require(_0x5adb('0x7'));var client=jayson[_0x5adb('0x8')][_0x5adb('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x3213e8,_0xdf3776,_0x353885){return new BPromise(function(_0x47228a,_0x6d1b45){return client[_0x5adb('0xa')](_0x3213e8,_0x353885)[_0x5adb('0xb')](function(_0x34f59d){logger[_0x5adb('0xc')](_0x5adb('0xd'),_0xdf3776,_0x5adb('0xe'));logger['debug']('AnalyticTreeReport,\x20%s,\x20%s,\x20%s',_0xdf3776,_0x5adb('0xe'),JSON[_0x5adb('0xf')](_0x34f59d));if(_0x34f59d[_0x5adb('0x10')]){if(_0x34f59d['error'][_0x5adb('0x11')]===0x1f4){logger['error'](_0x5adb('0xd'),_0xdf3776,_0x34f59d['error'][_0x5adb('0x12')]);return _0x6d1b45(_0x34f59d[_0x5adb('0x10')][_0x5adb('0x12')]);}logger['error'](_0x5adb('0xd'),_0xdf3776,_0x34f59d[_0x5adb('0x10')][_0x5adb('0x12')]);return _0x47228a(_0x34f59d['error'][_0x5adb('0x12')]);}else{logger['info'](_0x5adb('0xd'),_0xdf3776,_0x5adb('0xe'));_0x47228a(_0x34f59d[_0x5adb('0x13')][_0x5adb('0x12')]);}})[_0x5adb('0x14')](function(_0x39d24d){logger[_0x5adb('0x10')](_0x5adb('0xd'),_0xdf3776,_0x39d24d);_0x6d1b45(_0x39d24d);});});}
\ No newline at end of file
+var _0xdb28=['moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','request','then','AnalyticTreeReport,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','info','catch','lodash','util'];(function(_0x29fcf4,_0x3fefe5){var _0x149192=function(_0x30b717){while(--_0x30b717){_0x29fcf4['push'](_0x29fcf4['shift']());}};_0x149192(++_0x3fefe5);}(_0xdb28,0x106));var _0x8db2=function(_0x36c133,_0x3f4848){_0x36c133=_0x36c133-0x0;var _0x33d9b9=_0xdb28[_0x36c133];return _0x33d9b9;};'use strict';var _=require(_0x8db2('0x0'));var util=require(_0x8db2('0x1'));var moment=require(_0x8db2('0x2'));var BPromise=require(_0x8db2('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x8db2('0x4'));var db=require(_0x8db2('0x5'))['db'];var utils=require(_0x8db2('0x6'));var logger=require(_0x8db2('0x7'))(_0x8db2('0x8'));var config=require('../../config/environment');var jayson=require(_0x8db2('0x9'));var client=jayson[_0x8db2('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0x494b40,_0x477f50,_0x46932f){return new BPromise(function(_0x131537,_0x29f698){return client[_0x8db2('0xb')](_0x494b40,_0x46932f)[_0x8db2('0xc')](function(_0x126c78){logger['info'](_0x8db2('0xd'),_0x477f50,_0x8db2('0xe'));logger[_0x8db2('0xf')]('AnalyticTreeReport,\x20%s,\x20%s,\x20%s',_0x477f50,_0x8db2('0xe'),JSON[_0x8db2('0x10')](_0x126c78));if(_0x126c78['error']){if(_0x126c78[_0x8db2('0x11')][_0x8db2('0x12')]===0x1f4){logger[_0x8db2('0x11')](_0x8db2('0xd'),_0x477f50,_0x126c78[_0x8db2('0x11')]['message']);return _0x29f698(_0x126c78['error'][_0x8db2('0x13')]);}logger[_0x8db2('0x11')](_0x8db2('0xd'),_0x477f50,_0x126c78[_0x8db2('0x11')][_0x8db2('0x13')]);return _0x131537(_0x126c78[_0x8db2('0x11')][_0x8db2('0x13')]);}else{logger[_0x8db2('0x14')](_0x8db2('0xd'),_0x477f50,_0x8db2('0xe'));_0x131537(_0x126c78['result'][_0x8db2('0x13')]);}})[_0x8db2('0x15')](function(_0x48101e){logger[_0x8db2('0x11')](_0x8db2('0xd'),_0x477f50,_0x48101e);_0x29f698(_0x48101e);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcf01=['./analyticTreeReport.controller','isAuthenticated','index','get','/:id','show','post','create','put','delete','exports','multer','connect-timeout','express','Router','fs-extra','../../components/interaction/service'];(function(_0x273f88,_0x5d4150){var _0x177ca1=function(_0xf46ec4){while(--_0xf46ec4){_0x273f88['push'](_0x273f88['shift']());}};_0x177ca1(++_0x5d4150);}(_0xcf01,0x13d));var _0x1cf0=function(_0x5dd181,_0x1eac8b){_0x5dd181=_0x5dd181-0x0;var _0x27cc98=_0xcf01[_0x5dd181];return _0x27cc98;};'use strict';var multer=require(_0x1cf0('0x0'));var util=require('util');var path=require('path');var timeout=require(_0x1cf0('0x1'));var express=require(_0x1cf0('0x2'));var router=express[_0x1cf0('0x3')]();var fs_extra=require(_0x1cf0('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0x1cf0('0x5'));var config=require('../../config/environment');var controller=require(_0x1cf0('0x6'));router['get']('/',auth[_0x1cf0('0x7')](),controller[_0x1cf0('0x8')]);router[_0x1cf0('0x9')](_0x1cf0('0xa'),auth[_0x1cf0('0x7')](),controller[_0x1cf0('0xb')]);router[_0x1cf0('0xc')]('/',auth['isAuthenticated'](),controller[_0x1cf0('0xd')]);router[_0x1cf0('0xe')](_0x1cf0('0xa'),auth['isAuthenticated'](),controller['update']);router[_0x1cf0('0xf')](_0x1cf0('0xa'),auth[_0x1cf0('0x7')](),controller['destroy']);module[_0x1cf0('0x10')]=router;
\ No newline at end of file
+var _0x91de=['fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./analyticTreeReport.controller','get','index','/:id','isAuthenticated','show','post','put','update','delete','exports','util','connect-timeout','express','Router'];(function(_0x12f099,_0x38c9cb){var _0x2e553d=function(_0x31391a){while(--_0x31391a){_0x12f099['push'](_0x12f099['shift']());}};_0x2e553d(++_0x38c9cb);}(_0x91de,0x119));var _0xe91d=function(_0xb9f41a,_0x2b2e5f){_0xb9f41a=_0xb9f41a-0x0;var _0x4724fe=_0x91de[_0xb9f41a];return _0x4724fe;};'use strict';var multer=require('multer');var util=require(_0xe91d('0x0'));var path=require('path');var timeout=require(_0xe91d('0x1'));var express=require(_0xe91d('0x2'));var router=express[_0xe91d('0x3')]();var fs_extra=require(_0xe91d('0x4'));var auth=require(_0xe91d('0x5'));var interaction=require(_0xe91d('0x6'));var config=require(_0xe91d('0x7'));var controller=require(_0xe91d('0x8'));router[_0xe91d('0x9')]('/',auth['isAuthenticated'](),controller[_0xe91d('0xa')]);router[_0xe91d('0x9')](_0xe91d('0xb'),auth[_0xe91d('0xc')](),controller[_0xe91d('0xd')]);router[_0xe91d('0xe')]('/',auth[_0xe91d('0xc')](),controller['create']);router[_0xe91d('0xf')](_0xe91d('0xb'),auth[_0xe91d('0xc')](),controller[_0xe91d('0x10')]);router[_0xe91d('0x11')]('/:id',auth[_0xe91d('0xc')](),controller['destroy']);module[_0xe91d('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xae53=['sequelize','STRING'];(function(_0x209e59,_0x5343c0){var _0x4fd0a3=function(_0x33726b){while(--_0x33726b){_0x209e59['push'](_0x209e59['shift']());}};_0x4fd0a3(++_0x5343c0);}(_0xae53,0x16e));var _0x3ae5=function(_0x5c2e3e,_0x26ecd3){_0x5c2e3e=_0x5c2e3e-0x0;var _0x53f64a=_0xae53[_0x5c2e3e];return _0x53f64a;};'use strict';var Sequelize=require(_0x3ae5('0x0'));module['exports']={'name':{'type':Sequelize[_0x3ae5('0x1')]},'basename':{'type':Sequelize[_0x3ae5('0x1')]},'type':{'type':Sequelize[_0x3ae5('0x1')]}};
\ No newline at end of file
+var _0x167e=['STRING','sequelize','exports'];(function(_0x185e02,_0x5bd409){var _0x2d3b52=function(_0x1ca225){while(--_0x1ca225){_0x185e02['push'](_0x185e02['shift']());}};_0x2d3b52(++_0x5bd409);}(_0x167e,0xa3));var _0xe167=function(_0x2a1fe1,_0x1cece9){_0x2a1fe1=_0x2a1fe1-0x0;var _0x4d5e5d=_0x167e[_0x2a1fe1];return _0x4d5e5d;};'use strict';var Sequelize=require(_0xe167('0x0'));module[_0xe167('0x1')]={'name':{'type':Sequelize[_0xe167('0x2')]},'basename':{'type':Sequelize[_0xe167('0x2')]},'type':{'type':Sequelize[_0xe167('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1d8a=['eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','then','destroy','stack','name','send','index','map','Attachment','rawAttributes','fieldName','key','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','type','VIRTUAL','filter','includeAll','rows','catch','show','params','include','options','find','clone','get','omit','createdAt','updatedAt','body','create','update','file','originalname','basename','filename','mimetype','download','findOne','ChatOfflineMessageId','join','root','server/files/attachments/'];(function(_0x5da27b,_0x1a78bf){var _0x4890e4=function(_0x428bb6){while(--_0x428bb6){_0x5da27b['push'](_0x5da27b['shift']());}};_0x4890e4(++_0x1a78bf);}(_0x1d8a,0x1cc));var _0xa1d8=function(_0x16f8a9,_0x348c8f){_0x16f8a9=_0x16f8a9-0x0;var _0x427a18=_0x1d8a[_0x16f8a9];return _0x427a18;};'use strict';var emlformat=require(_0xa1d8('0x0'));var rimraf=require(_0xa1d8('0x1'));var zipdir=require(_0xa1d8('0x2'));var jsonpatch=require(_0xa1d8('0x3'));var rp=require(_0xa1d8('0x4'));var moment=require('moment');var BPromise=require(_0xa1d8('0x5'));var Mustache=require(_0xa1d8('0x6'));var util=require(_0xa1d8('0x7'));var path=require('path');var sox=require(_0xa1d8('0x8'));var csv=require(_0xa1d8('0x9'));var ejs=require(_0xa1d8('0xa'));var fs=require('fs');var fs_extra=require(_0xa1d8('0xb'));var _=require(_0xa1d8('0xc'));var squel=require(_0xa1d8('0xd'));var crypto=require(_0xa1d8('0xe'));var jsforce=require('jsforce');var deskjs=require(_0xa1d8('0xf'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xa1d8('0x10'));var Redis=require(_0xa1d8('0x11'));var authService=require('../../components/auth/service');var qs=require(_0xa1d8('0x12'));var as=require(_0xa1d8('0x13'));var hardwareService=require(_0xa1d8('0x14'));var logger=require(_0xa1d8('0x15'))('api');var utils=require(_0xa1d8('0x16'));var config=require(_0xa1d8('0x17'));var licenseUtil=require(_0xa1d8('0x18'));var db=require(_0xa1d8('0x19'))['db'];function respondWithStatusCode(_0x6de110,_0x3ee3ef){_0x3ee3ef=_0x3ee3ef||0xcc;return function(_0x5f4ee1){if(_0x5f4ee1){return _0x6de110['sendStatus'](_0x3ee3ef);}return _0x6de110[_0xa1d8('0x1a')](_0x3ee3ef)[_0xa1d8('0x1b')]();};}function respondWithResult(_0x13af43,_0x4066d5){_0x4066d5=_0x4066d5||0xc8;return function(_0x4d54c5){if(_0x4d54c5){return _0x13af43['status'](_0x4066d5)[_0xa1d8('0x1c')](_0x4d54c5);}};}function respondWithFilteredResult(_0x4d1304,_0x2ac733){return function(_0x3517f8){if(_0x3517f8){var _0x44aa13=typeof _0x2ac733[_0xa1d8('0x1d')]===_0xa1d8('0x1e')&&typeof _0x2ac733[_0xa1d8('0x1f')]==='undefined';var _0x1053c4=_0x3517f8[_0xa1d8('0x20')];var _0x1e843e=_0x44aa13?0x0:_0x2ac733['offset'];var _0x2295b1=_0x44aa13?_0x3517f8[_0xa1d8('0x20')]:_0x2ac733[_0xa1d8('0x1d')]+_0x2ac733[_0xa1d8('0x1f')];var _0x14b5d4;if(_0x2295b1>=_0x1053c4){_0x2295b1=_0x1053c4;_0x14b5d4=0xc8;}else{_0x14b5d4=0xce;}_0x4d1304[_0xa1d8('0x1a')](_0x14b5d4);return _0x4d1304[_0xa1d8('0x21')](_0xa1d8('0x22'),_0x1e843e+'-'+_0x2295b1+'/'+_0x1053c4)['json'](_0x3517f8);}return null;};}function patchUpdates(_0x5cee07){return function(_0x2d50fd){try{jsonpatch[_0xa1d8('0x23')](_0x2d50fd,_0x5cee07,!![]);}catch(_0x3749b4){return BPromise['reject'](_0x3749b4);}return _0x2d50fd['save']();};}function saveUpdates(_0x56e1fe,_0x384223){return function(_0x2b716e){if(_0x2b716e){return _0x2b716e['update'](_0x56e1fe)[_0xa1d8('0x24')](function(_0x14d16b){return _0x14d16b;});}return null;};}function removeEntity(_0x57d23d,_0x3bc701){return function(_0x50e366){if(_0x50e366){return _0x50e366[_0xa1d8('0x25')]()['then'](function(){_0x57d23d[_0xa1d8('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5c16d4,_0x277e14){return function(_0x580301){if(!_0x580301){_0x5c16d4['sendStatus'](0x194);}return _0x580301;};}function handleError(_0x4cba57,_0x3191e1){_0x3191e1=_0x3191e1||0x1f4;return function(_0x42bdf1){logger['error'](_0x42bdf1[_0xa1d8('0x26')]);if(_0x42bdf1['name']){delete _0x42bdf1[_0xa1d8('0x27')];}_0x4cba57['status'](_0x3191e1)[_0xa1d8('0x28')](_0x42bdf1);};}exports[_0xa1d8('0x29')]=function(_0x26fd80,_0x228b8d){var _0x32a78d={},_0xf5c82={},_0x3270a8={'count':0x0,'rows':[]};var _0x40bd2a=_[_0xa1d8('0x2a')](db[_0xa1d8('0x2b')][_0xa1d8('0x2c')],function(_0xc1896e){return{'name':_0xc1896e[_0xa1d8('0x2d')],'type':_0xc1896e['type'][_0xa1d8('0x2e')]};});_0xf5c82['model']=_[_0xa1d8('0x2a')](_0x40bd2a,'name');_0xf5c82[_0xa1d8('0x2f')]=_[_0xa1d8('0x30')](_0x26fd80['query']);_0xf5c82[_0xa1d8('0x31')]=_[_0xa1d8('0x32')](_0xf5c82[_0xa1d8('0x33')],_0xf5c82['query']);_0x32a78d[_0xa1d8('0x34')]=_[_0xa1d8('0x32')](_0xf5c82['model'],qs[_0xa1d8('0x35')](_0x26fd80[_0xa1d8('0x2f')]['fields']));_0x32a78d['attributes']=_0x32a78d[_0xa1d8('0x34')][_0xa1d8('0x36')]?_0x32a78d['attributes']:_0xf5c82[_0xa1d8('0x33')];if(!_0x26fd80[_0xa1d8('0x2f')][_0xa1d8('0x37')](_0xa1d8('0x38'))){_0x32a78d[_0xa1d8('0x1f')]=qs[_0xa1d8('0x1f')](_0x26fd80['query'][_0xa1d8('0x1f')]);_0x32a78d[_0xa1d8('0x1d')]=qs[_0xa1d8('0x1d')](_0x26fd80[_0xa1d8('0x2f')][_0xa1d8('0x1d')]);}_0x32a78d[_0xa1d8('0x39')]=qs[_0xa1d8('0x3a')](_0x26fd80[_0xa1d8('0x2f')][_0xa1d8('0x3a')]);_0x32a78d[_0xa1d8('0x3b')]=qs['filters'](_[_0xa1d8('0x3c')](_0x26fd80[_0xa1d8('0x2f')],_0xf5c82[_0xa1d8('0x31')]),_0x40bd2a);if(_0x26fd80[_0xa1d8('0x2f')]['filter']){_0x32a78d['where']=_[_0xa1d8('0x3d')](_0x32a78d[_0xa1d8('0x3b')],{'$or':_[_0xa1d8('0x2a')](_0x40bd2a,function(_0x52a94c){if(_0x52a94c[_0xa1d8('0x3e')]!==_0xa1d8('0x3f')){var _0x21a3b3={};_0x21a3b3[_0x52a94c[_0xa1d8('0x27')]]={'$like':'%'+_0x26fd80[_0xa1d8('0x2f')][_0xa1d8('0x40')]+'%'};return _0x21a3b3;}})});}_0x32a78d=_['merge']({},_0x32a78d,_0x26fd80['options']);var _0x58484a={'where':_0x32a78d['where']};return db[_0xa1d8('0x2b')][_0xa1d8('0x20')](_0x58484a)[_0xa1d8('0x24')](function(_0x1f5d29){_0x3270a8[_0xa1d8('0x20')]=_0x1f5d29;if(_0x26fd80[_0xa1d8('0x2f')][_0xa1d8('0x41')]){_0x32a78d['include']=[{'all':!![]}];}return db[_0xa1d8('0x2b')]['findAll'](_0x32a78d);})[_0xa1d8('0x24')](function(_0x450338){_0x3270a8[_0xa1d8('0x42')]=_0x450338;return _0x3270a8;})[_0xa1d8('0x24')](respondWithFilteredResult(_0x228b8d,_0x32a78d))[_0xa1d8('0x43')](handleError(_0x228b8d,null));};exports[_0xa1d8('0x44')]=function(_0x5b4547,_0x28cd8a){var _0x1a1ec9={'raw':!![],'where':{'id':_0x5b4547[_0xa1d8('0x45')]['id']}},_0x3f0535={};_0x3f0535[_0xa1d8('0x33')]=_[_0xa1d8('0x30')](db[_0xa1d8('0x2b')][_0xa1d8('0x2c')]);_0x3f0535[_0xa1d8('0x2f')]=_[_0xa1d8('0x30')](_0x5b4547[_0xa1d8('0x2f')]);_0x3f0535[_0xa1d8('0x31')]=_['intersection'](_0x3f0535[_0xa1d8('0x33')],_0x3f0535[_0xa1d8('0x2f')]);_0x1a1ec9[_0xa1d8('0x34')]=_[_0xa1d8('0x32')](_0x3f0535[_0xa1d8('0x33')],qs[_0xa1d8('0x35')](_0x5b4547[_0xa1d8('0x2f')][_0xa1d8('0x35')]));_0x1a1ec9[_0xa1d8('0x34')]=_0x1a1ec9[_0xa1d8('0x34')][_0xa1d8('0x36')]?_0x1a1ec9[_0xa1d8('0x34')]:_0x3f0535[_0xa1d8('0x33')];if(_0x5b4547[_0xa1d8('0x2f')][_0xa1d8('0x41')]){_0x1a1ec9[_0xa1d8('0x46')]=[{'all':!![]}];}_0x1a1ec9=_[_0xa1d8('0x3d')]({},_0x1a1ec9,_0x5b4547[_0xa1d8('0x47')]);return db[_0xa1d8('0x2b')][_0xa1d8('0x48')](_0x1a1ec9)['then'](handleEntityNotFound(_0x28cd8a,null))[_0xa1d8('0x24')](respondWithResult(_0x28cd8a,null))['catch'](handleError(_0x28cd8a,null));};exports[_0xa1d8('0x49')]=function(_0x42220b,_0x11bd79){var _0x5a8a77={'where':{'id':_0x42220b[_0xa1d8('0x45')]['id']}},_0x1d75ec={};_0x1d75ec[_0xa1d8('0x33')]=_[_0xa1d8('0x30')](db[_0xa1d8('0x2b')][_0xa1d8('0x2c')]);_0x5a8a77[_0xa1d8('0x34')]=_[_0xa1d8('0x32')](_0x1d75ec[_0xa1d8('0x33')],qs[_0xa1d8('0x35')](_0x42220b[_0xa1d8('0x2f')][_0xa1d8('0x35')]));_0x5a8a77[_0xa1d8('0x34')]=_0x5a8a77[_0xa1d8('0x34')]['length']?_0x5a8a77[_0xa1d8('0x34')]:_0x1d75ec[_0xa1d8('0x33')];if(_0x42220b[_0xa1d8('0x2f')]['includeAll']){_0x5a8a77[_0xa1d8('0x46')]=[{'all':!![]}];}_0x5a8a77=_[_0xa1d8('0x3d')]({},_0x5a8a77,_0x42220b[_0xa1d8('0x47')]);return db['Attachment']['find'](_0x5a8a77)[_0xa1d8('0x24')](handleEntityNotFound(_0x11bd79,null))[_0xa1d8('0x24')](function(_0x214dbf){if(_0x214dbf){var _0x5cf24e=_0x214dbf[_0xa1d8('0x4a')]({'plain':!![]});_0x5cf24e=qs[_0xa1d8('0x4b')](_0x5cf24e,['id',_0xa1d8('0x4c'),_0xa1d8('0x4d')]);_0x42220b[_0xa1d8('0x4e')]=_['omit'](_0x42220b['body'],['id','createdAt',_0xa1d8('0x4d')]);return db[_0xa1d8('0x2b')][_0xa1d8('0x4f')](_[_0xa1d8('0x3d')](_0x5cf24e,_0x42220b[_0xa1d8('0x4e')]),{'include':_0x42220b[_0xa1d8('0x2f')][_0xa1d8('0x41')]?[{'all':!![]}]:undefined});}})[_0xa1d8('0x24')](respondWithResult(_0x11bd79,0xc9))[_0xa1d8('0x43')](handleError(_0x11bd79,null));};exports[_0xa1d8('0x50')]=function(_0x1bb8a9,_0x461622){if(_0x1bb8a9[_0xa1d8('0x4e')]['id']){delete _0x1bb8a9[_0xa1d8('0x4e')]['id'];}return db['Attachment'][_0xa1d8('0x48')]({'where':{'id':_0x1bb8a9[_0xa1d8('0x45')]['id']}})[_0xa1d8('0x24')](handleEntityNotFound(_0x461622,null))[_0xa1d8('0x24')](saveUpdates(_0x1bb8a9[_0xa1d8('0x4e')],null))[_0xa1d8('0x24')](respondWithResult(_0x461622,null))[_0xa1d8('0x43')](handleError(_0x461622,null));};exports['destroy']=function(_0x5e4315,_0x45a991){return db[_0xa1d8('0x2b')]['find']({'where':{'id':_0x5e4315['params']['id']}})['then'](handleEntityNotFound(_0x45a991,null))[_0xa1d8('0x24')](removeEntity(_0x45a991,null))[_0xa1d8('0x43')](handleError(_0x45a991,null));};exports[_0xa1d8('0x4f')]=function(_0x2243b9,_0x394813,_0x35a574){_0x2243b9[_0xa1d8('0x4e')][_0xa1d8('0x27')]=_0x2243b9[_0xa1d8('0x51')][_0xa1d8('0x52')];_0x2243b9[_0xa1d8('0x4e')][_0xa1d8('0x53')]=_0x2243b9['file'][_0xa1d8('0x54')];_0x2243b9[_0xa1d8('0x4e')][_0xa1d8('0x3e')]=_0x2243b9['file'][_0xa1d8('0x55')];return db['Attachment']['create'](_0x2243b9[_0xa1d8('0x4e')])[_0xa1d8('0x24')](respondWithResult(_0x394813,0xc9))[_0xa1d8('0x43')](handleError(_0x394813,null));};exports[_0xa1d8('0x56')]=function(_0x18cfd5,_0x5c0cb2,_0x39db6b){return db['Attachment'][_0xa1d8('0x57')]({'where':{'id':_0x18cfd5[_0xa1d8('0x45')]['id']},'raw':!![]})[_0xa1d8('0x24')](handleEntityNotFound(_0x5c0cb2,null))[_0xa1d8('0x24')](function(_0x38a4e0){if(_0x38a4e0){var _0x56f432=_0x38a4e0[_0xa1d8('0x58')]!==null;var _0x12719e=path[_0xa1d8('0x59')](config[_0xa1d8('0x5a')],_0xa1d8('0x5b'));if(_0x56f432){_0x12719e=path[_0xa1d8('0x59')](_0x12719e,'offline-chat/');}var _0x22ca67=path[_0xa1d8('0x59')](_0x12719e,_0x38a4e0[_0xa1d8('0x53')]);return _0x5c0cb2[_0xa1d8('0x56')](_0x22ca67);}})['catch'](handleError(_0x5c0cb2,null));};
\ No newline at end of file
+var _0xc5dd=['querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/environment','../../config/license/util','../../mysqldb','end','status','json','undefined','count','offset','limit','set','Content-Range','apply','reject','save','update','then','destroy','error','stack','name','send','index','rawAttributes','fieldName','key','map','query','filters','intersection','model','attributes','fields','hasOwnProperty','order','sort','where','merge','type','VIRTUAL','options','Attachment','includeAll','catch','show','params','keys','length','include','find','clone','get','omit','createdAt','body','updatedAt','create','file','originalname','basename','filename','ChatOfflineMessageId','root','offline-chat/','join','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','crypto','jsforce','desk.js'];(function(_0x392269,_0x27a650){var _0x19745e=function(_0x152c3b){while(--_0x152c3b){_0x392269['push'](_0x392269['shift']());}};_0x19745e(++_0x27a650);}(_0xc5dd,0x9e));var _0xdc5d=function(_0x12c7ff,_0x2d631c){_0x12c7ff=_0x12c7ff-0x0;var _0x5459d3=_0xc5dd[_0x12c7ff];return _0x5459d3;};'use strict';var emlformat=require(_0xdc5d('0x0'));var rimraf=require(_0xdc5d('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xdc5d('0x2'));var rp=require(_0xdc5d('0x3'));var moment=require(_0xdc5d('0x4'));var BPromise=require(_0xdc5d('0x5'));var Mustache=require(_0xdc5d('0x6'));var util=require('util');var path=require(_0xdc5d('0x7'));var sox=require(_0xdc5d('0x8'));var csv=require(_0xdc5d('0x9'));var ejs=require(_0xdc5d('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require('squel');var crypto=require(_0xdc5d('0xb'));var jsforce=require(_0xdc5d('0xc'));var deskjs=require(_0xdc5d('0xd'));var toCsv=require(_0xdc5d('0x9'));var querystring=require(_0xdc5d('0xe'));var Papa=require(_0xdc5d('0xf'));var Redis=require(_0xdc5d('0x10'));var authService=require(_0xdc5d('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0xdc5d('0x12'));var hardwareService=require(_0xdc5d('0x13'));var logger=require(_0xdc5d('0x14'))('api');var utils=require('../../config/utils');var config=require(_0xdc5d('0x15'));var licenseUtil=require(_0xdc5d('0x16'));var db=require(_0xdc5d('0x17'))['db'];function respondWithStatusCode(_0x20e894,_0x48a5d1){_0x48a5d1=_0x48a5d1||0xcc;return function(_0x5db863){if(_0x5db863){return _0x20e894['sendStatus'](_0x48a5d1);}return _0x20e894['status'](_0x48a5d1)[_0xdc5d('0x18')]();};}function respondWithResult(_0x285ccd,_0x10e34e){_0x10e34e=_0x10e34e||0xc8;return function(_0x3d462a){if(_0x3d462a){return _0x285ccd[_0xdc5d('0x19')](_0x10e34e)[_0xdc5d('0x1a')](_0x3d462a);}};}function respondWithFilteredResult(_0x5790a4,_0x555f2f){return function(_0x14a542){if(_0x14a542){var _0x5d34df=typeof _0x555f2f['offset']===_0xdc5d('0x1b')&&typeof _0x555f2f['limit']===_0xdc5d('0x1b');var _0x391cf4=_0x14a542['count'];var _0x2a7d75=_0x5d34df?0x0:_0x555f2f['offset'];var _0x330382=_0x5d34df?_0x14a542[_0xdc5d('0x1c')]:_0x555f2f[_0xdc5d('0x1d')]+_0x555f2f[_0xdc5d('0x1e')];var _0x20698a;if(_0x330382>=_0x391cf4){_0x330382=_0x391cf4;_0x20698a=0xc8;}else{_0x20698a=0xce;}_0x5790a4[_0xdc5d('0x19')](_0x20698a);return _0x5790a4[_0xdc5d('0x1f')](_0xdc5d('0x20'),_0x2a7d75+'-'+_0x330382+'/'+_0x391cf4)[_0xdc5d('0x1a')](_0x14a542);}return null;};}function patchUpdates(_0xdfe2e2){return function(_0x161498){try{jsonpatch[_0xdc5d('0x21')](_0x161498,_0xdfe2e2,!![]);}catch(_0x542d6d){return BPromise[_0xdc5d('0x22')](_0x542d6d);}return _0x161498[_0xdc5d('0x23')]();};}function saveUpdates(_0x1ba7bb,_0x4adc03){return function(_0x59c0d0){if(_0x59c0d0){return _0x59c0d0[_0xdc5d('0x24')](_0x1ba7bb)[_0xdc5d('0x25')](function(_0x2c8b47){return _0x2c8b47;});}return null;};}function removeEntity(_0x32c516,_0x28e1e9){return function(_0x2475fb){if(_0x2475fb){return _0x2475fb[_0xdc5d('0x26')]()[_0xdc5d('0x25')](function(){_0x32c516[_0xdc5d('0x19')](0xcc)[_0xdc5d('0x18')]();});}};}function handleEntityNotFound(_0x121c24,_0x1248df){return function(_0x3ecdff){if(!_0x3ecdff){_0x121c24['sendStatus'](0x194);}return _0x3ecdff;};}function handleError(_0x54b291,_0x509809){_0x509809=_0x509809||0x1f4;return function(_0x13ed1d){logger[_0xdc5d('0x27')](_0x13ed1d[_0xdc5d('0x28')]);if(_0x13ed1d[_0xdc5d('0x29')]){delete _0x13ed1d[_0xdc5d('0x29')];}_0x54b291['status'](_0x509809)[_0xdc5d('0x2a')](_0x13ed1d);};}exports[_0xdc5d('0x2b')]=function(_0x19a5e8,_0x471c13){var _0xadfb0f={},_0x443a6a={},_0x2a7ddf={'count':0x0,'rows':[]};var _0x543b3f=_['map'](db['Attachment'][_0xdc5d('0x2c')],function(_0x4f71a2){return{'name':_0x4f71a2[_0xdc5d('0x2d')],'type':_0x4f71a2['type'][_0xdc5d('0x2e')]};});_0x443a6a['model']=_[_0xdc5d('0x2f')](_0x543b3f,_0xdc5d('0x29'));_0x443a6a[_0xdc5d('0x30')]=_['keys'](_0x19a5e8[_0xdc5d('0x30')]);_0x443a6a[_0xdc5d('0x31')]=_[_0xdc5d('0x32')](_0x443a6a[_0xdc5d('0x33')],_0x443a6a[_0xdc5d('0x30')]);_0xadfb0f[_0xdc5d('0x34')]=_[_0xdc5d('0x32')](_0x443a6a['model'],qs[_0xdc5d('0x35')](_0x19a5e8[_0xdc5d('0x30')][_0xdc5d('0x35')]));_0xadfb0f[_0xdc5d('0x34')]=_0xadfb0f['attributes']['length']?_0xadfb0f[_0xdc5d('0x34')]:_0x443a6a[_0xdc5d('0x33')];if(!_0x19a5e8[_0xdc5d('0x30')][_0xdc5d('0x36')]('nolimit')){_0xadfb0f[_0xdc5d('0x1e')]=qs[_0xdc5d('0x1e')](_0x19a5e8[_0xdc5d('0x30')][_0xdc5d('0x1e')]);_0xadfb0f['offset']=qs[_0xdc5d('0x1d')](_0x19a5e8[_0xdc5d('0x30')]['offset']);}_0xadfb0f[_0xdc5d('0x37')]=qs[_0xdc5d('0x38')](_0x19a5e8[_0xdc5d('0x30')]['sort']);_0xadfb0f[_0xdc5d('0x39')]=qs[_0xdc5d('0x31')](_['pick'](_0x19a5e8[_0xdc5d('0x30')],_0x443a6a[_0xdc5d('0x31')]),_0x543b3f);if(_0x19a5e8['query']['filter']){_0xadfb0f['where']=_[_0xdc5d('0x3a')](_0xadfb0f[_0xdc5d('0x39')],{'$or':_[_0xdc5d('0x2f')](_0x543b3f,function(_0x42798a){if(_0x42798a[_0xdc5d('0x3b')]!==_0xdc5d('0x3c')){var _0x21b19a={};_0x21b19a[_0x42798a[_0xdc5d('0x29')]]={'$like':'%'+_0x19a5e8[_0xdc5d('0x30')]['filter']+'%'};return _0x21b19a;}})});}_0xadfb0f=_[_0xdc5d('0x3a')]({},_0xadfb0f,_0x19a5e8[_0xdc5d('0x3d')]);var _0x52140d={'where':_0xadfb0f[_0xdc5d('0x39')]};return db[_0xdc5d('0x3e')]['count'](_0x52140d)['then'](function(_0x263c73){_0x2a7ddf[_0xdc5d('0x1c')]=_0x263c73;if(_0x19a5e8['query'][_0xdc5d('0x3f')]){_0xadfb0f['include']=[{'all':!![]}];}return db[_0xdc5d('0x3e')]['findAll'](_0xadfb0f);})[_0xdc5d('0x25')](function(_0x4ff80c){_0x2a7ddf['rows']=_0x4ff80c;return _0x2a7ddf;})[_0xdc5d('0x25')](respondWithFilteredResult(_0x471c13,_0xadfb0f))[_0xdc5d('0x40')](handleError(_0x471c13,null));};exports[_0xdc5d('0x41')]=function(_0x4d9772,_0x1816a6){var _0x2b3b0b={'raw':!![],'where':{'id':_0x4d9772[_0xdc5d('0x42')]['id']}},_0x2417ac={};_0x2417ac[_0xdc5d('0x33')]=_[_0xdc5d('0x43')](db['Attachment'][_0xdc5d('0x2c')]);_0x2417ac[_0xdc5d('0x30')]=_[_0xdc5d('0x43')](_0x4d9772['query']);_0x2417ac[_0xdc5d('0x31')]=_[_0xdc5d('0x32')](_0x2417ac[_0xdc5d('0x33')],_0x2417ac['query']);_0x2b3b0b[_0xdc5d('0x34')]=_[_0xdc5d('0x32')](_0x2417ac['model'],qs[_0xdc5d('0x35')](_0x4d9772[_0xdc5d('0x30')][_0xdc5d('0x35')]));_0x2b3b0b['attributes']=_0x2b3b0b['attributes'][_0xdc5d('0x44')]?_0x2b3b0b[_0xdc5d('0x34')]:_0x2417ac[_0xdc5d('0x33')];if(_0x4d9772[_0xdc5d('0x30')][_0xdc5d('0x3f')]){_0x2b3b0b[_0xdc5d('0x45')]=[{'all':!![]}];}_0x2b3b0b=_[_0xdc5d('0x3a')]({},_0x2b3b0b,_0x4d9772[_0xdc5d('0x3d')]);return db[_0xdc5d('0x3e')][_0xdc5d('0x46')](_0x2b3b0b)[_0xdc5d('0x25')](handleEntityNotFound(_0x1816a6,null))[_0xdc5d('0x25')](respondWithResult(_0x1816a6,null))['catch'](handleError(_0x1816a6,null));};exports[_0xdc5d('0x47')]=function(_0xf4a60d,_0xbfc675){var _0x5eabb3={'where':{'id':_0xf4a60d[_0xdc5d('0x42')]['id']}},_0x34d0be={};_0x34d0be[_0xdc5d('0x33')]=_['keys'](db[_0xdc5d('0x3e')][_0xdc5d('0x2c')]);_0x5eabb3['attributes']=_[_0xdc5d('0x32')](_0x34d0be['model'],qs[_0xdc5d('0x35')](_0xf4a60d[_0xdc5d('0x30')][_0xdc5d('0x35')]));_0x5eabb3[_0xdc5d('0x34')]=_0x5eabb3['attributes']['length']?_0x5eabb3[_0xdc5d('0x34')]:_0x34d0be[_0xdc5d('0x33')];if(_0xf4a60d[_0xdc5d('0x30')][_0xdc5d('0x3f')]){_0x5eabb3['include']=[{'all':!![]}];}_0x5eabb3=_['merge']({},_0x5eabb3,_0xf4a60d[_0xdc5d('0x3d')]);return db[_0xdc5d('0x3e')][_0xdc5d('0x46')](_0x5eabb3)['then'](handleEntityNotFound(_0xbfc675,null))[_0xdc5d('0x25')](function(_0x247b9f){if(_0x247b9f){var _0x2b7eeb=_0x247b9f[_0xdc5d('0x48')]({'plain':!![]});_0x2b7eeb=qs[_0xdc5d('0x49')](_0x2b7eeb,['id',_0xdc5d('0x4a'),'updatedAt']);_0xf4a60d['body']=_[_0xdc5d('0x49')](_0xf4a60d[_0xdc5d('0x4b')],['id',_0xdc5d('0x4a'),_0xdc5d('0x4c')]);return db[_0xdc5d('0x3e')][_0xdc5d('0x4d')](_['merge'](_0x2b7eeb,_0xf4a60d[_0xdc5d('0x4b')]),{'include':_0xf4a60d[_0xdc5d('0x30')][_0xdc5d('0x3f')]?[{'all':!![]}]:undefined});}})['then'](respondWithResult(_0xbfc675,0xc9))[_0xdc5d('0x40')](handleError(_0xbfc675,null));};exports[_0xdc5d('0x24')]=function(_0x401491,_0x4ed516){if(_0x401491[_0xdc5d('0x4b')]['id']){delete _0x401491[_0xdc5d('0x4b')]['id'];}return db[_0xdc5d('0x3e')][_0xdc5d('0x46')]({'where':{'id':_0x401491[_0xdc5d('0x42')]['id']}})[_0xdc5d('0x25')](handleEntityNotFound(_0x4ed516,null))[_0xdc5d('0x25')](saveUpdates(_0x401491[_0xdc5d('0x4b')],null))[_0xdc5d('0x25')](respondWithResult(_0x4ed516,null))[_0xdc5d('0x40')](handleError(_0x4ed516,null));};exports['destroy']=function(_0xc7197c,_0x4676f2){return db['Attachment'][_0xdc5d('0x46')]({'where':{'id':_0xc7197c[_0xdc5d('0x42')]['id']}})['then'](handleEntityNotFound(_0x4676f2,null))[_0xdc5d('0x25')](removeEntity(_0x4676f2,null))[_0xdc5d('0x40')](handleError(_0x4676f2,null));};exports[_0xdc5d('0x4d')]=function(_0x3b67ad,_0xd6adeb,_0x7aaf63){_0x3b67ad['body'][_0xdc5d('0x29')]=_0x3b67ad[_0xdc5d('0x4e')][_0xdc5d('0x4f')];_0x3b67ad[_0xdc5d('0x4b')][_0xdc5d('0x50')]=_0x3b67ad[_0xdc5d('0x4e')][_0xdc5d('0x51')];_0x3b67ad[_0xdc5d('0x4b')][_0xdc5d('0x3b')]=_0x3b67ad['file']['mimetype'];return db[_0xdc5d('0x3e')][_0xdc5d('0x4d')](_0x3b67ad[_0xdc5d('0x4b')])[_0xdc5d('0x25')](respondWithResult(_0xd6adeb,0xc9))[_0xdc5d('0x40')](handleError(_0xd6adeb,null));};exports['download']=function(_0x46a351,_0x3a5445,_0x25a153){return db[_0xdc5d('0x3e')]['findOne']({'where':{'id':_0x46a351[_0xdc5d('0x42')]['id']},'raw':!![]})[_0xdc5d('0x25')](handleEntityNotFound(_0x3a5445,null))[_0xdc5d('0x25')](function(_0x14f37c){if(_0x14f37c){var _0x381d67=_0x14f37c[_0xdc5d('0x52')]!==null;var _0x3ba9eb=path['join'](config[_0xdc5d('0x53')],'server/files/attachments/');if(_0x381d67){_0x3ba9eb=path['join'](_0x3ba9eb,_0xdc5d('0x54'));}var _0x36d063=path[_0xdc5d('0x55')](_0x3ba9eb,_0x14f37c[_0xdc5d('0x50')]);return _0x3a5445['download'](_0x36d063);}})[_0xdc5d('0x40')](handleError(_0x3a5445,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfce2=['api','moment','bluebird','path','rimraf','../../config/environment','./attachment.attributes','exports','define','attachments','lodash','util','../../config/logger'];(function(_0x1b1266,_0xa8fd7a){var _0x48aeed=function(_0x27fc59){while(--_0x27fc59){_0x1b1266['push'](_0x1b1266['shift']());}};_0x48aeed(++_0xa8fd7a);}(_0xfce2,0xf4));var _0x2fce=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xfce2[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0x2fce('0x0'));var util=require(_0x2fce('0x1'));var logger=require(_0x2fce('0x2'))(_0x2fce('0x3'));var moment=require(_0x2fce('0x4'));var BPromise=require(_0x2fce('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x2fce('0x6'));var rimraf=require(_0x2fce('0x7'));var config=require(_0x2fce('0x8'));var attributes=require(_0x2fce('0x9'));module[_0x2fce('0xa')]=function(_0x267ef2,_0x19e07c){return _0x267ef2[_0x2fce('0xb')]('Attachment',attributes,{'tableName':_0x2fce('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x8b2f=['../../config/environment','Attachment','attachments','lodash','util','../../config/logger','moment','bluebird','request-promise','path','rimraf'];(function(_0x4b6a87,_0x1bd1ca){var _0x1c1961=function(_0x9d3b91){while(--_0x9d3b91){_0x4b6a87['push'](_0x4b6a87['shift']());}};_0x1c1961(++_0x1bd1ca);}(_0x8b2f,0x100));var _0xf8b2=function(_0x2501a7,_0x415c60){_0x2501a7=_0x2501a7-0x0;var _0x2c9b64=_0x8b2f[_0x2501a7];return _0x2c9b64;};'use strict';var _=require(_0xf8b2('0x0'));var util=require(_0xf8b2('0x1'));var logger=require(_0xf8b2('0x2'))('api');var moment=require(_0xf8b2('0x3'));var BPromise=require(_0xf8b2('0x4'));var rp=require(_0xf8b2('0x5'));var fs=require('fs');var path=require(_0xf8b2('0x6'));var rimraf=require(_0xf8b2('0x7'));var config=require(_0xf8b2('0x8'));var attributes=require('./attachment.attributes');module['exports']=function(_0x452a58,_0x495d9d){return _0x452a58['define'](_0xf8b2('0x9'),attributes,{'tableName':_0xf8b2('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x21a3=['Attachment,\x20%s,\x20%s','request\x20sent','debug','Attachment,\x20%s,\x20%s,\x20%s','stringify','error','message','result','Attachment','create','body','options','raw','CreateAttachment','catch','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/environment','jayson/promise','client','http','request','then','info'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x21a3,0x66));var _0x321a=function(_0x22e101,_0x412840){_0x22e101=_0x22e101-0x0;var _0xa51f61=_0x21a3[_0x22e101];return _0xa51f61;};'use strict';var _=require(_0x321a('0x0'));var util=require('util');var moment=require(_0x321a('0x1'));var BPromise=require(_0x321a('0x2'));var rs=require(_0x321a('0x3'));var fs=require('fs');var Redis=require(_0x321a('0x4'));var db=require(_0x321a('0x5'))['db'];var utils=require(_0x321a('0x6'));var logger=require('../../config/logger')('rpc');var config=require(_0x321a('0x7'));var jayson=require(_0x321a('0x8'));var client=jayson[_0x321a('0x9')][_0x321a('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x5f3b81,_0x388901,_0x24a04c){return new BPromise(function(_0x10c1d3,_0xdfd6b8){return client[_0x321a('0xb')](_0x5f3b81,_0x24a04c)[_0x321a('0xc')](function(_0x2c52dc){logger[_0x321a('0xd')](_0x321a('0xe'),_0x388901,_0x321a('0xf'));logger[_0x321a('0x10')](_0x321a('0x11'),_0x388901,'request\x20sent',JSON[_0x321a('0x12')](_0x2c52dc));if(_0x2c52dc[_0x321a('0x13')]){if(_0x2c52dc['error']['code']===0x1f4){logger[_0x321a('0x13')]('Attachment,\x20%s,\x20%s',_0x388901,_0x2c52dc[_0x321a('0x13')][_0x321a('0x14')]);return _0xdfd6b8(_0x2c52dc['error']['message']);}logger[_0x321a('0x13')](_0x321a('0xe'),_0x388901,_0x2c52dc[_0x321a('0x13')][_0x321a('0x14')]);return _0x10c1d3(_0x2c52dc[_0x321a('0x13')][_0x321a('0x14')]);}else{logger[_0x321a('0xd')](_0x321a('0xe'),_0x388901,'request\x20sent');_0x10c1d3(_0x2c52dc[_0x321a('0x15')][_0x321a('0x14')]);}})['catch'](function(_0x45ceb2){logger[_0x321a('0x13')](_0x321a('0xe'),_0x388901,_0x45ceb2);_0xdfd6b8(_0x45ceb2);});});}exports['CreateAttachment']=function(_0x5b1810){var _0x464bd7=this;return new Promise(function(_0x35fd6f,_0x58595b){return db[_0x321a('0x16')][_0x321a('0x17')](_0x5b1810[_0x321a('0x18')],{'raw':_0x5b1810['options']?_0x5b1810[_0x321a('0x19')][_0x321a('0x1a')]===undefined?!![]:![]:!![]})[_0x321a('0xc')](function(_0x423cb8){logger[_0x321a('0xd')](_0x321a('0x1b'),_0x5b1810);logger[_0x321a('0x10')](_0x321a('0x1b'),_0x5b1810,JSON[_0x321a('0x12')](_0x423cb8));_0x35fd6f(_0x423cb8);})[_0x321a('0x1c')](function(_0x1b94a1){logger[_0x321a('0x13')]('CreateAttachment',_0x1b94a1[_0x321a('0x14')],_0x5b1810);_0x58595b(_0x464bd7[_0x321a('0x13')](0x1f4,_0x1b94a1[_0x321a('0x14')]));});});};
\ No newline at end of file
+var _0x8c25=['then','info','Attachment,\x20%s,\x20%s','request\x20sent','debug','Attachment,\x20%s,\x20%s,\x20%s','stringify','error','message','result','body','options','raw','CreateAttachment','lodash','util','moment','bluebird','randomstring','ioredis','../../config/utils','jayson/promise','http','request'];(function(_0x2064e5,_0x4f6fa2){var _0x21a233=function(_0x1b2491){while(--_0x1b2491){_0x2064e5['push'](_0x2064e5['shift']());}};_0x21a233(++_0x4f6fa2);}(_0x8c25,0x15e));var _0x58c2=function(_0x2f2898,_0x341151){_0x2f2898=_0x2f2898-0x0;var _0x2bd02b=_0x8c25[_0x2f2898];return _0x2bd02b;};'use strict';var _=require(_0x58c2('0x0'));var util=require(_0x58c2('0x1'));var moment=require(_0x58c2('0x2'));var BPromise=require(_0x58c2('0x3'));var rs=require(_0x58c2('0x4'));var fs=require('fs');var Redis=require(_0x58c2('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0x58c2('0x6'));var logger=require('../../config/logger')('rpc');var config=require('../../config/environment');var jayson=require(_0x58c2('0x7'));var client=jayson['client'][_0x58c2('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x4be512,_0x5f3536,_0x331863){return new BPromise(function(_0xddbb7e,_0x52cfa7){return client[_0x58c2('0x9')](_0x4be512,_0x331863)[_0x58c2('0xa')](function(_0xf9aef5){logger[_0x58c2('0xb')](_0x58c2('0xc'),_0x5f3536,_0x58c2('0xd'));logger[_0x58c2('0xe')](_0x58c2('0xf'),_0x5f3536,'request\x20sent',JSON[_0x58c2('0x10')](_0xf9aef5));if(_0xf9aef5[_0x58c2('0x11')]){if(_0xf9aef5[_0x58c2('0x11')]['code']===0x1f4){logger[_0x58c2('0x11')](_0x58c2('0xc'),_0x5f3536,_0xf9aef5[_0x58c2('0x11')][_0x58c2('0x12')]);return _0x52cfa7(_0xf9aef5[_0x58c2('0x11')][_0x58c2('0x12')]);}logger[_0x58c2('0x11')](_0x58c2('0xc'),_0x5f3536,_0xf9aef5[_0x58c2('0x11')][_0x58c2('0x12')]);return _0xddbb7e(_0xf9aef5['error']['message']);}else{logger[_0x58c2('0xb')](_0x58c2('0xc'),_0x5f3536,_0x58c2('0xd'));_0xddbb7e(_0xf9aef5[_0x58c2('0x13')][_0x58c2('0x12')]);}})['catch'](function(_0x3a6312){logger[_0x58c2('0x11')]('Attachment,\x20%s,\x20%s',_0x5f3536,_0x3a6312);_0x52cfa7(_0x3a6312);});});}exports['CreateAttachment']=function(_0x55d76b){var _0x427d7e=this;return new Promise(function(_0x4924c6,_0x58f5cf){return db['Attachment']['create'](_0x55d76b[_0x58c2('0x14')],{'raw':_0x55d76b[_0x58c2('0x15')]?_0x55d76b[_0x58c2('0x15')][_0x58c2('0x16')]===undefined?!![]:![]:!![]})[_0x58c2('0xa')](function(_0x367400){logger['info'](_0x58c2('0x17'),_0x55d76b);logger[_0x58c2('0xe')](_0x58c2('0x17'),_0x55d76b,JSON[_0x58c2('0x10')](_0x367400));_0x4924c6(_0x367400);})['catch'](function(_0x34c54b){logger[_0x58c2('0x11')](_0x58c2('0x17'),_0x34c54b[_0x58c2('0x12')],_0x55d76b);_0x58f5cf(_0x427d7e[_0x58c2('0x11')](0x1f4,_0x34c54b[_0x58c2('0x12')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0b0e=['/:id/clone','clone','diskStorage','join','server/files/attachments/','format','now','originalname','replace','single','create','/:id','delete','destroy','multer','path','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./attachment.controller','get','isAuthenticated','index','show','/:id/download','post'];(function(_0xf71120,_0x25b7f9){var _0xbe2fd3=function(_0x1acbdd){while(--_0x1acbdd){_0xf71120['push'](_0xf71120['shift']());}};_0xbe2fd3(++_0x25b7f9);}(_0x0b0e,0x187));var _0xe0b0=function(_0x45d55e,_0x2fede3){_0x45d55e=_0x45d55e-0x0;var _0x29812a=_0x0b0e[_0x45d55e];return _0x29812a;};'use strict';var multer=require(_0xe0b0('0x0'));var util=require('util');var path=require(_0xe0b0('0x1'));var timeout=require('connect-timeout');var express=require(_0xe0b0('0x2'));var router=express[_0xe0b0('0x3')]();var fs_extra=require(_0xe0b0('0x4'));var auth=require(_0xe0b0('0x5'));var interaction=require(_0xe0b0('0x6'));var config=require(_0xe0b0('0x7'));var controller=require(_0xe0b0('0x8'));router[_0xe0b0('0x9')]('/',auth[_0xe0b0('0xa')](),controller[_0xe0b0('0xb')]);router[_0xe0b0('0x9')]('/:id',auth['isAuthenticated'](),controller[_0xe0b0('0xc')]);router[_0xe0b0('0x9')](_0xe0b0('0xd'),auth[_0xe0b0('0xa')](),controller['download']);router[_0xe0b0('0xe')](_0xe0b0('0xf'),auth['isAuthenticated'](),controller[_0xe0b0('0x10')]);var upload=multer({'storage':multer[_0xe0b0('0x11')]({'destination':function(_0x574d96,_0x399320,_0x2cdad2){_0x2cdad2(null,path[_0xe0b0('0x12')](config['root'],_0xe0b0('0x13')));},'filename':function(_0x1c358a,_0x3cc19a,_0x45f914){_0x45f914(null,util[_0xe0b0('0x14')]('%s-%s',Date[_0xe0b0('0x15')](),_0x3cc19a[_0xe0b0('0x16')][_0xe0b0('0x17')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-')));}})});router[_0xe0b0('0xe')]('/',upload[_0xe0b0('0x18')]('file'),controller[_0xe0b0('0x19')]);router['put'](_0xe0b0('0x1a'),auth[_0xe0b0('0xa')](),controller['update']);router[_0xe0b0('0x1b')]('/:id',auth[_0xe0b0('0xa')](),controller[_0xe0b0('0x1c')]);module['exports']=router;
\ No newline at end of file
+var _0xb10b=['originalname','replace','single','file','create','put','/:id','update','destroy','exports','multer','path','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./attachment.controller','get','index','isAuthenticated','show','/:id/download','download','post','/:id/clone','diskStorage','join','server/files/attachments/','format','%s-%s'];(function(_0x48903a,_0x20eb85){var _0xe27fea=function(_0x5216d7){while(--_0x5216d7){_0x48903a['push'](_0x48903a['shift']());}};_0xe27fea(++_0x20eb85);}(_0xb10b,0x12a));var _0xbb10=function(_0x5c3c90,_0x5ba31e){_0x5c3c90=_0x5c3c90-0x0;var _0x1dff8b=_0xb10b[_0x5c3c90];return _0x1dff8b;};'use strict';var multer=require(_0xbb10('0x0'));var util=require('util');var path=require(_0xbb10('0x1'));var timeout=require(_0xbb10('0x2'));var express=require(_0xbb10('0x3'));var router=express['Router']();var fs_extra=require(_0xbb10('0x4'));var auth=require(_0xbb10('0x5'));var interaction=require(_0xbb10('0x6'));var config=require(_0xbb10('0x7'));var controller=require(_0xbb10('0x8'));router[_0xbb10('0x9')]('/',auth['isAuthenticated'](),controller[_0xbb10('0xa')]);router[_0xbb10('0x9')]('/:id',auth[_0xbb10('0xb')](),controller[_0xbb10('0xc')]);router[_0xbb10('0x9')](_0xbb10('0xd'),auth[_0xbb10('0xb')](),controller[_0xbb10('0xe')]);router[_0xbb10('0xf')](_0xbb10('0x10'),auth['isAuthenticated'](),controller['clone']);var upload=multer({'storage':multer[_0xbb10('0x11')]({'destination':function(_0x118a74,_0xce64f3,_0x5e136d){_0x5e136d(null,path[_0xbb10('0x12')](config['root'],_0xbb10('0x13')));},'filename':function(_0x916a32,_0x285009,_0x193a27){_0x193a27(null,util[_0xbb10('0x14')](_0xbb10('0x15'),Date['now'](),_0x285009[_0xbb10('0x16')][_0xbb10('0x17')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-')));}})});router[_0xbb10('0xf')]('/',upload[_0xbb10('0x18')](_0xbb10('0x19')),controller[_0xbb10('0x1a')]);router[_0xbb10('0x1b')](_0xbb10('0x1c'),auth[_0xbb10('0xb')](),controller[_0xbb10('0x1d')]);router['delete'](_0xbb10('0x1c'),auth[_0xbb10('0xb')](),controller[_0xbb10('0x1e')]);module[_0xbb10('0x1f')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2d90=['clientID','clientSecret','secret','Setting','findOne','blockDuration','then','User','find','emails','value','user','agent','disabled','blocked','blockedAt','add','minutes','Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.','clearBlockUser','getLicense','lodash','passport','passport-google-oauth20','Strategy','moment','../../mysqldb','../../config/environment','signToken','../../config/utils','login','google','/login','profile','email','callback'];(function(_0xfbdff6,_0x2af690){var _0x4cb9be=function(_0x4022d8){while(--_0x4022d8){_0xfbdff6['push'](_0xfbdff6['shift']());}};_0x4cb9be(++_0x2af690);}(_0x2d90,0x1a1));var _0x02d9=function(_0x3d82af,_0x5a703d){_0x3d82af=_0x3d82af-0x0;var _0x22de45=_0x2d90[_0x3d82af];return _0x22de45;};'use strict';var _=require(_0x02d9('0x0'));var passport=require(_0x02d9('0x1'));var GoogleStrategy=require(_0x02d9('0x2'))[_0x02d9('0x3')];var moment=require(_0x02d9('0x4'));var db=require(_0x02d9('0x5'))['db'];var config=require(_0x02d9('0x6'));var signToken=require('../../components/auth/service')[_0x02d9('0x7')];var utils=require(_0x02d9('0x8'));exports[_0x02d9('0x9')]=passport['authenticate'](_0x02d9('0xa'),{'failureRedirect':_0x02d9('0xb'),'scope':[_0x02d9('0xc'),_0x02d9('0xd')],'session':![]});exports[_0x02d9('0xe')]=passport['authenticate']('google',{'failureRedirect':_0x02d9('0xb'),'session':![]});passport['use'](new GoogleStrategy({'clientID':config[_0x02d9('0xa')]?config[_0x02d9('0xa')][_0x02d9('0xf')]:'id','clientSecret':config[_0x02d9('0xa')]?config[_0x02d9('0xa')][_0x02d9('0x10')]:_0x02d9('0x11'),'callbackURL':config['google']?config[_0x02d9('0xa')]['callbackURL']:''},function(_0x18883b,_0x1f5a46,_0xc0254e,_0x113d00){var _0x2c6f59,_0x2fc789;return db[_0x02d9('0x12')][_0x02d9('0x13')]({'where':{'id':0x1},'attributes':['allowedLoginAttempts',_0x02d9('0x14')],'raw':!![]})[_0x02d9('0x15')](function(_0xb07f0d){_0x2c6f59=_0xb07f0d;return db[_0x02d9('0x16')][_0x02d9('0x17')]({'where':{'email':_['map'](_0xc0254e[_0x02d9('0x18')],_0x02d9('0x19')),'role':{'$or':['admin',_0x02d9('0x1a'),_0x02d9('0x1b')]}}});})[_0x02d9('0x15')](function(_0x65201b){_0x2fc789=_0x65201b;if(_0x2fc789){if(_0x2fc789[_0x02d9('0x1c')]){return _0x113d00('Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.');}else if(_0x2c6f59[_0x02d9('0x14')]>0x0){if(_0x2fc789[_0x02d9('0x1d')]){if(moment(_0x2fc789[_0x02d9('0x1e')])[_0x02d9('0x1f')](_0x2c6f59[_0x02d9('0x14')],_0x02d9('0x20'))>moment()){return _0x113d00(_0x02d9('0x21'));}else{return utils[_0x02d9('0x22')](_0x2fc789,0x0,![],null)['then'](function(){return utils[_0x02d9('0x23')](_0x2fc789);})[_0x02d9('0x15')](function(){return _0x113d00(null,_0x2fc789);});}}else{return utils[_0x02d9('0x23')](_0x2fc789)[_0x02d9('0x15')](function(){return _0x113d00(null,_0x2fc789);});}}else{return utils[_0x02d9('0x23')](_0x2fc789)['then'](function(){return _0x113d00(null,_0x2fc789);});}}return _0x113d00('Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.');})['catch'](function(_0x420c34){_0x113d00(_0x420c34);});}));
\ No newline at end of file
+var _0x6f12=['disabled','blockedAt','add','Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.','clearBlockUser','getLicense','catch','passport','Strategy','moment','../../mysqldb','../../config/environment','signToken','../../config/utils','login','authenticate','google','/login','profile','use','clientID','clientSecret','secret','callbackURL','Setting','findOne','allowedLoginAttempts','blockDuration','then','User','map','emails','value','admin','user','agent'];(function(_0xa23275,_0x418480){var _0x10a845=function(_0x2e82e8){while(--_0x2e82e8){_0xa23275['push'](_0xa23275['shift']());}};_0x10a845(++_0x418480);}(_0x6f12,0x16f));var _0x26f1=function(_0x3541da,_0x5b2254){_0x3541da=_0x3541da-0x0;var _0xa24cff=_0x6f12[_0x3541da];return _0xa24cff;};'use strict';var _=require('lodash');var passport=require(_0x26f1('0x0'));var GoogleStrategy=require('passport-google-oauth20')[_0x26f1('0x1')];var moment=require(_0x26f1('0x2'));var db=require(_0x26f1('0x3'))['db'];var config=require(_0x26f1('0x4'));var signToken=require('../../components/auth/service')[_0x26f1('0x5')];var utils=require(_0x26f1('0x6'));exports[_0x26f1('0x7')]=passport[_0x26f1('0x8')](_0x26f1('0x9'),{'failureRedirect':_0x26f1('0xa'),'scope':[_0x26f1('0xb'),'email'],'session':![]});exports['callback']=passport[_0x26f1('0x8')]('google',{'failureRedirect':_0x26f1('0xa'),'session':![]});passport[_0x26f1('0xc')](new GoogleStrategy({'clientID':config[_0x26f1('0x9')]?config[_0x26f1('0x9')][_0x26f1('0xd')]:'id','clientSecret':config[_0x26f1('0x9')]?config['google'][_0x26f1('0xe')]:_0x26f1('0xf'),'callbackURL':config[_0x26f1('0x9')]?config[_0x26f1('0x9')][_0x26f1('0x10')]:''},function(_0x4cbf47,_0x5ea982,_0x37eb14,_0x50c373){var _0x200ac0,_0x1c204a;return db[_0x26f1('0x11')][_0x26f1('0x12')]({'where':{'id':0x1},'attributes':[_0x26f1('0x13'),_0x26f1('0x14')],'raw':!![]})[_0x26f1('0x15')](function(_0x3101ba){_0x200ac0=_0x3101ba;return db[_0x26f1('0x16')]['find']({'where':{'email':_[_0x26f1('0x17')](_0x37eb14[_0x26f1('0x18')],_0x26f1('0x19')),'role':{'$or':[_0x26f1('0x1a'),_0x26f1('0x1b'),_0x26f1('0x1c')]}}});})['then'](function(_0x562d38){_0x1c204a=_0x562d38;if(_0x1c204a){if(_0x1c204a[_0x26f1('0x1d')]){return _0x50c373('Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.');}else if(_0x200ac0[_0x26f1('0x14')]>0x0){if(_0x1c204a['blocked']){if(moment(_0x1c204a[_0x26f1('0x1e')])[_0x26f1('0x1f')](_0x200ac0['blockDuration'],'minutes')>moment()){return _0x50c373(_0x26f1('0x20'));}else{return utils[_0x26f1('0x21')](_0x1c204a,0x0,![],null)['then'](function(){return utils['getLicense'](_0x1c204a);})[_0x26f1('0x15')](function(){return _0x50c373(null,_0x1c204a);});}}else{return utils[_0x26f1('0x22')](_0x1c204a)[_0x26f1('0x15')](function(){return _0x50c373(null,_0x1c204a);});}}else{return utils[_0x26f1('0x22')](_0x1c204a)[_0x26f1('0x15')](function(){return _0x50c373(null,_0x1c204a);});}}return _0x50c373(_0x26f1('0x20'));})[_0x26f1('0x23')](function(_0x3f1fde){_0x50c373(_0x3f1fde);});}));
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8a9c=['exports','express','passport','Router','./authGoogle.controller','../user/user.controller.js','get','login','/callback','callback','isMiddleware','setTokenCookie'];(function(_0x900da4,_0x3857fa){var _0x2e6bdb=function(_0x31204c){while(--_0x31204c){_0x900da4['push'](_0x900da4['shift']());}};_0x2e6bdb(++_0x3857fa);}(_0x8a9c,0x12d));var _0xc8a9=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x8a9c[_0x3dd15e];return _0x231fd0;};'use strict';var express=require(_0xc8a9('0x0'));var passport=require(_0xc8a9('0x1'));var router=express[_0xc8a9('0x2')]();var controller=require(_0xc8a9('0x3'));var userController=require(_0xc8a9('0x4'));var authService=require('../../components/auth/service');router[_0xc8a9('0x5')]('/',controller[_0xc8a9('0x6')]);router['get'](_0xc8a9('0x7'),controller[_0xc8a9('0x8')],authService[_0xc8a9('0x9')],userController['login'],authService[_0xc8a9('0xa')]);module[_0xc8a9('0xb')]=router;
\ No newline at end of file
+var _0x554b=['login','setTokenCookie','exports','./authGoogle.controller','../user/user.controller.js','../../components/auth/service','get','/callback','callback','isMiddleware'];(function(_0x205a15,_0x1beef5){var _0xc2652f=function(_0x5dc9f3){while(--_0x5dc9f3){_0x205a15['push'](_0x205a15['shift']());}};_0xc2652f(++_0x1beef5);}(_0x554b,0x125));var _0xb554=function(_0x576170,_0x1712ae){_0x576170=_0x576170-0x0;var _0x397c70=_0x554b[_0x576170];return _0x397c70;};'use strict';var express=require('express');var passport=require('passport');var router=express['Router']();var controller=require(_0xb554('0x0'));var userController=require(_0xb554('0x1'));var authService=require(_0xb554('0x2'));router[_0xb554('0x3')]('/',controller['login']);router[_0xb554('0x3')](_0xb554('0x4'),controller[_0xb554('0x5')],authService[_0xb554('0x6')],userController[_0xb554('0x7')],authService[_0xb554('0x8')]);module[_0xb554('0x9')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1af7=['login','local','role','signToken','json','online','forgot','body','Email\x20parameter\x20is\x20missing','generate','toLowerCase','User','This\x20email\x20is\x20not\x20registered.','The\x20user\x20is\x20disabled.\x20Please\x20contact\x20the\x20administrator.','resetPasswordToken','resetPasswordExpires','save','xCally\x20Motion\x20Password\x20Reset','You\x20are\x20receiving\x20this\x20because\x20you\x20(or\x20someone\x20else)\x20have\x20requested\x20the\x20reset\x20of\x20the\x20password\x20for\x20your\x20account.\x0a\x0a','Please\x20click\x20on\x20the\x20following\x20link,\x20or\x20paste\x20this\x20into\x20your\x20browser\x20to\x20complete\x20the\x20process:\x0a\x0a','https://','/reset/','If\x20you\x20did\x20not\x20request\x20this,\x20please\x20ignore\x20this\x20email\x20and\x20your\x20password\x20will\x20remain\x20unchanged.\x0a','status','send','Reset\x20Email\x20sent!','reset','params','token','now','Password\x20reset\x20token\x20is\x20invalid\x20or\x20has\x20expired.','enforcePasswordHistory','passwordHistoryLimit','securePassword','validatePasswordHistory','util','passport','passport-local','Strategy','lodash','moment','../../mysqldb','http','Setting','findOne','allowedLoginAttempts','then','name','password','salt','blocked','blockedAt','loginAttempts','admin','user','agent','Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.','authenticate','blockDuration','add','clearBlockUser','minutes','getLicense','catch','find','email','MailServerOut','Smtp','service','host','port','authentication','auth','pass','merge','format','\x22%s\x22\x20<%s>','SendMail','error','SendMail\x20error:\x20%s.\x20Please\x20contact\x20your\x20Administrator!','stringify'];(function(_0x4207f4,_0x1f778b){var _0x29a621=function(_0xa6f5b7){while(--_0xa6f5b7){_0x4207f4['push'](_0x4207f4['shift']());}};_0x29a621(++_0x1f778b);}(_0x1af7,0x1b8));var _0x71af=function(_0x4a9fb1,_0x273043){_0x4a9fb1=_0x4a9fb1-0x0;var _0x348672=_0x1af7[_0x4a9fb1];return _0x348672;};'use strict';var util=require(_0x71af('0x0'));var passport=require(_0x71af('0x1'));var LocalStrategy=require(_0x71af('0x2'))[_0x71af('0x3')];var jayson=require('jayson/promise');var _=require(_0x71af('0x4'));var rs=require('randomstring');var moment=require(_0x71af('0x5'));var db=require(_0x71af('0x6'))['db'];var authService=require('../../components/auth/service');var utils=require('../../config/utils');var client=jayson['client'][_0x71af('0x7')]({'port':0x232b});function localAuthenticate(_0x5510f7,_0x1af506,_0x5e0fdf,_0x3cec6f){var _0x5868c0,_0x47fad8;return db[_0x71af('0x8')][_0x71af('0x9')]({'where':{'id':0x1},'attributes':[_0x71af('0xa'),'blockDuration'],'raw':!![]})[_0x71af('0xb')](function(_0x57c0c0){_0x5868c0=_0x57c0c0;return _0x5510f7[_0x71af('0x9')]({'attributes':['id',_0x71af('0xc'),_0x71af('0xd'),_0x71af('0xe'),'role','disabled',_0x71af('0xf'),_0x71af('0x10'),_0x71af('0x11')],'where':{'name':_0x1af506,'role':{'$or':[_0x71af('0x12'),_0x71af('0x13'),_0x71af('0x14')]}}});})[_0x71af('0xb')](function(_0x4aab00){if(!_0x4aab00||_0x4aab00&&_0x4aab00[_0x71af('0xc')]!==_0x1af506){throw new Error(_0x71af('0x15'));}else{_0x47fad8=_0x4aab00;return _0x47fad8;}})[_0x71af('0xb')](function(){_0x47fad8[_0x71af('0x16')](_0x5e0fdf,function(_0x3002ec,_0xa5c8b9){var _0x5cd36a=_0x47fad8[_0x71af('0x11')]+0x1;if(_0x3002ec){return _0x3cec6f(_0x3002ec);}else if(!_0xa5c8b9){if(_0x47fad8['disabled']){return _0x3cec6f(null,![],{'message':_0x71af('0x15')});}else if(_0x5868c0[_0x71af('0xa')]>0x0){if(_0x47fad8['blocked']){if(_0x5868c0[_0x71af('0x17')]>0x0){if(moment(_0x47fad8['blockedAt'])[_0x71af('0x18')](_0x5868c0[_0x71af('0x17')],'minutes')>moment()){return _0x3cec6f(null,![],{'message':_0x71af('0x15')});}else{return utils['clearBlockUser'](_0x47fad8,_0x5cd36a,![],null)['then'](function(){return _0x3cec6f(null,![],{'message':_0x71af('0x15')});});}}else{return _0x3cec6f(null,![],{'message':_0x71af('0x15')});}}else{if(_0x5cd36a>=_0x5868c0[_0x71af('0xa')]){return utils[_0x71af('0x19')](_0x47fad8,0x0,!![],moment())[_0x71af('0xb')](function(){return _0x3cec6f(null,![],{'message':_0x71af('0x15')});});}else{return utils['clearBlockUser'](_0x47fad8,_0x5cd36a,![],null)[_0x71af('0xb')](function(){return _0x3cec6f(null,![],{'message':_0x71af('0x15')});});}}}else{return _0x3cec6f(null,![],{'message':_0x71af('0x15')});}}else{if(_0x47fad8['disabled']){return _0x3cec6f(null,![],{'message':_0x71af('0x15')});}else if(_0x5868c0[_0x71af('0xa')]>0x0){if(_0x47fad8['blocked']){if(_0x5868c0[_0x71af('0x17')]>0x0){if(moment(_0x47fad8[_0x71af('0x10')])[_0x71af('0x18')](_0x5868c0[_0x71af('0x17')],_0x71af('0x1a'))>moment()){return _0x3cec6f(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});}else{return utils['clearBlockUser'](_0x47fad8,0x0,![],null)[_0x71af('0xb')](function(){return utils[_0x71af('0x1b')](_0x47fad8);})[_0x71af('0xb')](function(){return _0x3cec6f(null,_0x47fad8);});}}else{return _0x3cec6f(null,![],{'message':_0x71af('0x15')});}}else{return utils['clearBlockUser'](_0x47fad8,0x0,![],null)[_0x71af('0xb')](function(){return utils[_0x71af('0x1b')](_0x47fad8);})[_0x71af('0xb')](function(){return _0x3cec6f(null,_0x47fad8);})[_0x71af('0x1c')](function(_0xa5e756){return _0x3cec6f(null,![],_0xa5e756);});}}else{if(_0x47fad8['blocked']){return _0x3cec6f(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});}else{return utils['getLicense'](_0x47fad8)[_0x71af('0xb')](function(){return _0x3cec6f(null,_0x47fad8);});}}}});})['catch'](function(_0xabf4d6){return _0x3cec6f(null,![],_0xabf4d6);});}function sendServiceMail(_0x299a60){return db['MailAccount'][_0x71af('0x1d')]({'where':{'service':!![]},'attributes':['id',_0x71af('0xc'),_0x71af('0x1e')],'include':[{'model':db[_0x71af('0x1f')],'as':_0x71af('0x20')}]})[_0x71af('0xb')](function(_0x4a4493){if(!_0x4a4493){throw new Error('Unable\x20to\x20find\x20a\x20configured\x20SMTP\x20service!');}var _0x484b98={'tls':{'rejectUnauthorized':![]}};if(_0x4a4493[_0x71af('0x20')][_0x71af('0x21')]){_0x484b98['service']=_0x4a4493[_0x71af('0x20')][_0x71af('0x21')];}else{_0x484b98['host']=_0x4a4493[_0x71af('0x20')][_0x71af('0x22')];_0x484b98[_0x71af('0x23')]=_0x4a4493[_0x71af('0x20')][_0x71af('0x23')];_0x484b98['secure']=_0x4a4493[_0x71af('0x20')]['secure'];}if(_0x4a4493['Smtp'][_0x71af('0x24')]){_0x484b98[_0x71af('0x25')]={'user':_0x4a4493[_0x71af('0x20')][_0x71af('0x13')],'pass':_0x4a4493[_0x71af('0x20')][_0x71af('0x26')]};}var _0x534ec4={'account':_0x484b98,'message':_[_0x71af('0x27')]({'from':util[_0x71af('0x28')](_0x71af('0x29'),_0x4a4493[_0x71af('0xc')],_0x4a4493[_0x71af('0x1e')]||_0x4a4493['Smtp'][_0x71af('0x13')])},_0x299a60)};return client['request'](_0x71af('0x2a'),_0x534ec4);})['then'](function(_0x4d5d83){if(_0x4d5d83[_0x71af('0x2b')]){throw new Error(util[_0x71af('0x28')](_0x71af('0x2c'),_0x4d5d83[_0x71af('0x2b')]['message']||JSON[_0x71af('0x2d')](_0x4d5d83[_0x71af('0x2b')])));}return!![];});}function handleError(_0x55ab2a,_0x9ea37b,_0x3319fd){return _0x55ab2a['status'](_0x9ea37b||0x1f4)['send']({'message':_0x3319fd?_0x3319fd['message']||_0x3319fd:''});}exports[_0x71af('0x2e')]=function(_0x2351ad,_0x6cd89f,_0x2bbcc3){passport[_0x71af('0x16')](_0x71af('0x2f'),function(_0x53d327,_0x51d5e8,_0x6b3a36){var _0x50e3fe=_0x53d327||_0x6b3a36;if(_0x50e3fe){return handleError(_0x6cd89f,0x191,_0x50e3fe);}if(!_0x51d5e8){return handleError(_0x6cd89f,0x194,{'message':'Something\x20went\x20wrong,\x20please\x20try\x20again.'});}else{var _0x3594cd={'payload':{'id':_0x51d5e8['id'],'role':_0x51d5e8[_0x71af('0x30')]},'options':{'expiresIn':0x15180}};return authService[_0x71af('0x31')](_0x3594cd)[_0x71af('0xb')](function(_0x2f7cb5){_0x6cd89f[_0x71af('0x32')]({'id':_0x51d5e8['id'],'token':_0x2f7cb5,'statusCall':'','isAlreadyLogged':_0x51d5e8[_0x71af('0x33')]});});}})(_0x2351ad,_0x6cd89f,_0x2bbcc3);};exports[_0x71af('0x34')]=function(_0x40ff09,_0x4a8ded,_0x338906){if(!_0x40ff09[_0x71af('0x35')][_0x71af('0x1e')]){return handleError(_0x4a8ded,0x1f4,{'message':_0x71af('0x36')});}var _0x45b063=rs[_0x71af('0x37')]();_0x40ff09[_0x71af('0x35')][_0x71af('0x1e')]=_0x40ff09[_0x71af('0x35')][_0x71af('0x1e')]['trim']()[_0x71af('0x38')]();var _0x4594e0;return db[_0x71af('0x8')][_0x71af('0x9')]({'where':{'id':0x1},'attributes':['allowedLoginAttempts',_0x71af('0x17')],'raw':!![]})[_0x71af('0xb')](function(_0x425059){_0x4594e0=_0x425059;return db[_0x71af('0x39')][_0x71af('0x1d')]({'where':{'email':_0x40ff09[_0x71af('0x35')][_0x71af('0x1e')]}});})['then'](function(_0x372755){if(!_0x372755){throw new Error(_0x71af('0x3a'));}if(_0x372755['disabled']){throw new Error(_0x71af('0x3b'));}if(_0x372755[_0x71af('0xf')]){if(moment(_0x372755['blockedAt'])['add'](_0x4594e0['blockDuration'],'minutes')>moment()){throw new Error('The\x20user\x20is\x20blocked.\x20Please\x20contact\x20the\x20administrator.');}else{_0x372755['blocked']=![];_0x372755[_0x71af('0x10')]=null;}}_0x372755[_0x71af('0x3c')]=_0x45b063;_0x372755[_0x71af('0x3d')]=Date['now']()+0x36ee80;return _0x372755[_0x71af('0x3e')]();})[_0x71af('0xb')](function(){return sendServiceMail({'to':_0x40ff09[_0x71af('0x35')]['email'],'subject':_0x71af('0x3f'),'text':_0x71af('0x40')+_0x71af('0x41')+_0x71af('0x42')+_0x40ff09['headers'][_0x71af('0x22')]+_0x71af('0x43')+_0x45b063+'\x0a\x0a'+_0x71af('0x44')});})[_0x71af('0xb')](function(){_0x4a8ded[_0x71af('0x45')](0xc8)[_0x71af('0x46')]({'message':_0x71af('0x47')});})[_0x71af('0x1c')](function(_0x5879ae){return handleError(_0x4a8ded,0x1f4,_0x5879ae);});};exports[_0x71af('0x48')]=function(_0x9cc6db,_0x1c016d,_0x506e08){return db[_0x71af('0x39')][_0x71af('0x1d')]({'where':{'resetPasswordToken':_0x9cc6db[_0x71af('0x49')][_0x71af('0x4a')],'resetPasswordExpires':{'$gt':Date[_0x71af('0x4b')]()}}})[_0x71af('0xb')](function(_0x19222d){if(!_0x19222d){throw new Error(_0x71af('0x4c'));}return db[_0x71af('0x8')][_0x71af('0x9')]({'attributes':['id','securePassword',_0x71af('0x4d'),_0x71af('0x4e')]})[_0x71af('0xb')](function(_0xf8655){if(_0xf8655[_0x71af('0x4f')])authService['validatePasswordPattern'](_0x9cc6db[_0x71af('0x35')][_0x71af('0xd')]);if(!_0xf8655[_0x71af('0x4d')]||!_0x19222d['previousPasswords'])return _0x19222d;authService[_0x71af('0x50')](_0x9cc6db[_0x71af('0x35')][_0x71af('0xd')],_0x19222d['previousPasswords'],_0xf8655[_0x71af('0x4e')]);return _0x19222d;})[_0x71af('0xb')](function(){_0x19222d[_0x71af('0xd')]=_0x9cc6db['body'][_0x71af('0xd')];_0x19222d[_0x71af('0x3c')]=null;_0x19222d[_0x71af('0x3d')]=null;return _0x19222d[_0x71af('0x3e')]();});})[_0x71af('0xb')](function(){_0x1c016d[_0x71af('0x45')](0xc8)[_0x71af('0x46')]({'message':'Password\x20reset!'});})['catch'](function(_0x307626){return handleError(_0x1c016d,0x1f4,_0x307626);});};passport['use'](new LocalStrategy({'usernameField':_0x71af('0xc'),'passwordField':_0x71af('0xd')},function(_0x3ad616,_0x59133b,_0x54342d){return localAuthenticate(db[_0x71af('0x39')],_0x3ad616,_0x59133b,_0x54342d);}));
\ No newline at end of file
+var _0x7d56=['resetPasswordToken','resetPasswordExpires','now','save','xCally\x20Motion\x20Password\x20Reset','https://','Reset\x20Email\x20sent!','params','token','Password\x20reset\x20token\x20is\x20invalid\x20or\x20has\x20expired.','securePassword','passwordHistoryLimit','validatePasswordPattern','enforcePasswordHistory','previousPasswords','validatePasswordHistory','Password\x20reset!','use','util','passport','lodash','randomstring','moment','../../mysqldb','../../components/auth/service','../../config/utils','client','http','Setting','allowedLoginAttempts','blockDuration','password','salt','role','disabled','blocked','loginAttempts','admin','agent','then','name','Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.','blockedAt','minutes','clearBlockUser','add','getLicense','catch','MailAccount','find','email','MailServerOut','Smtp','Unable\x20to\x20find\x20a\x20configured\x20SMTP\x20service!','service','host','port','secure','authentication','auth','user','pass','merge','format','request','SendMail\x20error:\x20%s.\x20Please\x20contact\x20your\x20Administrator!','message','stringify','error','status','send','login','authenticate','signToken','json','forgot','body','generate','trim','User','This\x20email\x20is\x20not\x20registered.'];(function(_0x4825b0,_0x5592c9){var _0x5e3417=function(_0x2de002){while(--_0x2de002){_0x4825b0['push'](_0x4825b0['shift']());}};_0x5e3417(++_0x5592c9);}(_0x7d56,0x156));var _0x67d5=function(_0x14d927,_0x2d97f3){_0x14d927=_0x14d927-0x0;var _0x2dd508=_0x7d56[_0x14d927];return _0x2dd508;};'use strict';var util=require(_0x67d5('0x0'));var passport=require(_0x67d5('0x1'));var LocalStrategy=require('passport-local')['Strategy'];var jayson=require('jayson/promise');var _=require(_0x67d5('0x2'));var rs=require(_0x67d5('0x3'));var moment=require(_0x67d5('0x4'));var db=require(_0x67d5('0x5'))['db'];var authService=require(_0x67d5('0x6'));var utils=require(_0x67d5('0x7'));var client=jayson[_0x67d5('0x8')][_0x67d5('0x9')]({'port':0x232b});function localAuthenticate(_0x1dbb93,_0x5a3005,_0xeb3cc4,_0x5b6588){var _0x243eeb,_0x4b8e8b;return db[_0x67d5('0xa')]['findOne']({'where':{'id':0x1},'attributes':[_0x67d5('0xb'),_0x67d5('0xc')],'raw':!![]})['then'](function(_0x3aef16){_0x243eeb=_0x3aef16;return _0x1dbb93['findOne']({'attributes':['id','name',_0x67d5('0xd'),_0x67d5('0xe'),_0x67d5('0xf'),_0x67d5('0x10'),_0x67d5('0x11'),'blockedAt',_0x67d5('0x12')],'where':{'name':_0x5a3005,'role':{'$or':[_0x67d5('0x13'),'user',_0x67d5('0x14')]}}});})[_0x67d5('0x15')](function(_0x11a58f){if(!_0x11a58f||_0x11a58f&&_0x11a58f[_0x67d5('0x16')]!==_0x5a3005){throw new Error(_0x67d5('0x17'));}else{_0x4b8e8b=_0x11a58f;return _0x4b8e8b;}})['then'](function(){_0x4b8e8b['authenticate'](_0xeb3cc4,function(_0x37003,_0x372614){var _0x33c7de=_0x4b8e8b[_0x67d5('0x12')]+0x1;if(_0x37003){return _0x5b6588(_0x37003);}else if(!_0x372614){if(_0x4b8e8b[_0x67d5('0x10')]){return _0x5b6588(null,![],{'message':_0x67d5('0x17')});}else if(_0x243eeb['allowedLoginAttempts']>0x0){if(_0x4b8e8b[_0x67d5('0x11')]){if(_0x243eeb[_0x67d5('0xc')]>0x0){if(moment(_0x4b8e8b[_0x67d5('0x18')])['add'](_0x243eeb[_0x67d5('0xc')],_0x67d5('0x19'))>moment()){return _0x5b6588(null,![],{'message':_0x67d5('0x17')});}else{return utils[_0x67d5('0x1a')](_0x4b8e8b,_0x33c7de,![],null)[_0x67d5('0x15')](function(){return _0x5b6588(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});});}}else{return _0x5b6588(null,![],{'message':_0x67d5('0x17')});}}else{if(_0x33c7de>=_0x243eeb[_0x67d5('0xb')]){return utils[_0x67d5('0x1a')](_0x4b8e8b,0x0,!![],moment())[_0x67d5('0x15')](function(){return _0x5b6588(null,![],{'message':_0x67d5('0x17')});});}else{return utils[_0x67d5('0x1a')](_0x4b8e8b,_0x33c7de,![],null)['then'](function(){return _0x5b6588(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});});}}}else{return _0x5b6588(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});}}else{if(_0x4b8e8b['disabled']){return _0x5b6588(null,![],{'message':_0x67d5('0x17')});}else if(_0x243eeb[_0x67d5('0xb')]>0x0){if(_0x4b8e8b['blocked']){if(_0x243eeb['blockDuration']>0x0){if(moment(_0x4b8e8b[_0x67d5('0x18')])[_0x67d5('0x1b')](_0x243eeb[_0x67d5('0xc')],_0x67d5('0x19'))>moment()){return _0x5b6588(null,![],{'message':_0x67d5('0x17')});}else{return utils['clearBlockUser'](_0x4b8e8b,0x0,![],null)[_0x67d5('0x15')](function(){return utils[_0x67d5('0x1c')](_0x4b8e8b);})['then'](function(){return _0x5b6588(null,_0x4b8e8b);});}}else{return _0x5b6588(null,![],{'message':_0x67d5('0x17')});}}else{return utils[_0x67d5('0x1a')](_0x4b8e8b,0x0,![],null)[_0x67d5('0x15')](function(){return utils[_0x67d5('0x1c')](_0x4b8e8b);})['then'](function(){return _0x5b6588(null,_0x4b8e8b);})[_0x67d5('0x1d')](function(_0x187ab4){return _0x5b6588(null,![],_0x187ab4);});}}else{if(_0x4b8e8b[_0x67d5('0x11')]){return _0x5b6588(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});}else{return utils[_0x67d5('0x1c')](_0x4b8e8b)[_0x67d5('0x15')](function(){return _0x5b6588(null,_0x4b8e8b);});}}}});})[_0x67d5('0x1d')](function(_0x4c6de8){return _0x5b6588(null,![],_0x4c6de8);});}function sendServiceMail(_0x2e4191){return db[_0x67d5('0x1e')][_0x67d5('0x1f')]({'where':{'service':!![]},'attributes':['id',_0x67d5('0x16'),_0x67d5('0x20')],'include':[{'model':db[_0x67d5('0x21')],'as':_0x67d5('0x22')}]})[_0x67d5('0x15')](function(_0xf926f7){if(!_0xf926f7){throw new Error(_0x67d5('0x23'));}var _0x339f07={'tls':{'rejectUnauthorized':![]}};if(_0xf926f7[_0x67d5('0x22')][_0x67d5('0x24')]){_0x339f07[_0x67d5('0x24')]=_0xf926f7[_0x67d5('0x22')][_0x67d5('0x24')];}else{_0x339f07['host']=_0xf926f7[_0x67d5('0x22')][_0x67d5('0x25')];_0x339f07[_0x67d5('0x26')]=_0xf926f7[_0x67d5('0x22')]['port'];_0x339f07[_0x67d5('0x27')]=_0xf926f7[_0x67d5('0x22')]['secure'];}if(_0xf926f7[_0x67d5('0x22')][_0x67d5('0x28')]){_0x339f07[_0x67d5('0x29')]={'user':_0xf926f7[_0x67d5('0x22')][_0x67d5('0x2a')],'pass':_0xf926f7['Smtp'][_0x67d5('0x2b')]};}var _0x5f511a={'account':_0x339f07,'message':_[_0x67d5('0x2c')]({'from':util[_0x67d5('0x2d')]('\x22%s\x22\x20<%s>',_0xf926f7[_0x67d5('0x16')],_0xf926f7[_0x67d5('0x20')]||_0xf926f7[_0x67d5('0x22')]['user'])},_0x2e4191)};return client[_0x67d5('0x2e')]('SendMail',_0x5f511a);})['then'](function(_0x2e4789){if(_0x2e4789['error']){throw new Error(util['format'](_0x67d5('0x2f'),_0x2e4789['error'][_0x67d5('0x30')]||JSON[_0x67d5('0x31')](_0x2e4789[_0x67d5('0x32')])));}return!![];});}function handleError(_0x24c15c,_0x3308b7,_0x4642a6){return _0x24c15c[_0x67d5('0x33')](_0x3308b7||0x1f4)[_0x67d5('0x34')]({'message':_0x4642a6?_0x4642a6[_0x67d5('0x30')]||_0x4642a6:''});}exports[_0x67d5('0x35')]=function(_0x40e419,_0x2814dc,_0x35364e){passport[_0x67d5('0x36')]('local',function(_0x4c26a0,_0x593ddf,_0x5b9a38){var _0x3d3d24=_0x4c26a0||_0x5b9a38;if(_0x3d3d24){return handleError(_0x2814dc,0x191,_0x3d3d24);}if(!_0x593ddf){return handleError(_0x2814dc,0x194,{'message':'Something\x20went\x20wrong,\x20please\x20try\x20again.'});}else{var _0x57ae2f={'payload':{'id':_0x593ddf['id'],'role':_0x593ddf['role']},'options':{'expiresIn':0x15180}};return authService[_0x67d5('0x37')](_0x57ae2f)[_0x67d5('0x15')](function(_0x40f503){_0x2814dc[_0x67d5('0x38')]({'id':_0x593ddf['id'],'token':_0x40f503,'statusCall':'','isAlreadyLogged':_0x593ddf['online']});});}})(_0x40e419,_0x2814dc,_0x35364e);};exports[_0x67d5('0x39')]=function(_0x310ae4,_0x2c7d5a,_0x2d2bb3){if(!_0x310ae4[_0x67d5('0x3a')][_0x67d5('0x20')]){return handleError(_0x2c7d5a,0x1f4,{'message':'Email\x20parameter\x20is\x20missing'});}var _0x423a19=rs[_0x67d5('0x3b')]();_0x310ae4['body'][_0x67d5('0x20')]=_0x310ae4[_0x67d5('0x3a')][_0x67d5('0x20')][_0x67d5('0x3c')]()['toLowerCase']();var _0x545e7b;return db[_0x67d5('0xa')]['findOne']({'where':{'id':0x1},'attributes':[_0x67d5('0xb'),_0x67d5('0xc')],'raw':!![]})[_0x67d5('0x15')](function(_0x4bb460){_0x545e7b=_0x4bb460;return db[_0x67d5('0x3d')][_0x67d5('0x1f')]({'where':{'email':_0x310ae4[_0x67d5('0x3a')][_0x67d5('0x20')]}});})[_0x67d5('0x15')](function(_0x40f892){if(!_0x40f892){throw new Error(_0x67d5('0x3e'));}if(_0x40f892[_0x67d5('0x10')]){throw new Error('The\x20user\x20is\x20disabled.\x20Please\x20contact\x20the\x20administrator.');}if(_0x40f892[_0x67d5('0x11')]){if(moment(_0x40f892[_0x67d5('0x18')])[_0x67d5('0x1b')](_0x545e7b[_0x67d5('0xc')],_0x67d5('0x19'))>moment()){throw new Error('The\x20user\x20is\x20blocked.\x20Please\x20contact\x20the\x20administrator.');}else{_0x40f892[_0x67d5('0x11')]=![];_0x40f892[_0x67d5('0x18')]=null;}}_0x40f892[_0x67d5('0x3f')]=_0x423a19;_0x40f892[_0x67d5('0x40')]=Date[_0x67d5('0x41')]()+0x36ee80;return _0x40f892[_0x67d5('0x42')]();})['then'](function(){return sendServiceMail({'to':_0x310ae4[_0x67d5('0x3a')]['email'],'subject':_0x67d5('0x43'),'text':'You\x20are\x20receiving\x20this\x20because\x20you\x20(or\x20someone\x20else)\x20have\x20requested\x20the\x20reset\x20of\x20the\x20password\x20for\x20your\x20account.\x0a\x0a'+'Please\x20click\x20on\x20the\x20following\x20link,\x20or\x20paste\x20this\x20into\x20your\x20browser\x20to\x20complete\x20the\x20process:\x0a\x0a'+_0x67d5('0x44')+_0x310ae4['headers']['host']+'/reset/'+_0x423a19+'\x0a\x0a'+'If\x20you\x20did\x20not\x20request\x20this,\x20please\x20ignore\x20this\x20email\x20and\x20your\x20password\x20will\x20remain\x20unchanged.\x0a'});})[_0x67d5('0x15')](function(){_0x2c7d5a['status'](0xc8)[_0x67d5('0x34')]({'message':_0x67d5('0x45')});})[_0x67d5('0x1d')](function(_0x4a0e9e){return handleError(_0x2c7d5a,0x1f4,_0x4a0e9e);});};exports['reset']=function(_0x24ee1d,_0x2f5efd,_0x3a5f1f){return db['User'][_0x67d5('0x1f')]({'where':{'resetPasswordToken':_0x24ee1d[_0x67d5('0x46')][_0x67d5('0x47')],'resetPasswordExpires':{'$gt':Date[_0x67d5('0x41')]()}}})[_0x67d5('0x15')](function(_0x113751){if(!_0x113751){throw new Error(_0x67d5('0x48'));}return db[_0x67d5('0xa')]['findOne']({'attributes':['id',_0x67d5('0x49'),'enforcePasswordHistory',_0x67d5('0x4a')]})[_0x67d5('0x15')](function(_0x5c88be){if(_0x5c88be[_0x67d5('0x49')])authService[_0x67d5('0x4b')](_0x24ee1d[_0x67d5('0x3a')]['password']);if(!_0x5c88be[_0x67d5('0x4c')]||!_0x113751[_0x67d5('0x4d')])return _0x113751;authService[_0x67d5('0x4e')](_0x24ee1d[_0x67d5('0x3a')]['password'],_0x113751[_0x67d5('0x4d')],_0x5c88be[_0x67d5('0x4a')]);return _0x113751;})[_0x67d5('0x15')](function(){_0x113751[_0x67d5('0xd')]=_0x24ee1d['body'][_0x67d5('0xd')];_0x113751[_0x67d5('0x3f')]=null;_0x113751[_0x67d5('0x40')]=null;return _0x113751[_0x67d5('0x42')]();});})['then'](function(){_0x2f5efd[_0x67d5('0x33')](0xc8)[_0x67d5('0x34')]({'message':_0x67d5('0x4f')});})[_0x67d5('0x1d')](function(_0xe5f88d){return handleError(_0x2f5efd,0x1f4,_0xe5f88d);});};passport[_0x67d5('0x50')](new LocalStrategy({'usernameField':_0x67d5('0x16'),'passwordField':_0x67d5('0xd')},function(_0x54a14e,_0x31ac81,_0x238107){return localAuthenticate(db[_0x67d5('0x3d')],_0x54a14e,_0x31ac81,_0x238107);}));
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2304=['exports','express','login','post','/forgot','/reset/:token','reset'];(function(_0x259dac,_0x33ac39){var _0x337b53=function(_0x9a138e){while(--_0x9a138e){_0x259dac['push'](_0x259dac['shift']());}};_0x337b53(++_0x33ac39);}(_0x2304,0x14a));var _0x4230=function(_0x4751b9,_0x4b62a1){_0x4751b9=_0x4751b9-0x0;var _0x4b2feb=_0x2304[_0x4751b9];return _0x4b2feb;};'use strict';var express=require(_0x4230('0x0'));var router=express['Router']();var controller=require('./authLocal.controller');router['post']('/',controller[_0x4230('0x1')]);router[_0x4230('0x2')](_0x4230('0x3'),controller['forgot']);router['post'](_0x4230('0x4'),controller[_0x4230('0x5')]);module[_0x4230('0x6')]=router;
\ No newline at end of file
+var _0x286c=['Router','./authLocal.controller','post','login','/forgot','reset','express'];(function(_0x4ed42e,_0x16b827){var _0x9af164=function(_0x277c82){while(--_0x277c82){_0x4ed42e['push'](_0x4ed42e['shift']());}};_0x9af164(++_0x16b827);}(_0x286c,0x1a3));var _0xc286=function(_0x24253e,_0x4b7382){_0x24253e=_0x24253e-0x0;var _0x31e742=_0x286c[_0x24253e];return _0x31e742;};'use strict';var express=require(_0xc286('0x0'));var router=express[_0xc286('0x1')]();var controller=require(_0xc286('0x2'));router[_0xc286('0x3')]('/',controller[_0xc286('0x4')]);router[_0xc286('0x3')](_0xc286('0x5'),controller['forgot']);router[_0xc286('0x3')]('/reset/:token',controller[_0xc286('0x6')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x74e7=['BOOLEAN','INTEGER','exports','STRING'];(function(_0x1958ae,_0x238fc7){var _0x4330cf=function(_0x56f70c){while(--_0x56f70c){_0x1958ae['push'](_0x1958ae['shift']());}};_0x4330cf(++_0x238fc7);}(_0x74e7,0x10a));var _0x774e=function(_0x2d0245,_0x2e30fa){_0x2d0245=_0x2d0245-0x0;var _0x336e42=_0x74e7[_0x2d0245];return _0x336e42;};'use strict';var Sequelize=require('sequelize');module[_0x774e('0x0')]={'name':{'type':Sequelize[_0x774e('0x1')],'allowNull':![]},'channel':{'type':Sequelize[_0x774e('0x1')]},'description':{'type':Sequelize[_0x774e('0x1')]},'status':{'type':Sequelize[_0x774e('0x2')],'defaultValue':![]},'timeout':{'type':Sequelize[_0x774e('0x3')],'defaultValue':0xa}};
\ No newline at end of file
+var _0x4955=['STRING','BOOLEAN','exports'];(function(_0x3df85b,_0x58e357){var _0x17cf96=function(_0x3fbe81){while(--_0x3fbe81){_0x3df85b['push'](_0x3df85b['shift']());}};_0x17cf96(++_0x58e357);}(_0x4955,0x149));var _0x5495=function(_0x1af9e0,_0x1b2b21){_0x1af9e0=_0x1af9e0-0x0;var _0x3df45d=_0x4955[_0x1af9e0];return _0x3df45d;};'use strict';var Sequelize=require('sequelize');module[_0x5495('0x0')]={'name':{'type':Sequelize['STRING'],'allowNull':![]},'channel':{'type':Sequelize[_0x5495('0x1')]},'description':{'type':Sequelize[_0x5495('0x1')]},'status':{'type':Sequelize[_0x5495('0x2')],'defaultValue':![]},'timeout':{'type':Sequelize['INTEGER'],'defaultValue':0xa}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa31a=['include','findAll','rows','catch','params','includeAll','options','find','create','body','addConditions','Condition','ids','omit','getConditions','findOne','addActions','Action','getActions','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','limit','reject','save','update','then','destroy','stack','send','map','Automation','rawAttributes','fieldName','type','key','model','name','keys','filters','intersection','attributes','fields','length','query','hasOwnProperty','nolimit','order','sort','where','pick','merge','VIRTUAL','filter'];(function(_0x339ee2,_0x2b27ae){var _0x2984f5=function(_0x9f4e5b){while(--_0x9f4e5b){_0x339ee2['push'](_0x339ee2['shift']());}};_0x2984f5(++_0x2b27ae);}(_0xa31a,0x69));var _0xaa31=function(_0xb1c4a4,_0x70fbdc){_0xb1c4a4=_0xb1c4a4-0x0;var _0x4ea691=_0xa31a[_0xb1c4a4];return _0x4ea691;};'use strict';var emlformat=require(_0xaa31('0x0'));var rimraf=require(_0xaa31('0x1'));var zipdir=require(_0xaa31('0x2'));var jsonpatch=require(_0xaa31('0x3'));var rp=require(_0xaa31('0x4'));var moment=require(_0xaa31('0x5'));var BPromise=require(_0xaa31('0x6'));var Mustache=require(_0xaa31('0x7'));var util=require(_0xaa31('0x8'));var path=require(_0xaa31('0x9'));var sox=require(_0xaa31('0xa'));var csv=require(_0xaa31('0xb'));var ejs=require(_0xaa31('0xc'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xaa31('0xd'));var squel=require(_0xaa31('0xe'));var crypto=require('crypto');var jsforce=require(_0xaa31('0xf'));var deskjs=require(_0xaa31('0x10'));var toCsv=require(_0xaa31('0xb'));var querystring=require(_0xaa31('0x11'));var Papa=require(_0xaa31('0x12'));var Redis=require(_0xaa31('0x13'));var authService=require(_0xaa31('0x14'));var qs=require(_0xaa31('0x15'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xaa31('0x16'));var logger=require(_0xaa31('0x17'))(_0xaa31('0x18'));var utils=require(_0xaa31('0x19'));var config=require(_0xaa31('0x1a'));var licenseUtil=require('../../config/license/util');var db=require(_0xaa31('0x1b'))['db'];function respondWithStatusCode(_0x12c90d,_0x258f91){_0x258f91=_0x258f91||0xcc;return function(_0x2758a5){if(_0x2758a5){return _0x12c90d[_0xaa31('0x1c')](_0x258f91);}return _0x12c90d[_0xaa31('0x1d')](_0x258f91)[_0xaa31('0x1e')]();};}function respondWithResult(_0x19807c,_0x8bab77){_0x8bab77=_0x8bab77||0xc8;return function(_0x59661d){if(_0x59661d){return _0x19807c[_0xaa31('0x1d')](_0x8bab77)[_0xaa31('0x1f')](_0x59661d);}};}function respondWithFilteredResult(_0x4bf594,_0x26eaa8){return function(_0x403921){if(_0x403921){var _0x42803d=typeof _0x26eaa8[_0xaa31('0x20')]===_0xaa31('0x21')&&typeof _0x26eaa8['limit']===_0xaa31('0x21');var _0x3bb4de=_0x403921[_0xaa31('0x22')];var _0x316c4c=_0x42803d?0x0:_0x26eaa8['offset'];var _0x52e5ab=_0x42803d?_0x403921[_0xaa31('0x22')]:_0x26eaa8['offset']+_0x26eaa8[_0xaa31('0x23')];var _0x3c56c9;if(_0x52e5ab>=_0x3bb4de){_0x52e5ab=_0x3bb4de;_0x3c56c9=0xc8;}else{_0x3c56c9=0xce;}_0x4bf594[_0xaa31('0x1d')](_0x3c56c9);return _0x4bf594['set']('Content-Range',_0x316c4c+'-'+_0x52e5ab+'/'+_0x3bb4de)['json'](_0x403921);}return null;};}function patchUpdates(_0x5ebd63){return function(_0x425ff0){try{jsonpatch['apply'](_0x425ff0,_0x5ebd63,!![]);}catch(_0x4cd4b6){return BPromise[_0xaa31('0x24')](_0x4cd4b6);}return _0x425ff0[_0xaa31('0x25')]();};}function saveUpdates(_0x196e0f,_0x43d570){return function(_0x823f0e){if(_0x823f0e){return _0x823f0e[_0xaa31('0x26')](_0x196e0f)[_0xaa31('0x27')](function(_0x1a5b30){return _0x1a5b30;});}return null;};}function removeEntity(_0x1b9114,_0x4eda87){return function(_0x19158b){if(_0x19158b){return _0x19158b[_0xaa31('0x28')]()['then'](function(){_0x1b9114[_0xaa31('0x1d')](0xcc)[_0xaa31('0x1e')]();});}};}function handleEntityNotFound(_0x43c90e,_0x5fb171){return function(_0x98e674){if(!_0x98e674){_0x43c90e['sendStatus'](0x194);}return _0x98e674;};}function handleError(_0x27f583,_0x2c42a4){_0x2c42a4=_0x2c42a4||0x1f4;return function(_0x15c269){logger['error'](_0x15c269[_0xaa31('0x29')]);if(_0x15c269['name']){delete _0x15c269['name'];}_0x27f583[_0xaa31('0x1d')](_0x2c42a4)[_0xaa31('0x2a')](_0x15c269);};}exports['index']=function(_0xd9bcb5,_0x43413b){var _0x22704e={},_0x429498={},_0x3d41cb={'count':0x0,'rows':[]};var _0x283152=_[_0xaa31('0x2b')](db[_0xaa31('0x2c')][_0xaa31('0x2d')],function(_0x2a1a96){return{'name':_0x2a1a96[_0xaa31('0x2e')],'type':_0x2a1a96[_0xaa31('0x2f')][_0xaa31('0x30')]};});_0x429498[_0xaa31('0x31')]=_[_0xaa31('0x2b')](_0x283152,_0xaa31('0x32'));_0x429498['query']=_[_0xaa31('0x33')](_0xd9bcb5['query']);_0x429498[_0xaa31('0x34')]=_[_0xaa31('0x35')](_0x429498[_0xaa31('0x31')],_0x429498['query']);_0x22704e[_0xaa31('0x36')]=_['intersection'](_0x429498[_0xaa31('0x31')],qs[_0xaa31('0x37')](_0xd9bcb5['query'][_0xaa31('0x37')]));_0x22704e[_0xaa31('0x36')]=_0x22704e[_0xaa31('0x36')][_0xaa31('0x38')]?_0x22704e[_0xaa31('0x36')]:_0x429498[_0xaa31('0x31')];if(!_0xd9bcb5[_0xaa31('0x39')][_0xaa31('0x3a')](_0xaa31('0x3b'))){_0x22704e[_0xaa31('0x23')]=qs[_0xaa31('0x23')](_0xd9bcb5[_0xaa31('0x39')][_0xaa31('0x23')]);_0x22704e['offset']=qs[_0xaa31('0x20')](_0xd9bcb5[_0xaa31('0x39')]['offset']);}_0x22704e[_0xaa31('0x3c')]=qs[_0xaa31('0x3d')](_0xd9bcb5[_0xaa31('0x39')][_0xaa31('0x3d')]);_0x22704e[_0xaa31('0x3e')]=qs['filters'](_[_0xaa31('0x3f')](_0xd9bcb5['query'],_0x429498[_0xaa31('0x34')]),_0x283152);if(_0xd9bcb5['query']['filter']){_0x22704e[_0xaa31('0x3e')]=_[_0xaa31('0x40')](_0x22704e[_0xaa31('0x3e')],{'$or':_['map'](_0x283152,function(_0x4a9866){if(_0x4a9866['type']!==_0xaa31('0x41')){var _0x52f264={};_0x52f264[_0x4a9866['name']]={'$like':'%'+_0xd9bcb5['query'][_0xaa31('0x42')]+'%'};return _0x52f264;}})});}_0x22704e=_['merge']({},_0x22704e,_0xd9bcb5['options']);var _0x23c9a4={'where':_0x22704e[_0xaa31('0x3e')]};return db[_0xaa31('0x2c')][_0xaa31('0x22')](_0x23c9a4)[_0xaa31('0x27')](function(_0x8bced8){_0x3d41cb[_0xaa31('0x22')]=_0x8bced8;if(_0xd9bcb5[_0xaa31('0x39')]['includeAll']){_0x22704e[_0xaa31('0x43')]=[{'all':!![]}];}return db['Automation'][_0xaa31('0x44')](_0x22704e);})[_0xaa31('0x27')](function(_0x1f618b){_0x3d41cb[_0xaa31('0x45')]=_0x1f618b;return _0x3d41cb;})[_0xaa31('0x27')](respondWithFilteredResult(_0x43413b,_0x22704e))[_0xaa31('0x46')](handleError(_0x43413b,null));};exports['show']=function(_0x2bae1a,_0x2cd6b9){var _0x1cd9bd={'raw':![],'where':{'id':_0x2bae1a[_0xaa31('0x47')]['id']}},_0x1d99d2={};_0x1d99d2[_0xaa31('0x31')]=_[_0xaa31('0x33')](db[_0xaa31('0x2c')][_0xaa31('0x2d')]);_0x1d99d2[_0xaa31('0x39')]=_[_0xaa31('0x33')](_0x2bae1a[_0xaa31('0x39')]);_0x1d99d2[_0xaa31('0x34')]=_[_0xaa31('0x35')](_0x1d99d2[_0xaa31('0x31')],_0x1d99d2[_0xaa31('0x39')]);_0x1cd9bd['attributes']=_[_0xaa31('0x35')](_0x1d99d2[_0xaa31('0x31')],qs[_0xaa31('0x37')](_0x2bae1a[_0xaa31('0x39')][_0xaa31('0x37')]));_0x1cd9bd[_0xaa31('0x36')]=_0x1cd9bd[_0xaa31('0x36')][_0xaa31('0x38')]?_0x1cd9bd[_0xaa31('0x36')]:_0x1d99d2['model'];if(_0x2bae1a[_0xaa31('0x39')][_0xaa31('0x48')]){_0x1cd9bd[_0xaa31('0x43')]=[{'all':!![]}];}_0x1cd9bd=_[_0xaa31('0x40')]({},_0x1cd9bd,_0x2bae1a[_0xaa31('0x49')]);return db[_0xaa31('0x2c')][_0xaa31('0x4a')](_0x1cd9bd)[_0xaa31('0x27')](handleEntityNotFound(_0x2cd6b9,null))[_0xaa31('0x27')](respondWithResult(_0x2cd6b9,null))['catch'](handleError(_0x2cd6b9,null));};exports[_0xaa31('0x4b')]=function(_0x34afd3,_0x422cff){return db[_0xaa31('0x2c')][_0xaa31('0x4b')](_0x34afd3[_0xaa31('0x4c')],{})['then'](respondWithResult(_0x422cff,0xc9))[_0xaa31('0x46')](handleError(_0x422cff,null));};exports['update']=function(_0x3b0e0e,_0x20cf52){if(_0x3b0e0e['body']['id']){delete _0x3b0e0e['body']['id'];}return db[_0xaa31('0x2c')][_0xaa31('0x4a')]({'where':{'id':_0x3b0e0e['params']['id']}})[_0xaa31('0x27')](handleEntityNotFound(_0x20cf52,null))[_0xaa31('0x27')](saveUpdates(_0x3b0e0e[_0xaa31('0x4c')],null))[_0xaa31('0x27')](respondWithResult(_0x20cf52,null))[_0xaa31('0x46')](handleError(_0x20cf52,null));};exports[_0xaa31('0x28')]=function(_0x3fbb90,_0x4d0d69){return db[_0xaa31('0x2c')][_0xaa31('0x4a')]({'where':{'id':_0x3fbb90[_0xaa31('0x47')]['id']}})[_0xaa31('0x27')](handleEntityNotFound(_0x4d0d69,null))[_0xaa31('0x27')](removeEntity(_0x4d0d69,null))[_0xaa31('0x46')](handleError(_0x4d0d69,null));};exports[_0xaa31('0x4d')]=function(_0x1ad617,_0x570d07,_0x318b2f){return db[_0xaa31('0x4e')][_0xaa31('0x4a')]({'where':{'id':_0x1ad617[_0xaa31('0x47')]['id']}})[_0xaa31('0x27')](handleEntityNotFound(_0x570d07,null))[_0xaa31('0x27')](function(_0x336fe5){if(_0x336fe5){return _0x336fe5[_0xaa31('0x4d')](_0x1ad617[_0xaa31('0x4c')][_0xaa31('0x4f')],_[_0xaa31('0x50')](_0x1ad617[_0xaa31('0x4c')],[_0xaa31('0x4f'),'id'])||{});}})['then'](respondWithResult(_0x570d07,null))[_0xaa31('0x46')](handleError(_0x570d07,null));};exports[_0xaa31('0x51')]=function(_0x4253c3,_0x3e6a46,_0x45afd4){var _0x755270={};var _0x197946={};var _0x352cc9;var _0x1afd45;return db[_0xaa31('0x2c')][_0xaa31('0x52')]({'where':{'id':_0x4253c3[_0xaa31('0x47')]['id']}})[_0xaa31('0x27')](handleEntityNotFound(_0x3e6a46,null))['then'](function(_0x2f8594){if(_0x2f8594){_0x352cc9=_0x2f8594;_0x197946[_0xaa31('0x31')]=_[_0xaa31('0x33')](db['Condition'][_0xaa31('0x2d')]);_0x197946[_0xaa31('0x39')]=_['keys'](_0x4253c3['query']);_0x197946['filters']=_['intersection'](_0x197946[_0xaa31('0x31')],_0x197946[_0xaa31('0x39')]);_0x755270['attributes']=_[_0xaa31('0x35')](_0x197946[_0xaa31('0x31')],qs[_0xaa31('0x37')](_0x4253c3['query'][_0xaa31('0x37')]));_0x755270[_0xaa31('0x36')]=_0x755270[_0xaa31('0x36')][_0xaa31('0x38')]?_0x755270['attributes']:_0x197946[_0xaa31('0x31')];_0x755270[_0xaa31('0x3c')]=qs[_0xaa31('0x3d')](_0x4253c3[_0xaa31('0x39')]['sort']);_0x755270[_0xaa31('0x3e')]=qs['filters'](_[_0xaa31('0x3f')](_0x4253c3['query'],_0x197946[_0xaa31('0x34')]));if(_0x4253c3['query'][_0xaa31('0x42')]){_0x755270['where']=_[_0xaa31('0x40')](_0x755270[_0xaa31('0x3e')],{'$or':_[_0xaa31('0x2b')](_0x755270[_0xaa31('0x36')],function(_0xea2d49){var _0x5d7282={};_0x5d7282[_0xea2d49]={'$like':'%'+_0x4253c3[_0xaa31('0x39')][_0xaa31('0x42')]+'%'};return _0x5d7282;})});}_0x755270=_[_0xaa31('0x40')]({},_0x755270,_0x4253c3['options']);return _0x352cc9[_0xaa31('0x51')](_0x755270);}})[_0xaa31('0x27')](function(_0x25e259){if(_0x25e259){_0x1afd45=_0x25e259[_0xaa31('0x38')];if(!_0x4253c3['query'][_0xaa31('0x3a')]('nolimit')){_0x755270['limit']=qs['limit'](_0x4253c3[_0xaa31('0x39')][_0xaa31('0x23')]);_0x755270[_0xaa31('0x20')]=qs[_0xaa31('0x20')](_0x4253c3[_0xaa31('0x39')]['offset']);}return _0x352cc9[_0xaa31('0x51')](_0x755270);}})[_0xaa31('0x27')](function(_0x3df788){if(_0x3df788){return _0x3df788?{'count':_0x1afd45,'rows':_0x3df788}:null;}})['then'](respondWithResult(_0x3e6a46,null))[_0xaa31('0x46')](handleError(_0x3e6a46,null));};exports[_0xaa31('0x53')]=function(_0x415348,_0x4f51b1,_0x1b331b){return db[_0xaa31('0x54')][_0xaa31('0x4a')]({'where':{'id':_0x415348[_0xaa31('0x47')]['id']}})[_0xaa31('0x27')](handleEntityNotFound(_0x4f51b1,null))['then'](function(_0x5074d4){if(_0x5074d4){return _0x5074d4[_0xaa31('0x53')](_0x415348['body']['ids'],_['omit'](_0x415348['body'],[_0xaa31('0x4f'),'id'])||{});}})[_0xaa31('0x27')](respondWithResult(_0x4f51b1,null))['catch'](handleError(_0x4f51b1,null));};exports['getActions']=function(_0x937470,_0x5b232e,_0xf2e33){var _0x443bfd={};var _0x2ff8ff={};var _0x55c0d4;var _0xffa62;return db['Automation'][_0xaa31('0x52')]({'where':{'id':_0x937470[_0xaa31('0x47')]['id']}})[_0xaa31('0x27')](handleEntityNotFound(_0x5b232e,null))[_0xaa31('0x27')](function(_0x22721b){if(_0x22721b){_0x55c0d4=_0x22721b;_0x2ff8ff[_0xaa31('0x31')]=_[_0xaa31('0x33')](db['Action'][_0xaa31('0x2d')]);_0x2ff8ff[_0xaa31('0x39')]=_[_0xaa31('0x33')](_0x937470[_0xaa31('0x39')]);_0x2ff8ff[_0xaa31('0x34')]=_[_0xaa31('0x35')](_0x2ff8ff[_0xaa31('0x31')],_0x2ff8ff[_0xaa31('0x39')]);_0x443bfd['attributes']=_[_0xaa31('0x35')](_0x2ff8ff[_0xaa31('0x31')],qs['fields'](_0x937470[_0xaa31('0x39')]['fields']));_0x443bfd[_0xaa31('0x36')]=_0x443bfd[_0xaa31('0x36')][_0xaa31('0x38')]?_0x443bfd[_0xaa31('0x36')]:_0x2ff8ff[_0xaa31('0x31')];_0x443bfd[_0xaa31('0x3c')]=qs[_0xaa31('0x3d')](_0x937470[_0xaa31('0x39')][_0xaa31('0x3d')]);_0x443bfd[_0xaa31('0x3e')]=qs[_0xaa31('0x34')](_[_0xaa31('0x3f')](_0x937470['query'],_0x2ff8ff[_0xaa31('0x34')]));if(_0x937470[_0xaa31('0x39')][_0xaa31('0x42')]){_0x443bfd[_0xaa31('0x3e')]=_[_0xaa31('0x40')](_0x443bfd[_0xaa31('0x3e')],{'$or':_[_0xaa31('0x2b')](_0x443bfd[_0xaa31('0x36')],function(_0x5549da){var _0x13ce9d={};_0x13ce9d[_0x5549da]={'$like':'%'+_0x937470['query'][_0xaa31('0x42')]+'%'};return _0x13ce9d;})});}_0x443bfd=_[_0xaa31('0x40')]({},_0x443bfd,_0x937470[_0xaa31('0x49')]);return _0x55c0d4[_0xaa31('0x55')](_0x443bfd);}})[_0xaa31('0x27')](function(_0x297e3a){if(_0x297e3a){_0xffa62=_0x297e3a[_0xaa31('0x38')];if(!_0x937470[_0xaa31('0x39')][_0xaa31('0x3a')](_0xaa31('0x3b'))){_0x443bfd[_0xaa31('0x23')]=qs['limit'](_0x937470['query'][_0xaa31('0x23')]);_0x443bfd[_0xaa31('0x20')]=qs[_0xaa31('0x20')](_0x937470[_0xaa31('0x39')][_0xaa31('0x20')]);}return _0x55c0d4[_0xaa31('0x55')](_0x443bfd);}})[_0xaa31('0x27')](function(_0xf0f5df){if(_0xf0f5df){return _0xf0f5df?{'count':_0xffa62,'rows':_0xf0f5df}:null;}})[_0xaa31('0x27')](respondWithResult(_0x5b232e,null))[_0xaa31('0x46')](handleError(_0x5b232e,null));};
\ No newline at end of file
+var _0x969a=['limit','count','set','Content-Range','json','apply','save','update','then','destroy','error','name','send','index','map','Automation','rawAttributes','fieldName','type','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','filter','merge','VIRTUAL','options','includeAll','include','findAll','catch','params','find','create','body','addConditions','Condition','ids','omit','getConditions','pick','Action','addActions','getActions','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','end','status','offset','undefined'];(function(_0x55fd04,_0xd99544){var _0x1fc4b0=function(_0x1a38fa){while(--_0x1a38fa){_0x55fd04['push'](_0x55fd04['shift']());}};_0x1fc4b0(++_0xd99544);}(_0x969a,0xe3));var _0xa969=function(_0x538c20,_0x42595b){_0x538c20=_0x538c20-0x0;var _0x5eac17=_0x969a[_0x538c20];return _0x5eac17;};'use strict';var emlformat=require(_0xa969('0x0'));var rimraf=require(_0xa969('0x1'));var zipdir=require(_0xa969('0x2'));var jsonpatch=require(_0xa969('0x3'));var rp=require(_0xa969('0x4'));var moment=require(_0xa969('0x5'));var BPromise=require(_0xa969('0x6'));var Mustache=require(_0xa969('0x7'));var util=require(_0xa969('0x8'));var path=require(_0xa969('0x9'));var sox=require(_0xa969('0xa'));var csv=require('to-csv');var ejs=require(_0xa969('0xb'));var fs=require('fs');var fs_extra=require(_0xa969('0xc'));var _=require(_0xa969('0xd'));var squel=require(_0xa969('0xe'));var crypto=require(_0xa969('0xf'));var jsforce=require(_0xa969('0x10'));var deskjs=require(_0xa969('0x11'));var toCsv=require('to-csv');var querystring=require(_0xa969('0x12'));var Papa=require(_0xa969('0x13'));var Redis=require(_0xa969('0x14'));var authService=require(_0xa969('0x15'));var qs=require(_0xa969('0x16'));var as=require(_0xa969('0x17'));var hardwareService=require(_0xa969('0x18'));var logger=require(_0xa969('0x19'))(_0xa969('0x1a'));var utils=require('../../config/utils');var config=require(_0xa969('0x1b'));var licenseUtil=require(_0xa969('0x1c'));var db=require(_0xa969('0x1d'))['db'];function respondWithStatusCode(_0x5642b7,_0x145dd4){_0x145dd4=_0x145dd4||0xcc;return function(_0x1ace70){if(_0x1ace70){return _0x5642b7['sendStatus'](_0x145dd4);}return _0x5642b7['status'](_0x145dd4)[_0xa969('0x1e')]();};}function respondWithResult(_0x24084f,_0x2788eb){_0x2788eb=_0x2788eb||0xc8;return function(_0x320f67){if(_0x320f67){return _0x24084f[_0xa969('0x1f')](_0x2788eb)['json'](_0x320f67);}};}function respondWithFilteredResult(_0x23b26e,_0x34dd99){return function(_0xa42700){if(_0xa42700){var _0x3d82e9=typeof _0x34dd99[_0xa969('0x20')]===_0xa969('0x21')&&typeof _0x34dd99[_0xa969('0x22')]===_0xa969('0x21');var _0x575f01=_0xa42700[_0xa969('0x23')];var _0x13766b=_0x3d82e9?0x0:_0x34dd99[_0xa969('0x20')];var _0x267386=_0x3d82e9?_0xa42700[_0xa969('0x23')]:_0x34dd99['offset']+_0x34dd99['limit'];var _0x504a2b;if(_0x267386>=_0x575f01){_0x267386=_0x575f01;_0x504a2b=0xc8;}else{_0x504a2b=0xce;}_0x23b26e[_0xa969('0x1f')](_0x504a2b);return _0x23b26e[_0xa969('0x24')](_0xa969('0x25'),_0x13766b+'-'+_0x267386+'/'+_0x575f01)[_0xa969('0x26')](_0xa42700);}return null;};}function patchUpdates(_0x305fc8){return function(_0x8f0937){try{jsonpatch[_0xa969('0x27')](_0x8f0937,_0x305fc8,!![]);}catch(_0x30b034){return BPromise['reject'](_0x30b034);}return _0x8f0937[_0xa969('0x28')]();};}function saveUpdates(_0x4004bf,_0x8a4517){return function(_0xea3d00){if(_0xea3d00){return _0xea3d00[_0xa969('0x29')](_0x4004bf)[_0xa969('0x2a')](function(_0x28c6be){return _0x28c6be;});}return null;};}function removeEntity(_0x2445d2,_0x3cf673){return function(_0x219db6){if(_0x219db6){return _0x219db6[_0xa969('0x2b')]()[_0xa969('0x2a')](function(){_0x2445d2[_0xa969('0x1f')](0xcc)[_0xa969('0x1e')]();});}};}function handleEntityNotFound(_0x23c649,_0x375e6c){return function(_0xcd29cf){if(!_0xcd29cf){_0x23c649['sendStatus'](0x194);}return _0xcd29cf;};}function handleError(_0x3f44a3,_0xc450){_0xc450=_0xc450||0x1f4;return function(_0x35b709){logger[_0xa969('0x2c')](_0x35b709['stack']);if(_0x35b709['name']){delete _0x35b709[_0xa969('0x2d')];}_0x3f44a3['status'](_0xc450)[_0xa969('0x2e')](_0x35b709);};}exports[_0xa969('0x2f')]=function(_0x22e54f,_0x56d505){var _0x17e47a={},_0x2a6173={},_0x258082={'count':0x0,'rows':[]};var _0x4bf711=_[_0xa969('0x30')](db[_0xa969('0x31')][_0xa969('0x32')],function(_0x491585){return{'name':_0x491585[_0xa969('0x33')],'type':_0x491585[_0xa969('0x34')]['key']};});_0x2a6173[_0xa969('0x35')]=_[_0xa969('0x30')](_0x4bf711,_0xa969('0x2d'));_0x2a6173[_0xa969('0x36')]=_[_0xa969('0x37')](_0x22e54f['query']);_0x2a6173[_0xa969('0x38')]=_[_0xa969('0x39')](_0x2a6173[_0xa969('0x35')],_0x2a6173[_0xa969('0x36')]);_0x17e47a['attributes']=_[_0xa969('0x39')](_0x2a6173[_0xa969('0x35')],qs[_0xa969('0x3a')](_0x22e54f['query'][_0xa969('0x3a')]));_0x17e47a[_0xa969('0x3b')]=_0x17e47a[_0xa969('0x3b')][_0xa969('0x3c')]?_0x17e47a[_0xa969('0x3b')]:_0x2a6173['model'];if(!_0x22e54f[_0xa969('0x36')][_0xa969('0x3d')](_0xa969('0x3e'))){_0x17e47a[_0xa969('0x22')]=qs[_0xa969('0x22')](_0x22e54f[_0xa969('0x36')][_0xa969('0x22')]);_0x17e47a[_0xa969('0x20')]=qs[_0xa969('0x20')](_0x22e54f['query']['offset']);}_0x17e47a[_0xa969('0x3f')]=qs[_0xa969('0x40')](_0x22e54f['query'][_0xa969('0x40')]);_0x17e47a[_0xa969('0x41')]=qs[_0xa969('0x38')](_['pick'](_0x22e54f[_0xa969('0x36')],_0x2a6173['filters']),_0x4bf711);if(_0x22e54f[_0xa969('0x36')][_0xa969('0x42')]){_0x17e47a[_0xa969('0x41')]=_[_0xa969('0x43')](_0x17e47a[_0xa969('0x41')],{'$or':_[_0xa969('0x30')](_0x4bf711,function(_0x2fdb3f){if(_0x2fdb3f[_0xa969('0x34')]!==_0xa969('0x44')){var _0x517777={};_0x517777[_0x2fdb3f[_0xa969('0x2d')]]={'$like':'%'+_0x22e54f[_0xa969('0x36')][_0xa969('0x42')]+'%'};return _0x517777;}})});}_0x17e47a=_['merge']({},_0x17e47a,_0x22e54f[_0xa969('0x45')]);var _0xe37188={'where':_0x17e47a['where']};return db[_0xa969('0x31')]['count'](_0xe37188)[_0xa969('0x2a')](function(_0x129dbe){_0x258082['count']=_0x129dbe;if(_0x22e54f[_0xa969('0x36')][_0xa969('0x46')]){_0x17e47a[_0xa969('0x47')]=[{'all':!![]}];}return db[_0xa969('0x31')][_0xa969('0x48')](_0x17e47a);})[_0xa969('0x2a')](function(_0x50b2ec){_0x258082['rows']=_0x50b2ec;return _0x258082;})[_0xa969('0x2a')](respondWithFilteredResult(_0x56d505,_0x17e47a))[_0xa969('0x49')](handleError(_0x56d505,null));};exports['show']=function(_0x56a92b,_0x3a15ed){var _0x2a8523={'raw':![],'where':{'id':_0x56a92b[_0xa969('0x4a')]['id']}},_0x54290b={};_0x54290b[_0xa969('0x35')]=_[_0xa969('0x37')](db[_0xa969('0x31')][_0xa969('0x32')]);_0x54290b[_0xa969('0x36')]=_[_0xa969('0x37')](_0x56a92b[_0xa969('0x36')]);_0x54290b[_0xa969('0x38')]=_['intersection'](_0x54290b[_0xa969('0x35')],_0x54290b[_0xa969('0x36')]);_0x2a8523[_0xa969('0x3b')]=_[_0xa969('0x39')](_0x54290b[_0xa969('0x35')],qs[_0xa969('0x3a')](_0x56a92b[_0xa969('0x36')][_0xa969('0x3a')]));_0x2a8523[_0xa969('0x3b')]=_0x2a8523[_0xa969('0x3b')][_0xa969('0x3c')]?_0x2a8523[_0xa969('0x3b')]:_0x54290b[_0xa969('0x35')];if(_0x56a92b['query'][_0xa969('0x46')]){_0x2a8523[_0xa969('0x47')]=[{'all':!![]}];}_0x2a8523=_[_0xa969('0x43')]({},_0x2a8523,_0x56a92b[_0xa969('0x45')]);return db['Automation'][_0xa969('0x4b')](_0x2a8523)[_0xa969('0x2a')](handleEntityNotFound(_0x3a15ed,null))[_0xa969('0x2a')](respondWithResult(_0x3a15ed,null))[_0xa969('0x49')](handleError(_0x3a15ed,null));};exports[_0xa969('0x4c')]=function(_0x12216f,_0x52c3e3){return db['Automation'][_0xa969('0x4c')](_0x12216f[_0xa969('0x4d')],{})['then'](respondWithResult(_0x52c3e3,0xc9))[_0xa969('0x49')](handleError(_0x52c3e3,null));};exports[_0xa969('0x29')]=function(_0x3be01c,_0x463285){if(_0x3be01c['body']['id']){delete _0x3be01c[_0xa969('0x4d')]['id'];}return db['Automation'][_0xa969('0x4b')]({'where':{'id':_0x3be01c[_0xa969('0x4a')]['id']}})[_0xa969('0x2a')](handleEntityNotFound(_0x463285,null))[_0xa969('0x2a')](saveUpdates(_0x3be01c[_0xa969('0x4d')],null))[_0xa969('0x2a')](respondWithResult(_0x463285,null))[_0xa969('0x49')](handleError(_0x463285,null));};exports[_0xa969('0x2b')]=function(_0x59ff1a,_0x24fc84){return db['Automation'][_0xa969('0x4b')]({'where':{'id':_0x59ff1a['params']['id']}})['then'](handleEntityNotFound(_0x24fc84,null))[_0xa969('0x2a')](removeEntity(_0x24fc84,null))[_0xa969('0x49')](handleError(_0x24fc84,null));};exports[_0xa969('0x4e')]=function(_0xc4e144,_0x18f619,_0x4925b5){return db[_0xa969('0x4f')][_0xa969('0x4b')]({'where':{'id':_0xc4e144['params']['id']}})[_0xa969('0x2a')](handleEntityNotFound(_0x18f619,null))[_0xa969('0x2a')](function(_0x355cd1){if(_0x355cd1){return _0x355cd1[_0xa969('0x4e')](_0xc4e144[_0xa969('0x4d')][_0xa969('0x50')],_[_0xa969('0x51')](_0xc4e144[_0xa969('0x4d')],[_0xa969('0x50'),'id'])||{});}})['then'](respondWithResult(_0x18f619,null))[_0xa969('0x49')](handleError(_0x18f619,null));};exports[_0xa969('0x52')]=function(_0x455d49,_0x494847,_0x2f8623){var _0x22cac0={};var _0xb64c7c={};var _0x932230;var _0x12c644;return db[_0xa969('0x31')]['findOne']({'where':{'id':_0x455d49[_0xa969('0x4a')]['id']}})[_0xa969('0x2a')](handleEntityNotFound(_0x494847,null))['then'](function(_0x334f3c){if(_0x334f3c){_0x932230=_0x334f3c;_0xb64c7c['model']=_[_0xa969('0x37')](db[_0xa969('0x4f')]['rawAttributes']);_0xb64c7c['query']=_['keys'](_0x455d49['query']);_0xb64c7c[_0xa969('0x38')]=_[_0xa969('0x39')](_0xb64c7c['model'],_0xb64c7c[_0xa969('0x36')]);_0x22cac0[_0xa969('0x3b')]=_[_0xa969('0x39')](_0xb64c7c['model'],qs[_0xa969('0x3a')](_0x455d49['query']['fields']));_0x22cac0[_0xa969('0x3b')]=_0x22cac0[_0xa969('0x3b')][_0xa969('0x3c')]?_0x22cac0[_0xa969('0x3b')]:_0xb64c7c[_0xa969('0x35')];_0x22cac0[_0xa969('0x3f')]=qs['sort'](_0x455d49[_0xa969('0x36')][_0xa969('0x40')]);_0x22cac0[_0xa969('0x41')]=qs[_0xa969('0x38')](_[_0xa969('0x53')](_0x455d49['query'],_0xb64c7c['filters']));if(_0x455d49[_0xa969('0x36')]['filter']){_0x22cac0[_0xa969('0x41')]=_[_0xa969('0x43')](_0x22cac0['where'],{'$or':_['map'](_0x22cac0[_0xa969('0x3b')],function(_0x5d13fe){var _0x381d40={};_0x381d40[_0x5d13fe]={'$like':'%'+_0x455d49[_0xa969('0x36')]['filter']+'%'};return _0x381d40;})});}_0x22cac0=_[_0xa969('0x43')]({},_0x22cac0,_0x455d49[_0xa969('0x45')]);return _0x932230[_0xa969('0x52')](_0x22cac0);}})['then'](function(_0x3bddef){if(_0x3bddef){_0x12c644=_0x3bddef[_0xa969('0x3c')];if(!_0x455d49[_0xa969('0x36')]['hasOwnProperty'](_0xa969('0x3e'))){_0x22cac0[_0xa969('0x22')]=qs[_0xa969('0x22')](_0x455d49[_0xa969('0x36')][_0xa969('0x22')]);_0x22cac0[_0xa969('0x20')]=qs[_0xa969('0x20')](_0x455d49[_0xa969('0x36')][_0xa969('0x20')]);}return _0x932230[_0xa969('0x52')](_0x22cac0);}})[_0xa969('0x2a')](function(_0x5d3c33){if(_0x5d3c33){return _0x5d3c33?{'count':_0x12c644,'rows':_0x5d3c33}:null;}})[_0xa969('0x2a')](respondWithResult(_0x494847,null))[_0xa969('0x49')](handleError(_0x494847,null));};exports['addActions']=function(_0x5da020,_0xf15f10,_0x319289){return db[_0xa969('0x54')][_0xa969('0x4b')]({'where':{'id':_0x5da020[_0xa969('0x4a')]['id']}})[_0xa969('0x2a')](handleEntityNotFound(_0xf15f10,null))['then'](function(_0x41870b){if(_0x41870b){return _0x41870b[_0xa969('0x55')](_0x5da020[_0xa969('0x4d')][_0xa969('0x50')],_[_0xa969('0x51')](_0x5da020[_0xa969('0x4d')],[_0xa969('0x50'),'id'])||{});}})['then'](respondWithResult(_0xf15f10,null))[_0xa969('0x49')](handleError(_0xf15f10,null));};exports[_0xa969('0x56')]=function(_0x25a2ef,_0x23b45a,_0x3d2ed6){var _0x22463e={};var _0x21b060={};var _0x9e8a93;var _0x7ebf5c;return db[_0xa969('0x31')]['findOne']({'where':{'id':_0x25a2ef[_0xa969('0x4a')]['id']}})[_0xa969('0x2a')](handleEntityNotFound(_0x23b45a,null))[_0xa969('0x2a')](function(_0x23a8d0){if(_0x23a8d0){_0x9e8a93=_0x23a8d0;_0x21b060[_0xa969('0x35')]=_[_0xa969('0x37')](db[_0xa969('0x54')][_0xa969('0x32')]);_0x21b060['query']=_[_0xa969('0x37')](_0x25a2ef[_0xa969('0x36')]);_0x21b060[_0xa969('0x38')]=_['intersection'](_0x21b060['model'],_0x21b060[_0xa969('0x36')]);_0x22463e[_0xa969('0x3b')]=_[_0xa969('0x39')](_0x21b060[_0xa969('0x35')],qs[_0xa969('0x3a')](_0x25a2ef[_0xa969('0x36')][_0xa969('0x3a')]));_0x22463e[_0xa969('0x3b')]=_0x22463e['attributes'][_0xa969('0x3c')]?_0x22463e[_0xa969('0x3b')]:_0x21b060[_0xa969('0x35')];_0x22463e[_0xa969('0x3f')]=qs[_0xa969('0x40')](_0x25a2ef[_0xa969('0x36')][_0xa969('0x40')]);_0x22463e['where']=qs[_0xa969('0x38')](_[_0xa969('0x53')](_0x25a2ef[_0xa969('0x36')],_0x21b060[_0xa969('0x38')]));if(_0x25a2ef[_0xa969('0x36')][_0xa969('0x42')]){_0x22463e['where']=_['merge'](_0x22463e[_0xa969('0x41')],{'$or':_[_0xa969('0x30')](_0x22463e[_0xa969('0x3b')],function(_0x45fc91){var _0xb24da6={};_0xb24da6[_0x45fc91]={'$like':'%'+_0x25a2ef[_0xa969('0x36')][_0xa969('0x42')]+'%'};return _0xb24da6;})});}_0x22463e=_['merge']({},_0x22463e,_0x25a2ef[_0xa969('0x45')]);return _0x9e8a93[_0xa969('0x56')](_0x22463e);}})[_0xa969('0x2a')](function(_0x5cde9c){if(_0x5cde9c){_0x7ebf5c=_0x5cde9c[_0xa969('0x3c')];if(!_0x25a2ef['query'][_0xa969('0x3d')](_0xa969('0x3e'))){_0x22463e['limit']=qs[_0xa969('0x22')](_0x25a2ef['query']['limit']);_0x22463e[_0xa969('0x20')]=qs[_0xa969('0x20')](_0x25a2ef['query'][_0xa969('0x20')]);}return _0x9e8a93[_0xa969('0x56')](_0x22463e);}})[_0xa969('0x2a')](function(_0x57aafe){if(_0x57aafe){return _0x57aafe?{'count':_0x7ebf5c,'rows':_0x57aafe}:null;}})[_0xa969('0x2a')](respondWithResult(_0x23b45a,null))[_0xa969('0x49')](handleError(_0x23b45a,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x11d7=['lodash','util','api','bluebird','request-promise','path','rimraf','../../config/environment','define','Automation','tools_automations'];(function(_0x2641f9,_0x26715f){var _0x585741=function(_0x2d1462){while(--_0x2d1462){_0x2641f9['push'](_0x2641f9['shift']());}};_0x585741(++_0x26715f);}(_0x11d7,0xd1));var _0x711d=function(_0x29733c,_0x2da30b){_0x29733c=_0x29733c-0x0;var _0x49e72f=_0x11d7[_0x29733c];return _0x49e72f;};'use strict';var _=require(_0x711d('0x0'));var util=require(_0x711d('0x1'));var logger=require('../../config/logger')(_0x711d('0x2'));var moment=require('moment');var BPromise=require(_0x711d('0x3'));var rp=require(_0x711d('0x4'));var fs=require('fs');var path=require(_0x711d('0x5'));var rimraf=require(_0x711d('0x6'));var config=require(_0x711d('0x7'));var attributes=require('./automation.attributes');module['exports']=function(_0xdf51c1,_0x57d1f5){return _0xdf51c1[_0x711d('0x8')](_0x711d('0x9'),attributes,{'tableName':_0x711d('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x3064=['./automation.attributes','exports','define','tools_automations','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf'];(function(_0x2308af,_0x36afe8){var _0x73b412=function(_0x3b66cf){while(--_0x3b66cf){_0x2308af['push'](_0x2308af['shift']());}};_0x73b412(++_0x36afe8);}(_0x3064,0x13c));var _0x4306=function(_0x11072a,_0x326b62){_0x11072a=_0x11072a-0x0;var _0x53ff15=_0x3064[_0x11072a];return _0x53ff15;};'use strict';var _=require('lodash');var util=require(_0x4306('0x0'));var logger=require(_0x4306('0x1'))(_0x4306('0x2'));var moment=require(_0x4306('0x3'));var BPromise=require(_0x4306('0x4'));var rp=require(_0x4306('0x5'));var fs=require('fs');var path=require(_0x4306('0x6'));var rimraf=require(_0x4306('0x7'));var config=require('../../config/environment');var attributes=require(_0x4306('0x8'));module[_0x4306('0x9')]=function(_0x314d1b,_0x1da315){return _0x314d1b[_0x4306('0xa')]('Automation',attributes,{'tableName':_0x4306('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0f42=['rpc','../../config/environment','jayson/promise','http','then','info','Automation,\x20%s,\x20%s','request\x20sent','debug','error','code','message','result','catch','lodash','util','moment','bluebird','ioredis','../../config/utils'];(function(_0x443570,_0x5125dc){var _0x5f4e0d=function(_0x29b03b){while(--_0x29b03b){_0x443570['push'](_0x443570['shift']());}};_0x5f4e0d(++_0x5125dc);}(_0x0f42,0x126));var _0x20f4=function(_0x21a9d9,_0x4d5ac8){_0x21a9d9=_0x21a9d9-0x0;var _0x46adce=_0x0f42[_0x21a9d9];return _0x46adce;};'use strict';var _=require(_0x20f4('0x0'));var util=require(_0x20f4('0x1'));var moment=require(_0x20f4('0x2'));var BPromise=require(_0x20f4('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x20f4('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x20f4('0x5'));var logger=require('../../config/logger')(_0x20f4('0x6'));var config=require(_0x20f4('0x7'));var jayson=require(_0x20f4('0x8'));var client=jayson['client'][_0x20f4('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x1519fe,_0x525da0,_0x45adf6){return new BPromise(function(_0x553d5d,_0x4a452d){return client['request'](_0x1519fe,_0x45adf6)[_0x20f4('0xa')](function(_0x4f3d95){logger[_0x20f4('0xb')](_0x20f4('0xc'),_0x525da0,_0x20f4('0xd'));logger[_0x20f4('0xe')]('Automation,\x20%s,\x20%s,\x20%s',_0x525da0,_0x20f4('0xd'),JSON['stringify'](_0x4f3d95));if(_0x4f3d95[_0x20f4('0xf')]){if(_0x4f3d95[_0x20f4('0xf')][_0x20f4('0x10')]===0x1f4){logger[_0x20f4('0xf')]('Automation,\x20%s,\x20%s',_0x525da0,_0x4f3d95[_0x20f4('0xf')][_0x20f4('0x11')]);return _0x4a452d(_0x4f3d95[_0x20f4('0xf')][_0x20f4('0x11')]);}logger[_0x20f4('0xf')](_0x20f4('0xc'),_0x525da0,_0x4f3d95[_0x20f4('0xf')][_0x20f4('0x11')]);return _0x553d5d(_0x4f3d95[_0x20f4('0xf')][_0x20f4('0x11')]);}else{logger[_0x20f4('0xb')]('Automation,\x20%s,\x20%s',_0x525da0,'request\x20sent');_0x553d5d(_0x4f3d95[_0x20f4('0x12')][_0x20f4('0x11')]);}})[_0x20f4('0x13')](function(_0x36fdc2){logger[_0x20f4('0xf')]('Automation,\x20%s,\x20%s',_0x525da0,_0x36fdc2);_0x4a452d(_0x36fdc2);});});}
\ No newline at end of file
+var _0x09d2=['moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','request','then','info','request\x20sent','debug','Automation,\x20%s,\x20%s,\x20%s','stringify','error','code','Automation,\x20%s,\x20%s','message','result','catch','lodash','util'];(function(_0x35c078,_0x362567){var _0xe8c0ef=function(_0x5b18b7){while(--_0x5b18b7){_0x35c078['push'](_0x35c078['shift']());}};_0xe8c0ef(++_0x362567);}(_0x09d2,0x1d2));var _0x209d=function(_0x548918,_0x9bb9ba){_0x548918=_0x548918-0x0;var _0x55f0ec=_0x09d2[_0x548918];return _0x55f0ec;};'use strict';var _=require(_0x209d('0x0'));var util=require(_0x209d('0x1'));var moment=require(_0x209d('0x2'));var BPromise=require(_0x209d('0x3'));var rs=require(_0x209d('0x4'));var fs=require('fs');var Redis=require(_0x209d('0x5'));var db=require(_0x209d('0x6'))['db'];var utils=require(_0x209d('0x7'));var logger=require(_0x209d('0x8'))(_0x209d('0x9'));var config=require('../../config/environment');var jayson=require(_0x209d('0xa'));var client=jayson[_0x209d('0xb')][_0x209d('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x204ab9,_0xc141e6,_0x5b460d){return new BPromise(function(_0x49cd7a,_0x306753){return client[_0x209d('0xd')](_0x204ab9,_0x5b460d)[_0x209d('0xe')](function(_0x48c52d){logger[_0x209d('0xf')]('Automation,\x20%s,\x20%s',_0xc141e6,_0x209d('0x10'));logger[_0x209d('0x11')](_0x209d('0x12'),_0xc141e6,_0x209d('0x10'),JSON[_0x209d('0x13')](_0x48c52d));if(_0x48c52d[_0x209d('0x14')]){if(_0x48c52d[_0x209d('0x14')][_0x209d('0x15')]===0x1f4){logger[_0x209d('0x14')](_0x209d('0x16'),_0xc141e6,_0x48c52d[_0x209d('0x14')][_0x209d('0x17')]);return _0x306753(_0x48c52d['error'][_0x209d('0x17')]);}logger[_0x209d('0x14')](_0x209d('0x16'),_0xc141e6,_0x48c52d['error']['message']);return _0x49cd7a(_0x48c52d[_0x209d('0x14')]['message']);}else{logger['info'](_0x209d('0x16'),_0xc141e6,_0x209d('0x10'));_0x49cd7a(_0x48c52d[_0x209d('0x18')]['message']);}})[_0x209d('0x19')](function(_0xe0721){logger[_0x209d('0x14')](_0x209d('0x16'),_0xc141e6,_0xe0721);_0x306753(_0xe0721);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4d9e=['../../components/interaction/service','./automation.controller','get','isAuthenticated','index','/:id','show','/:id/conditions','getConditions','getActions','post','create','update','delete','destroy','exports','multer','connect-timeout','Router','../../components/auth/service'];(function(_0x588777,_0xb115db){var _0x58746e=function(_0x2ec4bd){while(--_0x2ec4bd){_0x588777['push'](_0x588777['shift']());}};_0x58746e(++_0xb115db);}(_0x4d9e,0x18c));var _0xe4d9=function(_0x39903f,_0x2b76ad){_0x39903f=_0x39903f-0x0;var _0x1c0074=_0x4d9e[_0x39903f];return _0x1c0074;};'use strict';var multer=require(_0xe4d9('0x0'));var util=require('util');var path=require('path');var timeout=require(_0xe4d9('0x1'));var express=require('express');var router=express[_0xe4d9('0x2')]();var fs_extra=require('fs-extra');var auth=require(_0xe4d9('0x3'));var interaction=require(_0xe4d9('0x4'));var config=require('../../config/environment');var controller=require(_0xe4d9('0x5'));router[_0xe4d9('0x6')]('/',auth[_0xe4d9('0x7')](),controller[_0xe4d9('0x8')]);router[_0xe4d9('0x6')](_0xe4d9('0x9'),auth['isAuthenticated'](),controller[_0xe4d9('0xa')]);router[_0xe4d9('0x6')](_0xe4d9('0xb'),auth[_0xe4d9('0x7')](),controller[_0xe4d9('0xc')]);router[_0xe4d9('0x6')]('/:id/actions',auth[_0xe4d9('0x7')](),controller[_0xe4d9('0xd')]);router[_0xe4d9('0xe')]('/',auth[_0xe4d9('0x7')](),controller[_0xe4d9('0xf')]);router[_0xe4d9('0xe')](_0xe4d9('0xb'),auth['isAuthenticated'](),controller['addConditions']);router['post']('/:id/actions',auth['isAuthenticated'](),controller['addActions']);router['put']('/:id',auth[_0xe4d9('0x7')](),controller[_0xe4d9('0x10')]);router[_0xe4d9('0x11')]('/:id',auth[_0xe4d9('0x7')](),controller[_0xe4d9('0x12')]);module[_0xe4d9('0x13')]=router;
\ No newline at end of file
+var _0xe77f=['destroy','exports','multer','util','connect-timeout','express','fs-extra','../../components/auth/service','../../config/environment','./automation.controller','get','isAuthenticated','index','show','/:id/conditions','getConditions','getActions','post','addConditions','/:id/actions','addActions','/:id','delete'];(function(_0x156009,_0x41a901){var _0x407ac1=function(_0x30b657){while(--_0x30b657){_0x156009['push'](_0x156009['shift']());}};_0x407ac1(++_0x41a901);}(_0xe77f,0xba));var _0xfe77=function(_0x27d723,_0x5719dd){_0x27d723=_0x27d723-0x0;var _0x164da5=_0xe77f[_0x27d723];return _0x164da5;};'use strict';var multer=require(_0xfe77('0x0'));var util=require(_0xfe77('0x1'));var path=require('path');var timeout=require(_0xfe77('0x2'));var express=require(_0xfe77('0x3'));var router=express['Router']();var fs_extra=require(_0xfe77('0x4'));var auth=require(_0xfe77('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0xfe77('0x6'));var controller=require(_0xfe77('0x7'));router[_0xfe77('0x8')]('/',auth[_0xfe77('0x9')](),controller[_0xfe77('0xa')]);router['get']('/:id',auth[_0xfe77('0x9')](),controller[_0xfe77('0xb')]);router[_0xfe77('0x8')](_0xfe77('0xc'),auth[_0xfe77('0x9')](),controller[_0xfe77('0xd')]);router['get']('/:id/actions',auth[_0xfe77('0x9')](),controller[_0xfe77('0xe')]);router[_0xfe77('0xf')]('/',auth[_0xfe77('0x9')](),controller['create']);router[_0xfe77('0xf')](_0xfe77('0xc'),auth[_0xfe77('0x9')](),controller[_0xfe77('0x10')]);router['post'](_0xfe77('0x11'),auth[_0xfe77('0x9')](),controller[_0xfe77('0x12')]);router['put'](_0xfe77('0x13'),auth[_0xfe77('0x9')](),controller['update']);router[_0xfe77('0x14')](_0xfe77('0x13'),auth[_0xfe77('0x9')](),controller[_0xfe77('0x15')]);module[_0xfe77('0x16')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8f96=['AgentReject\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','sequelize','exports','ENUM','ivr','STRING','Active/Disactive\x20Campaign','UNSIGNED','INTEGER','Originate\x20Timeout\x20Seconds\x20(min:1,\x20max:999)','#Congestion\x20Retry\x20(min:1,\x20max:999)','#Busy\x20Retry\x20(min:1,\x20max:999)','Busy\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','NoAnswer\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#Global\x20Max\x20Retry\x20(min:1,\x20max:999)','07:00-22:00,*,*,*','always','BOOLEAN','Active/Disactive\x20AMD','#AMD\x20Greeting','#AMD\x20After\x20Greeting\x20Silence','#AMD\x20Total\x20Analysis\x20Time','#AMD\x20Between\x20Words\x20Silence','#AMD\x20Maximum\x20Number\x20Of\x20Words','#AMD\x20Silence\x20Threshold\x20(min:0,\x20max:32767)','ASC','DESC','Random\x20Last\x20Digit\x20(min:1,\x20max:15)','Cut\x20Digit\x20(min:1,\x20max:15)','#NoSuchNumber\x20Retry\x20(min:1,\x20max:999)','NoSuchNumber\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#Drop\x20Retry\x20(min:1,\x20max:999)','Drop\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#Abandoned\x20Retry\x20(min:1,\x20max:999)','Abandoned\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#Machine\x20Retry\x20(min:1,\x20max:999)','Machine\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#AgentReject\x20Retry\x20(min:1,\x20max:999)'];(function(_0x5b644e,_0x2e5e07){var _0x49c6bf=function(_0x3032d9){while(--_0x3032d9){_0x5b644e['push'](_0x5b644e['shift']());}};_0x49c6bf(++_0x2e5e07);}(_0x8f96,0x1a3));var _0x68f9=function(_0x70221a,_0x150939){_0x70221a=_0x70221a-0x0;var _0xe703c4=_0x8f96[_0x70221a];return _0xe703c4;};'use strict';var Sequelize=require(_0x68f9('0x0'));module[_0x68f9('0x1')]={'name':{'type':Sequelize['STRING'],'unique':'name','allowNull':![],'validate':{'is':/[A-Za-z0-9._\\+*!-]+/,'notEmpty':!![]}},'type':{'type':Sequelize[_0x68f9('0x2')]('ivr'),'allowNull':![],'defaultValue':_0x68f9('0x3')},'description':{'type':Sequelize[_0x68f9('0x4')]},'active':{'type':Sequelize['BOOLEAN'],'defaultValue':0x0,'comment':_0x68f9('0x5')},'limitCalls':{'type':Sequelize['INTEGER'](0x4)[_0x68f9('0x6')],'defaultValue':0x1e,'validate':{'min':0x1,'max':0xc8},'comment':'Max\x20200\x20calls.'},'dialOriginateCallerIdName':{'type':Sequelize['STRING']},'dialOriginateCallerIdNumber':{'type':Sequelize['STRING']},'dialOriginateTimeout':{'type':Sequelize[_0x68f9('0x7')](0x3)[_0x68f9('0x6')],'defaultValue':0x1e,'validate':{'min':0x1,'max':0x3e7},'comment':_0x68f9('0x8')},'dialCongestionMaxRetry':{'type':Sequelize['INTEGER'](0x3)['UNSIGNED'],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x68f9('0x9')},'dialCongestionRetryFrequency':{'type':Sequelize[_0x68f9('0x7')](0x5)[_0x68f9('0x6')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':'Congestion\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'},'dialBusyMaxRetry':{'type':Sequelize['INTEGER'](0x3)['UNSIGNED'],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x68f9('0xa')},'dialBusyRetryFrequency':{'type':Sequelize[_0x68f9('0x7')](0x5)[_0x68f9('0x6')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x68f9('0xb')},'dialNoAnswerMaxRetry':{'type':Sequelize[_0x68f9('0x7')](0x3)[_0x68f9('0x6')],'defaultValue':0x3,'comment':'#NoAnswer\x20Retry\x20(min:1,\x20max:999)'},'dialNoAnswerRetryFrequency':{'type':Sequelize[_0x68f9('0x7')](0x5)[_0x68f9('0x6')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x68f9('0xc')},'dialGlobalMaxRetry':{'type':Sequelize[_0x68f9('0x7')](0x3)[_0x68f9('0x6')],'validate':{'min':0x1,'max':0x3e7},'defaultValue':0x4,'comment':_0x68f9('0xd')},'dialTimezone':{'type':Sequelize[_0x68f9('0x4')],'defaultValue':null},'dialGlobalInterval':{'type':Sequelize[_0x68f9('0x4')],'defaultValue':_0x68f9('0xe')},'dialCheckDuplicateType':{'type':Sequelize[_0x68f9('0x2')](_0x68f9('0xf'),'never','onlyIfOpen'),'defaultValue':_0x68f9('0xf')},'dialAMDActive':{'type':Sequelize[_0x68f9('0x10')],'defaultValue':0x0,'comment':_0x68f9('0x11')},'dialAMDInitialSilence':{'type':Sequelize[_0x68f9('0x7')](0x9)[_0x68f9('0x6')],'defaultValue':0x9c4,'validate':{'min':0x0},'comment':'#AMD\x20Initial\x20Silence'},'dialAMDGreeting':{'type':Sequelize[_0x68f9('0x7')](0x9)['UNSIGNED'],'defaultValue':0x5dc,'validate':{'min':0x0},'comment':_0x68f9('0x12')},'dialAMDAfterGreetingSilence':{'type':Sequelize['INTEGER'](0x9)[_0x68f9('0x6')],'defaultValue':0x320,'validate':{'min':0x0},'comment':_0x68f9('0x13')},'dialAMDTotalAnalysisTime':{'type':Sequelize[_0x68f9('0x7')](0x9)['UNSIGNED'],'defaultValue':0x1388,'validate':{'min':0x0},'comment':_0x68f9('0x14')},'dialAMDMinWordLength':{'type':Sequelize[_0x68f9('0x7')](0x9)[_0x68f9('0x6')],'defaultValue':0x64,'validate':{'min':0x0},'comment':'#AMD\x20Min\x20Word\x20Length'},'dialAMDBetweenWordsSilence':{'type':Sequelize['INTEGER'](0x9)['UNSIGNED'],'defaultValue':0x32,'validate':{'min':0x0},'comment':_0x68f9('0x15')},'dialAMDMaximumNumberOfWords':{'type':Sequelize[_0x68f9('0x7')](0x9)[_0x68f9('0x6')],'defaultValue':0x3,'validate':{'min':0x0},'comment':_0x68f9('0x16')},'dialAMDSilenceThreshold':{'type':Sequelize[_0x68f9('0x7')](0x5)['UNSIGNED'],'validate':{'min':0x0,'max':0x7fff},'defaultValue':0x100,'comment':_0x68f9('0x17')},'dialAMDMaximumWordLength':{'type':Sequelize[_0x68f9('0x7')](0x9)[_0x68f9('0x6')],'defaultValue':0x1388,'validate':{'min':0x0},'comment':'#AMD\x20Maximum\x20Word\x20Length'},'dialOrderByScheduledAt':{'type':Sequelize[_0x68f9('0x2')]('DESC',_0x68f9('0x18')),'defaultValue':_0x68f9('0x19')},'dialPrefix':{'type':Sequelize[_0x68f9('0x4')],'defaultValue':null},'dialRandomLastDigitCallerIdNumber':{'type':Sequelize[_0x68f9('0x7')](0x3)[_0x68f9('0x6')],'validate':{'min':0x0,'max':0xf},'defaultValue':0x0,'comment':_0x68f9('0x1a')},'dialCutDigit':{'type':Sequelize[_0x68f9('0x7')](0x3)[_0x68f9('0x6')],'validate':{'min':0x0,'max':0xf},'defaultValue':0x0,'comment':_0x68f9('0x1b')},'dialNoSuchNumberMaxRetry':{'type':Sequelize[_0x68f9('0x7')](0x3)[_0x68f9('0x6')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x68f9('0x1c')},'dialNoSuchNumberRetryFrequency':{'type':Sequelize['INTEGER'](0x5)['UNSIGNED'],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x68f9('0x1d')},'dialDropMaxRetry':{'type':Sequelize[_0x68f9('0x7')](0x3)[_0x68f9('0x6')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x68f9('0x1e')},'dialDropRetryFrequency':{'type':Sequelize[_0x68f9('0x7')](0x5)[_0x68f9('0x6')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x68f9('0x1f')},'dialAbandonedMaxRetry':{'type':Sequelize[_0x68f9('0x7')](0x3)[_0x68f9('0x6')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x68f9('0x20')},'dialAbandonedRetryFrequency':{'type':Sequelize['INTEGER'](0x5)['UNSIGNED'],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x68f9('0x21')},'dialMachineMaxRetry':{'type':Sequelize[_0x68f9('0x7')](0x3)[_0x68f9('0x6')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x68f9('0x22')},'dialMachineRetryFrequency':{'type':Sequelize[_0x68f9('0x7')](0x5)[_0x68f9('0x6')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x68f9('0x23')},'dialAgentRejectMaxRetry':{'type':Sequelize['INTEGER'](0x3)['UNSIGNED'],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x68f9('0x24')},'dialAgentRejectRetryFrequency':{'type':Sequelize[_0x68f9('0x7')](0x5)[_0x68f9('0x6')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x68f9('0x25')}};
\ No newline at end of file
+var _0x4f8f=['ENUM','ivr','STRING','INTEGER','Max\x20200\x20calls.','UNSIGNED','Originate\x20Timeout\x20Seconds\x20(min:1,\x20max:999)','#Congestion\x20Retry\x20(min:1,\x20max:999)','Congestion\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#Busy\x20Retry\x20(min:1,\x20max:999)','#NoAnswer\x20Retry\x20(min:1,\x20max:999)','NoAnswer\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#Global\x20Max\x20Retry\x20(min:1,\x20max:999)','always','never','onlyIfOpen','BOOLEAN','Active/Disactive\x20AMD','#AMD\x20Greeting','#AMD\x20After\x20Greeting\x20Silence','#AMD\x20Total\x20Analysis\x20Time','#AMD\x20Between\x20Words\x20Silence','#AMD\x20Maximum\x20Number\x20Of\x20Words','#AMD\x20Silence\x20Threshold\x20(min:0,\x20max:32767)','#AMD\x20Maximum\x20Word\x20Length','DESC','Random\x20Last\x20Digit\x20(min:1,\x20max:15)','NoSuchNumber\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#Drop\x20Retry\x20(min:1,\x20max:999)','#Abandoned\x20Retry\x20(min:1,\x20max:999)','#Machine\x20Retry\x20(min:1,\x20max:999)','#AgentReject\x20Retry\x20(min:1,\x20max:999)','AgentReject\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','exports'];(function(_0x1eb8d6,_0x24f72f){var _0x13e05c=function(_0x43d80b){while(--_0x43d80b){_0x1eb8d6['push'](_0x1eb8d6['shift']());}};_0x13e05c(++_0x24f72f);}(_0x4f8f,0x175));var _0xf4f8=function(_0x31b5ce,_0x48b095){_0x31b5ce=_0x31b5ce-0x0;var _0x1d97b6=_0x4f8f[_0x31b5ce];return _0x1d97b6;};'use strict';var Sequelize=require('sequelize');module[_0xf4f8('0x0')]={'name':{'type':Sequelize['STRING'],'unique':'name','allowNull':![],'validate':{'is':/[A-Za-z0-9._\\+*!-]+/,'notEmpty':!![]}},'type':{'type':Sequelize[_0xf4f8('0x1')]('ivr'),'allowNull':![],'defaultValue':_0xf4f8('0x2')},'description':{'type':Sequelize[_0xf4f8('0x3')]},'active':{'type':Sequelize['BOOLEAN'],'defaultValue':0x0,'comment':'Active/Disactive\x20Campaign'},'limitCalls':{'type':Sequelize[_0xf4f8('0x4')](0x4)['UNSIGNED'],'defaultValue':0x1e,'validate':{'min':0x1,'max':0xc8},'comment':_0xf4f8('0x5')},'dialOriginateCallerIdName':{'type':Sequelize[_0xf4f8('0x3')]},'dialOriginateCallerIdNumber':{'type':Sequelize[_0xf4f8('0x3')]},'dialOriginateTimeout':{'type':Sequelize[_0xf4f8('0x4')](0x3)[_0xf4f8('0x6')],'defaultValue':0x1e,'validate':{'min':0x1,'max':0x3e7},'comment':_0xf4f8('0x7')},'dialCongestionMaxRetry':{'type':Sequelize['INTEGER'](0x3)[_0xf4f8('0x6')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0xf4f8('0x8')},'dialCongestionRetryFrequency':{'type':Sequelize[_0xf4f8('0x4')](0x5)[_0xf4f8('0x6')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0xf4f8('0x9')},'dialBusyMaxRetry':{'type':Sequelize[_0xf4f8('0x4')](0x3)[_0xf4f8('0x6')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0xf4f8('0xa')},'dialBusyRetryFrequency':{'type':Sequelize[_0xf4f8('0x4')](0x5)[_0xf4f8('0x6')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':'Busy\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'},'dialNoAnswerMaxRetry':{'type':Sequelize[_0xf4f8('0x4')](0x3)[_0xf4f8('0x6')],'defaultValue':0x3,'comment':_0xf4f8('0xb')},'dialNoAnswerRetryFrequency':{'type':Sequelize[_0xf4f8('0x4')](0x5)[_0xf4f8('0x6')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0xf4f8('0xc')},'dialGlobalMaxRetry':{'type':Sequelize[_0xf4f8('0x4')](0x3)[_0xf4f8('0x6')],'validate':{'min':0x1,'max':0x3e7},'defaultValue':0x4,'comment':_0xf4f8('0xd')},'dialTimezone':{'type':Sequelize[_0xf4f8('0x3')],'defaultValue':null},'dialGlobalInterval':{'type':Sequelize[_0xf4f8('0x3')],'defaultValue':'07:00-22:00,*,*,*'},'dialCheckDuplicateType':{'type':Sequelize[_0xf4f8('0x1')](_0xf4f8('0xe'),_0xf4f8('0xf'),_0xf4f8('0x10')),'defaultValue':_0xf4f8('0xe')},'dialAMDActive':{'type':Sequelize[_0xf4f8('0x11')],'defaultValue':0x0,'comment':_0xf4f8('0x12')},'dialAMDInitialSilence':{'type':Sequelize[_0xf4f8('0x4')](0x9)['UNSIGNED'],'defaultValue':0x9c4,'validate':{'min':0x0},'comment':'#AMD\x20Initial\x20Silence'},'dialAMDGreeting':{'type':Sequelize[_0xf4f8('0x4')](0x9)['UNSIGNED'],'defaultValue':0x5dc,'validate':{'min':0x0},'comment':_0xf4f8('0x13')},'dialAMDAfterGreetingSilence':{'type':Sequelize['INTEGER'](0x9)['UNSIGNED'],'defaultValue':0x320,'validate':{'min':0x0},'comment':_0xf4f8('0x14')},'dialAMDTotalAnalysisTime':{'type':Sequelize[_0xf4f8('0x4')](0x9)[_0xf4f8('0x6')],'defaultValue':0x1388,'validate':{'min':0x0},'comment':_0xf4f8('0x15')},'dialAMDMinWordLength':{'type':Sequelize[_0xf4f8('0x4')](0x9)[_0xf4f8('0x6')],'defaultValue':0x64,'validate':{'min':0x0},'comment':'#AMD\x20Min\x20Word\x20Length'},'dialAMDBetweenWordsSilence':{'type':Sequelize[_0xf4f8('0x4')](0x9)[_0xf4f8('0x6')],'defaultValue':0x32,'validate':{'min':0x0},'comment':_0xf4f8('0x16')},'dialAMDMaximumNumberOfWords':{'type':Sequelize[_0xf4f8('0x4')](0x9)[_0xf4f8('0x6')],'defaultValue':0x3,'validate':{'min':0x0},'comment':_0xf4f8('0x17')},'dialAMDSilenceThreshold':{'type':Sequelize[_0xf4f8('0x4')](0x5)[_0xf4f8('0x6')],'validate':{'min':0x0,'max':0x7fff},'defaultValue':0x100,'comment':_0xf4f8('0x18')},'dialAMDMaximumWordLength':{'type':Sequelize[_0xf4f8('0x4')](0x9)['UNSIGNED'],'defaultValue':0x1388,'validate':{'min':0x0},'comment':_0xf4f8('0x19')},'dialOrderByScheduledAt':{'type':Sequelize[_0xf4f8('0x1')](_0xf4f8('0x1a'),'ASC'),'defaultValue':_0xf4f8('0x1a')},'dialPrefix':{'type':Sequelize[_0xf4f8('0x3')],'defaultValue':null},'dialRandomLastDigitCallerIdNumber':{'type':Sequelize['INTEGER'](0x3)[_0xf4f8('0x6')],'validate':{'min':0x0,'max':0xf},'defaultValue':0x0,'comment':_0xf4f8('0x1b')},'dialCutDigit':{'type':Sequelize[_0xf4f8('0x4')](0x3)[_0xf4f8('0x6')],'validate':{'min':0x0,'max':0xf},'defaultValue':0x0,'comment':'Cut\x20Digit\x20(min:1,\x20max:15)'},'dialNoSuchNumberMaxRetry':{'type':Sequelize[_0xf4f8('0x4')](0x3)['UNSIGNED'],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':'#NoSuchNumber\x20Retry\x20(min:1,\x20max:999)'},'dialNoSuchNumberRetryFrequency':{'type':Sequelize[_0xf4f8('0x4')](0x5)[_0xf4f8('0x6')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0xf4f8('0x1c')},'dialDropMaxRetry':{'type':Sequelize[_0xf4f8('0x4')](0x3)[_0xf4f8('0x6')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0xf4f8('0x1d')},'dialDropRetryFrequency':{'type':Sequelize[_0xf4f8('0x4')](0x5)[_0xf4f8('0x6')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':'Drop\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'},'dialAbandonedMaxRetry':{'type':Sequelize[_0xf4f8('0x4')](0x3)[_0xf4f8('0x6')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0xf4f8('0x1e')},'dialAbandonedRetryFrequency':{'type':Sequelize[_0xf4f8('0x4')](0x5)[_0xf4f8('0x6')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':'Abandoned\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'},'dialMachineMaxRetry':{'type':Sequelize[_0xf4f8('0x4')](0x3)[_0xf4f8('0x6')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0xf4f8('0x1f')},'dialMachineRetryFrequency':{'type':Sequelize['INTEGER'](0x5)[_0xf4f8('0x6')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':'Machine\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'},'dialAgentRejectMaxRetry':{'type':Sequelize[_0xf4f8('0x4')](0x3)['UNSIGNED'],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0xf4f8('0x20')},'dialAgentRejectRetryFrequency':{'type':Sequelize[_0xf4f8('0x4')](0x5)[_0xf4f8('0x6')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0xf4f8('0x21')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x85e0=['getHoppers','CmHopper','order','pick','CampaignId','findAll','getHopperHistories','findOne','CmHopperHistory','CmHopperFinal','CmHopperBlack','getLists','CmList','addLists','ids','spread','dialCheckDuplicateType','always','insert','into','cm_hopper','fromQuery','phone','scheduledAt','ListId','select','field','ContactId','CmListId','toString','NOW()','cm_contacts','deletedAt\x20IS\x20NULL','ListId\x20=\x20?','phone\x20IS\x20NOT\x20NULL','phone\x20NOT\x20IN\x20(?)','COALESCE(calleridnum,\x27\x27)','cm_hopper_final','CampaignId\x20=\x20?','COALESCE(phone,\x27\x27)','from','onlyIfOpen','push','sequelize','all','removeLists','getBlackLists','addBlackLists','cm_hopper_black','removeBlackLists','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','path','sox','to-csv','fs-extra','lodash','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','apply','reject','update','then','destroy','get','IvrCampaigns','error','stack','name','send','index','map','Campaign','fieldName','key','model','query','filters','intersection','fields','attributes','hasOwnProperty','nolimit','sort','where','filter','merge','type','VIRTUAL','options','count','includeAll','rows','show','params','keys','rawAttributes','include','find','catch','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','userProfileId','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','clone','length','omit','createdAt','updatedAt','role','UserProfileSection'];(function(_0x182c4e,_0x252d41){var _0x1a701c=function(_0x387539){while(--_0x387539){_0x182c4e['push'](_0x182c4e['shift']());}};_0x1a701c(++_0x252d41);}(_0x85e0,0xbc));var _0x085e=function(_0x46698a,_0x8de1e4){_0x46698a=_0x46698a-0x0;var _0x356db0=_0x85e0[_0x46698a];return _0x356db0;};'use strict';var emlformat=require(_0x085e('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x085e('0x1'));var jsonpatch=require(_0x085e('0x2'));var rp=require(_0x085e('0x3'));var moment=require(_0x085e('0x4'));var BPromise=require(_0x085e('0x5'));var Mustache=require('mustache');var util=require('util');var path=require(_0x085e('0x6'));var sox=require(_0x085e('0x7'));var csv=require(_0x085e('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x085e('0x9'));var _=require(_0x085e('0xa'));var squel=require('squel');var crypto=require(_0x085e('0xb'));var jsforce=require(_0x085e('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x085e('0x8'));var querystring=require(_0x085e('0xd'));var Papa=require(_0x085e('0xe'));var Redis=require(_0x085e('0xf'));var authService=require(_0x085e('0x10'));var qs=require(_0x085e('0x11'));var as=require(_0x085e('0x12'));var hardwareService=require(_0x085e('0x13'));var logger=require(_0x085e('0x14'))(_0x085e('0x15'));var utils=require(_0x085e('0x16'));var config=require(_0x085e('0x17'));var licenseUtil=require(_0x085e('0x18'));var db=require(_0x085e('0x19'))['db'];function respondWithStatusCode(_0x5aa734,_0x19548a){_0x19548a=_0x19548a||0xcc;return function(_0x4bcba3){if(_0x4bcba3){return _0x5aa734[_0x085e('0x1a')](_0x19548a);}return _0x5aa734[_0x085e('0x1b')](_0x19548a)[_0x085e('0x1c')]();};}function respondWithResult(_0x311be3,_0x5b5522){_0x5b5522=_0x5b5522||0xc8;return function(_0x3051b4){if(_0x3051b4){return _0x311be3[_0x085e('0x1b')](_0x5b5522)[_0x085e('0x1d')](_0x3051b4);}};}function respondWithFilteredResult(_0x339cb6,_0x316066){return function(_0xccbaf7){if(_0xccbaf7){var _0x4baa7c=typeof _0x316066[_0x085e('0x1e')]===_0x085e('0x1f')&&typeof _0x316066[_0x085e('0x20')]==='undefined';var _0x44b163=_0xccbaf7['count'];var _0x23591b=_0x4baa7c?0x0:_0x316066[_0x085e('0x1e')];var _0x294055=_0x4baa7c?_0xccbaf7['count']:_0x316066[_0x085e('0x1e')]+_0x316066[_0x085e('0x20')];var _0x5b3dbc;if(_0x294055>=_0x44b163){_0x294055=_0x44b163;_0x5b3dbc=0xc8;}else{_0x5b3dbc=0xce;}_0x339cb6[_0x085e('0x1b')](_0x5b3dbc);return _0x339cb6['set']('Content-Range',_0x23591b+'-'+_0x294055+'/'+_0x44b163)['json'](_0xccbaf7);}return null;};}function patchUpdates(_0x49135d){return function(_0x2114bb){try{jsonpatch[_0x085e('0x21')](_0x2114bb,_0x49135d,!![]);}catch(_0x1d747c){return BPromise[_0x085e('0x22')](_0x1d747c);}return _0x2114bb['save']();};}function saveUpdates(_0x45f571,_0x97dc1a){return function(_0xa1fda3){if(_0xa1fda3){return _0xa1fda3[_0x085e('0x23')](_0x45f571)[_0x085e('0x24')](function(_0x36caa8){return _0x36caa8;});}return null;};}function removeEntity(_0x53bbcb,_0xc41871){return function(_0x29fa66){if(_0x29fa66){return _0x29fa66[_0x085e('0x25')]()['then'](function(){var _0x10e7cf=_0x29fa66[_0x085e('0x26')]({'plain':!![]});var _0x900d4c=_0x085e('0x27');return db['UserProfileResource'][_0x085e('0x25')]({'where':{'type':_0x900d4c,'resourceId':_0x10e7cf['id']}})['then'](function(){return _0x29fa66;});})[_0x085e('0x24')](function(){_0x53bbcb['status'](0xcc)[_0x085e('0x1c')]();});}};}function handleEntityNotFound(_0xb22705,_0x591b48){return function(_0x37041d){if(!_0x37041d){_0xb22705[_0x085e('0x1a')](0x194);}return _0x37041d;};}function handleError(_0x162fbf,_0x96b04b){_0x96b04b=_0x96b04b||0x1f4;return function(_0x1f62a7){logger[_0x085e('0x28')](_0x1f62a7[_0x085e('0x29')]);if(_0x1f62a7[_0x085e('0x2a')]){delete _0x1f62a7[_0x085e('0x2a')];}_0x162fbf[_0x085e('0x1b')](_0x96b04b)[_0x085e('0x2b')](_0x1f62a7);};}exports[_0x085e('0x2c')]=function(_0x32bf8c,_0x3f1cbe){var _0x222e44={},_0x25ed35={},_0x181e2d={'count':0x0,'rows':[]};var _0x19deed=_[_0x085e('0x2d')](db[_0x085e('0x2e')]['rawAttributes'],function(_0x3ca9b0){return{'name':_0x3ca9b0[_0x085e('0x2f')],'type':_0x3ca9b0['type'][_0x085e('0x30')]};});_0x25ed35[_0x085e('0x31')]=_['map'](_0x19deed,_0x085e('0x2a'));_0x25ed35[_0x085e('0x32')]=_['keys'](_0x32bf8c[_0x085e('0x32')]);_0x25ed35[_0x085e('0x33')]=_[_0x085e('0x34')](_0x25ed35['model'],_0x25ed35[_0x085e('0x32')]);_0x222e44['attributes']=_['intersection'](_0x25ed35['model'],qs[_0x085e('0x35')](_0x32bf8c[_0x085e('0x32')][_0x085e('0x35')]));_0x222e44[_0x085e('0x36')]=_0x222e44[_0x085e('0x36')]['length']?_0x222e44[_0x085e('0x36')]:_0x25ed35['model'];if(!_0x32bf8c[_0x085e('0x32')][_0x085e('0x37')](_0x085e('0x38'))){_0x222e44[_0x085e('0x20')]=qs['limit'](_0x32bf8c[_0x085e('0x32')][_0x085e('0x20')]);_0x222e44['offset']=qs[_0x085e('0x1e')](_0x32bf8c[_0x085e('0x32')][_0x085e('0x1e')]);}_0x222e44['order']=qs['sort'](_0x32bf8c[_0x085e('0x32')][_0x085e('0x39')]);_0x222e44[_0x085e('0x3a')]=qs[_0x085e('0x33')](_['pick'](_0x32bf8c[_0x085e('0x32')],_0x25ed35[_0x085e('0x33')]),_0x19deed);if(_0x32bf8c[_0x085e('0x32')][_0x085e('0x3b')]){_0x222e44[_0x085e('0x3a')]=_[_0x085e('0x3c')](_0x222e44[_0x085e('0x3a')],{'$or':_['map'](_0x19deed,function(_0x43e7a0){if(_0x43e7a0[_0x085e('0x3d')]!==_0x085e('0x3e')){var _0x1c02b1={};_0x1c02b1[_0x43e7a0['name']]={'$like':'%'+_0x32bf8c[_0x085e('0x32')][_0x085e('0x3b')]+'%'};return _0x1c02b1;}})});}_0x222e44=_['merge']({},_0x222e44,_0x32bf8c[_0x085e('0x3f')]);var _0x246315={'where':_0x222e44[_0x085e('0x3a')]};return db['Campaign'][_0x085e('0x40')](_0x246315)[_0x085e('0x24')](function(_0x34d84f){_0x181e2d['count']=_0x34d84f;if(_0x32bf8c[_0x085e('0x32')][_0x085e('0x41')]){_0x222e44['include']=[{'all':!![]}];}return db[_0x085e('0x2e')]['findAll'](_0x222e44);})[_0x085e('0x24')](function(_0x102151){_0x181e2d[_0x085e('0x42')]=_0x102151;return _0x181e2d;})[_0x085e('0x24')](respondWithFilteredResult(_0x3f1cbe,_0x222e44))['catch'](handleError(_0x3f1cbe,null));};exports[_0x085e('0x43')]=function(_0xce6c34,_0x59333c){var _0x31c55b={'raw':![],'where':{'id':_0xce6c34[_0x085e('0x44')]['id']}},_0x4d0c3a={};_0x4d0c3a[_0x085e('0x31')]=_[_0x085e('0x45')](db[_0x085e('0x2e')][_0x085e('0x46')]);_0x4d0c3a[_0x085e('0x32')]=_[_0x085e('0x45')](_0xce6c34['query']);_0x4d0c3a[_0x085e('0x33')]=_['intersection'](_0x4d0c3a['model'],_0x4d0c3a[_0x085e('0x32')]);_0x31c55b[_0x085e('0x36')]=_['intersection'](_0x4d0c3a[_0x085e('0x31')],qs[_0x085e('0x35')](_0xce6c34[_0x085e('0x32')][_0x085e('0x35')]));_0x31c55b['attributes']=_0x31c55b[_0x085e('0x36')]['length']?_0x31c55b[_0x085e('0x36')]:_0x4d0c3a[_0x085e('0x31')];if(_0xce6c34[_0x085e('0x32')][_0x085e('0x41')]){_0x31c55b[_0x085e('0x47')]=[{'all':!![]}];}_0x31c55b=_[_0x085e('0x3c')]({},_0x31c55b,_0xce6c34[_0x085e('0x3f')]);return db[_0x085e('0x2e')][_0x085e('0x48')](_0x31c55b)['then'](handleEntityNotFound(_0x59333c,null))[_0x085e('0x24')](respondWithResult(_0x59333c,null))[_0x085e('0x49')](handleError(_0x59333c,null));};exports[_0x085e('0x4a')]=function(_0x7942ad,_0x9b3729){return db[_0x085e('0x2e')][_0x085e('0x4a')](_0x7942ad[_0x085e('0x4b')],{})[_0x085e('0x24')](function(_0x16dd04){var _0x1d0645=_0x7942ad[_0x085e('0x4c')]['get']({'plain':!![]});if(!_0x1d0645)throw new Error(_0x085e('0x4d'));if(_0x1d0645['role']===_0x085e('0x4c')){var _0xa3a277=_0x16dd04[_0x085e('0x26')]({'plain':!![]});var _0x27925f='IvrCampaigns';return db['UserProfileSection']['find']({'where':{'name':_0x27925f,'userProfileId':_0x1d0645[_0x085e('0x4e')]},'raw':!![]})[_0x085e('0x24')](function(_0xea25cc){if(_0xea25cc&&_0xea25cc['autoAssociation']===0x0){return db[_0x085e('0x4f')]['create']({'name':_0xa3a277[_0x085e('0x2a')],'resourceId':_0xa3a277['id'],'type':_0xea25cc[_0x085e('0x2a')],'sectionId':_0xea25cc['id']},{})[_0x085e('0x24')](function(){return _0x16dd04;});}else{return _0x16dd04;}})[_0x085e('0x49')](function(_0x39412d){logger[_0x085e('0x28')](_0x085e('0x50'),_0x39412d);throw _0x39412d;});}return _0x16dd04;})[_0x085e('0x24')](respondWithResult(_0x9b3729,0xc9))[_0x085e('0x49')](handleError(_0x9b3729,null));};exports[_0x085e('0x51')]=function(_0x19dc1f,_0x1f6b29){var _0x31941d={'where':{'id':_0x19dc1f[_0x085e('0x44')]['id']}},_0xa75e43={};_0xa75e43[_0x085e('0x31')]=_[_0x085e('0x45')](db[_0x085e('0x2e')][_0x085e('0x46')]);_0x31941d['attributes']=_[_0x085e('0x34')](_0xa75e43[_0x085e('0x31')],qs[_0x085e('0x35')](_0x19dc1f['query'][_0x085e('0x35')]));_0x31941d[_0x085e('0x36')]=_0x31941d[_0x085e('0x36')][_0x085e('0x52')]?_0x31941d[_0x085e('0x36')]:_0xa75e43['model'];if(_0x19dc1f[_0x085e('0x32')][_0x085e('0x41')]){_0x31941d[_0x085e('0x47')]=[{'all':!![]}];}_0x31941d=_[_0x085e('0x3c')]({},_0x31941d,_0x19dc1f[_0x085e('0x3f')]);return db[_0x085e('0x2e')][_0x085e('0x48')](_0x31941d)['then'](handleEntityNotFound(_0x1f6b29,null))[_0x085e('0x24')](function(_0x365a9f){if(_0x365a9f){var _0x27a241=_0x365a9f[_0x085e('0x26')]({'plain':!![]});_0x27a241=qs[_0x085e('0x53')](_0x27a241,['id',_0x085e('0x54'),_0x085e('0x55')]);_0x19dc1f[_0x085e('0x4b')]=_[_0x085e('0x53')](_0x19dc1f['body'],['id',_0x085e('0x54'),_0x085e('0x55')]);return db[_0x085e('0x2e')][_0x085e('0x4a')](_[_0x085e('0x3c')](_0x27a241,_0x19dc1f['body']),{'include':_0x19dc1f[_0x085e('0x32')]['includeAll']?[{'all':!![]}]:undefined})[_0x085e('0x24')](function(_0x40c1bc){var _0x274a56=_0x19dc1f[_0x085e('0x4c')]['get']({'plain':!![]});if(!_0x274a56)throw new Error(_0x085e('0x4d'));if(_0x274a56[_0x085e('0x56')]==='user'){var _0x20e5ef=_0x40c1bc[_0x085e('0x26')]({'plain':!![]});var _0x4ee2bb='IvrCampaigns';return db[_0x085e('0x57')]['find']({'where':{'name':_0x4ee2bb,'userProfileId':_0x274a56[_0x085e('0x4e')]},'raw':!![]})[_0x085e('0x24')](function(_0x696135){if(_0x696135&&_0x696135['autoAssociation']===0x0){return db[_0x085e('0x4f')][_0x085e('0x4a')]({'name':_0x20e5ef[_0x085e('0x2a')],'resourceId':_0x20e5ef['id'],'type':_0x696135[_0x085e('0x2a')],'sectionId':_0x696135['id']},{})[_0x085e('0x24')](function(){return _0x40c1bc;});}else{return _0x40c1bc;}})[_0x085e('0x49')](function(_0xfa1dfc){logger['error'](_0x085e('0x50'),_0xfa1dfc);throw _0xfa1dfc;});}return _0x40c1bc;});}})['then'](respondWithResult(_0x1f6b29,0xc9))[_0x085e('0x49')](handleError(_0x1f6b29,null));};exports[_0x085e('0x23')]=function(_0x45bb15,_0x6cd1ee){if(_0x45bb15[_0x085e('0x4b')]['id']){delete _0x45bb15[_0x085e('0x4b')]['id'];}return db[_0x085e('0x2e')][_0x085e('0x48')]({'where':{'id':_0x45bb15['params']['id']}})[_0x085e('0x24')](handleEntityNotFound(_0x6cd1ee,null))[_0x085e('0x24')](saveUpdates(_0x45bb15[_0x085e('0x4b')],null))[_0x085e('0x24')](respondWithResult(_0x6cd1ee,null))[_0x085e('0x49')](handleError(_0x6cd1ee,null));};exports['destroy']=function(_0x1589bc,_0x139e4d){return db[_0x085e('0x2e')][_0x085e('0x48')]({'where':{'id':_0x1589bc[_0x085e('0x44')]['id']}})['then'](handleEntityNotFound(_0x139e4d,null))[_0x085e('0x24')](removeEntity(_0x139e4d,null))[_0x085e('0x49')](handleError(_0x139e4d,null));};exports[_0x085e('0x58')]=function(_0x47d72b,_0x49de63,_0x25fc48){var _0x578100={'raw':!![],'where':{}};var _0x263ea6={};var _0x2280e2={'count':0x0,'rows':[]};return db['Campaign']['findOne']({'where':{'id':_0x47d72b[_0x085e('0x44')]['id']}})[_0x085e('0x24')](handleEntityNotFound(_0x49de63,null))[_0x085e('0x24')](function(_0x4358ed){if(_0x4358ed){_0x263ea6[_0x085e('0x31')]=_['keys'](db[_0x085e('0x59')][_0x085e('0x46')]);_0x263ea6['query']=_[_0x085e('0x45')](_0x47d72b[_0x085e('0x32')]);_0x263ea6[_0x085e('0x33')]=_[_0x085e('0x34')](_0x263ea6[_0x085e('0x31')],_0x263ea6[_0x085e('0x32')]);_0x578100['attributes']=_[_0x085e('0x34')](_0x263ea6['model'],qs[_0x085e('0x35')](_0x47d72b[_0x085e('0x32')][_0x085e('0x35')]));_0x578100[_0x085e('0x36')]=_0x578100[_0x085e('0x36')][_0x085e('0x52')]?_0x578100['attributes']:_0x263ea6['model'];if(!_0x47d72b['query'][_0x085e('0x37')](_0x085e('0x38'))){_0x578100['limit']=qs[_0x085e('0x20')](_0x47d72b[_0x085e('0x32')]['limit']);_0x578100[_0x085e('0x1e')]=qs[_0x085e('0x1e')](_0x47d72b[_0x085e('0x32')][_0x085e('0x1e')]);}_0x578100[_0x085e('0x5a')]=qs['sort'](_0x47d72b[_0x085e('0x32')]['sort']);_0x578100['where']=qs[_0x085e('0x33')](_[_0x085e('0x5b')](_0x47d72b[_0x085e('0x32')],_0x263ea6[_0x085e('0x33')]));_0x578100[_0x085e('0x3a')][_0x085e('0x5c')]=_0x4358ed['id'];if(_0x47d72b[_0x085e('0x32')][_0x085e('0x3b')]){_0x578100[_0x085e('0x3a')]=_[_0x085e('0x3c')](_0x578100['where'],{'$or':_[_0x085e('0x2d')](_0x578100['attributes'],function(_0x1cf1fa){var _0x4b55f8={};_0x4b55f8[_0x1cf1fa]={'$like':'%'+_0x47d72b['query'][_0x085e('0x3b')]+'%'};return _0x4b55f8;})});}_0x578100=_['merge']({},_0x578100,_0x47d72b[_0x085e('0x3f')]);return db[_0x085e('0x59')][_0x085e('0x40')]({'where':_0x578100[_0x085e('0x3a')]})['then'](function(_0x3fec90){_0x2280e2[_0x085e('0x40')]=_0x3fec90;if(_0x47d72b['query']['includeAll']){_0x578100[_0x085e('0x47')]=[{'all':!![]}];}return db[_0x085e('0x59')][_0x085e('0x5d')](_0x578100);})[_0x085e('0x24')](function(_0x29438b){_0x2280e2['rows']=_0x29438b;return _0x2280e2;});}})[_0x085e('0x24')](respondWithFilteredResult(_0x49de63,_0x578100))['catch'](handleError(_0x49de63,null));};exports[_0x085e('0x5e')]=function(_0x1d752b,_0x2455bb,_0xb1e189){var _0x3a78ad={'raw':!![],'where':{}};var _0x57f939={};var _0x5e6a97={'count':0x0,'rows':[]};return db[_0x085e('0x2e')][_0x085e('0x5f')]({'where':{'id':_0x1d752b[_0x085e('0x44')]['id']}})[_0x085e('0x24')](handleEntityNotFound(_0x2455bb,null))[_0x085e('0x24')](function(_0x202be9){if(_0x202be9){_0x57f939['model']=_['keys'](db[_0x085e('0x60')]['rawAttributes']);_0x57f939[_0x085e('0x32')]=_['keys'](_0x1d752b[_0x085e('0x32')]);_0x57f939['filters']=_[_0x085e('0x34')](_0x57f939[_0x085e('0x31')],_0x57f939[_0x085e('0x32')]);_0x3a78ad[_0x085e('0x36')]=_[_0x085e('0x34')](_0x57f939['model'],qs[_0x085e('0x35')](_0x1d752b[_0x085e('0x32')]['fields']));_0x3a78ad[_0x085e('0x36')]=_0x3a78ad[_0x085e('0x36')][_0x085e('0x52')]?_0x3a78ad[_0x085e('0x36')]:_0x57f939[_0x085e('0x31')];if(!_0x1d752b['query'][_0x085e('0x37')](_0x085e('0x38'))){_0x3a78ad[_0x085e('0x20')]=qs[_0x085e('0x20')](_0x1d752b[_0x085e('0x32')][_0x085e('0x20')]);_0x3a78ad[_0x085e('0x1e')]=qs[_0x085e('0x1e')](_0x1d752b[_0x085e('0x32')][_0x085e('0x1e')]);}_0x3a78ad['order']=qs[_0x085e('0x39')](_0x1d752b[_0x085e('0x32')][_0x085e('0x39')]);_0x3a78ad[_0x085e('0x3a')]=qs['filters'](_[_0x085e('0x5b')](_0x1d752b['query'],_0x57f939[_0x085e('0x33')]));_0x3a78ad[_0x085e('0x3a')][_0x085e('0x5c')]=_0x202be9['id'];if(_0x1d752b[_0x085e('0x32')]['filter']){_0x3a78ad['where']=_[_0x085e('0x3c')](_0x3a78ad['where'],{'$or':_['map'](_0x3a78ad[_0x085e('0x36')],function(_0x19c0fb){var _0x216a56={};_0x216a56[_0x19c0fb]={'$like':'%'+_0x1d752b[_0x085e('0x32')][_0x085e('0x3b')]+'%'};return _0x216a56;})});}_0x3a78ad=_['merge']({},_0x3a78ad,_0x1d752b['options']);return db[_0x085e('0x60')][_0x085e('0x40')]({'where':_0x3a78ad[_0x085e('0x3a')]})['then'](function(_0x134f55){_0x5e6a97[_0x085e('0x40')]=_0x134f55;if(_0x1d752b[_0x085e('0x32')]['includeAll']){_0x3a78ad[_0x085e('0x47')]=[{'all':!![]}];}return db['CmHopperHistory'][_0x085e('0x5d')](_0x3a78ad);})[_0x085e('0x24')](function(_0x1e5a62){_0x5e6a97[_0x085e('0x42')]=_0x1e5a62;return _0x5e6a97;});}})[_0x085e('0x24')](respondWithFilteredResult(_0x2455bb,_0x3a78ad))[_0x085e('0x49')](handleError(_0x2455bb,null));};exports['getHopperFinals']=function(_0xd6e167,_0x5cc811,_0x2423e0){var _0x112d92={'raw':!![],'where':{}};var _0x2667fd={};var _0x10628e={'count':0x0,'rows':[]};return db[_0x085e('0x2e')]['findOne']({'where':{'id':_0xd6e167[_0x085e('0x44')]['id']}})[_0x085e('0x24')](handleEntityNotFound(_0x5cc811,null))['then'](function(_0x432e50){if(_0x432e50){_0x2667fd[_0x085e('0x31')]=_[_0x085e('0x45')](db[_0x085e('0x61')][_0x085e('0x46')]);_0x2667fd[_0x085e('0x32')]=_['keys'](_0xd6e167['query']);_0x2667fd[_0x085e('0x33')]=_['intersection'](_0x2667fd['model'],_0x2667fd['query']);_0x112d92[_0x085e('0x36')]=_['intersection'](_0x2667fd[_0x085e('0x31')],qs[_0x085e('0x35')](_0xd6e167[_0x085e('0x32')]['fields']));_0x112d92['attributes']=_0x112d92[_0x085e('0x36')][_0x085e('0x52')]?_0x112d92[_0x085e('0x36')]:_0x2667fd['model'];if(!_0xd6e167[_0x085e('0x32')][_0x085e('0x37')](_0x085e('0x38'))){_0x112d92['limit']=qs[_0x085e('0x20')](_0xd6e167[_0x085e('0x32')][_0x085e('0x20')]);_0x112d92['offset']=qs[_0x085e('0x1e')](_0xd6e167[_0x085e('0x32')][_0x085e('0x1e')]);}_0x112d92['order']=qs[_0x085e('0x39')](_0xd6e167[_0x085e('0x32')][_0x085e('0x39')]);_0x112d92['where']=qs['filters'](_[_0x085e('0x5b')](_0xd6e167['query'],_0x2667fd['filters']));_0x112d92[_0x085e('0x3a')]['CampaignId']=_0x432e50['id'];if(_0xd6e167['query'][_0x085e('0x3b')]){_0x112d92[_0x085e('0x3a')]=_['merge'](_0x112d92['where'],{'$or':_['map'](_0x112d92[_0x085e('0x36')],function(_0x5a7a7c){var _0x4c987b={};_0x4c987b[_0x5a7a7c]={'$like':'%'+_0xd6e167[_0x085e('0x32')][_0x085e('0x3b')]+'%'};return _0x4c987b;})});}_0x112d92=_[_0x085e('0x3c')]({},_0x112d92,_0xd6e167[_0x085e('0x3f')]);return db['CmHopperFinal'][_0x085e('0x40')]({'where':_0x112d92[_0x085e('0x3a')]})[_0x085e('0x24')](function(_0x120688){_0x10628e[_0x085e('0x40')]=_0x120688;if(_0xd6e167['query']['includeAll']){_0x112d92['include']=[{'all':!![]}];}return db[_0x085e('0x61')]['findAll'](_0x112d92);})[_0x085e('0x24')](function(_0x52243e){_0x10628e['rows']=_0x52243e;return _0x10628e;});}})['then'](respondWithFilteredResult(_0x5cc811,_0x112d92))['catch'](handleError(_0x5cc811,null));};exports['getHopperBlacks']=function(_0x19bc52,_0xf3dc94,_0x3b8a05){var _0xc34f3f={'raw':!![],'where':{}};var _0x55be06={};var _0xb65cbd={'count':0x0,'rows':[]};return db['Campaign'][_0x085e('0x5f')]({'where':{'id':_0x19bc52[_0x085e('0x44')]['id']}})[_0x085e('0x24')](handleEntityNotFound(_0xf3dc94,null))[_0x085e('0x24')](function(_0x14ba51){if(_0x14ba51){_0x55be06[_0x085e('0x31')]=_[_0x085e('0x45')](db[_0x085e('0x62')][_0x085e('0x46')]);_0x55be06['query']=_[_0x085e('0x45')](_0x19bc52[_0x085e('0x32')]);_0x55be06[_0x085e('0x33')]=_[_0x085e('0x34')](_0x55be06['model'],_0x55be06[_0x085e('0x32')]);_0xc34f3f[_0x085e('0x36')]=_[_0x085e('0x34')](_0x55be06[_0x085e('0x31')],qs['fields'](_0x19bc52['query']['fields']));_0xc34f3f[_0x085e('0x36')]=_0xc34f3f[_0x085e('0x36')]['length']?_0xc34f3f[_0x085e('0x36')]:_0x55be06['model'];if(!_0x19bc52[_0x085e('0x32')][_0x085e('0x37')](_0x085e('0x38'))){_0xc34f3f[_0x085e('0x20')]=qs[_0x085e('0x20')](_0x19bc52[_0x085e('0x32')][_0x085e('0x20')]);_0xc34f3f[_0x085e('0x1e')]=qs['offset'](_0x19bc52[_0x085e('0x32')][_0x085e('0x1e')]);}_0xc34f3f[_0x085e('0x5a')]=qs[_0x085e('0x39')](_0x19bc52[_0x085e('0x32')][_0x085e('0x39')]);_0xc34f3f[_0x085e('0x3a')]=qs['filters'](_[_0x085e('0x5b')](_0x19bc52[_0x085e('0x32')],_0x55be06[_0x085e('0x33')]));_0xc34f3f[_0x085e('0x3a')][_0x085e('0x5c')]=_0x14ba51['id'];if(_0x19bc52['query'][_0x085e('0x3b')]){_0xc34f3f[_0x085e('0x3a')]=_[_0x085e('0x3c')](_0xc34f3f[_0x085e('0x3a')],{'$or':_[_0x085e('0x2d')](_0xc34f3f[_0x085e('0x36')],function(_0x116a78){var _0x55b8a4={};_0x55b8a4[_0x116a78]={'$like':'%'+_0x19bc52[_0x085e('0x32')][_0x085e('0x3b')]+'%'};return _0x55b8a4;})});}_0xc34f3f=_['merge']({},_0xc34f3f,_0x19bc52[_0x085e('0x3f')]);return db['CmHopperBlack'][_0x085e('0x40')]({'where':_0xc34f3f[_0x085e('0x3a')]})[_0x085e('0x24')](function(_0x31d573){_0xb65cbd[_0x085e('0x40')]=_0x31d573;if(_0x19bc52['query'][_0x085e('0x41')]){_0xc34f3f[_0x085e('0x47')]=[{'all':!![]}];}return db[_0x085e('0x62')][_0x085e('0x5d')](_0xc34f3f);})['then'](function(_0x48d001){_0xb65cbd[_0x085e('0x42')]=_0x48d001;return _0xb65cbd;});}})[_0x085e('0x24')](respondWithFilteredResult(_0xf3dc94,_0xc34f3f))[_0x085e('0x49')](handleError(_0xf3dc94,null));};exports[_0x085e('0x63')]=function(_0xfef94d,_0x4d55e5,_0x3895ed){var _0x568040={};var _0x323bd9={};var _0x392768;var _0xa23572;return db[_0x085e('0x2e')]['findOne']({'where':{'id':_0xfef94d[_0x085e('0x44')]['id']}})[_0x085e('0x24')](handleEntityNotFound(_0x4d55e5,null))[_0x085e('0x24')](function(_0x136888){if(_0x136888){_0x392768=_0x136888;_0x323bd9[_0x085e('0x31')]=_[_0x085e('0x45')](db[_0x085e('0x64')][_0x085e('0x46')]);_0x323bd9[_0x085e('0x32')]=_[_0x085e('0x45')](_0xfef94d[_0x085e('0x32')]);_0x323bd9[_0x085e('0x33')]=_[_0x085e('0x34')](_0x323bd9[_0x085e('0x31')],_0x323bd9[_0x085e('0x32')]);_0x568040[_0x085e('0x36')]=_[_0x085e('0x34')](_0x323bd9['model'],qs[_0x085e('0x35')](_0xfef94d['query'][_0x085e('0x35')]));_0x568040[_0x085e('0x36')]=_0x568040[_0x085e('0x36')]['length']?_0x568040[_0x085e('0x36')]:_0x323bd9['model'];_0x568040[_0x085e('0x5a')]=qs[_0x085e('0x39')](_0xfef94d[_0x085e('0x32')][_0x085e('0x39')]);_0x568040[_0x085e('0x3a')]=qs['filters'](_[_0x085e('0x5b')](_0xfef94d[_0x085e('0x32')],_0x323bd9[_0x085e('0x33')]));if(_0xfef94d['query'][_0x085e('0x3b')]){_0x568040[_0x085e('0x3a')]=_[_0x085e('0x3c')](_0x568040[_0x085e('0x3a')],{'$or':_[_0x085e('0x2d')](_0x568040[_0x085e('0x36')],function(_0x37d9c9){var _0x44c863={};_0x44c863[_0x37d9c9]={'$like':'%'+_0xfef94d[_0x085e('0x32')][_0x085e('0x3b')]+'%'};return _0x44c863;})});}_0x568040=_[_0x085e('0x3c')]({},_0x568040,_0xfef94d[_0x085e('0x3f')]);return _0x392768[_0x085e('0x63')](_0x568040);}})['then'](function(_0x107f15){if(_0x107f15){_0xa23572=_0x107f15['length'];if(!_0xfef94d[_0x085e('0x32')][_0x085e('0x37')](_0x085e('0x38'))){_0x568040[_0x085e('0x20')]=qs[_0x085e('0x20')](_0xfef94d[_0x085e('0x32')]['limit']);_0x568040['offset']=qs[_0x085e('0x1e')](_0xfef94d[_0x085e('0x32')][_0x085e('0x1e')]);}return _0x392768[_0x085e('0x63')](_0x568040);}})[_0x085e('0x24')](function(_0x1a4e06){if(_0x1a4e06){return _0x1a4e06?{'count':_0xa23572,'rows':_0x1a4e06}:null;}})[_0x085e('0x24')](respondWithResult(_0x4d55e5,null))[_0x085e('0x49')](handleError(_0x4d55e5,null));};exports[_0x085e('0x65')]=function(_0xcec444,_0x4d75d4,_0x19289a){var _0x4ad0bb,_0x32e16c;return db[_0x085e('0x2e')][_0x085e('0x48')]({'where':{'id':_0xcec444[_0x085e('0x44')]['id']}})[_0x085e('0x24')](handleEntityNotFound(_0x4d75d4,null))[_0x085e('0x24')](function(_0x52653d){if(_0x52653d){_0x32e16c=_0x52653d;return _0x52653d[_0x085e('0x65')](_0xcec444[_0x085e('0x4b')][_0x085e('0x66')],_[_0x085e('0x53')](_0xcec444[_0x085e('0x4b')],[_0x085e('0x66'),'id'])||{});}return null;})[_0x085e('0x67')](function(_0x6a0dbc){var _0x584776;_0x4ad0bb=_0x6a0dbc||[];var _0x57a741=[];if(_0x6a0dbc){for(var _0x166604=0x0;_0x166604<_0x6a0dbc[_0x085e('0x52')];_0x166604+=0x1){var _0x4c12aa=_0x6a0dbc[_0x166604][_0x085e('0x26')]({'plain':!![]});_0x32e16c[_0x085e('0x68')]=_0xcec444[_0x085e('0x4b')][_0x085e('0x68')]?_0xcec444[_0x085e('0x4b')][_0x085e('0x68')]:_0x32e16c[_0x085e('0x68')];switch(_0x32e16c['dialCheckDuplicateType']){case _0x085e('0x69'):_0x584776=squel[_0x085e('0x6a')]()[_0x085e('0x6b')](_0x085e('0x6c'))[_0x085e('0x6d')]([_0x085e('0x6e'),_0x085e('0x6f'),'ContactId',_0x085e('0x70'),_0x085e('0x5c'),_0x085e('0x54'),_0x085e('0x55')],squel[_0x085e('0x71')]()['field']('phone',_0x085e('0x6e'))[_0x085e('0x72')]('NOW()','scheduledAt')[_0x085e('0x72')]('id',_0x085e('0x73'))['field'](_0x4c12aa[_0x085e('0x74')][_0x085e('0x75')](),_0x085e('0x70'))['field'](_0xcec444[_0x085e('0x44')]['id'][_0x085e('0x75')](),_0x085e('0x5c'))[_0x085e('0x72')](_0x085e('0x76'),'createdAt')[_0x085e('0x72')](_0x085e('0x76'),_0x085e('0x55'))['from'](_0x085e('0x77'))[_0x085e('0x3a')](_0x085e('0x78'))[_0x085e('0x3a')](_0x085e('0x79'),_0x4c12aa[_0x085e('0x74')]['toString']())[_0x085e('0x3a')](_0x085e('0x7a'))[_0x085e('0x3a')](_0x085e('0x7b'),squel[_0x085e('0x71')]()[_0x085e('0x72')](_0x085e('0x7c'))['from'](_0x085e('0x7d'))[_0x085e('0x3a')](_0x085e('0x7e'),_0xcec444[_0x085e('0x44')]['id'][_0x085e('0x75')]()))[_0x085e('0x3a')](_0x085e('0x7b'),squel['select']()['field'](_0x085e('0x7f'))[_0x085e('0x80')]('cm_hopper')[_0x085e('0x3a')](_0x085e('0x7e'),_0xcec444['params']['id'][_0x085e('0x75')]())))['toString']();break;case _0x085e('0x81'):_0x584776=squel[_0x085e('0x6a')]()[_0x085e('0x6b')]('cm_hopper')[_0x085e('0x6d')]([_0x085e('0x6e'),_0x085e('0x6f'),_0x085e('0x73'),'ListId','CampaignId',_0x085e('0x54'),_0x085e('0x55')],squel[_0x085e('0x71')]()[_0x085e('0x72')](_0x085e('0x6e'),_0x085e('0x6e'))[_0x085e('0x72')](_0x085e('0x76'),_0x085e('0x6f'))[_0x085e('0x72')]('id','ContactId')[_0x085e('0x72')](_0x4c12aa[_0x085e('0x74')]['toString'](),_0x085e('0x70'))[_0x085e('0x72')](_0xcec444['params']['id'][_0x085e('0x75')](),_0x085e('0x5c'))[_0x085e('0x72')](_0x085e('0x76'),_0x085e('0x54'))[_0x085e('0x72')](_0x085e('0x76'),'updatedAt')['from']('cm_contacts')[_0x085e('0x3a')]('deletedAt\x20IS\x20NULL')[_0x085e('0x3a')](_0x085e('0x79'),_0x4c12aa[_0x085e('0x74')][_0x085e('0x75')]())[_0x085e('0x3a')](_0x085e('0x7a'))[_0x085e('0x3a')](_0x085e('0x7b'),squel[_0x085e('0x71')]()[_0x085e('0x72')](_0x085e('0x7f'))[_0x085e('0x80')](_0x085e('0x6c'))[_0x085e('0x3a')]('CampaignId\x20=\x20?',_0xcec444[_0x085e('0x44')]['id']['toString']())))[_0x085e('0x75')]();break;default:_0x584776=squel[_0x085e('0x6a')]()[_0x085e('0x6b')](_0x085e('0x6c'))[_0x085e('0x6d')]([_0x085e('0x6e'),'scheduledAt',_0x085e('0x73'),_0x085e('0x70'),_0x085e('0x5c'),_0x085e('0x54'),_0x085e('0x55')],squel[_0x085e('0x71')]()['field'](_0x085e('0x6e'),_0x085e('0x6e'))[_0x085e('0x72')](_0x085e('0x76'),_0x085e('0x6f'))[_0x085e('0x72')]('id','ContactId')['field'](_0x4c12aa[_0x085e('0x74')][_0x085e('0x75')](),_0x085e('0x70'))[_0x085e('0x72')](_0xcec444[_0x085e('0x44')]['id'][_0x085e('0x75')](),_0x085e('0x5c'))['field'](_0x085e('0x76'),_0x085e('0x54'))[_0x085e('0x72')](_0x085e('0x76'),_0x085e('0x55'))['from'](_0x085e('0x77'))['where'](_0x085e('0x78'))['where'](_0x085e('0x79'),_0x4c12aa['CmListId']['toString']())[_0x085e('0x3a')](_0x085e('0x7a')))[_0x085e('0x75')]();}_0x57a741[_0x085e('0x82')](db[_0x085e('0x83')][_0x085e('0x32')](_0x584776));}return BPromise[_0x085e('0x84')](_0x57a741);}})['then'](function(){return _0x4ad0bb;})['then'](respondWithResult(_0x4d75d4,null))['catch'](handleError(_0x4d75d4,null));};exports[_0x085e('0x85')]=function(_0x2b82a7,_0x1ce355,_0x5a9026){return db[_0x085e('0x2e')]['find']({'where':{'id':_0x2b82a7[_0x085e('0x44')]['id']}})[_0x085e('0x24')](handleEntityNotFound(_0x1ce355,null))[_0x085e('0x24')](function(_0x1c1237){if(_0x1c1237){return _0x1c1237['removeLists'](_0x2b82a7[_0x085e('0x32')][_0x085e('0x66')]);}})['then'](function(_0x1076dd){if(_0x1076dd){return db[_0x085e('0x59')][_0x085e('0x25')]({'where':{'ListId':_0x2b82a7[_0x085e('0x32')][_0x085e('0x66')],'CampaignId':_0x2b82a7[_0x085e('0x44')]['id']}})[_0x085e('0x24')](function(){return _0x1076dd;});}})['then'](respondWithStatusCode(_0x1ce355,null))[_0x085e('0x49')](handleError(_0x1ce355,null));};exports[_0x085e('0x86')]=function(_0x5314a2,_0x34ae3c,_0x4c717f){var _0x39cc28={};var _0x57b6be={};var _0xe1050;var _0x2d642d;return db[_0x085e('0x2e')][_0x085e('0x5f')]({'where':{'id':_0x5314a2[_0x085e('0x44')]['id']}})[_0x085e('0x24')](handleEntityNotFound(_0x34ae3c,null))[_0x085e('0x24')](function(_0x3d586d){if(_0x3d586d){_0xe1050=_0x3d586d;_0x57b6be[_0x085e('0x31')]=_[_0x085e('0x45')](db[_0x085e('0x64')][_0x085e('0x46')]);_0x57b6be[_0x085e('0x32')]=_[_0x085e('0x45')](_0x5314a2[_0x085e('0x32')]);_0x57b6be['filters']=_[_0x085e('0x34')](_0x57b6be[_0x085e('0x31')],_0x57b6be['query']);_0x39cc28[_0x085e('0x36')]=_[_0x085e('0x34')](_0x57b6be[_0x085e('0x31')],qs[_0x085e('0x35')](_0x5314a2[_0x085e('0x32')][_0x085e('0x35')]));_0x39cc28['attributes']=_0x39cc28[_0x085e('0x36')]['length']?_0x39cc28[_0x085e('0x36')]:_0x57b6be['model'];_0x39cc28[_0x085e('0x5a')]=qs[_0x085e('0x39')](_0x5314a2['query'][_0x085e('0x39')]);_0x39cc28[_0x085e('0x3a')]=qs[_0x085e('0x33')](_[_0x085e('0x5b')](_0x5314a2['query'],_0x57b6be[_0x085e('0x33')]));if(_0x5314a2[_0x085e('0x32')][_0x085e('0x3b')]){_0x39cc28['where']=_[_0x085e('0x3c')](_0x39cc28['where'],{'$or':_[_0x085e('0x2d')](_0x39cc28[_0x085e('0x36')],function(_0x4f5b67){var _0x2ce799={};_0x2ce799[_0x4f5b67]={'$like':'%'+_0x5314a2['query'][_0x085e('0x3b')]+'%'};return _0x2ce799;})});}_0x39cc28=_[_0x085e('0x3c')]({},_0x39cc28,_0x5314a2[_0x085e('0x3f')]);return _0xe1050[_0x085e('0x86')](_0x39cc28);}})['then'](function(_0x3c43cc){if(_0x3c43cc){_0x2d642d=_0x3c43cc[_0x085e('0x52')];if(!_0x5314a2['query'][_0x085e('0x37')]('nolimit')){_0x39cc28[_0x085e('0x20')]=qs[_0x085e('0x20')](_0x5314a2['query']['limit']);_0x39cc28['offset']=qs[_0x085e('0x1e')](_0x5314a2['query'][_0x085e('0x1e')]);}return _0xe1050[_0x085e('0x86')](_0x39cc28);}})['then'](function(_0x1466f5){if(_0x1466f5){return _0x1466f5?{'count':_0x2d642d,'rows':_0x1466f5}:null;}})[_0x085e('0x24')](respondWithResult(_0x34ae3c,null))[_0x085e('0x49')](handleError(_0x34ae3c,null));};exports['addBlackLists']=function(_0x2d9a58,_0x3d8f1d,_0x4eab8e){var _0x19cf86,_0x35ddd8;return db['Campaign'][_0x085e('0x48')]({'where':{'id':_0x2d9a58['params']['id']}})[_0x085e('0x24')](handleEntityNotFound(_0x3d8f1d,null))[_0x085e('0x24')](function(_0x4d1a64){if(_0x4d1a64){_0x35ddd8=_0x4d1a64;return _0x4d1a64[_0x085e('0x87')](_0x2d9a58[_0x085e('0x4b')][_0x085e('0x66')],_[_0x085e('0x53')](_0x2d9a58[_0x085e('0x4b')],['ids','id'])||{});}return null;})[_0x085e('0x67')](function(_0x52b87a){var _0x1277b8;_0x19cf86=_0x52b87a||[];var _0x1b84b9=[];if(_0x52b87a){for(var _0x7f31be=0x0;_0x7f31be<_0x52b87a[_0x085e('0x52')];_0x7f31be+=0x1){var _0x503cbb=_0x52b87a[_0x7f31be][_0x085e('0x26')]({'plain':!![]});_0x1277b8=squel['insert']()[_0x085e('0x6b')](_0x085e('0x88'))[_0x085e('0x6d')]([_0x085e('0x6e'),_0x085e('0x73'),'ListId',_0x085e('0x5c'),_0x085e('0x54'),_0x085e('0x55')],squel[_0x085e('0x71')]()['field'](_0x085e('0x6e'),_0x085e('0x6e'))[_0x085e('0x72')]('id',_0x085e('0x73'))['field'](_0x503cbb[_0x085e('0x74')]['toString'](),'ListId')[_0x085e('0x72')](_0x2d9a58[_0x085e('0x44')]['id'][_0x085e('0x75')](),_0x085e('0x5c'))['field']('NOW()',_0x085e('0x54'))[_0x085e('0x72')](_0x085e('0x76'),_0x085e('0x55'))[_0x085e('0x80')](_0x085e('0x77'))[_0x085e('0x3a')]('deletedAt\x20IS\x20NULL')[_0x085e('0x3a')]('ListId\x20=\x20?',_0x503cbb[_0x085e('0x74')][_0x085e('0x75')]())[_0x085e('0x3a')](_0x085e('0x7a')))['toString']();_0x1b84b9[_0x085e('0x82')](db[_0x085e('0x83')][_0x085e('0x32')](_0x1277b8));}return BPromise[_0x085e('0x84')](_0x1b84b9);}})[_0x085e('0x24')](function(){return _0x19cf86;})[_0x085e('0x24')](respondWithResult(_0x3d8f1d,null))[_0x085e('0x49')](handleError(_0x3d8f1d,null));};exports[_0x085e('0x89')]=function(_0x4a86e5,_0x36256c,_0x58a5cc){return db['Campaign'][_0x085e('0x48')]({'where':{'id':_0x4a86e5[_0x085e('0x44')]['id']}})[_0x085e('0x24')](handleEntityNotFound(_0x36256c,null))[_0x085e('0x24')](function(_0x5efef2){if(_0x5efef2){return _0x5efef2[_0x085e('0x89')](_0x4a86e5[_0x085e('0x32')][_0x085e('0x66')]);}})[_0x085e('0x24')](function(_0x50e6ba){if(_0x50e6ba){return db['CmHopperBlack'][_0x085e('0x25')]({'where':{'ListId':_0x4a86e5[_0x085e('0x32')][_0x085e('0x66')],'CampaignId':_0x4a86e5[_0x085e('0x44')]['id']}})[_0x085e('0x24')](function(){return _0x50e6ba;});}})[_0x085e('0x24')](respondWithStatusCode(_0x36256c,null))[_0x085e('0x49')](handleError(_0x36256c,null));};
\ No newline at end of file
+var _0x7729=['to-csv','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','reject','save','then','UserProfileResource','destroy','error','stack','name','send','index','map','Campaign','rawAttributes','fieldName','type','keys','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','order','sort','where','pick','filter','merge','includeAll','findAll','rows','catch','params','options','find','create','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','IvrCampaigns','UserProfileSection','userProfileId','autoAssociation','clone','include','omit','createdAt','updatedAt','body','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','findOne','nolimit','CampaignId','CmHopper','getHopperHistories','CmHopperHistory','CmHopperFinal','getHopperBlacks','CmHopperBlack','getLists','CmList','addLists','ids','spread','dialCheckDuplicateType','insert','into','cm_hopper','ContactId','ListId','select','field','phone','NOW()','scheduledAt','toString','from','cm_contacts','deletedAt\x20IS\x20NULL','ListId\x20=\x20?','CmListId','phone\x20IS\x20NOT\x20NULL','COALESCE(calleridnum,\x27\x27)','cm_hopper_final','CampaignId\x20=\x20?','phone\x20NOT\x20IN\x20(?)','COALESCE(phone,\x27\x27)','onlyIfOpen','fromQuery','push','sequelize','all','removeLists','getBlackLists','addBlackLists','cm_hopper_black','removeBlackLists','rimraf','zip-dir','fast-json-patch','moment','bluebird','util','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js'];(function(_0x12aab8,_0x4f106a){var _0x34c906=function(_0x16b216){while(--_0x16b216){_0x12aab8['push'](_0x12aab8['shift']());}};_0x34c906(++_0x4f106a);}(_0x7729,0x187));var _0x9772=function(_0x291d64,_0x27e47a){_0x291d64=_0x291d64-0x0;var _0x4f35d6=_0x7729[_0x291d64];return _0x4f35d6;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x9772('0x0'));var zipdir=require(_0x9772('0x1'));var jsonpatch=require(_0x9772('0x2'));var rp=require('request-promise');var moment=require(_0x9772('0x3'));var BPromise=require(_0x9772('0x4'));var Mustache=require('mustache');var util=require(_0x9772('0x5'));var path=require('path');var sox=require(_0x9772('0x6'));var csv=require('to-csv');var ejs=require(_0x9772('0x7'));var fs=require('fs');var fs_extra=require(_0x9772('0x8'));var _=require(_0x9772('0x9'));var squel=require(_0x9772('0xa'));var crypto=require(_0x9772('0xb'));var jsforce=require(_0x9772('0xc'));var deskjs=require(_0x9772('0xd'));var toCsv=require(_0x9772('0xe'));var querystring=require(_0x9772('0xf'));var Papa=require(_0x9772('0x10'));var Redis=require(_0x9772('0x11'));var authService=require('../../components/auth/service');var qs=require(_0x9772('0x12'));var as=require(_0x9772('0x13'));var hardwareService=require(_0x9772('0x14'));var logger=require('../../config/logger')('api');var utils=require(_0x9772('0x15'));var config=require(_0x9772('0x16'));var licenseUtil=require(_0x9772('0x17'));var db=require(_0x9772('0x18'))['db'];function respondWithStatusCode(_0x521a52,_0x462ab8){_0x462ab8=_0x462ab8||0xcc;return function(_0x3d7e9e){if(_0x3d7e9e){return _0x521a52[_0x9772('0x19')](_0x462ab8);}return _0x521a52[_0x9772('0x1a')](_0x462ab8)[_0x9772('0x1b')]();};}function respondWithResult(_0x4d5015,_0x5dd7f8){_0x5dd7f8=_0x5dd7f8||0xc8;return function(_0x52485a){if(_0x52485a){return _0x4d5015[_0x9772('0x1a')](_0x5dd7f8)[_0x9772('0x1c')](_0x52485a);}};}function respondWithFilteredResult(_0x332964,_0x2fcf46){return function(_0x4b3b84){if(_0x4b3b84){var _0x3cc529=typeof _0x2fcf46[_0x9772('0x1d')]===_0x9772('0x1e')&&typeof _0x2fcf46[_0x9772('0x1f')]===_0x9772('0x1e');var _0x389a56=_0x4b3b84[_0x9772('0x20')];var _0x2f1179=_0x3cc529?0x0:_0x2fcf46['offset'];var _0xb66eb1=_0x3cc529?_0x4b3b84[_0x9772('0x20')]:_0x2fcf46[_0x9772('0x1d')]+_0x2fcf46[_0x9772('0x1f')];var _0x318acf;if(_0xb66eb1>=_0x389a56){_0xb66eb1=_0x389a56;_0x318acf=0xc8;}else{_0x318acf=0xce;}_0x332964[_0x9772('0x1a')](_0x318acf);return _0x332964[_0x9772('0x21')]('Content-Range',_0x2f1179+'-'+_0xb66eb1+'/'+_0x389a56)[_0x9772('0x1c')](_0x4b3b84);}return null;};}function patchUpdates(_0x300708){return function(_0x24f553){try{jsonpatch['apply'](_0x24f553,_0x300708,!![]);}catch(_0x4223ee){return BPromise[_0x9772('0x22')](_0x4223ee);}return _0x24f553[_0x9772('0x23')]();};}function saveUpdates(_0x1889f4,_0x5d4560){return function(_0x667c3a){if(_0x667c3a){return _0x667c3a['update'](_0x1889f4)[_0x9772('0x24')](function(_0x206d20){return _0x206d20;});}return null;};}function removeEntity(_0x44af39,_0x344582){return function(_0x3c559a){if(_0x3c559a){return _0x3c559a['destroy']()[_0x9772('0x24')](function(){var _0x138be8=_0x3c559a['get']({'plain':!![]});var _0x3283a8='IvrCampaigns';return db[_0x9772('0x25')][_0x9772('0x26')]({'where':{'type':_0x3283a8,'resourceId':_0x138be8['id']}})[_0x9772('0x24')](function(){return _0x3c559a;});})[_0x9772('0x24')](function(){_0x44af39[_0x9772('0x1a')](0xcc)[_0x9772('0x1b')]();});}};}function handleEntityNotFound(_0x5eac03,_0x53e3b5){return function(_0x261ac9){if(!_0x261ac9){_0x5eac03[_0x9772('0x19')](0x194);}return _0x261ac9;};}function handleError(_0x28e4d7,_0x21ca87){_0x21ca87=_0x21ca87||0x1f4;return function(_0x259b68){logger[_0x9772('0x27')](_0x259b68[_0x9772('0x28')]);if(_0x259b68[_0x9772('0x29')]){delete _0x259b68[_0x9772('0x29')];}_0x28e4d7[_0x9772('0x1a')](_0x21ca87)[_0x9772('0x2a')](_0x259b68);};}exports[_0x9772('0x2b')]=function(_0xee2046,_0x4ffc80){var _0x898847={},_0x2c7e35={},_0x3ec374={'count':0x0,'rows':[]};var _0x293d0a=_[_0x9772('0x2c')](db[_0x9772('0x2d')][_0x9772('0x2e')],function(_0x2b0b94){return{'name':_0x2b0b94[_0x9772('0x2f')],'type':_0x2b0b94[_0x9772('0x30')]['key']};});_0x2c7e35['model']=_['map'](_0x293d0a,_0x9772('0x29'));_0x2c7e35['query']=_[_0x9772('0x31')](_0xee2046[_0x9772('0x32')]);_0x2c7e35[_0x9772('0x33')]=_[_0x9772('0x34')](_0x2c7e35[_0x9772('0x35')],_0x2c7e35['query']);_0x898847[_0x9772('0x36')]=_[_0x9772('0x34')](_0x2c7e35['model'],qs[_0x9772('0x37')](_0xee2046[_0x9772('0x32')][_0x9772('0x37')]));_0x898847[_0x9772('0x36')]=_0x898847[_0x9772('0x36')][_0x9772('0x38')]?_0x898847[_0x9772('0x36')]:_0x2c7e35['model'];if(!_0xee2046[_0x9772('0x32')][_0x9772('0x39')]('nolimit')){_0x898847[_0x9772('0x1f')]=qs[_0x9772('0x1f')](_0xee2046[_0x9772('0x32')][_0x9772('0x1f')]);_0x898847['offset']=qs[_0x9772('0x1d')](_0xee2046[_0x9772('0x32')][_0x9772('0x1d')]);}_0x898847[_0x9772('0x3a')]=qs[_0x9772('0x3b')](_0xee2046[_0x9772('0x32')][_0x9772('0x3b')]);_0x898847[_0x9772('0x3c')]=qs[_0x9772('0x33')](_[_0x9772('0x3d')](_0xee2046[_0x9772('0x32')],_0x2c7e35[_0x9772('0x33')]),_0x293d0a);if(_0xee2046['query']['filter']){_0x898847[_0x9772('0x3c')]=_['merge'](_0x898847[_0x9772('0x3c')],{'$or':_[_0x9772('0x2c')](_0x293d0a,function(_0x4729c7){if(_0x4729c7['type']!=='VIRTUAL'){var _0x422eff={};_0x422eff[_0x4729c7[_0x9772('0x29')]]={'$like':'%'+_0xee2046[_0x9772('0x32')][_0x9772('0x3e')]+'%'};return _0x422eff;}})});}_0x898847=_[_0x9772('0x3f')]({},_0x898847,_0xee2046['options']);var _0x3b715a={'where':_0x898847['where']};return db[_0x9772('0x2d')]['count'](_0x3b715a)[_0x9772('0x24')](function(_0x2942ce){_0x3ec374['count']=_0x2942ce;if(_0xee2046[_0x9772('0x32')][_0x9772('0x40')]){_0x898847['include']=[{'all':!![]}];}return db[_0x9772('0x2d')][_0x9772('0x41')](_0x898847);})[_0x9772('0x24')](function(_0x9fcbae){_0x3ec374[_0x9772('0x42')]=_0x9fcbae;return _0x3ec374;})[_0x9772('0x24')](respondWithFilteredResult(_0x4ffc80,_0x898847))[_0x9772('0x43')](handleError(_0x4ffc80,null));};exports['show']=function(_0x357ab1,_0x10b926){var _0x38a90b={'raw':![],'where':{'id':_0x357ab1[_0x9772('0x44')]['id']}},_0x3f791e={};_0x3f791e[_0x9772('0x35')]=_['keys'](db[_0x9772('0x2d')][_0x9772('0x2e')]);_0x3f791e[_0x9772('0x32')]=_[_0x9772('0x31')](_0x357ab1[_0x9772('0x32')]);_0x3f791e['filters']=_['intersection'](_0x3f791e['model'],_0x3f791e[_0x9772('0x32')]);_0x38a90b[_0x9772('0x36')]=_['intersection'](_0x3f791e[_0x9772('0x35')],qs['fields'](_0x357ab1[_0x9772('0x32')]['fields']));_0x38a90b[_0x9772('0x36')]=_0x38a90b['attributes']['length']?_0x38a90b[_0x9772('0x36')]:_0x3f791e[_0x9772('0x35')];if(_0x357ab1[_0x9772('0x32')][_0x9772('0x40')]){_0x38a90b['include']=[{'all':!![]}];}_0x38a90b=_['merge']({},_0x38a90b,_0x357ab1[_0x9772('0x45')]);return db[_0x9772('0x2d')][_0x9772('0x46')](_0x38a90b)['then'](handleEntityNotFound(_0x10b926,null))[_0x9772('0x24')](respondWithResult(_0x10b926,null))[_0x9772('0x43')](handleError(_0x10b926,null));};exports['create']=function(_0x7e9dbd,_0x25a752){return db[_0x9772('0x2d')][_0x9772('0x47')](_0x7e9dbd['body'],{})[_0x9772('0x24')](function(_0x324104){var _0x304e03=_0x7e9dbd[_0x9772('0x48')][_0x9772('0x49')]({'plain':!![]});if(!_0x304e03)throw new Error(_0x9772('0x4a'));if(_0x304e03[_0x9772('0x4b')]===_0x9772('0x48')){var _0x4df0eb=_0x324104[_0x9772('0x49')]({'plain':!![]});var _0xf302ed=_0x9772('0x4c');return db[_0x9772('0x4d')][_0x9772('0x46')]({'where':{'name':_0xf302ed,'userProfileId':_0x304e03[_0x9772('0x4e')]},'raw':!![]})['then'](function(_0x27ca1b){if(_0x27ca1b&&_0x27ca1b[_0x9772('0x4f')]===0x0){return db[_0x9772('0x25')][_0x9772('0x47')]({'name':_0x4df0eb[_0x9772('0x29')],'resourceId':_0x4df0eb['id'],'type':_0x27ca1b[_0x9772('0x29')],'sectionId':_0x27ca1b['id']},{})[_0x9772('0x24')](function(){return _0x324104;});}else{return _0x324104;}})[_0x9772('0x43')](function(_0x5b7c71){logger[_0x9772('0x27')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x5b7c71);throw _0x5b7c71;});}return _0x324104;})['then'](respondWithResult(_0x25a752,0xc9))[_0x9772('0x43')](handleError(_0x25a752,null));};exports[_0x9772('0x50')]=function(_0x43f671,_0x531789){var _0x380b06={'where':{'id':_0x43f671[_0x9772('0x44')]['id']}},_0x5de24b={};_0x5de24b[_0x9772('0x35')]=_[_0x9772('0x31')](db['Campaign'][_0x9772('0x2e')]);_0x380b06[_0x9772('0x36')]=_[_0x9772('0x34')](_0x5de24b[_0x9772('0x35')],qs[_0x9772('0x37')](_0x43f671[_0x9772('0x32')][_0x9772('0x37')]));_0x380b06[_0x9772('0x36')]=_0x380b06[_0x9772('0x36')]['length']?_0x380b06[_0x9772('0x36')]:_0x5de24b[_0x9772('0x35')];if(_0x43f671['query'][_0x9772('0x40')]){_0x380b06[_0x9772('0x51')]=[{'all':!![]}];}_0x380b06=_[_0x9772('0x3f')]({},_0x380b06,_0x43f671[_0x9772('0x45')]);return db[_0x9772('0x2d')]['find'](_0x380b06)[_0x9772('0x24')](handleEntityNotFound(_0x531789,null))[_0x9772('0x24')](function(_0x502404){if(_0x502404){var _0x2fd144=_0x502404[_0x9772('0x49')]({'plain':!![]});_0x2fd144=qs[_0x9772('0x52')](_0x2fd144,['id',_0x9772('0x53'),_0x9772('0x54')]);_0x43f671[_0x9772('0x55')]=_[_0x9772('0x52')](_0x43f671['body'],['id',_0x9772('0x53'),_0x9772('0x54')]);return db[_0x9772('0x2d')][_0x9772('0x47')](_['merge'](_0x2fd144,_0x43f671[_0x9772('0x55')]),{'include':_0x43f671[_0x9772('0x32')][_0x9772('0x40')]?[{'all':!![]}]:undefined})['then'](function(_0x46c1cd){var _0x329c32=_0x43f671[_0x9772('0x48')][_0x9772('0x49')]({'plain':!![]});if(!_0x329c32)throw new Error(_0x9772('0x4a'));if(_0x329c32[_0x9772('0x4b')]==='user'){var _0x5945d7=_0x46c1cd[_0x9772('0x49')]({'plain':!![]});var _0x2289d8='IvrCampaigns';return db[_0x9772('0x4d')][_0x9772('0x46')]({'where':{'name':_0x2289d8,'userProfileId':_0x329c32['userProfileId']},'raw':!![]})[_0x9772('0x24')](function(_0x35c3ec){if(_0x35c3ec&&_0x35c3ec[_0x9772('0x4f')]===0x0){return db['UserProfileResource']['create']({'name':_0x5945d7[_0x9772('0x29')],'resourceId':_0x5945d7['id'],'type':_0x35c3ec['name'],'sectionId':_0x35c3ec['id']},{})[_0x9772('0x24')](function(){return _0x46c1cd;});}else{return _0x46c1cd;}})[_0x9772('0x43')](function(_0x529039){logger[_0x9772('0x27')](_0x9772('0x56'),_0x529039);throw _0x529039;});}return _0x46c1cd;});}})['then'](respondWithResult(_0x531789,0xc9))[_0x9772('0x43')](handleError(_0x531789,null));};exports[_0x9772('0x57')]=function(_0x4d07fc,_0x1996dd){if(_0x4d07fc['body']['id']){delete _0x4d07fc[_0x9772('0x55')]['id'];}return db[_0x9772('0x2d')][_0x9772('0x46')]({'where':{'id':_0x4d07fc[_0x9772('0x44')]['id']}})['then'](handleEntityNotFound(_0x1996dd,null))[_0x9772('0x24')](saveUpdates(_0x4d07fc[_0x9772('0x55')],null))[_0x9772('0x24')](respondWithResult(_0x1996dd,null))[_0x9772('0x43')](handleError(_0x1996dd,null));};exports['destroy']=function(_0x27ff53,_0xeb05d4){return db[_0x9772('0x2d')][_0x9772('0x46')]({'where':{'id':_0x27ff53['params']['id']}})['then'](handleEntityNotFound(_0xeb05d4,null))[_0x9772('0x24')](removeEntity(_0xeb05d4,null))['catch'](handleError(_0xeb05d4,null));};exports['getHoppers']=function(_0x39a7fd,_0x347857,_0x691d39){var _0x43a91a={'raw':!![],'where':{}};var _0x129d97={};var _0x438c37={'count':0x0,'rows':[]};return db['Campaign'][_0x9772('0x58')]({'where':{'id':_0x39a7fd['params']['id']}})['then'](handleEntityNotFound(_0x347857,null))['then'](function(_0x532da4){if(_0x532da4){_0x129d97[_0x9772('0x35')]=_[_0x9772('0x31')](db['CmHopper'][_0x9772('0x2e')]);_0x129d97[_0x9772('0x32')]=_[_0x9772('0x31')](_0x39a7fd[_0x9772('0x32')]);_0x129d97[_0x9772('0x33')]=_['intersection'](_0x129d97[_0x9772('0x35')],_0x129d97[_0x9772('0x32')]);_0x43a91a[_0x9772('0x36')]=_['intersection'](_0x129d97[_0x9772('0x35')],qs[_0x9772('0x37')](_0x39a7fd['query'][_0x9772('0x37')]));_0x43a91a['attributes']=_0x43a91a['attributes'][_0x9772('0x38')]?_0x43a91a[_0x9772('0x36')]:_0x129d97['model'];if(!_0x39a7fd[_0x9772('0x32')][_0x9772('0x39')](_0x9772('0x59'))){_0x43a91a[_0x9772('0x1f')]=qs[_0x9772('0x1f')](_0x39a7fd[_0x9772('0x32')][_0x9772('0x1f')]);_0x43a91a[_0x9772('0x1d')]=qs[_0x9772('0x1d')](_0x39a7fd[_0x9772('0x32')][_0x9772('0x1d')]);}_0x43a91a[_0x9772('0x3a')]=qs[_0x9772('0x3b')](_0x39a7fd[_0x9772('0x32')]['sort']);_0x43a91a['where']=qs[_0x9772('0x33')](_[_0x9772('0x3d')](_0x39a7fd['query'],_0x129d97[_0x9772('0x33')]));_0x43a91a[_0x9772('0x3c')][_0x9772('0x5a')]=_0x532da4['id'];if(_0x39a7fd[_0x9772('0x32')][_0x9772('0x3e')]){_0x43a91a[_0x9772('0x3c')]=_['merge'](_0x43a91a[_0x9772('0x3c')],{'$or':_[_0x9772('0x2c')](_0x43a91a['attributes'],function(_0x2d2358){var _0x300e26={};_0x300e26[_0x2d2358]={'$like':'%'+_0x39a7fd[_0x9772('0x32')][_0x9772('0x3e')]+'%'};return _0x300e26;})});}_0x43a91a=_[_0x9772('0x3f')]({},_0x43a91a,_0x39a7fd['options']);return db['CmHopper'][_0x9772('0x20')]({'where':_0x43a91a['where']})['then'](function(_0x5af583){_0x438c37[_0x9772('0x20')]=_0x5af583;if(_0x39a7fd[_0x9772('0x32')][_0x9772('0x40')]){_0x43a91a[_0x9772('0x51')]=[{'all':!![]}];}return db[_0x9772('0x5b')][_0x9772('0x41')](_0x43a91a);})[_0x9772('0x24')](function(_0x2185a8){_0x438c37['rows']=_0x2185a8;return _0x438c37;});}})[_0x9772('0x24')](respondWithFilteredResult(_0x347857,_0x43a91a))[_0x9772('0x43')](handleError(_0x347857,null));};exports[_0x9772('0x5c')]=function(_0x166ee0,_0x50f38e,_0x5081bf){var _0x1ca6ab={'raw':!![],'where':{}};var _0x96f25c={};var _0x29358d={'count':0x0,'rows':[]};return db['Campaign'][_0x9772('0x58')]({'where':{'id':_0x166ee0[_0x9772('0x44')]['id']}})['then'](handleEntityNotFound(_0x50f38e,null))[_0x9772('0x24')](function(_0x5a511a){if(_0x5a511a){_0x96f25c[_0x9772('0x35')]=_['keys'](db['CmHopperHistory'][_0x9772('0x2e')]);_0x96f25c[_0x9772('0x32')]=_[_0x9772('0x31')](_0x166ee0['query']);_0x96f25c[_0x9772('0x33')]=_[_0x9772('0x34')](_0x96f25c[_0x9772('0x35')],_0x96f25c[_0x9772('0x32')]);_0x1ca6ab[_0x9772('0x36')]=_[_0x9772('0x34')](_0x96f25c[_0x9772('0x35')],qs[_0x9772('0x37')](_0x166ee0[_0x9772('0x32')][_0x9772('0x37')]));_0x1ca6ab[_0x9772('0x36')]=_0x1ca6ab[_0x9772('0x36')][_0x9772('0x38')]?_0x1ca6ab[_0x9772('0x36')]:_0x96f25c[_0x9772('0x35')];if(!_0x166ee0['query'][_0x9772('0x39')](_0x9772('0x59'))){_0x1ca6ab[_0x9772('0x1f')]=qs[_0x9772('0x1f')](_0x166ee0[_0x9772('0x32')][_0x9772('0x1f')]);_0x1ca6ab[_0x9772('0x1d')]=qs['offset'](_0x166ee0['query'][_0x9772('0x1d')]);}_0x1ca6ab[_0x9772('0x3a')]=qs[_0x9772('0x3b')](_0x166ee0[_0x9772('0x32')][_0x9772('0x3b')]);_0x1ca6ab[_0x9772('0x3c')]=qs[_0x9772('0x33')](_['pick'](_0x166ee0['query'],_0x96f25c[_0x9772('0x33')]));_0x1ca6ab['where'][_0x9772('0x5a')]=_0x5a511a['id'];if(_0x166ee0[_0x9772('0x32')]['filter']){_0x1ca6ab[_0x9772('0x3c')]=_['merge'](_0x1ca6ab[_0x9772('0x3c')],{'$or':_['map'](_0x1ca6ab[_0x9772('0x36')],function(_0x4d0bca){var _0x4e4cc6={};_0x4e4cc6[_0x4d0bca]={'$like':'%'+_0x166ee0[_0x9772('0x32')][_0x9772('0x3e')]+'%'};return _0x4e4cc6;})});}_0x1ca6ab=_[_0x9772('0x3f')]({},_0x1ca6ab,_0x166ee0[_0x9772('0x45')]);return db[_0x9772('0x5d')][_0x9772('0x20')]({'where':_0x1ca6ab[_0x9772('0x3c')]})[_0x9772('0x24')](function(_0x575641){_0x29358d[_0x9772('0x20')]=_0x575641;if(_0x166ee0[_0x9772('0x32')][_0x9772('0x40')]){_0x1ca6ab['include']=[{'all':!![]}];}return db[_0x9772('0x5d')][_0x9772('0x41')](_0x1ca6ab);})[_0x9772('0x24')](function(_0x2058b6){_0x29358d[_0x9772('0x42')]=_0x2058b6;return _0x29358d;});}})[_0x9772('0x24')](respondWithFilteredResult(_0x50f38e,_0x1ca6ab))['catch'](handleError(_0x50f38e,null));};exports['getHopperFinals']=function(_0x4d4259,_0x2b49ea,_0x56079a){var _0x5c23a1={'raw':!![],'where':{}};var _0x556685={};var _0x19be3d={'count':0x0,'rows':[]};return db[_0x9772('0x2d')][_0x9772('0x58')]({'where':{'id':_0x4d4259[_0x9772('0x44')]['id']}})['then'](handleEntityNotFound(_0x2b49ea,null))[_0x9772('0x24')](function(_0x47ab52){if(_0x47ab52){_0x556685[_0x9772('0x35')]=_[_0x9772('0x31')](db[_0x9772('0x5e')]['rawAttributes']);_0x556685['query']=_[_0x9772('0x31')](_0x4d4259[_0x9772('0x32')]);_0x556685[_0x9772('0x33')]=_[_0x9772('0x34')](_0x556685[_0x9772('0x35')],_0x556685['query']);_0x5c23a1[_0x9772('0x36')]=_[_0x9772('0x34')](_0x556685[_0x9772('0x35')],qs[_0x9772('0x37')](_0x4d4259['query'][_0x9772('0x37')]));_0x5c23a1[_0x9772('0x36')]=_0x5c23a1[_0x9772('0x36')]['length']?_0x5c23a1[_0x9772('0x36')]:_0x556685[_0x9772('0x35')];if(!_0x4d4259[_0x9772('0x32')]['hasOwnProperty'](_0x9772('0x59'))){_0x5c23a1[_0x9772('0x1f')]=qs[_0x9772('0x1f')](_0x4d4259[_0x9772('0x32')][_0x9772('0x1f')]);_0x5c23a1[_0x9772('0x1d')]=qs[_0x9772('0x1d')](_0x4d4259[_0x9772('0x32')][_0x9772('0x1d')]);}_0x5c23a1[_0x9772('0x3a')]=qs['sort'](_0x4d4259[_0x9772('0x32')][_0x9772('0x3b')]);_0x5c23a1[_0x9772('0x3c')]=qs[_0x9772('0x33')](_['pick'](_0x4d4259[_0x9772('0x32')],_0x556685[_0x9772('0x33')]));_0x5c23a1['where'][_0x9772('0x5a')]=_0x47ab52['id'];if(_0x4d4259[_0x9772('0x32')][_0x9772('0x3e')]){_0x5c23a1[_0x9772('0x3c')]=_[_0x9772('0x3f')](_0x5c23a1[_0x9772('0x3c')],{'$or':_[_0x9772('0x2c')](_0x5c23a1[_0x9772('0x36')],function(_0x33b1d9){var _0x46a8e0={};_0x46a8e0[_0x33b1d9]={'$like':'%'+_0x4d4259['query'][_0x9772('0x3e')]+'%'};return _0x46a8e0;})});}_0x5c23a1=_[_0x9772('0x3f')]({},_0x5c23a1,_0x4d4259[_0x9772('0x45')]);return db['CmHopperFinal'][_0x9772('0x20')]({'where':_0x5c23a1[_0x9772('0x3c')]})[_0x9772('0x24')](function(_0x1aca83){_0x19be3d[_0x9772('0x20')]=_0x1aca83;if(_0x4d4259[_0x9772('0x32')][_0x9772('0x40')]){_0x5c23a1['include']=[{'all':!![]}];}return db[_0x9772('0x5e')][_0x9772('0x41')](_0x5c23a1);})[_0x9772('0x24')](function(_0xf360a1){_0x19be3d[_0x9772('0x42')]=_0xf360a1;return _0x19be3d;});}})[_0x9772('0x24')](respondWithFilteredResult(_0x2b49ea,_0x5c23a1))[_0x9772('0x43')](handleError(_0x2b49ea,null));};exports[_0x9772('0x5f')]=function(_0x28e818,_0x3ea013,_0x11d6a0){var _0x1ba958={'raw':!![],'where':{}};var _0xcb2977={};var _0xb6acc0={'count':0x0,'rows':[]};return db['Campaign'][_0x9772('0x58')]({'where':{'id':_0x28e818[_0x9772('0x44')]['id']}})[_0x9772('0x24')](handleEntityNotFound(_0x3ea013,null))[_0x9772('0x24')](function(_0x1e63fc){if(_0x1e63fc){_0xcb2977['model']=_[_0x9772('0x31')](db[_0x9772('0x60')][_0x9772('0x2e')]);_0xcb2977[_0x9772('0x32')]=_['keys'](_0x28e818[_0x9772('0x32')]);_0xcb2977[_0x9772('0x33')]=_[_0x9772('0x34')](_0xcb2977[_0x9772('0x35')],_0xcb2977[_0x9772('0x32')]);_0x1ba958['attributes']=_[_0x9772('0x34')](_0xcb2977[_0x9772('0x35')],qs[_0x9772('0x37')](_0x28e818[_0x9772('0x32')]['fields']));_0x1ba958[_0x9772('0x36')]=_0x1ba958[_0x9772('0x36')][_0x9772('0x38')]?_0x1ba958[_0x9772('0x36')]:_0xcb2977[_0x9772('0x35')];if(!_0x28e818['query'][_0x9772('0x39')](_0x9772('0x59'))){_0x1ba958[_0x9772('0x1f')]=qs[_0x9772('0x1f')](_0x28e818[_0x9772('0x32')][_0x9772('0x1f')]);_0x1ba958[_0x9772('0x1d')]=qs[_0x9772('0x1d')](_0x28e818['query']['offset']);}_0x1ba958[_0x9772('0x3a')]=qs[_0x9772('0x3b')](_0x28e818[_0x9772('0x32')][_0x9772('0x3b')]);_0x1ba958[_0x9772('0x3c')]=qs[_0x9772('0x33')](_[_0x9772('0x3d')](_0x28e818[_0x9772('0x32')],_0xcb2977[_0x9772('0x33')]));_0x1ba958[_0x9772('0x3c')][_0x9772('0x5a')]=_0x1e63fc['id'];if(_0x28e818[_0x9772('0x32')]['filter']){_0x1ba958[_0x9772('0x3c')]=_['merge'](_0x1ba958[_0x9772('0x3c')],{'$or':_['map'](_0x1ba958[_0x9772('0x36')],function(_0x3619f7){var _0x2df888={};_0x2df888[_0x3619f7]={'$like':'%'+_0x28e818[_0x9772('0x32')][_0x9772('0x3e')]+'%'};return _0x2df888;})});}_0x1ba958=_[_0x9772('0x3f')]({},_0x1ba958,_0x28e818[_0x9772('0x45')]);return db[_0x9772('0x60')][_0x9772('0x20')]({'where':_0x1ba958['where']})[_0x9772('0x24')](function(_0x41e359){_0xb6acc0[_0x9772('0x20')]=_0x41e359;if(_0x28e818[_0x9772('0x32')][_0x9772('0x40')]){_0x1ba958[_0x9772('0x51')]=[{'all':!![]}];}return db[_0x9772('0x60')][_0x9772('0x41')](_0x1ba958);})[_0x9772('0x24')](function(_0x31ac5d){_0xb6acc0[_0x9772('0x42')]=_0x31ac5d;return _0xb6acc0;});}})[_0x9772('0x24')](respondWithFilteredResult(_0x3ea013,_0x1ba958))['catch'](handleError(_0x3ea013,null));};exports[_0x9772('0x61')]=function(_0x3be062,_0x4304e7,_0x3d9398){var _0x31ec61={};var _0x1d4c83={};var _0x4cfa4f;var _0x52cb2a;return db[_0x9772('0x2d')][_0x9772('0x58')]({'where':{'id':_0x3be062[_0x9772('0x44')]['id']}})[_0x9772('0x24')](handleEntityNotFound(_0x4304e7,null))[_0x9772('0x24')](function(_0x4a2f35){if(_0x4a2f35){_0x4cfa4f=_0x4a2f35;_0x1d4c83[_0x9772('0x35')]=_[_0x9772('0x31')](db[_0x9772('0x62')]['rawAttributes']);_0x1d4c83[_0x9772('0x32')]=_[_0x9772('0x31')](_0x3be062[_0x9772('0x32')]);_0x1d4c83[_0x9772('0x33')]=_[_0x9772('0x34')](_0x1d4c83[_0x9772('0x35')],_0x1d4c83[_0x9772('0x32')]);_0x31ec61['attributes']=_['intersection'](_0x1d4c83['model'],qs[_0x9772('0x37')](_0x3be062[_0x9772('0x32')][_0x9772('0x37')]));_0x31ec61['attributes']=_0x31ec61['attributes'][_0x9772('0x38')]?_0x31ec61[_0x9772('0x36')]:_0x1d4c83[_0x9772('0x35')];_0x31ec61[_0x9772('0x3a')]=qs['sort'](_0x3be062[_0x9772('0x32')][_0x9772('0x3b')]);_0x31ec61[_0x9772('0x3c')]=qs['filters'](_[_0x9772('0x3d')](_0x3be062[_0x9772('0x32')],_0x1d4c83[_0x9772('0x33')]));if(_0x3be062['query'][_0x9772('0x3e')]){_0x31ec61[_0x9772('0x3c')]=_[_0x9772('0x3f')](_0x31ec61['where'],{'$or':_[_0x9772('0x2c')](_0x31ec61[_0x9772('0x36')],function(_0x131950){var _0x304c18={};_0x304c18[_0x131950]={'$like':'%'+_0x3be062['query'][_0x9772('0x3e')]+'%'};return _0x304c18;})});}_0x31ec61=_[_0x9772('0x3f')]({},_0x31ec61,_0x3be062[_0x9772('0x45')]);return _0x4cfa4f[_0x9772('0x61')](_0x31ec61);}})[_0x9772('0x24')](function(_0x22d57b){if(_0x22d57b){_0x52cb2a=_0x22d57b['length'];if(!_0x3be062[_0x9772('0x32')][_0x9772('0x39')](_0x9772('0x59'))){_0x31ec61[_0x9772('0x1f')]=qs['limit'](_0x3be062['query'][_0x9772('0x1f')]);_0x31ec61[_0x9772('0x1d')]=qs['offset'](_0x3be062[_0x9772('0x32')][_0x9772('0x1d')]);}return _0x4cfa4f[_0x9772('0x61')](_0x31ec61);}})[_0x9772('0x24')](function(_0x4580b4){if(_0x4580b4){return _0x4580b4?{'count':_0x52cb2a,'rows':_0x4580b4}:null;}})[_0x9772('0x24')](respondWithResult(_0x4304e7,null))[_0x9772('0x43')](handleError(_0x4304e7,null));};exports['addLists']=function(_0x12ab8c,_0x5f0040,_0x30ec3a){var _0x1941a8,_0x18418c;return db[_0x9772('0x2d')][_0x9772('0x46')]({'where':{'id':_0x12ab8c[_0x9772('0x44')]['id']}})[_0x9772('0x24')](handleEntityNotFound(_0x5f0040,null))[_0x9772('0x24')](function(_0x2361cc){if(_0x2361cc){_0x18418c=_0x2361cc;return _0x2361cc[_0x9772('0x63')](_0x12ab8c[_0x9772('0x55')]['ids'],_['omit'](_0x12ab8c[_0x9772('0x55')],[_0x9772('0x64'),'id'])||{});}return null;})[_0x9772('0x65')](function(_0x6c159a){var _0x4a656c;_0x1941a8=_0x6c159a||[];var _0xdea99f=[];if(_0x6c159a){for(var _0x2edae0=0x0;_0x2edae0<_0x6c159a[_0x9772('0x38')];_0x2edae0+=0x1){var _0x2d9ae6=_0x6c159a[_0x2edae0][_0x9772('0x49')]({'plain':!![]});_0x18418c[_0x9772('0x66')]=_0x12ab8c[_0x9772('0x55')][_0x9772('0x66')]?_0x12ab8c['body'][_0x9772('0x66')]:_0x18418c[_0x9772('0x66')];switch(_0x18418c[_0x9772('0x66')]){case'always':_0x4a656c=squel[_0x9772('0x67')]()[_0x9772('0x68')](_0x9772('0x69'))['fromQuery'](['phone','scheduledAt',_0x9772('0x6a'),_0x9772('0x6b'),_0x9772('0x5a'),_0x9772('0x53'),_0x9772('0x54')],squel[_0x9772('0x6c')]()[_0x9772('0x6d')]('phone',_0x9772('0x6e'))[_0x9772('0x6d')](_0x9772('0x6f'),_0x9772('0x70'))[_0x9772('0x6d')]('id',_0x9772('0x6a'))[_0x9772('0x6d')](_0x2d9ae6['CmListId'][_0x9772('0x71')](),'ListId')[_0x9772('0x6d')](_0x12ab8c['params']['id'][_0x9772('0x71')](),_0x9772('0x5a'))[_0x9772('0x6d')](_0x9772('0x6f'),'createdAt')[_0x9772('0x6d')](_0x9772('0x6f'),_0x9772('0x54'))[_0x9772('0x72')](_0x9772('0x73'))['where'](_0x9772('0x74'))['where'](_0x9772('0x75'),_0x2d9ae6[_0x9772('0x76')][_0x9772('0x71')]())[_0x9772('0x3c')](_0x9772('0x77'))['where']('phone\x20NOT\x20IN\x20(?)',squel['select']()['field'](_0x9772('0x78'))[_0x9772('0x72')](_0x9772('0x79'))[_0x9772('0x3c')](_0x9772('0x7a'),_0x12ab8c['params']['id']['toString']()))['where'](_0x9772('0x7b'),squel['select']()[_0x9772('0x6d')](_0x9772('0x7c'))[_0x9772('0x72')]('cm_hopper')[_0x9772('0x3c')]('CampaignId\x20=\x20?',_0x12ab8c[_0x9772('0x44')]['id'][_0x9772('0x71')]())))[_0x9772('0x71')]();break;case _0x9772('0x7d'):_0x4a656c=squel[_0x9772('0x67')]()['into'](_0x9772('0x69'))[_0x9772('0x7e')]([_0x9772('0x6e'),_0x9772('0x70'),_0x9772('0x6a'),_0x9772('0x6b'),'CampaignId',_0x9772('0x53'),_0x9772('0x54')],squel[_0x9772('0x6c')]()[_0x9772('0x6d')](_0x9772('0x6e'),_0x9772('0x6e'))[_0x9772('0x6d')](_0x9772('0x6f'),'scheduledAt')['field']('id','ContactId')[_0x9772('0x6d')](_0x2d9ae6[_0x9772('0x76')][_0x9772('0x71')](),_0x9772('0x6b'))[_0x9772('0x6d')](_0x12ab8c[_0x9772('0x44')]['id'][_0x9772('0x71')](),_0x9772('0x5a'))[_0x9772('0x6d')](_0x9772('0x6f'),_0x9772('0x53'))[_0x9772('0x6d')]('NOW()',_0x9772('0x54'))[_0x9772('0x72')](_0x9772('0x73'))[_0x9772('0x3c')]('deletedAt\x20IS\x20NULL')['where'](_0x9772('0x75'),_0x2d9ae6[_0x9772('0x76')][_0x9772('0x71')]())[_0x9772('0x3c')]('phone\x20IS\x20NOT\x20NULL')[_0x9772('0x3c')]('phone\x20NOT\x20IN\x20(?)',squel[_0x9772('0x6c')]()['field'](_0x9772('0x7c'))['from'](_0x9772('0x69'))[_0x9772('0x3c')](_0x9772('0x7a'),_0x12ab8c['params']['id'][_0x9772('0x71')]())))[_0x9772('0x71')]();break;default:_0x4a656c=squel['insert']()[_0x9772('0x68')]('cm_hopper')['fromQuery']([_0x9772('0x6e'),_0x9772('0x70'),'ContactId',_0x9772('0x6b'),_0x9772('0x5a'),_0x9772('0x53'),_0x9772('0x54')],squel[_0x9772('0x6c')]()[_0x9772('0x6d')](_0x9772('0x6e'),_0x9772('0x6e'))[_0x9772('0x6d')](_0x9772('0x6f'),_0x9772('0x70'))[_0x9772('0x6d')]('id',_0x9772('0x6a'))[_0x9772('0x6d')](_0x2d9ae6[_0x9772('0x76')]['toString'](),_0x9772('0x6b'))[_0x9772('0x6d')](_0x12ab8c['params']['id'][_0x9772('0x71')](),'CampaignId')['field'](_0x9772('0x6f'),_0x9772('0x53'))[_0x9772('0x6d')](_0x9772('0x6f'),_0x9772('0x54'))['from'](_0x9772('0x73'))['where'](_0x9772('0x74'))[_0x9772('0x3c')](_0x9772('0x75'),_0x2d9ae6['CmListId']['toString']())[_0x9772('0x3c')](_0x9772('0x77')))['toString']();}_0xdea99f[_0x9772('0x7f')](db[_0x9772('0x80')][_0x9772('0x32')](_0x4a656c));}return BPromise[_0x9772('0x81')](_0xdea99f);}})[_0x9772('0x24')](function(){return _0x1941a8;})[_0x9772('0x24')](respondWithResult(_0x5f0040,null))[_0x9772('0x43')](handleError(_0x5f0040,null));};exports[_0x9772('0x82')]=function(_0x376bb6,_0x44fce7,_0x4333d1){return db['Campaign'][_0x9772('0x46')]({'where':{'id':_0x376bb6[_0x9772('0x44')]['id']}})[_0x9772('0x24')](handleEntityNotFound(_0x44fce7,null))['then'](function(_0x440e78){if(_0x440e78){return _0x440e78['removeLists'](_0x376bb6['query'][_0x9772('0x64')]);}})['then'](function(_0x5232ed){if(_0x5232ed){return db[_0x9772('0x5b')]['destroy']({'where':{'ListId':_0x376bb6[_0x9772('0x32')][_0x9772('0x64')],'CampaignId':_0x376bb6[_0x9772('0x44')]['id']}})[_0x9772('0x24')](function(){return _0x5232ed;});}})[_0x9772('0x24')](respondWithStatusCode(_0x44fce7,null))[_0x9772('0x43')](handleError(_0x44fce7,null));};exports['getBlackLists']=function(_0x2e0a2c,_0x366474,_0x5b7ac2){var _0x3e4679={};var _0x5ea269={};var _0x42de7d;var _0x39a9b4;return db['Campaign'][_0x9772('0x58')]({'where':{'id':_0x2e0a2c[_0x9772('0x44')]['id']}})['then'](handleEntityNotFound(_0x366474,null))[_0x9772('0x24')](function(_0x56674e){if(_0x56674e){_0x42de7d=_0x56674e;_0x5ea269['model']=_['keys'](db[_0x9772('0x62')][_0x9772('0x2e')]);_0x5ea269[_0x9772('0x32')]=_[_0x9772('0x31')](_0x2e0a2c[_0x9772('0x32')]);_0x5ea269[_0x9772('0x33')]=_[_0x9772('0x34')](_0x5ea269[_0x9772('0x35')],_0x5ea269[_0x9772('0x32')]);_0x3e4679[_0x9772('0x36')]=_[_0x9772('0x34')](_0x5ea269[_0x9772('0x35')],qs[_0x9772('0x37')](_0x2e0a2c[_0x9772('0x32')][_0x9772('0x37')]));_0x3e4679[_0x9772('0x36')]=_0x3e4679[_0x9772('0x36')][_0x9772('0x38')]?_0x3e4679[_0x9772('0x36')]:_0x5ea269[_0x9772('0x35')];_0x3e4679[_0x9772('0x3a')]=qs['sort'](_0x2e0a2c[_0x9772('0x32')][_0x9772('0x3b')]);_0x3e4679[_0x9772('0x3c')]=qs[_0x9772('0x33')](_[_0x9772('0x3d')](_0x2e0a2c[_0x9772('0x32')],_0x5ea269[_0x9772('0x33')]));if(_0x2e0a2c[_0x9772('0x32')][_0x9772('0x3e')]){_0x3e4679['where']=_[_0x9772('0x3f')](_0x3e4679[_0x9772('0x3c')],{'$or':_['map'](_0x3e4679['attributes'],function(_0x158a79){var _0x44e1a0={};_0x44e1a0[_0x158a79]={'$like':'%'+_0x2e0a2c[_0x9772('0x32')]['filter']+'%'};return _0x44e1a0;})});}_0x3e4679=_['merge']({},_0x3e4679,_0x2e0a2c[_0x9772('0x45')]);return _0x42de7d[_0x9772('0x83')](_0x3e4679);}})[_0x9772('0x24')](function(_0xfd45ef){if(_0xfd45ef){_0x39a9b4=_0xfd45ef[_0x9772('0x38')];if(!_0x2e0a2c[_0x9772('0x32')][_0x9772('0x39')]('nolimit')){_0x3e4679[_0x9772('0x1f')]=qs[_0x9772('0x1f')](_0x2e0a2c['query'][_0x9772('0x1f')]);_0x3e4679['offset']=qs['offset'](_0x2e0a2c[_0x9772('0x32')][_0x9772('0x1d')]);}return _0x42de7d[_0x9772('0x83')](_0x3e4679);}})['then'](function(_0x3cb49d){if(_0x3cb49d){return _0x3cb49d?{'count':_0x39a9b4,'rows':_0x3cb49d}:null;}})[_0x9772('0x24')](respondWithResult(_0x366474,null))[_0x9772('0x43')](handleError(_0x366474,null));};exports['addBlackLists']=function(_0xac4220,_0x19e202,_0x3e8fcc){var _0x5dafc0,_0x2deaad;return db[_0x9772('0x2d')][_0x9772('0x46')]({'where':{'id':_0xac4220[_0x9772('0x44')]['id']}})['then'](handleEntityNotFound(_0x19e202,null))['then'](function(_0x4dcc27){if(_0x4dcc27){_0x2deaad=_0x4dcc27;return _0x4dcc27[_0x9772('0x84')](_0xac4220[_0x9772('0x55')][_0x9772('0x64')],_[_0x9772('0x52')](_0xac4220['body'],[_0x9772('0x64'),'id'])||{});}return null;})[_0x9772('0x65')](function(_0x4fb365){var _0x44624c;_0x5dafc0=_0x4fb365||[];var _0x2a3cfc=[];if(_0x4fb365){for(var _0x116471=0x0;_0x116471<_0x4fb365[_0x9772('0x38')];_0x116471+=0x1){var _0x5a4445=_0x4fb365[_0x116471]['get']({'plain':!![]});_0x44624c=squel[_0x9772('0x67')]()[_0x9772('0x68')](_0x9772('0x85'))[_0x9772('0x7e')]([_0x9772('0x6e'),_0x9772('0x6a'),_0x9772('0x6b'),'CampaignId',_0x9772('0x53'),_0x9772('0x54')],squel[_0x9772('0x6c')]()[_0x9772('0x6d')]('phone',_0x9772('0x6e'))[_0x9772('0x6d')]('id',_0x9772('0x6a'))[_0x9772('0x6d')](_0x5a4445[_0x9772('0x76')][_0x9772('0x71')](),_0x9772('0x6b'))[_0x9772('0x6d')](_0xac4220[_0x9772('0x44')]['id'][_0x9772('0x71')](),_0x9772('0x5a'))[_0x9772('0x6d')]('NOW()','createdAt')[_0x9772('0x6d')](_0x9772('0x6f'),_0x9772('0x54'))[_0x9772('0x72')]('cm_contacts')[_0x9772('0x3c')](_0x9772('0x74'))['where']('ListId\x20=\x20?',_0x5a4445['CmListId'][_0x9772('0x71')]())[_0x9772('0x3c')](_0x9772('0x77')))[_0x9772('0x71')]();_0x2a3cfc[_0x9772('0x7f')](db[_0x9772('0x80')][_0x9772('0x32')](_0x44624c));}return BPromise[_0x9772('0x81')](_0x2a3cfc);}})[_0x9772('0x24')](function(){return _0x5dafc0;})['then'](respondWithResult(_0x19e202,null))[_0x9772('0x43')](handleError(_0x19e202,null));};exports[_0x9772('0x86')]=function(_0x151a95,_0x56c69a,_0x99c251){return db[_0x9772('0x2d')][_0x9772('0x46')]({'where':{'id':_0x151a95[_0x9772('0x44')]['id']}})[_0x9772('0x24')](handleEntityNotFound(_0x56c69a,null))[_0x9772('0x24')](function(_0x311a4e){if(_0x311a4e){return _0x311a4e[_0x9772('0x86')](_0x151a95[_0x9772('0x32')][_0x9772('0x64')]);}})[_0x9772('0x24')](function(_0x3080fc){if(_0x3080fc){return db['CmHopperBlack'][_0x9772('0x26')]({'where':{'ListId':_0x151a95[_0x9772('0x32')]['ids'],'CampaignId':_0x151a95[_0x9772('0x44')]['id']}})[_0x9772('0x24')](function(){return _0x3080fc;});}})['then'](respondWithStatusCode(_0x56c69a,null))[_0x9772('0x43')](handleError(_0x56c69a,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9957=['exports','define','Campaign','lodash','util','../../config/logger','api','bluebird','request-promise','path','rimraf','./campaign.attributes'];(function(_0x42cae2,_0x284ef8){var _0x5f256f=function(_0x41abc8){while(--_0x41abc8){_0x42cae2['push'](_0x42cae2['shift']());}};_0x5f256f(++_0x284ef8);}(_0x9957,0x93));var _0x7995=function(_0x2f5ac5,_0x1ee939){_0x2f5ac5=_0x2f5ac5-0x0;var _0x37c9a8=_0x9957[_0x2f5ac5];return _0x37c9a8;};'use strict';var _=require(_0x7995('0x0'));var util=require(_0x7995('0x1'));var logger=require(_0x7995('0x2'))(_0x7995('0x3'));var moment=require('moment');var BPromise=require(_0x7995('0x4'));var rp=require(_0x7995('0x5'));var fs=require('fs');var path=require(_0x7995('0x6'));var rimraf=require(_0x7995('0x7'));var config=require('../../config/environment');var attributes=require(_0x7995('0x8'));module[_0x7995('0x9')]=function(_0x137b6b,_0x219534){return _0x137b6b[_0x7995('0xa')](_0x7995('0xb'),attributes,{'tableName':'campaigns','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x9957=['exports','define','Campaign','lodash','util','../../config/logger','api','bluebird','request-promise','path','rimraf','./campaign.attributes'];(function(_0x2adbeb,_0x5581be){var _0x5e18a6=function(_0x84e42b){while(--_0x84e42b){_0x2adbeb['push'](_0x2adbeb['shift']());}};_0x5e18a6(++_0x5581be);}(_0x9957,0x93));var _0x7995=function(_0x3947c9,_0x4d6c97){_0x3947c9=_0x3947c9-0x0;var _0x2e7871=_0x9957[_0x3947c9];return _0x2e7871;};'use strict';var _=require(_0x7995('0x0'));var util=require(_0x7995('0x1'));var logger=require(_0x7995('0x2'))(_0x7995('0x3'));var moment=require('moment');var BPromise=require(_0x7995('0x4'));var rp=require(_0x7995('0x5'));var fs=require('fs');var path=require(_0x7995('0x6'));var rimraf=require(_0x7995('0x7'));var config=require('../../config/environment');var attributes=require(_0x7995('0x8'));module[_0x7995('0x9')]=function(_0x137b6b,_0x219534){return _0x137b6b[_0x7995('0xa')](_0x7995('0xb'),attributes,{'tableName':'campaigns','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x96a2=['jayson/promise','client','http','request','info','request\x20sent','debug','Campaign,\x20%s,\x20%s,\x20%s','stringify','error','Campaign,\x20%s,\x20%s','message','GetCampaign','findAll','options','where','attributes','limit','include','map','model','catch','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment'];(function(_0x12c8f7,_0x38edf6){var _0x43c77a=function(_0x18cb2f){while(--_0x18cb2f){_0x12c8f7['push'](_0x12c8f7['shift']());}};_0x43c77a(++_0x38edf6);}(_0x96a2,0x96));var _0x296a=function(_0x3fddda,_0x4d0ca0){_0x3fddda=_0x3fddda-0x0;var _0x5ba097=_0x96a2[_0x3fddda];return _0x5ba097;};'use strict';var _=require(_0x296a('0x0'));var util=require('util');var moment=require(_0x296a('0x1'));var BPromise=require(_0x296a('0x2'));var rs=require(_0x296a('0x3'));var fs=require('fs');var Redis=require(_0x296a('0x4'));var db=require(_0x296a('0x5'))['db'];var utils=require(_0x296a('0x6'));var logger=require(_0x296a('0x7'))(_0x296a('0x8'));var config=require(_0x296a('0x9'));var jayson=require(_0x296a('0xa'));var client=jayson[_0x296a('0xb')][_0x296a('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x4eb919,_0x273b83,_0x3c3486){return new BPromise(function(_0x3a2b44,_0x17d4d2){return client[_0x296a('0xd')](_0x4eb919,_0x3c3486)['then'](function(_0x307644){logger[_0x296a('0xe')]('Campaign,\x20%s,\x20%s',_0x273b83,_0x296a('0xf'));logger[_0x296a('0x10')](_0x296a('0x11'),_0x273b83,_0x296a('0xf'),JSON[_0x296a('0x12')](_0x307644));if(_0x307644[_0x296a('0x13')]){if(_0x307644[_0x296a('0x13')]['code']===0x1f4){logger[_0x296a('0x13')](_0x296a('0x14'),_0x273b83,_0x307644[_0x296a('0x13')][_0x296a('0x15')]);return _0x17d4d2(_0x307644[_0x296a('0x13')]['message']);}logger[_0x296a('0x13')](_0x296a('0x14'),_0x273b83,_0x307644['error'][_0x296a('0x15')]);return _0x3a2b44(_0x307644[_0x296a('0x13')][_0x296a('0x15')]);}else{logger[_0x296a('0xe')](_0x296a('0x14'),_0x273b83,_0x296a('0xf'));_0x3a2b44(_0x307644['result'][_0x296a('0x15')]);}})['catch'](function(_0x55864e){logger['error'](_0x296a('0x14'),_0x273b83,_0x55864e);_0x17d4d2(_0x55864e);});});}exports[_0x296a('0x16')]=function(_0x2b82d6){var _0x55295f=this;return new Promise(function(_0x51ba98,_0x3e72fa){return db['Campaign'][_0x296a('0x17')]({'raw':_0x2b82d6[_0x296a('0x18')]?_0x2b82d6[_0x296a('0x18')]['raw']===undefined?!![]:![]:!![],'where':_0x2b82d6[_0x296a('0x18')]?_0x2b82d6[_0x296a('0x18')][_0x296a('0x19')]||null:null,'attributes':_0x2b82d6['options']?_0x2b82d6[_0x296a('0x18')][_0x296a('0x1a')]||null:null,'limit':_0x2b82d6['options']?_0x2b82d6['options'][_0x296a('0x1b')]||null:null,'include':_0x2b82d6[_0x296a('0x18')]?_0x2b82d6[_0x296a('0x18')][_0x296a('0x1c')]?_[_0x296a('0x1d')](_0x2b82d6[_0x296a('0x18')][_0x296a('0x1c')],function(_0x2cf007){return{'model':db[_0x2cf007[_0x296a('0x1e')]],'as':_0x2cf007['as'],'attributes':_0x2cf007[_0x296a('0x1a')],'include':_0x2cf007[_0x296a('0x1c')]?_[_0x296a('0x1d')](_0x2cf007[_0x296a('0x1c')],function(_0xf6b922){return{'model':db[_0xf6b922[_0x296a('0x1e')]],'as':_0xf6b922['as'],'attributes':_0xf6b922['attributes'],'include':_0xf6b922[_0x296a('0x1c')]?_[_0x296a('0x1d')](_0xf6b922['include'],function(_0x2c4bed){return{'model':db[_0x2c4bed[_0x296a('0x1e')]],'as':_0x2c4bed['as'],'attributes':_0x2c4bed[_0x296a('0x1a')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x24b280){logger[_0x296a('0xe')]('GetCampaign',_0x2b82d6);logger['debug'](_0x296a('0x16'),_0x2b82d6,JSON[_0x296a('0x12')](_0x24b280));_0x51ba98(_0x24b280);})[_0x296a('0x1f')](function(_0x583548){logger['error'](_0x296a('0x16'),_0x583548[_0x296a('0x15')],_0x2b82d6);_0x3e72fa(_0x55295f[_0x296a('0x13')](0x1f4,_0x583548[_0x296a('0x15')]));});});};
\ No newline at end of file
+var _0x303a=['lodash','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','request\x20sent','Campaign,\x20%s,\x20%s,\x20%s','stringify','error','code','Campaign,\x20%s,\x20%s','message','result','catch','GetCampaign','findAll','options','where','attributes','map','include','model'];(function(_0x2461c9,_0x186167){var _0x4d6d48=function(_0x1c837b){while(--_0x1c837b){_0x2461c9['push'](_0x2461c9['shift']());}};_0x4d6d48(++_0x186167);}(_0x303a,0x1a0));var _0xa303=function(_0xb6e257,_0x445cd7){_0xb6e257=_0xb6e257-0x0;var _0x33b778=_0x303a[_0xb6e257];return _0x33b778;};'use strict';var _=require(_0xa303('0x0'));var util=require('util');var moment=require(_0xa303('0x1'));var BPromise=require(_0xa303('0x2'));var rs=require(_0xa303('0x3'));var fs=require('fs');var Redis=require(_0xa303('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0xa303('0x5'));var logger=require(_0xa303('0x6'))(_0xa303('0x7'));var config=require(_0xa303('0x8'));var jayson=require(_0xa303('0x9'));var client=jayson[_0xa303('0xa')][_0xa303('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x3f61f1,_0x69b173,_0x5d95fd){return new BPromise(function(_0x51e1ee,_0x488c85){return client[_0xa303('0xc')](_0x3f61f1,_0x5d95fd)[_0xa303('0xd')](function(_0x5e2e48){logger[_0xa303('0xe')]('Campaign,\x20%s,\x20%s',_0x69b173,_0xa303('0xf'));logger['debug'](_0xa303('0x10'),_0x69b173,_0xa303('0xf'),JSON[_0xa303('0x11')](_0x5e2e48));if(_0x5e2e48[_0xa303('0x12')]){if(_0x5e2e48['error'][_0xa303('0x13')]===0x1f4){logger['error'](_0xa303('0x14'),_0x69b173,_0x5e2e48[_0xa303('0x12')][_0xa303('0x15')]);return _0x488c85(_0x5e2e48['error'][_0xa303('0x15')]);}logger[_0xa303('0x12')](_0xa303('0x14'),_0x69b173,_0x5e2e48[_0xa303('0x12')][_0xa303('0x15')]);return _0x51e1ee(_0x5e2e48[_0xa303('0x12')][_0xa303('0x15')]);}else{logger[_0xa303('0xe')]('Campaign,\x20%s,\x20%s',_0x69b173,_0xa303('0xf'));_0x51e1ee(_0x5e2e48[_0xa303('0x16')][_0xa303('0x15')]);}})[_0xa303('0x17')](function(_0x3e2813){logger[_0xa303('0x12')]('Campaign,\x20%s,\x20%s',_0x69b173,_0x3e2813);_0x488c85(_0x3e2813);});});}exports[_0xa303('0x18')]=function(_0x54ca49){var _0x1d2003=this;return new Promise(function(_0x4cf535,_0x4462be){return db['Campaign'][_0xa303('0x19')]({'raw':_0x54ca49[_0xa303('0x1a')]?_0x54ca49[_0xa303('0x1a')]['raw']===undefined?!![]:![]:!![],'where':_0x54ca49[_0xa303('0x1a')]?_0x54ca49[_0xa303('0x1a')][_0xa303('0x1b')]||null:null,'attributes':_0x54ca49['options']?_0x54ca49[_0xa303('0x1a')][_0xa303('0x1c')]||null:null,'limit':_0x54ca49[_0xa303('0x1a')]?_0x54ca49[_0xa303('0x1a')]['limit']||null:null,'include':_0x54ca49[_0xa303('0x1a')]?_0x54ca49[_0xa303('0x1a')]['include']?_[_0xa303('0x1d')](_0x54ca49[_0xa303('0x1a')][_0xa303('0x1e')],function(_0x122d1e){return{'model':db[_0x122d1e[_0xa303('0x1f')]],'as':_0x122d1e['as'],'attributes':_0x122d1e[_0xa303('0x1c')],'include':_0x122d1e[_0xa303('0x1e')]?_[_0xa303('0x1d')](_0x122d1e[_0xa303('0x1e')],function(_0x57d584){return{'model':db[_0x57d584['model']],'as':_0x57d584['as'],'attributes':_0x57d584['attributes'],'include':_0x57d584['include']?_['map'](_0x57d584[_0xa303('0x1e')],function(_0xc1fd3a){return{'model':db[_0xc1fd3a[_0xa303('0x1f')]],'as':_0xc1fd3a['as'],'attributes':_0xc1fd3a[_0xa303('0x1c')]};}):[]};}):[]};}):[]:[]})[_0xa303('0xd')](function(_0x48e79f){logger[_0xa303('0xe')](_0xa303('0x18'),_0x54ca49);logger['debug'](_0xa303('0x18'),_0x54ca49,JSON[_0xa303('0x11')](_0x48e79f));_0x4cf535(_0x48e79f);})[_0xa303('0x17')](function(_0x32dcfb){logger[_0xa303('0x12')](_0xa303('0x18'),_0x32dcfb[_0xa303('0x15')],_0x54ca49);_0x4462be(_0x1d2003[_0xa303('0x12')](0x1f4,_0x32dcfb[_0xa303('0x15')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x077a=['getHopperHistories','getHopperFinals','/:id/hopper_black','/:id/lists','getLists','/:id/blacklists','getBlackLists','post','create','/:id/clone','clone','addLists','put','/:id','update','delete','removeBlackLists','exports','multer','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','show','getHoppers','/:id/hopper_histories'];(function(_0x11d230,_0x4542ab){var _0x488064=function(_0x2f8f4f){while(--_0x2f8f4f){_0x11d230['push'](_0x11d230['shift']());}};_0x488064(++_0x4542ab);}(_0x077a,0x1f2));var _0xa077=function(_0x404bda,_0x1c2365){_0x404bda=_0x404bda-0x0;var _0x4b5a6e=_0x077a[_0x404bda];return _0x4b5a6e;};'use strict';var multer=require(_0xa077('0x0'));var util=require('util');var path=require(_0xa077('0x1'));var timeout=require(_0xa077('0x2'));var express=require(_0xa077('0x3'));var router=express[_0xa077('0x4')]();var fs_extra=require(_0xa077('0x5'));var auth=require(_0xa077('0x6'));var interaction=require(_0xa077('0x7'));var config=require(_0xa077('0x8'));var controller=require('./campaign.controller');router[_0xa077('0x9')]('/',auth[_0xa077('0xa')](),controller['index']);router['get']('/:id',auth[_0xa077('0xa')](),controller[_0xa077('0xb')]);router['get']('/:id/hoppers',auth[_0xa077('0xa')](),controller[_0xa077('0xc')]);router[_0xa077('0x9')](_0xa077('0xd'),auth[_0xa077('0xa')](),controller[_0xa077('0xe')]);router[_0xa077('0x9')]('/:id/hopper_finals',auth[_0xa077('0xa')](),controller[_0xa077('0xf')]);router[_0xa077('0x9')](_0xa077('0x10'),auth['isAuthenticated'](),controller['getHopperBlacks']);router[_0xa077('0x9')](_0xa077('0x11'),auth[_0xa077('0xa')](),controller[_0xa077('0x12')]);router[_0xa077('0x9')](_0xa077('0x13'),auth[_0xa077('0xa')](),controller[_0xa077('0x14')]);router[_0xa077('0x15')]('/',auth[_0xa077('0xa')](),controller[_0xa077('0x16')]);router[_0xa077('0x15')](_0xa077('0x17'),auth[_0xa077('0xa')](),controller[_0xa077('0x18')]);router[_0xa077('0x15')](_0xa077('0x11'),auth[_0xa077('0xa')](),controller[_0xa077('0x19')]);router[_0xa077('0x15')](_0xa077('0x13'),auth['isAuthenticated'](),controller['addBlackLists']);router[_0xa077('0x1a')](_0xa077('0x1b'),auth[_0xa077('0xa')](),controller[_0xa077('0x1c')]);router[_0xa077('0x1d')]('/:id',auth[_0xa077('0xa')](),controller['destroy']);router[_0xa077('0x1d')](_0xa077('0x11'),auth[_0xa077('0xa')](),controller['removeLists']);router[_0xa077('0x1d')](_0xa077('0x13'),auth[_0xa077('0xa')](),controller[_0xa077('0x1e')]);module[_0xa077('0x1f')]=router;
\ No newline at end of file
+var _0x6e12=['/:id/blacklists','getBlackLists','create','post','/:id/clone','clone','addLists','addBlackLists','update','delete','destroy','removeLists','removeBlackLists','exports','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./campaign.controller','isAuthenticated','index','get','/:id','show','/:id/hoppers','getHoppers','/:id/hopper_histories','getHopperHistories','/:id/hopper_finals','getHopperFinals','getHopperBlacks','/:id/lists','getLists'];(function(_0x369151,_0x179f72){var _0x4292d5=function(_0x330422){while(--_0x330422){_0x369151['push'](_0x369151['shift']());}};_0x4292d5(++_0x179f72);}(_0x6e12,0xf2));var _0x26e1=function(_0x26588e,_0x139d9d){_0x26588e=_0x26588e-0x0;var _0x5886ac=_0x6e12[_0x26588e];return _0x5886ac;};'use strict';var multer=require('multer');var util=require(_0x26e1('0x0'));var path=require(_0x26e1('0x1'));var timeout=require(_0x26e1('0x2'));var express=require(_0x26e1('0x3'));var router=express[_0x26e1('0x4')]();var fs_extra=require(_0x26e1('0x5'));var auth=require(_0x26e1('0x6'));var interaction=require(_0x26e1('0x7'));var config=require(_0x26e1('0x8'));var controller=require(_0x26e1('0x9'));router['get']('/',auth[_0x26e1('0xa')](),controller[_0x26e1('0xb')]);router[_0x26e1('0xc')](_0x26e1('0xd'),auth[_0x26e1('0xa')](),controller[_0x26e1('0xe')]);router['get'](_0x26e1('0xf'),auth['isAuthenticated'](),controller[_0x26e1('0x10')]);router['get'](_0x26e1('0x11'),auth[_0x26e1('0xa')](),controller[_0x26e1('0x12')]);router[_0x26e1('0xc')](_0x26e1('0x13'),auth[_0x26e1('0xa')](),controller[_0x26e1('0x14')]);router['get']('/:id/hopper_black',auth['isAuthenticated'](),controller[_0x26e1('0x15')]);router[_0x26e1('0xc')](_0x26e1('0x16'),auth['isAuthenticated'](),controller[_0x26e1('0x17')]);router[_0x26e1('0xc')](_0x26e1('0x18'),auth[_0x26e1('0xa')](),controller[_0x26e1('0x19')]);router['post']('/',auth[_0x26e1('0xa')](),controller[_0x26e1('0x1a')]);router[_0x26e1('0x1b')](_0x26e1('0x1c'),auth['isAuthenticated'](),controller[_0x26e1('0x1d')]);router[_0x26e1('0x1b')](_0x26e1('0x16'),auth['isAuthenticated'](),controller[_0x26e1('0x1e')]);router[_0x26e1('0x1b')](_0x26e1('0x18'),auth[_0x26e1('0xa')](),controller[_0x26e1('0x1f')]);router['put'](_0x26e1('0xd'),auth[_0x26e1('0xa')](),controller[_0x26e1('0x20')]);router[_0x26e1('0x21')](_0x26e1('0xd'),auth[_0x26e1('0xa')](),controller[_0x26e1('0x22')]);router[_0x26e1('0x21')](_0x26e1('0x16'),auth[_0x26e1('0xa')](),controller[_0x26e1('0x23')]);router[_0x26e1('0x21')]('/:id/blacklists',auth['isAuthenticated'](),controller[_0x26e1('0x24')]);module[_0x26e1('0x25')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x04b4=['key','exports','TEXT','STRING','getDataValue'];(function(_0x486398,_0x370d53){var _0x2d4bc5=function(_0x4013f9){while(--_0x4013f9){_0x486398['push'](_0x486398['shift']());}};_0x2d4bc5(++_0x370d53);}(_0x04b4,0x1c8));var _0x404b=function(_0x6e6fa2,_0x2c592c){_0x6e6fa2=_0x6e6fa2-0x0;var _0x5c619e=_0x04b4[_0x6e6fa2];return _0x5c619e;};'use strict';var Sequelize=require('sequelize');module[_0x404b('0x0')]={'key':{'type':Sequelize['STRING'],'allowNull':![]},'value':{'type':Sequelize[_0x404b('0x1')],'allowNull':![]},'description':{'type':Sequelize[_0x404b('0x2')]},'name':{'type':Sequelize['VIRTUAL'],'get':function(){return this[_0x404b('0x3')](_0x404b('0x4'));}}};
\ No newline at end of file
+var _0x1e5b=['STRING','TEXT','key','sequelize','exports'];(function(_0xba382f,_0x103ad2){var _0x139b7b=function(_0x537a1b){while(--_0x537a1b){_0xba382f['push'](_0xba382f['shift']());}};_0x139b7b(++_0x103ad2);}(_0x1e5b,0x17a));var _0xb1e5=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x1e5b[_0x3dd15e];return _0x231fd0;};'use strict';var Sequelize=require(_0xb1e5('0x0'));module[_0xb1e5('0x1')]={'key':{'type':Sequelize[_0xb1e5('0x2')],'allowNull':![]},'value':{'type':Sequelize[_0xb1e5('0x3')],'allowNull':![]},'description':{'type':Sequelize[_0xb1e5('0x2')]},'name':{'type':Sequelize['VIRTUAL'],'get':function(){return this['getDataValue'](_0xb1e5('0x4'));}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3feb=['sort','where','pick','filter','merge','options','includeAll','include','rows','show','params','find','catch','update','body','MailAccountId','SmsAccountId','OpenchannelAccountId','ChatWebsiteId','ValidationError','The\x20inserted\x20key\x20already\x20exists.','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','get','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','ejs','fs-extra','lodash','squel','crypto','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','set','apply','reject','destroy','then','CannedAnswers','UserProfileResource','error','stack','name','send','index','map','CannedAnswer','rawAttributes','fieldName','type','key','keys','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','limit'];(function(_0x1c9762,_0x553707){var _0x1b6eed=function(_0x2a882d){while(--_0x2a882d){_0x1c9762['push'](_0x1c9762['shift']());}};_0x1b6eed(++_0x553707);}(_0x3feb,0x12e));var _0xb3fe=function(_0x28be64,_0x48c7c5){_0x28be64=_0x28be64-0x0;var _0x3d92ec=_0x3feb[_0x28be64];return _0x3d92ec;};'use strict';var emlformat=require(_0xb3fe('0x0'));var rimraf=require(_0xb3fe('0x1'));var zipdir=require(_0xb3fe('0x2'));var jsonpatch=require(_0xb3fe('0x3'));var rp=require('request-promise');var moment=require(_0xb3fe('0x4'));var BPromise=require(_0xb3fe('0x5'));var Mustache=require(_0xb3fe('0x6'));var util=require(_0xb3fe('0x7'));var path=require(_0xb3fe('0x8'));var sox=require(_0xb3fe('0x9'));var csv=require('to-csv');var ejs=require(_0xb3fe('0xa'));var fs=require('fs');var fs_extra=require(_0xb3fe('0xb'));var _=require(_0xb3fe('0xc'));var squel=require(_0xb3fe('0xd'));var crypto=require(_0xb3fe('0xe'));var jsforce=require('jsforce');var deskjs=require(_0xb3fe('0xf'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xb3fe('0x10'));var Redis=require(_0xb3fe('0x11'));var authService=require(_0xb3fe('0x12'));var qs=require(_0xb3fe('0x13'));var as=require(_0xb3fe('0x14'));var hardwareService=require(_0xb3fe('0x15'));var logger=require(_0xb3fe('0x16'))('api');var utils=require('../../config/utils');var config=require(_0xb3fe('0x17'));var licenseUtil=require(_0xb3fe('0x18'));var db=require(_0xb3fe('0x19'))['db'];function respondWithStatusCode(_0x16c449,_0x2ad369){_0x2ad369=_0x2ad369||0xcc;return function(_0x231a6a){if(_0x231a6a){return _0x16c449[_0xb3fe('0x1a')](_0x2ad369);}return _0x16c449[_0xb3fe('0x1b')](_0x2ad369)[_0xb3fe('0x1c')]();};}function respondWithResult(_0x4ef6b9,_0x5270cc){_0x5270cc=_0x5270cc||0xc8;return function(_0xeab218){if(_0xeab218){return _0x4ef6b9['status'](_0x5270cc)[_0xb3fe('0x1d')](_0xeab218);}};}function respondWithFilteredResult(_0xbd43d9,_0x33fc7f){return function(_0x4f76a7){if(_0x4f76a7){var _0x4b13d=typeof _0x33fc7f[_0xb3fe('0x1e')]===_0xb3fe('0x1f')&&typeof _0x33fc7f['limit']===_0xb3fe('0x1f');var _0x17e320=_0x4f76a7['count'];var _0x2f6ad8=_0x4b13d?0x0:_0x33fc7f[_0xb3fe('0x1e')];var _0x48839a=_0x4b13d?_0x4f76a7[_0xb3fe('0x20')]:_0x33fc7f[_0xb3fe('0x1e')]+_0x33fc7f['limit'];var _0x588bad;if(_0x48839a>=_0x17e320){_0x48839a=_0x17e320;_0x588bad=0xc8;}else{_0x588bad=0xce;}_0xbd43d9[_0xb3fe('0x1b')](_0x588bad);return _0xbd43d9[_0xb3fe('0x21')]('Content-Range',_0x2f6ad8+'-'+_0x48839a+'/'+_0x17e320)[_0xb3fe('0x1d')](_0x4f76a7);}return null;};}function patchUpdates(_0x2c93ae){return function(_0x2db7d3){try{jsonpatch[_0xb3fe('0x22')](_0x2db7d3,_0x2c93ae,!![]);}catch(_0x1cce98){return BPromise[_0xb3fe('0x23')](_0x1cce98);}return _0x2db7d3['save']();};}function saveUpdates(_0x30b300,_0x27fa30){return function(_0x12914a){if(_0x12914a){return _0x12914a['update'](_0x30b300)['then'](function(_0x3b6ca3){return _0x3b6ca3;});}return null;};}function removeEntity(_0x4b0e1e,_0x2c360c){return function(_0x3fb1bf){if(_0x3fb1bf){return _0x3fb1bf[_0xb3fe('0x24')]()[_0xb3fe('0x25')](function(){var _0x37de9a=_0x3fb1bf['get']({'plain':!![]});var _0x2e85a2=_0xb3fe('0x26');return db[_0xb3fe('0x27')]['destroy']({'where':{'type':_0x2e85a2,'resourceId':_0x37de9a['id']}})['then'](function(){return _0x3fb1bf;});})[_0xb3fe('0x25')](function(){_0x4b0e1e[_0xb3fe('0x1b')](0xcc)[_0xb3fe('0x1c')]();});}};}function handleEntityNotFound(_0x2fcf17,_0x356ef8){return function(_0xf4f577){if(!_0xf4f577){_0x2fcf17[_0xb3fe('0x1a')](0x194);}return _0xf4f577;};}function handleError(_0x23e749,_0x2c83b9){_0x2c83b9=_0x2c83b9||0x1f4;return function(_0x1ee79e){logger[_0xb3fe('0x28')](_0x1ee79e[_0xb3fe('0x29')]);if(_0x1ee79e[_0xb3fe('0x2a')]){delete _0x1ee79e[_0xb3fe('0x2a')];}_0x23e749[_0xb3fe('0x1b')](_0x2c83b9)[_0xb3fe('0x2b')](_0x1ee79e);};}exports[_0xb3fe('0x2c')]=function(_0x49e001,_0x345600){var _0x5d9614={},_0x125589={},_0x2b75e3={'count':0x0,'rows':[]};var _0x1e48d1=_[_0xb3fe('0x2d')](db[_0xb3fe('0x2e')][_0xb3fe('0x2f')],function(_0x5f0bd4){return{'name':_0x5f0bd4[_0xb3fe('0x30')],'type':_0x5f0bd4[_0xb3fe('0x31')][_0xb3fe('0x32')]};});_0x125589['model']=_['map'](_0x1e48d1,'name');_0x125589['query']=_[_0xb3fe('0x33')](_0x49e001[_0xb3fe('0x34')]);_0x125589[_0xb3fe('0x35')]=_[_0xb3fe('0x36')](_0x125589[_0xb3fe('0x37')],_0x125589[_0xb3fe('0x34')]);_0x5d9614[_0xb3fe('0x38')]=_['intersection'](_0x125589[_0xb3fe('0x37')],qs[_0xb3fe('0x39')](_0x49e001[_0xb3fe('0x34')][_0xb3fe('0x39')]));_0x5d9614['attributes']=_0x5d9614['attributes'][_0xb3fe('0x3a')]?_0x5d9614[_0xb3fe('0x38')]:_0x125589[_0xb3fe('0x37')];if(!_0x49e001[_0xb3fe('0x34')][_0xb3fe('0x3b')](_0xb3fe('0x3c'))){_0x5d9614[_0xb3fe('0x3d')]=qs['limit'](_0x49e001[_0xb3fe('0x34')]['limit']);_0x5d9614[_0xb3fe('0x1e')]=qs[_0xb3fe('0x1e')](_0x49e001[_0xb3fe('0x34')][_0xb3fe('0x1e')]);}_0x5d9614['order']=qs[_0xb3fe('0x3e')](_0x49e001[_0xb3fe('0x34')][_0xb3fe('0x3e')]);_0x5d9614[_0xb3fe('0x3f')]=qs[_0xb3fe('0x35')](_[_0xb3fe('0x40')](_0x49e001['query'],_0x125589['filters']),_0x1e48d1);if(_0x49e001[_0xb3fe('0x34')][_0xb3fe('0x41')]){_0x5d9614['where']=_[_0xb3fe('0x42')](_0x5d9614[_0xb3fe('0x3f')],{'$or':[{'key':{'$like':'%'+_0x49e001[_0xb3fe('0x34')][_0xb3fe('0x41')]+'%'}},{'value':{'$like':'%'+_0x49e001[_0xb3fe('0x34')][_0xb3fe('0x41')]+'%'}}]});}_0x5d9614=_[_0xb3fe('0x42')]({},_0x5d9614,_0x49e001[_0xb3fe('0x43')]);var _0x430459={'where':_0x5d9614[_0xb3fe('0x3f')]};return db[_0xb3fe('0x2e')]['count'](_0x430459)[_0xb3fe('0x25')](function(_0x49a5da){_0x2b75e3[_0xb3fe('0x20')]=_0x49a5da;if(_0x49e001[_0xb3fe('0x34')][_0xb3fe('0x44')]){_0x5d9614[_0xb3fe('0x45')]=[{'all':!![]}];}return db[_0xb3fe('0x2e')]['findAll'](_0x5d9614);})[_0xb3fe('0x25')](function(_0x50db97){_0x2b75e3[_0xb3fe('0x46')]=_0x50db97;return _0x2b75e3;})[_0xb3fe('0x25')](respondWithFilteredResult(_0x345600,_0x5d9614))['catch'](handleError(_0x345600,null));};exports[_0xb3fe('0x47')]=function(_0x173ea3,_0x3cdb77){var _0x1435cb={'raw':!![],'where':{'id':_0x173ea3[_0xb3fe('0x48')]['id']}},_0x367c25={};_0x367c25[_0xb3fe('0x37')]=_[_0xb3fe('0x33')](db[_0xb3fe('0x2e')]['rawAttributes']);_0x367c25[_0xb3fe('0x34')]=_[_0xb3fe('0x33')](_0x173ea3[_0xb3fe('0x34')]);_0x367c25[_0xb3fe('0x35')]=_[_0xb3fe('0x36')](_0x367c25['model'],_0x367c25[_0xb3fe('0x34')]);_0x1435cb['attributes']=_[_0xb3fe('0x36')](_0x367c25[_0xb3fe('0x37')],qs[_0xb3fe('0x39')](_0x173ea3['query'][_0xb3fe('0x39')]));_0x1435cb[_0xb3fe('0x38')]=_0x1435cb[_0xb3fe('0x38')][_0xb3fe('0x3a')]?_0x1435cb['attributes']:_0x367c25[_0xb3fe('0x37')];if(_0x173ea3[_0xb3fe('0x34')]['includeAll']){_0x1435cb['include']=[{'all':!![]}];}_0x1435cb=_['merge']({},_0x1435cb,_0x173ea3[_0xb3fe('0x43')]);return db[_0xb3fe('0x2e')][_0xb3fe('0x49')](_0x1435cb)[_0xb3fe('0x25')](handleEntityNotFound(_0x3cdb77,null))['then'](respondWithResult(_0x3cdb77,null))[_0xb3fe('0x4a')](handleError(_0x3cdb77,null));};exports[_0xb3fe('0x4b')]=function(_0x137620,_0x1907d2){if(_0x137620['body']['id']){delete _0x137620[_0xb3fe('0x4c')]['id'];}return db['CannedAnswer'][_0xb3fe('0x49')]({'where':{'id':_0x137620['params']['id']}})[_0xb3fe('0x25')](handleEntityNotFound(_0x1907d2,null))[_0xb3fe('0x25')](saveUpdates(_0x137620['body'],null))['then'](respondWithResult(_0x1907d2,null))[_0xb3fe('0x4a')](handleError(_0x1907d2,null));};exports['destroy']=function(_0x3d695c,_0x305757){return db[_0xb3fe('0x2e')][_0xb3fe('0x49')]({'where':{'id':_0x3d695c[_0xb3fe('0x48')]['id']}})[_0xb3fe('0x25')](handleEntityNotFound(_0x305757,null))[_0xb3fe('0x25')](removeEntity(_0x305757,null))[_0xb3fe('0x4a')](handleError(_0x305757,null));};exports['create']=function(_0x5762a3,_0x232783){var _0x361671={'key':_0x5762a3[_0xb3fe('0x4c')][_0xb3fe('0x32')]};if(_0x5762a3[_0xb3fe('0x4c')]['MailAccountId']){_0x361671['MailAccountId']=_0x5762a3[_0xb3fe('0x4c')][_0xb3fe('0x4d')];}else if(_0x5762a3['body'][_0xb3fe('0x4e')]){_0x361671['SmsAccountId']=_0x5762a3['body'][_0xb3fe('0x4e')];}else if(_0x5762a3[_0xb3fe('0x4c')][_0xb3fe('0x4f')]){_0x361671[_0xb3fe('0x4f')]=_0x5762a3[_0xb3fe('0x4c')]['OpenchannelAccountId'];}else if(_0x5762a3[_0xb3fe('0x4c')][_0xb3fe('0x50')]){_0x361671[_0xb3fe('0x50')]=_0x5762a3[_0xb3fe('0x4c')][_0xb3fe('0x50')];}return db['CannedAnswer'][_0xb3fe('0x49')]({'where':_0x361671})[_0xb3fe('0x25')](function(_0x5c168f){if(_0x5c168f){throw new db['Sequelize'][(_0xb3fe('0x51'))](_0xb3fe('0x52'));}return db[_0xb3fe('0x2e')]['create'](_0x5762a3[_0xb3fe('0x4c')]);})[_0xb3fe('0x25')](function(_0x1cce29){var _0x4b24f8=_0x5762a3[_0xb3fe('0x53')]['get']({'plain':!![]});if(!_0x4b24f8)throw new Error(_0xb3fe('0x54'));if(_0x4b24f8[_0xb3fe('0x55')]===_0xb3fe('0x53')){var _0x22b61e=_0x1cce29[_0xb3fe('0x56')]({'plain':!![]});return db[_0xb3fe('0x57')][_0xb3fe('0x49')]({'where':{'name':_0xb3fe('0x26'),'userProfileId':_0x4b24f8[_0xb3fe('0x58')]},'raw':!![]})[_0xb3fe('0x25')](function(_0x38b718){if(_0x38b718&&_0x38b718[_0xb3fe('0x59')]===0x0){return db[_0xb3fe('0x27')]['create']({'name':_0x22b61e[_0xb3fe('0x2a')],'resourceId':_0x22b61e['id'],'type':_0x38b718[_0xb3fe('0x2a')],'sectionId':_0x38b718['id']},{})['then'](function(){return _0x1cce29;});}else{return _0x1cce29;}})[_0xb3fe('0x4a')](function(_0xdc7e0){logger[_0xb3fe('0x28')](_0xb3fe('0x5a'),_0xdc7e0);throw _0xdc7e0;});}return _0x1cce29;})[_0xb3fe('0x25')](respondWithResult(_0x232783,0xc9))[_0xb3fe('0x4a')](handleError(_0x232783,null));};
\ No newline at end of file
+var _0xc560=['model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','options','includeAll','rows','catch','show','params','include','find','body','create','MailAccountId','SmsAccountId','OpenchannelAccountId','ChatWebsiteId','Sequelize','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','CannedAnswers','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','request-promise','moment','bluebird','mustache','util','path','ejs','fs-extra','lodash','crypto','jsforce','desk.js','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','UserProfileResource','end','error','name','map','CannedAnswer','rawAttributes','type','key','query','keys','filters','intersection'];(function(_0x42cae2,_0x284ef8){var _0x5f256f=function(_0x41abc8){while(--_0x41abc8){_0x42cae2['push'](_0x42cae2['shift']());}};_0x5f256f(++_0x284ef8);}(_0xc560,0x120));var _0x0c56=function(_0x354300,_0x2d7e34){_0x354300=_0x354300-0x0;var _0x2198f0=_0xc560[_0x354300];return _0x2198f0;};'use strict';var emlformat=require(_0x0c56('0x0'));var rimraf=require(_0x0c56('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x0c56('0x2'));var moment=require(_0x0c56('0x3'));var BPromise=require(_0x0c56('0x4'));var Mustache=require(_0x0c56('0x5'));var util=require(_0x0c56('0x6'));var path=require(_0x0c56('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x0c56('0x8'));var fs=require('fs');var fs_extra=require(_0x0c56('0x9'));var _=require(_0x0c56('0xa'));var squel=require('squel');var crypto=require(_0x0c56('0xb'));var jsforce=require(_0x0c56('0xc'));var deskjs=require(_0x0c56('0xd'));var toCsv=require(_0x0c56('0xe'));var querystring=require(_0x0c56('0xf'));var Papa=require('papaparse');var Redis=require(_0x0c56('0x10'));var authService=require(_0x0c56('0x11'));var qs=require(_0x0c56('0x12'));var as=require(_0x0c56('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x0c56('0x14'))(_0x0c56('0x15'));var utils=require(_0x0c56('0x16'));var config=require(_0x0c56('0x17'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x5225ca,_0x6e9726){_0x6e9726=_0x6e9726||0xcc;return function(_0x4f32a4){if(_0x4f32a4){return _0x5225ca[_0x0c56('0x18')](_0x6e9726);}return _0x5225ca[_0x0c56('0x19')](_0x6e9726)['end']();};}function respondWithResult(_0x1a65b7,_0x2cddf5){_0x2cddf5=_0x2cddf5||0xc8;return function(_0x449a4d){if(_0x449a4d){return _0x1a65b7[_0x0c56('0x19')](_0x2cddf5)[_0x0c56('0x1a')](_0x449a4d);}};}function respondWithFilteredResult(_0x33caeb,_0x384a60){return function(_0x9e92e9){if(_0x9e92e9){var _0x5c5e69=typeof _0x384a60[_0x0c56('0x1b')]===_0x0c56('0x1c')&&typeof _0x384a60[_0x0c56('0x1d')]===_0x0c56('0x1c');var _0x2d7847=_0x9e92e9[_0x0c56('0x1e')];var _0x595ec2=_0x5c5e69?0x0:_0x384a60['offset'];var _0x4526e2=_0x5c5e69?_0x9e92e9[_0x0c56('0x1e')]:_0x384a60[_0x0c56('0x1b')]+_0x384a60[_0x0c56('0x1d')];var _0x186cfe;if(_0x4526e2>=_0x2d7847){_0x4526e2=_0x2d7847;_0x186cfe=0xc8;}else{_0x186cfe=0xce;}_0x33caeb['status'](_0x186cfe);return _0x33caeb[_0x0c56('0x1f')](_0x0c56('0x20'),_0x595ec2+'-'+_0x4526e2+'/'+_0x2d7847)[_0x0c56('0x1a')](_0x9e92e9);}return null;};}function patchUpdates(_0x40c8b5){return function(_0x272b4d){try{jsonpatch[_0x0c56('0x21')](_0x272b4d,_0x40c8b5,!![]);}catch(_0x6bf06d){return BPromise[_0x0c56('0x22')](_0x6bf06d);}return _0x272b4d[_0x0c56('0x23')]();};}function saveUpdates(_0x1ea003,_0x28709e){return function(_0x4fd573){if(_0x4fd573){return _0x4fd573[_0x0c56('0x24')](_0x1ea003)[_0x0c56('0x25')](function(_0x44a0c5){return _0x44a0c5;});}return null;};}function removeEntity(_0x5eeb1b,_0x4a2105){return function(_0x1760c3){if(_0x1760c3){return _0x1760c3[_0x0c56('0x26')]()[_0x0c56('0x25')](function(){var _0x5891a0=_0x1760c3['get']({'plain':!![]});var _0x20ae33='CannedAnswers';return db[_0x0c56('0x27')]['destroy']({'where':{'type':_0x20ae33,'resourceId':_0x5891a0['id']}})[_0x0c56('0x25')](function(){return _0x1760c3;});})[_0x0c56('0x25')](function(){_0x5eeb1b['status'](0xcc)[_0x0c56('0x28')]();});}};}function handleEntityNotFound(_0x28f19d,_0xf0470f){return function(_0xf6ed66){if(!_0xf6ed66){_0x28f19d['sendStatus'](0x194);}return _0xf6ed66;};}function handleError(_0x3260fd,_0x3dc73a){_0x3dc73a=_0x3dc73a||0x1f4;return function(_0x3afc24){logger[_0x0c56('0x29')](_0x3afc24['stack']);if(_0x3afc24['name']){delete _0x3afc24[_0x0c56('0x2a')];}_0x3260fd[_0x0c56('0x19')](_0x3dc73a)['send'](_0x3afc24);};}exports['index']=function(_0x229095,_0x3303f4){var _0x3ba113={},_0x332f63={},_0x153fdd={'count':0x0,'rows':[]};var _0x2e64cc=_[_0x0c56('0x2b')](db[_0x0c56('0x2c')][_0x0c56('0x2d')],function(_0x5f1d1c){return{'name':_0x5f1d1c['fieldName'],'type':_0x5f1d1c[_0x0c56('0x2e')][_0x0c56('0x2f')]};});_0x332f63['model']=_[_0x0c56('0x2b')](_0x2e64cc,_0x0c56('0x2a'));_0x332f63[_0x0c56('0x30')]=_[_0x0c56('0x31')](_0x229095[_0x0c56('0x30')]);_0x332f63[_0x0c56('0x32')]=_[_0x0c56('0x33')](_0x332f63[_0x0c56('0x34')],_0x332f63[_0x0c56('0x30')]);_0x3ba113[_0x0c56('0x35')]=_['intersection'](_0x332f63[_0x0c56('0x34')],qs['fields'](_0x229095[_0x0c56('0x30')][_0x0c56('0x36')]));_0x3ba113['attributes']=_0x3ba113[_0x0c56('0x35')][_0x0c56('0x37')]?_0x3ba113[_0x0c56('0x35')]:_0x332f63[_0x0c56('0x34')];if(!_0x229095['query'][_0x0c56('0x38')](_0x0c56('0x39'))){_0x3ba113['limit']=qs[_0x0c56('0x1d')](_0x229095['query']['limit']);_0x3ba113[_0x0c56('0x1b')]=qs['offset'](_0x229095[_0x0c56('0x30')][_0x0c56('0x1b')]);}_0x3ba113[_0x0c56('0x3a')]=qs[_0x0c56('0x3b')](_0x229095[_0x0c56('0x30')][_0x0c56('0x3b')]);_0x3ba113[_0x0c56('0x3c')]=qs['filters'](_[_0x0c56('0x3d')](_0x229095['query'],_0x332f63[_0x0c56('0x32')]),_0x2e64cc);if(_0x229095[_0x0c56('0x30')][_0x0c56('0x3e')]){_0x3ba113[_0x0c56('0x3c')]=_[_0x0c56('0x3f')](_0x3ba113[_0x0c56('0x3c')],{'$or':[{'key':{'$like':'%'+_0x229095[_0x0c56('0x30')]['filter']+'%'}},{'value':{'$like':'%'+_0x229095[_0x0c56('0x30')][_0x0c56('0x3e')]+'%'}}]});}_0x3ba113=_[_0x0c56('0x3f')]({},_0x3ba113,_0x229095[_0x0c56('0x40')]);var _0x2c6253={'where':_0x3ba113[_0x0c56('0x3c')]};return db[_0x0c56('0x2c')][_0x0c56('0x1e')](_0x2c6253)[_0x0c56('0x25')](function(_0x329840){_0x153fdd[_0x0c56('0x1e')]=_0x329840;if(_0x229095['query'][_0x0c56('0x41')]){_0x3ba113['include']=[{'all':!![]}];}return db[_0x0c56('0x2c')]['findAll'](_0x3ba113);})[_0x0c56('0x25')](function(_0x19fc65){_0x153fdd[_0x0c56('0x42')]=_0x19fc65;return _0x153fdd;})[_0x0c56('0x25')](respondWithFilteredResult(_0x3303f4,_0x3ba113))[_0x0c56('0x43')](handleError(_0x3303f4,null));};exports[_0x0c56('0x44')]=function(_0x12d5d1,_0x1c6ec4){var _0x550bda={'raw':!![],'where':{'id':_0x12d5d1[_0x0c56('0x45')]['id']}},_0x2b2c2b={};_0x2b2c2b['model']=_[_0x0c56('0x31')](db[_0x0c56('0x2c')]['rawAttributes']);_0x2b2c2b[_0x0c56('0x30')]=_[_0x0c56('0x31')](_0x12d5d1[_0x0c56('0x30')]);_0x2b2c2b[_0x0c56('0x32')]=_[_0x0c56('0x33')](_0x2b2c2b[_0x0c56('0x34')],_0x2b2c2b['query']);_0x550bda[_0x0c56('0x35')]=_[_0x0c56('0x33')](_0x2b2c2b[_0x0c56('0x34')],qs[_0x0c56('0x36')](_0x12d5d1[_0x0c56('0x30')][_0x0c56('0x36')]));_0x550bda[_0x0c56('0x35')]=_0x550bda['attributes'][_0x0c56('0x37')]?_0x550bda[_0x0c56('0x35')]:_0x2b2c2b[_0x0c56('0x34')];if(_0x12d5d1[_0x0c56('0x30')][_0x0c56('0x41')]){_0x550bda[_0x0c56('0x46')]=[{'all':!![]}];}_0x550bda=_[_0x0c56('0x3f')]({},_0x550bda,_0x12d5d1['options']);return db[_0x0c56('0x2c')][_0x0c56('0x47')](_0x550bda)[_0x0c56('0x25')](handleEntityNotFound(_0x1c6ec4,null))[_0x0c56('0x25')](respondWithResult(_0x1c6ec4,null))[_0x0c56('0x43')](handleError(_0x1c6ec4,null));};exports[_0x0c56('0x24')]=function(_0x596bd3,_0x1cc9d8){if(_0x596bd3[_0x0c56('0x48')]['id']){delete _0x596bd3[_0x0c56('0x48')]['id'];}return db['CannedAnswer']['find']({'where':{'id':_0x596bd3[_0x0c56('0x45')]['id']}})[_0x0c56('0x25')](handleEntityNotFound(_0x1cc9d8,null))[_0x0c56('0x25')](saveUpdates(_0x596bd3['body'],null))[_0x0c56('0x25')](respondWithResult(_0x1cc9d8,null))[_0x0c56('0x43')](handleError(_0x1cc9d8,null));};exports[_0x0c56('0x26')]=function(_0x5d4a32,_0x11a0e8){return db[_0x0c56('0x2c')][_0x0c56('0x47')]({'where':{'id':_0x5d4a32[_0x0c56('0x45')]['id']}})[_0x0c56('0x25')](handleEntityNotFound(_0x11a0e8,null))[_0x0c56('0x25')](removeEntity(_0x11a0e8,null))[_0x0c56('0x43')](handleError(_0x11a0e8,null));};exports[_0x0c56('0x49')]=function(_0xd97281,_0x1efcda){var _0x3f307e={'key':_0xd97281[_0x0c56('0x48')]['key']};if(_0xd97281[_0x0c56('0x48')][_0x0c56('0x4a')]){_0x3f307e['MailAccountId']=_0xd97281[_0x0c56('0x48')]['MailAccountId'];}else if(_0xd97281[_0x0c56('0x48')][_0x0c56('0x4b')]){_0x3f307e[_0x0c56('0x4b')]=_0xd97281[_0x0c56('0x48')][_0x0c56('0x4b')];}else if(_0xd97281[_0x0c56('0x48')][_0x0c56('0x4c')]){_0x3f307e[_0x0c56('0x4c')]=_0xd97281['body']['OpenchannelAccountId'];}else if(_0xd97281[_0x0c56('0x48')][_0x0c56('0x4d')]){_0x3f307e[_0x0c56('0x4d')]=_0xd97281[_0x0c56('0x48')]['ChatWebsiteId'];}return db['CannedAnswer'][_0x0c56('0x47')]({'where':_0x3f307e})['then'](function(_0x26fad4){if(_0x26fad4){throw new db[(_0x0c56('0x4e'))]['ValidationError']('The\x20inserted\x20key\x20already\x20exists.');}return db['CannedAnswer'][_0x0c56('0x49')](_0xd97281['body']);})[_0x0c56('0x25')](function(_0x375d5f){var _0x5389d8=_0xd97281[_0x0c56('0x4f')][_0x0c56('0x50')]({'plain':!![]});if(!_0x5389d8)throw new Error(_0x0c56('0x51'));if(_0x5389d8['role']==='user'){var _0x1ee0ee=_0x375d5f['get']({'plain':!![]});return db[_0x0c56('0x52')][_0x0c56('0x47')]({'where':{'name':_0x0c56('0x53'),'userProfileId':_0x5389d8['userProfileId']},'raw':!![]})[_0x0c56('0x25')](function(_0x59d8fc){if(_0x59d8fc&&_0x59d8fc['autoAssociation']===0x0){return db[_0x0c56('0x27')][_0x0c56('0x49')]({'name':_0x1ee0ee[_0x0c56('0x2a')],'resourceId':_0x1ee0ee['id'],'type':_0x59d8fc[_0x0c56('0x2a')],'sectionId':_0x59d8fc['id']},{})[_0x0c56('0x25')](function(){return _0x375d5f;});}else{return _0x375d5f;}})['catch'](function(_0x2db3c4){logger[_0x0c56('0x29')](_0x0c56('0x54'),_0x2db3c4);throw _0x2db3c4;});}return _0x375d5f;})[_0x0c56('0x25')](respondWithResult(_0x1efcda,0xc9))[_0x0c56('0x43')](handleError(_0x1efcda,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x22b3=['exports','utf8mb4','utf8mb4_unicode_ci','../../config/logger','api','moment','bluebird','request-promise','path','../../config/environment'];(function(_0x49c186,_0x14c4b0){var _0x34e626=function(_0x5c0f95){while(--_0x5c0f95){_0x49c186['push'](_0x49c186['shift']());}};_0x34e626(++_0x14c4b0);}(_0x22b3,0x189));var _0x322b=function(_0x29c652,_0x251ca1){_0x29c652=_0x29c652-0x0;var _0x13b5cd=_0x22b3[_0x29c652];return _0x13b5cd;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x322b('0x0'))(_0x322b('0x1'));var moment=require(_0x322b('0x2'));var BPromise=require(_0x322b('0x3'));var rp=require(_0x322b('0x4'));var fs=require('fs');var path=require(_0x322b('0x5'));var rimraf=require('rimraf');var config=require(_0x322b('0x6'));var attributes=require('./cannedAnswer.attributes');module[_0x322b('0x7')]=function(_0xd6f2a,_0x36d64a){return _0xd6f2a['define']('CannedAnswer',attributes,{'tableName':'tools_canned_answers','paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x322b('0x8'),'collate':_0x322b('0x9')});};
\ No newline at end of file
+var _0x4584=['utf8mb4','utf8mb4_unicode_ci','lodash','util','../../config/logger','api','moment','rimraf','./cannedAnswer.attributes','exports','CannedAnswer','tools_canned_answers'];(function(_0x32904a,_0x5e5be9){var _0x12f2f=function(_0x5119ff){while(--_0x5119ff){_0x32904a['push'](_0x32904a['shift']());}};_0x12f2f(++_0x5e5be9);}(_0x4584,0x1be));var _0x4458=function(_0x3e2b98,_0x4f3bad){_0x3e2b98=_0x3e2b98-0x0;var _0x5e141d=_0x4584[_0x3e2b98];return _0x5e141d;};'use strict';var _=require(_0x4458('0x0'));var util=require(_0x4458('0x1'));var logger=require(_0x4458('0x2'))(_0x4458('0x3'));var moment=require(_0x4458('0x4'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0x4458('0x5'));var config=require('../../config/environment');var attributes=require(_0x4458('0x6'));module[_0x4458('0x7')]=function(_0x1109dd,_0x505149){return _0x1109dd['define'](_0x4458('0x8'),attributes,{'tableName':_0x4458('0x9'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x4458('0xa'),'collate':_0x4458('0xb')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['http','info','CannedAnswer,\x20%s,\x20%s','request\x20sent','debug','CannedAnswer,\x20%s,\x20%s,\x20%s','code','error','message','result','catch','lodash','util','moment','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise'];(function(_0x523886,_0x3ad7d8){var _0x4e704c=function(_0x3c1a9e){while(--_0x3c1a9e){_0x523886['push'](_0x523886['shift']());}};_0x4e704c(++_0x3ad7d8);}(_0xa9e0,0x123));var _0x0a9e=function(_0x3947c9,_0x4d6c97){_0x3947c9=_0x3947c9-0x0;var _0x2e7871=_0xa9e0[_0x3947c9];return _0x2e7871;};'use strict';var _=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var moment=require(_0x0a9e('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x0a9e('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x0a9e('0x4'));var logger=require(_0x0a9e('0x5'))(_0x0a9e('0x6'));var config=require(_0x0a9e('0x7'));var jayson=require(_0x0a9e('0x8'));var client=jayson['client'][_0x0a9e('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x441e3a,_0x2cc193,_0x5f41ea){return new BPromise(function(_0x503809,_0xe42b77){return client['request'](_0x441e3a,_0x5f41ea)['then'](function(_0x39753a){logger[_0x0a9e('0xa')](_0x0a9e('0xb'),_0x2cc193,_0x0a9e('0xc'));logger[_0x0a9e('0xd')](_0x0a9e('0xe'),_0x2cc193,'request\x20sent',JSON['stringify'](_0x39753a));if(_0x39753a['error']){if(_0x39753a['error'][_0x0a9e('0xf')]===0x1f4){logger[_0x0a9e('0x10')](_0x0a9e('0xb'),_0x2cc193,_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);return _0xe42b77(_0x39753a[_0x0a9e('0x10')]['message']);}logger[_0x0a9e('0x10')](_0x0a9e('0xb'),_0x2cc193,_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);return _0x503809(_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);}else{logger['info'](_0x0a9e('0xb'),_0x2cc193,'request\x20sent');_0x503809(_0x39753a[_0x0a9e('0x12')]['message']);}})[_0x0a9e('0x13')](function(_0x12066b){logger['error'](_0x0a9e('0xb'),_0x2cc193,_0x12066b);_0xe42b77(_0x12066b);});});}
\ No newline at end of file
+var _0xa9e0=['http','info','CannedAnswer,\x20%s,\x20%s','request\x20sent','debug','CannedAnswer,\x20%s,\x20%s,\x20%s','code','error','message','result','catch','lodash','util','moment','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise'];(function(_0x5637e8,_0x2b096b){var _0x298601=function(_0x4ef37b){while(--_0x4ef37b){_0x5637e8['push'](_0x5637e8['shift']());}};_0x298601(++_0x2b096b);}(_0xa9e0,0x123));var _0x0a9e=function(_0x28947d,_0x4cc9c6){_0x28947d=_0x28947d-0x0;var _0x12d2ee=_0xa9e0[_0x28947d];return _0x12d2ee;};'use strict';var _=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var moment=require(_0x0a9e('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x0a9e('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x0a9e('0x4'));var logger=require(_0x0a9e('0x5'))(_0x0a9e('0x6'));var config=require(_0x0a9e('0x7'));var jayson=require(_0x0a9e('0x8'));var client=jayson['client'][_0x0a9e('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x441e3a,_0x2cc193,_0x5f41ea){return new BPromise(function(_0x503809,_0xe42b77){return client['request'](_0x441e3a,_0x5f41ea)['then'](function(_0x39753a){logger[_0x0a9e('0xa')](_0x0a9e('0xb'),_0x2cc193,_0x0a9e('0xc'));logger[_0x0a9e('0xd')](_0x0a9e('0xe'),_0x2cc193,'request\x20sent',JSON['stringify'](_0x39753a));if(_0x39753a['error']){if(_0x39753a['error'][_0x0a9e('0xf')]===0x1f4){logger[_0x0a9e('0x10')](_0x0a9e('0xb'),_0x2cc193,_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);return _0xe42b77(_0x39753a[_0x0a9e('0x10')]['message']);}logger[_0x0a9e('0x10')](_0x0a9e('0xb'),_0x2cc193,_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);return _0x503809(_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);}else{logger['info'](_0x0a9e('0xb'),_0x2cc193,'request\x20sent');_0x503809(_0x39753a[_0x0a9e('0x12')]['message']);}})[_0x0a9e('0x13')](function(_0x12066b){logger['error'](_0x0a9e('0xb'),_0x2cc193,_0x12066b);_0xe42b77(_0x12066b);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x05d8=['create','put','update','destroy','exports','multer','util','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./cannedAnswer.controller','get','isAuthenticated','/:id','show'];(function(_0x4ef17a,_0x1a799b){var _0x141f41=function(_0x12ec71){while(--_0x12ec71){_0x4ef17a['push'](_0x4ef17a['shift']());}};_0x141f41(++_0x1a799b);}(_0x05d8,0x64));var _0x805d=function(_0x4bb66f,_0x3cd682){_0x4bb66f=_0x4bb66f-0x0;var _0xf2772f=_0x05d8[_0x4bb66f];return _0xf2772f;};'use strict';var multer=require(_0x805d('0x0'));var util=require(_0x805d('0x1'));var path=require('path');var timeout=require(_0x805d('0x2'));var express=require(_0x805d('0x3'));var router=express[_0x805d('0x4')]();var fs_extra=require(_0x805d('0x5'));var auth=require(_0x805d('0x6'));var interaction=require(_0x805d('0x7'));var config=require(_0x805d('0x8'));var controller=require(_0x805d('0x9'));router[_0x805d('0xa')]('/',auth[_0x805d('0xb')](),controller['index']);router[_0x805d('0xa')](_0x805d('0xc'),auth[_0x805d('0xb')](),controller[_0x805d('0xd')]);router['post']('/',auth[_0x805d('0xb')](),controller[_0x805d('0xe')]);router[_0x805d('0xf')](_0x805d('0xc'),auth[_0x805d('0xb')](),controller[_0x805d('0x10')]);router['delete'](_0x805d('0xc'),auth[_0x805d('0xb')](),controller[_0x805d('0x11')]);module[_0x805d('0x12')]=router;
\ No newline at end of file
+var _0xdc8d=['get','show','post','put','/:id','update','delete','destroy','util','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','isAuthenticated','index'];(function(_0x39959e,_0x293faa){var _0xcc1f8f=function(_0x395ef7){while(--_0x395ef7){_0x39959e['push'](_0x39959e['shift']());}};_0xcc1f8f(++_0x293faa);}(_0xdc8d,0x1dc));var _0xddc8=function(_0x594875,_0x55e6a5){_0x594875=_0x594875-0x0;var _0x21a762=_0xdc8d[_0x594875];return _0x21a762;};'use strict';var multer=require('multer');var util=require(_0xddc8('0x0'));var path=require(_0xddc8('0x1'));var timeout=require(_0xddc8('0x2'));var express=require(_0xddc8('0x3'));var router=express[_0xddc8('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0xddc8('0x5'));var interaction=require(_0xddc8('0x6'));var config=require(_0xddc8('0x7'));var controller=require('./cannedAnswer.controller');router['get']('/',auth[_0xddc8('0x8')](),controller[_0xddc8('0x9')]);router[_0xddc8('0xa')]('/:id',auth[_0xddc8('0x8')](),controller[_0xddc8('0xb')]);router[_0xddc8('0xc')]('/',auth[_0xddc8('0x8')](),controller['create']);router[_0xddc8('0xd')](_0xddc8('0xe'),auth[_0xddc8('0x8')](),controller[_0xddc8('0xf')]);router[_0xddc8('0x10')](_0xddc8('0xe'),auth[_0xddc8('0x8')](),controller[_0xddc8('0x11')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaf09=['exports','DATE','1970-01-01\x2000:00:01','STRING','INTEGER','sequelize'];(function(_0x4af527,_0x22291b){var _0x55ae8d=function(_0x41086c){while(--_0x41086c){_0x4af527['push'](_0x4af527['shift']());}};_0x55ae8d(++_0x22291b);}(_0xaf09,0x10d));var _0x9af0=function(_0x30ae5e,_0x391fc4){_0x30ae5e=_0x30ae5e-0x0;var _0x1f2e93=_0xaf09[_0x30ae5e];return _0x1f2e93;};'use strict';var Sequelize=require(_0x9af0('0x0'));module[_0x9af0('0x1')]={'calldate':{'type':Sequelize[_0x9af0('0x2')],'allowNull':![],'defaultValue':_0x9af0('0x3')},'clid':{'type':Sequelize[_0x9af0('0x4')]},'src':{'type':Sequelize[_0x9af0('0x4')]},'dst':{'type':Sequelize[_0x9af0('0x4')]},'dcontext':{'type':Sequelize[_0x9af0('0x4')]},'channel':{'type':Sequelize[_0x9af0('0x4')]},'dstchannel':{'type':Sequelize['STRING']},'lastapp':{'type':Sequelize[_0x9af0('0x4')]},'lastdata':{'type':Sequelize['STRING']},'duration':{'type':Sequelize[_0x9af0('0x5')],'allowNull':![],'defaultValue':0x0},'billsec':{'type':Sequelize[_0x9af0('0x5')],'allowNull':![],'defaultValue':0x0},'disposition':{'type':Sequelize['STRING']},'amaflags':{'type':Sequelize[_0x9af0('0x5')],'allowNull':![],'defaultValue':0x0},'accountcode':{'type':Sequelize['STRING']},'userfield':{'type':Sequelize['STRING']},'uniqueid':{'type':Sequelize[_0x9af0('0x4')]},'linkedid':{'type':Sequelize[_0x9af0('0x4')]},'sequence':{'type':Sequelize[_0x9af0('0x4')]},'peeraccount':{'type':Sequelize[_0x9af0('0x4')]},'type':{'type':Sequelize[_0x9af0('0x4')]},'tag':{'type':Sequelize[_0x9af0('0x4')]}};
\ No newline at end of file
+var _0xeebe=['DATE','STRING','INTEGER','sequelize'];(function(_0x5c8c1c,_0x11bada){var _0xbf4b41=function(_0x340f2b){while(--_0x340f2b){_0x5c8c1c['push'](_0x5c8c1c['shift']());}};_0xbf4b41(++_0x11bada);}(_0xeebe,0xff));var _0xeeeb=function(_0x4243a3,_0x447337){_0x4243a3=_0x4243a3-0x0;var _0x1b2a33=_0xeebe[_0x4243a3];return _0x1b2a33;};'use strict';var Sequelize=require(_0xeeeb('0x0'));module['exports']={'calldate':{'type':Sequelize[_0xeeeb('0x1')],'allowNull':![],'defaultValue':'1970-01-01\x2000:00:01'},'clid':{'type':Sequelize[_0xeeeb('0x2')]},'src':{'type':Sequelize[_0xeeeb('0x2')]},'dst':{'type':Sequelize[_0xeeeb('0x2')]},'dcontext':{'type':Sequelize[_0xeeeb('0x2')]},'channel':{'type':Sequelize[_0xeeeb('0x2')]},'dstchannel':{'type':Sequelize[_0xeeeb('0x2')]},'lastapp':{'type':Sequelize[_0xeeeb('0x2')]},'lastdata':{'type':Sequelize[_0xeeeb('0x2')]},'duration':{'type':Sequelize[_0xeeeb('0x3')],'allowNull':![],'defaultValue':0x0},'billsec':{'type':Sequelize[_0xeeeb('0x3')],'allowNull':![],'defaultValue':0x0},'disposition':{'type':Sequelize[_0xeeeb('0x2')]},'amaflags':{'type':Sequelize[_0xeeeb('0x3')],'allowNull':![],'defaultValue':0x0},'accountcode':{'type':Sequelize[_0xeeeb('0x2')]},'userfield':{'type':Sequelize[_0xeeeb('0x2')]},'uniqueid':{'type':Sequelize[_0xeeeb('0x2')]},'linkedid':{'type':Sequelize[_0xeeeb('0x2')]},'sequence':{'type':Sequelize[_0xeeeb('0x2')]},'peeraccount':{'type':Sequelize[_0xeeeb('0x2')]},'type':{'type':Sequelize['STRING']},'tag':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf69d=['path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','sendStatus','status','end','json','offset','undefined','count','set','reject','save','update','then','send','map','Cdr','rawAttributes','fieldName','type','key','model','name','query','filters','intersection','fields','attributes','length','hasOwnProperty','limit','sort','pick','where','merge','VIRTUAL','filter','includeAll','include','rows','catch','keys','find','create','body','params','destroy','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util'];(function(_0x22fa8d,_0x3af3bb){var _0x1c445e=function(_0xabe36c){while(--_0xabe36c){_0x22fa8d['push'](_0x22fa8d['shift']());}};_0x1c445e(++_0x3af3bb);}(_0xf69d,0xd3));var _0xdf69=function(_0x5b1b43,_0x42f389){_0x5b1b43=_0x5b1b43-0x0;var _0x2758b3=_0xf69d[_0x5b1b43];return _0x2758b3;};'use strict';var emlformat=require(_0xdf69('0x0'));var rimraf=require(_0xdf69('0x1'));var zipdir=require(_0xdf69('0x2'));var jsonpatch=require(_0xdf69('0x3'));var rp=require(_0xdf69('0x4'));var moment=require('moment');var BPromise=require(_0xdf69('0x5'));var Mustache=require(_0xdf69('0x6'));var util=require(_0xdf69('0x7'));var path=require(_0xdf69('0x8'));var sox=require(_0xdf69('0x9'));var csv=require(_0xdf69('0xa'));var ejs=require(_0xdf69('0xb'));var fs=require('fs');var fs_extra=require(_0xdf69('0xc'));var _=require(_0xdf69('0xd'));var squel=require(_0xdf69('0xe'));var crypto=require(_0xdf69('0xf'));var jsforce=require(_0xdf69('0x10'));var deskjs=require(_0xdf69('0x11'));var toCsv=require(_0xdf69('0xa'));var querystring=require(_0xdf69('0x12'));var Papa=require(_0xdf69('0x13'));var Redis=require(_0xdf69('0x14'));var authService=require('../../components/auth/service');var qs=require(_0xdf69('0x15'));var as=require(_0xdf69('0x16'));var hardwareService=require(_0xdf69('0x17'));var logger=require(_0xdf69('0x18'))(_0xdf69('0x19'));var utils=require(_0xdf69('0x1a'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x5df98a,_0x3dcda8){_0x3dcda8=_0x3dcda8||0xcc;return function(_0xbacdc6){if(_0xbacdc6){return _0x5df98a[_0xdf69('0x1b')](_0x3dcda8);}return _0x5df98a[_0xdf69('0x1c')](_0x3dcda8)[_0xdf69('0x1d')]();};}function respondWithResult(_0x38aee2,_0x584cbd){_0x584cbd=_0x584cbd||0xc8;return function(_0x41cc77){if(_0x41cc77){return _0x38aee2[_0xdf69('0x1c')](_0x584cbd)[_0xdf69('0x1e')](_0x41cc77);}};}function respondWithFilteredResult(_0xef2df5,_0x4f28fc){return function(_0xa4242f){if(_0xa4242f){var _0x56be66=typeof _0x4f28fc[_0xdf69('0x1f')]===_0xdf69('0x20')&&typeof _0x4f28fc['limit']===_0xdf69('0x20');var _0x449908=_0xa4242f[_0xdf69('0x21')];var _0x85d1d=_0x56be66?0x0:_0x4f28fc['offset'];var _0x5ae237=_0x56be66?_0xa4242f[_0xdf69('0x21')]:_0x4f28fc[_0xdf69('0x1f')]+_0x4f28fc['limit'];var _0x32cf65;if(_0x5ae237>=_0x449908){_0x5ae237=_0x449908;_0x32cf65=0xc8;}else{_0x32cf65=0xce;}_0xef2df5[_0xdf69('0x1c')](_0x32cf65);return _0xef2df5[_0xdf69('0x22')]('Content-Range',_0x85d1d+'-'+_0x5ae237+'/'+_0x449908)[_0xdf69('0x1e')](_0xa4242f);}return null;};}function patchUpdates(_0x452cfa){return function(_0x4d09d5){try{jsonpatch['apply'](_0x4d09d5,_0x452cfa,!![]);}catch(_0x32505a){return BPromise[_0xdf69('0x23')](_0x32505a);}return _0x4d09d5[_0xdf69('0x24')]();};}function saveUpdates(_0x5d91b8,_0x50ef18){return function(_0x5be7dd){if(_0x5be7dd){return _0x5be7dd[_0xdf69('0x25')](_0x5d91b8)['then'](function(_0x21f757){return _0x21f757;});}return null;};}function removeEntity(_0x311534,_0x1d37d8){return function(_0x54d2ca){if(_0x54d2ca){return _0x54d2ca['destroy']()[_0xdf69('0x26')](function(){_0x311534[_0xdf69('0x1c')](0xcc)[_0xdf69('0x1d')]();});}};}function handleEntityNotFound(_0x3fd933,_0x549191){return function(_0x3b727c){if(!_0x3b727c){_0x3fd933[_0xdf69('0x1b')](0x194);}return _0x3b727c;};}function handleError(_0x3e4f28,_0x5969cb){_0x5969cb=_0x5969cb||0x1f4;return function(_0x2da3df){logger['error'](_0x2da3df['stack']);if(_0x2da3df['name']){delete _0x2da3df['name'];}_0x3e4f28[_0xdf69('0x1c')](_0x5969cb)[_0xdf69('0x27')](_0x2da3df);};}exports['index']=function(_0x301bd2,_0xd81d0a){var _0x19cf2d={},_0x12aec3={},_0x1b7c16={'count':0x0,'rows':[]};var _0x1b57b3=_[_0xdf69('0x28')](db[_0xdf69('0x29')][_0xdf69('0x2a')],function(_0x3b97df){return{'name':_0x3b97df[_0xdf69('0x2b')],'type':_0x3b97df[_0xdf69('0x2c')][_0xdf69('0x2d')]};});_0x12aec3[_0xdf69('0x2e')]=_[_0xdf69('0x28')](_0x1b57b3,_0xdf69('0x2f'));_0x12aec3[_0xdf69('0x30')]=_['keys'](_0x301bd2[_0xdf69('0x30')]);_0x12aec3[_0xdf69('0x31')]=_[_0xdf69('0x32')](_0x12aec3[_0xdf69('0x2e')],_0x12aec3[_0xdf69('0x30')]);_0x19cf2d['attributes']=_[_0xdf69('0x32')](_0x12aec3['model'],qs[_0xdf69('0x33')](_0x301bd2[_0xdf69('0x30')]['fields']));_0x19cf2d[_0xdf69('0x34')]=_0x19cf2d['attributes'][_0xdf69('0x35')]?_0x19cf2d[_0xdf69('0x34')]:_0x12aec3[_0xdf69('0x2e')];if(!_0x301bd2[_0xdf69('0x30')][_0xdf69('0x36')]('nolimit')){_0x19cf2d[_0xdf69('0x37')]=qs['limit'](_0x301bd2[_0xdf69('0x30')][_0xdf69('0x37')]);_0x19cf2d[_0xdf69('0x1f')]=qs[_0xdf69('0x1f')](_0x301bd2['query'][_0xdf69('0x1f')]);}_0x19cf2d['order']=qs[_0xdf69('0x38')](_0x301bd2['query'][_0xdf69('0x38')]);_0x19cf2d['where']=qs[_0xdf69('0x31')](_[_0xdf69('0x39')](_0x301bd2[_0xdf69('0x30')],_0x12aec3[_0xdf69('0x31')]),_0x1b57b3);if(_0x301bd2[_0xdf69('0x30')]['filter']){_0x19cf2d[_0xdf69('0x3a')]=_[_0xdf69('0x3b')](_0x19cf2d['where'],{'$or':_['map'](_0x1b57b3,function(_0x4ee03c){if(_0x4ee03c['type']!==_0xdf69('0x3c')){var _0x5aff7d={};_0x5aff7d[_0x4ee03c[_0xdf69('0x2f')]]={'$like':'%'+_0x301bd2[_0xdf69('0x30')][_0xdf69('0x3d')]+'%'};return _0x5aff7d;}})});}_0x19cf2d=_[_0xdf69('0x3b')]({},_0x19cf2d,_0x301bd2['options']);var _0x3de096={'where':_0x19cf2d[_0xdf69('0x3a')]};return db[_0xdf69('0x29')]['count'](_0x3de096)[_0xdf69('0x26')](function(_0xdd919d){_0x1b7c16[_0xdf69('0x21')]=_0xdd919d;if(_0x301bd2[_0xdf69('0x30')][_0xdf69('0x3e')]){_0x19cf2d[_0xdf69('0x3f')]=[{'all':!![]}];}return db[_0xdf69('0x29')]['findAll'](_0x19cf2d);})['then'](function(_0x1fc4aa){_0x1b7c16[_0xdf69('0x40')]=_0x1fc4aa;return _0x1b7c16;})[_0xdf69('0x26')](respondWithFilteredResult(_0xd81d0a,_0x19cf2d))[_0xdf69('0x41')](handleError(_0xd81d0a,null));};exports['show']=function(_0x4a972c,_0x5980b1){var _0x5454e1={'raw':!![],'where':{'id':_0x4a972c['params']['id']}},_0x2abc7f={};_0x2abc7f[_0xdf69('0x2e')]=_['keys'](db[_0xdf69('0x29')][_0xdf69('0x2a')]);_0x2abc7f[_0xdf69('0x30')]=_[_0xdf69('0x42')](_0x4a972c[_0xdf69('0x30')]);_0x2abc7f[_0xdf69('0x31')]=_[_0xdf69('0x32')](_0x2abc7f[_0xdf69('0x2e')],_0x2abc7f[_0xdf69('0x30')]);_0x5454e1['attributes']=_['intersection'](_0x2abc7f[_0xdf69('0x2e')],qs['fields'](_0x4a972c[_0xdf69('0x30')][_0xdf69('0x33')]));_0x5454e1[_0xdf69('0x34')]=_0x5454e1['attributes'][_0xdf69('0x35')]?_0x5454e1[_0xdf69('0x34')]:_0x2abc7f[_0xdf69('0x2e')];if(_0x4a972c[_0xdf69('0x30')]['includeAll']){_0x5454e1[_0xdf69('0x3f')]=[{'all':!![]}];}_0x5454e1=_[_0xdf69('0x3b')]({},_0x5454e1,_0x4a972c['options']);return db['Cdr'][_0xdf69('0x43')](_0x5454e1)[_0xdf69('0x26')](handleEntityNotFound(_0x5980b1,null))[_0xdf69('0x26')](respondWithResult(_0x5980b1,null))[_0xdf69('0x41')](handleError(_0x5980b1,null));};exports[_0xdf69('0x44')]=function(_0x1b46c6,_0x578eec){return db['Cdr'][_0xdf69('0x44')](_0x1b46c6[_0xdf69('0x45')],{})[_0xdf69('0x26')](respondWithResult(_0x578eec,0xc9))[_0xdf69('0x41')](handleError(_0x578eec,null));};exports['update']=function(_0x4bc70f,_0xb34f76){if(_0x4bc70f[_0xdf69('0x45')]['id']){delete _0x4bc70f[_0xdf69('0x45')]['id'];}return db[_0xdf69('0x29')][_0xdf69('0x43')]({'where':{'id':_0x4bc70f[_0xdf69('0x46')]['id']}})[_0xdf69('0x26')](handleEntityNotFound(_0xb34f76,null))[_0xdf69('0x26')](saveUpdates(_0x4bc70f[_0xdf69('0x45')],null))[_0xdf69('0x26')](respondWithResult(_0xb34f76,null))[_0xdf69('0x41')](handleError(_0xb34f76,null));};exports[_0xdf69('0x47')]=function(_0x9a24c9,_0x439b06){return db['Cdr'][_0xdf69('0x43')]({'where':{'id':_0x9a24c9[_0xdf69('0x46')]['id']}})[_0xdf69('0x26')](handleEntityNotFound(_0x439b06,null))['then'](removeEntity(_0x439b06,null))[_0xdf69('0x41')](handleError(_0x439b06,null));};exports[_0xdf69('0x48')]=function(_0x15ca48,_0x4abeb7){return db[_0xdf69('0x29')]['describe']()[_0xdf69('0x26')](respondWithResult(_0x4abeb7,null))[_0xdf69('0x41')](handleError(_0x4abeb7,null));};
\ No newline at end of file
+var _0xa1f6=['error','stack','name','send','index','map','Cdr','rawAttributes','type','key','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','filter','merge','where','VIRTUAL','options','includeAll','include','findAll','rows','catch','params','length','create','body','destroy','find','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','Content-Range','apply','reject','save','update','then'];(function(_0x196e1b,_0x55fa06){var _0x5e1f18=function(_0x3bdb41){while(--_0x3bdb41){_0x196e1b['push'](_0x196e1b['shift']());}};_0x5e1f18(++_0x55fa06);}(_0xa1f6,0x19d));var _0x6a1f=function(_0x11005e,_0x20c3d2){_0x11005e=_0x11005e-0x0;var _0x29338f=_0xa1f6[_0x11005e];return _0x29338f;};'use strict';var emlformat=require(_0x6a1f('0x0'));var rimraf=require(_0x6a1f('0x1'));var zipdir=require(_0x6a1f('0x2'));var jsonpatch=require(_0x6a1f('0x3'));var rp=require(_0x6a1f('0x4'));var moment=require(_0x6a1f('0x5'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require('path');var sox=require('sox');var csv=require(_0x6a1f('0x6'));var ejs=require(_0x6a1f('0x7'));var fs=require('fs');var fs_extra=require(_0x6a1f('0x8'));var _=require(_0x6a1f('0x9'));var squel=require(_0x6a1f('0xa'));var crypto=require(_0x6a1f('0xb'));var jsforce=require(_0x6a1f('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x6a1f('0x6'));var querystring=require(_0x6a1f('0xd'));var Papa=require(_0x6a1f('0xe'));var Redis=require(_0x6a1f('0xf'));var authService=require(_0x6a1f('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0x6a1f('0x11'));var hardwareService=require(_0x6a1f('0x12'));var logger=require(_0x6a1f('0x13'))(_0x6a1f('0x14'));var utils=require('../../config/utils');var config=require(_0x6a1f('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0x6a1f('0x16'))['db'];function respondWithStatusCode(_0x17edb6,_0x2a4e94){_0x2a4e94=_0x2a4e94||0xcc;return function(_0x442576){if(_0x442576){return _0x17edb6[_0x6a1f('0x17')](_0x2a4e94);}return _0x17edb6[_0x6a1f('0x18')](_0x2a4e94)[_0x6a1f('0x19')]();};}function respondWithResult(_0x8c3a36,_0x1918c6){_0x1918c6=_0x1918c6||0xc8;return function(_0x27d8f8){if(_0x27d8f8){return _0x8c3a36[_0x6a1f('0x18')](_0x1918c6)[_0x6a1f('0x1a')](_0x27d8f8);}};}function respondWithFilteredResult(_0x253305,_0x2677c1){return function(_0x14ecec){if(_0x14ecec){var _0x11ee0e=typeof _0x2677c1[_0x6a1f('0x1b')]===_0x6a1f('0x1c')&&typeof _0x2677c1[_0x6a1f('0x1d')]==='undefined';var _0x392ccb=_0x14ecec[_0x6a1f('0x1e')];var _0x1ccbed=_0x11ee0e?0x0:_0x2677c1[_0x6a1f('0x1b')];var _0x21d268=_0x11ee0e?_0x14ecec[_0x6a1f('0x1e')]:_0x2677c1[_0x6a1f('0x1b')]+_0x2677c1[_0x6a1f('0x1d')];var _0x5cb044;if(_0x21d268>=_0x392ccb){_0x21d268=_0x392ccb;_0x5cb044=0xc8;}else{_0x5cb044=0xce;}_0x253305[_0x6a1f('0x18')](_0x5cb044);return _0x253305['set'](_0x6a1f('0x1f'),_0x1ccbed+'-'+_0x21d268+'/'+_0x392ccb)[_0x6a1f('0x1a')](_0x14ecec);}return null;};}function patchUpdates(_0x3c7ed0){return function(_0x1b5856){try{jsonpatch[_0x6a1f('0x20')](_0x1b5856,_0x3c7ed0,!![]);}catch(_0x4eae7f){return BPromise[_0x6a1f('0x21')](_0x4eae7f);}return _0x1b5856[_0x6a1f('0x22')]();};}function saveUpdates(_0xa43cd5,_0x1be0c3){return function(_0x312e75){if(_0x312e75){return _0x312e75[_0x6a1f('0x23')](_0xa43cd5)[_0x6a1f('0x24')](function(_0x2736ab){return _0x2736ab;});}return null;};}function removeEntity(_0x53229b,_0x1eb146){return function(_0x3d953d){if(_0x3d953d){return _0x3d953d['destroy']()['then'](function(){_0x53229b['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x3ea158,_0x5e6013){return function(_0x5abe40){if(!_0x5abe40){_0x3ea158[_0x6a1f('0x17')](0x194);}return _0x5abe40;};}function handleError(_0x286d1d,_0x2b53ca){_0x2b53ca=_0x2b53ca||0x1f4;return function(_0x1e8db8){logger[_0x6a1f('0x25')](_0x1e8db8[_0x6a1f('0x26')]);if(_0x1e8db8[_0x6a1f('0x27')]){delete _0x1e8db8[_0x6a1f('0x27')];}_0x286d1d['status'](_0x2b53ca)[_0x6a1f('0x28')](_0x1e8db8);};}exports[_0x6a1f('0x29')]=function(_0x3f0730,_0x574d80){var _0x1e951c={},_0x155c58={},_0x257cee={'count':0x0,'rows':[]};var _0x113422=_[_0x6a1f('0x2a')](db[_0x6a1f('0x2b')][_0x6a1f('0x2c')],function(_0x58d879){return{'name':_0x58d879['fieldName'],'type':_0x58d879[_0x6a1f('0x2d')][_0x6a1f('0x2e')]};});_0x155c58[_0x6a1f('0x2f')]=_[_0x6a1f('0x2a')](_0x113422,_0x6a1f('0x27'));_0x155c58[_0x6a1f('0x30')]=_[_0x6a1f('0x31')](_0x3f0730['query']);_0x155c58[_0x6a1f('0x32')]=_[_0x6a1f('0x33')](_0x155c58['model'],_0x155c58[_0x6a1f('0x30')]);_0x1e951c[_0x6a1f('0x34')]=_[_0x6a1f('0x33')](_0x155c58['model'],qs['fields'](_0x3f0730[_0x6a1f('0x30')][_0x6a1f('0x35')]));_0x1e951c[_0x6a1f('0x34')]=_0x1e951c['attributes']['length']?_0x1e951c[_0x6a1f('0x34')]:_0x155c58[_0x6a1f('0x2f')];if(!_0x3f0730[_0x6a1f('0x30')][_0x6a1f('0x36')](_0x6a1f('0x37'))){_0x1e951c[_0x6a1f('0x1d')]=qs[_0x6a1f('0x1d')](_0x3f0730['query'][_0x6a1f('0x1d')]);_0x1e951c['offset']=qs[_0x6a1f('0x1b')](_0x3f0730[_0x6a1f('0x30')]['offset']);}_0x1e951c[_0x6a1f('0x38')]=qs[_0x6a1f('0x39')](_0x3f0730['query'][_0x6a1f('0x39')]);_0x1e951c['where']=qs[_0x6a1f('0x32')](_['pick'](_0x3f0730[_0x6a1f('0x30')],_0x155c58['filters']),_0x113422);if(_0x3f0730[_0x6a1f('0x30')][_0x6a1f('0x3a')]){_0x1e951c['where']=_[_0x6a1f('0x3b')](_0x1e951c[_0x6a1f('0x3c')],{'$or':_['map'](_0x113422,function(_0x5beb28){if(_0x5beb28[_0x6a1f('0x2d')]!==_0x6a1f('0x3d')){var _0x314fef={};_0x314fef[_0x5beb28[_0x6a1f('0x27')]]={'$like':'%'+_0x3f0730[_0x6a1f('0x30')][_0x6a1f('0x3a')]+'%'};return _0x314fef;}})});}_0x1e951c=_['merge']({},_0x1e951c,_0x3f0730[_0x6a1f('0x3e')]);var _0x2da23a={'where':_0x1e951c[_0x6a1f('0x3c')]};return db[_0x6a1f('0x2b')][_0x6a1f('0x1e')](_0x2da23a)[_0x6a1f('0x24')](function(_0x27be0a){_0x257cee[_0x6a1f('0x1e')]=_0x27be0a;if(_0x3f0730[_0x6a1f('0x30')][_0x6a1f('0x3f')]){_0x1e951c[_0x6a1f('0x40')]=[{'all':!![]}];}return db['Cdr'][_0x6a1f('0x41')](_0x1e951c);})[_0x6a1f('0x24')](function(_0x334fc4){_0x257cee[_0x6a1f('0x42')]=_0x334fc4;return _0x257cee;})[_0x6a1f('0x24')](respondWithFilteredResult(_0x574d80,_0x1e951c))[_0x6a1f('0x43')](handleError(_0x574d80,null));};exports['show']=function(_0x211009,_0x482c3a){var _0x3a6f80={'raw':!![],'where':{'id':_0x211009[_0x6a1f('0x44')]['id']}},_0x33208d={};_0x33208d[_0x6a1f('0x2f')]=_[_0x6a1f('0x31')](db[_0x6a1f('0x2b')]['rawAttributes']);_0x33208d[_0x6a1f('0x30')]=_[_0x6a1f('0x31')](_0x211009[_0x6a1f('0x30')]);_0x33208d[_0x6a1f('0x32')]=_[_0x6a1f('0x33')](_0x33208d[_0x6a1f('0x2f')],_0x33208d[_0x6a1f('0x30')]);_0x3a6f80[_0x6a1f('0x34')]=_[_0x6a1f('0x33')](_0x33208d[_0x6a1f('0x2f')],qs['fields'](_0x211009['query']['fields']));_0x3a6f80[_0x6a1f('0x34')]=_0x3a6f80[_0x6a1f('0x34')][_0x6a1f('0x45')]?_0x3a6f80[_0x6a1f('0x34')]:_0x33208d[_0x6a1f('0x2f')];if(_0x211009[_0x6a1f('0x30')]['includeAll']){_0x3a6f80[_0x6a1f('0x40')]=[{'all':!![]}];}_0x3a6f80=_['merge']({},_0x3a6f80,_0x211009[_0x6a1f('0x3e')]);return db[_0x6a1f('0x2b')]['find'](_0x3a6f80)[_0x6a1f('0x24')](handleEntityNotFound(_0x482c3a,null))['then'](respondWithResult(_0x482c3a,null))[_0x6a1f('0x43')](handleError(_0x482c3a,null));};exports[_0x6a1f('0x46')]=function(_0xa864f3,_0x4318fd){return db[_0x6a1f('0x2b')][_0x6a1f('0x46')](_0xa864f3['body'],{})[_0x6a1f('0x24')](respondWithResult(_0x4318fd,0xc9))[_0x6a1f('0x43')](handleError(_0x4318fd,null));};exports[_0x6a1f('0x23')]=function(_0x2bea1a,_0x34fa17){if(_0x2bea1a[_0x6a1f('0x47')]['id']){delete _0x2bea1a[_0x6a1f('0x47')]['id'];}return db[_0x6a1f('0x2b')]['find']({'where':{'id':_0x2bea1a[_0x6a1f('0x44')]['id']}})[_0x6a1f('0x24')](handleEntityNotFound(_0x34fa17,null))[_0x6a1f('0x24')](saveUpdates(_0x2bea1a['body'],null))[_0x6a1f('0x24')](respondWithResult(_0x34fa17,null))['catch'](handleError(_0x34fa17,null));};exports[_0x6a1f('0x48')]=function(_0x52c262,_0x366a60){return db['Cdr'][_0x6a1f('0x49')]({'where':{'id':_0x52c262[_0x6a1f('0x44')]['id']}})[_0x6a1f('0x24')](handleEntityNotFound(_0x366a60,null))['then'](removeEntity(_0x366a60,null))[_0x6a1f('0x43')](handleError(_0x366a60,null));};exports['describe']=function(_0x143873,_0x55d114){return db['Cdr'][_0x6a1f('0x4a')]()[_0x6a1f('0x24')](respondWithResult(_0x55d114,null))['catch'](handleError(_0x55d114,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9957=['dst','src','uniqueid','lodash','util','../../config/logger','api','bluebird','request-promise','path','rimraf','./cdr.attributes','exports','define','Cdr','accountcode','calldate','disposition'];(function(_0x40f2a4,_0x261c4b){var _0x48f496=function(_0x38f49b){while(--_0x38f49b){_0x40f2a4['push'](_0x40f2a4['shift']());}};_0x48f496(++_0x261c4b);}(_0x9957,0x93));var _0x7995=function(_0x618414,_0x1a7a60){_0x618414=_0x618414-0x0;var _0x21c19a=_0x9957[_0x618414];return _0x21c19a;};'use strict';var _=require(_0x7995('0x0'));var util=require(_0x7995('0x1'));var logger=require(_0x7995('0x2'))(_0x7995('0x3'));var moment=require('moment');var BPromise=require(_0x7995('0x4'));var rp=require(_0x7995('0x5'));var fs=require('fs');var path=require(_0x7995('0x6'));var rimraf=require(_0x7995('0x7'));var config=require('../../config/environment');var attributes=require(_0x7995('0x8'));module[_0x7995('0x9')]=function(_0x137b6b,_0x219534){return _0x137b6b[_0x7995('0xa')](_0x7995('0xb'),attributes,{'tableName':'cdr','paranoid':![],'indexes':[{'name':_0x7995('0xc'),'fields':[_0x7995('0xc')]},{'name':'calldate','fields':[_0x7995('0xd')]},{'name':_0x7995('0xe'),'fields':[_0x7995('0xe')]},{'name':_0x7995('0xf'),'fields':[_0x7995('0xf')]},{'name':_0x7995('0x10'),'fields':[_0x7995('0x10')]},{'name':'uniqueid','fields':[_0x7995('0x11')]}],'timestamps':![]});};
\ No newline at end of file
+var _0x7a54=['Cdr','cdr','accountcode','disposition','dst','src','uniqueid','lodash','util','../../config/logger','moment','bluebird','path','rimraf','../../config/environment','./cdr.attributes','exports'];(function(_0x599edf,_0x83aaf){var _0x3e4f6a=function(_0x1d02f5){while(--_0x1d02f5){_0x599edf['push'](_0x599edf['shift']());}};_0x3e4f6a(++_0x83aaf);}(_0x7a54,0x106));var _0x47a5=function(_0x1b5cf7,_0x44c1a5){_0x1b5cf7=_0x1b5cf7-0x0;var _0xe5f114=_0x7a54[_0x1b5cf7];return _0xe5f114;};'use strict';var _=require(_0x47a5('0x0'));var util=require(_0x47a5('0x1'));var logger=require(_0x47a5('0x2'))('api');var moment=require(_0x47a5('0x3'));var BPromise=require(_0x47a5('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x47a5('0x5'));var rimraf=require(_0x47a5('0x6'));var config=require(_0x47a5('0x7'));var attributes=require(_0x47a5('0x8'));module[_0x47a5('0x9')]=function(_0x545a97,_0x3d5629){return _0x545a97['define'](_0x47a5('0xa'),attributes,{'tableName':_0x47a5('0xb'),'paranoid':![],'indexes':[{'name':'accountcode','fields':[_0x47a5('0xc')]},{'name':'calldate','fields':['calldate']},{'name':'disposition','fields':[_0x47a5('0xd')]},{'name':_0x47a5('0xe'),'fields':['dst']},{'name':_0x47a5('0xf'),'fields':['src']},{'name':'uniqueid','fields':[_0x47a5('0x10')]}],'timestamps':![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa585=['lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','client','http','request','then','info','Cdr,\x20%s,\x20%s','debug','Cdr,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','message','result','catch'];(function(_0x472ede,_0xeafc05){var _0x4b35fd=function(_0x3ae5fc){while(--_0x3ae5fc){_0x472ede['push'](_0x472ede['shift']());}};_0x4b35fd(++_0xeafc05);}(_0xa585,0x84));var _0x5a58=function(_0x4fd508,_0x340941){_0x4fd508=_0x4fd508-0x0;var _0xc8e65b=_0xa585[_0x4fd508];return _0xc8e65b;};'use strict';var _=require(_0x5a58('0x0'));var util=require(_0x5a58('0x1'));var moment=require(_0x5a58('0x2'));var BPromise=require(_0x5a58('0x3'));var rs=require(_0x5a58('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x5a58('0x5'))['db'];var utils=require(_0x5a58('0x6'));var logger=require(_0x5a58('0x7'))('rpc');var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0x5a58('0x8')][_0x5a58('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x39a0c9,_0x3a1de1,_0x24d726){return new BPromise(function(_0xe42f84,_0x4396bc){return client[_0x5a58('0xa')](_0x39a0c9,_0x24d726)[_0x5a58('0xb')](function(_0xf3aef9){logger[_0x5a58('0xc')](_0x5a58('0xd'),_0x3a1de1,'request\x20sent');logger[_0x5a58('0xe')](_0x5a58('0xf'),_0x3a1de1,_0x5a58('0x10'),JSON['stringify'](_0xf3aef9));if(_0xf3aef9[_0x5a58('0x11')]){if(_0xf3aef9[_0x5a58('0x11')][_0x5a58('0x12')]===0x1f4){logger['error'](_0x5a58('0xd'),_0x3a1de1,_0xf3aef9[_0x5a58('0x11')][_0x5a58('0x13')]);return _0x4396bc(_0xf3aef9[_0x5a58('0x11')][_0x5a58('0x13')]);}logger['error']('Cdr,\x20%s,\x20%s',_0x3a1de1,_0xf3aef9['error'][_0x5a58('0x13')]);return _0xe42f84(_0xf3aef9['error'][_0x5a58('0x13')]);}else{logger[_0x5a58('0xc')](_0x5a58('0xd'),_0x3a1de1,'request\x20sent');_0xe42f84(_0xf3aef9[_0x5a58('0x14')]['message']);}})[_0x5a58('0x15')](function(_0x2ed5c3){logger[_0x5a58('0x11')](_0x5a58('0xd'),_0x3a1de1,_0x2ed5c3);_0x4396bc(_0x2ed5c3);});});}
\ No newline at end of file
+var _0xb3dd=['../../mysqldb','../../config/utils','rpc','client','http','then','info','Cdr,\x20%s,\x20%s','request\x20sent','debug','Cdr,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','lodash','util','moment','randomstring','ioredis'];(function(_0x28e009,_0x3df9fb){var _0x38998f=function(_0x2c57f8){while(--_0x2c57f8){_0x28e009['push'](_0x28e009['shift']());}};_0x38998f(++_0x3df9fb);}(_0xb3dd,0x19d));var _0xdb3d=function(_0x5d038d,_0xdb699d){_0x5d038d=_0x5d038d-0x0;var _0x20001c=_0xb3dd[_0x5d038d];return _0x20001c;};'use strict';var _=require(_0xdb3d('0x0'));var util=require(_0xdb3d('0x1'));var moment=require(_0xdb3d('0x2'));var BPromise=require('bluebird');var rs=require(_0xdb3d('0x3'));var fs=require('fs');var Redis=require(_0xdb3d('0x4'));var db=require(_0xdb3d('0x5'))['db'];var utils=require(_0xdb3d('0x6'));var logger=require('../../config/logger')(_0xdb3d('0x7'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0xdb3d('0x8')][_0xdb3d('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x4c4444,_0x1f86aa,_0x85b275){return new BPromise(function(_0x201d48,_0x28a116){return client['request'](_0x4c4444,_0x85b275)[_0xdb3d('0xa')](function(_0x34a57c){logger[_0xdb3d('0xb')](_0xdb3d('0xc'),_0x1f86aa,_0xdb3d('0xd'));logger[_0xdb3d('0xe')](_0xdb3d('0xf'),_0x1f86aa,_0xdb3d('0xd'),JSON[_0xdb3d('0x10')](_0x34a57c));if(_0x34a57c[_0xdb3d('0x11')]){if(_0x34a57c[_0xdb3d('0x11')][_0xdb3d('0x12')]===0x1f4){logger[_0xdb3d('0x11')]('Cdr,\x20%s,\x20%s',_0x1f86aa,_0x34a57c[_0xdb3d('0x11')]['message']);return _0x28a116(_0x34a57c[_0xdb3d('0x11')]['message']);}logger['error'](_0xdb3d('0xc'),_0x1f86aa,_0x34a57c['error'][_0xdb3d('0x13')]);return _0x201d48(_0x34a57c['error']['message']);}else{logger[_0xdb3d('0xb')](_0xdb3d('0xc'),_0x1f86aa,'request\x20sent');_0x201d48(_0x34a57c[_0xdb3d('0x14')][_0xdb3d('0x13')]);}})[_0xdb3d('0x15')](function(_0x45c950){logger[_0xdb3d('0x11')](_0xdb3d('0xc'),_0x1f86aa,_0x45c950);_0x28a116(_0x45c950);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['isAuthenticated','create','put','/:id','destroy','exports','multer','util','path','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./cdr.controller','get','index','/describe','show','post'];(function(_0x1589dd,_0x2b9d22){var _0x1bddd1=function(_0x3687f8){while(--_0x3687f8){_0x1589dd['push'](_0x1589dd['shift']());}};_0x1bddd1(++_0x2b9d22);}(_0xa9e0,0x123));var _0x0a9e=function(_0x4baae2,_0x487ab6){_0x4baae2=_0x4baae2-0x0;var _0x1a2285=_0xa9e0[_0x4baae2];return _0x1a2285;};'use strict';var multer=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var path=require(_0x0a9e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x0a9e('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x0a9e('0x4'));var interaction=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));var controller=require(_0x0a9e('0x7'));router[_0x0a9e('0x8')]('/',auth['isAuthenticated'](),controller[_0x0a9e('0x9')]);router[_0x0a9e('0x8')](_0x0a9e('0xa'),auth['isAuthenticated'](),controller['describe']);router[_0x0a9e('0x8')]('/:id',auth['isAuthenticated'](),controller[_0x0a9e('0xb')]);router[_0x0a9e('0xc')]('/',auth[_0x0a9e('0xd')](),controller[_0x0a9e('0xe')]);router[_0x0a9e('0xf')](_0x0a9e('0x10'),auth['isAuthenticated'](),controller['update']);router['delete']('/:id',auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x11')]);module[_0x0a9e('0x12')]=router;
\ No newline at end of file
+var _0xb10b=['../../components/interaction/service','../../config/environment','./cdr.controller','get','index','isAuthenticated','describe','/:id','show','post','update','destroy','exports','multer','path','connect-timeout','express','fs-extra','../../components/auth/service'];(function(_0x1a647a,_0x3c940c){var _0x205d87=function(_0x4e9218){while(--_0x4e9218){_0x1a647a['push'](_0x1a647a['shift']());}};_0x205d87(++_0x3c940c);}(_0xb10b,0x12a));var _0xbb10=function(_0x5659c0,_0x5f2532){_0x5659c0=_0x5659c0-0x0;var _0x36e3c0=_0xb10b[_0x5659c0];return _0x36e3c0;};'use strict';var multer=require(_0xbb10('0x0'));var util=require('util');var path=require(_0xbb10('0x1'));var timeout=require(_0xbb10('0x2'));var express=require(_0xbb10('0x3'));var router=express['Router']();var fs_extra=require(_0xbb10('0x4'));var auth=require(_0xbb10('0x5'));var interaction=require(_0xbb10('0x6'));var config=require(_0xbb10('0x7'));var controller=require(_0xbb10('0x8'));router[_0xbb10('0x9')]('/',auth['isAuthenticated'](),controller[_0xbb10('0xa')]);router[_0xbb10('0x9')]('/describe',auth[_0xbb10('0xb')](),controller[_0xbb10('0xc')]);router[_0xbb10('0x9')](_0xbb10('0xd'),auth[_0xbb10('0xb')](),controller[_0xbb10('0xe')]);router[_0xbb10('0xf')]('/',auth[_0xbb10('0xb')](),controller['create']);router['put'](_0xbb10('0xd'),auth[_0xbb10('0xb')](),controller[_0xbb10('0x10')]);router['delete'](_0xbb10('0xd'),auth['isAuthenticated'](),controller[_0xbb10('0x11')]);module[_0xbb10('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf9c6=['STRING','noop','TEXT','sequelize','exports','INTEGER'];(function(_0x16fdf2,_0x5c0a1e){var _0x23c7ba=function(_0xa40af){while(--_0xa40af){_0x16fdf2['push'](_0x16fdf2['shift']());}};_0x23c7ba(++_0x5c0a1e);}(_0xf9c6,0x18f));var _0x6f9c=function(_0x459274,_0x384c01){_0x459274=_0x459274-0x0;var _0x35c4ab=_0xf9c6[_0x459274];return _0x35c4ab;};'use strict';var Sequelize=require(_0x6f9c('0x0'));module[_0x6f9c('0x1')]={'priority':{'type':Sequelize[_0x6f9c('0x2')],'allowNull':![]},'app':{'type':Sequelize[_0x6f9c('0x3')],'allowNull':![],'defaultValue':_0x6f9c('0x4')},'appdata':{'type':Sequelize[_0x6f9c('0x5')]()},'description':{'type':Sequelize[_0x6f9c('0x3')]},'interval':{'type':Sequelize[_0x6f9c('0x3')],'defaultValue':'*,*,*,*'}};
\ No newline at end of file
+var _0x91b9=['*,*,*,*','sequelize','noop','TEXT','STRING'];(function(_0x167cc1,_0x56ef5a){var _0x10bc4b=function(_0xd6a255){while(--_0xd6a255){_0x167cc1['push'](_0x167cc1['shift']());}};_0x10bc4b(++_0x56ef5a);}(_0x91b9,0xe2));var _0x991b=function(_0xfd69c1,_0x502768){_0xfd69c1=_0xfd69c1-0x0;var _0x200ec8=_0x91b9[_0xfd69c1];return _0x200ec8;};'use strict';var Sequelize=require(_0x991b('0x0'));module['exports']={'priority':{'type':Sequelize['INTEGER'],'allowNull':![]},'app':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0x991b('0x1')},'appdata':{'type':Sequelize[_0x991b('0x2')]()},'description':{'type':Sequelize['STRING']},'interval':{'type':Sequelize[_0x991b('0x3')],'defaultValue':_0x991b('0x4')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4f6f=['../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','status','end','json','offset','undefined','count','limit','set','Content-Range','apply','reject','save','update','then','destroy','sendStatus','error','stack','name','send','params','model','keys','ChatApplication','rawAttributes','query','filters','attributes','intersection','fields','include','merge','options','find','catch','body','eml-format','rimraf','zip-dir','request-promise','bluebird','mustache','path','sox','ejs','fs-extra','lodash','crypto','to-csv','querystring','papaparse','ioredis','../../components/auth/service'];(function(_0x42cae2,_0x284ef8){var _0x5f256f=function(_0x41abc8){while(--_0x41abc8){_0x42cae2['push'](_0x42cae2['shift']());}};_0x5f256f(++_0x284ef8);}(_0x4f6f,0x157));var _0xf4f6=function(_0x468b0f,_0x408566){_0x468b0f=_0x468b0f-0x0;var _0x3e74d9=_0x4f6f[_0x468b0f];return _0x3e74d9;};'use strict';var emlformat=require(_0xf4f6('0x0'));var rimraf=require(_0xf4f6('0x1'));var zipdir=require(_0xf4f6('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xf4f6('0x3'));var moment=require('moment');var BPromise=require(_0xf4f6('0x4'));var Mustache=require(_0xf4f6('0x5'));var util=require('util');var path=require(_0xf4f6('0x6'));var sox=require(_0xf4f6('0x7'));var csv=require('to-csv');var ejs=require(_0xf4f6('0x8'));var fs=require('fs');var fs_extra=require(_0xf4f6('0x9'));var _=require(_0xf4f6('0xa'));var squel=require('squel');var crypto=require(_0xf4f6('0xb'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xf4f6('0xc'));var querystring=require(_0xf4f6('0xd'));var Papa=require(_0xf4f6('0xe'));var Redis=require(_0xf4f6('0xf'));var authService=require(_0xf4f6('0x10'));var qs=require(_0xf4f6('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xf4f6('0x12'));var logger=require(_0xf4f6('0x13'))(_0xf4f6('0x14'));var utils=require(_0xf4f6('0x15'));var config=require(_0xf4f6('0x16'));var licenseUtil=require(_0xf4f6('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x5ea38b,_0x107046){_0x107046=_0x107046||0xcc;return function(_0x4976f5){if(_0x4976f5){return _0x5ea38b['sendStatus'](_0x107046);}return _0x5ea38b[_0xf4f6('0x18')](_0x107046)[_0xf4f6('0x19')]();};}function respondWithResult(_0x33492d,_0x4e623b){_0x4e623b=_0x4e623b||0xc8;return function(_0x3f314c){if(_0x3f314c){return _0x33492d[_0xf4f6('0x18')](_0x4e623b)[_0xf4f6('0x1a')](_0x3f314c);}};}function respondWithFilteredResult(_0x51c4c3,_0xfdf7ae){return function(_0x5ba4c4){if(_0x5ba4c4){var _0x1f06b6=typeof _0xfdf7ae[_0xf4f6('0x1b')]===_0xf4f6('0x1c')&&typeof _0xfdf7ae['limit']===_0xf4f6('0x1c');var _0x310845=_0x5ba4c4[_0xf4f6('0x1d')];var _0x4e1d2a=_0x1f06b6?0x0:_0xfdf7ae[_0xf4f6('0x1b')];var _0x4cb047=_0x1f06b6?_0x5ba4c4[_0xf4f6('0x1d')]:_0xfdf7ae[_0xf4f6('0x1b')]+_0xfdf7ae[_0xf4f6('0x1e')];var _0x4f0d14;if(_0x4cb047>=_0x310845){_0x4cb047=_0x310845;_0x4f0d14=0xc8;}else{_0x4f0d14=0xce;}_0x51c4c3[_0xf4f6('0x18')](_0x4f0d14);return _0x51c4c3[_0xf4f6('0x1f')](_0xf4f6('0x20'),_0x4e1d2a+'-'+_0x4cb047+'/'+_0x310845)[_0xf4f6('0x1a')](_0x5ba4c4);}return null;};}function patchUpdates(_0x112918){return function(_0x794453){try{jsonpatch[_0xf4f6('0x21')](_0x794453,_0x112918,!![]);}catch(_0x30917b){return BPromise[_0xf4f6('0x22')](_0x30917b);}return _0x794453[_0xf4f6('0x23')]();};}function saveUpdates(_0x3a5e24,_0x4d8497){return function(_0x9148f1){if(_0x9148f1){return _0x9148f1[_0xf4f6('0x24')](_0x3a5e24)[_0xf4f6('0x25')](function(_0x55ac8c){return _0x55ac8c;});}return null;};}function removeEntity(_0x1324f3,_0x45b5fb){return function(_0x5bbc9d){if(_0x5bbc9d){return _0x5bbc9d[_0xf4f6('0x26')]()[_0xf4f6('0x25')](function(){_0x1324f3[_0xf4f6('0x18')](0xcc)['end']();});}};}function handleEntityNotFound(_0x32af7b,_0x224be7){return function(_0x464be1){if(!_0x464be1){_0x32af7b[_0xf4f6('0x27')](0x194);}return _0x464be1;};}function handleError(_0x5f1d69,_0x303e94){_0x303e94=_0x303e94||0x1f4;return function(_0x330ec1){logger[_0xf4f6('0x28')](_0x330ec1[_0xf4f6('0x29')]);if(_0x330ec1[_0xf4f6('0x2a')]){delete _0x330ec1[_0xf4f6('0x2a')];}_0x5f1d69[_0xf4f6('0x18')](_0x303e94)[_0xf4f6('0x2b')](_0x330ec1);};}exports['show']=function(_0x43604d,_0x3fb157){var _0xe13578={'raw':!![],'where':{'id':_0x43604d[_0xf4f6('0x2c')]['id']}},_0x59490b={};_0x59490b[_0xf4f6('0x2d')]=_[_0xf4f6('0x2e')](db[_0xf4f6('0x2f')][_0xf4f6('0x30')]);_0x59490b[_0xf4f6('0x31')]=_[_0xf4f6('0x2e')](_0x43604d[_0xf4f6('0x31')]);_0x59490b[_0xf4f6('0x32')]=_['intersection'](_0x59490b['model'],_0x59490b[_0xf4f6('0x31')]);_0xe13578[_0xf4f6('0x33')]=_[_0xf4f6('0x34')](_0x59490b[_0xf4f6('0x2d')],qs[_0xf4f6('0x35')](_0x43604d[_0xf4f6('0x31')][_0xf4f6('0x35')]));_0xe13578[_0xf4f6('0x33')]=_0xe13578[_0xf4f6('0x33')]['length']?_0xe13578[_0xf4f6('0x33')]:_0x59490b[_0xf4f6('0x2d')];if(_0x43604d[_0xf4f6('0x31')]['includeAll']){_0xe13578[_0xf4f6('0x36')]=[{'all':!![]}];}_0xe13578=_[_0xf4f6('0x37')]({},_0xe13578,_0x43604d[_0xf4f6('0x38')]);return db[_0xf4f6('0x2f')][_0xf4f6('0x39')](_0xe13578)['then'](handleEntityNotFound(_0x3fb157,null))[_0xf4f6('0x25')](respondWithResult(_0x3fb157,null))[_0xf4f6('0x3a')](handleError(_0x3fb157,null));};exports['update']=function(_0x36315f,_0x384436){if(_0x36315f[_0xf4f6('0x3b')]['id']){delete _0x36315f[_0xf4f6('0x3b')]['id'];}return db['ChatApplication'][_0xf4f6('0x39')]({'where':{'id':_0x36315f['params']['id']}})[_0xf4f6('0x25')](handleEntityNotFound(_0x384436,null))[_0xf4f6('0x25')](saveUpdates(_0x36315f[_0xf4f6('0x3b')],null))['then'](respondWithResult(_0x384436,null))[_0xf4f6('0x3a')](handleError(_0x384436,null));};exports[_0xf4f6('0x26')]=function(_0x46f9b9,_0xf11e25){return db['ChatApplication'][_0xf4f6('0x39')]({'where':{'id':_0x46f9b9[_0xf4f6('0x2c')]['id']}})[_0xf4f6('0x25')](handleEntityNotFound(_0xf11e25,null))['then'](removeEntity(_0xf11e25,null))[_0xf4f6('0x3a')](handleError(_0xf11e25,null));};
\ No newline at end of file
+var _0x2116=['sox','to-csv','fs-extra','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','status','end','json','offset','undefined','count','limit','set','Content-Range','reject','update','then','error','stack','name','send','show','params','model','keys','ChatApplication','query','attributes','intersection','fields','length','options','find','body','destroy','catch','rimraf','fast-json-patch','request-promise','moment','bluebird','util','path'];(function(_0x5bc544,_0x36912d){var _0x5c38=function(_0x280622){while(--_0x280622){_0x5bc544['push'](_0x5bc544['shift']());}};_0x5c38(++_0x36912d);}(_0x2116,0x67));var _0x6211=function(_0x2456dd,_0xb579a7){_0x2456dd=_0x2456dd-0x0;var _0x270322=_0x2116[_0x2456dd];return _0x270322;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x6211('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x6211('0x1'));var rp=require(_0x6211('0x2'));var moment=require(_0x6211('0x3'));var BPromise=require(_0x6211('0x4'));var Mustache=require('mustache');var util=require(_0x6211('0x5'));var path=require(_0x6211('0x6'));var sox=require(_0x6211('0x7'));var csv=require(_0x6211('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x6211('0x9'));var _=require('lodash');var squel=require(_0x6211('0xa'));var crypto=require(_0x6211('0xb'));var jsforce=require(_0x6211('0xc'));var deskjs=require(_0x6211('0xd'));var toCsv=require(_0x6211('0x8'));var querystring=require(_0x6211('0xe'));var Papa=require(_0x6211('0xf'));var Redis=require('ioredis');var authService=require(_0x6211('0x10'));var qs=require(_0x6211('0x11'));var as=require(_0x6211('0x12'));var hardwareService=require(_0x6211('0x13'));var logger=require(_0x6211('0x14'))(_0x6211('0x15'));var utils=require(_0x6211('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x6211('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x337362,_0x6661a7){_0x6661a7=_0x6661a7||0xcc;return function(_0x22963d){if(_0x22963d){return _0x337362['sendStatus'](_0x6661a7);}return _0x337362[_0x6211('0x18')](_0x6661a7)[_0x6211('0x19')]();};}function respondWithResult(_0x1a27a2,_0x509faa){_0x509faa=_0x509faa||0xc8;return function(_0x54a303){if(_0x54a303){return _0x1a27a2[_0x6211('0x18')](_0x509faa)[_0x6211('0x1a')](_0x54a303);}};}function respondWithFilteredResult(_0x23f8d2,_0xf69c79){return function(_0xa23863){if(_0xa23863){var _0x15adb6=typeof _0xf69c79[_0x6211('0x1b')]===_0x6211('0x1c')&&typeof _0xf69c79['limit']===_0x6211('0x1c');var _0x432c18=_0xa23863[_0x6211('0x1d')];var _0x2ccbb0=_0x15adb6?0x0:_0xf69c79[_0x6211('0x1b')];var _0x14c051=_0x15adb6?_0xa23863[_0x6211('0x1d')]:_0xf69c79['offset']+_0xf69c79[_0x6211('0x1e')];var _0x1528e6;if(_0x14c051>=_0x432c18){_0x14c051=_0x432c18;_0x1528e6=0xc8;}else{_0x1528e6=0xce;}_0x23f8d2['status'](_0x1528e6);return _0x23f8d2[_0x6211('0x1f')](_0x6211('0x20'),_0x2ccbb0+'-'+_0x14c051+'/'+_0x432c18)[_0x6211('0x1a')](_0xa23863);}return null;};}function patchUpdates(_0x30d6a5){return function(_0x4d99bc){try{jsonpatch['apply'](_0x4d99bc,_0x30d6a5,!![]);}catch(_0x4252d3){return BPromise[_0x6211('0x21')](_0x4252d3);}return _0x4d99bc['save']();};}function saveUpdates(_0x52eb53,_0x15ca00){return function(_0x1e6a53){if(_0x1e6a53){return _0x1e6a53[_0x6211('0x22')](_0x52eb53)[_0x6211('0x23')](function(_0x5b50cd){return _0x5b50cd;});}return null;};}function removeEntity(_0x2c1c0a,_0x311054){return function(_0x16fb0c){if(_0x16fb0c){return _0x16fb0c['destroy']()[_0x6211('0x23')](function(){_0x2c1c0a[_0x6211('0x18')](0xcc)[_0x6211('0x19')]();});}};}function handleEntityNotFound(_0x4a13f8,_0x532778){return function(_0x4ebae9){if(!_0x4ebae9){_0x4a13f8['sendStatus'](0x194);}return _0x4ebae9;};}function handleError(_0x524537,_0x15a096){_0x15a096=_0x15a096||0x1f4;return function(_0x2badd2){logger[_0x6211('0x24')](_0x2badd2[_0x6211('0x25')]);if(_0x2badd2[_0x6211('0x26')]){delete _0x2badd2[_0x6211('0x26')];}_0x524537[_0x6211('0x18')](_0x15a096)[_0x6211('0x27')](_0x2badd2);};}exports[_0x6211('0x28')]=function(_0x19a369,_0x105721){var _0x38f5f8={'raw':!![],'where':{'id':_0x19a369[_0x6211('0x29')]['id']}},_0x3564f2={};_0x3564f2[_0x6211('0x2a')]=_[_0x6211('0x2b')](db[_0x6211('0x2c')]['rawAttributes']);_0x3564f2[_0x6211('0x2d')]=_[_0x6211('0x2b')](_0x19a369[_0x6211('0x2d')]);_0x3564f2['filters']=_['intersection'](_0x3564f2[_0x6211('0x2a')],_0x3564f2['query']);_0x38f5f8[_0x6211('0x2e')]=_[_0x6211('0x2f')](_0x3564f2[_0x6211('0x2a')],qs['fields'](_0x19a369[_0x6211('0x2d')][_0x6211('0x30')]));_0x38f5f8[_0x6211('0x2e')]=_0x38f5f8[_0x6211('0x2e')][_0x6211('0x31')]?_0x38f5f8['attributes']:_0x3564f2['model'];if(_0x19a369[_0x6211('0x2d')]['includeAll']){_0x38f5f8['include']=[{'all':!![]}];}_0x38f5f8=_['merge']({},_0x38f5f8,_0x19a369[_0x6211('0x32')]);return db[_0x6211('0x2c')][_0x6211('0x33')](_0x38f5f8)['then'](handleEntityNotFound(_0x105721,null))[_0x6211('0x23')](respondWithResult(_0x105721,null))['catch'](handleError(_0x105721,null));};exports[_0x6211('0x22')]=function(_0x355496,_0x3c12e7){if(_0x355496['body']['id']){delete _0x355496[_0x6211('0x34')]['id'];}return db[_0x6211('0x2c')][_0x6211('0x33')]({'where':{'id':_0x355496[_0x6211('0x29')]['id']}})[_0x6211('0x23')](handleEntityNotFound(_0x3c12e7,null))[_0x6211('0x23')](saveUpdates(_0x355496[_0x6211('0x34')],null))[_0x6211('0x23')](respondWithResult(_0x3c12e7,null))['catch'](handleError(_0x3c12e7,null));};exports[_0x6211('0x35')]=function(_0x32e27e,_0x1e2888){return db[_0x6211('0x2c')][_0x6211('0x33')]({'where':{'id':_0x32e27e['params']['id']}})[_0x6211('0x23')](handleEntityNotFound(_0x1e2888,null))[_0x6211('0x23')](removeEntity(_0x1e2888,null))[_0x6211('0x36')](handleError(_0x1e2888,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe1ce=['util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','exports','define','ChatApplication','lodash'];(function(_0x4ae666,_0x5e849a){var _0x3d282a=function(_0x2d9979){while(--_0x2d9979){_0x4ae666['push'](_0x4ae666['shift']());}};_0x3d282a(++_0x5e849a);}(_0xe1ce,0x15e));var _0xee1c=function(_0x1beef3,_0x57c4b8){_0x1beef3=_0x1beef3-0x0;var _0x5af964=_0xe1ce[_0x1beef3];return _0x5af964;};'use strict';var _=require(_0xee1c('0x0'));var util=require(_0xee1c('0x1'));var logger=require(_0xee1c('0x2'))(_0xee1c('0x3'));var moment=require(_0xee1c('0x4'));var BPromise=require(_0xee1c('0x5'));var rp=require(_0xee1c('0x6'));var fs=require('fs');var path=require(_0xee1c('0x7'));var rimraf=require(_0xee1c('0x8'));var config=require(_0xee1c('0x9'));var attributes=require('./chatApplication.attributes');module[_0xee1c('0xa')]=function(_0x4f0733,_0x5729f0){return _0x4f0733[_0xee1c('0xb')](_0xee1c('0xc'),attributes,{'tableName':'chat_applications','paranoid':![],'indexes':[],'timestamps':!![],'charset':'utf8mb4','collate':'utf8mb4_unicode_ci'});};
\ No newline at end of file
+var _0x209f=['./chatApplication.attributes','exports','ChatApplication','chat_applications','utf8mb4','utf8mb4_unicode_ci','lodash','../../config/logger','api','bluebird','request-promise','path','../../config/environment'];(function(_0x39494f,_0x400b84){var _0x20bcc9=function(_0x25f794){while(--_0x25f794){_0x39494f['push'](_0x39494f['shift']());}};_0x20bcc9(++_0x400b84);}(_0x209f,0x199));var _0xf209=function(_0x4564d1,_0x5c1617){_0x4564d1=_0x4564d1-0x0;var _0x2691e3=_0x209f[_0x4564d1];return _0x2691e3;};'use strict';var _=require(_0xf209('0x0'));var util=require('util');var logger=require(_0xf209('0x1'))(_0xf209('0x2'));var moment=require('moment');var BPromise=require(_0xf209('0x3'));var rp=require(_0xf209('0x4'));var fs=require('fs');var path=require(_0xf209('0x5'));var rimraf=require('rimraf');var config=require(_0xf209('0x6'));var attributes=require(_0xf209('0x7'));module[_0xf209('0x8')]=function(_0x24b4e2,_0x46c481){return _0x24b4e2['define'](_0xf209('0x9'),attributes,{'tableName':_0xf209('0xa'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0xf209('0xb'),'collate':_0xf209('0xc')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf5e3=['ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','request','then','info','debug','ChatApplication,\x20%s,\x20%s,\x20%s','error','code','ChatApplication,\x20%s,\x20%s','message','request\x20sent','result','catch','lodash','util','moment','randomstring'];(function(_0x248baa,_0x4fbab1){var _0x4e8f6c=function(_0x252bc8){while(--_0x252bc8){_0x248baa['push'](_0x248baa['shift']());}};_0x4e8f6c(++_0x4fbab1);}(_0xf5e3,0x13e));var _0x3f5e=function(_0x6cf19c,_0x2f3f02){_0x6cf19c=_0x6cf19c-0x0;var _0xce14f3=_0xf5e3[_0x6cf19c];return _0xce14f3;};'use strict';var _=require(_0x3f5e('0x0'));var util=require(_0x3f5e('0x1'));var moment=require(_0x3f5e('0x2'));var BPromise=require('bluebird');var rs=require(_0x3f5e('0x3'));var fs=require('fs');var Redis=require(_0x3f5e('0x4'));var db=require(_0x3f5e('0x5'))['db'];var utils=require(_0x3f5e('0x6'));var logger=require(_0x3f5e('0x7'))(_0x3f5e('0x8'));var config=require(_0x3f5e('0x9'));var jayson=require(_0x3f5e('0xa'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0xea8f77,_0x40a479,_0x1f9e47){return new BPromise(function(_0x598a59,_0x40a0fc){return client[_0x3f5e('0xb')](_0xea8f77,_0x1f9e47)[_0x3f5e('0xc')](function(_0x5b1afd){logger[_0x3f5e('0xd')]('ChatApplication,\x20%s,\x20%s',_0x40a479,'request\x20sent');logger[_0x3f5e('0xe')](_0x3f5e('0xf'),_0x40a479,'request\x20sent',JSON['stringify'](_0x5b1afd));if(_0x5b1afd[_0x3f5e('0x10')]){if(_0x5b1afd['error'][_0x3f5e('0x11')]===0x1f4){logger[_0x3f5e('0x10')](_0x3f5e('0x12'),_0x40a479,_0x5b1afd[_0x3f5e('0x10')][_0x3f5e('0x13')]);return _0x40a0fc(_0x5b1afd[_0x3f5e('0x10')][_0x3f5e('0x13')]);}logger[_0x3f5e('0x10')](_0x3f5e('0x12'),_0x40a479,_0x5b1afd[_0x3f5e('0x10')][_0x3f5e('0x13')]);return _0x598a59(_0x5b1afd[_0x3f5e('0x10')][_0x3f5e('0x13')]);}else{logger[_0x3f5e('0xd')](_0x3f5e('0x12'),_0x40a479,_0x3f5e('0x14'));_0x598a59(_0x5b1afd[_0x3f5e('0x15')]['message']);}})[_0x3f5e('0x16')](function(_0x2cc355){logger['error'](_0x3f5e('0x12'),_0x40a479,_0x2cc355);_0x40a0fc(_0x2cc355);});});}
\ No newline at end of file
+var _0x1d68=['randomstring','ioredis','../../config/utils','rpc','../../config/environment','client','request','then','info','ChatApplication,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','lodash','util','bluebird'];(function(_0xd0d424,_0x1151d2){var _0x20ab5e=function(_0xcfe0e3){while(--_0xcfe0e3){_0xd0d424['push'](_0xd0d424['shift']());}};_0x20ab5e(++_0x1151d2);}(_0x1d68,0x75));var _0x81d6=function(_0xce1a87,_0x372c44){_0xce1a87=_0xce1a87-0x0;var _0x26669d=_0x1d68[_0xce1a87];return _0x26669d;};'use strict';var _=require(_0x81d6('0x0'));var util=require(_0x81d6('0x1'));var moment=require('moment');var BPromise=require(_0x81d6('0x2'));var rs=require(_0x81d6('0x3'));var fs=require('fs');var Redis=require(_0x81d6('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x81d6('0x5'));var logger=require('../../config/logger')(_0x81d6('0x6'));var config=require(_0x81d6('0x7'));var jayson=require('jayson/promise');var client=jayson[_0x81d6('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x1c29cb,_0x95d314,_0x55cfbe){return new BPromise(function(_0x1948e1,_0x755abe){return client[_0x81d6('0x9')](_0x1c29cb,_0x55cfbe)[_0x81d6('0xa')](function(_0x446d91){logger[_0x81d6('0xb')](_0x81d6('0xc'),_0x95d314,_0x81d6('0xd'));logger[_0x81d6('0xe')]('ChatApplication,\x20%s,\x20%s,\x20%s',_0x95d314,'request\x20sent',JSON[_0x81d6('0xf')](_0x446d91));if(_0x446d91[_0x81d6('0x10')]){if(_0x446d91['error'][_0x81d6('0x11')]===0x1f4){logger[_0x81d6('0x10')](_0x81d6('0xc'),_0x95d314,_0x446d91[_0x81d6('0x10')][_0x81d6('0x12')]);return _0x755abe(_0x446d91['error'][_0x81d6('0x12')]);}logger['error']('ChatApplication,\x20%s,\x20%s',_0x95d314,_0x446d91[_0x81d6('0x10')]['message']);return _0x1948e1(_0x446d91['error'][_0x81d6('0x12')]);}else{logger[_0x81d6('0xb')](_0x81d6('0xc'),_0x95d314,_0x81d6('0xd'));_0x1948e1(_0x446d91[_0x81d6('0x13')][_0x81d6('0x12')]);}})['catch'](function(_0x28d708){logger[_0x81d6('0x10')](_0x81d6('0xc'),_0x95d314,_0x28d708);_0x755abe(_0x28d708);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb994=['express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','/:id','isAuthenticated','update','delete','destroy','util','path','connect-timeout'];(function(_0x3c704f,_0x5b5106){var _0x550c19=function(_0x562091){while(--_0x562091){_0x3c704f['push'](_0x3c704f['shift']());}};_0x550c19(++_0x5b5106);}(_0xb994,0x97));var _0x4b99=function(_0x39d812,_0x9b37e5){_0x39d812=_0x39d812-0x0;var _0x43882d=_0xb994[_0x39d812];return _0x43882d;};'use strict';var multer=require('multer');var util=require(_0x4b99('0x0'));var path=require(_0x4b99('0x1'));var timeout=require(_0x4b99('0x2'));var express=require(_0x4b99('0x3'));var router=express[_0x4b99('0x4')]();var fs_extra=require(_0x4b99('0x5'));var auth=require(_0x4b99('0x6'));var interaction=require(_0x4b99('0x7'));var config=require(_0x4b99('0x8'));var controller=require('./chatApplication.controller');router['get'](_0x4b99('0x9'),auth[_0x4b99('0xa')](),controller['show']);router['put'](_0x4b99('0x9'),auth[_0x4b99('0xa')](),controller[_0x4b99('0xb')]);router[_0x4b99('0xc')](_0x4b99('0x9'),auth[_0x4b99('0xa')](),controller[_0x4b99('0xd')]);module['exports']=router;
\ No newline at end of file
+var _0xd5a5=['util','path','connect-timeout','Router','../../components/interaction/service','./chatApplication.controller','get','/:id','show','put','update','isAuthenticated','destroy','exports'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0xd5a5,0xd2));var _0x5d5a=function(_0x1d2431,_0x251ec5){_0x1d2431=_0x1d2431-0x0;var _0x560b53=_0xd5a5[_0x1d2431];return _0x560b53;};'use strict';var multer=require('multer');var util=require(_0x5d5a('0x0'));var path=require(_0x5d5a('0x1'));var timeout=require(_0x5d5a('0x2'));var express=require('express');var router=express[_0x5d5a('0x3')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0x5d5a('0x4'));var config=require('../../config/environment');var controller=require(_0x5d5a('0x5'));router[_0x5d5a('0x6')](_0x5d5a('0x7'),auth['isAuthenticated'](),controller[_0x5d5a('0x8')]);router[_0x5d5a('0x9')](_0x5d5a('0x7'),auth['isAuthenticated'](),controller[_0x5d5a('0xa')]);router['delete'](_0x5d5a('0x7'),auth[_0x5d5a('0xb')](),controller[_0x5d5a('0xc')]);module[_0x5d5a('0xd')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd1ca=['sequelize','exports'];(function(_0x16d03f,_0x308f79){var _0x235081=function(_0xc768ec){while(--_0xc768ec){_0x16d03f['push'](_0x16d03f['shift']());}};_0x235081(++_0x308f79);}(_0xd1ca,0x140));var _0xad1c=function(_0x199572,_0x33e667){_0x199572=_0x199572-0x0;var _0x13cfa3=_0xd1ca[_0x199572];return _0x13cfa3;};'use strict';var Sequelize=require(_0xad1c('0x0'));module[_0xad1c('0x1')]={'name':{'type':Sequelize['STRING'],'allowNull':![]},'description':{'type':Sequelize['STRING']},'write':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]}};
\ No newline at end of file
+var _0x1c9c=['STRING','BOOLEAN','exports'];(function(_0x1e3881,_0x30c731){var _0xf705aa=function(_0x32b6a2){while(--_0x32b6a2){_0x1e3881['push'](_0x1e3881['shift']());}};_0xf705aa(++_0x30c731);}(_0x1c9c,0xa7));var _0xc1c9=function(_0x302325,_0x51c70c){_0x302325=_0x302325-0x0;var _0x3d0e32=_0x1c9c[_0x302325];return _0x3d0e32;};'use strict';var Sequelize=require('sequelize');module[_0xc1c9('0x0')]={'name':{'type':Sequelize[_0xc1c9('0x1')],'allowNull':![]},'description':{'type':Sequelize[_0xc1c9('0x1')]},'write':{'type':Sequelize[_0xc1c9('0x2')],'defaultValue':!![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x21a6=['create','body','describe','ChatInternalMessage','user','toInteger','addMembers','ids','getMembers','findOne','User','order','pick','removeMembers','addMessage','ChatGroupId','getMessages','$gte','split','format','YYYY-MM-DD\x20HH:mm:ss','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/license/util','redis','defaults','localhost','./chatGroup.socket','register','status','end','json','offset','count','limit','set','Content-Range','apply','reject','update','then','destroy','error','stack','name','index','map','ChatGroup','rawAttributes','fieldName','key','model','keys','filters','query','intersection','fields','attributes','hasOwnProperty','nolimit','sort','filter','where','merge','VIRTUAL','options','includeAll','findAll','rows','catch','show','params','length','find'];(function(_0x19283a,_0x303ffc){var _0x14b3b3=function(_0x434de2){while(--_0x434de2){_0x19283a['push'](_0x19283a['shift']());}};_0x14b3b3(++_0x303ffc);}(_0x21a6,0x1f0));var _0x621a=function(_0x26d6d9,_0x431cb8){_0x26d6d9=_0x26d6d9-0x0;var _0x1b4875=_0x21a6[_0x26d6d9];return _0x1b4875;};'use strict';var emlformat=require(_0x621a('0x0'));var rimraf=require(_0x621a('0x1'));var zipdir=require(_0x621a('0x2'));var jsonpatch=require(_0x621a('0x3'));var rp=require(_0x621a('0x4'));var moment=require(_0x621a('0x5'));var BPromise=require(_0x621a('0x6'));var Mustache=require(_0x621a('0x7'));var util=require(_0x621a('0x8'));var path=require('path');var sox=require('sox');var csv=require(_0x621a('0x9'));var ejs=require(_0x621a('0xa'));var fs=require('fs');var fs_extra=require(_0x621a('0xb'));var _=require(_0x621a('0xc'));var squel=require(_0x621a('0xd'));var crypto=require(_0x621a('0xe'));var jsforce=require(_0x621a('0xf'));var deskjs=require(_0x621a('0x10'));var toCsv=require(_0x621a('0x9'));var querystring=require(_0x621a('0x11'));var Papa=require('papaparse');var Redis=require(_0x621a('0x12'));var authService=require('../../components/auth/service');var qs=require(_0x621a('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x621a('0x14'))(_0x621a('0x15'));var utils=require(_0x621a('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x621a('0x17'));var db=require('../../mysqldb')['db'];config[_0x621a('0x18')]=_[_0x621a('0x19')](config['redis'],{'host':_0x621a('0x1a'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x621a('0x18')]));require(_0x621a('0x1b'))[_0x621a('0x1c')](socket);function respondWithStatusCode(_0x5f4ef7,_0xd4f528){_0xd4f528=_0xd4f528||0xcc;return function(_0x54eb8b){if(_0x54eb8b){return _0x5f4ef7['sendStatus'](_0xd4f528);}return _0x5f4ef7[_0x621a('0x1d')](_0xd4f528)[_0x621a('0x1e')]();};}function respondWithResult(_0x26ba03,_0x2c157c){_0x2c157c=_0x2c157c||0xc8;return function(_0x50c6a1){if(_0x50c6a1){return _0x26ba03[_0x621a('0x1d')](_0x2c157c)[_0x621a('0x1f')](_0x50c6a1);}};}function respondWithFilteredResult(_0x19c7ed,_0x46a7bc){return function(_0x4e2036){if(_0x4e2036){var _0x356b45=typeof _0x46a7bc[_0x621a('0x20')]==='undefined'&&typeof _0x46a7bc['limit']==='undefined';var _0x11b3ee=_0x4e2036[_0x621a('0x21')];var _0x5de37b=_0x356b45?0x0:_0x46a7bc[_0x621a('0x20')];var _0x68dad6=_0x356b45?_0x4e2036['count']:_0x46a7bc['offset']+_0x46a7bc[_0x621a('0x22')];var _0x2f38b4;if(_0x68dad6>=_0x11b3ee){_0x68dad6=_0x11b3ee;_0x2f38b4=0xc8;}else{_0x2f38b4=0xce;}_0x19c7ed[_0x621a('0x1d')](_0x2f38b4);return _0x19c7ed[_0x621a('0x23')](_0x621a('0x24'),_0x5de37b+'-'+_0x68dad6+'/'+_0x11b3ee)['json'](_0x4e2036);}return null;};}function patchUpdates(_0x439727){return function(_0x1909ad){try{jsonpatch[_0x621a('0x25')](_0x1909ad,_0x439727,!![]);}catch(_0x216a42){return BPromise[_0x621a('0x26')](_0x216a42);}return _0x1909ad['save']();};}function saveUpdates(_0x672809,_0x2b5bae){return function(_0x90e2a9){if(_0x90e2a9){return _0x90e2a9[_0x621a('0x27')](_0x672809)[_0x621a('0x28')](function(_0xd90c85){return _0xd90c85;});}return null;};}function removeEntity(_0x17f538,_0x1e742f){return function(_0x2cc340){if(_0x2cc340){return _0x2cc340[_0x621a('0x29')]()[_0x621a('0x28')](function(){_0x17f538[_0x621a('0x1d')](0xcc)[_0x621a('0x1e')]();});}};}function handleEntityNotFound(_0x3df292,_0x58d463){return function(_0x48e7b6){if(!_0x48e7b6){_0x3df292['sendStatus'](0x194);}return _0x48e7b6;};}function handleError(_0xd68a07,_0x5bd0c7){_0x5bd0c7=_0x5bd0c7||0x1f4;return function(_0x3e92c7){logger[_0x621a('0x2a')](_0x3e92c7[_0x621a('0x2b')]);if(_0x3e92c7['name']){delete _0x3e92c7[_0x621a('0x2c')];}_0xd68a07['status'](_0x5bd0c7)['send'](_0x3e92c7);};}exports[_0x621a('0x2d')]=function(_0xa00c2e,_0x338615){var _0x5dd58a={},_0x1ac56e={},_0x48eadf={'count':0x0,'rows':[]};var _0x587b29=_[_0x621a('0x2e')](db[_0x621a('0x2f')][_0x621a('0x30')],function(_0x8b30a5){return{'name':_0x8b30a5[_0x621a('0x31')],'type':_0x8b30a5['type'][_0x621a('0x32')]};});_0x1ac56e[_0x621a('0x33')]=_[_0x621a('0x2e')](_0x587b29,_0x621a('0x2c'));_0x1ac56e['query']=_[_0x621a('0x34')](_0xa00c2e['query']);_0x1ac56e[_0x621a('0x35')]=_['intersection'](_0x1ac56e[_0x621a('0x33')],_0x1ac56e[_0x621a('0x36')]);_0x5dd58a['attributes']=_[_0x621a('0x37')](_0x1ac56e['model'],qs[_0x621a('0x38')](_0xa00c2e['query'][_0x621a('0x38')]));_0x5dd58a[_0x621a('0x39')]=_0x5dd58a[_0x621a('0x39')]['length']?_0x5dd58a['attributes']:_0x1ac56e[_0x621a('0x33')];if(!_0xa00c2e['query'][_0x621a('0x3a')](_0x621a('0x3b'))){_0x5dd58a[_0x621a('0x22')]=qs[_0x621a('0x22')](_0xa00c2e[_0x621a('0x36')]['limit']);_0x5dd58a['offset']=qs['offset'](_0xa00c2e['query']['offset']);}_0x5dd58a['order']=qs[_0x621a('0x3c')](_0xa00c2e[_0x621a('0x36')][_0x621a('0x3c')]);_0x5dd58a['where']=qs[_0x621a('0x35')](_['pick'](_0xa00c2e[_0x621a('0x36')],_0x1ac56e[_0x621a('0x35')]),_0x587b29);if(_0xa00c2e[_0x621a('0x36')][_0x621a('0x3d')]){_0x5dd58a[_0x621a('0x3e')]=_[_0x621a('0x3f')](_0x5dd58a['where'],{'$or':_[_0x621a('0x2e')](_0x587b29,function(_0x1204ba){if(_0x1204ba['type']!==_0x621a('0x40')){var _0x4a5f88={};_0x4a5f88[_0x1204ba[_0x621a('0x2c')]]={'$like':'%'+_0xa00c2e[_0x621a('0x36')][_0x621a('0x3d')]+'%'};return _0x4a5f88;}})});}_0x5dd58a=_[_0x621a('0x3f')]({},_0x5dd58a,_0xa00c2e[_0x621a('0x41')]);var _0x2025ff={'where':_0x5dd58a[_0x621a('0x3e')]};return db[_0x621a('0x2f')][_0x621a('0x21')](_0x2025ff)[_0x621a('0x28')](function(_0x452df1){_0x48eadf[_0x621a('0x21')]=_0x452df1;if(_0xa00c2e[_0x621a('0x36')][_0x621a('0x42')]){_0x5dd58a['include']=[{'all':!![]}];}return db[_0x621a('0x2f')][_0x621a('0x43')](_0x5dd58a);})[_0x621a('0x28')](function(_0x2560db){_0x48eadf[_0x621a('0x44')]=_0x2560db;return _0x48eadf;})['then'](respondWithFilteredResult(_0x338615,_0x5dd58a))[_0x621a('0x45')](handleError(_0x338615,null));};exports[_0x621a('0x46')]=function(_0x1f214a,_0x4115b8){var _0x29fdb8={'raw':!![],'where':{'id':_0x1f214a[_0x621a('0x47')]['id']}},_0x20161e={};_0x20161e[_0x621a('0x33')]=_['keys'](db['ChatGroup']['rawAttributes']);_0x20161e[_0x621a('0x36')]=_[_0x621a('0x34')](_0x1f214a['query']);_0x20161e[_0x621a('0x35')]=_['intersection'](_0x20161e[_0x621a('0x33')],_0x20161e[_0x621a('0x36')]);_0x29fdb8[_0x621a('0x39')]=_[_0x621a('0x37')](_0x20161e['model'],qs['fields'](_0x1f214a[_0x621a('0x36')]['fields']));_0x29fdb8['attributes']=_0x29fdb8[_0x621a('0x39')][_0x621a('0x48')]?_0x29fdb8[_0x621a('0x39')]:_0x20161e['model'];if(_0x1f214a['query'][_0x621a('0x42')]){_0x29fdb8['include']=[{'all':!![]}];}_0x29fdb8=_[_0x621a('0x3f')]({},_0x29fdb8,_0x1f214a[_0x621a('0x41')]);return db[_0x621a('0x2f')][_0x621a('0x49')](_0x29fdb8)[_0x621a('0x28')](handleEntityNotFound(_0x4115b8,null))[_0x621a('0x28')](respondWithResult(_0x4115b8,null))[_0x621a('0x45')](handleError(_0x4115b8,null));};exports[_0x621a('0x4a')]=function(_0x59f2fb,_0x5759fc){return db[_0x621a('0x2f')][_0x621a('0x4a')](_0x59f2fb['body'],{})['then'](respondWithResult(_0x5759fc,0xc9))[_0x621a('0x45')](handleError(_0x5759fc,null));};exports[_0x621a('0x27')]=function(_0x1afc91,_0x13228f){if(_0x1afc91[_0x621a('0x4b')]['id']){delete _0x1afc91[_0x621a('0x4b')]['id'];}return db['ChatGroup'][_0x621a('0x49')]({'where':{'id':_0x1afc91[_0x621a('0x47')]['id']}})['then'](handleEntityNotFound(_0x13228f,null))[_0x621a('0x28')](saveUpdates(_0x1afc91[_0x621a('0x4b')],null))[_0x621a('0x28')](respondWithResult(_0x13228f,null))[_0x621a('0x45')](handleError(_0x13228f,null));};exports[_0x621a('0x29')]=function(_0x84f96f,_0x520951){return db[_0x621a('0x2f')][_0x621a('0x49')]({'where':{'id':_0x84f96f[_0x621a('0x47')]['id']}})['then'](handleEntityNotFound(_0x520951,null))['then'](removeEntity(_0x520951,null))[_0x621a('0x45')](handleError(_0x520951,null));};exports[_0x621a('0x4c')]=function(_0x3606dc,_0x2c38f4){return db[_0x621a('0x2f')]['describe']()[_0x621a('0x28')](respondWithResult(_0x2c38f4,null))[_0x621a('0x45')](handleError(_0x2c38f4,null));};exports['getUnread']=function(_0x39b22f,_0x18f7b7,_0x2d7b2e){return db[_0x621a('0x4d')][_0x621a('0x21')]({'where':{'ChatGroupId':_0x39b22f['params']['id'],'ToId':_0x39b22f[_0x621a('0x4e')]['id'],'read':![]}})[_0x621a('0x28')](function(_0x22e664){return{'id':_[_0x621a('0x4f')](_0x39b22f[_0x621a('0x47')]['id']),'count':_0x22e664};})[_0x621a('0x28')](respondWithResult(_0x18f7b7,null))[_0x621a('0x45')](handleError(_0x18f7b7,null));};exports[_0x621a('0x50')]=function(_0x109bff,_0x3cd931,_0x200142){return db[_0x621a('0x2f')][_0x621a('0x49')]({'where':{'id':_0x109bff['params']['id']}})[_0x621a('0x28')](handleEntityNotFound(_0x3cd931,null))[_0x621a('0x28')](function(_0x33dde9){if(_0x33dde9){return _0x33dde9[_0x621a('0x50')](_0x109bff[_0x621a('0x4b')][_0x621a('0x51')],_['omit'](_0x109bff[_0x621a('0x4b')],[_0x621a('0x51'),'id'])||{});}})[_0x621a('0x28')](respondWithResult(_0x3cd931,null))['catch'](handleError(_0x3cd931,null));};exports[_0x621a('0x52')]=function(_0x34f3e9,_0x37115c,_0x2b7e6c){var _0x45286a={};var _0x1776a5={};var _0x8b7869;var _0x482b34;return db[_0x621a('0x2f')][_0x621a('0x53')]({'where':{'id':_0x34f3e9[_0x621a('0x47')]['id']}})[_0x621a('0x28')](handleEntityNotFound(_0x37115c,null))[_0x621a('0x28')](function(_0x5a72f5){if(_0x5a72f5){_0x8b7869=_0x5a72f5;_0x1776a5[_0x621a('0x33')]=_[_0x621a('0x34')](db[_0x621a('0x54')][_0x621a('0x30')]);_0x1776a5[_0x621a('0x36')]=_['keys'](_0x34f3e9[_0x621a('0x36')]);_0x1776a5[_0x621a('0x35')]=_['intersection'](_0x1776a5[_0x621a('0x33')],_0x1776a5[_0x621a('0x36')]);_0x45286a['attributes']=_[_0x621a('0x37')](_0x1776a5[_0x621a('0x33')],qs['fields'](_0x34f3e9['query'][_0x621a('0x38')]));_0x45286a['attributes']=_0x45286a['attributes']['length']?_0x45286a[_0x621a('0x39')]:_0x1776a5[_0x621a('0x33')];_0x45286a[_0x621a('0x55')]=qs[_0x621a('0x3c')](_0x34f3e9[_0x621a('0x36')][_0x621a('0x3c')]);_0x45286a[_0x621a('0x3e')]=qs[_0x621a('0x35')](_[_0x621a('0x56')](_0x34f3e9[_0x621a('0x36')],_0x1776a5['filters']));if(_0x34f3e9[_0x621a('0x36')][_0x621a('0x3d')]){_0x45286a[_0x621a('0x3e')]=_['merge'](_0x45286a['where'],{'$or':_[_0x621a('0x2e')](_0x45286a[_0x621a('0x39')],function(_0x13eb56){var _0x50a494={};_0x50a494[_0x13eb56]={'$like':'%'+_0x34f3e9['query']['filter']+'%'};return _0x50a494;})});}_0x45286a=_[_0x621a('0x3f')]({},_0x45286a,_0x34f3e9[_0x621a('0x41')]);return _0x8b7869['getMembers'](_0x45286a);}})[_0x621a('0x28')](function(_0x3b0237){if(_0x3b0237){_0x482b34=_0x3b0237[_0x621a('0x48')];if(!_0x34f3e9[_0x621a('0x36')][_0x621a('0x3a')](_0x621a('0x3b'))){_0x45286a['limit']=qs['limit'](_0x34f3e9['query'][_0x621a('0x22')]);_0x45286a[_0x621a('0x20')]=qs[_0x621a('0x20')](_0x34f3e9[_0x621a('0x36')][_0x621a('0x20')]);}return _0x8b7869[_0x621a('0x52')](_0x45286a);}})[_0x621a('0x28')](function(_0x53c1cd){if(_0x53c1cd){return _0x53c1cd?{'count':_0x482b34,'rows':_0x53c1cd}:null;}})[_0x621a('0x28')](respondWithResult(_0x37115c,null))[_0x621a('0x45')](handleError(_0x37115c,null));};exports[_0x621a('0x57')]=function(_0x4b0b2c,_0x125f6a,_0x32bea8){return db[_0x621a('0x2f')][_0x621a('0x49')]({'where':{'id':_0x4b0b2c['params']['id']}})[_0x621a('0x28')](handleEntityNotFound(_0x125f6a,null))[_0x621a('0x28')](function(_0x123b72){if(_0x123b72){return _0x123b72[_0x621a('0x57')](_0x4b0b2c['query'][_0x621a('0x51')]);}})[_0x621a('0x28')](respondWithStatusCode(_0x125f6a,null))[_0x621a('0x45')](handleError(_0x125f6a,null));};exports[_0x621a('0x58')]=function(_0xa2fe36,_0x265bc6,_0x22716b){if(_0xa2fe36['body']['id']){delete _0xa2fe36[_0x621a('0x4b')]['id'];}return db[_0x621a('0x2f')][_0x621a('0x49')]({'where':{'id':_0xa2fe36[_0x621a('0x47')]['id']}})[_0x621a('0x28')](handleEntityNotFound(_0x265bc6,null))['then'](function(_0x2aa0c5){if(_0x2aa0c5){_0xa2fe36[_0x621a('0x4b')][_0x621a('0x59')]=_0x2aa0c5['id'];return db[_0x621a('0x4d')][_0x621a('0x4a')](_0xa2fe36['body']);}})[_0x621a('0x28')](respondWithResult(_0x265bc6,null))[_0x621a('0x45')](handleError(_0x265bc6,null));};exports[_0x621a('0x5a')]=function(_0x2e08ff,_0x20b54d,_0x1549b8){var _0x545ce5={};var _0x146b13={};var _0x1f8348;var _0x2336e0;return db['ChatGroup'][_0x621a('0x53')]({'where':{'id':_0x2e08ff['params']['id']}})['then'](handleEntityNotFound(_0x20b54d,null))[_0x621a('0x28')](function(_0xa0a63e){if(_0xa0a63e){_0x1f8348=_0xa0a63e;_0x146b13[_0x621a('0x33')]=_[_0x621a('0x34')](db['ChatInternalMessage']['rawAttributes']);_0x146b13[_0x621a('0x36')]=_['keys'](_0x2e08ff[_0x621a('0x36')]);_0x146b13[_0x621a('0x35')]=_['intersection'](_0x146b13[_0x621a('0x33')],_0x146b13['query']);_0x545ce5['attributes']=_[_0x621a('0x37')](_0x146b13[_0x621a('0x33')],qs[_0x621a('0x38')](_0x2e08ff[_0x621a('0x36')]['fields']));_0x545ce5[_0x621a('0x39')]=_0x545ce5[_0x621a('0x39')][_0x621a('0x48')]?_0x545ce5[_0x621a('0x39')]:_0x146b13[_0x621a('0x33')];_0x545ce5[_0x621a('0x55')]=qs['sort'](_0x2e08ff[_0x621a('0x36')]['sort']);_0x545ce5[_0x621a('0x3e')]=qs[_0x621a('0x35')](_[_0x621a('0x56')](_0x2e08ff['query'],_0x146b13[_0x621a('0x35')]));if(_0x2e08ff[_0x621a('0x36')][_0x621a('0x3d')]){_0x545ce5[_0x621a('0x3e')]=_[_0x621a('0x3f')](_0x545ce5[_0x621a('0x3e')],{'$or':_[_0x621a('0x2e')](_0x545ce5['attributes'],function(_0x589992){var _0x418f61={};_0x418f61[_0x589992]={'$like':'%'+_0x2e08ff['query'][_0x621a('0x3d')]+'%'};return _0x418f61;})});}if(_0x2e08ff[_0x621a('0x36')][_0x621a('0x5b')]){var _0xcb865d=_0x2e08ff[_0x621a('0x36')][_0x621a('0x5b')][_0x621a('0x5c')](',');var _0x3cf87d={};_0x3cf87d[_0xcb865d[0x0]]={'$gte':moment(_0xcb865d[0x1])[_0x621a('0x5d')](_0x621a('0x5e'))};_0x545ce5['where']=_[_0x621a('0x3f')](_0x545ce5[_0x621a('0x3e')],_0x3cf87d);}_0x545ce5=_[_0x621a('0x3f')]({},_0x545ce5,_0x2e08ff['options']);return _0x1f8348[_0x621a('0x5a')](_0x545ce5);}})[_0x621a('0x28')](function(_0x34bf73){if(_0x34bf73){_0x2336e0=_0x34bf73[_0x621a('0x48')];if(!_0x2e08ff[_0x621a('0x36')][_0x621a('0x3a')](_0x621a('0x3b'))){_0x545ce5[_0x621a('0x22')]=qs[_0x621a('0x22')](_0x2e08ff[_0x621a('0x36')][_0x621a('0x22')]);_0x545ce5['offset']=qs[_0x621a('0x20')](_0x2e08ff[_0x621a('0x36')]['offset']);}return _0x1f8348[_0x621a('0x5a')](_0x545ce5);}})[_0x621a('0x28')](function(_0x2fe99d){if(_0x2fe99d){return _0x2fe99d?{'count':_0x2336e0,'rows':_0x2fe99d}:null;}})[_0x621a('0x28')](respondWithResult(_0x20b54d,null))['catch'](handleError(_0x20b54d,null));};
\ No newline at end of file
+var _0x2804=['query','keys','filters','attributes','intersection','fields','order','sort','where','pick','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','params','length','body','find','describe','getUnread','ChatInternalMessage','user','toInteger','addMembers','ids','getMembers','findOne','filter','nolimit','removeMembers','addMessage','ChatGroupId','create','getMessages','$gte','format','rimraf','zip-dir','moment','bluebird','mustache','util','path','sox','fs-extra','squel','crypto','jsforce','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./chatGroup.socket','register','sendStatus','end','status','json','undefined','limit','count','offset','Content-Range','save','update','then','destroy','error','stack','name','send','index','map','ChatGroup','rawAttributes','fieldName','type','model'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x2804,0x86));var _0x4280=function(_0x501510,_0x61caa9){_0x501510=_0x501510-0x0;var _0x1e6ee5=_0x2804[_0x501510];return _0x1e6ee5;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x4280('0x0'));var zipdir=require(_0x4280('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x4280('0x2'));var BPromise=require(_0x4280('0x3'));var Mustache=require(_0x4280('0x4'));var util=require(_0x4280('0x5'));var path=require(_0x4280('0x6'));var sox=require(_0x4280('0x7'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x4280('0x8'));var _=require('lodash');var squel=require(_0x4280('0x9'));var crypto=require(_0x4280('0xa'));var jsforce=require(_0x4280('0xb'));var deskjs=require('desk.js');var toCsv=require(_0x4280('0xc'));var querystring=require(_0x4280('0xd'));var Papa=require(_0x4280('0xe'));var Redis=require('ioredis');var authService=require(_0x4280('0xf'));var qs=require(_0x4280('0x10'));var as=require(_0x4280('0x11'));var hardwareService=require(_0x4280('0x12'));var logger=require('../../config/logger')(_0x4280('0x13'));var utils=require(_0x4280('0x14'));var config=require(_0x4280('0x15'));var licenseUtil=require(_0x4280('0x16'));var db=require(_0x4280('0x17'))['db'];config[_0x4280('0x18')]=_[_0x4280('0x19')](config['redis'],{'host':_0x4280('0x1a'),'port':0x18eb});var socket=require(_0x4280('0x1b'))(new Redis(config[_0x4280('0x18')]));require(_0x4280('0x1c'))[_0x4280('0x1d')](socket);function respondWithStatusCode(_0x5e647c,_0x5c6d23){_0x5c6d23=_0x5c6d23||0xcc;return function(_0x2e7c52){if(_0x2e7c52){return _0x5e647c[_0x4280('0x1e')](_0x5c6d23);}return _0x5e647c['status'](_0x5c6d23)[_0x4280('0x1f')]();};}function respondWithResult(_0x2e8cf9,_0x1cbdbd){_0x1cbdbd=_0x1cbdbd||0xc8;return function(_0x2ac460){if(_0x2ac460){return _0x2e8cf9[_0x4280('0x20')](_0x1cbdbd)[_0x4280('0x21')](_0x2ac460);}};}function respondWithFilteredResult(_0x3de263,_0x5c3cbe){return function(_0x22fba6){if(_0x22fba6){var _0x5e2efb=typeof _0x5c3cbe['offset']===_0x4280('0x22')&&typeof _0x5c3cbe[_0x4280('0x23')]===_0x4280('0x22');var _0x4199ac=_0x22fba6[_0x4280('0x24')];var _0x1bcb62=_0x5e2efb?0x0:_0x5c3cbe[_0x4280('0x25')];var _0x2d3348=_0x5e2efb?_0x22fba6['count']:_0x5c3cbe[_0x4280('0x25')]+_0x5c3cbe[_0x4280('0x23')];var _0x4385d6;if(_0x2d3348>=_0x4199ac){_0x2d3348=_0x4199ac;_0x4385d6=0xc8;}else{_0x4385d6=0xce;}_0x3de263[_0x4280('0x20')](_0x4385d6);return _0x3de263['set'](_0x4280('0x26'),_0x1bcb62+'-'+_0x2d3348+'/'+_0x4199ac)[_0x4280('0x21')](_0x22fba6);}return null;};}function patchUpdates(_0x3d5620){return function(_0x13b52d){try{jsonpatch['apply'](_0x13b52d,_0x3d5620,!![]);}catch(_0x3dae68){return BPromise['reject'](_0x3dae68);}return _0x13b52d[_0x4280('0x27')]();};}function saveUpdates(_0x15826a,_0x4e98e1){return function(_0x4cc3c4){if(_0x4cc3c4){return _0x4cc3c4[_0x4280('0x28')](_0x15826a)[_0x4280('0x29')](function(_0x5acec8){return _0x5acec8;});}return null;};}function removeEntity(_0x4343e5,_0x5bd9fb){return function(_0x3a8b85){if(_0x3a8b85){return _0x3a8b85[_0x4280('0x2a')]()[_0x4280('0x29')](function(){_0x4343e5[_0x4280('0x20')](0xcc)[_0x4280('0x1f')]();});}};}function handleEntityNotFound(_0x3b2a1a,_0x4c9ad2){return function(_0x541fc9){if(!_0x541fc9){_0x3b2a1a[_0x4280('0x1e')](0x194);}return _0x541fc9;};}function handleError(_0x455581,_0x1a70af){_0x1a70af=_0x1a70af||0x1f4;return function(_0xf255f2){logger[_0x4280('0x2b')](_0xf255f2[_0x4280('0x2c')]);if(_0xf255f2[_0x4280('0x2d')]){delete _0xf255f2[_0x4280('0x2d')];}_0x455581[_0x4280('0x20')](_0x1a70af)[_0x4280('0x2e')](_0xf255f2);};}exports[_0x4280('0x2f')]=function(_0xabaecc,_0x1ae65c){var _0x201bbd={},_0x37ac2e={},_0x336d4b={'count':0x0,'rows':[]};var _0x5137d6=_[_0x4280('0x30')](db[_0x4280('0x31')][_0x4280('0x32')],function(_0x1a96c4){return{'name':_0x1a96c4[_0x4280('0x33')],'type':_0x1a96c4[_0x4280('0x34')]['key']};});_0x37ac2e[_0x4280('0x35')]=_[_0x4280('0x30')](_0x5137d6,_0x4280('0x2d'));_0x37ac2e[_0x4280('0x36')]=_[_0x4280('0x37')](_0xabaecc[_0x4280('0x36')]);_0x37ac2e[_0x4280('0x38')]=_['intersection'](_0x37ac2e['model'],_0x37ac2e['query']);_0x201bbd[_0x4280('0x39')]=_[_0x4280('0x3a')](_0x37ac2e[_0x4280('0x35')],qs['fields'](_0xabaecc['query'][_0x4280('0x3b')]));_0x201bbd['attributes']=_0x201bbd[_0x4280('0x39')]['length']?_0x201bbd[_0x4280('0x39')]:_0x37ac2e[_0x4280('0x35')];if(!_0xabaecc[_0x4280('0x36')]['hasOwnProperty']('nolimit')){_0x201bbd['limit']=qs['limit'](_0xabaecc['query'][_0x4280('0x23')]);_0x201bbd[_0x4280('0x25')]=qs[_0x4280('0x25')](_0xabaecc[_0x4280('0x36')][_0x4280('0x25')]);}_0x201bbd[_0x4280('0x3c')]=qs[_0x4280('0x3d')](_0xabaecc['query']['sort']);_0x201bbd[_0x4280('0x3e')]=qs[_0x4280('0x38')](_[_0x4280('0x3f')](_0xabaecc['query'],_0x37ac2e['filters']),_0x5137d6);if(_0xabaecc[_0x4280('0x36')]['filter']){_0x201bbd[_0x4280('0x3e')]=_[_0x4280('0x40')](_0x201bbd[_0x4280('0x3e')],{'$or':_[_0x4280('0x30')](_0x5137d6,function(_0x4e4422){if(_0x4e4422['type']!==_0x4280('0x41')){var _0x2d61a4={};_0x2d61a4[_0x4e4422['name']]={'$like':'%'+_0xabaecc[_0x4280('0x36')]['filter']+'%'};return _0x2d61a4;}})});}_0x201bbd=_[_0x4280('0x40')]({},_0x201bbd,_0xabaecc[_0x4280('0x42')]);var _0xdc46a9={'where':_0x201bbd[_0x4280('0x3e')]};return db[_0x4280('0x31')][_0x4280('0x24')](_0xdc46a9)[_0x4280('0x29')](function(_0x427b97){_0x336d4b[_0x4280('0x24')]=_0x427b97;if(_0xabaecc[_0x4280('0x36')][_0x4280('0x43')]){_0x201bbd[_0x4280('0x44')]=[{'all':!![]}];}return db[_0x4280('0x31')][_0x4280('0x45')](_0x201bbd);})['then'](function(_0x1caa22){_0x336d4b[_0x4280('0x46')]=_0x1caa22;return _0x336d4b;})[_0x4280('0x29')](respondWithFilteredResult(_0x1ae65c,_0x201bbd))[_0x4280('0x47')](handleError(_0x1ae65c,null));};exports['show']=function(_0x4e7a29,_0x450ea7){var _0x5df090={'raw':!![],'where':{'id':_0x4e7a29[_0x4280('0x48')]['id']}},_0x3feac6={};_0x3feac6[_0x4280('0x35')]=_['keys'](db[_0x4280('0x31')]['rawAttributes']);_0x3feac6['query']=_[_0x4280('0x37')](_0x4e7a29[_0x4280('0x36')]);_0x3feac6[_0x4280('0x38')]=_['intersection'](_0x3feac6['model'],_0x3feac6['query']);_0x5df090['attributes']=_['intersection'](_0x3feac6[_0x4280('0x35')],qs['fields'](_0x4e7a29[_0x4280('0x36')]['fields']));_0x5df090[_0x4280('0x39')]=_0x5df090['attributes'][_0x4280('0x49')]?_0x5df090[_0x4280('0x39')]:_0x3feac6[_0x4280('0x35')];if(_0x4e7a29['query'][_0x4280('0x43')]){_0x5df090[_0x4280('0x44')]=[{'all':!![]}];}_0x5df090=_['merge']({},_0x5df090,_0x4e7a29[_0x4280('0x42')]);return db['ChatGroup']['find'](_0x5df090)[_0x4280('0x29')](handleEntityNotFound(_0x450ea7,null))['then'](respondWithResult(_0x450ea7,null))[_0x4280('0x47')](handleError(_0x450ea7,null));};exports['create']=function(_0x8d6539,_0x14fd06){return db[_0x4280('0x31')]['create'](_0x8d6539[_0x4280('0x4a')],{})[_0x4280('0x29')](respondWithResult(_0x14fd06,0xc9))[_0x4280('0x47')](handleError(_0x14fd06,null));};exports['update']=function(_0x456fa1,_0x4e6f21){if(_0x456fa1[_0x4280('0x4a')]['id']){delete _0x456fa1[_0x4280('0x4a')]['id'];}return db[_0x4280('0x31')][_0x4280('0x4b')]({'where':{'id':_0x456fa1['params']['id']}})[_0x4280('0x29')](handleEntityNotFound(_0x4e6f21,null))[_0x4280('0x29')](saveUpdates(_0x456fa1['body'],null))[_0x4280('0x29')](respondWithResult(_0x4e6f21,null))[_0x4280('0x47')](handleError(_0x4e6f21,null));};exports[_0x4280('0x2a')]=function(_0x5f44ff,_0x55c57d){return db['ChatGroup'][_0x4280('0x4b')]({'where':{'id':_0x5f44ff['params']['id']}})['then'](handleEntityNotFound(_0x55c57d,null))[_0x4280('0x29')](removeEntity(_0x55c57d,null))[_0x4280('0x47')](handleError(_0x55c57d,null));};exports[_0x4280('0x4c')]=function(_0x3b8097,_0x5e4305){return db[_0x4280('0x31')][_0x4280('0x4c')]()[_0x4280('0x29')](respondWithResult(_0x5e4305,null))[_0x4280('0x47')](handleError(_0x5e4305,null));};exports[_0x4280('0x4d')]=function(_0x26c0aa,_0x1113b3,_0x290f11){return db[_0x4280('0x4e')]['count']({'where':{'ChatGroupId':_0x26c0aa[_0x4280('0x48')]['id'],'ToId':_0x26c0aa[_0x4280('0x4f')]['id'],'read':![]}})[_0x4280('0x29')](function(_0x43d0d1){return{'id':_[_0x4280('0x50')](_0x26c0aa[_0x4280('0x48')]['id']),'count':_0x43d0d1};})[_0x4280('0x29')](respondWithResult(_0x1113b3,null))[_0x4280('0x47')](handleError(_0x1113b3,null));};exports[_0x4280('0x51')]=function(_0xae5b8d,_0x563876,_0x54a9d9){return db[_0x4280('0x31')][_0x4280('0x4b')]({'where':{'id':_0xae5b8d['params']['id']}})[_0x4280('0x29')](handleEntityNotFound(_0x563876,null))[_0x4280('0x29')](function(_0x579fd3){if(_0x579fd3){return _0x579fd3[_0x4280('0x51')](_0xae5b8d[_0x4280('0x4a')][_0x4280('0x52')],_['omit'](_0xae5b8d[_0x4280('0x4a')],[_0x4280('0x52'),'id'])||{});}})[_0x4280('0x29')](respondWithResult(_0x563876,null))[_0x4280('0x47')](handleError(_0x563876,null));};exports[_0x4280('0x53')]=function(_0x40dac2,_0x5c958b,_0x29f382){var _0x59ff7f={};var _0x50e224={};var _0x47f07c;var _0x34707b;return db[_0x4280('0x31')][_0x4280('0x54')]({'where':{'id':_0x40dac2[_0x4280('0x48')]['id']}})['then'](handleEntityNotFound(_0x5c958b,null))[_0x4280('0x29')](function(_0x4183c5){if(_0x4183c5){_0x47f07c=_0x4183c5;_0x50e224['model']=_['keys'](db['User']['rawAttributes']);_0x50e224[_0x4280('0x36')]=_[_0x4280('0x37')](_0x40dac2[_0x4280('0x36')]);_0x50e224[_0x4280('0x38')]=_[_0x4280('0x3a')](_0x50e224['model'],_0x50e224[_0x4280('0x36')]);_0x59ff7f[_0x4280('0x39')]=_[_0x4280('0x3a')](_0x50e224['model'],qs['fields'](_0x40dac2[_0x4280('0x36')][_0x4280('0x3b')]));_0x59ff7f[_0x4280('0x39')]=_0x59ff7f[_0x4280('0x39')][_0x4280('0x49')]?_0x59ff7f['attributes']:_0x50e224['model'];_0x59ff7f[_0x4280('0x3c')]=qs[_0x4280('0x3d')](_0x40dac2[_0x4280('0x36')]['sort']);_0x59ff7f[_0x4280('0x3e')]=qs['filters'](_[_0x4280('0x3f')](_0x40dac2['query'],_0x50e224[_0x4280('0x38')]));if(_0x40dac2[_0x4280('0x36')][_0x4280('0x55')]){_0x59ff7f['where']=_[_0x4280('0x40')](_0x59ff7f['where'],{'$or':_[_0x4280('0x30')](_0x59ff7f['attributes'],function(_0x49d944){var _0x4b3343={};_0x4b3343[_0x49d944]={'$like':'%'+_0x40dac2[_0x4280('0x36')][_0x4280('0x55')]+'%'};return _0x4b3343;})});}_0x59ff7f=_['merge']({},_0x59ff7f,_0x40dac2['options']);return _0x47f07c[_0x4280('0x53')](_0x59ff7f);}})[_0x4280('0x29')](function(_0x4edee3){if(_0x4edee3){_0x34707b=_0x4edee3[_0x4280('0x49')];if(!_0x40dac2[_0x4280('0x36')]['hasOwnProperty'](_0x4280('0x56'))){_0x59ff7f[_0x4280('0x23')]=qs[_0x4280('0x23')](_0x40dac2[_0x4280('0x36')][_0x4280('0x23')]);_0x59ff7f['offset']=qs[_0x4280('0x25')](_0x40dac2[_0x4280('0x36')][_0x4280('0x25')]);}return _0x47f07c[_0x4280('0x53')](_0x59ff7f);}})[_0x4280('0x29')](function(_0x4c5714){if(_0x4c5714){return _0x4c5714?{'count':_0x34707b,'rows':_0x4c5714}:null;}})[_0x4280('0x29')](respondWithResult(_0x5c958b,null))[_0x4280('0x47')](handleError(_0x5c958b,null));};exports[_0x4280('0x57')]=function(_0x460885,_0x42fb9f,_0xf16f7c){return db['ChatGroup'][_0x4280('0x4b')]({'where':{'id':_0x460885[_0x4280('0x48')]['id']}})[_0x4280('0x29')](handleEntityNotFound(_0x42fb9f,null))[_0x4280('0x29')](function(_0x362f8e){if(_0x362f8e){return _0x362f8e[_0x4280('0x57')](_0x460885[_0x4280('0x36')][_0x4280('0x52')]);}})[_0x4280('0x29')](respondWithStatusCode(_0x42fb9f,null))['catch'](handleError(_0x42fb9f,null));};exports[_0x4280('0x58')]=function(_0xc674d4,_0x212458,_0xe0ba43){if(_0xc674d4['body']['id']){delete _0xc674d4[_0x4280('0x4a')]['id'];}return db[_0x4280('0x31')][_0x4280('0x4b')]({'where':{'id':_0xc674d4[_0x4280('0x48')]['id']}})['then'](handleEntityNotFound(_0x212458,null))['then'](function(_0x15d696){if(_0x15d696){_0xc674d4[_0x4280('0x4a')][_0x4280('0x59')]=_0x15d696['id'];return db[_0x4280('0x4e')][_0x4280('0x5a')](_0xc674d4[_0x4280('0x4a')]);}})[_0x4280('0x29')](respondWithResult(_0x212458,null))[_0x4280('0x47')](handleError(_0x212458,null));};exports[_0x4280('0x5b')]=function(_0x44d9e9,_0x5097cf,_0x494f1e){var _0x20661e={};var _0x215c29={};var _0x40cb0a;var _0x5a6789;return db['ChatGroup'][_0x4280('0x54')]({'where':{'id':_0x44d9e9['params']['id']}})[_0x4280('0x29')](handleEntityNotFound(_0x5097cf,null))[_0x4280('0x29')](function(_0x19d736){if(_0x19d736){_0x40cb0a=_0x19d736;_0x215c29['model']=_[_0x4280('0x37')](db[_0x4280('0x4e')][_0x4280('0x32')]);_0x215c29[_0x4280('0x36')]=_[_0x4280('0x37')](_0x44d9e9[_0x4280('0x36')]);_0x215c29['filters']=_[_0x4280('0x3a')](_0x215c29[_0x4280('0x35')],_0x215c29['query']);_0x20661e[_0x4280('0x39')]=_[_0x4280('0x3a')](_0x215c29['model'],qs[_0x4280('0x3b')](_0x44d9e9[_0x4280('0x36')]['fields']));_0x20661e[_0x4280('0x39')]=_0x20661e[_0x4280('0x39')][_0x4280('0x49')]?_0x20661e['attributes']:_0x215c29['model'];_0x20661e[_0x4280('0x3c')]=qs[_0x4280('0x3d')](_0x44d9e9['query'][_0x4280('0x3d')]);_0x20661e[_0x4280('0x3e')]=qs[_0x4280('0x38')](_['pick'](_0x44d9e9[_0x4280('0x36')],_0x215c29[_0x4280('0x38')]));if(_0x44d9e9[_0x4280('0x36')]['filter']){_0x20661e[_0x4280('0x3e')]=_[_0x4280('0x40')](_0x20661e[_0x4280('0x3e')],{'$or':_[_0x4280('0x30')](_0x20661e[_0x4280('0x39')],function(_0x576d13){var _0x17fd93={};_0x17fd93[_0x576d13]={'$like':'%'+_0x44d9e9[_0x4280('0x36')][_0x4280('0x55')]+'%'};return _0x17fd93;})});}if(_0x44d9e9['query'][_0x4280('0x5c')]){var _0x179fc0=_0x44d9e9['query'][_0x4280('0x5c')]['split'](',');var _0x2d0709={};_0x2d0709[_0x179fc0[0x0]]={'$gte':moment(_0x179fc0[0x1])[_0x4280('0x5d')]('YYYY-MM-DD\x20HH:mm:ss')};_0x20661e[_0x4280('0x3e')]=_[_0x4280('0x40')](_0x20661e['where'],_0x2d0709);}_0x20661e=_['merge']({},_0x20661e,_0x44d9e9[_0x4280('0x42')]);return _0x40cb0a['getMessages'](_0x20661e);}})[_0x4280('0x29')](function(_0x495484){if(_0x495484){_0x5a6789=_0x495484['length'];if(!_0x44d9e9[_0x4280('0x36')]['hasOwnProperty'](_0x4280('0x56'))){_0x20661e[_0x4280('0x23')]=qs[_0x4280('0x23')](_0x44d9e9[_0x4280('0x36')]['limit']);_0x20661e[_0x4280('0x25')]=qs[_0x4280('0x25')](_0x44d9e9[_0x4280('0x36')][_0x4280('0x25')]);}return _0x40cb0a[_0x4280('0x5b')](_0x20661e);}})[_0x4280('0x29')](function(_0x19d80d){if(_0x19d80d){return _0x19d80d?{'count':_0x5a6789,'rows':_0x19d80d}:null;}})[_0x4280('0x29')](respondWithResult(_0x5097cf,null))[_0x4280('0x47')](handleError(_0x5097cf,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6a55=['hasOwnProperty','hook','exports','events','save','emit'];(function(_0x518b2f,_0x238346){var _0x2c92a5=function(_0x40ef20){while(--_0x40ef20){_0x518b2f['push'](_0x518b2f['shift']());}};_0x2c92a5(++_0x238346);}(_0x6a55,0xdb));var _0x56a5=function(_0x4d3924,_0x327b56){_0x4d3924=_0x4d3924-0x0;var _0x844555=_0x6a55[_0x4d3924];return _0x844555;};'use strict';var EventEmitter=require(_0x56a5('0x0'));var ChatGroup=require('../../mysqldb')['db']['ChatGroup'];var ChatGroupEvents=new EventEmitter();ChatGroupEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x56a5('0x1'),'afterUpdate':'update','afterDestroy':'remove'};function emitEvent(_0x116199){return function(_0x5e5a32,_0x3ff76a,_0x5171fa){ChatGroupEvents[_0x56a5('0x2')](_0x116199+':'+_0x5e5a32['id'],_0x5e5a32);ChatGroupEvents[_0x56a5('0x2')](_0x116199,_0x5e5a32);_0x5171fa(null);};}for(var e in events){if(events[_0x56a5('0x3')](e)){var event=events[e];ChatGroup[_0x56a5('0x4')](e,emitEvent(event));}}module[_0x56a5('0x5')]=ChatGroupEvents;
\ No newline at end of file
+var _0xf2ee=['emit','hasOwnProperty','events','../../mysqldb','ChatGroup','setMaxListeners'];(function(_0x2d7f0e,_0x3e6fbd){var _0x110b07=function(_0x557b00){while(--_0x557b00){_0x2d7f0e['push'](_0x2d7f0e['shift']());}};_0x110b07(++_0x3e6fbd);}(_0xf2ee,0x110));var _0xef2e=function(_0x2bc019,_0x2388d8){_0x2bc019=_0x2bc019-0x0;var _0x25b270=_0xf2ee[_0x2bc019];return _0x25b270;};'use strict';var EventEmitter=require(_0xef2e('0x0'));var ChatGroup=require(_0xef2e('0x1'))['db'][_0xef2e('0x2')];var ChatGroupEvents=new EventEmitter();ChatGroupEvents[_0xef2e('0x3')](0x0);var events={'afterCreate':'save','afterUpdate':'update','afterDestroy':'remove'};function emitEvent(_0xc8cad1){return function(_0x5671eb,_0x31a28f,_0x3d19c5){ChatGroupEvents[_0xef2e('0x4')](_0xc8cad1+':'+_0x5671eb['id'],_0x5671eb);ChatGroupEvents[_0xef2e('0x4')](_0xc8cad1,_0x5671eb);_0x3d19c5(null);};}for(var e in events){if(events[_0xef2e('0x5')](e)){var event=events[e];ChatGroup['hook'](e,emitEvent(event));}}module['exports']=ChatGroupEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x02c3=['bluebird','../../config/environment','./chatGroup.attributes','ChatGroup','chat_groups','lodash','util','../../config/logger','moment'];(function(_0x19cbac,_0x3541cb){var _0x156ba6=function(_0x3495f3){while(--_0x3495f3){_0x19cbac['push'](_0x19cbac['shift']());}};_0x156ba6(++_0x3541cb);}(_0x02c3,0x12e));var _0x302c=function(_0x2b8607,_0x4ccf37){_0x2b8607=_0x2b8607-0x0;var _0x2ce6f1=_0x02c3[_0x2b8607];return _0x2ce6f1;};'use strict';var _=require(_0x302c('0x0'));var util=require(_0x302c('0x1'));var logger=require(_0x302c('0x2'))('api');var moment=require(_0x302c('0x3'));var BPromise=require(_0x302c('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0x302c('0x5'));var attributes=require(_0x302c('0x6'));module['exports']=function(_0x49dce9,_0x1ee4f9){return _0x49dce9['define'](_0x302c('0x7'),attributes,{'tableName':_0x302c('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xd8e7=['bluebird','request-promise','path','rimraf','../../config/environment','./chatGroup.attributes','exports','define','ChatGroup','chat_groups','lodash','util','../../config/logger','api','moment'];(function(_0x393baf,_0x57589a){var _0x3875dc=function(_0x2dcd56){while(--_0x2dcd56){_0x393baf['push'](_0x393baf['shift']());}};_0x3875dc(++_0x57589a);}(_0xd8e7,0x127));var _0x7d8e=function(_0x385ce1,_0x180d49){_0x385ce1=_0x385ce1-0x0;var _0x1d99a2=_0xd8e7[_0x385ce1];return _0x1d99a2;};'use strict';var _=require(_0x7d8e('0x0'));var util=require(_0x7d8e('0x1'));var logger=require(_0x7d8e('0x2'))(_0x7d8e('0x3'));var moment=require(_0x7d8e('0x4'));var BPromise=require(_0x7d8e('0x5'));var rp=require(_0x7d8e('0x6'));var fs=require('fs');var path=require(_0x7d8e('0x7'));var rimraf=require(_0x7d8e('0x8'));var config=require(_0x7d8e('0x9'));var attributes=require(_0x7d8e('0xa'));module[_0x7d8e('0xb')]=function(_0x4d7139,_0x12e227){return _0x4d7139[_0x7d8e('0xc')](_0x7d8e('0xd'),attributes,{'tableName':_0x7d8e('0xe'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x97ed=['then','ChatGroup,\x20%s,\x20%s','request\x20sent','debug','ChatGroup,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','lodash','util','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','defaults','socket.io-emitter','request'];(function(_0x37c22c,_0x28a70d){var _0x119d79=function(_0x243a13){while(--_0x243a13){_0x37c22c['push'](_0x37c22c['shift']());}};_0x119d79(++_0x28a70d);}(_0x97ed,0x1e7));var _0xd97e=function(_0x68c979,_0x431cff){_0x68c979=_0x68c979-0x0;var _0x4f0001=_0x97ed[_0x68c979];return _0x4f0001;};'use strict';var _=require(_0xd97e('0x0'));var util=require(_0xd97e('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0xd97e('0x2'));var fs=require('fs');var Redis=require(_0xd97e('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0xd97e('0x4'));var logger=require(_0xd97e('0x5'))(_0xd97e('0x6'));var config=require(_0xd97e('0x7'));var jayson=require('jayson/promise');var client=jayson[_0xd97e('0x8')][_0xd97e('0x9')]({'port':0x232a});config['redis']=_[_0xd97e('0xa')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0xd97e('0xb'))(new Redis(config['redis']));require('./chatGroup.socket')['register'](socket);function respondWithRpcPromise(_0x448f66,_0x55f533,_0x370017){return new BPromise(function(_0x1afa13,_0x49c988){return client[_0xd97e('0xc')](_0x448f66,_0x370017)[_0xd97e('0xd')](function(_0x9316d2){logger['info'](_0xd97e('0xe'),_0x55f533,_0xd97e('0xf'));logger[_0xd97e('0x10')](_0xd97e('0x11'),_0x55f533,_0xd97e('0xf'),JSON[_0xd97e('0x12')](_0x9316d2));if(_0x9316d2[_0xd97e('0x13')]){if(_0x9316d2[_0xd97e('0x13')][_0xd97e('0x14')]===0x1f4){logger[_0xd97e('0x13')]('ChatGroup,\x20%s,\x20%s',_0x55f533,_0x9316d2[_0xd97e('0x13')]['message']);return _0x49c988(_0x9316d2[_0xd97e('0x13')][_0xd97e('0x15')]);}logger[_0xd97e('0x13')](_0xd97e('0xe'),_0x55f533,_0x9316d2[_0xd97e('0x13')][_0xd97e('0x15')]);return _0x1afa13(_0x9316d2['error'][_0xd97e('0x15')]);}else{logger[_0xd97e('0x16')](_0xd97e('0xe'),_0x55f533,_0xd97e('0xf'));_0x1afa13(_0x9316d2[_0xd97e('0x17')][_0xd97e('0x15')]);}})[_0xd97e('0x18')](function(_0x28b818){logger[_0xd97e('0x13')](_0xd97e('0xe'),_0x55f533,_0x28b818);_0x49c988(_0x28b818);});});}
\ No newline at end of file
+var _0x897d=['request\x20sent','debug','stringify','error','code','message','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','register','request','then','ChatGroup,\x20%s,\x20%s'];(function(_0x240b0a,_0x50335f){var _0x35346a=function(_0x56d904){while(--_0x56d904){_0x240b0a['push'](_0x240b0a['shift']());}};_0x35346a(++_0x50335f);}(_0x897d,0x80));var _0xd897=function(_0x1451ea,_0x4ce6a8){_0x1451ea=_0x1451ea-0x0;var _0x4f62a4=_0x897d[_0x1451ea];return _0x4f62a4;};'use strict';var _=require(_0xd897('0x0'));var util=require(_0xd897('0x1'));var moment=require(_0xd897('0x2'));var BPromise=require(_0xd897('0x3'));var rs=require(_0xd897('0x4'));var fs=require('fs');var Redis=require(_0xd897('0x5'));var db=require(_0xd897('0x6'))['db'];var utils=require(_0xd897('0x7'));var logger=require(_0xd897('0x8'))(_0xd897('0x9'));var config=require(_0xd897('0xa'));var jayson=require(_0xd897('0xb'));var client=jayson[_0xd897('0xc')][_0xd897('0xd')]({'port':0x232a});config[_0xd897('0xe')]=_[_0xd897('0xf')](config[_0xd897('0xe')],{'host':_0xd897('0x10'),'port':0x18eb});var socket=require(_0xd897('0x11'))(new Redis(config['redis']));require('./chatGroup.socket')[_0xd897('0x12')](socket);function respondWithRpcPromise(_0x4534aa,_0x553b36,_0x206470){return new BPromise(function(_0x2d02f2,_0x263a51){return client[_0xd897('0x13')](_0x4534aa,_0x206470)[_0xd897('0x14')](function(_0x3f6ff7){logger['info'](_0xd897('0x15'),_0x553b36,_0xd897('0x16'));logger[_0xd897('0x17')]('ChatGroup,\x20%s,\x20%s,\x20%s',_0x553b36,_0xd897('0x16'),JSON[_0xd897('0x18')](_0x3f6ff7));if(_0x3f6ff7['error']){if(_0x3f6ff7[_0xd897('0x19')][_0xd897('0x1a')]===0x1f4){logger[_0xd897('0x19')](_0xd897('0x15'),_0x553b36,_0x3f6ff7[_0xd897('0x19')]['message']);return _0x263a51(_0x3f6ff7['error'][_0xd897('0x1b')]);}logger[_0xd897('0x19')](_0xd897('0x15'),_0x553b36,_0x3f6ff7[_0xd897('0x19')][_0xd897('0x1b')]);return _0x2d02f2(_0x3f6ff7['error'][_0xd897('0x1b')]);}else{logger['info'](_0xd897('0x15'),_0x553b36,_0xd897('0x16'));_0x2d02f2(_0x3f6ff7[_0xd897('0x1c')][_0xd897('0x1b')]);}})[_0xd897('0x1d')](function(_0x4cbe2b){logger['error'](_0xd897('0x15'),_0x553b36,_0x4cbe2b);_0x263a51(_0x4cbe2b);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe0c1=['emit','removeListener','length','chatGroup:','./chatGroup.events','save','update'];(function(_0x48b163,_0x464055){var _0x5ce3a2=function(_0x533fa7){while(--_0x533fa7){_0x48b163['push'](_0x48b163['shift']());}};_0x5ce3a2(++_0x464055);}(_0xe0c1,0xa5));var _0x1e0c=function(_0x4a3fd0,_0x37ca05){_0x4a3fd0=_0x4a3fd0-0x0;var _0x33b81d=_0xe0c1[_0x4a3fd0];return _0x33b81d;};'use strict';var ChatGroupEvents=require(_0x1e0c('0x0'));var events=[_0x1e0c('0x1'),'remove',_0x1e0c('0x2')];function createListener(_0x37ab49,_0x250395){return function(_0x4540a2){_0x250395[_0x1e0c('0x3')](_0x37ab49,_0x4540a2);};}function removeListener(_0x42fec4,_0x412e43){return function(){ChatGroupEvents[_0x1e0c('0x4')](_0x42fec4,_0x412e43);};}exports['register']=function(_0x2f2751){for(var _0x4978da=0x0,_0x1f2e72=events[_0x1e0c('0x5')];_0x4978da<_0x1f2e72;_0x4978da++){var _0x3a0b75=events[_0x4978da];var _0x442de4=createListener(_0x1e0c('0x6')+_0x3a0b75,_0x2f2751);ChatGroupEvents['on'](_0x3a0b75,_0x442de4);}};
\ No newline at end of file
+var _0x082c=['update','emit','removeListener','register','chatGroup:','./chatGroup.events','remove'];(function(_0x2081d0,_0xffdab5){var _0x2c2c52=function(_0x263596){while(--_0x263596){_0x2081d0['push'](_0x2081d0['shift']());}};_0x2c2c52(++_0xffdab5);}(_0x082c,0x116));var _0xc082=function(_0x2b2c32,_0x330535){_0x2b2c32=_0x2b2c32-0x0;var _0x1e5f99=_0x082c[_0x2b2c32];return _0x1e5f99;};'use strict';var ChatGroupEvents=require(_0xc082('0x0'));var events=['save',_0xc082('0x1'),_0xc082('0x2')];function createListener(_0x31ec72,_0x3ced92){return function(_0x113594){_0x3ced92[_0xc082('0x3')](_0x31ec72,_0x113594);};}function removeListener(_0x41ff09,_0x33acaf){return function(){ChatGroupEvents[_0xc082('0x4')](_0x41ff09,_0x33acaf);};}exports[_0xc082('0x5')]=function(_0x33d291){for(var _0xde6f66=0x0,_0x5608d9=events['length'];_0xde6f66<_0x5608d9;_0xde6f66++){var _0x57efce=events[_0xde6f66];var _0x4044b8=createListener(_0xc082('0x6')+_0x57efce,_0x33d291);ChatGroupEvents['on'](_0x57efce,_0x4044b8);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5cfd=['/:id','show','/:id/unread','getUnread','/:id/members','getMembers','/:id/messages','post','create','addMessage','delete','removeMembers','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','isAuthenticated','index','get','describe'];(function(_0x5d622a,_0x158399){var _0x37f8d2=function(_0x1aa657){while(--_0x1aa657){_0x5d622a['push'](_0x5d622a['shift']());}};_0x37f8d2(++_0x158399);}(_0x5cfd,0x12b));var _0xd5cf=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x5cfd[_0x3dd15e];return _0x231fd0;};'use strict';var multer=require(_0xd5cf('0x0'));var util=require(_0xd5cf('0x1'));var path=require(_0xd5cf('0x2'));var timeout=require(_0xd5cf('0x3'));var express=require(_0xd5cf('0x4'));var router=express[_0xd5cf('0x5')]();var fs_extra=require(_0xd5cf('0x6'));var auth=require('../../components/auth/service');var interaction=require(_0xd5cf('0x7'));var config=require(_0xd5cf('0x8'));var controller=require('./chatGroup.controller');router['get']('/',auth[_0xd5cf('0x9')](),controller[_0xd5cf('0xa')]);router[_0xd5cf('0xb')]('/describe',auth[_0xd5cf('0x9')](),controller[_0xd5cf('0xc')]);router[_0xd5cf('0xb')](_0xd5cf('0xd'),auth[_0xd5cf('0x9')](),controller[_0xd5cf('0xe')]);router[_0xd5cf('0xb')](_0xd5cf('0xf'),auth['isAuthenticated'](),controller[_0xd5cf('0x10')]);router[_0xd5cf('0xb')](_0xd5cf('0x11'),auth[_0xd5cf('0x9')](),controller[_0xd5cf('0x12')]);router['get'](_0xd5cf('0x13'),auth['isAuthenticated'](),controller['getMessages']);router[_0xd5cf('0x14')]('/',auth[_0xd5cf('0x9')](),controller[_0xd5cf('0x15')]);router['post'](_0xd5cf('0x11'),auth[_0xd5cf('0x9')](),controller['addMembers']);router[_0xd5cf('0x14')](_0xd5cf('0x13'),auth[_0xd5cf('0x9')](),controller[_0xd5cf('0x16')]);router['put'](_0xd5cf('0xd'),auth['isAuthenticated'](),controller['update']);router[_0xd5cf('0x17')](_0xd5cf('0xd'),auth[_0xd5cf('0x9')](),controller['destroy']);router['delete'](_0xd5cf('0x11'),auth[_0xd5cf('0x9')](),controller[_0xd5cf('0x18')]);module[_0xd5cf('0x19')]=router;
\ No newline at end of file
+var _0xff90=['destroy','removeMembers','exports','multer','path','connect-timeout','express','../../components/auth/service','../../components/interaction/service','../../config/environment','./chatGroup.controller','get','isAuthenticated','index','/describe','describe','/:id','show','getUnread','/:id/members','getMembers','getMessages','post','create','addMembers','addMessage','delete'];(function(_0x3e630f,_0x1d4b4d){var _0x9ebd58=function(_0x533c88){while(--_0x533c88){_0x3e630f['push'](_0x3e630f['shift']());}};_0x9ebd58(++_0x1d4b4d);}(_0xff90,0xc0));var _0x0ff9=function(_0x4bfd95,_0x1c3b3b){_0x4bfd95=_0x4bfd95-0x0;var _0x1484cd=_0xff90[_0x4bfd95];return _0x1484cd;};'use strict';var multer=require(_0x0ff9('0x0'));var util=require('util');var path=require(_0x0ff9('0x1'));var timeout=require(_0x0ff9('0x2'));var express=require(_0x0ff9('0x3'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0x0ff9('0x4'));var interaction=require(_0x0ff9('0x5'));var config=require(_0x0ff9('0x6'));var controller=require(_0x0ff9('0x7'));router[_0x0ff9('0x8')]('/',auth[_0x0ff9('0x9')](),controller[_0x0ff9('0xa')]);router['get'](_0x0ff9('0xb'),auth[_0x0ff9('0x9')](),controller[_0x0ff9('0xc')]);router[_0x0ff9('0x8')](_0x0ff9('0xd'),auth[_0x0ff9('0x9')](),controller[_0x0ff9('0xe')]);router[_0x0ff9('0x8')]('/:id/unread',auth[_0x0ff9('0x9')](),controller[_0x0ff9('0xf')]);router[_0x0ff9('0x8')](_0x0ff9('0x10'),auth[_0x0ff9('0x9')](),controller[_0x0ff9('0x11')]);router[_0x0ff9('0x8')]('/:id/messages',auth[_0x0ff9('0x9')](),controller[_0x0ff9('0x12')]);router[_0x0ff9('0x13')]('/',auth[_0x0ff9('0x9')](),controller[_0x0ff9('0x14')]);router[_0x0ff9('0x13')](_0x0ff9('0x10'),auth[_0x0ff9('0x9')](),controller[_0x0ff9('0x15')]);router['post']('/:id/messages',auth['isAuthenticated'](),controller[_0x0ff9('0x16')]);router['put']('/:id',auth['isAuthenticated'](),controller['update']);router[_0x0ff9('0x17')](_0x0ff9('0xd'),auth[_0x0ff9('0x9')](),controller[_0x0ff9('0x18')]);router[_0x0ff9('0x17')](_0x0ff9('0x10'),auth[_0x0ff9('0x9')](),controller[_0x0ff9('0x19')]);module[_0x0ff9('0x1a')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdef9=['out','sequelize','exports','BOOLEAN','INTEGER','ENUM','star','thumb','TEXT','STRING','DATE','long'];(function(_0x58aaf8,_0x525867){var _0x35e8dc=function(_0x30c81b){while(--_0x30c81b){_0x58aaf8['push'](_0x58aaf8['shift']());}};_0x35e8dc(++_0x525867);}(_0xdef9,0x1ed));var _0x9def=function(_0x4583d0,_0x24551f){_0x4583d0=_0x4583d0-0x0;var _0x7b3c5a=_0xdef9[_0x4583d0];return _0x7b3c5a;};'use strict';var Sequelize=require(_0x9def('0x0'));module[_0x9def('0x1')]={'closed':{'type':Sequelize[_0x9def('0x2')],'defaultValue':![]},'ratingValue':{'type':Sequelize[_0x9def('0x3')]},'ratingType':{'type':Sequelize[_0x9def('0x4')](_0x9def('0x5'),_0x9def('0x6')),'defaultValue':_0x9def('0x5')},'ratingMessage':{'type':Sequelize[_0x9def('0x7')]},'pathTranscript':{'type':Sequelize[_0x9def('0x7')]},'mailTranscript':{'type':Sequelize[_0x9def('0x8')],'validate':{'isEmail':!![]}},'closedAt':{'type':Sequelize[_0x9def('0x9')]},'disposition':{'type':Sequelize[_0x9def('0x8')]},'secondDisposition':{'type':Sequelize[_0x9def('0x8')]},'thirdDisposition':{'type':Sequelize[_0x9def('0x8')]},'note':{'type':Sequelize[_0x9def('0x8')]},'browserName':{'type':Sequelize[_0x9def('0x8')]},'browserVersion':{'type':Sequelize[_0x9def('0x8')]},'osName':{'type':Sequelize[_0x9def('0x8')]},'osVersion':{'type':Sequelize['STRING']},'deviceModel':{'type':Sequelize[_0x9def('0x8')]},'deviceVendor':{'type':Sequelize['STRING']},'deviceType':{'type':Sequelize['STRING']},'referer':{'type':Sequelize[_0x9def('0x7')]},'customerIp':{'type':Sequelize[_0x9def('0x8')]},'formData':{'type':Sequelize[_0x9def('0x7')](_0x9def('0xa'))},'read1stAt':{'type':Sequelize['DATE']},'lastMsgAt':{'type':Sequelize[_0x9def('0x9')]},'lastMsgDirection':{'type':Sequelize[_0x9def('0x4')]('in',_0x9def('0xb')),'defaultValue':'in','allowNull':![]},'closeReason':{'type':Sequelize[_0x9def('0x8')]},'customerPort':{'type':Sequelize['STRING']},'vidaooSessionId':{'type':Sequelize[_0x9def('0x7')]},'autoreplyExecuted':{'type':Sequelize[_0x9def('0x2')],'defaultValue':![]}};
\ No newline at end of file
+var _0x3070=['star','thumb','TEXT','DATE','STRING','long','BOOLEAN','exports','INTEGER','ENUM'];(function(_0x341e0f,_0x4a09d0){var _0x59555a=function(_0x4343a8){while(--_0x4343a8){_0x341e0f['push'](_0x341e0f['shift']());}};_0x59555a(++_0x4a09d0);}(_0x3070,0x75));var _0x0307=function(_0x1d1fe0,_0x1b7b0b){_0x1d1fe0=_0x1d1fe0-0x0;var _0xc06a9=_0x3070[_0x1d1fe0];return _0xc06a9;};'use strict';var Sequelize=require('sequelize');module[_0x0307('0x0')]={'closed':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'ratingValue':{'type':Sequelize[_0x0307('0x1')]},'ratingType':{'type':Sequelize[_0x0307('0x2')](_0x0307('0x3'),_0x0307('0x4')),'defaultValue':_0x0307('0x3')},'ratingMessage':{'type':Sequelize[_0x0307('0x5')]},'pathTranscript':{'type':Sequelize['TEXT']},'mailTranscript':{'type':Sequelize['STRING'],'validate':{'isEmail':!![]}},'closedAt':{'type':Sequelize[_0x0307('0x6')]},'disposition':{'type':Sequelize[_0x0307('0x7')]},'secondDisposition':{'type':Sequelize[_0x0307('0x7')]},'thirdDisposition':{'type':Sequelize[_0x0307('0x7')]},'note':{'type':Sequelize['STRING']},'browserName':{'type':Sequelize[_0x0307('0x7')]},'browserVersion':{'type':Sequelize[_0x0307('0x7')]},'osName':{'type':Sequelize['STRING']},'osVersion':{'type':Sequelize[_0x0307('0x7')]},'deviceModel':{'type':Sequelize[_0x0307('0x7')]},'deviceVendor':{'type':Sequelize[_0x0307('0x7')]},'deviceType':{'type':Sequelize[_0x0307('0x7')]},'referer':{'type':Sequelize[_0x0307('0x5')]},'customerIp':{'type':Sequelize[_0x0307('0x7')]},'formData':{'type':Sequelize[_0x0307('0x5')](_0x0307('0x8'))},'read1stAt':{'type':Sequelize[_0x0307('0x6')]},'lastMsgAt':{'type':Sequelize['DATE']},'lastMsgDirection':{'type':Sequelize[_0x0307('0x2')]('in','out'),'defaultValue':'in','allowNull':![]},'closeReason':{'type':Sequelize[_0x0307('0x7')]},'customerPort':{'type':Sequelize[_0x0307('0x7')]},'vidaooSessionId':{'type':Sequelize[_0x0307('0x5')]},'autoreplyExecuted':{'type':Sequelize[_0x0307('0x9')],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5f2f=['vidaooMetadata','Error\x20in\x20conversion\x20vidaooMetadata','ValidationError','Error\x20in\x20Vidaoo\x20configuration','join_url','ChatMessage','Unable\x20to\x20create\x20Vidaoo\x20session','updateAttributes','customUpdate','CmContact','abandon','entity\x20not\x20found','sendStatus','Interaction\x20already\x20assigned','closed','disposition','AbandonInteraction','attachmentUpload','file','originalname','mimetype','Attachment','attachmentDownload','Unauthorized','attachId','ChatOfflineMessageId','root','server/files/attachments/','join','offline-chat/','basename','download','mailTranscript','format','transcript-%s.txt','now','pathTranscript','Messages','ChatWebsite','System','customer','%s%d','Visitor','agentIdentifier','website_alias','agentAlias','agent_alias','agent_fullname','[%s]\x20%s:\x20%s\x0a','MM/DD/YYYY\x20HH:mm:ss','secret','MailAccount','MailServerOut','Smtp','service','host','port','authentication','auth','pass','SendMail','sendMail','\x22%s\x22\x20<%s>','Mail\x20Transcript','addMessage','omit','getMessages','pick','includeAll','findAll','getMyMessages','includeAgent','alias','setTags','ids','spread','color','emit','chatInteractionTags:save','removeTags','unix','server','files','tmp','attachments','transcript-%d-%s.zip','firstName','lastName','direction','Account','Owner','get','mkdirSync','Chat','N.A.','YYYY-MM-DD\x20HH:mm:ss','closedAt','browserName','osName','referer','customerIp','customerPort','existsSync','createReadStream','pipe','createWriteStream','out','renderFile','views','downloadInteraction.ejs','transcript-','createPdfFromHTML','log','err','unlinkSync','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','socket.io-emitter','./chatInteraction.socket','register','jayson/promise','http','client','request','then','info','ChatInteraction,\x20%s,\x20%s','request\x20sent','debug','stringify','code','error','message','result','catch','status','end','limit','undefined','count','set','Content-Range','json','apply','save','update','name','merge','body','contact','account','Users','map','fullname','TagIds','Tags','split','forEach','push','index','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','offset','order','sort','where','select','field','from','tools_tags','u.id','u.fullname','ui.ChatInteractionId','left_join','users','u.id\x20=\x20ui.UserId','chat_interactions','cm_contacts','o.id\x20=\x20i.UserId','chat_websites','a.id\x20=\x20i.ChatWebsiteId','me.ChatInteractionId\x20=\x20i.id','chat_interaction_has_tags','it.ChatInteractionId\x20=\x20i.id','t.id\x20=\x20it.TagId','expr','search','sqlOperator','conditions','unreadMessages','having','`\x20=\x200','`\x20>\x200','Contact','operator','$substring','value','getFullTextValue','find','ContactId','buildExpression','text','start','Tag','union','User','UserId','some','isEmpty','i.ChatWebsiteId\x20IN\x20?','concat','createdAt','$gte','parse','\x20IS\x20NULL','\x20=\x20?','read','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','tag','isArray','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','filter','CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?','group','i.id','Sequelize','contactName','DESC','t.id\x20IN\x20?','resolve','ChatWebsiteId','i.ChatWebsiteId\x20IS\x20NOT\x20NULL','user','role','agent','getChatWebsites','i.ChatWebsiteId\x20IS\x20NULL','sequelize','keyBy','ChatInteraction','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','Account.key','Account.mandatoryDisposition','i.*','c.firstName','Contact.firstName','c.lastName','Contact.lastName','Contact.email','c.phone','c.mobile','Contact.mobile','Contact.fax','o.internal','GROUP_CONCAT(DISTINCT\x20t.id)','toString','ui.ChatInteractionId\x20IN\x20?','groupBy','ChatInteractionId','all','rows','show','include','options','create','destroy','params','describe','createVidaooSession','findOne','vidaooApiKey','vidaooEscalation','vidaooTopic','vidaooNote','email','https://api-vidaoo.xcally.com/api/v1/meetings','isNull','follow'];(function(_0x4a1412,_0x2b6ee8){var _0x2cc456=function(_0x2cf4a4){while(--_0x2cf4a4){_0x4a1412['push'](_0x4a1412['shift']());}};_0x2cc456(++_0x2b6ee8);}(_0x5f2f,0x73));var _0xf5f2=function(_0x5ee824,_0x3b1c7b){_0x5ee824=_0x5ee824-0x0;var _0x1abd19=_0x5f2f[_0x5ee824];return _0x1abd19;};'use strict';var emlformat=require(_0xf5f2('0x0'));var rimraf=require(_0xf5f2('0x1'));var zipdir=require(_0xf5f2('0x2'));var jsonpatch=require(_0xf5f2('0x3'));var rp=require(_0xf5f2('0x4'));var moment=require(_0xf5f2('0x5'));var BPromise=require(_0xf5f2('0x6'));var Mustache=require(_0xf5f2('0x7'));var util=require('util');var path=require('path');var sox=require(_0xf5f2('0x8'));var csv=require(_0xf5f2('0x9'));var ejs=require(_0xf5f2('0xa'));var fs=require('fs');var fs_extra=require(_0xf5f2('0xb'));var _=require(_0xf5f2('0xc'));var squel=require(_0xf5f2('0xd'));var crypto=require('crypto');var jsforce=require(_0xf5f2('0xe'));var deskjs=require(_0xf5f2('0xf'));var toCsv=require(_0xf5f2('0x9'));var querystring=require('querystring');var Papa=require(_0xf5f2('0x10'));var Redis=require(_0xf5f2('0x11'));var authService=require(_0xf5f2('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0xf5f2('0x13'));var pdf=require('../../components/export/pdf');var hardwareService=require('../../config/license/hardware');var logger=require(_0xf5f2('0x14'))(_0xf5f2('0x15'));var utils=require('../../config/utils');var config=require(_0xf5f2('0x16'));var licenseUtil=require(_0xf5f2('0x17'));var db=require(_0xf5f2('0x18'))['db'];config[_0xf5f2('0x19')]=_[_0xf5f2('0x1a')](config[_0xf5f2('0x19')],{'host':'localhost','port':0x18eb});var socket=require(_0xf5f2('0x1b'))(new Redis(config[_0xf5f2('0x19')]));require(_0xf5f2('0x1c'))[_0xf5f2('0x1d')](socket);var jayson=require(_0xf5f2('0x1e'));var client=jayson['client'][_0xf5f2('0x1f')]({'port':0x232b});var client9004=jayson[_0xf5f2('0x20')][_0xf5f2('0x1f')]({'port':0x232c});function respondWithRpcPromise(_0x1b6dd2,_0x23e23a,_0x3a9dbb,_0xdb61b3){return new BPromise(function(_0x395a5a,_0x11f702){var _0x228ace=_0xdb61b3||client;return _0x228ace[_0xf5f2('0x21')](_0x1b6dd2,_0x3a9dbb)[_0xf5f2('0x22')](function(_0x4ff59b){logger[_0xf5f2('0x23')](_0xf5f2('0x24'),_0x23e23a,_0xf5f2('0x25'));logger[_0xf5f2('0x26')]('ChatInteraction,\x20%s,\x20%s,\x20%s',_0x23e23a,_0xf5f2('0x25'),JSON[_0xf5f2('0x27')](_0x4ff59b));if(_0x4ff59b['error']){if(_0x4ff59b['error'][_0xf5f2('0x28')]===0x1f4){logger[_0xf5f2('0x29')]('ChatInteraction,\x20%s,\x20%s',_0x23e23a,_0x4ff59b[_0xf5f2('0x29')][_0xf5f2('0x2a')]);return _0x11f702(_0x4ff59b[_0xf5f2('0x29')][_0xf5f2('0x2a')]);}logger[_0xf5f2('0x29')]('ChatInteraction,\x20%s,\x20%s',_0x23e23a,_0x4ff59b[_0xf5f2('0x29')][_0xf5f2('0x2a')]);return _0x395a5a(_0x4ff59b[_0xf5f2('0x29')][_0xf5f2('0x2a')]);}else{logger[_0xf5f2('0x23')]('ChatInteraction,\x20%s,\x20%s',_0x23e23a,'request\x20sent');_0x395a5a(_0x4ff59b[_0xf5f2('0x2b')][_0xf5f2('0x2a')]);}})[_0xf5f2('0x2c')](function(_0x1a5bb3){logger[_0xf5f2('0x29')](_0xf5f2('0x24'),_0x23e23a,_0x1a5bb3);_0x11f702(_0x1a5bb3);});});}function respondWithStatusCode(_0x13a3be,_0x281ec8){_0x281ec8=_0x281ec8||0xcc;return function(_0x294414){if(_0x294414){return _0x13a3be['sendStatus'](_0x281ec8);}return _0x13a3be[_0xf5f2('0x2d')](_0x281ec8)[_0xf5f2('0x2e')]();};}function respondWithResult(_0x375ca8,_0x31bfcb){_0x31bfcb=_0x31bfcb||0xc8;return function(_0x198c73){if(_0x198c73){return _0x375ca8[_0xf5f2('0x2d')](_0x31bfcb)['json'](_0x198c73);}};}function respondWithFilteredResult(_0x53cb96,_0x22c826){return function(_0x14c829){if(_0x14c829){var _0x11c771=typeof _0x22c826['offset']==='undefined'&&typeof _0x22c826[_0xf5f2('0x2f')]===_0xf5f2('0x30');var _0x17394a=_0x14c829[_0xf5f2('0x31')];var _0x1b381e=_0x11c771?0x0:_0x22c826['offset'];var _0x52e959=_0x11c771?_0x14c829[_0xf5f2('0x31')]:_0x22c826['offset']+_0x22c826[_0xf5f2('0x2f')];var _0x58a4df;if(_0x52e959>=_0x17394a){_0x52e959=_0x17394a;_0x58a4df=0xc8;}else{_0x58a4df=0xce;}_0x53cb96[_0xf5f2('0x2d')](_0x58a4df);return _0x53cb96[_0xf5f2('0x32')](_0xf5f2('0x33'),_0x1b381e+'-'+_0x52e959+'/'+_0x17394a)[_0xf5f2('0x34')](_0x14c829);}return null;};}function patchUpdates(_0x256bd9){return function(_0x277eee){try{jsonpatch[_0xf5f2('0x35')](_0x277eee,_0x256bd9,!![]);}catch(_0x2c0e05){return BPromise['reject'](_0x2c0e05);}return _0x277eee[_0xf5f2('0x36')]();};}function saveUpdates(_0x43e4ff,_0x4590ec){return function(_0x43c77d){if(_0x43c77d){return _0x43c77d[_0xf5f2('0x37')](_0x43e4ff)[_0xf5f2('0x22')](function(_0x297c0c){return _0x297c0c;});}return null;};}function removeEntity(_0x48d64d,_0x144646){return function(_0xf503e8){if(_0xf503e8){return _0xf503e8['destroy']()[_0xf5f2('0x22')](function(){_0x48d64d['status'](0xcc)[_0xf5f2('0x2e')]();});}};}function handleEntityNotFound(_0x3930fb,_0x2a2c31){return function(_0x2e3cca){if(!_0x2e3cca){_0x3930fb['sendStatus'](0x194);}return _0x2e3cca;};}function handleError(_0x5a98d7,_0x41088b){_0x41088b=_0x41088b||0x1f4;return function(_0x46ad4a){logger[_0xf5f2('0x29')](_0x46ad4a['stack']);if(_0x46ad4a[_0xf5f2('0x38')]){delete _0x46ad4a['name'];}_0x5a98d7[_0xf5f2('0x2d')](_0x41088b)['send'](_0x46ad4a);};}function getMustacheRender(_0x46f464,_0x456764){return Mustache['render'](_0x46f464,_[_0xf5f2('0x39')](_0x456764[_0xf5f2('0x3a')],{'contact':_0x456764[_0xf5f2('0x3b')],'message':_0x456764[_0xf5f2('0x2a')],'agent':_0x456764['agent'],'interaction':_0x456764['interaction'],'account':_0x456764[_0xf5f2('0x3c')]}))||'';}function getInteractionUsers(_0x140a11,_0x22b20c){return new BPromise(function(_0x2d4400,_0x2c7f65){try{if(_0x22b20c[_0x140a11['id']]){_0x140a11[_0xf5f2('0x3d')]=_[_0xf5f2('0x3e')](_0x22b20c[_0x140a11['id']],function(_0x4c0ac7){return{'id':_0x4c0ac7['id'],'fullname':_0x4c0ac7[_0xf5f2('0x3f')]};});}}catch(_0x3b4ea6){_0x2c7f65(_0x3b4ea6);}_0x2d4400(_0x140a11);});}function getInteractionTags(_0x536501,_0xc6a1ae){return new BPromise(function(_0x3f3895,_0x71b0e7){try{if(_0x536501[_0xf5f2('0x40')]){_0x536501[_0xf5f2('0x41')]=[];_0x536501[_0xf5f2('0x40')][_0xf5f2('0x42')](',')[_0xf5f2('0x43')](function(_0x574f24){_0x536501[_0xf5f2('0x41')][_0xf5f2('0x44')](_0xc6a1ae[_0x574f24]);});}delete _0x536501[_0xf5f2('0x40')];}catch(_0x4a8e39){_0x71b0e7(_0x4a8e39);}_0x3f3895(_0x536501);});}function updateChatInteraction(_0x509dbc,_0x59eb00,_0x76d21b){return new BPromise(function(_0x2ad13c,_0x4c8d8e){return getInteractionUsers(_0x509dbc,_0x76d21b)[_0xf5f2('0x22')](function(_0xeed03d){return getInteractionTags(_0xeed03d,_0x59eb00);})[_0xf5f2('0x22')](function(_0x31f86c){_0x2ad13c(_0x31f86c);})[_0xf5f2('0x2c')](function(_0x2b3b1c){_0x4c8d8e(_0x2b3b1c);});});}exports[_0xf5f2('0x45')]=function(_0x212e90,_0x40c322){var _0x106062={},_0x444317={},_0x4773cd={'count':0x0,'rows':[]};var _0x4252a3=_[_0xf5f2('0x3e')](db['ChatInteraction'][_0xf5f2('0x46')],function(_0x578c93){return{'name':_0x578c93[_0xf5f2('0x47')],'type':_0x578c93[_0xf5f2('0x48')][_0xf5f2('0x49')]};});_0x444317[_0xf5f2('0x4a')]=_[_0xf5f2('0x3e')](_0x4252a3,_0xf5f2('0x38'));_0x444317['query']=_[_0xf5f2('0x4b')](_0x212e90[_0xf5f2('0x4c')]);_0x444317[_0xf5f2('0x4d')]=_[_0xf5f2('0x4e')](_0x444317[_0xf5f2('0x4a')],_0x444317[_0xf5f2('0x4c')]);_0x106062[_0xf5f2('0x4f')]=_[_0xf5f2('0x4e')](_0x444317['model'],qs[_0xf5f2('0x50')](_0x212e90[_0xf5f2('0x4c')][_0xf5f2('0x50')]));_0x106062['attributes']=_0x106062[_0xf5f2('0x4f')][_0xf5f2('0x51')]?_0x106062[_0xf5f2('0x4f')]:_0x444317['model'];if(!_0x212e90['query'][_0xf5f2('0x52')](_0xf5f2('0x53'))){_0x106062['limit']=qs[_0xf5f2('0x2f')](_0x212e90['query'][_0xf5f2('0x2f')]);_0x106062['offset']=qs[_0xf5f2('0x54')](_0x212e90['query'][_0xf5f2('0x54')]);}_0x106062[_0xf5f2('0x55')]=qs[_0xf5f2('0x56')](_0x212e90[_0xf5f2('0x4c')]['sort']);_0x106062[_0xf5f2('0x57')]=qs[_0xf5f2('0x4d')](_['pick'](_0x212e90['query'],_0x444317[_0xf5f2('0x4d')]),_0x4252a3);var _0x3dc0c4=[];var _0x57782c=squel[_0xf5f2('0x58')]()[_0xf5f2('0x59')]('id')[_0xf5f2('0x59')](_0xf5f2('0x38'))['field']('color')[_0xf5f2('0x5a')](_0xf5f2('0x5b'));var _0x4b62fc=squel[_0xf5f2('0x58')]()[_0xf5f2('0x59')](_0xf5f2('0x5c'))[_0xf5f2('0x59')](_0xf5f2('0x5d'))[_0xf5f2('0x59')](_0xf5f2('0x5e'))['from']('user_has_chat_interactions','ui')[_0xf5f2('0x5f')](_0xf5f2('0x60'),'u',_0xf5f2('0x61'));var _0x46a905=squel[_0xf5f2('0x58')]()['from'](_0xf5f2('0x62'),'i')[_0xf5f2('0x5f')](_0xf5f2('0x63'),'c','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL')[_0xf5f2('0x5f')]('users','o',_0xf5f2('0x64'))[_0xf5f2('0x5f')](_0xf5f2('0x65'),'a',_0xf5f2('0x66'))['left_join']('chat_messages','me',_0xf5f2('0x67'))['left_join'](_0xf5f2('0x68'),'it',_0xf5f2('0x69'))['left_join'](_0xf5f2('0x5b'),'t',_0xf5f2('0x6a'));var _0x2a8f6d=squel['expr']();var _0x397b99=[];var _0xcf7a50=squel[_0xf5f2('0x6b')]();var _0x4579f4;if(_0x212e90['query'][_0xf5f2('0x6c')]){_0x4579f4=as['parseSearch'](_0x212e90[_0xf5f2('0x4c')][_0xf5f2('0x6c')]);var _0x2e6f5d=_0x4579f4[_0xf5f2('0x6d')];for(var _0x9f210e=0x0;_0x9f210e<_0x4579f4['conditions'][_0xf5f2('0x51')];_0x9f210e++){var _0xacd80=_0x4579f4[_0xf5f2('0x6e')][_0x9f210e];var _0x212639='i';var _0x2c5733=_['find'](_0x4252a3,[_0xf5f2('0x38'),_0xacd80['field']]);if(!_0x2c5733){switch(_0xacd80['field']){case _0xf5f2('0x6f'):if(_0xacd80['value']==0x1){_0x46a905[_0xf5f2('0x70')]('`'+_0xacd80[_0xf5f2('0x59')]+_0xf5f2('0x71'));}else{_0x46a905[_0xf5f2('0x70')]('`'+_0xacd80['field']+_0xf5f2('0x72'));}break;case _0xf5f2('0x73'):if(_0xacd80[_0xf5f2('0x74')]===_0xf5f2('0x75')){if(_0xacd80[_0xf5f2('0x76')][_0xf5f2('0x42')]('\x20')[_0xf5f2('0x51')]>0x1){_0x2a8f6d[_0x2e6f5d]('MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs[_0xf5f2('0x77')](_0xacd80[_0xf5f2('0x76')]),null);}else{var _0xb39a6e='%'+_0xacd80[_0xf5f2('0x76')]+'%';_0x2a8f6d[_0x2e6f5d]('c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?',_0xb39a6e,_0xb39a6e,_0xb39a6e);}}else{_0x2c5733=_[_0xf5f2('0x78')](_0x4252a3,['name',_0xf5f2('0x79')]);_0xacd80[_0xf5f2('0x59')]='ContactId';_0x5a143f=as[_0xf5f2('0x7a')](_0x212639,_0x2c5733[_0xf5f2('0x48')],_0xacd80);_0x2a8f6d[_0x2e6f5d](_0x5a143f[_0xf5f2('0x7b')],_0x5a143f[_0xf5f2('0x76')][_0xf5f2('0x7c')],_0x5a143f['value'][_0xf5f2('0x2e')]);}break;case _0xf5f2('0x7d'):var _0x3a0e75=_0xacd80[_0xf5f2('0x76')][_0xf5f2('0x42')](',')[_0xf5f2('0x3e')](function(_0x53284f){return Number(_0x53284f);});_0x3a0e75[_0xf5f2('0x43')](function(_0x3f475e){_0xcf7a50['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x3f475e+',%');});_0x397b99=_[_0xf5f2('0x7e')](_0x397b99,_0x3a0e75);break;case _0xf5f2('0x7f'):if(_0xacd80[_0xf5f2('0x74')]==='$substring'){_0x2a8f6d[_0x2e6f5d]('CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','%'+_0xacd80['value']+'%',null);}else{_0x2c5733=_[_0xf5f2('0x78')](_0x4252a3,[_0xf5f2('0x38'),_0xf5f2('0x80')]);_0xacd80[_0xf5f2('0x59')]=_0xf5f2('0x80');_0x5a143f=as['buildExpression'](_0x212639,_0x2c5733[_0xf5f2('0x48')],_0xacd80);_0x2a8f6d[_0x2e6f5d](_0x5a143f[_0xf5f2('0x7b')],_0x5a143f[_0xf5f2('0x76')][_0xf5f2('0x7c')],_0x5a143f[_0xf5f2('0x76')][_0xf5f2('0x2e')]);}break;case _0xf5f2('0x3a'):_0x5a143f=as[_0xf5f2('0x7a')]('me',null,_0xacd80);_0x2a8f6d[_0x2e6f5d](_0x5a143f[_0xf5f2('0x7b')],_0x5a143f[_0xf5f2('0x76')][_0xf5f2('0x7c')],_0x5a143f['value']['end']);break;}}else{var _0x5a143f=as[_0xf5f2('0x7a')](_0x212639,_0x2c5733[_0xf5f2('0x48')],_0xacd80);_0x2a8f6d[_0x2e6f5d](_0x5a143f[_0xf5f2('0x7b')],_0x5a143f[_0xf5f2('0x76')][_0xf5f2('0x7c')],_0x5a143f['value'][_0xf5f2('0x2e')]);}}}else{var _0x43c732=_(_0x212e90[_0xf5f2('0x4c')])[_0xf5f2('0x4b')]()[_0xf5f2('0x3e')](function(_0x55748d){return _[_0xf5f2('0x81')](_0x4252a3,[_0xf5f2('0x38'),_0x55748d])?_0x55748d:undefined;})['compact']()[_0xf5f2('0x76')]();if(!_[_0xf5f2('0x82')](_0x43c732)){_0x43c732[_0xf5f2('0x43')](function(_0x30ac41){if(_0x30ac41==='ChatWebsiteId'){_0x46a905[_0xf5f2('0x57')](_0xf5f2('0x83'),[][_0xf5f2('0x84')](_0x212e90[_0xf5f2('0x4c')][_0x30ac41]));}else if(_0x30ac41===_0xf5f2('0x85')){var _0x4f47e1=JSON['parse'](_0x212e90[_0xf5f2('0x4c')][_0x30ac41])[_0xf5f2('0x86')];var _0x17eb69=JSON[_0xf5f2('0x87')](_0x212e90['query'][_0x30ac41])['$lte'];_0x46a905[_0xf5f2('0x57')]('i.createdAt\x20BETWEEN\x20?\x20AND\x20?',_0x4f47e1,_0x17eb69);}else{if(_0x212e90['query'][_0x30ac41]==='null'){_0x46a905['where']('i.'+_0x30ac41+_0xf5f2('0x88'));}else{_0x46a905[_0xf5f2('0x57')]('i.'+_0x30ac41+_0xf5f2('0x89'),_0x212e90[_0xf5f2('0x4c')][_0x30ac41]);}}});}if(_0x212e90[_0xf5f2('0x4c')][_0xf5f2('0x8a')]){if(_0x212e90[_0xf5f2('0x4c')][_0xf5f2('0x8a')]==0x1){_0x46a905[_0xf5f2('0x70')](_0xf5f2('0x8b'));}else{_0x46a905[_0xf5f2('0x70')](_0xf5f2('0x8c'));}}if(_0x212e90[_0xf5f2('0x4c')][_0xf5f2('0x8d')]){_0x397b99=_[_0xf5f2('0x8e')](_0x212e90[_0xf5f2('0x4c')][_0xf5f2('0x8d')])?_0x212e90[_0xf5f2('0x4c')]['tag']:new Array(_0x212e90[_0xf5f2('0x4c')][_0xf5f2('0x8d')]);_0x397b99[_0xf5f2('0x43')](function(_0x2811ad){_0xcf7a50['or'](_0xf5f2('0x8f'),'%,'+_0x2811ad+',%');});}if(_0x212e90[_0xf5f2('0x4c')][_0xf5f2('0x90')]){var _0xcf48eb=_0x212e90['query'][_0xf5f2('0x90')]['replace']('\x5c','\x5c\x5c')['replace'](/'/g,'\x27\x27');if(qs['isNumeric'](_0xcf48eb)){_0x2a8f6d['or']('i.id\x20LIKE\x20?',_0xcf48eb+'%');}else{_0x2a8f6d['or']('MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs['getFullTextValue'](_0xcf48eb))['or'](_0xf5f2('0x91'),_0xcf48eb+'%');}}}_0x46a905[_0xf5f2('0x57')](_0x2a8f6d);_0x46a905[_0xf5f2('0x92')](_0xf5f2('0x93'));var _0x145d4d={'type':db[_0xf5f2('0x94')]['QueryTypes']['SELECT'],'raw':!![]};var _0x2fb1a6=_0x46a905['clone']();_0x2fb1a6[_0xf5f2('0x59')](_0xf5f2('0x93'));_0x2fb1a6['field']('SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)',_0xf5f2('0x6f'));if(_0x106062[_0xf5f2('0x55')]){_0x106062['order'][_0xf5f2('0x43')](function(_0x388b32){var _0x49e363=_0x388b32[0x0]===_0xf5f2('0x95')?_0x388b32[0x0]:'i.'+_0x388b32[0x0];_0x46a905[_0xf5f2('0x55')](_0x49e363,_0x388b32[0x1]===_0xf5f2('0x96')?![]:!![]);});}if(!_['isEmpty'](_0x397b99)){_0x46a905[_0xf5f2('0x70')](_0xcf7a50);_0x2fb1a6[_0xf5f2('0x57')](_0xf5f2('0x97'),_0x397b99);}BPromise[_0xf5f2('0x98')]()[_0xf5f2('0x22')](function(){if(!_0x4579f4){if(_0x212e90[_0xf5f2('0x4c')][_0xf5f2('0x99')])return;_0x2fb1a6[_0xf5f2('0x57')](_0xf5f2('0x9a'));_0x46a905[_0xf5f2('0x57')](_0xf5f2('0x9a'));return;}if(_0x212e90[_0xf5f2('0x9b')][_0xf5f2('0x9c')]!==_0xf5f2('0x9d'))return;return _0x212e90[_0xf5f2('0x9b')][_0xf5f2('0x9e')]({'attributes':['id'],'raw':!![]})[_0xf5f2('0x22')](function(_0x29a9d4){if(_[_0xf5f2('0x82')](_0x29a9d4)){_0x2fb1a6[_0xf5f2('0x57')](_0xf5f2('0x9f'));_0x46a905['where'](_0xf5f2('0x9f'));}else{_0x2fb1a6[_0xf5f2('0x57')]('i.ChatWebsiteId\x20IN\x20?',_[_0xf5f2('0x3e')](_0x29a9d4,'id'));_0x46a905[_0xf5f2('0x57')]('i.ChatWebsiteId\x20IN\x20?',_[_0xf5f2('0x3e')](_0x29a9d4,'id'));}});})[_0xf5f2('0x22')](function(){if(_0x212e90[_0xf5f2('0x9b')]['role']==='agent'&&!_0x4579f4&&!_0x212e90[_0xf5f2('0x4c')][_0xf5f2('0x99')])return[];return db[_0xf5f2('0xa0')]['query'](_0x2fb1a6['toString'](),_0x145d4d);})[_0xf5f2('0x22')](function(_0xcdc6fd){_0x4773cd[_0xf5f2('0x31')]=_0xcdc6fd['length'];if(_0x4773cd['count']===0x0)return[];return db['sequelize']['query'](_0x57782c['toString'](),_0x145d4d)[_0xf5f2('0x22')](function(_0x561bab){_0x3dc0c4=_[_0xf5f2('0xa1')](_0x561bab,'id');_0x145d4d=_[_0xf5f2('0x39')](_0x145d4d,{'model':db[_0xf5f2('0xa2')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x212e90[_0xf5f2('0x4c')][_0xf5f2('0x50')]){_0x106062[_0xf5f2('0x4f')][_0xf5f2('0x43')](function(_0x40e921){_0x46a905[_0xf5f2('0x59')]('i.'+_0x40e921);});}else{_0x46a905[_0xf5f2('0x59')](_0xf5f2('0xa3'),_0xf5f2('0x6f'));_0x46a905[_0xf5f2('0x59')]('a.key',_0xf5f2('0xa4'));_0x46a905[_0xf5f2('0x59')]('a.mandatoryDisposition',_0xf5f2('0xa5'));_0x46a905[_0xf5f2('0x59')]('CASE\x20WHEN\x20(c.firstName\x20IS\x20NOT\x20NULL\x20AND\x20c.firstName\x20<>\x20\x27\x27)\x20OR\x20(c.lastName\x20IS\x20NOT\x20NULL\x20AND\x20c.lastName\x20<>\x20\x27\x27)\x20THEN\x20CONCAT(IFNULL(c.firstName,\x20\x27\x27),\x20\x27\x20\x27,\x20IFNULL(c.lastName,\x20\x27\x27))\x20ELSE\x20\x27Unknown\x27\x20END',_0xf5f2('0x95'));_0x46a905[_0xf5f2('0x59')](_0xf5f2('0xa6'));_0x46a905['field'](_0xf5f2('0xa7'),_0xf5f2('0xa8'));_0x46a905['field'](_0xf5f2('0xa9'),_0xf5f2('0xaa'));_0x46a905[_0xf5f2('0x59')]('c.email',_0xf5f2('0xab'));_0x46a905['field'](_0xf5f2('0xac'),'Contact.phone');_0x46a905[_0xf5f2('0x59')](_0xf5f2('0xad'),_0xf5f2('0xae'));_0x46a905[_0xf5f2('0x59')]('c.fax',_0xf5f2('0xaf'));_0x46a905['field']('o.fullname','Owner.fullname');_0x46a905[_0xf5f2('0x59')](_0xf5f2('0xb0'),'Owner.internal');_0x46a905[_0xf5f2('0x59')](_0xf5f2('0xb1'),_0xf5f2('0x40'));}if(_0x106062[_0xf5f2('0x2f')])_0x46a905[_0xf5f2('0x2f')](_0x106062[_0xf5f2('0x2f')]);if(_0x106062['offset'])_0x46a905[_0xf5f2('0x54')](_0x106062[_0xf5f2('0x54')]);return db['sequelize'][_0xf5f2('0x4c')](_0x46a905[_0xf5f2('0xb2')](),_0x145d4d);})['then'](function(_0x32301a){if(_0x32301a[_0xf5f2('0x51')]>0x0)_0x4b62fc[_0xf5f2('0x57')](_0xf5f2('0xb3'),_[_0xf5f2('0x3e')](_0x32301a,'id'));return db[_0xf5f2('0xa0')]['query'](_0x4b62fc[_0xf5f2('0xb2')](),_0x145d4d)[_0xf5f2('0x22')](function(_0x13fcb0){var _0x792c75=_[_0xf5f2('0xb4')](_0x13fcb0,_0xf5f2('0xb5'));var _0x162c13=[];_0x32301a[_0xf5f2('0x43')](function(_0x3e4e40){_0x162c13['push'](updateChatInteraction(_0x3e4e40,_0x3dc0c4,_0x792c75));});return BPromise[_0xf5f2('0xb6')](_0x162c13);});});})[_0xf5f2('0x22')](function(_0xdbb2cd){_0x4773cd[_0xf5f2('0xb7')]=_0xdbb2cd;return _0x4773cd;})[_0xf5f2('0x22')](respondWithFilteredResult(_0x40c322,_0x106062))[_0xf5f2('0x2c')](handleError(_0x40c322,null));};exports[_0xf5f2('0xb8')]=function(_0x56f4b4,_0x33cfe7){var _0x40d0eb={'raw':![],'where':{'id':_0x56f4b4['params']['id']}},_0x4c138c={};_0x4c138c[_0xf5f2('0x4a')]=_[_0xf5f2('0x4b')](db[_0xf5f2('0xa2')][_0xf5f2('0x46')]);_0x4c138c['query']=_[_0xf5f2('0x4b')](_0x56f4b4[_0xf5f2('0x4c')]);_0x4c138c[_0xf5f2('0x4d')]=_[_0xf5f2('0x4e')](_0x4c138c[_0xf5f2('0x4a')],_0x4c138c['query']);_0x40d0eb[_0xf5f2('0x4f')]=_[_0xf5f2('0x4e')](_0x4c138c['model'],qs[_0xf5f2('0x50')](_0x56f4b4[_0xf5f2('0x4c')][_0xf5f2('0x50')]));_0x40d0eb[_0xf5f2('0x4f')]=_0x40d0eb['attributes'][_0xf5f2('0x51')]?_0x40d0eb[_0xf5f2('0x4f')]:_0x4c138c[_0xf5f2('0x4a')];if(_0x56f4b4['query']['includeAll']){_0x40d0eb[_0xf5f2('0xb9')]=[{'all':!![]}];}_0x40d0eb=_[_0xf5f2('0x39')]({},_0x40d0eb,_0x56f4b4[_0xf5f2('0xba')]);return db[_0xf5f2('0xa2')][_0xf5f2('0x78')](_0x40d0eb)[_0xf5f2('0x22')](handleEntityNotFound(_0x33cfe7,null))['then'](respondWithResult(_0x33cfe7,null))[_0xf5f2('0x2c')](handleError(_0x33cfe7,null));};exports['create']=function(_0x151f13,_0x1624a4){return db[_0xf5f2('0xa2')][_0xf5f2('0xbb')](_0x151f13[_0xf5f2('0x3a')],{})[_0xf5f2('0x22')](respondWithResult(_0x1624a4,0xc9))['catch'](handleError(_0x1624a4,null));};exports[_0xf5f2('0x37')]=function(_0x409ed1,_0x457b53){if(_0x409ed1[_0xf5f2('0x3a')]['id']){delete _0x409ed1[_0xf5f2('0x3a')]['id'];}return db[_0xf5f2('0xa2')][_0xf5f2('0x78')]({'where':{'id':_0x409ed1['params']['id']}})[_0xf5f2('0x22')](handleEntityNotFound(_0x457b53,null))['then'](saveUpdates(_0x409ed1['body'],null))['then'](respondWithResult(_0x457b53,null))[_0xf5f2('0x2c')](handleError(_0x457b53,null));};exports[_0xf5f2('0xbc')]=function(_0x568806,_0x3487df){return db[_0xf5f2('0xa2')][_0xf5f2('0x78')]({'where':{'id':_0x568806[_0xf5f2('0xbd')]['id']}})['then'](handleEntityNotFound(_0x3487df,null))[_0xf5f2('0x22')](removeEntity(_0x3487df,null))[_0xf5f2('0x2c')](handleError(_0x3487df,null));};exports[_0xf5f2('0xbe')]=function(_0x5d3ca7,_0x29f7bd){return db[_0xf5f2('0xa2')]['describe']()[_0xf5f2('0x22')](respondWithResult(_0x29f7bd,null))[_0xf5f2('0x2c')](handleError(_0x29f7bd,null));};exports[_0xf5f2('0xbf')]=function(_0x1583bb,_0x176974){var _0x8b591c=_0x1583bb[_0xf5f2('0xbd')]['id'];var _0x2c242b;var _0x155007;var _0x4782da;return db[_0xf5f2('0xa2')]['findOne']({'where':{'id':_0x8b591c}})[_0xf5f2('0x22')](function(_0x31dbfa){_0x2c242b=_0x31dbfa;return db['ChatWebsite'][_0xf5f2('0xc0')]({'where':{'id':_0x31dbfa['ChatWebsiteId']},'attributes':['id',_0xf5f2('0xc1'),_0xf5f2('0xc2'),_0xf5f2('0xc3'),_0xf5f2('0xc4'),'vidaooMetadata'],'raw':!![]});})[_0xf5f2('0x22')](function(_0x5a104b){if(_0x5a104b&&_0x5a104b[_0xf5f2('0xc1')]&&_0x5a104b['vidaooEscalation']){_0x155007=_0x5a104b;var _0x3310cb={'interaction':{'id':_0x8b591c},'agent':{'id':_0x1583bb[_0xf5f2('0x9b')]['id'],'name':_0x1583bb['user'][_0xf5f2('0x38')],'fullname':_0x1583bb[_0xf5f2('0x9b')][_0xf5f2('0x3f')],'email':_0x1583bb[_0xf5f2('0x9b')][_0xf5f2('0xc5')]},'contact':_0x1583bb[_0xf5f2('0x3a')]['contact'],'account':_0x1583bb['body'][_0xf5f2('0x3c')]};var _0x17e1eb={'rejectUnauthorized':![],'method':'POST','url':_0xf5f2('0xc6'),'headers':{'X-APIKEY':_0x5a104b[_0xf5f2('0xc1')]},'body':{'duration':null,'scheduledAt':null,'participants':[_0x1583bb[_0xf5f2('0x9b')][_0xf5f2('0xc5')]],'buttons':null,'topic':_0x155007[_0xf5f2('0xc3')],'note':_[_0xf5f2('0xc7')](_0x155007[_0xf5f2('0xc4')])?null:getMustacheRender(_0x155007['vidaooNote'],_0x3310cb),'metadata':null},'redirect':_0xf5f2('0xc8'),'json':!![]};try{if(!_['isNull'](_0x155007[_0xf5f2('0xc9')])){var _0x5ec0f3=getMustacheRender(_0x155007[_0xf5f2('0xc9')],_0x3310cb);var _0x4f2531=JSON[_0xf5f2('0x87')](_0x5ec0f3);_0x17e1eb['body']['metadata']=_0x4f2531;}}catch(_0x2c285c){throw new db[(_0xf5f2('0x94'))]['ValidationError'](_0xf5f2('0xca'));}return rp(_0x17e1eb);}else{throw new db[(_0xf5f2('0x94'))][(_0xf5f2('0xcb'))](_0xf5f2('0xcc'));}})[_0xf5f2('0x22')](function(_0x25af1e){_0x4782da=_0x25af1e;if(_0x4782da['id']){var _0xd0b5d={'body':_0x4782da[_0xf5f2('0xcd')],'ChatWebsiteId':_0x155007['id'],'ChatInteractionId':_0x2c242b['id'],'direction':'out','UserId':_0x1583bb['user']['id']};return db[_0xf5f2('0xce')]['create'](_0xd0b5d,{});}else{throw new db[(_0xf5f2('0x94'))][(_0xf5f2('0xcb'))](_0xf5f2('0xcf'));}})[_0xf5f2('0x22')](function(){return _0x2c242b[_0xf5f2('0xd0')]({'vidaooSessionId':_0x4782da['id']});})[_0xf5f2('0x22')](respondWithResult(_0x176974,null))[_0xf5f2('0x2c')](handleError(_0x176974,null));};exports[_0xf5f2('0xd1')]=function(_0x28f65b,_0x16cbd3){if(_0x28f65b[_0xf5f2('0x3a')]['id']){delete _0x28f65b[_0xf5f2('0x3a')]['id'];}return db['ChatInteraction'][_0xf5f2('0x78')]({'where':{'id':_0x28f65b['params']['id']},'include':[{'model':db[_0xf5f2('0xd2')],'as':_0xf5f2('0x73')}]})[_0xf5f2('0x22')](handleEntityNotFound(_0x16cbd3,null))[_0xf5f2('0x22')](saveUpdates(_0x28f65b[_0xf5f2('0x3a')],null))[_0xf5f2('0x22')](respondWithResult(_0x16cbd3,null))[_0xf5f2('0x2c')](handleError(_0x16cbd3,null));};exports[_0xf5f2('0xd3')]=function(_0x29db4f,_0x377c68,_0xe0f288){if(_0x29db4f['body']['id']){delete _0x29db4f[_0xf5f2('0x3a')]['id'];}return db[_0xf5f2('0xa2')][_0xf5f2('0x78')]({'where':{'id':_0x29db4f[_0xf5f2('0xbd')]['id']}})[_0xf5f2('0x22')](function(_0x3f8794){if(!_0x3f8794){logger[_0xf5f2('0x29')]('abandonInteraction,\x20%s,\x20%s,\x20%s',_0xf5f2('0xd3'),0x194,_0xf5f2('0xd4'));_0x377c68[_0xf5f2('0xd5')](0x194);}else{if(_0x3f8794[_0xf5f2('0x80')]){throw new db[(_0xf5f2('0x94'))][(_0xf5f2('0xcb'))](_0xf5f2('0xd6'));}}return _0x3f8794;})[_0xf5f2('0x22')](function(_0x356155){if(_0x356155){return _0x356155[_0xf5f2('0x37')]({'closed':_0x29db4f[_0xf5f2('0x3a')][_0xf5f2('0xd7')],'disposition':_0x29db4f[_0xf5f2('0x3a')][_0xf5f2('0xd8')]})[_0xf5f2('0x22')](function(_0x654b1b){return _0x654b1b;});}})['then'](function(_0x25566a){return respondWithRpcPromise(_0xf5f2('0xd9'),'abandon',_0x29db4f['body'],client9004);})[_0xf5f2('0x22')](respondWithResult(_0x377c68,null))[_0xf5f2('0x2c')](handleError(_0x377c68,null));};exports[_0xf5f2('0xda')]=function(_0x2c8f4c,_0x529d6f,_0x28cc){_0x2c8f4c[_0xf5f2('0x3a')][_0xf5f2('0x38')]=_0x2c8f4c[_0xf5f2('0xdb')][_0xf5f2('0xdc')];_0x2c8f4c[_0xf5f2('0x3a')]['basename']=_0x2c8f4c[_0xf5f2('0xdb')]['filename'];_0x2c8f4c['body'][_0xf5f2('0x48')]=_0x2c8f4c[_0xf5f2('0xdb')][_0xf5f2('0xdd')];return db[_0xf5f2('0xde')][_0xf5f2('0xbb')](_0x2c8f4c[_0xf5f2('0x3a')])[_0xf5f2('0x22')](respondWithResult(_0x529d6f,0xc9))['catch'](handleError(_0x529d6f,null));};exports[_0xf5f2('0xdf')]=function(_0x3a2862,_0x2c1160,_0x5e6c83){return db[_0xf5f2('0xa2')]['findOne']({'where':{'id':_0x3a2862['params']['id']},'raw':!![]})[_0xf5f2('0x22')](handleEntityNotFound(_0x2c1160,null))['then'](function(_0x2389b7){if(_0x2389b7){if(_0x2389b7[_0xf5f2('0xd7')]){return _0x2c1160['status'](0x193)[_0xf5f2('0x34')]({'status':0x193,'message':_0xf5f2('0xe0')});}return db['Attachment'][_0xf5f2('0xc0')]({'where':{'id':_0x3a2862[_0xf5f2('0x4c')][_0xf5f2('0xe1')]},'raw':!![]})[_0xf5f2('0x22')](handleEntityNotFound(_0x2c1160,null));}})[_0xf5f2('0x22')](function(_0x47a28a){if(_0x47a28a){var _0x182fa7=_0x47a28a[_0xf5f2('0xe2')]!==null;var _0x4d9048=path['join'](config[_0xf5f2('0xe3')],_0xf5f2('0xe4'));if(_0x182fa7){_0x4d9048=path[_0xf5f2('0xe5')](_0x4d9048,_0xf5f2('0xe6'));}var _0x1f51d8=path[_0xf5f2('0xe5')](_0x4d9048,_0x47a28a[_0xf5f2('0xe7')]);return _0x2c1160[_0xf5f2('0xe8')](_0x1f51d8);}})['catch'](handleError(_0x2c1160,null));};exports['close']=function(_0xc86ed5,_0x5be398){var _0x34abb6=null;var _0x235c30=null;var _0x15b060=null;var _0x422e88=null;if(_0xc86ed5['body']['id']){delete _0xc86ed5[_0xf5f2('0x3a')]['id'];}if(_0xc86ed5[_0xf5f2('0x3a')][_0xf5f2('0xe9')]){_0x422e88=path[_0xf5f2('0xe5')](config[_0xf5f2('0xe3')],'server/files/chat/upload/',util[_0xf5f2('0xea')](_0xf5f2('0xeb'),Date[_0xf5f2('0xec')]()));_0xc86ed5[_0xf5f2('0x3a')][_0xf5f2('0xed')]=_0x422e88;}return db[_0xf5f2('0xa2')][_0xf5f2('0x78')]({'where':{'id':_0xc86ed5[_0xf5f2('0xbd')]['id']},'include':[{'model':db[_0xf5f2('0xce')],'as':_0xf5f2('0xee'),'include':[{'model':db[_0xf5f2('0x7f')],'as':_0xf5f2('0x7f')}]}]})['then'](handleEntityNotFound(_0x5be398,null))[_0xf5f2('0x22')](saveUpdates(_0xc86ed5['body'],null))[_0xf5f2('0x22')](function(_0x349efe){if(_0x349efe){_0x34abb6=_0x349efe;return db[_0xf5f2('0xef')][_0xf5f2('0x78')]({'where':{'id':_0x34abb6[_0xf5f2('0x99')]}});}})[_0xf5f2('0x22')](function(_0x2cd0b7){if(_0x2cd0b7){_0x15b060=_0x2cd0b7;return db[_0xf5f2('0xd2')][_0xf5f2('0x78')]({'where':{'id':_0x34abb6[_0xf5f2('0x79')]}});}})[_0xf5f2('0x22')](function(_0x2b6f46){if(_0x2b6f46){_0x235c30=_0x2b6f46;if(_0x422e88){var _0xf53f16=null;for(var _0xd45a63=0x1;_0xd45a63<_0x34abb6[_0xf5f2('0xee')][_0xf5f2('0x51')];++_0xd45a63){_0xf53f16=_0x34abb6[_0xf5f2('0xee')][_0xd45a63];var _0x33f987=_0xf53f16['UserId']?util[_0xf5f2('0xea')]('%s%d',_0x15b060['agentAlias'],_0xf53f16[_0xf5f2('0x80')]):_0xf5f2('0xf0');var _0x53e85c=_0xc86ed5[_0xf5f2('0x3a')][_0xf5f2('0xf1')]||util[_0xf5f2('0xea')](_0xf5f2('0xf2'),_0xf5f2('0xf3'),_0xf53f16[_0xf5f2('0x79')]);switch(_0x15b060[_0xf5f2('0xf4')]){case _0xf5f2('0xf5'):_0x33f987=_0xf53f16['UserId']?util[_0xf5f2('0xea')](_0xf5f2('0xf2'),_0x15b060[_0xf5f2('0xf6')],_0xf53f16['UserId']):_0xf5f2('0xf0');break;case _0xf5f2('0xf7'):_0x33f987=_0xf53f16[_0xf5f2('0x80')]?_0xf53f16[_0xf5f2('0x7f')]['alias']||_0xf53f16['User'][_0xf5f2('0x3f')]:_0xf5f2('0xf0');break;case _0xf5f2('0xf8'):_0x33f987=_0xf53f16[_0xf5f2('0x80')]?_0xf53f16[_0xf5f2('0x7f')][_0xf5f2('0x3f')]:_0xf5f2('0xf0');break;default:_0x33f987=_0xf53f16[_0xf5f2('0x80')]?util[_0xf5f2('0xea')](_0xf5f2('0xf2'),_0x15b060['agentAlias'],_0xf53f16[_0xf5f2('0x80')]):_0xf5f2('0xf0');}var _0x3881cd=util['format'](_0xf5f2('0xf9'),moment(_0xf53f16[_0xf5f2('0x85')])['format'](_0xf5f2('0xfa')),_0xf53f16['direction']==='in'?_0x53e85c:_0x33f987,_0xf53f16[_0xf5f2('0x3a')]);if(!_0xf53f16[_0xf5f2('0xfb')]){fs['appendFileSync'](_0x422e88,_0x3881cd);}}return db[_0xf5f2('0xfc')]['findOne']({'where':{'service':!![]},'include':[{'model':db[_0xf5f2('0xfd')],'as':_0xf5f2('0xfe'),'raw':!![]}]});}}})['then'](function(_0x3971ee){if(_0x3971ee&&_0x3971ee[_0xf5f2('0xfe')]&&_0xc86ed5[_0xf5f2('0x3a')]){var _0xfeccdd={'tls':{'rejectUnauthorized':![]}};if(_0x3971ee[_0xf5f2('0xfe')]['service']){_0xfeccdd[_0xf5f2('0xff')]=_0x3971ee[_0xf5f2('0xfe')][_0xf5f2('0xff')];}else{_0xfeccdd[_0xf5f2('0x100')]=_0x3971ee[_0xf5f2('0xfe')][_0xf5f2('0x100')];_0xfeccdd[_0xf5f2('0x101')]=_0x3971ee[_0xf5f2('0xfe')][_0xf5f2('0x101')];_0xfeccdd['secure']=_0x3971ee[_0xf5f2('0xfe')]['secure'];}if(_0x3971ee['Smtp'][_0xf5f2('0x102')]){_0xfeccdd[_0xf5f2('0x103')]={'user':_0x3971ee[_0xf5f2('0xfe')][_0xf5f2('0x9b')],'pass':_0x3971ee[_0xf5f2('0xfe')][_0xf5f2('0x104')]};}return respondWithRpcPromise(_0xf5f2('0x105'),_0xf5f2('0x106'),{'account':_0xfeccdd,'message':{'from':util[_0xf5f2('0xea')](_0xf5f2('0x107'),_0x3971ee['name'],_0x3971ee['email']||_0x3971ee['Smtp'][_0xf5f2('0x9b')]),'to':_0xc86ed5['body'][_0xf5f2('0xe9')],'subject':_0xf5f2('0x108'),'text':util[_0xf5f2('0xea')]('Hi\x20%s,\x20attached\x20you\x20can\x20find\x20your\x20transcript\x20file.\x20\x0a\x0aRegards.\x20\x0a\x0a',_0xc86ed5[_0xf5f2('0x3a')][_0xf5f2('0xe9')]),'attachments':[{'path':_0x422e88}]}})['then'](function(){return _0x34abb6;})['catch'](function(_0x4d0709){console[_0xf5f2('0x29')](_0x4d0709);});}else{return _0x34abb6;}})[_0xf5f2('0x22')](respondWithStatusCode(_0x5be398,0xc8))[_0xf5f2('0x2c')](handleError(_0x5be398,null));};exports['addMessage']=function(_0x2cfa84,_0x4a22fb,_0x7cf1b6){return db[_0xf5f2('0xce')][_0xf5f2('0x78')]({'where':{'id':_0x2cfa84['params']['id']}})[_0xf5f2('0x22')](handleEntityNotFound(_0x4a22fb,null))['then'](function(_0x1b88b5){if(_0x1b88b5){return _0x1b88b5[_0xf5f2('0x109')](_0x2cfa84[_0xf5f2('0x3a')]['ids'],_[_0xf5f2('0x10a')](_0x2cfa84[_0xf5f2('0x3a')],['ids','id'])||{});}})[_0xf5f2('0x22')](respondWithResult(_0x4a22fb,null))[_0xf5f2('0x2c')](handleError(_0x4a22fb,null));};exports[_0xf5f2('0x10b')]=function(_0x29526c,_0x2a52e3,_0x439c9f){var _0x44adaa={'raw':![],'where':{}};var _0x3c7058={};var _0x3bcb44={'count':0x0,'rows':[]};return db[_0xf5f2('0xa2')][_0xf5f2('0xc0')]({'where':{'id':_0x29526c[_0xf5f2('0xbd')]['id']}})[_0xf5f2('0x22')](handleEntityNotFound(_0x2a52e3,null))[_0xf5f2('0x22')](function(_0x23675a){if(_0x23675a){_0x3c7058[_0xf5f2('0x4a')]=_[_0xf5f2('0x4b')](db[_0xf5f2('0xce')][_0xf5f2('0x46')]);_0x3c7058[_0xf5f2('0x4c')]=_[_0xf5f2('0x4b')](_0x29526c[_0xf5f2('0x4c')]);_0x3c7058['filters']=_[_0xf5f2('0x4e')](_0x3c7058[_0xf5f2('0x4a')],_0x3c7058[_0xf5f2('0x4c')]);_0x44adaa[_0xf5f2('0x4f')]=_['intersection'](_0x3c7058[_0xf5f2('0x4a')],qs['fields'](_0x29526c[_0xf5f2('0x4c')][_0xf5f2('0x50')]));_0x44adaa[_0xf5f2('0x4f')]=_0x44adaa[_0xf5f2('0x4f')][_0xf5f2('0x51')]?_0x44adaa[_0xf5f2('0x4f')]:_0x3c7058[_0xf5f2('0x4a')];if(!_0x29526c['query']['hasOwnProperty'](_0xf5f2('0x53'))){_0x44adaa[_0xf5f2('0x2f')]=qs[_0xf5f2('0x2f')](_0x29526c[_0xf5f2('0x4c')]['limit']);_0x44adaa[_0xf5f2('0x54')]=qs[_0xf5f2('0x54')](_0x29526c[_0xf5f2('0x4c')][_0xf5f2('0x54')]);}_0x44adaa[_0xf5f2('0x55')]=qs[_0xf5f2('0x56')](_0x29526c['query']['sort']);_0x44adaa['where']=qs[_0xf5f2('0x4d')](_[_0xf5f2('0x10c')](_0x29526c[_0xf5f2('0x4c')],_0x3c7058['filters']));_0x44adaa[_0xf5f2('0x57')]['ChatInteractionId']=_0x23675a['id'];if(_0x29526c[_0xf5f2('0x4c')][_0xf5f2('0x90')]){_0x44adaa[_0xf5f2('0x57')]=_[_0xf5f2('0x39')](_0x44adaa[_0xf5f2('0x57')],{'$or':_[_0xf5f2('0x3e')](_0x44adaa[_0xf5f2('0x4f')],function(_0xece862){var _0x3b4121={};_0x3b4121[_0xece862]={'$like':'%'+_0x29526c[_0xf5f2('0x4c')][_0xf5f2('0x90')]+'%'};return _0x3b4121;})});}if(_0x29526c[_0xf5f2('0x4c')][_0xf5f2('0x86')]){var _0x2fa70d=_0x29526c['query'][_0xf5f2('0x86')][_0xf5f2('0x42')](',');var _0x31f018={};_0x31f018[_0x2fa70d[0x0]]={'$gte':moment(_0x2fa70d[0x1])[_0xf5f2('0xea')]('YYYY-MM-DD\x20HH:mm:ss')};_0x44adaa[_0xf5f2('0x57')]=_[_0xf5f2('0x39')](_0x44adaa[_0xf5f2('0x57')],_0x31f018);}_0x44adaa=_[_0xf5f2('0x39')]({},_0x44adaa,_0x29526c['options']);return db[_0xf5f2('0xce')]['count']({'where':_0x44adaa[_0xf5f2('0x57')]})[_0xf5f2('0x22')](function(_0x20bb46){_0x3bcb44[_0xf5f2('0x31')]=_0x20bb46;if(_0x29526c['query'][_0xf5f2('0x10d')]){_0x44adaa[_0xf5f2('0xb9')]=[{'all':!![]}];}return db[_0xf5f2('0xce')][_0xf5f2('0x10e')](_0x44adaa);})[_0xf5f2('0x22')](function(_0x889f0e){_0x3bcb44['rows']=_0x889f0e;return _0x3bcb44;});}})[_0xf5f2('0x22')](respondWithFilteredResult(_0x2a52e3,_0x44adaa))[_0xf5f2('0x2c')](handleError(_0x2a52e3,null));};exports[_0xf5f2('0x10f')]=function(_0x3dcf4e,_0x4212d4,_0x2ebe4f){var _0x34fc35={'where':{}},_0x29c1ca={},_0x2cf93e={'count':0x0,'rows':[]};return db['ChatInteraction'][_0xf5f2('0xc0')]({'where':{'id':_0x3dcf4e[_0xf5f2('0xbd')]['id']}})[_0xf5f2('0x22')](handleEntityNotFound(_0x4212d4,null))[_0xf5f2('0x22')](function(_0x544db3){if(_0x544db3){_0x29c1ca['model']=_[_0xf5f2('0x4b')](db[_0xf5f2('0xce')][_0xf5f2('0x46')]);_0x29c1ca['query']=_['keys'](_0x3dcf4e[_0xf5f2('0x4c')]);_0x29c1ca[_0xf5f2('0x4d')]=_[_0xf5f2('0x4e')](_0x29c1ca[_0xf5f2('0x4a')],_0x29c1ca[_0xf5f2('0x4c')]);_0x34fc35[_0xf5f2('0x4f')]=_['intersection'](_0x29c1ca[_0xf5f2('0x4a')],qs[_0xf5f2('0x50')](_0x3dcf4e[_0xf5f2('0x4c')][_0xf5f2('0x50')]));_0x34fc35['attributes']=_0x34fc35['attributes'][_0xf5f2('0x51')]?_0x34fc35['attributes']:_0x29c1ca[_0xf5f2('0x4a')];if(!_0x3dcf4e[_0xf5f2('0x4c')][_0xf5f2('0x52')](_0xf5f2('0x53'))){_0x34fc35[_0xf5f2('0x2f')]=qs[_0xf5f2('0x2f')](_0x3dcf4e[_0xf5f2('0x4c')][_0xf5f2('0x2f')]);_0x34fc35[_0xf5f2('0x54')]=qs[_0xf5f2('0x54')](_0x3dcf4e[_0xf5f2('0x4c')][_0xf5f2('0x54')]);}_0x34fc35[_0xf5f2('0x55')]=qs[_0xf5f2('0x56')](_0x3dcf4e['query'][_0xf5f2('0x56')]);_0x34fc35[_0xf5f2('0x57')]=qs[_0xf5f2('0x4d')](_[_0xf5f2('0x10c')](_0x3dcf4e[_0xf5f2('0x4c')],_0x29c1ca['filters']));_0x34fc35[_0xf5f2('0x57')][_0xf5f2('0xb5')]=_0x544db3['id'];if(_0x3dcf4e['query'][_0xf5f2('0x90')]){_0x34fc35[_0xf5f2('0x57')]=_['merge'](_0x34fc35['where'],{'$or':_[_0xf5f2('0x3e')](_0x34fc35[_0xf5f2('0x4f')],function(_0x3e7f54){var _0x5e165c={};_0x5e165c[_0x3e7f54]={'$like':'%'+_0x3dcf4e['query'][_0xf5f2('0x90')]+'%'};return _0x5e165c;})});}_0x34fc35[_0xf5f2('0x57')][_0xf5f2('0xfb')]=![];if(_0x3dcf4e[_0xf5f2('0x4c')]['id']){_0x34fc35[_0xf5f2('0x57')]['id']={'$gt':_0x3dcf4e[_0xf5f2('0x4c')]['id']};}_0x34fc35=_[_0xf5f2('0x39')]({},_0x34fc35,_0x3dcf4e[_0xf5f2('0xba')]);return db[_0xf5f2('0xce')][_0xf5f2('0x31')]({'where':_0x34fc35['where']})[_0xf5f2('0x22')](function(_0x1c2842){_0x2cf93e['count']=_0x1c2842;_0x34fc35[_0xf5f2('0xb9')]=[];if(_0x3dcf4e[_0xf5f2('0x4c')][_0xf5f2('0x110')]){_0x34fc35[_0xf5f2('0xb9')][_0xf5f2('0x44')]({'model':db['User'],'as':'User','attributes':['id',_0xf5f2('0x3f'),_0xf5f2('0x111')]});}if(_0x3dcf4e[_0xf5f2('0x4c')][_0xf5f2('0x10d')]){_0x34fc35['include']=[{'all':!![]}];}return db[_0xf5f2('0xce')][_0xf5f2('0x10e')](_0x34fc35);})[_0xf5f2('0x22')](function(_0x3518f9){_0x2cf93e['rows']=_0x3518f9;return _0x2cf93e;});}})['then'](respondWithFilteredResult(_0x4212d4,_0x34fc35))['catch'](handleError(_0x4212d4,null));};exports['addTags']=function(_0x2e9d3b,_0x496802,_0x5be074){return db['ChatInteraction']['find']({'where':{'id':_0x2e9d3b[_0xf5f2('0xbd')]['id']}})['then'](handleEntityNotFound(_0x496802,null))['then'](function(_0x43150f){if(_0x43150f){return _0x43150f[_0xf5f2('0x112')](_0x2e9d3b[_0xf5f2('0x3a')][_0xf5f2('0x113')],_['omit'](_0x2e9d3b[_0xf5f2('0x3a')],[_0xf5f2('0x113'),'id'])||{})[_0xf5f2('0x114')](function(){return db[_0xf5f2('0x7d')][_0xf5f2('0x10e')]({'attributes':['id',_0xf5f2('0x38'),_0xf5f2('0x115')],'where':{'id':_0x2e9d3b['body'][_0xf5f2('0x113')]}});})[_0xf5f2('0x22')](function(_0x4f4af9){socket[_0xf5f2('0x116')](_0xf5f2('0x117'),{'id':Number(_0x2e9d3b[_0xf5f2('0xbd')]['id']),'tags':_0x4f4af9||[]});return{'id':Number(_0x2e9d3b[_0xf5f2('0xbd')]['id']),'tags':_0x4f4af9||[]};});}})[_0xf5f2('0x22')](respondWithResult(_0x496802,null))['catch'](handleError(_0x496802,null));};exports[_0xf5f2('0x118')]=function(_0x5f470f,_0x1f0a64,_0x2bbc23){return db[_0xf5f2('0xa2')][_0xf5f2('0x78')]({'where':{'id':_0x5f470f['params']['id']}})['then'](handleEntityNotFound(_0x1f0a64,null))[_0xf5f2('0x22')](function(_0x179901){if(_0x179901){return _0x179901[_0xf5f2('0x118')](_0x5f470f[_0xf5f2('0x4c')][_0xf5f2('0x113')]);}})[_0xf5f2('0x22')](respondWithStatusCode(_0x1f0a64,null))[_0xf5f2('0x2c')](handleError(_0x1f0a64,null));};exports[_0xf5f2('0xe8')]=function(_0x5d8c6a,_0x4f777b){var _0x26dc8c=moment()[_0xf5f2('0x119')]()['toString']();var _0xb8bcf3=path[_0xf5f2('0xe5')](config[_0xf5f2('0xe3')],_0xf5f2('0x11a'),_0xf5f2('0x11b'),_0xf5f2('0x11c'));var _0x2bc493=path[_0xf5f2('0xe5')](config[_0xf5f2('0xe3')],_0xf5f2('0x11a'),_0xf5f2('0x11b'),_0xf5f2('0x11d'));var _0x212d97=path[_0xf5f2('0xe5')](_0xb8bcf3,_0x26dc8c);var _0x8ee5fd=util[_0xf5f2('0xea')](_0xf5f2('0x11e'),_0x5d8c6a['params']['id'],_0x26dc8c);var _0x3712e3=path['join'](_0xb8bcf3,_0x8ee5fd);var _0x56a1c3=[];_0x56a1c3['push']({'model':db['User'],'as':_0xf5f2('0x7f'),'attributes':['id',_0xf5f2('0x3f')],'raw':!![]});_0x56a1c3[_0xf5f2('0x44')]({'model':db[_0xf5f2('0xd2')],'as':'Contact','attributes':['id',_0xf5f2('0x11f'),_0xf5f2('0x120')],'raw':!![]});if(_0x5d8c6a['query']['attachments']){_0x56a1c3['push']({'model':db[_0xf5f2('0xde')],'as':_0xf5f2('0xde'),'raw':!![]});}var _0x5a6da7=[{'model':db[_0xf5f2('0xce')],'as':_0xf5f2('0xee'),'attributes':['id',_0xf5f2('0x3a'),'createdAt',_0xf5f2('0x121'),_0xf5f2('0xfb'),_0xf5f2('0x8a')],'include':_0x56a1c3}];_0x5a6da7[_0xf5f2('0x44')]({'model':db[_0xf5f2('0xef')],'as':_0xf5f2('0x122'),'attributes':['id','name']});_0x5a6da7['push']({'model':db[_0xf5f2('0x7f')],'as':_0xf5f2('0x123'),'attributes':['id','fullname']});return db['ChatInteraction'][_0xf5f2('0x78')]({'where':{'id':_0x5d8c6a['params']['id']},'include':_0x5a6da7})[_0xf5f2('0x22')](handleEntityNotFound(_0x4f777b,null))[_0xf5f2('0x22')](function(_0x2ee55f){if(_0x2ee55f){var _0x43ca34=_0x2ee55f[_0xf5f2('0x124')]({'plain':!![]});fs[_0xf5f2('0x125')](_0x212d97);var _0x220300={'channel':_0xf5f2('0x126'),'account':_0x43ca34[_0xf5f2('0x122')][_0xf5f2('0x38')],'agent':_0x43ca34['Owner']?_0x43ca34[_0xf5f2('0x123')][_0xf5f2('0x3f')]:_0xf5f2('0x127'),'createdAt':moment(_0x43ca34[_0xf5f2('0x85')])['format'](_0xf5f2('0x128'))[_0xf5f2('0xb2')](),'closedAt':_0x43ca34['closed']?moment(_0x43ca34[_0xf5f2('0x129')])['format'](_0xf5f2('0x128'))[_0xf5f2('0xb2')]():'','disposition':_0x43ca34['disposition'],'chatInfo':{'browser':_0x43ca34[_0xf5f2('0x12a')],'os':_0x43ca34[_0xf5f2('0x12b')],'referer':_0x43ca34[_0xf5f2('0x12c')],'customerIp':_0x43ca34[_0xf5f2('0x12d')],'customerPort':_0x43ca34['customerPort']?_0x43ca34[_0xf5f2('0x12e')]:_0xf5f2('0x127')},'messages':_(_0x43ca34[_0xf5f2('0xee')])['tail']()[_0xf5f2('0x90')]({'secret':![]})[_0xf5f2('0x3e')](function(_0x5981bb){if(_0x5981bb[_0xf5f2('0xde')]){var _0x4586b5=path[_0xf5f2('0xe5')](_0x2bc493,_0x5981bb[_0xf5f2('0xde')][_0xf5f2('0xe7')]);if(fs[_0xf5f2('0x12f')](_0x4586b5)){fs[_0xf5f2('0x130')](_0x4586b5)[_0xf5f2('0x131')](fs[_0xf5f2('0x132')](path['join'](_0x212d97,_0x5981bb[_0xf5f2('0xde')][_0xf5f2('0xe7')])));}}return{'date':moment(_0x5981bb[_0xf5f2('0x85')])[_0xf5f2('0xea')](_0xf5f2('0x128'))[_0xf5f2('0xb2')](),'sender':_0x5981bb[_0xf5f2('0x121')]===_0xf5f2('0x133')?_0x5981bb[_0xf5f2('0x7f')]?_0x5981bb[_0xf5f2('0x7f')][_0xf5f2('0x3f')]:'System':_0x5981bb['Contact']['firstName']+(_0x5981bb[_0xf5f2('0x73')][_0xf5f2('0x120')]?'\x20'+_0x5981bb[_0xf5f2('0x73')]['lastName']:''),'body':_0x5981bb[_0xf5f2('0xde')]?_0x5981bb[_0xf5f2('0xde')][_0xf5f2('0xe7')]:_0x5981bb['body'],'direction':_0x5981bb[_0xf5f2('0x121')]===_0xf5f2('0x133')?'A':'C','secret':_0x5981bb[_0xf5f2('0xfb')],'read':_0x5981bb[_0xf5f2('0x8a')],'attachment':_0x5981bb[_0xf5f2('0xde')]};})[_0xf5f2('0x76')]()};return ejs[_0xf5f2('0x134')](path[_0xf5f2('0xe5')](config['root'],_0xf5f2('0x11a'),_0xf5f2('0x135'),_0xf5f2('0x136')),{'interaction':_0x220300})[_0xf5f2('0x22')](function(_0x510f56){var _0x319b39=path[_0xf5f2('0xe5')](_0x212d97,_0xf5f2('0x137')+_0x43ca34['id']+'-'+_0x26dc8c+'.pdf');var _0x346a95={'path':_0x319b39,'channel':_0xf5f2('0x126'),'interactionId':_0x43ca34['id']};return pdf[_0xf5f2('0x138')](_0x510f56,_0x346a95);})[_0xf5f2('0x22')](function(){return new BPromise(function(_0x249e9b,_0x56ab93){zipdir(_0x212d97,{'saveTo':_0x3712e3},function(_0x21fce7,_0x38a5e3){if(_0x21fce7)return _0x56ab93(_0x21fce7);return _0x249e9b(_0x38a5e3);});})[_0xf5f2('0x22')](function(){return new BPromise(function(_0x4d8a71,_0x1ca92b){rimraf(_0x212d97,function(_0x486c5e){if(_0x486c5e)_0x1ca92b(_0x486c5e);return _0x4d8a71();});});})[_0xf5f2('0x22')](function(){return _0x4f777b[_0xf5f2('0xe8')](_0x3712e3,_0x8ee5fd,function(_0x5089c1){if(_0x5089c1){console[_0xf5f2('0x139')](_0xf5f2('0x13a'),_0x5089c1);}else{fs[_0xf5f2('0x13b')](_0x3712e3);}});});});}else{return _0x4f777b['sendStatus'](0xc8);}})[_0xf5f2('0x2c')](handleError(_0x4f777b,null));};
\ No newline at end of file
+var _0x4fc2=['result','catch','sendStatus','end','status','json','offset','undefined','count','Content-Range','apply','reject','save','update','destroy','stack','name','send','render','merge','body','contact','agent','interaction','account','map','fullname','TagIds','Tags','split','forEach','push','ChatInteraction','rawAttributes','type','key','query','intersection','model','fields','attributes','length','hasOwnProperty','nolimit','limit','order','sort','where','filters','select','field','color','from','tools_tags','u.id','u.fullname','ui.ChatInteractionId','left_join','users','u.id\x20=\x20ui.UserId','chat_interactions','cm_contacts','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','o.id\x20=\x20i.UserId','chat_websites','a.id\x20=\x20i.ChatWebsiteId','me.ChatInteractionId\x20=\x20i.id','chat_interaction_has_tags','it.ChatInteractionId\x20=\x20i.id','search','parseSearch','sqlOperator','conditions','find','unreadMessages','`\x20=\x200','having','Contact','operator','$substring','value','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?','ContactId','buildExpression','text','start','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','keys','some','compact','isEmpty','i.ChatWebsiteId\x20IN\x20?','concat','createdAt','$gte','parse','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','\x20IS\x20NULL','\x20=\x20?','read','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','isArray','tag','filter','replace','isNumeric','i.id\x20LIKE\x20?','MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?','group','i.id','QueryTypes','SELECT','DESC','t.id\x20IN\x20?','ChatWebsiteId','i.ChatWebsiteId\x20IS\x20NOT\x20NULL','user','role','getChatWebsites','i.ChatWebsiteId\x20IS\x20NULL','sequelize','toString','keyBy','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','a.mandatoryDisposition','Account.mandatoryDisposition','CASE\x20WHEN\x20(c.firstName\x20IS\x20NOT\x20NULL\x20AND\x20c.firstName\x20<>\x20\x27\x27)\x20OR\x20(c.lastName\x20IS\x20NOT\x20NULL\x20AND\x20c.lastName\x20<>\x20\x27\x27)\x20THEN\x20CONCAT(IFNULL(c.firstName,\x20\x27\x27),\x20\x27\x20\x27,\x20IFNULL(c.lastName,\x20\x27\x27))\x20ELSE\x20\x27Unknown\x27\x20END','contactName','i.*','c.firstName','Contact.firstName','c.lastName','c.email','c.phone','Contact.phone','c.mobile','Contact.mobile','c.fax','Contact.fax','o.fullname','Owner.fullname','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.ChatInteractionId\x20IN\x20?','groupBy','ChatInteractionId','all','rows','params','includeAll','options','create','describe','createVidaooSession','findOne','vidaooApiKey','vidaooEscalation','vidaooTopic','vidaooNote','vidaooMetadata','email','POST','https://api-vidaoo.xcally.com/api/v1/meetings','isNull','metadata','Sequelize','Error\x20in\x20conversion\x20vidaooMetadata','ValidationError','Error\x20in\x20Vidaoo\x20configuration','join_url','ChatMessage','Unable\x20to\x20create\x20Vidaoo\x20session','updateAttributes','customUpdate','CmContact','abandonInteraction,\x20%s,\x20%s,\x20%s','abandon','entity\x20not\x20found','Interaction\x20already\x20assigned','closed','disposition','attachmentUpload','file','originalname','filename','mimetype','Attachment','Unauthorized','ChatOfflineMessageId','root','server/files/attachments/','join','offline-chat/','basename','download','mailTranscript','server/files/chat/upload/','format','transcript-%s.txt','pathTranscript','Messages','User','ChatWebsite','%s%d','agentAlias','System','customer','website_alias','alias','agent_fullname','MM/DD/YYYY\x20HH:mm:ss','secret','appendFileSync','MailAccount','MailServerOut','Smtp','service','host','port','secure','authentication','auth','SendMail','sendMail','\x22%s\x22\x20<%s>','Mail\x20Transcript','Hi\x20%s,\x20attached\x20you\x20can\x20find\x20your\x20transcript\x20file.\x20\x0a\x0aRegards.\x20\x0a\x0a','addMessage','ids','omit','pick','YYYY-MM-DD\x20HH:mm:ss','include','findAll','getMyMessages','includeAgent','addTags','setTags','spread','Tag','removeTags','unix','server','files','attachments','transcript-%d-%s.zip','firstName','lastName','direction','Account','Owner','mkdirSync','N.A.','closedAt','customerIp','customerPort','existsSync','createWriteStream','out','renderFile','downloadInteraction.ejs','transcript-','.pdf','Chat','log','err','unlinkSync','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','path','sox','ejs','fs-extra','squel','crypto','jsforce','desk.js','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../components/export/pdf','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','redis','defaults','localhost','socket.io-emitter','register','jayson/promise','client','http','request','then','info','request\x20sent','debug','ChatInteraction,\x20%s,\x20%s,\x20%s','stringify','error','code','ChatInteraction,\x20%s,\x20%s','message'];(function(_0x535cc4,_0x13c0a7){var _0x51d21c=function(_0x2bd20f){while(--_0x2bd20f){_0x535cc4['push'](_0x535cc4['shift']());}};_0x51d21c(++_0x13c0a7);}(_0x4fc2,0x111));var _0x24fc=function(_0x9d1d1f,_0x3d6e3f){_0x9d1d1f=_0x9d1d1f-0x0;var _0x19e276=_0x4fc2[_0x9d1d1f];return _0x19e276;};'use strict';var emlformat=require(_0x24fc('0x0'));var rimraf=require(_0x24fc('0x1'));var zipdir=require(_0x24fc('0x2'));var jsonpatch=require(_0x24fc('0x3'));var rp=require('request-promise');var moment=require(_0x24fc('0x4'));var BPromise=require(_0x24fc('0x5'));var Mustache=require(_0x24fc('0x6'));var util=require('util');var path=require(_0x24fc('0x7'));var sox=require(_0x24fc('0x8'));var csv=require('to-csv');var ejs=require(_0x24fc('0x9'));var fs=require('fs');var fs_extra=require(_0x24fc('0xa'));var _=require('lodash');var squel=require(_0x24fc('0xb'));var crypto=require(_0x24fc('0xc'));var jsforce=require(_0x24fc('0xd'));var deskjs=require(_0x24fc('0xe'));var toCsv=require(_0x24fc('0xf'));var querystring=require(_0x24fc('0x10'));var Papa=require('papaparse');var Redis=require(_0x24fc('0x11'));var authService=require(_0x24fc('0x12'));var qs=require(_0x24fc('0x13'));var as=require(_0x24fc('0x14'));var pdf=require(_0x24fc('0x15'));var hardwareService=require(_0x24fc('0x16'));var logger=require(_0x24fc('0x17'))(_0x24fc('0x18'));var utils=require('../../config/utils');var config=require(_0x24fc('0x19'));var licenseUtil=require(_0x24fc('0x1a'));var db=require('../../mysqldb')['db'];config[_0x24fc('0x1b')]=_[_0x24fc('0x1c')](config[_0x24fc('0x1b')],{'host':_0x24fc('0x1d'),'port':0x18eb});var socket=require(_0x24fc('0x1e'))(new Redis(config[_0x24fc('0x1b')]));require('./chatInteraction.socket')[_0x24fc('0x1f')](socket);var jayson=require(_0x24fc('0x20'));var client=jayson[_0x24fc('0x21')][_0x24fc('0x22')]({'port':0x232b});var client9004=jayson['client'][_0x24fc('0x22')]({'port':0x232c});function respondWithRpcPromise(_0x588543,_0x4af098,_0x3385c7,_0x218fb6){return new BPromise(function(_0x41c593,_0x25cb40){var _0x52a884=_0x218fb6||client;return _0x52a884[_0x24fc('0x23')](_0x588543,_0x3385c7)[_0x24fc('0x24')](function(_0x6cfa0a){logger[_0x24fc('0x25')]('ChatInteraction,\x20%s,\x20%s',_0x4af098,_0x24fc('0x26'));logger[_0x24fc('0x27')](_0x24fc('0x28'),_0x4af098,'request\x20sent',JSON[_0x24fc('0x29')](_0x6cfa0a));if(_0x6cfa0a[_0x24fc('0x2a')]){if(_0x6cfa0a[_0x24fc('0x2a')][_0x24fc('0x2b')]===0x1f4){logger['error'](_0x24fc('0x2c'),_0x4af098,_0x6cfa0a['error'][_0x24fc('0x2d')]);return _0x25cb40(_0x6cfa0a['error'][_0x24fc('0x2d')]);}logger[_0x24fc('0x2a')](_0x24fc('0x2c'),_0x4af098,_0x6cfa0a['error'][_0x24fc('0x2d')]);return _0x41c593(_0x6cfa0a['error'][_0x24fc('0x2d')]);}else{logger[_0x24fc('0x25')](_0x24fc('0x2c'),_0x4af098,_0x24fc('0x26'));_0x41c593(_0x6cfa0a[_0x24fc('0x2e')][_0x24fc('0x2d')]);}})[_0x24fc('0x2f')](function(_0x20192b){logger[_0x24fc('0x2a')](_0x24fc('0x2c'),_0x4af098,_0x20192b);_0x25cb40(_0x20192b);});});}function respondWithStatusCode(_0x568441,_0x11c913){_0x11c913=_0x11c913||0xcc;return function(_0x16f27f){if(_0x16f27f){return _0x568441[_0x24fc('0x30')](_0x11c913);}return _0x568441['status'](_0x11c913)[_0x24fc('0x31')]();};}function respondWithResult(_0x3d1ec8,_0x35f9f9){_0x35f9f9=_0x35f9f9||0xc8;return function(_0x290f84){if(_0x290f84){return _0x3d1ec8[_0x24fc('0x32')](_0x35f9f9)[_0x24fc('0x33')](_0x290f84);}};}function respondWithFilteredResult(_0x5ac1f2,_0x240ae7){return function(_0x29a461){if(_0x29a461){var _0x3c99ed=typeof _0x240ae7[_0x24fc('0x34')]===_0x24fc('0x35')&&typeof _0x240ae7['limit']==='undefined';var _0x4e6f73=_0x29a461[_0x24fc('0x36')];var _0x574ba3=_0x3c99ed?0x0:_0x240ae7[_0x24fc('0x34')];var _0x3e6389=_0x3c99ed?_0x29a461[_0x24fc('0x36')]:_0x240ae7[_0x24fc('0x34')]+_0x240ae7['limit'];var _0x66eec0;if(_0x3e6389>=_0x4e6f73){_0x3e6389=_0x4e6f73;_0x66eec0=0xc8;}else{_0x66eec0=0xce;}_0x5ac1f2[_0x24fc('0x32')](_0x66eec0);return _0x5ac1f2['set'](_0x24fc('0x37'),_0x574ba3+'-'+_0x3e6389+'/'+_0x4e6f73)[_0x24fc('0x33')](_0x29a461);}return null;};}function patchUpdates(_0x4d756f){return function(_0x48c62a){try{jsonpatch[_0x24fc('0x38')](_0x48c62a,_0x4d756f,!![]);}catch(_0x56eae7){return BPromise[_0x24fc('0x39')](_0x56eae7);}return _0x48c62a[_0x24fc('0x3a')]();};}function saveUpdates(_0x5491b0,_0x2ae896){return function(_0x33bbf2){if(_0x33bbf2){return _0x33bbf2[_0x24fc('0x3b')](_0x5491b0)[_0x24fc('0x24')](function(_0x1c5874){return _0x1c5874;});}return null;};}function removeEntity(_0x1e205d,_0x3b3932){return function(_0x2a209d){if(_0x2a209d){return _0x2a209d[_0x24fc('0x3c')]()['then'](function(){_0x1e205d[_0x24fc('0x32')](0xcc)[_0x24fc('0x31')]();});}};}function handleEntityNotFound(_0x2fbe30,_0x316aa2){return function(_0x242bd5){if(!_0x242bd5){_0x2fbe30['sendStatus'](0x194);}return _0x242bd5;};}function handleError(_0x56a9bd,_0xd52d10){_0xd52d10=_0xd52d10||0x1f4;return function(_0x5d48fe){logger[_0x24fc('0x2a')](_0x5d48fe[_0x24fc('0x3d')]);if(_0x5d48fe[_0x24fc('0x3e')]){delete _0x5d48fe[_0x24fc('0x3e')];}_0x56a9bd['status'](_0xd52d10)[_0x24fc('0x3f')](_0x5d48fe);};}function getMustacheRender(_0x4f4ec8,_0x65771d){return Mustache[_0x24fc('0x40')](_0x4f4ec8,_[_0x24fc('0x41')](_0x65771d[_0x24fc('0x42')],{'contact':_0x65771d[_0x24fc('0x43')],'message':_0x65771d['message'],'agent':_0x65771d[_0x24fc('0x44')],'interaction':_0x65771d[_0x24fc('0x45')],'account':_0x65771d[_0x24fc('0x46')]}))||'';}function getInteractionUsers(_0x22a75c,_0x5ceae2){return new BPromise(function(_0x172923,_0x2f0bd9){try{if(_0x5ceae2[_0x22a75c['id']]){_0x22a75c['Users']=_[_0x24fc('0x47')](_0x5ceae2[_0x22a75c['id']],function(_0x52df2e){return{'id':_0x52df2e['id'],'fullname':_0x52df2e[_0x24fc('0x48')]};});}}catch(_0x2fd30d){_0x2f0bd9(_0x2fd30d);}_0x172923(_0x22a75c);});}function getInteractionTags(_0x3a15ab,_0x1e045a){return new BPromise(function(_0x431189,_0x278b18){try{if(_0x3a15ab[_0x24fc('0x49')]){_0x3a15ab[_0x24fc('0x4a')]=[];_0x3a15ab['TagIds'][_0x24fc('0x4b')](',')[_0x24fc('0x4c')](function(_0x32f72c){_0x3a15ab['Tags'][_0x24fc('0x4d')](_0x1e045a[_0x32f72c]);});}delete _0x3a15ab[_0x24fc('0x49')];}catch(_0x4ae4a7){_0x278b18(_0x4ae4a7);}_0x431189(_0x3a15ab);});}function updateChatInteraction(_0x2c4a6c,_0x22f30b,_0x2c598c){return new BPromise(function(_0x5e4e9b,_0x31ddd0){return getInteractionUsers(_0x2c4a6c,_0x2c598c)[_0x24fc('0x24')](function(_0x585e48){return getInteractionTags(_0x585e48,_0x22f30b);})[_0x24fc('0x24')](function(_0x169982){_0x5e4e9b(_0x169982);})[_0x24fc('0x2f')](function(_0x2a0ac4){_0x31ddd0(_0x2a0ac4);});});}exports['index']=function(_0x2eecaf,_0x9bc56a){var _0x3ce7b3={},_0x7b38fa={},_0xbcbcfa={'count':0x0,'rows':[]};var _0x58a950=_[_0x24fc('0x47')](db[_0x24fc('0x4e')][_0x24fc('0x4f')],function(_0x3c6ffb){return{'name':_0x3c6ffb['fieldName'],'type':_0x3c6ffb[_0x24fc('0x50')][_0x24fc('0x51')]};});_0x7b38fa['model']=_['map'](_0x58a950,_0x24fc('0x3e'));_0x7b38fa['query']=_['keys'](_0x2eecaf[_0x24fc('0x52')]);_0x7b38fa['filters']=_[_0x24fc('0x53')](_0x7b38fa[_0x24fc('0x54')],_0x7b38fa[_0x24fc('0x52')]);_0x3ce7b3['attributes']=_[_0x24fc('0x53')](_0x7b38fa[_0x24fc('0x54')],qs[_0x24fc('0x55')](_0x2eecaf[_0x24fc('0x52')][_0x24fc('0x55')]));_0x3ce7b3[_0x24fc('0x56')]=_0x3ce7b3[_0x24fc('0x56')][_0x24fc('0x57')]?_0x3ce7b3['attributes']:_0x7b38fa['model'];if(!_0x2eecaf[_0x24fc('0x52')][_0x24fc('0x58')](_0x24fc('0x59'))){_0x3ce7b3['limit']=qs['limit'](_0x2eecaf[_0x24fc('0x52')][_0x24fc('0x5a')]);_0x3ce7b3[_0x24fc('0x34')]=qs[_0x24fc('0x34')](_0x2eecaf[_0x24fc('0x52')][_0x24fc('0x34')]);}_0x3ce7b3[_0x24fc('0x5b')]=qs[_0x24fc('0x5c')](_0x2eecaf[_0x24fc('0x52')][_0x24fc('0x5c')]);_0x3ce7b3[_0x24fc('0x5d')]=qs[_0x24fc('0x5e')](_['pick'](_0x2eecaf[_0x24fc('0x52')],_0x7b38fa[_0x24fc('0x5e')]),_0x58a950);var _0x32a466=[];var _0xb0fc00=squel[_0x24fc('0x5f')]()['field']('id')[_0x24fc('0x60')]('name')[_0x24fc('0x60')](_0x24fc('0x61'))[_0x24fc('0x62')](_0x24fc('0x63'));var _0x40f42b=squel[_0x24fc('0x5f')]()['field'](_0x24fc('0x64'))[_0x24fc('0x60')](_0x24fc('0x65'))[_0x24fc('0x60')](_0x24fc('0x66'))[_0x24fc('0x62')]('user_has_chat_interactions','ui')[_0x24fc('0x67')](_0x24fc('0x68'),'u',_0x24fc('0x69'));var _0x1b69ad=squel[_0x24fc('0x5f')]()[_0x24fc('0x62')](_0x24fc('0x6a'),'i')['left_join'](_0x24fc('0x6b'),'c',_0x24fc('0x6c'))['left_join'](_0x24fc('0x68'),'o',_0x24fc('0x6d'))[_0x24fc('0x67')](_0x24fc('0x6e'),'a',_0x24fc('0x6f'))[_0x24fc('0x67')]('chat_messages','me',_0x24fc('0x70'))['left_join'](_0x24fc('0x71'),'it',_0x24fc('0x72'))['left_join'](_0x24fc('0x63'),'t','t.id\x20=\x20it.TagId');var _0x1c1f74=squel['expr']();var _0xdff811=[];var _0x27b612=squel['expr']();var _0x2edef7;if(_0x2eecaf['query'][_0x24fc('0x73')]){_0x2edef7=as[_0x24fc('0x74')](_0x2eecaf['query'][_0x24fc('0x73')]);var _0x3ec1a8=_0x2edef7[_0x24fc('0x75')];for(var _0x47179d=0x0;_0x47179d<_0x2edef7[_0x24fc('0x76')]['length'];_0x47179d++){var _0x39da59=_0x2edef7[_0x24fc('0x76')][_0x47179d];var _0x2d657a='i';var _0x2b5dca=_[_0x24fc('0x77')](_0x58a950,['name',_0x39da59['field']]);if(!_0x2b5dca){switch(_0x39da59[_0x24fc('0x60')]){case _0x24fc('0x78'):if(_0x39da59['value']==0x1){_0x1b69ad['having']('`'+_0x39da59[_0x24fc('0x60')]+_0x24fc('0x79'));}else{_0x1b69ad[_0x24fc('0x7a')]('`'+_0x39da59[_0x24fc('0x60')]+'`\x20>\x200');}break;case _0x24fc('0x7b'):if(_0x39da59[_0x24fc('0x7c')]===_0x24fc('0x7d')){if(_0x39da59[_0x24fc('0x7e')][_0x24fc('0x4b')]('\x20')[_0x24fc('0x57')]>0x1){_0x1c1f74[_0x3ec1a8](_0x24fc('0x7f'),qs[_0x24fc('0x80')](_0x39da59[_0x24fc('0x7e')]),null);}else{var _0x1f6a71='%'+_0x39da59[_0x24fc('0x7e')]+'%';_0x1c1f74[_0x3ec1a8](_0x24fc('0x81'),_0x1f6a71,_0x1f6a71,_0x1f6a71);}}else{_0x2b5dca=_[_0x24fc('0x77')](_0x58a950,[_0x24fc('0x3e'),_0x24fc('0x82')]);_0x39da59['field']=_0x24fc('0x82');_0x10ef7c=as[_0x24fc('0x83')](_0x2d657a,_0x2b5dca[_0x24fc('0x50')],_0x39da59);_0x1c1f74[_0x3ec1a8](_0x10ef7c[_0x24fc('0x84')],_0x10ef7c[_0x24fc('0x7e')][_0x24fc('0x85')],_0x10ef7c[_0x24fc('0x7e')][_0x24fc('0x31')]);}break;case'Tag':var _0x3475b8=_0x39da59[_0x24fc('0x7e')][_0x24fc('0x4b')](',')[_0x24fc('0x47')](function(_0x55fceb){return Number(_0x55fceb);});_0x3475b8[_0x24fc('0x4c')](function(_0x29b381){_0x27b612['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x29b381+',%');});_0xdff811=_['union'](_0xdff811,_0x3475b8);break;case'User':if(_0x39da59[_0x24fc('0x7c')]===_0x24fc('0x7d')){_0x1c1f74[_0x3ec1a8](_0x24fc('0x86'),'%'+_0x39da59[_0x24fc('0x7e')]+'%',null);}else{_0x2b5dca=_[_0x24fc('0x77')](_0x58a950,[_0x24fc('0x3e'),'UserId']);_0x39da59[_0x24fc('0x60')]=_0x24fc('0x87');_0x10ef7c=as['buildExpression'](_0x2d657a,_0x2b5dca['type'],_0x39da59);_0x1c1f74[_0x3ec1a8](_0x10ef7c[_0x24fc('0x84')],_0x10ef7c[_0x24fc('0x7e')][_0x24fc('0x85')],_0x10ef7c['value'][_0x24fc('0x31')]);}break;case _0x24fc('0x42'):_0x10ef7c=as[_0x24fc('0x83')]('me',null,_0x39da59);_0x1c1f74[_0x3ec1a8](_0x10ef7c['text'],_0x10ef7c['value']['start'],_0x10ef7c['value']['end']);break;}}else{var _0x10ef7c=as[_0x24fc('0x83')](_0x2d657a,_0x2b5dca[_0x24fc('0x50')],_0x39da59);_0x1c1f74[_0x3ec1a8](_0x10ef7c[_0x24fc('0x84')],_0x10ef7c['value'][_0x24fc('0x85')],_0x10ef7c['value'][_0x24fc('0x31')]);}}}else{var _0x4e6eec=_(_0x2eecaf[_0x24fc('0x52')])[_0x24fc('0x88')]()[_0x24fc('0x47')](function(_0x4291bd){return _[_0x24fc('0x89')](_0x58a950,[_0x24fc('0x3e'),_0x4291bd])?_0x4291bd:undefined;})[_0x24fc('0x8a')]()['value']();if(!_[_0x24fc('0x8b')](_0x4e6eec)){_0x4e6eec[_0x24fc('0x4c')](function(_0x2de101){if(_0x2de101==='ChatWebsiteId'){_0x1b69ad['where'](_0x24fc('0x8c'),[][_0x24fc('0x8d')](_0x2eecaf['query'][_0x2de101]));}else if(_0x2de101===_0x24fc('0x8e')){var _0x1a2e6d=JSON['parse'](_0x2eecaf[_0x24fc('0x52')][_0x2de101])[_0x24fc('0x8f')];var _0x5249ea=JSON[_0x24fc('0x90')](_0x2eecaf[_0x24fc('0x52')][_0x2de101])[_0x24fc('0x91')];_0x1b69ad[_0x24fc('0x5d')](_0x24fc('0x92'),_0x1a2e6d,_0x5249ea);}else{if(_0x2eecaf[_0x24fc('0x52')][_0x2de101]==='null'){_0x1b69ad['where']('i.'+_0x2de101+_0x24fc('0x93'));}else{_0x1b69ad['where']('i.'+_0x2de101+_0x24fc('0x94'),_0x2eecaf['query'][_0x2de101]);}}});}if(_0x2eecaf['query'][_0x24fc('0x95')]){if(_0x2eecaf[_0x24fc('0x52')][_0x24fc('0x95')]==0x1){_0x1b69ad[_0x24fc('0x7a')](_0x24fc('0x96'));}else{_0x1b69ad[_0x24fc('0x7a')](_0x24fc('0x97'));}}if(_0x2eecaf[_0x24fc('0x52')]['tag']){_0xdff811=_[_0x24fc('0x98')](_0x2eecaf[_0x24fc('0x52')]['tag'])?_0x2eecaf['query'][_0x24fc('0x99')]:new Array(_0x2eecaf[_0x24fc('0x52')][_0x24fc('0x99')]);_0xdff811[_0x24fc('0x4c')](function(_0xd1e6){_0x27b612['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0xd1e6+',%');});}if(_0x2eecaf[_0x24fc('0x52')][_0x24fc('0x9a')]){var _0x5ca35b=_0x2eecaf[_0x24fc('0x52')][_0x24fc('0x9a')][_0x24fc('0x9b')]('\x5c','\x5c\x5c')['replace'](/'/g,'\x27\x27');if(qs[_0x24fc('0x9c')](_0x5ca35b)){_0x1c1f74['or'](_0x24fc('0x9d'),_0x5ca35b+'%');}else{_0x1c1f74['or'](_0x24fc('0x9e'),qs[_0x24fc('0x80')](_0x5ca35b))['or'](_0x24fc('0x9f'),_0x5ca35b+'%');}}}_0x1b69ad[_0x24fc('0x5d')](_0x1c1f74);_0x1b69ad[_0x24fc('0xa0')](_0x24fc('0xa1'));var _0x188edb={'type':db['Sequelize'][_0x24fc('0xa2')][_0x24fc('0xa3')],'raw':!![]};var _0x1dcccf=_0x1b69ad['clone']();_0x1dcccf['field']('i.id');_0x1dcccf[_0x24fc('0x60')]('SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)',_0x24fc('0x78'));if(_0x3ce7b3[_0x24fc('0x5b')]){_0x3ce7b3['order'][_0x24fc('0x4c')](function(_0x559692){var _0x41cef7=_0x559692[0x0]==='contactName'?_0x559692[0x0]:'i.'+_0x559692[0x0];_0x1b69ad[_0x24fc('0x5b')](_0x41cef7,_0x559692[0x1]===_0x24fc('0xa4')?![]:!![]);});}if(!_[_0x24fc('0x8b')](_0xdff811)){_0x1b69ad[_0x24fc('0x7a')](_0x27b612);_0x1dcccf[_0x24fc('0x5d')](_0x24fc('0xa5'),_0xdff811);}BPromise['resolve']()[_0x24fc('0x24')](function(){if(!_0x2edef7){if(_0x2eecaf[_0x24fc('0x52')][_0x24fc('0xa6')])return;_0x1dcccf[_0x24fc('0x5d')](_0x24fc('0xa7'));_0x1b69ad[_0x24fc('0x5d')](_0x24fc('0xa7'));return;}if(_0x2eecaf[_0x24fc('0xa8')][_0x24fc('0xa9')]!=='agent')return;return _0x2eecaf[_0x24fc('0xa8')][_0x24fc('0xaa')]({'attributes':['id'],'raw':!![]})[_0x24fc('0x24')](function(_0x30ed50){if(_['isEmpty'](_0x30ed50)){_0x1dcccf[_0x24fc('0x5d')](_0x24fc('0xab'));_0x1b69ad[_0x24fc('0x5d')]('i.ChatWebsiteId\x20IS\x20NULL');}else{_0x1dcccf[_0x24fc('0x5d')]('i.ChatWebsiteId\x20IN\x20?',_['map'](_0x30ed50,'id'));_0x1b69ad['where'](_0x24fc('0x8c'),_['map'](_0x30ed50,'id'));}});})[_0x24fc('0x24')](function(){if(_0x2eecaf[_0x24fc('0xa8')][_0x24fc('0xa9')]===_0x24fc('0x44')&&!_0x2edef7&&!_0x2eecaf['query'][_0x24fc('0xa6')])return[];return db[_0x24fc('0xac')][_0x24fc('0x52')](_0x1dcccf[_0x24fc('0xad')](),_0x188edb);})[_0x24fc('0x24')](function(_0x5c80a5){_0xbcbcfa[_0x24fc('0x36')]=_0x5c80a5[_0x24fc('0x57')];if(_0xbcbcfa[_0x24fc('0x36')]===0x0)return[];return db[_0x24fc('0xac')]['query'](_0xb0fc00['toString'](),_0x188edb)[_0x24fc('0x24')](function(_0x4216da){_0x32a466=_[_0x24fc('0xae')](_0x4216da,'id');_0x188edb=_[_0x24fc('0x41')](_0x188edb,{'model':db[_0x24fc('0x4e')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x2eecaf['query'][_0x24fc('0x55')]){_0x3ce7b3[_0x24fc('0x56')][_0x24fc('0x4c')](function(_0x5d5a59){_0x1b69ad[_0x24fc('0x60')]('i.'+_0x5d5a59);});}else{_0x1b69ad[_0x24fc('0x60')](_0x24fc('0xaf'),_0x24fc('0x78'));_0x1b69ad[_0x24fc('0x60')]('a.key','Account.key');_0x1b69ad['field'](_0x24fc('0xb0'),_0x24fc('0xb1'));_0x1b69ad[_0x24fc('0x60')](_0x24fc('0xb2'),_0x24fc('0xb3'));_0x1b69ad[_0x24fc('0x60')](_0x24fc('0xb4'));_0x1b69ad[_0x24fc('0x60')](_0x24fc('0xb5'),_0x24fc('0xb6'));_0x1b69ad[_0x24fc('0x60')](_0x24fc('0xb7'),'Contact.lastName');_0x1b69ad['field'](_0x24fc('0xb8'),'Contact.email');_0x1b69ad[_0x24fc('0x60')](_0x24fc('0xb9'),_0x24fc('0xba'));_0x1b69ad[_0x24fc('0x60')](_0x24fc('0xbb'),_0x24fc('0xbc'));_0x1b69ad[_0x24fc('0x60')](_0x24fc('0xbd'),_0x24fc('0xbe'));_0x1b69ad['field'](_0x24fc('0xbf'),_0x24fc('0xc0'));_0x1b69ad['field']('o.internal',_0x24fc('0xc1'));_0x1b69ad[_0x24fc('0x60')](_0x24fc('0xc2'),_0x24fc('0x49'));}if(_0x3ce7b3[_0x24fc('0x5a')])_0x1b69ad[_0x24fc('0x5a')](_0x3ce7b3['limit']);if(_0x3ce7b3[_0x24fc('0x34')])_0x1b69ad[_0x24fc('0x34')](_0x3ce7b3[_0x24fc('0x34')]);return db[_0x24fc('0xac')]['query'](_0x1b69ad[_0x24fc('0xad')](),_0x188edb);})[_0x24fc('0x24')](function(_0x1506e8){if(_0x1506e8['length']>0x0)_0x40f42b[_0x24fc('0x5d')](_0x24fc('0xc3'),_[_0x24fc('0x47')](_0x1506e8,'id'));return db['sequelize'][_0x24fc('0x52')](_0x40f42b[_0x24fc('0xad')](),_0x188edb)['then'](function(_0x543db4){var _0x283251=_[_0x24fc('0xc4')](_0x543db4,_0x24fc('0xc5'));var _0x2029cd=[];_0x1506e8[_0x24fc('0x4c')](function(_0x3afe80){_0x2029cd['push'](updateChatInteraction(_0x3afe80,_0x32a466,_0x283251));});return BPromise[_0x24fc('0xc6')](_0x2029cd);});});})[_0x24fc('0x24')](function(_0x17a6a9){_0xbcbcfa[_0x24fc('0xc7')]=_0x17a6a9;return _0xbcbcfa;})[_0x24fc('0x24')](respondWithFilteredResult(_0x9bc56a,_0x3ce7b3))[_0x24fc('0x2f')](handleError(_0x9bc56a,null));};exports['show']=function(_0x4018d3,_0x4a2522){var _0x5226aa={'raw':![],'where':{'id':_0x4018d3[_0x24fc('0xc8')]['id']}},_0x260a62={};_0x260a62['model']=_[_0x24fc('0x88')](db[_0x24fc('0x4e')][_0x24fc('0x4f')]);_0x260a62[_0x24fc('0x52')]=_['keys'](_0x4018d3[_0x24fc('0x52')]);_0x260a62[_0x24fc('0x5e')]=_[_0x24fc('0x53')](_0x260a62[_0x24fc('0x54')],_0x260a62[_0x24fc('0x52')]);_0x5226aa[_0x24fc('0x56')]=_['intersection'](_0x260a62['model'],qs['fields'](_0x4018d3[_0x24fc('0x52')][_0x24fc('0x55')]));_0x5226aa['attributes']=_0x5226aa[_0x24fc('0x56')][_0x24fc('0x57')]?_0x5226aa[_0x24fc('0x56')]:_0x260a62['model'];if(_0x4018d3[_0x24fc('0x52')][_0x24fc('0xc9')]){_0x5226aa['include']=[{'all':!![]}];}_0x5226aa=_['merge']({},_0x5226aa,_0x4018d3[_0x24fc('0xca')]);return db[_0x24fc('0x4e')][_0x24fc('0x77')](_0x5226aa)['then'](handleEntityNotFound(_0x4a2522,null))[_0x24fc('0x24')](respondWithResult(_0x4a2522,null))['catch'](handleError(_0x4a2522,null));};exports['create']=function(_0x344c0f,_0x52484a){return db['ChatInteraction'][_0x24fc('0xcb')](_0x344c0f['body'],{})[_0x24fc('0x24')](respondWithResult(_0x52484a,0xc9))[_0x24fc('0x2f')](handleError(_0x52484a,null));};exports[_0x24fc('0x3b')]=function(_0x11eaeb,_0x4ae346){if(_0x11eaeb[_0x24fc('0x42')]['id']){delete _0x11eaeb[_0x24fc('0x42')]['id'];}return db['ChatInteraction'][_0x24fc('0x77')]({'where':{'id':_0x11eaeb[_0x24fc('0xc8')]['id']}})[_0x24fc('0x24')](handleEntityNotFound(_0x4ae346,null))[_0x24fc('0x24')](saveUpdates(_0x11eaeb[_0x24fc('0x42')],null))['then'](respondWithResult(_0x4ae346,null))[_0x24fc('0x2f')](handleError(_0x4ae346,null));};exports[_0x24fc('0x3c')]=function(_0x5793d9,_0x759d35){return db[_0x24fc('0x4e')][_0x24fc('0x77')]({'where':{'id':_0x5793d9[_0x24fc('0xc8')]['id']}})[_0x24fc('0x24')](handleEntityNotFound(_0x759d35,null))['then'](removeEntity(_0x759d35,null))[_0x24fc('0x2f')](handleError(_0x759d35,null));};exports['describe']=function(_0x5c8969,_0x42c158){return db[_0x24fc('0x4e')][_0x24fc('0xcc')]()['then'](respondWithResult(_0x42c158,null))['catch'](handleError(_0x42c158,null));};exports[_0x24fc('0xcd')]=function(_0x38fba8,_0xfa9d58){var _0x353a64=_0x38fba8[_0x24fc('0xc8')]['id'];var _0x4ee1ad;var _0x4875bd;var _0x1efb25;return db['ChatInteraction']['findOne']({'where':{'id':_0x353a64}})[_0x24fc('0x24')](function(_0x484775){_0x4ee1ad=_0x484775;return db['ChatWebsite'][_0x24fc('0xce')]({'where':{'id':_0x484775[_0x24fc('0xa6')]},'attributes':['id',_0x24fc('0xcf'),_0x24fc('0xd0'),_0x24fc('0xd1'),_0x24fc('0xd2'),_0x24fc('0xd3')],'raw':!![]});})['then'](function(_0x3b2891){if(_0x3b2891&&_0x3b2891[_0x24fc('0xcf')]&&_0x3b2891[_0x24fc('0xd0')]){_0x4875bd=_0x3b2891;var _0x6e3447={'interaction':{'id':_0x353a64},'agent':{'id':_0x38fba8[_0x24fc('0xa8')]['id'],'name':_0x38fba8[_0x24fc('0xa8')][_0x24fc('0x3e')],'fullname':_0x38fba8[_0x24fc('0xa8')][_0x24fc('0x48')],'email':_0x38fba8[_0x24fc('0xa8')][_0x24fc('0xd4')]},'contact':_0x38fba8[_0x24fc('0x42')][_0x24fc('0x43')],'account':_0x38fba8[_0x24fc('0x42')][_0x24fc('0x46')]};var _0x38ec08={'rejectUnauthorized':![],'method':_0x24fc('0xd5'),'url':_0x24fc('0xd6'),'headers':{'X-APIKEY':_0x3b2891[_0x24fc('0xcf')]},'body':{'duration':null,'scheduledAt':null,'participants':[_0x38fba8[_0x24fc('0xa8')][_0x24fc('0xd4')]],'buttons':null,'topic':_0x4875bd[_0x24fc('0xd1')],'note':_[_0x24fc('0xd7')](_0x4875bd[_0x24fc('0xd2')])?null:getMustacheRender(_0x4875bd[_0x24fc('0xd2')],_0x6e3447),'metadata':null},'redirect':'follow','json':!![]};try{if(!_[_0x24fc('0xd7')](_0x4875bd[_0x24fc('0xd3')])){var _0x1d8a8f=getMustacheRender(_0x4875bd[_0x24fc('0xd3')],_0x6e3447);var _0x534388=JSON['parse'](_0x1d8a8f);_0x38ec08['body'][_0x24fc('0xd8')]=_0x534388;}}catch(_0x5aa947){throw new db[(_0x24fc('0xd9'))]['ValidationError'](_0x24fc('0xda'));}return rp(_0x38ec08);}else{throw new db[(_0x24fc('0xd9'))][(_0x24fc('0xdb'))](_0x24fc('0xdc'));}})[_0x24fc('0x24')](function(_0x468477){_0x1efb25=_0x468477;if(_0x1efb25['id']){var _0x1c4ac1={'body':_0x1efb25[_0x24fc('0xdd')],'ChatWebsiteId':_0x4875bd['id'],'ChatInteractionId':_0x4ee1ad['id'],'direction':'out','UserId':_0x38fba8[_0x24fc('0xa8')]['id']};return db[_0x24fc('0xde')][_0x24fc('0xcb')](_0x1c4ac1,{});}else{throw new db[(_0x24fc('0xd9'))]['ValidationError'](_0x24fc('0xdf'));}})[_0x24fc('0x24')](function(){return _0x4ee1ad[_0x24fc('0xe0')]({'vidaooSessionId':_0x1efb25['id']});})[_0x24fc('0x24')](respondWithResult(_0xfa9d58,null))[_0x24fc('0x2f')](handleError(_0xfa9d58,null));};exports[_0x24fc('0xe1')]=function(_0x17280c,_0x13f9e3){if(_0x17280c[_0x24fc('0x42')]['id']){delete _0x17280c[_0x24fc('0x42')]['id'];}return db[_0x24fc('0x4e')][_0x24fc('0x77')]({'where':{'id':_0x17280c['params']['id']},'include':[{'model':db[_0x24fc('0xe2')],'as':_0x24fc('0x7b')}]})[_0x24fc('0x24')](handleEntityNotFound(_0x13f9e3,null))[_0x24fc('0x24')](saveUpdates(_0x17280c[_0x24fc('0x42')],null))[_0x24fc('0x24')](respondWithResult(_0x13f9e3,null))[_0x24fc('0x2f')](handleError(_0x13f9e3,null));};exports['abandon']=function(_0x2400a3,_0x16368d,_0x5b1fe2){if(_0x2400a3[_0x24fc('0x42')]['id']){delete _0x2400a3[_0x24fc('0x42')]['id'];}return db['ChatInteraction'][_0x24fc('0x77')]({'where':{'id':_0x2400a3['params']['id']}})[_0x24fc('0x24')](function(_0x21d6d3){if(!_0x21d6d3){logger['error'](_0x24fc('0xe3'),_0x24fc('0xe4'),0x194,_0x24fc('0xe5'));_0x16368d[_0x24fc('0x30')](0x194);}else{if(_0x21d6d3[_0x24fc('0x87')]){throw new db[(_0x24fc('0xd9'))][(_0x24fc('0xdb'))](_0x24fc('0xe6'));}}return _0x21d6d3;})[_0x24fc('0x24')](function(_0x2c6ac9){if(_0x2c6ac9){return _0x2c6ac9[_0x24fc('0x3b')]({'closed':_0x2400a3[_0x24fc('0x42')][_0x24fc('0xe7')],'disposition':_0x2400a3[_0x24fc('0x42')][_0x24fc('0xe8')]})[_0x24fc('0x24')](function(_0x2ccd34){return _0x2ccd34;});}})['then'](function(_0x51764e){return respondWithRpcPromise('AbandonInteraction',_0x24fc('0xe4'),_0x2400a3['body'],client9004);})[_0x24fc('0x24')](respondWithResult(_0x16368d,null))[_0x24fc('0x2f')](handleError(_0x16368d,null));};exports[_0x24fc('0xe9')]=function(_0x2d7ecb,_0xf4f427,_0x41fbf1){_0x2d7ecb[_0x24fc('0x42')][_0x24fc('0x3e')]=_0x2d7ecb[_0x24fc('0xea')][_0x24fc('0xeb')];_0x2d7ecb[_0x24fc('0x42')]['basename']=_0x2d7ecb['file'][_0x24fc('0xec')];_0x2d7ecb[_0x24fc('0x42')][_0x24fc('0x50')]=_0x2d7ecb['file'][_0x24fc('0xed')];return db[_0x24fc('0xee')][_0x24fc('0xcb')](_0x2d7ecb[_0x24fc('0x42')])[_0x24fc('0x24')](respondWithResult(_0xf4f427,0xc9))[_0x24fc('0x2f')](handleError(_0xf4f427,null));};exports['attachmentDownload']=function(_0x3c41c1,_0x337fad,_0x525d4f){return db[_0x24fc('0x4e')]['findOne']({'where':{'id':_0x3c41c1['params']['id']},'raw':!![]})[_0x24fc('0x24')](handleEntityNotFound(_0x337fad,null))[_0x24fc('0x24')](function(_0x282848){if(_0x282848){if(_0x282848[_0x24fc('0xe7')]){return _0x337fad['status'](0x193)[_0x24fc('0x33')]({'status':0x193,'message':_0x24fc('0xef')});}return db[_0x24fc('0xee')][_0x24fc('0xce')]({'where':{'id':_0x3c41c1[_0x24fc('0x52')]['attachId']},'raw':!![]})['then'](handleEntityNotFound(_0x337fad,null));}})[_0x24fc('0x24')](function(_0x2cbaa1){if(_0x2cbaa1){var _0xaab85=_0x2cbaa1[_0x24fc('0xf0')]!==null;var _0x42d3ae=path['join'](config[_0x24fc('0xf1')],_0x24fc('0xf2'));if(_0xaab85){_0x42d3ae=path[_0x24fc('0xf3')](_0x42d3ae,_0x24fc('0xf4'));}var _0xc73868=path[_0x24fc('0xf3')](_0x42d3ae,_0x2cbaa1[_0x24fc('0xf5')]);return _0x337fad[_0x24fc('0xf6')](_0xc73868);}})[_0x24fc('0x2f')](handleError(_0x337fad,null));};exports['close']=function(_0x3f0da7,_0x36f9d2){var _0x50a4c5=null;var _0x299fd8=null;var _0x5d01fa=null;var _0x92d51d=null;if(_0x3f0da7[_0x24fc('0x42')]['id']){delete _0x3f0da7['body']['id'];}if(_0x3f0da7['body'][_0x24fc('0xf7')]){_0x92d51d=path['join'](config[_0x24fc('0xf1')],_0x24fc('0xf8'),util[_0x24fc('0xf9')](_0x24fc('0xfa'),Date['now']()));_0x3f0da7[_0x24fc('0x42')][_0x24fc('0xfb')]=_0x92d51d;}return db[_0x24fc('0x4e')][_0x24fc('0x77')]({'where':{'id':_0x3f0da7[_0x24fc('0xc8')]['id']},'include':[{'model':db[_0x24fc('0xde')],'as':_0x24fc('0xfc'),'include':[{'model':db[_0x24fc('0xfd')],'as':_0x24fc('0xfd')}]}]})[_0x24fc('0x24')](handleEntityNotFound(_0x36f9d2,null))[_0x24fc('0x24')](saveUpdates(_0x3f0da7[_0x24fc('0x42')],null))[_0x24fc('0x24')](function(_0x210bc5){if(_0x210bc5){_0x50a4c5=_0x210bc5;return db[_0x24fc('0xfe')][_0x24fc('0x77')]({'where':{'id':_0x50a4c5[_0x24fc('0xa6')]}});}})[_0x24fc('0x24')](function(_0x4dbbf1){if(_0x4dbbf1){_0x5d01fa=_0x4dbbf1;return db[_0x24fc('0xe2')][_0x24fc('0x77')]({'where':{'id':_0x50a4c5[_0x24fc('0x82')]}});}})[_0x24fc('0x24')](function(_0x61a50b){if(_0x61a50b){_0x299fd8=_0x61a50b;if(_0x92d51d){var _0x282e8c=null;for(var _0x47637c=0x1;_0x47637c<_0x50a4c5[_0x24fc('0xfc')]['length'];++_0x47637c){_0x282e8c=_0x50a4c5[_0x24fc('0xfc')][_0x47637c];var _0x36788c=_0x282e8c[_0x24fc('0x87')]?util['format'](_0x24fc('0xff'),_0x5d01fa[_0x24fc('0x100')],_0x282e8c[_0x24fc('0x87')]):_0x24fc('0x101');var _0x1bbfe1=_0x3f0da7[_0x24fc('0x42')][_0x24fc('0x102')]||util[_0x24fc('0xf9')]('%s%d','Visitor',_0x282e8c[_0x24fc('0x82')]);switch(_0x5d01fa['agentIdentifier']){case _0x24fc('0x103'):_0x36788c=_0x282e8c[_0x24fc('0x87')]?util[_0x24fc('0xf9')](_0x24fc('0xff'),_0x5d01fa[_0x24fc('0x100')],_0x282e8c[_0x24fc('0x87')]):_0x24fc('0x101');break;case'agent_alias':_0x36788c=_0x282e8c[_0x24fc('0x87')]?_0x282e8c[_0x24fc('0xfd')][_0x24fc('0x104')]||_0x282e8c['User'][_0x24fc('0x48')]:_0x24fc('0x101');break;case _0x24fc('0x105'):_0x36788c=_0x282e8c['UserId']?_0x282e8c[_0x24fc('0xfd')][_0x24fc('0x48')]:_0x24fc('0x101');break;default:_0x36788c=_0x282e8c[_0x24fc('0x87')]?util[_0x24fc('0xf9')](_0x24fc('0xff'),_0x5d01fa[_0x24fc('0x100')],_0x282e8c[_0x24fc('0x87')]):_0x24fc('0x101');}var _0x3f1c36=util['format']('[%s]\x20%s:\x20%s\x0a',moment(_0x282e8c[_0x24fc('0x8e')])[_0x24fc('0xf9')](_0x24fc('0x106')),_0x282e8c['direction']==='in'?_0x1bbfe1:_0x36788c,_0x282e8c[_0x24fc('0x42')]);if(!_0x282e8c[_0x24fc('0x107')]){fs[_0x24fc('0x108')](_0x92d51d,_0x3f1c36);}}return db[_0x24fc('0x109')][_0x24fc('0xce')]({'where':{'service':!![]},'include':[{'model':db[_0x24fc('0x10a')],'as':_0x24fc('0x10b'),'raw':!![]}]});}}})[_0x24fc('0x24')](function(_0x18ab28){if(_0x18ab28&&_0x18ab28[_0x24fc('0x10b')]&&_0x3f0da7[_0x24fc('0x42')]){var _0x14b0b5={'tls':{'rejectUnauthorized':![]}};if(_0x18ab28[_0x24fc('0x10b')][_0x24fc('0x10c')]){_0x14b0b5[_0x24fc('0x10c')]=_0x18ab28['Smtp'][_0x24fc('0x10c')];}else{_0x14b0b5[_0x24fc('0x10d')]=_0x18ab28[_0x24fc('0x10b')]['host'];_0x14b0b5[_0x24fc('0x10e')]=_0x18ab28[_0x24fc('0x10b')][_0x24fc('0x10e')];_0x14b0b5[_0x24fc('0x10f')]=_0x18ab28[_0x24fc('0x10b')][_0x24fc('0x10f')];}if(_0x18ab28[_0x24fc('0x10b')][_0x24fc('0x110')]){_0x14b0b5[_0x24fc('0x111')]={'user':_0x18ab28[_0x24fc('0x10b')][_0x24fc('0xa8')],'pass':_0x18ab28[_0x24fc('0x10b')]['pass']};}return respondWithRpcPromise(_0x24fc('0x112'),_0x24fc('0x113'),{'account':_0x14b0b5,'message':{'from':util[_0x24fc('0xf9')](_0x24fc('0x114'),_0x18ab28[_0x24fc('0x3e')],_0x18ab28[_0x24fc('0xd4')]||_0x18ab28['Smtp'][_0x24fc('0xa8')]),'to':_0x3f0da7[_0x24fc('0x42')][_0x24fc('0xf7')],'subject':_0x24fc('0x115'),'text':util[_0x24fc('0xf9')](_0x24fc('0x116'),_0x3f0da7[_0x24fc('0x42')][_0x24fc('0xf7')]),'attachments':[{'path':_0x92d51d}]}})[_0x24fc('0x24')](function(){return _0x50a4c5;})[_0x24fc('0x2f')](function(_0x51ecc4){console['error'](_0x51ecc4);});}else{return _0x50a4c5;}})['then'](respondWithStatusCode(_0x36f9d2,0xc8))[_0x24fc('0x2f')](handleError(_0x36f9d2,null));};exports[_0x24fc('0x117')]=function(_0x21d021,_0x15035b,_0xe5f00){return db[_0x24fc('0xde')][_0x24fc('0x77')]({'where':{'id':_0x21d021[_0x24fc('0xc8')]['id']}})['then'](handleEntityNotFound(_0x15035b,null))[_0x24fc('0x24')](function(_0x263597){if(_0x263597){return _0x263597['addMessage'](_0x21d021[_0x24fc('0x42')][_0x24fc('0x118')],_[_0x24fc('0x119')](_0x21d021[_0x24fc('0x42')],[_0x24fc('0x118'),'id'])||{});}})[_0x24fc('0x24')](respondWithResult(_0x15035b,null))[_0x24fc('0x2f')](handleError(_0x15035b,null));};exports['getMessages']=function(_0xda0576,_0x1a136f,_0x47833f){var _0x59d561={'raw':![],'where':{}};var _0x4614fe={};var _0x7a2cca={'count':0x0,'rows':[]};return db[_0x24fc('0x4e')][_0x24fc('0xce')]({'where':{'id':_0xda0576[_0x24fc('0xc8')]['id']}})[_0x24fc('0x24')](handleEntityNotFound(_0x1a136f,null))['then'](function(_0x14bd08){if(_0x14bd08){_0x4614fe[_0x24fc('0x54')]=_['keys'](db[_0x24fc('0xde')][_0x24fc('0x4f')]);_0x4614fe[_0x24fc('0x52')]=_[_0x24fc('0x88')](_0xda0576[_0x24fc('0x52')]);_0x4614fe[_0x24fc('0x5e')]=_[_0x24fc('0x53')](_0x4614fe[_0x24fc('0x54')],_0x4614fe[_0x24fc('0x52')]);_0x59d561[_0x24fc('0x56')]=_['intersection'](_0x4614fe['model'],qs[_0x24fc('0x55')](_0xda0576[_0x24fc('0x52')]['fields']));_0x59d561[_0x24fc('0x56')]=_0x59d561[_0x24fc('0x56')][_0x24fc('0x57')]?_0x59d561['attributes']:_0x4614fe[_0x24fc('0x54')];if(!_0xda0576[_0x24fc('0x52')][_0x24fc('0x58')](_0x24fc('0x59'))){_0x59d561['limit']=qs[_0x24fc('0x5a')](_0xda0576['query'][_0x24fc('0x5a')]);_0x59d561['offset']=qs[_0x24fc('0x34')](_0xda0576[_0x24fc('0x52')]['offset']);}_0x59d561[_0x24fc('0x5b')]=qs[_0x24fc('0x5c')](_0xda0576[_0x24fc('0x52')]['sort']);_0x59d561[_0x24fc('0x5d')]=qs[_0x24fc('0x5e')](_[_0x24fc('0x11a')](_0xda0576['query'],_0x4614fe[_0x24fc('0x5e')]));_0x59d561[_0x24fc('0x5d')][_0x24fc('0xc5')]=_0x14bd08['id'];if(_0xda0576['query'][_0x24fc('0x9a')]){_0x59d561[_0x24fc('0x5d')]=_[_0x24fc('0x41')](_0x59d561[_0x24fc('0x5d')],{'$or':_[_0x24fc('0x47')](_0x59d561[_0x24fc('0x56')],function(_0x6fa372){var _0x1e5616={};_0x1e5616[_0x6fa372]={'$like':'%'+_0xda0576[_0x24fc('0x52')]['filter']+'%'};return _0x1e5616;})});}if(_0xda0576['query'][_0x24fc('0x8f')]){var _0x59cd3c=_0xda0576[_0x24fc('0x52')]['$gte']['split'](',');var _0x235cd7={};_0x235cd7[_0x59cd3c[0x0]]={'$gte':moment(_0x59cd3c[0x1])['format'](_0x24fc('0x11b'))};_0x59d561[_0x24fc('0x5d')]=_[_0x24fc('0x41')](_0x59d561['where'],_0x235cd7);}_0x59d561=_[_0x24fc('0x41')]({},_0x59d561,_0xda0576[_0x24fc('0xca')]);return db[_0x24fc('0xde')][_0x24fc('0x36')]({'where':_0x59d561[_0x24fc('0x5d')]})[_0x24fc('0x24')](function(_0x3e6fda){_0x7a2cca[_0x24fc('0x36')]=_0x3e6fda;if(_0xda0576[_0x24fc('0x52')][_0x24fc('0xc9')]){_0x59d561[_0x24fc('0x11c')]=[{'all':!![]}];}return db[_0x24fc('0xde')][_0x24fc('0x11d')](_0x59d561);})[_0x24fc('0x24')](function(_0x4f5acf){_0x7a2cca[_0x24fc('0xc7')]=_0x4f5acf;return _0x7a2cca;});}})[_0x24fc('0x24')](respondWithFilteredResult(_0x1a136f,_0x59d561))[_0x24fc('0x2f')](handleError(_0x1a136f,null));};exports[_0x24fc('0x11e')]=function(_0x4ba8de,_0x53e48e,_0x50012d){var _0x1449f2={'where':{}},_0x43492b={},_0x487e55={'count':0x0,'rows':[]};return db[_0x24fc('0x4e')][_0x24fc('0xce')]({'where':{'id':_0x4ba8de['params']['id']}})['then'](handleEntityNotFound(_0x53e48e,null))[_0x24fc('0x24')](function(_0x5a41d8){if(_0x5a41d8){_0x43492b['model']=_['keys'](db[_0x24fc('0xde')][_0x24fc('0x4f')]);_0x43492b[_0x24fc('0x52')]=_[_0x24fc('0x88')](_0x4ba8de[_0x24fc('0x52')]);_0x43492b[_0x24fc('0x5e')]=_[_0x24fc('0x53')](_0x43492b[_0x24fc('0x54')],_0x43492b['query']);_0x1449f2[_0x24fc('0x56')]=_[_0x24fc('0x53')](_0x43492b[_0x24fc('0x54')],qs[_0x24fc('0x55')](_0x4ba8de[_0x24fc('0x52')][_0x24fc('0x55')]));_0x1449f2[_0x24fc('0x56')]=_0x1449f2[_0x24fc('0x56')][_0x24fc('0x57')]?_0x1449f2[_0x24fc('0x56')]:_0x43492b[_0x24fc('0x54')];if(!_0x4ba8de[_0x24fc('0x52')]['hasOwnProperty'](_0x24fc('0x59'))){_0x1449f2[_0x24fc('0x5a')]=qs[_0x24fc('0x5a')](_0x4ba8de[_0x24fc('0x52')]['limit']);_0x1449f2[_0x24fc('0x34')]=qs[_0x24fc('0x34')](_0x4ba8de[_0x24fc('0x52')][_0x24fc('0x34')]);}_0x1449f2['order']=qs['sort'](_0x4ba8de[_0x24fc('0x52')][_0x24fc('0x5c')]);_0x1449f2[_0x24fc('0x5d')]=qs[_0x24fc('0x5e')](_['pick'](_0x4ba8de[_0x24fc('0x52')],_0x43492b['filters']));_0x1449f2[_0x24fc('0x5d')][_0x24fc('0xc5')]=_0x5a41d8['id'];if(_0x4ba8de[_0x24fc('0x52')]['filter']){_0x1449f2[_0x24fc('0x5d')]=_[_0x24fc('0x41')](_0x1449f2[_0x24fc('0x5d')],{'$or':_[_0x24fc('0x47')](_0x1449f2['attributes'],function(_0x4ae822){var _0x545714={};_0x545714[_0x4ae822]={'$like':'%'+_0x4ba8de[_0x24fc('0x52')][_0x24fc('0x9a')]+'%'};return _0x545714;})});}_0x1449f2[_0x24fc('0x5d')]['secret']=![];if(_0x4ba8de[_0x24fc('0x52')]['id']){_0x1449f2[_0x24fc('0x5d')]['id']={'$gt':_0x4ba8de['query']['id']};}_0x1449f2=_[_0x24fc('0x41')]({},_0x1449f2,_0x4ba8de[_0x24fc('0xca')]);return db[_0x24fc('0xde')][_0x24fc('0x36')]({'where':_0x1449f2['where']})['then'](function(_0x12921f){_0x487e55[_0x24fc('0x36')]=_0x12921f;_0x1449f2['include']=[];if(_0x4ba8de[_0x24fc('0x52')][_0x24fc('0x11f')]){_0x1449f2[_0x24fc('0x11c')]['push']({'model':db[_0x24fc('0xfd')],'as':_0x24fc('0xfd'),'attributes':['id','fullname','alias']});}if(_0x4ba8de[_0x24fc('0x52')][_0x24fc('0xc9')]){_0x1449f2[_0x24fc('0x11c')]=[{'all':!![]}];}return db[_0x24fc('0xde')][_0x24fc('0x11d')](_0x1449f2);})[_0x24fc('0x24')](function(_0x214f7d){_0x487e55[_0x24fc('0xc7')]=_0x214f7d;return _0x487e55;});}})[_0x24fc('0x24')](respondWithFilteredResult(_0x53e48e,_0x1449f2))[_0x24fc('0x2f')](handleError(_0x53e48e,null));};exports[_0x24fc('0x120')]=function(_0x1a7f96,_0x59d246,_0x281eed){return db[_0x24fc('0x4e')]['find']({'where':{'id':_0x1a7f96[_0x24fc('0xc8')]['id']}})[_0x24fc('0x24')](handleEntityNotFound(_0x59d246,null))['then'](function(_0x4e2c71){if(_0x4e2c71){return _0x4e2c71[_0x24fc('0x121')](_0x1a7f96['body'][_0x24fc('0x118')],_['omit'](_0x1a7f96[_0x24fc('0x42')],['ids','id'])||{})[_0x24fc('0x122')](function(){return db[_0x24fc('0x123')][_0x24fc('0x11d')]({'attributes':['id',_0x24fc('0x3e'),_0x24fc('0x61')],'where':{'id':_0x1a7f96[_0x24fc('0x42')][_0x24fc('0x118')]}});})[_0x24fc('0x24')](function(_0x3c5996){socket['emit']('chatInteractionTags:save',{'id':Number(_0x1a7f96['params']['id']),'tags':_0x3c5996||[]});return{'id':Number(_0x1a7f96[_0x24fc('0xc8')]['id']),'tags':_0x3c5996||[]};});}})[_0x24fc('0x24')](respondWithResult(_0x59d246,null))[_0x24fc('0x2f')](handleError(_0x59d246,null));};exports['removeTags']=function(_0x8dc31b,_0x5941bd,_0x4d73bb){return db[_0x24fc('0x4e')][_0x24fc('0x77')]({'where':{'id':_0x8dc31b[_0x24fc('0xc8')]['id']}})['then'](handleEntityNotFound(_0x5941bd,null))[_0x24fc('0x24')](function(_0x464057){if(_0x464057){return _0x464057[_0x24fc('0x124')](_0x8dc31b[_0x24fc('0x52')][_0x24fc('0x118')]);}})[_0x24fc('0x24')](respondWithStatusCode(_0x5941bd,null))['catch'](handleError(_0x5941bd,null));};exports[_0x24fc('0xf6')]=function(_0x9c34d9,_0x3e4f49){var _0x231f0b=moment()[_0x24fc('0x125')]()['toString']();var _0x34355e=path[_0x24fc('0xf3')](config[_0x24fc('0xf1')],_0x24fc('0x126'),_0x24fc('0x127'),'tmp');var _0x4d0910=path[_0x24fc('0xf3')](config[_0x24fc('0xf1')],'server','files',_0x24fc('0x128'));var _0x49025e=path[_0x24fc('0xf3')](_0x34355e,_0x231f0b);var _0x2c9a19=util['format'](_0x24fc('0x129'),_0x9c34d9['params']['id'],_0x231f0b);var _0x38ca24=path['join'](_0x34355e,_0x2c9a19);var _0x53a9aa=[];_0x53a9aa['push']({'model':db['User'],'as':_0x24fc('0xfd'),'attributes':['id',_0x24fc('0x48')],'raw':!![]});_0x53a9aa['push']({'model':db[_0x24fc('0xe2')],'as':_0x24fc('0x7b'),'attributes':['id',_0x24fc('0x12a'),_0x24fc('0x12b')],'raw':!![]});if(_0x9c34d9[_0x24fc('0x52')]['attachments']){_0x53a9aa[_0x24fc('0x4d')]({'model':db[_0x24fc('0xee')],'as':_0x24fc('0xee'),'raw':!![]});}var _0x2139e8=[{'model':db[_0x24fc('0xde')],'as':_0x24fc('0xfc'),'attributes':['id',_0x24fc('0x42'),'createdAt',_0x24fc('0x12c'),_0x24fc('0x107'),_0x24fc('0x95')],'include':_0x53a9aa}];_0x2139e8[_0x24fc('0x4d')]({'model':db['ChatWebsite'],'as':_0x24fc('0x12d'),'attributes':['id',_0x24fc('0x3e')]});_0x2139e8[_0x24fc('0x4d')]({'model':db[_0x24fc('0xfd')],'as':_0x24fc('0x12e'),'attributes':['id','fullname']});return db[_0x24fc('0x4e')]['find']({'where':{'id':_0x9c34d9[_0x24fc('0xc8')]['id']},'include':_0x2139e8})[_0x24fc('0x24')](handleEntityNotFound(_0x3e4f49,null))[_0x24fc('0x24')](function(_0x26179a){if(_0x26179a){var _0x6f1617=_0x26179a['get']({'plain':!![]});fs[_0x24fc('0x12f')](_0x49025e);var _0x57dfbc={'channel':'Chat','account':_0x6f1617['Account'][_0x24fc('0x3e')],'agent':_0x6f1617[_0x24fc('0x12e')]?_0x6f1617[_0x24fc('0x12e')][_0x24fc('0x48')]:_0x24fc('0x130'),'createdAt':moment(_0x6f1617[_0x24fc('0x8e')])[_0x24fc('0xf9')](_0x24fc('0x11b'))[_0x24fc('0xad')](),'closedAt':_0x6f1617[_0x24fc('0xe7')]?moment(_0x6f1617[_0x24fc('0x131')])[_0x24fc('0xf9')](_0x24fc('0x11b'))['toString']():'','disposition':_0x6f1617['disposition'],'chatInfo':{'browser':_0x6f1617['browserName'],'os':_0x6f1617['osName'],'referer':_0x6f1617['referer'],'customerIp':_0x6f1617[_0x24fc('0x132')],'customerPort':_0x6f1617[_0x24fc('0x133')]?_0x6f1617[_0x24fc('0x133')]:_0x24fc('0x130')},'messages':_(_0x6f1617['Messages'])['tail']()[_0x24fc('0x9a')]({'secret':![]})[_0x24fc('0x47')](function(_0x2ee9a6){if(_0x2ee9a6[_0x24fc('0xee')]){var _0x40409c=path['join'](_0x4d0910,_0x2ee9a6[_0x24fc('0xee')][_0x24fc('0xf5')]);if(fs[_0x24fc('0x134')](_0x40409c)){fs['createReadStream'](_0x40409c)['pipe'](fs[_0x24fc('0x135')](path[_0x24fc('0xf3')](_0x49025e,_0x2ee9a6[_0x24fc('0xee')][_0x24fc('0xf5')])));}}return{'date':moment(_0x2ee9a6[_0x24fc('0x8e')])[_0x24fc('0xf9')](_0x24fc('0x11b'))['toString'](),'sender':_0x2ee9a6[_0x24fc('0x12c')]===_0x24fc('0x136')?_0x2ee9a6[_0x24fc('0xfd')]?_0x2ee9a6[_0x24fc('0xfd')]['fullname']:'System':_0x2ee9a6['Contact']['firstName']+(_0x2ee9a6['Contact'][_0x24fc('0x12b')]?'\x20'+_0x2ee9a6[_0x24fc('0x7b')]['lastName']:''),'body':_0x2ee9a6[_0x24fc('0xee')]?_0x2ee9a6[_0x24fc('0xee')]['basename']:_0x2ee9a6[_0x24fc('0x42')],'direction':_0x2ee9a6['direction']===_0x24fc('0x136')?'A':'C','secret':_0x2ee9a6[_0x24fc('0x107')],'read':_0x2ee9a6[_0x24fc('0x95')],'attachment':_0x2ee9a6['Attachment']};})[_0x24fc('0x7e')]()};return ejs[_0x24fc('0x137')](path['join'](config[_0x24fc('0xf1')],'server','views',_0x24fc('0x138')),{'interaction':_0x57dfbc})[_0x24fc('0x24')](function(_0x24101d){var _0x5defce=path[_0x24fc('0xf3')](_0x49025e,_0x24fc('0x139')+_0x6f1617['id']+'-'+_0x231f0b+_0x24fc('0x13a'));var _0x187770={'path':_0x5defce,'channel':_0x24fc('0x13b'),'interactionId':_0x6f1617['id']};return pdf['createPdfFromHTML'](_0x24101d,_0x187770);})['then'](function(){return new BPromise(function(_0x3357cb,_0x2b633b){zipdir(_0x49025e,{'saveTo':_0x38ca24},function(_0x4ad7c4,_0x1d8b26){if(_0x4ad7c4)return _0x2b633b(_0x4ad7c4);return _0x3357cb(_0x1d8b26);});})[_0x24fc('0x24')](function(){return new BPromise(function(_0x4b0f8b,_0x59d408){rimraf(_0x49025e,function(_0x547f6b){if(_0x547f6b)_0x59d408(_0x547f6b);return _0x4b0f8b();});});})[_0x24fc('0x24')](function(){return _0x3e4f49[_0x24fc('0xf6')](_0x38ca24,_0x2c9a19,function(_0x3a2ffd){if(_0x3a2ffd){console[_0x24fc('0x13c')](_0x24fc('0x13d'),_0x3a2ffd);}else{fs[_0x24fc('0x13e')](_0x38ca24);}});});});}else{return _0x3e4f49[_0x24fc('0x30')](0xc8);}})['catch'](handleError(_0x3e4f49,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1e66=['hasOwnProperty','hook','exports','events','../../mysqldb','ChatInteraction','setMaxListeners','update','then','map','findAll','setDataValue','emit','catch'];(function(_0x1842e4,_0x4b67d5){var _0x456a40=function(_0x5058d5){while(--_0x5058d5){_0x1842e4['push'](_0x1842e4['shift']());}};_0x456a40(++_0x4b67d5);}(_0x1e66,0xd5));var _0x61e6=function(_0x1e3c16,_0x372caa){_0x1e3c16=_0x1e3c16-0x0;var _0x47a0c9=_0x1e66[_0x1e3c16];return _0x47a0c9;};'use strict';var EventEmitter=require(_0x61e6('0x0'));var ChatInteraction=require(_0x61e6('0x1'))['db'][_0x61e6('0x2')];var ChatMessage=require(_0x61e6('0x1'))['db']['ChatMessage'];var ChatInteractionEvents=new EventEmitter();ChatInteractionEvents[_0x61e6('0x3')](0x0);var events={'afterCreate':'save','afterUpdate':_0x61e6('0x4'),'afterDestroy':'remove'};function emitEvent(_0x255f39){return function(_0x19ee02,_0x5b1a6d,_0x31618c){_0x19ee02['getUsers']({'attributes':['id'],'raw':!![]})[_0x61e6('0x5')](function(_0x21cefe){_0x19ee02['setDataValue']('Users',_0x21cefe[_0x61e6('0x6')](function(_0x3e73f6){return{'id':_0x3e73f6['id']};}));return ChatMessage[_0x61e6('0x7')]({'where':{'ChatInteractionId':_0x19ee02['id'],'direction':'in','read':![]},'raw':!![]});})['then'](function(_0x12eca3){_0x19ee02[_0x61e6('0x8')]('unreadMessages',_0x12eca3['length']);ChatInteractionEvents[_0x61e6('0x9')](_0x255f39+':'+_0x19ee02['id'],_0x19ee02);ChatInteractionEvents[_0x61e6('0x9')](_0x255f39,_0x19ee02);_0x31618c(null);})[_0x61e6('0xa')](_0x31618c(null));};}for(var e in events){if(events[_0x61e6('0xb')](e)){var event=events[e];ChatInteraction[_0x61e6('0xc')](e,emitEvent(event));}}module[_0x61e6('0xd')]=ChatInteractionEvents;
\ No newline at end of file
+var _0xf90c=['setMaxListeners','save','update','remove','getUsers','then','setDataValue','map','findAll','unreadMessages','length','emit','catch','hasOwnProperty','exports','events','../../mysqldb','ChatMessage'];(function(_0x2befb5,_0x10f2ac){var _0x11928d=function(_0x1be44d){while(--_0x1be44d){_0x2befb5['push'](_0x2befb5['shift']());}};_0x11928d(++_0x10f2ac);}(_0xf90c,0xe7));var _0xcf90=function(_0x2f99fb,_0x2a5f2e){_0x2f99fb=_0x2f99fb-0x0;var _0x51e6ad=_0xf90c[_0x2f99fb];return _0x51e6ad;};'use strict';var EventEmitter=require(_0xcf90('0x0'));var ChatInteraction=require(_0xcf90('0x1'))['db']['ChatInteraction'];var ChatMessage=require(_0xcf90('0x1'))['db'][_0xcf90('0x2')];var ChatInteractionEvents=new EventEmitter();ChatInteractionEvents[_0xcf90('0x3')](0x0);var events={'afterCreate':_0xcf90('0x4'),'afterUpdate':_0xcf90('0x5'),'afterDestroy':_0xcf90('0x6')};function emitEvent(_0x1a44ec){return function(_0x4a3892,_0x169d6b,_0x178e63){_0x4a3892[_0xcf90('0x7')]({'attributes':['id'],'raw':!![]})[_0xcf90('0x8')](function(_0x3757db){_0x4a3892[_0xcf90('0x9')]('Users',_0x3757db[_0xcf90('0xa')](function(_0x34f2eb){return{'id':_0x34f2eb['id']};}));return ChatMessage[_0xcf90('0xb')]({'where':{'ChatInteractionId':_0x4a3892['id'],'direction':'in','read':![]},'raw':!![]});})[_0xcf90('0x8')](function(_0x25f440){_0x4a3892[_0xcf90('0x9')](_0xcf90('0xc'),_0x25f440[_0xcf90('0xd')]);ChatInteractionEvents[_0xcf90('0xe')](_0x1a44ec+':'+_0x4a3892['id'],_0x4a3892);ChatInteractionEvents[_0xcf90('0xe')](_0x1a44ec,_0x4a3892);_0x178e63(null);})[_0xcf90('0xf')](_0x178e63(null));};}for(var e in events){if(events[_0xcf90('0x10')](e)){var event=events[e];ChatInteraction['hook'](e,emitEvent(event));}}module[_0xcf90('0x11')]=ChatInteractionEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6afa=['./chatInteraction.attributes','define','ChatInteraction','changed','format','utf8mb4_unicode_ci','lodash','util','../../config/logger','moment','request-promise','path','rimraf','../../config/environment'];(function(_0xc93e24,_0x3fe75e){var _0x32a649=function(_0x4f7b12){while(--_0x4f7b12){_0xc93e24['push'](_0xc93e24['shift']());}};_0x32a649(++_0x3fe75e);}(_0x6afa,0x13a));var _0xa6af=function(_0x50bf72,_0x5ae1a6){_0x50bf72=_0x50bf72-0x0;var _0x2f2574=_0x6afa[_0x50bf72];return _0x2f2574;};'use strict';var _=require(_0xa6af('0x0'));var util=require(_0xa6af('0x1'));var logger=require(_0xa6af('0x2'))('api');var moment=require(_0xa6af('0x3'));var BPromise=require('bluebird');var rp=require(_0xa6af('0x4'));var fs=require('fs');var path=require(_0xa6af('0x5'));var rimraf=require(_0xa6af('0x6'));var config=require(_0xa6af('0x7'));var attributes=require(_0xa6af('0x8'));module['exports']=function(_0x1c992a,_0x40340e){return _0x1c992a[_0xa6af('0x9')](_0xa6af('0xa'),attributes,{'tableName':'chat_interactions','paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeUpdate':function(_0x5233af,_0x26f720,_0x3666a1){if(_0x5233af[_0xa6af('0xb')]('closed')){_0x5233af['closedAt']=moment()[_0xa6af('0xc')]('YYYY-MM-DD\x20HH:mm:ss');}_0x3666a1(null,_0x5233af);}},'charset':'utf8mb4','collate':_0xa6af('0xd')});};
\ No newline at end of file
+var _0x70db=['define','ChatInteraction','chat_interactions','changed','closedAt','YYYY-MM-DD\x20HH:mm:ss','utf8mb4','utf8mb4_unicode_ci','util','api','moment','bluebird','request-promise','path','../../config/environment','./chatInteraction.attributes','exports'];(function(_0x28a547,_0x4b2e12){var _0x1a4fb6=function(_0x53424a){while(--_0x53424a){_0x28a547['push'](_0x28a547['shift']());}};_0x1a4fb6(++_0x4b2e12);}(_0x70db,0x13a));var _0xb70d=function(_0x55f8b4,_0x43f30d){_0x55f8b4=_0x55f8b4-0x0;var _0x2475f9=_0x70db[_0x55f8b4];return _0x2475f9;};'use strict';var _=require('lodash');var util=require(_0xb70d('0x0'));var logger=require('../../config/logger')(_0xb70d('0x1'));var moment=require(_0xb70d('0x2'));var BPromise=require(_0xb70d('0x3'));var rp=require(_0xb70d('0x4'));var fs=require('fs');var path=require(_0xb70d('0x5'));var rimraf=require('rimraf');var config=require(_0xb70d('0x6'));var attributes=require(_0xb70d('0x7'));module[_0xb70d('0x8')]=function(_0x2439ba,_0x5a6a0a){return _0x2439ba[_0xb70d('0x9')](_0xb70d('0xa'),attributes,{'tableName':_0xb70d('0xb'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeUpdate':function(_0x5ab251,_0x13b415,_0x4af128){if(_0x5ab251[_0xb70d('0xc')]('closed')){_0x5ab251[_0xb70d('0xd')]=moment()['format'](_0xb70d('0xe'));}_0x4af128(null,_0x5ab251);}},'charset':_0xb70d('0xf'),'collate':_0xb70d('0x10')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x602c=['info','AddTagsToChatInteraction','find','addTags','ids','omit','AddTags','lodash','util','moment','bluebird','../../mysqldb','../../config/utils','rpc','jayson/promise','http','redis','defaults','localhost','./chatInteraction.socket','register','request','ChatInteraction,\x20%s,\x20%s','request\x20sent','debug','ChatInteraction,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','UpdateChatInteraction','update','body','options','where','attributes','limit','then'];(function(_0x115f70,_0x18a247){var _0x251562=function(_0x29adcf){while(--_0x29adcf){_0x115f70['push'](_0x115f70['shift']());}};_0x251562(++_0x18a247);}(_0x602c,0xcf));var _0xc602=function(_0x376c3c,_0x4fcf2c){_0x376c3c=_0x376c3c-0x0;var _0x46aefe=_0x602c[_0x376c3c];return _0x46aefe;};'use strict';var _=require(_0xc602('0x0'));var util=require(_0xc602('0x1'));var moment=require(_0xc602('0x2'));var BPromise=require(_0xc602('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0xc602('0x4'))['db'];var utils=require(_0xc602('0x5'));var logger=require('../../config/logger')(_0xc602('0x6'));var config=require('../../config/environment');var jayson=require(_0xc602('0x7'));var client=jayson['client'][_0xc602('0x8')]({'port':0x232a});config[_0xc602('0x9')]=_[_0xc602('0xa')](config[_0xc602('0x9')],{'host':_0xc602('0xb'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xc602('0x9')]));require(_0xc602('0xc'))[_0xc602('0xd')](socket);function respondWithRpcPromise(_0x2c6534,_0x45f51a,_0x2117c6){return new BPromise(function(_0x22e2a4,_0x3e6cdd){return client[_0xc602('0xe')](_0x2c6534,_0x2117c6)['then'](function(_0x186924){logger['info'](_0xc602('0xf'),_0x45f51a,_0xc602('0x10'));logger[_0xc602('0x11')](_0xc602('0x12'),_0x45f51a,_0xc602('0x10'),JSON[_0xc602('0x13')](_0x186924));if(_0x186924['error']){if(_0x186924[_0xc602('0x14')][_0xc602('0x15')]===0x1f4){logger['error'](_0xc602('0xf'),_0x45f51a,_0x186924[_0xc602('0x14')][_0xc602('0x16')]);return _0x3e6cdd(_0x186924['error'][_0xc602('0x16')]);}logger[_0xc602('0x14')](_0xc602('0xf'),_0x45f51a,_0x186924['error'][_0xc602('0x16')]);return _0x22e2a4(_0x186924['error']['message']);}else{logger['info'](_0xc602('0xf'),_0x45f51a,_0xc602('0x10'));_0x22e2a4(_0x186924[_0xc602('0x17')][_0xc602('0x16')]);}})[_0xc602('0x18')](function(_0xbce0fb){logger[_0xc602('0x14')](_0xc602('0xf'),_0x45f51a,_0xbce0fb);_0x3e6cdd(_0xbce0fb);});});}exports[_0xc602('0x19')]=function(_0x25e828){var _0x415c33=this;return new Promise(function(_0x8b479c,_0x232b54){return db['ChatInteraction'][_0xc602('0x1a')](_0x25e828[_0xc602('0x1b')],{'raw':_0x25e828[_0xc602('0x1c')]?_0x25e828[_0xc602('0x1c')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x25e828['options']?_0x25e828['options'][_0xc602('0x1d')]||null:null,'attributes':_0x25e828['options']?_0x25e828['options'][_0xc602('0x1e')]||null:null,'limit':_0x25e828[_0xc602('0x1c')]?_0x25e828[_0xc602('0x1c')][_0xc602('0x1f')]||null:null})[_0xc602('0x20')](function(_0x3153f7){logger[_0xc602('0x21')](_0xc602('0x19'),_0x25e828);logger[_0xc602('0x11')](_0xc602('0x19'),_0x25e828,JSON[_0xc602('0x13')](_0x3153f7));_0x8b479c(_0x3153f7);})[_0xc602('0x18')](function(_0x5a1a0a){logger[_0xc602('0x14')](_0xc602('0x19'),_0x5a1a0a['message'],_0x25e828);_0x232b54(_0x415c33[_0xc602('0x14')](0x1f4,_0x5a1a0a[_0xc602('0x16')]));});});};exports[_0xc602('0x22')]=function(_0x44b5c4){return new Promise(function(_0x552e6e,_0xba061e){return db['ChatInteraction'][_0xc602('0x23')]({'where':_0x44b5c4[_0xc602('0x1c')]?_0x44b5c4['options']['where']||null:null})[_0xc602('0x20')](function(_0xc00164){if(_0xc00164){return _0xc00164[_0xc602('0x24')](_0x44b5c4[_0xc602('0x1b')][_0xc602('0x25')],_[_0xc602('0x26')](_0x44b5c4[_0xc602('0x1b')],['ids','id'])||{});}})['spread'](function(_0x9c973b){logger['info']('AddTags',_0x44b5c4);logger[_0xc602('0x11')](_0xc602('0x27'),_0x44b5c4,JSON[_0xc602('0x13')](_0x9c973b));_0x552e6e(_0x9c973b);})[_0xc602('0x18')](function(_0x51f225){logger[_0xc602('0x14')](_0xc602('0x27'),_0x51f225[_0xc602('0x16')],_0x44b5c4);_0xba061e(_this[_0xc602('0x14')](0x1f4,_0x51f225[_0xc602('0x16')]));});});};
\ No newline at end of file
+var _0x4fe1=['register','request','info','request\x20sent','debug','stringify','error','message','ChatInteraction,\x20%s,\x20%s','result','catch','UpdateChatInteraction','update','body','options','attributes','then','AddTagsToChatInteraction','find','addTags','ids','omit','spread','AddTags','lodash','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','redis','defaults','localhost','socket.io-emitter'];(function(_0x162805,_0x5649f3){var _0x46c331=function(_0x201b02){while(--_0x201b02){_0x162805['push'](_0x162805['shift']());}};_0x46c331(++_0x5649f3);}(_0x4fe1,0x19e));var _0x14fe=function(_0x13e741,_0x5d3c24){_0x13e741=_0x13e741-0x0;var _0x3f8bb3=_0x4fe1[_0x13e741];return _0x3f8bb3;};'use strict';var _=require(_0x14fe('0x0'));var util=require(_0x14fe('0x1'));var moment=require(_0x14fe('0x2'));var BPromise=require(_0x14fe('0x3'));var rs=require(_0x14fe('0x4'));var fs=require('fs');var Redis=require(_0x14fe('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0x14fe('0x6'));var logger=require(_0x14fe('0x7'))('rpc');var config=require(_0x14fe('0x8'));var jayson=require(_0x14fe('0x9'));var client=jayson[_0x14fe('0xa')]['http']({'port':0x232a});config[_0x14fe('0xb')]=_[_0x14fe('0xc')](config[_0x14fe('0xb')],{'host':_0x14fe('0xd'),'port':0x18eb});var socket=require(_0x14fe('0xe'))(new Redis(config[_0x14fe('0xb')]));require('./chatInteraction.socket')[_0x14fe('0xf')](socket);function respondWithRpcPromise(_0xd2ab25,_0x39a08d,_0x206087){return new BPromise(function(_0x37d6ba,_0x358832){return client[_0x14fe('0x10')](_0xd2ab25,_0x206087)['then'](function(_0x336eba){logger[_0x14fe('0x11')]('ChatInteraction,\x20%s,\x20%s',_0x39a08d,_0x14fe('0x12'));logger[_0x14fe('0x13')]('ChatInteraction,\x20%s,\x20%s,\x20%s',_0x39a08d,_0x14fe('0x12'),JSON[_0x14fe('0x14')](_0x336eba));if(_0x336eba[_0x14fe('0x15')]){if(_0x336eba[_0x14fe('0x15')]['code']===0x1f4){logger[_0x14fe('0x15')]('ChatInteraction,\x20%s,\x20%s',_0x39a08d,_0x336eba[_0x14fe('0x15')][_0x14fe('0x16')]);return _0x358832(_0x336eba['error'][_0x14fe('0x16')]);}logger[_0x14fe('0x15')](_0x14fe('0x17'),_0x39a08d,_0x336eba['error'][_0x14fe('0x16')]);return _0x37d6ba(_0x336eba[_0x14fe('0x15')][_0x14fe('0x16')]);}else{logger[_0x14fe('0x11')](_0x14fe('0x17'),_0x39a08d,_0x14fe('0x12'));_0x37d6ba(_0x336eba[_0x14fe('0x18')]['message']);}})[_0x14fe('0x19')](function(_0x575e59){logger[_0x14fe('0x15')](_0x14fe('0x17'),_0x39a08d,_0x575e59);_0x358832(_0x575e59);});});}exports[_0x14fe('0x1a')]=function(_0x48d300){var _0x497c8e=this;return new Promise(function(_0x27356a,_0x416bf2){return db['ChatInteraction'][_0x14fe('0x1b')](_0x48d300[_0x14fe('0x1c')],{'raw':_0x48d300[_0x14fe('0x1d')]?_0x48d300['options']['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x48d300[_0x14fe('0x1d')]?_0x48d300[_0x14fe('0x1d')]['where']||null:null,'attributes':_0x48d300[_0x14fe('0x1d')]?_0x48d300[_0x14fe('0x1d')][_0x14fe('0x1e')]||null:null,'limit':_0x48d300['options']?_0x48d300['options']['limit']||null:null})[_0x14fe('0x1f')](function(_0x527ba2){logger['info']('UpdateChatInteraction',_0x48d300);logger[_0x14fe('0x13')](_0x14fe('0x1a'),_0x48d300,JSON[_0x14fe('0x14')](_0x527ba2));_0x27356a(_0x527ba2);})[_0x14fe('0x19')](function(_0x21d490){logger[_0x14fe('0x15')](_0x14fe('0x1a'),_0x21d490[_0x14fe('0x16')],_0x48d300);_0x416bf2(_0x497c8e['error'](0x1f4,_0x21d490[_0x14fe('0x16')]));});});};exports[_0x14fe('0x20')]=function(_0xd1b2d6){return new Promise(function(_0x4facc7,_0x292e10){return db['ChatInteraction'][_0x14fe('0x21')]({'where':_0xd1b2d6['options']?_0xd1b2d6['options']['where']||null:null})[_0x14fe('0x1f')](function(_0x4de459){if(_0x4de459){return _0x4de459[_0x14fe('0x22')](_0xd1b2d6[_0x14fe('0x1c')][_0x14fe('0x23')],_[_0x14fe('0x24')](_0xd1b2d6[_0x14fe('0x1c')],[_0x14fe('0x23'),'id'])||{});}})[_0x14fe('0x25')](function(_0x3c5da0){logger[_0x14fe('0x11')]('AddTags',_0xd1b2d6);logger['debug'](_0x14fe('0x26'),_0xd1b2d6,JSON[_0x14fe('0x14')](_0x3c5da0));_0x4facc7(_0x3c5da0);})['catch'](function(_0x14e335){logger[_0x14fe('0x15')](_0x14fe('0x26'),_0x14e335['message'],_0xd1b2d6);_0x292e10(_this['error'](0x1f4,_0x14e335[_0x14fe('0x16')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf498=['update','removeListener','register','length','chatInteraction:','./chatInteraction.events','remove'];(function(_0x2e2b76,_0x2460ae){var _0x4da918=function(_0x2c8fc7){while(--_0x2c8fc7){_0x2e2b76['push'](_0x2e2b76['shift']());}};_0x4da918(++_0x2460ae);}(_0xf498,0x108));var _0x8f49=function(_0xc4001c,_0x1bf8f0){_0xc4001c=_0xc4001c-0x0;var _0x49f7bc=_0xf498[_0xc4001c];return _0x49f7bc;};'use strict';var ChatInteractionEvents=require(_0x8f49('0x0'));var events=['save',_0x8f49('0x1'),_0x8f49('0x2')];function createListener(_0x50b4c0,_0x32eac0){return function(_0x213aa6){_0x32eac0['emit'](_0x50b4c0,_0x213aa6);};}function removeListener(_0x54f3bf,_0x3800e4){return function(){ChatInteractionEvents[_0x8f49('0x3')](_0x54f3bf,_0x3800e4);};}exports[_0x8f49('0x4')]=function(_0x52521d){for(var _0x2be802=0x0,_0x25d471=events[_0x8f49('0x5')];_0x2be802<_0x25d471;_0x2be802++){var _0x211b5b=events[_0x2be802];var _0x5b563b=createListener(_0x8f49('0x6')+_0x211b5b,_0x52521d);ChatInteractionEvents['on'](_0x211b5b,_0x5b563b);}};
\ No newline at end of file
+var _0x3969=['./chatInteraction.events','save','emit','removeListener','register','length'];(function(_0x5c1435,_0x379418){var _0x5b18ad=function(_0x207e1f){while(--_0x207e1f){_0x5c1435['push'](_0x5c1435['shift']());}};_0x5b18ad(++_0x379418);}(_0x3969,0xa8));var _0x9396=function(_0x351edb,_0x490507){_0x351edb=_0x351edb-0x0;var _0x127603=_0x3969[_0x351edb];return _0x127603;};'use strict';var ChatInteractionEvents=require(_0x9396('0x0'));var events=[_0x9396('0x1'),'remove','update'];function createListener(_0x4fe6c3,_0x424cd9){return function(_0x5c402d){_0x424cd9[_0x9396('0x2')](_0x4fe6c3,_0x5c402d);};}function removeListener(_0x13ac16,_0x2ac8ec){return function(){ChatInteractionEvents[_0x9396('0x3')](_0x13ac16,_0x2ac8ec);};}exports[_0x9396('0x4')]=function(_0x6eae44){for(var _0x232c70=0x0,_0x321544=events[_0x9396('0x5')];_0x232c70<_0x321544;_0x232c70++){var _0x36ef09=events[_0x232c70];var _0x10c956=createListener('chatInteraction:'+_0x36ef09,_0x6eae44);ChatInteractionEvents['on'](_0x36ef09,_0x10c956);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcfc8=['%s-%s','now','originalname','replace','/:id/attachment_upload','file','addMessage','/:id/tags','chat','chatinteraction:addtags','addTags','put','tracked','/:id/custom_update','customUpdate','/:id/abandon','abandon','chatinteraction:destroy','destroy','delete','exports','multer','util','path','express','fs-extra','../../components/auth/service','../../components/interaction/service','./chatInteraction.controller','get','isAuthenticated','/describe','/:id','isChatInteractionAuthorized','show','/:id/messages','/:id/my_messages','getMyMessages','/:id/download','download','post','createVidaooSession','root','server/files/attachments/','format'];(function(_0x417452,_0x19ecdd){var _0x326b75=function(_0x1d817e){while(--_0x1d817e){_0x417452['push'](_0x417452['shift']());}};_0x326b75(++_0x19ecdd);}(_0xcfc8,0x150));var _0x8cfc=function(_0x19b6bc,_0x14f3cf){_0x19b6bc=_0x19b6bc-0x0;var _0x3a7172=_0xcfc8[_0x19b6bc];return _0x3a7172;};'use strict';var multer=require(_0x8cfc('0x0'));var util=require(_0x8cfc('0x1'));var path=require(_0x8cfc('0x2'));var timeout=require('connect-timeout');var express=require(_0x8cfc('0x3'));var router=express['Router']();var fs_extra=require(_0x8cfc('0x4'));var auth=require(_0x8cfc('0x5'));var interaction=require(_0x8cfc('0x6'));var config=require('../../config/environment');var controller=require(_0x8cfc('0x7'));router[_0x8cfc('0x8')]('/',auth[_0x8cfc('0x9')](),controller['index']);router[_0x8cfc('0x8')](_0x8cfc('0xa'),auth[_0x8cfc('0x9')](),controller['describe']);router[_0x8cfc('0x8')](_0x8cfc('0xb'),auth[_0x8cfc('0xc')](),controller[_0x8cfc('0xd')]);router['get']('/:id/attachment_download',auth[_0x8cfc('0xc')](),controller['attachmentDownload']);router[_0x8cfc('0x8')](_0x8cfc('0xe'),auth[_0x8cfc('0x9')](),controller['getMessages']);router[_0x8cfc('0x8')](_0x8cfc('0xf'),auth[_0x8cfc('0xc')](),controller[_0x8cfc('0x10')]);router[_0x8cfc('0x8')](_0x8cfc('0x11'),auth['isAuthenticated'](),controller[_0x8cfc('0x12')]);router['post']('/',auth[_0x8cfc('0x9')](),controller['create']);router[_0x8cfc('0x13')]('/:id/vidaoo',auth[_0x8cfc('0x9')](),controller[_0x8cfc('0x14')]);var upload=multer({'storage':multer['diskStorage']({'destination':function(_0x5945d6,_0x3965de,_0x106afe){_0x106afe(null,path['join'](config[_0x8cfc('0x15')],_0x8cfc('0x16')));},'filename':function(_0x2df7dd,_0x16a616,_0x58a6d2){_0x58a6d2(null,util[_0x8cfc('0x17')](_0x8cfc('0x18'),Date[_0x8cfc('0x19')](),_0x16a616[_0x8cfc('0x1a')][_0x8cfc('0x1b')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-')));}})});router[_0x8cfc('0x13')](_0x8cfc('0x1c'),upload['single'](_0x8cfc('0x1d')),controller['attachmentUpload']);router[_0x8cfc('0x13')]('/:id/messages',auth[_0x8cfc('0xc')](),controller[_0x8cfc('0x1e')]);router['post'](_0x8cfc('0x1f'),auth[_0x8cfc('0x9')](),interaction['tracked'](_0x8cfc('0x20'),_0x8cfc('0x21')),controller[_0x8cfc('0x22')]);router[_0x8cfc('0x23')](_0x8cfc('0xb'),auth['isAuthenticated'](),interaction[_0x8cfc('0x24')](_0x8cfc('0x20'),'chatinteraction:update'),controller['update']);router[_0x8cfc('0x23')](_0x8cfc('0x25'),controller[_0x8cfc('0x26')]);router[_0x8cfc('0x23')](_0x8cfc('0x27'),auth[_0x8cfc('0xc')](),controller[_0x8cfc('0x28')]);router['put']('/:id/close',controller['close']);router['delete'](_0x8cfc('0xb'),auth[_0x8cfc('0x9')](),interaction[_0x8cfc('0x24')](_0x8cfc('0x20'),_0x8cfc('0x29')),controller[_0x8cfc('0x2a')]);router[_0x8cfc('0x2b')](_0x8cfc('0x1f'),auth['isAuthenticated'](),controller['removeTags']);module[_0x8cfc('0x2c')]=router;
\ No newline at end of file
+var _0xac65=['attachmentUpload','tracked','chat','chatinteraction:addtags','put','chatinteraction:update','/:id/abandon','abandon','delete','chatinteraction:destroy','destroy','/:id/tags','removeTags','exports','util','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','describe','/:id','isChatInteractionAuthorized','attachmentDownload','/:id/messages','getMessages','/:id/my_messages','/:id/download','download','post','create','diskStorage','join','root','server/files/attachments/','format','%s-%s','now','originalname','replace','/:id/attachment_upload','single','file'];(function(_0x6328e9,_0x318210){var _0x6d072f=function(_0x3b35bd){while(--_0x3b35bd){_0x6328e9['push'](_0x6328e9['shift']());}};_0x6d072f(++_0x318210);}(_0xac65,0x18e));var _0x5ac6=function(_0x552e6c,_0x171ac2){_0x552e6c=_0x552e6c-0x0;var _0x20520e=_0xac65[_0x552e6c];return _0x20520e;};'use strict';var multer=require('multer');var util=require(_0x5ac6('0x0'));var path=require(_0x5ac6('0x1'));var timeout=require(_0x5ac6('0x2'));var express=require('express');var router=express[_0x5ac6('0x3')]();var fs_extra=require(_0x5ac6('0x4'));var auth=require(_0x5ac6('0x5'));var interaction=require(_0x5ac6('0x6'));var config=require(_0x5ac6('0x7'));var controller=require('./chatInteraction.controller');router[_0x5ac6('0x8')]('/',auth[_0x5ac6('0x9')](),controller[_0x5ac6('0xa')]);router[_0x5ac6('0x8')]('/describe',auth[_0x5ac6('0x9')](),controller[_0x5ac6('0xb')]);router[_0x5ac6('0x8')](_0x5ac6('0xc'),auth[_0x5ac6('0xd')](),controller['show']);router[_0x5ac6('0x8')]('/:id/attachment_download',auth[_0x5ac6('0xd')](),controller[_0x5ac6('0xe')]);router[_0x5ac6('0x8')](_0x5ac6('0xf'),auth['isAuthenticated'](),controller[_0x5ac6('0x10')]);router[_0x5ac6('0x8')](_0x5ac6('0x11'),auth[_0x5ac6('0xd')](),controller['getMyMessages']);router['get'](_0x5ac6('0x12'),auth[_0x5ac6('0x9')](),controller[_0x5ac6('0x13')]);router[_0x5ac6('0x14')]('/',auth[_0x5ac6('0x9')](),controller[_0x5ac6('0x15')]);router[_0x5ac6('0x14')]('/:id/vidaoo',auth[_0x5ac6('0x9')](),controller['createVidaooSession']);var upload=multer({'storage':multer[_0x5ac6('0x16')]({'destination':function(_0x2380ee,_0x1aa24e,_0x49a9c6){_0x49a9c6(null,path[_0x5ac6('0x17')](config[_0x5ac6('0x18')],_0x5ac6('0x19')));},'filename':function(_0x76620d,_0x510e6b,_0x41891c){_0x41891c(null,util[_0x5ac6('0x1a')](_0x5ac6('0x1b'),Date[_0x5ac6('0x1c')](),_0x510e6b[_0x5ac6('0x1d')][_0x5ac6('0x1e')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-')));}})});router[_0x5ac6('0x14')](_0x5ac6('0x1f'),upload[_0x5ac6('0x20')](_0x5ac6('0x21')),controller[_0x5ac6('0x22')]);router[_0x5ac6('0x14')](_0x5ac6('0xf'),auth[_0x5ac6('0xd')](),controller['addMessage']);router[_0x5ac6('0x14')]('/:id/tags',auth[_0x5ac6('0x9')](),interaction[_0x5ac6('0x23')](_0x5ac6('0x24'),_0x5ac6('0x25')),controller['addTags']);router[_0x5ac6('0x26')](_0x5ac6('0xc'),auth[_0x5ac6('0x9')](),interaction[_0x5ac6('0x23')](_0x5ac6('0x24'),_0x5ac6('0x27')),controller['update']);router[_0x5ac6('0x26')]('/:id/custom_update',controller['customUpdate']);router[_0x5ac6('0x26')](_0x5ac6('0x28'),auth[_0x5ac6('0xd')](),controller[_0x5ac6('0x29')]);router[_0x5ac6('0x26')]('/:id/close',controller['close']);router[_0x5ac6('0x2a')](_0x5ac6('0xc'),auth[_0x5ac6('0x9')](),interaction[_0x5ac6('0x23')]('chat',_0x5ac6('0x2b')),controller[_0x5ac6('0x2c')]);router[_0x5ac6('0x2a')](_0x5ac6('0x2d'),auth['isAuthenticated'](),controller[_0x5ac6('0x2e')]);module[_0x5ac6('0x2f')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7979=['medium','BOOLEAN','INTEGER','exports','TEXT'];(function(_0x58ae0a,_0x3e120d){var _0x394c2d=function(_0xdded18){while(--_0xdded18){_0x58ae0a['push'](_0x58ae0a['shift']());}};_0x394c2d(++_0x3e120d);}(_0x7979,0x1b1));var _0x9797=function(_0x439a7e,_0x301aa4){_0x439a7e=_0x439a7e-0x0;var _0x369a5f=_0x7979[_0x439a7e];return _0x369a5f;};'use strict';var Sequelize=require('sequelize');module[_0x9797('0x0')]={'body':{'type':Sequelize[_0x9797('0x1')](_0x9797('0x2')),'allowNull':![]},'read':{'type':Sequelize[_0x9797('0x3')],'defaultValue':![]},'ChatInternalMessageId':{'type':Sequelize[_0x9797('0x4')]}};
\ No newline at end of file
+var _0xde92=['sequelize','exports','TEXT','medium','BOOLEAN'];(function(_0x4bb4d9,_0x241891){var _0x59e4d4=function(_0x3cedb9){while(--_0x3cedb9){_0x4bb4d9['push'](_0x4bb4d9['shift']());}};_0x59e4d4(++_0x241891);}(_0xde92,0x78));var _0x2de9=function(_0x4a6979,_0x5f3d1a){_0x4a6979=_0x4a6979-0x0;var _0x226f93=_0xde92[_0x4a6979];return _0x226f93;};'use strict';var Sequelize=require(_0x2de9('0x0'));module[_0x2de9('0x1')]={'body':{'type':Sequelize[_0x2de9('0x2')](_0x2de9('0x3')),'allowNull':![]},'read':{'type':Sequelize[_0x2de9('0x4')],'defaultValue':![]},'ChatInternalMessageId':{'type':Sequelize['INTEGER']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0d24=['includeAll','findAll','params','rawAttributes','include','find','catch','create','body','describe','get','createdAt','lastMessage','lastMessageAt','getUsers','agent','admin','user','role','userpic','internal','online','lastLoginAt','allowmessenger','-online','VoiceQueue','VoiceQueues','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','Agents','userProfileId','autoAssociation','UserProfileResource','resourceId','push','filter','messages','FromId','read','-createdAt','all','rimraf','zip-dir','fast-json-patch','request-promise','mustache','util','path','to-csv','squel','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./chatInternalMessage.socket','register','sendStatus','end','status','json','offset','undefined','limit','count','set','Content-Range','reject','save','update','then','destroy','error','stack','name','send','index','map','ChatInternalMessage','fieldName','type','key','model','keys','filters','intersection','attributes','fields','length','query','hasOwnProperty','nolimit','sort','where','merge','VIRTUAL','options'];(function(_0x3bf83f,_0x181cac){var _0x22c4a9=function(_0xb3ff0d){while(--_0xb3ff0d){_0x3bf83f['push'](_0x3bf83f['shift']());}};_0x22c4a9(++_0x181cac);}(_0x0d24,0x1d5));var _0x40d2=function(_0x2c0b2c,_0x59dbb2){_0x2c0b2c=_0x2c0b2c-0x0;var _0x2c3596=_0x0d24[_0x2c0b2c];return _0x2c3596;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x40d2('0x0'));var zipdir=require(_0x40d2('0x1'));var jsonpatch=require(_0x40d2('0x2'));var rp=require(_0x40d2('0x3'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x40d2('0x4'));var util=require(_0x40d2('0x5'));var path=require(_0x40d2('0x6'));var sox=require('sox');var csv=require(_0x40d2('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x40d2('0x8'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x40d2('0x9'));var Papa=require(_0x40d2('0xa'));var Redis=require(_0x40d2('0xb'));var authService=require(_0x40d2('0xc'));var qs=require('../../components/parsers/qs');var as=require(_0x40d2('0xd'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x40d2('0xe'))(_0x40d2('0xf'));var utils=require(_0x40d2('0x10'));var config=require(_0x40d2('0x11'));var licenseUtil=require(_0x40d2('0x12'));var db=require(_0x40d2('0x13'))['db'];config[_0x40d2('0x14')]=_[_0x40d2('0x15')](config[_0x40d2('0x14')],{'host':_0x40d2('0x16'),'port':0x18eb});var socket=require(_0x40d2('0x17'))(new Redis(config['redis']));require(_0x40d2('0x18'))[_0x40d2('0x19')](socket);function respondWithStatusCode(_0x3eb9d7,_0x2917b3){_0x2917b3=_0x2917b3||0xcc;return function(_0x5ecd7b){if(_0x5ecd7b){return _0x3eb9d7[_0x40d2('0x1a')](_0x2917b3);}return _0x3eb9d7['status'](_0x2917b3)[_0x40d2('0x1b')]();};}function respondWithResult(_0x52ab09,_0x508e91){_0x508e91=_0x508e91||0xc8;return function(_0x638d73){if(_0x638d73){return _0x52ab09[_0x40d2('0x1c')](_0x508e91)[_0x40d2('0x1d')](_0x638d73);}};}function respondWithFilteredResult(_0x4648e6,_0x564401){return function(_0x1a34cc){if(_0x1a34cc){var _0x69817=typeof _0x564401[_0x40d2('0x1e')]===_0x40d2('0x1f')&&typeof _0x564401[_0x40d2('0x20')]===_0x40d2('0x1f');var _0x299df1=_0x1a34cc['count'];var _0x5b02d4=_0x69817?0x0:_0x564401[_0x40d2('0x1e')];var _0x1692ee=_0x69817?_0x1a34cc[_0x40d2('0x21')]:_0x564401[_0x40d2('0x1e')]+_0x564401[_0x40d2('0x20')];var _0x4ead66;if(_0x1692ee>=_0x299df1){_0x1692ee=_0x299df1;_0x4ead66=0xc8;}else{_0x4ead66=0xce;}_0x4648e6[_0x40d2('0x1c')](_0x4ead66);return _0x4648e6[_0x40d2('0x22')](_0x40d2('0x23'),_0x5b02d4+'-'+_0x1692ee+'/'+_0x299df1)[_0x40d2('0x1d')](_0x1a34cc);}return null;};}function patchUpdates(_0x375cf5){return function(_0x5e2017){try{jsonpatch['apply'](_0x5e2017,_0x375cf5,!![]);}catch(_0x12b2ef){return BPromise[_0x40d2('0x24')](_0x12b2ef);}return _0x5e2017[_0x40d2('0x25')]();};}function saveUpdates(_0x1437a7,_0x31a528){return function(_0x21977d){if(_0x21977d){return _0x21977d[_0x40d2('0x26')](_0x1437a7)[_0x40d2('0x27')](function(_0x45922f){return _0x45922f;});}return null;};}function removeEntity(_0x843b60,_0x595e8e){return function(_0x27543c){if(_0x27543c){return _0x27543c[_0x40d2('0x28')]()[_0x40d2('0x27')](function(){_0x843b60[_0x40d2('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x1a338f,_0x38b0dc){return function(_0x45313b){if(!_0x45313b){_0x1a338f[_0x40d2('0x1a')](0x194);}return _0x45313b;};}function handleError(_0x33bf17,_0x379a7e){_0x379a7e=_0x379a7e||0x1f4;return function(_0x19a39f){logger[_0x40d2('0x29')](_0x19a39f[_0x40d2('0x2a')]);if(_0x19a39f[_0x40d2('0x2b')]){delete _0x19a39f['name'];}_0x33bf17['status'](_0x379a7e)[_0x40d2('0x2c')](_0x19a39f);};}exports[_0x40d2('0x2d')]=function(_0x4cd53e,_0x288581){var _0xd9eaca={},_0x3bf290={},_0xc463c4={'count':0x0,'rows':[]};var _0x226f57=_[_0x40d2('0x2e')](db[_0x40d2('0x2f')]['rawAttributes'],function(_0x338a38){return{'name':_0x338a38[_0x40d2('0x30')],'type':_0x338a38[_0x40d2('0x31')][_0x40d2('0x32')]};});_0x3bf290[_0x40d2('0x33')]=_[_0x40d2('0x2e')](_0x226f57,_0x40d2('0x2b'));_0x3bf290['query']=_[_0x40d2('0x34')](_0x4cd53e['query']);_0x3bf290[_0x40d2('0x35')]=_[_0x40d2('0x36')](_0x3bf290['model'],_0x3bf290['query']);_0xd9eaca[_0x40d2('0x37')]=_[_0x40d2('0x36')](_0x3bf290[_0x40d2('0x33')],qs['fields'](_0x4cd53e['query'][_0x40d2('0x38')]));_0xd9eaca[_0x40d2('0x37')]=_0xd9eaca[_0x40d2('0x37')][_0x40d2('0x39')]?_0xd9eaca[_0x40d2('0x37')]:_0x3bf290[_0x40d2('0x33')];if(!_0x4cd53e[_0x40d2('0x3a')][_0x40d2('0x3b')](_0x40d2('0x3c'))){_0xd9eaca[_0x40d2('0x20')]=qs[_0x40d2('0x20')](_0x4cd53e['query'][_0x40d2('0x20')]);_0xd9eaca[_0x40d2('0x1e')]=qs[_0x40d2('0x1e')](_0x4cd53e[_0x40d2('0x3a')][_0x40d2('0x1e')]);}_0xd9eaca['order']=qs[_0x40d2('0x3d')](_0x4cd53e[_0x40d2('0x3a')][_0x40d2('0x3d')]);_0xd9eaca[_0x40d2('0x3e')]=qs['filters'](_['pick'](_0x4cd53e['query'],_0x3bf290['filters']),_0x226f57);if(_0x4cd53e['query']['filter']){_0xd9eaca[_0x40d2('0x3e')]=_[_0x40d2('0x3f')](_0xd9eaca[_0x40d2('0x3e')],{'$or':_[_0x40d2('0x2e')](_0x226f57,function(_0xb7dda5){if(_0xb7dda5['type']!==_0x40d2('0x40')){var _0x22df59={};_0x22df59[_0xb7dda5[_0x40d2('0x2b')]]={'$like':'%'+_0x4cd53e[_0x40d2('0x3a')]['filter']+'%'};return _0x22df59;}})});}_0xd9eaca=_[_0x40d2('0x3f')]({},_0xd9eaca,_0x4cd53e[_0x40d2('0x41')]);var _0x165892={'where':_0xd9eaca['where']};return db[_0x40d2('0x2f')][_0x40d2('0x21')](_0x165892)[_0x40d2('0x27')](function(_0x2d613d){_0xc463c4[_0x40d2('0x21')]=_0x2d613d;if(_0x4cd53e['query'][_0x40d2('0x42')]){_0xd9eaca['include']=[{'all':!![]}];}return db['ChatInternalMessage'][_0x40d2('0x43')](_0xd9eaca);})[_0x40d2('0x27')](function(_0x166a7){_0xc463c4['rows']=_0x166a7;return _0xc463c4;})[_0x40d2('0x27')](respondWithFilteredResult(_0x288581,_0xd9eaca))['catch'](handleError(_0x288581,null));};exports['show']=function(_0x137300,_0x564905){var _0xab0f50={'raw':!![],'where':{'id':_0x137300[_0x40d2('0x44')]['id']}},_0x5e46dc={};_0x5e46dc[_0x40d2('0x33')]=_[_0x40d2('0x34')](db['ChatInternalMessage'][_0x40d2('0x45')]);_0x5e46dc[_0x40d2('0x3a')]=_[_0x40d2('0x34')](_0x137300[_0x40d2('0x3a')]);_0x5e46dc[_0x40d2('0x35')]=_[_0x40d2('0x36')](_0x5e46dc[_0x40d2('0x33')],_0x5e46dc[_0x40d2('0x3a')]);_0xab0f50[_0x40d2('0x37')]=_[_0x40d2('0x36')](_0x5e46dc[_0x40d2('0x33')],qs[_0x40d2('0x38')](_0x137300['query'][_0x40d2('0x38')]));_0xab0f50['attributes']=_0xab0f50['attributes'][_0x40d2('0x39')]?_0xab0f50[_0x40d2('0x37')]:_0x5e46dc['model'];if(_0x137300['query']['includeAll']){_0xab0f50[_0x40d2('0x46')]=[{'all':!![]}];}_0xab0f50=_[_0x40d2('0x3f')]({},_0xab0f50,_0x137300['options']);return db[_0x40d2('0x2f')][_0x40d2('0x47')](_0xab0f50)[_0x40d2('0x27')](handleEntityNotFound(_0x564905,null))[_0x40d2('0x27')](respondWithResult(_0x564905,null))[_0x40d2('0x48')](handleError(_0x564905,null));};exports['create']=function(_0x448c94,_0x17ff13){return db[_0x40d2('0x2f')][_0x40d2('0x49')](_0x448c94[_0x40d2('0x4a')],{})[_0x40d2('0x27')](respondWithResult(_0x17ff13,0xc9))[_0x40d2('0x48')](handleError(_0x17ff13,null));};exports['update']=function(_0x4a9fa8,_0x36dc56){if(_0x4a9fa8['body']['id']){delete _0x4a9fa8['body']['id'];}return db['ChatInternalMessage']['find']({'where':{'id':_0x4a9fa8[_0x40d2('0x44')]['id']}})[_0x40d2('0x27')](handleEntityNotFound(_0x36dc56,null))[_0x40d2('0x27')](saveUpdates(_0x4a9fa8['body'],null))[_0x40d2('0x27')](respondWithResult(_0x36dc56,null))['catch'](handleError(_0x36dc56,null));};exports[_0x40d2('0x28')]=function(_0x539d8d,_0x1c9fb3){return db['ChatInternalMessage']['find']({'where':{'id':_0x539d8d[_0x40d2('0x44')]['id']}})[_0x40d2('0x27')](handleEntityNotFound(_0x1c9fb3,null))[_0x40d2('0x27')](removeEntity(_0x1c9fb3,null))[_0x40d2('0x48')](handleError(_0x1c9fb3,null));};exports['describe']=function(_0x4f3eea,_0x241e30){return db[_0x40d2('0x2f')][_0x40d2('0x4b')]()[_0x40d2('0x27')](respondWithResult(_0x241e30,null))[_0x40d2('0x48')](handleError(_0x241e30,null));};function wrapUser(_0x225da1){return function(_0x2a65e6){var _0x3595d0=_0x225da1[_0x40d2('0x4c')]({'plain':!![]});_0x3595d0['messages']=[];if(_0x2a65e6){_0x3595d0['lastMessageAt']=_0x2a65e6[_0x40d2('0x4d')];_0x3595d0[_0x40d2('0x4e')]=_0x2a65e6;}else{_0x3595d0[_0x40d2('0x4f')]=moment(0x0)['format']('YYYY-MM-DD\x20HH:mm:ss');_0x3595d0[_0x40d2('0x4e')]={};}return _0x3595d0;};}exports[_0x40d2('0x50')]=function(_0x43c686,_0x7389da,_0x41bb71){var _0x97c671=[];return db['User'][_0x40d2('0x43')]({'where':{'role':[_0x40d2('0x51'),_0x40d2('0x52'),_0x40d2('0x53')]},'attributes':['id','fullname',_0x40d2('0x2b'),_0x40d2('0x54'),_0x40d2('0x55'),_0x40d2('0x56'),_0x40d2('0x57'),_0x40d2('0x58'),_0x40d2('0x59'),'showWebBar'],'order':qs[_0x40d2('0x3d')](_0x40d2('0x5a')),'include':[{'model':db[_0x40d2('0x5b')],'as':_0x40d2('0x5c'),'attributes':['id','name',_0x40d2('0x31')],'through':{'attributes':[]}}]})[_0x40d2('0x27')](function(_0x4ae5e0){if(_0x4ae5e0){var _0x3c5843=_0x43c686[_0x40d2('0x53')][_0x40d2('0x4c')]({'plain':!![]});if(!_0x3c5843)throw new Error(_0x40d2('0x5d'));if(_0x3c5843[_0x40d2('0x54')]===_0x40d2('0x53')){return db[_0x40d2('0x5e')][_0x40d2('0x47')]({'where':{'name':_0x40d2('0x5f'),'userProfileId':_0x3c5843[_0x40d2('0x60')]},'raw':!![]})[_0x40d2('0x27')](function(_0x57b232){if(_0x57b232){if(_0x57b232[_0x40d2('0x61')]===0x0){return db[_0x40d2('0x62')][_0x40d2('0x43')]({'where':{'sectionId':_0x57b232['id']},'raw':!![]})[_0x40d2('0x27')](function(_0x57c029){var _0xb70582=[];if(_['isEmpty'](_0x57c029)){_0xb70582=_['filter'](_0x4ae5e0,function(_0x3e3fc1){if(_0x3e3fc1[_0x40d2('0x54')]!=='agent'){return _0x3e3fc1;}});return _0xb70582;}else{for(var _0x3711f2=0x0;_0x3711f2<_0x4ae5e0[_0x40d2('0x39')];_0x3711f2++){var _0x186e07=_0x4ae5e0[_0x3711f2];if(_0x186e07[_0x40d2('0x54')]===_0x40d2('0x51')){var _0x3c20c9=_['find'](_0x57c029,function(_0x4e3099){return _0x4e3099[_0x40d2('0x63')]===_0x186e07['id'];});if(_0x3c20c9)_0xb70582[_0x40d2('0x64')](_0x186e07);}else{_0xb70582['push'](_0x186e07);}}return _0xb70582;}});}else{return _0x4ae5e0;}}else{var _0x1fee39=_[_0x40d2('0x65')](_0x4ae5e0,function(_0x12d77f){if(_0x12d77f[_0x40d2('0x54')]!=='agent'){return _0x12d77f;}});return _0x1fee39;}});}else{return _0x4ae5e0;}}})[_0x40d2('0x27')](function(_0x171db1){var _0x11f5e1=[];if(_0x171db1){_0x97c671=_0x171db1;for(var _0x41d03f=0x0;_0x41d03f<_0x171db1[_0x40d2('0x39')];_0x41d03f+=0x1){_0x97c671[_0x41d03f][_0x40d2('0x66')]=[];_0x11f5e1[_0x40d2('0x64')](db[_0x40d2('0x2f')][_0x40d2('0x47')]({'where':{'FromId':[_0x43c686[_0x40d2('0x53')]['id'],_0x171db1[_0x41d03f]['id']],'ToId':[_0x43c686[_0x40d2('0x53')]['id'],_0x171db1[_0x41d03f]['id']],'ChatGroupId':null},'attributes':['id',_0x40d2('0x4d'),_0x40d2('0x67'),'ToId',_0x40d2('0x68'),_0x40d2('0x4a')],'order':qs[_0x40d2('0x3d')](_0x40d2('0x69')),'limit':0x1,'offset':0x0,'raw':!![]})[_0x40d2('0x27')](wrapUser(_0x171db1[_0x41d03f])));}return BPromise[_0x40d2('0x6a')](_0x11f5e1);}return[];})[_0x40d2('0x27')](function(_0x4ac909){return{'rows':_0x4ac909,'count':_0x4ac909['length']};})[_0x40d2('0x27')](respondWithResult(_0x7389da,null))['catch'](handleError(_0x7389da,null));};
\ No newline at end of file
+var _0x0bf9=['push','read','all','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','redis','register','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','end','error','stack','name','send','index','map','ChatInternalMessage','rawAttributes','model','keys','query','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','pick','filters','filter','where','type','VIRTUAL','merge','includeAll','findAll','show','params','include','options','find','catch','create','body','describe','messages','lastMessageAt','createdAt','lastMessage','format','YYYY-MM-DD\x20HH:mm:ss','getUsers','agent','admin','user','fullname','userpic','internal','online','lastLoginAt','showWebBar','-online','VoiceQueue','VoiceQueues','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','Agents','userProfileId','autoAssociation','UserProfileResource','isEmpty','resourceId'];(function(_0x4e902c,_0x259800){var _0x42dc51=function(_0x394027){while(--_0x394027){_0x4e902c['push'](_0x4e902c['shift']());}};_0x42dc51(++_0x259800);}(_0x0bf9,0x1cb));var _0x90bf=function(_0x3eb9d9,_0x1c5484){_0x3eb9d9=_0x3eb9d9-0x0;var _0x2e83d1=_0x0bf9[_0x3eb9d9];return _0x2e83d1;};'use strict';var emlformat=require(_0x90bf('0x0'));var rimraf=require(_0x90bf('0x1'));var zipdir=require(_0x90bf('0x2'));var jsonpatch=require(_0x90bf('0x3'));var rp=require(_0x90bf('0x4'));var moment=require(_0x90bf('0x5'));var BPromise=require(_0x90bf('0x6'));var Mustache=require(_0x90bf('0x7'));var util=require(_0x90bf('0x8'));var path=require(_0x90bf('0x9'));var sox=require(_0x90bf('0xa'));var csv=require(_0x90bf('0xb'));var ejs=require(_0x90bf('0xc'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x90bf('0xd'));var squel=require(_0x90bf('0xe'));var crypto=require(_0x90bf('0xf'));var jsforce=require('jsforce');var deskjs=require(_0x90bf('0x10'));var toCsv=require(_0x90bf('0xb'));var querystring=require(_0x90bf('0x11'));var Papa=require(_0x90bf('0x12'));var Redis=require(_0x90bf('0x13'));var authService=require(_0x90bf('0x14'));var qs=require(_0x90bf('0x15'));var as=require(_0x90bf('0x16'));var hardwareService=require(_0x90bf('0x17'));var logger=require('../../config/logger')(_0x90bf('0x18'));var utils=require(_0x90bf('0x19'));var config=require(_0x90bf('0x1a'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];config[_0x90bf('0x1b')]=_['defaults'](config[_0x90bf('0x1b')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x90bf('0x1b')]));require('./chatInternalMessage.socket')[_0x90bf('0x1c')](socket);function respondWithStatusCode(_0xdd1a2f,_0x179777){_0x179777=_0x179777||0xcc;return function(_0xc42ce1){if(_0xc42ce1){return _0xdd1a2f[_0x90bf('0x1d')](_0x179777);}return _0xdd1a2f[_0x90bf('0x1e')](_0x179777)['end']();};}function respondWithResult(_0x2abd1b,_0x565f72){_0x565f72=_0x565f72||0xc8;return function(_0x4403e0){if(_0x4403e0){return _0x2abd1b[_0x90bf('0x1e')](_0x565f72)[_0x90bf('0x1f')](_0x4403e0);}};}function respondWithFilteredResult(_0x497cdd,_0x158808){return function(_0x5e3aee){if(_0x5e3aee){var _0x519b25=typeof _0x158808[_0x90bf('0x20')]===_0x90bf('0x21')&&typeof _0x158808[_0x90bf('0x22')]===_0x90bf('0x21');var _0x414915=_0x5e3aee[_0x90bf('0x23')];var _0x328565=_0x519b25?0x0:_0x158808[_0x90bf('0x20')];var _0x51e09b=_0x519b25?_0x5e3aee['count']:_0x158808[_0x90bf('0x20')]+_0x158808[_0x90bf('0x22')];var _0x458d3f;if(_0x51e09b>=_0x414915){_0x51e09b=_0x414915;_0x458d3f=0xc8;}else{_0x458d3f=0xce;}_0x497cdd[_0x90bf('0x1e')](_0x458d3f);return _0x497cdd[_0x90bf('0x24')](_0x90bf('0x25'),_0x328565+'-'+_0x51e09b+'/'+_0x414915)[_0x90bf('0x1f')](_0x5e3aee);}return null;};}function patchUpdates(_0x30aa61){return function(_0x577545){try{jsonpatch[_0x90bf('0x26')](_0x577545,_0x30aa61,!![]);}catch(_0x4a39d1){return BPromise[_0x90bf('0x27')](_0x4a39d1);}return _0x577545[_0x90bf('0x28')]();};}function saveUpdates(_0xc39623,_0x39446d){return function(_0x22e23d){if(_0x22e23d){return _0x22e23d[_0x90bf('0x29')](_0xc39623)[_0x90bf('0x2a')](function(_0x2e63b5){return _0x2e63b5;});}return null;};}function removeEntity(_0x547f64,_0x2864f8){return function(_0x26e585){if(_0x26e585){return _0x26e585[_0x90bf('0x2b')]()[_0x90bf('0x2a')](function(){_0x547f64[_0x90bf('0x1e')](0xcc)[_0x90bf('0x2c')]();});}};}function handleEntityNotFound(_0x21623e,_0x2d9d6d){return function(_0x4430b8){if(!_0x4430b8){_0x21623e[_0x90bf('0x1d')](0x194);}return _0x4430b8;};}function handleError(_0x3136ff,_0x343853){_0x343853=_0x343853||0x1f4;return function(_0x56ac64){logger[_0x90bf('0x2d')](_0x56ac64[_0x90bf('0x2e')]);if(_0x56ac64['name']){delete _0x56ac64[_0x90bf('0x2f')];}_0x3136ff['status'](_0x343853)[_0x90bf('0x30')](_0x56ac64);};}exports[_0x90bf('0x31')]=function(_0x2073d0,_0x5e1a6f){var _0x12d90f={},_0x2e0ed1={},_0xe5eba6={'count':0x0,'rows':[]};var _0x2c0e44=_[_0x90bf('0x32')](db[_0x90bf('0x33')][_0x90bf('0x34')],function(_0x571fce){return{'name':_0x571fce['fieldName'],'type':_0x571fce['type']['key']};});_0x2e0ed1[_0x90bf('0x35')]=_[_0x90bf('0x32')](_0x2c0e44,_0x90bf('0x2f'));_0x2e0ed1['query']=_[_0x90bf('0x36')](_0x2073d0[_0x90bf('0x37')]);_0x2e0ed1['filters']=_[_0x90bf('0x38')](_0x2e0ed1[_0x90bf('0x35')],_0x2e0ed1[_0x90bf('0x37')]);_0x12d90f['attributes']=_[_0x90bf('0x38')](_0x2e0ed1['model'],qs[_0x90bf('0x39')](_0x2073d0[_0x90bf('0x37')][_0x90bf('0x39')]));_0x12d90f[_0x90bf('0x3a')]=_0x12d90f[_0x90bf('0x3a')][_0x90bf('0x3b')]?_0x12d90f[_0x90bf('0x3a')]:_0x2e0ed1['model'];if(!_0x2073d0['query'][_0x90bf('0x3c')](_0x90bf('0x3d'))){_0x12d90f[_0x90bf('0x22')]=qs[_0x90bf('0x22')](_0x2073d0[_0x90bf('0x37')][_0x90bf('0x22')]);_0x12d90f[_0x90bf('0x20')]=qs[_0x90bf('0x20')](_0x2073d0[_0x90bf('0x37')][_0x90bf('0x20')]);}_0x12d90f[_0x90bf('0x3e')]=qs['sort'](_0x2073d0['query'][_0x90bf('0x3f')]);_0x12d90f['where']=qs['filters'](_[_0x90bf('0x40')](_0x2073d0[_0x90bf('0x37')],_0x2e0ed1[_0x90bf('0x41')]),_0x2c0e44);if(_0x2073d0[_0x90bf('0x37')][_0x90bf('0x42')]){_0x12d90f['where']=_['merge'](_0x12d90f[_0x90bf('0x43')],{'$or':_[_0x90bf('0x32')](_0x2c0e44,function(_0x2fc344){if(_0x2fc344[_0x90bf('0x44')]!==_0x90bf('0x45')){var _0xeedd7f={};_0xeedd7f[_0x2fc344[_0x90bf('0x2f')]]={'$like':'%'+_0x2073d0['query'][_0x90bf('0x42')]+'%'};return _0xeedd7f;}})});}_0x12d90f=_[_0x90bf('0x46')]({},_0x12d90f,_0x2073d0['options']);var _0xd66a22={'where':_0x12d90f['where']};return db[_0x90bf('0x33')][_0x90bf('0x23')](_0xd66a22)[_0x90bf('0x2a')](function(_0x537cad){_0xe5eba6[_0x90bf('0x23')]=_0x537cad;if(_0x2073d0[_0x90bf('0x37')][_0x90bf('0x47')]){_0x12d90f['include']=[{'all':!![]}];}return db[_0x90bf('0x33')][_0x90bf('0x48')](_0x12d90f);})[_0x90bf('0x2a')](function(_0x1f9ebb){_0xe5eba6['rows']=_0x1f9ebb;return _0xe5eba6;})['then'](respondWithFilteredResult(_0x5e1a6f,_0x12d90f))['catch'](handleError(_0x5e1a6f,null));};exports[_0x90bf('0x49')]=function(_0x41091d,_0xc146eb){var _0x3c5922={'raw':!![],'where':{'id':_0x41091d[_0x90bf('0x4a')]['id']}},_0xd92b52={};_0xd92b52[_0x90bf('0x35')]=_[_0x90bf('0x36')](db[_0x90bf('0x33')][_0x90bf('0x34')]);_0xd92b52[_0x90bf('0x37')]=_['keys'](_0x41091d[_0x90bf('0x37')]);_0xd92b52[_0x90bf('0x41')]=_[_0x90bf('0x38')](_0xd92b52[_0x90bf('0x35')],_0xd92b52[_0x90bf('0x37')]);_0x3c5922[_0x90bf('0x3a')]=_['intersection'](_0xd92b52[_0x90bf('0x35')],qs[_0x90bf('0x39')](_0x41091d[_0x90bf('0x37')][_0x90bf('0x39')]));_0x3c5922[_0x90bf('0x3a')]=_0x3c5922[_0x90bf('0x3a')][_0x90bf('0x3b')]?_0x3c5922[_0x90bf('0x3a')]:_0xd92b52['model'];if(_0x41091d['query'][_0x90bf('0x47')]){_0x3c5922[_0x90bf('0x4b')]=[{'all':!![]}];}_0x3c5922=_[_0x90bf('0x46')]({},_0x3c5922,_0x41091d[_0x90bf('0x4c')]);return db[_0x90bf('0x33')][_0x90bf('0x4d')](_0x3c5922)['then'](handleEntityNotFound(_0xc146eb,null))[_0x90bf('0x2a')](respondWithResult(_0xc146eb,null))[_0x90bf('0x4e')](handleError(_0xc146eb,null));};exports[_0x90bf('0x4f')]=function(_0x507785,_0x3730a5){return db['ChatInternalMessage'][_0x90bf('0x4f')](_0x507785[_0x90bf('0x50')],{})[_0x90bf('0x2a')](respondWithResult(_0x3730a5,0xc9))[_0x90bf('0x4e')](handleError(_0x3730a5,null));};exports[_0x90bf('0x29')]=function(_0x208d14,_0x3b86ee){if(_0x208d14[_0x90bf('0x50')]['id']){delete _0x208d14[_0x90bf('0x50')]['id'];}return db[_0x90bf('0x33')][_0x90bf('0x4d')]({'where':{'id':_0x208d14[_0x90bf('0x4a')]['id']}})[_0x90bf('0x2a')](handleEntityNotFound(_0x3b86ee,null))[_0x90bf('0x2a')](saveUpdates(_0x208d14['body'],null))[_0x90bf('0x2a')](respondWithResult(_0x3b86ee,null))[_0x90bf('0x4e')](handleError(_0x3b86ee,null));};exports[_0x90bf('0x2b')]=function(_0x21a34d,_0x355f98){return db[_0x90bf('0x33')][_0x90bf('0x4d')]({'where':{'id':_0x21a34d[_0x90bf('0x4a')]['id']}})['then'](handleEntityNotFound(_0x355f98,null))[_0x90bf('0x2a')](removeEntity(_0x355f98,null))[_0x90bf('0x4e')](handleError(_0x355f98,null));};exports[_0x90bf('0x51')]=function(_0x760adc,_0x392bdf){return db[_0x90bf('0x33')]['describe']()[_0x90bf('0x2a')](respondWithResult(_0x392bdf,null))['catch'](handleError(_0x392bdf,null));};function wrapUser(_0x32e31b){return function(_0x80a957){var _0x545032=_0x32e31b['get']({'plain':!![]});_0x545032[_0x90bf('0x52')]=[];if(_0x80a957){_0x545032[_0x90bf('0x53')]=_0x80a957[_0x90bf('0x54')];_0x545032[_0x90bf('0x55')]=_0x80a957;}else{_0x545032[_0x90bf('0x53')]=moment(0x0)[_0x90bf('0x56')](_0x90bf('0x57'));_0x545032[_0x90bf('0x55')]={};}return _0x545032;};}exports[_0x90bf('0x58')]=function(_0x37f292,_0x4f7689,_0xe47e20){var _0x23fb5f=[];return db['User']['findAll']({'where':{'role':[_0x90bf('0x59'),_0x90bf('0x5a'),_0x90bf('0x5b')]},'attributes':['id',_0x90bf('0x5c'),_0x90bf('0x2f'),'role',_0x90bf('0x5d'),_0x90bf('0x5e'),_0x90bf('0x5f'),_0x90bf('0x60'),'allowmessenger',_0x90bf('0x61')],'order':qs[_0x90bf('0x3f')](_0x90bf('0x62')),'include':[{'model':db[_0x90bf('0x63')],'as':_0x90bf('0x64'),'attributes':['id',_0x90bf('0x2f'),_0x90bf('0x44')],'through':{'attributes':[]}}]})[_0x90bf('0x2a')](function(_0x13128c){if(_0x13128c){var _0x2aa9e8=_0x37f292[_0x90bf('0x5b')][_0x90bf('0x65')]({'plain':!![]});if(!_0x2aa9e8)throw new Error(_0x90bf('0x66'));if(_0x2aa9e8[_0x90bf('0x67')]===_0x90bf('0x5b')){return db[_0x90bf('0x68')][_0x90bf('0x4d')]({'where':{'name':_0x90bf('0x69'),'userProfileId':_0x2aa9e8[_0x90bf('0x6a')]},'raw':!![]})['then'](function(_0x49338f){if(_0x49338f){if(_0x49338f[_0x90bf('0x6b')]===0x0){return db[_0x90bf('0x6c')][_0x90bf('0x48')]({'where':{'sectionId':_0x49338f['id']},'raw':!![]})['then'](function(_0x26baeb){var _0x58e7f6=[];if(_[_0x90bf('0x6d')](_0x26baeb)){_0x58e7f6=_[_0x90bf('0x42')](_0x13128c,function(_0x3b7f4e){if(_0x3b7f4e[_0x90bf('0x67')]!=='agent'){return _0x3b7f4e;}});return _0x58e7f6;}else{for(var _0x5b0be0=0x0;_0x5b0be0<_0x13128c['length'];_0x5b0be0++){var _0x2d8f28=_0x13128c[_0x5b0be0];if(_0x2d8f28['role']===_0x90bf('0x59')){var _0x22142b=_[_0x90bf('0x4d')](_0x26baeb,function(_0xcf1439){return _0xcf1439[_0x90bf('0x6e')]===_0x2d8f28['id'];});if(_0x22142b)_0x58e7f6[_0x90bf('0x6f')](_0x2d8f28);}else{_0x58e7f6[_0x90bf('0x6f')](_0x2d8f28);}}return _0x58e7f6;}});}else{return _0x13128c;}}else{var _0x1c3195=_[_0x90bf('0x42')](_0x13128c,function(_0x18cb92){if(_0x18cb92[_0x90bf('0x67')]!==_0x90bf('0x59')){return _0x18cb92;}});return _0x1c3195;}});}else{return _0x13128c;}}})['then'](function(_0x2f5cd6){var _0x4a2339=[];if(_0x2f5cd6){_0x23fb5f=_0x2f5cd6;for(var _0x306974=0x0;_0x306974<_0x2f5cd6[_0x90bf('0x3b')];_0x306974+=0x1){_0x23fb5f[_0x306974][_0x90bf('0x52')]=[];_0x4a2339[_0x90bf('0x6f')](db[_0x90bf('0x33')][_0x90bf('0x4d')]({'where':{'FromId':[_0x37f292[_0x90bf('0x5b')]['id'],_0x2f5cd6[_0x306974]['id']],'ToId':[_0x37f292['user']['id'],_0x2f5cd6[_0x306974]['id']],'ChatGroupId':null},'attributes':['id',_0x90bf('0x54'),'FromId','ToId',_0x90bf('0x70'),_0x90bf('0x50')],'order':qs[_0x90bf('0x3f')]('-createdAt'),'limit':0x1,'offset':0x0,'raw':!![]})[_0x90bf('0x2a')](wrapUser(_0x2f5cd6[_0x306974])));}return BPromise[_0x90bf('0x71')](_0x4a2339);}return[];})[_0x90bf('0x2a')](function(_0x58d315){return{'rows':_0x58d315,'count':_0x58d315[_0x90bf('0x3b')]};})[_0x90bf('0x2a')](respondWithResult(_0x4f7689,null))[_0x90bf('0x4e')](handleError(_0x4f7689,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x030a=['emit','hook','exports','events','../../mysqldb','ChatInternalMessage','save','update','remove'];(function(_0x414743,_0x2e6d87){var _0x39d57d=function(_0xb932fa){while(--_0xb932fa){_0x414743['push'](_0x414743['shift']());}};_0x39d57d(++_0x2e6d87);}(_0x030a,0xdb));var _0xa030=function(_0x1c206c,_0x30bdcf){_0x1c206c=_0x1c206c-0x0;var _0x188aaa=_0x030a[_0x1c206c];return _0x188aaa;};'use strict';var EventEmitter=require(_0xa030('0x0'));var ChatInternalMessage=require(_0xa030('0x1'))['db'][_0xa030('0x2')];var ChatInternalMessageEvents=new EventEmitter();ChatInternalMessageEvents['setMaxListeners'](0x0);var events={'afterCreate':_0xa030('0x3'),'afterUpdate':_0xa030('0x4'),'afterDestroy':_0xa030('0x5')};function emitEvent(_0x8712e9){return function(_0x243cef,_0x25162e,_0x504386){ChatInternalMessageEvents[_0xa030('0x6')](_0x8712e9+':'+_0x243cef['id'],_0x243cef);ChatInternalMessageEvents[_0xa030('0x6')](_0x8712e9,_0x243cef);_0x504386(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];ChatInternalMessage[_0xa030('0x7')](e,emitEvent(event));}}module[_0xa030('0x8')]=ChatInternalMessageEvents;
\ No newline at end of file
+var _0x72a1=['../../mysqldb','setMaxListeners','update','remove','emit','hasOwnProperty','exports'];(function(_0xce783e,_0x123455){var _0x2d798e=function(_0xdfd3f9){while(--_0xdfd3f9){_0xce783e['push'](_0xce783e['shift']());}};_0x2d798e(++_0x123455);}(_0x72a1,0x1ce));var _0x172a=function(_0xfff265,_0x41f693){_0xfff265=_0xfff265-0x0;var _0x55442d=_0x72a1[_0xfff265];return _0x55442d;};'use strict';var EventEmitter=require('events');var ChatInternalMessage=require(_0x172a('0x0'))['db']['ChatInternalMessage'];var ChatInternalMessageEvents=new EventEmitter();ChatInternalMessageEvents[_0x172a('0x1')](0x0);var events={'afterCreate':'save','afterUpdate':_0x172a('0x2'),'afterDestroy':_0x172a('0x3')};function emitEvent(_0x123500){return function(_0x5bb037,_0x3598a9,_0x556535){ChatInternalMessageEvents[_0x172a('0x4')](_0x123500+':'+_0x5bb037['id'],_0x5bb037);ChatInternalMessageEvents['emit'](_0x123500,_0x5bb037);_0x556535(null);};}for(var e in events){if(events[_0x172a('0x5')](e)){var event=events[e];ChatInternalMessage['hook'](e,emitEvent(event));}}module[_0x172a('0x6')]=ChatInternalMessageEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x521d=['ChatInternalMessage','utf8mb4','lodash','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','./chatInternalMessage.attributes','define'];(function(_0x364bf5,_0x9f144e){var _0x58f413=function(_0x1fea98){while(--_0x1fea98){_0x364bf5['push'](_0x364bf5['shift']());}};_0x58f413(++_0x9f144e);}(_0x521d,0x12e));var _0xd521=function(_0xd4c75a,_0x3b6e6e){_0xd4c75a=_0xd4c75a-0x0;var _0xc6926a=_0x521d[_0xd4c75a];return _0xc6926a;};'use strict';var _=require(_0xd521('0x0'));var util=require('util');var logger=require(_0xd521('0x1'))(_0xd521('0x2'));var moment=require(_0xd521('0x3'));var BPromise=require(_0xd521('0x4'));var rp=require(_0xd521('0x5'));var fs=require('fs');var path=require(_0xd521('0x6'));var rimraf=require(_0xd521('0x7'));var config=require('../../config/environment');var attributes=require(_0xd521('0x8'));module['exports']=function(_0x2ce6d1,_0x4e9fb8){return _0x2ce6d1[_0xd521('0x9')](_0xd521('0xa'),attributes,{'tableName':'chat_internal_messages','paranoid':![],'indexes':[],'timestamps':!![],'charset':_0xd521('0xb'),'collate':'utf8mb4_unicode_ci'});};
\ No newline at end of file
+var _0xadeb=['./chatInternalMessage.attributes','define','chat_internal_messages','utf8mb4','utf8mb4_unicode_ci','lodash','util','../../config/logger','api','bluebird','request-promise','rimraf','../../config/environment'];(function(_0x44ac5f,_0xbfa9f8){var _0x4624be=function(_0x377a3e){while(--_0x377a3e){_0x44ac5f['push'](_0x44ac5f['shift']());}};_0x4624be(++_0xbfa9f8);}(_0xadeb,0x14a));var _0xbade=function(_0x36613d,_0x802aeb){_0x36613d=_0x36613d-0x0;var _0x1c06fd=_0xadeb[_0x36613d];return _0x1c06fd;};'use strict';var _=require(_0xbade('0x0'));var util=require(_0xbade('0x1'));var logger=require(_0xbade('0x2'))(_0xbade('0x3'));var moment=require('moment');var BPromise=require(_0xbade('0x4'));var rp=require(_0xbade('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0xbade('0x6'));var config=require(_0xbade('0x7'));var attributes=require(_0xbade('0x8'));module['exports']=function(_0x3d601b,_0x5e8050){return _0x3d601b[_0xbade('0x9')]('ChatInternalMessage',attributes,{'tableName':_0xbade('0xa'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0xbade('0xb'),'collate':_0xbade('0xc')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5693=['ChatInternalMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','ChatInternalMessage,\x20%s,\x20%s','message','result','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','jayson/promise','client','redis','defaults','localhost','socket.io-emitter','./chatInternalMessage.socket','register','then','info','request\x20sent','debug'];(function(_0x4ea712,_0x261e02){var _0x159e1d=function(_0x44f723){while(--_0x44f723){_0x4ea712['push'](_0x4ea712['shift']());}};_0x159e1d(++_0x261e02);}(_0x5693,0x1d2));var _0x3569=function(_0x39c9fc,_0x267494){_0x39c9fc=_0x39c9fc-0x0;var _0x425ea4=_0x5693[_0x39c9fc];return _0x425ea4;};'use strict';var _=require(_0x3569('0x0'));var util=require(_0x3569('0x1'));var moment=require(_0x3569('0x2'));var BPromise=require('bluebird');var rs=require(_0x3569('0x3'));var fs=require('fs');var Redis=require(_0x3569('0x4'));var db=require(_0x3569('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0x3569('0x6'))(_0x3569('0x7'));var config=require('../../config/environment');var jayson=require(_0x3569('0x8'));var client=jayson[_0x3569('0x9')]['http']({'port':0x232a});config[_0x3569('0xa')]=_[_0x3569('0xb')](config[_0x3569('0xa')],{'host':_0x3569('0xc'),'port':0x18eb});var socket=require(_0x3569('0xd'))(new Redis(config[_0x3569('0xa')]));require(_0x3569('0xe'))[_0x3569('0xf')](socket);function respondWithRpcPromise(_0x32668a,_0x1fc954,_0x373bc9){return new BPromise(function(_0x20dd7c,_0x391588){return client['request'](_0x32668a,_0x373bc9)[_0x3569('0x10')](function(_0x5a2cff){logger[_0x3569('0x11')]('ChatInternalMessage,\x20%s,\x20%s',_0x1fc954,_0x3569('0x12'));logger[_0x3569('0x13')](_0x3569('0x14'),_0x1fc954,_0x3569('0x12'),JSON[_0x3569('0x15')](_0x5a2cff));if(_0x5a2cff[_0x3569('0x16')]){if(_0x5a2cff[_0x3569('0x16')][_0x3569('0x17')]===0x1f4){logger[_0x3569('0x16')](_0x3569('0x18'),_0x1fc954,_0x5a2cff[_0x3569('0x16')][_0x3569('0x19')]);return _0x391588(_0x5a2cff['error'][_0x3569('0x19')]);}logger[_0x3569('0x16')](_0x3569('0x18'),_0x1fc954,_0x5a2cff[_0x3569('0x16')][_0x3569('0x19')]);return _0x20dd7c(_0x5a2cff['error'][_0x3569('0x19')]);}else{logger[_0x3569('0x11')]('ChatInternalMessage,\x20%s,\x20%s',_0x1fc954,_0x3569('0x12'));_0x20dd7c(_0x5a2cff[_0x3569('0x1a')][_0x3569('0x19')]);}})['catch'](function(_0x21c182){logger[_0x3569('0x16')]('ChatInternalMessage,\x20%s,\x20%s',_0x1fc954,_0x21c182);_0x391588(_0x21c182);});});}
\ No newline at end of file
+var _0x415a=['info','request\x20sent','result','catch','util','moment','bluebird','randomstring','ioredis','../../config/logger','rpc','../../config/environment','client','http','redis','localhost','./chatInternalMessage.socket','register','request','then','ChatInternalMessage,\x20%s,\x20%s','debug','stringify','error','message'];(function(_0x3ecc74,_0x4db294){var _0xf9ad91=function(_0x7d3f6b){while(--_0x7d3f6b){_0x3ecc74['push'](_0x3ecc74['shift']());}};_0xf9ad91(++_0x4db294);}(_0x415a,0x1df));var _0xa415=function(_0x5c75af,_0x89653b){_0x5c75af=_0x5c75af-0x0;var _0x1e2052=_0x415a[_0x5c75af];return _0x1e2052;};'use strict';var _=require('lodash');var util=require(_0xa415('0x0'));var moment=require(_0xa415('0x1'));var BPromise=require(_0xa415('0x2'));var rs=require(_0xa415('0x3'));var fs=require('fs');var Redis=require(_0xa415('0x4'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0xa415('0x5'))(_0xa415('0x6'));var config=require(_0xa415('0x7'));var jayson=require('jayson/promise');var client=jayson[_0xa415('0x8')][_0xa415('0x9')]({'port':0x232a});config[_0xa415('0xa')]=_['defaults'](config[_0xa415('0xa')],{'host':_0xa415('0xb'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0xa415('0xc'))[_0xa415('0xd')](socket);function respondWithRpcPromise(_0x18bb37,_0x477f73,_0x402ed3){return new BPromise(function(_0x558e45,_0x67852f){return client[_0xa415('0xe')](_0x18bb37,_0x402ed3)[_0xa415('0xf')](function(_0x1006fe){logger['info'](_0xa415('0x10'),_0x477f73,'request\x20sent');logger[_0xa415('0x11')]('ChatInternalMessage,\x20%s,\x20%s,\x20%s',_0x477f73,'request\x20sent',JSON[_0xa415('0x12')](_0x1006fe));if(_0x1006fe[_0xa415('0x13')]){if(_0x1006fe[_0xa415('0x13')]['code']===0x1f4){logger['error'](_0xa415('0x10'),_0x477f73,_0x1006fe['error'][_0xa415('0x14')]);return _0x67852f(_0x1006fe[_0xa415('0x13')]['message']);}logger[_0xa415('0x13')]('ChatInternalMessage,\x20%s,\x20%s',_0x477f73,_0x1006fe['error'][_0xa415('0x14')]);return _0x558e45(_0x1006fe[_0xa415('0x13')][_0xa415('0x14')]);}else{logger[_0xa415('0x15')](_0xa415('0x10'),_0x477f73,_0xa415('0x16'));_0x558e45(_0x1006fe[_0xa415('0x17')][_0xa415('0x14')]);}})[_0xa415('0x18')](function(_0x2e812d){logger[_0xa415('0x13')]('ChatInternalMessage,\x20%s,\x20%s',_0x477f73,_0x2e812d);_0x67852f(_0x2e812d);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x03fc=['chatInternalMessage:','save','remove','update','emit','removeListener','register'];(function(_0x1b4b23,_0x5dd6d6){var _0x2a325b=function(_0x175462){while(--_0x175462){_0x1b4b23['push'](_0x1b4b23['shift']());}};_0x2a325b(++_0x5dd6d6);}(_0x03fc,0x86));var _0xc03f=function(_0x552203,_0x530526){_0x552203=_0x552203-0x0;var _0x3dab1e=_0x03fc[_0x552203];return _0x3dab1e;};'use strict';var ChatInternalMessageEvents=require('./chatInternalMessage.events');var events=[_0xc03f('0x0'),_0xc03f('0x1'),_0xc03f('0x2')];function createListener(_0x115dc6,_0x271a15){return function(_0x147af0){_0x271a15[_0xc03f('0x3')](_0x115dc6,_0x147af0);};}function removeListener(_0xedf3e9,_0x2845cc){return function(){ChatInternalMessageEvents[_0xc03f('0x4')](_0xedf3e9,_0x2845cc);};}exports[_0xc03f('0x5')]=function(_0x558cb9){for(var _0x25e91a=0x0,_0x1ed063=events['length'];_0x25e91a<_0x1ed063;_0x25e91a++){var _0x39e9b7=events[_0x25e91a];var _0x2975d3=createListener(_0xc03f('0x6')+_0x39e9b7,_0x558cb9);ChatInternalMessageEvents['on'](_0x39e9b7,_0x2975d3);}};
\ No newline at end of file
+var _0x1c69=['length','save','update','emit','removeListener','register'];(function(_0x21c14a,_0xf9e665){var _0x57f3d9=function(_0x5ce5bf){while(--_0x5ce5bf){_0x21c14a['push'](_0x21c14a['shift']());}};_0x57f3d9(++_0xf9e665);}(_0x1c69,0x8b));var _0x91c6=function(_0x19950b,_0x53d0d7){_0x19950b=_0x19950b-0x0;var _0x3c6b41=_0x1c69[_0x19950b];return _0x3c6b41;};'use strict';var ChatInternalMessageEvents=require('./chatInternalMessage.events');var events=[_0x91c6('0x0'),'remove',_0x91c6('0x1')];function createListener(_0x5dcefe,_0x37faeb){return function(_0x14a2e5){_0x37faeb[_0x91c6('0x2')](_0x5dcefe,_0x14a2e5);};}function removeListener(_0x5328a6,_0x4d41fe){return function(){ChatInternalMessageEvents[_0x91c6('0x3')](_0x5328a6,_0x4d41fe);};}exports[_0x91c6('0x4')]=function(_0x54f1b6){for(var _0x84be58=0x0,_0x250b37=events[_0x91c6('0x5')];_0x84be58<_0x250b37;_0x84be58++){var _0x5263ea=events[_0x84be58];var _0x271547=createListener('chatInternalMessage:'+_0x5263ea,_0x54f1b6);ChatInternalMessageEvents['on'](_0x5263ea,_0x271547);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x80d9=['path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../config/environment','./chatInternalMessage.controller','get','isAuthenticated','index','describe','/users','/:id','show','post','create','update','delete','destroy','exports','multer','util'];(function(_0x3451d7,_0x20d83a){var _0x1575b4=function(_0x57f42c){while(--_0x57f42c){_0x3451d7['push'](_0x3451d7['shift']());}};_0x1575b4(++_0x20d83a);}(_0x80d9,0xb6));var _0x980d=function(_0xa13fdb,_0x22bd20){_0xa13fdb=_0xa13fdb-0x0;var _0x32758b=_0x80d9[_0xa13fdb];return _0x32758b;};'use strict';var multer=require(_0x980d('0x0'));var util=require(_0x980d('0x1'));var path=require(_0x980d('0x2'));var timeout=require(_0x980d('0x3'));var express=require(_0x980d('0x4'));var router=express[_0x980d('0x5')]();var fs_extra=require(_0x980d('0x6'));var auth=require(_0x980d('0x7'));var interaction=require('../../components/interaction/service');var config=require(_0x980d('0x8'));var controller=require(_0x980d('0x9'));router[_0x980d('0xa')]('/',auth[_0x980d('0xb')](),controller[_0x980d('0xc')]);router[_0x980d('0xa')]('/describe',auth[_0x980d('0xb')](),controller[_0x980d('0xd')]);router[_0x980d('0xa')](_0x980d('0xe'),auth[_0x980d('0xb')](),controller['getUsers']);router[_0x980d('0xa')](_0x980d('0xf'),auth[_0x980d('0xb')](),controller[_0x980d('0x10')]);router[_0x980d('0x11')]('/',auth[_0x980d('0xb')](),controller[_0x980d('0x12')]);router['put'](_0x980d('0xf'),controller[_0x980d('0x13')]);router[_0x980d('0x14')]('/:id',auth[_0x980d('0xb')](),controller[_0x980d('0x15')]);module[_0x980d('0x16')]=router;
\ No newline at end of file
+var _0xbc68=['/:id','show','post','put','update','delete','destroy','exports','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','isAuthenticated','get','/describe','describe','getUsers'];(function(_0x1501ed,_0x12ef91){var _0x503cdc=function(_0x412604){while(--_0x412604){_0x1501ed['push'](_0x1501ed['shift']());}};_0x503cdc(++_0x12ef91);}(_0xbc68,0x1ac));var _0x8bc6=function(_0x573b17,_0x18b1c0){_0x573b17=_0x573b17-0x0;var _0x347fcf=_0xbc68[_0x573b17];return _0x347fcf;};'use strict';var multer=require('multer');var util=require(_0x8bc6('0x0'));var path=require(_0x8bc6('0x1'));var timeout=require(_0x8bc6('0x2'));var express=require(_0x8bc6('0x3'));var router=express[_0x8bc6('0x4')]();var fs_extra=require(_0x8bc6('0x5'));var auth=require(_0x8bc6('0x6'));var interaction=require(_0x8bc6('0x7'));var config=require('../../config/environment');var controller=require('./chatInternalMessage.controller');router['get']('/',auth[_0x8bc6('0x8')](),controller['index']);router[_0x8bc6('0x9')](_0x8bc6('0xa'),auth['isAuthenticated'](),controller[_0x8bc6('0xb')]);router[_0x8bc6('0x9')]('/users',auth['isAuthenticated'](),controller[_0x8bc6('0xc')]);router[_0x8bc6('0x9')](_0x8bc6('0xd'),auth[_0x8bc6('0x8')](),controller[_0x8bc6('0xe')]);router[_0x8bc6('0xf')]('/',auth[_0x8bc6('0x8')](),controller['create']);router[_0x8bc6('0x10')](_0x8bc6('0xd'),controller[_0x8bc6('0x11')]);router[_0x8bc6('0x12')](_0x8bc6('0xd'),auth[_0x8bc6('0x8')](),controller[_0x8bc6('0x13')]);module[_0x8bc6('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9ccd=['TEXT','medium','ENUM','out','DATE','STRING','sequelize'];(function(_0x3d6c73,_0x34047d){var _0x1ab97c=function(_0x34d16b){while(--_0x34d16b){_0x3d6c73['push'](_0x3d6c73['shift']());}};_0x1ab97c(++_0x34047d);}(_0x9ccd,0x1a3));var _0xd9cc=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x9ccd[_0x14add3];return _0x4a174f;};'use strict';var Sequelize=require(_0xd9cc('0x0'));module['exports']={'body':{'type':Sequelize[_0xd9cc('0x1')](_0xd9cc('0x2')),'allowNull':![]},'read':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'secret':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'direction':{'type':Sequelize[_0xd9cc('0x3')]('in','out'),'defaultValue':_0xd9cc('0x4'),'allowNull':![]},'readAt':{'type':Sequelize[_0xd9cc('0x5')]},'providerName':{'type':Sequelize[_0xd9cc('0x6')]},'providerResponse':{'type':Sequelize[_0xd9cc('0x1')]}};
\ No newline at end of file
+var _0x9e63=['BOOLEAN','ENUM','out','DATE','STRING','sequelize','exports','TEXT'];(function(_0x3a8422,_0x635f01){var _0x21f8c7=function(_0x190c3f){while(--_0x190c3f){_0x3a8422['push'](_0x3a8422['shift']());}};_0x21f8c7(++_0x635f01);}(_0x9e63,0x65));var _0x39e6=function(_0x29b609,_0x19d388){_0x29b609=_0x29b609-0x0;var _0x54c952=_0x9e63[_0x29b609];return _0x54c952;};'use strict';var Sequelize=require(_0x39e6('0x0'));module[_0x39e6('0x1')]={'body':{'type':Sequelize[_0x39e6('0x2')]('medium'),'allowNull':![]},'read':{'type':Sequelize[_0x39e6('0x3')],'defaultValue':![]},'secret':{'type':Sequelize[_0x39e6('0x3')],'defaultValue':![]},'direction':{'type':Sequelize[_0x39e6('0x4')]('in',_0x39e6('0x5')),'defaultValue':_0x39e6('0x5'),'allowNull':![]},'readAt':{'type':Sequelize[_0x39e6('0x6')]},'providerName':{'type':Sequelize[_0x39e6('0x7')]},'providerResponse':{'type':Sequelize[_0x39e6('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd16a=['result','sendStatus','end','json','offset','limit','count','status','set','Content-Range','apply','reject','save','destroy','stack','name','map','ChatMessage','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','order','sort','where','pick','filter','merge','VIRTUAL','options','findAll','show','rawAttributes','includeAll','include','find','catch','create','body','update','params','describe','chat-interactions','accept','chat','read','format','YYYY-MM-DD\x20HH:mm:ss','UserId','ChatInteractionId','isNil','interaction','get','user','role','AcceptMessage','acceptMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','sequelize','QueryTypes','SELECT','contact','User','agent','internal','manual','SIP/%s','channel','event','EventManager','formData','ChatInteraction','null','RejectMessage','rejectMessage','ContactId','Sequelize','email','interface','motionChannel','rejectmessage','parse','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','./chatMessage.socket','register','jayson/promise','client','http','request','then','info','ChatMessage,\x20%s,\x20%s','request\x20sent','debug','ChatMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message'];(function(_0x47c825,_0x5355be){var _0x12f621=function(_0x28072c){while(--_0x28072c){_0x47c825['push'](_0x47c825['shift']());}};_0x12f621(++_0x5355be);}(_0xd16a,0x167));var _0xad16=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0xd16a[_0x14add3];return _0x4a174f;};'use strict';var emlformat=require(_0xad16('0x0'));var rimraf=require(_0xad16('0x1'));var zipdir=require(_0xad16('0x2'));var jsonpatch=require(_0xad16('0x3'));var rp=require(_0xad16('0x4'));var moment=require('moment');var BPromise=require(_0xad16('0x5'));var Mustache=require(_0xad16('0x6'));var util=require(_0xad16('0x7'));var path=require(_0xad16('0x8'));var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xad16('0x9'));var _=require(_0xad16('0xa'));var squel=require(_0xad16('0xb'));var crypto=require(_0xad16('0xc'));var jsforce=require(_0xad16('0xd'));var deskjs=require(_0xad16('0xe'));var toCsv=require(_0xad16('0xf'));var querystring=require(_0xad16('0x10'));var Papa=require(_0xad16('0x11'));var Redis=require('ioredis');var authService=require(_0xad16('0x12'));var qs=require(_0xad16('0x13'));var as=require(_0xad16('0x14'));var hardwareService=require(_0xad16('0x15'));var logger=require(_0xad16('0x16'))('api');var utils=require(_0xad16('0x17'));var config=require(_0xad16('0x18'));var licenseUtil=require(_0xad16('0x19'));var db=require(_0xad16('0x1a'))['db'];config[_0xad16('0x1b')]=_['defaults'](config[_0xad16('0x1b')],{'host':_0xad16('0x1c'),'port':0x18eb});var socket=require(_0xad16('0x1d'))(new Redis(config['redis']));require(_0xad16('0x1e'))[_0xad16('0x1f')](socket);var jayson=require(_0xad16('0x20'));var client=jayson[_0xad16('0x21')][_0xad16('0x22')]({'port':0x232c});var client9002=jayson[_0xad16('0x21')]['http']({'port':0x232a});function respondWithRpcPromise(_0x36ae2f,_0x553be1,_0x5a5ad1,_0x35982e){return new BPromise(function(_0x254843,_0x1a61d0){var _0x2f5c4f=_0x35982e||client;return _0x2f5c4f[_0xad16('0x23')](_0x36ae2f,_0x5a5ad1)[_0xad16('0x24')](function(_0x1eb8d3){logger[_0xad16('0x25')](_0xad16('0x26'),_0x553be1,_0xad16('0x27'));logger[_0xad16('0x28')](_0xad16('0x29'),_0x553be1,_0xad16('0x27'),JSON[_0xad16('0x2a')](_0x1eb8d3));if(_0x1eb8d3[_0xad16('0x2b')]){if(_0x1eb8d3[_0xad16('0x2b')][_0xad16('0x2c')]===0x1f4){logger['error'](_0xad16('0x26'),_0x553be1,_0x1eb8d3[_0xad16('0x2b')][_0xad16('0x2d')]);return _0x1a61d0(_0x1eb8d3[_0xad16('0x2b')][_0xad16('0x2d')]);}logger[_0xad16('0x2b')](_0xad16('0x26'),_0x553be1,_0x1eb8d3['error'][_0xad16('0x2d')]);return _0x254843(_0x1eb8d3['error'][_0xad16('0x2d')]);}else{logger['info'](_0xad16('0x26'),_0x553be1,_0xad16('0x27'));_0x254843(_0x1eb8d3[_0xad16('0x2e')][_0xad16('0x2d')]);}})['catch'](function(_0xd93752){logger[_0xad16('0x2b')](_0xad16('0x26'),_0x553be1,_0xd93752);_0x1a61d0(_0xd93752);});});}function respondWithStatusCode(_0x1a227f,_0x772d46){_0x772d46=_0x772d46||0xcc;return function(_0x4aa910){if(_0x4aa910){return _0x1a227f[_0xad16('0x2f')](_0x772d46);}return _0x1a227f['status'](_0x772d46)[_0xad16('0x30')]();};}function respondWithResult(_0x34f925,_0x2c097c){_0x2c097c=_0x2c097c||0xc8;return function(_0x130d76){if(_0x130d76){return _0x34f925['status'](_0x2c097c)[_0xad16('0x31')](_0x130d76);}};}function respondWithFilteredResult(_0x530b25,_0xceb1b7){return function(_0x24929a){if(_0x24929a){var _0x22144c=typeof _0xceb1b7[_0xad16('0x32')]==='undefined'&&typeof _0xceb1b7[_0xad16('0x33')]==='undefined';var _0x1140b0=_0x24929a[_0xad16('0x34')];var _0x48bd4f=_0x22144c?0x0:_0xceb1b7['offset'];var _0x39f328=_0x22144c?_0x24929a[_0xad16('0x34')]:_0xceb1b7[_0xad16('0x32')]+_0xceb1b7[_0xad16('0x33')];var _0x55ef03;if(_0x39f328>=_0x1140b0){_0x39f328=_0x1140b0;_0x55ef03=0xc8;}else{_0x55ef03=0xce;}_0x530b25[_0xad16('0x35')](_0x55ef03);return _0x530b25[_0xad16('0x36')](_0xad16('0x37'),_0x48bd4f+'-'+_0x39f328+'/'+_0x1140b0)[_0xad16('0x31')](_0x24929a);}return null;};}function patchUpdates(_0x1d5787){return function(_0x5e4686){try{jsonpatch[_0xad16('0x38')](_0x5e4686,_0x1d5787,!![]);}catch(_0x10043b){return BPromise[_0xad16('0x39')](_0x10043b);}return _0x5e4686[_0xad16('0x3a')]();};}function saveUpdates(_0xbaafd6,_0x58ac6b){return function(_0x487662){if(_0x487662){return _0x487662['update'](_0xbaafd6)[_0xad16('0x24')](function(_0x52c50f){return _0x52c50f;});}return null;};}function removeEntity(_0xfb74f7,_0x58de90){return function(_0x3053f3){if(_0x3053f3){return _0x3053f3[_0xad16('0x3b')]()[_0xad16('0x24')](function(){_0xfb74f7['status'](0xcc)[_0xad16('0x30')]();});}};}function handleEntityNotFound(_0x44bd09,_0x286210){return function(_0x444087){if(!_0x444087){_0x44bd09[_0xad16('0x2f')](0x194);}return _0x444087;};}function handleError(_0x543d93,_0x28897a){_0x28897a=_0x28897a||0x1f4;return function(_0x2f390e){logger[_0xad16('0x2b')](_0x2f390e[_0xad16('0x3c')]);if(_0x2f390e[_0xad16('0x3d')]){delete _0x2f390e[_0xad16('0x3d')];}_0x543d93['status'](_0x28897a)['send'](_0x2f390e);};}exports['index']=function(_0x3ee781,_0x1a7a24){var _0x15125e={},_0x41381d={},_0x57a700={'count':0x0,'rows':[]};var _0x53bf1e=_[_0xad16('0x3e')](db[_0xad16('0x3f')]['rawAttributes'],function(_0x38ec88){return{'name':_0x38ec88[_0xad16('0x40')],'type':_0x38ec88[_0xad16('0x41')][_0xad16('0x42')]};});_0x41381d[_0xad16('0x43')]=_[_0xad16('0x3e')](_0x53bf1e,_0xad16('0x3d'));_0x41381d[_0xad16('0x44')]=_[_0xad16('0x45')](_0x3ee781['query']);_0x41381d[_0xad16('0x46')]=_[_0xad16('0x47')](_0x41381d[_0xad16('0x43')],_0x41381d['query']);_0x15125e[_0xad16('0x48')]=_[_0xad16('0x47')](_0x41381d['model'],qs['fields'](_0x3ee781[_0xad16('0x44')][_0xad16('0x49')]));_0x15125e[_0xad16('0x48')]=_0x15125e['attributes'][_0xad16('0x4a')]?_0x15125e[_0xad16('0x48')]:_0x41381d[_0xad16('0x43')];if(!_0x3ee781[_0xad16('0x44')]['hasOwnProperty']('nolimit')){_0x15125e[_0xad16('0x33')]=qs[_0xad16('0x33')](_0x3ee781[_0xad16('0x44')]['limit']);_0x15125e[_0xad16('0x32')]=qs[_0xad16('0x32')](_0x3ee781[_0xad16('0x44')][_0xad16('0x32')]);}_0x15125e[_0xad16('0x4b')]=qs[_0xad16('0x4c')](_0x3ee781[_0xad16('0x44')][_0xad16('0x4c')]);_0x15125e[_0xad16('0x4d')]=qs[_0xad16('0x46')](_[_0xad16('0x4e')](_0x3ee781[_0xad16('0x44')],_0x41381d[_0xad16('0x46')]),_0x53bf1e);if(_0x3ee781['query'][_0xad16('0x4f')]){_0x15125e[_0xad16('0x4d')]=_[_0xad16('0x50')](_0x15125e['where'],{'$or':_[_0xad16('0x3e')](_0x53bf1e,function(_0x3b8e2b){if(_0x3b8e2b[_0xad16('0x41')]!==_0xad16('0x51')){var _0x223f2a={};_0x223f2a[_0x3b8e2b[_0xad16('0x3d')]]={'$like':'%'+_0x3ee781[_0xad16('0x44')][_0xad16('0x4f')]+'%'};return _0x223f2a;}})});}_0x15125e=_[_0xad16('0x50')]({},_0x15125e,_0x3ee781[_0xad16('0x52')]);var _0xf10d7={'where':_0x15125e[_0xad16('0x4d')]};return db[_0xad16('0x3f')][_0xad16('0x34')](_0xf10d7)[_0xad16('0x24')](function(_0x114f1f){_0x57a700[_0xad16('0x34')]=_0x114f1f;if(_0x3ee781[_0xad16('0x44')]['includeAll']){_0x15125e['include']=[{'all':!![]}];}return db[_0xad16('0x3f')][_0xad16('0x53')](_0x15125e);})[_0xad16('0x24')](function(_0x35e284){_0x57a700['rows']=_0x35e284;return _0x57a700;})['then'](respondWithFilteredResult(_0x1a7a24,_0x15125e))['catch'](handleError(_0x1a7a24,null));};exports[_0xad16('0x54')]=function(_0x16140c,_0x52d98d){var _0x5ced46={'raw':!![],'where':{'id':_0x16140c['params']['id']}},_0x5bda1f={};_0x5bda1f['model']=_[_0xad16('0x45')](db['ChatMessage'][_0xad16('0x55')]);_0x5bda1f[_0xad16('0x44')]=_['keys'](_0x16140c[_0xad16('0x44')]);_0x5bda1f['filters']=_[_0xad16('0x47')](_0x5bda1f[_0xad16('0x43')],_0x5bda1f[_0xad16('0x44')]);_0x5ced46[_0xad16('0x48')]=_[_0xad16('0x47')](_0x5bda1f[_0xad16('0x43')],qs[_0xad16('0x49')](_0x16140c['query'][_0xad16('0x49')]));_0x5ced46[_0xad16('0x48')]=_0x5ced46[_0xad16('0x48')]['length']?_0x5ced46[_0xad16('0x48')]:_0x5bda1f[_0xad16('0x43')];if(_0x16140c['query'][_0xad16('0x56')]){_0x5ced46[_0xad16('0x57')]=[{'all':!![]}];}_0x5ced46=_[_0xad16('0x50')]({},_0x5ced46,_0x16140c[_0xad16('0x52')]);return db[_0xad16('0x3f')][_0xad16('0x58')](_0x5ced46)['then'](handleEntityNotFound(_0x52d98d,null))['then'](respondWithResult(_0x52d98d,null))[_0xad16('0x59')](handleError(_0x52d98d,null));};exports[_0xad16('0x5a')]=function(_0xb25591,_0x39bb14){return db['ChatMessage'][_0xad16('0x5a')](_0xb25591[_0xad16('0x5b')],{})[_0xad16('0x24')](respondWithResult(_0x39bb14,0xc9))[_0xad16('0x59')](handleError(_0x39bb14,null));};exports[_0xad16('0x5c')]=function(_0x3d8777,_0x86da87){if(_0x3d8777['body']['id']){delete _0x3d8777[_0xad16('0x5b')]['id'];}return db[_0xad16('0x3f')][_0xad16('0x58')]({'where':{'id':_0x3d8777[_0xad16('0x5d')]['id']}})[_0xad16('0x24')](handleEntityNotFound(_0x86da87,null))['then'](saveUpdates(_0x3d8777['body'],null))[_0xad16('0x24')](respondWithResult(_0x86da87,null))[_0xad16('0x59')](handleError(_0x86da87,null));};exports[_0xad16('0x3b')]=function(_0x45f280,_0x2db1cb){return db[_0xad16('0x3f')][_0xad16('0x58')]({'where':{'id':_0x45f280['params']['id']}})[_0xad16('0x24')](handleEntityNotFound(_0x2db1cb,null))['then'](removeEntity(_0x2db1cb,null))[_0xad16('0x59')](handleError(_0x2db1cb,null));};exports[_0xad16('0x5e')]=function(_0x51d845,_0x1a1607){return db[_0xad16('0x3f')]['describe']()[_0xad16('0x24')](respondWithResult(_0x1a1607,null))[_0xad16('0x59')](handleError(_0x1a1607,null));};var interaction_log=require(_0xad16('0x16'))(_0xad16('0x5f'));exports[_0xad16('0x60')]=function(_0x553566,_0x40fc60,_0x467333){var _0x2a47b2={'agent':{},'channel':_0xad16('0x61')};if(_0x553566[_0xad16('0x5b')]['id']){delete _0x553566[_0xad16('0x5b')]['id'];}_0x553566[_0xad16('0x5b')][_0xad16('0x62')]=!![];_0x553566[_0xad16('0x5b')]['readAt']=moment()[_0xad16('0x63')](_0xad16('0x64'));_0x553566['body'][_0xad16('0x65')]=_0x553566[_0xad16('0x5b')]['UserId']||_0x553566['user']['id'];_0x2a47b2['agent']['id']=_0x553566[_0xad16('0x5b')][_0xad16('0x65')];return db[_0xad16('0x3f')]['find']({'where':{'id':_0x553566[_0xad16('0x5d')]['id'],'UserId':null}})[_0xad16('0x24')](handleEntityNotFound(_0x40fc60,null))[_0xad16('0x24')](saveUpdates(_0x553566['body'],null))[_0xad16('0x24')](function(_0x328e03){if(_0x328e03){_0x2a47b2[_0xad16('0x2d')]=_0x328e03['get']({'plain':!![]});return db['ChatInteraction'][_0xad16('0x58')]({'where':{'id':_0x328e03[_0xad16('0x66')]}});}return null;})[_0xad16('0x24')](handleEntityNotFound(_0x40fc60,null))[_0xad16('0x24')](function(_0x154037){if(_0x154037){return _0x154037['update']({'UserId':_0x553566[_0xad16('0x5b')][_0xad16('0x65')],'read1stAt':_[_0xad16('0x67')](_0x154037['read1stAt'])?moment()['format']('YYYY-MM-DD\x20HH:mm:ss'):undefined});}return null;})['then'](function(_0x120ab0){if(_0x120ab0){_0x2a47b2[_0xad16('0x68')]=_0x120ab0[_0xad16('0x69')]({'plain':!![]});interaction_log['info']('[CHATMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x553566['user']['id'],_0x553566[_0xad16('0x6a')][_0xad16('0x3d')],_0x553566[_0xad16('0x6a')][_0xad16('0x6b')],_0x2a47b2[_0xad16('0x68')]['id'],_0x553566[_0xad16('0x5b')]?JSON[_0xad16('0x2a')](_0x553566[_0xad16('0x5b')]):'null');return respondWithRpcPromise(_0xad16('0x6c'),_0xad16('0x6d'),_0x2a47b2);}return null;})[_0xad16('0x24')](function(_0x57c96b){var _0x11834d=_0xad16('0x6e')+_0x57c96b[_0xad16('0x2d')]['ContactId'];return db[_0xad16('0x6f')][_0xad16('0x44')](_0x11834d,{'type':db['Sequelize'][_0xad16('0x70')][_0xad16('0x71')],'raw':!![]})[_0xad16('0x24')](function(_0x1e41fd){return _0x1e41fd;});})['then'](function(_0x560e94){if(_0x560e94){_0x2a47b2['message'][_0xad16('0x72')]=_0x560e94[0x0];if(!_0x553566[_0xad16('0x5b')][_0xad16('0x65')])return;return db[_0xad16('0x73')][_0xad16('0x58')]({'where':{'id':_0x553566[_0xad16('0x5b')][_0xad16('0x65')],'role':_0xad16('0x74')},'attributes':['id',_0xad16('0x3d'),'fullname','email',_0xad16('0x75')],'raw':!![]});}return null;})['then'](function(_0x7b5a19){if(!_0x7b5a19)return null;_0x2a47b2[_0xad16('0x2d')][_0xad16('0x74')]=_0x7b5a19;return _0x2a47b2;})[_0xad16('0x24')](function(_0x4a741d){if(_0x4a741d){if(_0x553566[_0xad16('0x5b')][_0xad16('0x76')]){_0x2a47b2[_0xad16('0x2d')]['interface']=util[_0xad16('0x63')](_0xad16('0x77'),_0x553566[_0xad16('0x6a')][_0xad16('0x3d')]);_0x2a47b2['message']['channel']=_0x2a47b2['channel'];_0x2a47b2[_0xad16('0x2d')]['motionChannel']=_0x2a47b2[_0xad16('0x78')];_0x2a47b2['message'][_0xad16('0x79')]='accept';return respondWithRpcPromise(_0xad16('0x7a'),'EventManager',{'event':'acceptmessage','message':_['merge'](_0x2a47b2[_0xad16('0x2d')],JSON['parse'](_0x2a47b2[_0xad16('0x68')][_0xad16('0x7b')]))},client9002)[_0xad16('0x24')](function(){return _0x2a47b2;});}return _0x2a47b2;}return null;})['then'](respondWithResult(_0x40fc60,null))[_0xad16('0x59')](handleError(_0x40fc60,null));};var interaction_log=require(_0xad16('0x16'))(_0xad16('0x5f'));exports[_0xad16('0x39')]=function(_0x1a7509,_0x55adfb,_0xadd3e9){var _0x3894b8={'agent':{},'channel':_0xad16('0x61')};if(_0x1a7509['body']['id']){delete _0x1a7509[_0xad16('0x5b')]['id'];}_0x1a7509['body']['UserId']=_0x1a7509['body']['UserId']||_0x1a7509[_0xad16('0x6a')]['id'];_0x3894b8[_0xad16('0x74')]['id']=_0x1a7509[_0xad16('0x5b')]['UserId'];return db[_0xad16('0x3f')]['find']({'where':{'id':_0x1a7509[_0xad16('0x5d')]['id'],'UserId':null}})['then'](handleEntityNotFound(_0x55adfb,null))[_0xad16('0x24')](function(_0x1a0977){if(_0x1a0977){_0x3894b8[_0xad16('0x2d')]=_0x1a0977[_0xad16('0x69')]({'plain':!![]});return db[_0xad16('0x7c')]['find']({'where':{'id':_0x1a0977[_0xad16('0x66')]}});}return null;})[_0xad16('0x24')](handleEntityNotFound(_0x55adfb,null))[_0xad16('0x24')](function(_0x556db3){if(_0x556db3){_0x3894b8[_0xad16('0x68')]=_0x556db3[_0xad16('0x69')]({'plain':!![]});interaction_log[_0xad16('0x25')]('[CHATMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x1a7509['user']['id'],_0x1a7509[_0xad16('0x6a')][_0xad16('0x3d')],_0x1a7509[_0xad16('0x6a')][_0xad16('0x6b')],_0x3894b8['interaction']['id'],_0x1a7509[_0xad16('0x5b')]?JSON[_0xad16('0x2a')](_0x1a7509[_0xad16('0x5b')]):_0xad16('0x7d'));return respondWithRpcPromise(_0xad16('0x7e'),_0xad16('0x7f'),_0x3894b8);}return null;})[_0xad16('0x24')](function(_0x1a1c51){var _0x419fb5='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x1a1c51['message'][_0xad16('0x80')];return db['sequelize'][_0xad16('0x44')](_0x419fb5,{'type':db[_0xad16('0x81')][_0xad16('0x70')]['SELECT'],'raw':!![]})[_0xad16('0x24')](function(_0x567afc){return _0x567afc;});})['then'](function(_0x5704eb){if(_0x5704eb){_0x3894b8[_0xad16('0x2d')]['contact']=_0x5704eb[0x0];if(!_0x1a7509[_0xad16('0x5b')][_0xad16('0x65')])return;return db[_0xad16('0x73')][_0xad16('0x58')]({'where':{'id':_0x1a7509[_0xad16('0x5b')]['UserId'],'role':'agent'},'attributes':['id',_0xad16('0x3d'),'fullname',_0xad16('0x82'),'internal'],'raw':!![]});}return null;})['then'](function(_0x1ef7d7){if(!_0x1ef7d7)return null;_0x3894b8[_0xad16('0x2d')][_0xad16('0x74')]=_0x1ef7d7;return _0x3894b8;})['then'](function(_0x329e67){if(_0x329e67){_0x329e67[_0xad16('0x2d')][_0xad16('0x83')]=util[_0xad16('0x63')](_0xad16('0x77'),_0x1a7509[_0xad16('0x6a')][_0xad16('0x3d')]);_0x329e67[_0xad16('0x2d')][_0xad16('0x78')]=_0x3894b8[_0xad16('0x78')];_0x329e67[_0xad16('0x2d')][_0xad16('0x84')]=_0x3894b8[_0xad16('0x78')];_0x329e67[_0xad16('0x2d')][_0xad16('0x79')]=_0xad16('0x39');respondWithRpcPromise(_0xad16('0x7a'),'EventManager',{'event':_0xad16('0x85'),'message':_[_0xad16('0x50')](_0x3894b8['message'],JSON[_0xad16('0x86')](_0x3894b8[_0xad16('0x68')][_0xad16('0x7b')]))},client9002);return _0x3894b8;}return null;})[_0xad16('0x24')](respondWithResult(_0x55adfb,null))[_0xad16('0x59')](handleError(_0x55adfb,null));};
\ No newline at end of file
+var _0xa9e0=['interaction','[CHATMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','user','role','null','AcceptMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','ContactId','sequelize','contact','email','internal','manual','interface','SIP/%s','channel','event','EventManager','acceptmessage','parse','formData','chat-interactions','chat','ChatInteraction','RejectMessage','rejectMessage','Sequelize','QueryTypes','SELECT','fullname','rejectmessage','eml-format','rimraf','zip-dir','moment','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/license/util','../../mysqldb','redis','defaults','localhost','./chatMessage.socket','register','jayson/promise','client','http','then','info','ChatMessage,\x20%s,\x20%s','request\x20sent','debug','ChatMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','sendStatus','end','status','json','offset','undefined','count','limit','set','Content-Range','reject','save','update','destroy','stack','name','send','map','ChatMessage','fieldName','type','keys','query','filters','intersection','attributes','fields','length','model','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','includeAll','include','findAll','rows','show','params','body','find','describe','../../config/logger','accept','read','readAt','YYYY-MM-DD\x20HH:mm:ss','UserId','agent','get','ChatInteractionId','isNil','read1stAt','format'];(function(_0x23103e,_0x242c79){var _0x414cc0=function(_0x3e6bfd){while(--_0x3e6bfd){_0x23103e['push'](_0x23103e['shift']());}};_0x414cc0(++_0x242c79);}(_0xa9e0,0x123));var _0x0a9e=function(_0x934425,_0x5af72f){_0x934425=_0x934425-0x0;var _0x31d596=_0xa9e0[_0x934425];return _0x31d596;};'use strict';var emlformat=require(_0x0a9e('0x0'));var rimraf=require(_0x0a9e('0x1'));var zipdir=require(_0x0a9e('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x0a9e('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x0a9e('0x4'));var util=require(_0x0a9e('0x5'));var path=require(_0x0a9e('0x6'));var sox=require(_0x0a9e('0x7'));var csv=require(_0x0a9e('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x0a9e('0x9'));var _=require(_0x0a9e('0xa'));var squel=require(_0x0a9e('0xb'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x0a9e('0xc'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x0a9e('0xd'));var Redis=require(_0x0a9e('0xe'));var authService=require(_0x0a9e('0xf'));var qs=require(_0x0a9e('0x10'));var as=require(_0x0a9e('0x11'));var hardwareService=require(_0x0a9e('0x12'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x0a9e('0x13'));var db=require(_0x0a9e('0x14'))['db'];config[_0x0a9e('0x15')]=_[_0x0a9e('0x16')](config[_0x0a9e('0x15')],{'host':_0x0a9e('0x17'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x0a9e('0x15')]));require(_0x0a9e('0x18'))[_0x0a9e('0x19')](socket);var jayson=require(_0x0a9e('0x1a'));var client=jayson[_0x0a9e('0x1b')][_0x0a9e('0x1c')]({'port':0x232c});var client9002=jayson['client'][_0x0a9e('0x1c')]({'port':0x232a});function respondWithRpcPromise(_0x5d0880,_0x1985b6,_0x519dfd,_0x16033c){return new BPromise(function(_0x12066b,_0x48f32d){var _0x225616=_0x16033c||client;return _0x225616['request'](_0x5d0880,_0x519dfd)[_0x0a9e('0x1d')](function(_0x478723){logger[_0x0a9e('0x1e')](_0x0a9e('0x1f'),_0x1985b6,_0x0a9e('0x20'));logger[_0x0a9e('0x21')](_0x0a9e('0x22'),_0x1985b6,_0x0a9e('0x20'),JSON[_0x0a9e('0x23')](_0x478723));if(_0x478723[_0x0a9e('0x24')]){if(_0x478723[_0x0a9e('0x24')][_0x0a9e('0x25')]===0x1f4){logger['error'](_0x0a9e('0x1f'),_0x1985b6,_0x478723[_0x0a9e('0x24')]['message']);return _0x48f32d(_0x478723[_0x0a9e('0x24')]['message']);}logger['error'](_0x0a9e('0x1f'),_0x1985b6,_0x478723[_0x0a9e('0x24')][_0x0a9e('0x26')]);return _0x12066b(_0x478723[_0x0a9e('0x24')]['message']);}else{logger[_0x0a9e('0x1e')](_0x0a9e('0x1f'),_0x1985b6,_0x0a9e('0x20'));_0x12066b(_0x478723[_0x0a9e('0x27')][_0x0a9e('0x26')]);}})[_0x0a9e('0x28')](function(_0x16b1ca){logger['error']('ChatMessage,\x20%s,\x20%s',_0x1985b6,_0x16b1ca);_0x48f32d(_0x16b1ca);});});}function respondWithStatusCode(_0x197ec0,_0x3a8e58){_0x3a8e58=_0x3a8e58||0xcc;return function(_0x40c424){if(_0x40c424){return _0x197ec0[_0x0a9e('0x29')](_0x3a8e58);}return _0x197ec0['status'](_0x3a8e58)[_0x0a9e('0x2a')]();};}function respondWithResult(_0x479bc4,_0x45a1e7){_0x45a1e7=_0x45a1e7||0xc8;return function(_0x5bfb33){if(_0x5bfb33){return _0x479bc4[_0x0a9e('0x2b')](_0x45a1e7)[_0x0a9e('0x2c')](_0x5bfb33);}};}function respondWithFilteredResult(_0x25fba9,_0x14433c){return function(_0x140511){if(_0x140511){var _0x1538a4=typeof _0x14433c[_0x0a9e('0x2d')]===_0x0a9e('0x2e')&&typeof _0x14433c['limit']===_0x0a9e('0x2e');var _0x468813=_0x140511[_0x0a9e('0x2f')];var _0x2ec755=_0x1538a4?0x0:_0x14433c['offset'];var _0x15b200=_0x1538a4?_0x140511[_0x0a9e('0x2f')]:_0x14433c[_0x0a9e('0x2d')]+_0x14433c[_0x0a9e('0x30')];var _0x58b06f;if(_0x15b200>=_0x468813){_0x15b200=_0x468813;_0x58b06f=0xc8;}else{_0x58b06f=0xce;}_0x25fba9[_0x0a9e('0x2b')](_0x58b06f);return _0x25fba9[_0x0a9e('0x31')](_0x0a9e('0x32'),_0x2ec755+'-'+_0x15b200+'/'+_0x468813)[_0x0a9e('0x2c')](_0x140511);}return null;};}function patchUpdates(_0x540530){return function(_0x426950){try{jsonpatch['apply'](_0x426950,_0x540530,!![]);}catch(_0x2407f9){return BPromise[_0x0a9e('0x33')](_0x2407f9);}return _0x426950[_0x0a9e('0x34')]();};}function saveUpdates(_0x33bdb7,_0x25ce3a){return function(_0x5180f1){if(_0x5180f1){return _0x5180f1[_0x0a9e('0x35')](_0x33bdb7)[_0x0a9e('0x1d')](function(_0x40cb85){return _0x40cb85;});}return null;};}function removeEntity(_0x2da5c0,_0x2b45ea){return function(_0x409319){if(_0x409319){return _0x409319[_0x0a9e('0x36')]()[_0x0a9e('0x1d')](function(){_0x2da5c0['status'](0xcc)[_0x0a9e('0x2a')]();});}};}function handleEntityNotFound(_0x5e7238,_0x2cc7a0){return function(_0x14b13f){if(!_0x14b13f){_0x5e7238[_0x0a9e('0x29')](0x194);}return _0x14b13f;};}function handleError(_0x3f3d41,_0x567193){_0x567193=_0x567193||0x1f4;return function(_0x191e91){logger[_0x0a9e('0x24')](_0x191e91[_0x0a9e('0x37')]);if(_0x191e91[_0x0a9e('0x38')]){delete _0x191e91['name'];}_0x3f3d41['status'](_0x567193)[_0x0a9e('0x39')](_0x191e91);};}exports['index']=function(_0x24936a,_0x3d9717){var _0x381c37={},_0x1ef87a={},_0x4f41ae={'count':0x0,'rows':[]};var _0x31916f=_[_0x0a9e('0x3a')](db[_0x0a9e('0x3b')]['rawAttributes'],function(_0x1dbf74){return{'name':_0x1dbf74[_0x0a9e('0x3c')],'type':_0x1dbf74[_0x0a9e('0x3d')]['key']};});_0x1ef87a['model']=_[_0x0a9e('0x3a')](_0x31916f,_0x0a9e('0x38'));_0x1ef87a['query']=_[_0x0a9e('0x3e')](_0x24936a[_0x0a9e('0x3f')]);_0x1ef87a[_0x0a9e('0x40')]=_[_0x0a9e('0x41')](_0x1ef87a['model'],_0x1ef87a['query']);_0x381c37[_0x0a9e('0x42')]=_[_0x0a9e('0x41')](_0x1ef87a['model'],qs[_0x0a9e('0x43')](_0x24936a[_0x0a9e('0x3f')][_0x0a9e('0x43')]));_0x381c37['attributes']=_0x381c37[_0x0a9e('0x42')][_0x0a9e('0x44')]?_0x381c37[_0x0a9e('0x42')]:_0x1ef87a[_0x0a9e('0x45')];if(!_0x24936a[_0x0a9e('0x3f')][_0x0a9e('0x46')](_0x0a9e('0x47'))){_0x381c37[_0x0a9e('0x30')]=qs[_0x0a9e('0x30')](_0x24936a[_0x0a9e('0x3f')][_0x0a9e('0x30')]);_0x381c37[_0x0a9e('0x2d')]=qs[_0x0a9e('0x2d')](_0x24936a[_0x0a9e('0x3f')][_0x0a9e('0x2d')]);}_0x381c37['order']=qs['sort'](_0x24936a[_0x0a9e('0x3f')][_0x0a9e('0x48')]);_0x381c37[_0x0a9e('0x49')]=qs[_0x0a9e('0x40')](_[_0x0a9e('0x4a')](_0x24936a[_0x0a9e('0x3f')],_0x1ef87a[_0x0a9e('0x40')]),_0x31916f);if(_0x24936a[_0x0a9e('0x3f')][_0x0a9e('0x4b')]){_0x381c37[_0x0a9e('0x49')]=_[_0x0a9e('0x4c')](_0x381c37[_0x0a9e('0x49')],{'$or':_['map'](_0x31916f,function(_0x117c99){if(_0x117c99[_0x0a9e('0x3d')]!==_0x0a9e('0x4d')){var _0xfbd5ad={};_0xfbd5ad[_0x117c99[_0x0a9e('0x38')]]={'$like':'%'+_0x24936a[_0x0a9e('0x3f')][_0x0a9e('0x4b')]+'%'};return _0xfbd5ad;}})});}_0x381c37=_[_0x0a9e('0x4c')]({},_0x381c37,_0x24936a['options']);var _0x2e9d90={'where':_0x381c37['where']};return db[_0x0a9e('0x3b')][_0x0a9e('0x2f')](_0x2e9d90)[_0x0a9e('0x1d')](function(_0x562fb4){_0x4f41ae[_0x0a9e('0x2f')]=_0x562fb4;if(_0x24936a[_0x0a9e('0x3f')][_0x0a9e('0x4e')]){_0x381c37[_0x0a9e('0x4f')]=[{'all':!![]}];}return db[_0x0a9e('0x3b')][_0x0a9e('0x50')](_0x381c37);})[_0x0a9e('0x1d')](function(_0x5bbcde){_0x4f41ae[_0x0a9e('0x51')]=_0x5bbcde;return _0x4f41ae;})[_0x0a9e('0x1d')](respondWithFilteredResult(_0x3d9717,_0x381c37))[_0x0a9e('0x28')](handleError(_0x3d9717,null));};exports[_0x0a9e('0x52')]=function(_0x409789,_0x992c77){var _0x6054ee={'raw':!![],'where':{'id':_0x409789[_0x0a9e('0x53')]['id']}},_0x19383e={};_0x19383e['model']=_[_0x0a9e('0x3e')](db[_0x0a9e('0x3b')]['rawAttributes']);_0x19383e['query']=_['keys'](_0x409789[_0x0a9e('0x3f')]);_0x19383e[_0x0a9e('0x40')]=_[_0x0a9e('0x41')](_0x19383e[_0x0a9e('0x45')],_0x19383e[_0x0a9e('0x3f')]);_0x6054ee[_0x0a9e('0x42')]=_[_0x0a9e('0x41')](_0x19383e[_0x0a9e('0x45')],qs['fields'](_0x409789['query']['fields']));_0x6054ee[_0x0a9e('0x42')]=_0x6054ee[_0x0a9e('0x42')][_0x0a9e('0x44')]?_0x6054ee['attributes']:_0x19383e[_0x0a9e('0x45')];if(_0x409789[_0x0a9e('0x3f')]['includeAll']){_0x6054ee['include']=[{'all':!![]}];}_0x6054ee=_[_0x0a9e('0x4c')]({},_0x6054ee,_0x409789['options']);return db[_0x0a9e('0x3b')]['find'](_0x6054ee)[_0x0a9e('0x1d')](handleEntityNotFound(_0x992c77,null))[_0x0a9e('0x1d')](respondWithResult(_0x992c77,null))[_0x0a9e('0x28')](handleError(_0x992c77,null));};exports['create']=function(_0x2f82da,_0x1bf38a){return db['ChatMessage']['create'](_0x2f82da[_0x0a9e('0x54')],{})[_0x0a9e('0x1d')](respondWithResult(_0x1bf38a,0xc9))['catch'](handleError(_0x1bf38a,null));};exports[_0x0a9e('0x35')]=function(_0x5ce9ac,_0x211ef9){if(_0x5ce9ac['body']['id']){delete _0x5ce9ac[_0x0a9e('0x54')]['id'];}return db['ChatMessage']['find']({'where':{'id':_0x5ce9ac['params']['id']}})[_0x0a9e('0x1d')](handleEntityNotFound(_0x211ef9,null))['then'](saveUpdates(_0x5ce9ac[_0x0a9e('0x54')],null))[_0x0a9e('0x1d')](respondWithResult(_0x211ef9,null))[_0x0a9e('0x28')](handleError(_0x211ef9,null));};exports[_0x0a9e('0x36')]=function(_0x232830,_0x272738){return db[_0x0a9e('0x3b')][_0x0a9e('0x55')]({'where':{'id':_0x232830['params']['id']}})[_0x0a9e('0x1d')](handleEntityNotFound(_0x272738,null))[_0x0a9e('0x1d')](removeEntity(_0x272738,null))[_0x0a9e('0x28')](handleError(_0x272738,null));};exports[_0x0a9e('0x56')]=function(_0xb83dfd,_0x156662){return db['ChatMessage'][_0x0a9e('0x56')]()[_0x0a9e('0x1d')](respondWithResult(_0x156662,null))['catch'](handleError(_0x156662,null));};var interaction_log=require(_0x0a9e('0x57'))('chat-interactions');exports[_0x0a9e('0x58')]=function(_0x5ba1f9,_0x4b3c1a,_0x5674ee){var _0x273cb5={'agent':{},'channel':'chat'};if(_0x5ba1f9[_0x0a9e('0x54')]['id']){delete _0x5ba1f9[_0x0a9e('0x54')]['id'];}_0x5ba1f9[_0x0a9e('0x54')][_0x0a9e('0x59')]=!![];_0x5ba1f9[_0x0a9e('0x54')][_0x0a9e('0x5a')]=moment()['format'](_0x0a9e('0x5b'));_0x5ba1f9['body'][_0x0a9e('0x5c')]=_0x5ba1f9[_0x0a9e('0x54')][_0x0a9e('0x5c')]||_0x5ba1f9['user']['id'];_0x273cb5[_0x0a9e('0x5d')]['id']=_0x5ba1f9[_0x0a9e('0x54')][_0x0a9e('0x5c')];return db[_0x0a9e('0x3b')]['find']({'where':{'id':_0x5ba1f9[_0x0a9e('0x53')]['id'],'UserId':null}})[_0x0a9e('0x1d')](handleEntityNotFound(_0x4b3c1a,null))['then'](saveUpdates(_0x5ba1f9[_0x0a9e('0x54')],null))[_0x0a9e('0x1d')](function(_0x88dcbf){if(_0x88dcbf){_0x273cb5[_0x0a9e('0x26')]=_0x88dcbf[_0x0a9e('0x5e')]({'plain':!![]});return db['ChatInteraction'][_0x0a9e('0x55')]({'where':{'id':_0x88dcbf[_0x0a9e('0x5f')]}});}return null;})[_0x0a9e('0x1d')](handleEntityNotFound(_0x4b3c1a,null))['then'](function(_0x3528b7){if(_0x3528b7){return _0x3528b7['update']({'UserId':_0x5ba1f9['body'][_0x0a9e('0x5c')],'read1stAt':_[_0x0a9e('0x60')](_0x3528b7[_0x0a9e('0x61')])?moment()[_0x0a9e('0x62')](_0x0a9e('0x5b')):undefined});}return null;})[_0x0a9e('0x1d')](function(_0x387489){if(_0x387489){_0x273cb5[_0x0a9e('0x63')]=_0x387489[_0x0a9e('0x5e')]({'plain':!![]});interaction_log[_0x0a9e('0x1e')](_0x0a9e('0x64'),_0x5ba1f9[_0x0a9e('0x65')]['id'],_0x5ba1f9[_0x0a9e('0x65')][_0x0a9e('0x38')],_0x5ba1f9[_0x0a9e('0x65')][_0x0a9e('0x66')],_0x273cb5[_0x0a9e('0x63')]['id'],_0x5ba1f9[_0x0a9e('0x54')]?JSON['stringify'](_0x5ba1f9[_0x0a9e('0x54')]):_0x0a9e('0x67'));return respondWithRpcPromise(_0x0a9e('0x68'),'acceptMessage',_0x273cb5);}return null;})[_0x0a9e('0x1d')](function(_0x30944e){var _0x4b341d=_0x0a9e('0x69')+_0x30944e[_0x0a9e('0x26')][_0x0a9e('0x6a')];return db[_0x0a9e('0x6b')][_0x0a9e('0x3f')](_0x4b341d,{'type':db['Sequelize']['QueryTypes']['SELECT'],'raw':!![]})[_0x0a9e('0x1d')](function(_0x18bf5d){return _0x18bf5d;});})[_0x0a9e('0x1d')](function(_0x23a7d3){if(_0x23a7d3){_0x273cb5[_0x0a9e('0x26')][_0x0a9e('0x6c')]=_0x23a7d3[0x0];if(!_0x5ba1f9[_0x0a9e('0x54')][_0x0a9e('0x5c')])return;return db['User'][_0x0a9e('0x55')]({'where':{'id':_0x5ba1f9[_0x0a9e('0x54')][_0x0a9e('0x5c')],'role':'agent'},'attributes':['id',_0x0a9e('0x38'),'fullname',_0x0a9e('0x6d'),_0x0a9e('0x6e')],'raw':!![]});}return null;})['then'](function(_0x2ed01e){if(!_0x2ed01e)return null;_0x273cb5[_0x0a9e('0x26')][_0x0a9e('0x5d')]=_0x2ed01e;return _0x273cb5;})[_0x0a9e('0x1d')](function(_0x542ece){if(_0x542ece){if(_0x5ba1f9[_0x0a9e('0x54')][_0x0a9e('0x6f')]){_0x273cb5[_0x0a9e('0x26')][_0x0a9e('0x70')]=util['format'](_0x0a9e('0x71'),_0x5ba1f9[_0x0a9e('0x65')][_0x0a9e('0x38')]);_0x273cb5[_0x0a9e('0x26')]['channel']=_0x273cb5[_0x0a9e('0x72')];_0x273cb5[_0x0a9e('0x26')][_0x0a9e('0x73')]=_0x0a9e('0x58');return respondWithRpcPromise(_0x0a9e('0x74'),_0x0a9e('0x74'),{'event':_0x0a9e('0x75'),'message':_[_0x0a9e('0x4c')](_0x273cb5[_0x0a9e('0x26')],JSON[_0x0a9e('0x76')](_0x273cb5[_0x0a9e('0x63')][_0x0a9e('0x77')]))},client9002)[_0x0a9e('0x1d')](function(){return _0x273cb5;});}return _0x273cb5;}return null;})[_0x0a9e('0x1d')](respondWithResult(_0x4b3c1a,null))['catch'](handleError(_0x4b3c1a,null));};var interaction_log=require(_0x0a9e('0x57'))(_0x0a9e('0x78'));exports[_0x0a9e('0x33')]=function(_0x563627,_0x3736e0,_0x33dda0){var _0x8cea96={'agent':{},'channel':_0x0a9e('0x79')};if(_0x563627['body']['id']){delete _0x563627['body']['id'];}_0x563627[_0x0a9e('0x54')][_0x0a9e('0x5c')]=_0x563627['body'][_0x0a9e('0x5c')]||_0x563627['user']['id'];_0x8cea96[_0x0a9e('0x5d')]['id']=_0x563627[_0x0a9e('0x54')]['UserId'];return db[_0x0a9e('0x3b')][_0x0a9e('0x55')]({'where':{'id':_0x563627[_0x0a9e('0x53')]['id'],'UserId':null}})[_0x0a9e('0x1d')](handleEntityNotFound(_0x3736e0,null))[_0x0a9e('0x1d')](function(_0x1f42a0){if(_0x1f42a0){_0x8cea96[_0x0a9e('0x26')]=_0x1f42a0['get']({'plain':!![]});return db[_0x0a9e('0x7a')][_0x0a9e('0x55')]({'where':{'id':_0x1f42a0[_0x0a9e('0x5f')]}});}return null;})[_0x0a9e('0x1d')](handleEntityNotFound(_0x3736e0,null))['then'](function(_0xf51744){if(_0xf51744){_0x8cea96[_0x0a9e('0x63')]=_0xf51744['get']({'plain':!![]});interaction_log[_0x0a9e('0x1e')]('[CHATMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x563627[_0x0a9e('0x65')]['id'],_0x563627[_0x0a9e('0x65')][_0x0a9e('0x38')],_0x563627[_0x0a9e('0x65')]['role'],_0x8cea96['interaction']['id'],_0x563627[_0x0a9e('0x54')]?JSON[_0x0a9e('0x23')](_0x563627[_0x0a9e('0x54')]):'null');return respondWithRpcPromise(_0x0a9e('0x7b'),_0x0a9e('0x7c'),_0x8cea96);}return null;})['then'](function(_0x4e46b2){var _0xf0a802='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x4e46b2['message']['ContactId'];return db[_0x0a9e('0x6b')][_0x0a9e('0x3f')](_0xf0a802,{'type':db[_0x0a9e('0x7d')][_0x0a9e('0x7e')][_0x0a9e('0x7f')],'raw':!![]})[_0x0a9e('0x1d')](function(_0x5a8854){return _0x5a8854;});})[_0x0a9e('0x1d')](function(_0x5955f1){if(_0x5955f1){_0x8cea96[_0x0a9e('0x26')][_0x0a9e('0x6c')]=_0x5955f1[0x0];if(!_0x563627[_0x0a9e('0x54')][_0x0a9e('0x5c')])return;return db['User'][_0x0a9e('0x55')]({'where':{'id':_0x563627[_0x0a9e('0x54')][_0x0a9e('0x5c')],'role':'agent'},'attributes':['id',_0x0a9e('0x38'),_0x0a9e('0x80'),_0x0a9e('0x6d'),_0x0a9e('0x6e')],'raw':!![]});}return null;})[_0x0a9e('0x1d')](function(_0x1910bf){if(!_0x1910bf)return null;_0x8cea96[_0x0a9e('0x26')][_0x0a9e('0x5d')]=_0x1910bf;return _0x8cea96;})['then'](function(_0x2645d6){if(_0x2645d6){_0x2645d6[_0x0a9e('0x26')]['interface']=util[_0x0a9e('0x62')](_0x0a9e('0x71'),_0x563627[_0x0a9e('0x65')]['name']);_0x2645d6[_0x0a9e('0x26')]['channel']=_0x8cea96[_0x0a9e('0x72')];_0x2645d6[_0x0a9e('0x26')][_0x0a9e('0x73')]=_0x0a9e('0x33');respondWithRpcPromise(_0x0a9e('0x74'),_0x0a9e('0x74'),{'event':_0x0a9e('0x81'),'message':_[_0x0a9e('0x4c')](_0x8cea96['message'],JSON[_0x0a9e('0x76')](_0x8cea96[_0x0a9e('0x63')][_0x0a9e('0x77')]))},client9002);return _0x8cea96;}return null;})[_0x0a9e('0x1d')](respondWithResult(_0x3736e0,null))[_0x0a9e('0x28')](handleError(_0x3736e0,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa1dd=['ChatMessage','setMaxListeners','update','emit','hasOwnProperty','hook','exports','events','../../mysqldb'];(function(_0x4b4508,_0x2fd5cf){var _0x49db31=function(_0x41217a){while(--_0x41217a){_0x4b4508['push'](_0x4b4508['shift']());}};_0x49db31(++_0x2fd5cf);}(_0xa1dd,0x11e));var _0xda1d=function(_0x3e80af,_0x132c33){_0x3e80af=_0x3e80af-0x0;var _0x1ec9a8=_0xa1dd[_0x3e80af];return _0x1ec9a8;};'use strict';var EventEmitter=require(_0xda1d('0x0'));var ChatMessage=require(_0xda1d('0x1'))['db'][_0xda1d('0x2')];var ChatMessageEvents=new EventEmitter();ChatMessageEvents[_0xda1d('0x3')](0x0);var events={'afterCreate':'save','afterUpdate':_0xda1d('0x4'),'afterDestroy':'remove'};function emitEvent(_0x45d4eb){return function(_0x39fe07,_0x29b6a8,_0x5d9375){ChatMessageEvents[_0xda1d('0x5')](_0x45d4eb+':'+_0x39fe07['id'],_0x39fe07);ChatMessageEvents[_0xda1d('0x5')](_0x45d4eb,_0x39fe07);_0x5d9375(null);};}for(var e in events){if(events[_0xda1d('0x6')](e)){var event=events[e];ChatMessage[_0xda1d('0x7')](e,emitEvent(event));}}module[_0xda1d('0x8')]=ChatMessageEvents;
\ No newline at end of file
+var _0xbd30=['ChatMessage','setMaxListeners','save','update','remove','emit','hasOwnProperty','hook','exports','events','../../mysqldb'];(function(_0x400711,_0x152731){var _0x41f237=function(_0x5091bf){while(--_0x5091bf){_0x400711['push'](_0x400711['shift']());}};_0x41f237(++_0x152731);}(_0xbd30,0x1cc));var _0x0bd3=function(_0x42bdad,_0x12836c){_0x42bdad=_0x42bdad-0x0;var _0x122626=_0xbd30[_0x42bdad];return _0x122626;};'use strict';var EventEmitter=require(_0x0bd3('0x0'));var ChatMessage=require(_0x0bd3('0x1'))['db'][_0x0bd3('0x2')];var ChatMessageEvents=new EventEmitter();ChatMessageEvents[_0x0bd3('0x3')](0x0);var events={'afterCreate':_0x0bd3('0x4'),'afterUpdate':_0x0bd3('0x5'),'afterDestroy':_0x0bd3('0x6')};function emitEvent(_0x3698fd){return function(_0x144fda,_0x3263c4,_0x4720eb){ChatMessageEvents['emit'](_0x3698fd+':'+_0x144fda['id'],_0x144fda);ChatMessageEvents[_0x0bd3('0x7')](_0x3698fd,_0x144fda);_0x4720eb(null);};}for(var e in events){if(events[_0x0bd3('0x8')](e)){var event=events[e];ChatMessage[_0x0bd3('0x9')](e,emitEvent(event));}}module[_0x0bd3('0xa')]=ChatMessageEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9380=['api','moment','bluebird','path','rimraf','../../config/environment','./chatMessage.attributes','exports','define','ChatMessage','chat_messages','fti_chat_messages','body','FULLTEXT','models','get','direction','toLowerCase','out','UserId','ChatInteraction','findOne','ChatInteractionId','then','update','createdAt','catch','error','utf8mb4_unicode_ci'];(function(_0x1eb9f0,_0x16f8a6){var _0x3b900a=function(_0x6cd644){while(--_0x6cd644){_0x1eb9f0['push'](_0x1eb9f0['shift']());}};_0x3b900a(++_0x16f8a6);}(_0x9380,0x1b3));var _0x0938=function(_0x29d94e,_0xf386d6){_0x29d94e=_0x29d94e-0x0;var _0x106237=_0x9380[_0x29d94e];return _0x106237;};'use strict';var _=require('lodash');var util=require('util');var logger=require('../../config/logger')(_0x0938('0x0'));var moment=require(_0x0938('0x1'));var BPromise=require(_0x0938('0x2'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x0938('0x3'));var rimraf=require(_0x0938('0x4'));var config=require(_0x0938('0x5'));var attributes=require(_0x0938('0x6'));module[_0x0938('0x7')]=function(_0x39e169,_0x27def8){return _0x39e169[_0x0938('0x8')](_0x0938('0x9'),attributes,{'tableName':_0x0938('0xa'),'paranoid':![],'indexes':[{'name':_0x0938('0xb'),'fields':[_0x0938('0xc')],'type':_0x0938('0xd')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x409fe6,_0x360d34,_0x134a03){var _0x4d0520=_0x39e169[_0x0938('0xe')];var _0x361195=_0x409fe6[_0x0938('0xf')]({'plain':!![]});if(_0x361195[_0x0938('0x10')][_0x0938('0x11')]()==='in'||_0x361195['direction'][_0x0938('0x11')]()===_0x0938('0x12')&&!_0x361195['secret']&&!_['isNil'](_0x361195[_0x0938('0x13')])){_0x4d0520[_0x0938('0x14')][_0x0938('0x15')]({'where':{'id':_0x361195[_0x0938('0x16')]}})[_0x0938('0x17')](function(_0x5620b3){if(_0x5620b3){_0x5620b3[_0x0938('0x18')]({'lastMsgAt':_0x361195[_0x0938('0x19')],'lastMsgDirection':_0x361195[_0x0938('0x10')][_0x0938('0x11')]()});}})[_0x0938('0x1a')](function(_0x5829b9){console[_0x0938('0x1b')](_0x5829b9);});}_0x134a03();}},'charset':'utf8mb4','collate':_0x0938('0x1c')});};
\ No newline at end of file
+var _0x32c3=['isNil','UserId','ChatInteraction','findOne','ChatInteractionId','then','update','createdAt','catch','error','utf8mb4_unicode_ci','lodash','api','moment','bluebird','request-promise','path','rimraf','./chatMessage.attributes','exports','define','ChatMessage','chat_messages','fti_chat_messages','FULLTEXT','models','direction','toLowerCase','out','secret'];(function(_0x502c7d,_0x2f1285){var _0x30b7ed=function(_0x2d92f3){while(--_0x2d92f3){_0x502c7d['push'](_0x502c7d['shift']());}};_0x30b7ed(++_0x2f1285);}(_0x32c3,0xfb));var _0x332c=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0x32c3[_0x20a584];return _0x4b41a8;};'use strict';var _=require(_0x332c('0x0'));var util=require('util');var logger=require('../../config/logger')(_0x332c('0x1'));var moment=require(_0x332c('0x2'));var BPromise=require(_0x332c('0x3'));var rp=require(_0x332c('0x4'));var fs=require('fs');var path=require(_0x332c('0x5'));var rimraf=require(_0x332c('0x6'));var config=require('../../config/environment');var attributes=require(_0x332c('0x7'));module[_0x332c('0x8')]=function(_0x4eb868,_0x536898){return _0x4eb868[_0x332c('0x9')](_0x332c('0xa'),attributes,{'tableName':_0x332c('0xb'),'paranoid':![],'indexes':[{'name':_0x332c('0xc'),'fields':['body'],'type':_0x332c('0xd')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x3501e,_0x50f76e,_0x5b77ec){var _0x155686=_0x4eb868[_0x332c('0xe')];var _0xeec242=_0x3501e['get']({'plain':!![]});if(_0xeec242[_0x332c('0xf')][_0x332c('0x10')]()==='in'||_0xeec242[_0x332c('0xf')][_0x332c('0x10')]()===_0x332c('0x11')&&!_0xeec242[_0x332c('0x12')]&&!_[_0x332c('0x13')](_0xeec242[_0x332c('0x14')])){_0x155686[_0x332c('0x15')][_0x332c('0x16')]({'where':{'id':_0xeec242[_0x332c('0x17')]}})[_0x332c('0x18')](function(_0x3ab4fd){if(_0x3ab4fd){_0x3ab4fd[_0x332c('0x19')]({'lastMsgAt':_0xeec242[_0x332c('0x1a')],'lastMsgDirection':_0xeec242[_0x332c('0xf')]['toLowerCase']()});}})[_0x332c('0x1b')](function(_0x45ac94){console[_0x332c('0x1c')](_0x45ac94);});}_0x5b77ec();}},'charset':'utf8mb4','collate':_0x332c('0x1d')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5a43=['socket.io-emitter','./chatMessage.socket','register','info','ChatMessage,\x20%s,\x20%s','debug','ChatMessage,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','catch','ChatMessage','create','options','raw','then','CreateChatMessage','lodash','util','bluebird','randomstring','../../mysqldb','../../config/utils','rpc','jayson/promise','client','http','defaults','redis'];(function(_0x170983,_0x49786d){var _0x1e6962=function(_0x19075a){while(--_0x19075a){_0x170983['push'](_0x170983['shift']());}};_0x1e6962(++_0x49786d);}(_0x5a43,0x12a));var _0x35a4=function(_0x1813d8,_0x52abf1){_0x1813d8=_0x1813d8-0x0;var _0xf09630=_0x5a43[_0x1813d8];return _0xf09630;};'use strict';var _=require(_0x35a4('0x0'));var util=require(_0x35a4('0x1'));var moment=require('moment');var BPromise=require(_0x35a4('0x2'));var rs=require(_0x35a4('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x35a4('0x4'))['db'];var utils=require(_0x35a4('0x5'));var logger=require('../../config/logger')(_0x35a4('0x6'));var config=require('../../config/environment');var jayson=require(_0x35a4('0x7'));var client=jayson[_0x35a4('0x8')][_0x35a4('0x9')]({'port':0x232a});config['redis']=_[_0x35a4('0xa')](config[_0x35a4('0xb')],{'host':'localhost','port':0x18eb});var socket=require(_0x35a4('0xc'))(new Redis(config['redis']));require(_0x35a4('0xd'))[_0x35a4('0xe')](socket);function respondWithRpcPromise(_0xaf708a,_0x1631fa,_0x5431e5){return new BPromise(function(_0x4194dc,_0x4f44e5){return client['request'](_0xaf708a,_0x5431e5)['then'](function(_0x5c3f13){logger[_0x35a4('0xf')](_0x35a4('0x10'),_0x1631fa,'request\x20sent');logger[_0x35a4('0x11')](_0x35a4('0x12'),_0x1631fa,_0x35a4('0x13'),JSON[_0x35a4('0x14')](_0x5c3f13));if(_0x5c3f13['error']){if(_0x5c3f13[_0x35a4('0x15')][_0x35a4('0x16')]===0x1f4){logger[_0x35a4('0x15')](_0x35a4('0x10'),_0x1631fa,_0x5c3f13[_0x35a4('0x15')][_0x35a4('0x17')]);return _0x4f44e5(_0x5c3f13[_0x35a4('0x15')][_0x35a4('0x17')]);}logger[_0x35a4('0x15')]('ChatMessage,\x20%s,\x20%s',_0x1631fa,_0x5c3f13[_0x35a4('0x15')]['message']);return _0x4194dc(_0x5c3f13[_0x35a4('0x15')][_0x35a4('0x17')]);}else{logger['info']('ChatMessage,\x20%s,\x20%s',_0x1631fa,_0x35a4('0x13'));_0x4194dc(_0x5c3f13['result'][_0x35a4('0x17')]);}})[_0x35a4('0x18')](function(_0x5a6ab1){logger[_0x35a4('0x15')](_0x35a4('0x10'),_0x1631fa,_0x5a6ab1);_0x4f44e5(_0x5a6ab1);});});}exports['CreateChatMessage']=function(_0x323446){var _0x2e29ee=this;return new Promise(function(_0x1c5a0a,_0x49d5ce){return db[_0x35a4('0x19')][_0x35a4('0x1a')](_0x323446['body'],{'raw':_0x323446['options']?_0x323446[_0x35a4('0x1b')][_0x35a4('0x1c')]===undefined?!![]:![]:!![]})[_0x35a4('0x1d')](function(_0x11b9d5){logger[_0x35a4('0xf')](_0x35a4('0x1e'),_0x323446);logger['debug'](_0x35a4('0x1e'),_0x323446,JSON[_0x35a4('0x14')](_0x11b9d5));_0x1c5a0a(_0x11b9d5);})['catch'](function(_0x5785fd){logger[_0x35a4('0x15')]('CreateChatMessage',_0x5785fd[_0x35a4('0x17')],_0x323446);_0x49d5ce(_0x2e29ee[_0x35a4('0x15')](0x1f4,_0x5785fd[_0x35a4('0x17')]));});});};
\ No newline at end of file
+var _0xae87=['socket.io-emitter','register','request','then','ChatMessage,\x20%s,\x20%s','request\x20sent','ChatMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','CreateChatMessage','ChatMessage','create','body','options','debug','moment','bluebird','randomstring','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','localhost'];(function(_0x13ea00,_0x12f610){var _0x1f7347=function(_0x34ae63){while(--_0x34ae63){_0x13ea00['push'](_0x13ea00['shift']());}};_0x1f7347(++_0x12f610);}(_0xae87,0x194));var _0x7ae8=function(_0x16051a,_0x5e4326){_0x16051a=_0x16051a-0x0;var _0x35d20d=_0xae87[_0x16051a];return _0x35d20d;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x7ae8('0x0'));var BPromise=require(_0x7ae8('0x1'));var rs=require(_0x7ae8('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x7ae8('0x3'));var logger=require(_0x7ae8('0x4'))(_0x7ae8('0x5'));var config=require(_0x7ae8('0x6'));var jayson=require(_0x7ae8('0x7'));var client=jayson[_0x7ae8('0x8')][_0x7ae8('0x9')]({'port':0x232a});config['redis']=_['defaults'](config[_0x7ae8('0xa')],{'host':_0x7ae8('0xb'),'port':0x18eb});var socket=require(_0x7ae8('0xc'))(new Redis(config[_0x7ae8('0xa')]));require('./chatMessage.socket')[_0x7ae8('0xd')](socket);function respondWithRpcPromise(_0x50c0b6,_0x48913a,_0x4c7ee0){return new BPromise(function(_0x52b406,_0x515c7e){return client[_0x7ae8('0xe')](_0x50c0b6,_0x4c7ee0)[_0x7ae8('0xf')](function(_0x2011d6){logger['info'](_0x7ae8('0x10'),_0x48913a,_0x7ae8('0x11'));logger['debug'](_0x7ae8('0x12'),_0x48913a,_0x7ae8('0x11'),JSON[_0x7ae8('0x13')](_0x2011d6));if(_0x2011d6[_0x7ae8('0x14')]){if(_0x2011d6[_0x7ae8('0x14')][_0x7ae8('0x15')]===0x1f4){logger[_0x7ae8('0x14')](_0x7ae8('0x10'),_0x48913a,_0x2011d6['error'][_0x7ae8('0x16')]);return _0x515c7e(_0x2011d6[_0x7ae8('0x14')]['message']);}logger[_0x7ae8('0x14')]('ChatMessage,\x20%s,\x20%s',_0x48913a,_0x2011d6['error'][_0x7ae8('0x16')]);return _0x52b406(_0x2011d6[_0x7ae8('0x14')]['message']);}else{logger[_0x7ae8('0x17')](_0x7ae8('0x10'),_0x48913a,'request\x20sent');_0x52b406(_0x2011d6[_0x7ae8('0x18')][_0x7ae8('0x16')]);}})[_0x7ae8('0x19')](function(_0x52acc7){logger[_0x7ae8('0x14')](_0x7ae8('0x10'),_0x48913a,_0x52acc7);_0x515c7e(_0x52acc7);});});}exports[_0x7ae8('0x1a')]=function(_0x4e46e4){var _0x22912d=this;return new Promise(function(_0x17a0bc,_0xbe25b4){return db[_0x7ae8('0x1b')][_0x7ae8('0x1c')](_0x4e46e4[_0x7ae8('0x1d')],{'raw':_0x4e46e4['options']?_0x4e46e4[_0x7ae8('0x1e')]['raw']===undefined?!![]:![]:!![]})[_0x7ae8('0xf')](function(_0x47b4ff){logger[_0x7ae8('0x17')](_0x7ae8('0x1a'),_0x4e46e4);logger[_0x7ae8('0x1f')]('CreateChatMessage',_0x4e46e4,JSON[_0x7ae8('0x13')](_0x47b4ff));_0x17a0bc(_0x47b4ff);})[_0x7ae8('0x19')](function(_0x2038f2){logger[_0x7ae8('0x14')]('CreateChatMessage',_0x2038f2[_0x7ae8('0x16')],_0x4e46e4);_0xbe25b4(_0x22912d[_0x7ae8('0x14')](0x1f4,_0x2038f2[_0x7ae8('0x16')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x50d0=['update','removeListener','register','length','chatMessage:','./chatMessage.events','remove'];(function(_0x19b3f9,_0xade753){var _0x18c3f6=function(_0x21439f){while(--_0x21439f){_0x19b3f9['push'](_0x19b3f9['shift']());}};_0x18c3f6(++_0xade753);}(_0x50d0,0x101));var _0x050d=function(_0x5df47d,_0x56b70d){_0x5df47d=_0x5df47d-0x0;var _0x503d79=_0x50d0[_0x5df47d];return _0x503d79;};'use strict';var ChatMessageEvents=require(_0x050d('0x0'));var events=['save',_0x050d('0x1'),_0x050d('0x2')];function createListener(_0x449ea6,_0x3a26e2){return function(_0x2d73d4){_0x3a26e2['emit'](_0x449ea6,_0x2d73d4);};}function removeListener(_0x3553e3,_0xd37556){return function(){ChatMessageEvents[_0x050d('0x3')](_0x3553e3,_0xd37556);};}exports[_0x050d('0x4')]=function(_0x3c2dbe){for(var _0x20bede=0x0,_0x348909=events[_0x050d('0x5')];_0x20bede<_0x348909;_0x20bede++){var _0x2b2faa=events[_0x20bede];var _0x516f5d=createListener(_0x050d('0x6')+_0x2b2faa,_0x3c2dbe);ChatMessageEvents['on'](_0x2b2faa,_0x516f5d);}};
\ No newline at end of file
+var _0x37c5=['remove','update','emit','removeListener','chatMessage:','save'];(function(_0x242290,_0x53782e){var _0x5a530f=function(_0xa05208){while(--_0xa05208){_0x242290['push'](_0x242290['shift']());}};_0x5a530f(++_0x53782e);}(_0x37c5,0xa7));var _0x537c=function(_0x23f8e8,_0x2de8a5){_0x23f8e8=_0x23f8e8-0x0;var _0x195a5e=_0x37c5[_0x23f8e8];return _0x195a5e;};'use strict';var ChatMessageEvents=require('./chatMessage.events');var events=[_0x537c('0x0'),_0x537c('0x1'),_0x537c('0x2')];function createListener(_0x11f076,_0x1c5b5f){return function(_0x183b59){_0x1c5b5f[_0x537c('0x3')](_0x11f076,_0x183b59);};}function removeListener(_0x42bd15,_0x2c0854){return function(){ChatMessageEvents[_0x537c('0x4')](_0x42bd15,_0x2c0854);};}exports['register']=function(_0x42c86a){for(var _0x1156f4=0x0,_0x336920=events['length'];_0x1156f4<_0x336920;_0x1156f4++){var _0x36bf4a=events[_0x1156f4];var _0x67f986=createListener(_0x537c('0x5')+_0x36bf4a,_0x42c86a);ChatMessageEvents['on'](_0x36bf4a,_0x67f986);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb73f=['isAuthenticated','index','get','/describe','describe','show','post','tracked','chat','create','update','/:id/accept','put','/:id/reject','/:id','destroy','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','./chatMessage.controller'];(function(_0x470bfb,_0x389787){var _0x2f5d97=function(_0x3431b4){while(--_0x3431b4){_0x470bfb['push'](_0x470bfb['shift']());}};_0x2f5d97(++_0x389787);}(_0xb73f,0x149));var _0xfb73=function(_0x29e91f,_0x19746f){_0x29e91f=_0x29e91f-0x0;var _0x96024=_0xb73f[_0x29e91f];return _0x96024;};'use strict';var multer=require(_0xfb73('0x0'));var util=require(_0xfb73('0x1'));var path=require(_0xfb73('0x2'));var timeout=require(_0xfb73('0x3'));var express=require(_0xfb73('0x4'));var router=express[_0xfb73('0x5')]();var fs_extra=require(_0xfb73('0x6'));var auth=require(_0xfb73('0x7'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0xfb73('0x8'));router['get']('/',auth[_0xfb73('0x9')](),controller[_0xfb73('0xa')]);router[_0xfb73('0xb')](_0xfb73('0xc'),auth['isAuthenticated'](),controller[_0xfb73('0xd')]);router[_0xfb73('0xb')]('/:id',auth[_0xfb73('0x9')](),controller[_0xfb73('0xe')]);router[_0xfb73('0xf')]('/',auth[_0xfb73('0x9')](),interaction[_0xfb73('0x10')](_0xfb73('0x11'),'chatmessage:create'),controller[_0xfb73('0x12')]);router['put']('/:id',controller[_0xfb73('0x13')]);router['put'](_0xfb73('0x14'),auth['isAuthenticated'](),controller['accept']);router[_0xfb73('0x15')](_0xfb73('0x16'),auth[_0xfb73('0x9')](),controller['reject']);router['delete'](_0xfb73('0x17'),auth['isAuthenticated'](),controller[_0xfb73('0x18')]);module[_0xfb73('0x19')]=router;
\ No newline at end of file
+var _0x1dd9=['reject','delete','destroy','exports','multer','util','connect-timeout','express','Router','../../components/auth/service','./chatMessage.controller','index','/describe','isAuthenticated','describe','get','/:id','show','tracked','chat','chatmessage:create','create','put','update','/:id/accept'];(function(_0x128456,_0x46d3de){var _0x3d572f=function(_0x5c0f1d){while(--_0x5c0f1d){_0x128456['push'](_0x128456['shift']());}};_0x3d572f(++_0x46d3de);}(_0x1dd9,0x9a));var _0x91dd=function(_0x2085ce,_0x532817){_0x2085ce=_0x2085ce-0x0;var _0x24c343=_0x1dd9[_0x2085ce];return _0x24c343;};'use strict';var multer=require(_0x91dd('0x0'));var util=require(_0x91dd('0x1'));var path=require('path');var timeout=require(_0x91dd('0x2'));var express=require(_0x91dd('0x3'));var router=express[_0x91dd('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0x91dd('0x5'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0x91dd('0x6'));router['get']('/',auth['isAuthenticated'](),controller[_0x91dd('0x7')]);router['get'](_0x91dd('0x8'),auth[_0x91dd('0x9')](),controller[_0x91dd('0xa')]);router[_0x91dd('0xb')](_0x91dd('0xc'),auth['isAuthenticated'](),controller[_0x91dd('0xd')]);router['post']('/',auth[_0x91dd('0x9')](),interaction[_0x91dd('0xe')](_0x91dd('0xf'),_0x91dd('0x10')),controller[_0x91dd('0x11')]);router[_0x91dd('0x12')](_0x91dd('0xc'),controller[_0x91dd('0x13')]);router[_0x91dd('0x12')](_0x91dd('0x14'),auth['isAuthenticated'](),controller['accept']);router[_0x91dd('0x12')]('/:id/reject',auth[_0x91dd('0x9')](),controller[_0x91dd('0x15')]);router[_0x91dd('0x16')]('/:id',auth[_0x91dd('0x9')](),controller[_0x91dd('0x17')]);module[_0x91dd('0x18')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xeb53=['TEXT','exports'];(function(_0x3afb73,_0xaa578f){var _0x5165f2=function(_0x142ac9){while(--_0x142ac9){_0x3afb73['push'](_0x3afb73['shift']());}};_0x5165f2(++_0xaa578f);}(_0xeb53,0x1a7));var _0x3eb5=function(_0x588e7c,_0x112f11){_0x588e7c=_0x588e7c-0x0;var _0x97e0ce=_0xeb53[_0x588e7c];return _0x97e0ce;};'use strict';var Sequelize=require('sequelize');module[_0x3eb5('0x0')]={'body':{'type':Sequelize[_0x3eb5('0x1')]('medium'),'allowNull':![]}};
\ No newline at end of file
+var _0xda53=['medium','sequelize','exports'];(function(_0x50f025,_0x4f2721){var _0x1c1d40=function(_0x16336c){while(--_0x16336c){_0x50f025['push'](_0x50f025['shift']());}};_0x1c1d40(++_0x4f2721);}(_0xda53,0x79));var _0x3da5=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xda53[_0x3dd15e];return _0x231fd0;};'use strict';var Sequelize=require(_0x3da5('0x0'));module[_0x3da5('0x1')]={'body':{'type':Sequelize['TEXT'](_0x3da5('0x2')),'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9957=['sendStatus','status','json','undefined','count','offset','limit','set','Content-Range','reject','save','then','destroy','error','name','send','index','fieldName','type','key','model','map','keys','filters','intersection','query','attributes','fields','length','hasOwnProperty','nolimit','sort','where','filter','merge','VIRTUAL','options','ChatOfflineMessage','findAll','rows','show','rawAttributes','includeAll','include','find','create','catch','body','params','Attachment','forEach','join','root','server','files','attachments','basename','existsSync','remove','describe','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../mysqldb'];(function(_0x31abab,_0x2f71c5){var _0x384373=function(_0x201b7e){while(--_0x201b7e){_0x31abab['push'](_0x31abab['shift']());}};_0x384373(++_0x2f71c5);}(_0x9957,0x93));var _0x7995=function(_0x3b380d,_0x4bf247){_0x3b380d=_0x3b380d-0x0;var _0x54502b=_0x9957[_0x3b380d];return _0x54502b;};'use strict';var emlformat=require(_0x7995('0x0'));var rimraf=require(_0x7995('0x1'));var zipdir=require(_0x7995('0x2'));var jsonpatch=require(_0x7995('0x3'));var rp=require('request-promise');var moment=require(_0x7995('0x4'));var BPromise=require(_0x7995('0x5'));var Mustache=require(_0x7995('0x6'));var util=require(_0x7995('0x7'));var path=require('path');var sox=require(_0x7995('0x8'));var csv=require(_0x7995('0x9'));var ejs=require(_0x7995('0xa'));var fs=require('fs');var fs_extra=require(_0x7995('0xb'));var _=require(_0x7995('0xc'));var squel=require(_0x7995('0xd'));var crypto=require('crypto');var jsforce=require(_0x7995('0xe'));var deskjs=require(_0x7995('0xf'));var toCsv=require('to-csv');var querystring=require(_0x7995('0x10'));var Papa=require(_0x7995('0x11'));var Redis=require(_0x7995('0x12'));var authService=require(_0x7995('0x13'));var qs=require(_0x7995('0x14'));var as=require(_0x7995('0x15'));var hardwareService=require(_0x7995('0x16'));var logger=require('../../config/logger')(_0x7995('0x17'));var utils=require(_0x7995('0x18'));var config=require('../../config/environment');var licenseUtil=require(_0x7995('0x19'));var db=require(_0x7995('0x1a'))['db'];function respondWithStatusCode(_0x19a27e,_0x385f00){_0x385f00=_0x385f00||0xcc;return function(_0x281576){if(_0x281576){return _0x19a27e[_0x7995('0x1b')](_0x385f00);}return _0x19a27e[_0x7995('0x1c')](_0x385f00)['end']();};}function respondWithResult(_0x58f5ad,_0x2b4e94){_0x2b4e94=_0x2b4e94||0xc8;return function(_0x2233dd){if(_0x2233dd){return _0x58f5ad[_0x7995('0x1c')](_0x2b4e94)[_0x7995('0x1d')](_0x2233dd);}};}function respondWithFilteredResult(_0x3f1d3e,_0x1a5310){return function(_0x2202ce){if(_0x2202ce){var _0x41cbf0=typeof _0x1a5310['offset']===_0x7995('0x1e')&&typeof _0x1a5310['limit']===_0x7995('0x1e');var _0x37f297=_0x2202ce[_0x7995('0x1f')];var _0x291317=_0x41cbf0?0x0:_0x1a5310[_0x7995('0x20')];var _0x37a7d4=_0x41cbf0?_0x2202ce['count']:_0x1a5310['offset']+_0x1a5310[_0x7995('0x21')];var _0x5e6f90;if(_0x37a7d4>=_0x37f297){_0x37a7d4=_0x37f297;_0x5e6f90=0xc8;}else{_0x5e6f90=0xce;}_0x3f1d3e['status'](_0x5e6f90);return _0x3f1d3e[_0x7995('0x22')](_0x7995('0x23'),_0x291317+'-'+_0x37a7d4+'/'+_0x37f297)['json'](_0x2202ce);}return null;};}function patchUpdates(_0x3a9b54){return function(_0x51f276){try{jsonpatch['apply'](_0x51f276,_0x3a9b54,!![]);}catch(_0x3e4c54){return BPromise[_0x7995('0x24')](_0x3e4c54);}return _0x51f276[_0x7995('0x25')]();};}function saveUpdates(_0x1a8568,_0x460924){return function(_0x1c278a){if(_0x1c278a){return _0x1c278a['update'](_0x1a8568)[_0x7995('0x26')](function(_0x46ee4b){return _0x46ee4b;});}return null;};}function removeEntity(_0x204507,_0x285437){return function(_0x563799){if(_0x563799){return _0x563799[_0x7995('0x27')]()[_0x7995('0x26')](function(){_0x204507[_0x7995('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x39df42,_0x34e70c){return function(_0x401dc3){if(!_0x401dc3){_0x39df42[_0x7995('0x1b')](0x194);}return _0x401dc3;};}function handleError(_0x3a3fcf,_0x2a307e){_0x2a307e=_0x2a307e||0x1f4;return function(_0x56691a){logger[_0x7995('0x28')](_0x56691a['stack']);if(_0x56691a[_0x7995('0x29')]){delete _0x56691a[_0x7995('0x29')];}_0x3a3fcf[_0x7995('0x1c')](_0x2a307e)[_0x7995('0x2a')](_0x56691a);};}exports[_0x7995('0x2b')]=function(_0x4b6f99,_0x9b2a15){var _0x514445={},_0x456a28={},_0x3250e0={'count':0x0,'rows':[]};var _0x4253e5=_['map'](db['ChatOfflineMessage']['rawAttributes'],function(_0x3573be){return{'name':_0x3573be[_0x7995('0x2c')],'type':_0x3573be[_0x7995('0x2d')][_0x7995('0x2e')]};});_0x456a28[_0x7995('0x2f')]=_[_0x7995('0x30')](_0x4253e5,'name');_0x456a28['query']=_[_0x7995('0x31')](_0x4b6f99['query']);_0x456a28[_0x7995('0x32')]=_[_0x7995('0x33')](_0x456a28[_0x7995('0x2f')],_0x456a28[_0x7995('0x34')]);_0x514445[_0x7995('0x35')]=_['intersection'](_0x456a28[_0x7995('0x2f')],qs[_0x7995('0x36')](_0x4b6f99['query']['fields']));_0x514445['attributes']=_0x514445[_0x7995('0x35')][_0x7995('0x37')]?_0x514445['attributes']:_0x456a28[_0x7995('0x2f')];if(!_0x4b6f99['query'][_0x7995('0x38')](_0x7995('0x39'))){_0x514445[_0x7995('0x21')]=qs['limit'](_0x4b6f99['query'][_0x7995('0x21')]);_0x514445['offset']=qs['offset'](_0x4b6f99[_0x7995('0x34')][_0x7995('0x20')]);}_0x514445['order']=qs[_0x7995('0x3a')](_0x4b6f99[_0x7995('0x34')][_0x7995('0x3a')]);_0x514445[_0x7995('0x3b')]=qs[_0x7995('0x32')](_['pick'](_0x4b6f99[_0x7995('0x34')],_0x456a28[_0x7995('0x32')]),_0x4253e5);if(_0x4b6f99[_0x7995('0x34')][_0x7995('0x3c')]){_0x514445['where']=_[_0x7995('0x3d')](_0x514445[_0x7995('0x3b')],{'$or':_[_0x7995('0x30')](_0x4253e5,function(_0xe5ea43){if(_0xe5ea43[_0x7995('0x2d')]!==_0x7995('0x3e')){var _0x5688a1={};_0x5688a1[_0xe5ea43[_0x7995('0x29')]]={'$like':'%'+_0x4b6f99[_0x7995('0x34')][_0x7995('0x3c')]+'%'};return _0x5688a1;}})});}_0x514445=_[_0x7995('0x3d')]({},_0x514445,_0x4b6f99[_0x7995('0x3f')]);var _0x298fc2={'where':_0x514445[_0x7995('0x3b')]};return db[_0x7995('0x40')][_0x7995('0x1f')](_0x298fc2)[_0x7995('0x26')](function(_0x6fe77b){_0x3250e0[_0x7995('0x1f')]=_0x6fe77b;if(_0x4b6f99[_0x7995('0x34')]['includeAll']){_0x514445['include']=[{'all':!![]}];}return db[_0x7995('0x40')][_0x7995('0x41')](_0x514445);})['then'](function(_0x4b0855){_0x3250e0[_0x7995('0x42')]=_0x4b0855;return _0x3250e0;})['then'](respondWithFilteredResult(_0x9b2a15,_0x514445))['catch'](handleError(_0x9b2a15,null));};exports[_0x7995('0x43')]=function(_0x36e28b,_0x35c8ff){var _0x576b96={'raw':!![],'where':{'id':_0x36e28b['params']['id']}},_0x46ac4f={};_0x46ac4f[_0x7995('0x2f')]=_['keys'](db['ChatOfflineMessage'][_0x7995('0x44')]);_0x46ac4f[_0x7995('0x34')]=_[_0x7995('0x31')](_0x36e28b[_0x7995('0x34')]);_0x46ac4f['filters']=_[_0x7995('0x33')](_0x46ac4f[_0x7995('0x2f')],_0x46ac4f[_0x7995('0x34')]);_0x576b96[_0x7995('0x35')]=_['intersection'](_0x46ac4f['model'],qs[_0x7995('0x36')](_0x36e28b['query'][_0x7995('0x36')]));_0x576b96['attributes']=_0x576b96[_0x7995('0x35')]['length']?_0x576b96[_0x7995('0x35')]:_0x46ac4f[_0x7995('0x2f')];if(_0x36e28b['query'][_0x7995('0x45')]){_0x576b96[_0x7995('0x46')]=[{'all':!![]}];}_0x576b96=_[_0x7995('0x3d')]({},_0x576b96,_0x36e28b[_0x7995('0x3f')]);return db['ChatOfflineMessage'][_0x7995('0x47')](_0x576b96)[_0x7995('0x26')](handleEntityNotFound(_0x35c8ff,null))[_0x7995('0x26')](respondWithResult(_0x35c8ff,null))['catch'](handleError(_0x35c8ff,null));};exports[_0x7995('0x48')]=function(_0x44f516,_0x511567){return db[_0x7995('0x40')][_0x7995('0x48')](_0x44f516['body'],{})[_0x7995('0x26')](respondWithResult(_0x511567,0xc9))[_0x7995('0x49')](handleError(_0x511567,null));};exports['update']=function(_0x3d1dbb,_0x5843ba){if(_0x3d1dbb[_0x7995('0x4a')]['id']){delete _0x3d1dbb[_0x7995('0x4a')]['id'];}return db[_0x7995('0x40')][_0x7995('0x47')]({'where':{'id':_0x3d1dbb[_0x7995('0x4b')]['id']}})[_0x7995('0x26')](handleEntityNotFound(_0x5843ba,null))[_0x7995('0x26')](saveUpdates(_0x3d1dbb['body'],null))[_0x7995('0x26')](respondWithResult(_0x5843ba,null))[_0x7995('0x49')](handleError(_0x5843ba,null));};exports[_0x7995('0x27')]=function(_0x4ffc8a,_0x19da63){return db[_0x7995('0x4c')][_0x7995('0x41')]({'where':{'ChatOfflineMessageId':_0x4ffc8a['params']['id']},'raw':!![]})['then'](function(_0x5a592e){_0x5a592e[_0x7995('0x4d')](function(_0x1fd1ca){var _0x4cf5db=path[_0x7995('0x4e')](config[_0x7995('0x4f')],_0x7995('0x50'),_0x7995('0x51'),_0x7995('0x52'),'offline-chat',_0x1fd1ca[_0x7995('0x53')]);var _0x4ab09f=fs[_0x7995('0x54')](_0x4cf5db);if(_0x4ab09f)fs_extra[_0x7995('0x55')](_0x4cf5db);});})[_0x7995('0x26')](function(){return db['ChatOfflineMessage']['find']({'where':{'id':_0x4ffc8a['params']['id']},'individualHooks':!![]});})['then'](handleEntityNotFound(_0x19da63,null))[_0x7995('0x26')](removeEntity(_0x19da63,null))[_0x7995('0x49')](handleError(_0x19da63,null));};exports[_0x7995('0x56')]=function(_0x150261,_0x1d957e){return db[_0x7995('0x40')][_0x7995('0x56')]()[_0x7995('0x26')](respondWithResult(_0x1d957e,null))[_0x7995('0x49')](handleError(_0x1d957e,null));};
\ No newline at end of file
+var _0x7a54=['filter','VIRTUAL','includeAll','include','findAll','rows','show','params','length','merge','options','find','catch','body','Attachment','join','server','attachments','offline-chat','basename','remove','describe','eml-format','rimraf','zip-dir','request-promise','moment','mustache','util','path','sox','to-csv','fs-extra','squel','crypto','desk.js','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','reject','save','update','then','destroy','error','stack','name','send','index','ChatOfflineMessage','fieldName','type','model','map','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x7a54,0x106));var _0x47a5=function(_0x555264,_0x521c61){_0x555264=_0x555264-0x0;var _0x4f426c=_0x7a54[_0x555264];return _0x4f426c;};'use strict';var emlformat=require(_0x47a5('0x0'));var rimraf=require(_0x47a5('0x1'));var zipdir=require(_0x47a5('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x47a5('0x3'));var moment=require(_0x47a5('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x47a5('0x5'));var util=require(_0x47a5('0x6'));var path=require(_0x47a5('0x7'));var sox=require(_0x47a5('0x8'));var csv=require(_0x47a5('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x47a5('0xa'));var _=require('lodash');var squel=require(_0x47a5('0xb'));var crypto=require(_0x47a5('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x47a5('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x47a5('0xe'));var authService=require(_0x47a5('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0x47a5('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x47a5('0x11'));var utils=require(_0x47a5('0x12'));var config=require(_0x47a5('0x13'));var licenseUtil=require(_0x47a5('0x14'));var db=require(_0x47a5('0x15'))['db'];function respondWithStatusCode(_0xd308b8,_0x1eae59){_0x1eae59=_0x1eae59||0xcc;return function(_0x5beb89){if(_0x5beb89){return _0xd308b8[_0x47a5('0x16')](_0x1eae59);}return _0xd308b8[_0x47a5('0x17')](_0x1eae59)[_0x47a5('0x18')]();};}function respondWithResult(_0x711793,_0x139f25){_0x139f25=_0x139f25||0xc8;return function(_0x620ee9){if(_0x620ee9){return _0x711793[_0x47a5('0x17')](_0x139f25)[_0x47a5('0x19')](_0x620ee9);}};}function respondWithFilteredResult(_0x4e99a8,_0x362359){return function(_0x11faf5){if(_0x11faf5){var _0x3b001e=typeof _0x362359[_0x47a5('0x1a')]===_0x47a5('0x1b')&&typeof _0x362359['limit']==='undefined';var _0x138bc0=_0x11faf5['count'];var _0x5247fd=_0x3b001e?0x0:_0x362359[_0x47a5('0x1a')];var _0xaf70a6=_0x3b001e?_0x11faf5[_0x47a5('0x1c')]:_0x362359[_0x47a5('0x1a')]+_0x362359[_0x47a5('0x1d')];var _0x12b98e;if(_0xaf70a6>=_0x138bc0){_0xaf70a6=_0x138bc0;_0x12b98e=0xc8;}else{_0x12b98e=0xce;}_0x4e99a8[_0x47a5('0x17')](_0x12b98e);return _0x4e99a8[_0x47a5('0x1e')](_0x47a5('0x1f'),_0x5247fd+'-'+_0xaf70a6+'/'+_0x138bc0)['json'](_0x11faf5);}return null;};}function patchUpdates(_0x1570bc){return function(_0xf160ba){try{jsonpatch['apply'](_0xf160ba,_0x1570bc,!![]);}catch(_0x2b0360){return BPromise[_0x47a5('0x20')](_0x2b0360);}return _0xf160ba[_0x47a5('0x21')]();};}function saveUpdates(_0x4c5910,_0xb8ae6c){return function(_0x2f142b){if(_0x2f142b){return _0x2f142b[_0x47a5('0x22')](_0x4c5910)[_0x47a5('0x23')](function(_0x5ef1b1){return _0x5ef1b1;});}return null;};}function removeEntity(_0xe2dea9,_0x385687){return function(_0x513981){if(_0x513981){return _0x513981[_0x47a5('0x24')]()[_0x47a5('0x23')](function(){_0xe2dea9[_0x47a5('0x17')](0xcc)[_0x47a5('0x18')]();});}};}function handleEntityNotFound(_0x3abd6a,_0x50bf17){return function(_0x53078a){if(!_0x53078a){_0x3abd6a[_0x47a5('0x16')](0x194);}return _0x53078a;};}function handleError(_0x5686db,_0x1ea9c8){_0x1ea9c8=_0x1ea9c8||0x1f4;return function(_0x5b6c4e){logger[_0x47a5('0x25')](_0x5b6c4e[_0x47a5('0x26')]);if(_0x5b6c4e[_0x47a5('0x27')]){delete _0x5b6c4e[_0x47a5('0x27')];}_0x5686db[_0x47a5('0x17')](_0x1ea9c8)[_0x47a5('0x28')](_0x5b6c4e);};}exports[_0x47a5('0x29')]=function(_0x136b14,_0x16631f){var _0x361bfa={},_0x1127f8={},_0x11a4fa={'count':0x0,'rows':[]};var _0x3ad507=_['map'](db[_0x47a5('0x2a')]['rawAttributes'],function(_0x2ef875){return{'name':_0x2ef875[_0x47a5('0x2b')],'type':_0x2ef875[_0x47a5('0x2c')]['key']};});_0x1127f8[_0x47a5('0x2d')]=_[_0x47a5('0x2e')](_0x3ad507,_0x47a5('0x27'));_0x1127f8[_0x47a5('0x2f')]=_['keys'](_0x136b14['query']);_0x1127f8[_0x47a5('0x30')]=_[_0x47a5('0x31')](_0x1127f8['model'],_0x1127f8['query']);_0x361bfa[_0x47a5('0x32')]=_[_0x47a5('0x31')](_0x1127f8['model'],qs[_0x47a5('0x33')](_0x136b14['query'][_0x47a5('0x33')]));_0x361bfa[_0x47a5('0x32')]=_0x361bfa['attributes']['length']?_0x361bfa[_0x47a5('0x32')]:_0x1127f8['model'];if(!_0x136b14[_0x47a5('0x2f')][_0x47a5('0x34')](_0x47a5('0x35'))){_0x361bfa['limit']=qs[_0x47a5('0x1d')](_0x136b14['query']['limit']);_0x361bfa[_0x47a5('0x1a')]=qs['offset'](_0x136b14[_0x47a5('0x2f')]['offset']);}_0x361bfa[_0x47a5('0x36')]=qs[_0x47a5('0x37')](_0x136b14[_0x47a5('0x2f')][_0x47a5('0x37')]);_0x361bfa[_0x47a5('0x38')]=qs[_0x47a5('0x30')](_[_0x47a5('0x39')](_0x136b14[_0x47a5('0x2f')],_0x1127f8[_0x47a5('0x30')]),_0x3ad507);if(_0x136b14['query'][_0x47a5('0x3a')]){_0x361bfa[_0x47a5('0x38')]=_['merge'](_0x361bfa[_0x47a5('0x38')],{'$or':_[_0x47a5('0x2e')](_0x3ad507,function(_0x1d4348){if(_0x1d4348['type']!==_0x47a5('0x3b')){var _0x10f660={};_0x10f660[_0x1d4348['name']]={'$like':'%'+_0x136b14[_0x47a5('0x2f')][_0x47a5('0x3a')]+'%'};return _0x10f660;}})});}_0x361bfa=_['merge']({},_0x361bfa,_0x136b14['options']);var _0x5ebd8c={'where':_0x361bfa[_0x47a5('0x38')]};return db['ChatOfflineMessage'][_0x47a5('0x1c')](_0x5ebd8c)[_0x47a5('0x23')](function(_0x301a85){_0x11a4fa[_0x47a5('0x1c')]=_0x301a85;if(_0x136b14[_0x47a5('0x2f')][_0x47a5('0x3c')]){_0x361bfa[_0x47a5('0x3d')]=[{'all':!![]}];}return db[_0x47a5('0x2a')][_0x47a5('0x3e')](_0x361bfa);})[_0x47a5('0x23')](function(_0x280500){_0x11a4fa[_0x47a5('0x3f')]=_0x280500;return _0x11a4fa;})[_0x47a5('0x23')](respondWithFilteredResult(_0x16631f,_0x361bfa))['catch'](handleError(_0x16631f,null));};exports[_0x47a5('0x40')]=function(_0x1c36fa,_0x331474){var _0x23bd8d={'raw':!![],'where':{'id':_0x1c36fa[_0x47a5('0x41')]['id']}},_0x586f4f={};_0x586f4f['model']=_['keys'](db['ChatOfflineMessage']['rawAttributes']);_0x586f4f[_0x47a5('0x2f')]=_['keys'](_0x1c36fa[_0x47a5('0x2f')]);_0x586f4f[_0x47a5('0x30')]=_[_0x47a5('0x31')](_0x586f4f['model'],_0x586f4f[_0x47a5('0x2f')]);_0x23bd8d[_0x47a5('0x32')]=_['intersection'](_0x586f4f['model'],qs[_0x47a5('0x33')](_0x1c36fa['query'][_0x47a5('0x33')]));_0x23bd8d[_0x47a5('0x32')]=_0x23bd8d[_0x47a5('0x32')][_0x47a5('0x42')]?_0x23bd8d[_0x47a5('0x32')]:_0x586f4f[_0x47a5('0x2d')];if(_0x1c36fa[_0x47a5('0x2f')][_0x47a5('0x3c')]){_0x23bd8d[_0x47a5('0x3d')]=[{'all':!![]}];}_0x23bd8d=_[_0x47a5('0x43')]({},_0x23bd8d,_0x1c36fa[_0x47a5('0x44')]);return db[_0x47a5('0x2a')][_0x47a5('0x45')](_0x23bd8d)[_0x47a5('0x23')](handleEntityNotFound(_0x331474,null))[_0x47a5('0x23')](respondWithResult(_0x331474,null))[_0x47a5('0x46')](handleError(_0x331474,null));};exports['create']=function(_0x2d38de,_0x23bb04){return db['ChatOfflineMessage']['create'](_0x2d38de[_0x47a5('0x47')],{})['then'](respondWithResult(_0x23bb04,0xc9))[_0x47a5('0x46')](handleError(_0x23bb04,null));};exports[_0x47a5('0x22')]=function(_0x54c35f,_0x4f62d3){if(_0x54c35f[_0x47a5('0x47')]['id']){delete _0x54c35f['body']['id'];}return db[_0x47a5('0x2a')][_0x47a5('0x45')]({'where':{'id':_0x54c35f[_0x47a5('0x41')]['id']}})[_0x47a5('0x23')](handleEntityNotFound(_0x4f62d3,null))[_0x47a5('0x23')](saveUpdates(_0x54c35f[_0x47a5('0x47')],null))[_0x47a5('0x23')](respondWithResult(_0x4f62d3,null))['catch'](handleError(_0x4f62d3,null));};exports['destroy']=function(_0x2dd1db,_0x411230){return db[_0x47a5('0x48')][_0x47a5('0x3e')]({'where':{'ChatOfflineMessageId':_0x2dd1db[_0x47a5('0x41')]['id']},'raw':!![]})[_0x47a5('0x23')](function(_0x249de5){_0x249de5['forEach'](function(_0x45cca5){var _0x1c9a62=path[_0x47a5('0x49')](config['root'],_0x47a5('0x4a'),'files',_0x47a5('0x4b'),_0x47a5('0x4c'),_0x45cca5[_0x47a5('0x4d')]);var _0xf03bd5=fs['existsSync'](_0x1c9a62);if(_0xf03bd5)fs_extra[_0x47a5('0x4e')](_0x1c9a62);});})[_0x47a5('0x23')](function(){return db[_0x47a5('0x2a')][_0x47a5('0x45')]({'where':{'id':_0x2dd1db[_0x47a5('0x41')]['id']},'individualHooks':!![]});})[_0x47a5('0x23')](handleEntityNotFound(_0x411230,null))[_0x47a5('0x23')](removeEntity(_0x411230,null))['catch'](handleError(_0x411230,null));};exports[_0x47a5('0x4f')]=function(_0x43721b,_0x187d7e){return db[_0x47a5('0x2a')][_0x47a5('0x4f')]()[_0x47a5('0x23')](respondWithResult(_0x187d7e,null))['catch'](handleError(_0x187d7e,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2059=['bluebird','./chatOfflineMessage.attributes','define','utf8mb4','utf8mb4_unicode_ci','lodash','util','../../config/logger','api','moment'];(function(_0x4565bf,_0x5ad9d6){var _0x5610ba=function(_0x170988){while(--_0x170988){_0x4565bf['push'](_0x4565bf['shift']());}};_0x5610ba(++_0x5ad9d6);}(_0x2059,0x113));var _0x9205=function(_0x30f5bb,_0x4db4bd){_0x30f5bb=_0x30f5bb-0x0;var _0x1cfc00=_0x2059[_0x30f5bb];return _0x1cfc00;};'use strict';var _=require(_0x9205('0x0'));var util=require(_0x9205('0x1'));var logger=require(_0x9205('0x2'))(_0x9205('0x3'));var moment=require(_0x9205('0x4'));var BPromise=require(_0x9205('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0x9205('0x6'));module['exports']=function(_0x4db99a,_0x11ccc8){return _0x4db99a[_0x9205('0x7')]('ChatOfflineMessage',attributes,{'tableName':'chat_offline_messages','paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x9205('0x8'),'collate':_0x9205('0x9')});};
\ No newline at end of file
+var _0x6af5=['../../config/environment','./chatOfflineMessage.attributes','exports','define','chat_offline_messages','utf8mb4','lodash','../../config/logger','api','moment','bluebird','path','rimraf'];(function(_0x1bb264,_0x2e0ab5){var _0x574634=function(_0x2d2fcd){while(--_0x2d2fcd){_0x1bb264['push'](_0x1bb264['shift']());}};_0x574634(++_0x2e0ab5);}(_0x6af5,0xe3));var _0x56af=function(_0x39096d,_0x51f8a0){_0x39096d=_0x39096d-0x0;var _0x13da4f=_0x6af5[_0x39096d];return _0x13da4f;};'use strict';var _=require(_0x56af('0x0'));var util=require('util');var logger=require(_0x56af('0x1'))(_0x56af('0x2'));var moment=require(_0x56af('0x3'));var BPromise=require(_0x56af('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x56af('0x5'));var rimraf=require(_0x56af('0x6'));var config=require(_0x56af('0x7'));var attributes=require(_0x56af('0x8'));module[_0x56af('0x9')]=function(_0x32cb98,_0x5efae7){return _0x32cb98[_0x56af('0xa')]('ChatOfflineMessage',attributes,{'tableName':_0x56af('0xb'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x56af('0xc'),'collate':'utf8mb4_unicode_ci'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x62f0=['error','message','bluebird','randomstring','ioredis','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','then','info','ChatOfflineMessage,\x20%s,\x20%s','request\x20sent','ChatOfflineMessage,\x20%s,\x20%s,\x20%s','stringify'];(function(_0x835dbc,_0x3852e3){var _0x1ac9d7=function(_0x295263){while(--_0x295263){_0x835dbc['push'](_0x835dbc['shift']());}};_0x1ac9d7(++_0x3852e3);}(_0x62f0,0x167));var _0x062f=function(_0x121350,_0x361f4d){_0x121350=_0x121350-0x0;var _0x2e21c7=_0x62f0[_0x121350];return _0x2e21c7;};'use strict';var _=require('lodash');var util=require('util');var moment=require('moment');var BPromise=require(_0x062f('0x0'));var rs=require(_0x062f('0x1'));var fs=require('fs');var Redis=require(_0x062f('0x2'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x062f('0x3'))(_0x062f('0x4'));var config=require(_0x062f('0x5'));var jayson=require(_0x062f('0x6'));var client=jayson[_0x062f('0x7')][_0x062f('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x504846,_0x5ae756,_0x107f00){return new BPromise(function(_0xde7ab0,_0x12d7fb){return client['request'](_0x504846,_0x107f00)[_0x062f('0x9')](function(_0x493d13){logger[_0x062f('0xa')](_0x062f('0xb'),_0x5ae756,_0x062f('0xc'));logger['debug'](_0x062f('0xd'),_0x5ae756,_0x062f('0xc'),JSON[_0x062f('0xe')](_0x493d13));if(_0x493d13['error']){if(_0x493d13['error']['code']===0x1f4){logger[_0x062f('0xf')](_0x062f('0xb'),_0x5ae756,_0x493d13[_0x062f('0xf')][_0x062f('0x10')]);return _0x12d7fb(_0x493d13[_0x062f('0xf')][_0x062f('0x10')]);}logger[_0x062f('0xf')](_0x062f('0xb'),_0x5ae756,_0x493d13[_0x062f('0xf')][_0x062f('0x10')]);return _0xde7ab0(_0x493d13['error'][_0x062f('0x10')]);}else{logger['info'](_0x062f('0xb'),_0x5ae756,_0x062f('0xc'));_0xde7ab0(_0x493d13['result'][_0x062f('0x10')]);}})['catch'](function(_0x41162c){logger['error'](_0x062f('0xb'),_0x5ae756,_0x41162c);_0x12d7fb(_0x41162c);});});}
\ No newline at end of file
+var _0x8994=['http','request','then','info','ChatOfflineMessage,\x20%s,\x20%s','debug','ChatOfflineMessage,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','code','error','message','result','catch','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','client'];(function(_0x13b8f3,_0x442821){var _0x1a6d06=function(_0x5126f2){while(--_0x5126f2){_0x13b8f3['push'](_0x13b8f3['shift']());}};_0x1a6d06(++_0x442821);}(_0x8994,0xe6));var _0x4899=function(_0x1e4360,_0x930b9b){_0x1e4360=_0x1e4360-0x0;var _0x31e6b4=_0x8994[_0x1e4360];return _0x31e6b4;};'use strict';var _=require(_0x4899('0x0'));var util=require('util');var moment=require(_0x4899('0x1'));var BPromise=require(_0x4899('0x2'));var rs=require(_0x4899('0x3'));var fs=require('fs');var Redis=require(_0x4899('0x4'));var db=require(_0x4899('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0x4899('0x6'))(_0x4899('0x7'));var config=require(_0x4899('0x8'));var jayson=require('jayson/promise');var client=jayson[_0x4899('0x9')][_0x4899('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x38224a,_0x22c64d,_0x119a07){return new BPromise(function(_0x456939,_0x291a06){return client[_0x4899('0xb')](_0x38224a,_0x119a07)[_0x4899('0xc')](function(_0x2da57d){logger[_0x4899('0xd')](_0x4899('0xe'),_0x22c64d,'request\x20sent');logger[_0x4899('0xf')](_0x4899('0x10'),_0x22c64d,_0x4899('0x11'),JSON[_0x4899('0x12')](_0x2da57d));if(_0x2da57d['error']){if(_0x2da57d['error'][_0x4899('0x13')]===0x1f4){logger[_0x4899('0x14')](_0x4899('0xe'),_0x22c64d,_0x2da57d['error'][_0x4899('0x15')]);return _0x291a06(_0x2da57d[_0x4899('0x14')]['message']);}logger[_0x4899('0x14')]('ChatOfflineMessage,\x20%s,\x20%s',_0x22c64d,_0x2da57d['error'][_0x4899('0x15')]);return _0x456939(_0x2da57d[_0x4899('0x14')]['message']);}else{logger[_0x4899('0xd')](_0x4899('0xe'),_0x22c64d,_0x4899('0x11'));_0x456939(_0x2da57d[_0x4899('0x16')][_0x4899('0x15')]);}})[_0x4899('0x17')](function(_0x7d1782){logger[_0x4899('0x14')](_0x4899('0xe'),_0x22c64d,_0x7d1782);_0x291a06(_0x7d1782);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfc6d=['create','put','update','delete','multer','util','connect-timeout','express','../../components/auth/service','../../components/interaction/service','../../config/environment','./chatOfflineMessage.controller','get','isAuthenticated','index','show','post'];(function(_0x3ab47c,_0x5cf435){var _0x1aa972=function(_0x2ca8ff){while(--_0x2ca8ff){_0x3ab47c['push'](_0x3ab47c['shift']());}};_0x1aa972(++_0x5cf435);}(_0xfc6d,0x1ad));var _0xdfc6=function(_0x279f6d,_0x122316){_0x279f6d=_0x279f6d-0x0;var _0x5874a5=_0xfc6d[_0x279f6d];return _0x5874a5;};'use strict';var multer=require(_0xdfc6('0x0'));var util=require(_0xdfc6('0x1'));var path=require('path');var timeout=require(_0xdfc6('0x2'));var express=require(_0xdfc6('0x3'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0xdfc6('0x4'));var interaction=require(_0xdfc6('0x5'));var config=require(_0xdfc6('0x6'));var controller=require(_0xdfc6('0x7'));router[_0xdfc6('0x8')]('/',auth[_0xdfc6('0x9')](),controller[_0xdfc6('0xa')]);router['get']('/describe',auth['isAuthenticated'](),controller['describe']);router['get']('/:id',auth[_0xdfc6('0x9')](),controller[_0xdfc6('0xb')]);router[_0xdfc6('0xc')]('/',auth[_0xdfc6('0x9')](),controller[_0xdfc6('0xd')]);router[_0xdfc6('0xe')]('/:id',auth[_0xdfc6('0x9')](),controller[_0xdfc6('0xf')]);router[_0xdfc6('0x10')]('/:id',auth['isAuthenticated'](),controller['destroy']);module['exports']=router;
\ No newline at end of file
+var _0xdd08=['get','/:id','show','create','put','update','destroy','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../config/environment','./chatOfflineMessage.controller','isAuthenticated','index'];(function(_0x18e521,_0x447311){var _0x289210=function(_0x396e80){while(--_0x396e80){_0x18e521['push'](_0x18e521['shift']());}};_0x289210(++_0x447311);}(_0xdd08,0x1c0));var _0x8dd0=function(_0x59e862,_0x477bf2){_0x59e862=_0x59e862-0x0;var _0x1a25ee=_0xdd08[_0x59e862];return _0x1a25ee;};'use strict';var multer=require(_0x8dd0('0x0'));var util=require(_0x8dd0('0x1'));var path=require(_0x8dd0('0x2'));var timeout=require(_0x8dd0('0x3'));var express=require(_0x8dd0('0x4'));var router=express[_0x8dd0('0x5')]();var fs_extra=require(_0x8dd0('0x6'));var auth=require(_0x8dd0('0x7'));var interaction=require('../../components/interaction/service');var config=require(_0x8dd0('0x8'));var controller=require(_0x8dd0('0x9'));router['get']('/',auth[_0x8dd0('0xa')](),controller[_0x8dd0('0xb')]);router[_0x8dd0('0xc')]('/describe',auth['isAuthenticated'](),controller['describe']);router[_0x8dd0('0xc')](_0x8dd0('0xd'),auth[_0x8dd0('0xa')](),controller[_0x8dd0('0xe')]);router['post']('/',auth['isAuthenticated'](),controller[_0x8dd0('0xf')]);router[_0x8dd0('0x10')]('/:id',auth[_0x8dd0('0xa')](),controller[_0x8dd0('0x11')]);router['delete'](_0x8dd0('0xd'),auth[_0x8dd0('0xa')](),controller[_0x8dd0('0x12')]);module[_0x8dd0('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x00e4=['STRING','ENUM','mouseOver','sequelize','exports'];(function(_0x4df337,_0x3bf41d){var _0x4a1c4e=function(_0x248214){while(--_0x248214){_0x4df337['push'](_0x4df337['shift']());}};_0x4a1c4e(++_0x3bf41d);}(_0x00e4,0x157));var _0x400e=function(_0x565c49,_0x54acd0){_0x565c49=_0x565c49-0x0;var _0x20ca34=_0x00e4[_0x565c49];return _0x20ca34;};'use strict';var Sequelize=require(_0x400e('0x0'));module[_0x400e('0x1')]={'name':{'type':Sequelize[_0x400e('0x2')],'allowNull':![]},'type':{'type':Sequelize[_0x400e('0x3')](_0x400e('0x4'),'timeout'),'defaultValue':_0x400e('0x4')},'selector':{'type':Sequelize[_0x400e('0x2')]},'timeout':{'type':Sequelize['INTEGER']}};
\ No newline at end of file
+var _0x2c42=['ENUM','timeout','mouseOver','exports','STRING'];(function(_0x36bc58,_0x27f03c){var _0x4a547e=function(_0x6326c6){while(--_0x6326c6){_0x36bc58['push'](_0x36bc58['shift']());}};_0x4a547e(++_0x27f03c);}(_0x2c42,0x17a));var _0x22c4=function(_0x4ec16b,_0x1946c8){_0x4ec16b=_0x4ec16b-0x0;var _0x432a1c=_0x2c42[_0x4ec16b];return _0x432a1c;};'use strict';var Sequelize=require('sequelize');module[_0x22c4('0x0')]={'name':{'type':Sequelize[_0x22c4('0x1')],'allowNull':![]},'type':{'type':Sequelize[_0x22c4('0x2')]('mouseOver',_0x22c4('0x3')),'defaultValue':_0x22c4('0x4')},'selector':{'type':Sequelize[_0x22c4('0x1')]},'timeout':{'type':Sequelize['INTEGER']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2171=['querystring','papaparse','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','offset','limit','undefined','count','set','json','apply','reject','save','then','destroy','stack','name','send','show','params','model','rawAttributes','query','keys','intersection','fields','attributes','includeAll','merge','options','ChatProactiveAction','find','catch','create','body','rimraf','zip-dir','fast-json-patch','bluebird','util','path','sox','to-csv','fs-extra','lodash','squel','jsforce','desk.js'];(function(_0x1bc794,_0x3e7f10){var _0x47055f=function(_0x1957e1){while(--_0x1957e1){_0x1bc794['push'](_0x1bc794['shift']());}};_0x47055f(++_0x3e7f10);}(_0x2171,0x143));var _0x1217=function(_0x24f894,_0x2e838b){_0x24f894=_0x24f894-0x0;var _0x36e466=_0x2171[_0x24f894];return _0x36e466;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x1217('0x0'));var zipdir=require(_0x1217('0x1'));var jsonpatch=require(_0x1217('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x1217('0x3'));var Mustache=require('mustache');var util=require(_0x1217('0x4'));var path=require(_0x1217('0x5'));var sox=require(_0x1217('0x6'));var csv=require(_0x1217('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x1217('0x8'));var _=require(_0x1217('0x9'));var squel=require(_0x1217('0xa'));var crypto=require('crypto');var jsforce=require(_0x1217('0xb'));var deskjs=require(_0x1217('0xc'));var toCsv=require(_0x1217('0x7'));var querystring=require(_0x1217('0xd'));var Papa=require(_0x1217('0xe'));var Redis=require(_0x1217('0xf'));var authService=require('../../components/auth/service');var qs=require(_0x1217('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x1217('0x11'));var logger=require(_0x1217('0x12'))(_0x1217('0x13'));var utils=require(_0x1217('0x14'));var config=require(_0x1217('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0x1217('0x16'))['db'];function respondWithStatusCode(_0x358007,_0x1e34e9){_0x1e34e9=_0x1e34e9||0xcc;return function(_0x107d99){if(_0x107d99){return _0x358007[_0x1217('0x17')](_0x1e34e9);}return _0x358007['status'](_0x1e34e9)['end']();};}function respondWithResult(_0xb06ed5,_0x5d8f22){_0x5d8f22=_0x5d8f22||0xc8;return function(_0x4aa848){if(_0x4aa848){return _0xb06ed5[_0x1217('0x18')](_0x5d8f22)['json'](_0x4aa848);}};}function respondWithFilteredResult(_0x4ef9be,_0x2300f0){return function(_0x24a3f3){if(_0x24a3f3){var _0x417cfe=typeof _0x2300f0[_0x1217('0x19')]==='undefined'&&typeof _0x2300f0[_0x1217('0x1a')]===_0x1217('0x1b');var _0x41c34f=_0x24a3f3[_0x1217('0x1c')];var _0x512159=_0x417cfe?0x0:_0x2300f0[_0x1217('0x19')];var _0x24033f=_0x417cfe?_0x24a3f3[_0x1217('0x1c')]:_0x2300f0[_0x1217('0x19')]+_0x2300f0[_0x1217('0x1a')];var _0x20ccb9;if(_0x24033f>=_0x41c34f){_0x24033f=_0x41c34f;_0x20ccb9=0xc8;}else{_0x20ccb9=0xce;}_0x4ef9be[_0x1217('0x18')](_0x20ccb9);return _0x4ef9be[_0x1217('0x1d')]('Content-Range',_0x512159+'-'+_0x24033f+'/'+_0x41c34f)[_0x1217('0x1e')](_0x24a3f3);}return null;};}function patchUpdates(_0x49382b){return function(_0x3bb618){try{jsonpatch[_0x1217('0x1f')](_0x3bb618,_0x49382b,!![]);}catch(_0x5f018c){return BPromise[_0x1217('0x20')](_0x5f018c);}return _0x3bb618[_0x1217('0x21')]();};}function saveUpdates(_0x4ea5e6,_0xb4e4ea){return function(_0x2c625b){if(_0x2c625b){return _0x2c625b['update'](_0x4ea5e6)[_0x1217('0x22')](function(_0x11f512){return _0x11f512;});}return null;};}function removeEntity(_0x1516e8,_0x5b9b7a){return function(_0x4a9c32){if(_0x4a9c32){return _0x4a9c32[_0x1217('0x23')]()[_0x1217('0x22')](function(){_0x1516e8[_0x1217('0x18')](0xcc)['end']();});}};}function handleEntityNotFound(_0x463c66,_0x8bd9d9){return function(_0x1bde0b){if(!_0x1bde0b){_0x463c66[_0x1217('0x17')](0x194);}return _0x1bde0b;};}function handleError(_0x465209,_0x446dc3){_0x446dc3=_0x446dc3||0x1f4;return function(_0x518a0a){logger['error'](_0x518a0a[_0x1217('0x24')]);if(_0x518a0a[_0x1217('0x25')]){delete _0x518a0a['name'];}_0x465209[_0x1217('0x18')](_0x446dc3)[_0x1217('0x26')](_0x518a0a);};}exports[_0x1217('0x27')]=function(_0x21392c,_0x2f5387){var _0x5eb398={'raw':!![],'where':{'id':_0x21392c[_0x1217('0x28')]['id']}},_0xdb98d5={};_0xdb98d5[_0x1217('0x29')]=_['keys'](db['ChatProactiveAction'][_0x1217('0x2a')]);_0xdb98d5[_0x1217('0x2b')]=_[_0x1217('0x2c')](_0x21392c['query']);_0xdb98d5['filters']=_[_0x1217('0x2d')](_0xdb98d5[_0x1217('0x29')],_0xdb98d5[_0x1217('0x2b')]);_0x5eb398['attributes']=_['intersection'](_0xdb98d5[_0x1217('0x29')],qs[_0x1217('0x2e')](_0x21392c[_0x1217('0x2b')][_0x1217('0x2e')]));_0x5eb398[_0x1217('0x2f')]=_0x5eb398['attributes']['length']?_0x5eb398['attributes']:_0xdb98d5['model'];if(_0x21392c[_0x1217('0x2b')][_0x1217('0x30')]){_0x5eb398['include']=[{'all':!![]}];}_0x5eb398=_[_0x1217('0x31')]({},_0x5eb398,_0x21392c[_0x1217('0x32')]);return db[_0x1217('0x33')][_0x1217('0x34')](_0x5eb398)[_0x1217('0x22')](handleEntityNotFound(_0x2f5387,null))[_0x1217('0x22')](respondWithResult(_0x2f5387,null))[_0x1217('0x35')](handleError(_0x2f5387,null));};exports[_0x1217('0x36')]=function(_0x2d6653,_0x445bd2){return db[_0x1217('0x33')][_0x1217('0x36')](_0x2d6653[_0x1217('0x37')],{})[_0x1217('0x22')](respondWithResult(_0x445bd2,0xc9))[_0x1217('0x35')](handleError(_0x445bd2,null));};exports['update']=function(_0xc189a6,_0x3ac293){if(_0xc189a6[_0x1217('0x37')]['id']){delete _0xc189a6['body']['id'];}return db[_0x1217('0x33')]['find']({'where':{'id':_0xc189a6[_0x1217('0x28')]['id']}})['then'](handleEntityNotFound(_0x3ac293,null))[_0x1217('0x22')](saveUpdates(_0xc189a6[_0x1217('0x37')],null))[_0x1217('0x22')](respondWithResult(_0x3ac293,null))[_0x1217('0x35')](handleError(_0x3ac293,null));};exports['destroy']=function(_0xc699b3,_0x437f54){return db[_0x1217('0x33')]['find']({'where':{'id':_0xc699b3[_0x1217('0x28')]['id']}})['then'](handleEntityNotFound(_0x437f54,null))[_0x1217('0x22')](removeEntity(_0x437f54,null))[_0x1217('0x35')](handleError(_0x437f54,null));};
\ No newline at end of file
+var _0xe64a=['length','merge','options','ChatProactiveAction','find','catch','create','body','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','json','offset','undefined','count','set','Content-Range','apply','reject','save','update','then','destroy','error','stack','name','send','params','keys','query','filters','intersection','model','attributes','fields'];(function(_0x1165da,_0x1da017){var _0x1b4b78=function(_0x4bace6){while(--_0x4bace6){_0x1165da['push'](_0x1165da['shift']());}};_0x1b4b78(++_0x1da017);}(_0xe64a,0x1e0));var _0xae64=function(_0x4a9fb1,_0x273043){_0x4a9fb1=_0x4a9fb1-0x0;var _0x348672=_0xe64a[_0x4a9fb1];return _0x348672;};'use strict';var emlformat=require(_0xae64('0x0'));var rimraf=require(_0xae64('0x1'));var zipdir=require(_0xae64('0x2'));var jsonpatch=require(_0xae64('0x3'));var rp=require(_0xae64('0x4'));var moment=require(_0xae64('0x5'));var BPromise=require(_0xae64('0x6'));var Mustache=require(_0xae64('0x7'));var util=require('util');var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xae64('0x8'));var fs=require('fs');var fs_extra=require(_0xae64('0x9'));var _=require(_0xae64('0xa'));var squel=require(_0xae64('0xb'));var crypto=require(_0xae64('0xc'));var jsforce=require(_0xae64('0xd'));var deskjs=require(_0xae64('0xe'));var toCsv=require(_0xae64('0xf'));var querystring=require(_0xae64('0x10'));var Papa=require(_0xae64('0x11'));var Redis=require(_0xae64('0x12'));var authService=require('../../components/auth/service');var qs=require(_0xae64('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0xae64('0x14'))(_0xae64('0x15'));var utils=require(_0xae64('0x16'));var config=require(_0xae64('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0xae64('0x18'))['db'];function respondWithStatusCode(_0x58d0de,_0x59b60a){_0x59b60a=_0x59b60a||0xcc;return function(_0x345caf){if(_0x345caf){return _0x58d0de[_0xae64('0x19')](_0x59b60a);}return _0x58d0de[_0xae64('0x1a')](_0x59b60a)['end']();};}function respondWithResult(_0x1247b0,_0x760b31){_0x760b31=_0x760b31||0xc8;return function(_0x306804){if(_0x306804){return _0x1247b0[_0xae64('0x1a')](_0x760b31)[_0xae64('0x1b')](_0x306804);}};}function respondWithFilteredResult(_0x4c7d1c,_0x2950c5){return function(_0x37bc58){if(_0x37bc58){var _0x717724=typeof _0x2950c5[_0xae64('0x1c')]===_0xae64('0x1d')&&typeof _0x2950c5['limit']===_0xae64('0x1d');var _0x21c285=_0x37bc58[_0xae64('0x1e')];var _0x4613d9=_0x717724?0x0:_0x2950c5[_0xae64('0x1c')];var _0x227223=_0x717724?_0x37bc58[_0xae64('0x1e')]:_0x2950c5[_0xae64('0x1c')]+_0x2950c5['limit'];var _0x3cdd98;if(_0x227223>=_0x21c285){_0x227223=_0x21c285;_0x3cdd98=0xc8;}else{_0x3cdd98=0xce;}_0x4c7d1c[_0xae64('0x1a')](_0x3cdd98);return _0x4c7d1c[_0xae64('0x1f')](_0xae64('0x20'),_0x4613d9+'-'+_0x227223+'/'+_0x21c285)[_0xae64('0x1b')](_0x37bc58);}return null;};}function patchUpdates(_0x20ca7f){return function(_0x49bab9){try{jsonpatch[_0xae64('0x21')](_0x49bab9,_0x20ca7f,!![]);}catch(_0x4a4c4e){return BPromise[_0xae64('0x22')](_0x4a4c4e);}return _0x49bab9[_0xae64('0x23')]();};}function saveUpdates(_0x12d94d,_0x394afa){return function(_0x4406dc){if(_0x4406dc){return _0x4406dc[_0xae64('0x24')](_0x12d94d)[_0xae64('0x25')](function(_0x127ae2){return _0x127ae2;});}return null;};}function removeEntity(_0x24a35f,_0x2e6852){return function(_0x131225){if(_0x131225){return _0x131225[_0xae64('0x26')]()[_0xae64('0x25')](function(){_0x24a35f['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x6eb56,_0xd5ecaf){return function(_0x22d91a){if(!_0x22d91a){_0x6eb56[_0xae64('0x19')](0x194);}return _0x22d91a;};}function handleError(_0x4d987f,_0x518969){_0x518969=_0x518969||0x1f4;return function(_0x562c2d){logger[_0xae64('0x27')](_0x562c2d[_0xae64('0x28')]);if(_0x562c2d['name']){delete _0x562c2d[_0xae64('0x29')];}_0x4d987f[_0xae64('0x1a')](_0x518969)[_0xae64('0x2a')](_0x562c2d);};}exports['show']=function(_0x3b946c,_0x562eb4){var _0x55f53d={'raw':!![],'where':{'id':_0x3b946c[_0xae64('0x2b')]['id']}},_0x5e4b2c={};_0x5e4b2c['model']=_[_0xae64('0x2c')](db['ChatProactiveAction']['rawAttributes']);_0x5e4b2c['query']=_[_0xae64('0x2c')](_0x3b946c[_0xae64('0x2d')]);_0x5e4b2c[_0xae64('0x2e')]=_[_0xae64('0x2f')](_0x5e4b2c[_0xae64('0x30')],_0x5e4b2c[_0xae64('0x2d')]);_0x55f53d[_0xae64('0x31')]=_[_0xae64('0x2f')](_0x5e4b2c[_0xae64('0x30')],qs['fields'](_0x3b946c[_0xae64('0x2d')][_0xae64('0x32')]));_0x55f53d[_0xae64('0x31')]=_0x55f53d[_0xae64('0x31')][_0xae64('0x33')]?_0x55f53d[_0xae64('0x31')]:_0x5e4b2c['model'];if(_0x3b946c[_0xae64('0x2d')]['includeAll']){_0x55f53d['include']=[{'all':!![]}];}_0x55f53d=_[_0xae64('0x34')]({},_0x55f53d,_0x3b946c[_0xae64('0x35')]);return db[_0xae64('0x36')][_0xae64('0x37')](_0x55f53d)[_0xae64('0x25')](handleEntityNotFound(_0x562eb4,null))[_0xae64('0x25')](respondWithResult(_0x562eb4,null))[_0xae64('0x38')](handleError(_0x562eb4,null));};exports['create']=function(_0xe53734,_0x4437e9){return db[_0xae64('0x36')][_0xae64('0x39')](_0xe53734[_0xae64('0x3a')],{})[_0xae64('0x25')](respondWithResult(_0x4437e9,0xc9))['catch'](handleError(_0x4437e9,null));};exports[_0xae64('0x24')]=function(_0x28269b,_0x3afc79){if(_0x28269b[_0xae64('0x3a')]['id']){delete _0x28269b['body']['id'];}return db[_0xae64('0x36')][_0xae64('0x37')]({'where':{'id':_0x28269b['params']['id']}})[_0xae64('0x25')](handleEntityNotFound(_0x3afc79,null))[_0xae64('0x25')](saveUpdates(_0x28269b['body'],null))[_0xae64('0x25')](respondWithResult(_0x3afc79,null))[_0xae64('0x38')](handleError(_0x3afc79,null));};exports[_0xae64('0x26')]=function(_0x19a5b7,_0x4c55b3){return db[_0xae64('0x36')][_0xae64('0x37')]({'where':{'id':_0x19a5b7[_0xae64('0x2b')]['id']}})[_0xae64('0x25')](handleEntityNotFound(_0x4c55b3,null))[_0xae64('0x25')](removeEntity(_0x4c55b3,null))[_0xae64('0x38')](handleError(_0x4c55b3,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x07a8=['rimraf','./chatProactiveAction.attributes','define','ChatProactiveAction','util','../../config/logger','moment','bluebird','request-promise'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x07a8,0x16c));var _0x807a=function(_0x1fb0fa,_0x5011bf){_0x1fb0fa=_0x1fb0fa-0x0;var _0x40eb0d=_0x07a8[_0x1fb0fa];return _0x40eb0d;};'use strict';var _=require('lodash');var util=require(_0x807a('0x0'));var logger=require(_0x807a('0x1'))('api');var moment=require(_0x807a('0x2'));var BPromise=require(_0x807a('0x3'));var rp=require(_0x807a('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x807a('0x5'));var config=require('../../config/environment');var attributes=require(_0x807a('0x6'));module['exports']=function(_0x1c21f1,_0x34b543){return _0x1c21f1[_0x807a('0x7')](_0x807a('0x8'),attributes,{'tableName':'chat_proactive_actions','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xfe68=['define','ChatProactiveAction','chat_proactive_actions','lodash','util','../../config/logger','moment','bluebird','rimraf','../../config/environment','exports'];(function(_0x3e8322,_0x18e940){var _0x4b06e4=function(_0x2ffe48){while(--_0x2ffe48){_0x3e8322['push'](_0x3e8322['shift']());}};_0x4b06e4(++_0x18e940);}(_0xfe68,0x184));var _0x8fe6=function(_0x51b169,_0x5efbc2){_0x51b169=_0x51b169-0x0;var _0x12605a=_0xfe68[_0x51b169];return _0x12605a;};'use strict';var _=require(_0x8fe6('0x0'));var util=require(_0x8fe6('0x1'));var logger=require(_0x8fe6('0x2'))('api');var moment=require(_0x8fe6('0x3'));var BPromise=require(_0x8fe6('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0x8fe6('0x5'));var config=require(_0x8fe6('0x6'));var attributes=require('./chatProactiveAction.attributes');module[_0x8fe6('0x7')]=function(_0x4a0b62,_0x9e6fca){return _0x4a0b62[_0x8fe6('0x8')](_0x8fe6('0x9'),attributes,{'tableName':_0x8fe6('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x78f9=['error','code','message','result','catch','lodash','moment','randomstring','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','ChatProactiveAction,\x20%s,\x20%s','request\x20sent','debug','stringify'];(function(_0x4e6ae6,_0x49dba6){var _0x23c108=function(_0x1bc103){while(--_0x1bc103){_0x4e6ae6['push'](_0x4e6ae6['shift']());}};_0x23c108(++_0x49dba6);}(_0x78f9,0x14f));var _0x978f=function(_0x3a6efd,_0x2a5102){_0x3a6efd=_0x3a6efd-0x0;var _0x487b9a=_0x78f9[_0x3a6efd];return _0x487b9a;};'use strict';var _=require(_0x978f('0x0'));var util=require('util');var moment=require(_0x978f('0x1'));var BPromise=require('bluebird');var rs=require(_0x978f('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x978f('0x3'))['db'];var utils=require('../../config/utils');var logger=require(_0x978f('0x4'))(_0x978f('0x5'));var config=require(_0x978f('0x6'));var jayson=require(_0x978f('0x7'));var client=jayson[_0x978f('0x8')][_0x978f('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x22238c,_0x4d8311,_0x167cf2){return new BPromise(function(_0x36602e,_0x5f5617){return client[_0x978f('0xa')](_0x22238c,_0x167cf2)[_0x978f('0xb')](function(_0x335ba3){logger[_0x978f('0xc')](_0x978f('0xd'),_0x4d8311,_0x978f('0xe'));logger[_0x978f('0xf')]('ChatProactiveAction,\x20%s,\x20%s,\x20%s',_0x4d8311,'request\x20sent',JSON[_0x978f('0x10')](_0x335ba3));if(_0x335ba3[_0x978f('0x11')]){if(_0x335ba3[_0x978f('0x11')][_0x978f('0x12')]===0x1f4){logger[_0x978f('0x11')](_0x978f('0xd'),_0x4d8311,_0x335ba3[_0x978f('0x11')][_0x978f('0x13')]);return _0x5f5617(_0x335ba3[_0x978f('0x11')]['message']);}logger[_0x978f('0x11')]('ChatProactiveAction,\x20%s,\x20%s',_0x4d8311,_0x335ba3[_0x978f('0x11')]['message']);return _0x36602e(_0x335ba3[_0x978f('0x11')]['message']);}else{logger[_0x978f('0xc')](_0x978f('0xd'),_0x4d8311,_0x978f('0xe'));_0x36602e(_0x335ba3[_0x978f('0x14')][_0x978f('0x13')]);}})[_0x978f('0x15')](function(_0x485e5b){logger['error'](_0x978f('0xd'),_0x4d8311,_0x485e5b);_0x5f5617(_0x485e5b);});});}
\ No newline at end of file
+var _0x0c9f=['error','code','message','catch','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','ChatProactiveAction,\x20%s,\x20%s','request\x20sent'];(function(_0x46b599,_0x1d9ecd){var _0x179b0d=function(_0x445136){while(--_0x445136){_0x46b599['push'](_0x46b599['shift']());}};_0x179b0d(++_0x1d9ecd);}(_0x0c9f,0x14e));var _0xf0c9=function(_0x48d12a,_0xee0b67){_0x48d12a=_0x48d12a-0x0;var _0x2f7c08=_0x0c9f[_0x48d12a];return _0x2f7c08;};'use strict';var _=require(_0xf0c9('0x0'));var util=require(_0xf0c9('0x1'));var moment=require(_0xf0c9('0x2'));var BPromise=require(_0xf0c9('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xf0c9('0x4'));var db=require(_0xf0c9('0x5'))['db'];var utils=require(_0xf0c9('0x6'));var logger=require(_0xf0c9('0x7'))(_0xf0c9('0x8'));var config=require(_0xf0c9('0x9'));var jayson=require(_0xf0c9('0xa'));var client=jayson[_0xf0c9('0xb')][_0xf0c9('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x871d0e,_0x181091,_0x3c41cf){return new BPromise(function(_0x461028,_0x2666c2){return client[_0xf0c9('0xd')](_0x871d0e,_0x3c41cf)[_0xf0c9('0xe')](function(_0x29e593){logger[_0xf0c9('0xf')](_0xf0c9('0x10'),_0x181091,_0xf0c9('0x11'));logger['debug']('ChatProactiveAction,\x20%s,\x20%s,\x20%s',_0x181091,_0xf0c9('0x11'),JSON['stringify'](_0x29e593));if(_0x29e593[_0xf0c9('0x12')]){if(_0x29e593[_0xf0c9('0x12')][_0xf0c9('0x13')]===0x1f4){logger[_0xf0c9('0x12')](_0xf0c9('0x10'),_0x181091,_0x29e593['error'][_0xf0c9('0x14')]);return _0x2666c2(_0x29e593['error'][_0xf0c9('0x14')]);}logger[_0xf0c9('0x12')](_0xf0c9('0x10'),_0x181091,_0x29e593[_0xf0c9('0x12')][_0xf0c9('0x14')]);return _0x461028(_0x29e593['error'][_0xf0c9('0x14')]);}else{logger[_0xf0c9('0xf')]('ChatProactiveAction,\x20%s,\x20%s',_0x181091,_0xf0c9('0x11'));_0x461028(_0x29e593['result'][_0xf0c9('0x14')]);}})[_0xf0c9('0x15')](function(_0x2d2520){logger[_0xf0c9('0x12')]('ChatProactiveAction,\x20%s,\x20%s',_0x181091,_0x2d2520);_0x2666c2(_0x2d2520);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x55ca=['multer','util','Router','fs-extra','../../components/interaction/service','../../config/environment','./chatProactiveAction.controller','get','/:id','isAuthenticated','show','create','destroy','exports'];(function(_0x56fab5,_0x38e754){var _0x11cf97=function(_0x1b0af6){while(--_0x1b0af6){_0x56fab5['push'](_0x56fab5['shift']());}};_0x11cf97(++_0x38e754);}(_0x55ca,0x126));var _0xa55c=function(_0x1113d9,_0x52cd99){_0x1113d9=_0x1113d9-0x0;var _0x4a5aa2=_0x55ca[_0x1113d9];return _0x4a5aa2;};'use strict';var multer=require(_0xa55c('0x0'));var util=require(_0xa55c('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require('express');var router=express[_0xa55c('0x2')]();var fs_extra=require(_0xa55c('0x3'));var auth=require('../../components/auth/service');var interaction=require(_0xa55c('0x4'));var config=require(_0xa55c('0x5'));var controller=require(_0xa55c('0x6'));router[_0xa55c('0x7')](_0xa55c('0x8'),auth[_0xa55c('0x9')](),controller[_0xa55c('0xa')]);router['post']('/',auth[_0xa55c('0x9')](),controller[_0xa55c('0xb')]);router['put'](_0xa55c('0x8'),auth[_0xa55c('0x9')](),controller['update']);router['delete'](_0xa55c('0x8'),auth[_0xa55c('0x9')](),controller[_0xa55c('0xc')]);module[_0xa55c('0xd')]=router;
\ No newline at end of file
+var _0x8958=['show','post','put','update','delete','destroy','exports','util','fs-extra','../../components/interaction/service','../../config/environment','./chatProactiveAction.controller','/:id','isAuthenticated'];(function(_0x23f438,_0x2774cf){var _0x142c0e=function(_0xbabb0b){while(--_0xbabb0b){_0x23f438['push'](_0x23f438['shift']());}};_0x142c0e(++_0x2774cf);}(_0x8958,0x93));var _0x8895=function(_0x5e5f26,_0x39b5f6){_0x5e5f26=_0x5e5f26-0x0;var _0xd0be98=_0x8958[_0x5e5f26];return _0xd0be98;};'use strict';var multer=require('multer');var util=require(_0x8895('0x0'));var path=require('path');var timeout=require('connect-timeout');var express=require('express');var router=express['Router']();var fs_extra=require(_0x8895('0x1'));var auth=require('../../components/auth/service');var interaction=require(_0x8895('0x2'));var config=require(_0x8895('0x3'));var controller=require(_0x8895('0x4'));router['get'](_0x8895('0x5'),auth[_0x8895('0x6')](),controller[_0x8895('0x7')]);router[_0x8895('0x8')]('/',auth[_0x8895('0x6')](),controller['create']);router[_0x8895('0x9')](_0x8895('0x5'),auth[_0x8895('0x6')](),controller[_0x8895('0xa')]);router[_0x8895('0xb')](_0x8895('0x5'),auth[_0x8895('0x6')](),controller[_0x8895('0xc')]);module[_0x8895('0xd')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa4ef=['roundrobin','exports','STRING','name','INTEGER','ENUM','rrmemory','beepall'];(function(_0x1067b1,_0xe1f971){var _0x46e160=function(_0x5a4752){while(--_0x5a4752){_0x1067b1['push'](_0x1067b1['shift']());}};_0x46e160(++_0xe1f971);}(_0xa4ef,0xd1));var _0xfa4e=function(_0x2641f9,_0x26715f){_0x2641f9=_0x2641f9-0x0;var _0x585741=_0xa4ef[_0x2641f9];return _0x585741;};'use strict';var Sequelize=require('sequelize');module[_0xfa4e('0x0')]={'name':{'type':Sequelize[_0xfa4e('0x1')],'unique':_0xfa4e('0x2'),'allowNull':![],'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize[_0xfa4e('0x1')]},'timeout':{'type':Sequelize[_0xfa4e('0x3')],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0xfa4e('0x4')](_0xfa4e('0x5'),_0xfa4e('0x6'),_0xfa4e('0x7'))}};
\ No newline at end of file
+var _0xafa0=['rrmemory','beepall','roundrobin','sequelize','exports','STRING','name','ENUM'];(function(_0x41d67e,_0x336a28){var _0x100cb2=function(_0x3fd927){while(--_0x3fd927){_0x41d67e['push'](_0x41d67e['shift']());}};_0x100cb2(++_0x336a28);}(_0xafa0,0xd3));var _0x0afa=function(_0x114ab5,_0x24a819){_0x114ab5=_0x114ab5-0x0;var _0x47c2ea=_0xafa0[_0x114ab5];return _0x47c2ea;};'use strict';var Sequelize=require(_0x0afa('0x0'));module[_0x0afa('0x1')]={'name':{'type':Sequelize[_0x0afa('0x2')],'unique':_0x0afa('0x3'),'allowNull':![],'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize['STRING']},'timeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0x0afa('0x4')](_0x0afa('0x5'),_0x0afa('0x6'),_0x0afa('0x7'))}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf66a=['message','result','sendStatus','status','end','json','offset','undefined','count','set','Content-Range','apply','reject','ChatQueues','UserProfileResource','destroy','name','index','map','ChatQueue','rawAttributes','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','limit','order','sort','pick','filter','where','merge','VIRTUAL','rows','catch','params','includeAll','options','create','body','user','get','role','UserProfileSection','find','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','describe','UserChatQueue','ChatQueueId','findAll','User','findAndCountAll','agent','chatPause','createdAt','%s/%s','SIP','updatedAt','getTeams','findOne','Team','addTeams','ids','Agents','online','voicePause','flatMap','sequelize','each','findOrCreate','forEach','emit','userChatQueue:save','removeTeams','select','field','tq.TeamId','from','join','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','ChatQueueId\x20=\x20?','ut.UserId\x20=\x20?','push','toString','QueryTypes','every','TeamId','all','union','compact','value','transaction','removeAgents','userChatQueue:remove','addAgents','omit','spread','isArray','getAgents','eml-format','rimraf','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','redis','defaults','localhost','socket.io-emitter','./chatQueue.socket','register','client','request','then','info','ChatQueue,\x20%s,\x20%s','request\x20sent','debug','ChatQueue,\x20%s,\x20%s,\x20%s','stringify','error','code'];(function(_0x3a5b0b,_0x50e024){var _0x37c881=function(_0x418a37){while(--_0x418a37){_0x3a5b0b['push'](_0x3a5b0b['shift']());}};_0x37c881(++_0x50e024);}(_0xf66a,0x196));var _0xaf66=function(_0x1201d2,_0x4e166f){_0x1201d2=_0x1201d2-0x0;var _0x1a8c11=_0xf66a[_0x1201d2];return _0x1a8c11;};'use strict';var emlformat=require(_0xaf66('0x0'));var rimraf=require(_0xaf66('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xaf66('0x2'));var BPromise=require(_0xaf66('0x3'));var Mustache=require('mustache');var util=require(_0xaf66('0x4'));var path=require(_0xaf66('0x5'));var sox=require(_0xaf66('0x6'));var csv=require(_0xaf66('0x7'));var ejs=require(_0xaf66('0x8'));var fs=require('fs');var fs_extra=require(_0xaf66('0x9'));var _=require(_0xaf66('0xa'));var squel=require(_0xaf66('0xb'));var crypto=require(_0xaf66('0xc'));var jsforce=require(_0xaf66('0xd'));var deskjs=require(_0xaf66('0xe'));var toCsv=require(_0xaf66('0x7'));var querystring=require(_0xaf66('0xf'));var Papa=require(_0xaf66('0x10'));var Redis=require(_0xaf66('0x11'));var authService=require(_0xaf66('0x12'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xaf66('0x13'));var logger=require(_0xaf66('0x14'))(_0xaf66('0x15'));var utils=require(_0xaf66('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0xaf66('0x17'));var db=require('../../mysqldb')['db'];config[_0xaf66('0x18')]=_[_0xaf66('0x19')](config[_0xaf66('0x18')],{'host':_0xaf66('0x1a'),'port':0x18eb});var socket=require(_0xaf66('0x1b'))(new Redis(config[_0xaf66('0x18')]));require(_0xaf66('0x1c'))[_0xaf66('0x1d')](socket);var jayson=require('jayson/promise');var client=jayson[_0xaf66('0x1e')]['http']({'port':0x232a});function respondWithRpcPromise(_0x47cb60,_0x3b6549,_0x2b0e1f,_0x1175c7){return new BPromise(function(_0x2f91bb,_0x176aa5){var _0x27bf20=_0x1175c7||client;return _0x27bf20[_0xaf66('0x1f')](_0x47cb60,_0x2b0e1f)[_0xaf66('0x20')](function(_0x24c422){logger[_0xaf66('0x21')](_0xaf66('0x22'),_0x3b6549,_0xaf66('0x23'));logger[_0xaf66('0x24')](_0xaf66('0x25'),_0x3b6549,_0xaf66('0x23'),JSON[_0xaf66('0x26')](_0x24c422));if(_0x24c422[_0xaf66('0x27')]){if(_0x24c422[_0xaf66('0x27')][_0xaf66('0x28')]===0x1f4){logger[_0xaf66('0x27')](_0xaf66('0x22'),_0x3b6549,_0x24c422[_0xaf66('0x27')]['message']);return _0x176aa5(_0x24c422[_0xaf66('0x27')][_0xaf66('0x29')]);}logger[_0xaf66('0x27')](_0xaf66('0x22'),_0x3b6549,_0x24c422[_0xaf66('0x27')]['message']);return _0x2f91bb(_0x24c422[_0xaf66('0x27')][_0xaf66('0x29')]);}else{logger['info']('ChatQueue,\x20%s,\x20%s',_0x3b6549,_0xaf66('0x23'));_0x2f91bb(_0x24c422[_0xaf66('0x2a')][_0xaf66('0x29')]);}})['catch'](function(_0xe7e281){logger[_0xaf66('0x27')](_0xaf66('0x22'),_0x3b6549,_0xe7e281);_0x176aa5(_0xe7e281);});});}function respondWithStatusCode(_0x564de4,_0x997219){_0x997219=_0x997219||0xcc;return function(_0xd388b5){if(_0xd388b5){return _0x564de4[_0xaf66('0x2b')](_0x997219);}return _0x564de4[_0xaf66('0x2c')](_0x997219)[_0xaf66('0x2d')]();};}function respondWithResult(_0x2bfa3b,_0x253a15){_0x253a15=_0x253a15||0xc8;return function(_0x2798a7){if(_0x2798a7){return _0x2bfa3b['status'](_0x253a15)[_0xaf66('0x2e')](_0x2798a7);}};}function respondWithFilteredResult(_0x48bdef,_0x3bd8b6){return function(_0x3f7c1d){if(_0x3f7c1d){var _0xa19814=typeof _0x3bd8b6[_0xaf66('0x2f')]===_0xaf66('0x30')&&typeof _0x3bd8b6['limit']===_0xaf66('0x30');var _0x214977=_0x3f7c1d[_0xaf66('0x31')];var _0x54c7d8=_0xa19814?0x0:_0x3bd8b6[_0xaf66('0x2f')];var _0x3f3835=_0xa19814?_0x3f7c1d[_0xaf66('0x31')]:_0x3bd8b6[_0xaf66('0x2f')]+_0x3bd8b6['limit'];var _0x2df016;if(_0x3f3835>=_0x214977){_0x3f3835=_0x214977;_0x2df016=0xc8;}else{_0x2df016=0xce;}_0x48bdef[_0xaf66('0x2c')](_0x2df016);return _0x48bdef[_0xaf66('0x32')](_0xaf66('0x33'),_0x54c7d8+'-'+_0x3f3835+'/'+_0x214977)[_0xaf66('0x2e')](_0x3f7c1d);}return null;};}function patchUpdates(_0x2cc112){return function(_0x27d061){try{jsonpatch[_0xaf66('0x34')](_0x27d061,_0x2cc112,!![]);}catch(_0x2ec891){return BPromise[_0xaf66('0x35')](_0x2ec891);}return _0x27d061['save']();};}function saveUpdates(_0x5e3b5e,_0x92ac42){return function(_0x603113){if(_0x603113){return _0x603113['update'](_0x5e3b5e)[_0xaf66('0x20')](function(_0x54dc44){return _0x54dc44;});}return null;};}function removeEntity(_0x24bd75,_0x314e19){return function(_0x74e345){if(_0x74e345){return _0x74e345['destroy']()[_0xaf66('0x20')](function(){var _0x1608b3=_0x74e345['get']({'plain':!![]});var _0x4a61df=_0xaf66('0x36');return db[_0xaf66('0x37')][_0xaf66('0x38')]({'where':{'type':_0x4a61df,'resourceId':_0x1608b3['id']}})[_0xaf66('0x20')](function(){return _0x74e345;});})['then'](function(){_0x24bd75['status'](0xcc)[_0xaf66('0x2d')]();});}};}function handleEntityNotFound(_0x2509df,_0x41de00){return function(_0x455902){if(!_0x455902){_0x2509df['sendStatus'](0x194);}return _0x455902;};}function handleError(_0x394d94,_0x582542){_0x582542=_0x582542||0x1f4;return function(_0x661f6b){logger['error'](_0x661f6b['stack']);if(_0x661f6b[_0xaf66('0x39')]){delete _0x661f6b[_0xaf66('0x39')];}_0x394d94['status'](_0x582542)['send'](_0x661f6b);};}exports[_0xaf66('0x3a')]=function(_0x24c271,_0x35ba6a){var _0x3a1da1={},_0x9d128f={},_0x2a39d9={'count':0x0,'rows':[]};var _0x5b683e=_[_0xaf66('0x3b')](db[_0xaf66('0x3c')][_0xaf66('0x3d')],function(_0x33511d){return{'name':_0x33511d['fieldName'],'type':_0x33511d['type']['key']};});_0x9d128f[_0xaf66('0x3e')]=_[_0xaf66('0x3b')](_0x5b683e,_0xaf66('0x39'));_0x9d128f[_0xaf66('0x3f')]=_[_0xaf66('0x40')](_0x24c271['query']);_0x9d128f[_0xaf66('0x41')]=_['intersection'](_0x9d128f[_0xaf66('0x3e')],_0x9d128f[_0xaf66('0x3f')]);_0x3a1da1['attributes']=_[_0xaf66('0x42')](_0x9d128f['model'],qs['fields'](_0x24c271[_0xaf66('0x3f')][_0xaf66('0x43')]));_0x3a1da1['attributes']=_0x3a1da1[_0xaf66('0x44')][_0xaf66('0x45')]?_0x3a1da1[_0xaf66('0x44')]:_0x9d128f['model'];if(!_0x24c271[_0xaf66('0x3f')][_0xaf66('0x46')](_0xaf66('0x47'))){_0x3a1da1['limit']=qs[_0xaf66('0x48')](_0x24c271[_0xaf66('0x3f')]['limit']);_0x3a1da1[_0xaf66('0x2f')]=qs[_0xaf66('0x2f')](_0x24c271[_0xaf66('0x3f')][_0xaf66('0x2f')]);}_0x3a1da1[_0xaf66('0x49')]=qs[_0xaf66('0x4a')](_0x24c271[_0xaf66('0x3f')][_0xaf66('0x4a')]);_0x3a1da1['where']=qs[_0xaf66('0x41')](_[_0xaf66('0x4b')](_0x24c271[_0xaf66('0x3f')],_0x9d128f[_0xaf66('0x41')]),_0x5b683e);if(_0x24c271[_0xaf66('0x3f')][_0xaf66('0x4c')]){_0x3a1da1[_0xaf66('0x4d')]=_[_0xaf66('0x4e')](_0x3a1da1[_0xaf66('0x4d')],{'$or':_[_0xaf66('0x3b')](_0x5b683e,function(_0x2fc2f9){if(_0x2fc2f9['type']!==_0xaf66('0x4f')){var _0x2c67ea={};_0x2c67ea[_0x2fc2f9['name']]={'$like':'%'+_0x24c271[_0xaf66('0x3f')]['filter']+'%'};return _0x2c67ea;}})});}_0x3a1da1=_[_0xaf66('0x4e')]({},_0x3a1da1,_0x24c271['options']);var _0x4e9fb0={'where':_0x3a1da1['where']};return db['ChatQueue']['count'](_0x4e9fb0)[_0xaf66('0x20')](function(_0x4fcfe1){_0x2a39d9[_0xaf66('0x31')]=_0x4fcfe1;if(_0x24c271[_0xaf66('0x3f')]['includeAll']){_0x3a1da1['include']=[{'all':!![]}];}return db['ChatQueue']['findAll'](_0x3a1da1);})[_0xaf66('0x20')](function(_0x28fe47){_0x2a39d9[_0xaf66('0x50')]=_0x28fe47;return _0x2a39d9;})[_0xaf66('0x20')](respondWithFilteredResult(_0x35ba6a,_0x3a1da1))[_0xaf66('0x51')](handleError(_0x35ba6a,null));};exports['show']=function(_0x3ba319,_0x5aee03){var _0x2f8699={'raw':!![],'where':{'id':_0x3ba319[_0xaf66('0x52')]['id']}},_0x24160d={};_0x24160d[_0xaf66('0x3e')]=_['keys'](db['ChatQueue']['rawAttributes']);_0x24160d[_0xaf66('0x3f')]=_['keys'](_0x3ba319[_0xaf66('0x3f')]);_0x24160d['filters']=_[_0xaf66('0x42')](_0x24160d[_0xaf66('0x3e')],_0x24160d[_0xaf66('0x3f')]);_0x2f8699[_0xaf66('0x44')]=_[_0xaf66('0x42')](_0x24160d[_0xaf66('0x3e')],qs[_0xaf66('0x43')](_0x3ba319['query'][_0xaf66('0x43')]));_0x2f8699[_0xaf66('0x44')]=_0x2f8699['attributes'][_0xaf66('0x45')]?_0x2f8699[_0xaf66('0x44')]:_0x24160d[_0xaf66('0x3e')];if(_0x3ba319[_0xaf66('0x3f')][_0xaf66('0x53')]){_0x2f8699['include']=[{'all':!![]}];}_0x2f8699=_[_0xaf66('0x4e')]({},_0x2f8699,_0x3ba319[_0xaf66('0x54')]);return db[_0xaf66('0x3c')]['find'](_0x2f8699)[_0xaf66('0x20')](handleEntityNotFound(_0x5aee03,null))[_0xaf66('0x20')](respondWithResult(_0x5aee03,null))[_0xaf66('0x51')](handleError(_0x5aee03,null));};exports['create']=function(_0x3d35ca,_0x46db9c){return db['ChatQueue'][_0xaf66('0x55')](_0x3d35ca[_0xaf66('0x56')],{})[_0xaf66('0x20')](function(_0x4c25a1){var _0x1637bc=_0x3d35ca[_0xaf66('0x57')][_0xaf66('0x58')]({'plain':!![]});if(!_0x1637bc)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x1637bc[_0xaf66('0x59')]===_0xaf66('0x57')){var _0x37b8e7=_0x4c25a1[_0xaf66('0x58')]({'plain':!![]});var _0x1a2f45=_0xaf66('0x36');return db[_0xaf66('0x5a')][_0xaf66('0x5b')]({'where':{'name':_0x1a2f45,'userProfileId':_0x1637bc[_0xaf66('0x5c')]},'raw':!![]})[_0xaf66('0x20')](function(_0x180a9e){if(_0x180a9e&&_0x180a9e[_0xaf66('0x5d')]===0x0){return db[_0xaf66('0x37')]['create']({'name':_0x37b8e7[_0xaf66('0x39')],'resourceId':_0x37b8e7['id'],'type':_0x180a9e['name'],'sectionId':_0x180a9e['id']},{})[_0xaf66('0x20')](function(){return _0x4c25a1;});}else{return _0x4c25a1;}})[_0xaf66('0x51')](function(_0x55060b){logger['error'](_0xaf66('0x5e'),_0x55060b);throw _0x55060b;});}return _0x4c25a1;})['then'](respondWithResult(_0x46db9c,0xc9))['catch'](handleError(_0x46db9c,null));};exports['update']=function(_0x6d0f5c,_0x27a988){if(_0x6d0f5c[_0xaf66('0x56')]['id']){delete _0x6d0f5c[_0xaf66('0x56')]['id'];}return db[_0xaf66('0x3c')]['find']({'where':{'id':_0x6d0f5c[_0xaf66('0x52')]['id']}})['then'](handleEntityNotFound(_0x27a988,null))[_0xaf66('0x20')](saveUpdates(_0x6d0f5c[_0xaf66('0x56')],null))[_0xaf66('0x20')](respondWithResult(_0x27a988,null))[_0xaf66('0x51')](handleError(_0x27a988,null));};exports[_0xaf66('0x38')]=function(_0x55421f,_0x4252d7){return db[_0xaf66('0x3c')][_0xaf66('0x5b')]({'where':{'id':_0x55421f[_0xaf66('0x52')]['id']}})[_0xaf66('0x20')](handleEntityNotFound(_0x4252d7,null))['then'](removeEntity(_0x4252d7,null))[_0xaf66('0x51')](handleError(_0x4252d7,null));};exports['describe']=function(_0x193b74,_0x261d38){return db['ChatQueue'][_0xaf66('0x5f')]()[_0xaf66('0x20')](respondWithResult(_0x261d38,null))[_0xaf66('0x51')](handleError(_0x261d38,null));};exports['getMembers']=function(_0x4b62d5,_0x3ea7dd,_0x10a9d1){var _0x11c843={'raw':!![],'where':{}},_0x121526={},_0x4894d2;return db[_0xaf66('0x3c')]['findOne']({'where':{'id':_0x4b62d5['params']['id']}})[_0xaf66('0x20')](handleEntityNotFound(_0x3ea7dd,null))[_0xaf66('0x20')](function(_0x2703e9){if(_0x2703e9){_0x4894d2=_0x2703e9[_0xaf66('0x58')]({'plain':!![]});_0x121526[_0xaf66('0x3e')]=_[_0xaf66('0x40')](db[_0xaf66('0x60')][_0xaf66('0x3d')]);_0x121526[_0xaf66('0x3f')]=_[_0xaf66('0x40')](_0x4b62d5[_0xaf66('0x3f')]);_0x121526[_0xaf66('0x41')]=_[_0xaf66('0x42')](_0x121526[_0xaf66('0x3e')],_0x121526[_0xaf66('0x3f')]);_0x11c843['attributes']=_[_0xaf66('0x42')](_0x121526[_0xaf66('0x3e')],qs['fields'](_0x4b62d5[_0xaf66('0x3f')][_0xaf66('0x43')]));_0x11c843[_0xaf66('0x44')]=_0x11c843[_0xaf66('0x44')][_0xaf66('0x45')]?_0x11c843['attributes']:_0x121526[_0xaf66('0x3e')];if(!_0x4b62d5[_0xaf66('0x3f')][_0xaf66('0x46')]('nolimit')){_0x11c843['limit']=qs['limit'](_0x4b62d5[_0xaf66('0x3f')][_0xaf66('0x48')]);_0x11c843[_0xaf66('0x2f')]=qs[_0xaf66('0x2f')](_0x4b62d5['query'][_0xaf66('0x2f')]);}_0x11c843[_0xaf66('0x49')]=qs['sort'](_0x4b62d5['query'][_0xaf66('0x4a')]);_0x11c843[_0xaf66('0x4d')]=qs['filters'](_[_0xaf66('0x4b')](_0x4b62d5[_0xaf66('0x3f')],_0x121526[_0xaf66('0x41')]));_0x11c843[_0xaf66('0x4d')][_0xaf66('0x61')]=_0x2703e9['id'];if(_0x4b62d5[_0xaf66('0x3f')]['filter']){_0x11c843[_0xaf66('0x4d')]=_[_0xaf66('0x4e')](_0x11c843[_0xaf66('0x4d')],{'$or':_[_0xaf66('0x3b')](_0x11c843[_0xaf66('0x44')],function(_0x291037){var _0x5940ec={};_0x5940ec[_0x291037]={'$like':'%'+_0x4b62d5[_0xaf66('0x3f')][_0xaf66('0x4c')]+'%'};return _0x5940ec;})});}_0x11c843=_[_0xaf66('0x4e')]({},_0x11c843,_0x4b62d5['options']);return db['UserChatQueue'][_0xaf66('0x62')](_0x11c843);}})[_0xaf66('0x20')](function(_0x2bec3d){if(_0x2bec3d){return db[_0xaf66('0x63')][_0xaf66('0x64')]({'where':{'id':_[_0xaf66('0x3b')](_0x2bec3d,'UserId'),'role':_0xaf66('0x65')},'attributes':['id',_0xaf66('0x39'),_0xaf66('0x66'),'updatedAt',_0xaf66('0x67')]});}})[_0xaf66('0x20')](function(_0x3855c7){if(_0x3855c7){return{'count':_0x3855c7[_0xaf66('0x31')],'rows':_[_0xaf66('0x3b')](_0x3855c7[_0xaf66('0x50')],function(_0x5daeb8){return{'membername':_0x5daeb8[_0xaf66('0x39')],'UserId':_0x5daeb8['id'],'queue_name':_0x4894d2[_0xaf66('0x39')],'ChatQueueId':_0x4894d2['id'],'interface':util['format'](_0xaf66('0x68'),_0xaf66('0x69'),_0x5daeb8[_0xaf66('0x39')]),'penalty':0x0,'paused':_0x5daeb8[_0xaf66('0x66')],'createdAt':_0x5daeb8[_0xaf66('0x67')],'updatedAt':_0x5daeb8[_0xaf66('0x6a')]};})};}else{return{'count':0x0,'rows':[]};}})[_0xaf66('0x20')](respondWithFilteredResult(_0x3ea7dd,_0x11c843))[_0xaf66('0x51')](handleError(_0x3ea7dd,null));};exports[_0xaf66('0x6b')]=function(_0x32d90b,_0x4b8f54,_0x51a83d){var _0x49c7f4={};var _0x433e0b={};var _0x1e83bd;var _0x29bd47;return db['ChatQueue'][_0xaf66('0x6c')]({'where':{'id':_0x32d90b[_0xaf66('0x52')]['id']}})[_0xaf66('0x20')](handleEntityNotFound(_0x4b8f54,null))[_0xaf66('0x20')](function(_0x292cee){if(_0x292cee){_0x1e83bd=_0x292cee;_0x433e0b[_0xaf66('0x3e')]=_[_0xaf66('0x40')](db[_0xaf66('0x6d')][_0xaf66('0x3d')]);_0x433e0b['query']=_[_0xaf66('0x40')](_0x32d90b[_0xaf66('0x3f')]);_0x433e0b['filters']=_[_0xaf66('0x42')](_0x433e0b[_0xaf66('0x3e')],_0x433e0b[_0xaf66('0x3f')]);_0x49c7f4[_0xaf66('0x44')]=_[_0xaf66('0x42')](_0x433e0b[_0xaf66('0x3e')],qs[_0xaf66('0x43')](_0x32d90b[_0xaf66('0x3f')][_0xaf66('0x43')]));_0x49c7f4[_0xaf66('0x44')]=_0x49c7f4[_0xaf66('0x44')][_0xaf66('0x45')]?_0x49c7f4[_0xaf66('0x44')]:_0x433e0b[_0xaf66('0x3e')];_0x49c7f4[_0xaf66('0x49')]=qs[_0xaf66('0x4a')](_0x32d90b[_0xaf66('0x3f')][_0xaf66('0x4a')]);_0x49c7f4[_0xaf66('0x4d')]=qs[_0xaf66('0x41')](_[_0xaf66('0x4b')](_0x32d90b[_0xaf66('0x3f')],_0x433e0b[_0xaf66('0x41')]));if(_0x32d90b[_0xaf66('0x3f')][_0xaf66('0x4c')]){_0x49c7f4[_0xaf66('0x4d')]=_[_0xaf66('0x4e')](_0x49c7f4[_0xaf66('0x4d')],{'$or':_['map'](_0x49c7f4[_0xaf66('0x44')],function(_0x336787){var _0x3a2d34={};_0x3a2d34[_0x336787]={'$like':'%'+_0x32d90b['query'][_0xaf66('0x4c')]+'%'};return _0x3a2d34;})});}_0x49c7f4=_['merge']({},_0x49c7f4,_0x32d90b[_0xaf66('0x54')]);return _0x1e83bd[_0xaf66('0x6b')](_0x49c7f4);}})[_0xaf66('0x20')](function(_0x28e98d){if(_0x28e98d){_0x29bd47=_0x28e98d[_0xaf66('0x45')];if(!_0x32d90b[_0xaf66('0x3f')]['hasOwnProperty'](_0xaf66('0x47'))){_0x49c7f4[_0xaf66('0x48')]=qs[_0xaf66('0x48')](_0x32d90b[_0xaf66('0x3f')]['limit']);_0x49c7f4[_0xaf66('0x2f')]=qs[_0xaf66('0x2f')](_0x32d90b[_0xaf66('0x3f')][_0xaf66('0x2f')]);}return _0x1e83bd[_0xaf66('0x6b')](_0x49c7f4);}})[_0xaf66('0x20')](function(_0x417d3c){if(_0x417d3c){return _0x417d3c?{'count':_0x29bd47,'rows':_0x417d3c}:null;}})['then'](respondWithResult(_0x4b8f54,null))[_0xaf66('0x51')](handleError(_0x4b8f54,null));};exports[_0xaf66('0x6e')]=function(_0x1aa7c6,_0x57918d,_0xd567f1){var _0x284f4f=_0x1aa7c6[_0xaf66('0x56')][_0xaf66('0x6f')];return db[_0xaf66('0x6d')][_0xaf66('0x62')]({'where':{'id':_0x284f4f},'attributes':['id'],'include':[{'model':db[_0xaf66('0x63')],'as':_0xaf66('0x70'),'attributes':['id','name',_0xaf66('0x71'),_0xaf66('0x72'),'interface'],'raw':!![]}]})[_0xaf66('0x20')](function(_0x2de015){if(_0x2de015){var _0x57d725=_[_0xaf66('0x73')](_0x2de015,function(_0x15b6f0){var _0x747685=_0x15b6f0[_0xaf66('0x58')]({'plain':!![]});return _0x747685[_0xaf66('0x70')];});return db['ChatQueue']['find']({'where':{'id':_0x1aa7c6[_0xaf66('0x52')]['id']}})[_0xaf66('0x20')](function(_0x374cd2){return db[_0xaf66('0x74')]['transaction'](function(_0x37ea16){return _0x374cd2['addTeams'](_0x284f4f,{'transaction':_0x37ea16})[_0xaf66('0x20')](function(){return BPromise[_0xaf66('0x75')](_0x57d725,function(_0x121081){return db[_0xaf66('0x60')][_0xaf66('0x76')]({'where':{'UserId':_0x121081['id'],'ChatQueueId':_0x1aa7c6[_0xaf66('0x52')]['id']},'transaction':_0x37ea16});});})['then'](function(){_0x57d725[_0xaf66('0x77')](function(_0x58bf8f){socket[_0xaf66('0x78')](_0xaf66('0x79'),{'UserId':_0x58bf8f['id'],'ChatQueueId':_0x374cd2['id']});});});});});}})[_0xaf66('0x20')](respondWithStatusCode(_0x57918d,null))['catch'](handleError(_0x57918d,null));};exports[_0xaf66('0x7a')]=function(_0x1d50ab,_0x27c69c,_0x53ca0a){return db[_0xaf66('0x6d')][_0xaf66('0x62')]({'where':{'id':_0x1d50ab[_0xaf66('0x3f')]['ids']},'attributes':['id'],'include':[{'model':db[_0xaf66('0x63')],'as':_0xaf66('0x70'),'attributes':['id'],'raw':!![]}]})[_0xaf66('0x20')](handleEntityNotFound(_0x27c69c,null))[_0xaf66('0x20')](function(_0x3eece6){var _0x416301=_[_0xaf66('0x3b')](_0x3eece6,'id');var _0x3a5dd7=[];var _0x145f08=[];var _0x53867a=squel[_0xaf66('0x7b')]();_0x53867a[_0xaf66('0x7c')](_0xaf66('0x7d'))[_0xaf66('0x7e')]('team_has_chat_queues','tq')[_0xaf66('0x7f')](_0xaf66('0x80'),'ut',_0xaf66('0x81'))[_0xaf66('0x4d')](_0xaf66('0x82'),_0x1d50ab[_0xaf66('0x52')]['id']);for(var _0x18fe40=0x0;_0x18fe40<_0x3eece6[_0xaf66('0x45')];_0x18fe40+=0x1){let _0x238a8f=_0x3eece6[_0x18fe40];for(var _0x53b281=0x0;_0x53b281<_0x238a8f['Agents'][_0xaf66('0x45')];_0x53b281+=0x1){let _0x521d64=_0x238a8f['Agents'][_0x53b281];var _0x5d5b09=_0x53867a['clone']();_0x5d5b09[_0xaf66('0x4d')](_0xaf66('0x83'),_0x521d64['id']);_0x145f08[_0xaf66('0x84')](db['sequelize'][_0xaf66('0x3f')](_0x5d5b09[_0xaf66('0x85')](),{'type':db[_0xaf66('0x74')][_0xaf66('0x86')]['SELECT']})[_0xaf66('0x20')](function(_0x29f173){if(_0x29f173[_0xaf66('0x45')]===0x1){return _0x521d64['id'];}else{var _0x41202e=_[_0xaf66('0x87')](_['map'](_0x29f173,_0xaf66('0x88')),function(_0x187e7e){return _['includes'](_0x416301,_0x187e7e);});if(_0x41202e){return _0x521d64['id'];}}}));}}return BPromise[_0xaf66('0x89')](_0x145f08)[_0xaf66('0x20')](function(_0xaa2de8){_0x3a5dd7=_(_0x3a5dd7)[_0xaf66('0x8a')](_0xaa2de8)[_0xaf66('0x8b')]()[_0xaf66('0x8c')]();return db[_0xaf66('0x3c')][_0xaf66('0x5b')]({'where':{'id':_0x1d50ab[_0xaf66('0x52')]['id']}})[_0xaf66('0x20')](function(_0x4c5c18){return db[_0xaf66('0x74')][_0xaf66('0x8d')](function(_0x1b3f7f){return _0x4c5c18[_0xaf66('0x7a')](_0x1d50ab[_0xaf66('0x3f')][_0xaf66('0x6f')],{'transaction':_0x1b3f7f})[_0xaf66('0x20')](function(){if(!_['isEmpty'](_0x3a5dd7)){return _0x4c5c18[_0xaf66('0x8e')](_0x3a5dd7,{'transaction':_0x1b3f7f});}})['then'](function(){_0x3a5dd7['forEach'](function(_0x386ddb){socket[_0xaf66('0x78')](_0xaf66('0x8f'),{'UserId':_0x386ddb,'ChatQueueId':_0x4c5c18['id']});});});});});});})[_0xaf66('0x20')](respondWithStatusCode(_0x27c69c,null))[_0xaf66('0x51')](handleError(_0x27c69c,null));};exports[_0xaf66('0x90')]=function(_0x32f9f4,_0x4870c8,_0x100705){return db[_0xaf66('0x3c')][_0xaf66('0x5b')]({'where':{'id':_0x32f9f4['params']['id']}})['then'](handleEntityNotFound(_0x4870c8,null))[_0xaf66('0x20')](function(_0x1cfd4e){if(_0x1cfd4e){return _0x1cfd4e[_0xaf66('0x90')](_0x32f9f4[_0xaf66('0x56')][_0xaf66('0x6f')],_[_0xaf66('0x91')](_0x32f9f4['body'],['ids','id'])||{})[_0xaf66('0x92')](function(_0x2368e2){for(var _0x3bd602=0x0;_0x3bd602<_0x32f9f4[_0xaf66('0x56')][_0xaf66('0x6f')][_0xaf66('0x45')];_0x3bd602+=0x1){socket[_0xaf66('0x78')](_0xaf66('0x79'),{'UserId':Number(_0x32f9f4['body'][_0xaf66('0x6f')][_0x3bd602]),'ChatQueueId':Number(_0x32f9f4[_0xaf66('0x52')]['id'])});}return _0x2368e2;});}})['then'](respondWithResult(_0x4870c8,null))['catch'](handleError(_0x4870c8,null));};exports[_0xaf66('0x8e')]=function(_0x1d6bdf,_0x14c593,_0x22fb11){return db[_0xaf66('0x3c')]['find']({'where':{'id':_0x1d6bdf[_0xaf66('0x52')]['id']}})[_0xaf66('0x20')](handleEntityNotFound(_0x14c593,null))[_0xaf66('0x20')](function(_0x207609){if(_0x207609){return _0x207609['removeAgents'](_0x1d6bdf[_0xaf66('0x3f')][_0xaf66('0x6f')])[_0xaf66('0x20')](function(){if(_[_0xaf66('0x93')](_0x1d6bdf['query'][_0xaf66('0x6f')])){for(var _0x359924=0x0;_0x359924<_0x1d6bdf[_0xaf66('0x3f')][_0xaf66('0x6f')][_0xaf66('0x45')];_0x359924+=0x1){socket[_0xaf66('0x78')](_0xaf66('0x8f'),{'UserId':Number(_0x1d6bdf[_0xaf66('0x3f')][_0xaf66('0x6f')][_0x359924]),'ChatQueueId':Number(_0x1d6bdf[_0xaf66('0x52')]['id'])});}}else{socket['emit'](_0xaf66('0x8f'),{'UserId':Number(_0x1d6bdf[_0xaf66('0x3f')]['ids']),'ChatQueueId':Number(_0x1d6bdf['params']['id'])});}});}})['then'](respondWithStatusCode(_0x14c593,null))[_0xaf66('0x51')](handleError(_0x14c593,null));};exports['getAgents']=function(_0xc09c38,_0xe6e0ff,_0x544441){var _0xfe69f={};var _0xc679={};var _0x56d16c;var _0x503e4b;return db['ChatQueue']['findOne']({'where':{'id':_0xc09c38[_0xaf66('0x52')]['id']}})[_0xaf66('0x20')](handleEntityNotFound(_0xe6e0ff,null))[_0xaf66('0x20')](function(_0x3d1c65){if(_0x3d1c65){_0x56d16c=_0x3d1c65;_0xc679['model']=_[_0xaf66('0x40')](db['User'][_0xaf66('0x3d')]);_0xc679[_0xaf66('0x3f')]=_['keys'](_0xc09c38['query']);_0xc679['filters']=_[_0xaf66('0x42')](_0xc679['model'],_0xc679[_0xaf66('0x3f')]);_0xfe69f[_0xaf66('0x44')]=_['intersection'](_0xc679[_0xaf66('0x3e')],qs['fields'](_0xc09c38[_0xaf66('0x3f')][_0xaf66('0x43')]));_0xfe69f[_0xaf66('0x44')]=_0xfe69f[_0xaf66('0x44')][_0xaf66('0x45')]?_0xfe69f[_0xaf66('0x44')]:_0xc679[_0xaf66('0x3e')];_0xfe69f[_0xaf66('0x49')]=qs['sort'](_0xc09c38['query'][_0xaf66('0x4a')]);_0xfe69f[_0xaf66('0x4d')]=qs[_0xaf66('0x41')](_['pick'](_0xc09c38[_0xaf66('0x3f')],_0xc679[_0xaf66('0x41')]));if(_0xc09c38['query'][_0xaf66('0x4c')]){_0xfe69f[_0xaf66('0x4d')]=_[_0xaf66('0x4e')](_0xfe69f[_0xaf66('0x4d')],{'$or':_[_0xaf66('0x3b')](_0xfe69f['attributes'],function(_0xf49a6f){var _0x5e39aa={};_0x5e39aa[_0xf49a6f]={'$like':'%'+_0xc09c38[_0xaf66('0x3f')]['filter']+'%'};return _0x5e39aa;})});}_0xfe69f=_[_0xaf66('0x4e')]({},_0xfe69f,_0xc09c38[_0xaf66('0x54')]);return _0x56d16c[_0xaf66('0x94')](_0xfe69f);}})['then'](function(_0x2b5f11){if(_0x2b5f11){_0x503e4b=_0x2b5f11['length'];if(!_0xc09c38[_0xaf66('0x3f')][_0xaf66('0x46')]('nolimit')){_0xfe69f[_0xaf66('0x48')]=qs['limit'](_0xc09c38[_0xaf66('0x3f')]['limit']);_0xfe69f['offset']=qs[_0xaf66('0x2f')](_0xc09c38[_0xaf66('0x3f')][_0xaf66('0x2f')]);}return _0x56d16c[_0xaf66('0x94')](_0xfe69f);}})[_0xaf66('0x20')](function(_0x5c6983){if(_0x5c6983){return _0x5c6983?{'count':_0x503e4b,'rows':_0x5c6983}:null;}})[_0xaf66('0x20')](respondWithResult(_0xe6e0ff,null))[_0xaf66('0x51')](handleError(_0xe6e0ff,null));};
\ No newline at end of file
+var _0x94d1=['tq.TeamId','from','join','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','clone','push','toString','QueryTypes','TeamId','includes','all','union','compact','value','isEmpty','addAgents','removeAgents','isArray','userChatQueue:remove','getAgents','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../mysqldb','redis','defaults','socket.io-emitter','./chatQueue.socket','register','jayson/promise','client','request','then','info','ChatQueue,\x20%s,\x20%s','debug','ChatQueue,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','destroy','get','ChatQueues','UserProfileResource','sendStatus','stack','name','send','map','ChatQueue','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','nolimit','order','sort','filter','where','VIRTUAL','includeAll','include','rows','params','merge','options','find','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','describe','getMembers','findOne','UserChatQueue','hasOwnProperty','ChatQueueId','findAll','findAndCountAll','chatPause','updatedAt','createdAt','format','%s/%s','SIP','getTeams','pick','ids','Team','User','interface','flatMap','Agents','sequelize','transaction','addTeams','each','findOrCreate','forEach','emit','userChatQueue:save','removeTeams','field'];(function(_0x531437,_0x2a5c46){var _0x211541=function(_0x4c18cf){while(--_0x4c18cf){_0x531437['push'](_0x531437['shift']());}};_0x211541(++_0x2a5c46);}(_0x94d1,0xb0));var _0x194d=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x94d1[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0x194d('0x0'));var rimraf=require(_0x194d('0x1'));var zipdir=require(_0x194d('0x2'));var jsonpatch=require(_0x194d('0x3'));var rp=require(_0x194d('0x4'));var moment=require(_0x194d('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x194d('0x6'));var util=require(_0x194d('0x7'));var path=require(_0x194d('0x8'));var sox=require(_0x194d('0x9'));var csv=require(_0x194d('0xa'));var ejs=require(_0x194d('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x194d('0xc'));var squel=require(_0x194d('0xd'));var crypto=require(_0x194d('0xe'));var jsforce=require(_0x194d('0xf'));var deskjs=require(_0x194d('0x10'));var toCsv=require(_0x194d('0xa'));var querystring=require(_0x194d('0x11'));var Papa=require(_0x194d('0x12'));var Redis=require(_0x194d('0x13'));var authService=require('../../components/auth/service');var qs=require(_0x194d('0x14'));var as=require(_0x194d('0x15'));var hardwareService=require(_0x194d('0x16'));var logger=require(_0x194d('0x17'))(_0x194d('0x18'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x194d('0x19'))['db'];config[_0x194d('0x1a')]=_[_0x194d('0x1b')](config[_0x194d('0x1a')],{'host':'localhost','port':0x18eb});var socket=require(_0x194d('0x1c'))(new Redis(config['redis']));require(_0x194d('0x1d'))[_0x194d('0x1e')](socket);var jayson=require(_0x194d('0x1f'));var client=jayson[_0x194d('0x20')]['http']({'port':0x232a});function respondWithRpcPromise(_0x362425,_0x198dc6,_0x1de3cf,_0x573c38){return new BPromise(function(_0x30becd,_0x400f2e){var _0x3af8ae=_0x573c38||client;return _0x3af8ae[_0x194d('0x21')](_0x362425,_0x1de3cf)[_0x194d('0x22')](function(_0x31d39b){logger[_0x194d('0x23')](_0x194d('0x24'),_0x198dc6,'request\x20sent');logger[_0x194d('0x25')](_0x194d('0x26'),_0x198dc6,_0x194d('0x27'),JSON[_0x194d('0x28')](_0x31d39b));if(_0x31d39b[_0x194d('0x29')]){if(_0x31d39b[_0x194d('0x29')][_0x194d('0x2a')]===0x1f4){logger[_0x194d('0x29')](_0x194d('0x24'),_0x198dc6,_0x31d39b['error'][_0x194d('0x2b')]);return _0x400f2e(_0x31d39b[_0x194d('0x29')][_0x194d('0x2b')]);}logger['error']('ChatQueue,\x20%s,\x20%s',_0x198dc6,_0x31d39b[_0x194d('0x29')][_0x194d('0x2b')]);return _0x30becd(_0x31d39b[_0x194d('0x29')]['message']);}else{logger[_0x194d('0x23')](_0x194d('0x24'),_0x198dc6,_0x194d('0x27'));_0x30becd(_0x31d39b[_0x194d('0x2c')][_0x194d('0x2b')]);}})[_0x194d('0x2d')](function(_0x579c89){logger['error'](_0x194d('0x24'),_0x198dc6,_0x579c89);_0x400f2e(_0x579c89);});});}function respondWithStatusCode(_0x228e51,_0x19fd93){_0x19fd93=_0x19fd93||0xcc;return function(_0x1c31d6){if(_0x1c31d6){return _0x228e51['sendStatus'](_0x19fd93);}return _0x228e51[_0x194d('0x2e')](_0x19fd93)[_0x194d('0x2f')]();};}function respondWithResult(_0x351501,_0x47ae28){_0x47ae28=_0x47ae28||0xc8;return function(_0x4a2c0d){if(_0x4a2c0d){return _0x351501['status'](_0x47ae28)[_0x194d('0x30')](_0x4a2c0d);}};}function respondWithFilteredResult(_0x78f6b,_0x12f8ce){return function(_0x2d16c1){if(_0x2d16c1){var _0x1f8d51=typeof _0x12f8ce[_0x194d('0x31')]===_0x194d('0x32')&&typeof _0x12f8ce[_0x194d('0x33')]==='undefined';var _0xfed807=_0x2d16c1['count'];var _0x3ed476=_0x1f8d51?0x0:_0x12f8ce[_0x194d('0x31')];var _0x3d90ed=_0x1f8d51?_0x2d16c1[_0x194d('0x34')]:_0x12f8ce[_0x194d('0x31')]+_0x12f8ce['limit'];var _0x144612;if(_0x3d90ed>=_0xfed807){_0x3d90ed=_0xfed807;_0x144612=0xc8;}else{_0x144612=0xce;}_0x78f6b[_0x194d('0x2e')](_0x144612);return _0x78f6b[_0x194d('0x35')](_0x194d('0x36'),_0x3ed476+'-'+_0x3d90ed+'/'+_0xfed807)[_0x194d('0x30')](_0x2d16c1);}return null;};}function patchUpdates(_0x38883f){return function(_0x37b6af){try{jsonpatch[_0x194d('0x37')](_0x37b6af,_0x38883f,!![]);}catch(_0x11b56f){return BPromise[_0x194d('0x38')](_0x11b56f);}return _0x37b6af[_0x194d('0x39')]();};}function saveUpdates(_0x316b40,_0x3f2c31){return function(_0x4bdd69){if(_0x4bdd69){return _0x4bdd69['update'](_0x316b40)['then'](function(_0x383d45){return _0x383d45;});}return null;};}function removeEntity(_0x8d8550,_0x549bbd){return function(_0x585eca){if(_0x585eca){return _0x585eca[_0x194d('0x3a')]()[_0x194d('0x22')](function(){var _0x9e82a3=_0x585eca[_0x194d('0x3b')]({'plain':!![]});var _0x3f0e46=_0x194d('0x3c');return db[_0x194d('0x3d')][_0x194d('0x3a')]({'where':{'type':_0x3f0e46,'resourceId':_0x9e82a3['id']}})[_0x194d('0x22')](function(){return _0x585eca;});})[_0x194d('0x22')](function(){_0x8d8550[_0x194d('0x2e')](0xcc)[_0x194d('0x2f')]();});}};}function handleEntityNotFound(_0x8cb972,_0x447453){return function(_0x429756){if(!_0x429756){_0x8cb972[_0x194d('0x3e')](0x194);}return _0x429756;};}function handleError(_0x4d03c1,_0x19db02){_0x19db02=_0x19db02||0x1f4;return function(_0x2288cb){logger[_0x194d('0x29')](_0x2288cb[_0x194d('0x3f')]);if(_0x2288cb[_0x194d('0x40')]){delete _0x2288cb[_0x194d('0x40')];}_0x4d03c1[_0x194d('0x2e')](_0x19db02)[_0x194d('0x41')](_0x2288cb);};}exports['index']=function(_0x50d3c1,_0x399136){var _0x3d8830={},_0x5ed19b={},_0x1b1068={'count':0x0,'rows':[]};var _0x5c6506=_[_0x194d('0x42')](db[_0x194d('0x43')][_0x194d('0x44')],function(_0x84d897){return{'name':_0x84d897[_0x194d('0x45')],'type':_0x84d897[_0x194d('0x46')][_0x194d('0x47')]};});_0x5ed19b[_0x194d('0x48')]=_[_0x194d('0x42')](_0x5c6506,_0x194d('0x40'));_0x5ed19b[_0x194d('0x49')]=_[_0x194d('0x4a')](_0x50d3c1[_0x194d('0x49')]);_0x5ed19b[_0x194d('0x4b')]=_[_0x194d('0x4c')](_0x5ed19b[_0x194d('0x48')],_0x5ed19b[_0x194d('0x49')]);_0x3d8830[_0x194d('0x4d')]=_[_0x194d('0x4c')](_0x5ed19b['model'],qs[_0x194d('0x4e')](_0x50d3c1['query'][_0x194d('0x4e')]));_0x3d8830['attributes']=_0x3d8830[_0x194d('0x4d')][_0x194d('0x4f')]?_0x3d8830[_0x194d('0x4d')]:_0x5ed19b[_0x194d('0x48')];if(!_0x50d3c1[_0x194d('0x49')]['hasOwnProperty'](_0x194d('0x50'))){_0x3d8830[_0x194d('0x33')]=qs[_0x194d('0x33')](_0x50d3c1['query']['limit']);_0x3d8830[_0x194d('0x31')]=qs[_0x194d('0x31')](_0x50d3c1[_0x194d('0x49')][_0x194d('0x31')]);}_0x3d8830[_0x194d('0x51')]=qs[_0x194d('0x52')](_0x50d3c1['query'][_0x194d('0x52')]);_0x3d8830['where']=qs[_0x194d('0x4b')](_['pick'](_0x50d3c1['query'],_0x5ed19b[_0x194d('0x4b')]),_0x5c6506);if(_0x50d3c1[_0x194d('0x49')][_0x194d('0x53')]){_0x3d8830[_0x194d('0x54')]=_['merge'](_0x3d8830['where'],{'$or':_['map'](_0x5c6506,function(_0x49fbc5){if(_0x49fbc5[_0x194d('0x46')]!==_0x194d('0x55')){var _0x157f23={};_0x157f23[_0x49fbc5[_0x194d('0x40')]]={'$like':'%'+_0x50d3c1['query'][_0x194d('0x53')]+'%'};return _0x157f23;}})});}_0x3d8830=_['merge']({},_0x3d8830,_0x50d3c1['options']);var _0x542290={'where':_0x3d8830[_0x194d('0x54')]};return db[_0x194d('0x43')]['count'](_0x542290)[_0x194d('0x22')](function(_0x1eccbb){_0x1b1068['count']=_0x1eccbb;if(_0x50d3c1[_0x194d('0x49')][_0x194d('0x56')]){_0x3d8830[_0x194d('0x57')]=[{'all':!![]}];}return db['ChatQueue']['findAll'](_0x3d8830);})[_0x194d('0x22')](function(_0xa178b6){_0x1b1068[_0x194d('0x58')]=_0xa178b6;return _0x1b1068;})[_0x194d('0x22')](respondWithFilteredResult(_0x399136,_0x3d8830))['catch'](handleError(_0x399136,null));};exports['show']=function(_0x51aee2,_0x20f4ac){var _0xf000f0={'raw':!![],'where':{'id':_0x51aee2[_0x194d('0x59')]['id']}},_0x906250={};_0x906250[_0x194d('0x48')]=_['keys'](db[_0x194d('0x43')][_0x194d('0x44')]);_0x906250[_0x194d('0x49')]=_[_0x194d('0x4a')](_0x51aee2[_0x194d('0x49')]);_0x906250[_0x194d('0x4b')]=_['intersection'](_0x906250[_0x194d('0x48')],_0x906250['query']);_0xf000f0[_0x194d('0x4d')]=_[_0x194d('0x4c')](_0x906250[_0x194d('0x48')],qs[_0x194d('0x4e')](_0x51aee2['query']['fields']));_0xf000f0[_0x194d('0x4d')]=_0xf000f0[_0x194d('0x4d')]['length']?_0xf000f0[_0x194d('0x4d')]:_0x906250[_0x194d('0x48')];if(_0x51aee2['query'][_0x194d('0x56')]){_0xf000f0[_0x194d('0x57')]=[{'all':!![]}];}_0xf000f0=_[_0x194d('0x5a')]({},_0xf000f0,_0x51aee2[_0x194d('0x5b')]);return db['ChatQueue'][_0x194d('0x5c')](_0xf000f0)[_0x194d('0x22')](handleEntityNotFound(_0x20f4ac,null))[_0x194d('0x22')](respondWithResult(_0x20f4ac,null))[_0x194d('0x2d')](handleError(_0x20f4ac,null));};exports[_0x194d('0x5d')]=function(_0x215b2f,_0x1cfdf1){return db[_0x194d('0x43')][_0x194d('0x5d')](_0x215b2f[_0x194d('0x5e')],{})[_0x194d('0x22')](function(_0x24f186){var _0x26289f=_0x215b2f['user'][_0x194d('0x3b')]({'plain':!![]});if(!_0x26289f)throw new Error(_0x194d('0x5f'));if(_0x26289f[_0x194d('0x60')]===_0x194d('0x61')){var _0x14d52b=_0x24f186['get']({'plain':!![]});var _0x272c16=_0x194d('0x3c');return db[_0x194d('0x62')][_0x194d('0x5c')]({'where':{'name':_0x272c16,'userProfileId':_0x26289f['userProfileId']},'raw':!![]})['then'](function(_0x225882){if(_0x225882&&_0x225882[_0x194d('0x63')]===0x0){return db[_0x194d('0x3d')][_0x194d('0x5d')]({'name':_0x14d52b[_0x194d('0x40')],'resourceId':_0x14d52b['id'],'type':_0x225882[_0x194d('0x40')],'sectionId':_0x225882['id']},{})['then'](function(){return _0x24f186;});}else{return _0x24f186;}})[_0x194d('0x2d')](function(_0x473bf4){logger[_0x194d('0x29')](_0x194d('0x64'),_0x473bf4);throw _0x473bf4;});}return _0x24f186;})[_0x194d('0x22')](respondWithResult(_0x1cfdf1,0xc9))['catch'](handleError(_0x1cfdf1,null));};exports[_0x194d('0x65')]=function(_0x37686e,_0x2f4618){if(_0x37686e[_0x194d('0x5e')]['id']){delete _0x37686e[_0x194d('0x5e')]['id'];}return db[_0x194d('0x43')][_0x194d('0x5c')]({'where':{'id':_0x37686e['params']['id']}})['then'](handleEntityNotFound(_0x2f4618,null))[_0x194d('0x22')](saveUpdates(_0x37686e['body'],null))['then'](respondWithResult(_0x2f4618,null))[_0x194d('0x2d')](handleError(_0x2f4618,null));};exports[_0x194d('0x3a')]=function(_0x373043,_0x4407ad){return db[_0x194d('0x43')][_0x194d('0x5c')]({'where':{'id':_0x373043[_0x194d('0x59')]['id']}})[_0x194d('0x22')](handleEntityNotFound(_0x4407ad,null))[_0x194d('0x22')](removeEntity(_0x4407ad,null))[_0x194d('0x2d')](handleError(_0x4407ad,null));};exports[_0x194d('0x66')]=function(_0x50d071,_0x3c4295){return db[_0x194d('0x43')][_0x194d('0x66')]()[_0x194d('0x22')](respondWithResult(_0x3c4295,null))[_0x194d('0x2d')](handleError(_0x3c4295,null));};exports[_0x194d('0x67')]=function(_0x47ec00,_0x2fb911,_0x9763fe){var _0x5c6b9b={'raw':!![],'where':{}},_0xce89dd={},_0x1870a3;return db[_0x194d('0x43')][_0x194d('0x68')]({'where':{'id':_0x47ec00[_0x194d('0x59')]['id']}})[_0x194d('0x22')](handleEntityNotFound(_0x2fb911,null))['then'](function(_0x2c3676){if(_0x2c3676){_0x1870a3=_0x2c3676['get']({'plain':!![]});_0xce89dd['model']=_['keys'](db[_0x194d('0x69')][_0x194d('0x44')]);_0xce89dd[_0x194d('0x49')]=_[_0x194d('0x4a')](_0x47ec00[_0x194d('0x49')]);_0xce89dd[_0x194d('0x4b')]=_['intersection'](_0xce89dd[_0x194d('0x48')],_0xce89dd[_0x194d('0x49')]);_0x5c6b9b[_0x194d('0x4d')]=_['intersection'](_0xce89dd[_0x194d('0x48')],qs[_0x194d('0x4e')](_0x47ec00[_0x194d('0x49')][_0x194d('0x4e')]));_0x5c6b9b[_0x194d('0x4d')]=_0x5c6b9b[_0x194d('0x4d')][_0x194d('0x4f')]?_0x5c6b9b[_0x194d('0x4d')]:_0xce89dd['model'];if(!_0x47ec00[_0x194d('0x49')][_0x194d('0x6a')](_0x194d('0x50'))){_0x5c6b9b[_0x194d('0x33')]=qs[_0x194d('0x33')](_0x47ec00[_0x194d('0x49')][_0x194d('0x33')]);_0x5c6b9b['offset']=qs[_0x194d('0x31')](_0x47ec00['query'][_0x194d('0x31')]);}_0x5c6b9b['order']=qs[_0x194d('0x52')](_0x47ec00[_0x194d('0x49')][_0x194d('0x52')]);_0x5c6b9b['where']=qs[_0x194d('0x4b')](_['pick'](_0x47ec00[_0x194d('0x49')],_0xce89dd[_0x194d('0x4b')]));_0x5c6b9b['where'][_0x194d('0x6b')]=_0x2c3676['id'];if(_0x47ec00['query'][_0x194d('0x53')]){_0x5c6b9b[_0x194d('0x54')]=_[_0x194d('0x5a')](_0x5c6b9b[_0x194d('0x54')],{'$or':_[_0x194d('0x42')](_0x5c6b9b['attributes'],function(_0x47aa3a){var _0x4cde44={};_0x4cde44[_0x47aa3a]={'$like':'%'+_0x47ec00[_0x194d('0x49')][_0x194d('0x53')]+'%'};return _0x4cde44;})});}_0x5c6b9b=_['merge']({},_0x5c6b9b,_0x47ec00[_0x194d('0x5b')]);return db['UserChatQueue'][_0x194d('0x6c')](_0x5c6b9b);}})[_0x194d('0x22')](function(_0x65618b){if(_0x65618b){return db['User'][_0x194d('0x6d')]({'where':{'id':_[_0x194d('0x42')](_0x65618b,'UserId'),'role':'agent'},'attributes':['id','name',_0x194d('0x6e'),_0x194d('0x6f'),_0x194d('0x70')]});}})[_0x194d('0x22')](function(_0x486363){if(_0x486363){return{'count':_0x486363[_0x194d('0x34')],'rows':_[_0x194d('0x42')](_0x486363[_0x194d('0x58')],function(_0x5a8bc7){return{'membername':_0x5a8bc7[_0x194d('0x40')],'UserId':_0x5a8bc7['id'],'queue_name':_0x1870a3[_0x194d('0x40')],'ChatQueueId':_0x1870a3['id'],'interface':util[_0x194d('0x71')](_0x194d('0x72'),_0x194d('0x73'),_0x5a8bc7[_0x194d('0x40')]),'penalty':0x0,'paused':_0x5a8bc7[_0x194d('0x6e')],'createdAt':_0x5a8bc7[_0x194d('0x70')],'updatedAt':_0x5a8bc7[_0x194d('0x6f')]};})};}else{return{'count':0x0,'rows':[]};}})['then'](respondWithFilteredResult(_0x2fb911,_0x5c6b9b))[_0x194d('0x2d')](handleError(_0x2fb911,null));};exports[_0x194d('0x74')]=function(_0x22ea29,_0x3f1bd5,_0x23532){var _0x2f9256={};var _0x189d27={};var _0x453117;var _0x3f7193;return db[_0x194d('0x43')]['findOne']({'where':{'id':_0x22ea29[_0x194d('0x59')]['id']}})[_0x194d('0x22')](handleEntityNotFound(_0x3f1bd5,null))[_0x194d('0x22')](function(_0x1891c3){if(_0x1891c3){_0x453117=_0x1891c3;_0x189d27[_0x194d('0x48')]=_[_0x194d('0x4a')](db['Team'][_0x194d('0x44')]);_0x189d27[_0x194d('0x49')]=_[_0x194d('0x4a')](_0x22ea29[_0x194d('0x49')]);_0x189d27[_0x194d('0x4b')]=_['intersection'](_0x189d27[_0x194d('0x48')],_0x189d27[_0x194d('0x49')]);_0x2f9256['attributes']=_['intersection'](_0x189d27[_0x194d('0x48')],qs[_0x194d('0x4e')](_0x22ea29[_0x194d('0x49')][_0x194d('0x4e')]));_0x2f9256[_0x194d('0x4d')]=_0x2f9256['attributes']['length']?_0x2f9256[_0x194d('0x4d')]:_0x189d27['model'];_0x2f9256[_0x194d('0x51')]=qs['sort'](_0x22ea29[_0x194d('0x49')]['sort']);_0x2f9256[_0x194d('0x54')]=qs[_0x194d('0x4b')](_[_0x194d('0x75')](_0x22ea29[_0x194d('0x49')],_0x189d27[_0x194d('0x4b')]));if(_0x22ea29[_0x194d('0x49')][_0x194d('0x53')]){_0x2f9256['where']=_[_0x194d('0x5a')](_0x2f9256[_0x194d('0x54')],{'$or':_[_0x194d('0x42')](_0x2f9256[_0x194d('0x4d')],function(_0x3ba03d){var _0x5e9868={};_0x5e9868[_0x3ba03d]={'$like':'%'+_0x22ea29['query']['filter']+'%'};return _0x5e9868;})});}_0x2f9256=_[_0x194d('0x5a')]({},_0x2f9256,_0x22ea29['options']);return _0x453117['getTeams'](_0x2f9256);}})['then'](function(_0x229300){if(_0x229300){_0x3f7193=_0x229300[_0x194d('0x4f')];if(!_0x22ea29['query'][_0x194d('0x6a')](_0x194d('0x50'))){_0x2f9256['limit']=qs[_0x194d('0x33')](_0x22ea29[_0x194d('0x49')]['limit']);_0x2f9256[_0x194d('0x31')]=qs[_0x194d('0x31')](_0x22ea29[_0x194d('0x49')][_0x194d('0x31')]);}return _0x453117['getTeams'](_0x2f9256);}})[_0x194d('0x22')](function(_0x4f08d2){if(_0x4f08d2){return _0x4f08d2?{'count':_0x3f7193,'rows':_0x4f08d2}:null;}})[_0x194d('0x22')](respondWithResult(_0x3f1bd5,null))['catch'](handleError(_0x3f1bd5,null));};exports['addTeams']=function(_0x36e2f8,_0x4e3b96,_0x32c725){var _0x8dc251=_0x36e2f8[_0x194d('0x5e')][_0x194d('0x76')];return db[_0x194d('0x77')][_0x194d('0x6c')]({'where':{'id':_0x8dc251},'attributes':['id'],'include':[{'model':db[_0x194d('0x78')],'as':'Agents','attributes':['id',_0x194d('0x40'),'online','voicePause',_0x194d('0x79')],'raw':!![]}]})[_0x194d('0x22')](function(_0x57ec75){if(_0x57ec75){var _0x116b56=_[_0x194d('0x7a')](_0x57ec75,function(_0x182921){var _0xe75a93=_0x182921[_0x194d('0x3b')]({'plain':!![]});return _0xe75a93[_0x194d('0x7b')];});return db[_0x194d('0x43')]['find']({'where':{'id':_0x36e2f8[_0x194d('0x59')]['id']}})['then'](function(_0x52cd93){return db[_0x194d('0x7c')][_0x194d('0x7d')](function(_0x2219ce){return _0x52cd93[_0x194d('0x7e')](_0x8dc251,{'transaction':_0x2219ce})['then'](function(){return BPromise[_0x194d('0x7f')](_0x116b56,function(_0x2b7cbf){return db[_0x194d('0x69')][_0x194d('0x80')]({'where':{'UserId':_0x2b7cbf['id'],'ChatQueueId':_0x36e2f8[_0x194d('0x59')]['id']},'transaction':_0x2219ce});});})['then'](function(){_0x116b56[_0x194d('0x81')](function(_0x22e8c0){socket[_0x194d('0x82')](_0x194d('0x83'),{'UserId':_0x22e8c0['id'],'ChatQueueId':_0x52cd93['id']});});});});});}})[_0x194d('0x22')](respondWithStatusCode(_0x4e3b96,null))[_0x194d('0x2d')](handleError(_0x4e3b96,null));};exports[_0x194d('0x84')]=function(_0x10c249,_0x16b431,_0x34d9be){return db['Team'][_0x194d('0x6c')]({'where':{'id':_0x10c249['query'][_0x194d('0x76')]},'attributes':['id'],'include':[{'model':db[_0x194d('0x78')],'as':'Agents','attributes':['id'],'raw':!![]}]})[_0x194d('0x22')](handleEntityNotFound(_0x16b431,null))[_0x194d('0x22')](function(_0x7be2a2){var _0x5977ae=_[_0x194d('0x42')](_0x7be2a2,'id');var _0x2039d1=[];var _0x28ebfb=[];var _0x5ef571=squel['select']();_0x5ef571[_0x194d('0x85')](_0x194d('0x86'))[_0x194d('0x87')]('team_has_chat_queues','tq')[_0x194d('0x88')](_0x194d('0x89'),'ut',_0x194d('0x8a'))[_0x194d('0x54')]('ChatQueueId\x20=\x20?',_0x10c249[_0x194d('0x59')]['id']);for(var _0x4c3835=0x0;_0x4c3835<_0x7be2a2['length'];_0x4c3835+=0x1){let _0x264edc=_0x7be2a2[_0x4c3835];for(var _0x150724=0x0;_0x150724<_0x264edc[_0x194d('0x7b')][_0x194d('0x4f')];_0x150724+=0x1){let _0xe58a52=_0x264edc[_0x194d('0x7b')][_0x150724];var _0x366a53=_0x5ef571[_0x194d('0x8b')]();_0x366a53[_0x194d('0x54')]('ut.UserId\x20=\x20?',_0xe58a52['id']);_0x28ebfb[_0x194d('0x8c')](db[_0x194d('0x7c')]['query'](_0x366a53[_0x194d('0x8d')](),{'type':db[_0x194d('0x7c')][_0x194d('0x8e')]['SELECT']})[_0x194d('0x22')](function(_0x53ee3b){if(_0x53ee3b[_0x194d('0x4f')]===0x1){return _0xe58a52['id'];}else{var _0x5f4e82=_['every'](_[_0x194d('0x42')](_0x53ee3b,_0x194d('0x8f')),function(_0x4b5d2b){return _[_0x194d('0x90')](_0x5977ae,_0x4b5d2b);});if(_0x5f4e82){return _0xe58a52['id'];}}}));}}return BPromise[_0x194d('0x91')](_0x28ebfb)['then'](function(_0x303f09){_0x2039d1=_(_0x2039d1)[_0x194d('0x92')](_0x303f09)[_0x194d('0x93')]()[_0x194d('0x94')]();return db[_0x194d('0x43')]['find']({'where':{'id':_0x10c249['params']['id']}})[_0x194d('0x22')](function(_0x1d3919){return db[_0x194d('0x7c')]['transaction'](function(_0x2daeb7){return _0x1d3919[_0x194d('0x84')](_0x10c249[_0x194d('0x49')][_0x194d('0x76')],{'transaction':_0x2daeb7})[_0x194d('0x22')](function(){if(!_[_0x194d('0x95')](_0x2039d1)){return _0x1d3919['removeAgents'](_0x2039d1,{'transaction':_0x2daeb7});}})['then'](function(){_0x2039d1[_0x194d('0x81')](function(_0x348f53){socket[_0x194d('0x82')]('userChatQueue:remove',{'UserId':_0x348f53,'ChatQueueId':_0x1d3919['id']});});});});});});})[_0x194d('0x22')](respondWithStatusCode(_0x16b431,null))['catch'](handleError(_0x16b431,null));};exports[_0x194d('0x96')]=function(_0x2c8574,_0x54055d,_0x678c10){return db[_0x194d('0x43')]['find']({'where':{'id':_0x2c8574[_0x194d('0x59')]['id']}})['then'](handleEntityNotFound(_0x54055d,null))[_0x194d('0x22')](function(_0x2ffc9c){if(_0x2ffc9c){return _0x2ffc9c[_0x194d('0x96')](_0x2c8574[_0x194d('0x5e')][_0x194d('0x76')],_['omit'](_0x2c8574[_0x194d('0x5e')],[_0x194d('0x76'),'id'])||{})['spread'](function(_0x31923d){for(var _0x29aad6=0x0;_0x29aad6<_0x2c8574['body'][_0x194d('0x76')][_0x194d('0x4f')];_0x29aad6+=0x1){socket[_0x194d('0x82')]('userChatQueue:save',{'UserId':Number(_0x2c8574[_0x194d('0x5e')][_0x194d('0x76')][_0x29aad6]),'ChatQueueId':Number(_0x2c8574['params']['id'])});}return _0x31923d;});}})[_0x194d('0x22')](respondWithResult(_0x54055d,null))[_0x194d('0x2d')](handleError(_0x54055d,null));};exports[_0x194d('0x97')]=function(_0x62d37b,_0x166a70,_0x55cf25){return db[_0x194d('0x43')][_0x194d('0x5c')]({'where':{'id':_0x62d37b[_0x194d('0x59')]['id']}})[_0x194d('0x22')](handleEntityNotFound(_0x166a70,null))[_0x194d('0x22')](function(_0x113ad0){if(_0x113ad0){return _0x113ad0[_0x194d('0x97')](_0x62d37b[_0x194d('0x49')][_0x194d('0x76')])[_0x194d('0x22')](function(){if(_[_0x194d('0x98')](_0x62d37b[_0x194d('0x49')]['ids'])){for(var _0x5947e8=0x0;_0x5947e8<_0x62d37b[_0x194d('0x49')][_0x194d('0x76')][_0x194d('0x4f')];_0x5947e8+=0x1){socket[_0x194d('0x82')](_0x194d('0x99'),{'UserId':Number(_0x62d37b['query']['ids'][_0x5947e8]),'ChatQueueId':Number(_0x62d37b[_0x194d('0x59')]['id'])});}}else{socket[_0x194d('0x82')](_0x194d('0x99'),{'UserId':Number(_0x62d37b[_0x194d('0x49')][_0x194d('0x76')]),'ChatQueueId':Number(_0x62d37b[_0x194d('0x59')]['id'])});}});}})['then'](respondWithStatusCode(_0x166a70,null))[_0x194d('0x2d')](handleError(_0x166a70,null));};exports[_0x194d('0x9a')]=function(_0xb6ea39,_0x2976da,_0x522481){var _0x1c429a={};var _0x139b40={};var _0x3a2c36;var _0x150b63;return db['ChatQueue'][_0x194d('0x68')]({'where':{'id':_0xb6ea39[_0x194d('0x59')]['id']}})[_0x194d('0x22')](handleEntityNotFound(_0x2976da,null))[_0x194d('0x22')](function(_0x2b3024){if(_0x2b3024){_0x3a2c36=_0x2b3024;_0x139b40['model']=_['keys'](db[_0x194d('0x78')]['rawAttributes']);_0x139b40[_0x194d('0x49')]=_['keys'](_0xb6ea39['query']);_0x139b40[_0x194d('0x4b')]=_[_0x194d('0x4c')](_0x139b40['model'],_0x139b40[_0x194d('0x49')]);_0x1c429a[_0x194d('0x4d')]=_[_0x194d('0x4c')](_0x139b40[_0x194d('0x48')],qs[_0x194d('0x4e')](_0xb6ea39['query'][_0x194d('0x4e')]));_0x1c429a[_0x194d('0x4d')]=_0x1c429a[_0x194d('0x4d')][_0x194d('0x4f')]?_0x1c429a[_0x194d('0x4d')]:_0x139b40[_0x194d('0x48')];_0x1c429a[_0x194d('0x51')]=qs[_0x194d('0x52')](_0xb6ea39[_0x194d('0x49')]['sort']);_0x1c429a[_0x194d('0x54')]=qs[_0x194d('0x4b')](_[_0x194d('0x75')](_0xb6ea39[_0x194d('0x49')],_0x139b40[_0x194d('0x4b')]));if(_0xb6ea39[_0x194d('0x49')]['filter']){_0x1c429a['where']=_[_0x194d('0x5a')](_0x1c429a[_0x194d('0x54')],{'$or':_[_0x194d('0x42')](_0x1c429a[_0x194d('0x4d')],function(_0x2c6247){var _0x350e7c={};_0x350e7c[_0x2c6247]={'$like':'%'+_0xb6ea39['query'][_0x194d('0x53')]+'%'};return _0x350e7c;})});}_0x1c429a=_['merge']({},_0x1c429a,_0xb6ea39[_0x194d('0x5b')]);return _0x3a2c36['getAgents'](_0x1c429a);}})[_0x194d('0x22')](function(_0xd42497){if(_0xd42497){_0x150b63=_0xd42497[_0x194d('0x4f')];if(!_0xb6ea39[_0x194d('0x49')][_0x194d('0x6a')](_0x194d('0x50'))){_0x1c429a[_0x194d('0x33')]=qs['limit'](_0xb6ea39[_0x194d('0x49')]['limit']);_0x1c429a[_0x194d('0x31')]=qs[_0x194d('0x31')](_0xb6ea39[_0x194d('0x49')][_0x194d('0x31')]);}return _0x3a2c36[_0x194d('0x9a')](_0x1c429a);}})['then'](function(_0x5b45da){if(_0x5b45da){return _0x5b45da?{'count':_0x150b63,'rows':_0x5b45da}:null;}})[_0x194d('0x22')](respondWithResult(_0x2976da,null))[_0x194d('0x2d')](handleError(_0x2976da,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7ab1=['update','remove','emit','hasOwnProperty','exports','../../mysqldb'];(function(_0x192807,_0x17de9e){var _0x4061df=function(_0x44eed9){while(--_0x44eed9){_0x192807['push'](_0x192807['shift']());}};_0x4061df(++_0x17de9e);}(_0x7ab1,0x1b5));var _0x17ab=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0x7ab1[_0x20a584];return _0x4b41a8;};'use strict';var EventEmitter=require('events');var ChatQueue=require(_0x17ab('0x0'))['db']['ChatQueue'];var ChatQueueEvents=new EventEmitter();ChatQueueEvents['setMaxListeners'](0x0);var events={'afterCreate':'save','afterUpdate':_0x17ab('0x1'),'afterDestroy':_0x17ab('0x2')};function emitEvent(_0x3f3cf0){return function(_0x29b082,_0x158d0d,_0x15919c){ChatQueueEvents['emit'](_0x3f3cf0+':'+_0x29b082['id'],_0x29b082);ChatQueueEvents[_0x17ab('0x3')](_0x3f3cf0,_0x29b082);_0x15919c(null);};}for(var e in events){if(events[_0x17ab('0x4')](e)){var event=events[e];ChatQueue['hook'](e,emitEvent(event));}}module[_0x17ab('0x5')]=ChatQueueEvents;
\ No newline at end of file
+var _0xf5b0=['events','../../mysqldb','ChatQueue','setMaxListeners','save','remove','emit','hasOwnProperty','hook','exports'];(function(_0x1bfaea,_0x55ff33){var _0x2538e3=function(_0x5c5b2d){while(--_0x5c5b2d){_0x1bfaea['push'](_0x1bfaea['shift']());}};_0x2538e3(++_0x55ff33);}(_0xf5b0,0x10e));var _0x0f5b=function(_0x134c2e,_0x3573c4){_0x134c2e=_0x134c2e-0x0;var _0x2825db=_0xf5b0[_0x134c2e];return _0x2825db;};'use strict';var EventEmitter=require(_0x0f5b('0x0'));var ChatQueue=require(_0x0f5b('0x1'))['db'][_0x0f5b('0x2')];var ChatQueueEvents=new EventEmitter();ChatQueueEvents[_0x0f5b('0x3')](0x0);var events={'afterCreate':_0x0f5b('0x4'),'afterUpdate':'update','afterDestroy':_0x0f5b('0x5')};function emitEvent(_0x567e7f){return function(_0x3e7f6d,_0xf49b6a,_0x353dea){ChatQueueEvents[_0x0f5b('0x6')](_0x567e7f+':'+_0x3e7f6d['id'],_0x3e7f6d);ChatQueueEvents[_0x0f5b('0x6')](_0x567e7f,_0x3e7f6d);_0x353dea(null);};}for(var e in events){if(events[_0x0f5b('0x7')](e)){var event=events[e];ChatQueue[_0x0f5b('0x8')](e,emitEvent(event));}}module[_0x0f5b('0x9')]=ChatQueueEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6be9=['../../config/logger','api','bluebird','request-promise','path','rimraf','../../config/environment','./chatQueue.attributes','exports','define','ChatQueue','lodash','util'];(function(_0x1d7300,_0x17f109){var _0x46ee98=function(_0x5ee16a){while(--_0x5ee16a){_0x1d7300['push'](_0x1d7300['shift']());}};_0x46ee98(++_0x17f109);}(_0x6be9,0x66));var _0x96be=function(_0x2ed989,_0xf3616){_0x2ed989=_0x2ed989-0x0;var _0x1200f3=_0x6be9[_0x2ed989];return _0x1200f3;};'use strict';var _=require(_0x96be('0x0'));var util=require(_0x96be('0x1'));var logger=require(_0x96be('0x2'))(_0x96be('0x3'));var moment=require('moment');var BPromise=require(_0x96be('0x4'));var rp=require(_0x96be('0x5'));var fs=require('fs');var path=require(_0x96be('0x6'));var rimraf=require(_0x96be('0x7'));var config=require(_0x96be('0x8'));var attributes=require(_0x96be('0x9'));module[_0x96be('0xa')]=function(_0x2c3c37,_0x1a0cde){return _0x2c3c37[_0x96be('0xb')](_0x96be('0xc'),attributes,{'tableName':'chat_queues','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x6817=['path','rimraf','../../config/environment','./chatQueue.attributes','define','ChatQueue','lodash','util','../../config/logger','moment','bluebird','request-promise'];(function(_0x1af711,_0x29e9a4){var _0x11b425=function(_0x355249){while(--_0x355249){_0x1af711['push'](_0x1af711['shift']());}};_0x11b425(++_0x29e9a4);}(_0x6817,0x126));var _0x7681=function(_0x4a1fbc,_0x1c75df){_0x4a1fbc=_0x4a1fbc-0x0;var _0x41404f=_0x6817[_0x4a1fbc];return _0x41404f;};'use strict';var _=require(_0x7681('0x0'));var util=require(_0x7681('0x1'));var logger=require(_0x7681('0x2'))('api');var moment=require(_0x7681('0x3'));var BPromise=require(_0x7681('0x4'));var rp=require(_0x7681('0x5'));var fs=require('fs');var path=require(_0x7681('0x6'));var rimraf=require(_0x7681('0x7'));var config=require(_0x7681('0x8'));var attributes=require(_0x7681('0x9'));module['exports']=function(_0x3977d7,_0x8e3258){return _0x3977d7[_0x7681('0xa')](_0x7681('0xb'),attributes,{'tableName':'chat_queues','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x672d=['message','result','catch','ChatQueue','options','raw','where','attributes','limit','map','model','include','GetChatQueue','ShowChatQueue','find','lodash','moment','bluebird','../../config/utils','../../config/logger','../../config/environment','client','http','redis','defaults','localhost','./chatQueue.socket','register','request','then','info','ChatQueue,\x20%s,\x20%s','debug','request\x20sent','stringify','error','code'];(function(_0x219d87,_0x1cb6f7){var _0x22823d=function(_0x5357bf){while(--_0x5357bf){_0x219d87['push'](_0x219d87['shift']());}};_0x22823d(++_0x1cb6f7);}(_0x672d,0x181));var _0xd672=function(_0x4748b5,_0x442d0a){_0x4748b5=_0x4748b5-0x0;var _0x311a30=_0x672d[_0x4748b5];return _0x311a30;};'use strict';var _=require(_0xd672('0x0'));var util=require('util');var moment=require(_0xd672('0x1'));var BPromise=require(_0xd672('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0xd672('0x3'));var logger=require(_0xd672('0x4'))('rpc');var config=require(_0xd672('0x5'));var jayson=require('jayson/promise');var client=jayson[_0xd672('0x6')][_0xd672('0x7')]({'port':0x232a});config[_0xd672('0x8')]=_[_0xd672('0x9')](config[_0xd672('0x8')],{'host':_0xd672('0xa'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xd672('0x8')]));require(_0xd672('0xb'))[_0xd672('0xc')](socket);function respondWithRpcPromise(_0x431bfa,_0x218c6f,_0x41289b){return new BPromise(function(_0x4e87ba,_0x5ae10e){return client[_0xd672('0xd')](_0x431bfa,_0x41289b)[_0xd672('0xe')](function(_0x46f78b){logger[_0xd672('0xf')](_0xd672('0x10'),_0x218c6f,'request\x20sent');logger[_0xd672('0x11')]('ChatQueue,\x20%s,\x20%s,\x20%s',_0x218c6f,_0xd672('0x12'),JSON[_0xd672('0x13')](_0x46f78b));if(_0x46f78b[_0xd672('0x14')]){if(_0x46f78b['error'][_0xd672('0x15')]===0x1f4){logger[_0xd672('0x14')](_0xd672('0x10'),_0x218c6f,_0x46f78b[_0xd672('0x14')][_0xd672('0x16')]);return _0x5ae10e(_0x46f78b[_0xd672('0x14')]['message']);}logger[_0xd672('0x14')](_0xd672('0x10'),_0x218c6f,_0x46f78b[_0xd672('0x14')]['message']);return _0x4e87ba(_0x46f78b[_0xd672('0x14')][_0xd672('0x16')]);}else{logger[_0xd672('0xf')](_0xd672('0x10'),_0x218c6f,'request\x20sent');_0x4e87ba(_0x46f78b[_0xd672('0x17')][_0xd672('0x16')]);}})[_0xd672('0x18')](function(_0x3a99d8){logger[_0xd672('0x14')](_0xd672('0x10'),_0x218c6f,_0x3a99d8);_0x5ae10e(_0x3a99d8);});});}exports['GetChatQueue']=function(_0x236bd7){var _0x486ba1=this;return new Promise(function(_0x1cda11,_0x5604cb){return db[_0xd672('0x19')]['findAll']({'raw':_0x236bd7[_0xd672('0x1a')]?_0x236bd7['options'][_0xd672('0x1b')]===undefined?!![]:![]:!![],'where':_0x236bd7[_0xd672('0x1a')]?_0x236bd7[_0xd672('0x1a')][_0xd672('0x1c')]||null:null,'attributes':_0x236bd7['options']?_0x236bd7[_0xd672('0x1a')][_0xd672('0x1d')]||null:null,'limit':_0x236bd7[_0xd672('0x1a')]?_0x236bd7[_0xd672('0x1a')][_0xd672('0x1e')]||null:null,'include':_0x236bd7[_0xd672('0x1a')]?_0x236bd7[_0xd672('0x1a')]['include']?_[_0xd672('0x1f')](_0x236bd7['options']['include'],function(_0x314d7d){return{'model':db[_0x314d7d[_0xd672('0x20')]],'as':_0x314d7d['as'],'attributes':_0x314d7d['attributes'],'include':_0x314d7d[_0xd672('0x21')]?_[_0xd672('0x1f')](_0x314d7d[_0xd672('0x21')],function(_0x5764e2){return{'model':db[_0x5764e2['model']],'as':_0x5764e2['as'],'attributes':_0x5764e2['attributes'],'include':_0x5764e2[_0xd672('0x21')]?_['map'](_0x5764e2['include'],function(_0x549c5e){return{'model':db[_0x549c5e['model']],'as':_0x549c5e['as'],'attributes':_0x549c5e['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x526a90){logger[_0xd672('0xf')]('GetChatQueue',_0x236bd7);logger['debug'](_0xd672('0x22'),_0x236bd7,JSON[_0xd672('0x13')](_0x526a90));_0x1cda11(_0x526a90);})[_0xd672('0x18')](function(_0x8ef91d){logger[_0xd672('0x14')](_0xd672('0x22'),_0x8ef91d[_0xd672('0x16')],_0x236bd7);_0x5604cb(_0x486ba1[_0xd672('0x14')](0x1f4,_0x8ef91d[_0xd672('0x16')]));});});};exports[_0xd672('0x23')]=function(_0x15d280){var _0x267aa3=this;return new Promise(function(_0x162c35,_0x1ba48a){return db[_0xd672('0x19')][_0xd672('0x24')]({'raw':_0x15d280['options']?_0x15d280[_0xd672('0x1a')][_0xd672('0x1b')]===undefined?!![]:![]:!![],'where':_0x15d280['options']?_0x15d280[_0xd672('0x1a')][_0xd672('0x1c')]||null:null,'attributes':_0x15d280[_0xd672('0x1a')]?_0x15d280[_0xd672('0x1a')]['attributes']||null:null,'include':_0x15d280[_0xd672('0x1a')]?_0x15d280['options'][_0xd672('0x21')]?_[_0xd672('0x1f')](_0x15d280[_0xd672('0x1a')]['include'],function(_0xf16e2c){return{'model':db[_0xf16e2c[_0xd672('0x20')]],'as':_0xf16e2c['as'],'attributes':_0xf16e2c['attributes'],'include':_0xf16e2c[_0xd672('0x21')]?_['map'](_0xf16e2c[_0xd672('0x21')],function(_0x1d43e8){return{'model':db[_0x1d43e8[_0xd672('0x20')]],'as':_0x1d43e8['as'],'attributes':_0x1d43e8[_0xd672('0x1d')],'include':_0x1d43e8['include']?_[_0xd672('0x1f')](_0x1d43e8[_0xd672('0x21')],function(_0xe353d4){return{'model':db[_0xe353d4[_0xd672('0x20')]],'as':_0xe353d4['as'],'attributes':_0xe353d4['attributes']};}):[]};}):[]};}):[]:[]})[_0xd672('0xe')](function(_0x54cd33){logger[_0xd672('0xf')](_0xd672('0x23'),_0x15d280);logger[_0xd672('0x11')](_0xd672('0x23'),_0x15d280,JSON[_0xd672('0x13')](_0x54cd33));_0x162c35(_0x54cd33);})[_0xd672('0x18')](function(_0x129baa){logger[_0xd672('0x14')](_0xd672('0x23'),_0x129baa[_0xd672('0x16')],_0x15d280);_0x1ba48a(_0x267aa3['error'](0x1f4,_0x129baa['message']));});});};
\ No newline at end of file
+var _0xceed=['bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','redis','defaults','localhost','./chatQueue.socket','request','then','ChatQueue,\x20%s,\x20%s','request\x20sent','debug','stringify','error','message','info','result','catch','GetChatQueue','ChatQueue','findAll','options','where','attributes','limit','include','map','model','ShowChatQueue','find','raw','lodash','moment'];(function(_0x399993,_0x57a9aa){var _0x1d9f40=function(_0x5ed340){while(--_0x5ed340){_0x399993['push'](_0x399993['shift']());}};_0x1d9f40(++_0x57a9aa);}(_0xceed,0x76));var _0xdcee=function(_0x4b7b62,_0x4920a9){_0x4b7b62=_0x4b7b62-0x0;var _0x2280df=_0xceed[_0x4b7b62];return _0x2280df;};'use strict';var _=require(_0xdcee('0x0'));var util=require('util');var moment=require(_0xdcee('0x1'));var BPromise=require(_0xdcee('0x2'));var rs=require(_0xdcee('0x3'));var fs=require('fs');var Redis=require(_0xdcee('0x4'));var db=require(_0xdcee('0x5'))['db'];var utils=require(_0xdcee('0x6'));var logger=require(_0xdcee('0x7'))(_0xdcee('0x8'));var config=require(_0xdcee('0x9'));var jayson=require(_0xdcee('0xa'));var client=jayson['client'][_0xdcee('0xb')]({'port':0x232a});config[_0xdcee('0xc')]=_[_0xdcee('0xd')](config['redis'],{'host':_0xdcee('0xe'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xdcee('0xc')]));require(_0xdcee('0xf'))['register'](socket);function respondWithRpcPromise(_0x2f08d8,_0x36b071,_0x1a52bc){return new BPromise(function(_0x5e1d70,_0x51786c){return client[_0xdcee('0x10')](_0x2f08d8,_0x1a52bc)[_0xdcee('0x11')](function(_0xcad3d3){logger['info'](_0xdcee('0x12'),_0x36b071,_0xdcee('0x13'));logger[_0xdcee('0x14')]('ChatQueue,\x20%s,\x20%s,\x20%s',_0x36b071,'request\x20sent',JSON[_0xdcee('0x15')](_0xcad3d3));if(_0xcad3d3['error']){if(_0xcad3d3[_0xdcee('0x16')]['code']===0x1f4){logger[_0xdcee('0x16')](_0xdcee('0x12'),_0x36b071,_0xcad3d3[_0xdcee('0x16')]['message']);return _0x51786c(_0xcad3d3[_0xdcee('0x16')][_0xdcee('0x17')]);}logger[_0xdcee('0x16')](_0xdcee('0x12'),_0x36b071,_0xcad3d3[_0xdcee('0x16')][_0xdcee('0x17')]);return _0x5e1d70(_0xcad3d3[_0xdcee('0x16')]['message']);}else{logger[_0xdcee('0x18')](_0xdcee('0x12'),_0x36b071,_0xdcee('0x13'));_0x5e1d70(_0xcad3d3[_0xdcee('0x19')]['message']);}})[_0xdcee('0x1a')](function(_0x5bd104){logger[_0xdcee('0x16')](_0xdcee('0x12'),_0x36b071,_0x5bd104);_0x51786c(_0x5bd104);});});}exports[_0xdcee('0x1b')]=function(_0x593e00){var _0x1e6d83=this;return new Promise(function(_0x3a465b,_0x5d1fd7){return db[_0xdcee('0x1c')][_0xdcee('0x1d')]({'raw':_0x593e00[_0xdcee('0x1e')]?_0x593e00[_0xdcee('0x1e')]['raw']===undefined?!![]:![]:!![],'where':_0x593e00[_0xdcee('0x1e')]?_0x593e00[_0xdcee('0x1e')][_0xdcee('0x1f')]||null:null,'attributes':_0x593e00[_0xdcee('0x1e')]?_0x593e00[_0xdcee('0x1e')][_0xdcee('0x20')]||null:null,'limit':_0x593e00[_0xdcee('0x1e')]?_0x593e00[_0xdcee('0x1e')][_0xdcee('0x21')]||null:null,'include':_0x593e00['options']?_0x593e00[_0xdcee('0x1e')][_0xdcee('0x22')]?_['map'](_0x593e00[_0xdcee('0x1e')][_0xdcee('0x22')],function(_0x2b0ff7){return{'model':db[_0x2b0ff7['model']],'as':_0x2b0ff7['as'],'attributes':_0x2b0ff7[_0xdcee('0x20')],'include':_0x2b0ff7[_0xdcee('0x22')]?_[_0xdcee('0x23')](_0x2b0ff7['include'],function(_0x325495){return{'model':db[_0x325495[_0xdcee('0x24')]],'as':_0x325495['as'],'attributes':_0x325495[_0xdcee('0x20')],'include':_0x325495[_0xdcee('0x22')]?_[_0xdcee('0x23')](_0x325495[_0xdcee('0x22')],function(_0x5ee8b8){return{'model':db[_0x5ee8b8[_0xdcee('0x24')]],'as':_0x5ee8b8['as'],'attributes':_0x5ee8b8[_0xdcee('0x20')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x1a5dd6){logger[_0xdcee('0x18')]('GetChatQueue',_0x593e00);logger[_0xdcee('0x14')](_0xdcee('0x1b'),_0x593e00,JSON[_0xdcee('0x15')](_0x1a5dd6));_0x3a465b(_0x1a5dd6);})[_0xdcee('0x1a')](function(_0x5565ab){logger[_0xdcee('0x16')](_0xdcee('0x1b'),_0x5565ab[_0xdcee('0x17')],_0x593e00);_0x5d1fd7(_0x1e6d83[_0xdcee('0x16')](0x1f4,_0x5565ab[_0xdcee('0x17')]));});});};exports[_0xdcee('0x25')]=function(_0x3f38ca){var _0x5abb5d=this;return new Promise(function(_0x45307b,_0x11a487){return db['ChatQueue'][_0xdcee('0x26')]({'raw':_0x3f38ca['options']?_0x3f38ca[_0xdcee('0x1e')][_0xdcee('0x27')]===undefined?!![]:![]:!![],'where':_0x3f38ca[_0xdcee('0x1e')]?_0x3f38ca[_0xdcee('0x1e')][_0xdcee('0x1f')]||null:null,'attributes':_0x3f38ca[_0xdcee('0x1e')]?_0x3f38ca['options'][_0xdcee('0x20')]||null:null,'include':_0x3f38ca[_0xdcee('0x1e')]?_0x3f38ca[_0xdcee('0x1e')][_0xdcee('0x22')]?_[_0xdcee('0x23')](_0x3f38ca['options'][_0xdcee('0x22')],function(_0x46f5fe){return{'model':db[_0x46f5fe[_0xdcee('0x24')]],'as':_0x46f5fe['as'],'attributes':_0x46f5fe[_0xdcee('0x20')],'include':_0x46f5fe[_0xdcee('0x22')]?_[_0xdcee('0x23')](_0x46f5fe[_0xdcee('0x22')],function(_0x17900c){return{'model':db[_0x17900c['model']],'as':_0x17900c['as'],'attributes':_0x17900c[_0xdcee('0x20')],'include':_0x17900c[_0xdcee('0x22')]?_[_0xdcee('0x23')](_0x17900c[_0xdcee('0x22')],function(_0x1aafe4){return{'model':db[_0x1aafe4[_0xdcee('0x24')]],'as':_0x1aafe4['as'],'attributes':_0x1aafe4[_0xdcee('0x20')]};}):[]};}):[]};}):[]:[]})[_0xdcee('0x11')](function(_0x1316d9){logger['info']('ShowChatQueue',_0x3f38ca);logger[_0xdcee('0x14')](_0xdcee('0x25'),_0x3f38ca,JSON['stringify'](_0x1316d9));_0x45307b(_0x1316d9);})[_0xdcee('0x1a')](function(_0x50568f){logger['error'](_0xdcee('0x25'),_0x50568f['message'],_0x3f38ca);_0x11a487(_0x5abb5d[_0xdcee('0x16')](0x1f4,_0x50568f['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb332=['emit','register','./chatQueue.events','remove','update'];(function(_0x285800,_0x26765e){var _0x4b809e=function(_0x12c58b){while(--_0x12c58b){_0x285800['push'](_0x285800['shift']());}};_0x4b809e(++_0x26765e);}(_0xb332,0xd9));var _0x2b33=function(_0x4a7843,_0x24f6d1){_0x4a7843=_0x4a7843-0x0;var _0x2c57fe=_0xb332[_0x4a7843];return _0x2c57fe;};'use strict';var ChatQueueEvents=require(_0x2b33('0x0'));var events=['save',_0x2b33('0x1'),_0x2b33('0x2')];function createListener(_0x5ee720,_0xf8c6a7){return function(_0x548a70){_0xf8c6a7[_0x2b33('0x3')](_0x5ee720,_0x548a70);};}function removeListener(_0x4c6634,_0x34b111){return function(){ChatQueueEvents['removeListener'](_0x4c6634,_0x34b111);};}exports[_0x2b33('0x4')]=function(_0x22d66){for(var _0x478214=0x0,_0x461d44=events['length'];_0x478214<_0x461d44;_0x478214++){var _0x5ccf2d=events[_0x478214];var _0x4302b7=createListener('chatQueue:'+_0x5ccf2d,_0x22d66);ChatQueueEvents['on'](_0x5ccf2d,_0x4302b7);}};
\ No newline at end of file
+var _0x6aa7=['update','emit','length','chatQueue:','./chatQueue.events','remove'];(function(_0x2af47e,_0x1d2a86){var _0x5bca26=function(_0x4ba3db){while(--_0x4ba3db){_0x2af47e['push'](_0x2af47e['shift']());}};_0x5bca26(++_0x1d2a86);}(_0x6aa7,0x178));var _0x76aa=function(_0xe4ece7,_0x306cf4){_0xe4ece7=_0xe4ece7-0x0;var _0xcc27d2=_0x6aa7[_0xe4ece7];return _0xcc27d2;};'use strict';var ChatQueueEvents=require(_0x76aa('0x0'));var events=['save',_0x76aa('0x1'),_0x76aa('0x2')];function createListener(_0x25c818,_0x2db4fe){return function(_0x4f007e){_0x2db4fe[_0x76aa('0x3')](_0x25c818,_0x4f007e);};}function removeListener(_0xef15ef,_0x1d6e04){return function(){ChatQueueEvents['removeListener'](_0xef15ef,_0x1d6e04);};}exports['register']=function(_0x1aceaa){for(var _0x4d53f6=0x0,_0x32dee5=events[_0x76aa('0x4')];_0x4d53f6<_0x32dee5;_0x4d53f6++){var _0xa9b695=events[_0x4d53f6];var _0x56d6bc=createListener(_0x76aa('0x5')+_0xa9b695,_0x1aceaa);ChatQueueEvents['on'](_0xa9b695,_0x56d6bc);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x008c=['../../config/environment','./chatQueue.controller','get','isAuthenticated','index','show','/:id/teams','getTeams','/:id/users','getAgents','post','addTeams','addAgents','update','delete','/:id','removeTeams','multer','util','path','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service'];(function(_0x32b8a0,_0x213779){var _0x223a7d=function(_0x51f25e){while(--_0x51f25e){_0x32b8a0['push'](_0x32b8a0['shift']());}};_0x223a7d(++_0x213779);}(_0x008c,0x188));var _0xc008=function(_0x88da9,_0x52cd6a){_0x88da9=_0x88da9-0x0;var _0x42df80=_0x008c[_0x88da9];return _0x42df80;};'use strict';var multer=require(_0xc008('0x0'));var util=require(_0xc008('0x1'));var path=require(_0xc008('0x2'));var timeout=require(_0xc008('0x3'));var express=require(_0xc008('0x4'));var router=express['Router']();var fs_extra=require(_0xc008('0x5'));var auth=require(_0xc008('0x6'));var interaction=require(_0xc008('0x7'));var config=require(_0xc008('0x8'));var controller=require(_0xc008('0x9'));router[_0xc008('0xa')]('/',auth[_0xc008('0xb')](),controller[_0xc008('0xc')]);router[_0xc008('0xa')]('/describe',auth[_0xc008('0xb')](),controller['describe']);router[_0xc008('0xa')]('/:id',auth['isAuthenticated'](),controller[_0xc008('0xd')]);router[_0xc008('0xa')]('/:id/members',auth['isAuthenticated'](),controller['getMembers']);router[_0xc008('0xa')](_0xc008('0xe'),auth['isAuthenticated'](),controller[_0xc008('0xf')]);router[_0xc008('0xa')](_0xc008('0x10'),auth[_0xc008('0xb')](),controller[_0xc008('0x11')]);router[_0xc008('0x12')]('/',auth[_0xc008('0xb')](),controller['create']);router['post'](_0xc008('0xe'),auth['isAuthenticated'](),controller[_0xc008('0x13')]);router[_0xc008('0x12')](_0xc008('0x10'),auth[_0xc008('0xb')](),controller[_0xc008('0x14')]);router['put']('/:id',auth['isAuthenticated'](),controller[_0xc008('0x15')]);router[_0xc008('0x16')](_0xc008('0x17'),auth[_0xc008('0xb')](),controller['destroy']);router['delete']('/:id/teams',auth['isAuthenticated'](),controller[_0xc008('0x18')]);router[_0xc008('0x16')]('/:id/users',auth[_0xc008('0xb')](),controller['removeAgents']);module['exports']=router;
\ No newline at end of file
+var _0x55ca=['post','addAgents','update','delete','destroy','removeTeams','removeAgents','exports','multer','util','Router','fs-extra','../../components/interaction/service','../../config/environment','./chatQueue.controller','get','isAuthenticated','index','describe','/:id','/:id/members','getMembers','/:id/teams','getTeams','/:id/users','addTeams'];(function(_0x3011ff,_0x36a939){var _0xd22e7e=function(_0x20f165){while(--_0x20f165){_0x3011ff['push'](_0x3011ff['shift']());}};_0xd22e7e(++_0x36a939);}(_0x55ca,0x126));var _0xa55c=function(_0x59befa,_0x4af99b){_0x59befa=_0x59befa-0x0;var _0x1dd63d=_0x55ca[_0x59befa];return _0x1dd63d;};'use strict';var multer=require(_0xa55c('0x0'));var util=require(_0xa55c('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require('express');var router=express[_0xa55c('0x2')]();var fs_extra=require(_0xa55c('0x3'));var auth=require('../../components/auth/service');var interaction=require(_0xa55c('0x4'));var config=require(_0xa55c('0x5'));var controller=require(_0xa55c('0x6'));router[_0xa55c('0x7')]('/',auth[_0xa55c('0x8')](),controller[_0xa55c('0x9')]);router[_0xa55c('0x7')]('/describe',auth[_0xa55c('0x8')](),controller[_0xa55c('0xa')]);router['get'](_0xa55c('0xb'),auth[_0xa55c('0x8')](),controller['show']);router['get'](_0xa55c('0xc'),auth[_0xa55c('0x8')](),controller[_0xa55c('0xd')]);router[_0xa55c('0x7')](_0xa55c('0xe'),auth[_0xa55c('0x8')](),controller[_0xa55c('0xf')]);router[_0xa55c('0x7')](_0xa55c('0x10'),auth[_0xa55c('0x8')](),controller['getAgents']);router['post']('/',auth[_0xa55c('0x8')](),controller['create']);router['post']('/:id/teams',auth[_0xa55c('0x8')](),controller[_0xa55c('0x11')]);router[_0xa55c('0x12')](_0xa55c('0x10'),auth[_0xa55c('0x8')](),controller[_0xa55c('0x13')]);router['put'](_0xa55c('0xb'),auth[_0xa55c('0x8')](),controller[_0xa55c('0x14')]);router[_0xa55c('0x15')](_0xa55c('0xb'),auth[_0xa55c('0x8')](),controller[_0xa55c('0x16')]);router[_0xa55c('0x15')](_0xa55c('0xe'),auth['isAuthenticated'](),controller[_0xa55c('0x17')]);router[_0xa55c('0x15')](_0xa55c('0x10'),auth[_0xa55c('0x8')](),controller[_0xa55c('0x18')]);module[_0xa55c('0x19')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9670=['exports','STRING','DATE','moment','sequelize'];(function(_0x284e49,_0x200326){var _0x4737b2=function(_0x269c43){while(--_0x269c43){_0x284e49['push'](_0x284e49['shift']());}};_0x4737b2(++_0x200326);}(_0x9670,0x71));var _0x0967=function(_0x229c23,_0x380edc){_0x229c23=_0x229c23-0x0;var _0x348784=_0x9670[_0x229c23];return _0x348784;};'use strict';var moment=require(_0x0967('0x0'));var Sequelize=require(_0x0967('0x1'));module[_0x0967('0x2')]={'uniqueid':{'type':Sequelize['STRING'],'allowNull':![]},'from':{'type':Sequelize[_0x0967('0x3')]},'joinAt':{'type':Sequelize[_0x0967('0x4')]},'leaveAt':{'type':Sequelize[_0x0967('0x4')]},'acceptAt':{'type':Sequelize[_0x0967('0x4')]},'exitAt':{'type':Sequelize[_0x0967('0x4')]},'reason':{'type':Sequelize[_0x0967('0x3')]}};
\ No newline at end of file
+var _0x8649=['exports','STRING','DATE'];(function(_0x103ff9,_0x576a4d){var _0x40693e=function(_0xd67bce){while(--_0xd67bce){_0x103ff9['push'](_0x103ff9['shift']());}};_0x40693e(++_0x576a4d);}(_0x8649,0x159));var _0x9864=function(_0x4d27d6,_0x147731){_0x4d27d6=_0x4d27d6-0x0;var _0x5b3484=_0x8649[_0x4d27d6];return _0x5b3484;};'use strict';var moment=require('moment');var Sequelize=require('sequelize');module[_0x9864('0x0')]={'uniqueid':{'type':Sequelize[_0x9864('0x1')],'allowNull':![]},'from':{'type':Sequelize['STRING']},'joinAt':{'type':Sequelize[_0x9864('0x2')]},'leaveAt':{'type':Sequelize[_0x9864('0x2')]},'acceptAt':{'type':Sequelize[_0x9864('0x2')]},'exitAt':{'type':Sequelize[_0x9864('0x2')]},'reason':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x57ca=['to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','papaparse','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','status','json','offset','undefined','count','limit','set','apply','save','update','then','destroy','end','sendStatus','error','stack','name','index','map','ChatQueueReport','type','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','filter','merge','options','includeAll','include','findAll','params','find','catch','create','body','describe','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','sox'];(function(_0x161a13,_0x100a56){var _0x425b96=function(_0x46d922){while(--_0x46d922){_0x161a13['push'](_0x161a13['shift']());}};_0x425b96(++_0x100a56);}(_0x57ca,0x108));var _0xa57c=function(_0x53d9af,_0x8789d6){_0x53d9af=_0x53d9af-0x0;var _0x30e406=_0x57ca[_0x53d9af];return _0x30e406;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xa57c('0x0'));var zipdir=require(_0xa57c('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xa57c('0x2'));var moment=require(_0xa57c('0x3'));var BPromise=require(_0xa57c('0x4'));var Mustache=require(_0xa57c('0x5'));var util=require(_0xa57c('0x6'));var path=require('path');var sox=require(_0xa57c('0x7'));var csv=require(_0xa57c('0x8'));var ejs=require(_0xa57c('0x9'));var fs=require('fs');var fs_extra=require(_0xa57c('0xa'));var _=require(_0xa57c('0xb'));var squel=require(_0xa57c('0xc'));var crypto=require(_0xa57c('0xd'));var jsforce=require(_0xa57c('0xe'));var deskjs=require('desk.js');var toCsv=require(_0xa57c('0x8'));var querystring=require('querystring');var Papa=require(_0xa57c('0xf'));var Redis=require(_0xa57c('0x10'));var authService=require('../../components/auth/service');var qs=require(_0xa57c('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xa57c('0x12'));var logger=require(_0xa57c('0x13'))('api');var utils=require(_0xa57c('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0xa57c('0x15'));var db=require(_0xa57c('0x16'))['db'];function respondWithStatusCode(_0x1f2bb5,_0x9e25bf){_0x9e25bf=_0x9e25bf||0xcc;return function(_0x205e72){if(_0x205e72){return _0x1f2bb5['sendStatus'](_0x9e25bf);}return _0x1f2bb5[_0xa57c('0x17')](_0x9e25bf)['end']();};}function respondWithResult(_0x30d23d,_0x3d5995){_0x3d5995=_0x3d5995||0xc8;return function(_0x30940d){if(_0x30940d){return _0x30d23d[_0xa57c('0x17')](_0x3d5995)[_0xa57c('0x18')](_0x30940d);}};}function respondWithFilteredResult(_0x37a323,_0x3f900a){return function(_0x4b4bdb){if(_0x4b4bdb){var _0x26607a=typeof _0x3f900a[_0xa57c('0x19')]===_0xa57c('0x1a')&&typeof _0x3f900a['limit']===_0xa57c('0x1a');var _0x5f33f1=_0x4b4bdb[_0xa57c('0x1b')];var _0x3d781d=_0x26607a?0x0:_0x3f900a[_0xa57c('0x19')];var _0xe3d505=_0x26607a?_0x4b4bdb[_0xa57c('0x1b')]:_0x3f900a[_0xa57c('0x19')]+_0x3f900a[_0xa57c('0x1c')];var _0x595c7a;if(_0xe3d505>=_0x5f33f1){_0xe3d505=_0x5f33f1;_0x595c7a=0xc8;}else{_0x595c7a=0xce;}_0x37a323['status'](_0x595c7a);return _0x37a323[_0xa57c('0x1d')]('Content-Range',_0x3d781d+'-'+_0xe3d505+'/'+_0x5f33f1)['json'](_0x4b4bdb);}return null;};}function patchUpdates(_0x418415){return function(_0xa5b314){try{jsonpatch[_0xa57c('0x1e')](_0xa5b314,_0x418415,!![]);}catch(_0x23bec0){return BPromise['reject'](_0x23bec0);}return _0xa5b314[_0xa57c('0x1f')]();};}function saveUpdates(_0x25715f,_0x34d1bc){return function(_0x2213b2){if(_0x2213b2){return _0x2213b2[_0xa57c('0x20')](_0x25715f)[_0xa57c('0x21')](function(_0x1e0192){return _0x1e0192;});}return null;};}function removeEntity(_0x42038e,_0x2e99ed){return function(_0xdf65dd){if(_0xdf65dd){return _0xdf65dd[_0xa57c('0x22')]()[_0xa57c('0x21')](function(){_0x42038e[_0xa57c('0x17')](0xcc)[_0xa57c('0x23')]();});}};}function handleEntityNotFound(_0x431bec,_0x511a26){return function(_0x2db443){if(!_0x2db443){_0x431bec[_0xa57c('0x24')](0x194);}return _0x2db443;};}function handleError(_0x27884d,_0x5228b9){_0x5228b9=_0x5228b9||0x1f4;return function(_0x315ad7){logger[_0xa57c('0x25')](_0x315ad7[_0xa57c('0x26')]);if(_0x315ad7[_0xa57c('0x27')]){delete _0x315ad7[_0xa57c('0x27')];}_0x27884d[_0xa57c('0x17')](_0x5228b9)['send'](_0x315ad7);};}exports[_0xa57c('0x28')]=function(_0x4c1478,_0x54a18b){var _0x257661={},_0x7d10ec={},_0x5a3e03={'count':0x0,'rows':[]};var _0x12898b=_[_0xa57c('0x29')](db[_0xa57c('0x2a')]['rawAttributes'],function(_0xd779f1){return{'name':_0xd779f1['fieldName'],'type':_0xd779f1[_0xa57c('0x2b')]['key']};});_0x7d10ec[_0xa57c('0x2c')]=_['map'](_0x12898b,_0xa57c('0x27'));_0x7d10ec['query']=_[_0xa57c('0x2d')](_0x4c1478[_0xa57c('0x2e')]);_0x7d10ec[_0xa57c('0x2f')]=_[_0xa57c('0x30')](_0x7d10ec[_0xa57c('0x2c')],_0x7d10ec[_0xa57c('0x2e')]);_0x257661[_0xa57c('0x31')]=_['intersection'](_0x7d10ec[_0xa57c('0x2c')],qs['fields'](_0x4c1478[_0xa57c('0x2e')][_0xa57c('0x32')]));_0x257661[_0xa57c('0x31')]=_0x257661['attributes'][_0xa57c('0x33')]?_0x257661['attributes']:_0x7d10ec[_0xa57c('0x2c')];if(!_0x4c1478['query'][_0xa57c('0x34')]('nolimit')){_0x257661[_0xa57c('0x1c')]=qs[_0xa57c('0x1c')](_0x4c1478['query'][_0xa57c('0x1c')]);_0x257661['offset']=qs[_0xa57c('0x19')](_0x4c1478['query'][_0xa57c('0x19')]);}_0x257661[_0xa57c('0x35')]=qs[_0xa57c('0x36')](_0x4c1478[_0xa57c('0x2e')][_0xa57c('0x36')]);_0x257661[_0xa57c('0x37')]=qs['filters'](_['pick'](_0x4c1478[_0xa57c('0x2e')],_0x7d10ec[_0xa57c('0x2f')]),_0x12898b);if(_0x4c1478[_0xa57c('0x2e')]['filter']){_0x257661[_0xa57c('0x37')]=_['merge'](_0x257661[_0xa57c('0x37')],{'$or':_[_0xa57c('0x29')](_0x12898b,function(_0x5c8256){if(_0x5c8256['type']!=='VIRTUAL'){var _0x3be888={};_0x3be888[_0x5c8256[_0xa57c('0x27')]]={'$like':'%'+_0x4c1478[_0xa57c('0x2e')][_0xa57c('0x38')]+'%'};return _0x3be888;}})});}_0x257661=_[_0xa57c('0x39')]({},_0x257661,_0x4c1478[_0xa57c('0x3a')]);var _0x5a444a={'where':_0x257661[_0xa57c('0x37')]};return db[_0xa57c('0x2a')]['count'](_0x5a444a)['then'](function(_0x5e10b){_0x5a3e03[_0xa57c('0x1b')]=_0x5e10b;if(_0x4c1478['query'][_0xa57c('0x3b')]){_0x257661[_0xa57c('0x3c')]=[{'all':!![]}];}return db[_0xa57c('0x2a')][_0xa57c('0x3d')](_0x257661);})[_0xa57c('0x21')](function(_0x43c1d7){_0x5a3e03['rows']=_0x43c1d7;return _0x5a3e03;})[_0xa57c('0x21')](respondWithFilteredResult(_0x54a18b,_0x257661))['catch'](handleError(_0x54a18b,null));};exports['show']=function(_0x5b3300,_0x520383){var _0x588199={'raw':!![],'where':{'id':_0x5b3300[_0xa57c('0x3e')]['id']}},_0x39b20f={};_0x39b20f[_0xa57c('0x2c')]=_['keys'](db['ChatQueueReport']['rawAttributes']);_0x39b20f[_0xa57c('0x2e')]=_[_0xa57c('0x2d')](_0x5b3300[_0xa57c('0x2e')]);_0x39b20f[_0xa57c('0x2f')]=_[_0xa57c('0x30')](_0x39b20f[_0xa57c('0x2c')],_0x39b20f['query']);_0x588199[_0xa57c('0x31')]=_[_0xa57c('0x30')](_0x39b20f[_0xa57c('0x2c')],qs[_0xa57c('0x32')](_0x5b3300[_0xa57c('0x2e')][_0xa57c('0x32')]));_0x588199['attributes']=_0x588199[_0xa57c('0x31')][_0xa57c('0x33')]?_0x588199[_0xa57c('0x31')]:_0x39b20f[_0xa57c('0x2c')];if(_0x5b3300[_0xa57c('0x2e')]['includeAll']){_0x588199[_0xa57c('0x3c')]=[{'all':!![]}];}_0x588199=_[_0xa57c('0x39')]({},_0x588199,_0x5b3300[_0xa57c('0x3a')]);return db[_0xa57c('0x2a')][_0xa57c('0x3f')](_0x588199)[_0xa57c('0x21')](handleEntityNotFound(_0x520383,null))['then'](respondWithResult(_0x520383,null))[_0xa57c('0x40')](handleError(_0x520383,null));};exports[_0xa57c('0x41')]=function(_0x247906,_0x44ea0a){return db[_0xa57c('0x2a')][_0xa57c('0x41')](_0x247906['body'],{})['then'](respondWithResult(_0x44ea0a,0xc9))['catch'](handleError(_0x44ea0a,null));};exports['update']=function(_0x232675,_0x49492f){if(_0x232675[_0xa57c('0x42')]['id']){delete _0x232675[_0xa57c('0x42')]['id'];}return db['ChatQueueReport'][_0xa57c('0x3f')]({'where':{'id':_0x232675[_0xa57c('0x3e')]['id']}})[_0xa57c('0x21')](handleEntityNotFound(_0x49492f,null))[_0xa57c('0x21')](saveUpdates(_0x232675[_0xa57c('0x42')],null))['then'](respondWithResult(_0x49492f,null))[_0xa57c('0x40')](handleError(_0x49492f,null));};exports[_0xa57c('0x22')]=function(_0x4584e8,_0xd57bac){return db[_0xa57c('0x2a')]['find']({'where':{'id':_0x4584e8[_0xa57c('0x3e')]['id']}})['then'](handleEntityNotFound(_0xd57bac,null))['then'](removeEntity(_0xd57bac,null))[_0xa57c('0x40')](handleError(_0xd57bac,null));};exports[_0xa57c('0x43')]=function(_0x5ded49,_0x5bf336){return db['ChatQueueReport'][_0xa57c('0x43')]()[_0xa57c('0x21')](respondWithResult(_0x5bf336,null))[_0xa57c('0x40')](handleError(_0x5bf336,null));};
\ No newline at end of file
+var _0x3dba=['reject','save','update','then','destroy','end','error','name','send','index','map','ChatQueueReport','rawAttributes','fieldName','type','model','keys','query','attributes','intersection','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','catch','show','params','filters','find','create','body','describe','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','jsforce','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply'];(function(_0x5c84a6,_0x321f95){var _0xb8c5f0=function(_0x106d58){while(--_0x106d58){_0x5c84a6['push'](_0x5c84a6['shift']());}};_0xb8c5f0(++_0x321f95);}(_0x3dba,0x73));var _0xa3db=function(_0x1cdabe,_0x286194){_0x1cdabe=_0x1cdabe-0x0;var _0x3dcc9c=_0x3dba[_0x1cdabe];return _0x3dcc9c;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xa3db('0x0'));var rp=require(_0xa3db('0x1'));var moment=require('moment');var BPromise=require(_0xa3db('0x2'));var Mustache=require(_0xa3db('0x3'));var util=require(_0xa3db('0x4'));var path=require(_0xa3db('0x5'));var sox=require(_0xa3db('0x6'));var csv=require(_0xa3db('0x7'));var ejs=require(_0xa3db('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0xa3db('0x9'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xa3db('0xa'));var Redis=require(_0xa3db('0xb'));var authService=require(_0xa3db('0xc'));var qs=require(_0xa3db('0xd'));var as=require(_0xa3db('0xe'));var hardwareService=require(_0xa3db('0xf'));var logger=require(_0xa3db('0x10'))(_0xa3db('0x11'));var utils=require(_0xa3db('0x12'));var config=require('../../config/environment');var licenseUtil=require(_0xa3db('0x13'));var db=require(_0xa3db('0x14'))['db'];function respondWithStatusCode(_0x56c636,_0x20f91f){_0x20f91f=_0x20f91f||0xcc;return function(_0x42f8e0){if(_0x42f8e0){return _0x56c636[_0xa3db('0x15')](_0x20f91f);}return _0x56c636['status'](_0x20f91f)['end']();};}function respondWithResult(_0x221695,_0x302c34){_0x302c34=_0x302c34||0xc8;return function(_0x4f323b){if(_0x4f323b){return _0x221695[_0xa3db('0x16')](_0x302c34)[_0xa3db('0x17')](_0x4f323b);}};}function respondWithFilteredResult(_0xb75bcc,_0x1d07c5){return function(_0xaa5756){if(_0xaa5756){var _0xd53611=typeof _0x1d07c5[_0xa3db('0x18')]===_0xa3db('0x19')&&typeof _0x1d07c5[_0xa3db('0x1a')]==='undefined';var _0x558581=_0xaa5756[_0xa3db('0x1b')];var _0x278c2a=_0xd53611?0x0:_0x1d07c5[_0xa3db('0x18')];var _0x3f5e3e=_0xd53611?_0xaa5756['count']:_0x1d07c5[_0xa3db('0x18')]+_0x1d07c5[_0xa3db('0x1a')];var _0x356f63;if(_0x3f5e3e>=_0x558581){_0x3f5e3e=_0x558581;_0x356f63=0xc8;}else{_0x356f63=0xce;}_0xb75bcc[_0xa3db('0x16')](_0x356f63);return _0xb75bcc[_0xa3db('0x1c')](_0xa3db('0x1d'),_0x278c2a+'-'+_0x3f5e3e+'/'+_0x558581)[_0xa3db('0x17')](_0xaa5756);}return null;};}function patchUpdates(_0x2c817c){return function(_0x1eee9e){try{jsonpatch[_0xa3db('0x1e')](_0x1eee9e,_0x2c817c,!![]);}catch(_0x2581e2){return BPromise[_0xa3db('0x1f')](_0x2581e2);}return _0x1eee9e[_0xa3db('0x20')]();};}function saveUpdates(_0x5de05c,_0x195f57){return function(_0x16bc03){if(_0x16bc03){return _0x16bc03[_0xa3db('0x21')](_0x5de05c)[_0xa3db('0x22')](function(_0x989eed){return _0x989eed;});}return null;};}function removeEntity(_0x55a7cf,_0x3eab0c){return function(_0x49bc1b){if(_0x49bc1b){return _0x49bc1b[_0xa3db('0x23')]()[_0xa3db('0x22')](function(){_0x55a7cf['status'](0xcc)[_0xa3db('0x24')]();});}};}function handleEntityNotFound(_0xe0be83,_0x415d61){return function(_0x5e71f2){if(!_0x5e71f2){_0xe0be83[_0xa3db('0x15')](0x194);}return _0x5e71f2;};}function handleError(_0x374d03,_0x34f314){_0x34f314=_0x34f314||0x1f4;return function(_0x1f0d0e){logger[_0xa3db('0x25')](_0x1f0d0e['stack']);if(_0x1f0d0e[_0xa3db('0x26')]){delete _0x1f0d0e[_0xa3db('0x26')];}_0x374d03[_0xa3db('0x16')](_0x34f314)[_0xa3db('0x27')](_0x1f0d0e);};}exports[_0xa3db('0x28')]=function(_0x2f8602,_0x2f08da){var _0x3416bc={},_0x19a858={},_0x2ecde3={'count':0x0,'rows':[]};var _0x52578a=_[_0xa3db('0x29')](db[_0xa3db('0x2a')][_0xa3db('0x2b')],function(_0x551010){return{'name':_0x551010[_0xa3db('0x2c')],'type':_0x551010[_0xa3db('0x2d')]['key']};});_0x19a858[_0xa3db('0x2e')]=_[_0xa3db('0x29')](_0x52578a,_0xa3db('0x26'));_0x19a858['query']=_[_0xa3db('0x2f')](_0x2f8602[_0xa3db('0x30')]);_0x19a858['filters']=_['intersection'](_0x19a858[_0xa3db('0x2e')],_0x19a858[_0xa3db('0x30')]);_0x3416bc[_0xa3db('0x31')]=_[_0xa3db('0x32')](_0x19a858[_0xa3db('0x2e')],qs[_0xa3db('0x33')](_0x2f8602[_0xa3db('0x30')][_0xa3db('0x33')]));_0x3416bc['attributes']=_0x3416bc[_0xa3db('0x31')]['length']?_0x3416bc[_0xa3db('0x31')]:_0x19a858[_0xa3db('0x2e')];if(!_0x2f8602[_0xa3db('0x30')][_0xa3db('0x34')](_0xa3db('0x35'))){_0x3416bc[_0xa3db('0x1a')]=qs[_0xa3db('0x1a')](_0x2f8602[_0xa3db('0x30')]['limit']);_0x3416bc[_0xa3db('0x18')]=qs[_0xa3db('0x18')](_0x2f8602[_0xa3db('0x30')]['offset']);}_0x3416bc[_0xa3db('0x36')]=qs[_0xa3db('0x37')](_0x2f8602[_0xa3db('0x30')][_0xa3db('0x37')]);_0x3416bc[_0xa3db('0x38')]=qs['filters'](_[_0xa3db('0x39')](_0x2f8602['query'],_0x19a858['filters']),_0x52578a);if(_0x2f8602[_0xa3db('0x30')][_0xa3db('0x3a')]){_0x3416bc[_0xa3db('0x38')]=_[_0xa3db('0x3b')](_0x3416bc[_0xa3db('0x38')],{'$or':_[_0xa3db('0x29')](_0x52578a,function(_0xa3b488){if(_0xa3b488[_0xa3db('0x2d')]!==_0xa3db('0x3c')){var _0x23c94b={};_0x23c94b[_0xa3b488[_0xa3db('0x26')]]={'$like':'%'+_0x2f8602[_0xa3db('0x30')]['filter']+'%'};return _0x23c94b;}})});}_0x3416bc=_[_0xa3db('0x3b')]({},_0x3416bc,_0x2f8602[_0xa3db('0x3d')]);var _0xe24bd1={'where':_0x3416bc[_0xa3db('0x38')]};return db[_0xa3db('0x2a')]['count'](_0xe24bd1)['then'](function(_0x414745){_0x2ecde3[_0xa3db('0x1b')]=_0x414745;if(_0x2f8602[_0xa3db('0x30')][_0xa3db('0x3e')]){_0x3416bc[_0xa3db('0x3f')]=[{'all':!![]}];}return db[_0xa3db('0x2a')][_0xa3db('0x40')](_0x3416bc);})[_0xa3db('0x22')](function(_0x57350f){_0x2ecde3['rows']=_0x57350f;return _0x2ecde3;})[_0xa3db('0x22')](respondWithFilteredResult(_0x2f08da,_0x3416bc))[_0xa3db('0x41')](handleError(_0x2f08da,null));};exports[_0xa3db('0x42')]=function(_0x4ef9d1,_0x4cf5e8){var _0x3d612d={'raw':!![],'where':{'id':_0x4ef9d1[_0xa3db('0x43')]['id']}},_0x47e625={};_0x47e625['model']=_[_0xa3db('0x2f')](db[_0xa3db('0x2a')][_0xa3db('0x2b')]);_0x47e625[_0xa3db('0x30')]=_[_0xa3db('0x2f')](_0x4ef9d1[_0xa3db('0x30')]);_0x47e625[_0xa3db('0x44')]=_['intersection'](_0x47e625[_0xa3db('0x2e')],_0x47e625[_0xa3db('0x30')]);_0x3d612d[_0xa3db('0x31')]=_[_0xa3db('0x32')](_0x47e625['model'],qs[_0xa3db('0x33')](_0x4ef9d1['query'][_0xa3db('0x33')]));_0x3d612d[_0xa3db('0x31')]=_0x3d612d['attributes']['length']?_0x3d612d[_0xa3db('0x31')]:_0x47e625['model'];if(_0x4ef9d1[_0xa3db('0x30')][_0xa3db('0x3e')]){_0x3d612d[_0xa3db('0x3f')]=[{'all':!![]}];}_0x3d612d=_[_0xa3db('0x3b')]({},_0x3d612d,_0x4ef9d1['options']);return db[_0xa3db('0x2a')][_0xa3db('0x45')](_0x3d612d)[_0xa3db('0x22')](handleEntityNotFound(_0x4cf5e8,null))[_0xa3db('0x22')](respondWithResult(_0x4cf5e8,null))[_0xa3db('0x41')](handleError(_0x4cf5e8,null));};exports[_0xa3db('0x46')]=function(_0x572bbf,_0x3cb6c0){return db[_0xa3db('0x2a')]['create'](_0x572bbf[_0xa3db('0x47')],{})['then'](respondWithResult(_0x3cb6c0,0xc9))[_0xa3db('0x41')](handleError(_0x3cb6c0,null));};exports[_0xa3db('0x21')]=function(_0x2207e9,_0x4b55a9){if(_0x2207e9[_0xa3db('0x47')]['id']){delete _0x2207e9[_0xa3db('0x47')]['id'];}return db[_0xa3db('0x2a')][_0xa3db('0x45')]({'where':{'id':_0x2207e9['params']['id']}})[_0xa3db('0x22')](handleEntityNotFound(_0x4b55a9,null))[_0xa3db('0x22')](saveUpdates(_0x2207e9[_0xa3db('0x47')],null))[_0xa3db('0x22')](respondWithResult(_0x4b55a9,null))[_0xa3db('0x41')](handleError(_0x4b55a9,null));};exports[_0xa3db('0x23')]=function(_0x40a45b,_0x3f2463){return db['ChatQueueReport']['find']({'where':{'id':_0x40a45b[_0xa3db('0x43')]['id']}})[_0xa3db('0x22')](handleEntityNotFound(_0x3f2463,null))[_0xa3db('0x22')](removeEntity(_0x3f2463,null))[_0xa3db('0x41')](handleError(_0x3f2463,null));};exports['describe']=function(_0x8d54e9,_0x40c6cd){return db[_0xa3db('0x2a')][_0xa3db('0x48')]()[_0xa3db('0x22')](respondWithResult(_0x40c6cd,null))['catch'](handleError(_0x40c6cd,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd8b0=['define','report_chat_queue','uniqueid','lodash','util','bluebird','request-promise','path','rimraf','../../config/environment'];(function(_0x3d1f22,_0x3c6726){var _0x3f38b3=function(_0x1176d4){while(--_0x1176d4){_0x3d1f22['push'](_0x3d1f22['shift']());}};_0x3f38b3(++_0x3c6726);}(_0xd8b0,0xad));var _0x0d8b=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xd8b0[_0x20a584];return _0x4b41a8;};'use strict';var _=require(_0x0d8b('0x0'));var util=require(_0x0d8b('0x1'));var logger=require('../../config/logger')('api');var moment=require('moment');var BPromise=require(_0x0d8b('0x2'));var rp=require(_0x0d8b('0x3'));var fs=require('fs');var path=require(_0x0d8b('0x4'));var rimraf=require(_0x0d8b('0x5'));var config=require(_0x0d8b('0x6'));var attributes=require('./chatQueueReport.attributes');module['exports']=function(_0x3f8b6f,_0x227c63){return _0x3f8b6f[_0x0d8b('0x7')]('ChatQueueReport',attributes,{'tableName':_0x0d8b('0x8'),'paranoid':![],'indexes':[{'name':_0x0d8b('0x9'),'fields':['uniqueid']}],'timestamps':!![]});};
\ No newline at end of file
+var _0xb7e7=['../../config/logger','moment','request-promise','rimraf','../../config/environment','./chatQueueReport.attributes','define','ChatQueueReport','uniqueid','lodash'];(function(_0x319e13,_0x5bd104){var _0x15b050=function(_0x4f9352){while(--_0x4f9352){_0x319e13['push'](_0x319e13['shift']());}};_0x15b050(++_0x5bd104);}(_0xb7e7,0x121));var _0x7b7e=function(_0x9fd887,_0x47f76c){_0x9fd887=_0x9fd887-0x0;var _0x1a54ab=_0xb7e7[_0x9fd887];return _0x1a54ab;};'use strict';var _=require(_0x7b7e('0x0'));var util=require('util');var logger=require(_0x7b7e('0x1'))('api');var moment=require(_0x7b7e('0x2'));var BPromise=require('bluebird');var rp=require(_0x7b7e('0x3'));var fs=require('fs');var path=require('path');var rimraf=require(_0x7b7e('0x4'));var config=require(_0x7b7e('0x5'));var attributes=require(_0x7b7e('0x6'));module['exports']=function(_0x53ed64,_0x333fa4){return _0x53ed64[_0x7b7e('0x7')](_0x7b7e('0x8'),attributes,{'tableName':'report_chat_queue','paranoid':![],'indexes':[{'name':_0x7b7e('0x9'),'fields':[_0x7b7e('0x9')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8054=['rpc','http','request','then','info','request\x20sent','debug','ChatQueueReport,\x20%s,\x20%s,\x20%s','stringify','error','code','ChatQueueReport,\x20%s,\x20%s','message','result','CreateChatQueueReport','ChatQueueReport','create','options','raw','catch','UpdateChatQueueReport','body','where','attributes','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger'];(function(_0x988f0b,_0x1bcef8){var _0x678898=function(_0x49341b){while(--_0x49341b){_0x988f0b['push'](_0x988f0b['shift']());}};_0x678898(++_0x1bcef8);}(_0x8054,0x141));var _0x4805=function(_0x1c4493,_0x42c1be){_0x1c4493=_0x1c4493-0x0;var _0x2e375a=_0x8054[_0x1c4493];return _0x2e375a;};'use strict';var _=require(_0x4805('0x0'));var util=require(_0x4805('0x1'));var moment=require(_0x4805('0x2'));var BPromise=require(_0x4805('0x3'));var rs=require(_0x4805('0x4'));var fs=require('fs');var Redis=require(_0x4805('0x5'));var db=require(_0x4805('0x6'))['db'];var utils=require(_0x4805('0x7'));var logger=require(_0x4805('0x8'))(_0x4805('0x9'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson['client'][_0x4805('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x244e07,_0x5b4002,_0x4b4bba){return new BPromise(function(_0x25187b,_0x35f092){return client[_0x4805('0xb')](_0x244e07,_0x4b4bba)[_0x4805('0xc')](function(_0x4175f0){logger[_0x4805('0xd')]('ChatQueueReport,\x20%s,\x20%s',_0x5b4002,_0x4805('0xe'));logger[_0x4805('0xf')](_0x4805('0x10'),_0x5b4002,_0x4805('0xe'),JSON[_0x4805('0x11')](_0x4175f0));if(_0x4175f0['error']){if(_0x4175f0[_0x4805('0x12')][_0x4805('0x13')]===0x1f4){logger[_0x4805('0x12')](_0x4805('0x14'),_0x5b4002,_0x4175f0[_0x4805('0x12')][_0x4805('0x15')]);return _0x35f092(_0x4175f0[_0x4805('0x12')]['message']);}logger[_0x4805('0x12')](_0x4805('0x14'),_0x5b4002,_0x4175f0['error'][_0x4805('0x15')]);return _0x25187b(_0x4175f0['error']['message']);}else{logger[_0x4805('0xd')]('ChatQueueReport,\x20%s,\x20%s',_0x5b4002,'request\x20sent');_0x25187b(_0x4175f0[_0x4805('0x16')][_0x4805('0x15')]);}})['catch'](function(_0x284f4b){logger[_0x4805('0x12')](_0x4805('0x14'),_0x5b4002,_0x284f4b);_0x35f092(_0x284f4b);});});}exports[_0x4805('0x17')]=function(_0x1a95a6){var _0x41d5f8=this;return new Promise(function(_0x4cde3f,_0x17184c){return db[_0x4805('0x18')][_0x4805('0x19')](_0x1a95a6['body'],{'raw':_0x1a95a6[_0x4805('0x1a')]?_0x1a95a6[_0x4805('0x1a')][_0x4805('0x1b')]===undefined?!![]:![]:!![]})[_0x4805('0xc')](function(_0x33709b){logger[_0x4805('0xd')](_0x4805('0x17'),_0x1a95a6);logger['debug']('CreateChatQueueReport',_0x1a95a6,JSON[_0x4805('0x11')](_0x33709b));_0x4cde3f(_0x33709b);})[_0x4805('0x1c')](function(_0x525af2){logger[_0x4805('0x12')]('CreateChatQueueReport',_0x525af2['message'],_0x1a95a6);_0x17184c(_0x41d5f8[_0x4805('0x12')](0x1f4,_0x525af2[_0x4805('0x15')]));});});};exports[_0x4805('0x1d')]=function(_0x5e582e){var _0x52de54=this;return new Promise(function(_0x11dce8,_0x25585e){return db[_0x4805('0x18')]['update'](_0x5e582e[_0x4805('0x1e')],{'raw':_0x5e582e[_0x4805('0x1a')]?_0x5e582e[_0x4805('0x1a')][_0x4805('0x1b')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x5e582e[_0x4805('0x1a')]?_0x5e582e[_0x4805('0x1a')][_0x4805('0x1f')]||null:null,'attributes':_0x5e582e[_0x4805('0x1a')]?_0x5e582e['options'][_0x4805('0x20')]||null:null,'limit':_0x5e582e[_0x4805('0x1a')]?_0x5e582e['options']['limit']||null:null})['then'](function(_0x228a65){logger[_0x4805('0xd')](_0x4805('0x1d'),_0x5e582e);logger[_0x4805('0xf')](_0x4805('0x1d'),_0x5e582e,JSON[_0x4805('0x11')](_0x228a65));_0x11dce8(_0x228a65);})[_0x4805('0x1c')](function(_0x19f3ba){logger[_0x4805('0x12')]('UpdateChatQueueReport',_0x19f3ba[_0x4805('0x15')],_0x5e582e);_0x25585e(_0x52de54[_0x4805('0x12')](0x1f4,_0x19f3ba[_0x4805('0x15')]));});});};
\ No newline at end of file
+var _0xfb9a=['body','options','raw','stringify','catch','UpdateChatQueueReport','update','where','attributes','limit','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','request','then','info','ChatQueueReport,\x20%s,\x20%s','request\x20sent','debug','error','code','message','result','CreateChatQueueReport','ChatQueueReport','create'];(function(_0x31afc5,_0x8f1388){var _0x62a19b=function(_0x5584fc){while(--_0x5584fc){_0x31afc5['push'](_0x31afc5['shift']());}};_0x62a19b(++_0x8f1388);}(_0xfb9a,0x1f4));var _0xafb9=function(_0x41d1fa,_0xa250bf){_0x41d1fa=_0x41d1fa-0x0;var _0x450b97=_0xfb9a[_0x41d1fa];return _0x450b97;};'use strict';var _=require(_0xafb9('0x0'));var util=require(_0xafb9('0x1'));var moment=require(_0xafb9('0x2'));var BPromise=require(_0xafb9('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xafb9('0x4'));var db=require(_0xafb9('0x5'))['db'];var utils=require(_0xafb9('0x6'));var logger=require(_0xafb9('0x7'))(_0xafb9('0x8'));var config=require('../../config/environment');var jayson=require(_0xafb9('0x9'));var client=jayson[_0xafb9('0xa')][_0xafb9('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x2b6048,_0x4fde55,_0x5708c0){return new BPromise(function(_0x808783,_0x4716ac){return client[_0xafb9('0xc')](_0x2b6048,_0x5708c0)[_0xafb9('0xd')](function(_0x2e94a8){logger[_0xafb9('0xe')](_0xafb9('0xf'),_0x4fde55,_0xafb9('0x10'));logger[_0xafb9('0x11')]('ChatQueueReport,\x20%s,\x20%s,\x20%s',_0x4fde55,_0xafb9('0x10'),JSON['stringify'](_0x2e94a8));if(_0x2e94a8['error']){if(_0x2e94a8[_0xafb9('0x12')][_0xafb9('0x13')]===0x1f4){logger['error'](_0xafb9('0xf'),_0x4fde55,_0x2e94a8[_0xafb9('0x12')][_0xafb9('0x14')]);return _0x4716ac(_0x2e94a8['error'][_0xafb9('0x14')]);}logger[_0xafb9('0x12')](_0xafb9('0xf'),_0x4fde55,_0x2e94a8[_0xafb9('0x12')][_0xafb9('0x14')]);return _0x808783(_0x2e94a8[_0xafb9('0x12')]['message']);}else{logger[_0xafb9('0xe')]('ChatQueueReport,\x20%s,\x20%s',_0x4fde55,_0xafb9('0x10'));_0x808783(_0x2e94a8[_0xafb9('0x15')][_0xafb9('0x14')]);}})['catch'](function(_0x5ede7c){logger[_0xafb9('0x12')]('ChatQueueReport,\x20%s,\x20%s',_0x4fde55,_0x5ede7c);_0x4716ac(_0x5ede7c);});});}exports[_0xafb9('0x16')]=function(_0x5c024f){var _0x517a40=this;return new Promise(function(_0x4bca04,_0x148c6e){return db[_0xafb9('0x17')][_0xafb9('0x18')](_0x5c024f[_0xafb9('0x19')],{'raw':_0x5c024f[_0xafb9('0x1a')]?_0x5c024f[_0xafb9('0x1a')][_0xafb9('0x1b')]===undefined?!![]:![]:!![]})['then'](function(_0x1ef589){logger[_0xafb9('0xe')](_0xafb9('0x16'),_0x5c024f);logger[_0xafb9('0x11')](_0xafb9('0x16'),_0x5c024f,JSON[_0xafb9('0x1c')](_0x1ef589));_0x4bca04(_0x1ef589);})[_0xafb9('0x1d')](function(_0x48179b){logger[_0xafb9('0x12')](_0xafb9('0x16'),_0x48179b['message'],_0x5c024f);_0x148c6e(_0x517a40['error'](0x1f4,_0x48179b[_0xafb9('0x14')]));});});};exports[_0xafb9('0x1e')]=function(_0x1c064e){var _0x275b97=this;return new Promise(function(_0x1ed44b,_0x4c39eb){return db[_0xafb9('0x17')][_0xafb9('0x1f')](_0x1c064e[_0xafb9('0x19')],{'raw':_0x1c064e[_0xafb9('0x1a')]?_0x1c064e[_0xafb9('0x1a')][_0xafb9('0x1b')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x1c064e[_0xafb9('0x1a')]?_0x1c064e[_0xafb9('0x1a')][_0xafb9('0x20')]||null:null,'attributes':_0x1c064e[_0xafb9('0x1a')]?_0x1c064e[_0xafb9('0x1a')][_0xafb9('0x21')]||null:null,'limit':_0x1c064e['options']?_0x1c064e['options'][_0xafb9('0x22')]||null:null})[_0xafb9('0xd')](function(_0x2a1d6c){logger[_0xafb9('0xe')](_0xafb9('0x1e'),_0x1c064e);logger['debug']('UpdateChatQueueReport',_0x1c064e,JSON[_0xafb9('0x1c')](_0x2a1d6c));_0x1ed44b(_0x2a1d6c);})[_0xafb9('0x1d')](function(_0x58ca87){logger[_0xafb9('0x12')]('UpdateChatQueueReport',_0x58ca87[_0xafb9('0x14')],_0x1c064e);_0x4c39eb(_0x275b97[_0xafb9('0x12')](0x1f4,_0x58ca87[_0xafb9('0x14')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xeeaf=['multer','util','connect-timeout','express','Router','../../components/auth/service','../../config/environment','get','isAuthenticated','index','/describe','/:id','show','post','create','put','update','delete','destroy','exports'];(function(_0x4b9a50,_0x1d1312){var _0x368c57=function(_0x1e5ff5){while(--_0x1e5ff5){_0x4b9a50['push'](_0x4b9a50['shift']());}};_0x368c57(++_0x1d1312);}(_0xeeaf,0x78));var _0xfeea=function(_0x31183e,_0x4764cc){_0x31183e=_0x31183e-0x0;var _0xa6cf81=_0xeeaf[_0x31183e];return _0xa6cf81;};'use strict';var multer=require(_0xfeea('0x0'));var util=require(_0xfeea('0x1'));var path=require('path');var timeout=require(_0xfeea('0x2'));var express=require(_0xfeea('0x3'));var router=express[_0xfeea('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0xfeea('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0xfeea('0x6'));var controller=require('./chatQueueReport.controller');router[_0xfeea('0x7')]('/',auth[_0xfeea('0x8')](),controller[_0xfeea('0x9')]);router[_0xfeea('0x7')](_0xfeea('0xa'),auth[_0xfeea('0x8')](),controller['describe']);router['get'](_0xfeea('0xb'),auth[_0xfeea('0x8')](),controller[_0xfeea('0xc')]);router[_0xfeea('0xd')]('/',auth[_0xfeea('0x8')](),controller[_0xfeea('0xe')]);router[_0xfeea('0xf')](_0xfeea('0xb'),auth['isAuthenticated'](),controller[_0xfeea('0x10')]);router[_0xfeea('0x11')]('/:id',auth[_0xfeea('0x8')](),controller[_0xfeea('0x12')]);module[_0xfeea('0x13')]=router;
\ No newline at end of file
+var _0x453c=['../../config/environment','./chatQueueReport.controller','get','isAuthenticated','describe','/:id','create','put','delete','destroy','exports','multer','util','connect-timeout','express','../../components/auth/service','../../components/interaction/service'];(function(_0x358806,_0x322b66){var _0x19fdcb=function(_0xe01b8d){while(--_0xe01b8d){_0x358806['push'](_0x358806['shift']());}};_0x19fdcb(++_0x322b66);}(_0x453c,0xc6));var _0xc453=function(_0x16bb4b,_0x5fe431){_0x16bb4b=_0x16bb4b-0x0;var _0x8aeb84=_0x453c[_0x16bb4b];return _0x8aeb84;};'use strict';var multer=require(_0xc453('0x0'));var util=require(_0xc453('0x1'));var path=require('path');var timeout=require(_0xc453('0x2'));var express=require(_0xc453('0x3'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0xc453('0x4'));var interaction=require(_0xc453('0x5'));var config=require(_0xc453('0x6'));var controller=require(_0xc453('0x7'));router[_0xc453('0x8')]('/',auth[_0xc453('0x9')](),controller['index']);router[_0xc453('0x8')]('/describe',auth['isAuthenticated'](),controller[_0xc453('0xa')]);router[_0xc453('0x8')](_0xc453('0xb'),auth['isAuthenticated'](),controller['show']);router['post']('/',auth['isAuthenticated'](),controller[_0xc453('0xc')]);router[_0xc453('0xd')](_0xc453('0xb'),auth[_0xc453('0x9')](),controller['update']);router[_0xc453('0xe')](_0xc453('0xb'),auth[_0xc453('0x9')](),controller[_0xc453('0xf')]);module[_0xc453('0x10')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcb91=['STRING','ENUM','account','queue','NOW','exports'];(function(_0x1afe91,_0x29e173){var _0x45a1cb=function(_0x2d8c78){while(--_0x2d8c78){_0x1afe91['push'](_0x1afe91['shift']());}};_0x45a1cb(++_0x29e173);}(_0xcb91,0x1a9));var _0x1cb9=function(_0x22663b,_0xc8c6e3){_0x22663b=_0x22663b-0x0;var _0x310d0a=_0xcb91[_0x22663b];return _0x310d0a;};'use strict';var moment=require('moment');var Sequelize=require('sequelize');module[_0x1cb9('0x0')]={'uniqueid':{'type':Sequelize[_0x1cb9('0x1')],'allowNull':![]},'type':{'type':Sequelize[_0x1cb9('0x2')](_0x1cb9('0x3'),'agent',_0x1cb9('0x4')),'allowNull':![],'defaultValue':_0x1cb9('0x4')},'transferredAt':{'type':Sequelize['DATE'],'allowNull':![],'defaultValue':Sequelize[_0x1cb9('0x5')]}};
\ No newline at end of file
+var _0xcb91=['STRING','ENUM','account','queue','NOW','exports'];(function(_0x5d6757,_0x2d4a36){var _0x350a89=function(_0x177e4f){while(--_0x177e4f){_0x5d6757['push'](_0x5d6757['shift']());}};_0x350a89(++_0x2d4a36);}(_0xcb91,0x1a9));var _0x1cb9=function(_0x2867d8,_0xef3ee0){_0x2867d8=_0x2867d8-0x0;var _0x3b8176=_0xcb91[_0x2867d8];return _0x3b8176;};'use strict';var moment=require('moment');var Sequelize=require('sequelize');module[_0x1cb9('0x0')]={'uniqueid':{'type':Sequelize[_0x1cb9('0x1')],'allowNull':![]},'type':{'type':Sequelize[_0x1cb9('0x2')](_0x1cb9('0x3'),'agent',_0x1cb9('0x4')),'allowNull':![],'defaultValue':_0x1cb9('0x4')},'transferredAt':{'type':Sequelize['DATE'],'allowNull':![],'defaultValue':Sequelize[_0x1cb9('0x5')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x98cf=['keys','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','filters','filter','VIRTUAL','includeAll','include','findAll','show','params','merge','options','catch','create','body','find','describe','zip-dir','fast-json-patch','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','json','undefined','count','offset','limit','Content-Range','apply','reject','update','destroy','then','status','error','stack','name','send','index','ChatTransferReport','rawAttributes','fieldName','type','key','model','map','query'];(function(_0x17f7e1,_0x561bf4){var _0x556d66=function(_0xd871eb){while(--_0xd871eb){_0x17f7e1['push'](_0x17f7e1['shift']());}};_0x556d66(++_0x561bf4);}(_0x98cf,0xb1));var _0xf98c=function(_0x537998,_0x4a1e32){_0x537998=_0x537998-0x0;var _0x2ba597=_0x98cf[_0x537998];return _0x2ba597;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xf98c('0x0'));var jsonpatch=require(_0xf98c('0x1'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xf98c('0x2'));var Mustache=require(_0xf98c('0x3'));var util=require(_0xf98c('0x4'));var path=require(_0xf98c('0x5'));var sox=require(_0xf98c('0x6'));var csv=require(_0xf98c('0x7'));var ejs=require(_0xf98c('0x8'));var fs=require('fs');var fs_extra=require(_0xf98c('0x9'));var _=require(_0xf98c('0xa'));var squel=require(_0xf98c('0xb'));var crypto=require(_0xf98c('0xc'));var jsforce=require('jsforce');var deskjs=require(_0xf98c('0xd'));var toCsv=require(_0xf98c('0x7'));var querystring=require(_0xf98c('0xe'));var Papa=require(_0xf98c('0xf'));var Redis=require(_0xf98c('0x10'));var authService=require(_0xf98c('0x11'));var qs=require(_0xf98c('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xf98c('0x13'));var logger=require(_0xf98c('0x14'))('api');var utils=require('../../config/utils');var config=require(_0xf98c('0x15'));var licenseUtil=require(_0xf98c('0x16'));var db=require(_0xf98c('0x17'))['db'];function respondWithStatusCode(_0x2ca676,_0x58d252){_0x58d252=_0x58d252||0xcc;return function(_0x1fce13){if(_0x1fce13){return _0x2ca676[_0xf98c('0x18')](_0x58d252);}return _0x2ca676['status'](_0x58d252)[_0xf98c('0x19')]();};}function respondWithResult(_0x38423e,_0x2c7f53){_0x2c7f53=_0x2c7f53||0xc8;return function(_0x479e3c){if(_0x479e3c){return _0x38423e['status'](_0x2c7f53)[_0xf98c('0x1a')](_0x479e3c);}};}function respondWithFilteredResult(_0x4f4799,_0x3bfd95){return function(_0x1e3257){if(_0x1e3257){var _0x267f1a=typeof _0x3bfd95['offset']===_0xf98c('0x1b')&&typeof _0x3bfd95['limit']===_0xf98c('0x1b');var _0x2f513b=_0x1e3257[_0xf98c('0x1c')];var _0x2b06d0=_0x267f1a?0x0:_0x3bfd95[_0xf98c('0x1d')];var _0x18a98f=_0x267f1a?_0x1e3257[_0xf98c('0x1c')]:_0x3bfd95[_0xf98c('0x1d')]+_0x3bfd95[_0xf98c('0x1e')];var _0x2dade0;if(_0x18a98f>=_0x2f513b){_0x18a98f=_0x2f513b;_0x2dade0=0xc8;}else{_0x2dade0=0xce;}_0x4f4799['status'](_0x2dade0);return _0x4f4799['set'](_0xf98c('0x1f'),_0x2b06d0+'-'+_0x18a98f+'/'+_0x2f513b)['json'](_0x1e3257);}return null;};}function patchUpdates(_0x456dd3){return function(_0x585e87){try{jsonpatch[_0xf98c('0x20')](_0x585e87,_0x456dd3,!![]);}catch(_0x295c37){return BPromise[_0xf98c('0x21')](_0x295c37);}return _0x585e87['save']();};}function saveUpdates(_0x24eeb2,_0x19ad08){return function(_0x22c2f8){if(_0x22c2f8){return _0x22c2f8[_0xf98c('0x22')](_0x24eeb2)['then'](function(_0x2ca452){return _0x2ca452;});}return null;};}function removeEntity(_0x1ef07d,_0x1d1ff3){return function(_0x24220c){if(_0x24220c){return _0x24220c[_0xf98c('0x23')]()[_0xf98c('0x24')](function(){_0x1ef07d[_0xf98c('0x25')](0xcc)[_0xf98c('0x19')]();});}};}function handleEntityNotFound(_0x65f75d,_0x56f507){return function(_0x36ee47){if(!_0x36ee47){_0x65f75d['sendStatus'](0x194);}return _0x36ee47;};}function handleError(_0x16ee3a,_0x13d0da){_0x13d0da=_0x13d0da||0x1f4;return function(_0xbe43b5){logger[_0xf98c('0x26')](_0xbe43b5[_0xf98c('0x27')]);if(_0xbe43b5[_0xf98c('0x28')]){delete _0xbe43b5[_0xf98c('0x28')];}_0x16ee3a[_0xf98c('0x25')](_0x13d0da)[_0xf98c('0x29')](_0xbe43b5);};}exports[_0xf98c('0x2a')]=function(_0x44a1b5,_0x2eea5a){var _0x33ee6d={},_0x51ab32={},_0x214543={'count':0x0,'rows':[]};var _0x2195d1=_['map'](db[_0xf98c('0x2b')][_0xf98c('0x2c')],function(_0x384b10){return{'name':_0x384b10[_0xf98c('0x2d')],'type':_0x384b10[_0xf98c('0x2e')][_0xf98c('0x2f')]};});_0x51ab32[_0xf98c('0x30')]=_[_0xf98c('0x31')](_0x2195d1,'name');_0x51ab32[_0xf98c('0x32')]=_[_0xf98c('0x33')](_0x44a1b5[_0xf98c('0x32')]);_0x51ab32['filters']=_[_0xf98c('0x34')](_0x51ab32[_0xf98c('0x30')],_0x51ab32['query']);_0x33ee6d[_0xf98c('0x35')]=_[_0xf98c('0x34')](_0x51ab32[_0xf98c('0x30')],qs['fields'](_0x44a1b5[_0xf98c('0x32')][_0xf98c('0x36')]));_0x33ee6d[_0xf98c('0x35')]=_0x33ee6d['attributes'][_0xf98c('0x37')]?_0x33ee6d[_0xf98c('0x35')]:_0x51ab32['model'];if(!_0x44a1b5[_0xf98c('0x32')][_0xf98c('0x38')]('nolimit')){_0x33ee6d[_0xf98c('0x1e')]=qs[_0xf98c('0x1e')](_0x44a1b5[_0xf98c('0x32')][_0xf98c('0x1e')]);_0x33ee6d['offset']=qs[_0xf98c('0x1d')](_0x44a1b5[_0xf98c('0x32')][_0xf98c('0x1d')]);}_0x33ee6d[_0xf98c('0x39')]=qs[_0xf98c('0x3a')](_0x44a1b5[_0xf98c('0x32')]['sort']);_0x33ee6d[_0xf98c('0x3b')]=qs['filters'](_[_0xf98c('0x3c')](_0x44a1b5[_0xf98c('0x32')],_0x51ab32[_0xf98c('0x3d')]),_0x2195d1);if(_0x44a1b5[_0xf98c('0x32')][_0xf98c('0x3e')]){_0x33ee6d[_0xf98c('0x3b')]=_['merge'](_0x33ee6d[_0xf98c('0x3b')],{'$or':_['map'](_0x2195d1,function(_0x293512){if(_0x293512[_0xf98c('0x2e')]!==_0xf98c('0x3f')){var _0x415b5a={};_0x415b5a[_0x293512[_0xf98c('0x28')]]={'$like':'%'+_0x44a1b5[_0xf98c('0x32')]['filter']+'%'};return _0x415b5a;}})});}_0x33ee6d=_['merge']({},_0x33ee6d,_0x44a1b5['options']);var _0x4ac83c={'where':_0x33ee6d[_0xf98c('0x3b')]};return db[_0xf98c('0x2b')][_0xf98c('0x1c')](_0x4ac83c)[_0xf98c('0x24')](function(_0x177487){_0x214543[_0xf98c('0x1c')]=_0x177487;if(_0x44a1b5['query'][_0xf98c('0x40')]){_0x33ee6d[_0xf98c('0x41')]=[{'all':!![]}];}return db[_0xf98c('0x2b')][_0xf98c('0x42')](_0x33ee6d);})[_0xf98c('0x24')](function(_0x38dda8){_0x214543['rows']=_0x38dda8;return _0x214543;})['then'](respondWithFilteredResult(_0x2eea5a,_0x33ee6d))['catch'](handleError(_0x2eea5a,null));};exports[_0xf98c('0x43')]=function(_0x3a4e5e,_0x4239fc){var _0x57d379={'raw':!![],'where':{'id':_0x3a4e5e[_0xf98c('0x44')]['id']}},_0x1fbe20={};_0x1fbe20[_0xf98c('0x30')]=_[_0xf98c('0x33')](db[_0xf98c('0x2b')][_0xf98c('0x2c')]);_0x1fbe20[_0xf98c('0x32')]=_[_0xf98c('0x33')](_0x3a4e5e['query']);_0x1fbe20[_0xf98c('0x3d')]=_[_0xf98c('0x34')](_0x1fbe20[_0xf98c('0x30')],_0x1fbe20[_0xf98c('0x32')]);_0x57d379['attributes']=_[_0xf98c('0x34')](_0x1fbe20[_0xf98c('0x30')],qs[_0xf98c('0x36')](_0x3a4e5e[_0xf98c('0x32')][_0xf98c('0x36')]));_0x57d379[_0xf98c('0x35')]=_0x57d379[_0xf98c('0x35')][_0xf98c('0x37')]?_0x57d379[_0xf98c('0x35')]:_0x1fbe20[_0xf98c('0x30')];if(_0x3a4e5e['query'][_0xf98c('0x40')]){_0x57d379['include']=[{'all':!![]}];}_0x57d379=_[_0xf98c('0x45')]({},_0x57d379,_0x3a4e5e[_0xf98c('0x46')]);return db[_0xf98c('0x2b')]['find'](_0x57d379)[_0xf98c('0x24')](handleEntityNotFound(_0x4239fc,null))[_0xf98c('0x24')](respondWithResult(_0x4239fc,null))[_0xf98c('0x47')](handleError(_0x4239fc,null));};exports[_0xf98c('0x48')]=function(_0x580ee8,_0x3fe50d){return db['ChatTransferReport'][_0xf98c('0x48')](_0x580ee8[_0xf98c('0x49')],{})['then'](respondWithResult(_0x3fe50d,0xc9))[_0xf98c('0x47')](handleError(_0x3fe50d,null));};exports[_0xf98c('0x22')]=function(_0x1e9fda,_0x230a37){if(_0x1e9fda[_0xf98c('0x49')]['id']){delete _0x1e9fda['body']['id'];}return db['ChatTransferReport'][_0xf98c('0x4a')]({'where':{'id':_0x1e9fda[_0xf98c('0x44')]['id']}})[_0xf98c('0x24')](handleEntityNotFound(_0x230a37,null))['then'](saveUpdates(_0x1e9fda['body'],null))['then'](respondWithResult(_0x230a37,null))[_0xf98c('0x47')](handleError(_0x230a37,null));};exports['destroy']=function(_0x3df7b5,_0x716fe8){return db[_0xf98c('0x2b')][_0xf98c('0x4a')]({'where':{'id':_0x3df7b5[_0xf98c('0x44')]['id']}})[_0xf98c('0x24')](handleEntityNotFound(_0x716fe8,null))['then'](removeEntity(_0x716fe8,null))[_0xf98c('0x47')](handleError(_0x716fe8,null));};exports[_0xf98c('0x4b')]=function(_0x243aac,_0x4aec57){return db[_0xf98c('0x2b')]['describe']()[_0xf98c('0x24')](respondWithResult(_0x4aec57,null))[_0xf98c('0x47')](handleError(_0x4aec57,null));};
\ No newline at end of file
+var _0x6db6=['rows','catch','length','find','create','body','params','describe','eml-format','rimraf','request-promise','moment','bluebird','mustache','util','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','end','status','offset','undefined','count','limit','set','Content-Range','json','apply','destroy','then','error','name','send','map','ChatTransferReport','rawAttributes','type','key','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','VIRTUAL','options','includeAll','include','findAll'];(function(_0x4382bc,_0x231a2d){var _0x13c82a=function(_0x3723b0){while(--_0x3723b0){_0x4382bc['push'](_0x4382bc['shift']());}};_0x13c82a(++_0x231a2d);}(_0x6db6,0x1ca));var _0x66db=function(_0x418d4d,_0x1c7074){_0x418d4d=_0x418d4d-0x0;var _0x2bbf10=_0x6db6[_0x418d4d];return _0x2bbf10;};'use strict';var emlformat=require(_0x66db('0x0'));var rimraf=require(_0x66db('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x66db('0x2'));var moment=require(_0x66db('0x3'));var BPromise=require(_0x66db('0x4'));var Mustache=require(_0x66db('0x5'));var util=require(_0x66db('0x6'));var path=require('path');var sox=require('sox');var csv=require(_0x66db('0x7'));var ejs=require(_0x66db('0x8'));var fs=require('fs');var fs_extra=require(_0x66db('0x9'));var _=require(_0x66db('0xa'));var squel=require(_0x66db('0xb'));var crypto=require(_0x66db('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x66db('0xd'));var toCsv=require(_0x66db('0x7'));var querystring=require(_0x66db('0xe'));var Papa=require(_0x66db('0xf'));var Redis=require(_0x66db('0x10'));var authService=require(_0x66db('0x11'));var qs=require(_0x66db('0x12'));var as=require(_0x66db('0x13'));var hardwareService=require(_0x66db('0x14'));var logger=require(_0x66db('0x15'))(_0x66db('0x16'));var utils=require(_0x66db('0x17'));var config=require(_0x66db('0x18'));var licenseUtil=require(_0x66db('0x19'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x16afbf,_0x5c2293){_0x5c2293=_0x5c2293||0xcc;return function(_0x597f22){if(_0x597f22){return _0x16afbf[_0x66db('0x1a')](_0x5c2293);}return _0x16afbf['status'](_0x5c2293)[_0x66db('0x1b')]();};}function respondWithResult(_0x39ab12,_0x586bf6){_0x586bf6=_0x586bf6||0xc8;return function(_0xfd907c){if(_0xfd907c){return _0x39ab12[_0x66db('0x1c')](_0x586bf6)['json'](_0xfd907c);}};}function respondWithFilteredResult(_0x26117c,_0x41339a){return function(_0x504e5e){if(_0x504e5e){var _0x2f27d9=typeof _0x41339a[_0x66db('0x1d')]===_0x66db('0x1e')&&typeof _0x41339a['limit']==='undefined';var _0x47c0ec=_0x504e5e[_0x66db('0x1f')];var _0x5fc62e=_0x2f27d9?0x0:_0x41339a[_0x66db('0x1d')];var _0x5ebae1=_0x2f27d9?_0x504e5e[_0x66db('0x1f')]:_0x41339a[_0x66db('0x1d')]+_0x41339a[_0x66db('0x20')];var _0x502545;if(_0x5ebae1>=_0x47c0ec){_0x5ebae1=_0x47c0ec;_0x502545=0xc8;}else{_0x502545=0xce;}_0x26117c[_0x66db('0x1c')](_0x502545);return _0x26117c[_0x66db('0x21')](_0x66db('0x22'),_0x5fc62e+'-'+_0x5ebae1+'/'+_0x47c0ec)[_0x66db('0x23')](_0x504e5e);}return null;};}function patchUpdates(_0x1ac760){return function(_0x269721){try{jsonpatch[_0x66db('0x24')](_0x269721,_0x1ac760,!![]);}catch(_0x173c76){return BPromise['reject'](_0x173c76);}return _0x269721['save']();};}function saveUpdates(_0x1a53b6,_0x2a37a9){return function(_0x415713){if(_0x415713){return _0x415713['update'](_0x1a53b6)['then'](function(_0x41112c){return _0x41112c;});}return null;};}function removeEntity(_0xa3aecf,_0x41da45){return function(_0x1af656){if(_0x1af656){return _0x1af656[_0x66db('0x25')]()[_0x66db('0x26')](function(){_0xa3aecf[_0x66db('0x1c')](0xcc)[_0x66db('0x1b')]();});}};}function handleEntityNotFound(_0x5b0e3c,_0x742b06){return function(_0x4bb68b){if(!_0x4bb68b){_0x5b0e3c[_0x66db('0x1a')](0x194);}return _0x4bb68b;};}function handleError(_0x3e7465,_0xd47694){_0xd47694=_0xd47694||0x1f4;return function(_0xf447e8){logger[_0x66db('0x27')](_0xf447e8['stack']);if(_0xf447e8['name']){delete _0xf447e8[_0x66db('0x28')];}_0x3e7465['status'](_0xd47694)[_0x66db('0x29')](_0xf447e8);};}exports['index']=function(_0x466aba,_0x2315c){var _0x5cef62={},_0x300c06={},_0x2976bb={'count':0x0,'rows':[]};var _0x3da3b8=_[_0x66db('0x2a')](db[_0x66db('0x2b')][_0x66db('0x2c')],function(_0x65d5f6){return{'name':_0x65d5f6['fieldName'],'type':_0x65d5f6[_0x66db('0x2d')][_0x66db('0x2e')]};});_0x300c06[_0x66db('0x2f')]=_[_0x66db('0x2a')](_0x3da3b8,'name');_0x300c06[_0x66db('0x30')]=_[_0x66db('0x31')](_0x466aba['query']);_0x300c06[_0x66db('0x32')]=_[_0x66db('0x33')](_0x300c06[_0x66db('0x2f')],_0x300c06[_0x66db('0x30')]);_0x5cef62[_0x66db('0x34')]=_[_0x66db('0x33')](_0x300c06[_0x66db('0x2f')],qs['fields'](_0x466aba[_0x66db('0x30')][_0x66db('0x35')]));_0x5cef62[_0x66db('0x34')]=_0x5cef62[_0x66db('0x34')]['length']?_0x5cef62[_0x66db('0x34')]:_0x300c06['model'];if(!_0x466aba[_0x66db('0x30')][_0x66db('0x36')](_0x66db('0x37'))){_0x5cef62[_0x66db('0x20')]=qs['limit'](_0x466aba[_0x66db('0x30')][_0x66db('0x20')]);_0x5cef62[_0x66db('0x1d')]=qs[_0x66db('0x1d')](_0x466aba['query'][_0x66db('0x1d')]);}_0x5cef62[_0x66db('0x38')]=qs[_0x66db('0x39')](_0x466aba['query']['sort']);_0x5cef62['where']=qs[_0x66db('0x32')](_[_0x66db('0x3a')](_0x466aba['query'],_0x300c06['filters']),_0x3da3b8);if(_0x466aba[_0x66db('0x30')][_0x66db('0x3b')]){_0x5cef62[_0x66db('0x3c')]=_[_0x66db('0x3d')](_0x5cef62[_0x66db('0x3c')],{'$or':_[_0x66db('0x2a')](_0x3da3b8,function(_0x27858d){if(_0x27858d[_0x66db('0x2d')]!==_0x66db('0x3e')){var _0x12f351={};_0x12f351[_0x27858d['name']]={'$like':'%'+_0x466aba['query'][_0x66db('0x3b')]+'%'};return _0x12f351;}})});}_0x5cef62=_[_0x66db('0x3d')]({},_0x5cef62,_0x466aba[_0x66db('0x3f')]);var _0xa2b606={'where':_0x5cef62[_0x66db('0x3c')]};return db[_0x66db('0x2b')][_0x66db('0x1f')](_0xa2b606)[_0x66db('0x26')](function(_0xb1f02c){_0x2976bb[_0x66db('0x1f')]=_0xb1f02c;if(_0x466aba[_0x66db('0x30')][_0x66db('0x40')]){_0x5cef62[_0x66db('0x41')]=[{'all':!![]}];}return db['ChatTransferReport'][_0x66db('0x42')](_0x5cef62);})[_0x66db('0x26')](function(_0x5cfdd7){_0x2976bb[_0x66db('0x43')]=_0x5cfdd7;return _0x2976bb;})[_0x66db('0x26')](respondWithFilteredResult(_0x2315c,_0x5cef62))[_0x66db('0x44')](handleError(_0x2315c,null));};exports['show']=function(_0x50b127,_0x2a8f30){var _0x18d5a9={'raw':!![],'where':{'id':_0x50b127['params']['id']}},_0x566910={};_0x566910['model']=_[_0x66db('0x31')](db[_0x66db('0x2b')]['rawAttributes']);_0x566910[_0x66db('0x30')]=_['keys'](_0x50b127[_0x66db('0x30')]);_0x566910['filters']=_[_0x66db('0x33')](_0x566910['model'],_0x566910[_0x66db('0x30')]);_0x18d5a9[_0x66db('0x34')]=_[_0x66db('0x33')](_0x566910[_0x66db('0x2f')],qs[_0x66db('0x35')](_0x50b127[_0x66db('0x30')]['fields']));_0x18d5a9[_0x66db('0x34')]=_0x18d5a9[_0x66db('0x34')][_0x66db('0x45')]?_0x18d5a9['attributes']:_0x566910[_0x66db('0x2f')];if(_0x50b127[_0x66db('0x30')][_0x66db('0x40')]){_0x18d5a9[_0x66db('0x41')]=[{'all':!![]}];}_0x18d5a9=_['merge']({},_0x18d5a9,_0x50b127[_0x66db('0x3f')]);return db['ChatTransferReport'][_0x66db('0x46')](_0x18d5a9)['then'](handleEntityNotFound(_0x2a8f30,null))[_0x66db('0x26')](respondWithResult(_0x2a8f30,null))[_0x66db('0x44')](handleError(_0x2a8f30,null));};exports[_0x66db('0x47')]=function(_0x123cbc,_0x4229f4){return db[_0x66db('0x2b')][_0x66db('0x47')](_0x123cbc['body'],{})['then'](respondWithResult(_0x4229f4,0xc9))[_0x66db('0x44')](handleError(_0x4229f4,null));};exports['update']=function(_0x19be60,_0x5d0e67){if(_0x19be60[_0x66db('0x48')]['id']){delete _0x19be60[_0x66db('0x48')]['id'];}return db[_0x66db('0x2b')][_0x66db('0x46')]({'where':{'id':_0x19be60[_0x66db('0x49')]['id']}})[_0x66db('0x26')](handleEntityNotFound(_0x5d0e67,null))[_0x66db('0x26')](saveUpdates(_0x19be60[_0x66db('0x48')],null))[_0x66db('0x26')](respondWithResult(_0x5d0e67,null))[_0x66db('0x44')](handleError(_0x5d0e67,null));};exports[_0x66db('0x25')]=function(_0x136055,_0x11910d){return db['ChatTransferReport'][_0x66db('0x46')]({'where':{'id':_0x136055['params']['id']}})['then'](handleEntityNotFound(_0x11910d,null))[_0x66db('0x26')](removeEntity(_0x11910d,null))[_0x66db('0x44')](handleError(_0x11910d,null));};exports['describe']=function(_0x2b83ba,_0x1ed288){return db['ChatTransferReport'][_0x66db('0x4a')]()[_0x66db('0x26')](respondWithResult(_0x1ed288,null))[_0x66db('0x44')](handleError(_0x1ed288,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0812=['ChatTransferReport','uniqueid','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','define'];(function(_0x52bb01,_0x1f0a38){var _0x112a08=function(_0x41e827){while(--_0x41e827){_0x52bb01['push'](_0x52bb01['shift']());}};_0x112a08(++_0x1f0a38);}(_0x0812,0x6e));var _0x2081=function(_0x2e4b9b,_0x3ea071){_0x2e4b9b=_0x2e4b9b-0x0;var _0x5812e4=_0x0812[_0x2e4b9b];return _0x5812e4;};'use strict';var _=require(_0x2081('0x0'));var util=require(_0x2081('0x1'));var logger=require(_0x2081('0x2'))(_0x2081('0x3'));var moment=require(_0x2081('0x4'));var BPromise=require(_0x2081('0x5'));var rp=require(_0x2081('0x6'));var fs=require('fs');var path=require(_0x2081('0x7'));var rimraf=require(_0x2081('0x8'));var config=require('../../config/environment');var attributes=require('./chatTransferReport.attributes');module['exports']=function(_0x418df3,_0x268f10){return _0x418df3[_0x2081('0x9')](_0x2081('0xa'),attributes,{'tableName':'report_chat_transfer','paranoid':![],'indexes':[{'name':'uniqueid','fields':[_0x2081('0xb')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x9349=['exports','define','ChatTransferReport','report_chat_transfer','uniqueid','lodash','util','../../config/logger','api','bluebird','request-promise','path','rimraf','../../config/environment','./chatTransferReport.attributes'];(function(_0x2aa155,_0x5ae424){var _0x3e2718=function(_0x4eed3b){while(--_0x4eed3b){_0x2aa155['push'](_0x2aa155['shift']());}};_0x3e2718(++_0x5ae424);}(_0x9349,0x6e));var _0x9934=function(_0x18fc07,_0x5097c9){_0x18fc07=_0x18fc07-0x0;var _0x27d153=_0x9349[_0x18fc07];return _0x27d153;};'use strict';var _=require(_0x9934('0x0'));var util=require(_0x9934('0x1'));var logger=require(_0x9934('0x2'))(_0x9934('0x3'));var moment=require('moment');var BPromise=require(_0x9934('0x4'));var rp=require(_0x9934('0x5'));var fs=require('fs');var path=require(_0x9934('0x6'));var rimraf=require(_0x9934('0x7'));var config=require(_0x9934('0x8'));var attributes=require(_0x9934('0x9'));module[_0x9934('0xa')]=function(_0x1e39d7,_0x33575f){return _0x1e39d7[_0x9934('0xb')](_0x9934('0xc'),attributes,{'tableName':_0x9934('0xd'),'paranoid':![],'indexes':[{'name':_0x9934('0xe'),'fields':[_0x9934('0xe')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7927=['stringify','error','ChatTransferReport,\x20%s,\x20%s','message','info','result','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','http','request','request\x20sent','ChatTransferReport,\x20%s,\x20%s,\x20%s'];(function(_0x5f49c0,_0x27a1b4){var _0x5ab653=function(_0x4de962){while(--_0x4de962){_0x5f49c0['push'](_0x5f49c0['shift']());}};_0x5ab653(++_0x27a1b4);}(_0x7927,0x1d4));var _0x7792=function(_0x23ad16,_0x40c45a){_0x23ad16=_0x23ad16-0x0;var _0x435bc2=_0x7927[_0x23ad16];return _0x435bc2;};'use strict';var _=require(_0x7792('0x0'));var util=require(_0x7792('0x1'));var moment=require(_0x7792('0x2'));var BPromise=require(_0x7792('0x3'));var rs=require(_0x7792('0x4'));var fs=require('fs');var Redis=require(_0x7792('0x5'));var db=require(_0x7792('0x6'))['db'];var utils=require('../../config/utils');var logger=require(_0x7792('0x7'))(_0x7792('0x8'));var config=require(_0x7792('0x9'));var jayson=require(_0x7792('0xa'));var client=jayson['client'][_0x7792('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x5a3c34,_0x570ca1,_0x4bf76d){return new BPromise(function(_0x5310af,_0x1194d3){return client[_0x7792('0xc')](_0x5a3c34,_0x4bf76d)['then'](function(_0x2bb122){logger['info']('ChatTransferReport,\x20%s,\x20%s',_0x570ca1,_0x7792('0xd'));logger['debug'](_0x7792('0xe'),_0x570ca1,_0x7792('0xd'),JSON[_0x7792('0xf')](_0x2bb122));if(_0x2bb122['error']){if(_0x2bb122[_0x7792('0x10')]['code']===0x1f4){logger[_0x7792('0x10')](_0x7792('0x11'),_0x570ca1,_0x2bb122[_0x7792('0x10')]['message']);return _0x1194d3(_0x2bb122['error']['message']);}logger[_0x7792('0x10')](_0x7792('0x11'),_0x570ca1,_0x2bb122[_0x7792('0x10')][_0x7792('0x12')]);return _0x5310af(_0x2bb122[_0x7792('0x10')][_0x7792('0x12')]);}else{logger[_0x7792('0x13')](_0x7792('0x11'),_0x570ca1,_0x7792('0xd'));_0x5310af(_0x2bb122[_0x7792('0x14')][_0x7792('0x12')]);}})['catch'](function(_0x4a5921){logger[_0x7792('0x10')]('ChatTransferReport,\x20%s,\x20%s',_0x570ca1,_0x4a5921);_0x1194d3(_0x4a5921);});});}
\ No newline at end of file
+var _0xc5c0=['ChatTransferReport,\x20%s,\x20%s','message','result','catch','lodash','util','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','request','then','info','request\x20sent','debug','ChatTransferReport,\x20%s,\x20%s,\x20%s','stringify','error'];(function(_0x32b542,_0x4512fa){var _0x554d54=function(_0x35cdfc){while(--_0x35cdfc){_0x32b542['push'](_0x32b542['shift']());}};_0x554d54(++_0x4512fa);}(_0xc5c0,0x1a2));var _0x0c5c=function(_0x297360,_0x5e5c79){_0x297360=_0x297360-0x0;var _0x52e330=_0xc5c0[_0x297360];return _0x52e330;};'use strict';var _=require(_0x0c5c('0x0'));var util=require(_0x0c5c('0x1'));var moment=require('moment');var BPromise=require(_0x0c5c('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x0c5c('0x3'));var db=require(_0x0c5c('0x4'))['db'];var utils=require(_0x0c5c('0x5'));var logger=require(_0x0c5c('0x6'))('rpc');var config=require(_0x0c5c('0x7'));var jayson=require(_0x0c5c('0x8'));var client=jayson[_0x0c5c('0x9')][_0x0c5c('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x315573,_0x4f20c4,_0x48860b){return new BPromise(function(_0x53ce3c,_0x2841b2){return client[_0x0c5c('0xb')](_0x315573,_0x48860b)[_0x0c5c('0xc')](function(_0x20860c){logger[_0x0c5c('0xd')]('ChatTransferReport,\x20%s,\x20%s',_0x4f20c4,_0x0c5c('0xe'));logger[_0x0c5c('0xf')](_0x0c5c('0x10'),_0x4f20c4,_0x0c5c('0xe'),JSON[_0x0c5c('0x11')](_0x20860c));if(_0x20860c[_0x0c5c('0x12')]){if(_0x20860c[_0x0c5c('0x12')]['code']===0x1f4){logger[_0x0c5c('0x12')](_0x0c5c('0x13'),_0x4f20c4,_0x20860c[_0x0c5c('0x12')][_0x0c5c('0x14')]);return _0x2841b2(_0x20860c[_0x0c5c('0x12')]['message']);}logger[_0x0c5c('0x12')](_0x0c5c('0x13'),_0x4f20c4,_0x20860c[_0x0c5c('0x12')][_0x0c5c('0x14')]);return _0x53ce3c(_0x20860c['error']['message']);}else{logger[_0x0c5c('0xd')](_0x0c5c('0x13'),_0x4f20c4,_0x0c5c('0xe'));_0x53ce3c(_0x20860c[_0x0c5c('0x15')][_0x0c5c('0x14')]);}})[_0x0c5c('0x16')](function(_0x3efdc1){logger['error'](_0x0c5c('0x13'),_0x4f20c4,_0x3efdc1);_0x2841b2(_0x3efdc1);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7bc1=['post','create','put','destroy','multer','util','path','connect-timeout','express','Router','fs-extra','../../config/environment','./chatTransferReport.controller','get','isAuthenticated','index','/describe','describe','/:id'];(function(_0xf56f08,_0x48a748){var _0x5c1b2c=function(_0x49780e){while(--_0x49780e){_0xf56f08['push'](_0xf56f08['shift']());}};_0x5c1b2c(++_0x48a748);}(_0x7bc1,0xaf));var _0x17bc=function(_0x466538,_0x24ca73){_0x466538=_0x466538-0x0;var _0x3e7489=_0x7bc1[_0x466538];return _0x3e7489;};'use strict';var multer=require(_0x17bc('0x0'));var util=require(_0x17bc('0x1'));var path=require(_0x17bc('0x2'));var timeout=require(_0x17bc('0x3'));var express=require(_0x17bc('0x4'));var router=express[_0x17bc('0x5')]();var fs_extra=require(_0x17bc('0x6'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x17bc('0x7'));var controller=require(_0x17bc('0x8'));router[_0x17bc('0x9')]('/',auth[_0x17bc('0xa')](),controller[_0x17bc('0xb')]);router['get'](_0x17bc('0xc'),auth[_0x17bc('0xa')](),controller[_0x17bc('0xd')]);router[_0x17bc('0x9')](_0x17bc('0xe'),auth[_0x17bc('0xa')](),controller['show']);router[_0x17bc('0xf')]('/',auth[_0x17bc('0xa')](),controller[_0x17bc('0x10')]);router[_0x17bc('0x11')](_0x17bc('0xe'),auth[_0x17bc('0xa')](),controller['update']);router['delete'](_0x17bc('0xe'),auth['isAuthenticated'](),controller[_0x17bc('0x12')]);module['exports']=router;
\ No newline at end of file
+var _0xa593=['show','post','create','put','update','delete','destroy','exports','util','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./chatTransferReport.controller','get','isAuthenticated','/describe','/:id'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0xa593,0xc6));var _0x3a59=function(_0x18904f,_0x1999b0){_0x18904f=_0x18904f-0x0;var _0x1fc705=_0xa593[_0x18904f];return _0x1fc705;};'use strict';var multer=require('multer');var util=require(_0x3a59('0x0'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0x3a59('0x1'));var router=express[_0x3a59('0x2')]();var fs_extra=require('fs-extra');var auth=require(_0x3a59('0x3'));var interaction=require(_0x3a59('0x4'));var config=require(_0x3a59('0x5'));var controller=require(_0x3a59('0x6'));router[_0x3a59('0x7')]('/',auth[_0x3a59('0x8')](),controller['index']);router[_0x3a59('0x7')](_0x3a59('0x9'),auth[_0x3a59('0x8')](),controller['describe']);router[_0x3a59('0x7')](_0x3a59('0xa'),auth[_0x3a59('0x8')](),controller[_0x3a59('0xb')]);router[_0x3a59('0xc')]('/',auth['isAuthenticated'](),controller[_0x3a59('0xd')]);router[_0x3a59('0xe')](_0x3a59('0xa'),auth[_0x3a59('0x8')](),controller[_0x3a59('0xf')]);router[_0x3a59('0x10')]('/:id',auth[_0x3a59('0x8')](),controller[_0x3a59('0x11')]);module[_0x3a59('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x746c=['Do\x20you\x20want\x20to\x20close\x20the\x20interaction?','Form\x20properly\x20submitted','Form\x20submission\x20error','Note','Type\x20a\x20message','Thanks\x20you\x20for\x20your\x20time!','Skip','Feedback','star','thumb','name','input','getDataValue','onlineForm','parse','setDataValue','stringify','Comments','Leave\x20your\x20comments','offlineForm','All\x20of\x20our\x20agents\x20are\x20busy\x20at\x20this\x20time.\x20Your\x20chat\x20is\x20very\x20important\x20to\x20us.','New\x20offline\x20message\x20from\x20websiteName','You\x20received\x20a\x20new\x20offline\x20message\x20from\x20websiteName.\x20Here\x20you\x20can\x20find\x20the\x20details\x20of\x20the\x20request:','Your\x20request\x20has\x20not\x20been\x20processed.','Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}','bottom_right','#fafafa','System','mandatoryDispositionPauseId','Generated\x20by\x20XCALLY\x20Motion','Meeting\x20generated\x20for\x20interaction\x20#{{interaction.id}}\x20by\x20{{agent.name}}','randomstring','exports','STRING','address','email','Agent','#011F6A','#ffffff','INTEGER','BOOLEAN','ENUM','rounded','squared','Send','Contact\x20us','Powered\x20by\x20xCALLY','TEXT'];(function(_0x43c758,_0x290424){var _0x18d46e=function(_0x395d4a){while(--_0x395d4a){_0x43c758['push'](_0x43c758['shift']());}};_0x18d46e(++_0x290424);}(_0x746c,0x7f));var _0xc746=function(_0x58b603,_0x450f6d){_0x58b603=_0x58b603-0x0;var _0xf76126=_0x746c[_0x58b603];return _0xf76126;};'use strict';var Sequelize=require('sequelize');var rs=require(_0xc746('0x0'));module[_0xc746('0x1')]={'name':{'type':Sequelize['STRING'],'allowNull':![]},'address':{'type':Sequelize[_0xc746('0x2')],'allowNull':![],'unique':_0xc746('0x3')},'description':{'type':Sequelize['STRING']},'mapKey':{'type':Sequelize[_0xc746('0x2')],'defaultValue':_0xc746('0x4')},'mapKeyOffline':{'type':Sequelize[_0xc746('0x2')],'defaultValue':_0xc746('0x4')},'key':{'type':Sequelize[_0xc746('0x2')],'allowNull':![]},'agentAlias':{'type':Sequelize[_0xc746('0x2')],'defaultValue':_0xc746('0x5')},'customerAlias':{'type':Sequelize[_0xc746('0x2')],'defaultValue':'Me'},'color':{'type':Sequelize[_0xc746('0x2')],'allowNull':![],'defaultValue':_0xc746('0x6'),'validate':{'notEmpty':!![]}},'color_button':{'type':Sequelize[_0xc746('0x2')],'allowNull':![],'defaultValue':_0xc746('0x6'),'validate':{'notEmpty':!![]}},'textColor':{'type':Sequelize[_0xc746('0x2')],'allowNull':![],'defaultValue':_0xc746('0x7'),'validate':{'notEmpty':!![]}},'fontSize':{'type':Sequelize[_0xc746('0x8')],'defaultValue':0xf},'remote':{'type':Sequelize[_0xc746('0x2')]},'animation':{'type':Sequelize[_0xc746('0x9')],'defaultValue':!![]},'header_shape':{'type':Sequelize[_0xc746('0xa')](_0xc746('0xb'),_0xc746('0xc')),'defaultValue':'rounded'},'header_online':{'type':Sequelize[_0xc746('0x2')],'defaultValue':'We\x20are\x20here!'},'start_chat_button':{'type':Sequelize[_0xc746('0x2')],'defaultValue':'Chat'},'offline_chat_button':{'type':Sequelize['STRING'],'defaultValue':_0xc746('0xd')},'header_offline':{'type':Sequelize[_0xc746('0x2')],'defaultValue':_0xc746('0xe')},'download_transcript':{'type':Sequelize[_0xc746('0x9')],'defaultValue':!![]},'timeout':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'whiteLabel':{'type':Sequelize['STRING'],'defaultValue':_0xc746('0xf')},'defaultWhiteLabel':{'type':Sequelize[_0xc746('0x9')],'defaultValue':!![]},'sitepic':{'type':Sequelize[_0xc746('0x10')]},'closingQuestion':{'type':Sequelize[_0xc746('0x2')],'defaultValue':_0xc746('0x11')},'formSubmitSuccessMessage':{'type':Sequelize[_0xc746('0x2')],'defaultValue':_0xc746('0x12')},'formSubmitFailureMessage':{'type':Sequelize['STRING'],'defaultValue':_0xc746('0x13')},'noteTitle':{'type':Sequelize['STRING'],'defaultValue':_0xc746('0x14')},'placeholderMessage':{'type':Sequelize[_0xc746('0x2')],'defaultValue':_0xc746('0x15')},'closingMessage':{'type':Sequelize[_0xc746('0x2')],'defaultValue':_0xc746('0x16')},'closingMessageButton':{'type':Sequelize['STRING'],'defaultValue':_0xc746('0xd')},'skipMessageButton':{'type':Sequelize[_0xc746('0x2')],'defaultValue':_0xc746('0x17')},'conditionAgreement':{'type':Sequelize[_0xc746('0x9')],'defaultValue':![]},'enableRating':{'type':Sequelize[_0xc746('0x9')],'defaultValue':![]},'enableFeedback':{'type':Sequelize[_0xc746('0x9')],'defaultValue':![]},'enableSendButton':{'type':Sequelize[_0xc746('0x9')],'defaultValue':![]},'feedbackTitle':{'type':Sequelize[_0xc746('0x2')],'defaultValue':_0xc746('0x18')},'ratingType':{'type':Sequelize[_0xc746('0xa')](_0xc746('0x19'),_0xc746('0x1a')),'defaultValue':_0xc746('0x19')},'ratingStarsNumber':{'type':Sequelize['INTEGER'],'defaultValue':0x5},'onlineForm':{'type':Sequelize['TEXT'],'defaultValue':function(){return JSON['stringify']({'items':[{'type':'input','variable':null,'config':{'placeholder':_0xc746('0x1b'),'type':'text','required':!![]},'props':{'title':'name','helpText':''}},{'type':_0xc746('0x1c'),'props':{'title':'email','helpText':''},'config':{'required':!![],'placeholder':_0xc746('0x4'),'type':_0xc746('0x4')},'variable':null}],'fromKey':0x1});},'get':function(){return this[_0xc746('0x1d')](_0xc746('0x1e'))?JSON[_0xc746('0x1f')](this['getDataValue'](_0xc746('0x1e'))):{};},'set':function(_0x19671a){return this[_0xc746('0x20')](_0xc746('0x1e'),JSON[_0xc746('0x21')](_0x19671a));}},'offlineForm':{'type':Sequelize[_0xc746('0x10')],'defaultValue':function(){return JSON[_0xc746('0x21')]({'items':[{'type':'input','props':{'title':_0xc746('0x4'),'helpText':''},'config':{'required':!![],'placeholder':_0xc746('0x4'),'type':'email'},'variable':null},{'type':'textarea','config':{'placeholder':'Comments'},'props':{'title':_0xc746('0x22'),'helpText':_0xc746('0x23')}}],'fromKey':0x0});},'get':function(){return this[_0xc746('0x1d')](_0xc746('0x24'))?JSON['parse'](this[_0xc746('0x1d')](_0xc746('0x24'))):{};},'set':function(_0x1520cf){return this[_0xc746('0x20')](_0xc746('0x24'),JSON[_0xc746('0x21')](_0x1520cf));}},'token':{'type':Sequelize[_0xc746('0x2')],'defaultValue':function(){return rs['generate']();}},'autoclose':{'type':Sequelize[_0xc746('0x9')],'defaultValue':!![]},'enableCustomerWriting':{'type':Sequelize[_0xc746('0x9')],'defaultValue':![]},'forwardTranscript':{'type':Sequelize[_0xc746('0x9')],'defaultValue':![]},'forwardTranscriptMessage':{'type':Sequelize[_0xc746('0x2')]},'forwardOffline':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'forwardOfflineAddress':{'type':Sequelize['STRING']},'waitingTitle':{'type':Sequelize[_0xc746('0x2')],'defaultValue':_0xc746('0x25')},'waitingMessage':{'type':Sequelize[_0xc746('0x2')],'defaultValue':'Please\x20hold\x20and\x20we\x20will\x20answer\x20your\x20request\x20as\x20soon\x20as\x20possible.'},'offlineMessageSubject':{'type':Sequelize[_0xc746('0x2')],'defaultValue':_0xc746('0x26')},'offlineMessageBody':{'type':Sequelize[_0xc746('0x2')],'defaultValue':_0xc746('0x27')},'enableUnmanagedNote':{'type':Sequelize[_0xc746('0x9')],'defaultValue':!![]},'unmanagedMessage':{'type':Sequelize['STRING'],'defaultValue':_0xc746('0x28')},'skipUnmanaged':{'type':Sequelize[_0xc746('0x2')],'defaultValue':_0xc746('0x17')},'sendUnmanaged':{'type':Sequelize[_0xc746('0x2')],'defaultValue':_0xc746('0xd')},'enableCustomerAttachment':{'type':Sequelize[_0xc746('0x9')],'defaultValue':![]},'enableCustomerCheckmarks':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'agentAvatar':{'type':Sequelize[_0xc746('0x10')]},'showAgentAvatar':{'type':Sequelize[_0xc746('0x9')],'defaultValue':![]},'timezone':{'type':Sequelize[_0xc746('0x2')]},'notificationTemplate':{'type':Sequelize[_0xc746('0x10')],'defaultValue':function(){return _0xc746('0x29');}},'notificationSound':{'type':Sequelize[_0xc746('0x9')],'defaultValue':!![]},'notificationShake':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'hideWhenOffline':{'type':Sequelize[_0xc746('0x9')],'defaultValue':![]},'agentIdentifier':{'type':Sequelize[_0xc746('0x2')],'defaultValue':'website_alias'},'waitForTheAssignedAgent':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'alignment':{'type':Sequelize[_0xc746('0x2')],'defaultValue':_0xc746('0x2a')},'verticalAlignment':{'type':Sequelize[_0xc746('0x8')],'defaultValue':0x1e},'messagesAlignment':{'type':Sequelize['STRING'],'defaultValue':'alternate'},'defaultTitle':{'type':Sequelize[_0xc746('0x2')]},'customerAvatar':{'type':Sequelize[_0xc746('0x10')]},'showCustomerAvatar':{'type':Sequelize[_0xc746('0x9')],'defaultValue':![]},'messageFontSize':{'type':Sequelize['INTEGER'],'defaultValue':0xc},'backgroundColor':{'type':Sequelize[_0xc746('0x2')],'allowNull':![],'defaultValue':_0xc746('0x2b'),'validate':{'notEmpty':!![]}},'queueTransfer':{'type':Sequelize[_0xc746('0x9')],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize[_0xc746('0x8')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'systemAlias':{'type':Sequelize[_0xc746('0x2')],'defaultValue':_0xc746('0x2c')},'systemAvatar':{'type':Sequelize[_0xc746('0x10')]},'mandatoryDispositionPauseId':{'type':Sequelize[_0xc746('0x8')],'comment':'Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled'},'mandatoryDisposition':{'type':Sequelize[_0xc746('0x9')],'defaultValue':![],'comment':'Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','set':function(_0x454d2b){if(!_0x454d2b)this[_0xc746('0x20')](_0xc746('0x2d'),null);this[_0xc746('0x20')]('mandatoryDisposition',_0x454d2b);}},'vidaooEscalation':{'type':Sequelize[_0xc746('0x9')],'defaultValue':![]},'vidaooApiKey':{'type':Sequelize[_0xc746('0x2')]},'vidaooTopic':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0xc746('0x2e')},'vidaooNote':{'type':Sequelize[_0xc746('0x2')],'defaultValue':function(){return _0xc746('0x2f');}},'vidaooMetadata':{'type':Sequelize[_0xc746('0x10')],'defaultValue':null},'openNewInteraction':{'type':Sequelize[_0xc746('0x9')],'defaultValue':![],'allowNull':!![]},'subjectOffline':{'type':Sequelize[_0xc746('0x10')]}};
\ No newline at end of file
+var _0x923a=['#ffffff','INTEGER','BOOLEAN','ENUM','rounded','We\x20are\x20here!','Chat','Send','Contact\x20us','Powered\x20by\x20xCALLY','TEXT','Do\x20you\x20want\x20to\x20close\x20the\x20interaction?','Form\x20properly\x20submitted','Form\x20submission\x20error','Note','Type\x20a\x20message','Thanks\x20you\x20for\x20your\x20time!','Skip','Feedback','star','input','name','text','onlineForm','getDataValue','stringify','Comments','Leave\x20your\x20comments','offlineForm','parse','generate','All\x20of\x20our\x20agents\x20are\x20busy\x20at\x20this\x20time.\x20Your\x20chat\x20is\x20very\x20important\x20to\x20us.','Please\x20hold\x20and\x20we\x20will\x20answer\x20your\x20request\x20as\x20soon\x20as\x20possible.','New\x20offline\x20message\x20from\x20websiteName','You\x20received\x20a\x20new\x20offline\x20message\x20from\x20websiteName.\x20Here\x20you\x20can\x20find\x20the\x20details\x20of\x20the\x20request:','Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}','website_alias','bottom_right','alternate','#fafafa','System','Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','setDataValue','mandatoryDispositionPauseId','mandatoryDisposition','Generated\x20by\x20XCALLY\x20Motion','Meeting\x20generated\x20for\x20interaction\x20#{{interaction.id}}\x20by\x20{{agent.name}}','sequelize','randomstring','exports','STRING','email','Agent'];(function(_0x4f25e6,_0x5e0cc2){var _0x106dc9=function(_0x1e6032){while(--_0x1e6032){_0x4f25e6['push'](_0x4f25e6['shift']());}};_0x106dc9(++_0x5e0cc2);}(_0x923a,0x108));var _0xa923=function(_0x2be8c2,_0x14a4b5){_0x2be8c2=_0x2be8c2-0x0;var _0x97f531=_0x923a[_0x2be8c2];return _0x97f531;};'use strict';var Sequelize=require(_0xa923('0x0'));var rs=require(_0xa923('0x1'));module[_0xa923('0x2')]={'name':{'type':Sequelize[_0xa923('0x3')],'allowNull':![]},'address':{'type':Sequelize[_0xa923('0x3')],'allowNull':![],'unique':'address'},'description':{'type':Sequelize[_0xa923('0x3')]},'mapKey':{'type':Sequelize[_0xa923('0x3')],'defaultValue':'email'},'mapKeyOffline':{'type':Sequelize['STRING'],'defaultValue':_0xa923('0x4')},'key':{'type':Sequelize[_0xa923('0x3')],'allowNull':![]},'agentAlias':{'type':Sequelize['STRING'],'defaultValue':_0xa923('0x5')},'customerAlias':{'type':Sequelize[_0xa923('0x3')],'defaultValue':'Me'},'color':{'type':Sequelize[_0xa923('0x3')],'allowNull':![],'defaultValue':'#011F6A','validate':{'notEmpty':!![]}},'color_button':{'type':Sequelize[_0xa923('0x3')],'allowNull':![],'defaultValue':'#011F6A','validate':{'notEmpty':!![]}},'textColor':{'type':Sequelize[_0xa923('0x3')],'allowNull':![],'defaultValue':_0xa923('0x6'),'validate':{'notEmpty':!![]}},'fontSize':{'type':Sequelize[_0xa923('0x7')],'defaultValue':0xf},'remote':{'type':Sequelize[_0xa923('0x3')]},'animation':{'type':Sequelize[_0xa923('0x8')],'defaultValue':!![]},'header_shape':{'type':Sequelize[_0xa923('0x9')]('rounded','squared'),'defaultValue':_0xa923('0xa')},'header_online':{'type':Sequelize[_0xa923('0x3')],'defaultValue':_0xa923('0xb')},'start_chat_button':{'type':Sequelize[_0xa923('0x3')],'defaultValue':_0xa923('0xc')},'offline_chat_button':{'type':Sequelize['STRING'],'defaultValue':_0xa923('0xd')},'header_offline':{'type':Sequelize[_0xa923('0x3')],'defaultValue':_0xa923('0xe')},'download_transcript':{'type':Sequelize[_0xa923('0x8')],'defaultValue':!![]},'timeout':{'type':Sequelize[_0xa923('0x7')],'defaultValue':0x0},'whiteLabel':{'type':Sequelize[_0xa923('0x3')],'defaultValue':_0xa923('0xf')},'defaultWhiteLabel':{'type':Sequelize[_0xa923('0x8')],'defaultValue':!![]},'sitepic':{'type':Sequelize[_0xa923('0x10')]},'closingQuestion':{'type':Sequelize[_0xa923('0x3')],'defaultValue':_0xa923('0x11')},'formSubmitSuccessMessage':{'type':Sequelize[_0xa923('0x3')],'defaultValue':_0xa923('0x12')},'formSubmitFailureMessage':{'type':Sequelize[_0xa923('0x3')],'defaultValue':_0xa923('0x13')},'noteTitle':{'type':Sequelize[_0xa923('0x3')],'defaultValue':_0xa923('0x14')},'placeholderMessage':{'type':Sequelize[_0xa923('0x3')],'defaultValue':_0xa923('0x15')},'closingMessage':{'type':Sequelize[_0xa923('0x3')],'defaultValue':_0xa923('0x16')},'closingMessageButton':{'type':Sequelize[_0xa923('0x3')],'defaultValue':_0xa923('0xd')},'skipMessageButton':{'type':Sequelize['STRING'],'defaultValue':_0xa923('0x17')},'conditionAgreement':{'type':Sequelize[_0xa923('0x8')],'defaultValue':![]},'enableRating':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'enableFeedback':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'enableSendButton':{'type':Sequelize[_0xa923('0x8')],'defaultValue':![]},'feedbackTitle':{'type':Sequelize[_0xa923('0x3')],'defaultValue':_0xa923('0x18')},'ratingType':{'type':Sequelize['ENUM']('star','thumb'),'defaultValue':_0xa923('0x19')},'ratingStarsNumber':{'type':Sequelize[_0xa923('0x7')],'defaultValue':0x5},'onlineForm':{'type':Sequelize[_0xa923('0x10')],'defaultValue':function(){return JSON['stringify']({'items':[{'type':_0xa923('0x1a'),'variable':null,'config':{'placeholder':_0xa923('0x1b'),'type':_0xa923('0x1c'),'required':!![]},'props':{'title':_0xa923('0x1b'),'helpText':''}},{'type':_0xa923('0x1a'),'props':{'title':_0xa923('0x4'),'helpText':''},'config':{'required':!![],'placeholder':'email','type':_0xa923('0x4')},'variable':null}],'fromKey':0x1});},'get':function(){return this['getDataValue'](_0xa923('0x1d'))?JSON['parse'](this[_0xa923('0x1e')]('onlineForm')):{};},'set':function(_0x51f938){return this['setDataValue']('onlineForm',JSON[_0xa923('0x1f')](_0x51f938));}},'offlineForm':{'type':Sequelize[_0xa923('0x10')],'defaultValue':function(){return JSON['stringify']({'items':[{'type':'input','props':{'title':_0xa923('0x4'),'helpText':''},'config':{'required':!![],'placeholder':_0xa923('0x4'),'type':_0xa923('0x4')},'variable':null},{'type':'textarea','config':{'placeholder':'Comments'},'props':{'title':_0xa923('0x20'),'helpText':_0xa923('0x21')}}],'fromKey':0x0});},'get':function(){return this['getDataValue'](_0xa923('0x22'))?JSON[_0xa923('0x23')](this['getDataValue'](_0xa923('0x22'))):{};},'set':function(_0x88f162){return this['setDataValue'](_0xa923('0x22'),JSON['stringify'](_0x88f162));}},'token':{'type':Sequelize[_0xa923('0x3')],'defaultValue':function(){return rs[_0xa923('0x24')]();}},'autoclose':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'enableCustomerWriting':{'type':Sequelize[_0xa923('0x8')],'defaultValue':![]},'forwardTranscript':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'forwardTranscriptMessage':{'type':Sequelize['STRING']},'forwardOffline':{'type':Sequelize[_0xa923('0x8')],'defaultValue':![]},'forwardOfflineAddress':{'type':Sequelize[_0xa923('0x3')]},'waitingTitle':{'type':Sequelize[_0xa923('0x3')],'defaultValue':_0xa923('0x25')},'waitingMessage':{'type':Sequelize[_0xa923('0x3')],'defaultValue':_0xa923('0x26')},'offlineMessageSubject':{'type':Sequelize[_0xa923('0x3')],'defaultValue':_0xa923('0x27')},'offlineMessageBody':{'type':Sequelize[_0xa923('0x3')],'defaultValue':_0xa923('0x28')},'enableUnmanagedNote':{'type':Sequelize[_0xa923('0x8')],'defaultValue':!![]},'unmanagedMessage':{'type':Sequelize['STRING'],'defaultValue':'Your\x20request\x20has\x20not\x20been\x20processed.'},'skipUnmanaged':{'type':Sequelize[_0xa923('0x3')],'defaultValue':'Skip'},'sendUnmanaged':{'type':Sequelize['STRING'],'defaultValue':_0xa923('0xd')},'enableCustomerAttachment':{'type':Sequelize[_0xa923('0x8')],'defaultValue':![]},'enableCustomerCheckmarks':{'type':Sequelize[_0xa923('0x8')],'defaultValue':![]},'agentAvatar':{'type':Sequelize[_0xa923('0x10')]},'showAgentAvatar':{'type':Sequelize[_0xa923('0x8')],'defaultValue':![]},'timezone':{'type':Sequelize[_0xa923('0x3')]},'notificationTemplate':{'type':Sequelize[_0xa923('0x10')],'defaultValue':function(){return _0xa923('0x29');}},'notificationSound':{'type':Sequelize[_0xa923('0x8')],'defaultValue':!![]},'notificationShake':{'type':Sequelize[_0xa923('0x8')],'defaultValue':![]},'hideWhenOffline':{'type':Sequelize[_0xa923('0x8')],'defaultValue':![]},'agentIdentifier':{'type':Sequelize['STRING'],'defaultValue':_0xa923('0x2a')},'waitForTheAssignedAgent':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'alignment':{'type':Sequelize[_0xa923('0x3')],'defaultValue':_0xa923('0x2b')},'verticalAlignment':{'type':Sequelize[_0xa923('0x7')],'defaultValue':0x1e},'messagesAlignment':{'type':Sequelize['STRING'],'defaultValue':_0xa923('0x2c')},'defaultTitle':{'type':Sequelize[_0xa923('0x3')]},'customerAvatar':{'type':Sequelize['TEXT']},'showCustomerAvatar':{'type':Sequelize[_0xa923('0x8')],'defaultValue':![]},'messageFontSize':{'type':Sequelize[_0xa923('0x7')],'defaultValue':0xc},'backgroundColor':{'type':Sequelize[_0xa923('0x3')],'allowNull':![],'defaultValue':_0xa923('0x2d'),'validate':{'notEmpty':!![]}},'queueTransfer':{'type':Sequelize[_0xa923('0x8')],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize[_0xa923('0x7')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'systemAlias':{'type':Sequelize[_0xa923('0x3')],'defaultValue':_0xa923('0x2e')},'systemAvatar':{'type':Sequelize[_0xa923('0x10')]},'mandatoryDispositionPauseId':{'type':Sequelize[_0xa923('0x7')],'comment':_0xa923('0x2f')},'mandatoryDisposition':{'type':Sequelize['BOOLEAN'],'defaultValue':![],'comment':_0xa923('0x30'),'set':function(_0x14dd0){if(!_0x14dd0)this[_0xa923('0x31')](_0xa923('0x32'),null);this['setDataValue'](_0xa923('0x33'),_0x14dd0);}},'vidaooEscalation':{'type':Sequelize[_0xa923('0x8')],'defaultValue':![]},'vidaooApiKey':{'type':Sequelize[_0xa923('0x3')]},'vidaooTopic':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0xa923('0x34')},'vidaooNote':{'type':Sequelize[_0xa923('0x3')],'defaultValue':function(){return _0xa923('0x35');}},'vidaooMetadata':{'type':Sequelize[_0xa923('0x10')],'defaultValue':null},'openNewInteraction':{'type':Sequelize['BOOLEAN'],'defaultValue':![],'allowNull':!![]},'subjectOffline':{'type':Sequelize[_0xa923('0x10')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x501e=['spread','messageId','created','autoclose','push','close','unmanaged','*,*,*,*','ChatMessage','AttachmentId','UserId','unshift','waitForTheAssignedAgent','Start','startRouting','EventManager','offline','CompanyId','send','mapKeyOffline','mapKeyOffline\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','mapKeyOffline\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','CmList','MailAccount','ListId','findOrCreate','readFileSync','server/files/templates/chatOfflineMessage.ejs','utf8','offlineMessageBody','ChatOfflineMessage','mimetype','files','attachments','offline-chat','openNewInteraction','bulkCreate','MailServerOut','Smtp','forwardOfflineAddress','service','host','port','secure','authentication','pass','SendMail','sendMail','\x22%s\x22\x20<%s>','email','offlineMessageSubject','MailAccountId','originalname','subjectOffline','mapValues','Chat','NotifyMailAccount','server','Could\x20not\x20remove\x20attachment\x20file','addInteraction','omit','getInteractions','Contact','User','Owner','fullname','internal','Tag','Tags','color','tag','Command','getSnippet','timezone','iftime\x20%s,%s','interval','iftime\x20%s','true','info','ONLINE','OFFLINE','inspect','No\x20timezone','Interval','Intervals','increment','chatLicenseExceeded','all','some','remote','x-real-ip','connection','remoteAddress','virtual','replace','render','alignment','textColor','color_button','backgroundColor','addApplications','sequelize','transaction','findAndCountAll','getApplications','addProactiveActions','getProactiveActions','ChatProactiveAction','false','offlineForm','onlineForm','fromKey','getOfflineMessages','Attachment','Attachments','addAgents','emit','removeAgents','userChatWebsite:remove','getAgents','eml-format','rimraf','zip-dir','moment','bluebird','mustache','sox','ejs','fs-extra','lodash','squel','crypto','desk.js','to-csv','querystring','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','redis','socket.io-emitter','./chatWebsite.socket','register','client','ChatWebsite,\x20%s,\x20%s','request\x20sent','debug','stringify','code','error','message','status','end','json','offset','undefined','count','limit','set','apply','reject','save','update','then','get','ChatWebsites','UserProfileResource','destroy','sendStatus','stack','name','index','Pause','mandatoryDispositionPause','ChatWebsite','rawAttributes','type','key','model','map','query','filters','intersection','attributes','length','hasOwnProperty','order','sort','where','filter','merge','VIRTUAL','options','includeAll','include','show','params','keys','fields','catch','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','find','userProfileId','autoAssociation','describe','ChatWebsiteId','findOne','Disposition','pick','findAll','rows','removeDispositions','ids','addAnswer','CannedAnswer','getAnswers','nolimit','removeAnswers','addLogo','sitepic','file','filename','addAvatar','agentAvatar','addCustomerAvatar','customerAvatar','addSystemAvatar','systemAvatar','getLogo','join','getLicense','custom','isNil','root','server/files/images/logos/','download','server/files/images/avatars/default_avatar.png','server/files/images/avatars/','getCustomerAvatar','server/files/images/avatars/customer_avatar.png','showCustomerAvatar','existsSync','getSystemAvatar','server/files/images/avatars/system_avatar.png','notify','user-agent-parser','setUA','headers','user-agent','getResult','chat','CmContact','Sequelize','ValidationError','no\x20available\x20attributes','createdAt','updatedAt','difference','from','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','List','Contacts','DESC','ChatApplication','applications','Applications','list','orderBy','priority','asc','account','defaults','contact','customerIp','cf-connecting-ip','x-forwarded-for','first','split','firstName','lastName','x-real-port','referer','browser','version','%s\x20%s','unknown','format','device','vendor','%s\x20%s\x20%s','threadId','ChatInteraction','externalUrl','ContactId','interaction'];(function(_0xdea41a,_0x552987){var _0x15d0d8=function(_0x1e0d0b){while(--_0x1e0d0b){_0xdea41a['push'](_0xdea41a['shift']());}};_0x15d0d8(++_0x552987);}(_0x501e,0x1a7));var _0xe501=function(_0x3fbe61,_0x17093b){_0x3fbe61=_0x3fbe61-0x0;var _0x3450b3=_0x501e[_0x3fbe61];return _0x3450b3;};'use strict';var emlformat=require(_0xe501('0x0'));var rimraf=require(_0xe501('0x1'));var zipdir=require(_0xe501('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xe501('0x3'));var BPromise=require(_0xe501('0x4'));var Mustache=require(_0xe501('0x5'));var util=require('util');var path=require('path');var sox=require(_0xe501('0x6'));var csv=require('to-csv');var ejs=require(_0xe501('0x7'));var fs=require('fs');var fs_extra=require(_0xe501('0x8'));var _=require(_0xe501('0x9'));var squel=require(_0xe501('0xa'));var crypto=require(_0xe501('0xb'));var jsforce=require('jsforce');var deskjs=require(_0xe501('0xc'));var toCsv=require(_0xe501('0xd'));var querystring=require(_0xe501('0xe'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0xe501('0xf'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xe501('0x10'))('api');var utils=require(_0xe501('0x11'));var config=require(_0xe501('0x12'));var licenseUtil=require(_0xe501('0x13'));var db=require('../../mysqldb')['db'];config[_0xe501('0x14')]=_['defaults'](config[_0xe501('0x14')],{'host':'localhost','port':0x18eb});var socket=require(_0xe501('0x15'))(new Redis(config[_0xe501('0x14')]));require(_0xe501('0x16'))[_0xe501('0x17')](socket);var jayson=require('jayson/promise');var client=jayson[_0xe501('0x18')]['http']({'port':0x232c});var client9002=jayson[_0xe501('0x18')]['http']({'port':0x232a});var client9003=jayson[_0xe501('0x18')]['http']({'port':0x232b});var client9001=jayson['client']['http']({'port':0x2329});function respondWithRpcPromise(_0x59d932,_0x5e0153,_0x581dda,_0x351e0b){return new BPromise(function(_0x1e603f,_0x1f9c16){var _0x5347ab=_0x351e0b||client;return _0x5347ab['request'](_0x59d932,_0x581dda)['then'](function(_0x1fbe17){logger['info'](_0xe501('0x19'),_0x5e0153,_0xe501('0x1a'));logger[_0xe501('0x1b')]('ChatWebsite,\x20%s,\x20%s,\x20%s',_0x5e0153,_0xe501('0x1a'),JSON[_0xe501('0x1c')](_0x1fbe17));if(_0x1fbe17['error']){if(_0x1fbe17['error'][_0xe501('0x1d')]===0x1f4){logger[_0xe501('0x1e')](_0xe501('0x19'),_0x5e0153,_0x1fbe17['error']['message']);return _0x1f9c16(_0x1fbe17['error'][_0xe501('0x1f')]);}logger[_0xe501('0x1e')](_0xe501('0x19'),_0x5e0153,_0x1fbe17[_0xe501('0x1e')][_0xe501('0x1f')]);return _0x1e603f(_0x1fbe17['error'][_0xe501('0x1f')]);}else{logger['info'](_0xe501('0x19'),_0x5e0153,'request\x20sent');_0x1e603f(_0x1fbe17['result'][_0xe501('0x1f')]);}})['catch'](function(_0x41df82){logger[_0xe501('0x1e')](_0xe501('0x19'),_0x5e0153,_0x41df82);_0x1f9c16(_0x41df82);});});}function respondWithStatusCode(_0x2592f9,_0x7310d0){_0x7310d0=_0x7310d0||0xcc;return function(_0x51aad5){if(_0x51aad5){return _0x2592f9['sendStatus'](_0x7310d0);}return _0x2592f9[_0xe501('0x20')](_0x7310d0)[_0xe501('0x21')]();};}function respondWithResult(_0x22f81e,_0x23c98e){_0x23c98e=_0x23c98e||0xc8;return function(_0x1cb53f){if(_0x1cb53f){return _0x22f81e['status'](_0x23c98e)[_0xe501('0x22')](_0x1cb53f);}};}function respondWithFilteredResult(_0x44225b,_0x5d95dd){return function(_0x2d3b85){if(_0x2d3b85){var _0x4100dc=typeof _0x5d95dd[_0xe501('0x23')]===_0xe501('0x24')&&typeof _0x5d95dd['limit']==='undefined';var _0x48be4a=_0x2d3b85[_0xe501('0x25')];var _0x24b75c=_0x4100dc?0x0:_0x5d95dd[_0xe501('0x23')];var _0x5060db=_0x4100dc?_0x2d3b85[_0xe501('0x25')]:_0x5d95dd[_0xe501('0x23')]+_0x5d95dd[_0xe501('0x26')];var _0x4520d3;if(_0x5060db>=_0x48be4a){_0x5060db=_0x48be4a;_0x4520d3=0xc8;}else{_0x4520d3=0xce;}_0x44225b[_0xe501('0x20')](_0x4520d3);return _0x44225b[_0xe501('0x27')]('Content-Range',_0x24b75c+'-'+_0x5060db+'/'+_0x48be4a)['json'](_0x2d3b85);}return null;};}function patchUpdates(_0x22b511){return function(_0x40b9b3){try{jsonpatch[_0xe501('0x28')](_0x40b9b3,_0x22b511,!![]);}catch(_0x32a103){return BPromise[_0xe501('0x29')](_0x32a103);}return _0x40b9b3[_0xe501('0x2a')]();};}function saveUpdates(_0x54cca2,_0x498c44){return function(_0x589d37){if(_0x589d37){return _0x589d37[_0xe501('0x2b')](_0x54cca2)[_0xe501('0x2c')](function(_0x4dbe14){return _0x4dbe14;});}return null;};}function removeEntity(_0x515182,_0x36143d){return function(_0x3c1379){if(_0x3c1379){return _0x3c1379['destroy']()[_0xe501('0x2c')](function(){var _0x1cbb74=_0x3c1379[_0xe501('0x2d')]({'plain':!![]});var _0x193a74=_0xe501('0x2e');return db[_0xe501('0x2f')][_0xe501('0x30')]({'where':{'type':_0x193a74,'resourceId':_0x1cbb74['id']}})[_0xe501('0x2c')](function(){return _0x3c1379;});})[_0xe501('0x2c')](function(){_0x515182[_0xe501('0x20')](0xcc)[_0xe501('0x21')]();});}};}function handleEntityNotFound(_0x9316c2,_0x590198){return function(_0x48088c){if(!_0x48088c){_0x9316c2[_0xe501('0x31')](0x194);}return _0x48088c;};}function handleError(_0x1a8e53,_0x2120fa){_0x2120fa=_0x2120fa||0x1f4;return function(_0x2f2e08){logger['error'](_0x2f2e08[_0xe501('0x32')]);if(_0x2f2e08['name']){delete _0x2f2e08[_0xe501('0x33')];}_0x1a8e53[_0xe501('0x20')](_0x2120fa)['send'](_0x2f2e08);};}exports[_0xe501('0x34')]=function(_0x4c6906,_0x5a7f00){var _0xd7931c={'include':[{'model':db[_0xe501('0x35')],'as':_0xe501('0x36')}]},_0x646e18={},_0xbae3={'count':0x0,'rows':[]};var _0x1dbbc5=_['map'](db[_0xe501('0x37')][_0xe501('0x38')],function(_0x261376){return{'name':_0x261376['fieldName'],'type':_0x261376[_0xe501('0x39')][_0xe501('0x3a')]};});_0x646e18[_0xe501('0x3b')]=_[_0xe501('0x3c')](_0x1dbbc5,_0xe501('0x33'));_0x646e18[_0xe501('0x3d')]=_['keys'](_0x4c6906[_0xe501('0x3d')]);_0x646e18[_0xe501('0x3e')]=_[_0xe501('0x3f')](_0x646e18['model'],_0x646e18[_0xe501('0x3d')]);_0xd7931c['attributes']=_[_0xe501('0x3f')](_0x646e18[_0xe501('0x3b')],qs['fields'](_0x4c6906[_0xe501('0x3d')]['fields']));_0xd7931c[_0xe501('0x40')]=_0xd7931c[_0xe501('0x40')][_0xe501('0x41')]?_0xd7931c['attributes']:_0x646e18[_0xe501('0x3b')];if(!_0x4c6906[_0xe501('0x3d')][_0xe501('0x42')]('nolimit')){_0xd7931c[_0xe501('0x26')]=qs[_0xe501('0x26')](_0x4c6906[_0xe501('0x3d')][_0xe501('0x26')]);_0xd7931c[_0xe501('0x23')]=qs[_0xe501('0x23')](_0x4c6906[_0xe501('0x3d')]['offset']);}_0xd7931c[_0xe501('0x43')]=qs[_0xe501('0x44')](_0x4c6906[_0xe501('0x3d')]['sort']);_0xd7931c[_0xe501('0x45')]=qs[_0xe501('0x3e')](_['pick'](_0x4c6906[_0xe501('0x3d')],_0x646e18[_0xe501('0x3e')]),_0x1dbbc5);if(_0x4c6906[_0xe501('0x3d')][_0xe501('0x46')]){_0xd7931c[_0xe501('0x45')]=_[_0xe501('0x47')](_0xd7931c['where'],{'$or':_[_0xe501('0x3c')](_0x1dbbc5,function(_0x323675){if(_0x323675[_0xe501('0x39')]!==_0xe501('0x48')){var _0x1f842b={};_0x1f842b[_0x323675[_0xe501('0x33')]]={'$like':'%'+_0x4c6906[_0xe501('0x3d')][_0xe501('0x46')]+'%'};return _0x1f842b;}})});}_0xd7931c=_['merge']({},_0xd7931c,_0x4c6906[_0xe501('0x49')]);var _0x1f6072={'where':_0xd7931c[_0xe501('0x45')]};return db[_0xe501('0x37')]['count'](_0x1f6072)[_0xe501('0x2c')](function(_0x9c3b1c){_0xbae3[_0xe501('0x25')]=_0x9c3b1c;if(_0x4c6906[_0xe501('0x3d')][_0xe501('0x4a')]){_0xd7931c[_0xe501('0x4b')]=[{'all':!![]}];}return db['ChatWebsite']['findAll'](_0xd7931c);})['then'](function(_0x49dba3){_0xbae3['rows']=_0x49dba3;return _0xbae3;})['then'](respondWithFilteredResult(_0x5a7f00,_0xd7931c))['catch'](handleError(_0x5a7f00,null));};exports[_0xe501('0x4c')]=function(_0x44290a,_0x11e33d){var _0x104ef3={'raw':![],'where':{'id':_0x44290a[_0xe501('0x4d')]['id']},'include':[{'model':db[_0xe501('0x35')],'as':_0xe501('0x36')}]},_0x5ac55a={};_0x5ac55a['model']=_[_0xe501('0x4e')](db['ChatWebsite']['rawAttributes']);_0x5ac55a[_0xe501('0x3d')]=_['keys'](_0x44290a[_0xe501('0x3d')]);_0x5ac55a['filters']=_['intersection'](_0x5ac55a[_0xe501('0x3b')],_0x5ac55a[_0xe501('0x3d')]);_0x104ef3[_0xe501('0x40')]=_[_0xe501('0x3f')](_0x5ac55a[_0xe501('0x3b')],qs[_0xe501('0x4f')](_0x44290a[_0xe501('0x3d')][_0xe501('0x4f')]));_0x104ef3[_0xe501('0x40')]=_0x104ef3[_0xe501('0x40')][_0xe501('0x41')]?_0x104ef3['attributes']:_0x5ac55a[_0xe501('0x3b')];if(_0x44290a['query'][_0xe501('0x4a')]){_0x104ef3[_0xe501('0x4b')]=[{'all':!![]}];}_0x104ef3=_[_0xe501('0x47')]({},_0x104ef3,_0x44290a[_0xe501('0x49')]);return db[_0xe501('0x37')]['find'](_0x104ef3)[_0xe501('0x2c')](handleEntityNotFound(_0x11e33d,null))[_0xe501('0x2c')](respondWithResult(_0x11e33d,null))[_0xe501('0x50')](handleError(_0x11e33d,null));};exports['create']=function(_0x244e9b,_0x5caeea){return db[_0xe501('0x37')][_0xe501('0x51')](_0x244e9b[_0xe501('0x52')],{})[_0xe501('0x2c')](function(_0x4488fc){var _0x2086c1=_0x244e9b[_0xe501('0x53')][_0xe501('0x2d')]({'plain':!![]});if(!_0x2086c1)throw new Error(_0xe501('0x54'));if(_0x2086c1[_0xe501('0x55')]==='user'){var _0x4bb65a=_0x4488fc['get']({'plain':!![]});var _0x2ced18=_0xe501('0x2e');return db['UserProfileSection'][_0xe501('0x56')]({'where':{'name':_0x2ced18,'userProfileId':_0x2086c1[_0xe501('0x57')]},'raw':!![]})[_0xe501('0x2c')](function(_0x5505ee){if(_0x5505ee&&_0x5505ee[_0xe501('0x58')]===0x0){return db[_0xe501('0x2f')][_0xe501('0x51')]({'name':_0x4bb65a[_0xe501('0x33')],'resourceId':_0x4bb65a['id'],'type':_0x5505ee[_0xe501('0x33')],'sectionId':_0x5505ee['id']},{})[_0xe501('0x2c')](function(){return _0x4488fc;});}else{return _0x4488fc;}})[_0xe501('0x50')](function(_0x2d799e){logger[_0xe501('0x1e')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x2d799e);throw _0x2d799e;});}return _0x4488fc;})[_0xe501('0x2c')](respondWithResult(_0x5caeea,0xc9))[_0xe501('0x50')](handleError(_0x5caeea,null));};exports[_0xe501('0x2b')]=function(_0x5ae9ee,_0x47d4f3){if(_0x5ae9ee[_0xe501('0x52')]['id']){delete _0x5ae9ee['body']['id'];}return db[_0xe501('0x37')]['find']({'where':{'id':_0x5ae9ee['params']['id']},'include':[{'model':db[_0xe501('0x35')],'as':_0xe501('0x36')}]})[_0xe501('0x2c')](handleEntityNotFound(_0x47d4f3,null))[_0xe501('0x2c')](saveUpdates(_0x5ae9ee[_0xe501('0x52')],null))[_0xe501('0x2c')](respondWithResult(_0x47d4f3,null))['catch'](handleError(_0x47d4f3,null));};exports[_0xe501('0x30')]=function(_0x47400a,_0x14fb5a){return db[_0xe501('0x37')][_0xe501('0x56')]({'where':{'id':_0x47400a['params']['id']}})[_0xe501('0x2c')](handleEntityNotFound(_0x14fb5a,null))[_0xe501('0x2c')](removeEntity(_0x14fb5a,null))['catch'](handleError(_0x14fb5a,null));};exports['describe']=function(_0x21231e,_0x497755){return db['ChatWebsite'][_0xe501('0x59')]()[_0xe501('0x2c')](respondWithResult(_0x497755,null))[_0xe501('0x50')](handleError(_0x497755,null));};exports['addDisposition']=function(_0x40a457,_0x339960,_0x11c3e3){if(_0x40a457[_0xe501('0x52')]['id']){delete _0x40a457[_0xe501('0x52')]['id'];}return db['ChatWebsite'][_0xe501('0x56')]({'where':{'id':_0x40a457[_0xe501('0x4d')]['id']}})[_0xe501('0x2c')](handleEntityNotFound(_0x339960,null))['then'](function(_0x56500e){if(_0x56500e){_0x40a457['body'][_0xe501('0x5a')]=_0x56500e['id'];return db['Disposition'][_0xe501('0x51')](_0x40a457['body']);}})[_0xe501('0x2c')](respondWithResult(_0x339960,null))[_0xe501('0x50')](handleError(_0x339960,null));};exports['getDispositions']=function(_0x100d31,_0x3096e7,_0x237085){var _0x4698a2={'raw':![],'where':{}};var _0x48da30={};var _0x95193={'count':0x0,'rows':[]};return db[_0xe501('0x37')][_0xe501('0x5b')]({'where':{'id':_0x100d31['params']['id']}})[_0xe501('0x2c')](handleEntityNotFound(_0x3096e7,null))[_0xe501('0x2c')](function(_0x5caa85){if(_0x5caa85){_0x48da30[_0xe501('0x3b')]=_[_0xe501('0x4e')](db[_0xe501('0x5c')][_0xe501('0x38')]);_0x48da30[_0xe501('0x3d')]=_['keys'](_0x100d31[_0xe501('0x3d')]);_0x48da30['filters']=_[_0xe501('0x3f')](_0x48da30[_0xe501('0x3b')],_0x48da30[_0xe501('0x3d')]);_0x4698a2[_0xe501('0x40')]=_['intersection'](_0x48da30['model'],qs[_0xe501('0x4f')](_0x100d31[_0xe501('0x3d')]['fields']));_0x4698a2['attributes']=_0x4698a2[_0xe501('0x40')][_0xe501('0x41')]?_0x4698a2[_0xe501('0x40')]:_0x48da30[_0xe501('0x3b')];if(!_0x100d31[_0xe501('0x3d')][_0xe501('0x42')]('nolimit')){_0x4698a2[_0xe501('0x26')]=qs[_0xe501('0x26')](_0x100d31['query']['limit']);_0x4698a2[_0xe501('0x23')]=qs['offset'](_0x100d31['query'][_0xe501('0x23')]);}_0x4698a2['order']=qs[_0xe501('0x44')](_0x100d31[_0xe501('0x3d')][_0xe501('0x44')]);_0x4698a2['where']=qs[_0xe501('0x3e')](_[_0xe501('0x5d')](_0x100d31[_0xe501('0x3d')],_0x48da30[_0xe501('0x3e')]));_0x4698a2[_0xe501('0x45')]['ChatWebsiteId']=_0x5caa85['id'];if(_0x100d31['query'][_0xe501('0x46')]){_0x4698a2[_0xe501('0x45')]=_[_0xe501('0x47')](_0x4698a2['where'],{'$or':_[_0xe501('0x3c')](_0x4698a2[_0xe501('0x40')],function(_0x26eeb3){var _0x3040fb={};_0x3040fb[_0x26eeb3]={'$like':'%'+_0x100d31[_0xe501('0x3d')][_0xe501('0x46')]+'%'};return _0x3040fb;})});}_0x4698a2=_[_0xe501('0x47')]({},_0x4698a2,_0x100d31['options']);return db['Disposition'][_0xe501('0x25')]({'where':_0x4698a2[_0xe501('0x45')]})[_0xe501('0x2c')](function(_0x41e385){_0x95193[_0xe501('0x25')]=_0x41e385;if(_0x100d31[_0xe501('0x3d')][_0xe501('0x4a')]){_0x4698a2['include']=[{'all':!![]}];}return db[_0xe501('0x5c')][_0xe501('0x5e')](_0x4698a2);})['then'](function(_0x1fb0c5){_0x95193[_0xe501('0x5f')]=_0x1fb0c5;return _0x95193;});}})['then'](respondWithFilteredResult(_0x3096e7,_0x4698a2))[_0xe501('0x50')](handleError(_0x3096e7,null));};exports[_0xe501('0x60')]=function(_0x268935,_0x3758f6,_0x297932){return db['ChatWebsite'][_0xe501('0x56')]({'where':{'id':_0x268935[_0xe501('0x4d')]['id']}})['then'](handleEntityNotFound(_0x3758f6,null))['then'](function(_0x4b3d80){if(_0x4b3d80){return _0x4b3d80[_0xe501('0x60')](_0x268935[_0xe501('0x3d')][_0xe501('0x61')]);}})[_0xe501('0x2c')](respondWithStatusCode(_0x3758f6,null))[_0xe501('0x50')](handleError(_0x3758f6,null));};exports[_0xe501('0x62')]=function(_0x3ad7a0,_0x5d8000,_0xbd5cc){if(_0x3ad7a0['body']['id']){delete _0x3ad7a0[_0xe501('0x52')]['id'];}return db[_0xe501('0x37')][_0xe501('0x56')]({'where':{'id':_0x3ad7a0[_0xe501('0x4d')]['id']}})['then'](handleEntityNotFound(_0x5d8000,null))[_0xe501('0x2c')](function(_0x30f46a){if(_0x30f46a){_0x3ad7a0[_0xe501('0x52')][_0xe501('0x5a')]=_0x30f46a['id'];return db[_0xe501('0x63')][_0xe501('0x51')](_0x3ad7a0['body']);}})[_0xe501('0x2c')](respondWithResult(_0x5d8000,null))[_0xe501('0x50')](handleError(_0x5d8000,null));};exports[_0xe501('0x64')]=function(_0x427d70,_0x187cea,_0x2bbd9c){var _0x28cf58={'raw':![],'where':{}};var _0x468565={};var _0x5ddd33={'count':0x0,'rows':[]};return db[_0xe501('0x37')][_0xe501('0x5b')]({'where':{'id':_0x427d70[_0xe501('0x4d')]['id']}})[_0xe501('0x2c')](handleEntityNotFound(_0x187cea,null))[_0xe501('0x2c')](function(_0x3d0d4b){if(_0x3d0d4b){_0x468565[_0xe501('0x3b')]=_[_0xe501('0x4e')](db['CannedAnswer'][_0xe501('0x38')]);_0x468565[_0xe501('0x3d')]=_['keys'](_0x427d70[_0xe501('0x3d')]);_0x468565[_0xe501('0x3e')]=_['intersection'](_0x468565[_0xe501('0x3b')],_0x468565['query']);_0x28cf58[_0xe501('0x40')]=_['intersection'](_0x468565['model'],qs['fields'](_0x427d70[_0xe501('0x3d')][_0xe501('0x4f')]));_0x28cf58[_0xe501('0x40')]=_0x28cf58[_0xe501('0x40')]['length']?_0x28cf58[_0xe501('0x40')]:_0x468565['model'];if(!_0x427d70[_0xe501('0x3d')][_0xe501('0x42')](_0xe501('0x65'))){_0x28cf58[_0xe501('0x26')]=qs['limit'](_0x427d70[_0xe501('0x3d')][_0xe501('0x26')]);_0x28cf58['offset']=qs['offset'](_0x427d70[_0xe501('0x3d')][_0xe501('0x23')]);}_0x28cf58[_0xe501('0x43')]=qs['sort'](_0x427d70[_0xe501('0x3d')][_0xe501('0x44')]);_0x28cf58[_0xe501('0x45')]=qs[_0xe501('0x3e')](_[_0xe501('0x5d')](_0x427d70[_0xe501('0x3d')],_0x468565[_0xe501('0x3e')]));_0x28cf58[_0xe501('0x45')][_0xe501('0x5a')]=_0x3d0d4b['id'];if(_0x427d70[_0xe501('0x3d')][_0xe501('0x46')]){_0x28cf58['where']=_[_0xe501('0x47')](_0x28cf58['where'],{'$or':_[_0xe501('0x3c')](_0x28cf58[_0xe501('0x40')],function(_0x525392){var _0x34926a={};_0x34926a[_0x525392]={'$like':'%'+_0x427d70[_0xe501('0x3d')]['filter']+'%'};return _0x34926a;})});}_0x28cf58=_['merge']({},_0x28cf58,_0x427d70[_0xe501('0x49')]);return db['CannedAnswer'][_0xe501('0x25')]({'where':_0x28cf58[_0xe501('0x45')]})[_0xe501('0x2c')](function(_0x2bbc5d){_0x5ddd33[_0xe501('0x25')]=_0x2bbc5d;if(_0x427d70[_0xe501('0x3d')][_0xe501('0x4a')]){_0x28cf58[_0xe501('0x4b')]=[{'all':!![]}];}return db['CannedAnswer'][_0xe501('0x5e')](_0x28cf58);})['then'](function(_0x74c3fd){_0x5ddd33['rows']=_0x74c3fd;return _0x5ddd33;});}})[_0xe501('0x2c')](respondWithFilteredResult(_0x187cea,_0x28cf58))[_0xe501('0x50')](handleError(_0x187cea,null));};exports[_0xe501('0x66')]=function(_0x385b50,_0x130dee,_0x43e2e8){return db[_0xe501('0x37')][_0xe501('0x56')]({'where':{'id':_0x385b50[_0xe501('0x4d')]['id']}})[_0xe501('0x2c')](handleEntityNotFound(_0x130dee,null))[_0xe501('0x2c')](function(_0x4c4874){if(_0x4c4874){return _0x4c4874[_0xe501('0x66')](_0x385b50[_0xe501('0x3d')][_0xe501('0x61')]);}})['then'](respondWithStatusCode(_0x130dee,null))[_0xe501('0x50')](handleError(_0x130dee,null));};exports[_0xe501('0x67')]=function(_0x2817b6,_0x364f90,_0xba423d){_0x2817b6[_0xe501('0x52')][_0xe501('0x68')]=_0x2817b6[_0xe501('0x69')][_0xe501('0x6a')];return db[_0xe501('0x37')][_0xe501('0x56')]({'where':{'id':_0x2817b6[_0xe501('0x4d')]['id']}})['then'](handleEntityNotFound(_0x364f90,null))['then'](saveUpdates(_0x2817b6['body'],null))[_0xe501('0x2c')](respondWithResult(_0x364f90,null))[_0xe501('0x50')](handleError(_0x364f90,null));};exports[_0xe501('0x6b')]=function(_0x14cf38,_0x1b3e4e,_0x5a5e22){_0x14cf38['body'][_0xe501('0x6c')]=_0x14cf38['file']['filename'];return db[_0xe501('0x37')][_0xe501('0x56')]({'where':{'id':_0x14cf38[_0xe501('0x4d')]['id']}})[_0xe501('0x2c')](handleEntityNotFound(_0x1b3e4e,null))[_0xe501('0x2c')](saveUpdates(_0x14cf38[_0xe501('0x52')],null))['then'](respondWithResult(_0x1b3e4e,null))[_0xe501('0x50')](handleError(_0x1b3e4e,null));};exports[_0xe501('0x6d')]=function(_0x4f3b4d,_0x345d53,_0x480275){_0x4f3b4d[_0xe501('0x52')][_0xe501('0x6e')]=_0x4f3b4d[_0xe501('0x69')][_0xe501('0x6a')];return db[_0xe501('0x37')][_0xe501('0x56')]({'where':{'id':_0x4f3b4d[_0xe501('0x4d')]['id']}})['then'](handleEntityNotFound(_0x345d53,null))['then'](saveUpdates(_0x4f3b4d[_0xe501('0x52')],null))[_0xe501('0x2c')](respondWithResult(_0x345d53,null))[_0xe501('0x50')](handleError(_0x345d53,null));};exports[_0xe501('0x6f')]=function(_0x48c801,_0x291ccf,_0x58edde){_0x48c801[_0xe501('0x52')][_0xe501('0x70')]=_0x48c801[_0xe501('0x69')][_0xe501('0x6a')];return db[_0xe501('0x37')][_0xe501('0x56')]({'where':{'id':_0x48c801[_0xe501('0x4d')]['id']}})['then'](handleEntityNotFound(_0x291ccf,null))[_0xe501('0x2c')](saveUpdates(_0x48c801[_0xe501('0x52')],null))[_0xe501('0x2c')](respondWithResult(_0x291ccf,null))[_0xe501('0x50')](handleError(_0x291ccf,null));};exports[_0xe501('0x71')]=function(_0x2dd7c9,_0xa4e72d,_0x1ddab2){var _0x28f5d8=path[_0xe501('0x72')](config['root'],'server/files/images/logos/default_logo.svg');var _0x1e2088={'where':{'id':_0x2dd7c9[_0xe501('0x4d')]['id']},'attributes':['id',_0xe501('0x68')],'raw':!![]};var _0x3e3f88=![];return require(_0xe501('0x13'))[_0xe501('0x73')]()[_0xe501('0x2c')](function(_0x358b11){if(_0x358b11){_0x3e3f88=_0x358b11[_0xe501('0x74')];}})[_0xe501('0x2c')](function(){return db['ChatWebsite']['find'](_0x1e2088);})['then'](handleEntityNotFound(_0xa4e72d,null))[_0xe501('0x2c')](function(_0x10761e){if(_0x10761e){if(!_[_0xe501('0x75')](_0x10761e[_0xe501('0x68')])){if(fs['existsSync'](path[_0xe501('0x72')](config[_0xe501('0x76')],'server/files/images/logos/',_0x10761e[_0xe501('0x68')]))&&_0x3e3f88){_0x28f5d8=path[_0xe501('0x72')](config['root'],_0xe501('0x77'),_0x10761e[_0xe501('0x68')]);}}return _0xa4e72d[_0xe501('0x78')](_0x28f5d8);}})['catch'](handleError(_0xa4e72d,null));};exports['getAvatar']=function(_0x55657f,_0x1c4329,_0x3b1506){var _0x1e17d3=path['join'](config[_0xe501('0x76')],_0xe501('0x79'));var _0x425656={'where':{'id':_0x55657f[_0xe501('0x4d')]['id']},'attributes':['id',_0xe501('0x6c')],'raw':!![]};return db[_0xe501('0x37')]['find'](_0x425656)[_0xe501('0x2c')](handleEntityNotFound(_0x1c4329,null))[_0xe501('0x2c')](function(_0xa1f951){if(_0xa1f951){if(!_[_0xe501('0x75')](_0xa1f951[_0xe501('0x6c')])){if(fs['existsSync'](path[_0xe501('0x72')](config[_0xe501('0x76')],_0xe501('0x7a'),_0xa1f951[_0xe501('0x6c')]))){_0x1e17d3=path[_0xe501('0x72')](config['root'],_0xe501('0x7a'),_0xa1f951[_0xe501('0x6c')]);}}return _0x1c4329[_0xe501('0x78')](_0x1e17d3);}})[_0xe501('0x50')](handleError(_0x1c4329,null));};exports[_0xe501('0x7b')]=function(_0x3abc6c,_0xdc28e5,_0x36e3e2){var _0x206265=path['join'](config[_0xe501('0x76')],_0xe501('0x7c'));var _0x1f844f={'where':{'id':_0x3abc6c['params']['id']},'attributes':['id','customerAvatar',_0xe501('0x7d')],'raw':!![]};return db['ChatWebsite'][_0xe501('0x56')](_0x1f844f)['then'](handleEntityNotFound(_0xdc28e5,null))[_0xe501('0x2c')](function(_0x29b1a1){if(_0x29b1a1){if(!_[_0xe501('0x75')](_0x29b1a1['customerAvatar'])){if(fs[_0xe501('0x7e')](path['join'](config['root'],_0xe501('0x7a'),_0x29b1a1[_0xe501('0x6e')]))&&_0x29b1a1[_0xe501('0x7d')]){_0x206265=path['join'](config[_0xe501('0x76')],_0xe501('0x7a'),_0x29b1a1[_0xe501('0x6e')]);}}return _0xdc28e5[_0xe501('0x78')](_0x206265);}})[_0xe501('0x50')](handleError(_0xdc28e5,null));};exports[_0xe501('0x7f')]=function(_0x28b7a0,_0x8d31f9,_0x1377c7){var _0x246258=path['join'](config[_0xe501('0x76')],_0xe501('0x80'));var _0x716bf4={'where':{'id':_0x28b7a0[_0xe501('0x4d')]['id']},'attributes':['id','systemAvatar'],'raw':!![]};return db[_0xe501('0x37')][_0xe501('0x56')](_0x716bf4)[_0xe501('0x2c')](handleEntityNotFound(_0x8d31f9,null))[_0xe501('0x2c')](function(_0x21d640){if(_0x21d640){if(!_[_0xe501('0x75')](_0x21d640[_0xe501('0x70')])){if(fs['existsSync'](path[_0xe501('0x72')](config[_0xe501('0x76')],_0xe501('0x7a'),_0x21d640[_0xe501('0x70')]))){_0x246258=path['join'](config[_0xe501('0x76')],'server/files/images/avatars/',_0x21d640[_0xe501('0x70')]);}}return _0x8d31f9[_0xe501('0x78')](_0x246258);}})[_0xe501('0x50')](handleError(_0x8d31f9,null));};exports[_0xe501('0x81')]=function(_0x2e2534,_0x3020fb,_0x2ff2e7){var _0x44e4b7=require(_0xe501('0x82'));var _0x53a8d0=new _0x44e4b7();var _0x123c1f=_0x53a8d0[_0xe501('0x83')](_0x2e2534[_0xe501('0x84')][_0xe501('0x85')])[_0xe501('0x86')]();var _0x27b3e3={'body':_0x2e2534[_0xe501('0x52')],'channel':_0xe501('0x87')};var _0x1bbcc2=[];var _0x44e871=[];var _0x12588d={};var _0x2b860a=![];return db[_0xe501('0x88')]['describe']()['then'](function(_0x419676){if(!_0x419676){throw new db[(_0xe501('0x89'))][(_0xe501('0x8a'))](_0xe501('0x8b'));}_0x1bbcc2=_['difference'](_[_0xe501('0x4e')](_0x419676),[_0xe501('0x8c'),_0xe501('0x8d')]);_0x44e871=_[_0xe501('0x8e')](_[_0xe501('0x4e')](_0x419676),[_0xe501('0x8c'),_0xe501('0x8d'),'CompanyId','ListId']);if(_0x2e2534[_0xe501('0x52')]['id']){delete _0x2e2534[_0xe501('0x52')]['id'];}if(_[_0xe501('0x75')](_0x2e2534[_0xe501('0x52')][_0xe501('0x8f')])){throw new db[(_0xe501('0x89'))][(_0xe501('0x8a'))]('from\x20is\x20mandatory');}if(_[_0xe501('0x75')](_0x2e2534[_0xe501('0x52')][_0xe501('0x52')])||_0x2e2534[_0xe501('0x52')][_0xe501('0x52')]===''){throw new db[(_0xe501('0x89'))][(_0xe501('0x8a'))](_0xe501('0x90'));}if(_['isNil'](_0x2e2534['body'][_0xe501('0x91')])){throw new db[(_0xe501('0x89'))][(_0xe501('0x8a'))](_0xe501('0x92')+_0x44e871);}if(!_[_0xe501('0x93')](_0x44e871,_0x2e2534[_0xe501('0x52')][_0xe501('0x91')])){throw new db['Sequelize']['ValidationError']('mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x44e871);}_0x12588d[_0x2e2534['body'][_0xe501('0x91')]]=_0x2e2534['body'][_0xe501('0x8f')];})[_0xe501('0x2c')](function(){return db[_0xe501('0x37')][_0xe501('0x56')]({'where':{'id':_0x2e2534[_0xe501('0x4d')]['id']},'include':[{'model':db['CmList'],'as':_0xe501('0x94'),'include':[{'model':db[_0xe501('0x88')],'as':_0xe501('0x95'),'where':_0x12588d,'limit':0x1,'order':[[_0xe501('0x8d'),_0xe501('0x96')]]}]},{'model':db[_0xe501('0x97')],'as':'Applications'}]});})[_0xe501('0x2c')](handleEntityNotFound(_0x3020fb,null))[_0xe501('0x2c')](function(_0xdf2870){if(_0xdf2870&&_0xdf2870['List']){_0x27b3e3['account']=_0xdf2870;_0x27b3e3[_0xe501('0x98')]=_0xdf2870[_0xe501('0x99')];_0x27b3e3[_0xe501('0x9a')]=_0xdf2870['List'];_0x27b3e3['applications']=_[_0xe501('0x9b')](_0x27b3e3[_0xe501('0x98')],[_0xe501('0x9c')],[_0xe501('0x9d')]);if(_0x27b3e3[_0xe501('0x9e')][_0xe501('0x99')]){delete _0x27b3e3[_0xe501('0x9e')][_0xe501('0x99')];}if(_0x27b3e3[_0xe501('0x9e')][_0xe501('0x94')]&&_0x27b3e3[_0xe501('0x9e')]['List'][_0xe501('0x95')][_0xe501('0x41')]){return _0x27b3e3['account'][_0xe501('0x94')][_0xe501('0x95')][0x0];}var _0x5b6155=_[_0xe501('0x9f')](_0x2e2534['body'],{'firstName':_0x2e2534[_0xe501('0x52')]['from'],'ListId':_0xdf2870['ListId']});_0x5b6155[_0x2e2534[_0xe501('0x52')][_0xe501('0x91')]]=_0x2e2534[_0xe501('0x52')]['from'];return db[_0xe501('0x88')][_0xe501('0x51')](_0x5b6155,{'fields':_0x1bbcc2,'raw':!![]});}})[_0xe501('0x2c')](handleEntityNotFound(_0x3020fb,null))[_0xe501('0x2c')](function(_0xdd7a02){_0x27b3e3[_0xe501('0xa0')]=_0xdd7a02;var _0x1ca98d=_0x2e2534[_0xe501('0x52')][_0xe501('0xa1')];if(_0x2e2534['headers'][_0xe501('0xa2')]){_0x1ca98d=_0x2e2534[_0xe501('0x84')][_0xe501('0xa2')];}else if(_0x2e2534['headers'][_0xe501('0xa3')]){_0x1ca98d=_[_0xe501('0xa4')](_0x2e2534['headers'][_0xe501('0xa3')][_0xe501('0xa5')](','));}if(_0xdd7a02){var _0x1cf79f={'ContactId':_0xdd7a02['id'],'ChatWebsiteId':_0x2e2534['params']['id'],'from':(_0xdd7a02[_0xe501('0xa6')]||'')+'\x20'+(_0xdd7a02[_0xe501('0xa7')]||''),'customerIp':_0x1ca98d,'customerPort':_0x2e2534['headers'][_0xe501('0xa8')]?_0x2e2534[_0xe501('0x84')]['x-real-port']:null,'referer':_0x2e2534[_0xe501('0x52')][_0xe501('0xa9')],'browserName':_0x123c1f['browser'][_0xe501('0x33')]&&_0x123c1f[_0xe501('0xaa')][_0xe501('0xab')]?util['format'](_0xe501('0xac'),_0x123c1f['browser'][_0xe501('0x33')],_0x123c1f[_0xe501('0xaa')][_0xe501('0xab')]):_0xe501('0xad'),'browserVersion':_0x123c1f[_0xe501('0xaa')][_0xe501('0xab')]||_0xe501('0xad'),'osName':util[_0xe501('0xae')](_0xe501('0xac'),_0x123c1f['os'][_0xe501('0x33')],_0x123c1f['os']['version']),'osVersion':_0x123c1f['os'][_0xe501('0xab')],'deviceModel':_0x123c1f[_0xe501('0xaf')][_0xe501('0x3b')]&&_0x123c1f[_0xe501('0xaf')][_0xe501('0xb0')]?util[_0xe501('0xae')](_0xe501('0xb1'),_0x123c1f[_0xe501('0xaf')][_0xe501('0x3b')],_0x123c1f[_0xe501('0xaf')][_0xe501('0xb0')],_0x123c1f[_0xe501('0xaf')]['type']):null,'deviceVendor':_0x123c1f[_0xe501('0xaf')][_0xe501('0xb0')],'deviceType':_0x123c1f['device'][_0xe501('0x39')],'formData':JSON[_0xe501('0x1c')](_0x2e2534['body'])};var _0x504258={'ChatWebsiteId':_0x2e2534[_0xe501('0x4d')]['id'],'closed':![]};if(_0x2e2534['body'][_0xe501('0xb2')]){_0x504258['threadId']=_0x2e2534[_0xe501('0x52')][_0xe501('0xb2')];return db[_0xe501('0xb3')]['find']({'where':_0x504258})[_0xe501('0x2c')](function(_0x21bcb0){if(_0x21bcb0){return[_0x21bcb0,![]];}_0x1cf79f[_0xe501('0xb2')]=_0x2e2534[_0xe501('0x52')][_0xe501('0xb2')];_0x1cf79f[_0xe501('0xb4')]=_0x2e2534[_0xe501('0x52')][_0xe501('0xb4')];return db[_0xe501('0xb3')][_0xe501('0x51')](_0x1cf79f)[_0xe501('0x2c')](function(_0x42d8e8){return[_0x42d8e8,!![]];});});}_0x504258[_0xe501('0xb5')]=_0xdd7a02['id'];if(_0x2e2534[_0xe501('0x52')][_0xe501('0xb6')]&&_0x2e2534[_0xe501('0x52')][_0xe501('0xb6')]['id']){_0x504258['id']=_0x2e2534[_0xe501('0x52')][_0xe501('0xb6')]['id'];return db[_0xe501('0xb3')]['find']({'where':_0x504258})[_0xe501('0x2c')](function(_0x23923f){if(_0x23923f){return[_0x23923f,![]];}return db[_0xe501('0xb3')]['create'](_0x1cf79f)[_0xe501('0x2c')](function(_0x3bfc71){return[_0x3bfc71,!![]];});});}return db[_0xe501('0xb3')][_0xe501('0x51')](_0x1cf79f)[_0xe501('0x2c')](function(_0x24be56){return[_0x24be56,!![]];});}})[_0xe501('0xb7')](function(_0xe1aab9,_0x2a4af8){if(_0xe1aab9){_0x2b860a=_0x2a4af8;if(!_0x2a4af8){var _0x3a96e1={'from':(_0x27b3e3[_0xe501('0xa0')][_0xe501('0xa6')]||'')+'\x20'+(_0x27b3e3[_0xe501('0xa0')]['lastName']||'')};if(_0x2e2534[_0xe501('0x52')][_0xe501('0xb2')]&&_0x2e2534[_0xe501('0x52')][_0xe501('0xb8')]&&_0x2e2534['body'][_0xe501('0xb2')]!=_0x2e2534['body'][_0xe501('0xb8')]){_0x3a96e1['threadId']=_0x2e2534[_0xe501('0x52')][_0xe501('0xb8')];}return _0xe1aab9['update'](_0x3a96e1);}else{return _0xe1aab9;}}})[_0xe501('0x2c')](function(_0x494f5a){_0x27b3e3[_0xe501('0xb6')]=_0x494f5a[_0xe501('0x2d')]({'plain':!![]});_0x27b3e3[_0xe501('0xb6')][_0xe501('0xb9')]=_0x2b860a;if(_0x27b3e3['interaction'][_0xe501('0xb9')]){if(_0x27b3e3[_0xe501('0x9e')][_0xe501('0xba')]){_0x27b3e3[_0xe501('0x98')][_0xe501('0xbb')]({'id':0x0,'priority':_0x27b3e3['applications'][_0xe501('0x41')]+0x1,'app':_0xe501('0xbc'),'appdata':_0xe501('0xbd'),'interval':_0xe501('0xbe')});}}return db[_0xe501('0xbf')]['create']({'body':_0x2e2534[_0xe501('0x52')][_0xe501('0x52')],'ChatWebsiteId':_0x2e2534[_0xe501('0x4d')]['id'],'ChatInteractionId':_0x494f5a['id'],'direction':'in','ContactId':_0x27b3e3['contact']['id'],'AttachmentId':_0x2e2534['body'][_0xe501('0xc0')]});})[_0xe501('0x2c')](function(_0x1f4c79){_0x27b3e3[_0xe501('0x1f')]=_0x1f4c79;if(_0x27b3e3[_0xe501('0xb6')][_0xe501('0xc1')]){return db['User'][_0xe501('0x56')]({'attributes':['id',_0xe501('0x33')],'where':{'id':_0x27b3e3[_0xe501('0xb6')][_0xe501('0xc1')]}})[_0xe501('0x2c')](function(_0x2591f2){if(_0x2591f2){_0x27b3e3['applications'][_0xe501('0xc2')]({'id':0x0,'priority':0x0,'app':'agent','appdata':_0x2591f2['name']+','+(_0x27b3e3[_0xe501('0x9e')][_0xe501('0xc3')]||0xa),'interval':_0xe501('0xbe')});_0x27b3e3['forcedOwnership']=!![];}return respondWithRpcPromise(_0xe501('0xc4'),_0xe501('0xc5'),_0x27b3e3);});}return respondWithRpcPromise(_0xe501('0xc4'),_0xe501('0xc5'),_0x27b3e3);})['then'](function(_0x32e210){respondWithRpcPromise(_0xe501('0xc6'),_0xe501('0xc6'),{'event':'notify','message':_0x32e210},client9002);return _0x32e210;})[_0xe501('0x2c')](respondWithResult(_0x3020fb,null))['catch'](handleError(_0x3020fb,null));};exports[_0xe501('0xc7')]=function(_0x4b1818,_0xe52520,_0x5d9278){var _0x230bb1,_0x4f23da,_0x539b47;var _0x5a9567=[];var _0x4253a4=[];var _0x663df9={};var _0x3e6ea8=_0x4b1818['files']||[];var _0x466ff7=[];var _0x1df45c;return db[_0xe501('0x88')]['describe']()['then'](function(_0xa807ce){if(!_0xa807ce){throw new db[(_0xe501('0x89'))][(_0xe501('0x8a'))](_0xe501('0x8b'));}_0x4253a4=_[_0xe501('0x8e')](_[_0xe501('0x4e')](_0xa807ce),[_0xe501('0x8c'),_0xe501('0x8d')]);_0x5a9567=_['difference'](_[_0xe501('0x4e')](_0xa807ce),[_0xe501('0x8c'),_0xe501('0x8d'),_0xe501('0xc8'),'ListId']);if(_0x4b1818[_0xe501('0x52')]['id']){delete _0x4b1818[_0xe501('0x52')]['id'];}if(_[_0xe501('0x75')](_0x4b1818[_0xe501('0x52')]['from'])){throw _0xe52520[_0xe501('0x20')](0x1f4)[_0xe501('0xc9')](new db[(_0xe501('0x89'))]['ValidationError']('from\x20is\x20mandatory'));}if(_[_0xe501('0x75')](_0x4b1818[_0xe501('0x52')][_0xe501('0x52')])||_0x4b1818['body'][_0xe501('0x52')]===''){throw _0xe52520[_0xe501('0x20')](0x1f4)[_0xe501('0xc9')](new db[(_0xe501('0x89'))][(_0xe501('0x8a'))](_0xe501('0x90')));}if(_[_0xe501('0x75')](_0x4b1818[_0xe501('0x52')][_0xe501('0xca')])){throw _0xe52520[_0xe501('0x20')](0x1f4)[_0xe501('0xc9')](new db[(_0xe501('0x89'))][(_0xe501('0x8a'))](_0xe501('0xcb')+_0x5a9567));}if(!_[_0xe501('0x93')](_0x5a9567,_0x4b1818['body'][_0xe501('0xca')])){throw _0xe52520['status'](0x1f4)[_0xe501('0xc9')](new db['Sequelize']['ValidationError'](_0xe501('0xcc')+_0x5a9567));}_0x663df9[_0x4b1818[_0xe501('0x52')]['mapKeyOffline']]=_0x4b1818[_0xe501('0x52')][_0xe501('0x8f')];})[_0xe501('0x2c')](function(){return db['ChatWebsite'][_0xe501('0x56')]({'where':{'id':_0x4b1818[_0xe501('0x4d')]['id']},'include':[{'model':db[_0xe501('0xcd')],'as':'List'},{'model':db[_0xe501('0xce')],'as':_0xe501('0xce')}]});})[_0xe501('0x2c')](handleEntityNotFound(_0xe52520,null))[_0xe501('0x2c')](function(_0x2e99c9){if(_0x2e99c9&&_0x2e99c9[_0xe501('0x94')]){_0x4f23da=_0x2e99c9;var _0x177513=_['defaults'](_0x4b1818[_0xe501('0x52')],{'firstName':_0x4b1818[_0xe501('0x52')][_0xe501('0x8f')],'phone':_0x4b1818[_0xe501('0x52')]['from'],'ListId':_0x2e99c9[_0xe501('0xcf')]});_0x177513[_0x4b1818['body']['mapKeyOffline']]=_0x4b1818[_0xe501('0x52')][_0xe501('0x8f')];return db['CmContact'][_0xe501('0xd0')]({'where':_0x663df9,'defaults':_0x177513});}})[_0xe501('0xb7')](function(_0x311c7a){if(_0x311c7a){_0x539b47=_0x311c7a;var _0x396309=fs[_0xe501('0xd1')](path['join'](config[_0xe501('0x76')],_0xe501('0xd2')),_0xe501('0xd3'));var _0x219bce=ejs['render'](_0x396309,{'body':_['toPairs'](_0x4b1818[_0xe501('0x52')][_0xe501('0x52')]),'bodyTitle':_0x4f23da[_0xe501('0xd4')]});return db[_0xe501('0xd5')]['create']({'body':_0x219bce,'ContactId':_0x311c7a['id'],'ChatWebsiteId':_0x4f23da['id']});}})[_0xe501('0x2c')](function(_0x5e2d87){_0x1df45c=_0x5e2d87;if(_0x3e6ea8[_0xe501('0x41')]){var _0x4a24ff=_0x3e6ea8[_0xe501('0x3c')](function(_0x33a3e5){return{'name':_0x33a3e5['originalname'],'basename':_0x33a3e5[_0xe501('0x6a')],'type':_0x33a3e5[_0xe501('0xd6')],'ChatOfflineMessageId':_0x5e2d87['id']};});_0x466ff7=_0x4a24ff[_0xe501('0x3c')](_0x391793=>{var _0x2f7861={'filename':_0x391793[_0xe501('0x33')],'path':path[_0xe501('0x72')](config[_0xe501('0x76')],'server',_0xe501('0xd7'),_0xe501('0xd8'),_0xe501('0xd9'),_0x391793['basename'])};return _0x2f7861;});if(!_0x4f23da[_0xe501('0xda')]){return db['sequelize']['transaction'](function(_0x583e86){return db['Attachment'][_0xe501('0xdb')](_0x4a24ff,{'transaction':_0x583e86});});}}})[_0xe501('0x2c')](function(){if(_0x1df45c){_0x230bb1=_0x1df45c;return db[_0xe501('0xce')][_0xe501('0x5b')]({'where':{'active':!![]},'include':[{'model':db[_0xe501('0xdc')],'as':_0xe501('0xdd'),'raw':!![]}]});}})[_0xe501('0x2c')](function(_0x1f694d){if(_0x1f694d&&_0x1f694d[_0xe501('0xdd')]&&_0x4f23da['forwardOffline']&&_0x4f23da[_0xe501('0xde')]){var _0x3b01b2={'tls':{'rejectUnauthorized':![]}};if(_0x1f694d[_0xe501('0xdd')]['service']){_0x3b01b2[_0xe501('0xdf')]=_0x1f694d[_0xe501('0xdd')][_0xe501('0xdf')];}else{_0x3b01b2[_0xe501('0xe0')]=_0x1f694d['Smtp'][_0xe501('0xe0')];_0x3b01b2[_0xe501('0xe1')]=_0x1f694d[_0xe501('0xdd')][_0xe501('0xe1')];_0x3b01b2[_0xe501('0xe2')]=_0x1f694d[_0xe501('0xdd')][_0xe501('0xe2')];}if(_0x1f694d[_0xe501('0xdd')][_0xe501('0xe3')]){_0x3b01b2['auth']={'user':_0x1f694d['Smtp'][_0xe501('0x53')],'pass':_0x1f694d[_0xe501('0xdd')][_0xe501('0xe4')]};}return respondWithRpcPromise(_0xe501('0xe5'),_0xe501('0xe6'),{'account':_0x3b01b2,'message':{'from':util[_0xe501('0xae')](_0xe501('0xe7'),_0x1f694d[_0xe501('0x33')],_0x1f694d[_0xe501('0xe8')]||_0x1f694d['Smtp'][_0xe501('0x53')]),'to':_0x4f23da[_0xe501('0xde')],'subject':_0x4f23da[_0xe501('0xe9')],'html':_0x230bb1[_0xe501('0x52')],'attachments':_0x466ff7}},client9003)[_0xe501('0x2c')](function(){return _0x230bb1;})['catch'](function(_0x352e22){console[_0xe501('0x1e')](_0x352e22);});}})[_0xe501('0x2c')](function(){if(_0x4f23da&&_0x4f23da[_0xe501('0xda')]&&_0x4f23da[_0xe501('0xea')]){var _0xd19c9=[];if(_0x3e6ea8[_0xe501('0x41')]){_0xd19c9=_0x3e6ea8[_0xe501('0x3c')](function(_0x606492){return{'name':_0x606492[_0xe501('0xeb')],'basename':_0x606492[_0xe501('0x6a')],'type':_0x606492['mimetype'],'ChatOfflineMessageId':_0x1df45c['id']};});}var _0x46c959;if(!_[_0xe501('0x75')](_0x4f23da[_0xe501('0xec')])){var _0x46be3e=_[_0xe501('0x3c')](_0x4b1818[_0xe501('0x52')],function(_0x31e51a){return _0x31e51a;});var _0x353b69=_['toPairsIn'](_0x46be3e)[0x0];var _0xdeb2f5=_[_0xe501('0xed')](_0x353b69,function(_0x126dfb){return _0x126dfb;});_0x46c959=_0xdeb2f5[0x1][_0x4f23da['subjectOffline']];}var _0x196491={'from':_0x539b47[_0xe501('0xe8')],'firstName':_0x539b47['firstName'],'lastName':_0x539b47[_0xe501('0xa7')],'mapKey':_0xe501('0xe8'),'message':{'from':_0x539b47[_0xe501('0xe8')],'to':_0x4f23da[_0xe501('0xce')]['email'],'cc':'','subject':_[_0xe501('0x75')](_0x46c959)?_0x4f23da[_0xe501('0xe9')]:_0x46c959,'messageId':'','sentAt':new Date(),'attach':_0xd19c9['length'],'attachments':_0xd19c9,'originChannel':_0xe501('0xee'),'ChatWebsiteId':_0x4f23da['id'],'ChatOfflineMessageId':_0x230bb1['id'],'originTo':_0x4f23da['MailAccount']['email']},'body':_0x230bb1['body']};var _0x229714={'account':{'id':_0x4f23da[_0xe501('0xea')]},'body':_0x196491,'log':_0xe501('0xef')};return respondWithRpcPromise(_0xe501('0xef'),'notifyMail',_0x229714,client9001)[_0xe501('0x2c')](function(){return _0x230bb1;})['catch'](function(_0x436a47){console[_0xe501('0x1e')](_0x436a47);});}return;})['then'](function(){if(_0x230bb1){return _0x230bb1;}})[_0xe501('0x2c')](respondWithResult(_0xe52520,null))[_0xe501('0x50')](function(_0x265ac1){console[_0xe501('0x1e')](_0xe501('0x50'),_0x265ac1);for(var _0x329db4 of _0x3e6ea8){var _0x5cc52d=path[_0xe501('0x72')](config[_0xe501('0x76')],_0xe501('0xf0'),_0xe501('0xd7'),'attachments',_0xe501('0xd9'),_0x329db4[_0xe501('0x6a')]);fs_extra['remove'](_0x5cc52d)[_0xe501('0x50')](function(_0x32023a){console[_0xe501('0x1e')](_0xe501('0xf1'),_0x5cc52d,_0x32023a);});}});};exports[_0xe501('0xf2')]=function(_0x570c78,_0x41ccaa,_0x18faae){return db[_0xe501('0xb3')]['find']({'where':{'id':_0x570c78[_0xe501('0x4d')]['id']}})[_0xe501('0x2c')](handleEntityNotFound(_0x41ccaa,null))['then'](function(_0x15c35b){if(_0x15c35b){return _0x15c35b[_0xe501('0xf2')](_0x570c78[_0xe501('0x52')][_0xe501('0x61')],_[_0xe501('0xf3')](_0x570c78['body'],[_0xe501('0x61'),'id'])||{});}})['then'](respondWithResult(_0x41ccaa,null))['catch'](handleError(_0x41ccaa,null));};exports[_0xe501('0xf4')]=function(_0x1d0c52,_0x476730,_0x25a30e){var _0x3454d7={'raw':![],'where':{}};var _0x404d19={};var _0x2f55f6={'count':0x0,'rows':[]};return db[_0xe501('0x37')][_0xe501('0x5b')]({'where':{'id':_0x1d0c52[_0xe501('0x4d')]['id']}})[_0xe501('0x2c')](handleEntityNotFound(_0x476730,null))[_0xe501('0x2c')](function(_0x36513a){if(_0x36513a){_0x404d19[_0xe501('0x3b')]=_[_0xe501('0x4e')](db['ChatInteraction'][_0xe501('0x38')]);_0x404d19[_0xe501('0x3d')]=_['keys'](_0x1d0c52['query']);_0x404d19[_0xe501('0x3e')]=_[_0xe501('0x3f')](_0x404d19[_0xe501('0x3b')],_0x404d19['query']);_0x3454d7[_0xe501('0x40')]=_[_0xe501('0x3f')](_0x404d19[_0xe501('0x3b')],qs['fields'](_0x1d0c52[_0xe501('0x3d')][_0xe501('0x4f')]));_0x3454d7['attributes']=_0x3454d7['attributes'][_0xe501('0x41')]?_0x3454d7[_0xe501('0x40')]:_0x404d19['model'];if(!_0x1d0c52['query']['hasOwnProperty'](_0xe501('0x65'))){_0x3454d7[_0xe501('0x26')]=qs[_0xe501('0x26')](_0x1d0c52['query'][_0xe501('0x26')]);_0x3454d7[_0xe501('0x23')]=qs['offset'](_0x1d0c52[_0xe501('0x3d')]['offset']);}_0x3454d7[_0xe501('0x43')]=qs['sort'](_0x1d0c52[_0xe501('0x3d')][_0xe501('0x44')]);_0x3454d7['where']=qs[_0xe501('0x3e')](_[_0xe501('0x5d')](_0x1d0c52[_0xe501('0x3d')],_0x404d19[_0xe501('0x3e')]));_0x3454d7['where'][_0xe501('0x5a')]=_0x36513a['id'];if(_0x1d0c52[_0xe501('0x3d')][_0xe501('0x46')]){_0x3454d7[_0xe501('0x45')]=_[_0xe501('0x47')](_0x3454d7['where'],{'$or':_[_0xe501('0x3c')](_0x3454d7[_0xe501('0x40')],function(_0x39fa43){var _0x4f1fcc={};_0x4f1fcc[_0x39fa43]={'$like':'%'+_0x1d0c52['query'][_0xe501('0x46')]+'%'};return _0x4f1fcc;})});}_0x3454d7=_[_0xe501('0x47')]({},_0x3454d7,_0x1d0c52[_0xe501('0x49')]);return db['ChatInteraction'][_0xe501('0x25')]({'where':_0x3454d7[_0xe501('0x45')]})['then'](function(_0x2add0a){_0x2f55f6[_0xe501('0x25')]=_0x2add0a;if(_0x1d0c52['query'][_0xe501('0x4a')]){_0x3454d7[_0xe501('0x4b')]=[{'model':db[_0xe501('0x88')],'as':_0xe501('0xf5'),'required':![]},{'model':db[_0xe501('0xf6')],'as':_0xe501('0xf7'),'attributes':[_0xe501('0x33'),_0xe501('0xf8'),_0xe501('0xf9')],'required':![]},{'model':db[_0xe501('0xfa')],'as':_0xe501('0xfb'),'attributes':['id',_0xe501('0x33'),_0xe501('0xfc')],'where':_0x1d0c52['query'][_0xe501('0xfd')]?{'id':_0x1d0c52[_0xe501('0x3d')][_0xe501('0xfd')]}:undefined,'required':_0x1d0c52[_0xe501('0x3d')]['tag']?!![]:![]}];}return db[_0xe501('0xb3')]['findAll'](_0x3454d7);})[_0xe501('0x2c')](function(_0xd6002b){_0x2f55f6['rows']=_0xd6002b;return _0x2f55f6;});}})['then'](respondWithFilteredResult(_0x476730,_0x3454d7))[_0xe501('0x50')](handleError(_0x476730,null));};function iftimePromise(_0x49d4cf,_0x55202a){return respondWithRpcPromise(_0xe501('0xfe'),_0xe501('0xff'),{'command':_0x55202a[_0xe501('0x100')]?util[_0xe501('0xae')](_0xe501('0x101'),_0x49d4cf[_0xe501('0x102')],_0x55202a[_0xe501('0x100')]):util['format'](_0xe501('0x103'),_0x49d4cf[_0xe501('0x102')])},client9002)[_0xe501('0x2c')](function(_0x577983){var _0x3920fe=_0x577983&&_0x577983['indexOf'](_0xe501('0x104'))>=0x0?!![]:![];logger[_0xe501('0x105')]('[%s][INTERVAL][%s]\x20%s\x20%s\x20(%s)',_0x55202a['id'],_0x49d4cf['id'],_0x49d4cf[_0xe501('0x102')],_0x3920fe?_0xe501('0x106'):_0xe501('0x107'),_0x55202a[_0xe501('0x100')]?_0x55202a[_0xe501('0x100')]:'No\x20timezone');return _0x3920fe;})['catch'](function(_0x3b346b){logger[_0xe501('0x1e')]('[%s][INTERVAL][%s]\x20%s\x20%s\x20(%s)',_0x55202a['id'],_0x49d4cf['id'],_0x49d4cf['interval'],util[_0xe501('0x108')](_0x3b346b,{'showHidden':![],'depth':null}),_0x55202a[_0xe501('0x100')]?_0x55202a['timezone']:_0xe501('0x109'));return![];});}exports[_0xe501('0xff')]=function(_0x5af667,_0x15dbfa,_0x15cddf){var _0xcc79b3=0x0;var _0x369eb3=0x0;var _0x5e3ee6=![];var _0x226475;var _0x21392f;return db[_0xe501('0x37')]['find']({'where':{'id':_0x5af667['params']['id']},'include':[{'model':db['Interval'],'as':_0xe501('0x10a'),'include':[{'model':db[_0xe501('0x10a')],'as':_0xe501('0x10b'),'attributes':['id',_0xe501('0x102')],'raw':!![]}]}]})[_0xe501('0x2c')](handleEntityNotFound(_0x15dbfa,null))[_0xe501('0x2c')](function(_0x27b7ba){if(_0x27b7ba){_0x226475=_0x27b7ba;return _0x27b7ba['getProactiveActions']({'raw':!![]});}})[_0xe501('0x2c')](function(_0x1db99e){if(_0x226475){if(_0x1db99e){_0x21392f=_0x1db99e;}}return require('../../config/license/util')[_0xe501('0x73')]();})[_0xe501('0x2c')](function(_0x1ebf02){if(_0x1ebf02){_0x369eb3=_0x1ebf02['virtual'];_0x5e3ee6=_0x1ebf02['custom'];}})[_0xe501('0x2c')](function(){return db[_0xe501('0xb3')]['count']({'where':{'closed':![]}});})[_0xe501('0x2c')](function(_0x15e7a3){_0xcc79b3=_0x15e7a3;if(_0x369eb3&&_0x15e7a3>_0x369eb3){return db['License'][_0xe501('0x5b')]({'where':{'id':0x1}})[_0xe501('0x2c')](function(_0xef50f6){if(_0xef50f6){_0xef50f6[_0xe501('0x10c')](_0xe501('0x10d'));}});}})[_0xe501('0x2c')](function(){if(_0x226475[_0xe501('0x10a')]&&_0x226475[_0xe501('0x10a')][_0xe501('0x10b')]){var _0x19e0df=[];for(var _0xf99a46=0x0;_0xf99a46<_0x226475['Interval']['Intervals'][_0xe501('0x41')];_0xf99a46++){var _0x1f9eb6=_0x226475[_0xe501('0x10a')]['Intervals'][_0xf99a46][_0xe501('0x2d')]({'plain':!![]});_0x19e0df['push'](iftimePromise(_0x1f9eb6,_0x226475));}return BPromise[_0xe501('0x10e')](_0x19e0df)[_0xe501('0x2c')](function(_0x3a5c7a){return _[_0xe501('0x10f')](_0x3a5c7a);});}else{return!![];}})[_0xe501('0x2c')](function(_0x257b2e){var _0xaf5cbe=fs['readFileSync'](path[_0xe501('0x72')](config['root'],'server/files/chat/iframe.ejs'),_0xe501('0xd3'));var _0x4e0111={'remote':_0x226475[_0xe501('0x110')],'query':querystring[_0xe501('0x1c')](_['merge'](_0x226475['get']({'plain':!![]}),{'customerIp':_0x5af667[_0xe501('0x84')][_0xe501('0xa3')]||_0x5af667['headers'][_0xe501('0x111')]||_0x5af667[_0xe501('0x112')][_0xe501('0x113')]||_0x5af667['ip'],'referer':_0x5af667[_0xe501('0x84')][_0xe501('0xa9')],'openedInteractions':_0xcc79b3,'maxInteractions':_0x369eb3,'virtual':_0x5e3ee6[_0xe501('0x114')],'online':_0x257b2e,'custom':_0x5e3ee6}))[_0xe501('0x115')](/'/g,'\x5c\x27')};_0x15dbfa[_0xe501('0xc9')](ejs['render'](Mustache[_0xe501('0x116')](_0xaf5cbe,_0x4e0111),{'proactiveActions':_0x21392f,'alignment':_0x226475[_0xe501('0x117')],'verticalAlignment':_0x226475['verticalAlignment'],'div_color':_0x226475[_0xe501('0xfc')],'text_color':_0x226475[_0xe501('0x118')],'button_color':_0x226475[_0xe501('0x119')],'background_color':_0x226475[_0xe501('0x11a')]}));})[_0xe501('0x50')](handleError(_0x15dbfa,null));};exports[_0xe501('0x11b')]=function(_0x202b19,_0x1f42aa,_0x313e31){return db[_0xe501('0x37')][_0xe501('0x5b')]({'where':{'id':_0x202b19[_0xe501('0x4d')]['id']}})[_0xe501('0x2c')](handleEntityNotFound(_0x1f42aa,null))[_0xe501('0x2c')](function(_0x113fbc){if(_0x113fbc){return db[_0xe501('0x11c')][_0xe501('0x11d')](function(_0x45de69){return db[_0xe501('0x97')][_0xe501('0x30')]({'where':{'ChatWebsiteId':_0x202b19[_0xe501('0x4d')]['id']},'transaction':_0x45de69})['then'](function(_0x48371a){var _0x2f525f=_[_0xe501('0x3c')](_0x202b19[_0xe501('0x52')],function(_0x65b02a){_0x65b02a[_0xe501('0x5a')]=_0x202b19[_0xe501('0x4d')]['id'];return _0x65b02a;});return db[_0xe501('0x97')]['bulkCreate'](_0x2f525f,{'transaction':_0x45de69});});})[_0xe501('0x2c')](function(){return db[_0xe501('0x97')][_0xe501('0x11e')]({'where':{'ChatWebsiteId':_0x202b19[_0xe501('0x4d')]['id']},'order':'priority'});});}})[_0xe501('0x2c')](respondWithResult(_0x1f42aa,null))[_0xe501('0x50')](handleError(_0x1f42aa,null));};exports['getApplications']=function(_0x4d6383,_0x2152a6,_0x51edec){var _0x2ac4cf={};var _0x15a7d7={};var _0x245632;var _0x1f56ad;return db[_0xe501('0x37')][_0xe501('0x5b')]({'where':{'id':_0x4d6383['params']['id']}})[_0xe501('0x2c')](handleEntityNotFound(_0x2152a6,null))[_0xe501('0x2c')](function(_0x58bb3d){if(_0x58bb3d){_0x245632=_0x58bb3d;_0x15a7d7[_0xe501('0x3b')]=_[_0xe501('0x4e')](db[_0xe501('0x97')][_0xe501('0x38')]);_0x15a7d7[_0xe501('0x3d')]=_['keys'](_0x4d6383['query']);_0x15a7d7[_0xe501('0x3e')]=_[_0xe501('0x3f')](_0x15a7d7[_0xe501('0x3b')],_0x15a7d7[_0xe501('0x3d')]);_0x2ac4cf[_0xe501('0x40')]=_[_0xe501('0x3f')](_0x15a7d7[_0xe501('0x3b')],qs[_0xe501('0x4f')](_0x4d6383[_0xe501('0x3d')][_0xe501('0x4f')]));_0x2ac4cf['attributes']=_0x2ac4cf['attributes']['length']?_0x2ac4cf[_0xe501('0x40')]:_0x15a7d7['model'];_0x2ac4cf['order']=qs[_0xe501('0x44')](_0x4d6383['query']['sort']);_0x2ac4cf[_0xe501('0x45')]=qs['filters'](_[_0xe501('0x5d')](_0x4d6383[_0xe501('0x3d')],_0x15a7d7[_0xe501('0x3e')]));if(_0x4d6383[_0xe501('0x3d')][_0xe501('0x46')]){_0x2ac4cf[_0xe501('0x45')]=_[_0xe501('0x47')](_0x2ac4cf['where'],{'$or':_[_0xe501('0x3c')](_0x2ac4cf[_0xe501('0x40')],function(_0x1dfd47){var _0x5855bb={};_0x5855bb[_0x1dfd47]={'$like':'%'+_0x4d6383[_0xe501('0x3d')]['filter']+'%'};return _0x5855bb;})});}_0x2ac4cf=_[_0xe501('0x47')]({},_0x2ac4cf,_0x4d6383['options']);return _0x245632[_0xe501('0x11f')](_0x2ac4cf);}})[_0xe501('0x2c')](function(_0xa555bd){if(_0xa555bd){_0x1f56ad=_0xa555bd[_0xe501('0x41')];if(!_0x4d6383[_0xe501('0x3d')][_0xe501('0x42')](_0xe501('0x65'))){_0x2ac4cf[_0xe501('0x26')]=qs[_0xe501('0x26')](_0x4d6383[_0xe501('0x3d')][_0xe501('0x26')]);_0x2ac4cf[_0xe501('0x23')]=qs[_0xe501('0x23')](_0x4d6383[_0xe501('0x3d')][_0xe501('0x23')]);}return _0x245632[_0xe501('0x11f')](_0x2ac4cf);}})[_0xe501('0x2c')](function(_0xd71df9){if(_0xd71df9){return _0xd71df9?{'count':_0x1f56ad,'rows':_0xd71df9}:null;}})[_0xe501('0x2c')](respondWithResult(_0x2152a6,null))[_0xe501('0x50')](handleError(_0x2152a6,null));};exports[_0xe501('0x120')]=function(_0x5e4b3c,_0x174c68,_0x25fea7){return db['chatProactiveAction'][_0xe501('0x56')]({'where':{'id':_0x5e4b3c['params']['id']}})[_0xe501('0x2c')](handleEntityNotFound(_0x174c68,null))['then'](function(_0x48d2ee){if(_0x48d2ee){return _0x48d2ee[_0xe501('0x120')](_0x5e4b3c[_0xe501('0x52')][_0xe501('0x61')],_[_0xe501('0xf3')](_0x5e4b3c['body'],[_0xe501('0x61'),'id'])||{});}})['then'](respondWithResult(_0x174c68,null))[_0xe501('0x50')](handleError(_0x174c68,null));};exports[_0xe501('0x121')]=function(_0x5b6a14,_0x2ffcbc,_0x50e9d0){var _0x58dcaf={};var _0x5941ba={};var _0x1ca5cb;var _0x28fa98;return db['ChatWebsite'][_0xe501('0x5b')]({'where':{'id':_0x5b6a14[_0xe501('0x4d')]['id']}})['then'](handleEntityNotFound(_0x2ffcbc,null))[_0xe501('0x2c')](function(_0x16f766){if(_0x16f766){_0x1ca5cb=_0x16f766;_0x5941ba[_0xe501('0x3b')]=_[_0xe501('0x4e')](db[_0xe501('0x122')]['rawAttributes']);_0x5941ba['query']=_[_0xe501('0x4e')](_0x5b6a14[_0xe501('0x3d')]);_0x5941ba[_0xe501('0x3e')]=_[_0xe501('0x3f')](_0x5941ba[_0xe501('0x3b')],_0x5941ba['query']);_0x58dcaf[_0xe501('0x40')]=_[_0xe501('0x3f')](_0x5941ba[_0xe501('0x3b')],qs[_0xe501('0x4f')](_0x5b6a14['query']['fields']));_0x58dcaf[_0xe501('0x40')]=_0x58dcaf[_0xe501('0x40')][_0xe501('0x41')]?_0x58dcaf[_0xe501('0x40')]:_0x5941ba[_0xe501('0x3b')];_0x58dcaf[_0xe501('0x43')]=qs[_0xe501('0x44')](_0x5b6a14['query'][_0xe501('0x44')]);_0x58dcaf[_0xe501('0x45')]=qs[_0xe501('0x3e')](_['pick'](_0x5b6a14[_0xe501('0x3d')],_0x5941ba['filters']));if(_0x5b6a14['query']['filter']){_0x58dcaf[_0xe501('0x45')]=_[_0xe501('0x47')](_0x58dcaf['where'],{'$or':_[_0xe501('0x3c')](_0x58dcaf[_0xe501('0x40')],function(_0x185de2){var _0x403cf9={};_0x403cf9[_0x185de2]={'$like':'%'+_0x5b6a14[_0xe501('0x3d')][_0xe501('0x46')]+'%'};return _0x403cf9;})});}_0x58dcaf=_[_0xe501('0x47')]({},_0x58dcaf,_0x5b6a14['options']);return _0x1ca5cb[_0xe501('0x121')](_0x58dcaf);}})[_0xe501('0x2c')](function(_0x4ee93a){if(_0x4ee93a){_0x28fa98=_0x4ee93a[_0xe501('0x41')];if(!_0x5b6a14['query'][_0xe501('0x42')](_0xe501('0x65'))){_0x58dcaf['limit']=qs[_0xe501('0x26')](_0x5b6a14[_0xe501('0x3d')]['limit']);_0x58dcaf['offset']=qs[_0xe501('0x23')](_0x5b6a14[_0xe501('0x3d')][_0xe501('0x23')]);}return _0x1ca5cb[_0xe501('0x121')](_0x58dcaf);}})['then'](function(_0x2983c5){if(_0x2983c5){return _0x2983c5?{'count':_0x28fa98,'rows':_0x2983c5}:null;}})[_0xe501('0x2c')](respondWithResult(_0x2ffcbc,null))['catch'](handleError(_0x2ffcbc,null));};exports['getFields']=function(_0x1a6358,_0x2a7b72,_0xfea5dd){var _0x49f27b=_0x1a6358[_0xe501('0x3d')]['online']===_0xe501('0x123')?_0xe501('0x124'):_0xe501('0x125');return db[_0xe501('0x37')][_0xe501('0x56')]({'attributes':['id',_0x49f27b],'where':{'id':_0x1a6358['params']['id']}})[_0xe501('0x2c')](handleEntityNotFound(_0x2a7b72,null))[_0xe501('0x2c')](function(_0x117926){if(_0x117926){var _0x24a663=_0x117926[_0x49f27b];var _0x4e4222=_0x24a663&&_0x24a663['items']?_0x24a663['items']:[];_0x2a7b72['send']({'fromKey':_['isNil'](_0x24a663[_0xe501('0x126')])?undefined:_0x24a663[_0xe501('0x126')],'count':_0x4e4222['length'],'rows':_0x4e4222});}})[_0xe501('0x50')](handleError(_0x2a7b72,null));};exports[_0xe501('0x127')]=function(_0x4d3f3c,_0x46f707,_0x2f533b){var _0x3de1c3={'raw':![],'where':{}};var _0x4117d0={};var _0x5abbf7={'count':0x0,'rows':[]};return db[_0xe501('0x37')][_0xe501('0x5b')]({'where':{'id':_0x4d3f3c['params']['id']}})[_0xe501('0x2c')](handleEntityNotFound(_0x46f707,null))[_0xe501('0x2c')](function(_0x13a2c8){if(_0x13a2c8){_0x4117d0[_0xe501('0x3b')]=_[_0xe501('0x4e')](db[_0xe501('0xd5')][_0xe501('0x38')]);_0x4117d0[_0xe501('0x3d')]=_[_0xe501('0x4e')](_0x4d3f3c[_0xe501('0x3d')]);_0x4117d0[_0xe501('0x3e')]=_['intersection'](_0x4117d0[_0xe501('0x3b')],_0x4117d0[_0xe501('0x3d')]);_0x3de1c3['attributes']=_['intersection'](_0x4117d0[_0xe501('0x3b')],qs[_0xe501('0x4f')](_0x4d3f3c[_0xe501('0x3d')][_0xe501('0x4f')]));_0x3de1c3[_0xe501('0x40')]=_0x3de1c3[_0xe501('0x40')][_0xe501('0x41')]?_0x3de1c3['attributes']:_0x4117d0[_0xe501('0x3b')];if(!_0x4d3f3c['query'][_0xe501('0x42')](_0xe501('0x65'))){_0x3de1c3[_0xe501('0x26')]=qs['limit'](_0x4d3f3c[_0xe501('0x3d')]['limit']);_0x3de1c3[_0xe501('0x23')]=qs['offset'](_0x4d3f3c[_0xe501('0x3d')]['offset']);}_0x3de1c3[_0xe501('0x43')]=qs[_0xe501('0x44')](_0x4d3f3c[_0xe501('0x3d')]['sort']);_0x3de1c3[_0xe501('0x45')]=qs[_0xe501('0x3e')](_[_0xe501('0x5d')](_0x4d3f3c[_0xe501('0x3d')],_0x4117d0['filters']));_0x3de1c3['where'][_0xe501('0x5a')]=_0x13a2c8['id'];if(_0x4d3f3c[_0xe501('0x3d')][_0xe501('0x46')]){_0x3de1c3[_0xe501('0x45')]=_[_0xe501('0x47')](_0x3de1c3[_0xe501('0x45')],{'$or':_[_0xe501('0x3c')](_0x3de1c3[_0xe501('0x40')],function(_0xf3065a){var _0x2cc9e6={};_0x2cc9e6[_0xf3065a]={'$like':'%'+_0x4d3f3c[_0xe501('0x3d')][_0xe501('0x46')]+'%'};return _0x2cc9e6;})});}_0x3de1c3=_[_0xe501('0x47')]({},_0x3de1c3,_0x4d3f3c[_0xe501('0x49')]);return db[_0xe501('0xd5')][_0xe501('0x25')]({'where':_0x3de1c3[_0xe501('0x45')]})[_0xe501('0x2c')](function(_0x3be115){_0x5abbf7['count']=_0x3be115;if(_0x4d3f3c[_0xe501('0x3d')][_0xe501('0x4a')]){_0x3de1c3['include']=[{'all':!![]}];}else{_0x3de1c3['include']=[{'model':db[_0xe501('0x88')],'as':_0xe501('0xf5'),'required':![]},{'model':db[_0xe501('0x128')],'as':_0xe501('0x129'),'required':![]}];}return db['ChatOfflineMessage'][_0xe501('0x5e')](_0x3de1c3);})[_0xe501('0x2c')](function(_0x3e171d){_0x5abbf7['rows']=_0x3e171d;return _0x5abbf7;});}})['then'](respondWithFilteredResult(_0x46f707,_0x3de1c3))[_0xe501('0x50')](handleError(_0x46f707,null));};exports[_0xe501('0x12a')]=function(_0x58e47c,_0x24fde5,_0x4be8c3){return db[_0xe501('0x37')]['find']({'where':{'id':_0x58e47c[_0xe501('0x4d')]['id']}})[_0xe501('0x2c')](handleEntityNotFound(_0x24fde5,null))[_0xe501('0x2c')](function(_0x134835){if(_0x134835){return _0x134835[_0xe501('0x12a')](_0x58e47c[_0xe501('0x52')][_0xe501('0x61')],_['omit'](_0x58e47c[_0xe501('0x52')],[_0xe501('0x61'),'id'])||{})[_0xe501('0xb7')](function(_0x5e41e4){for(var _0x21e8f0=0x0;_0x21e8f0<_0x58e47c['body']['ids'][_0xe501('0x41')];_0x21e8f0+=0x1){socket[_0xe501('0x12b')]('userChatWebsite:save',{'UserId':Number(_0x58e47c[_0xe501('0x52')]['ids'][_0x21e8f0]),'ChatWebsiteId':Number(_0x58e47c[_0xe501('0x4d')]['id'])});}return _0x5e41e4;});}})[_0xe501('0x2c')](respondWithResult(_0x24fde5,null))[_0xe501('0x50')](handleError(_0x24fde5,null));};exports['removeAgents']=function(_0x45c27c,_0x346510,_0x51b491){return db[_0xe501('0x37')][_0xe501('0x56')]({'where':{'id':_0x45c27c[_0xe501('0x4d')]['id']}})['then'](handleEntityNotFound(_0x346510,null))[_0xe501('0x2c')](function(_0x2537f1){if(_0x2537f1){return _0x2537f1[_0xe501('0x12c')](_0x45c27c[_0xe501('0x3d')][_0xe501('0x61')])[_0xe501('0x2c')](function(){if(_['isArray'](_0x45c27c[_0xe501('0x3d')][_0xe501('0x61')])){for(var _0x35e6ec=0x0;_0x35e6ec<_0x45c27c[_0xe501('0x3d')]['ids'][_0xe501('0x41')];_0x35e6ec+=0x1){socket[_0xe501('0x12b')](_0xe501('0x12d'),{'UserId':Number(_0x45c27c['query'][_0xe501('0x61')][_0x35e6ec]),'ChatWebsiteId':Number(_0x45c27c[_0xe501('0x4d')]['id'])});}}else{socket['emit'](_0xe501('0x12d'),{'UserId':Number(_0x45c27c[_0xe501('0x3d')][_0xe501('0x61')]),'ChatWebsiteId':Number(_0x45c27c['params']['id'])});}});}})[_0xe501('0x2c')](respondWithStatusCode(_0x346510,null))[_0xe501('0x50')](handleError(_0x346510,null));};exports[_0xe501('0x12e')]=function(_0xa1d749,_0x5d2b76,_0x53ee0c){var _0x174d3c={};var _0x414ead={};var _0x39cac3;var _0x13d76a;return db[_0xe501('0x37')][_0xe501('0x5b')]({'where':{'id':_0xa1d749[_0xe501('0x4d')]['id']}})['then'](handleEntityNotFound(_0x5d2b76,null))[_0xe501('0x2c')](function(_0x24eb95){if(_0x24eb95){_0x39cac3=_0x24eb95;_0x414ead[_0xe501('0x3b')]=_[_0xe501('0x4e')](db[_0xe501('0xf6')][_0xe501('0x38')]);_0x414ead[_0xe501('0x3d')]=_[_0xe501('0x4e')](_0xa1d749[_0xe501('0x3d')]);_0x414ead['filters']=_[_0xe501('0x3f')](_0x414ead[_0xe501('0x3b')],_0x414ead['query']);_0x174d3c['attributes']=_[_0xe501('0x3f')](_0x414ead[_0xe501('0x3b')],qs[_0xe501('0x4f')](_0xa1d749[_0xe501('0x3d')]['fields']));_0x174d3c[_0xe501('0x40')]=_0x174d3c[_0xe501('0x40')][_0xe501('0x41')]?_0x174d3c[_0xe501('0x40')]:_0x414ead['model'];_0x174d3c[_0xe501('0x43')]=qs[_0xe501('0x44')](_0xa1d749['query'][_0xe501('0x44')]);_0x174d3c[_0xe501('0x45')]=qs['filters'](_['pick'](_0xa1d749[_0xe501('0x3d')],_0x414ead[_0xe501('0x3e')]));if(_0xa1d749[_0xe501('0x3d')]['filter']){_0x174d3c['where']=_[_0xe501('0x47')](_0x174d3c[_0xe501('0x45')],{'$or':_[_0xe501('0x3c')](_0x174d3c['attributes'],function(_0x4480eb){var _0x1cdb01={};_0x1cdb01[_0x4480eb]={'$like':'%'+_0xa1d749[_0xe501('0x3d')][_0xe501('0x46')]+'%'};return _0x1cdb01;})});}_0x174d3c=_[_0xe501('0x47')]({},_0x174d3c,_0xa1d749[_0xe501('0x49')]);return _0x39cac3[_0xe501('0x12e')](_0x174d3c);}})[_0xe501('0x2c')](function(_0x5a33a7){if(_0x5a33a7){_0x13d76a=_0x5a33a7[_0xe501('0x41')];if(!_0xa1d749['query'][_0xe501('0x42')]('nolimit')){_0x174d3c[_0xe501('0x26')]=qs[_0xe501('0x26')](_0xa1d749[_0xe501('0x3d')]['limit']);_0x174d3c[_0xe501('0x23')]=qs[_0xe501('0x23')](_0xa1d749[_0xe501('0x3d')][_0xe501('0x23')]);}return _0x39cac3['getAgents'](_0x174d3c);}})[_0xe501('0x2c')](function(_0x2e54da){if(_0x2e54da){return _0x2e54da?{'count':_0x13d76a,'rows':_0x2e54da}:null;}})[_0xe501('0x2c')](respondWithResult(_0x5d2b76,null))['catch'](handleError(_0x5d2b76,null));};
\ No newline at end of file
+var _0x0c59=['Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','find','params','describe','findOne','Disposition','ChatWebsiteId','findAll','removeDispositions','ids','addAnswer','CannedAnswer','getAnswers','removeAnswers','addLogo','sitepic','file','filename','addAvatar','addCustomerAvatar','customerAvatar','systemAvatar','getLogo','join','server/files/images/logos/default_logo.svg','../../config/license/util','getLicense','root','server/files/images/logos/','download','getAvatar','server/files/images/avatars/default_avatar.png','agentAvatar','existsSync','server/files/images/avatars/','getCustomerAvatar','server/files/images/avatars/customer_avatar.png','showCustomerAvatar','isNil','getSystemAvatar','server/files/images/avatars/system_avatar.png','notify','headers','getResult','chat','Sequelize','no\x20available\x20attributes','difference','createdAt','updatedAt','CompanyId','ListId','from','ValidationError','from\x20is\x20mandatory','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','List','CmContact','Contacts','DESC','Applications','applications','orderBy','asc','account','contact','cf-connecting-ip','x-forwarded-for','first','split','lastName','x-real-port','referer','browser','version','format','%s\x20%s','device','vendor','threadId','ChatInteraction','externalUrl','interaction','spread','firstName','messageId','created','push','close','*,*,*,*','AttachmentId','UserId','unshift','agent','waitForTheAssignedAgent','forcedOwnership','Start','startRouting','EventManager','offline','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKeyOffline\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','mapKeyOffline','mapKeyOffline\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','CmList','MailAccount','findOrCreate','server/files/templates/chatOfflineMessage.ejs','utf8','render','toPairs','ChatOfflineMessage','originalname','mimetype','files','attachments','offline-chat','basename','sequelize','transaction','bulkCreate','MailServerOut','Smtp','forwardOfflineAddress','service','host','port','secure','authentication','auth','pass','SendMail','\x22%s\x22\x20<%s>','email','offlineMessageSubject','MailAccountId','subjectOffline','mapValues','Chat','NotifyMailAccount','notifyMail','server','remove','addInteraction','omit','Contact','User','Owner','fullname','internal','Tag','Tags','color','tag','getSnippet','timezone','indexOf','[%s][INTERVAL][%s]\x20%s\x20%s\x20(%s)','interval','OFFLINE','inspect','No\x20timezone','Interval','Intervals','getProactiveActions','virtual','custom','increment','chatLicenseExceeded','all','some','readFileSync','remote','connection','remoteAddress','alignment','color_button','ChatApplication','findAndCountAll','getApplications','addProactiveActions','ChatProactiveAction','false','offlineForm','onlineForm','items','fromKey','getOfflineMessages','Attachment','Attachments','addAgents','emit','userChatWebsite:save','removeAgents','isArray','userChatWebsite:remove','getAgents','eml-format','zip-dir','request-promise','bluebird','ejs','lodash','squel','desk.js','to-csv','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','redis','defaults','localhost','./chatWebsite.socket','register','client','http','request','then','info','ChatWebsite,\x20%s,\x20%s','request\x20sent','debug','ChatWebsite,\x20%s,\x20%s,\x20%s','stringify','error','message','catch','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','save','update','destroy','ChatWebsites','UserProfileResource','stack','name','send','Pause','mandatoryDispositionPause','map','rawAttributes','type','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','options','ChatWebsite','includeAll','include','rows','show','create','body','user','get'];(function(_0x5d1d99,_0x10ca23){var _0x2957ec=function(_0x4f4ba){while(--_0x4f4ba){_0x5d1d99['push'](_0x5d1d99['shift']());}};_0x2957ec(++_0x10ca23);}(_0x0c59,0xcc));var _0x90c5=function(_0x872b02,_0x4f4458){_0x872b02=_0x872b02-0x0;var _0x1a6b24=_0x0c59[_0x872b02];return _0x1a6b24;};'use strict';var emlformat=require(_0x90c5('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x90c5('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x90c5('0x2'));var moment=require('moment');var BPromise=require(_0x90c5('0x3'));var Mustache=require('mustache');var util=require('util');var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x90c5('0x4'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x90c5('0x5'));var squel=require(_0x90c5('0x6'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x90c5('0x7'));var toCsv=require(_0x90c5('0x8'));var querystring=require('querystring');var Papa=require(_0x90c5('0x9'));var Redis=require(_0x90c5('0xa'));var authService=require(_0x90c5('0xb'));var qs=require(_0x90c5('0xc'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x90c5('0xd'));var logger=require(_0x90c5('0xe'))('api');var utils=require(_0x90c5('0xf'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];config[_0x90c5('0x10')]=_[_0x90c5('0x11')](config[_0x90c5('0x10')],{'host':_0x90c5('0x12'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0x90c5('0x13'))[_0x90c5('0x14')](socket);var jayson=require('jayson/promise');var client=jayson[_0x90c5('0x15')][_0x90c5('0x16')]({'port':0x232c});var client9002=jayson[_0x90c5('0x15')][_0x90c5('0x16')]({'port':0x232a});var client9003=jayson[_0x90c5('0x15')][_0x90c5('0x16')]({'port':0x232b});var client9001=jayson[_0x90c5('0x15')]['http']({'port':0x2329});function respondWithRpcPromise(_0x50bd05,_0x387bc6,_0x10e3c3,_0x19a7db){return new BPromise(function(_0xed4ed2,_0x2e8964){var _0x179c4f=_0x19a7db||client;return _0x179c4f[_0x90c5('0x17')](_0x50bd05,_0x10e3c3)[_0x90c5('0x18')](function(_0x219181){logger[_0x90c5('0x19')](_0x90c5('0x1a'),_0x387bc6,_0x90c5('0x1b'));logger[_0x90c5('0x1c')](_0x90c5('0x1d'),_0x387bc6,_0x90c5('0x1b'),JSON[_0x90c5('0x1e')](_0x219181));if(_0x219181[_0x90c5('0x1f')]){if(_0x219181['error']['code']===0x1f4){logger[_0x90c5('0x1f')](_0x90c5('0x1a'),_0x387bc6,_0x219181[_0x90c5('0x1f')]['message']);return _0x2e8964(_0x219181['error'][_0x90c5('0x20')]);}logger[_0x90c5('0x1f')](_0x90c5('0x1a'),_0x387bc6,_0x219181[_0x90c5('0x1f')]['message']);return _0xed4ed2(_0x219181[_0x90c5('0x1f')][_0x90c5('0x20')]);}else{logger[_0x90c5('0x19')](_0x90c5('0x1a'),_0x387bc6,'request\x20sent');_0xed4ed2(_0x219181['result'][_0x90c5('0x20')]);}})[_0x90c5('0x21')](function(_0x8aaa0b){logger[_0x90c5('0x1f')](_0x90c5('0x1a'),_0x387bc6,_0x8aaa0b);_0x2e8964(_0x8aaa0b);});});}function respondWithStatusCode(_0x3a73c9,_0xfa8ad8){_0xfa8ad8=_0xfa8ad8||0xcc;return function(_0x51a6c1){if(_0x51a6c1){return _0x3a73c9[_0x90c5('0x22')](_0xfa8ad8);}return _0x3a73c9[_0x90c5('0x23')](_0xfa8ad8)[_0x90c5('0x24')]();};}function respondWithResult(_0x1edd38,_0x1fd828){_0x1fd828=_0x1fd828||0xc8;return function(_0x4efca5){if(_0x4efca5){return _0x1edd38['status'](_0x1fd828)[_0x90c5('0x25')](_0x4efca5);}};}function respondWithFilteredResult(_0x50ccc5,_0x42a0ca){return function(_0x100fae){if(_0x100fae){var _0x2ef42f=typeof _0x42a0ca[_0x90c5('0x26')]===_0x90c5('0x27')&&typeof _0x42a0ca[_0x90c5('0x28')]===_0x90c5('0x27');var _0x5e2e54=_0x100fae[_0x90c5('0x29')];var _0x3563e0=_0x2ef42f?0x0:_0x42a0ca[_0x90c5('0x26')];var _0x23fefa=_0x2ef42f?_0x100fae[_0x90c5('0x29')]:_0x42a0ca['offset']+_0x42a0ca[_0x90c5('0x28')];var _0x3a82ac;if(_0x23fefa>=_0x5e2e54){_0x23fefa=_0x5e2e54;_0x3a82ac=0xc8;}else{_0x3a82ac=0xce;}_0x50ccc5[_0x90c5('0x23')](_0x3a82ac);return _0x50ccc5[_0x90c5('0x2a')](_0x90c5('0x2b'),_0x3563e0+'-'+_0x23fefa+'/'+_0x5e2e54)[_0x90c5('0x25')](_0x100fae);}return null;};}function patchUpdates(_0x5640da){return function(_0x12a19e){try{jsonpatch['apply'](_0x12a19e,_0x5640da,!![]);}catch(_0x324762){return BPromise['reject'](_0x324762);}return _0x12a19e[_0x90c5('0x2c')]();};}function saveUpdates(_0x4a7e67,_0x53b44d){return function(_0x162065){if(_0x162065){return _0x162065[_0x90c5('0x2d')](_0x4a7e67)[_0x90c5('0x18')](function(_0x1d552b){return _0x1d552b;});}return null;};}function removeEntity(_0x5c2ab1,_0x9ac506){return function(_0x5a289f){if(_0x5a289f){return _0x5a289f[_0x90c5('0x2e')]()['then'](function(){var _0x326037=_0x5a289f['get']({'plain':!![]});var _0xd48d85=_0x90c5('0x2f');return db[_0x90c5('0x30')]['destroy']({'where':{'type':_0xd48d85,'resourceId':_0x326037['id']}})['then'](function(){return _0x5a289f;});})['then'](function(){_0x5c2ab1[_0x90c5('0x23')](0xcc)['end']();});}};}function handleEntityNotFound(_0x42d36f,_0x475ea9){return function(_0x45f0fc){if(!_0x45f0fc){_0x42d36f[_0x90c5('0x22')](0x194);}return _0x45f0fc;};}function handleError(_0x7bbfb1,_0x464bbb){_0x464bbb=_0x464bbb||0x1f4;return function(_0x3052bd){logger[_0x90c5('0x1f')](_0x3052bd[_0x90c5('0x31')]);if(_0x3052bd['name']){delete _0x3052bd[_0x90c5('0x32')];}_0x7bbfb1[_0x90c5('0x23')](_0x464bbb)[_0x90c5('0x33')](_0x3052bd);};}exports['index']=function(_0x57ea63,_0x1daa9f){var _0x2422f6={'include':[{'model':db[_0x90c5('0x34')],'as':_0x90c5('0x35')}]},_0x183cd6={},_0x3381a7={'count':0x0,'rows':[]};var _0x1ea61c=_[_0x90c5('0x36')](db['ChatWebsite'][_0x90c5('0x37')],function(_0x1063fd){return{'name':_0x1063fd['fieldName'],'type':_0x1063fd[_0x90c5('0x38')]['key']};});_0x183cd6[_0x90c5('0x39')]=_[_0x90c5('0x36')](_0x1ea61c,_0x90c5('0x32'));_0x183cd6[_0x90c5('0x3a')]=_[_0x90c5('0x3b')](_0x57ea63['query']);_0x183cd6[_0x90c5('0x3c')]=_[_0x90c5('0x3d')](_0x183cd6[_0x90c5('0x39')],_0x183cd6[_0x90c5('0x3a')]);_0x2422f6[_0x90c5('0x3e')]=_['intersection'](_0x183cd6['model'],qs[_0x90c5('0x3f')](_0x57ea63['query'][_0x90c5('0x3f')]));_0x2422f6[_0x90c5('0x3e')]=_0x2422f6['attributes'][_0x90c5('0x40')]?_0x2422f6[_0x90c5('0x3e')]:_0x183cd6[_0x90c5('0x39')];if(!_0x57ea63['query'][_0x90c5('0x41')](_0x90c5('0x42'))){_0x2422f6[_0x90c5('0x28')]=qs[_0x90c5('0x28')](_0x57ea63[_0x90c5('0x3a')][_0x90c5('0x28')]);_0x2422f6[_0x90c5('0x26')]=qs[_0x90c5('0x26')](_0x57ea63[_0x90c5('0x3a')]['offset']);}_0x2422f6[_0x90c5('0x43')]=qs[_0x90c5('0x44')](_0x57ea63[_0x90c5('0x3a')][_0x90c5('0x44')]);_0x2422f6[_0x90c5('0x45')]=qs[_0x90c5('0x3c')](_[_0x90c5('0x46')](_0x57ea63[_0x90c5('0x3a')],_0x183cd6[_0x90c5('0x3c')]),_0x1ea61c);if(_0x57ea63['query'][_0x90c5('0x47')]){_0x2422f6[_0x90c5('0x45')]=_[_0x90c5('0x48')](_0x2422f6[_0x90c5('0x45')],{'$or':_[_0x90c5('0x36')](_0x1ea61c,function(_0xbe981a){if(_0xbe981a['type']!=='VIRTUAL'){var _0x48825a={};_0x48825a[_0xbe981a['name']]={'$like':'%'+_0x57ea63['query'][_0x90c5('0x47')]+'%'};return _0x48825a;}})});}_0x2422f6=_[_0x90c5('0x48')]({},_0x2422f6,_0x57ea63[_0x90c5('0x49')]);var _0x5c2f77={'where':_0x2422f6[_0x90c5('0x45')]};return db[_0x90c5('0x4a')][_0x90c5('0x29')](_0x5c2f77)[_0x90c5('0x18')](function(_0x5b0225){_0x3381a7['count']=_0x5b0225;if(_0x57ea63[_0x90c5('0x3a')][_0x90c5('0x4b')]){_0x2422f6[_0x90c5('0x4c')]=[{'all':!![]}];}return db[_0x90c5('0x4a')]['findAll'](_0x2422f6);})[_0x90c5('0x18')](function(_0x491b3b){_0x3381a7[_0x90c5('0x4d')]=_0x491b3b;return _0x3381a7;})[_0x90c5('0x18')](respondWithFilteredResult(_0x1daa9f,_0x2422f6))['catch'](handleError(_0x1daa9f,null));};exports[_0x90c5('0x4e')]=function(_0xc2cd0f,_0x25f30e){var _0x5a43be={'raw':![],'where':{'id':_0xc2cd0f['params']['id']},'include':[{'model':db[_0x90c5('0x34')],'as':_0x90c5('0x35')}]},_0x1ffee1={};_0x1ffee1['model']=_[_0x90c5('0x3b')](db[_0x90c5('0x4a')][_0x90c5('0x37')]);_0x1ffee1[_0x90c5('0x3a')]=_[_0x90c5('0x3b')](_0xc2cd0f[_0x90c5('0x3a')]);_0x1ffee1[_0x90c5('0x3c')]=_[_0x90c5('0x3d')](_0x1ffee1['model'],_0x1ffee1[_0x90c5('0x3a')]);_0x5a43be[_0x90c5('0x3e')]=_[_0x90c5('0x3d')](_0x1ffee1[_0x90c5('0x39')],qs['fields'](_0xc2cd0f['query'][_0x90c5('0x3f')]));_0x5a43be[_0x90c5('0x3e')]=_0x5a43be['attributes'][_0x90c5('0x40')]?_0x5a43be['attributes']:_0x1ffee1[_0x90c5('0x39')];if(_0xc2cd0f['query'][_0x90c5('0x4b')]){_0x5a43be[_0x90c5('0x4c')]=[{'all':!![]}];}_0x5a43be=_[_0x90c5('0x48')]({},_0x5a43be,_0xc2cd0f[_0x90c5('0x49')]);return db['ChatWebsite']['find'](_0x5a43be)[_0x90c5('0x18')](handleEntityNotFound(_0x25f30e,null))[_0x90c5('0x18')](respondWithResult(_0x25f30e,null))[_0x90c5('0x21')](handleError(_0x25f30e,null));};exports[_0x90c5('0x4f')]=function(_0x3ae09e,_0x28822c){return db['ChatWebsite'][_0x90c5('0x4f')](_0x3ae09e[_0x90c5('0x50')],{})[_0x90c5('0x18')](function(_0x4ae575){var _0x5a76c3=_0x3ae09e[_0x90c5('0x51')][_0x90c5('0x52')]({'plain':!![]});if(!_0x5a76c3)throw new Error(_0x90c5('0x53'));if(_0x5a76c3[_0x90c5('0x54')]===_0x90c5('0x51')){var _0x551e53=_0x4ae575[_0x90c5('0x52')]({'plain':!![]});var _0xe97b53=_0x90c5('0x2f');return db[_0x90c5('0x55')]['find']({'where':{'name':_0xe97b53,'userProfileId':_0x5a76c3[_0x90c5('0x56')]},'raw':!![]})[_0x90c5('0x18')](function(_0x50a7a8){if(_0x50a7a8&&_0x50a7a8[_0x90c5('0x57')]===0x0){return db[_0x90c5('0x30')][_0x90c5('0x4f')]({'name':_0x551e53['name'],'resourceId':_0x551e53['id'],'type':_0x50a7a8[_0x90c5('0x32')],'sectionId':_0x50a7a8['id']},{})[_0x90c5('0x18')](function(){return _0x4ae575;});}else{return _0x4ae575;}})[_0x90c5('0x21')](function(_0x2b8303){logger[_0x90c5('0x1f')](_0x90c5('0x58'),_0x2b8303);throw _0x2b8303;});}return _0x4ae575;})[_0x90c5('0x18')](respondWithResult(_0x28822c,0xc9))[_0x90c5('0x21')](handleError(_0x28822c,null));};exports[_0x90c5('0x2d')]=function(_0x2bfae1,_0x53ce9e){if(_0x2bfae1[_0x90c5('0x50')]['id']){delete _0x2bfae1['body']['id'];}return db[_0x90c5('0x4a')]['find']({'where':{'id':_0x2bfae1['params']['id']},'include':[{'model':db[_0x90c5('0x34')],'as':'mandatoryDispositionPause'}]})['then'](handleEntityNotFound(_0x53ce9e,null))[_0x90c5('0x18')](saveUpdates(_0x2bfae1[_0x90c5('0x50')],null))[_0x90c5('0x18')](respondWithResult(_0x53ce9e,null))['catch'](handleError(_0x53ce9e,null));};exports['destroy']=function(_0x103d8c,_0x1181ea){return db[_0x90c5('0x4a')][_0x90c5('0x59')]({'where':{'id':_0x103d8c[_0x90c5('0x5a')]['id']}})[_0x90c5('0x18')](handleEntityNotFound(_0x1181ea,null))[_0x90c5('0x18')](removeEntity(_0x1181ea,null))[_0x90c5('0x21')](handleError(_0x1181ea,null));};exports['describe']=function(_0x26884a,_0x587c1a){return db[_0x90c5('0x4a')][_0x90c5('0x5b')]()[_0x90c5('0x18')](respondWithResult(_0x587c1a,null))[_0x90c5('0x21')](handleError(_0x587c1a,null));};exports['addDisposition']=function(_0x4e9ad2,_0x5c3f3b,_0x372883){if(_0x4e9ad2[_0x90c5('0x50')]['id']){delete _0x4e9ad2[_0x90c5('0x50')]['id'];}return db[_0x90c5('0x4a')]['find']({'where':{'id':_0x4e9ad2[_0x90c5('0x5a')]['id']}})['then'](handleEntityNotFound(_0x5c3f3b,null))['then'](function(_0x13b3ac){if(_0x13b3ac){_0x4e9ad2[_0x90c5('0x50')]['ChatWebsiteId']=_0x13b3ac['id'];return db['Disposition']['create'](_0x4e9ad2['body']);}})['then'](respondWithResult(_0x5c3f3b,null))[_0x90c5('0x21')](handleError(_0x5c3f3b,null));};exports['getDispositions']=function(_0x15523f,_0x32471f,_0x53e8dd){var _0x28eeda={'raw':![],'where':{}};var _0x4af0ca={};var _0x4b1eb9={'count':0x0,'rows':[]};return db[_0x90c5('0x4a')][_0x90c5('0x5c')]({'where':{'id':_0x15523f[_0x90c5('0x5a')]['id']}})[_0x90c5('0x18')](handleEntityNotFound(_0x32471f,null))[_0x90c5('0x18')](function(_0x2f989e){if(_0x2f989e){_0x4af0ca[_0x90c5('0x39')]=_[_0x90c5('0x3b')](db[_0x90c5('0x5d')][_0x90c5('0x37')]);_0x4af0ca[_0x90c5('0x3a')]=_[_0x90c5('0x3b')](_0x15523f[_0x90c5('0x3a')]);_0x4af0ca[_0x90c5('0x3c')]=_['intersection'](_0x4af0ca[_0x90c5('0x39')],_0x4af0ca[_0x90c5('0x3a')]);_0x28eeda[_0x90c5('0x3e')]=_[_0x90c5('0x3d')](_0x4af0ca[_0x90c5('0x39')],qs[_0x90c5('0x3f')](_0x15523f[_0x90c5('0x3a')][_0x90c5('0x3f')]));_0x28eeda['attributes']=_0x28eeda['attributes']['length']?_0x28eeda[_0x90c5('0x3e')]:_0x4af0ca[_0x90c5('0x39')];if(!_0x15523f[_0x90c5('0x3a')]['hasOwnProperty'](_0x90c5('0x42'))){_0x28eeda[_0x90c5('0x28')]=qs[_0x90c5('0x28')](_0x15523f[_0x90c5('0x3a')][_0x90c5('0x28')]);_0x28eeda['offset']=qs[_0x90c5('0x26')](_0x15523f[_0x90c5('0x3a')]['offset']);}_0x28eeda[_0x90c5('0x43')]=qs[_0x90c5('0x44')](_0x15523f[_0x90c5('0x3a')][_0x90c5('0x44')]);_0x28eeda[_0x90c5('0x45')]=qs[_0x90c5('0x3c')](_[_0x90c5('0x46')](_0x15523f[_0x90c5('0x3a')],_0x4af0ca[_0x90c5('0x3c')]));_0x28eeda[_0x90c5('0x45')][_0x90c5('0x5e')]=_0x2f989e['id'];if(_0x15523f[_0x90c5('0x3a')]['filter']){_0x28eeda[_0x90c5('0x45')]=_[_0x90c5('0x48')](_0x28eeda[_0x90c5('0x45')],{'$or':_[_0x90c5('0x36')](_0x28eeda[_0x90c5('0x3e')],function(_0xcb976a){var _0x522de9={};_0x522de9[_0xcb976a]={'$like':'%'+_0x15523f[_0x90c5('0x3a')][_0x90c5('0x47')]+'%'};return _0x522de9;})});}_0x28eeda=_[_0x90c5('0x48')]({},_0x28eeda,_0x15523f[_0x90c5('0x49')]);return db['Disposition']['count']({'where':_0x28eeda[_0x90c5('0x45')]})['then'](function(_0x24ae8a){_0x4b1eb9[_0x90c5('0x29')]=_0x24ae8a;if(_0x15523f[_0x90c5('0x3a')][_0x90c5('0x4b')]){_0x28eeda[_0x90c5('0x4c')]=[{'all':!![]}];}return db[_0x90c5('0x5d')][_0x90c5('0x5f')](_0x28eeda);})[_0x90c5('0x18')](function(_0x4c7e37){_0x4b1eb9[_0x90c5('0x4d')]=_0x4c7e37;return _0x4b1eb9;});}})[_0x90c5('0x18')](respondWithFilteredResult(_0x32471f,_0x28eeda))[_0x90c5('0x21')](handleError(_0x32471f,null));};exports[_0x90c5('0x60')]=function(_0x539c8a,_0x519abf,_0x231697){return db[_0x90c5('0x4a')]['find']({'where':{'id':_0x539c8a['params']['id']}})[_0x90c5('0x18')](handleEntityNotFound(_0x519abf,null))[_0x90c5('0x18')](function(_0xf43e67){if(_0xf43e67){return _0xf43e67[_0x90c5('0x60')](_0x539c8a[_0x90c5('0x3a')][_0x90c5('0x61')]);}})[_0x90c5('0x18')](respondWithStatusCode(_0x519abf,null))[_0x90c5('0x21')](handleError(_0x519abf,null));};exports[_0x90c5('0x62')]=function(_0x2097aa,_0x467e05,_0x19958f){if(_0x2097aa[_0x90c5('0x50')]['id']){delete _0x2097aa['body']['id'];}return db[_0x90c5('0x4a')][_0x90c5('0x59')]({'where':{'id':_0x2097aa[_0x90c5('0x5a')]['id']}})[_0x90c5('0x18')](handleEntityNotFound(_0x467e05,null))[_0x90c5('0x18')](function(_0x2bc0b6){if(_0x2bc0b6){_0x2097aa[_0x90c5('0x50')][_0x90c5('0x5e')]=_0x2bc0b6['id'];return db[_0x90c5('0x63')][_0x90c5('0x4f')](_0x2097aa[_0x90c5('0x50')]);}})[_0x90c5('0x18')](respondWithResult(_0x467e05,null))[_0x90c5('0x21')](handleError(_0x467e05,null));};exports[_0x90c5('0x64')]=function(_0x1e3a49,_0x18e131,_0x3c833a){var _0x4b90e0={'raw':![],'where':{}};var _0x48dd53={};var _0x91b241={'count':0x0,'rows':[]};return db[_0x90c5('0x4a')][_0x90c5('0x5c')]({'where':{'id':_0x1e3a49[_0x90c5('0x5a')]['id']}})[_0x90c5('0x18')](handleEntityNotFound(_0x18e131,null))['then'](function(_0x46a18d){if(_0x46a18d){_0x48dd53[_0x90c5('0x39')]=_[_0x90c5('0x3b')](db['CannedAnswer'][_0x90c5('0x37')]);_0x48dd53[_0x90c5('0x3a')]=_['keys'](_0x1e3a49['query']);_0x48dd53[_0x90c5('0x3c')]=_[_0x90c5('0x3d')](_0x48dd53[_0x90c5('0x39')],_0x48dd53[_0x90c5('0x3a')]);_0x4b90e0[_0x90c5('0x3e')]=_['intersection'](_0x48dd53[_0x90c5('0x39')],qs[_0x90c5('0x3f')](_0x1e3a49['query'][_0x90c5('0x3f')]));_0x4b90e0[_0x90c5('0x3e')]=_0x4b90e0[_0x90c5('0x3e')][_0x90c5('0x40')]?_0x4b90e0[_0x90c5('0x3e')]:_0x48dd53[_0x90c5('0x39')];if(!_0x1e3a49[_0x90c5('0x3a')][_0x90c5('0x41')](_0x90c5('0x42'))){_0x4b90e0[_0x90c5('0x28')]=qs[_0x90c5('0x28')](_0x1e3a49['query'][_0x90c5('0x28')]);_0x4b90e0[_0x90c5('0x26')]=qs[_0x90c5('0x26')](_0x1e3a49[_0x90c5('0x3a')]['offset']);}_0x4b90e0[_0x90c5('0x43')]=qs[_0x90c5('0x44')](_0x1e3a49[_0x90c5('0x3a')]['sort']);_0x4b90e0['where']=qs[_0x90c5('0x3c')](_['pick'](_0x1e3a49[_0x90c5('0x3a')],_0x48dd53['filters']));_0x4b90e0[_0x90c5('0x45')][_0x90c5('0x5e')]=_0x46a18d['id'];if(_0x1e3a49[_0x90c5('0x3a')]['filter']){_0x4b90e0[_0x90c5('0x45')]=_['merge'](_0x4b90e0[_0x90c5('0x45')],{'$or':_[_0x90c5('0x36')](_0x4b90e0['attributes'],function(_0x2a76bd){var _0x1ea6a1={};_0x1ea6a1[_0x2a76bd]={'$like':'%'+_0x1e3a49['query'][_0x90c5('0x47')]+'%'};return _0x1ea6a1;})});}_0x4b90e0=_['merge']({},_0x4b90e0,_0x1e3a49[_0x90c5('0x49')]);return db[_0x90c5('0x63')][_0x90c5('0x29')]({'where':_0x4b90e0[_0x90c5('0x45')]})['then'](function(_0x545530){_0x91b241[_0x90c5('0x29')]=_0x545530;if(_0x1e3a49[_0x90c5('0x3a')][_0x90c5('0x4b')]){_0x4b90e0[_0x90c5('0x4c')]=[{'all':!![]}];}return db['CannedAnswer'][_0x90c5('0x5f')](_0x4b90e0);})[_0x90c5('0x18')](function(_0x48a1cd){_0x91b241['rows']=_0x48a1cd;return _0x91b241;});}})[_0x90c5('0x18')](respondWithFilteredResult(_0x18e131,_0x4b90e0))[_0x90c5('0x21')](handleError(_0x18e131,null));};exports[_0x90c5('0x65')]=function(_0xe2d459,_0x2556ba,_0x57d80a){return db[_0x90c5('0x4a')][_0x90c5('0x59')]({'where':{'id':_0xe2d459['params']['id']}})['then'](handleEntityNotFound(_0x2556ba,null))[_0x90c5('0x18')](function(_0x4f16ab){if(_0x4f16ab){return _0x4f16ab[_0x90c5('0x65')](_0xe2d459[_0x90c5('0x3a')]['ids']);}})['then'](respondWithStatusCode(_0x2556ba,null))[_0x90c5('0x21')](handleError(_0x2556ba,null));};exports[_0x90c5('0x66')]=function(_0x49c69b,_0x5a524f,_0x27cce7){_0x49c69b[_0x90c5('0x50')][_0x90c5('0x67')]=_0x49c69b[_0x90c5('0x68')][_0x90c5('0x69')];return db['ChatWebsite'][_0x90c5('0x59')]({'where':{'id':_0x49c69b[_0x90c5('0x5a')]['id']}})[_0x90c5('0x18')](handleEntityNotFound(_0x5a524f,null))[_0x90c5('0x18')](saveUpdates(_0x49c69b[_0x90c5('0x50')],null))['then'](respondWithResult(_0x5a524f,null))['catch'](handleError(_0x5a524f,null));};exports[_0x90c5('0x6a')]=function(_0x5c160c,_0x469a4e,_0x4b3748){_0x5c160c['body']['agentAvatar']=_0x5c160c[_0x90c5('0x68')][_0x90c5('0x69')];return db[_0x90c5('0x4a')][_0x90c5('0x59')]({'where':{'id':_0x5c160c[_0x90c5('0x5a')]['id']}})[_0x90c5('0x18')](handleEntityNotFound(_0x469a4e,null))[_0x90c5('0x18')](saveUpdates(_0x5c160c[_0x90c5('0x50')],null))[_0x90c5('0x18')](respondWithResult(_0x469a4e,null))[_0x90c5('0x21')](handleError(_0x469a4e,null));};exports[_0x90c5('0x6b')]=function(_0x533728,_0xaef486,_0x46a968){_0x533728['body'][_0x90c5('0x6c')]=_0x533728['file'][_0x90c5('0x69')];return db[_0x90c5('0x4a')]['find']({'where':{'id':_0x533728[_0x90c5('0x5a')]['id']}})[_0x90c5('0x18')](handleEntityNotFound(_0xaef486,null))[_0x90c5('0x18')](saveUpdates(_0x533728['body'],null))[_0x90c5('0x18')](respondWithResult(_0xaef486,null))[_0x90c5('0x21')](handleError(_0xaef486,null));};exports['addSystemAvatar']=function(_0x5034e7,_0x1f5933,_0x52675a){_0x5034e7[_0x90c5('0x50')][_0x90c5('0x6d')]=_0x5034e7['file'][_0x90c5('0x69')];return db[_0x90c5('0x4a')][_0x90c5('0x59')]({'where':{'id':_0x5034e7[_0x90c5('0x5a')]['id']}})['then'](handleEntityNotFound(_0x1f5933,null))[_0x90c5('0x18')](saveUpdates(_0x5034e7[_0x90c5('0x50')],null))[_0x90c5('0x18')](respondWithResult(_0x1f5933,null))[_0x90c5('0x21')](handleError(_0x1f5933,null));};exports[_0x90c5('0x6e')]=function(_0x36e9d6,_0x11391b,_0x4919a2){var _0x4b3558=path[_0x90c5('0x6f')](config['root'],_0x90c5('0x70'));var _0x15d7be={'where':{'id':_0x36e9d6['params']['id']},'attributes':['id',_0x90c5('0x67')],'raw':!![]};var _0x3c7df1=![];return require(_0x90c5('0x71'))[_0x90c5('0x72')]()[_0x90c5('0x18')](function(_0x29dbb6){if(_0x29dbb6){_0x3c7df1=_0x29dbb6['custom'];}})[_0x90c5('0x18')](function(){return db[_0x90c5('0x4a')][_0x90c5('0x59')](_0x15d7be);})[_0x90c5('0x18')](handleEntityNotFound(_0x11391b,null))[_0x90c5('0x18')](function(_0x474522){if(_0x474522){if(!_['isNil'](_0x474522['sitepic'])){if(fs['existsSync'](path['join'](config[_0x90c5('0x73')],_0x90c5('0x74'),_0x474522['sitepic']))&&_0x3c7df1){_0x4b3558=path[_0x90c5('0x6f')](config['root'],'server/files/images/logos/',_0x474522[_0x90c5('0x67')]);}}return _0x11391b[_0x90c5('0x75')](_0x4b3558);}})[_0x90c5('0x21')](handleError(_0x11391b,null));};exports[_0x90c5('0x76')]=function(_0x3b23c9,_0x76d96f,_0x3555fd){var _0x5b5cea=path[_0x90c5('0x6f')](config[_0x90c5('0x73')],_0x90c5('0x77'));var _0x59ee06={'where':{'id':_0x3b23c9[_0x90c5('0x5a')]['id']},'attributes':['id',_0x90c5('0x78')],'raw':!![]};return db['ChatWebsite'][_0x90c5('0x59')](_0x59ee06)[_0x90c5('0x18')](handleEntityNotFound(_0x76d96f,null))[_0x90c5('0x18')](function(_0x3723b8){if(_0x3723b8){if(!_['isNil'](_0x3723b8[_0x90c5('0x78')])){if(fs[_0x90c5('0x79')](path['join'](config[_0x90c5('0x73')],_0x90c5('0x7a'),_0x3723b8['agentAvatar']))){_0x5b5cea=path[_0x90c5('0x6f')](config['root'],_0x90c5('0x7a'),_0x3723b8[_0x90c5('0x78')]);}}return _0x76d96f[_0x90c5('0x75')](_0x5b5cea);}})[_0x90c5('0x21')](handleError(_0x76d96f,null));};exports[_0x90c5('0x7b')]=function(_0x2b58ed,_0x506a44,_0x392739){var _0x5d8a76=path[_0x90c5('0x6f')](config[_0x90c5('0x73')],_0x90c5('0x7c'));var _0x471df8={'where':{'id':_0x2b58ed[_0x90c5('0x5a')]['id']},'attributes':['id',_0x90c5('0x6c'),_0x90c5('0x7d')],'raw':!![]};return db[_0x90c5('0x4a')][_0x90c5('0x59')](_0x471df8)['then'](handleEntityNotFound(_0x506a44,null))[_0x90c5('0x18')](function(_0x1a9f2a){if(_0x1a9f2a){if(!_[_0x90c5('0x7e')](_0x1a9f2a[_0x90c5('0x6c')])){if(fs[_0x90c5('0x79')](path['join'](config[_0x90c5('0x73')],'server/files/images/avatars/',_0x1a9f2a['customerAvatar']))&&_0x1a9f2a[_0x90c5('0x7d')]){_0x5d8a76=path[_0x90c5('0x6f')](config[_0x90c5('0x73')],'server/files/images/avatars/',_0x1a9f2a[_0x90c5('0x6c')]);}}return _0x506a44[_0x90c5('0x75')](_0x5d8a76);}})[_0x90c5('0x21')](handleError(_0x506a44,null));};exports[_0x90c5('0x7f')]=function(_0x2a72d4,_0x569c74,_0x388945){var _0x2a3e8b=path['join'](config[_0x90c5('0x73')],_0x90c5('0x80'));var _0x6cbe1={'where':{'id':_0x2a72d4['params']['id']},'attributes':['id',_0x90c5('0x6d')],'raw':!![]};return db[_0x90c5('0x4a')][_0x90c5('0x59')](_0x6cbe1)[_0x90c5('0x18')](handleEntityNotFound(_0x569c74,null))[_0x90c5('0x18')](function(_0x1f8837){if(_0x1f8837){if(!_[_0x90c5('0x7e')](_0x1f8837[_0x90c5('0x6d')])){if(fs['existsSync'](path[_0x90c5('0x6f')](config[_0x90c5('0x73')],'server/files/images/avatars/',_0x1f8837[_0x90c5('0x6d')]))){_0x2a3e8b=path[_0x90c5('0x6f')](config['root'],_0x90c5('0x7a'),_0x1f8837[_0x90c5('0x6d')]);}}return _0x569c74[_0x90c5('0x75')](_0x2a3e8b);}})['catch'](handleError(_0x569c74,null));};exports[_0x90c5('0x81')]=function(_0x4ebd85,_0x235451,_0x2e90b1){var _0x6848dd=require('user-agent-parser');var _0x34d65e=new _0x6848dd();var _0x309b7b=_0x34d65e['setUA'](_0x4ebd85[_0x90c5('0x82')]['user-agent'])[_0x90c5('0x83')]();var _0x2e6e1d={'body':_0x4ebd85[_0x90c5('0x50')],'channel':_0x90c5('0x84')};var _0x331411=[];var _0x485202=[];var _0x4f0978={};var _0x284df9=![];return db['CmContact'][_0x90c5('0x5b')]()[_0x90c5('0x18')](function(_0x10ae1f){if(!_0x10ae1f){throw new db[(_0x90c5('0x85'))]['ValidationError'](_0x90c5('0x86'));}_0x331411=_[_0x90c5('0x87')](_[_0x90c5('0x3b')](_0x10ae1f),[_0x90c5('0x88'),_0x90c5('0x89')]);_0x485202=_[_0x90c5('0x87')](_[_0x90c5('0x3b')](_0x10ae1f),[_0x90c5('0x88'),'updatedAt',_0x90c5('0x8a'),_0x90c5('0x8b')]);if(_0x4ebd85[_0x90c5('0x50')]['id']){delete _0x4ebd85[_0x90c5('0x50')]['id'];}if(_[_0x90c5('0x7e')](_0x4ebd85[_0x90c5('0x50')][_0x90c5('0x8c')])){throw new db['Sequelize'][(_0x90c5('0x8d'))](_0x90c5('0x8e'));}if(_[_0x90c5('0x7e')](_0x4ebd85[_0x90c5('0x50')]['body'])||_0x4ebd85[_0x90c5('0x50')][_0x90c5('0x50')]===''){throw new db['Sequelize'][(_0x90c5('0x8d'))]('body\x20is\x20mandatory\x20and\x20not\x20empty');}if(_[_0x90c5('0x7e')](_0x4ebd85[_0x90c5('0x50')][_0x90c5('0x8f')])){throw new db[(_0x90c5('0x85'))]['ValidationError'](_0x90c5('0x90')+_0x485202);}if(!_[_0x90c5('0x91')](_0x485202,_0x4ebd85['body']['mapKey'])){throw new db[(_0x90c5('0x85'))][(_0x90c5('0x8d'))]('mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x485202);}_0x4f0978[_0x4ebd85[_0x90c5('0x50')][_0x90c5('0x8f')]]=_0x4ebd85[_0x90c5('0x50')][_0x90c5('0x8c')];})['then'](function(){return db[_0x90c5('0x4a')][_0x90c5('0x59')]({'where':{'id':_0x4ebd85['params']['id']},'include':[{'model':db['CmList'],'as':_0x90c5('0x92'),'include':[{'model':db[_0x90c5('0x93')],'as':_0x90c5('0x94'),'where':_0x4f0978,'limit':0x1,'order':[[_0x90c5('0x89'),_0x90c5('0x95')]]}]},{'model':db['ChatApplication'],'as':_0x90c5('0x96')}]});})['then'](handleEntityNotFound(_0x235451,null))['then'](function(_0x79122e){if(_0x79122e&&_0x79122e[_0x90c5('0x92')]){_0x2e6e1d['account']=_0x79122e;_0x2e6e1d[_0x90c5('0x97')]=_0x79122e[_0x90c5('0x96')];_0x2e6e1d['list']=_0x79122e[_0x90c5('0x92')];_0x2e6e1d[_0x90c5('0x97')]=_[_0x90c5('0x98')](_0x2e6e1d['applications'],['priority'],[_0x90c5('0x99')]);if(_0x2e6e1d[_0x90c5('0x9a')][_0x90c5('0x96')]){delete _0x2e6e1d[_0x90c5('0x9a')][_0x90c5('0x96')];}if(_0x2e6e1d[_0x90c5('0x9a')][_0x90c5('0x92')]&&_0x2e6e1d[_0x90c5('0x9a')]['List'][_0x90c5('0x94')][_0x90c5('0x40')]){return _0x2e6e1d[_0x90c5('0x9a')][_0x90c5('0x92')][_0x90c5('0x94')][0x0];}var _0x11c5ea=_[_0x90c5('0x11')](_0x4ebd85[_0x90c5('0x50')],{'firstName':_0x4ebd85[_0x90c5('0x50')][_0x90c5('0x8c')],'ListId':_0x79122e[_0x90c5('0x8b')]});_0x11c5ea[_0x4ebd85[_0x90c5('0x50')][_0x90c5('0x8f')]]=_0x4ebd85[_0x90c5('0x50')]['from'];return db[_0x90c5('0x93')][_0x90c5('0x4f')](_0x11c5ea,{'fields':_0x331411,'raw':!![]});}})[_0x90c5('0x18')](handleEntityNotFound(_0x235451,null))[_0x90c5('0x18')](function(_0x45dc42){_0x2e6e1d[_0x90c5('0x9b')]=_0x45dc42;var _0x17d337=_0x4ebd85[_0x90c5('0x50')]['customerIp'];if(_0x4ebd85[_0x90c5('0x82')][_0x90c5('0x9c')]){_0x17d337=_0x4ebd85[_0x90c5('0x82')][_0x90c5('0x9c')];}else if(_0x4ebd85['headers'][_0x90c5('0x9d')]){_0x17d337=_[_0x90c5('0x9e')](_0x4ebd85[_0x90c5('0x82')][_0x90c5('0x9d')][_0x90c5('0x9f')](','));}if(_0x45dc42){var _0x3eb63f={'ContactId':_0x45dc42['id'],'ChatWebsiteId':_0x4ebd85[_0x90c5('0x5a')]['id'],'from':(_0x45dc42['firstName']||'')+'\x20'+(_0x45dc42[_0x90c5('0xa0')]||''),'customerIp':_0x17d337,'customerPort':_0x4ebd85[_0x90c5('0x82')][_0x90c5('0xa1')]?_0x4ebd85[_0x90c5('0x82')][_0x90c5('0xa1')]:null,'referer':_0x4ebd85[_0x90c5('0x50')][_0x90c5('0xa2')],'browserName':_0x309b7b[_0x90c5('0xa3')]['name']&&_0x309b7b['browser'][_0x90c5('0xa4')]?util[_0x90c5('0xa5')](_0x90c5('0xa6'),_0x309b7b[_0x90c5('0xa3')][_0x90c5('0x32')],_0x309b7b['browser']['version']):'unknown','browserVersion':_0x309b7b[_0x90c5('0xa3')][_0x90c5('0xa4')]||'unknown','osName':util[_0x90c5('0xa5')]('%s\x20%s',_0x309b7b['os']['name'],_0x309b7b['os'][_0x90c5('0xa4')]),'osVersion':_0x309b7b['os'][_0x90c5('0xa4')],'deviceModel':_0x309b7b[_0x90c5('0xa7')][_0x90c5('0x39')]&&_0x309b7b['device'][_0x90c5('0xa8')]?util[_0x90c5('0xa5')]('%s\x20%s\x20%s',_0x309b7b[_0x90c5('0xa7')]['model'],_0x309b7b[_0x90c5('0xa7')][_0x90c5('0xa8')],_0x309b7b[_0x90c5('0xa7')][_0x90c5('0x38')]):null,'deviceVendor':_0x309b7b['device']['vendor'],'deviceType':_0x309b7b[_0x90c5('0xa7')][_0x90c5('0x38')],'formData':JSON[_0x90c5('0x1e')](_0x4ebd85[_0x90c5('0x50')])};var _0xdf8a9f={'ChatWebsiteId':_0x4ebd85[_0x90c5('0x5a')]['id'],'closed':![]};if(_0x4ebd85[_0x90c5('0x50')][_0x90c5('0xa9')]){_0xdf8a9f[_0x90c5('0xa9')]=_0x4ebd85[_0x90c5('0x50')][_0x90c5('0xa9')];return db[_0x90c5('0xaa')][_0x90c5('0x59')]({'where':_0xdf8a9f})['then'](function(_0x16eb7b){if(_0x16eb7b){return[_0x16eb7b,![]];}_0x3eb63f[_0x90c5('0xa9')]=_0x4ebd85[_0x90c5('0x50')][_0x90c5('0xa9')];_0x3eb63f['externalUrl']=_0x4ebd85[_0x90c5('0x50')][_0x90c5('0xab')];return db[_0x90c5('0xaa')]['create'](_0x3eb63f)[_0x90c5('0x18')](function(_0x5ecef7){return[_0x5ecef7,!![]];});});}_0xdf8a9f['ContactId']=_0x45dc42['id'];if(_0x4ebd85[_0x90c5('0x50')][_0x90c5('0xac')]&&_0x4ebd85[_0x90c5('0x50')][_0x90c5('0xac')]['id']){_0xdf8a9f['id']=_0x4ebd85[_0x90c5('0x50')][_0x90c5('0xac')]['id'];return db[_0x90c5('0xaa')][_0x90c5('0x59')]({'where':_0xdf8a9f})[_0x90c5('0x18')](function(_0x46b7d6){if(_0x46b7d6){return[_0x46b7d6,![]];}return db[_0x90c5('0xaa')][_0x90c5('0x4f')](_0x3eb63f)[_0x90c5('0x18')](function(_0x4be7cf){return[_0x4be7cf,!![]];});});}return db[_0x90c5('0xaa')][_0x90c5('0x4f')](_0x3eb63f)[_0x90c5('0x18')](function(_0x558d5a){return[_0x558d5a,!![]];});}})[_0x90c5('0xad')](function(_0x48895e,_0x343cb4){if(_0x48895e){_0x284df9=_0x343cb4;if(!_0x343cb4){var _0x94f209={'from':(_0x2e6e1d[_0x90c5('0x9b')][_0x90c5('0xae')]||'')+'\x20'+(_0x2e6e1d[_0x90c5('0x9b')][_0x90c5('0xa0')]||'')};if(_0x4ebd85[_0x90c5('0x50')]['threadId']&&_0x4ebd85[_0x90c5('0x50')]['messageId']&&_0x4ebd85['body']['threadId']!=_0x4ebd85[_0x90c5('0x50')]['messageId']){_0x94f209[_0x90c5('0xa9')]=_0x4ebd85[_0x90c5('0x50')][_0x90c5('0xaf')];}return _0x48895e[_0x90c5('0x2d')](_0x94f209);}else{return _0x48895e;}}})['then'](function(_0x158a62){_0x2e6e1d[_0x90c5('0xac')]=_0x158a62[_0x90c5('0x52')]({'plain':!![]});_0x2e6e1d[_0x90c5('0xac')][_0x90c5('0xb0')]=_0x284df9;if(_0x2e6e1d[_0x90c5('0xac')][_0x90c5('0xb0')]){if(_0x2e6e1d[_0x90c5('0x9a')]['autoclose']){_0x2e6e1d[_0x90c5('0x97')][_0x90c5('0xb1')]({'id':0x0,'priority':_0x2e6e1d[_0x90c5('0x97')][_0x90c5('0x40')]+0x1,'app':_0x90c5('0xb2'),'appdata':'unmanaged','interval':_0x90c5('0xb3')});}}return db['ChatMessage'][_0x90c5('0x4f')]({'body':_0x4ebd85[_0x90c5('0x50')][_0x90c5('0x50')],'ChatWebsiteId':_0x4ebd85[_0x90c5('0x5a')]['id'],'ChatInteractionId':_0x158a62['id'],'direction':'in','ContactId':_0x2e6e1d['contact']['id'],'AttachmentId':_0x4ebd85[_0x90c5('0x50')][_0x90c5('0xb4')]});})[_0x90c5('0x18')](function(_0x16c953){_0x2e6e1d[_0x90c5('0x20')]=_0x16c953;if(_0x2e6e1d[_0x90c5('0xac')]['UserId']){return db['User'][_0x90c5('0x59')]({'attributes':['id','name'],'where':{'id':_0x2e6e1d[_0x90c5('0xac')][_0x90c5('0xb5')]}})[_0x90c5('0x18')](function(_0x433512){if(_0x433512){_0x2e6e1d[_0x90c5('0x97')][_0x90c5('0xb6')]({'id':0x0,'priority':0x0,'app':_0x90c5('0xb7'),'appdata':_0x433512[_0x90c5('0x32')]+','+(_0x2e6e1d['account'][_0x90c5('0xb8')]||0xa),'interval':_0x90c5('0xb3')});_0x2e6e1d[_0x90c5('0xb9')]=!![];}return respondWithRpcPromise(_0x90c5('0xba'),_0x90c5('0xbb'),_0x2e6e1d);});}return respondWithRpcPromise(_0x90c5('0xba'),_0x90c5('0xbb'),_0x2e6e1d);})[_0x90c5('0x18')](function(_0x51f274){respondWithRpcPromise(_0x90c5('0xbc'),_0x90c5('0xbc'),{'event':_0x90c5('0x81'),'message':_0x51f274},client9002);return _0x51f274;})[_0x90c5('0x18')](respondWithResult(_0x235451,null))[_0x90c5('0x21')](handleError(_0x235451,null));};exports[_0x90c5('0xbd')]=function(_0x212591,_0x303b09,_0xc3458){var _0x1a8173,_0x125c9d,_0x415b8e;var _0x2e58aa=[];var _0x5458bd=[];var _0x407b43={};var _0x383d63=_0x212591['files']||[];var _0x357041=[];var _0x1941ab;return db[_0x90c5('0x93')][_0x90c5('0x5b')]()[_0x90c5('0x18')](function(_0x5a6c29){if(!_0x5a6c29){throw new db[(_0x90c5('0x85'))]['ValidationError'](_0x90c5('0x86'));}_0x5458bd=_[_0x90c5('0x87')](_[_0x90c5('0x3b')](_0x5a6c29),[_0x90c5('0x88'),_0x90c5('0x89')]);_0x2e58aa=_[_0x90c5('0x87')](_['keys'](_0x5a6c29),[_0x90c5('0x88'),'updatedAt',_0x90c5('0x8a'),_0x90c5('0x8b')]);if(_0x212591[_0x90c5('0x50')]['id']){delete _0x212591[_0x90c5('0x50')]['id'];}if(_[_0x90c5('0x7e')](_0x212591[_0x90c5('0x50')]['from'])){throw _0x303b09[_0x90c5('0x23')](0x1f4)[_0x90c5('0x33')](new db[(_0x90c5('0x85'))]['ValidationError']('from\x20is\x20mandatory'));}if(_[_0x90c5('0x7e')](_0x212591[_0x90c5('0x50')][_0x90c5('0x50')])||_0x212591[_0x90c5('0x50')][_0x90c5('0x50')]===''){throw _0x303b09['status'](0x1f4)['send'](new db[(_0x90c5('0x85'))][(_0x90c5('0x8d'))](_0x90c5('0xbe')));}if(_[_0x90c5('0x7e')](_0x212591['body']['mapKeyOffline'])){throw _0x303b09[_0x90c5('0x23')](0x1f4)[_0x90c5('0x33')](new db[(_0x90c5('0x85'))][(_0x90c5('0x8d'))](_0x90c5('0xbf')+_0x2e58aa));}if(!_[_0x90c5('0x91')](_0x2e58aa,_0x212591[_0x90c5('0x50')][_0x90c5('0xc0')])){throw _0x303b09['status'](0x1f4)[_0x90c5('0x33')](new db[(_0x90c5('0x85'))][(_0x90c5('0x8d'))](_0x90c5('0xc1')+_0x2e58aa));}_0x407b43[_0x212591[_0x90c5('0x50')][_0x90c5('0xc0')]]=_0x212591[_0x90c5('0x50')][_0x90c5('0x8c')];})[_0x90c5('0x18')](function(){return db['ChatWebsite'][_0x90c5('0x59')]({'where':{'id':_0x212591[_0x90c5('0x5a')]['id']},'include':[{'model':db[_0x90c5('0xc2')],'as':_0x90c5('0x92')},{'model':db[_0x90c5('0xc3')],'as':'MailAccount'}]});})[_0x90c5('0x18')](handleEntityNotFound(_0x303b09,null))[_0x90c5('0x18')](function(_0x3c899b){if(_0x3c899b&&_0x3c899b[_0x90c5('0x92')]){_0x125c9d=_0x3c899b;var _0x4b45d0=_[_0x90c5('0x11')](_0x212591[_0x90c5('0x50')],{'firstName':_0x212591[_0x90c5('0x50')][_0x90c5('0x8c')],'phone':_0x212591[_0x90c5('0x50')][_0x90c5('0x8c')],'ListId':_0x3c899b[_0x90c5('0x8b')]});_0x4b45d0[_0x212591[_0x90c5('0x50')][_0x90c5('0xc0')]]=_0x212591[_0x90c5('0x50')]['from'];return db[_0x90c5('0x93')][_0x90c5('0xc4')]({'where':_0x407b43,'defaults':_0x4b45d0});}})[_0x90c5('0xad')](function(_0x528821){if(_0x528821){_0x415b8e=_0x528821;var _0xd7a571=fs['readFileSync'](path['join'](config[_0x90c5('0x73')],_0x90c5('0xc5')),_0x90c5('0xc6'));var _0x2fbf2f=ejs[_0x90c5('0xc7')](_0xd7a571,{'body':_[_0x90c5('0xc8')](_0x212591[_0x90c5('0x50')][_0x90c5('0x50')]),'bodyTitle':_0x125c9d['offlineMessageBody']});return db[_0x90c5('0xc9')][_0x90c5('0x4f')]({'body':_0x2fbf2f,'ContactId':_0x528821['id'],'ChatWebsiteId':_0x125c9d['id']});}})[_0x90c5('0x18')](function(_0xbdf8d){_0x1941ab=_0xbdf8d;if(_0x383d63[_0x90c5('0x40')]){var _0x5531a4=_0x383d63[_0x90c5('0x36')](function(_0x91605d){return{'name':_0x91605d[_0x90c5('0xca')],'basename':_0x91605d[_0x90c5('0x69')],'type':_0x91605d[_0x90c5('0xcb')],'ChatOfflineMessageId':_0xbdf8d['id']};});_0x357041=_0x5531a4[_0x90c5('0x36')](_0x325bfc=>{var _0x53553d={'filename':_0x325bfc['name'],'path':path['join'](config[_0x90c5('0x73')],'server',_0x90c5('0xcc'),_0x90c5('0xcd'),_0x90c5('0xce'),_0x325bfc[_0x90c5('0xcf')])};return _0x53553d;});if(!_0x125c9d['openNewInteraction']){return db[_0x90c5('0xd0')][_0x90c5('0xd1')](function(_0x19d4a6){return db['Attachment'][_0x90c5('0xd2')](_0x5531a4,{'transaction':_0x19d4a6});});}}})[_0x90c5('0x18')](function(){if(_0x1941ab){_0x1a8173=_0x1941ab;return db[_0x90c5('0xc3')][_0x90c5('0x5c')]({'where':{'active':!![]},'include':[{'model':db[_0x90c5('0xd3')],'as':_0x90c5('0xd4'),'raw':!![]}]});}})['then'](function(_0x1713b3){if(_0x1713b3&&_0x1713b3[_0x90c5('0xd4')]&&_0x125c9d['forwardOffline']&&_0x125c9d[_0x90c5('0xd5')]){var _0xdf29b4={'tls':{'rejectUnauthorized':![]}};if(_0x1713b3[_0x90c5('0xd4')][_0x90c5('0xd6')]){_0xdf29b4['service']=_0x1713b3['Smtp'][_0x90c5('0xd6')];}else{_0xdf29b4[_0x90c5('0xd7')]=_0x1713b3[_0x90c5('0xd4')][_0x90c5('0xd7')];_0xdf29b4[_0x90c5('0xd8')]=_0x1713b3[_0x90c5('0xd4')]['port'];_0xdf29b4[_0x90c5('0xd9')]=_0x1713b3[_0x90c5('0xd4')][_0x90c5('0xd9')];}if(_0x1713b3['Smtp'][_0x90c5('0xda')]){_0xdf29b4[_0x90c5('0xdb')]={'user':_0x1713b3['Smtp'][_0x90c5('0x51')],'pass':_0x1713b3[_0x90c5('0xd4')][_0x90c5('0xdc')]};}return respondWithRpcPromise(_0x90c5('0xdd'),'sendMail',{'account':_0xdf29b4,'message':{'from':util['format'](_0x90c5('0xde'),_0x1713b3[_0x90c5('0x32')],_0x1713b3[_0x90c5('0xdf')]||_0x1713b3[_0x90c5('0xd4')][_0x90c5('0x51')]),'to':_0x125c9d[_0x90c5('0xd5')],'subject':_0x125c9d[_0x90c5('0xe0')],'html':_0x1a8173[_0x90c5('0x50')],'attachments':_0x357041}},client9003)[_0x90c5('0x18')](function(){return _0x1a8173;})[_0x90c5('0x21')](function(_0x4f6d68){console[_0x90c5('0x1f')](_0x4f6d68);});}})[_0x90c5('0x18')](function(){if(_0x125c9d&&_0x125c9d['openNewInteraction']&&_0x125c9d[_0x90c5('0xe1')]){var _0x58c395=[];if(_0x383d63[_0x90c5('0x40')]){_0x58c395=_0x383d63[_0x90c5('0x36')](function(_0x1aa15c){return{'name':_0x1aa15c[_0x90c5('0xca')],'basename':_0x1aa15c[_0x90c5('0x69')],'type':_0x1aa15c[_0x90c5('0xcb')],'ChatOfflineMessageId':_0x1941ab['id']};});}var _0xbe8667;if(!_['isNil'](_0x125c9d[_0x90c5('0xe2')])){var _0x3c74b2=_[_0x90c5('0x36')](_0x212591[_0x90c5('0x50')],function(_0x337182){return _0x337182;});var _0xb0e416=_['toPairsIn'](_0x3c74b2)[0x0];var _0x6091e3=_[_0x90c5('0xe3')](_0xb0e416,function(_0x358f9f){return _0x358f9f;});_0xbe8667=_0x6091e3[0x1][_0x125c9d[_0x90c5('0xe2')]];}var _0x2aa4b0={'from':_0x415b8e[_0x90c5('0xdf')],'firstName':_0x415b8e['firstName'],'lastName':_0x415b8e[_0x90c5('0xa0')],'mapKey':_0x90c5('0xdf'),'message':{'from':_0x415b8e[_0x90c5('0xdf')],'to':_0x125c9d[_0x90c5('0xc3')]['email'],'cc':'','subject':_[_0x90c5('0x7e')](_0xbe8667)?_0x125c9d['offlineMessageSubject']:_0xbe8667,'messageId':'','sentAt':new Date(),'attach':_0x58c395[_0x90c5('0x40')],'attachments':_0x58c395,'originChannel':_0x90c5('0xe4'),'ChatWebsiteId':_0x125c9d['id'],'ChatOfflineMessageId':_0x1a8173['id'],'originTo':_0x125c9d[_0x90c5('0xc3')][_0x90c5('0xdf')]},'body':_0x1a8173['body']};var _0x37e578={'account':{'id':_0x125c9d['MailAccountId']},'body':_0x2aa4b0,'log':_0x90c5('0xe5')};return respondWithRpcPromise('NotifyMailAccount',_0x90c5('0xe6'),_0x37e578,client9001)[_0x90c5('0x18')](function(){return _0x1a8173;})[_0x90c5('0x21')](function(_0x62ff0f){console['error'](_0x62ff0f);});}return;})[_0x90c5('0x18')](function(){if(_0x1a8173){return _0x1a8173;}})['then'](respondWithResult(_0x303b09,null))[_0x90c5('0x21')](function(_0x3a7773){console[_0x90c5('0x1f')](_0x90c5('0x21'),_0x3a7773);for(var _0x33e193 of _0x383d63){var _0x42ad81=path[_0x90c5('0x6f')](config[_0x90c5('0x73')],_0x90c5('0xe7'),'files',_0x90c5('0xcd'),'offline-chat',_0x33e193[_0x90c5('0x69')]);fs_extra[_0x90c5('0xe8')](_0x42ad81)['catch'](function(_0x1245b3){console[_0x90c5('0x1f')]('Could\x20not\x20remove\x20attachment\x20file',_0x42ad81,_0x1245b3);});}});};exports[_0x90c5('0xe9')]=function(_0x1f31e0,_0x1010f2,_0x15513b){return db['ChatInteraction'][_0x90c5('0x59')]({'where':{'id':_0x1f31e0[_0x90c5('0x5a')]['id']}})[_0x90c5('0x18')](handleEntityNotFound(_0x1010f2,null))['then'](function(_0x90832a){if(_0x90832a){return _0x90832a[_0x90c5('0xe9')](_0x1f31e0[_0x90c5('0x50')][_0x90c5('0x61')],_[_0x90c5('0xea')](_0x1f31e0[_0x90c5('0x50')],['ids','id'])||{});}})[_0x90c5('0x18')](respondWithResult(_0x1010f2,null))['catch'](handleError(_0x1010f2,null));};exports['getInteractions']=function(_0x1c26d8,_0xa36c2f,_0x383965){var _0x283a1d={'raw':![],'where':{}};var _0x44817a={};var _0x5305f9={'count':0x0,'rows':[]};return db[_0x90c5('0x4a')]['findOne']({'where':{'id':_0x1c26d8[_0x90c5('0x5a')]['id']}})[_0x90c5('0x18')](handleEntityNotFound(_0xa36c2f,null))['then'](function(_0x34d641){if(_0x34d641){_0x44817a['model']=_[_0x90c5('0x3b')](db[_0x90c5('0xaa')][_0x90c5('0x37')]);_0x44817a[_0x90c5('0x3a')]=_[_0x90c5('0x3b')](_0x1c26d8[_0x90c5('0x3a')]);_0x44817a[_0x90c5('0x3c')]=_[_0x90c5('0x3d')](_0x44817a[_0x90c5('0x39')],_0x44817a[_0x90c5('0x3a')]);_0x283a1d[_0x90c5('0x3e')]=_[_0x90c5('0x3d')](_0x44817a['model'],qs[_0x90c5('0x3f')](_0x1c26d8[_0x90c5('0x3a')][_0x90c5('0x3f')]));_0x283a1d['attributes']=_0x283a1d[_0x90c5('0x3e')][_0x90c5('0x40')]?_0x283a1d[_0x90c5('0x3e')]:_0x44817a[_0x90c5('0x39')];if(!_0x1c26d8[_0x90c5('0x3a')]['hasOwnProperty'](_0x90c5('0x42'))){_0x283a1d[_0x90c5('0x28')]=qs['limit'](_0x1c26d8[_0x90c5('0x3a')][_0x90c5('0x28')]);_0x283a1d[_0x90c5('0x26')]=qs[_0x90c5('0x26')](_0x1c26d8[_0x90c5('0x3a')][_0x90c5('0x26')]);}_0x283a1d[_0x90c5('0x43')]=qs['sort'](_0x1c26d8[_0x90c5('0x3a')][_0x90c5('0x44')]);_0x283a1d[_0x90c5('0x45')]=qs[_0x90c5('0x3c')](_[_0x90c5('0x46')](_0x1c26d8['query'],_0x44817a['filters']));_0x283a1d['where'][_0x90c5('0x5e')]=_0x34d641['id'];if(_0x1c26d8[_0x90c5('0x3a')][_0x90c5('0x47')]){_0x283a1d[_0x90c5('0x45')]=_['merge'](_0x283a1d[_0x90c5('0x45')],{'$or':_[_0x90c5('0x36')](_0x283a1d[_0x90c5('0x3e')],function(_0x202049){var _0x11db65={};_0x11db65[_0x202049]={'$like':'%'+_0x1c26d8[_0x90c5('0x3a')][_0x90c5('0x47')]+'%'};return _0x11db65;})});}_0x283a1d=_[_0x90c5('0x48')]({},_0x283a1d,_0x1c26d8[_0x90c5('0x49')]);return db[_0x90c5('0xaa')]['count']({'where':_0x283a1d[_0x90c5('0x45')]})['then'](function(_0x2b063f){_0x5305f9['count']=_0x2b063f;if(_0x1c26d8[_0x90c5('0x3a')][_0x90c5('0x4b')]){_0x283a1d[_0x90c5('0x4c')]=[{'model':db[_0x90c5('0x93')],'as':_0x90c5('0xeb'),'required':![]},{'model':db[_0x90c5('0xec')],'as':_0x90c5('0xed'),'attributes':[_0x90c5('0x32'),_0x90c5('0xee'),_0x90c5('0xef')],'required':![]},{'model':db[_0x90c5('0xf0')],'as':_0x90c5('0xf1'),'attributes':['id',_0x90c5('0x32'),_0x90c5('0xf2')],'where':_0x1c26d8[_0x90c5('0x3a')]['tag']?{'id':_0x1c26d8[_0x90c5('0x3a')]['tag']}:undefined,'required':_0x1c26d8['query'][_0x90c5('0xf3')]?!![]:![]}];}return db[_0x90c5('0xaa')][_0x90c5('0x5f')](_0x283a1d);})[_0x90c5('0x18')](function(_0x434321){_0x5305f9[_0x90c5('0x4d')]=_0x434321;return _0x5305f9;});}})[_0x90c5('0x18')](respondWithFilteredResult(_0xa36c2f,_0x283a1d))[_0x90c5('0x21')](handleError(_0xa36c2f,null));};function iftimePromise(_0x935bd0,_0x4d5549){return respondWithRpcPromise('Command',_0x90c5('0xf4'),{'command':_0x4d5549[_0x90c5('0xf5')]?util[_0x90c5('0xa5')]('iftime\x20%s,%s',_0x935bd0['interval'],_0x4d5549[_0x90c5('0xf5')]):util[_0x90c5('0xa5')]('iftime\x20%s',_0x935bd0['interval'])},client9002)[_0x90c5('0x18')](function(_0x375c7f){var _0x1d8562=_0x375c7f&&_0x375c7f[_0x90c5('0xf6')]('true')>=0x0?!![]:![];logger[_0x90c5('0x19')](_0x90c5('0xf7'),_0x4d5549['id'],_0x935bd0['id'],_0x935bd0[_0x90c5('0xf8')],_0x1d8562?'ONLINE':_0x90c5('0xf9'),_0x4d5549[_0x90c5('0xf5')]?_0x4d5549['timezone']:'No\x20timezone');return _0x1d8562;})[_0x90c5('0x21')](function(_0x1dcb75){logger[_0x90c5('0x1f')](_0x90c5('0xf7'),_0x4d5549['id'],_0x935bd0['id'],_0x935bd0[_0x90c5('0xf8')],util[_0x90c5('0xfa')](_0x1dcb75,{'showHidden':![],'depth':null}),_0x4d5549['timezone']?_0x4d5549[_0x90c5('0xf5')]:_0x90c5('0xfb'));return![];});}exports['getSnippet']=function(_0x2c2fdb,_0x308b5d,_0x147659){var _0x2d95ec=0x0;var _0x2ca554=0x0;var _0x48511f=![];var _0x535a3c;var _0x149156;return db['ChatWebsite'][_0x90c5('0x59')]({'where':{'id':_0x2c2fdb['params']['id']},'include':[{'model':db[_0x90c5('0xfc')],'as':'Interval','include':[{'model':db[_0x90c5('0xfc')],'as':_0x90c5('0xfd'),'attributes':['id',_0x90c5('0xf8')],'raw':!![]}]}]})[_0x90c5('0x18')](handleEntityNotFound(_0x308b5d,null))[_0x90c5('0x18')](function(_0x271104){if(_0x271104){_0x535a3c=_0x271104;return _0x271104[_0x90c5('0xfe')]({'raw':!![]});}})[_0x90c5('0x18')](function(_0x52ff2e){if(_0x535a3c){if(_0x52ff2e){_0x149156=_0x52ff2e;}}return require(_0x90c5('0x71'))[_0x90c5('0x72')]();})[_0x90c5('0x18')](function(_0x2463a0){if(_0x2463a0){_0x2ca554=_0x2463a0[_0x90c5('0xff')];_0x48511f=_0x2463a0[_0x90c5('0x100')];}})['then'](function(){return db['ChatInteraction'][_0x90c5('0x29')]({'where':{'closed':![]}});})[_0x90c5('0x18')](function(_0x31e6f7){_0x2d95ec=_0x31e6f7;if(_0x2ca554&&_0x31e6f7>_0x2ca554){return db['License'][_0x90c5('0x5c')]({'where':{'id':0x1}})[_0x90c5('0x18')](function(_0x3c336c){if(_0x3c336c){_0x3c336c[_0x90c5('0x101')](_0x90c5('0x102'));}});}})[_0x90c5('0x18')](function(){if(_0x535a3c[_0x90c5('0xfc')]&&_0x535a3c[_0x90c5('0xfc')][_0x90c5('0xfd')]){var _0x3dd98a=[];for(var _0x1e74fb=0x0;_0x1e74fb<_0x535a3c[_0x90c5('0xfc')][_0x90c5('0xfd')]['length'];_0x1e74fb++){var _0x4a3527=_0x535a3c[_0x90c5('0xfc')][_0x90c5('0xfd')][_0x1e74fb][_0x90c5('0x52')]({'plain':!![]});_0x3dd98a[_0x90c5('0xb1')](iftimePromise(_0x4a3527,_0x535a3c));}return BPromise[_0x90c5('0x103')](_0x3dd98a)['then'](function(_0x451895){return _[_0x90c5('0x104')](_0x451895);});}else{return!![];}})['then'](function(_0x5f2365){var _0x2b185c=fs[_0x90c5('0x105')](path[_0x90c5('0x6f')](config[_0x90c5('0x73')],'server/files/chat/iframe.ejs'),_0x90c5('0xc6'));var _0x550ed7={'remote':_0x535a3c[_0x90c5('0x106')],'query':querystring[_0x90c5('0x1e')](_[_0x90c5('0x48')](_0x535a3c[_0x90c5('0x52')]({'plain':!![]}),{'customerIp':_0x2c2fdb[_0x90c5('0x82')][_0x90c5('0x9d')]||_0x2c2fdb['headers']['x-real-ip']||_0x2c2fdb[_0x90c5('0x107')][_0x90c5('0x108')]||_0x2c2fdb['ip'],'referer':_0x2c2fdb[_0x90c5('0x82')]['referer'],'openedInteractions':_0x2d95ec,'maxInteractions':_0x2ca554,'virtual':_0x48511f[_0x90c5('0xff')],'online':_0x5f2365,'custom':_0x48511f}))['replace'](/'/g,'\x5c\x27')};_0x308b5d['send'](ejs[_0x90c5('0xc7')](Mustache[_0x90c5('0xc7')](_0x2b185c,_0x550ed7),{'proactiveActions':_0x149156,'alignment':_0x535a3c[_0x90c5('0x109')],'verticalAlignment':_0x535a3c['verticalAlignment'],'div_color':_0x535a3c[_0x90c5('0xf2')],'text_color':_0x535a3c['textColor'],'button_color':_0x535a3c[_0x90c5('0x10a')],'background_color':_0x535a3c['backgroundColor']}));})[_0x90c5('0x21')](handleError(_0x308b5d,null));};exports['addApplications']=function(_0x59dd7d,_0x95f5ed,_0xfd8e1d){return db['ChatWebsite'][_0x90c5('0x5c')]({'where':{'id':_0x59dd7d[_0x90c5('0x5a')]['id']}})[_0x90c5('0x18')](handleEntityNotFound(_0x95f5ed,null))['then'](function(_0x2ab3ca){if(_0x2ab3ca){return db[_0x90c5('0xd0')][_0x90c5('0xd1')](function(_0x7ef7){return db[_0x90c5('0x10b')][_0x90c5('0x2e')]({'where':{'ChatWebsiteId':_0x59dd7d[_0x90c5('0x5a')]['id']},'transaction':_0x7ef7})[_0x90c5('0x18')](function(_0x92f583){var _0x2e6d38=_[_0x90c5('0x36')](_0x59dd7d[_0x90c5('0x50')],function(_0xfde59b){_0xfde59b[_0x90c5('0x5e')]=_0x59dd7d[_0x90c5('0x5a')]['id'];return _0xfde59b;});return db['ChatApplication'][_0x90c5('0xd2')](_0x2e6d38,{'transaction':_0x7ef7});});})[_0x90c5('0x18')](function(){return db[_0x90c5('0x10b')][_0x90c5('0x10c')]({'where':{'ChatWebsiteId':_0x59dd7d[_0x90c5('0x5a')]['id']},'order':'priority'});});}})[_0x90c5('0x18')](respondWithResult(_0x95f5ed,null))['catch'](handleError(_0x95f5ed,null));};exports[_0x90c5('0x10d')]=function(_0x3795b9,_0x373df7,_0x3d7eb8){var _0x1d44e0={};var _0x5c8a56={};var _0x1f65b7;var _0x2a8e1d;return db[_0x90c5('0x4a')]['findOne']({'where':{'id':_0x3795b9['params']['id']}})[_0x90c5('0x18')](handleEntityNotFound(_0x373df7,null))[_0x90c5('0x18')](function(_0x605a70){if(_0x605a70){_0x1f65b7=_0x605a70;_0x5c8a56['model']=_['keys'](db['ChatApplication']['rawAttributes']);_0x5c8a56[_0x90c5('0x3a')]=_[_0x90c5('0x3b')](_0x3795b9[_0x90c5('0x3a')]);_0x5c8a56[_0x90c5('0x3c')]=_[_0x90c5('0x3d')](_0x5c8a56[_0x90c5('0x39')],_0x5c8a56[_0x90c5('0x3a')]);_0x1d44e0['attributes']=_[_0x90c5('0x3d')](_0x5c8a56[_0x90c5('0x39')],qs['fields'](_0x3795b9['query'][_0x90c5('0x3f')]));_0x1d44e0[_0x90c5('0x3e')]=_0x1d44e0[_0x90c5('0x3e')][_0x90c5('0x40')]?_0x1d44e0[_0x90c5('0x3e')]:_0x5c8a56[_0x90c5('0x39')];_0x1d44e0['order']=qs['sort'](_0x3795b9['query'][_0x90c5('0x44')]);_0x1d44e0['where']=qs[_0x90c5('0x3c')](_['pick'](_0x3795b9[_0x90c5('0x3a')],_0x5c8a56[_0x90c5('0x3c')]));if(_0x3795b9[_0x90c5('0x3a')][_0x90c5('0x47')]){_0x1d44e0[_0x90c5('0x45')]=_['merge'](_0x1d44e0[_0x90c5('0x45')],{'$or':_[_0x90c5('0x36')](_0x1d44e0[_0x90c5('0x3e')],function(_0x24f8fc){var _0xf143fd={};_0xf143fd[_0x24f8fc]={'$like':'%'+_0x3795b9[_0x90c5('0x3a')]['filter']+'%'};return _0xf143fd;})});}_0x1d44e0=_[_0x90c5('0x48')]({},_0x1d44e0,_0x3795b9['options']);return _0x1f65b7[_0x90c5('0x10d')](_0x1d44e0);}})[_0x90c5('0x18')](function(_0x49fdc8){if(_0x49fdc8){_0x2a8e1d=_0x49fdc8[_0x90c5('0x40')];if(!_0x3795b9[_0x90c5('0x3a')]['hasOwnProperty'](_0x90c5('0x42'))){_0x1d44e0['limit']=qs['limit'](_0x3795b9[_0x90c5('0x3a')][_0x90c5('0x28')]);_0x1d44e0[_0x90c5('0x26')]=qs[_0x90c5('0x26')](_0x3795b9[_0x90c5('0x3a')][_0x90c5('0x26')]);}return _0x1f65b7[_0x90c5('0x10d')](_0x1d44e0);}})[_0x90c5('0x18')](function(_0x59a1ab){if(_0x59a1ab){return _0x59a1ab?{'count':_0x2a8e1d,'rows':_0x59a1ab}:null;}})[_0x90c5('0x18')](respondWithResult(_0x373df7,null))[_0x90c5('0x21')](handleError(_0x373df7,null));};exports['addProactiveActions']=function(_0x1510c2,_0x2808f3,_0x48c87e){return db['chatProactiveAction'][_0x90c5('0x59')]({'where':{'id':_0x1510c2[_0x90c5('0x5a')]['id']}})['then'](handleEntityNotFound(_0x2808f3,null))[_0x90c5('0x18')](function(_0x172fe1){if(_0x172fe1){return _0x172fe1[_0x90c5('0x10e')](_0x1510c2[_0x90c5('0x50')][_0x90c5('0x61')],_[_0x90c5('0xea')](_0x1510c2[_0x90c5('0x50')],[_0x90c5('0x61'),'id'])||{});}})[_0x90c5('0x18')](respondWithResult(_0x2808f3,null))['catch'](handleError(_0x2808f3,null));};exports[_0x90c5('0xfe')]=function(_0x2ccb4b,_0x1a31be,_0x2cd904){var _0x4f186c={};var _0x4cee44={};var _0x54f3c0;var _0x48d28c;return db['ChatWebsite'][_0x90c5('0x5c')]({'where':{'id':_0x2ccb4b[_0x90c5('0x5a')]['id']}})[_0x90c5('0x18')](handleEntityNotFound(_0x1a31be,null))[_0x90c5('0x18')](function(_0x2fa530){if(_0x2fa530){_0x54f3c0=_0x2fa530;_0x4cee44[_0x90c5('0x39')]=_[_0x90c5('0x3b')](db[_0x90c5('0x10f')][_0x90c5('0x37')]);_0x4cee44[_0x90c5('0x3a')]=_[_0x90c5('0x3b')](_0x2ccb4b[_0x90c5('0x3a')]);_0x4cee44[_0x90c5('0x3c')]=_['intersection'](_0x4cee44[_0x90c5('0x39')],_0x4cee44[_0x90c5('0x3a')]);_0x4f186c[_0x90c5('0x3e')]=_[_0x90c5('0x3d')](_0x4cee44[_0x90c5('0x39')],qs[_0x90c5('0x3f')](_0x2ccb4b[_0x90c5('0x3a')]['fields']));_0x4f186c[_0x90c5('0x3e')]=_0x4f186c[_0x90c5('0x3e')][_0x90c5('0x40')]?_0x4f186c[_0x90c5('0x3e')]:_0x4cee44[_0x90c5('0x39')];_0x4f186c[_0x90c5('0x43')]=qs['sort'](_0x2ccb4b[_0x90c5('0x3a')][_0x90c5('0x44')]);_0x4f186c['where']=qs[_0x90c5('0x3c')](_[_0x90c5('0x46')](_0x2ccb4b[_0x90c5('0x3a')],_0x4cee44[_0x90c5('0x3c')]));if(_0x2ccb4b[_0x90c5('0x3a')][_0x90c5('0x47')]){_0x4f186c[_0x90c5('0x45')]=_[_0x90c5('0x48')](_0x4f186c[_0x90c5('0x45')],{'$or':_[_0x90c5('0x36')](_0x4f186c['attributes'],function(_0x54441b){var _0x5242d5={};_0x5242d5[_0x54441b]={'$like':'%'+_0x2ccb4b[_0x90c5('0x3a')][_0x90c5('0x47')]+'%'};return _0x5242d5;})});}_0x4f186c=_[_0x90c5('0x48')]({},_0x4f186c,_0x2ccb4b[_0x90c5('0x49')]);return _0x54f3c0[_0x90c5('0xfe')](_0x4f186c);}})[_0x90c5('0x18')](function(_0x3a139e){if(_0x3a139e){_0x48d28c=_0x3a139e[_0x90c5('0x40')];if(!_0x2ccb4b[_0x90c5('0x3a')][_0x90c5('0x41')](_0x90c5('0x42'))){_0x4f186c[_0x90c5('0x28')]=qs[_0x90c5('0x28')](_0x2ccb4b[_0x90c5('0x3a')][_0x90c5('0x28')]);_0x4f186c[_0x90c5('0x26')]=qs['offset'](_0x2ccb4b[_0x90c5('0x3a')]['offset']);}return _0x54f3c0[_0x90c5('0xfe')](_0x4f186c);}})[_0x90c5('0x18')](function(_0x233eb5){if(_0x233eb5){return _0x233eb5?{'count':_0x48d28c,'rows':_0x233eb5}:null;}})[_0x90c5('0x18')](respondWithResult(_0x1a31be,null))[_0x90c5('0x21')](handleError(_0x1a31be,null));};exports['getFields']=function(_0x1bbcaa,_0x369508,_0x540c74){var _0x53b13=_0x1bbcaa[_0x90c5('0x3a')]['online']===_0x90c5('0x110')?_0x90c5('0x111'):_0x90c5('0x112');return db['ChatWebsite'][_0x90c5('0x59')]({'attributes':['id',_0x53b13],'where':{'id':_0x1bbcaa['params']['id']}})[_0x90c5('0x18')](handleEntityNotFound(_0x369508,null))[_0x90c5('0x18')](function(_0x52128b){if(_0x52128b){var _0x4a0f6a=_0x52128b[_0x53b13];var _0x8310c1=_0x4a0f6a&&_0x4a0f6a[_0x90c5('0x113')]?_0x4a0f6a[_0x90c5('0x113')]:[];_0x369508[_0x90c5('0x33')]({'fromKey':_['isNil'](_0x4a0f6a[_0x90c5('0x114')])?undefined:_0x4a0f6a[_0x90c5('0x114')],'count':_0x8310c1[_0x90c5('0x40')],'rows':_0x8310c1});}})[_0x90c5('0x21')](handleError(_0x369508,null));};exports[_0x90c5('0x115')]=function(_0x15537b,_0x4dd6d7,_0x28fb08){var _0x351d94={'raw':![],'where':{}};var _0x1d3a63={};var _0x238ffa={'count':0x0,'rows':[]};return db[_0x90c5('0x4a')][_0x90c5('0x5c')]({'where':{'id':_0x15537b[_0x90c5('0x5a')]['id']}})[_0x90c5('0x18')](handleEntityNotFound(_0x4dd6d7,null))[_0x90c5('0x18')](function(_0x43290c){if(_0x43290c){_0x1d3a63[_0x90c5('0x39')]=_['keys'](db[_0x90c5('0xc9')]['rawAttributes']);_0x1d3a63['query']=_[_0x90c5('0x3b')](_0x15537b[_0x90c5('0x3a')]);_0x1d3a63['filters']=_[_0x90c5('0x3d')](_0x1d3a63[_0x90c5('0x39')],_0x1d3a63['query']);_0x351d94[_0x90c5('0x3e')]=_[_0x90c5('0x3d')](_0x1d3a63['model'],qs[_0x90c5('0x3f')](_0x15537b[_0x90c5('0x3a')][_0x90c5('0x3f')]));_0x351d94[_0x90c5('0x3e')]=_0x351d94[_0x90c5('0x3e')][_0x90c5('0x40')]?_0x351d94[_0x90c5('0x3e')]:_0x1d3a63['model'];if(!_0x15537b[_0x90c5('0x3a')][_0x90c5('0x41')](_0x90c5('0x42'))){_0x351d94[_0x90c5('0x28')]=qs['limit'](_0x15537b['query']['limit']);_0x351d94[_0x90c5('0x26')]=qs[_0x90c5('0x26')](_0x15537b[_0x90c5('0x3a')][_0x90c5('0x26')]);}_0x351d94[_0x90c5('0x43')]=qs['sort'](_0x15537b[_0x90c5('0x3a')][_0x90c5('0x44')]);_0x351d94[_0x90c5('0x45')]=qs[_0x90c5('0x3c')](_[_0x90c5('0x46')](_0x15537b[_0x90c5('0x3a')],_0x1d3a63[_0x90c5('0x3c')]));_0x351d94[_0x90c5('0x45')][_0x90c5('0x5e')]=_0x43290c['id'];if(_0x15537b['query']['filter']){_0x351d94[_0x90c5('0x45')]=_[_0x90c5('0x48')](_0x351d94[_0x90c5('0x45')],{'$or':_[_0x90c5('0x36')](_0x351d94[_0x90c5('0x3e')],function(_0x386a3b){var _0x12e58f={};_0x12e58f[_0x386a3b]={'$like':'%'+_0x15537b['query']['filter']+'%'};return _0x12e58f;})});}_0x351d94=_[_0x90c5('0x48')]({},_0x351d94,_0x15537b[_0x90c5('0x49')]);return db[_0x90c5('0xc9')]['count']({'where':_0x351d94[_0x90c5('0x45')]})[_0x90c5('0x18')](function(_0x119088){_0x238ffa[_0x90c5('0x29')]=_0x119088;if(_0x15537b[_0x90c5('0x3a')][_0x90c5('0x4b')]){_0x351d94[_0x90c5('0x4c')]=[{'all':!![]}];}else{_0x351d94['include']=[{'model':db[_0x90c5('0x93')],'as':_0x90c5('0xeb'),'required':![]},{'model':db[_0x90c5('0x116')],'as':_0x90c5('0x117'),'required':![]}];}return db['ChatOfflineMessage'][_0x90c5('0x5f')](_0x351d94);})[_0x90c5('0x18')](function(_0x92f30){_0x238ffa[_0x90c5('0x4d')]=_0x92f30;return _0x238ffa;});}})['then'](respondWithFilteredResult(_0x4dd6d7,_0x351d94))[_0x90c5('0x21')](handleError(_0x4dd6d7,null));};exports[_0x90c5('0x118')]=function(_0x3dd5d8,_0x348b76,_0x44c321){return db[_0x90c5('0x4a')][_0x90c5('0x59')]({'where':{'id':_0x3dd5d8['params']['id']}})[_0x90c5('0x18')](handleEntityNotFound(_0x348b76,null))[_0x90c5('0x18')](function(_0xbf224c){if(_0xbf224c){return _0xbf224c['addAgents'](_0x3dd5d8[_0x90c5('0x50')][_0x90c5('0x61')],_[_0x90c5('0xea')](_0x3dd5d8[_0x90c5('0x50')],['ids','id'])||{})[_0x90c5('0xad')](function(_0x3005ef){for(var _0x3d664f=0x0;_0x3d664f<_0x3dd5d8[_0x90c5('0x50')][_0x90c5('0x61')][_0x90c5('0x40')];_0x3d664f+=0x1){socket[_0x90c5('0x119')](_0x90c5('0x11a'),{'UserId':Number(_0x3dd5d8[_0x90c5('0x50')][_0x90c5('0x61')][_0x3d664f]),'ChatWebsiteId':Number(_0x3dd5d8[_0x90c5('0x5a')]['id'])});}return _0x3005ef;});}})[_0x90c5('0x18')](respondWithResult(_0x348b76,null))['catch'](handleError(_0x348b76,null));};exports[_0x90c5('0x11b')]=function(_0xf7f4b5,_0x47d0ff,_0x4d2d99){return db[_0x90c5('0x4a')]['find']({'where':{'id':_0xf7f4b5[_0x90c5('0x5a')]['id']}})[_0x90c5('0x18')](handleEntityNotFound(_0x47d0ff,null))[_0x90c5('0x18')](function(_0x1188ee){if(_0x1188ee){return _0x1188ee[_0x90c5('0x11b')](_0xf7f4b5[_0x90c5('0x3a')]['ids'])[_0x90c5('0x18')](function(){if(_[_0x90c5('0x11c')](_0xf7f4b5[_0x90c5('0x3a')]['ids'])){for(var _0x452051=0x0;_0x452051<_0xf7f4b5[_0x90c5('0x3a')][_0x90c5('0x61')]['length'];_0x452051+=0x1){socket[_0x90c5('0x119')](_0x90c5('0x11d'),{'UserId':Number(_0xf7f4b5[_0x90c5('0x3a')]['ids'][_0x452051]),'ChatWebsiteId':Number(_0xf7f4b5[_0x90c5('0x5a')]['id'])});}}else{socket[_0x90c5('0x119')](_0x90c5('0x11d'),{'UserId':Number(_0xf7f4b5[_0x90c5('0x3a')][_0x90c5('0x61')]),'ChatWebsiteId':Number(_0xf7f4b5[_0x90c5('0x5a')]['id'])});}});}})[_0x90c5('0x18')](respondWithStatusCode(_0x47d0ff,null))[_0x90c5('0x21')](handleError(_0x47d0ff,null));};exports[_0x90c5('0x11e')]=function(_0x307785,_0x1bcf87,_0x2f24aa){var _0x444d6a={};var _0x4405d3={};var _0x18262e;var _0x40b54f;return db[_0x90c5('0x4a')][_0x90c5('0x5c')]({'where':{'id':_0x307785[_0x90c5('0x5a')]['id']}})[_0x90c5('0x18')](handleEntityNotFound(_0x1bcf87,null))['then'](function(_0x36effb){if(_0x36effb){_0x18262e=_0x36effb;_0x4405d3[_0x90c5('0x39')]=_[_0x90c5('0x3b')](db[_0x90c5('0xec')][_0x90c5('0x37')]);_0x4405d3['query']=_['keys'](_0x307785[_0x90c5('0x3a')]);_0x4405d3[_0x90c5('0x3c')]=_['intersection'](_0x4405d3[_0x90c5('0x39')],_0x4405d3[_0x90c5('0x3a')]);_0x444d6a[_0x90c5('0x3e')]=_['intersection'](_0x4405d3['model'],qs[_0x90c5('0x3f')](_0x307785['query']['fields']));_0x444d6a['attributes']=_0x444d6a[_0x90c5('0x3e')][_0x90c5('0x40')]?_0x444d6a[_0x90c5('0x3e')]:_0x4405d3[_0x90c5('0x39')];_0x444d6a[_0x90c5('0x43')]=qs[_0x90c5('0x44')](_0x307785['query']['sort']);_0x444d6a['where']=qs[_0x90c5('0x3c')](_[_0x90c5('0x46')](_0x307785[_0x90c5('0x3a')],_0x4405d3[_0x90c5('0x3c')]));if(_0x307785[_0x90c5('0x3a')][_0x90c5('0x47')]){_0x444d6a[_0x90c5('0x45')]=_['merge'](_0x444d6a[_0x90c5('0x45')],{'$or':_['map'](_0x444d6a['attributes'],function(_0x1fc828){var _0x51d0b7={};_0x51d0b7[_0x1fc828]={'$like':'%'+_0x307785['query'][_0x90c5('0x47')]+'%'};return _0x51d0b7;})});}_0x444d6a=_[_0x90c5('0x48')]({},_0x444d6a,_0x307785['options']);return _0x18262e[_0x90c5('0x11e')](_0x444d6a);}})[_0x90c5('0x18')](function(_0x80ec67){if(_0x80ec67){_0x40b54f=_0x80ec67[_0x90c5('0x40')];if(!_0x307785[_0x90c5('0x3a')][_0x90c5('0x41')](_0x90c5('0x42'))){_0x444d6a[_0x90c5('0x28')]=qs['limit'](_0x307785['query'][_0x90c5('0x28')]);_0x444d6a[_0x90c5('0x26')]=qs['offset'](_0x307785[_0x90c5('0x3a')][_0x90c5('0x26')]);}return _0x18262e[_0x90c5('0x11e')](_0x444d6a);}})[_0x90c5('0x18')](function(_0xf413b){if(_0xf413b){return _0xf413b?{'count':_0x40b54f,'rows':_0xf413b}:null;}})[_0x90c5('0x18')](respondWithResult(_0x1bcf87,null))['catch'](handleError(_0x1bcf87,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3a32=['update','remove','emit','hook','exports','events','../../mysqldb','ChatWebsite','setMaxListeners','save'];(function(_0x158b90,_0x597dbc){var _0x141dce=function(_0x5c9f68){while(--_0x5c9f68){_0x158b90['push'](_0x158b90['shift']());}};_0x141dce(++_0x597dbc);}(_0x3a32,0x9b));var _0x23a3=function(_0x160c73,_0x2ee678){_0x160c73=_0x160c73-0x0;var _0xd9302=_0x3a32[_0x160c73];return _0xd9302;};'use strict';var EventEmitter=require(_0x23a3('0x0'));var ChatWebsite=require(_0x23a3('0x1'))['db'][_0x23a3('0x2')];var ChatWebsiteEvents=new EventEmitter();ChatWebsiteEvents[_0x23a3('0x3')](0x0);var events={'afterCreate':_0x23a3('0x4'),'afterUpdate':_0x23a3('0x5'),'afterDestroy':_0x23a3('0x6')};function emitEvent(_0x4a1378){return function(_0x480d99,_0xc06a55,_0xd3df2f){ChatWebsiteEvents['emit'](_0x4a1378+':'+_0x480d99['id'],_0x480d99);ChatWebsiteEvents[_0x23a3('0x7')](_0x4a1378,_0x480d99);_0xd3df2f(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];ChatWebsite[_0x23a3('0x8')](e,emitEvent(event));}}module[_0x23a3('0x9')]=ChatWebsiteEvents;
\ No newline at end of file
+var _0x83d3=['hook','exports','events','../../mysqldb','ChatWebsite','setMaxListeners','save','remove','emit'];(function(_0x5147e7,_0x514475){var _0x36a96e=function(_0x51be9d){while(--_0x51be9d){_0x5147e7['push'](_0x5147e7['shift']());}};_0x36a96e(++_0x514475);}(_0x83d3,0x17c));var _0x383d=function(_0xf3c843,_0x8ff24e){_0xf3c843=_0xf3c843-0x0;var _0x3191c6=_0x83d3[_0xf3c843];return _0x3191c6;};'use strict';var EventEmitter=require(_0x383d('0x0'));var ChatWebsite=require(_0x383d('0x1'))['db'][_0x383d('0x2')];var ChatWebsiteEvents=new EventEmitter();ChatWebsiteEvents[_0x383d('0x3')](0x0);var events={'afterCreate':_0x383d('0x4'),'afterUpdate':'update','afterDestroy':_0x383d('0x5')};function emitEvent(_0x1184a6){return function(_0x31cbfc,_0x202ffc,_0x52adf4){ChatWebsiteEvents[_0x383d('0x6')](_0x1184a6+':'+_0x31cbfc['id'],_0x31cbfc);ChatWebsiteEvents['emit'](_0x1184a6,_0x31cbfc);_0x52adf4(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];ChatWebsite[_0x383d('0x7')](e,emitEvent(event));}}module[_0x383d('0x8')]=ChatWebsiteEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x95d9=['./chatWebsite.attributes','define','ChatWebsite','lodash','api','moment','request-promise','path','rimraf'];(function(_0x153022,_0xefa3ec){var _0x1f6ab1=function(_0x1f47f8){while(--_0x1f47f8){_0x153022['push'](_0x153022['shift']());}};_0x1f6ab1(++_0xefa3ec);}(_0x95d9,0xdb));var _0x995d=function(_0xac151d,_0x4ea1d2){_0xac151d=_0xac151d-0x0;var _0x111dba=_0x95d9[_0xac151d];return _0x111dba;};'use strict';var _=require(_0x995d('0x0'));var util=require('util');var logger=require('../../config/logger')(_0x995d('0x1'));var moment=require(_0x995d('0x2'));var BPromise=require('bluebird');var rp=require(_0x995d('0x3'));var fs=require('fs');var path=require(_0x995d('0x4'));var rimraf=require(_0x995d('0x5'));var config=require('../../config/environment');var attributes=require(_0x995d('0x6'));module['exports']=function(_0xef0b0e,_0x49f5c4){return _0xef0b0e[_0x995d('0x7')](_0x995d('0x8'),attributes,{'tableName':'chat_websites','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xa3b0=['chat_websites','lodash','../../config/logger','moment','bluebird','request-promise','path','rimraf','./chatWebsite.attributes','ChatWebsite'];(function(_0x292aa1,_0x4e34b6){var _0x4e61f1=function(_0x3f4640){while(--_0x3f4640){_0x292aa1['push'](_0x292aa1['shift']());}};_0x4e61f1(++_0x4e34b6);}(_0xa3b0,0x1e1));var _0x0a3b=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xa3b0[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0x0a3b('0x0'));var util=require('util');var logger=require(_0x0a3b('0x1'))('api');var moment=require(_0x0a3b('0x2'));var BPromise=require(_0x0a3b('0x3'));var rp=require(_0x0a3b('0x4'));var fs=require('fs');var path=require(_0x0a3b('0x5'));var rimraf=require(_0x0a3b('0x6'));var config=require('../../config/environment');var attributes=require(_0x0a3b('0x7'));module['exports']=function(_0x226437,_0x3b06c4){return _0x226437['define'](_0x0a3b('0x8'),attributes,{'tableName':_0x0a3b('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe5be=['error','code','message','result','catch','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/environment','client','http','localhost','socket.io-emitter','redis','./chatWebsite.socket','register','request','then','info','ChatWebsite,\x20%s,\x20%s','request\x20sent','debug'];(function(_0x379dc2,_0x35509e){var _0x1935dd=function(_0x10ca49){while(--_0x10ca49){_0x379dc2['push'](_0x379dc2['shift']());}};_0x1935dd(++_0x35509e);}(_0xe5be,0x109));var _0xee5b=function(_0x244eb6,_0x29c6fd){_0x244eb6=_0x244eb6-0x0;var _0x1e13e0=_0xe5be[_0x244eb6];return _0x1e13e0;};'use strict';var _=require(_0xee5b('0x0'));var util=require(_0xee5b('0x1'));var moment=require(_0xee5b('0x2'));var BPromise=require(_0xee5b('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xee5b('0x4'));var db=require(_0xee5b('0x5'))['db'];var utils=require(_0xee5b('0x6'));var logger=require('../../config/logger')('rpc');var config=require(_0xee5b('0x7'));var jayson=require('jayson/promise');var client=jayson[_0xee5b('0x8')][_0xee5b('0x9')]({'port':0x232a});config['redis']=_['defaults'](config['redis'],{'host':_0xee5b('0xa'),'port':0x18eb});var socket=require(_0xee5b('0xb'))(new Redis(config[_0xee5b('0xc')]));require(_0xee5b('0xd'))[_0xee5b('0xe')](socket);function respondWithRpcPromise(_0x17a6ed,_0x4c8c2e,_0x2c4ae4){return new BPromise(function(_0x7a6b88,_0x10b415){return client[_0xee5b('0xf')](_0x17a6ed,_0x2c4ae4)[_0xee5b('0x10')](function(_0x23bfc8){logger[_0xee5b('0x11')](_0xee5b('0x12'),_0x4c8c2e,_0xee5b('0x13'));logger[_0xee5b('0x14')]('ChatWebsite,\x20%s,\x20%s,\x20%s',_0x4c8c2e,_0xee5b('0x13'),JSON['stringify'](_0x23bfc8));if(_0x23bfc8[_0xee5b('0x15')]){if(_0x23bfc8['error'][_0xee5b('0x16')]===0x1f4){logger['error']('ChatWebsite,\x20%s,\x20%s',_0x4c8c2e,_0x23bfc8[_0xee5b('0x15')][_0xee5b('0x17')]);return _0x10b415(_0x23bfc8[_0xee5b('0x15')]['message']);}logger['error']('ChatWebsite,\x20%s,\x20%s',_0x4c8c2e,_0x23bfc8[_0xee5b('0x15')][_0xee5b('0x17')]);return _0x7a6b88(_0x23bfc8[_0xee5b('0x15')][_0xee5b('0x17')]);}else{logger[_0xee5b('0x11')]('ChatWebsite,\x20%s,\x20%s',_0x4c8c2e,_0xee5b('0x13'));_0x7a6b88(_0x23bfc8[_0xee5b('0x18')][_0xee5b('0x17')]);}})[_0xee5b('0x19')](function(_0x4acbeb){logger[_0xee5b('0x15')](_0xee5b('0x12'),_0x4c8c2e,_0x4acbeb);_0x10b415(_0x4acbeb);});});}
\ No newline at end of file
+var _0xcc41=['code','message','result','catch','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','http','redis','localhost','socket.io-emitter','./chatWebsite.socket','register','request','then','info','ChatWebsite,\x20%s,\x20%s','request\x20sent','debug','ChatWebsite,\x20%s,\x20%s,\x20%s','stringify','error'];(function(_0x38a7ac,_0x45514b){var _0x53061a=function(_0x1d2469){while(--_0x1d2469){_0x38a7ac['push'](_0x38a7ac['shift']());}};_0x53061a(++_0x45514b);}(_0xcc41,0x160));var _0x1cc4=function(_0xc890e2,_0x18a3e1){_0xc890e2=_0xc890e2-0x0;var _0x581dff=_0xcc41[_0xc890e2];return _0x581dff;};'use strict';var _=require('lodash');var util=require(_0x1cc4('0x0'));var moment=require(_0x1cc4('0x1'));var BPromise=require(_0x1cc4('0x2'));var rs=require(_0x1cc4('0x3'));var fs=require('fs');var Redis=require(_0x1cc4('0x4'));var db=require(_0x1cc4('0x5'))['db'];var utils=require(_0x1cc4('0x6'));var logger=require(_0x1cc4('0x7'))('rpc');var config=require(_0x1cc4('0x8'));var jayson=require(_0x1cc4('0x9'));var client=jayson['client'][_0x1cc4('0xa')]({'port':0x232a});config['redis']=_['defaults'](config[_0x1cc4('0xb')],{'host':_0x1cc4('0xc'),'port':0x18eb});var socket=require(_0x1cc4('0xd'))(new Redis(config[_0x1cc4('0xb')]));require(_0x1cc4('0xe'))[_0x1cc4('0xf')](socket);function respondWithRpcPromise(_0x2605b9,_0x294493,_0x2e0bb8){return new BPromise(function(_0xe3a783,_0xe6ebb6){return client[_0x1cc4('0x10')](_0x2605b9,_0x2e0bb8)[_0x1cc4('0x11')](function(_0x40a7c2){logger[_0x1cc4('0x12')](_0x1cc4('0x13'),_0x294493,_0x1cc4('0x14'));logger[_0x1cc4('0x15')](_0x1cc4('0x16'),_0x294493,_0x1cc4('0x14'),JSON[_0x1cc4('0x17')](_0x40a7c2));if(_0x40a7c2[_0x1cc4('0x18')]){if(_0x40a7c2[_0x1cc4('0x18')][_0x1cc4('0x19')]===0x1f4){logger[_0x1cc4('0x18')]('ChatWebsite,\x20%s,\x20%s',_0x294493,_0x40a7c2['error'][_0x1cc4('0x1a')]);return _0xe6ebb6(_0x40a7c2['error']['message']);}logger[_0x1cc4('0x18')](_0x1cc4('0x13'),_0x294493,_0x40a7c2[_0x1cc4('0x18')][_0x1cc4('0x1a')]);return _0xe3a783(_0x40a7c2[_0x1cc4('0x18')][_0x1cc4('0x1a')]);}else{logger[_0x1cc4('0x12')](_0x1cc4('0x13'),_0x294493,_0x1cc4('0x14'));_0xe3a783(_0x40a7c2[_0x1cc4('0x1b')]['message']);}})[_0x1cc4('0x1c')](function(_0x2f5eec){logger[_0x1cc4('0x18')](_0x1cc4('0x13'),_0x294493,_0x2f5eec);_0xe6ebb6(_0x2f5eec);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9e17=['register','length','chatWebsite:','./chatWebsite.events','emit','removeListener'];(function(_0x47b673,_0x3d6eeb){var _0x13b656=function(_0x221e42){while(--_0x221e42){_0x47b673['push'](_0x47b673['shift']());}};_0x13b656(++_0x3d6eeb);}(_0x9e17,0x141));var _0x79e1=function(_0x404b9a,_0xca0480){_0x404b9a=_0x404b9a-0x0;var _0x30ba61=_0x9e17[_0x404b9a];return _0x30ba61;};'use strict';var ChatWebsiteEvents=require(_0x79e1('0x0'));var events=['save','remove','update'];function createListener(_0x399f51,_0x2c625f){return function(_0x119221){_0x2c625f[_0x79e1('0x1')](_0x399f51,_0x119221);};}function removeListener(_0x553f9b,_0x13d06f){return function(){ChatWebsiteEvents[_0x79e1('0x2')](_0x553f9b,_0x13d06f);};}exports[_0x79e1('0x3')]=function(_0x525df1){for(var _0xbdbdbc=0x0,_0x1b9822=events[_0x79e1('0x4')];_0xbdbdbc<_0x1b9822;_0xbdbdbc++){var _0x28c56d=events[_0xbdbdbc];var _0xc8e2f5=createListener(_0x79e1('0x5')+_0x28c56d,_0x525df1);ChatWebsiteEvents['on'](_0x28c56d,_0xc8e2f5);}};
\ No newline at end of file
+var _0xc428=['remove','update','emit','removeListener','length','./chatWebsite.events'];(function(_0x17d9e3,_0x1f969c){var _0x14192d=function(_0x159745){while(--_0x159745){_0x17d9e3['push'](_0x17d9e3['shift']());}};_0x14192d(++_0x1f969c);}(_0xc428,0x77));var _0x8c42=function(_0x26c9d3,_0x129111){_0x26c9d3=_0x26c9d3-0x0;var _0x10f619=_0xc428[_0x26c9d3];return _0x10f619;};'use strict';var ChatWebsiteEvents=require(_0x8c42('0x0'));var events=['save',_0x8c42('0x1'),_0x8c42('0x2')];function createListener(_0x276fcc,_0x487534){return function(_0x584728){_0x487534[_0x8c42('0x3')](_0x276fcc,_0x584728);};}function removeListener(_0x1f40d,_0x4d1720){return function(){ChatWebsiteEvents[_0x8c42('0x4')](_0x1f40d,_0x4d1720);};}exports['register']=function(_0x54ac88){for(var _0x15c5a5=0x0,_0x398948=events[_0x8c42('0x5')];_0x15c5a5<_0x398948;_0x15c5a5++){var _0x13800a=events[_0x15c5a5];var _0x1ab4b3=createListener('chatWebsite:'+_0x13800a,_0x54ac88);ChatWebsiteEvents['on'](_0x13800a,_0x1ab4b3);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3938=['now','originalname','single','file','addLogo','addAvatar','addCustomerAvatar','addSystemAvatar','/:id/notify','notify','attachments','replace','extname','/:id/offline','any','offline','/:id/interactions','addInteraction','addApplications','/:id/proactive_actions','addProactiveActions','update','delete','/:id/dispositions','removeDispositions','/:id/canned_answers','removeAnswers','removeAgents','multer','util','path','connect-timeout','express','Router','../../components/interaction/service','../../config/environment','./chatWebsite.controller','index','get','isAuthenticated','describe','/:id','show','getDispositions','getAnswers','/:id/logo','getLogo','/:id/avatar','getAvatar','/:id/customer_avatar','getCustomerAvatar','/:id/system_avatar','/:id/snippet','getSnippet','/:id/applications','/:id/fields','getFields','getOfflineMessages','/:id/users','getAgents','post','create','addDisposition','addAnswer','diskStorage','join','root','server/files/images/logos/','format','%s-%s'];(function(_0x3c4dad,_0x25ffd5){var _0x1a4f49=function(_0x6fe6c){while(--_0x6fe6c){_0x3c4dad['push'](_0x3c4dad['shift']());}};_0x1a4f49(++_0x25ffd5);}(_0x3938,0x17a));var _0x8393=function(_0x55e287,_0x36472d){_0x55e287=_0x55e287-0x0;var _0x582ca5=_0x3938[_0x55e287];return _0x582ca5;};'use strict';var multer=require(_0x8393('0x0'));var util=require(_0x8393('0x1'));var path=require(_0x8393('0x2'));var timeout=require(_0x8393('0x3'));var express=require(_0x8393('0x4'));var router=express[_0x8393('0x5')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0x8393('0x6'));var config=require(_0x8393('0x7'));var controller=require(_0x8393('0x8'));router['get']('/',auth['isAuthenticated'](),controller[_0x8393('0x9')]);router[_0x8393('0xa')]('/describe',auth[_0x8393('0xb')](),controller[_0x8393('0xc')]);router[_0x8393('0xa')](_0x8393('0xd'),auth[_0x8393('0xb')](),controller[_0x8393('0xe')]);router[_0x8393('0xa')]('/:id/dispositions',auth[_0x8393('0xb')](),controller[_0x8393('0xf')]);router[_0x8393('0xa')]('/:id/canned_answers',auth[_0x8393('0xb')](),controller[_0x8393('0x10')]);router[_0x8393('0xa')](_0x8393('0x11'),controller[_0x8393('0x12')]);router[_0x8393('0xa')](_0x8393('0x13'),controller[_0x8393('0x14')]);router[_0x8393('0xa')](_0x8393('0x15'),controller[_0x8393('0x16')]);router['get'](_0x8393('0x17'),controller['getSystemAvatar']);router[_0x8393('0xa')]('/:id/interactions',auth['isAuthenticated'](),controller['getInteractions']);router[_0x8393('0xa')](_0x8393('0x18'),controller[_0x8393('0x19')]);router[_0x8393('0xa')](_0x8393('0x1a'),auth['isAuthenticated'](),controller['getApplications']);router[_0x8393('0xa')]('/:id/proactive_actions',auth['isAuthenticated'](),controller['getProactiveActions']);router['get'](_0x8393('0x1b'),controller[_0x8393('0x1c')]);router[_0x8393('0xa')]('/:id/offline_messages',auth[_0x8393('0xb')](),controller[_0x8393('0x1d')]);router['get'](_0x8393('0x1e'),auth[_0x8393('0xb')](),controller[_0x8393('0x1f')]);router[_0x8393('0x20')]('/',auth[_0x8393('0xb')](),controller[_0x8393('0x21')]);router[_0x8393('0x20')]('/:id/dispositions',auth[_0x8393('0xb')](),controller[_0x8393('0x22')]);router[_0x8393('0x20')]('/:id/canned_answers',auth['isAuthenticated'](),controller[_0x8393('0x23')]);var upload=multer({'storage':multer[_0x8393('0x24')]({'destination':function(_0x9d55b0,_0x34f0b5,_0x5b665e){_0x5b665e(null,path[_0x8393('0x25')](config[_0x8393('0x26')],_0x8393('0x27')));},'filename':function(_0x5453f0,_0x1a1b89,_0x4de7ba){_0x4de7ba(null,util[_0x8393('0x28')](_0x8393('0x29'),Date[_0x8393('0x2a')](),_0x1a1b89[_0x8393('0x2b')]));}})});router[_0x8393('0x20')](_0x8393('0x11'),upload[_0x8393('0x2c')](_0x8393('0x2d')),controller[_0x8393('0x2e')]);var upload=multer({'storage':multer['diskStorage']({'destination':function(_0xa4cbbb,_0x255dce,_0x41c879){_0x41c879(null,path[_0x8393('0x25')](config[_0x8393('0x26')],'server/files/images/avatars/'));},'filename':function(_0x8a3e40,_0x19e07e,_0x3dd03b){_0x3dd03b(null,util[_0x8393('0x28')](_0x8393('0x29'),Date[_0x8393('0x2a')](),_0x19e07e[_0x8393('0x2b')]));}})});router[_0x8393('0x20')](_0x8393('0x13'),upload['single'](_0x8393('0x2d')),controller[_0x8393('0x2f')]);var upload=multer({'storage':multer[_0x8393('0x24')]({'destination':function(_0x2bcc3d,_0x410937,_0x570e20){_0x570e20(null,path[_0x8393('0x25')](config[_0x8393('0x26')],'server/files/images/avatars/'));},'filename':function(_0xdacd88,_0x387872,_0x2c3535){_0x2c3535(null,util['format']('%s-%s',Date[_0x8393('0x2a')](),_0x387872[_0x8393('0x2b')]));}})});router[_0x8393('0x20')](_0x8393('0x15'),upload[_0x8393('0x2c')]('file'),controller[_0x8393('0x30')]);var upload=multer({'storage':multer[_0x8393('0x24')]({'destination':function(_0x118f8c,_0x5c52ca,_0x3c7053){_0x3c7053(null,path['join'](config['root'],'server/files/images/avatars/'));},'filename':function(_0x396cc9,_0x247be8,_0x2b97e4){_0x2b97e4(null,util[_0x8393('0x28')](_0x8393('0x29'),Date[_0x8393('0x2a')](),_0x247be8[_0x8393('0x2b')]));}})});router['post'](_0x8393('0x17'),upload[_0x8393('0x2c')](_0x8393('0x2d')),controller[_0x8393('0x31')]);router['post'](_0x8393('0x32'),controller[_0x8393('0x33')]);const offlineUploadMulter=multer({'storage':multer[_0x8393('0x24')]({'destination':function(_0x960d82,_0x47ada8,_0x33fdc5){const _0x1bda7f=path['join'](config['root'],'server/files',_0x8393('0x34'),'offline-chat');fs_extra['ensureDir'](_0x1bda7f,function(){_0x33fdc5(null,_0x1bda7f);});},'filename':function(_0x561c93,_0x22188c,_0x8b83fa){const _0x5ab529=_0x22188c[_0x8393('0x2b')][_0x8393('0x35')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');const _0x514e0c=path[_0x8393('0x36')](_0x5ab529);const _0x367b95=Date['now']()+'-'+_0x5ab529['replace'](_0x514e0c,'')+_0x514e0c;_0x8b83fa(null,_0x367b95);}})});router['post'](_0x8393('0x37'),offlineUploadMulter[_0x8393('0x38')](),controller[_0x8393('0x39')]);router[_0x8393('0x20')](_0x8393('0x3a'),auth[_0x8393('0xb')](),controller[_0x8393('0x3b')]);router['post'](_0x8393('0x1a'),auth['isAuthenticated'](),controller[_0x8393('0x3c')]);router[_0x8393('0x20')](_0x8393('0x3d'),auth[_0x8393('0xb')](),controller[_0x8393('0x3e')]);router[_0x8393('0x20')](_0x8393('0x1e'),auth[_0x8393('0xb')](),controller['addAgents']);router['put'](_0x8393('0xd'),auth[_0x8393('0xb')](),controller[_0x8393('0x3f')]);router['delete'](_0x8393('0xd'),auth['isAuthenticated'](),controller['destroy']);router[_0x8393('0x40')](_0x8393('0x41'),auth[_0x8393('0xb')](),controller[_0x8393('0x42')]);router[_0x8393('0x40')](_0x8393('0x43'),auth[_0x8393('0xb')](),controller[_0x8393('0x44')]);router[_0x8393('0x40')](_0x8393('0x1e'),auth['isAuthenticated'](),controller[_0x8393('0x45')]);module['exports']=router;
\ No newline at end of file
+var _0x919a=['%s-%s','now','originalname','post','file','addLogo','server/files/images/avatars/','single','addAvatar','addCustomerAvatar','addSystemAvatar','/:id/notify','notify','server/files','attachments','offline-chat','ensureDir','replace','extname','/:id/offline','any','addInteraction','addApplications','/:id/proactive_actions','addProactiveActions','delete','removeDispositions','removeAnswers','removeAgents','util','path','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./chatWebsite.controller','get','isAuthenticated','index','describe','/:id','show','/:id/dispositions','getDispositions','/:id/canned_answers','getAnswers','/:id/logo','/:id/avatar','getAvatar','/:id/customer_avatar','/:id/system_avatar','getSystemAvatar','/:id/interactions','getInteractions','/:id/snippet','getSnippet','/:id/applications','getApplications','getProactiveActions','/:id/offline_messages','/:id/users','getAgents','addDisposition','diskStorage','join','root','server/files/images/logos/','format'];(function(_0x1f6691,_0x3a3d46){var _0xf786b6=function(_0x2afbdb){while(--_0x2afbdb){_0x1f6691['push'](_0x1f6691['shift']());}};_0xf786b6(++_0x3a3d46);}(_0x919a,0x171));var _0xa919=function(_0x173441,_0x26b0d9){_0x173441=_0x173441-0x0;var _0x2423a8=_0x919a[_0x173441];return _0x2423a8;};'use strict';var multer=require('multer');var util=require(_0xa919('0x0'));var path=require(_0xa919('0x1'));var timeout=require('connect-timeout');var express=require('express');var router=express['Router']();var fs_extra=require(_0xa919('0x2'));var auth=require(_0xa919('0x3'));var interaction=require(_0xa919('0x4'));var config=require(_0xa919('0x5'));var controller=require(_0xa919('0x6'));router[_0xa919('0x7')]('/',auth[_0xa919('0x8')](),controller[_0xa919('0x9')]);router[_0xa919('0x7')]('/describe',auth['isAuthenticated'](),controller[_0xa919('0xa')]);router[_0xa919('0x7')](_0xa919('0xb'),auth['isAuthenticated'](),controller[_0xa919('0xc')]);router[_0xa919('0x7')](_0xa919('0xd'),auth[_0xa919('0x8')](),controller[_0xa919('0xe')]);router['get'](_0xa919('0xf'),auth[_0xa919('0x8')](),controller[_0xa919('0x10')]);router[_0xa919('0x7')](_0xa919('0x11'),controller['getLogo']);router['get'](_0xa919('0x12'),controller[_0xa919('0x13')]);router[_0xa919('0x7')](_0xa919('0x14'),controller['getCustomerAvatar']);router[_0xa919('0x7')](_0xa919('0x15'),controller[_0xa919('0x16')]);router[_0xa919('0x7')](_0xa919('0x17'),auth[_0xa919('0x8')](),controller[_0xa919('0x18')]);router['get'](_0xa919('0x19'),controller[_0xa919('0x1a')]);router[_0xa919('0x7')](_0xa919('0x1b'),auth['isAuthenticated'](),controller[_0xa919('0x1c')]);router[_0xa919('0x7')]('/:id/proactive_actions',auth[_0xa919('0x8')](),controller[_0xa919('0x1d')]);router[_0xa919('0x7')]('/:id/fields',controller['getFields']);router[_0xa919('0x7')](_0xa919('0x1e'),auth[_0xa919('0x8')](),controller['getOfflineMessages']);router['get'](_0xa919('0x1f'),auth['isAuthenticated'](),controller[_0xa919('0x20')]);router['post']('/',auth[_0xa919('0x8')](),controller['create']);router['post'](_0xa919('0xd'),auth['isAuthenticated'](),controller[_0xa919('0x21')]);router['post'](_0xa919('0xf'),auth['isAuthenticated'](),controller['addAnswer']);var upload=multer({'storage':multer[_0xa919('0x22')]({'destination':function(_0x16537e,_0x24e8a0,_0x39b89d){_0x39b89d(null,path[_0xa919('0x23')](config[_0xa919('0x24')],_0xa919('0x25')));},'filename':function(_0x580edd,_0x3386b0,_0x227093){_0x227093(null,util[_0xa919('0x26')](_0xa919('0x27'),Date[_0xa919('0x28')](),_0x3386b0[_0xa919('0x29')]));}})});router[_0xa919('0x2a')]('/:id/logo',upload['single'](_0xa919('0x2b')),controller[_0xa919('0x2c')]);var upload=multer({'storage':multer['diskStorage']({'destination':function(_0x27e676,_0x9e054,_0x2710cc){_0x2710cc(null,path[_0xa919('0x23')](config['root'],_0xa919('0x2d')));},'filename':function(_0x396eff,_0x2a384c,_0x95fdf7){_0x95fdf7(null,util['format'](_0xa919('0x27'),Date[_0xa919('0x28')](),_0x2a384c[_0xa919('0x29')]));}})});router[_0xa919('0x2a')](_0xa919('0x12'),upload[_0xa919('0x2e')](_0xa919('0x2b')),controller[_0xa919('0x2f')]);var upload=multer({'storage':multer[_0xa919('0x22')]({'destination':function(_0x372b3c,_0x46a0a2,_0x4b7928){_0x4b7928(null,path['join'](config[_0xa919('0x24')],_0xa919('0x2d')));},'filename':function(_0x3a6485,_0x461d4e,_0x18b8e6){_0x18b8e6(null,util['format'](_0xa919('0x27'),Date[_0xa919('0x28')](),_0x461d4e[_0xa919('0x29')]));}})});router[_0xa919('0x2a')]('/:id/customer_avatar',upload['single']('file'),controller[_0xa919('0x30')]);var upload=multer({'storage':multer[_0xa919('0x22')]({'destination':function(_0x57ace1,_0x363a63,_0x5b94b1){_0x5b94b1(null,path[_0xa919('0x23')](config[_0xa919('0x24')],_0xa919('0x2d')));},'filename':function(_0x111955,_0x4c13ae,_0x4a942f){_0x4a942f(null,util['format'](_0xa919('0x27'),Date[_0xa919('0x28')](),_0x4c13ae[_0xa919('0x29')]));}})});router['post'](_0xa919('0x15'),upload['single'](_0xa919('0x2b')),controller[_0xa919('0x31')]);router['post'](_0xa919('0x32'),controller[_0xa919('0x33')]);const offlineUploadMulter=multer({'storage':multer[_0xa919('0x22')]({'destination':function(_0x203361,_0x81dc44,_0x2bdac4){const _0x50c00b=path['join'](config[_0xa919('0x24')],_0xa919('0x34'),_0xa919('0x35'),_0xa919('0x36'));fs_extra[_0xa919('0x37')](_0x50c00b,function(){_0x2bdac4(null,_0x50c00b);});},'filename':function(_0x2148fa,_0x374873,_0x334110){const _0x2ba4c7=_0x374873[_0xa919('0x29')][_0xa919('0x38')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');const _0xbfbb7f=path[_0xa919('0x39')](_0x2ba4c7);const _0x2eaf19=Date[_0xa919('0x28')]()+'-'+_0x2ba4c7[_0xa919('0x38')](_0xbfbb7f,'')+_0xbfbb7f;_0x334110(null,_0x2eaf19);}})});router['post'](_0xa919('0x3a'),offlineUploadMulter[_0xa919('0x3b')](),controller['offline']);router['post']('/:id/interactions',auth[_0xa919('0x8')](),controller[_0xa919('0x3c')]);router[_0xa919('0x2a')](_0xa919('0x1b'),auth[_0xa919('0x8')](),controller[_0xa919('0x3d')]);router['post'](_0xa919('0x3e'),auth['isAuthenticated'](),controller[_0xa919('0x3f')]);router[_0xa919('0x2a')](_0xa919('0x1f'),auth['isAuthenticated'](),controller['addAgents']);router['put'](_0xa919('0xb'),auth['isAuthenticated'](),controller['update']);router[_0xa919('0x40')](_0xa919('0xb'),auth['isAuthenticated'](),controller['destroy']);router[_0xa919('0x40')](_0xa919('0xd'),auth[_0xa919('0x8')](),controller[_0xa919('0x41')]);router[_0xa919('0x40')](_0xa919('0xf'),auth['isAuthenticated'](),controller[_0xa919('0x42')]);router[_0xa919('0x40')]('/:id/users',auth[_0xa919('0x8')](),controller[_0xa919('0x43')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd43e=['Google','sequelize','STRING','ENUM','AmazonAWS'];(function(_0x1e238c,_0x4a17d2){var _0x308f0d=function(_0x49dd90){while(--_0x49dd90){_0x1e238c['push'](_0x1e238c['shift']());}};_0x308f0d(++_0x4a17d2);}(_0xd43e,0x88));var _0xed43=function(_0x4a6470,_0x167a61){_0x4a6470=_0x4a6470-0x0;var _0x5203d7=_0xd43e[_0x4a6470];return _0x5203d7;};'use strict';var Sequelize=require(_0xed43('0x0'));module['exports']={'name':{'type':Sequelize[_0xed43('0x1')],'allowNull':![],'validate':{'notEmpty':!![]}},'service':{'type':Sequelize[_0xed43('0x2')](_0xed43('0x3'),_0xed43('0x4')),'allowNull':![],'validate':{'notEmpty':!![]}},'data1':{'type':Sequelize['STRING']},'data2':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0xe626=['ENUM','Google','sequelize','exports','STRING'];(function(_0x315b01,_0x583ac1){var _0x37c9c4=function(_0x4eb7b5){while(--_0x4eb7b5){_0x315b01['push'](_0x315b01['shift']());}};_0x37c9c4(++_0x583ac1);}(_0xe626,0x9d));var _0x6e62=function(_0x2eebdd,_0x49fa7b){_0x2eebdd=_0x2eebdd-0x0;var _0xd1cbb4=_0xe626[_0x2eebdd];return _0xd1cbb4;};'use strict';var Sequelize=require(_0x6e62('0x0'));module[_0x6e62('0x1')]={'name':{'type':Sequelize[_0x6e62('0x2')],'allowNull':![],'validate':{'notEmpty':!![]}},'service':{'type':Sequelize[_0x6e62('0x3')]('AmazonAWS',_0x6e62('0x4')),'allowNull':![],'validate':{'notEmpty':!![]}},'data1':{'type':Sequelize[_0x6e62('0x2')]},'data2':{'type':Sequelize[_0x6e62('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2ef3=['update','error','stack','name','send','map','rawAttributes','fieldName','type','key','model','query','filters','attributes','intersection','fields','length','hasOwnProperty','order','sort','where','pick','filter','merge','options','CloudProvider','then','includeAll','include','findAll','catch','show','params','keys','create','body','find','destroy','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','sox','to-csv','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save'];(function(_0xb096ef,_0x20ebdf){var _0x5ac5b=function(_0x11b4be){while(--_0x11b4be){_0xb096ef['push'](_0xb096ef['shift']());}};_0x5ac5b(++_0x20ebdf);}(_0x2ef3,0xba));var _0x32ef=function(_0x29f0c7,_0x41bb6d){_0x29f0c7=_0x29f0c7-0x0;var _0xb09310=_0x2ef3[_0x29f0c7];return _0xb09310;};'use strict';var emlformat=require(_0x32ef('0x0'));var rimraf=require(_0x32ef('0x1'));var zipdir=require(_0x32ef('0x2'));var jsonpatch=require(_0x32ef('0x3'));var rp=require(_0x32ef('0x4'));var moment=require(_0x32ef('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x32ef('0x6'));var util=require(_0x32ef('0x7'));var path=require('path');var sox=require(_0x32ef('0x8'));var csv=require(_0x32ef('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x32ef('0xa'));var squel=require(_0x32ef('0xb'));var crypto=require(_0x32ef('0xc'));var jsforce=require(_0x32ef('0xd'));var deskjs=require(_0x32ef('0xe'));var toCsv=require(_0x32ef('0x9'));var querystring=require(_0x32ef('0xf'));var Papa=require(_0x32ef('0x10'));var Redis=require(_0x32ef('0x11'));var authService=require(_0x32ef('0x12'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x32ef('0x13'));var logger=require(_0x32ef('0x14'))(_0x32ef('0x15'));var utils=require(_0x32ef('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x32ef('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x1a5106,_0x49d590){_0x49d590=_0x49d590||0xcc;return function(_0x3e98df){if(_0x3e98df){return _0x1a5106[_0x32ef('0x18')](_0x49d590);}return _0x1a5106['status'](_0x49d590)['end']();};}function respondWithResult(_0x19ce1,_0x4d8009){_0x4d8009=_0x4d8009||0xc8;return function(_0x326fce){if(_0x326fce){return _0x19ce1[_0x32ef('0x19')](_0x4d8009)[_0x32ef('0x1a')](_0x326fce);}};}function respondWithFilteredResult(_0x54c7f5,_0x57aff1){return function(_0x55bf0b){if(_0x55bf0b){var _0x531e30=typeof _0x57aff1[_0x32ef('0x1b')]===_0x32ef('0x1c')&&typeof _0x57aff1[_0x32ef('0x1d')]==='undefined';var _0x5d559b=_0x55bf0b[_0x32ef('0x1e')];var _0x1a9476=_0x531e30?0x0:_0x57aff1[_0x32ef('0x1b')];var _0x57863c=_0x531e30?_0x55bf0b[_0x32ef('0x1e')]:_0x57aff1[_0x32ef('0x1b')]+_0x57aff1['limit'];var _0x304505;if(_0x57863c>=_0x5d559b){_0x57863c=_0x5d559b;_0x304505=0xc8;}else{_0x304505=0xce;}_0x54c7f5[_0x32ef('0x19')](_0x304505);return _0x54c7f5[_0x32ef('0x1f')](_0x32ef('0x20'),_0x1a9476+'-'+_0x57863c+'/'+_0x5d559b)[_0x32ef('0x1a')](_0x55bf0b);}return null;};}function patchUpdates(_0x3aec05){return function(_0x4de441){try{jsonpatch[_0x32ef('0x21')](_0x4de441,_0x3aec05,!![]);}catch(_0x5cc3ef){return BPromise[_0x32ef('0x22')](_0x5cc3ef);}return _0x4de441[_0x32ef('0x23')]();};}function saveUpdates(_0x49f2d8,_0x1af371){return function(_0x97780){if(_0x97780){return _0x97780[_0x32ef('0x24')](_0x49f2d8)['then'](function(_0x57f5e5){return _0x57f5e5;});}return null;};}function removeEntity(_0x22f2d7,_0xb30fab){return function(_0x225feb){if(_0x225feb){return _0x225feb['destroy']()['then'](function(){_0x22f2d7[_0x32ef('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x51a412,_0x278495){return function(_0x14d4b3){if(!_0x14d4b3){_0x51a412[_0x32ef('0x18')](0x194);}return _0x14d4b3;};}function handleError(_0x1dbe98,_0x15ce54){_0x15ce54=_0x15ce54||0x1f4;return function(_0x234175){logger[_0x32ef('0x25')](_0x234175[_0x32ef('0x26')]);if(_0x234175[_0x32ef('0x27')]){delete _0x234175[_0x32ef('0x27')];}_0x1dbe98[_0x32ef('0x19')](_0x15ce54)[_0x32ef('0x28')](_0x234175);};}exports['index']=function(_0xd65fde,_0x2f5d06){var _0x5a04cd={},_0x12de1a={},_0x3c569d={'count':0x0,'rows':[]};var _0x30b250=_[_0x32ef('0x29')](db['CloudProvider'][_0x32ef('0x2a')],function(_0x22bf86){return{'name':_0x22bf86[_0x32ef('0x2b')],'type':_0x22bf86[_0x32ef('0x2c')][_0x32ef('0x2d')]};});_0x12de1a[_0x32ef('0x2e')]=_[_0x32ef('0x29')](_0x30b250,'name');_0x12de1a[_0x32ef('0x2f')]=_['keys'](_0xd65fde[_0x32ef('0x2f')]);_0x12de1a[_0x32ef('0x30')]=_['intersection'](_0x12de1a[_0x32ef('0x2e')],_0x12de1a[_0x32ef('0x2f')]);_0x5a04cd[_0x32ef('0x31')]=_[_0x32ef('0x32')](_0x12de1a[_0x32ef('0x2e')],qs['fields'](_0xd65fde['query'][_0x32ef('0x33')]));_0x5a04cd['attributes']=_0x5a04cd[_0x32ef('0x31')][_0x32ef('0x34')]?_0x5a04cd[_0x32ef('0x31')]:_0x12de1a[_0x32ef('0x2e')];if(!_0xd65fde[_0x32ef('0x2f')][_0x32ef('0x35')]('nolimit')){_0x5a04cd['limit']=qs['limit'](_0xd65fde[_0x32ef('0x2f')][_0x32ef('0x1d')]);_0x5a04cd[_0x32ef('0x1b')]=qs['offset'](_0xd65fde['query'][_0x32ef('0x1b')]);}_0x5a04cd[_0x32ef('0x36')]=qs[_0x32ef('0x37')](_0xd65fde['query']['sort']);_0x5a04cd[_0x32ef('0x38')]=qs[_0x32ef('0x30')](_[_0x32ef('0x39')](_0xd65fde[_0x32ef('0x2f')],_0x12de1a[_0x32ef('0x30')]),_0x30b250);if(_0xd65fde[_0x32ef('0x2f')][_0x32ef('0x3a')]){_0x5a04cd[_0x32ef('0x38')]=_[_0x32ef('0x3b')](_0x5a04cd['where'],{'$or':_[_0x32ef('0x29')](_0x30b250,function(_0x36e374){if(_0x36e374[_0x32ef('0x2c')]!=='VIRTUAL'){var _0x365125={};_0x365125[_0x36e374[_0x32ef('0x27')]]={'$like':'%'+_0xd65fde[_0x32ef('0x2f')][_0x32ef('0x3a')]+'%'};return _0x365125;}})});}_0x5a04cd=_[_0x32ef('0x3b')]({},_0x5a04cd,_0xd65fde[_0x32ef('0x3c')]);var _0x256c40={'where':_0x5a04cd[_0x32ef('0x38')]};return db[_0x32ef('0x3d')][_0x32ef('0x1e')](_0x256c40)[_0x32ef('0x3e')](function(_0x4615b4){_0x3c569d['count']=_0x4615b4;if(_0xd65fde[_0x32ef('0x2f')][_0x32ef('0x3f')]){_0x5a04cd[_0x32ef('0x40')]=[{'all':!![]}];}return db[_0x32ef('0x3d')][_0x32ef('0x41')](_0x5a04cd);})[_0x32ef('0x3e')](function(_0x3c0e44){_0x3c569d['rows']=_0x3c0e44;return _0x3c569d;})['then'](respondWithFilteredResult(_0x2f5d06,_0x5a04cd))[_0x32ef('0x42')](handleError(_0x2f5d06,null));};exports[_0x32ef('0x43')]=function(_0x2a33dd,_0x765c63){var _0x5dca14={'raw':!![],'where':{'id':_0x2a33dd[_0x32ef('0x44')]['id']}},_0x2901a1={};_0x2901a1['model']=_[_0x32ef('0x45')](db['CloudProvider'][_0x32ef('0x2a')]);_0x2901a1[_0x32ef('0x2f')]=_[_0x32ef('0x45')](_0x2a33dd[_0x32ef('0x2f')]);_0x2901a1[_0x32ef('0x30')]=_[_0x32ef('0x32')](_0x2901a1[_0x32ef('0x2e')],_0x2901a1[_0x32ef('0x2f')]);_0x5dca14[_0x32ef('0x31')]=_[_0x32ef('0x32')](_0x2901a1['model'],qs[_0x32ef('0x33')](_0x2a33dd['query'][_0x32ef('0x33')]));_0x5dca14[_0x32ef('0x31')]=_0x5dca14[_0x32ef('0x31')]['length']?_0x5dca14[_0x32ef('0x31')]:_0x2901a1[_0x32ef('0x2e')];if(_0x2a33dd[_0x32ef('0x2f')][_0x32ef('0x3f')]){_0x5dca14[_0x32ef('0x40')]=[{'all':!![]}];}_0x5dca14=_[_0x32ef('0x3b')]({},_0x5dca14,_0x2a33dd[_0x32ef('0x3c')]);return db['CloudProvider']['find'](_0x5dca14)[_0x32ef('0x3e')](handleEntityNotFound(_0x765c63,null))[_0x32ef('0x3e')](respondWithResult(_0x765c63,null))[_0x32ef('0x42')](handleError(_0x765c63,null));};exports[_0x32ef('0x46')]=function(_0x209361,_0xd67dc9){return db[_0x32ef('0x3d')][_0x32ef('0x46')](_0x209361[_0x32ef('0x47')],{})[_0x32ef('0x3e')](respondWithResult(_0xd67dc9,0xc9))[_0x32ef('0x42')](handleError(_0xd67dc9,null));};exports[_0x32ef('0x24')]=function(_0x36a65c,_0x4c2534){if(_0x36a65c[_0x32ef('0x47')]['id']){delete _0x36a65c[_0x32ef('0x47')]['id'];}return db[_0x32ef('0x3d')][_0x32ef('0x48')]({'where':{'id':_0x36a65c[_0x32ef('0x44')]['id']}})[_0x32ef('0x3e')](handleEntityNotFound(_0x4c2534,null))[_0x32ef('0x3e')](saveUpdates(_0x36a65c[_0x32ef('0x47')],null))[_0x32ef('0x3e')](respondWithResult(_0x4c2534,null))[_0x32ef('0x42')](handleError(_0x4c2534,null));};exports[_0x32ef('0x49')]=function(_0x29d456,_0x272377){return db[_0x32ef('0x3d')][_0x32ef('0x48')]({'where':{'id':_0x29d456[_0x32ef('0x44')]['id']}})[_0x32ef('0x3e')](handleEntityNotFound(_0x272377,null))[_0x32ef('0x3e')](removeEntity(_0x272377,null))['catch'](handleError(_0x272377,null));};
\ No newline at end of file
+var _0x5f66=['update','catch','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','path','to-csv','ejs','squel','crypto','jsforce','desk.js','querystring','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/license/util','sendStatus','status','end','json','undefined','limit','count','offset','Content-Range','apply','reject','save','destroy','then','error','name','send','index','map','CloudProvider','rawAttributes','fieldName','model','keys','query','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','filter','merge','type','VIRTUAL','includeAll','include','findAll','rows','show','params','find','create','body'];(function(_0x168342,_0x62b1cd){var _0x5ebd02=function(_0x5619be){while(--_0x5619be){_0x168342['push'](_0x168342['shift']());}};_0x5ebd02(++_0x62b1cd);}(_0x5f66,0x1a0));var _0x65f6=function(_0xa464c9,_0x7c86d8){_0xa464c9=_0xa464c9-0x0;var _0x3d73c4=_0x5f66[_0xa464c9];return _0x3d73c4;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x65f6('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x65f6('0x1'));var rp=require(_0x65f6('0x2'));var moment=require(_0x65f6('0x3'));var BPromise=require(_0x65f6('0x4'));var Mustache=require(_0x65f6('0x5'));var util=require('util');var path=require(_0x65f6('0x6'));var sox=require('sox');var csv=require(_0x65f6('0x7'));var ejs=require(_0x65f6('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x65f6('0x9'));var crypto=require(_0x65f6('0xa'));var jsforce=require(_0x65f6('0xb'));var deskjs=require(_0x65f6('0xc'));var toCsv=require(_0x65f6('0x7'));var querystring=require(_0x65f6('0xd'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x65f6('0xe'));var qs=require(_0x65f6('0xf'));var as=require(_0x65f6('0x10'));var hardwareService=require(_0x65f6('0x11'));var logger=require('../../config/logger')(_0x65f6('0x12'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x65f6('0x13'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x419819,_0x4862a5){_0x4862a5=_0x4862a5||0xcc;return function(_0x2f964a){if(_0x2f964a){return _0x419819[_0x65f6('0x14')](_0x4862a5);}return _0x419819[_0x65f6('0x15')](_0x4862a5)[_0x65f6('0x16')]();};}function respondWithResult(_0x369f96,_0x1d29fd){_0x1d29fd=_0x1d29fd||0xc8;return function(_0x44144b){if(_0x44144b){return _0x369f96[_0x65f6('0x15')](_0x1d29fd)[_0x65f6('0x17')](_0x44144b);}};}function respondWithFilteredResult(_0x3440af,_0x59154e){return function(_0x19b9ff){if(_0x19b9ff){var _0x49a913=typeof _0x59154e['offset']===_0x65f6('0x18')&&typeof _0x59154e[_0x65f6('0x19')]===_0x65f6('0x18');var _0x1c955c=_0x19b9ff[_0x65f6('0x1a')];var _0x1f974c=_0x49a913?0x0:_0x59154e[_0x65f6('0x1b')];var _0x18380e=_0x49a913?_0x19b9ff['count']:_0x59154e['offset']+_0x59154e[_0x65f6('0x19')];var _0x5b4055;if(_0x18380e>=_0x1c955c){_0x18380e=_0x1c955c;_0x5b4055=0xc8;}else{_0x5b4055=0xce;}_0x3440af['status'](_0x5b4055);return _0x3440af['set'](_0x65f6('0x1c'),_0x1f974c+'-'+_0x18380e+'/'+_0x1c955c)[_0x65f6('0x17')](_0x19b9ff);}return null;};}function patchUpdates(_0x5114a4){return function(_0x39e19f){try{jsonpatch[_0x65f6('0x1d')](_0x39e19f,_0x5114a4,!![]);}catch(_0xbee6a4){return BPromise[_0x65f6('0x1e')](_0xbee6a4);}return _0x39e19f[_0x65f6('0x1f')]();};}function saveUpdates(_0xc139c2,_0x581374){return function(_0x197a49){if(_0x197a49){return _0x197a49['update'](_0xc139c2)['then'](function(_0x212247){return _0x212247;});}return null;};}function removeEntity(_0xd173f4,_0x524e42){return function(_0x1eeaaa){if(_0x1eeaaa){return _0x1eeaaa[_0x65f6('0x20')]()[_0x65f6('0x21')](function(){_0xd173f4[_0x65f6('0x15')](0xcc)['end']();});}};}function handleEntityNotFound(_0x9d7bb0,_0x59ea32){return function(_0x20a161){if(!_0x20a161){_0x9d7bb0['sendStatus'](0x194);}return _0x20a161;};}function handleError(_0x5cb131,_0x4fde2f){_0x4fde2f=_0x4fde2f||0x1f4;return function(_0x29abdb){logger[_0x65f6('0x22')](_0x29abdb['stack']);if(_0x29abdb[_0x65f6('0x23')]){delete _0x29abdb[_0x65f6('0x23')];}_0x5cb131['status'](_0x4fde2f)[_0x65f6('0x24')](_0x29abdb);};}exports[_0x65f6('0x25')]=function(_0x28d0df,_0x559330){var _0x4ac04b={},_0x488d36={},_0x266cfe={'count':0x0,'rows':[]};var _0x3c032f=_[_0x65f6('0x26')](db[_0x65f6('0x27')][_0x65f6('0x28')],function(_0x14a387){return{'name':_0x14a387[_0x65f6('0x29')],'type':_0x14a387['type']['key']};});_0x488d36[_0x65f6('0x2a')]=_[_0x65f6('0x26')](_0x3c032f,'name');_0x488d36['query']=_[_0x65f6('0x2b')](_0x28d0df[_0x65f6('0x2c')]);_0x488d36[_0x65f6('0x2d')]=_[_0x65f6('0x2e')](_0x488d36[_0x65f6('0x2a')],_0x488d36[_0x65f6('0x2c')]);_0x4ac04b['attributes']=_[_0x65f6('0x2e')](_0x488d36[_0x65f6('0x2a')],qs[_0x65f6('0x2f')](_0x28d0df['query'][_0x65f6('0x2f')]));_0x4ac04b[_0x65f6('0x30')]=_0x4ac04b[_0x65f6('0x30')][_0x65f6('0x31')]?_0x4ac04b[_0x65f6('0x30')]:_0x488d36[_0x65f6('0x2a')];if(!_0x28d0df['query'][_0x65f6('0x32')](_0x65f6('0x33'))){_0x4ac04b['limit']=qs[_0x65f6('0x19')](_0x28d0df['query'][_0x65f6('0x19')]);_0x4ac04b['offset']=qs[_0x65f6('0x1b')](_0x28d0df[_0x65f6('0x2c')]['offset']);}_0x4ac04b[_0x65f6('0x34')]=qs[_0x65f6('0x35')](_0x28d0df[_0x65f6('0x2c')]['sort']);_0x4ac04b['where']=qs[_0x65f6('0x2d')](_['pick'](_0x28d0df[_0x65f6('0x2c')],_0x488d36['filters']),_0x3c032f);if(_0x28d0df[_0x65f6('0x2c')][_0x65f6('0x36')]){_0x4ac04b['where']=_[_0x65f6('0x37')](_0x4ac04b['where'],{'$or':_['map'](_0x3c032f,function(_0x71b16b){if(_0x71b16b[_0x65f6('0x38')]!==_0x65f6('0x39')){var _0x313be5={};_0x313be5[_0x71b16b[_0x65f6('0x23')]]={'$like':'%'+_0x28d0df[_0x65f6('0x2c')][_0x65f6('0x36')]+'%'};return _0x313be5;}})});}_0x4ac04b=_[_0x65f6('0x37')]({},_0x4ac04b,_0x28d0df['options']);var _0x3aa254={'where':_0x4ac04b['where']};return db[_0x65f6('0x27')][_0x65f6('0x1a')](_0x3aa254)[_0x65f6('0x21')](function(_0x2ea7f7){_0x266cfe['count']=_0x2ea7f7;if(_0x28d0df[_0x65f6('0x2c')][_0x65f6('0x3a')]){_0x4ac04b[_0x65f6('0x3b')]=[{'all':!![]}];}return db[_0x65f6('0x27')][_0x65f6('0x3c')](_0x4ac04b);})[_0x65f6('0x21')](function(_0xed4c96){_0x266cfe[_0x65f6('0x3d')]=_0xed4c96;return _0x266cfe;})[_0x65f6('0x21')](respondWithFilteredResult(_0x559330,_0x4ac04b))['catch'](handleError(_0x559330,null));};exports[_0x65f6('0x3e')]=function(_0x400ed2,_0x377ae5){var _0x181798={'raw':!![],'where':{'id':_0x400ed2[_0x65f6('0x3f')]['id']}},_0x83e2d9={};_0x83e2d9[_0x65f6('0x2a')]=_[_0x65f6('0x2b')](db[_0x65f6('0x27')][_0x65f6('0x28')]);_0x83e2d9[_0x65f6('0x2c')]=_[_0x65f6('0x2b')](_0x400ed2[_0x65f6('0x2c')]);_0x83e2d9[_0x65f6('0x2d')]=_[_0x65f6('0x2e')](_0x83e2d9[_0x65f6('0x2a')],_0x83e2d9['query']);_0x181798[_0x65f6('0x30')]=_[_0x65f6('0x2e')](_0x83e2d9[_0x65f6('0x2a')],qs[_0x65f6('0x2f')](_0x400ed2['query'][_0x65f6('0x2f')]));_0x181798[_0x65f6('0x30')]=_0x181798[_0x65f6('0x30')]['length']?_0x181798[_0x65f6('0x30')]:_0x83e2d9[_0x65f6('0x2a')];if(_0x400ed2[_0x65f6('0x2c')][_0x65f6('0x3a')]){_0x181798['include']=[{'all':!![]}];}_0x181798=_[_0x65f6('0x37')]({},_0x181798,_0x400ed2['options']);return db[_0x65f6('0x27')][_0x65f6('0x40')](_0x181798)['then'](handleEntityNotFound(_0x377ae5,null))[_0x65f6('0x21')](respondWithResult(_0x377ae5,null))['catch'](handleError(_0x377ae5,null));};exports[_0x65f6('0x41')]=function(_0x4d9b76,_0x2d1706){return db[_0x65f6('0x27')][_0x65f6('0x41')](_0x4d9b76[_0x65f6('0x42')],{})['then'](respondWithResult(_0x2d1706,0xc9))['catch'](handleError(_0x2d1706,null));};exports[_0x65f6('0x43')]=function(_0x15d3ba,_0x3b647a){if(_0x15d3ba[_0x65f6('0x42')]['id']){delete _0x15d3ba[_0x65f6('0x42')]['id'];}return db[_0x65f6('0x27')][_0x65f6('0x40')]({'where':{'id':_0x15d3ba[_0x65f6('0x3f')]['id']}})[_0x65f6('0x21')](handleEntityNotFound(_0x3b647a,null))['then'](saveUpdates(_0x15d3ba[_0x65f6('0x42')],null))[_0x65f6('0x21')](respondWithResult(_0x3b647a,null))[_0x65f6('0x44')](handleError(_0x3b647a,null));};exports['destroy']=function(_0x47e749,_0x42d453){return db['CloudProvider'][_0x65f6('0x40')]({'where':{'id':_0x47e749[_0x65f6('0x3f')]['id']}})['then'](handleEntityNotFound(_0x42d453,null))[_0x65f6('0x21')](removeEntity(_0x42d453,null))['catch'](handleError(_0x42d453,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x14bb=['bluebird','request-promise','path','rimraf','../../config/environment','./cloudProvider.attributes','exports','CloudProvider','lodash','util','api','moment'];(function(_0x27d527,_0x529167){var _0x4a09bd=function(_0x4a1031){while(--_0x4a1031){_0x27d527['push'](_0x27d527['shift']());}};_0x4a09bd(++_0x529167);}(_0x14bb,0x1e8));var _0xb14b=function(_0x5486c2,_0x30c249){_0x5486c2=_0x5486c2-0x0;var _0x45371c=_0x14bb[_0x5486c2];return _0x45371c;};'use strict';var _=require(_0xb14b('0x0'));var util=require(_0xb14b('0x1'));var logger=require('../../config/logger')(_0xb14b('0x2'));var moment=require(_0xb14b('0x3'));var BPromise=require(_0xb14b('0x4'));var rp=require(_0xb14b('0x5'));var fs=require('fs');var path=require(_0xb14b('0x6'));var rimraf=require(_0xb14b('0x7'));var config=require(_0xb14b('0x8'));var attributes=require(_0xb14b('0x9'));module[_0xb14b('0xa')]=function(_0x1db7e6,_0x5c3d29){return _0x1db7e6['define'](_0xb14b('0xb'),attributes,{'tableName':'cloud_providers','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x7030=['bluebird','request-promise','path','rimraf','../../config/environment','./cloudProvider.attributes','exports','define','CloudProvider','cloud_providers','lodash','util','../../config/logger','api'];(function(_0x25e7ef,_0x3540d2){var _0x36920b=function(_0x312f88){while(--_0x312f88){_0x25e7ef['push'](_0x25e7ef['shift']());}};_0x36920b(++_0x3540d2);}(_0x7030,0x122));var _0x0703=function(_0x47db58,_0xa2085b){_0x47db58=_0x47db58-0x0;var _0x19b171=_0x7030[_0x47db58];return _0x19b171;};'use strict';var _=require(_0x0703('0x0'));var util=require(_0x0703('0x1'));var logger=require(_0x0703('0x2'))(_0x0703('0x3'));var moment=require('moment');var BPromise=require(_0x0703('0x4'));var rp=require(_0x0703('0x5'));var fs=require('fs');var path=require(_0x0703('0x6'));var rimraf=require(_0x0703('0x7'));var config=require(_0x0703('0x8'));var attributes=require(_0x0703('0x9'));module[_0x0703('0xa')]=function(_0x53be80,_0x2d95d7){return _0x53be80[_0x0703('0xb')](_0x0703('0xc'),attributes,{'tableName':_0x0703('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x073d=['request','then','info','CloudProvider,\x20%s,\x20%s','CloudProvider,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','util','moment','bluebird','ioredis','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http'];(function(_0x4b369d,_0x265eb8){var _0x571a98=function(_0x56341a){while(--_0x56341a){_0x4b369d['push'](_0x4b369d['shift']());}};_0x571a98(++_0x265eb8);}(_0x073d,0xd2));var _0xd073=function(_0x312962,_0x282d40){_0x312962=_0x312962-0x0;var _0x3e85d0=_0x073d[_0x312962];return _0x3e85d0;};'use strict';var _=require('lodash');var util=require(_0xd073('0x0'));var moment=require(_0xd073('0x1'));var BPromise=require(_0xd073('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xd073('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0xd073('0x4'));var logger=require(_0xd073('0x5'))('rpc');var config=require(_0xd073('0x6'));var jayson=require(_0xd073('0x7'));var client=jayson[_0xd073('0x8')][_0xd073('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x2f5792,_0x3541cd,_0x440c91){return new BPromise(function(_0x409e4a,_0x199033){return client[_0xd073('0xa')](_0x2f5792,_0x440c91)[_0xd073('0xb')](function(_0x1c9295){logger[_0xd073('0xc')](_0xd073('0xd'),_0x3541cd,'request\x20sent');logger['debug'](_0xd073('0xe'),_0x3541cd,'request\x20sent',JSON[_0xd073('0xf')](_0x1c9295));if(_0x1c9295[_0xd073('0x10')]){if(_0x1c9295[_0xd073('0x10')][_0xd073('0x11')]===0x1f4){logger[_0xd073('0x10')]('CloudProvider,\x20%s,\x20%s',_0x3541cd,_0x1c9295[_0xd073('0x10')][_0xd073('0x12')]);return _0x199033(_0x1c9295[_0xd073('0x10')][_0xd073('0x12')]);}logger['error'](_0xd073('0xd'),_0x3541cd,_0x1c9295[_0xd073('0x10')]['message']);return _0x409e4a(_0x1c9295[_0xd073('0x10')][_0xd073('0x12')]);}else{logger[_0xd073('0xc')](_0xd073('0xd'),_0x3541cd,'request\x20sent');_0x409e4a(_0x1c9295[_0xd073('0x13')]['message']);}})['catch'](function(_0x195c5d){logger[_0xd073('0x10')](_0xd073('0xd'),_0x3541cd,_0x195c5d);_0x199033(_0x195c5d);});});}
\ No newline at end of file
+var _0xa329=['ioredis','../../mysqldb','rpc','../../config/environment','jayson/promise','client','http','request','info','CloudProvider,\x20%s,\x20%s','request\x20sent','debug','CloudProvider,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','lodash','util','bluebird'];(function(_0x4e6e6c,_0x5d7519){var _0x45cb5c=function(_0x3c95d8){while(--_0x3c95d8){_0x4e6e6c['push'](_0x4e6e6c['shift']());}};_0x45cb5c(++_0x5d7519);}(_0xa329,0x162));var _0x9a32=function(_0x31c343,_0x5d05a2){_0x31c343=_0x31c343-0x0;var _0x25946f=_0xa329[_0x31c343];return _0x25946f;};'use strict';var _=require(_0x9a32('0x0'));var util=require(_0x9a32('0x1'));var moment=require('moment');var BPromise=require(_0x9a32('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x9a32('0x3'));var db=require(_0x9a32('0x4'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0x9a32('0x5'));var config=require(_0x9a32('0x6'));var jayson=require(_0x9a32('0x7'));var client=jayson[_0x9a32('0x8')][_0x9a32('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x235b92,_0x4a8fba,_0x5b8b5e){return new BPromise(function(_0x4dc7f8,_0x344b35){return client[_0x9a32('0xa')](_0x235b92,_0x5b8b5e)['then'](function(_0x38f6cc){logger[_0x9a32('0xb')](_0x9a32('0xc'),_0x4a8fba,_0x9a32('0xd'));logger[_0x9a32('0xe')](_0x9a32('0xf'),_0x4a8fba,'request\x20sent',JSON[_0x9a32('0x10')](_0x38f6cc));if(_0x38f6cc[_0x9a32('0x11')]){if(_0x38f6cc['error']['code']===0x1f4){logger[_0x9a32('0x11')](_0x9a32('0xc'),_0x4a8fba,_0x38f6cc['error']['message']);return _0x344b35(_0x38f6cc[_0x9a32('0x11')][_0x9a32('0x12')]);}logger[_0x9a32('0x11')](_0x9a32('0xc'),_0x4a8fba,_0x38f6cc['error'][_0x9a32('0x12')]);return _0x4dc7f8(_0x38f6cc[_0x9a32('0x11')]['message']);}else{logger[_0x9a32('0xb')](_0x9a32('0xc'),_0x4a8fba,_0x9a32('0xd'));_0x4dc7f8(_0x38f6cc[_0x9a32('0x13')][_0x9a32('0x12')]);}})[_0x9a32('0x14')](function(_0x4fa645){logger[_0x9a32('0x11')](_0x9a32('0xc'),_0x4a8fba,_0x4fa645);_0x344b35(_0x4fa645);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x05f3=['destroy','exports','util','path','connect-timeout','express','../../components/interaction/service','../../config/environment','./cloudProvider.controller','index','get','/:id','isAuthenticated','show','post','update','delete'];(function(_0x550f45,_0x506e32){var _0x4fa063=function(_0x3b76c0){while(--_0x3b76c0){_0x550f45['push'](_0x550f45['shift']());}};_0x4fa063(++_0x506e32);}(_0x05f3,0xf0));var _0x305f=function(_0x3b90ab,_0x174a22){_0x3b90ab=_0x3b90ab-0x0;var _0x206e92=_0x05f3[_0x3b90ab];return _0x206e92;};'use strict';var multer=require('multer');var util=require(_0x305f('0x0'));var path=require(_0x305f('0x1'));var timeout=require(_0x305f('0x2'));var express=require(_0x305f('0x3'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0x305f('0x4'));var config=require(_0x305f('0x5'));var controller=require(_0x305f('0x6'));router['get']('/',auth['isAuthenticated'](),controller[_0x305f('0x7')]);router[_0x305f('0x8')](_0x305f('0x9'),auth[_0x305f('0xa')](),controller[_0x305f('0xb')]);router[_0x305f('0xc')]('/',auth['isAuthenticated'](),controller['create']);router['put'](_0x305f('0x9'),auth['isAuthenticated'](),controller[_0x305f('0xd')]);router[_0x305f('0xe')](_0x305f('0x9'),auth[_0x305f('0xa')](),controller[_0x305f('0xf')]);module[_0x305f('0x10')]=router;
\ No newline at end of file
+var _0xa099=['fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/:id','show','post','create','update','delete','destroy','exports','connect-timeout','express','Router'];(function(_0x34eb31,_0x8f0f70){var _0x254994=function(_0xbec9a3){while(--_0xbec9a3){_0x34eb31['push'](_0x34eb31['shift']());}};_0x254994(++_0x8f0f70);}(_0xa099,0x69));var _0x9a09=function(_0x55147f,_0x5a5ca6){_0x55147f=_0x55147f-0x0;var _0x3c8c24=_0xa099[_0x55147f];return _0x3c8c24;};'use strict';var multer=require('multer');var util=require('util');var path=require('path');var timeout=require(_0x9a09('0x0'));var express=require(_0x9a09('0x1'));var router=express[_0x9a09('0x2')]();var fs_extra=require(_0x9a09('0x3'));var auth=require(_0x9a09('0x4'));var interaction=require(_0x9a09('0x5'));var config=require(_0x9a09('0x6'));var controller=require('./cloudProvider.controller');router[_0x9a09('0x7')]('/',auth[_0x9a09('0x8')](),controller[_0x9a09('0x9')]);router[_0x9a09('0x7')](_0x9a09('0xa'),auth[_0x9a09('0x8')](),controller[_0x9a09('0xb')]);router[_0x9a09('0xc')]('/',auth[_0x9a09('0x8')](),controller[_0x9a09('0xd')]);router['put'](_0x9a09('0xa'),auth['isAuthenticated'](),controller[_0x9a09('0xe')]);router[_0x9a09('0xf')](_0x9a09('0xa'),auth[_0x9a09('0x8')](),controller[_0x9a09('0x10')]);module[_0x9a09('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5c4a=['STRING','exports'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x5c4a,0xfb));var _0xa5c4=function(_0x28d25e,_0x3cdc7a){_0x28d25e=_0x28d25e-0x0;var _0x1be491=_0x5c4a[_0x28d25e];return _0x1be491;};'use strict';var Sequelize=require('sequelize');module[_0xa5c4('0x0')]={'name':{'type':Sequelize[_0xa5c4('0x1')],'unique':'name','allowNull':![],'validate':{'notEmpty':!![]}},'vat':{'type':Sequelize[_0xa5c4('0x1')]},'companyId':{'type':Sequelize[_0xa5c4('0x1')]},'website':{'type':Sequelize['STRING']},'phone':{'type':Sequelize[_0xa5c4('0x1')]},'fax':{'type':Sequelize[_0xa5c4('0x1')]},'type':{'type':Sequelize[_0xa5c4('0x1')]},'street':{'type':Sequelize[_0xa5c4('0x1')]},'postalCode':{'type':Sequelize[_0xa5c4('0x1')]},'city':{'type':Sequelize['STRING']},'country':{'type':Sequelize[_0xa5c4('0x1')]},'email':{'type':Sequelize[_0xa5c4('0x1')],'validate':{'isEmail':!![]}},'emailDomain':{'type':Sequelize[_0xa5c4('0x1')]},'sStreet':{'type':Sequelize[_0xa5c4('0x1')]},'sPostalCode':{'type':Sequelize[_0xa5c4('0x1')]},'sCity':{'type':Sequelize[_0xa5c4('0x1')]},'sCountry':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0xa5c4('0x1')]}};
\ No newline at end of file
+var _0xf124=['exports','STRING','name','sequelize'];(function(_0x4a7da3,_0x5525c2){var _0x3ca27f=function(_0x4cc650){while(--_0x4cc650){_0x4a7da3['push'](_0x4a7da3['shift']());}};_0x3ca27f(++_0x5525c2);}(_0xf124,0x147));var _0x4f12=function(_0xe4d6c6,_0x3bdbf2){_0xe4d6c6=_0xe4d6c6-0x0;var _0x3a8935=_0xf124[_0xe4d6c6];return _0x3a8935;};'use strict';var Sequelize=require(_0x4f12('0x0'));module[_0x4f12('0x1')]={'name':{'type':Sequelize[_0x4f12('0x2')],'unique':_0x4f12('0x3'),'allowNull':![],'validate':{'notEmpty':!![]}},'vat':{'type':Sequelize[_0x4f12('0x2')]},'companyId':{'type':Sequelize[_0x4f12('0x2')]},'website':{'type':Sequelize[_0x4f12('0x2')]},'phone':{'type':Sequelize['STRING']},'fax':{'type':Sequelize[_0x4f12('0x2')]},'type':{'type':Sequelize['STRING']},'street':{'type':Sequelize['STRING']},'postalCode':{'type':Sequelize['STRING']},'city':{'type':Sequelize['STRING']},'country':{'type':Sequelize[_0x4f12('0x2')]},'email':{'type':Sequelize[_0x4f12('0x2')],'validate':{'isEmail':!![]}},'emailDomain':{'type':Sequelize[_0x4f12('0x2')]},'sStreet':{'type':Sequelize[_0x4f12('0x2')]},'sPostalCode':{'type':Sequelize[_0x4f12('0x2')]},'sCity':{'type':Sequelize[_0x4f12('0x2')]},'sCountry':{'type':Sequelize[_0x4f12('0x2')]},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x59fd=['options','includeAll','include','catch','show','length','find','create','body','role','user','userProfileId','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','CmContact','addContacts','ids','omit','getContacts','rawAttributes','order','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','crypto','jsforce','querystring','ioredis','../../components/auth/service','../../config/license/hardware','api','../../config/environment','../../config/license/util','status','end','json','offset','limit','undefined','count','set','Content-Range','apply','reject','save','update','then','destroy','get','Companies','sendStatus','error','stack','name','send','index','CmCompany','describe','keys','query','intersection','model','fields','attributes','hasOwnProperty','nolimit','sort','where','filters','pick','filter','merge','map'];(function(_0x13e741,_0x5d3c24){var _0x3f8bb3=function(_0x4440a0){while(--_0x4440a0){_0x13e741['push'](_0x13e741['shift']());}};_0x3f8bb3(++_0x5d3c24);}(_0x59fd,0xbc));var _0xd59f=function(_0x1e237a,_0x43991a){_0x1e237a=_0x1e237a-0x0;var _0x461d8a=_0x59fd[_0x1e237a];return _0x461d8a;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xd59f('0x0'));var jsonpatch=require(_0xd59f('0x1'));var rp=require(_0xd59f('0x2'));var moment=require(_0xd59f('0x3'));var BPromise=require(_0xd59f('0x4'));var Mustache=require(_0xd59f('0x5'));var util=require(_0xd59f('0x6'));var path=require(_0xd59f('0x7'));var sox=require(_0xd59f('0x8'));var csv=require(_0xd59f('0x9'));var ejs=require(_0xd59f('0xa'));var fs=require('fs');var fs_extra=require(_0xd59f('0xb'));var _=require('lodash');var squel=require('squel');var crypto=require(_0xd59f('0xc'));var jsforce=require(_0xd59f('0xd'));var deskjs=require('desk.js');var toCsv=require(_0xd59f('0x9'));var querystring=require(_0xd59f('0xe'));var Papa=require('papaparse');var Redis=require(_0xd59f('0xf'));var authService=require(_0xd59f('0x10'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xd59f('0x11'));var logger=require('../../config/logger')(_0xd59f('0x12'));var utils=require('../../config/utils');var config=require(_0xd59f('0x13'));var licenseUtil=require(_0xd59f('0x14'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x159b60,_0x256974){_0x256974=_0x256974||0xcc;return function(_0x188506){if(_0x188506){return _0x159b60['sendStatus'](_0x256974);}return _0x159b60[_0xd59f('0x15')](_0x256974)[_0xd59f('0x16')]();};}function respondWithResult(_0x3f26fb,_0x1bc60a){_0x1bc60a=_0x1bc60a||0xc8;return function(_0x535535){if(_0x535535){return _0x3f26fb[_0xd59f('0x15')](_0x1bc60a)[_0xd59f('0x17')](_0x535535);}};}function respondWithFilteredResult(_0x14dc2a,_0x2cc253){return function(_0x3e806e){if(_0x3e806e){var _0x3ccffa=typeof _0x2cc253[_0xd59f('0x18')]==='undefined'&&typeof _0x2cc253[_0xd59f('0x19')]===_0xd59f('0x1a');var _0x1b1550=_0x3e806e[_0xd59f('0x1b')];var _0x3ca53f=_0x3ccffa?0x0:_0x2cc253[_0xd59f('0x18')];var _0x41c92d=_0x3ccffa?_0x3e806e[_0xd59f('0x1b')]:_0x2cc253[_0xd59f('0x18')]+_0x2cc253[_0xd59f('0x19')];var _0x556338;if(_0x41c92d>=_0x1b1550){_0x41c92d=_0x1b1550;_0x556338=0xc8;}else{_0x556338=0xce;}_0x14dc2a[_0xd59f('0x15')](_0x556338);return _0x14dc2a[_0xd59f('0x1c')](_0xd59f('0x1d'),_0x3ca53f+'-'+_0x41c92d+'/'+_0x1b1550)['json'](_0x3e806e);}return null;};}function patchUpdates(_0x390ebd){return function(_0x16312f){try{jsonpatch[_0xd59f('0x1e')](_0x16312f,_0x390ebd,!![]);}catch(_0x18a128){return BPromise[_0xd59f('0x1f')](_0x18a128);}return _0x16312f[_0xd59f('0x20')]();};}function saveUpdates(_0xaf77cd,_0x18e000){return function(_0x4bf0bc){if(_0x4bf0bc){return _0x4bf0bc[_0xd59f('0x21')](_0xaf77cd)[_0xd59f('0x22')](function(_0x14ab65){return _0x14ab65;});}return null;};}function removeEntity(_0x1d61d9,_0x4a62ba){return function(_0x562b00){if(_0x562b00){return _0x562b00[_0xd59f('0x23')]()['then'](function(){var _0x25f436=_0x562b00[_0xd59f('0x24')]({'plain':!![]});var _0x28299f=_0xd59f('0x25');return db['UserProfileResource']['destroy']({'where':{'type':_0x28299f,'resourceId':_0x25f436['id']}})[_0xd59f('0x22')](function(){return _0x562b00;});})[_0xd59f('0x22')](function(){_0x1d61d9[_0xd59f('0x15')](0xcc)[_0xd59f('0x16')]();});}};}function handleEntityNotFound(_0x4a9b92,_0x3bbc31){return function(_0x18d9a6){if(!_0x18d9a6){_0x4a9b92[_0xd59f('0x26')](0x194);}return _0x18d9a6;};}function handleError(_0x5349bd,_0x583caa){_0x583caa=_0x583caa||0x1f4;return function(_0x25431d){logger[_0xd59f('0x27')](_0x25431d[_0xd59f('0x28')]);if(_0x25431d['name']){delete _0x25431d[_0xd59f('0x29')];}_0x5349bd['status'](_0x583caa)[_0xd59f('0x2a')](_0x25431d);};}exports[_0xd59f('0x2b')]=function(_0x5c13eb,_0x805f62){var _0x4aa71b={},_0x382e70={},_0x1f6861={'count':0x0,'rows':[]};return db[_0xd59f('0x2c')][_0xd59f('0x2d')]()[_0xd59f('0x22')](function(_0x56aca9){_0x382e70['model']=_[_0xd59f('0x2e')](_0x56aca9);_0x382e70[_0xd59f('0x2f')]=_['keys'](_0x5c13eb[_0xd59f('0x2f')]);_0x382e70['filters']=_[_0xd59f('0x30')](_0x382e70[_0xd59f('0x31')],_0x382e70['query']);_0x4aa71b['attributes']=_[_0xd59f('0x30')](_0x382e70['model'],qs[_0xd59f('0x32')](_0x5c13eb[_0xd59f('0x2f')][_0xd59f('0x32')]));_0x4aa71b[_0xd59f('0x33')]=_0x4aa71b[_0xd59f('0x33')]['length']?_0x4aa71b['attributes']:_0x382e70[_0xd59f('0x31')];if(!_0x5c13eb[_0xd59f('0x2f')][_0xd59f('0x34')](_0xd59f('0x35'))){_0x4aa71b[_0xd59f('0x19')]=qs[_0xd59f('0x19')](_0x5c13eb[_0xd59f('0x2f')][_0xd59f('0x19')]);_0x4aa71b[_0xd59f('0x18')]=qs['offset'](_0x5c13eb[_0xd59f('0x2f')][_0xd59f('0x18')]);}_0x4aa71b['order']=qs[_0xd59f('0x36')](_0x5c13eb[_0xd59f('0x2f')][_0xd59f('0x36')]);_0x4aa71b[_0xd59f('0x37')]=qs[_0xd59f('0x38')](_[_0xd59f('0x39')](_0x5c13eb[_0xd59f('0x2f')],_0x382e70['filters']),_0x56aca9);if(_0x5c13eb[_0xd59f('0x2f')][_0xd59f('0x3a')]){_0x4aa71b[_0xd59f('0x37')]=_[_0xd59f('0x3b')](_0x4aa71b[_0xd59f('0x37')],{'$or':_[_0xd59f('0x3c')](_0x4aa71b['attributes'],function(_0x2e7e63){var _0x57406a={};_0x57406a[_0x2e7e63]={'$like':'%'+_0x5c13eb[_0xd59f('0x2f')][_0xd59f('0x3a')]+'%'};return _0x57406a;})});}_0x4aa71b=_[_0xd59f('0x3b')]({},_0x4aa71b,_0x5c13eb[_0xd59f('0x3d')]);var _0xd9a0a9={'where':_0x4aa71b[_0xd59f('0x37')]};return db['CmCompany'][_0xd59f('0x1b')](_0xd9a0a9)['then'](function(_0x14c4e7){_0x1f6861[_0xd59f('0x1b')]=_0x14c4e7;if(_0x5c13eb[_0xd59f('0x2f')][_0xd59f('0x3e')]){_0x4aa71b[_0xd59f('0x3f')]=[{'all':!![]}];}return db[_0xd59f('0x2c')]['findAll'](_0x4aa71b);})['then'](function(_0xf9bd3e){_0x1f6861['rows']=_0xf9bd3e;return _0x1f6861;})[_0xd59f('0x22')](respondWithFilteredResult(_0x805f62,_0x4aa71b))[_0xd59f('0x40')](handleError(_0x805f62,null));})['catch'](handleError(_0x805f62,null));};exports[_0xd59f('0x41')]=function(_0xdcd837,_0x24e319){var _0x35b941={'raw':![],'where':{'id':_0xdcd837['params']['id']}},_0x2abbd2={};_0x2abbd2[_0xd59f('0x31')]=_[_0xd59f('0x2e')](db[_0xd59f('0x2c')]['rawAttributes']);_0x2abbd2[_0xd59f('0x2f')]=_[_0xd59f('0x2e')](_0xdcd837[_0xd59f('0x2f')]);_0x2abbd2[_0xd59f('0x38')]=_[_0xd59f('0x30')](_0x2abbd2['model'],_0x2abbd2[_0xd59f('0x2f')]);_0x35b941['attributes']=_[_0xd59f('0x30')](_0x2abbd2[_0xd59f('0x31')],qs[_0xd59f('0x32')](_0xdcd837[_0xd59f('0x2f')][_0xd59f('0x32')]));_0x35b941[_0xd59f('0x33')]=_0x35b941[_0xd59f('0x33')][_0xd59f('0x42')]?_0x35b941[_0xd59f('0x33')]:_0x2abbd2[_0xd59f('0x31')];if(_0xdcd837['query'][_0xd59f('0x3e')]){_0x35b941[_0xd59f('0x3f')]=[{'all':!![]}];}_0x35b941=_[_0xd59f('0x3b')]({},_0x35b941,_0xdcd837[_0xd59f('0x3d')]);return db[_0xd59f('0x2c')][_0xd59f('0x43')](_0x35b941)['then'](handleEntityNotFound(_0x24e319,null))[_0xd59f('0x22')](respondWithResult(_0x24e319,null))[_0xd59f('0x40')](handleError(_0x24e319,null));};exports[_0xd59f('0x44')]=function(_0x1942cf,_0x38dddf){return db[_0xd59f('0x2c')][_0xd59f('0x44')](_0x1942cf[_0xd59f('0x45')],{})['then'](function(_0x563e47){var _0x78c5ea=_0x1942cf['user'][_0xd59f('0x24')]({'plain':!![]});if(!_0x78c5ea)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x78c5ea[_0xd59f('0x46')]===_0xd59f('0x47')){var _0x25f3d8=_0x563e47[_0xd59f('0x24')]({'plain':!![]});var _0x2c7584=_0xd59f('0x25');return db['UserProfileSection'][_0xd59f('0x43')]({'where':{'name':_0x2c7584,'userProfileId':_0x78c5ea[_0xd59f('0x48')]},'raw':!![]})['then'](function(_0x17f630){if(_0x17f630&&_0x17f630['autoAssociation']===0x0){return db[_0xd59f('0x49')][_0xd59f('0x44')]({'name':_0x25f3d8[_0xd59f('0x29')],'resourceId':_0x25f3d8['id'],'type':_0x17f630['name'],'sectionId':_0x17f630['id']},{})['then'](function(){return _0x563e47;});}else{return _0x563e47;}})['catch'](function(_0x20ea3a){logger[_0xd59f('0x27')](_0xd59f('0x4a'),_0x20ea3a);throw _0x20ea3a;});}return _0x563e47;})[_0xd59f('0x22')](respondWithResult(_0x38dddf,0xc9))['catch'](handleError(_0x38dddf,null));};exports[_0xd59f('0x21')]=function(_0x4f00b3,_0x211d78){if(_0x4f00b3['body']['id']){delete _0x4f00b3[_0xd59f('0x45')]['id'];}return db[_0xd59f('0x2c')]['find']({'where':{'id':_0x4f00b3['params']['id']}})[_0xd59f('0x22')](handleEntityNotFound(_0x211d78,null))[_0xd59f('0x22')](saveUpdates(_0x4f00b3[_0xd59f('0x45')],null))[_0xd59f('0x22')](respondWithResult(_0x211d78,null))[_0xd59f('0x40')](handleError(_0x211d78,null));};exports[_0xd59f('0x23')]=function(_0x11a4bd,_0x4b1ecd){return db[_0xd59f('0x2c')][_0xd59f('0x43')]({'where':{'id':_0x11a4bd[_0xd59f('0x4b')]['id']}})[_0xd59f('0x22')](handleEntityNotFound(_0x4b1ecd,null))[_0xd59f('0x22')](removeEntity(_0x4b1ecd,null))[_0xd59f('0x40')](handleError(_0x4b1ecd,null));};exports['describe']=function(_0x17efa7,_0x241201){return db[_0xd59f('0x2c')][_0xd59f('0x2d')]()[_0xd59f('0x22')](respondWithResult(_0x241201,null))[_0xd59f('0x40')](handleError(_0x241201,null));};exports['addContacts']=function(_0xe86942,_0x49c4e9,_0x5388d4){return db[_0xd59f('0x4c')][_0xd59f('0x43')]({'where':{'id':_0xe86942['params']['id']}})[_0xd59f('0x22')](handleEntityNotFound(_0x49c4e9,null))[_0xd59f('0x22')](function(_0x44be3e){if(_0x44be3e){return _0x44be3e[_0xd59f('0x4d')](_0xe86942[_0xd59f('0x45')][_0xd59f('0x4e')],_[_0xd59f('0x4f')](_0xe86942[_0xd59f('0x45')],[_0xd59f('0x4e'),'id'])||{});}})[_0xd59f('0x22')](respondWithResult(_0x49c4e9,null))[_0xd59f('0x40')](handleError(_0x49c4e9,null));};exports[_0xd59f('0x50')]=function(_0x10986c,_0x115baf,_0x44e0ce){var _0x201815={};var _0xf66e31={};var _0x745844;var _0x1dd5aa;return db[_0xd59f('0x2c')]['findOne']({'where':{'id':_0x10986c[_0xd59f('0x4b')]['id']}})[_0xd59f('0x22')](handleEntityNotFound(_0x115baf,null))['then'](function(_0x577261){if(_0x577261){_0x745844=_0x577261;_0xf66e31[_0xd59f('0x31')]=_[_0xd59f('0x2e')](db['CmContact'][_0xd59f('0x51')]);_0xf66e31['query']=_[_0xd59f('0x2e')](_0x10986c['query']);_0xf66e31[_0xd59f('0x38')]=_['intersection'](_0xf66e31[_0xd59f('0x31')],_0xf66e31[_0xd59f('0x2f')]);_0x201815[_0xd59f('0x33')]=_['intersection'](_0xf66e31[_0xd59f('0x31')],qs[_0xd59f('0x32')](_0x10986c[_0xd59f('0x2f')][_0xd59f('0x32')]));_0x201815[_0xd59f('0x33')]=_0x201815[_0xd59f('0x33')][_0xd59f('0x42')]?_0x201815[_0xd59f('0x33')]:_0xf66e31[_0xd59f('0x31')];_0x201815[_0xd59f('0x52')]=qs[_0xd59f('0x36')](_0x10986c[_0xd59f('0x2f')][_0xd59f('0x36')]);_0x201815[_0xd59f('0x37')]=qs[_0xd59f('0x38')](_[_0xd59f('0x39')](_0x10986c['query'],_0xf66e31[_0xd59f('0x38')]));if(_0x10986c[_0xd59f('0x2f')][_0xd59f('0x3a')]){_0x201815[_0xd59f('0x37')]=_[_0xd59f('0x3b')](_0x201815[_0xd59f('0x37')],{'$or':_[_0xd59f('0x3c')](_0x201815[_0xd59f('0x33')],function(_0x32139a){var _0x1fb5d0={};_0x1fb5d0[_0x32139a]={'$like':'%'+_0x10986c[_0xd59f('0x2f')][_0xd59f('0x3a')]+'%'};return _0x1fb5d0;})});}_0x201815=_[_0xd59f('0x3b')]({},_0x201815,_0x10986c['options']);return _0x745844['getContacts'](_0x201815);}})[_0xd59f('0x22')](function(_0x18cba9){if(_0x18cba9){_0x1dd5aa=_0x18cba9[_0xd59f('0x42')];if(!_0x10986c[_0xd59f('0x2f')][_0xd59f('0x34')](_0xd59f('0x35'))){_0x201815[_0xd59f('0x19')]=qs[_0xd59f('0x19')](_0x10986c[_0xd59f('0x2f')][_0xd59f('0x19')]);_0x201815[_0xd59f('0x18')]=qs['offset'](_0x10986c['query'][_0xd59f('0x18')]);}return _0x745844[_0xd59f('0x50')](_0x201815);}})[_0xd59f('0x22')](function(_0x52ca6d){if(_0x52ca6d){return _0x52ca6d?{'count':_0x1dd5aa,'rows':_0x52ca6d}:null;}})['then'](respondWithResult(_0x115baf,null))[_0xd59f('0x40')](handleError(_0x115baf,null));};
\ No newline at end of file
+var _0x8272=['fields','nolimit','order','sort','filters','pick','filter','where','merge','map','options','includeAll','include','findAll','rows','catch','params','rawAttributes','length','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','describe','addContacts','CmContact','ids','omit','getContacts','findOne','hasOwnProperty','eml-format','zip-dir','request-promise','bluebird','mustache','util','path','to-csv','ejs','lodash','squel','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','destroy','then','get','Companies','UserProfileResource','end','error','name','index','CmCompany','model','keys','query','attributes','intersection'];(function(_0x528b9b,_0x490876){var _0x4368c9=function(_0x50b1be){while(--_0x50b1be){_0x528b9b['push'](_0x528b9b['shift']());}};_0x4368c9(++_0x490876);}(_0x8272,0x125));var _0x2827=function(_0xb706a,_0x1ece38){_0xb706a=_0xb706a-0x0;var _0x4851c8=_0x8272[_0xb706a];return _0x4851c8;};'use strict';var emlformat=require(_0x2827('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x2827('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x2827('0x2'));var moment=require('moment');var BPromise=require(_0x2827('0x3'));var Mustache=require(_0x2827('0x4'));var util=require(_0x2827('0x5'));var path=require(_0x2827('0x6'));var sox=require('sox');var csv=require(_0x2827('0x7'));var ejs=require(_0x2827('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x2827('0x9'));var squel=require(_0x2827('0xa'));var crypto=require('crypto');var jsforce=require(_0x2827('0xb'));var deskjs=require(_0x2827('0xc'));var toCsv=require(_0x2827('0x7'));var querystring=require(_0x2827('0xd'));var Papa=require(_0x2827('0xe'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x2827('0xf'));var as=require(_0x2827('0x10'));var hardwareService=require(_0x2827('0x11'));var logger=require(_0x2827('0x12'))(_0x2827('0x13'));var utils=require(_0x2827('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0x2827('0x15'));var db=require(_0x2827('0x16'))['db'];function respondWithStatusCode(_0x59f5b6,_0x5241a8){_0x5241a8=_0x5241a8||0xcc;return function(_0x2fe23d){if(_0x2fe23d){return _0x59f5b6[_0x2827('0x17')](_0x5241a8);}return _0x59f5b6[_0x2827('0x18')](_0x5241a8)['end']();};}function respondWithResult(_0x46a496,_0x31b607){_0x31b607=_0x31b607||0xc8;return function(_0x1ed82d){if(_0x1ed82d){return _0x46a496[_0x2827('0x18')](_0x31b607)[_0x2827('0x19')](_0x1ed82d);}};}function respondWithFilteredResult(_0x32aecd,_0x596f19){return function(_0x4c4fb5){if(_0x4c4fb5){var _0x5d7b43=typeof _0x596f19[_0x2827('0x1a')]===_0x2827('0x1b')&&typeof _0x596f19[_0x2827('0x1c')]===_0x2827('0x1b');var _0xe0bb90=_0x4c4fb5[_0x2827('0x1d')];var _0x11c906=_0x5d7b43?0x0:_0x596f19[_0x2827('0x1a')];var _0x116d0a=_0x5d7b43?_0x4c4fb5[_0x2827('0x1d')]:_0x596f19[_0x2827('0x1a')]+_0x596f19[_0x2827('0x1c')];var _0x3c2f16;if(_0x116d0a>=_0xe0bb90){_0x116d0a=_0xe0bb90;_0x3c2f16=0xc8;}else{_0x3c2f16=0xce;}_0x32aecd[_0x2827('0x18')](_0x3c2f16);return _0x32aecd[_0x2827('0x1e')](_0x2827('0x1f'),_0x11c906+'-'+_0x116d0a+'/'+_0xe0bb90)[_0x2827('0x19')](_0x4c4fb5);}return null;};}function patchUpdates(_0x4f6e21){return function(_0x24ca37){try{jsonpatch[_0x2827('0x20')](_0x24ca37,_0x4f6e21,!![]);}catch(_0x350c4b){return BPromise[_0x2827('0x21')](_0x350c4b);}return _0x24ca37[_0x2827('0x22')]();};}function saveUpdates(_0x4e7547,_0x3bca2c){return function(_0x3ce993){if(_0x3ce993){return _0x3ce993[_0x2827('0x23')](_0x4e7547)['then'](function(_0x7a8b97){return _0x7a8b97;});}return null;};}function removeEntity(_0x580553,_0xe69877){return function(_0x3e2ad5){if(_0x3e2ad5){return _0x3e2ad5[_0x2827('0x24')]()[_0x2827('0x25')](function(){var _0x4c5fa1=_0x3e2ad5[_0x2827('0x26')]({'plain':!![]});var _0x263dfa=_0x2827('0x27');return db[_0x2827('0x28')][_0x2827('0x24')]({'where':{'type':_0x263dfa,'resourceId':_0x4c5fa1['id']}})[_0x2827('0x25')](function(){return _0x3e2ad5;});})[_0x2827('0x25')](function(){_0x580553['status'](0xcc)[_0x2827('0x29')]();});}};}function handleEntityNotFound(_0x145032,_0x195c0c){return function(_0x158e61){if(!_0x158e61){_0x145032[_0x2827('0x17')](0x194);}return _0x158e61;};}function handleError(_0x20a4d0,_0x2e8470){_0x2e8470=_0x2e8470||0x1f4;return function(_0x59f3c8){logger[_0x2827('0x2a')](_0x59f3c8['stack']);if(_0x59f3c8[_0x2827('0x2b')]){delete _0x59f3c8[_0x2827('0x2b')];}_0x20a4d0[_0x2827('0x18')](_0x2e8470)['send'](_0x59f3c8);};}exports[_0x2827('0x2c')]=function(_0x1ccad0,_0x31a048){var _0x4b218e={},_0x130df1={},_0x4c66b4={'count':0x0,'rows':[]};return db[_0x2827('0x2d')]['describe']()[_0x2827('0x25')](function(_0x262a5d){_0x130df1[_0x2827('0x2e')]=_[_0x2827('0x2f')](_0x262a5d);_0x130df1['query']=_[_0x2827('0x2f')](_0x1ccad0[_0x2827('0x30')]);_0x130df1['filters']=_['intersection'](_0x130df1['model'],_0x130df1[_0x2827('0x30')]);_0x4b218e[_0x2827('0x31')]=_[_0x2827('0x32')](_0x130df1['model'],qs[_0x2827('0x33')](_0x1ccad0[_0x2827('0x30')]['fields']));_0x4b218e[_0x2827('0x31')]=_0x4b218e['attributes']['length']?_0x4b218e['attributes']:_0x130df1[_0x2827('0x2e')];if(!_0x1ccad0[_0x2827('0x30')]['hasOwnProperty'](_0x2827('0x34'))){_0x4b218e[_0x2827('0x1c')]=qs[_0x2827('0x1c')](_0x1ccad0[_0x2827('0x30')][_0x2827('0x1c')]);_0x4b218e[_0x2827('0x1a')]=qs[_0x2827('0x1a')](_0x1ccad0[_0x2827('0x30')]['offset']);}_0x4b218e[_0x2827('0x35')]=qs['sort'](_0x1ccad0[_0x2827('0x30')][_0x2827('0x36')]);_0x4b218e['where']=qs[_0x2827('0x37')](_[_0x2827('0x38')](_0x1ccad0['query'],_0x130df1[_0x2827('0x37')]),_0x262a5d);if(_0x1ccad0[_0x2827('0x30')][_0x2827('0x39')]){_0x4b218e[_0x2827('0x3a')]=_[_0x2827('0x3b')](_0x4b218e[_0x2827('0x3a')],{'$or':_[_0x2827('0x3c')](_0x4b218e[_0x2827('0x31')],function(_0x501be1){var _0x3c0f84={};_0x3c0f84[_0x501be1]={'$like':'%'+_0x1ccad0[_0x2827('0x30')][_0x2827('0x39')]+'%'};return _0x3c0f84;})});}_0x4b218e=_['merge']({},_0x4b218e,_0x1ccad0[_0x2827('0x3d')]);var _0x3132e4={'where':_0x4b218e['where']};return db['CmCompany'][_0x2827('0x1d')](_0x3132e4)[_0x2827('0x25')](function(_0x3d52e5){_0x4c66b4[_0x2827('0x1d')]=_0x3d52e5;if(_0x1ccad0[_0x2827('0x30')][_0x2827('0x3e')]){_0x4b218e[_0x2827('0x3f')]=[{'all':!![]}];}return db['CmCompany'][_0x2827('0x40')](_0x4b218e);})[_0x2827('0x25')](function(_0x5417af){_0x4c66b4[_0x2827('0x41')]=_0x5417af;return _0x4c66b4;})['then'](respondWithFilteredResult(_0x31a048,_0x4b218e))[_0x2827('0x42')](handleError(_0x31a048,null));})['catch'](handleError(_0x31a048,null));};exports['show']=function(_0x5a4218,_0x88d010){var _0x1480c2={'raw':![],'where':{'id':_0x5a4218[_0x2827('0x43')]['id']}},_0xc76037={};_0xc76037['model']=_['keys'](db[_0x2827('0x2d')][_0x2827('0x44')]);_0xc76037[_0x2827('0x30')]=_['keys'](_0x5a4218[_0x2827('0x30')]);_0xc76037[_0x2827('0x37')]=_['intersection'](_0xc76037[_0x2827('0x2e')],_0xc76037[_0x2827('0x30')]);_0x1480c2['attributes']=_['intersection'](_0xc76037[_0x2827('0x2e')],qs['fields'](_0x5a4218[_0x2827('0x30')][_0x2827('0x33')]));_0x1480c2['attributes']=_0x1480c2[_0x2827('0x31')][_0x2827('0x45')]?_0x1480c2[_0x2827('0x31')]:_0xc76037[_0x2827('0x2e')];if(_0x5a4218['query'][_0x2827('0x3e')]){_0x1480c2[_0x2827('0x3f')]=[{'all':!![]}];}_0x1480c2=_[_0x2827('0x3b')]({},_0x1480c2,_0x5a4218[_0x2827('0x3d')]);return db[_0x2827('0x2d')][_0x2827('0x46')](_0x1480c2)[_0x2827('0x25')](handleEntityNotFound(_0x88d010,null))[_0x2827('0x25')](respondWithResult(_0x88d010,null))['catch'](handleError(_0x88d010,null));};exports[_0x2827('0x47')]=function(_0x26298c,_0x11f75d){return db['CmCompany'][_0x2827('0x47')](_0x26298c[_0x2827('0x48')],{})[_0x2827('0x25')](function(_0x1047b1){var _0x280330=_0x26298c[_0x2827('0x49')][_0x2827('0x26')]({'plain':!![]});if(!_0x280330)throw new Error(_0x2827('0x4a'));if(_0x280330[_0x2827('0x4b')]===_0x2827('0x49')){var _0x5dd6b7=_0x1047b1[_0x2827('0x26')]({'plain':!![]});var _0x22e598=_0x2827('0x27');return db[_0x2827('0x4c')][_0x2827('0x46')]({'where':{'name':_0x22e598,'userProfileId':_0x280330['userProfileId']},'raw':!![]})[_0x2827('0x25')](function(_0x4882aa){if(_0x4882aa&&_0x4882aa['autoAssociation']===0x0){return db['UserProfileResource']['create']({'name':_0x5dd6b7['name'],'resourceId':_0x5dd6b7['id'],'type':_0x4882aa[_0x2827('0x2b')],'sectionId':_0x4882aa['id']},{})[_0x2827('0x25')](function(){return _0x1047b1;});}else{return _0x1047b1;}})[_0x2827('0x42')](function(_0x1cdb11){logger[_0x2827('0x2a')](_0x2827('0x4d'),_0x1cdb11);throw _0x1cdb11;});}return _0x1047b1;})['then'](respondWithResult(_0x11f75d,0xc9))['catch'](handleError(_0x11f75d,null));};exports[_0x2827('0x23')]=function(_0x521e9f,_0x312832){if(_0x521e9f[_0x2827('0x48')]['id']){delete _0x521e9f['body']['id'];}return db[_0x2827('0x2d')][_0x2827('0x46')]({'where':{'id':_0x521e9f['params']['id']}})[_0x2827('0x25')](handleEntityNotFound(_0x312832,null))[_0x2827('0x25')](saveUpdates(_0x521e9f[_0x2827('0x48')],null))[_0x2827('0x25')](respondWithResult(_0x312832,null))[_0x2827('0x42')](handleError(_0x312832,null));};exports['destroy']=function(_0x3fd22e,_0x34ef61){return db[_0x2827('0x2d')][_0x2827('0x46')]({'where':{'id':_0x3fd22e[_0x2827('0x43')]['id']}})[_0x2827('0x25')](handleEntityNotFound(_0x34ef61,null))[_0x2827('0x25')](removeEntity(_0x34ef61,null))[_0x2827('0x42')](handleError(_0x34ef61,null));};exports['describe']=function(_0x487c63,_0x2580ce){return db[_0x2827('0x2d')][_0x2827('0x4e')]()[_0x2827('0x25')](respondWithResult(_0x2580ce,null))['catch'](handleError(_0x2580ce,null));};exports[_0x2827('0x4f')]=function(_0x5588ab,_0x382fb2,_0x3393ed){return db[_0x2827('0x50')][_0x2827('0x46')]({'where':{'id':_0x5588ab['params']['id']}})[_0x2827('0x25')](handleEntityNotFound(_0x382fb2,null))[_0x2827('0x25')](function(_0x2c6ab9){if(_0x2c6ab9){return _0x2c6ab9[_0x2827('0x4f')](_0x5588ab[_0x2827('0x48')][_0x2827('0x51')],_[_0x2827('0x52')](_0x5588ab[_0x2827('0x48')],[_0x2827('0x51'),'id'])||{});}})['then'](respondWithResult(_0x382fb2,null))[_0x2827('0x42')](handleError(_0x382fb2,null));};exports[_0x2827('0x53')]=function(_0x1a2666,_0x4d9437,_0x5b4ca9){var _0x26aae6={};var _0x37dfa1={};var _0x5c80c7;var _0x2b1f1c;return db[_0x2827('0x2d')][_0x2827('0x54')]({'where':{'id':_0x1a2666[_0x2827('0x43')]['id']}})[_0x2827('0x25')](handleEntityNotFound(_0x4d9437,null))[_0x2827('0x25')](function(_0x4db630){if(_0x4db630){_0x5c80c7=_0x4db630;_0x37dfa1[_0x2827('0x2e')]=_['keys'](db['CmContact']['rawAttributes']);_0x37dfa1['query']=_[_0x2827('0x2f')](_0x1a2666['query']);_0x37dfa1['filters']=_[_0x2827('0x32')](_0x37dfa1['model'],_0x37dfa1['query']);_0x26aae6[_0x2827('0x31')]=_[_0x2827('0x32')](_0x37dfa1[_0x2827('0x2e')],qs[_0x2827('0x33')](_0x1a2666[_0x2827('0x30')][_0x2827('0x33')]));_0x26aae6['attributes']=_0x26aae6['attributes'][_0x2827('0x45')]?_0x26aae6[_0x2827('0x31')]:_0x37dfa1[_0x2827('0x2e')];_0x26aae6[_0x2827('0x35')]=qs[_0x2827('0x36')](_0x1a2666[_0x2827('0x30')][_0x2827('0x36')]);_0x26aae6[_0x2827('0x3a')]=qs[_0x2827('0x37')](_[_0x2827('0x38')](_0x1a2666['query'],_0x37dfa1[_0x2827('0x37')]));if(_0x1a2666['query'][_0x2827('0x39')]){_0x26aae6[_0x2827('0x3a')]=_[_0x2827('0x3b')](_0x26aae6[_0x2827('0x3a')],{'$or':_[_0x2827('0x3c')](_0x26aae6[_0x2827('0x31')],function(_0x929ee7){var _0x4a2a56={};_0x4a2a56[_0x929ee7]={'$like':'%'+_0x1a2666['query'][_0x2827('0x39')]+'%'};return _0x4a2a56;})});}_0x26aae6=_[_0x2827('0x3b')]({},_0x26aae6,_0x1a2666[_0x2827('0x3d')]);return _0x5c80c7[_0x2827('0x53')](_0x26aae6);}})['then'](function(_0x5dadaf){if(_0x5dadaf){_0x2b1f1c=_0x5dadaf['length'];if(!_0x1a2666[_0x2827('0x30')][_0x2827('0x55')](_0x2827('0x34'))){_0x26aae6[_0x2827('0x1c')]=qs[_0x2827('0x1c')](_0x1a2666[_0x2827('0x30')]['limit']);_0x26aae6[_0x2827('0x1a')]=qs['offset'](_0x1a2666['query'][_0x2827('0x1a')]);}return _0x5c80c7[_0x2827('0x53')](_0x26aae6);}})[_0x2827('0x25')](function(_0x10a741){if(_0x10a741){return _0x10a741?{'count':_0x2b1f1c,'rows':_0x10a741}:null;}})['then'](respondWithResult(_0x4d9437,null))[_0x2827('0x42')](handleError(_0x4d9437,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa655=['CmCompany','cm_companies','util','../../config/logger','api','moment','request-promise','path','../../config/environment','./cmCompany.attributes','exports','define'];(function(_0x20bba9,_0x256685){var _0x2620d8=function(_0x3c8717){while(--_0x3c8717){_0x20bba9['push'](_0x20bba9['shift']());}};_0x2620d8(++_0x256685);}(_0xa655,0x1a6));var _0x5a65=function(_0x5edbac,_0xa54f78){_0x5edbac=_0x5edbac-0x0;var _0x2a5b78=_0xa655[_0x5edbac];return _0x2a5b78;};'use strict';var _=require('lodash');var util=require(_0x5a65('0x0'));var logger=require(_0x5a65('0x1'))(_0x5a65('0x2'));var moment=require(_0x5a65('0x3'));var BPromise=require('bluebird');var rp=require(_0x5a65('0x4'));var fs=require('fs');var path=require(_0x5a65('0x5'));var rimraf=require('rimraf');var config=require(_0x5a65('0x6'));var attributes=require(_0x5a65('0x7'));module[_0x5a65('0x8')]=function(_0x621796,_0x99d9f9){return _0x621796[_0x5a65('0x9')](_0x5a65('0xa'),attributes,{'tableName':_0x5a65('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xbab0=['bluebird','request-promise','path','rimraf','../../config/environment','./cmCompany.attributes','exports','define','CmCompany','cm_companies','util','moment'];(function(_0x1f8b2f,_0x524a30){var _0x156a05=function(_0xd824c7){while(--_0xd824c7){_0x1f8b2f['push'](_0x1f8b2f['shift']());}};_0x156a05(++_0x524a30);}(_0xbab0,0x6a));var _0x0bab=function(_0x47b118,_0x116c5d){_0x47b118=_0x47b118-0x0;var _0x17aacf=_0xbab0[_0x47b118];return _0x17aacf;};'use strict';var _=require('lodash');var util=require(_0x0bab('0x0'));var logger=require('../../config/logger')('api');var moment=require(_0x0bab('0x1'));var BPromise=require(_0x0bab('0x2'));var rp=require(_0x0bab('0x3'));var fs=require('fs');var path=require(_0x0bab('0x4'));var rimraf=require(_0x0bab('0x5'));var config=require(_0x0bab('0x6'));var attributes=require(_0x0bab('0x7'));module[_0x0bab('0x8')]=function(_0x1ffbe9,_0x4c9d2d){return _0x1ffbe9[_0x0bab('0x9')](_0x0bab('0xa'),attributes,{'tableName':_0x0bab('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9795=['CmCompany,\x20%s,\x20%s','message','result','lodash','util','moment','bluebird','randomstring','../../mysqldb','rpc','jayson/promise','http','request','then','info','CmCompany,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code'];(function(_0x4b3033,_0x556ef3){var _0x397cd3=function(_0x67055c){while(--_0x67055c){_0x4b3033['push'](_0x4b3033['shift']());}};_0x397cd3(++_0x556ef3);}(_0x9795,0x157));var _0x5979=function(_0x3994e6,_0x1abef6){_0x3994e6=_0x3994e6-0x0;var _0x2e38b2=_0x9795[_0x3994e6];return _0x2e38b2;};'use strict';var _=require(_0x5979('0x0'));var util=require(_0x5979('0x1'));var moment=require(_0x5979('0x2'));var BPromise=require(_0x5979('0x3'));var rs=require(_0x5979('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x5979('0x5'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0x5979('0x6'));var config=require('../../config/environment');var jayson=require(_0x5979('0x7'));var client=jayson['client'][_0x5979('0x8')]({'port':0x232a});function respondWithRpcPromise(_0xabd45a,_0x505829,_0x33b227){return new BPromise(function(_0x2bb3cd,_0x341f98){return client[_0x5979('0x9')](_0xabd45a,_0x33b227)[_0x5979('0xa')](function(_0x5bc8ca){logger[_0x5979('0xb')]('CmCompany,\x20%s,\x20%s',_0x505829,'request\x20sent');logger['debug'](_0x5979('0xc'),_0x505829,_0x5979('0xd'),JSON[_0x5979('0xe')](_0x5bc8ca));if(_0x5bc8ca[_0x5979('0xf')]){if(_0x5bc8ca[_0x5979('0xf')][_0x5979('0x10')]===0x1f4){logger[_0x5979('0xf')](_0x5979('0x11'),_0x505829,_0x5bc8ca['error']['message']);return _0x341f98(_0x5bc8ca[_0x5979('0xf')]['message']);}logger[_0x5979('0xf')]('CmCompany,\x20%s,\x20%s',_0x505829,_0x5bc8ca[_0x5979('0xf')][_0x5979('0x12')]);return _0x2bb3cd(_0x5bc8ca[_0x5979('0xf')][_0x5979('0x12')]);}else{logger[_0x5979('0xb')](_0x5979('0x11'),_0x505829,_0x5979('0xd'));_0x2bb3cd(_0x5bc8ca[_0x5979('0x13')][_0x5979('0x12')]);}})['catch'](function(_0x35b6bd){logger[_0x5979('0xf')](_0x5979('0x11'),_0x505829,_0x35b6bd);_0x341f98(_0x35b6bd);});});}
\ No newline at end of file
+var _0x0944=['stringify','error','message','result','catch','lodash','bluebird','ioredis','rpc','../../config/environment','http','request','info','CmCompany,\x20%s,\x20%s','request\x20sent','CmCompany,\x20%s,\x20%s,\x20%s'];(function(_0x19e35c,_0x29cd1e){var _0x3e1fe8=function(_0x17258b){while(--_0x17258b){_0x19e35c['push'](_0x19e35c['shift']());}};_0x3e1fe8(++_0x29cd1e);}(_0x0944,0xb5));var _0x4094=function(_0x4bb581,_0x6f7037){_0x4bb581=_0x4bb581-0x0;var _0x316bf5=_0x0944[_0x4bb581];return _0x316bf5;};'use strict';var _=require(_0x4094('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0x4094('0x1'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x4094('0x2'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0x4094('0x3'));var config=require(_0x4094('0x4'));var jayson=require('jayson/promise');var client=jayson['client'][_0x4094('0x5')]({'port':0x232a});function respondWithRpcPromise(_0x3ef8b7,_0x42996f,_0x2b79c9){return new BPromise(function(_0x135516,_0x26b655){return client[_0x4094('0x6')](_0x3ef8b7,_0x2b79c9)['then'](function(_0x1bebc8){logger[_0x4094('0x7')](_0x4094('0x8'),_0x42996f,_0x4094('0x9'));logger['debug'](_0x4094('0xa'),_0x42996f,'request\x20sent',JSON[_0x4094('0xb')](_0x1bebc8));if(_0x1bebc8[_0x4094('0xc')]){if(_0x1bebc8[_0x4094('0xc')]['code']===0x1f4){logger[_0x4094('0xc')](_0x4094('0x8'),_0x42996f,_0x1bebc8[_0x4094('0xc')][_0x4094('0xd')]);return _0x26b655(_0x1bebc8['error'][_0x4094('0xd')]);}logger[_0x4094('0xc')](_0x4094('0x8'),_0x42996f,_0x1bebc8['error'][_0x4094('0xd')]);return _0x135516(_0x1bebc8[_0x4094('0xc')][_0x4094('0xd')]);}else{logger[_0x4094('0x7')](_0x4094('0x8'),_0x42996f,_0x4094('0x9'));_0x135516(_0x1bebc8[_0x4094('0xe')][_0x4094('0xd')]);}})[_0x4094('0xf')](function(_0x207ece){logger[_0x4094('0xc')](_0x4094('0x8'),_0x42996f,_0x207ece);_0x26b655(_0x207ece);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0317=['util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','index','get','describe','isAuthenticated','show','post','/:id/contacts','addContacts','/:id','update','delete','destroy','exports'];(function(_0x3b0966,_0x3fc4ca){var _0x18e6b0=function(_0x535058){while(--_0x535058){_0x3b0966['push'](_0x3b0966['shift']());}};_0x18e6b0(++_0x3fc4ca);}(_0x0317,0x1b9));var _0x7031=function(_0x5ee0ef,_0x34f2b1){_0x5ee0ef=_0x5ee0ef-0x0;var _0x144aab=_0x0317[_0x5ee0ef];return _0x144aab;};'use strict';var multer=require('multer');var util=require(_0x7031('0x0'));var path=require(_0x7031('0x1'));var timeout=require(_0x7031('0x2'));var express=require(_0x7031('0x3'));var router=express[_0x7031('0x4')]();var fs_extra=require(_0x7031('0x5'));var auth=require(_0x7031('0x6'));var interaction=require(_0x7031('0x7'));var config=require('../../config/environment');var controller=require('./cmCompany.controller');router['get']('/',auth['isAuthenticated'](),controller[_0x7031('0x8')]);router[_0x7031('0x9')]('/describe',auth['isAuthenticated'](),controller[_0x7031('0xa')]);router[_0x7031('0x9')]('/:id',auth[_0x7031('0xb')](),controller[_0x7031('0xc')]);router[_0x7031('0x9')]('/:id/contacts',auth['isAuthenticated'](),controller['getContacts']);router[_0x7031('0xd')]('/',auth[_0x7031('0xb')](),controller['create']);router['post'](_0x7031('0xe'),auth[_0x7031('0xb')](),controller[_0x7031('0xf')]);router['put'](_0x7031('0x10'),auth[_0x7031('0xb')](),controller[_0x7031('0x11')]);router[_0x7031('0x12')](_0x7031('0x10'),auth[_0x7031('0xb')](),controller[_0x7031('0x13')]);module[_0x7031('0x14')]=router;
\ No newline at end of file
+var _0xc66b=['/:id/contacts','getContacts','post','addContacts','put','update','delete','destroy','multer','util','connect-timeout','Router','fs-extra','../../components/auth/service','../../config/environment','./cmCompany.controller','get','isAuthenticated','/describe','describe','/:id','show'];(function(_0x41d22a,_0x27af98){var _0x67fef0=function(_0x22a24c){while(--_0x22a24c){_0x41d22a['push'](_0x41d22a['shift']());}};_0x67fef0(++_0x27af98);}(_0xc66b,0x76));var _0xbc66=function(_0x15bc81,_0x4d4f77){_0x15bc81=_0x15bc81-0x0;var _0x59440e=_0xc66b[_0x15bc81];return _0x59440e;};'use strict';var multer=require(_0xbc66('0x0'));var util=require(_0xbc66('0x1'));var path=require('path');var timeout=require(_0xbc66('0x2'));var express=require('express');var router=express[_0xbc66('0x3')]();var fs_extra=require(_0xbc66('0x4'));var auth=require(_0xbc66('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0xbc66('0x6'));var controller=require(_0xbc66('0x7'));router[_0xbc66('0x8')]('/',auth[_0xbc66('0x9')](),controller['index']);router['get'](_0xbc66('0xa'),auth[_0xbc66('0x9')](),controller[_0xbc66('0xb')]);router['get'](_0xbc66('0xc'),auth[_0xbc66('0x9')](),controller[_0xbc66('0xd')]);router[_0xbc66('0x8')](_0xbc66('0xe'),auth[_0xbc66('0x9')](),controller[_0xbc66('0xf')]);router[_0xbc66('0x10')]('/',auth[_0xbc66('0x9')](),controller['create']);router[_0xbc66('0x10')](_0xbc66('0xe'),auth[_0xbc66('0x9')](),controller[_0xbc66('0x11')]);router[_0xbc66('0x12')]('/:id',auth['isAuthenticated'](),controller[_0xbc66('0x13')]);router[_0xbc66('0x14')]('/:id',auth['isAuthenticated'](),controller[_0xbc66('0x15')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8520=['INTEGER','UNSIGNED','NOW','lodash','sequelize','exports','STRING','TEXT'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x8520,0x16b));var _0x0852=function(_0x50c270,_0x112e9){_0x50c270=_0x50c270-0x0;var _0x4e7064=_0x8520[_0x50c270];return _0x4e7064;};'use strict';var _=require(_0x0852('0x0'));var Sequelize=require(_0x0852('0x1'));module[_0x0852('0x2')]={'firstName':{'type':Sequelize['STRING'],'allowNull':![]},'lastName':{'type':Sequelize['STRING']},'street':{'type':Sequelize[_0x0852('0x3')]},'postalCode':{'type':Sequelize[_0x0852('0x3')]},'city':{'type':Sequelize[_0x0852('0x3')]},'country':{'type':Sequelize[_0x0852('0x3')]},'dateOfBirth':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0x0852('0x4')]},'phone':{'type':Sequelize[_0x0852('0x3')]},'mobile':{'type':Sequelize[_0x0852('0x3')]},'fax':{'type':Sequelize['STRING']},'email':{'type':Sequelize[_0x0852('0x3')]},'url':{'type':Sequelize[_0x0852('0x3')]},'facebook':{'type':Sequelize['STRING']},'fb_data':{'type':Sequelize['STRING']},'twitter':{'type':Sequelize[_0x0852('0x3')]},'skype':{'type':Sequelize[_0x0852('0x3')]},'teams':{'type':Sequelize[_0x0852('0x3')]},'viber':{'type':Sequelize[_0x0852('0x3')]},'line':{'type':Sequelize[_0x0852('0x3')]},'wechat':{'type':Sequelize[_0x0852('0x3')]},'telegram':{'type':Sequelize[_0x0852('0x3')]},'UserId':{'type':Sequelize[_0x0852('0x5')]},'priority':{'type':Sequelize[_0x0852('0x5')](0x2)[_0x0852('0x6')],'defaultValue':0x2,'validate':{'min':0x0,'max':0x4}},'scheduledat':{'type':Sequelize['DATE'],'defaultValue':Sequelize[_0x0852('0x7')]}};
\ No newline at end of file
+var _0xcd00=['NOW','lodash','sequelize','exports','STRING','TEXT','INTEGER','UNSIGNED'];(function(_0x3bf83f,_0x181cac){var _0x22c4a9=function(_0xb3ff0d){while(--_0xb3ff0d){_0x3bf83f['push'](_0x3bf83f['shift']());}};_0x22c4a9(++_0x181cac);}(_0xcd00,0xb1));var _0x0cd0=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0xcd00[_0x321bb2];return _0x9c12ed;};'use strict';var _=require(_0x0cd0('0x0'));var Sequelize=require(_0x0cd0('0x1'));module[_0x0cd0('0x2')]={'firstName':{'type':Sequelize[_0x0cd0('0x3')],'allowNull':![]},'lastName':{'type':Sequelize[_0x0cd0('0x3')]},'street':{'type':Sequelize['STRING']},'postalCode':{'type':Sequelize[_0x0cd0('0x3')]},'city':{'type':Sequelize[_0x0cd0('0x3')]},'country':{'type':Sequelize[_0x0cd0('0x3')]},'dateOfBirth':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0x0cd0('0x4')]},'phone':{'type':Sequelize[_0x0cd0('0x3')]},'mobile':{'type':Sequelize['STRING']},'fax':{'type':Sequelize[_0x0cd0('0x3')]},'email':{'type':Sequelize['STRING']},'url':{'type':Sequelize[_0x0cd0('0x3')]},'facebook':{'type':Sequelize[_0x0cd0('0x3')]},'fb_data':{'type':Sequelize[_0x0cd0('0x3')]},'twitter':{'type':Sequelize[_0x0cd0('0x3')]},'skype':{'type':Sequelize[_0x0cd0('0x3')]},'teams':{'type':Sequelize[_0x0cd0('0x3')]},'viber':{'type':Sequelize[_0x0cd0('0x3')]},'line':{'type':Sequelize['STRING']},'wechat':{'type':Sequelize[_0x0cd0('0x3')]},'telegram':{'type':Sequelize[_0x0cd0('0x3')]},'UserId':{'type':Sequelize['INTEGER']},'priority':{'type':Sequelize[_0x0cd0('0x5')](0x2)[_0x0cd0('0x6')],'defaultValue':0x2,'validate':{'min':0x0,'max':0x4}},'scheduledat':{'type':Sequelize['DATE'],'defaultValue':Sequelize[_0x0cd0('0x7')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x60c7=['create','ChatInteraction','ChatMessage','ChatOfflineMessage','MailMessage','MailInteraction','SmsInteraction','SmsMessage','FaxInteraction','FaxMessage','OpenchannelInteraction','OpenchannelMessage','CmHopperFinal','ReportAgentPreview','VoiceCallReport','FaxQueueReport','MailQueueReport','OpenchannelQueueReport','SmsQueueReport','JscriptySessionReport','WhatsappMessage','bulkCreate','each','duplicates','$or','findOrCreate','show','omit','format','cf_%d','$and','pickBy','setFields','id\x20=\x20?','toParam','values','phone','Tag','rawAttributes','options','getTags','setTags','ids','getHoppers','ContactId','includeAll','include','getHopperHistories','CmHopperHistory','getHopperFinals','getJscriptySessions','No\x20ListId\x20specified','binding_keys','No\x20association\x20keys\x20specified!','binding_values','socket_timestamp','Unable\x20to\x20synchronize\x20socket,\x20no\x20timestamp\x20passed','zipObject','No\x20phone\x20column\x20specified','No\x20firstName\x20column\x20specified','server/files/tmp','file','chmodSync','0777','fork','../../components/import/cm/csv','CompanyId','File\x20uploaded\x20correctly!','pid','upload','createReadStream','parse','import','binding','child_process','../../components/import/cm/csv2','stringify','message','start\x20child\x20process\x20correctly!','error\x20child\x20process','getJourney','mail','chat','sms','openchannel','fax','whatsapp','-createdAt','includes','channel','toLowerCase','Invalid\x20channel','range','isValid','Invalid\x20date\x20for\x20range\x20from\x20filter','Invalid\x20date\x20for\x20range\x20to\x20filter','Invalid\x20createdAt\x20filter','voice','uniqueid','source','destination','starttime','duration','createdAt','userDisposition','userSecondDisposition','userThirdDisposition','UserId','fullname','findAndCountAll','startCase','Website','closed','closedAt','note','disposition','thirdDisposition','Account','key','Owner','customerIp','customerPort','deviceModel','ratingType','referer','subject','substatus','externalUrl','Interaction','flatten','sortBy','reverse','slice','moment','util','path','squel','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','localhost','socket.io-emitter','redis','./cmContact.socket','register','status','json','offset','undefined','limit','count','update','then','destroy','sendStatus','error','name','send','describe','keys','cf_','push','CmCustomField','findOne','trimStart','all','model','query','attributes','intersection','fields','nolimit','order','sort','pick','filters','color','tools_tags','cm_contacts','left_join','cm_user_has_contacts','cm_contact_has_tags','ct.CmContactId\x20=\x20c.id','t.id\x20=\x20ct.TagId','where','c.deletedAt\x20IS\x20NULL','expr','parseSearch','sqlOperator','conditions','field','value','split','forEach','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','User','and','fieldType','datetime','castTo','DATE','buildExpression','type','text','start','end','map','hasOwnProperty','filter','isNil','Contact','ListId','c.ListId\x20IN\x20?','\x20=\x20?','tag','isArray','replace','length','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','isNumeric','c.id\x20LIKE\x20?','c.phone\x20LIKE\x20?','c.mobile\x20LIKE\x20?','c.fax\x20LIKE\x20?','c.email\x20LIKE\x20?','c.firstName\x20LIKE\x20?','c.lastName\x20LIKE\x20?','c.id','Sequelize','QueryTypes','SELECT','DESC','isEmpty','having','t.id\x20IN\x20?','resolve','user','role','agent','some','getLists','c.ListId\x20IS\x20NULL','sequelize','toString','keyBy','CmContact','c.firstName','c.lastName','c.phone','c.mobile','c.email','c.ListId','c.createdAt','c.deletedAt','GROUP_CONCAT(DISTINCT\x20t.id)','TagIds','Tags','rows','find','params','catch','tags','startsWith','displayName','analytics','findAll','columnName','alias','custom','merge','body','from','get','mergeWith','join','info','CmHopper','[CmContact][merge][destroy][CmHopperBlack],\x20%s'];(function(_0x281a19,_0xff1ef3){var _0x934d79=function(_0x4afe59){while(--_0x4afe59){_0x281a19['push'](_0x281a19['shift']());}};_0x934d79(++_0xff1ef3);}(_0x60c7,0x19e));var _0x760c=function(_0x38e6aa,_0x5264e4){_0x38e6aa=_0x38e6aa-0x0;var _0x436cd7=_0x60c7[_0x38e6aa];return _0x436cd7;};'use strict';var moment=require(_0x760c('0x0'));var BPromise=require('bluebird');var util=require(_0x760c('0x1'));var path=require(_0x760c('0x2'));var fs=require('fs');var _=require('lodash');var squel=require(_0x760c('0x3'));var Papa=require(_0x760c('0x4'));var Redis=require('ioredis');var qs=require(_0x760c('0x5'));var as=require(_0x760c('0x6'));var logger=require(_0x760c('0x7'))(_0x760c('0x8'));var config=require('../../config/environment');var db=require('../../mysqldb')['db'];config['redis']=_['defaults'](config['redis'],{'host':_0x760c('0x9'),'port':0x18eb});var socket=require(_0x760c('0xa'))(new Redis(config[_0x760c('0xb')]));require(_0x760c('0xc'))[_0x760c('0xd')](socket);function respondWithResult(_0x21e98c,_0x274bd2){_0x274bd2=_0x274bd2||0xc8;return function(_0x492746){if(_0x492746){return _0x21e98c[_0x760c('0xe')](_0x274bd2)[_0x760c('0xf')](_0x492746);}};}function respondWithFilteredResult(_0xb227ae,_0x71649){return function(_0x4253c4){if(_0x4253c4){var _0x16e11a=typeof _0x71649[_0x760c('0x10')]===_0x760c('0x11')&&typeof _0x71649[_0x760c('0x12')]===_0x760c('0x11');var _0x3d77ef=_0x4253c4['count'];var _0xce8619=_0x16e11a?0x0:_0x71649['offset'];var _0x28167d=_0x16e11a?_0x4253c4[_0x760c('0x13')]:_0x71649[_0x760c('0x10')]+_0x71649[_0x760c('0x12')];var _0x46c9b9;if(_0x28167d>=_0x3d77ef){_0x28167d=_0x3d77ef;_0x46c9b9=0xc8;}else{_0x46c9b9=0xce;}_0xb227ae[_0x760c('0xe')](_0x46c9b9);return _0xb227ae['set']('Content-Range',_0xce8619+'-'+_0x28167d+'/'+_0x3d77ef)['json'](_0x4253c4);}return null;};}function saveUpdates(_0x49ee1c){return function(_0xc65975){if(_0xc65975){return _0xc65975[_0x760c('0x14')](_0x49ee1c)[_0x760c('0x15')](function(_0x1a0982){return _0x1a0982;});}return null;};}function removeEntity(_0x4d1607){return function(_0x45dd69){if(_0x45dd69){return _0x45dd69[_0x760c('0x16')]()['then'](function(){_0x4d1607['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x848082){return function(_0x569636){if(!_0x569636){_0x848082[_0x760c('0x17')](0x194);}return _0x569636;};}function handleError(_0x4b5628,_0x432e25){_0x432e25=_0x432e25||0x1f4;return function(_0xb3248c){logger[_0x760c('0x18')](_0xb3248c['stack']);if(_0xb3248c[_0x760c('0x19')]){delete _0xb3248c[_0x760c('0x19')];}_0x4b5628[_0x760c('0xe')](_0x432e25)[_0x760c('0x1a')](_0xb3248c);};}exports['index']=function(_0x74faa,_0x59b226){var _0x4fa1d1={},_0x1544da={},_0x3d5326={'count':0x0,'rows':[]};return db['CmContact'][_0x760c('0x1b')]()[_0x760c('0x15')](function(_0x38805c){var _0x3c90b9=[];for(var _0x4b7506=0x0;_0x4b7506<Object['keys'](_0x38805c)['length'];_0x4b7506++){var _0x341cfc=Object[_0x760c('0x1c')](_0x38805c)[_0x4b7506];if(_['startsWith'](_0x341cfc,_0x760c('0x1d'))){_0x3c90b9[_0x760c('0x1e')](db[_0x760c('0x1f')][_0x760c('0x20')]({'where':{'id':_[_0x760c('0x21')](_0x341cfc,_0x760c('0x1d'))},'raw':!![]}));}}return BPromise[_0x760c('0x22')](_0x3c90b9)['then'](function(_0x5d7c4a){for(var _0xb2c9cb=0x0;_0xb2c9cb<_0x5d7c4a['length'];_0xb2c9cb++){if(_0x5d7c4a[_0xb2c9cb]){var _0x47633d=_0x760c('0x1d')+_0x5d7c4a[_0xb2c9cb]['id'];var _0x6aec8d=_0x38805c[_0x47633d];_0x6aec8d['fieldType']=_0x5d7c4a[_0xb2c9cb]['type'];}}return _0x38805c;});})[_0x760c('0x15')](function(_0xc22cd1){_0x1544da[_0x760c('0x23')]=_['keys'](_0xc22cd1);_0x1544da[_0x760c('0x24')]=_[_0x760c('0x1c')](_0x74faa[_0x760c('0x24')]);_0x1544da['filters']=_['intersection'](_0x1544da['model'],_0x1544da[_0x760c('0x24')]);_0x4fa1d1[_0x760c('0x25')]=_[_0x760c('0x26')](_0x1544da[_0x760c('0x23')],qs[_0x760c('0x27')](_0x74faa[_0x760c('0x24')][_0x760c('0x27')]));_0x4fa1d1[_0x760c('0x25')]=_0x4fa1d1[_0x760c('0x25')]['length']?_0x4fa1d1['attributes']:_0x1544da[_0x760c('0x23')];if(!_0x74faa[_0x760c('0x24')]['hasOwnProperty'](_0x760c('0x28'))){_0x4fa1d1['limit']=qs[_0x760c('0x12')](_0x74faa['query'][_0x760c('0x12')]);_0x4fa1d1[_0x760c('0x10')]=qs['offset'](_0x74faa[_0x760c('0x24')][_0x760c('0x10')]);}_0x4fa1d1[_0x760c('0x29')]=qs[_0x760c('0x2a')](_0x74faa[_0x760c('0x24')][_0x760c('0x2a')]);_0x4fa1d1['where']=qs['filters'](_[_0x760c('0x2b')](_0x74faa[_0x760c('0x24')],_0x1544da[_0x760c('0x2c')]),_0xc22cd1);var _0x422ae3=[];var _0x48c70a=squel['select']()['field']('id')['field'](_0x760c('0x19'))['field'](_0x760c('0x2d'))['from'](_0x760c('0x2e'));var _0x9a4be5=squel['select']()['from'](_0x760c('0x2f'),'c')[_0x760c('0x30')](_0x760c('0x31'),'uc','uc.CmContactId\x20=\x20c.id')[_0x760c('0x30')](_0x760c('0x32'),'ct',_0x760c('0x33'))[_0x760c('0x30')]('tools_tags','t',_0x760c('0x34'))[_0x760c('0x35')](_0x760c('0x36'));var _0x3384e6=squel[_0x760c('0x37')]();var _0x51991e=[];var _0x3ee1b6=squel['expr']();var _0x4ab3f0;if(_0x74faa[_0x760c('0x24')]['search']){_0x4ab3f0=as[_0x760c('0x38')](_0x74faa['query']['search']);var _0x3c2fd=_0x4ab3f0[_0x760c('0x39')];for(var _0x425a8e=0x0;_0x425a8e<_0x4ab3f0[_0x760c('0x3a')]['length'];_0x425a8e++){var _0x442389=_0x4ab3f0[_0x760c('0x3a')][_0x425a8e];var _0x3e88bf='c';var _0x276b6e=_(_0xc22cd1)['keys']()['find'](function(_0x30dbb0){return _0x30dbb0===_0x442389['field'];});if(_0x276b6e)_0x276b6e=_0xc22cd1[_0x442389[_0x760c('0x3b')]];if(!_0x276b6e){if(_0x442389[_0x760c('0x3b')]==='Tag'){var _0x1ba617=_0x442389[_0x760c('0x3c')][_0x760c('0x3d')](',')['map'](function(_0x278a78){return Number(_0x278a78);});_0x1ba617[_0x760c('0x3e')](function(_0x20c5f0){_0x3ee1b6['or'](_0x760c('0x3f'),'%,'+_0x20c5f0+',%');});_0x51991e=_[_0x760c('0x40')](_0x51991e,_0x1ba617);}else if(_0x442389[_0x760c('0x3b')]===_0x760c('0x41')){_0x3384e6[_0x760c('0x42')]('uc.UserId\x20=\x20?',_0x442389['value']);}}else{if(_0x442389[_0x760c('0x3b')]==='dateOfBirth'||_0x276b6e[_0x760c('0x43')]===_0x760c('0x44'))_0x442389[_0x760c('0x45')]=_0x760c('0x46');var _0x5d8d85=as[_0x760c('0x47')](_0x3e88bf,_0x276b6e[_0x760c('0x48')],_0x442389);_0x3384e6[_0x3c2fd](_0x5d8d85[_0x760c('0x49')],_0x5d8d85[_0x760c('0x3c')][_0x760c('0x4a')],_0x5d8d85[_0x760c('0x3c')][_0x760c('0x4b')]);}}}else{var _0x53bb8c=_(Object['keys'](_0x74faa['query']))[_0x760c('0x4c')](function(_0x71f6d2){return _0xc22cd1[_0x760c('0x4d')](_0x71f6d2)?_0x71f6d2:undefined;})[_0x760c('0x4e')](function(_0xa4c271){return!_[_0x760c('0x4f')](_0xa4c271);})[_0x760c('0x3c')]();if(_0x74faa[_0x760c('0x24')][_0x760c('0x50')])_0x53bb8c[_0x760c('0x1e')]('Contact');if(!_['isEmpty'](_0x53bb8c)){_0x53bb8c['forEach'](function(_0x1b2107){if(_0x1b2107===_0x760c('0x51')){_0x9a4be5['where'](_0x760c('0x52'),[]['concat'](_0x74faa['query'][_0x1b2107]));}else if(_0x1b2107==='Contact'){var _0x27cdf7='%'+_0x74faa['query'][_0x1b2107]+'%';_0x9a4be5[_0x760c('0x35')]('CONCAT_WS(\x27\x20\x27,\x20c.firstName,\x20c.lastName,\x20c.email)\x20LIKE\x20?',_0x27cdf7);}else{_0x9a4be5['where']('c.'+_0x1b2107+_0x760c('0x53'),_0x74faa['query'][_0x1b2107]);}});}if(_0x74faa['query'][_0x760c('0x54')]){_0x51991e=_[_0x760c('0x55')](_0x74faa[_0x760c('0x24')][_0x760c('0x54')])?_0x74faa[_0x760c('0x24')][_0x760c('0x54')]:new Array(_0x74faa[_0x760c('0x24')]['tag']);_0x51991e['forEach'](function(_0x4cfc5c){_0x3ee1b6['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x4cfc5c+',%');});}if(_0x74faa[_0x760c('0x24')][_0x760c('0x4e')]){var _0x5266d7=_0x74faa[_0x760c('0x24')][_0x760c('0x4e')][_0x760c('0x56')]('\x5c','\x5c\x5c')[_0x760c('0x56')](/'/g,'\x27\x27');if(_0x5266d7[_0x760c('0x3d')]('\x20')[_0x760c('0x57')]>0x1){_0x3384e6['or'](_0x760c('0x58'),qs['getFullTextValue'](_0x5266d7),null);}else{if(qs[_0x760c('0x59')](_0x5266d7)){_0x3384e6['or'](_0x760c('0x5a'),_0x5266d7+'%');_0x3384e6['or'](_0x760c('0x5b'),_0x5266d7+'%');_0x3384e6['or'](_0x760c('0x5c'),_0x5266d7+'%');_0x3384e6['or'](_0x760c('0x5d'),_0x5266d7+'%');}else if(qs['isEmail'](_0x5266d7)){_0x3384e6['or'](_0x760c('0x5e'),_0x5266d7+'%');}else{_0x3384e6['or'](_0x760c('0x5f'),'%'+_0x5266d7+'%');_0x3384e6['or'](_0x760c('0x60'),'%'+_0x5266d7+'%');_0x3384e6['or']('c.email\x20LIKE\x20?','%'+_0x5266d7+'%');}}}}_0x9a4be5['where'](_0x3384e6);_0x9a4be5['group'](_0x760c('0x61'));var _0x561556={'type':db[_0x760c('0x62')][_0x760c('0x63')][_0x760c('0x64')],'raw':!![]};var _0x9ca07e=_0x9a4be5['clone']()['field'](_0x760c('0x61'));if(_0x4fa1d1['order']){_0x4fa1d1[_0x760c('0x29')]['forEach'](function(_0x54b133){_0x9a4be5['order']('c.'+_0x54b133[0x0],_0x54b133[0x1]===_0x760c('0x65')?![]:!![]);});}if(!_[_0x760c('0x66')](_0x51991e)){_0x9a4be5[_0x760c('0x67')](_0x3ee1b6);_0x9ca07e[_0x760c('0x35')](_0x760c('0x68'),_0x51991e);}BPromise[_0x760c('0x69')]()[_0x760c('0x15')](function(){if(!_0x4ab3f0)return;if(_0x74faa[_0x760c('0x6a')][_0x760c('0x6b')]!==_0x760c('0x6c'))return;if(!_[_0x760c('0x6d')](_0x4ab3f0[_0x760c('0x3a')],['field','User'])){return _0x74faa[_0x760c('0x6a')][_0x760c('0x6e')]({'attributes':['id'],'raw':!![]})['then'](function(_0xadf6f3){if(_[_0x760c('0x66')](_0xadf6f3)){_0x9ca07e[_0x760c('0x35')](_0x760c('0x6f'));_0x9a4be5[_0x760c('0x35')]('c.ListId\x20IS\x20NULL');}else{_0x9ca07e[_0x760c('0x35')]('c.ListId\x20IN\x20?',_['map'](_0xadf6f3,'id'));_0x9a4be5[_0x760c('0x35')](_0x760c('0x52'),_[_0x760c('0x4c')](_0xadf6f3,'id'));}});}})[_0x760c('0x15')](function(){if(_0x74faa[_0x760c('0x6a')][_0x760c('0x6b')]===_0x760c('0x6c')&&!_0x4ab3f0&&!_0x74faa[_0x760c('0x24')][_0x760c('0x51')])return[];return db[_0x760c('0x70')][_0x760c('0x24')](_0x9ca07e[_0x760c('0x71')](),_0x561556);})[_0x760c('0x15')](function(_0x2d1fca){_0x3d5326[_0x760c('0x13')]=_0x2d1fca[_0x760c('0x57')];if(_0x3d5326['count']===0x0)return[];return db['sequelize']['query'](_0x48c70a[_0x760c('0x71')](),_0x561556)['then'](function(_0x1381df){_0x422ae3=_[_0x760c('0x72')](_0x1381df,'id');_0x561556=_['merge'](_0x561556,{'model':db[_0x760c('0x73')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x74faa[_0x760c('0x24')][_0x760c('0x27')]){_0x4fa1d1[_0x760c('0x25')][_0x760c('0x3e')](function(_0x42f515){_0x9a4be5['field']('c.'+_0x42f515);});}else{_0x9a4be5['field'](_0x760c('0x61'));_0x9a4be5[_0x760c('0x3b')](_0x760c('0x74'));_0x9a4be5[_0x760c('0x3b')](_0x760c('0x75'));_0x9a4be5[_0x760c('0x3b')](_0x760c('0x76'));_0x9a4be5[_0x760c('0x3b')](_0x760c('0x77'));_0x9a4be5['field']('c.fax');_0x9a4be5['field'](_0x760c('0x78'));_0x9a4be5[_0x760c('0x3b')](_0x760c('0x79'));_0x9a4be5[_0x760c('0x3b')](_0x760c('0x7a'));_0x9a4be5['field'](_0x760c('0x7b'));_0x9a4be5[_0x760c('0x3b')]('c.CompanyId');_0x9a4be5[_0x760c('0x3b')](_0x760c('0x7c'),_0x760c('0x7d'));}if(_0x4fa1d1[_0x760c('0x12')])_0x9a4be5['limit'](_0x4fa1d1['limit']);if(_0x4fa1d1[_0x760c('0x10')])_0x9a4be5[_0x760c('0x10')](_0x4fa1d1[_0x760c('0x10')]);return db[_0x760c('0x70')][_0x760c('0x24')](_0x9a4be5[_0x760c('0x71')](),_0x561556);});})[_0x760c('0x15')](function(_0x24bd36){_0x24bd36[_0x760c('0x3e')](function(_0x4e19b2){if(_0x4e19b2['TagIds']){_0x4e19b2[_0x760c('0x7e')]=[];_0x4e19b2[_0x760c('0x7d')][_0x760c('0x3d')](',')[_0x760c('0x3e')](function(_0x4b09e4){_0x4e19b2[_0x760c('0x7e')][_0x760c('0x1e')](_0x422ae3[_0x4b09e4]);});}delete _0x4e19b2[_0x760c('0x7d')];});_0x3d5326[_0x760c('0x7f')]=_0x24bd36;return _0x3d5326;})['then'](respondWithFilteredResult(_0x59b226,_0x4fa1d1));})['catch'](handleError(_0x59b226,null));};exports[_0x760c('0x16')]=function(_0x35256a,_0x4f3baf){return db['CmContact'][_0x760c('0x80')]({'where':{'id':_0x35256a[_0x760c('0x81')]['id']}})[_0x760c('0x15')](handleEntityNotFound(_0x4f3baf,null))[_0x760c('0x15')](removeEntity(_0x4f3baf,null))[_0x760c('0x82')](handleError(_0x4f3baf,null));};exports[_0x760c('0x1b')]=function(_0x4350b8,_0x50673c){return db['CmContact'][_0x760c('0x1b')]()['then'](function(_0xd50fcf){delete _0xd50fcf[_0x760c('0x83')];for(var _0x199479=0x0;_0x199479<Object['keys'](_0xd50fcf)[_0x760c('0x57')];_0x199479++){var _0x209ce7=Object[_0x760c('0x1c')](_0xd50fcf)[_0x199479];if(!_[_0x760c('0x84')](_0x209ce7,_0x760c('0x1d'))){_0xd50fcf[_0x209ce7]['columnName']=_0x209ce7;_0xd50fcf[_0x209ce7][_0x760c('0x85')]=_0x209ce7;}}return _0xd50fcf;})['then'](function(_0x4dfab6){var _0x3a0b12={'where':Boolean(_0x4350b8[_0x760c('0x24')][_0x760c('0x86')])===!![]?undefined:{'$or':[{'ListId':_0x4350b8[_0x760c('0x24')]['id']},{'ListId':null}]},'raw':!![]};return db[_0x760c('0x1f')][_0x760c('0x87')](_0x3a0b12)[_0x760c('0x15')](function(_0x49ce29){for(var _0x56ac96=0x0;_0x56ac96<_0x49ce29[_0x760c('0x57')];_0x56ac96++){var _0x378379='cf_'+_0x49ce29[_0x56ac96]['id'];_0x4dfab6[_0x378379][_0x760c('0x88')]=_0x378379;_0x4dfab6[_0x378379][_0x760c('0x85')]=_0x49ce29[_0x56ac96][_0x760c('0x89')];_0x4dfab6[_0x378379][_0x760c('0x8a')]={'type':_0x49ce29[_0x56ac96][_0x760c('0x48')],'values':_0x49ce29[_0x56ac96]['values']};}Object[_0x760c('0x1c')](_0x4dfab6)[_0x760c('0x3e')](function(_0xe46166){if(!_0x4dfab6[_0xe46166][_0x760c('0x4d')](_0x760c('0x88'))){delete _0x4dfab6[_0xe46166];}});return _0x4dfab6;});})['then'](respondWithResult(_0x50673c,null))['catch'](handleError(_0x50673c,null));};exports[_0x760c('0x8b')]=function(_0x4f5641,_0x17a04c){var _0x998ede;var _0x259588;var _0x186d78;if(_0x4f5641[_0x760c('0x8c')]['id']){delete _0x4f5641[_0x760c('0x8c')]['id'];}return db[_0x760c('0x73')]['findAll']({'where':{'id':[_0x4f5641[_0x760c('0x8c')]['to'],_0x4f5641[_0x760c('0x8c')][_0x760c('0x8d')]]}})[_0x760c('0x15')](function(_0x322e74){if(_0x322e74){if(_0x322e74[_0x760c('0x57')]!==0x2){return null;}_0x322e74[0x0]=_0x322e74[0x0]['get']({'plain':!![]});_0x322e74[0x1]=_0x322e74[0x1][_0x760c('0x8e')]({'plain':!![]});delete _0x322e74[0x0]['id'];delete _0x322e74[0x1]['id'];return _[_0x760c('0x8f')](_0x322e74[0x0],_0x322e74[0x1],function(_0x57283e,_0x35db0b){if(Array['isArray'](_0x35db0b)&&!_0x35db0b[_0x760c('0x57')]){return _0x57283e;}else if(!_0x35db0b){return _0x57283e;}});}})[_0x760c('0x15')](handleEntityNotFound(_0x17a04c,null))[_0x760c('0x15')](function(_0x3c2564){if(_0x3c2564){if(_0x3c2564[_0x760c('0x83')]&&_['isArray'](_0x3c2564[_0x760c('0x83')])){_0x3c2564[_0x760c('0x83')]=_0x3c2564[_0x760c('0x83')][_0x760c('0x90')]();}logger[_0x760c('0x91')]('[CmContact][merge]\x20to\x20%s\x20from\x20%s',_0x4f5641['body']['to'],_0x4f5641[_0x760c('0x8c')]['from']);return db[_0x760c('0x92')][_0x760c('0x16')]({'where':{'ContactId':[_0x4f5641[_0x760c('0x8c')]['to'],_0x4f5641[_0x760c('0x8c')][_0x760c('0x8d')]]}})['then'](function(_0x3dca69){logger[_0x760c('0x91')]('[CmContact][merge][destroy][CmHopper],\x20%s',_0x3dca69);return db['CmHopperBlack'][_0x760c('0x16')]({'where':{'ContactId':[_0x4f5641[_0x760c('0x8c')]['to'],_0x4f5641[_0x760c('0x8c')]['from']]}})['then'](function(_0xc31a2a){logger['info'](_0x760c('0x93'),_0xc31a2a);return db[_0x760c('0x73')][_0x760c('0x94')](_0x3c2564);});});}})[_0x760c('0x15')](function(_0x4a09e9){if(_0x4a09e9){_0x998ede=_0x4a09e9;_0x259588={'ContactId':_0x998ede['id']};_0x186d78={'where':{'ContactId':[_0x4f5641['body']['to'],_0x4f5641[_0x760c('0x8c')][_0x760c('0x8d')]]}};return db[_0x760c('0x95')][_0x760c('0x14')](_0x259588,_0x186d78);}})[_0x760c('0x15')](function(){if(_0x998ede){return db[_0x760c('0x96')][_0x760c('0x14')](_0x259588,_0x186d78);}})['then'](function(){if(_0x998ede){return db[_0x760c('0x97')][_0x760c('0x14')](_0x259588,_0x186d78);}})[_0x760c('0x15')](function(){if(_0x998ede){return db['MailInteraction'][_0x760c('0x14')](_0x259588,_0x186d78);}})['then'](function(){if(_0x998ede){return db[_0x760c('0x98')][_0x760c('0x14')](_0x259588,_0x186d78);}})[_0x760c('0x15')](function(){if(_0x998ede){return db[_0x760c('0x99')]['update'](_0x259588,_0x186d78);}})[_0x760c('0x15')](function(){if(_0x998ede){return db[_0x760c('0x98')][_0x760c('0x14')](_0x259588,_0x186d78);}})['then'](function(){if(_0x998ede){return db[_0x760c('0x9a')]['update'](_0x259588,_0x186d78);}})[_0x760c('0x15')](function(){if(_0x998ede){return db[_0x760c('0x9b')][_0x760c('0x14')](_0x259588,_0x186d78);}})[_0x760c('0x15')](function(){if(_0x998ede){return db[_0x760c('0x9c')][_0x760c('0x14')](_0x259588,_0x186d78);}})[_0x760c('0x15')](function(){if(_0x998ede){return db[_0x760c('0x9d')][_0x760c('0x14')](_0x259588,_0x186d78);}})[_0x760c('0x15')](function(){if(_0x998ede){return db[_0x760c('0x9e')][_0x760c('0x14')](_0x259588,_0x186d78);}})['then'](function(){if(_0x998ede){return db[_0x760c('0x9f')][_0x760c('0x14')](_0x259588,_0x186d78);}})[_0x760c('0x15')](function(){if(_0x998ede){return db[_0x760c('0xa0')][_0x760c('0x14')](_0x259588,_0x186d78);}})[_0x760c('0x15')](function(){if(_0x998ede){return db['CmHopperHistory']['update'](_0x259588,_0x186d78);}})[_0x760c('0x15')](function(){if(_0x998ede){return db[_0x760c('0xa1')]['update'](_0x259588,_0x186d78);}})[_0x760c('0x15')](function(){if(_0x998ede){return db[_0x760c('0xa2')][_0x760c('0x14')](_0x259588,_0x186d78);}})[_0x760c('0x15')](function(){if(_0x998ede){return db['ChatQueueReport']['update'](_0x259588,_0x186d78);}})[_0x760c('0x15')](function(){if(_0x998ede){return db[_0x760c('0xa3')][_0x760c('0x14')](_0x259588,_0x186d78);}})['then'](function(){if(_0x998ede){return db[_0x760c('0xa4')][_0x760c('0x14')](_0x259588,_0x186d78);}})[_0x760c('0x15')](function(){if(_0x998ede){return db[_0x760c('0xa5')][_0x760c('0x14')](_0x259588,_0x186d78);}})['then'](function(){if(_0x998ede){return db[_0x760c('0xa6')][_0x760c('0x14')](_0x259588,_0x186d78);}})['then'](function(){if(_0x998ede){return db[_0x760c('0xa7')][_0x760c('0x14')](_0x259588,_0x186d78);}})[_0x760c('0x15')](function(){if(_0x998ede){return db['WhatsappInteraction'][_0x760c('0x14')](_0x259588,_0x186d78);}})[_0x760c('0x15')](function(){if(_0x998ede){return db[_0x760c('0xa8')][_0x760c('0x14')](_0x259588,_0x186d78);}})['then'](function(){if(_0x998ede){return db['WhatsappQueueReport'][_0x760c('0x14')](_0x259588,_0x186d78);}})[_0x760c('0x15')](function(){if(_0x998ede){return db[_0x760c('0x73')][_0x760c('0x16')]({'where':{'id':[_0x4f5641[_0x760c('0x8c')]['to'],_0x4f5641[_0x760c('0x8c')][_0x760c('0x8d')]]}});}})[_0x760c('0x15')](function(){if(_0x998ede){return _0x998ede;}})['then'](respondWithResult(_0x17a04c,null))[_0x760c('0x82')](handleError(_0x17a04c,null));};exports[_0x760c('0x94')]=function(_0xb113e5,_0x1cae68){return db[_0x760c('0x73')][_0x760c('0x1b')]()[_0x760c('0x15')](function(_0x2f5efa){if(_0xb113e5[_0x760c('0x8c')]['tags']&&_[_0x760c('0x55')](_0xb113e5['body'][_0x760c('0x83')])){if(_0xb113e5['body'][_0x760c('0x83')][_0x760c('0x57')]){_0xb113e5['body'][_0x760c('0x83')]=_0xb113e5[_0x760c('0x8c')][_0x760c('0x83')][_0x760c('0x90')](';')+';';}else{_0xb113e5['body'][_0x760c('0x83')]=null;}}else{_0xb113e5[_0x760c('0x8c')][_0x760c('0x83')]=null;}return db['CmContact'][_0x760c('0x94')](_0xb113e5['body'],{'fields':_['keys'](_0x2f5efa),'raw':!![]});})[_0x760c('0x15')](respondWithResult(_0x1cae68,0xc9))['catch'](handleError(_0x1cae68,null));};exports[_0x760c('0xa9')]=function(_0x584e92,_0x410bfd){var _0x360912=0x0;var _0x349dee=0x0;var _0x5a88b7=0x0;return db[_0x760c('0x73')][_0x760c('0x1b')]()[_0x760c('0x15')](function(_0x3edb7a){return BPromise[_0x760c('0xaa')](_0x584e92[_0x760c('0x8c')],function(_0xbd8583){var _0x16824c={'where':{'$or':[]},'defaults':_0xbd8583,'fields':_[_0x760c('0x1c')](_0x3edb7a),'raw':!![]};if(_0xbd8583[_0x760c('0xab')]){for(var _0x57e822=0x0;_0x57e822<_0xbd8583[_0x760c('0xab')][_0x760c('0x57')];_0x57e822++){var _0x2b6afb={};_0x2b6afb[_0xbd8583[_0x760c('0xab')][_0x57e822]]=_0xbd8583[_0xbd8583[_0x760c('0xab')][_0x57e822]];_0x16824c[_0x760c('0x35')][_0x760c('0xac')][_0x760c('0x1e')](_0x2b6afb);}_0x16824c[_0x760c('0x35')][_0x760c('0x51')]=_0xbd8583[_0x760c('0x51')];}return db[_0x760c('0x73')][_0x760c('0xad')](_0x16824c)['spread'](function(_0x398c7a,_0x2be456){if(_0x2be456){_0x360912++;}else{_0x5a88b7++;}})[_0x760c('0x82')](function(){_0x349dee++;});});})['then'](function(_0x5cc5bc){if(_0x5cc5bc){return{'success':_0x360912,'failure':_0x349dee,'duplicates':_0x5a88b7};}})[_0x760c('0x15')](respondWithResult(_0x410bfd,0xc9))[_0x760c('0x82')](handleError(_0x410bfd,null));};exports[_0x760c('0xae')]=function(_0xb47884,_0x2def11){var _0x2bec6d;return db[_0x760c('0x73')][_0x760c('0x1b')]()[_0x760c('0x15')](function(_0x3c9a72){return db[_0x760c('0x73')][_0x760c('0x80')]({'where':{'id':_0xb47884[_0x760c('0x81')]['id']},'include':[{'model':db['Tag'],'as':_0x760c('0x7e'),'attributes':['id',_0x760c('0x19'),_0x760c('0x2d')],'required':_0xb47884['query']['tag']?!![]:![]}],'attributes':_[_0x760c('0x1c')](_0x3c9a72)});})['then'](function(_0x37d480){if(!_[_0x760c('0x4f')](_0x37d480)){_0x2bec6d=_0x37d480[_0x760c('0x8e')]({'plain':!![]});var _0x459b34={'where':{'$and':[{'ListId':{'$ne':null}}]}};if(_0x37d480&&_0x37d480[_0x760c('0x51')]){if(_0x37d480[_0x760c('0x51')]){_0x459b34[_0x760c('0x35')]['$and'][_0x760c('0x1e')]({'ListId':{'$ne':_0x37d480['ListId']}});}}return db[_0x760c('0x1f')][_0x760c('0x87')](_0x459b34);}})[_0x760c('0x15')](function(_0x3bb812){if(!_['isNil'](_0x3bb812)){return _[_0x760c('0xaf')](_0x2bec6d,_[_0x760c('0x4c')](_0x3bb812,function(_0x584669){return util[_0x760c('0xb0')](_0x760c('0xb1'),_0x584669['id']);}));}})['then'](handleEntityNotFound(_0x2def11,null))[_0x760c('0x15')](respondWithResult(_0x2def11,null))['catch'](handleError(_0x2def11,null));};exports['update']=function(_0x217e9a,_0x3f32e4){var _0x2f8c8b;if(_0x217e9a[_0x760c('0x8c')]['id']){delete _0x217e9a[_0x760c('0x8c')]['id'];}return db[_0x760c('0x73')][_0x760c('0x80')]({'where':{'id':_0x217e9a['params']['id']}})[_0x760c('0x15')](handleEntityNotFound(_0x3f32e4,null))[_0x760c('0x15')](saveUpdates(_0x217e9a[_0x760c('0x8c')],null))[_0x760c('0x15')](function(_0x3c431e){_0x2f8c8b=_0x3c431e;var _0x4cf423={'where':{'$and':[{'ListId':{'$ne':null}}]}};if(_0x3c431e&&_0x3c431e[_0x760c('0x51')]){if(_0x3c431e['ListId']){_0x4cf423[_0x760c('0x35')][_0x760c('0xb2')][_0x760c('0x1e')]({'ListId':{'$ne':_0x3c431e['ListId']}});}}return db[_0x760c('0x1f')][_0x760c('0x87')](_0x4cf423);})[_0x760c('0x15')](function(_0x1ce26f){if(_0x1ce26f){return _[_0x760c('0xaf')](_[_0x760c('0xb3')](_0x217e9a['body'],function(_0x35f6e0,_0x84b558){return _[_0x760c('0x84')](_0x84b558,_0x760c('0x1d'));}),_['map'](_0x1ce26f,function(_0x3a6aca){return util['format'](_0x760c('0xb1'),_0x3a6aca['id']);}));}})[_0x760c('0x15')](function(_0x438ad6){if(_0x438ad6&&!_[_0x760c('0x66')](_0x438ad6)){var _0xc32c33=squel[_0x760c('0x14')]()['table']('cm_contacts')[_0x760c('0xb4')](_0x438ad6)['where'](_0x760c('0xb5'),_0x217e9a[_0x760c('0x81')]['id'])[_0x760c('0xb6')]();return db['sequelize'][_0x760c('0x24')](_0xc32c33[_0x760c('0x49')],{'replacements':_0xc32c33[_0x760c('0xb7')]});}})['then'](function(){if(_0x217e9a[_0x760c('0x8c')][_0x760c('0xb8')]&&_0x2f8c8b){return db[_0x760c('0x92')]['update']({'phone':_0x217e9a[_0x760c('0x8c')][_0x760c('0xb8')]},{'where':{'ContactId':_0x2f8c8b['id']}});}})[_0x760c('0x15')](function(){return _0x2f8c8b;})[_0x760c('0x15')](respondWithResult(_0x3f32e4,null))['catch'](handleError(_0x3f32e4,null));};exports['getTags']=function(_0x1f1a4e,_0x13e1c3){var _0x3168c6={};var _0x2c04ad={};var _0x3a4965;var _0x4fd8b7;return db['CmContact'][_0x760c('0x20')]({'where':{'id':_0x1f1a4e['params']['id']}})['then'](handleEntityNotFound(_0x13e1c3,null))[_0x760c('0x15')](function(_0xeb839c){if(_0xeb839c){_0x3a4965=_0xeb839c;_0x2c04ad[_0x760c('0x23')]=_[_0x760c('0x1c')](db[_0x760c('0xb9')][_0x760c('0xba')]);_0x2c04ad[_0x760c('0x24')]=_[_0x760c('0x1c')](_0x1f1a4e['query']);_0x2c04ad['filters']=_[_0x760c('0x26')](_0x2c04ad['model'],_0x2c04ad[_0x760c('0x24')]);_0x3168c6[_0x760c('0x25')]=_[_0x760c('0x26')](_0x2c04ad[_0x760c('0x23')],qs[_0x760c('0x27')](_0x1f1a4e['query'][_0x760c('0x27')]));_0x3168c6[_0x760c('0x25')]=_0x3168c6[_0x760c('0x25')][_0x760c('0x57')]?_0x3168c6['attributes']:_0x2c04ad[_0x760c('0x23')];_0x3168c6[_0x760c('0x29')]=qs[_0x760c('0x2a')](_0x1f1a4e['query'][_0x760c('0x2a')]);_0x3168c6['where']=qs[_0x760c('0x2c')](_[_0x760c('0x2b')](_0x1f1a4e[_0x760c('0x24')],_0x2c04ad['filters']));if(_0x1f1a4e[_0x760c('0x24')][_0x760c('0x4e')]){_0x3168c6['where']=_[_0x760c('0x8b')](_0x3168c6[_0x760c('0x35')],{'$or':_[_0x760c('0x4c')](_0x3168c6[_0x760c('0x25')],function(_0xe8c8ea){var _0x8d94d2={};_0x8d94d2[_0xe8c8ea]={'$like':'%'+_0x1f1a4e[_0x760c('0x24')][_0x760c('0x4e')]+'%'};return _0x8d94d2;})});}_0x3168c6=_['merge']({},_0x3168c6,_0x1f1a4e[_0x760c('0xbb')]);return _0x3a4965[_0x760c('0xbc')](_0x3168c6);}})[_0x760c('0x15')](function(_0x1f3980){if(_0x1f3980){_0x4fd8b7=_0x1f3980[_0x760c('0x57')];if(!_0x1f1a4e[_0x760c('0x24')][_0x760c('0x4d')](_0x760c('0x28'))){_0x3168c6['limit']=qs[_0x760c('0x12')](_0x1f1a4e[_0x760c('0x24')][_0x760c('0x12')]);_0x3168c6[_0x760c('0x10')]=qs[_0x760c('0x10')](_0x1f1a4e[_0x760c('0x24')][_0x760c('0x10')]);}return _0x3a4965[_0x760c('0xbc')](_0x3168c6);}})[_0x760c('0x15')](function(_0x1ee2f7){if(_0x1ee2f7){return _0x1ee2f7?{'count':_0x4fd8b7,'rows':_0x1ee2f7}:null;}})[_0x760c('0x15')](respondWithResult(_0x13e1c3,null))[_0x760c('0x82')](handleError(_0x13e1c3,null));};exports[_0x760c('0xbd')]=function(_0x55c324,_0x103f57){if(_0x55c324[_0x760c('0x8c')]['id']){delete _0x55c324['body']['id'];}return db[_0x760c('0x73')]['findOne']({'where':{'id':_0x55c324['params']['id']}})[_0x760c('0x15')](handleEntityNotFound(_0x103f57,null))['then'](function(_0x47516d){if(_0x47516d){return _0x47516d['setTags'](_0x55c324[_0x760c('0x8c')][_0x760c('0xbe')]||[]);}return null;})[_0x760c('0x15')](respondWithResult(_0x103f57,null))[_0x760c('0x82')](handleError(_0x103f57,null));};exports[_0x760c('0xbf')]=function(_0x2af4bb,_0xe3a05b){var _0x780620={'raw':![],'where':{}};var _0x17401d={};var _0x428a65={'count':0x0,'rows':[]};return db[_0x760c('0x73')][_0x760c('0x20')]({'where':{'id':_0x2af4bb[_0x760c('0x81')]['id']}})['then'](handleEntityNotFound(_0xe3a05b,null))['then'](function(_0x88aca5){if(_0x88aca5){_0x17401d['model']=_[_0x760c('0x1c')](db[_0x760c('0x92')][_0x760c('0xba')]);_0x17401d[_0x760c('0x24')]=_[_0x760c('0x1c')](_0x2af4bb[_0x760c('0x24')]);_0x17401d[_0x760c('0x2c')]=_[_0x760c('0x26')](_0x17401d[_0x760c('0x23')],_0x17401d['query']);_0x780620[_0x760c('0x25')]=_[_0x760c('0x26')](_0x17401d[_0x760c('0x23')],qs[_0x760c('0x27')](_0x2af4bb[_0x760c('0x24')][_0x760c('0x27')]));_0x780620[_0x760c('0x25')]=_0x780620['attributes'][_0x760c('0x57')]?_0x780620[_0x760c('0x25')]:_0x17401d[_0x760c('0x23')];if(!_0x2af4bb[_0x760c('0x24')]['hasOwnProperty'](_0x760c('0x28'))){_0x780620[_0x760c('0x12')]=qs[_0x760c('0x12')](_0x2af4bb[_0x760c('0x24')]['limit']);_0x780620['offset']=qs['offset'](_0x2af4bb['query'][_0x760c('0x10')]);}_0x780620[_0x760c('0x29')]=qs['sort'](_0x2af4bb[_0x760c('0x24')][_0x760c('0x2a')]);_0x780620[_0x760c('0x35')]=qs[_0x760c('0x2c')](_[_0x760c('0x2b')](_0x2af4bb['query'],_0x17401d[_0x760c('0x2c')]));_0x780620['where'][_0x760c('0xc0')]=_0x88aca5['id'];if(_0x2af4bb[_0x760c('0x24')][_0x760c('0x4e')]){_0x780620[_0x760c('0x35')]=_['merge'](_0x780620[_0x760c('0x35')],{'$or':_[_0x760c('0x4c')](_0x780620[_0x760c('0x25')],function(_0x2a7eae){var _0x52f744={};_0x52f744[_0x2a7eae]={'$like':'%'+_0x2af4bb['query'][_0x760c('0x4e')]+'%'};return _0x52f744;})});}_0x780620=_[_0x760c('0x8b')]({},_0x780620,_0x2af4bb[_0x760c('0xbb')]);return db[_0x760c('0x92')][_0x760c('0x13')]({'where':_0x780620['where']})['then'](function(_0x411698){_0x428a65[_0x760c('0x13')]=_0x411698;if(_0x2af4bb['query'][_0x760c('0xc1')]){_0x780620[_0x760c('0xc2')]=[{'all':!![]}];}return db['CmHopper'][_0x760c('0x87')](_0x780620);})[_0x760c('0x15')](function(_0x1d397b){_0x428a65[_0x760c('0x7f')]=_0x1d397b;return _0x428a65;});}})['then'](respondWithFilteredResult(_0xe3a05b,_0x780620))[_0x760c('0x82')](handleError(_0xe3a05b,null));};exports[_0x760c('0xc3')]=function(_0x2a8e45,_0x5426a0){var _0x518b70={'raw':!![],'where':{}};var _0x269221={};var _0x1fbaed={'count':0x0,'rows':[]};return db[_0x760c('0x73')][_0x760c('0x20')]({'where':{'id':_0x2a8e45['params']['id']}})[_0x760c('0x15')](handleEntityNotFound(_0x5426a0,null))[_0x760c('0x15')](function(_0x4e18e5){if(_0x4e18e5){_0x269221[_0x760c('0x23')]=_[_0x760c('0x1c')](db[_0x760c('0xc4')][_0x760c('0xba')]);_0x269221[_0x760c('0x24')]=_['keys'](_0x2a8e45[_0x760c('0x24')]);_0x269221[_0x760c('0x2c')]=_['intersection'](_0x269221['model'],_0x269221[_0x760c('0x24')]);_0x518b70[_0x760c('0x25')]=_['intersection'](_0x269221[_0x760c('0x23')],qs['fields'](_0x2a8e45[_0x760c('0x24')][_0x760c('0x27')]));_0x518b70[_0x760c('0x25')]=_0x518b70[_0x760c('0x25')][_0x760c('0x57')]?_0x518b70[_0x760c('0x25')]:_0x269221[_0x760c('0x23')];if(!_0x2a8e45[_0x760c('0x24')][_0x760c('0x4d')](_0x760c('0x28'))){_0x518b70[_0x760c('0x12')]=qs[_0x760c('0x12')](_0x2a8e45[_0x760c('0x24')][_0x760c('0x12')]);_0x518b70[_0x760c('0x10')]=qs[_0x760c('0x10')](_0x2a8e45[_0x760c('0x24')][_0x760c('0x10')]);}_0x518b70[_0x760c('0x29')]=qs['sort'](_0x2a8e45[_0x760c('0x24')][_0x760c('0x2a')]);_0x518b70[_0x760c('0x35')]=qs[_0x760c('0x2c')](_[_0x760c('0x2b')](_0x2a8e45[_0x760c('0x24')],_0x269221[_0x760c('0x2c')]));_0x518b70[_0x760c('0x35')]['ContactId']=_0x4e18e5['id'];if(_0x2a8e45[_0x760c('0x24')][_0x760c('0x4e')]){_0x518b70['where']=_[_0x760c('0x8b')](_0x518b70[_0x760c('0x35')],{'$or':_['map'](_0x518b70[_0x760c('0x25')],function(_0x205f5c){var _0x53ed55={};_0x53ed55[_0x205f5c]={'$like':'%'+_0x2a8e45['query'][_0x760c('0x4e')]+'%'};return _0x53ed55;})});}_0x518b70=_['merge']({},_0x518b70,_0x2a8e45['options']);return db[_0x760c('0xc4')][_0x760c('0x13')]({'where':_0x518b70[_0x760c('0x35')]})[_0x760c('0x15')](function(_0x345836){_0x1fbaed[_0x760c('0x13')]=_0x345836;if(_0x2a8e45[_0x760c('0x24')][_0x760c('0xc1')]){_0x518b70[_0x760c('0xc2')]=[{'all':!![]}];}return db[_0x760c('0xc4')][_0x760c('0x87')](_0x518b70);})[_0x760c('0x15')](function(_0xb3a21c){_0x1fbaed[_0x760c('0x7f')]=_0xb3a21c;return _0x1fbaed;});}})[_0x760c('0x15')](respondWithFilteredResult(_0x5426a0,_0x518b70))[_0x760c('0x82')](handleError(_0x5426a0,null));};exports[_0x760c('0xc5')]=function(_0x41c3d7,_0x31ce79){var _0x241544={'raw':!![],'where':{}};var _0x2193e9={};var _0x2afc60={'count':0x0,'rows':[]};return db[_0x760c('0x73')][_0x760c('0x20')]({'where':{'id':_0x41c3d7[_0x760c('0x81')]['id']}})['then'](handleEntityNotFound(_0x31ce79,null))[_0x760c('0x15')](function(_0x38efe9){if(_0x38efe9){_0x2193e9[_0x760c('0x23')]=_[_0x760c('0x1c')](db[_0x760c('0xa0')]['rawAttributes']);_0x2193e9[_0x760c('0x24')]=_[_0x760c('0x1c')](_0x41c3d7[_0x760c('0x24')]);_0x2193e9[_0x760c('0x2c')]=_[_0x760c('0x26')](_0x2193e9['model'],_0x2193e9['query']);_0x241544[_0x760c('0x25')]=_[_0x760c('0x26')](_0x2193e9[_0x760c('0x23')],qs[_0x760c('0x27')](_0x41c3d7[_0x760c('0x24')][_0x760c('0x27')]));_0x241544[_0x760c('0x25')]=_0x241544['attributes'][_0x760c('0x57')]?_0x241544[_0x760c('0x25')]:_0x2193e9[_0x760c('0x23')];if(!_0x41c3d7[_0x760c('0x24')][_0x760c('0x4d')](_0x760c('0x28'))){_0x241544[_0x760c('0x12')]=qs['limit'](_0x41c3d7[_0x760c('0x24')]['limit']);_0x241544[_0x760c('0x10')]=qs['offset'](_0x41c3d7[_0x760c('0x24')][_0x760c('0x10')]);}_0x241544[_0x760c('0x29')]=qs[_0x760c('0x2a')](_0x41c3d7[_0x760c('0x24')][_0x760c('0x2a')]);_0x241544[_0x760c('0x35')]=qs['filters'](_[_0x760c('0x2b')](_0x41c3d7[_0x760c('0x24')],_0x2193e9['filters']));_0x241544[_0x760c('0x35')]['ContactId']=_0x38efe9['id'];if(_0x41c3d7[_0x760c('0x24')]['filter']){_0x241544['where']=_[_0x760c('0x8b')](_0x241544[_0x760c('0x35')],{'$or':_[_0x760c('0x4c')](_0x241544[_0x760c('0x25')],function(_0x5b8484){var _0x1f3cbe={};_0x1f3cbe[_0x5b8484]={'$like':'%'+_0x41c3d7[_0x760c('0x24')][_0x760c('0x4e')]+'%'};return _0x1f3cbe;})});}_0x241544=_[_0x760c('0x8b')]({},_0x241544,_0x41c3d7[_0x760c('0xbb')]);return db[_0x760c('0xa0')]['count']({'where':_0x241544[_0x760c('0x35')]})[_0x760c('0x15')](function(_0xb6a182){_0x2afc60[_0x760c('0x13')]=_0xb6a182;if(_0x41c3d7[_0x760c('0x24')][_0x760c('0xc1')]){_0x241544[_0x760c('0xc2')]=[{'all':!![]}];}return db[_0x760c('0xa0')][_0x760c('0x87')](_0x241544);})[_0x760c('0x15')](function(_0x133529){_0x2afc60[_0x760c('0x7f')]=_0x133529;return _0x2afc60;});}})[_0x760c('0x15')](respondWithFilteredResult(_0x31ce79,_0x241544))['catch'](handleError(_0x31ce79,null));};exports[_0x760c('0xc6')]=function(_0x515b57,_0x341b7f){var _0x1a261a={'raw':!![],'where':{}};var _0x2de4bb={};var _0x4e6129={'count':0x0,'rows':[]};return db[_0x760c('0x73')][_0x760c('0x20')]({'where':{'id':_0x515b57['params']['id']}})[_0x760c('0x15')](handleEntityNotFound(_0x341b7f,null))[_0x760c('0x15')](function(_0x54c904){if(_0x54c904){_0x2de4bb[_0x760c('0x23')]=_['keys'](db[_0x760c('0xa7')][_0x760c('0xba')]);_0x2de4bb['query']=_[_0x760c('0x1c')](_0x515b57[_0x760c('0x24')]);_0x2de4bb[_0x760c('0x2c')]=_['intersection'](_0x2de4bb[_0x760c('0x23')],_0x2de4bb[_0x760c('0x24')]);_0x1a261a[_0x760c('0x25')]=_[_0x760c('0x26')](_0x2de4bb['model'],qs['fields'](_0x515b57[_0x760c('0x24')]['fields']));_0x1a261a[_0x760c('0x25')]=_0x1a261a[_0x760c('0x25')][_0x760c('0x57')]?_0x1a261a['attributes']:_0x2de4bb[_0x760c('0x23')];if(!_0x515b57[_0x760c('0x24')]['hasOwnProperty']('nolimit')){_0x1a261a[_0x760c('0x12')]=qs[_0x760c('0x12')](_0x515b57[_0x760c('0x24')][_0x760c('0x12')]);_0x1a261a['offset']=qs[_0x760c('0x10')](_0x515b57[_0x760c('0x24')][_0x760c('0x10')]);}_0x1a261a['order']=qs[_0x760c('0x2a')](_0x515b57[_0x760c('0x24')][_0x760c('0x2a')]);_0x1a261a[_0x760c('0x35')]=qs[_0x760c('0x2c')](_[_0x760c('0x2b')](_0x515b57[_0x760c('0x24')],_0x2de4bb['filters']));_0x1a261a[_0x760c('0x35')][_0x760c('0xc0')]=_0x54c904['id'];if(_0x515b57[_0x760c('0x24')][_0x760c('0x4e')]){_0x1a261a['where']=_['merge'](_0x1a261a[_0x760c('0x35')],{'$or':_['map'](_0x1a261a[_0x760c('0x25')],function(_0x291e28){var _0x4cb953={};_0x4cb953[_0x291e28]={'$like':'%'+_0x515b57[_0x760c('0x24')][_0x760c('0x4e')]+'%'};return _0x4cb953;})});}_0x1a261a=_[_0x760c('0x8b')]({},_0x1a261a,_0x515b57[_0x760c('0xbb')]);return db[_0x760c('0xa7')][_0x760c('0x13')]({'where':_0x1a261a['where']})[_0x760c('0x15')](function(_0x44c7f1){_0x4e6129['count']=_0x44c7f1;if(_0x515b57['query'][_0x760c('0xc1')]){_0x1a261a[_0x760c('0xc2')]=[{'all':!![]}];}return db[_0x760c('0xa7')][_0x760c('0x87')](_0x1a261a);})[_0x760c('0x15')](function(_0xd8178d){_0x4e6129[_0x760c('0x7f')]=_0xd8178d;return _0x4e6129;});}})[_0x760c('0x15')](respondWithFilteredResult(_0x341b7f,_0x1a261a))['catch'](handleError(_0x341b7f,null));};exports['uploadCsv']=function(_0x347f24,_0x110155){try{if(!_0x347f24[_0x760c('0x8c')][_0x760c('0x51')]){throw new Error(_0x760c('0xc7'));}if(!_0x347f24['body'][_0x760c('0xc8')]){throw new Error(_0x760c('0xc9'));}if(!_0x347f24['body'][_0x760c('0xca')]){throw new Error('No\x20association\x20values\x20specified!');}if(!_0x347f24[_0x760c('0x8c')][_0x760c('0xcb')]){throw new Error(_0x760c('0xcc'));}var _0x40f534=_0x347f24[_0x760c('0x8c')][_0x760c('0xc8')][_0x760c('0x3d')](',');var _0x4ebf67=_0x347f24[_0x760c('0x8c')][_0x760c('0xca')][_0x760c('0x3d')](',');if(!_0x40f534[_0x760c('0x57')]||!_0x4ebf67[_0x760c('0x57')]||_0x40f534[_0x760c('0x57')]!==_0x4ebf67[_0x760c('0x57')]){throw new Error('Incorrect\x20binding\x20parameters\x20passed!');}_0x347f24[_0x760c('0x8c')][_0x760c('0x27')]=_[_0x760c('0xcd')](_0x40f534,_0x4ebf67);if(!_0x347f24['body'][_0x760c('0x27')][_0x760c('0xb8')]){throw new Error(_0x760c('0xce'));}if(!_0x347f24['body'][_0x760c('0x27')]['firstName']){throw new Error(_0x760c('0xcf'));}var _0x50e3cc=path['join'](config['root'],_0x760c('0xd0'),_0x347f24[_0x760c('0xd1')]['filename']);fs[_0x760c('0xd2')](_0x50e3cc,parseInt(_0x760c('0xd3'),0x8));var _0x861fb7=require('child_process')[_0x760c('0xd4')](path['join'](__dirname,_0x760c('0xd5')),[_0x50e3cc,_0x347f24[_0x760c('0x8c')][_0x760c('0xc8')],_0x347f24[_0x760c('0x8c')][_0x760c('0xca')],_0x347f24['body'][_0x760c('0x51')],_0x347f24[_0x760c('0x8c')][_0x760c('0xd6')],_0x347f24[_0x760c('0x8c')]['duplicates'],_0x347f24['body'][_0x760c('0xcb')]]);return _0x110155[_0x760c('0xe')](0xc8)['json']({'message':_0x760c('0xd7'),'pid':_0x861fb7[_0x760c('0xd8')]});}catch(_0x438ca8){return _0x110155['status'](0x1f4)[_0x760c('0x1a')](_0x438ca8);}};exports[_0x760c('0xd9')]=function(_0x132332,_0x8d662d){var _0x12fc03=fs[_0x760c('0xda')](_0x132332[_0x760c('0xd1')][_0x760c('0x2')]);Papa[_0x760c('0xdb')](_0x12fc03,{'header':!![],'skipEmptyLines':!![],'preview':0x1,'complete':function(_0x4db82a){return _0x8d662d['status'](0xc8)[_0x760c('0xf')]({'file':_0x132332[_0x760c('0xd1')],'fields':_0x4db82a['meta'][_0x760c('0x27')]});}});};exports[_0x760c('0xdc')]=function(_0x538393,_0x5b8306){return db[_0x760c('0x41')][_0x760c('0x87')]({'raw':!![],'attributes':['id'],'where':{'role':_0x760c('0x6c')}})['then'](function(_0xc6c939){var _0x3a50f7=![];if(!_0x538393[_0x760c('0x8c')]['ListId']){throw new Error(_0x760c('0xc7'));}if(!_0x538393[_0x760c('0x8c')][_0x760c('0xdd')][_0x760c('0xb8')]){throw new Error('No\x20phone\x20column\x20specified');}if(!_0x538393[_0x760c('0x8c')][_0x760c('0xdd')]['firstName']){throw new Error('No\x20firstName\x20column\x20specified');}if(!_0x538393[_0x760c('0x8c')][_0x760c('0xcb')]){throw new Error(_0x760c('0xcc'));}var _0x4725=require(_0x760c('0xde'))['fork'](path['join'](__dirname,_0x760c('0xdf')),[_0x538393[_0x760c('0x81')]['id'],JSON[_0x760c('0xe0')](_0x538393[_0x760c('0x8c')]),JSON['stringify'](_0xc6c939)]);_0x4725['on'](_0x760c('0xe1'),function(){_0x3a50f7=!![];return _0x5b8306[_0x760c('0xe')](0xc8)['json']({'message':_0x760c('0xe2'),'pid':_0x4725[_0x760c('0xd8')]});});_0x4725['on']('exit',function(_0x6a8318){if(_0x6a8318&&!_0x3a50f7){return _0x5b8306[_0x760c('0xe')](0x1f4)['json']({'message':_0x760c('0xe3'),'pid':_0x4725[_0x760c('0xd8')]});}});})[_0x760c('0x82')](handleError(_0x5b8306,null));};exports[_0x760c('0xe4')]=function(_0x3611cf,_0x6b6074){var _0x22b2d3=[_0x760c('0xe5'),_0x760c('0xe6'),_0x760c('0xe7'),_0x760c('0xe8'),_0x760c('0xe9'),_0x760c('0xea'),'voice'];var _0x2f0ba5={'offset':0x0,'order':qs[_0x760c('0x2a')](_0x760c('0xeb'))},_0x184231={'count':0x0,'rows':[]};Promise[_0x760c('0x69')]()[_0x760c('0x15')](function(){if(_0x3611cf['query']['channel']){if(!_[_0x760c('0xec')](_0x22b2d3,_0x3611cf['query'][_0x760c('0xed')][_0x760c('0xee')]())){throw new Error(_0x760c('0xef'));}_0x22b2d3=[_0x3611cf[_0x760c('0x24')][_0x760c('0xed')][_0x760c('0xee')]()];}if(_0x3611cf[_0x760c('0x24')][_0x760c('0xf0')]){try{var _0x4a7c32=JSON[_0x760c('0xdb')](_0x3611cf['query'][_0x760c('0xf0')]);if(!moment(_0x4a7c32[_0x760c('0x8d')])[_0x760c('0xf1')]()){throw new Error(_0x760c('0xf2'));}if(!moment(_0x4a7c32['to'])['isValid']()){throw new Error(_0x760c('0xf3'));}}catch(_0x596357){throw new Error(_0x760c('0xf4'));}}if(!_0x3611cf[_0x760c('0x24')][_0x760c('0x4d')](_0x760c('0x28'))){_0x2f0ba5[_0x760c('0x12')]=qs[_0x760c('0x12')](_0x3611cf[_0x760c('0x24')][_0x760c('0x12')]||0xa);_0x2f0ba5[_0x760c('0x10')]=qs['offset'](_0x3611cf[_0x760c('0x24')][_0x760c('0x10')]);}var _0xd3da67=_0x22b2d3[_0x760c('0x4c')](function(_0x41f81c){if(_0x41f81c===_0x760c('0xf5')){var _0x428977={'attributes':['id',_0x760c('0xf6'),_0x760c('0x48'),_0x760c('0xf7'),_0x760c('0xf8'),'callerid',_0x760c('0xf9'),'endtime',_0x760c('0xfa'),'note',_0x760c('0xfb'),_0x760c('0xfc'),_0x760c('0xfd'),_0x760c('0xfe'),_0x760c('0xff')],'where':{'ContactId':_0x3611cf[_0x760c('0x81')]['id']},'include':[{'model':db[_0x760c('0x41')],'as':_0x760c('0x41'),'attributes':['id','name',_0x760c('0x100'),'alias']}],'order':[[_0x760c('0xfb'),_0x760c('0x65')]]};if(_0x3611cf[_0x760c('0x24')][_0x760c('0xf0')]){_0x428977[_0x760c('0x35')][_0x760c('0xfb')]={'$gte':_0x4a7c32['from'],'$lte':_0x4a7c32['to']};}return db[_0x760c('0xa2')][_0x760c('0x101')](_0x428977)[_0x760c('0x15')](function(_0x391bfa){_0x184231[_0x760c('0x13')]+=_0x391bfa[_0x760c('0x13')];return _[_0x760c('0x4c')](_0x391bfa[_0x760c('0x7f')],function(_0x981178){var _0x2d5a3b=_0x981178['get']({'plain':!![]});_0x2d5a3b['channel']=_0x41f81c;if(_0x2d5a3b['User']){_0x2d5a3b[_0x760c('0x41')]={'id':_0x2d5a3b['User']['id'],'name':_0x2d5a3b[_0x760c('0x41')][_0x760c('0x19')],'fullname':_0x2d5a3b[_0x760c('0x41')][_0x760c('0x100')],'alias':_0x2d5a3b['User'][_0x760c('0x89')]};}return _0x2d5a3b;});});}else{var _0x2cf927=_[_0x760c('0x102')](_0x41f81c)+(_0x41f81c===_0x760c('0xe6')?_0x760c('0x103'):'Account');var _0x261142={'attributes':['id',_0x760c('0x104'),_0x760c('0x105'),_0x760c('0xfb'),_0x760c('0x106'),_0x760c('0x107'),'secondDisposition',_0x760c('0x108'),'UserId',_0x2cf927+'Id'],'where':{'ContactId':_0x3611cf['params']['id']},'include':[{'model':db[_0x2cf927],'as':_0x760c('0x109'),'attributes':['id',_0x760c('0x19'),_0x760c('0x10a')]},{'model':db[_0x760c('0x41')],'as':_0x760c('0x10b'),'attributes':['id',_0x760c('0x19'),'fullname']},{'model':db['Tag'],'as':_0x760c('0x7e'),'attributes':['id',_0x760c('0x19'),_0x760c('0x2d')],'through':{'attributes':[]}}],'order':[[_0x760c('0xfb'),_0x760c('0x65')]]};if(_0x3611cf[_0x760c('0x24')][_0x760c('0xf0')]){_0x261142[_0x760c('0x35')][_0x760c('0xfb')]={'$gte':_0x4a7c32[_0x760c('0x8d')],'$lte':_0x4a7c32['to']};}switch(_0x41f81c){case _0x760c('0xe6'):_0x261142['attributes'][_0x760c('0x1e')]('browserName',_0x760c('0x10c'),_0x760c('0x10d'),_0x760c('0x10e'),'osName','ratingMessage',_0x760c('0x10f'),'ratingValue',_0x760c('0x110'));break;case _0x760c('0xe5'):_0x261142['attributes']['push'](_0x760c('0x111'),_0x760c('0x112'));break;case _0x760c('0xe8'):_0x261142[_0x760c('0x25')]['push'](_0x760c('0x113'),'threadId');break;}return db[_[_0x760c('0x102')](_0x41f81c)+_0x760c('0x114')][_0x760c('0x101')](_0x261142)[_0x760c('0x15')](function(_0xc3edb){_0x184231[_0x760c('0x13')]+=_0xc3edb[_0x760c('0x13')];return _[_0x760c('0x4c')](_0xc3edb['rows'],function(_0x3a6f34){var _0xa272b3=_0x3a6f34[_0x760c('0x8e')]({'plain':!![]});_0xa272b3[_0x760c('0xed')]=_0x41f81c;if(_0xa272b3[_0x760c('0x10b')]){_0xa272b3[_0x760c('0x10b')]={'id':_0xa272b3[_0x760c('0x10b')]['id'],'name':_0xa272b3[_0x760c('0x10b')][_0x760c('0x19')],'fullname':_0xa272b3[_0x760c('0x10b')][_0x760c('0x100')]};}return _0xa272b3;});});}});return Promise[_0x760c('0x22')](_0xd3da67);})[_0x760c('0x15')](function(_0x474f83){return _(_0x474f83)[_0x760c('0x115')]()[_0x760c('0x116')](_0x760c('0xfb'))[_0x760c('0x117')]()['value']();})['then'](function(_0x5432e6){_0x184231[_0x760c('0x7f')]=_0x2f0ba5[_0x760c('0x12')]?_0x5432e6[_0x760c('0x118')](_0x2f0ba5['offset'],_0x2f0ba5['offset']+_0x2f0ba5[_0x760c('0x12')]):_0x5432e6;return _0x184231;})['then'](respondWithFilteredResult(_0x6b6074,_0x2f0ba5))[_0x760c('0x82')](handleError(_0x6b6074,null));};
\ No newline at end of file
+var _0x1f77=['../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','sendStatus','status','end','json','limit','undefined','count','offset','set','apply','reject','save','update','then','error','stack','name','send','index','CmContact','describe','keys','length','startsWith','cf_','push','CmCustomField','findOne','trimStart','all','fieldType','type','model','query','intersection','attributes','fields','hasOwnProperty','sort','where','filters','pick','select','field','color','from','tools_tags','cm_contacts','left_join','cm_user_has_contacts','uc.CmContactId\x20=\x20c.id','cm_contact_has_tags','ct.CmContactId\x20=\x20c.id','c.deletedAt\x20IS\x20NULL','expr','search','parseSearch','sqlOperator','conditions','find','Tag','value','map','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','User','and','dateOfBirth','datetime','castTo','DATE','text','start','filter','Contact','ListId','c.ListId\x20IN\x20?','CONCAT_WS(\x27\x20\x27,\x20c.firstName,\x20c.lastName,\x20c.email)\x20LIKE\x20?','\x20=\x20?','isArray','tag','replace','split','isNumeric','c.phone\x20LIKE\x20?','c.mobile\x20LIKE\x20?','c.fax\x20LIKE\x20?','isEmail','c.email\x20LIKE\x20?','c.firstName\x20LIKE\x20?','c.lastName\x20LIKE\x20?','c.id','Sequelize','SELECT','clone','order','forEach','DESC','isEmpty','having','t.id\x20IN\x20?','resolve','user','role','agent','some','getLists','c.ListId\x20IS\x20NULL','sequelize','toString','keyBy','c.firstName','c.lastName','c.phone','c.fax','c.ListId','c.createdAt','c.deletedAt','c.CompanyId','GROUP_CONCAT(DISTINCT\x20t.id)','TagIds','Tags','rows','catch','destroy','params','tags','columnName','displayName','custom','merge','body','findAll','get','mergeWith','join','info','CmHopper','CmHopperBlack','create','ChatInteraction','ChatMessage','MailInteraction','SmsInteraction','SmsMessage','FaxInteraction','FaxMessage','OpenchannelInteraction','CmHopperFinal','CmHopperHistory','ReportAgentPreview','FaxQueueReport','MailQueueReport','OpenchannelQueueReport','SmsQueueReport','JscriptySessionReport','WhatsappMessage','WhatsappQueueReport','each','duplicates','$or','findOrCreate','show','$and','omit','format','cf_%d','pickBy','setFields','values','phone','getTags','rawAttributes','options','setTags','ids','nolimit','includeAll','include','ContactId','getHopperFinals','getJscriptySessions','No\x20ListId\x20specified','binding_keys','No\x20association\x20keys\x20specified!','binding_values','No\x20association\x20values\x20specified!','Unable\x20to\x20synchronize\x20socket,\x20no\x20timestamp\x20passed','Incorrect\x20binding\x20parameters\x20passed!','zipObject','firstName','No\x20firstName\x20column\x20specified','root','server/files/tmp','filename','chmodSync','0777','child_process','../../components/import/cm/csv','CompanyId','File\x20uploaded\x20correctly!','upload','createReadStream','file','parse','meta','binding','No\x20phone\x20column\x20specified','socket_timestamp','fork','../../components/import/cm/csv2','stringify','pid','exit','error\x20child\x20process','getJourney','mail','chat','sms','openchannel','-createdAt','channel','includes','toLowerCase','Invalid\x20channel','range','isValid','Invalid\x20date\x20for\x20range\x20from\x20filter','Invalid\x20createdAt\x20filter','voice','destination','duration','note','createdAt','userSecondDisposition','userThirdDisposition','alias','VoiceCallReport','findAndCountAll','fullname','startCase','Website','Account','closedAt','disposition','secondDisposition','thirdDisposition','key','Owner','browserName','customerIp','customerPort','deviceModel','osName','ratingMessage','ratingType','ratingValue','Interaction','flatten','rimraf','zip-dir','fast-json-patch','bluebird','mustache','util','path','sox','to-csv','lodash','jsforce','desk.js','papaparse','ioredis','../../components/auth/service'];(function(_0x56fa66,_0x574504){var _0x1ba609=function(_0x22a11d){while(--_0x22a11d){_0x56fa66['push'](_0x56fa66['shift']());}};_0x1ba609(++_0x574504);}(_0x1f77,0x10d));var _0x71f7=function(_0x11cbf6,_0x161332){_0x11cbf6=_0x11cbf6-0x0;var _0x504fd2=_0x1f77[_0x11cbf6];return _0x504fd2;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x71f7('0x0'));var zipdir=require(_0x71f7('0x1'));var jsonpatch=require(_0x71f7('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x71f7('0x3'));var Mustache=require(_0x71f7('0x4'));var util=require(_0x71f7('0x5'));var path=require(_0x71f7('0x6'));var sox=require(_0x71f7('0x7'));var csv=require(_0x71f7('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x71f7('0x9'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x71f7('0xa'));var deskjs=require(_0x71f7('0xb'));var toCsv=require(_0x71f7('0x8'));var querystring=require('querystring');var Papa=require(_0x71f7('0xc'));var Redis=require(_0x71f7('0xd'));var authService=require(_0x71f7('0xe'));var qs=require(_0x71f7('0xf'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x71f7('0x10'));var logger=require('../../config/logger')(_0x71f7('0x11'));var utils=require(_0x71f7('0x12'));var config=require(_0x71f7('0x13'));var licenseUtil=require(_0x71f7('0x14'));var db=require(_0x71f7('0x15'))['db'];config[_0x71f7('0x16')]=_[_0x71f7('0x17')](config[_0x71f7('0x16')],{'host':_0x71f7('0x18'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x71f7('0x16')]));require('./cmContact.socket')['register'](socket);function respondWithStatusCode(_0x6636bd,_0x48b4cb){_0x48b4cb=_0x48b4cb||0xcc;return function(_0x299f3c){if(_0x299f3c){return _0x6636bd[_0x71f7('0x19')](_0x48b4cb);}return _0x6636bd[_0x71f7('0x1a')](_0x48b4cb)[_0x71f7('0x1b')]();};}function respondWithResult(_0x396cf8,_0x30ea97){_0x30ea97=_0x30ea97||0xc8;return function(_0x17ef99){if(_0x17ef99){return _0x396cf8[_0x71f7('0x1a')](_0x30ea97)[_0x71f7('0x1c')](_0x17ef99);}};}function respondWithFilteredResult(_0x239cdd,_0x1a3e84){return function(_0xf2af6){if(_0xf2af6){var _0x4e1104=typeof _0x1a3e84['offset']==='undefined'&&typeof _0x1a3e84[_0x71f7('0x1d')]===_0x71f7('0x1e');var _0x1ac2d1=_0xf2af6[_0x71f7('0x1f')];var _0x1ca8a2=_0x4e1104?0x0:_0x1a3e84[_0x71f7('0x20')];var _0x150e17=_0x4e1104?_0xf2af6[_0x71f7('0x1f')]:_0x1a3e84['offset']+_0x1a3e84['limit'];var _0x2d38fa;if(_0x150e17>=_0x1ac2d1){_0x150e17=_0x1ac2d1;_0x2d38fa=0xc8;}else{_0x2d38fa=0xce;}_0x239cdd[_0x71f7('0x1a')](_0x2d38fa);return _0x239cdd[_0x71f7('0x21')]('Content-Range',_0x1ca8a2+'-'+_0x150e17+'/'+_0x1ac2d1)[_0x71f7('0x1c')](_0xf2af6);}return null;};}function patchUpdates(_0x43f12b){return function(_0x4db1a1){try{jsonpatch[_0x71f7('0x22')](_0x4db1a1,_0x43f12b,!![]);}catch(_0x4b8a85){return BPromise[_0x71f7('0x23')](_0x4b8a85);}return _0x4db1a1[_0x71f7('0x24')]();};}function saveUpdates(_0x464a34,_0x4d8c6d){return function(_0x44830f){if(_0x44830f){return _0x44830f[_0x71f7('0x25')](_0x464a34)[_0x71f7('0x26')](function(_0x546894){return _0x546894;});}return null;};}function removeEntity(_0xeb289b,_0x11ecec){return function(_0x218790){if(_0x218790){return _0x218790['destroy']()[_0x71f7('0x26')](function(){_0xeb289b[_0x71f7('0x1a')](0xcc)[_0x71f7('0x1b')]();});}};}function handleEntityNotFound(_0x1b5358,_0x2fb854){return function(_0x4f3660){if(!_0x4f3660){_0x1b5358[_0x71f7('0x19')](0x194);}return _0x4f3660;};}function handleError(_0x1d89f9,_0x3456eb){_0x3456eb=_0x3456eb||0x1f4;return function(_0x496a08){logger[_0x71f7('0x27')](_0x496a08[_0x71f7('0x28')]);if(_0x496a08[_0x71f7('0x29')]){delete _0x496a08['name'];}_0x1d89f9['status'](_0x3456eb)[_0x71f7('0x2a')](_0x496a08);};}exports[_0x71f7('0x2b')]=function(_0x5bcba7,_0x249905){var _0x5a5b6e={},_0x192341={},_0x45a716={'count':0x0,'rows':[]};return db[_0x71f7('0x2c')][_0x71f7('0x2d')]()['then'](function(_0x502fa9){var _0x510e8a=[];for(var _0x1ee965=0x0;_0x1ee965<Object[_0x71f7('0x2e')](_0x502fa9)[_0x71f7('0x2f')];_0x1ee965++){var _0xb76fd=Object['keys'](_0x502fa9)[_0x1ee965];if(_[_0x71f7('0x30')](_0xb76fd,_0x71f7('0x31'))){_0x510e8a[_0x71f7('0x32')](db[_0x71f7('0x33')][_0x71f7('0x34')]({'where':{'id':_[_0x71f7('0x35')](_0xb76fd,_0x71f7('0x31'))},'raw':!![]}));}}return BPromise[_0x71f7('0x36')](_0x510e8a)[_0x71f7('0x26')](function(_0x47057c){for(var _0x15773f=0x0;_0x15773f<_0x47057c['length'];_0x15773f++){if(_0x47057c[_0x15773f]){var _0x586c53=_0x71f7('0x31')+_0x47057c[_0x15773f]['id'];var _0x4486c5=_0x502fa9[_0x586c53];_0x4486c5[_0x71f7('0x37')]=_0x47057c[_0x15773f][_0x71f7('0x38')];}}return _0x502fa9;});})[_0x71f7('0x26')](function(_0x4b1f8d){_0x192341[_0x71f7('0x39')]=_['keys'](_0x4b1f8d);_0x192341[_0x71f7('0x3a')]=_[_0x71f7('0x2e')](_0x5bcba7[_0x71f7('0x3a')]);_0x192341['filters']=_[_0x71f7('0x3b')](_0x192341[_0x71f7('0x39')],_0x192341[_0x71f7('0x3a')]);_0x5a5b6e[_0x71f7('0x3c')]=_[_0x71f7('0x3b')](_0x192341[_0x71f7('0x39')],qs[_0x71f7('0x3d')](_0x5bcba7[_0x71f7('0x3a')][_0x71f7('0x3d')]));_0x5a5b6e[_0x71f7('0x3c')]=_0x5a5b6e[_0x71f7('0x3c')][_0x71f7('0x2f')]?_0x5a5b6e[_0x71f7('0x3c')]:_0x192341[_0x71f7('0x39')];if(!_0x5bcba7[_0x71f7('0x3a')][_0x71f7('0x3e')]('nolimit')){_0x5a5b6e[_0x71f7('0x1d')]=qs['limit'](_0x5bcba7['query']['limit']);_0x5a5b6e[_0x71f7('0x20')]=qs[_0x71f7('0x20')](_0x5bcba7[_0x71f7('0x3a')]['offset']);}_0x5a5b6e['order']=qs[_0x71f7('0x3f')](_0x5bcba7['query']['sort']);_0x5a5b6e[_0x71f7('0x40')]=qs[_0x71f7('0x41')](_[_0x71f7('0x42')](_0x5bcba7[_0x71f7('0x3a')],_0x192341['filters']),_0x4b1f8d);var _0x1cd426=[];var _0x2d37c8=squel[_0x71f7('0x43')]()['field']('id')[_0x71f7('0x44')](_0x71f7('0x29'))[_0x71f7('0x44')](_0x71f7('0x45'))[_0x71f7('0x46')](_0x71f7('0x47'));var _0xe25555=squel['select']()[_0x71f7('0x46')](_0x71f7('0x48'),'c')[_0x71f7('0x49')](_0x71f7('0x4a'),'uc',_0x71f7('0x4b'))['left_join'](_0x71f7('0x4c'),'ct',_0x71f7('0x4d'))[_0x71f7('0x49')]('tools_tags','t','t.id\x20=\x20ct.TagId')[_0x71f7('0x40')](_0x71f7('0x4e'));var _0x161e49=squel[_0x71f7('0x4f')]();var _0x5ec044=[];var _0x3c1e84=squel[_0x71f7('0x4f')]();var _0xfc3fca;if(_0x5bcba7[_0x71f7('0x3a')][_0x71f7('0x50')]){_0xfc3fca=as[_0x71f7('0x51')](_0x5bcba7[_0x71f7('0x3a')][_0x71f7('0x50')]);var _0x46fccc=_0xfc3fca[_0x71f7('0x52')];for(var _0x551002=0x0;_0x551002<_0xfc3fca[_0x71f7('0x53')][_0x71f7('0x2f')];_0x551002++){var _0x542757=_0xfc3fca[_0x71f7('0x53')][_0x551002];var _0x310848='c';var _0x2e418f=_(_0x4b1f8d)[_0x71f7('0x2e')]()[_0x71f7('0x54')](function(_0x257ff3){return _0x257ff3===_0x542757[_0x71f7('0x44')];});if(_0x2e418f)_0x2e418f=_0x4b1f8d[_0x542757[_0x71f7('0x44')]];if(!_0x2e418f){if(_0x542757[_0x71f7('0x44')]===_0x71f7('0x55')){var _0x2c9ee0=_0x542757[_0x71f7('0x56')]['split'](',')[_0x71f7('0x57')](function(_0x20b090){return Number(_0x20b090);});_0x2c9ee0['forEach'](function(_0x4f2bd5){_0x3c1e84['or'](_0x71f7('0x58'),'%,'+_0x4f2bd5+',%');});_0x5ec044=_[_0x71f7('0x59')](_0x5ec044,_0x2c9ee0);}else if(_0x542757['field']===_0x71f7('0x5a')){_0x161e49[_0x71f7('0x5b')]('uc.UserId\x20=\x20?',_0x542757[_0x71f7('0x56')]);}}else{if(_0x542757[_0x71f7('0x44')]===_0x71f7('0x5c')||_0x2e418f[_0x71f7('0x37')]===_0x71f7('0x5d'))_0x542757[_0x71f7('0x5e')]=_0x71f7('0x5f');var _0x3c6c84=as['buildExpression'](_0x310848,_0x2e418f['type'],_0x542757);_0x161e49[_0x46fccc](_0x3c6c84[_0x71f7('0x60')],_0x3c6c84[_0x71f7('0x56')][_0x71f7('0x61')],_0x3c6c84[_0x71f7('0x56')][_0x71f7('0x1b')]);}}}else{var _0x334e66=_(Object['keys'](_0x5bcba7[_0x71f7('0x3a')]))['map'](function(_0x74fd7d){return _0x4b1f8d[_0x71f7('0x3e')](_0x74fd7d)?_0x74fd7d:undefined;})[_0x71f7('0x62')](function(_0x1df3c2){return!_['isNil'](_0x1df3c2);})[_0x71f7('0x56')]();if(_0x5bcba7[_0x71f7('0x3a')][_0x71f7('0x63')])_0x334e66['push'](_0x71f7('0x63'));if(!_['isEmpty'](_0x334e66)){_0x334e66['forEach'](function(_0x4dfe37){if(_0x4dfe37===_0x71f7('0x64')){_0xe25555['where'](_0x71f7('0x65'),[]['concat'](_0x5bcba7[_0x71f7('0x3a')][_0x4dfe37]));}else if(_0x4dfe37===_0x71f7('0x63')){var _0x19ade6='%'+_0x5bcba7[_0x71f7('0x3a')][_0x4dfe37]+'%';_0xe25555[_0x71f7('0x40')](_0x71f7('0x66'),_0x19ade6);}else{_0xe25555[_0x71f7('0x40')]('c.'+_0x4dfe37+_0x71f7('0x67'),_0x5bcba7[_0x71f7('0x3a')][_0x4dfe37]);}});}if(_0x5bcba7[_0x71f7('0x3a')]['tag']){_0x5ec044=_[_0x71f7('0x68')](_0x5bcba7[_0x71f7('0x3a')][_0x71f7('0x69')])?_0x5bcba7[_0x71f7('0x3a')][_0x71f7('0x69')]:new Array(_0x5bcba7['query'][_0x71f7('0x69')]);_0x5ec044['forEach'](function(_0x485a24){_0x3c1e84['or'](_0x71f7('0x58'),'%,'+_0x485a24+',%');});}if(_0x5bcba7[_0x71f7('0x3a')][_0x71f7('0x62')]){var _0xfd41f1=_0x5bcba7[_0x71f7('0x3a')][_0x71f7('0x62')][_0x71f7('0x6a')]('\x5c','\x5c\x5c')['replace'](/'/g,'\x27\x27');if(_0xfd41f1[_0x71f7('0x6b')]('\x20')[_0x71f7('0x2f')]>0x1){_0x161e49['or']('MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs['getFullTextValue'](_0xfd41f1),null);}else{if(qs[_0x71f7('0x6c')](_0xfd41f1)){_0x161e49['or']('c.id\x20LIKE\x20?',_0xfd41f1+'%');_0x161e49['or'](_0x71f7('0x6d'),_0xfd41f1+'%');_0x161e49['or'](_0x71f7('0x6e'),_0xfd41f1+'%');_0x161e49['or'](_0x71f7('0x6f'),_0xfd41f1+'%');}else if(qs[_0x71f7('0x70')](_0xfd41f1)){_0x161e49['or'](_0x71f7('0x71'),_0xfd41f1+'%');}else{_0x161e49['or'](_0x71f7('0x72'),'%'+_0xfd41f1+'%');_0x161e49['or'](_0x71f7('0x73'),'%'+_0xfd41f1+'%');_0x161e49['or']('c.email\x20LIKE\x20?','%'+_0xfd41f1+'%');}}}}_0xe25555[_0x71f7('0x40')](_0x161e49);_0xe25555['group'](_0x71f7('0x74'));var _0x4f494d={'type':db[_0x71f7('0x75')]['QueryTypes'][_0x71f7('0x76')],'raw':!![]};var _0x559a83=_0xe25555[_0x71f7('0x77')]()[_0x71f7('0x44')](_0x71f7('0x74'));if(_0x5a5b6e['order']){_0x5a5b6e[_0x71f7('0x78')][_0x71f7('0x79')](function(_0x18ac8d){_0xe25555[_0x71f7('0x78')]('c.'+_0x18ac8d[0x0],_0x18ac8d[0x1]===_0x71f7('0x7a')?![]:!![]);});}if(!_[_0x71f7('0x7b')](_0x5ec044)){_0xe25555[_0x71f7('0x7c')](_0x3c1e84);_0x559a83[_0x71f7('0x40')](_0x71f7('0x7d'),_0x5ec044);}BPromise[_0x71f7('0x7e')]()[_0x71f7('0x26')](function(){if(!_0xfc3fca)return;if(_0x5bcba7[_0x71f7('0x7f')][_0x71f7('0x80')]!==_0x71f7('0x81'))return;if(!_[_0x71f7('0x82')](_0xfc3fca[_0x71f7('0x53')],[_0x71f7('0x44'),_0x71f7('0x5a')])){return _0x5bcba7[_0x71f7('0x7f')][_0x71f7('0x83')]({'attributes':['id'],'raw':!![]})[_0x71f7('0x26')](function(_0x3682b8){if(_[_0x71f7('0x7b')](_0x3682b8)){_0x559a83[_0x71f7('0x40')](_0x71f7('0x84'));_0xe25555['where']('c.ListId\x20IS\x20NULL');}else{_0x559a83[_0x71f7('0x40')](_0x71f7('0x65'),_[_0x71f7('0x57')](_0x3682b8,'id'));_0xe25555[_0x71f7('0x40')](_0x71f7('0x65'),_['map'](_0x3682b8,'id'));}});}})[_0x71f7('0x26')](function(){if(_0x5bcba7[_0x71f7('0x7f')][_0x71f7('0x80')]===_0x71f7('0x81')&&!_0xfc3fca&&!_0x5bcba7[_0x71f7('0x3a')][_0x71f7('0x64')])return[];return db[_0x71f7('0x85')][_0x71f7('0x3a')](_0x559a83[_0x71f7('0x86')](),_0x4f494d);})['then'](function(_0x471c3d){_0x45a716[_0x71f7('0x1f')]=_0x471c3d[_0x71f7('0x2f')];if(_0x45a716[_0x71f7('0x1f')]===0x0)return[];return db[_0x71f7('0x85')][_0x71f7('0x3a')](_0x2d37c8[_0x71f7('0x86')](),_0x4f494d)[_0x71f7('0x26')](function(_0xa86ab2){_0x1cd426=_[_0x71f7('0x87')](_0xa86ab2,'id');_0x4f494d=_['merge'](_0x4f494d,{'model':db[_0x71f7('0x2c')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x5bcba7[_0x71f7('0x3a')][_0x71f7('0x3d')]){_0x5a5b6e['attributes'][_0x71f7('0x79')](function(_0x59774d){_0xe25555[_0x71f7('0x44')]('c.'+_0x59774d);});}else{_0xe25555[_0x71f7('0x44')](_0x71f7('0x74'));_0xe25555[_0x71f7('0x44')](_0x71f7('0x88'));_0xe25555['field'](_0x71f7('0x89'));_0xe25555['field'](_0x71f7('0x8a'));_0xe25555['field']('c.mobile');_0xe25555['field'](_0x71f7('0x8b'));_0xe25555[_0x71f7('0x44')]('c.email');_0xe25555[_0x71f7('0x44')](_0x71f7('0x8c'));_0xe25555['field'](_0x71f7('0x8d'));_0xe25555['field'](_0x71f7('0x8e'));_0xe25555[_0x71f7('0x44')](_0x71f7('0x8f'));_0xe25555[_0x71f7('0x44')](_0x71f7('0x90'),_0x71f7('0x91'));}if(_0x5a5b6e[_0x71f7('0x1d')])_0xe25555[_0x71f7('0x1d')](_0x5a5b6e['limit']);if(_0x5a5b6e['offset'])_0xe25555['offset'](_0x5a5b6e[_0x71f7('0x20')]);return db[_0x71f7('0x85')][_0x71f7('0x3a')](_0xe25555[_0x71f7('0x86')](),_0x4f494d);});})[_0x71f7('0x26')](function(_0x366401){_0x366401[_0x71f7('0x79')](function(_0x4332fb){if(_0x4332fb[_0x71f7('0x91')]){_0x4332fb['Tags']=[];_0x4332fb[_0x71f7('0x91')]['split'](',')[_0x71f7('0x79')](function(_0x3eda68){_0x4332fb[_0x71f7('0x92')][_0x71f7('0x32')](_0x1cd426[_0x3eda68]);});}delete _0x4332fb[_0x71f7('0x91')];});_0x45a716[_0x71f7('0x93')]=_0x366401;return _0x45a716;})[_0x71f7('0x26')](respondWithFilteredResult(_0x249905,_0x5a5b6e));})[_0x71f7('0x94')](handleError(_0x249905,null));};exports[_0x71f7('0x95')]=function(_0x2589d8,_0x324bbf){return db[_0x71f7('0x2c')][_0x71f7('0x54')]({'where':{'id':_0x2589d8[_0x71f7('0x96')]['id']}})[_0x71f7('0x26')](handleEntityNotFound(_0x324bbf,null))['then'](removeEntity(_0x324bbf,null))['catch'](handleError(_0x324bbf,null));};exports[_0x71f7('0x2d')]=function(_0x200124,_0x57a5eb){return db[_0x71f7('0x2c')]['describe']()[_0x71f7('0x26')](function(_0x53440d){delete _0x53440d[_0x71f7('0x97')];for(var _0x1069c2=0x0;_0x1069c2<Object[_0x71f7('0x2e')](_0x53440d)[_0x71f7('0x2f')];_0x1069c2++){var _0x3e11aa=Object[_0x71f7('0x2e')](_0x53440d)[_0x1069c2];if(!_[_0x71f7('0x30')](_0x3e11aa,_0x71f7('0x31'))){_0x53440d[_0x3e11aa][_0x71f7('0x98')]=_0x3e11aa;_0x53440d[_0x3e11aa][_0x71f7('0x99')]=_0x3e11aa;}}return _0x53440d;})[_0x71f7('0x26')](function(_0x35ec8d){var _0x544b25={'where':{'$or':[{'ListId':_0x200124[_0x71f7('0x3a')]['id']},{'ListId':null}]},'raw':!![]};return db[_0x71f7('0x33')]['findAll'](_0x544b25)['then'](function(_0x254b08){for(var _0x31bfe3=0x0;_0x31bfe3<_0x254b08[_0x71f7('0x2f')];_0x31bfe3++){var _0x125605=_0x71f7('0x31')+_0x254b08[_0x31bfe3]['id'];_0x35ec8d[_0x125605][_0x71f7('0x98')]=_0x125605;_0x35ec8d[_0x125605][_0x71f7('0x99')]=_0x254b08[_0x31bfe3]['alias'];_0x35ec8d[_0x125605][_0x71f7('0x9a')]={'type':_0x254b08[_0x31bfe3]['type'],'values':_0x254b08[_0x31bfe3]['values']};}Object[_0x71f7('0x2e')](_0x35ec8d)['forEach'](function(_0x3ec226){if(!_0x35ec8d[_0x3ec226][_0x71f7('0x3e')]('columnName')){delete _0x35ec8d[_0x3ec226];}});return _0x35ec8d;});})[_0x71f7('0x26')](respondWithResult(_0x57a5eb,null))[_0x71f7('0x94')](handleError(_0x57a5eb,null));};exports[_0x71f7('0x9b')]=function(_0x56b88a,_0x4cce93){var _0x554e89;var _0x44cf88;var _0x149540;if(_0x56b88a[_0x71f7('0x9c')]['id']){delete _0x56b88a[_0x71f7('0x9c')]['id'];}return db['CmContact'][_0x71f7('0x9d')]({'where':{'id':[_0x56b88a[_0x71f7('0x9c')]['to'],_0x56b88a['body']['from']]}})[_0x71f7('0x26')](function(_0x4f102b){if(_0x4f102b){if(_0x4f102b[_0x71f7('0x2f')]!==0x2){return null;}_0x4f102b[0x0]=_0x4f102b[0x0]['get']({'plain':!![]});_0x4f102b[0x1]=_0x4f102b[0x1][_0x71f7('0x9e')]({'plain':!![]});delete _0x4f102b[0x0]['id'];delete _0x4f102b[0x1]['id'];return _[_0x71f7('0x9f')](_0x4f102b[0x0],_0x4f102b[0x1],function(_0x3d27a8,_0x46724f){if(Array[_0x71f7('0x68')](_0x46724f)&&!_0x46724f[_0x71f7('0x2f')]){return _0x3d27a8;}else if(!_0x46724f){return _0x3d27a8;}});}})[_0x71f7('0x26')](handleEntityNotFound(_0x4cce93,null))[_0x71f7('0x26')](function(_0x5bc310){if(_0x5bc310){if(_0x5bc310[_0x71f7('0x97')]&&_['isArray'](_0x5bc310[_0x71f7('0x97')])){_0x5bc310[_0x71f7('0x97')]=_0x5bc310[_0x71f7('0x97')][_0x71f7('0xa0')]();}logger[_0x71f7('0xa1')]('[CmContact][merge]\x20to\x20%s\x20from\x20%s',_0x56b88a[_0x71f7('0x9c')]['to'],_0x56b88a[_0x71f7('0x9c')][_0x71f7('0x46')]);return db[_0x71f7('0xa2')]['destroy']({'where':{'ContactId':[_0x56b88a[_0x71f7('0x9c')]['to'],_0x56b88a[_0x71f7('0x9c')][_0x71f7('0x46')]]}})['then'](function(_0x41f9a7){logger[_0x71f7('0xa1')]('[CmContact][merge][destroy][CmHopper],\x20%s',_0x41f9a7);return db[_0x71f7('0xa3')][_0x71f7('0x95')]({'where':{'ContactId':[_0x56b88a['body']['to'],_0x56b88a[_0x71f7('0x9c')][_0x71f7('0x46')]]}})['then'](function(_0x58342a){logger[_0x71f7('0xa1')]('[CmContact][merge][destroy][CmHopperBlack],\x20%s',_0x58342a);return db[_0x71f7('0x2c')][_0x71f7('0xa4')](_0x5bc310);});});}})[_0x71f7('0x26')](function(_0x198bc4){if(_0x198bc4){_0x554e89=_0x198bc4;_0x44cf88={'ContactId':_0x554e89['id']};_0x149540={'where':{'ContactId':[_0x56b88a['body']['to'],_0x56b88a[_0x71f7('0x9c')][_0x71f7('0x46')]]}};return db[_0x71f7('0xa5')][_0x71f7('0x25')](_0x44cf88,_0x149540);}})[_0x71f7('0x26')](function(){if(_0x554e89){return db[_0x71f7('0xa6')][_0x71f7('0x25')](_0x44cf88,_0x149540);}})[_0x71f7('0x26')](function(){if(_0x554e89){return db['ChatOfflineMessage'][_0x71f7('0x25')](_0x44cf88,_0x149540);}})[_0x71f7('0x26')](function(){if(_0x554e89){return db[_0x71f7('0xa7')][_0x71f7('0x25')](_0x44cf88,_0x149540);}})[_0x71f7('0x26')](function(){if(_0x554e89){return db['MailMessage']['update'](_0x44cf88,_0x149540);}})[_0x71f7('0x26')](function(){if(_0x554e89){return db[_0x71f7('0xa7')]['update'](_0x44cf88,_0x149540);}})['then'](function(){if(_0x554e89){return db['MailMessage'][_0x71f7('0x25')](_0x44cf88,_0x149540);}})[_0x71f7('0x26')](function(){if(_0x554e89){return db[_0x71f7('0xa8')][_0x71f7('0x25')](_0x44cf88,_0x149540);}})[_0x71f7('0x26')](function(){if(_0x554e89){return db[_0x71f7('0xa9')][_0x71f7('0x25')](_0x44cf88,_0x149540);}})[_0x71f7('0x26')](function(){if(_0x554e89){return db[_0x71f7('0xaa')]['update'](_0x44cf88,_0x149540);}})[_0x71f7('0x26')](function(){if(_0x554e89){return db[_0x71f7('0xab')][_0x71f7('0x25')](_0x44cf88,_0x149540);}})[_0x71f7('0x26')](function(){if(_0x554e89){return db[_0x71f7('0xac')][_0x71f7('0x25')](_0x44cf88,_0x149540);}})['then'](function(){if(_0x554e89){return db['OpenchannelMessage'][_0x71f7('0x25')](_0x44cf88,_0x149540);}})[_0x71f7('0x26')](function(){if(_0x554e89){return db[_0x71f7('0xad')][_0x71f7('0x25')](_0x44cf88,_0x149540);}})[_0x71f7('0x26')](function(){if(_0x554e89){return db[_0x71f7('0xae')]['update'](_0x44cf88,_0x149540);}})[_0x71f7('0x26')](function(){if(_0x554e89){return db[_0x71f7('0xaf')][_0x71f7('0x25')](_0x44cf88,_0x149540);}})[_0x71f7('0x26')](function(){if(_0x554e89){return db['VoiceCallReport'][_0x71f7('0x25')](_0x44cf88,_0x149540);}})[_0x71f7('0x26')](function(){if(_0x554e89){return db['ChatQueueReport'][_0x71f7('0x25')](_0x44cf88,_0x149540);}})['then'](function(){if(_0x554e89){return db[_0x71f7('0xb0')][_0x71f7('0x25')](_0x44cf88,_0x149540);}})['then'](function(){if(_0x554e89){return db[_0x71f7('0xb1')][_0x71f7('0x25')](_0x44cf88,_0x149540);}})[_0x71f7('0x26')](function(){if(_0x554e89){return db[_0x71f7('0xb2')][_0x71f7('0x25')](_0x44cf88,_0x149540);}})['then'](function(){if(_0x554e89){return db[_0x71f7('0xb3')]['update'](_0x44cf88,_0x149540);}})[_0x71f7('0x26')](function(){if(_0x554e89){return db[_0x71f7('0xb4')][_0x71f7('0x25')](_0x44cf88,_0x149540);}})['then'](function(){if(_0x554e89){return db['WhatsappInteraction'][_0x71f7('0x25')](_0x44cf88,_0x149540);}})[_0x71f7('0x26')](function(){if(_0x554e89){return db[_0x71f7('0xb5')]['update'](_0x44cf88,_0x149540);}})['then'](function(){if(_0x554e89){return db[_0x71f7('0xb6')]['update'](_0x44cf88,_0x149540);}})[_0x71f7('0x26')](function(){if(_0x554e89){return db[_0x71f7('0x2c')]['destroy']({'where':{'id':[_0x56b88a[_0x71f7('0x9c')]['to'],_0x56b88a[_0x71f7('0x9c')]['from']]}});}})['then'](function(){if(_0x554e89){return _0x554e89;}})[_0x71f7('0x26')](respondWithResult(_0x4cce93,null))[_0x71f7('0x94')](handleError(_0x4cce93,null));};exports[_0x71f7('0xa4')]=function(_0x45e198,_0x2c40bf){return db[_0x71f7('0x2c')]['describe']()[_0x71f7('0x26')](function(_0x24739b){if(_0x45e198[_0x71f7('0x9c')][_0x71f7('0x97')]&&_[_0x71f7('0x68')](_0x45e198[_0x71f7('0x9c')]['tags'])){if(_0x45e198['body'][_0x71f7('0x97')][_0x71f7('0x2f')]){_0x45e198[_0x71f7('0x9c')][_0x71f7('0x97')]=_0x45e198[_0x71f7('0x9c')][_0x71f7('0x97')]['join'](';')+';';}else{_0x45e198[_0x71f7('0x9c')][_0x71f7('0x97')]=null;}}else{_0x45e198['body']['tags']=null;}return db['CmContact'][_0x71f7('0xa4')](_0x45e198[_0x71f7('0x9c')],{'fields':_['keys'](_0x24739b),'raw':!![]});})['then'](respondWithResult(_0x2c40bf,0xc9))['catch'](handleError(_0x2c40bf,null));};exports['bulkCreate']=function(_0xfc3cd3,_0x3968f0){var _0x396ea9=[];var _0x17662b=0x0;var _0x423767=0x0;var _0x268cdc=0x0;return db[_0x71f7('0x2c')]['describe']()[_0x71f7('0x26')](function(_0x49dcb8){return BPromise[_0x71f7('0xb7')](_0xfc3cd3[_0x71f7('0x9c')],function(_0x32e386){var _0x5a8ce0={'where':{'$or':[]},'defaults':_0x32e386,'fields':_[_0x71f7('0x2e')](_0x49dcb8),'raw':!![]};if(_0x32e386[_0x71f7('0xb8')]){for(var _0x57e7b1=0x0;_0x57e7b1<_0x32e386[_0x71f7('0xb8')][_0x71f7('0x2f')];_0x57e7b1++){var _0x1fe7a4={};_0x1fe7a4[_0x32e386[_0x71f7('0xb8')][_0x57e7b1]]=_0x32e386[_0x32e386[_0x71f7('0xb8')][_0x57e7b1]];_0x5a8ce0[_0x71f7('0x40')][_0x71f7('0xb9')][_0x71f7('0x32')](_0x1fe7a4);}_0x5a8ce0[_0x71f7('0x40')][_0x71f7('0x64')]=_0x32e386['ListId'];}return db[_0x71f7('0x2c')][_0x71f7('0xba')](_0x5a8ce0)['spread'](function(_0x153e48,_0x533246){if(_0x533246){_0x17662b++;}else{_0x268cdc++;}})[_0x71f7('0x94')](function(_0x50807d){console[_0x71f7('0x27')](_0x50807d);_0x423767++;});});})[_0x71f7('0x26')](function(_0x289fd7){if(_0x289fd7){return{'success':_0x17662b,'failure':_0x423767,'duplicates':_0x268cdc};}})['then'](respondWithResult(_0x3968f0,0xc9))[_0x71f7('0x94')](handleError(_0x3968f0,null));};exports[_0x71f7('0xbb')]=function(_0x5c35c7,_0x2b66ae,_0x275d39){var _0x49b8c8;return db[_0x71f7('0x2c')][_0x71f7('0x2d')]()[_0x71f7('0x26')](function(_0x282904){return db['CmContact'][_0x71f7('0x54')]({'where':{'id':_0x5c35c7['params']['id']},'include':[{'model':db[_0x71f7('0x55')],'as':_0x71f7('0x92'),'attributes':['id',_0x71f7('0x29'),'color'],'required':_0x5c35c7[_0x71f7('0x3a')]['tag']?!![]:![]}],'attributes':_[_0x71f7('0x2e')](_0x282904)});})[_0x71f7('0x26')](function(_0x8508b2){_0x49b8c8=_0x8508b2[_0x71f7('0x9e')]({'plain':!![]});var _0x2053c2={'where':{'$and':[{'ListId':{'$ne':null}}]}};if(_0x8508b2&&_0x8508b2[_0x71f7('0x64')]){if(_0x8508b2[_0x71f7('0x64')]){_0x2053c2[_0x71f7('0x40')][_0x71f7('0xbc')][_0x71f7('0x32')]({'ListId':{'$ne':_0x8508b2[_0x71f7('0x64')]}});}}return db[_0x71f7('0x33')]['findAll'](_0x2053c2);})['then'](function(_0x588f99){return _[_0x71f7('0xbd')](_0x49b8c8,_[_0x71f7('0x57')](_0x588f99,function(_0x4d7d46){return util[_0x71f7('0xbe')](_0x71f7('0xbf'),_0x4d7d46['id']);}));})[_0x71f7('0x26')](handleEntityNotFound(_0x2b66ae,null))['then'](respondWithResult(_0x2b66ae,null))[_0x71f7('0x94')](handleError(_0x2b66ae,null));};exports['update']=function(_0x5102bd,_0x49c66c){var _0xae306f;if(_0x5102bd[_0x71f7('0x9c')]['id']){delete _0x5102bd[_0x71f7('0x9c')]['id'];}return db[_0x71f7('0x2c')]['find']({'where':{'id':_0x5102bd['params']['id']}})['then'](handleEntityNotFound(_0x49c66c,null))[_0x71f7('0x26')](saveUpdates(_0x5102bd[_0x71f7('0x9c')],null))[_0x71f7('0x26')](function(_0x1cf341){_0xae306f=_0x1cf341;var _0x45e628={'where':{'$and':[{'ListId':{'$ne':null}}]}};if(_0x1cf341&&_0x1cf341[_0x71f7('0x64')]){if(_0x1cf341['ListId']){_0x45e628['where'][_0x71f7('0xbc')][_0x71f7('0x32')]({'ListId':{'$ne':_0x1cf341[_0x71f7('0x64')]}});}}return db['CmCustomField'][_0x71f7('0x9d')](_0x45e628);})[_0x71f7('0x26')](function(_0x2c2879){if(_0x2c2879){return _[_0x71f7('0xbd')](_[_0x71f7('0xc0')](_0x5102bd[_0x71f7('0x9c')],function(_0x393412,_0x496468){return _[_0x71f7('0x30')](_0x496468,'cf_');}),_[_0x71f7('0x57')](_0x2c2879,function(_0x544b1d){return util[_0x71f7('0xbe')](_0x71f7('0xbf'),_0x544b1d['id']);}));}})[_0x71f7('0x26')](function(_0x2372c1){if(_0x2372c1&&!_[_0x71f7('0x7b')](_0x2372c1)){var _0x4da872=squel[_0x71f7('0x25')]()['table'](_0x71f7('0x48'))[_0x71f7('0xc1')](_0x2372c1)[_0x71f7('0x40')]('id\x20=\x20?',_0x5102bd['params']['id'])['toParam']();return db[_0x71f7('0x85')][_0x71f7('0x3a')](_0x4da872['text'],{'replacements':_0x4da872[_0x71f7('0xc2')]});}})[_0x71f7('0x26')](function(){if(_0x5102bd['body'][_0x71f7('0xc3')]&&_0xae306f){return db[_0x71f7('0xa2')][_0x71f7('0x25')]({'phone':_0x5102bd[_0x71f7('0x9c')]['phone']},{'where':{'ContactId':_0xae306f['id']}});}})[_0x71f7('0x26')](function(){return _0xae306f;})[_0x71f7('0x26')](respondWithResult(_0x49c66c,null))[_0x71f7('0x94')](handleError(_0x49c66c,null));};exports[_0x71f7('0xc4')]=function(_0xb3f9d7,_0x3b72be,_0x3e4c7b){var _0x57133d={};var _0x114684={};var _0x3fe16d;var _0x1ff5f0;return db[_0x71f7('0x2c')][_0x71f7('0x34')]({'where':{'id':_0xb3f9d7[_0x71f7('0x96')]['id']}})[_0x71f7('0x26')](handleEntityNotFound(_0x3b72be,null))[_0x71f7('0x26')](function(_0x1059a6){if(_0x1059a6){_0x3fe16d=_0x1059a6;_0x114684[_0x71f7('0x39')]=_[_0x71f7('0x2e')](db[_0x71f7('0x55')][_0x71f7('0xc5')]);_0x114684['query']=_['keys'](_0xb3f9d7[_0x71f7('0x3a')]);_0x114684['filters']=_[_0x71f7('0x3b')](_0x114684['model'],_0x114684[_0x71f7('0x3a')]);_0x57133d[_0x71f7('0x3c')]=_[_0x71f7('0x3b')](_0x114684[_0x71f7('0x39')],qs['fields'](_0xb3f9d7['query']['fields']));_0x57133d[_0x71f7('0x3c')]=_0x57133d[_0x71f7('0x3c')][_0x71f7('0x2f')]?_0x57133d[_0x71f7('0x3c')]:_0x114684['model'];_0x57133d[_0x71f7('0x78')]=qs[_0x71f7('0x3f')](_0xb3f9d7['query'][_0x71f7('0x3f')]);_0x57133d['where']=qs[_0x71f7('0x41')](_[_0x71f7('0x42')](_0xb3f9d7['query'],_0x114684[_0x71f7('0x41')]));if(_0xb3f9d7['query'][_0x71f7('0x62')]){_0x57133d['where']=_['merge'](_0x57133d[_0x71f7('0x40')],{'$or':_[_0x71f7('0x57')](_0x57133d[_0x71f7('0x3c')],function(_0x40fd9f){var _0x9eb450={};_0x9eb450[_0x40fd9f]={'$like':'%'+_0xb3f9d7[_0x71f7('0x3a')]['filter']+'%'};return _0x9eb450;})});}_0x57133d=_[_0x71f7('0x9b')]({},_0x57133d,_0xb3f9d7[_0x71f7('0xc6')]);return _0x3fe16d[_0x71f7('0xc4')](_0x57133d);}})[_0x71f7('0x26')](function(_0x44350e){if(_0x44350e){_0x1ff5f0=_0x44350e[_0x71f7('0x2f')];if(!_0xb3f9d7[_0x71f7('0x3a')][_0x71f7('0x3e')]('nolimit')){_0x57133d[_0x71f7('0x1d')]=qs['limit'](_0xb3f9d7[_0x71f7('0x3a')][_0x71f7('0x1d')]);_0x57133d[_0x71f7('0x20')]=qs['offset'](_0xb3f9d7[_0x71f7('0x3a')]['offset']);}return _0x3fe16d[_0x71f7('0xc4')](_0x57133d);}})[_0x71f7('0x26')](function(_0x267ee4){if(_0x267ee4){return _0x267ee4?{'count':_0x1ff5f0,'rows':_0x267ee4}:null;}})[_0x71f7('0x26')](respondWithResult(_0x3b72be,null))[_0x71f7('0x94')](handleError(_0x3b72be,null));};exports[_0x71f7('0xc7')]=function(_0x2f02a3,_0x242f27,_0x59385c){if(_0x2f02a3[_0x71f7('0x9c')]['id']){delete _0x2f02a3[_0x71f7('0x9c')]['id'];}return db['CmContact'][_0x71f7('0x34')]({'where':{'id':_0x2f02a3[_0x71f7('0x96')]['id']}})['then'](handleEntityNotFound(_0x242f27,null))[_0x71f7('0x26')](function(_0x1d5bcb){if(_0x1d5bcb){return _0x1d5bcb[_0x71f7('0xc7')](_0x2f02a3[_0x71f7('0x9c')][_0x71f7('0xc8')]||[]);}return null;})[_0x71f7('0x26')](respondWithResult(_0x242f27,null))[_0x71f7('0x94')](handleError(_0x242f27,null));};exports['getHoppers']=function(_0x2793f0,_0x147873,_0x4dde37){var _0xcd00b6={'raw':![],'where':{}};var _0x470ca1={};var _0x3412a2={'count':0x0,'rows':[]};return db[_0x71f7('0x2c')]['findOne']({'where':{'id':_0x2793f0[_0x71f7('0x96')]['id']}})['then'](handleEntityNotFound(_0x147873,null))[_0x71f7('0x26')](function(_0x59ece6){if(_0x59ece6){_0x470ca1[_0x71f7('0x39')]=_[_0x71f7('0x2e')](db[_0x71f7('0xa2')]['rawAttributes']);_0x470ca1[_0x71f7('0x3a')]=_[_0x71f7('0x2e')](_0x2793f0[_0x71f7('0x3a')]);_0x470ca1['filters']=_[_0x71f7('0x3b')](_0x470ca1[_0x71f7('0x39')],_0x470ca1[_0x71f7('0x3a')]);_0xcd00b6['attributes']=_['intersection'](_0x470ca1['model'],qs[_0x71f7('0x3d')](_0x2793f0[_0x71f7('0x3a')][_0x71f7('0x3d')]));_0xcd00b6[_0x71f7('0x3c')]=_0xcd00b6[_0x71f7('0x3c')][_0x71f7('0x2f')]?_0xcd00b6['attributes']:_0x470ca1[_0x71f7('0x39')];if(!_0x2793f0['query'][_0x71f7('0x3e')](_0x71f7('0xc9'))){_0xcd00b6[_0x71f7('0x1d')]=qs[_0x71f7('0x1d')](_0x2793f0[_0x71f7('0x3a')][_0x71f7('0x1d')]);_0xcd00b6[_0x71f7('0x20')]=qs['offset'](_0x2793f0[_0x71f7('0x3a')]['offset']);}_0xcd00b6['order']=qs[_0x71f7('0x3f')](_0x2793f0[_0x71f7('0x3a')][_0x71f7('0x3f')]);_0xcd00b6[_0x71f7('0x40')]=qs[_0x71f7('0x41')](_['pick'](_0x2793f0[_0x71f7('0x3a')],_0x470ca1[_0x71f7('0x41')]));_0xcd00b6[_0x71f7('0x40')]['ContactId']=_0x59ece6['id'];if(_0x2793f0[_0x71f7('0x3a')][_0x71f7('0x62')]){_0xcd00b6[_0x71f7('0x40')]=_[_0x71f7('0x9b')](_0xcd00b6[_0x71f7('0x40')],{'$or':_[_0x71f7('0x57')](_0xcd00b6[_0x71f7('0x3c')],function(_0x30fa4b){var _0x10f281={};_0x10f281[_0x30fa4b]={'$like':'%'+_0x2793f0['query'][_0x71f7('0x62')]+'%'};return _0x10f281;})});}_0xcd00b6=_[_0x71f7('0x9b')]({},_0xcd00b6,_0x2793f0['options']);return db[_0x71f7('0xa2')][_0x71f7('0x1f')]({'where':_0xcd00b6[_0x71f7('0x40')]})[_0x71f7('0x26')](function(_0x431785){_0x3412a2['count']=_0x431785;if(_0x2793f0[_0x71f7('0x3a')][_0x71f7('0xca')]){_0xcd00b6[_0x71f7('0xcb')]=[{'all':!![]}];}return db[_0x71f7('0xa2')]['findAll'](_0xcd00b6);})['then'](function(_0x34f186){_0x3412a2['rows']=_0x34f186;return _0x3412a2;});}})['then'](respondWithFilteredResult(_0x147873,_0xcd00b6))[_0x71f7('0x94')](handleError(_0x147873,null));};exports['getHopperHistories']=function(_0x180ab7,_0x343b63,_0x4284e5){var _0x134bc1={'raw':!![],'where':{}};var _0x381a5f={};var _0x46636b={'count':0x0,'rows':[]};return db['CmContact'][_0x71f7('0x34')]({'where':{'id':_0x180ab7[_0x71f7('0x96')]['id']}})['then'](handleEntityNotFound(_0x343b63,null))[_0x71f7('0x26')](function(_0x2b69ea){if(_0x2b69ea){_0x381a5f['model']=_['keys'](db[_0x71f7('0xae')][_0x71f7('0xc5')]);_0x381a5f[_0x71f7('0x3a')]=_[_0x71f7('0x2e')](_0x180ab7['query']);_0x381a5f[_0x71f7('0x41')]=_['intersection'](_0x381a5f[_0x71f7('0x39')],_0x381a5f[_0x71f7('0x3a')]);_0x134bc1[_0x71f7('0x3c')]=_[_0x71f7('0x3b')](_0x381a5f[_0x71f7('0x39')],qs[_0x71f7('0x3d')](_0x180ab7['query'][_0x71f7('0x3d')]));_0x134bc1[_0x71f7('0x3c')]=_0x134bc1['attributes']['length']?_0x134bc1[_0x71f7('0x3c')]:_0x381a5f[_0x71f7('0x39')];if(!_0x180ab7[_0x71f7('0x3a')][_0x71f7('0x3e')]('nolimit')){_0x134bc1[_0x71f7('0x1d')]=qs[_0x71f7('0x1d')](_0x180ab7[_0x71f7('0x3a')][_0x71f7('0x1d')]);_0x134bc1[_0x71f7('0x20')]=qs[_0x71f7('0x20')](_0x180ab7[_0x71f7('0x3a')][_0x71f7('0x20')]);}_0x134bc1[_0x71f7('0x78')]=qs[_0x71f7('0x3f')](_0x180ab7['query'][_0x71f7('0x3f')]);_0x134bc1[_0x71f7('0x40')]=qs[_0x71f7('0x41')](_[_0x71f7('0x42')](_0x180ab7[_0x71f7('0x3a')],_0x381a5f['filters']));_0x134bc1['where'][_0x71f7('0xcc')]=_0x2b69ea['id'];if(_0x180ab7[_0x71f7('0x3a')][_0x71f7('0x62')]){_0x134bc1[_0x71f7('0x40')]=_[_0x71f7('0x9b')](_0x134bc1['where'],{'$or':_[_0x71f7('0x57')](_0x134bc1[_0x71f7('0x3c')],function(_0x38a2c0){var _0x16718b={};_0x16718b[_0x38a2c0]={'$like':'%'+_0x180ab7[_0x71f7('0x3a')]['filter']+'%'};return _0x16718b;})});}_0x134bc1=_[_0x71f7('0x9b')]({},_0x134bc1,_0x180ab7[_0x71f7('0xc6')]);return db[_0x71f7('0xae')][_0x71f7('0x1f')]({'where':_0x134bc1[_0x71f7('0x40')]})[_0x71f7('0x26')](function(_0xe93fa5){_0x46636b['count']=_0xe93fa5;if(_0x180ab7['query']['includeAll']){_0x134bc1[_0x71f7('0xcb')]=[{'all':!![]}];}return db['CmHopperHistory'][_0x71f7('0x9d')](_0x134bc1);})[_0x71f7('0x26')](function(_0xb519c){_0x46636b['rows']=_0xb519c;return _0x46636b;});}})[_0x71f7('0x26')](respondWithFilteredResult(_0x343b63,_0x134bc1))[_0x71f7('0x94')](handleError(_0x343b63,null));};exports[_0x71f7('0xcd')]=function(_0x5b448f,_0x3e8cd5,_0x243f97){var _0x294f8f={'raw':!![],'where':{}};var _0x481a91={};var _0x4649e5={'count':0x0,'rows':[]};return db['CmContact']['findOne']({'where':{'id':_0x5b448f[_0x71f7('0x96')]['id']}})[_0x71f7('0x26')](handleEntityNotFound(_0x3e8cd5,null))['then'](function(_0x4d4720){if(_0x4d4720){_0x481a91[_0x71f7('0x39')]=_[_0x71f7('0x2e')](db[_0x71f7('0xad')][_0x71f7('0xc5')]);_0x481a91['query']=_[_0x71f7('0x2e')](_0x5b448f[_0x71f7('0x3a')]);_0x481a91['filters']=_[_0x71f7('0x3b')](_0x481a91[_0x71f7('0x39')],_0x481a91[_0x71f7('0x3a')]);_0x294f8f[_0x71f7('0x3c')]=_[_0x71f7('0x3b')](_0x481a91[_0x71f7('0x39')],qs['fields'](_0x5b448f[_0x71f7('0x3a')]['fields']));_0x294f8f['attributes']=_0x294f8f['attributes'][_0x71f7('0x2f')]?_0x294f8f[_0x71f7('0x3c')]:_0x481a91[_0x71f7('0x39')];if(!_0x5b448f[_0x71f7('0x3a')][_0x71f7('0x3e')](_0x71f7('0xc9'))){_0x294f8f['limit']=qs[_0x71f7('0x1d')](_0x5b448f[_0x71f7('0x3a')]['limit']);_0x294f8f[_0x71f7('0x20')]=qs[_0x71f7('0x20')](_0x5b448f['query'][_0x71f7('0x20')]);}_0x294f8f[_0x71f7('0x78')]=qs[_0x71f7('0x3f')](_0x5b448f[_0x71f7('0x3a')][_0x71f7('0x3f')]);_0x294f8f[_0x71f7('0x40')]=qs[_0x71f7('0x41')](_[_0x71f7('0x42')](_0x5b448f['query'],_0x481a91[_0x71f7('0x41')]));_0x294f8f[_0x71f7('0x40')][_0x71f7('0xcc')]=_0x4d4720['id'];if(_0x5b448f['query'][_0x71f7('0x62')]){_0x294f8f[_0x71f7('0x40')]=_['merge'](_0x294f8f['where'],{'$or':_[_0x71f7('0x57')](_0x294f8f['attributes'],function(_0x3bc5d9){var _0x75cf86={};_0x75cf86[_0x3bc5d9]={'$like':'%'+_0x5b448f[_0x71f7('0x3a')][_0x71f7('0x62')]+'%'};return _0x75cf86;})});}_0x294f8f=_['merge']({},_0x294f8f,_0x5b448f['options']);return db[_0x71f7('0xad')][_0x71f7('0x1f')]({'where':_0x294f8f['where']})[_0x71f7('0x26')](function(_0x3adc19){_0x4649e5[_0x71f7('0x1f')]=_0x3adc19;if(_0x5b448f['query'][_0x71f7('0xca')]){_0x294f8f[_0x71f7('0xcb')]=[{'all':!![]}];}return db[_0x71f7('0xad')][_0x71f7('0x9d')](_0x294f8f);})[_0x71f7('0x26')](function(_0x548b99){_0x4649e5[_0x71f7('0x93')]=_0x548b99;return _0x4649e5;});}})['then'](respondWithFilteredResult(_0x3e8cd5,_0x294f8f))[_0x71f7('0x94')](handleError(_0x3e8cd5,null));};exports[_0x71f7('0xce')]=function(_0x1f943f,_0x246dd4,_0x40f948){var _0x3c8857={'raw':!![],'where':{}};var _0x2bea93={};var _0x188159={'count':0x0,'rows':[]};return db[_0x71f7('0x2c')][_0x71f7('0x34')]({'where':{'id':_0x1f943f['params']['id']}})[_0x71f7('0x26')](handleEntityNotFound(_0x246dd4,null))[_0x71f7('0x26')](function(_0x155353){if(_0x155353){_0x2bea93[_0x71f7('0x39')]=_['keys'](db[_0x71f7('0xb4')]['rawAttributes']);_0x2bea93[_0x71f7('0x3a')]=_[_0x71f7('0x2e')](_0x1f943f['query']);_0x2bea93['filters']=_[_0x71f7('0x3b')](_0x2bea93['model'],_0x2bea93[_0x71f7('0x3a')]);_0x3c8857['attributes']=_[_0x71f7('0x3b')](_0x2bea93['model'],qs[_0x71f7('0x3d')](_0x1f943f[_0x71f7('0x3a')]['fields']));_0x3c8857[_0x71f7('0x3c')]=_0x3c8857[_0x71f7('0x3c')][_0x71f7('0x2f')]?_0x3c8857['attributes']:_0x2bea93['model'];if(!_0x1f943f[_0x71f7('0x3a')]['hasOwnProperty'](_0x71f7('0xc9'))){_0x3c8857[_0x71f7('0x1d')]=qs[_0x71f7('0x1d')](_0x1f943f[_0x71f7('0x3a')][_0x71f7('0x1d')]);_0x3c8857['offset']=qs[_0x71f7('0x20')](_0x1f943f['query']['offset']);}_0x3c8857[_0x71f7('0x78')]=qs['sort'](_0x1f943f['query'][_0x71f7('0x3f')]);_0x3c8857[_0x71f7('0x40')]=qs['filters'](_[_0x71f7('0x42')](_0x1f943f[_0x71f7('0x3a')],_0x2bea93[_0x71f7('0x41')]));_0x3c8857[_0x71f7('0x40')]['ContactId']=_0x155353['id'];if(_0x1f943f[_0x71f7('0x3a')][_0x71f7('0x62')]){_0x3c8857['where']=_[_0x71f7('0x9b')](_0x3c8857['where'],{'$or':_[_0x71f7('0x57')](_0x3c8857[_0x71f7('0x3c')],function(_0x3f368d){var _0x182a63={};_0x182a63[_0x3f368d]={'$like':'%'+_0x1f943f[_0x71f7('0x3a')][_0x71f7('0x62')]+'%'};return _0x182a63;})});}_0x3c8857=_[_0x71f7('0x9b')]({},_0x3c8857,_0x1f943f[_0x71f7('0xc6')]);return db[_0x71f7('0xb4')]['count']({'where':_0x3c8857[_0x71f7('0x40')]})['then'](function(_0x44e807){_0x188159[_0x71f7('0x1f')]=_0x44e807;if(_0x1f943f['query'][_0x71f7('0xca')]){_0x3c8857[_0x71f7('0xcb')]=[{'all':!![]}];}return db[_0x71f7('0xb4')][_0x71f7('0x9d')](_0x3c8857);})[_0x71f7('0x26')](function(_0x4ffcfc){_0x188159[_0x71f7('0x93')]=_0x4ffcfc;return _0x188159;});}})[_0x71f7('0x26')](respondWithFilteredResult(_0x246dd4,_0x3c8857))[_0x71f7('0x94')](handleError(_0x246dd4,null));};exports['uploadCsv']=function(_0x57cb7f,_0x319410,_0x4e6662){try{if(!_0x57cb7f[_0x71f7('0x9c')]['ListId']){throw new Error(_0x71f7('0xcf'));}if(!_0x57cb7f[_0x71f7('0x9c')][_0x71f7('0xd0')]){throw new Error(_0x71f7('0xd1'));}if(!_0x57cb7f[_0x71f7('0x9c')][_0x71f7('0xd2')]){throw new Error(_0x71f7('0xd3'));}if(!_0x57cb7f[_0x71f7('0x9c')]['socket_timestamp']){throw new Error(_0x71f7('0xd4'));}var _0x2fc2d3=_0x57cb7f[_0x71f7('0x9c')]['binding_keys'][_0x71f7('0x6b')](',');var _0x2296a7=_0x57cb7f['body'][_0x71f7('0xd2')]['split'](',');if(!_0x2fc2d3[_0x71f7('0x2f')]||!_0x2296a7[_0x71f7('0x2f')]||_0x2fc2d3[_0x71f7('0x2f')]!==_0x2296a7[_0x71f7('0x2f')]){throw new Error(_0x71f7('0xd5'));}_0x57cb7f[_0x71f7('0x9c')][_0x71f7('0x3d')]=_[_0x71f7('0xd6')](_0x2fc2d3,_0x2296a7);if(!_0x57cb7f['body']['fields'][_0x71f7('0xc3')]){throw new Error('No\x20phone\x20column\x20specified');}if(!_0x57cb7f['body'][_0x71f7('0x3d')][_0x71f7('0xd7')]){throw new Error(_0x71f7('0xd8'));}var _0x46b0a6=path[_0x71f7('0xa0')](config[_0x71f7('0xd9')],_0x71f7('0xda'),_0x57cb7f['file'][_0x71f7('0xdb')]);fs[_0x71f7('0xdc')](_0x46b0a6,parseInt(_0x71f7('0xdd'),0x8));var _0x1e0f0d=require(_0x71f7('0xde'))['fork'](path[_0x71f7('0xa0')](__dirname,_0x71f7('0xdf')),[_0x46b0a6,_0x57cb7f[_0x71f7('0x9c')]['binding_keys'],_0x57cb7f[_0x71f7('0x9c')][_0x71f7('0xd2')],_0x57cb7f[_0x71f7('0x9c')][_0x71f7('0x64')],_0x57cb7f[_0x71f7('0x9c')][_0x71f7('0xe0')],_0x57cb7f['body'][_0x71f7('0xb8')],_0x57cb7f[_0x71f7('0x9c')]['socket_timestamp']]);return _0x319410['status'](0xc8)[_0x71f7('0x1c')]({'message':_0x71f7('0xe1'),'pid':_0x1e0f0d['pid']});}catch(_0x22818b){return _0x319410[_0x71f7('0x1a')](0x1f4)[_0x71f7('0x2a')](_0x22818b);}};exports[_0x71f7('0xe2')]=function(_0x3f9555,_0x322bc2,_0x106ae7){var _0x164ea2=fs[_0x71f7('0xe3')](_0x3f9555[_0x71f7('0xe4')][_0x71f7('0x6')]);Papa[_0x71f7('0xe5')](_0x164ea2,{'header':!![],'skipEmptyLines':!![],'preview':0x1,'complete':function(_0x4c957f){return _0x322bc2[_0x71f7('0x1a')](0xc8)[_0x71f7('0x1c')]({'file':_0x3f9555[_0x71f7('0xe4')],'fields':_0x4c957f[_0x71f7('0xe6')][_0x71f7('0x3d')]});}});};exports['import']=function(_0x244469,_0x17113a,_0x4bd679){return db[_0x71f7('0x5a')][_0x71f7('0x9d')]({'raw':!![],'attributes':['id'],'where':{'role':_0x71f7('0x81')}})[_0x71f7('0x26')](function(_0x203dd5){var _0x26b1a8=![];if(!_0x244469[_0x71f7('0x9c')][_0x71f7('0x64')]){throw new Error(_0x71f7('0xcf'));}if(!_0x244469[_0x71f7('0x9c')][_0x71f7('0xe7')][_0x71f7('0xc3')]){throw new Error(_0x71f7('0xe8'));}if(!_0x244469[_0x71f7('0x9c')][_0x71f7('0xe7')][_0x71f7('0xd7')]){throw new Error(_0x71f7('0xd8'));}if(!_0x244469['body'][_0x71f7('0xe9')]){throw new Error(_0x71f7('0xd4'));}var _0x4ff478=require(_0x71f7('0xde'))[_0x71f7('0xea')](path[_0x71f7('0xa0')](__dirname,_0x71f7('0xeb')),[_0x244469[_0x71f7('0x96')]['id'],JSON['stringify'](_0x244469[_0x71f7('0x9c')]),JSON[_0x71f7('0xec')](_0x203dd5)]);_0x4ff478['on']('message',function(_0x309426){_0x26b1a8=!![];return _0x17113a[_0x71f7('0x1a')](0xc8)[_0x71f7('0x1c')]({'message':'start\x20child\x20process\x20correctly!','pid':_0x4ff478[_0x71f7('0xed')]});});_0x4ff478['on'](_0x71f7('0xee'),function(_0x23c088){if(_0x23c088&&!_0x26b1a8){return _0x17113a['status'](0x1f4)[_0x71f7('0x1c')]({'message':_0x71f7('0xef'),'pid':_0x4ff478['pid']});}});})[_0x71f7('0x94')](handleError(_0x17113a,null));};exports[_0x71f7('0xf0')]=function(_0x1943ed,_0x28b083){var _0x37fc90=[_0x71f7('0xf1'),_0x71f7('0xf2'),_0x71f7('0xf3'),_0x71f7('0xf4'),'fax','whatsapp','voice'];var _0x598c85={'offset':0x0,'order':qs[_0x71f7('0x3f')](_0x71f7('0xf5'))},_0x244a89={'count':0x0,'rows':[]};Promise[_0x71f7('0x7e')]()[_0x71f7('0x26')](function(){if(_0x1943ed[_0x71f7('0x3a')][_0x71f7('0xf6')]){if(!_[_0x71f7('0xf7')](_0x37fc90,_0x1943ed[_0x71f7('0x3a')]['channel'][_0x71f7('0xf8')]())){throw new Error(_0x71f7('0xf9'));}_0x37fc90=[_0x1943ed[_0x71f7('0x3a')]['channel']['toLowerCase']()];}if(_0x1943ed[_0x71f7('0x3a')][_0x71f7('0xfa')]){try{var _0x60d9dd=JSON[_0x71f7('0xe5')](_0x1943ed[_0x71f7('0x3a')][_0x71f7('0xfa')]);if(!moment(_0x60d9dd['from'])[_0x71f7('0xfb')]()){throw new Error(_0x71f7('0xfc'));}if(!moment(_0x60d9dd['to'])[_0x71f7('0xfb')]()){throw new Error('Invalid\x20date\x20for\x20range\x20to\x20filter');}}catch(_0x121690){throw new Error(_0x71f7('0xfd'));}}if(!_0x1943ed[_0x71f7('0x3a')][_0x71f7('0x3e')](_0x71f7('0xc9'))){_0x598c85[_0x71f7('0x1d')]=qs['limit'](_0x1943ed['query'][_0x71f7('0x1d')]||0xa);_0x598c85[_0x71f7('0x20')]=qs[_0x71f7('0x20')](_0x1943ed[_0x71f7('0x3a')][_0x71f7('0x20')]);}var _0x299e3a=_0x37fc90[_0x71f7('0x57')](function(_0x5d580c){if(_0x5d580c===_0x71f7('0xfe')){var _0x1f4b72={'attributes':['id','uniqueid','type','source',_0x71f7('0xff'),'callerid','starttime','endtime',_0x71f7('0x100'),_0x71f7('0x101'),_0x71f7('0x102'),'userDisposition',_0x71f7('0x103'),_0x71f7('0x104'),'UserId'],'where':{'ContactId':_0x1943ed['params']['id']},'include':[{'model':db[_0x71f7('0x5a')],'as':_0x71f7('0x5a'),'attributes':['id',_0x71f7('0x29'),'fullname',_0x71f7('0x105')]}],'order':[['createdAt','DESC']]};if(_0x1943ed[_0x71f7('0x3a')][_0x71f7('0xfa')]){_0x1f4b72['where']['createdAt']={'$gte':_0x60d9dd[_0x71f7('0x46')],'$lte':_0x60d9dd['to']};}return db[_0x71f7('0x106')][_0x71f7('0x107')](_0x1f4b72)['then'](function(_0x3f650a){_0x244a89[_0x71f7('0x1f')]+=_0x3f650a[_0x71f7('0x1f')];return _['map'](_0x3f650a[_0x71f7('0x93')],function(_0x3a28c5){var _0x19afac=_0x3a28c5[_0x71f7('0x9e')]({'plain':!![]});_0x19afac[_0x71f7('0xf6')]=_0x5d580c;if(_0x19afac[_0x71f7('0x5a')]){_0x19afac[_0x71f7('0x5a')]={'id':_0x19afac[_0x71f7('0x5a')]['id'],'name':_0x19afac['User'][_0x71f7('0x29')],'fullname':_0x19afac[_0x71f7('0x5a')][_0x71f7('0x108')],'alias':_0x19afac['User'][_0x71f7('0x105')]};}return _0x19afac;});});}else{var _0x2af604=_[_0x71f7('0x109')](_0x5d580c)+(_0x5d580c==='chat'?_0x71f7('0x10a'):_0x71f7('0x10b'));var _0x52fc4c={'attributes':['id','closed',_0x71f7('0x10c'),_0x71f7('0x102'),'note',_0x71f7('0x10d'),_0x71f7('0x10e'),_0x71f7('0x10f'),'UserId',_0x2af604+'Id'],'where':{'ContactId':_0x1943ed[_0x71f7('0x96')]['id']},'include':[{'model':db[_0x2af604],'as':_0x71f7('0x10b'),'attributes':['id','name',_0x71f7('0x110')]},{'model':db[_0x71f7('0x5a')],'as':_0x71f7('0x111'),'attributes':['id',_0x71f7('0x29'),'fullname']},{'model':db[_0x71f7('0x55')],'as':_0x71f7('0x92'),'attributes':['id','name',_0x71f7('0x45')],'through':{'attributes':[]}}],'order':[[_0x71f7('0x102'),_0x71f7('0x7a')]]};if(_0x1943ed[_0x71f7('0x3a')][_0x71f7('0xfa')]){_0x52fc4c[_0x71f7('0x40')][_0x71f7('0x102')]={'$gte':_0x60d9dd['from'],'$lte':_0x60d9dd['to']};}switch(_0x5d580c){case _0x71f7('0xf2'):_0x52fc4c['attributes'][_0x71f7('0x32')](_0x71f7('0x112'),_0x71f7('0x113'),_0x71f7('0x114'),_0x71f7('0x115'),_0x71f7('0x116'),_0x71f7('0x117'),_0x71f7('0x118'),_0x71f7('0x119'),'referer');break;case _0x71f7('0xf1'):_0x52fc4c['attributes'][_0x71f7('0x32')]('subject','substatus');break;case'openchannel':_0x52fc4c['attributes']['push']('externalUrl','threadId');break;}return db[_[_0x71f7('0x109')](_0x5d580c)+_0x71f7('0x11a')]['findAndCountAll'](_0x52fc4c)[_0x71f7('0x26')](function(_0x4f851c){_0x244a89[_0x71f7('0x1f')]+=_0x4f851c[_0x71f7('0x1f')];return _[_0x71f7('0x57')](_0x4f851c[_0x71f7('0x93')],function(_0x1f0ced){var _0x48c833=_0x1f0ced[_0x71f7('0x9e')]({'plain':!![]});_0x48c833[_0x71f7('0xf6')]=_0x5d580c;if(_0x48c833['Owner']){_0x48c833[_0x71f7('0x111')]={'id':_0x48c833[_0x71f7('0x111')]['id'],'name':_0x48c833[_0x71f7('0x111')][_0x71f7('0x29')],'fullname':_0x48c833['Owner']['fullname']};}return _0x48c833;});});}});return Promise[_0x71f7('0x36')](_0x299e3a);})['then'](function(_0x4c2195){return _(_0x4c2195)[_0x71f7('0x11b')]()['sortBy'](_0x71f7('0x102'))['reverse']()[_0x71f7('0x56')]();})[_0x71f7('0x26')](function(_0x29af5c){_0x244a89['rows']=_0x598c85[_0x71f7('0x1d')]?_0x29af5c['slice'](_0x598c85[_0x71f7('0x20')],_0x598c85[_0x71f7('0x20')]+_0x598c85[_0x71f7('0x1d')]):_0x29af5c;return _0x244a89;})['then'](respondWithFilteredResult(_0x28b083,_0x598c85))['catch'](handleError(_0x28b083,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3486=['hasOwnProperty','CmContact','setMaxListeners','save','emit'];(function(_0x1a699b,_0x4bd68e){var _0x40785e=function(_0x4008e8){while(--_0x4008e8){_0x1a699b['push'](_0x1a699b['shift']());}};_0x40785e(++_0x4bd68e);}(_0x3486,0xce));var _0x6348=function(_0x2b2d5b,_0x4a2fb1){_0x2b2d5b=_0x2b2d5b-0x0;var _0x80b73f=_0x3486[_0x2b2d5b];return _0x80b73f;};'use strict';var EventEmitter=require('events');var CmContact=require('../../mysqldb')['db'][_0x6348('0x0')];var CmContactEvents=new EventEmitter();CmContactEvents[_0x6348('0x1')](0x0);var events={'afterCreate':_0x6348('0x2'),'afterUpdate':'update','afterDestroy':'remove'};function emitEvent(_0xf71372){return function(_0x2a6899,_0x1986c8,_0xde9f59){CmContactEvents[_0x6348('0x3')](_0xf71372+':'+_0x2a6899['id'],_0x2a6899);CmContactEvents[_0x6348('0x3')](_0xf71372,_0x2a6899);_0xde9f59(null);};}for(var e in events){if(events[_0x6348('0x4')](e)){var event=events[e];CmContact['hook'](e,emitEvent(event));}}module['exports']=CmContactEvents;
\ No newline at end of file
+var _0x0749=['remove','emit','hasOwnProperty','hook','../../mysqldb','CmContact','setMaxListeners','save','update'];(function(_0x260b48,_0x117977){var _0x3f730b=function(_0x7a1e53){while(--_0x7a1e53){_0x260b48['push'](_0x260b48['shift']());}};_0x3f730b(++_0x117977);}(_0x0749,0x16c));var _0x9074=function(_0x21a9d9,_0x4d5ac8){_0x21a9d9=_0x21a9d9-0x0;var _0x46adce=_0x0749[_0x21a9d9];return _0x46adce;};'use strict';var EventEmitter=require('events');var CmContact=require(_0x9074('0x0'))['db'][_0x9074('0x1')];var CmContactEvents=new EventEmitter();CmContactEvents[_0x9074('0x2')](0x0);var events={'afterCreate':_0x9074('0x3'),'afterUpdate':_0x9074('0x4'),'afterDestroy':_0x9074('0x5')};function emitEvent(_0xfa9edd){return function(_0x31b150,_0x1657e7,_0x1583e4){CmContactEvents[_0x9074('0x6')](_0xfa9edd+':'+_0x31b150['id'],_0x31b150);CmContactEvents['emit'](_0xfa9edd,_0x31b150);_0x1583e4(null);};}for(var e in events){if(events[_0x9074('0x7')](e)){var event=events[e];CmContact[_0x9074('0x8')](e,emitEvent(event));}}module['exports']=CmContactEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf315=['\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20VoiceQueue\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20Campaign\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20Campaign\x20','CmHopperFinal','cmContact,\x20afterCreate,\x20','create','VoiceQueue','findAll','CmList','Lists','length','dialCheckDuplicateType','onlyIfOpen','outbound','BlackLists','CmHopperBlack','cmContact,\x20%s,\x20%s','message','Campaign','always','isEmpty','ContactId','VoiceQueueId','CampaignId','push','info','[CmContact][afterDestroy][Succesfull]','[CmContact][afterDestroy][Error]','lodash','util','../../config/logger','api','moment','request-promise','path','../../config/environment','exports','define','CmContact','cm_contacts','phone','fti_cm_contacts','firstName','lastName','mobile','fax','email','FULLTEXT','utf8mb4','utf8mb4_unicode_ci','models','get','error','cmContact','afterCreate','inspect','findOne','then','isNil','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20VoiceQueue\x20','CmHopper','ListId','priority','scheduledat','format','YYYY-MM-DD\x20HH:mm:ss','callbackUniqueid','catch','cmContact,\x20afterCreate\x20'];(function(_0x31a2bf,_0x3341b9){var _0x505051=function(_0x427338){while(--_0x427338){_0x31a2bf['push'](_0x31a2bf['shift']());}};_0x505051(++_0x3341b9);}(_0xf315,0x130));var _0x5f31=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0xf315[_0x14add3];return _0x4a174f;};'use strict';var _=require(_0x5f31('0x0'));var util=require(_0x5f31('0x1'));var logger=require(_0x5f31('0x2'))(_0x5f31('0x3'));var moment=require(_0x5f31('0x4'));var BPromise=require('bluebird');var rp=require(_0x5f31('0x5'));var fs=require('fs');var path=require(_0x5f31('0x6'));var rimraf=require('rimraf');var config=require(_0x5f31('0x7'));var attributes=require('./cmContact.attributes');module[_0x5f31('0x8')]=function(_0x1820dc,_0x3f176d){return _0x1820dc[_0x5f31('0x9')](_0x5f31('0xa'),attributes,{'tableName':_0x5f31('0xb'),'paranoid':!![],'indexes':[{'name':_0x5f31('0xc'),'fields':['phone']},{'name':_0x5f31('0xd'),'fields':[_0x5f31('0xe'),_0x5f31('0xf'),_0x5f31('0xc'),_0x5f31('0x10'),_0x5f31('0x11'),_0x5f31('0x12')],'type':_0x5f31('0x13')}],'timestamps':!![],'charset':_0x5f31('0x14'),'collate':_0x5f31('0x15'),'hooks':{'afterCreate':function(_0xca1109,_0xe8eecb,_0x479504){var _0x1de127=_0x1820dc[_0x5f31('0x16')];var _0x8b2fd7=_0xca1109[_0x5f31('0x17')]({'plain':!![]});function _0x3728c8(){return function(_0x2583a1){logger[_0x5f31('0x18')](_0x5f31('0x19'),_0x5f31('0x1a'),util[_0x5f31('0x1b')](_0x2583a1,{'showHidden':![],'depth':null}));};}var _0x4afe45=function(_0x1e55d3){return new BPromise(function(_0x4132a4,_0x3a9812){_0x1de127['CmHopper'][_0x5f31('0x1c')]({'where':{'phone':_0x8b2fd7['phone'],'VoiceQueueId':_0x1e55d3['id']}})[_0x5f31('0x1d')](function(_0x4bc329){if(!_[_0x5f31('0x1e')](_0x4bc329)){throw new Error('cmContact,\x20afterCreate\x20'+_0x8b2fd7[_0x5f31('0xc')]+_0x5f31('0x1f')+_0x1e55d3['id']);}return _0x1de127[_0x5f31('0x20')]['create']({'phone':_0x8b2fd7[_0x5f31('0xc')],'ContactId':_0x8b2fd7['id'],'ListId':_0x8b2fd7[_0x5f31('0x21')],'priority':_0x8b2fd7[_0x5f31('0x22')]?_0x8b2fd7[_0x5f31('0x22')]:0x2,'scheduledat':_0x8b2fd7['scheduledat']?_0x8b2fd7[_0x5f31('0x23')]:moment()[_0x5f31('0x24')](_0x5f31('0x25')),'callback':_0x8b2fd7[_0x5f31('0x26')]?!![]:![],'callbackuniqueid':_0x8b2fd7[_0x5f31('0x26')]?_0x8b2fd7[_0x5f31('0x26')]:undefined,'callbackat':_0x8b2fd7[_0x5f31('0x26')]?moment()[_0x5f31('0x24')](_0x5f31('0x25')):undefined,'VoiceQueueId':_0x1e55d3['id']});})[_0x5f31('0x27')](function(_0x1b72f0){_0x3a9812(_0x1b72f0);});});};var _0x5c3c02=function(_0x508d27){return new BPromise(function(_0x40462e,_0x55cf66){_0x1de127['CmHopper']['findOne']({'where':{'phone':_0x8b2fd7[_0x5f31('0xc')],'VoiceQueueId':_0x508d27['id']}})['then'](function(_0x1bf7e7){if(!_[_0x5f31('0x1e')](_0x1bf7e7)){throw new Error(_0x5f31('0x28')+_0x8b2fd7[_0x5f31('0xc')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20VoiceQueue\x20'+_0x508d27['id']);}return _0x1de127['CmHopperFinal']['findOne']({'where':{'calleridnum':_0x8b2fd7[_0x5f31('0xc')],'VoiceQueueId':_0x508d27['id']}});})['then'](function(_0x30947f){if(!_[_0x5f31('0x1e')](_0x30947f)){throw new Error('cmContact,\x20afterCreate,\x20'+_0x8b2fd7[_0x5f31('0xc')]+_0x5f31('0x29')+_0x508d27['id']);}return _0x1de127[_0x5f31('0x20')]['create']({'phone':_0x8b2fd7[_0x5f31('0xc')],'ContactId':_0x8b2fd7['id'],'ListId':_0x8b2fd7['ListId'],'priority':_0x8b2fd7[_0x5f31('0x22')]?_0x8b2fd7[_0x5f31('0x22')]:0x2,'scheduledat':_0x8b2fd7[_0x5f31('0x23')]?_0x8b2fd7[_0x5f31('0x23')]:moment()[_0x5f31('0x24')](_0x5f31('0x25')),'callback':_0x8b2fd7['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x8b2fd7[_0x5f31('0x26')]?_0x8b2fd7[_0x5f31('0x26')]:undefined,'callbackat':_0x8b2fd7[_0x5f31('0x26')]?moment()[_0x5f31('0x24')](_0x5f31('0x25')):undefined,'VoiceQueueId':_0x508d27['id']});})[_0x5f31('0x27')](function(_0x1fc68f){_0x55cf66(_0x1fc68f);});});};function _0xd2d178(){return function(_0x5cd9e6){logger[_0x5f31('0x18')](_0x5f31('0x19'),_0x5f31('0x1a'),util[_0x5f31('0x1b')](_0x5cd9e6,{'showHidden':![],'depth':null}));};}var _0x6d4816=function(_0x4fcad9){return new BPromise(function(_0x357336,_0x5bcf49){_0x1de127[_0x5f31('0x20')]['findOne']({'where':{'phone':_0x8b2fd7[_0x5f31('0xc')],'CampaignId':_0x4fcad9['id']}})[_0x5f31('0x1d')](function(_0x3bb0f7){if(!_[_0x5f31('0x1e')](_0x3bb0f7)){throw new Error(_0x5f31('0x28')+_0x8b2fd7['phone']+_0x5f31('0x2a')+_0x4fcad9['id']);}return _0x1de127['CmHopper']['create']({'phone':_0x8b2fd7[_0x5f31('0xc')],'ContactId':_0x8b2fd7['id'],'ListId':_0x8b2fd7[_0x5f31('0x21')],'priority':_0x8b2fd7[_0x5f31('0x22')]?_0x8b2fd7[_0x5f31('0x22')]:0x2,'scheduledat':_0x8b2fd7[_0x5f31('0x23')]?_0x8b2fd7[_0x5f31('0x23')]:moment()['format'](_0x5f31('0x25')),'callback':_0x8b2fd7[_0x5f31('0x26')]?!![]:![],'callbackuniqueid':_0x8b2fd7[_0x5f31('0x26')]?_0x8b2fd7[_0x5f31('0x26')]:undefined,'callbackat':_0x8b2fd7[_0x5f31('0x26')]?moment()[_0x5f31('0x24')](_0x5f31('0x25')):undefined,'CampaignId':_0x4fcad9['id']});})[_0x5f31('0x27')](function(_0x54e18e){_0x5bcf49(_0x54e18e);});});};var _0x51a0d0=function(_0x4b35c2){return new BPromise(function(_0x7fe5bb,_0xa50def){_0x1de127['CmHopper']['findOne']({'where':{'phone':_0x8b2fd7[_0x5f31('0xc')],'CampaignId':_0x4b35c2['id']}})[_0x5f31('0x1d')](function(_0x3321f7){if(!_[_0x5f31('0x1e')](_0x3321f7)){throw new Error('cmContact,\x20afterCreate\x20'+_0x8b2fd7['phone']+_0x5f31('0x2b')+_0x4b35c2['id']);}return _0x1de127[_0x5f31('0x2c')][_0x5f31('0x1c')]({'where':{'calleridnum':_0x8b2fd7[_0x5f31('0xc')],'CampaignId':_0x4b35c2['id']}});})[_0x5f31('0x1d')](function(_0xb46c2f){if(!_[_0x5f31('0x1e')](_0xb46c2f)){throw new Error(_0x5f31('0x2d')+_0x8b2fd7['phone']+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20Campaign\x20'+_0x4b35c2['id']);}return _0x1de127['CmHopper'][_0x5f31('0x2e')]({'phone':_0x8b2fd7[_0x5f31('0xc')],'ContactId':_0x8b2fd7['id'],'ListId':_0x8b2fd7[_0x5f31('0x21')],'priority':_0x8b2fd7[_0x5f31('0x22')]?_0x8b2fd7[_0x5f31('0x22')]:0x2,'scheduledat':_0x8b2fd7[_0x5f31('0x23')]?_0x8b2fd7[_0x5f31('0x23')]:moment()['format'](_0x5f31('0x25')),'callback':_0x8b2fd7[_0x5f31('0x26')]?!![]:![],'callbackuniqueid':_0x8b2fd7['callbackUniqueid']?_0x8b2fd7[_0x5f31('0x26')]:undefined,'callbackat':_0x8b2fd7[_0x5f31('0x26')]?moment()['format'](_0x5f31('0x25')):undefined,'CampaignId':_0x4b35c2['id']});})['catch'](function(_0xa37c5e){_0xa50def(_0xa37c5e);});});};if(_0x8b2fd7[_0x5f31('0x21')]){_0x1de127[_0x5f31('0x2f')][_0x5f31('0x30')]({'where':{'type':'outbound'},'attributes':['id','dialCheckDuplicateType'],'include':[{'model':_0x1de127[_0x5f31('0x31')],'as':_0x5f31('0x32'),'where':{'id':_0x8b2fd7[_0x5f31('0x21')]}}]})[_0x5f31('0x1d')](function(_0x818518){if(_0x818518){var _0x4574c6=[];for(var _0x18d2f0=0x0,_0x11034d;_0x18d2f0<_0x818518[_0x5f31('0x33')];_0x18d2f0+=0x1){_0x11034d=_0x818518[_0x18d2f0][_0x5f31('0x17')]({'plain':!![]});switch(_0x11034d[_0x5f31('0x34')]){case'always':_0x5c3c02(_0x11034d)[_0x5f31('0x27')](_0x3728c8());break;case _0x5f31('0x35'):_0x4afe45(_0x11034d)[_0x5f31('0x27')](_0x3728c8());break;default:_0x1de127[_0x5f31('0x20')]['create']({'phone':_0x8b2fd7[_0x5f31('0xc')],'ContactId':_0x8b2fd7['id'],'ListId':_0x8b2fd7[_0x5f31('0x21')],'scheduledat':_0x8b2fd7[_0x5f31('0x23')]?_0x8b2fd7[_0x5f31('0x23')]:moment()[_0x5f31('0x24')](_0x5f31('0x25')),'priority':_0x8b2fd7['priority']?_0x8b2fd7[_0x5f31('0x22')]:0x2,'callback':_0x8b2fd7[_0x5f31('0x26')]?!![]:![],'callbackuniqueid':_0x8b2fd7[_0x5f31('0x26')]?_0x8b2fd7[_0x5f31('0x26')]:undefined,'callbackat':_0x8b2fd7['callbackUniqueid']?moment()[_0x5f31('0x24')](_0x5f31('0x25')):undefined,'VoiceQueueId':_0x11034d['id']})[_0x5f31('0x27')](_0x3728c8());}}}})[_0x5f31('0x1d')](function(){return _0x1de127[_0x5f31('0x2f')][_0x5f31('0x30')]({'where':{'type':_0x5f31('0x36')},'attributes':['id'],'include':[{'model':_0x1de127[_0x5f31('0x31')],'as':_0x5f31('0x37'),'where':{'id':_0x8b2fd7[_0x5f31('0x21')]}}]})[_0x5f31('0x1d')](function(_0x3b42a1){if(_0x3b42a1){var _0x53d436=[];for(var _0x19dac2=0x0,_0x4e01a4;_0x19dac2<_0x3b42a1[_0x5f31('0x33')];_0x19dac2+=0x1){_0x4e01a4=_0x3b42a1[_0x19dac2][_0x5f31('0x17')]({'plain':!![]});_0x1de127[_0x5f31('0x38')][_0x5f31('0x2e')]({'phone':_0x8b2fd7[_0x5f31('0xc')],'ContactId':_0x8b2fd7['id'],'ListId':_0x8b2fd7[_0x5f31('0x21')],'VoiceQueueId':_0x4e01a4['id']})[_0x5f31('0x27')](function(_0x232315){logger[_0x5f31('0x18')](_0x5f31('0x39'),'afterCreate',_0x232315[_0x5f31('0x3a')]);});}}});})[_0x5f31('0x1d')](function(){return _0x1de127[_0x5f31('0x3b')][_0x5f31('0x30')]({'attributes':['id',_0x5f31('0x34')],'include':[{'model':_0x1de127[_0x5f31('0x31')],'as':'Lists','where':{'id':_0x8b2fd7[_0x5f31('0x21')]}}]})['then'](function(_0x4f378c){if(_0x4f378c){var _0x318d77=[];for(var _0x154e24=0x0,_0xfc4405;_0x154e24<_0x4f378c[_0x5f31('0x33')];_0x154e24+=0x1){_0xfc4405=_0x4f378c[_0x154e24][_0x5f31('0x17')]({'plain':!![]});switch(_0xfc4405[_0x5f31('0x34')]){case _0x5f31('0x3c'):_0x51a0d0(_0xfc4405)[_0x5f31('0x27')](_0xd2d178());break;case _0x5f31('0x35'):_0x6d4816(_0xfc4405)[_0x5f31('0x27')](_0xd2d178());break;default:_0x1de127[_0x5f31('0x20')]['create']({'phone':_0x8b2fd7[_0x5f31('0xc')],'ContactId':_0x8b2fd7['id'],'ListId':_0x8b2fd7[_0x5f31('0x21')],'scheduledat':_0x8b2fd7[_0x5f31('0x23')]?_0x8b2fd7['scheduledat']:moment()[_0x5f31('0x24')]('YYYY-MM-DD\x20HH:mm:ss'),'priority':_0x8b2fd7['priority']?_0x8b2fd7[_0x5f31('0x22')]:0x2,'callback':_0x8b2fd7[_0x5f31('0x26')]?!![]:![],'callbackuniqueid':_0x8b2fd7['callbackUniqueid']?_0x8b2fd7[_0x5f31('0x26')]:undefined,'callbackat':_0x8b2fd7[_0x5f31('0x26')]?moment()['format'](_0x5f31('0x25')):undefined,'CampaignId':_0xfc4405['id']})[_0x5f31('0x27')](_0xd2d178());}}}});})[_0x5f31('0x1d')](function(){return _0x1de127[_0x5f31('0x3b')][_0x5f31('0x30')]({'attributes':['id'],'include':[{'model':_0x1de127[_0x5f31('0x31')],'as':_0x5f31('0x37'),'where':{'id':_0x8b2fd7[_0x5f31('0x21')]}}]})[_0x5f31('0x1d')](function(_0x377ea0){if(_0x377ea0){var _0x440383=[];for(var _0x520442=0x0,_0x2ad30c;_0x520442<_0x377ea0[_0x5f31('0x33')];_0x520442+=0x1){_0x2ad30c=_0x377ea0[_0x520442]['get']({'plain':!![]});_0x1de127[_0x5f31('0x38')][_0x5f31('0x2e')]({'phone':_0x8b2fd7[_0x5f31('0xc')],'ContactId':_0x8b2fd7['id'],'ListId':_0x8b2fd7['ListId'],'CampaignId':_0x2ad30c['id']})['catch'](function(_0x345101){logger[_0x5f31('0x18')](_0x5f31('0x39'),_0x5f31('0x1a'),_0x345101[_0x5f31('0x3a')]);});}}});})[_0x5f31('0x1d')](function(){_0x479504();})['catch'](function(_0x4bc226){logger[_0x5f31('0x18')](_0x5f31('0x39'),_0x5f31('0x1a'),_0x4bc226[_0x5f31('0x3a')]);_0x479504(_0x4bc226);});}else{_0x479504(new Error('List\x20not\x20found'));}},'afterDestroy':function(_0x470dd8,_0x3bea06,_0x3102b0){var _0x55fea0=_0x1820dc[_0x5f31('0x16')];var _0x58af11=_0x470dd8[_0x5f31('0x17')]({'plain':!![]});return _0x55fea0[_0x5f31('0x20')][_0x5f31('0x30')]({'raw':!![],'where':{'ListId':_0x58af11[_0x5f31('0x21')],'ContactId':_0x58af11['id']}})[_0x5f31('0x1d')](function(_0x356191){if(!_[_0x5f31('0x3d')](_0x356191)){var _0x206b29=[];for(var _0x500d80=0x0;_0x500d80<_0x356191[_0x5f31('0x33')];_0x500d80+=0x1){var _0x482966=_0x55fea0[_0x5f31('0x20')]['destroy']({'where':{'ListId':_0x356191[_0x500d80][_0x5f31('0x21')],'ContactId':_0x356191[_0x500d80][_0x5f31('0x3e')],'VoiceQueueId':_0x356191[_0x500d80][_0x5f31('0x3f')],'CampaignId':_0x356191[_0x500d80][_0x5f31('0x40')]}});_0x206b29[_0x5f31('0x41')](_0x482966);}return BPromise['all'](_0x206b29);}})[_0x5f31('0x1d')](function(_0x5a38b1){logger[_0x5f31('0x42')](_0x5f31('0x43'),util[_0x5f31('0x1b')](_0x5a38b1,{'showHidden':![],'depth':null}));_0x3102b0();})[_0x5f31('0x27')](function(_0x2aa302){logger['error'](_0x5f31('0x44'),util['inspect'](_0x2aa302,{'showHidden':![],'depth':null}));_0x3102b0(_0x2aa302);});}}});};
\ No newline at end of file
+var _0x4808=['always','CmList','BlackLists','CmHopperBlack','cmContact,\x20%s,\x20%s','message','onlyIfOpen','Campaign','isEmpty','destroy','VoiceQueueId','CampaignId','push','all','info','[CmContact][afterDestroy][Succesfull]','[CmContact][afterDestroy][Error]','lodash','util','../../config/logger','moment','request-promise','path','rimraf','./cmContact.attributes','exports','CmContact','phone','fti_cm_contacts','firstName','lastName','mobile','fax','email','FULLTEXT','utf8mb4','utf8mb4_unicode_ci','models','get','error','cmContact','afterCreate','inspect','findOne','then','isNil','cmContact,\x20afterCreate\x20','CmHopper','priority','scheduledat','format','YYYY-MM-DD\x20HH:mm:ss','callbackUniqueid','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20VoiceQueue\x20','cmContact,\x20afterCreate,\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20VoiceQueue\x20','create','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20Campaign\x20','ListId','catch','CmHopperFinal','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20Campaign\x20','VoiceQueue','findAll','dialCheckDuplicateType','Lists','length'];(function(_0x185ce6,_0x80b049){var _0xb2b554=function(_0x132348){while(--_0x132348){_0x185ce6['push'](_0x185ce6['shift']());}};_0xb2b554(++_0x80b049);}(_0x4808,0x160));var _0x8480=function(_0x1caf6a,_0x26a5bf){_0x1caf6a=_0x1caf6a-0x0;var _0x1bf493=_0x4808[_0x1caf6a];return _0x1bf493;};'use strict';var _=require(_0x8480('0x0'));var util=require(_0x8480('0x1'));var logger=require(_0x8480('0x2'))('api');var moment=require(_0x8480('0x3'));var BPromise=require('bluebird');var rp=require(_0x8480('0x4'));var fs=require('fs');var path=require(_0x8480('0x5'));var rimraf=require(_0x8480('0x6'));var config=require('../../config/environment');var attributes=require(_0x8480('0x7'));module[_0x8480('0x8')]=function(_0x59f549,_0x211def){return _0x59f549['define'](_0x8480('0x9'),attributes,{'tableName':'cm_contacts','paranoid':!![],'indexes':[{'name':_0x8480('0xa'),'fields':[_0x8480('0xa')]},{'name':_0x8480('0xb'),'fields':[_0x8480('0xc'),_0x8480('0xd'),'phone',_0x8480('0xe'),_0x8480('0xf'),_0x8480('0x10')],'type':_0x8480('0x11')}],'timestamps':!![],'charset':_0x8480('0x12'),'collate':_0x8480('0x13'),'hooks':{'afterCreate':function(_0x1bb2a5,_0x406d5f,_0xb49809){var _0x92e24e=_0x59f549[_0x8480('0x14')];var _0x2bdef2=_0x1bb2a5[_0x8480('0x15')]({'plain':!![]});function _0x17b3ae(){return function(_0x6c2c46){logger[_0x8480('0x16')](_0x8480('0x17'),_0x8480('0x18'),util[_0x8480('0x19')](_0x6c2c46,{'showHidden':![],'depth':null}));};}var _0x5ea74c=function(_0x1484b3){return new BPromise(function(_0x1284cd,_0x152e60){_0x92e24e['CmHopper'][_0x8480('0x1a')]({'where':{'phone':_0x2bdef2[_0x8480('0xa')],'VoiceQueueId':_0x1484b3['id']}})[_0x8480('0x1b')](function(_0x35dd6a){if(!_[_0x8480('0x1c')](_0x35dd6a)){throw new Error(_0x8480('0x1d')+_0x2bdef2[_0x8480('0xa')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20VoiceQueue\x20'+_0x1484b3['id']);}return _0x92e24e[_0x8480('0x1e')]['create']({'phone':_0x2bdef2['phone'],'ContactId':_0x2bdef2['id'],'ListId':_0x2bdef2['ListId'],'priority':_0x2bdef2[_0x8480('0x1f')]?_0x2bdef2['priority']:0x2,'scheduledat':_0x2bdef2[_0x8480('0x20')]?_0x2bdef2['scheduledat']:moment()[_0x8480('0x21')](_0x8480('0x22')),'callback':_0x2bdef2[_0x8480('0x23')]?!![]:![],'callbackuniqueid':_0x2bdef2['callbackUniqueid']?_0x2bdef2[_0x8480('0x23')]:undefined,'callbackat':_0x2bdef2[_0x8480('0x23')]?moment()[_0x8480('0x21')](_0x8480('0x22')):undefined,'VoiceQueueId':_0x1484b3['id']});})['catch'](function(_0x5480c3){_0x152e60(_0x5480c3);});});};var _0x37f38f=function(_0x26d795){return new BPromise(function(_0x3dd0f3,_0x40f05b){_0x92e24e['CmHopper'][_0x8480('0x1a')]({'where':{'phone':_0x2bdef2['phone'],'VoiceQueueId':_0x26d795['id']}})['then'](function(_0x38c7fa){if(!_[_0x8480('0x1c')](_0x38c7fa)){throw new Error(_0x8480('0x1d')+_0x2bdef2['phone']+_0x8480('0x24')+_0x26d795['id']);}return _0x92e24e['CmHopperFinal'][_0x8480('0x1a')]({'where':{'calleridnum':_0x2bdef2[_0x8480('0xa')],'VoiceQueueId':_0x26d795['id']}});})['then'](function(_0x18edd5){if(!_[_0x8480('0x1c')](_0x18edd5)){throw new Error(_0x8480('0x25')+_0x2bdef2[_0x8480('0xa')]+_0x8480('0x26')+_0x26d795['id']);}return _0x92e24e['CmHopper'][_0x8480('0x27')]({'phone':_0x2bdef2[_0x8480('0xa')],'ContactId':_0x2bdef2['id'],'ListId':_0x2bdef2['ListId'],'priority':_0x2bdef2[_0x8480('0x1f')]?_0x2bdef2[_0x8480('0x1f')]:0x2,'scheduledat':_0x2bdef2[_0x8480('0x20')]?_0x2bdef2[_0x8480('0x20')]:moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x2bdef2['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x2bdef2['callbackUniqueid']?_0x2bdef2[_0x8480('0x23')]:undefined,'callbackat':_0x2bdef2[_0x8480('0x23')]?moment()[_0x8480('0x21')](_0x8480('0x22')):undefined,'VoiceQueueId':_0x26d795['id']});})['catch'](function(_0x475c80){_0x40f05b(_0x475c80);});});};function _0x551f55(){return function(_0xea820e){logger['error'](_0x8480('0x17'),_0x8480('0x18'),util[_0x8480('0x19')](_0xea820e,{'showHidden':![],'depth':null}));};}var _0x27ee42=function(_0x4495b1){return new BPromise(function(_0x377e30,_0x2a4218){_0x92e24e[_0x8480('0x1e')][_0x8480('0x1a')]({'where':{'phone':_0x2bdef2[_0x8480('0xa')],'CampaignId':_0x4495b1['id']}})[_0x8480('0x1b')](function(_0xb27b3){if(!_[_0x8480('0x1c')](_0xb27b3)){throw new Error(_0x8480('0x1d')+_0x2bdef2[_0x8480('0xa')]+_0x8480('0x28')+_0x4495b1['id']);}return _0x92e24e[_0x8480('0x1e')][_0x8480('0x27')]({'phone':_0x2bdef2[_0x8480('0xa')],'ContactId':_0x2bdef2['id'],'ListId':_0x2bdef2[_0x8480('0x29')],'priority':_0x2bdef2[_0x8480('0x1f')]?_0x2bdef2['priority']:0x2,'scheduledat':_0x2bdef2[_0x8480('0x20')]?_0x2bdef2[_0x8480('0x20')]:moment()[_0x8480('0x21')](_0x8480('0x22')),'callback':_0x2bdef2[_0x8480('0x23')]?!![]:![],'callbackuniqueid':_0x2bdef2[_0x8480('0x23')]?_0x2bdef2[_0x8480('0x23')]:undefined,'callbackat':_0x2bdef2[_0x8480('0x23')]?moment()[_0x8480('0x21')](_0x8480('0x22')):undefined,'CampaignId':_0x4495b1['id']});})[_0x8480('0x2a')](function(_0x277eba){_0x2a4218(_0x277eba);});});};var _0x2168f7=function(_0x22c065){return new BPromise(function(_0x2d7d0c,_0x5cf36b){_0x92e24e['CmHopper'][_0x8480('0x1a')]({'where':{'phone':_0x2bdef2['phone'],'CampaignId':_0x22c065['id']}})['then'](function(_0x4f1f43){if(!_[_0x8480('0x1c')](_0x4f1f43)){throw new Error(_0x8480('0x1d')+_0x2bdef2['phone']+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20Campaign\x20'+_0x22c065['id']);}return _0x92e24e[_0x8480('0x2b')][_0x8480('0x1a')]({'where':{'calleridnum':_0x2bdef2[_0x8480('0xa')],'CampaignId':_0x22c065['id']}});})[_0x8480('0x1b')](function(_0x425c9e){if(!_[_0x8480('0x1c')](_0x425c9e)){throw new Error('cmContact,\x20afterCreate,\x20'+_0x2bdef2[_0x8480('0xa')]+_0x8480('0x2c')+_0x22c065['id']);}return _0x92e24e[_0x8480('0x1e')][_0x8480('0x27')]({'phone':_0x2bdef2[_0x8480('0xa')],'ContactId':_0x2bdef2['id'],'ListId':_0x2bdef2[_0x8480('0x29')],'priority':_0x2bdef2[_0x8480('0x1f')]?_0x2bdef2[_0x8480('0x1f')]:0x2,'scheduledat':_0x2bdef2[_0x8480('0x20')]?_0x2bdef2[_0x8480('0x20')]:moment()['format'](_0x8480('0x22')),'callback':_0x2bdef2['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x2bdef2['callbackUniqueid']?_0x2bdef2[_0x8480('0x23')]:undefined,'callbackat':_0x2bdef2['callbackUniqueid']?moment()[_0x8480('0x21')](_0x8480('0x22')):undefined,'CampaignId':_0x22c065['id']});})[_0x8480('0x2a')](function(_0x57b6d0){_0x5cf36b(_0x57b6d0);});});};if(_0x2bdef2[_0x8480('0x29')]){_0x92e24e[_0x8480('0x2d')][_0x8480('0x2e')]({'where':{'type':'outbound'},'attributes':['id',_0x8480('0x2f')],'include':[{'model':_0x92e24e['CmList'],'as':_0x8480('0x30'),'where':{'id':_0x2bdef2[_0x8480('0x29')]}}]})[_0x8480('0x1b')](function(_0x49d30e){if(_0x49d30e){var _0x5ba3a0=[];for(var _0x6f580b=0x0,_0x39dcc1;_0x6f580b<_0x49d30e[_0x8480('0x31')];_0x6f580b+=0x1){_0x39dcc1=_0x49d30e[_0x6f580b][_0x8480('0x15')]({'plain':!![]});switch(_0x39dcc1['dialCheckDuplicateType']){case _0x8480('0x32'):_0x37f38f(_0x39dcc1)[_0x8480('0x2a')](_0x17b3ae());break;case'onlyIfOpen':_0x5ea74c(_0x39dcc1)[_0x8480('0x2a')](_0x17b3ae());break;default:_0x92e24e[_0x8480('0x1e')]['create']({'phone':_0x2bdef2[_0x8480('0xa')],'ContactId':_0x2bdef2['id'],'ListId':_0x2bdef2['ListId'],'scheduledat':_0x2bdef2[_0x8480('0x20')]?_0x2bdef2['scheduledat']:moment()[_0x8480('0x21')](_0x8480('0x22')),'priority':_0x2bdef2[_0x8480('0x1f')]?_0x2bdef2[_0x8480('0x1f')]:0x2,'callback':_0x2bdef2[_0x8480('0x23')]?!![]:![],'callbackuniqueid':_0x2bdef2['callbackUniqueid']?_0x2bdef2['callbackUniqueid']:undefined,'callbackat':_0x2bdef2['callbackUniqueid']?moment()[_0x8480('0x21')](_0x8480('0x22')):undefined,'VoiceQueueId':_0x39dcc1['id']})[_0x8480('0x2a')](_0x17b3ae());}}}})[_0x8480('0x1b')](function(){return _0x92e24e['VoiceQueue'][_0x8480('0x2e')]({'where':{'type':'outbound'},'attributes':['id'],'include':[{'model':_0x92e24e[_0x8480('0x33')],'as':_0x8480('0x34'),'where':{'id':_0x2bdef2['ListId']}}]})['then'](function(_0x38ba09){if(_0x38ba09){var _0x4bad5f=[];for(var _0x5e7595=0x0,_0x21b02b;_0x5e7595<_0x38ba09[_0x8480('0x31')];_0x5e7595+=0x1){_0x21b02b=_0x38ba09[_0x5e7595][_0x8480('0x15')]({'plain':!![]});_0x92e24e[_0x8480('0x35')][_0x8480('0x27')]({'phone':_0x2bdef2[_0x8480('0xa')],'ContactId':_0x2bdef2['id'],'ListId':_0x2bdef2[_0x8480('0x29')],'VoiceQueueId':_0x21b02b['id']})[_0x8480('0x2a')](function(_0x753b40){logger[_0x8480('0x16')](_0x8480('0x36'),_0x8480('0x18'),_0x753b40[_0x8480('0x37')]);});}}});})[_0x8480('0x1b')](function(){return _0x92e24e['Campaign'][_0x8480('0x2e')]({'attributes':['id',_0x8480('0x2f')],'include':[{'model':_0x92e24e[_0x8480('0x33')],'as':'Lists','where':{'id':_0x2bdef2['ListId']}}]})[_0x8480('0x1b')](function(_0x163d4b){if(_0x163d4b){var _0x6b1e12=[];for(var _0x32d873=0x0,_0x23cad8;_0x32d873<_0x163d4b[_0x8480('0x31')];_0x32d873+=0x1){_0x23cad8=_0x163d4b[_0x32d873]['get']({'plain':!![]});switch(_0x23cad8[_0x8480('0x2f')]){case _0x8480('0x32'):_0x2168f7(_0x23cad8)['catch'](_0x551f55());break;case _0x8480('0x38'):_0x27ee42(_0x23cad8)[_0x8480('0x2a')](_0x551f55());break;default:_0x92e24e[_0x8480('0x1e')][_0x8480('0x27')]({'phone':_0x2bdef2['phone'],'ContactId':_0x2bdef2['id'],'ListId':_0x2bdef2[_0x8480('0x29')],'scheduledat':_0x2bdef2[_0x8480('0x20')]?_0x2bdef2[_0x8480('0x20')]:moment()[_0x8480('0x21')](_0x8480('0x22')),'priority':_0x2bdef2[_0x8480('0x1f')]?_0x2bdef2[_0x8480('0x1f')]:0x2,'callback':_0x2bdef2[_0x8480('0x23')]?!![]:![],'callbackuniqueid':_0x2bdef2[_0x8480('0x23')]?_0x2bdef2[_0x8480('0x23')]:undefined,'callbackat':_0x2bdef2['callbackUniqueid']?moment()[_0x8480('0x21')](_0x8480('0x22')):undefined,'CampaignId':_0x23cad8['id']})[_0x8480('0x2a')](_0x551f55());}}}});})['then'](function(){return _0x92e24e[_0x8480('0x39')]['findAll']({'attributes':['id'],'include':[{'model':_0x92e24e[_0x8480('0x33')],'as':_0x8480('0x34'),'where':{'id':_0x2bdef2[_0x8480('0x29')]}}]})[_0x8480('0x1b')](function(_0xb9228d){if(_0xb9228d){var _0x11f31d=[];for(var _0x5b944d=0x0,_0x4182c7;_0x5b944d<_0xb9228d['length'];_0x5b944d+=0x1){_0x4182c7=_0xb9228d[_0x5b944d][_0x8480('0x15')]({'plain':!![]});_0x92e24e[_0x8480('0x35')][_0x8480('0x27')]({'phone':_0x2bdef2[_0x8480('0xa')],'ContactId':_0x2bdef2['id'],'ListId':_0x2bdef2[_0x8480('0x29')],'CampaignId':_0x4182c7['id']})[_0x8480('0x2a')](function(_0x9f7ee){logger['error']('cmContact,\x20%s,\x20%s','afterCreate',_0x9f7ee['message']);});}}});})[_0x8480('0x1b')](function(){_0xb49809();})['catch'](function(_0x559d89){logger[_0x8480('0x16')](_0x8480('0x36'),_0x8480('0x18'),_0x559d89[_0x8480('0x37')]);_0xb49809(_0x559d89);});}else{_0xb49809(new Error('List\x20not\x20found'));}},'afterDestroy':function(_0x3b6503,_0x1ac480,_0x338ffb){var _0x343e92=_0x59f549['models'];var _0x2d74e8=_0x3b6503[_0x8480('0x15')]({'plain':!![]});return _0x343e92[_0x8480('0x1e')][_0x8480('0x2e')]({'raw':!![],'where':{'ListId':_0x2d74e8[_0x8480('0x29')],'ContactId':_0x2d74e8['id']}})[_0x8480('0x1b')](function(_0x387380){if(!_[_0x8480('0x3a')](_0x387380)){var _0x24ff04=[];for(var _0x4c84e0=0x0;_0x4c84e0<_0x387380[_0x8480('0x31')];_0x4c84e0+=0x1){var _0x40323b=_0x343e92['CmHopper'][_0x8480('0x3b')]({'where':{'ListId':_0x387380[_0x4c84e0][_0x8480('0x29')],'ContactId':_0x387380[_0x4c84e0]['ContactId'],'VoiceQueueId':_0x387380[_0x4c84e0][_0x8480('0x3c')],'CampaignId':_0x387380[_0x4c84e0][_0x8480('0x3d')]}});_0x24ff04[_0x8480('0x3e')](_0x40323b);}return BPromise[_0x8480('0x3f')](_0x24ff04);}})['then'](function(_0x468787){logger[_0x8480('0x40')](_0x8480('0x41'),util['inspect'](_0x468787,{'showHidden':![],'depth':null}));_0x338ffb();})[_0x8480('0x2a')](function(_0x7f91cb){logger[_0x8480('0x16')](_0x8480('0x42'),util[_0x8480('0x19')](_0x7f91cb,{'showHidden':![],'depth':null}));_0x338ffb(_0x7f91cb);});}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb8af=['./cmContact.socket','request','info','request\x20sent','debug','CmContact,\x20%s,\x20%s,\x20%s','stringify','error','CmContact,\x20%s,\x20%s','message','catch','GetCmContact','CmContact','findAll','options','where','attributes','limit','include','map','model','body','raw','keys','length','startsWith','update','table','cm_contacts','set','toString','sequelize','then','CreateCmContact','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter'];(function(_0x14f6df,_0x286f33){var _0x13e735=function(_0x266d36){while(--_0x266d36){_0x14f6df['push'](_0x14f6df['shift']());}};_0x13e735(++_0x286f33);}(_0xb8af,0xb8));var _0xfb8a=function(_0xb21889,_0x5ca32c){_0xb21889=_0xb21889-0x0;var _0xec8324=_0xb8af[_0xb21889];return _0xec8324;};'use strict';var _=require(_0xfb8a('0x0'));var util=require('util');var moment=require(_0xfb8a('0x1'));var BPromise=require(_0xfb8a('0x2'));var rs=require(_0xfb8a('0x3'));var fs=require('fs');var Redis=require(_0xfb8a('0x4'));var squel=require('squel');var db=require(_0xfb8a('0x5'))['db'];var utils=require(_0xfb8a('0x6'));var logger=require(_0xfb8a('0x7'))('rpc');var config=require(_0xfb8a('0x8'));var jayson=require(_0xfb8a('0x9'));var client=jayson[_0xfb8a('0xa')][_0xfb8a('0xb')]({'port':0x232a});config[_0xfb8a('0xc')]=_[_0xfb8a('0xd')](config['redis'],{'host':_0xfb8a('0xe'),'port':0x18eb});var socket=require(_0xfb8a('0xf'))(new Redis(config[_0xfb8a('0xc')]));require(_0xfb8a('0x10'))['register'](socket);function respondWithRpcPromise(_0x277425,_0x20e203,_0x151495){return new BPromise(function(_0x59714a,_0x2b27fe){return client[_0xfb8a('0x11')](_0x277425,_0x151495)['then'](function(_0x5085e8){logger[_0xfb8a('0x12')]('CmContact,\x20%s,\x20%s',_0x20e203,_0xfb8a('0x13'));logger[_0xfb8a('0x14')](_0xfb8a('0x15'),_0x20e203,'request\x20sent',JSON[_0xfb8a('0x16')](_0x5085e8));if(_0x5085e8[_0xfb8a('0x17')]){if(_0x5085e8[_0xfb8a('0x17')]['code']===0x1f4){logger[_0xfb8a('0x17')](_0xfb8a('0x18'),_0x20e203,_0x5085e8[_0xfb8a('0x17')][_0xfb8a('0x19')]);return _0x2b27fe(_0x5085e8[_0xfb8a('0x17')][_0xfb8a('0x19')]);}logger[_0xfb8a('0x17')](_0xfb8a('0x18'),_0x20e203,_0x5085e8[_0xfb8a('0x17')][_0xfb8a('0x19')]);return _0x59714a(_0x5085e8[_0xfb8a('0x17')][_0xfb8a('0x19')]);}else{logger['info'](_0xfb8a('0x18'),_0x20e203,'request\x20sent');_0x59714a(_0x5085e8['result'][_0xfb8a('0x19')]);}})[_0xfb8a('0x1a')](function(_0x42a9c4){logger[_0xfb8a('0x17')](_0xfb8a('0x18'),_0x20e203,_0x42a9c4);_0x2b27fe(_0x42a9c4);});});}exports[_0xfb8a('0x1b')]=function(_0x1ef5ea){var _0x3b9a1b=this;return new Promise(function(_0x547390,_0x5d7e1e){return db[_0xfb8a('0x1c')][_0xfb8a('0x1d')]({'raw':_0x1ef5ea[_0xfb8a('0x1e')]?_0x1ef5ea[_0xfb8a('0x1e')]['raw']===undefined?!![]:![]:!![],'where':_0x1ef5ea[_0xfb8a('0x1e')]?_0x1ef5ea['options'][_0xfb8a('0x1f')]||null:null,'attributes':_0x1ef5ea['options']?_0x1ef5ea[_0xfb8a('0x1e')][_0xfb8a('0x20')]||null:null,'limit':_0x1ef5ea['options']?_0x1ef5ea['options'][_0xfb8a('0x21')]||null:null,'include':_0x1ef5ea[_0xfb8a('0x1e')]?_0x1ef5ea[_0xfb8a('0x1e')][_0xfb8a('0x22')]?_[_0xfb8a('0x23')](_0x1ef5ea[_0xfb8a('0x1e')]['include'],function(_0x15fb0e){return{'model':db[_0x15fb0e['model']],'as':_0x15fb0e['as'],'attributes':_0x15fb0e[_0xfb8a('0x20')],'include':_0x15fb0e[_0xfb8a('0x22')]?_[_0xfb8a('0x23')](_0x15fb0e[_0xfb8a('0x22')],function(_0x23a776){return{'model':db[_0x23a776[_0xfb8a('0x24')]],'as':_0x23a776['as'],'attributes':_0x23a776[_0xfb8a('0x20')],'include':_0x23a776[_0xfb8a('0x22')]?_[_0xfb8a('0x23')](_0x23a776[_0xfb8a('0x22')],function(_0x38590b){return{'model':db[_0x38590b[_0xfb8a('0x24')]],'as':_0x38590b['as'],'attributes':_0x38590b['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x18b005){logger[_0xfb8a('0x12')](_0xfb8a('0x1b'),_0x1ef5ea);logger[_0xfb8a('0x14')]('GetCmContact',_0x1ef5ea,JSON[_0xfb8a('0x16')](_0x18b005));_0x547390(_0x18b005);})[_0xfb8a('0x1a')](function(_0x5a4204){logger[_0xfb8a('0x17')]('GetCmContact',_0x5a4204[_0xfb8a('0x19')],_0x1ef5ea);_0x5d7e1e(_0x3b9a1b[_0xfb8a('0x17')](0x1f4,_0x5a4204['message']));});});};exports['CreateCmContact']=function(_0x4fefb2){var _0xb42f25=this;return new Promise(function(_0x4a7ff9,_0x3610ce){return db['CmContact']['create'](_0x4fefb2[_0xfb8a('0x25')],{'raw':_0x4fefb2[_0xfb8a('0x1e')]?_0x4fefb2['options'][_0xfb8a('0x26')]===undefined?!![]:![]:!![]})['then'](function(_0x2cadf5){var _0x1c575d;for(var _0x3ad23b=0x0;_0x3ad23b<Object[_0xfb8a('0x27')](_0x4fefb2[_0xfb8a('0x25')])[_0xfb8a('0x28')];_0x3ad23b++){var _0xc5fb8f=Object[_0xfb8a('0x27')](_0x4fefb2[_0xfb8a('0x25')])[_0x3ad23b];if(_0xc5fb8f[_0xfb8a('0x29')]('cf_')){_0x1c575d=squel[_0xfb8a('0x2a')]()[_0xfb8a('0x2b')](_0xfb8a('0x2c'))[_0xfb8a('0x2d')](_0xc5fb8f,_0x4fefb2[_0xfb8a('0x25')][_0xc5fb8f])['where']('id\x20=\x20?',_0x2cadf5['id'])[_0xfb8a('0x2e')]();break;}}if(!_0x1c575d)return _0x2cadf5;return db[_0xfb8a('0x2f')]['query'](_0x1c575d)['then'](function(){return _0x2cadf5;});})[_0xfb8a('0x30')](function(_0x153095){logger[_0xfb8a('0x12')]('CreateCmContact',_0x4fefb2);logger[_0xfb8a('0x14')](_0xfb8a('0x31'),_0x4fefb2,JSON[_0xfb8a('0x16')](_0x153095));_0x4a7ff9(_0x153095);})[_0xfb8a('0x1a')](function(_0x26bd6e){logger['error'](_0xfb8a('0x31'),_0x26bd6e[_0xfb8a('0x19')],_0x4fefb2);_0x3610ce(_0xb42f25[_0xfb8a('0x17')](0x1f4,_0x26bd6e[_0xfb8a('0x19')]));});});};
\ No newline at end of file
+var _0x75a7=['model','attributes','stringify','CreateCmContact','create','body','keys','length','startsWith','update','table','set','id\x20=\x20?','toString','sequelize','query','lodash','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/environment','jayson/promise','client','redis','defaults','socket.io-emitter','register','request','then','info','CmContact,\x20%s,\x20%s','request\x20sent','debug','CmContact,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','GetCmContact','CmContact','findAll','options','raw','where','limit','map','include'];(function(_0x31150e,_0x4da817){var _0x3dd8d6=function(_0x4d7bb4){while(--_0x4d7bb4){_0x31150e['push'](_0x31150e['shift']());}};_0x3dd8d6(++_0x4da817);}(_0x75a7,0x16e));var _0x775a=function(_0x1ba9a6,_0x1de58a){_0x1ba9a6=_0x1ba9a6-0x0;var _0x96da81=_0x75a7[_0x1ba9a6];return _0x96da81;};'use strict';var _=require(_0x775a('0x0'));var util=require('util');var moment=require(_0x775a('0x1'));var BPromise=require(_0x775a('0x2'));var rs=require(_0x775a('0x3'));var fs=require('fs');var Redis=require('ioredis');var squel=require('squel');var db=require(_0x775a('0x4'))['db'];var utils=require(_0x775a('0x5'));var logger=require('../../config/logger')('rpc');var config=require(_0x775a('0x6'));var jayson=require(_0x775a('0x7'));var client=jayson[_0x775a('0x8')]['http']({'port':0x232a});config[_0x775a('0x9')]=_[_0x775a('0xa')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x775a('0xb'))(new Redis(config[_0x775a('0x9')]));require('./cmContact.socket')[_0x775a('0xc')](socket);function respondWithRpcPromise(_0x2393e2,_0x118d0e,_0xf68181){return new BPromise(function(_0x4ea8c1,_0x5d6f8b){return client[_0x775a('0xd')](_0x2393e2,_0xf68181)[_0x775a('0xe')](function(_0x20e55a){logger[_0x775a('0xf')](_0x775a('0x10'),_0x118d0e,_0x775a('0x11'));logger[_0x775a('0x12')](_0x775a('0x13'),_0x118d0e,_0x775a('0x11'),JSON['stringify'](_0x20e55a));if(_0x20e55a[_0x775a('0x14')]){if(_0x20e55a[_0x775a('0x14')][_0x775a('0x15')]===0x1f4){logger[_0x775a('0x14')](_0x775a('0x10'),_0x118d0e,_0x20e55a[_0x775a('0x14')][_0x775a('0x16')]);return _0x5d6f8b(_0x20e55a[_0x775a('0x14')][_0x775a('0x16')]);}logger['error'](_0x775a('0x10'),_0x118d0e,_0x20e55a['error'][_0x775a('0x16')]);return _0x4ea8c1(_0x20e55a[_0x775a('0x14')]['message']);}else{logger['info']('CmContact,\x20%s,\x20%s',_0x118d0e,_0x775a('0x11'));_0x4ea8c1(_0x20e55a[_0x775a('0x17')][_0x775a('0x16')]);}})[_0x775a('0x18')](function(_0x5b1aae){logger['error'](_0x775a('0x10'),_0x118d0e,_0x5b1aae);_0x5d6f8b(_0x5b1aae);});});}exports[_0x775a('0x19')]=function(_0x23ff52){var _0x133e3f=this;return new Promise(function(_0x461116,_0x4c7d07){return db[_0x775a('0x1a')][_0x775a('0x1b')]({'raw':_0x23ff52[_0x775a('0x1c')]?_0x23ff52[_0x775a('0x1c')][_0x775a('0x1d')]===undefined?!![]:![]:!![],'where':_0x23ff52[_0x775a('0x1c')]?_0x23ff52[_0x775a('0x1c')][_0x775a('0x1e')]||null:null,'attributes':_0x23ff52[_0x775a('0x1c')]?_0x23ff52[_0x775a('0x1c')]['attributes']||null:null,'limit':_0x23ff52['options']?_0x23ff52[_0x775a('0x1c')][_0x775a('0x1f')]||null:null,'include':_0x23ff52[_0x775a('0x1c')]?_0x23ff52[_0x775a('0x1c')]['include']?_[_0x775a('0x20')](_0x23ff52[_0x775a('0x1c')][_0x775a('0x21')],function(_0x3f9fa0){return{'model':db[_0x3f9fa0[_0x775a('0x22')]],'as':_0x3f9fa0['as'],'attributes':_0x3f9fa0['attributes'],'include':_0x3f9fa0['include']?_[_0x775a('0x20')](_0x3f9fa0[_0x775a('0x21')],function(_0xbe4d9b){return{'model':db[_0xbe4d9b['model']],'as':_0xbe4d9b['as'],'attributes':_0xbe4d9b[_0x775a('0x23')],'include':_0xbe4d9b[_0x775a('0x21')]?_['map'](_0xbe4d9b['include'],function(_0x23da53){return{'model':db[_0x23da53[_0x775a('0x22')]],'as':_0x23da53['as'],'attributes':_0x23da53[_0x775a('0x23')]};}):[]};}):[]};}):[]:[]})[_0x775a('0xe')](function(_0x5dbeb7){logger[_0x775a('0xf')](_0x775a('0x19'),_0x23ff52);logger[_0x775a('0x12')]('GetCmContact',_0x23ff52,JSON[_0x775a('0x24')](_0x5dbeb7));_0x461116(_0x5dbeb7);})[_0x775a('0x18')](function(_0x4b5f7a){logger[_0x775a('0x14')]('GetCmContact',_0x4b5f7a[_0x775a('0x16')],_0x23ff52);_0x4c7d07(_0x133e3f[_0x775a('0x14')](0x1f4,_0x4b5f7a[_0x775a('0x16')]));});});};exports[_0x775a('0x25')]=function(_0x522441){var _0x2162b4=this;return new Promise(function(_0x206623,_0x3db597){return db[_0x775a('0x1a')][_0x775a('0x26')](_0x522441[_0x775a('0x27')],{'raw':_0x522441['options']?_0x522441[_0x775a('0x1c')]['raw']===undefined?!![]:![]:!![]})[_0x775a('0xe')](function(_0x347e89){var _0x4b8f6f;for(var _0x281726=0x0;_0x281726<Object[_0x775a('0x28')](_0x522441[_0x775a('0x27')])[_0x775a('0x29')];_0x281726++){var _0x3d90cc=Object[_0x775a('0x28')](_0x522441['body'])[_0x281726];if(_0x3d90cc[_0x775a('0x2a')]('cf_')){_0x4b8f6f=squel[_0x775a('0x2b')]()[_0x775a('0x2c')]('cm_contacts')[_0x775a('0x2d')](_0x3d90cc,_0x522441[_0x775a('0x27')][_0x3d90cc])[_0x775a('0x1e')](_0x775a('0x2e'),_0x347e89['id'])[_0x775a('0x2f')]();break;}}if(!_0x4b8f6f)return _0x347e89;return db[_0x775a('0x30')][_0x775a('0x31')](_0x4b8f6f)[_0x775a('0xe')](function(){return _0x347e89;});})['then'](function(_0x53d0fe){logger['info'](_0x775a('0x25'),_0x522441);logger[_0x775a('0x12')](_0x775a('0x25'),_0x522441,JSON[_0x775a('0x24')](_0x53d0fe));_0x206623(_0x53d0fe);})[_0x775a('0x18')](function(_0xacf22b){logger[_0x775a('0x14')](_0x775a('0x25'),_0xacf22b[_0x775a('0x16')],_0x522441);_0x3db597(_0x2162b4[_0x775a('0x14')](0x1f4,_0xacf22b['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['register','length','cmContact:','./cmContact.events','save','remove','emit','removeListener'];(function(_0x40a045,_0x516f0e){var _0x1a687c=function(_0x48c9fe){while(--_0x48c9fe){_0x40a045['push'](_0x40a045['shift']());}};_0x1a687c(++_0x516f0e);}(_0xa9e0,0x123));var _0x0a9e=function(_0x31e29a,_0x349c9b){_0x31e29a=_0x31e29a-0x0;var _0x32d892=_0xa9e0[_0x31e29a];return _0x32d892;};'use strict';var CmContactEvents=require(_0x0a9e('0x0'));var events=[_0x0a9e('0x1'),_0x0a9e('0x2'),'update'];function createListener(_0x550fbc,_0x18d5c9){return function(_0x4ce2f1){_0x18d5c9[_0x0a9e('0x3')](_0x550fbc,_0x4ce2f1);};}function removeListener(_0x432180,_0x2ab90b){return function(){CmContactEvents[_0x0a9e('0x4')](_0x432180,_0x2ab90b);};}exports[_0x0a9e('0x5')]=function(_0x57b080){for(var _0x219af0=0x0,_0x441e3a=events[_0x0a9e('0x6')];_0x219af0<_0x441e3a;_0x219af0++){var _0x5f41ea=events[_0x219af0];var _0x503809=createListener(_0x0a9e('0x7')+_0x5f41ea,_0x57b080);CmContactEvents['on'](_0x5f41ea,_0x503809);}};
\ No newline at end of file
+var _0xa9e0=['register','length','cmContact:','./cmContact.events','save','remove','emit','removeListener'];(function(_0x40a045,_0x516f0e){var _0x1a687c=function(_0x48c9fe){while(--_0x48c9fe){_0x40a045['push'](_0x40a045['shift']());}};_0x1a687c(++_0x516f0e);}(_0xa9e0,0x123));var _0x0a9e=function(_0x3c4737,_0x2329ec){_0x3c4737=_0x3c4737-0x0;var _0x2bb926=_0xa9e0[_0x3c4737];return _0x2bb926;};'use strict';var CmContactEvents=require(_0x0a9e('0x0'));var events=[_0x0a9e('0x1'),_0x0a9e('0x2'),'update'];function createListener(_0x550fbc,_0x18d5c9){return function(_0x4ce2f1){_0x18d5c9[_0x0a9e('0x3')](_0x550fbc,_0x4ce2f1);};}function removeListener(_0x432180,_0x2ab90b){return function(){CmContactEvents[_0x0a9e('0x4')](_0x432180,_0x2ab90b);};}exports[_0x0a9e('0x5')]=function(_0x57b080){for(var _0x219af0=0x0,_0x441e3a=events[_0x0a9e('0x6')];_0x219af0<_0x441e3a;_0x219af0++){var _0x5f41ea=events[_0x219af0];var _0x503809=createListener(_0x0a9e('0x7')+_0x5f41ea,_0x57b080);CmContactEvents['on'](_0x5f41ea,_0x503809);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3ef4=['../../components/auth/service','../../components/interaction/service','../../config/environment','./cmContact.controller','get','index','/describe','describe','/:id','isAuthenticated','show','/:id/tags','getTags','/:id/hopper_histories','getHopperHistories','/:id/hopper_finals','getHopperFinals','getJscriptySessions','getJourney','post','/merge','merge','bulkCreate','setTags','join','server/files/tmp','originalname','replace','%s-%s%s','basename','extname','now','/csv','single','uploadCsv','root','format','/upload','file','upload','put','destroy','exports','util','path','express','Router','fs-extra'];(function(_0x534c20,_0x5a9e1c){var _0x5ae382=function(_0x22c5fd){while(--_0x22c5fd){_0x534c20['push'](_0x534c20['shift']());}};_0x5ae382(++_0x5a9e1c);}(_0x3ef4,0xeb));var _0x43ef=function(_0x5db65f,_0xf89cc8){_0x5db65f=_0x5db65f-0x0;var _0x34fb4b=_0x3ef4[_0x5db65f];return _0x34fb4b;};'use strict';var multer=require('multer');var util=require(_0x43ef('0x0'));var path=require(_0x43ef('0x1'));var timeout=require('connect-timeout');var express=require(_0x43ef('0x2'));var router=express[_0x43ef('0x3')]();var fs_extra=require(_0x43ef('0x4'));var auth=require(_0x43ef('0x5'));var interaction=require(_0x43ef('0x6'));var config=require(_0x43ef('0x7'));var controller=require(_0x43ef('0x8'));router[_0x43ef('0x9')]('/',auth['isAuthenticated'](),controller[_0x43ef('0xa')]);router[_0x43ef('0x9')](_0x43ef('0xb'),auth['isAuthenticated'](),controller[_0x43ef('0xc')]);router[_0x43ef('0x9')](_0x43ef('0xd'),auth[_0x43ef('0xe')](),controller[_0x43ef('0xf')]);router[_0x43ef('0x9')](_0x43ef('0x10'),auth['isAuthenticated'](),controller[_0x43ef('0x11')]);router[_0x43ef('0x9')]('/:id/hoppers',auth[_0x43ef('0xe')](),controller['getHoppers']);router[_0x43ef('0x9')](_0x43ef('0x12'),auth['isAuthenticated'](),controller[_0x43ef('0x13')]);router[_0x43ef('0x9')](_0x43ef('0x14'),auth[_0x43ef('0xe')](),controller[_0x43ef('0x15')]);router['get']('/:id/jscripty_sessions',auth[_0x43ef('0xe')](),controller[_0x43ef('0x16')]);router[_0x43ef('0x9')]('/:id/journey',auth['isAuthenticated'](),controller[_0x43ef('0x17')]);router[_0x43ef('0x18')](_0x43ef('0x19'),auth['isAuthenticated'](),controller[_0x43ef('0x1a')]);router['post']('/',auth[_0x43ef('0xe')](),controller['create']);router[_0x43ef('0x18')]('/create_many',auth['isAuthenticated'](),controller[_0x43ef('0x1b')]);router['post'](_0x43ef('0x10'),auth['isAuthenticated'](),controller[_0x43ef('0x1c')]);var upload=multer({'storage':multer['diskStorage']({'destination':function(_0x35cf4d,_0x253b7f,_0x2230db){_0x2230db(null,path[_0x43ef('0x1d')](config['root'],_0x43ef('0x1e')));},'filename':function(_0x2ea1ae,_0x98c5f5,_0xf6a9e){_0x98c5f5[_0x43ef('0x1f')]=_0x98c5f5[_0x43ef('0x1f')][_0x43ef('0x20')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');_0xf6a9e(null,util['format'](_0x43ef('0x21'),path[_0x43ef('0x22')](_0x98c5f5[_0x43ef('0x1f')],path[_0x43ef('0x23')](_0x98c5f5[_0x43ef('0x1f')])),Date[_0x43ef('0x24')](),path[_0x43ef('0x23')](_0x98c5f5[_0x43ef('0x1f')])));}})});router[_0x43ef('0x18')](_0x43ef('0x25'),upload[_0x43ef('0x26')]('file'),controller[_0x43ef('0x27')]);var upload=multer({'storage':multer['diskStorage']({'destination':function(_0x29c382,_0x480bec,_0x539fdc){_0x539fdc(null,path[_0x43ef('0x1d')](config[_0x43ef('0x28')],'server/files/tmp'));},'filename':function(_0x174504,_0x38b51d,_0x3c21fe){_0x38b51d[_0x43ef('0x1f')]=_0x38b51d[_0x43ef('0x1f')]['replace'](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');_0x3c21fe(null,util[_0x43ef('0x29')](_0x43ef('0x21'),path[_0x43ef('0x22')](_0x38b51d[_0x43ef('0x1f')],path['extname'](_0x38b51d[_0x43ef('0x1f')])),Date[_0x43ef('0x24')](),path[_0x43ef('0x23')](_0x38b51d[_0x43ef('0x1f')])));}})});router[_0x43ef('0x18')](_0x43ef('0x2a'),upload[_0x43ef('0x26')](_0x43ef('0x2b')),controller[_0x43ef('0x2c')]);router[_0x43ef('0x18')]('/upload/:id',auth['isAuthenticated'](),controller['import']);router[_0x43ef('0x2d')]('/:id',auth[_0x43ef('0xe')](),controller['update']);router['delete'](_0x43ef('0xd'),auth[_0x43ef('0xe')](),controller[_0x43ef('0x2e')]);module[_0x43ef('0x2f')]=router;
\ No newline at end of file
+var _0x5791=['post','/merge','merge','create','/create_many','bulkCreate','setTags','join','root','server/files/tmp','originalname','replace','basename','extname','/csv','single','file','uploadCsv','diskStorage','format','now','/upload','upload','import','/:id','delete','destroy','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../config/environment','./cmContact.controller','get','/describe','isAuthenticated','describe','show','/:id/tags','getTags','/:id/hoppers','getHoppers','/:id/hopper_histories','getHopperHistories','getHopperFinals','/:id/jscripty_sessions','getJscriptySessions','/:id/journey','getJourney'];(function(_0x3d8052,_0x215fe0){var _0x316d0e=function(_0x494d9f){while(--_0x494d9f){_0x3d8052['push'](_0x3d8052['shift']());}};_0x316d0e(++_0x215fe0);}(_0x5791,0x88));var _0x1579=function(_0xa277de,_0x2ad712){_0xa277de=_0xa277de-0x0;var _0x27c2da=_0x5791[_0xa277de];return _0x27c2da;};'use strict';var multer=require(_0x1579('0x0'));var util=require(_0x1579('0x1'));var path=require(_0x1579('0x2'));var timeout=require(_0x1579('0x3'));var express=require(_0x1579('0x4'));var router=express[_0x1579('0x5')]();var fs_extra=require(_0x1579('0x6'));var auth=require(_0x1579('0x7'));var interaction=require('../../components/interaction/service');var config=require(_0x1579('0x8'));var controller=require(_0x1579('0x9'));router[_0x1579('0xa')]('/',auth['isAuthenticated'](),controller['index']);router[_0x1579('0xa')](_0x1579('0xb'),auth[_0x1579('0xc')](),controller[_0x1579('0xd')]);router[_0x1579('0xa')]('/:id',auth[_0x1579('0xc')](),controller[_0x1579('0xe')]);router[_0x1579('0xa')](_0x1579('0xf'),auth[_0x1579('0xc')](),controller[_0x1579('0x10')]);router['get'](_0x1579('0x11'),auth[_0x1579('0xc')](),controller[_0x1579('0x12')]);router[_0x1579('0xa')](_0x1579('0x13'),auth[_0x1579('0xc')](),controller[_0x1579('0x14')]);router[_0x1579('0xa')]('/:id/hopper_finals',auth['isAuthenticated'](),controller[_0x1579('0x15')]);router[_0x1579('0xa')](_0x1579('0x16'),auth[_0x1579('0xc')](),controller[_0x1579('0x17')]);router[_0x1579('0xa')](_0x1579('0x18'),auth['isAuthenticated'](),controller[_0x1579('0x19')]);router[_0x1579('0x1a')](_0x1579('0x1b'),auth[_0x1579('0xc')](),controller[_0x1579('0x1c')]);router['post']('/',auth[_0x1579('0xc')](),controller[_0x1579('0x1d')]);router[_0x1579('0x1a')](_0x1579('0x1e'),auth[_0x1579('0xc')](),controller[_0x1579('0x1f')]);router['post'](_0x1579('0xf'),auth[_0x1579('0xc')](),controller[_0x1579('0x20')]);var upload=multer({'storage':multer['diskStorage']({'destination':function(_0x323992,_0x14d800,_0x3c0db0){_0x3c0db0(null,path[_0x1579('0x21')](config[_0x1579('0x22')],_0x1579('0x23')));},'filename':function(_0x5a4cc0,_0x54291d,_0x5d6ebe){_0x54291d[_0x1579('0x24')]=_0x54291d[_0x1579('0x24')][_0x1579('0x25')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');_0x5d6ebe(null,util['format']('%s-%s%s',path[_0x1579('0x26')](_0x54291d[_0x1579('0x24')],path['extname'](_0x54291d['originalname'])),Date['now'](),path[_0x1579('0x27')](_0x54291d[_0x1579('0x24')])));}})});router['post'](_0x1579('0x28'),upload[_0x1579('0x29')](_0x1579('0x2a')),controller[_0x1579('0x2b')]);var upload=multer({'storage':multer[_0x1579('0x2c')]({'destination':function(_0x18ab1d,_0x39c67f,_0x419529){_0x419529(null,path[_0x1579('0x21')](config[_0x1579('0x22')],_0x1579('0x23')));},'filename':function(_0xbbed9c,_0x1ab086,_0x431207){_0x1ab086[_0x1579('0x24')]=_0x1ab086['originalname'][_0x1579('0x25')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');_0x431207(null,util[_0x1579('0x2d')]('%s-%s%s',path[_0x1579('0x26')](_0x1ab086[_0x1579('0x24')],path[_0x1579('0x27')](_0x1ab086['originalname'])),Date[_0x1579('0x2e')](),path[_0x1579('0x27')](_0x1ab086[_0x1579('0x24')])));}})});router['post'](_0x1579('0x2f'),upload['single'](_0x1579('0x2a')),controller[_0x1579('0x30')]);router['post']('/upload/:id',auth[_0x1579('0xc')](),controller[_0x1579('0x31')]);router['put'](_0x1579('0x32'),auth[_0x1579('0xc')](),controller['update']);router[_0x1579('0x33')](_0x1579('0x32'),auth['isAuthenticated'](),controller[_0x1579('0x34')]);module[_0x1579('0x35')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcde1=['name','type','select','parse','values','isArray','stringify','BOOLEAN','ENUM','voice','lodash','exports','VIRTUAL','getDataValue','STRING','setDataValue','alias'];(function(_0x5ab478,_0x398bf8){var _0x3377ab=function(_0x3604c1){while(--_0x3604c1){_0x5ab478['push'](_0x5ab478['shift']());}};_0x3377ab(++_0x398bf8);}(_0xcde1,0xf8));var _0x1cde=function(_0x3fc464,_0x49d7c4){_0x3fc464=_0x3fc464-0x0;var _0x4b3ab7=_0xcde1[_0x3fc464];return _0x4b3ab7;};'use strict';var Sequelize=require('sequelize');var _=require(_0x1cde('0x0'));module[_0x1cde('0x1')]={'name':{'type':Sequelize[_0x1cde('0x2')],'get':function(_0x46f0ce){return this[_0x1cde('0x3')]('alias');}},'alias':{'type':Sequelize[_0x1cde('0x4')],'allowNull':![],'set':function(_0x40ee75){this[_0x1cde('0x5')](_0x1cde('0x6'),_0x40ee75?_0x40ee75:this[_0x1cde('0x3')](_0x1cde('0x7')));}},'type':{'type':Sequelize[_0x1cde('0x4')],'allowNull':![]},'values':{'type':Sequelize['TEXT']('long'),'get':function(){if(this[_0x1cde('0x3')](_0x1cde('0x8'))===_0x1cde('0x9')){return JSON[_0x1cde('0xa')](this[_0x1cde('0x3')](_0x1cde('0xb')));}else{return this[_0x1cde('0x3')](_0x1cde('0xb'));}},'set':function(_0x2e241a){if(Array[_0x1cde('0xc')](_0x2e241a)){this[_0x1cde('0x5')](_0x1cde('0xb'),JSON[_0x1cde('0xd')](_0x2e241a));}else{this[_0x1cde('0x5')](_0x1cde('0xb'),_0x2e241a);}}},'required':{'type':Sequelize[_0x1cde('0xe')],'defaultValue':![]},'clickToAction':{'type':Sequelize[_0x1cde('0xe')],'defaultValue':![]},'actionType':{'type':Sequelize[_0x1cde('0xf')](_0x1cde('0x10'))}};
\ No newline at end of file
+var _0xfb3b=['name','TEXT','long','values','isArray','BOOLEAN','voice','sequelize','lodash','exports','VIRTUAL','getDataValue','alias','STRING','setDataValue'];(function(_0x4392af,_0xec5afe){var _0x9fa8eb=function(_0x41d7a4){while(--_0x41d7a4){_0x4392af['push'](_0x4392af['shift']());}};_0x9fa8eb(++_0xec5afe);}(_0xfb3b,0x1c9));var _0xbfb3=function(_0x3af92b,_0x14e3e3){_0x3af92b=_0x3af92b-0x0;var _0xdb2df9=_0xfb3b[_0x3af92b];return _0xdb2df9;};'use strict';var Sequelize=require(_0xbfb3('0x0'));var _=require(_0xbfb3('0x1'));module[_0xbfb3('0x2')]={'name':{'type':Sequelize[_0xbfb3('0x3')],'get':function(_0x50768d){return this[_0xbfb3('0x4')](_0xbfb3('0x5'));}},'alias':{'type':Sequelize[_0xbfb3('0x6')],'allowNull':![],'set':function(_0x27dd87){this[_0xbfb3('0x7')](_0xbfb3('0x5'),_0x27dd87?_0x27dd87:this['getDataValue'](_0xbfb3('0x8')));}},'type':{'type':Sequelize[_0xbfb3('0x6')],'allowNull':![]},'values':{'type':Sequelize[_0xbfb3('0x9')](_0xbfb3('0xa')),'get':function(){if(this[_0xbfb3('0x4')]('type')==='select'){return JSON['parse'](this['getDataValue'](_0xbfb3('0xb')));}else{return this[_0xbfb3('0x4')]('values');}},'set':function(_0x42090e){if(Array[_0xbfb3('0xc')](_0x42090e)){this['setDataValue'](_0xbfb3('0xb'),JSON['stringify'](_0x42090e));}else{this[_0xbfb3('0x7')](_0xbfb3('0xb'),_0x42090e);}}},'required':{'type':Sequelize[_0xbfb3('0xd')],'defaultValue':![]},'clickToAction':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'actionType':{'type':Sequelize['ENUM'](_0xbfb3('0xe'))}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2724=['query','keys','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','filter','where','merge','type','VIRTUAL','options','includeAll','include','findAll','catch','show','params','filters','body','find','transaction','Sequelize','text','TEXT','number','INTEGER','switch','BOOLEAN','defaultValue','sequelize','queryInterface','cm_contacts','format','cf_%d','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','status','json','offset','undefined','limit','count','set','apply','reject','save','update','destroy','then','sendStatus','error','stack','name','send','index','map','CmCustomField','rawAttributes','model'];(function(_0x46660a,_0x2ba7e1){var _0x2a8f0f=function(_0xc819e8){while(--_0xc819e8){_0x46660a['push'](_0x46660a['shift']());}};_0x2a8f0f(++_0x2ba7e1);}(_0x2724,0x135));var _0x4272=function(_0x215159,_0x4bebb9){_0x215159=_0x215159-0x0;var _0x3b4ddd=_0x2724[_0x215159];return _0x3b4ddd;};'use strict';var emlformat=require(_0x4272('0x0'));var rimraf=require(_0x4272('0x1'));var zipdir=require(_0x4272('0x2'));var jsonpatch=require(_0x4272('0x3'));var rp=require(_0x4272('0x4'));var moment=require('moment');var BPromise=require(_0x4272('0x5'));var Mustache=require(_0x4272('0x6'));var util=require(_0x4272('0x7'));var path=require(_0x4272('0x8'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x4272('0x9'));var fs=require('fs');var fs_extra=require(_0x4272('0xa'));var _=require(_0x4272('0xb'));var squel=require(_0x4272('0xc'));var crypto=require(_0x4272('0xd'));var jsforce=require(_0x4272('0xe'));var deskjs=require(_0x4272('0xf'));var toCsv=require(_0x4272('0x10'));var querystring=require(_0x4272('0x11'));var Papa=require(_0x4272('0x12'));var Redis=require(_0x4272('0x13'));var authService=require(_0x4272('0x14'));var qs=require('../../components/parsers/qs');var as=require(_0x4272('0x15'));var hardwareService=require(_0x4272('0x16'));var logger=require(_0x4272('0x17'))(_0x4272('0x18'));var utils=require(_0x4272('0x19'));var config=require(_0x4272('0x1a'));var licenseUtil=require('../../config/license/util');var db=require(_0x4272('0x1b'))['db'];function respondWithStatusCode(_0x30768f,_0x1270f1){_0x1270f1=_0x1270f1||0xcc;return function(_0x56bbf3){if(_0x56bbf3){return _0x30768f['sendStatus'](_0x1270f1);}return _0x30768f[_0x4272('0x1c')](_0x1270f1)['end']();};}function respondWithResult(_0xdb5f2b,_0xf5c6d5){_0xf5c6d5=_0xf5c6d5||0xc8;return function(_0x1bde5f){if(_0x1bde5f){return _0xdb5f2b['status'](_0xf5c6d5)[_0x4272('0x1d')](_0x1bde5f);}};}function respondWithFilteredResult(_0x622b7a,_0x44dcf4){return function(_0x1751e1){if(_0x1751e1){var _0x5e89c3=typeof _0x44dcf4[_0x4272('0x1e')]===_0x4272('0x1f')&&typeof _0x44dcf4[_0x4272('0x20')]===_0x4272('0x1f');var _0x4cc34b=_0x1751e1[_0x4272('0x21')];var _0x560c42=_0x5e89c3?0x0:_0x44dcf4['offset'];var _0x25ba75=_0x5e89c3?_0x1751e1[_0x4272('0x21')]:_0x44dcf4[_0x4272('0x1e')]+_0x44dcf4[_0x4272('0x20')];var _0x3ba60d;if(_0x25ba75>=_0x4cc34b){_0x25ba75=_0x4cc34b;_0x3ba60d=0xc8;}else{_0x3ba60d=0xce;}_0x622b7a[_0x4272('0x1c')](_0x3ba60d);return _0x622b7a[_0x4272('0x22')]('Content-Range',_0x560c42+'-'+_0x25ba75+'/'+_0x4cc34b)[_0x4272('0x1d')](_0x1751e1);}return null;};}function patchUpdates(_0xba44cc){return function(_0x18f233){try{jsonpatch[_0x4272('0x23')](_0x18f233,_0xba44cc,!![]);}catch(_0x3b13fc){return BPromise[_0x4272('0x24')](_0x3b13fc);}return _0x18f233[_0x4272('0x25')]();};}function saveUpdates(_0x57a20b,_0x331978){return function(_0x5c88c9){if(_0x5c88c9){return _0x5c88c9[_0x4272('0x26')](_0x57a20b)['then'](function(_0x281c9b){return _0x281c9b;});}return null;};}function removeEntity(_0x1ad67d,_0x1c7135){return function(_0x3018c0){if(_0x3018c0){return _0x3018c0[_0x4272('0x27')]()[_0x4272('0x28')](function(){_0x1ad67d[_0x4272('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x1b6a79,_0x5aa5f3){return function(_0x5a9d05){if(!_0x5a9d05){_0x1b6a79[_0x4272('0x29')](0x194);}return _0x5a9d05;};}function handleError(_0x5860e4,_0x14eb42){_0x14eb42=_0x14eb42||0x1f4;return function(_0x38fcd2){logger[_0x4272('0x2a')](_0x38fcd2[_0x4272('0x2b')]);if(_0x38fcd2[_0x4272('0x2c')]){delete _0x38fcd2[_0x4272('0x2c')];}_0x5860e4[_0x4272('0x1c')](_0x14eb42)[_0x4272('0x2d')](_0x38fcd2);};}exports[_0x4272('0x2e')]=function(_0x168ac6,_0x51bcd8){var _0x1c714f={},_0x7a55db={},_0x2f49fb={'count':0x0,'rows':[]};var _0x2c7ddf=_[_0x4272('0x2f')](db[_0x4272('0x30')][_0x4272('0x31')],function(_0x476231){return{'name':_0x476231['fieldName'],'type':_0x476231['type']['key']};});_0x7a55db[_0x4272('0x32')]=_['differenceBy'](_[_0x4272('0x2f')](_0x2c7ddf,_0x4272('0x2c')),[_0x4272('0x2c')]);_0x7a55db[_0x4272('0x33')]=_[_0x4272('0x34')](_0x168ac6[_0x4272('0x33')]);_0x7a55db['filters']=_['intersection'](_0x7a55db[_0x4272('0x32')],_0x7a55db[_0x4272('0x33')]);_0x1c714f[_0x4272('0x35')]=_[_0x4272('0x36')](_0x7a55db[_0x4272('0x32')],qs[_0x4272('0x37')](_0x168ac6['query'][_0x4272('0x37')]));_0x1c714f['attributes']=_0x1c714f[_0x4272('0x35')][_0x4272('0x38')]?_0x1c714f[_0x4272('0x35')]:_0x7a55db[_0x4272('0x32')];if(!_0x168ac6[_0x4272('0x33')][_0x4272('0x39')](_0x4272('0x3a'))){_0x1c714f[_0x4272('0x20')]=qs[_0x4272('0x20')](_0x168ac6[_0x4272('0x33')][_0x4272('0x20')]);_0x1c714f[_0x4272('0x1e')]=qs[_0x4272('0x1e')](_0x168ac6['query']['offset']);}_0x1c714f[_0x4272('0x3b')]=qs[_0x4272('0x3c')](_0x168ac6[_0x4272('0x33')][_0x4272('0x3c')]);_0x1c714f['where']=qs['filters'](_['pick'](_0x168ac6[_0x4272('0x33')],_0x7a55db['filters']),_0x2c7ddf);if(_0x168ac6[_0x4272('0x33')][_0x4272('0x3d')]){_0x1c714f[_0x4272('0x3e')]=_[_0x4272('0x3f')](_0x1c714f[_0x4272('0x3e')],{'$or':_[_0x4272('0x2f')](_0x2c7ddf,function(_0x17b48c){if(_0x17b48c[_0x4272('0x40')]!==_0x4272('0x41')){var _0x5b1f8c={};_0x5b1f8c[_0x17b48c[_0x4272('0x2c')]]={'$like':'%'+_0x168ac6[_0x4272('0x33')][_0x4272('0x3d')]+'%'};return _0x5b1f8c;}})});}_0x1c714f=_[_0x4272('0x3f')]({},_0x1c714f,_0x168ac6[_0x4272('0x42')]);var _0x2ebcf4={'where':_0x1c714f[_0x4272('0x3e')]};return db[_0x4272('0x30')][_0x4272('0x21')](_0x2ebcf4)['then'](function(_0x319e9c){_0x2f49fb['count']=_0x319e9c;if(_0x168ac6[_0x4272('0x33')][_0x4272('0x43')]){_0x1c714f[_0x4272('0x44')]=[{'all':!![]}];}return db[_0x4272('0x30')][_0x4272('0x45')](_0x1c714f);})['then'](function(_0xb5d14f){_0x2f49fb['rows']=_0xb5d14f;return _0x2f49fb;})['then'](respondWithFilteredResult(_0x51bcd8,_0x1c714f))[_0x4272('0x46')](handleError(_0x51bcd8,null));};exports[_0x4272('0x47')]=function(_0x16702a,_0x4b79d6){var _0x1f308f={'raw':!![],'where':{'id':_0x16702a[_0x4272('0x48')]['id']}},_0x5a7b73={};_0x5a7b73[_0x4272('0x32')]=_['keys'](db[_0x4272('0x30')][_0x4272('0x31')]);_0x5a7b73[_0x4272('0x33')]=_[_0x4272('0x34')](_0x16702a[_0x4272('0x33')]);_0x5a7b73[_0x4272('0x49')]=_['intersection'](_0x5a7b73['model'],_0x5a7b73[_0x4272('0x33')]);_0x1f308f[_0x4272('0x35')]=_['intersection'](_0x5a7b73[_0x4272('0x32')],qs[_0x4272('0x37')](_0x16702a[_0x4272('0x33')][_0x4272('0x37')]));_0x1f308f[_0x4272('0x35')]=_0x1f308f[_0x4272('0x35')]['length']?_0x1f308f[_0x4272('0x35')]:_0x5a7b73[_0x4272('0x32')];if(_0x16702a[_0x4272('0x33')][_0x4272('0x43')]){_0x1f308f[_0x4272('0x44')]=[{'all':!![]}];}_0x1f308f=_[_0x4272('0x3f')]({},_0x1f308f,_0x16702a[_0x4272('0x42')]);return db[_0x4272('0x30')]['find'](_0x1f308f)[_0x4272('0x28')](handleEntityNotFound(_0x4b79d6,null))['then'](respondWithResult(_0x4b79d6,null))[_0x4272('0x46')](handleError(_0x4b79d6,null));};exports[_0x4272('0x26')]=function(_0xa7d68c,_0x10bc9d){if(_0xa7d68c[_0x4272('0x4a')]['id']){delete _0xa7d68c[_0x4272('0x4a')]['id'];}return db[_0x4272('0x30')][_0x4272('0x4b')]({'where':{'id':_0xa7d68c['params']['id']}})[_0x4272('0x28')](handleEntityNotFound(_0x10bc9d,null))[_0x4272('0x28')](saveUpdates(_0xa7d68c[_0x4272('0x4a')],null))[_0x4272('0x28')](respondWithResult(_0x10bc9d,null))[_0x4272('0x46')](handleError(_0x10bc9d,null));};exports['destroy']=function(_0x6aa0d7,_0x3cf295){return db[_0x4272('0x30')][_0x4272('0x4b')]({'where':{'id':_0x6aa0d7[_0x4272('0x48')]['id']}})['then'](handleEntityNotFound(_0x3cf295,null))[_0x4272('0x28')](removeEntity(_0x3cf295,null))[_0x4272('0x46')](handleError(_0x3cf295,null));};exports['create']=function(_0x5a99e8,_0x37a79b){var _0x31ae79;return db['sequelize'][_0x4272('0x4c')](function(_0x19946a){return db[_0x4272('0x30')]['create'](_0x5a99e8['body'],{'transaction':_0x19946a})['then'](function(_0x5653f4){_0x31ae79=_0x5653f4;var _0x1d5f94={'type':db[_0x4272('0x4d')]['TEXT'],'transaction':_0x19946a};switch(_0x5a99e8[_0x4272('0x4a')][_0x4272('0x40')]){case _0x4272('0x4e'):_0x1d5f94[_0x4272('0x40')]=db[_0x4272('0x4d')][_0x4272('0x4f')];break;case _0x4272('0x50'):_0x1d5f94[_0x4272('0x40')]=db['Sequelize'][_0x4272('0x51')];break;case _0x4272('0x52'):_0x1d5f94[_0x4272('0x40')]=db[_0x4272('0x4d')][_0x4272('0x53')];_0x1d5f94[_0x4272('0x54')]=![];break;default:}return db[_0x4272('0x55')][_0x4272('0x56')]['addColumn'](_0x4272('0x57'),util[_0x4272('0x58')](_0x4272('0x59'),_0x31ae79['id']),_0x1d5f94);})[_0x4272('0x28')](function(){return _0x31ae79;});})[_0x4272('0x28')](respondWithResult(_0x37a79b,0xc9))[_0x4272('0x46')](handleError(_0x37a79b,null));};
\ No newline at end of file
+var _0xe8e7=['filter','VIRTUAL','merge','options','includeAll','include','rows','catch','show','keys','find','body','params','transaction','create','Sequelize','TEXT','text','number','INTEGER','BOOLEAN','sequelize','queryInterface','addColumn','cm_contacts','format','eml-format','rimraf','request-promise','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','apply','update','then','destroy','error','name','send','index','map','CmCustomField','rawAttributes','fieldName','type','model','differenceBy','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where'];(function(_0x2a42b8,_0x30ce5c){var _0x10f146=function(_0x416a67){while(--_0x416a67){_0x2a42b8['push'](_0x2a42b8['shift']());}};_0x10f146(++_0x30ce5c);}(_0xe8e7,0xc0));var _0x7e8e=function(_0x4e61a9,_0x1b6497){_0x4e61a9=_0x4e61a9-0x0;var _0x2503a7=_0xe8e7[_0x4e61a9];return _0x2503a7;};'use strict';var emlformat=require(_0x7e8e('0x0'));var rimraf=require(_0x7e8e('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x7e8e('0x2'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x7e8e('0x3'));var util=require(_0x7e8e('0x4'));var path=require('path');var sox=require(_0x7e8e('0x5'));var csv=require(_0x7e8e('0x6'));var ejs=require(_0x7e8e('0x7'));var fs=require('fs');var fs_extra=require(_0x7e8e('0x8'));var _=require(_0x7e8e('0x9'));var squel=require(_0x7e8e('0xa'));var crypto=require(_0x7e8e('0xb'));var jsforce=require(_0x7e8e('0xc'));var deskjs=require(_0x7e8e('0xd'));var toCsv=require(_0x7e8e('0x6'));var querystring=require('querystring');var Papa=require(_0x7e8e('0xe'));var Redis=require(_0x7e8e('0xf'));var authService=require('../../components/auth/service');var qs=require(_0x7e8e('0x10'));var as=require(_0x7e8e('0x11'));var hardwareService=require(_0x7e8e('0x12'));var logger=require('../../config/logger')(_0x7e8e('0x13'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x7e8e('0x14'));var db=require(_0x7e8e('0x15'))['db'];function respondWithStatusCode(_0x4ed45a,_0x386a52){_0x386a52=_0x386a52||0xcc;return function(_0x5baed){if(_0x5baed){return _0x4ed45a[_0x7e8e('0x16')](_0x386a52);}return _0x4ed45a[_0x7e8e('0x17')](_0x386a52)[_0x7e8e('0x18')]();};}function respondWithResult(_0x5483f1,_0x566e67){_0x566e67=_0x566e67||0xc8;return function(_0x41a78c){if(_0x41a78c){return _0x5483f1['status'](_0x566e67)['json'](_0x41a78c);}};}function respondWithFilteredResult(_0x4c6d5a,_0x39369d){return function(_0x43c9b5){if(_0x43c9b5){var _0x5a43ec=typeof _0x39369d[_0x7e8e('0x19')]===_0x7e8e('0x1a')&&typeof _0x39369d[_0x7e8e('0x1b')]===_0x7e8e('0x1a');var _0x41d1d6=_0x43c9b5[_0x7e8e('0x1c')];var _0x56764c=_0x5a43ec?0x0:_0x39369d[_0x7e8e('0x19')];var _0x363060=_0x5a43ec?_0x43c9b5[_0x7e8e('0x1c')]:_0x39369d[_0x7e8e('0x19')]+_0x39369d[_0x7e8e('0x1b')];var _0x3acfc3;if(_0x363060>=_0x41d1d6){_0x363060=_0x41d1d6;_0x3acfc3=0xc8;}else{_0x3acfc3=0xce;}_0x4c6d5a[_0x7e8e('0x17')](_0x3acfc3);return _0x4c6d5a[_0x7e8e('0x1d')](_0x7e8e('0x1e'),_0x56764c+'-'+_0x363060+'/'+_0x41d1d6)['json'](_0x43c9b5);}return null;};}function patchUpdates(_0x3d27bf){return function(_0x4816bf){try{jsonpatch[_0x7e8e('0x1f')](_0x4816bf,_0x3d27bf,!![]);}catch(_0x431446){return BPromise['reject'](_0x431446);}return _0x4816bf['save']();};}function saveUpdates(_0x30fda1,_0x2ea669){return function(_0x5b6346){if(_0x5b6346){return _0x5b6346[_0x7e8e('0x20')](_0x30fda1)[_0x7e8e('0x21')](function(_0x594792){return _0x594792;});}return null;};}function removeEntity(_0x15e2a1,_0xaafec9){return function(_0x4b0f60){if(_0x4b0f60){return _0x4b0f60[_0x7e8e('0x22')]()[_0x7e8e('0x21')](function(){_0x15e2a1['status'](0xcc)[_0x7e8e('0x18')]();});}};}function handleEntityNotFound(_0xc3c5bd,_0xfe3f9a){return function(_0x2c57cb){if(!_0x2c57cb){_0xc3c5bd['sendStatus'](0x194);}return _0x2c57cb;};}function handleError(_0x2d59f0,_0x3bd7ed){_0x3bd7ed=_0x3bd7ed||0x1f4;return function(_0x2e32ef){logger[_0x7e8e('0x23')](_0x2e32ef['stack']);if(_0x2e32ef[_0x7e8e('0x24')]){delete _0x2e32ef[_0x7e8e('0x24')];}_0x2d59f0[_0x7e8e('0x17')](_0x3bd7ed)[_0x7e8e('0x25')](_0x2e32ef);};}exports[_0x7e8e('0x26')]=function(_0x5283b3,_0x507438){var _0x2b1f1c={},_0x44f609={},_0x5b7e81={'count':0x0,'rows':[]};var _0x26676e=_[_0x7e8e('0x27')](db[_0x7e8e('0x28')][_0x7e8e('0x29')],function(_0x4fd4ec){return{'name':_0x4fd4ec[_0x7e8e('0x2a')],'type':_0x4fd4ec[_0x7e8e('0x2b')]['key']};});_0x44f609[_0x7e8e('0x2c')]=_[_0x7e8e('0x2d')](_['map'](_0x26676e,_0x7e8e('0x24')),['name']);_0x44f609[_0x7e8e('0x2e')]=_['keys'](_0x5283b3[_0x7e8e('0x2e')]);_0x44f609[_0x7e8e('0x2f')]=_[_0x7e8e('0x30')](_0x44f609[_0x7e8e('0x2c')],_0x44f609[_0x7e8e('0x2e')]);_0x2b1f1c[_0x7e8e('0x31')]=_[_0x7e8e('0x30')](_0x44f609['model'],qs[_0x7e8e('0x32')](_0x5283b3[_0x7e8e('0x2e')][_0x7e8e('0x32')]));_0x2b1f1c['attributes']=_0x2b1f1c[_0x7e8e('0x31')][_0x7e8e('0x33')]?_0x2b1f1c['attributes']:_0x44f609['model'];if(!_0x5283b3[_0x7e8e('0x2e')][_0x7e8e('0x34')](_0x7e8e('0x35'))){_0x2b1f1c[_0x7e8e('0x1b')]=qs[_0x7e8e('0x1b')](_0x5283b3[_0x7e8e('0x2e')][_0x7e8e('0x1b')]);_0x2b1f1c[_0x7e8e('0x19')]=qs['offset'](_0x5283b3[_0x7e8e('0x2e')][_0x7e8e('0x19')]);}_0x2b1f1c[_0x7e8e('0x36')]=qs[_0x7e8e('0x37')](_0x5283b3[_0x7e8e('0x2e')][_0x7e8e('0x37')]);_0x2b1f1c[_0x7e8e('0x38')]=qs[_0x7e8e('0x2f')](_['pick'](_0x5283b3[_0x7e8e('0x2e')],_0x44f609[_0x7e8e('0x2f')]),_0x26676e);if(_0x5283b3['query'][_0x7e8e('0x39')]){_0x2b1f1c['where']=_['merge'](_0x2b1f1c['where'],{'$or':_[_0x7e8e('0x27')](_0x26676e,function(_0x517a06){if(_0x517a06[_0x7e8e('0x2b')]!==_0x7e8e('0x3a')){var _0x2f9917={};_0x2f9917[_0x517a06[_0x7e8e('0x24')]]={'$like':'%'+_0x5283b3[_0x7e8e('0x2e')][_0x7e8e('0x39')]+'%'};return _0x2f9917;}})});}_0x2b1f1c=_[_0x7e8e('0x3b')]({},_0x2b1f1c,_0x5283b3[_0x7e8e('0x3c')]);var _0x19be4f={'where':_0x2b1f1c[_0x7e8e('0x38')]};return db[_0x7e8e('0x28')][_0x7e8e('0x1c')](_0x19be4f)[_0x7e8e('0x21')](function(_0x569f71){_0x5b7e81[_0x7e8e('0x1c')]=_0x569f71;if(_0x5283b3[_0x7e8e('0x2e')][_0x7e8e('0x3d')]){_0x2b1f1c[_0x7e8e('0x3e')]=[{'all':!![]}];}return db['CmCustomField']['findAll'](_0x2b1f1c);})[_0x7e8e('0x21')](function(_0x55b1c3){_0x5b7e81[_0x7e8e('0x3f')]=_0x55b1c3;return _0x5b7e81;})[_0x7e8e('0x21')](respondWithFilteredResult(_0x507438,_0x2b1f1c))[_0x7e8e('0x40')](handleError(_0x507438,null));};exports[_0x7e8e('0x41')]=function(_0x1c5624,_0x38f4dc){var _0x24c01f={'raw':!![],'where':{'id':_0x1c5624['params']['id']}},_0x232793={};_0x232793['model']=_[_0x7e8e('0x42')](db[_0x7e8e('0x28')][_0x7e8e('0x29')]);_0x232793[_0x7e8e('0x2e')]=_['keys'](_0x1c5624[_0x7e8e('0x2e')]);_0x232793[_0x7e8e('0x2f')]=_[_0x7e8e('0x30')](_0x232793[_0x7e8e('0x2c')],_0x232793[_0x7e8e('0x2e')]);_0x24c01f[_0x7e8e('0x31')]=_[_0x7e8e('0x30')](_0x232793[_0x7e8e('0x2c')],qs['fields'](_0x1c5624[_0x7e8e('0x2e')]['fields']));_0x24c01f[_0x7e8e('0x31')]=_0x24c01f['attributes'][_0x7e8e('0x33')]?_0x24c01f[_0x7e8e('0x31')]:_0x232793[_0x7e8e('0x2c')];if(_0x1c5624['query'][_0x7e8e('0x3d')]){_0x24c01f[_0x7e8e('0x3e')]=[{'all':!![]}];}_0x24c01f=_[_0x7e8e('0x3b')]({},_0x24c01f,_0x1c5624[_0x7e8e('0x3c')]);return db[_0x7e8e('0x28')][_0x7e8e('0x43')](_0x24c01f)[_0x7e8e('0x21')](handleEntityNotFound(_0x38f4dc,null))[_0x7e8e('0x21')](respondWithResult(_0x38f4dc,null))[_0x7e8e('0x40')](handleError(_0x38f4dc,null));};exports[_0x7e8e('0x20')]=function(_0x45ac14,_0x589516){if(_0x45ac14[_0x7e8e('0x44')]['id']){delete _0x45ac14[_0x7e8e('0x44')]['id'];}return db[_0x7e8e('0x28')][_0x7e8e('0x43')]({'where':{'id':_0x45ac14[_0x7e8e('0x45')]['id']}})['then'](handleEntityNotFound(_0x589516,null))['then'](saveUpdates(_0x45ac14[_0x7e8e('0x44')],null))[_0x7e8e('0x21')](respondWithResult(_0x589516,null))[_0x7e8e('0x40')](handleError(_0x589516,null));};exports[_0x7e8e('0x22')]=function(_0x4f37ef,_0x147254){return db[_0x7e8e('0x28')][_0x7e8e('0x43')]({'where':{'id':_0x4f37ef[_0x7e8e('0x45')]['id']}})[_0x7e8e('0x21')](handleEntityNotFound(_0x147254,null))[_0x7e8e('0x21')](removeEntity(_0x147254,null))[_0x7e8e('0x40')](handleError(_0x147254,null));};exports['create']=function(_0x5ba73e,_0x41c8c){var _0xd4e29e;return db['sequelize'][_0x7e8e('0x46')](function(_0x4351ed){return db[_0x7e8e('0x28')][_0x7e8e('0x47')](_0x5ba73e[_0x7e8e('0x44')],{'transaction':_0x4351ed})[_0x7e8e('0x21')](function(_0x118a96){_0xd4e29e=_0x118a96;var _0x243573={'type':db[_0x7e8e('0x48')][_0x7e8e('0x49')],'transaction':_0x4351ed};switch(_0x5ba73e[_0x7e8e('0x44')][_0x7e8e('0x2b')]){case _0x7e8e('0x4a'):_0x243573[_0x7e8e('0x2b')]=db['Sequelize']['TEXT'];break;case _0x7e8e('0x4b'):_0x243573[_0x7e8e('0x2b')]=db[_0x7e8e('0x48')][_0x7e8e('0x4c')];break;case'switch':_0x243573[_0x7e8e('0x2b')]=db[_0x7e8e('0x48')][_0x7e8e('0x4d')];_0x243573['defaultValue']=![];break;default:}return db[_0x7e8e('0x4e')][_0x7e8e('0x4f')][_0x7e8e('0x50')](_0x7e8e('0x51'),util[_0x7e8e('0x52')]('cf_%d',_0xd4e29e['id']),_0x243573);})['then'](function(){return _0xd4e29e;});})[_0x7e8e('0x21')](respondWithResult(_0x41c8c,0xc9))[_0x7e8e('0x40')](handleError(_0x41c8c,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe452=['../../config/environment','./cmCustomField.attributes','exports','CmCustomField','lodash','util','../../config/logger','api','moment','bluebird','path'];(function(_0x3bf83f,_0x181cac){var _0x22c4a9=function(_0xb3ff0d){while(--_0xb3ff0d){_0x3bf83f['push'](_0x3bf83f['shift']());}};_0x22c4a9(++_0x181cac);}(_0xe452,0x1bc));var _0x2e45=function(_0xf74696,_0x4abff2){_0xf74696=_0xf74696-0x0;var _0x5ad75e=_0xe452[_0xf74696];return _0x5ad75e;};'use strict';var _=require(_0x2e45('0x0'));var util=require(_0x2e45('0x1'));var logger=require(_0x2e45('0x2'))(_0x2e45('0x3'));var moment=require(_0x2e45('0x4'));var BPromise=require(_0x2e45('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x2e45('0x6'));var rimraf=require('rimraf');var config=require(_0x2e45('0x7'));var attributes=require(_0x2e45('0x8'));module[_0x2e45('0x9')]=function(_0x474191,_0x177154){return _0x474191['define'](_0x2e45('0xa'),attributes,{'tableName':'cm_custom_fields','paranoid':!![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xcc93=['./cmCustomField.attributes','exports','CmCustomField','cm_custom_fields','lodash','util','api','moment','bluebird','path','rimraf'];(function(_0x3bc8ee,_0x2e426a){var _0x11cc43=function(_0x51c458){while(--_0x51c458){_0x3bc8ee['push'](_0x3bc8ee['shift']());}};_0x11cc43(++_0x2e426a);}(_0xcc93,0xeb));var _0x3cc9=function(_0x15c0b5,_0x69be7e){_0x15c0b5=_0x15c0b5-0x0;var _0x22c5b3=_0xcc93[_0x15c0b5];return _0x22c5b3;};'use strict';var _=require(_0x3cc9('0x0'));var util=require(_0x3cc9('0x1'));var logger=require('../../config/logger')(_0x3cc9('0x2'));var moment=require(_0x3cc9('0x3'));var BPromise=require(_0x3cc9('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x3cc9('0x5'));var rimraf=require(_0x3cc9('0x6'));var config=require('../../config/environment');var attributes=require(_0x3cc9('0x7'));module[_0x3cc9('0x8')]=function(_0x3c02c4,_0x2b5e90){return _0x3c02c4['define'](_0x3cc9('0x9'),attributes,{'tableName':_0x3cc9('0xa'),'paranoid':!![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6f21=['ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','http','request','then','info','CmCustomField,\x20%s,\x20%s','request\x20sent','debug','CmCustomField,\x20%s,\x20%s,\x20%s','error','code','message','result','lodash','util','bluebird','randomstring'];(function(_0x46e363,_0x45d7e2){var _0x3fb059=function(_0x5e6274){while(--_0x5e6274){_0x46e363['push'](_0x46e363['shift']());}};_0x3fb059(++_0x45d7e2);}(_0x6f21,0xac));var _0x16f2=function(_0x4dd327,_0x1b29b7){_0x4dd327=_0x4dd327-0x0;var _0x445a6e=_0x6f21[_0x4dd327];return _0x445a6e;};'use strict';var _=require(_0x16f2('0x0'));var util=require(_0x16f2('0x1'));var moment=require('moment');var BPromise=require(_0x16f2('0x2'));var rs=require(_0x16f2('0x3'));var fs=require('fs');var Redis=require(_0x16f2('0x4'));var db=require(_0x16f2('0x5'))['db'];var utils=require(_0x16f2('0x6'));var logger=require(_0x16f2('0x7'))('rpc');var config=require(_0x16f2('0x8'));var jayson=require(_0x16f2('0x9'));var client=jayson['client'][_0x16f2('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x193e07,_0x481046,_0x280a7c){return new BPromise(function(_0x1b06c8,_0x44f605){return client[_0x16f2('0xb')](_0x193e07,_0x280a7c)[_0x16f2('0xc')](function(_0x3cae60){logger[_0x16f2('0xd')](_0x16f2('0xe'),_0x481046,_0x16f2('0xf'));logger[_0x16f2('0x10')](_0x16f2('0x11'),_0x481046,'request\x20sent',JSON['stringify'](_0x3cae60));if(_0x3cae60[_0x16f2('0x12')]){if(_0x3cae60['error'][_0x16f2('0x13')]===0x1f4){logger[_0x16f2('0x12')](_0x16f2('0xe'),_0x481046,_0x3cae60[_0x16f2('0x12')][_0x16f2('0x14')]);return _0x44f605(_0x3cae60[_0x16f2('0x12')][_0x16f2('0x14')]);}logger[_0x16f2('0x12')](_0x16f2('0xe'),_0x481046,_0x3cae60[_0x16f2('0x12')][_0x16f2('0x14')]);return _0x1b06c8(_0x3cae60[_0x16f2('0x12')][_0x16f2('0x14')]);}else{logger[_0x16f2('0xd')](_0x16f2('0xe'),_0x481046,_0x16f2('0xf'));_0x1b06c8(_0x3cae60[_0x16f2('0x15')][_0x16f2('0x14')]);}})['catch'](function(_0xfeaca6){logger[_0x16f2('0x12')](_0x16f2('0xe'),_0x481046,_0xfeaca6);_0x44f605(_0xfeaca6);});});}
\ No newline at end of file
+var _0x17ea=['bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','request','then','info','request\x20sent','debug','CmCustomField,\x20%s,\x20%s,\x20%s','stringify','error','code','CmCustomField,\x20%s,\x20%s','message','result','lodash','util','moment'];(function(_0x190309,_0x2ce081){var _0x3692a4=function(_0x44c09b){while(--_0x44c09b){_0x190309['push'](_0x190309['shift']());}};_0x3692a4(++_0x2ce081);}(_0x17ea,0x1ad));var _0xa17e=function(_0x26bb6e,_0x47e87c){_0x26bb6e=_0x26bb6e-0x0;var _0x2cd3ed=_0x17ea[_0x26bb6e];return _0x2cd3ed;};'use strict';var _=require(_0xa17e('0x0'));var util=require(_0xa17e('0x1'));var moment=require(_0xa17e('0x2'));var BPromise=require(_0xa17e('0x3'));var rs=require(_0xa17e('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xa17e('0x5'))['db'];var utils=require(_0xa17e('0x6'));var logger=require(_0xa17e('0x7'))(_0xa17e('0x8'));var config=require('../../config/environment');var jayson=require(_0xa17e('0x9'));var client=jayson[_0xa17e('0xa')][_0xa17e('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x34a960,_0x2cc19a,_0x123c12){return new BPromise(function(_0x31c92a,_0x120375){return client[_0xa17e('0xc')](_0x34a960,_0x123c12)[_0xa17e('0xd')](function(_0x7258c6){logger[_0xa17e('0xe')]('CmCustomField,\x20%s,\x20%s',_0x2cc19a,_0xa17e('0xf'));logger[_0xa17e('0x10')](_0xa17e('0x11'),_0x2cc19a,'request\x20sent',JSON[_0xa17e('0x12')](_0x7258c6));if(_0x7258c6[_0xa17e('0x13')]){if(_0x7258c6[_0xa17e('0x13')][_0xa17e('0x14')]===0x1f4){logger['error'](_0xa17e('0x15'),_0x2cc19a,_0x7258c6[_0xa17e('0x13')][_0xa17e('0x16')]);return _0x120375(_0x7258c6[_0xa17e('0x13')]['message']);}logger[_0xa17e('0x13')](_0xa17e('0x15'),_0x2cc19a,_0x7258c6[_0xa17e('0x13')][_0xa17e('0x16')]);return _0x31c92a(_0x7258c6[_0xa17e('0x13')][_0xa17e('0x16')]);}else{logger[_0xa17e('0xe')](_0xa17e('0x15'),_0x2cc19a,_0xa17e('0xf'));_0x31c92a(_0x7258c6[_0xa17e('0x17')][_0xa17e('0x16')]);}})['catch'](function(_0x5732af){logger[_0xa17e('0x13')](_0xa17e('0x15'),_0x2cc19a,_0x5732af);_0x120375(_0x5732af);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4312=['post','put','delete','destroy','exports','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./cmCustomField.controller','isAuthenticated','get','/:id','show'];(function(_0x5a7618,_0x3f44c2){var _0x12dc65=function(_0x3cc4cd){while(--_0x3cc4cd){_0x5a7618['push'](_0x5a7618['shift']());}};_0x12dc65(++_0x3f44c2);}(_0x4312,0xaf));var _0x2431=function(_0x16d09a,_0x4d863a){_0x16d09a=_0x16d09a-0x0;var _0x567bca=_0x4312[_0x16d09a];return _0x567bca;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x2431('0x0'));var timeout=require(_0x2431('0x1'));var express=require('express');var router=express[_0x2431('0x2')]();var fs_extra=require(_0x2431('0x3'));var auth=require(_0x2431('0x4'));var interaction=require(_0x2431('0x5'));var config=require(_0x2431('0x6'));var controller=require(_0x2431('0x7'));router['get']('/',auth[_0x2431('0x8')](),controller['index']);router[_0x2431('0x9')](_0x2431('0xa'),auth['isAuthenticated'](),controller[_0x2431('0xb')]);router[_0x2431('0xc')]('/',auth[_0x2431('0x8')](),controller['create']);router[_0x2431('0xd')](_0x2431('0xa'),auth[_0x2431('0x8')](),controller['update']);router[_0x2431('0xe')]('/:id',auth[_0x2431('0x8')](),controller[_0x2431('0xf')]);module[_0x2431('0x10')]=router;
\ No newline at end of file
+var _0x1ac2=['multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./cmCustomField.controller','isAuthenticated','index','get','show','post','create','put','/:id','update','delete','destroy','exports'];(function(_0x2e78e9,_0x42957c){var _0x35aad4=function(_0x360fa1){while(--_0x360fa1){_0x2e78e9['push'](_0x2e78e9['shift']());}};_0x35aad4(++_0x42957c);}(_0x1ac2,0xfd));var _0x21ac=function(_0x4805a0,_0x47f05f){_0x4805a0=_0x4805a0-0x0;var _0x6abb88=_0x1ac2[_0x4805a0];return _0x6abb88;};'use strict';var multer=require(_0x21ac('0x0'));var util=require(_0x21ac('0x1'));var path=require(_0x21ac('0x2'));var timeout=require(_0x21ac('0x3'));var express=require(_0x21ac('0x4'));var router=express[_0x21ac('0x5')]();var fs_extra=require(_0x21ac('0x6'));var auth=require(_0x21ac('0x7'));var interaction=require(_0x21ac('0x8'));var config=require(_0x21ac('0x9'));var controller=require(_0x21ac('0xa'));router['get']('/',auth[_0x21ac('0xb')](),controller[_0x21ac('0xc')]);router[_0x21ac('0xd')]('/:id',auth[_0x21ac('0xb')](),controller[_0x21ac('0xe')]);router[_0x21ac('0xf')]('/',auth[_0x21ac('0xb')](),controller[_0x21ac('0x10')]);router[_0x21ac('0x11')](_0x21ac('0x12'),auth['isAuthenticated'](),controller[_0x21ac('0x13')]);router[_0x21ac('0x14')](_0x21ac('0x12'),auth[_0x21ac('0xb')](),controller[_0x21ac('0x15')]);module[_0x21ac('0x16')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xba73=['sequelize','BOOLEAN','DATE','format','YYYY-MM-DD\x20HH:mm:ss','INTEGER','STRING','UNSIGNED','contactListQueue','moment'];(function(_0x43a37c,_0x25a567){var _0x5d1d40=function(_0x3ec673){while(--_0x3ec673){_0x43a37c['push'](_0x43a37c['shift']());}};_0x5d1d40(++_0x25a567);}(_0xba73,0xdb));var _0x3ba7=function(_0x4fbfd9,_0x3ab91a){_0x4fbfd9=_0x4fbfd9-0x0;var _0x31dc94=_0xba73[_0x4fbfd9];return _0x31dc94;};'use strict';var moment=require(_0x3ba7('0x0'));var Sequelize=require(_0x3ba7('0x1'));module['exports']={'phone':{'type':Sequelize['STRING'],'allowNull':![]},'active':{'type':Sequelize[_0x3ba7('0x2')],'defaultValue':![]},'scheduledat':{'type':Sequelize[_0x3ba7('0x3')],'defaultValue':moment()[_0x3ba7('0x4')](_0x3ba7('0x5'))},'countbusyretry':{'type':Sequelize[_0x3ba7('0x6')],'defaultValue':0x0},'countcongestionretry':{'type':Sequelize[_0x3ba7('0x6')],'defaultValue':0x0},'countnoanswerretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'callback':{'type':Sequelize[_0x3ba7('0x2')],'defaultValue':![]},'callbackuniqueid':{'type':Sequelize[_0x3ba7('0x7')],'defaultValue':null},'callbackat':{'type':Sequelize[_0x3ba7('0x3')]},'priority':{'type':Sequelize[_0x3ba7('0x6')](0x2)[_0x3ba7('0x8')],'defaultValue':0x2,'validate':{'min':0x0,'max':0x4}},'recallme':{'type':Sequelize[_0x3ba7('0x2')],'defaultValue':![]},'ContactId':{'type':Sequelize[_0x3ba7('0x6')],'unique':'contactListQueue'},'ListId':{'type':Sequelize[_0x3ba7('0x6')],'unique':'contactListQueue'},'UserId':{'type':Sequelize['INTEGER']},'VoiceQueueId':{'type':Sequelize[_0x3ba7('0x6')],'unique':_0x3ba7('0x9')},'CampaignId':{'type':Sequelize[_0x3ba7('0x6')]},'countnosuchnumberretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'countdropretry':{'type':Sequelize[_0x3ba7('0x6')],'defaultValue':0x0},'countabandonedretry':{'type':Sequelize[_0x3ba7('0x6')],'defaultValue':0x0},'countmachineretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'countagentrejectretry':{'type':Sequelize[_0x3ba7('0x6')],'defaultValue':0x0}};
\ No newline at end of file
+var _0xb6f5=['moment','exports','STRING','format','YYYY-MM-DD\x20HH:mm:ss','INTEGER','BOOLEAN','DATE','UNSIGNED','contactListQueue'];(function(_0x19e35c,_0x29cd1e){var _0x3e1fe8=function(_0x17258b){while(--_0x17258b){_0x19e35c['push'](_0x19e35c['shift']());}};_0x3e1fe8(++_0x29cd1e);}(_0xb6f5,0x118));var _0x5b6f=function(_0x1f6e71,_0x19360b){_0x1f6e71=_0x1f6e71-0x0;var _0x2271aa=_0xb6f5[_0x1f6e71];return _0x2271aa;};'use strict';var moment=require(_0x5b6f('0x0'));var Sequelize=require('sequelize');module[_0x5b6f('0x1')]={'phone':{'type':Sequelize[_0x5b6f('0x2')],'allowNull':![]},'active':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'scheduledat':{'type':Sequelize['DATE'],'defaultValue':moment()[_0x5b6f('0x3')](_0x5b6f('0x4'))},'countbusyretry':{'type':Sequelize[_0x5b6f('0x5')],'defaultValue':0x0},'countcongestionretry':{'type':Sequelize[_0x5b6f('0x5')],'defaultValue':0x0},'countnoanswerretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'callback':{'type':Sequelize[_0x5b6f('0x6')],'defaultValue':![]},'callbackuniqueid':{'type':Sequelize[_0x5b6f('0x2')],'defaultValue':null},'callbackat':{'type':Sequelize[_0x5b6f('0x7')]},'priority':{'type':Sequelize[_0x5b6f('0x5')](0x2)[_0x5b6f('0x8')],'defaultValue':0x2,'validate':{'min':0x0,'max':0x4}},'recallme':{'type':Sequelize[_0x5b6f('0x6')],'defaultValue':![]},'ContactId':{'type':Sequelize[_0x5b6f('0x5')],'unique':_0x5b6f('0x9')},'ListId':{'type':Sequelize['INTEGER'],'unique':_0x5b6f('0x9')},'UserId':{'type':Sequelize['INTEGER']},'VoiceQueueId':{'type':Sequelize[_0x5b6f('0x5')],'unique':_0x5b6f('0x9')},'CampaignId':{'type':Sequelize[_0x5b6f('0x5')]},'countnosuchnumberretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'countdropretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'countabandonedretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'countmachineretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'countagentrejectretry':{'type':Sequelize[_0x5b6f('0x5')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xddda=['isNil','calleridname','finally','CmHopperFinal','getPreview','getVoiceQueues','outbound','preview','dialOrderByScheduledAt','sequelize','transaction','direction','isEmpty','hopperIds','priority','ASC','scheduledAt','DESC','literal','findOne','LOCK','UPDATE','CmCompany','Company','CmList','VoiceQueue','Queue','dialActive','getOpenContacts','isNumber','error','CmHopper,\x20%s,\x20%s,\x20%s','entity\x20not\x20found','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','update','then','sendStatus','stack','name','index','map','CmHopper','fieldName','model','query','filters','concat','$and','$or','$gt','$gte','$ne','$eq','$not','$between','$notBetween','$notIn','$like','$iLike','$overlap','$contains','$contained','$any','attributes','intersection','fields','length','nolimit','order','sort','where','pick','filter','merge','type','VIRTUAL','includeAll','findAll','rows','catch','show','params','keys','rawAttributes','include','options','find','create','body','describe','destroy','VoiceQueueId','Campaign','CampaignId','omit','dataValues','createdAt','updatedAt','state','deleted','campaign','membername','user','deletedat','format','YYYY-MM-DD\x20HH:mm:ss','calleridnum','phone','campaigntype','queue','ivr','CmContact','firstName','lastName'];(function(_0xbc4560,_0x4020b8){var _0x298cfb=function(_0x254423){while(--_0x254423){_0xbc4560['push'](_0xbc4560['shift']());}};_0x298cfb(++_0x4020b8);}(_0xddda,0xb5));var _0xaddd=function(_0x2daff6,_0x18a06f){_0x2daff6=_0x2daff6-0x0;var _0x19a3d6=_0xddda[_0x2daff6];return _0x19a3d6;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xaddd('0x0'));var zipdir=require(_0xaddd('0x1'));var jsonpatch=require(_0xaddd('0x2'));var rp=require(_0xaddd('0x3'));var moment=require('moment');var BPromise=require(_0xaddd('0x4'));var Mustache=require(_0xaddd('0x5'));var util=require(_0xaddd('0x6'));var path=require(_0xaddd('0x7'));var sox=require(_0xaddd('0x8'));var csv=require(_0xaddd('0x9'));var ejs=require(_0xaddd('0xa'));var fs=require('fs');var fs_extra=require(_0xaddd('0xb'));var _=require(_0xaddd('0xc'));var squel=require('squel');var crypto=require(_0xaddd('0xd'));var jsforce=require(_0xaddd('0xe'));var deskjs=require(_0xaddd('0xf'));var toCsv=require(_0xaddd('0x9'));var querystring=require(_0xaddd('0x10'));var Papa=require(_0xaddd('0x11'));var Redis=require('ioredis');var authService=require(_0xaddd('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0xaddd('0x13'));var hardwareService=require(_0xaddd('0x14'));var logger=require(_0xaddd('0x15'))(_0xaddd('0x16'));var utils=require(_0xaddd('0x17'));var config=require('../../config/environment');var licenseUtil=require(_0xaddd('0x18'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x4bcea5,_0x9a33d){_0x9a33d=_0x9a33d||0xcc;return function(_0x65cbd){if(_0x65cbd){return _0x4bcea5['sendStatus'](_0x9a33d);}return _0x4bcea5[_0xaddd('0x19')](_0x9a33d)[_0xaddd('0x1a')]();};}function respondWithResult(_0x3d90a3,_0x1721f9){_0x1721f9=_0x1721f9||0xc8;return function(_0x12b4a0){if(_0x12b4a0){return _0x3d90a3[_0xaddd('0x19')](_0x1721f9)[_0xaddd('0x1b')](_0x12b4a0);}};}function respondWithFilteredResult(_0x57094a,_0x37c24b){return function(_0x329e3d){if(_0x329e3d){var _0x44b1d1=typeof _0x37c24b[_0xaddd('0x1c')]===_0xaddd('0x1d')&&typeof _0x37c24b[_0xaddd('0x1e')]===_0xaddd('0x1d');var _0x57bf00=_0x329e3d[_0xaddd('0x1f')];var _0x23fb8e=_0x44b1d1?0x0:_0x37c24b[_0xaddd('0x1c')];var _0x4290ef=_0x44b1d1?_0x329e3d[_0xaddd('0x1f')]:_0x37c24b[_0xaddd('0x1c')]+_0x37c24b[_0xaddd('0x1e')];var _0x51c498;if(_0x4290ef>=_0x57bf00){_0x4290ef=_0x57bf00;_0x51c498=0xc8;}else{_0x51c498=0xce;}_0x57094a['status'](_0x51c498);return _0x57094a[_0xaddd('0x20')](_0xaddd('0x21'),_0x23fb8e+'-'+_0x4290ef+'/'+_0x57bf00)['json'](_0x329e3d);}return null;};}function patchUpdates(_0x2df141){return function(_0x12bcb0){try{jsonpatch[_0xaddd('0x22')](_0x12bcb0,_0x2df141,!![]);}catch(_0x1614fa){return BPromise['reject'](_0x1614fa);}return _0x12bcb0['save']();};}function saveUpdates(_0x1e7db8,_0x501165){return function(_0x14e62a){if(_0x14e62a){return _0x14e62a[_0xaddd('0x23')](_0x1e7db8)[_0xaddd('0x24')](function(_0x3a4f85){return _0x3a4f85;});}return null;};}function removeEntity(_0xef5e67,_0x40e9c6){return function(_0x399a92){if(_0x399a92){return _0x399a92['destroy']()[_0xaddd('0x24')](function(){_0xef5e67[_0xaddd('0x19')](0xcc)[_0xaddd('0x1a')]();});}};}function handleEntityNotFound(_0x342b06,_0x2de20b){return function(_0x321839){if(!_0x321839){_0x342b06[_0xaddd('0x25')](0x194);}return _0x321839;};}function handleError(_0x2f9d5c,_0x4429a1){_0x4429a1=_0x4429a1||0x1f4;return function(_0x29babb){logger['error'](_0x29babb[_0xaddd('0x26')]);if(_0x29babb[_0xaddd('0x27')]){delete _0x29babb[_0xaddd('0x27')];}_0x2f9d5c[_0xaddd('0x19')](_0x4429a1)['send'](_0x29babb);};}exports[_0xaddd('0x28')]=function(_0x52b269,_0x22b5f9){var _0x2783d2={},_0x524238={},_0x5efc68={'count':0x0,'rows':[]};var _0x225a2b=_[_0xaddd('0x29')](db[_0xaddd('0x2a')]['rawAttributes'],function(_0x4eeb17){return{'name':_0x4eeb17[_0xaddd('0x2b')],'type':_0x4eeb17['type']['key']};});_0x524238[_0xaddd('0x2c')]=_[_0xaddd('0x29')](_0x225a2b,'name');_0x524238['query']=_['keys'](_0x52b269[_0xaddd('0x2d')]);_0x524238[_0xaddd('0x2e')]=_['intersection'](_0x524238['model'],_0x524238[_0xaddd('0x2d')]);_0x524238[_0xaddd('0x2e')]=_[_0xaddd('0x2f')](_0x524238[_0xaddd('0x2e')],[_0xaddd('0x30'),_0xaddd('0x31'),_0xaddd('0x32'),_0xaddd('0x33'),'$lt','$lte',_0xaddd('0x34'),_0xaddd('0x35'),_0xaddd('0x36'),_0xaddd('0x37'),_0xaddd('0x38'),'$in',_0xaddd('0x39'),_0xaddd('0x3a'),'$notLike',_0xaddd('0x3b'),'$notILike',_0xaddd('0x3a'),_0xaddd('0x3c'),_0xaddd('0x3d'),_0xaddd('0x3e'),_0xaddd('0x3f')]);_0x2783d2[_0xaddd('0x40')]=_[_0xaddd('0x41')](_0x524238[_0xaddd('0x2c')],qs[_0xaddd('0x42')](_0x52b269[_0xaddd('0x2d')][_0xaddd('0x42')]));_0x2783d2[_0xaddd('0x40')]=_0x2783d2[_0xaddd('0x40')][_0xaddd('0x43')]?_0x2783d2['attributes']:_0x524238[_0xaddd('0x2c')];if(!_0x52b269[_0xaddd('0x2d')]['hasOwnProperty'](_0xaddd('0x44'))){_0x2783d2['limit']=qs[_0xaddd('0x1e')](_0x52b269[_0xaddd('0x2d')]['limit']);_0x2783d2['offset']=qs[_0xaddd('0x1c')](_0x52b269[_0xaddd('0x2d')][_0xaddd('0x1c')]);}_0x2783d2[_0xaddd('0x45')]=qs['sort'](_0x52b269['query'][_0xaddd('0x46')]);_0x2783d2[_0xaddd('0x47')]=qs[_0xaddd('0x2e')](_[_0xaddd('0x48')](_0x52b269[_0xaddd('0x2d')],_0x524238[_0xaddd('0x2e')]),_0x225a2b);if(_0x52b269[_0xaddd('0x2d')][_0xaddd('0x49')]){_0x2783d2[_0xaddd('0x47')]=_[_0xaddd('0x4a')](_0x2783d2['where'],{'$or':_[_0xaddd('0x29')](_0x225a2b,function(_0x2ff8b9){if(_0x2ff8b9[_0xaddd('0x4b')]!==_0xaddd('0x4c')){var _0x3cb08b={};_0x3cb08b[_0x2ff8b9[_0xaddd('0x27')]]={'$like':'%'+_0x52b269[_0xaddd('0x2d')][_0xaddd('0x49')]+'%'};return _0x3cb08b;}})});}_0x2783d2=_['merge']({},_0x2783d2,_0x52b269['options']);var _0xebcdaa={'where':_0x2783d2[_0xaddd('0x47')]};return db[_0xaddd('0x2a')][_0xaddd('0x1f')](_0xebcdaa)[_0xaddd('0x24')](function(_0x23e1c3){_0x5efc68[_0xaddd('0x1f')]=_0x23e1c3;if(_0x52b269[_0xaddd('0x2d')][_0xaddd('0x4d')]){_0x2783d2['include']=[{'all':!![]}];}return db[_0xaddd('0x2a')][_0xaddd('0x4e')](_0x2783d2);})[_0xaddd('0x24')](function(_0x11ac29){_0x5efc68[_0xaddd('0x4f')]=_0x11ac29;return _0x5efc68;})[_0xaddd('0x24')](respondWithFilteredResult(_0x22b5f9,_0x2783d2))[_0xaddd('0x50')](handleError(_0x22b5f9,null));};exports[_0xaddd('0x51')]=function(_0x5aa956,_0x187d57){var _0x3d7836={'raw':!![],'where':{'id':_0x5aa956[_0xaddd('0x52')]['id']}},_0x4f1e90={};_0x4f1e90[_0xaddd('0x2c')]=_[_0xaddd('0x53')](db[_0xaddd('0x2a')][_0xaddd('0x54')]);_0x4f1e90[_0xaddd('0x2d')]=_[_0xaddd('0x53')](_0x5aa956['query']);_0x4f1e90[_0xaddd('0x2e')]=_[_0xaddd('0x41')](_0x4f1e90[_0xaddd('0x2c')],_0x4f1e90['query']);_0x3d7836[_0xaddd('0x40')]=_['intersection'](_0x4f1e90['model'],qs['fields'](_0x5aa956[_0xaddd('0x2d')][_0xaddd('0x42')]));_0x3d7836['attributes']=_0x3d7836[_0xaddd('0x40')]['length']?_0x3d7836[_0xaddd('0x40')]:_0x4f1e90[_0xaddd('0x2c')];if(_0x5aa956[_0xaddd('0x2d')][_0xaddd('0x4d')]){_0x3d7836[_0xaddd('0x55')]=[{'all':!![]}];}_0x3d7836=_['merge']({},_0x3d7836,_0x5aa956[_0xaddd('0x56')]);return db[_0xaddd('0x2a')][_0xaddd('0x57')](_0x3d7836)[_0xaddd('0x24')](handleEntityNotFound(_0x187d57,null))[_0xaddd('0x24')](respondWithResult(_0x187d57,null))['catch'](handleError(_0x187d57,null));};exports[_0xaddd('0x58')]=function(_0x4cd686,_0x352001){return db[_0xaddd('0x2a')][_0xaddd('0x58')](_0x4cd686['body'],{})[_0xaddd('0x24')](respondWithResult(_0x352001,0xc9))[_0xaddd('0x50')](handleError(_0x352001,null));};exports['update']=function(_0x28f3cd,_0x413fca){if(_0x28f3cd[_0xaddd('0x59')]['id']){delete _0x28f3cd[_0xaddd('0x59')]['id'];}return db[_0xaddd('0x2a')][_0xaddd('0x57')]({'where':{'id':_0x28f3cd[_0xaddd('0x52')]['id']}})['then'](handleEntityNotFound(_0x413fca,null))[_0xaddd('0x24')](saveUpdates(_0x28f3cd['body'],null))[_0xaddd('0x24')](respondWithResult(_0x413fca,null))[_0xaddd('0x50')](handleError(_0x413fca,null));};exports[_0xaddd('0x5a')]=function(_0x740236,_0x184f69){return db[_0xaddd('0x2a')][_0xaddd('0x5a')]()[_0xaddd('0x24')](respondWithResult(_0x184f69,null))[_0xaddd('0x50')](handleError(_0x184f69,null));};exports[_0xaddd('0x5b')]=function(_0x28e9e0,_0x18eecd){var _0x54ab28;return db[_0xaddd('0x2a')]['find']({'where':{'id':_0x28e9e0[_0xaddd('0x52')]['id']}})[_0xaddd('0x24')](handleEntityNotFound(_0x18eecd,null))[_0xaddd('0x24')](function(_0x3465e8){if(_0x3465e8){return _0x3465e8[_0xaddd('0x5b')]()['then'](function(_0x8c48b4){return _0x8c48b4;});}})['then'](function(_0x57b745){_0x54ab28=_0x57b745;if(_0x57b745){if(_0x57b745[_0xaddd('0x5c')]||_0x57b745['CampaignId']){return db[_0x57b745[_0xaddd('0x5c')]?'VoiceQueue':_0xaddd('0x5d')]['find']({'where':{'id':_0x57b745[_0xaddd('0x5c')]?_0x57b745[_0xaddd('0x5c')]:_0x57b745[_0xaddd('0x5e')]},'attributes':['id',_0xaddd('0x27')],'raw':!![]});}}})[_0xaddd('0x24')](function(_0x223c20){var _0x48db16={};if(_0x223c20){_[_0xaddd('0x4a')](_0x48db16,_[_0xaddd('0x5f')](_0x54ab28[_0xaddd('0x60')],[_0xaddd('0x61'),_0xaddd('0x62'),'id']));_0x48db16[_0xaddd('0x63')]=0x15;_0x48db16['statedesc']=_0xaddd('0x64');_0x48db16[_0xaddd('0x65')]=_0x223c20[_0xaddd('0x27')];_0x48db16[_0xaddd('0x66')]=_0x28e9e0['user'][_0xaddd('0x27')];_0x48db16['UserId']=_0x28e9e0[_0xaddd('0x67')]['id'];_0x48db16[_0xaddd('0x64')]=!![];_0x48db16[_0xaddd('0x68')]=moment()[_0xaddd('0x69')](_0xaddd('0x6a'));_0x48db16[_0xaddd('0x6b')]=_0x54ab28[_0xaddd('0x6c')];_0x48db16[_0xaddd('0x6d')]=_0x54ab28[_0xaddd('0x5c')]?_0xaddd('0x6e'):_0xaddd('0x6f');return db[_0xaddd('0x70')][_0xaddd('0x57')]({'where':{'id':_0x48db16['ContactId']},'attributes':[_0xaddd('0x71'),_0xaddd('0x72')]})[_0xaddd('0x24')](function(_0x7a32e8){if(!_[_0xaddd('0x73')](_0x18eecd)&&!_[_0xaddd('0x73')](_0x7a32e8[_0xaddd('0x71')])){_0x48db16[_0xaddd('0x74')]=_0x7a32e8[_0xaddd('0x71')];if(!_['isNil'](_0x7a32e8[_0xaddd('0x72')])){_0x48db16[_0xaddd('0x74')]+='\x20'+_0x7a32e8[_0xaddd('0x72')];}}})[_0xaddd('0x75')](function(){return db[_0xaddd('0x76')][_0xaddd('0x58')](_0x48db16);});}})[_0xaddd('0x24')](function(){return _0x18eecd[_0xaddd('0x19')](0xcc)[_0xaddd('0x1a')]();})[_0xaddd('0x50')](handleError(_0x18eecd,null));};exports[_0xaddd('0x77')]=function(_0x4fae39,_0x65a697,_0xc0bab6){var _0x556f15=[];return db[_0xaddd('0x70')][_0xaddd('0x5a')]()['then'](function(_0x5c7736){_0x556f15=_[_0xaddd('0x53')](_0x5c7736);return _0x4fae39[_0xaddd('0x67')][_0xaddd('0x78')]({'where':{'type':_0xaddd('0x79'),'dialActive':!![],'dialMethod':_0xaddd('0x7a')},'attributes':['id',_0xaddd('0x7b')],'raw':!![]});})[_0xaddd('0x24')](function(_0x29cb04){if(_0x29cb04&&_0x29cb04[_0xaddd('0x43')]){return db[_0xaddd('0x7c')][_0xaddd('0x7d')](function(_0x3730a2){var _0x1aa5ba={'active':![],'recallme':![],'scheduledAt':{'$lte':moment()['format'](_0xaddd('0x6a'))},'VoiceQueueId':{'$in':_[_0xaddd('0x29')](_0x29cb04,'id')},'$or':[{'UserId':null},{'UserId':_0x4fae39['user']['id']}]};var _0x1fda33=[];if(_0x4fae39['body'][_0xaddd('0x7e')]&&_0x4fae39['body'][_0xaddd('0x7e')]==='prev'){if(!_[_0xaddd('0x7f')](_0x4fae39[_0xaddd('0x59')]['hopperIds'])){_0x1aa5ba['id']={'$in':_0x4fae39[_0xaddd('0x59')][_0xaddd('0x80')]};}_0x1fda33=[[_0xaddd('0x81'),_0xaddd('0x82')],[_0xaddd('0x83'),_0x29cb04[0x0][_0xaddd('0x7b')]===_0xaddd('0x82')?_0xaddd('0x84'):'ASC'],db[_0xaddd('0x7c')][_0xaddd('0x85')]('COALESCE(CmHopper.UserId,\x200)\x20ASC'),['id','DESC']];}else{if(!_[_0xaddd('0x7f')](_0x4fae39[_0xaddd('0x59')]['hopperIds'])){_0x1aa5ba['id']={'$notIn':_0x4fae39['body'][_0xaddd('0x80')]};}_0x1fda33=[[_0xaddd('0x81'),_0xaddd('0x84')],[_0xaddd('0x83'),_0x29cb04[0x0][_0xaddd('0x7b')]],db[_0xaddd('0x7c')][_0xaddd('0x85')]('COALESCE(CmHopper.UserId,\x200)\x20DESC'),['id',_0xaddd('0x82')]];}return db[_0xaddd('0x2a')][_0xaddd('0x86')]({'attributes':['id','scheduledat'],'where':_0x1aa5ba,'order':_0x1fda33,'transaction':_0x3730a2,'lock':_0x3730a2[_0xaddd('0x87')][_0xaddd('0x88')],'include':[{'model':db[_0xaddd('0x70')],'as':'Contact','attributes':_0x556f15,'include':[{'model':db[_0xaddd('0x89')],'as':_0xaddd('0x8a'),'attributes':['id',_0xaddd('0x27')]}]},{'model':db[_0xaddd('0x8b')],'as':'List','attributes':['id','name']},{'model':db[_0xaddd('0x8c')],'as':_0xaddd('0x8d'),'attributes':['id','name',_0xaddd('0x8e')]}]})[_0xaddd('0x24')](function(_0x4030f6){if(_0x4030f6){return _0x4030f6['update']({'UserId':_0x4fae39['user']['id']},{'transaction':_0x3730a2});}});});}})[_0xaddd('0x24')](handleEntityNotFound(_0x65a697,null))['then'](respondWithResult(_0x65a697,null))[_0xaddd('0x50')](handleError(_0x65a697,null));};exports[_0xaddd('0x8f')]=function(_0x1aa7d7,_0x411d4e,_0x5e56a8){return _0x1aa7d7[_0xaddd('0x67')][_0xaddd('0x78')]({'where':{'type':_0xaddd('0x79'),'dialActive':!![],'dialMethod':_0xaddd('0x7a')},'attributes':['id'],'raw':!![]})[_0xaddd('0x24')](function(_0x79f59a){if(_0x79f59a&&_0x79f59a[_0xaddd('0x43')]){return db[_0xaddd('0x2a')][_0xaddd('0x1f')]({'where':{'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0xaddd('0x69')](_0xaddd('0x6a'))},'VoiceQueueId':{'$in':_[_0xaddd('0x29')](_0x79f59a,'id')},'$or':[{'UserId':null},{'UserId':_0x1aa7d7['user']['id']}]}});}return 0x0;})[_0xaddd('0x24')](function(_0x318638){if(!_[_0xaddd('0x73')](_0x318638)&&_[_0xaddd('0x90')](_0x318638)){return _0x411d4e['status'](0xc8)[_0xaddd('0x1b')]({'contacts':_0x318638});}else{logger[_0xaddd('0x91')](_0xaddd('0x92'),_0xaddd('0x8f'),0x194,_0xaddd('0x93'));_0x411d4e[_0xaddd('0x25')](0x194);}})[_0xaddd('0x50')](handleError(_0x411d4e,null));};
\ No newline at end of file
+var _0xe587=['../../config/logger','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','undefined','count','offset','limit','set','Content-Range','apply','reject','update','then','destroy','error','stack','name','send','index','CmHopper','rawAttributes','fieldName','type','key','model','map','query','filters','intersection','concat','$and','$or','$gt','$gte','$lt','$lte','$ne','$not','$between','$notBetween','$in','$like','$overlap','attributes','fields','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','keys','find','create','body','describe','CampaignId','VoiceQueueId','VoiceQueue','Campaign','omit','dataValues','updatedAt','statedesc','campaign','membername','user','UserId','deleted','deletedat','format','YYYY-MM-DD\x20HH:mm:ss','campaigntype','queue','ivr','CmContact','ContactId','lastName','isNil','firstName','finally','CmHopperFinal','getPreview','outbound','preview','length','sequelize','direction','prev','isEmpty','hopperIds','priority','ASC','scheduledAt','dialOrderByScheduledAt','DESC','literal','COALESCE(CmHopper.UserId,\x200)\x20DESC','scheduledat','LOCK','UPDATE','Contact','CmCompany','Company','CmList','Queue','dialActive','getOpenContacts','getVoiceQueues','json','entity\x20not\x20found','eml-format','rimraf','fast-json-patch','request-promise','bluebird','sox','to-csv','ejs','lodash','squel','crypto','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware'];(function(_0x565f6c,_0x1820c4){var _0xb8a32b=function(_0x29078e){while(--_0x29078e){_0x565f6c['push'](_0x565f6c['shift']());}};_0xb8a32b(++_0x1820c4);}(_0xe587,0x19e));var _0x7e58=function(_0x1f3d7b,_0x3a4d7c){_0x1f3d7b=_0x1f3d7b-0x0;var _0x260f5b=_0xe587[_0x1f3d7b];return _0x260f5b;};'use strict';var emlformat=require(_0x7e58('0x0'));var rimraf=require(_0x7e58('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x7e58('0x2'));var rp=require(_0x7e58('0x3'));var moment=require('moment');var BPromise=require(_0x7e58('0x4'));var Mustache=require('mustache');var util=require('util');var path=require('path');var sox=require(_0x7e58('0x5'));var csv=require(_0x7e58('0x6'));var ejs=require(_0x7e58('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x7e58('0x8'));var squel=require(_0x7e58('0x9'));var crypto=require(_0x7e58('0xa'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x7e58('0x6'));var querystring=require(_0x7e58('0xb'));var Papa=require(_0x7e58('0xc'));var Redis=require(_0x7e58('0xd'));var authService=require(_0x7e58('0xe'));var qs=require(_0x7e58('0xf'));var as=require(_0x7e58('0x10'));var hardwareService=require(_0x7e58('0x11'));var logger=require(_0x7e58('0x12'))('api');var utils=require('../../config/utils');var config=require(_0x7e58('0x13'));var licenseUtil=require(_0x7e58('0x14'));var db=require(_0x7e58('0x15'))['db'];function respondWithStatusCode(_0x351dfc,_0x1a2b02){_0x1a2b02=_0x1a2b02||0xcc;return function(_0x22412e){if(_0x22412e){return _0x351dfc[_0x7e58('0x16')](_0x1a2b02);}return _0x351dfc[_0x7e58('0x17')](_0x1a2b02)[_0x7e58('0x18')]();};}function respondWithResult(_0x5d7d46,_0x1fc47e){_0x1fc47e=_0x1fc47e||0xc8;return function(_0x205f77){if(_0x205f77){return _0x5d7d46[_0x7e58('0x17')](_0x1fc47e)['json'](_0x205f77);}};}function respondWithFilteredResult(_0x3488f2,_0x159dc3){return function(_0x721c2f){if(_0x721c2f){var _0xa2d626=typeof _0x159dc3['offset']===_0x7e58('0x19')&&typeof _0x159dc3['limit']===_0x7e58('0x19');var _0x3adba0=_0x721c2f[_0x7e58('0x1a')];var _0x214b68=_0xa2d626?0x0:_0x159dc3[_0x7e58('0x1b')];var _0xdda63a=_0xa2d626?_0x721c2f[_0x7e58('0x1a')]:_0x159dc3['offset']+_0x159dc3[_0x7e58('0x1c')];var _0x205e9d;if(_0xdda63a>=_0x3adba0){_0xdda63a=_0x3adba0;_0x205e9d=0xc8;}else{_0x205e9d=0xce;}_0x3488f2['status'](_0x205e9d);return _0x3488f2[_0x7e58('0x1d')](_0x7e58('0x1e'),_0x214b68+'-'+_0xdda63a+'/'+_0x3adba0)['json'](_0x721c2f);}return null;};}function patchUpdates(_0x1c8ead){return function(_0x5e4b8d){try{jsonpatch[_0x7e58('0x1f')](_0x5e4b8d,_0x1c8ead,!![]);}catch(_0x54245d){return BPromise[_0x7e58('0x20')](_0x54245d);}return _0x5e4b8d['save']();};}function saveUpdates(_0x4f701c,_0x38c38f){return function(_0x202ab2){if(_0x202ab2){return _0x202ab2[_0x7e58('0x21')](_0x4f701c)[_0x7e58('0x22')](function(_0x4902ac){return _0x4902ac;});}return null;};}function removeEntity(_0x3c0ce1,_0x2960eb){return function(_0x472824){if(_0x472824){return _0x472824[_0x7e58('0x23')]()[_0x7e58('0x22')](function(){_0x3c0ce1['status'](0xcc)[_0x7e58('0x18')]();});}};}function handleEntityNotFound(_0x215fb7,_0x2f927b){return function(_0x150185){if(!_0x150185){_0x215fb7[_0x7e58('0x16')](0x194);}return _0x150185;};}function handleError(_0x4a9b79,_0x92c461){_0x92c461=_0x92c461||0x1f4;return function(_0x18216c){logger[_0x7e58('0x24')](_0x18216c[_0x7e58('0x25')]);if(_0x18216c[_0x7e58('0x26')]){delete _0x18216c[_0x7e58('0x26')];}_0x4a9b79['status'](_0x92c461)[_0x7e58('0x27')](_0x18216c);};}exports[_0x7e58('0x28')]=function(_0x10a0eb,_0x444a8d){var _0x1f664f={},_0x1e788f={},_0xbeffc5={'count':0x0,'rows':[]};var _0x5c9c68=_['map'](db[_0x7e58('0x29')][_0x7e58('0x2a')],function(_0x1aca8b){return{'name':_0x1aca8b[_0x7e58('0x2b')],'type':_0x1aca8b[_0x7e58('0x2c')][_0x7e58('0x2d')]};});_0x1e788f[_0x7e58('0x2e')]=_[_0x7e58('0x2f')](_0x5c9c68,'name');_0x1e788f['query']=_['keys'](_0x10a0eb[_0x7e58('0x30')]);_0x1e788f[_0x7e58('0x31')]=_[_0x7e58('0x32')](_0x1e788f[_0x7e58('0x2e')],_0x1e788f[_0x7e58('0x30')]);_0x1e788f[_0x7e58('0x31')]=_[_0x7e58('0x33')](_0x1e788f[_0x7e58('0x31')],[_0x7e58('0x34'),_0x7e58('0x35'),_0x7e58('0x36'),_0x7e58('0x37'),_0x7e58('0x38'),_0x7e58('0x39'),_0x7e58('0x3a'),'$eq',_0x7e58('0x3b'),_0x7e58('0x3c'),_0x7e58('0x3d'),_0x7e58('0x3e'),'$notIn','$like','$notLike','$iLike','$notILike',_0x7e58('0x3f'),_0x7e58('0x40'),'$contains','$contained','$any']);_0x1f664f[_0x7e58('0x41')]=_['intersection'](_0x1e788f['model'],qs['fields'](_0x10a0eb[_0x7e58('0x30')][_0x7e58('0x42')]));_0x1f664f[_0x7e58('0x41')]=_0x1f664f[_0x7e58('0x41')]['length']?_0x1f664f[_0x7e58('0x41')]:_0x1e788f[_0x7e58('0x2e')];if(!_0x10a0eb[_0x7e58('0x30')][_0x7e58('0x43')](_0x7e58('0x44'))){_0x1f664f['limit']=qs[_0x7e58('0x1c')](_0x10a0eb[_0x7e58('0x30')][_0x7e58('0x1c')]);_0x1f664f[_0x7e58('0x1b')]=qs[_0x7e58('0x1b')](_0x10a0eb[_0x7e58('0x30')][_0x7e58('0x1b')]);}_0x1f664f[_0x7e58('0x45')]=qs['sort'](_0x10a0eb[_0x7e58('0x30')][_0x7e58('0x46')]);_0x1f664f['where']=qs[_0x7e58('0x31')](_[_0x7e58('0x47')](_0x10a0eb[_0x7e58('0x30')],_0x1e788f['filters']),_0x5c9c68);if(_0x10a0eb[_0x7e58('0x30')][_0x7e58('0x48')]){_0x1f664f[_0x7e58('0x49')]=_[_0x7e58('0x4a')](_0x1f664f[_0x7e58('0x49')],{'$or':_[_0x7e58('0x2f')](_0x5c9c68,function(_0x57af55){if(_0x57af55[_0x7e58('0x2c')]!==_0x7e58('0x4b')){var _0x35f093={};_0x35f093[_0x57af55['name']]={'$like':'%'+_0x10a0eb[_0x7e58('0x30')][_0x7e58('0x48')]+'%'};return _0x35f093;}})});}_0x1f664f=_[_0x7e58('0x4a')]({},_0x1f664f,_0x10a0eb[_0x7e58('0x4c')]);var _0x46ce9f={'where':_0x1f664f[_0x7e58('0x49')]};return db[_0x7e58('0x29')][_0x7e58('0x1a')](_0x46ce9f)[_0x7e58('0x22')](function(_0x1ef7f2){_0xbeffc5[_0x7e58('0x1a')]=_0x1ef7f2;if(_0x10a0eb['query'][_0x7e58('0x4d')]){_0x1f664f[_0x7e58('0x4e')]=[{'all':!![]}];}return db[_0x7e58('0x29')][_0x7e58('0x4f')](_0x1f664f);})[_0x7e58('0x22')](function(_0x49e136){_0xbeffc5[_0x7e58('0x50')]=_0x49e136;return _0xbeffc5;})['then'](respondWithFilteredResult(_0x444a8d,_0x1f664f))[_0x7e58('0x51')](handleError(_0x444a8d,null));};exports[_0x7e58('0x52')]=function(_0x558812,_0x26a253){var _0x662663={'raw':!![],'where':{'id':_0x558812[_0x7e58('0x53')]['id']}},_0x3f9449={};_0x3f9449['model']=_[_0x7e58('0x54')](db['CmHopper'][_0x7e58('0x2a')]);_0x3f9449['query']=_[_0x7e58('0x54')](_0x558812[_0x7e58('0x30')]);_0x3f9449[_0x7e58('0x31')]=_[_0x7e58('0x32')](_0x3f9449[_0x7e58('0x2e')],_0x3f9449[_0x7e58('0x30')]);_0x662663[_0x7e58('0x41')]=_[_0x7e58('0x32')](_0x3f9449[_0x7e58('0x2e')],qs['fields'](_0x558812[_0x7e58('0x30')][_0x7e58('0x42')]));_0x662663[_0x7e58('0x41')]=_0x662663['attributes']['length']?_0x662663[_0x7e58('0x41')]:_0x3f9449[_0x7e58('0x2e')];if(_0x558812[_0x7e58('0x30')][_0x7e58('0x4d')]){_0x662663['include']=[{'all':!![]}];}_0x662663=_[_0x7e58('0x4a')]({},_0x662663,_0x558812[_0x7e58('0x4c')]);return db[_0x7e58('0x29')][_0x7e58('0x55')](_0x662663)[_0x7e58('0x22')](handleEntityNotFound(_0x26a253,null))['then'](respondWithResult(_0x26a253,null))[_0x7e58('0x51')](handleError(_0x26a253,null));};exports[_0x7e58('0x56')]=function(_0x3670ed,_0x1e9da){return db[_0x7e58('0x29')][_0x7e58('0x56')](_0x3670ed[_0x7e58('0x57')],{})[_0x7e58('0x22')](respondWithResult(_0x1e9da,0xc9))[_0x7e58('0x51')](handleError(_0x1e9da,null));};exports[_0x7e58('0x21')]=function(_0x117568,_0xefee9){if(_0x117568[_0x7e58('0x57')]['id']){delete _0x117568[_0x7e58('0x57')]['id'];}return db['CmHopper']['find']({'where':{'id':_0x117568[_0x7e58('0x53')]['id']}})[_0x7e58('0x22')](handleEntityNotFound(_0xefee9,null))[_0x7e58('0x22')](saveUpdates(_0x117568['body'],null))[_0x7e58('0x22')](respondWithResult(_0xefee9,null))['catch'](handleError(_0xefee9,null));};exports[_0x7e58('0x58')]=function(_0x2a8e7e,_0x376d98){return db[_0x7e58('0x29')][_0x7e58('0x58')]()['then'](respondWithResult(_0x376d98,null))[_0x7e58('0x51')](handleError(_0x376d98,null));};exports[_0x7e58('0x23')]=function(_0x34a9c8,_0x442821){var _0x30a1db;return db[_0x7e58('0x29')][_0x7e58('0x55')]({'where':{'id':_0x34a9c8['params']['id']}})[_0x7e58('0x22')](handleEntityNotFound(_0x442821,null))['then'](function(_0x151410){if(_0x151410){return _0x151410[_0x7e58('0x23')]()[_0x7e58('0x22')](function(_0x3c0dba){return _0x3c0dba;});}})[_0x7e58('0x22')](function(_0xea5170){_0x30a1db=_0xea5170;if(_0xea5170){if(_0xea5170['VoiceQueueId']||_0xea5170[_0x7e58('0x59')]){return db[_0xea5170[_0x7e58('0x5a')]?_0x7e58('0x5b'):_0x7e58('0x5c')][_0x7e58('0x55')]({'where':{'id':_0xea5170[_0x7e58('0x5a')]?_0xea5170['VoiceQueueId']:_0xea5170[_0x7e58('0x59')]},'attributes':['id',_0x7e58('0x26')],'raw':!![]});}}})[_0x7e58('0x22')](function(_0x45226c){var _0x1178f1={};if(_0x45226c){_['merge'](_0x1178f1,_[_0x7e58('0x5d')](_0x30a1db[_0x7e58('0x5e')],['createdAt',_0x7e58('0x5f'),'id']));_0x1178f1['state']=0x15;_0x1178f1[_0x7e58('0x60')]='deleted';_0x1178f1[_0x7e58('0x61')]=_0x45226c[_0x7e58('0x26')];_0x1178f1[_0x7e58('0x62')]=_0x34a9c8[_0x7e58('0x63')][_0x7e58('0x26')];_0x1178f1[_0x7e58('0x64')]=_0x34a9c8[_0x7e58('0x63')]['id'];_0x1178f1[_0x7e58('0x65')]=!![];_0x1178f1[_0x7e58('0x66')]=moment()[_0x7e58('0x67')](_0x7e58('0x68'));_0x1178f1['calleridnum']=_0x30a1db['phone'];_0x1178f1[_0x7e58('0x69')]=_0x30a1db[_0x7e58('0x5a')]?_0x7e58('0x6a'):_0x7e58('0x6b');return db[_0x7e58('0x6c')][_0x7e58('0x55')]({'where':{'id':_0x1178f1[_0x7e58('0x6d')]},'attributes':['firstName',_0x7e58('0x6e')]})[_0x7e58('0x22')](function(_0x4c4441){if(!_[_0x7e58('0x6f')](_0x442821)&&!_['isNil'](_0x4c4441[_0x7e58('0x70')])){_0x1178f1['calleridname']=_0x4c4441[_0x7e58('0x70')];if(!_[_0x7e58('0x6f')](_0x4c4441[_0x7e58('0x6e')])){_0x1178f1['calleridname']+='\x20'+_0x4c4441[_0x7e58('0x6e')];}}})[_0x7e58('0x71')](function(){return db[_0x7e58('0x72')][_0x7e58('0x56')](_0x1178f1);});}})[_0x7e58('0x22')](function(){return _0x442821['status'](0xcc)['end']();})[_0x7e58('0x51')](handleError(_0x442821,null));};exports[_0x7e58('0x73')]=function(_0x897818,_0x11a3c2,_0x446fbc){var _0x346e19=[];return db[_0x7e58('0x6c')][_0x7e58('0x58')]()[_0x7e58('0x22')](function(_0x2c9dd2){_0x346e19=_[_0x7e58('0x54')](_0x2c9dd2);return _0x897818[_0x7e58('0x63')]['getVoiceQueues']({'where':{'type':_0x7e58('0x74'),'dialActive':!![],'dialMethod':_0x7e58('0x75')},'attributes':['id','dialOrderByScheduledAt'],'raw':!![]});})['then'](function(_0xaacec7){if(_0xaacec7&&_0xaacec7[_0x7e58('0x76')]){return db[_0x7e58('0x77')]['transaction'](function(_0x166f4e){var _0x11dddb={'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0x7e58('0x67')](_0x7e58('0x68'))},'VoiceQueueId':{'$in':_[_0x7e58('0x2f')](_0xaacec7,'id')},'$or':[{'UserId':null},{'UserId':_0x897818[_0x7e58('0x63')]['id']}]};var _0x542e45=[];if(_0x897818['body'][_0x7e58('0x78')]&&_0x897818['body'][_0x7e58('0x78')]===_0x7e58('0x79')){if(!_[_0x7e58('0x7a')](_0x897818[_0x7e58('0x57')][_0x7e58('0x7b')])){_0x11dddb['id']={'$in':_0x897818[_0x7e58('0x57')]['hopperIds']};}_0x542e45=[[_0x7e58('0x7c'),_0x7e58('0x7d')],[_0x7e58('0x7e'),_0xaacec7[0x0][_0x7e58('0x7f')]===_0x7e58('0x7d')?'DESC':_0x7e58('0x7d')],db[_0x7e58('0x77')]['literal']('COALESCE(CmHopper.UserId,\x200)\x20ASC'),['id','DESC']];}else{if(!_[_0x7e58('0x7a')](_0x897818[_0x7e58('0x57')][_0x7e58('0x7b')])){_0x11dddb['id']={'$notIn':_0x897818[_0x7e58('0x57')][_0x7e58('0x7b')]};}_0x542e45=[[_0x7e58('0x7c'),_0x7e58('0x80')],[_0x7e58('0x7e'),_0xaacec7[0x0][_0x7e58('0x7f')]],db['sequelize'][_0x7e58('0x81')](_0x7e58('0x82')),['id','ASC']];}return db[_0x7e58('0x29')]['findOne']({'attributes':['id',_0x7e58('0x83')],'where':_0x11dddb,'order':_0x542e45,'transaction':_0x166f4e,'lock':_0x166f4e[_0x7e58('0x84')][_0x7e58('0x85')],'include':[{'model':db[_0x7e58('0x6c')],'as':_0x7e58('0x86'),'attributes':_0x346e19,'include':[{'model':db[_0x7e58('0x87')],'as':_0x7e58('0x88'),'attributes':['id','name']}]},{'model':db[_0x7e58('0x89')],'as':'List','attributes':['id',_0x7e58('0x26')]},{'model':db['VoiceQueue'],'as':_0x7e58('0x8a'),'attributes':['id',_0x7e58('0x26'),_0x7e58('0x8b')]}]})[_0x7e58('0x22')](function(_0x59ad26){if(_0x59ad26){return _0x59ad26['update']({'UserId':_0x897818[_0x7e58('0x63')]['id']},{'transaction':_0x166f4e});}});});}})['then'](handleEntityNotFound(_0x11a3c2,null))[_0x7e58('0x22')](respondWithResult(_0x11a3c2,null))[_0x7e58('0x51')](handleError(_0x11a3c2,null));};exports[_0x7e58('0x8c')]=function(_0xc3efbc,_0x273a12,_0x3e38e4){return _0xc3efbc[_0x7e58('0x63')][_0x7e58('0x8d')]({'where':{'type':'outbound','dialActive':!![],'dialMethod':_0x7e58('0x75')},'attributes':['id'],'raw':!![]})[_0x7e58('0x22')](function(_0x1f69c7){if(_0x1f69c7&&_0x1f69c7['length']){return db[_0x7e58('0x29')][_0x7e58('0x1a')]({'where':{'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0x7e58('0x67')](_0x7e58('0x68'))},'VoiceQueueId':{'$in':_[_0x7e58('0x2f')](_0x1f69c7,'id')},'$or':[{'UserId':null},{'UserId':_0xc3efbc['user']['id']}]}});}return 0x0;})['then'](function(_0x161f42){if(!_[_0x7e58('0x6f')](_0x161f42)&&_['isNumber'](_0x161f42)){return _0x273a12[_0x7e58('0x17')](0xc8)[_0x7e58('0x8e')]({'contacts':_0x161f42});}else{logger[_0x7e58('0x24')]('CmHopper,\x20%s,\x20%s,\x20%s',_0x7e58('0x8c'),0x194,_0x7e58('0x8f'));_0x273a12[_0x7e58('0x16')](0x194);}})['catch'](handleError(_0x273a12,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x90b1=['priority','lodash','util','../../config/logger','bluebird','request-promise','path','rimraf','define','CmHopper','cm_hopper','scheduledat','phone'];(function(_0x39e84d,_0x11931d){var _0x1991bc=function(_0xc81e32){while(--_0xc81e32){_0x39e84d['push'](_0x39e84d['shift']());}};_0x1991bc(++_0x11931d);}(_0x90b1,0x1bb));var _0x190b=function(_0x95a80,_0x1dd45d){_0x95a80=_0x95a80-0x0;var _0x2241b7=_0x90b1[_0x95a80];return _0x2241b7;};'use strict';var _=require(_0x190b('0x0'));var util=require(_0x190b('0x1'));var logger=require(_0x190b('0x2'))('api');var moment=require('moment');var BPromise=require(_0x190b('0x3'));var rp=require(_0x190b('0x4'));var fs=require('fs');var path=require(_0x190b('0x5'));var rimraf=require(_0x190b('0x6'));var config=require('../../config/environment');var attributes=require('./cmHopper.attributes');module['exports']=function(_0x5da9c1,_0x27ff8c){return _0x5da9c1[_0x190b('0x7')](_0x190b('0x8'),attributes,{'tableName':_0x190b('0x9'),'paranoid':![],'indexes':[{'name':_0x190b('0xa'),'fields':[_0x190b('0xa')]},{'name':_0x190b('0xb'),'fields':['phone']},{'name':_0x190b('0xc'),'fields':[_0x190b('0xc')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xfcf0=['moment','bluebird','request-promise','rimraf','../../config/environment','./cmHopper.attributes','exports','define','CmHopper','scheduledat','phone','priority','lodash','util','api'];(function(_0x1aa769,_0x312482){var _0x25f189=function(_0x110cb3){while(--_0x110cb3){_0x1aa769['push'](_0x1aa769['shift']());}};_0x25f189(++_0x312482);}(_0xfcf0,0x138));var _0x0fcf=function(_0x4ee9cd,_0xd375b0){_0x4ee9cd=_0x4ee9cd-0x0;var _0x328a5b=_0xfcf0[_0x4ee9cd];return _0x328a5b;};'use strict';var _=require(_0x0fcf('0x0'));var util=require(_0x0fcf('0x1'));var logger=require('../../config/logger')(_0x0fcf('0x2'));var moment=require(_0x0fcf('0x3'));var BPromise=require(_0x0fcf('0x4'));var rp=require(_0x0fcf('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0x0fcf('0x6'));var config=require(_0x0fcf('0x7'));var attributes=require(_0x0fcf('0x8'));module[_0x0fcf('0x9')]=function(_0x1bace8,_0x1a7b03){return _0x1bace8[_0x0fcf('0xa')](_0x0fcf('0xb'),attributes,{'tableName':'cm_hopper','paranoid':![],'indexes':[{'name':_0x0fcf('0xc'),'fields':[_0x0fcf('0xc')]},{'name':_0x0fcf('0xd'),'fields':['phone']},{'name':_0x0fcf('0xe'),'fields':[_0x0fcf('0xe')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0232=['http','request','then','info','CmHopper,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','catch','GetCmHopper','findAll','options','where','attributes','limit','include','map','model','ShowCmHopper','CmHopper','find','raw','CreateCmHopper','create','body','UpdateCmHopper','destroy','DestroyCmHopper','GetContactDialer','CmContact','describe','transaction','order','LOCK','Contact','keys','User','name','voicePause','length','UserId','push','includes','update','all','MoveContactManagedDialer','CmHopperFinal','CountReScheduled','sequelize','COUNT','literal','`scheduledat`\x20>=\x20','format','\x22%s\x22','YYYY-MM-DD\x20HH:mm:ss','\x20,\x201,\x20null','contactsRescheduled','GetContactRecallMe','UPDATE','GetCmHopperPreview','lodash','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client'];(function(_0x4a0ebf,_0x55ba40){var _0x181f1e=function(_0x3e421f){while(--_0x3e421f){_0x4a0ebf['push'](_0x4a0ebf['shift']());}};_0x181f1e(++_0x55ba40);}(_0x0232,0x11e));var _0x2023=function(_0x2d1d29,_0x472a0b){_0x2d1d29=_0x2d1d29-0x0;var _0x33b3b9=_0x0232[_0x2d1d29];return _0x33b3b9;};'use strict';var _=require(_0x2023('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0x2023('0x1'));var rs=require(_0x2023('0x2'));var fs=require('fs');var Redis=require(_0x2023('0x3'));var db=require(_0x2023('0x4'))['db'];var utils=require(_0x2023('0x5'));var logger=require(_0x2023('0x6'))(_0x2023('0x7'));var config=require('../../config/environment');var jayson=require(_0x2023('0x8'));var client=jayson[_0x2023('0x9')][_0x2023('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x5f231d,_0x40fd29,_0x174556){return new BPromise(function(_0x57a13f,_0x1dfb2f){return client[_0x2023('0xb')](_0x5f231d,_0x174556)[_0x2023('0xc')](function(_0x10de99){logger[_0x2023('0xd')](_0x2023('0xe'),_0x40fd29,_0x2023('0xf'));logger[_0x2023('0x10')]('CmHopper,\x20%s,\x20%s,\x20%s',_0x40fd29,_0x2023('0xf'),JSON[_0x2023('0x11')](_0x10de99));if(_0x10de99[_0x2023('0x12')]){if(_0x10de99[_0x2023('0x12')][_0x2023('0x13')]===0x1f4){logger[_0x2023('0x12')](_0x2023('0xe'),_0x40fd29,_0x10de99[_0x2023('0x12')]['message']);return _0x1dfb2f(_0x10de99[_0x2023('0x12')][_0x2023('0x14')]);}logger['error'](_0x2023('0xe'),_0x40fd29,_0x10de99[_0x2023('0x12')][_0x2023('0x14')]);return _0x57a13f(_0x10de99[_0x2023('0x12')]['message']);}else{logger['info'](_0x2023('0xe'),_0x40fd29,_0x2023('0xf'));_0x57a13f(_0x10de99[_0x2023('0x15')]['message']);}})[_0x2023('0x16')](function(_0x2aa560){logger[_0x2023('0x12')](_0x2023('0xe'),_0x40fd29,_0x2aa560);_0x1dfb2f(_0x2aa560);});});}exports[_0x2023('0x17')]=function(_0x244f57){var _0x39b650=this;return new Promise(function(_0x4d5256,_0x23fb41){return db['CmHopper'][_0x2023('0x18')]({'raw':_0x244f57['options']?_0x244f57[_0x2023('0x19')]['raw']===undefined?!![]:![]:!![],'where':_0x244f57[_0x2023('0x19')]?_0x244f57[_0x2023('0x19')][_0x2023('0x1a')]||null:null,'attributes':_0x244f57[_0x2023('0x19')]?_0x244f57[_0x2023('0x19')][_0x2023('0x1b')]||null:null,'limit':_0x244f57[_0x2023('0x19')]?_0x244f57[_0x2023('0x19')][_0x2023('0x1c')]||null:null,'include':_0x244f57[_0x2023('0x19')]?_0x244f57['options'][_0x2023('0x1d')]?_['map'](_0x244f57[_0x2023('0x19')][_0x2023('0x1d')],function(_0x131051){return{'model':db[_0x131051['model']],'as':_0x131051['as'],'attributes':_0x131051[_0x2023('0x1b')],'include':_0x131051[_0x2023('0x1d')]?_[_0x2023('0x1e')](_0x131051[_0x2023('0x1d')],function(_0x1f5dcd){return{'model':db[_0x1f5dcd[_0x2023('0x1f')]],'as':_0x1f5dcd['as'],'attributes':_0x1f5dcd[_0x2023('0x1b')],'include':_0x1f5dcd[_0x2023('0x1d')]?_['map'](_0x1f5dcd[_0x2023('0x1d')],function(_0x3f3629){return{'model':db[_0x3f3629[_0x2023('0x1f')]],'as':_0x3f3629['as'],'attributes':_0x3f3629[_0x2023('0x1b')]};}):[]};}):[]};}):[]:[]})[_0x2023('0xc')](function(_0x23bd58){logger['info']('GetCmHopper',_0x244f57);logger['debug'](_0x2023('0x17'),_0x244f57,JSON[_0x2023('0x11')](_0x23bd58));_0x4d5256(_0x23bd58);})[_0x2023('0x16')](function(_0x3296d4){logger[_0x2023('0x12')](_0x2023('0x17'),_0x3296d4['message'],_0x244f57);_0x23fb41(_0x39b650['error'](0x1f4,_0x3296d4[_0x2023('0x14')]));});});};exports[_0x2023('0x20')]=function(_0x265ac7){var _0x1b09d5=this;return new Promise(function(_0x52fe07,_0x33d218){return db[_0x2023('0x21')][_0x2023('0x22')]({'raw':_0x265ac7['options']?_0x265ac7['options'][_0x2023('0x23')]===undefined?!![]:![]:!![],'where':_0x265ac7[_0x2023('0x19')]?_0x265ac7[_0x2023('0x19')][_0x2023('0x1a')]||null:null,'attributes':_0x265ac7[_0x2023('0x19')]?_0x265ac7['options'][_0x2023('0x1b')]||null:null,'include':_0x265ac7[_0x2023('0x19')]?_0x265ac7[_0x2023('0x19')]['include']?_[_0x2023('0x1e')](_0x265ac7['options'][_0x2023('0x1d')],function(_0x11a534){return{'model':db[_0x11a534[_0x2023('0x1f')]],'as':_0x11a534['as'],'attributes':_0x11a534['attributes'],'include':_0x11a534['include']?_[_0x2023('0x1e')](_0x11a534[_0x2023('0x1d')],function(_0x5e32e6){return{'model':db[_0x5e32e6['model']],'as':_0x5e32e6['as'],'attributes':_0x5e32e6['attributes'],'include':_0x5e32e6[_0x2023('0x1d')]?_[_0x2023('0x1e')](_0x5e32e6['include'],function(_0x5025f1){return{'model':db[_0x5025f1[_0x2023('0x1f')]],'as':_0x5025f1['as'],'attributes':_0x5025f1['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x3058a8){logger[_0x2023('0xd')](_0x2023('0x20'),_0x265ac7);logger['debug'](_0x2023('0x20'),_0x265ac7,JSON['stringify'](_0x3058a8));_0x52fe07(_0x3058a8);})[_0x2023('0x16')](function(_0x413926){logger['error'](_0x2023('0x20'),_0x413926[_0x2023('0x14')],_0x265ac7);_0x33d218(_0x1b09d5[_0x2023('0x12')](0x1f4,_0x413926[_0x2023('0x14')]));});});};exports[_0x2023('0x24')]=function(_0x37944c){var _0xd0c08a=this;return new Promise(function(_0x5dcb35,_0x557b39){return db[_0x2023('0x21')][_0x2023('0x25')](_0x37944c[_0x2023('0x26')],{'raw':_0x37944c[_0x2023('0x19')]?_0x37944c[_0x2023('0x19')][_0x2023('0x23')]===undefined?!![]:![]:!![]})[_0x2023('0xc')](function(_0x33724a){logger[_0x2023('0xd')]('CreateCmHopper',_0x37944c);logger['debug'](_0x2023('0x24'),_0x37944c,JSON[_0x2023('0x11')](_0x33724a));_0x5dcb35(_0x33724a);})[_0x2023('0x16')](function(_0x543796){logger[_0x2023('0x12')](_0x2023('0x24'),_0x543796[_0x2023('0x14')],_0x37944c);_0x557b39(_0xd0c08a[_0x2023('0x12')](0x1f4,_0x543796['message']));});});};exports['UpdateCmHopper']=function(_0x2bf893){var _0x10beb4=this;return new Promise(function(_0x1655e7,_0x58f683){return db[_0x2023('0x21')]['update'](_0x2bf893[_0x2023('0x26')],{'raw':_0x2bf893[_0x2023('0x19')]?_0x2bf893[_0x2023('0x19')][_0x2023('0x23')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x2bf893[_0x2023('0x19')]?_0x2bf893[_0x2023('0x19')][_0x2023('0x1a')]||null:null,'attributes':_0x2bf893[_0x2023('0x19')]?_0x2bf893[_0x2023('0x19')]['attributes']||null:null,'limit':_0x2bf893['options']?_0x2bf893[_0x2023('0x19')][_0x2023('0x1c')]||null:null})[_0x2023('0xc')](function(_0x5b5a0f){logger[_0x2023('0xd')](_0x2023('0x27'),_0x2bf893);logger[_0x2023('0x10')](_0x2023('0x27'),_0x2bf893,JSON[_0x2023('0x11')](_0x5b5a0f));_0x1655e7(_0x5b5a0f);})[_0x2023('0x16')](function(_0x5ec448){logger[_0x2023('0x12')](_0x2023('0x27'),_0x5ec448['message'],_0x2bf893);_0x58f683(_0x10beb4[_0x2023('0x12')](0x1f4,_0x5ec448[_0x2023('0x14')]));});});};exports['DestroyCmHopper']=function(_0x45b0d8){var _0x4fb62f=this;return new Promise(function(_0x3bd1de,_0x20162e){return db['CmHopper'][_0x2023('0x28')]({'where':_0x45b0d8[_0x2023('0x19')]?_0x45b0d8[_0x2023('0x19')]['where']||null:null})[_0x2023('0xc')](function(_0x5f2f09){logger['info'](_0x2023('0x29'),_0x45b0d8);logger[_0x2023('0x10')](_0x2023('0x29'),_0x45b0d8,JSON[_0x2023('0x11')](_0x5f2f09));_0x3bd1de(_0x5f2f09);})['catch'](function(_0x47ee41){logger[_0x2023('0x12')](_0x2023('0x29'),_0x47ee41[_0x2023('0x14')],_0x45b0d8);_0x20162e(_0x4fb62f['error'](0x1f4,_0x47ee41['message']));});});};exports[_0x2023('0x2a')]=function(_0x187162){var _0x219877=this;return new Promise(function(_0x43e225,_0x37944b){return db[_0x2023('0x2b')][_0x2023('0x2c')]()['then'](function(_0x8b5100){return db['sequelize'][_0x2023('0x2d')](function(_0x2602db){return db['CmHopper'][_0x2023('0x18')]({'where':_0x187162[_0x2023('0x19')]?_0x187162[_0x2023('0x19')][_0x2023('0x1a')]||null:null,'attributes':_0x187162[_0x2023('0x19')]?_0x187162[_0x2023('0x19')][_0x2023('0x1b')]||null:null,'limit':_0x187162[_0x2023('0x19')]?_0x187162['options']['limit']||null:null,'order':_0x187162['options']?_0x187162[_0x2023('0x19')][_0x2023('0x2e')]||null:null,'transaction':_0x2602db,'lock':_0x2602db[_0x2023('0x2f')]['UPDATE'],'include':[{'model':db[_0x2023('0x2b')],'as':_0x2023('0x30'),'attributes':_[_0x2023('0x31')](_0x8b5100)},{'model':db[_0x2023('0x32')],'as':'Agent','attributes':['id',_0x2023('0x33'),_0x2023('0x34')]}]})[_0x2023('0xc')](function(_0x4a8da7){var _0x2e5653=[];var _0x58845a=[];for(var _0x5110a8=0x0;_0x5110a8<_0x4a8da7[_0x2023('0x35')];_0x5110a8+=0x1){var _0x529122=_0x4a8da7[_0x5110a8][_0x2023('0x36')];if(_0x529122===null){_0x2e5653[_0x2023('0x37')](_0x4a8da7[_0x5110a8]['update'](_0x187162['body'],{'transaction':_0x2602db}));}else if(!_0x58845a[_0x2023('0x38')](_0x529122)){_0x58845a[_0x2023('0x37')](_0x529122);_0x2e5653[_0x2023('0x37')](_0x4a8da7[_0x5110a8][_0x2023('0x39')](_0x187162[_0x2023('0x26')],{'transaction':_0x2602db}));}}return BPromise[_0x2023('0x3a')](_0x2e5653);});})[_0x2023('0xc')](function(_0x10b066){logger[_0x2023('0xd')](_0x2023('0x2a'),_0x187162);logger[_0x2023('0x10')]('GetContactDialer',_0x187162,JSON[_0x2023('0x11')](_0x10b066));_0x43e225(_0x10b066);})[_0x2023('0x16')](function(_0x1faa98){logger[_0x2023('0x12')](_0x2023('0x2a'),_0x1faa98[_0x2023('0x14')],_0x187162);_0x37944b(_0x219877[_0x2023('0x12')](0x1f4,_0x1faa98[_0x2023('0x14')]));});});});};exports[_0x2023('0x3b')]=function(_0x799995){var _0x52ba27=this;return new Promise(function(_0x1550f5,_0x92841c){return db['sequelize'][_0x2023('0x2d')](function(_0x477091){return db[_0x2023('0x3c')]['create'](_0x799995[_0x2023('0x26')],{'raw':_0x799995['options']?_0x799995[_0x2023('0x19')][_0x2023('0x23')]===undefined?!![]:![]:!![],'transaction':_0x477091})['then'](function(){return db[_0x2023('0x21')]['destroy']({'where':_0x799995[_0x2023('0x19')]?_0x799995[_0x2023('0x19')][_0x2023('0x1a')]||null:null,'transaction':_0x477091});});})['then'](function(_0x5a9839){logger['info']('MoveContactManagedDialer',_0x799995);logger[_0x2023('0x10')](_0x2023('0x3b'),_0x799995,JSON[_0x2023('0x11')](_0x5a9839));_0x1550f5(_0x5a9839);})['catch'](function(_0x531285){logger['error'](_0x2023('0x3b'),_0x531285[_0x2023('0x14')],_0x799995);_0x92841c(_0x52ba27[_0x2023('0x12')](0x1f4,_0x531285[_0x2023('0x14')]));});});};exports[_0x2023('0x3d')]=function(_0x3954e0){var _0x4c4b9a=this;return new Promise(function(_0x26b3e3,_0x91d48a){return db['CmHopper'][_0x2023('0x18')]({'raw':_0x3954e0['options']?_0x3954e0[_0x2023('0x19')]['raw']===undefined?!![]:![]:!![],'where':_0x3954e0[_0x2023('0x19')]?_0x3954e0[_0x2023('0x19')][_0x2023('0x1a')]||null:null,'attributes':[[db[_0x2023('0x3e')]['fn'](_0x2023('0x3f'),db[_0x2023('0x3e')]['fn']('IF',db[_0x2023('0x3e')][_0x2023('0x40')](_0x2023('0x41')+util[_0x2023('0x42')](_0x2023('0x43'),moment()[_0x2023('0x42')](_0x2023('0x44')))+_0x2023('0x45')))),_0x2023('0x46')]]})[_0x2023('0xc')](function(_0x1c044c){logger[_0x2023('0xd')](_0x2023('0x3d'),_0x3954e0);logger['debug'](_0x2023('0x3d'),_0x3954e0,JSON[_0x2023('0x11')](_0x1c044c));_0x26b3e3(_0x1c044c);})[_0x2023('0x16')](function(_0x2ca074){logger['error'](_0x2023('0x3d'),_0x2ca074[_0x2023('0x14')],_0x3954e0);_0x91d48a(_0x4c4b9a[_0x2023('0x12')](0x1f4,_0x2ca074[_0x2023('0x14')]));});});};exports[_0x2023('0x47')]=function(_0x43e942){var _0x5131f7=this;return new Promise(function(_0x4955d7,_0x19c802){return db['CmContact'][_0x2023('0x2c')]()[_0x2023('0xc')](function(_0x5f0d50){return db['sequelize'][_0x2023('0x2d')](function(_0x3f4327){return db[_0x2023('0x21')][_0x2023('0x18')]({'where':_0x43e942[_0x2023('0x19')]?_0x43e942[_0x2023('0x19')][_0x2023('0x1a')]||null:null,'attributes':_0x43e942['options']?_0x43e942[_0x2023('0x19')][_0x2023('0x1b')]||null:null,'limit':0x1,'order':_0x43e942['options']?_0x43e942['options'][_0x2023('0x2e')]||null:null,'group':db[_0x2023('0x21')][_0x2023('0x36')],'transaction':_0x3f4327,'lock':_0x3f4327[_0x2023('0x2f')][_0x2023('0x48')],'include':_0x43e942['options']?_0x43e942['options'][_0x2023('0x1d')]?_[_0x2023('0x1e')](_0x43e942[_0x2023('0x19')]['include'],function(_0x1077f2){return{'model':db[_0x1077f2[_0x2023('0x1f')]],'as':_0x1077f2['as'],'attributes':_0x1077f2[_0x2023('0x1b')],'include':_0x1077f2['include']?_[_0x2023('0x1e')](_0x1077f2['include'],function(_0x2e2a88){return{'model':db[_0x2e2a88[_0x2023('0x1f')]],'as':_0x2e2a88['as'],'attributes':_0x2e2a88[_0x2023('0x1b')],'include':_0x2e2a88['include']?_['map'](_0x2e2a88[_0x2023('0x1d')],function(_0x5dfcbe){return{'model':db[_0x5dfcbe['model']],'as':_0x5dfcbe['as'],'attributes':_0x5dfcbe['attributes']};}):[]};}):[]};}):[]:[]})[_0x2023('0xc')](function(_0x199ad6){var _0x721345=[];for(var _0x578977=0x0;_0x578977<_0x199ad6[_0x2023('0x35')];_0x578977+=0x1){_0x721345[_0x2023('0x37')](_0x199ad6[_0x578977][_0x2023('0x39')](_0x43e942[_0x2023('0x26')],{'transaction':_0x3f4327}));}return BPromise['all'](_0x721345);});})['then'](function(_0x4977d7){logger[_0x2023('0xd')](_0x2023('0x47'),_0x43e942);logger['debug'](_0x2023('0x47'),_0x43e942,JSON[_0x2023('0x11')](_0x4977d7));_0x4955d7(_0x4977d7);})[_0x2023('0x16')](function(_0x595636){logger[_0x2023('0x12')](_0x2023('0x47'),_0x595636[_0x2023('0x14')],_0x43e942);_0x19c802(_0x5131f7[_0x2023('0x12')](0x1f4,_0x595636['message']));});});});};exports[_0x2023('0x49')]=function(_0x27c917){var _0x22b7e4=this;return new Promise(function(_0x55d636,_0x444305){db['CmContact'][_0x2023('0x2c')]()[_0x2023('0xc')](function(_0x541c3d){return db[_0x2023('0x21')][_0x2023('0x18')]({'raw':_0x27c917['options']?_0x27c917[_0x2023('0x19')]['raw']===undefined?!![]:![]:!![],'where':_0x27c917[_0x2023('0x19')]?_0x27c917['options'][_0x2023('0x1a')]||null:null,'attributes':_0x27c917['options']?_0x27c917[_0x2023('0x19')]['attributes']||null:null,'limit':_0x27c917[_0x2023('0x19')]?_0x27c917[_0x2023('0x19')]['limit']||null:null,'include':_0x27c917['options']?_0x27c917[_0x2023('0x19')][_0x2023('0x1d')]?_[_0x2023('0x1e')](_0x27c917['options'][_0x2023('0x1d')],function(_0x2dffcb){return{'model':db[_0x2dffcb[_0x2023('0x1f')]],'as':_0x2dffcb['as'],'attributes':_0x2dffcb['as']===_0x2023('0x30')?_[_0x2023('0x31')](_0x541c3d):_0x2dffcb[_0x2023('0x1b')],'include':_0x2dffcb[_0x2023('0x1d')]?_[_0x2023('0x1e')](_0x2dffcb[_0x2023('0x1d')],function(_0x487c79){return{'model':db[_0x487c79['model']],'as':_0x487c79['as'],'attributes':_0x487c79[_0x2023('0x1b')],'include':_0x487c79[_0x2023('0x1d')]?_[_0x2023('0x1e')](_0x487c79[_0x2023('0x1d')],function(_0x4d4a6a){return{'model':db[_0x4d4a6a[_0x2023('0x1f')]],'as':_0x4d4a6a['as'],'attributes':_0x4d4a6a['attributes']};}):[]};}):[]};}):[]:[]})[_0x2023('0xc')](function(_0x10921f){logger['info'](_0x2023('0x17'),_0x27c917);logger[_0x2023('0x10')]('GetCmHopper',_0x27c917,JSON['stringify'](_0x10921f));_0x55d636(_0x10921f);})['catch'](function(_0xc78436){logger[_0x2023('0x12')]('GetCmHopper',_0xc78436[_0x2023('0x14')],_0x27c917);_0x444305(_0x22b7e4[_0x2023('0x12')](0x1f4,_0xc78436['message']));});});});};
\ No newline at end of file
+var _0xcc97=['../../config/environment','jayson/promise','client','http','then','info','debug','CmHopper,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','CmHopper,\x20%s,\x20%s','message','result','catch','GetCmHopper','CmHopper','findAll','options','raw','where','attributes','map','include','model','ShowCmHopper','find','CreateCmHopper','create','body','update','limit','UpdateCmHopper','DestroyCmHopper','GetContactDialer','CmContact','describe','sequelize','transaction','order','LOCK','Contact','keys','User','Agent','name','voicePause','length','UserId','push','includes','all','MoveContactManagedDialer','destroy','COUNT','literal','`scheduledat`\x20>=\x20','\x22%s\x22','format','\x20,\x201,\x20null','contactsRescheduled','CountReScheduled','GetContactRecallMe','UPDATE','GetCmHopperPreview','lodash','util','moment','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc'];(function(_0x4b90b7,_0x2b0ab0){var _0x36ac5f=function(_0x33662a){while(--_0x33662a){_0x4b90b7['push'](_0x4b90b7['shift']());}};_0x36ac5f(++_0x2b0ab0);}(_0xcc97,0x1b4));var _0x7cc9=function(_0x518045,_0x3077a2){_0x518045=_0x518045-0x0;var _0x1b7153=_0xcc97[_0x518045];return _0x1b7153;};'use strict';var _=require(_0x7cc9('0x0'));var util=require(_0x7cc9('0x1'));var moment=require(_0x7cc9('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x7cc9('0x3'));var db=require(_0x7cc9('0x4'))['db'];var utils=require(_0x7cc9('0x5'));var logger=require(_0x7cc9('0x6'))(_0x7cc9('0x7'));var config=require(_0x7cc9('0x8'));var jayson=require(_0x7cc9('0x9'));var client=jayson[_0x7cc9('0xa')][_0x7cc9('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x35f7b9,_0xe40ee8,_0x567bf7){return new BPromise(function(_0x15f201,_0x15327d){return client['request'](_0x35f7b9,_0x567bf7)[_0x7cc9('0xc')](function(_0x1bce9b){logger[_0x7cc9('0xd')]('CmHopper,\x20%s,\x20%s',_0xe40ee8,'request\x20sent');logger[_0x7cc9('0xe')](_0x7cc9('0xf'),_0xe40ee8,_0x7cc9('0x10'),JSON[_0x7cc9('0x11')](_0x1bce9b));if(_0x1bce9b[_0x7cc9('0x12')]){if(_0x1bce9b[_0x7cc9('0x12')][_0x7cc9('0x13')]===0x1f4){logger[_0x7cc9('0x12')](_0x7cc9('0x14'),_0xe40ee8,_0x1bce9b[_0x7cc9('0x12')][_0x7cc9('0x15')]);return _0x15327d(_0x1bce9b['error'][_0x7cc9('0x15')]);}logger[_0x7cc9('0x12')](_0x7cc9('0x14'),_0xe40ee8,_0x1bce9b[_0x7cc9('0x12')]['message']);return _0x15f201(_0x1bce9b[_0x7cc9('0x12')][_0x7cc9('0x15')]);}else{logger['info'](_0x7cc9('0x14'),_0xe40ee8,'request\x20sent');_0x15f201(_0x1bce9b[_0x7cc9('0x16')]['message']);}})[_0x7cc9('0x17')](function(_0x2c9ee7){logger[_0x7cc9('0x12')]('CmHopper,\x20%s,\x20%s',_0xe40ee8,_0x2c9ee7);_0x15327d(_0x2c9ee7);});});}exports[_0x7cc9('0x18')]=function(_0x474c48){var _0x3d1478=this;return new Promise(function(_0xe0ea31,_0x2f6e8b){return db[_0x7cc9('0x19')][_0x7cc9('0x1a')]({'raw':_0x474c48[_0x7cc9('0x1b')]?_0x474c48[_0x7cc9('0x1b')][_0x7cc9('0x1c')]===undefined?!![]:![]:!![],'where':_0x474c48[_0x7cc9('0x1b')]?_0x474c48[_0x7cc9('0x1b')][_0x7cc9('0x1d')]||null:null,'attributes':_0x474c48[_0x7cc9('0x1b')]?_0x474c48[_0x7cc9('0x1b')][_0x7cc9('0x1e')]||null:null,'limit':_0x474c48[_0x7cc9('0x1b')]?_0x474c48['options']['limit']||null:null,'include':_0x474c48['options']?_0x474c48['options']['include']?_[_0x7cc9('0x1f')](_0x474c48[_0x7cc9('0x1b')][_0x7cc9('0x20')],function(_0x4b353c){return{'model':db[_0x4b353c[_0x7cc9('0x21')]],'as':_0x4b353c['as'],'attributes':_0x4b353c[_0x7cc9('0x1e')],'include':_0x4b353c[_0x7cc9('0x20')]?_[_0x7cc9('0x1f')](_0x4b353c[_0x7cc9('0x20')],function(_0x42f6b4){return{'model':db[_0x42f6b4['model']],'as':_0x42f6b4['as'],'attributes':_0x42f6b4[_0x7cc9('0x1e')],'include':_0x42f6b4['include']?_[_0x7cc9('0x1f')](_0x42f6b4[_0x7cc9('0x20')],function(_0x284c2a){return{'model':db[_0x284c2a[_0x7cc9('0x21')]],'as':_0x284c2a['as'],'attributes':_0x284c2a[_0x7cc9('0x1e')]};}):[]};}):[]};}):[]:[]})[_0x7cc9('0xc')](function(_0x5b5486){logger[_0x7cc9('0xd')](_0x7cc9('0x18'),_0x474c48);logger[_0x7cc9('0xe')](_0x7cc9('0x18'),_0x474c48,JSON['stringify'](_0x5b5486));_0xe0ea31(_0x5b5486);})[_0x7cc9('0x17')](function(_0x3b1a52){logger[_0x7cc9('0x12')](_0x7cc9('0x18'),_0x3b1a52[_0x7cc9('0x15')],_0x474c48);_0x2f6e8b(_0x3d1478[_0x7cc9('0x12')](0x1f4,_0x3b1a52[_0x7cc9('0x15')]));});});};exports[_0x7cc9('0x22')]=function(_0xa0d9fc){var _0x28b66c=this;return new Promise(function(_0x2255c4,_0x33822b){return db['CmHopper'][_0x7cc9('0x23')]({'raw':_0xa0d9fc[_0x7cc9('0x1b')]?_0xa0d9fc[_0x7cc9('0x1b')][_0x7cc9('0x1c')]===undefined?!![]:![]:!![],'where':_0xa0d9fc[_0x7cc9('0x1b')]?_0xa0d9fc[_0x7cc9('0x1b')]['where']||null:null,'attributes':_0xa0d9fc['options']?_0xa0d9fc['options'][_0x7cc9('0x1e')]||null:null,'include':_0xa0d9fc[_0x7cc9('0x1b')]?_0xa0d9fc[_0x7cc9('0x1b')][_0x7cc9('0x20')]?_[_0x7cc9('0x1f')](_0xa0d9fc[_0x7cc9('0x1b')][_0x7cc9('0x20')],function(_0x54a910){return{'model':db[_0x54a910[_0x7cc9('0x21')]],'as':_0x54a910['as'],'attributes':_0x54a910[_0x7cc9('0x1e')],'include':_0x54a910[_0x7cc9('0x20')]?_['map'](_0x54a910[_0x7cc9('0x20')],function(_0x37bd3e){return{'model':db[_0x37bd3e['model']],'as':_0x37bd3e['as'],'attributes':_0x37bd3e[_0x7cc9('0x1e')],'include':_0x37bd3e['include']?_['map'](_0x37bd3e[_0x7cc9('0x20')],function(_0xe92346){return{'model':db[_0xe92346['model']],'as':_0xe92346['as'],'attributes':_0xe92346['attributes']};}):[]};}):[]};}):[]:[]})[_0x7cc9('0xc')](function(_0x36f90f){logger[_0x7cc9('0xd')](_0x7cc9('0x22'),_0xa0d9fc);logger['debug'](_0x7cc9('0x22'),_0xa0d9fc,JSON[_0x7cc9('0x11')](_0x36f90f));_0x2255c4(_0x36f90f);})[_0x7cc9('0x17')](function(_0x420a88){logger[_0x7cc9('0x12')]('ShowCmHopper',_0x420a88['message'],_0xa0d9fc);_0x33822b(_0x28b66c['error'](0x1f4,_0x420a88[_0x7cc9('0x15')]));});});};exports[_0x7cc9('0x24')]=function(_0x24ed84){var _0x126fff=this;return new Promise(function(_0x27ba74,_0xa782b4){return db[_0x7cc9('0x19')][_0x7cc9('0x25')](_0x24ed84[_0x7cc9('0x26')],{'raw':_0x24ed84[_0x7cc9('0x1b')]?_0x24ed84[_0x7cc9('0x1b')][_0x7cc9('0x1c')]===undefined?!![]:![]:!![]})[_0x7cc9('0xc')](function(_0x97f763){logger['info'](_0x7cc9('0x24'),_0x24ed84);logger[_0x7cc9('0xe')](_0x7cc9('0x24'),_0x24ed84,JSON[_0x7cc9('0x11')](_0x97f763));_0x27ba74(_0x97f763);})[_0x7cc9('0x17')](function(_0x4c9db9){logger[_0x7cc9('0x12')](_0x7cc9('0x24'),_0x4c9db9[_0x7cc9('0x15')],_0x24ed84);_0xa782b4(_0x126fff[_0x7cc9('0x12')](0x1f4,_0x4c9db9[_0x7cc9('0x15')]));});});};exports['UpdateCmHopper']=function(_0x1c1e80){var _0x55e1e8=this;return new Promise(function(_0x8c49b5,_0x3896c0){return db[_0x7cc9('0x19')][_0x7cc9('0x27')](_0x1c1e80[_0x7cc9('0x26')],{'raw':_0x1c1e80[_0x7cc9('0x1b')]?_0x1c1e80[_0x7cc9('0x1b')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x1c1e80[_0x7cc9('0x1b')]?_0x1c1e80[_0x7cc9('0x1b')][_0x7cc9('0x1d')]||null:null,'attributes':_0x1c1e80[_0x7cc9('0x1b')]?_0x1c1e80[_0x7cc9('0x1b')][_0x7cc9('0x1e')]||null:null,'limit':_0x1c1e80['options']?_0x1c1e80[_0x7cc9('0x1b')][_0x7cc9('0x28')]||null:null})[_0x7cc9('0xc')](function(_0x5832f7){logger[_0x7cc9('0xd')](_0x7cc9('0x29'),_0x1c1e80);logger[_0x7cc9('0xe')]('UpdateCmHopper',_0x1c1e80,JSON[_0x7cc9('0x11')](_0x5832f7));_0x8c49b5(_0x5832f7);})[_0x7cc9('0x17')](function(_0x209fa8){logger[_0x7cc9('0x12')](_0x7cc9('0x29'),_0x209fa8[_0x7cc9('0x15')],_0x1c1e80);_0x3896c0(_0x55e1e8[_0x7cc9('0x12')](0x1f4,_0x209fa8[_0x7cc9('0x15')]));});});};exports[_0x7cc9('0x2a')]=function(_0x244c0d){var _0x52dda9=this;return new Promise(function(_0x681636,_0x259b91){return db[_0x7cc9('0x19')]['destroy']({'where':_0x244c0d[_0x7cc9('0x1b')]?_0x244c0d[_0x7cc9('0x1b')][_0x7cc9('0x1d')]||null:null})[_0x7cc9('0xc')](function(_0x5e8339){logger[_0x7cc9('0xd')](_0x7cc9('0x2a'),_0x244c0d);logger[_0x7cc9('0xe')](_0x7cc9('0x2a'),_0x244c0d,JSON[_0x7cc9('0x11')](_0x5e8339));_0x681636(_0x5e8339);})['catch'](function(_0x3aa1c4){logger[_0x7cc9('0x12')](_0x7cc9('0x2a'),_0x3aa1c4[_0x7cc9('0x15')],_0x244c0d);_0x259b91(_0x52dda9[_0x7cc9('0x12')](0x1f4,_0x3aa1c4[_0x7cc9('0x15')]));});});};exports[_0x7cc9('0x2b')]=function(_0xf0f5c2){var _0x397b57=this;return new Promise(function(_0x400248,_0x1b9f58){return db[_0x7cc9('0x2c')][_0x7cc9('0x2d')]()[_0x7cc9('0xc')](function(_0x1ddfd6){return db[_0x7cc9('0x2e')][_0x7cc9('0x2f')](function(_0x20fe07){return db[_0x7cc9('0x19')][_0x7cc9('0x1a')]({'where':_0xf0f5c2[_0x7cc9('0x1b')]?_0xf0f5c2['options']['where']||null:null,'attributes':_0xf0f5c2[_0x7cc9('0x1b')]?_0xf0f5c2[_0x7cc9('0x1b')][_0x7cc9('0x1e')]||null:null,'limit':_0xf0f5c2[_0x7cc9('0x1b')]?_0xf0f5c2[_0x7cc9('0x1b')][_0x7cc9('0x28')]||null:null,'order':_0xf0f5c2[_0x7cc9('0x1b')]?_0xf0f5c2[_0x7cc9('0x1b')][_0x7cc9('0x30')]||null:null,'transaction':_0x20fe07,'lock':_0x20fe07[_0x7cc9('0x31')]['UPDATE'],'include':[{'model':db[_0x7cc9('0x2c')],'as':_0x7cc9('0x32'),'attributes':_[_0x7cc9('0x33')](_0x1ddfd6)},{'model':db[_0x7cc9('0x34')],'as':_0x7cc9('0x35'),'attributes':['id',_0x7cc9('0x36'),_0x7cc9('0x37')]}]})[_0x7cc9('0xc')](function(_0x5d043a){var _0x1104a0=[];var _0x100732=[];for(var _0x60e46d=0x0;_0x60e46d<_0x5d043a[_0x7cc9('0x38')];_0x60e46d+=0x1){var _0x2cf9bc=_0x5d043a[_0x60e46d][_0x7cc9('0x39')];if(_0x2cf9bc===null){_0x1104a0[_0x7cc9('0x3a')](_0x5d043a[_0x60e46d][_0x7cc9('0x27')](_0xf0f5c2[_0x7cc9('0x26')],{'transaction':_0x20fe07}));}else if(!_0x100732[_0x7cc9('0x3b')](_0x2cf9bc)){_0x100732['push'](_0x2cf9bc);_0x1104a0['push'](_0x5d043a[_0x60e46d]['update'](_0xf0f5c2[_0x7cc9('0x26')],{'transaction':_0x20fe07}));}}return BPromise[_0x7cc9('0x3c')](_0x1104a0);});})[_0x7cc9('0xc')](function(_0x393708){logger[_0x7cc9('0xd')](_0x7cc9('0x2b'),_0xf0f5c2);logger[_0x7cc9('0xe')](_0x7cc9('0x2b'),_0xf0f5c2,JSON[_0x7cc9('0x11')](_0x393708));_0x400248(_0x393708);})['catch'](function(_0x5d4c6a){logger[_0x7cc9('0x12')]('GetContactDialer',_0x5d4c6a[_0x7cc9('0x15')],_0xf0f5c2);_0x1b9f58(_0x397b57[_0x7cc9('0x12')](0x1f4,_0x5d4c6a[_0x7cc9('0x15')]));});});});};exports[_0x7cc9('0x3d')]=function(_0x3ca4eb){var _0x3fe0af=this;return new Promise(function(_0xb34695,_0x3fa2bc){return db[_0x7cc9('0x2e')][_0x7cc9('0x2f')](function(_0x19702b){return db['CmHopperFinal']['create'](_0x3ca4eb[_0x7cc9('0x26')],{'raw':_0x3ca4eb[_0x7cc9('0x1b')]?_0x3ca4eb[_0x7cc9('0x1b')]['raw']===undefined?!![]:![]:!![],'transaction':_0x19702b})[_0x7cc9('0xc')](function(){return db[_0x7cc9('0x19')][_0x7cc9('0x3e')]({'where':_0x3ca4eb[_0x7cc9('0x1b')]?_0x3ca4eb[_0x7cc9('0x1b')]['where']||null:null,'transaction':_0x19702b});});})[_0x7cc9('0xc')](function(_0x5b168f){logger[_0x7cc9('0xd')]('MoveContactManagedDialer',_0x3ca4eb);logger['debug'](_0x7cc9('0x3d'),_0x3ca4eb,JSON[_0x7cc9('0x11')](_0x5b168f));_0xb34695(_0x5b168f);})[_0x7cc9('0x17')](function(_0x121cbd){logger[_0x7cc9('0x12')]('MoveContactManagedDialer',_0x121cbd['message'],_0x3ca4eb);_0x3fa2bc(_0x3fe0af['error'](0x1f4,_0x121cbd[_0x7cc9('0x15')]));});});};exports['CountReScheduled']=function(_0x356856){var _0x42999b=this;return new Promise(function(_0x3516b8,_0x56dd88){return db[_0x7cc9('0x19')][_0x7cc9('0x1a')]({'raw':_0x356856[_0x7cc9('0x1b')]?_0x356856[_0x7cc9('0x1b')][_0x7cc9('0x1c')]===undefined?!![]:![]:!![],'where':_0x356856[_0x7cc9('0x1b')]?_0x356856['options']['where']||null:null,'attributes':[[db['sequelize']['fn'](_0x7cc9('0x3f'),db[_0x7cc9('0x2e')]['fn']('IF',db[_0x7cc9('0x2e')][_0x7cc9('0x40')](_0x7cc9('0x41')+util['format'](_0x7cc9('0x42'),moment()[_0x7cc9('0x43')]('YYYY-MM-DD\x20HH:mm:ss'))+_0x7cc9('0x44')))),_0x7cc9('0x45')]]})[_0x7cc9('0xc')](function(_0x24ee58){logger[_0x7cc9('0xd')](_0x7cc9('0x46'),_0x356856);logger[_0x7cc9('0xe')](_0x7cc9('0x46'),_0x356856,JSON['stringify'](_0x24ee58));_0x3516b8(_0x24ee58);})[_0x7cc9('0x17')](function(_0x3a688a){logger[_0x7cc9('0x12')](_0x7cc9('0x46'),_0x3a688a[_0x7cc9('0x15')],_0x356856);_0x56dd88(_0x42999b[_0x7cc9('0x12')](0x1f4,_0x3a688a['message']));});});};exports[_0x7cc9('0x47')]=function(_0x2f7ede){var _0x2b3378=this;return new Promise(function(_0xa8d84,_0x188d46){return db['CmContact'][_0x7cc9('0x2d')]()[_0x7cc9('0xc')](function(_0xc941ca){return db[_0x7cc9('0x2e')]['transaction'](function(_0x42fddd){return db[_0x7cc9('0x19')][_0x7cc9('0x1a')]({'where':_0x2f7ede[_0x7cc9('0x1b')]?_0x2f7ede[_0x7cc9('0x1b')][_0x7cc9('0x1d')]||null:null,'attributes':_0x2f7ede['options']?_0x2f7ede[_0x7cc9('0x1b')][_0x7cc9('0x1e')]||null:null,'limit':0x1,'order':_0x2f7ede['options']?_0x2f7ede['options'][_0x7cc9('0x30')]||null:null,'group':db[_0x7cc9('0x19')][_0x7cc9('0x39')],'transaction':_0x42fddd,'lock':_0x42fddd[_0x7cc9('0x31')][_0x7cc9('0x48')],'include':_0x2f7ede[_0x7cc9('0x1b')]?_0x2f7ede[_0x7cc9('0x1b')]['include']?_['map'](_0x2f7ede['options'][_0x7cc9('0x20')],function(_0x156dde){return{'model':db[_0x156dde['model']],'as':_0x156dde['as'],'attributes':_0x156dde[_0x7cc9('0x1e')],'include':_0x156dde[_0x7cc9('0x20')]?_[_0x7cc9('0x1f')](_0x156dde['include'],function(_0x579ff9){return{'model':db[_0x579ff9[_0x7cc9('0x21')]],'as':_0x579ff9['as'],'attributes':_0x579ff9['attributes'],'include':_0x579ff9[_0x7cc9('0x20')]?_[_0x7cc9('0x1f')](_0x579ff9[_0x7cc9('0x20')],function(_0x4acbf5){return{'model':db[_0x4acbf5[_0x7cc9('0x21')]],'as':_0x4acbf5['as'],'attributes':_0x4acbf5[_0x7cc9('0x1e')]};}):[]};}):[]};}):[]:[]})[_0x7cc9('0xc')](function(_0x126724){var _0x98479c=[];for(var _0x3b06f6=0x0;_0x3b06f6<_0x126724['length'];_0x3b06f6+=0x1){_0x98479c[_0x7cc9('0x3a')](_0x126724[_0x3b06f6][_0x7cc9('0x27')](_0x2f7ede[_0x7cc9('0x26')],{'transaction':_0x42fddd}));}return BPromise[_0x7cc9('0x3c')](_0x98479c);});})[_0x7cc9('0xc')](function(_0x2cc5e5){logger['info']('GetContactRecallMe',_0x2f7ede);logger[_0x7cc9('0xe')](_0x7cc9('0x47'),_0x2f7ede,JSON[_0x7cc9('0x11')](_0x2cc5e5));_0xa8d84(_0x2cc5e5);})[_0x7cc9('0x17')](function(_0x873d8b){logger[_0x7cc9('0x12')](_0x7cc9('0x47'),_0x873d8b[_0x7cc9('0x15')],_0x2f7ede);_0x188d46(_0x2b3378['error'](0x1f4,_0x873d8b[_0x7cc9('0x15')]));});});});};exports[_0x7cc9('0x49')]=function(_0x10691b){var _0x23a289=this;return new Promise(function(_0x3a0151,_0x4c0182){db[_0x7cc9('0x2c')][_0x7cc9('0x2d')]()['then'](function(_0x48dd31){return db[_0x7cc9('0x19')][_0x7cc9('0x1a')]({'raw':_0x10691b[_0x7cc9('0x1b')]?_0x10691b[_0x7cc9('0x1b')]['raw']===undefined?!![]:![]:!![],'where':_0x10691b[_0x7cc9('0x1b')]?_0x10691b[_0x7cc9('0x1b')][_0x7cc9('0x1d')]||null:null,'attributes':_0x10691b[_0x7cc9('0x1b')]?_0x10691b[_0x7cc9('0x1b')][_0x7cc9('0x1e')]||null:null,'limit':_0x10691b[_0x7cc9('0x1b')]?_0x10691b['options'][_0x7cc9('0x28')]||null:null,'include':_0x10691b['options']?_0x10691b['options'][_0x7cc9('0x20')]?_[_0x7cc9('0x1f')](_0x10691b[_0x7cc9('0x1b')]['include'],function(_0x12693d){return{'model':db[_0x12693d['model']],'as':_0x12693d['as'],'attributes':_0x12693d['as']==='Contact'?_[_0x7cc9('0x33')](_0x48dd31):_0x12693d[_0x7cc9('0x1e')],'include':_0x12693d[_0x7cc9('0x20')]?_[_0x7cc9('0x1f')](_0x12693d[_0x7cc9('0x20')],function(_0x26f2fa){return{'model':db[_0x26f2fa[_0x7cc9('0x21')]],'as':_0x26f2fa['as'],'attributes':_0x26f2fa[_0x7cc9('0x1e')],'include':_0x26f2fa[_0x7cc9('0x20')]?_[_0x7cc9('0x1f')](_0x26f2fa[_0x7cc9('0x20')],function(_0x338c71){return{'model':db[_0x338c71[_0x7cc9('0x21')]],'as':_0x338c71['as'],'attributes':_0x338c71[_0x7cc9('0x1e')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x866251){logger[_0x7cc9('0xd')](_0x7cc9('0x18'),_0x10691b);logger[_0x7cc9('0xe')](_0x7cc9('0x18'),_0x10691b,JSON[_0x7cc9('0x11')](_0x866251));_0x3a0151(_0x866251);})[_0x7cc9('0x17')](function(_0x1f4dff){logger[_0x7cc9('0x12')]('GetCmHopper',_0x1f4dff[_0x7cc9('0x15')],_0x10691b);_0x4c0182(_0x23a289[_0x7cc9('0x12')](0x1f4,_0x1f4dff[_0x7cc9('0x15')]));});});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1880=['util','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./cmHopper.controller','isAuthenticated','/describe','describe','get','/opencontacts','getOpenContacts','show','post','create','/preview','getPreview','put','/:id','update','destroy','multer'];(function(_0x56c069,_0x3be575){var _0x496821=function(_0x3290a9){while(--_0x3290a9){_0x56c069['push'](_0x56c069['shift']());}};_0x496821(++_0x3be575);}(_0x1880,0x1c1));var _0x0188=function(_0x2849d3,_0x558165){_0x2849d3=_0x2849d3-0x0;var _0x39ace3=_0x1880[_0x2849d3];return _0x39ace3;};'use strict';var multer=require(_0x0188('0x0'));var util=require(_0x0188('0x1'));var path=require(_0x0188('0x2'));var timeout=require(_0x0188('0x3'));var express=require(_0x0188('0x4'));var router=express[_0x0188('0x5')]();var fs_extra=require('fs-extra');var auth=require(_0x0188('0x6'));var interaction=require(_0x0188('0x7'));var config=require(_0x0188('0x8'));var controller=require(_0x0188('0x9'));router['get']('/',auth[_0x0188('0xa')](),controller['index']);router['get'](_0x0188('0xb'),auth[_0x0188('0xa')](),controller[_0x0188('0xc')]);router[_0x0188('0xd')](_0x0188('0xe'),auth[_0x0188('0xa')](),controller[_0x0188('0xf')]);router[_0x0188('0xd')]('/:id',auth[_0x0188('0xa')](),controller[_0x0188('0x10')]);router[_0x0188('0x11')]('/',auth[_0x0188('0xa')](),controller[_0x0188('0x12')]);router[_0x0188('0x11')](_0x0188('0x13'),auth['isAuthenticated'](),controller[_0x0188('0x14')]);router[_0x0188('0x15')](_0x0188('0x16'),auth[_0x0188('0xa')](),controller[_0x0188('0x17')]);router['delete']('/:id',auth[_0x0188('0xa')](),controller[_0x0188('0x18')]);module['exports']=router;
\ No newline at end of file
+var _0xde61=['/describe','describe','/opencontacts','getOpenContacts','/:id','post','create','/preview','getPreview','put','update','delete','destroy','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','./cmHopper.controller','get','isAuthenticated','index'];(function(_0x50700a,_0x3cfa24){var _0x93612c=function(_0x3bd5c0){while(--_0x3bd5c0){_0x50700a['push'](_0x50700a['shift']());}};_0x93612c(++_0x3cfa24);}(_0xde61,0x1cf));var _0x1de6=function(_0x1124e6,_0x5db98a){_0x1124e6=_0x1124e6-0x0;var _0x2c7735=_0xde61[_0x1124e6];return _0x2c7735;};'use strict';var multer=require(_0x1de6('0x0'));var util=require(_0x1de6('0x1'));var path=require(_0x1de6('0x2'));var timeout=require(_0x1de6('0x3'));var express=require(_0x1de6('0x4'));var router=express[_0x1de6('0x5')]();var fs_extra=require(_0x1de6('0x6'));var auth=require(_0x1de6('0x7'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0x1de6('0x8'));router[_0x1de6('0x9')]('/',auth[_0x1de6('0xa')](),controller[_0x1de6('0xb')]);router[_0x1de6('0x9')](_0x1de6('0xc'),auth[_0x1de6('0xa')](),controller[_0x1de6('0xd')]);router[_0x1de6('0x9')](_0x1de6('0xe'),auth['isAuthenticated'](),controller[_0x1de6('0xf')]);router[_0x1de6('0x9')](_0x1de6('0x10'),auth['isAuthenticated'](),controller['show']);router[_0x1de6('0x11')]('/',auth[_0x1de6('0xa')](),controller[_0x1de6('0x12')]);router[_0x1de6('0x11')](_0x1de6('0x13'),auth[_0x1de6('0xa')](),controller[_0x1de6('0x14')]);router[_0x1de6('0x15')]('/:id',auth[_0x1de6('0xa')](),controller[_0x1de6('0x16')]);router[_0x1de6('0x17')](_0x1de6('0x10'),auth[_0x1de6('0xa')](),controller[_0x1de6('0x18')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8784=['moment','sequelize','STRING','INTEGER','contactListQueue'];(function(_0x378d18,_0x17362b){var _0x52d233=function(_0x24949a){while(--_0x24949a){_0x378d18['push'](_0x378d18['shift']());}};_0x52d233(++_0x17362b);}(_0x8784,0x172));var _0x4878=function(_0x1e05c1,_0x3cffa3){_0x1e05c1=_0x1e05c1-0x0;var _0x15f1ca=_0x8784[_0x1e05c1];return _0x15f1ca;};'use strict';var moment=require(_0x4878('0x0'));var Sequelize=require(_0x4878('0x1'));module['exports']={'phone':{'type':Sequelize[_0x4878('0x2')],'allowNull':![]},'ContactId':{'type':Sequelize[_0x4878('0x3')],'unique':_0x4878('0x4')},'ListId':{'type':Sequelize[_0x4878('0x3')],'unique':_0x4878('0x4')},'VoiceQueueId':{'type':Sequelize['INTEGER'],'unique':'contactListQueue'}};
\ No newline at end of file
+var _0xbb36=['contactListQueue','sequelize','exports','STRING','INTEGER'];(function(_0x3df09e,_0x1caac4){var _0x16763b=function(_0x21ca24){while(--_0x21ca24){_0x3df09e['push'](_0x3df09e['shift']());}};_0x16763b(++_0x1caac4);}(_0xbb36,0x92));var _0x6bb3=function(_0x2283a8,_0x536cda){_0x2283a8=_0x2283a8-0x0;var _0x4a03c1=_0xbb36[_0x2283a8];return _0x4a03c1;};'use strict';var moment=require('moment');var Sequelize=require(_0x6bb3('0x0'));module[_0x6bb3('0x1')]={'phone':{'type':Sequelize[_0x6bb3('0x2')],'allowNull':![]},'ContactId':{'type':Sequelize[_0x6bb3('0x3')],'unique':_0x6bb3('0x4')},'ListId':{'type':Sequelize[_0x6bb3('0x3')],'unique':_0x6bb3('0x4')},'VoiceQueueId':{'type':Sequelize['INTEGER'],'unique':'contactListQueue'}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf17d=['end','offset','undefined','limit','count','set','Content-Range','json','apply','reject','save','then','destroy','stack','name','send','index','map','CmHopperBlack','rawAttributes','fieldName','type','key','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','findAll','catch','show','params','keys','update','body','find','describe','eml-format','rimraf','zip-dir','fast-json-patch','moment','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status'];(function(_0x148e61,_0x3f2245){var _0x284ba7=function(_0x7cbe2a){while(--_0x7cbe2a){_0x148e61['push'](_0x148e61['shift']());}};_0x284ba7(++_0x3f2245);}(_0xf17d,0xd0));var _0xdf17=function(_0x397e5f,_0x454c8f){_0x397e5f=_0x397e5f-0x0;var _0x5302b8=_0xf17d[_0x397e5f];return _0x5302b8;};'use strict';var emlformat=require(_0xdf17('0x0'));var rimraf=require(_0xdf17('0x1'));var zipdir=require(_0xdf17('0x2'));var jsonpatch=require(_0xdf17('0x3'));var rp=require('request-promise');var moment=require(_0xdf17('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xdf17('0x5'));var util=require(_0xdf17('0x6'));var path=require(_0xdf17('0x7'));var sox=require(_0xdf17('0x8'));var csv=require(_0xdf17('0x9'));var ejs=require(_0xdf17('0xa'));var fs=require('fs');var fs_extra=require(_0xdf17('0xb'));var _=require(_0xdf17('0xc'));var squel=require('squel');var crypto=require(_0xdf17('0xd'));var jsforce=require(_0xdf17('0xe'));var deskjs=require(_0xdf17('0xf'));var toCsv=require(_0xdf17('0x9'));var querystring=require(_0xdf17('0x10'));var Papa=require(_0xdf17('0x11'));var Redis=require(_0xdf17('0x12'));var authService=require(_0xdf17('0x13'));var qs=require(_0xdf17('0x14'));var as=require(_0xdf17('0x15'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xdf17('0x16'))(_0xdf17('0x17'));var utils=require(_0xdf17('0x18'));var config=require(_0xdf17('0x19'));var licenseUtil=require(_0xdf17('0x1a'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x4a42f3,_0x5afff9){_0x5afff9=_0x5afff9||0xcc;return function(_0xf5ab35){if(_0xf5ab35){return _0x4a42f3[_0xdf17('0x1b')](_0x5afff9);}return _0x4a42f3[_0xdf17('0x1c')](_0x5afff9)[_0xdf17('0x1d')]();};}function respondWithResult(_0xd4e3f,_0x520684){_0x520684=_0x520684||0xc8;return function(_0xa7e9ec){if(_0xa7e9ec){return _0xd4e3f[_0xdf17('0x1c')](_0x520684)['json'](_0xa7e9ec);}};}function respondWithFilteredResult(_0x2dd911,_0x30cbb4){return function(_0x336996){if(_0x336996){var _0x404b64=typeof _0x30cbb4[_0xdf17('0x1e')]===_0xdf17('0x1f')&&typeof _0x30cbb4[_0xdf17('0x20')]===_0xdf17('0x1f');var _0x53bc89=_0x336996[_0xdf17('0x21')];var _0x370a91=_0x404b64?0x0:_0x30cbb4[_0xdf17('0x1e')];var _0x57d075=_0x404b64?_0x336996[_0xdf17('0x21')]:_0x30cbb4['offset']+_0x30cbb4[_0xdf17('0x20')];var _0x5535b8;if(_0x57d075>=_0x53bc89){_0x57d075=_0x53bc89;_0x5535b8=0xc8;}else{_0x5535b8=0xce;}_0x2dd911[_0xdf17('0x1c')](_0x5535b8);return _0x2dd911[_0xdf17('0x22')](_0xdf17('0x23'),_0x370a91+'-'+_0x57d075+'/'+_0x53bc89)[_0xdf17('0x24')](_0x336996);}return null;};}function patchUpdates(_0x37de6d){return function(_0x42e888){try{jsonpatch[_0xdf17('0x25')](_0x42e888,_0x37de6d,!![]);}catch(_0x2c6015){return BPromise[_0xdf17('0x26')](_0x2c6015);}return _0x42e888[_0xdf17('0x27')]();};}function saveUpdates(_0x1d56bd,_0x3e5a03){return function(_0x1b303e){if(_0x1b303e){return _0x1b303e['update'](_0x1d56bd)[_0xdf17('0x28')](function(_0x218cfa){return _0x218cfa;});}return null;};}function removeEntity(_0x440139,_0x382429){return function(_0x3ebdf1){if(_0x3ebdf1){return _0x3ebdf1[_0xdf17('0x29')]()[_0xdf17('0x28')](function(){_0x440139[_0xdf17('0x1c')](0xcc)[_0xdf17('0x1d')]();});}};}function handleEntityNotFound(_0x36e247,_0x5d66f7){return function(_0x15e80c){if(!_0x15e80c){_0x36e247[_0xdf17('0x1b')](0x194);}return _0x15e80c;};}function handleError(_0x42b876,_0x48d325){_0x48d325=_0x48d325||0x1f4;return function(_0x2463a0){logger['error'](_0x2463a0[_0xdf17('0x2a')]);if(_0x2463a0[_0xdf17('0x2b')]){delete _0x2463a0[_0xdf17('0x2b')];}_0x42b876['status'](_0x48d325)[_0xdf17('0x2c')](_0x2463a0);};}exports[_0xdf17('0x2d')]=function(_0x562625,_0x48d157){var _0x4b8819={},_0x46f778={},_0x20d2db={'count':0x0,'rows':[]};var _0x45939d=_[_0xdf17('0x2e')](db[_0xdf17('0x2f')][_0xdf17('0x30')],function(_0x4dee5e){return{'name':_0x4dee5e[_0xdf17('0x31')],'type':_0x4dee5e[_0xdf17('0x32')][_0xdf17('0x33')]};});_0x46f778[_0xdf17('0x34')]=_[_0xdf17('0x2e')](_0x45939d,_0xdf17('0x2b'));_0x46f778[_0xdf17('0x35')]=_['keys'](_0x562625[_0xdf17('0x35')]);_0x46f778[_0xdf17('0x36')]=_[_0xdf17('0x37')](_0x46f778['model'],_0x46f778[_0xdf17('0x35')]);_0x4b8819[_0xdf17('0x38')]=_[_0xdf17('0x37')](_0x46f778['model'],qs[_0xdf17('0x39')](_0x562625['query']['fields']));_0x4b8819['attributes']=_0x4b8819[_0xdf17('0x38')][_0xdf17('0x3a')]?_0x4b8819[_0xdf17('0x38')]:_0x46f778[_0xdf17('0x34')];if(!_0x562625[_0xdf17('0x35')][_0xdf17('0x3b')](_0xdf17('0x3c'))){_0x4b8819[_0xdf17('0x20')]=qs[_0xdf17('0x20')](_0x562625['query'][_0xdf17('0x20')]);_0x4b8819[_0xdf17('0x1e')]=qs['offset'](_0x562625[_0xdf17('0x35')][_0xdf17('0x1e')]);}_0x4b8819[_0xdf17('0x3d')]=qs[_0xdf17('0x3e')](_0x562625[_0xdf17('0x35')]['sort']);_0x4b8819[_0xdf17('0x3f')]=qs[_0xdf17('0x36')](_[_0xdf17('0x40')](_0x562625[_0xdf17('0x35')],_0x46f778[_0xdf17('0x36')]),_0x45939d);if(_0x562625[_0xdf17('0x35')][_0xdf17('0x41')]){_0x4b8819[_0xdf17('0x3f')]=_[_0xdf17('0x42')](_0x4b8819['where'],{'$or':_[_0xdf17('0x2e')](_0x45939d,function(_0x3ebf70){if(_0x3ebf70['type']!==_0xdf17('0x43')){var _0x27249e={};_0x27249e[_0x3ebf70[_0xdf17('0x2b')]]={'$like':'%'+_0x562625[_0xdf17('0x35')][_0xdf17('0x41')]+'%'};return _0x27249e;}})});}_0x4b8819=_[_0xdf17('0x42')]({},_0x4b8819,_0x562625[_0xdf17('0x44')]);var _0x41323d={'where':_0x4b8819[_0xdf17('0x3f')]};return db[_0xdf17('0x2f')][_0xdf17('0x21')](_0x41323d)[_0xdf17('0x28')](function(_0x43f0cd){_0x20d2db[_0xdf17('0x21')]=_0x43f0cd;if(_0x562625['query'][_0xdf17('0x45')]){_0x4b8819['include']=[{'all':!![]}];}return db[_0xdf17('0x2f')][_0xdf17('0x46')](_0x4b8819);})[_0xdf17('0x28')](function(_0x1bba00){_0x20d2db['rows']=_0x1bba00;return _0x20d2db;})[_0xdf17('0x28')](respondWithFilteredResult(_0x48d157,_0x4b8819))[_0xdf17('0x47')](handleError(_0x48d157,null));};exports[_0xdf17('0x48')]=function(_0x566116,_0x3f0d63){var _0x1b53bb={'raw':!![],'where':{'id':_0x566116[_0xdf17('0x49')]['id']}},_0xd165c3={};_0xd165c3[_0xdf17('0x34')]=_[_0xdf17('0x4a')](db[_0xdf17('0x2f')][_0xdf17('0x30')]);_0xd165c3['query']=_['keys'](_0x566116[_0xdf17('0x35')]);_0xd165c3[_0xdf17('0x36')]=_[_0xdf17('0x37')](_0xd165c3[_0xdf17('0x34')],_0xd165c3['query']);_0x1b53bb[_0xdf17('0x38')]=_['intersection'](_0xd165c3[_0xdf17('0x34')],qs[_0xdf17('0x39')](_0x566116[_0xdf17('0x35')][_0xdf17('0x39')]));_0x1b53bb[_0xdf17('0x38')]=_0x1b53bb['attributes'][_0xdf17('0x3a')]?_0x1b53bb['attributes']:_0xd165c3['model'];if(_0x566116['query'][_0xdf17('0x45')]){_0x1b53bb['include']=[{'all':!![]}];}_0x1b53bb=_[_0xdf17('0x42')]({},_0x1b53bb,_0x566116[_0xdf17('0x44')]);return db[_0xdf17('0x2f')]['find'](_0x1b53bb)[_0xdf17('0x28')](handleEntityNotFound(_0x3f0d63,null))[_0xdf17('0x28')](respondWithResult(_0x3f0d63,null))[_0xdf17('0x47')](handleError(_0x3f0d63,null));};exports[_0xdf17('0x4b')]=function(_0x1fa4c3,_0x241cdd){if(_0x1fa4c3[_0xdf17('0x4c')]['id']){delete _0x1fa4c3[_0xdf17('0x4c')]['id'];}return db[_0xdf17('0x2f')][_0xdf17('0x4d')]({'where':{'id':_0x1fa4c3[_0xdf17('0x49')]['id']}})[_0xdf17('0x28')](handleEntityNotFound(_0x241cdd,null))[_0xdf17('0x28')](saveUpdates(_0x1fa4c3[_0xdf17('0x4c')],null))['then'](respondWithResult(_0x241cdd,null))[_0xdf17('0x47')](handleError(_0x241cdd,null));};exports[_0xdf17('0x29')]=function(_0x47648d,_0x419425){return db['CmHopperBlack'][_0xdf17('0x4d')]({'where':{'id':_0x47648d['params']['id']}})[_0xdf17('0x28')](handleEntityNotFound(_0x419425,null))['then'](removeEntity(_0x419425,null))[_0xdf17('0x47')](handleError(_0x419425,null));};exports[_0xdf17('0x4e')]=function(_0x3ef8d3,_0x9b3508){return db['CmHopperBlack']['describe']()[_0xdf17('0x28')](respondWithResult(_0x9b3508,null))[_0xdf17('0x47')](handleError(_0x9b3508,null));};
\ No newline at end of file
+var _0xf76d=['sendStatus','error','stack','name','send','map','CmHopperBlack','rawAttributes','fieldName','type','model','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','includeAll','findAll','rows','catch','show','params','keys','length','include','options','update','body','find','describe','rimraf','zip-dir','request-promise','moment','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','count','limit','set','Content-Range','apply','reject','save','then'];(function(_0x116c04,_0x4963da){var _0x9e011d=function(_0x143880){while(--_0x143880){_0x116c04['push'](_0x116c04['shift']());}};_0x9e011d(++_0x4963da);}(_0xf76d,0xc1));var _0xdf76=function(_0x133277,_0xb1d6b2){_0x133277=_0x133277-0x0;var _0x5b4a22=_0xf76d[_0x133277];return _0x5b4a22;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xdf76('0x0'));var zipdir=require(_0xdf76('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xdf76('0x2'));var moment=require(_0xdf76('0x3'));var BPromise=require('bluebird');var Mustache=require(_0xdf76('0x4'));var util=require(_0xdf76('0x5'));var path=require(_0xdf76('0x6'));var sox=require(_0xdf76('0x7'));var csv=require(_0xdf76('0x8'));var ejs=require(_0xdf76('0x9'));var fs=require('fs');var fs_extra=require(_0xdf76('0xa'));var _=require(_0xdf76('0xb'));var squel=require(_0xdf76('0xc'));var crypto=require(_0xdf76('0xd'));var jsforce=require(_0xdf76('0xe'));var deskjs=require(_0xdf76('0xf'));var toCsv=require(_0xdf76('0x8'));var querystring=require('querystring');var Papa=require(_0xdf76('0x10'));var Redis=require('ioredis');var authService=require(_0xdf76('0x11'));var qs=require(_0xdf76('0x12'));var as=require(_0xdf76('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xdf76('0x14'))('api');var utils=require(_0xdf76('0x15'));var config=require(_0xdf76('0x16'));var licenseUtil=require(_0xdf76('0x17'));var db=require(_0xdf76('0x18'))['db'];function respondWithStatusCode(_0x1e89b1,_0x37287c){_0x37287c=_0x37287c||0xcc;return function(_0x15cf3d){if(_0x15cf3d){return _0x1e89b1['sendStatus'](_0x37287c);}return _0x1e89b1[_0xdf76('0x19')](_0x37287c)[_0xdf76('0x1a')]();};}function respondWithResult(_0x3c0fa2,_0x50e242){_0x50e242=_0x50e242||0xc8;return function(_0x5d2445){if(_0x5d2445){return _0x3c0fa2[_0xdf76('0x19')](_0x50e242)[_0xdf76('0x1b')](_0x5d2445);}};}function respondWithFilteredResult(_0x5b94d2,_0x3abe7f){return function(_0x1c7475){if(_0x1c7475){var _0x1fbafd=typeof _0x3abe7f[_0xdf76('0x1c')]===_0xdf76('0x1d')&&typeof _0x3abe7f['limit']===_0xdf76('0x1d');var _0x5d7a93=_0x1c7475[_0xdf76('0x1e')];var _0x5b30cb=_0x1fbafd?0x0:_0x3abe7f['offset'];var _0x4337f0=_0x1fbafd?_0x1c7475['count']:_0x3abe7f[_0xdf76('0x1c')]+_0x3abe7f[_0xdf76('0x1f')];var _0x114248;if(_0x4337f0>=_0x5d7a93){_0x4337f0=_0x5d7a93;_0x114248=0xc8;}else{_0x114248=0xce;}_0x5b94d2[_0xdf76('0x19')](_0x114248);return _0x5b94d2[_0xdf76('0x20')](_0xdf76('0x21'),_0x5b30cb+'-'+_0x4337f0+'/'+_0x5d7a93)[_0xdf76('0x1b')](_0x1c7475);}return null;};}function patchUpdates(_0x5bf9c6){return function(_0x22fdff){try{jsonpatch[_0xdf76('0x22')](_0x22fdff,_0x5bf9c6,!![]);}catch(_0x2b44e3){return BPromise[_0xdf76('0x23')](_0x2b44e3);}return _0x22fdff[_0xdf76('0x24')]();};}function saveUpdates(_0x299598,_0x42f73b){return function(_0x23339a){if(_0x23339a){return _0x23339a['update'](_0x299598)[_0xdf76('0x25')](function(_0x28c492){return _0x28c492;});}return null;};}function removeEntity(_0x341c42,_0x53749b){return function(_0x15ed6e){if(_0x15ed6e){return _0x15ed6e['destroy']()[_0xdf76('0x25')](function(){_0x341c42[_0xdf76('0x19')](0xcc)[_0xdf76('0x1a')]();});}};}function handleEntityNotFound(_0x19f253,_0x243b49){return function(_0x321816){if(!_0x321816){_0x19f253[_0xdf76('0x26')](0x194);}return _0x321816;};}function handleError(_0x358f00,_0x26681a){_0x26681a=_0x26681a||0x1f4;return function(_0x21190a){logger[_0xdf76('0x27')](_0x21190a[_0xdf76('0x28')]);if(_0x21190a[_0xdf76('0x29')]){delete _0x21190a[_0xdf76('0x29')];}_0x358f00[_0xdf76('0x19')](_0x26681a)[_0xdf76('0x2a')](_0x21190a);};}exports['index']=function(_0x51a3ff,_0x4eee01){var _0x3395f4={},_0x1819df={},_0x3b30cf={'count':0x0,'rows':[]};var _0x57c1d3=_[_0xdf76('0x2b')](db[_0xdf76('0x2c')][_0xdf76('0x2d')],function(_0x5be312){return{'name':_0x5be312[_0xdf76('0x2e')],'type':_0x5be312[_0xdf76('0x2f')]['key']};});_0x1819df[_0xdf76('0x30')]=_[_0xdf76('0x2b')](_0x57c1d3,_0xdf76('0x29'));_0x1819df[_0xdf76('0x31')]=_['keys'](_0x51a3ff[_0xdf76('0x31')]);_0x1819df[_0xdf76('0x32')]=_[_0xdf76('0x33')](_0x1819df['model'],_0x1819df[_0xdf76('0x31')]);_0x3395f4[_0xdf76('0x34')]=_[_0xdf76('0x33')](_0x1819df['model'],qs[_0xdf76('0x35')](_0x51a3ff[_0xdf76('0x31')][_0xdf76('0x35')]));_0x3395f4['attributes']=_0x3395f4[_0xdf76('0x34')]['length']?_0x3395f4['attributes']:_0x1819df[_0xdf76('0x30')];if(!_0x51a3ff['query'][_0xdf76('0x36')](_0xdf76('0x37'))){_0x3395f4['limit']=qs[_0xdf76('0x1f')](_0x51a3ff[_0xdf76('0x31')][_0xdf76('0x1f')]);_0x3395f4[_0xdf76('0x1c')]=qs[_0xdf76('0x1c')](_0x51a3ff[_0xdf76('0x31')]['offset']);}_0x3395f4[_0xdf76('0x38')]=qs[_0xdf76('0x39')](_0x51a3ff[_0xdf76('0x31')][_0xdf76('0x39')]);_0x3395f4[_0xdf76('0x3a')]=qs['filters'](_[_0xdf76('0x3b')](_0x51a3ff[_0xdf76('0x31')],_0x1819df[_0xdf76('0x32')]),_0x57c1d3);if(_0x51a3ff[_0xdf76('0x31')][_0xdf76('0x3c')]){_0x3395f4[_0xdf76('0x3a')]=_[_0xdf76('0x3d')](_0x3395f4[_0xdf76('0x3a')],{'$or':_[_0xdf76('0x2b')](_0x57c1d3,function(_0xfb6f3f){if(_0xfb6f3f[_0xdf76('0x2f')]!==_0xdf76('0x3e')){var _0x4d946b={};_0x4d946b[_0xfb6f3f[_0xdf76('0x29')]]={'$like':'%'+_0x51a3ff[_0xdf76('0x31')][_0xdf76('0x3c')]+'%'};return _0x4d946b;}})});}_0x3395f4=_[_0xdf76('0x3d')]({},_0x3395f4,_0x51a3ff['options']);var _0x5a5a64={'where':_0x3395f4[_0xdf76('0x3a')]};return db['CmHopperBlack'][_0xdf76('0x1e')](_0x5a5a64)[_0xdf76('0x25')](function(_0xc9ce6e){_0x3b30cf[_0xdf76('0x1e')]=_0xc9ce6e;if(_0x51a3ff[_0xdf76('0x31')][_0xdf76('0x3f')]){_0x3395f4['include']=[{'all':!![]}];}return db[_0xdf76('0x2c')][_0xdf76('0x40')](_0x3395f4);})[_0xdf76('0x25')](function(_0x412845){_0x3b30cf[_0xdf76('0x41')]=_0x412845;return _0x3b30cf;})[_0xdf76('0x25')](respondWithFilteredResult(_0x4eee01,_0x3395f4))[_0xdf76('0x42')](handleError(_0x4eee01,null));};exports[_0xdf76('0x43')]=function(_0x12c566,_0x2f6eab){var _0x550314={'raw':!![],'where':{'id':_0x12c566[_0xdf76('0x44')]['id']}},_0x4c2f22={};_0x4c2f22['model']=_[_0xdf76('0x45')](db[_0xdf76('0x2c')][_0xdf76('0x2d')]);_0x4c2f22[_0xdf76('0x31')]=_['keys'](_0x12c566[_0xdf76('0x31')]);_0x4c2f22[_0xdf76('0x32')]=_[_0xdf76('0x33')](_0x4c2f22[_0xdf76('0x30')],_0x4c2f22[_0xdf76('0x31')]);_0x550314[_0xdf76('0x34')]=_['intersection'](_0x4c2f22[_0xdf76('0x30')],qs[_0xdf76('0x35')](_0x12c566[_0xdf76('0x31')][_0xdf76('0x35')]));_0x550314[_0xdf76('0x34')]=_0x550314[_0xdf76('0x34')][_0xdf76('0x46')]?_0x550314['attributes']:_0x4c2f22[_0xdf76('0x30')];if(_0x12c566[_0xdf76('0x31')]['includeAll']){_0x550314[_0xdf76('0x47')]=[{'all':!![]}];}_0x550314=_[_0xdf76('0x3d')]({},_0x550314,_0x12c566[_0xdf76('0x48')]);return db[_0xdf76('0x2c')]['find'](_0x550314)[_0xdf76('0x25')](handleEntityNotFound(_0x2f6eab,null))[_0xdf76('0x25')](respondWithResult(_0x2f6eab,null))['catch'](handleError(_0x2f6eab,null));};exports[_0xdf76('0x49')]=function(_0x346dbb,_0x220756){if(_0x346dbb[_0xdf76('0x4a')]['id']){delete _0x346dbb[_0xdf76('0x4a')]['id'];}return db[_0xdf76('0x2c')][_0xdf76('0x4b')]({'where':{'id':_0x346dbb[_0xdf76('0x44')]['id']}})[_0xdf76('0x25')](handleEntityNotFound(_0x220756,null))['then'](saveUpdates(_0x346dbb[_0xdf76('0x4a')],null))[_0xdf76('0x25')](respondWithResult(_0x220756,null))[_0xdf76('0x42')](handleError(_0x220756,null));};exports['destroy']=function(_0x2ab193,_0x1f3458){return db[_0xdf76('0x2c')]['find']({'where':{'id':_0x2ab193[_0xdf76('0x44')]['id']}})[_0xdf76('0x25')](handleEntityNotFound(_0x1f3458,null))[_0xdf76('0x25')](removeEntity(_0x1f3458,null))[_0xdf76('0x42')](handleError(_0x1f3458,null));};exports[_0xdf76('0x4c')]=function(_0x36c684,_0x3272f8){return db[_0xdf76('0x2c')][_0xdf76('0x4c')]()[_0xdf76('0x25')](respondWithResult(_0x3272f8,null))[_0xdf76('0x42')](handleError(_0x3272f8,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf4f1=['lodash','../../config/logger','api','request-promise','path','rimraf','../../config/environment','./cmHopperBlack.attributes','exports','define','cm_hopper_black'];(function(_0x50f146,_0x4abe95){var _0x8475b8=function(_0x39d0b4){while(--_0x39d0b4){_0x50f146['push'](_0x50f146['shift']());}};_0x8475b8(++_0x4abe95);}(_0xf4f1,0xf2));var _0x1f4f=function(_0x384a29,_0x57bab8){_0x384a29=_0x384a29-0x0;var _0x493473=_0xf4f1[_0x384a29];return _0x493473;};'use strict';var _=require(_0x1f4f('0x0'));var util=require('util');var logger=require(_0x1f4f('0x1'))(_0x1f4f('0x2'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0x1f4f('0x3'));var fs=require('fs');var path=require(_0x1f4f('0x4'));var rimraf=require(_0x1f4f('0x5'));var config=require(_0x1f4f('0x6'));var attributes=require(_0x1f4f('0x7'));module[_0x1f4f('0x8')]=function(_0x264736,_0x5c5aaf){return _0x264736[_0x1f4f('0x9')]('CmHopperBlack',attributes,{'tableName':_0x1f4f('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x22a4=['define','CmHopperBlack','cm_hopper_black','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./cmHopperBlack.attributes','exports'];(function(_0x3c347d,_0x1915c3){var _0x5dfb86=function(_0x135872){while(--_0x135872){_0x3c347d['push'](_0x3c347d['shift']());}};_0x5dfb86(++_0x1915c3);}(_0x22a4,0x1f2));var _0x422a=function(_0x1b60db,_0x393e9c){_0x1b60db=_0x1b60db-0x0;var _0x261f63=_0x22a4[_0x1b60db];return _0x261f63;};'use strict';var _=require(_0x422a('0x0'));var util=require(_0x422a('0x1'));var logger=require(_0x422a('0x2'))(_0x422a('0x3'));var moment=require(_0x422a('0x4'));var BPromise=require(_0x422a('0x5'));var rp=require(_0x422a('0x6'));var fs=require('fs');var path=require(_0x422a('0x7'));var rimraf=require(_0x422a('0x8'));var config=require(_0x422a('0x9'));var attributes=require(_0x422a('0xa'));module[_0x422a('0xb')]=function(_0x192448,_0xf0726c){return _0x192448[_0x422a('0xc')](_0x422a('0xd'),attributes,{'tableName':_0x422a('0xe'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbfea=['debug','update','body','UpdateCmHopperBlack','DestroyCmHopperBlack','destroy','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','then','info','CmHopperBlack,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','catch','GetCmHopperBlack','CmHopperBlack','findAll','options','raw','where','attributes','map','include','model'];(function(_0x590da5,_0x298084){var _0x54d4c4=function(_0xf67551){while(--_0xf67551){_0x590da5['push'](_0x590da5['shift']());}};_0x54d4c4(++_0x298084);}(_0xbfea,0x136));var _0xabfe=function(_0x589949,_0x592bfb){_0x589949=_0x589949-0x0;var _0x4e4056=_0xbfea[_0x589949];return _0x4e4056;};'use strict';var _=require('lodash');var util=require(_0xabfe('0x0'));var moment=require(_0xabfe('0x1'));var BPromise=require(_0xabfe('0x2'));var rs=require(_0xabfe('0x3'));var fs=require('fs');var Redis=require(_0xabfe('0x4'));var db=require(_0xabfe('0x5'))['db'];var utils=require(_0xabfe('0x6'));var logger=require(_0xabfe('0x7'))(_0xabfe('0x8'));var config=require(_0xabfe('0x9'));var jayson=require(_0xabfe('0xa'));var client=jayson[_0xabfe('0xb')][_0xabfe('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x22222a,_0x54a868,_0x33ddc1){return new BPromise(function(_0x12d40c,_0x5fba22){return client['request'](_0x22222a,_0x33ddc1)[_0xabfe('0xd')](function(_0x428465){logger[_0xabfe('0xe')](_0xabfe('0xf'),_0x54a868,_0xabfe('0x10'));logger['debug']('CmHopperBlack,\x20%s,\x20%s,\x20%s',_0x54a868,_0xabfe('0x10'),JSON[_0xabfe('0x11')](_0x428465));if(_0x428465[_0xabfe('0x12')]){if(_0x428465[_0xabfe('0x12')][_0xabfe('0x13')]===0x1f4){logger[_0xabfe('0x12')](_0xabfe('0xf'),_0x54a868,_0x428465[_0xabfe('0x12')]['message']);return _0x5fba22(_0x428465[_0xabfe('0x12')][_0xabfe('0x14')]);}logger[_0xabfe('0x12')](_0xabfe('0xf'),_0x54a868,_0x428465['error']['message']);return _0x12d40c(_0x428465[_0xabfe('0x12')][_0xabfe('0x14')]);}else{logger[_0xabfe('0xe')](_0xabfe('0xf'),_0x54a868,_0xabfe('0x10'));_0x12d40c(_0x428465['result']['message']);}})[_0xabfe('0x15')](function(_0x5c1723){logger[_0xabfe('0x12')](_0xabfe('0xf'),_0x54a868,_0x5c1723);_0x5fba22(_0x5c1723);});});}exports[_0xabfe('0x16')]=function(_0x3c17a1){var _0x8e0d86=this;return new Promise(function(_0x2adeb0,_0x3ed419){return db[_0xabfe('0x17')][_0xabfe('0x18')]({'raw':_0x3c17a1[_0xabfe('0x19')]?_0x3c17a1['options'][_0xabfe('0x1a')]===undefined?!![]:![]:!![],'where':_0x3c17a1[_0xabfe('0x19')]?_0x3c17a1['options'][_0xabfe('0x1b')]||null:null,'attributes':_0x3c17a1[_0xabfe('0x19')]?_0x3c17a1[_0xabfe('0x19')][_0xabfe('0x1c')]||null:null,'limit':_0x3c17a1[_0xabfe('0x19')]?_0x3c17a1[_0xabfe('0x19')]['limit']||null:null,'include':_0x3c17a1[_0xabfe('0x19')]?_0x3c17a1[_0xabfe('0x19')]['include']?_[_0xabfe('0x1d')](_0x3c17a1[_0xabfe('0x19')][_0xabfe('0x1e')],function(_0x46466a){return{'model':db[_0x46466a[_0xabfe('0x1f')]],'as':_0x46466a['as'],'attributes':_0x46466a[_0xabfe('0x1c')],'include':_0x46466a[_0xabfe('0x1e')]?_['map'](_0x46466a['include'],function(_0x5b4a06){return{'model':db[_0x5b4a06['model']],'as':_0x5b4a06['as'],'attributes':_0x5b4a06[_0xabfe('0x1c')],'include':_0x5b4a06[_0xabfe('0x1e')]?_[_0xabfe('0x1d')](_0x5b4a06[_0xabfe('0x1e')],function(_0x31fe64){return{'model':db[_0x31fe64['model']],'as':_0x31fe64['as'],'attributes':_0x31fe64['attributes']};}):[]};}):[]};}):[]:[]})[_0xabfe('0xd')](function(_0x4b7581){logger[_0xabfe('0xe')](_0xabfe('0x16'),_0x3c17a1);logger[_0xabfe('0x20')](_0xabfe('0x16'),_0x3c17a1,JSON[_0xabfe('0x11')](_0x4b7581));_0x2adeb0(_0x4b7581);})[_0xabfe('0x15')](function(_0x46a313){logger[_0xabfe('0x12')](_0xabfe('0x16'),_0x46a313['message'],_0x3c17a1);_0x3ed419(_0x8e0d86[_0xabfe('0x12')](0x1f4,_0x46a313['message']));});});};exports['UpdateCmHopperBlack']=function(_0x495aee){var _0x539398=this;return new Promise(function(_0x240221,_0x240dd9){return db[_0xabfe('0x17')][_0xabfe('0x21')](_0x495aee[_0xabfe('0x22')],{'raw':_0x495aee[_0xabfe('0x19')]?_0x495aee[_0xabfe('0x19')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x495aee[_0xabfe('0x19')]?_0x495aee[_0xabfe('0x19')][_0xabfe('0x1b')]||null:null,'attributes':_0x495aee['options']?_0x495aee['options'][_0xabfe('0x1c')]||null:null,'limit':_0x495aee[_0xabfe('0x19')]?_0x495aee[_0xabfe('0x19')]['limit']||null:null})[_0xabfe('0xd')](function(_0x5e5c6a){logger[_0xabfe('0xe')](_0xabfe('0x23'),_0x495aee);logger[_0xabfe('0x20')](_0xabfe('0x23'),_0x495aee,JSON['stringify'](_0x5e5c6a));_0x240221(_0x5e5c6a);})[_0xabfe('0x15')](function(_0x20baf4){logger[_0xabfe('0x12')]('UpdateCmHopperBlack',_0x20baf4[_0xabfe('0x14')],_0x495aee);_0x240dd9(_0x539398['error'](0x1f4,_0x20baf4[_0xabfe('0x14')]));});});};exports[_0xabfe('0x24')]=function(_0x408d47){var _0x247ff0=this;return new Promise(function(_0x155813,_0x292503){return db[_0xabfe('0x17')][_0xabfe('0x25')]({'where':_0x408d47[_0xabfe('0x19')]?_0x408d47[_0xabfe('0x19')][_0xabfe('0x1b')]||null:null})[_0xabfe('0xd')](function(_0x5489d7){logger[_0xabfe('0xe')]('DestroyCmHopperBlack',_0x408d47);logger[_0xabfe('0x20')](_0xabfe('0x24'),_0x408d47,JSON[_0xabfe('0x11')](_0x5489d7));_0x155813(_0x5489d7);})[_0xabfe('0x15')](function(_0x348e32){logger[_0xabfe('0x12')](_0xabfe('0x24'),_0x348e32['message'],_0x408d47);_0x292503(_0x247ff0[_0xabfe('0x12')](0x1f4,_0x348e32[_0xabfe('0x14')]));});});};
\ No newline at end of file
+var _0x5f41=['code','message','result','catch','GetCmHopperBlack','findAll','options','raw','attributes','include','map','UpdateCmHopperBlack','CmHopperBlack','update','where','limit','then','stringify','DestroyCmHopperBlack','destroy','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','client','http','info','CmHopperBlack,\x20%s,\x20%s','debug','CmHopperBlack,\x20%s,\x20%s,\x20%s','request\x20sent','error'];(function(_0x14f3cc,_0x3b41ca){var _0x1932cb=function(_0x60f9ba){while(--_0x60f9ba){_0x14f3cc['push'](_0x14f3cc['shift']());}};_0x1932cb(++_0x3b41ca);}(_0x5f41,0xa8));var _0x15f4=function(_0x2d8f5e,_0x321dba){_0x2d8f5e=_0x2d8f5e-0x0;var _0x2856fc=_0x5f41[_0x2d8f5e];return _0x2856fc;};'use strict';var _=require(_0x15f4('0x0'));var util=require('util');var moment=require(_0x15f4('0x1'));var BPromise=require(_0x15f4('0x2'));var rs=require(_0x15f4('0x3'));var fs=require('fs');var Redis=require(_0x15f4('0x4'));var db=require(_0x15f4('0x5'))['db'];var utils=require(_0x15f4('0x6'));var logger=require(_0x15f4('0x7'))('rpc');var config=require(_0x15f4('0x8'));var jayson=require('jayson/promise');var client=jayson[_0x15f4('0x9')][_0x15f4('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x434441,_0x582e01,_0x15bddd){return new BPromise(function(_0x55b43c,_0x255356){return client['request'](_0x434441,_0x15bddd)['then'](function(_0x4db308){logger[_0x15f4('0xb')](_0x15f4('0xc'),_0x582e01,'request\x20sent');logger[_0x15f4('0xd')](_0x15f4('0xe'),_0x582e01,_0x15f4('0xf'),JSON['stringify'](_0x4db308));if(_0x4db308[_0x15f4('0x10')]){if(_0x4db308[_0x15f4('0x10')][_0x15f4('0x11')]===0x1f4){logger['error'](_0x15f4('0xc'),_0x582e01,_0x4db308[_0x15f4('0x10')][_0x15f4('0x12')]);return _0x255356(_0x4db308[_0x15f4('0x10')][_0x15f4('0x12')]);}logger['error'](_0x15f4('0xc'),_0x582e01,_0x4db308['error'][_0x15f4('0x12')]);return _0x55b43c(_0x4db308[_0x15f4('0x10')][_0x15f4('0x12')]);}else{logger[_0x15f4('0xb')](_0x15f4('0xc'),_0x582e01,_0x15f4('0xf'));_0x55b43c(_0x4db308[_0x15f4('0x13')]['message']);}})[_0x15f4('0x14')](function(_0x4dcc7e){logger[_0x15f4('0x10')](_0x15f4('0xc'),_0x582e01,_0x4dcc7e);_0x255356(_0x4dcc7e);});});}exports[_0x15f4('0x15')]=function(_0x26fff9){var _0x22d82d=this;return new Promise(function(_0x1c31a6,_0x2d8bbc){return db['CmHopperBlack'][_0x15f4('0x16')]({'raw':_0x26fff9['options']?_0x26fff9[_0x15f4('0x17')][_0x15f4('0x18')]===undefined?!![]:![]:!![],'where':_0x26fff9['options']?_0x26fff9[_0x15f4('0x17')]['where']||null:null,'attributes':_0x26fff9['options']?_0x26fff9['options'][_0x15f4('0x19')]||null:null,'limit':_0x26fff9[_0x15f4('0x17')]?_0x26fff9[_0x15f4('0x17')]['limit']||null:null,'include':_0x26fff9[_0x15f4('0x17')]?_0x26fff9['options'][_0x15f4('0x1a')]?_['map'](_0x26fff9[_0x15f4('0x17')]['include'],function(_0x2df8c9){return{'model':db[_0x2df8c9['model']],'as':_0x2df8c9['as'],'attributes':_0x2df8c9[_0x15f4('0x19')],'include':_0x2df8c9['include']?_[_0x15f4('0x1b')](_0x2df8c9[_0x15f4('0x1a')],function(_0x578bd5){return{'model':db[_0x578bd5['model']],'as':_0x578bd5['as'],'attributes':_0x578bd5[_0x15f4('0x19')],'include':_0x578bd5['include']?_[_0x15f4('0x1b')](_0x578bd5['include'],function(_0x3b475a){return{'model':db[_0x3b475a['model']],'as':_0x3b475a['as'],'attributes':_0x3b475a[_0x15f4('0x19')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x170ed4){logger['info'](_0x15f4('0x15'),_0x26fff9);logger[_0x15f4('0xd')](_0x15f4('0x15'),_0x26fff9,JSON['stringify'](_0x170ed4));_0x1c31a6(_0x170ed4);})[_0x15f4('0x14')](function(_0x2a5f73){logger['error'](_0x15f4('0x15'),_0x2a5f73[_0x15f4('0x12')],_0x26fff9);_0x2d8bbc(_0x22d82d[_0x15f4('0x10')](0x1f4,_0x2a5f73['message']));});});};exports[_0x15f4('0x1c')]=function(_0x44e7b7){var _0x24a5ae=this;return new Promise(function(_0x348da0,_0x5419bd){return db[_0x15f4('0x1d')][_0x15f4('0x1e')](_0x44e7b7['body'],{'raw':_0x44e7b7['options']?_0x44e7b7['options'][_0x15f4('0x18')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x44e7b7[_0x15f4('0x17')]?_0x44e7b7['options'][_0x15f4('0x1f')]||null:null,'attributes':_0x44e7b7[_0x15f4('0x17')]?_0x44e7b7[_0x15f4('0x17')][_0x15f4('0x19')]||null:null,'limit':_0x44e7b7[_0x15f4('0x17')]?_0x44e7b7['options'][_0x15f4('0x20')]||null:null})[_0x15f4('0x21')](function(_0x5d490c){logger[_0x15f4('0xb')](_0x15f4('0x1c'),_0x44e7b7);logger[_0x15f4('0xd')](_0x15f4('0x1c'),_0x44e7b7,JSON[_0x15f4('0x22')](_0x5d490c));_0x348da0(_0x5d490c);})[_0x15f4('0x14')](function(_0x37300f){logger['error'](_0x15f4('0x1c'),_0x37300f[_0x15f4('0x12')],_0x44e7b7);_0x5419bd(_0x24a5ae[_0x15f4('0x10')](0x1f4,_0x37300f[_0x15f4('0x12')]));});});};exports[_0x15f4('0x23')]=function(_0xcd2657){var _0x36fcf1=this;return new Promise(function(_0x44f6fb,_0x510a0d){return db[_0x15f4('0x1d')][_0x15f4('0x24')]({'where':_0xcd2657[_0x15f4('0x17')]?_0xcd2657[_0x15f4('0x17')][_0x15f4('0x1f')]||null:null})['then'](function(_0x59e664){logger[_0x15f4('0xb')](_0x15f4('0x23'),_0xcd2657);logger[_0x15f4('0xd')](_0x15f4('0x23'),_0xcd2657,JSON[_0x15f4('0x22')](_0x59e664));_0x44f6fb(_0x59e664);})[_0x15f4('0x14')](function(_0x4e0bee){logger[_0x15f4('0x10')](_0x15f4('0x23'),_0x4e0bee[_0x15f4('0x12')],_0xcd2657);_0x510a0d(_0x36fcf1[_0x15f4('0x10')](0x1f4,_0x4e0bee['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x687b=['isAuthenticated','index','/describe','describe','show','put','/:id','update','delete','exports','multer','util','path','connect-timeout','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./cmHopperBlack.controller','get'];(function(_0x41f4d3,_0x5610a0){var _0x5f4808=function(_0x3d6e94){while(--_0x3d6e94){_0x41f4d3['push'](_0x41f4d3['shift']());}};_0x5f4808(++_0x5610a0);}(_0x687b,0x14a));var _0xb687=function(_0x1f3c56,_0x598757){_0x1f3c56=_0x1f3c56-0x0;var _0x569524=_0x687b[_0x1f3c56];return _0x569524;};'use strict';var multer=require(_0xb687('0x0'));var util=require(_0xb687('0x1'));var path=require(_0xb687('0x2'));var timeout=require(_0xb687('0x3'));var express=require('express');var router=express['Router']();var fs_extra=require(_0xb687('0x4'));var auth=require(_0xb687('0x5'));var interaction=require(_0xb687('0x6'));var config=require(_0xb687('0x7'));var controller=require(_0xb687('0x8'));router[_0xb687('0x9')]('/',auth[_0xb687('0xa')](),controller[_0xb687('0xb')]);router[_0xb687('0x9')](_0xb687('0xc'),auth['isAuthenticated'](),controller[_0xb687('0xd')]);router[_0xb687('0x9')]('/:id',auth[_0xb687('0xa')](),controller[_0xb687('0xe')]);router[_0xb687('0xf')](_0xb687('0x10'),auth[_0xb687('0xa')](),controller[_0xb687('0x11')]);router[_0xb687('0x12')](_0xb687('0x10'),auth[_0xb687('0xa')](),controller['destroy']);module[_0xb687('0x13')]=router;
\ No newline at end of file
+var _0x1967=['../../components/interaction/service','../../config/environment','./cmHopperBlack.controller','isAuthenticated','index','get','/describe','describe','/:id','show','put','delete','destroy','exports','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service'];(function(_0x96143,_0x3db1e7){var _0x4c0350=function(_0x3fa2cb){while(--_0x3fa2cb){_0x96143['push'](_0x96143['shift']());}};_0x4c0350(++_0x3db1e7);}(_0x1967,0x173));var _0x7196=function(_0x562b35,_0xab9158){_0x562b35=_0x562b35-0x0;var _0x57ac76=_0x1967[_0x562b35];return _0x57ac76;};'use strict';var multer=require('multer');var util=require(_0x7196('0x0'));var path=require(_0x7196('0x1'));var timeout=require(_0x7196('0x2'));var express=require(_0x7196('0x3'));var router=express[_0x7196('0x4')]();var fs_extra=require(_0x7196('0x5'));var auth=require(_0x7196('0x6'));var interaction=require(_0x7196('0x7'));var config=require(_0x7196('0x8'));var controller=require(_0x7196('0x9'));router['get']('/',auth[_0x7196('0xa')](),controller[_0x7196('0xb')]);router[_0x7196('0xc')](_0x7196('0xd'),auth[_0x7196('0xa')](),controller[_0x7196('0xe')]);router['get'](_0x7196('0xf'),auth[_0x7196('0xa')](),controller[_0x7196('0x10')]);router[_0x7196('0x11')](_0x7196('0xf'),auth['isAuthenticated'](),controller['update']);router[_0x7196('0x12')](_0x7196('0xf'),auth[_0x7196('0xa')](),controller[_0x7196('0x13')]);module[_0x7196('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfff0=['STRING','DATE','getDataValue','endtime','setDataValue','diff','seconds','dispositionat','BOOLEAN','sequelize','moment','exports','INTEGER'];(function(_0x317bc9,_0x1c9afa){var _0x221aa2=function(_0x365bdc){while(--_0x365bdc){_0x317bc9['push'](_0x317bc9['shift']());}};_0x221aa2(++_0x1c9afa);}(_0xfff0,0x100));var _0x0fff=function(_0x59bcd7,_0x3805a4){_0x59bcd7=_0x59bcd7-0x0;var _0x5daf99=_0xfff0[_0x59bcd7];return _0x5daf99;};'use strict';var Sequelize=require(_0x0fff('0x0'));var moment=require(_0x0fff('0x1'));module[_0x0fff('0x2')]={'state':{'type':Sequelize[_0x0fff('0x3')](0x2)},'statedesc':{'type':Sequelize[_0x0fff('0x4')]},'scheduledat':{'type':Sequelize['DATE']},'countbusyretry':{'type':Sequelize[_0x0fff('0x3')],'defaultValue':0x0},'countcongestionretry':{'type':Sequelize[_0x0fff('0x3')],'defaultValue':0x0},'countnoanswerretry':{'type':Sequelize[_0x0fff('0x3')],'defaultValue':0x0},'countglobal':{'type':Sequelize[_0x0fff('0x3')],'defaultValue':0x0},'uniqueid':{'type':Sequelize[_0x0fff('0x4')]},'originatecalleridnum':{'type':Sequelize['STRING']},'originatecalleridname':{'type':Sequelize[_0x0fff('0x4')]},'calleridnum':{'type':Sequelize[_0x0fff('0x4')]},'calleridname':{'type':Sequelize[_0x0fff('0x4')]},'starttime':{'type':Sequelize[_0x0fff('0x5')]},'responsetime':{'type':Sequelize[_0x0fff('0x5')]},'answertime':{'type':Sequelize[_0x0fff('0x5')]},'droptime':{'type':Sequelize['DATE']},'endtime':{'type':Sequelize[_0x0fff('0x5')]},'ringtime':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'holdtime':{'type':Sequelize[_0x0fff('0x3')],'defaultValue':0x0},'talktime':{'type':Sequelize[_0x0fff('0x3')],'defaultValue':0x0},'followuptime':{'type':Sequelize[_0x0fff('0x3')],'defaultValue':0x0},'dropreason':{'type':Sequelize['STRING']},'campaign':{'type':Sequelize[_0x0fff('0x4')]},'campaigntype':{'type':Sequelize[_0x0fff('0x4')]},'membername':{'type':Sequelize[_0x0fff('0x4')]},'reason':{'type':Sequelize[_0x0fff('0x4')]},'disposition':{'type':Sequelize[_0x0fff('0x4')]},'secondDisposition':{'type':Sequelize['STRING']},'thirdDisposition':{'type':Sequelize[_0x0fff('0x4')]},'dispositionat':{'type':Sequelize['DATE'],'set':function(_0x4a72b7){var _0x2c559b=this[_0x0fff('0x6')](_0x0fff('0x7'));if(_0x2c559b&&_0x4a72b7){this[_0x0fff('0x8')]('followuptime',moment(_0x4a72b7)[_0x0fff('0x9')](moment(_0x2c559b),_0x0fff('0xa')));}return this[_0x0fff('0x8')](_0x0fff('0xb'),_0x4a72b7);}},'amd':{'type':Sequelize[_0x0fff('0xc')],'defaultValue':![]},'fax':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'blacklist':{'type':Sequelize[_0x0fff('0xc')],'defaultValue':![]},'rescheduled':{'type':Sequelize[_0x0fff('0xc')],'defaultValue':![]},'rescheduledat':{'type':Sequelize['DATE']},'callback':{'type':Sequelize[_0x0fff('0xc')],'defaultValue':![]},'callbackuniqueid':{'type':Sequelize['STRING'],'defaultValue':null},'callbackat':{'type':Sequelize[_0x0fff('0x5')]},'deleted':{'type':Sequelize[_0x0fff('0x4')],'defaultValue':null},'deletedat':{'type':Sequelize[_0x0fff('0x5')]},'recallme':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'agiafterat':{'type':Sequelize[_0x0fff('0x5')]},'countnosuchnumberretry':{'type':Sequelize[_0x0fff('0x3')],'defaultValue':0x0},'countdropretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'countabandonedretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'countmachineretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'countagentrejectretry':{'type':Sequelize[_0x0fff('0x3')],'defaultValue':0x0}};
\ No newline at end of file
+var _0xc6fa=['endtime','setDataValue','diff','seconds','BOOLEAN','sequelize','INTEGER','STRING','DATE','getDataValue'];(function(_0x1653bf,_0x43083b){var _0xe57166=function(_0x2cc1f0){while(--_0x2cc1f0){_0x1653bf['push'](_0x1653bf['shift']());}};_0xe57166(++_0x43083b);}(_0xc6fa,0x13b));var _0xac6f=function(_0x173d7e,_0x3242fd){_0x173d7e=_0x173d7e-0x0;var _0x2220d6=_0xc6fa[_0x173d7e];return _0x2220d6;};'use strict';var Sequelize=require(_0xac6f('0x0'));var moment=require('moment');module['exports']={'state':{'type':Sequelize[_0xac6f('0x1')](0x2)},'statedesc':{'type':Sequelize[_0xac6f('0x2')]},'scheduledat':{'type':Sequelize[_0xac6f('0x3')]},'countbusyretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'countcongestionretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'countnoanswerretry':{'type':Sequelize[_0xac6f('0x1')],'defaultValue':0x0},'countglobal':{'type':Sequelize[_0xac6f('0x1')],'defaultValue':0x0},'uniqueid':{'type':Sequelize[_0xac6f('0x2')]},'originatecalleridnum':{'type':Sequelize[_0xac6f('0x2')]},'originatecalleridname':{'type':Sequelize[_0xac6f('0x2')]},'calleridnum':{'type':Sequelize[_0xac6f('0x2')]},'calleridname':{'type':Sequelize[_0xac6f('0x2')]},'starttime':{'type':Sequelize[_0xac6f('0x3')]},'responsetime':{'type':Sequelize[_0xac6f('0x3')]},'answertime':{'type':Sequelize[_0xac6f('0x3')]},'droptime':{'type':Sequelize[_0xac6f('0x3')]},'endtime':{'type':Sequelize['DATE']},'ringtime':{'type':Sequelize[_0xac6f('0x1')],'defaultValue':0x0},'holdtime':{'type':Sequelize[_0xac6f('0x1')],'defaultValue':0x0},'talktime':{'type':Sequelize[_0xac6f('0x1')],'defaultValue':0x0},'followuptime':{'type':Sequelize[_0xac6f('0x1')],'defaultValue':0x0},'dropreason':{'type':Sequelize[_0xac6f('0x2')]},'campaign':{'type':Sequelize[_0xac6f('0x2')]},'campaigntype':{'type':Sequelize[_0xac6f('0x2')]},'membername':{'type':Sequelize[_0xac6f('0x2')]},'reason':{'type':Sequelize['STRING']},'disposition':{'type':Sequelize[_0xac6f('0x2')]},'secondDisposition':{'type':Sequelize['STRING']},'thirdDisposition':{'type':Sequelize['STRING']},'dispositionat':{'type':Sequelize[_0xac6f('0x3')],'set':function(_0x392ecd){var _0x182d54=this[_0xac6f('0x4')](_0xac6f('0x5'));if(_0x182d54&&_0x392ecd){this[_0xac6f('0x6')]('followuptime',moment(_0x392ecd)[_0xac6f('0x7')](moment(_0x182d54),_0xac6f('0x8')));}return this[_0xac6f('0x6')]('dispositionat',_0x392ecd);}},'amd':{'type':Sequelize[_0xac6f('0x9')],'defaultValue':![]},'fax':{'type':Sequelize[_0xac6f('0x9')],'defaultValue':![]},'blacklist':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'rescheduled':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'rescheduledat':{'type':Sequelize['DATE']},'callback':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'callbackuniqueid':{'type':Sequelize[_0xac6f('0x2')],'defaultValue':null},'callbackat':{'type':Sequelize[_0xac6f('0x3')]},'deleted':{'type':Sequelize['STRING'],'defaultValue':null},'deletedat':{'type':Sequelize[_0xac6f('0x3')]},'recallme':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'agiafterat':{'type':Sequelize[_0xac6f('0x3')]},'countnosuchnumberretry':{'type':Sequelize[_0xac6f('0x1')],'defaultValue':0x0},'countdropretry':{'type':Sequelize[_0xac6f('0x1')],'defaultValue':0x0},'countabandonedretry':{'type':Sequelize[_0xac6f('0x1')],'defaultValue':0x0},'countmachineretry':{'type':Sequelize[_0xac6f('0x1')],'defaultValue':0x0},'countagentrejectretry':{'type':Sequelize[_0xac6f('0x1')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc4aa=['ContactId','ListId','ANY_VALUE(VoiceQueueId)','NOW()','createdAt','from','cm_hopper_final','toString','state\x20=\x20?','state','calleridnum\x20IS\x20NOT\x20NULL','calleridnum\x20NOT\x20IN\x20(?)','select','cm_hopper','VoiceQueueId\x20=\x20?','calleridnum','state\x20=\x204','group','moveContactsIvrCampaignHopperFinal','phone','CampaignId','ANY_VALUE(ContactId)','ANY_VALUE(ListId)','ANY_VALUE(CampaignId)','CampaignId\x20=\x20?','checkContactHopper','CmHopper','findOne','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','update','then','destroy','error','stack','name','send','index','map','CmHopperFinal','fieldName','type','key','model','query','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','filters','pick','filter','where','VIRTUAL','merge','options','includeAll','include','rows','catch','show','params','keys','rawAttributes','describe','uniqueid','find','body','countContactsQueueCampaignHopperFinal','findAll','sequelize','COUNT','`state`\x20=\x200,\x201,\x20null','noSuchContacts','literal','noAnswerContacts','busyContacts','`state`\x20=\x208,\x201,\x20null','congestionContacts','`state`\x20=\x2010\x20,\x201,\x20null','dropContacts','`state`\x20=\x2011\x20,\x201,\x20null','abandonedContacts','`state`\x20=\x2022,\x201,\x20null','reCallContacts','`state`\x20=\x2019,\x201,\x20null','countContactsIvrCampaignHopperFinal','`state`\x20=\x203,\x201,\x20null','`state`\x20=\x205,\x201,\x20null','answeringMachine','moveContactsQueueCampaignHopperFinal','VoiceQueue','insert','into','fromQuery','scheduledAt','VoiceQueueId','updatedAt','field','ANY_VALUE(calleridnum)'];(function(_0x53f218,_0x27514c){var _0x21890a=function(_0x445133){while(--_0x445133){_0x53f218['push'](_0x53f218['shift']());}};_0x21890a(++_0x27514c);}(_0xc4aa,0x1b7));var _0xac4a=function(_0x11005e,_0x20c3d2){_0x11005e=_0x11005e-0x0;var _0x29338f=_0xc4aa[_0x11005e];return _0x29338f;};'use strict';var emlformat=require(_0xac4a('0x0'));var rimraf=require(_0xac4a('0x1'));var zipdir=require(_0xac4a('0x2'));var jsonpatch=require(_0xac4a('0x3'));var rp=require(_0xac4a('0x4'));var moment=require(_0xac4a('0x5'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require(_0xac4a('0x6'));var sox=require(_0xac4a('0x7'));var csv=require(_0xac4a('0x8'));var ejs=require(_0xac4a('0x9'));var fs=require('fs');var fs_extra=require(_0xac4a('0xa'));var _=require(_0xac4a('0xb'));var squel=require(_0xac4a('0xc'));var crypto=require(_0xac4a('0xd'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xac4a('0x8'));var querystring=require(_0xac4a('0xe'));var Papa=require(_0xac4a('0xf'));var Redis=require('ioredis');var authService=require(_0xac4a('0x10'));var qs=require(_0xac4a('0x11'));var as=require(_0xac4a('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xac4a('0x13'))('api');var utils=require(_0xac4a('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0xac4a('0x15'));var db=require(_0xac4a('0x16'))['db'];function respondWithStatusCode(_0x24291d,_0x5e16aa){_0x5e16aa=_0x5e16aa||0xcc;return function(_0x21a79){if(_0x21a79){return _0x24291d[_0xac4a('0x17')](_0x5e16aa);}return _0x24291d[_0xac4a('0x18')](_0x5e16aa)[_0xac4a('0x19')]();};}function respondWithResult(_0x1b4313,_0x3b71c0){_0x3b71c0=_0x3b71c0||0xc8;return function(_0x34bc01){if(_0x34bc01){return _0x1b4313[_0xac4a('0x18')](_0x3b71c0)[_0xac4a('0x1a')](_0x34bc01);}};}function respondWithFilteredResult(_0x42c7fc,_0x11e101){return function(_0x26dbb8){if(_0x26dbb8){var _0x4a2119=typeof _0x11e101[_0xac4a('0x1b')]===_0xac4a('0x1c')&&typeof _0x11e101[_0xac4a('0x1d')]===_0xac4a('0x1c');var _0x3e88e3=_0x26dbb8[_0xac4a('0x1e')];var _0x28e304=_0x4a2119?0x0:_0x11e101[_0xac4a('0x1b')];var _0x546c5d=_0x4a2119?_0x26dbb8['count']:_0x11e101[_0xac4a('0x1b')]+_0x11e101[_0xac4a('0x1d')];var _0x39b691;if(_0x546c5d>=_0x3e88e3){_0x546c5d=_0x3e88e3;_0x39b691=0xc8;}else{_0x39b691=0xce;}_0x42c7fc['status'](_0x39b691);return _0x42c7fc[_0xac4a('0x1f')](_0xac4a('0x20'),_0x28e304+'-'+_0x546c5d+'/'+_0x3e88e3)[_0xac4a('0x1a')](_0x26dbb8);}return null;};}function patchUpdates(_0x3a3cdb){return function(_0x123694){try{jsonpatch[_0xac4a('0x21')](_0x123694,_0x3a3cdb,!![]);}catch(_0xe38996){return BPromise[_0xac4a('0x22')](_0xe38996);}return _0x123694['save']();};}function saveUpdates(_0x3d8f0a,_0x3204ad){return function(_0x599787){if(_0x599787){return _0x599787[_0xac4a('0x23')](_0x3d8f0a)[_0xac4a('0x24')](function(_0x3eacd3){return _0x3eacd3;});}return null;};}function removeEntity(_0x947d8e,_0x4d2d6c){return function(_0x1b7998){if(_0x1b7998){return _0x1b7998[_0xac4a('0x25')]()[_0xac4a('0x24')](function(){_0x947d8e[_0xac4a('0x18')](0xcc)[_0xac4a('0x19')]();});}};}function handleEntityNotFound(_0x2b0dc2,_0x222507){return function(_0x36054a){if(!_0x36054a){_0x2b0dc2[_0xac4a('0x17')](0x194);}return _0x36054a;};}function handleError(_0x3bc318,_0x1d0539){_0x1d0539=_0x1d0539||0x1f4;return function(_0x215a31){logger[_0xac4a('0x26')](_0x215a31[_0xac4a('0x27')]);if(_0x215a31[_0xac4a('0x28')]){delete _0x215a31[_0xac4a('0x28')];}_0x3bc318['status'](_0x1d0539)[_0xac4a('0x29')](_0x215a31);};}exports[_0xac4a('0x2a')]=function(_0x42a33c,_0x2772fe){var _0x116700={},_0x4a5a9e={},_0x47f49c={'count':0x0,'rows':[]};var _0xdb7e=_[_0xac4a('0x2b')](db[_0xac4a('0x2c')]['rawAttributes'],function(_0x4bda1f){return{'name':_0x4bda1f[_0xac4a('0x2d')],'type':_0x4bda1f[_0xac4a('0x2e')][_0xac4a('0x2f')]};});_0x4a5a9e[_0xac4a('0x30')]=_[_0xac4a('0x2b')](_0xdb7e,'name');_0x4a5a9e[_0xac4a('0x31')]=_['keys'](_0x42a33c[_0xac4a('0x31')]);_0x4a5a9e['filters']=_[_0xac4a('0x32')](_0x4a5a9e[_0xac4a('0x30')],_0x4a5a9e[_0xac4a('0x31')]);_0x116700[_0xac4a('0x33')]=_[_0xac4a('0x32')](_0x4a5a9e[_0xac4a('0x30')],qs[_0xac4a('0x34')](_0x42a33c[_0xac4a('0x31')][_0xac4a('0x34')]));_0x116700[_0xac4a('0x33')]=_0x116700[_0xac4a('0x33')][_0xac4a('0x35')]?_0x116700[_0xac4a('0x33')]:_0x4a5a9e[_0xac4a('0x30')];if(!_0x42a33c['query'][_0xac4a('0x36')](_0xac4a('0x37'))){_0x116700['limit']=qs[_0xac4a('0x1d')](_0x42a33c[_0xac4a('0x31')]['limit']);_0x116700['offset']=qs[_0xac4a('0x1b')](_0x42a33c[_0xac4a('0x31')][_0xac4a('0x1b')]);}_0x116700[_0xac4a('0x38')]=qs['sort'](_0x42a33c[_0xac4a('0x31')][_0xac4a('0x39')]);_0x116700['where']=qs[_0xac4a('0x3a')](_[_0xac4a('0x3b')](_0x42a33c[_0xac4a('0x31')],_0x4a5a9e['filters']),_0xdb7e);if(_0x42a33c[_0xac4a('0x31')][_0xac4a('0x3c')]){_0x116700[_0xac4a('0x3d')]=_['merge'](_0x116700[_0xac4a('0x3d')],{'$or':_[_0xac4a('0x2b')](_0xdb7e,function(_0x4b9faf){if(_0x4b9faf['type']!==_0xac4a('0x3e')){var _0x5e0926={};_0x5e0926[_0x4b9faf['name']]={'$like':'%'+_0x42a33c['query']['filter']+'%'};return _0x5e0926;}})});}_0x116700=_[_0xac4a('0x3f')]({},_0x116700,_0x42a33c[_0xac4a('0x40')]);var _0x37834b={'where':_0x116700[_0xac4a('0x3d')]};return db[_0xac4a('0x2c')][_0xac4a('0x1e')](_0x37834b)[_0xac4a('0x24')](function(_0x2b16f0){_0x47f49c[_0xac4a('0x1e')]=_0x2b16f0;if(_0x42a33c[_0xac4a('0x31')][_0xac4a('0x41')]){_0x116700[_0xac4a('0x42')]=[{'all':!![]}];}return db['CmHopperFinal']['findAll'](_0x116700);})['then'](function(_0x1e1cc5){_0x47f49c[_0xac4a('0x43')]=_0x1e1cc5;return _0x47f49c;})[_0xac4a('0x24')](respondWithFilteredResult(_0x2772fe,_0x116700))[_0xac4a('0x44')](handleError(_0x2772fe,null));};exports[_0xac4a('0x45')]=function(_0x411543,_0x8febf0){var _0x3441f2={'raw':!![],'where':{'id':_0x411543[_0xac4a('0x46')]['id']}},_0x3e9973={};_0x3e9973['model']=_[_0xac4a('0x47')](db[_0xac4a('0x2c')][_0xac4a('0x48')]);_0x3e9973[_0xac4a('0x31')]=_[_0xac4a('0x47')](_0x411543['query']);_0x3e9973[_0xac4a('0x3a')]=_[_0xac4a('0x32')](_0x3e9973['model'],_0x3e9973[_0xac4a('0x31')]);_0x3441f2['attributes']=_[_0xac4a('0x32')](_0x3e9973[_0xac4a('0x30')],qs[_0xac4a('0x34')](_0x411543[_0xac4a('0x31')][_0xac4a('0x34')]));_0x3441f2[_0xac4a('0x33')]=_0x3441f2[_0xac4a('0x33')][_0xac4a('0x35')]?_0x3441f2[_0xac4a('0x33')]:_0x3e9973[_0xac4a('0x30')];if(_0x411543[_0xac4a('0x31')][_0xac4a('0x41')]){_0x3441f2['include']=[{'all':!![]}];}_0x3441f2=_[_0xac4a('0x3f')]({},_0x3441f2,_0x411543[_0xac4a('0x40')]);return db[_0xac4a('0x2c')]['find'](_0x3441f2)[_0xac4a('0x24')](handleEntityNotFound(_0x8febf0,null))[_0xac4a('0x24')](respondWithResult(_0x8febf0,null))['catch'](handleError(_0x8febf0,null));};exports[_0xac4a('0x49')]=function(_0x5a7f6e,_0x244950){return db[_0xac4a('0x2c')][_0xac4a('0x49')]()['then'](respondWithResult(_0x244950,null))['catch'](handleError(_0x244950,null));};exports[_0xac4a('0x23')]=function(_0x4aaeff,_0x18ae96){if(_0x4aaeff['body'][_0xac4a('0x4a')]){delete _0x4aaeff['body'][_0xac4a('0x4a')];}return db[_0xac4a('0x2c')][_0xac4a('0x4b')]({'where':{'uniqueid':_0x4aaeff[_0xac4a('0x46')]['id']}})['then'](handleEntityNotFound(_0x18ae96,null))[_0xac4a('0x24')](saveUpdates(_0x4aaeff[_0xac4a('0x4c')],null))[_0xac4a('0x24')](respondWithResult(_0x18ae96,null))[_0xac4a('0x44')](handleError(_0x18ae96,null));};exports[_0xac4a('0x4d')]=function(_0x138876,_0x187306,_0x4e6e19){return db[_0xac4a('0x2c')][_0xac4a('0x4e')]({'raw':![],'where':{'VoiceQueueId':_0x138876['params']['id']},'attributes':[[db[_0xac4a('0x4f')]['fn'](_0xac4a('0x50'),db[_0xac4a('0x4f')]['fn']('IF',db[_0xac4a('0x4f')]['literal'](_0xac4a('0x51')))),_0xac4a('0x52')],[db[_0xac4a('0x4f')]['fn'](_0xac4a('0x50'),db[_0xac4a('0x4f')]['fn']('IF',db['sequelize'][_0xac4a('0x53')]('`state`\x20=\x203,\x201,\x20null'))),_0xac4a('0x54')],[db[_0xac4a('0x4f')]['fn']('COUNT',db['sequelize']['fn']('IF',db[_0xac4a('0x4f')][_0xac4a('0x53')]('`state`\x20=\x205,\x201,\x20null'))),_0xac4a('0x55')],[db[_0xac4a('0x4f')]['fn'](_0xac4a('0x50'),db[_0xac4a('0x4f')]['fn']('IF',db['sequelize'][_0xac4a('0x53')](_0xac4a('0x56')))),_0xac4a('0x57')],[db[_0xac4a('0x4f')]['fn'](_0xac4a('0x50'),db[_0xac4a('0x4f')]['fn']('IF',db[_0xac4a('0x4f')]['literal'](_0xac4a('0x58')))),_0xac4a('0x59')],[db[_0xac4a('0x4f')]['fn'](_0xac4a('0x50'),db[_0xac4a('0x4f')]['fn']('IF',db[_0xac4a('0x4f')][_0xac4a('0x53')](_0xac4a('0x5a')))),_0xac4a('0x5b')],[db[_0xac4a('0x4f')]['fn'](_0xac4a('0x50'),db[_0xac4a('0x4f')]['fn']('IF',db[_0xac4a('0x4f')][_0xac4a('0x53')](_0xac4a('0x5c')))),_0xac4a('0x5d')],[db['sequelize']['fn'](_0xac4a('0x50'),db['sequelize']['fn']('IF',db[_0xac4a('0x4f')]['literal'](_0xac4a('0x5e')))),'answeringMachine']]})[_0xac4a('0x24')](handleEntityNotFound(_0x187306,null))['then'](respondWithResult(_0x187306,null))['catch'](handleError(_0x187306,null));};exports[_0xac4a('0x5f')]=function(_0x568ffb,_0x3bcae2,_0x3c2f84){return db[_0xac4a('0x2c')][_0xac4a('0x4e')]({'raw':![],'where':{'CampaignId':_0x568ffb['params']['id']},'attributes':[[db[_0xac4a('0x4f')]['fn']('COUNT',db[_0xac4a('0x4f')]['fn']('IF',db['sequelize'][_0xac4a('0x53')](_0xac4a('0x51')))),_0xac4a('0x52')],[db[_0xac4a('0x4f')]['fn'](_0xac4a('0x50'),db[_0xac4a('0x4f')]['fn']('IF',db[_0xac4a('0x4f')][_0xac4a('0x53')](_0xac4a('0x60')))),_0xac4a('0x54')],[db[_0xac4a('0x4f')]['fn'](_0xac4a('0x50'),db[_0xac4a('0x4f')]['fn']('IF',db[_0xac4a('0x4f')][_0xac4a('0x53')](_0xac4a('0x61')))),_0xac4a('0x55')],[db['sequelize']['fn'](_0xac4a('0x50'),db[_0xac4a('0x4f')]['fn']('IF',db['sequelize'][_0xac4a('0x53')](_0xac4a('0x56')))),_0xac4a('0x57')],[db[_0xac4a('0x4f')]['fn'](_0xac4a('0x50'),db['sequelize']['fn']('IF',db['sequelize'][_0xac4a('0x53')](_0xac4a('0x58')))),_0xac4a('0x59')],[db[_0xac4a('0x4f')]['fn'](_0xac4a('0x50'),db[_0xac4a('0x4f')]['fn']('IF',db[_0xac4a('0x4f')][_0xac4a('0x53')](_0xac4a('0x5a')))),_0xac4a('0x5b')],[db[_0xac4a('0x4f')]['fn']('COUNT',db['sequelize']['fn']('IF',db[_0xac4a('0x4f')][_0xac4a('0x53')](_0xac4a('0x5c')))),_0xac4a('0x5d')],[db[_0xac4a('0x4f')]['fn'](_0xac4a('0x50'),db[_0xac4a('0x4f')]['fn']('IF',db[_0xac4a('0x4f')][_0xac4a('0x53')](_0xac4a('0x5e')))),_0xac4a('0x62')]]})[_0xac4a('0x24')](handleEntityNotFound(_0x3bcae2,null))['then'](respondWithResult(_0x3bcae2,null))[_0xac4a('0x44')](handleError(_0x3bcae2,null));};exports[_0xac4a('0x63')]=function(_0x26bd31,_0x231932,_0x513976){return db[_0xac4a('0x64')]['find']({'where':{'id':_0x26bd31[_0xac4a('0x46')]['id']}})[_0xac4a('0x24')](handleEntityNotFound(_0x231932,null))['then'](function(_0x5bd95b){var _0x17eac2;if(_0x5bd95b){_0x17eac2=squel[_0xac4a('0x65')]()[_0xac4a('0x66')]('cm_hopper')[_0xac4a('0x67')](['phone',_0xac4a('0x68'),'ContactId','ListId',_0xac4a('0x69'),'createdAt',_0xac4a('0x6a')],squel['select']()[_0xac4a('0x6b')](_0xac4a('0x6c'),'phone')[_0xac4a('0x6b')]('NOW()',_0xac4a('0x68'))[_0xac4a('0x6b')]('ANY_VALUE(ContactId)',_0xac4a('0x6d'))['field']('ANY_VALUE(ListId)',_0xac4a('0x6e'))['field'](_0xac4a('0x6f'),'VoiceQueueId')['field'](_0xac4a('0x70'),_0xac4a('0x71'))[_0xac4a('0x6b')]('NOW()','updatedAt')[_0xac4a('0x72')](_0xac4a('0x73'))['where']('VoiceQueueId\x20=\x20?',_0x26bd31[_0xac4a('0x46')]['id'][_0xac4a('0x74')]())[_0xac4a('0x3d')](_0xac4a('0x75'),_0x26bd31[_0xac4a('0x4c')][_0xac4a('0x76')][_0xac4a('0x74')]())[_0xac4a('0x3d')](_0xac4a('0x77'))['where'](_0xac4a('0x78'),squel[_0xac4a('0x79')]()[_0xac4a('0x6b')]('phone')[_0xac4a('0x72')](_0xac4a('0x7a'))[_0xac4a('0x3d')](_0xac4a('0x7b'),_0x26bd31[_0xac4a('0x46')]['id']['toString']()))[_0xac4a('0x3d')](_0xac4a('0x78'),squel[_0xac4a('0x79')]()[_0xac4a('0x6b')](_0xac4a('0x7c'))[_0xac4a('0x72')](_0xac4a('0x73'))['where'](_0xac4a('0x7b'),_0x26bd31[_0xac4a('0x46')]['id'][_0xac4a('0x74')]())[_0xac4a('0x3d')](_0xac4a('0x7d')))[_0xac4a('0x7e')]('ContactId'))[_0xac4a('0x74')]();return db[_0xac4a('0x4f')][_0xac4a('0x31')](_0x17eac2);}return[];})[_0xac4a('0x24')](respondWithResult(_0x231932,null))['catch'](handleError(_0x231932,null));};exports[_0xac4a('0x7f')]=function(_0x56a934,_0x4447b5,_0x22b718){return db['Campaign']['find']({'where':{'id':_0x56a934[_0xac4a('0x46')]['id']}})[_0xac4a('0x24')](handleEntityNotFound(_0x4447b5,null))[_0xac4a('0x24')](function(_0x4bb03d){var _0x1f3f1c;if(_0x4bb03d){_0x1f3f1c=squel['insert']()[_0xac4a('0x66')](_0xac4a('0x7a'))[_0xac4a('0x67')]([_0xac4a('0x80'),_0xac4a('0x68'),'ContactId','ListId',_0xac4a('0x81'),_0xac4a('0x71'),_0xac4a('0x6a')],squel[_0xac4a('0x79')]()[_0xac4a('0x6b')](_0xac4a('0x6c'),_0xac4a('0x80'))[_0xac4a('0x6b')]('NOW()','scheduledAt')[_0xac4a('0x6b')](_0xac4a('0x82'),_0xac4a('0x6d'))[_0xac4a('0x6b')](_0xac4a('0x83'),_0xac4a('0x6e'))[_0xac4a('0x6b')](_0xac4a('0x84'),'CampaignId')['field'](_0xac4a('0x70'),_0xac4a('0x71'))[_0xac4a('0x6b')](_0xac4a('0x70'),_0xac4a('0x6a'))[_0xac4a('0x72')](_0xac4a('0x73'))['where'](_0xac4a('0x85'),_0x56a934[_0xac4a('0x46')]['id'][_0xac4a('0x74')]())['where'](_0xac4a('0x75'),_0x56a934[_0xac4a('0x4c')][_0xac4a('0x76')][_0xac4a('0x74')]())[_0xac4a('0x3d')](_0xac4a('0x77'))[_0xac4a('0x3d')](_0xac4a('0x78'),squel[_0xac4a('0x79')]()['field'](_0xac4a('0x80'))['from'](_0xac4a('0x7a'))[_0xac4a('0x3d')](_0xac4a('0x85'),_0x56a934[_0xac4a('0x46')]['id'][_0xac4a('0x74')]()))[_0xac4a('0x3d')](_0xac4a('0x78'),squel['select']()[_0xac4a('0x6b')](_0xac4a('0x7c'))[_0xac4a('0x72')](_0xac4a('0x73'))[_0xac4a('0x3d')]('CampaignId\x20=\x20?',_0x56a934[_0xac4a('0x46')]['id'][_0xac4a('0x74')]())['where']('state\x20=\x204'))[_0xac4a('0x7e')](_0xac4a('0x6d')))['toString']();return db[_0xac4a('0x4f')][_0xac4a('0x31')](_0x1f3f1c);}return[];})[_0xac4a('0x24')](respondWithResult(_0x4447b5,null))[_0xac4a('0x44')](handleError(_0x4447b5,null));};exports[_0xac4a('0x86')]=function(_0x34787c,_0x599775,_0xbdff4b){return db[_0xac4a('0x87')][_0xac4a('0x88')]({'where':{'VoiceQueueId':_0x34787c['body'][_0xac4a('0x69')],'CampaignId':_0x34787c[_0xac4a('0x4c')][_0xac4a('0x81')],'ContactId':_0x34787c[_0xac4a('0x4c')][_0xac4a('0x6d')]}})[_0xac4a('0x24')](handleEntityNotFound(_0x599775,null))['then'](function(_0xe84bf7){if(_0xe84bf7){return _0xe84bf7;}return null;})[_0xac4a('0x24')](respondWithResult(_0x599775,null))['catch'](handleError(_0x599775,null));};
\ No newline at end of file
+var _0xe2fe=['calleridnum\x20IS\x20NOT\x20NULL','calleridnum\x20NOT\x20IN\x20(?)','cm_hopper','select','calleridnum','state\x20=\x204','group','scheduledAt','CampaignId','ANY_VALUE(ContactId)','ANY_VALUE(ListId)','ANY_VALUE(CampaignId)','CampaignId\x20=\x20?','checkContactHopper','eml-format','fast-json-patch','moment','bluebird','mustache','util','path','to-csv','ejs','lodash','squel','jsforce','querystring','ioredis','../../components/auth/service','api','../../mysqldb','sendStatus','status','offset','limit','count','set','Content-Range','json','reject','save','update','then','destroy','end','name','send','index','map','CmHopperFinal','rawAttributes','type','key','keys','query','intersection','model','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','merge','VIRTUAL','options','includeAll','include','catch','show','find','body','uniqueid','params','countContactsQueueCampaignHopperFinal','findAll','sequelize','COUNT','literal','`state`\x20=\x200,\x201,\x20null','noSuchContacts','`state`\x20=\x203,\x201,\x20null','noAnswerContacts','`state`\x20=\x205,\x201,\x20null','busyContacts','`state`\x20=\x208,\x201,\x20null','congestionContacts','`state`\x20=\x2010\x20,\x201,\x20null','dropContacts','`state`\x20=\x2011\x20,\x201,\x20null','abandonedContacts','`state`\x20=\x2022,\x201,\x20null','reCallContacts','`state`\x20=\x2019,\x201,\x20null','answeringMachine','moveContactsQueueCampaignHopperFinal','VoiceQueue','insert','into','fromQuery','phone','ContactId','ListId','VoiceQueueId','updatedAt','field','ANY_VALUE(calleridnum)','NOW()','createdAt','from','cm_hopper_final','VoiceQueueId\x20=\x20?','toString','state\x20=\x20?','state'];(function(_0x367c59,_0xc00a22){var _0x49d5fe=function(_0x519e69){while(--_0x519e69){_0x367c59['push'](_0x367c59['shift']());}};_0x49d5fe(++_0xc00a22);}(_0xe2fe,0x86));var _0xee2f=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0xe2fe[_0x14add3];return _0x4a174f;};'use strict';var emlformat=require(_0xee2f('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xee2f('0x1'));var rp=require('request-promise');var moment=require(_0xee2f('0x2'));var BPromise=require(_0xee2f('0x3'));var Mustache=require(_0xee2f('0x4'));var util=require(_0xee2f('0x5'));var path=require(_0xee2f('0x6'));var sox=require('sox');var csv=require(_0xee2f('0x7'));var ejs=require(_0xee2f('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xee2f('0x9'));var squel=require(_0xee2f('0xa'));var crypto=require('crypto');var jsforce=require(_0xee2f('0xb'));var deskjs=require('desk.js');var toCsv=require(_0xee2f('0x7'));var querystring=require(_0xee2f('0xc'));var Papa=require('papaparse');var Redis=require(_0xee2f('0xd'));var authService=require(_0xee2f('0xe'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xee2f('0xf'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0xee2f('0x10'))['db'];function respondWithStatusCode(_0x346dbc,_0xa13e7b){_0xa13e7b=_0xa13e7b||0xcc;return function(_0x100449){if(_0x100449){return _0x346dbc[_0xee2f('0x11')](_0xa13e7b);}return _0x346dbc[_0xee2f('0x12')](_0xa13e7b)['end']();};}function respondWithResult(_0x3861e6,_0x531c3a){_0x531c3a=_0x531c3a||0xc8;return function(_0x36db10){if(_0x36db10){return _0x3861e6[_0xee2f('0x12')](_0x531c3a)['json'](_0x36db10);}};}function respondWithFilteredResult(_0x445ba8,_0x145241){return function(_0x28b614){if(_0x28b614){var _0x1bbf7d=typeof _0x145241[_0xee2f('0x13')]==='undefined'&&typeof _0x145241[_0xee2f('0x14')]==='undefined';var _0x17d288=_0x28b614[_0xee2f('0x15')];var _0x502eb6=_0x1bbf7d?0x0:_0x145241['offset'];var _0x40b5bc=_0x1bbf7d?_0x28b614['count']:_0x145241[_0xee2f('0x13')]+_0x145241[_0xee2f('0x14')];var _0x28549d;if(_0x40b5bc>=_0x17d288){_0x40b5bc=_0x17d288;_0x28549d=0xc8;}else{_0x28549d=0xce;}_0x445ba8['status'](_0x28549d);return _0x445ba8[_0xee2f('0x16')](_0xee2f('0x17'),_0x502eb6+'-'+_0x40b5bc+'/'+_0x17d288)[_0xee2f('0x18')](_0x28b614);}return null;};}function patchUpdates(_0x21fdf4){return function(_0x3d892d){try{jsonpatch['apply'](_0x3d892d,_0x21fdf4,!![]);}catch(_0x5e73ad){return BPromise[_0xee2f('0x19')](_0x5e73ad);}return _0x3d892d[_0xee2f('0x1a')]();};}function saveUpdates(_0x1ea808,_0x203b2f){return function(_0x472e3b){if(_0x472e3b){return _0x472e3b[_0xee2f('0x1b')](_0x1ea808)[_0xee2f('0x1c')](function(_0x4d68d3){return _0x4d68d3;});}return null;};}function removeEntity(_0x250399,_0x2c47c5){return function(_0x15ceda){if(_0x15ceda){return _0x15ceda[_0xee2f('0x1d')]()[_0xee2f('0x1c')](function(){_0x250399[_0xee2f('0x12')](0xcc)[_0xee2f('0x1e')]();});}};}function handleEntityNotFound(_0x13013f,_0x382174){return function(_0x1e394f){if(!_0x1e394f){_0x13013f[_0xee2f('0x11')](0x194);}return _0x1e394f;};}function handleError(_0x168adc,_0x1c8454){_0x1c8454=_0x1c8454||0x1f4;return function(_0x45c4a0){logger['error'](_0x45c4a0['stack']);if(_0x45c4a0['name']){delete _0x45c4a0[_0xee2f('0x1f')];}_0x168adc[_0xee2f('0x12')](_0x1c8454)[_0xee2f('0x20')](_0x45c4a0);};}exports[_0xee2f('0x21')]=function(_0x892a4e,_0x3737fd){var _0x4d8398={},_0x3d3806={},_0x52e1fa={'count':0x0,'rows':[]};var _0x235697=_[_0xee2f('0x22')](db[_0xee2f('0x23')][_0xee2f('0x24')],function(_0x3ddbe3){return{'name':_0x3ddbe3['fieldName'],'type':_0x3ddbe3[_0xee2f('0x25')][_0xee2f('0x26')]};});_0x3d3806['model']=_['map'](_0x235697,_0xee2f('0x1f'));_0x3d3806['query']=_[_0xee2f('0x27')](_0x892a4e[_0xee2f('0x28')]);_0x3d3806['filters']=_[_0xee2f('0x29')](_0x3d3806['model'],_0x3d3806['query']);_0x4d8398['attributes']=_[_0xee2f('0x29')](_0x3d3806[_0xee2f('0x2a')],qs['fields'](_0x892a4e[_0xee2f('0x28')][_0xee2f('0x2b')]));_0x4d8398[_0xee2f('0x2c')]=_0x4d8398[_0xee2f('0x2c')][_0xee2f('0x2d')]?_0x4d8398['attributes']:_0x3d3806[_0xee2f('0x2a')];if(!_0x892a4e['query'][_0xee2f('0x2e')](_0xee2f('0x2f'))){_0x4d8398[_0xee2f('0x14')]=qs['limit'](_0x892a4e[_0xee2f('0x28')]['limit']);_0x4d8398[_0xee2f('0x13')]=qs['offset'](_0x892a4e[_0xee2f('0x28')][_0xee2f('0x13')]);}_0x4d8398[_0xee2f('0x30')]=qs[_0xee2f('0x31')](_0x892a4e[_0xee2f('0x28')][_0xee2f('0x31')]);_0x4d8398[_0xee2f('0x32')]=qs[_0xee2f('0x33')](_[_0xee2f('0x34')](_0x892a4e[_0xee2f('0x28')],_0x3d3806[_0xee2f('0x33')]),_0x235697);if(_0x892a4e['query'][_0xee2f('0x35')]){_0x4d8398['where']=_[_0xee2f('0x36')](_0x4d8398[_0xee2f('0x32')],{'$or':_[_0xee2f('0x22')](_0x235697,function(_0x2cbb89){if(_0x2cbb89[_0xee2f('0x25')]!==_0xee2f('0x37')){var _0x694950={};_0x694950[_0x2cbb89[_0xee2f('0x1f')]]={'$like':'%'+_0x892a4e['query']['filter']+'%'};return _0x694950;}})});}_0x4d8398=_['merge']({},_0x4d8398,_0x892a4e[_0xee2f('0x38')]);var _0x5483ae={'where':_0x4d8398[_0xee2f('0x32')]};return db['CmHopperFinal']['count'](_0x5483ae)['then'](function(_0x58e361){_0x52e1fa[_0xee2f('0x15')]=_0x58e361;if(_0x892a4e[_0xee2f('0x28')][_0xee2f('0x39')]){_0x4d8398[_0xee2f('0x3a')]=[{'all':!![]}];}return db['CmHopperFinal']['findAll'](_0x4d8398);})[_0xee2f('0x1c')](function(_0x5e12b7){_0x52e1fa['rows']=_0x5e12b7;return _0x52e1fa;})[_0xee2f('0x1c')](respondWithFilteredResult(_0x3737fd,_0x4d8398))[_0xee2f('0x3b')](handleError(_0x3737fd,null));};exports[_0xee2f('0x3c')]=function(_0x54130b,_0x3bc173){var _0x27c447={'raw':!![],'where':{'id':_0x54130b['params']['id']}},_0x19bd4d={};_0x19bd4d['model']=_[_0xee2f('0x27')](db[_0xee2f('0x23')][_0xee2f('0x24')]);_0x19bd4d[_0xee2f('0x28')]=_['keys'](_0x54130b[_0xee2f('0x28')]);_0x19bd4d[_0xee2f('0x33')]=_[_0xee2f('0x29')](_0x19bd4d[_0xee2f('0x2a')],_0x19bd4d[_0xee2f('0x28')]);_0x27c447[_0xee2f('0x2c')]=_[_0xee2f('0x29')](_0x19bd4d[_0xee2f('0x2a')],qs[_0xee2f('0x2b')](_0x54130b[_0xee2f('0x28')]['fields']));_0x27c447['attributes']=_0x27c447['attributes']['length']?_0x27c447[_0xee2f('0x2c')]:_0x19bd4d[_0xee2f('0x2a')];if(_0x54130b[_0xee2f('0x28')][_0xee2f('0x39')]){_0x27c447[_0xee2f('0x3a')]=[{'all':!![]}];}_0x27c447=_['merge']({},_0x27c447,_0x54130b[_0xee2f('0x38')]);return db[_0xee2f('0x23')][_0xee2f('0x3d')](_0x27c447)[_0xee2f('0x1c')](handleEntityNotFound(_0x3bc173,null))['then'](respondWithResult(_0x3bc173,null))['catch'](handleError(_0x3bc173,null));};exports['describe']=function(_0x1609f0,_0x54cc44){return db['CmHopperFinal']['describe']()['then'](respondWithResult(_0x54cc44,null))[_0xee2f('0x3b')](handleError(_0x54cc44,null));};exports[_0xee2f('0x1b')]=function(_0x32da72,_0x584383){if(_0x32da72[_0xee2f('0x3e')]['uniqueid']){delete _0x32da72[_0xee2f('0x3e')][_0xee2f('0x3f')];}return db[_0xee2f('0x23')][_0xee2f('0x3d')]({'where':{'uniqueid':_0x32da72[_0xee2f('0x40')]['id']}})['then'](handleEntityNotFound(_0x584383,null))['then'](saveUpdates(_0x32da72[_0xee2f('0x3e')],null))['then'](respondWithResult(_0x584383,null))[_0xee2f('0x3b')](handleError(_0x584383,null));};exports[_0xee2f('0x41')]=function(_0x1928f8,_0x88e683,_0x4fb3a0){return db['CmHopperFinal'][_0xee2f('0x42')]({'raw':![],'where':{'VoiceQueueId':_0x1928f8[_0xee2f('0x40')]['id']},'attributes':[[db[_0xee2f('0x43')]['fn'](_0xee2f('0x44'),db[_0xee2f('0x43')]['fn']('IF',db[_0xee2f('0x43')][_0xee2f('0x45')](_0xee2f('0x46')))),_0xee2f('0x47')],[db[_0xee2f('0x43')]['fn'](_0xee2f('0x44'),db[_0xee2f('0x43')]['fn']('IF',db['sequelize'][_0xee2f('0x45')](_0xee2f('0x48')))),_0xee2f('0x49')],[db[_0xee2f('0x43')]['fn']('COUNT',db[_0xee2f('0x43')]['fn']('IF',db[_0xee2f('0x43')][_0xee2f('0x45')](_0xee2f('0x4a')))),_0xee2f('0x4b')],[db['sequelize']['fn'](_0xee2f('0x44'),db['sequelize']['fn']('IF',db['sequelize'][_0xee2f('0x45')](_0xee2f('0x4c')))),_0xee2f('0x4d')],[db[_0xee2f('0x43')]['fn'](_0xee2f('0x44'),db[_0xee2f('0x43')]['fn']('IF',db[_0xee2f('0x43')]['literal'](_0xee2f('0x4e')))),_0xee2f('0x4f')],[db[_0xee2f('0x43')]['fn'](_0xee2f('0x44'),db[_0xee2f('0x43')]['fn']('IF',db[_0xee2f('0x43')][_0xee2f('0x45')](_0xee2f('0x50')))),_0xee2f('0x51')],[db['sequelize']['fn'](_0xee2f('0x44'),db['sequelize']['fn']('IF',db[_0xee2f('0x43')][_0xee2f('0x45')](_0xee2f('0x52')))),_0xee2f('0x53')],[db[_0xee2f('0x43')]['fn']('COUNT',db[_0xee2f('0x43')]['fn']('IF',db[_0xee2f('0x43')][_0xee2f('0x45')](_0xee2f('0x54')))),'answeringMachine']]})['then'](handleEntityNotFound(_0x88e683,null))['then'](respondWithResult(_0x88e683,null))['catch'](handleError(_0x88e683,null));};exports['countContactsIvrCampaignHopperFinal']=function(_0x8f90e6,_0x511e54,_0x2891ed){return db[_0xee2f('0x23')][_0xee2f('0x42')]({'raw':![],'where':{'CampaignId':_0x8f90e6[_0xee2f('0x40')]['id']},'attributes':[[db[_0xee2f('0x43')]['fn'](_0xee2f('0x44'),db['sequelize']['fn']('IF',db['sequelize'][_0xee2f('0x45')]('`state`\x20=\x200,\x201,\x20null'))),_0xee2f('0x47')],[db['sequelize']['fn'](_0xee2f('0x44'),db['sequelize']['fn']('IF',db[_0xee2f('0x43')][_0xee2f('0x45')](_0xee2f('0x48')))),'noAnswerContacts'],[db[_0xee2f('0x43')]['fn'](_0xee2f('0x44'),db[_0xee2f('0x43')]['fn']('IF',db[_0xee2f('0x43')][_0xee2f('0x45')](_0xee2f('0x4a')))),_0xee2f('0x4b')],[db['sequelize']['fn'](_0xee2f('0x44'),db[_0xee2f('0x43')]['fn']('IF',db[_0xee2f('0x43')][_0xee2f('0x45')](_0xee2f('0x4c')))),_0xee2f('0x4d')],[db[_0xee2f('0x43')]['fn'](_0xee2f('0x44'),db[_0xee2f('0x43')]['fn']('IF',db[_0xee2f('0x43')][_0xee2f('0x45')]('`state`\x20=\x2010\x20,\x201,\x20null'))),_0xee2f('0x4f')],[db[_0xee2f('0x43')]['fn']('COUNT',db[_0xee2f('0x43')]['fn']('IF',db['sequelize'][_0xee2f('0x45')]('`state`\x20=\x2011\x20,\x201,\x20null'))),'abandonedContacts'],[db[_0xee2f('0x43')]['fn'](_0xee2f('0x44'),db[_0xee2f('0x43')]['fn']('IF',db[_0xee2f('0x43')][_0xee2f('0x45')]('`state`\x20=\x2022,\x201,\x20null'))),_0xee2f('0x53')],[db[_0xee2f('0x43')]['fn'](_0xee2f('0x44'),db['sequelize']['fn']('IF',db[_0xee2f('0x43')][_0xee2f('0x45')]('`state`\x20=\x2019,\x201,\x20null'))),_0xee2f('0x55')]]})[_0xee2f('0x1c')](handleEntityNotFound(_0x511e54,null))[_0xee2f('0x1c')](respondWithResult(_0x511e54,null))[_0xee2f('0x3b')](handleError(_0x511e54,null));};exports[_0xee2f('0x56')]=function(_0x2adcc6,_0x43b883,_0x97edb2){return db[_0xee2f('0x57')]['find']({'where':{'id':_0x2adcc6['params']['id']}})['then'](handleEntityNotFound(_0x43b883,null))[_0xee2f('0x1c')](function(_0x19ce25){var _0x4288eb;if(_0x19ce25){_0x4288eb=squel[_0xee2f('0x58')]()[_0xee2f('0x59')]('cm_hopper')[_0xee2f('0x5a')]([_0xee2f('0x5b'),'scheduledAt',_0xee2f('0x5c'),_0xee2f('0x5d'),_0xee2f('0x5e'),'createdAt',_0xee2f('0x5f')],squel['select']()[_0xee2f('0x60')](_0xee2f('0x61'),'phone')[_0xee2f('0x60')](_0xee2f('0x62'),'scheduledAt')['field']('ANY_VALUE(ContactId)',_0xee2f('0x5c'))['field']('ANY_VALUE(ListId)',_0xee2f('0x5d'))[_0xee2f('0x60')]('ANY_VALUE(VoiceQueueId)',_0xee2f('0x5e'))['field'](_0xee2f('0x62'),_0xee2f('0x63'))[_0xee2f('0x60')](_0xee2f('0x62'),_0xee2f('0x5f'))[_0xee2f('0x64')](_0xee2f('0x65'))['where'](_0xee2f('0x66'),_0x2adcc6[_0xee2f('0x40')]['id'][_0xee2f('0x67')]())[_0xee2f('0x32')](_0xee2f('0x68'),_0x2adcc6['body'][_0xee2f('0x69')][_0xee2f('0x67')]())[_0xee2f('0x32')](_0xee2f('0x6a'))[_0xee2f('0x32')](_0xee2f('0x6b'),squel['select']()['field'](_0xee2f('0x5b'))[_0xee2f('0x64')](_0xee2f('0x6c'))[_0xee2f('0x32')](_0xee2f('0x66'),_0x2adcc6[_0xee2f('0x40')]['id'][_0xee2f('0x67')]()))['where']('calleridnum\x20NOT\x20IN\x20(?)',squel[_0xee2f('0x6d')]()[_0xee2f('0x60')](_0xee2f('0x6e'))[_0xee2f('0x64')](_0xee2f('0x65'))[_0xee2f('0x32')](_0xee2f('0x66'),_0x2adcc6[_0xee2f('0x40')]['id'][_0xee2f('0x67')]())[_0xee2f('0x32')](_0xee2f('0x6f')))[_0xee2f('0x70')]('ContactId'))['toString']();return db[_0xee2f('0x43')]['query'](_0x4288eb);}return[];})['then'](respondWithResult(_0x43b883,null))['catch'](handleError(_0x43b883,null));};exports['moveContactsIvrCampaignHopperFinal']=function(_0x2ea31f,_0x277507,_0x500459){return db['Campaign'][_0xee2f('0x3d')]({'where':{'id':_0x2ea31f[_0xee2f('0x40')]['id']}})[_0xee2f('0x1c')](handleEntityNotFound(_0x277507,null))['then'](function(_0x4aeae5){var _0x2b6f0f;if(_0x4aeae5){_0x2b6f0f=squel[_0xee2f('0x58')]()[_0xee2f('0x59')]('cm_hopper')[_0xee2f('0x5a')](['phone',_0xee2f('0x71'),'ContactId',_0xee2f('0x5d'),_0xee2f('0x72'),_0xee2f('0x63'),'updatedAt'],squel['select']()[_0xee2f('0x60')](_0xee2f('0x61'),_0xee2f('0x5b'))['field'](_0xee2f('0x62'),_0xee2f('0x71'))[_0xee2f('0x60')](_0xee2f('0x73'),_0xee2f('0x5c'))[_0xee2f('0x60')](_0xee2f('0x74'),_0xee2f('0x5d'))[_0xee2f('0x60')](_0xee2f('0x75'),_0xee2f('0x72'))[_0xee2f('0x60')](_0xee2f('0x62'),_0xee2f('0x63'))['field'](_0xee2f('0x62'),_0xee2f('0x5f'))[_0xee2f('0x64')](_0xee2f('0x65'))[_0xee2f('0x32')](_0xee2f('0x76'),_0x2ea31f[_0xee2f('0x40')]['id'][_0xee2f('0x67')]())[_0xee2f('0x32')](_0xee2f('0x68'),_0x2ea31f[_0xee2f('0x3e')]['state'][_0xee2f('0x67')]())[_0xee2f('0x32')](_0xee2f('0x6a'))[_0xee2f('0x32')]('calleridnum\x20NOT\x20IN\x20(?)',squel[_0xee2f('0x6d')]()[_0xee2f('0x60')](_0xee2f('0x5b'))['from']('cm_hopper')[_0xee2f('0x32')]('CampaignId\x20=\x20?',_0x2ea31f['params']['id']['toString']()))[_0xee2f('0x32')](_0xee2f('0x6b'),squel[_0xee2f('0x6d')]()[_0xee2f('0x60')]('calleridnum')[_0xee2f('0x64')](_0xee2f('0x65'))[_0xee2f('0x32')]('CampaignId\x20=\x20?',_0x2ea31f[_0xee2f('0x40')]['id']['toString']())[_0xee2f('0x32')]('state\x20=\x204'))['group'](_0xee2f('0x5c')))['toString']();return db[_0xee2f('0x43')]['query'](_0x2b6f0f);}return[];})['then'](respondWithResult(_0x277507,null))[_0xee2f('0x3b')](handleError(_0x277507,null));};exports[_0xee2f('0x77')]=function(_0x4fed80,_0x2685ed,_0x34f882){return db['CmHopper']['findOne']({'where':{'VoiceQueueId':_0x4fed80[_0xee2f('0x3e')][_0xee2f('0x5e')],'CampaignId':_0x4fed80['body'][_0xee2f('0x72')],'ContactId':_0x4fed80[_0xee2f('0x3e')][_0xee2f('0x5c')]}})[_0xee2f('0x1c')](handleEntityNotFound(_0x2685ed,null))[_0xee2f('0x1c')](function(_0x4f20e9){if(_0x4f20e9){return _0x4f20e9;}return null;})['then'](respondWithResult(_0x2685ed,null))['catch'](handleError(_0x2685ed,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6f5b=['util','../../config/logger','api','bluebird','rimraf','./cmHopperFinal.attributes','define','CmHopperFinal','calleridnum'];(function(_0x16eaa6,_0x363449){var _0x3695fa=function(_0x115b36){while(--_0x115b36){_0x16eaa6['push'](_0x16eaa6['shift']());}};_0x3695fa(++_0x363449);}(_0x6f5b,0x19e));var _0xb6f5=function(_0x4cfc35,_0xb52690){_0x4cfc35=_0x4cfc35-0x0;var _0x43a384=_0x6f5b[_0x4cfc35];return _0x43a384;};'use strict';var _=require('lodash');var util=require(_0xb6f5('0x0'));var logger=require(_0xb6f5('0x1'))(_0xb6f5('0x2'));var moment=require('moment');var BPromise=require(_0xb6f5('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0xb6f5('0x4'));var config=require('../../config/environment');var attributes=require(_0xb6f5('0x5'));module['exports']=function(_0x1fcc22,_0x394222){return _0x1fcc22[_0xb6f5('0x6')](_0xb6f5('0x7'),attributes,{'tableName':'cm_hopper_final','paranoid':![],'indexes':[{'name':_0xb6f5('0x8'),'fields':[_0xb6f5('0x8')]},{'name':'uniqueid','fields':['uniqueid']}],'timestamps':!![]});};
\ No newline at end of file
+var _0x91b8=['lodash','../../config/logger','moment','bluebird','request-promise','path','rimraf','../../config/environment','./cmHopperFinal.attributes','exports','define','CmHopperFinal','cm_hopper_final','calleridnum','uniqueid'];(function(_0x18e847,_0xbb00e9){var _0x584225=function(_0x755ab){while(--_0x755ab){_0x18e847['push'](_0x18e847['shift']());}};_0x584225(++_0xbb00e9);}(_0x91b8,0x1c2));var _0x891b=function(_0x363564,_0x25bb72){_0x363564=_0x363564-0x0;var _0x578913=_0x91b8[_0x363564];return _0x578913;};'use strict';var _=require(_0x891b('0x0'));var util=require('util');var logger=require(_0x891b('0x1'))('api');var moment=require(_0x891b('0x2'));var BPromise=require(_0x891b('0x3'));var rp=require(_0x891b('0x4'));var fs=require('fs');var path=require(_0x891b('0x5'));var rimraf=require(_0x891b('0x6'));var config=require(_0x891b('0x7'));var attributes=require(_0x891b('0x8'));module[_0x891b('0x9')]=function(_0x2e6c2f,_0x55dcc0){return _0x2e6c2f[_0x891b('0xa')](_0x891b('0xb'),attributes,{'tableName':_0x891b('0xc'),'paranoid':![],'indexes':[{'name':_0x891b('0xd'),'fields':['calleridnum']},{'name':_0x891b('0xe'),'fields':[_0x891b('0xe')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb10b=['debug','lodash','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','request','then','info','CmHopperFinal,\x20%s,\x20%s','CmHopperFinal,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','result','CreateCmHopperFinal','CmHopperFinal','create','options','raw'];(function(_0x51b339,_0x55597e){var _0xa86b32=function(_0x41f457){while(--_0x41f457){_0x51b339['push'](_0x51b339['shift']());}};_0xa86b32(++_0x55597e);}(_0xb10b,0x12a));var _0xbb10=function(_0x31eb98,_0x592fa2){_0x31eb98=_0x31eb98-0x0;var _0x20cf3e=_0xb10b[_0x31eb98];return _0x20cf3e;};'use strict';var _=require(_0xbb10('0x0'));var util=require('util');var moment=require(_0xbb10('0x1'));var BPromise=require(_0xbb10('0x2'));var rs=require(_0xbb10('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xbb10('0x4'))['db'];var utils=require(_0xbb10('0x5'));var logger=require(_0xbb10('0x6'))(_0xbb10('0x7'));var config=require(_0xbb10('0x8'));var jayson=require(_0xbb10('0x9'));var client=jayson['client'][_0xbb10('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x3cdd53,_0x513741,_0x1b9e94){return new BPromise(function(_0x3fb675,_0x21370f){return client[_0xbb10('0xb')](_0x3cdd53,_0x1b9e94)[_0xbb10('0xc')](function(_0x1ce33e){logger[_0xbb10('0xd')](_0xbb10('0xe'),_0x513741,'request\x20sent');logger['debug'](_0xbb10('0xf'),_0x513741,_0xbb10('0x10'),JSON[_0xbb10('0x11')](_0x1ce33e));if(_0x1ce33e['error']){if(_0x1ce33e[_0xbb10('0x12')]['code']===0x1f4){logger[_0xbb10('0x12')](_0xbb10('0xe'),_0x513741,_0x1ce33e[_0xbb10('0x12')][_0xbb10('0x13')]);return _0x21370f(_0x1ce33e[_0xbb10('0x12')][_0xbb10('0x13')]);}logger['error'](_0xbb10('0xe'),_0x513741,_0x1ce33e[_0xbb10('0x12')][_0xbb10('0x13')]);return _0x3fb675(_0x1ce33e[_0xbb10('0x12')][_0xbb10('0x13')]);}else{logger[_0xbb10('0xd')](_0xbb10('0xe'),_0x513741,_0xbb10('0x10'));_0x3fb675(_0x1ce33e[_0xbb10('0x14')][_0xbb10('0x13')]);}})['catch'](function(_0x2eca0f){logger[_0xbb10('0x12')](_0xbb10('0xe'),_0x513741,_0x2eca0f);_0x21370f(_0x2eca0f);});});}exports[_0xbb10('0x15')]=function(_0x378da8){var _0x1682a4=this;return new Promise(function(_0x575cca,_0x30efc6){return db[_0xbb10('0x16')][_0xbb10('0x17')](_0x378da8['body'],{'raw':_0x378da8[_0xbb10('0x18')]?_0x378da8[_0xbb10('0x18')][_0xbb10('0x19')]===undefined?!![]:![]:!![]})[_0xbb10('0xc')](function(_0xdf237d){logger[_0xbb10('0xd')]('CreateCmHopperFinal',_0x378da8);logger[_0xbb10('0x1a')](_0xbb10('0x15'),_0x378da8,JSON['stringify'](_0xdf237d));_0x575cca(_0xdf237d);})['catch'](function(_0x8e2b97){logger[_0xbb10('0x12')](_0xbb10('0x15'),_0x8e2b97[_0xbb10('0x13')],_0x378da8);_0x30efc6(_0x1682a4[_0xbb10('0x12')](0x1f4,_0x8e2b97[_0xbb10('0x13')]));});});};
\ No newline at end of file
+var _0xb10b=['debug','lodash','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','request','then','info','CmHopperFinal,\x20%s,\x20%s','CmHopperFinal,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','result','CreateCmHopperFinal','CmHopperFinal','create','options','raw'];(function(_0x4417d9,_0x27ad30){var _0x41b529=function(_0xcf3d0){while(--_0xcf3d0){_0x4417d9['push'](_0x4417d9['shift']());}};_0x41b529(++_0x27ad30);}(_0xb10b,0x12a));var _0xbb10=function(_0x68c979,_0x431cff){_0x68c979=_0x68c979-0x0;var _0x4f0001=_0xb10b[_0x68c979];return _0x4f0001;};'use strict';var _=require(_0xbb10('0x0'));var util=require('util');var moment=require(_0xbb10('0x1'));var BPromise=require(_0xbb10('0x2'));var rs=require(_0xbb10('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xbb10('0x4'))['db'];var utils=require(_0xbb10('0x5'));var logger=require(_0xbb10('0x6'))(_0xbb10('0x7'));var config=require(_0xbb10('0x8'));var jayson=require(_0xbb10('0x9'));var client=jayson['client'][_0xbb10('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x3cdd53,_0x513741,_0x1b9e94){return new BPromise(function(_0x3fb675,_0x21370f){return client[_0xbb10('0xb')](_0x3cdd53,_0x1b9e94)[_0xbb10('0xc')](function(_0x1ce33e){logger[_0xbb10('0xd')](_0xbb10('0xe'),_0x513741,'request\x20sent');logger['debug'](_0xbb10('0xf'),_0x513741,_0xbb10('0x10'),JSON[_0xbb10('0x11')](_0x1ce33e));if(_0x1ce33e['error']){if(_0x1ce33e[_0xbb10('0x12')]['code']===0x1f4){logger[_0xbb10('0x12')](_0xbb10('0xe'),_0x513741,_0x1ce33e[_0xbb10('0x12')][_0xbb10('0x13')]);return _0x21370f(_0x1ce33e[_0xbb10('0x12')][_0xbb10('0x13')]);}logger['error'](_0xbb10('0xe'),_0x513741,_0x1ce33e[_0xbb10('0x12')][_0xbb10('0x13')]);return _0x3fb675(_0x1ce33e[_0xbb10('0x12')][_0xbb10('0x13')]);}else{logger[_0xbb10('0xd')](_0xbb10('0xe'),_0x513741,_0xbb10('0x10'));_0x3fb675(_0x1ce33e[_0xbb10('0x14')][_0xbb10('0x13')]);}})['catch'](function(_0x2eca0f){logger[_0xbb10('0x12')](_0xbb10('0xe'),_0x513741,_0x2eca0f);_0x21370f(_0x2eca0f);});});}exports[_0xbb10('0x15')]=function(_0x378da8){var _0x1682a4=this;return new Promise(function(_0x575cca,_0x30efc6){return db[_0xbb10('0x16')][_0xbb10('0x17')](_0x378da8['body'],{'raw':_0x378da8[_0xbb10('0x18')]?_0x378da8[_0xbb10('0x18')][_0xbb10('0x19')]===undefined?!![]:![]:!![]})[_0xbb10('0xc')](function(_0xdf237d){logger[_0xbb10('0xd')]('CreateCmHopperFinal',_0x378da8);logger[_0xbb10('0x1a')](_0xbb10('0x15'),_0x378da8,JSON['stringify'](_0xdf237d));_0x575cca(_0xdf237d);})['catch'](function(_0x8e2b97){logger[_0xbb10('0x12')](_0xbb10('0x15'),_0x8e2b97[_0xbb10('0x13')],_0x378da8);_0x30efc6(_0x1682a4[_0xbb10('0x12')](0x1f4,_0x8e2b97[_0xbb10('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xade9=['util','path','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./cmHopperFinal.controller','get','isAuthenticated','index','/describe','describe','/:id','show','/voice/queue/countAttributes/:id','countContactsIvrCampaignHopperFinal','/voice/queue/moveContacts/:id','moveContactsQueueCampaignHopperFinal','post','/voice/campaign/moveContacts/:id','moveContactsIvrCampaignHopperFinal','checkContactHopper','put','exports','multer'];(function(_0x3c13f0,_0x71a1d0){var _0x336364=function(_0x56c307){while(--_0x56c307){_0x3c13f0['push'](_0x3c13f0['shift']());}};_0x336364(++_0x71a1d0);}(_0xade9,0x194));var _0x9ade=function(_0x2d2a9b,_0x5870ff){_0x2d2a9b=_0x2d2a9b-0x0;var _0x3d2d49=_0xade9[_0x2d2a9b];return _0x3d2d49;};'use strict';var multer=require(_0x9ade('0x0'));var util=require(_0x9ade('0x1'));var path=require(_0x9ade('0x2'));var timeout=require('connect-timeout');var express=require(_0x9ade('0x3'));var router=express[_0x9ade('0x4')]();var fs_extra=require(_0x9ade('0x5'));var auth=require(_0x9ade('0x6'));var interaction=require(_0x9ade('0x7'));var config=require(_0x9ade('0x8'));var controller=require(_0x9ade('0x9'));router[_0x9ade('0xa')]('/',auth[_0x9ade('0xb')](),controller[_0x9ade('0xc')]);router['get'](_0x9ade('0xd'),auth[_0x9ade('0xb')](),controller[_0x9ade('0xe')]);router[_0x9ade('0xa')](_0x9ade('0xf'),auth[_0x9ade('0xb')](),controller[_0x9ade('0x10')]);router[_0x9ade('0xa')](_0x9ade('0x11'),auth[_0x9ade('0xb')](),controller['countContactsQueueCampaignHopperFinal']);router[_0x9ade('0xa')]('/campaign/countAttributes/:id',auth[_0x9ade('0xb')](),controller[_0x9ade('0x12')]);router['post'](_0x9ade('0x13'),auth[_0x9ade('0xb')](),controller[_0x9ade('0x14')]);router[_0x9ade('0x15')](_0x9ade('0x16'),auth[_0x9ade('0xb')](),controller[_0x9ade('0x17')]);router['post']('/checkContactHopper',auth[_0x9ade('0xb')](),controller[_0x9ade('0x18')]);router[_0x9ade('0x19')]('/:id',auth['isAuthenticated'](),controller['update']);module[_0x9ade('0x1a')]=router;
\ No newline at end of file
+var _0xa6d1=['path','connect-timeout','../../components/auth/service','../../config/environment','./cmHopperFinal.controller','isAuthenticated','/describe','get','show','/voice/queue/countAttributes/:id','countContactsQueueCampaignHopperFinal','/campaign/countAttributes/:id','countContactsIvrCampaignHopperFinal','moveContactsQueueCampaignHopperFinal','/voice/campaign/moveContacts/:id','moveContactsIvrCampaignHopperFinal','checkContactHopper','/:id','update','multer','util'];(function(_0x5db211,_0x37f1e8){var _0x5a4c70=function(_0x3b65e3){while(--_0x3b65e3){_0x5db211['push'](_0x5db211['shift']());}};_0x5a4c70(++_0x37f1e8);}(_0xa6d1,0x1e1));var _0x1a6d=function(_0x556d5e,_0x851fec){_0x556d5e=_0x556d5e-0x0;var _0x5be0bd=_0xa6d1[_0x556d5e];return _0x5be0bd;};'use strict';var multer=require(_0x1a6d('0x0'));var util=require(_0x1a6d('0x1'));var path=require(_0x1a6d('0x2'));var timeout=require(_0x1a6d('0x3'));var express=require('express');var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0x1a6d('0x4'));var interaction=require('../../components/interaction/service');var config=require(_0x1a6d('0x5'));var controller=require(_0x1a6d('0x6'));router['get']('/',auth[_0x1a6d('0x7')](),controller['index']);router['get'](_0x1a6d('0x8'),auth[_0x1a6d('0x7')](),controller['describe']);router[_0x1a6d('0x9')]('/:id',auth[_0x1a6d('0x7')](),controller[_0x1a6d('0xa')]);router[_0x1a6d('0x9')](_0x1a6d('0xb'),auth[_0x1a6d('0x7')](),controller[_0x1a6d('0xc')]);router[_0x1a6d('0x9')](_0x1a6d('0xd'),auth[_0x1a6d('0x7')](),controller[_0x1a6d('0xe')]);router['post']('/voice/queue/moveContacts/:id',auth[_0x1a6d('0x7')](),controller[_0x1a6d('0xf')]);router['post'](_0x1a6d('0x10'),auth[_0x1a6d('0x7')](),controller[_0x1a6d('0x11')]);router['post']('/checkContactHopper',auth[_0x1a6d('0x7')](),controller[_0x1a6d('0x12')]);router['put'](_0x1a6d('0x13'),auth[_0x1a6d('0x7')](),controller[_0x1a6d('0x14')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd532=['STRING','DATE','BOOLEAN','sequelize','INTEGER'];(function(_0x40f92b,_0x4dfb19){var _0x37b48b=function(_0x13826f){while(--_0x13826f){_0x40f92b['push'](_0x40f92b['shift']());}};_0x37b48b(++_0x4dfb19);}(_0xd532,0x14d));var _0x2d53=function(_0x50868a,_0x38582d){_0x50868a=_0x50868a-0x0;var _0x546d89=_0xd532[_0x50868a];return _0x546d89;};'use strict';var Sequelize=require(_0x2d53('0x0'));module['exports']={'state':{'type':Sequelize[_0x2d53('0x1')](0x2)},'statedesc':{'type':Sequelize[_0x2d53('0x2')]},'scheduledat':{'type':Sequelize[_0x2d53('0x3')]},'countbusyretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'countcongestionretry':{'type':Sequelize[_0x2d53('0x1')],'defaultValue':0x0},'countnoanswerretry':{'type':Sequelize[_0x2d53('0x1')],'defaultValue':0x0},'countglobal':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'uniqueid':{'type':Sequelize['STRING']},'originatecalleridnum':{'type':Sequelize[_0x2d53('0x2')]},'originatecalleridname':{'type':Sequelize[_0x2d53('0x2')]},'calleridnum':{'type':Sequelize[_0x2d53('0x2')]},'calleridname':{'type':Sequelize['STRING']},'starttime':{'type':Sequelize[_0x2d53('0x3')]},'responsetime':{'type':Sequelize[_0x2d53('0x3')]},'answertime':{'type':Sequelize[_0x2d53('0x3')]},'droptime':{'type':Sequelize[_0x2d53('0x3')]},'endtime':{'type':Sequelize[_0x2d53('0x3')]},'ringtime':{'type':Sequelize[_0x2d53('0x1')],'defaultValue':0x0},'holdtime':{'type':Sequelize[_0x2d53('0x1')],'defaultValue':0x0},'talktime':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'followuptime':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'dropreason':{'type':Sequelize[_0x2d53('0x2')]},'campaign':{'type':Sequelize[_0x2d53('0x2')]},'campaigntype':{'type':Sequelize['STRING']},'membername':{'type':Sequelize[_0x2d53('0x2')]},'reason':{'type':Sequelize[_0x2d53('0x2')]},'amd':{'type':Sequelize[_0x2d53('0x4')],'defaultValue':![]},'fax':{'type':Sequelize[_0x2d53('0x4')],'defaultValue':![]},'callback':{'type':Sequelize[_0x2d53('0x4')],'defaultValue':![]},'callbackuniqueid':{'type':Sequelize[_0x2d53('0x2')],'defaultValue':null},'callbackat':{'type':Sequelize[_0x2d53('0x3')]},'recallme':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'editedat':{'type':Sequelize[_0x2d53('0x3')]},'edited':{'type':Sequelize[_0x2d53('0x4')],'defaultValue':![]},'countnosuchnumberretry':{'type':Sequelize[_0x2d53('0x1')],'defaultValue':0x0},'countdropretry':{'type':Sequelize[_0x2d53('0x1')],'defaultValue':0x0},'countabandonedretry':{'type':Sequelize[_0x2d53('0x1')],'defaultValue':0x0},'countmachineretry':{'type':Sequelize[_0x2d53('0x1')],'defaultValue':0x0},'countagentrejectretry':{'type':Sequelize[_0x2d53('0x1')],'defaultValue':0x0}};
\ No newline at end of file
+var _0xe5f9=['STRING','DATE','BOOLEAN','sequelize','exports','INTEGER'];(function(_0x2d607b,_0x455193){var _0x5be31d=function(_0xd56691){while(--_0xd56691){_0x2d607b['push'](_0x2d607b['shift']());}};_0x5be31d(++_0x455193);}(_0xe5f9,0x1a1));var _0x9e5f=function(_0x2397e0,_0x577beb){_0x2397e0=_0x2397e0-0x0;var _0x18a24d=_0xe5f9[_0x2397e0];return _0x18a24d;};'use strict';var Sequelize=require(_0x9e5f('0x0'));module[_0x9e5f('0x1')]={'state':{'type':Sequelize[_0x9e5f('0x2')](0x2)},'statedesc':{'type':Sequelize[_0x9e5f('0x3')]},'scheduledat':{'type':Sequelize[_0x9e5f('0x4')]},'countbusyretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'countcongestionretry':{'type':Sequelize[_0x9e5f('0x2')],'defaultValue':0x0},'countnoanswerretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'countglobal':{'type':Sequelize[_0x9e5f('0x2')],'defaultValue':0x0},'uniqueid':{'type':Sequelize[_0x9e5f('0x3')]},'originatecalleridnum':{'type':Sequelize['STRING']},'originatecalleridname':{'type':Sequelize[_0x9e5f('0x3')]},'calleridnum':{'type':Sequelize[_0x9e5f('0x3')]},'calleridname':{'type':Sequelize['STRING']},'starttime':{'type':Sequelize[_0x9e5f('0x4')]},'responsetime':{'type':Sequelize[_0x9e5f('0x4')]},'answertime':{'type':Sequelize[_0x9e5f('0x4')]},'droptime':{'type':Sequelize['DATE']},'endtime':{'type':Sequelize[_0x9e5f('0x4')]},'ringtime':{'type':Sequelize[_0x9e5f('0x2')],'defaultValue':0x0},'holdtime':{'type':Sequelize[_0x9e5f('0x2')],'defaultValue':0x0},'talktime':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'followuptime':{'type':Sequelize[_0x9e5f('0x2')],'defaultValue':0x0},'dropreason':{'type':Sequelize[_0x9e5f('0x3')]},'campaign':{'type':Sequelize[_0x9e5f('0x3')]},'campaigntype':{'type':Sequelize[_0x9e5f('0x3')]},'membername':{'type':Sequelize[_0x9e5f('0x3')]},'reason':{'type':Sequelize[_0x9e5f('0x3')]},'amd':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'fax':{'type':Sequelize[_0x9e5f('0x5')],'defaultValue':![]},'callback':{'type':Sequelize[_0x9e5f('0x5')],'defaultValue':![]},'callbackuniqueid':{'type':Sequelize[_0x9e5f('0x3')],'defaultValue':null},'callbackat':{'type':Sequelize[_0x9e5f('0x4')]},'recallme':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'editedat':{'type':Sequelize[_0x9e5f('0x4')]},'edited':{'type':Sequelize[_0x9e5f('0x5')],'defaultValue':![]},'countnosuchnumberretry':{'type':Sequelize[_0x9e5f('0x2')],'defaultValue':0x0},'countdropretry':{'type':Sequelize[_0x9e5f('0x2')],'defaultValue':0x0},'countabandonedretry':{'type':Sequelize[_0x9e5f('0x2')],'defaultValue':0x0},'countmachineretry':{'type':Sequelize[_0x9e5f('0x2')],'defaultValue':0x0},'countagentrejectretry':{'type':Sequelize[_0x9e5f('0x2')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x566a=['Content-Range','reject','save','destroy','error','name','send','map','CmHopperHistory','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','nolimit','order','pick','merge','where','VIRTUAL','filter','options','then','includeAll','rows','catch','show','length','find','create','body','describe','update','uniqueid','params','eml-format','fast-json-patch','moment','bluebird','path','sox','to-csv','fs-extra','crypto','jsforce','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','undefined','limit','offset','count','set'];(function(_0x38325,_0x262d3c){var _0x2994d6=function(_0x48af6e){while(--_0x48af6e){_0x38325['push'](_0x38325['shift']());}};_0x2994d6(++_0x262d3c);}(_0x566a,0xf5));var _0xa566=function(_0x10637c,_0x47ec3e){_0x10637c=_0x10637c-0x0;var _0x3a1329=_0x566a[_0x10637c];return _0x3a1329;};'use strict';var emlformat=require(_0xa566('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xa566('0x1'));var rp=require('request-promise');var moment=require(_0xa566('0x2'));var BPromise=require(_0xa566('0x3'));var Mustache=require('mustache');var util=require('util');var path=require(_0xa566('0x4'));var sox=require(_0xa566('0x5'));var csv=require(_0xa566('0x6'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xa566('0x7'));var _=require('lodash');var squel=require('squel');var crypto=require(_0xa566('0x8'));var jsforce=require(_0xa566('0x9'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xa566('0xa'));var authService=require(_0xa566('0xb'));var qs=require(_0xa566('0xc'));var as=require(_0xa566('0xd'));var hardwareService=require(_0xa566('0xe'));var logger=require('../../config/logger')(_0xa566('0xf'));var utils=require(_0xa566('0x10'));var config=require(_0xa566('0x11'));var licenseUtil=require(_0xa566('0x12'));var db=require(_0xa566('0x13'))['db'];function respondWithStatusCode(_0x1769ae,_0x2e45f1){_0x2e45f1=_0x2e45f1||0xcc;return function(_0xef4134){if(_0xef4134){return _0x1769ae['sendStatus'](_0x2e45f1);}return _0x1769ae[_0xa566('0x14')](_0x2e45f1)[_0xa566('0x15')]();};}function respondWithResult(_0x1e1c9b,_0x16da33){_0x16da33=_0x16da33||0xc8;return function(_0xc00e0e){if(_0xc00e0e){return _0x1e1c9b['status'](_0x16da33)['json'](_0xc00e0e);}};}function respondWithFilteredResult(_0x32a3a6,_0x2534e2){return function(_0x21d7ee){if(_0x21d7ee){var _0x231130=typeof _0x2534e2['offset']===_0xa566('0x16')&&typeof _0x2534e2[_0xa566('0x17')]===_0xa566('0x16');var _0x375f07=_0x21d7ee['count'];var _0x1ffce6=_0x231130?0x0:_0x2534e2[_0xa566('0x18')];var _0x349efb=_0x231130?_0x21d7ee[_0xa566('0x19')]:_0x2534e2[_0xa566('0x18')]+_0x2534e2[_0xa566('0x17')];var _0x3b5420;if(_0x349efb>=_0x375f07){_0x349efb=_0x375f07;_0x3b5420=0xc8;}else{_0x3b5420=0xce;}_0x32a3a6['status'](_0x3b5420);return _0x32a3a6[_0xa566('0x1a')](_0xa566('0x1b'),_0x1ffce6+'-'+_0x349efb+'/'+_0x375f07)['json'](_0x21d7ee);}return null;};}function patchUpdates(_0x2038d3){return function(_0x4a3717){try{jsonpatch['apply'](_0x4a3717,_0x2038d3,!![]);}catch(_0x37ca97){return BPromise[_0xa566('0x1c')](_0x37ca97);}return _0x4a3717[_0xa566('0x1d')]();};}function saveUpdates(_0x3a8343,_0x880ae9){return function(_0x3a0dd1){if(_0x3a0dd1){return _0x3a0dd1['update'](_0x3a8343)['then'](function(_0x5a3325){return _0x5a3325;});}return null;};}function removeEntity(_0x4ffc03,_0x4d4086){return function(_0x8c8877){if(_0x8c8877){return _0x8c8877[_0xa566('0x1e')]()['then'](function(){_0x4ffc03[_0xa566('0x14')](0xcc)[_0xa566('0x15')]();});}};}function handleEntityNotFound(_0x40297b,_0x20ee28){return function(_0x3d1d7e){if(!_0x3d1d7e){_0x40297b['sendStatus'](0x194);}return _0x3d1d7e;};}function handleError(_0x39ed7b,_0x29f71c){_0x29f71c=_0x29f71c||0x1f4;return function(_0x34935d){logger[_0xa566('0x1f')](_0x34935d['stack']);if(_0x34935d[_0xa566('0x20')]){delete _0x34935d[_0xa566('0x20')];}_0x39ed7b[_0xa566('0x14')](_0x29f71c)[_0xa566('0x21')](_0x34935d);};}exports['index']=function(_0x12a661,_0x12e434){var _0x223539={},_0x236e0a={},_0x4a19b8={'count':0x0,'rows':[]};var _0x1a314e=_[_0xa566('0x22')](db[_0xa566('0x23')][_0xa566('0x24')],function(_0x2305a3){return{'name':_0x2305a3[_0xa566('0x25')],'type':_0x2305a3[_0xa566('0x26')][_0xa566('0x27')]};});_0x236e0a[_0xa566('0x28')]=_[_0xa566('0x22')](_0x1a314e,_0xa566('0x20'));_0x236e0a[_0xa566('0x29')]=_[_0xa566('0x2a')](_0x12a661[_0xa566('0x29')]);_0x236e0a[_0xa566('0x2b')]=_[_0xa566('0x2c')](_0x236e0a[_0xa566('0x28')],_0x236e0a[_0xa566('0x29')]);_0x223539[_0xa566('0x2d')]=_[_0xa566('0x2c')](_0x236e0a[_0xa566('0x28')],qs['fields'](_0x12a661['query'][_0xa566('0x2e')]));_0x223539['attributes']=_0x223539['attributes']['length']?_0x223539[_0xa566('0x2d')]:_0x236e0a[_0xa566('0x28')];if(!_0x12a661[_0xa566('0x29')]['hasOwnProperty'](_0xa566('0x2f'))){_0x223539['limit']=qs[_0xa566('0x17')](_0x12a661[_0xa566('0x29')][_0xa566('0x17')]);_0x223539[_0xa566('0x18')]=qs[_0xa566('0x18')](_0x12a661[_0xa566('0x29')][_0xa566('0x18')]);}_0x223539[_0xa566('0x30')]=qs['sort'](_0x12a661[_0xa566('0x29')]['sort']);_0x223539['where']=qs[_0xa566('0x2b')](_[_0xa566('0x31')](_0x12a661[_0xa566('0x29')],_0x236e0a['filters']),_0x1a314e);if(_0x12a661[_0xa566('0x29')]['filter']){_0x223539['where']=_[_0xa566('0x32')](_0x223539[_0xa566('0x33')],{'$or':_[_0xa566('0x22')](_0x1a314e,function(_0x5c0e89){if(_0x5c0e89[_0xa566('0x26')]!==_0xa566('0x34')){var _0xddbaa3={};_0xddbaa3[_0x5c0e89['name']]={'$like':'%'+_0x12a661[_0xa566('0x29')][_0xa566('0x35')]+'%'};return _0xddbaa3;}})});}_0x223539=_['merge']({},_0x223539,_0x12a661[_0xa566('0x36')]);var _0x50e766={'where':_0x223539['where']};return db['CmHopperHistory'][_0xa566('0x19')](_0x50e766)[_0xa566('0x37')](function(_0xcc157b){_0x4a19b8[_0xa566('0x19')]=_0xcc157b;if(_0x12a661['query'][_0xa566('0x38')]){_0x223539['include']=[{'all':!![]}];}return db[_0xa566('0x23')]['findAll'](_0x223539);})[_0xa566('0x37')](function(_0x10df7a){_0x4a19b8[_0xa566('0x39')]=_0x10df7a;return _0x4a19b8;})['then'](respondWithFilteredResult(_0x12e434,_0x223539))[_0xa566('0x3a')](handleError(_0x12e434,null));};exports[_0xa566('0x3b')]=function(_0x3d10d9,_0x26855e){var _0x2ee8a5={'raw':!![],'where':{'id':_0x3d10d9['params']['id']}},_0x3eb65b={};_0x3eb65b[_0xa566('0x28')]=_[_0xa566('0x2a')](db['CmHopperHistory']['rawAttributes']);_0x3eb65b[_0xa566('0x29')]=_[_0xa566('0x2a')](_0x3d10d9['query']);_0x3eb65b[_0xa566('0x2b')]=_[_0xa566('0x2c')](_0x3eb65b['model'],_0x3eb65b[_0xa566('0x29')]);_0x2ee8a5[_0xa566('0x2d')]=_[_0xa566('0x2c')](_0x3eb65b[_0xa566('0x28')],qs[_0xa566('0x2e')](_0x3d10d9[_0xa566('0x29')]['fields']));_0x2ee8a5[_0xa566('0x2d')]=_0x2ee8a5['attributes'][_0xa566('0x3c')]?_0x2ee8a5[_0xa566('0x2d')]:_0x3eb65b[_0xa566('0x28')];if(_0x3d10d9['query']['includeAll']){_0x2ee8a5['include']=[{'all':!![]}];}_0x2ee8a5=_[_0xa566('0x32')]({},_0x2ee8a5,_0x3d10d9[_0xa566('0x36')]);return db[_0xa566('0x23')][_0xa566('0x3d')](_0x2ee8a5)['then'](handleEntityNotFound(_0x26855e,null))[_0xa566('0x37')](respondWithResult(_0x26855e,null))[_0xa566('0x3a')](handleError(_0x26855e,null));};exports[_0xa566('0x3e')]=function(_0xdda13a,_0x29faf7){return db[_0xa566('0x23')]['create'](_0xdda13a[_0xa566('0x3f')],{})[_0xa566('0x37')](respondWithResult(_0x29faf7,0xc9))[_0xa566('0x3a')](handleError(_0x29faf7,null));};exports[_0xa566('0x40')]=function(_0x42ad62,_0x102fe9){return db[_0xa566('0x23')][_0xa566('0x40')]()['then'](respondWithResult(_0x102fe9,null))[_0xa566('0x3a')](handleError(_0x102fe9,null));};exports[_0xa566('0x41')]=function(_0x14c384,_0x4818d4){if(_0x14c384['body'][_0xa566('0x42')]){delete _0x14c384[_0xa566('0x3f')][_0xa566('0x42')];}return db['CmHopperHistory'][_0xa566('0x3d')]({'where':{'uniqueid':_0x14c384[_0xa566('0x43')]['id']}})[_0xa566('0x37')](handleEntityNotFound(_0x4818d4,null))[_0xa566('0x37')](saveUpdates(_0x14c384[_0xa566('0x3f')],null))[_0xa566('0x37')](respondWithResult(_0x4818d4,null))[_0xa566('0x3a')](handleError(_0x4818d4,null));};
\ No newline at end of file
+var _0x6663=['update','then','destroy','error','stack','name','send','index','map','CmHopperHistory','rawAttributes','fieldName','type','key','query','filters','model','intersection','fields','attributes','length','sort','where','pick','filter','VIRTUAL','options','includeAll','include','findAll','rows','catch','params','keys','find','create','body','describe','uniqueid','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','../../components/parsers/advancedSearch','../../config/logger','api','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','limit','undefined','count','Content-Range','json','apply','reject','save'];(function(_0x5302aa,_0x5d39a0){var _0x183a3a=function(_0x245d1d){while(--_0x245d1d){_0x5302aa['push'](_0x5302aa['shift']());}};_0x183a3a(++_0x5d39a0);}(_0x6663,0x1a3));var _0x3666=function(_0x9dfc10,_0x19c2d5){_0x9dfc10=_0x9dfc10-0x0;var _0x4f938a=_0x6663[_0x9dfc10];return _0x4f938a;};'use strict';var emlformat=require(_0x3666('0x0'));var rimraf=require(_0x3666('0x1'));var zipdir=require(_0x3666('0x2'));var jsonpatch=require(_0x3666('0x3'));var rp=require(_0x3666('0x4'));var moment=require(_0x3666('0x5'));var BPromise=require(_0x3666('0x6'));var Mustache=require(_0x3666('0x7'));var util=require(_0x3666('0x8'));var path=require(_0x3666('0x9'));var sox=require(_0x3666('0xa'));var csv=require(_0x3666('0xb'));var ejs=require(_0x3666('0xc'));var fs=require('fs');var fs_extra=require(_0x3666('0xd'));var _=require(_0x3666('0xe'));var squel=require(_0x3666('0xf'));var crypto=require('crypto');var jsforce=require(_0x3666('0x10'));var deskjs=require(_0x3666('0x11'));var toCsv=require(_0x3666('0xb'));var querystring=require(_0x3666('0x12'));var Papa=require(_0x3666('0x13'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x3666('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x3666('0x15'))(_0x3666('0x16'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x3666('0x17'));var db=require(_0x3666('0x18'))['db'];function respondWithStatusCode(_0x547d55,_0x51ef82){_0x51ef82=_0x51ef82||0xcc;return function(_0x67002e){if(_0x67002e){return _0x547d55[_0x3666('0x19')](_0x51ef82);}return _0x547d55[_0x3666('0x1a')](_0x51ef82)[_0x3666('0x1b')]();};}function respondWithResult(_0x20ede4,_0x2fbca6){_0x2fbca6=_0x2fbca6||0xc8;return function(_0x2114ee){if(_0x2114ee){return _0x20ede4[_0x3666('0x1a')](_0x2fbca6)['json'](_0x2114ee);}};}function respondWithFilteredResult(_0x415d1c,_0x146602){return function(_0x15f2d1){if(_0x15f2d1){var _0x16f0a6=typeof _0x146602[_0x3666('0x1c')]==='undefined'&&typeof _0x146602[_0x3666('0x1d')]===_0x3666('0x1e');var _0x138c76=_0x15f2d1['count'];var _0x2566e3=_0x16f0a6?0x0:_0x146602[_0x3666('0x1c')];var _0x3b2bb6=_0x16f0a6?_0x15f2d1[_0x3666('0x1f')]:_0x146602[_0x3666('0x1c')]+_0x146602[_0x3666('0x1d')];var _0x50ac28;if(_0x3b2bb6>=_0x138c76){_0x3b2bb6=_0x138c76;_0x50ac28=0xc8;}else{_0x50ac28=0xce;}_0x415d1c[_0x3666('0x1a')](_0x50ac28);return _0x415d1c['set'](_0x3666('0x20'),_0x2566e3+'-'+_0x3b2bb6+'/'+_0x138c76)[_0x3666('0x21')](_0x15f2d1);}return null;};}function patchUpdates(_0x22e47f){return function(_0x4f2d11){try{jsonpatch[_0x3666('0x22')](_0x4f2d11,_0x22e47f,!![]);}catch(_0x52e35d){return BPromise[_0x3666('0x23')](_0x52e35d);}return _0x4f2d11[_0x3666('0x24')]();};}function saveUpdates(_0x31e4c3,_0x5a027d){return function(_0x23a507){if(_0x23a507){return _0x23a507[_0x3666('0x25')](_0x31e4c3)[_0x3666('0x26')](function(_0x1646eb){return _0x1646eb;});}return null;};}function removeEntity(_0x3fa4ea,_0xdb16fc){return function(_0x348b1c){if(_0x348b1c){return _0x348b1c[_0x3666('0x27')]()[_0x3666('0x26')](function(){_0x3fa4ea[_0x3666('0x1a')](0xcc)[_0x3666('0x1b')]();});}};}function handleEntityNotFound(_0xee3e3c,_0x28f3e4){return function(_0x4d3cac){if(!_0x4d3cac){_0xee3e3c[_0x3666('0x19')](0x194);}return _0x4d3cac;};}function handleError(_0x56da3e,_0xd8f3f2){_0xd8f3f2=_0xd8f3f2||0x1f4;return function(_0x37022b){logger[_0x3666('0x28')](_0x37022b[_0x3666('0x29')]);if(_0x37022b[_0x3666('0x2a')]){delete _0x37022b[_0x3666('0x2a')];}_0x56da3e['status'](_0xd8f3f2)[_0x3666('0x2b')](_0x37022b);};}exports[_0x3666('0x2c')]=function(_0x42a593,_0x492861){var _0x561eea={},_0x55150f={},_0x4454a2={'count':0x0,'rows':[]};var _0x33e075=_[_0x3666('0x2d')](db[_0x3666('0x2e')][_0x3666('0x2f')],function(_0xe94104){return{'name':_0xe94104[_0x3666('0x30')],'type':_0xe94104[_0x3666('0x31')][_0x3666('0x32')]};});_0x55150f['model']=_[_0x3666('0x2d')](_0x33e075,_0x3666('0x2a'));_0x55150f['query']=_['keys'](_0x42a593[_0x3666('0x33')]);_0x55150f[_0x3666('0x34')]=_['intersection'](_0x55150f[_0x3666('0x35')],_0x55150f[_0x3666('0x33')]);_0x561eea['attributes']=_[_0x3666('0x36')](_0x55150f[_0x3666('0x35')],qs[_0x3666('0x37')](_0x42a593[_0x3666('0x33')][_0x3666('0x37')]));_0x561eea[_0x3666('0x38')]=_0x561eea[_0x3666('0x38')][_0x3666('0x39')]?_0x561eea[_0x3666('0x38')]:_0x55150f['model'];if(!_0x42a593[_0x3666('0x33')]['hasOwnProperty']('nolimit')){_0x561eea['limit']=qs[_0x3666('0x1d')](_0x42a593[_0x3666('0x33')]['limit']);_0x561eea[_0x3666('0x1c')]=qs[_0x3666('0x1c')](_0x42a593['query']['offset']);}_0x561eea['order']=qs[_0x3666('0x3a')](_0x42a593[_0x3666('0x33')][_0x3666('0x3a')]);_0x561eea[_0x3666('0x3b')]=qs[_0x3666('0x34')](_[_0x3666('0x3c')](_0x42a593[_0x3666('0x33')],_0x55150f[_0x3666('0x34')]),_0x33e075);if(_0x42a593[_0x3666('0x33')][_0x3666('0x3d')]){_0x561eea[_0x3666('0x3b')]=_['merge'](_0x561eea['where'],{'$or':_['map'](_0x33e075,function(_0x5a321b){if(_0x5a321b[_0x3666('0x31')]!==_0x3666('0x3e')){var _0x3ff743={};_0x3ff743[_0x5a321b[_0x3666('0x2a')]]={'$like':'%'+_0x42a593[_0x3666('0x33')]['filter']+'%'};return _0x3ff743;}})});}_0x561eea=_['merge']({},_0x561eea,_0x42a593[_0x3666('0x3f')]);var _0x5750ce={'where':_0x561eea[_0x3666('0x3b')]};return db[_0x3666('0x2e')][_0x3666('0x1f')](_0x5750ce)[_0x3666('0x26')](function(_0x1f951e){_0x4454a2['count']=_0x1f951e;if(_0x42a593[_0x3666('0x33')][_0x3666('0x40')]){_0x561eea[_0x3666('0x41')]=[{'all':!![]}];}return db[_0x3666('0x2e')][_0x3666('0x42')](_0x561eea);})['then'](function(_0x22fad0){_0x4454a2[_0x3666('0x43')]=_0x22fad0;return _0x4454a2;})[_0x3666('0x26')](respondWithFilteredResult(_0x492861,_0x561eea))[_0x3666('0x44')](handleError(_0x492861,null));};exports['show']=function(_0x2f2485,_0x212e55){var _0x538328={'raw':!![],'where':{'id':_0x2f2485[_0x3666('0x45')]['id']}},_0x27f653={};_0x27f653[_0x3666('0x35')]=_[_0x3666('0x46')](db[_0x3666('0x2e')][_0x3666('0x2f')]);_0x27f653[_0x3666('0x33')]=_[_0x3666('0x46')](_0x2f2485[_0x3666('0x33')]);_0x27f653[_0x3666('0x34')]=_[_0x3666('0x36')](_0x27f653[_0x3666('0x35')],_0x27f653['query']);_0x538328[_0x3666('0x38')]=_['intersection'](_0x27f653[_0x3666('0x35')],qs[_0x3666('0x37')](_0x2f2485[_0x3666('0x33')][_0x3666('0x37')]));_0x538328[_0x3666('0x38')]=_0x538328[_0x3666('0x38')][_0x3666('0x39')]?_0x538328[_0x3666('0x38')]:_0x27f653['model'];if(_0x2f2485[_0x3666('0x33')][_0x3666('0x40')]){_0x538328[_0x3666('0x41')]=[{'all':!![]}];}_0x538328=_['merge']({},_0x538328,_0x2f2485[_0x3666('0x3f')]);return db[_0x3666('0x2e')][_0x3666('0x47')](_0x538328)['then'](handleEntityNotFound(_0x212e55,null))['then'](respondWithResult(_0x212e55,null))[_0x3666('0x44')](handleError(_0x212e55,null));};exports['create']=function(_0x2c5bc6,_0x167e1e){return db[_0x3666('0x2e')][_0x3666('0x48')](_0x2c5bc6[_0x3666('0x49')],{})['then'](respondWithResult(_0x167e1e,0xc9))[_0x3666('0x44')](handleError(_0x167e1e,null));};exports[_0x3666('0x4a')]=function(_0x344f61,_0x552542){return db[_0x3666('0x2e')][_0x3666('0x4a')]()[_0x3666('0x26')](respondWithResult(_0x552542,null))[_0x3666('0x44')](handleError(_0x552542,null));};exports[_0x3666('0x25')]=function(_0x1f9990,_0x3256b8){if(_0x1f9990[_0x3666('0x49')][_0x3666('0x4b')]){delete _0x1f9990['body'][_0x3666('0x4b')];}return db['CmHopperHistory'][_0x3666('0x47')]({'where':{'uniqueid':_0x1f9990[_0x3666('0x45')]['id']}})[_0x3666('0x26')](handleEntityNotFound(_0x3256b8,null))[_0x3666('0x26')](saveUpdates(_0x1f9990[_0x3666('0x49')],null))[_0x3666('0x26')](respondWithResult(_0x3256b8,null))[_0x3666('0x44')](handleError(_0x3256b8,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1f81=['cm_hopper_history','endtime','uniqueid','lodash','util','api','moment','request-promise','path','rimraf','../../config/environment','./cmHopperHistory.attributes','exports','CmHopperHistory'];(function(_0x1261f8,_0x162674){var _0x3a4de9=function(_0x5bbb54){while(--_0x5bbb54){_0x1261f8['push'](_0x1261f8['shift']());}};_0x3a4de9(++_0x162674);}(_0x1f81,0xab));var _0x11f8=function(_0x5e7514,_0x30c2e1){_0x5e7514=_0x5e7514-0x0;var _0x12f472=_0x1f81[_0x5e7514];return _0x12f472;};'use strict';var _=require(_0x11f8('0x0'));var util=require(_0x11f8('0x1'));var logger=require('../../config/logger')(_0x11f8('0x2'));var moment=require(_0x11f8('0x3'));var BPromise=require('bluebird');var rp=require(_0x11f8('0x4'));var fs=require('fs');var path=require(_0x11f8('0x5'));var rimraf=require(_0x11f8('0x6'));var config=require(_0x11f8('0x7'));var attributes=require(_0x11f8('0x8'));module[_0x11f8('0x9')]=function(_0x1a16e9,_0xe63071){return _0x1a16e9['define'](_0x11f8('0xa'),attributes,{'tableName':_0x11f8('0xb'),'paranoid':![],'indexes':[{'name':_0x11f8('0xc'),'fields':[_0x11f8('0xc')]},{'name':_0x11f8('0xd'),'fields':[_0x11f8('0xd')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x6333=['uniqueid','api','bluebird','request-promise','rimraf','./cmHopperHistory.attributes','exports','define','CmHopperHistory','cm_hopper_history'];(function(_0xb247e3,_0x1319d1){var _0x57fb7b=function(_0x23d2bb){while(--_0x23d2bb){_0xb247e3['push'](_0xb247e3['shift']());}};_0x57fb7b(++_0x1319d1);}(_0x6333,0x83));var _0x3633=function(_0x4b8031,_0x3f17ea){_0x4b8031=_0x4b8031-0x0;var _0xa8d3f4=_0x6333[_0x4b8031];return _0xa8d3f4;};'use strict';var _=require('lodash');var util=require('util');var logger=require('../../config/logger')(_0x3633('0x0'));var moment=require('moment');var BPromise=require(_0x3633('0x1'));var rp=require(_0x3633('0x2'));var fs=require('fs');var path=require('path');var rimraf=require(_0x3633('0x3'));var config=require('../../config/environment');var attributes=require(_0x3633('0x4'));module[_0x3633('0x5')]=function(_0x566b21,_0x547e6d){return _0x566b21[_0x3633('0x6')](_0x3633('0x7'),attributes,{'tableName':_0x3633('0x8'),'paranoid':![],'indexes':[{'name':'endtime','fields':['endtime']},{'name':_0x3633('0x9'),'fields':['uniqueid']}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd845=['outboundRejectCallsDay','`state`\x20=\x2016,\x201,\x20null','outboundAnswerAgiCallsDay','`state`\x20=\x2020,\x201,\x20null','`state`\x20=\x2022\x20or\x20`state`\x20=\x2023,\x201,\x20null','outboundReCallsDay','GetCampaignHopperHistory','ivrTotalCallsDays','ivrAnswerCallsDay','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','request','then','info','CmHopperHistory,\x20%s,\x20%s','CmHopperHistory,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','result','catch','CreateCmHopperHistory','CmHopperHistory','create','body','options','debug','AvgHandleTime','findAll','raw','where','COUNT','sequelize','col','`state`\x20=\x204,\x201,\x20null','predictiveIntervalAnsweredCalls','literal','predictiveIntervalDroppedCallsTimeout','`state`\x20=\x2011,\x201,\x20null','predictiveIntervalDroppedCallsCallersExit','AVG','`state`\x20=\x204,\x20`holdtime`,\x20null','predictiveIntervalAvgHoldtime','`state`\x20=\x204,\x20`talktime`,\x20null','GetVoiceQueueHopperHistory','campaign','name','`state`\x20=\x200,\x201,\x20null','outboundNoSuchCallsDay','`state`\x20=\x203,\x201,\x20null','outboundNoAnswerCallsDay','outboundAnswerCallsDay','`state`\x20=\x205,\x201,\x20null','outboundBusyCallsDay','outboundCongestionCallsDay','`state`\x20=\x2010\x20,\x201,\x20null','outboundDropCallsDayCallersExit','`state`\x20=\x2012,\x201,\x20null','outboundUnknownCallsDay','`state`\x20=\x2013,\x201,\x20null','outboundBlacklistCallsDay','`state`\x20=\x2014,\x201,\x20null','outboundOriginateFailureCallsDay','`state`\x20=\x2018,\x201,\x20null'];(function(_0x40d5cc,_0xf9d2c7){var _0x6950af=function(_0x295221){while(--_0x295221){_0x40d5cc['push'](_0x40d5cc['shift']());}};_0x6950af(++_0xf9d2c7);}(_0xd845,0x135));var _0x5d84=function(_0x501510,_0x61caa9){_0x501510=_0x501510-0x0;var _0x1e6ee5=_0xd845[_0x501510];return _0x1e6ee5;};'use strict';var _=require(_0x5d84('0x0'));var util=require(_0x5d84('0x1'));var moment=require(_0x5d84('0x2'));var BPromise=require(_0x5d84('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x5d84('0x4'));var db=require(_0x5d84('0x5'))['db'];var utils=require(_0x5d84('0x6'));var logger=require(_0x5d84('0x7'))('rpc');var config=require(_0x5d84('0x8'));var jayson=require(_0x5d84('0x9'));var client=jayson[_0x5d84('0xa')][_0x5d84('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x1712cb,_0x3f0541,_0x537d0e){return new BPromise(function(_0x135c45,_0x493231){return client[_0x5d84('0xc')](_0x1712cb,_0x537d0e)[_0x5d84('0xd')](function(_0x579df0){logger[_0x5d84('0xe')](_0x5d84('0xf'),_0x3f0541,'request\x20sent');logger['debug'](_0x5d84('0x10'),_0x3f0541,_0x5d84('0x11'),JSON[_0x5d84('0x12')](_0x579df0));if(_0x579df0[_0x5d84('0x13')]){if(_0x579df0[_0x5d84('0x13')]['code']===0x1f4){logger[_0x5d84('0x13')](_0x5d84('0xf'),_0x3f0541,_0x579df0[_0x5d84('0x13')][_0x5d84('0x14')]);return _0x493231(_0x579df0[_0x5d84('0x13')][_0x5d84('0x14')]);}logger['error'](_0x5d84('0xf'),_0x3f0541,_0x579df0['error'][_0x5d84('0x14')]);return _0x135c45(_0x579df0[_0x5d84('0x13')][_0x5d84('0x14')]);}else{logger['info'](_0x5d84('0xf'),_0x3f0541,_0x5d84('0x11'));_0x135c45(_0x579df0[_0x5d84('0x15')][_0x5d84('0x14')]);}})[_0x5d84('0x16')](function(_0x4c4dc6){logger[_0x5d84('0x13')]('CmHopperHistory,\x20%s,\x20%s',_0x3f0541,_0x4c4dc6);_0x493231(_0x4c4dc6);});});}exports[_0x5d84('0x17')]=function(_0x59a6be){var _0x3b3f63=this;return new Promise(function(_0x2494cd,_0x2ba609){return db[_0x5d84('0x18')][_0x5d84('0x19')](_0x59a6be[_0x5d84('0x1a')],{'raw':_0x59a6be[_0x5d84('0x1b')]?_0x59a6be['options']['raw']===undefined?!![]:![]:!![]})['then'](function(_0x254ac6){logger[_0x5d84('0xe')](_0x5d84('0x17'),_0x59a6be);logger[_0x5d84('0x1c')](_0x5d84('0x17'),_0x59a6be,JSON[_0x5d84('0x12')](_0x254ac6));_0x2494cd(_0x254ac6);})[_0x5d84('0x16')](function(_0x554d80){logger['error']('CreateCmHopperHistory',_0x554d80['message'],_0x59a6be);_0x2ba609(_0x3b3f63[_0x5d84('0x13')](0x1f4,_0x554d80['message']));});});};exports[_0x5d84('0x1d')]=function(_0x37a075){var _0x2b8054=this;return new Promise(function(_0x3a8d96,_0x1f9a16){return db['CmHopperHistory'][_0x5d84('0x1e')]({'raw':_0x37a075[_0x5d84('0x1b')]?_0x37a075['options'][_0x5d84('0x1f')]===undefined?!![]:![]:!![],'where':_0x37a075[_0x5d84('0x1b')]?_0x37a075['options'][_0x5d84('0x20')]||null:null,'attributes':[[db['sequelize']['fn'](_0x5d84('0x21'),db[_0x5d84('0x22')][_0x5d84('0x23')]('id')),'predictiveIntervalTotalCalls'],[db[_0x5d84('0x22')]['fn'](_0x5d84('0x21'),db[_0x5d84('0x22')]['fn']('IF',db[_0x5d84('0x22')]['literal'](_0x5d84('0x24')))),_0x5d84('0x25')],[db[_0x5d84('0x22')]['fn']('COUNT',db[_0x5d84('0x22')]['fn']('IF',db['sequelize'][_0x5d84('0x26')]('`state`\x20=\x2010,\x201,\x20null'))),_0x5d84('0x27')],[db[_0x5d84('0x22')]['fn'](_0x5d84('0x21'),db[_0x5d84('0x22')]['fn']('IF',db['sequelize'][_0x5d84('0x26')](_0x5d84('0x28')))),_0x5d84('0x29')],[db[_0x5d84('0x22')]['fn'](_0x5d84('0x2a'),db[_0x5d84('0x22')]['fn']('IF',db[_0x5d84('0x22')][_0x5d84('0x26')](_0x5d84('0x2b')))),_0x5d84('0x2c')],[db[_0x5d84('0x22')]['fn'](_0x5d84('0x2a'),db[_0x5d84('0x22')]['fn']('IF',db['sequelize'][_0x5d84('0x26')](_0x5d84('0x2d')))),'predictiveIntervalAvgTalktime']]})[_0x5d84('0xd')](function(_0x53ac22){logger[_0x5d84('0xe')](_0x5d84('0x1d'),_0x37a075);logger[_0x5d84('0x1c')](_0x5d84('0x1d'),_0x37a075,JSON[_0x5d84('0x12')](_0x53ac22));_0x3a8d96(_0x53ac22);})[_0x5d84('0x16')](function(_0x14eacc){logger[_0x5d84('0x13')](_0x5d84('0x1d'),_0x14eacc[_0x5d84('0x14')],_0x37a075);_0x1f9a16(_0x2b8054['error'](0x1f4,_0x14eacc[_0x5d84('0x14')]));});});};exports[_0x5d84('0x2e')]=function(_0x329f08){var _0x275fe9=this;return new Promise(function(_0x24e7d9,_0x1d9b7e){return db[_0x5d84('0x18')]['findAll']({'raw':_0x329f08['options']?_0x329f08[_0x5d84('0x1b')][_0x5d84('0x1f')]===undefined?!![]:![]:!![],'where':_0x329f08[_0x5d84('0x1b')]?_0x329f08[_0x5d84('0x1b')][_0x5d84('0x20')]||null:null,'attributes':[[_0x5d84('0x2f'),_0x5d84('0x30')],[db['sequelize']['fn']('COUNT',db[_0x5d84('0x22')]['fn']('IF',db['sequelize'][_0x5d84('0x26')](_0x5d84('0x31')))),_0x5d84('0x32')],[db[_0x5d84('0x22')]['fn']('COUNT',db[_0x5d84('0x22')]['fn']('IF',db[_0x5d84('0x22')]['literal'](_0x5d84('0x33')))),_0x5d84('0x34')],[db[_0x5d84('0x22')]['fn'](_0x5d84('0x21'),db[_0x5d84('0x22')]['fn']('IF',db[_0x5d84('0x22')][_0x5d84('0x26')](_0x5d84('0x24')))),_0x5d84('0x35')],[db[_0x5d84('0x22')]['fn'](_0x5d84('0x21'),db[_0x5d84('0x22')]['fn']('IF',db[_0x5d84('0x22')][_0x5d84('0x26')](_0x5d84('0x36')))),_0x5d84('0x37')],[db[_0x5d84('0x22')]['fn'](_0x5d84('0x21'),db[_0x5d84('0x22')]['fn']('IF',db[_0x5d84('0x22')]['literal']('`state`\x20=\x208,\x201,\x20null'))),_0x5d84('0x38')],[db['sequelize']['fn']('COUNT',db[_0x5d84('0x22')]['fn']('IF',db['sequelize'][_0x5d84('0x26')](_0x5d84('0x39')))),'outboundDropCallsDayTimeout'],[db[_0x5d84('0x22')]['fn'](_0x5d84('0x21'),db[_0x5d84('0x22')]['fn']('IF',db['sequelize'][_0x5d84('0x26')]('`state`\x20=\x2011\x20,\x201,\x20null'))),_0x5d84('0x3a')],[db[_0x5d84('0x22')]['fn'](_0x5d84('0x21'),db['sequelize']['fn']('IF',db[_0x5d84('0x22')][_0x5d84('0x26')](_0x5d84('0x3b')))),_0x5d84('0x3c')],[db[_0x5d84('0x22')]['fn']('COUNT',db[_0x5d84('0x22')]['fn']('IF',db[_0x5d84('0x22')][_0x5d84('0x26')](_0x5d84('0x3d')))),_0x5d84('0x3e')],[db[_0x5d84('0x22')]['fn'](_0x5d84('0x21'),db['sequelize']['fn']('IF',db[_0x5d84('0x22')][_0x5d84('0x26')](_0x5d84('0x3f')))),_0x5d84('0x40')],[db[_0x5d84('0x22')]['fn']('COUNT',db['sequelize']['fn']('IF',db[_0x5d84('0x22')][_0x5d84('0x26')](_0x5d84('0x41')))),_0x5d84('0x42')],[db[_0x5d84('0x22')]['fn'](_0x5d84('0x21'),db['sequelize']['fn']('IF',db[_0x5d84('0x22')][_0x5d84('0x26')](_0x5d84('0x43')))),_0x5d84('0x44')],[db['sequelize']['fn']('COUNT',db[_0x5d84('0x22')]['fn']('IF',db[_0x5d84('0x22')][_0x5d84('0x26')](_0x5d84('0x45')))),_0x5d84('0x42')],[db[_0x5d84('0x22')]['fn'](_0x5d84('0x21'),db[_0x5d84('0x22')]['fn']('IF',db[_0x5d84('0x22')][_0x5d84('0x26')](_0x5d84('0x46')))),_0x5d84('0x47')]],'group':[_0x5d84('0x2f')]})[_0x5d84('0xd')](function(_0x3c99fc){logger[_0x5d84('0xe')]('GetVoiceQueueHopperHistory',_0x329f08);logger['debug'](_0x5d84('0x2e'),_0x329f08,JSON[_0x5d84('0x12')](_0x3c99fc));_0x24e7d9(_0x3c99fc);})[_0x5d84('0x16')](function(_0x4c8332){logger[_0x5d84('0x13')]('GetVoiceQueueHopperHistory',_0x4c8332[_0x5d84('0x14')],_0x329f08);_0x1d9b7e(_0x275fe9[_0x5d84('0x13')](0x1f4,_0x4c8332[_0x5d84('0x14')]));});});};exports[_0x5d84('0x48')]=function(_0x3a0a54){var _0x5cc313=this;return new Promise(function(_0x46c1cb,_0x1a7a87){return db[_0x5d84('0x18')][_0x5d84('0x1e')]({'raw':_0x3a0a54[_0x5d84('0x1b')]?_0x3a0a54['options'][_0x5d84('0x1f')]===undefined?!![]:![]:!![],'where':_0x3a0a54[_0x5d84('0x1b')]?_0x3a0a54['options']['where']||null:null,'attributes':[[_0x5d84('0x2f'),_0x5d84('0x30')],[db[_0x5d84('0x22')]['fn']('COUNT',db[_0x5d84('0x22')]['col']('id')),_0x5d84('0x49')],[db[_0x5d84('0x22')]['fn']('COUNT',db[_0x5d84('0x22')]['fn']('IF',db['sequelize'][_0x5d84('0x26')]('`state`\x20=\x204,\x201,\x20null'))),_0x5d84('0x4a')]],'group':[_0x5d84('0x2f')]})[_0x5d84('0xd')](function(_0x17e270){logger['info'](_0x5d84('0x48'),_0x3a0a54);logger[_0x5d84('0x1c')](_0x5d84('0x48'),_0x3a0a54,JSON[_0x5d84('0x12')](_0x17e270));_0x46c1cb(_0x17e270);})[_0x5d84('0x16')](function(_0x4de607){logger[_0x5d84('0x13')](_0x5d84('0x48'),_0x4de607[_0x5d84('0x14')],_0x3a0a54);_0x1a7a87(_0x5cc313[_0x5d84('0x13')](0x1f4,_0x4de607[_0x5d84('0x14')]));});});};
\ No newline at end of file
+var _0x9584=['outboundOriginateFailureCallsDay','outboundRejectCallsDay','`state`\x20=\x2016,\x201,\x20null','`state`\x20=\x2020,\x201,\x20null','`state`\x20=\x2022\x20or\x20`state`\x20=\x2023,\x201,\x20null','outboundReCallsDay','GetCampaignHopperHistory','ivrTotalCallsDays','ivrAnswerCallsDay','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','CmHopperHistory,\x20%s,\x20%s','request\x20sent','debug','CmHopperHistory,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','CreateCmHopperHistory','body','options','raw','AvgHandleTime','CmHopperHistory','findAll','where','sequelize','COUNT','col','predictiveIntervalTotalCalls','literal','`state`\x20=\x204,\x201,\x20null','predictiveIntervalAnsweredCalls','`state`\x20=\x2010,\x201,\x20null','predictiveIntervalDroppedCallsTimeout','`state`\x20=\x2011,\x201,\x20null','predictiveIntervalDroppedCallsCallersExit','AVG','predictiveIntervalAvgHoldtime','`state`\x20=\x204,\x20`talktime`,\x20null','predictiveIntervalAvgTalktime','catch','GetVoiceQueueHopperHistory','campaign','`state`\x20=\x200,\x201,\x20null','outboundNoSuchCallsDay','outboundAnswerCallsDay','`state`\x20=\x208,\x201,\x20null','outboundCongestionCallsDay','`state`\x20=\x2010\x20,\x201,\x20null','outboundDropCallsDayTimeout','`state`\x20=\x2011\x20,\x201,\x20null','outboundDropCallsDayCallersExit','`state`\x20=\x2012,\x201,\x20null','outboundUnknownCallsDay','`state`\x20=\x2013,\x201,\x20null','`state`\x20=\x2014,\x201,\x20null'];(function(_0xbb750f,_0x541af3){var _0x470fa7=function(_0x400718){while(--_0x400718){_0xbb750f['push'](_0xbb750f['shift']());}};_0x470fa7(++_0x541af3);}(_0x9584,0x1b9));var _0x4958=function(_0x420562,_0x450486){_0x420562=_0x420562-0x0;var _0x15be52=_0x9584[_0x420562];return _0x15be52;};'use strict';var _=require(_0x4958('0x0'));var util=require(_0x4958('0x1'));var moment=require(_0x4958('0x2'));var BPromise=require('bluebird');var rs=require(_0x4958('0x3'));var fs=require('fs');var Redis=require(_0x4958('0x4'));var db=require(_0x4958('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0x4958('0x6'))(_0x4958('0x7'));var config=require(_0x4958('0x8'));var jayson=require(_0x4958('0x9'));var client=jayson[_0x4958('0xa')][_0x4958('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x527644,_0x1dfabd,_0x152103){return new BPromise(function(_0x27c0ff,_0x276ec8){return client[_0x4958('0xc')](_0x527644,_0x152103)[_0x4958('0xd')](function(_0xf399d6){logger[_0x4958('0xe')](_0x4958('0xf'),_0x1dfabd,_0x4958('0x10'));logger[_0x4958('0x11')](_0x4958('0x12'),_0x1dfabd,'request\x20sent',JSON[_0x4958('0x13')](_0xf399d6));if(_0xf399d6[_0x4958('0x14')]){if(_0xf399d6['error'][_0x4958('0x15')]===0x1f4){logger[_0x4958('0x14')](_0x4958('0xf'),_0x1dfabd,_0xf399d6[_0x4958('0x14')][_0x4958('0x16')]);return _0x276ec8(_0xf399d6[_0x4958('0x14')][_0x4958('0x16')]);}logger[_0x4958('0x14')](_0x4958('0xf'),_0x1dfabd,_0xf399d6[_0x4958('0x14')][_0x4958('0x16')]);return _0x27c0ff(_0xf399d6[_0x4958('0x14')][_0x4958('0x16')]);}else{logger['info']('CmHopperHistory,\x20%s,\x20%s',_0x1dfabd,_0x4958('0x10'));_0x27c0ff(_0xf399d6[_0x4958('0x17')]['message']);}})['catch'](function(_0x442552){logger[_0x4958('0x14')]('CmHopperHistory,\x20%s,\x20%s',_0x1dfabd,_0x442552);_0x276ec8(_0x442552);});});}exports[_0x4958('0x18')]=function(_0x541eb2){var _0x1426b8=this;return new Promise(function(_0x416e96,_0x24be4c){return db['CmHopperHistory']['create'](_0x541eb2[_0x4958('0x19')],{'raw':_0x541eb2[_0x4958('0x1a')]?_0x541eb2['options'][_0x4958('0x1b')]===undefined?!![]:![]:!![]})['then'](function(_0x258c09){logger[_0x4958('0xe')]('CreateCmHopperHistory',_0x541eb2);logger[_0x4958('0x11')](_0x4958('0x18'),_0x541eb2,JSON[_0x4958('0x13')](_0x258c09));_0x416e96(_0x258c09);})['catch'](function(_0xad7345){logger['error'](_0x4958('0x18'),_0xad7345[_0x4958('0x16')],_0x541eb2);_0x24be4c(_0x1426b8[_0x4958('0x14')](0x1f4,_0xad7345['message']));});});};exports[_0x4958('0x1c')]=function(_0x1356a1){var _0x48c9ac=this;return new Promise(function(_0xced4ea,_0x5e7df8){return db[_0x4958('0x1d')][_0x4958('0x1e')]({'raw':_0x1356a1[_0x4958('0x1a')]?_0x1356a1['options']['raw']===undefined?!![]:![]:!![],'where':_0x1356a1['options']?_0x1356a1[_0x4958('0x1a')][_0x4958('0x1f')]||null:null,'attributes':[[db[_0x4958('0x20')]['fn'](_0x4958('0x21'),db[_0x4958('0x20')][_0x4958('0x22')]('id')),_0x4958('0x23')],[db[_0x4958('0x20')]['fn'](_0x4958('0x21'),db[_0x4958('0x20')]['fn']('IF',db['sequelize'][_0x4958('0x24')](_0x4958('0x25')))),_0x4958('0x26')],[db[_0x4958('0x20')]['fn'](_0x4958('0x21'),db[_0x4958('0x20')]['fn']('IF',db['sequelize'][_0x4958('0x24')](_0x4958('0x27')))),_0x4958('0x28')],[db[_0x4958('0x20')]['fn']('COUNT',db[_0x4958('0x20')]['fn']('IF',db[_0x4958('0x20')]['literal'](_0x4958('0x29')))),_0x4958('0x2a')],[db[_0x4958('0x20')]['fn'](_0x4958('0x2b'),db[_0x4958('0x20')]['fn']('IF',db[_0x4958('0x20')]['literal']('`state`\x20=\x204,\x20`holdtime`,\x20null'))),_0x4958('0x2c')],[db['sequelize']['fn'](_0x4958('0x2b'),db[_0x4958('0x20')]['fn']('IF',db[_0x4958('0x20')][_0x4958('0x24')](_0x4958('0x2d')))),_0x4958('0x2e')]]})[_0x4958('0xd')](function(_0xc4b81f){logger[_0x4958('0xe')](_0x4958('0x1c'),_0x1356a1);logger[_0x4958('0x11')]('AvgHandleTime',_0x1356a1,JSON[_0x4958('0x13')](_0xc4b81f));_0xced4ea(_0xc4b81f);})[_0x4958('0x2f')](function(_0x88ca0b){logger[_0x4958('0x14')](_0x4958('0x1c'),_0x88ca0b[_0x4958('0x16')],_0x1356a1);_0x5e7df8(_0x48c9ac[_0x4958('0x14')](0x1f4,_0x88ca0b[_0x4958('0x16')]));});});};exports[_0x4958('0x30')]=function(_0x512a2a){var _0x27527c=this;return new Promise(function(_0x5b3a99,_0x37d531){return db[_0x4958('0x1d')][_0x4958('0x1e')]({'raw':_0x512a2a[_0x4958('0x1a')]?_0x512a2a[_0x4958('0x1a')][_0x4958('0x1b')]===undefined?!![]:![]:!![],'where':_0x512a2a['options']?_0x512a2a[_0x4958('0x1a')][_0x4958('0x1f')]||null:null,'attributes':[[_0x4958('0x31'),'name'],[db[_0x4958('0x20')]['fn'](_0x4958('0x21'),db[_0x4958('0x20')]['fn']('IF',db[_0x4958('0x20')][_0x4958('0x24')](_0x4958('0x32')))),_0x4958('0x33')],[db[_0x4958('0x20')]['fn'](_0x4958('0x21'),db[_0x4958('0x20')]['fn']('IF',db[_0x4958('0x20')][_0x4958('0x24')]('`state`\x20=\x203,\x201,\x20null'))),'outboundNoAnswerCallsDay'],[db[_0x4958('0x20')]['fn'](_0x4958('0x21'),db[_0x4958('0x20')]['fn']('IF',db[_0x4958('0x20')][_0x4958('0x24')](_0x4958('0x25')))),_0x4958('0x34')],[db[_0x4958('0x20')]['fn'](_0x4958('0x21'),db[_0x4958('0x20')]['fn']('IF',db['sequelize'][_0x4958('0x24')]('`state`\x20=\x205,\x201,\x20null'))),'outboundBusyCallsDay'],[db[_0x4958('0x20')]['fn'](_0x4958('0x21'),db[_0x4958('0x20')]['fn']('IF',db[_0x4958('0x20')]['literal'](_0x4958('0x35')))),_0x4958('0x36')],[db[_0x4958('0x20')]['fn']('COUNT',db[_0x4958('0x20')]['fn']('IF',db[_0x4958('0x20')][_0x4958('0x24')](_0x4958('0x37')))),_0x4958('0x38')],[db[_0x4958('0x20')]['fn'](_0x4958('0x21'),db[_0x4958('0x20')]['fn']('IF',db[_0x4958('0x20')][_0x4958('0x24')](_0x4958('0x39')))),_0x4958('0x3a')],[db[_0x4958('0x20')]['fn'](_0x4958('0x21'),db[_0x4958('0x20')]['fn']('IF',db[_0x4958('0x20')][_0x4958('0x24')](_0x4958('0x3b')))),_0x4958('0x3c')],[db['sequelize']['fn'](_0x4958('0x21'),db[_0x4958('0x20')]['fn']('IF',db[_0x4958('0x20')][_0x4958('0x24')](_0x4958('0x3d')))),'outboundBlacklistCallsDay'],[db[_0x4958('0x20')]['fn'](_0x4958('0x21'),db['sequelize']['fn']('IF',db[_0x4958('0x20')]['literal'](_0x4958('0x3e')))),_0x4958('0x3f')],[db['sequelize']['fn'](_0x4958('0x21'),db[_0x4958('0x20')]['fn']('IF',db['sequelize'][_0x4958('0x24')]('`state`\x20=\x2018,\x201,\x20null'))),_0x4958('0x40')],[db[_0x4958('0x20')]['fn'](_0x4958('0x21'),db[_0x4958('0x20')]['fn']('IF',db[_0x4958('0x20')]['literal'](_0x4958('0x41')))),'outboundAnswerAgiCallsDay'],[db['sequelize']['fn']('COUNT',db['sequelize']['fn']('IF',db['sequelize'][_0x4958('0x24')](_0x4958('0x42')))),_0x4958('0x40')],[db[_0x4958('0x20')]['fn'](_0x4958('0x21'),db['sequelize']['fn']('IF',db[_0x4958('0x20')][_0x4958('0x24')](_0x4958('0x43')))),_0x4958('0x44')]],'group':[_0x4958('0x31')]})[_0x4958('0xd')](function(_0x584a19){logger[_0x4958('0xe')](_0x4958('0x30'),_0x512a2a);logger[_0x4958('0x11')]('GetVoiceQueueHopperHistory',_0x512a2a,JSON[_0x4958('0x13')](_0x584a19));_0x5b3a99(_0x584a19);})[_0x4958('0x2f')](function(_0x48805d){logger[_0x4958('0x14')](_0x4958('0x30'),_0x48805d[_0x4958('0x16')],_0x512a2a);_0x37d531(_0x27527c[_0x4958('0x14')](0x1f4,_0x48805d[_0x4958('0x16')]));});});};exports[_0x4958('0x45')]=function(_0x757f86){var _0x226e23=this;return new Promise(function(_0x1bc6b9,_0x52b9b9){return db['CmHopperHistory'][_0x4958('0x1e')]({'raw':_0x757f86[_0x4958('0x1a')]?_0x757f86[_0x4958('0x1a')][_0x4958('0x1b')]===undefined?!![]:![]:!![],'where':_0x757f86[_0x4958('0x1a')]?_0x757f86[_0x4958('0x1a')]['where']||null:null,'attributes':[[_0x4958('0x31'),'name'],[db[_0x4958('0x20')]['fn'](_0x4958('0x21'),db[_0x4958('0x20')][_0x4958('0x22')]('id')),_0x4958('0x46')],[db['sequelize']['fn']('COUNT',db[_0x4958('0x20')]['fn']('IF',db[_0x4958('0x20')]['literal'](_0x4958('0x25')))),_0x4958('0x47')]],'group':['campaign']})['then'](function(_0x37ba73){logger['info'](_0x4958('0x45'),_0x757f86);logger[_0x4958('0x11')](_0x4958('0x45'),_0x757f86,JSON[_0x4958('0x13')](_0x37ba73));_0x1bc6b9(_0x37ba73);})[_0x4958('0x2f')](function(_0x529a0c){logger[_0x4958('0x14')](_0x4958('0x45'),_0x529a0c[_0x4958('0x16')],_0x757f86);_0x52b9b9(_0x226e23[_0x4958('0x14')](0x1f4,_0x529a0c[_0x4958('0x16')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf6ac=['fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','/describe','isAuthenticated','show','post','create','put','/:id','update','exports','multer','util','path','connect-timeout','express','Router'];(function(_0xa9d59d,_0x244daa){var _0x262a1a=function(_0x488853){while(--_0x488853){_0xa9d59d['push'](_0xa9d59d['shift']());}};_0x262a1a(++_0x244daa);}(_0xf6ac,0x92));var _0xcf6a=function(_0x4b90c2,_0xaae537){_0x4b90c2=_0x4b90c2-0x0;var _0x59b4c0=_0xf6ac[_0x4b90c2];return _0x59b4c0;};'use strict';var multer=require(_0xcf6a('0x0'));var util=require(_0xcf6a('0x1'));var path=require(_0xcf6a('0x2'));var timeout=require(_0xcf6a('0x3'));var express=require(_0xcf6a('0x4'));var router=express[_0xcf6a('0x5')]();var fs_extra=require(_0xcf6a('0x6'));var auth=require(_0xcf6a('0x7'));var interaction=require(_0xcf6a('0x8'));var config=require(_0xcf6a('0x9'));var controller=require('./cmHopperHistory.controller');router['get']('/',auth['isAuthenticated'](),controller['index']);router['get'](_0xcf6a('0xa'),auth['isAuthenticated'](),controller['describe']);router['get']('/:id',auth[_0xcf6a('0xb')](),controller[_0xcf6a('0xc')]);router[_0xcf6a('0xd')]('/',auth['isAuthenticated'](),controller[_0xcf6a('0xe')]);router[_0xcf6a('0xf')](_0xcf6a('0x10'),auth[_0xcf6a('0xb')](),controller[_0xcf6a('0x11')]);module[_0xcf6a('0x12')]=router;
\ No newline at end of file
+var _0xd99f=['/:id','show','post','create','put','update','multer','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./cmHopperHistory.controller','/describe','isAuthenticated','describe','get'];(function(_0x397e5f,_0x454c8f){var _0x5302b8=function(_0x1a29ef){while(--_0x1a29ef){_0x397e5f['push'](_0x397e5f['shift']());}};_0x5302b8(++_0x454c8f);}(_0xd99f,0x1d2));var _0xfd99=function(_0x2963e6,_0x411d0f){_0x2963e6=_0x2963e6-0x0;var _0x4c6b2d=_0xd99f[_0x2963e6];return _0x4c6b2d;};'use strict';var multer=require(_0xfd99('0x0'));var util=require('util');var path=require(_0xfd99('0x1'));var timeout=require(_0xfd99('0x2'));var express=require(_0xfd99('0x3'));var router=express[_0xfd99('0x4')]();var fs_extra=require(_0xfd99('0x5'));var auth=require(_0xfd99('0x6'));var interaction=require(_0xfd99('0x7'));var config=require(_0xfd99('0x8'));var controller=require(_0xfd99('0x9'));router['get']('/',auth['isAuthenticated'](),controller['index']);router['get'](_0xfd99('0xa'),auth[_0xfd99('0xb')](),controller[_0xfd99('0xc')]);router[_0xfd99('0xd')](_0xfd99('0xe'),auth[_0xfd99('0xb')](),controller[_0xfd99('0xf')]);router[_0xfd99('0x10')]('/',auth[_0xfd99('0xb')](),controller[_0xfd99('0x11')]);router[_0xfd99('0x12')](_0xfd99('0xe'),auth['isAuthenticated'](),controller[_0xfd99('0x13')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x536e=['name','sequelize','exports','STRING'];(function(_0x4af3cd,_0x12f492){var _0x74bd34=function(_0x4c7b90){while(--_0x4c7b90){_0x4af3cd['push'](_0x4af3cd['shift']());}};_0x74bd34(++_0x12f492);}(_0x536e,0x155));var _0xe536=function(_0x5cb7a8,_0x269783){_0x5cb7a8=_0x5cb7a8-0x0;var _0x2a26df=_0x536e[_0x5cb7a8];return _0x2a26df;};'use strict';var Sequelize=require(_0xe536('0x0'));module[_0xe536('0x1')]={'name':{'type':Sequelize[_0xe536('0x2')],'unique':_0xe536('0x3'),'allowNull':![],'validate':{'notEmpty':!![]}},'description':{'type':Sequelize[_0xe536('0x2')]},'dialPrefix':{'type':Sequelize[_0xe536('0x2')]}};
\ No newline at end of file
+var _0xfa2b=['exports','STRING','name','sequelize'];(function(_0x3994be,_0x37d421){var _0x10aa6c=function(_0x267517){while(--_0x267517){_0x3994be['push'](_0x3994be['shift']());}};_0x10aa6c(++_0x37d421);}(_0xfa2b,0x1b7));var _0xbfa2=function(_0x1bcee7,_0x51c1c5){_0x1bcee7=_0x1bcee7-0x0;var _0x16b080=_0xfa2b[_0x1bcee7];return _0x16b080;};'use strict';var Sequelize=require(_0xbfa2('0x0'));module[_0xbfa2('0x1')]={'name':{'type':Sequelize[_0xbfa2('0x2')],'unique':_0xbfa2('0x3'),'allowNull':![],'validate':{'notEmpty':!![]}},'description':{'type':Sequelize[_0xbfa2('0x2')]},'dialPrefix':{'type':Sequelize[_0xbfa2('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x944e=['addCustomField','sequelize','transaction','addCustomFields','TEXT','Sequelize','INTEGER','switch','BOOLEAN','defaultValue','queryInterface','addColumn','cm_contacts','getCustomFields','findAndCountAll','addAgents','spread','emit','userCmList:save','removeAgents','userCmList:remove','User','getAgents','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','defaults','redis','localhost','socket.io-emitter','./cmList.socket','register','sendStatus','status','end','json','undefined','limit','offset','set','Content-Range','save','update','then','Lists','UserProfileResource','destroy','stack','name','send','index','map','CmList','rawAttributes','type','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','filter','merge','VIRTUAL','options','count','includeAll','include','findAll','catch','params','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','get','UserProfileSection','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','describe','Disposition','getDispositions','findOne','pick','ListId','rows','removeDispositions','addContacts','CmContact','tags','isArray','join','push','each','omit','ids','success','dataValues','Malformed\x20request\x20syntax','getContacts','CmCustomField','CustomFields','cf_%d','raw','getContactsCsv','concat','format','isEmpty','now','writeFileSync','/tmp/list_%d_%s.csv','setHeader','Content-disposition','attachment;\x20filename=','list_%d_%s.csv','Content-type','download'];(function(_0x4fbfd9,_0x3ab91a){var _0x31dc94=function(_0x11e53b){while(--_0x11e53b){_0x4fbfd9['push'](_0x4fbfd9['shift']());}};_0x31dc94(++_0x3ab91a);}(_0x944e,0x1df));var _0xe944=function(_0x263ffd,_0x4d0f41){_0x263ffd=_0x263ffd-0x0;var _0x28db75=_0x944e[_0x263ffd];return _0x28db75;};'use strict';var emlformat=require(_0xe944('0x0'));var rimraf=require(_0xe944('0x1'));var zipdir=require(_0xe944('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xe944('0x3'));var moment=require(_0xe944('0x4'));var BPromise=require(_0xe944('0x5'));var Mustache=require(_0xe944('0x6'));var util=require(_0xe944('0x7'));var path=require(_0xe944('0x8'));var sox=require(_0xe944('0x9'));var csv=require(_0xe944('0xa'));var ejs=require(_0xe944('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xe944('0xc'));var squel=require('squel');var crypto=require(_0xe944('0xd'));var jsforce=require(_0xe944('0xe'));var deskjs=require(_0xe944('0xf'));var toCsv=require(_0xe944('0xa'));var querystring=require(_0xe944('0x10'));var Papa=require(_0xe944('0x11'));var Redis=require('ioredis');var authService=require(_0xe944('0x12'));var qs=require(_0xe944('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xe944('0x14'));var logger=require(_0xe944('0x15'))(_0xe944('0x16'));var utils=require(_0xe944('0x17'));var config=require(_0xe944('0x18'));var licenseUtil=require(_0xe944('0x19'));var db=require(_0xe944('0x1a'))['db'];config['redis']=_[_0xe944('0x1b')](config[_0xe944('0x1c')],{'host':_0xe944('0x1d'),'port':0x18eb});var socket=require(_0xe944('0x1e'))(new Redis(config['redis']));require(_0xe944('0x1f'))[_0xe944('0x20')](socket);function respondWithStatusCode(_0x29ba2a,_0x58c039){_0x58c039=_0x58c039||0xcc;return function(_0x28949e){if(_0x28949e){return _0x29ba2a[_0xe944('0x21')](_0x58c039);}return _0x29ba2a[_0xe944('0x22')](_0x58c039)[_0xe944('0x23')]();};}function respondWithResult(_0x37693b,_0x2be55b){_0x2be55b=_0x2be55b||0xc8;return function(_0x22e423){if(_0x22e423){return _0x37693b['status'](_0x2be55b)[_0xe944('0x24')](_0x22e423);}};}function respondWithFilteredResult(_0x2a99cd,_0x262425){return function(_0x629028){if(_0x629028){var _0x41fe31=typeof _0x262425['offset']===_0xe944('0x25')&&typeof _0x262425[_0xe944('0x26')]==='undefined';var _0x7e8f2d=_0x629028['count'];var _0x4e4140=_0x41fe31?0x0:_0x262425['offset'];var _0x3678c3=_0x41fe31?_0x629028['count']:_0x262425[_0xe944('0x27')]+_0x262425[_0xe944('0x26')];var _0x1d118b;if(_0x3678c3>=_0x7e8f2d){_0x3678c3=_0x7e8f2d;_0x1d118b=0xc8;}else{_0x1d118b=0xce;}_0x2a99cd[_0xe944('0x22')](_0x1d118b);return _0x2a99cd[_0xe944('0x28')](_0xe944('0x29'),_0x4e4140+'-'+_0x3678c3+'/'+_0x7e8f2d)['json'](_0x629028);}return null;};}function patchUpdates(_0x387d00){return function(_0x1ef0b8){try{jsonpatch['apply'](_0x1ef0b8,_0x387d00,!![]);}catch(_0x52d897){return BPromise['reject'](_0x52d897);}return _0x1ef0b8[_0xe944('0x2a')]();};}function saveUpdates(_0x3bd2f1,_0x42bc9f){return function(_0xf07df8){if(_0xf07df8){return _0xf07df8[_0xe944('0x2b')](_0x3bd2f1)[_0xe944('0x2c')](function(_0xd01959){return _0xd01959;});}return null;};}function removeEntity(_0x5211ae,_0x5755c8){return function(_0x529d31){if(_0x529d31){return _0x529d31['destroy']()['then'](function(){var _0x3a80e4=_0x529d31['get']({'plain':!![]});var _0x30888a=_0xe944('0x2d');return db[_0xe944('0x2e')][_0xe944('0x2f')]({'where':{'type':_0x30888a,'resourceId':_0x3a80e4['id']}})['then'](function(){return _0x529d31;});})['then'](function(){_0x5211ae[_0xe944('0x22')](0xcc)[_0xe944('0x23')]();});}};}function handleEntityNotFound(_0x5149ec,_0x12f055){return function(_0x7af0e3){if(!_0x7af0e3){_0x5149ec[_0xe944('0x21')](0x194);}return _0x7af0e3;};}function handleError(_0x1f057a,_0x3cb253){_0x3cb253=_0x3cb253||0x1f4;return function(_0x6cc106){logger['error'](_0x6cc106[_0xe944('0x30')]);if(_0x6cc106[_0xe944('0x31')]){delete _0x6cc106[_0xe944('0x31')];}_0x1f057a[_0xe944('0x22')](_0x3cb253)[_0xe944('0x32')](_0x6cc106);};}exports[_0xe944('0x33')]=function(_0x1b9fac,_0x44b24c){var _0x21f85c={},_0x1b2549={},_0x2bafee={'count':0x0,'rows':[]};var _0x476d36=_[_0xe944('0x34')](db[_0xe944('0x35')][_0xe944('0x36')],function(_0x3e3aaa){return{'name':_0x3e3aaa['fieldName'],'type':_0x3e3aaa[_0xe944('0x37')][_0xe944('0x38')]};});_0x1b2549[_0xe944('0x39')]=_[_0xe944('0x34')](_0x476d36,_0xe944('0x31'));_0x1b2549[_0xe944('0x3a')]=_[_0xe944('0x3b')](_0x1b9fac[_0xe944('0x3a')]);_0x1b2549[_0xe944('0x3c')]=_['intersection'](_0x1b2549[_0xe944('0x39')],_0x1b2549[_0xe944('0x3a')]);_0x21f85c['attributes']=_[_0xe944('0x3d')](_0x1b2549[_0xe944('0x39')],qs[_0xe944('0x3e')](_0x1b9fac[_0xe944('0x3a')]['fields']));_0x21f85c[_0xe944('0x3f')]=_0x21f85c[_0xe944('0x3f')][_0xe944('0x40')]?_0x21f85c[_0xe944('0x3f')]:_0x1b2549[_0xe944('0x39')];if(!_0x1b9fac[_0xe944('0x3a')][_0xe944('0x41')](_0xe944('0x42'))){_0x21f85c[_0xe944('0x26')]=qs['limit'](_0x1b9fac[_0xe944('0x3a')][_0xe944('0x26')]);_0x21f85c[_0xe944('0x27')]=qs[_0xe944('0x27')](_0x1b9fac[_0xe944('0x3a')][_0xe944('0x27')]);}_0x21f85c[_0xe944('0x43')]=qs['sort'](_0x1b9fac[_0xe944('0x3a')][_0xe944('0x44')]);_0x21f85c[_0xe944('0x45')]=qs[_0xe944('0x3c')](_['pick'](_0x1b9fac[_0xe944('0x3a')],_0x1b2549[_0xe944('0x3c')]),_0x476d36);if(_0x1b9fac[_0xe944('0x3a')][_0xe944('0x46')]){_0x21f85c[_0xe944('0x45')]=_[_0xe944('0x47')](_0x21f85c[_0xe944('0x45')],{'$or':_[_0xe944('0x34')](_0x476d36,function(_0x12ce84){if(_0x12ce84[_0xe944('0x37')]!==_0xe944('0x48')){var _0x3c3f0a={};_0x3c3f0a[_0x12ce84[_0xe944('0x31')]]={'$like':'%'+_0x1b9fac[_0xe944('0x3a')][_0xe944('0x46')]+'%'};return _0x3c3f0a;}})});}_0x21f85c=_[_0xe944('0x47')]({},_0x21f85c,_0x1b9fac[_0xe944('0x49')]);var _0x41baeb={'where':_0x21f85c[_0xe944('0x45')]};return db[_0xe944('0x35')][_0xe944('0x4a')](_0x41baeb)['then'](function(_0x256497){_0x2bafee[_0xe944('0x4a')]=_0x256497;if(_0x1b9fac['query'][_0xe944('0x4b')]){_0x21f85c[_0xe944('0x4c')]=[{'all':!![]}];}return db[_0xe944('0x35')][_0xe944('0x4d')](_0x21f85c);})[_0xe944('0x2c')](function(_0xadaf49){_0x2bafee['rows']=_0xadaf49;return _0x2bafee;})[_0xe944('0x2c')](respondWithFilteredResult(_0x44b24c,_0x21f85c))[_0xe944('0x4e')](handleError(_0x44b24c,null));};exports['show']=function(_0x3c05de,_0x52a286){var _0x1c95bd={'raw':![],'where':{'id':_0x3c05de[_0xe944('0x4f')]['id']}},_0xc1c00f={};_0xc1c00f[_0xe944('0x39')]=_[_0xe944('0x3b')](db[_0xe944('0x35')][_0xe944('0x36')]);_0xc1c00f['query']=_[_0xe944('0x3b')](_0x3c05de['query']);_0xc1c00f[_0xe944('0x3c')]=_['intersection'](_0xc1c00f[_0xe944('0x39')],_0xc1c00f[_0xe944('0x3a')]);_0x1c95bd[_0xe944('0x3f')]=_['intersection'](_0xc1c00f[_0xe944('0x39')],qs[_0xe944('0x3e')](_0x3c05de[_0xe944('0x3a')]['fields']));_0x1c95bd[_0xe944('0x3f')]=_0x1c95bd[_0xe944('0x3f')][_0xe944('0x40')]?_0x1c95bd[_0xe944('0x3f')]:_0xc1c00f[_0xe944('0x39')];if(_0x3c05de['query'][_0xe944('0x4b')]){_0x1c95bd[_0xe944('0x4c')]=[{'all':!![]}];}_0x1c95bd=_[_0xe944('0x47')]({},_0x1c95bd,_0x3c05de[_0xe944('0x49')]);return db[_0xe944('0x35')][_0xe944('0x50')](_0x1c95bd)[_0xe944('0x2c')](handleEntityNotFound(_0x52a286,null))[_0xe944('0x2c')](respondWithResult(_0x52a286,null))[_0xe944('0x4e')](handleError(_0x52a286,null));};exports[_0xe944('0x51')]=function(_0x5dbad0,_0x4793be){return db[_0xe944('0x35')]['create'](_0x5dbad0[_0xe944('0x52')],{})['then'](function(_0x1549aa){var _0x2b1387=_0x5dbad0[_0xe944('0x53')]['get']({'plain':!![]});if(!_0x2b1387)throw new Error(_0xe944('0x54'));if(_0x2b1387['role']===_0xe944('0x53')){var _0x5cfe4b=_0x1549aa[_0xe944('0x55')]({'plain':!![]});var _0x133726=_0xe944('0x2d');return db[_0xe944('0x56')][_0xe944('0x50')]({'where':{'name':_0x133726,'userProfileId':_0x2b1387[_0xe944('0x57')]},'raw':!![]})['then'](function(_0x444dda){if(_0x444dda&&_0x444dda[_0xe944('0x58')]===0x0){return db[_0xe944('0x2e')][_0xe944('0x51')]({'name':_0x5cfe4b['name'],'resourceId':_0x5cfe4b['id'],'type':_0x444dda[_0xe944('0x31')],'sectionId':_0x444dda['id']},{})[_0xe944('0x2c')](function(){return _0x1549aa;});}else{return _0x1549aa;}})[_0xe944('0x4e')](function(_0x534b5a){logger[_0xe944('0x59')](_0xe944('0x5a'),_0x534b5a);throw _0x534b5a;});}return _0x1549aa;})[_0xe944('0x2c')](respondWithResult(_0x4793be,0xc9))[_0xe944('0x4e')](handleError(_0x4793be,null));};exports['update']=function(_0x4dd14b,_0x6288c9){if(_0x4dd14b['body']['id']){delete _0x4dd14b[_0xe944('0x52')]['id'];}return db[_0xe944('0x35')][_0xe944('0x50')]({'where':{'id':_0x4dd14b[_0xe944('0x4f')]['id']}})[_0xe944('0x2c')](handleEntityNotFound(_0x6288c9,null))[_0xe944('0x2c')](saveUpdates(_0x4dd14b[_0xe944('0x52')],null))[_0xe944('0x2c')](respondWithResult(_0x6288c9,null))[_0xe944('0x4e')](handleError(_0x6288c9,null));};exports['destroy']=function(_0x53a853,_0x25c538){return db[_0xe944('0x35')][_0xe944('0x50')]({'where':{'id':_0x53a853['params']['id']}})[_0xe944('0x2c')](handleEntityNotFound(_0x25c538,null))[_0xe944('0x2c')](removeEntity(_0x25c538,null))[_0xe944('0x4e')](handleError(_0x25c538,null));};exports[_0xe944('0x5b')]=function(_0x29b951,_0x45276a){return db[_0xe944('0x35')][_0xe944('0x5b')]()[_0xe944('0x2c')](respondWithResult(_0x45276a,null))[_0xe944('0x4e')](handleError(_0x45276a,null));};exports['addDisposition']=function(_0x81393f,_0x2f4e66,_0xcba925){if(_0x81393f['body']['id']){delete _0x81393f['body']['id'];}return db[_0xe944('0x35')][_0xe944('0x50')]({'where':{'id':_0x81393f['params']['id']}})[_0xe944('0x2c')](handleEntityNotFound(_0x2f4e66,null))[_0xe944('0x2c')](function(_0x1b91db){if(_0x1b91db){_0x81393f[_0xe944('0x52')]['ListId']=_0x1b91db['id'];return db[_0xe944('0x5c')][_0xe944('0x51')](_0x81393f[_0xe944('0x52')]);}})[_0xe944('0x2c')](respondWithResult(_0x2f4e66,null))['catch'](handleError(_0x2f4e66,null));};exports[_0xe944('0x5d')]=function(_0x8067b2,_0x2f45d4,_0x46f3f3){var _0x296ded={'raw':![],'where':{}};var _0x12f1d6={};var _0x5116e3={'count':0x0,'rows':[]};return db[_0xe944('0x35')][_0xe944('0x5e')]({'where':{'id':_0x8067b2[_0xe944('0x4f')]['id']}})[_0xe944('0x2c')](handleEntityNotFound(_0x2f45d4,null))['then'](function(_0x3235a0){if(_0x3235a0){_0x12f1d6[_0xe944('0x39')]=_[_0xe944('0x3b')](db[_0xe944('0x5c')][_0xe944('0x36')]);_0x12f1d6[_0xe944('0x3a')]=_['keys'](_0x8067b2['query']);_0x12f1d6[_0xe944('0x3c')]=_[_0xe944('0x3d')](_0x12f1d6['model'],_0x12f1d6[_0xe944('0x3a')]);_0x296ded[_0xe944('0x3f')]=_[_0xe944('0x3d')](_0x12f1d6['model'],qs[_0xe944('0x3e')](_0x8067b2['query'][_0xe944('0x3e')]));_0x296ded[_0xe944('0x3f')]=_0x296ded[_0xe944('0x3f')][_0xe944('0x40')]?_0x296ded['attributes']:_0x12f1d6[_0xe944('0x39')];if(!_0x8067b2['query'][_0xe944('0x41')](_0xe944('0x42'))){_0x296ded['limit']=qs[_0xe944('0x26')](_0x8067b2['query'][_0xe944('0x26')]);_0x296ded[_0xe944('0x27')]=qs[_0xe944('0x27')](_0x8067b2[_0xe944('0x3a')][_0xe944('0x27')]);}_0x296ded[_0xe944('0x43')]=qs[_0xe944('0x44')](_0x8067b2[_0xe944('0x3a')][_0xe944('0x44')]);_0x296ded[_0xe944('0x45')]=qs[_0xe944('0x3c')](_[_0xe944('0x5f')](_0x8067b2[_0xe944('0x3a')],_0x12f1d6['filters']));_0x296ded[_0xe944('0x45')][_0xe944('0x60')]=_0x3235a0['id'];if(_0x8067b2['query'][_0xe944('0x46')]){_0x296ded[_0xe944('0x45')]=_[_0xe944('0x47')](_0x296ded[_0xe944('0x45')],{'$or':_[_0xe944('0x34')](_0x296ded[_0xe944('0x3f')],function(_0xaaf969){var _0x51418e={};_0x51418e[_0xaaf969]={'$like':'%'+_0x8067b2[_0xe944('0x3a')][_0xe944('0x46')]+'%'};return _0x51418e;})});}_0x296ded=_['merge']({},_0x296ded,_0x8067b2[_0xe944('0x49')]);return db[_0xe944('0x5c')]['count']({'where':_0x296ded[_0xe944('0x45')]})[_0xe944('0x2c')](function(_0x3efa48){_0x5116e3[_0xe944('0x4a')]=_0x3efa48;if(_0x8067b2[_0xe944('0x3a')][_0xe944('0x4b')]){_0x296ded[_0xe944('0x4c')]=[{'all':!![]}];}return db[_0xe944('0x5c')][_0xe944('0x4d')](_0x296ded);})[_0xe944('0x2c')](function(_0x48cbb3){_0x5116e3[_0xe944('0x61')]=_0x48cbb3;return _0x5116e3;});}})['then'](respondWithFilteredResult(_0x2f45d4,_0x296ded))[_0xe944('0x4e')](handleError(_0x2f45d4,null));};exports[_0xe944('0x62')]=function(_0x123100,_0x195241,_0x5c59c5){return db[_0xe944('0x35')]['find']({'where':{'id':_0x123100[_0xe944('0x4f')]['id']}})['then'](handleEntityNotFound(_0x195241,null))['then'](function(_0x4364bb){if(_0x4364bb){return _0x4364bb[_0xe944('0x62')](_0x123100[_0xe944('0x3a')]['ids']);}})['then'](respondWithStatusCode(_0x195241,null))[_0xe944('0x4e')](handleError(_0x195241,null));};exports[_0xe944('0x63')]=function(_0x39b925,_0x52cab4,_0x4a1e37){return db['CmList'][_0xe944('0x50')]({'where':{'id':_0x39b925[_0xe944('0x4f')]['id']}})[_0xe944('0x2c')](handleEntityNotFound(_0x52cab4,null))['then'](function(_0x8a061c){if(_0x8a061c){var _0x37f3ca=[];var _0x2a957b={'success':[],'errors':[]};return db[_0xe944('0x64')][_0xe944('0x5b')]()[_0xe944('0x2c')](function(_0x107af0){if(_0x39b925['body'][_0xe944('0x65')]&&_[_0xe944('0x66')](_0x39b925['body'][_0xe944('0x65')])){if(_0x39b925['body']['tags']['length']){_0x39b925[_0xe944('0x52')]['tags']=_0x39b925[_0xe944('0x52')]['tags'][_0xe944('0x67')](';')+';';}else{_0x39b925['body']['tags']=null;}}else{_0x39b925[_0xe944('0x52')][_0xe944('0x65')]=null;}if(_0x39b925[_0xe944('0x52')]&&_['isArray'](_0x39b925[_0xe944('0x52')])){for(var _0x397a66=0x0;_0x397a66<_0x39b925[_0xe944('0x52')][_0xe944('0x40')];_0x397a66+=0x1){_0x39b925[_0xe944('0x52')][_0x397a66][_0xe944('0x60')]=_0x39b925[_0xe944('0x4f')]['id'];_0x37f3ca[_0xe944('0x68')](_0x39b925[_0xe944('0x52')][_0x397a66]);}return BPromise[_0xe944('0x69')](_0x37f3ca,function(_0x14044d){return db[_0xe944('0x64')][_0xe944('0x51')](_[_0xe944('0x6a')](_0x14044d,[_0xe944('0x6b'),'id'])||{},{'fields':_[_0xe944('0x3b')](_0x107af0),'raw':!![]})[_0xe944('0x2c')](function(_0x2728b0){_0x2a957b[_0xe944('0x6c')][_0xe944('0x68')](_0x2728b0[_0xe944('0x6d')]);})[_0xe944('0x4e')](function(_0x532e16){_0x2a957b['errors'][_0xe944('0x68')]({'data':_0x14044d,'error':_0x532e16['message']});});})[_0xe944('0x2c')](function(_0x3e5a91){return _0x2a957b;})[_0xe944('0x4e')](function(_0x1fc192){return _0x1fc192;});}else{_0x52cab4['status'](0x190)[_0xe944('0x24')]({'message':_0xe944('0x6e')});}});}})[_0xe944('0x2c')](respondWithResult(_0x52cab4,null))['catch'](handleError(_0x52cab4,null));};exports[_0xe944('0x6f')]=function(_0x20ff91,_0x409566,_0x28467c){var _0x55726b;return db[_0xe944('0x35')][_0xe944('0x50')]({'where':{'id':_0x20ff91[_0xe944('0x4f')]['id']},'include':[{'model':db[_0xe944('0x70')],'as':_0xe944('0x71')}]})[_0xe944('0x2c')](handleEntityNotFound(_0x409566,null))[_0xe944('0x2c')](function(_0x3ce71f){if(_0x3ce71f){_0x55726b=_0x3ce71f;return db[_0xe944('0x64')][_0xe944('0x36')];}})[_0xe944('0x2c')](function(_0x4eab45){if(_0x4eab45){var _0x1632fb={};var _0x2e388a={};_0x2e388a[_0xe944('0x39')]=_['concat'](_[_0xe944('0x3b')](_0x4eab45),_[_0xe944('0x34')](_0x55726b[_0xe944('0x71')],function(_0x237c01){return util['format'](_0xe944('0x72'),_0x237c01['id']);}));_0x2e388a[_0xe944('0x3a')]=_[_0xe944('0x3b')](_0x20ff91[_0xe944('0x3a')]);_0x2e388a[_0xe944('0x3c')]=_['intersection'](_0x2e388a[_0xe944('0x39')],_0x2e388a[_0xe944('0x3a')]);_0x1632fb[_0xe944('0x3f')]=_[_0xe944('0x3d')](_0x2e388a[_0xe944('0x39')],qs[_0xe944('0x3e')](_0x20ff91[_0xe944('0x3a')][_0xe944('0x3e')]));_0x1632fb['attributes']=_0x1632fb['attributes'][_0xe944('0x40')]?_0x1632fb['attributes']:_0x2e388a['model'];if(!_0x20ff91[_0xe944('0x3a')][_0xe944('0x41')](_0xe944('0x42'))){_0x1632fb['limit']=qs['limit'](_0x20ff91['query'][_0xe944('0x26')]);_0x1632fb['offset']=qs[_0xe944('0x27')](_0x20ff91[_0xe944('0x3a')][_0xe944('0x27')]);}_0x1632fb[_0xe944('0x43')]=qs[_0xe944('0x44')](_0x20ff91[_0xe944('0x3a')][_0xe944('0x44')]);_0x1632fb[_0xe944('0x45')]=qs[_0xe944('0x3c')](_[_0xe944('0x5f')](_0x20ff91[_0xe944('0x3a')],_0x2e388a['filters']));_0x1632fb[_0xe944('0x73')]=!![];if(_0x20ff91[_0xe944('0x3a')][_0xe944('0x46')]){_0x1632fb[_0xe944('0x45')]=_['merge'](_0x1632fb[_0xe944('0x45')],{'$or':_[_0xe944('0x34')](_0x1632fb[_0xe944('0x3f')],function(_0x40bbc5){var _0x10ff1e={};_0x10ff1e[_0x40bbc5]={'$like':'%'+_0x20ff91[_0xe944('0x3a')][_0xe944('0x46')]+'%'};return _0x10ff1e;})});}_0x1632fb=_['merge']({},_0x1632fb,_0x20ff91[_0xe944('0x49')]);return _0x55726b['getContacts'](_0x1632fb);}})['then'](respondWithResult(_0x409566,null))[_0xe944('0x4e')](handleError(_0x409566,null));};exports[_0xe944('0x74')]=function(_0x508457,_0x50800a,_0x1bc4e2){var _0xf1d14;return db[_0xe944('0x35')][_0xe944('0x50')]({'where':{'id':_0x508457[_0xe944('0x4f')]['id']},'include':[{'model':db[_0xe944('0x70')],'as':_0xe944('0x71')}]})[_0xe944('0x2c')](handleEntityNotFound(_0x50800a,null))[_0xe944('0x2c')](function(_0x16aaf8){if(_0x16aaf8){_0xf1d14=_0x16aaf8;return db[_0xe944('0x64')][_0xe944('0x36')];}})[_0xe944('0x2c')](function(_0x28c819){if(_0x28c819){var _0x5aa93a={};var _0x586878={};_0x586878[_0xe944('0x39')]=_[_0xe944('0x75')](_[_0xe944('0x3b')](_0x28c819),_['map'](_0xf1d14[_0xe944('0x71')],function(_0x172eb5){return util[_0xe944('0x76')](_0xe944('0x72'),_0x172eb5['id']);}));_0x586878[_0xe944('0x3a')]=_[_0xe944('0x3b')](_0x508457['query']);_0x586878[_0xe944('0x3c')]=_['intersection'](_0x586878[_0xe944('0x39')],_0x586878[_0xe944('0x3a')]);_0x5aa93a[_0xe944('0x3f')]=_['intersection'](_0x586878[_0xe944('0x39')],qs['fields'](_0x508457[_0xe944('0x3a')]['fields']));_0x5aa93a[_0xe944('0x3f')]=_0x5aa93a[_0xe944('0x3f')][_0xe944('0x40')]?_0x5aa93a[_0xe944('0x3f')]:_0x586878[_0xe944('0x39')];if(!_0x508457[_0xe944('0x3a')][_0xe944('0x41')]('nolimit')){_0x5aa93a[_0xe944('0x26')]=qs[_0xe944('0x26')](_0x508457[_0xe944('0x3a')][_0xe944('0x26')]);_0x5aa93a[_0xe944('0x27')]=qs[_0xe944('0x27')](_0x508457['query'][_0xe944('0x27')]);}_0x5aa93a[_0xe944('0x43')]=qs[_0xe944('0x44')](_0x508457[_0xe944('0x3a')][_0xe944('0x44')]);_0x5aa93a[_0xe944('0x45')]=qs['filters'](_['pick'](_0x508457['query'],_0x586878[_0xe944('0x3c')]));_0x5aa93a[_0xe944('0x73')]=!![];if(_0x508457[_0xe944('0x3a')][_0xe944('0x46')]){_0x5aa93a['where']=_[_0xe944('0x47')](_0x5aa93a[_0xe944('0x45')],{'$or':_[_0xe944('0x34')](_0x5aa93a['attributes'],function(_0x1b1a4b){var _0x530366={};_0x530366[_0x1b1a4b]={'$like':'%'+_0x508457[_0xe944('0x3a')][_0xe944('0x46')]+'%'};return _0x530366;})});}_0x5aa93a=_[_0xe944('0x47')]({},_0x5aa93a,_0x508457['options']);return _0xf1d14[_0xe944('0x6f')](_0x5aa93a);}})['then'](function(_0x5664d5){if(!_[_0xe944('0x77')](_0x5664d5)){var _0x2707a4=toCsv(_0x5664d5);var _0x5ce530=Date[_0xe944('0x78')]();fs[_0xe944('0x79')](util[_0xe944('0x76')](_0xe944('0x7a'),_0xf1d14['id'],_0x5ce530),_0x2707a4);_0x50800a[_0xe944('0x7b')](_0xe944('0x7c'),_0xe944('0x7d')+util[_0xe944('0x76')](_0xe944('0x7e'),_0xf1d14['id'],_0x5ce530));_0x50800a[_0xe944('0x7b')](_0xe944('0x7f'),'text/csv');return _0x50800a[_0xe944('0x80')](util[_0xe944('0x76')](_0xe944('0x7a'),_0xf1d14['id'],_0x5ce530));}else{return _0x50800a[_0xe944('0x21')](0xcc);}})[_0xe944('0x4e')](handleError(_0x50800a,null));};exports[_0xe944('0x81')]=function(_0x369a41,_0x99b571,_0x7f54a2){var _0x3443fb;delete _0x369a41['body']['id'];return db['CmList'][_0xe944('0x5e')]({'where':{'id':_0x369a41[_0xe944('0x4f')]['id']}})[_0xe944('0x2c')](handleEntityNotFound(_0x99b571,null))[_0xe944('0x2c')](function(_0x6e9322){if(_0x6e9322){return db[_0xe944('0x82')][_0xe944('0x83')](function(_0x11970a){return db['CmCustomField'][_0xe944('0x51')](_0x369a41['body'],{'transaction':_0x11970a})['then'](function(_0x489506){_0x3443fb=_0x489506;return _0x6e9322[_0xe944('0x84')](_0x489506,{'transaction':_0x11970a});})[_0xe944('0x2c')](function(){var _0x5b912b={'type':db['Sequelize'][_0xe944('0x85')],'transaction':_0x11970a};switch(_0x369a41['body'][_0xe944('0x37')]){case'text':_0x5b912b[_0xe944('0x37')]=db['Sequelize'][_0xe944('0x85')];break;case'number':_0x5b912b[_0xe944('0x37')]=db[_0xe944('0x86')][_0xe944('0x87')];break;case _0xe944('0x88'):_0x5b912b['type']=db['Sequelize'][_0xe944('0x89')];_0x5b912b[_0xe944('0x8a')]=![];break;default:}return db[_0xe944('0x82')][_0xe944('0x8b')][_0xe944('0x8c')](_0xe944('0x8d'),util['format']('cf_%s',_0x3443fb['id']),_0x5b912b);})['then'](function(){return _0x3443fb;});});}})['then'](respondWithResult(_0x99b571,null))['catch'](handleError(_0x99b571,null));};exports[_0xe944('0x8e')]=function(_0x3cb7cb,_0x568be5,_0x5d67f1){var _0x13350e={};var _0x1a9119={};var _0x29a1cc;var _0x481281;return db[_0xe944('0x35')]['findOne']({'where':{'id':_0x3cb7cb['params']['id']}})[_0xe944('0x2c')](handleEntityNotFound(_0x568be5,null))['then'](function(_0x22fa95){if(_0x22fa95){_0x29a1cc=_0x22fa95;_0x1a9119['model']=_[_0xe944('0x3b')](db['CmCustomField']['rawAttributes']);_0x1a9119[_0xe944('0x3a')]=_['keys'](_0x3cb7cb['query']);_0x1a9119[_0xe944('0x3c')]=_[_0xe944('0x3d')](_0x1a9119[_0xe944('0x39')],_0x1a9119[_0xe944('0x3a')]);_0x13350e['attributes']=_['intersection'](_0x1a9119[_0xe944('0x39')],qs[_0xe944('0x3e')](_0x3cb7cb['query'][_0xe944('0x3e')]));_0x13350e['attributes']=_0x13350e['attributes']['length']?_0x13350e[_0xe944('0x3f')]:_0x1a9119[_0xe944('0x39')];_0x13350e[_0xe944('0x43')]=qs[_0xe944('0x44')](_0x3cb7cb['query'][_0xe944('0x44')]);_0x13350e[_0xe944('0x45')]=qs[_0xe944('0x3c')](_[_0xe944('0x5f')](_0x3cb7cb[_0xe944('0x3a')],_0x1a9119['filters']));_0x13350e[_0xe944('0x45')]=_['merge'](_0x13350e['where'],{'$or':[{'ListId':_0x22fa95['id']},{'ListId':null}]});if(_0x3cb7cb[_0xe944('0x3a')]['filter']){_0x13350e['where']=_[_0xe944('0x47')](_0x13350e[_0xe944('0x45')],{'$or':_[_0xe944('0x34')](_0x13350e['attributes'],function(_0x2fccc7){var _0x5a9c3a={};_0x5a9c3a[_0x2fccc7]={'$like':'%'+_0x3cb7cb[_0xe944('0x3a')][_0xe944('0x46')]+'%'};return _0x5a9c3a;})});}_0x13350e=_['merge']({},_0x13350e,_0x3cb7cb['options']);return db[_0xe944('0x70')][_0xe944('0x8f')](_0x13350e);}})['then'](respondWithResult(_0x568be5,null))['catch'](handleError(_0x568be5,null));};exports[_0xe944('0x90')]=function(_0x33612f,_0x35eb27,_0x4f2a6d){return db[_0xe944('0x35')]['find']({'where':{'id':_0x33612f[_0xe944('0x4f')]['id']}})[_0xe944('0x2c')](handleEntityNotFound(_0x35eb27,null))['then'](function(_0x5b7b90){if(_0x5b7b90){return _0x5b7b90[_0xe944('0x90')](_0x33612f[_0xe944('0x52')][_0xe944('0x6b')],_['omit'](_0x33612f[_0xe944('0x52')],[_0xe944('0x6b'),'id'])||{})[_0xe944('0x91')](function(_0x36cf5a){for(var _0xf4d73f=0x0;_0xf4d73f<_0x33612f[_0xe944('0x52')]['ids'][_0xe944('0x40')];_0xf4d73f+=0x1){socket[_0xe944('0x92')](_0xe944('0x93'),{'UserId':Number(_0x33612f[_0xe944('0x52')][_0xe944('0x6b')][_0xf4d73f]),'CmListId':Number(_0x33612f['params']['id'])});}return _0x36cf5a;});}})[_0xe944('0x2c')](respondWithResult(_0x35eb27,null))['catch'](handleError(_0x35eb27,null));};exports[_0xe944('0x94')]=function(_0x3d2db5,_0x3041ea,_0x1b9213){return db[_0xe944('0x35')][_0xe944('0x50')]({'where':{'id':_0x3d2db5['params']['id']}})['then'](handleEntityNotFound(_0x3041ea,null))[_0xe944('0x2c')](function(_0x10a972){if(_0x10a972){return _0x10a972[_0xe944('0x94')](_0x3d2db5[_0xe944('0x3a')]['ids'])[_0xe944('0x2c')](function(){if(_[_0xe944('0x66')](_0x3d2db5[_0xe944('0x3a')][_0xe944('0x6b')])){for(var _0x487594=0x0;_0x487594<_0x3d2db5[_0xe944('0x3a')][_0xe944('0x6b')][_0xe944('0x40')];_0x487594+=0x1){socket[_0xe944('0x92')](_0xe944('0x95'),{'UserId':Number(_0x3d2db5[_0xe944('0x3a')]['ids'][_0x487594]),'CmListId':Number(_0x3d2db5[_0xe944('0x4f')]['id'])});}}else{socket[_0xe944('0x92')]('userCmList:remove',{'UserId':Number(_0x3d2db5[_0xe944('0x3a')][_0xe944('0x6b')]),'CmListId':Number(_0x3d2db5['params']['id'])});}});}})[_0xe944('0x2c')](respondWithStatusCode(_0x3041ea,null))['catch'](handleError(_0x3041ea,null));};exports['getAgents']=function(_0x3baae7,_0x364063,_0x2025bb){var _0x2235eb={};var _0x5146df={};var _0x427f73;var _0xd7053e;return db[_0xe944('0x35')][_0xe944('0x5e')]({'where':{'id':_0x3baae7[_0xe944('0x4f')]['id']}})[_0xe944('0x2c')](handleEntityNotFound(_0x364063,null))[_0xe944('0x2c')](function(_0x1bea59){if(_0x1bea59){_0x427f73=_0x1bea59;_0x5146df[_0xe944('0x39')]=_[_0xe944('0x3b')](db[_0xe944('0x96')][_0xe944('0x36')]);_0x5146df[_0xe944('0x3a')]=_[_0xe944('0x3b')](_0x3baae7[_0xe944('0x3a')]);_0x5146df[_0xe944('0x3c')]=_['intersection'](_0x5146df[_0xe944('0x39')],_0x5146df[_0xe944('0x3a')]);_0x2235eb[_0xe944('0x3f')]=_[_0xe944('0x3d')](_0x5146df[_0xe944('0x39')],qs[_0xe944('0x3e')](_0x3baae7[_0xe944('0x3a')][_0xe944('0x3e')]));_0x2235eb[_0xe944('0x3f')]=_0x2235eb[_0xe944('0x3f')]['length']?_0x2235eb[_0xe944('0x3f')]:_0x5146df['model'];_0x2235eb[_0xe944('0x43')]=qs[_0xe944('0x44')](_0x3baae7[_0xe944('0x3a')]['sort']);_0x2235eb[_0xe944('0x45')]=qs[_0xe944('0x3c')](_[_0xe944('0x5f')](_0x3baae7[_0xe944('0x3a')],_0x5146df['filters']));if(_0x3baae7[_0xe944('0x3a')][_0xe944('0x46')]){_0x2235eb['where']=_[_0xe944('0x47')](_0x2235eb[_0xe944('0x45')],{'$or':_['map'](_0x2235eb[_0xe944('0x3f')],function(_0x1597df){var _0x1ec6fb={};_0x1ec6fb[_0x1597df]={'$like':'%'+_0x3baae7[_0xe944('0x3a')][_0xe944('0x46')]+'%'};return _0x1ec6fb;})});}_0x2235eb=_[_0xe944('0x47')]({},_0x2235eb,_0x3baae7['options']);return _0x427f73[_0xe944('0x97')](_0x2235eb);}})[_0xe944('0x2c')](function(_0x515b4c){if(_0x515b4c){_0xd7053e=_0x515b4c['length'];if(!_0x3baae7[_0xe944('0x3a')][_0xe944('0x41')](_0xe944('0x42'))){_0x2235eb[_0xe944('0x26')]=qs[_0xe944('0x26')](_0x3baae7[_0xe944('0x3a')][_0xe944('0x26')]);_0x2235eb[_0xe944('0x27')]=qs[_0xe944('0x27')](_0x3baae7[_0xe944('0x3a')][_0xe944('0x27')]);}return _0x427f73[_0xe944('0x97')](_0x2235eb);}})[_0xe944('0x2c')](function(_0x41a147){if(_0x41a147){return _0x41a147?{'count':_0xd7053e,'rows':_0x41a147}:null;}})[_0xe944('0x2c')](respondWithResult(_0x364063,null))['catch'](handleError(_0x364063,null));};
\ No newline at end of file
+var _0x96b3=['cf_%s','getCustomFields','addAgents','omit','spread','emit','userCmList:save','removeAgents','userCmList:remove','User','getAgents','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','lodash','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./cmList.socket','status','end','json','offset','undefined','count','limit','set','Content-Range','reject','update','destroy','then','get','Lists','UserProfileResource','error','stack','name','send','index','map','rawAttributes','type','key','model','query','keys','filters','intersection','fields','attributes','length','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','findAll','rows','catch','show','params','include','CmList','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','describe','addDisposition','ListId','findOne','Disposition','hasOwnProperty','removeDispositions','ids','addContacts','CmContact','tags','isArray','push','each','success','dataValues','errors','Malformed\x20request\x20syntax','getContacts','CmCustomField','CustomFields','concat','format','cf_%d','raw','getContactsCsv','now','writeFileSync','setHeader','attachment;\x20filename=','list_%d_%s.csv','Content-type','/tmp/list_%d_%s.csv','sendStatus','addCustomField','transaction','Sequelize','TEXT','text','number','INTEGER','switch','BOOLEAN','defaultValue','sequelize','queryInterface','addColumn','cm_contacts'];(function(_0x5e894c,_0x3fb4da){var _0x78f9cf=function(_0x3d90d1){while(--_0x3d90d1){_0x5e894c['push'](_0x5e894c['shift']());}};_0x78f9cf(++_0x3fb4da);}(_0x96b3,0x131));var _0x396b=function(_0x31d5dd,_0x3ce582){_0x31d5dd=_0x31d5dd-0x0;var _0xd15820=_0x96b3[_0x31d5dd];return _0xd15820;};'use strict';var emlformat=require(_0x396b('0x0'));var rimraf=require(_0x396b('0x1'));var zipdir=require(_0x396b('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x396b('0x3'));var moment=require(_0x396b('0x4'));var BPromise=require(_0x396b('0x5'));var Mustache=require(_0x396b('0x6'));var util=require(_0x396b('0x7'));var path=require(_0x396b('0x8'));var sox=require(_0x396b('0x9'));var csv=require(_0x396b('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x396b('0xb'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x396b('0xc'));var deskjs=require(_0x396b('0xd'));var toCsv=require(_0x396b('0xa'));var querystring=require(_0x396b('0xe'));var Papa=require('papaparse');var Redis=require(_0x396b('0xf'));var authService=require(_0x396b('0x10'));var qs=require(_0x396b('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x396b('0x12'));var logger=require('../../config/logger')('api');var utils=require(_0x396b('0x13'));var config=require(_0x396b('0x14'));var licenseUtil=require(_0x396b('0x15'));var db=require(_0x396b('0x16'))['db'];config[_0x396b('0x17')]=_[_0x396b('0x18')](config[_0x396b('0x17')],{'host':_0x396b('0x19'),'port':0x18eb});var socket=require(_0x396b('0x1a'))(new Redis(config[_0x396b('0x17')]));require(_0x396b('0x1b'))['register'](socket);function respondWithStatusCode(_0xc586a,_0x157b63){_0x157b63=_0x157b63||0xcc;return function(_0x525d75){if(_0x525d75){return _0xc586a['sendStatus'](_0x157b63);}return _0xc586a[_0x396b('0x1c')](_0x157b63)[_0x396b('0x1d')]();};}function respondWithResult(_0x56404f,_0xe7932c){_0xe7932c=_0xe7932c||0xc8;return function(_0x1d0730){if(_0x1d0730){return _0x56404f[_0x396b('0x1c')](_0xe7932c)[_0x396b('0x1e')](_0x1d0730);}};}function respondWithFilteredResult(_0x3ac331,_0x1867cb){return function(_0x1cae7b){if(_0x1cae7b){var _0x55727a=typeof _0x1867cb[_0x396b('0x1f')]===_0x396b('0x20')&&typeof _0x1867cb['limit']===_0x396b('0x20');var _0x6455fd=_0x1cae7b[_0x396b('0x21')];var _0x2a2ba0=_0x55727a?0x0:_0x1867cb[_0x396b('0x1f')];var _0x5e9eb4=_0x55727a?_0x1cae7b[_0x396b('0x21')]:_0x1867cb['offset']+_0x1867cb[_0x396b('0x22')];var _0x2a936b;if(_0x5e9eb4>=_0x6455fd){_0x5e9eb4=_0x6455fd;_0x2a936b=0xc8;}else{_0x2a936b=0xce;}_0x3ac331[_0x396b('0x1c')](_0x2a936b);return _0x3ac331[_0x396b('0x23')](_0x396b('0x24'),_0x2a2ba0+'-'+_0x5e9eb4+'/'+_0x6455fd)[_0x396b('0x1e')](_0x1cae7b);}return null;};}function patchUpdates(_0x5e76cc){return function(_0x298797){try{jsonpatch['apply'](_0x298797,_0x5e76cc,!![]);}catch(_0x53c9de){return BPromise[_0x396b('0x25')](_0x53c9de);}return _0x298797['save']();};}function saveUpdates(_0x5cc4ef,_0x31654f){return function(_0x486671){if(_0x486671){return _0x486671[_0x396b('0x26')](_0x5cc4ef)['then'](function(_0x4d5a8b){return _0x4d5a8b;});}return null;};}function removeEntity(_0x1cdaad,_0xad062a){return function(_0x32eed9){if(_0x32eed9){return _0x32eed9[_0x396b('0x27')]()[_0x396b('0x28')](function(){var _0x1f3318=_0x32eed9[_0x396b('0x29')]({'plain':!![]});var _0x1f3fe1=_0x396b('0x2a');return db[_0x396b('0x2b')]['destroy']({'where':{'type':_0x1f3fe1,'resourceId':_0x1f3318['id']}})[_0x396b('0x28')](function(){return _0x32eed9;});})[_0x396b('0x28')](function(){_0x1cdaad[_0x396b('0x1c')](0xcc)[_0x396b('0x1d')]();});}};}function handleEntityNotFound(_0x184ec9,_0x30ff4b){return function(_0x4cb565){if(!_0x4cb565){_0x184ec9['sendStatus'](0x194);}return _0x4cb565;};}function handleError(_0x4395bc,_0x11447f){_0x11447f=_0x11447f||0x1f4;return function(_0x37543a){logger[_0x396b('0x2c')](_0x37543a[_0x396b('0x2d')]);if(_0x37543a['name']){delete _0x37543a[_0x396b('0x2e')];}_0x4395bc['status'](_0x11447f)[_0x396b('0x2f')](_0x37543a);};}exports[_0x396b('0x30')]=function(_0x586a3c,_0x20b7f6){var _0x4d0a4a={},_0x2c0d5c={},_0x209efe={'count':0x0,'rows':[]};var _0xd149ae=_[_0x396b('0x31')](db['CmList'][_0x396b('0x32')],function(_0x4bb0cf){return{'name':_0x4bb0cf['fieldName'],'type':_0x4bb0cf[_0x396b('0x33')][_0x396b('0x34')]};});_0x2c0d5c[_0x396b('0x35')]=_[_0x396b('0x31')](_0xd149ae,'name');_0x2c0d5c[_0x396b('0x36')]=_[_0x396b('0x37')](_0x586a3c[_0x396b('0x36')]);_0x2c0d5c[_0x396b('0x38')]=_['intersection'](_0x2c0d5c[_0x396b('0x35')],_0x2c0d5c['query']);_0x4d0a4a['attributes']=_[_0x396b('0x39')](_0x2c0d5c[_0x396b('0x35')],qs[_0x396b('0x3a')](_0x586a3c[_0x396b('0x36')][_0x396b('0x3a')]));_0x4d0a4a['attributes']=_0x4d0a4a[_0x396b('0x3b')][_0x396b('0x3c')]?_0x4d0a4a[_0x396b('0x3b')]:_0x2c0d5c[_0x396b('0x35')];if(!_0x586a3c['query']['hasOwnProperty'](_0x396b('0x3d'))){_0x4d0a4a[_0x396b('0x22')]=qs[_0x396b('0x22')](_0x586a3c[_0x396b('0x36')]['limit']);_0x4d0a4a['offset']=qs[_0x396b('0x1f')](_0x586a3c[_0x396b('0x36')][_0x396b('0x1f')]);}_0x4d0a4a[_0x396b('0x3e')]=qs['sort'](_0x586a3c[_0x396b('0x36')][_0x396b('0x3f')]);_0x4d0a4a[_0x396b('0x40')]=qs['filters'](_[_0x396b('0x41')](_0x586a3c[_0x396b('0x36')],_0x2c0d5c[_0x396b('0x38')]),_0xd149ae);if(_0x586a3c[_0x396b('0x36')][_0x396b('0x42')]){_0x4d0a4a[_0x396b('0x40')]=_[_0x396b('0x43')](_0x4d0a4a[_0x396b('0x40')],{'$or':_[_0x396b('0x31')](_0xd149ae,function(_0x519512){if(_0x519512['type']!==_0x396b('0x44')){var _0x35fa16={};_0x35fa16[_0x519512['name']]={'$like':'%'+_0x586a3c[_0x396b('0x36')][_0x396b('0x42')]+'%'};return _0x35fa16;}})});}_0x4d0a4a=_[_0x396b('0x43')]({},_0x4d0a4a,_0x586a3c[_0x396b('0x45')]);var _0x50ff0c={'where':_0x4d0a4a[_0x396b('0x40')]};return db['CmList'][_0x396b('0x21')](_0x50ff0c)[_0x396b('0x28')](function(_0x1653da){_0x209efe['count']=_0x1653da;if(_0x586a3c[_0x396b('0x36')][_0x396b('0x46')]){_0x4d0a4a['include']=[{'all':!![]}];}return db['CmList'][_0x396b('0x47')](_0x4d0a4a);})['then'](function(_0x37806f){_0x209efe[_0x396b('0x48')]=_0x37806f;return _0x209efe;})[_0x396b('0x28')](respondWithFilteredResult(_0x20b7f6,_0x4d0a4a))[_0x396b('0x49')](handleError(_0x20b7f6,null));};exports[_0x396b('0x4a')]=function(_0x1fe205,_0x545c60){var _0x5e0b1f={'raw':![],'where':{'id':_0x1fe205[_0x396b('0x4b')]['id']}},_0x3256e6={};_0x3256e6[_0x396b('0x35')]=_[_0x396b('0x37')](db['CmList']['rawAttributes']);_0x3256e6[_0x396b('0x36')]=_[_0x396b('0x37')](_0x1fe205[_0x396b('0x36')]);_0x3256e6[_0x396b('0x38')]=_[_0x396b('0x39')](_0x3256e6[_0x396b('0x35')],_0x3256e6[_0x396b('0x36')]);_0x5e0b1f[_0x396b('0x3b')]=_[_0x396b('0x39')](_0x3256e6[_0x396b('0x35')],qs[_0x396b('0x3a')](_0x1fe205[_0x396b('0x36')][_0x396b('0x3a')]));_0x5e0b1f['attributes']=_0x5e0b1f[_0x396b('0x3b')]['length']?_0x5e0b1f[_0x396b('0x3b')]:_0x3256e6[_0x396b('0x35')];if(_0x1fe205[_0x396b('0x36')][_0x396b('0x46')]){_0x5e0b1f[_0x396b('0x4c')]=[{'all':!![]}];}_0x5e0b1f=_[_0x396b('0x43')]({},_0x5e0b1f,_0x1fe205['options']);return db[_0x396b('0x4d')][_0x396b('0x4e')](_0x5e0b1f)[_0x396b('0x28')](handleEntityNotFound(_0x545c60,null))[_0x396b('0x28')](respondWithResult(_0x545c60,null))['catch'](handleError(_0x545c60,null));};exports[_0x396b('0x4f')]=function(_0x455366,_0x5a3af7){return db[_0x396b('0x4d')][_0x396b('0x4f')](_0x455366['body'],{})[_0x396b('0x28')](function(_0x527ddc){var _0x556638=_0x455366[_0x396b('0x50')][_0x396b('0x29')]({'plain':!![]});if(!_0x556638)throw new Error(_0x396b('0x51'));if(_0x556638[_0x396b('0x52')]===_0x396b('0x50')){var _0x359876=_0x527ddc['get']({'plain':!![]});var _0xf5566b=_0x396b('0x2a');return db[_0x396b('0x53')][_0x396b('0x4e')]({'where':{'name':_0xf5566b,'userProfileId':_0x556638[_0x396b('0x54')]},'raw':!![]})['then'](function(_0x54d1c5){if(_0x54d1c5&&_0x54d1c5[_0x396b('0x55')]===0x0){return db[_0x396b('0x2b')][_0x396b('0x4f')]({'name':_0x359876[_0x396b('0x2e')],'resourceId':_0x359876['id'],'type':_0x54d1c5[_0x396b('0x2e')],'sectionId':_0x54d1c5['id']},{})[_0x396b('0x28')](function(){return _0x527ddc;});}else{return _0x527ddc;}})[_0x396b('0x49')](function(_0x271e6a){logger[_0x396b('0x2c')](_0x396b('0x56'),_0x271e6a);throw _0x271e6a;});}return _0x527ddc;})[_0x396b('0x28')](respondWithResult(_0x5a3af7,0xc9))[_0x396b('0x49')](handleError(_0x5a3af7,null));};exports['update']=function(_0x1349ac,_0x44cd38){if(_0x1349ac[_0x396b('0x57')]['id']){delete _0x1349ac['body']['id'];}return db['CmList'][_0x396b('0x4e')]({'where':{'id':_0x1349ac[_0x396b('0x4b')]['id']}})[_0x396b('0x28')](handleEntityNotFound(_0x44cd38,null))[_0x396b('0x28')](saveUpdates(_0x1349ac[_0x396b('0x57')],null))[_0x396b('0x28')](respondWithResult(_0x44cd38,null))[_0x396b('0x49')](handleError(_0x44cd38,null));};exports[_0x396b('0x27')]=function(_0x58cd88,_0x1c28d6){return db[_0x396b('0x4d')][_0x396b('0x4e')]({'where':{'id':_0x58cd88[_0x396b('0x4b')]['id']}})['then'](handleEntityNotFound(_0x1c28d6,null))[_0x396b('0x28')](removeEntity(_0x1c28d6,null))[_0x396b('0x49')](handleError(_0x1c28d6,null));};exports['describe']=function(_0x31d2d5,_0x4af987){return db[_0x396b('0x4d')][_0x396b('0x58')]()[_0x396b('0x28')](respondWithResult(_0x4af987,null))[_0x396b('0x49')](handleError(_0x4af987,null));};exports[_0x396b('0x59')]=function(_0x29aa3a,_0x5c984e,_0x470b08){if(_0x29aa3a[_0x396b('0x57')]['id']){delete _0x29aa3a[_0x396b('0x57')]['id'];}return db['CmList'][_0x396b('0x4e')]({'where':{'id':_0x29aa3a[_0x396b('0x4b')]['id']}})[_0x396b('0x28')](handleEntityNotFound(_0x5c984e,null))[_0x396b('0x28')](function(_0x117382){if(_0x117382){_0x29aa3a[_0x396b('0x57')][_0x396b('0x5a')]=_0x117382['id'];return db['Disposition'][_0x396b('0x4f')](_0x29aa3a['body']);}})[_0x396b('0x28')](respondWithResult(_0x5c984e,null))[_0x396b('0x49')](handleError(_0x5c984e,null));};exports['getDispositions']=function(_0x21c81c,_0x8a45eb,_0x2f4c55){var _0x21a7a8={'raw':![],'where':{}};var _0x194025={};var _0xd1e953={'count':0x0,'rows':[]};return db[_0x396b('0x4d')][_0x396b('0x5b')]({'where':{'id':_0x21c81c[_0x396b('0x4b')]['id']}})[_0x396b('0x28')](handleEntityNotFound(_0x8a45eb,null))['then'](function(_0x38825a){if(_0x38825a){_0x194025[_0x396b('0x35')]=_[_0x396b('0x37')](db[_0x396b('0x5c')][_0x396b('0x32')]);_0x194025['query']=_['keys'](_0x21c81c[_0x396b('0x36')]);_0x194025[_0x396b('0x38')]=_[_0x396b('0x39')](_0x194025[_0x396b('0x35')],_0x194025[_0x396b('0x36')]);_0x21a7a8[_0x396b('0x3b')]=_[_0x396b('0x39')](_0x194025[_0x396b('0x35')],qs[_0x396b('0x3a')](_0x21c81c[_0x396b('0x36')]['fields']));_0x21a7a8[_0x396b('0x3b')]=_0x21a7a8[_0x396b('0x3b')][_0x396b('0x3c')]?_0x21a7a8[_0x396b('0x3b')]:_0x194025[_0x396b('0x35')];if(!_0x21c81c[_0x396b('0x36')][_0x396b('0x5d')](_0x396b('0x3d'))){_0x21a7a8[_0x396b('0x22')]=qs[_0x396b('0x22')](_0x21c81c[_0x396b('0x36')][_0x396b('0x22')]);_0x21a7a8[_0x396b('0x1f')]=qs[_0x396b('0x1f')](_0x21c81c['query'][_0x396b('0x1f')]);}_0x21a7a8[_0x396b('0x3e')]=qs[_0x396b('0x3f')](_0x21c81c[_0x396b('0x36')][_0x396b('0x3f')]);_0x21a7a8[_0x396b('0x40')]=qs[_0x396b('0x38')](_['pick'](_0x21c81c[_0x396b('0x36')],_0x194025[_0x396b('0x38')]));_0x21a7a8[_0x396b('0x40')]['ListId']=_0x38825a['id'];if(_0x21c81c[_0x396b('0x36')][_0x396b('0x42')]){_0x21a7a8[_0x396b('0x40')]=_[_0x396b('0x43')](_0x21a7a8['where'],{'$or':_[_0x396b('0x31')](_0x21a7a8['attributes'],function(_0x3b22d6){var _0x5cf7df={};_0x5cf7df[_0x3b22d6]={'$like':'%'+_0x21c81c['query'][_0x396b('0x42')]+'%'};return _0x5cf7df;})});}_0x21a7a8=_['merge']({},_0x21a7a8,_0x21c81c[_0x396b('0x45')]);return db[_0x396b('0x5c')][_0x396b('0x21')]({'where':_0x21a7a8[_0x396b('0x40')]})[_0x396b('0x28')](function(_0x4704df){_0xd1e953[_0x396b('0x21')]=_0x4704df;if(_0x21c81c[_0x396b('0x36')][_0x396b('0x46')]){_0x21a7a8[_0x396b('0x4c')]=[{'all':!![]}];}return db['Disposition'][_0x396b('0x47')](_0x21a7a8);})['then'](function(_0x4ab0f8){_0xd1e953['rows']=_0x4ab0f8;return _0xd1e953;});}})['then'](respondWithFilteredResult(_0x8a45eb,_0x21a7a8))[_0x396b('0x49')](handleError(_0x8a45eb,null));};exports['removeDispositions']=function(_0x2c69bd,_0x361b89,_0x23ce9a){return db[_0x396b('0x4d')][_0x396b('0x4e')]({'where':{'id':_0x2c69bd[_0x396b('0x4b')]['id']}})[_0x396b('0x28')](handleEntityNotFound(_0x361b89,null))[_0x396b('0x28')](function(_0xca9026){if(_0xca9026){return _0xca9026[_0x396b('0x5e')](_0x2c69bd[_0x396b('0x36')][_0x396b('0x5f')]);}})[_0x396b('0x28')](respondWithStatusCode(_0x361b89,null))[_0x396b('0x49')](handleError(_0x361b89,null));};exports[_0x396b('0x60')]=function(_0xb39f0c,_0x2edbeb,_0x3bbb07){return db['CmList'][_0x396b('0x4e')]({'where':{'id':_0xb39f0c[_0x396b('0x4b')]['id']}})['then'](handleEntityNotFound(_0x2edbeb,null))[_0x396b('0x28')](function(_0x8f9ae8){if(_0x8f9ae8){var _0x3817a8=[];var _0x5c1017={'success':[],'errors':[]};return db[_0x396b('0x61')]['describe']()[_0x396b('0x28')](function(_0x757232){if(_0xb39f0c[_0x396b('0x57')][_0x396b('0x62')]&&_['isArray'](_0xb39f0c[_0x396b('0x57')][_0x396b('0x62')])){if(_0xb39f0c[_0x396b('0x57')][_0x396b('0x62')][_0x396b('0x3c')]){_0xb39f0c[_0x396b('0x57')]['tags']=_0xb39f0c[_0x396b('0x57')][_0x396b('0x62')]['join'](';')+';';}else{_0xb39f0c['body']['tags']=null;}}else{_0xb39f0c[_0x396b('0x57')]['tags']=null;}if(_0xb39f0c[_0x396b('0x57')]&&_[_0x396b('0x63')](_0xb39f0c[_0x396b('0x57')])){for(var _0x21ce40=0x0;_0x21ce40<_0xb39f0c[_0x396b('0x57')][_0x396b('0x3c')];_0x21ce40+=0x1){_0xb39f0c[_0x396b('0x57')][_0x21ce40][_0x396b('0x5a')]=_0xb39f0c[_0x396b('0x4b')]['id'];_0x3817a8[_0x396b('0x64')](_0xb39f0c[_0x396b('0x57')][_0x21ce40]);}return BPromise[_0x396b('0x65')](_0x3817a8,function(_0x1e5f58){return db[_0x396b('0x61')][_0x396b('0x4f')](_['omit'](_0x1e5f58,[_0x396b('0x5f'),'id'])||{},{'fields':_[_0x396b('0x37')](_0x757232),'raw':!![]})['then'](function(_0x1d6be8){_0x5c1017[_0x396b('0x66')]['push'](_0x1d6be8[_0x396b('0x67')]);})[_0x396b('0x49')](function(_0x1c4b36){_0x5c1017[_0x396b('0x68')][_0x396b('0x64')]({'data':_0x1e5f58,'error':_0x1c4b36['message']});});})[_0x396b('0x28')](function(_0x48a9e7){return _0x5c1017;})[_0x396b('0x49')](function(_0x283319){return _0x283319;});}else{_0x2edbeb['status'](0x190)[_0x396b('0x1e')]({'message':_0x396b('0x69')});}});}})[_0x396b('0x28')](respondWithResult(_0x2edbeb,null))['catch'](handleError(_0x2edbeb,null));};exports[_0x396b('0x6a')]=function(_0x57e4d9,_0x564a55,_0x570fb3){var _0x127e75;return db[_0x396b('0x4d')][_0x396b('0x4e')]({'where':{'id':_0x57e4d9[_0x396b('0x4b')]['id']},'include':[{'model':db[_0x396b('0x6b')],'as':_0x396b('0x6c')}]})[_0x396b('0x28')](handleEntityNotFound(_0x564a55,null))[_0x396b('0x28')](function(_0x8c9c6a){if(_0x8c9c6a){_0x127e75=_0x8c9c6a;return db[_0x396b('0x61')]['rawAttributes'];}})['then'](function(_0x3df872){if(_0x3df872){var _0x1e8396={};var _0x21461f={};_0x21461f['model']=_[_0x396b('0x6d')](_[_0x396b('0x37')](_0x3df872),_[_0x396b('0x31')](_0x127e75[_0x396b('0x6c')],function(_0x39fa99){return util[_0x396b('0x6e')](_0x396b('0x6f'),_0x39fa99['id']);}));_0x21461f['query']=_['keys'](_0x57e4d9[_0x396b('0x36')]);_0x21461f[_0x396b('0x38')]=_[_0x396b('0x39')](_0x21461f[_0x396b('0x35')],_0x21461f[_0x396b('0x36')]);_0x1e8396[_0x396b('0x3b')]=_['intersection'](_0x21461f[_0x396b('0x35')],qs['fields'](_0x57e4d9[_0x396b('0x36')][_0x396b('0x3a')]));_0x1e8396[_0x396b('0x3b')]=_0x1e8396[_0x396b('0x3b')][_0x396b('0x3c')]?_0x1e8396[_0x396b('0x3b')]:_0x21461f[_0x396b('0x35')];if(!_0x57e4d9[_0x396b('0x36')][_0x396b('0x5d')](_0x396b('0x3d'))){_0x1e8396[_0x396b('0x22')]=qs['limit'](_0x57e4d9[_0x396b('0x36')][_0x396b('0x22')]);_0x1e8396[_0x396b('0x1f')]=qs[_0x396b('0x1f')](_0x57e4d9[_0x396b('0x36')][_0x396b('0x1f')]);}_0x1e8396[_0x396b('0x3e')]=qs[_0x396b('0x3f')](_0x57e4d9['query'][_0x396b('0x3f')]);_0x1e8396[_0x396b('0x40')]=qs[_0x396b('0x38')](_[_0x396b('0x41')](_0x57e4d9[_0x396b('0x36')],_0x21461f['filters']));_0x1e8396[_0x396b('0x70')]=!![];if(_0x57e4d9[_0x396b('0x36')][_0x396b('0x42')]){_0x1e8396[_0x396b('0x40')]=_[_0x396b('0x43')](_0x1e8396[_0x396b('0x40')],{'$or':_[_0x396b('0x31')](_0x1e8396[_0x396b('0x3b')],function(_0x22f81a){var _0x452e3c={};_0x452e3c[_0x22f81a]={'$like':'%'+_0x57e4d9[_0x396b('0x36')][_0x396b('0x42')]+'%'};return _0x452e3c;})});}_0x1e8396=_[_0x396b('0x43')]({},_0x1e8396,_0x57e4d9[_0x396b('0x45')]);return _0x127e75[_0x396b('0x6a')](_0x1e8396);}})[_0x396b('0x28')](respondWithResult(_0x564a55,null))['catch'](handleError(_0x564a55,null));};exports[_0x396b('0x71')]=function(_0x34db8b,_0x445585,_0x25f918){var _0x10e287;return db[_0x396b('0x4d')][_0x396b('0x4e')]({'where':{'id':_0x34db8b[_0x396b('0x4b')]['id']},'include':[{'model':db[_0x396b('0x6b')],'as':'CustomFields'}]})[_0x396b('0x28')](handleEntityNotFound(_0x445585,null))[_0x396b('0x28')](function(_0x4e51a5){if(_0x4e51a5){_0x10e287=_0x4e51a5;return db[_0x396b('0x61')]['rawAttributes'];}})[_0x396b('0x28')](function(_0x502e92){if(_0x502e92){var _0x1dd69f={};var _0xff2e5e={};_0xff2e5e['model']=_[_0x396b('0x6d')](_[_0x396b('0x37')](_0x502e92),_[_0x396b('0x31')](_0x10e287['CustomFields'],function(_0x449817){return util['format'](_0x396b('0x6f'),_0x449817['id']);}));_0xff2e5e[_0x396b('0x36')]=_[_0x396b('0x37')](_0x34db8b[_0x396b('0x36')]);_0xff2e5e['filters']=_[_0x396b('0x39')](_0xff2e5e[_0x396b('0x35')],_0xff2e5e[_0x396b('0x36')]);_0x1dd69f[_0x396b('0x3b')]=_[_0x396b('0x39')](_0xff2e5e[_0x396b('0x35')],qs[_0x396b('0x3a')](_0x34db8b[_0x396b('0x36')][_0x396b('0x3a')]));_0x1dd69f[_0x396b('0x3b')]=_0x1dd69f['attributes'][_0x396b('0x3c')]?_0x1dd69f[_0x396b('0x3b')]:_0xff2e5e[_0x396b('0x35')];if(!_0x34db8b['query'][_0x396b('0x5d')](_0x396b('0x3d'))){_0x1dd69f['limit']=qs['limit'](_0x34db8b['query'][_0x396b('0x22')]);_0x1dd69f[_0x396b('0x1f')]=qs['offset'](_0x34db8b[_0x396b('0x36')][_0x396b('0x1f')]);}_0x1dd69f[_0x396b('0x3e')]=qs['sort'](_0x34db8b['query'][_0x396b('0x3f')]);_0x1dd69f['where']=qs[_0x396b('0x38')](_[_0x396b('0x41')](_0x34db8b[_0x396b('0x36')],_0xff2e5e[_0x396b('0x38')]));_0x1dd69f[_0x396b('0x70')]=!![];if(_0x34db8b[_0x396b('0x36')]['filter']){_0x1dd69f['where']=_[_0x396b('0x43')](_0x1dd69f[_0x396b('0x40')],{'$or':_[_0x396b('0x31')](_0x1dd69f[_0x396b('0x3b')],function(_0x59ceb2){var _0x12140b={};_0x12140b[_0x59ceb2]={'$like':'%'+_0x34db8b[_0x396b('0x36')][_0x396b('0x42')]+'%'};return _0x12140b;})});}_0x1dd69f=_[_0x396b('0x43')]({},_0x1dd69f,_0x34db8b[_0x396b('0x45')]);return _0x10e287[_0x396b('0x6a')](_0x1dd69f);}})['then'](function(_0xda6db5){if(!_['isEmpty'](_0xda6db5)){var _0x35f389=toCsv(_0xda6db5);var _0x22c7b1=Date[_0x396b('0x72')]();fs[_0x396b('0x73')](util[_0x396b('0x6e')]('/tmp/list_%d_%s.csv',_0x10e287['id'],_0x22c7b1),_0x35f389);_0x445585[_0x396b('0x74')]('Content-disposition',_0x396b('0x75')+util[_0x396b('0x6e')](_0x396b('0x76'),_0x10e287['id'],_0x22c7b1));_0x445585[_0x396b('0x74')](_0x396b('0x77'),'text/csv');return _0x445585['download'](util[_0x396b('0x6e')](_0x396b('0x78'),_0x10e287['id'],_0x22c7b1));}else{return _0x445585[_0x396b('0x79')](0xcc);}})[_0x396b('0x49')](handleError(_0x445585,null));};exports[_0x396b('0x7a')]=function(_0x2e607a,_0x1061d3,_0xaf10ca){var _0x3ca36e;delete _0x2e607a[_0x396b('0x57')]['id'];return db[_0x396b('0x4d')][_0x396b('0x5b')]({'where':{'id':_0x2e607a[_0x396b('0x4b')]['id']}})['then'](handleEntityNotFound(_0x1061d3,null))[_0x396b('0x28')](function(_0xd132d2){if(_0xd132d2){return db['sequelize'][_0x396b('0x7b')](function(_0x15556f){return db['CmCustomField']['create'](_0x2e607a['body'],{'transaction':_0x15556f})[_0x396b('0x28')](function(_0x1dc5df){_0x3ca36e=_0x1dc5df;return _0xd132d2['addCustomFields'](_0x1dc5df,{'transaction':_0x15556f});})['then'](function(){var _0x4bdf98={'type':db[_0x396b('0x7c')][_0x396b('0x7d')],'transaction':_0x15556f};switch(_0x2e607a[_0x396b('0x57')][_0x396b('0x33')]){case _0x396b('0x7e'):_0x4bdf98[_0x396b('0x33')]=db[_0x396b('0x7c')][_0x396b('0x7d')];break;case _0x396b('0x7f'):_0x4bdf98[_0x396b('0x33')]=db[_0x396b('0x7c')][_0x396b('0x80')];break;case _0x396b('0x81'):_0x4bdf98[_0x396b('0x33')]=db['Sequelize'][_0x396b('0x82')];_0x4bdf98[_0x396b('0x83')]=![];break;default:}return db[_0x396b('0x84')][_0x396b('0x85')][_0x396b('0x86')](_0x396b('0x87'),util[_0x396b('0x6e')](_0x396b('0x88'),_0x3ca36e['id']),_0x4bdf98);})[_0x396b('0x28')](function(){return _0x3ca36e;});});}})[_0x396b('0x28')](respondWithResult(_0x1061d3,null))[_0x396b('0x49')](handleError(_0x1061d3,null));};exports[_0x396b('0x89')]=function(_0x49c6c5,_0x4549c6,_0x56bd0c){var _0x4dc5b8={};var _0x51b1f5={};var _0x56a940;var _0x600a95;return db[_0x396b('0x4d')][_0x396b('0x5b')]({'where':{'id':_0x49c6c5[_0x396b('0x4b')]['id']}})[_0x396b('0x28')](handleEntityNotFound(_0x4549c6,null))['then'](function(_0x4623e6){if(_0x4623e6){_0x56a940=_0x4623e6;_0x51b1f5['model']=_[_0x396b('0x37')](db['CmCustomField'][_0x396b('0x32')]);_0x51b1f5['query']=_[_0x396b('0x37')](_0x49c6c5['query']);_0x51b1f5[_0x396b('0x38')]=_[_0x396b('0x39')](_0x51b1f5[_0x396b('0x35')],_0x51b1f5[_0x396b('0x36')]);_0x4dc5b8[_0x396b('0x3b')]=_[_0x396b('0x39')](_0x51b1f5['model'],qs['fields'](_0x49c6c5[_0x396b('0x36')][_0x396b('0x3a')]));_0x4dc5b8[_0x396b('0x3b')]=_0x4dc5b8[_0x396b('0x3b')]['length']?_0x4dc5b8[_0x396b('0x3b')]:_0x51b1f5[_0x396b('0x35')];_0x4dc5b8[_0x396b('0x3e')]=qs['sort'](_0x49c6c5['query'][_0x396b('0x3f')]);_0x4dc5b8[_0x396b('0x40')]=qs[_0x396b('0x38')](_[_0x396b('0x41')](_0x49c6c5[_0x396b('0x36')],_0x51b1f5[_0x396b('0x38')]));_0x4dc5b8[_0x396b('0x40')]=_['merge'](_0x4dc5b8['where'],{'$or':[{'ListId':_0x4623e6['id']},{'ListId':null}]});if(_0x49c6c5[_0x396b('0x36')][_0x396b('0x42')]){_0x4dc5b8[_0x396b('0x40')]=_[_0x396b('0x43')](_0x4dc5b8[_0x396b('0x40')],{'$or':_[_0x396b('0x31')](_0x4dc5b8['attributes'],function(_0x1a18d8){var _0x1a09f6={};_0x1a09f6[_0x1a18d8]={'$like':'%'+_0x49c6c5[_0x396b('0x36')][_0x396b('0x42')]+'%'};return _0x1a09f6;})});}_0x4dc5b8=_[_0x396b('0x43')]({},_0x4dc5b8,_0x49c6c5[_0x396b('0x45')]);return db[_0x396b('0x6b')]['findAndCountAll'](_0x4dc5b8);}})[_0x396b('0x28')](respondWithResult(_0x4549c6,null))['catch'](handleError(_0x4549c6,null));};exports[_0x396b('0x8a')]=function(_0x2f775a,_0x2749ea,_0x207c6a){return db[_0x396b('0x4d')][_0x396b('0x4e')]({'where':{'id':_0x2f775a['params']['id']}})['then'](handleEntityNotFound(_0x2749ea,null))['then'](function(_0xd63835){if(_0xd63835){return _0xd63835[_0x396b('0x8a')](_0x2f775a[_0x396b('0x57')][_0x396b('0x5f')],_[_0x396b('0x8b')](_0x2f775a['body'],[_0x396b('0x5f'),'id'])||{})[_0x396b('0x8c')](function(_0x1e883b){for(var _0x4ef0e0=0x0;_0x4ef0e0<_0x2f775a[_0x396b('0x57')][_0x396b('0x5f')][_0x396b('0x3c')];_0x4ef0e0+=0x1){socket[_0x396b('0x8d')](_0x396b('0x8e'),{'UserId':Number(_0x2f775a[_0x396b('0x57')][_0x396b('0x5f')][_0x4ef0e0]),'CmListId':Number(_0x2f775a[_0x396b('0x4b')]['id'])});}return _0x1e883b;});}})[_0x396b('0x28')](respondWithResult(_0x2749ea,null))['catch'](handleError(_0x2749ea,null));};exports[_0x396b('0x8f')]=function(_0x3d75e9,_0x1f8351,_0x40224a){return db[_0x396b('0x4d')][_0x396b('0x4e')]({'where':{'id':_0x3d75e9[_0x396b('0x4b')]['id']}})[_0x396b('0x28')](handleEntityNotFound(_0x1f8351,null))[_0x396b('0x28')](function(_0x49cab8){if(_0x49cab8){return _0x49cab8[_0x396b('0x8f')](_0x3d75e9[_0x396b('0x36')]['ids'])[_0x396b('0x28')](function(){if(_[_0x396b('0x63')](_0x3d75e9['query'][_0x396b('0x5f')])){for(var _0x2e9c29=0x0;_0x2e9c29<_0x3d75e9['query'][_0x396b('0x5f')]['length'];_0x2e9c29+=0x1){socket[_0x396b('0x8d')](_0x396b('0x90'),{'UserId':Number(_0x3d75e9[_0x396b('0x36')][_0x396b('0x5f')][_0x2e9c29]),'CmListId':Number(_0x3d75e9[_0x396b('0x4b')]['id'])});}}else{socket[_0x396b('0x8d')](_0x396b('0x90'),{'UserId':Number(_0x3d75e9[_0x396b('0x36')][_0x396b('0x5f')]),'CmListId':Number(_0x3d75e9[_0x396b('0x4b')]['id'])});}});}})['then'](respondWithStatusCode(_0x1f8351,null))['catch'](handleError(_0x1f8351,null));};exports['getAgents']=function(_0x1ae2a7,_0x3c563a,_0xd603a3){var _0x1f3434={};var _0x114a52={};var _0x2ec324;var _0x2b2311;return db['CmList'][_0x396b('0x5b')]({'where':{'id':_0x1ae2a7[_0x396b('0x4b')]['id']}})[_0x396b('0x28')](handleEntityNotFound(_0x3c563a,null))[_0x396b('0x28')](function(_0x3b2333){if(_0x3b2333){_0x2ec324=_0x3b2333;_0x114a52['model']=_[_0x396b('0x37')](db[_0x396b('0x91')][_0x396b('0x32')]);_0x114a52[_0x396b('0x36')]=_[_0x396b('0x37')](_0x1ae2a7[_0x396b('0x36')]);_0x114a52[_0x396b('0x38')]=_['intersection'](_0x114a52['model'],_0x114a52['query']);_0x1f3434[_0x396b('0x3b')]=_[_0x396b('0x39')](_0x114a52[_0x396b('0x35')],qs[_0x396b('0x3a')](_0x1ae2a7[_0x396b('0x36')][_0x396b('0x3a')]));_0x1f3434[_0x396b('0x3b')]=_0x1f3434[_0x396b('0x3b')][_0x396b('0x3c')]?_0x1f3434[_0x396b('0x3b')]:_0x114a52[_0x396b('0x35')];_0x1f3434[_0x396b('0x3e')]=qs[_0x396b('0x3f')](_0x1ae2a7['query']['sort']);_0x1f3434[_0x396b('0x40')]=qs[_0x396b('0x38')](_[_0x396b('0x41')](_0x1ae2a7['query'],_0x114a52[_0x396b('0x38')]));if(_0x1ae2a7[_0x396b('0x36')]['filter']){_0x1f3434[_0x396b('0x40')]=_[_0x396b('0x43')](_0x1f3434['where'],{'$or':_[_0x396b('0x31')](_0x1f3434[_0x396b('0x3b')],function(_0x150cf3){var _0x1cb39d={};_0x1cb39d[_0x150cf3]={'$like':'%'+_0x1ae2a7[_0x396b('0x36')][_0x396b('0x42')]+'%'};return _0x1cb39d;})});}_0x1f3434=_[_0x396b('0x43')]({},_0x1f3434,_0x1ae2a7[_0x396b('0x45')]);return _0x2ec324[_0x396b('0x92')](_0x1f3434);}})[_0x396b('0x28')](function(_0x11dee4){if(_0x11dee4){_0x2b2311=_0x11dee4[_0x396b('0x3c')];if(!_0x1ae2a7[_0x396b('0x36')][_0x396b('0x5d')](_0x396b('0x3d'))){_0x1f3434[_0x396b('0x22')]=qs[_0x396b('0x22')](_0x1ae2a7[_0x396b('0x36')][_0x396b('0x22')]);_0x1f3434[_0x396b('0x1f')]=qs['offset'](_0x1ae2a7[_0x396b('0x36')][_0x396b('0x1f')]);}return _0x2ec324['getAgents'](_0x1f3434);}})[_0x396b('0x28')](function(_0x2f4ee3){if(_0x2f4ee3){return _0x2f4ee3?{'count':_0x2b2311,'rows':_0x2f4ee3}:null;}})[_0x396b('0x28')](respondWithResult(_0x3c563a,null))['catch'](handleError(_0x3c563a,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5fc3=['events','../../mysqldb','setMaxListeners','save','update','remove','emit','hook'];(function(_0x139a3c,_0x4fc883){var _0x2b375b=function(_0x525dbf){while(--_0x525dbf){_0x139a3c['push'](_0x139a3c['shift']());}};_0x2b375b(++_0x4fc883);}(_0x5fc3,0xa8));var _0x35fc=function(_0x42245d,_0x51758f){_0x42245d=_0x42245d-0x0;var _0x4b211a=_0x5fc3[_0x42245d];return _0x4b211a;};'use strict';var EventEmitter=require(_0x35fc('0x0'));var CmList=require(_0x35fc('0x1'))['db']['CmList'];var CmListEvents=new EventEmitter();CmListEvents[_0x35fc('0x2')](0x0);var events={'afterCreate':_0x35fc('0x3'),'afterUpdate':_0x35fc('0x4'),'afterDestroy':_0x35fc('0x5')};function emitEvent(_0xb4f9ce){return function(_0x5e75e6,_0x2d1404,_0x1d5fec){CmListEvents[_0x35fc('0x6')](_0xb4f9ce+':'+_0x5e75e6['id'],_0x5e75e6);CmListEvents['emit'](_0xb4f9ce,_0x5e75e6);_0x1d5fec(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];CmList[_0x35fc('0x7')](e,emitEvent(event));}}module['exports']=CmListEvents;
\ No newline at end of file
+var _0x326f=['exports','events','setMaxListeners','save','update','remove','emit','hook'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x326f,0xd1));var _0xf326=function(_0x1ff795,_0x2d4cc7){_0x1ff795=_0x1ff795-0x0;var _0x584765=_0x326f[_0x1ff795];return _0x584765;};'use strict';var EventEmitter=require(_0xf326('0x0'));var CmList=require('../../mysqldb')['db']['CmList'];var CmListEvents=new EventEmitter();CmListEvents[_0xf326('0x1')](0x0);var events={'afterCreate':_0xf326('0x2'),'afterUpdate':_0xf326('0x3'),'afterDestroy':_0xf326('0x4')};function emitEvent(_0x27e8d7){return function(_0x120a26,_0x9445c6,_0xf1c243){CmListEvents[_0xf326('0x5')](_0x27e8d7+':'+_0x120a26['id'],_0x120a26);CmListEvents[_0xf326('0x5')](_0x27e8d7,_0x120a26);_0xf1c243(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];CmList[_0xf326('0x6')](e,emitEvent(event));}}module[_0xf326('0x7')]=CmListEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6324=['define','cm_lists','lodash','util','../../config/logger','api','bluebird','path','../../config/environment','exports'];(function(_0x46b712,_0x54c51d){var _0x84f82=function(_0x2d6a05){while(--_0x2d6a05){_0x46b712['push'](_0x46b712['shift']());}};_0x84f82(++_0x54c51d);}(_0x6324,0x142));var _0x4632=function(_0x1e1b5a,_0x13b534){_0x1e1b5a=_0x1e1b5a-0x0;var _0x3206db=_0x6324[_0x1e1b5a];return _0x3206db;};'use strict';var _=require(_0x4632('0x0'));var util=require(_0x4632('0x1'));var logger=require(_0x4632('0x2'))(_0x4632('0x3'));var moment=require('moment');var BPromise=require(_0x4632('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x4632('0x5'));var rimraf=require('rimraf');var config=require(_0x4632('0x6'));var attributes=require('./cmList.attributes');module[_0x4632('0x7')]=function(_0x24aba6,_0x1f3077){return _0x24aba6[_0x4632('0x8')]('CmList',attributes,{'tableName':_0x4632('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xb43b=['rimraf','../../config/environment','./cmList.attributes','CmList','cm_lists','lodash','util','api','moment','bluebird','path'];(function(_0x5107f5,_0x51024c){var _0x42d16d=function(_0x25fddf){while(--_0x25fddf){_0x5107f5['push'](_0x5107f5['shift']());}};_0x42d16d(++_0x51024c);}(_0xb43b,0x1b2));var _0xbb43=function(_0x361508,_0x167c09){_0x361508=_0x361508-0x0;var _0x2fdf65=_0xb43b[_0x361508];return _0x2fdf65;};'use strict';var _=require(_0xbb43('0x0'));var util=require(_0xbb43('0x1'));var logger=require('../../config/logger')(_0xbb43('0x2'));var moment=require(_0xbb43('0x3'));var BPromise=require(_0xbb43('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xbb43('0x5'));var rimraf=require(_0xbb43('0x6'));var config=require(_0xbb43('0x7'));var attributes=require(_0xbb43('0x8'));module['exports']=function(_0x491fb9,_0x378df5){return _0x491fb9['define'](_0xbb43('0x9'),attributes,{'tableName':_0xbb43('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa4b6=['debug','CmList,\x20%s,\x20%s,\x20%s','stringify','error','code','message','request\x20sent','result','catch','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','jayson/promise','redis','defaults','socket.io-emitter','./cmList.socket','register','request','then','info','CmList,\x20%s,\x20%s'];(function(_0x20a9f9,_0x7a442e){var _0x2f714e=function(_0xaa29cc){while(--_0xaa29cc){_0x20a9f9['push'](_0x20a9f9['shift']());}};_0x2f714e(++_0x7a442e);}(_0xa4b6,0x168));var _0x6a4b=function(_0x2eb98c,_0x141205){_0x2eb98c=_0x2eb98c-0x0;var _0x2754ed=_0xa4b6[_0x2eb98c];return _0x2754ed;};'use strict';var _=require('lodash');var util=require(_0x6a4b('0x0'));var moment=require(_0x6a4b('0x1'));var BPromise=require(_0x6a4b('0x2'));var rs=require(_0x6a4b('0x3'));var fs=require('fs');var Redis=require(_0x6a4b('0x4'));var db=require(_0x6a4b('0x5'))['db'];var utils=require(_0x6a4b('0x6'));var logger=require(_0x6a4b('0x7'))('rpc');var config=require('../../config/environment');var jayson=require(_0x6a4b('0x8'));var client=jayson['client']['http']({'port':0x232a});config[_0x6a4b('0x9')]=_[_0x6a4b('0xa')](config[_0x6a4b('0x9')],{'host':'localhost','port':0x18eb});var socket=require(_0x6a4b('0xb'))(new Redis(config[_0x6a4b('0x9')]));require(_0x6a4b('0xc'))[_0x6a4b('0xd')](socket);function respondWithRpcPromise(_0xed91fd,_0x4cf727,_0x3fb45a){return new BPromise(function(_0x142f99,_0x748920){return client[_0x6a4b('0xe')](_0xed91fd,_0x3fb45a)[_0x6a4b('0xf')](function(_0x18c7ac){logger[_0x6a4b('0x10')](_0x6a4b('0x11'),_0x4cf727,'request\x20sent');logger[_0x6a4b('0x12')](_0x6a4b('0x13'),_0x4cf727,'request\x20sent',JSON[_0x6a4b('0x14')](_0x18c7ac));if(_0x18c7ac[_0x6a4b('0x15')]){if(_0x18c7ac[_0x6a4b('0x15')][_0x6a4b('0x16')]===0x1f4){logger[_0x6a4b('0x15')](_0x6a4b('0x11'),_0x4cf727,_0x18c7ac[_0x6a4b('0x15')][_0x6a4b('0x17')]);return _0x748920(_0x18c7ac[_0x6a4b('0x15')][_0x6a4b('0x17')]);}logger['error'](_0x6a4b('0x11'),_0x4cf727,_0x18c7ac[_0x6a4b('0x15')][_0x6a4b('0x17')]);return _0x142f99(_0x18c7ac['error'][_0x6a4b('0x17')]);}else{logger[_0x6a4b('0x10')](_0x6a4b('0x11'),_0x4cf727,_0x6a4b('0x18'));_0x142f99(_0x18c7ac[_0x6a4b('0x19')]['message']);}})[_0x6a4b('0x1a')](function(_0x8f5cfb){logger[_0x6a4b('0x15')]('CmList,\x20%s,\x20%s',_0x4cf727,_0x8f5cfb);_0x748920(_0x8f5cfb);});});}
\ No newline at end of file
+var _0xe15c=['client','http','defaults','redis','./cmList.socket','register','request','then','info','CmList,\x20%s,\x20%s','debug','CmList,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','result','catch','lodash','moment','bluebird','ioredis','../../mysqldb','rpc','../../config/environment','jayson/promise'];(function(_0x382e58,_0x3060d9){var _0x34ef18=function(_0x176a0e){while(--_0x176a0e){_0x382e58['push'](_0x382e58['shift']());}};_0x34ef18(++_0x3060d9);}(_0xe15c,0x7a));var _0xce15=function(_0x4d01e3,_0xcf3f6e){_0x4d01e3=_0x4d01e3-0x0;var _0x49a8bb=_0xe15c[_0x4d01e3];return _0x49a8bb;};'use strict';var _=require(_0xce15('0x0'));var util=require('util');var moment=require(_0xce15('0x1'));var BPromise=require(_0xce15('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xce15('0x3'));var db=require(_0xce15('0x4'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0xce15('0x5'));var config=require(_0xce15('0x6'));var jayson=require(_0xce15('0x7'));var client=jayson[_0xce15('0x8')][_0xce15('0x9')]({'port':0x232a});config['redis']=_[_0xce15('0xa')](config[_0xce15('0xb')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xce15('0xb')]));require(_0xce15('0xc'))[_0xce15('0xd')](socket);function respondWithRpcPromise(_0x3ee92f,_0x675a9e,_0x101540){return new BPromise(function(_0x49ba05,_0x32ca3c){return client[_0xce15('0xe')](_0x3ee92f,_0x101540)[_0xce15('0xf')](function(_0x1c2eb1){logger[_0xce15('0x10')](_0xce15('0x11'),_0x675a9e,'request\x20sent');logger[_0xce15('0x12')](_0xce15('0x13'),_0x675a9e,_0xce15('0x14'),JSON[_0xce15('0x15')](_0x1c2eb1));if(_0x1c2eb1[_0xce15('0x16')]){if(_0x1c2eb1[_0xce15('0x16')]['code']===0x1f4){logger[_0xce15('0x16')](_0xce15('0x11'),_0x675a9e,_0x1c2eb1[_0xce15('0x16')]['message']);return _0x32ca3c(_0x1c2eb1['error']['message']);}logger[_0xce15('0x16')](_0xce15('0x11'),_0x675a9e,_0x1c2eb1[_0xce15('0x16')][_0xce15('0x17')]);return _0x49ba05(_0x1c2eb1[_0xce15('0x16')][_0xce15('0x17')]);}else{logger[_0xce15('0x10')](_0xce15('0x11'),_0x675a9e,'request\x20sent');_0x49ba05(_0x1c2eb1[_0xce15('0x18')]['message']);}})[_0xce15('0x19')](function(_0x38c9e2){logger['error'](_0xce15('0x11'),_0x675a9e,_0x38c9e2);_0x32ca3c(_0x38c9e2);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd3aa=['emit','removeListener','length','cmList:','save','remove','update'];(function(_0x371cfa,_0x485a7a){var _0x37ea75=function(_0x3e93da){while(--_0x3e93da){_0x371cfa['push'](_0x371cfa['shift']());}};_0x37ea75(++_0x485a7a);}(_0xd3aa,0x1a8));var _0xad3a=function(_0x158f01,_0x12af3e){_0x158f01=_0x158f01-0x0;var _0x5ef74e=_0xd3aa[_0x158f01];return _0x5ef74e;};'use strict';var CmListEvents=require('./cmList.events');var events=[_0xad3a('0x0'),_0xad3a('0x1'),_0xad3a('0x2')];function createListener(_0x27bbf1,_0x462ad1){return function(_0x5ca24f){_0x462ad1[_0xad3a('0x3')](_0x27bbf1,_0x5ca24f);};}function removeListener(_0x43af88,_0x42a870){return function(){CmListEvents[_0xad3a('0x4')](_0x43af88,_0x42a870);};}exports['register']=function(_0x40df5b){for(var _0x20ea7f=0x0,_0x58a3b5=events[_0xad3a('0x5')];_0x20ea7f<_0x58a3b5;_0x20ea7f++){var _0x3a2f6e=events[_0x20ea7f];var _0x270ef9=createListener(_0xad3a('0x6')+_0x3a2f6e,_0x40df5b);CmListEvents['on'](_0x3a2f6e,_0x270ef9);}};
\ No newline at end of file
+var _0xfe6c=['save','emit','removeListener','register','length','cmList:','./cmList.events'];(function(_0x26a818,_0x40708a){var _0x5d8ca0=function(_0x3cc7ed){while(--_0x3cc7ed){_0x26a818['push'](_0x26a818['shift']());}};_0x5d8ca0(++_0x40708a);}(_0xfe6c,0x7d));var _0xcfe6=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xfe6c[_0x3dd15e];return _0x231fd0;};'use strict';var CmListEvents=require(_0xcfe6('0x0'));var events=[_0xcfe6('0x1'),'remove','update'];function createListener(_0x333a8,_0x2a5d04){return function(_0x555be){_0x2a5d04[_0xcfe6('0x2')](_0x333a8,_0x555be);};}function removeListener(_0x5ecc70,_0x49d3d9){return function(){CmListEvents[_0xcfe6('0x3')](_0x5ecc70,_0x49d3d9);};}exports[_0xcfe6('0x4')]=function(_0x34d362){for(var _0x5485d1=0x0,_0x2b1c6c=events[_0xcfe6('0x5')];_0x5485d1<_0x2b1c6c;_0x5485d1++){var _0x236535=events[_0x5485d1];var _0x1d66b1=createListener(_0xcfe6('0x6')+_0x236535,_0x34d362);CmListEvents['on'](_0x236535,_0x1d66b1);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6f5a=['../../config/environment','./cmList.controller','get','index','isAuthenticated','describe','show','/:id/dispositions','getDispositions','getContacts','getContactsCsv','/:id/fields','getCustomFields','/:id/users','getAgents','post','create','addDisposition','addContacts','addAgents','put','update','delete','/:id','destroy','multer','util','path','express','../../components/auth/service','../../components/interaction/service'];(function(_0x155579,_0x26aca0){var _0x19d7ef=function(_0xe78c4){while(--_0xe78c4){_0x155579['push'](_0x155579['shift']());}};_0x19d7ef(++_0x26aca0);}(_0x6f5a,0x1cb));var _0xa6f5=function(_0x5efa68,_0x2e2f9f){_0x5efa68=_0x5efa68-0x0;var _0x49ceee=_0x6f5a[_0x5efa68];return _0x49ceee;};'use strict';var multer=require(_0xa6f5('0x0'));var util=require(_0xa6f5('0x1'));var path=require(_0xa6f5('0x2'));var timeout=require('connect-timeout');var express=require(_0xa6f5('0x3'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0xa6f5('0x4'));var interaction=require(_0xa6f5('0x5'));var config=require(_0xa6f5('0x6'));var controller=require(_0xa6f5('0x7'));router[_0xa6f5('0x8')]('/',auth['isAuthenticated'](),controller[_0xa6f5('0x9')]);router[_0xa6f5('0x8')]('/describe',auth[_0xa6f5('0xa')](),controller[_0xa6f5('0xb')]);router[_0xa6f5('0x8')]('/:id',auth['isAuthenticated'](),controller[_0xa6f5('0xc')]);router[_0xa6f5('0x8')](_0xa6f5('0xd'),auth[_0xa6f5('0xa')](),controller[_0xa6f5('0xe')]);router[_0xa6f5('0x8')]('/:id/contacts',auth['isAuthenticated'](),controller[_0xa6f5('0xf')]);router['get']('/:id/contacts/csv',auth[_0xa6f5('0xa')](),controller[_0xa6f5('0x10')]);router[_0xa6f5('0x8')](_0xa6f5('0x11'),auth[_0xa6f5('0xa')](),controller[_0xa6f5('0x12')]);router['get'](_0xa6f5('0x13'),auth[_0xa6f5('0xa')](),controller[_0xa6f5('0x14')]);router[_0xa6f5('0x15')]('/',auth[_0xa6f5('0xa')](),controller[_0xa6f5('0x16')]);router[_0xa6f5('0x15')](_0xa6f5('0xd'),auth['isAuthenticated'](),controller[_0xa6f5('0x17')]);router[_0xa6f5('0x15')]('/:id/contacts',auth[_0xa6f5('0xa')](),controller[_0xa6f5('0x18')]);router[_0xa6f5('0x15')](_0xa6f5('0x11'),auth['isAuthenticated'](),controller['addCustomField']);router['post'](_0xa6f5('0x13'),auth[_0xa6f5('0xa')](),controller[_0xa6f5('0x19')]);router[_0xa6f5('0x1a')]('/:id',auth['isAuthenticated'](),controller[_0xa6f5('0x1b')]);router[_0xa6f5('0x1c')](_0xa6f5('0x1d'),auth[_0xa6f5('0xa')](),controller[_0xa6f5('0x1e')]);router[_0xa6f5('0x1c')](_0xa6f5('0xd'),auth[_0xa6f5('0xa')](),controller['removeDispositions']);router[_0xa6f5('0x1c')](_0xa6f5('0x13'),auth['isAuthenticated'](),controller['removeAgents']);module['exports']=router;
\ No newline at end of file
+var _0x4fc6=['multer','util','path','connect-timeout','express','fs-extra','../../components/interaction/service','../../config/environment','get','isAuthenticated','/:id','show','/:id/dispositions','getContacts','getContactsCsv','/:id/fields','getCustomFields','getAgents','post','create','addDisposition','/:id/contacts','addContacts','/:id/users','addAgents','update','delete','destroy','removeDispositions','removeAgents','exports'];(function(_0x67f95e,_0x3ca797){var _0x538f5a=function(_0xc919e9){while(--_0xc919e9){_0x67f95e['push'](_0x67f95e['shift']());}};_0x538f5a(++_0x3ca797);}(_0x4fc6,0x9b));var _0x64fc=function(_0x516326,_0xb3c8bd){_0x516326=_0x516326-0x0;var _0x33ac9b=_0x4fc6[_0x516326];return _0x33ac9b;};'use strict';var multer=require(_0x64fc('0x0'));var util=require(_0x64fc('0x1'));var path=require(_0x64fc('0x2'));var timeout=require(_0x64fc('0x3'));var express=require(_0x64fc('0x4'));var router=express['Router']();var fs_extra=require(_0x64fc('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x64fc('0x6'));var config=require(_0x64fc('0x7'));var controller=require('./cmList.controller');router[_0x64fc('0x8')]('/',auth[_0x64fc('0x9')](),controller['index']);router[_0x64fc('0x8')]('/describe',auth[_0x64fc('0x9')](),controller['describe']);router[_0x64fc('0x8')](_0x64fc('0xa'),auth[_0x64fc('0x9')](),controller[_0x64fc('0xb')]);router[_0x64fc('0x8')](_0x64fc('0xc'),auth[_0x64fc('0x9')](),controller['getDispositions']);router['get']('/:id/contacts',auth[_0x64fc('0x9')](),controller[_0x64fc('0xd')]);router['get']('/:id/contacts/csv',auth[_0x64fc('0x9')](),controller[_0x64fc('0xe')]);router[_0x64fc('0x8')](_0x64fc('0xf'),auth[_0x64fc('0x9')](),controller[_0x64fc('0x10')]);router[_0x64fc('0x8')]('/:id/users',auth['isAuthenticated'](),controller[_0x64fc('0x11')]);router[_0x64fc('0x12')]('/',auth[_0x64fc('0x9')](),controller[_0x64fc('0x13')]);router[_0x64fc('0x12')](_0x64fc('0xc'),auth[_0x64fc('0x9')](),controller[_0x64fc('0x14')]);router[_0x64fc('0x12')](_0x64fc('0x15'),auth[_0x64fc('0x9')](),controller[_0x64fc('0x16')]);router[_0x64fc('0x12')](_0x64fc('0xf'),auth['isAuthenticated'](),controller['addCustomField']);router[_0x64fc('0x12')](_0x64fc('0x17'),auth['isAuthenticated'](),controller[_0x64fc('0x18')]);router['put'](_0x64fc('0xa'),auth['isAuthenticated'](),controller[_0x64fc('0x19')]);router[_0x64fc('0x1a')](_0x64fc('0xa'),auth[_0x64fc('0x9')](),controller[_0x64fc('0x1b')]);router[_0x64fc('0x1a')](_0x64fc('0xc'),auth['isAuthenticated'](),controller[_0x64fc('0x1c')]);router['delete'](_0x64fc('0x17'),auth[_0x64fc('0x9')](),controller[_0x64fc('0x1d')]);module[_0x64fc('0x1e')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaeb8=['exports','VIRTUAL','getDataValue','STRING','sequelize'];(function(_0x2dafbe,_0x5d04de){var _0x58a45a=function(_0x50ac96){while(--_0x50ac96){_0x2dafbe['push'](_0x2dafbe['shift']());}};_0x58a45a(++_0x5d04de);}(_0xaeb8,0xf9));var _0x8aeb=function(_0x454589,_0x3e852e){_0x454589=_0x454589-0x0;var _0x468c5c=_0xaeb8[_0x454589];return _0x468c5c;};'use strict';var Sequelize=require(_0x8aeb('0x0'));module[_0x8aeb('0x1')]={'name':{'type':Sequelize[_0x8aeb('0x2')],'get':function(_0x2eac21){return this[_0x8aeb('0x3')]('field');}},'field':{'type':Sequelize[_0x8aeb('0x4')],'allowNull':![]},'operator':{'type':Sequelize[_0x8aeb('0x4')],'allowNull':![]},'value':{'type':Sequelize[_0x8aeb('0x4')],'allowNull':![]}};
\ No newline at end of file
+var _0x330d=['VIRTUAL','field','STRING'];(function(_0x5c0c24,_0x20c6bc){var _0x881d50=function(_0x2c26ed){while(--_0x2c26ed){_0x5c0c24['push'](_0x5c0c24['shift']());}};_0x881d50(++_0x20c6bc);}(_0x330d,0x1f2));var _0xd330=function(_0x3740fe,_0x6c543c){_0x3740fe=_0x3740fe-0x0;var _0x55492b=_0x330d[_0x3740fe];return _0x55492b;};'use strict';var Sequelize=require('sequelize');module['exports']={'name':{'type':Sequelize[_0xd330('0x0')],'get':function(_0x3847be){return this['getDataValue'](_0xd330('0x1'));}},'field':{'type':Sequelize[_0xd330('0x2')],'allowNull':![]},'operator':{'type':Sequelize['STRING'],'allowNull':![]},'value':{'type':Sequelize[_0xd330('0x2')],'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a54=['sox','to-csv','fs-extra','squel','crypto','desk.js','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','reject','save','update','then','destroy','error','stack','name','send','body','Condition','find','catch','eml-format','rimraf','zip-dir','request-promise','moment','mustache','util','path'];(function(_0x8ae442,_0x306ae7){var _0x5743c4=function(_0x12414f){while(--_0x12414f){_0x8ae442['push'](_0x8ae442['shift']());}};_0x5743c4(++_0x306ae7);}(_0x7a54,0x106));var _0x47a5=function(_0x490be2,_0x1c0ce8){_0x490be2=_0x490be2-0x0;var _0x129601=_0x7a54[_0x490be2];return _0x129601;};'use strict';var emlformat=require(_0x47a5('0x0'));var rimraf=require(_0x47a5('0x1'));var zipdir=require(_0x47a5('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x47a5('0x3'));var moment=require(_0x47a5('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x47a5('0x5'));var util=require(_0x47a5('0x6'));var path=require(_0x47a5('0x7'));var sox=require(_0x47a5('0x8'));var csv=require(_0x47a5('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x47a5('0xa'));var _=require('lodash');var squel=require(_0x47a5('0xb'));var crypto=require(_0x47a5('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x47a5('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x47a5('0xe'));var authService=require(_0x47a5('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0x47a5('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x47a5('0x11'));var utils=require(_0x47a5('0x12'));var config=require(_0x47a5('0x13'));var licenseUtil=require(_0x47a5('0x14'));var db=require(_0x47a5('0x15'))['db'];function respondWithStatusCode(_0xd308b8,_0x1eae59){_0x1eae59=_0x1eae59||0xcc;return function(_0x5beb89){if(_0x5beb89){return _0xd308b8[_0x47a5('0x16')](_0x1eae59);}return _0xd308b8[_0x47a5('0x17')](_0x1eae59)[_0x47a5('0x18')]();};}function respondWithResult(_0x711793,_0x139f25){_0x139f25=_0x139f25||0xc8;return function(_0x620ee9){if(_0x620ee9){return _0x711793[_0x47a5('0x17')](_0x139f25)[_0x47a5('0x19')](_0x620ee9);}};}function respondWithFilteredResult(_0x4e99a8,_0x362359){return function(_0x11faf5){if(_0x11faf5){var _0x3b001e=typeof _0x362359[_0x47a5('0x1a')]===_0x47a5('0x1b')&&typeof _0x362359['limit']==='undefined';var _0x138bc0=_0x11faf5['count'];var _0x5247fd=_0x3b001e?0x0:_0x362359[_0x47a5('0x1a')];var _0xaf70a6=_0x3b001e?_0x11faf5[_0x47a5('0x1c')]:_0x362359[_0x47a5('0x1a')]+_0x362359[_0x47a5('0x1d')];var _0x12b98e;if(_0xaf70a6>=_0x138bc0){_0xaf70a6=_0x138bc0;_0x12b98e=0xc8;}else{_0x12b98e=0xce;}_0x4e99a8[_0x47a5('0x17')](_0x12b98e);return _0x4e99a8[_0x47a5('0x1e')](_0x47a5('0x1f'),_0x5247fd+'-'+_0xaf70a6+'/'+_0x138bc0)['json'](_0x11faf5);}return null;};}function patchUpdates(_0x1570bc){return function(_0xf160ba){try{jsonpatch['apply'](_0xf160ba,_0x1570bc,!![]);}catch(_0x2b0360){return BPromise[_0x47a5('0x20')](_0x2b0360);}return _0xf160ba[_0x47a5('0x21')]();};}function saveUpdates(_0x4c5910,_0xb8ae6c){return function(_0x2f142b){if(_0x2f142b){return _0x2f142b[_0x47a5('0x22')](_0x4c5910)[_0x47a5('0x23')](function(_0x5ef1b1){return _0x5ef1b1;});}return null;};}function removeEntity(_0xe2dea9,_0x385687){return function(_0x513981){if(_0x513981){return _0x513981[_0x47a5('0x24')]()[_0x47a5('0x23')](function(){_0xe2dea9[_0x47a5('0x17')](0xcc)[_0x47a5('0x18')]();});}};}function handleEntityNotFound(_0x3abd6a,_0x50bf17){return function(_0x53078a){if(!_0x53078a){_0x3abd6a[_0x47a5('0x16')](0x194);}return _0x53078a;};}function handleError(_0x5686db,_0x1ea9c8){_0x1ea9c8=_0x1ea9c8||0x1f4;return function(_0x5b6c4e){logger[_0x47a5('0x25')](_0x5b6c4e[_0x47a5('0x26')]);if(_0x5b6c4e[_0x47a5('0x27')]){delete _0x5b6c4e[_0x47a5('0x27')];}_0x5686db[_0x47a5('0x17')](_0x1ea9c8)[_0x47a5('0x28')](_0x5b6c4e);};}exports[_0x47a5('0x22')]=function(_0x136b14,_0x16631f){if(_0x136b14[_0x47a5('0x29')]['id']){delete _0x136b14[_0x47a5('0x29')]['id'];}return db[_0x47a5('0x2a')][_0x47a5('0x2b')]({'where':{'id':_0x136b14['params']['id']}})[_0x47a5('0x23')](handleEntityNotFound(_0x16631f,null))['then'](saveUpdates(_0x136b14[_0x47a5('0x29')],null))[_0x47a5('0x23')](respondWithResult(_0x16631f,null))[_0x47a5('0x2c')](handleError(_0x16631f,null));};exports['destroy']=function(_0x256650,_0x625952){return db[_0x47a5('0x2a')][_0x47a5('0x2b')]({'where':{'id':_0x256650['params']['id']}})['then'](handleEntityNotFound(_0x625952,null))[_0x47a5('0x23')](removeEntity(_0x625952,null))[_0x47a5('0x2c')](handleError(_0x625952,null));};
\ No newline at end of file
+var _0x7a54=['sox','to-csv','fs-extra','squel','crypto','desk.js','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','reject','save','update','then','destroy','error','stack','name','send','body','Condition','find','catch','eml-format','rimraf','zip-dir','request-promise','moment','mustache','util','path'];(function(_0x3a7747,_0x1d8a77){var _0x19b393=function(_0x59baf1){while(--_0x59baf1){_0x3a7747['push'](_0x3a7747['shift']());}};_0x19b393(++_0x1d8a77);}(_0x7a54,0x106));var _0x47a5=function(_0x474c9e,_0x8f751f){_0x474c9e=_0x474c9e-0x0;var _0x1ce83d=_0x7a54[_0x474c9e];return _0x1ce83d;};'use strict';var emlformat=require(_0x47a5('0x0'));var rimraf=require(_0x47a5('0x1'));var zipdir=require(_0x47a5('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x47a5('0x3'));var moment=require(_0x47a5('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x47a5('0x5'));var util=require(_0x47a5('0x6'));var path=require(_0x47a5('0x7'));var sox=require(_0x47a5('0x8'));var csv=require(_0x47a5('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x47a5('0xa'));var _=require('lodash');var squel=require(_0x47a5('0xb'));var crypto=require(_0x47a5('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x47a5('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x47a5('0xe'));var authService=require(_0x47a5('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0x47a5('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x47a5('0x11'));var utils=require(_0x47a5('0x12'));var config=require(_0x47a5('0x13'));var licenseUtil=require(_0x47a5('0x14'));var db=require(_0x47a5('0x15'))['db'];function respondWithStatusCode(_0xd308b8,_0x1eae59){_0x1eae59=_0x1eae59||0xcc;return function(_0x5beb89){if(_0x5beb89){return _0xd308b8[_0x47a5('0x16')](_0x1eae59);}return _0xd308b8[_0x47a5('0x17')](_0x1eae59)[_0x47a5('0x18')]();};}function respondWithResult(_0x711793,_0x139f25){_0x139f25=_0x139f25||0xc8;return function(_0x620ee9){if(_0x620ee9){return _0x711793[_0x47a5('0x17')](_0x139f25)[_0x47a5('0x19')](_0x620ee9);}};}function respondWithFilteredResult(_0x4e99a8,_0x362359){return function(_0x11faf5){if(_0x11faf5){var _0x3b001e=typeof _0x362359[_0x47a5('0x1a')]===_0x47a5('0x1b')&&typeof _0x362359['limit']==='undefined';var _0x138bc0=_0x11faf5['count'];var _0x5247fd=_0x3b001e?0x0:_0x362359[_0x47a5('0x1a')];var _0xaf70a6=_0x3b001e?_0x11faf5[_0x47a5('0x1c')]:_0x362359[_0x47a5('0x1a')]+_0x362359[_0x47a5('0x1d')];var _0x12b98e;if(_0xaf70a6>=_0x138bc0){_0xaf70a6=_0x138bc0;_0x12b98e=0xc8;}else{_0x12b98e=0xce;}_0x4e99a8[_0x47a5('0x17')](_0x12b98e);return _0x4e99a8[_0x47a5('0x1e')](_0x47a5('0x1f'),_0x5247fd+'-'+_0xaf70a6+'/'+_0x138bc0)['json'](_0x11faf5);}return null;};}function patchUpdates(_0x1570bc){return function(_0xf160ba){try{jsonpatch['apply'](_0xf160ba,_0x1570bc,!![]);}catch(_0x2b0360){return BPromise[_0x47a5('0x20')](_0x2b0360);}return _0xf160ba[_0x47a5('0x21')]();};}function saveUpdates(_0x4c5910,_0xb8ae6c){return function(_0x2f142b){if(_0x2f142b){return _0x2f142b[_0x47a5('0x22')](_0x4c5910)[_0x47a5('0x23')](function(_0x5ef1b1){return _0x5ef1b1;});}return null;};}function removeEntity(_0xe2dea9,_0x385687){return function(_0x513981){if(_0x513981){return _0x513981[_0x47a5('0x24')]()[_0x47a5('0x23')](function(){_0xe2dea9[_0x47a5('0x17')](0xcc)[_0x47a5('0x18')]();});}};}function handleEntityNotFound(_0x3abd6a,_0x50bf17){return function(_0x53078a){if(!_0x53078a){_0x3abd6a[_0x47a5('0x16')](0x194);}return _0x53078a;};}function handleError(_0x5686db,_0x1ea9c8){_0x1ea9c8=_0x1ea9c8||0x1f4;return function(_0x5b6c4e){logger[_0x47a5('0x25')](_0x5b6c4e[_0x47a5('0x26')]);if(_0x5b6c4e[_0x47a5('0x27')]){delete _0x5b6c4e[_0x47a5('0x27')];}_0x5686db[_0x47a5('0x17')](_0x1ea9c8)[_0x47a5('0x28')](_0x5b6c4e);};}exports[_0x47a5('0x22')]=function(_0x136b14,_0x16631f){if(_0x136b14[_0x47a5('0x29')]['id']){delete _0x136b14[_0x47a5('0x29')]['id'];}return db[_0x47a5('0x2a')][_0x47a5('0x2b')]({'where':{'id':_0x136b14['params']['id']}})[_0x47a5('0x23')](handleEntityNotFound(_0x16631f,null))['then'](saveUpdates(_0x136b14[_0x47a5('0x29')],null))[_0x47a5('0x23')](respondWithResult(_0x16631f,null))[_0x47a5('0x2c')](handleError(_0x16631f,null));};exports['destroy']=function(_0x256650,_0x625952){return db[_0x47a5('0x2a')][_0x47a5('0x2b')]({'where':{'id':_0x256650['params']['id']}})['then'](handleEntityNotFound(_0x625952,null))[_0x47a5('0x23')](removeEntity(_0x625952,null))[_0x47a5('0x2c')](handleError(_0x625952,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcb16=['bluebird','request-promise','path','rimraf','../../config/environment','./condition.attributes','tools_conditions','lodash','api','moment'];(function(_0x3134fa,_0x35833b){var _0x52396a=function(_0x232e9b){while(--_0x232e9b){_0x3134fa['push'](_0x3134fa['shift']());}};_0x52396a(++_0x35833b);}(_0xcb16,0x133));var _0x6cb1=function(_0x28852a,_0x22f72a){_0x28852a=_0x28852a-0x0;var _0x1d7100=_0xcb16[_0x28852a];return _0x1d7100;};'use strict';var _=require(_0x6cb1('0x0'));var util=require('util');var logger=require('../../config/logger')(_0x6cb1('0x1'));var moment=require(_0x6cb1('0x2'));var BPromise=require(_0x6cb1('0x3'));var rp=require(_0x6cb1('0x4'));var fs=require('fs');var path=require(_0x6cb1('0x5'));var rimraf=require(_0x6cb1('0x6'));var config=require(_0x6cb1('0x7'));var attributes=require(_0x6cb1('0x8'));module['exports']=function(_0x2de2ee,_0x41f6ca){return _0x2de2ee['define']('Condition',attributes,{'tableName':_0x6cb1('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xf463=['util','../../config/logger','api','moment','bluebird','request-promise','rimraf','../../config/environment','./condition.attributes','exports','define','Condition','tools_conditions','lodash'];(function(_0x49c057,_0xc808ed){var _0xd8f0e6=function(_0x5b9042){while(--_0x5b9042){_0x49c057['push'](_0x49c057['shift']());}};_0xd8f0e6(++_0xc808ed);}(_0xf463,0x109));var _0x3f46=function(_0x1c18c2,_0x16a0e2){_0x1c18c2=_0x1c18c2-0x0;var _0x4fa682=_0xf463[_0x1c18c2];return _0x4fa682;};'use strict';var _=require(_0x3f46('0x0'));var util=require(_0x3f46('0x1'));var logger=require(_0x3f46('0x2'))(_0x3f46('0x3'));var moment=require(_0x3f46('0x4'));var BPromise=require(_0x3f46('0x5'));var rp=require(_0x3f46('0x6'));var fs=require('fs');var path=require('path');var rimraf=require(_0x3f46('0x7'));var config=require(_0x3f46('0x8'));var attributes=require(_0x3f46('0x9'));module[_0x3f46('0xa')]=function(_0x57bb85,_0x21928c){return _0x57bb85[_0x3f46('0xb')](_0x3f46('0xc'),attributes,{'tableName':_0x3f46('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5f50=['client','request','then','debug','Condition,\x20%s,\x20%s,\x20%s','request\x20sent','error','message','info','result','catch','Condition,\x20%s,\x20%s','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise'];(function(_0x4b4f24,_0x5654a8){var _0x1c13d4=function(_0x4940bf){while(--_0x4940bf){_0x4b4f24['push'](_0x4b4f24['shift']());}};_0x1c13d4(++_0x5654a8);}(_0x5f50,0xde));var _0x05f5=function(_0x79d4b8,_0x32c08d){_0x79d4b8=_0x79d4b8-0x0;var _0x522d6d=_0x5f50[_0x79d4b8];return _0x522d6d;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x05f5('0x0'));var BPromise=require(_0x05f5('0x1'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x05f5('0x2'));var db=require(_0x05f5('0x3'))['db'];var utils=require(_0x05f5('0x4'));var logger=require(_0x05f5('0x5'))(_0x05f5('0x6'));var config=require(_0x05f5('0x7'));var jayson=require(_0x05f5('0x8'));var client=jayson[_0x05f5('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x7619c0,_0x9cfe99,_0x456eed){return new BPromise(function(_0x58676f,_0x5e3220){return client[_0x05f5('0xa')](_0x7619c0,_0x456eed)[_0x05f5('0xb')](function(_0x2ffb95){logger['info']('Condition,\x20%s,\x20%s',_0x9cfe99,'request\x20sent');logger[_0x05f5('0xc')](_0x05f5('0xd'),_0x9cfe99,_0x05f5('0xe'),JSON['stringify'](_0x2ffb95));if(_0x2ffb95[_0x05f5('0xf')]){if(_0x2ffb95[_0x05f5('0xf')]['code']===0x1f4){logger[_0x05f5('0xf')]('Condition,\x20%s,\x20%s',_0x9cfe99,_0x2ffb95[_0x05f5('0xf')][_0x05f5('0x10')]);return _0x5e3220(_0x2ffb95[_0x05f5('0xf')][_0x05f5('0x10')]);}logger[_0x05f5('0xf')]('Condition,\x20%s,\x20%s',_0x9cfe99,_0x2ffb95[_0x05f5('0xf')][_0x05f5('0x10')]);return _0x58676f(_0x2ffb95[_0x05f5('0xf')][_0x05f5('0x10')]);}else{logger[_0x05f5('0x11')]('Condition,\x20%s,\x20%s',_0x9cfe99,'request\x20sent');_0x58676f(_0x2ffb95[_0x05f5('0x12')][_0x05f5('0x10')]);}})[_0x05f5('0x13')](function(_0x29f4a6){logger[_0x05f5('0xf')](_0x05f5('0x14'),_0x9cfe99,_0x29f4a6);_0x5e3220(_0x29f4a6);});});}
\ No newline at end of file
+var _0x21fe=['../../config/utils','../../config/logger','rpc','jayson/promise','client','http','then','info','Condition,\x20%s,\x20%s','Condition,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb'];(function(_0x1d1854,_0x4a83b1){var _0x5b2acb=function(_0x29ae13){while(--_0x29ae13){_0x1d1854['push'](_0x1d1854['shift']());}};_0x5b2acb(++_0x4a83b1);}(_0x21fe,0x191));var _0xe21f=function(_0x310640,_0xc57d29){_0x310640=_0x310640-0x0;var _0x22204d=_0x21fe[_0x310640];return _0x22204d;};'use strict';var _=require(_0xe21f('0x0'));var util=require(_0xe21f('0x1'));var moment=require(_0xe21f('0x2'));var BPromise=require(_0xe21f('0x3'));var rs=require(_0xe21f('0x4'));var fs=require('fs');var Redis=require(_0xe21f('0x5'));var db=require(_0xe21f('0x6'))['db'];var utils=require(_0xe21f('0x7'));var logger=require(_0xe21f('0x8'))(_0xe21f('0x9'));var config=require('../../config/environment');var jayson=require(_0xe21f('0xa'));var client=jayson[_0xe21f('0xb')][_0xe21f('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x59ab88,_0x19d27f,_0xb120d){return new BPromise(function(_0x54085a,_0x8b6d1){return client['request'](_0x59ab88,_0xb120d)[_0xe21f('0xd')](function(_0x2f79a9){logger[_0xe21f('0xe')](_0xe21f('0xf'),_0x19d27f,'request\x20sent');logger['debug'](_0xe21f('0x10'),_0x19d27f,_0xe21f('0x11'),JSON[_0xe21f('0x12')](_0x2f79a9));if(_0x2f79a9[_0xe21f('0x13')]){if(_0x2f79a9['error'][_0xe21f('0x14')]===0x1f4){logger['error'](_0xe21f('0xf'),_0x19d27f,_0x2f79a9['error'][_0xe21f('0x15')]);return _0x8b6d1(_0x2f79a9[_0xe21f('0x13')][_0xe21f('0x15')]);}logger[_0xe21f('0x13')]('Condition,\x20%s,\x20%s',_0x19d27f,_0x2f79a9[_0xe21f('0x13')]['message']);return _0x54085a(_0x2f79a9[_0xe21f('0x13')][_0xe21f('0x15')]);}else{logger[_0xe21f('0xe')](_0xe21f('0xf'),_0x19d27f,_0xe21f('0x11'));_0x54085a(_0x2f79a9[_0xe21f('0x16')][_0xe21f('0x15')]);}})[_0xe21f('0x17')](function(_0x23276e){logger[_0xe21f('0x13')]('Condition,\x20%s,\x20%s',_0x19d27f,_0x23276e);_0x8b6d1(_0x23276e);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1ccb=['express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./condition.controller','put','/:id','isAuthenticated','update','delete','destroy','exports','multer','util','path'];(function(_0x341e0f,_0x4a09d0){var _0x59555a=function(_0x4343a8){while(--_0x4343a8){_0x341e0f['push'](_0x341e0f['shift']());}};_0x59555a(++_0x4a09d0);}(_0x1ccb,0x1d9));var _0xb1cc=function(_0x15ede0,_0x2e955e){_0x15ede0=_0x15ede0-0x0;var _0x2473f9=_0x1ccb[_0x15ede0];return _0x2473f9;};'use strict';var multer=require(_0xb1cc('0x0'));var util=require(_0xb1cc('0x1'));var path=require(_0xb1cc('0x2'));var timeout=require('connect-timeout');var express=require(_0xb1cc('0x3'));var router=express[_0xb1cc('0x4')]();var fs_extra=require(_0xb1cc('0x5'));var auth=require(_0xb1cc('0x6'));var interaction=require(_0xb1cc('0x7'));var config=require(_0xb1cc('0x8'));var controller=require(_0xb1cc('0x9'));router[_0xb1cc('0xa')](_0xb1cc('0xb'),auth[_0xb1cc('0xc')](),controller[_0xb1cc('0xd')]);router[_0xb1cc('0xe')](_0xb1cc('0xb'),auth[_0xb1cc('0xc')](),controller[_0xb1cc('0xf')]);module[_0xb1cc('0x10')]=router;
\ No newline at end of file
+var _0x833d=['multer','path','express','Router','fs-extra','../../components/auth/service','./condition.controller','/:id','isAuthenticated','update','delete','exports'];(function(_0xdc3aa0,_0x1fcecc){var _0x4f014f=function(_0x396cd9){while(--_0x396cd9){_0xdc3aa0['push'](_0xdc3aa0['shift']());}};_0x4f014f(++_0x1fcecc);}(_0x833d,0x1ec));var _0xd833=function(_0x397342,_0x39f297){_0x397342=_0x397342-0x0;var _0x197051=_0x833d[_0x397342];return _0x197051;};'use strict';var multer=require(_0xd833('0x0'));var util=require('util');var path=require(_0xd833('0x1'));var timeout=require('connect-timeout');var express=require(_0xd833('0x2'));var router=express[_0xd833('0x3')]();var fs_extra=require(_0xd833('0x4'));var auth=require(_0xd833('0x5'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0xd833('0x6'));router['put'](_0xd833('0x7'),auth[_0xd833('0x8')](),controller[_0xd833('0x9')]);router[_0xd833('0xa')](_0xd833('0x7'),auth[_0xd833('0x8')](),controller['destroy']);module[_0xd833('0xb')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbaf0=['name','exports','STRING'];(function(_0xcfeff4,_0x3f2e19){var _0xb2fadc=function(_0x4cd013){while(--_0x4cd013){_0xcfeff4['push'](_0xcfeff4['shift']());}};_0xb2fadc(++_0x3f2e19);}(_0xbaf0,0x12a));var _0x0baf=function(_0x3947c9,_0x4d6c97){_0x3947c9=_0x3947c9-0x0;var _0x2e7871=_0xbaf0[_0x3947c9];return _0x2e7871;};'use strict';var Sequelize=require('sequelize');module[_0x0baf('0x0')]={'name':{'type':Sequelize[_0x0baf('0x1')],'allowNull':![],'unique':_0x0baf('0x2')},'description':{'type':Sequelize[_0x0baf('0x1')]}};
\ No newline at end of file
+var _0xb10b=['name','sequelize','STRING'];(function(_0xe44a82,_0x1e998d){var _0x2d79da=function(_0x188168){while(--_0x188168){_0xe44a82['push'](_0xe44a82['shift']());}};_0x2d79da(++_0x1e998d);}(_0xb10b,0x12a));var _0xbb10=function(_0x3855fd,_0x26003f){_0x3855fd=_0x3855fd-0x0;var _0x226a53=_0xb10b[_0x3855fd];return _0x226a53;};'use strict';var Sequelize=require(_0xbb10('0x0'));module['exports']={'name':{'type':Sequelize[_0xbb10('0x1')],'allowNull':![],'unique':_0xbb10('0x2')},'description':{'type':Sequelize[_0xbb10('0x1')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x95e7=['autoAssociation','catch','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','clone','include','omit','createdAt','updatedAt','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','CustomDashboards','iframe','attrUrl','attrs','https://','attrPath','value','clock','attrHourFormat','HH:mm:ss','attrTimezone','0.00','attrFontSize','counter','attrMetric','attrVoiceQueues','multibar-chart','attrSerie1','attrSerie2','attrSerie3','attrReport','reportType','attrRefresh','widgetAttributes:\x20%s','stringify','addItem','DashboardId','DashboardItem','findOne','getItems','eml-format','rimraf','zip-dir','fast-json-patch','moment','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../config/license/hardware','../../config/utils','../../config/license/util','redis','defaults','./dashboard.socket','register','sendStatus','status','end','json','offset','limit','undefined','count','set','Content-Range','apply','reject','save','update','then','destroy','get','UserProfileResource','stack','name','send','index','map','Dashboard','rawAttributes','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','type','VIRTUAL','merge','options','includeAll','findAll','rows','show','params','find','create','body','user','UserProfileSection','userProfileId'];(function(_0xf6227e,_0xa582e3){var _0x5beb5d=function(_0x2f8d75){while(--_0x2f8d75){_0xf6227e['push'](_0xf6227e['shift']());}};_0x5beb5d(++_0xa582e3);}(_0x95e7,0xa1));var _0x795e=function(_0x176acf,_0x48962b){_0x176acf=_0x176acf-0x0;var _0x452af8=_0x95e7[_0x176acf];return _0x452af8;};'use strict';var emlformat=require(_0x795e('0x0'));var rimraf=require(_0x795e('0x1'));var zipdir=require(_0x795e('0x2'));var jsonpatch=require(_0x795e('0x3'));var rp=require('request-promise');var moment=require(_0x795e('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require(_0x795e('0x5'));var sox=require(_0x795e('0x6'));var csv=require(_0x795e('0x7'));var ejs=require(_0x795e('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x795e('0x9'));var squel=require(_0x795e('0xa'));var crypto=require(_0x795e('0xb'));var jsforce=require(_0x795e('0xc'));var deskjs=require(_0x795e('0xd'));var toCsv=require(_0x795e('0x7'));var querystring=require('querystring');var Papa=require(_0x795e('0xe'));var Redis=require(_0x795e('0xf'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x795e('0x10'));var logger=require('../../config/logger')('api');var utils=require(_0x795e('0x11'));var config=require('../../config/environment');var licenseUtil=require(_0x795e('0x12'));var db=require('../../mysqldb')['db'];config[_0x795e('0x13')]=_[_0x795e('0x14')](config[_0x795e('0x13')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0x795e('0x15'))[_0x795e('0x16')](socket);function respondWithStatusCode(_0x78837c,_0x3c510f){_0x3c510f=_0x3c510f||0xcc;return function(_0x435221){if(_0x435221){return _0x78837c[_0x795e('0x17')](_0x3c510f);}return _0x78837c[_0x795e('0x18')](_0x3c510f)[_0x795e('0x19')]();};}function respondWithResult(_0x1ac04e,_0x4d9748){_0x4d9748=_0x4d9748||0xc8;return function(_0x161132){if(_0x161132){return _0x1ac04e[_0x795e('0x18')](_0x4d9748)[_0x795e('0x1a')](_0x161132);}};}function respondWithFilteredResult(_0xaaabc5,_0x45a1b1){return function(_0x382e54){if(_0x382e54){var _0x2208aa=typeof _0x45a1b1[_0x795e('0x1b')]==='undefined'&&typeof _0x45a1b1[_0x795e('0x1c')]===_0x795e('0x1d');var _0x284837=_0x382e54['count'];var _0x368b30=_0x2208aa?0x0:_0x45a1b1[_0x795e('0x1b')];var _0x34c903=_0x2208aa?_0x382e54[_0x795e('0x1e')]:_0x45a1b1[_0x795e('0x1b')]+_0x45a1b1['limit'];var _0x3e3888;if(_0x34c903>=_0x284837){_0x34c903=_0x284837;_0x3e3888=0xc8;}else{_0x3e3888=0xce;}_0xaaabc5['status'](_0x3e3888);return _0xaaabc5[_0x795e('0x1f')](_0x795e('0x20'),_0x368b30+'-'+_0x34c903+'/'+_0x284837)[_0x795e('0x1a')](_0x382e54);}return null;};}function patchUpdates(_0x1baae2){return function(_0x4ca138){try{jsonpatch[_0x795e('0x21')](_0x4ca138,_0x1baae2,!![]);}catch(_0x1f1426){return BPromise[_0x795e('0x22')](_0x1f1426);}return _0x4ca138[_0x795e('0x23')]();};}function saveUpdates(_0x3e7ef8,_0x5e1744){return function(_0x2d8760){if(_0x2d8760){return _0x2d8760[_0x795e('0x24')](_0x3e7ef8)[_0x795e('0x25')](function(_0x496e71){return _0x496e71;});}return null;};}function removeEntity(_0x3c0145,_0x95e764){return function(_0x598a62){if(_0x598a62){return _0x598a62[_0x795e('0x26')]()['then'](function(){var _0x54f541=_0x598a62[_0x795e('0x27')]({'plain':!![]});var _0x4c1b75='CustomDashboards';return db[_0x795e('0x28')][_0x795e('0x26')]({'where':{'type':_0x4c1b75,'resourceId':_0x54f541['id']}})['then'](function(){return _0x598a62;});})[_0x795e('0x25')](function(){_0x3c0145[_0x795e('0x18')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5e396a,_0xd886b3){return function(_0x3de425){if(!_0x3de425){_0x5e396a[_0x795e('0x17')](0x194);}return _0x3de425;};}function handleError(_0x449f0f,_0x1ee047){_0x1ee047=_0x1ee047||0x1f4;return function(_0x9d3528){logger['error'](_0x9d3528[_0x795e('0x29')]);if(_0x9d3528[_0x795e('0x2a')]){delete _0x9d3528[_0x795e('0x2a')];}_0x449f0f[_0x795e('0x18')](_0x1ee047)[_0x795e('0x2b')](_0x9d3528);};}exports[_0x795e('0x2c')]=function(_0x481035,_0x594773){var _0x2ee759={},_0x5a6a88={},_0x2f4d3a={'count':0x0,'rows':[]};var _0x56c402=_[_0x795e('0x2d')](db[_0x795e('0x2e')][_0x795e('0x2f')],function(_0x4c5699){return{'name':_0x4c5699['fieldName'],'type':_0x4c5699['type'][_0x795e('0x30')]};});_0x5a6a88[_0x795e('0x31')]=_[_0x795e('0x2d')](_0x56c402,_0x795e('0x2a'));_0x5a6a88[_0x795e('0x32')]=_[_0x795e('0x33')](_0x481035['query']);_0x5a6a88[_0x795e('0x34')]=_[_0x795e('0x35')](_0x5a6a88[_0x795e('0x31')],_0x5a6a88[_0x795e('0x32')]);_0x2ee759['attributes']=_[_0x795e('0x35')](_0x5a6a88[_0x795e('0x31')],qs[_0x795e('0x36')](_0x481035[_0x795e('0x32')][_0x795e('0x36')]));_0x2ee759[_0x795e('0x37')]=_0x2ee759[_0x795e('0x37')][_0x795e('0x38')]?_0x2ee759['attributes']:_0x5a6a88['model'];if(!_0x481035[_0x795e('0x32')][_0x795e('0x39')](_0x795e('0x3a'))){_0x2ee759[_0x795e('0x1c')]=qs[_0x795e('0x1c')](_0x481035[_0x795e('0x32')][_0x795e('0x1c')]);_0x2ee759[_0x795e('0x1b')]=qs[_0x795e('0x1b')](_0x481035[_0x795e('0x32')]['offset']);}_0x2ee759[_0x795e('0x3b')]=qs['sort'](_0x481035['query'][_0x795e('0x3c')]);_0x2ee759[_0x795e('0x3d')]=qs[_0x795e('0x34')](_[_0x795e('0x3e')](_0x481035['query'],_0x5a6a88[_0x795e('0x34')]),_0x56c402);if(_0x481035[_0x795e('0x32')][_0x795e('0x3f')]){_0x2ee759['where']=_['merge'](_0x2ee759['where'],{'$or':_['map'](_0x56c402,function(_0x1fdde0){if(_0x1fdde0[_0x795e('0x40')]!==_0x795e('0x41')){var _0xb257ab={};_0xb257ab[_0x1fdde0['name']]={'$like':'%'+_0x481035[_0x795e('0x32')][_0x795e('0x3f')]+'%'};return _0xb257ab;}})});}_0x2ee759=_[_0x795e('0x42')]({},_0x2ee759,_0x481035[_0x795e('0x43')]);var _0x269a9d={'where':_0x2ee759[_0x795e('0x3d')]};return db['Dashboard']['count'](_0x269a9d)[_0x795e('0x25')](function(_0x250730){_0x2f4d3a[_0x795e('0x1e')]=_0x250730;if(_0x481035[_0x795e('0x32')][_0x795e('0x44')]){_0x2ee759['include']=[{'all':!![]}];}return db[_0x795e('0x2e')][_0x795e('0x45')](_0x2ee759);})['then'](function(_0x21b737){_0x2f4d3a[_0x795e('0x46')]=_0x21b737;return _0x2f4d3a;})['then'](respondWithFilteredResult(_0x594773,_0x2ee759))['catch'](handleError(_0x594773,null));};exports[_0x795e('0x47')]=function(_0x4024fd,_0x5a8ef3){var _0x41ad53={'raw':![],'where':{'id':_0x4024fd[_0x795e('0x48')]['id']}},_0x9fde8b={};_0x9fde8b[_0x795e('0x31')]=_[_0x795e('0x33')](db['Dashboard'][_0x795e('0x2f')]);_0x9fde8b[_0x795e('0x32')]=_[_0x795e('0x33')](_0x4024fd[_0x795e('0x32')]);_0x9fde8b[_0x795e('0x34')]=_[_0x795e('0x35')](_0x9fde8b[_0x795e('0x31')],_0x9fde8b[_0x795e('0x32')]);_0x41ad53[_0x795e('0x37')]=_['intersection'](_0x9fde8b['model'],qs[_0x795e('0x36')](_0x4024fd['query'][_0x795e('0x36')]));_0x41ad53['attributes']=_0x41ad53[_0x795e('0x37')][_0x795e('0x38')]?_0x41ad53[_0x795e('0x37')]:_0x9fde8b[_0x795e('0x31')];if(_0x4024fd[_0x795e('0x32')][_0x795e('0x44')]){_0x41ad53['include']=[{'all':!![]}];}_0x41ad53=_['merge']({},_0x41ad53,_0x4024fd['options']);return db[_0x795e('0x2e')][_0x795e('0x49')](_0x41ad53)[_0x795e('0x25')](handleEntityNotFound(_0x5a8ef3,null))[_0x795e('0x25')](respondWithResult(_0x5a8ef3,null))['catch'](handleError(_0x5a8ef3,null));};exports['create']=function(_0x1765c0,_0x37fd55){return db[_0x795e('0x2e')][_0x795e('0x4a')](_0x1765c0[_0x795e('0x4b')],{})['then'](function(_0x38b5f5){var _0x3e8329=_0x1765c0[_0x795e('0x4c')]['get']({'plain':!![]});if(!_0x3e8329)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x3e8329['role']==='user'){var _0x2bc92d=_0x38b5f5[_0x795e('0x27')]({'plain':!![]});var _0x1fe252='CustomDashboards';return db[_0x795e('0x4d')][_0x795e('0x49')]({'where':{'name':_0x1fe252,'userProfileId':_0x3e8329[_0x795e('0x4e')]},'raw':!![]})[_0x795e('0x25')](function(_0x5e40c6){if(_0x5e40c6&&_0x5e40c6[_0x795e('0x4f')]===0x0){return db['UserProfileResource'][_0x795e('0x4a')]({'name':_0x2bc92d[_0x795e('0x2a')],'resourceId':_0x2bc92d['id'],'type':_0x5e40c6[_0x795e('0x2a')],'sectionId':_0x5e40c6['id']},{})[_0x795e('0x25')](function(){return _0x38b5f5;});}else{return _0x38b5f5;}})[_0x795e('0x50')](function(_0x1e19cf){logger[_0x795e('0x51')](_0x795e('0x52'),_0x1e19cf);throw _0x1e19cf;});}return _0x38b5f5;})[_0x795e('0x25')](respondWithResult(_0x37fd55,0xc9))[_0x795e('0x50')](handleError(_0x37fd55,null));};exports[_0x795e('0x53')]=function(_0x41daa9,_0x124646){var _0x200f16={'where':{'id':_0x41daa9[_0x795e('0x48')]['id']}},_0xacccf8={};_0xacccf8[_0x795e('0x31')]=_['keys'](db[_0x795e('0x2e')][_0x795e('0x2f')]);_0x200f16[_0x795e('0x37')]=_[_0x795e('0x35')](_0xacccf8['model'],qs[_0x795e('0x36')](_0x41daa9[_0x795e('0x32')][_0x795e('0x36')]));_0x200f16[_0x795e('0x37')]=_0x200f16[_0x795e('0x37')][_0x795e('0x38')]?_0x200f16[_0x795e('0x37')]:_0xacccf8[_0x795e('0x31')];if(_0x41daa9['query'][_0x795e('0x44')]){_0x200f16[_0x795e('0x54')]=[{'all':!![]}];}_0x200f16=_[_0x795e('0x42')]({},_0x200f16,_0x41daa9['options']);return db[_0x795e('0x2e')][_0x795e('0x49')](_0x200f16)[_0x795e('0x25')](handleEntityNotFound(_0x124646,null))['then'](function(_0xe65546){if(_0xe65546){var _0x4cac0d=_0xe65546['get']({'plain':!![]});_0x4cac0d=qs[_0x795e('0x55')](_0x4cac0d,['id',_0x795e('0x56'),_0x795e('0x57')]);_0x41daa9[_0x795e('0x4b')]=_[_0x795e('0x55')](_0x41daa9[_0x795e('0x4b')],['id','createdAt','updatedAt']);return db[_0x795e('0x2e')]['create'](_[_0x795e('0x42')](_0x4cac0d,_0x41daa9[_0x795e('0x4b')]),{'include':_0x41daa9[_0x795e('0x32')]['includeAll']?[{'all':!![]}]:undefined})[_0x795e('0x25')](function(_0x9b9391){var _0x47ca8f=_0x41daa9[_0x795e('0x4c')][_0x795e('0x27')]({'plain':!![]});if(!_0x47ca8f)throw new Error(_0x795e('0x58'));if(_0x47ca8f[_0x795e('0x59')]==='user'){var _0x413c4d=_0x9b9391['get']({'plain':!![]});var _0x1b2f14=_0x795e('0x5a');return db[_0x795e('0x4d')][_0x795e('0x49')]({'where':{'name':_0x1b2f14,'userProfileId':_0x47ca8f['userProfileId']},'raw':!![]})[_0x795e('0x25')](function(_0x1fa16a){if(_0x1fa16a&&_0x1fa16a[_0x795e('0x4f')]===0x0){return db[_0x795e('0x28')][_0x795e('0x4a')]({'name':_0x413c4d['name'],'resourceId':_0x413c4d['id'],'type':_0x1fa16a[_0x795e('0x2a')],'sectionId':_0x1fa16a['id']},{})[_0x795e('0x25')](function(){return _0x9b9391;});}else{return _0x9b9391;}})[_0x795e('0x50')](function(_0x9098a6){logger['error'](_0x795e('0x52'),_0x9098a6);throw _0x9098a6;});}return _0x9b9391;});}})['then'](respondWithResult(_0x124646,0xc9))['catch'](handleError(_0x124646,null));};exports[_0x795e('0x24')]=function(_0x151419,_0x5d97f7){if(_0x151419[_0x795e('0x4b')]['id']){delete _0x151419[_0x795e('0x4b')]['id'];}return db[_0x795e('0x2e')][_0x795e('0x49')]({'where':{'id':_0x151419[_0x795e('0x48')]['id']}})['then'](handleEntityNotFound(_0x5d97f7,null))[_0x795e('0x25')](saveUpdates(_0x151419['body'],null))[_0x795e('0x25')](respondWithResult(_0x5d97f7,null))[_0x795e('0x50')](handleError(_0x5d97f7,null));};exports[_0x795e('0x26')]=function(_0x41ffd7,_0x594e3a){return db['Dashboard'][_0x795e('0x49')]({'where':{'id':_0x41ffd7['params']['id']}})[_0x795e('0x25')](handleEntityNotFound(_0x594e3a,null))[_0x795e('0x25')](removeEntity(_0x594e3a,null))[_0x795e('0x50')](handleError(_0x594e3a,null));};function widgetAttributes(_0x5d0e59){try{switch(_0x5d0e59[_0x795e('0x40')]){case _0x795e('0x5b'):return[{'name':_0x795e('0x5c'),'value':_0x5d0e59[_0x795e('0x5c')]||(_0x5d0e59['attrs']&&_0x5d0e59[_0x795e('0x5d')][0x0]?_0x5d0e59[_0x795e('0x5d')][0x0]['value']:undefined)||_0x795e('0x5e')}];case'custom':return[{'name':_0x795e('0x5f'),'value':_0x5d0e59[_0x795e('0x5f')]||(_0x5d0e59['attrs']&&_0x5d0e59['attrs'][0x0]?_0x5d0e59[_0x795e('0x5d')][0x0][_0x795e('0x60')]:undefined)||''}];case _0x795e('0x61'):return[{'name':_0x795e('0x62'),'value':_0x5d0e59[_0x795e('0x62')]||(_0x5d0e59[_0x795e('0x5d')]&&_0x5d0e59[_0x795e('0x5d')][0x0]?_0x5d0e59[_0x795e('0x5d')][0x0][_0x795e('0x60')]:undefined)||_0x795e('0x63')},{'name':_0x795e('0x64'),'value':_0x5d0e59['attrTimezone']||(_0x5d0e59[_0x795e('0x5d')]&&_0x5d0e59[_0x795e('0x5d')][0x1]?_0x5d0e59[_0x795e('0x5d')][0x1][_0x795e('0x60')]:undefined)||_0x795e('0x65')},{'name':_0x795e('0x66'),'value':_0x5d0e59[_0x795e('0x66')]||(_0x5d0e59[_0x795e('0x5d')]&&_0x5d0e59[_0x795e('0x5d')][0x2]?_0x5d0e59[_0x795e('0x5d')][0x2][_0x795e('0x60')]:undefined)||0xc}];case _0x795e('0x67'):return[{'name':'attrMetric','value':_0x5d0e59[_0x795e('0x68')]||(_0x5d0e59[_0x795e('0x5d')]&&_0x5d0e59['attrs'][0x0]?_0x5d0e59[_0x795e('0x5d')][0x0][_0x795e('0x60')]:undefined)||'total'},{'name':_0x795e('0x69'),'value':_0x5d0e59[_0x795e('0x69')]||(_0x5d0e59[_0x795e('0x5d')]&&_0x5d0e59['attrs'][0x1]?_0x5d0e59['attrs'][0x1][_0x795e('0x60')]:undefined)||[]},{'name':_0x795e('0x66'),'value':_0x5d0e59[_0x795e('0x66')]||(_0x5d0e59[_0x795e('0x5d')]&&_0x5d0e59[_0x795e('0x5d')][0x2]?_0x5d0e59[_0x795e('0x5d')][0x2][_0x795e('0x60')]:undefined)||0x14}];case _0x795e('0x6a'):case'pie-chart':return[{'name':_0x795e('0x6b'),'value':_0x5d0e59[_0x795e('0x6b')]||(_0x5d0e59[_0x795e('0x5d')]&&_0x5d0e59[_0x795e('0x5d')][0x0]?_0x5d0e59[_0x795e('0x5d')][0x0][_0x795e('0x60')]:undefined)||'total'},{'name':_0x795e('0x6c'),'value':_0x5d0e59[_0x795e('0x6c')]||(_0x5d0e59[_0x795e('0x5d')]&&_0x5d0e59['attrs'][0x1]?_0x5d0e59[_0x795e('0x5d')][0x1][_0x795e('0x60')]:undefined)||null},{'name':'attrSerie3','value':_0x5d0e59[_0x795e('0x6d')]||(_0x5d0e59[_0x795e('0x5d')]&&_0x5d0e59[_0x795e('0x5d')][0x2]?_0x5d0e59[_0x795e('0x5d')][0x2]['value']:undefined)||null},{'name':_0x795e('0x69'),'value':_0x5d0e59[_0x795e('0x69')]||(_0x5d0e59[_0x795e('0x5d')]&&_0x5d0e59[_0x795e('0x5d')][0x3]?_0x5d0e59[_0x795e('0x5d')][0x3]['value']:undefined)||[]}];case'web-report':return[{'name':_0x795e('0x6e'),'type':_0x5d0e59[_0x795e('0x6f')]||(_0x5d0e59[_0x795e('0x5d')]&&_0x5d0e59[_0x795e('0x5d')][0x0]?_0x5d0e59[_0x795e('0x5d')][0x0][_0x795e('0x40')]:undefined)||null,'value':_0x5d0e59['attrReport']||(_0x5d0e59[_0x795e('0x5d')]&&_0x5d0e59[_0x795e('0x5d')][0x0]?_0x5d0e59[_0x795e('0x5d')][0x0]['value']:undefined)||null},{'name':'attrRefresh','value':_0x5d0e59[_0x795e('0x70')]||(_0x5d0e59['attrs']&&_0x5d0e59[_0x795e('0x5d')][0x1]?_0x5d0e59['attrs'][0x1][_0x795e('0x60')]:undefined)||0x0}];default:return[];}}catch(_0x2947b3){logger[_0x795e('0x51')](_0x795e('0x71'),JSON[_0x795e('0x72')](_0x2947b3));return[];}}exports[_0x795e('0x73')]=function(_0x5bf737,_0x4d40c8,_0x605ade){if(_0x5bf737[_0x795e('0x4b')]['id']){delete _0x5bf737[_0x795e('0x4b')]['id'];}return db[_0x795e('0x2e')][_0x795e('0x49')]({'where':{'id':_0x5bf737[_0x795e('0x48')]['id']}})[_0x795e('0x25')](handleEntityNotFound(_0x4d40c8,null))['then'](function(_0x549551){if(_0x549551){_0x5bf737['body'][_0x795e('0x74')]=_0x549551['id'];_0x5bf737[_0x795e('0x4b')]['attrs']=widgetAttributes(_0x5bf737[_0x795e('0x4b')]);return db[_0x795e('0x75')][_0x795e('0x4a')](_0x5bf737[_0x795e('0x4b')]);}})[_0x795e('0x25')](respondWithResult(_0x4d40c8,null))[_0x795e('0x50')](handleError(_0x4d40c8,null));};exports['getItems']=function(_0x302657,_0x182acb,_0x47fb02){var _0x4a5cab={};var _0xe0bda3={};var _0x455d5d;var _0x3e5c90;return db[_0x795e('0x2e')][_0x795e('0x76')]({'where':{'id':_0x302657[_0x795e('0x48')]['id']}})[_0x795e('0x25')](handleEntityNotFound(_0x182acb,null))[_0x795e('0x25')](function(_0x65e9e3){if(_0x65e9e3){_0x455d5d=_0x65e9e3;_0xe0bda3[_0x795e('0x31')]=_[_0x795e('0x33')](db[_0x795e('0x75')]['rawAttributes']);_0xe0bda3[_0x795e('0x32')]=_[_0x795e('0x33')](_0x302657[_0x795e('0x32')]);_0xe0bda3[_0x795e('0x34')]=_[_0x795e('0x35')](_0xe0bda3['model'],_0xe0bda3[_0x795e('0x32')]);_0x4a5cab['attributes']=_[_0x795e('0x35')](_0xe0bda3[_0x795e('0x31')],qs[_0x795e('0x36')](_0x302657[_0x795e('0x32')]['fields']));_0x4a5cab[_0x795e('0x37')]=_0x4a5cab[_0x795e('0x37')]['length']?_0x4a5cab[_0x795e('0x37')]:_0xe0bda3[_0x795e('0x31')];_0x4a5cab[_0x795e('0x3b')]=qs[_0x795e('0x3c')](_0x302657[_0x795e('0x32')][_0x795e('0x3c')]);_0x4a5cab[_0x795e('0x3d')]=qs[_0x795e('0x34')](_[_0x795e('0x3e')](_0x302657[_0x795e('0x32')],_0xe0bda3[_0x795e('0x34')]));if(_0x302657['query'][_0x795e('0x3f')]){_0x4a5cab['where']=_[_0x795e('0x42')](_0x4a5cab[_0x795e('0x3d')],{'$or':_[_0x795e('0x2d')](_0x4a5cab[_0x795e('0x37')],function(_0x208cae){var _0x5c4f66={};_0x5c4f66[_0x208cae]={'$like':'%'+_0x302657[_0x795e('0x32')][_0x795e('0x3f')]+'%'};return _0x5c4f66;})});}_0x4a5cab=_['merge']({},_0x4a5cab,_0x302657['options']);return _0x455d5d[_0x795e('0x77')](_0x4a5cab);}})['then'](function(_0x22e202){if(_0x22e202){_0x3e5c90=_0x22e202[_0x795e('0x38')];if(!_0x302657[_0x795e('0x32')][_0x795e('0x39')](_0x795e('0x3a'))){_0x4a5cab[_0x795e('0x1c')]=qs[_0x795e('0x1c')](_0x302657[_0x795e('0x32')][_0x795e('0x1c')]);_0x4a5cab['offset']=qs[_0x795e('0x1b')](_0x302657[_0x795e('0x32')]['offset']);}return _0x455d5d['getItems'](_0x4a5cab);}})[_0x795e('0x25')](function(_0xc0bc6c){if(_0xc0bc6c){return _0xc0bc6c?{'count':_0x3e5c90,'rows':_0xc0bc6c}:null;}})[_0x795e('0x25')](respondWithResult(_0x182acb,null))['catch'](handleError(_0x182acb,null));};
\ No newline at end of file
+var _0xa955=['offset','set','reject','save','update','then','destroy','get','CustomDashboards','UserProfileResource','error','name','send','index','map','Dashboard','rawAttributes','fieldName','type','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','pick','filter','where','merge','VIRTUAL','count','includeAll','include','rows','catch','show','params','options','find','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','clone','omit','createdAt','updatedAt','user','UserProfileSection','autoAssociation','iframe','attrUrl','attrs','value','https://','custom','attrPath','attrHourFormat','HH:mm:ss','0.00','attrFontSize','attrMetric','total','attrVoiceQueues','multibar-chart','attrSerie1','attrSerie2','attrSerie3','web-report','attrReport','attrRefresh','widgetAttributes:\x20%s','stringify','addItem','DashboardId','DashboardItem','getItems','findOne','nolimit','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','sox','to-csv','fs-extra','lodash','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','redis','defaults','localhost','socket.io-emitter','./dashboard.socket','sendStatus','status','end','json','limit','undefined'];(function(_0x6da693,_0x224a0a){var _0x3e4d68=function(_0x20a6f6){while(--_0x20a6f6){_0x6da693['push'](_0x6da693['shift']());}};_0x3e4d68(++_0x224a0a);}(_0xa955,0x1b8));var _0x5a95=function(_0x3ef3c4,_0x50db3f){_0x3ef3c4=_0x3ef3c4-0x0;var _0x51b9e5=_0xa955[_0x3ef3c4];return _0x51b9e5;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x5a95('0x0'));var zipdir=require(_0x5a95('0x1'));var jsonpatch=require(_0x5a95('0x2'));var rp=require(_0x5a95('0x3'));var moment=require(_0x5a95('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x5a95('0x5'));var util=require(_0x5a95('0x6'));var path=require('path');var sox=require(_0x5a95('0x7'));var csv=require(_0x5a95('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x5a95('0x9'));var _=require(_0x5a95('0xa'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x5a95('0xb'));var deskjs=require(_0x5a95('0xc'));var toCsv=require('to-csv');var querystring=require(_0x5a95('0xd'));var Papa=require(_0x5a95('0xe'));var Redis=require('ioredis');var authService=require(_0x5a95('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0x5a95('0x10'));var hardwareService=require(_0x5a95('0x11'));var logger=require(_0x5a95('0x12'))('api');var utils=require(_0x5a95('0x13'));var config=require('../../config/environment');var licenseUtil=require(_0x5a95('0x14'));var db=require('../../mysqldb')['db'];config[_0x5a95('0x15')]=_[_0x5a95('0x16')](config['redis'],{'host':_0x5a95('0x17'),'port':0x18eb});var socket=require(_0x5a95('0x18'))(new Redis(config[_0x5a95('0x15')]));require(_0x5a95('0x19'))['register'](socket);function respondWithStatusCode(_0x274bf3,_0x3c10a9){_0x3c10a9=_0x3c10a9||0xcc;return function(_0x314e40){if(_0x314e40){return _0x274bf3[_0x5a95('0x1a')](_0x3c10a9);}return _0x274bf3[_0x5a95('0x1b')](_0x3c10a9)[_0x5a95('0x1c')]();};}function respondWithResult(_0x2ce291,_0x351093){_0x351093=_0x351093||0xc8;return function(_0x45ce87){if(_0x45ce87){return _0x2ce291[_0x5a95('0x1b')](_0x351093)[_0x5a95('0x1d')](_0x45ce87);}};}function respondWithFilteredResult(_0x308d14,_0x1472bf){return function(_0x3ce787){if(_0x3ce787){var _0x12f154=typeof _0x1472bf['offset']==='undefined'&&typeof _0x1472bf[_0x5a95('0x1e')]===_0x5a95('0x1f');var _0x66a408=_0x3ce787['count'];var _0x574e78=_0x12f154?0x0:_0x1472bf[_0x5a95('0x20')];var _0x1c880b=_0x12f154?_0x3ce787['count']:_0x1472bf[_0x5a95('0x20')]+_0x1472bf['limit'];var _0x13f48d;if(_0x1c880b>=_0x66a408){_0x1c880b=_0x66a408;_0x13f48d=0xc8;}else{_0x13f48d=0xce;}_0x308d14['status'](_0x13f48d);return _0x308d14[_0x5a95('0x21')]('Content-Range',_0x574e78+'-'+_0x1c880b+'/'+_0x66a408)[_0x5a95('0x1d')](_0x3ce787);}return null;};}function patchUpdates(_0x352d0e){return function(_0x2adcba){try{jsonpatch['apply'](_0x2adcba,_0x352d0e,!![]);}catch(_0x3a3a6e){return BPromise[_0x5a95('0x22')](_0x3a3a6e);}return _0x2adcba[_0x5a95('0x23')]();};}function saveUpdates(_0x4cb32c,_0x3727c6){return function(_0xb4651){if(_0xb4651){return _0xb4651[_0x5a95('0x24')](_0x4cb32c)[_0x5a95('0x25')](function(_0x1ff691){return _0x1ff691;});}return null;};}function removeEntity(_0x2f2e1a,_0x25e0d8){return function(_0x1a3aff){if(_0x1a3aff){return _0x1a3aff[_0x5a95('0x26')]()['then'](function(){var _0x3e1318=_0x1a3aff[_0x5a95('0x27')]({'plain':!![]});var _0xfcb89e=_0x5a95('0x28');return db[_0x5a95('0x29')]['destroy']({'where':{'type':_0xfcb89e,'resourceId':_0x3e1318['id']}})[_0x5a95('0x25')](function(){return _0x1a3aff;});})[_0x5a95('0x25')](function(){_0x2f2e1a[_0x5a95('0x1b')](0xcc)[_0x5a95('0x1c')]();});}};}function handleEntityNotFound(_0x239980,_0x3b4c6a){return function(_0x5c0da6){if(!_0x5c0da6){_0x239980[_0x5a95('0x1a')](0x194);}return _0x5c0da6;};}function handleError(_0x136232,_0x2ff10b){_0x2ff10b=_0x2ff10b||0x1f4;return function(_0x28fa34){logger[_0x5a95('0x2a')](_0x28fa34['stack']);if(_0x28fa34[_0x5a95('0x2b')]){delete _0x28fa34[_0x5a95('0x2b')];}_0x136232[_0x5a95('0x1b')](_0x2ff10b)[_0x5a95('0x2c')](_0x28fa34);};}exports[_0x5a95('0x2d')]=function(_0x4b6fcf,_0x1f51a7){var _0x32b77e={},_0x268944={},_0x3aeb54={'count':0x0,'rows':[]};var _0x4adf4b=_[_0x5a95('0x2e')](db[_0x5a95('0x2f')][_0x5a95('0x30')],function(_0x426fa6){return{'name':_0x426fa6[_0x5a95('0x31')],'type':_0x426fa6[_0x5a95('0x32')]['key']};});_0x268944[_0x5a95('0x33')]=_[_0x5a95('0x2e')](_0x4adf4b,_0x5a95('0x2b'));_0x268944[_0x5a95('0x34')]=_[_0x5a95('0x35')](_0x4b6fcf[_0x5a95('0x34')]);_0x268944[_0x5a95('0x36')]=_[_0x5a95('0x37')](_0x268944[_0x5a95('0x33')],_0x268944[_0x5a95('0x34')]);_0x32b77e[_0x5a95('0x38')]=_['intersection'](_0x268944[_0x5a95('0x33')],qs[_0x5a95('0x39')](_0x4b6fcf[_0x5a95('0x34')][_0x5a95('0x39')]));_0x32b77e['attributes']=_0x32b77e[_0x5a95('0x38')][_0x5a95('0x3a')]?_0x32b77e[_0x5a95('0x38')]:_0x268944[_0x5a95('0x33')];if(!_0x4b6fcf[_0x5a95('0x34')][_0x5a95('0x3b')]('nolimit')){_0x32b77e[_0x5a95('0x1e')]=qs[_0x5a95('0x1e')](_0x4b6fcf['query'][_0x5a95('0x1e')]);_0x32b77e['offset']=qs[_0x5a95('0x20')](_0x4b6fcf['query'][_0x5a95('0x20')]);}_0x32b77e[_0x5a95('0x3c')]=qs['sort'](_0x4b6fcf[_0x5a95('0x34')][_0x5a95('0x3d')]);_0x32b77e['where']=qs[_0x5a95('0x36')](_[_0x5a95('0x3e')](_0x4b6fcf['query'],_0x268944[_0x5a95('0x36')]),_0x4adf4b);if(_0x4b6fcf[_0x5a95('0x34')][_0x5a95('0x3f')]){_0x32b77e[_0x5a95('0x40')]=_[_0x5a95('0x41')](_0x32b77e[_0x5a95('0x40')],{'$or':_[_0x5a95('0x2e')](_0x4adf4b,function(_0x5e41e7){if(_0x5e41e7[_0x5a95('0x32')]!==_0x5a95('0x42')){var _0x1727d1={};_0x1727d1[_0x5e41e7[_0x5a95('0x2b')]]={'$like':'%'+_0x4b6fcf[_0x5a95('0x34')][_0x5a95('0x3f')]+'%'};return _0x1727d1;}})});}_0x32b77e=_[_0x5a95('0x41')]({},_0x32b77e,_0x4b6fcf['options']);var _0x57c82f={'where':_0x32b77e[_0x5a95('0x40')]};return db[_0x5a95('0x2f')][_0x5a95('0x43')](_0x57c82f)[_0x5a95('0x25')](function(_0x85a111){_0x3aeb54[_0x5a95('0x43')]=_0x85a111;if(_0x4b6fcf['query'][_0x5a95('0x44')]){_0x32b77e[_0x5a95('0x45')]=[{'all':!![]}];}return db[_0x5a95('0x2f')]['findAll'](_0x32b77e);})['then'](function(_0x3326f9){_0x3aeb54[_0x5a95('0x46')]=_0x3326f9;return _0x3aeb54;})['then'](respondWithFilteredResult(_0x1f51a7,_0x32b77e))[_0x5a95('0x47')](handleError(_0x1f51a7,null));};exports[_0x5a95('0x48')]=function(_0x4f7264,_0x11b804){var _0x1a1b8c={'raw':![],'where':{'id':_0x4f7264[_0x5a95('0x49')]['id']}},_0x3bf58b={};_0x3bf58b[_0x5a95('0x33')]=_['keys'](db[_0x5a95('0x2f')][_0x5a95('0x30')]);_0x3bf58b['query']=_['keys'](_0x4f7264[_0x5a95('0x34')]);_0x3bf58b[_0x5a95('0x36')]=_[_0x5a95('0x37')](_0x3bf58b['model'],_0x3bf58b[_0x5a95('0x34')]);_0x1a1b8c[_0x5a95('0x38')]=_[_0x5a95('0x37')](_0x3bf58b[_0x5a95('0x33')],qs[_0x5a95('0x39')](_0x4f7264[_0x5a95('0x34')][_0x5a95('0x39')]));_0x1a1b8c[_0x5a95('0x38')]=_0x1a1b8c['attributes']['length']?_0x1a1b8c[_0x5a95('0x38')]:_0x3bf58b['model'];if(_0x4f7264[_0x5a95('0x34')][_0x5a95('0x44')]){_0x1a1b8c[_0x5a95('0x45')]=[{'all':!![]}];}_0x1a1b8c=_[_0x5a95('0x41')]({},_0x1a1b8c,_0x4f7264[_0x5a95('0x4a')]);return db['Dashboard'][_0x5a95('0x4b')](_0x1a1b8c)[_0x5a95('0x25')](handleEntityNotFound(_0x11b804,null))['then'](respondWithResult(_0x11b804,null))[_0x5a95('0x47')](handleError(_0x11b804,null));};exports[_0x5a95('0x4c')]=function(_0xf239e7,_0xc0368c){return db[_0x5a95('0x2f')][_0x5a95('0x4c')](_0xf239e7[_0x5a95('0x4d')],{})[_0x5a95('0x25')](function(_0x56e78c){var _0x150b7f=_0xf239e7['user'][_0x5a95('0x27')]({'plain':!![]});if(!_0x150b7f)throw new Error(_0x5a95('0x4e'));if(_0x150b7f[_0x5a95('0x4f')]==='user'){var _0x111044=_0x56e78c[_0x5a95('0x27')]({'plain':!![]});var _0x3bf2b7='CustomDashboards';return db['UserProfileSection']['find']({'where':{'name':_0x3bf2b7,'userProfileId':_0x150b7f[_0x5a95('0x50')]},'raw':!![]})['then'](function(_0x18146e){if(_0x18146e&&_0x18146e['autoAssociation']===0x0){return db[_0x5a95('0x29')][_0x5a95('0x4c')]({'name':_0x111044[_0x5a95('0x2b')],'resourceId':_0x111044['id'],'type':_0x18146e[_0x5a95('0x2b')],'sectionId':_0x18146e['id']},{})[_0x5a95('0x25')](function(){return _0x56e78c;});}else{return _0x56e78c;}})[_0x5a95('0x47')](function(_0x2f90f7){logger[_0x5a95('0x2a')](_0x5a95('0x51'),_0x2f90f7);throw _0x2f90f7;});}return _0x56e78c;})['then'](respondWithResult(_0xc0368c,0xc9))['catch'](handleError(_0xc0368c,null));};exports[_0x5a95('0x52')]=function(_0x3c37cf,_0xa2d3a2){var _0x32d796={'where':{'id':_0x3c37cf[_0x5a95('0x49')]['id']}},_0x39956c={};_0x39956c['model']=_[_0x5a95('0x35')](db[_0x5a95('0x2f')]['rawAttributes']);_0x32d796[_0x5a95('0x38')]=_['intersection'](_0x39956c[_0x5a95('0x33')],qs[_0x5a95('0x39')](_0x3c37cf['query'][_0x5a95('0x39')]));_0x32d796[_0x5a95('0x38')]=_0x32d796[_0x5a95('0x38')]['length']?_0x32d796[_0x5a95('0x38')]:_0x39956c[_0x5a95('0x33')];if(_0x3c37cf[_0x5a95('0x34')][_0x5a95('0x44')]){_0x32d796[_0x5a95('0x45')]=[{'all':!![]}];}_0x32d796=_[_0x5a95('0x41')]({},_0x32d796,_0x3c37cf[_0x5a95('0x4a')]);return db[_0x5a95('0x2f')][_0x5a95('0x4b')](_0x32d796)[_0x5a95('0x25')](handleEntityNotFound(_0xa2d3a2,null))['then'](function(_0x5d99ad){if(_0x5d99ad){var _0x5b66ab=_0x5d99ad[_0x5a95('0x27')]({'plain':!![]});_0x5b66ab=qs[_0x5a95('0x53')](_0x5b66ab,['id',_0x5a95('0x54'),'updatedAt']);_0x3c37cf[_0x5a95('0x4d')]=_[_0x5a95('0x53')](_0x3c37cf['body'],['id','createdAt',_0x5a95('0x55')]);return db[_0x5a95('0x2f')][_0x5a95('0x4c')](_[_0x5a95('0x41')](_0x5b66ab,_0x3c37cf['body']),{'include':_0x3c37cf[_0x5a95('0x34')][_0x5a95('0x44')]?[{'all':!![]}]:undefined})[_0x5a95('0x25')](function(_0x5f1bda){var _0x44ac02=_0x3c37cf[_0x5a95('0x56')][_0x5a95('0x27')]({'plain':!![]});if(!_0x44ac02)throw new Error(_0x5a95('0x4e'));if(_0x44ac02[_0x5a95('0x4f')]===_0x5a95('0x56')){var _0x14360e=_0x5f1bda[_0x5a95('0x27')]({'plain':!![]});var _0x4e0e49='CustomDashboards';return db[_0x5a95('0x57')][_0x5a95('0x4b')]({'where':{'name':_0x4e0e49,'userProfileId':_0x44ac02['userProfileId']},'raw':!![]})['then'](function(_0x351e10){if(_0x351e10&&_0x351e10[_0x5a95('0x58')]===0x0){return db[_0x5a95('0x29')][_0x5a95('0x4c')]({'name':_0x14360e[_0x5a95('0x2b')],'resourceId':_0x14360e['id'],'type':_0x351e10[_0x5a95('0x2b')],'sectionId':_0x351e10['id']},{})[_0x5a95('0x25')](function(){return _0x5f1bda;});}else{return _0x5f1bda;}})['catch'](function(_0x353658){logger[_0x5a95('0x2a')](_0x5a95('0x51'),_0x353658);throw _0x353658;});}return _0x5f1bda;});}})[_0x5a95('0x25')](respondWithResult(_0xa2d3a2,0xc9))[_0x5a95('0x47')](handleError(_0xa2d3a2,null));};exports[_0x5a95('0x24')]=function(_0x2914d0,_0x257241){if(_0x2914d0[_0x5a95('0x4d')]['id']){delete _0x2914d0[_0x5a95('0x4d')]['id'];}return db['Dashboard'][_0x5a95('0x4b')]({'where':{'id':_0x2914d0[_0x5a95('0x49')]['id']}})['then'](handleEntityNotFound(_0x257241,null))['then'](saveUpdates(_0x2914d0['body'],null))[_0x5a95('0x25')](respondWithResult(_0x257241,null))['catch'](handleError(_0x257241,null));};exports[_0x5a95('0x26')]=function(_0x4af19c,_0xa96170){return db[_0x5a95('0x2f')][_0x5a95('0x4b')]({'where':{'id':_0x4af19c['params']['id']}})[_0x5a95('0x25')](handleEntityNotFound(_0xa96170,null))[_0x5a95('0x25')](removeEntity(_0xa96170,null))[_0x5a95('0x47')](handleError(_0xa96170,null));};function widgetAttributes(_0x466630){try{switch(_0x466630[_0x5a95('0x32')]){case _0x5a95('0x59'):return[{'name':_0x5a95('0x5a'),'value':_0x466630[_0x5a95('0x5a')]||(_0x466630[_0x5a95('0x5b')]&&_0x466630['attrs'][0x0]?_0x466630['attrs'][0x0][_0x5a95('0x5c')]:undefined)||_0x5a95('0x5d')}];case _0x5a95('0x5e'):return[{'name':_0x5a95('0x5f'),'value':_0x466630[_0x5a95('0x5f')]||(_0x466630[_0x5a95('0x5b')]&&_0x466630['attrs'][0x0]?_0x466630[_0x5a95('0x5b')][0x0][_0x5a95('0x5c')]:undefined)||''}];case'clock':return[{'name':_0x5a95('0x60'),'value':_0x466630['attrHourFormat']||(_0x466630[_0x5a95('0x5b')]&&_0x466630[_0x5a95('0x5b')][0x0]?_0x466630[_0x5a95('0x5b')][0x0][_0x5a95('0x5c')]:undefined)||_0x5a95('0x61')},{'name':'attrTimezone','value':_0x466630['attrTimezone']||(_0x466630[_0x5a95('0x5b')]&&_0x466630['attrs'][0x1]?_0x466630[_0x5a95('0x5b')][0x1]['value']:undefined)||_0x5a95('0x62')},{'name':_0x5a95('0x63'),'value':_0x466630[_0x5a95('0x63')]||(_0x466630['attrs']&&_0x466630[_0x5a95('0x5b')][0x2]?_0x466630[_0x5a95('0x5b')][0x2]['value']:undefined)||0xc}];case'counter':return[{'name':_0x5a95('0x64'),'value':_0x466630[_0x5a95('0x64')]||(_0x466630[_0x5a95('0x5b')]&&_0x466630['attrs'][0x0]?_0x466630[_0x5a95('0x5b')][0x0]['value']:undefined)||_0x5a95('0x65')},{'name':_0x5a95('0x66'),'value':_0x466630['attrVoiceQueues']||(_0x466630[_0x5a95('0x5b')]&&_0x466630['attrs'][0x1]?_0x466630['attrs'][0x1][_0x5a95('0x5c')]:undefined)||[]},{'name':'attrFontSize','value':_0x466630[_0x5a95('0x63')]||(_0x466630['attrs']&&_0x466630['attrs'][0x2]?_0x466630[_0x5a95('0x5b')][0x2]['value']:undefined)||0x14}];case _0x5a95('0x67'):case'pie-chart':return[{'name':'attrSerie1','value':_0x466630[_0x5a95('0x68')]||(_0x466630[_0x5a95('0x5b')]&&_0x466630[_0x5a95('0x5b')][0x0]?_0x466630[_0x5a95('0x5b')][0x0][_0x5a95('0x5c')]:undefined)||_0x5a95('0x65')},{'name':_0x5a95('0x69'),'value':_0x466630['attrSerie2']||(_0x466630['attrs']&&_0x466630[_0x5a95('0x5b')][0x1]?_0x466630[_0x5a95('0x5b')][0x1][_0x5a95('0x5c')]:undefined)||null},{'name':_0x5a95('0x6a'),'value':_0x466630['attrSerie3']||(_0x466630['attrs']&&_0x466630[_0x5a95('0x5b')][0x2]?_0x466630[_0x5a95('0x5b')][0x2][_0x5a95('0x5c')]:undefined)||null},{'name':_0x5a95('0x66'),'value':_0x466630['attrVoiceQueues']||(_0x466630[_0x5a95('0x5b')]&&_0x466630[_0x5a95('0x5b')][0x3]?_0x466630['attrs'][0x3][_0x5a95('0x5c')]:undefined)||[]}];case _0x5a95('0x6b'):return[{'name':_0x5a95('0x6c'),'type':_0x466630['reportType']||(_0x466630[_0x5a95('0x5b')]&&_0x466630[_0x5a95('0x5b')][0x0]?_0x466630['attrs'][0x0]['type']:undefined)||null,'value':_0x466630[_0x5a95('0x6c')]||(_0x466630[_0x5a95('0x5b')]&&_0x466630[_0x5a95('0x5b')][0x0]?_0x466630[_0x5a95('0x5b')][0x0][_0x5a95('0x5c')]:undefined)||null},{'name':_0x5a95('0x6d'),'value':_0x466630[_0x5a95('0x6d')]||(_0x466630[_0x5a95('0x5b')]&&_0x466630['attrs'][0x1]?_0x466630[_0x5a95('0x5b')][0x1]['value']:undefined)||0x0}];default:return[];}}catch(_0xc8422){logger['error'](_0x5a95('0x6e'),JSON[_0x5a95('0x6f')](_0xc8422));return[];}}exports[_0x5a95('0x70')]=function(_0x2c4072,_0x3cb89d,_0x4f5e73){if(_0x2c4072[_0x5a95('0x4d')]['id']){delete _0x2c4072[_0x5a95('0x4d')]['id'];}return db['Dashboard'][_0x5a95('0x4b')]({'where':{'id':_0x2c4072[_0x5a95('0x49')]['id']}})[_0x5a95('0x25')](handleEntityNotFound(_0x3cb89d,null))[_0x5a95('0x25')](function(_0x5217cc){if(_0x5217cc){_0x2c4072[_0x5a95('0x4d')][_0x5a95('0x71')]=_0x5217cc['id'];_0x2c4072[_0x5a95('0x4d')][_0x5a95('0x5b')]=widgetAttributes(_0x2c4072[_0x5a95('0x4d')]);return db[_0x5a95('0x72')][_0x5a95('0x4c')](_0x2c4072[_0x5a95('0x4d')]);}})[_0x5a95('0x25')](respondWithResult(_0x3cb89d,null))[_0x5a95('0x47')](handleError(_0x3cb89d,null));};exports[_0x5a95('0x73')]=function(_0x1544c4,_0x292e73,_0x38f343){var _0x3941c9={};var _0x3a71ff={};var _0x5890bd;var _0x46d610;return db[_0x5a95('0x2f')][_0x5a95('0x74')]({'where':{'id':_0x1544c4[_0x5a95('0x49')]['id']}})['then'](handleEntityNotFound(_0x292e73,null))[_0x5a95('0x25')](function(_0x2165eb){if(_0x2165eb){_0x5890bd=_0x2165eb;_0x3a71ff[_0x5a95('0x33')]=_[_0x5a95('0x35')](db[_0x5a95('0x72')][_0x5a95('0x30')]);_0x3a71ff[_0x5a95('0x34')]=_[_0x5a95('0x35')](_0x1544c4[_0x5a95('0x34')]);_0x3a71ff[_0x5a95('0x36')]=_[_0x5a95('0x37')](_0x3a71ff[_0x5a95('0x33')],_0x3a71ff[_0x5a95('0x34')]);_0x3941c9['attributes']=_[_0x5a95('0x37')](_0x3a71ff[_0x5a95('0x33')],qs[_0x5a95('0x39')](_0x1544c4[_0x5a95('0x34')][_0x5a95('0x39')]));_0x3941c9[_0x5a95('0x38')]=_0x3941c9['attributes']['length']?_0x3941c9['attributes']:_0x3a71ff[_0x5a95('0x33')];_0x3941c9[_0x5a95('0x3c')]=qs[_0x5a95('0x3d')](_0x1544c4[_0x5a95('0x34')]['sort']);_0x3941c9[_0x5a95('0x40')]=qs['filters'](_['pick'](_0x1544c4[_0x5a95('0x34')],_0x3a71ff[_0x5a95('0x36')]));if(_0x1544c4[_0x5a95('0x34')][_0x5a95('0x3f')]){_0x3941c9[_0x5a95('0x40')]=_[_0x5a95('0x41')](_0x3941c9[_0x5a95('0x40')],{'$or':_[_0x5a95('0x2e')](_0x3941c9['attributes'],function(_0x479460){var _0x50a89e={};_0x50a89e[_0x479460]={'$like':'%'+_0x1544c4[_0x5a95('0x34')][_0x5a95('0x3f')]+'%'};return _0x50a89e;})});}_0x3941c9=_[_0x5a95('0x41')]({},_0x3941c9,_0x1544c4[_0x5a95('0x4a')]);return _0x5890bd[_0x5a95('0x73')](_0x3941c9);}})[_0x5a95('0x25')](function(_0x3e5f1d){if(_0x3e5f1d){_0x46d610=_0x3e5f1d[_0x5a95('0x3a')];if(!_0x1544c4['query']['hasOwnProperty'](_0x5a95('0x75'))){_0x3941c9['limit']=qs['limit'](_0x1544c4['query'][_0x5a95('0x1e')]);_0x3941c9[_0x5a95('0x20')]=qs['offset'](_0x1544c4[_0x5a95('0x34')][_0x5a95('0x20')]);}return _0x5890bd['getItems'](_0x3941c9);}})[_0x5a95('0x25')](function(_0x4afc97){if(_0x4afc97){return _0x4afc97?{'count':_0x46d610,'rows':_0x4afc97}:null;}})[_0x5a95('0x25')](respondWithResult(_0x292e73,null))[_0x5a95('0x47')](handleError(_0x292e73,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8c09=['update','emit','hasOwnProperty','exports','events','../../mysqldb','setMaxListeners','save'];(function(_0x24eb2f,_0x361426){var _0x231c1b=function(_0x49cc7d){while(--_0x49cc7d){_0x24eb2f['push'](_0x24eb2f['shift']());}};_0x231c1b(++_0x361426);}(_0x8c09,0xbc));var _0x98c0=function(_0x594979,_0x2a3773){_0x594979=_0x594979-0x0;var _0x1955ad=_0x8c09[_0x594979];return _0x1955ad;};'use strict';var EventEmitter=require(_0x98c0('0x0'));var Dashboard=require(_0x98c0('0x1'))['db']['Dashboard'];var DashboardEvents=new EventEmitter();DashboardEvents[_0x98c0('0x2')](0x0);var events={'afterCreate':_0x98c0('0x3'),'afterUpdate':_0x98c0('0x4'),'afterDestroy':'remove'};function emitEvent(_0x1417c0){return function(_0x44bfde,_0x3086d8,_0xa56bad){DashboardEvents['emit'](_0x1417c0+':'+_0x44bfde['id'],_0x44bfde);DashboardEvents[_0x98c0('0x5')](_0x1417c0,_0x44bfde);_0xa56bad(null);};}for(var e in events){if(events[_0x98c0('0x6')](e)){var event=events[e];Dashboard['hook'](e,emitEvent(event));}}module[_0x98c0('0x7')]=DashboardEvents;
\ No newline at end of file
+var _0xa53e=['remove','emit','hasOwnProperty','hook','exports','events','Dashboard','setMaxListeners','update'];(function(_0x3e4e5c,_0x4d2966){var _0x46f0bf=function(_0x2d1982){while(--_0x2d1982){_0x3e4e5c['push'](_0x3e4e5c['shift']());}};_0x46f0bf(++_0x4d2966);}(_0xa53e,0xe6));var _0xea53=function(_0x3497e1,_0x3698f7){_0x3497e1=_0x3497e1-0x0;var _0x3d324e=_0xa53e[_0x3497e1];return _0x3d324e;};'use strict';var EventEmitter=require(_0xea53('0x0'));var Dashboard=require('../../mysqldb')['db'][_0xea53('0x1')];var DashboardEvents=new EventEmitter();DashboardEvents[_0xea53('0x2')](0x0);var events={'afterCreate':'save','afterUpdate':_0xea53('0x3'),'afterDestroy':_0xea53('0x4')};function emitEvent(_0x5b3251){return function(_0x2b11f7,_0x5b46b6,_0x33a6e4){DashboardEvents[_0xea53('0x5')](_0x5b3251+':'+_0x2b11f7['id'],_0x2b11f7);DashboardEvents['emit'](_0x5b3251,_0x2b11f7);_0x33a6e4(null);};}for(var e in events){if(events[_0xea53('0x6')](e)){var event=events[e];Dashboard[_0xea53('0x7')](e,emitEvent(event));}}module[_0xea53('0x8')]=DashboardEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5ff8=['moment','bluebird','request-promise','path','../../config/environment','./dashboard.attributes','define','dashboards','lodash','util'];(function(_0x19e35c,_0x29cd1e){var _0x3e1fe8=function(_0x17258b){while(--_0x17258b){_0x19e35c['push'](_0x19e35c['shift']());}};_0x3e1fe8(++_0x29cd1e);}(_0x5ff8,0x13e));var _0x85ff=function(_0x532a51,_0x5cfc2d){_0x532a51=_0x532a51-0x0;var _0xbe338a=_0x5ff8[_0x532a51];return _0xbe338a;};'use strict';var _=require(_0x85ff('0x0'));var util=require(_0x85ff('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0x85ff('0x2'));var BPromise=require(_0x85ff('0x3'));var rp=require(_0x85ff('0x4'));var fs=require('fs');var path=require(_0x85ff('0x5'));var rimraf=require('rimraf');var config=require(_0x85ff('0x6'));var attributes=require(_0x85ff('0x7'));module['exports']=function(_0x49cb59,_0x3cc2d7){return _0x49cb59[_0x85ff('0x8')]('Dashboard',attributes,{'tableName':_0x85ff('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xf306=['request-promise','path','../../config/environment','./dashboard.attributes','define','Dashboard','dashboards','lodash','util','api','bluebird'];(function(_0x33d810,_0x4f799f){var _0x4d2266=function(_0x3f3b97){while(--_0x3f3b97){_0x33d810['push'](_0x33d810['shift']());}};_0x4d2266(++_0x4f799f);}(_0xf306,0x75));var _0x6f30=function(_0x2c6760,_0x487080){_0x2c6760=_0x2c6760-0x0;var _0x704576=_0xf306[_0x2c6760];return _0x704576;};'use strict';var _=require(_0x6f30('0x0'));var util=require(_0x6f30('0x1'));var logger=require('../../config/logger')(_0x6f30('0x2'));var moment=require('moment');var BPromise=require(_0x6f30('0x3'));var rp=require(_0x6f30('0x4'));var fs=require('fs');var path=require(_0x6f30('0x5'));var rimraf=require('rimraf');var config=require(_0x6f30('0x6'));var attributes=require(_0x6f30('0x7'));module['exports']=function(_0x5bde3f,_0x45db78){return _0x5bde3f[_0x6f30('0x8')](_0x6f30('0x9'),attributes,{'tableName':_0x6f30('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa861=['code','message','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','defaults','redis','socket.io-emitter','./dashboard.socket','register','request','then','info','Dashboard,\x20%s,\x20%s','request\x20sent','debug','error'];(function(_0x3ab51d,_0x2fa01d){var _0x29a04e=function(_0x7807b0){while(--_0x7807b0){_0x3ab51d['push'](_0x3ab51d['shift']());}};_0x29a04e(++_0x2fa01d);}(_0xa861,0x1c4));var _0x1a86=function(_0x51bda1,_0x44f80d){_0x51bda1=_0x51bda1-0x0;var _0x1ce08c=_0xa861[_0x51bda1];return _0x1ce08c;};'use strict';var _=require(_0x1a86('0x0'));var util=require(_0x1a86('0x1'));var moment=require(_0x1a86('0x2'));var BPromise=require('bluebird');var rs=require(_0x1a86('0x3'));var fs=require('fs');var Redis=require(_0x1a86('0x4'));var db=require(_0x1a86('0x5'))['db'];var utils=require(_0x1a86('0x6'));var logger=require(_0x1a86('0x7'))(_0x1a86('0x8'));var config=require(_0x1a86('0x9'));var jayson=require('jayson/promise');var client=jayson[_0x1a86('0xa')]['http']({'port':0x232a});config['redis']=_[_0x1a86('0xb')](config[_0x1a86('0xc')],{'host':'localhost','port':0x18eb});var socket=require(_0x1a86('0xd'))(new Redis(config[_0x1a86('0xc')]));require(_0x1a86('0xe'))[_0x1a86('0xf')](socket);function respondWithRpcPromise(_0x1e6d2e,_0x29302a,_0x22f55d){return new BPromise(function(_0x44f7c3,_0x2cfc72){return client[_0x1a86('0x10')](_0x1e6d2e,_0x22f55d)[_0x1a86('0x11')](function(_0x3d3710){logger[_0x1a86('0x12')](_0x1a86('0x13'),_0x29302a,_0x1a86('0x14'));logger[_0x1a86('0x15')]('Dashboard,\x20%s,\x20%s,\x20%s',_0x29302a,_0x1a86('0x14'),JSON['stringify'](_0x3d3710));if(_0x3d3710[_0x1a86('0x16')]){if(_0x3d3710[_0x1a86('0x16')][_0x1a86('0x17')]===0x1f4){logger['error'](_0x1a86('0x13'),_0x29302a,_0x3d3710[_0x1a86('0x16')]['message']);return _0x2cfc72(_0x3d3710[_0x1a86('0x16')][_0x1a86('0x18')]);}logger[_0x1a86('0x16')](_0x1a86('0x13'),_0x29302a,_0x3d3710[_0x1a86('0x16')][_0x1a86('0x18')]);return _0x44f7c3(_0x3d3710[_0x1a86('0x16')][_0x1a86('0x18')]);}else{logger[_0x1a86('0x12')](_0x1a86('0x13'),_0x29302a,_0x1a86('0x14'));_0x44f7c3(_0x3d3710['result'][_0x1a86('0x18')]);}})['catch'](function(_0x129d2c){logger[_0x1a86('0x16')](_0x1a86('0x13'),_0x29302a,_0x129d2c);_0x2cfc72(_0x129d2c);});});}
\ No newline at end of file
+var _0x7004=['util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','./dashboard.socket','request','then','info','Dashboard,\x20%s,\x20%s','debug','Dashboard,\x20%s,\x20%s,\x20%s','stringify','error','message','request\x20sent','catch','lodash'];(function(_0x50b7a0,_0x2987bb){var _0x1270d9=function(_0x5979c7){while(--_0x5979c7){_0x50b7a0['push'](_0x50b7a0['shift']());}};_0x1270d9(++_0x2987bb);}(_0x7004,0x16b));var _0x4700=function(_0x3cdbc7,_0x2a7cb3){_0x3cdbc7=_0x3cdbc7-0x0;var _0x422d20=_0x7004[_0x3cdbc7];return _0x422d20;};'use strict';var _=require(_0x4700('0x0'));var util=require(_0x4700('0x1'));var moment=require(_0x4700('0x2'));var BPromise=require('bluebird');var rs=require(_0x4700('0x3'));var fs=require('fs');var Redis=require(_0x4700('0x4'));var db=require(_0x4700('0x5'))['db'];var utils=require(_0x4700('0x6'));var logger=require(_0x4700('0x7'))('rpc');var config=require(_0x4700('0x8'));var jayson=require(_0x4700('0x9'));var client=jayson[_0x4700('0xa')][_0x4700('0xb')]({'port':0x232a});config[_0x4700('0xc')]=_[_0x4700('0xd')](config[_0x4700('0xc')],{'host':_0x4700('0xe'),'port':0x18eb});var socket=require(_0x4700('0xf'))(new Redis(config[_0x4700('0xc')]));require(_0x4700('0x10'))['register'](socket);function respondWithRpcPromise(_0x3d0e37,_0x3add7b,_0x4b7d68){return new BPromise(function(_0x177410,_0x486b0){return client[_0x4700('0x11')](_0x3d0e37,_0x4b7d68)[_0x4700('0x12')](function(_0x1c951a){logger[_0x4700('0x13')](_0x4700('0x14'),_0x3add7b,'request\x20sent');logger[_0x4700('0x15')](_0x4700('0x16'),_0x3add7b,'request\x20sent',JSON[_0x4700('0x17')](_0x1c951a));if(_0x1c951a[_0x4700('0x18')]){if(_0x1c951a['error']['code']===0x1f4){logger[_0x4700('0x18')](_0x4700('0x14'),_0x3add7b,_0x1c951a[_0x4700('0x18')][_0x4700('0x19')]);return _0x486b0(_0x1c951a[_0x4700('0x18')]['message']);}logger['error'](_0x4700('0x14'),_0x3add7b,_0x1c951a['error'][_0x4700('0x19')]);return _0x177410(_0x1c951a[_0x4700('0x18')]['message']);}else{logger[_0x4700('0x13')]('Dashboard,\x20%s,\x20%s',_0x3add7b,_0x4700('0x1a'));_0x177410(_0x1c951a['result'][_0x4700('0x19')]);}})[_0x4700('0x1b')](function(_0x3d0b9a){logger['error'](_0x4700('0x14'),_0x3add7b,_0x3d0b9a);_0x486b0(_0x3d0b9a);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa25c=['./dashboard.events','save','remove','update','emit','removeListener','length','dashboard:'];(function(_0x2fc012,_0x503e5b){var _0x2891f9=function(_0x295f5e){while(--_0x295f5e){_0x2fc012['push'](_0x2fc012['shift']());}};_0x2891f9(++_0x503e5b);}(_0xa25c,0xf0));var _0xca25=function(_0x31dd7d,_0x41e269){_0x31dd7d=_0x31dd7d-0x0;var _0x3f8100=_0xa25c[_0x31dd7d];return _0x3f8100;};'use strict';var DashboardEvents=require(_0xca25('0x0'));var events=[_0xca25('0x1'),_0xca25('0x2'),_0xca25('0x3')];function createListener(_0x36fd8d,_0xfa60fc){return function(_0x3462a9){_0xfa60fc[_0xca25('0x4')](_0x36fd8d,_0x3462a9);};}function removeListener(_0xd3e72a,_0x46adbe){return function(){DashboardEvents[_0xca25('0x5')](_0xd3e72a,_0x46adbe);};}exports['register']=function(_0x416e8a){for(var _0x1efc5a=0x0,_0x148ca0=events[_0xca25('0x6')];_0x1efc5a<_0x148ca0;_0x1efc5a++){var _0x505849=events[_0x1efc5a];var _0xc1ed26=createListener(_0xca25('0x7')+_0x505849,_0x416e8a);DashboardEvents['on'](_0x505849,_0xc1ed26);}};
\ No newline at end of file
+var _0x6d78=['removeListener','dashboard:','./dashboard.events','save','update','emit'];(function(_0x674cee,_0x6c3ec){var _0x101fae=function(_0x4ae680){while(--_0x4ae680){_0x674cee['push'](_0x674cee['shift']());}};_0x101fae(++_0x6c3ec);}(_0x6d78,0x1d0));var _0x86d7=function(_0x814371,_0x341583){_0x814371=_0x814371-0x0;var _0x2fd4b4=_0x6d78[_0x814371];return _0x2fd4b4;};'use strict';var DashboardEvents=require(_0x86d7('0x0'));var events=[_0x86d7('0x1'),'remove',_0x86d7('0x2')];function createListener(_0x478fcc,_0x2d1271){return function(_0x5c9dc5){_0x2d1271[_0x86d7('0x3')](_0x478fcc,_0x5c9dc5);};}function removeListener(_0x2ebbae,_0x751dda){return function(){DashboardEvents[_0x86d7('0x4')](_0x2ebbae,_0x751dda);};}exports['register']=function(_0x5d6c7f){for(var _0x29ac39=0x0,_0x3a876c=events['length'];_0x29ac39<_0x3a876c;_0x29ac39++){var _0x1403ee=events[_0x29ac39];var _0x2c0929=createListener(_0x86d7('0x5')+_0x1403ee,_0x5d6c7f);DashboardEvents['on'](_0x1403ee,_0x2c0929);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x482b=['/:id/clone','update','destroy','exports','multer','util','path','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/:id','show','/:id/items','getItems','post','create'];(function(_0x53a1be,_0x42dff2){var _0x38ae84=function(_0x51fa5c){while(--_0x51fa5c){_0x53a1be['push'](_0x53a1be['shift']());}};_0x38ae84(++_0x42dff2);}(_0x482b,0x12a));var _0xb482=function(_0x301d8b,_0xe56727){_0x301d8b=_0x301d8b-0x0;var _0x90280a=_0x482b[_0x301d8b];return _0x90280a;};'use strict';var multer=require(_0xb482('0x0'));var util=require(_0xb482('0x1'));var path=require(_0xb482('0x2'));var timeout=require('connect-timeout');var express=require(_0xb482('0x3'));var router=express['Router']();var fs_extra=require(_0xb482('0x4'));var auth=require(_0xb482('0x5'));var interaction=require(_0xb482('0x6'));var config=require(_0xb482('0x7'));var controller=require('./dashboard.controller');router[_0xb482('0x8')]('/',auth[_0xb482('0x9')](),controller[_0xb482('0xa')]);router[_0xb482('0x8')](_0xb482('0xb'),auth[_0xb482('0x9')](),controller[_0xb482('0xc')]);router[_0xb482('0x8')](_0xb482('0xd'),auth[_0xb482('0x9')](),controller[_0xb482('0xe')]);router[_0xb482('0xf')]('/',auth['isAuthenticated'](),controller[_0xb482('0x10')]);router[_0xb482('0xf')](_0xb482('0x11'),auth[_0xb482('0x9')](),controller['clone']);router['post'](_0xb482('0xd'),auth['isAuthenticated'](),controller['addItem']);router['put'](_0xb482('0xb'),auth[_0xb482('0x9')](),controller[_0xb482('0x12')]);router['delete'](_0xb482('0xb'),auth[_0xb482('0x9')](),controller[_0xb482('0x13')]);module[_0xb482('0x14')]=router;
\ No newline at end of file
+var _0x1fa4=['exports','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','index','isAuthenticated','show','getItems','post','create','/:id/clone','clone','/:id/items','put','update','delete','/:id'];(function(_0x51dd2c,_0x2a2345){var _0x41c678=function(_0xa14c31){while(--_0xa14c31){_0x51dd2c['push'](_0x51dd2c['shift']());}};_0x41c678(++_0x2a2345);}(_0x1fa4,0x94));var _0x41fa=function(_0x1fd842,_0x4180ee){_0x1fd842=_0x1fd842-0x0;var _0x2dffaa=_0x1fa4[_0x1fd842];return _0x2dffaa;};'use strict';var multer=require('multer');var util=require(_0x41fa('0x0'));var path=require(_0x41fa('0x1'));var timeout=require(_0x41fa('0x2'));var express=require(_0x41fa('0x3'));var router=express[_0x41fa('0x4')]();var fs_extra=require(_0x41fa('0x5'));var auth=require(_0x41fa('0x6'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require('./dashboard.controller');router['get']('/',auth['isAuthenticated'](),controller[_0x41fa('0x7')]);router['get']('/:id',auth[_0x41fa('0x8')](),controller[_0x41fa('0x9')]);router['get']('/:id/items',auth['isAuthenticated'](),controller[_0x41fa('0xa')]);router[_0x41fa('0xb')]('/',auth[_0x41fa('0x8')](),controller[_0x41fa('0xc')]);router[_0x41fa('0xb')](_0x41fa('0xd'),auth[_0x41fa('0x8')](),controller[_0x41fa('0xe')]);router[_0x41fa('0xb')](_0x41fa('0xf'),auth[_0x41fa('0x8')](),controller['addItem']);router[_0x41fa('0x10')]('/:id',auth[_0x41fa('0x8')](),controller[_0x41fa('0x11')]);router[_0x41fa('0x12')](_0x41fa('0x13'),auth[_0x41fa('0x8')](),controller['destroy']);module[_0x41fa('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x326f=['#2196f3','sequelize','exports','STRING','TEXT','long','parse','getDataValue','attrs','stringify','setDataValue','INTEGER','#ffffff'];(function(_0x1467d8,_0x5d5c6f){var _0x1f8b36=function(_0x3b3c6b){while(--_0x3b3c6b){_0x1467d8['push'](_0x1467d8['shift']());}};_0x1f8b36(++_0x5d5c6f);}(_0x326f,0xd1));var _0xf326=function(_0x42eb8e,_0x137235){_0x42eb8e=_0x42eb8e-0x0;var _0x10a493=_0x326f[_0x42eb8e];return _0x10a493;};'use strict';var Sequelize=require(_0xf326('0x0'));var squel=require('squel');var _=require('lodash');module[_0xf326('0x1')]={'title':{'type':Sequelize[_0xf326('0x2')],'allowNull':![]},'type':{'type':Sequelize[_0xf326('0x2')](0x14),'allowNull':![],'validate':{'len':[0x1,0x14]}},'attrs':{'type':Sequelize[_0xf326('0x3')](_0xf326('0x4')),'get':function(){try{return JSON[_0xf326('0x5')](this[_0xf326('0x6')](_0xf326('0x7')));}catch(_0x1b5a56){return[];}},'set':function(_0x3ace29){try{this['setDataValue'](_0xf326('0x7'),JSON[_0xf326('0x8')](_0x3ace29));}catch(_0x165f95){this[_0xf326('0x9')]('attrs',JSON['stringify']([]));}}},'sizeX':{'type':Sequelize['INTEGER'],'allowNull':![],'defaultValue':0x1},'sizeY':{'type':Sequelize[_0xf326('0xa')],'allowNull':![],'defaultValue':0x1},'row':{'type':Sequelize[_0xf326('0xa')]},'col':{'type':Sequelize[_0xf326('0xa')]},'background':{'type':Sequelize[_0xf326('0x2')],'allowNull':![],'defaultValue':_0xf326('0xb'),'validate':{'notEmpty':!![]}},'foreground':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0xf326('0xc'),'validate':{'notEmpty':!![]}},'link':{'type':Sequelize['STRING']},'titleFontSize':{'type':Sequelize[_0xf326('0xa')],'defaultValue':0xc}};
\ No newline at end of file
+var _0x5d58=['attrs','stringify','INTEGER','#2196f3','STRING','TEXT','parse','getDataValue','setDataValue'];(function(_0x491cc6,_0x52943c){var _0x4c163d=function(_0x3af3a2){while(--_0x3af3a2){_0x491cc6['push'](_0x491cc6['shift']());}};_0x4c163d(++_0x52943c);}(_0x5d58,0x187));var _0x85d5=function(_0x323bd3,_0x3aecd3){_0x323bd3=_0x323bd3-0x0;var _0x53314e=_0x5d58[_0x323bd3];return _0x53314e;};'use strict';var Sequelize=require('sequelize');var squel=require('squel');var _=require('lodash');module['exports']={'title':{'type':Sequelize['STRING'],'allowNull':![]},'type':{'type':Sequelize[_0x85d5('0x0')](0x14),'allowNull':![],'validate':{'len':[0x1,0x14]}},'attrs':{'type':Sequelize[_0x85d5('0x1')]('long'),'get':function(){try{return JSON[_0x85d5('0x2')](this[_0x85d5('0x3')]('attrs'));}catch(_0x1eb211){return[];}},'set':function(_0x2d457a){try{this[_0x85d5('0x4')](_0x85d5('0x5'),JSON['stringify'](_0x2d457a));}catch(_0x98c963){this[_0x85d5('0x4')]('attrs',JSON[_0x85d5('0x6')]([]));}}},'sizeX':{'type':Sequelize['INTEGER'],'allowNull':![],'defaultValue':0x1},'sizeY':{'type':Sequelize[_0x85d5('0x7')],'allowNull':![],'defaultValue':0x1},'row':{'type':Sequelize[_0x85d5('0x7')]},'col':{'type':Sequelize[_0x85d5('0x7')]},'background':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':'#ffffff','validate':{'notEmpty':!![]}},'foreground':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0x85d5('0x8'),'validate':{'notEmpty':!![]}},'link':{'type':Sequelize[_0x85d5('0x0')]},'titleFontSize':{'type':Sequelize[_0x85d5('0x7')],'defaultValue':0xc}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8cd9=['sendStatus','end','limit','undefined','offset','count','status','set','json','apply','reject','save','update','then','destroy','error','send','show','params','model','keys','DashboardItem','rawAttributes','query','intersection','attributes','fields','length','include','merge','options','find','catch','type','iframe','attrUrl','attrs','value','attrPath','attrHourFormat','HH:mm:ss','attrTimezone','0.00','attrFontSize','counter','attrMetric','total','attrVoiceQueues','multibar-chart','attrSerie1','attrSerie2','attrSerie3','web-report','attrReport','widgetAttributes:\x20%s','stringify','create','body','eml-format','rimraf','zip-dir','fast-json-patch','moment','mustache','path','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','register'];(function(_0x4b63bd,_0x339a0f){var _0x387b1a=function(_0x5e9a26){while(--_0x5e9a26){_0x4b63bd['push'](_0x4b63bd['shift']());}};_0x387b1a(++_0x339a0f);}(_0x8cd9,0xea));var _0x98cd=function(_0x350e06,_0x2031ec){_0x350e06=_0x350e06-0x0;var _0x314b2d=_0x8cd9[_0x350e06];return _0x314b2d;};'use strict';var emlformat=require(_0x98cd('0x0'));var rimraf=require(_0x98cd('0x1'));var zipdir=require(_0x98cd('0x2'));var jsonpatch=require(_0x98cd('0x3'));var rp=require('request-promise');var moment=require(_0x98cd('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x98cd('0x5'));var util=require('util');var path=require(_0x98cd('0x6'));var sox=require(_0x98cd('0x7'));var csv=require('to-csv');var ejs=require(_0x98cd('0x8'));var fs=require('fs');var fs_extra=require(_0x98cd('0x9'));var _=require(_0x98cd('0xa'));var squel=require(_0x98cd('0xb'));var crypto=require(_0x98cd('0xc'));var jsforce=require(_0x98cd('0xd'));var deskjs=require(_0x98cd('0xe'));var toCsv=require('to-csv');var querystring=require(_0x98cd('0xf'));var Papa=require(_0x98cd('0x10'));var Redis=require(_0x98cd('0x11'));var authService=require(_0x98cd('0x12'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x98cd('0x13'));var logger=require(_0x98cd('0x14'))(_0x98cd('0x15'));var utils=require(_0x98cd('0x16'));var config=require(_0x98cd('0x17'));var licenseUtil=require(_0x98cd('0x18'));var db=require(_0x98cd('0x19'))['db'];config['redis']=_['defaults'](config[_0x98cd('0x1a')],{'host':_0x98cd('0x1b'),'port':0x18eb});var socket=require(_0x98cd('0x1c'))(new Redis(config[_0x98cd('0x1a')]));require('./dashboardItem.socket')[_0x98cd('0x1d')](socket);function respondWithStatusCode(_0x1d547f,_0x451113){_0x451113=_0x451113||0xcc;return function(_0x5a8483){if(_0x5a8483){return _0x1d547f[_0x98cd('0x1e')](_0x451113);}return _0x1d547f['status'](_0x451113)[_0x98cd('0x1f')]();};}function respondWithResult(_0x3f4743,_0x4d461e){_0x4d461e=_0x4d461e||0xc8;return function(_0x548b81){if(_0x548b81){return _0x3f4743['status'](_0x4d461e)['json'](_0x548b81);}};}function respondWithFilteredResult(_0x12ba0c,_0x2fe4a4){return function(_0x468dc4){if(_0x468dc4){var _0x2937bd=typeof _0x2fe4a4['offset']==='undefined'&&typeof _0x2fe4a4[_0x98cd('0x20')]===_0x98cd('0x21');var _0x33054f=_0x468dc4['count'];var _0x39bec8=_0x2937bd?0x0:_0x2fe4a4[_0x98cd('0x22')];var _0x4541ff=_0x2937bd?_0x468dc4[_0x98cd('0x23')]:_0x2fe4a4[_0x98cd('0x22')]+_0x2fe4a4[_0x98cd('0x20')];var _0x1c04ac;if(_0x4541ff>=_0x33054f){_0x4541ff=_0x33054f;_0x1c04ac=0xc8;}else{_0x1c04ac=0xce;}_0x12ba0c[_0x98cd('0x24')](_0x1c04ac);return _0x12ba0c[_0x98cd('0x25')]('Content-Range',_0x39bec8+'-'+_0x4541ff+'/'+_0x33054f)[_0x98cd('0x26')](_0x468dc4);}return null;};}function patchUpdates(_0x513c57){return function(_0x1e6436){try{jsonpatch[_0x98cd('0x27')](_0x1e6436,_0x513c57,!![]);}catch(_0xa7833f){return BPromise[_0x98cd('0x28')](_0xa7833f);}return _0x1e6436[_0x98cd('0x29')]();};}function saveUpdates(_0x4464cc,_0x2ea879){return function(_0x401bbc){if(_0x401bbc){return _0x401bbc[_0x98cd('0x2a')](_0x4464cc)[_0x98cd('0x2b')](function(_0x5bc6df){return _0x5bc6df;});}return null;};}function removeEntity(_0x28a785,_0x36e340){return function(_0x1f528d){if(_0x1f528d){return _0x1f528d[_0x98cd('0x2c')]()['then'](function(){_0x28a785[_0x98cd('0x24')](0xcc)[_0x98cd('0x1f')]();});}};}function handleEntityNotFound(_0xe75a60,_0x382263){return function(_0x448f75){if(!_0x448f75){_0xe75a60[_0x98cd('0x1e')](0x194);}return _0x448f75;};}function handleError(_0x54fdbe,_0x3e9376){_0x3e9376=_0x3e9376||0x1f4;return function(_0x30b62a){logger[_0x98cd('0x2d')](_0x30b62a['stack']);if(_0x30b62a['name']){delete _0x30b62a['name'];}_0x54fdbe[_0x98cd('0x24')](_0x3e9376)[_0x98cd('0x2e')](_0x30b62a);};}exports[_0x98cd('0x2f')]=function(_0x5b0dd9,_0x457804){var _0x4378d4={'raw':![],'where':{'id':_0x5b0dd9[_0x98cd('0x30')]['id']}},_0x48043e={};_0x48043e[_0x98cd('0x31')]=_[_0x98cd('0x32')](db[_0x98cd('0x33')][_0x98cd('0x34')]);_0x48043e['query']=_[_0x98cd('0x32')](_0x5b0dd9[_0x98cd('0x35')]);_0x48043e['filters']=_[_0x98cd('0x36')](_0x48043e['model'],_0x48043e[_0x98cd('0x35')]);_0x4378d4[_0x98cd('0x37')]=_['intersection'](_0x48043e['model'],qs[_0x98cd('0x38')](_0x5b0dd9['query']['fields']));_0x4378d4['attributes']=_0x4378d4[_0x98cd('0x37')][_0x98cd('0x39')]?_0x4378d4['attributes']:_0x48043e[_0x98cd('0x31')];if(_0x5b0dd9['query']['includeAll']){_0x4378d4[_0x98cd('0x3a')]=[{'all':!![]}];}_0x4378d4=_[_0x98cd('0x3b')]({},_0x4378d4,_0x5b0dd9[_0x98cd('0x3c')]);return db['DashboardItem'][_0x98cd('0x3d')](_0x4378d4)['then'](handleEntityNotFound(_0x457804,null))[_0x98cd('0x2b')](respondWithResult(_0x457804,null))[_0x98cd('0x3e')](handleError(_0x457804,null));};exports[_0x98cd('0x2c')]=function(_0x594851,_0x92d967){return db[_0x98cd('0x33')][_0x98cd('0x3d')]({'where':{'id':_0x594851['params']['id']}})['then'](handleEntityNotFound(_0x92d967,null))[_0x98cd('0x2b')](removeEntity(_0x92d967,null))[_0x98cd('0x3e')](handleError(_0x92d967,null));};function widgetAttributes(_0x41fd0e){try{switch(_0x41fd0e[_0x98cd('0x3f')]){case _0x98cd('0x40'):return[{'name':_0x98cd('0x41'),'value':_0x41fd0e['attrUrl']||(_0x41fd0e[_0x98cd('0x42')]&&_0x41fd0e['attrs'][0x0]?_0x41fd0e[_0x98cd('0x42')][0x0][_0x98cd('0x43')]:undefined)||'https://'}];case'custom':return[{'name':'attrPath','value':_0x41fd0e[_0x98cd('0x44')]||(_0x41fd0e['attrs']&&_0x41fd0e[_0x98cd('0x42')][0x0]?_0x41fd0e['attrs'][0x0]['value']:undefined)||''}];case'clock':return[{'name':_0x98cd('0x45'),'value':_0x41fd0e[_0x98cd('0x45')]||(_0x41fd0e['attrs']&&_0x41fd0e[_0x98cd('0x42')][0x0]?_0x41fd0e['attrs'][0x0]['value']:undefined)||_0x98cd('0x46')},{'name':_0x98cd('0x47'),'value':_0x41fd0e[_0x98cd('0x47')]||(_0x41fd0e[_0x98cd('0x42')]&&_0x41fd0e[_0x98cd('0x42')][0x1]?_0x41fd0e['attrs'][0x1]['value']:undefined)||_0x98cd('0x48')},{'name':_0x98cd('0x49'),'value':_0x41fd0e[_0x98cd('0x49')]||(_0x41fd0e[_0x98cd('0x42')]&&_0x41fd0e['attrs'][0x2]?_0x41fd0e[_0x98cd('0x42')][0x2][_0x98cd('0x43')]:undefined)||0xc}];case _0x98cd('0x4a'):return[{'name':'attrMetric','value':_0x41fd0e[_0x98cd('0x4b')]||(_0x41fd0e[_0x98cd('0x42')]&&_0x41fd0e['attrs'][0x0]?_0x41fd0e[_0x98cd('0x42')][0x0]['value']:undefined)||_0x98cd('0x4c')},{'name':_0x98cd('0x4d'),'value':_0x41fd0e['attrVoiceQueues']||(_0x41fd0e[_0x98cd('0x42')]&&_0x41fd0e['attrs'][0x1]?_0x41fd0e['attrs'][0x1][_0x98cd('0x43')]:undefined)||[]},{'name':_0x98cd('0x49'),'value':_0x41fd0e[_0x98cd('0x49')]||(_0x41fd0e[_0x98cd('0x42')]&&_0x41fd0e[_0x98cd('0x42')][0x2]?_0x41fd0e['attrs'][0x2][_0x98cd('0x43')]:undefined)||0x14}];case _0x98cd('0x4e'):case'pie-chart':return[{'name':_0x98cd('0x4f'),'value':_0x41fd0e[_0x98cd('0x4f')]||(_0x41fd0e[_0x98cd('0x42')]&&_0x41fd0e[_0x98cd('0x42')][0x0]?_0x41fd0e['attrs'][0x0][_0x98cd('0x43')]:undefined)||_0x98cd('0x4c')},{'name':_0x98cd('0x50'),'value':_0x41fd0e[_0x98cd('0x50')]||(_0x41fd0e[_0x98cd('0x42')]&&_0x41fd0e['attrs'][0x1]?_0x41fd0e[_0x98cd('0x42')][0x1][_0x98cd('0x43')]:undefined)||null},{'name':_0x98cd('0x51'),'value':_0x41fd0e[_0x98cd('0x51')]||(_0x41fd0e[_0x98cd('0x42')]&&_0x41fd0e[_0x98cd('0x42')][0x2]?_0x41fd0e[_0x98cd('0x42')][0x2]['value']:undefined)||null},{'name':_0x98cd('0x4d'),'value':_0x41fd0e[_0x98cd('0x4d')]||(_0x41fd0e[_0x98cd('0x42')]&&_0x41fd0e[_0x98cd('0x42')][0x3]?_0x41fd0e['attrs'][0x3][_0x98cd('0x43')]:undefined)||[]}];case _0x98cd('0x52'):return[{'name':'attrReport','type':_0x41fd0e['reportType']||(_0x41fd0e[_0x98cd('0x42')]&&_0x41fd0e[_0x98cd('0x42')][0x0]?_0x41fd0e[_0x98cd('0x42')][0x0]['type']:undefined)||null,'value':_0x41fd0e[_0x98cd('0x53')]||(_0x41fd0e[_0x98cd('0x42')]&&_0x41fd0e['attrs'][0x0]?_0x41fd0e[_0x98cd('0x42')][0x0][_0x98cd('0x43')]:undefined)||null},{'name':'attrRefresh','value':_0x41fd0e['attrRefresh']||(_0x41fd0e[_0x98cd('0x42')]&&_0x41fd0e[_0x98cd('0x42')][0x1]?_0x41fd0e['attrs'][0x1][_0x98cd('0x43')]:undefined)||0x0}];default:return[];}}catch(_0x37ee34){logger[_0x98cd('0x2d')](_0x98cd('0x54'),JSON[_0x98cd('0x55')](_0x37ee34));return[];}}exports[_0x98cd('0x56')]=function(_0x11f3cd,_0x2171b1){if(_0x11f3cd[_0x98cd('0x57')]){_0x11f3cd[_0x98cd('0x57')]['attrs']=widgetAttributes(_0x11f3cd[_0x98cd('0x57')]);}return db['DashboardItem'][_0x98cd('0x56')](_0x11f3cd[_0x98cd('0x57')],{})['then'](respondWithResult(_0x2171b1,0xc9))['catch'](handleError(_0x2171b1,null));};exports['update']=function(_0x487762,_0x13d5c3){if(_0x487762['body']['id']){delete _0x487762[_0x98cd('0x57')]['id'];}_0x487762[_0x98cd('0x57')][_0x98cd('0x42')]=widgetAttributes(_0x487762[_0x98cd('0x57')]);return db['DashboardItem'][_0x98cd('0x3d')]({'where':{'id':_0x487762[_0x98cd('0x30')]['id']}})['then'](handleEntityNotFound(_0x13d5c3,null))[_0x98cd('0x2b')](saveUpdates(_0x487762[_0x98cd('0x57')],null))[_0x98cd('0x2b')](respondWithResult(_0x13d5c3,null))[_0x98cd('0x3e')](handleError(_0x13d5c3,null));};
\ No newline at end of file
+var _0x4e6b=['util','path','sox','to-csv','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','localhost','./dashboardItem.socket','register','sendStatus','status','end','undefined','limit','count','offset','set','json','apply','save','update','then','error','stack','name','send','show','model','rawAttributes','query','keys','filters','fields','attributes','length','include','merge','options','DashboardItem','find','destroy','params','catch','type','attrUrl','attrs','attrPath','clock','attrHourFormat','value','HH:mm:ss','0.00','attrFontSize','counter','attrMetric','total','attrVoiceQueues','multibar-chart','pie-chart','attrSerie1','attrSerie2','attrSerie3','web-report','attrReport','reportType','attrRefresh','widgetAttributes:\x20%s','stringify','create','body','eml-format','zip-dir','request-promise','moment'];(function(_0x4b369d,_0x265eb8){var _0x571a98=function(_0x56341a){while(--_0x56341a){_0x4b369d['push'](_0x4b369d['shift']());}};_0x571a98(++_0x265eb8);}(_0x4e6b,0x1be));var _0xb4e6=function(_0x501510,_0x61caa9){_0x501510=_0x501510-0x0;var _0x1e6ee5=_0x4e6b[_0x501510];return _0x1e6ee5;};'use strict';var emlformat=require(_0xb4e6('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xb4e6('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xb4e6('0x2'));var moment=require(_0xb4e6('0x3'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xb4e6('0x4'));var path=require(_0xb4e6('0x5'));var sox=require(_0xb4e6('0x6'));var csv=require(_0xb4e6('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xb4e6('0x8'));var _=require(_0xb4e6('0x9'));var squel=require(_0xb4e6('0xa'));var crypto=require(_0xb4e6('0xb'));var jsforce=require('jsforce');var deskjs=require(_0xb4e6('0xc'));var toCsv=require(_0xb4e6('0x7'));var querystring=require(_0xb4e6('0xd'));var Papa=require(_0xb4e6('0xe'));var Redis=require(_0xb4e6('0xf'));var authService=require('../../components/auth/service');var qs=require(_0xb4e6('0x10'));var as=require(_0xb4e6('0x11'));var hardwareService=require(_0xb4e6('0x12'));var logger=require(_0xb4e6('0x13'))(_0xb4e6('0x14'));var utils=require(_0xb4e6('0x15'));var config=require(_0xb4e6('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0xb4e6('0x17'))['db'];config[_0xb4e6('0x18')]=_[_0xb4e6('0x19')](config[_0xb4e6('0x18')],{'host':_0xb4e6('0x1a'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0xb4e6('0x1b'))[_0xb4e6('0x1c')](socket);function respondWithStatusCode(_0x1d485e,_0xf253b0){_0xf253b0=_0xf253b0||0xcc;return function(_0x546b45){if(_0x546b45){return _0x1d485e[_0xb4e6('0x1d')](_0xf253b0);}return _0x1d485e[_0xb4e6('0x1e')](_0xf253b0)[_0xb4e6('0x1f')]();};}function respondWithResult(_0xe5ea7e,_0x2e30fb){_0x2e30fb=_0x2e30fb||0xc8;return function(_0x417202){if(_0x417202){return _0xe5ea7e[_0xb4e6('0x1e')](_0x2e30fb)['json'](_0x417202);}};}function respondWithFilteredResult(_0x87d268,_0x30af29){return function(_0x2b461d){if(_0x2b461d){var _0x2a58c0=typeof _0x30af29['offset']===_0xb4e6('0x20')&&typeof _0x30af29[_0xb4e6('0x21')]===_0xb4e6('0x20');var _0x2fbf12=_0x2b461d[_0xb4e6('0x22')];var _0x3a4859=_0x2a58c0?0x0:_0x30af29[_0xb4e6('0x23')];var _0x3d5a0b=_0x2a58c0?_0x2b461d[_0xb4e6('0x22')]:_0x30af29[_0xb4e6('0x23')]+_0x30af29[_0xb4e6('0x21')];var _0x223fbf;if(_0x3d5a0b>=_0x2fbf12){_0x3d5a0b=_0x2fbf12;_0x223fbf=0xc8;}else{_0x223fbf=0xce;}_0x87d268['status'](_0x223fbf);return _0x87d268[_0xb4e6('0x24')]('Content-Range',_0x3a4859+'-'+_0x3d5a0b+'/'+_0x2fbf12)[_0xb4e6('0x25')](_0x2b461d);}return null;};}function patchUpdates(_0x424f7d){return function(_0x44c3b4){try{jsonpatch[_0xb4e6('0x26')](_0x44c3b4,_0x424f7d,!![]);}catch(_0x5d0480){return BPromise['reject'](_0x5d0480);}return _0x44c3b4[_0xb4e6('0x27')]();};}function saveUpdates(_0x46a24b,_0x20edae){return function(_0x24ddd1){if(_0x24ddd1){return _0x24ddd1[_0xb4e6('0x28')](_0x46a24b)[_0xb4e6('0x29')](function(_0x30ae59){return _0x30ae59;});}return null;};}function removeEntity(_0x383889,_0x567181){return function(_0x6d98b4){if(_0x6d98b4){return _0x6d98b4['destroy']()[_0xb4e6('0x29')](function(){_0x383889[_0xb4e6('0x1e')](0xcc)[_0xb4e6('0x1f')]();});}};}function handleEntityNotFound(_0x1e10f9,_0x10be99){return function(_0x57f920){if(!_0x57f920){_0x1e10f9[_0xb4e6('0x1d')](0x194);}return _0x57f920;};}function handleError(_0x4c2686,_0x50f909){_0x50f909=_0x50f909||0x1f4;return function(_0x1dcfe3){logger[_0xb4e6('0x2a')](_0x1dcfe3[_0xb4e6('0x2b')]);if(_0x1dcfe3[_0xb4e6('0x2c')]){delete _0x1dcfe3['name'];}_0x4c2686[_0xb4e6('0x1e')](_0x50f909)[_0xb4e6('0x2d')](_0x1dcfe3);};}exports[_0xb4e6('0x2e')]=function(_0x7fb52d,_0x400cb9){var _0xb67e02={'raw':![],'where':{'id':_0x7fb52d['params']['id']}},_0x34e544={};_0x34e544[_0xb4e6('0x2f')]=_['keys'](db['DashboardItem'][_0xb4e6('0x30')]);_0x34e544[_0xb4e6('0x31')]=_[_0xb4e6('0x32')](_0x7fb52d[_0xb4e6('0x31')]);_0x34e544[_0xb4e6('0x33')]=_['intersection'](_0x34e544['model'],_0x34e544[_0xb4e6('0x31')]);_0xb67e02['attributes']=_['intersection'](_0x34e544[_0xb4e6('0x2f')],qs[_0xb4e6('0x34')](_0x7fb52d[_0xb4e6('0x31')]['fields']));_0xb67e02[_0xb4e6('0x35')]=_0xb67e02[_0xb4e6('0x35')][_0xb4e6('0x36')]?_0xb67e02[_0xb4e6('0x35')]:_0x34e544['model'];if(_0x7fb52d[_0xb4e6('0x31')]['includeAll']){_0xb67e02[_0xb4e6('0x37')]=[{'all':!![]}];}_0xb67e02=_[_0xb4e6('0x38')]({},_0xb67e02,_0x7fb52d[_0xb4e6('0x39')]);return db[_0xb4e6('0x3a')][_0xb4e6('0x3b')](_0xb67e02)[_0xb4e6('0x29')](handleEntityNotFound(_0x400cb9,null))['then'](respondWithResult(_0x400cb9,null))['catch'](handleError(_0x400cb9,null));};exports[_0xb4e6('0x3c')]=function(_0x547de2,_0x16dc05){return db[_0xb4e6('0x3a')][_0xb4e6('0x3b')]({'where':{'id':_0x547de2[_0xb4e6('0x3d')]['id']}})[_0xb4e6('0x29')](handleEntityNotFound(_0x16dc05,null))[_0xb4e6('0x29')](removeEntity(_0x16dc05,null))[_0xb4e6('0x3e')](handleError(_0x16dc05,null));};function widgetAttributes(_0x656755){try{switch(_0x656755[_0xb4e6('0x3f')]){case'iframe':return[{'name':_0xb4e6('0x40'),'value':_0x656755[_0xb4e6('0x40')]||(_0x656755[_0xb4e6('0x41')]&&_0x656755[_0xb4e6('0x41')][0x0]?_0x656755['attrs'][0x0]['value']:undefined)||'https://'}];case'custom':return[{'name':_0xb4e6('0x42'),'value':_0x656755[_0xb4e6('0x42')]||(_0x656755['attrs']&&_0x656755[_0xb4e6('0x41')][0x0]?_0x656755[_0xb4e6('0x41')][0x0]['value']:undefined)||''}];case _0xb4e6('0x43'):return[{'name':_0xb4e6('0x44'),'value':_0x656755['attrHourFormat']||(_0x656755[_0xb4e6('0x41')]&&_0x656755[_0xb4e6('0x41')][0x0]?_0x656755[_0xb4e6('0x41')][0x0][_0xb4e6('0x45')]:undefined)||_0xb4e6('0x46')},{'name':'attrTimezone','value':_0x656755['attrTimezone']||(_0x656755[_0xb4e6('0x41')]&&_0x656755['attrs'][0x1]?_0x656755[_0xb4e6('0x41')][0x1]['value']:undefined)||_0xb4e6('0x47')},{'name':_0xb4e6('0x48'),'value':_0x656755[_0xb4e6('0x48')]||(_0x656755[_0xb4e6('0x41')]&&_0x656755[_0xb4e6('0x41')][0x2]?_0x656755[_0xb4e6('0x41')][0x2]['value']:undefined)||0xc}];case _0xb4e6('0x49'):return[{'name':_0xb4e6('0x4a'),'value':_0x656755[_0xb4e6('0x4a')]||(_0x656755[_0xb4e6('0x41')]&&_0x656755[_0xb4e6('0x41')][0x0]?_0x656755[_0xb4e6('0x41')][0x0][_0xb4e6('0x45')]:undefined)||_0xb4e6('0x4b')},{'name':_0xb4e6('0x4c'),'value':_0x656755['attrVoiceQueues']||(_0x656755['attrs']&&_0x656755[_0xb4e6('0x41')][0x1]?_0x656755[_0xb4e6('0x41')][0x1][_0xb4e6('0x45')]:undefined)||[]},{'name':'attrFontSize','value':_0x656755[_0xb4e6('0x48')]||(_0x656755[_0xb4e6('0x41')]&&_0x656755[_0xb4e6('0x41')][0x2]?_0x656755['attrs'][0x2][_0xb4e6('0x45')]:undefined)||0x14}];case _0xb4e6('0x4d'):case _0xb4e6('0x4e'):return[{'name':_0xb4e6('0x4f'),'value':_0x656755[_0xb4e6('0x4f')]||(_0x656755['attrs']&&_0x656755[_0xb4e6('0x41')][0x0]?_0x656755[_0xb4e6('0x41')][0x0][_0xb4e6('0x45')]:undefined)||_0xb4e6('0x4b')},{'name':_0xb4e6('0x50'),'value':_0x656755[_0xb4e6('0x50')]||(_0x656755[_0xb4e6('0x41')]&&_0x656755['attrs'][0x1]?_0x656755[_0xb4e6('0x41')][0x1][_0xb4e6('0x45')]:undefined)||null},{'name':_0xb4e6('0x51'),'value':_0x656755[_0xb4e6('0x51')]||(_0x656755['attrs']&&_0x656755[_0xb4e6('0x41')][0x2]?_0x656755[_0xb4e6('0x41')][0x2]['value']:undefined)||null},{'name':_0xb4e6('0x4c'),'value':_0x656755[_0xb4e6('0x4c')]||(_0x656755[_0xb4e6('0x41')]&&_0x656755[_0xb4e6('0x41')][0x3]?_0x656755[_0xb4e6('0x41')][0x3][_0xb4e6('0x45')]:undefined)||[]}];case _0xb4e6('0x52'):return[{'name':_0xb4e6('0x53'),'type':_0x656755[_0xb4e6('0x54')]||(_0x656755[_0xb4e6('0x41')]&&_0x656755[_0xb4e6('0x41')][0x0]?_0x656755[_0xb4e6('0x41')][0x0]['type']:undefined)||null,'value':_0x656755['attrReport']||(_0x656755[_0xb4e6('0x41')]&&_0x656755[_0xb4e6('0x41')][0x0]?_0x656755[_0xb4e6('0x41')][0x0][_0xb4e6('0x45')]:undefined)||null},{'name':_0xb4e6('0x55'),'value':_0x656755[_0xb4e6('0x55')]||(_0x656755[_0xb4e6('0x41')]&&_0x656755[_0xb4e6('0x41')][0x1]?_0x656755[_0xb4e6('0x41')][0x1][_0xb4e6('0x45')]:undefined)||0x0}];default:return[];}}catch(_0x5c6a53){logger[_0xb4e6('0x2a')](_0xb4e6('0x56'),JSON[_0xb4e6('0x57')](_0x5c6a53));return[];}}exports[_0xb4e6('0x58')]=function(_0x86247a,_0x481b24){if(_0x86247a[_0xb4e6('0x59')]){_0x86247a[_0xb4e6('0x59')]['attrs']=widgetAttributes(_0x86247a['body']);}return db[_0xb4e6('0x3a')]['create'](_0x86247a[_0xb4e6('0x59')],{})[_0xb4e6('0x29')](respondWithResult(_0x481b24,0xc9))['catch'](handleError(_0x481b24,null));};exports[_0xb4e6('0x28')]=function(_0x33c6dc,_0x42e5ff){if(_0x33c6dc[_0xb4e6('0x59')]['id']){delete _0x33c6dc[_0xb4e6('0x59')]['id'];}_0x33c6dc['body'][_0xb4e6('0x41')]=widgetAttributes(_0x33c6dc[_0xb4e6('0x59')]);return db['DashboardItem'][_0xb4e6('0x3b')]({'where':{'id':_0x33c6dc[_0xb4e6('0x3d')]['id']}})[_0xb4e6('0x29')](handleEntityNotFound(_0x42e5ff,null))['then'](saveUpdates(_0x33c6dc[_0xb4e6('0x59')],null))[_0xb4e6('0x29')](respondWithResult(_0x42e5ff,null))[_0xb4e6('0x3e')](handleError(_0x42e5ff,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x68c7=['emit','exports','events','../../mysqldb','remove'];(function(_0x2dafbe,_0x5d04de){var _0x58a45a=function(_0x50ac96){while(--_0x50ac96){_0x2dafbe['push'](_0x2dafbe['shift']());}};_0x58a45a(++_0x5d04de);}(_0x68c7,0x16a));var _0x768c=function(_0x275726,_0x4e8fa1){_0x275726=_0x275726-0x0;var _0x42da70=_0x68c7[_0x275726];return _0x42da70;};'use strict';var EventEmitter=require(_0x768c('0x0'));var DashboardItem=require(_0x768c('0x1'))['db']['DashboardItem'];var DashboardItemEvents=new EventEmitter();DashboardItemEvents['setMaxListeners'](0x0);var events={'afterCreate':'save','afterUpdate':'update','afterDestroy':_0x768c('0x2')};function emitEvent(_0xc4b8e1){return function(_0x37bd43,_0x53bd8c,_0x79fc47){DashboardItemEvents[_0x768c('0x3')](_0xc4b8e1+':'+_0x37bd43['id'],_0x37bd43);DashboardItemEvents[_0x768c('0x3')](_0xc4b8e1,_0x37bd43);_0x79fc47(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];DashboardItem['hook'](e,emitEvent(event));}}module[_0x768c('0x4')]=DashboardItemEvents;
\ No newline at end of file
+var _0x7733=['exports','../../mysqldb','setMaxListeners','save','update','remove','emit','hasOwnProperty'];(function(_0x5e7014,_0x2c7864){var _0x2dc25a=function(_0x254fdb){while(--_0x254fdb){_0x5e7014['push'](_0x5e7014['shift']());}};_0x2dc25a(++_0x2c7864);}(_0x7733,0x1d9));var _0x3773=function(_0x1cc8fe,_0x105328){_0x1cc8fe=_0x1cc8fe-0x0;var _0x230054=_0x7733[_0x1cc8fe];return _0x230054;};'use strict';var EventEmitter=require('events');var DashboardItem=require(_0x3773('0x0'))['db']['DashboardItem'];var DashboardItemEvents=new EventEmitter();DashboardItemEvents[_0x3773('0x1')](0x0);var events={'afterCreate':_0x3773('0x2'),'afterUpdate':_0x3773('0x3'),'afterDestroy':_0x3773('0x4')};function emitEvent(_0x1c6301){return function(_0x22000c,_0x915037,_0x287776){DashboardItemEvents[_0x3773('0x5')](_0x1c6301+':'+_0x22000c['id'],_0x22000c);DashboardItemEvents[_0x3773('0x5')](_0x1c6301,_0x22000c);_0x287776(null);};}for(var e in events){if(events[_0x3773('0x6')](e)){var event=events[e];DashboardItem['hook'](e,emitEvent(event));}}module[_0x3773('0x7')]=DashboardItemEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8deb=['api','moment','request-promise','rimraf','../../config/environment','exports','define','DashboardItem','dashboard_items','lodash','util'];(function(_0x478c8a,_0x9afc92){var _0x3b6b3e=function(_0x37634e){while(--_0x37634e){_0x478c8a['push'](_0x478c8a['shift']());}};_0x3b6b3e(++_0x9afc92);}(_0x8deb,0xf0));var _0xb8de=function(_0x203cf5,_0x8421e0){_0x203cf5=_0x203cf5-0x0;var _0x17a51d=_0x8deb[_0x203cf5];return _0x17a51d;};'use strict';var _=require(_0xb8de('0x0'));var util=require(_0xb8de('0x1'));var logger=require('../../config/logger')(_0xb8de('0x2'));var moment=require(_0xb8de('0x3'));var BPromise=require('bluebird');var rp=require(_0xb8de('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0xb8de('0x5'));var config=require(_0xb8de('0x6'));var attributes=require('./dashboardItem.attributes');module[_0xb8de('0x7')]=function(_0x17a743,_0x1cfcd4){return _0x17a743[_0xb8de('0x8')](_0xb8de('0x9'),attributes,{'tableName':_0xb8de('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x5eb0=['util','../../config/logger','api','moment','request-promise','path','../../config/environment','./dashboardItem.attributes','exports','define','DashboardItem','dashboard_items','lodash'];(function(_0x182baf,_0x1375fb){var _0x4d10f1=function(_0x1e0dde){while(--_0x1e0dde){_0x182baf['push'](_0x182baf['shift']());}};_0x4d10f1(++_0x1375fb);}(_0x5eb0,0x1c6));var _0x05eb=function(_0x1d215f,_0x32f914){_0x1d215f=_0x1d215f-0x0;var _0x4498ef=_0x5eb0[_0x1d215f];return _0x4498ef;};'use strict';var _=require(_0x05eb('0x0'));var util=require(_0x05eb('0x1'));var logger=require(_0x05eb('0x2'))(_0x05eb('0x3'));var moment=require(_0x05eb('0x4'));var BPromise=require('bluebird');var rp=require(_0x05eb('0x5'));var fs=require('fs');var path=require(_0x05eb('0x6'));var rimraf=require('rimraf');var config=require(_0x05eb('0x7'));var attributes=require(_0x05eb('0x8'));module[_0x05eb('0x9')]=function(_0xcd64fb,_0x3ee1e9){return _0xcd64fb[_0x05eb('0xa')](_0x05eb('0xb'),attributes,{'tableName':_0x05eb('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0326=['redis','defaults','localhost','./dashboardItem.socket','request','then','info','DashboardItem,\x20%s,\x20%s','request\x20sent','debug','DashboardItem,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','rpc','client','http'];(function(_0x4207a6,_0x3a3110){var _0x42b37a=function(_0x574360){while(--_0x574360){_0x4207a6['push'](_0x4207a6['shift']());}};_0x42b37a(++_0x3a3110);}(_0x0326,0x1a6));var _0x6032=function(_0x1c7fc2,_0x5eff2b){_0x1c7fc2=_0x1c7fc2-0x0;var _0x5d94da=_0x0326[_0x1c7fc2];return _0x5d94da;};'use strict';var _=require(_0x6032('0x0'));var util=require(_0x6032('0x1'));var moment=require(_0x6032('0x2'));var BPromise=require(_0x6032('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x6032('0x4'));var db=require(_0x6032('0x5'))['db'];var utils=require(_0x6032('0x6'));var logger=require('../../config/logger')(_0x6032('0x7'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0x6032('0x8')][_0x6032('0x9')]({'port':0x232a});config[_0x6032('0xa')]=_[_0x6032('0xb')](config[_0x6032('0xa')],{'host':_0x6032('0xc'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x6032('0xa')]));require(_0x6032('0xd'))['register'](socket);function respondWithRpcPromise(_0x5e4155,_0x437d5a,_0x109735){return new BPromise(function(_0x2c9036,_0x4850aa){return client[_0x6032('0xe')](_0x5e4155,_0x109735)[_0x6032('0xf')](function(_0xcafcf4){logger[_0x6032('0x10')](_0x6032('0x11'),_0x437d5a,_0x6032('0x12'));logger[_0x6032('0x13')](_0x6032('0x14'),_0x437d5a,'request\x20sent',JSON[_0x6032('0x15')](_0xcafcf4));if(_0xcafcf4[_0x6032('0x16')]){if(_0xcafcf4[_0x6032('0x16')][_0x6032('0x17')]===0x1f4){logger[_0x6032('0x16')]('DashboardItem,\x20%s,\x20%s',_0x437d5a,_0xcafcf4[_0x6032('0x16')]['message']);return _0x4850aa(_0xcafcf4[_0x6032('0x16')][_0x6032('0x18')]);}logger[_0x6032('0x16')](_0x6032('0x11'),_0x437d5a,_0xcafcf4[_0x6032('0x16')][_0x6032('0x18')]);return _0x2c9036(_0xcafcf4[_0x6032('0x16')][_0x6032('0x18')]);}else{logger['info'](_0x6032('0x11'),_0x437d5a,_0x6032('0x12'));_0x2c9036(_0xcafcf4[_0x6032('0x19')][_0x6032('0x18')]);}})[_0x6032('0x1a')](function(_0x458642){logger['error'](_0x6032('0x11'),_0x437d5a,_0x458642);_0x4850aa(_0x458642);});});}
\ No newline at end of file
+var _0x5498=['jayson/promise','client','http','redis','localhost','socket.io-emitter','./dashboardItem.socket','register','request','info','DashboardItem,\x20%s,\x20%s','request\x20sent','debug','stringify','error','message','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment'];(function(_0x57173b,_0x270748){var _0x5927bd=function(_0x39ac8b){while(--_0x39ac8b){_0x57173b['push'](_0x57173b['shift']());}};_0x5927bd(++_0x270748);}(_0x5498,0x1d2));var _0x8549=function(_0x11a582,_0x4103ce){_0x11a582=_0x11a582-0x0;var _0x354f1b=_0x5498[_0x11a582];return _0x354f1b;};'use strict';var _=require(_0x8549('0x0'));var util=require('util');var moment=require(_0x8549('0x1'));var BPromise=require(_0x8549('0x2'));var rs=require(_0x8549('0x3'));var fs=require('fs');var Redis=require(_0x8549('0x4'));var db=require(_0x8549('0x5'))['db'];var utils=require(_0x8549('0x6'));var logger=require(_0x8549('0x7'))('rpc');var config=require(_0x8549('0x8'));var jayson=require(_0x8549('0x9'));var client=jayson[_0x8549('0xa')][_0x8549('0xb')]({'port':0x232a});config[_0x8549('0xc')]=_['defaults'](config[_0x8549('0xc')],{'host':_0x8549('0xd'),'port':0x18eb});var socket=require(_0x8549('0xe'))(new Redis(config['redis']));require(_0x8549('0xf'))[_0x8549('0x10')](socket);function respondWithRpcPromise(_0x1fe83f,_0x3be82a,_0x171aca){return new BPromise(function(_0x23bc27,_0x44ba1e){return client[_0x8549('0x11')](_0x1fe83f,_0x171aca)['then'](function(_0x868629){logger[_0x8549('0x12')](_0x8549('0x13'),_0x3be82a,_0x8549('0x14'));logger[_0x8549('0x15')]('DashboardItem,\x20%s,\x20%s,\x20%s',_0x3be82a,_0x8549('0x14'),JSON[_0x8549('0x16')](_0x868629));if(_0x868629[_0x8549('0x17')]){if(_0x868629[_0x8549('0x17')]['code']===0x1f4){logger[_0x8549('0x17')](_0x8549('0x13'),_0x3be82a,_0x868629[_0x8549('0x17')]['message']);return _0x44ba1e(_0x868629[_0x8549('0x17')][_0x8549('0x18')]);}logger[_0x8549('0x17')](_0x8549('0x13'),_0x3be82a,_0x868629['error'][_0x8549('0x18')]);return _0x23bc27(_0x868629[_0x8549('0x17')][_0x8549('0x18')]);}else{logger['info'](_0x8549('0x13'),_0x3be82a,'request\x20sent');_0x23bc27(_0x868629['result'][_0x8549('0x18')]);}})['catch'](function(_0x270341){logger['error'](_0x8549('0x13'),_0x3be82a,_0x270341);_0x44ba1e(_0x270341);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9cc5=['update','emit','removeListener','register','length','./dashboardItem.events','save','remove'];(function(_0x1c1780,_0x93cb2){var _0x5eb4ae=function(_0x11a831){while(--_0x11a831){_0x1c1780['push'](_0x1c1780['shift']());}};_0x5eb4ae(++_0x93cb2);}(_0x9cc5,0x18d));var _0x59cc=function(_0x33a228,_0xd0b445){_0x33a228=_0x33a228-0x0;var _0xf7b87d=_0x9cc5[_0x33a228];return _0xf7b87d;};'use strict';var DashboardItemEvents=require(_0x59cc('0x0'));var events=[_0x59cc('0x1'),_0x59cc('0x2'),_0x59cc('0x3')];function createListener(_0x5b55b9,_0x4db7a5){return function(_0x1cb00a){_0x4db7a5[_0x59cc('0x4')](_0x5b55b9,_0x1cb00a);};}function removeListener(_0xb24986,_0x689e59){return function(){DashboardItemEvents[_0x59cc('0x5')](_0xb24986,_0x689e59);};}exports[_0x59cc('0x6')]=function(_0x152f96){for(var _0x41a481=0x0,_0x494526=events[_0x59cc('0x7')];_0x41a481<_0x494526;_0x41a481++){var _0x5cd73c=events[_0x41a481];var _0x3ee825=createListener('dashboardItem:'+_0x5cd73c,_0x152f96);DashboardItemEvents['on'](_0x5cd73c,_0x3ee825);}};
\ No newline at end of file
+var _0x2ce8=['register','dashboardItem:','./dashboardItem.events','save','remove','update','emit'];(function(_0x895a50,_0x5216fd){var _0x396026=function(_0x440361){while(--_0x440361){_0x895a50['push'](_0x895a50['shift']());}};_0x396026(++_0x5216fd);}(_0x2ce8,0x1d7));var _0x82ce=function(_0x46adcd,_0x15c37b){_0x46adcd=_0x46adcd-0x0;var _0x2f9454=_0x2ce8[_0x46adcd];return _0x2f9454;};'use strict';var DashboardItemEvents=require(_0x82ce('0x0'));var events=[_0x82ce('0x1'),_0x82ce('0x2'),_0x82ce('0x3')];function createListener(_0x8afcc3,_0x1aa659){return function(_0xd9f4c6){_0x1aa659[_0x82ce('0x4')](_0x8afcc3,_0xd9f4c6);};}function removeListener(_0x470b8a,_0x143459){return function(){DashboardItemEvents['removeListener'](_0x470b8a,_0x143459);};}exports[_0x82ce('0x5')]=function(_0x2a46d6){for(var _0x2a81da=0x0,_0x3063a4=events['length'];_0x2a81da<_0x3063a4;_0x2a81da++){var _0x543e7b=events[_0x2a81da];var _0x5e43f8=createListener(_0x82ce('0x6')+_0x543e7b,_0x2a46d6);DashboardItemEvents['on'](_0x543e7b,_0x5e43f8);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6b22=['fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./dashboardItem.controller','/:id','isAuthenticated','show','post','create','update','delete','path','connect-timeout','express'];(function(_0x14d3a3,_0x2cfbe9){var _0x2c0233=function(_0x430f21){while(--_0x430f21){_0x14d3a3['push'](_0x14d3a3['shift']());}};_0x2c0233(++_0x2cfbe9);}(_0x6b22,0x1a1));var _0x26b2=function(_0x313ea1,_0x2d2f67){_0x313ea1=_0x313ea1-0x0;var _0x17dcfe=_0x6b22[_0x313ea1];return _0x17dcfe;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x26b2('0x0'));var timeout=require(_0x26b2('0x1'));var express=require(_0x26b2('0x2'));var router=express['Router']();var fs_extra=require(_0x26b2('0x3'));var auth=require(_0x26b2('0x4'));var interaction=require(_0x26b2('0x5'));var config=require(_0x26b2('0x6'));var controller=require(_0x26b2('0x7'));router['get'](_0x26b2('0x8'),auth[_0x26b2('0x9')](),controller[_0x26b2('0xa')]);router[_0x26b2('0xb')]('/',auth[_0x26b2('0x9')](),controller[_0x26b2('0xc')]);router['put']('/:id',auth[_0x26b2('0x9')](),controller[_0x26b2('0xd')]);router[_0x26b2('0xe')](_0x26b2('0x8'),auth[_0x26b2('0x9')](),controller['destroy']);module['exports']=router;
\ No newline at end of file
+var _0x7bf7=['delete','destroy','exports','multer','util','path','express','Router','../../components/auth/service','../../config/environment','./dashboardItem.controller','/:id','isAuthenticated','show','post','create','put'];(function(_0x160248,_0x2a57e6){var _0x4e589d=function(_0x1ba722){while(--_0x1ba722){_0x160248['push'](_0x160248['shift']());}};_0x4e589d(++_0x2a57e6);}(_0x7bf7,0x9c));var _0x77bf=function(_0x5326f4,_0x304215){_0x5326f4=_0x5326f4-0x0;var _0x25b800=_0x7bf7[_0x5326f4];return _0x25b800;};'use strict';var multer=require(_0x77bf('0x0'));var util=require(_0x77bf('0x1'));var path=require(_0x77bf('0x2'));var timeout=require('connect-timeout');var express=require(_0x77bf('0x3'));var router=express[_0x77bf('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0x77bf('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0x77bf('0x6'));var controller=require(_0x77bf('0x7'));router['get'](_0x77bf('0x8'),auth[_0x77bf('0x9')](),controller[_0x77bf('0xa')]);router[_0x77bf('0xb')]('/',auth[_0x77bf('0x9')](),controller[_0x77bf('0xc')]);router[_0x77bf('0xd')](_0x77bf('0x8'),auth[_0x77bf('0x9')](),controller['update']);router[_0x77bf('0xe')](_0x77bf('0x8'),auth[_0x77bf('0x9')](),controller[_0x77bf('0xf')]);module[_0x77bf('0x10')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0832=['sequelize','exports','STRING','ENUM','first','second','third'];(function(_0x42dbdb,_0x9becea){var _0x4a5ca6=function(_0x2b991c){while(--_0x2b991c){_0x42dbdb['push'](_0x42dbdb['shift']());}};_0x4a5ca6(++_0x9becea);}(_0x0832,0x15e));var _0x2083=function(_0x1a3625,_0x3c9158){_0x1a3625=_0x1a3625-0x0;var _0x1adcbc=_0x0832[_0x1a3625];return _0x1adcbc;};'use strict';var Sequelize=require(_0x2083('0x0'));module[_0x2083('0x1')]={'name':{'type':Sequelize[_0x2083('0x2')],'allowNull':![]},'level':{'type':Sequelize[_0x2083('0x3')](_0x2083('0x4'),_0x2083('0x5'),_0x2083('0x6')),'allowNull':![],'defaultValue':_0x2083('0x4')},'description':{'type':Sequelize[_0x2083('0x2')]}};
\ No newline at end of file
+var _0xb863=['exports','STRING','first','second','third','sequelize'];(function(_0x27caa0,_0x1b7824){var _0x4b9490=function(_0x2c91b1){while(--_0x2c91b1){_0x27caa0['push'](_0x27caa0['shift']());}};_0x4b9490(++_0x1b7824);}(_0xb863,0xd7));var _0x3b86=function(_0x51020b,_0x38c2c7){_0x51020b=_0x51020b-0x0;var _0x371e47=_0xb863[_0x51020b];return _0x371e47;};'use strict';var Sequelize=require(_0x3b86('0x0'));module[_0x3b86('0x1')]={'name':{'type':Sequelize[_0x3b86('0x2')],'allowNull':![]},'level':{'type':Sequelize['ENUM'](_0x3b86('0x3'),_0x3b86('0x4'),_0x3b86('0x5')),'allowNull':![],'defaultValue':_0x3b86('0x3')},'description':{'type':Sequelize[_0x3b86('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x196b=['lodash','squel','jsforce','to-csv','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','count','Content-Range','reject','save','get','Dispositions','UserProfileResource','destroy','then','error','stack','name','send','index','map','Disposition','rawAttributes','fieldName','type','key','model','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','limit','sort','where','filter','merge','VIRTUAL','findAll','rows','catch','params','keys','length','includeAll','include','options','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','ejs','fs-extra'];(function(_0x5499e6,_0x3b73d0){var _0x3152d6=function(_0x26f5f7){while(--_0x26f5f7){_0x5499e6['push'](_0x5499e6['shift']());}};_0x3152d6(++_0x3b73d0);}(_0x196b,0x9d));var _0xb196=function(_0x22ea74,_0x5c937b){_0x22ea74=_0x22ea74-0x0;var _0x426260=_0x196b[_0x22ea74];return _0x426260;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xb196('0x0'));var jsonpatch=require(_0xb196('0x1'));var rp=require(_0xb196('0x2'));var moment=require(_0xb196('0x3'));var BPromise=require(_0xb196('0x4'));var Mustache=require(_0xb196('0x5'));var util=require(_0xb196('0x6'));var path=require(_0xb196('0x7'));var sox=require(_0xb196('0x8'));var csv=require('to-csv');var ejs=require(_0xb196('0x9'));var fs=require('fs');var fs_extra=require(_0xb196('0xa'));var _=require(_0xb196('0xb'));var squel=require(_0xb196('0xc'));var crypto=require('crypto');var jsforce=require(_0xb196('0xd'));var deskjs=require('desk.js');var toCsv=require(_0xb196('0xe'));var querystring=require(_0xb196('0xf'));var Papa=require(_0xb196('0x10'));var Redis=require(_0xb196('0x11'));var authService=require('../../components/auth/service');var qs=require(_0xb196('0x12'));var as=require(_0xb196('0x13'));var hardwareService=require(_0xb196('0x14'));var logger=require(_0xb196('0x15'))('api');var utils=require(_0xb196('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0xb196('0x17'));var db=require(_0xb196('0x18'))['db'];function respondWithStatusCode(_0x292915,_0x3deb0f){_0x3deb0f=_0x3deb0f||0xcc;return function(_0x30dd59){if(_0x30dd59){return _0x292915['sendStatus'](_0x3deb0f);}return _0x292915[_0xb196('0x19')](_0x3deb0f)[_0xb196('0x1a')]();};}function respondWithResult(_0x1473f3,_0x44b7fa){_0x44b7fa=_0x44b7fa||0xc8;return function(_0x184886){if(_0x184886){return _0x1473f3[_0xb196('0x19')](_0x44b7fa)[_0xb196('0x1b')](_0x184886);}};}function respondWithFilteredResult(_0x24b266,_0x5d059f){return function(_0x3e8cb1){if(_0x3e8cb1){var _0x411dc0=typeof _0x5d059f[_0xb196('0x1c')]===_0xb196('0x1d')&&typeof _0x5d059f['limit']===_0xb196('0x1d');var _0x32402f=_0x3e8cb1['count'];var _0x2a85c4=_0x411dc0?0x0:_0x5d059f[_0xb196('0x1c')];var _0x3f8adf=_0x411dc0?_0x3e8cb1[_0xb196('0x1e')]:_0x5d059f[_0xb196('0x1c')]+_0x5d059f['limit'];var _0x28d593;if(_0x3f8adf>=_0x32402f){_0x3f8adf=_0x32402f;_0x28d593=0xc8;}else{_0x28d593=0xce;}_0x24b266[_0xb196('0x19')](_0x28d593);return _0x24b266['set'](_0xb196('0x1f'),_0x2a85c4+'-'+_0x3f8adf+'/'+_0x32402f)[_0xb196('0x1b')](_0x3e8cb1);}return null;};}function patchUpdates(_0x2d0519){return function(_0x3f3ac2){try{jsonpatch['apply'](_0x3f3ac2,_0x2d0519,!![]);}catch(_0x5ba94d){return BPromise[_0xb196('0x20')](_0x5ba94d);}return _0x3f3ac2[_0xb196('0x21')]();};}function saveUpdates(_0x3d3f69,_0x290296){return function(_0x3839f0){if(_0x3839f0){return _0x3839f0['update'](_0x3d3f69)['then'](function(_0x585176){return _0x585176;});}return null;};}function removeEntity(_0x4deb2b,_0x342745){return function(_0x349c5e){if(_0x349c5e){return _0x349c5e['destroy']()['then'](function(){var _0x4ebf7c=_0x349c5e[_0xb196('0x22')]({'plain':!![]});var _0x8209ac=_0xb196('0x23');return db[_0xb196('0x24')][_0xb196('0x25')]({'where':{'type':_0x8209ac,'resourceId':_0x4ebf7c['id']}})[_0xb196('0x26')](function(){return _0x349c5e;});})[_0xb196('0x26')](function(){_0x4deb2b[_0xb196('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x1ff1f9,_0x5e4e6c){return function(_0x50f52c){if(!_0x50f52c){_0x1ff1f9['sendStatus'](0x194);}return _0x50f52c;};}function handleError(_0x1a53cc,_0x149d4f){_0x149d4f=_0x149d4f||0x1f4;return function(_0x16dd6d){logger[_0xb196('0x27')](_0x16dd6d[_0xb196('0x28')]);if(_0x16dd6d['name']){delete _0x16dd6d[_0xb196('0x29')];}_0x1a53cc[_0xb196('0x19')](_0x149d4f)[_0xb196('0x2a')](_0x16dd6d);};}exports[_0xb196('0x2b')]=function(_0x31b214,_0x1988af){var _0x4e678d={},_0x300838={},_0x3a315f={'count':0x0,'rows':[]};var _0x8f6a36=_[_0xb196('0x2c')](db[_0xb196('0x2d')][_0xb196('0x2e')],function(_0x56f15e){return{'name':_0x56f15e[_0xb196('0x2f')],'type':_0x56f15e[_0xb196('0x30')][_0xb196('0x31')]};});_0x300838[_0xb196('0x32')]=_[_0xb196('0x2c')](_0x8f6a36,_0xb196('0x29'));_0x300838[_0xb196('0x33')]=_['keys'](_0x31b214['query']);_0x300838[_0xb196('0x34')]=_[_0xb196('0x35')](_0x300838[_0xb196('0x32')],_0x300838[_0xb196('0x33')]);_0x4e678d[_0xb196('0x36')]=_[_0xb196('0x35')](_0x300838['model'],qs[_0xb196('0x37')](_0x31b214[_0xb196('0x33')][_0xb196('0x37')]));_0x4e678d['attributes']=_0x4e678d[_0xb196('0x36')]['length']?_0x4e678d[_0xb196('0x36')]:_0x300838[_0xb196('0x32')];if(!_0x31b214[_0xb196('0x33')][_0xb196('0x38')](_0xb196('0x39'))){_0x4e678d[_0xb196('0x3a')]=qs['limit'](_0x31b214[_0xb196('0x33')][_0xb196('0x3a')]);_0x4e678d[_0xb196('0x1c')]=qs['offset'](_0x31b214['query'][_0xb196('0x1c')]);}_0x4e678d['order']=qs[_0xb196('0x3b')](_0x31b214[_0xb196('0x33')][_0xb196('0x3b')]);_0x4e678d[_0xb196('0x3c')]=qs[_0xb196('0x34')](_['pick'](_0x31b214[_0xb196('0x33')],_0x300838[_0xb196('0x34')]),_0x8f6a36);if(_0x31b214[_0xb196('0x33')][_0xb196('0x3d')]){_0x4e678d['where']=_[_0xb196('0x3e')](_0x4e678d[_0xb196('0x3c')],{'$or':_[_0xb196('0x2c')](_0x8f6a36,function(_0x11b48b){if(_0x11b48b[_0xb196('0x30')]!==_0xb196('0x3f')){var _0x5d9c49={};_0x5d9c49[_0x11b48b[_0xb196('0x29')]]={'$like':'%'+_0x31b214[_0xb196('0x33')][_0xb196('0x3d')]+'%'};return _0x5d9c49;}})});}_0x4e678d=_[_0xb196('0x3e')]({},_0x4e678d,_0x31b214['options']);var _0x1e2b99={'where':_0x4e678d[_0xb196('0x3c')]};return db[_0xb196('0x2d')]['count'](_0x1e2b99)['then'](function(_0x390f7d){_0x3a315f[_0xb196('0x1e')]=_0x390f7d;if(_0x31b214[_0xb196('0x33')]['includeAll']){_0x4e678d['include']=[{'all':!![]}];}return db[_0xb196('0x2d')][_0xb196('0x40')](_0x4e678d);})[_0xb196('0x26')](function(_0x12a460){_0x3a315f[_0xb196('0x41')]=_0x12a460;return _0x3a315f;})[_0xb196('0x26')](respondWithFilteredResult(_0x1988af,_0x4e678d))[_0xb196('0x42')](handleError(_0x1988af,null));};exports['show']=function(_0x184ddf,_0x38bdd6){var _0x2ad64f={'raw':!![],'where':{'id':_0x184ddf[_0xb196('0x43')]['id']}},_0x3171c1={};_0x3171c1[_0xb196('0x32')]=_[_0xb196('0x44')](db['Disposition'][_0xb196('0x2e')]);_0x3171c1['query']=_[_0xb196('0x44')](_0x184ddf[_0xb196('0x33')]);_0x3171c1[_0xb196('0x34')]=_[_0xb196('0x35')](_0x3171c1[_0xb196('0x32')],_0x3171c1['query']);_0x2ad64f[_0xb196('0x36')]=_['intersection'](_0x3171c1['model'],qs[_0xb196('0x37')](_0x184ddf[_0xb196('0x33')][_0xb196('0x37')]));_0x2ad64f[_0xb196('0x36')]=_0x2ad64f[_0xb196('0x36')][_0xb196('0x45')]?_0x2ad64f[_0xb196('0x36')]:_0x3171c1[_0xb196('0x32')];if(_0x184ddf['query'][_0xb196('0x46')]){_0x2ad64f[_0xb196('0x47')]=[{'all':!![]}];}_0x2ad64f=_['merge']({},_0x2ad64f,_0x184ddf[_0xb196('0x48')]);return db[_0xb196('0x2d')][_0xb196('0x49')](_0x2ad64f)['then'](handleEntityNotFound(_0x38bdd6,null))[_0xb196('0x26')](respondWithResult(_0x38bdd6,null))[_0xb196('0x42')](handleError(_0x38bdd6,null));};exports[_0xb196('0x4a')]=function(_0x5f2be5,_0x56d4a8){return db[_0xb196('0x2d')][_0xb196('0x4a')](_0x5f2be5[_0xb196('0x4b')],{})[_0xb196('0x26')](function(_0x1d8e7e){var _0x879b53=_0x5f2be5[_0xb196('0x4c')][_0xb196('0x22')]({'plain':!![]});if(!_0x879b53)throw new Error(_0xb196('0x4d'));if(_0x879b53[_0xb196('0x4e')]===_0xb196('0x4c')){var _0x37bf20=_0x1d8e7e[_0xb196('0x22')]({'plain':!![]});var _0xebfec=_0xb196('0x23');return db[_0xb196('0x4f')]['find']({'where':{'name':_0xebfec,'userProfileId':_0x879b53[_0xb196('0x50')]},'raw':!![]})[_0xb196('0x26')](function(_0x34144f){if(_0x34144f&&_0x34144f[_0xb196('0x51')]===0x0){return db[_0xb196('0x24')][_0xb196('0x4a')]({'name':_0x37bf20[_0xb196('0x29')],'resourceId':_0x37bf20['id'],'type':_0x34144f[_0xb196('0x29')],'sectionId':_0x34144f['id']},{})[_0xb196('0x26')](function(){return _0x1d8e7e;});}else{return _0x1d8e7e;}})['catch'](function(_0x1515ea){logger[_0xb196('0x27')](_0xb196('0x52'),_0x1515ea);throw _0x1515ea;});}return _0x1d8e7e;})[_0xb196('0x26')](respondWithResult(_0x56d4a8,0xc9))[_0xb196('0x42')](handleError(_0x56d4a8,null));};exports[_0xb196('0x53')]=function(_0x1b5e0f,_0x14ca9a){if(_0x1b5e0f[_0xb196('0x4b')]['id']){delete _0x1b5e0f[_0xb196('0x4b')]['id'];}return db['Disposition'][_0xb196('0x49')]({'where':{'id':_0x1b5e0f['params']['id']}})[_0xb196('0x26')](handleEntityNotFound(_0x14ca9a,null))[_0xb196('0x26')](saveUpdates(_0x1b5e0f[_0xb196('0x4b')],null))[_0xb196('0x26')](respondWithResult(_0x14ca9a,null))[_0xb196('0x42')](handleError(_0x14ca9a,null));};exports[_0xb196('0x25')]=function(_0x543296,_0x5ecbb9){return db[_0xb196('0x2d')]['find']({'where':{'id':_0x543296[_0xb196('0x43')]['id']}})[_0xb196('0x26')](handleEntityNotFound(_0x5ecbb9,null))[_0xb196('0x26')](removeEntity(_0x5ecbb9,null))[_0xb196('0x42')](handleError(_0x5ecbb9,null));};
\ No newline at end of file
+var _0x7553=['nolimit','sort','where','pick','merge','VIRTUAL','filter','options','includeAll','rows','catch','show','params','keys','include','find','create','body','role','user','Dispositions','UserProfileSection','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','fs-extra','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','get','UserProfileResource','sendStatus','stack','name','send','map','Disposition','rawAttributes','fieldName','type','key','query','filters','intersection','model','attributes','fields','length','hasOwnProperty'];(function(_0x448f8,_0x2aa1d7){var _0xa73126=function(_0x1fcafa){while(--_0x1fcafa){_0x448f8['push'](_0x448f8['shift']());}};_0xa73126(++_0x2aa1d7);}(_0x7553,0x1c3));var _0x3755=function(_0x2b3b3a,_0x3226e0){_0x2b3b3a=_0x2b3b3a-0x0;var _0x4b1b2c=_0x7553[_0x2b3b3a];return _0x4b1b2c;};'use strict';var emlformat=require(_0x3755('0x0'));var rimraf=require(_0x3755('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x3755('0x2'));var rp=require(_0x3755('0x3'));var moment=require(_0x3755('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x3755('0x5'));var util=require(_0x3755('0x6'));var path=require(_0x3755('0x7'));var sox=require(_0x3755('0x8'));var csv=require(_0x3755('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x3755('0xa'));var _=require('lodash');var squel=require('squel');var crypto=require(_0x3755('0xb'));var jsforce=require(_0x3755('0xc'));var deskjs=require(_0x3755('0xd'));var toCsv=require(_0x3755('0x9'));var querystring=require(_0x3755('0xe'));var Papa=require(_0x3755('0xf'));var Redis=require('ioredis');var authService=require(_0x3755('0x10'));var qs=require(_0x3755('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x3755('0x12'))(_0x3755('0x13'));var utils=require(_0x3755('0x14'));var config=require(_0x3755('0x15'));var licenseUtil=require(_0x3755('0x16'));var db=require(_0x3755('0x17'))['db'];function respondWithStatusCode(_0x2e0005,_0x3e69ff){_0x3e69ff=_0x3e69ff||0xcc;return function(_0x39cde9){if(_0x39cde9){return _0x2e0005['sendStatus'](_0x3e69ff);}return _0x2e0005[_0x3755('0x18')](_0x3e69ff)[_0x3755('0x19')]();};}function respondWithResult(_0x126684,_0xd297e4){_0xd297e4=_0xd297e4||0xc8;return function(_0xa40ac6){if(_0xa40ac6){return _0x126684[_0x3755('0x18')](_0xd297e4)[_0x3755('0x1a')](_0xa40ac6);}};}function respondWithFilteredResult(_0x5d5434,_0x22d117){return function(_0x3af2c8){if(_0x3af2c8){var _0x345d42=typeof _0x22d117[_0x3755('0x1b')]===_0x3755('0x1c')&&typeof _0x22d117[_0x3755('0x1d')]===_0x3755('0x1c');var _0x59f87c=_0x3af2c8[_0x3755('0x1e')];var _0x515d23=_0x345d42?0x0:_0x22d117[_0x3755('0x1b')];var _0x2fa887=_0x345d42?_0x3af2c8[_0x3755('0x1e')]:_0x22d117[_0x3755('0x1b')]+_0x22d117[_0x3755('0x1d')];var _0x27a01b;if(_0x2fa887>=_0x59f87c){_0x2fa887=_0x59f87c;_0x27a01b=0xc8;}else{_0x27a01b=0xce;}_0x5d5434[_0x3755('0x18')](_0x27a01b);return _0x5d5434[_0x3755('0x1f')](_0x3755('0x20'),_0x515d23+'-'+_0x2fa887+'/'+_0x59f87c)['json'](_0x3af2c8);}return null;};}function patchUpdates(_0x4cfcc0){return function(_0x303083){try{jsonpatch[_0x3755('0x21')](_0x303083,_0x4cfcc0,!![]);}catch(_0x5d1dbf){return BPromise[_0x3755('0x22')](_0x5d1dbf);}return _0x303083[_0x3755('0x23')]();};}function saveUpdates(_0x122f6f,_0x579bb7){return function(_0x200447){if(_0x200447){return _0x200447[_0x3755('0x24')](_0x122f6f)[_0x3755('0x25')](function(_0x7f247c){return _0x7f247c;});}return null;};}function removeEntity(_0x37f6cc,_0x1f9422){return function(_0xd9d87c){if(_0xd9d87c){return _0xd9d87c[_0x3755('0x26')]()[_0x3755('0x25')](function(){var _0x1d7b64=_0xd9d87c[_0x3755('0x27')]({'plain':!![]});var _0x4db043='Dispositions';return db[_0x3755('0x28')]['destroy']({'where':{'type':_0x4db043,'resourceId':_0x1d7b64['id']}})[_0x3755('0x25')](function(){return _0xd9d87c;});})[_0x3755('0x25')](function(){_0x37f6cc['status'](0xcc)[_0x3755('0x19')]();});}};}function handleEntityNotFound(_0x579236,_0x269dea){return function(_0xcd003c){if(!_0xcd003c){_0x579236[_0x3755('0x29')](0x194);}return _0xcd003c;};}function handleError(_0x4dd8a5,_0x55b284){_0x55b284=_0x55b284||0x1f4;return function(_0x2bd847){logger['error'](_0x2bd847[_0x3755('0x2a')]);if(_0x2bd847['name']){delete _0x2bd847[_0x3755('0x2b')];}_0x4dd8a5[_0x3755('0x18')](_0x55b284)[_0x3755('0x2c')](_0x2bd847);};}exports['index']=function(_0x274f3e,_0x6fa9c7){var _0x19695c={},_0x167252={},_0x1be5de={'count':0x0,'rows':[]};var _0x5577fb=_[_0x3755('0x2d')](db[_0x3755('0x2e')][_0x3755('0x2f')],function(_0x3e25c1){return{'name':_0x3e25c1[_0x3755('0x30')],'type':_0x3e25c1[_0x3755('0x31')][_0x3755('0x32')]};});_0x167252['model']=_[_0x3755('0x2d')](_0x5577fb,_0x3755('0x2b'));_0x167252[_0x3755('0x33')]=_['keys'](_0x274f3e['query']);_0x167252[_0x3755('0x34')]=_[_0x3755('0x35')](_0x167252[_0x3755('0x36')],_0x167252['query']);_0x19695c[_0x3755('0x37')]=_[_0x3755('0x35')](_0x167252['model'],qs[_0x3755('0x38')](_0x274f3e[_0x3755('0x33')]['fields']));_0x19695c['attributes']=_0x19695c[_0x3755('0x37')][_0x3755('0x39')]?_0x19695c['attributes']:_0x167252['model'];if(!_0x274f3e[_0x3755('0x33')][_0x3755('0x3a')](_0x3755('0x3b'))){_0x19695c[_0x3755('0x1d')]=qs[_0x3755('0x1d')](_0x274f3e[_0x3755('0x33')][_0x3755('0x1d')]);_0x19695c['offset']=qs[_0x3755('0x1b')](_0x274f3e['query'][_0x3755('0x1b')]);}_0x19695c['order']=qs[_0x3755('0x3c')](_0x274f3e[_0x3755('0x33')][_0x3755('0x3c')]);_0x19695c[_0x3755('0x3d')]=qs[_0x3755('0x34')](_[_0x3755('0x3e')](_0x274f3e['query'],_0x167252[_0x3755('0x34')]),_0x5577fb);if(_0x274f3e[_0x3755('0x33')]['filter']){_0x19695c[_0x3755('0x3d')]=_[_0x3755('0x3f')](_0x19695c['where'],{'$or':_[_0x3755('0x2d')](_0x5577fb,function(_0x34f243){if(_0x34f243[_0x3755('0x31')]!==_0x3755('0x40')){var _0x1df617={};_0x1df617[_0x34f243[_0x3755('0x2b')]]={'$like':'%'+_0x274f3e[_0x3755('0x33')][_0x3755('0x41')]+'%'};return _0x1df617;}})});}_0x19695c=_[_0x3755('0x3f')]({},_0x19695c,_0x274f3e[_0x3755('0x42')]);var _0x266aae={'where':_0x19695c[_0x3755('0x3d')]};return db['Disposition'][_0x3755('0x1e')](_0x266aae)[_0x3755('0x25')](function(_0x274de2){_0x1be5de[_0x3755('0x1e')]=_0x274de2;if(_0x274f3e['query'][_0x3755('0x43')]){_0x19695c['include']=[{'all':!![]}];}return db[_0x3755('0x2e')]['findAll'](_0x19695c);})[_0x3755('0x25')](function(_0x1a9eec){_0x1be5de[_0x3755('0x44')]=_0x1a9eec;return _0x1be5de;})[_0x3755('0x25')](respondWithFilteredResult(_0x6fa9c7,_0x19695c))[_0x3755('0x45')](handleError(_0x6fa9c7,null));};exports[_0x3755('0x46')]=function(_0x4a6f05,_0x3028ad){var _0x3585b3={'raw':!![],'where':{'id':_0x4a6f05[_0x3755('0x47')]['id']}},_0x25e294={};_0x25e294[_0x3755('0x36')]=_['keys'](db['Disposition'][_0x3755('0x2f')]);_0x25e294[_0x3755('0x33')]=_[_0x3755('0x48')](_0x4a6f05['query']);_0x25e294[_0x3755('0x34')]=_[_0x3755('0x35')](_0x25e294[_0x3755('0x36')],_0x25e294[_0x3755('0x33')]);_0x3585b3['attributes']=_[_0x3755('0x35')](_0x25e294[_0x3755('0x36')],qs['fields'](_0x4a6f05[_0x3755('0x33')][_0x3755('0x38')]));_0x3585b3['attributes']=_0x3585b3[_0x3755('0x37')]['length']?_0x3585b3[_0x3755('0x37')]:_0x25e294[_0x3755('0x36')];if(_0x4a6f05[_0x3755('0x33')]['includeAll']){_0x3585b3[_0x3755('0x49')]=[{'all':!![]}];}_0x3585b3=_['merge']({},_0x3585b3,_0x4a6f05[_0x3755('0x42')]);return db[_0x3755('0x2e')][_0x3755('0x4a')](_0x3585b3)[_0x3755('0x25')](handleEntityNotFound(_0x3028ad,null))[_0x3755('0x25')](respondWithResult(_0x3028ad,null))['catch'](handleError(_0x3028ad,null));};exports[_0x3755('0x4b')]=function(_0x5ebee4,_0x4f4378){return db['Disposition'][_0x3755('0x4b')](_0x5ebee4[_0x3755('0x4c')],{})['then'](function(_0x19bf46){var _0x509788=_0x5ebee4['user'][_0x3755('0x27')]({'plain':!![]});if(!_0x509788)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x509788[_0x3755('0x4d')]===_0x3755('0x4e')){var _0x19edc0=_0x19bf46[_0x3755('0x27')]({'plain':!![]});var _0x53ee84=_0x3755('0x4f');return db[_0x3755('0x50')]['find']({'where':{'name':_0x53ee84,'userProfileId':_0x509788[_0x3755('0x51')]},'raw':!![]})['then'](function(_0x20934e){if(_0x20934e&&_0x20934e[_0x3755('0x52')]===0x0){return db[_0x3755('0x28')][_0x3755('0x4b')]({'name':_0x19edc0[_0x3755('0x2b')],'resourceId':_0x19edc0['id'],'type':_0x20934e[_0x3755('0x2b')],'sectionId':_0x20934e['id']},{})[_0x3755('0x25')](function(){return _0x19bf46;});}else{return _0x19bf46;}})[_0x3755('0x45')](function(_0x8ef676){logger[_0x3755('0x53')](_0x3755('0x54'),_0x8ef676);throw _0x8ef676;});}return _0x19bf46;})[_0x3755('0x25')](respondWithResult(_0x4f4378,0xc9))[_0x3755('0x45')](handleError(_0x4f4378,null));};exports['update']=function(_0x1db651,_0x216c76){if(_0x1db651[_0x3755('0x4c')]['id']){delete _0x1db651[_0x3755('0x4c')]['id'];}return db[_0x3755('0x2e')]['find']({'where':{'id':_0x1db651[_0x3755('0x47')]['id']}})[_0x3755('0x25')](handleEntityNotFound(_0x216c76,null))['then'](saveUpdates(_0x1db651[_0x3755('0x4c')],null))[_0x3755('0x25')](respondWithResult(_0x216c76,null))['catch'](handleError(_0x216c76,null));};exports[_0x3755('0x26')]=function(_0x37ecd6,_0x259d91){return db[_0x3755('0x2e')][_0x3755('0x4a')]({'where':{'id':_0x37ecd6[_0x3755('0x47')]['id']}})[_0x3755('0x25')](handleEntityNotFound(_0x259d91,null))[_0x3755('0x25')](removeEntity(_0x259d91,null))[_0x3755('0x45')](handleError(_0x259d91,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4e5a=['bluebird','request-promise','path','../../config/environment','./disposition.attributes','exports','define','Disposition','tools_dispositions','name_voice','name_chat','name','ChatWebsiteId','MailAccountId','name_sms','SmsAccountId','name_fax','name_openchannel','OpenchannelAccountId','name_whatsapp','WhatsappAccountId','util','../../config/logger'];(function(_0x47a7d0,_0x4e182d){var _0xb9bd08=function(_0x588ee2){while(--_0x588ee2){_0x47a7d0['push'](_0x47a7d0['shift']());}};_0xb9bd08(++_0x4e182d);}(_0x4e5a,0xcd));var _0xa4e5=function(_0x44b91c,_0x483ee5){_0x44b91c=_0x44b91c-0x0;var _0x2a3356=_0x4e5a[_0x44b91c];return _0x2a3356;};'use strict';var _=require('lodash');var util=require(_0xa4e5('0x0'));var logger=require(_0xa4e5('0x1'))('api');var moment=require('moment');var BPromise=require(_0xa4e5('0x2'));var rp=require(_0xa4e5('0x3'));var fs=require('fs');var path=require(_0xa4e5('0x4'));var rimraf=require('rimraf');var config=require(_0xa4e5('0x5'));var attributes=require(_0xa4e5('0x6'));module[_0xa4e5('0x7')]=function(_0x48b419,_0x17afd0){return _0x48b419[_0xa4e5('0x8')](_0xa4e5('0x9'),attributes,{'tableName':_0xa4e5('0xa'),'paranoid':![],'indexes':[{'unique':!![],'name':_0xa4e5('0xb'),'fields':['name','ListId']},{'unique':!![],'name':_0xa4e5('0xc'),'fields':[_0xa4e5('0xd'),_0xa4e5('0xe')]},{'unique':!![],'name':'name_mail','fields':[_0xa4e5('0xd'),_0xa4e5('0xf')]},{'unique':!![],'name':_0xa4e5('0x10'),'fields':[_0xa4e5('0xd'),_0xa4e5('0x11')]},{'unique':!![],'name':_0xa4e5('0x12'),'fields':['name','FaxAccountId']},{'unique':!![],'name':_0xa4e5('0x13'),'fields':[_0xa4e5('0xd'),_0xa4e5('0x14')]},{'unique':!![],'name':_0xa4e5('0x15'),'fields':['name',_0xa4e5('0x16')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x15d3=['util','api','bluebird','request-promise','../../config/environment','./disposition.attributes','exports','define','Disposition','name_voice','name','ListId','name_chat','ChatWebsiteId','name_mail','MailAccountId','name_sms','SmsAccountId','name_fax','name_whatsapp','WhatsappAccountId','lodash'];(function(_0x3f03ca,_0x32ebfd){var _0x1cf6e3=function(_0x45b702){while(--_0x45b702){_0x3f03ca['push'](_0x3f03ca['shift']());}};_0x1cf6e3(++_0x32ebfd);}(_0x15d3,0x1e3));var _0x315d=function(_0x5dff5b,_0x4615bf){_0x5dff5b=_0x5dff5b-0x0;var _0x5939af=_0x15d3[_0x5dff5b];return _0x5939af;};'use strict';var _=require(_0x315d('0x0'));var util=require(_0x315d('0x1'));var logger=require('../../config/logger')(_0x315d('0x2'));var moment=require('moment');var BPromise=require(_0x315d('0x3'));var rp=require(_0x315d('0x4'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0x315d('0x5'));var attributes=require(_0x315d('0x6'));module[_0x315d('0x7')]=function(_0x47855c,_0x5807a1){return _0x47855c[_0x315d('0x8')](_0x315d('0x9'),attributes,{'tableName':'tools_dispositions','paranoid':![],'indexes':[{'unique':!![],'name':_0x315d('0xa'),'fields':[_0x315d('0xb'),_0x315d('0xc')]},{'unique':!![],'name':_0x315d('0xd'),'fields':[_0x315d('0xb'),_0x315d('0xe')]},{'unique':!![],'name':_0x315d('0xf'),'fields':[_0x315d('0xb'),_0x315d('0x10')]},{'unique':!![],'name':_0x315d('0x11'),'fields':['name',_0x315d('0x12')]},{'unique':!![],'name':_0x315d('0x13'),'fields':[_0x315d('0xb'),'FaxAccountId']},{'unique':!![],'name':'name_openchannel','fields':[_0x315d('0xb'),'OpenchannelAccountId']},{'unique':!![],'name':_0x315d('0x14'),'fields':[_0x315d('0xb'),_0x315d('0x15')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['http','info','Disposition,\x20%s,\x20%s','request\x20sent','debug','Disposition,\x20%s,\x20%s,\x20%s','code','error','message','result','catch','lodash','util','moment','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise'];(function(_0x19cd87,_0x1afe04){var _0x1ddb64=function(_0x17fba2){while(--_0x17fba2){_0x19cd87['push'](_0x19cd87['shift']());}};_0x1ddb64(++_0x1afe04);}(_0xa9e0,0x123));var _0x0a9e=function(_0x491a7f,_0x28bb80){_0x491a7f=_0x491a7f-0x0;var _0x3d8f44=_0xa9e0[_0x491a7f];return _0x3d8f44;};'use strict';var _=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var moment=require(_0x0a9e('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x0a9e('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x0a9e('0x4'));var logger=require(_0x0a9e('0x5'))(_0x0a9e('0x6'));var config=require(_0x0a9e('0x7'));var jayson=require(_0x0a9e('0x8'));var client=jayson['client'][_0x0a9e('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x441e3a,_0x2cc193,_0x5f41ea){return new BPromise(function(_0x503809,_0xe42b77){return client['request'](_0x441e3a,_0x5f41ea)['then'](function(_0x39753a){logger[_0x0a9e('0xa')](_0x0a9e('0xb'),_0x2cc193,_0x0a9e('0xc'));logger[_0x0a9e('0xd')](_0x0a9e('0xe'),_0x2cc193,'request\x20sent',JSON['stringify'](_0x39753a));if(_0x39753a['error']){if(_0x39753a['error'][_0x0a9e('0xf')]===0x1f4){logger[_0x0a9e('0x10')](_0x0a9e('0xb'),_0x2cc193,_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);return _0xe42b77(_0x39753a[_0x0a9e('0x10')]['message']);}logger[_0x0a9e('0x10')](_0x0a9e('0xb'),_0x2cc193,_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);return _0x503809(_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);}else{logger['info'](_0x0a9e('0xb'),_0x2cc193,'request\x20sent');_0x503809(_0x39753a[_0x0a9e('0x12')]['message']);}})[_0x0a9e('0x13')](function(_0x12066b){logger['error'](_0x0a9e('0xb'),_0x2cc193,_0x12066b);_0xe42b77(_0x12066b);});});}
\ No newline at end of file
+var _0xa9e0=['http','info','Disposition,\x20%s,\x20%s','request\x20sent','debug','Disposition,\x20%s,\x20%s,\x20%s','code','error','message','result','catch','lodash','util','moment','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise'];(function(_0x5a3d43,_0x2b1974){var _0x19f08d=function(_0x9026d4){while(--_0x9026d4){_0x5a3d43['push'](_0x5a3d43['shift']());}};_0x19f08d(++_0x2b1974);}(_0xa9e0,0x123));var _0x0a9e=function(_0x1c546c,_0x5c57cb){_0x1c546c=_0x1c546c-0x0;var _0x2cc384=_0xa9e0[_0x1c546c];return _0x2cc384;};'use strict';var _=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var moment=require(_0x0a9e('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x0a9e('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x0a9e('0x4'));var logger=require(_0x0a9e('0x5'))(_0x0a9e('0x6'));var config=require(_0x0a9e('0x7'));var jayson=require(_0x0a9e('0x8'));var client=jayson['client'][_0x0a9e('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x441e3a,_0x2cc193,_0x5f41ea){return new BPromise(function(_0x503809,_0xe42b77){return client['request'](_0x441e3a,_0x5f41ea)['then'](function(_0x39753a){logger[_0x0a9e('0xa')](_0x0a9e('0xb'),_0x2cc193,_0x0a9e('0xc'));logger[_0x0a9e('0xd')](_0x0a9e('0xe'),_0x2cc193,'request\x20sent',JSON['stringify'](_0x39753a));if(_0x39753a['error']){if(_0x39753a['error'][_0x0a9e('0xf')]===0x1f4){logger[_0x0a9e('0x10')](_0x0a9e('0xb'),_0x2cc193,_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);return _0xe42b77(_0x39753a[_0x0a9e('0x10')]['message']);}logger[_0x0a9e('0x10')](_0x0a9e('0xb'),_0x2cc193,_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);return _0x503809(_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);}else{logger['info'](_0x0a9e('0xb'),_0x2cc193,'request\x20sent');_0x503809(_0x39753a[_0x0a9e('0x12')]['message']);}})[_0x0a9e('0x13')](function(_0x12066b){logger['error'](_0x0a9e('0xb'),_0x2cc193,_0x12066b);_0xe42b77(_0x12066b);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x88a1=['update','delete','exports','multer','util','path','connect-timeout','express','fs-extra','../../components/interaction/service','./disposition.controller','get','/:id','isAuthenticated','show','post','create','put'];(function(_0x1e5755,_0x5e0d48){var _0x38975b=function(_0x1ec4a2){while(--_0x1ec4a2){_0x1e5755['push'](_0x1e5755['shift']());}};_0x38975b(++_0x5e0d48);}(_0x88a1,0x159));var _0x188a=function(_0x356e8d,_0x24c719){_0x356e8d=_0x356e8d-0x0;var _0x39e65a=_0x88a1[_0x356e8d];return _0x39e65a;};'use strict';var multer=require(_0x188a('0x0'));var util=require(_0x188a('0x1'));var path=require(_0x188a('0x2'));var timeout=require(_0x188a('0x3'));var express=require(_0x188a('0x4'));var router=express['Router']();var fs_extra=require(_0x188a('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x188a('0x6'));var config=require('../../config/environment');var controller=require(_0x188a('0x7'));router[_0x188a('0x8')]('/',auth['isAuthenticated'](),controller['index']);router[_0x188a('0x8')](_0x188a('0x9'),auth[_0x188a('0xa')](),controller[_0x188a('0xb')]);router[_0x188a('0xc')]('/',auth[_0x188a('0xa')](),controller[_0x188a('0xd')]);router[_0x188a('0xe')](_0x188a('0x9'),auth[_0x188a('0xa')](),controller[_0x188a('0xf')]);router[_0x188a('0x10')](_0x188a('0x9'),auth[_0x188a('0xa')](),controller['destroy']);module[_0x188a('0x11')]=router;
\ No newline at end of file
+var _0xc2a1=['Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./disposition.controller','get','isAuthenticated','show','post','create','put','/:id','update','delete','destroy','exports','multer','path','connect-timeout','express'];(function(_0x2dae92,_0x41cb9e){var _0x4c3c07=function(_0x3b6f6d){while(--_0x3b6f6d){_0x2dae92['push'](_0x2dae92['shift']());}};_0x4c3c07(++_0x41cb9e);}(_0xc2a1,0x65));var _0x1c2a=function(_0x43379c,_0x271d36){_0x43379c=_0x43379c-0x0;var _0x495648=_0xc2a1[_0x43379c];return _0x495648;};'use strict';var multer=require(_0x1c2a('0x0'));var util=require('util');var path=require(_0x1c2a('0x1'));var timeout=require(_0x1c2a('0x2'));var express=require(_0x1c2a('0x3'));var router=express[_0x1c2a('0x4')]();var fs_extra=require(_0x1c2a('0x5'));var auth=require(_0x1c2a('0x6'));var interaction=require(_0x1c2a('0x7'));var config=require(_0x1c2a('0x8'));var controller=require(_0x1c2a('0x9'));router[_0x1c2a('0xa')]('/',auth[_0x1c2a('0xb')](),controller['index']);router[_0x1c2a('0xa')]('/:id',auth[_0x1c2a('0xb')](),controller[_0x1c2a('0xc')]);router[_0x1c2a('0xd')]('/',auth['isAuthenticated'](),controller[_0x1c2a('0xe')]);router[_0x1c2a('0xf')](_0x1c2a('0x10'),auth[_0x1c2a('0xb')](),controller[_0x1c2a('0x11')]);router[_0x1c2a('0x12')](_0x1c2a('0x10'),auth[_0x1c2a('0xb')](),controller[_0x1c2a('0x13')]);module[_0x1c2a('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9559=['TEXT','Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}','BOOLEAN','Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled','setDataValue','sequelize','STRING','ENUM','yes','xCALLY\x20Motion\x20Fax','localstationid','2400','4800','9600','14400','12000','v17,v27,v29','INTEGER','SIP','IAX','KHOMP'];(function(_0x19d117,_0x23c786){var _0x4b4933=function(_0x1f289c){while(--_0x1f289c){_0x19d117['push'](_0x19d117['shift']());}};_0x4b4933(++_0x23c786);}(_0x9559,0x12b));var _0x9955=function(_0x2a8c21,_0x163576){_0x2a8c21=_0x2a8c21-0x0;var _0x5f3061=_0x9559[_0x2a8c21];return _0x5f3061;};'use strict';var Sequelize=require(_0x9955('0x0'));module['exports']={'name':{'type':Sequelize[_0x9955('0x1')],'allowNull':![],'validate':{'notEmpty':!![]}},'description':{'type':Sequelize['STRING']},'ecm':{'type':Sequelize[_0x9955('0x2')](_0x9955('0x3'),'no'),'defaultValue':'yes'},'headerinfo':{'type':Sequelize[_0x9955('0x1')],'defaultValue':_0x9955('0x4')},'localstationid':{'type':Sequelize['STRING'],'unique':_0x9955('0x5')},'minrate':{'type':Sequelize['ENUM'](_0x9955('0x6'),_0x9955('0x7'),'7200',_0x9955('0x8'),'12000',_0x9955('0x9')),'defaultValue':_0x9955('0x7')},'maxrate':{'type':Sequelize[_0x9955('0x2')](_0x9955('0x6'),_0x9955('0x7'),'7200','9600',_0x9955('0xa'),_0x9955('0x9')),'defaultValue':'14400'},'modem':{'type':Sequelize['STRING'],'defaultValue':_0x9955('0xb')},'gateway':{'type':Sequelize[_0x9955('0x1')],'defaultValue':'no','validate':{'is':/^(?:yes|no|[0-9]+)$/}},'faxdetect':{'type':Sequelize[_0x9955('0x1')],'defaultValue':'no','validate':{'is':/^(?:yes|no|t38|cng|[0-9]+)$/}},'t38timeout':{'type':Sequelize[_0x9955('0xc')],'defaultValue':0x1388,'validate':{'min':0x3e8}},'tech':{'type':Sequelize[_0x9955('0x2')](_0x9955('0xd'),_0x9955('0xe'),'DADHI',_0x9955('0xf')),'defaultValue':_0x9955('0xd')},'key':{'type':Sequelize['STRING'],'allowNull':![]},'notificationTemplate':{'type':Sequelize[_0x9955('0x10')],'defaultValue':function(){return _0x9955('0x11');}},'notificationSound':{'type':Sequelize[_0x9955('0x12')],'defaultValue':!![]},'notificationShake':{'type':Sequelize[_0x9955('0x12')],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize[_0x9955('0xc')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'queueTransfer':{'type':Sequelize[_0x9955('0x12')],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize[_0x9955('0xc')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0x9955('0x12')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'mandatoryDispositionPauseId':{'type':Sequelize[_0x9955('0xc')],'allowNull':!![],'defaultValue':null,'comment':_0x9955('0x13')},'mandatoryDisposition':{'type':Sequelize[_0x9955('0x12')],'defaultValue':![],'comment':'Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','set':function(_0x3190b1){if(!_0x3190b1)this['setDataValue']('mandatoryDispositionPauseId',null);this[_0x9955('0x14')]('mandatoryDisposition',_0x3190b1);}}};
\ No newline at end of file
+var _0xdd6a=['14400','v17,v27,v29','INTEGER','SIP','IAX','DADHI','KHOMP','TEXT','Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}','BOOLEAN','Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','setDataValue','mandatoryDispositionPauseId','mandatoryDisposition','sequelize','exports','STRING','ENUM','yes','localstationid','2400','4800','7200','12000'];(function(_0x27af45,_0x1b57aa){var _0x18df21=function(_0x4b7679){while(--_0x4b7679){_0x27af45['push'](_0x27af45['shift']());}};_0x18df21(++_0x1b57aa);}(_0xdd6a,0x1d1));var _0xadd6=function(_0x24124d,_0x26ae83){_0x24124d=_0x24124d-0x0;var _0x56df41=_0xdd6a[_0x24124d];return _0x56df41;};'use strict';var Sequelize=require(_0xadd6('0x0'));module[_0xadd6('0x1')]={'name':{'type':Sequelize[_0xadd6('0x2')],'allowNull':![],'validate':{'notEmpty':!![]}},'description':{'type':Sequelize['STRING']},'ecm':{'type':Sequelize[_0xadd6('0x3')]('yes','no'),'defaultValue':_0xadd6('0x4')},'headerinfo':{'type':Sequelize['STRING'],'defaultValue':'xCALLY\x20Motion\x20Fax'},'localstationid':{'type':Sequelize[_0xadd6('0x2')],'unique':_0xadd6('0x5')},'minrate':{'type':Sequelize[_0xadd6('0x3')](_0xadd6('0x6'),_0xadd6('0x7'),_0xadd6('0x8'),'9600',_0xadd6('0x9'),'14400'),'defaultValue':_0xadd6('0x7')},'maxrate':{'type':Sequelize[_0xadd6('0x3')]('2400',_0xadd6('0x7'),_0xadd6('0x8'),'9600',_0xadd6('0x9'),'14400'),'defaultValue':_0xadd6('0xa')},'modem':{'type':Sequelize[_0xadd6('0x2')],'defaultValue':_0xadd6('0xb')},'gateway':{'type':Sequelize['STRING'],'defaultValue':'no','validate':{'is':/^(?:yes|no|[0-9]+)$/}},'faxdetect':{'type':Sequelize[_0xadd6('0x2')],'defaultValue':'no','validate':{'is':/^(?:yes|no|t38|cng|[0-9]+)$/}},'t38timeout':{'type':Sequelize[_0xadd6('0xc')],'defaultValue':0x1388,'validate':{'min':0x3e8}},'tech':{'type':Sequelize[_0xadd6('0x3')](_0xadd6('0xd'),_0xadd6('0xe'),_0xadd6('0xf'),_0xadd6('0x10')),'defaultValue':_0xadd6('0xd')},'key':{'type':Sequelize[_0xadd6('0x2')],'allowNull':![]},'notificationTemplate':{'type':Sequelize[_0xadd6('0x11')],'defaultValue':function(){return _0xadd6('0x12');}},'notificationSound':{'type':Sequelize[_0xadd6('0x13')],'defaultValue':!![]},'notificationShake':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize[_0xadd6('0xc')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'queueTransfer':{'type':Sequelize[_0xadd6('0x13')],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize[_0xadd6('0xc')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0xadd6('0x13')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'mandatoryDispositionPauseId':{'type':Sequelize[_0xadd6('0xc')],'allowNull':!![],'defaultValue':null,'comment':_0xadd6('0x14')},'mandatoryDisposition':{'type':Sequelize[_0xadd6('0x13')],'defaultValue':![],'comment':_0xadd6('0x15'),'set':function(_0x522bb5){if(!_0x522bb5)this[_0xadd6('0x16')](_0xadd6('0x17'),null);this[_0xadd6('0x16')](_0xadd6('0x18'),_0x522bb5);}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc928=['DESC','attachments','join','root','server/files/attachments','basename','CheckAfterSend','isNil','from','\x22%s\x22\x20<%s>','Contacts','List\x20not\x20found','out','Messages','Contact\x20not\x20found','spread','dataValues','SendFax','addAgents','userFaxAccount:save','isArray','emit','userFaxAccount:remove','getAgents','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','util','path','sox','ejs','fs-extra','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/license/util','redis','defaults','localhost','socket.io-emitter','./faxAccount.socket','register','jayson/promise','client','http','request','then','request\x20sent','debug','FaxAccount,\x20%s,\x20%s,\x20%s','stringify','error','FaxAccount,\x20%s,\x20%s','message','info','result','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','destroy','get','FaxAccounts','UserProfileResource','name','send','index','Pause','map','FaxAccount','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','attributes','fields','order','pick','filter','where','VIRTUAL','merge','options','includeAll','catch','mandatoryDispositionPause','length','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','describe','addDisposition','Disposition','getDispositions','hasOwnProperty','nolimit','sort','FaxAccountId','include','rows','CannedAnswer','getAnswers','findOne','findAll','removeAnswers','ids','addInteraction','FaxInteraction','omit','getInteractions','User','Owner','fullname','internal','color','tag','addApplications','sequelize','transaction','FaxApplication','findAndCountAll','priority','getApplications','context','exten','localstationid','app','system','description','Fax\x20Extension','appdata','push','Answer','CDR(type)=inbound-fax','Set','ecm','gateway','headerinfo','minrate','modem','t38timeout','/var/opt/motion2/server/files/attachments/fax-${CALLERID(num)}-${CUT(UNIQUEID,.,1)}-${CUT(UNIQUEID,.,2)}-${STRFTIME(,,%C%y%m%d%H%M%S)}-rx.tif,d','ReceiveFax','addAccountApplications','VoiceExtension','updateAccountApplications','bulkCreate','tech','createdAt','TrunkId','ListId','findById','getMessages','FaxMessage','$gte','split','format','List','CmContact'];(function(_0x51f4fc,_0x1fe3ef){var _0x4d96fc=function(_0xddc9){while(--_0xddc9){_0x51f4fc['push'](_0x51f4fc['shift']());}};_0x4d96fc(++_0x1fe3ef);}(_0xc928,0x198));var _0x8c92=function(_0x45659d,_0x21f454){_0x45659d=_0x45659d-0x0;var _0x4a9e47=_0xc928[_0x45659d];return _0x4a9e47;};'use strict';var emlformat=require(_0x8c92('0x0'));var rimraf=require(_0x8c92('0x1'));var zipdir=require(_0x8c92('0x2'));var jsonpatch=require(_0x8c92('0x3'));var rp=require(_0x8c92('0x4'));var moment=require(_0x8c92('0x5'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x8c92('0x6'));var path=require(_0x8c92('0x7'));var sox=require(_0x8c92('0x8'));var csv=require('to-csv');var ejs=require(_0x8c92('0x9'));var fs=require('fs');var fs_extra=require(_0x8c92('0xa'));var _=require('lodash');var squel=require(_0x8c92('0xb'));var crypto=require(_0x8c92('0xc'));var jsforce=require(_0x8c92('0xd'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x8c92('0xe'));var Papa=require(_0x8c92('0xf'));var Redis=require(_0x8c92('0x10'));var authService=require(_0x8c92('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0x8c92('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x8c92('0x13'))(_0x8c92('0x14'));var utils=require(_0x8c92('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0x8c92('0x16'));var db=require('../../mysqldb')['db'];config[_0x8c92('0x17')]=_[_0x8c92('0x18')](config[_0x8c92('0x17')],{'host':_0x8c92('0x19'),'port':0x18eb});var socket=require(_0x8c92('0x1a'))(new Redis(config[_0x8c92('0x17')]));require(_0x8c92('0x1b'))[_0x8c92('0x1c')](socket);var jayson=require(_0x8c92('0x1d'));var client=jayson[_0x8c92('0x1e')][_0x8c92('0x1f')]({'port':0x232c});var client9002=jayson[_0x8c92('0x1e')][_0x8c92('0x1f')]({'port':0x232a});function respondWithRpcPromise(_0xc55bb0,_0x20ae44,_0x374dcf,_0x3efd52){return new BPromise(function(_0x506431,_0x5198c1){var _0x2daaef=_0x3efd52||client;return _0x2daaef[_0x8c92('0x20')](_0xc55bb0,_0x374dcf)[_0x8c92('0x21')](function(_0x44b7ed){logger['info']('FaxAccount,\x20%s,\x20%s',_0x20ae44,_0x8c92('0x22'));logger[_0x8c92('0x23')](_0x8c92('0x24'),_0x20ae44,_0x8c92('0x22'),JSON[_0x8c92('0x25')](_0x44b7ed));if(_0x44b7ed[_0x8c92('0x26')]){if(_0x44b7ed[_0x8c92('0x26')]['code']===0x1f4){logger[_0x8c92('0x26')](_0x8c92('0x27'),_0x20ae44,_0x44b7ed[_0x8c92('0x26')][_0x8c92('0x28')]);return _0x5198c1(_0x44b7ed[_0x8c92('0x26')]['message']);}logger[_0x8c92('0x26')]('FaxAccount,\x20%s,\x20%s',_0x20ae44,_0x44b7ed['error'][_0x8c92('0x28')]);return _0x506431(_0x44b7ed['error'][_0x8c92('0x28')]);}else{logger[_0x8c92('0x29')]('FaxAccount,\x20%s,\x20%s',_0x20ae44,_0x8c92('0x22'));_0x506431(_0x44b7ed[_0x8c92('0x2a')][_0x8c92('0x28')]);}})['catch'](function(_0xa4e0c0){logger[_0x8c92('0x26')]('FaxAccount,\x20%s,\x20%s',_0x20ae44,_0xa4e0c0);_0x5198c1(_0xa4e0c0);});});}function respondWithStatusCode(_0x4f16ef,_0x26f38f){_0x26f38f=_0x26f38f||0xcc;return function(_0xc08c8b){if(_0xc08c8b){return _0x4f16ef[_0x8c92('0x2b')](_0x26f38f);}return _0x4f16ef[_0x8c92('0x2c')](_0x26f38f)[_0x8c92('0x2d')]();};}function respondWithResult(_0xfc180d,_0x1a25b7){_0x1a25b7=_0x1a25b7||0xc8;return function(_0x4cea4c){if(_0x4cea4c){return _0xfc180d[_0x8c92('0x2c')](_0x1a25b7)[_0x8c92('0x2e')](_0x4cea4c);}};}function respondWithFilteredResult(_0x432c3e,_0x560d07){return function(_0x945b65){if(_0x945b65){var _0x3d6824=typeof _0x560d07[_0x8c92('0x2f')]===_0x8c92('0x30')&&typeof _0x560d07[_0x8c92('0x31')]==='undefined';var _0x4a4278=_0x945b65['count'];var _0x191684=_0x3d6824?0x0:_0x560d07[_0x8c92('0x2f')];var _0x5cac6f=_0x3d6824?_0x945b65[_0x8c92('0x32')]:_0x560d07[_0x8c92('0x2f')]+_0x560d07['limit'];var _0x5513bc;if(_0x5cac6f>=_0x4a4278){_0x5cac6f=_0x4a4278;_0x5513bc=0xc8;}else{_0x5513bc=0xce;}_0x432c3e[_0x8c92('0x2c')](_0x5513bc);return _0x432c3e[_0x8c92('0x33')](_0x8c92('0x34'),_0x191684+'-'+_0x5cac6f+'/'+_0x4a4278)['json'](_0x945b65);}return null;};}function patchUpdates(_0x211c29){return function(_0x4613df){try{jsonpatch[_0x8c92('0x35')](_0x4613df,_0x211c29,!![]);}catch(_0x44876d){return BPromise[_0x8c92('0x36')](_0x44876d);}return _0x4613df[_0x8c92('0x37')]();};}function saveUpdates(_0x157472,_0x5d3dea){return function(_0x2029e7){if(_0x2029e7){return _0x2029e7[_0x8c92('0x38')](_0x157472)[_0x8c92('0x21')](function(_0x1696d8){return _0x1696d8;});}return null;};}function removeEntity(_0x3e0ea0,_0x18def2){return function(_0x1a761b){if(_0x1a761b){return _0x1a761b[_0x8c92('0x39')]()['then'](function(){var _0x3f57fd=_0x1a761b[_0x8c92('0x3a')]({'plain':!![]});var _0x175234=_0x8c92('0x3b');return db[_0x8c92('0x3c')][_0x8c92('0x39')]({'where':{'type':_0x175234,'resourceId':_0x3f57fd['id']}})[_0x8c92('0x21')](function(){return _0x1a761b;});})['then'](function(){_0x3e0ea0[_0x8c92('0x2c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x1fa40b,_0x926eb7){return function(_0xf6ad94){if(!_0xf6ad94){_0x1fa40b[_0x8c92('0x2b')](0x194);}return _0xf6ad94;};}function handleError(_0x471d33,_0x4dc72c){_0x4dc72c=_0x4dc72c||0x1f4;return function(_0xc30782){logger[_0x8c92('0x26')](_0xc30782['stack']);if(_0xc30782[_0x8c92('0x3d')]){delete _0xc30782['name'];}_0x471d33[_0x8c92('0x2c')](_0x4dc72c)[_0x8c92('0x3e')](_0xc30782);};}exports[_0x8c92('0x3f')]=function(_0x45b1eb,_0x398c18){var _0x1bc77e={'include':[{'model':db[_0x8c92('0x40')],'as':'mandatoryDispositionPause'}]},_0x20b7ab={},_0x46c264={'count':0x0,'rows':[]};var _0x3738ec=_[_0x8c92('0x41')](db[_0x8c92('0x42')][_0x8c92('0x43')],function(_0x5333b6){return{'name':_0x5333b6[_0x8c92('0x44')],'type':_0x5333b6[_0x8c92('0x45')][_0x8c92('0x46')]};});_0x20b7ab[_0x8c92('0x47')]=_['map'](_0x3738ec,'name');_0x20b7ab['query']=_[_0x8c92('0x48')](_0x45b1eb[_0x8c92('0x49')]);_0x20b7ab[_0x8c92('0x4a')]=_[_0x8c92('0x4b')](_0x20b7ab['model'],_0x20b7ab['query']);_0x1bc77e[_0x8c92('0x4c')]=_[_0x8c92('0x4b')](_0x20b7ab['model'],qs[_0x8c92('0x4d')](_0x45b1eb[_0x8c92('0x49')][_0x8c92('0x4d')]));_0x1bc77e[_0x8c92('0x4c')]=_0x1bc77e[_0x8c92('0x4c')]['length']?_0x1bc77e['attributes']:_0x20b7ab[_0x8c92('0x47')];if(!_0x45b1eb[_0x8c92('0x49')]['hasOwnProperty']('nolimit')){_0x1bc77e[_0x8c92('0x31')]=qs[_0x8c92('0x31')](_0x45b1eb[_0x8c92('0x49')][_0x8c92('0x31')]);_0x1bc77e[_0x8c92('0x2f')]=qs[_0x8c92('0x2f')](_0x45b1eb[_0x8c92('0x49')]['offset']);}_0x1bc77e[_0x8c92('0x4e')]=qs['sort'](_0x45b1eb[_0x8c92('0x49')]['sort']);_0x1bc77e['where']=qs[_0x8c92('0x4a')](_[_0x8c92('0x4f')](_0x45b1eb['query'],_0x20b7ab[_0x8c92('0x4a')]),_0x3738ec);if(_0x45b1eb['query'][_0x8c92('0x50')]){_0x1bc77e[_0x8c92('0x51')]=_['merge'](_0x1bc77e[_0x8c92('0x51')],{'$or':_[_0x8c92('0x41')](_0x3738ec,function(_0x4a315a){if(_0x4a315a[_0x8c92('0x45')]!==_0x8c92('0x52')){var _0x1669d9={};_0x1669d9[_0x4a315a['name']]={'$like':'%'+_0x45b1eb[_0x8c92('0x49')][_0x8c92('0x50')]+'%'};return _0x1669d9;}})});}_0x1bc77e=_[_0x8c92('0x53')]({},_0x1bc77e,_0x45b1eb[_0x8c92('0x54')]);var _0xccc542={'where':_0x1bc77e['where']};return db[_0x8c92('0x42')][_0x8c92('0x32')](_0xccc542)[_0x8c92('0x21')](function(_0x2e63fe){_0x46c264[_0x8c92('0x32')]=_0x2e63fe;if(_0x45b1eb[_0x8c92('0x49')][_0x8c92('0x55')]){_0x1bc77e['include']=[{'all':!![]}];}return db[_0x8c92('0x42')]['findAll'](_0x1bc77e);})['then'](function(_0x57da01){_0x46c264['rows']=_0x57da01;return _0x46c264;})[_0x8c92('0x21')](respondWithFilteredResult(_0x398c18,_0x1bc77e))[_0x8c92('0x56')](handleError(_0x398c18,null));};exports['show']=function(_0x29b332,_0x19cccc){var _0x24a636={'raw':![],'where':{'id':_0x29b332['params']['id']},'include':[{'model':db[_0x8c92('0x40')],'as':_0x8c92('0x57')}]},_0x1156d5={};_0x1156d5[_0x8c92('0x47')]=_[_0x8c92('0x48')](db[_0x8c92('0x42')][_0x8c92('0x43')]);_0x1156d5[_0x8c92('0x49')]=_[_0x8c92('0x48')](_0x29b332['query']);_0x1156d5[_0x8c92('0x4a')]=_[_0x8c92('0x4b')](_0x1156d5['model'],_0x1156d5['query']);_0x24a636[_0x8c92('0x4c')]=_[_0x8c92('0x4b')](_0x1156d5[_0x8c92('0x47')],qs['fields'](_0x29b332[_0x8c92('0x49')][_0x8c92('0x4d')]));_0x24a636['attributes']=_0x24a636[_0x8c92('0x4c')][_0x8c92('0x58')]?_0x24a636[_0x8c92('0x4c')]:_0x1156d5[_0x8c92('0x47')];if(_0x29b332[_0x8c92('0x49')][_0x8c92('0x55')]){_0x24a636['include']=[{'all':!![]}];}_0x24a636=_['merge']({},_0x24a636,_0x29b332[_0x8c92('0x54')]);return db[_0x8c92('0x42')][_0x8c92('0x59')](_0x24a636)[_0x8c92('0x21')](handleEntityNotFound(_0x19cccc,null))['then'](respondWithResult(_0x19cccc,null))[_0x8c92('0x56')](handleError(_0x19cccc,null));};exports['create']=function(_0x3791e7,_0x1c5011){return db['FaxAccount'][_0x8c92('0x5a')](_0x3791e7[_0x8c92('0x5b')],{})['then'](function(_0x47bef0){var _0x2d8250=_0x3791e7[_0x8c92('0x5c')][_0x8c92('0x3a')]({'plain':!![]});if(!_0x2d8250)throw new Error(_0x8c92('0x5d'));if(_0x2d8250['role']===_0x8c92('0x5c')){var _0x270e77=_0x47bef0[_0x8c92('0x3a')]({'plain':!![]});var _0x5b0f7e=_0x8c92('0x3b');return db[_0x8c92('0x5e')][_0x8c92('0x59')]({'where':{'name':_0x5b0f7e,'userProfileId':_0x2d8250[_0x8c92('0x5f')]},'raw':!![]})[_0x8c92('0x21')](function(_0xd0195b){if(_0xd0195b&&_0xd0195b[_0x8c92('0x60')]===0x0){return db[_0x8c92('0x3c')][_0x8c92('0x5a')]({'name':_0x270e77['name'],'resourceId':_0x270e77['id'],'type':_0xd0195b['name'],'sectionId':_0xd0195b['id']},{})[_0x8c92('0x21')](function(){return _0x47bef0;});}else{return _0x47bef0;}})['catch'](function(_0x33510f){logger['error'](_0x8c92('0x61'),_0x33510f);throw _0x33510f;});}return _0x47bef0;})[_0x8c92('0x21')](respondWithResult(_0x1c5011,0xc9))[_0x8c92('0x56')](handleError(_0x1c5011,null));};exports[_0x8c92('0x38')]=function(_0x26a677,_0x4c4f6a){if(_0x26a677[_0x8c92('0x5b')]['id']){delete _0x26a677[_0x8c92('0x5b')]['id'];}return db[_0x8c92('0x42')]['find']({'where':{'id':_0x26a677[_0x8c92('0x62')]['id']},'include':[{'model':db['Pause'],'as':'mandatoryDispositionPause'}]})[_0x8c92('0x21')](handleEntityNotFound(_0x4c4f6a,null))[_0x8c92('0x21')](saveUpdates(_0x26a677[_0x8c92('0x5b')],null))['then'](respondWithResult(_0x4c4f6a,null))[_0x8c92('0x56')](handleError(_0x4c4f6a,null));};exports[_0x8c92('0x39')]=function(_0x3987c6,_0x22ee65){return db[_0x8c92('0x42')][_0x8c92('0x59')]({'where':{'id':_0x3987c6[_0x8c92('0x62')]['id']}})[_0x8c92('0x21')](handleEntityNotFound(_0x22ee65,null))[_0x8c92('0x21')](removeEntity(_0x22ee65,null))[_0x8c92('0x56')](handleError(_0x22ee65,null));};exports[_0x8c92('0x63')]=function(_0x54ba0e,_0x189bb8){return db[_0x8c92('0x42')]['describe']()['then'](respondWithResult(_0x189bb8,null))['catch'](handleError(_0x189bb8,null));};exports[_0x8c92('0x64')]=function(_0x29b324,_0x464c5e,_0x51bb19){if(_0x29b324[_0x8c92('0x5b')]['id']){delete _0x29b324[_0x8c92('0x5b')]['id'];}return db['FaxAccount']['find']({'where':{'id':_0x29b324[_0x8c92('0x62')]['id']}})['then'](handleEntityNotFound(_0x464c5e,null))[_0x8c92('0x21')](function(_0x43287d){if(_0x43287d){_0x29b324[_0x8c92('0x5b')]['FaxAccountId']=_0x43287d['id'];return db[_0x8c92('0x65')]['create'](_0x29b324['body']);}})['then'](respondWithResult(_0x464c5e,null))[_0x8c92('0x56')](handleError(_0x464c5e,null));};exports[_0x8c92('0x66')]=function(_0x20a725,_0x4607bf,_0x5c1570){var _0x58e84e={'raw':![],'where':{}};var _0x455d17={};var _0x46c0ed={'count':0x0,'rows':[]};return db[_0x8c92('0x42')]['findOne']({'where':{'id':_0x20a725[_0x8c92('0x62')]['id']}})[_0x8c92('0x21')](handleEntityNotFound(_0x4607bf,null))['then'](function(_0x390421){if(_0x390421){_0x455d17[_0x8c92('0x47')]=_['keys'](db[_0x8c92('0x65')][_0x8c92('0x43')]);_0x455d17[_0x8c92('0x49')]=_['keys'](_0x20a725[_0x8c92('0x49')]);_0x455d17['filters']=_['intersection'](_0x455d17[_0x8c92('0x47')],_0x455d17[_0x8c92('0x49')]);_0x58e84e[_0x8c92('0x4c')]=_[_0x8c92('0x4b')](_0x455d17[_0x8c92('0x47')],qs[_0x8c92('0x4d')](_0x20a725[_0x8c92('0x49')][_0x8c92('0x4d')]));_0x58e84e[_0x8c92('0x4c')]=_0x58e84e[_0x8c92('0x4c')][_0x8c92('0x58')]?_0x58e84e[_0x8c92('0x4c')]:_0x455d17['model'];if(!_0x20a725[_0x8c92('0x49')][_0x8c92('0x67')](_0x8c92('0x68'))){_0x58e84e[_0x8c92('0x31')]=qs[_0x8c92('0x31')](_0x20a725[_0x8c92('0x49')][_0x8c92('0x31')]);_0x58e84e[_0x8c92('0x2f')]=qs['offset'](_0x20a725['query']['offset']);}_0x58e84e[_0x8c92('0x4e')]=qs[_0x8c92('0x69')](_0x20a725['query']['sort']);_0x58e84e[_0x8c92('0x51')]=qs['filters'](_[_0x8c92('0x4f')](_0x20a725['query'],_0x455d17['filters']));_0x58e84e[_0x8c92('0x51')][_0x8c92('0x6a')]=_0x390421['id'];if(_0x20a725['query'][_0x8c92('0x50')]){_0x58e84e[_0x8c92('0x51')]=_[_0x8c92('0x53')](_0x58e84e[_0x8c92('0x51')],{'$or':_[_0x8c92('0x41')](_0x58e84e['attributes'],function(_0x125f1c){var _0x1e1b18={};_0x1e1b18[_0x125f1c]={'$like':'%'+_0x20a725['query'][_0x8c92('0x50')]+'%'};return _0x1e1b18;})});}_0x58e84e=_['merge']({},_0x58e84e,_0x20a725['options']);return db[_0x8c92('0x65')]['count']({'where':_0x58e84e['where']})[_0x8c92('0x21')](function(_0x3572f4){_0x46c0ed[_0x8c92('0x32')]=_0x3572f4;if(_0x20a725['query']['includeAll']){_0x58e84e[_0x8c92('0x6b')]=[{'all':!![]}];}return db['Disposition']['findAll'](_0x58e84e);})[_0x8c92('0x21')](function(_0x61c13e){_0x46c0ed[_0x8c92('0x6c')]=_0x61c13e;return _0x46c0ed;});}})[_0x8c92('0x21')](respondWithFilteredResult(_0x4607bf,_0x58e84e))[_0x8c92('0x56')](handleError(_0x4607bf,null));};exports['removeDispositions']=function(_0xa179e3,_0x146fb9,_0x537110){return db[_0x8c92('0x42')][_0x8c92('0x59')]({'where':{'id':_0xa179e3[_0x8c92('0x62')]['id']}})[_0x8c92('0x21')](handleEntityNotFound(_0x146fb9,null))[_0x8c92('0x21')](function(_0x3791a7){if(_0x3791a7){return _0x3791a7['removeDispositions'](_0xa179e3[_0x8c92('0x49')]['ids']);}})['then'](respondWithStatusCode(_0x146fb9,null))[_0x8c92('0x56')](handleError(_0x146fb9,null));};exports['addAnswer']=function(_0x99c8e3,_0x5a3c22,_0x360ccd){if(_0x99c8e3[_0x8c92('0x5b')]['id']){delete _0x99c8e3[_0x8c92('0x5b')]['id'];}return db[_0x8c92('0x42')][_0x8c92('0x59')]({'where':{'id':_0x99c8e3['params']['id']}})[_0x8c92('0x21')](handleEntityNotFound(_0x5a3c22,null))[_0x8c92('0x21')](function(_0x511d01){if(_0x511d01){_0x99c8e3[_0x8c92('0x5b')][_0x8c92('0x6a')]=_0x511d01['id'];return db[_0x8c92('0x6d')][_0x8c92('0x5a')](_0x99c8e3[_0x8c92('0x5b')]);}})[_0x8c92('0x21')](respondWithResult(_0x5a3c22,null))[_0x8c92('0x56')](handleError(_0x5a3c22,null));};exports[_0x8c92('0x6e')]=function(_0x1ecae1,_0x4c65f8,_0x42604e){var _0xe80e5a={'raw':![],'where':{}};var _0x7e0f39={};var _0x81457d={'count':0x0,'rows':[]};return db[_0x8c92('0x42')][_0x8c92('0x6f')]({'where':{'id':_0x1ecae1[_0x8c92('0x62')]['id']}})[_0x8c92('0x21')](handleEntityNotFound(_0x4c65f8,null))['then'](function(_0xd1ad44){if(_0xd1ad44){_0x7e0f39['model']=_[_0x8c92('0x48')](db[_0x8c92('0x6d')]['rawAttributes']);_0x7e0f39[_0x8c92('0x49')]=_['keys'](_0x1ecae1[_0x8c92('0x49')]);_0x7e0f39[_0x8c92('0x4a')]=_[_0x8c92('0x4b')](_0x7e0f39[_0x8c92('0x47')],_0x7e0f39[_0x8c92('0x49')]);_0xe80e5a[_0x8c92('0x4c')]=_[_0x8c92('0x4b')](_0x7e0f39[_0x8c92('0x47')],qs[_0x8c92('0x4d')](_0x1ecae1[_0x8c92('0x49')][_0x8c92('0x4d')]));_0xe80e5a[_0x8c92('0x4c')]=_0xe80e5a[_0x8c92('0x4c')][_0x8c92('0x58')]?_0xe80e5a[_0x8c92('0x4c')]:_0x7e0f39['model'];if(!_0x1ecae1['query']['hasOwnProperty'](_0x8c92('0x68'))){_0xe80e5a[_0x8c92('0x31')]=qs[_0x8c92('0x31')](_0x1ecae1[_0x8c92('0x49')]['limit']);_0xe80e5a[_0x8c92('0x2f')]=qs[_0x8c92('0x2f')](_0x1ecae1[_0x8c92('0x49')]['offset']);}_0xe80e5a[_0x8c92('0x4e')]=qs[_0x8c92('0x69')](_0x1ecae1[_0x8c92('0x49')][_0x8c92('0x69')]);_0xe80e5a[_0x8c92('0x51')]=qs[_0x8c92('0x4a')](_[_0x8c92('0x4f')](_0x1ecae1['query'],_0x7e0f39['filters']));_0xe80e5a[_0x8c92('0x51')][_0x8c92('0x6a')]=_0xd1ad44['id'];if(_0x1ecae1['query'][_0x8c92('0x50')]){_0xe80e5a['where']=_[_0x8c92('0x53')](_0xe80e5a[_0x8c92('0x51')],{'$or':_[_0x8c92('0x41')](_0xe80e5a[_0x8c92('0x4c')],function(_0x317470){var _0x51dc6e={};_0x51dc6e[_0x317470]={'$like':'%'+_0x1ecae1[_0x8c92('0x49')][_0x8c92('0x50')]+'%'};return _0x51dc6e;})});}_0xe80e5a=_[_0x8c92('0x53')]({},_0xe80e5a,_0x1ecae1['options']);return db['CannedAnswer'][_0x8c92('0x32')]({'where':_0xe80e5a['where']})[_0x8c92('0x21')](function(_0x47cce0){_0x81457d['count']=_0x47cce0;if(_0x1ecae1['query']['includeAll']){_0xe80e5a[_0x8c92('0x6b')]=[{'all':!![]}];}return db['CannedAnswer'][_0x8c92('0x70')](_0xe80e5a);})[_0x8c92('0x21')](function(_0x1ac247){_0x81457d['rows']=_0x1ac247;return _0x81457d;});}})[_0x8c92('0x21')](respondWithFilteredResult(_0x4c65f8,_0xe80e5a))['catch'](handleError(_0x4c65f8,null));};exports[_0x8c92('0x71')]=function(_0x2d4b11,_0x3144e4,_0x551c69){return db['FaxAccount']['find']({'where':{'id':_0x2d4b11[_0x8c92('0x62')]['id']}})[_0x8c92('0x21')](handleEntityNotFound(_0x3144e4,null))[_0x8c92('0x21')](function(_0x32cb8a){if(_0x32cb8a){return _0x32cb8a[_0x8c92('0x71')](_0x2d4b11[_0x8c92('0x49')][_0x8c92('0x72')]);}})[_0x8c92('0x21')](respondWithStatusCode(_0x3144e4,null))[_0x8c92('0x56')](handleError(_0x3144e4,null));};exports[_0x8c92('0x73')]=function(_0x247f91,_0x44b2be,_0x312f54){return db[_0x8c92('0x74')]['find']({'where':{'id':_0x247f91[_0x8c92('0x62')]['id']}})[_0x8c92('0x21')](handleEntityNotFound(_0x44b2be,null))[_0x8c92('0x21')](function(_0x356751){if(_0x356751){return _0x356751[_0x8c92('0x73')](_0x247f91[_0x8c92('0x5b')][_0x8c92('0x72')],_[_0x8c92('0x75')](_0x247f91[_0x8c92('0x5b')],[_0x8c92('0x72'),'id'])||{});}})[_0x8c92('0x21')](respondWithResult(_0x44b2be,null))[_0x8c92('0x56')](handleError(_0x44b2be,null));};exports[_0x8c92('0x76')]=function(_0x5b36c1,_0x62e617,_0x3eb422){var _0x43a08a={'raw':![],'where':{}};var _0x5d37d4={};var _0x4993e5={'count':0x0,'rows':[]};return db[_0x8c92('0x42')][_0x8c92('0x6f')]({'where':{'id':_0x5b36c1[_0x8c92('0x62')]['id']}})[_0x8c92('0x21')](handleEntityNotFound(_0x62e617,null))[_0x8c92('0x21')](function(_0x2e0afa){if(_0x2e0afa){_0x5d37d4[_0x8c92('0x47')]=_[_0x8c92('0x48')](db['FaxInteraction'][_0x8c92('0x43')]);_0x5d37d4[_0x8c92('0x49')]=_['keys'](_0x5b36c1[_0x8c92('0x49')]);_0x5d37d4[_0x8c92('0x4a')]=_[_0x8c92('0x4b')](_0x5d37d4['model'],_0x5d37d4[_0x8c92('0x49')]);_0x43a08a[_0x8c92('0x4c')]=_['intersection'](_0x5d37d4[_0x8c92('0x47')],qs[_0x8c92('0x4d')](_0x5b36c1[_0x8c92('0x49')][_0x8c92('0x4d')]));_0x43a08a[_0x8c92('0x4c')]=_0x43a08a[_0x8c92('0x4c')][_0x8c92('0x58')]?_0x43a08a['attributes']:_0x5d37d4['model'];if(!_0x5b36c1[_0x8c92('0x49')][_0x8c92('0x67')](_0x8c92('0x68'))){_0x43a08a[_0x8c92('0x31')]=qs['limit'](_0x5b36c1[_0x8c92('0x49')][_0x8c92('0x31')]);_0x43a08a['offset']=qs['offset'](_0x5b36c1[_0x8c92('0x49')][_0x8c92('0x2f')]);}_0x43a08a[_0x8c92('0x4e')]=qs[_0x8c92('0x69')](_0x5b36c1[_0x8c92('0x49')]['sort']);_0x43a08a[_0x8c92('0x51')]=qs[_0x8c92('0x4a')](_[_0x8c92('0x4f')](_0x5b36c1['query'],_0x5d37d4[_0x8c92('0x4a')]));_0x43a08a['where'][_0x8c92('0x6a')]=_0x2e0afa['id'];if(_0x5b36c1['query'][_0x8c92('0x50')]){_0x43a08a[_0x8c92('0x51')]=_[_0x8c92('0x53')](_0x43a08a[_0x8c92('0x51')],{'$or':_[_0x8c92('0x41')](_0x43a08a['attributes'],function(_0x596060){var _0xe78291={};_0xe78291[_0x596060]={'$like':'%'+_0x5b36c1[_0x8c92('0x49')]['filter']+'%'};return _0xe78291;})});}_0x43a08a=_[_0x8c92('0x53')]({},_0x43a08a,_0x5b36c1['options']);return db[_0x8c92('0x74')][_0x8c92('0x32')]({'where':_0x43a08a[_0x8c92('0x51')]})[_0x8c92('0x21')](function(_0x10607c){_0x4993e5[_0x8c92('0x32')]=_0x10607c;if(_0x5b36c1[_0x8c92('0x49')][_0x8c92('0x55')]){_0x43a08a['include']=[{'model':db['CmContact'],'as':'Contact','required':![]},{'model':db[_0x8c92('0x77')],'as':_0x8c92('0x78'),'attributes':[_0x8c92('0x3d'),_0x8c92('0x79'),_0x8c92('0x7a')],'required':![]},{'model':db['Tag'],'as':'Tags','attributes':['id','name',_0x8c92('0x7b')],'where':_0x5b36c1[_0x8c92('0x49')][_0x8c92('0x7c')]?{'id':_0x5b36c1['query'][_0x8c92('0x7c')]}:undefined,'required':_0x5b36c1[_0x8c92('0x49')][_0x8c92('0x7c')]?!![]:![]}];}return db[_0x8c92('0x74')]['findAll'](_0x43a08a);})[_0x8c92('0x21')](function(_0x381b6f){_0x4993e5[_0x8c92('0x6c')]=_0x381b6f;return _0x4993e5;});}})['then'](respondWithFilteredResult(_0x62e617,_0x43a08a))['catch'](handleError(_0x62e617,null));};exports[_0x8c92('0x7d')]=function(_0x560a51,_0x5bc776,_0x48022b){return db[_0x8c92('0x42')][_0x8c92('0x6f')]({'where':{'id':_0x560a51[_0x8c92('0x62')]['id']}})['then'](handleEntityNotFound(_0x5bc776,null))[_0x8c92('0x21')](function(_0x366ded){if(_0x366ded){return db[_0x8c92('0x7e')][_0x8c92('0x7f')](function(_0x705785){return db[_0x8c92('0x80')][_0x8c92('0x39')]({'where':{'FaxAccountId':_0x560a51[_0x8c92('0x62')]['id']},'transaction':_0x705785})[_0x8c92('0x21')](function(_0x5bf5c4){var _0x1da281=_[_0x8c92('0x41')](_0x560a51[_0x8c92('0x5b')],function(_0x105974){_0x105974[_0x8c92('0x6a')]=_0x560a51[_0x8c92('0x62')]['id'];return _0x105974;});return db[_0x8c92('0x80')]['bulkCreate'](_0x1da281,{'transaction':_0x705785});});})[_0x8c92('0x21')](function(){return db[_0x8c92('0x80')][_0x8c92('0x81')]({'where':{'FaxAccountId':_0x560a51[_0x8c92('0x62')]['id']},'order':_0x8c92('0x82')});});}})[_0x8c92('0x21')](respondWithResult(_0x5bc776,null))[_0x8c92('0x56')](handleError(_0x5bc776,null));};exports['getApplications']=function(_0x46e032,_0x13a082,_0x50d46b){var _0x4f3dde={};var _0x34344d={};var _0x289aba;var _0x4d1f49;return db[_0x8c92('0x42')][_0x8c92('0x6f')]({'where':{'id':_0x46e032[_0x8c92('0x62')]['id']}})[_0x8c92('0x21')](handleEntityNotFound(_0x13a082,null))[_0x8c92('0x21')](function(_0x3876a6){if(_0x3876a6){_0x289aba=_0x3876a6;_0x34344d[_0x8c92('0x47')]=_[_0x8c92('0x48')](db[_0x8c92('0x80')][_0x8c92('0x43')]);_0x34344d['query']=_[_0x8c92('0x48')](_0x46e032[_0x8c92('0x49')]);_0x34344d[_0x8c92('0x4a')]=_[_0x8c92('0x4b')](_0x34344d[_0x8c92('0x47')],_0x34344d[_0x8c92('0x49')]);_0x4f3dde[_0x8c92('0x4c')]=_[_0x8c92('0x4b')](_0x34344d['model'],qs[_0x8c92('0x4d')](_0x46e032[_0x8c92('0x49')]['fields']));_0x4f3dde[_0x8c92('0x4c')]=_0x4f3dde['attributes']['length']?_0x4f3dde['attributes']:_0x34344d[_0x8c92('0x47')];_0x4f3dde[_0x8c92('0x4e')]=qs[_0x8c92('0x69')](_0x46e032[_0x8c92('0x49')][_0x8c92('0x69')]);_0x4f3dde[_0x8c92('0x51')]=qs[_0x8c92('0x4a')](_[_0x8c92('0x4f')](_0x46e032[_0x8c92('0x49')],_0x34344d['filters']));if(_0x46e032[_0x8c92('0x49')][_0x8c92('0x50')]){_0x4f3dde[_0x8c92('0x51')]=_[_0x8c92('0x53')](_0x4f3dde[_0x8c92('0x51')],{'$or':_['map'](_0x4f3dde['attributes'],function(_0x45bf57){var _0x3c37de={};_0x3c37de[_0x45bf57]={'$like':'%'+_0x46e032['query']['filter']+'%'};return _0x3c37de;})});}_0x4f3dde=_[_0x8c92('0x53')]({},_0x4f3dde,_0x46e032[_0x8c92('0x54')]);return _0x289aba[_0x8c92('0x83')](_0x4f3dde);}})[_0x8c92('0x21')](function(_0x298939){if(_0x298939){_0x4d1f49=_0x298939[_0x8c92('0x58')];if(!_0x46e032[_0x8c92('0x49')]['hasOwnProperty']('nolimit')){_0x4f3dde[_0x8c92('0x31')]=qs[_0x8c92('0x31')](_0x46e032[_0x8c92('0x49')][_0x8c92('0x31')]);_0x4f3dde[_0x8c92('0x2f')]=qs['offset'](_0x46e032[_0x8c92('0x49')][_0x8c92('0x2f')]);}return _0x289aba['getApplications'](_0x4f3dde);}})[_0x8c92('0x21')](function(_0x4db212){if(_0x4db212){return _0x4db212?{'count':_0x4d1f49,'rows':_0x4db212}:null;}})[_0x8c92('0x21')](respondWithResult(_0x13a082,null))['catch'](handleError(_0x13a082,null));};function Extension(_0x10f107,_0x11de27,_0x3c1109,_0x21d046){this[_0x8c92('0x84')]='from-voip-provider';this[_0x8c92('0x85')]=_0x10f107[_0x8c92('0x86')];this[_0x8c92('0x87')]=_0x21d046;this[_0x8c92('0x45')]=_0x8c92('0x88');this[_0x8c92('0x89')]=_0x8c92('0x8a');this['FaxAccountId']=_0x10f107['id'];this[_0x8c92('0x82')]=_0x11de27;this[_0x8c92('0x8b')]=_0x3c1109;}function createExtensionsReciveFax(_0x29f72d){var _0x40c0e4=0x1;var _0x9ef0d5=[];_0x9ef0d5[_0x8c92('0x8c')](new Extension(_0x29f72d,_0x40c0e4,'',_0x8c92('0x8d')));_0x40c0e4+=0x1;_0x9ef0d5[_0x8c92('0x8c')](new Extension(_0x29f72d,_0x40c0e4,_0x8c92('0x8e'),_0x8c92('0x8f')));_0x40c0e4+=0x1;for(var _0x41a7f0 in _0x29f72d){if(_0x29f72d['hasOwnProperty'](_0x41a7f0)&&(_0x41a7f0===_0x8c92('0x90')||_0x41a7f0==='localstationid'||_0x41a7f0===_0x8c92('0x91')||_0x41a7f0==='faxdetect'||_0x41a7f0===_0x8c92('0x92')||_0x41a7f0==='maxrate'||_0x41a7f0===_0x8c92('0x93')||_0x41a7f0===_0x8c92('0x94')||_0x41a7f0===_0x8c92('0x95'))){_0x9ef0d5[_0x8c92('0x8c')](new Extension(_0x29f72d,_0x40c0e4,'FAXOPT('+_0x41a7f0+')='+_0x29f72d[_0x41a7f0],_0x8c92('0x8f')));_0x40c0e4+=0x1;}}_0x9ef0d5[_0x8c92('0x8c')](new Extension(_0x29f72d,_0x40c0e4,'6','Wait'));_0x40c0e4+=0x1;_0x9ef0d5[_0x8c92('0x8c')](new Extension(_0x29f72d,_0x40c0e4,_0x8c92('0x96'),_0x8c92('0x97')));_0x40c0e4=0x0;return _0x9ef0d5;}exports[_0x8c92('0x98')]=function(_0x3e07b5,_0x48933b,_0x205be9){var _0x2ffa3e;return db['sequelize']['transaction'](function(_0x108125){return db[_0x8c92('0x42')][_0x8c92('0x5a')](_0x3e07b5[_0x8c92('0x5b')],{'transaction':_0x108125})['then'](function(_0x2e822a){_0x2ffa3e=_0x2e822a[_0x8c92('0x3a')]({'plain':!![]});return db[_0x8c92('0x99')]['bulkCreate'](createExtensionsReciveFax(_0x2ffa3e),{'transaction':_0x108125});});})[_0x8c92('0x21')](function(){return _0x2ffa3e;})[_0x8c92('0x21')](respondWithResult(_0x48933b,null))['catch'](handleError(_0x48933b,null));};exports[_0x8c92('0x9a')]=function(_0x160723,_0x5d0bf0,_0x49ca7f){var _0x544611;return db[_0x8c92('0x7e')][_0x8c92('0x7f')](function(_0x88cc06){return db[_0x8c92('0x42')][_0x8c92('0x38')](_0x160723[_0x8c92('0x5b')],{'where':{'id':_0x160723['body']['id']},'transaction':_0x88cc06})['then'](function(_0x877a59){return db[_0x8c92('0x99')]['destroy']({'where':{'FaxAccountId':_0x160723[_0x8c92('0x5b')]['id']},'transaction':_0x88cc06})['then'](function(_0x4d5ffb){return db[_0x8c92('0x99')][_0x8c92('0x9b')](createExtensionsReciveFax(_[_0x8c92('0x75')](_0x160723[_0x8c92('0x5b')],[_0x8c92('0x9c'),'key',_0x8c92('0x9d'),'updatedAt',_0x8c92('0x9e'),_0x8c92('0x9f')])),{'transaction':_0x88cc06});});});})[_0x8c92('0x21')](function(){return db[_0x8c92('0x42')][_0x8c92('0xa0')](_0x160723[_0x8c92('0x5b')]['id']);})[_0x8c92('0x21')](respondWithResult(_0x5d0bf0,null))[_0x8c92('0x56')](handleError(_0x5d0bf0,null));};exports[_0x8c92('0xa1')]=function(_0x15bb78,_0x214479,_0x109b24){var _0x3f86c2={'raw':!![],'where':{}};var _0x4ba63d={};var _0x5ef55d={'count':0x0,'rows':[]};return db['FaxAccount']['findOne']({'where':{'id':_0x15bb78[_0x8c92('0x62')]['id']}})[_0x8c92('0x21')](handleEntityNotFound(_0x214479,null))[_0x8c92('0x21')](function(_0x413fa5){if(_0x413fa5){_0x4ba63d[_0x8c92('0x47')]=_[_0x8c92('0x48')](db[_0x8c92('0xa2')][_0x8c92('0x43')]);_0x4ba63d[_0x8c92('0x49')]=_[_0x8c92('0x48')](_0x15bb78[_0x8c92('0x49')]);_0x4ba63d[_0x8c92('0x4a')]=_[_0x8c92('0x4b')](_0x4ba63d['model'],_0x4ba63d[_0x8c92('0x49')]);_0x3f86c2[_0x8c92('0x4c')]=_[_0x8c92('0x4b')](_0x4ba63d[_0x8c92('0x47')],qs['fields'](_0x15bb78['query'][_0x8c92('0x4d')]));_0x3f86c2[_0x8c92('0x4c')]=_0x3f86c2[_0x8c92('0x4c')]['length']?_0x3f86c2[_0x8c92('0x4c')]:_0x4ba63d[_0x8c92('0x47')];if(!_0x15bb78['query']['hasOwnProperty'](_0x8c92('0x68'))){_0x3f86c2[_0x8c92('0x31')]=qs[_0x8c92('0x31')](_0x15bb78[_0x8c92('0x49')]['limit']);_0x3f86c2['offset']=qs[_0x8c92('0x2f')](_0x15bb78['query']['offset']);}_0x3f86c2[_0x8c92('0x4e')]=qs[_0x8c92('0x69')](_0x15bb78[_0x8c92('0x49')][_0x8c92('0x69')]);_0x3f86c2[_0x8c92('0x51')]=qs[_0x8c92('0x4a')](_[_0x8c92('0x4f')](_0x15bb78['query'],_0x4ba63d[_0x8c92('0x4a')]));_0x3f86c2[_0x8c92('0x51')][_0x8c92('0x6a')]=_0x413fa5['id'];if(_0x15bb78[_0x8c92('0x49')]['filter']){_0x3f86c2[_0x8c92('0x51')]=_[_0x8c92('0x53')](_0x3f86c2[_0x8c92('0x51')],{'$or':_[_0x8c92('0x41')](_0x3f86c2[_0x8c92('0x4c')],function(_0x5532af){var _0x1ecd10={};_0x1ecd10[_0x5532af]={'$like':'%'+_0x15bb78[_0x8c92('0x49')][_0x8c92('0x50')]+'%'};return _0x1ecd10;})});}if(_0x15bb78['query'][_0x8c92('0xa3')]){var _0xf7da6b=_0x15bb78[_0x8c92('0x49')]['$gte'][_0x8c92('0xa4')](',');var _0x3a0f5e={};_0x3a0f5e[_0xf7da6b[0x0]]={'$gte':moment(_0xf7da6b[0x1])[_0x8c92('0xa5')]('YYYY-MM-DD\x20HH:mm:ss')};_0x3f86c2[_0x8c92('0x51')]=_['merge'](_0x3f86c2['where'],_0x3a0f5e);}_0x3f86c2=_[_0x8c92('0x53')]({},_0x3f86c2,_0x15bb78['options']);return db['FaxMessage'][_0x8c92('0x32')]({'where':_0x3f86c2['where']})[_0x8c92('0x21')](function(_0x15e3cb){_0x5ef55d['count']=_0x15e3cb;if(_0x15bb78[_0x8c92('0x49')][_0x8c92('0x55')]){_0x3f86c2['include']=[{'all':!![]}];}return db[_0x8c92('0xa2')][_0x8c92('0x70')](_0x3f86c2);})[_0x8c92('0x21')](function(_0x3cec5d){_0x5ef55d[_0x8c92('0x6c')]=_0x3cec5d;return _0x5ef55d;});}})[_0x8c92('0x21')](respondWithFilteredResult(_0x214479,_0x3f86c2))[_0x8c92('0x56')](handleError(_0x214479,null));};exports[_0x8c92('0x3e')]=function(_0x527e2c,_0x4d34d5,_0x54e4c3){var _0x352bec,_0x3f3187={},_0x2edc9d;if(_0x527e2c[_0x8c92('0x5b')]['to']){_0x2edc9d=_0x527e2c[_0x8c92('0x5b')]['to'][0x0];}return db[_0x8c92('0x42')][_0x8c92('0x59')]({'where':{'id':_0x527e2c[_0x8c92('0x62')]['id']},'include':[{'model':db['CmList'],'as':_0x8c92('0xa6'),'include':[{'model':db[_0x8c92('0xa7')],'as':'Contacts','where':{'fax':_0x2edc9d},'limit':0x1,'order':[['updatedAt',_0x8c92('0xa8')]]}]}]})[_0x8c92('0x21')](handleEntityNotFound(_0x4d34d5,null))[_0x8c92('0x21')](function(_0xaef24a){_0x352bec=_0xaef24a;if(_0x527e2c['body'][_0x8c92('0xa9')]&&_0x527e2c['body'][_0x8c92('0xa9')][_0x8c92('0x58')]){for(var _0x2d9066=0x0;_0x2d9066<_0x527e2c[_0x8c92('0x5b')][_0x8c92('0xa9')][_0x8c92('0x58')];_0x2d9066+=0x1){_0x527e2c[_0x8c92('0x5b')]['attachments'][_0x2d9066]={'filename':_0x527e2c[_0x8c92('0x5b')]['attachments'][_0x2d9066][_0x8c92('0x3d')],'id':_0x527e2c['body']['attachments'][_0x2d9066]['id'],'path':path[_0x8c92('0xaa')](config[_0x8c92('0xab')],_0x8c92('0xac'),_0x527e2c[_0x8c92('0x5b')][_0x8c92('0xa9')][_0x2d9066][_0x8c92('0xad')])};}}return respondWithRpcPromise(_0x8c92('0xae'),_0x8c92('0xae'),{'FaxAccountId':_[_0x8c92('0xaf')](_0x527e2c['params']['id'])?undefined:_0x527e2c['params']['id'],'path':_[_0x8c92('0xaf')](_0x527e2c[_0x8c92('0x5b')][_0x8c92('0xa9')][0x0]['path'])?undefined:_0x527e2c[_0x8c92('0x5b')][_0x8c92('0xa9')][0x0][_0x8c92('0x7')],'fax':_[_0x8c92('0xaf')](_0x527e2c[_0x8c92('0x5b')]['to'][0x0])?undefined:_0x527e2c['body']['to'][0x0]},client9002);})[_0x8c92('0x21')](function(){if(_0x352bec){if(_[_0x8c92('0xaf')](_0x527e2c[_0x8c92('0x5b')][_0x8c92('0xb0')])){_0x527e2c[_0x8c92('0x5b')][_0x8c92('0xb0')]=util['format'](_0x8c92('0xb1'),_0x352bec['name'],_0x352bec['fax']);}if(_0x352bec[_0x8c92('0xa6')]){if(_0x352bec['List'][_0x8c92('0xb2')][_0x8c92('0x58')]){return _0x352bec['List'][_0x8c92('0xb2')][0x0];}else{return db[_0x8c92('0xa7')]['create'](_['defaults'](_0x527e2c[_0x8c92('0x5b')],{'firstName':_0x527e2c[_0x8c92('0x5b')]['to'][0x0],'phone':_0x527e2c['body']['to'][0x0],'fax':_0x527e2c[_0x8c92('0x5b')]['to'][0x0],'ListId':_0x352bec[_0x8c92('0x9f')]}));}}else{throw new Error(_0x8c92('0xb3'));}}else{throw new Error('Send\x20Fax\x20failed');}})[_0x8c92('0x21')](function(_0x1698c3){if(_0x1698c3){return db[_0x8c92('0x74')][_0x8c92('0x59')]({'where':{'ContactId':_0x1698c3['id'],'closed':![],'FaxAccountId':_0x352bec['id']}})[_0x8c92('0x21')](function(_0x5d91e3){if(_0x5d91e3){return[_0x5d91e3,![]];}return db['FaxInteraction']['create']({'UserId':_0x527e2c[_0x8c92('0x5c')]['id'],'ContactId':_0x1698c3['id'],'FaxAccountId':_0x352bec['id'],'fax':_0x527e2c[_0x8c92('0x5b')]['to'][0x0],'firstMsgDirection':_0x8c92('0xb4'),'Messages':[_['merge'](_0x527e2c[_0x8c92('0x5b')],{'read':![],'body':_0x527e2c[_0x8c92('0x5b')]['attachments'][0x0]['filename'],'FaxAccountId':_0x352bec['id'],'UserId':_0x527e2c[_0x8c92('0x5c')]['id'],'ContactId':_0x1698c3['id'],'AttachmentId':_0x527e2c[_0x8c92('0x5b')]['attachments'][0x0]['id']})]},{'include':[{'model':db[_0x8c92('0xa2')],'as':_0x8c92('0xb5')}]})[_0x8c92('0x21')](function(_0x5e41c1){return[_0x5e41c1,!![]];});});}else{throw new Error(_0x8c92('0xb6'));}})[_0x8c92('0xb7')](function(_0x8fbb9f,_0x4547fa){if(_0x4547fa){return _0x8fbb9f;}return db['FaxMessage'][_0x8c92('0x5a')]({'direction':_0x8c92('0xb4'),'read':![],'body':_0x527e2c[_0x8c92('0x5b')][_0x8c92('0xa9')][0x0]['filename'],'FaxAccountId':_0x352bec['id'],'FaxInteractionId':_0x8fbb9f['id'],'UserId':_0x527e2c[_0x8c92('0x5c')]['id'],'ContactId':_0x8fbb9f['ContactId'],'AttachmentId':_0x527e2c[_0x8c92('0x5b')][_0x8c92('0xa9')][0x0]['id']})[_0x8c92('0x21')](function(_0x47e088){_0x8fbb9f[_0x8c92('0xb8')][_0x8c92('0xb5')]=[];_0x8fbb9f[_0x8c92('0xb8')][_0x8c92('0xb5')][_0x8c92('0x8c')](_0x47e088['dataValues']);return _0x8fbb9f;});})['then'](function(_0x3928d2){respondWithRpcPromise('SendFax',_0x8c92('0xb9'),{'FaxAccountId':_[_0x8c92('0xaf')](_0x527e2c[_0x8c92('0x62')]['id'])?undefined:_0x527e2c[_0x8c92('0x62')]['id'],'path':_[_0x8c92('0xaf')](_0x527e2c[_0x8c92('0x5b')][_0x8c92('0xa9')][0x0]['path'])?undefined:_0x527e2c[_0x8c92('0x5b')][_0x8c92('0xa9')][0x0][_0x8c92('0x7')],'fax':_['isNil'](_0x527e2c[_0x8c92('0x5b')]['to'][0x0])?undefined:_0x527e2c[_0x8c92('0x5b')]['to'][0x0],'AttachmentId':_0x527e2c[_0x8c92('0x5b')][_0x8c92('0xa9')][0x0]['id']},client9002)[_0x8c92('0x21')](function(_0x1b4d92){logger[_0x8c92('0x29')]('SendFaxRpc,\x20%s',_0x1b4d92);})[_0x8c92('0x56')](function(_0x233ff6){logger[_0x8c92('0x29')]('SendFaxRpc,\x20%s',_0x233ff6);});return _0x3928d2;})[_0x8c92('0x21')](respondWithResult(_0x4d34d5,null))[_0x8c92('0x56')](handleError(_0x4d34d5,null));};exports[_0x8c92('0xba')]=function(_0x311387,_0xd9b489,_0x5dfb12){return db[_0x8c92('0x42')][_0x8c92('0x59')]({'where':{'id':_0x311387[_0x8c92('0x62')]['id']}})[_0x8c92('0x21')](handleEntityNotFound(_0xd9b489,null))[_0x8c92('0x21')](function(_0x29545f){if(_0x29545f){return _0x29545f['addAgents'](_0x311387[_0x8c92('0x5b')][_0x8c92('0x72')],_['omit'](_0x311387[_0x8c92('0x5b')],[_0x8c92('0x72'),'id'])||{})[_0x8c92('0xb7')](function(_0x17a9c6){for(var _0x97361=0x0;_0x97361<_0x311387[_0x8c92('0x5b')]['ids'][_0x8c92('0x58')];_0x97361+=0x1){socket['emit'](_0x8c92('0xbb'),{'UserId':Number(_0x311387[_0x8c92('0x5b')][_0x8c92('0x72')][_0x97361]),'FaxAccountId':Number(_0x311387[_0x8c92('0x62')]['id'])});}return _0x17a9c6;});}})[_0x8c92('0x21')](respondWithResult(_0xd9b489,null))[_0x8c92('0x56')](handleError(_0xd9b489,null));};exports['removeAgents']=function(_0x57226a,_0xc6821f,_0xfccc37){return db[_0x8c92('0x42')][_0x8c92('0x59')]({'where':{'id':_0x57226a[_0x8c92('0x62')]['id']}})[_0x8c92('0x21')](handleEntityNotFound(_0xc6821f,null))['then'](function(_0x27685c){if(_0x27685c){return _0x27685c['removeAgents'](_0x57226a['query'][_0x8c92('0x72')])[_0x8c92('0x21')](function(){if(_[_0x8c92('0xbc')](_0x57226a[_0x8c92('0x49')][_0x8c92('0x72')])){for(var _0x53ed9f=0x0;_0x53ed9f<_0x57226a[_0x8c92('0x49')][_0x8c92('0x72')][_0x8c92('0x58')];_0x53ed9f+=0x1){socket[_0x8c92('0xbd')](_0x8c92('0xbe'),{'UserId':Number(_0x57226a['query'][_0x8c92('0x72')][_0x53ed9f]),'FaxAccountId':Number(_0x57226a[_0x8c92('0x62')]['id'])});}}else{socket[_0x8c92('0xbd')](_0x8c92('0xbe'),{'UserId':Number(_0x57226a[_0x8c92('0x49')][_0x8c92('0x72')]),'FaxAccountId':Number(_0x57226a[_0x8c92('0x62')]['id'])});}});}})[_0x8c92('0x21')](respondWithStatusCode(_0xc6821f,null))[_0x8c92('0x56')](handleError(_0xc6821f,null));};exports[_0x8c92('0xbf')]=function(_0x494090,_0x2d772f,_0x34f275){var _0x4b0f4c={};var _0x525111={};var _0x174977;var _0x654674;return db[_0x8c92('0x42')][_0x8c92('0x6f')]({'where':{'id':_0x494090[_0x8c92('0x62')]['id']}})[_0x8c92('0x21')](handleEntityNotFound(_0x2d772f,null))[_0x8c92('0x21')](function(_0x163c47){if(_0x163c47){_0x174977=_0x163c47;_0x525111[_0x8c92('0x47')]=_[_0x8c92('0x48')](db[_0x8c92('0x77')][_0x8c92('0x43')]);_0x525111[_0x8c92('0x49')]=_['keys'](_0x494090['query']);_0x525111['filters']=_[_0x8c92('0x4b')](_0x525111[_0x8c92('0x47')],_0x525111[_0x8c92('0x49')]);_0x4b0f4c[_0x8c92('0x4c')]=_[_0x8c92('0x4b')](_0x525111[_0x8c92('0x47')],qs['fields'](_0x494090[_0x8c92('0x49')]['fields']));_0x4b0f4c[_0x8c92('0x4c')]=_0x4b0f4c[_0x8c92('0x4c')][_0x8c92('0x58')]?_0x4b0f4c[_0x8c92('0x4c')]:_0x525111[_0x8c92('0x47')];_0x4b0f4c[_0x8c92('0x4e')]=qs[_0x8c92('0x69')](_0x494090['query'][_0x8c92('0x69')]);_0x4b0f4c[_0x8c92('0x51')]=qs[_0x8c92('0x4a')](_[_0x8c92('0x4f')](_0x494090[_0x8c92('0x49')],_0x525111[_0x8c92('0x4a')]));if(_0x494090[_0x8c92('0x49')][_0x8c92('0x50')]){_0x4b0f4c[_0x8c92('0x51')]=_[_0x8c92('0x53')](_0x4b0f4c['where'],{'$or':_[_0x8c92('0x41')](_0x4b0f4c[_0x8c92('0x4c')],function(_0x5bc75f){var _0xedfa63={};_0xedfa63[_0x5bc75f]={'$like':'%'+_0x494090[_0x8c92('0x49')][_0x8c92('0x50')]+'%'};return _0xedfa63;})});}_0x4b0f4c=_[_0x8c92('0x53')]({},_0x4b0f4c,_0x494090[_0x8c92('0x54')]);return _0x174977['getAgents'](_0x4b0f4c);}})['then'](function(_0x17c868){if(_0x17c868){_0x654674=_0x17c868['length'];if(!_0x494090[_0x8c92('0x49')][_0x8c92('0x67')](_0x8c92('0x68'))){_0x4b0f4c['limit']=qs[_0x8c92('0x31')](_0x494090['query']['limit']);_0x4b0f4c[_0x8c92('0x2f')]=qs[_0x8c92('0x2f')](_0x494090[_0x8c92('0x49')][_0x8c92('0x2f')]);}return _0x174977[_0x8c92('0xbf')](_0x4b0f4c);}})['then'](function(_0xbf0110){if(_0xbf0110){return _0xbf0110?{'count':_0x654674,'rows':_0xbf0110}:null;}})['then'](respondWithResult(_0x2d772f,null))[_0x8c92('0x56')](handleError(_0x2d772f,null));};
\ No newline at end of file
+var _0x0feb=['ecm','gateway','faxdetect','headerinfo','maxrate','minrate','modem','FAXOPT(','Set','Wait','/var/opt/motion2/server/files/attachments/fax-${CALLERID(num)}-${CUT(UNIQUEID,.,1)}-${CUT(UNIQUEID,.,2)}-${STRFTIME(,,%C%y%m%d%H%M%S)}-rx.tif,d','ReceiveFax','addAccountApplications','transaction','VoiceExtension','tech','updatedAt','TrunkId','ListId','findById','getMessages','FaxMessage','$gte','format','YYYY-MM-DD\x20HH:mm:ss','List','Contacts','attachments','server/files/attachments','basename','CheckAfterSend','isNil','from','fax','CmContact','List\x20not\x20found','Send\x20Fax\x20failed','out','filename','spread','ContactId','Messages','dataValues','SendFax','SendFaxRpc,\x20%s','addAgents','ids','emit','removeAgents','isArray','userFaxAccount:remove','getAgents','User','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./faxAccount.socket','register','client','http','then','info','FaxAccount,\x20%s,\x20%s','request\x20sent','FaxAccount,\x20%s,\x20%s,\x20%s','error','code','message','result','sendStatus','status','end','json','offset','undefined','count','Content-Range','apply','reject','update','destroy','get','FaxAccounts','UserProfileResource','stack','name','send','index','mandatoryDispositionPause','map','rawAttributes','fieldName','type','key','model','filters','intersection','query','fields','attributes','length','hasOwnProperty','nolimit','limit','order','sort','where','pick','merge','VIRTUAL','filter','options','FaxAccount','includeAll','include','findAll','rows','catch','show','params','Pause','find','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','describe','addDisposition','FaxAccountId','getDispositions','findOne','keys','Disposition','removeDispositions','addAnswer','CannedAnswer','removeAnswers','addInteraction','FaxInteraction','omit','getInteractions','fullname','internal','Tag','Tags','tag','addApplications','sequelize','FaxApplication','bulkCreate','findAndCountAll','priority','getApplications','context','from-voip-provider','localstationid','app','description','Fax\x20Extension','appdata','push'];(function(_0xc2554e,_0x3d9ddc){var _0x5a4d8c=function(_0x5acd00){while(--_0x5acd00){_0xc2554e['push'](_0xc2554e['shift']());}};_0x5a4d8c(++_0x3d9ddc);}(_0x0feb,0xf3));var _0xb0fe=function(_0x2c7843,_0x32a073){_0x2c7843=_0x2c7843-0x0;var _0x196c0b=_0x0feb[_0x2c7843];return _0x196c0b;};'use strict';var emlformat=require(_0xb0fe('0x0'));var rimraf=require(_0xb0fe('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xb0fe('0x2'));var rp=require(_0xb0fe('0x3'));var moment=require(_0xb0fe('0x4'));var BPromise=require(_0xb0fe('0x5'));var Mustache=require(_0xb0fe('0x6'));var util=require(_0xb0fe('0x7'));var path=require(_0xb0fe('0x8'));var sox=require(_0xb0fe('0x9'));var csv=require(_0xb0fe('0xa'));var ejs=require(_0xb0fe('0xb'));var fs=require('fs');var fs_extra=require(_0xb0fe('0xc'));var _=require(_0xb0fe('0xd'));var squel=require(_0xb0fe('0xe'));var crypto=require(_0xb0fe('0xf'));var jsforce=require(_0xb0fe('0x10'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xb0fe('0x11'));var Redis=require(_0xb0fe('0x12'));var authService=require(_0xb0fe('0x13'));var qs=require(_0xb0fe('0x14'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xb0fe('0x15'));var logger=require('../../config/logger')(_0xb0fe('0x16'));var utils=require('../../config/utils');var config=require(_0xb0fe('0x17'));var licenseUtil=require(_0xb0fe('0x18'));var db=require(_0xb0fe('0x19'))['db'];config[_0xb0fe('0x1a')]=_[_0xb0fe('0x1b')](config[_0xb0fe('0x1a')],{'host':_0xb0fe('0x1c'),'port':0x18eb});var socket=require(_0xb0fe('0x1d'))(new Redis(config[_0xb0fe('0x1a')]));require(_0xb0fe('0x1e'))[_0xb0fe('0x1f')](socket);var jayson=require('jayson/promise');var client=jayson[_0xb0fe('0x20')][_0xb0fe('0x21')]({'port':0x232c});var client9002=jayson[_0xb0fe('0x20')]['http']({'port':0x232a});function respondWithRpcPromise(_0x37c206,_0x24e263,_0x4e8b58,_0x14d822){return new BPromise(function(_0x25f4ce,_0xceb7e0){var _0x385c69=_0x14d822||client;return _0x385c69['request'](_0x37c206,_0x4e8b58)[_0xb0fe('0x22')](function(_0x4aef4f){logger[_0xb0fe('0x23')](_0xb0fe('0x24'),_0x24e263,_0xb0fe('0x25'));logger['debug'](_0xb0fe('0x26'),_0x24e263,_0xb0fe('0x25'),JSON['stringify'](_0x4aef4f));if(_0x4aef4f[_0xb0fe('0x27')]){if(_0x4aef4f[_0xb0fe('0x27')][_0xb0fe('0x28')]===0x1f4){logger[_0xb0fe('0x27')](_0xb0fe('0x24'),_0x24e263,_0x4aef4f[_0xb0fe('0x27')][_0xb0fe('0x29')]);return _0xceb7e0(_0x4aef4f['error'][_0xb0fe('0x29')]);}logger[_0xb0fe('0x27')](_0xb0fe('0x24'),_0x24e263,_0x4aef4f[_0xb0fe('0x27')][_0xb0fe('0x29')]);return _0x25f4ce(_0x4aef4f[_0xb0fe('0x27')][_0xb0fe('0x29')]);}else{logger[_0xb0fe('0x23')](_0xb0fe('0x24'),_0x24e263,_0xb0fe('0x25'));_0x25f4ce(_0x4aef4f[_0xb0fe('0x2a')][_0xb0fe('0x29')]);}})['catch'](function(_0x381553){logger[_0xb0fe('0x27')](_0xb0fe('0x24'),_0x24e263,_0x381553);_0xceb7e0(_0x381553);});});}function respondWithStatusCode(_0x8c0f1f,_0x44abb6){_0x44abb6=_0x44abb6||0xcc;return function(_0x10a94b){if(_0x10a94b){return _0x8c0f1f[_0xb0fe('0x2b')](_0x44abb6);}return _0x8c0f1f[_0xb0fe('0x2c')](_0x44abb6)[_0xb0fe('0x2d')]();};}function respondWithResult(_0x1f00a8,_0x1bf997){_0x1bf997=_0x1bf997||0xc8;return function(_0x48b386){if(_0x48b386){return _0x1f00a8[_0xb0fe('0x2c')](_0x1bf997)[_0xb0fe('0x2e')](_0x48b386);}};}function respondWithFilteredResult(_0x5374ee,_0x35c56d){return function(_0x11187d){if(_0x11187d){var _0x2d1f24=typeof _0x35c56d[_0xb0fe('0x2f')]===_0xb0fe('0x30')&&typeof _0x35c56d['limit']===_0xb0fe('0x30');var _0x59ea7e=_0x11187d[_0xb0fe('0x31')];var _0xdfa74=_0x2d1f24?0x0:_0x35c56d['offset'];var _0x2ad867=_0x2d1f24?_0x11187d[_0xb0fe('0x31')]:_0x35c56d[_0xb0fe('0x2f')]+_0x35c56d['limit'];var _0x1a82eb;if(_0x2ad867>=_0x59ea7e){_0x2ad867=_0x59ea7e;_0x1a82eb=0xc8;}else{_0x1a82eb=0xce;}_0x5374ee[_0xb0fe('0x2c')](_0x1a82eb);return _0x5374ee['set'](_0xb0fe('0x32'),_0xdfa74+'-'+_0x2ad867+'/'+_0x59ea7e)[_0xb0fe('0x2e')](_0x11187d);}return null;};}function patchUpdates(_0x364c4d){return function(_0x3c51be){try{jsonpatch[_0xb0fe('0x33')](_0x3c51be,_0x364c4d,!![]);}catch(_0x1a96c8){return BPromise[_0xb0fe('0x34')](_0x1a96c8);}return _0x3c51be['save']();};}function saveUpdates(_0x433eb9,_0x1713e5){return function(_0x54b33f){if(_0x54b33f){return _0x54b33f[_0xb0fe('0x35')](_0x433eb9)['then'](function(_0x203cef){return _0x203cef;});}return null;};}function removeEntity(_0x22c464,_0x26adf4){return function(_0x261f70){if(_0x261f70){return _0x261f70[_0xb0fe('0x36')]()[_0xb0fe('0x22')](function(){var _0xb56351=_0x261f70[_0xb0fe('0x37')]({'plain':!![]});var _0xb25a8d=_0xb0fe('0x38');return db[_0xb0fe('0x39')][_0xb0fe('0x36')]({'where':{'type':_0xb25a8d,'resourceId':_0xb56351['id']}})[_0xb0fe('0x22')](function(){return _0x261f70;});})[_0xb0fe('0x22')](function(){_0x22c464[_0xb0fe('0x2c')](0xcc)[_0xb0fe('0x2d')]();});}};}function handleEntityNotFound(_0x1a9126,_0x11d43c){return function(_0x3c972e){if(!_0x3c972e){_0x1a9126[_0xb0fe('0x2b')](0x194);}return _0x3c972e;};}function handleError(_0x2fc79d,_0x54fd6f){_0x54fd6f=_0x54fd6f||0x1f4;return function(_0x398589){logger[_0xb0fe('0x27')](_0x398589[_0xb0fe('0x3a')]);if(_0x398589[_0xb0fe('0x3b')]){delete _0x398589[_0xb0fe('0x3b')];}_0x2fc79d[_0xb0fe('0x2c')](_0x54fd6f)[_0xb0fe('0x3c')](_0x398589);};}exports[_0xb0fe('0x3d')]=function(_0x5e3260,_0x46f1d9){var _0x26008e={'include':[{'model':db['Pause'],'as':_0xb0fe('0x3e')}]},_0x4a8914={},_0x3475ba={'count':0x0,'rows':[]};var _0x186580=_[_0xb0fe('0x3f')](db['FaxAccount'][_0xb0fe('0x40')],function(_0x36cc9b){return{'name':_0x36cc9b[_0xb0fe('0x41')],'type':_0x36cc9b[_0xb0fe('0x42')][_0xb0fe('0x43')]};});_0x4a8914[_0xb0fe('0x44')]=_['map'](_0x186580,_0xb0fe('0x3b'));_0x4a8914['query']=_['keys'](_0x5e3260['query']);_0x4a8914[_0xb0fe('0x45')]=_[_0xb0fe('0x46')](_0x4a8914[_0xb0fe('0x44')],_0x4a8914[_0xb0fe('0x47')]);_0x26008e['attributes']=_['intersection'](_0x4a8914['model'],qs[_0xb0fe('0x48')](_0x5e3260[_0xb0fe('0x47')][_0xb0fe('0x48')]));_0x26008e[_0xb0fe('0x49')]=_0x26008e[_0xb0fe('0x49')][_0xb0fe('0x4a')]?_0x26008e[_0xb0fe('0x49')]:_0x4a8914[_0xb0fe('0x44')];if(!_0x5e3260[_0xb0fe('0x47')][_0xb0fe('0x4b')](_0xb0fe('0x4c'))){_0x26008e[_0xb0fe('0x4d')]=qs[_0xb0fe('0x4d')](_0x5e3260[_0xb0fe('0x47')][_0xb0fe('0x4d')]);_0x26008e['offset']=qs['offset'](_0x5e3260[_0xb0fe('0x47')][_0xb0fe('0x2f')]);}_0x26008e[_0xb0fe('0x4e')]=qs[_0xb0fe('0x4f')](_0x5e3260['query'][_0xb0fe('0x4f')]);_0x26008e[_0xb0fe('0x50')]=qs['filters'](_[_0xb0fe('0x51')](_0x5e3260[_0xb0fe('0x47')],_0x4a8914[_0xb0fe('0x45')]),_0x186580);if(_0x5e3260[_0xb0fe('0x47')]['filter']){_0x26008e[_0xb0fe('0x50')]=_[_0xb0fe('0x52')](_0x26008e[_0xb0fe('0x50')],{'$or':_[_0xb0fe('0x3f')](_0x186580,function(_0x10d734){if(_0x10d734[_0xb0fe('0x42')]!==_0xb0fe('0x53')){var _0x51bc86={};_0x51bc86[_0x10d734[_0xb0fe('0x3b')]]={'$like':'%'+_0x5e3260[_0xb0fe('0x47')][_0xb0fe('0x54')]+'%'};return _0x51bc86;}})});}_0x26008e=_['merge']({},_0x26008e,_0x5e3260[_0xb0fe('0x55')]);var _0xe9d3e7={'where':_0x26008e[_0xb0fe('0x50')]};return db[_0xb0fe('0x56')]['count'](_0xe9d3e7)['then'](function(_0x49cd73){_0x3475ba['count']=_0x49cd73;if(_0x5e3260['query'][_0xb0fe('0x57')]){_0x26008e[_0xb0fe('0x58')]=[{'all':!![]}];}return db[_0xb0fe('0x56')][_0xb0fe('0x59')](_0x26008e);})[_0xb0fe('0x22')](function(_0x47f02d){_0x3475ba[_0xb0fe('0x5a')]=_0x47f02d;return _0x3475ba;})['then'](respondWithFilteredResult(_0x46f1d9,_0x26008e))[_0xb0fe('0x5b')](handleError(_0x46f1d9,null));};exports[_0xb0fe('0x5c')]=function(_0x3d3454,_0x5f4600){var _0x119df3={'raw':![],'where':{'id':_0x3d3454[_0xb0fe('0x5d')]['id']},'include':[{'model':db[_0xb0fe('0x5e')],'as':_0xb0fe('0x3e')}]},_0x244f7f={};_0x244f7f[_0xb0fe('0x44')]=_['keys'](db[_0xb0fe('0x56')][_0xb0fe('0x40')]);_0x244f7f[_0xb0fe('0x47')]=_['keys'](_0x3d3454[_0xb0fe('0x47')]);_0x244f7f[_0xb0fe('0x45')]=_[_0xb0fe('0x46')](_0x244f7f[_0xb0fe('0x44')],_0x244f7f['query']);_0x119df3['attributes']=_['intersection'](_0x244f7f['model'],qs[_0xb0fe('0x48')](_0x3d3454[_0xb0fe('0x47')][_0xb0fe('0x48')]));_0x119df3[_0xb0fe('0x49')]=_0x119df3[_0xb0fe('0x49')][_0xb0fe('0x4a')]?_0x119df3[_0xb0fe('0x49')]:_0x244f7f['model'];if(_0x3d3454[_0xb0fe('0x47')][_0xb0fe('0x57')]){_0x119df3[_0xb0fe('0x58')]=[{'all':!![]}];}_0x119df3=_[_0xb0fe('0x52')]({},_0x119df3,_0x3d3454[_0xb0fe('0x55')]);return db['FaxAccount'][_0xb0fe('0x5f')](_0x119df3)[_0xb0fe('0x22')](handleEntityNotFound(_0x5f4600,null))[_0xb0fe('0x22')](respondWithResult(_0x5f4600,null))[_0xb0fe('0x5b')](handleError(_0x5f4600,null));};exports[_0xb0fe('0x60')]=function(_0x21d845,_0x38f3ea){return db[_0xb0fe('0x56')][_0xb0fe('0x60')](_0x21d845[_0xb0fe('0x61')],{})[_0xb0fe('0x22')](function(_0x520743){var _0x1feb22=_0x21d845['user'][_0xb0fe('0x37')]({'plain':!![]});if(!_0x1feb22)throw new Error(_0xb0fe('0x62'));if(_0x1feb22[_0xb0fe('0x63')]===_0xb0fe('0x64')){var _0x1405be=_0x520743[_0xb0fe('0x37')]({'plain':!![]});var _0x240a9a=_0xb0fe('0x38');return db['UserProfileSection'][_0xb0fe('0x5f')]({'where':{'name':_0x240a9a,'userProfileId':_0x1feb22['userProfileId']},'raw':!![]})[_0xb0fe('0x22')](function(_0x49cfb8){if(_0x49cfb8&&_0x49cfb8['autoAssociation']===0x0){return db[_0xb0fe('0x39')][_0xb0fe('0x60')]({'name':_0x1405be[_0xb0fe('0x3b')],'resourceId':_0x1405be['id'],'type':_0x49cfb8[_0xb0fe('0x3b')],'sectionId':_0x49cfb8['id']},{})['then'](function(){return _0x520743;});}else{return _0x520743;}})[_0xb0fe('0x5b')](function(_0x3df793){logger['error'](_0xb0fe('0x65'),_0x3df793);throw _0x3df793;});}return _0x520743;})[_0xb0fe('0x22')](respondWithResult(_0x38f3ea,0xc9))[_0xb0fe('0x5b')](handleError(_0x38f3ea,null));};exports['update']=function(_0x55a984,_0x1de21c){if(_0x55a984[_0xb0fe('0x61')]['id']){delete _0x55a984[_0xb0fe('0x61')]['id'];}return db['FaxAccount'][_0xb0fe('0x5f')]({'where':{'id':_0x55a984['params']['id']},'include':[{'model':db[_0xb0fe('0x5e')],'as':'mandatoryDispositionPause'}]})[_0xb0fe('0x22')](handleEntityNotFound(_0x1de21c,null))[_0xb0fe('0x22')](saveUpdates(_0x55a984[_0xb0fe('0x61')],null))[_0xb0fe('0x22')](respondWithResult(_0x1de21c,null))[_0xb0fe('0x5b')](handleError(_0x1de21c,null));};exports[_0xb0fe('0x36')]=function(_0x7124bb,_0x5a9afa){return db['FaxAccount'][_0xb0fe('0x5f')]({'where':{'id':_0x7124bb[_0xb0fe('0x5d')]['id']}})[_0xb0fe('0x22')](handleEntityNotFound(_0x5a9afa,null))[_0xb0fe('0x22')](removeEntity(_0x5a9afa,null))[_0xb0fe('0x5b')](handleError(_0x5a9afa,null));};exports[_0xb0fe('0x66')]=function(_0x1d00e1,_0x4ad3d2){return db['FaxAccount'][_0xb0fe('0x66')]()[_0xb0fe('0x22')](respondWithResult(_0x4ad3d2,null))[_0xb0fe('0x5b')](handleError(_0x4ad3d2,null));};exports[_0xb0fe('0x67')]=function(_0x3c301e,_0x243963,_0x144a9a){if(_0x3c301e[_0xb0fe('0x61')]['id']){delete _0x3c301e[_0xb0fe('0x61')]['id'];}return db[_0xb0fe('0x56')]['find']({'where':{'id':_0x3c301e['params']['id']}})[_0xb0fe('0x22')](handleEntityNotFound(_0x243963,null))['then'](function(_0x45edd8){if(_0x45edd8){_0x3c301e[_0xb0fe('0x61')][_0xb0fe('0x68')]=_0x45edd8['id'];return db['Disposition'][_0xb0fe('0x60')](_0x3c301e[_0xb0fe('0x61')]);}})['then'](respondWithResult(_0x243963,null))['catch'](handleError(_0x243963,null));};exports[_0xb0fe('0x69')]=function(_0x6618b,_0x272cc7,_0x69c73){var _0x1c73d3={'raw':![],'where':{}};var _0x100822={};var _0x5e2d62={'count':0x0,'rows':[]};return db[_0xb0fe('0x56')][_0xb0fe('0x6a')]({'where':{'id':_0x6618b[_0xb0fe('0x5d')]['id']}})[_0xb0fe('0x22')](handleEntityNotFound(_0x272cc7,null))[_0xb0fe('0x22')](function(_0x1f820d){if(_0x1f820d){_0x100822['model']=_[_0xb0fe('0x6b')](db[_0xb0fe('0x6c')][_0xb0fe('0x40')]);_0x100822['query']=_[_0xb0fe('0x6b')](_0x6618b[_0xb0fe('0x47')]);_0x100822[_0xb0fe('0x45')]=_['intersection'](_0x100822['model'],_0x100822['query']);_0x1c73d3[_0xb0fe('0x49')]=_['intersection'](_0x100822['model'],qs['fields'](_0x6618b[_0xb0fe('0x47')][_0xb0fe('0x48')]));_0x1c73d3[_0xb0fe('0x49')]=_0x1c73d3['attributes'][_0xb0fe('0x4a')]?_0x1c73d3['attributes']:_0x100822[_0xb0fe('0x44')];if(!_0x6618b[_0xb0fe('0x47')][_0xb0fe('0x4b')](_0xb0fe('0x4c'))){_0x1c73d3[_0xb0fe('0x4d')]=qs[_0xb0fe('0x4d')](_0x6618b[_0xb0fe('0x47')]['limit']);_0x1c73d3[_0xb0fe('0x2f')]=qs[_0xb0fe('0x2f')](_0x6618b[_0xb0fe('0x47')]['offset']);}_0x1c73d3[_0xb0fe('0x4e')]=qs[_0xb0fe('0x4f')](_0x6618b[_0xb0fe('0x47')][_0xb0fe('0x4f')]);_0x1c73d3['where']=qs[_0xb0fe('0x45')](_[_0xb0fe('0x51')](_0x6618b['query'],_0x100822['filters']));_0x1c73d3['where'][_0xb0fe('0x68')]=_0x1f820d['id'];if(_0x6618b[_0xb0fe('0x47')]['filter']){_0x1c73d3[_0xb0fe('0x50')]=_[_0xb0fe('0x52')](_0x1c73d3[_0xb0fe('0x50')],{'$or':_['map'](_0x1c73d3['attributes'],function(_0x4a739a){var _0x3f983b={};_0x3f983b[_0x4a739a]={'$like':'%'+_0x6618b[_0xb0fe('0x47')][_0xb0fe('0x54')]+'%'};return _0x3f983b;})});}_0x1c73d3=_[_0xb0fe('0x52')]({},_0x1c73d3,_0x6618b[_0xb0fe('0x55')]);return db[_0xb0fe('0x6c')][_0xb0fe('0x31')]({'where':_0x1c73d3[_0xb0fe('0x50')]})[_0xb0fe('0x22')](function(_0x1e2ae3){_0x5e2d62[_0xb0fe('0x31')]=_0x1e2ae3;if(_0x6618b[_0xb0fe('0x47')][_0xb0fe('0x57')]){_0x1c73d3[_0xb0fe('0x58')]=[{'all':!![]}];}return db[_0xb0fe('0x6c')]['findAll'](_0x1c73d3);})[_0xb0fe('0x22')](function(_0x3c19a4){_0x5e2d62[_0xb0fe('0x5a')]=_0x3c19a4;return _0x5e2d62;});}})[_0xb0fe('0x22')](respondWithFilteredResult(_0x272cc7,_0x1c73d3))[_0xb0fe('0x5b')](handleError(_0x272cc7,null));};exports[_0xb0fe('0x6d')]=function(_0x2821b3,_0x4e8bbe,_0x591e6b){return db[_0xb0fe('0x56')]['find']({'where':{'id':_0x2821b3[_0xb0fe('0x5d')]['id']}})['then'](handleEntityNotFound(_0x4e8bbe,null))[_0xb0fe('0x22')](function(_0x533fd4){if(_0x533fd4){return _0x533fd4['removeDispositions'](_0x2821b3['query']['ids']);}})[_0xb0fe('0x22')](respondWithStatusCode(_0x4e8bbe,null))[_0xb0fe('0x5b')](handleError(_0x4e8bbe,null));};exports[_0xb0fe('0x6e')]=function(_0x1e3327,_0x35824b,_0x1f4f08){if(_0x1e3327[_0xb0fe('0x61')]['id']){delete _0x1e3327['body']['id'];}return db['FaxAccount']['find']({'where':{'id':_0x1e3327['params']['id']}})[_0xb0fe('0x22')](handleEntityNotFound(_0x35824b,null))[_0xb0fe('0x22')](function(_0x6e3ede){if(_0x6e3ede){_0x1e3327['body'][_0xb0fe('0x68')]=_0x6e3ede['id'];return db['CannedAnswer'][_0xb0fe('0x60')](_0x1e3327[_0xb0fe('0x61')]);}})[_0xb0fe('0x22')](respondWithResult(_0x35824b,null))[_0xb0fe('0x5b')](handleError(_0x35824b,null));};exports['getAnswers']=function(_0x4c237d,_0x5ba976,_0x4ea112){var _0x43aae1={'raw':![],'where':{}};var _0x2a7aa7={};var _0x89a8ab={'count':0x0,'rows':[]};return db['FaxAccount'][_0xb0fe('0x6a')]({'where':{'id':_0x4c237d[_0xb0fe('0x5d')]['id']}})[_0xb0fe('0x22')](handleEntityNotFound(_0x5ba976,null))['then'](function(_0x74f000){if(_0x74f000){_0x2a7aa7[_0xb0fe('0x44')]=_['keys'](db['CannedAnswer'][_0xb0fe('0x40')]);_0x2a7aa7[_0xb0fe('0x47')]=_[_0xb0fe('0x6b')](_0x4c237d['query']);_0x2a7aa7['filters']=_[_0xb0fe('0x46')](_0x2a7aa7['model'],_0x2a7aa7[_0xb0fe('0x47')]);_0x43aae1[_0xb0fe('0x49')]=_[_0xb0fe('0x46')](_0x2a7aa7['model'],qs[_0xb0fe('0x48')](_0x4c237d[_0xb0fe('0x47')][_0xb0fe('0x48')]));_0x43aae1['attributes']=_0x43aae1[_0xb0fe('0x49')][_0xb0fe('0x4a')]?_0x43aae1['attributes']:_0x2a7aa7[_0xb0fe('0x44')];if(!_0x4c237d['query']['hasOwnProperty']('nolimit')){_0x43aae1['limit']=qs[_0xb0fe('0x4d')](_0x4c237d['query']['limit']);_0x43aae1[_0xb0fe('0x2f')]=qs[_0xb0fe('0x2f')](_0x4c237d[_0xb0fe('0x47')][_0xb0fe('0x2f')]);}_0x43aae1[_0xb0fe('0x4e')]=qs['sort'](_0x4c237d[_0xb0fe('0x47')][_0xb0fe('0x4f')]);_0x43aae1[_0xb0fe('0x50')]=qs[_0xb0fe('0x45')](_[_0xb0fe('0x51')](_0x4c237d[_0xb0fe('0x47')],_0x2a7aa7[_0xb0fe('0x45')]));_0x43aae1[_0xb0fe('0x50')][_0xb0fe('0x68')]=_0x74f000['id'];if(_0x4c237d[_0xb0fe('0x47')][_0xb0fe('0x54')]){_0x43aae1[_0xb0fe('0x50')]=_['merge'](_0x43aae1['where'],{'$or':_[_0xb0fe('0x3f')](_0x43aae1['attributes'],function(_0x23f4d0){var _0x278318={};_0x278318[_0x23f4d0]={'$like':'%'+_0x4c237d[_0xb0fe('0x47')][_0xb0fe('0x54')]+'%'};return _0x278318;})});}_0x43aae1=_[_0xb0fe('0x52')]({},_0x43aae1,_0x4c237d[_0xb0fe('0x55')]);return db[_0xb0fe('0x6f')][_0xb0fe('0x31')]({'where':_0x43aae1['where']})[_0xb0fe('0x22')](function(_0x5cf026){_0x89a8ab[_0xb0fe('0x31')]=_0x5cf026;if(_0x4c237d[_0xb0fe('0x47')][_0xb0fe('0x57')]){_0x43aae1[_0xb0fe('0x58')]=[{'all':!![]}];}return db['CannedAnswer']['findAll'](_0x43aae1);})[_0xb0fe('0x22')](function(_0x11624a){_0x89a8ab[_0xb0fe('0x5a')]=_0x11624a;return _0x89a8ab;});}})['then'](respondWithFilteredResult(_0x5ba976,_0x43aae1))[_0xb0fe('0x5b')](handleError(_0x5ba976,null));};exports[_0xb0fe('0x70')]=function(_0x27acc6,_0x521594,_0x1587a4){return db[_0xb0fe('0x56')][_0xb0fe('0x5f')]({'where':{'id':_0x27acc6['params']['id']}})[_0xb0fe('0x22')](handleEntityNotFound(_0x521594,null))[_0xb0fe('0x22')](function(_0x31f72f){if(_0x31f72f){return _0x31f72f['removeAnswers'](_0x27acc6[_0xb0fe('0x47')]['ids']);}})['then'](respondWithStatusCode(_0x521594,null))['catch'](handleError(_0x521594,null));};exports[_0xb0fe('0x71')]=function(_0x706c16,_0x142aec,_0x4c50e1){return db[_0xb0fe('0x72')][_0xb0fe('0x5f')]({'where':{'id':_0x706c16[_0xb0fe('0x5d')]['id']}})[_0xb0fe('0x22')](handleEntityNotFound(_0x142aec,null))['then'](function(_0x57bbbc){if(_0x57bbbc){return _0x57bbbc[_0xb0fe('0x71')](_0x706c16['body']['ids'],_[_0xb0fe('0x73')](_0x706c16['body'],['ids','id'])||{});}})[_0xb0fe('0x22')](respondWithResult(_0x142aec,null))['catch'](handleError(_0x142aec,null));};exports[_0xb0fe('0x74')]=function(_0x45f2f7,_0x4e411f,_0x246f54){var _0x2a958e={'raw':![],'where':{}};var _0x44054c={};var _0x4c656f={'count':0x0,'rows':[]};return db[_0xb0fe('0x56')][_0xb0fe('0x6a')]({'where':{'id':_0x45f2f7['params']['id']}})[_0xb0fe('0x22')](handleEntityNotFound(_0x4e411f,null))[_0xb0fe('0x22')](function(_0x25f3b1){if(_0x25f3b1){_0x44054c[_0xb0fe('0x44')]=_[_0xb0fe('0x6b')](db[_0xb0fe('0x72')][_0xb0fe('0x40')]);_0x44054c[_0xb0fe('0x47')]=_[_0xb0fe('0x6b')](_0x45f2f7[_0xb0fe('0x47')]);_0x44054c[_0xb0fe('0x45')]=_[_0xb0fe('0x46')](_0x44054c[_0xb0fe('0x44')],_0x44054c[_0xb0fe('0x47')]);_0x2a958e['attributes']=_[_0xb0fe('0x46')](_0x44054c['model'],qs['fields'](_0x45f2f7[_0xb0fe('0x47')][_0xb0fe('0x48')]));_0x2a958e[_0xb0fe('0x49')]=_0x2a958e[_0xb0fe('0x49')][_0xb0fe('0x4a')]?_0x2a958e[_0xb0fe('0x49')]:_0x44054c[_0xb0fe('0x44')];if(!_0x45f2f7[_0xb0fe('0x47')][_0xb0fe('0x4b')](_0xb0fe('0x4c'))){_0x2a958e['limit']=qs['limit'](_0x45f2f7[_0xb0fe('0x47')][_0xb0fe('0x4d')]);_0x2a958e[_0xb0fe('0x2f')]=qs['offset'](_0x45f2f7['query']['offset']);}_0x2a958e[_0xb0fe('0x4e')]=qs[_0xb0fe('0x4f')](_0x45f2f7['query']['sort']);_0x2a958e[_0xb0fe('0x50')]=qs[_0xb0fe('0x45')](_['pick'](_0x45f2f7[_0xb0fe('0x47')],_0x44054c[_0xb0fe('0x45')]));_0x2a958e['where'][_0xb0fe('0x68')]=_0x25f3b1['id'];if(_0x45f2f7[_0xb0fe('0x47')]['filter']){_0x2a958e['where']=_[_0xb0fe('0x52')](_0x2a958e[_0xb0fe('0x50')],{'$or':_[_0xb0fe('0x3f')](_0x2a958e[_0xb0fe('0x49')],function(_0x579a76){var _0x4bbb20={};_0x4bbb20[_0x579a76]={'$like':'%'+_0x45f2f7[_0xb0fe('0x47')][_0xb0fe('0x54')]+'%'};return _0x4bbb20;})});}_0x2a958e=_[_0xb0fe('0x52')]({},_0x2a958e,_0x45f2f7[_0xb0fe('0x55')]);return db[_0xb0fe('0x72')][_0xb0fe('0x31')]({'where':_0x2a958e[_0xb0fe('0x50')]})[_0xb0fe('0x22')](function(_0x149f88){_0x4c656f[_0xb0fe('0x31')]=_0x149f88;if(_0x45f2f7[_0xb0fe('0x47')][_0xb0fe('0x57')]){_0x2a958e[_0xb0fe('0x58')]=[{'model':db['CmContact'],'as':'Contact','required':![]},{'model':db['User'],'as':'Owner','attributes':['name',_0xb0fe('0x75'),_0xb0fe('0x76')],'required':![]},{'model':db[_0xb0fe('0x77')],'as':_0xb0fe('0x78'),'attributes':['id',_0xb0fe('0x3b'),'color'],'where':_0x45f2f7[_0xb0fe('0x47')][_0xb0fe('0x79')]?{'id':_0x45f2f7[_0xb0fe('0x47')]['tag']}:undefined,'required':_0x45f2f7['query'][_0xb0fe('0x79')]?!![]:![]}];}return db[_0xb0fe('0x72')][_0xb0fe('0x59')](_0x2a958e);})[_0xb0fe('0x22')](function(_0x520c57){_0x4c656f[_0xb0fe('0x5a')]=_0x520c57;return _0x4c656f;});}})['then'](respondWithFilteredResult(_0x4e411f,_0x2a958e))[_0xb0fe('0x5b')](handleError(_0x4e411f,null));};exports[_0xb0fe('0x7a')]=function(_0xf342e2,_0x2e6d4b,_0xa23d5){return db['FaxAccount']['findOne']({'where':{'id':_0xf342e2[_0xb0fe('0x5d')]['id']}})[_0xb0fe('0x22')](handleEntityNotFound(_0x2e6d4b,null))[_0xb0fe('0x22')](function(_0x3da90f){if(_0x3da90f){return db[_0xb0fe('0x7b')]['transaction'](function(_0x5e0615){return db[_0xb0fe('0x7c')][_0xb0fe('0x36')]({'where':{'FaxAccountId':_0xf342e2[_0xb0fe('0x5d')]['id']},'transaction':_0x5e0615})[_0xb0fe('0x22')](function(_0x66ba64){var _0x36b520=_['map'](_0xf342e2[_0xb0fe('0x61')],function(_0x398ebf){_0x398ebf[_0xb0fe('0x68')]=_0xf342e2['params']['id'];return _0x398ebf;});return db[_0xb0fe('0x7c')][_0xb0fe('0x7d')](_0x36b520,{'transaction':_0x5e0615});});})[_0xb0fe('0x22')](function(){return db['FaxApplication'][_0xb0fe('0x7e')]({'where':{'FaxAccountId':_0xf342e2[_0xb0fe('0x5d')]['id']},'order':_0xb0fe('0x7f')});});}})[_0xb0fe('0x22')](respondWithResult(_0x2e6d4b,null))['catch'](handleError(_0x2e6d4b,null));};exports[_0xb0fe('0x80')]=function(_0x2e3d19,_0x44b27f,_0x1e067b){var _0x170736={};var _0x21694f={};var _0x4b014c;var _0x55234b;return db['FaxAccount']['findOne']({'where':{'id':_0x2e3d19['params']['id']}})['then'](handleEntityNotFound(_0x44b27f,null))[_0xb0fe('0x22')](function(_0x5473cb){if(_0x5473cb){_0x4b014c=_0x5473cb;_0x21694f['model']=_['keys'](db['FaxApplication'][_0xb0fe('0x40')]);_0x21694f[_0xb0fe('0x47')]=_['keys'](_0x2e3d19[_0xb0fe('0x47')]);_0x21694f['filters']=_[_0xb0fe('0x46')](_0x21694f[_0xb0fe('0x44')],_0x21694f[_0xb0fe('0x47')]);_0x170736[_0xb0fe('0x49')]=_[_0xb0fe('0x46')](_0x21694f['model'],qs[_0xb0fe('0x48')](_0x2e3d19[_0xb0fe('0x47')][_0xb0fe('0x48')]));_0x170736[_0xb0fe('0x49')]=_0x170736['attributes']['length']?_0x170736[_0xb0fe('0x49')]:_0x21694f[_0xb0fe('0x44')];_0x170736[_0xb0fe('0x4e')]=qs['sort'](_0x2e3d19[_0xb0fe('0x47')][_0xb0fe('0x4f')]);_0x170736[_0xb0fe('0x50')]=qs[_0xb0fe('0x45')](_[_0xb0fe('0x51')](_0x2e3d19[_0xb0fe('0x47')],_0x21694f[_0xb0fe('0x45')]));if(_0x2e3d19[_0xb0fe('0x47')][_0xb0fe('0x54')]){_0x170736[_0xb0fe('0x50')]=_['merge'](_0x170736[_0xb0fe('0x50')],{'$or':_[_0xb0fe('0x3f')](_0x170736[_0xb0fe('0x49')],function(_0x1d998d){var _0x7e23a9={};_0x7e23a9[_0x1d998d]={'$like':'%'+_0x2e3d19[_0xb0fe('0x47')]['filter']+'%'};return _0x7e23a9;})});}_0x170736=_[_0xb0fe('0x52')]({},_0x170736,_0x2e3d19['options']);return _0x4b014c[_0xb0fe('0x80')](_0x170736);}})[_0xb0fe('0x22')](function(_0x16727b){if(_0x16727b){_0x55234b=_0x16727b[_0xb0fe('0x4a')];if(!_0x2e3d19[_0xb0fe('0x47')]['hasOwnProperty']('nolimit')){_0x170736['limit']=qs[_0xb0fe('0x4d')](_0x2e3d19['query'][_0xb0fe('0x4d')]);_0x170736['offset']=qs[_0xb0fe('0x2f')](_0x2e3d19[_0xb0fe('0x47')][_0xb0fe('0x2f')]);}return _0x4b014c['getApplications'](_0x170736);}})[_0xb0fe('0x22')](function(_0x3a9593){if(_0x3a9593){return _0x3a9593?{'count':_0x55234b,'rows':_0x3a9593}:null;}})[_0xb0fe('0x22')](respondWithResult(_0x44b27f,null))['catch'](handleError(_0x44b27f,null));};function Extension(_0x44414e,_0x3ed991,_0x1a12e7,_0x49ea9a){this[_0xb0fe('0x81')]=_0xb0fe('0x82');this['exten']=_0x44414e[_0xb0fe('0x83')];this[_0xb0fe('0x84')]=_0x49ea9a;this[_0xb0fe('0x42')]='system';this[_0xb0fe('0x85')]=_0xb0fe('0x86');this[_0xb0fe('0x68')]=_0x44414e['id'];this['priority']=_0x3ed991;this[_0xb0fe('0x87')]=_0x1a12e7;}function createExtensionsReciveFax(_0x1b1ca2){var _0x1c31e3=0x1;var _0x1e67ec=[];_0x1e67ec[_0xb0fe('0x88')](new Extension(_0x1b1ca2,_0x1c31e3,'','Answer'));_0x1c31e3+=0x1;_0x1e67ec[_0xb0fe('0x88')](new Extension(_0x1b1ca2,_0x1c31e3,'CDR(type)=inbound-fax','Set'));_0x1c31e3+=0x1;for(var _0x164a47 in _0x1b1ca2){if(_0x1b1ca2[_0xb0fe('0x4b')](_0x164a47)&&(_0x164a47===_0xb0fe('0x89')||_0x164a47===_0xb0fe('0x83')||_0x164a47===_0xb0fe('0x8a')||_0x164a47===_0xb0fe('0x8b')||_0x164a47===_0xb0fe('0x8c')||_0x164a47===_0xb0fe('0x8d')||_0x164a47===_0xb0fe('0x8e')||_0x164a47===_0xb0fe('0x8f')||_0x164a47==='t38timeout')){_0x1e67ec[_0xb0fe('0x88')](new Extension(_0x1b1ca2,_0x1c31e3,_0xb0fe('0x90')+_0x164a47+')='+_0x1b1ca2[_0x164a47],_0xb0fe('0x91')));_0x1c31e3+=0x1;}}_0x1e67ec['push'](new Extension(_0x1b1ca2,_0x1c31e3,'6',_0xb0fe('0x92')));_0x1c31e3+=0x1;_0x1e67ec[_0xb0fe('0x88')](new Extension(_0x1b1ca2,_0x1c31e3,_0xb0fe('0x93'),_0xb0fe('0x94')));_0x1c31e3=0x0;return _0x1e67ec;}exports[_0xb0fe('0x95')]=function(_0x49a709,_0x376ba9,_0xbbb7ea){var _0x581cde;return db[_0xb0fe('0x7b')][_0xb0fe('0x96')](function(_0x553afd){return db['FaxAccount'][_0xb0fe('0x60')](_0x49a709[_0xb0fe('0x61')],{'transaction':_0x553afd})[_0xb0fe('0x22')](function(_0x1cfdcf){_0x581cde=_0x1cfdcf[_0xb0fe('0x37')]({'plain':!![]});return db['VoiceExtension']['bulkCreate'](createExtensionsReciveFax(_0x581cde),{'transaction':_0x553afd});});})[_0xb0fe('0x22')](function(){return _0x581cde;})[_0xb0fe('0x22')](respondWithResult(_0x376ba9,null))[_0xb0fe('0x5b')](handleError(_0x376ba9,null));};exports['updateAccountApplications']=function(_0x5e2bb6,_0x50d23d,_0x518805){var _0x51ec37;return db[_0xb0fe('0x7b')][_0xb0fe('0x96')](function(_0x5c8890){return db[_0xb0fe('0x56')]['update'](_0x5e2bb6[_0xb0fe('0x61')],{'where':{'id':_0x5e2bb6['body']['id']},'transaction':_0x5c8890})[_0xb0fe('0x22')](function(_0x79887c){return db['VoiceExtension']['destroy']({'where':{'FaxAccountId':_0x5e2bb6[_0xb0fe('0x61')]['id']},'transaction':_0x5c8890})[_0xb0fe('0x22')](function(_0x3f41ac){return db[_0xb0fe('0x97')]['bulkCreate'](createExtensionsReciveFax(_[_0xb0fe('0x73')](_0x5e2bb6[_0xb0fe('0x61')],[_0xb0fe('0x98'),_0xb0fe('0x43'),'createdAt',_0xb0fe('0x99'),_0xb0fe('0x9a'),_0xb0fe('0x9b')])),{'transaction':_0x5c8890});});});})['then'](function(){return db[_0xb0fe('0x56')][_0xb0fe('0x9c')](_0x5e2bb6['body']['id']);})[_0xb0fe('0x22')](respondWithResult(_0x50d23d,null))[_0xb0fe('0x5b')](handleError(_0x50d23d,null));};exports[_0xb0fe('0x9d')]=function(_0x3f784c,_0x2d410a,_0x2f17e9){var _0x1d369b={'raw':!![],'where':{}};var _0x13ac1f={};var _0x150abf={'count':0x0,'rows':[]};return db[_0xb0fe('0x56')]['findOne']({'where':{'id':_0x3f784c[_0xb0fe('0x5d')]['id']}})[_0xb0fe('0x22')](handleEntityNotFound(_0x2d410a,null))[_0xb0fe('0x22')](function(_0x2798af){if(_0x2798af){_0x13ac1f['model']=_[_0xb0fe('0x6b')](db[_0xb0fe('0x9e')][_0xb0fe('0x40')]);_0x13ac1f['query']=_[_0xb0fe('0x6b')](_0x3f784c[_0xb0fe('0x47')]);_0x13ac1f[_0xb0fe('0x45')]=_[_0xb0fe('0x46')](_0x13ac1f[_0xb0fe('0x44')],_0x13ac1f[_0xb0fe('0x47')]);_0x1d369b[_0xb0fe('0x49')]=_[_0xb0fe('0x46')](_0x13ac1f[_0xb0fe('0x44')],qs[_0xb0fe('0x48')](_0x3f784c[_0xb0fe('0x47')][_0xb0fe('0x48')]));_0x1d369b[_0xb0fe('0x49')]=_0x1d369b['attributes'][_0xb0fe('0x4a')]?_0x1d369b[_0xb0fe('0x49')]:_0x13ac1f[_0xb0fe('0x44')];if(!_0x3f784c[_0xb0fe('0x47')]['hasOwnProperty'](_0xb0fe('0x4c'))){_0x1d369b[_0xb0fe('0x4d')]=qs[_0xb0fe('0x4d')](_0x3f784c[_0xb0fe('0x47')]['limit']);_0x1d369b[_0xb0fe('0x2f')]=qs[_0xb0fe('0x2f')](_0x3f784c[_0xb0fe('0x47')][_0xb0fe('0x2f')]);}_0x1d369b[_0xb0fe('0x4e')]=qs[_0xb0fe('0x4f')](_0x3f784c[_0xb0fe('0x47')][_0xb0fe('0x4f')]);_0x1d369b[_0xb0fe('0x50')]=qs[_0xb0fe('0x45')](_['pick'](_0x3f784c[_0xb0fe('0x47')],_0x13ac1f[_0xb0fe('0x45')]));_0x1d369b[_0xb0fe('0x50')][_0xb0fe('0x68')]=_0x2798af['id'];if(_0x3f784c[_0xb0fe('0x47')][_0xb0fe('0x54')]){_0x1d369b[_0xb0fe('0x50')]=_['merge'](_0x1d369b[_0xb0fe('0x50')],{'$or':_['map'](_0x1d369b[_0xb0fe('0x49')],function(_0x50548e){var _0x1b3d84={};_0x1b3d84[_0x50548e]={'$like':'%'+_0x3f784c[_0xb0fe('0x47')][_0xb0fe('0x54')]+'%'};return _0x1b3d84;})});}if(_0x3f784c[_0xb0fe('0x47')][_0xb0fe('0x9f')]){var _0xe89bca=_0x3f784c['query'][_0xb0fe('0x9f')]['split'](',');var _0x554fa2={};_0x554fa2[_0xe89bca[0x0]]={'$gte':moment(_0xe89bca[0x1])[_0xb0fe('0xa0')](_0xb0fe('0xa1'))};_0x1d369b[_0xb0fe('0x50')]=_['merge'](_0x1d369b[_0xb0fe('0x50')],_0x554fa2);}_0x1d369b=_[_0xb0fe('0x52')]({},_0x1d369b,_0x3f784c['options']);return db['FaxMessage'][_0xb0fe('0x31')]({'where':_0x1d369b[_0xb0fe('0x50')]})[_0xb0fe('0x22')](function(_0x4a9ce7){_0x150abf[_0xb0fe('0x31')]=_0x4a9ce7;if(_0x3f784c[_0xb0fe('0x47')][_0xb0fe('0x57')]){_0x1d369b[_0xb0fe('0x58')]=[{'all':!![]}];}return db[_0xb0fe('0x9e')][_0xb0fe('0x59')](_0x1d369b);})[_0xb0fe('0x22')](function(_0x3dd437){_0x150abf[_0xb0fe('0x5a')]=_0x3dd437;return _0x150abf;});}})[_0xb0fe('0x22')](respondWithFilteredResult(_0x2d410a,_0x1d369b))['catch'](handleError(_0x2d410a,null));};exports['send']=function(_0xd81912,_0x3961e4,_0x502434){var _0x1cee65,_0x14b5fc={},_0x209350;if(_0xd81912['body']['to']){_0x209350=_0xd81912[_0xb0fe('0x61')]['to'][0x0];}return db[_0xb0fe('0x56')][_0xb0fe('0x5f')]({'where':{'id':_0xd81912[_0xb0fe('0x5d')]['id']},'include':[{'model':db['CmList'],'as':_0xb0fe('0xa2'),'include':[{'model':db['CmContact'],'as':_0xb0fe('0xa3'),'where':{'fax':_0x209350},'limit':0x1,'order':[[_0xb0fe('0x99'),'DESC']]}]}]})[_0xb0fe('0x22')](handleEntityNotFound(_0x3961e4,null))[_0xb0fe('0x22')](function(_0x410f18){_0x1cee65=_0x410f18;if(_0xd81912[_0xb0fe('0x61')]['attachments']&&_0xd81912[_0xb0fe('0x61')]['attachments'][_0xb0fe('0x4a')]){for(var _0x58f8c9=0x0;_0x58f8c9<_0xd81912[_0xb0fe('0x61')][_0xb0fe('0xa4')][_0xb0fe('0x4a')];_0x58f8c9+=0x1){_0xd81912[_0xb0fe('0x61')][_0xb0fe('0xa4')][_0x58f8c9]={'filename':_0xd81912[_0xb0fe('0x61')][_0xb0fe('0xa4')][_0x58f8c9][_0xb0fe('0x3b')],'id':_0xd81912[_0xb0fe('0x61')]['attachments'][_0x58f8c9]['id'],'path':path['join'](config['root'],_0xb0fe('0xa5'),_0xd81912['body'][_0xb0fe('0xa4')][_0x58f8c9][_0xb0fe('0xa6')])};}}return respondWithRpcPromise(_0xb0fe('0xa7'),_0xb0fe('0xa7'),{'FaxAccountId':_[_0xb0fe('0xa8')](_0xd81912[_0xb0fe('0x5d')]['id'])?undefined:_0xd81912[_0xb0fe('0x5d')]['id'],'path':_[_0xb0fe('0xa8')](_0xd81912['body'][_0xb0fe('0xa4')][0x0]['path'])?undefined:_0xd81912[_0xb0fe('0x61')][_0xb0fe('0xa4')][0x0][_0xb0fe('0x8')],'fax':_['isNil'](_0xd81912[_0xb0fe('0x61')]['to'][0x0])?undefined:_0xd81912['body']['to'][0x0]},client9002);})[_0xb0fe('0x22')](function(){if(_0x1cee65){if(_['isNil'](_0xd81912['body']['from'])){_0xd81912[_0xb0fe('0x61')][_0xb0fe('0xa9')]=util[_0xb0fe('0xa0')]('\x22%s\x22\x20<%s>',_0x1cee65[_0xb0fe('0x3b')],_0x1cee65[_0xb0fe('0xaa')]);}if(_0x1cee65[_0xb0fe('0xa2')]){if(_0x1cee65[_0xb0fe('0xa2')][_0xb0fe('0xa3')][_0xb0fe('0x4a')]){return _0x1cee65[_0xb0fe('0xa2')][_0xb0fe('0xa3')][0x0];}else{return db[_0xb0fe('0xab')][_0xb0fe('0x60')](_['defaults'](_0xd81912[_0xb0fe('0x61')],{'firstName':_0xd81912[_0xb0fe('0x61')]['to'][0x0],'phone':_0xd81912[_0xb0fe('0x61')]['to'][0x0],'fax':_0xd81912[_0xb0fe('0x61')]['to'][0x0],'ListId':_0x1cee65[_0xb0fe('0x9b')]}));}}else{throw new Error(_0xb0fe('0xac'));}}else{throw new Error(_0xb0fe('0xad'));}})[_0xb0fe('0x22')](function(_0x3d0587){if(_0x3d0587){return db['FaxInteraction'][_0xb0fe('0x5f')]({'where':{'ContactId':_0x3d0587['id'],'closed':![],'FaxAccountId':_0x1cee65['id']}})[_0xb0fe('0x22')](function(_0x4a3312){if(_0x4a3312){return[_0x4a3312,![]];}return db['FaxInteraction'][_0xb0fe('0x60')]({'UserId':_0xd81912['user']['id'],'ContactId':_0x3d0587['id'],'FaxAccountId':_0x1cee65['id'],'fax':_0xd81912['body']['to'][0x0],'firstMsgDirection':_0xb0fe('0xae'),'Messages':[_['merge'](_0xd81912[_0xb0fe('0x61')],{'read':![],'body':_0xd81912['body'][_0xb0fe('0xa4')][0x0][_0xb0fe('0xaf')],'FaxAccountId':_0x1cee65['id'],'UserId':_0xd81912[_0xb0fe('0x64')]['id'],'ContactId':_0x3d0587['id'],'AttachmentId':_0xd81912[_0xb0fe('0x61')][_0xb0fe('0xa4')][0x0]['id']})]},{'include':[{'model':db['FaxMessage'],'as':'Messages'}]})[_0xb0fe('0x22')](function(_0x4d6fc8){return[_0x4d6fc8,!![]];});});}else{throw new Error('Contact\x20not\x20found');}})[_0xb0fe('0xb0')](function(_0x3d1864,_0x42fa26){if(_0x42fa26){return _0x3d1864;}return db[_0xb0fe('0x9e')][_0xb0fe('0x60')]({'direction':'out','read':![],'body':_0xd81912[_0xb0fe('0x61')][_0xb0fe('0xa4')][0x0][_0xb0fe('0xaf')],'FaxAccountId':_0x1cee65['id'],'FaxInteractionId':_0x3d1864['id'],'UserId':_0xd81912[_0xb0fe('0x64')]['id'],'ContactId':_0x3d1864[_0xb0fe('0xb1')],'AttachmentId':_0xd81912[_0xb0fe('0x61')][_0xb0fe('0xa4')][0x0]['id']})[_0xb0fe('0x22')](function(_0x4c7b25){_0x3d1864['dataValues'][_0xb0fe('0xb2')]=[];_0x3d1864[_0xb0fe('0xb3')][_0xb0fe('0xb2')]['push'](_0x4c7b25[_0xb0fe('0xb3')]);return _0x3d1864;});})[_0xb0fe('0x22')](function(_0x43e8fd){respondWithRpcPromise(_0xb0fe('0xb4'),_0xb0fe('0xb4'),{'FaxAccountId':_[_0xb0fe('0xa8')](_0xd81912[_0xb0fe('0x5d')]['id'])?undefined:_0xd81912[_0xb0fe('0x5d')]['id'],'path':_['isNil'](_0xd81912[_0xb0fe('0x61')][_0xb0fe('0xa4')][0x0][_0xb0fe('0x8')])?undefined:_0xd81912[_0xb0fe('0x61')][_0xb0fe('0xa4')][0x0][_0xb0fe('0x8')],'fax':_[_0xb0fe('0xa8')](_0xd81912[_0xb0fe('0x61')]['to'][0x0])?undefined:_0xd81912[_0xb0fe('0x61')]['to'][0x0],'AttachmentId':_0xd81912[_0xb0fe('0x61')]['attachments'][0x0]['id']},client9002)['then'](function(_0x2c97a1){logger[_0xb0fe('0x23')](_0xb0fe('0xb5'),_0x2c97a1);})[_0xb0fe('0x5b')](function(_0x2e16bf){logger[_0xb0fe('0x23')](_0xb0fe('0xb5'),_0x2e16bf);});return _0x43e8fd;})[_0xb0fe('0x22')](respondWithResult(_0x3961e4,null))['catch'](handleError(_0x3961e4,null));};exports[_0xb0fe('0xb6')]=function(_0x54e5cf,_0x5c1ba3,_0x31ca0d){return db[_0xb0fe('0x56')]['find']({'where':{'id':_0x54e5cf[_0xb0fe('0x5d')]['id']}})[_0xb0fe('0x22')](handleEntityNotFound(_0x5c1ba3,null))[_0xb0fe('0x22')](function(_0x38f9dc){if(_0x38f9dc){return _0x38f9dc[_0xb0fe('0xb6')](_0x54e5cf[_0xb0fe('0x61')][_0xb0fe('0xb7')],_[_0xb0fe('0x73')](_0x54e5cf[_0xb0fe('0x61')],[_0xb0fe('0xb7'),'id'])||{})[_0xb0fe('0xb0')](function(_0x563bd9){for(var _0x455aab=0x0;_0x455aab<_0x54e5cf[_0xb0fe('0x61')][_0xb0fe('0xb7')][_0xb0fe('0x4a')];_0x455aab+=0x1){socket[_0xb0fe('0xb8')]('userFaxAccount:save',{'UserId':Number(_0x54e5cf['body']['ids'][_0x455aab]),'FaxAccountId':Number(_0x54e5cf[_0xb0fe('0x5d')]['id'])});}return _0x563bd9;});}})[_0xb0fe('0x22')](respondWithResult(_0x5c1ba3,null))['catch'](handleError(_0x5c1ba3,null));};exports['removeAgents']=function(_0x5a9d3a,_0x56406c,_0x4e9290){return db[_0xb0fe('0x56')][_0xb0fe('0x5f')]({'where':{'id':_0x5a9d3a[_0xb0fe('0x5d')]['id']}})[_0xb0fe('0x22')](handleEntityNotFound(_0x56406c,null))[_0xb0fe('0x22')](function(_0x1b4ac7){if(_0x1b4ac7){return _0x1b4ac7[_0xb0fe('0xb9')](_0x5a9d3a[_0xb0fe('0x47')][_0xb0fe('0xb7')])[_0xb0fe('0x22')](function(){if(_[_0xb0fe('0xba')](_0x5a9d3a['query']['ids'])){for(var _0x50fba0=0x0;_0x50fba0<_0x5a9d3a[_0xb0fe('0x47')][_0xb0fe('0xb7')][_0xb0fe('0x4a')];_0x50fba0+=0x1){socket[_0xb0fe('0xb8')](_0xb0fe('0xbb'),{'UserId':Number(_0x5a9d3a[_0xb0fe('0x47')]['ids'][_0x50fba0]),'FaxAccountId':Number(_0x5a9d3a[_0xb0fe('0x5d')]['id'])});}}else{socket[_0xb0fe('0xb8')]('userFaxAccount:remove',{'UserId':Number(_0x5a9d3a[_0xb0fe('0x47')][_0xb0fe('0xb7')]),'FaxAccountId':Number(_0x5a9d3a[_0xb0fe('0x5d')]['id'])});}});}})[_0xb0fe('0x22')](respondWithStatusCode(_0x56406c,null))[_0xb0fe('0x5b')](handleError(_0x56406c,null));};exports[_0xb0fe('0xbc')]=function(_0x2230a8,_0x4299ed,_0x2a18be){var _0x1f7500={};var _0x22d737={};var _0x375b31;var _0x565cb6;return db[_0xb0fe('0x56')][_0xb0fe('0x6a')]({'where':{'id':_0x2230a8[_0xb0fe('0x5d')]['id']}})['then'](handleEntityNotFound(_0x4299ed,null))[_0xb0fe('0x22')](function(_0x29555d){if(_0x29555d){_0x375b31=_0x29555d;_0x22d737['model']=_[_0xb0fe('0x6b')](db[_0xb0fe('0xbd')][_0xb0fe('0x40')]);_0x22d737[_0xb0fe('0x47')]=_[_0xb0fe('0x6b')](_0x2230a8['query']);_0x22d737[_0xb0fe('0x45')]=_['intersection'](_0x22d737[_0xb0fe('0x44')],_0x22d737[_0xb0fe('0x47')]);_0x1f7500['attributes']=_[_0xb0fe('0x46')](_0x22d737[_0xb0fe('0x44')],qs[_0xb0fe('0x48')](_0x2230a8['query'][_0xb0fe('0x48')]));_0x1f7500['attributes']=_0x1f7500[_0xb0fe('0x49')][_0xb0fe('0x4a')]?_0x1f7500[_0xb0fe('0x49')]:_0x22d737[_0xb0fe('0x44')];_0x1f7500[_0xb0fe('0x4e')]=qs[_0xb0fe('0x4f')](_0x2230a8[_0xb0fe('0x47')][_0xb0fe('0x4f')]);_0x1f7500[_0xb0fe('0x50')]=qs[_0xb0fe('0x45')](_[_0xb0fe('0x51')](_0x2230a8[_0xb0fe('0x47')],_0x22d737[_0xb0fe('0x45')]));if(_0x2230a8[_0xb0fe('0x47')][_0xb0fe('0x54')]){_0x1f7500[_0xb0fe('0x50')]=_['merge'](_0x1f7500[_0xb0fe('0x50')],{'$or':_[_0xb0fe('0x3f')](_0x1f7500[_0xb0fe('0x49')],function(_0x29af46){var _0x2b0c61={};_0x2b0c61[_0x29af46]={'$like':'%'+_0x2230a8['query'][_0xb0fe('0x54')]+'%'};return _0x2b0c61;})});}_0x1f7500=_[_0xb0fe('0x52')]({},_0x1f7500,_0x2230a8[_0xb0fe('0x55')]);return _0x375b31[_0xb0fe('0xbc')](_0x1f7500);}})['then'](function(_0x50a70c){if(_0x50a70c){_0x565cb6=_0x50a70c[_0xb0fe('0x4a')];if(!_0x2230a8['query'][_0xb0fe('0x4b')]('nolimit')){_0x1f7500[_0xb0fe('0x4d')]=qs[_0xb0fe('0x4d')](_0x2230a8[_0xb0fe('0x47')][_0xb0fe('0x4d')]);_0x1f7500['offset']=qs['offset'](_0x2230a8[_0xb0fe('0x47')][_0xb0fe('0x2f')]);}return _0x375b31['getAgents'](_0x1f7500);}})[_0xb0fe('0x22')](function(_0x3d9d6a){if(_0x3d9d6a){return _0x3d9d6a?{'count':_0x565cb6,'rows':_0x3d9d6a}:null;}})['then'](respondWithResult(_0x4299ed,null))[_0xb0fe('0x5b')](handleError(_0x4299ed,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3563=['exports','events','FaxAccount','setMaxListeners','save','update','remove','emit','hasOwnProperty'];(function(_0xec53d3,_0x3dd596){var _0x3d9888=function(_0x3411b5){while(--_0x3411b5){_0xec53d3['push'](_0xec53d3['shift']());}};_0x3d9888(++_0x3dd596);}(_0x3563,0x17b));var _0x3356=function(_0x15c15c,_0x248598){_0x15c15c=_0x15c15c-0x0;var _0xf37a17=_0x3563[_0x15c15c];return _0xf37a17;};'use strict';var EventEmitter=require(_0x3356('0x0'));var FaxAccount=require('../../mysqldb')['db'][_0x3356('0x1')];var FaxAccountEvents=new EventEmitter();FaxAccountEvents[_0x3356('0x2')](0x0);var events={'afterCreate':_0x3356('0x3'),'afterUpdate':_0x3356('0x4'),'afterDestroy':_0x3356('0x5')};function emitEvent(_0x4c76a2){return function(_0x48b625,_0x41ab33,_0x5ceefc){FaxAccountEvents[_0x3356('0x6')](_0x4c76a2+':'+_0x48b625['id'],_0x48b625);FaxAccountEvents['emit'](_0x4c76a2,_0x48b625);_0x5ceefc(null);};}for(var e in events){if(events[_0x3356('0x7')](e)){var event=events[e];FaxAccount['hook'](e,emitEvent(event));}}module[_0x3356('0x8')]=FaxAccountEvents;
\ No newline at end of file
+var _0xc224=['../../mysqldb','FaxAccount','save','update','remove','emit','exports','events'];(function(_0x4f5f54,_0x51db7a){var _0x40ad0c=function(_0x10db02){while(--_0x10db02){_0x4f5f54['push'](_0x4f5f54['shift']());}};_0x40ad0c(++_0x51db7a);}(_0xc224,0x1af));var _0x4c22=function(_0x3e633f,_0x2b177d){_0x3e633f=_0x3e633f-0x0;var _0x2ab9c3=_0xc224[_0x3e633f];return _0x2ab9c3;};'use strict';var EventEmitter=require(_0x4c22('0x0'));var FaxAccount=require(_0x4c22('0x1'))['db'][_0x4c22('0x2')];var FaxAccountEvents=new EventEmitter();FaxAccountEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x4c22('0x3'),'afterUpdate':_0x4c22('0x4'),'afterDestroy':_0x4c22('0x5')};function emitEvent(_0x26bfaf){return function(_0x369842,_0x313fb9,_0x2bb39d){FaxAccountEvents[_0x4c22('0x6')](_0x26bfaf+':'+_0x369842['id'],_0x369842);FaxAccountEvents['emit'](_0x26bfaf,_0x369842);_0x2bb39d(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];FaxAccount['hook'](e,emitEvent(event));}}module[_0x4c22('0x7')]=FaxAccountEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcc26=['util','api','moment','request-promise','path','rimraf','../../config/environment','./faxAccount.attributes','exports','define','FaxAccount','fax_accounts','lodash'];(function(_0x3c09db,_0x6eaff5){var _0x598d5e=function(_0x106c35){while(--_0x106c35){_0x3c09db['push'](_0x3c09db['shift']());}};_0x598d5e(++_0x6eaff5);}(_0xcc26,0x15e));var _0x6cc2=function(_0x1347f8,_0x233feb){_0x1347f8=_0x1347f8-0x0;var _0x218368=_0xcc26[_0x1347f8];return _0x218368;};'use strict';var _=require(_0x6cc2('0x0'));var util=require(_0x6cc2('0x1'));var logger=require('../../config/logger')(_0x6cc2('0x2'));var moment=require(_0x6cc2('0x3'));var BPromise=require('bluebird');var rp=require(_0x6cc2('0x4'));var fs=require('fs');var path=require(_0x6cc2('0x5'));var rimraf=require(_0x6cc2('0x6'));var config=require(_0x6cc2('0x7'));var attributes=require(_0x6cc2('0x8'));module[_0x6cc2('0x9')]=function(_0x1462e7,_0x1e74c1){return _0x1462e7[_0x6cc2('0xa')](_0x6cc2('0xb'),attributes,{'tableName':_0x6cc2('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xe2aa=['FaxAccount','fax_accounts','lodash','util','../../config/logger','api','request-promise','path','../../config/environment','./faxAccount.attributes'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xe2aa,0x1ce));var _0xae2a=function(_0x17a404,_0x2cb1e5){_0x17a404=_0x17a404-0x0;var _0x2b175b=_0xe2aa[_0x17a404];return _0x2b175b;};'use strict';var _=require(_0xae2a('0x0'));var util=require(_0xae2a('0x1'));var logger=require(_0xae2a('0x2'))(_0xae2a('0x3'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0xae2a('0x4'));var fs=require('fs');var path=require(_0xae2a('0x5'));var rimraf=require('rimraf');var config=require(_0xae2a('0x6'));var attributes=require(_0xae2a('0x7'));module['exports']=function(_0x5c9da4,_0x5396e){return _0x5c9da4['define'](_0xae2a('0x8'),attributes,{'tableName':_0xae2a('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb3ba=['account','CmList','List','Contacts','DESC','FaxApplication','Applications','get','applications','list','priority','asc','length','contact','fax','FaxInteraction','create','Contact\x20not\x20found','close','unmanaged','*,*,*,*','created','AttachmentId','interaction','UserId','unshift','agent','name','Start','startRouting','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','defaults','redis','localhost','socket.io-emitter','register','request','then','info','FaxAccount,\x20%s,\x20%s','request\x20sent','debug','FaxAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','GetFaxAccount','FaxAccount','options','raw','where','attributes','limit','include','map','model','catch','NotifyFaxAccount','CmContact','describe','ValidationError','no\x20available\x20attributes','createdAt','updatedAt','difference','CompanyId','ListId','body','isNil','from','Sequelize','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','find'];(function(_0x37aec1,_0x2d1612){var _0xeb8dd4=function(_0x5e40bd){while(--_0x5e40bd){_0x37aec1['push'](_0x37aec1['shift']());}};_0xeb8dd4(++_0x2d1612);}(_0xb3ba,0x12c));var _0xab3b=function(_0x2ccf99,_0x5b7d1c){_0x2ccf99=_0x2ccf99-0x0;var _0x9b4b52=_0xb3ba[_0x2ccf99];return _0x9b4b52;};'use strict';var _=require(_0xab3b('0x0'));var util=require(_0xab3b('0x1'));var moment=require('moment');var BPromise=require(_0xab3b('0x2'));var rs=require(_0xab3b('0x3'));var fs=require('fs');var Redis=require(_0xab3b('0x4'));var db=require(_0xab3b('0x5'))['db'];var utils=require(_0xab3b('0x6'));var logger=require(_0xab3b('0x7'))(_0xab3b('0x8'));var config=require(_0xab3b('0x9'));var jayson=require(_0xab3b('0xa'));var client=jayson[_0xab3b('0xb')][_0xab3b('0xc')]({'port':0x232c});config['redis']=_[_0xab3b('0xd')](config[_0xab3b('0xe')],{'host':_0xab3b('0xf'),'port':0x18eb});var socket=require(_0xab3b('0x10'))(new Redis(config[_0xab3b('0xe')]));require('./faxAccount.socket')[_0xab3b('0x11')](socket);function respondWithRpcPromise(_0x5e1617,_0x2243aa,_0x580541){return new BPromise(function(_0x21758d,_0x895023){return client[_0xab3b('0x12')](_0x5e1617,_0x580541)[_0xab3b('0x13')](function(_0x42ac54){logger[_0xab3b('0x14')](_0xab3b('0x15'),_0x2243aa,_0xab3b('0x16'));logger[_0xab3b('0x17')](_0xab3b('0x18'),_0x2243aa,'request\x20sent',JSON[_0xab3b('0x19')](_0x42ac54));if(_0x42ac54[_0xab3b('0x1a')]){if(_0x42ac54['error'][_0xab3b('0x1b')]===0x1f4){logger[_0xab3b('0x1a')](_0xab3b('0x15'),_0x2243aa,_0x42ac54[_0xab3b('0x1a')][_0xab3b('0x1c')]);return _0x895023(_0x42ac54['error'][_0xab3b('0x1c')]);}logger['error'](_0xab3b('0x15'),_0x2243aa,_0x42ac54[_0xab3b('0x1a')]['message']);return _0x21758d(_0x42ac54[_0xab3b('0x1a')][_0xab3b('0x1c')]);}else{logger[_0xab3b('0x14')](_0xab3b('0x15'),_0x2243aa,_0xab3b('0x16'));_0x21758d(_0x42ac54['result'][_0xab3b('0x1c')]);}})['catch'](function(_0x4b05bd){logger['error']('FaxAccount,\x20%s,\x20%s',_0x2243aa,_0x4b05bd);_0x895023(_0x4b05bd);});});}exports[_0xab3b('0x1d')]=function(_0x2dac47){var _0xf98373=this;return new Promise(function(_0x1a0356,_0x232273){return db[_0xab3b('0x1e')]['findAll']({'raw':_0x2dac47[_0xab3b('0x1f')]?_0x2dac47[_0xab3b('0x1f')][_0xab3b('0x20')]===undefined?!![]:![]:!![],'where':_0x2dac47['options']?_0x2dac47['options'][_0xab3b('0x21')]||null:null,'attributes':_0x2dac47[_0xab3b('0x1f')]?_0x2dac47[_0xab3b('0x1f')][_0xab3b('0x22')]||null:null,'limit':_0x2dac47['options']?_0x2dac47[_0xab3b('0x1f')][_0xab3b('0x23')]||null:null,'include':_0x2dac47[_0xab3b('0x1f')]?_0x2dac47[_0xab3b('0x1f')][_0xab3b('0x24')]?_[_0xab3b('0x25')](_0x2dac47[_0xab3b('0x1f')][_0xab3b('0x24')],function(_0x1f2f79){return{'model':db[_0x1f2f79['model']],'as':_0x1f2f79['as'],'attributes':_0x1f2f79[_0xab3b('0x22')],'include':_0x1f2f79[_0xab3b('0x24')]?_[_0xab3b('0x25')](_0x1f2f79[_0xab3b('0x24')],function(_0x21a61e){return{'model':db[_0x21a61e[_0xab3b('0x26')]],'as':_0x21a61e['as'],'attributes':_0x21a61e[_0xab3b('0x22')],'include':_0x21a61e[_0xab3b('0x24')]?_[_0xab3b('0x25')](_0x21a61e[_0xab3b('0x24')],function(_0x2d58a7){return{'model':db[_0x2d58a7[_0xab3b('0x26')]],'as':_0x2d58a7['as'],'attributes':_0x2d58a7[_0xab3b('0x22')]};}):[]};}):[]};}):[]:[]})[_0xab3b('0x13')](function(_0x588a8b){logger[_0xab3b('0x14')]('GetFaxAccount',_0x2dac47);logger[_0xab3b('0x17')]('GetFaxAccount',_0x2dac47,JSON['stringify'](_0x588a8b));_0x1a0356(_0x588a8b);})[_0xab3b('0x27')](function(_0x5937f9){logger[_0xab3b('0x1a')](_0xab3b('0x1d'),_0x5937f9[_0xab3b('0x1c')],_0x2dac47);_0x232273(_0xf98373[_0xab3b('0x1a')](0x1f4,_0x5937f9['message']));});});};exports[_0xab3b('0x28')]=function(_0x4619fd,_0xaa67f9,_0x8c0d65){var _0x441800=this;return new Promise(function(_0x3a4454,_0x56acc3){var _0x558094={'body':_0x4619fd['body'],'channel':'fax'};var _0x3820d8=[];var _0x1ac32f=[];var _0x54f2ca={};return db[_0xab3b('0x29')][_0xab3b('0x2a')]()[_0xab3b('0x13')](function(_0x194e4f){if(!_0x194e4f){throw new db['Sequelize'][(_0xab3b('0x2b'))](_0xab3b('0x2c'));}_0x3820d8=_['difference'](_['keys'](_0x194e4f),[_0xab3b('0x2d'),_0xab3b('0x2e')]);_0x1ac32f=_[_0xab3b('0x2f')](_['keys'](_0x194e4f),[_0xab3b('0x2d'),_0xab3b('0x2e'),_0xab3b('0x30'),_0xab3b('0x31')]);if(_0x4619fd['body']['id']){delete _0x4619fd[_0xab3b('0x32')]['id'];}if(_[_0xab3b('0x33')](_0x4619fd['body'][_0xab3b('0x34')])){throw new db[(_0xab3b('0x35'))][(_0xab3b('0x2b'))](_0xab3b('0x36'));}if(_[_0xab3b('0x33')](_0x4619fd[_0xab3b('0x32')][_0xab3b('0x32')])||_0x4619fd['body'][_0xab3b('0x32')]===''){throw new db[(_0xab3b('0x35'))]['ValidationError'](_0xab3b('0x37'));}if(_[_0xab3b('0x33')](_0x4619fd[_0xab3b('0x32')][_0xab3b('0x38')])){throw new db[(_0xab3b('0x35'))][(_0xab3b('0x2b'))](_0xab3b('0x39')+_0x1ac32f);}if(!_['includes'](_0x1ac32f,_0x4619fd[_0xab3b('0x32')][_0xab3b('0x38')])){throw new db[(_0xab3b('0x35'))][(_0xab3b('0x2b'))](_0xab3b('0x3a')+_0x1ac32f);}_0x54f2ca[_0x4619fd[_0xab3b('0x32')][_0xab3b('0x38')]]=_0x4619fd['body'][_0xab3b('0x34')];})[_0xab3b('0x13')](function(){return db[_0xab3b('0x1e')][_0xab3b('0x3b')]({'where':{'id':_0x4619fd[_0xab3b('0x3c')]['id']},'include':[{'model':db[_0xab3b('0x3d')],'as':_0xab3b('0x3e'),'include':[{'model':db[_0xab3b('0x29')],'as':_0xab3b('0x3f'),'where':_0x54f2ca,'limit':0x1,'order':[[_0xab3b('0x2e'),_0xab3b('0x40')]]}]},{'model':db[_0xab3b('0x41')],'as':_0xab3b('0x42')}]});})[_0xab3b('0x13')](function(_0x24ee69){if(_0x24ee69&&_0x24ee69[_0xab3b('0x3e')]){var _0x21d0b6=_0x24ee69[_0xab3b('0x43')]({'plain':!![]});_0x558094[_0xab3b('0x3c')]=_0x21d0b6;_0x558094[_0xab3b('0x44')]=_0x21d0b6[_0xab3b('0x42')];_0x558094[_0xab3b('0x45')]=_0x21d0b6[_0xab3b('0x3e')];_0x558094[_0xab3b('0x44')]=_['orderBy'](_0x558094[_0xab3b('0x44')],[_0xab3b('0x46')],[_0xab3b('0x47')]);if(_0x558094[_0xab3b('0x3c')]['Applications']){delete _0x558094[_0xab3b('0x3c')][_0xab3b('0x42')];}if(_0x558094[_0xab3b('0x3c')]['List']&&_0x558094['account']['List'][_0xab3b('0x3f')][_0xab3b('0x48')]){return _0x558094[_0xab3b('0x3c')]['List']['Contacts'][0x0];}var _0x11ad30=_[_0xab3b('0xd')](_0x4619fd[_0xab3b('0x32')],{'firstName':_0x4619fd[_0xab3b('0x32')][_0xab3b('0x34')],'ListId':_0x21d0b6[_0xab3b('0x31')]});_0x11ad30[_0x4619fd[_0xab3b('0x32')][_0xab3b('0x38')]]=_0x4619fd[_0xab3b('0x32')]['from'];return db[_0xab3b('0x29')]['create'](_0x11ad30,{'fields':_0x3820d8,'raw':!![]});}})['then'](function(_0x533a34){_0x558094[_0xab3b('0x49')]=_0x533a34;if(_0x533a34){var _0x5dde57={'ContactId':_0x533a34['id'],'FaxAccountId':_0x4619fd[_0xab3b('0x3c')]['id'],'fax':_0x533a34[_0xab3b('0x4a')]};return db['FaxInteraction'][_0xab3b('0x3b')]({'where':{'ContactId':_0x533a34['id'],'closed':![],'FaxAccountId':_0x4619fd[_0xab3b('0x3c')]['id']}})['then'](function(_0x4657fb){if(_0x4657fb){return[_0x4657fb,![]];}return db[_0xab3b('0x4b')][_0xab3b('0x4c')](_0x5dde57)[_0xab3b('0x13')](function(_0x345cec){return[_0x345cec,!![]];});});}else{throw new Error(_0xab3b('0x4d'));}})['spread'](function(_0x36b47e,_0x4a6e9b){var _0x281c11=_0x36b47e[_0xab3b('0x43')]({'plain':!![]});if(_0x4a6e9b){if(_0x558094[_0xab3b('0x3c')]['autoclose']){_0x558094[_0xab3b('0x44')]['push']({'id':0x0,'priority':_0x558094[_0xab3b('0x44')][_0xab3b('0x48')]+0x1,'app':_0xab3b('0x4e'),'appdata':_0xab3b('0x4f'),'interval':_0xab3b('0x50')});}_0x281c11[_0xab3b('0x51')]=!![];}else{_0x281c11[_0xab3b('0x51')]=![];}_0x558094['interaction']=_0x281c11;return db['FaxMessage'][_0xab3b('0x4c')]({'body':_0x4619fd['body'][_0xab3b('0x32')],'FaxAccountId':_0x4619fd['account']['id'],'FaxInteractionId':_0x36b47e['id'],'direction':'in','ContactId':_0x36b47e['ContactId'],'AttachmentId':_0x4619fd[_0xab3b('0x32')][_0xab3b('0x52')]});})[_0xab3b('0x13')](function(_0x5939cf){_0x558094['message']=_0x5939cf;if(_0x558094[_0xab3b('0x53')][_0xab3b('0x54')]){return db['User']['find']({'attributes':['id','name'],'where':{'id':_0x558094[_0xab3b('0x53')]['UserId']}})[_0xab3b('0x13')](function(_0x35157e){if(_0x35157e){_0x558094['applications'][_0xab3b('0x55')]({'id':0x0,'priority':0x0,'app':_0xab3b('0x56'),'appdata':_0x35157e[_0xab3b('0x57')]+','+(_0x558094[_0xab3b('0x3c')]['waitForTheAssignedAgent']||0xa),'interval':_0xab3b('0x50')});}return respondWithRpcPromise(_0xab3b('0x58'),_0xab3b('0x59'),_0x558094);});}return respondWithRpcPromise(_0xab3b('0x58'),_0xab3b('0x59'),_0x558094);})['then'](function(_0x4d2340){_0x3a4454(_0x4d2340);})[_0xab3b('0x27')](function(_0x26451f){_0x56acc3(_0x441800[_0xab3b('0x1a')](0x1f4,_0x26451f[_0xab3b('0x1c')]));});});};
\ No newline at end of file
+var _0x68ae=['http','redis','defaults','socket.io-emitter','./faxAccount.socket','request','then','info','FaxAccount,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','catch','GetFaxAccount','FaxAccount','findAll','options','where','attributes','limit','include','model','map','fax','CmContact','describe','ValidationError','no\x20available\x20attributes','keys','updatedAt','ListId','body','isNil','from','Sequelize','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','account','CmList','Contacts','DESC','FaxApplication','Applications','List','get','applications','list','orderBy','priority','asc','length','create','contact','FaxInteraction','find','Contact\x20not\x20found','spread','close','unmanaged','*,*,*,*','created','interaction','FaxMessage','AttachmentId','UserId','User','name','agent','waitForTheAssignedAgent','Start','startRouting','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client'];(function(_0x11a208,_0x3359dd){var _0x50ee7a=function(_0x32fe4f){while(--_0x32fe4f){_0x11a208['push'](_0x11a208['shift']());}};_0x50ee7a(++_0x3359dd);}(_0x68ae,0x154));var _0xe68a=function(_0xf72fcc,_0x26331){_0xf72fcc=_0xf72fcc-0x0;var _0x1f8b4a=_0x68ae[_0xf72fcc];return _0x1f8b4a;};'use strict';var _=require(_0xe68a('0x0'));var util=require(_0xe68a('0x1'));var moment=require(_0xe68a('0x2'));var BPromise=require(_0xe68a('0x3'));var rs=require(_0xe68a('0x4'));var fs=require('fs');var Redis=require(_0xe68a('0x5'));var db=require(_0xe68a('0x6'))['db'];var utils=require(_0xe68a('0x7'));var logger=require(_0xe68a('0x8'))('rpc');var config=require(_0xe68a('0x9'));var jayson=require(_0xe68a('0xa'));var client=jayson[_0xe68a('0xb')][_0xe68a('0xc')]({'port':0x232c});config[_0xe68a('0xd')]=_[_0xe68a('0xe')](config[_0xe68a('0xd')],{'host':'localhost','port':0x18eb});var socket=require(_0xe68a('0xf'))(new Redis(config['redis']));require(_0xe68a('0x10'))['register'](socket);function respondWithRpcPromise(_0x194835,_0x1fe563,_0x130180){return new BPromise(function(_0x23f6a8,_0x3d8003){return client[_0xe68a('0x11')](_0x194835,_0x130180)[_0xe68a('0x12')](function(_0x5e4e81){logger[_0xe68a('0x13')](_0xe68a('0x14'),_0x1fe563,_0xe68a('0x15'));logger[_0xe68a('0x16')]('FaxAccount,\x20%s,\x20%s,\x20%s',_0x1fe563,'request\x20sent',JSON[_0xe68a('0x17')](_0x5e4e81));if(_0x5e4e81[_0xe68a('0x18')]){if(_0x5e4e81[_0xe68a('0x18')][_0xe68a('0x19')]===0x1f4){logger[_0xe68a('0x18')](_0xe68a('0x14'),_0x1fe563,_0x5e4e81[_0xe68a('0x18')][_0xe68a('0x1a')]);return _0x3d8003(_0x5e4e81['error'][_0xe68a('0x1a')]);}logger[_0xe68a('0x18')](_0xe68a('0x14'),_0x1fe563,_0x5e4e81[_0xe68a('0x18')]['message']);return _0x23f6a8(_0x5e4e81['error']['message']);}else{logger[_0xe68a('0x13')](_0xe68a('0x14'),_0x1fe563,_0xe68a('0x15'));_0x23f6a8(_0x5e4e81[_0xe68a('0x1b')][_0xe68a('0x1a')]);}})[_0xe68a('0x1c')](function(_0x5e09e6){logger[_0xe68a('0x18')](_0xe68a('0x14'),_0x1fe563,_0x5e09e6);_0x3d8003(_0x5e09e6);});});}exports[_0xe68a('0x1d')]=function(_0x541b45){var _0x222091=this;return new Promise(function(_0x141930,_0x4f6ce6){return db[_0xe68a('0x1e')][_0xe68a('0x1f')]({'raw':_0x541b45[_0xe68a('0x20')]?_0x541b45[_0xe68a('0x20')]['raw']===undefined?!![]:![]:!![],'where':_0x541b45['options']?_0x541b45['options'][_0xe68a('0x21')]||null:null,'attributes':_0x541b45[_0xe68a('0x20')]?_0x541b45[_0xe68a('0x20')][_0xe68a('0x22')]||null:null,'limit':_0x541b45[_0xe68a('0x20')]?_0x541b45[_0xe68a('0x20')][_0xe68a('0x23')]||null:null,'include':_0x541b45[_0xe68a('0x20')]?_0x541b45['options']['include']?_['map'](_0x541b45[_0xe68a('0x20')][_0xe68a('0x24')],function(_0x42e186){return{'model':db[_0x42e186[_0xe68a('0x25')]],'as':_0x42e186['as'],'attributes':_0x42e186[_0xe68a('0x22')],'include':_0x42e186[_0xe68a('0x24')]?_[_0xe68a('0x26')](_0x42e186[_0xe68a('0x24')],function(_0x30e61c){return{'model':db[_0x30e61c[_0xe68a('0x25')]],'as':_0x30e61c['as'],'attributes':_0x30e61c[_0xe68a('0x22')],'include':_0x30e61c['include']?_['map'](_0x30e61c[_0xe68a('0x24')],function(_0x4d4c40){return{'model':db[_0x4d4c40[_0xe68a('0x25')]],'as':_0x4d4c40['as'],'attributes':_0x4d4c40[_0xe68a('0x22')]};}):[]};}):[]};}):[]:[]})[_0xe68a('0x12')](function(_0x4be5a6){logger[_0xe68a('0x13')]('GetFaxAccount',_0x541b45);logger['debug'](_0xe68a('0x1d'),_0x541b45,JSON['stringify'](_0x4be5a6));_0x141930(_0x4be5a6);})[_0xe68a('0x1c')](function(_0x9c0b44){logger['error']('GetFaxAccount',_0x9c0b44[_0xe68a('0x1a')],_0x541b45);_0x4f6ce6(_0x222091[_0xe68a('0x18')](0x1f4,_0x9c0b44['message']));});});};exports['NotifyFaxAccount']=function(_0x51ab41,_0x6f3d1c,_0x4d7944){var _0x130230=this;return new Promise(function(_0x59cc48,_0x23993a){var _0x22da8d={'body':_0x51ab41['body'],'channel':_0xe68a('0x27')};var _0x2d1fa4=[];var _0x54833f=[];var _0x48b07b={};return db[_0xe68a('0x28')][_0xe68a('0x29')]()[_0xe68a('0x12')](function(_0x1023a2){if(!_0x1023a2){throw new db['Sequelize'][(_0xe68a('0x2a'))](_0xe68a('0x2b'));}_0x2d1fa4=_['difference'](_[_0xe68a('0x2c')](_0x1023a2),['createdAt','updatedAt']);_0x54833f=_['difference'](_['keys'](_0x1023a2),['createdAt',_0xe68a('0x2d'),'CompanyId',_0xe68a('0x2e')]);if(_0x51ab41[_0xe68a('0x2f')]['id']){delete _0x51ab41[_0xe68a('0x2f')]['id'];}if(_[_0xe68a('0x30')](_0x51ab41[_0xe68a('0x2f')][_0xe68a('0x31')])){throw new db[(_0xe68a('0x32'))][(_0xe68a('0x2a'))]('from\x20is\x20mandatory');}if(_['isNil'](_0x51ab41[_0xe68a('0x2f')][_0xe68a('0x2f')])||_0x51ab41[_0xe68a('0x2f')][_0xe68a('0x2f')]===''){throw new db[(_0xe68a('0x32'))][(_0xe68a('0x2a'))]('body\x20is\x20mandatory\x20and\x20not\x20empty');}if(_['isNil'](_0x51ab41[_0xe68a('0x2f')][_0xe68a('0x33')])){throw new db['Sequelize'][(_0xe68a('0x2a'))](_0xe68a('0x34')+_0x54833f);}if(!_[_0xe68a('0x35')](_0x54833f,_0x51ab41[_0xe68a('0x2f')][_0xe68a('0x33')])){throw new db[(_0xe68a('0x32'))][(_0xe68a('0x2a'))]('mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x54833f);}_0x48b07b[_0x51ab41['body'][_0xe68a('0x33')]]=_0x51ab41[_0xe68a('0x2f')][_0xe68a('0x31')];})['then'](function(){return db['FaxAccount']['find']({'where':{'id':_0x51ab41[_0xe68a('0x36')]['id']},'include':[{'model':db[_0xe68a('0x37')],'as':'List','include':[{'model':db[_0xe68a('0x28')],'as':_0xe68a('0x38'),'where':_0x48b07b,'limit':0x1,'order':[[_0xe68a('0x2d'),_0xe68a('0x39')]]}]},{'model':db[_0xe68a('0x3a')],'as':_0xe68a('0x3b')}]});})[_0xe68a('0x12')](function(_0x57ae21){if(_0x57ae21&&_0x57ae21[_0xe68a('0x3c')]){var _0x38301d=_0x57ae21[_0xe68a('0x3d')]({'plain':!![]});_0x22da8d[_0xe68a('0x36')]=_0x38301d;_0x22da8d[_0xe68a('0x3e')]=_0x38301d[_0xe68a('0x3b')];_0x22da8d[_0xe68a('0x3f')]=_0x38301d[_0xe68a('0x3c')];_0x22da8d[_0xe68a('0x3e')]=_[_0xe68a('0x40')](_0x22da8d[_0xe68a('0x3e')],[_0xe68a('0x41')],[_0xe68a('0x42')]);if(_0x22da8d[_0xe68a('0x36')]['Applications']){delete _0x22da8d['account'][_0xe68a('0x3b')];}if(_0x22da8d[_0xe68a('0x36')]['List']&&_0x22da8d['account'][_0xe68a('0x3c')][_0xe68a('0x38')][_0xe68a('0x43')]){return _0x22da8d[_0xe68a('0x36')]['List'][_0xe68a('0x38')][0x0];}var _0x3f7cb1=_['defaults'](_0x51ab41[_0xe68a('0x2f')],{'firstName':_0x51ab41[_0xe68a('0x2f')][_0xe68a('0x31')],'ListId':_0x38301d[_0xe68a('0x2e')]});_0x3f7cb1[_0x51ab41[_0xe68a('0x2f')]['mapKey']]=_0x51ab41[_0xe68a('0x2f')][_0xe68a('0x31')];return db[_0xe68a('0x28')][_0xe68a('0x44')](_0x3f7cb1,{'fields':_0x2d1fa4,'raw':!![]});}})[_0xe68a('0x12')](function(_0x264b32){_0x22da8d[_0xe68a('0x45')]=_0x264b32;if(_0x264b32){var _0x5ee31a={'ContactId':_0x264b32['id'],'FaxAccountId':_0x51ab41[_0xe68a('0x36')]['id'],'fax':_0x264b32[_0xe68a('0x27')]};return db[_0xe68a('0x46')][_0xe68a('0x47')]({'where':{'ContactId':_0x264b32['id'],'closed':![],'FaxAccountId':_0x51ab41[_0xe68a('0x36')]['id']}})[_0xe68a('0x12')](function(_0x55251e){if(_0x55251e){return[_0x55251e,![]];}return db['FaxInteraction'][_0xe68a('0x44')](_0x5ee31a)[_0xe68a('0x12')](function(_0x54f87f){return[_0x54f87f,!![]];});});}else{throw new Error(_0xe68a('0x48'));}})[_0xe68a('0x49')](function(_0x3be9f8,_0x5c4cc9){var _0x6326b2=_0x3be9f8['get']({'plain':!![]});if(_0x5c4cc9){if(_0x22da8d[_0xe68a('0x36')]['autoclose']){_0x22da8d['applications']['push']({'id':0x0,'priority':_0x22da8d[_0xe68a('0x3e')][_0xe68a('0x43')]+0x1,'app':_0xe68a('0x4a'),'appdata':_0xe68a('0x4b'),'interval':_0xe68a('0x4c')});}_0x6326b2[_0xe68a('0x4d')]=!![];}else{_0x6326b2[_0xe68a('0x4d')]=![];}_0x22da8d[_0xe68a('0x4e')]=_0x6326b2;return db[_0xe68a('0x4f')][_0xe68a('0x44')]({'body':_0x51ab41[_0xe68a('0x2f')][_0xe68a('0x2f')],'FaxAccountId':_0x51ab41[_0xe68a('0x36')]['id'],'FaxInteractionId':_0x3be9f8['id'],'direction':'in','ContactId':_0x3be9f8['ContactId'],'AttachmentId':_0x51ab41[_0xe68a('0x2f')][_0xe68a('0x50')]});})[_0xe68a('0x12')](function(_0x4effcf){_0x22da8d[_0xe68a('0x1a')]=_0x4effcf;if(_0x22da8d[_0xe68a('0x4e')][_0xe68a('0x51')]){return db[_0xe68a('0x52')]['find']({'attributes':['id',_0xe68a('0x53')],'where':{'id':_0x22da8d['interaction'][_0xe68a('0x51')]}})[_0xe68a('0x12')](function(_0x3e7a4f){if(_0x3e7a4f){_0x22da8d['applications']['unshift']({'id':0x0,'priority':0x0,'app':_0xe68a('0x54'),'appdata':_0x3e7a4f[_0xe68a('0x53')]+','+(_0x22da8d['account'][_0xe68a('0x55')]||0xa),'interval':_0xe68a('0x4c')});}return respondWithRpcPromise(_0xe68a('0x56'),_0xe68a('0x57'),_0x22da8d);});}return respondWithRpcPromise(_0xe68a('0x56'),'startRouting',_0x22da8d);})[_0xe68a('0x12')](function(_0x3a1be8){_0x59cc48(_0x3a1be8);})[_0xe68a('0x1c')](function(_0x1c09f5){_0x23993a(_0x130230[_0xe68a('0x18')](0x1f4,_0x1c09f5[_0xe68a('0x1a')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xee9d=['removeListener','length','faxAccount:','./faxAccount.events','save','remove','emit'];(function(_0x5f1234,_0x4971cd){var _0x586eab=function(_0xf6a0cc){while(--_0xf6a0cc){_0x5f1234['push'](_0x5f1234['shift']());}};_0x586eab(++_0x4971cd);}(_0xee9d,0x1a7));var _0xdee9=function(_0x2999d4,_0xc3af71){_0x2999d4=_0x2999d4-0x0;var _0x70dcce=_0xee9d[_0x2999d4];return _0x70dcce;};'use strict';var FaxAccountEvents=require(_0xdee9('0x0'));var events=[_0xdee9('0x1'),_0xdee9('0x2'),'update'];function createListener(_0x2cce53,_0xe5bb22){return function(_0xaf3680){_0xe5bb22[_0xdee9('0x3')](_0x2cce53,_0xaf3680);};}function removeListener(_0x3177a6,_0x37ca71){return function(){FaxAccountEvents[_0xdee9('0x4')](_0x3177a6,_0x37ca71);};}exports['register']=function(_0x4b98c8){for(var _0x2a9371=0x0,_0x39c851=events[_0xdee9('0x5')];_0x2a9371<_0x39c851;_0x2a9371++){var _0x203de8=events[_0x2a9371];var _0x3b2595=createListener(_0xdee9('0x6')+_0x203de8,_0x4b98c8);FaxAccountEvents['on'](_0x203de8,_0x3b2595);}};
\ No newline at end of file
+var _0x38be=['remove','update','emit','removeListener','length','./faxAccount.events','save'];(function(_0x2504a1,_0x3241b5){var _0x1f712c=function(_0x3dc56d){while(--_0x3dc56d){_0x2504a1['push'](_0x2504a1['shift']());}};_0x1f712c(++_0x3241b5);}(_0x38be,0x9f));var _0xe38b=function(_0x144cee,_0x34fd0d){_0x144cee=_0x144cee-0x0;var _0x1dadd8=_0x38be[_0x144cee];return _0x1dadd8;};'use strict';var FaxAccountEvents=require(_0xe38b('0x0'));var events=[_0xe38b('0x1'),_0xe38b('0x2'),_0xe38b('0x3')];function createListener(_0x3c53fb,_0x2c353c){return function(_0x2c08e7){_0x2c353c[_0xe38b('0x4')](_0x3c53fb,_0x2c08e7);};}function removeListener(_0x528036,_0xa0151b){return function(){FaxAccountEvents[_0xe38b('0x5')](_0x528036,_0xa0151b);};}exports['register']=function(_0x36e20c){for(var _0x42815f=0x0,_0x54b30=events[_0xe38b('0x6')];_0x42815f<_0x54b30;_0x42815f++){var _0x6a2f1f=events[_0x42815f];var _0x29b14e=createListener('faxAccount:'+_0x6a2f1f,_0x36e20c);FaxAccountEvents['on'](_0x6a2f1f,_0x29b14e);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./faxAccount.controller','get','index','/describe','show','/:id/dispositions','isAuthenticated','getDispositions','/:id/interactions','getInteractions','/:id/applications','/:id/messages','getMessages','/:id/users','getAgents','post','addDisposition','/:id/canned_answers','addAnswer','addInteraction','addApplications','addAccountApplications','/updateaccountapplications','/:id/send','send','addAgents','put','/:id','update','destroy','delete','removeDispositions','removeAnswers','removeAgents','exports','multer','util','path'];(function(_0x1dd7c7,_0x3da176){var _0x178278=function(_0x38bb0f){while(--_0x38bb0f){_0x1dd7c7['push'](_0x1dd7c7['shift']());}};_0x178278(++_0x3da176);}(_0xa9e0,0x123));var _0x0a9e=function(_0x102e37,_0x14a181){_0x102e37=_0x102e37-0x0;var _0x35a07c=_0xa9e0[_0x102e37];return _0x35a07c;};'use strict';var multer=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var path=require(_0x0a9e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x0a9e('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x0a9e('0x4'));var interaction=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));var controller=require(_0x0a9e('0x7'));router[_0x0a9e('0x8')]('/',auth['isAuthenticated'](),controller[_0x0a9e('0x9')]);router[_0x0a9e('0x8')](_0x0a9e('0xa'),auth['isAuthenticated'](),controller['describe']);router[_0x0a9e('0x8')]('/:id',auth['isAuthenticated'](),controller[_0x0a9e('0xb')]);router[_0x0a9e('0x8')](_0x0a9e('0xc'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0xe')]);router[_0x0a9e('0x8')]('/:id/canned_answers',auth['isAuthenticated'](),controller['getAnswers']);router['get'](_0x0a9e('0xf'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x10')]);router[_0x0a9e('0x8')](_0x0a9e('0x11'),auth[_0x0a9e('0xd')](),controller['getApplications']);router[_0x0a9e('0x8')](_0x0a9e('0x12'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x13')]);router[_0x0a9e('0x8')](_0x0a9e('0x14'),auth['isAuthenticated'](),controller[_0x0a9e('0x15')]);router['post']('/',auth[_0x0a9e('0xd')](),controller['create']);router[_0x0a9e('0x16')](_0x0a9e('0xc'),auth['isAuthenticated'](),controller[_0x0a9e('0x17')]);router['post'](_0x0a9e('0x18'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x19')]);router[_0x0a9e('0x16')](_0x0a9e('0xf'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x1a')]);router[_0x0a9e('0x16')](_0x0a9e('0x11'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x1b')]);router[_0x0a9e('0x16')]('/addaccountapplications',auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x1c')]);router['post'](_0x0a9e('0x1d'),auth['isAuthenticated'](),controller['updateAccountApplications']);router[_0x0a9e('0x16')](_0x0a9e('0x1e'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x1f')]);router['post'](_0x0a9e('0x14'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x20')]);router[_0x0a9e('0x21')](_0x0a9e('0x22'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x23')]);router['delete']('/:id',auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x24')]);router[_0x0a9e('0x25')](_0x0a9e('0xc'),auth['isAuthenticated'](),controller[_0x0a9e('0x26')]);router['delete'](_0x0a9e('0x18'),auth['isAuthenticated'](),controller[_0x0a9e('0x27')]);router[_0x0a9e('0x25')](_0x0a9e('0x14'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x28')]);module[_0x0a9e('0x29')]=router;
\ No newline at end of file
+var _0xa9e0=['Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./faxAccount.controller','get','index','/describe','show','/:id/dispositions','isAuthenticated','getDispositions','/:id/interactions','getInteractions','/:id/applications','/:id/messages','getMessages','/:id/users','getAgents','post','addDisposition','/:id/canned_answers','addAnswer','addInteraction','addApplications','addAccountApplications','/updateaccountapplications','/:id/send','send','addAgents','put','/:id','update','destroy','delete','removeDispositions','removeAnswers','removeAgents','exports','multer','util','path'];(function(_0x3a07d4,_0xa80b88){var _0x2c352=function(_0x27926b){while(--_0x27926b){_0x3a07d4['push'](_0x3a07d4['shift']());}};_0x2c352(++_0xa80b88);}(_0xa9e0,0x123));var _0x0a9e=function(_0x5c351c,_0x2046d8){_0x5c351c=_0x5c351c-0x0;var _0x26f3b3=_0xa9e0[_0x5c351c];return _0x26f3b3;};'use strict';var multer=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var path=require(_0x0a9e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x0a9e('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x0a9e('0x4'));var interaction=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));var controller=require(_0x0a9e('0x7'));router[_0x0a9e('0x8')]('/',auth['isAuthenticated'](),controller[_0x0a9e('0x9')]);router[_0x0a9e('0x8')](_0x0a9e('0xa'),auth['isAuthenticated'](),controller['describe']);router[_0x0a9e('0x8')]('/:id',auth['isAuthenticated'](),controller[_0x0a9e('0xb')]);router[_0x0a9e('0x8')](_0x0a9e('0xc'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0xe')]);router[_0x0a9e('0x8')]('/:id/canned_answers',auth['isAuthenticated'](),controller['getAnswers']);router['get'](_0x0a9e('0xf'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x10')]);router[_0x0a9e('0x8')](_0x0a9e('0x11'),auth[_0x0a9e('0xd')](),controller['getApplications']);router[_0x0a9e('0x8')](_0x0a9e('0x12'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x13')]);router[_0x0a9e('0x8')](_0x0a9e('0x14'),auth['isAuthenticated'](),controller[_0x0a9e('0x15')]);router['post']('/',auth[_0x0a9e('0xd')](),controller['create']);router[_0x0a9e('0x16')](_0x0a9e('0xc'),auth['isAuthenticated'](),controller[_0x0a9e('0x17')]);router['post'](_0x0a9e('0x18'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x19')]);router[_0x0a9e('0x16')](_0x0a9e('0xf'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x1a')]);router[_0x0a9e('0x16')](_0x0a9e('0x11'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x1b')]);router[_0x0a9e('0x16')]('/addaccountapplications',auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x1c')]);router['post'](_0x0a9e('0x1d'),auth['isAuthenticated'](),controller['updateAccountApplications']);router[_0x0a9e('0x16')](_0x0a9e('0x1e'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x1f')]);router['post'](_0x0a9e('0x14'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x20')]);router[_0x0a9e('0x21')](_0x0a9e('0x22'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x23')]);router['delete']('/:id',auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x24')]);router[_0x0a9e('0x25')](_0x0a9e('0xc'),auth['isAuthenticated'](),controller[_0x0a9e('0x26')]);router['delete'](_0x0a9e('0x18'),auth['isAuthenticated'](),controller[_0x0a9e('0x27')]);router[_0x0a9e('0x25')](_0x0a9e('0x14'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x28')]);module[_0x0a9e('0x29')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb382=['*,*,*,*','exports','INTEGER','STRING','noop','TEXT'];(function(_0x50007c,_0x1cbf11){var _0x5c1ec7=function(_0x52d038){while(--_0x52d038){_0x50007c['push'](_0x50007c['shift']());}};_0x5c1ec7(++_0x1cbf11);}(_0xb382,0x18d));var _0x2b38=function(_0x2e4412,_0x57cc23){_0x2e4412=_0x2e4412-0x0;var _0x2c8f10=_0xb382[_0x2e4412];return _0x2c8f10;};'use strict';var Sequelize=require('sequelize');module[_0x2b38('0x0')]={'priority':{'type':Sequelize[_0x2b38('0x1')],'allowNull':![]},'app':{'type':Sequelize[_0x2b38('0x2')],'allowNull':![],'defaultValue':_0x2b38('0x3')},'appdata':{'type':Sequelize[_0x2b38('0x4')]()},'description':{'type':Sequelize[_0x2b38('0x2')]},'interval':{'type':Sequelize['STRING'],'defaultValue':_0x2b38('0x5')}};
\ No newline at end of file
+var _0x60f6=['sequelize','exports','INTEGER','STRING','TEXT','*,*,*,*'];(function(_0x43d2b5,_0x5fa59b){var _0x3fd8c8=function(_0x2e1caa){while(--_0x2e1caa){_0x43d2b5['push'](_0x43d2b5['shift']());}};_0x3fd8c8(++_0x5fa59b);}(_0x60f6,0x1ec));var _0x660f=function(_0x55e44a,_0x55bcd4){_0x55e44a=_0x55e44a-0x0;var _0x424bf2=_0x60f6[_0x55e44a];return _0x424bf2;};'use strict';var Sequelize=require(_0x660f('0x0'));module[_0x660f('0x1')]={'priority':{'type':Sequelize[_0x660f('0x2')],'allowNull':![]},'app':{'type':Sequelize[_0x660f('0x3')],'allowNull':![],'defaultValue':'noop'},'appdata':{'type':Sequelize[_0x660f('0x4')]()},'description':{'type':Sequelize[_0x660f('0x3')]},'interval':{'type':Sequelize[_0x660f('0x3')],'defaultValue':_0x660f('0x5')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3d30=['merge','VIRTUAL','filter','FaxApplication','include','rows','params','includeAll','options','find','catch','create','body','eml-format','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','undefined','limit','count','offset','set','json','apply','reject','save','update','then','destroy','error','name','send','rawAttributes','type','key','model','map','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick'];(function(_0x535219,_0x39c1f9){var _0x106b56=function(_0x20e66e){while(--_0x20e66e){_0x535219['push'](_0x535219['shift']());}};_0x106b56(++_0x39c1f9);}(_0x3d30,0x184));var _0x03d3=function(_0x1b8ccb,_0x1f4fa5){_0x1b8ccb=_0x1b8ccb-0x0;var _0x5c191e=_0x3d30[_0x1b8ccb];return _0x5c191e;};'use strict';var emlformat=require(_0x03d3('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x03d3('0x1'));var jsonpatch=require(_0x03d3('0x2'));var rp=require(_0x03d3('0x3'));var moment=require('moment');var BPromise=require(_0x03d3('0x4'));var Mustache=require(_0x03d3('0x5'));var util=require(_0x03d3('0x6'));var path=require(_0x03d3('0x7'));var sox=require('sox');var csv=require(_0x03d3('0x8'));var ejs=require(_0x03d3('0x9'));var fs=require('fs');var fs_extra=require(_0x03d3('0xa'));var _=require('lodash');var squel=require(_0x03d3('0xb'));var crypto=require(_0x03d3('0xc'));var jsforce=require(_0x03d3('0xd'));var deskjs=require(_0x03d3('0xe'));var toCsv=require('to-csv');var querystring=require(_0x03d3('0xf'));var Papa=require(_0x03d3('0x10'));var Redis=require(_0x03d3('0x11'));var authService=require(_0x03d3('0x12'));var qs=require(_0x03d3('0x13'));var as=require(_0x03d3('0x14'));var hardwareService=require(_0x03d3('0x15'));var logger=require(_0x03d3('0x16'))(_0x03d3('0x17'));var utils=require('../../config/utils');var config=require(_0x03d3('0x18'));var licenseUtil=require(_0x03d3('0x19'));var db=require(_0x03d3('0x1a'))['db'];function respondWithStatusCode(_0x29e9d0,_0x2c9cd0){_0x2c9cd0=_0x2c9cd0||0xcc;return function(_0x30bea8){if(_0x30bea8){return _0x29e9d0[_0x03d3('0x1b')](_0x2c9cd0);}return _0x29e9d0[_0x03d3('0x1c')](_0x2c9cd0)[_0x03d3('0x1d')]();};}function respondWithResult(_0x41c9ea,_0x2806ec){_0x2806ec=_0x2806ec||0xc8;return function(_0x409d6d){if(_0x409d6d){return _0x41c9ea['status'](_0x2806ec)['json'](_0x409d6d);}};}function respondWithFilteredResult(_0x31f6dc,_0x124198){return function(_0x2ed787){if(_0x2ed787){var _0x32458b=typeof _0x124198['offset']===_0x03d3('0x1e')&&typeof _0x124198[_0x03d3('0x1f')]===_0x03d3('0x1e');var _0xd8eb8c=_0x2ed787[_0x03d3('0x20')];var _0x5d70ce=_0x32458b?0x0:_0x124198['offset'];var _0x10a3d3=_0x32458b?_0x2ed787[_0x03d3('0x20')]:_0x124198[_0x03d3('0x21')]+_0x124198[_0x03d3('0x1f')];var _0x36c4cf;if(_0x10a3d3>=_0xd8eb8c){_0x10a3d3=_0xd8eb8c;_0x36c4cf=0xc8;}else{_0x36c4cf=0xce;}_0x31f6dc['status'](_0x36c4cf);return _0x31f6dc[_0x03d3('0x22')]('Content-Range',_0x5d70ce+'-'+_0x10a3d3+'/'+_0xd8eb8c)[_0x03d3('0x23')](_0x2ed787);}return null;};}function patchUpdates(_0x11fe54){return function(_0x44f670){try{jsonpatch[_0x03d3('0x24')](_0x44f670,_0x11fe54,!![]);}catch(_0x486439){return BPromise[_0x03d3('0x25')](_0x486439);}return _0x44f670[_0x03d3('0x26')]();};}function saveUpdates(_0xac1e10,_0x1270e5){return function(_0x577c1c){if(_0x577c1c){return _0x577c1c[_0x03d3('0x27')](_0xac1e10)[_0x03d3('0x28')](function(_0x504db0){return _0x504db0;});}return null;};}function removeEntity(_0x4b9561,_0x2080ca){return function(_0x1c973c){if(_0x1c973c){return _0x1c973c[_0x03d3('0x29')]()['then'](function(){_0x4b9561[_0x03d3('0x1c')](0xcc)[_0x03d3('0x1d')]();});}};}function handleEntityNotFound(_0x333a49,_0x50ccc5){return function(_0x5b1a22){if(!_0x5b1a22){_0x333a49[_0x03d3('0x1b')](0x194);}return _0x5b1a22;};}function handleError(_0x1a543a,_0x511e57){_0x511e57=_0x511e57||0x1f4;return function(_0x4dfa68){logger[_0x03d3('0x2a')](_0x4dfa68['stack']);if(_0x4dfa68[_0x03d3('0x2b')]){delete _0x4dfa68[_0x03d3('0x2b')];}_0x1a543a[_0x03d3('0x1c')](_0x511e57)[_0x03d3('0x2c')](_0x4dfa68);};}exports['index']=function(_0x5e50af,_0x4bb7b2){var _0x585812={},_0x178f33={},_0x1ccbd5={'count':0x0,'rows':[]};var _0x434fc3=_['map'](db['FaxApplication'][_0x03d3('0x2d')],function(_0x5b9105){return{'name':_0x5b9105['fieldName'],'type':_0x5b9105[_0x03d3('0x2e')][_0x03d3('0x2f')]};});_0x178f33[_0x03d3('0x30')]=_[_0x03d3('0x31')](_0x434fc3,_0x03d3('0x2b'));_0x178f33[_0x03d3('0x32')]=_[_0x03d3('0x33')](_0x5e50af['query']);_0x178f33[_0x03d3('0x34')]=_[_0x03d3('0x35')](_0x178f33[_0x03d3('0x30')],_0x178f33['query']);_0x585812[_0x03d3('0x36')]=_['intersection'](_0x178f33[_0x03d3('0x30')],qs[_0x03d3('0x37')](_0x5e50af[_0x03d3('0x32')][_0x03d3('0x37')]));_0x585812['attributes']=_0x585812[_0x03d3('0x36')]['length']?_0x585812['attributes']:_0x178f33[_0x03d3('0x30')];if(!_0x5e50af['query'][_0x03d3('0x38')](_0x03d3('0x39'))){_0x585812[_0x03d3('0x1f')]=qs[_0x03d3('0x1f')](_0x5e50af[_0x03d3('0x32')]['limit']);_0x585812[_0x03d3('0x21')]=qs[_0x03d3('0x21')](_0x5e50af[_0x03d3('0x32')]['offset']);}_0x585812[_0x03d3('0x3a')]=qs[_0x03d3('0x3b')](_0x5e50af[_0x03d3('0x32')][_0x03d3('0x3b')]);_0x585812[_0x03d3('0x3c')]=qs['filters'](_[_0x03d3('0x3d')](_0x5e50af[_0x03d3('0x32')],_0x178f33[_0x03d3('0x34')]),_0x434fc3);if(_0x5e50af[_0x03d3('0x32')]['filter']){_0x585812[_0x03d3('0x3c')]=_[_0x03d3('0x3e')](_0x585812[_0x03d3('0x3c')],{'$or':_[_0x03d3('0x31')](_0x434fc3,function(_0x5eee78){if(_0x5eee78[_0x03d3('0x2e')]!==_0x03d3('0x3f')){var _0x355da3={};_0x355da3[_0x5eee78[_0x03d3('0x2b')]]={'$like':'%'+_0x5e50af['query'][_0x03d3('0x40')]+'%'};return _0x355da3;}})});}_0x585812=_[_0x03d3('0x3e')]({},_0x585812,_0x5e50af['options']);var _0x1e9858={'where':_0x585812[_0x03d3('0x3c')]};return db[_0x03d3('0x41')][_0x03d3('0x20')](_0x1e9858)['then'](function(_0x2a60ea){_0x1ccbd5[_0x03d3('0x20')]=_0x2a60ea;if(_0x5e50af[_0x03d3('0x32')]['includeAll']){_0x585812[_0x03d3('0x42')]=[{'all':!![]}];}return db[_0x03d3('0x41')]['findAll'](_0x585812);})[_0x03d3('0x28')](function(_0x3c0394){_0x1ccbd5[_0x03d3('0x43')]=_0x3c0394;return _0x1ccbd5;})['then'](respondWithFilteredResult(_0x4bb7b2,_0x585812))['catch'](handleError(_0x4bb7b2,null));};exports['show']=function(_0x16a6fc,_0x255fb5){var _0x2de90c={'raw':!![],'where':{'id':_0x16a6fc[_0x03d3('0x44')]['id']}},_0x5c824f={};_0x5c824f[_0x03d3('0x30')]=_[_0x03d3('0x33')](db['FaxApplication']['rawAttributes']);_0x5c824f[_0x03d3('0x32')]=_[_0x03d3('0x33')](_0x16a6fc[_0x03d3('0x32')]);_0x5c824f[_0x03d3('0x34')]=_['intersection'](_0x5c824f[_0x03d3('0x30')],_0x5c824f[_0x03d3('0x32')]);_0x2de90c['attributes']=_[_0x03d3('0x35')](_0x5c824f['model'],qs[_0x03d3('0x37')](_0x16a6fc[_0x03d3('0x32')]['fields']));_0x2de90c[_0x03d3('0x36')]=_0x2de90c[_0x03d3('0x36')]['length']?_0x2de90c[_0x03d3('0x36')]:_0x5c824f[_0x03d3('0x30')];if(_0x16a6fc[_0x03d3('0x32')][_0x03d3('0x45')]){_0x2de90c[_0x03d3('0x42')]=[{'all':!![]}];}_0x2de90c=_[_0x03d3('0x3e')]({},_0x2de90c,_0x16a6fc[_0x03d3('0x46')]);return db[_0x03d3('0x41')][_0x03d3('0x47')](_0x2de90c)[_0x03d3('0x28')](handleEntityNotFound(_0x255fb5,null))['then'](respondWithResult(_0x255fb5,null))[_0x03d3('0x48')](handleError(_0x255fb5,null));};exports[_0x03d3('0x49')]=function(_0x5cc475,_0x3192ea){return db[_0x03d3('0x41')][_0x03d3('0x49')](_0x5cc475['body'],{})[_0x03d3('0x28')](respondWithResult(_0x3192ea,0xc9))[_0x03d3('0x48')](handleError(_0x3192ea,null));};exports[_0x03d3('0x27')]=function(_0x3d3367,_0x514234){if(_0x3d3367['body']['id']){delete _0x3d3367[_0x03d3('0x4a')]['id'];}return db[_0x03d3('0x41')]['find']({'where':{'id':_0x3d3367[_0x03d3('0x44')]['id']}})[_0x03d3('0x28')](handleEntityNotFound(_0x514234,null))['then'](saveUpdates(_0x3d3367[_0x03d3('0x4a')],null))[_0x03d3('0x28')](respondWithResult(_0x514234,null))['catch'](handleError(_0x514234,null));};exports[_0x03d3('0x29')]=function(_0x3612c2,_0x177c18){return db[_0x03d3('0x41')][_0x03d3('0x47')]({'where':{'id':_0x3612c2[_0x03d3('0x44')]['id']}})[_0x03d3('0x28')](handleEntityNotFound(_0x177c18,null))[_0x03d3('0x28')](removeEntity(_0x177c18,null))[_0x03d3('0x48')](handleError(_0x177c18,null));};
\ No newline at end of file
+var _0xe846=['type','model','query','keys','filters','intersection','attributes','fields','length','order','sort','where','filter','merge','VIRTUAL','includeAll','findAll','rows','catch','params','include','options','find','create','body','update','eml-format','rimraf','fast-json-patch','moment','bluebird','mustache','util','path','sox','ejs','fs-extra','lodash','crypto','jsforce','desk.js','to-csv','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','status','json','undefined','count','offset','limit','Content-Range','reject','save','then','destroy','sendStatus','stack','name','send','index','map','FaxApplication','rawAttributes','fieldName'];(function(_0x263883,_0x16fab3){var _0x1c458f=function(_0x56c625){while(--_0x56c625){_0x263883['push'](_0x263883['shift']());}};_0x1c458f(++_0x16fab3);}(_0xe846,0x136));var _0x6e84=function(_0x39cf44,_0x5c062d){_0x39cf44=_0x39cf44-0x0;var _0x58f9c8=_0xe846[_0x39cf44];return _0x58f9c8;};'use strict';var emlformat=require(_0x6e84('0x0'));var rimraf=require(_0x6e84('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x6e84('0x2'));var rp=require('request-promise');var moment=require(_0x6e84('0x3'));var BPromise=require(_0x6e84('0x4'));var Mustache=require(_0x6e84('0x5'));var util=require(_0x6e84('0x6'));var path=require(_0x6e84('0x7'));var sox=require(_0x6e84('0x8'));var csv=require('to-csv');var ejs=require(_0x6e84('0x9'));var fs=require('fs');var fs_extra=require(_0x6e84('0xa'));var _=require(_0x6e84('0xb'));var squel=require('squel');var crypto=require(_0x6e84('0xc'));var jsforce=require(_0x6e84('0xd'));var deskjs=require(_0x6e84('0xe'));var toCsv=require(_0x6e84('0xf'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x6e84('0x10'));var authService=require(_0x6e84('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0x6e84('0x12'));var hardwareService=require(_0x6e84('0x13'));var logger=require(_0x6e84('0x14'))(_0x6e84('0x15'));var utils=require('../../config/utils');var config=require(_0x6e84('0x16'));var licenseUtil=require(_0x6e84('0x17'));var db=require(_0x6e84('0x18'))['db'];function respondWithStatusCode(_0x295b54,_0x6437ff){_0x6437ff=_0x6437ff||0xcc;return function(_0x4f0f47){if(_0x4f0f47){return _0x295b54['sendStatus'](_0x6437ff);}return _0x295b54[_0x6e84('0x19')](_0x6437ff)['end']();};}function respondWithResult(_0x10f32a,_0x1c5a7b){_0x1c5a7b=_0x1c5a7b||0xc8;return function(_0x50a74a){if(_0x50a74a){return _0x10f32a[_0x6e84('0x19')](_0x1c5a7b)[_0x6e84('0x1a')](_0x50a74a);}};}function respondWithFilteredResult(_0x5b7b95,_0x1c831c){return function(_0x58fe8f){if(_0x58fe8f){var _0x31d7af=typeof _0x1c831c['offset']===_0x6e84('0x1b')&&typeof _0x1c831c['limit']===_0x6e84('0x1b');var _0x2c89d8=_0x58fe8f[_0x6e84('0x1c')];var _0x2719f4=_0x31d7af?0x0:_0x1c831c[_0x6e84('0x1d')];var _0x4e83b5=_0x31d7af?_0x58fe8f['count']:_0x1c831c[_0x6e84('0x1d')]+_0x1c831c[_0x6e84('0x1e')];var _0x43bdee;if(_0x4e83b5>=_0x2c89d8){_0x4e83b5=_0x2c89d8;_0x43bdee=0xc8;}else{_0x43bdee=0xce;}_0x5b7b95[_0x6e84('0x19')](_0x43bdee);return _0x5b7b95['set'](_0x6e84('0x1f'),_0x2719f4+'-'+_0x4e83b5+'/'+_0x2c89d8)[_0x6e84('0x1a')](_0x58fe8f);}return null;};}function patchUpdates(_0x35b48b){return function(_0x5cbf6e){try{jsonpatch['apply'](_0x5cbf6e,_0x35b48b,!![]);}catch(_0x517a87){return BPromise[_0x6e84('0x20')](_0x517a87);}return _0x5cbf6e[_0x6e84('0x21')]();};}function saveUpdates(_0x4b450c,_0x2d0df5){return function(_0x48ffbc){if(_0x48ffbc){return _0x48ffbc['update'](_0x4b450c)[_0x6e84('0x22')](function(_0x2938cc){return _0x2938cc;});}return null;};}function removeEntity(_0xd09b80,_0x5881a9){return function(_0x16b7f2){if(_0x16b7f2){return _0x16b7f2[_0x6e84('0x23')]()[_0x6e84('0x22')](function(){_0xd09b80[_0x6e84('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x57cf8c,_0x56b356){return function(_0x40c8c8){if(!_0x40c8c8){_0x57cf8c[_0x6e84('0x24')](0x194);}return _0x40c8c8;};}function handleError(_0x4d8958,_0x2ecf0c){_0x2ecf0c=_0x2ecf0c||0x1f4;return function(_0x254c9d){logger['error'](_0x254c9d[_0x6e84('0x25')]);if(_0x254c9d['name']){delete _0x254c9d[_0x6e84('0x26')];}_0x4d8958[_0x6e84('0x19')](_0x2ecf0c)[_0x6e84('0x27')](_0x254c9d);};}exports[_0x6e84('0x28')]=function(_0x5b5d91,_0x55205d){var _0x4ff476={},_0x39de9c={},_0x449377={'count':0x0,'rows':[]};var _0x123f83=_[_0x6e84('0x29')](db[_0x6e84('0x2a')][_0x6e84('0x2b')],function(_0x13c580){return{'name':_0x13c580[_0x6e84('0x2c')],'type':_0x13c580[_0x6e84('0x2d')]['key']};});_0x39de9c[_0x6e84('0x2e')]=_['map'](_0x123f83,_0x6e84('0x26'));_0x39de9c[_0x6e84('0x2f')]=_[_0x6e84('0x30')](_0x5b5d91[_0x6e84('0x2f')]);_0x39de9c[_0x6e84('0x31')]=_[_0x6e84('0x32')](_0x39de9c['model'],_0x39de9c[_0x6e84('0x2f')]);_0x4ff476[_0x6e84('0x33')]=_[_0x6e84('0x32')](_0x39de9c['model'],qs[_0x6e84('0x34')](_0x5b5d91[_0x6e84('0x2f')]['fields']));_0x4ff476[_0x6e84('0x33')]=_0x4ff476[_0x6e84('0x33')][_0x6e84('0x35')]?_0x4ff476['attributes']:_0x39de9c[_0x6e84('0x2e')];if(!_0x5b5d91['query']['hasOwnProperty']('nolimit')){_0x4ff476['limit']=qs[_0x6e84('0x1e')](_0x5b5d91[_0x6e84('0x2f')][_0x6e84('0x1e')]);_0x4ff476[_0x6e84('0x1d')]=qs[_0x6e84('0x1d')](_0x5b5d91[_0x6e84('0x2f')][_0x6e84('0x1d')]);}_0x4ff476[_0x6e84('0x36')]=qs[_0x6e84('0x37')](_0x5b5d91['query']['sort']);_0x4ff476[_0x6e84('0x38')]=qs[_0x6e84('0x31')](_['pick'](_0x5b5d91[_0x6e84('0x2f')],_0x39de9c[_0x6e84('0x31')]),_0x123f83);if(_0x5b5d91[_0x6e84('0x2f')][_0x6e84('0x39')]){_0x4ff476['where']=_[_0x6e84('0x3a')](_0x4ff476[_0x6e84('0x38')],{'$or':_[_0x6e84('0x29')](_0x123f83,function(_0x1a9156){if(_0x1a9156[_0x6e84('0x2d')]!==_0x6e84('0x3b')){var _0x58b7f9={};_0x58b7f9[_0x1a9156['name']]={'$like':'%'+_0x5b5d91['query']['filter']+'%'};return _0x58b7f9;}})});}_0x4ff476=_[_0x6e84('0x3a')]({},_0x4ff476,_0x5b5d91['options']);var _0xe5d78f={'where':_0x4ff476[_0x6e84('0x38')]};return db[_0x6e84('0x2a')]['count'](_0xe5d78f)[_0x6e84('0x22')](function(_0x3c7552){_0x449377[_0x6e84('0x1c')]=_0x3c7552;if(_0x5b5d91[_0x6e84('0x2f')][_0x6e84('0x3c')]){_0x4ff476['include']=[{'all':!![]}];}return db[_0x6e84('0x2a')][_0x6e84('0x3d')](_0x4ff476);})[_0x6e84('0x22')](function(_0x1395e6){_0x449377[_0x6e84('0x3e')]=_0x1395e6;return _0x449377;})[_0x6e84('0x22')](respondWithFilteredResult(_0x55205d,_0x4ff476))[_0x6e84('0x3f')](handleError(_0x55205d,null));};exports['show']=function(_0xff3819,_0x46ca02){var _0x585aad={'raw':!![],'where':{'id':_0xff3819[_0x6e84('0x40')]['id']}},_0x5607c9={};_0x5607c9['model']=_['keys'](db[_0x6e84('0x2a')][_0x6e84('0x2b')]);_0x5607c9[_0x6e84('0x2f')]=_['keys'](_0xff3819['query']);_0x5607c9[_0x6e84('0x31')]=_[_0x6e84('0x32')](_0x5607c9['model'],_0x5607c9[_0x6e84('0x2f')]);_0x585aad[_0x6e84('0x33')]=_['intersection'](_0x5607c9[_0x6e84('0x2e')],qs[_0x6e84('0x34')](_0xff3819[_0x6e84('0x2f')]['fields']));_0x585aad[_0x6e84('0x33')]=_0x585aad[_0x6e84('0x33')]['length']?_0x585aad[_0x6e84('0x33')]:_0x5607c9['model'];if(_0xff3819['query'][_0x6e84('0x3c')]){_0x585aad[_0x6e84('0x41')]=[{'all':!![]}];}_0x585aad=_[_0x6e84('0x3a')]({},_0x585aad,_0xff3819[_0x6e84('0x42')]);return db['FaxApplication'][_0x6e84('0x43')](_0x585aad)[_0x6e84('0x22')](handleEntityNotFound(_0x46ca02,null))['then'](respondWithResult(_0x46ca02,null))[_0x6e84('0x3f')](handleError(_0x46ca02,null));};exports[_0x6e84('0x44')]=function(_0x2c309c,_0x48cdbc){return db[_0x6e84('0x2a')][_0x6e84('0x44')](_0x2c309c[_0x6e84('0x45')],{})[_0x6e84('0x22')](respondWithResult(_0x48cdbc,0xc9))[_0x6e84('0x3f')](handleError(_0x48cdbc,null));};exports[_0x6e84('0x46')]=function(_0x3a6b01,_0x411334){if(_0x3a6b01[_0x6e84('0x45')]['id']){delete _0x3a6b01[_0x6e84('0x45')]['id'];}return db[_0x6e84('0x2a')][_0x6e84('0x43')]({'where':{'id':_0x3a6b01['params']['id']}})['then'](handleEntityNotFound(_0x411334,null))[_0x6e84('0x22')](saveUpdates(_0x3a6b01[_0x6e84('0x45')],null))[_0x6e84('0x22')](respondWithResult(_0x411334,null))['catch'](handleError(_0x411334,null));};exports['destroy']=function(_0x3339f2,_0x51b4a4){return db[_0x6e84('0x2a')]['find']({'where':{'id':_0x3339f2[_0x6e84('0x40')]['id']}})[_0x6e84('0x22')](handleEntityNotFound(_0x51b4a4,null))['then'](removeEntity(_0x51b4a4,null))['catch'](handleError(_0x51b4a4,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdd74=['bluebird','request-promise','path','../../config/environment','./faxApplication.attributes','define','FaxApplication','fax_applications','utf8mb4','utf8mb4_unicode_ci','lodash','util','moment'];(function(_0x1bd2a8,_0x820b5b){var _0xf58f4d=function(_0x66da9e){while(--_0x66da9e){_0x1bd2a8['push'](_0x1bd2a8['shift']());}};_0xf58f4d(++_0x820b5b);}(_0xdd74,0x99));var _0x4dd7=function(_0x35e69a,_0xd8f0ed){_0x35e69a=_0x35e69a-0x0;var _0x4efaac=_0xdd74[_0x35e69a];return _0x4efaac;};'use strict';var _=require(_0x4dd7('0x0'));var util=require(_0x4dd7('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0x4dd7('0x2'));var BPromise=require(_0x4dd7('0x3'));var rp=require(_0x4dd7('0x4'));var fs=require('fs');var path=require(_0x4dd7('0x5'));var rimraf=require('rimraf');var config=require(_0x4dd7('0x6'));var attributes=require(_0x4dd7('0x7'));module['exports']=function(_0x28397a,_0x4f4ff4){return _0x28397a[_0x4dd7('0x8')](_0x4dd7('0x9'),attributes,{'tableName':_0x4dd7('0xa'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x4dd7('0xb'),'collate':_0x4dd7('0xc')});};
\ No newline at end of file
+var _0x73c7=['./faxApplication.attributes','exports','define','FaxApplication','fax_applications','lodash','../../config/logger','moment','bluebird','request-promise','path','rimraf','../../config/environment'];(function(_0xd04a8b,_0x5b3b3d){var _0x1c0a13=function(_0x50f695){while(--_0x50f695){_0xd04a8b['push'](_0xd04a8b['shift']());}};_0x1c0a13(++_0x5b3b3d);}(_0x73c7,0x1cc));var _0x773c=function(_0x2cfc8c,_0x5472df){_0x2cfc8c=_0x2cfc8c-0x0;var _0x1de813=_0x73c7[_0x2cfc8c];return _0x1de813;};'use strict';var _=require(_0x773c('0x0'));var util=require('util');var logger=require(_0x773c('0x1'))('api');var moment=require(_0x773c('0x2'));var BPromise=require(_0x773c('0x3'));var rp=require(_0x773c('0x4'));var fs=require('fs');var path=require(_0x773c('0x5'));var rimraf=require(_0x773c('0x6'));var config=require(_0x773c('0x7'));var attributes=require(_0x773c('0x8'));module[_0x773c('0x9')]=function(_0x31610f,_0x419112){return _0x31610f[_0x773c('0xa')](_0x773c('0xb'),attributes,{'tableName':_0x773c('0xc'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':'utf8mb4','collate':'utf8mb4_unicode_ci'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x20ad=['raw','where','limit','stringify','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','FaxApplication,\x20%s,\x20%s','request\x20sent','debug','error','code','message','result','catch','UpdateFaxApplication','body','options'];(function(_0x3d0c2d,_0x1d4e90){var _0x17f308=function(_0x2d2701){while(--_0x2d2701){_0x3d0c2d['push'](_0x3d0c2d['shift']());}};_0x17f308(++_0x1d4e90);}(_0x20ad,0x13a));var _0xd20a=function(_0x50a0c2,_0x4befab){_0x50a0c2=_0x50a0c2-0x0;var _0x5ebadd=_0x20ad[_0x50a0c2];return _0x5ebadd;};'use strict';var _=require(_0xd20a('0x0'));var util=require(_0xd20a('0x1'));var moment=require(_0xd20a('0x2'));var BPromise=require(_0xd20a('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xd20a('0x4'));var db=require(_0xd20a('0x5'))['db'];var utils=require(_0xd20a('0x6'));var logger=require(_0xd20a('0x7'))(_0xd20a('0x8'));var config=require(_0xd20a('0x9'));var jayson=require(_0xd20a('0xa'));var client=jayson[_0xd20a('0xb')][_0xd20a('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x58f33b,_0x18ca5c,_0xf47652){return new BPromise(function(_0x4c56a0,_0x2a5a70){return client[_0xd20a('0xd')](_0x58f33b,_0xf47652)[_0xd20a('0xe')](function(_0x2c418a){logger[_0xd20a('0xf')](_0xd20a('0x10'),_0x18ca5c,_0xd20a('0x11'));logger[_0xd20a('0x12')]('FaxApplication,\x20%s,\x20%s,\x20%s',_0x18ca5c,_0xd20a('0x11'),JSON['stringify'](_0x2c418a));if(_0x2c418a[_0xd20a('0x13')]){if(_0x2c418a['error'][_0xd20a('0x14')]===0x1f4){logger[_0xd20a('0x13')](_0xd20a('0x10'),_0x18ca5c,_0x2c418a[_0xd20a('0x13')][_0xd20a('0x15')]);return _0x2a5a70(_0x2c418a[_0xd20a('0x13')][_0xd20a('0x15')]);}logger[_0xd20a('0x13')]('FaxApplication,\x20%s,\x20%s',_0x18ca5c,_0x2c418a[_0xd20a('0x13')][_0xd20a('0x15')]);return _0x4c56a0(_0x2c418a[_0xd20a('0x13')]['message']);}else{logger[_0xd20a('0xf')](_0xd20a('0x10'),_0x18ca5c,_0xd20a('0x11'));_0x4c56a0(_0x2c418a[_0xd20a('0x16')]['message']);}})[_0xd20a('0x17')](function(_0x5ad81b){logger['error'](_0xd20a('0x10'),_0x18ca5c,_0x5ad81b);_0x2a5a70(_0x5ad81b);});});}exports[_0xd20a('0x18')]=function(_0x4c1dd4){var _0x5677c4=this;return new Promise(function(_0x7a0268,_0x569ba5){return db['FaxApplication']['update'](_0x4c1dd4[_0xd20a('0x19')],{'raw':_0x4c1dd4['options']?_0x4c1dd4[_0xd20a('0x1a')][_0xd20a('0x1b')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x4c1dd4[_0xd20a('0x1a')]?_0x4c1dd4[_0xd20a('0x1a')][_0xd20a('0x1c')]||null:null,'attributes':_0x4c1dd4['options']?_0x4c1dd4[_0xd20a('0x1a')]['attributes']||null:null,'limit':_0x4c1dd4[_0xd20a('0x1a')]?_0x4c1dd4[_0xd20a('0x1a')][_0xd20a('0x1d')]||null:null})[_0xd20a('0xe')](function(_0x458b4a){logger[_0xd20a('0xf')]('UpdateFaxApplication',_0x4c1dd4);logger['debug']('UpdateFaxApplication',_0x4c1dd4,JSON[_0xd20a('0x1e')](_0x458b4a));_0x7a0268(_0x458b4a);})[_0xd20a('0x17')](function(_0x140b84){logger[_0xd20a('0x13')](_0xd20a('0x18'),_0x140b84['message'],_0x4c1dd4);_0x569ba5(_0x5677c4[_0xd20a('0x13')](0x1f4,_0x140b84[_0xd20a('0x15')]));});});};
\ No newline at end of file
+var _0x36ea=['then','info','FaxApplication,\x20%s,\x20%s','request\x20sent','debug','FaxApplication,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','UpdateFaxApplication','FaxApplication','body','options','raw','where','attributes','catch','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http'];(function(_0x4bca3e,_0x2278a7){var _0x1a7bca=function(_0xab9a78){while(--_0xab9a78){_0x4bca3e['push'](_0x4bca3e['shift']());}};_0x1a7bca(++_0x2278a7);}(_0x36ea,0xc1));var _0xa36e=function(_0x3cf4d3,_0x48065e){_0x3cf4d3=_0x3cf4d3-0x0;var _0x4e547b=_0x36ea[_0x3cf4d3];return _0x4e547b;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0xa36e('0x0'));var BPromise=require('bluebird');var rs=require(_0xa36e('0x1'));var fs=require('fs');var Redis=require(_0xa36e('0x2'));var db=require(_0xa36e('0x3'))['db'];var utils=require(_0xa36e('0x4'));var logger=require(_0xa36e('0x5'))(_0xa36e('0x6'));var config=require(_0xa36e('0x7'));var jayson=require(_0xa36e('0x8'));var client=jayson['client'][_0xa36e('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x1bb55b,_0x48c51c,_0x2c10b6){return new BPromise(function(_0x37cc5d,_0x361bfc){return client['request'](_0x1bb55b,_0x2c10b6)[_0xa36e('0xa')](function(_0x2bf81c){logger[_0xa36e('0xb')](_0xa36e('0xc'),_0x48c51c,_0xa36e('0xd'));logger[_0xa36e('0xe')](_0xa36e('0xf'),_0x48c51c,_0xa36e('0xd'),JSON[_0xa36e('0x10')](_0x2bf81c));if(_0x2bf81c[_0xa36e('0x11')]){if(_0x2bf81c['error'][_0xa36e('0x12')]===0x1f4){logger[_0xa36e('0x11')]('FaxApplication,\x20%s,\x20%s',_0x48c51c,_0x2bf81c[_0xa36e('0x11')][_0xa36e('0x13')]);return _0x361bfc(_0x2bf81c[_0xa36e('0x11')][_0xa36e('0x13')]);}logger[_0xa36e('0x11')](_0xa36e('0xc'),_0x48c51c,_0x2bf81c[_0xa36e('0x11')][_0xa36e('0x13')]);return _0x37cc5d(_0x2bf81c[_0xa36e('0x11')][_0xa36e('0x13')]);}else{logger['info'](_0xa36e('0xc'),_0x48c51c,'request\x20sent');_0x37cc5d(_0x2bf81c[_0xa36e('0x14')][_0xa36e('0x13')]);}})['catch'](function(_0xf15a9c){logger[_0xa36e('0x11')](_0xa36e('0xc'),_0x48c51c,_0xf15a9c);_0x361bfc(_0xf15a9c);});});}exports[_0xa36e('0x15')]=function(_0x53f628){var _0x4d79c8=this;return new Promise(function(_0x269507,_0x81d40e){return db[_0xa36e('0x16')]['update'](_0x53f628[_0xa36e('0x17')],{'raw':_0x53f628[_0xa36e('0x18')]?_0x53f628[_0xa36e('0x18')][_0xa36e('0x19')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x53f628[_0xa36e('0x18')]?_0x53f628['options'][_0xa36e('0x1a')]||null:null,'attributes':_0x53f628[_0xa36e('0x18')]?_0x53f628[_0xa36e('0x18')][_0xa36e('0x1b')]||null:null,'limit':_0x53f628[_0xa36e('0x18')]?_0x53f628[_0xa36e('0x18')]['limit']||null:null})[_0xa36e('0xa')](function(_0xe874be){logger[_0xa36e('0xb')]('UpdateFaxApplication',_0x53f628);logger[_0xa36e('0xe')](_0xa36e('0x15'),_0x53f628,JSON['stringify'](_0xe874be));_0x269507(_0xe874be);})[_0xa36e('0x1c')](function(_0x310827){logger['error'](_0xa36e('0x15'),_0x310827[_0xa36e('0x13')],_0x53f628);_0x81d40e(_0x4d79c8[_0xa36e('0x11')](0x1f4,_0x310827[_0xa36e('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xac4a=['express','Router','../../components/interaction/service','../../config/environment','./faxApplication.controller','isAuthenticated','get','show','create','/:id','delete','destroy','exports','multer','util','path','connect-timeout'];(function(_0xad0646,_0x3793b5){var _0x12e0c4=function(_0x4fa262){while(--_0x4fa262){_0xad0646['push'](_0xad0646['shift']());}};_0x12e0c4(++_0x3793b5);}(_0xac4a,0x13f));var _0xaac4=function(_0x12ba6c,_0x490fc4){_0x12ba6c=_0x12ba6c-0x0;var _0x5c9137=_0xac4a[_0x12ba6c];return _0x5c9137;};'use strict';var multer=require(_0xaac4('0x0'));var util=require(_0xaac4('0x1'));var path=require(_0xaac4('0x2'));var timeout=require(_0xaac4('0x3'));var express=require(_0xaac4('0x4'));var router=express[_0xaac4('0x5')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0xaac4('0x6'));var config=require(_0xaac4('0x7'));var controller=require(_0xaac4('0x8'));router['get']('/',auth[_0xaac4('0x9')](),controller['index']);router[_0xaac4('0xa')]('/:id',auth[_0xaac4('0x9')](),controller[_0xaac4('0xb')]);router['post']('/',auth['isAuthenticated'](),controller[_0xaac4('0xc')]);router['put'](_0xaac4('0xd'),auth['isAuthenticated'](),controller['update']);router[_0xaac4('0xe')](_0xaac4('0xd'),auth[_0xaac4('0x9')](),controller[_0xaac4('0xf')]);module[_0xaac4('0x10')]=router;
\ No newline at end of file
+var _0xd8b0=['update','delete','destroy','multer','util','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','isAuthenticated','index','get','show','create','put','/:id'];(function(_0x3e6acb,_0x461bca){var _0x4ecc81=function(_0x331442){while(--_0x331442){_0x3e6acb['push'](_0x3e6acb['shift']());}};_0x4ecc81(++_0x461bca);}(_0xd8b0,0xad));var _0x0d8b=function(_0x122ef9,_0x451d2a){_0x122ef9=_0x122ef9-0x0;var _0x42fba0=_0xd8b0[_0x122ef9];return _0x42fba0;};'use strict';var multer=require(_0x0d8b('0x0'));var util=require(_0x0d8b('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require('express');var router=express[_0x0d8b('0x2')]();var fs_extra=require(_0x0d8b('0x3'));var auth=require(_0x0d8b('0x4'));var interaction=require(_0x0d8b('0x5'));var config=require(_0x0d8b('0x6'));var controller=require('./faxApplication.controller');router['get']('/',auth[_0x0d8b('0x7')](),controller[_0x0d8b('0x8')]);router[_0x0d8b('0x9')]('/:id',auth[_0x0d8b('0x7')](),controller[_0x0d8b('0xa')]);router['post']('/',auth[_0x0d8b('0x7')](),controller[_0x0d8b('0xb')]);router[_0x0d8b('0xc')](_0x0d8b('0xd'),auth[_0x0d8b('0x7')](),controller[_0x0d8b('0xe')]);router[_0x0d8b('0xf')](_0x0d8b('0xd'),auth['isAuthenticated'](),controller[_0x0d8b('0x10')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6ef6=['DATE','STRING','ENUM','out','sequelize','exports','BOOLEAN'];(function(_0x3c3baa,_0x562321){var _0x423e8b=function(_0x224afd){while(--_0x224afd){_0x3c3baa['push'](_0x3c3baa['shift']());}};_0x423e8b(++_0x562321);}(_0x6ef6,0x97));var _0x66ef=function(_0x2a2499,_0x42643c){_0x2a2499=_0x2a2499-0x0;var _0x4b4951=_0x6ef6[_0x2a2499];return _0x4b4951;};'use strict';var Sequelize=require(_0x66ef('0x0'));module[_0x66ef('0x1')]={'closed':{'type':Sequelize[_0x66ef('0x2')],'defaultValue':![]},'closedAt':{'type':Sequelize[_0x66ef('0x3')]},'disposition':{'type':Sequelize['STRING']},'secondDisposition':{'type':Sequelize[_0x66ef('0x4')]},'thirdDisposition':{'type':Sequelize[_0x66ef('0x4')]},'note':{'type':Sequelize[_0x66ef('0x4')]},'read1stAt':{'type':Sequelize[_0x66ef('0x3')]},'fax':{'type':Sequelize[_0x66ef('0x4')]},'firstMsgDirection':{'type':Sequelize[_0x66ef('0x5')]('in',_0x66ef('0x6')),'defaultValue':'in','allowNull':![]},'lastMsgAt':{'type':Sequelize[_0x66ef('0x3')]},'lastMsgDirection':{'type':Sequelize[_0x66ef('0x5')]('in',_0x66ef('0x6')),'defaultValue':'in','allowNull':![]}};
\ No newline at end of file
+var _0x7225=['ENUM','out','sequelize','exports','BOOLEAN','DATE','STRING'];(function(_0x159c2f,_0xd39d20){var _0x591f68=function(_0x161ba6){while(--_0x161ba6){_0x159c2f['push'](_0x159c2f['shift']());}};_0x591f68(++_0xd39d20);}(_0x7225,0x128));var _0x5722=function(_0x4e1965,_0x2aaa2c){_0x4e1965=_0x4e1965-0x0;var _0x1cd467=_0x7225[_0x4e1965];return _0x1cd467;};'use strict';var Sequelize=require(_0x5722('0x0'));module[_0x5722('0x1')]={'closed':{'type':Sequelize[_0x5722('0x2')],'defaultValue':![]},'closedAt':{'type':Sequelize[_0x5722('0x3')]},'disposition':{'type':Sequelize[_0x5722('0x4')]},'secondDisposition':{'type':Sequelize[_0x5722('0x4')]},'thirdDisposition':{'type':Sequelize['STRING']},'note':{'type':Sequelize['STRING']},'read1stAt':{'type':Sequelize[_0x5722('0x3')]},'fax':{'type':Sequelize['STRING']},'firstMsgDirection':{'type':Sequelize[_0x5722('0x5')]('in','out'),'defaultValue':'in','allowNull':![]},'lastMsgAt':{'type':Sequelize['DATE']},'lastMsgDirection':{'type':Sequelize[_0x5722('0x5')]('in',_0x5722('0x6')),'defaultValue':'in','allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd661=['sequelize','toString','merge','a.key','Account.key','a.mandatoryDisposition','Account.mandatoryDisposition','CASE\x20WHEN\x20(c.firstName\x20IS\x20NOT\x20NULL\x20AND\x20c.firstName\x20<>\x20\x27\x27)\x20OR\x20(c.lastName\x20IS\x20NOT\x20NULL\x20AND\x20c.lastName\x20<>\x20\x27\x27)\x20THEN\x20CONCAT(IFNULL(c.firstName,\x20\x27\x27),\x20\x27\x20\x27,\x20IFNULL(c.lastName,\x20\x27\x27))\x20ELSE\x20\x27Unknown\x27\x20END','i.*','c.firstName','Contact.firstName','c.email','Contact.email','Contact.phone','c.mobile','Contact.mobile','c.fax','Contact.fax','o.fullname','o.internal','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.FaxInteractionId\x20IN\x20?','FaxInteractionId','all','show','params','includeAll','include','options','destroy','describe','addMessage','FaxMessage','ids','omit','getMessages','findOne','keys','rawAttributes','pick','YYYY-MM-DD\x20HH:mm:ss','findAll','addTags','setTags','emit','faxInteractionTags:save','removeTags','download','join','root','server','files','attachments','format','transcript-%d-%s.zip','Attachment','Messages','get','mkdirSync','basename','existsSync','createReadStream','pipe','log','err','unlinkSync','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','ejs','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','status','json','offset','undefined','limit','count','set','apply','reject','update','end','sendStatus','error','name','send','TagIds','Tags','split','forEach','push','then','catch','index','map','FaxInteraction','fieldName','type','key','model','query','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','filters','select','field','color','u.id','u.fullname','ui.FaxInteractionId','from','left_join','users','fax_interactions','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','o.id\x20=\x20i.UserId','fax_accounts','fax_messages','me.FaxInteractionId\x20=\x20i.id','fax_interaction_has_tags','it.FaxInteractionId\x20=\x20i.id','tools_tags','t.id\x20=\x20it.TagId','expr','search','sqlOperator','conditions','find','unreadMessages','value','`\x20=\x200','having','`\x20>\x200','Contact','operator','$substring','c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?','ContactId','buildExpression','start','Tag','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','User','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','text','body','some','compact','isEmpty','FaxAccountId','i.FaxAccountId\x20IN\x20?','concat','createdAt','parse','$gte','$lte','where','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','\x20IS\x20NULL','\x20=\x20?','read','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','tag','filter','replace','i.id\x20LIKE\x20?','i.fax\x20LIKE\x20?','group','SELECT','clone','i.id','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','order','contactName','DESC','resolve','i.FaxAccountId\x20IS\x20NOT\x20NULL','user','role','getFaxAccounts','i.FaxAccountId\x20IS\x20NULL','agent'];(function(_0x27c938,_0x25ed17){var _0x102a81=function(_0x33d424){while(--_0x33d424){_0x27c938['push'](_0x27c938['shift']());}};_0x102a81(++_0x25ed17);}(_0xd661,0x11d));var _0x1d66=function(_0x5526b4,_0x3c914f){_0x5526b4=_0x5526b4-0x0;var _0x1491d3=_0xd661[_0x5526b4];return _0x1491d3;};'use strict';var emlformat=require(_0x1d66('0x0'));var rimraf=require(_0x1d66('0x1'));var zipdir=require(_0x1d66('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x1d66('0x3'));var moment=require(_0x1d66('0x4'));var BPromise=require(_0x1d66('0x5'));var Mustache=require(_0x1d66('0x6'));var util=require(_0x1d66('0x7'));var path=require(_0x1d66('0x8'));var sox=require(_0x1d66('0x9'));var csv=require('to-csv');var ejs=require(_0x1d66('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x1d66('0xb'));var squel=require(_0x1d66('0xc'));var crypto=require(_0x1d66('0xd'));var jsforce=require(_0x1d66('0xe'));var deskjs=require(_0x1d66('0xf'));var toCsv=require(_0x1d66('0x10'));var querystring=require(_0x1d66('0x11'));var Papa=require(_0x1d66('0x12'));var Redis=require(_0x1d66('0x13'));var authService=require(_0x1d66('0x14'));var qs=require(_0x1d66('0x15'));var as=require(_0x1d66('0x16'));var hardwareService=require(_0x1d66('0x17'));var logger=require('../../config/logger')(_0x1d66('0x18'));var utils=require('../../config/utils');var config=require(_0x1d66('0x19'));var licenseUtil=require(_0x1d66('0x1a'));var db=require(_0x1d66('0x1b'))['db'];config[_0x1d66('0x1c')]=_[_0x1d66('0x1d')](config[_0x1d66('0x1c')],{'host':_0x1d66('0x1e'),'port':0x18eb});var socket=require(_0x1d66('0x1f'))(new Redis(config[_0x1d66('0x1c')]));require('./faxInteraction.socket')['register'](socket);function respondWithStatusCode(_0x2921c2,_0x446088){_0x446088=_0x446088||0xcc;return function(_0xb7dece){if(_0xb7dece){return _0x2921c2['sendStatus'](_0x446088);}return _0x2921c2[_0x1d66('0x20')](_0x446088)['end']();};}function respondWithResult(_0x4d4add,_0x44f37e){_0x44f37e=_0x44f37e||0xc8;return function(_0x2c736c){if(_0x2c736c){return _0x4d4add[_0x1d66('0x20')](_0x44f37e)[_0x1d66('0x21')](_0x2c736c);}};}function respondWithFilteredResult(_0x192ede,_0x393ca9){return function(_0x1fd79c){if(_0x1fd79c){var _0x227a5d=typeof _0x393ca9[_0x1d66('0x22')]===_0x1d66('0x23')&&typeof _0x393ca9[_0x1d66('0x24')]==='undefined';var _0x43aa72=_0x1fd79c[_0x1d66('0x25')];var _0xc8132d=_0x227a5d?0x0:_0x393ca9[_0x1d66('0x22')];var _0x32db5d=_0x227a5d?_0x1fd79c['count']:_0x393ca9[_0x1d66('0x22')]+_0x393ca9[_0x1d66('0x24')];var _0x87e4cb;if(_0x32db5d>=_0x43aa72){_0x32db5d=_0x43aa72;_0x87e4cb=0xc8;}else{_0x87e4cb=0xce;}_0x192ede[_0x1d66('0x20')](_0x87e4cb);return _0x192ede[_0x1d66('0x26')]('Content-Range',_0xc8132d+'-'+_0x32db5d+'/'+_0x43aa72)['json'](_0x1fd79c);}return null;};}function patchUpdates(_0x2a0b2a){return function(_0x3b44e9){try{jsonpatch[_0x1d66('0x27')](_0x3b44e9,_0x2a0b2a,!![]);}catch(_0xf59ef1){return BPromise[_0x1d66('0x28')](_0xf59ef1);}return _0x3b44e9['save']();};}function saveUpdates(_0x1a2f44,_0x14716f){return function(_0x400509){if(_0x400509){return _0x400509[_0x1d66('0x29')](_0x1a2f44)['then'](function(_0x3e3df3){return _0x3e3df3;});}return null;};}function removeEntity(_0x434822,_0x2db168){return function(_0x24bcf1){if(_0x24bcf1){return _0x24bcf1['destroy']()['then'](function(){_0x434822[_0x1d66('0x20')](0xcc)[_0x1d66('0x2a')]();});}};}function handleEntityNotFound(_0x141dab,_0x119f91){return function(_0x5736a2){if(!_0x5736a2){_0x141dab[_0x1d66('0x2b')](0x194);}return _0x5736a2;};}function handleError(_0x1cc7f9,_0x136961){_0x136961=_0x136961||0x1f4;return function(_0x5372d4){logger[_0x1d66('0x2c')](_0x5372d4['stack']);if(_0x5372d4['name']){delete _0x5372d4[_0x1d66('0x2d')];}_0x1cc7f9[_0x1d66('0x20')](_0x136961)[_0x1d66('0x2e')](_0x5372d4);};}function getInteractionUsers(_0x114d38,_0x30fb36){return new BPromise(function(_0x3a8209,_0x2015a1){try{if(_0x30fb36[_0x114d38['id']]){_0x114d38['Users']=_['map'](_0x30fb36[_0x114d38['id']],function(_0x3aab1e){return{'id':_0x3aab1e['id'],'fullname':_0x3aab1e['fullname']};});}}catch(_0x2781c3){_0x2015a1(_0x2781c3);}_0x3a8209(_0x114d38);});}function getInteractionTags(_0x26cef2,_0x12d972){return new BPromise(function(_0x3e2af5,_0x5d7dcd){try{if(_0x26cef2[_0x1d66('0x2f')]){_0x26cef2[_0x1d66('0x30')]=[];_0x26cef2['TagIds'][_0x1d66('0x31')](',')[_0x1d66('0x32')](function(_0x372225){_0x26cef2['Tags'][_0x1d66('0x33')](_0x12d972[_0x372225]);});}delete _0x26cef2[_0x1d66('0x2f')];}catch(_0x167a83){_0x5d7dcd(_0x167a83);}_0x3e2af5(_0x26cef2);});}function updateFaxInteraction(_0x161075,_0x5dcb7d,_0x680001){return new BPromise(function(_0x22a7f6,_0xf54fe3){return getInteractionUsers(_0x161075,_0x680001)[_0x1d66('0x34')](function(_0x48565b){return getInteractionTags(_0x48565b,_0x5dcb7d);})[_0x1d66('0x34')](function(_0x160ceb){_0x22a7f6(_0x160ceb);})[_0x1d66('0x35')](function(_0x491ee2){_0xf54fe3(_0x491ee2);});});}exports[_0x1d66('0x36')]=function(_0x273177,_0x322cf8){var _0x32a614={},_0x32cbc9={},_0x2ffa95={'count':0x0,'rows':[]};var _0x521778=_[_0x1d66('0x37')](db[_0x1d66('0x38')]['rawAttributes'],function(_0x26f1e4){return{'name':_0x26f1e4[_0x1d66('0x39')],'type':_0x26f1e4[_0x1d66('0x3a')][_0x1d66('0x3b')]};});_0x32cbc9[_0x1d66('0x3c')]=_[_0x1d66('0x37')](_0x521778,_0x1d66('0x2d'));_0x32cbc9[_0x1d66('0x3d')]=_['keys'](_0x273177[_0x1d66('0x3d')]);_0x32cbc9['filters']=_[_0x1d66('0x3e')](_0x32cbc9[_0x1d66('0x3c')],_0x32cbc9[_0x1d66('0x3d')]);_0x32a614[_0x1d66('0x3f')]=_['intersection'](_0x32cbc9[_0x1d66('0x3c')],qs['fields'](_0x273177['query'][_0x1d66('0x40')]));_0x32a614[_0x1d66('0x3f')]=_0x32a614['attributes'][_0x1d66('0x41')]?_0x32a614['attributes']:_0x32cbc9[_0x1d66('0x3c')];if(!_0x273177['query'][_0x1d66('0x42')](_0x1d66('0x43'))){_0x32a614[_0x1d66('0x24')]=qs[_0x1d66('0x24')](_0x273177['query'][_0x1d66('0x24')]);_0x32a614[_0x1d66('0x22')]=qs[_0x1d66('0x22')](_0x273177[_0x1d66('0x3d')][_0x1d66('0x22')]);}_0x32a614['order']=qs[_0x1d66('0x44')](_0x273177[_0x1d66('0x3d')][_0x1d66('0x44')]);_0x32a614['where']=qs[_0x1d66('0x45')](_['pick'](_0x273177[_0x1d66('0x3d')],_0x32cbc9[_0x1d66('0x45')]),_0x521778);var _0x2143e0=[];var _0x85acfd=squel[_0x1d66('0x46')]()[_0x1d66('0x47')]('id')[_0x1d66('0x47')](_0x1d66('0x2d'))[_0x1d66('0x47')](_0x1d66('0x48'))['from']('tools_tags');var _0x49fdc4=squel['select']()[_0x1d66('0x47')](_0x1d66('0x49'))[_0x1d66('0x47')](_0x1d66('0x4a'))[_0x1d66('0x47')](_0x1d66('0x4b'))[_0x1d66('0x4c')]('user_has_fax_interactions','ui')[_0x1d66('0x4d')](_0x1d66('0x4e'),'u','u.id\x20=\x20ui.UserId');var _0x1fe4a6=squel['select']()['from'](_0x1d66('0x4f'),'i')[_0x1d66('0x4d')]('cm_contacts','c',_0x1d66('0x50'))[_0x1d66('0x4d')](_0x1d66('0x4e'),'o',_0x1d66('0x51'))[_0x1d66('0x4d')](_0x1d66('0x52'),'a','a.id\x20=\x20i.FaxAccountId')[_0x1d66('0x4d')](_0x1d66('0x53'),'me',_0x1d66('0x54'))[_0x1d66('0x4d')](_0x1d66('0x55'),'it',_0x1d66('0x56'))[_0x1d66('0x4d')](_0x1d66('0x57'),'t',_0x1d66('0x58'));var _0x53a7b0=squel[_0x1d66('0x59')]();var _0x32125f=[];var _0x408ed5=squel[_0x1d66('0x59')]();var _0x17dab1;if(_0x273177[_0x1d66('0x3d')][_0x1d66('0x5a')]){_0x17dab1=as['parseSearch'](_0x273177[_0x1d66('0x3d')][_0x1d66('0x5a')]);var _0x19af05=_0x17dab1[_0x1d66('0x5b')];for(var _0x5ff6d2=0x0;_0x5ff6d2<_0x17dab1[_0x1d66('0x5c')]['length'];_0x5ff6d2++){var _0x5dad34=_0x17dab1[_0x1d66('0x5c')][_0x5ff6d2];var _0x55e2ed='i';var _0x186a88=_[_0x1d66('0x5d')](_0x521778,['name',_0x5dad34[_0x1d66('0x47')]]);if(!_0x186a88){switch(_0x5dad34[_0x1d66('0x47')]){case _0x1d66('0x5e'):if(_0x5dad34[_0x1d66('0x5f')]==0x1){_0x1fe4a6['having']('`'+_0x5dad34[_0x1d66('0x47')]+_0x1d66('0x60'));}else{_0x1fe4a6[_0x1d66('0x61')]('`'+_0x5dad34['field']+_0x1d66('0x62'));}break;case _0x1d66('0x63'):if(_0x5dad34[_0x1d66('0x64')]===_0x1d66('0x65')){if(_0x5dad34[_0x1d66('0x5f')][_0x1d66('0x31')]('\x20')[_0x1d66('0x41')]>0x1){_0x53a7b0[_0x19af05]('MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs['getFullTextValue'](_0x5dad34[_0x1d66('0x5f')]),null);}else{var _0x217925='%'+_0x5dad34[_0x1d66('0x5f')]+'%';_0x53a7b0[_0x19af05](_0x1d66('0x66'),_0x217925,_0x217925,_0x217925);}}else{_0x186a88=_[_0x1d66('0x5d')](_0x521778,[_0x1d66('0x2d'),_0x1d66('0x67')]);_0x5dad34[_0x1d66('0x47')]=_0x1d66('0x67');_0x470e5d=as[_0x1d66('0x68')](_0x55e2ed,_0x186a88[_0x1d66('0x3a')],_0x5dad34);_0x53a7b0[_0x19af05](_0x470e5d['text'],_0x470e5d[_0x1d66('0x5f')][_0x1d66('0x69')],_0x470e5d[_0x1d66('0x5f')][_0x1d66('0x2a')]);}break;case _0x1d66('0x6a'):var _0x585727=_0x5dad34[_0x1d66('0x5f')]['split'](',')[_0x1d66('0x37')](function(_0xe0f595){return Number(_0xe0f595);});_0x585727['forEach'](function(_0x56fdec){_0x408ed5['or'](_0x1d66('0x6b'),'%,'+_0x56fdec+',%');});_0x32125f=_[_0x1d66('0x6c')](_0x32125f,_0x585727);break;case _0x1d66('0x6d'):if(_0x5dad34['operator']===_0x1d66('0x65')){_0x53a7b0[_0x19af05](_0x1d66('0x6e'),'%'+_0x5dad34[_0x1d66('0x5f')]+'%',null);}else{_0x186a88=_[_0x1d66('0x5d')](_0x521778,[_0x1d66('0x2d'),_0x1d66('0x6f')]);_0x5dad34[_0x1d66('0x47')]='UserId';_0x470e5d=as[_0x1d66('0x68')](_0x55e2ed,_0x186a88[_0x1d66('0x3a')],_0x5dad34);_0x53a7b0[_0x19af05](_0x470e5d[_0x1d66('0x70')],_0x470e5d[_0x1d66('0x5f')][_0x1d66('0x69')],_0x470e5d['value']['end']);}break;case _0x1d66('0x71'):_0x470e5d=as[_0x1d66('0x68')]('me',null,_0x5dad34);_0x53a7b0[_0x19af05](_0x470e5d[_0x1d66('0x70')],_0x470e5d['value'][_0x1d66('0x69')],_0x470e5d[_0x1d66('0x5f')][_0x1d66('0x2a')]);break;}}else{var _0x470e5d=as[_0x1d66('0x68')](_0x55e2ed,_0x186a88['type'],_0x5dad34);_0x53a7b0[_0x19af05](_0x470e5d[_0x1d66('0x70')],_0x470e5d[_0x1d66('0x5f')]['start'],_0x470e5d[_0x1d66('0x5f')]['end']);}}}else{var _0x57565c=_(_0x273177[_0x1d66('0x3d')])['keys']()[_0x1d66('0x37')](function(_0x392544){return _[_0x1d66('0x72')](_0x521778,[_0x1d66('0x2d'),_0x392544])?_0x392544:undefined;})[_0x1d66('0x73')]()[_0x1d66('0x5f')]();if(!_[_0x1d66('0x74')](_0x57565c)){_0x57565c[_0x1d66('0x32')](function(_0x22cee4){if(_0x22cee4===_0x1d66('0x75')){_0x1fe4a6['where'](_0x1d66('0x76'),[][_0x1d66('0x77')](_0x273177['query'][_0x22cee4]));}else if(_0x22cee4===_0x1d66('0x78')){var _0x190a00=JSON[_0x1d66('0x79')](_0x273177[_0x1d66('0x3d')][_0x22cee4])[_0x1d66('0x7a')];var _0x3fce59=JSON[_0x1d66('0x79')](_0x273177[_0x1d66('0x3d')][_0x22cee4])[_0x1d66('0x7b')];_0x1fe4a6[_0x1d66('0x7c')](_0x1d66('0x7d'),_0x190a00,_0x3fce59);}else{if(_0x273177[_0x1d66('0x3d')][_0x22cee4]==='null'){_0x1fe4a6[_0x1d66('0x7c')]('i.'+_0x22cee4+_0x1d66('0x7e'));}else{_0x1fe4a6[_0x1d66('0x7c')]('i.'+_0x22cee4+_0x1d66('0x7f'),_0x273177[_0x1d66('0x3d')][_0x22cee4]);}}});}if(_0x273177[_0x1d66('0x3d')][_0x1d66('0x80')]){if(_0x273177[_0x1d66('0x3d')][_0x1d66('0x80')]==0x1){_0x1fe4a6[_0x1d66('0x61')](_0x1d66('0x81'));}else{_0x1fe4a6[_0x1d66('0x61')](_0x1d66('0x82'));}}if(_0x273177['query']['tag']){_0x32125f=_['isArray'](_0x273177[_0x1d66('0x3d')][_0x1d66('0x83')])?_0x273177[_0x1d66('0x3d')]['tag']:new Array(_0x273177[_0x1d66('0x3d')][_0x1d66('0x83')]);_0x32125f[_0x1d66('0x32')](function(_0x216fd1){_0x408ed5['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x216fd1+',%');});}if(_0x273177[_0x1d66('0x3d')][_0x1d66('0x84')]){var _0x165780=_0x273177[_0x1d66('0x3d')]['filter'][_0x1d66('0x85')]('\x5c','\x5c\x5c')['replace'](/'/g,'\x27\x27');if(qs['isNumeric'](_0x165780)){_0x53a7b0['or'](_0x1d66('0x86'),_0x165780+'%')['or'](_0x1d66('0x87'),_0x165780+'%');}_0x53a7b0['or']('CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?',_0x165780+'%');}}_0x1fe4a6[_0x1d66('0x7c')](_0x53a7b0);_0x1fe4a6[_0x1d66('0x88')]('i.id');var _0x5b86f4={'type':db['Sequelize']['QueryTypes'][_0x1d66('0x89')],'raw':!![]};var _0x423e28=_0x1fe4a6[_0x1d66('0x8a')]();_0x423e28[_0x1d66('0x47')](_0x1d66('0x8b'));_0x423e28['field'](_0x1d66('0x8c'),_0x1d66('0x5e'));if(_0x32a614[_0x1d66('0x8d')]){_0x32a614['order'][_0x1d66('0x32')](function(_0x26ef45){var _0x10fb4a=_0x26ef45[0x0]===_0x1d66('0x8e')?_0x26ef45[0x0]:'i.'+_0x26ef45[0x0];_0x1fe4a6[_0x1d66('0x8d')](_0x10fb4a,_0x26ef45[0x1]===_0x1d66('0x8f')?![]:!![]);});}if(!_[_0x1d66('0x74')](_0x32125f)){_0x1fe4a6['having'](_0x408ed5);_0x423e28[_0x1d66('0x7c')]('t.id\x20IN\x20?',_0x32125f);}BPromise[_0x1d66('0x90')]()[_0x1d66('0x34')](function(){if(!_0x17dab1){if(_0x273177[_0x1d66('0x3d')][_0x1d66('0x75')])return;_0x423e28['where'](_0x1d66('0x91'));_0x1fe4a6[_0x1d66('0x7c')](_0x1d66('0x91'));return;}if(_0x273177[_0x1d66('0x92')][_0x1d66('0x93')]!=='agent')return;return _0x273177[_0x1d66('0x92')][_0x1d66('0x94')]({'attributes':['id'],'raw':!![]})[_0x1d66('0x34')](function(_0x2cc18f){if(_[_0x1d66('0x74')](_0x2cc18f)){_0x423e28['where'](_0x1d66('0x95'));_0x1fe4a6[_0x1d66('0x7c')](_0x1d66('0x95'));}else{_0x423e28[_0x1d66('0x7c')](_0x1d66('0x76'),_['map'](_0x2cc18f,'id'));_0x1fe4a6[_0x1d66('0x7c')](_0x1d66('0x76'),_['map'](_0x2cc18f,'id'));}});})[_0x1d66('0x34')](function(){if(_0x273177[_0x1d66('0x92')][_0x1d66('0x93')]===_0x1d66('0x96')&&!_0x17dab1&&!_0x273177[_0x1d66('0x3d')][_0x1d66('0x75')])return[];return db[_0x1d66('0x97')][_0x1d66('0x3d')](_0x423e28[_0x1d66('0x98')](),_0x5b86f4);})[_0x1d66('0x34')](function(_0x38b5c7){_0x2ffa95[_0x1d66('0x25')]=_0x38b5c7[_0x1d66('0x41')];if(_0x2ffa95['count']===0x0)return[];return db['sequelize'][_0x1d66('0x3d')](_0x85acfd['toString'](),_0x5b86f4)[_0x1d66('0x34')](function(_0x54e282){_0x2143e0=_['keyBy'](_0x54e282,'id');_0x5b86f4=_[_0x1d66('0x99')](_0x5b86f4,{'model':db[_0x1d66('0x38')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x273177['query'][_0x1d66('0x40')]){_0x32a614[_0x1d66('0x3f')]['forEach'](function(_0x1f515c){_0x1fe4a6['field']('i.'+_0x1f515c);});}else{_0x1fe4a6[_0x1d66('0x47')](_0x1d66('0x8c'),_0x1d66('0x5e'));_0x1fe4a6[_0x1d66('0x47')](_0x1d66('0x9a'),_0x1d66('0x9b'));_0x1fe4a6[_0x1d66('0x47')](_0x1d66('0x9c'),_0x1d66('0x9d'));_0x1fe4a6[_0x1d66('0x47')](_0x1d66('0x9e'),_0x1d66('0x8e'));_0x1fe4a6[_0x1d66('0x47')](_0x1d66('0x9f'));_0x1fe4a6['field'](_0x1d66('0xa0'),_0x1d66('0xa1'));_0x1fe4a6['field']('c.lastName','Contact.lastName');_0x1fe4a6['field'](_0x1d66('0xa2'),_0x1d66('0xa3'));_0x1fe4a6[_0x1d66('0x47')]('c.phone',_0x1d66('0xa4'));_0x1fe4a6['field'](_0x1d66('0xa5'),_0x1d66('0xa6'));_0x1fe4a6[_0x1d66('0x47')](_0x1d66('0xa7'),_0x1d66('0xa8'));_0x1fe4a6['field'](_0x1d66('0xa9'),'Owner.fullname');_0x1fe4a6[_0x1d66('0x47')](_0x1d66('0xaa'),_0x1d66('0xab'));_0x1fe4a6[_0x1d66('0x47')](_0x1d66('0xac'),_0x1d66('0x2f'));}if(_0x32a614[_0x1d66('0x24')])_0x1fe4a6[_0x1d66('0x24')](_0x32a614['limit']);if(_0x32a614[_0x1d66('0x22')])_0x1fe4a6[_0x1d66('0x22')](_0x32a614[_0x1d66('0x22')]);return db[_0x1d66('0x97')][_0x1d66('0x3d')](_0x1fe4a6[_0x1d66('0x98')](),_0x5b86f4);})[_0x1d66('0x34')](function(_0x36af6f){if(_0x36af6f[_0x1d66('0x41')]>0x0)_0x49fdc4[_0x1d66('0x7c')](_0x1d66('0xad'),_[_0x1d66('0x37')](_0x36af6f,'id'));return db['sequelize']['query'](_0x49fdc4[_0x1d66('0x98')](),_0x5b86f4)['then'](function(_0x319ce2){var _0x4da4c6=_['groupBy'](_0x319ce2,_0x1d66('0xae'));var _0x1148d9=[];_0x36af6f[_0x1d66('0x32')](function(_0x3e00a2){_0x1148d9['push'](updateFaxInteraction(_0x3e00a2,_0x2143e0,_0x4da4c6));});return BPromise[_0x1d66('0xaf')](_0x1148d9);});});})[_0x1d66('0x34')](function(_0x182bbb){_0x2ffa95['rows']=_0x182bbb;return _0x2ffa95;})[_0x1d66('0x34')](respondWithFilteredResult(_0x322cf8,_0x32a614))[_0x1d66('0x35')](handleError(_0x322cf8,null));};exports[_0x1d66('0xb0')]=function(_0x2de2fd,_0xa050b){var _0x3a9606={'raw':![],'where':{'id':_0x2de2fd[_0x1d66('0xb1')]['id']}},_0x465975={};_0x465975[_0x1d66('0x3c')]=_['keys'](db[_0x1d66('0x38')]['rawAttributes']);_0x465975[_0x1d66('0x3d')]=_['keys'](_0x2de2fd[_0x1d66('0x3d')]);_0x465975[_0x1d66('0x45')]=_[_0x1d66('0x3e')](_0x465975[_0x1d66('0x3c')],_0x465975[_0x1d66('0x3d')]);_0x3a9606[_0x1d66('0x3f')]=_['intersection'](_0x465975[_0x1d66('0x3c')],qs[_0x1d66('0x40')](_0x2de2fd[_0x1d66('0x3d')]['fields']));_0x3a9606[_0x1d66('0x3f')]=_0x3a9606[_0x1d66('0x3f')][_0x1d66('0x41')]?_0x3a9606[_0x1d66('0x3f')]:_0x465975[_0x1d66('0x3c')];if(_0x2de2fd[_0x1d66('0x3d')][_0x1d66('0xb2')]){_0x3a9606[_0x1d66('0xb3')]=[{'all':!![]}];}_0x3a9606=_[_0x1d66('0x99')]({},_0x3a9606,_0x2de2fd[_0x1d66('0xb4')]);return db[_0x1d66('0x38')][_0x1d66('0x5d')](_0x3a9606)[_0x1d66('0x34')](handleEntityNotFound(_0xa050b,null))[_0x1d66('0x34')](respondWithResult(_0xa050b,null))[_0x1d66('0x35')](handleError(_0xa050b,null));};exports['create']=function(_0x61f241,_0xaa1173){return db['FaxInteraction']['create'](_0x61f241[_0x1d66('0x71')],{})[_0x1d66('0x34')](respondWithResult(_0xaa1173,0xc9))['catch'](handleError(_0xaa1173,null));};exports[_0x1d66('0x29')]=function(_0x36f04a,_0x672660){if(_0x36f04a[_0x1d66('0x71')]['id']){delete _0x36f04a['body']['id'];}return db[_0x1d66('0x38')][_0x1d66('0x5d')]({'where':{'id':_0x36f04a[_0x1d66('0xb1')]['id']}})[_0x1d66('0x34')](handleEntityNotFound(_0x672660,null))[_0x1d66('0x34')](saveUpdates(_0x36f04a[_0x1d66('0x71')],null))['then'](respondWithResult(_0x672660,null))['catch'](handleError(_0x672660,null));};exports[_0x1d66('0xb5')]=function(_0x47a8fc,_0x26cd16){return db[_0x1d66('0x38')][_0x1d66('0x5d')]({'where':{'id':_0x47a8fc['params']['id']}})['then'](handleEntityNotFound(_0x26cd16,null))[_0x1d66('0x34')](removeEntity(_0x26cd16,null))[_0x1d66('0x35')](handleError(_0x26cd16,null));};exports[_0x1d66('0xb6')]=function(_0x216744,_0x5e8cf3){return db[_0x1d66('0x38')]['describe']()[_0x1d66('0x34')](respondWithResult(_0x5e8cf3,null))['catch'](handleError(_0x5e8cf3,null));};exports[_0x1d66('0xb7')]=function(_0x11d4fe,_0x27cd6c,_0x58b5fa){return db[_0x1d66('0xb8')][_0x1d66('0x5d')]({'where':{'id':_0x11d4fe['params']['id']}})['then'](handleEntityNotFound(_0x27cd6c,null))[_0x1d66('0x34')](function(_0x2c2ed4){if(_0x2c2ed4){return _0x2c2ed4[_0x1d66('0xb7')](_0x11d4fe[_0x1d66('0x71')][_0x1d66('0xb9')],_[_0x1d66('0xba')](_0x11d4fe[_0x1d66('0x71')],[_0x1d66('0xb9'),'id'])||{});}})[_0x1d66('0x34')](respondWithResult(_0x27cd6c,null))[_0x1d66('0x35')](handleError(_0x27cd6c,null));};exports[_0x1d66('0xbb')]=function(_0x39d6c7,_0x3296f5,_0xebe333){var _0x261ebb={'raw':![],'where':{}};var _0x498a7f={};var _0x19c7f9={'count':0x0,'rows':[]};return db[_0x1d66('0x38')][_0x1d66('0xbc')]({'where':{'id':_0x39d6c7['params']['id']}})[_0x1d66('0x34')](handleEntityNotFound(_0x3296f5,null))[_0x1d66('0x34')](function(_0x27064d){if(_0x27064d){_0x498a7f['model']=_[_0x1d66('0xbd')](db[_0x1d66('0xb8')][_0x1d66('0xbe')]);_0x498a7f[_0x1d66('0x3d')]=_[_0x1d66('0xbd')](_0x39d6c7[_0x1d66('0x3d')]);_0x498a7f[_0x1d66('0x45')]=_[_0x1d66('0x3e')](_0x498a7f[_0x1d66('0x3c')],_0x498a7f['query']);_0x261ebb[_0x1d66('0x3f')]=_[_0x1d66('0x3e')](_0x498a7f['model'],qs[_0x1d66('0x40')](_0x39d6c7[_0x1d66('0x3d')][_0x1d66('0x40')]));_0x261ebb[_0x1d66('0x3f')]=_0x261ebb[_0x1d66('0x3f')]['length']?_0x261ebb[_0x1d66('0x3f')]:_0x498a7f['model'];if(!_0x39d6c7[_0x1d66('0x3d')]['hasOwnProperty'](_0x1d66('0x43'))){_0x261ebb['limit']=qs[_0x1d66('0x24')](_0x39d6c7['query'][_0x1d66('0x24')]);_0x261ebb['offset']=qs[_0x1d66('0x22')](_0x39d6c7[_0x1d66('0x3d')][_0x1d66('0x22')]);}_0x261ebb[_0x1d66('0x8d')]=qs[_0x1d66('0x44')](_0x39d6c7[_0x1d66('0x3d')]['sort']);_0x261ebb[_0x1d66('0x7c')]=qs[_0x1d66('0x45')](_[_0x1d66('0xbf')](_0x39d6c7[_0x1d66('0x3d')],_0x498a7f[_0x1d66('0x45')]));_0x261ebb['where'][_0x1d66('0xae')]=_0x27064d['id'];if(_0x39d6c7[_0x1d66('0x3d')][_0x1d66('0x84')]){_0x261ebb[_0x1d66('0x7c')]=_[_0x1d66('0x99')](_0x261ebb['where'],{'$or':_['map'](_0x261ebb[_0x1d66('0x3f')],function(_0x18a574){var _0x22d94b={};_0x22d94b[_0x18a574]={'$like':'%'+_0x39d6c7[_0x1d66('0x3d')][_0x1d66('0x84')]+'%'};return _0x22d94b;})});}if(_0x39d6c7['query'][_0x1d66('0x7a')]){var _0x4197a7=_0x39d6c7[_0x1d66('0x3d')]['$gte'][_0x1d66('0x31')](',');var _0xd078e6={};_0xd078e6[_0x4197a7[0x0]]={'$gte':moment(_0x4197a7[0x1])['format'](_0x1d66('0xc0'))};_0x261ebb[_0x1d66('0x7c')]=_[_0x1d66('0x99')](_0x261ebb[_0x1d66('0x7c')],_0xd078e6);}_0x261ebb=_['merge']({},_0x261ebb,_0x39d6c7[_0x1d66('0xb4')]);return db[_0x1d66('0xb8')]['count']({'where':_0x261ebb['where']})[_0x1d66('0x34')](function(_0x366404){_0x19c7f9['count']=_0x366404;if(_0x39d6c7[_0x1d66('0x3d')][_0x1d66('0xb2')]){_0x261ebb['include']=[{'all':!![]}];}return db[_0x1d66('0xb8')][_0x1d66('0xc1')](_0x261ebb);})[_0x1d66('0x34')](function(_0x810aa){_0x19c7f9['rows']=_0x810aa;return _0x19c7f9;});}})[_0x1d66('0x34')](respondWithFilteredResult(_0x3296f5,_0x261ebb))['catch'](handleError(_0x3296f5,null));};exports[_0x1d66('0xc2')]=function(_0x49d26e,_0x1984fd,_0x6cce45){return db['FaxInteraction'][_0x1d66('0x5d')]({'where':{'id':_0x49d26e[_0x1d66('0xb1')]['id']}})[_0x1d66('0x34')](handleEntityNotFound(_0x1984fd,null))[_0x1d66('0x34')](function(_0x4ad142){if(_0x4ad142){return _0x4ad142[_0x1d66('0xc3')](_0x49d26e[_0x1d66('0x71')]['ids'],_[_0x1d66('0xba')](_0x49d26e[_0x1d66('0x71')],['ids','id'])||{})['spread'](function(){return db[_0x1d66('0x6a')][_0x1d66('0xc1')]({'attributes':['id','name',_0x1d66('0x48')],'where':{'id':_0x49d26e[_0x1d66('0x71')][_0x1d66('0xb9')]}});})[_0x1d66('0x34')](function(_0x43f732){socket[_0x1d66('0xc4')](_0x1d66('0xc5'),{'id':Number(_0x49d26e[_0x1d66('0xb1')]['id']),'tags':_0x43f732||[]});return{'id':Number(_0x49d26e['params']['id']),'tags':_0x43f732||[]};});}})[_0x1d66('0x34')](respondWithResult(_0x1984fd,null))[_0x1d66('0x35')](handleError(_0x1984fd,null));};exports[_0x1d66('0xc6')]=function(_0x2653fc,_0x5d98c3,_0x1aca21){return db[_0x1d66('0x38')][_0x1d66('0x5d')]({'where':{'id':_0x2653fc[_0x1d66('0xb1')]['id']}})[_0x1d66('0x34')](handleEntityNotFound(_0x5d98c3,null))[_0x1d66('0x34')](function(_0x31f29e){if(_0x31f29e){return _0x31f29e['removeTags'](_0x2653fc[_0x1d66('0x3d')][_0x1d66('0xb9')]);}})[_0x1d66('0x34')](respondWithStatusCode(_0x5d98c3,null))[_0x1d66('0x35')](handleError(_0x5d98c3,null));};exports[_0x1d66('0xc7')]=function(_0x49b7ab,_0x217033){var _0x59f95a=moment()['unix']()[_0x1d66('0x98')]();var _0x2182de=path[_0x1d66('0xc8')](config[_0x1d66('0xc9')],_0x1d66('0xca'),_0x1d66('0xcb'),'tmp');var _0x173d9d=path['join'](config[_0x1d66('0xc9')],_0x1d66('0xca'),_0x1d66('0xcb'),_0x1d66('0xcc'));var _0x5a4a14=path[_0x1d66('0xc8')](_0x2182de,_0x59f95a);var _0x49857f=util[_0x1d66('0xcd')](_0x1d66('0xce'),_0x49b7ab[_0x1d66('0xb1')]['id'],_0x59f95a);var _0x1df3e0=path[_0x1d66('0xc8')](_0x2182de,_0x49857f);var _0x4dc970=[];_0x4dc970[_0x1d66('0x33')]({'model':db[_0x1d66('0xcf')],'as':_0x1d66('0xcf'),'raw':!![]});var _0x15b177=[{'model':db['FaxMessage'],'as':'Messages','attributes':['id','body',_0x1d66('0x78')],'include':_0x4dc970}];return db[_0x1d66('0x38')][_0x1d66('0x5d')]({'where':{'id':_0x49b7ab[_0x1d66('0xb1')]['id']},'include':_0x15b177})['then'](handleEntityNotFound(_0x217033,null))['then'](function(_0x3c23a2){if(_0x3c23a2&&_0x3c23a2[_0x1d66('0xd0')]){var _0x35c9cb=_0x3c23a2[_0x1d66('0xd1')]({'plain':!![]});fs[_0x1d66('0xd2')](_0x5a4a14);for(var _0x3e8ff4=0x0;_0x3e8ff4<_0x35c9cb[_0x1d66('0xd0')][_0x1d66('0x41')];_0x3e8ff4++){var _0x5f559d=_0x35c9cb[_0x1d66('0xd0')][_0x3e8ff4][_0x1d66('0xcf')];if(_0x5f559d){var _0x16b2fe=path[_0x1d66('0xc8')](_0x173d9d,_0x5f559d[_0x1d66('0xd3')]);if(fs[_0x1d66('0xd4')](_0x16b2fe)){fs[_0x1d66('0xd5')](_0x16b2fe)[_0x1d66('0xd6')](fs['createWriteStream'](path[_0x1d66('0xc8')](_0x5a4a14,_0x5f559d['basename'])));}}}return BPromise['resolve']()[_0x1d66('0x34')](function(){return new BPromise(function(_0x3400d3,_0x2b178b){zipdir(_0x5a4a14,{'saveTo':_0x1df3e0},function(_0x48fa48,_0x81f535){if(_0x48fa48)return _0x2b178b(_0x48fa48);return _0x3400d3(_0x81f535);});})[_0x1d66('0x34')](function(){return new BPromise(function(_0x282ebe,_0x256577){rimraf(_0x5a4a14,function(_0x42306a){if(_0x42306a)_0x256577(_0x42306a);return _0x282ebe();});});})[_0x1d66('0x34')](function(){return _0x217033[_0x1d66('0xc7')](_0x1df3e0,_0x49857f,function(_0x158240){if(_0x158240){console[_0x1d66('0xd7')](_0x1d66('0xd8'),_0x158240);}else{fs[_0x1d66('0xd9')](_0x1df3e0);}});});});}else{return _0x217033[_0x1d66('0x2b')](0xc8);}})[_0x1d66('0x35')](handleError(_0x217033,null));};
\ No newline at end of file
+var _0xdb18=['CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','operator','UserId','body','some','isEmpty','i.FaxAccountId\x20IN\x20?','concat','createdAt','$gte','parse','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20=\x20?','read','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','isArray','tag','filter','replace','isNumeric','i.id\x20LIKE\x20?','i.fax\x20LIKE\x20?','group','i.id','Sequelize','QueryTypes','SELECT','clone','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','DESC','t.id\x20IN\x20?','resolve','FaxAccountId','i.FaxAccountId\x20IS\x20NOT\x20NULL','user','role','agent','getFaxAccounts','i.FaxAccountId\x20IS\x20NULL','toString','keyBy','merge','a.key','Account.key','a.mandatoryDisposition','Account.mandatoryDisposition','i.*','c.firstName','c.lastName','Contact.lastName','c.email','Contact.email','c.phone','c.mobile','Contact.mobile','c.fax','Contact.fax','o.fullname','o.internal','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','sequelize','ui.FaxInteractionId\x20IN\x20?','groupBy','FaxInteractionId','all','rows','show','params','rawAttributes','includeAll','include','options','catch','create','describe','addMessage','FaxMessage','ids','omit','getMessages','findAll','addTags','setTags','spread','emit','faxInteractionTags:save','removeTags','download','join','root','server','attachments','format','transcript-%d-%s.zip','Attachment','Messages','mkdirSync','basename','existsSync','createReadStream','log','unlinkSync','eml-format','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','ejs','fs-extra','squel','crypto','desk.js','querystring','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','register','sendStatus','status','end','json','undefined','limit','offset','count','set','Content-Range','apply','reject','save','update','then','destroy','error','stack','name','send','Users','map','fullname','TagIds','Tags','split','forEach','push','index','FaxInteraction','fieldName','key','query','keys','intersection','model','fields','attributes','hasOwnProperty','nolimit','order','sort','where','filters','pick','select','field','color','u.fullname','ui.FaxInteractionId','from','user_has_fax_interactions','left_join','u.id\x20=\x20ui.UserId','fax_interactions','cm_contacts','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','users','o.id\x20=\x20i.UserId','a.id\x20=\x20i.FaxAccountId','fax_messages','me.FaxInteractionId\x20=\x20i.id','fax_interaction_has_tags','tools_tags','t.id\x20=\x20it.TagId','expr','search','parseSearch','sqlOperator','conditions','length','find','unreadMessages','value','having','`\x20=\x200','Contact','$substring','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','ContactId','buildExpression','type','text','start','Tag'];(function(_0x200c8c,_0x313891){var _0x308a71=function(_0x9ea5df){while(--_0x9ea5df){_0x200c8c['push'](_0x200c8c['shift']());}};_0x308a71(++_0x313891);}(_0xdb18,0x146));var _0x8db1=function(_0xc0b246,_0x3163ef){_0xc0b246=_0xc0b246-0x0;var _0x54eb21=_0xdb18[_0xc0b246];return _0x54eb21;};'use strict';var emlformat=require(_0x8db1('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x8db1('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x8db1('0x2'));var moment=require(_0x8db1('0x3'));var BPromise=require(_0x8db1('0x4'));var Mustache=require(_0x8db1('0x5'));var util=require(_0x8db1('0x6'));var path=require(_0x8db1('0x7'));var sox=require(_0x8db1('0x8'));var csv=require('to-csv');var ejs=require(_0x8db1('0x9'));var fs=require('fs');var fs_extra=require(_0x8db1('0xa'));var _=require('lodash');var squel=require(_0x8db1('0xb'));var crypto=require(_0x8db1('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x8db1('0xd'));var toCsv=require('to-csv');var querystring=require(_0x8db1('0xe'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x8db1('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0x8db1('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x8db1('0x11'))(_0x8db1('0x12'));var utils=require(_0x8db1('0x13'));var config=require(_0x8db1('0x14'));var licenseUtil=require(_0x8db1('0x15'));var db=require(_0x8db1('0x16'))['db'];config[_0x8db1('0x17')]=_[_0x8db1('0x18')](config[_0x8db1('0x17')],{'host':_0x8db1('0x19'),'port':0x18eb});var socket=require(_0x8db1('0x1a'))(new Redis(config['redis']));require('./faxInteraction.socket')[_0x8db1('0x1b')](socket);function respondWithStatusCode(_0x5b8d69,_0x18b619){_0x18b619=_0x18b619||0xcc;return function(_0x3e103d){if(_0x3e103d){return _0x5b8d69[_0x8db1('0x1c')](_0x18b619);}return _0x5b8d69[_0x8db1('0x1d')](_0x18b619)[_0x8db1('0x1e')]();};}function respondWithResult(_0x42afd6,_0x91761e){_0x91761e=_0x91761e||0xc8;return function(_0x5367c0){if(_0x5367c0){return _0x42afd6[_0x8db1('0x1d')](_0x91761e)[_0x8db1('0x1f')](_0x5367c0);}};}function respondWithFilteredResult(_0x389756,_0x235aeb){return function(_0x1917d6){if(_0x1917d6){var _0x4dfb49=typeof _0x235aeb['offset']===_0x8db1('0x20')&&typeof _0x235aeb[_0x8db1('0x21')]==='undefined';var _0x5d7ff3=_0x1917d6['count'];var _0x5c1e11=_0x4dfb49?0x0:_0x235aeb[_0x8db1('0x22')];var _0x210bf5=_0x4dfb49?_0x1917d6[_0x8db1('0x23')]:_0x235aeb[_0x8db1('0x22')]+_0x235aeb['limit'];var _0x8a2549;if(_0x210bf5>=_0x5d7ff3){_0x210bf5=_0x5d7ff3;_0x8a2549=0xc8;}else{_0x8a2549=0xce;}_0x389756[_0x8db1('0x1d')](_0x8a2549);return _0x389756[_0x8db1('0x24')](_0x8db1('0x25'),_0x5c1e11+'-'+_0x210bf5+'/'+_0x5d7ff3)['json'](_0x1917d6);}return null;};}function patchUpdates(_0x37a9b9){return function(_0x5bc489){try{jsonpatch[_0x8db1('0x26')](_0x5bc489,_0x37a9b9,!![]);}catch(_0x389b5c){return BPromise[_0x8db1('0x27')](_0x389b5c);}return _0x5bc489[_0x8db1('0x28')]();};}function saveUpdates(_0x546bcf,_0x44f58e){return function(_0x584782){if(_0x584782){return _0x584782[_0x8db1('0x29')](_0x546bcf)[_0x8db1('0x2a')](function(_0x149132){return _0x149132;});}return null;};}function removeEntity(_0x16fccf,_0x57f029){return function(_0x824a49){if(_0x824a49){return _0x824a49[_0x8db1('0x2b')]()['then'](function(){_0x16fccf[_0x8db1('0x1d')](0xcc)[_0x8db1('0x1e')]();});}};}function handleEntityNotFound(_0x144d21,_0x1e4f0c){return function(_0x1d7d32){if(!_0x1d7d32){_0x144d21[_0x8db1('0x1c')](0x194);}return _0x1d7d32;};}function handleError(_0x16e4b9,_0x2b27e8){_0x2b27e8=_0x2b27e8||0x1f4;return function(_0x47818b){logger[_0x8db1('0x2c')](_0x47818b[_0x8db1('0x2d')]);if(_0x47818b[_0x8db1('0x2e')]){delete _0x47818b[_0x8db1('0x2e')];}_0x16e4b9[_0x8db1('0x1d')](_0x2b27e8)[_0x8db1('0x2f')](_0x47818b);};}function getInteractionUsers(_0x50bf1d,_0x5cfa54){return new BPromise(function(_0x4af41a,_0x2c582d){try{if(_0x5cfa54[_0x50bf1d['id']]){_0x50bf1d[_0x8db1('0x30')]=_[_0x8db1('0x31')](_0x5cfa54[_0x50bf1d['id']],function(_0x3f92a1){return{'id':_0x3f92a1['id'],'fullname':_0x3f92a1[_0x8db1('0x32')]};});}}catch(_0x5f2317){_0x2c582d(_0x5f2317);}_0x4af41a(_0x50bf1d);});}function getInteractionTags(_0x3e0ecf,_0x42d5a1){return new BPromise(function(_0x1371f3,_0x45375f){try{if(_0x3e0ecf[_0x8db1('0x33')]){_0x3e0ecf[_0x8db1('0x34')]=[];_0x3e0ecf[_0x8db1('0x33')][_0x8db1('0x35')](',')[_0x8db1('0x36')](function(_0x326b0b){_0x3e0ecf[_0x8db1('0x34')][_0x8db1('0x37')](_0x42d5a1[_0x326b0b]);});}delete _0x3e0ecf[_0x8db1('0x33')];}catch(_0x384175){_0x45375f(_0x384175);}_0x1371f3(_0x3e0ecf);});}function updateFaxInteraction(_0x29a581,_0x3a214d,_0x3f5b01){return new BPromise(function(_0x55cef7,_0x5d9f8b){return getInteractionUsers(_0x29a581,_0x3f5b01)[_0x8db1('0x2a')](function(_0x58b859){return getInteractionTags(_0x58b859,_0x3a214d);})['then'](function(_0x532ad0){_0x55cef7(_0x532ad0);})['catch'](function(_0x5115a5){_0x5d9f8b(_0x5115a5);});});}exports[_0x8db1('0x38')]=function(_0x19c352,_0x9fffcf){var _0x162cde={},_0x75cd85={},_0x3f3c46={'count':0x0,'rows':[]};var _0x33032d=_[_0x8db1('0x31')](db[_0x8db1('0x39')]['rawAttributes'],function(_0x34481f){return{'name':_0x34481f[_0x8db1('0x3a')],'type':_0x34481f['type'][_0x8db1('0x3b')]};});_0x75cd85['model']=_['map'](_0x33032d,'name');_0x75cd85[_0x8db1('0x3c')]=_[_0x8db1('0x3d')](_0x19c352[_0x8db1('0x3c')]);_0x75cd85['filters']=_[_0x8db1('0x3e')](_0x75cd85['model'],_0x75cd85[_0x8db1('0x3c')]);_0x162cde['attributes']=_['intersection'](_0x75cd85[_0x8db1('0x3f')],qs[_0x8db1('0x40')](_0x19c352[_0x8db1('0x3c')][_0x8db1('0x40')]));_0x162cde[_0x8db1('0x41')]=_0x162cde[_0x8db1('0x41')]['length']?_0x162cde[_0x8db1('0x41')]:_0x75cd85['model'];if(!_0x19c352[_0x8db1('0x3c')][_0x8db1('0x42')](_0x8db1('0x43'))){_0x162cde['limit']=qs[_0x8db1('0x21')](_0x19c352[_0x8db1('0x3c')][_0x8db1('0x21')]);_0x162cde[_0x8db1('0x22')]=qs[_0x8db1('0x22')](_0x19c352[_0x8db1('0x3c')][_0x8db1('0x22')]);}_0x162cde[_0x8db1('0x44')]=qs[_0x8db1('0x45')](_0x19c352[_0x8db1('0x3c')][_0x8db1('0x45')]);_0x162cde[_0x8db1('0x46')]=qs[_0x8db1('0x47')](_[_0x8db1('0x48')](_0x19c352['query'],_0x75cd85['filters']),_0x33032d);var _0x2a22d3=[];var _0x4bc72d=squel[_0x8db1('0x49')]()[_0x8db1('0x4a')]('id')['field'](_0x8db1('0x2e'))[_0x8db1('0x4a')](_0x8db1('0x4b'))['from']('tools_tags');var _0x3e65b9=squel[_0x8db1('0x49')]()['field']('u.id')['field'](_0x8db1('0x4c'))[_0x8db1('0x4a')](_0x8db1('0x4d'))[_0x8db1('0x4e')](_0x8db1('0x4f'),'ui')[_0x8db1('0x50')]('users','u',_0x8db1('0x51'));var _0x3d7c63=squel[_0x8db1('0x49')]()[_0x8db1('0x4e')](_0x8db1('0x52'),'i')['left_join'](_0x8db1('0x53'),'c',_0x8db1('0x54'))[_0x8db1('0x50')](_0x8db1('0x55'),'o',_0x8db1('0x56'))[_0x8db1('0x50')]('fax_accounts','a',_0x8db1('0x57'))['left_join'](_0x8db1('0x58'),'me',_0x8db1('0x59'))[_0x8db1('0x50')](_0x8db1('0x5a'),'it','it.FaxInteractionId\x20=\x20i.id')[_0x8db1('0x50')](_0x8db1('0x5b'),'t',_0x8db1('0x5c'));var _0x833e71=squel[_0x8db1('0x5d')]();var _0x1bc715=[];var _0xe02064=squel['expr']();var _0x385d31;if(_0x19c352['query'][_0x8db1('0x5e')]){_0x385d31=as[_0x8db1('0x5f')](_0x19c352[_0x8db1('0x3c')][_0x8db1('0x5e')]);var _0x1b2f77=_0x385d31[_0x8db1('0x60')];for(var _0x4f4fb5=0x0;_0x4f4fb5<_0x385d31[_0x8db1('0x61')][_0x8db1('0x62')];_0x4f4fb5++){var _0x4fb3b6=_0x385d31[_0x8db1('0x61')][_0x4f4fb5];var _0x52019b='i';var _0x2620c3=_[_0x8db1('0x63')](_0x33032d,[_0x8db1('0x2e'),_0x4fb3b6[_0x8db1('0x4a')]]);if(!_0x2620c3){switch(_0x4fb3b6[_0x8db1('0x4a')]){case _0x8db1('0x64'):if(_0x4fb3b6[_0x8db1('0x65')]==0x1){_0x3d7c63[_0x8db1('0x66')]('`'+_0x4fb3b6[_0x8db1('0x4a')]+_0x8db1('0x67'));}else{_0x3d7c63[_0x8db1('0x66')]('`'+_0x4fb3b6['field']+'`\x20>\x200');}break;case _0x8db1('0x68'):if(_0x4fb3b6['operator']===_0x8db1('0x69')){if(_0x4fb3b6[_0x8db1('0x65')][_0x8db1('0x35')]('\x20')[_0x8db1('0x62')]>0x1){_0x833e71[_0x1b2f77](_0x8db1('0x6a'),qs[_0x8db1('0x6b')](_0x4fb3b6[_0x8db1('0x65')]),null);}else{var _0x29437f='%'+_0x4fb3b6[_0x8db1('0x65')]+'%';_0x833e71[_0x1b2f77]('c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?',_0x29437f,_0x29437f,_0x29437f);}}else{_0x2620c3=_[_0x8db1('0x63')](_0x33032d,[_0x8db1('0x2e'),_0x8db1('0x6c')]);_0x4fb3b6[_0x8db1('0x4a')]='ContactId';_0x270a16=as[_0x8db1('0x6d')](_0x52019b,_0x2620c3[_0x8db1('0x6e')],_0x4fb3b6);_0x833e71[_0x1b2f77](_0x270a16[_0x8db1('0x6f')],_0x270a16[_0x8db1('0x65')][_0x8db1('0x70')],_0x270a16[_0x8db1('0x65')][_0x8db1('0x1e')]);}break;case _0x8db1('0x71'):var _0x3737e4=_0x4fb3b6[_0x8db1('0x65')][_0x8db1('0x35')](',')[_0x8db1('0x31')](function(_0x2ed466){return Number(_0x2ed466);});_0x3737e4[_0x8db1('0x36')](function(_0x1b987b){_0xe02064['or'](_0x8db1('0x72'),'%,'+_0x1b987b+',%');});_0x1bc715=_['union'](_0x1bc715,_0x3737e4);break;case'User':if(_0x4fb3b6[_0x8db1('0x73')]==='$substring'){_0x833e71[_0x1b2f77]('CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','%'+_0x4fb3b6[_0x8db1('0x65')]+'%',null);}else{_0x2620c3=_[_0x8db1('0x63')](_0x33032d,['name','UserId']);_0x4fb3b6[_0x8db1('0x4a')]=_0x8db1('0x74');_0x270a16=as['buildExpression'](_0x52019b,_0x2620c3[_0x8db1('0x6e')],_0x4fb3b6);_0x833e71[_0x1b2f77](_0x270a16[_0x8db1('0x6f')],_0x270a16[_0x8db1('0x65')][_0x8db1('0x70')],_0x270a16['value'][_0x8db1('0x1e')]);}break;case _0x8db1('0x75'):_0x270a16=as[_0x8db1('0x6d')]('me',null,_0x4fb3b6);_0x833e71[_0x1b2f77](_0x270a16[_0x8db1('0x6f')],_0x270a16['value'][_0x8db1('0x70')],_0x270a16[_0x8db1('0x65')][_0x8db1('0x1e')]);break;}}else{var _0x270a16=as[_0x8db1('0x6d')](_0x52019b,_0x2620c3[_0x8db1('0x6e')],_0x4fb3b6);_0x833e71[_0x1b2f77](_0x270a16[_0x8db1('0x6f')],_0x270a16[_0x8db1('0x65')][_0x8db1('0x70')],_0x270a16[_0x8db1('0x65')][_0x8db1('0x1e')]);}}}else{var _0x5a24d4=_(_0x19c352[_0x8db1('0x3c')])[_0x8db1('0x3d')]()[_0x8db1('0x31')](function(_0x442634){return _[_0x8db1('0x76')](_0x33032d,[_0x8db1('0x2e'),_0x442634])?_0x442634:undefined;})['compact']()[_0x8db1('0x65')]();if(!_[_0x8db1('0x77')](_0x5a24d4)){_0x5a24d4[_0x8db1('0x36')](function(_0x284c72){if(_0x284c72==='FaxAccountId'){_0x3d7c63[_0x8db1('0x46')](_0x8db1('0x78'),[][_0x8db1('0x79')](_0x19c352[_0x8db1('0x3c')][_0x284c72]));}else if(_0x284c72===_0x8db1('0x7a')){var _0x2b7b14=JSON['parse'](_0x19c352['query'][_0x284c72])[_0x8db1('0x7b')];var _0x4a1cc4=JSON[_0x8db1('0x7c')](_0x19c352['query'][_0x284c72])[_0x8db1('0x7d')];_0x3d7c63[_0x8db1('0x46')](_0x8db1('0x7e'),_0x2b7b14,_0x4a1cc4);}else{if(_0x19c352[_0x8db1('0x3c')][_0x284c72]===_0x8db1('0x7f')){_0x3d7c63[_0x8db1('0x46')]('i.'+_0x284c72+'\x20IS\x20NULL');}else{_0x3d7c63[_0x8db1('0x46')]('i.'+_0x284c72+_0x8db1('0x80'),_0x19c352[_0x8db1('0x3c')][_0x284c72]);}}});}if(_0x19c352[_0x8db1('0x3c')][_0x8db1('0x81')]){if(_0x19c352[_0x8db1('0x3c')][_0x8db1('0x81')]==0x1){_0x3d7c63['having'](_0x8db1('0x82'));}else{_0x3d7c63[_0x8db1('0x66')](_0x8db1('0x83'));}}if(_0x19c352['query']['tag']){_0x1bc715=_[_0x8db1('0x84')](_0x19c352[_0x8db1('0x3c')][_0x8db1('0x85')])?_0x19c352[_0x8db1('0x3c')][_0x8db1('0x85')]:new Array(_0x19c352[_0x8db1('0x3c')]['tag']);_0x1bc715[_0x8db1('0x36')](function(_0x3d515b){_0xe02064['or'](_0x8db1('0x72'),'%,'+_0x3d515b+',%');});}if(_0x19c352['query'][_0x8db1('0x86')]){var _0x32b74a=_0x19c352['query']['filter'][_0x8db1('0x87')]('\x5c','\x5c\x5c')[_0x8db1('0x87')](/'/g,'\x27\x27');if(qs[_0x8db1('0x88')](_0x32b74a)){_0x833e71['or'](_0x8db1('0x89'),_0x32b74a+'%')['or'](_0x8db1('0x8a'),_0x32b74a+'%');}_0x833e71['or']('CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?',_0x32b74a+'%');}}_0x3d7c63[_0x8db1('0x46')](_0x833e71);_0x3d7c63[_0x8db1('0x8b')](_0x8db1('0x8c'));var _0x324b1c={'type':db[_0x8db1('0x8d')][_0x8db1('0x8e')][_0x8db1('0x8f')],'raw':!![]};var _0x253caa=_0x3d7c63[_0x8db1('0x90')]();_0x253caa['field'](_0x8db1('0x8c'));_0x253caa['field'](_0x8db1('0x91'),_0x8db1('0x64'));if(_0x162cde[_0x8db1('0x44')]){_0x162cde[_0x8db1('0x44')][_0x8db1('0x36')](function(_0x2ceb47){var _0x54fe58=_0x2ceb47[0x0]==='contactName'?_0x2ceb47[0x0]:'i.'+_0x2ceb47[0x0];_0x3d7c63[_0x8db1('0x44')](_0x54fe58,_0x2ceb47[0x1]===_0x8db1('0x92')?![]:!![]);});}if(!_['isEmpty'](_0x1bc715)){_0x3d7c63[_0x8db1('0x66')](_0xe02064);_0x253caa[_0x8db1('0x46')](_0x8db1('0x93'),_0x1bc715);}BPromise[_0x8db1('0x94')]()[_0x8db1('0x2a')](function(){if(!_0x385d31){if(_0x19c352[_0x8db1('0x3c')][_0x8db1('0x95')])return;_0x253caa['where'](_0x8db1('0x96'));_0x3d7c63[_0x8db1('0x46')](_0x8db1('0x96'));return;}if(_0x19c352[_0x8db1('0x97')][_0x8db1('0x98')]!==_0x8db1('0x99'))return;return _0x19c352['user'][_0x8db1('0x9a')]({'attributes':['id'],'raw':!![]})[_0x8db1('0x2a')](function(_0x1500a5){if(_['isEmpty'](_0x1500a5)){_0x253caa['where'](_0x8db1('0x9b'));_0x3d7c63[_0x8db1('0x46')](_0x8db1('0x9b'));}else{_0x253caa[_0x8db1('0x46')](_0x8db1('0x78'),_[_0x8db1('0x31')](_0x1500a5,'id'));_0x3d7c63['where'](_0x8db1('0x78'),_[_0x8db1('0x31')](_0x1500a5,'id'));}});})[_0x8db1('0x2a')](function(){if(_0x19c352[_0x8db1('0x97')][_0x8db1('0x98')]===_0x8db1('0x99')&&!_0x385d31&&!_0x19c352[_0x8db1('0x3c')][_0x8db1('0x95')])return[];return db['sequelize'][_0x8db1('0x3c')](_0x253caa[_0x8db1('0x9c')](),_0x324b1c);})['then'](function(_0x2e0445){_0x3f3c46[_0x8db1('0x23')]=_0x2e0445[_0x8db1('0x62')];if(_0x3f3c46['count']===0x0)return[];return db['sequelize'][_0x8db1('0x3c')](_0x4bc72d[_0x8db1('0x9c')](),_0x324b1c)[_0x8db1('0x2a')](function(_0x2d716d){_0x2a22d3=_[_0x8db1('0x9d')](_0x2d716d,'id');_0x324b1c=_[_0x8db1('0x9e')](_0x324b1c,{'model':db[_0x8db1('0x39')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x19c352[_0x8db1('0x3c')][_0x8db1('0x40')]){_0x162cde[_0x8db1('0x41')][_0x8db1('0x36')](function(_0x33b084){_0x3d7c63['field']('i.'+_0x33b084);});}else{_0x3d7c63['field'](_0x8db1('0x91'),_0x8db1('0x64'));_0x3d7c63[_0x8db1('0x4a')](_0x8db1('0x9f'),_0x8db1('0xa0'));_0x3d7c63[_0x8db1('0x4a')](_0x8db1('0xa1'),_0x8db1('0xa2'));_0x3d7c63[_0x8db1('0x4a')]('CASE\x20WHEN\x20(c.firstName\x20IS\x20NOT\x20NULL\x20AND\x20c.firstName\x20<>\x20\x27\x27)\x20OR\x20(c.lastName\x20IS\x20NOT\x20NULL\x20AND\x20c.lastName\x20<>\x20\x27\x27)\x20THEN\x20CONCAT(IFNULL(c.firstName,\x20\x27\x27),\x20\x27\x20\x27,\x20IFNULL(c.lastName,\x20\x27\x27))\x20ELSE\x20\x27Unknown\x27\x20END','contactName');_0x3d7c63[_0x8db1('0x4a')](_0x8db1('0xa3'));_0x3d7c63['field'](_0x8db1('0xa4'),'Contact.firstName');_0x3d7c63[_0x8db1('0x4a')](_0x8db1('0xa5'),_0x8db1('0xa6'));_0x3d7c63[_0x8db1('0x4a')](_0x8db1('0xa7'),_0x8db1('0xa8'));_0x3d7c63['field'](_0x8db1('0xa9'),'Contact.phone');_0x3d7c63[_0x8db1('0x4a')](_0x8db1('0xaa'),_0x8db1('0xab'));_0x3d7c63[_0x8db1('0x4a')](_0x8db1('0xac'),_0x8db1('0xad'));_0x3d7c63[_0x8db1('0x4a')](_0x8db1('0xae'),'Owner.fullname');_0x3d7c63[_0x8db1('0x4a')](_0x8db1('0xaf'),_0x8db1('0xb0'));_0x3d7c63[_0x8db1('0x4a')](_0x8db1('0xb1'),'TagIds');}if(_0x162cde[_0x8db1('0x21')])_0x3d7c63['limit'](_0x162cde[_0x8db1('0x21')]);if(_0x162cde[_0x8db1('0x22')])_0x3d7c63[_0x8db1('0x22')](_0x162cde[_0x8db1('0x22')]);return db[_0x8db1('0xb2')]['query'](_0x3d7c63[_0x8db1('0x9c')](),_0x324b1c);})[_0x8db1('0x2a')](function(_0x407f26){if(_0x407f26[_0x8db1('0x62')]>0x0)_0x3e65b9['where'](_0x8db1('0xb3'),_[_0x8db1('0x31')](_0x407f26,'id'));return db[_0x8db1('0xb2')][_0x8db1('0x3c')](_0x3e65b9['toString'](),_0x324b1c)[_0x8db1('0x2a')](function(_0x24af94){var _0x91d661=_[_0x8db1('0xb4')](_0x24af94,_0x8db1('0xb5'));var _0x2516a6=[];_0x407f26[_0x8db1('0x36')](function(_0x93b9d7){_0x2516a6['push'](updateFaxInteraction(_0x93b9d7,_0x2a22d3,_0x91d661));});return BPromise[_0x8db1('0xb6')](_0x2516a6);});});})[_0x8db1('0x2a')](function(_0x4617d5){_0x3f3c46[_0x8db1('0xb7')]=_0x4617d5;return _0x3f3c46;})[_0x8db1('0x2a')](respondWithFilteredResult(_0x9fffcf,_0x162cde))['catch'](handleError(_0x9fffcf,null));};exports[_0x8db1('0xb8')]=function(_0x3a1bf0,_0x4f4e76){var _0x281ad6={'raw':![],'where':{'id':_0x3a1bf0[_0x8db1('0xb9')]['id']}},_0x108242={};_0x108242[_0x8db1('0x3f')]=_['keys'](db[_0x8db1('0x39')][_0x8db1('0xba')]);_0x108242[_0x8db1('0x3c')]=_[_0x8db1('0x3d')](_0x3a1bf0[_0x8db1('0x3c')]);_0x108242[_0x8db1('0x47')]=_[_0x8db1('0x3e')](_0x108242[_0x8db1('0x3f')],_0x108242[_0x8db1('0x3c')]);_0x281ad6[_0x8db1('0x41')]=_[_0x8db1('0x3e')](_0x108242[_0x8db1('0x3f')],qs[_0x8db1('0x40')](_0x3a1bf0[_0x8db1('0x3c')]['fields']));_0x281ad6[_0x8db1('0x41')]=_0x281ad6[_0x8db1('0x41')]['length']?_0x281ad6[_0x8db1('0x41')]:_0x108242[_0x8db1('0x3f')];if(_0x3a1bf0[_0x8db1('0x3c')][_0x8db1('0xbb')]){_0x281ad6[_0x8db1('0xbc')]=[{'all':!![]}];}_0x281ad6=_[_0x8db1('0x9e')]({},_0x281ad6,_0x3a1bf0[_0x8db1('0xbd')]);return db[_0x8db1('0x39')][_0x8db1('0x63')](_0x281ad6)['then'](handleEntityNotFound(_0x4f4e76,null))[_0x8db1('0x2a')](respondWithResult(_0x4f4e76,null))[_0x8db1('0xbe')](handleError(_0x4f4e76,null));};exports[_0x8db1('0xbf')]=function(_0x10a449,_0x1c40e9){return db['FaxInteraction'][_0x8db1('0xbf')](_0x10a449[_0x8db1('0x75')],{})[_0x8db1('0x2a')](respondWithResult(_0x1c40e9,0xc9))[_0x8db1('0xbe')](handleError(_0x1c40e9,null));};exports['update']=function(_0x4aed82,_0x3a09ae){if(_0x4aed82[_0x8db1('0x75')]['id']){delete _0x4aed82[_0x8db1('0x75')]['id'];}return db['FaxInteraction']['find']({'where':{'id':_0x4aed82[_0x8db1('0xb9')]['id']}})['then'](handleEntityNotFound(_0x3a09ae,null))['then'](saveUpdates(_0x4aed82['body'],null))[_0x8db1('0x2a')](respondWithResult(_0x3a09ae,null))[_0x8db1('0xbe')](handleError(_0x3a09ae,null));};exports[_0x8db1('0x2b')]=function(_0x396c06,_0x42bace){return db[_0x8db1('0x39')][_0x8db1('0x63')]({'where':{'id':_0x396c06[_0x8db1('0xb9')]['id']}})[_0x8db1('0x2a')](handleEntityNotFound(_0x42bace,null))['then'](removeEntity(_0x42bace,null))[_0x8db1('0xbe')](handleError(_0x42bace,null));};exports[_0x8db1('0xc0')]=function(_0x24f6d9,_0x1c4008){return db[_0x8db1('0x39')][_0x8db1('0xc0')]()[_0x8db1('0x2a')](respondWithResult(_0x1c4008,null))[_0x8db1('0xbe')](handleError(_0x1c4008,null));};exports[_0x8db1('0xc1')]=function(_0x46151f,_0x438a96,_0x4cf192){return db[_0x8db1('0xc2')][_0x8db1('0x63')]({'where':{'id':_0x46151f['params']['id']}})[_0x8db1('0x2a')](handleEntityNotFound(_0x438a96,null))['then'](function(_0x330192){if(_0x330192){return _0x330192[_0x8db1('0xc1')](_0x46151f[_0x8db1('0x75')][_0x8db1('0xc3')],_[_0x8db1('0xc4')](_0x46151f['body'],[_0x8db1('0xc3'),'id'])||{});}})[_0x8db1('0x2a')](respondWithResult(_0x438a96,null))[_0x8db1('0xbe')](handleError(_0x438a96,null));};exports[_0x8db1('0xc5')]=function(_0x5ddf1d,_0x14d5a9,_0x51a98f){var _0x45a2e1={'raw':![],'where':{}};var _0x416280={};var _0x2acabb={'count':0x0,'rows':[]};return db[_0x8db1('0x39')]['findOne']({'where':{'id':_0x5ddf1d['params']['id']}})[_0x8db1('0x2a')](handleEntityNotFound(_0x14d5a9,null))[_0x8db1('0x2a')](function(_0x5eb6e5){if(_0x5eb6e5){_0x416280[_0x8db1('0x3f')]=_['keys'](db[_0x8db1('0xc2')][_0x8db1('0xba')]);_0x416280['query']=_[_0x8db1('0x3d')](_0x5ddf1d[_0x8db1('0x3c')]);_0x416280['filters']=_[_0x8db1('0x3e')](_0x416280[_0x8db1('0x3f')],_0x416280[_0x8db1('0x3c')]);_0x45a2e1[_0x8db1('0x41')]=_[_0x8db1('0x3e')](_0x416280[_0x8db1('0x3f')],qs[_0x8db1('0x40')](_0x5ddf1d[_0x8db1('0x3c')]['fields']));_0x45a2e1[_0x8db1('0x41')]=_0x45a2e1['attributes']['length']?_0x45a2e1['attributes']:_0x416280[_0x8db1('0x3f')];if(!_0x5ddf1d['query'][_0x8db1('0x42')]('nolimit')){_0x45a2e1[_0x8db1('0x21')]=qs[_0x8db1('0x21')](_0x5ddf1d[_0x8db1('0x3c')][_0x8db1('0x21')]);_0x45a2e1[_0x8db1('0x22')]=qs[_0x8db1('0x22')](_0x5ddf1d[_0x8db1('0x3c')][_0x8db1('0x22')]);}_0x45a2e1[_0x8db1('0x44')]=qs['sort'](_0x5ddf1d['query'][_0x8db1('0x45')]);_0x45a2e1[_0x8db1('0x46')]=qs[_0x8db1('0x47')](_[_0x8db1('0x48')](_0x5ddf1d[_0x8db1('0x3c')],_0x416280['filters']));_0x45a2e1[_0x8db1('0x46')]['FaxInteractionId']=_0x5eb6e5['id'];if(_0x5ddf1d[_0x8db1('0x3c')]['filter']){_0x45a2e1[_0x8db1('0x46')]=_['merge'](_0x45a2e1[_0x8db1('0x46')],{'$or':_['map'](_0x45a2e1['attributes'],function(_0x1a3ad5){var _0x3a7647={};_0x3a7647[_0x1a3ad5]={'$like':'%'+_0x5ddf1d['query'][_0x8db1('0x86')]+'%'};return _0x3a7647;})});}if(_0x5ddf1d[_0x8db1('0x3c')][_0x8db1('0x7b')]){var _0x2411b3=_0x5ddf1d[_0x8db1('0x3c')]['$gte'][_0x8db1('0x35')](',');var _0x57dfe0={};_0x57dfe0[_0x2411b3[0x0]]={'$gte':moment(_0x2411b3[0x1])['format']('YYYY-MM-DD\x20HH:mm:ss')};_0x45a2e1['where']=_['merge'](_0x45a2e1[_0x8db1('0x46')],_0x57dfe0);}_0x45a2e1=_[_0x8db1('0x9e')]({},_0x45a2e1,_0x5ddf1d[_0x8db1('0xbd')]);return db['FaxMessage'][_0x8db1('0x23')]({'where':_0x45a2e1[_0x8db1('0x46')]})[_0x8db1('0x2a')](function(_0x33668c){_0x2acabb[_0x8db1('0x23')]=_0x33668c;if(_0x5ddf1d[_0x8db1('0x3c')][_0x8db1('0xbb')]){_0x45a2e1[_0x8db1('0xbc')]=[{'all':!![]}];}return db[_0x8db1('0xc2')][_0x8db1('0xc6')](_0x45a2e1);})[_0x8db1('0x2a')](function(_0x22115f){_0x2acabb[_0x8db1('0xb7')]=_0x22115f;return _0x2acabb;});}})[_0x8db1('0x2a')](respondWithFilteredResult(_0x14d5a9,_0x45a2e1))[_0x8db1('0xbe')](handleError(_0x14d5a9,null));};exports[_0x8db1('0xc7')]=function(_0x195d99,_0x327865,_0x4500b7){return db[_0x8db1('0x39')]['find']({'where':{'id':_0x195d99[_0x8db1('0xb9')]['id']}})[_0x8db1('0x2a')](handleEntityNotFound(_0x327865,null))[_0x8db1('0x2a')](function(_0x2d9547){if(_0x2d9547){return _0x2d9547[_0x8db1('0xc8')](_0x195d99[_0x8db1('0x75')]['ids'],_['omit'](_0x195d99['body'],[_0x8db1('0xc3'),'id'])||{})[_0x8db1('0xc9')](function(){return db['Tag'][_0x8db1('0xc6')]({'attributes':['id',_0x8db1('0x2e'),_0x8db1('0x4b')],'where':{'id':_0x195d99['body']['ids']}});})[_0x8db1('0x2a')](function(_0x2b842d){socket[_0x8db1('0xca')](_0x8db1('0xcb'),{'id':Number(_0x195d99[_0x8db1('0xb9')]['id']),'tags':_0x2b842d||[]});return{'id':Number(_0x195d99[_0x8db1('0xb9')]['id']),'tags':_0x2b842d||[]};});}})[_0x8db1('0x2a')](respondWithResult(_0x327865,null))['catch'](handleError(_0x327865,null));};exports[_0x8db1('0xcc')]=function(_0x2ffb00,_0x5cb986,_0x58fb52){return db[_0x8db1('0x39')][_0x8db1('0x63')]({'where':{'id':_0x2ffb00['params']['id']}})[_0x8db1('0x2a')](handleEntityNotFound(_0x5cb986,null))[_0x8db1('0x2a')](function(_0x2ad611){if(_0x2ad611){return _0x2ad611[_0x8db1('0xcc')](_0x2ffb00[_0x8db1('0x3c')][_0x8db1('0xc3')]);}})['then'](respondWithStatusCode(_0x5cb986,null))[_0x8db1('0xbe')](handleError(_0x5cb986,null));};exports[_0x8db1('0xcd')]=function(_0x3ce737,_0x43ebe9){var _0x32d9bf=moment()['unix']()[_0x8db1('0x9c')]();var _0x5b7c47=path[_0x8db1('0xce')](config[_0x8db1('0xcf')],_0x8db1('0xd0'),'files','tmp');var _0x427567=path[_0x8db1('0xce')](config[_0x8db1('0xcf')],'server','files',_0x8db1('0xd1'));var _0xcfb82e=path['join'](_0x5b7c47,_0x32d9bf);var _0x1ce7d1=util[_0x8db1('0xd2')](_0x8db1('0xd3'),_0x3ce737[_0x8db1('0xb9')]['id'],_0x32d9bf);var _0x56621a=path['join'](_0x5b7c47,_0x1ce7d1);var _0x2e6f67=[];_0x2e6f67[_0x8db1('0x37')]({'model':db[_0x8db1('0xd4')],'as':'Attachment','raw':!![]});var _0x2bbcd2=[{'model':db[_0x8db1('0xc2')],'as':'Messages','attributes':['id',_0x8db1('0x75'),_0x8db1('0x7a')],'include':_0x2e6f67}];return db[_0x8db1('0x39')]['find']({'where':{'id':_0x3ce737[_0x8db1('0xb9')]['id']},'include':_0x2bbcd2})[_0x8db1('0x2a')](handleEntityNotFound(_0x43ebe9,null))[_0x8db1('0x2a')](function(_0x4bbeb5){if(_0x4bbeb5&&_0x4bbeb5[_0x8db1('0xd5')]){var _0x56c7f0=_0x4bbeb5['get']({'plain':!![]});fs[_0x8db1('0xd6')](_0xcfb82e);for(var _0x3fd09a=0x0;_0x3fd09a<_0x56c7f0['Messages'][_0x8db1('0x62')];_0x3fd09a++){var _0x2f923=_0x56c7f0['Messages'][_0x3fd09a]['Attachment'];if(_0x2f923){var _0x27d4da=path[_0x8db1('0xce')](_0x427567,_0x2f923[_0x8db1('0xd7')]);if(fs[_0x8db1('0xd8')](_0x27d4da)){fs[_0x8db1('0xd9')](_0x27d4da)['pipe'](fs['createWriteStream'](path['join'](_0xcfb82e,_0x2f923[_0x8db1('0xd7')])));}}}return BPromise[_0x8db1('0x94')]()[_0x8db1('0x2a')](function(){return new BPromise(function(_0x7ced6a,_0x2ca99e){zipdir(_0xcfb82e,{'saveTo':_0x56621a},function(_0xade00f,_0x17ef71){if(_0xade00f)return _0x2ca99e(_0xade00f);return _0x7ced6a(_0x17ef71);});})[_0x8db1('0x2a')](function(){return new BPromise(function(_0x33533d,_0x387f36){rimraf(_0xcfb82e,function(_0x56bd4f){if(_0x56bd4f)_0x387f36(_0x56bd4f);return _0x33533d();});});})[_0x8db1('0x2a')](function(){return _0x43ebe9['download'](_0x56621a,_0x1ce7d1,function(_0x12c843){if(_0x12c843){console[_0x8db1('0xda')]('err',_0x12c843);}else{fs[_0x8db1('0xdb')](_0x56621a);}});});});}else{return _0x43ebe9[_0x8db1('0x1c')](0xc8);}})[_0x8db1('0xbe')](handleError(_0x43ebe9,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0806=['setDataValue','Users','map','unreadMessages','length','emit','exports','events','../../mysqldb','FaxMessage','save','update','remove','getUsers','then'];(function(_0x2d8fc2,_0x1c461d){var _0x3a9e53=function(_0x18941c){while(--_0x18941c){_0x2d8fc2['push'](_0x2d8fc2['shift']());}};_0x3a9e53(++_0x1c461d);}(_0x0806,0x1ab));var _0x6080=function(_0x48fb49,_0x150fd1){_0x48fb49=_0x48fb49-0x0;var _0x5441c0=_0x0806[_0x48fb49];return _0x5441c0;};'use strict';var EventEmitter=require(_0x6080('0x0'));var FaxInteraction=require(_0x6080('0x1'))['db']['FaxInteraction'];var FaxMessage=require(_0x6080('0x1'))['db'][_0x6080('0x2')];var FaxInteractionEvents=new EventEmitter();FaxInteractionEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x6080('0x3'),'afterUpdate':_0x6080('0x4'),'afterDestroy':_0x6080('0x5')};function emitEvent(_0x32bcc2){return function(_0x473e84,_0x138177,_0x358b00){_0x473e84[_0x6080('0x6')]({'attributes':['id'],'raw':!![]})[_0x6080('0x7')](function(_0x1daae8){_0x473e84[_0x6080('0x8')](_0x6080('0x9'),_0x1daae8[_0x6080('0xa')](function(_0x4aa5e5){return{'id':_0x4aa5e5['id']};}));return FaxMessage['findAll']({'where':{'FaxInteractionId':_0x473e84['id'],'direction':'in','read':![]},'raw':!![]});})['then'](function(_0x72d7b9){_0x473e84[_0x6080('0x8')](_0x6080('0xb'),_0x72d7b9[_0x6080('0xc')]);FaxInteractionEvents[_0x6080('0xd')](_0x32bcc2+':'+_0x473e84['id'],_0x473e84);FaxInteractionEvents[_0x6080('0xd')](_0x32bcc2,_0x473e84);_0x358b00(null);})['catch'](_0x358b00(null));};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];FaxInteraction['hook'](e,emitEvent(event));}}module[_0x6080('0xe')]=FaxInteractionEvents;
\ No newline at end of file
+var _0xcba8=['update','remove','then','Users','map','findAll','unreadMessages','length','catch','hook','exports','events','../../mysqldb','FaxInteraction','FaxMessage','setMaxListeners','save'];(function(_0x409ab1,_0x344c1f){var _0x3ef292=function(_0x23fe1a){while(--_0x23fe1a){_0x409ab1['push'](_0x409ab1['shift']());}};_0x3ef292(++_0x344c1f);}(_0xcba8,0xa4));var _0x8cba=function(_0x3d819d,_0x5ad081){_0x3d819d=_0x3d819d-0x0;var _0x26733b=_0xcba8[_0x3d819d];return _0x26733b;};'use strict';var EventEmitter=require(_0x8cba('0x0'));var FaxInteraction=require(_0x8cba('0x1'))['db'][_0x8cba('0x2')];var FaxMessage=require(_0x8cba('0x1'))['db'][_0x8cba('0x3')];var FaxInteractionEvents=new EventEmitter();FaxInteractionEvents[_0x8cba('0x4')](0x0);var events={'afterCreate':_0x8cba('0x5'),'afterUpdate':_0x8cba('0x6'),'afterDestroy':_0x8cba('0x7')};function emitEvent(_0x3134dc){return function(_0x3a48c8,_0x2738b3,_0x4a50cb){_0x3a48c8['getUsers']({'attributes':['id'],'raw':!![]})[_0x8cba('0x8')](function(_0x125114){_0x3a48c8['setDataValue'](_0x8cba('0x9'),_0x125114[_0x8cba('0xa')](function(_0x3b7782){return{'id':_0x3b7782['id']};}));return FaxMessage[_0x8cba('0xb')]({'where':{'FaxInteractionId':_0x3a48c8['id'],'direction':'in','read':![]},'raw':!![]});})[_0x8cba('0x8')](function(_0x404890){_0x3a48c8['setDataValue'](_0x8cba('0xc'),_0x404890[_0x8cba('0xd')]);FaxInteractionEvents['emit'](_0x3134dc+':'+_0x3a48c8['id'],_0x3a48c8);FaxInteractionEvents['emit'](_0x3134dc,_0x3a48c8);_0x4a50cb(null);})[_0x8cba('0xe')](_0x4a50cb(null));};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];FaxInteraction[_0x8cba('0xf')](e,emitEvent(event));}}module[_0x8cba('0x10')]=FaxInteractionEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x961e=['fax_interactions','changed','closed','closedAt','format','YYYY-MM-DD\x20HH:mm:ss','lodash','util','../../config/logger','api','moment','bluebird','request-promise','../../config/environment','exports','define','FaxInteraction'];(function(_0xfcba24,_0x119c2c){var _0x3e1d44=function(_0x1e6db2){while(--_0x1e6db2){_0xfcba24['push'](_0xfcba24['shift']());}};_0x3e1d44(++_0x119c2c);}(_0x961e,0xd2));var _0xe961=function(_0x47f37d,_0x378175){_0x47f37d=_0x47f37d-0x0;var _0x2326e7=_0x961e[_0x47f37d];return _0x2326e7;};'use strict';var _=require(_0xe961('0x0'));var util=require(_0xe961('0x1'));var logger=require(_0xe961('0x2'))(_0xe961('0x3'));var moment=require(_0xe961('0x4'));var BPromise=require(_0xe961('0x5'));var rp=require(_0xe961('0x6'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0xe961('0x7'));var attributes=require('./faxInteraction.attributes');module[_0xe961('0x8')]=function(_0x5c33dc,_0x4d913d){return _0x5c33dc[_0xe961('0x9')](_0xe961('0xa'),attributes,{'tableName':_0xe961('0xb'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeUpdate':function(_0x141fec,_0x3c9bb6,_0x21bfb1){if(_0x141fec[_0xe961('0xc')](_0xe961('0xd'))){_0x141fec[_0xe961('0xe')]=moment()[_0xe961('0xf')](_0xe961('0x10'));}_0x21bfb1(null,_0x141fec);}}});};
\ No newline at end of file
+var _0xdb79=['./faxInteraction.attributes','define','FaxInteraction','fax_interactions','changed','closed','closedAt','format','lodash','util','../../config/logger','bluebird','path','../../config/environment'];(function(_0x12f688,_0x585c25){var _0x59c3de=function(_0x4ac301){while(--_0x4ac301){_0x12f688['push'](_0x12f688['shift']());}};_0x59c3de(++_0x585c25);}(_0xdb79,0x1e4));var _0x9db7=function(_0x2aec52,_0x59d962){_0x2aec52=_0x2aec52-0x0;var _0x3b8835=_0xdb79[_0x2aec52];return _0x3b8835;};'use strict';var _=require(_0x9db7('0x0'));var util=require(_0x9db7('0x1'));var logger=require(_0x9db7('0x2'))('api');var moment=require('moment');var BPromise=require(_0x9db7('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x9db7('0x4'));var rimraf=require('rimraf');var config=require(_0x9db7('0x5'));var attributes=require(_0x9db7('0x6'));module['exports']=function(_0x5386b3,_0x5f06c0){return _0x5386b3[_0x9db7('0x7')](_0x9db7('0x8'),attributes,{'tableName':_0x9db7('0x9'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeUpdate':function(_0x596e0a,_0x2f180c,_0x20c001){if(_0x596e0a[_0x9db7('0xa')](_0x9db7('0xb'))){_0x596e0a[_0x9db7('0xc')]=moment()[_0x9db7('0xd')]('YYYY-MM-DD\x20HH:mm:ss');}_0x20c001(null,_0x596e0a);}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfe89=['../../config/logger','rpc','jayson/promise','http','redis','defaults','localhost','./faxInteraction.socket','FaxInteraction,\x20%s,\x20%s','request\x20sent','debug','FaxInteraction,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','update','body','options','raw','attributes','limit','UpdateFaxInteraction','AddTagsToFaxInteraction','FaxInteraction','find','where','then','addTags','ids','omit','spread','AddTags','lodash','util','bluebird','ioredis','../../mysqldb','../../config/utils'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xfe89,0xf6));var _0x9fe8=function(_0xb45bd5,_0x18706c){_0xb45bd5=_0xb45bd5-0x0;var _0x262459=_0xfe89[_0xb45bd5];return _0x262459;};'use strict';var _=require(_0x9fe8('0x0'));var util=require(_0x9fe8('0x1'));var moment=require('moment');var BPromise=require(_0x9fe8('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x9fe8('0x3'));var db=require(_0x9fe8('0x4'))['db'];var utils=require(_0x9fe8('0x5'));var logger=require(_0x9fe8('0x6'))(_0x9fe8('0x7'));var config=require('../../config/environment');var jayson=require(_0x9fe8('0x8'));var client=jayson['client'][_0x9fe8('0x9')]({'port':0x232a});config[_0x9fe8('0xa')]=_[_0x9fe8('0xb')](config[_0x9fe8('0xa')],{'host':_0x9fe8('0xc'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x9fe8('0xa')]));require(_0x9fe8('0xd'))['register'](socket);function respondWithRpcPromise(_0x78c990,_0x4b31e2,_0x36c371){return new BPromise(function(_0x1d03db,_0x2bb47f){return client['request'](_0x78c990,_0x36c371)['then'](function(_0x5bc563){logger['info'](_0x9fe8('0xe'),_0x4b31e2,_0x9fe8('0xf'));logger[_0x9fe8('0x10')](_0x9fe8('0x11'),_0x4b31e2,'request\x20sent',JSON[_0x9fe8('0x12')](_0x5bc563));if(_0x5bc563['error']){if(_0x5bc563[_0x9fe8('0x13')][_0x9fe8('0x14')]===0x1f4){logger[_0x9fe8('0x13')](_0x9fe8('0xe'),_0x4b31e2,_0x5bc563['error']['message']);return _0x2bb47f(_0x5bc563[_0x9fe8('0x13')]['message']);}logger[_0x9fe8('0x13')](_0x9fe8('0xe'),_0x4b31e2,_0x5bc563['error'][_0x9fe8('0x15')]);return _0x1d03db(_0x5bc563[_0x9fe8('0x13')][_0x9fe8('0x15')]);}else{logger[_0x9fe8('0x16')](_0x9fe8('0xe'),_0x4b31e2,_0x9fe8('0xf'));_0x1d03db(_0x5bc563[_0x9fe8('0x17')][_0x9fe8('0x15')]);}})[_0x9fe8('0x18')](function(_0x387de9){logger[_0x9fe8('0x13')]('FaxInteraction,\x20%s,\x20%s',_0x4b31e2,_0x387de9);_0x2bb47f(_0x387de9);});});}exports['UpdateFaxInteraction']=function(_0x11140b){var _0x25b385=this;return new Promise(function(_0x2ebf3e,_0x218e0c){return db['FaxInteraction'][_0x9fe8('0x19')](_0x11140b[_0x9fe8('0x1a')],{'raw':_0x11140b[_0x9fe8('0x1b')]?_0x11140b['options'][_0x9fe8('0x1c')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x11140b['options']?_0x11140b[_0x9fe8('0x1b')]['where']||null:null,'attributes':_0x11140b[_0x9fe8('0x1b')]?_0x11140b[_0x9fe8('0x1b')][_0x9fe8('0x1d')]||null:null,'limit':_0x11140b[_0x9fe8('0x1b')]?_0x11140b[_0x9fe8('0x1b')][_0x9fe8('0x1e')]||null:null})['then'](function(_0x4eb28a){logger[_0x9fe8('0x16')](_0x9fe8('0x1f'),_0x11140b);logger[_0x9fe8('0x10')](_0x9fe8('0x1f'),_0x11140b,JSON[_0x9fe8('0x12')](_0x4eb28a));_0x2ebf3e(_0x4eb28a);})[_0x9fe8('0x18')](function(_0x9bcce2){logger[_0x9fe8('0x13')](_0x9fe8('0x1f'),_0x9bcce2[_0x9fe8('0x15')],_0x11140b);_0x218e0c(_0x25b385['error'](0x1f4,_0x9bcce2[_0x9fe8('0x15')]));});});};exports[_0x9fe8('0x20')]=function(_0x495a25){return new Promise(function(_0x32304e,_0x2b417b){return db[_0x9fe8('0x21')][_0x9fe8('0x22')]({'where':_0x495a25['options']?_0x495a25['options'][_0x9fe8('0x23')]||null:null})[_0x9fe8('0x24')](function(_0x5a7f7c){if(_0x5a7f7c){return _0x5a7f7c[_0x9fe8('0x25')](_0x495a25[_0x9fe8('0x1a')][_0x9fe8('0x26')],_[_0x9fe8('0x27')](_0x495a25[_0x9fe8('0x1a')],[_0x9fe8('0x26'),'id'])||{});}})[_0x9fe8('0x28')](function(_0x54a368){logger['info'](_0x9fe8('0x29'),_0x495a25);logger[_0x9fe8('0x10')](_0x9fe8('0x29'),_0x495a25,JSON[_0x9fe8('0x12')](_0x54a368));_0x32304e(_0x54a368);})[_0x9fe8('0x18')](function(_0x454dd5){logger[_0x9fe8('0x13')](_0x9fe8('0x29'),_0x454dd5[_0x9fe8('0x15')],_0x495a25);_0x2b417b(_this[_0x9fe8('0x13')](0x1f4,_0x454dd5[_0x9fe8('0x15')]));});});};
\ No newline at end of file
+var _0xb755=['FaxInteraction,\x20%s,\x20%s,\x20%s','code','error','message','result','catch','UpdateFaxInteraction','update','body','options','raw','where','limit','then','debug','stringify','AddTagsToFaxInteraction','FaxInteraction','find','addTags','ids','omit','AddTags','lodash','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','redis','defaults','localhost','socket.io-emitter','./faxInteraction.socket','request','info','FaxInteraction,\x20%s,\x20%s','request\x20sent'];(function(_0x688df,_0x3cc215){var _0x266fef=function(_0x439d3f){while(--_0x439d3f){_0x688df['push'](_0x688df['shift']());}};_0x266fef(++_0x3cc215);}(_0xb755,0x6b));var _0x5b75=function(_0x248adc,_0x41970c){_0x248adc=_0x248adc-0x0;var _0x4b1cb9=_0xb755[_0x248adc];return _0x4b1cb9;};'use strict';var _=require(_0x5b75('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0x5b75('0x1'));var rs=require(_0x5b75('0x2'));var fs=require('fs');var Redis=require(_0x5b75('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x5b75('0x4'));var logger=require(_0x5b75('0x5'))(_0x5b75('0x6'));var config=require(_0x5b75('0x7'));var jayson=require('jayson/promise');var client=jayson[_0x5b75('0x8')][_0x5b75('0x9')]({'port':0x232a});config[_0x5b75('0xa')]=_[_0x5b75('0xb')](config[_0x5b75('0xa')],{'host':_0x5b75('0xc'),'port':0x18eb});var socket=require(_0x5b75('0xd'))(new Redis(config[_0x5b75('0xa')]));require(_0x5b75('0xe'))['register'](socket);function respondWithRpcPromise(_0x14ca51,_0x5e10e3,_0x3ef94d){return new BPromise(function(_0x402c52,_0xc2be52){return client[_0x5b75('0xf')](_0x14ca51,_0x3ef94d)['then'](function(_0x11ace4){logger[_0x5b75('0x10')](_0x5b75('0x11'),_0x5e10e3,_0x5b75('0x12'));logger['debug'](_0x5b75('0x13'),_0x5e10e3,'request\x20sent',JSON['stringify'](_0x11ace4));if(_0x11ace4['error']){if(_0x11ace4['error'][_0x5b75('0x14')]===0x1f4){logger[_0x5b75('0x15')](_0x5b75('0x11'),_0x5e10e3,_0x11ace4[_0x5b75('0x15')][_0x5b75('0x16')]);return _0xc2be52(_0x11ace4['error']['message']);}logger[_0x5b75('0x15')](_0x5b75('0x11'),_0x5e10e3,_0x11ace4['error'][_0x5b75('0x16')]);return _0x402c52(_0x11ace4[_0x5b75('0x15')]['message']);}else{logger['info'](_0x5b75('0x11'),_0x5e10e3,'request\x20sent');_0x402c52(_0x11ace4[_0x5b75('0x17')][_0x5b75('0x16')]);}})[_0x5b75('0x18')](function(_0x1569ce){logger['error'](_0x5b75('0x11'),_0x5e10e3,_0x1569ce);_0xc2be52(_0x1569ce);});});}exports[_0x5b75('0x19')]=function(_0x5d71f9){var _0x1d4983=this;return new Promise(function(_0x865dd2,_0x17fada){return db['FaxInteraction'][_0x5b75('0x1a')](_0x5d71f9[_0x5b75('0x1b')],{'raw':_0x5d71f9['options']?_0x5d71f9[_0x5b75('0x1c')][_0x5b75('0x1d')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x5d71f9[_0x5b75('0x1c')]?_0x5d71f9[_0x5b75('0x1c')][_0x5b75('0x1e')]||null:null,'attributes':_0x5d71f9[_0x5b75('0x1c')]?_0x5d71f9[_0x5b75('0x1c')]['attributes']||null:null,'limit':_0x5d71f9[_0x5b75('0x1c')]?_0x5d71f9[_0x5b75('0x1c')][_0x5b75('0x1f')]||null:null})[_0x5b75('0x20')](function(_0x45f26b){logger[_0x5b75('0x10')](_0x5b75('0x19'),_0x5d71f9);logger[_0x5b75('0x21')](_0x5b75('0x19'),_0x5d71f9,JSON[_0x5b75('0x22')](_0x45f26b));_0x865dd2(_0x45f26b);})[_0x5b75('0x18')](function(_0x4c433c){logger[_0x5b75('0x15')](_0x5b75('0x19'),_0x4c433c[_0x5b75('0x16')],_0x5d71f9);_0x17fada(_0x1d4983['error'](0x1f4,_0x4c433c[_0x5b75('0x16')]));});});};exports[_0x5b75('0x23')]=function(_0x5b41a3){return new Promise(function(_0x4192cb,_0xd3cd42){return db[_0x5b75('0x24')][_0x5b75('0x25')]({'where':_0x5b41a3[_0x5b75('0x1c')]?_0x5b41a3['options'][_0x5b75('0x1e')]||null:null})['then'](function(_0x3b3474){if(_0x3b3474){return _0x3b3474[_0x5b75('0x26')](_0x5b41a3[_0x5b75('0x1b')][_0x5b75('0x27')],_[_0x5b75('0x28')](_0x5b41a3[_0x5b75('0x1b')],[_0x5b75('0x27'),'id'])||{});}})['spread'](function(_0xb2f882){logger[_0x5b75('0x10')](_0x5b75('0x29'),_0x5b41a3);logger['debug'](_0x5b75('0x29'),_0x5b41a3,JSON['stringify'](_0xb2f882));_0x4192cb(_0xb2f882);})['catch'](function(_0x3acacf){logger[_0x5b75('0x15')](_0x5b75('0x29'),_0x3acacf['message'],_0x5b41a3);_0xd3cd42(_this[_0x5b75('0x15')](0x1f4,_0x3acacf['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0a18=['register','faxInteraction:','save','remove','update','emit'];(function(_0x433a86,_0x175b5c){var _0x23000c=function(_0x4b1fa0){while(--_0x4b1fa0){_0x433a86['push'](_0x433a86['shift']());}};_0x23000c(++_0x175b5c);}(_0x0a18,0x74));var _0x80a1=function(_0x486f4a,_0x478dc7){_0x486f4a=_0x486f4a-0x0;var _0x135d99=_0x0a18[_0x486f4a];return _0x135d99;};'use strict';var FaxInteractionEvents=require('./faxInteraction.events');var events=[_0x80a1('0x0'),_0x80a1('0x1'),_0x80a1('0x2')];function createListener(_0x39287f,_0x4341f6){return function(_0x401bdb){_0x4341f6[_0x80a1('0x3')](_0x39287f,_0x401bdb);};}function removeListener(_0x238267,_0x2c7e91){return function(){FaxInteractionEvents['removeListener'](_0x238267,_0x2c7e91);};}exports[_0x80a1('0x4')]=function(_0x216dcb){for(var _0x701e27=0x0,_0x295760=events['length'];_0x701e27<_0x295760;_0x701e27++){var _0x11a271=events[_0x701e27];var _0x231c22=createListener(_0x80a1('0x5')+_0x11a271,_0x216dcb);FaxInteractionEvents['on'](_0x11a271,_0x231c22);}};
\ No newline at end of file
+var _0xb3bc=['removeListener','register','length','faxInteraction:','./faxInteraction.events','save','remove','update','emit'];(function(_0x3ac8a5,_0x583f67){var _0x135fa3=function(_0x291753){while(--_0x291753){_0x3ac8a5['push'](_0x3ac8a5['shift']());}};_0x135fa3(++_0x583f67);}(_0xb3bc,0x1d8));var _0xcb3b=function(_0x344319,_0x3a8433){_0x344319=_0x344319-0x0;var _0x58d0ec=_0xb3bc[_0x344319];return _0x58d0ec;};'use strict';var FaxInteractionEvents=require(_0xcb3b('0x0'));var events=[_0xcb3b('0x1'),_0xcb3b('0x2'),_0xcb3b('0x3')];function createListener(_0x12dd09,_0x3e11b8){return function(_0x499682){_0x3e11b8[_0xcb3b('0x4')](_0x12dd09,_0x499682);};}function removeListener(_0x3c0d07,_0xfb3f01){return function(){FaxInteractionEvents[_0xcb3b('0x5')](_0x3c0d07,_0xfb3f01);};}exports[_0xcb3b('0x6')]=function(_0x1a8b39){for(var _0x5da87c=0x0,_0x4fc245=events[_0xcb3b('0x7')];_0x5da87c<_0x4fc245;_0x5da87c++){var _0x359811=events[_0x5da87c];var _0x200550=createListener(_0xcb3b('0x8')+_0x359811,_0x1a8b39);FaxInteractionEvents['on'](_0x359811,_0x200550);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7859=['util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../config/environment','./faxInteraction.controller','get','isAuthenticated','index','describe','/:id','show','/:id/messages','getMessages','/:id/download','post','fax','faxinteraction:addtags','addTags','put','faxinteraction:update','update','delete','tracked','faxinteraction:destroy','destroy','/:id/tags','multer'];(function(_0x5f0089,_0x227e2c){var _0x193892=function(_0x24051f){while(--_0x24051f){_0x5f0089['push'](_0x5f0089['shift']());}};_0x193892(++_0x227e2c);}(_0x7859,0x1ef));var _0x9785=function(_0x529592,_0x911272){_0x529592=_0x529592-0x0;var _0x5dfe7e=_0x7859[_0x529592];return _0x5dfe7e;};'use strict';var multer=require(_0x9785('0x0'));var util=require(_0x9785('0x1'));var path=require(_0x9785('0x2'));var timeout=require(_0x9785('0x3'));var express=require(_0x9785('0x4'));var router=express[_0x9785('0x5')]();var fs_extra=require(_0x9785('0x6'));var auth=require(_0x9785('0x7'));var interaction=require('../../components/interaction/service');var config=require(_0x9785('0x8'));var controller=require(_0x9785('0x9'));router[_0x9785('0xa')]('/',auth[_0x9785('0xb')](),controller[_0x9785('0xc')]);router[_0x9785('0xa')]('/describe',auth[_0x9785('0xb')](),controller[_0x9785('0xd')]);router['get'](_0x9785('0xe'),auth['isAuthenticated'](),controller[_0x9785('0xf')]);router['get'](_0x9785('0x10'),auth[_0x9785('0xb')](),controller[_0x9785('0x11')]);router['get'](_0x9785('0x12'),auth[_0x9785('0xb')](),controller['download']);router[_0x9785('0x13')]('/',auth[_0x9785('0xb')](),controller['create']);router[_0x9785('0x13')]('/:id/messages',auth[_0x9785('0xb')](),controller['addMessage']);router['post']('/:id/tags',auth[_0x9785('0xb')](),interaction['tracked'](_0x9785('0x14'),_0x9785('0x15')),controller[_0x9785('0x16')]);router[_0x9785('0x17')](_0x9785('0xe'),auth[_0x9785('0xb')](),interaction['tracked'](_0x9785('0x14'),_0x9785('0x18')),controller[_0x9785('0x19')]);router[_0x9785('0x1a')](_0x9785('0xe'),auth[_0x9785('0xb')](),interaction[_0x9785('0x1b')](_0x9785('0x14'),_0x9785('0x1c')),controller[_0x9785('0x1d')]);router[_0x9785('0x1a')](_0x9785('0x1e'),auth['isAuthenticated'](),controller['removeTags']);module['exports']=router;
\ No newline at end of file
+var _0xb115=['/:id/tags','fax','faxinteraction:addtags','addTags','put','tracked','update','delete','faxinteraction:destroy','destroy','removeTags','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/describe','describe','/:id','show','/:id/messages','getMessages','download','post'];(function(_0x10c9e8,_0x5182c7){var _0x481f8e=function(_0x3060cd){while(--_0x3060cd){_0x10c9e8['push'](_0x10c9e8['shift']());}};_0x481f8e(++_0x5182c7);}(_0xb115,0x177));var _0x5b11=function(_0x199572,_0x33e667){_0x199572=_0x199572-0x0;var _0x13cfa3=_0xb115[_0x199572];return _0x13cfa3;};'use strict';var multer=require(_0x5b11('0x0'));var util=require(_0x5b11('0x1'));var path=require(_0x5b11('0x2'));var timeout=require(_0x5b11('0x3'));var express=require(_0x5b11('0x4'));var router=express[_0x5b11('0x5')]();var fs_extra=require(_0x5b11('0x6'));var auth=require(_0x5b11('0x7'));var interaction=require(_0x5b11('0x8'));var config=require(_0x5b11('0x9'));var controller=require('./faxInteraction.controller');router[_0x5b11('0xa')]('/',auth[_0x5b11('0xb')](),controller[_0x5b11('0xc')]);router[_0x5b11('0xa')](_0x5b11('0xd'),auth[_0x5b11('0xb')](),controller[_0x5b11('0xe')]);router[_0x5b11('0xa')](_0x5b11('0xf'),auth[_0x5b11('0xb')](),controller[_0x5b11('0x10')]);router[_0x5b11('0xa')](_0x5b11('0x11'),auth[_0x5b11('0xb')](),controller[_0x5b11('0x12')]);router[_0x5b11('0xa')]('/:id/download',auth[_0x5b11('0xb')](),controller[_0x5b11('0x13')]);router['post']('/',auth['isAuthenticated'](),controller['create']);router[_0x5b11('0x14')](_0x5b11('0x11'),auth['isAuthenticated'](),controller['addMessage']);router['post'](_0x5b11('0x15'),auth[_0x5b11('0xb')](),interaction['tracked'](_0x5b11('0x16'),_0x5b11('0x17')),controller[_0x5b11('0x18')]);router[_0x5b11('0x19')]('/:id',auth[_0x5b11('0xb')](),interaction[_0x5b11('0x1a')](_0x5b11('0x16'),'faxinteraction:update'),controller[_0x5b11('0x1b')]);router[_0x5b11('0x1c')]('/:id',auth[_0x5b11('0xb')](),interaction['tracked'](_0x5b11('0x16'),_0x5b11('0x1d')),controller[_0x5b11('0x1e')]);router[_0x5b11('0x1c')](_0x5b11('0x15'),auth[_0x5b11('0xb')](),controller[_0x5b11('0x1f')]);module[_0x5b11('0x20')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['ENUM','out','DATE','sequelize','exports','TEXT'];(function(_0x419a27,_0x36be0b){var _0x458466=function(_0x447e78){while(--_0x447e78){_0x419a27['push'](_0x419a27['shift']());}};_0x458466(++_0x36be0b);}(_0xa9e0,0x123));var _0x0a9e=function(_0x1da04e,_0x31024b){_0x1da04e=_0x1da04e-0x0;var _0xdd8c41=_0xa9e0[_0x1da04e];return _0xdd8c41;};'use strict';var Sequelize=require(_0x0a9e('0x0'));module[_0x0a9e('0x1')]={'body':{'type':Sequelize[_0x0a9e('0x2')]('medium'),'allowNull':![]},'read':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'direction':{'type':Sequelize[_0x0a9e('0x3')]('in','out'),'defaultValue':_0x0a9e('0x4'),'allowNull':![]},'failMessage':{'type':Sequelize[_0x0a9e('0x2')],'defaultValue':null},'readAt':{'type':Sequelize[_0x0a9e('0x5')]}};
\ No newline at end of file
+var _0xcc73=['TEXT','ENUM','out','exports'];(function(_0x2d8f6c,_0x44db4c){var _0x3a00f6=function(_0x1b16ea){while(--_0x1b16ea){_0x2d8f6c['push'](_0x2d8f6c['shift']());}};_0x3a00f6(++_0x44db4c);}(_0xcc73,0x1cb));var _0x3cc7=function(_0x3947c9,_0x4d6c97){_0x3947c9=_0x3947c9-0x0;var _0x2e7871=_0xcc73[_0x3947c9];return _0x2e7871;};'use strict';var Sequelize=require('sequelize');module[_0x3cc7('0x0')]={'body':{'type':Sequelize[_0x3cc7('0x1')]('medium'),'allowNull':![]},'read':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'direction':{'type':Sequelize[_0x3cc7('0x2')]('in','out'),'defaultValue':_0x3cc7('0x3'),'allowNull':![]},'failMessage':{'type':Sequelize['TEXT'],'defaultValue':null},'readAt':{'type':Sequelize['DATE']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xad54=['params','describe','accept','fax','UserId','user','agent','get','FaxInteraction','FaxInteractionId','isNil','read1stAt','format','interaction','[FAXMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','stringify','null','acceptMessage','ContactId','sequelize','Sequelize','QueryTypes','SELECT','contact','User','fullname','email','manual','interface','SIP/%s','channel','motionChannel','event','EventManager','acceptmessage','fax-interactions','role','RejectMessage','rejectMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','internal','rejectmessage','create','CmContact','findOne','Attachment','AttachmentId','SendFax','FaxAccountId','/var/opt/motion2/server/files/attachments/%s','basename','root','files','attachments','download','join','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','path','sox','to-csv','ejs','lodash','squel','crypto','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','./faxMessage.socket','register','jayson/promise','client','http','request','FaxMessage,\x20%s,\x20%s','debug','request\x20sent','error','code','message','info','result','catch','sendStatus','status','end','json','offset','undefined','limit','count','Content-Range','apply','reject','update','then','destroy','name','send','index','map','fieldName','type','key','model','query','intersection','attributes','fields','hasOwnProperty','order','sort','filters','filter','where','options','FaxMessage','includeAll','include','findAll','rows','show','keys','rawAttributes','length','find','body'];(function(_0x587579,_0x57bae0){var _0x50cc20=function(_0x47aa6e){while(--_0x47aa6e){_0x587579['push'](_0x587579['shift']());}};_0x50cc20(++_0x57bae0);}(_0xad54,0x156));var _0x4ad5=function(_0x5bd1a9,_0x313714){_0x5bd1a9=_0x5bd1a9-0x0;var _0x2ba345=_0xad54[_0x5bd1a9];return _0x2ba345;};'use strict';var emlformat=require(_0x4ad5('0x0'));var rimraf=require(_0x4ad5('0x1'));var zipdir=require(_0x4ad5('0x2'));var jsonpatch=require(_0x4ad5('0x3'));var rp=require(_0x4ad5('0x4'));var moment=require(_0x4ad5('0x5'));var BPromise=require(_0x4ad5('0x6'));var Mustache=require('mustache');var util=require('util');var path=require(_0x4ad5('0x7'));var sox=require(_0x4ad5('0x8'));var csv=require(_0x4ad5('0x9'));var ejs=require(_0x4ad5('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x4ad5('0xb'));var squel=require(_0x4ad5('0xc'));var crypto=require(_0x4ad5('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x4ad5('0xe'));var toCsv=require(_0x4ad5('0x9'));var querystring=require(_0x4ad5('0xf'));var Papa=require('papaparse');var Redis=require(_0x4ad5('0x10'));var authService=require(_0x4ad5('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0x4ad5('0x12'));var hardwareService=require(_0x4ad5('0x13'));var logger=require(_0x4ad5('0x14'))('api');var utils=require(_0x4ad5('0x15'));var config=require(_0x4ad5('0x16'));var licenseUtil=require(_0x4ad5('0x17'));var db=require(_0x4ad5('0x18'))['db'];config[_0x4ad5('0x19')]=_['defaults'](config[_0x4ad5('0x19')],{'host':_0x4ad5('0x1a'),'port':0x18eb});var socket=require(_0x4ad5('0x1b'))(new Redis(config[_0x4ad5('0x19')]));require(_0x4ad5('0x1c'))[_0x4ad5('0x1d')](socket);var jayson=require(_0x4ad5('0x1e'));var client=jayson[_0x4ad5('0x1f')][_0x4ad5('0x20')]({'port':0x232c});var client9002=jayson[_0x4ad5('0x1f')][_0x4ad5('0x20')]({'port':0x232a});function respondWithRpcPromise(_0x568068,_0x5f2683,_0x15a3c3,_0x3ea652){return new BPromise(function(_0xde2a54,_0x1e6acd){var _0x40e976=_0x3ea652||client;return _0x40e976[_0x4ad5('0x21')](_0x568068,_0x15a3c3)['then'](function(_0x901999){logger['info'](_0x4ad5('0x22'),_0x5f2683,'request\x20sent');logger[_0x4ad5('0x23')]('FaxMessage,\x20%s,\x20%s,\x20%s',_0x5f2683,_0x4ad5('0x24'),JSON['stringify'](_0x901999));if(_0x901999[_0x4ad5('0x25')]){if(_0x901999[_0x4ad5('0x25')][_0x4ad5('0x26')]===0x1f4){logger[_0x4ad5('0x25')]('FaxMessage,\x20%s,\x20%s',_0x5f2683,_0x901999['error'][_0x4ad5('0x27')]);return _0x1e6acd(_0x901999['error']['message']);}logger[_0x4ad5('0x25')]('FaxMessage,\x20%s,\x20%s',_0x5f2683,_0x901999[_0x4ad5('0x25')]['message']);return _0xde2a54(_0x901999[_0x4ad5('0x25')][_0x4ad5('0x27')]);}else{logger[_0x4ad5('0x28')](_0x4ad5('0x22'),_0x5f2683,_0x4ad5('0x24'));_0xde2a54(_0x901999[_0x4ad5('0x29')][_0x4ad5('0x27')]);}})[_0x4ad5('0x2a')](function(_0x4b95a7){logger[_0x4ad5('0x25')](_0x4ad5('0x22'),_0x5f2683,_0x4b95a7);_0x1e6acd(_0x4b95a7);});});}function respondWithStatusCode(_0x428090,_0x388578){_0x388578=_0x388578||0xcc;return function(_0x11006f){if(_0x11006f){return _0x428090[_0x4ad5('0x2b')](_0x388578);}return _0x428090[_0x4ad5('0x2c')](_0x388578)[_0x4ad5('0x2d')]();};}function respondWithResult(_0x20396d,_0xc34cd7){_0xc34cd7=_0xc34cd7||0xc8;return function(_0x401b7d){if(_0x401b7d){return _0x20396d[_0x4ad5('0x2c')](_0xc34cd7)[_0x4ad5('0x2e')](_0x401b7d);}};}function respondWithFilteredResult(_0x2744f2,_0x54aabe){return function(_0x21648e){if(_0x21648e){var _0x2f4084=typeof _0x54aabe[_0x4ad5('0x2f')]===_0x4ad5('0x30')&&typeof _0x54aabe[_0x4ad5('0x31')]===_0x4ad5('0x30');var _0x599603=_0x21648e[_0x4ad5('0x32')];var _0xe3951b=_0x2f4084?0x0:_0x54aabe[_0x4ad5('0x2f')];var _0x21ef7e=_0x2f4084?_0x21648e[_0x4ad5('0x32')]:_0x54aabe['offset']+_0x54aabe[_0x4ad5('0x31')];var _0x2f242c;if(_0x21ef7e>=_0x599603){_0x21ef7e=_0x599603;_0x2f242c=0xc8;}else{_0x2f242c=0xce;}_0x2744f2[_0x4ad5('0x2c')](_0x2f242c);return _0x2744f2['set'](_0x4ad5('0x33'),_0xe3951b+'-'+_0x21ef7e+'/'+_0x599603)['json'](_0x21648e);}return null;};}function patchUpdates(_0x668e6c){return function(_0x192e9f){try{jsonpatch[_0x4ad5('0x34')](_0x192e9f,_0x668e6c,!![]);}catch(_0x440f5b){return BPromise[_0x4ad5('0x35')](_0x440f5b);}return _0x192e9f['save']();};}function saveUpdates(_0x36272d,_0x16bd15){return function(_0x1a329d){if(_0x1a329d){return _0x1a329d[_0x4ad5('0x36')](_0x36272d)[_0x4ad5('0x37')](function(_0x20d262){return _0x20d262;});}return null;};}function removeEntity(_0x46a1d1,_0x31a581){return function(_0x209abb){if(_0x209abb){return _0x209abb[_0x4ad5('0x38')]()[_0x4ad5('0x37')](function(){_0x46a1d1[_0x4ad5('0x2c')](0xcc)[_0x4ad5('0x2d')]();});}};}function handleEntityNotFound(_0x2f9e1,_0x2247c1){return function(_0x21a086){if(!_0x21a086){_0x2f9e1[_0x4ad5('0x2b')](0x194);}return _0x21a086;};}function handleError(_0x5619b5,_0x4fad48){_0x4fad48=_0x4fad48||0x1f4;return function(_0x271291){logger[_0x4ad5('0x25')](_0x271291['stack']);if(_0x271291[_0x4ad5('0x39')]){delete _0x271291[_0x4ad5('0x39')];}_0x5619b5[_0x4ad5('0x2c')](_0x4fad48)[_0x4ad5('0x3a')](_0x271291);};}exports[_0x4ad5('0x3b')]=function(_0x56b0da,_0x418409){var _0x521cff={},_0x2b571e={},_0x2b56f9={'count':0x0,'rows':[]};var _0xda1630=_[_0x4ad5('0x3c')](db['FaxMessage']['rawAttributes'],function(_0x44f0f7){return{'name':_0x44f0f7[_0x4ad5('0x3d')],'type':_0x44f0f7[_0x4ad5('0x3e')][_0x4ad5('0x3f')]};});_0x2b571e[_0x4ad5('0x40')]=_['map'](_0xda1630,_0x4ad5('0x39'));_0x2b571e[_0x4ad5('0x41')]=_['keys'](_0x56b0da[_0x4ad5('0x41')]);_0x2b571e['filters']=_[_0x4ad5('0x42')](_0x2b571e[_0x4ad5('0x40')],_0x2b571e['query']);_0x521cff[_0x4ad5('0x43')]=_['intersection'](_0x2b571e[_0x4ad5('0x40')],qs[_0x4ad5('0x44')](_0x56b0da[_0x4ad5('0x41')][_0x4ad5('0x44')]));_0x521cff[_0x4ad5('0x43')]=_0x521cff['attributes']['length']?_0x521cff['attributes']:_0x2b571e[_0x4ad5('0x40')];if(!_0x56b0da[_0x4ad5('0x41')][_0x4ad5('0x45')]('nolimit')){_0x521cff[_0x4ad5('0x31')]=qs[_0x4ad5('0x31')](_0x56b0da[_0x4ad5('0x41')]['limit']);_0x521cff['offset']=qs['offset'](_0x56b0da[_0x4ad5('0x41')][_0x4ad5('0x2f')]);}_0x521cff[_0x4ad5('0x46')]=qs[_0x4ad5('0x47')](_0x56b0da[_0x4ad5('0x41')]['sort']);_0x521cff['where']=qs[_0x4ad5('0x48')](_['pick'](_0x56b0da[_0x4ad5('0x41')],_0x2b571e[_0x4ad5('0x48')]),_0xda1630);if(_0x56b0da[_0x4ad5('0x41')][_0x4ad5('0x49')]){_0x521cff['where']=_['merge'](_0x521cff[_0x4ad5('0x4a')],{'$or':_['map'](_0xda1630,function(_0x2fd220){if(_0x2fd220['type']!=='VIRTUAL'){var _0x363994={};_0x363994[_0x2fd220[_0x4ad5('0x39')]]={'$like':'%'+_0x56b0da[_0x4ad5('0x41')][_0x4ad5('0x49')]+'%'};return _0x363994;}})});}_0x521cff=_['merge']({},_0x521cff,_0x56b0da[_0x4ad5('0x4b')]);var _0x404895={'where':_0x521cff[_0x4ad5('0x4a')]};return db[_0x4ad5('0x4c')][_0x4ad5('0x32')](_0x404895)[_0x4ad5('0x37')](function(_0x1afec9){_0x2b56f9[_0x4ad5('0x32')]=_0x1afec9;if(_0x56b0da['query'][_0x4ad5('0x4d')]){_0x521cff[_0x4ad5('0x4e')]=[{'all':!![]}];}return db[_0x4ad5('0x4c')][_0x4ad5('0x4f')](_0x521cff);})[_0x4ad5('0x37')](function(_0x383666){_0x2b56f9[_0x4ad5('0x50')]=_0x383666;return _0x2b56f9;})['then'](respondWithFilteredResult(_0x418409,_0x521cff))[_0x4ad5('0x2a')](handleError(_0x418409,null));};exports[_0x4ad5('0x51')]=function(_0x1cfe75,_0x2729d0){var _0x59af2d={'raw':!![],'where':{'id':_0x1cfe75['params']['id']}},_0x5053bf={};_0x5053bf[_0x4ad5('0x40')]=_[_0x4ad5('0x52')](db[_0x4ad5('0x4c')][_0x4ad5('0x53')]);_0x5053bf[_0x4ad5('0x41')]=_[_0x4ad5('0x52')](_0x1cfe75[_0x4ad5('0x41')]);_0x5053bf[_0x4ad5('0x48')]=_[_0x4ad5('0x42')](_0x5053bf[_0x4ad5('0x40')],_0x5053bf[_0x4ad5('0x41')]);_0x59af2d[_0x4ad5('0x43')]=_[_0x4ad5('0x42')](_0x5053bf[_0x4ad5('0x40')],qs[_0x4ad5('0x44')](_0x1cfe75[_0x4ad5('0x41')][_0x4ad5('0x44')]));_0x59af2d[_0x4ad5('0x43')]=_0x59af2d[_0x4ad5('0x43')][_0x4ad5('0x54')]?_0x59af2d[_0x4ad5('0x43')]:_0x5053bf[_0x4ad5('0x40')];if(_0x1cfe75[_0x4ad5('0x41')][_0x4ad5('0x4d')]){_0x59af2d['include']=[{'all':!![]}];}_0x59af2d=_['merge']({},_0x59af2d,_0x1cfe75[_0x4ad5('0x4b')]);return db[_0x4ad5('0x4c')][_0x4ad5('0x55')](_0x59af2d)[_0x4ad5('0x37')](handleEntityNotFound(_0x2729d0,null))['then'](respondWithResult(_0x2729d0,null))[_0x4ad5('0x2a')](handleError(_0x2729d0,null));};exports[_0x4ad5('0x36')]=function(_0x1f60bf,_0x476efe){if(_0x1f60bf[_0x4ad5('0x56')]['id']){delete _0x1f60bf[_0x4ad5('0x56')]['id'];}return db[_0x4ad5('0x4c')][_0x4ad5('0x55')]({'where':{'id':_0x1f60bf[_0x4ad5('0x57')]['id']}})[_0x4ad5('0x37')](handleEntityNotFound(_0x476efe,null))['then'](saveUpdates(_0x1f60bf[_0x4ad5('0x56')],null))[_0x4ad5('0x37')](respondWithResult(_0x476efe,null))[_0x4ad5('0x2a')](handleError(_0x476efe,null));};exports[_0x4ad5('0x38')]=function(_0x1e6998,_0x5083da){return db[_0x4ad5('0x4c')][_0x4ad5('0x55')]({'where':{'id':_0x1e6998[_0x4ad5('0x57')]['id']}})[_0x4ad5('0x37')](handleEntityNotFound(_0x5083da,null))[_0x4ad5('0x37')](removeEntity(_0x5083da,null))['catch'](handleError(_0x5083da,null));};exports[_0x4ad5('0x58')]=function(_0x199933,_0xf852bf){return db['FaxMessage'][_0x4ad5('0x58')]()[_0x4ad5('0x37')](respondWithResult(_0xf852bf,null))[_0x4ad5('0x2a')](handleError(_0xf852bf,null));};var interaction_log=require('../../config/logger')('fax-interactions');exports[_0x4ad5('0x59')]=function(_0x140f5d,_0x2d4d8f,_0x2ba51c){var _0x165966={'agent':{},'channel':_0x4ad5('0x5a')};if(_0x140f5d[_0x4ad5('0x56')]['id']){delete _0x140f5d[_0x4ad5('0x56')]['id'];}_0x140f5d[_0x4ad5('0x56')]['read']=!![];_0x140f5d[_0x4ad5('0x56')]['readAt']=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');_0x140f5d['body'][_0x4ad5('0x5b')]=_0x140f5d['body']['UserId']||_0x140f5d[_0x4ad5('0x5c')]['id'];_0x165966[_0x4ad5('0x5d')]['id']=_0x140f5d[_0x4ad5('0x56')][_0x4ad5('0x5b')];return db[_0x4ad5('0x4c')]['find']({'where':{'id':_0x140f5d[_0x4ad5('0x57')]['id'],'UserId':null}})['then'](handleEntityNotFound(_0x2d4d8f,null))[_0x4ad5('0x37')](saveUpdates(_0x140f5d['body'],null))['then'](function(_0x35c8b9){if(_0x35c8b9){_0x165966['message']=_0x35c8b9[_0x4ad5('0x5e')]({'plain':!![]});return db[_0x4ad5('0x5f')][_0x4ad5('0x55')]({'where':{'id':_0x35c8b9[_0x4ad5('0x60')]}});}return null;})['then'](handleEntityNotFound(_0x2d4d8f,null))[_0x4ad5('0x37')](function(_0x3d7a56){if(_0x3d7a56){return _0x3d7a56[_0x4ad5('0x36')]({'UserId':_0x140f5d[_0x4ad5('0x56')][_0x4ad5('0x5b')],'read1stAt':_[_0x4ad5('0x61')](_0x3d7a56[_0x4ad5('0x62')])?moment()[_0x4ad5('0x63')]('YYYY-MM-DD\x20HH:mm:ss'):undefined});}return null;})[_0x4ad5('0x37')](function(_0x2d7f35){if(_0x2d7f35){_0x165966[_0x4ad5('0x64')]=_0x2d7f35[_0x4ad5('0x5e')]({'plain':!![]});interaction_log['info'](_0x4ad5('0x65'),_0x140f5d[_0x4ad5('0x5c')]['id'],_0x140f5d[_0x4ad5('0x5c')][_0x4ad5('0x39')],_0x140f5d[_0x4ad5('0x5c')]['role'],_0x165966[_0x4ad5('0x64')]['id'],_0x140f5d[_0x4ad5('0x56')]?JSON[_0x4ad5('0x66')](_0x140f5d[_0x4ad5('0x56')]):_0x4ad5('0x67'));return respondWithRpcPromise('AcceptMessage',_0x4ad5('0x68'),_0x165966);}return null;})[_0x4ad5('0x37')](function(_0x12f15b){var _0xc6a378='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x12f15b['message'][_0x4ad5('0x69')];return db[_0x4ad5('0x6a')]['query'](_0xc6a378,{'type':db[_0x4ad5('0x6b')][_0x4ad5('0x6c')][_0x4ad5('0x6d')],'raw':!![]})['then'](function(_0x22925f){return _0x22925f;});})[_0x4ad5('0x37')](function(_0x55f489){if(_0x55f489){_0x165966[_0x4ad5('0x27')][_0x4ad5('0x6e')]=_0x55f489[0x0];if(!_0x140f5d[_0x4ad5('0x56')]['UserId'])return;return db[_0x4ad5('0x6f')][_0x4ad5('0x55')]({'where':{'id':_0x140f5d['body'][_0x4ad5('0x5b')],'role':_0x4ad5('0x5d')},'attributes':['id',_0x4ad5('0x39'),_0x4ad5('0x70'),_0x4ad5('0x71'),'internal'],'raw':!![]});}return null;})[_0x4ad5('0x37')](function(_0x28fe76){if(!_0x28fe76)return null;_0x165966['message'][_0x4ad5('0x5d')]=_0x28fe76;return _0x165966;})['then'](function(_0x2bc26b){if(_0x2bc26b){if(_0x140f5d[_0x4ad5('0x56')][_0x4ad5('0x72')]){_0x165966[_0x4ad5('0x27')][_0x4ad5('0x73')]=util['format'](_0x4ad5('0x74'),_0x140f5d[_0x4ad5('0x5c')][_0x4ad5('0x39')]);_0x165966[_0x4ad5('0x27')]['channel']=_0x165966[_0x4ad5('0x75')];_0x165966['message'][_0x4ad5('0x76')]=_0x165966[_0x4ad5('0x75')];_0x165966['message'][_0x4ad5('0x77')]='accept';return respondWithRpcPromise('EventManager',_0x4ad5('0x78'),{'event':_0x4ad5('0x79'),'message':_0x165966[_0x4ad5('0x27')]},client9002)[_0x4ad5('0x37')](function(){return _0x165966;});}return _0x165966;}return null;})['then'](respondWithResult(_0x2d4d8f,null))['catch'](handleError(_0x2d4d8f,null));};var interaction_log=require('../../config/logger')(_0x4ad5('0x7a'));exports['reject']=function(_0x2fac17,_0x18c025,_0x28ed2d){var _0x2412ff={'agent':{},'channel':_0x4ad5('0x5a')};if(_0x2fac17['body']['id']){delete _0x2fac17[_0x4ad5('0x56')]['id'];}_0x2fac17[_0x4ad5('0x56')][_0x4ad5('0x5b')]=_0x2fac17[_0x4ad5('0x56')][_0x4ad5('0x5b')]||_0x2fac17[_0x4ad5('0x5c')]['id'];_0x2412ff[_0x4ad5('0x5d')]['id']=_0x2fac17[_0x4ad5('0x56')][_0x4ad5('0x5b')];return db[_0x4ad5('0x4c')]['find']({'where':{'id':_0x2fac17[_0x4ad5('0x57')]['id'],'UserId':null}})['then'](handleEntityNotFound(_0x18c025,null))[_0x4ad5('0x37')](function(_0x1801bd){if(_0x1801bd){_0x2412ff[_0x4ad5('0x27')]=_0x1801bd['get']({'plain':!![]});return db[_0x4ad5('0x5f')][_0x4ad5('0x55')]({'where':{'id':_0x1801bd[_0x4ad5('0x60')]}});}return null;})[_0x4ad5('0x37')](handleEntityNotFound(_0x18c025,null))[_0x4ad5('0x37')](function(_0x1eecb5){if(_0x1eecb5){_0x2412ff['interaction']=_0x1eecb5[_0x4ad5('0x5e')]({'plain':!![]});interaction_log['info']('[FAXMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x2fac17[_0x4ad5('0x5c')]['id'],_0x2fac17[_0x4ad5('0x5c')]['name'],_0x2fac17[_0x4ad5('0x5c')][_0x4ad5('0x7b')],_0x2412ff[_0x4ad5('0x64')]['id'],_0x2fac17['body']?JSON[_0x4ad5('0x66')](_0x2fac17[_0x4ad5('0x56')]):_0x4ad5('0x67'));return respondWithRpcPromise(_0x4ad5('0x7c'),_0x4ad5('0x7d'),_0x2412ff);}return null;})['then'](function(_0x2f53ec){var _0x32aa38=_0x4ad5('0x7e')+_0x2f53ec['message'][_0x4ad5('0x69')];return db['sequelize'][_0x4ad5('0x41')](_0x32aa38,{'type':db[_0x4ad5('0x6b')][_0x4ad5('0x6c')][_0x4ad5('0x6d')],'raw':!![]})[_0x4ad5('0x37')](function(_0x5d47e5){return _0x5d47e5;});})[_0x4ad5('0x37')](function(_0xc62b53){if(_0xc62b53){_0x2412ff[_0x4ad5('0x27')][_0x4ad5('0x6e')]=_0xc62b53[0x0];if(!_0x2fac17[_0x4ad5('0x56')][_0x4ad5('0x5b')])return;return db[_0x4ad5('0x6f')]['find']({'where':{'id':_0x2fac17[_0x4ad5('0x56')][_0x4ad5('0x5b')],'role':_0x4ad5('0x5d')},'attributes':['id',_0x4ad5('0x39'),_0x4ad5('0x70'),_0x4ad5('0x71'),_0x4ad5('0x7f')],'raw':!![]});}return null;})[_0x4ad5('0x37')](function(_0x5f1521){if(!_0x5f1521)return null;_0x2412ff[_0x4ad5('0x27')]['agent']=_0x5f1521;return _0x2412ff;})[_0x4ad5('0x37')](function(_0x3584a0){if(_0x3584a0){_0x3584a0[_0x4ad5('0x27')]['interface']=util[_0x4ad5('0x63')](_0x4ad5('0x74'),_0x2fac17[_0x4ad5('0x5c')][_0x4ad5('0x39')]);_0x3584a0[_0x4ad5('0x27')][_0x4ad5('0x75')]=_0x2412ff[_0x4ad5('0x75')];_0x3584a0[_0x4ad5('0x27')][_0x4ad5('0x76')]=_0x2412ff[_0x4ad5('0x75')];_0x3584a0['message'][_0x4ad5('0x77')]=_0x4ad5('0x35');respondWithRpcPromise(_0x4ad5('0x78'),'EventManager',{'event':_0x4ad5('0x80'),'message':_0x3584a0[_0x4ad5('0x27')]},client9002);return _0x2412ff;}return null;})['then'](respondWithResult(_0x18c025,null))[_0x4ad5('0x2a')](handleError(_0x18c025,null));};exports[_0x4ad5('0x81')]=function(_0x920422,_0x49c859){var _0x48f2a2;return db['FaxMessage'][_0x4ad5('0x81')](_0x920422[_0x4ad5('0x56')],{})['then'](function(_0x225699){_0x48f2a2=_0x225699;return db[_0x4ad5('0x82')][_0x4ad5('0x83')]({'where':{'id':_0x48f2a2[_0x4ad5('0x69')]}});})[_0x4ad5('0x37')](function(_0x49225d){if(_[_0x4ad5('0x61')](_0x49225d)){return;}else{_0x48f2a2[_0x4ad5('0x5a')]=_0x49225d[_0x4ad5('0x5a')];return db[_0x4ad5('0x84')]['findOne']({'where':{'id':_0x48f2a2[_0x4ad5('0x85')]}});}})[_0x4ad5('0x37')](function(_0x5a1318){return respondWithRpcPromise(_0x4ad5('0x86'),_0x4ad5('0x86'),{'FaxAccountId':_[_0x4ad5('0x61')](_0x920422[_0x4ad5('0x56')])?undefined:_0x920422['body'][_0x4ad5('0x87')],'path':_[_0x4ad5('0x61')](_0x5a1318)?undefined:util[_0x4ad5('0x63')](_0x4ad5('0x88'),_0x5a1318[_0x4ad5('0x89')]),'fax':_[_0x4ad5('0x61')](_0x48f2a2[_0x4ad5('0x5a')])?undefined:_0x48f2a2[_0x4ad5('0x5a')],'AttachmentId':_0x48f2a2[_0x4ad5('0x85')]},client9002);})['then'](respondWithResult(_0x49c859,0xc9))[_0x4ad5('0x2a')](handleError(_0x49c859,null));};exports['download']=function(_0x2dd9da,_0x5d27a0){var _0x117db0=path['join'](config[_0x4ad5('0x8a')],'server',_0x4ad5('0x8b'),_0x4ad5('0x8c'));return db[_0x4ad5('0x4c')][_0x4ad5('0x55')]({'where':{'id':_0x2dd9da[_0x4ad5('0x57')]['id']},'include':[{'model':db['Attachment'],'as':'Attachment'}]})[_0x4ad5('0x37')](handleEntityNotFound(_0x5d27a0,null))[_0x4ad5('0x37')](function(_0x31fd7c){if(_0x31fd7c){return _0x5d27a0[_0x4ad5('0x8d')](path[_0x4ad5('0x8e')](_0x117db0,_0x31fd7c[_0x4ad5('0x84')][_0x4ad5('0x89')]));}})['catch'](handleError(_0x5d27a0,null));};
\ No newline at end of file
+var _0xed47=['format','YYYY-MM-DD\x20HH:mm:ss','UserId','agent','get','FaxInteraction','FaxInteractionId','isNil','read1stAt','interaction','[FAXMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','user','null','AcceptMessage','acceptMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','sequelize','Sequelize','QueryTypes','SELECT','contact','User','fullname','email','manual','interface','SIP/%s','channel','EventManager','acceptmessage','[FAXMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','RejectMessage','rejectMessage','ContactId','event','create','CmContact','findOne','Attachment','AttachmentId','SendFax','FaxAccountId','/var/opt/motion2/server/files/attachments/%s','download','join','root','server','files','attachments','basename','rimraf','request-promise','bluebird','mustache','util','path','sox','ejs','fs-extra','squel','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','register','jayson/promise','http','client','request','then','info','request\x20sent','debug','FaxMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','FaxMessage,\x20%s,\x20%s','message','result','catch','sendStatus','status','end','json','offset','undefined','limit','count','Content-Range','apply','reject','save','destroy','stack','name','send','index','map','FaxMessage','rawAttributes','fieldName','type','model','query','keys','attributes','intersection','fields','length','hasOwnProperty','order','sort','where','filters','pick','filter','VIRTUAL','merge','options','includeAll','include','findAll','rows','show','params','find','update','body','describe','../../config/logger','fax-interactions','accept','fax','read','readAt'];(function(_0x501510,_0x61caa9){var _0x1e6ee5=function(_0x32845b){while(--_0x32845b){_0x501510['push'](_0x501510['shift']());}};_0x1e6ee5(++_0x61caa9);}(_0xed47,0xc4));var _0x7ed4=function(_0x245ff8,_0x2e81f8){_0x245ff8=_0x245ff8-0x0;var _0x5a4faa=_0xed47[_0x245ff8];return _0x5a4faa;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x7ed4('0x0'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x7ed4('0x1'));var moment=require('moment');var BPromise=require(_0x7ed4('0x2'));var Mustache=require(_0x7ed4('0x3'));var util=require(_0x7ed4('0x4'));var path=require(_0x7ed4('0x5'));var sox=require(_0x7ed4('0x6'));var csv=require('to-csv');var ejs=require(_0x7ed4('0x7'));var fs=require('fs');var fs_extra=require(_0x7ed4('0x8'));var _=require('lodash');var squel=require(_0x7ed4('0x9'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x7ed4('0xa'));var Papa=require('papaparse');var Redis=require(_0x7ed4('0xb'));var authService=require(_0x7ed4('0xc'));var qs=require(_0x7ed4('0xd'));var as=require(_0x7ed4('0xe'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x7ed4('0xf'));var utils=require(_0x7ed4('0x10'));var config=require(_0x7ed4('0x11'));var licenseUtil=require(_0x7ed4('0x12'));var db=require(_0x7ed4('0x13'))['db'];config[_0x7ed4('0x14')]=_[_0x7ed4('0x15')](config[_0x7ed4('0x14')],{'host':_0x7ed4('0x16'),'port':0x18eb});var socket=require(_0x7ed4('0x17'))(new Redis(config[_0x7ed4('0x14')]));require('./faxMessage.socket')[_0x7ed4('0x18')](socket);var jayson=require(_0x7ed4('0x19'));var client=jayson['client'][_0x7ed4('0x1a')]({'port':0x232c});var client9002=jayson[_0x7ed4('0x1b')][_0x7ed4('0x1a')]({'port':0x232a});function respondWithRpcPromise(_0x563974,_0x39594e,_0x5aa718,_0x3db8e4){return new BPromise(function(_0x5a14cf,_0x2a8891){var _0x1bea72=_0x3db8e4||client;return _0x1bea72[_0x7ed4('0x1c')](_0x563974,_0x5aa718)[_0x7ed4('0x1d')](function(_0x625c59){logger[_0x7ed4('0x1e')]('FaxMessage,\x20%s,\x20%s',_0x39594e,_0x7ed4('0x1f'));logger[_0x7ed4('0x20')](_0x7ed4('0x21'),_0x39594e,_0x7ed4('0x1f'),JSON[_0x7ed4('0x22')](_0x625c59));if(_0x625c59[_0x7ed4('0x23')]){if(_0x625c59['error'][_0x7ed4('0x24')]===0x1f4){logger[_0x7ed4('0x23')](_0x7ed4('0x25'),_0x39594e,_0x625c59['error'][_0x7ed4('0x26')]);return _0x2a8891(_0x625c59[_0x7ed4('0x23')][_0x7ed4('0x26')]);}logger[_0x7ed4('0x23')]('FaxMessage,\x20%s,\x20%s',_0x39594e,_0x625c59[_0x7ed4('0x23')][_0x7ed4('0x26')]);return _0x5a14cf(_0x625c59[_0x7ed4('0x23')][_0x7ed4('0x26')]);}else{logger[_0x7ed4('0x1e')]('FaxMessage,\x20%s,\x20%s',_0x39594e,'request\x20sent');_0x5a14cf(_0x625c59[_0x7ed4('0x27')]['message']);}})[_0x7ed4('0x28')](function(_0x3b5bdb){logger[_0x7ed4('0x23')]('FaxMessage,\x20%s,\x20%s',_0x39594e,_0x3b5bdb);_0x2a8891(_0x3b5bdb);});});}function respondWithStatusCode(_0x274dce,_0x256342){_0x256342=_0x256342||0xcc;return function(_0x5983e4){if(_0x5983e4){return _0x274dce[_0x7ed4('0x29')](_0x256342);}return _0x274dce[_0x7ed4('0x2a')](_0x256342)[_0x7ed4('0x2b')]();};}function respondWithResult(_0x2da246,_0x2d19da){_0x2d19da=_0x2d19da||0xc8;return function(_0x42ef0e){if(_0x42ef0e){return _0x2da246[_0x7ed4('0x2a')](_0x2d19da)[_0x7ed4('0x2c')](_0x42ef0e);}};}function respondWithFilteredResult(_0x28bd1d,_0xa3fe18){return function(_0x288163){if(_0x288163){var _0x5aae91=typeof _0xa3fe18[_0x7ed4('0x2d')]===_0x7ed4('0x2e')&&typeof _0xa3fe18[_0x7ed4('0x2f')]==='undefined';var _0x3bc3d3=_0x288163[_0x7ed4('0x30')];var _0x233de2=_0x5aae91?0x0:_0xa3fe18[_0x7ed4('0x2d')];var _0xf9cb4=_0x5aae91?_0x288163['count']:_0xa3fe18[_0x7ed4('0x2d')]+_0xa3fe18['limit'];var _0x511c68;if(_0xf9cb4>=_0x3bc3d3){_0xf9cb4=_0x3bc3d3;_0x511c68=0xc8;}else{_0x511c68=0xce;}_0x28bd1d[_0x7ed4('0x2a')](_0x511c68);return _0x28bd1d['set'](_0x7ed4('0x31'),_0x233de2+'-'+_0xf9cb4+'/'+_0x3bc3d3)['json'](_0x288163);}return null;};}function patchUpdates(_0x5e0974){return function(_0x28adef){try{jsonpatch[_0x7ed4('0x32')](_0x28adef,_0x5e0974,!![]);}catch(_0x5ccf7f){return BPromise[_0x7ed4('0x33')](_0x5ccf7f);}return _0x28adef[_0x7ed4('0x34')]();};}function saveUpdates(_0x3acdee,_0x48f559){return function(_0x36f0ef){if(_0x36f0ef){return _0x36f0ef['update'](_0x3acdee)[_0x7ed4('0x1d')](function(_0x2d49b4){return _0x2d49b4;});}return null;};}function removeEntity(_0x20a3a5,_0x4418bd){return function(_0x4a0cfb){if(_0x4a0cfb){return _0x4a0cfb[_0x7ed4('0x35')]()[_0x7ed4('0x1d')](function(){_0x20a3a5[_0x7ed4('0x2a')](0xcc)[_0x7ed4('0x2b')]();});}};}function handleEntityNotFound(_0x240aa1,_0x3ce845){return function(_0x38b0a1){if(!_0x38b0a1){_0x240aa1['sendStatus'](0x194);}return _0x38b0a1;};}function handleError(_0x1d2eeb,_0x7a9efd){_0x7a9efd=_0x7a9efd||0x1f4;return function(_0x449dba){logger[_0x7ed4('0x23')](_0x449dba[_0x7ed4('0x36')]);if(_0x449dba['name']){delete _0x449dba[_0x7ed4('0x37')];}_0x1d2eeb[_0x7ed4('0x2a')](_0x7a9efd)[_0x7ed4('0x38')](_0x449dba);};}exports[_0x7ed4('0x39')]=function(_0x2699a3,_0x4378a0){var _0x164ba4={},_0x586893={},_0x4d8e1e={'count':0x0,'rows':[]};var _0x4f7df9=_[_0x7ed4('0x3a')](db[_0x7ed4('0x3b')][_0x7ed4('0x3c')],function(_0x2de445){return{'name':_0x2de445[_0x7ed4('0x3d')],'type':_0x2de445[_0x7ed4('0x3e')]['key']};});_0x586893[_0x7ed4('0x3f')]=_['map'](_0x4f7df9,_0x7ed4('0x37'));_0x586893[_0x7ed4('0x40')]=_[_0x7ed4('0x41')](_0x2699a3[_0x7ed4('0x40')]);_0x586893['filters']=_['intersection'](_0x586893[_0x7ed4('0x3f')],_0x586893[_0x7ed4('0x40')]);_0x164ba4[_0x7ed4('0x42')]=_[_0x7ed4('0x43')](_0x586893[_0x7ed4('0x3f')],qs[_0x7ed4('0x44')](_0x2699a3[_0x7ed4('0x40')][_0x7ed4('0x44')]));_0x164ba4[_0x7ed4('0x42')]=_0x164ba4[_0x7ed4('0x42')][_0x7ed4('0x45')]?_0x164ba4[_0x7ed4('0x42')]:_0x586893[_0x7ed4('0x3f')];if(!_0x2699a3[_0x7ed4('0x40')][_0x7ed4('0x46')]('nolimit')){_0x164ba4['limit']=qs['limit'](_0x2699a3[_0x7ed4('0x40')]['limit']);_0x164ba4[_0x7ed4('0x2d')]=qs[_0x7ed4('0x2d')](_0x2699a3[_0x7ed4('0x40')][_0x7ed4('0x2d')]);}_0x164ba4[_0x7ed4('0x47')]=qs[_0x7ed4('0x48')](_0x2699a3[_0x7ed4('0x40')][_0x7ed4('0x48')]);_0x164ba4[_0x7ed4('0x49')]=qs[_0x7ed4('0x4a')](_[_0x7ed4('0x4b')](_0x2699a3[_0x7ed4('0x40')],_0x586893[_0x7ed4('0x4a')]),_0x4f7df9);if(_0x2699a3['query'][_0x7ed4('0x4c')]){_0x164ba4[_0x7ed4('0x49')]=_['merge'](_0x164ba4[_0x7ed4('0x49')],{'$or':_['map'](_0x4f7df9,function(_0x56e2fd){if(_0x56e2fd['type']!==_0x7ed4('0x4d')){var _0x214f16={};_0x214f16[_0x56e2fd[_0x7ed4('0x37')]]={'$like':'%'+_0x2699a3[_0x7ed4('0x40')][_0x7ed4('0x4c')]+'%'};return _0x214f16;}})});}_0x164ba4=_[_0x7ed4('0x4e')]({},_0x164ba4,_0x2699a3[_0x7ed4('0x4f')]);var _0x2f16a4={'where':_0x164ba4[_0x7ed4('0x49')]};return db['FaxMessage'][_0x7ed4('0x30')](_0x2f16a4)['then'](function(_0x86d87d){_0x4d8e1e[_0x7ed4('0x30')]=_0x86d87d;if(_0x2699a3[_0x7ed4('0x40')][_0x7ed4('0x50')]){_0x164ba4[_0x7ed4('0x51')]=[{'all':!![]}];}return db[_0x7ed4('0x3b')][_0x7ed4('0x52')](_0x164ba4);})[_0x7ed4('0x1d')](function(_0x1665b9){_0x4d8e1e[_0x7ed4('0x53')]=_0x1665b9;return _0x4d8e1e;})[_0x7ed4('0x1d')](respondWithFilteredResult(_0x4378a0,_0x164ba4))[_0x7ed4('0x28')](handleError(_0x4378a0,null));};exports[_0x7ed4('0x54')]=function(_0x2b206e,_0x52a4ab){var _0x5d7ead={'raw':!![],'where':{'id':_0x2b206e[_0x7ed4('0x55')]['id']}},_0x5d3761={};_0x5d3761['model']=_[_0x7ed4('0x41')](db[_0x7ed4('0x3b')][_0x7ed4('0x3c')]);_0x5d3761[_0x7ed4('0x40')]=_[_0x7ed4('0x41')](_0x2b206e['query']);_0x5d3761[_0x7ed4('0x4a')]=_['intersection'](_0x5d3761[_0x7ed4('0x3f')],_0x5d3761['query']);_0x5d7ead['attributes']=_[_0x7ed4('0x43')](_0x5d3761[_0x7ed4('0x3f')],qs[_0x7ed4('0x44')](_0x2b206e[_0x7ed4('0x40')][_0x7ed4('0x44')]));_0x5d7ead[_0x7ed4('0x42')]=_0x5d7ead[_0x7ed4('0x42')]['length']?_0x5d7ead[_0x7ed4('0x42')]:_0x5d3761[_0x7ed4('0x3f')];if(_0x2b206e[_0x7ed4('0x40')][_0x7ed4('0x50')]){_0x5d7ead[_0x7ed4('0x51')]=[{'all':!![]}];}_0x5d7ead=_[_0x7ed4('0x4e')]({},_0x5d7ead,_0x2b206e[_0x7ed4('0x4f')]);return db['FaxMessage'][_0x7ed4('0x56')](_0x5d7ead)[_0x7ed4('0x1d')](handleEntityNotFound(_0x52a4ab,null))[_0x7ed4('0x1d')](respondWithResult(_0x52a4ab,null))[_0x7ed4('0x28')](handleError(_0x52a4ab,null));};exports[_0x7ed4('0x57')]=function(_0x46cb08,_0x3a71ad){if(_0x46cb08[_0x7ed4('0x58')]['id']){delete _0x46cb08[_0x7ed4('0x58')]['id'];}return db[_0x7ed4('0x3b')][_0x7ed4('0x56')]({'where':{'id':_0x46cb08[_0x7ed4('0x55')]['id']}})[_0x7ed4('0x1d')](handleEntityNotFound(_0x3a71ad,null))['then'](saveUpdates(_0x46cb08[_0x7ed4('0x58')],null))[_0x7ed4('0x1d')](respondWithResult(_0x3a71ad,null))[_0x7ed4('0x28')](handleError(_0x3a71ad,null));};exports[_0x7ed4('0x35')]=function(_0x7d21f2,_0x4dcfa7){return db[_0x7ed4('0x3b')][_0x7ed4('0x56')]({'where':{'id':_0x7d21f2['params']['id']}})[_0x7ed4('0x1d')](handleEntityNotFound(_0x4dcfa7,null))[_0x7ed4('0x1d')](removeEntity(_0x4dcfa7,null))[_0x7ed4('0x28')](handleError(_0x4dcfa7,null));};exports[_0x7ed4('0x59')]=function(_0x3fdfd9,_0x826aac){return db[_0x7ed4('0x3b')][_0x7ed4('0x59')]()[_0x7ed4('0x1d')](respondWithResult(_0x826aac,null))[_0x7ed4('0x28')](handleError(_0x826aac,null));};var interaction_log=require(_0x7ed4('0x5a'))(_0x7ed4('0x5b'));exports[_0x7ed4('0x5c')]=function(_0x27d22b,_0x2452f2,_0x294ca2){var _0x20c824={'agent':{},'channel':_0x7ed4('0x5d')};if(_0x27d22b[_0x7ed4('0x58')]['id']){delete _0x27d22b[_0x7ed4('0x58')]['id'];}_0x27d22b[_0x7ed4('0x58')][_0x7ed4('0x5e')]=!![];_0x27d22b['body'][_0x7ed4('0x5f')]=moment()[_0x7ed4('0x60')](_0x7ed4('0x61'));_0x27d22b['body'][_0x7ed4('0x62')]=_0x27d22b[_0x7ed4('0x58')][_0x7ed4('0x62')]||_0x27d22b['user']['id'];_0x20c824[_0x7ed4('0x63')]['id']=_0x27d22b[_0x7ed4('0x58')][_0x7ed4('0x62')];return db[_0x7ed4('0x3b')][_0x7ed4('0x56')]({'where':{'id':_0x27d22b[_0x7ed4('0x55')]['id'],'UserId':null}})[_0x7ed4('0x1d')](handleEntityNotFound(_0x2452f2,null))[_0x7ed4('0x1d')](saveUpdates(_0x27d22b[_0x7ed4('0x58')],null))['then'](function(_0x38053d){if(_0x38053d){_0x20c824['message']=_0x38053d[_0x7ed4('0x64')]({'plain':!![]});return db[_0x7ed4('0x65')][_0x7ed4('0x56')]({'where':{'id':_0x38053d[_0x7ed4('0x66')]}});}return null;})[_0x7ed4('0x1d')](handleEntityNotFound(_0x2452f2,null))['then'](function(_0x58f58c){if(_0x58f58c){return _0x58f58c[_0x7ed4('0x57')]({'UserId':_0x27d22b[_0x7ed4('0x58')][_0x7ed4('0x62')],'read1stAt':_[_0x7ed4('0x67')](_0x58f58c[_0x7ed4('0x68')])?moment()[_0x7ed4('0x60')](_0x7ed4('0x61')):undefined});}return null;})[_0x7ed4('0x1d')](function(_0xf61817){if(_0xf61817){_0x20c824[_0x7ed4('0x69')]=_0xf61817[_0x7ed4('0x64')]({'plain':!![]});interaction_log[_0x7ed4('0x1e')](_0x7ed4('0x6a'),_0x27d22b[_0x7ed4('0x6b')]['id'],_0x27d22b[_0x7ed4('0x6b')][_0x7ed4('0x37')],_0x27d22b[_0x7ed4('0x6b')]['role'],_0x20c824[_0x7ed4('0x69')]['id'],_0x27d22b[_0x7ed4('0x58')]?JSON['stringify'](_0x27d22b['body']):_0x7ed4('0x6c'));return respondWithRpcPromise(_0x7ed4('0x6d'),_0x7ed4('0x6e'),_0x20c824);}return null;})[_0x7ed4('0x1d')](function(_0x55496e){var _0xd7f73c=_0x7ed4('0x6f')+_0x55496e['message']['ContactId'];return db[_0x7ed4('0x70')][_0x7ed4('0x40')](_0xd7f73c,{'type':db[_0x7ed4('0x71')][_0x7ed4('0x72')][_0x7ed4('0x73')],'raw':!![]})[_0x7ed4('0x1d')](function(_0x15e267){return _0x15e267;});})[_0x7ed4('0x1d')](function(_0x165c45){if(_0x165c45){_0x20c824['message'][_0x7ed4('0x74')]=_0x165c45[0x0];if(!_0x27d22b['body'][_0x7ed4('0x62')])return;return db[_0x7ed4('0x75')][_0x7ed4('0x56')]({'where':{'id':_0x27d22b[_0x7ed4('0x58')][_0x7ed4('0x62')],'role':_0x7ed4('0x63')},'attributes':['id',_0x7ed4('0x37'),_0x7ed4('0x76'),_0x7ed4('0x77'),'internal'],'raw':!![]});}return null;})[_0x7ed4('0x1d')](function(_0xcaf9b7){if(!_0xcaf9b7)return null;_0x20c824[_0x7ed4('0x26')]['agent']=_0xcaf9b7;return _0x20c824;})[_0x7ed4('0x1d')](function(_0x3e0466){if(_0x3e0466){if(_0x27d22b['body'][_0x7ed4('0x78')]){_0x20c824[_0x7ed4('0x26')][_0x7ed4('0x79')]=util[_0x7ed4('0x60')](_0x7ed4('0x7a'),_0x27d22b[_0x7ed4('0x6b')]['name']);_0x20c824[_0x7ed4('0x26')]['channel']=_0x20c824[_0x7ed4('0x7b')];_0x20c824[_0x7ed4('0x26')]['event']=_0x7ed4('0x5c');return respondWithRpcPromise(_0x7ed4('0x7c'),_0x7ed4('0x7c'),{'event':_0x7ed4('0x7d'),'message':_0x20c824[_0x7ed4('0x26')]},client9002)[_0x7ed4('0x1d')](function(){return _0x20c824;});}return _0x20c824;}return null;})['then'](respondWithResult(_0x2452f2,null))[_0x7ed4('0x28')](handleError(_0x2452f2,null));};var interaction_log=require(_0x7ed4('0x5a'))(_0x7ed4('0x5b'));exports[_0x7ed4('0x33')]=function(_0x110b32,_0x8148aa,_0x1c85d9){var _0xe0b5c1={'agent':{},'channel':'fax'};if(_0x110b32[_0x7ed4('0x58')]['id']){delete _0x110b32[_0x7ed4('0x58')]['id'];}_0x110b32[_0x7ed4('0x58')][_0x7ed4('0x62')]=_0x110b32[_0x7ed4('0x58')][_0x7ed4('0x62')]||_0x110b32[_0x7ed4('0x6b')]['id'];_0xe0b5c1[_0x7ed4('0x63')]['id']=_0x110b32[_0x7ed4('0x58')][_0x7ed4('0x62')];return db[_0x7ed4('0x3b')][_0x7ed4('0x56')]({'where':{'id':_0x110b32['params']['id'],'UserId':null}})[_0x7ed4('0x1d')](handleEntityNotFound(_0x8148aa,null))['then'](function(_0x51f1dc){if(_0x51f1dc){_0xe0b5c1[_0x7ed4('0x26')]=_0x51f1dc[_0x7ed4('0x64')]({'plain':!![]});return db[_0x7ed4('0x65')][_0x7ed4('0x56')]({'where':{'id':_0x51f1dc['FaxInteractionId']}});}return null;})[_0x7ed4('0x1d')](handleEntityNotFound(_0x8148aa,null))[_0x7ed4('0x1d')](function(_0x1c9f15){if(_0x1c9f15){_0xe0b5c1['interaction']=_0x1c9f15[_0x7ed4('0x64')]({'plain':!![]});interaction_log['info'](_0x7ed4('0x7e'),_0x110b32[_0x7ed4('0x6b')]['id'],_0x110b32['user'][_0x7ed4('0x37')],_0x110b32[_0x7ed4('0x6b')]['role'],_0xe0b5c1[_0x7ed4('0x69')]['id'],_0x110b32[_0x7ed4('0x58')]?JSON[_0x7ed4('0x22')](_0x110b32[_0x7ed4('0x58')]):_0x7ed4('0x6c'));return respondWithRpcPromise(_0x7ed4('0x7f'),_0x7ed4('0x80'),_0xe0b5c1);}return null;})['then'](function(_0x59dcf1){var _0x36451b='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x59dcf1[_0x7ed4('0x26')][_0x7ed4('0x81')];return db[_0x7ed4('0x70')][_0x7ed4('0x40')](_0x36451b,{'type':db[_0x7ed4('0x71')]['QueryTypes']['SELECT'],'raw':!![]})['then'](function(_0x146311){return _0x146311;});})[_0x7ed4('0x1d')](function(_0x145fbb){if(_0x145fbb){_0xe0b5c1[_0x7ed4('0x26')][_0x7ed4('0x74')]=_0x145fbb[0x0];if(!_0x110b32[_0x7ed4('0x58')][_0x7ed4('0x62')])return;return db['User'][_0x7ed4('0x56')]({'where':{'id':_0x110b32[_0x7ed4('0x58')][_0x7ed4('0x62')],'role':_0x7ed4('0x63')},'attributes':['id',_0x7ed4('0x37'),_0x7ed4('0x76'),_0x7ed4('0x77'),'internal'],'raw':!![]});}return null;})[_0x7ed4('0x1d')](function(_0x593e1b){if(!_0x593e1b)return null;_0xe0b5c1['message']['agent']=_0x593e1b;return _0xe0b5c1;})[_0x7ed4('0x1d')](function(_0x4946ce){if(_0x4946ce){_0x4946ce[_0x7ed4('0x26')]['interface']=util[_0x7ed4('0x60')]('SIP/%s',_0x110b32[_0x7ed4('0x6b')][_0x7ed4('0x37')]);_0x4946ce[_0x7ed4('0x26')][_0x7ed4('0x7b')]=_0xe0b5c1[_0x7ed4('0x7b')];_0x4946ce[_0x7ed4('0x26')][_0x7ed4('0x82')]='reject';respondWithRpcPromise(_0x7ed4('0x7c'),_0x7ed4('0x7c'),{'event':'rejectmessage','message':_0x4946ce[_0x7ed4('0x26')]},client9002);return _0xe0b5c1;}return null;})['then'](respondWithResult(_0x8148aa,null))['catch'](handleError(_0x8148aa,null));};exports[_0x7ed4('0x83')]=function(_0x525e2f,_0x3765b8){var _0x13f124;return db[_0x7ed4('0x3b')]['create'](_0x525e2f[_0x7ed4('0x58')],{})[_0x7ed4('0x1d')](function(_0x124441){_0x13f124=_0x124441;return db[_0x7ed4('0x84')][_0x7ed4('0x85')]({'where':{'id':_0x13f124[_0x7ed4('0x81')]}});})[_0x7ed4('0x1d')](function(_0x50808a){if(_[_0x7ed4('0x67')](_0x50808a)){return;}else{_0x13f124[_0x7ed4('0x5d')]=_0x50808a[_0x7ed4('0x5d')];return db[_0x7ed4('0x86')]['findOne']({'where':{'id':_0x13f124[_0x7ed4('0x87')]}});}})[_0x7ed4('0x1d')](function(_0x4efd99){return respondWithRpcPromise(_0x7ed4('0x88'),'SendFax',{'FaxAccountId':_['isNil'](_0x525e2f[_0x7ed4('0x58')])?undefined:_0x525e2f[_0x7ed4('0x58')][_0x7ed4('0x89')],'path':_[_0x7ed4('0x67')](_0x4efd99)?undefined:util[_0x7ed4('0x60')](_0x7ed4('0x8a'),_0x4efd99['basename']),'fax':_[_0x7ed4('0x67')](_0x13f124[_0x7ed4('0x5d')])?undefined:_0x13f124[_0x7ed4('0x5d')],'AttachmentId':_0x13f124[_0x7ed4('0x87')]},client9002);})[_0x7ed4('0x1d')](respondWithResult(_0x3765b8,0xc9))[_0x7ed4('0x28')](handleError(_0x3765b8,null));};exports[_0x7ed4('0x8b')]=function(_0x3649a9,_0x3257cc){var _0x3b2148=path[_0x7ed4('0x8c')](config[_0x7ed4('0x8d')],_0x7ed4('0x8e'),_0x7ed4('0x8f'),_0x7ed4('0x90'));return db[_0x7ed4('0x3b')][_0x7ed4('0x56')]({'where':{'id':_0x3649a9[_0x7ed4('0x55')]['id']},'include':[{'model':db[_0x7ed4('0x86')],'as':'Attachment'}]})[_0x7ed4('0x1d')](handleEntityNotFound(_0x3257cc,null))[_0x7ed4('0x1d')](function(_0x51757b){if(_0x51757b){return _0x3257cc['download'](path[_0x7ed4('0x8c')](_0x3b2148,_0x51757b[_0x7ed4('0x86')][_0x7ed4('0x91')]));}})['catch'](handleError(_0x3257cc,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x16a6=['save','update','remove','emit','hook','exports','events','../../mysqldb','setMaxListeners'];(function(_0xe5287b,_0x26b8ab){var _0x346f77=function(_0x4d52d7){while(--_0x4d52d7){_0xe5287b['push'](_0xe5287b['shift']());}};_0x346f77(++_0x26b8ab);}(_0x16a6,0x15c));var _0x616a=function(_0x786e9,_0x1a029){_0x786e9=_0x786e9-0x0;var _0x1f891b=_0x16a6[_0x786e9];return _0x1f891b;};'use strict';var EventEmitter=require(_0x616a('0x0'));var FaxMessage=require(_0x616a('0x1'))['db']['FaxMessage'];var FaxMessageEvents=new EventEmitter();FaxMessageEvents[_0x616a('0x2')](0x0);var events={'afterCreate':_0x616a('0x3'),'afterUpdate':_0x616a('0x4'),'afterDestroy':_0x616a('0x5')};function emitEvent(_0x43e20b){return function(_0x13cbc6,_0x59fc7e,_0x41fbfa){FaxMessageEvents[_0x616a('0x6')](_0x43e20b+':'+_0x13cbc6['id'],_0x13cbc6);FaxMessageEvents['emit'](_0x43e20b,_0x13cbc6);_0x41fbfa(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];FaxMessage[_0x616a('0x7')](e,emitEvent(event));}}module[_0x616a('0x8')]=FaxMessageEvents;
\ No newline at end of file
+var _0x7d37=['FaxMessage','save','update','remove','emit','hasOwnProperty','exports','events','../../mysqldb'];(function(_0x137fdf,_0x4bd2bc){var _0x2cd3db=function(_0x31bf48){while(--_0x31bf48){_0x137fdf['push'](_0x137fdf['shift']());}};_0x2cd3db(++_0x4bd2bc);}(_0x7d37,0x1db));var _0x77d3=function(_0x3e8690,_0x58abb3){_0x3e8690=_0x3e8690-0x0;var _0x57f3dc=_0x7d37[_0x3e8690];return _0x57f3dc;};'use strict';var EventEmitter=require(_0x77d3('0x0'));var FaxMessage=require(_0x77d3('0x1'))['db'][_0x77d3('0x2')];var FaxMessageEvents=new EventEmitter();FaxMessageEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x77d3('0x3'),'afterUpdate':_0x77d3('0x4'),'afterDestroy':_0x77d3('0x5')};function emitEvent(_0x52c909){return function(_0x293f20,_0x2ae533,_0x59773d){FaxMessageEvents[_0x77d3('0x6')](_0x52c909+':'+_0x293f20['id'],_0x293f20);FaxMessageEvents['emit'](_0x52c909,_0x293f20);_0x59773d(null);};}for(var e in events){if(events[_0x77d3('0x7')](e)){var event=events[e];FaxMessage['hook'](e,emitEvent(event));}}module[_0x77d3('0x8')]=FaxMessageEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbc15=['lodash','util','api','moment','bluebird','request-promise','rimraf','../../config/environment','./faxMessage.attributes','exports','FaxMessage','fax_messages','body','FULLTEXT','models','get','direction','toLowerCase','UserId','FaxInteraction','FaxInteractionId','then','update','createdAt','catch','error','utf8mb4','utf8mb4_unicode_ci'];(function(_0x3fc8ee,_0x467272){var _0x28bf2b=function(_0x177c2b){while(--_0x177c2b){_0x3fc8ee['push'](_0x3fc8ee['shift']());}};_0x28bf2b(++_0x467272);}(_0xbc15,0x1dc));var _0x5bc1=function(_0x12f138,_0x444d6b){_0x12f138=_0x12f138-0x0;var _0xf89d85=_0xbc15[_0x12f138];return _0xf89d85;};'use strict';var _=require(_0x5bc1('0x0'));var util=require(_0x5bc1('0x1'));var logger=require('../../config/logger')(_0x5bc1('0x2'));var moment=require(_0x5bc1('0x3'));var BPromise=require(_0x5bc1('0x4'));var rp=require(_0x5bc1('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0x5bc1('0x6'));var config=require(_0x5bc1('0x7'));var attributes=require(_0x5bc1('0x8'));module[_0x5bc1('0x9')]=function(_0x217c1e,_0x57e59b){return _0x217c1e['define'](_0x5bc1('0xa'),attributes,{'tableName':_0x5bc1('0xb'),'paranoid':![],'indexes':[{'name':'fti_fax_messages','fields':[_0x5bc1('0xc')],'type':_0x5bc1('0xd')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x32277c,_0x44ec5b,_0x308b65){var _0x140350=_0x217c1e[_0x5bc1('0xe')];var _0x24b64c=_0x32277c[_0x5bc1('0xf')]({'plain':!![]});if(_0x24b64c[_0x5bc1('0x10')][_0x5bc1('0x11')]()==='in'||_0x24b64c[_0x5bc1('0x10')]['toLowerCase']()==='out'&&!_0x24b64c['secret']&&!_['isNil'](_0x24b64c[_0x5bc1('0x12')])){_0x140350[_0x5bc1('0x13')]['findOne']({'where':{'id':_0x24b64c[_0x5bc1('0x14')]}})[_0x5bc1('0x15')](function(_0x3fafb7){if(_0x3fafb7){_0x3fafb7[_0x5bc1('0x16')]({'lastMsgAt':_0x24b64c[_0x5bc1('0x17')],'lastMsgDirection':_0x24b64c[_0x5bc1('0x10')][_0x5bc1('0x11')]()});}})[_0x5bc1('0x18')](function(_0x19d7e0){console[_0x5bc1('0x19')](_0x19d7e0);});}_0x308b65();}},'charset':_0x5bc1('0x1a'),'collate':_0x5bc1('0x1b')});};
\ No newline at end of file
+var _0x4563=['bluebird','request-promise','path','rimraf','../../config/environment','./faxMessage.attributes','exports','define','FaxMessage','fax_messages','FULLTEXT','models','direction','toLowerCase','out','secret','isNil','UserId','FaxInteraction','then','update','createdAt','catch','error','utf8mb4','util','api'];(function(_0x2556e0,_0x404e15){var _0x438201=function(_0x24b87c){while(--_0x24b87c){_0x2556e0['push'](_0x2556e0['shift']());}};_0x438201(++_0x404e15);}(_0x4563,0x10c));var _0x3456=function(_0x5eb70e,_0x10ff1e){_0x5eb70e=_0x5eb70e-0x0;var _0x1f2af4=_0x4563[_0x5eb70e];return _0x1f2af4;};'use strict';var _=require('lodash');var util=require(_0x3456('0x0'));var logger=require('../../config/logger')(_0x3456('0x1'));var moment=require('moment');var BPromise=require(_0x3456('0x2'));var rp=require(_0x3456('0x3'));var fs=require('fs');var path=require(_0x3456('0x4'));var rimraf=require(_0x3456('0x5'));var config=require(_0x3456('0x6'));var attributes=require(_0x3456('0x7'));module[_0x3456('0x8')]=function(_0x57922f,_0x5a1dfe){return _0x57922f[_0x3456('0x9')](_0x3456('0xa'),attributes,{'tableName':_0x3456('0xb'),'paranoid':![],'indexes':[{'name':'fti_fax_messages','fields':['body'],'type':_0x3456('0xc')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x3a15d4,_0x40ccf9,_0x24a878){var _0x2e1e59=_0x57922f[_0x3456('0xd')];var _0xeb044a=_0x3a15d4['get']({'plain':!![]});if(_0xeb044a[_0x3456('0xe')][_0x3456('0xf')]()==='in'||_0xeb044a[_0x3456('0xe')][_0x3456('0xf')]()===_0x3456('0x10')&&!_0xeb044a[_0x3456('0x11')]&&!_[_0x3456('0x12')](_0xeb044a[_0x3456('0x13')])){_0x2e1e59[_0x3456('0x14')]['findOne']({'where':{'id':_0xeb044a['FaxInteractionId']}})[_0x3456('0x15')](function(_0x5f004f){if(_0x5f004f){_0x5f004f[_0x3456('0x16')]({'lastMsgAt':_0xeb044a[_0x3456('0x17')],'lastMsgDirection':_0xeb044a[_0x3456('0xe')]['toLowerCase']()});}})[_0x3456('0x18')](function(_0x1268a4){console[_0x3456('0x19')](_0x1268a4);});}_0x24a878();}},'charset':_0x3456('0x1a'),'collate':'utf8mb4_unicode_ci'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa41a=['ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','redis','localhost','./faxMessage.socket','register','request','info','debug','request\x20sent','stringify','error','code','FaxMessage,\x20%s,\x20%s','message','result','catch','CreateFaxMessage','body','options','raw','then','FaxMessage','update','where','attributes','UpdateFaxMessage','lodash','util','bluebird','randomstring'];(function(_0x53c36c,_0x5a2c25){var _0x5d8df8=function(_0x2c58fc){while(--_0x2c58fc){_0x53c36c['push'](_0x53c36c['shift']());}};_0x5d8df8(++_0x5a2c25);}(_0xa41a,0x6b));var _0xaa41=function(_0x4e543d,_0x133335){_0x4e543d=_0x4e543d-0x0;var _0x3dec89=_0xa41a[_0x4e543d];return _0x3dec89;};'use strict';var _=require(_0xaa41('0x0'));var util=require(_0xaa41('0x1'));var moment=require('moment');var BPromise=require(_0xaa41('0x2'));var rs=require(_0xaa41('0x3'));var fs=require('fs');var Redis=require(_0xaa41('0x4'));var db=require(_0xaa41('0x5'))['db'];var utils=require(_0xaa41('0x6'));var logger=require(_0xaa41('0x7'))(_0xaa41('0x8'));var config=require(_0xaa41('0x9'));var jayson=require('jayson/promise');var client=jayson[_0xaa41('0xa')][_0xaa41('0xb')]({'port':0x232a});config['redis']=_['defaults'](config[_0xaa41('0xc')],{'host':_0xaa41('0xd'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xaa41('0xc')]));require(_0xaa41('0xe'))[_0xaa41('0xf')](socket);function respondWithRpcPromise(_0x1cc344,_0x4263d6,_0x38d930){return new BPromise(function(_0x806f08,_0x423a19){return client[_0xaa41('0x10')](_0x1cc344,_0x38d930)['then'](function(_0x1d3aac){logger[_0xaa41('0x11')]('FaxMessage,\x20%s,\x20%s',_0x4263d6,'request\x20sent');logger[_0xaa41('0x12')]('FaxMessage,\x20%s,\x20%s,\x20%s',_0x4263d6,_0xaa41('0x13'),JSON[_0xaa41('0x14')](_0x1d3aac));if(_0x1d3aac[_0xaa41('0x15')]){if(_0x1d3aac[_0xaa41('0x15')][_0xaa41('0x16')]===0x1f4){logger['error'](_0xaa41('0x17'),_0x4263d6,_0x1d3aac[_0xaa41('0x15')][_0xaa41('0x18')]);return _0x423a19(_0x1d3aac[_0xaa41('0x15')][_0xaa41('0x18')]);}logger[_0xaa41('0x15')](_0xaa41('0x17'),_0x4263d6,_0x1d3aac['error'][_0xaa41('0x18')]);return _0x806f08(_0x1d3aac[_0xaa41('0x15')][_0xaa41('0x18')]);}else{logger[_0xaa41('0x11')](_0xaa41('0x17'),_0x4263d6,_0xaa41('0x13'));_0x806f08(_0x1d3aac[_0xaa41('0x19')][_0xaa41('0x18')]);}})[_0xaa41('0x1a')](function(_0x4fe1a4){logger['error'](_0xaa41('0x17'),_0x4263d6,_0x4fe1a4);_0x423a19(_0x4fe1a4);});});}exports[_0xaa41('0x1b')]=function(_0x35c753){var _0x54c488=this;return new Promise(function(_0x2bf794,_0x1f692b){return db['FaxMessage']['create'](_0x35c753[_0xaa41('0x1c')],{'raw':_0x35c753['options']?_0x35c753[_0xaa41('0x1d')][_0xaa41('0x1e')]===undefined?!![]:![]:!![]})[_0xaa41('0x1f')](function(_0x1f27f3){logger[_0xaa41('0x11')]('CreateFaxMessage',_0x35c753);logger[_0xaa41('0x12')](_0xaa41('0x1b'),_0x35c753,JSON[_0xaa41('0x14')](_0x1f27f3));_0x2bf794(_0x1f27f3);})[_0xaa41('0x1a')](function(_0x274630){logger[_0xaa41('0x15')]('CreateFaxMessage',_0x274630['message'],_0x35c753);_0x1f692b(_0x54c488[_0xaa41('0x15')](0x1f4,_0x274630['message']));});});};exports['UpdateFaxMessage']=function(_0x12e362){var _0x59707f=this;return new Promise(function(_0x536bed,_0x2d0ac0){return db[_0xaa41('0x20')][_0xaa41('0x21')](_0x12e362[_0xaa41('0x1c')],{'raw':_0x12e362[_0xaa41('0x1d')]?_0x12e362[_0xaa41('0x1d')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x12e362[_0xaa41('0x1d')]?_0x12e362[_0xaa41('0x1d')][_0xaa41('0x22')]||null:null,'attributes':_0x12e362[_0xaa41('0x1d')]?_0x12e362[_0xaa41('0x1d')][_0xaa41('0x23')]||null:null,'limit':_0x12e362[_0xaa41('0x1d')]?_0x12e362[_0xaa41('0x1d')]['limit']||null:null})[_0xaa41('0x1f')](function(_0x48b48b){logger['info'](_0xaa41('0x24'),_0x12e362);logger[_0xaa41('0x12')]('UpdateFaxMessage',_0x12e362,JSON[_0xaa41('0x14')](_0x48b48b));_0x536bed(_0x48b48b);})[_0xaa41('0x1a')](function(_0x4e3b44){logger['error']('UpdateFaxMessage',_0x4e3b44[_0xaa41('0x18')],_0x12e362);_0x2d0ac0(_0x59707f[_0xaa41('0x15')](0x1f4,_0x4e3b44[_0xaa41('0x18')]));});});};
\ No newline at end of file
+var _0xedd9=['create','body','raw','CreateFaxMessage','catch','FaxMessage','update','options','where','attributes','limit','UpdateFaxMessage','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','defaults','localhost','socket.io-emitter','redis','./faxMessage.socket','request','then','info','FaxMessage,\x20%s,\x20%s','request\x20sent','debug','FaxMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message'];(function(_0x5b3433,_0x173186){var _0x5be594=function(_0x3d45e5){while(--_0x3d45e5){_0x5b3433['push'](_0x5b3433['shift']());}};_0x5be594(++_0x173186);}(_0xedd9,0xfc));var _0x9edd=function(_0x4abd8b,_0x43e4c8){_0x4abd8b=_0x4abd8b-0x0;var _0x4e3bb6=_0xedd9[_0x4abd8b];return _0x4e3bb6;};'use strict';var _=require('lodash');var util=require(_0x9edd('0x0'));var moment=require(_0x9edd('0x1'));var BPromise=require(_0x9edd('0x2'));var rs=require(_0x9edd('0x3'));var fs=require('fs');var Redis=require(_0x9edd('0x4'));var db=require(_0x9edd('0x5'))['db'];var utils=require(_0x9edd('0x6'));var logger=require(_0x9edd('0x7'))('rpc');var config=require(_0x9edd('0x8'));var jayson=require(_0x9edd('0x9'));var client=jayson[_0x9edd('0xa')][_0x9edd('0xb')]({'port':0x232a});config['redis']=_[_0x9edd('0xc')](config['redis'],{'host':_0x9edd('0xd'),'port':0x18eb});var socket=require(_0x9edd('0xe'))(new Redis(config[_0x9edd('0xf')]));require(_0x9edd('0x10'))['register'](socket);function respondWithRpcPromise(_0x494a24,_0x5d2f90,_0x2076fc){return new BPromise(function(_0x138767,_0x523026){return client[_0x9edd('0x11')](_0x494a24,_0x2076fc)[_0x9edd('0x12')](function(_0x5b6c00){logger[_0x9edd('0x13')](_0x9edd('0x14'),_0x5d2f90,_0x9edd('0x15'));logger[_0x9edd('0x16')](_0x9edd('0x17'),_0x5d2f90,_0x9edd('0x15'),JSON[_0x9edd('0x18')](_0x5b6c00));if(_0x5b6c00[_0x9edd('0x19')]){if(_0x5b6c00['error'][_0x9edd('0x1a')]===0x1f4){logger[_0x9edd('0x19')](_0x9edd('0x14'),_0x5d2f90,_0x5b6c00[_0x9edd('0x19')][_0x9edd('0x1b')]);return _0x523026(_0x5b6c00[_0x9edd('0x19')][_0x9edd('0x1b')]);}logger[_0x9edd('0x19')]('FaxMessage,\x20%s,\x20%s',_0x5d2f90,_0x5b6c00[_0x9edd('0x19')][_0x9edd('0x1b')]);return _0x138767(_0x5b6c00[_0x9edd('0x19')]['message']);}else{logger[_0x9edd('0x13')](_0x9edd('0x14'),_0x5d2f90,_0x9edd('0x15'));_0x138767(_0x5b6c00['result'][_0x9edd('0x1b')]);}})['catch'](function(_0x2cdcef){logger[_0x9edd('0x19')]('FaxMessage,\x20%s,\x20%s',_0x5d2f90,_0x2cdcef);_0x523026(_0x2cdcef);});});}exports['CreateFaxMessage']=function(_0x45c3ab){var _0x50338f=this;return new Promise(function(_0x27a95a,_0x54a03f){return db['FaxMessage'][_0x9edd('0x1c')](_0x45c3ab[_0x9edd('0x1d')],{'raw':_0x45c3ab['options']?_0x45c3ab['options'][_0x9edd('0x1e')]===undefined?!![]:![]:!![]})[_0x9edd('0x12')](function(_0x477878){logger['info'](_0x9edd('0x1f'),_0x45c3ab);logger[_0x9edd('0x16')](_0x9edd('0x1f'),_0x45c3ab,JSON[_0x9edd('0x18')](_0x477878));_0x27a95a(_0x477878);})[_0x9edd('0x20')](function(_0x4c75d2){logger[_0x9edd('0x19')](_0x9edd('0x1f'),_0x4c75d2[_0x9edd('0x1b')],_0x45c3ab);_0x54a03f(_0x50338f[_0x9edd('0x19')](0x1f4,_0x4c75d2[_0x9edd('0x1b')]));});});};exports['UpdateFaxMessage']=function(_0x4b3d1b){var _0x3276ee=this;return new Promise(function(_0xfeca7b,_0x8d67aa){return db[_0x9edd('0x21')][_0x9edd('0x22')](_0x4b3d1b['body'],{'raw':_0x4b3d1b['options']?_0x4b3d1b[_0x9edd('0x23')][_0x9edd('0x1e')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x4b3d1b[_0x9edd('0x23')]?_0x4b3d1b['options'][_0x9edd('0x24')]||null:null,'attributes':_0x4b3d1b[_0x9edd('0x23')]?_0x4b3d1b[_0x9edd('0x23')][_0x9edd('0x25')]||null:null,'limit':_0x4b3d1b['options']?_0x4b3d1b[_0x9edd('0x23')][_0x9edd('0x26')]||null:null})[_0x9edd('0x12')](function(_0x12c1bc){logger[_0x9edd('0x13')](_0x9edd('0x27'),_0x4b3d1b);logger[_0x9edd('0x16')](_0x9edd('0x27'),_0x4b3d1b,JSON[_0x9edd('0x18')](_0x12c1bc));_0xfeca7b(_0x12c1bc);})[_0x9edd('0x20')](function(_0x4fd03f){logger[_0x9edd('0x19')](_0x9edd('0x27'),_0x4fd03f[_0x9edd('0x1b')],_0x4b3d1b);_0x8d67aa(_0x3276ee[_0x9edd('0x19')](0x1f4,_0x4fd03f['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x43e3=['faxMessage:','./faxMessage.events','save','remove','update','emit','register'];(function(_0x1b8b95,_0x3ea343){var _0x3657ae=function(_0x3703e1){while(--_0x3703e1){_0x1b8b95['push'](_0x1b8b95['shift']());}};_0x3657ae(++_0x3ea343);}(_0x43e3,0xb7));var _0x343e=function(_0x10d39e,_0x260735){_0x10d39e=_0x10d39e-0x0;var _0x27a17d=_0x43e3[_0x10d39e];return _0x27a17d;};'use strict';var FaxMessageEvents=require(_0x343e('0x0'));var events=[_0x343e('0x1'),_0x343e('0x2'),_0x343e('0x3')];function createListener(_0x121817,_0x377857){return function(_0x5be67b){_0x377857[_0x343e('0x4')](_0x121817,_0x5be67b);};}function removeListener(_0x5dbc8c,_0xf44427){return function(){FaxMessageEvents['removeListener'](_0x5dbc8c,_0xf44427);};}exports[_0x343e('0x5')]=function(_0x2502cd){for(var _0x53dd2b=0x0,_0x5731ba=events['length'];_0x53dd2b<_0x5731ba;_0x53dd2b++){var _0x2af912=events[_0x53dd2b];var _0x1fe035=createListener(_0x343e('0x6')+_0x2af912,_0x2502cd);FaxMessageEvents['on'](_0x2af912,_0x1fe035);}};
\ No newline at end of file
+var _0x56bb=['save','remove','update','register','length','faxMessage:'];(function(_0x389f28,_0x544f6d){var _0x4dda5c=function(_0x522771){while(--_0x522771){_0x389f28['push'](_0x389f28['shift']());}};_0x4dda5c(++_0x544f6d);}(_0x56bb,0x180));var _0xb56b=function(_0x45f5e7,_0x45d85d){_0x45f5e7=_0x45f5e7-0x0;var _0xaf6270=_0x56bb[_0x45f5e7];return _0xaf6270;};'use strict';var FaxMessageEvents=require('./faxMessage.events');var events=[_0xb56b('0x0'),_0xb56b('0x1'),_0xb56b('0x2')];function createListener(_0x538626,_0x2d3762){return function(_0x585ed5){_0x2d3762['emit'](_0x538626,_0x585ed5);};}function removeListener(_0x3328a6,_0xd14d20){return function(){FaxMessageEvents['removeListener'](_0x3328a6,_0xd14d20);};}exports[_0xb56b('0x3')]=function(_0x1f5fef){for(var _0x36b536=0x0,_0x234828=events[_0xb56b('0x4')];_0x36b536<_0x234828;_0x36b536++){var _0x574e54=events[_0x36b536];var _0x2921a7=createListener(_0xb56b('0x5')+_0x574e54,_0x1f5fef);FaxMessageEvents['on'](_0x574e54,_0x2921a7);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1339=['/describe','describe','/:id','show','/:id/download','post','tracked','fax','faxmessage:create','create','/:id/accept','accept','put','/:id/reject','reject','delete','destroy','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index'];(function(_0x4fcacc,_0x6e3b4){var _0x5e5678=function(_0x3d8f22){while(--_0x3d8f22){_0x4fcacc['push'](_0x4fcacc['shift']());}};_0x5e5678(++_0x6e3b4);}(_0x1339,0x1ed));var _0x9133=function(_0x27839a,_0x507e55){_0x27839a=_0x27839a-0x0;var _0x17ce15=_0x1339[_0x27839a];return _0x17ce15;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x9133('0x0'));var timeout=require(_0x9133('0x1'));var express=require(_0x9133('0x2'));var router=express[_0x9133('0x3')]();var fs_extra=require(_0x9133('0x4'));var auth=require(_0x9133('0x5'));var interaction=require(_0x9133('0x6'));var config=require(_0x9133('0x7'));var controller=require('./faxMessage.controller');router[_0x9133('0x8')]('/',auth[_0x9133('0x9')](),controller[_0x9133('0xa')]);router['get'](_0x9133('0xb'),auth[_0x9133('0x9')](),controller[_0x9133('0xc')]);router[_0x9133('0x8')](_0x9133('0xd'),auth[_0x9133('0x9')](),controller[_0x9133('0xe')]);router[_0x9133('0x8')](_0x9133('0xf'),auth[_0x9133('0x9')](),controller['download']);router[_0x9133('0x10')]('/',auth[_0x9133('0x9')](),interaction[_0x9133('0x11')](_0x9133('0x12'),_0x9133('0x13')),controller[_0x9133('0x14')]);router['put'](_0x9133('0xd'),auth[_0x9133('0x9')](),controller['update']);router['put'](_0x9133('0x15'),auth['isAuthenticated'](),controller[_0x9133('0x16')]);router[_0x9133('0x17')](_0x9133('0x18'),auth[_0x9133('0x9')](),controller[_0x9133('0x19')]);router[_0x9133('0x1a')]('/:id',auth[_0x9133('0x9')](),controller[_0x9133('0x1b')]);module['exports']=router;
\ No newline at end of file
+var _0xa571=['download','post','tracked','fax','put','/:id/accept','accept','/:id/reject','reject','delete','multer','util','path','connect-timeout','Router','fs-extra','../../config/environment','get','isAuthenticated','index','/describe','/:id','/:id/download'];(function(_0x25c1a3,_0x48fb2b){var _0x3f7013=function(_0x2ff79d){while(--_0x2ff79d){_0x25c1a3['push'](_0x25c1a3['shift']());}};_0x3f7013(++_0x48fb2b);}(_0xa571,0x107));var _0x1a57=function(_0x37c556,_0x11edc6){_0x37c556=_0x37c556-0x0;var _0x4fc871=_0xa571[_0x37c556];return _0x4fc871;};'use strict';var multer=require(_0x1a57('0x0'));var util=require(_0x1a57('0x1'));var path=require(_0x1a57('0x2'));var timeout=require(_0x1a57('0x3'));var express=require('express');var router=express[_0x1a57('0x4')]();var fs_extra=require(_0x1a57('0x5'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x1a57('0x6'));var controller=require('./faxMessage.controller');router[_0x1a57('0x7')]('/',auth[_0x1a57('0x8')](),controller[_0x1a57('0x9')]);router[_0x1a57('0x7')](_0x1a57('0xa'),auth[_0x1a57('0x8')](),controller['describe']);router[_0x1a57('0x7')](_0x1a57('0xb'),auth[_0x1a57('0x8')](),controller['show']);router[_0x1a57('0x7')](_0x1a57('0xc'),auth[_0x1a57('0x8')](),controller[_0x1a57('0xd')]);router[_0x1a57('0xe')]('/',auth[_0x1a57('0x8')](),interaction[_0x1a57('0xf')](_0x1a57('0x10'),'faxmessage:create'),controller['create']);router[_0x1a57('0x11')](_0x1a57('0xb'),auth[_0x1a57('0x8')](),controller['update']);router[_0x1a57('0x11')](_0x1a57('0x12'),auth['isAuthenticated'](),controller[_0x1a57('0x13')]);router['put'](_0x1a57('0x14'),auth[_0x1a57('0x8')](),controller[_0x1a57('0x15')]);router[_0x1a57('0x16')]('/:id',auth[_0x1a57('0x8')](),controller['destroy']);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1250=['sequelize','STRING','name','INTEGER','ENUM','roundrobin'];(function(_0x3fc60c,_0xc669aa){var _0x10e498=function(_0x1d95c3){while(--_0x1d95c3){_0x3fc60c['push'](_0x3fc60c['shift']());}};_0x10e498(++_0xc669aa);}(_0x1250,0xde));var _0x0125=function(_0x46e891,_0x5bc0f1){_0x46e891=_0x46e891-0x0;var _0x39ef19=_0x1250[_0x46e891];return _0x39ef19;};'use strict';var Sequelize=require(_0x0125('0x0'));module['exports']={'name':{'type':Sequelize[_0x0125('0x1')],'unique':_0x0125('0x2'),'allowNull':![],'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize[_0x0125('0x1')]},'timeout':{'type':Sequelize[_0x0125('0x3')],'allowNull':![],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0x0125('0x4')]('rrmemory','beepall',_0x0125('0x5')),'allowNull':![]},'lastAgent':{'type':Sequelize[_0x0125('0x3')],'defaultValue':0x0}};
\ No newline at end of file
+var _0x4405=['roundrobin','INTEGER','sequelize','exports','STRING','name'];(function(_0x56aa53,_0x40a526){var _0x3e4a5c=function(_0x1ce3c2){while(--_0x1ce3c2){_0x56aa53['push'](_0x56aa53['shift']());}};_0x3e4a5c(++_0x40a526);}(_0x4405,0xce));var _0x5440=function(_0x15c614,_0x30cfd6){_0x15c614=_0x15c614-0x0;var _0x1155ca=_0x4405[_0x15c614];return _0x1155ca;};'use strict';var Sequelize=require(_0x5440('0x0'));module[_0x5440('0x1')]={'name':{'type':Sequelize[_0x5440('0x2')],'unique':_0x5440('0x3'),'allowNull':![],'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize[_0x5440('0x2')]},'timeout':{'type':Sequelize['INTEGER'],'allowNull':![],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize['ENUM']('rrmemory','beepall',_0x5440('0x4')),'allowNull':![]},'lastAgent':{'type':Sequelize[_0x5440('0x5')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbbc4=['set','json','apply','reject','save','then','get','FaxQueues','UserProfileResource','destroy','error','stack','name','index','map','FaxQueue','fieldName','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','order','sort','where','pick','filter','merge','options','includeAll','include','findAll','rows','catch','show','params','rawAttributes','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','describe','getMembers','findOne','UserFaxQueue','length','nolimit','User','findAndCountAll','UserId','faxPause','updatedAt','createdAt','format','getTeams','addTeams','ids','Team','Agents','online','voicePause','interface','flatMap','transaction','each','emit','userFaxQueue:save','removeTeams','select','tq.TeamId','from','team_has_fax_queues','join','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','FaxQueueId\x20=\x20?','clone','ut.UserId\x20=\x20?','sequelize','toString','every','TeamId','includes','all','union','compact','value','isEmpty','removeAgents','forEach','userFaxQueue:remove','addAgents','omit','spread','getAgents','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','redis','localhost','socket.io-emitter','sendStatus','status','end','offset','undefined','count','limit'];(function(_0x2fcf18,_0x10009a){var _0x4c68cc=function(_0x444002){while(--_0x444002){_0x2fcf18['push'](_0x2fcf18['shift']());}};_0x4c68cc(++_0x10009a);}(_0xbbc4,0x177));var _0x4bbc=function(_0x3e2775,_0x15504f){_0x3e2775=_0x3e2775-0x0;var _0x3bd340=_0xbbc4[_0x3e2775];return _0x3bd340;};'use strict';var emlformat=require(_0x4bbc('0x0'));var rimraf=require(_0x4bbc('0x1'));var zipdir=require(_0x4bbc('0x2'));var jsonpatch=require(_0x4bbc('0x3'));var rp=require('request-promise');var moment=require(_0x4bbc('0x4'));var BPromise=require(_0x4bbc('0x5'));var Mustache=require(_0x4bbc('0x6'));var util=require(_0x4bbc('0x7'));var path=require('path');var sox=require(_0x4bbc('0x8'));var csv=require(_0x4bbc('0x9'));var ejs=require(_0x4bbc('0xa'));var fs=require('fs');var fs_extra=require(_0x4bbc('0xb'));var _=require(_0x4bbc('0xc'));var squel=require(_0x4bbc('0xd'));var crypto=require(_0x4bbc('0xe'));var jsforce=require(_0x4bbc('0xf'));var deskjs=require('desk.js');var toCsv=require(_0x4bbc('0x9'));var querystring=require(_0x4bbc('0x10'));var Papa=require(_0x4bbc('0x11'));var Redis=require('ioredis');var authService=require(_0x4bbc('0x12'));var qs=require(_0x4bbc('0x13'));var as=require(_0x4bbc('0x14'));var hardwareService=require(_0x4bbc('0x15'));var logger=require(_0x4bbc('0x16'))(_0x4bbc('0x17'));var utils=require(_0x4bbc('0x18'));var config=require('../../config/environment');var licenseUtil=require(_0x4bbc('0x19'));var db=require('../../mysqldb')['db'];config[_0x4bbc('0x1a')]=_['defaults'](config[_0x4bbc('0x1a')],{'host':_0x4bbc('0x1b'),'port':0x18eb});var socket=require(_0x4bbc('0x1c'))(new Redis(config['redis']));require('./faxQueue.socket')['register'](socket);function respondWithStatusCode(_0x3496b0,_0x4731d8){_0x4731d8=_0x4731d8||0xcc;return function(_0x577182){if(_0x577182){return _0x3496b0[_0x4bbc('0x1d')](_0x4731d8);}return _0x3496b0[_0x4bbc('0x1e')](_0x4731d8)[_0x4bbc('0x1f')]();};}function respondWithResult(_0x20ed12,_0x33da86){_0x33da86=_0x33da86||0xc8;return function(_0xf7cf7){if(_0xf7cf7){return _0x20ed12[_0x4bbc('0x1e')](_0x33da86)['json'](_0xf7cf7);}};}function respondWithFilteredResult(_0x239cf4,_0x398c38){return function(_0xdbc085){if(_0xdbc085){var _0x257a0c=typeof _0x398c38[_0x4bbc('0x20')]===_0x4bbc('0x21')&&typeof _0x398c38['limit']===_0x4bbc('0x21');var _0x384737=_0xdbc085[_0x4bbc('0x22')];var _0x584d61=_0x257a0c?0x0:_0x398c38[_0x4bbc('0x20')];var _0x5383fe=_0x257a0c?_0xdbc085[_0x4bbc('0x22')]:_0x398c38[_0x4bbc('0x20')]+_0x398c38[_0x4bbc('0x23')];var _0x2be9a2;if(_0x5383fe>=_0x384737){_0x5383fe=_0x384737;_0x2be9a2=0xc8;}else{_0x2be9a2=0xce;}_0x239cf4['status'](_0x2be9a2);return _0x239cf4[_0x4bbc('0x24')]('Content-Range',_0x584d61+'-'+_0x5383fe+'/'+_0x384737)[_0x4bbc('0x25')](_0xdbc085);}return null;};}function patchUpdates(_0x3edd26){return function(_0x5113da){try{jsonpatch[_0x4bbc('0x26')](_0x5113da,_0x3edd26,!![]);}catch(_0x32b606){return BPromise[_0x4bbc('0x27')](_0x32b606);}return _0x5113da[_0x4bbc('0x28')]();};}function saveUpdates(_0x3f92a6,_0x1acbfc){return function(_0xd0bf05){if(_0xd0bf05){return _0xd0bf05['update'](_0x3f92a6)[_0x4bbc('0x29')](function(_0x339633){return _0x339633;});}return null;};}function removeEntity(_0x31b1f8,_0x19d012){return function(_0x497114){if(_0x497114){return _0x497114['destroy']()[_0x4bbc('0x29')](function(){var _0x3508ed=_0x497114[_0x4bbc('0x2a')]({'plain':!![]});var _0x53347b=_0x4bbc('0x2b');return db[_0x4bbc('0x2c')][_0x4bbc('0x2d')]({'where':{'type':_0x53347b,'resourceId':_0x3508ed['id']}})[_0x4bbc('0x29')](function(){return _0x497114;});})['then'](function(){_0x31b1f8['status'](0xcc)[_0x4bbc('0x1f')]();});}};}function handleEntityNotFound(_0x21ddc9,_0x4e2a09){return function(_0x40b983){if(!_0x40b983){_0x21ddc9['sendStatus'](0x194);}return _0x40b983;};}function handleError(_0x3ef24e,_0x2dd429){_0x2dd429=_0x2dd429||0x1f4;return function(_0x5b0b1f){logger[_0x4bbc('0x2e')](_0x5b0b1f[_0x4bbc('0x2f')]);if(_0x5b0b1f['name']){delete _0x5b0b1f[_0x4bbc('0x30')];}_0x3ef24e[_0x4bbc('0x1e')](_0x2dd429)['send'](_0x5b0b1f);};}exports[_0x4bbc('0x31')]=function(_0x179129,_0x41ee9b){var _0x1ec80c={},_0x31f9bb={},_0x4f9216={'count':0x0,'rows':[]};var _0x3e3c88=_[_0x4bbc('0x32')](db[_0x4bbc('0x33')]['rawAttributes'],function(_0x5d7f23){return{'name':_0x5d7f23[_0x4bbc('0x34')],'type':_0x5d7f23['type']['key']};});_0x31f9bb[_0x4bbc('0x35')]=_[_0x4bbc('0x32')](_0x3e3c88,_0x4bbc('0x30'));_0x31f9bb[_0x4bbc('0x36')]=_[_0x4bbc('0x37')](_0x179129[_0x4bbc('0x36')]);_0x31f9bb[_0x4bbc('0x38')]=_[_0x4bbc('0x39')](_0x31f9bb[_0x4bbc('0x35')],_0x31f9bb[_0x4bbc('0x36')]);_0x1ec80c[_0x4bbc('0x3a')]=_[_0x4bbc('0x39')](_0x31f9bb[_0x4bbc('0x35')],qs[_0x4bbc('0x3b')](_0x179129[_0x4bbc('0x36')][_0x4bbc('0x3b')]));_0x1ec80c[_0x4bbc('0x3a')]=_0x1ec80c[_0x4bbc('0x3a')]['length']?_0x1ec80c[_0x4bbc('0x3a')]:_0x31f9bb[_0x4bbc('0x35')];if(!_0x179129[_0x4bbc('0x36')][_0x4bbc('0x3c')]('nolimit')){_0x1ec80c[_0x4bbc('0x23')]=qs[_0x4bbc('0x23')](_0x179129[_0x4bbc('0x36')][_0x4bbc('0x23')]);_0x1ec80c[_0x4bbc('0x20')]=qs[_0x4bbc('0x20')](_0x179129['query'][_0x4bbc('0x20')]);}_0x1ec80c[_0x4bbc('0x3d')]=qs[_0x4bbc('0x3e')](_0x179129[_0x4bbc('0x36')][_0x4bbc('0x3e')]);_0x1ec80c[_0x4bbc('0x3f')]=qs['filters'](_[_0x4bbc('0x40')](_0x179129[_0x4bbc('0x36')],_0x31f9bb[_0x4bbc('0x38')]),_0x3e3c88);if(_0x179129[_0x4bbc('0x36')][_0x4bbc('0x41')]){_0x1ec80c[_0x4bbc('0x3f')]=_[_0x4bbc('0x42')](_0x1ec80c[_0x4bbc('0x3f')],{'$or':_[_0x4bbc('0x32')](_0x3e3c88,function(_0x409f97){if(_0x409f97['type']!=='VIRTUAL'){var _0x5b2ddd={};_0x5b2ddd[_0x409f97[_0x4bbc('0x30')]]={'$like':'%'+_0x179129[_0x4bbc('0x36')][_0x4bbc('0x41')]+'%'};return _0x5b2ddd;}})});}_0x1ec80c=_['merge']({},_0x1ec80c,_0x179129[_0x4bbc('0x43')]);var _0x3719a6={'where':_0x1ec80c[_0x4bbc('0x3f')]};return db[_0x4bbc('0x33')][_0x4bbc('0x22')](_0x3719a6)[_0x4bbc('0x29')](function(_0x44b47f){_0x4f9216['count']=_0x44b47f;if(_0x179129[_0x4bbc('0x36')][_0x4bbc('0x44')]){_0x1ec80c[_0x4bbc('0x45')]=[{'all':!![]}];}return db[_0x4bbc('0x33')][_0x4bbc('0x46')](_0x1ec80c);})[_0x4bbc('0x29')](function(_0xb94382){_0x4f9216[_0x4bbc('0x47')]=_0xb94382;return _0x4f9216;})['then'](respondWithFilteredResult(_0x41ee9b,_0x1ec80c))[_0x4bbc('0x48')](handleError(_0x41ee9b,null));};exports[_0x4bbc('0x49')]=function(_0x370c2b,_0x21724c){var _0x1942ae={'raw':!![],'where':{'id':_0x370c2b[_0x4bbc('0x4a')]['id']}},_0x781a1e={};_0x781a1e['model']=_[_0x4bbc('0x37')](db['FaxQueue'][_0x4bbc('0x4b')]);_0x781a1e[_0x4bbc('0x36')]=_[_0x4bbc('0x37')](_0x370c2b['query']);_0x781a1e[_0x4bbc('0x38')]=_['intersection'](_0x781a1e['model'],_0x781a1e['query']);_0x1942ae[_0x4bbc('0x3a')]=_['intersection'](_0x781a1e[_0x4bbc('0x35')],qs[_0x4bbc('0x3b')](_0x370c2b[_0x4bbc('0x36')]['fields']));_0x1942ae[_0x4bbc('0x3a')]=_0x1942ae[_0x4bbc('0x3a')]['length']?_0x1942ae[_0x4bbc('0x3a')]:_0x781a1e['model'];if(_0x370c2b[_0x4bbc('0x36')][_0x4bbc('0x44')]){_0x1942ae[_0x4bbc('0x45')]=[{'all':!![]}];}_0x1942ae=_['merge']({},_0x1942ae,_0x370c2b[_0x4bbc('0x43')]);return db['FaxQueue'][_0x4bbc('0x4c')](_0x1942ae)['then'](handleEntityNotFound(_0x21724c,null))['then'](respondWithResult(_0x21724c,null))[_0x4bbc('0x48')](handleError(_0x21724c,null));};exports[_0x4bbc('0x4d')]=function(_0x5d1ab6,_0x440d2f){return db[_0x4bbc('0x33')]['create'](_0x5d1ab6[_0x4bbc('0x4e')],{})[_0x4bbc('0x29')](function(_0x28096b){var _0x1bea5d=_0x5d1ab6[_0x4bbc('0x4f')]['get']({'plain':!![]});if(!_0x1bea5d)throw new Error(_0x4bbc('0x50'));if(_0x1bea5d['role']===_0x4bbc('0x4f')){var _0xb8b27e=_0x28096b[_0x4bbc('0x2a')]({'plain':!![]});var _0x199835='FaxQueues';return db['UserProfileSection'][_0x4bbc('0x4c')]({'where':{'name':_0x199835,'userProfileId':_0x1bea5d['userProfileId']},'raw':!![]})[_0x4bbc('0x29')](function(_0x2ebb24){if(_0x2ebb24&&_0x2ebb24[_0x4bbc('0x51')]===0x0){return db[_0x4bbc('0x2c')][_0x4bbc('0x4d')]({'name':_0xb8b27e[_0x4bbc('0x30')],'resourceId':_0xb8b27e['id'],'type':_0x2ebb24[_0x4bbc('0x30')],'sectionId':_0x2ebb24['id']},{})[_0x4bbc('0x29')](function(){return _0x28096b;});}else{return _0x28096b;}})[_0x4bbc('0x48')](function(_0xa68bfe){logger['error'](_0x4bbc('0x52'),_0xa68bfe);throw _0xa68bfe;});}return _0x28096b;})[_0x4bbc('0x29')](respondWithResult(_0x440d2f,0xc9))[_0x4bbc('0x48')](handleError(_0x440d2f,null));};exports['update']=function(_0xc99892,_0x2343f5){if(_0xc99892[_0x4bbc('0x4e')]['id']){delete _0xc99892['body']['id'];}return db[_0x4bbc('0x33')][_0x4bbc('0x4c')]({'where':{'id':_0xc99892[_0x4bbc('0x4a')]['id']}})['then'](handleEntityNotFound(_0x2343f5,null))[_0x4bbc('0x29')](saveUpdates(_0xc99892[_0x4bbc('0x4e')],null))['then'](respondWithResult(_0x2343f5,null))['catch'](handleError(_0x2343f5,null));};exports[_0x4bbc('0x2d')]=function(_0x17752f,_0x372099){return db[_0x4bbc('0x33')][_0x4bbc('0x4c')]({'where':{'id':_0x17752f[_0x4bbc('0x4a')]['id']}})['then'](handleEntityNotFound(_0x372099,null))['then'](removeEntity(_0x372099,null))[_0x4bbc('0x48')](handleError(_0x372099,null));};exports['describe']=function(_0x4ee8f0,_0x263660){return db['FaxQueue'][_0x4bbc('0x53')]()['then'](respondWithResult(_0x263660,null))[_0x4bbc('0x48')](handleError(_0x263660,null));};exports[_0x4bbc('0x54')]=function(_0x5362b4,_0x452ecc,_0x5a1170){var _0x58fe32={'raw':!![],'where':{}},_0x438fe2={},_0x4348e6;return db[_0x4bbc('0x33')][_0x4bbc('0x55')]({'where':{'id':_0x5362b4[_0x4bbc('0x4a')]['id']}})[_0x4bbc('0x29')](handleEntityNotFound(_0x452ecc,null))[_0x4bbc('0x29')](function(_0xf2aa37){if(_0xf2aa37){_0x4348e6=_0xf2aa37[_0x4bbc('0x2a')]({'plain':!![]});_0x438fe2[_0x4bbc('0x35')]=_[_0x4bbc('0x37')](db[_0x4bbc('0x56')][_0x4bbc('0x4b')]);_0x438fe2['query']=_[_0x4bbc('0x37')](_0x5362b4[_0x4bbc('0x36')]);_0x438fe2[_0x4bbc('0x38')]=_['intersection'](_0x438fe2[_0x4bbc('0x35')],_0x438fe2[_0x4bbc('0x36')]);_0x58fe32[_0x4bbc('0x3a')]=_[_0x4bbc('0x39')](_0x438fe2['model'],qs[_0x4bbc('0x3b')](_0x5362b4['query'][_0x4bbc('0x3b')]));_0x58fe32[_0x4bbc('0x3a')]=_0x58fe32[_0x4bbc('0x3a')][_0x4bbc('0x57')]?_0x58fe32[_0x4bbc('0x3a')]:_0x438fe2['model'];if(!_0x5362b4[_0x4bbc('0x36')]['hasOwnProperty'](_0x4bbc('0x58'))){_0x58fe32[_0x4bbc('0x23')]=qs[_0x4bbc('0x23')](_0x5362b4[_0x4bbc('0x36')][_0x4bbc('0x23')]);_0x58fe32[_0x4bbc('0x20')]=qs[_0x4bbc('0x20')](_0x5362b4[_0x4bbc('0x36')]['offset']);}_0x58fe32[_0x4bbc('0x3d')]=qs[_0x4bbc('0x3e')](_0x5362b4[_0x4bbc('0x36')][_0x4bbc('0x3e')]);_0x58fe32[_0x4bbc('0x3f')]=qs[_0x4bbc('0x38')](_[_0x4bbc('0x40')](_0x5362b4[_0x4bbc('0x36')],_0x438fe2[_0x4bbc('0x38')]));_0x58fe32[_0x4bbc('0x3f')]['FaxQueueId']=_0xf2aa37['id'];if(_0x5362b4['query'][_0x4bbc('0x41')]){_0x58fe32[_0x4bbc('0x3f')]=_[_0x4bbc('0x42')](_0x58fe32[_0x4bbc('0x3f')],{'$or':_[_0x4bbc('0x32')](_0x58fe32[_0x4bbc('0x3a')],function(_0x4aeca6){var _0x15197a={};_0x15197a[_0x4aeca6]={'$like':'%'+_0x5362b4[_0x4bbc('0x36')][_0x4bbc('0x41')]+'%'};return _0x15197a;})});}_0x58fe32=_['merge']({},_0x58fe32,_0x5362b4[_0x4bbc('0x43')]);return db['UserFaxQueue'][_0x4bbc('0x46')](_0x58fe32);}})[_0x4bbc('0x29')](function(_0x104bdf){if(_0x104bdf){return db[_0x4bbc('0x59')][_0x4bbc('0x5a')]({'where':{'id':_[_0x4bbc('0x32')](_0x104bdf,_0x4bbc('0x5b')),'role':'agent'},'attributes':['id',_0x4bbc('0x30'),_0x4bbc('0x5c'),_0x4bbc('0x5d'),_0x4bbc('0x5e')]});}})[_0x4bbc('0x29')](function(_0x59811f){if(_0x59811f){return{'count':_0x59811f[_0x4bbc('0x22')],'rows':_[_0x4bbc('0x32')](_0x59811f[_0x4bbc('0x47')],function(_0x39874f){return{'membername':_0x39874f[_0x4bbc('0x30')],'UserId':_0x39874f['id'],'queue_name':_0x4348e6[_0x4bbc('0x30')],'FaxQueueId':_0x4348e6['id'],'interface':util[_0x4bbc('0x5f')]('%s/%s','SIP',_0x39874f[_0x4bbc('0x30')]),'penalty':0x0,'paused':_0x39874f[_0x4bbc('0x5c')],'createdAt':_0x39874f[_0x4bbc('0x5e')],'updatedAt':_0x39874f['updatedAt']};})};}else{return{'count':0x0,'rows':[]};}})[_0x4bbc('0x29')](respondWithFilteredResult(_0x452ecc,_0x58fe32))['catch'](handleError(_0x452ecc,null));};exports[_0x4bbc('0x60')]=function(_0x303e1f,_0x4ea129,_0x5c228f){var _0x52db97={};var _0x431ac2={};var _0x2f3dd5;var _0xe88071;return db[_0x4bbc('0x33')][_0x4bbc('0x55')]({'where':{'id':_0x303e1f['params']['id']}})[_0x4bbc('0x29')](handleEntityNotFound(_0x4ea129,null))['then'](function(_0xc1d1b2){if(_0xc1d1b2){_0x2f3dd5=_0xc1d1b2;_0x431ac2[_0x4bbc('0x35')]=_[_0x4bbc('0x37')](db['Team'][_0x4bbc('0x4b')]);_0x431ac2[_0x4bbc('0x36')]=_[_0x4bbc('0x37')](_0x303e1f[_0x4bbc('0x36')]);_0x431ac2['filters']=_['intersection'](_0x431ac2[_0x4bbc('0x35')],_0x431ac2[_0x4bbc('0x36')]);_0x52db97[_0x4bbc('0x3a')]=_[_0x4bbc('0x39')](_0x431ac2['model'],qs[_0x4bbc('0x3b')](_0x303e1f[_0x4bbc('0x36')][_0x4bbc('0x3b')]));_0x52db97[_0x4bbc('0x3a')]=_0x52db97[_0x4bbc('0x3a')][_0x4bbc('0x57')]?_0x52db97['attributes']:_0x431ac2['model'];_0x52db97[_0x4bbc('0x3d')]=qs[_0x4bbc('0x3e')](_0x303e1f[_0x4bbc('0x36')]['sort']);_0x52db97[_0x4bbc('0x3f')]=qs['filters'](_['pick'](_0x303e1f[_0x4bbc('0x36')],_0x431ac2[_0x4bbc('0x38')]));if(_0x303e1f[_0x4bbc('0x36')]['filter']){_0x52db97['where']=_['merge'](_0x52db97[_0x4bbc('0x3f')],{'$or':_['map'](_0x52db97[_0x4bbc('0x3a')],function(_0x854779){var _0x52dad1={};_0x52dad1[_0x854779]={'$like':'%'+_0x303e1f['query'][_0x4bbc('0x41')]+'%'};return _0x52dad1;})});}_0x52db97=_[_0x4bbc('0x42')]({},_0x52db97,_0x303e1f[_0x4bbc('0x43')]);return _0x2f3dd5[_0x4bbc('0x60')](_0x52db97);}})[_0x4bbc('0x29')](function(_0x429fa3){if(_0x429fa3){_0xe88071=_0x429fa3[_0x4bbc('0x57')];if(!_0x303e1f[_0x4bbc('0x36')]['hasOwnProperty'](_0x4bbc('0x58'))){_0x52db97[_0x4bbc('0x23')]=qs[_0x4bbc('0x23')](_0x303e1f[_0x4bbc('0x36')]['limit']);_0x52db97[_0x4bbc('0x20')]=qs['offset'](_0x303e1f[_0x4bbc('0x36')][_0x4bbc('0x20')]);}return _0x2f3dd5[_0x4bbc('0x60')](_0x52db97);}})['then'](function(_0x400590){if(_0x400590){return _0x400590?{'count':_0xe88071,'rows':_0x400590}:null;}})['then'](respondWithResult(_0x4ea129,null))[_0x4bbc('0x48')](handleError(_0x4ea129,null));};exports[_0x4bbc('0x61')]=function(_0x5938ab,_0x1c92b1,_0x456111){var _0x3a2b9c=_0x5938ab['body'][_0x4bbc('0x62')];return db[_0x4bbc('0x63')][_0x4bbc('0x46')]({'where':{'id':_0x3a2b9c},'attributes':['id'],'include':[{'model':db[_0x4bbc('0x59')],'as':_0x4bbc('0x64'),'attributes':['id','name',_0x4bbc('0x65'),_0x4bbc('0x66'),_0x4bbc('0x67')],'raw':!![]}]})[_0x4bbc('0x29')](function(_0x3b48fd){if(_0x3b48fd){var _0xdcc79e=_[_0x4bbc('0x68')](_0x3b48fd,function(_0x15857c){var _0x16fa6b=_0x15857c[_0x4bbc('0x2a')]({'plain':!![]});return _0x16fa6b['Agents'];});return db[_0x4bbc('0x33')][_0x4bbc('0x4c')]({'where':{'id':_0x5938ab[_0x4bbc('0x4a')]['id']}})[_0x4bbc('0x29')](function(_0x9ccfc9){return db['sequelize'][_0x4bbc('0x69')](function(_0x29e9b3){return _0x9ccfc9['addTeams'](_0x3a2b9c,{'transaction':_0x29e9b3})[_0x4bbc('0x29')](function(){return BPromise[_0x4bbc('0x6a')](_0xdcc79e,function(_0x2a3bd5){return db[_0x4bbc('0x56')]['findOrCreate']({'where':{'UserId':_0x2a3bd5['id'],'FaxQueueId':_0x5938ab[_0x4bbc('0x4a')]['id']},'transaction':_0x29e9b3});});})[_0x4bbc('0x29')](function(){_0xdcc79e['forEach'](function(_0x559481){socket[_0x4bbc('0x6b')](_0x4bbc('0x6c'),{'UserId':_0x559481['id'],'FaxQueueId':_0x9ccfc9['id']});});});});});}})['then'](respondWithStatusCode(_0x1c92b1,null))[_0x4bbc('0x48')](handleError(_0x1c92b1,null));};exports[_0x4bbc('0x6d')]=function(_0x3f3430,_0x4e684d,_0x39e5bf){return db['Team']['findAll']({'where':{'id':_0x3f3430[_0x4bbc('0x36')][_0x4bbc('0x62')]},'attributes':['id'],'include':[{'model':db[_0x4bbc('0x59')],'as':_0x4bbc('0x64'),'attributes':['id'],'raw':!![]}]})[_0x4bbc('0x29')](handleEntityNotFound(_0x4e684d,null))[_0x4bbc('0x29')](function(_0x4c3b64){var _0x133d33=_[_0x4bbc('0x32')](_0x4c3b64,'id');var _0x2cfaa8=[];var _0x1da087=[];var _0x1cecec=squel[_0x4bbc('0x6e')]();_0x1cecec['field'](_0x4bbc('0x6f'))[_0x4bbc('0x70')](_0x4bbc('0x71'),'tq')[_0x4bbc('0x72')](_0x4bbc('0x73'),'ut',_0x4bbc('0x74'))['where'](_0x4bbc('0x75'),_0x3f3430[_0x4bbc('0x4a')]['id']);for(var _0x420213=0x0;_0x420213<_0x4c3b64['length'];_0x420213+=0x1){let _0x9d0959=_0x4c3b64[_0x420213];for(var _0x563eba=0x0;_0x563eba<_0x9d0959[_0x4bbc('0x64')][_0x4bbc('0x57')];_0x563eba+=0x1){let _0x2c4c25=_0x9d0959[_0x4bbc('0x64')][_0x563eba];var _0x4feb3e=_0x1cecec[_0x4bbc('0x76')]();_0x4feb3e[_0x4bbc('0x3f')](_0x4bbc('0x77'),_0x2c4c25['id']);_0x1da087['push'](db[_0x4bbc('0x78')][_0x4bbc('0x36')](_0x4feb3e[_0x4bbc('0x79')](),{'type':db[_0x4bbc('0x78')]['QueryTypes']['SELECT']})[_0x4bbc('0x29')](function(_0x2c0d12){if(_0x2c0d12[_0x4bbc('0x57')]===0x1){return _0x2c4c25['id'];}else{var _0x2c85bc=_[_0x4bbc('0x7a')](_['map'](_0x2c0d12,_0x4bbc('0x7b')),function(_0x63796b){return _[_0x4bbc('0x7c')](_0x133d33,_0x63796b);});if(_0x2c85bc){return _0x2c4c25['id'];}}}));}}return BPromise[_0x4bbc('0x7d')](_0x1da087)[_0x4bbc('0x29')](function(_0x1f809b){_0x2cfaa8=_(_0x2cfaa8)[_0x4bbc('0x7e')](_0x1f809b)[_0x4bbc('0x7f')]()[_0x4bbc('0x80')]();return db[_0x4bbc('0x33')][_0x4bbc('0x4c')]({'where':{'id':_0x3f3430['params']['id']}})['then'](function(_0x46db8c){return db[_0x4bbc('0x78')]['transaction'](function(_0x39a3c4){return _0x46db8c['removeTeams'](_0x3f3430[_0x4bbc('0x36')]['ids'],{'transaction':_0x39a3c4})['then'](function(){if(!_[_0x4bbc('0x81')](_0x2cfaa8)){return _0x46db8c[_0x4bbc('0x82')](_0x2cfaa8,{'transaction':_0x39a3c4});}})['then'](function(){_0x2cfaa8[_0x4bbc('0x83')](function(_0x49ed98){socket['emit'](_0x4bbc('0x84'),{'UserId':_0x49ed98,'FaxQueueId':_0x46db8c['id']});});});});});});})[_0x4bbc('0x29')](respondWithStatusCode(_0x4e684d,null))['catch'](handleError(_0x4e684d,null));};exports[_0x4bbc('0x85')]=function(_0x338f39,_0x192648,_0x2dc920){return db[_0x4bbc('0x33')][_0x4bbc('0x4c')]({'where':{'id':_0x338f39[_0x4bbc('0x4a')]['id']}})[_0x4bbc('0x29')](handleEntityNotFound(_0x192648,null))['then'](function(_0x5ef7d3){if(_0x5ef7d3){return _0x5ef7d3['addAgents'](_0x338f39[_0x4bbc('0x4e')][_0x4bbc('0x62')],_[_0x4bbc('0x86')](_0x338f39[_0x4bbc('0x4e')],[_0x4bbc('0x62'),'id'])||{})[_0x4bbc('0x87')](function(_0x1f274f){for(var _0x3341ec=0x0;_0x3341ec<_0x338f39['body']['ids'][_0x4bbc('0x57')];_0x3341ec+=0x1){socket['emit'](_0x4bbc('0x6c'),{'UserId':Number(_0x338f39[_0x4bbc('0x4e')][_0x4bbc('0x62')][_0x3341ec]),'FaxQueueId':Number(_0x338f39[_0x4bbc('0x4a')]['id'])});}return _0x1f274f;});}})[_0x4bbc('0x29')](respondWithResult(_0x192648,null))[_0x4bbc('0x48')](handleError(_0x192648,null));};exports['removeAgents']=function(_0x1cde78,_0x19c3fe,_0x34b85a){return db[_0x4bbc('0x33')][_0x4bbc('0x4c')]({'where':{'id':_0x1cde78['params']['id']}})[_0x4bbc('0x29')](handleEntityNotFound(_0x19c3fe,null))[_0x4bbc('0x29')](function(_0x182952){if(_0x182952){return _0x182952[_0x4bbc('0x82')](_0x1cde78[_0x4bbc('0x36')][_0x4bbc('0x62')])['then'](function(){if(_['isArray'](_0x1cde78['query'][_0x4bbc('0x62')])){for(var _0x42e214=0x0;_0x42e214<_0x1cde78[_0x4bbc('0x36')]['ids']['length'];_0x42e214+=0x1){socket[_0x4bbc('0x6b')](_0x4bbc('0x84'),{'UserId':Number(_0x1cde78[_0x4bbc('0x36')]['ids'][_0x42e214]),'FaxQueueId':Number(_0x1cde78['params']['id'])});}}else{socket[_0x4bbc('0x6b')](_0x4bbc('0x84'),{'UserId':Number(_0x1cde78[_0x4bbc('0x36')]['ids']),'FaxQueueId':Number(_0x1cde78[_0x4bbc('0x4a')]['id'])});}});}})[_0x4bbc('0x29')](respondWithStatusCode(_0x19c3fe,null))[_0x4bbc('0x48')](handleError(_0x19c3fe,null));};exports[_0x4bbc('0x88')]=function(_0x20f4a8,_0x2c6284,_0x1cff97){var _0x51a7ed={};var _0x1bf0f4={};var _0x12d074;var _0xecb5bd;return db[_0x4bbc('0x33')]['findOne']({'where':{'id':_0x20f4a8[_0x4bbc('0x4a')]['id']}})[_0x4bbc('0x29')](handleEntityNotFound(_0x2c6284,null))[_0x4bbc('0x29')](function(_0x3d7acf){if(_0x3d7acf){_0x12d074=_0x3d7acf;_0x1bf0f4[_0x4bbc('0x35')]=_['keys'](db[_0x4bbc('0x59')][_0x4bbc('0x4b')]);_0x1bf0f4[_0x4bbc('0x36')]=_[_0x4bbc('0x37')](_0x20f4a8[_0x4bbc('0x36')]);_0x1bf0f4[_0x4bbc('0x38')]=_[_0x4bbc('0x39')](_0x1bf0f4[_0x4bbc('0x35')],_0x1bf0f4[_0x4bbc('0x36')]);_0x51a7ed[_0x4bbc('0x3a')]=_['intersection'](_0x1bf0f4[_0x4bbc('0x35')],qs[_0x4bbc('0x3b')](_0x20f4a8[_0x4bbc('0x36')][_0x4bbc('0x3b')]));_0x51a7ed[_0x4bbc('0x3a')]=_0x51a7ed[_0x4bbc('0x3a')][_0x4bbc('0x57')]?_0x51a7ed[_0x4bbc('0x3a')]:_0x1bf0f4[_0x4bbc('0x35')];_0x51a7ed[_0x4bbc('0x3d')]=qs[_0x4bbc('0x3e')](_0x20f4a8[_0x4bbc('0x36')][_0x4bbc('0x3e')]);_0x51a7ed['where']=qs[_0x4bbc('0x38')](_[_0x4bbc('0x40')](_0x20f4a8[_0x4bbc('0x36')],_0x1bf0f4[_0x4bbc('0x38')]));if(_0x20f4a8['query'][_0x4bbc('0x41')]){_0x51a7ed[_0x4bbc('0x3f')]=_['merge'](_0x51a7ed[_0x4bbc('0x3f')],{'$or':_[_0x4bbc('0x32')](_0x51a7ed[_0x4bbc('0x3a')],function(_0x473472){var _0x4ab0f9={};_0x4ab0f9[_0x473472]={'$like':'%'+_0x20f4a8['query'][_0x4bbc('0x41')]+'%'};return _0x4ab0f9;})});}_0x51a7ed=_[_0x4bbc('0x42')]({},_0x51a7ed,_0x20f4a8[_0x4bbc('0x43')]);return _0x12d074[_0x4bbc('0x88')](_0x51a7ed);}})[_0x4bbc('0x29')](function(_0x2d79d6){if(_0x2d79d6){_0xecb5bd=_0x2d79d6[_0x4bbc('0x57')];if(!_0x20f4a8['query']['hasOwnProperty'](_0x4bbc('0x58'))){_0x51a7ed[_0x4bbc('0x23')]=qs[_0x4bbc('0x23')](_0x20f4a8['query'][_0x4bbc('0x23')]);_0x51a7ed[_0x4bbc('0x20')]=qs['offset'](_0x20f4a8[_0x4bbc('0x36')][_0x4bbc('0x20')]);}return _0x12d074[_0x4bbc('0x88')](_0x51a7ed);}})[_0x4bbc('0x29')](function(_0x327449){if(_0x327449){return _0x327449?{'count':_0xecb5bd,'rows':_0x327449}:null;}})['then'](respondWithResult(_0x2c6284,null))[_0x4bbc('0x48')](handleError(_0x2c6284,null));};
\ No newline at end of file
+var _0x3593=['merge','VIRTUAL','options','includeAll','include','findAll','rows','show','params','length','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','get','UserProfileSection','userProfileId','autoAssociation','catch','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','describe','getMembers','findOne','UserFaxQueue','FaxQueueId','User','findAndCountAll','UserId','agent','faxPause','updatedAt','createdAt','format','SIP','Team','getTeams','ids','Agents','online','voicePause','interface','flatMap','transaction','addTeams','each','emit','userFaxQueue:save','removeTeams','select','field','tq.TeamId','from','team_has_fax_queues','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','FaxQueueId\x20=\x20?','push','toString','sequelize','QueryTypes','SELECT','every','TeamId','includes','union','compact','value','removeAgents','forEach','userFaxQueue:remove','addAgents','omit','spread','getAgents','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','redis','defaults','socket.io-emitter','./faxQueue.socket','register','sendStatus','status','end','undefined','count','offset','limit','set','Content-Range','json','apply','reject','save','update','then','destroy','FaxQueues','UserProfileResource','error','name','index','FaxQueue','rawAttributes','fieldName','type','key','model','map','keys','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter'];(function(_0x4abc5d,_0x39ec35){var _0x9fc7b0=function(_0x42d5c3){while(--_0x42d5c3){_0x4abc5d['push'](_0x4abc5d['shift']());}};_0x9fc7b0(++_0x39ec35);}(_0x3593,0xe0));var _0x3359=function(_0x5d8980,_0x32b503){_0x5d8980=_0x5d8980-0x0;var _0xc9fdd8=_0x3593[_0x5d8980];return _0xc9fdd8;};'use strict';var emlformat=require(_0x3359('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x3359('0x1'));var jsonpatch=require(_0x3359('0x2'));var rp=require(_0x3359('0x3'));var moment=require(_0x3359('0x4'));var BPromise=require(_0x3359('0x5'));var Mustache=require(_0x3359('0x6'));var util=require(_0x3359('0x7'));var path=require(_0x3359('0x8'));var sox=require('sox');var csv=require(_0x3359('0x9'));var ejs=require(_0x3359('0xa'));var fs=require('fs');var fs_extra=require(_0x3359('0xb'));var _=require(_0x3359('0xc'));var squel=require(_0x3359('0xd'));var crypto=require(_0x3359('0xe'));var jsforce=require(_0x3359('0xf'));var deskjs=require(_0x3359('0x10'));var toCsv=require(_0x3359('0x9'));var querystring=require(_0x3359('0x11'));var Papa=require(_0x3359('0x12'));var Redis=require(_0x3359('0x13'));var authService=require(_0x3359('0x14'));var qs=require(_0x3359('0x15'));var as=require(_0x3359('0x16'));var hardwareService=require(_0x3359('0x17'));var logger=require(_0x3359('0x18'))(_0x3359('0x19'));var utils=require(_0x3359('0x1a'));var config=require('../../config/environment');var licenseUtil=require(_0x3359('0x1b'));var db=require('../../mysqldb')['db'];config[_0x3359('0x1c')]=_[_0x3359('0x1d')](config[_0x3359('0x1c')],{'host':'localhost','port':0x18eb});var socket=require(_0x3359('0x1e'))(new Redis(config[_0x3359('0x1c')]));require(_0x3359('0x1f'))[_0x3359('0x20')](socket);function respondWithStatusCode(_0x54fd47,_0x176cff){_0x176cff=_0x176cff||0xcc;return function(_0x488cad){if(_0x488cad){return _0x54fd47[_0x3359('0x21')](_0x176cff);}return _0x54fd47[_0x3359('0x22')](_0x176cff)[_0x3359('0x23')]();};}function respondWithResult(_0x59863e,_0x53f9df){_0x53f9df=_0x53f9df||0xc8;return function(_0x46c8cb){if(_0x46c8cb){return _0x59863e[_0x3359('0x22')](_0x53f9df)['json'](_0x46c8cb);}};}function respondWithFilteredResult(_0x1f05cc,_0x520dd8){return function(_0x264b20){if(_0x264b20){var _0x362863=typeof _0x520dd8['offset']===_0x3359('0x24')&&typeof _0x520dd8['limit']===_0x3359('0x24');var _0x5aa99b=_0x264b20[_0x3359('0x25')];var _0x288d1=_0x362863?0x0:_0x520dd8[_0x3359('0x26')];var _0x3c9d6f=_0x362863?_0x264b20[_0x3359('0x25')]:_0x520dd8[_0x3359('0x26')]+_0x520dd8[_0x3359('0x27')];var _0x31a408;if(_0x3c9d6f>=_0x5aa99b){_0x3c9d6f=_0x5aa99b;_0x31a408=0xc8;}else{_0x31a408=0xce;}_0x1f05cc[_0x3359('0x22')](_0x31a408);return _0x1f05cc[_0x3359('0x28')](_0x3359('0x29'),_0x288d1+'-'+_0x3c9d6f+'/'+_0x5aa99b)[_0x3359('0x2a')](_0x264b20);}return null;};}function patchUpdates(_0x326950){return function(_0x3adf97){try{jsonpatch[_0x3359('0x2b')](_0x3adf97,_0x326950,!![]);}catch(_0x38e342){return BPromise[_0x3359('0x2c')](_0x38e342);}return _0x3adf97[_0x3359('0x2d')]();};}function saveUpdates(_0x33bcbb,_0x114b5f){return function(_0x30bbce){if(_0x30bbce){return _0x30bbce[_0x3359('0x2e')](_0x33bcbb)[_0x3359('0x2f')](function(_0xd87b69){return _0xd87b69;});}return null;};}function removeEntity(_0x42fa2a,_0x487631){return function(_0x337c3c){if(_0x337c3c){return _0x337c3c[_0x3359('0x30')]()[_0x3359('0x2f')](function(){var _0x1a7239=_0x337c3c['get']({'plain':!![]});var _0x4af784=_0x3359('0x31');return db[_0x3359('0x32')][_0x3359('0x30')]({'where':{'type':_0x4af784,'resourceId':_0x1a7239['id']}})[_0x3359('0x2f')](function(){return _0x337c3c;});})['then'](function(){_0x42fa2a[_0x3359('0x22')](0xcc)[_0x3359('0x23')]();});}};}function handleEntityNotFound(_0x40ea8d,_0x1adb4f){return function(_0x2a241d){if(!_0x2a241d){_0x40ea8d[_0x3359('0x21')](0x194);}return _0x2a241d;};}function handleError(_0x4aee5c,_0x45217b){_0x45217b=_0x45217b||0x1f4;return function(_0x3025ba){logger[_0x3359('0x33')](_0x3025ba['stack']);if(_0x3025ba[_0x3359('0x34')]){delete _0x3025ba['name'];}_0x4aee5c[_0x3359('0x22')](_0x45217b)['send'](_0x3025ba);};}exports[_0x3359('0x35')]=function(_0x14234c,_0x4891e0){var _0xe3367b={},_0x3e95f3={},_0x3c1021={'count':0x0,'rows':[]};var _0x2b2024=_['map'](db[_0x3359('0x36')][_0x3359('0x37')],function(_0x240e6d){return{'name':_0x240e6d[_0x3359('0x38')],'type':_0x240e6d[_0x3359('0x39')][_0x3359('0x3a')]};});_0x3e95f3[_0x3359('0x3b')]=_[_0x3359('0x3c')](_0x2b2024,_0x3359('0x34'));_0x3e95f3['query']=_[_0x3359('0x3d')](_0x14234c[_0x3359('0x3e')]);_0x3e95f3[_0x3359('0x3f')]=_[_0x3359('0x40')](_0x3e95f3['model'],_0x3e95f3[_0x3359('0x3e')]);_0xe3367b[_0x3359('0x41')]=_[_0x3359('0x40')](_0x3e95f3[_0x3359('0x3b')],qs[_0x3359('0x42')](_0x14234c[_0x3359('0x3e')]['fields']));_0xe3367b['attributes']=_0xe3367b[_0x3359('0x41')]['length']?_0xe3367b[_0x3359('0x41')]:_0x3e95f3[_0x3359('0x3b')];if(!_0x14234c[_0x3359('0x3e')][_0x3359('0x43')](_0x3359('0x44'))){_0xe3367b['limit']=qs[_0x3359('0x27')](_0x14234c[_0x3359('0x3e')][_0x3359('0x27')]);_0xe3367b[_0x3359('0x26')]=qs[_0x3359('0x26')](_0x14234c[_0x3359('0x3e')][_0x3359('0x26')]);}_0xe3367b[_0x3359('0x45')]=qs[_0x3359('0x46')](_0x14234c[_0x3359('0x3e')]['sort']);_0xe3367b[_0x3359('0x47')]=qs[_0x3359('0x3f')](_[_0x3359('0x48')](_0x14234c[_0x3359('0x3e')],_0x3e95f3[_0x3359('0x3f')]),_0x2b2024);if(_0x14234c[_0x3359('0x3e')][_0x3359('0x49')]){_0xe3367b[_0x3359('0x47')]=_[_0x3359('0x4a')](_0xe3367b[_0x3359('0x47')],{'$or':_[_0x3359('0x3c')](_0x2b2024,function(_0x7f9a82){if(_0x7f9a82[_0x3359('0x39')]!==_0x3359('0x4b')){var _0x53df2f={};_0x53df2f[_0x7f9a82[_0x3359('0x34')]]={'$like':'%'+_0x14234c[_0x3359('0x3e')][_0x3359('0x49')]+'%'};return _0x53df2f;}})});}_0xe3367b=_[_0x3359('0x4a')]({},_0xe3367b,_0x14234c[_0x3359('0x4c')]);var _0x596a8c={'where':_0xe3367b[_0x3359('0x47')]};return db[_0x3359('0x36')]['count'](_0x596a8c)['then'](function(_0x3316ea){_0x3c1021[_0x3359('0x25')]=_0x3316ea;if(_0x14234c['query'][_0x3359('0x4d')]){_0xe3367b[_0x3359('0x4e')]=[{'all':!![]}];}return db[_0x3359('0x36')][_0x3359('0x4f')](_0xe3367b);})[_0x3359('0x2f')](function(_0x3fc839){_0x3c1021[_0x3359('0x50')]=_0x3fc839;return _0x3c1021;})[_0x3359('0x2f')](respondWithFilteredResult(_0x4891e0,_0xe3367b))['catch'](handleError(_0x4891e0,null));};exports[_0x3359('0x51')]=function(_0x455bfc,_0x33f7ca){var _0x9f533={'raw':!![],'where':{'id':_0x455bfc[_0x3359('0x52')]['id']}},_0x45ba9e={};_0x45ba9e[_0x3359('0x3b')]=_[_0x3359('0x3d')](db[_0x3359('0x36')][_0x3359('0x37')]);_0x45ba9e['query']=_[_0x3359('0x3d')](_0x455bfc[_0x3359('0x3e')]);_0x45ba9e[_0x3359('0x3f')]=_[_0x3359('0x40')](_0x45ba9e[_0x3359('0x3b')],_0x45ba9e[_0x3359('0x3e')]);_0x9f533[_0x3359('0x41')]=_[_0x3359('0x40')](_0x45ba9e['model'],qs['fields'](_0x455bfc[_0x3359('0x3e')][_0x3359('0x42')]));_0x9f533[_0x3359('0x41')]=_0x9f533[_0x3359('0x41')][_0x3359('0x53')]?_0x9f533['attributes']:_0x45ba9e[_0x3359('0x3b')];if(_0x455bfc[_0x3359('0x3e')][_0x3359('0x4d')]){_0x9f533[_0x3359('0x4e')]=[{'all':!![]}];}_0x9f533=_[_0x3359('0x4a')]({},_0x9f533,_0x455bfc[_0x3359('0x4c')]);return db[_0x3359('0x36')][_0x3359('0x54')](_0x9f533)[_0x3359('0x2f')](handleEntityNotFound(_0x33f7ca,null))[_0x3359('0x2f')](respondWithResult(_0x33f7ca,null))['catch'](handleError(_0x33f7ca,null));};exports[_0x3359('0x55')]=function(_0x545889,_0x5a3ff7){return db[_0x3359('0x36')][_0x3359('0x55')](_0x545889[_0x3359('0x56')],{})[_0x3359('0x2f')](function(_0x25724f){var _0x18eb11=_0x545889[_0x3359('0x57')]['get']({'plain':!![]});if(!_0x18eb11)throw new Error(_0x3359('0x58'));if(_0x18eb11['role']===_0x3359('0x57')){var _0x12d321=_0x25724f[_0x3359('0x59')]({'plain':!![]});var _0x4acbfe=_0x3359('0x31');return db[_0x3359('0x5a')][_0x3359('0x54')]({'where':{'name':_0x4acbfe,'userProfileId':_0x18eb11[_0x3359('0x5b')]},'raw':!![]})[_0x3359('0x2f')](function(_0x524821){if(_0x524821&&_0x524821[_0x3359('0x5c')]===0x0){return db['UserProfileResource']['create']({'name':_0x12d321['name'],'resourceId':_0x12d321['id'],'type':_0x524821[_0x3359('0x34')],'sectionId':_0x524821['id']},{})['then'](function(){return _0x25724f;});}else{return _0x25724f;}})[_0x3359('0x5d')](function(_0x3fc955){logger[_0x3359('0x33')](_0x3359('0x5e'),_0x3fc955);throw _0x3fc955;});}return _0x25724f;})[_0x3359('0x2f')](respondWithResult(_0x5a3ff7,0xc9))[_0x3359('0x5d')](handleError(_0x5a3ff7,null));};exports[_0x3359('0x2e')]=function(_0x751f1d,_0x4586f0){if(_0x751f1d[_0x3359('0x56')]['id']){delete _0x751f1d[_0x3359('0x56')]['id'];}return db['FaxQueue'][_0x3359('0x54')]({'where':{'id':_0x751f1d['params']['id']}})[_0x3359('0x2f')](handleEntityNotFound(_0x4586f0,null))[_0x3359('0x2f')](saveUpdates(_0x751f1d[_0x3359('0x56')],null))[_0x3359('0x2f')](respondWithResult(_0x4586f0,null))[_0x3359('0x5d')](handleError(_0x4586f0,null));};exports[_0x3359('0x30')]=function(_0x110409,_0x4dd286){return db['FaxQueue'][_0x3359('0x54')]({'where':{'id':_0x110409[_0x3359('0x52')]['id']}})[_0x3359('0x2f')](handleEntityNotFound(_0x4dd286,null))[_0x3359('0x2f')](removeEntity(_0x4dd286,null))[_0x3359('0x5d')](handleError(_0x4dd286,null));};exports[_0x3359('0x5f')]=function(_0x5a4b37,_0x107676){return db['FaxQueue'][_0x3359('0x5f')]()['then'](respondWithResult(_0x107676,null))[_0x3359('0x5d')](handleError(_0x107676,null));};exports[_0x3359('0x60')]=function(_0x543860,_0x296f58,_0x30db0a){var _0x351ff7={'raw':!![],'where':{}},_0x57c87e={},_0x3a7013;return db['FaxQueue'][_0x3359('0x61')]({'where':{'id':_0x543860['params']['id']}})[_0x3359('0x2f')](handleEntityNotFound(_0x296f58,null))['then'](function(_0x444150){if(_0x444150){_0x3a7013=_0x444150[_0x3359('0x59')]({'plain':!![]});_0x57c87e['model']=_[_0x3359('0x3d')](db[_0x3359('0x62')][_0x3359('0x37')]);_0x57c87e['query']=_[_0x3359('0x3d')](_0x543860[_0x3359('0x3e')]);_0x57c87e['filters']=_[_0x3359('0x40')](_0x57c87e[_0x3359('0x3b')],_0x57c87e[_0x3359('0x3e')]);_0x351ff7['attributes']=_[_0x3359('0x40')](_0x57c87e[_0x3359('0x3b')],qs['fields'](_0x543860[_0x3359('0x3e')][_0x3359('0x42')]));_0x351ff7[_0x3359('0x41')]=_0x351ff7['attributes'][_0x3359('0x53')]?_0x351ff7[_0x3359('0x41')]:_0x57c87e['model'];if(!_0x543860[_0x3359('0x3e')][_0x3359('0x43')](_0x3359('0x44'))){_0x351ff7[_0x3359('0x27')]=qs['limit'](_0x543860[_0x3359('0x3e')][_0x3359('0x27')]);_0x351ff7[_0x3359('0x26')]=qs[_0x3359('0x26')](_0x543860['query'][_0x3359('0x26')]);}_0x351ff7[_0x3359('0x45')]=qs[_0x3359('0x46')](_0x543860[_0x3359('0x3e')][_0x3359('0x46')]);_0x351ff7['where']=qs['filters'](_[_0x3359('0x48')](_0x543860[_0x3359('0x3e')],_0x57c87e[_0x3359('0x3f')]));_0x351ff7[_0x3359('0x47')][_0x3359('0x63')]=_0x444150['id'];if(_0x543860[_0x3359('0x3e')][_0x3359('0x49')]){_0x351ff7[_0x3359('0x47')]=_[_0x3359('0x4a')](_0x351ff7[_0x3359('0x47')],{'$or':_[_0x3359('0x3c')](_0x351ff7[_0x3359('0x41')],function(_0x198b2e){var _0x497d4d={};_0x497d4d[_0x198b2e]={'$like':'%'+_0x543860[_0x3359('0x3e')][_0x3359('0x49')]+'%'};return _0x497d4d;})});}_0x351ff7=_['merge']({},_0x351ff7,_0x543860[_0x3359('0x4c')]);return db['UserFaxQueue'][_0x3359('0x4f')](_0x351ff7);}})[_0x3359('0x2f')](function(_0x5b76e0){if(_0x5b76e0){return db[_0x3359('0x64')][_0x3359('0x65')]({'where':{'id':_[_0x3359('0x3c')](_0x5b76e0,_0x3359('0x66')),'role':_0x3359('0x67')},'attributes':['id',_0x3359('0x34'),_0x3359('0x68'),_0x3359('0x69'),_0x3359('0x6a')]});}})['then'](function(_0x4fd4b4){if(_0x4fd4b4){return{'count':_0x4fd4b4['count'],'rows':_[_0x3359('0x3c')](_0x4fd4b4[_0x3359('0x50')],function(_0x3b8d11){return{'membername':_0x3b8d11[_0x3359('0x34')],'UserId':_0x3b8d11['id'],'queue_name':_0x3a7013[_0x3359('0x34')],'FaxQueueId':_0x3a7013['id'],'interface':util[_0x3359('0x6b')]('%s/%s',_0x3359('0x6c'),_0x3b8d11['name']),'penalty':0x0,'paused':_0x3b8d11[_0x3359('0x68')],'createdAt':_0x3b8d11[_0x3359('0x6a')],'updatedAt':_0x3b8d11[_0x3359('0x69')]};})};}else{return{'count':0x0,'rows':[]};}})[_0x3359('0x2f')](respondWithFilteredResult(_0x296f58,_0x351ff7))[_0x3359('0x5d')](handleError(_0x296f58,null));};exports['getTeams']=function(_0x165d45,_0x18c40a,_0x9d55d3){var _0x19b381={};var _0x402d4c={};var _0x2c2307;var _0x46a066;return db['FaxQueue']['findOne']({'where':{'id':_0x165d45[_0x3359('0x52')]['id']}})['then'](handleEntityNotFound(_0x18c40a,null))[_0x3359('0x2f')](function(_0x42d9f1){if(_0x42d9f1){_0x2c2307=_0x42d9f1;_0x402d4c['model']=_[_0x3359('0x3d')](db[_0x3359('0x6d')][_0x3359('0x37')]);_0x402d4c[_0x3359('0x3e')]=_[_0x3359('0x3d')](_0x165d45[_0x3359('0x3e')]);_0x402d4c[_0x3359('0x3f')]=_[_0x3359('0x40')](_0x402d4c[_0x3359('0x3b')],_0x402d4c['query']);_0x19b381['attributes']=_[_0x3359('0x40')](_0x402d4c['model'],qs['fields'](_0x165d45[_0x3359('0x3e')][_0x3359('0x42')]));_0x19b381[_0x3359('0x41')]=_0x19b381['attributes']['length']?_0x19b381[_0x3359('0x41')]:_0x402d4c[_0x3359('0x3b')];_0x19b381[_0x3359('0x45')]=qs[_0x3359('0x46')](_0x165d45[_0x3359('0x3e')][_0x3359('0x46')]);_0x19b381['where']=qs[_0x3359('0x3f')](_[_0x3359('0x48')](_0x165d45[_0x3359('0x3e')],_0x402d4c[_0x3359('0x3f')]));if(_0x165d45['query'][_0x3359('0x49')]){_0x19b381[_0x3359('0x47')]=_[_0x3359('0x4a')](_0x19b381[_0x3359('0x47')],{'$or':_[_0x3359('0x3c')](_0x19b381[_0x3359('0x41')],function(_0x8135c){var _0x2e0cd9={};_0x2e0cd9[_0x8135c]={'$like':'%'+_0x165d45[_0x3359('0x3e')][_0x3359('0x49')]+'%'};return _0x2e0cd9;})});}_0x19b381=_[_0x3359('0x4a')]({},_0x19b381,_0x165d45[_0x3359('0x4c')]);return _0x2c2307[_0x3359('0x6e')](_0x19b381);}})[_0x3359('0x2f')](function(_0x4fa690){if(_0x4fa690){_0x46a066=_0x4fa690['length'];if(!_0x165d45[_0x3359('0x3e')][_0x3359('0x43')](_0x3359('0x44'))){_0x19b381['limit']=qs[_0x3359('0x27')](_0x165d45[_0x3359('0x3e')][_0x3359('0x27')]);_0x19b381[_0x3359('0x26')]=qs['offset'](_0x165d45[_0x3359('0x3e')][_0x3359('0x26')]);}return _0x2c2307[_0x3359('0x6e')](_0x19b381);}})[_0x3359('0x2f')](function(_0x3fde1c){if(_0x3fde1c){return _0x3fde1c?{'count':_0x46a066,'rows':_0x3fde1c}:null;}})['then'](respondWithResult(_0x18c40a,null))[_0x3359('0x5d')](handleError(_0x18c40a,null));};exports['addTeams']=function(_0x5a0051,_0x3f0621,_0x1282d0){var _0xfb485a=_0x5a0051['body'][_0x3359('0x6f')];return db[_0x3359('0x6d')]['findAll']({'where':{'id':_0xfb485a},'attributes':['id'],'include':[{'model':db[_0x3359('0x64')],'as':_0x3359('0x70'),'attributes':['id',_0x3359('0x34'),_0x3359('0x71'),_0x3359('0x72'),_0x3359('0x73')],'raw':!![]}]})[_0x3359('0x2f')](function(_0x5819c7){if(_0x5819c7){var _0x26efbd=_[_0x3359('0x74')](_0x5819c7,function(_0x57744c){var _0x4a0431=_0x57744c['get']({'plain':!![]});return _0x4a0431[_0x3359('0x70')];});return db['FaxQueue']['find']({'where':{'id':_0x5a0051['params']['id']}})['then'](function(_0x144eeb){return db['sequelize'][_0x3359('0x75')](function(_0xab8f05){return _0x144eeb[_0x3359('0x76')](_0xfb485a,{'transaction':_0xab8f05})[_0x3359('0x2f')](function(){return BPromise[_0x3359('0x77')](_0x26efbd,function(_0x586f98){return db[_0x3359('0x62')]['findOrCreate']({'where':{'UserId':_0x586f98['id'],'FaxQueueId':_0x5a0051[_0x3359('0x52')]['id']},'transaction':_0xab8f05});});})[_0x3359('0x2f')](function(){_0x26efbd['forEach'](function(_0x535083){socket[_0x3359('0x78')](_0x3359('0x79'),{'UserId':_0x535083['id'],'FaxQueueId':_0x144eeb['id']});});});});});}})['then'](respondWithStatusCode(_0x3f0621,null))['catch'](handleError(_0x3f0621,null));};exports[_0x3359('0x7a')]=function(_0x1e1d37,_0x20f5b8,_0x2276a5){return db[_0x3359('0x6d')][_0x3359('0x4f')]({'where':{'id':_0x1e1d37[_0x3359('0x3e')][_0x3359('0x6f')]},'attributes':['id'],'include':[{'model':db['User'],'as':_0x3359('0x70'),'attributes':['id'],'raw':!![]}]})[_0x3359('0x2f')](handleEntityNotFound(_0x20f5b8,null))['then'](function(_0x21aaf7){var _0x3d2048=_['map'](_0x21aaf7,'id');var _0x7d592f=[];var _0x4156fa=[];var _0xe0ceb5=squel[_0x3359('0x7b')]();_0xe0ceb5[_0x3359('0x7c')](_0x3359('0x7d'))[_0x3359('0x7e')](_0x3359('0x7f'),'tq')['join'](_0x3359('0x80'),'ut',_0x3359('0x81'))['where'](_0x3359('0x82'),_0x1e1d37['params']['id']);for(var _0x23f5c5=0x0;_0x23f5c5<_0x21aaf7[_0x3359('0x53')];_0x23f5c5+=0x1){let _0x55023b=_0x21aaf7[_0x23f5c5];for(var _0x23c5ea=0x0;_0x23c5ea<_0x55023b['Agents'][_0x3359('0x53')];_0x23c5ea+=0x1){let _0x4f2efe=_0x55023b['Agents'][_0x23c5ea];var _0x5538a8=_0xe0ceb5['clone']();_0x5538a8[_0x3359('0x47')]('ut.UserId\x20=\x20?',_0x4f2efe['id']);_0x4156fa[_0x3359('0x83')](db['sequelize'][_0x3359('0x3e')](_0x5538a8[_0x3359('0x84')](),{'type':db[_0x3359('0x85')][_0x3359('0x86')][_0x3359('0x87')]})[_0x3359('0x2f')](function(_0x11bcc4){if(_0x11bcc4[_0x3359('0x53')]===0x1){return _0x4f2efe['id'];}else{var _0x9444c=_[_0x3359('0x88')](_[_0x3359('0x3c')](_0x11bcc4,_0x3359('0x89')),function(_0x26f42c){return _[_0x3359('0x8a')](_0x3d2048,_0x26f42c);});if(_0x9444c){return _0x4f2efe['id'];}}}));}}return BPromise['all'](_0x4156fa)[_0x3359('0x2f')](function(_0x3d90e0){_0x7d592f=_(_0x7d592f)[_0x3359('0x8b')](_0x3d90e0)[_0x3359('0x8c')]()[_0x3359('0x8d')]();return db[_0x3359('0x36')][_0x3359('0x54')]({'where':{'id':_0x1e1d37[_0x3359('0x52')]['id']}})[_0x3359('0x2f')](function(_0x32f8f0){return db[_0x3359('0x85')][_0x3359('0x75')](function(_0x258c52){return _0x32f8f0['removeTeams'](_0x1e1d37[_0x3359('0x3e')][_0x3359('0x6f')],{'transaction':_0x258c52})[_0x3359('0x2f')](function(){if(!_['isEmpty'](_0x7d592f)){return _0x32f8f0[_0x3359('0x8e')](_0x7d592f,{'transaction':_0x258c52});}})['then'](function(){_0x7d592f[_0x3359('0x8f')](function(_0x4b042e){socket[_0x3359('0x78')](_0x3359('0x90'),{'UserId':_0x4b042e,'FaxQueueId':_0x32f8f0['id']});});});});});});})[_0x3359('0x2f')](respondWithStatusCode(_0x20f5b8,null))[_0x3359('0x5d')](handleError(_0x20f5b8,null));};exports[_0x3359('0x91')]=function(_0x503bcf,_0x1cd3b8,_0x3dcb99){return db['FaxQueue'][_0x3359('0x54')]({'where':{'id':_0x503bcf[_0x3359('0x52')]['id']}})[_0x3359('0x2f')](handleEntityNotFound(_0x1cd3b8,null))[_0x3359('0x2f')](function(_0x5c49b0){if(_0x5c49b0){return _0x5c49b0[_0x3359('0x91')](_0x503bcf['body'][_0x3359('0x6f')],_[_0x3359('0x92')](_0x503bcf[_0x3359('0x56')],['ids','id'])||{})[_0x3359('0x93')](function(_0x240fdb){for(var _0x435c15=0x0;_0x435c15<_0x503bcf[_0x3359('0x56')][_0x3359('0x6f')][_0x3359('0x53')];_0x435c15+=0x1){socket[_0x3359('0x78')](_0x3359('0x79'),{'UserId':Number(_0x503bcf['body']['ids'][_0x435c15]),'FaxQueueId':Number(_0x503bcf[_0x3359('0x52')]['id'])});}return _0x240fdb;});}})[_0x3359('0x2f')](respondWithResult(_0x1cd3b8,null))[_0x3359('0x5d')](handleError(_0x1cd3b8,null));};exports[_0x3359('0x8e')]=function(_0x2d85cd,_0x2facc9,_0x599fba){return db[_0x3359('0x36')][_0x3359('0x54')]({'where':{'id':_0x2d85cd[_0x3359('0x52')]['id']}})[_0x3359('0x2f')](handleEntityNotFound(_0x2facc9,null))[_0x3359('0x2f')](function(_0xef765f){if(_0xef765f){return _0xef765f['removeAgents'](_0x2d85cd['query'][_0x3359('0x6f')])[_0x3359('0x2f')](function(){if(_['isArray'](_0x2d85cd[_0x3359('0x3e')]['ids'])){for(var _0x4f3dd4=0x0;_0x4f3dd4<_0x2d85cd[_0x3359('0x3e')]['ids'][_0x3359('0x53')];_0x4f3dd4+=0x1){socket['emit'](_0x3359('0x90'),{'UserId':Number(_0x2d85cd[_0x3359('0x3e')][_0x3359('0x6f')][_0x4f3dd4]),'FaxQueueId':Number(_0x2d85cd['params']['id'])});}}else{socket[_0x3359('0x78')](_0x3359('0x90'),{'UserId':Number(_0x2d85cd[_0x3359('0x3e')][_0x3359('0x6f')]),'FaxQueueId':Number(_0x2d85cd[_0x3359('0x52')]['id'])});}});}})['then'](respondWithStatusCode(_0x2facc9,null))[_0x3359('0x5d')](handleError(_0x2facc9,null));};exports[_0x3359('0x94')]=function(_0x502115,_0x4980c9,_0x18e4fa){var _0x29aae4={};var _0x8638e={};var _0xf0321e;var _0x445df9;return db[_0x3359('0x36')][_0x3359('0x61')]({'where':{'id':_0x502115[_0x3359('0x52')]['id']}})[_0x3359('0x2f')](handleEntityNotFound(_0x4980c9,null))['then'](function(_0x5b0836){if(_0x5b0836){_0xf0321e=_0x5b0836;_0x8638e[_0x3359('0x3b')]=_[_0x3359('0x3d')](db[_0x3359('0x64')][_0x3359('0x37')]);_0x8638e[_0x3359('0x3e')]=_[_0x3359('0x3d')](_0x502115[_0x3359('0x3e')]);_0x8638e[_0x3359('0x3f')]=_[_0x3359('0x40')](_0x8638e[_0x3359('0x3b')],_0x8638e[_0x3359('0x3e')]);_0x29aae4[_0x3359('0x41')]=_['intersection'](_0x8638e[_0x3359('0x3b')],qs[_0x3359('0x42')](_0x502115[_0x3359('0x3e')][_0x3359('0x42')]));_0x29aae4[_0x3359('0x41')]=_0x29aae4[_0x3359('0x41')][_0x3359('0x53')]?_0x29aae4[_0x3359('0x41')]:_0x8638e['model'];_0x29aae4['order']=qs[_0x3359('0x46')](_0x502115[_0x3359('0x3e')][_0x3359('0x46')]);_0x29aae4[_0x3359('0x47')]=qs['filters'](_[_0x3359('0x48')](_0x502115['query'],_0x8638e[_0x3359('0x3f')]));if(_0x502115[_0x3359('0x3e')][_0x3359('0x49')]){_0x29aae4[_0x3359('0x47')]=_[_0x3359('0x4a')](_0x29aae4[_0x3359('0x47')],{'$or':_['map'](_0x29aae4['attributes'],function(_0x287ebd){var _0x419a28={};_0x419a28[_0x287ebd]={'$like':'%'+_0x502115['query']['filter']+'%'};return _0x419a28;})});}_0x29aae4=_[_0x3359('0x4a')]({},_0x29aae4,_0x502115[_0x3359('0x4c')]);return _0xf0321e['getAgents'](_0x29aae4);}})[_0x3359('0x2f')](function(_0x35f964){if(_0x35f964){_0x445df9=_0x35f964[_0x3359('0x53')];if(!_0x502115[_0x3359('0x3e')][_0x3359('0x43')](_0x3359('0x44'))){_0x29aae4[_0x3359('0x27')]=qs[_0x3359('0x27')](_0x502115[_0x3359('0x3e')][_0x3359('0x27')]);_0x29aae4[_0x3359('0x26')]=qs[_0x3359('0x26')](_0x502115[_0x3359('0x3e')][_0x3359('0x26')]);}return _0xf0321e['getAgents'](_0x29aae4);}})[_0x3359('0x2f')](function(_0x423744){if(_0x423744){return _0x423744?{'count':_0x445df9,'rows':_0x423744}:null;}})[_0x3359('0x2f')](respondWithResult(_0x4980c9,null))[_0x3359('0x5d')](handleError(_0x4980c9,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe4fe=['hook','exports','FaxQueue','setMaxListeners','update','remove','emit','hasOwnProperty'];(function(_0x57975f,_0x388556){var _0x4793b8=function(_0x652c05){while(--_0x652c05){_0x57975f['push'](_0x57975f['shift']());}};_0x4793b8(++_0x388556);}(_0xe4fe,0x1ca));var _0xee4f=function(_0x59ed8c,_0x497c0f){_0x59ed8c=_0x59ed8c-0x0;var _0x2ae760=_0xe4fe[_0x59ed8c];return _0x2ae760;};'use strict';var EventEmitter=require('events');var FaxQueue=require('../../mysqldb')['db'][_0xee4f('0x0')];var FaxQueueEvents=new EventEmitter();FaxQueueEvents[_0xee4f('0x1')](0x0);var events={'afterCreate':'save','afterUpdate':_0xee4f('0x2'),'afterDestroy':_0xee4f('0x3')};function emitEvent(_0x4c4f0b){return function(_0x5698df,_0x285b36,_0x984c39){FaxQueueEvents[_0xee4f('0x4')](_0x4c4f0b+':'+_0x5698df['id'],_0x5698df);FaxQueueEvents[_0xee4f('0x4')](_0x4c4f0b,_0x5698df);_0x984c39(null);};}for(var e in events){if(events[_0xee4f('0x5')](e)){var event=events[e];FaxQueue[_0xee4f('0x6')](e,emitEvent(event));}}module[_0xee4f('0x7')]=FaxQueueEvents;
\ No newline at end of file
+var _0x8d0b=['events','../../mysqldb','FaxQueue','save','remove','emit','hasOwnProperty','hook','exports'];(function(_0x3f288d,_0x3c7a97){var _0x5e8468=function(_0xb0189c){while(--_0xb0189c){_0x3f288d['push'](_0x3f288d['shift']());}};_0x5e8468(++_0x3c7a97);}(_0x8d0b,0x171));var _0xb8d0=function(_0x3457b4,_0x4cd8f9){_0x3457b4=_0x3457b4-0x0;var _0xaa8fa9=_0x8d0b[_0x3457b4];return _0xaa8fa9;};'use strict';var EventEmitter=require(_0xb8d0('0x0'));var FaxQueue=require(_0xb8d0('0x1'))['db'][_0xb8d0('0x2')];var FaxQueueEvents=new EventEmitter();FaxQueueEvents['setMaxListeners'](0x0);var events={'afterCreate':_0xb8d0('0x3'),'afterUpdate':'update','afterDestroy':_0xb8d0('0x4')};function emitEvent(_0x57c24c){return function(_0x561aba,_0x396f41,_0x3aea31){FaxQueueEvents[_0xb8d0('0x5')](_0x57c24c+':'+_0x561aba['id'],_0x561aba);FaxQueueEvents[_0xb8d0('0x5')](_0x57c24c,_0x561aba);_0x3aea31(null);};}for(var e in events){if(events[_0xb8d0('0x6')](e)){var event=events[e];FaxQueue[_0xb8d0('0x7')](e,emitEvent(event));}}module[_0xb8d0('0x8')]=FaxQueueEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x46a8=['exports','FaxQueue','fax_queues','lodash','util','../../config/logger','moment','bluebird','path','rimraf','../../config/environment'];(function(_0x14a875,_0x5094dd){var _0x193b84=function(_0xda2c26){while(--_0xda2c26){_0x14a875['push'](_0x14a875['shift']());}};_0x193b84(++_0x5094dd);}(_0x46a8,0x179));var _0x846a=function(_0x40752c,_0x3cbdb7){_0x40752c=_0x40752c-0x0;var _0x10b5cc=_0x46a8[_0x40752c];return _0x10b5cc;};'use strict';var _=require(_0x846a('0x0'));var util=require(_0x846a('0x1'));var logger=require(_0x846a('0x2'))('api');var moment=require(_0x846a('0x3'));var BPromise=require(_0x846a('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x846a('0x5'));var rimraf=require(_0x846a('0x6'));var config=require(_0x846a('0x7'));var attributes=require('./faxQueue.attributes');module[_0x846a('0x8')]=function(_0x370dda,_0xde326f){return _0x370dda['define'](_0x846a('0x9'),attributes,{'tableName':_0x846a('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x295c=['lodash','api','moment','request-promise','./faxQueue.attributes','exports','define','FaxQueue','fax_queues'];(function(_0x18918f,_0x13f594){var _0x10abe3=function(_0x29344e){while(--_0x29344e){_0x18918f['push'](_0x18918f['shift']());}};_0x10abe3(++_0x13f594);}(_0x295c,0xa2));var _0xc295=function(_0x2d67ad,_0xc318fe){_0x2d67ad=_0x2d67ad-0x0;var _0xa7e29d=_0x295c[_0x2d67ad];return _0xa7e29d;};'use strict';var _=require(_0xc295('0x0'));var util=require('util');var logger=require('../../config/logger')(_0xc295('0x1'));var moment=require(_0xc295('0x2'));var BPromise=require('bluebird');var rp=require(_0xc295('0x3'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0xc295('0x4'));module[_0xc295('0x5')]=function(_0x21c76a,_0x524ed1){return _0x21c76a[_0xc295('0x6')](_0xc295('0x7'),attributes,{'tableName':_0xc295('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd3eb=['error','FaxQueue,\x20%s,\x20%s','message','result','catch','GetFaxQueue','FaxQueue','options','raw','where','attributes','include','map','model','ShowFaxQueue','find','util','moment','bluebird','randomstring','ioredis','../../config/logger','rpc','../../config/environment','client','http','redis','defaults','localhost','socket.io-emitter','./faxQueue.socket','request','then','info','debug','FaxQueue,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','code'];(function(_0x31bd4e,_0x2e7bb4){var _0x32c4e8=function(_0x25f959){while(--_0x25f959){_0x31bd4e['push'](_0x31bd4e['shift']());}};_0x32c4e8(++_0x2e7bb4);}(_0xd3eb,0x121));var _0xbd3e=function(_0x16629d,_0x492375){_0x16629d=_0x16629d-0x0;var _0x56ccee=_0xd3eb[_0x16629d];return _0x56ccee;};'use strict';var _=require('lodash');var util=require(_0xbd3e('0x0'));var moment=require(_0xbd3e('0x1'));var BPromise=require(_0xbd3e('0x2'));var rs=require(_0xbd3e('0x3'));var fs=require('fs');var Redis=require(_0xbd3e('0x4'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0xbd3e('0x5'))(_0xbd3e('0x6'));var config=require(_0xbd3e('0x7'));var jayson=require('jayson/promise');var client=jayson[_0xbd3e('0x8')][_0xbd3e('0x9')]({'port':0x232a});config[_0xbd3e('0xa')]=_[_0xbd3e('0xb')](config[_0xbd3e('0xa')],{'host':_0xbd3e('0xc'),'port':0x18eb});var socket=require(_0xbd3e('0xd'))(new Redis(config[_0xbd3e('0xa')]));require(_0xbd3e('0xe'))['register'](socket);function respondWithRpcPromise(_0x5bfb6d,_0x332b4d,_0x96d57b){return new BPromise(function(_0x2788f0,_0x3a423e){return client[_0xbd3e('0xf')](_0x5bfb6d,_0x96d57b)[_0xbd3e('0x10')](function(_0x57ae9a){logger[_0xbd3e('0x11')]('FaxQueue,\x20%s,\x20%s',_0x332b4d,'request\x20sent');logger[_0xbd3e('0x12')](_0xbd3e('0x13'),_0x332b4d,_0xbd3e('0x14'),JSON[_0xbd3e('0x15')](_0x57ae9a));if(_0x57ae9a['error']){if(_0x57ae9a['error'][_0xbd3e('0x16')]===0x1f4){logger[_0xbd3e('0x17')](_0xbd3e('0x18'),_0x332b4d,_0x57ae9a[_0xbd3e('0x17')][_0xbd3e('0x19')]);return _0x3a423e(_0x57ae9a[_0xbd3e('0x17')][_0xbd3e('0x19')]);}logger['error'](_0xbd3e('0x18'),_0x332b4d,_0x57ae9a[_0xbd3e('0x17')][_0xbd3e('0x19')]);return _0x2788f0(_0x57ae9a[_0xbd3e('0x17')]['message']);}else{logger[_0xbd3e('0x11')](_0xbd3e('0x18'),_0x332b4d,_0xbd3e('0x14'));_0x2788f0(_0x57ae9a[_0xbd3e('0x1a')][_0xbd3e('0x19')]);}})[_0xbd3e('0x1b')](function(_0x4ccae3){logger[_0xbd3e('0x17')](_0xbd3e('0x18'),_0x332b4d,_0x4ccae3);_0x3a423e(_0x4ccae3);});});}exports[_0xbd3e('0x1c')]=function(_0xb979da){var _0xf9fe88=this;return new Promise(function(_0x3ef393,_0x134539){return db[_0xbd3e('0x1d')]['findAll']({'raw':_0xb979da[_0xbd3e('0x1e')]?_0xb979da['options'][_0xbd3e('0x1f')]===undefined?!![]:![]:!![],'where':_0xb979da['options']?_0xb979da[_0xbd3e('0x1e')][_0xbd3e('0x20')]||null:null,'attributes':_0xb979da[_0xbd3e('0x1e')]?_0xb979da[_0xbd3e('0x1e')][_0xbd3e('0x21')]||null:null,'limit':_0xb979da['options']?_0xb979da[_0xbd3e('0x1e')]['limit']||null:null,'include':_0xb979da[_0xbd3e('0x1e')]?_0xb979da['options'][_0xbd3e('0x22')]?_[_0xbd3e('0x23')](_0xb979da[_0xbd3e('0x1e')][_0xbd3e('0x22')],function(_0x4d3f8a){return{'model':db[_0x4d3f8a[_0xbd3e('0x24')]],'as':_0x4d3f8a['as'],'attributes':_0x4d3f8a[_0xbd3e('0x21')],'include':_0x4d3f8a[_0xbd3e('0x22')]?_[_0xbd3e('0x23')](_0x4d3f8a[_0xbd3e('0x22')],function(_0xe93c06){return{'model':db[_0xe93c06['model']],'as':_0xe93c06['as'],'attributes':_0xe93c06[_0xbd3e('0x21')],'include':_0xe93c06[_0xbd3e('0x22')]?_[_0xbd3e('0x23')](_0xe93c06[_0xbd3e('0x22')],function(_0x57f012){return{'model':db[_0x57f012[_0xbd3e('0x24')]],'as':_0x57f012['as'],'attributes':_0x57f012[_0xbd3e('0x21')]};}):[]};}):[]};}):[]:[]})[_0xbd3e('0x10')](function(_0x29597f){logger[_0xbd3e('0x11')](_0xbd3e('0x1c'),_0xb979da);logger[_0xbd3e('0x12')]('GetFaxQueue',_0xb979da,JSON[_0xbd3e('0x15')](_0x29597f));_0x3ef393(_0x29597f);})[_0xbd3e('0x1b')](function(_0x1b86e7){logger[_0xbd3e('0x17')](_0xbd3e('0x1c'),_0x1b86e7['message'],_0xb979da);_0x134539(_0xf9fe88[_0xbd3e('0x17')](0x1f4,_0x1b86e7['message']));});});};exports[_0xbd3e('0x25')]=function(_0x819d84){var _0x202ef4=this;return new Promise(function(_0x3f8753,_0x2f8ffc){return db[_0xbd3e('0x1d')][_0xbd3e('0x26')]({'raw':_0x819d84[_0xbd3e('0x1e')]?_0x819d84[_0xbd3e('0x1e')]['raw']===undefined?!![]:![]:!![],'where':_0x819d84[_0xbd3e('0x1e')]?_0x819d84['options']['where']||null:null,'attributes':_0x819d84[_0xbd3e('0x1e')]?_0x819d84['options'][_0xbd3e('0x21')]||null:null,'include':_0x819d84[_0xbd3e('0x1e')]?_0x819d84[_0xbd3e('0x1e')][_0xbd3e('0x22')]?_[_0xbd3e('0x23')](_0x819d84[_0xbd3e('0x1e')]['include'],function(_0x371d2b){return{'model':db[_0x371d2b[_0xbd3e('0x24')]],'as':_0x371d2b['as'],'attributes':_0x371d2b['attributes'],'include':_0x371d2b[_0xbd3e('0x22')]?_[_0xbd3e('0x23')](_0x371d2b[_0xbd3e('0x22')],function(_0x532ded){return{'model':db[_0x532ded[_0xbd3e('0x24')]],'as':_0x532ded['as'],'attributes':_0x532ded[_0xbd3e('0x21')],'include':_0x532ded[_0xbd3e('0x22')]?_[_0xbd3e('0x23')](_0x532ded[_0xbd3e('0x22')],function(_0xeb09d6){return{'model':db[_0xeb09d6['model']],'as':_0xeb09d6['as'],'attributes':_0xeb09d6['attributes']};}):[]};}):[]};}):[]:[]})[_0xbd3e('0x10')](function(_0x3536ec){logger[_0xbd3e('0x11')](_0xbd3e('0x25'),_0x819d84);logger['debug']('ShowFaxQueue',_0x819d84,JSON[_0xbd3e('0x15')](_0x3536ec));_0x3f8753(_0x3536ec);})[_0xbd3e('0x1b')](function(_0x3fe3a5){logger['error'](_0xbd3e('0x25'),_0x3fe3a5[_0xbd3e('0x19')],_0x819d84);_0x2f8ffc(_0x202ef4['error'](0x1f4,_0x3fe3a5[_0xbd3e('0x19')]));});});};
\ No newline at end of file
+var _0x3f82=['ioredis','../../mysqldb','rpc','../../config/environment','jayson/promise','client','http','defaults','localhost','redis','register','then','info','FaxQueue,\x20%s,\x20%s','request\x20sent','debug','FaxQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','GetFaxQueue','findAll','options','raw','where','attributes','limit','include','model','map','ShowFaxQueue','find','lodash','util','moment','randomstring'];(function(_0x4c7d8b,_0x572388){var _0x187158=function(_0x5e956d){while(--_0x5e956d){_0x4c7d8b['push'](_0x4c7d8b['shift']());}};_0x187158(++_0x572388);}(_0x3f82,0x1d0));var _0x23f8=function(_0x49f52a,_0x2e5094){_0x49f52a=_0x49f52a-0x0;var _0x53493b=_0x3f82[_0x49f52a];return _0x53493b;};'use strict';var _=require(_0x23f8('0x0'));var util=require(_0x23f8('0x1'));var moment=require(_0x23f8('0x2'));var BPromise=require('bluebird');var rs=require(_0x23f8('0x3'));var fs=require('fs');var Redis=require(_0x23f8('0x4'));var db=require(_0x23f8('0x5'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0x23f8('0x6'));var config=require(_0x23f8('0x7'));var jayson=require(_0x23f8('0x8'));var client=jayson[_0x23f8('0x9')][_0x23f8('0xa')]({'port':0x232a});config['redis']=_[_0x23f8('0xb')](config['redis'],{'host':_0x23f8('0xc'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x23f8('0xd')]));require('./faxQueue.socket')[_0x23f8('0xe')](socket);function respondWithRpcPromise(_0x4fad17,_0x1e9174,_0x5e5210){return new BPromise(function(_0x3b05b1,_0xb9fc02){return client['request'](_0x4fad17,_0x5e5210)[_0x23f8('0xf')](function(_0x242e5b){logger[_0x23f8('0x10')](_0x23f8('0x11'),_0x1e9174,_0x23f8('0x12'));logger[_0x23f8('0x13')](_0x23f8('0x14'),_0x1e9174,_0x23f8('0x12'),JSON[_0x23f8('0x15')](_0x242e5b));if(_0x242e5b[_0x23f8('0x16')]){if(_0x242e5b[_0x23f8('0x16')][_0x23f8('0x17')]===0x1f4){logger[_0x23f8('0x16')](_0x23f8('0x11'),_0x1e9174,_0x242e5b[_0x23f8('0x16')][_0x23f8('0x18')]);return _0xb9fc02(_0x242e5b['error'][_0x23f8('0x18')]);}logger[_0x23f8('0x16')]('FaxQueue,\x20%s,\x20%s',_0x1e9174,_0x242e5b[_0x23f8('0x16')][_0x23f8('0x18')]);return _0x3b05b1(_0x242e5b[_0x23f8('0x16')]['message']);}else{logger[_0x23f8('0x10')](_0x23f8('0x11'),_0x1e9174,_0x23f8('0x12'));_0x3b05b1(_0x242e5b[_0x23f8('0x19')][_0x23f8('0x18')]);}})[_0x23f8('0x1a')](function(_0x86e29f){logger[_0x23f8('0x16')](_0x23f8('0x11'),_0x1e9174,_0x86e29f);_0xb9fc02(_0x86e29f);});});}exports[_0x23f8('0x1b')]=function(_0x4b2c4e){var _0x57beb6=this;return new Promise(function(_0x2f987c,_0x5cae97){return db['FaxQueue'][_0x23f8('0x1c')]({'raw':_0x4b2c4e[_0x23f8('0x1d')]?_0x4b2c4e[_0x23f8('0x1d')][_0x23f8('0x1e')]===undefined?!![]:![]:!![],'where':_0x4b2c4e[_0x23f8('0x1d')]?_0x4b2c4e[_0x23f8('0x1d')][_0x23f8('0x1f')]||null:null,'attributes':_0x4b2c4e[_0x23f8('0x1d')]?_0x4b2c4e[_0x23f8('0x1d')][_0x23f8('0x20')]||null:null,'limit':_0x4b2c4e['options']?_0x4b2c4e[_0x23f8('0x1d')][_0x23f8('0x21')]||null:null,'include':_0x4b2c4e[_0x23f8('0x1d')]?_0x4b2c4e[_0x23f8('0x1d')][_0x23f8('0x22')]?_['map'](_0x4b2c4e[_0x23f8('0x1d')][_0x23f8('0x22')],function(_0x54edde){return{'model':db[_0x54edde[_0x23f8('0x23')]],'as':_0x54edde['as'],'attributes':_0x54edde['attributes'],'include':_0x54edde[_0x23f8('0x22')]?_[_0x23f8('0x24')](_0x54edde[_0x23f8('0x22')],function(_0x54e382){return{'model':db[_0x54e382['model']],'as':_0x54e382['as'],'attributes':_0x54e382[_0x23f8('0x20')],'include':_0x54e382[_0x23f8('0x22')]?_[_0x23f8('0x24')](_0x54e382[_0x23f8('0x22')],function(_0x53c8d1){return{'model':db[_0x53c8d1[_0x23f8('0x23')]],'as':_0x53c8d1['as'],'attributes':_0x53c8d1[_0x23f8('0x20')]};}):[]};}):[]};}):[]:[]})[_0x23f8('0xf')](function(_0x41b300){logger[_0x23f8('0x10')](_0x23f8('0x1b'),_0x4b2c4e);logger[_0x23f8('0x13')](_0x23f8('0x1b'),_0x4b2c4e,JSON['stringify'](_0x41b300));_0x2f987c(_0x41b300);})[_0x23f8('0x1a')](function(_0x389d36){logger[_0x23f8('0x16')](_0x23f8('0x1b'),_0x389d36[_0x23f8('0x18')],_0x4b2c4e);_0x5cae97(_0x57beb6[_0x23f8('0x16')](0x1f4,_0x389d36[_0x23f8('0x18')]));});});};exports[_0x23f8('0x25')]=function(_0x53f97c){var _0x3458d6=this;return new Promise(function(_0x52c5d6,_0x53ee0b){return db['FaxQueue'][_0x23f8('0x26')]({'raw':_0x53f97c[_0x23f8('0x1d')]?_0x53f97c[_0x23f8('0x1d')][_0x23f8('0x1e')]===undefined?!![]:![]:!![],'where':_0x53f97c[_0x23f8('0x1d')]?_0x53f97c[_0x23f8('0x1d')]['where']||null:null,'attributes':_0x53f97c[_0x23f8('0x1d')]?_0x53f97c[_0x23f8('0x1d')][_0x23f8('0x20')]||null:null,'include':_0x53f97c[_0x23f8('0x1d')]?_0x53f97c[_0x23f8('0x1d')][_0x23f8('0x22')]?_[_0x23f8('0x24')](_0x53f97c[_0x23f8('0x1d')][_0x23f8('0x22')],function(_0x18184e){return{'model':db[_0x18184e[_0x23f8('0x23')]],'as':_0x18184e['as'],'attributes':_0x18184e[_0x23f8('0x20')],'include':_0x18184e[_0x23f8('0x22')]?_[_0x23f8('0x24')](_0x18184e[_0x23f8('0x22')],function(_0x43fed5){return{'model':db[_0x43fed5['model']],'as':_0x43fed5['as'],'attributes':_0x43fed5[_0x23f8('0x20')],'include':_0x43fed5[_0x23f8('0x22')]?_[_0x23f8('0x24')](_0x43fed5[_0x23f8('0x22')],function(_0x220754){return{'model':db[_0x220754[_0x23f8('0x23')]],'as':_0x220754['as'],'attributes':_0x220754['attributes']};}):[]};}):[]};}):[]:[]})[_0x23f8('0xf')](function(_0x53b112){logger[_0x23f8('0x10')](_0x23f8('0x25'),_0x53f97c);logger[_0x23f8('0x13')](_0x23f8('0x25'),_0x53f97c,JSON[_0x23f8('0x15')](_0x53b112));_0x52c5d6(_0x53b112);})['catch'](function(_0xf412c9){logger['error']('ShowFaxQueue',_0xf412c9[_0x23f8('0x18')],_0x53f97c);_0x53ee0b(_0x3458d6[_0x23f8('0x16')](0x1f4,_0xf412c9[_0x23f8('0x18')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe852=['removeListener','register','length','faxQueue:','save','remove','update'];(function(_0x584b9d,_0x1cb5c5){var _0x172053=function(_0x5036ec){while(--_0x5036ec){_0x584b9d['push'](_0x584b9d['shift']());}};_0x172053(++_0x1cb5c5);}(_0xe852,0x123));var _0x2e85=function(_0x4e9628,_0x250573){_0x4e9628=_0x4e9628-0x0;var _0x27bc8c=_0xe852[_0x4e9628];return _0x27bc8c;};'use strict';var FaxQueueEvents=require('./faxQueue.events');var events=[_0x2e85('0x0'),_0x2e85('0x1'),_0x2e85('0x2')];function createListener(_0x2df40e,_0x184010){return function(_0x5f0ff7){_0x184010['emit'](_0x2df40e,_0x5f0ff7);};}function removeListener(_0xefa89f,_0x44a400){return function(){FaxQueueEvents[_0x2e85('0x3')](_0xefa89f,_0x44a400);};}exports[_0x2e85('0x4')]=function(_0x2ca9f5){for(var _0x26cc44=0x0,_0x37ad7a=events[_0x2e85('0x5')];_0x26cc44<_0x37ad7a;_0x26cc44++){var _0x5b6dcb=events[_0x26cc44];var _0x113029=createListener(_0x2e85('0x6')+_0x5b6dcb,_0x2ca9f5);FaxQueueEvents['on'](_0x5b6dcb,_0x113029);}};
\ No newline at end of file
+var _0x6a39=['emit','removeListener','register','length','faxQueue:','./faxQueue.events','save','remove','update'];(function(_0x124f2b,_0x368684){var _0x50cffc=function(_0x3b6712){while(--_0x3b6712){_0x124f2b['push'](_0x124f2b['shift']());}};_0x50cffc(++_0x368684);}(_0x6a39,0x140));var _0x96a3=function(_0x14612f,_0x1c3389){_0x14612f=_0x14612f-0x0;var _0x3c41ad=_0x6a39[_0x14612f];return _0x3c41ad;};'use strict';var FaxQueueEvents=require(_0x96a3('0x0'));var events=[_0x96a3('0x1'),_0x96a3('0x2'),_0x96a3('0x3')];function createListener(_0x1314a0,_0x2b9318){return function(_0x5b0682){_0x2b9318[_0x96a3('0x4')](_0x1314a0,_0x5b0682);};}function removeListener(_0x2c27de,_0x37804f){return function(){FaxQueueEvents[_0x96a3('0x5')](_0x2c27de,_0x37804f);};}exports[_0x96a3('0x6')]=function(_0x21f936){for(var _0x2174a1=0x0,_0x19dfa2=events[_0x96a3('0x7')];_0x2174a1<_0x19dfa2;_0x2174a1++){var _0x33520a=events[_0x2174a1];var _0x5478ce=createListener(_0x96a3('0x8')+_0x33520a,_0x21f936);FaxQueueEvents['on'](_0x33520a,_0x5478ce);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe5af=['util','path','express','Router','fs-extra','../../components/interaction/service','get','isAuthenticated','/describe','describe','/:id/members','/:id/teams','getTeams','getAgents','post','create','addTeams','/:id/users','addAgents','put','/:id','update','delete','destroy','removeTeams','removeAgents'];(function(_0x3177d2,_0x3d5beb){var _0x37fa5a=function(_0x12144c){while(--_0x12144c){_0x3177d2['push'](_0x3177d2['shift']());}};_0x37fa5a(++_0x3d5beb);}(_0xe5af,0x9c));var _0xfe5a=function(_0x3a800d,_0x4e713f){_0x3a800d=_0x3a800d-0x0;var _0x91745f=_0xe5af[_0x3a800d];return _0x91745f;};'use strict';var multer=require('multer');var util=require(_0xfe5a('0x0'));var path=require(_0xfe5a('0x1'));var timeout=require('connect-timeout');var express=require(_0xfe5a('0x2'));var router=express[_0xfe5a('0x3')]();var fs_extra=require(_0xfe5a('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0xfe5a('0x5'));var config=require('../../config/environment');var controller=require('./faxQueue.controller');router[_0xfe5a('0x6')]('/',auth[_0xfe5a('0x7')](),controller['index']);router['get'](_0xfe5a('0x8'),auth[_0xfe5a('0x7')](),controller[_0xfe5a('0x9')]);router[_0xfe5a('0x6')]('/:id',auth[_0xfe5a('0x7')](),controller['show']);router['get'](_0xfe5a('0xa'),auth[_0xfe5a('0x7')](),controller['getMembers']);router[_0xfe5a('0x6')](_0xfe5a('0xb'),auth[_0xfe5a('0x7')](),controller[_0xfe5a('0xc')]);router[_0xfe5a('0x6')]('/:id/users',auth[_0xfe5a('0x7')](),controller[_0xfe5a('0xd')]);router[_0xfe5a('0xe')]('/',auth[_0xfe5a('0x7')](),controller[_0xfe5a('0xf')]);router['post'](_0xfe5a('0xb'),auth[_0xfe5a('0x7')](),controller[_0xfe5a('0x10')]);router[_0xfe5a('0xe')](_0xfe5a('0x11'),auth[_0xfe5a('0x7')](),controller[_0xfe5a('0x12')]);router[_0xfe5a('0x13')](_0xfe5a('0x14'),auth[_0xfe5a('0x7')](),controller[_0xfe5a('0x15')]);router[_0xfe5a('0x16')](_0xfe5a('0x14'),auth[_0xfe5a('0x7')](),controller[_0xfe5a('0x17')]);router[_0xfe5a('0x16')]('/:id/teams',auth[_0xfe5a('0x7')](),controller[_0xfe5a('0x18')]);router['delete'](_0xfe5a('0x11'),auth[_0xfe5a('0x7')](),controller[_0xfe5a('0x19')]);module['exports']=router;
\ No newline at end of file
+var _0xfc46=['destroy','removeTeams','removeAgents','exports','multer','path','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/describe','show','/:id/members','getMembers','/:id/teams','getTeams','/:id/users','getAgents','post','create','addAgents','put','/:id','update','delete'];(function(_0x580576,_0x2f107d){var _0x3f55a0=function(_0x2e180b){while(--_0x2e180b){_0x580576['push'](_0x580576['shift']());}};_0x3f55a0(++_0x2f107d);}(_0xfc46,0x9a));var _0x6fc4=function(_0x1460f6,_0x59051a){_0x1460f6=_0x1460f6-0x0;var _0x46ce94=_0xfc46[_0x1460f6];return _0x46ce94;};'use strict';var multer=require(_0x6fc4('0x0'));var util=require('util');var path=require(_0x6fc4('0x1'));var timeout=require(_0x6fc4('0x2'));var express=require(_0x6fc4('0x3'));var router=express['Router']();var fs_extra=require(_0x6fc4('0x4'));var auth=require(_0x6fc4('0x5'));var interaction=require(_0x6fc4('0x6'));var config=require(_0x6fc4('0x7'));var controller=require('./faxQueue.controller');router[_0x6fc4('0x8')]('/',auth[_0x6fc4('0x9')](),controller[_0x6fc4('0xa')]);router[_0x6fc4('0x8')](_0x6fc4('0xb'),auth[_0x6fc4('0x9')](),controller['describe']);router[_0x6fc4('0x8')]('/:id',auth[_0x6fc4('0x9')](),controller[_0x6fc4('0xc')]);router['get'](_0x6fc4('0xd'),auth[_0x6fc4('0x9')](),controller[_0x6fc4('0xe')]);router[_0x6fc4('0x8')](_0x6fc4('0xf'),auth[_0x6fc4('0x9')](),controller[_0x6fc4('0x10')]);router[_0x6fc4('0x8')](_0x6fc4('0x11'),auth[_0x6fc4('0x9')](),controller[_0x6fc4('0x12')]);router[_0x6fc4('0x13')]('/',auth[_0x6fc4('0x9')](),controller[_0x6fc4('0x14')]);router[_0x6fc4('0x13')](_0x6fc4('0xf'),auth[_0x6fc4('0x9')](),controller['addTeams']);router['post'](_0x6fc4('0x11'),auth[_0x6fc4('0x9')](),controller[_0x6fc4('0x15')]);router[_0x6fc4('0x16')](_0x6fc4('0x17'),auth[_0x6fc4('0x9')](),controller[_0x6fc4('0x18')]);router[_0x6fc4('0x19')](_0x6fc4('0x17'),auth['isAuthenticated'](),controller[_0x6fc4('0x1a')]);router[_0x6fc4('0x19')]('/:id/teams',auth['isAuthenticated'](),controller[_0x6fc4('0x1b')]);router[_0x6fc4('0x19')]('/:id/users',auth[_0x6fc4('0x9')](),controller[_0x6fc4('0x1c')]);module[_0x6fc4('0x1d')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x296c=['exports','STRING','DATE','moment','sequelize'];(function(_0x3b8f2e,_0x5a99a8){var _0x1433d5=function(_0x5e0353){while(--_0x5e0353){_0x3b8f2e['push'](_0x3b8f2e['shift']());}};_0x1433d5(++_0x5a99a8);}(_0x296c,0x8f));var _0xc296=function(_0x42bc8d,_0x546176){_0x42bc8d=_0x42bc8d-0x0;var _0x311c31=_0x296c[_0x42bc8d];return _0x311c31;};'use strict';var moment=require(_0xc296('0x0'));var Sequelize=require(_0xc296('0x1'));module[_0xc296('0x2')]={'uniqueid':{'type':Sequelize['STRING'],'allowNull':![]},'from':{'type':Sequelize[_0xc296('0x3')]},'joinAt':{'type':Sequelize[_0xc296('0x4')]},'leaveAt':{'type':Sequelize[_0xc296('0x4')]},'acceptAt':{'type':Sequelize[_0xc296('0x4')]},'exitAt':{'type':Sequelize['DATE']},'reason':{'type':Sequelize[_0xc296('0x3')]}};
\ No newline at end of file
+var _0x78e7=['DATE','moment','sequelize','exports','STRING'];(function(_0xcfdbbb,_0x493fd6){var _0x4088c3=function(_0x283e2d){while(--_0x283e2d){_0xcfdbbb['push'](_0xcfdbbb['shift']());}};_0x4088c3(++_0x493fd6);}(_0x78e7,0xb0));var _0x778e=function(_0x3a24d8,_0x4bd4ae){_0x3a24d8=_0x3a24d8-0x0;var _0x5dc808=_0x78e7[_0x3a24d8];return _0x5dc808;};'use strict';var moment=require(_0x778e('0x0'));var Sequelize=require(_0x778e('0x1'));module[_0x778e('0x2')]={'uniqueid':{'type':Sequelize[_0x778e('0x3')],'allowNull':![]},'from':{'type':Sequelize[_0x778e('0x3')]},'joinAt':{'type':Sequelize[_0x778e('0x4')]},'leaveAt':{'type':Sequelize[_0x778e('0x4')]},'acceptAt':{'type':Sequelize[_0x778e('0x4')]},'exitAt':{'type':Sequelize[_0x778e('0x4')]},'reason':{'type':Sequelize[_0x778e('0x3')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3299=['fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','limit','Content-Range','apply','reject','save','update','then','error','name','map','FaxQueueReport','fieldName','key','model','filters','attributes','intersection','fields','query','length','hasOwnProperty','nolimit','order','where','pick','merge','type','VIRTUAL','filter','options','includeAll','include','findAll','rows','catch','show','params','keys','create','body','destroy','find','describe','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs'];(function(_0x1e4993,_0x332ca1){var _0x331388=function(_0x1795cc){while(--_0x1795cc){_0x1e4993['push'](_0x1e4993['shift']());}};_0x331388(++_0x332ca1);}(_0x3299,0x1bc));var _0x9329=function(_0x5315c6,_0x475c5e){_0x5315c6=_0x5315c6-0x0;var _0x10d933=_0x3299[_0x5315c6];return _0x10d933;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x9329('0x0'));var zipdir=require(_0x9329('0x1'));var jsonpatch=require(_0x9329('0x2'));var rp=require(_0x9329('0x3'));var moment=require(_0x9329('0x4'));var BPromise=require(_0x9329('0x5'));var Mustache=require(_0x9329('0x6'));var util=require(_0x9329('0x7'));var path=require(_0x9329('0x8'));var sox=require(_0x9329('0x9'));var csv=require(_0x9329('0xa'));var ejs=require(_0x9329('0xb'));var fs=require('fs');var fs_extra=require(_0x9329('0xc'));var _=require(_0x9329('0xd'));var squel=require(_0x9329('0xe'));var crypto=require(_0x9329('0xf'));var jsforce=require(_0x9329('0x10'));var deskjs=require('desk.js');var toCsv=require(_0x9329('0xa'));var querystring=require(_0x9329('0x11'));var Papa=require(_0x9329('0x12'));var Redis=require(_0x9329('0x13'));var authService=require(_0x9329('0x14'));var qs=require('../../components/parsers/qs');var as=require(_0x9329('0x15'));var hardwareService=require(_0x9329('0x16'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require(_0x9329('0x17'));var licenseUtil=require(_0x9329('0x18'));var db=require(_0x9329('0x19'))['db'];function respondWithStatusCode(_0x1302e8,_0x293b04){_0x293b04=_0x293b04||0xcc;return function(_0x523aff){if(_0x523aff){return _0x1302e8[_0x9329('0x1a')](_0x293b04);}return _0x1302e8[_0x9329('0x1b')](_0x293b04)[_0x9329('0x1c')]();};}function respondWithResult(_0x4cc89c,_0x1ee23e){_0x1ee23e=_0x1ee23e||0xc8;return function(_0x2a7c38){if(_0x2a7c38){return _0x4cc89c['status'](_0x1ee23e)[_0x9329('0x1d')](_0x2a7c38);}};}function respondWithFilteredResult(_0x1b2b98,_0x4adc7e){return function(_0x5e21ad){if(_0x5e21ad){var _0x73ec60=typeof _0x4adc7e[_0x9329('0x1e')]===_0x9329('0x1f')&&typeof _0x4adc7e['limit']===_0x9329('0x1f');var _0x522094=_0x5e21ad[_0x9329('0x20')];var _0x1b5eed=_0x73ec60?0x0:_0x4adc7e['offset'];var _0x41db73=_0x73ec60?_0x5e21ad[_0x9329('0x20')]:_0x4adc7e['offset']+_0x4adc7e[_0x9329('0x21')];var _0x4f5d6c;if(_0x41db73>=_0x522094){_0x41db73=_0x522094;_0x4f5d6c=0xc8;}else{_0x4f5d6c=0xce;}_0x1b2b98[_0x9329('0x1b')](_0x4f5d6c);return _0x1b2b98['set'](_0x9329('0x22'),_0x1b5eed+'-'+_0x41db73+'/'+_0x522094)['json'](_0x5e21ad);}return null;};}function patchUpdates(_0x6676d7){return function(_0x1af29b){try{jsonpatch[_0x9329('0x23')](_0x1af29b,_0x6676d7,!![]);}catch(_0x1dbebc){return BPromise[_0x9329('0x24')](_0x1dbebc);}return _0x1af29b[_0x9329('0x25')]();};}function saveUpdates(_0x4a7039,_0x1fa600){return function(_0x4f895c){if(_0x4f895c){return _0x4f895c[_0x9329('0x26')](_0x4a7039)[_0x9329('0x27')](function(_0x26f8a7){return _0x26f8a7;});}return null;};}function removeEntity(_0x59fb85,_0x22caa4){return function(_0x46019b){if(_0x46019b){return _0x46019b['destroy']()[_0x9329('0x27')](function(){_0x59fb85[_0x9329('0x1b')](0xcc)[_0x9329('0x1c')]();});}};}function handleEntityNotFound(_0x2da39d,_0x5584ae){return function(_0x49575f){if(!_0x49575f){_0x2da39d[_0x9329('0x1a')](0x194);}return _0x49575f;};}function handleError(_0x156626,_0x4419fc){_0x4419fc=_0x4419fc||0x1f4;return function(_0x4f5fbf){logger[_0x9329('0x28')](_0x4f5fbf['stack']);if(_0x4f5fbf[_0x9329('0x29')]){delete _0x4f5fbf[_0x9329('0x29')];}_0x156626[_0x9329('0x1b')](_0x4419fc)['send'](_0x4f5fbf);};}exports['index']=function(_0x36765a,_0x49d501){var _0x269964={},_0x4a5d27={},_0x1d2479={'count':0x0,'rows':[]};var _0x4a3c13=_[_0x9329('0x2a')](db[_0x9329('0x2b')]['rawAttributes'],function(_0x15c27b){return{'name':_0x15c27b[_0x9329('0x2c')],'type':_0x15c27b['type'][_0x9329('0x2d')]};});_0x4a5d27[_0x9329('0x2e')]=_[_0x9329('0x2a')](_0x4a3c13,_0x9329('0x29'));_0x4a5d27['query']=_['keys'](_0x36765a['query']);_0x4a5d27[_0x9329('0x2f')]=_['intersection'](_0x4a5d27[_0x9329('0x2e')],_0x4a5d27['query']);_0x269964[_0x9329('0x30')]=_[_0x9329('0x31')](_0x4a5d27['model'],qs[_0x9329('0x32')](_0x36765a[_0x9329('0x33')][_0x9329('0x32')]));_0x269964[_0x9329('0x30')]=_0x269964['attributes'][_0x9329('0x34')]?_0x269964[_0x9329('0x30')]:_0x4a5d27[_0x9329('0x2e')];if(!_0x36765a[_0x9329('0x33')][_0x9329('0x35')](_0x9329('0x36'))){_0x269964['limit']=qs[_0x9329('0x21')](_0x36765a[_0x9329('0x33')][_0x9329('0x21')]);_0x269964[_0x9329('0x1e')]=qs[_0x9329('0x1e')](_0x36765a[_0x9329('0x33')][_0x9329('0x1e')]);}_0x269964[_0x9329('0x37')]=qs['sort'](_0x36765a[_0x9329('0x33')]['sort']);_0x269964[_0x9329('0x38')]=qs[_0x9329('0x2f')](_[_0x9329('0x39')](_0x36765a[_0x9329('0x33')],_0x4a5d27[_0x9329('0x2f')]),_0x4a3c13);if(_0x36765a[_0x9329('0x33')]['filter']){_0x269964['where']=_[_0x9329('0x3a')](_0x269964[_0x9329('0x38')],{'$or':_[_0x9329('0x2a')](_0x4a3c13,function(_0xc748ff){if(_0xc748ff[_0x9329('0x3b')]!==_0x9329('0x3c')){var _0x3a9e91={};_0x3a9e91[_0xc748ff[_0x9329('0x29')]]={'$like':'%'+_0x36765a['query'][_0x9329('0x3d')]+'%'};return _0x3a9e91;}})});}_0x269964=_[_0x9329('0x3a')]({},_0x269964,_0x36765a[_0x9329('0x3e')]);var _0x302a27={'where':_0x269964['where']};return db[_0x9329('0x2b')]['count'](_0x302a27)[_0x9329('0x27')](function(_0x52bdeb){_0x1d2479[_0x9329('0x20')]=_0x52bdeb;if(_0x36765a['query'][_0x9329('0x3f')]){_0x269964[_0x9329('0x40')]=[{'all':!![]}];}return db[_0x9329('0x2b')][_0x9329('0x41')](_0x269964);})['then'](function(_0x1375d8){_0x1d2479[_0x9329('0x42')]=_0x1375d8;return _0x1d2479;})[_0x9329('0x27')](respondWithFilteredResult(_0x49d501,_0x269964))[_0x9329('0x43')](handleError(_0x49d501,null));};exports[_0x9329('0x44')]=function(_0x29d200,_0x44aa65){var _0x4df2fe={'raw':!![],'where':{'id':_0x29d200[_0x9329('0x45')]['id']}},_0x22543f={};_0x22543f[_0x9329('0x2e')]=_[_0x9329('0x46')](db[_0x9329('0x2b')]['rawAttributes']);_0x22543f[_0x9329('0x33')]=_[_0x9329('0x46')](_0x29d200[_0x9329('0x33')]);_0x22543f[_0x9329('0x2f')]=_[_0x9329('0x31')](_0x22543f[_0x9329('0x2e')],_0x22543f[_0x9329('0x33')]);_0x4df2fe[_0x9329('0x30')]=_['intersection'](_0x22543f['model'],qs[_0x9329('0x32')](_0x29d200['query'][_0x9329('0x32')]));_0x4df2fe[_0x9329('0x30')]=_0x4df2fe[_0x9329('0x30')][_0x9329('0x34')]?_0x4df2fe[_0x9329('0x30')]:_0x22543f[_0x9329('0x2e')];if(_0x29d200[_0x9329('0x33')][_0x9329('0x3f')]){_0x4df2fe[_0x9329('0x40')]=[{'all':!![]}];}_0x4df2fe=_[_0x9329('0x3a')]({},_0x4df2fe,_0x29d200[_0x9329('0x3e')]);return db[_0x9329('0x2b')]['find'](_0x4df2fe)['then'](handleEntityNotFound(_0x44aa65,null))[_0x9329('0x27')](respondWithResult(_0x44aa65,null))['catch'](handleError(_0x44aa65,null));};exports[_0x9329('0x47')]=function(_0x263464,_0x4eb931){return db[_0x9329('0x2b')][_0x9329('0x47')](_0x263464[_0x9329('0x48')],{})['then'](respondWithResult(_0x4eb931,0xc9))[_0x9329('0x43')](handleError(_0x4eb931,null));};exports[_0x9329('0x26')]=function(_0x21d9c6,_0x5a4adb){if(_0x21d9c6[_0x9329('0x48')]['id']){delete _0x21d9c6[_0x9329('0x48')]['id'];}return db[_0x9329('0x2b')]['find']({'where':{'id':_0x21d9c6[_0x9329('0x45')]['id']}})[_0x9329('0x27')](handleEntityNotFound(_0x5a4adb,null))[_0x9329('0x27')](saveUpdates(_0x21d9c6[_0x9329('0x48')],null))[_0x9329('0x27')](respondWithResult(_0x5a4adb,null))['catch'](handleError(_0x5a4adb,null));};exports[_0x9329('0x49')]=function(_0x421542,_0x6d464b){return db[_0x9329('0x2b')][_0x9329('0x4a')]({'where':{'id':_0x421542[_0x9329('0x45')]['id']}})[_0x9329('0x27')](handleEntityNotFound(_0x6d464b,null))[_0x9329('0x27')](removeEntity(_0x6d464b,null))[_0x9329('0x43')](handleError(_0x6d464b,null));};exports['describe']=function(_0x1a5c5f,_0x19e072){return db[_0x9329('0x2b')][_0x9329('0x4b')]()[_0x9329('0x27')](respondWithResult(_0x19e072,null))[_0x9329('0x43')](handleError(_0x19e072,null));};
\ No newline at end of file
+var _0x3df4=['destroy','sendStatus','error','stack','name','send','index','FaxQueueReport','rawAttributes','fieldName','type','model','map','query','keys','filters','intersection','attributes','fields','length','nolimit','order','sort','where','filter','merge','options','then','includeAll','include','findAll','rows','catch','show','find','create','body','params','describe','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','to-csv','ejs','fs-extra','lodash','jsforce','desk.js','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','status','end','json','offset','undefined','limit','count','set','reject','save','update'];(function(_0x590851,_0x496bee){var _0x3b0115=function(_0x5140cc){while(--_0x5140cc){_0x590851['push'](_0x590851['shift']());}};_0x3b0115(++_0x496bee);}(_0x3df4,0x102));var _0x43df=function(_0x39bbb5,_0x3f12f1){_0x39bbb5=_0x39bbb5-0x0;var _0x571127=_0x3df4[_0x39bbb5];return _0x571127;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x43df('0x0'));var jsonpatch=require(_0x43df('0x1'));var rp=require(_0x43df('0x2'));var moment=require(_0x43df('0x3'));var BPromise=require(_0x43df('0x4'));var Mustache=require(_0x43df('0x5'));var util=require(_0x43df('0x6'));var path=require('path');var sox=require('sox');var csv=require(_0x43df('0x7'));var ejs=require(_0x43df('0x8'));var fs=require('fs');var fs_extra=require(_0x43df('0x9'));var _=require(_0x43df('0xa'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x43df('0xb'));var deskjs=require(_0x43df('0xc'));var toCsv=require(_0x43df('0x7'));var querystring=require(_0x43df('0xd'));var Papa=require('papaparse');var Redis=require(_0x43df('0xe'));var authService=require('../../components/auth/service');var qs=require(_0x43df('0xf'));var as=require(_0x43df('0x10'));var hardwareService=require(_0x43df('0x11'));var logger=require(_0x43df('0x12'))(_0x43df('0x13'));var utils=require(_0x43df('0x14'));var config=require(_0x43df('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0x43df('0x16'))['db'];function respondWithStatusCode(_0x1140a9,_0x592a64){_0x592a64=_0x592a64||0xcc;return function(_0x14df5c){if(_0x14df5c){return _0x1140a9['sendStatus'](_0x592a64);}return _0x1140a9[_0x43df('0x17')](_0x592a64)[_0x43df('0x18')]();};}function respondWithResult(_0x4c4105,_0x3cbca1){_0x3cbca1=_0x3cbca1||0xc8;return function(_0x549159){if(_0x549159){return _0x4c4105['status'](_0x3cbca1)[_0x43df('0x19')](_0x549159);}};}function respondWithFilteredResult(_0x3748f2,_0x5c00d9){return function(_0x24f026){if(_0x24f026){var _0x592c70=typeof _0x5c00d9[_0x43df('0x1a')]===_0x43df('0x1b')&&typeof _0x5c00d9[_0x43df('0x1c')]===_0x43df('0x1b');var _0x2126fd=_0x24f026[_0x43df('0x1d')];var _0x571404=_0x592c70?0x0:_0x5c00d9[_0x43df('0x1a')];var _0x334fae=_0x592c70?_0x24f026[_0x43df('0x1d')]:_0x5c00d9[_0x43df('0x1a')]+_0x5c00d9['limit'];var _0x22314c;if(_0x334fae>=_0x2126fd){_0x334fae=_0x2126fd;_0x22314c=0xc8;}else{_0x22314c=0xce;}_0x3748f2[_0x43df('0x17')](_0x22314c);return _0x3748f2[_0x43df('0x1e')]('Content-Range',_0x571404+'-'+_0x334fae+'/'+_0x2126fd)['json'](_0x24f026);}return null;};}function patchUpdates(_0x4303c5){return function(_0x18e382){try{jsonpatch['apply'](_0x18e382,_0x4303c5,!![]);}catch(_0x3b51b2){return BPromise[_0x43df('0x1f')](_0x3b51b2);}return _0x18e382[_0x43df('0x20')]();};}function saveUpdates(_0x5c1cfc,_0x3b44d8){return function(_0x493e2c){if(_0x493e2c){return _0x493e2c[_0x43df('0x21')](_0x5c1cfc)['then'](function(_0xa975dc){return _0xa975dc;});}return null;};}function removeEntity(_0x37ecf9,_0xbb793b){return function(_0x4d05c9){if(_0x4d05c9){return _0x4d05c9[_0x43df('0x22')]()['then'](function(){_0x37ecf9[_0x43df('0x17')](0xcc)[_0x43df('0x18')]();});}};}function handleEntityNotFound(_0xda44f3,_0x143123){return function(_0x84521){if(!_0x84521){_0xda44f3[_0x43df('0x23')](0x194);}return _0x84521;};}function handleError(_0x1a09be,_0x33e1e2){_0x33e1e2=_0x33e1e2||0x1f4;return function(_0xb2578b){logger[_0x43df('0x24')](_0xb2578b[_0x43df('0x25')]);if(_0xb2578b['name']){delete _0xb2578b[_0x43df('0x26')];}_0x1a09be[_0x43df('0x17')](_0x33e1e2)[_0x43df('0x27')](_0xb2578b);};}exports[_0x43df('0x28')]=function(_0x250fda,_0x290dae){var _0x461ec2={},_0xcc74c7={},_0x1eed39={'count':0x0,'rows':[]};var _0x597cde=_['map'](db[_0x43df('0x29')][_0x43df('0x2a')],function(_0x257a57){return{'name':_0x257a57[_0x43df('0x2b')],'type':_0x257a57[_0x43df('0x2c')]['key']};});_0xcc74c7[_0x43df('0x2d')]=_[_0x43df('0x2e')](_0x597cde,_0x43df('0x26'));_0xcc74c7[_0x43df('0x2f')]=_[_0x43df('0x30')](_0x250fda[_0x43df('0x2f')]);_0xcc74c7[_0x43df('0x31')]=_[_0x43df('0x32')](_0xcc74c7[_0x43df('0x2d')],_0xcc74c7[_0x43df('0x2f')]);_0x461ec2[_0x43df('0x33')]=_[_0x43df('0x32')](_0xcc74c7[_0x43df('0x2d')],qs[_0x43df('0x34')](_0x250fda['query']['fields']));_0x461ec2[_0x43df('0x33')]=_0x461ec2['attributes'][_0x43df('0x35')]?_0x461ec2[_0x43df('0x33')]:_0xcc74c7[_0x43df('0x2d')];if(!_0x250fda[_0x43df('0x2f')]['hasOwnProperty'](_0x43df('0x36'))){_0x461ec2[_0x43df('0x1c')]=qs[_0x43df('0x1c')](_0x250fda['query'][_0x43df('0x1c')]);_0x461ec2[_0x43df('0x1a')]=qs[_0x43df('0x1a')](_0x250fda[_0x43df('0x2f')]['offset']);}_0x461ec2[_0x43df('0x37')]=qs[_0x43df('0x38')](_0x250fda[_0x43df('0x2f')][_0x43df('0x38')]);_0x461ec2[_0x43df('0x39')]=qs[_0x43df('0x31')](_['pick'](_0x250fda['query'],_0xcc74c7[_0x43df('0x31')]),_0x597cde);if(_0x250fda['query']['filter']){_0x461ec2['where']=_['merge'](_0x461ec2[_0x43df('0x39')],{'$or':_[_0x43df('0x2e')](_0x597cde,function(_0x2b6412){if(_0x2b6412[_0x43df('0x2c')]!=='VIRTUAL'){var _0x3d8aad={};_0x3d8aad[_0x2b6412[_0x43df('0x26')]]={'$like':'%'+_0x250fda['query'][_0x43df('0x3a')]+'%'};return _0x3d8aad;}})});}_0x461ec2=_[_0x43df('0x3b')]({},_0x461ec2,_0x250fda[_0x43df('0x3c')]);var _0x347dfa={'where':_0x461ec2[_0x43df('0x39')]};return db[_0x43df('0x29')]['count'](_0x347dfa)[_0x43df('0x3d')](function(_0x50fda5){_0x1eed39['count']=_0x50fda5;if(_0x250fda[_0x43df('0x2f')][_0x43df('0x3e')]){_0x461ec2[_0x43df('0x3f')]=[{'all':!![]}];}return db[_0x43df('0x29')][_0x43df('0x40')](_0x461ec2);})[_0x43df('0x3d')](function(_0x50a37d){_0x1eed39[_0x43df('0x41')]=_0x50a37d;return _0x1eed39;})[_0x43df('0x3d')](respondWithFilteredResult(_0x290dae,_0x461ec2))[_0x43df('0x42')](handleError(_0x290dae,null));};exports[_0x43df('0x43')]=function(_0x2ea908,_0x29e2df){var _0x4d5c10={'raw':!![],'where':{'id':_0x2ea908['params']['id']}},_0xe946a4={};_0xe946a4[_0x43df('0x2d')]=_[_0x43df('0x30')](db['FaxQueueReport'][_0x43df('0x2a')]);_0xe946a4[_0x43df('0x2f')]=_[_0x43df('0x30')](_0x2ea908[_0x43df('0x2f')]);_0xe946a4[_0x43df('0x31')]=_[_0x43df('0x32')](_0xe946a4[_0x43df('0x2d')],_0xe946a4[_0x43df('0x2f')]);_0x4d5c10[_0x43df('0x33')]=_[_0x43df('0x32')](_0xe946a4['model'],qs[_0x43df('0x34')](_0x2ea908['query']['fields']));_0x4d5c10[_0x43df('0x33')]=_0x4d5c10[_0x43df('0x33')][_0x43df('0x35')]?_0x4d5c10['attributes']:_0xe946a4[_0x43df('0x2d')];if(_0x2ea908[_0x43df('0x2f')][_0x43df('0x3e')]){_0x4d5c10[_0x43df('0x3f')]=[{'all':!![]}];}_0x4d5c10=_[_0x43df('0x3b')]({},_0x4d5c10,_0x2ea908[_0x43df('0x3c')]);return db[_0x43df('0x29')][_0x43df('0x44')](_0x4d5c10)[_0x43df('0x3d')](handleEntityNotFound(_0x29e2df,null))[_0x43df('0x3d')](respondWithResult(_0x29e2df,null))[_0x43df('0x42')](handleError(_0x29e2df,null));};exports['create']=function(_0x22c6bd,_0x4c0b20){return db[_0x43df('0x29')][_0x43df('0x45')](_0x22c6bd['body'],{})[_0x43df('0x3d')](respondWithResult(_0x4c0b20,0xc9))['catch'](handleError(_0x4c0b20,null));};exports[_0x43df('0x21')]=function(_0x5f323b,_0x258ae7){if(_0x5f323b[_0x43df('0x46')]['id']){delete _0x5f323b[_0x43df('0x46')]['id'];}return db[_0x43df('0x29')]['find']({'where':{'id':_0x5f323b[_0x43df('0x47')]['id']}})[_0x43df('0x3d')](handleEntityNotFound(_0x258ae7,null))[_0x43df('0x3d')](saveUpdates(_0x5f323b['body'],null))['then'](respondWithResult(_0x258ae7,null))[_0x43df('0x42')](handleError(_0x258ae7,null));};exports[_0x43df('0x22')]=function(_0x35b1c2,_0x4fdd9c){return db[_0x43df('0x29')][_0x43df('0x44')]({'where':{'id':_0x35b1c2[_0x43df('0x47')]['id']}})[_0x43df('0x3d')](handleEntityNotFound(_0x4fdd9c,null))[_0x43df('0x3d')](removeEntity(_0x4fdd9c,null))[_0x43df('0x42')](handleError(_0x4fdd9c,null));};exports[_0x43df('0x48')]=function(_0x38a63c,_0x3448fa){return db['FaxQueueReport'][_0x43df('0x48')]()[_0x43df('0x3d')](respondWithResult(_0x3448fa,null))[_0x43df('0x42')](handleError(_0x3448fa,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x53ec=['path','../../config/environment','./faxQueueReport.attributes','define','FaxQueueReport','uniqueid','lodash','util','../../config/logger','api','moment','bluebird'];(function(_0x155d81,_0x490970){var _0x354e20=function(_0x20a703){while(--_0x20a703){_0x155d81['push'](_0x155d81['shift']());}};_0x354e20(++_0x490970);}(_0x53ec,0x192));var _0xc53e=function(_0x96cefd,_0x25cb5d){_0x96cefd=_0x96cefd-0x0;var _0x4310c1=_0x53ec[_0x96cefd];return _0x4310c1;};'use strict';var _=require(_0xc53e('0x0'));var util=require(_0xc53e('0x1'));var logger=require(_0xc53e('0x2'))(_0xc53e('0x3'));var moment=require(_0xc53e('0x4'));var BPromise=require(_0xc53e('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xc53e('0x6'));var rimraf=require('rimraf');var config=require(_0xc53e('0x7'));var attributes=require(_0xc53e('0x8'));module['exports']=function(_0x2f1414,_0x4f989b){return _0x2f1414[_0xc53e('0x9')](_0xc53e('0xa'),attributes,{'tableName':'report_fax_queue','paranoid':![],'indexes':[{'name':_0xc53e('0xb'),'fields':[_0xc53e('0xb')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x5fab=['moment','bluebird','request-promise','path','rimraf','../../config/environment','./faxQueueReport.attributes','exports','FaxQueueReport','report_fax_queue','uniqueid','lodash','util','api'];(function(_0x4fd004,_0x203dae){var _0x580073=function(_0x3014a9){while(--_0x3014a9){_0x4fd004['push'](_0x4fd004['shift']());}};_0x580073(++_0x203dae);}(_0x5fab,0x177));var _0xb5fa=function(_0x185334,_0x4630ac){_0x185334=_0x185334-0x0;var _0xf2e59a=_0x5fab[_0x185334];return _0xf2e59a;};'use strict';var _=require(_0xb5fa('0x0'));var util=require(_0xb5fa('0x1'));var logger=require('../../config/logger')(_0xb5fa('0x2'));var moment=require(_0xb5fa('0x3'));var BPromise=require(_0xb5fa('0x4'));var rp=require(_0xb5fa('0x5'));var fs=require('fs');var path=require(_0xb5fa('0x6'));var rimraf=require(_0xb5fa('0x7'));var config=require(_0xb5fa('0x8'));var attributes=require(_0xb5fa('0x9'));module[_0xb5fa('0xa')]=function(_0x44df89,_0x4a0249){return _0x44df89['define'](_0xb5fa('0xb'),attributes,{'tableName':_0xb5fa('0xc'),'paranoid':![],'indexes':[{'name':_0xb5fa('0xd'),'fields':['uniqueid']}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x75c9=['message','result','catch','CreateFaxQueueReport','create','options','raw','UpdateFaxQueueReport','FaxQueueReport','update','where','attributes','util','moment','bluebird','randomstring','ioredis','../../config/utils','rpc','../../config/environment','jayson/promise','client','http','request','then','info','FaxQueueReport,\x20%s,\x20%s','request\x20sent','debug','FaxQueueReport,\x20%s,\x20%s,\x20%s','stringify','error'];(function(_0x1e474e,_0xa5ba6){var _0x4e2460=function(_0x151b36){while(--_0x151b36){_0x1e474e['push'](_0x1e474e['shift']());}};_0x4e2460(++_0xa5ba6);}(_0x75c9,0xec));var _0x975c=function(_0x2ec2bf,_0x64e983){_0x2ec2bf=_0x2ec2bf-0x0;var _0x2c279c=_0x75c9[_0x2ec2bf];return _0x2c279c;};'use strict';var _=require('lodash');var util=require(_0x975c('0x0'));var moment=require(_0x975c('0x1'));var BPromise=require(_0x975c('0x2'));var rs=require(_0x975c('0x3'));var fs=require('fs');var Redis=require(_0x975c('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x975c('0x5'));var logger=require('../../config/logger')(_0x975c('0x6'));var config=require(_0x975c('0x7'));var jayson=require(_0x975c('0x8'));var client=jayson[_0x975c('0x9')][_0x975c('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x198fbe,_0x21f878,_0x4b994c){return new BPromise(function(_0x22a167,_0x316624){return client[_0x975c('0xb')](_0x198fbe,_0x4b994c)[_0x975c('0xc')](function(_0x4e0d1e){logger[_0x975c('0xd')](_0x975c('0xe'),_0x21f878,_0x975c('0xf'));logger[_0x975c('0x10')](_0x975c('0x11'),_0x21f878,_0x975c('0xf'),JSON[_0x975c('0x12')](_0x4e0d1e));if(_0x4e0d1e[_0x975c('0x13')]){if(_0x4e0d1e[_0x975c('0x13')]['code']===0x1f4){logger[_0x975c('0x13')](_0x975c('0xe'),_0x21f878,_0x4e0d1e['error'][_0x975c('0x14')]);return _0x316624(_0x4e0d1e['error'][_0x975c('0x14')]);}logger[_0x975c('0x13')](_0x975c('0xe'),_0x21f878,_0x4e0d1e['error'][_0x975c('0x14')]);return _0x22a167(_0x4e0d1e[_0x975c('0x13')][_0x975c('0x14')]);}else{logger['info'](_0x975c('0xe'),_0x21f878,_0x975c('0xf'));_0x22a167(_0x4e0d1e[_0x975c('0x15')]['message']);}})[_0x975c('0x16')](function(_0x24e36f){logger['error']('FaxQueueReport,\x20%s,\x20%s',_0x21f878,_0x24e36f);_0x316624(_0x24e36f);});});}exports[_0x975c('0x17')]=function(_0x10e951){var _0x6041a4=this;return new Promise(function(_0x3edd36,_0x277417){return db['FaxQueueReport'][_0x975c('0x18')](_0x10e951['body'],{'raw':_0x10e951['options']?_0x10e951[_0x975c('0x19')][_0x975c('0x1a')]===undefined?!![]:![]:!![]})[_0x975c('0xc')](function(_0x2faa94){logger['info'](_0x975c('0x17'),_0x10e951);logger[_0x975c('0x10')]('CreateFaxQueueReport',_0x10e951,JSON[_0x975c('0x12')](_0x2faa94));_0x3edd36(_0x2faa94);})['catch'](function(_0x2ae646){logger['error'](_0x975c('0x17'),_0x2ae646[_0x975c('0x14')],_0x10e951);_0x277417(_0x6041a4[_0x975c('0x13')](0x1f4,_0x2ae646['message']));});});};exports[_0x975c('0x1b')]=function(_0x999c80){var _0x9cde7c=this;return new Promise(function(_0x441d9b,_0x3aeb0f){return db[_0x975c('0x1c')][_0x975c('0x1d')](_0x999c80['body'],{'raw':_0x999c80['options']?_0x999c80[_0x975c('0x19')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x999c80[_0x975c('0x19')]?_0x999c80[_0x975c('0x19')][_0x975c('0x1e')]||null:null,'attributes':_0x999c80[_0x975c('0x19')]?_0x999c80[_0x975c('0x19')][_0x975c('0x1f')]||null:null,'limit':_0x999c80[_0x975c('0x19')]?_0x999c80[_0x975c('0x19')]['limit']||null:null})[_0x975c('0xc')](function(_0x111a18){logger[_0x975c('0xd')](_0x975c('0x1b'),_0x999c80);logger['debug']('UpdateFaxQueueReport',_0x999c80,JSON['stringify'](_0x111a18));_0x441d9b(_0x111a18);})['catch'](function(_0x35c0e9){logger[_0x975c('0x13')](_0x975c('0x1b'),_0x35c0e9['message'],_0x999c80);_0x3aeb0f(_0x9cde7c[_0x975c('0x13')](0x1f4,_0x35c0e9[_0x975c('0x14')]));});});};
\ No newline at end of file
+var _0x3f5e=['../../config/environment','jayson/promise','client','request','then','info','FaxQueueReport,\x20%s,\x20%s','debug','FaxQueueReport,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','catch','CreateFaxQueueReport','create','body','options','raw','UpdateFaxQueueReport','FaxQueueReport','update','where','attributes','lodash','util','moment','randomstring','ioredis','../../config/logger','rpc'];(function(_0x2641f9,_0x26715f){var _0x585741=function(_0x2d1462){while(--_0x2d1462){_0x2641f9['push'](_0x2641f9['shift']());}};_0x585741(++_0x26715f);}(_0x3f5e,0xf9));var _0xe3f5=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x3f5e[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0xe3f5('0x0'));var util=require(_0xe3f5('0x1'));var moment=require(_0xe3f5('0x2'));var BPromise=require('bluebird');var rs=require(_0xe3f5('0x3'));var fs=require('fs');var Redis=require(_0xe3f5('0x4'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0xe3f5('0x5'))(_0xe3f5('0x6'));var config=require(_0xe3f5('0x7'));var jayson=require(_0xe3f5('0x8'));var client=jayson[_0xe3f5('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x504381,_0xb4417,_0x1e672e){return new BPromise(function(_0x5d75f3,_0x228953){return client[_0xe3f5('0xa')](_0x504381,_0x1e672e)[_0xe3f5('0xb')](function(_0x436372){logger[_0xe3f5('0xc')](_0xe3f5('0xd'),_0xb4417,'request\x20sent');logger[_0xe3f5('0xe')](_0xe3f5('0xf'),_0xb4417,_0xe3f5('0x10'),JSON[_0xe3f5('0x11')](_0x436372));if(_0x436372[_0xe3f5('0x12')]){if(_0x436372[_0xe3f5('0x12')][_0xe3f5('0x13')]===0x1f4){logger['error']('FaxQueueReport,\x20%s,\x20%s',_0xb4417,_0x436372['error'][_0xe3f5('0x14')]);return _0x228953(_0x436372[_0xe3f5('0x12')][_0xe3f5('0x14')]);}logger[_0xe3f5('0x12')](_0xe3f5('0xd'),_0xb4417,_0x436372['error']['message']);return _0x5d75f3(_0x436372[_0xe3f5('0x12')][_0xe3f5('0x14')]);}else{logger[_0xe3f5('0xc')](_0xe3f5('0xd'),_0xb4417,_0xe3f5('0x10'));_0x5d75f3(_0x436372['result'][_0xe3f5('0x14')]);}})[_0xe3f5('0x15')](function(_0x2bb69c){logger[_0xe3f5('0x12')](_0xe3f5('0xd'),_0xb4417,_0x2bb69c);_0x228953(_0x2bb69c);});});}exports[_0xe3f5('0x16')]=function(_0x200169){var _0x13ffd6=this;return new Promise(function(_0x3cabcd,_0x3dbc33){return db['FaxQueueReport'][_0xe3f5('0x17')](_0x200169[_0xe3f5('0x18')],{'raw':_0x200169['options']?_0x200169[_0xe3f5('0x19')][_0xe3f5('0x1a')]===undefined?!![]:![]:!![]})[_0xe3f5('0xb')](function(_0x11a99e){logger[_0xe3f5('0xc')]('CreateFaxQueueReport',_0x200169);logger[_0xe3f5('0xe')]('CreateFaxQueueReport',_0x200169,JSON[_0xe3f5('0x11')](_0x11a99e));_0x3cabcd(_0x11a99e);})[_0xe3f5('0x15')](function(_0x1bd5b1){logger[_0xe3f5('0x12')](_0xe3f5('0x16'),_0x1bd5b1[_0xe3f5('0x14')],_0x200169);_0x3dbc33(_0x13ffd6['error'](0x1f4,_0x1bd5b1[_0xe3f5('0x14')]));});});};exports[_0xe3f5('0x1b')]=function(_0x2d0263){var _0x4f3c44=this;return new Promise(function(_0x1b3bd0,_0x223cfe){return db[_0xe3f5('0x1c')][_0xe3f5('0x1d')](_0x2d0263[_0xe3f5('0x18')],{'raw':_0x2d0263['options']?_0x2d0263[_0xe3f5('0x19')][_0xe3f5('0x1a')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x2d0263[_0xe3f5('0x19')]?_0x2d0263[_0xe3f5('0x19')][_0xe3f5('0x1e')]||null:null,'attributes':_0x2d0263['options']?_0x2d0263[_0xe3f5('0x19')][_0xe3f5('0x1f')]||null:null,'limit':_0x2d0263[_0xe3f5('0x19')]?_0x2d0263['options']['limit']||null:null})[_0xe3f5('0xb')](function(_0x1b872f){logger[_0xe3f5('0xc')](_0xe3f5('0x1b'),_0x2d0263);logger[_0xe3f5('0xe')](_0xe3f5('0x1b'),_0x2d0263,JSON[_0xe3f5('0x11')](_0x1b872f));_0x1b3bd0(_0x1b872f);})[_0xe3f5('0x15')](function(_0x45767f){logger['error'](_0xe3f5('0x1b'),_0x45767f['message'],_0x2d0263);_0x223cfe(_0x4f3c44[_0xe3f5('0x12')](0x1f4,_0x45767f[_0xe3f5('0x14')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe846=['index','get','/describe','/:id','show','post','create','delete','destroy','multer','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','isAuthenticated'];(function(_0x2f5ac5,_0x1ee939){var _0x37c9a8=function(_0x15031f){while(--_0x15031f){_0x2f5ac5['push'](_0x2f5ac5['shift']());}};_0x37c9a8(++_0x1ee939);}(_0xe846,0xd5));var _0x6e84=function(_0x47c9ba,_0x10ab4f){_0x47c9ba=_0x47c9ba-0x0;var _0x4c95c2=_0xe846[_0x47c9ba];return _0x4c95c2;};'use strict';var multer=require(_0x6e84('0x0'));var util=require('util');var path=require('path');var timeout=require(_0x6e84('0x1'));var express=require(_0x6e84('0x2'));var router=express['Router']();var fs_extra=require(_0x6e84('0x3'));var auth=require(_0x6e84('0x4'));var interaction=require(_0x6e84('0x5'));var config=require(_0x6e84('0x6'));var controller=require('./faxQueueReport.controller');router['get']('/',auth[_0x6e84('0x7')](),controller[_0x6e84('0x8')]);router[_0x6e84('0x9')](_0x6e84('0xa'),auth[_0x6e84('0x7')](),controller['describe']);router['get'](_0x6e84('0xb'),auth[_0x6e84('0x7')](),controller[_0x6e84('0xc')]);router[_0x6e84('0xd')]('/',auth[_0x6e84('0x7')](),controller[_0x6e84('0xe')]);router['put'](_0x6e84('0xb'),auth['isAuthenticated'](),controller['update']);router[_0x6e84('0xf')](_0x6e84('0xb'),auth[_0x6e84('0x7')](),controller[_0x6e84('0x10')]);module['exports']=router;
\ No newline at end of file
+var _0x2578=['isAuthenticated','show','create','put','update','destroy','exports','multer','util','path','connect-timeout','Router','../../components/interaction/service','../../config/environment','get','index','/describe','/:id'];(function(_0x326256,_0x5671bb){var _0x5c9209=function(_0x189f64){while(--_0x189f64){_0x326256['push'](_0x326256['shift']());}};_0x5c9209(++_0x5671bb);}(_0x2578,0x73));var _0x8257=function(_0x5c9de5,_0x4b958e){_0x5c9de5=_0x5c9de5-0x0;var _0x1edd6c=_0x2578[_0x5c9de5];return _0x1edd6c;};'use strict';var multer=require(_0x8257('0x0'));var util=require(_0x8257('0x1'));var path=require(_0x8257('0x2'));var timeout=require(_0x8257('0x3'));var express=require('express');var router=express[_0x8257('0x4')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0x8257('0x5'));var config=require(_0x8257('0x6'));var controller=require('./faxQueueReport.controller');router[_0x8257('0x7')]('/',auth['isAuthenticated'](),controller[_0x8257('0x8')]);router['get'](_0x8257('0x9'),auth['isAuthenticated'](),controller['describe']);router[_0x8257('0x7')](_0x8257('0xa'),auth[_0x8257('0xb')](),controller[_0x8257('0xc')]);router['post']('/',auth[_0x8257('0xb')](),controller[_0x8257('0xd')]);router[_0x8257('0xe')](_0x8257('0xa'),auth[_0x8257('0xb')](),controller[_0x8257('0xf')]);router['delete'](_0x8257('0xa'),auth[_0x8257('0xb')](),controller[_0x8257('0x10')]);module[_0x8257('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf3cd=['exports','STRING','ENUM','account','queue','DATE','moment','sequelize'];(function(_0x175f0d,_0x39f0eb){var _0x35bcc8=function(_0x2179ea){while(--_0x2179ea){_0x175f0d['push'](_0x175f0d['shift']());}};_0x35bcc8(++_0x39f0eb);}(_0xf3cd,0xfe));var _0xdf3c=function(_0x5cfb92,_0x5797e6){_0x5cfb92=_0x5cfb92-0x0;var _0x1cd7c2=_0xf3cd[_0x5cfb92];return _0x1cd7c2;};'use strict';var moment=require(_0xdf3c('0x0'));var Sequelize=require(_0xdf3c('0x1'));module[_0xdf3c('0x2')]={'uniqueid':{'type':Sequelize[_0xdf3c('0x3')],'allowNull':![]},'type':{'type':Sequelize[_0xdf3c('0x4')](_0xdf3c('0x5'),'agent',_0xdf3c('0x6')),'allowNull':![],'defaultValue':_0xdf3c('0x6')},'transferredAt':{'type':Sequelize[_0xdf3c('0x7')],'allowNull':![],'defaultValue':Sequelize['NOW']}};
\ No newline at end of file
+var _0x9bde=['NOW','sequelize','STRING','account','agent','queue','DATE'];(function(_0x4d7379,_0x4b4e63){var _0x46d7cf=function(_0x53f5f0){while(--_0x53f5f0){_0x4d7379['push'](_0x4d7379['shift']());}};_0x46d7cf(++_0x4b4e63);}(_0x9bde,0xe1));var _0xe9bd=function(_0x8f1087,_0x2bf8a3){_0x8f1087=_0x8f1087-0x0;var _0x32abb7=_0x9bde[_0x8f1087];return _0x32abb7;};'use strict';var moment=require('moment');var Sequelize=require(_0xe9bd('0x0'));module['exports']={'uniqueid':{'type':Sequelize[_0xe9bd('0x1')],'allowNull':![]},'type':{'type':Sequelize['ENUM'](_0xe9bd('0x2'),_0xe9bd('0x3'),_0xe9bd('0x4')),'allowNull':![],'defaultValue':_0xe9bd('0x4')},'transferredAt':{'type':Sequelize[_0xe9bd('0x5')],'allowNull':![],'defaultValue':Sequelize[_0xe9bd('0x6')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6736=['end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','error','stack','name','index','FaxTransferReport','rawAttributes','fieldName','type','key','model','map','query','filters','intersection','attributes','fields','order','sort','filter','where','VIRTUAL','options','include','rows','catch','show','params','keys','length','merge','create','body','find','destroy','describe','eml-format','zip-dir','fast-json-patch','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status'];(function(_0x40268e,_0x1233bc){var _0x270f28=function(_0x141612){while(--_0x141612){_0x40268e['push'](_0x40268e['shift']());}};_0x270f28(++_0x1233bc);}(_0x6736,0x1e6));var _0x6673=function(_0x2cdcfc,_0x1d67ff){_0x2cdcfc=_0x2cdcfc-0x0;var _0x2579fa=_0x6736[_0x2cdcfc];return _0x2579fa;};'use strict';var emlformat=require(_0x6673('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x6673('0x1'));var jsonpatch=require(_0x6673('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x6673('0x3'));var Mustache=require('mustache');var util=require(_0x6673('0x4'));var path=require(_0x6673('0x5'));var sox=require(_0x6673('0x6'));var csv=require(_0x6673('0x7'));var ejs=require(_0x6673('0x8'));var fs=require('fs');var fs_extra=require(_0x6673('0x9'));var _=require(_0x6673('0xa'));var squel=require('squel');var crypto=require(_0x6673('0xb'));var jsforce=require(_0x6673('0xc'));var deskjs=require(_0x6673('0xd'));var toCsv=require(_0x6673('0x7'));var querystring=require(_0x6673('0xe'));var Papa=require('papaparse');var Redis=require(_0x6673('0xf'));var authService=require('../../components/auth/service');var qs=require(_0x6673('0x10'));var as=require(_0x6673('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x6673('0x12'))(_0x6673('0x13'));var utils=require('../../config/utils');var config=require(_0x6673('0x14'));var licenseUtil=require(_0x6673('0x15'));var db=require(_0x6673('0x16'))['db'];function respondWithStatusCode(_0x16d32e,_0x1a9d35){_0x1a9d35=_0x1a9d35||0xcc;return function(_0x34edf0){if(_0x34edf0){return _0x16d32e[_0x6673('0x17')](_0x1a9d35);}return _0x16d32e[_0x6673('0x18')](_0x1a9d35)[_0x6673('0x19')]();};}function respondWithResult(_0x28537e,_0x3416d7){_0x3416d7=_0x3416d7||0xc8;return function(_0x10d253){if(_0x10d253){return _0x28537e[_0x6673('0x18')](_0x3416d7)[_0x6673('0x1a')](_0x10d253);}};}function respondWithFilteredResult(_0x9ce6e7,_0x179ab9){return function(_0x261e98){if(_0x261e98){var _0x1305f2=typeof _0x179ab9[_0x6673('0x1b')]===_0x6673('0x1c')&&typeof _0x179ab9[_0x6673('0x1d')]===_0x6673('0x1c');var _0x49ba7e=_0x261e98['count'];var _0x275864=_0x1305f2?0x0:_0x179ab9[_0x6673('0x1b')];var _0x28df4f=_0x1305f2?_0x261e98[_0x6673('0x1e')]:_0x179ab9[_0x6673('0x1b')]+_0x179ab9[_0x6673('0x1d')];var _0x36e852;if(_0x28df4f>=_0x49ba7e){_0x28df4f=_0x49ba7e;_0x36e852=0xc8;}else{_0x36e852=0xce;}_0x9ce6e7[_0x6673('0x18')](_0x36e852);return _0x9ce6e7[_0x6673('0x1f')](_0x6673('0x20'),_0x275864+'-'+_0x28df4f+'/'+_0x49ba7e)[_0x6673('0x1a')](_0x261e98);}return null;};}function patchUpdates(_0x60182a){return function(_0x3a58be){try{jsonpatch[_0x6673('0x21')](_0x3a58be,_0x60182a,!![]);}catch(_0x114a28){return BPromise[_0x6673('0x22')](_0x114a28);}return _0x3a58be[_0x6673('0x23')]();};}function saveUpdates(_0x186678,_0x2103b9){return function(_0x316ad6){if(_0x316ad6){return _0x316ad6[_0x6673('0x24')](_0x186678)['then'](function(_0x52c8b3){return _0x52c8b3;});}return null;};}function removeEntity(_0x1aada9,_0x599c34){return function(_0x3f02d3){if(_0x3f02d3){return _0x3f02d3['destroy']()[_0x6673('0x25')](function(){_0x1aada9['status'](0xcc)[_0x6673('0x19')]();});}};}function handleEntityNotFound(_0x241c35,_0x46cfc6){return function(_0x4007af){if(!_0x4007af){_0x241c35['sendStatus'](0x194);}return _0x4007af;};}function handleError(_0x33555c,_0x2ba4a7){_0x2ba4a7=_0x2ba4a7||0x1f4;return function(_0x1f824c){logger[_0x6673('0x26')](_0x1f824c[_0x6673('0x27')]);if(_0x1f824c[_0x6673('0x28')]){delete _0x1f824c[_0x6673('0x28')];}_0x33555c[_0x6673('0x18')](_0x2ba4a7)['send'](_0x1f824c);};}exports[_0x6673('0x29')]=function(_0x3f6493,_0x1cb4ee){var _0x749a2c={},_0x122fe2={},_0x2af831={'count':0x0,'rows':[]};var _0x19c1a1=_['map'](db[_0x6673('0x2a')][_0x6673('0x2b')],function(_0x215ccc){return{'name':_0x215ccc[_0x6673('0x2c')],'type':_0x215ccc[_0x6673('0x2d')][_0x6673('0x2e')]};});_0x122fe2[_0x6673('0x2f')]=_[_0x6673('0x30')](_0x19c1a1,_0x6673('0x28'));_0x122fe2[_0x6673('0x31')]=_['keys'](_0x3f6493[_0x6673('0x31')]);_0x122fe2[_0x6673('0x32')]=_[_0x6673('0x33')](_0x122fe2[_0x6673('0x2f')],_0x122fe2[_0x6673('0x31')]);_0x749a2c[_0x6673('0x34')]=_[_0x6673('0x33')](_0x122fe2[_0x6673('0x2f')],qs['fields'](_0x3f6493[_0x6673('0x31')][_0x6673('0x35')]));_0x749a2c[_0x6673('0x34')]=_0x749a2c[_0x6673('0x34')]['length']?_0x749a2c[_0x6673('0x34')]:_0x122fe2[_0x6673('0x2f')];if(!_0x3f6493['query']['hasOwnProperty']('nolimit')){_0x749a2c[_0x6673('0x1d')]=qs[_0x6673('0x1d')](_0x3f6493[_0x6673('0x31')]['limit']);_0x749a2c[_0x6673('0x1b')]=qs[_0x6673('0x1b')](_0x3f6493[_0x6673('0x31')][_0x6673('0x1b')]);}_0x749a2c[_0x6673('0x36')]=qs[_0x6673('0x37')](_0x3f6493[_0x6673('0x31')][_0x6673('0x37')]);_0x749a2c['where']=qs[_0x6673('0x32')](_['pick'](_0x3f6493[_0x6673('0x31')],_0x122fe2['filters']),_0x19c1a1);if(_0x3f6493[_0x6673('0x31')][_0x6673('0x38')]){_0x749a2c[_0x6673('0x39')]=_['merge'](_0x749a2c[_0x6673('0x39')],{'$or':_['map'](_0x19c1a1,function(_0x18c7f2){if(_0x18c7f2[_0x6673('0x2d')]!==_0x6673('0x3a')){var _0xc8c0dd={};_0xc8c0dd[_0x18c7f2[_0x6673('0x28')]]={'$like':'%'+_0x3f6493['query']['filter']+'%'};return _0xc8c0dd;}})});}_0x749a2c=_['merge']({},_0x749a2c,_0x3f6493[_0x6673('0x3b')]);var _0x3e6ece={'where':_0x749a2c[_0x6673('0x39')]};return db[_0x6673('0x2a')]['count'](_0x3e6ece)[_0x6673('0x25')](function(_0x2114a5){_0x2af831['count']=_0x2114a5;if(_0x3f6493['query']['includeAll']){_0x749a2c[_0x6673('0x3c')]=[{'all':!![]}];}return db[_0x6673('0x2a')]['findAll'](_0x749a2c);})['then'](function(_0x1bbc53){_0x2af831[_0x6673('0x3d')]=_0x1bbc53;return _0x2af831;})[_0x6673('0x25')](respondWithFilteredResult(_0x1cb4ee,_0x749a2c))[_0x6673('0x3e')](handleError(_0x1cb4ee,null));};exports[_0x6673('0x3f')]=function(_0x5441d4,_0x19fbcd){var _0x87733f={'raw':!![],'where':{'id':_0x5441d4[_0x6673('0x40')]['id']}},_0x522b35={};_0x522b35[_0x6673('0x2f')]=_['keys'](db[_0x6673('0x2a')]['rawAttributes']);_0x522b35[_0x6673('0x31')]=_[_0x6673('0x41')](_0x5441d4['query']);_0x522b35[_0x6673('0x32')]=_['intersection'](_0x522b35[_0x6673('0x2f')],_0x522b35[_0x6673('0x31')]);_0x87733f['attributes']=_['intersection'](_0x522b35[_0x6673('0x2f')],qs[_0x6673('0x35')](_0x5441d4[_0x6673('0x31')][_0x6673('0x35')]));_0x87733f[_0x6673('0x34')]=_0x87733f[_0x6673('0x34')][_0x6673('0x42')]?_0x87733f[_0x6673('0x34')]:_0x522b35[_0x6673('0x2f')];if(_0x5441d4['query']['includeAll']){_0x87733f[_0x6673('0x3c')]=[{'all':!![]}];}_0x87733f=_[_0x6673('0x43')]({},_0x87733f,_0x5441d4['options']);return db[_0x6673('0x2a')]['find'](_0x87733f)[_0x6673('0x25')](handleEntityNotFound(_0x19fbcd,null))[_0x6673('0x25')](respondWithResult(_0x19fbcd,null))[_0x6673('0x3e')](handleError(_0x19fbcd,null));};exports[_0x6673('0x44')]=function(_0x1b94dd,_0x1460cc){return db['FaxTransferReport']['create'](_0x1b94dd['body'],{})['then'](respondWithResult(_0x1460cc,0xc9))['catch'](handleError(_0x1460cc,null));};exports[_0x6673('0x24')]=function(_0x4cc4bc,_0x4c6844){if(_0x4cc4bc[_0x6673('0x45')]['id']){delete _0x4cc4bc[_0x6673('0x45')]['id'];}return db[_0x6673('0x2a')][_0x6673('0x46')]({'where':{'id':_0x4cc4bc[_0x6673('0x40')]['id']}})[_0x6673('0x25')](handleEntityNotFound(_0x4c6844,null))[_0x6673('0x25')](saveUpdates(_0x4cc4bc['body'],null))[_0x6673('0x25')](respondWithResult(_0x4c6844,null))[_0x6673('0x3e')](handleError(_0x4c6844,null));};exports[_0x6673('0x47')]=function(_0x52ff4b,_0x40ce88){return db[_0x6673('0x2a')][_0x6673('0x46')]({'where':{'id':_0x52ff4b['params']['id']}})[_0x6673('0x25')](handleEntityNotFound(_0x40ce88,null))[_0x6673('0x25')](removeEntity(_0x40ce88,null))[_0x6673('0x3e')](handleError(_0x40ce88,null));};exports[_0x6673('0x48')]=function(_0x118fb5,_0x344382){return db['FaxTransferReport'][_0x6673('0x48')]()[_0x6673('0x25')](respondWithResult(_0x344382,null))['catch'](handleError(_0x344382,null));};
\ No newline at end of file
+var _0x242b=['params','find','create','body','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','to-csv','ejs','squel','crypto','jsforce','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','reject','update','then','end','error','stack','name','send','index','map','FaxTransferReport','type','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','merge','VIRTUAL','filter','options','includeAll','include','findAll','catch','show'];(function(_0x261522,_0x1adc1f){var _0x98a25a=function(_0x1b0f9c){while(--_0x1b0f9c){_0x261522['push'](_0x261522['shift']());}};_0x98a25a(++_0x1adc1f);}(_0x242b,0x1bb));var _0xb242=function(_0x48b31b,_0x2ae165){_0x48b31b=_0x48b31b-0x0;var _0x565432=_0x242b[_0x48b31b];return _0x565432;};'use strict';var emlformat=require(_0xb242('0x0'));var rimraf=require(_0xb242('0x1'));var zipdir=require(_0xb242('0x2'));var jsonpatch=require(_0xb242('0x3'));var rp=require(_0xb242('0x4'));var moment=require(_0xb242('0x5'));var BPromise=require('bluebird');var Mustache=require(_0xb242('0x6'));var util=require(_0xb242('0x7'));var path=require(_0xb242('0x8'));var sox=require('sox');var csv=require(_0xb242('0x9'));var ejs=require(_0xb242('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0xb242('0xb'));var crypto=require(_0xb242('0xc'));var jsforce=require(_0xb242('0xd'));var deskjs=require('desk.js');var toCsv=require(_0xb242('0x9'));var querystring=require(_0xb242('0xe'));var Papa=require(_0xb242('0xf'));var Redis=require('ioredis');var authService=require(_0xb242('0x10'));var qs=require(_0xb242('0x11'));var as=require(_0xb242('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xb242('0x13'));var utils=require(_0xb242('0x14'));var config=require(_0xb242('0x15'));var licenseUtil=require(_0xb242('0x16'));var db=require(_0xb242('0x17'))['db'];function respondWithStatusCode(_0x5c852a,_0xe9e701){_0xe9e701=_0xe9e701||0xcc;return function(_0x3d641a){if(_0x3d641a){return _0x5c852a[_0xb242('0x18')](_0xe9e701);}return _0x5c852a[_0xb242('0x19')](_0xe9e701)['end']();};}function respondWithResult(_0x3af713,_0x538a59){_0x538a59=_0x538a59||0xc8;return function(_0x10f32f){if(_0x10f32f){return _0x3af713[_0xb242('0x19')](_0x538a59)[_0xb242('0x1a')](_0x10f32f);}};}function respondWithFilteredResult(_0x240128,_0x36d209){return function(_0x19722){if(_0x19722){var _0x34aa45=typeof _0x36d209[_0xb242('0x1b')]===_0xb242('0x1c')&&typeof _0x36d209[_0xb242('0x1d')]===_0xb242('0x1c');var _0x352b8d=_0x19722[_0xb242('0x1e')];var _0x140e2e=_0x34aa45?0x0:_0x36d209[_0xb242('0x1b')];var _0x18152c=_0x34aa45?_0x19722[_0xb242('0x1e')]:_0x36d209[_0xb242('0x1b')]+_0x36d209[_0xb242('0x1d')];var _0x713f9b;if(_0x18152c>=_0x352b8d){_0x18152c=_0x352b8d;_0x713f9b=0xc8;}else{_0x713f9b=0xce;}_0x240128[_0xb242('0x19')](_0x713f9b);return _0x240128[_0xb242('0x1f')](_0xb242('0x20'),_0x140e2e+'-'+_0x18152c+'/'+_0x352b8d)[_0xb242('0x1a')](_0x19722);}return null;};}function patchUpdates(_0x44129f){return function(_0x164745){try{jsonpatch['apply'](_0x164745,_0x44129f,!![]);}catch(_0x1a5284){return BPromise[_0xb242('0x21')](_0x1a5284);}return _0x164745['save']();};}function saveUpdates(_0x1afdff,_0x43010a){return function(_0x462cdf){if(_0x462cdf){return _0x462cdf[_0xb242('0x22')](_0x1afdff)[_0xb242('0x23')](function(_0x3223f1){return _0x3223f1;});}return null;};}function removeEntity(_0x457254,_0x2958b5){return function(_0x4b7b8e){if(_0x4b7b8e){return _0x4b7b8e['destroy']()[_0xb242('0x23')](function(){_0x457254[_0xb242('0x19')](0xcc)[_0xb242('0x24')]();});}};}function handleEntityNotFound(_0x3818b0,_0x3756ee){return function(_0x1c4c65){if(!_0x1c4c65){_0x3818b0[_0xb242('0x18')](0x194);}return _0x1c4c65;};}function handleError(_0x504fad,_0x4d0457){_0x4d0457=_0x4d0457||0x1f4;return function(_0x5a4bf8){logger[_0xb242('0x25')](_0x5a4bf8[_0xb242('0x26')]);if(_0x5a4bf8[_0xb242('0x27')]){delete _0x5a4bf8[_0xb242('0x27')];}_0x504fad[_0xb242('0x19')](_0x4d0457)[_0xb242('0x28')](_0x5a4bf8);};}exports[_0xb242('0x29')]=function(_0x1ab36a,_0x2a6f3d){var _0x4332d9={},_0x370c15={},_0x50dcf={'count':0x0,'rows':[]};var _0x56023e=_[_0xb242('0x2a')](db[_0xb242('0x2b')]['rawAttributes'],function(_0x550e1a){return{'name':_0x550e1a['fieldName'],'type':_0x550e1a[_0xb242('0x2c')][_0xb242('0x2d')]};});_0x370c15[_0xb242('0x2e')]=_[_0xb242('0x2a')](_0x56023e,_0xb242('0x27'));_0x370c15['query']=_[_0xb242('0x2f')](_0x1ab36a[_0xb242('0x30')]);_0x370c15[_0xb242('0x31')]=_[_0xb242('0x32')](_0x370c15[_0xb242('0x2e')],_0x370c15[_0xb242('0x30')]);_0x4332d9[_0xb242('0x33')]=_[_0xb242('0x32')](_0x370c15[_0xb242('0x2e')],qs[_0xb242('0x34')](_0x1ab36a[_0xb242('0x30')]['fields']));_0x4332d9['attributes']=_0x4332d9[_0xb242('0x33')][_0xb242('0x35')]?_0x4332d9[_0xb242('0x33')]:_0x370c15['model'];if(!_0x1ab36a['query'][_0xb242('0x36')](_0xb242('0x37'))){_0x4332d9[_0xb242('0x1d')]=qs['limit'](_0x1ab36a[_0xb242('0x30')][_0xb242('0x1d')]);_0x4332d9[_0xb242('0x1b')]=qs[_0xb242('0x1b')](_0x1ab36a[_0xb242('0x30')][_0xb242('0x1b')]);}_0x4332d9[_0xb242('0x38')]=qs[_0xb242('0x39')](_0x1ab36a[_0xb242('0x30')][_0xb242('0x39')]);_0x4332d9[_0xb242('0x3a')]=qs[_0xb242('0x31')](_['pick'](_0x1ab36a[_0xb242('0x30')],_0x370c15[_0xb242('0x31')]),_0x56023e);if(_0x1ab36a[_0xb242('0x30')]['filter']){_0x4332d9[_0xb242('0x3a')]=_[_0xb242('0x3b')](_0x4332d9[_0xb242('0x3a')],{'$or':_[_0xb242('0x2a')](_0x56023e,function(_0x578719){if(_0x578719[_0xb242('0x2c')]!==_0xb242('0x3c')){var _0x12697f={};_0x12697f[_0x578719['name']]={'$like':'%'+_0x1ab36a[_0xb242('0x30')][_0xb242('0x3d')]+'%'};return _0x12697f;}})});}_0x4332d9=_['merge']({},_0x4332d9,_0x1ab36a[_0xb242('0x3e')]);var _0x1d713d={'where':_0x4332d9['where']};return db['FaxTransferReport']['count'](_0x1d713d)['then'](function(_0x422699){_0x50dcf['count']=_0x422699;if(_0x1ab36a[_0xb242('0x30')][_0xb242('0x3f')]){_0x4332d9[_0xb242('0x40')]=[{'all':!![]}];}return db[_0xb242('0x2b')][_0xb242('0x41')](_0x4332d9);})['then'](function(_0xefac2a){_0x50dcf['rows']=_0xefac2a;return _0x50dcf;})['then'](respondWithFilteredResult(_0x2a6f3d,_0x4332d9))[_0xb242('0x42')](handleError(_0x2a6f3d,null));};exports[_0xb242('0x43')]=function(_0x59ebda,_0x254366){var _0x5bb05c={'raw':!![],'where':{'id':_0x59ebda[_0xb242('0x44')]['id']}},_0x19d5f6={};_0x19d5f6[_0xb242('0x2e')]=_[_0xb242('0x2f')](db[_0xb242('0x2b')]['rawAttributes']);_0x19d5f6[_0xb242('0x30')]=_[_0xb242('0x2f')](_0x59ebda[_0xb242('0x30')]);_0x19d5f6[_0xb242('0x31')]=_[_0xb242('0x32')](_0x19d5f6[_0xb242('0x2e')],_0x19d5f6[_0xb242('0x30')]);_0x5bb05c[_0xb242('0x33')]=_['intersection'](_0x19d5f6[_0xb242('0x2e')],qs[_0xb242('0x34')](_0x59ebda['query'][_0xb242('0x34')]));_0x5bb05c[_0xb242('0x33')]=_0x5bb05c[_0xb242('0x33')][_0xb242('0x35')]?_0x5bb05c['attributes']:_0x19d5f6[_0xb242('0x2e')];if(_0x59ebda['query']['includeAll']){_0x5bb05c['include']=[{'all':!![]}];}_0x5bb05c=_[_0xb242('0x3b')]({},_0x5bb05c,_0x59ebda['options']);return db[_0xb242('0x2b')][_0xb242('0x45')](_0x5bb05c)[_0xb242('0x23')](handleEntityNotFound(_0x254366,null))['then'](respondWithResult(_0x254366,null))[_0xb242('0x42')](handleError(_0x254366,null));};exports['create']=function(_0x2385de,_0x1b3ab0){return db[_0xb242('0x2b')][_0xb242('0x46')](_0x2385de[_0xb242('0x47')],{})[_0xb242('0x23')](respondWithResult(_0x1b3ab0,0xc9))[_0xb242('0x42')](handleError(_0x1b3ab0,null));};exports[_0xb242('0x22')]=function(_0x29be69,_0x571443){if(_0x29be69[_0xb242('0x47')]['id']){delete _0x29be69['body']['id'];}return db[_0xb242('0x2b')][_0xb242('0x45')]({'where':{'id':_0x29be69[_0xb242('0x44')]['id']}})[_0xb242('0x23')](handleEntityNotFound(_0x571443,null))[_0xb242('0x23')](saveUpdates(_0x29be69[_0xb242('0x47')],null))[_0xb242('0x23')](respondWithResult(_0x571443,null))[_0xb242('0x42')](handleError(_0x571443,null));};exports['destroy']=function(_0x1b9073,_0x5be739){return db[_0xb242('0x2b')][_0xb242('0x45')]({'where':{'id':_0x1b9073[_0xb242('0x44')]['id']}})[_0xb242('0x23')](handleEntityNotFound(_0x5be739,null))[_0xb242('0x23')](removeEntity(_0x5be739,null))[_0xb242('0x42')](handleError(_0x5be739,null));};exports['describe']=function(_0x22ef52,_0x39dc5e){return db[_0xb242('0x2b')][_0xb242('0x48')]()[_0xb242('0x23')](respondWithResult(_0x39dc5e,null))['catch'](handleError(_0x39dc5e,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8d62=['bluebird','request-promise','path','rimraf','../../config/environment','./faxTransferReport.attributes','exports','define','report_fax_transfer','uniqueid','util','../../config/logger','api','moment'];(function(_0x49dcac,_0x3f3ea3){var _0x5f2884=function(_0x34615d){while(--_0x34615d){_0x49dcac['push'](_0x49dcac['shift']());}};_0x5f2884(++_0x3f3ea3);}(_0x8d62,0xf8));var _0x28d6=function(_0x121e96,_0x4ab90e){_0x121e96=_0x121e96-0x0;var _0x48d23f=_0x8d62[_0x121e96];return _0x48d23f;};'use strict';var _=require('lodash');var util=require(_0x28d6('0x0'));var logger=require(_0x28d6('0x1'))(_0x28d6('0x2'));var moment=require(_0x28d6('0x3'));var BPromise=require(_0x28d6('0x4'));var rp=require(_0x28d6('0x5'));var fs=require('fs');var path=require(_0x28d6('0x6'));var rimraf=require(_0x28d6('0x7'));var config=require(_0x28d6('0x8'));var attributes=require(_0x28d6('0x9'));module[_0x28d6('0xa')]=function(_0x4385ba,_0x3c827b){return _0x4385ba[_0x28d6('0xb')]('FaxTransferReport',attributes,{'tableName':_0x28d6('0xc'),'paranoid':![],'indexes':[{'name':_0x28d6('0xd'),'fields':[_0x28d6('0xd')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xdca2=['uniqueid','lodash','../../config/logger','moment','request-promise','path','../../config/environment','exports','FaxTransferReport'];(function(_0xa1f655,_0x5056af){var _0x11aaaa=function(_0x353928){while(--_0x353928){_0xa1f655['push'](_0xa1f655['shift']());}};_0x11aaaa(++_0x5056af);}(_0xdca2,0xfd));var _0x2dca=function(_0xaa1b3e,_0x47d976){_0xaa1b3e=_0xaa1b3e-0x0;var _0x454d7d=_0xdca2[_0xaa1b3e];return _0x454d7d;};'use strict';var _=require(_0x2dca('0x0'));var util=require('util');var logger=require(_0x2dca('0x1'))('api');var moment=require(_0x2dca('0x2'));var BPromise=require('bluebird');var rp=require(_0x2dca('0x3'));var fs=require('fs');var path=require(_0x2dca('0x4'));var rimraf=require('rimraf');var config=require(_0x2dca('0x5'));var attributes=require('./faxTransferReport.attributes');module[_0x2dca('0x6')]=function(_0x473b0b,_0x53e2ac){return _0x473b0b['define'](_0x2dca('0x7'),attributes,{'tableName':'report_fax_transfer','paranoid':![],'indexes':[{'name':_0x2dca('0x8'),'fields':['uniqueid']}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc953=['../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','then','info','FaxTransferReport,\x20%s,\x20%s','debug','FaxTransferReport,\x20%s,\x20%s,\x20%s','request\x20sent','error','message','result','catch','lodash','util','moment','bluebird','randomstring','../../mysqldb'];(function(_0x4a1724,_0x581e12){var _0x124874=function(_0xc86215){while(--_0xc86215){_0x4a1724['push'](_0x4a1724['shift']());}};_0x124874(++_0x581e12);}(_0xc953,0x6d));var _0x3c95=function(_0x4099ee,_0x38495a){_0x4099ee=_0x4099ee-0x0;var _0x1b7bfc=_0xc953[_0x4099ee];return _0x1b7bfc;};'use strict';var _=require(_0x3c95('0x0'));var util=require(_0x3c95('0x1'));var moment=require(_0x3c95('0x2'));var BPromise=require(_0x3c95('0x3'));var rs=require(_0x3c95('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x3c95('0x5'))['db'];var utils=require(_0x3c95('0x6'));var logger=require(_0x3c95('0x7'))(_0x3c95('0x8'));var config=require(_0x3c95('0x9'));var jayson=require(_0x3c95('0xa'));var client=jayson[_0x3c95('0xb')][_0x3c95('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x29e50c,_0x306650,_0x100959){return new BPromise(function(_0x1cf65c,_0x58ea69){return client['request'](_0x29e50c,_0x100959)[_0x3c95('0xd')](function(_0x4e2d6a){logger[_0x3c95('0xe')](_0x3c95('0xf'),_0x306650,'request\x20sent');logger[_0x3c95('0x10')](_0x3c95('0x11'),_0x306650,_0x3c95('0x12'),JSON['stringify'](_0x4e2d6a));if(_0x4e2d6a[_0x3c95('0x13')]){if(_0x4e2d6a['error']['code']===0x1f4){logger[_0x3c95('0x13')](_0x3c95('0xf'),_0x306650,_0x4e2d6a[_0x3c95('0x13')][_0x3c95('0x14')]);return _0x58ea69(_0x4e2d6a[_0x3c95('0x13')][_0x3c95('0x14')]);}logger[_0x3c95('0x13')](_0x3c95('0xf'),_0x306650,_0x4e2d6a[_0x3c95('0x13')][_0x3c95('0x14')]);return _0x1cf65c(_0x4e2d6a[_0x3c95('0x13')][_0x3c95('0x14')]);}else{logger['info']('FaxTransferReport,\x20%s,\x20%s',_0x306650,_0x3c95('0x12'));_0x1cf65c(_0x4e2d6a[_0x3c95('0x15')][_0x3c95('0x14')]);}})[_0x3c95('0x16')](function(_0x3aea14){logger[_0x3c95('0x13')](_0x3c95('0xf'),_0x306650,_0x3aea14);_0x58ea69(_0x3aea14);});});}
\ No newline at end of file
+var _0xadc5=['util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','jayson/promise','http','then','info','FaxTransferReport,\x20%s,\x20%s','request\x20sent','debug','stringify','error','message','result','catch','lodash'];(function(_0x4eda24,_0x407afa){var _0x5300cf=function(_0x3b3e6f){while(--_0x3b3e6f){_0x4eda24['push'](_0x4eda24['shift']());}};_0x5300cf(++_0x407afa);}(_0xadc5,0x1b7));var _0x5adc=function(_0x5149c9,_0x5e7788){_0x5149c9=_0x5149c9-0x0;var _0x4d50e9=_0xadc5[_0x5149c9];return _0x4d50e9;};'use strict';var _=require(_0x5adc('0x0'));var util=require(_0x5adc('0x1'));var moment=require(_0x5adc('0x2'));var BPromise=require('bluebird');var rs=require(_0x5adc('0x3'));var fs=require('fs');var Redis=require(_0x5adc('0x4'));var db=require(_0x5adc('0x5'))['db'];var utils=require(_0x5adc('0x6'));var logger=require(_0x5adc('0x7'))('rpc');var config=require('../../config/environment');var jayson=require(_0x5adc('0x8'));var client=jayson['client'][_0x5adc('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x2fb2b6,_0x479898,_0x547374){return new BPromise(function(_0x4d905d,_0x31d2f8){return client['request'](_0x2fb2b6,_0x547374)[_0x5adc('0xa')](function(_0x1b7c39){logger[_0x5adc('0xb')](_0x5adc('0xc'),_0x479898,_0x5adc('0xd'));logger[_0x5adc('0xe')]('FaxTransferReport,\x20%s,\x20%s,\x20%s',_0x479898,_0x5adc('0xd'),JSON[_0x5adc('0xf')](_0x1b7c39));if(_0x1b7c39[_0x5adc('0x10')]){if(_0x1b7c39[_0x5adc('0x10')]['code']===0x1f4){logger[_0x5adc('0x10')]('FaxTransferReport,\x20%s,\x20%s',_0x479898,_0x1b7c39[_0x5adc('0x10')]['message']);return _0x31d2f8(_0x1b7c39[_0x5adc('0x10')]['message']);}logger[_0x5adc('0x10')](_0x5adc('0xc'),_0x479898,_0x1b7c39['error'][_0x5adc('0x11')]);return _0x4d905d(_0x1b7c39['error'][_0x5adc('0x11')]);}else{logger[_0x5adc('0xb')](_0x5adc('0xc'),_0x479898,_0x5adc('0xd'));_0x4d905d(_0x1b7c39[_0x5adc('0x12')][_0x5adc('0x11')]);}})[_0x5adc('0x13')](function(_0x1b0aeb){logger['error'](_0x5adc('0xc'),_0x479898,_0x1b0aeb);_0x31d2f8(_0x1b0aeb);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7878=['/:id','post','create','put','exports','multer','connect-timeout','express','fs-extra','../../components/interaction/service','../../config/environment','./faxTransferReport.controller','get','isAuthenticated','index','/describe','describe'];(function(_0x5868b9,_0x3cbf81){var _0x4899b1=function(_0x5d9b83){while(--_0x5d9b83){_0x5868b9['push'](_0x5868b9['shift']());}};_0x4899b1(++_0x3cbf81);}(_0x7878,0x16a));var _0x8787=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x7878[_0x3dd15e];return _0x231fd0;};'use strict';var multer=require(_0x8787('0x0'));var util=require('util');var path=require('path');var timeout=require(_0x8787('0x1'));var express=require(_0x8787('0x2'));var router=express['Router']();var fs_extra=require(_0x8787('0x3'));var auth=require('../../components/auth/service');var interaction=require(_0x8787('0x4'));var config=require(_0x8787('0x5'));var controller=require(_0x8787('0x6'));router[_0x8787('0x7')]('/',auth[_0x8787('0x8')](),controller[_0x8787('0x9')]);router[_0x8787('0x7')](_0x8787('0xa'),auth[_0x8787('0x8')](),controller[_0x8787('0xb')]);router[_0x8787('0x7')](_0x8787('0xc'),auth['isAuthenticated'](),controller['show']);router[_0x8787('0xd')]('/',auth['isAuthenticated'](),controller[_0x8787('0xe')]);router[_0x8787('0xf')]('/:id',auth[_0x8787('0x8')](),controller['update']);router['delete'](_0x8787('0xc'),auth[_0x8787('0x8')](),controller['destroy']);module[_0x8787('0x10')]=router;
\ No newline at end of file
+var _0x033e=['express','../../components/auth/service','../../config/environment','./faxTransferReport.controller','get','isAuthenticated','index','describe','/:id','show','post','create','update','delete','destroy','multer','path','connect-timeout'];(function(_0x4521e3,_0x10a8a4){var _0x46a272=function(_0x2f4c64){while(--_0x2f4c64){_0x4521e3['push'](_0x4521e3['shift']());}};_0x46a272(++_0x10a8a4);}(_0x033e,0xf9));var _0xe033=function(_0x34df55,_0x35e243){_0x34df55=_0x34df55-0x0;var _0x211a92=_0x033e[_0x34df55];return _0x211a92;};'use strict';var multer=require(_0xe033('0x0'));var util=require('util');var path=require(_0xe033('0x1'));var timeout=require(_0xe033('0x2'));var express=require(_0xe033('0x3'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0xe033('0x4'));var interaction=require('../../components/interaction/service');var config=require(_0xe033('0x5'));var controller=require(_0xe033('0x6'));router[_0xe033('0x7')]('/',auth[_0xe033('0x8')](),controller[_0xe033('0x9')]);router['get']('/describe',auth[_0xe033('0x8')](),controller[_0xe033('0xa')]);router[_0xe033('0x7')](_0xe033('0xb'),auth[_0xe033('0x8')](),controller[_0xe033('0xc')]);router[_0xe033('0xd')]('/',auth[_0xe033('0x8')](),controller[_0xe033('0xe')]);router['put'](_0xe033('0xb'),auth[_0xe033('0x8')](),controller[_0xe033('0xf')]);router[_0xe033('0x10')](_0xe033('0xb'),auth[_0xe033('0x8')](),controller[_0xe033('0x11')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6a2c=['update','delete','destroy','exports','multer','util','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','./intDeskAccount.controller','get','isAuthenticated','index','/:id','/:id/configurations','getConfigurations','/:id/fields','getFields','post','create','addConfiguration','put'];(function(_0x221428,_0x33540b){var _0x174dcb=function(_0x30ab7e){while(--_0x30ab7e){_0x221428['push'](_0x221428['shift']());}};_0x174dcb(++_0x33540b);}(_0x6a2c,0x17b));var _0xc6a2=function(_0x278e78,_0x482823){_0x278e78=_0x278e78-0x0;var _0x1228a0=_0x6a2c[_0x278e78];return _0x1228a0;};'use strict';var multer=require(_0xc6a2('0x0'));var util=require(_0xc6a2('0x1'));var path=require('path');var timeout=require(_0xc6a2('0x2'));var express=require(_0xc6a2('0x3'));var router=express[_0xc6a2('0x4')]();var fs_extra=require(_0xc6a2('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0xc6a2('0x6'));var config=require(_0xc6a2('0x7'));var controller=require(_0xc6a2('0x8'));router[_0xc6a2('0x9')]('/',auth[_0xc6a2('0xa')](),controller[_0xc6a2('0xb')]);router[_0xc6a2('0x9')](_0xc6a2('0xc'),auth[_0xc6a2('0xa')](),controller['show']);router[_0xc6a2('0x9')](_0xc6a2('0xd'),auth[_0xc6a2('0xa')](),controller[_0xc6a2('0xe')]);router['get'](_0xc6a2('0xf'),auth['isAuthenticated'](),controller[_0xc6a2('0x10')]);router[_0xc6a2('0x11')]('/',auth['isAuthenticated'](),controller[_0xc6a2('0x12')]);router[_0xc6a2('0x11')](_0xc6a2('0xd'),auth[_0xc6a2('0xa')](),controller[_0xc6a2('0x13')]);router[_0xc6a2('0x14')](_0xc6a2('0xc'),auth[_0xc6a2('0xa')](),controller[_0xc6a2('0x15')]);router[_0xc6a2('0x16')](_0xc6a2('0xc'),auth[_0xc6a2('0xa')](),controller[_0xc6a2('0x17')]);module[_0xc6a2('0x18')]=router;
\ No newline at end of file
+var _0xa1bc=['index','show','/:id/configurations','getConfigurations','/:id/fields','getFields','create','addConfiguration','put','/:id','delete','destroy','exports','multer','path','connect-timeout','express','Router','../../components/interaction/service','../../config/environment','./intDeskAccount.controller','get','isAuthenticated'];(function(_0x33fc8d,_0x358809){var _0x28d830=function(_0x4897d3){while(--_0x4897d3){_0x33fc8d['push'](_0x33fc8d['shift']());}};_0x28d830(++_0x358809);}(_0xa1bc,0x138));var _0xca1b=function(_0x48ad42,_0x5e073d){_0x48ad42=_0x48ad42-0x0;var _0x8b8b2a=_0xa1bc[_0x48ad42];return _0x8b8b2a;};'use strict';var multer=require(_0xca1b('0x0'));var util=require('util');var path=require(_0xca1b('0x1'));var timeout=require(_0xca1b('0x2'));var express=require(_0xca1b('0x3'));var router=express[_0xca1b('0x4')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0xca1b('0x5'));var config=require(_0xca1b('0x6'));var controller=require(_0xca1b('0x7'));router[_0xca1b('0x8')]('/',auth[_0xca1b('0x9')](),controller[_0xca1b('0xa')]);router['get']('/:id',auth[_0xca1b('0x9')](),controller[_0xca1b('0xb')]);router[_0xca1b('0x8')](_0xca1b('0xc'),auth[_0xca1b('0x9')](),controller[_0xca1b('0xd')]);router[_0xca1b('0x8')](_0xca1b('0xe'),auth[_0xca1b('0x9')](),controller[_0xca1b('0xf')]);router['post']('/',auth[_0xca1b('0x9')](),controller[_0xca1b('0x10')]);router['post'](_0xca1b('0xc'),auth[_0xca1b('0x9')](),controller[_0xca1b('0x11')]);router[_0xca1b('0x12')](_0xca1b('0x13'),auth[_0xca1b('0x9')](),controller['update']);router[_0xca1b('0x14')](_0xca1b('0x13'),auth[_0xca1b('0x9')](),controller[_0xca1b('0x15')]);module[_0xca1b('0x16')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x59f7=['integrationTab','newTab','sequelize','exports','STRING','basic','ENUM'];(function(_0x54ff9f,_0x1bb930){var _0x379293=function(_0x4bdeae){while(--_0x4bdeae){_0x54ff9f['push'](_0x54ff9f['shift']());}};_0x379293(++_0x1bb930);}(_0x59f7,0x18a));var _0x759f=function(_0x43286a,_0x53bc8d){_0x43286a=_0x43286a-0x0;var _0x191174=_0x59f7[_0x43286a];return _0x191174;};'use strict';var Sequelize=require(_0x759f('0x0'));module[_0x759f('0x1')]={'name':{'type':Sequelize[_0x759f('0x2')]},'description':{'type':Sequelize[_0x759f('0x2')]},'username':{'type':Sequelize[_0x759f('0x2')]},'remoteUri':{'type':Sequelize['STRING']},'authType':{'type':Sequelize['ENUM'](_0x759f('0x3')),'defaultValue':_0x759f('0x3')},'password':{'type':Sequelize[_0x759f('0x2')]},'consumerKey':{'type':Sequelize[_0x759f('0x2')]},'consumerSecret':{'type':Sequelize[_0x759f('0x2')]},'token':{'type':Sequelize['STRING']},'tokenSecret':{'type':Sequelize[_0x759f('0x2')]},'serverUrl':{'type':Sequelize[_0x759f('0x2')],'allowNull':![]},'type':{'type':Sequelize[_0x759f('0x4')](_0x759f('0x5'),_0x759f('0x6')),'defaultValue':_0x759f('0x5')}};
\ No newline at end of file
+var _0x87c0=['sequelize','exports','STRING','basic','ENUM','integrationTab'];(function(_0x815c23,_0x577e3a){var _0x357aa1=function(_0x289b7a){while(--_0x289b7a){_0x815c23['push'](_0x815c23['shift']());}};_0x357aa1(++_0x577e3a);}(_0x87c0,0x132));var _0x087c=function(_0x22b68a,_0x2bffc3){_0x22b68a=_0x22b68a-0x0;var _0x1ac67a=_0x87c0[_0x22b68a];return _0x1ac67a;};'use strict';var Sequelize=require(_0x087c('0x0'));module[_0x087c('0x1')]={'name':{'type':Sequelize[_0x087c('0x2')]},'description':{'type':Sequelize['STRING']},'username':{'type':Sequelize[_0x087c('0x2')]},'remoteUri':{'type':Sequelize[_0x087c('0x2')]},'authType':{'type':Sequelize['ENUM'](_0x087c('0x3')),'defaultValue':_0x087c('0x3')},'password':{'type':Sequelize['STRING']},'consumerKey':{'type':Sequelize[_0x087c('0x2')]},'consumerSecret':{'type':Sequelize[_0x087c('0x2')]},'token':{'type':Sequelize[_0x087c('0x2')]},'tokenSecret':{'type':Sequelize[_0x087c('0x2')]},'serverUrl':{'type':Sequelize[_0x087c('0x2')],'allowNull':![]},'type':{'type':Sequelize[_0x087c('0x4')](_0x087c('0x5'),'newTab'),'defaultValue':'integrationTab'}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf0ff=['sendStatus','error','stack','name','send','index','map','DeskAccount','rawAttributes','fieldName','type','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','VIRTUAL','options','includeAll','include','then','rows','show','params','keys','find','create','body','catch','destroy','findOne','DeskConfiguration','merge','getConfigurations','addConfiguration','AccountId','getSubjects','channel','Descriptions','getDescriptions','DeskField','getFields','priority','authType','username','password','consumerKey','consumerSecret','remoteUri','slice','GET','%s/custom_fields','application/json','basic','headers','format','%s:%s','toString','base64','_embedded','entries','label','getFields,\x20%s,\x20%s,\x20%s','stringify','statusCode','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../mysqldb','status','end','limit','undefined','count','offset','json','apply','reject','save','update'];(function(_0x5bfb2d,_0x26d833){var _0x17b624=function(_0x4a98da){while(--_0x4a98da){_0x5bfb2d['push'](_0x5bfb2d['shift']());}};_0x17b624(++_0x26d833);}(_0xf0ff,0x194));var _0xff0f=function(_0x455e92,_0x3a4c20){_0x455e92=_0x455e92-0x0;var _0x2a3a61=_0xf0ff[_0x455e92];return _0x2a3a61;};'use strict';var emlformat=require(_0xff0f('0x0'));var rimraf=require(_0xff0f('0x1'));var zipdir=require(_0xff0f('0x2'));var jsonpatch=require(_0xff0f('0x3'));var rp=require(_0xff0f('0x4'));var moment=require(_0xff0f('0x5'));var BPromise=require(_0xff0f('0x6'));var Mustache=require(_0xff0f('0x7'));var util=require(_0xff0f('0x8'));var path=require(_0xff0f('0x9'));var sox=require(_0xff0f('0xa'));var csv=require(_0xff0f('0xb'));var ejs=require(_0xff0f('0xc'));var fs=require('fs');var fs_extra=require(_0xff0f('0xd'));var _=require('lodash');var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xff0f('0xe'));var toCsv=require(_0xff0f('0xb'));var querystring=require(_0xff0f('0xf'));var Papa=require('papaparse');var Redis=require(_0xff0f('0x10'));var authService=require(_0xff0f('0x11'));var qs=require(_0xff0f('0x12'));var as=require(_0xff0f('0x13'));var hardwareService=require(_0xff0f('0x14'));var logger=require('../../config/logger')(_0xff0f('0x15'));var utils=require(_0xff0f('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0xff0f('0x17'));var db=require(_0xff0f('0x18'))['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x3cdc38,_0x530936){_0x530936=_0x530936||0xcc;return function(_0xbf441e){if(_0xbf441e){return _0x3cdc38['sendStatus'](_0x530936);}return _0x3cdc38[_0xff0f('0x19')](_0x530936)[_0xff0f('0x1a')]();};}function respondWithResult(_0x212002,_0x386c82){_0x386c82=_0x386c82||0xc8;return function(_0x423dec){if(_0x423dec){return _0x212002[_0xff0f('0x19')](_0x386c82)['json'](_0x423dec);}};}function respondWithFilteredResult(_0x489bd8,_0x42df53){return function(_0x3b2a8e){if(_0x3b2a8e){var _0x57a2da=typeof _0x42df53['offset']==='undefined'&&typeof _0x42df53[_0xff0f('0x1b')]===_0xff0f('0x1c');var _0x499a4e=_0x3b2a8e[_0xff0f('0x1d')];var _0x302c9d=_0x57a2da?0x0:_0x42df53[_0xff0f('0x1e')];var _0x719dc2=_0x57a2da?_0x3b2a8e[_0xff0f('0x1d')]:_0x42df53[_0xff0f('0x1e')]+_0x42df53['limit'];var _0x11c05d;if(_0x719dc2>=_0x499a4e){_0x719dc2=_0x499a4e;_0x11c05d=0xc8;}else{_0x11c05d=0xce;}_0x489bd8[_0xff0f('0x19')](_0x11c05d);return _0x489bd8['set']('Content-Range',_0x302c9d+'-'+_0x719dc2+'/'+_0x499a4e)[_0xff0f('0x1f')](_0x3b2a8e);}return null;};}function patchUpdates(_0x59726c){return function(_0x453203){try{jsonpatch[_0xff0f('0x20')](_0x453203,_0x59726c,!![]);}catch(_0x322b03){return BPromise[_0xff0f('0x21')](_0x322b03);}return _0x453203[_0xff0f('0x22')]();};}function saveUpdates(_0x4314df,_0x17bc94){return function(_0x5da8cd){if(_0x5da8cd){return _0x5da8cd[_0xff0f('0x23')](_0x4314df)['then'](function(_0x4bc37c){return _0x4bc37c;});}return null;};}function removeEntity(_0x23bec5,_0x2bf3b8){return function(_0x338cc0){if(_0x338cc0){return _0x338cc0['destroy']()['then'](function(){_0x23bec5[_0xff0f('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x42586c,_0x2db633){return function(_0x2e2b59){if(!_0x2e2b59){_0x42586c[_0xff0f('0x24')](0x194);}return _0x2e2b59;};}function handleError(_0x4d9129,_0x4afcaf){_0x4afcaf=_0x4afcaf||0x1f4;return function(_0x2e2b02){logger[_0xff0f('0x25')](_0x2e2b02[_0xff0f('0x26')]);if(_0x2e2b02[_0xff0f('0x27')]){delete _0x2e2b02['name'];}_0x4d9129[_0xff0f('0x19')](_0x4afcaf)[_0xff0f('0x28')](_0x2e2b02);};}exports[_0xff0f('0x29')]=function(_0x46ea9b,_0x47aad4){var _0xac1133={},_0x3cf917={},_0x21df4d={'count':0x0,'rows':[]};var _0x140d91=_[_0xff0f('0x2a')](db[_0xff0f('0x2b')][_0xff0f('0x2c')],function(_0x405aa0){return{'name':_0x405aa0[_0xff0f('0x2d')],'type':_0x405aa0[_0xff0f('0x2e')]['key']};});_0x3cf917[_0xff0f('0x2f')]=_[_0xff0f('0x2a')](_0x140d91,_0xff0f('0x27'));_0x3cf917['query']=_['keys'](_0x46ea9b[_0xff0f('0x30')]);_0x3cf917[_0xff0f('0x31')]=_[_0xff0f('0x32')](_0x3cf917[_0xff0f('0x2f')],_0x3cf917[_0xff0f('0x30')]);_0xac1133[_0xff0f('0x33')]=_[_0xff0f('0x32')](_0x3cf917[_0xff0f('0x2f')],qs['fields'](_0x46ea9b[_0xff0f('0x30')][_0xff0f('0x34')]));_0xac1133[_0xff0f('0x33')]=_0xac1133['attributes'][_0xff0f('0x35')]?_0xac1133[_0xff0f('0x33')]:_0x3cf917['model'];if(!_0x46ea9b[_0xff0f('0x30')][_0xff0f('0x36')](_0xff0f('0x37'))){_0xac1133['limit']=qs[_0xff0f('0x1b')](_0x46ea9b[_0xff0f('0x30')][_0xff0f('0x1b')]);_0xac1133[_0xff0f('0x1e')]=qs[_0xff0f('0x1e')](_0x46ea9b[_0xff0f('0x30')][_0xff0f('0x1e')]);}_0xac1133[_0xff0f('0x38')]=qs[_0xff0f('0x39')](_0x46ea9b[_0xff0f('0x30')]['sort']);_0xac1133['where']=qs['filters'](_[_0xff0f('0x3a')](_0x46ea9b['query'],_0x3cf917[_0xff0f('0x31')]),_0x140d91);if(_0x46ea9b[_0xff0f('0x30')][_0xff0f('0x3b')]){_0xac1133['where']=_['merge'](_0xac1133[_0xff0f('0x3c')],{'$or':_[_0xff0f('0x2a')](_0x140d91,function(_0x40cf09){if(_0x40cf09['type']!==_0xff0f('0x3d')){var _0x312aca={};_0x312aca[_0x40cf09[_0xff0f('0x27')]]={'$like':'%'+_0x46ea9b[_0xff0f('0x30')]['filter']+'%'};return _0x312aca;}})});}_0xac1133=_['merge']({},_0xac1133,_0x46ea9b[_0xff0f('0x3e')]);var _0x3fcd6b={'where':_0xac1133['where']};return db['DeskAccount'][_0xff0f('0x1d')](_0x3fcd6b)['then'](function(_0x386ff5){_0x21df4d['count']=_0x386ff5;if(_0x46ea9b['query'][_0xff0f('0x3f')]){_0xac1133[_0xff0f('0x40')]=[{'all':!![]}];}return db['DeskAccount']['findAll'](_0xac1133);})[_0xff0f('0x41')](function(_0x494c27){_0x21df4d[_0xff0f('0x42')]=_0x494c27;return _0x21df4d;})[_0xff0f('0x41')](respondWithFilteredResult(_0x47aad4,_0xac1133))['catch'](handleError(_0x47aad4,null));};exports[_0xff0f('0x43')]=function(_0x36e85e,_0x349a90){var _0x4201d8={'raw':![],'where':{'id':_0x36e85e[_0xff0f('0x44')]['id']}},_0x194cde={};_0x194cde[_0xff0f('0x2f')]=_[_0xff0f('0x45')](db[_0xff0f('0x2b')]['rawAttributes']);_0x194cde[_0xff0f('0x30')]=_['keys'](_0x36e85e['query']);_0x194cde[_0xff0f('0x31')]=_['intersection'](_0x194cde[_0xff0f('0x2f')],_0x194cde[_0xff0f('0x30')]);_0x4201d8[_0xff0f('0x33')]=_[_0xff0f('0x32')](_0x194cde[_0xff0f('0x2f')],qs[_0xff0f('0x34')](_0x36e85e[_0xff0f('0x30')][_0xff0f('0x34')]));_0x4201d8[_0xff0f('0x33')]=_0x4201d8['attributes'][_0xff0f('0x35')]?_0x4201d8['attributes']:_0x194cde[_0xff0f('0x2f')];if(_0x36e85e[_0xff0f('0x30')][_0xff0f('0x3f')]){_0x4201d8[_0xff0f('0x40')]=[{'all':!![]}];}_0x4201d8=_['merge']({},_0x4201d8,_0x36e85e[_0xff0f('0x3e')]);return db[_0xff0f('0x2b')][_0xff0f('0x46')](_0x4201d8)[_0xff0f('0x41')](handleEntityNotFound(_0x349a90,null))['then'](respondWithResult(_0x349a90,null))['catch'](handleError(_0x349a90,null));};exports[_0xff0f('0x47')]=function(_0x4fba0a,_0x201e2e){return db[_0xff0f('0x2b')][_0xff0f('0x47')](_0x4fba0a[_0xff0f('0x48')],{})['then'](respondWithResult(_0x201e2e,0xc9))[_0xff0f('0x49')](handleError(_0x201e2e,null));};exports[_0xff0f('0x23')]=function(_0x4db0fb,_0x388d8b){if(_0x4db0fb[_0xff0f('0x48')]['id']){delete _0x4db0fb['body']['id'];}return db[_0xff0f('0x2b')][_0xff0f('0x46')]({'where':{'id':_0x4db0fb[_0xff0f('0x44')]['id']}})['then'](handleEntityNotFound(_0x388d8b,null))[_0xff0f('0x41')](saveUpdates(_0x4db0fb[_0xff0f('0x48')],null))['then'](respondWithResult(_0x388d8b,null))[_0xff0f('0x49')](handleError(_0x388d8b,null));};exports[_0xff0f('0x4a')]=function(_0x19f051,_0x215b1b){return db['DeskAccount'][_0xff0f('0x46')]({'where':{'id':_0x19f051[_0xff0f('0x44')]['id']}})[_0xff0f('0x41')](handleEntityNotFound(_0x215b1b,null))[_0xff0f('0x41')](removeEntity(_0x215b1b,null))[_0xff0f('0x49')](handleError(_0x215b1b,null));};exports['getConfigurations']=function(_0x54d4ff,_0x1b1125,_0x3827b5){var _0x200142={};var _0x17b02a={};var _0x3f1cf4;var _0x47df42;return db[_0xff0f('0x2b')][_0xff0f('0x4b')]({'where':{'id':_0x54d4ff[_0xff0f('0x44')]['id']}})[_0xff0f('0x41')](handleEntityNotFound(_0x1b1125,null))[_0xff0f('0x41')](function(_0x543ba5){if(_0x543ba5){_0x3f1cf4=_0x543ba5;_0x17b02a[_0xff0f('0x2f')]=_['keys'](db[_0xff0f('0x4c')][_0xff0f('0x2c')]);_0x17b02a['query']=_[_0xff0f('0x45')](_0x54d4ff[_0xff0f('0x30')]);_0x17b02a['filters']=_[_0xff0f('0x32')](_0x17b02a[_0xff0f('0x2f')],_0x17b02a['query']);_0x200142['attributes']=_['intersection'](_0x17b02a[_0xff0f('0x2f')],qs['fields'](_0x54d4ff[_0xff0f('0x30')][_0xff0f('0x34')]));_0x200142['attributes']=_0x200142[_0xff0f('0x33')][_0xff0f('0x35')]?_0x200142[_0xff0f('0x33')]:_0x17b02a[_0xff0f('0x2f')];_0x200142[_0xff0f('0x38')]=qs[_0xff0f('0x39')](_0x54d4ff[_0xff0f('0x30')][_0xff0f('0x39')]);_0x200142[_0xff0f('0x3c')]=qs[_0xff0f('0x31')](_[_0xff0f('0x3a')](_0x54d4ff['query'],_0x17b02a[_0xff0f('0x31')]));if(_0x54d4ff[_0xff0f('0x30')]['filter']){_0x200142[_0xff0f('0x3c')]=_[_0xff0f('0x4d')](_0x200142[_0xff0f('0x3c')],{'$or':_['map'](_0x200142[_0xff0f('0x33')],function(_0x28d5ce){var _0x551898={};_0x551898[_0x28d5ce]={'$like':'%'+_0x54d4ff[_0xff0f('0x30')][_0xff0f('0x3b')]+'%'};return _0x551898;})});}_0x200142=_[_0xff0f('0x4d')]({},_0x200142,_0x54d4ff[_0xff0f('0x3e')]);return _0x3f1cf4[_0xff0f('0x4e')](_0x200142);}})['then'](function(_0x2eab2d){if(_0x2eab2d){_0x47df42=_0x2eab2d[_0xff0f('0x35')];if(!_0x54d4ff['query'][_0xff0f('0x36')]('nolimit')){_0x200142['limit']=qs[_0xff0f('0x1b')](_0x54d4ff[_0xff0f('0x30')][_0xff0f('0x1b')]);_0x200142[_0xff0f('0x1e')]=qs[_0xff0f('0x1e')](_0x54d4ff[_0xff0f('0x30')][_0xff0f('0x1e')]);}return _0x3f1cf4[_0xff0f('0x4e')](_0x200142);}})['then'](function(_0x144776){if(_0x144776){return _0x144776?{'count':_0x47df42,'rows':_0x144776}:null;}})['then'](respondWithResult(_0x1b1125,null))[_0xff0f('0x49')](handleError(_0x1b1125,null));};exports[_0xff0f('0x4f')]=function(_0x377ce0,_0x498c71,_0x46ef38){if(_0x377ce0['body']['id']){delete _0x377ce0['body']['id'];}return db[_0xff0f('0x2b')][_0xff0f('0x4b')]({'where':{'id':_0x377ce0[_0xff0f('0x44')]['id']}})[_0xff0f('0x41')](handleEntityNotFound(_0x498c71,null))[_0xff0f('0x41')](function(_0x2c4e91){if(_0x2c4e91){_0x377ce0['body'][_0xff0f('0x50')]=_0x2c4e91['id'];_0x377ce0[_0xff0f('0x48')]['Subjects']=integrations[_0xff0f('0x51')](_0x377ce0[_0xff0f('0x48')][_0xff0f('0x52')],_0x377ce0[_0xff0f('0x48')][_0xff0f('0x2e')]);_0x377ce0[_0xff0f('0x48')][_0xff0f('0x53')]=integrations[_0xff0f('0x54')](_0x377ce0[_0xff0f('0x48')][_0xff0f('0x52')],_0x377ce0[_0xff0f('0x48')][_0xff0f('0x2e')]);return db['DeskConfiguration']['create'](_0x377ce0[_0xff0f('0x48')],{'include':[{'model':db[_0xff0f('0x55')],'as':'Subjects'},{'model':db[_0xff0f('0x55')],'as':_0xff0f('0x53')}]});}return null;})[_0xff0f('0x41')](respondWithResult(_0x498c71,null))[_0xff0f('0x49')](handleError(_0x498c71,null));};exports[_0xff0f('0x56')]=function(_0x22eb21,_0x53e8e9,_0x3fcdaf){var _0xa6ff4b=[{'name':_0xff0f('0x57'),'label':_0xff0f('0x57'),'custom':![],'options':[{'name':0x1,'value':0x1},{'name':0x2,'value':0x2},{'name':0x3,'value':0x3},{'name':0x4,'value':0x4},{'name':0x5,'value':0x5},{'name':0x6,'value':0x6},{'name':0x7,'value':0x7},{'name':0x8,'value':0x8},{'name':0x9,'value':0x9},{'name':0xa,'value':0xa}]}];var _0x45bd23='';return db[_0xff0f('0x2b')][_0xff0f('0x4b')]({'where':{'id':_0x22eb21[_0xff0f('0x44')]['id']},'attributes':['id','remoteUri',_0xff0f('0x58'),_0xff0f('0x59'),_0xff0f('0x5a'),_0xff0f('0x5b'),_0xff0f('0x5c'),'token','tokenSecret']})['then'](handleEntityNotFound(_0x53e8e9,null))['then'](function(_0x23707b){if(_0x23707b){_0x45bd23=_0x23707b[_0xff0f('0x5d')];var _0x440fc6=_0x45bd23[_0xff0f('0x5e')](-0x1);if(_0x440fc6==='/'){_0x45bd23=_0x45bd23['substring'](0x0,_0x45bd23['lastIndexOf'](_0x440fc6));}var _0x387a05={'method':_0xff0f('0x5f'),'uri':util['format'](_0xff0f('0x60'),_0x45bd23),'headers':{'Content-Type':_0xff0f('0x61'),'Accept':_0xff0f('0x61')},'json':!![]};if(_0x23707b[_0xff0f('0x58')]===_0xff0f('0x62')){_0x387a05[_0xff0f('0x63')]['Authorization']=util[_0xff0f('0x64')]('Basic\x20%s',new Buffer(util[_0xff0f('0x64')](_0xff0f('0x65'),_0x23707b[_0xff0f('0x59')],_0x23707b[_0xff0f('0x5a')]))[_0xff0f('0x66')](_0xff0f('0x67')));}return rp(_0x387a05)[_0xff0f('0x41')](function(_0x20bed7){return _0xa6ff4b['concat'](_['map'](_0x20bed7[_0xff0f('0x68')][_0xff0f('0x69')],function(_0xf07a61){return{'id':_0xf07a61['name'],'name':_0xf07a61[_0xff0f('0x27')],'type':_0xf07a61[_0xff0f('0x2e')],'active':_0xf07a61['active'],'label':_0xf07a61[_0xff0f('0x6a')],'custom':!![]};}));});}})[_0xff0f('0x41')](function(_0x338327){return{'count':_0x338327['length'],'rows':_0x338327};})[_0xff0f('0x41')](respondWithResult(_0x53e8e9,null))['catch'](function(_0x26a47b){var _0x3bbb9e=_0x22eb21['query']['test']?0x1f4:_0x26a47b['statusCode']||0x1f4;logger[_0xff0f('0x25')](_0xff0f('0x6b'),_0xff0f('0x56'),_0x3bbb9e,JSON[_0xff0f('0x6c')](_0x26a47b));delete _0x26a47b[_0xff0f('0x27')];if(_0x3bbb9e===0x191){_0x3bbb9e=0x190;}_0x53e8e9[_0xff0f('0x19')](_0x3bbb9e)['send'](_0x22eb21[_0xff0f('0x30')]['test']?{'message':'Wrong\x20credentials','statusCode':_0x26a47b[_0xff0f('0x6d')]}:_0x26a47b);});};
\ No newline at end of file
+var _0x5fbb=['path','sox','to-csv','ejs','fs-extra','crypto','jsforce','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../components/integrations/configuration','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','destroy','then','error','stack','send','index','map','DeskAccount','rawAttributes','fieldName','type','key','model','name','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','order','sort','where','filter','merge','VIRTUAL','options','include','findAll','rows','catch','show','params','includeAll','body','find','findOne','DeskConfiguration','pick','getConfigurations','nolimit','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','DeskField','getFields','priority','authType','username','password','consumerKey','consumerSecret','token','tokenSecret','remoteUri','substring','lastIndexOf','GET','format','application/json','headers','toString','base64','concat','_embedded','entries','active','label','getFields,\x20%s,\x20%s,\x20%s','stringify','test','Wrong\x20credentials','statusCode','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util'];(function(_0x2067ae,_0x2297d9){var _0x15d9e7=function(_0x224ebf){while(--_0x224ebf){_0x2067ae['push'](_0x2067ae['shift']());}};_0x15d9e7(++_0x2297d9);}(_0x5fbb,0x6e));var _0xb5fb=function(_0x17d9e3,_0x1f969c){_0x17d9e3=_0x17d9e3-0x0;var _0x14192d=_0x5fbb[_0x17d9e3];return _0x14192d;};'use strict';var emlformat=require(_0xb5fb('0x0'));var rimraf=require(_0xb5fb('0x1'));var zipdir=require(_0xb5fb('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xb5fb('0x3'));var moment=require(_0xb5fb('0x4'));var BPromise=require(_0xb5fb('0x5'));var Mustache=require(_0xb5fb('0x6'));var util=require(_0xb5fb('0x7'));var path=require(_0xb5fb('0x8'));var sox=require(_0xb5fb('0x9'));var csv=require(_0xb5fb('0xa'));var ejs=require(_0xb5fb('0xb'));var fs=require('fs');var fs_extra=require(_0xb5fb('0xc'));var _=require('lodash');var squel=require('squel');var crypto=require(_0xb5fb('0xd'));var jsforce=require(_0xb5fb('0xe'));var deskjs=require('desk.js');var toCsv=require(_0xb5fb('0xa'));var querystring=require(_0xb5fb('0xf'));var Papa=require(_0xb5fb('0x10'));var Redis=require(_0xb5fb('0x11'));var authService=require('../../components/auth/service');var qs=require(_0xb5fb('0x12'));var as=require(_0xb5fb('0x13'));var hardwareService=require(_0xb5fb('0x14'));var logger=require(_0xb5fb('0x15'))(_0xb5fb('0x16'));var utils=require(_0xb5fb('0x17'));var config=require('../../config/environment');var licenseUtil=require(_0xb5fb('0x18'));var db=require('../../mysqldb')['db'];var integrations=require(_0xb5fb('0x19'));function respondWithStatusCode(_0x3b1e35,_0x48eef6){_0x48eef6=_0x48eef6||0xcc;return function(_0x417a40){if(_0x417a40){return _0x3b1e35[_0xb5fb('0x1a')](_0x48eef6);}return _0x3b1e35[_0xb5fb('0x1b')](_0x48eef6)[_0xb5fb('0x1c')]();};}function respondWithResult(_0x502b42,_0xc55346){_0xc55346=_0xc55346||0xc8;return function(_0x2c06c4){if(_0x2c06c4){return _0x502b42[_0xb5fb('0x1b')](_0xc55346)[_0xb5fb('0x1d')](_0x2c06c4);}};}function respondWithFilteredResult(_0x95ce7d,_0x4ae846){return function(_0x1ef122){if(_0x1ef122){var _0x50a0ec=typeof _0x4ae846[_0xb5fb('0x1e')]===_0xb5fb('0x1f')&&typeof _0x4ae846[_0xb5fb('0x20')]===_0xb5fb('0x1f');var _0x5a7682=_0x1ef122[_0xb5fb('0x21')];var _0xffc628=_0x50a0ec?0x0:_0x4ae846['offset'];var _0x446f96=_0x50a0ec?_0x1ef122[_0xb5fb('0x21')]:_0x4ae846[_0xb5fb('0x1e')]+_0x4ae846[_0xb5fb('0x20')];var _0x15e8f2;if(_0x446f96>=_0x5a7682){_0x446f96=_0x5a7682;_0x15e8f2=0xc8;}else{_0x15e8f2=0xce;}_0x95ce7d[_0xb5fb('0x1b')](_0x15e8f2);return _0x95ce7d[_0xb5fb('0x22')](_0xb5fb('0x23'),_0xffc628+'-'+_0x446f96+'/'+_0x5a7682)['json'](_0x1ef122);}return null;};}function patchUpdates(_0x451bd9){return function(_0x4d7d8a){try{jsonpatch[_0xb5fb('0x24')](_0x4d7d8a,_0x451bd9,!![]);}catch(_0xa7c343){return BPromise[_0xb5fb('0x25')](_0xa7c343);}return _0x4d7d8a[_0xb5fb('0x26')]();};}function saveUpdates(_0x5ccd50,_0xb07d){return function(_0x4c7d8b){if(_0x4c7d8b){return _0x4c7d8b[_0xb5fb('0x27')](_0x5ccd50)['then'](function(_0x3204a2){return _0x3204a2;});}return null;};}function removeEntity(_0x3a451c,_0x1cdaaa){return function(_0x3770fd){if(_0x3770fd){return _0x3770fd[_0xb5fb('0x28')]()[_0xb5fb('0x29')](function(){_0x3a451c[_0xb5fb('0x1b')](0xcc)[_0xb5fb('0x1c')]();});}};}function handleEntityNotFound(_0x48c51d,_0x3bc7b5){return function(_0x38fc88){if(!_0x38fc88){_0x48c51d[_0xb5fb('0x1a')](0x194);}return _0x38fc88;};}function handleError(_0x540221,_0x17cb37){_0x17cb37=_0x17cb37||0x1f4;return function(_0x459583){logger[_0xb5fb('0x2a')](_0x459583[_0xb5fb('0x2b')]);if(_0x459583['name']){delete _0x459583['name'];}_0x540221[_0xb5fb('0x1b')](_0x17cb37)[_0xb5fb('0x2c')](_0x459583);};}exports[_0xb5fb('0x2d')]=function(_0x19f131,_0x2fac95){var _0x5d36ae={},_0x348fc8={},_0x193e2a={'count':0x0,'rows':[]};var _0x41e2ea=_[_0xb5fb('0x2e')](db[_0xb5fb('0x2f')][_0xb5fb('0x30')],function(_0x1f5539){return{'name':_0x1f5539[_0xb5fb('0x31')],'type':_0x1f5539[_0xb5fb('0x32')][_0xb5fb('0x33')]};});_0x348fc8[_0xb5fb('0x34')]=_[_0xb5fb('0x2e')](_0x41e2ea,_0xb5fb('0x35'));_0x348fc8[_0xb5fb('0x36')]=_[_0xb5fb('0x37')](_0x19f131[_0xb5fb('0x36')]);_0x348fc8[_0xb5fb('0x38')]=_[_0xb5fb('0x39')](_0x348fc8['model'],_0x348fc8[_0xb5fb('0x36')]);_0x5d36ae['attributes']=_[_0xb5fb('0x39')](_0x348fc8[_0xb5fb('0x34')],qs[_0xb5fb('0x3a')](_0x19f131[_0xb5fb('0x36')][_0xb5fb('0x3a')]));_0x5d36ae[_0xb5fb('0x3b')]=_0x5d36ae[_0xb5fb('0x3b')][_0xb5fb('0x3c')]?_0x5d36ae[_0xb5fb('0x3b')]:_0x348fc8[_0xb5fb('0x34')];if(!_0x19f131[_0xb5fb('0x36')][_0xb5fb('0x3d')]('nolimit')){_0x5d36ae[_0xb5fb('0x20')]=qs['limit'](_0x19f131[_0xb5fb('0x36')]['limit']);_0x5d36ae[_0xb5fb('0x1e')]=qs[_0xb5fb('0x1e')](_0x19f131[_0xb5fb('0x36')]['offset']);}_0x5d36ae[_0xb5fb('0x3e')]=qs[_0xb5fb('0x3f')](_0x19f131[_0xb5fb('0x36')][_0xb5fb('0x3f')]);_0x5d36ae[_0xb5fb('0x40')]=qs[_0xb5fb('0x38')](_['pick'](_0x19f131['query'],_0x348fc8[_0xb5fb('0x38')]),_0x41e2ea);if(_0x19f131[_0xb5fb('0x36')][_0xb5fb('0x41')]){_0x5d36ae[_0xb5fb('0x40')]=_[_0xb5fb('0x42')](_0x5d36ae['where'],{'$or':_[_0xb5fb('0x2e')](_0x41e2ea,function(_0x14aaac){if(_0x14aaac[_0xb5fb('0x32')]!==_0xb5fb('0x43')){var _0x16b2d8={};_0x16b2d8[_0x14aaac[_0xb5fb('0x35')]]={'$like':'%'+_0x19f131[_0xb5fb('0x36')][_0xb5fb('0x41')]+'%'};return _0x16b2d8;}})});}_0x5d36ae=_[_0xb5fb('0x42')]({},_0x5d36ae,_0x19f131[_0xb5fb('0x44')]);var _0x2b7dd4={'where':_0x5d36ae[_0xb5fb('0x40')]};return db[_0xb5fb('0x2f')]['count'](_0x2b7dd4)[_0xb5fb('0x29')](function(_0x7572b4){_0x193e2a[_0xb5fb('0x21')]=_0x7572b4;if(_0x19f131[_0xb5fb('0x36')]['includeAll']){_0x5d36ae[_0xb5fb('0x45')]=[{'all':!![]}];}return db[_0xb5fb('0x2f')][_0xb5fb('0x46')](_0x5d36ae);})[_0xb5fb('0x29')](function(_0x11addd){_0x193e2a[_0xb5fb('0x47')]=_0x11addd;return _0x193e2a;})[_0xb5fb('0x29')](respondWithFilteredResult(_0x2fac95,_0x5d36ae))[_0xb5fb('0x48')](handleError(_0x2fac95,null));};exports[_0xb5fb('0x49')]=function(_0x546cbf,_0x35cd81){var _0x558a94={'raw':![],'where':{'id':_0x546cbf[_0xb5fb('0x4a')]['id']}},_0x20bb41={};_0x20bb41[_0xb5fb('0x34')]=_['keys'](db[_0xb5fb('0x2f')][_0xb5fb('0x30')]);_0x20bb41['query']=_['keys'](_0x546cbf[_0xb5fb('0x36')]);_0x20bb41[_0xb5fb('0x38')]=_[_0xb5fb('0x39')](_0x20bb41['model'],_0x20bb41['query']);_0x558a94[_0xb5fb('0x3b')]=_[_0xb5fb('0x39')](_0x20bb41[_0xb5fb('0x34')],qs[_0xb5fb('0x3a')](_0x546cbf[_0xb5fb('0x36')][_0xb5fb('0x3a')]));_0x558a94[_0xb5fb('0x3b')]=_0x558a94[_0xb5fb('0x3b')][_0xb5fb('0x3c')]?_0x558a94[_0xb5fb('0x3b')]:_0x20bb41[_0xb5fb('0x34')];if(_0x546cbf[_0xb5fb('0x36')][_0xb5fb('0x4b')]){_0x558a94[_0xb5fb('0x45')]=[{'all':!![]}];}_0x558a94=_['merge']({},_0x558a94,_0x546cbf[_0xb5fb('0x44')]);return db[_0xb5fb('0x2f')]['find'](_0x558a94)['then'](handleEntityNotFound(_0x35cd81,null))['then'](respondWithResult(_0x35cd81,null))[_0xb5fb('0x48')](handleError(_0x35cd81,null));};exports['create']=function(_0x14d410,_0x5ab1c4){return db[_0xb5fb('0x2f')]['create'](_0x14d410[_0xb5fb('0x4c')],{})[_0xb5fb('0x29')](respondWithResult(_0x5ab1c4,0xc9))[_0xb5fb('0x48')](handleError(_0x5ab1c4,null));};exports['update']=function(_0x1a80e0,_0x3d7c2e){if(_0x1a80e0[_0xb5fb('0x4c')]['id']){delete _0x1a80e0[_0xb5fb('0x4c')]['id'];}return db['DeskAccount'][_0xb5fb('0x4d')]({'where':{'id':_0x1a80e0['params']['id']}})[_0xb5fb('0x29')](handleEntityNotFound(_0x3d7c2e,null))[_0xb5fb('0x29')](saveUpdates(_0x1a80e0[_0xb5fb('0x4c')],null))['then'](respondWithResult(_0x3d7c2e,null))[_0xb5fb('0x48')](handleError(_0x3d7c2e,null));};exports['destroy']=function(_0x3f90a3,_0x5b5189){return db[_0xb5fb('0x2f')][_0xb5fb('0x4d')]({'where':{'id':_0x3f90a3['params']['id']}})[_0xb5fb('0x29')](handleEntityNotFound(_0x5b5189,null))[_0xb5fb('0x29')](removeEntity(_0x5b5189,null))[_0xb5fb('0x48')](handleError(_0x5b5189,null));};exports['getConfigurations']=function(_0x22dca1,_0x5e77f2,_0x1bba18){var _0x4b3ecb={};var _0x429085={};var _0x407f66;var _0x5159ec;return db[_0xb5fb('0x2f')][_0xb5fb('0x4e')]({'where':{'id':_0x22dca1[_0xb5fb('0x4a')]['id']}})['then'](handleEntityNotFound(_0x5e77f2,null))[_0xb5fb('0x29')](function(_0x3852eb){if(_0x3852eb){_0x407f66=_0x3852eb;_0x429085[_0xb5fb('0x34')]=_[_0xb5fb('0x37')](db[_0xb5fb('0x4f')][_0xb5fb('0x30')]);_0x429085[_0xb5fb('0x36')]=_[_0xb5fb('0x37')](_0x22dca1[_0xb5fb('0x36')]);_0x429085[_0xb5fb('0x38')]=_[_0xb5fb('0x39')](_0x429085[_0xb5fb('0x34')],_0x429085[_0xb5fb('0x36')]);_0x4b3ecb[_0xb5fb('0x3b')]=_['intersection'](_0x429085['model'],qs[_0xb5fb('0x3a')](_0x22dca1[_0xb5fb('0x36')]['fields']));_0x4b3ecb[_0xb5fb('0x3b')]=_0x4b3ecb[_0xb5fb('0x3b')][_0xb5fb('0x3c')]?_0x4b3ecb[_0xb5fb('0x3b')]:_0x429085[_0xb5fb('0x34')];_0x4b3ecb['order']=qs[_0xb5fb('0x3f')](_0x22dca1[_0xb5fb('0x36')][_0xb5fb('0x3f')]);_0x4b3ecb['where']=qs[_0xb5fb('0x38')](_[_0xb5fb('0x50')](_0x22dca1[_0xb5fb('0x36')],_0x429085[_0xb5fb('0x38')]));if(_0x22dca1[_0xb5fb('0x36')][_0xb5fb('0x41')]){_0x4b3ecb[_0xb5fb('0x40')]=_[_0xb5fb('0x42')](_0x4b3ecb[_0xb5fb('0x40')],{'$or':_['map'](_0x4b3ecb['attributes'],function(_0x3965c9){var _0x16953e={};_0x16953e[_0x3965c9]={'$like':'%'+_0x22dca1[_0xb5fb('0x36')][_0xb5fb('0x41')]+'%'};return _0x16953e;})});}_0x4b3ecb=_['merge']({},_0x4b3ecb,_0x22dca1[_0xb5fb('0x44')]);return _0x407f66[_0xb5fb('0x51')](_0x4b3ecb);}})['then'](function(_0x1e7c4c){if(_0x1e7c4c){_0x5159ec=_0x1e7c4c['length'];if(!_0x22dca1['query']['hasOwnProperty'](_0xb5fb('0x52'))){_0x4b3ecb[_0xb5fb('0x20')]=qs[_0xb5fb('0x20')](_0x22dca1[_0xb5fb('0x36')][_0xb5fb('0x20')]);_0x4b3ecb[_0xb5fb('0x1e')]=qs[_0xb5fb('0x1e')](_0x22dca1['query'][_0xb5fb('0x1e')]);}return _0x407f66[_0xb5fb('0x51')](_0x4b3ecb);}})[_0xb5fb('0x29')](function(_0x1375da){if(_0x1375da){return _0x1375da?{'count':_0x5159ec,'rows':_0x1375da}:null;}})['then'](respondWithResult(_0x5e77f2,null))[_0xb5fb('0x48')](handleError(_0x5e77f2,null));};exports['addConfiguration']=function(_0x4a098c,_0x5209c5,_0x19acc4){if(_0x4a098c[_0xb5fb('0x4c')]['id']){delete _0x4a098c[_0xb5fb('0x4c')]['id'];}return db[_0xb5fb('0x2f')][_0xb5fb('0x4e')]({'where':{'id':_0x4a098c['params']['id']}})[_0xb5fb('0x29')](handleEntityNotFound(_0x5209c5,null))[_0xb5fb('0x29')](function(_0x5d01ee){if(_0x5d01ee){_0x4a098c['body'][_0xb5fb('0x53')]=_0x5d01ee['id'];_0x4a098c[_0xb5fb('0x4c')][_0xb5fb('0x54')]=integrations[_0xb5fb('0x55')](_0x4a098c[_0xb5fb('0x4c')][_0xb5fb('0x56')],_0x4a098c['body']['type']);_0x4a098c[_0xb5fb('0x4c')][_0xb5fb('0x57')]=integrations[_0xb5fb('0x58')](_0x4a098c['body'][_0xb5fb('0x56')],_0x4a098c['body'][_0xb5fb('0x32')]);return db[_0xb5fb('0x4f')]['create'](_0x4a098c['body'],{'include':[{'model':db[_0xb5fb('0x59')],'as':'Subjects'},{'model':db['DeskField'],'as':_0xb5fb('0x57')}]});}return null;})[_0xb5fb('0x29')](respondWithResult(_0x5209c5,null))[_0xb5fb('0x48')](handleError(_0x5209c5,null));};exports[_0xb5fb('0x5a')]=function(_0x4b2e67,_0x5dd22d,_0x42d180){var _0x30eb6c=[{'name':_0xb5fb('0x5b'),'label':_0xb5fb('0x5b'),'custom':![],'options':[{'name':0x1,'value':0x1},{'name':0x2,'value':0x2},{'name':0x3,'value':0x3},{'name':0x4,'value':0x4},{'name':0x5,'value':0x5},{'name':0x6,'value':0x6},{'name':0x7,'value':0x7},{'name':0x8,'value':0x8},{'name':0x9,'value':0x9},{'name':0xa,'value':0xa}]}];var _0xdc6b0e='';return db[_0xb5fb('0x2f')][_0xb5fb('0x4e')]({'where':{'id':_0x4b2e67[_0xb5fb('0x4a')]['id']},'attributes':['id','remoteUri',_0xb5fb('0x5c'),_0xb5fb('0x5d'),_0xb5fb('0x5e'),_0xb5fb('0x5f'),_0xb5fb('0x60'),_0xb5fb('0x61'),_0xb5fb('0x62')]})[_0xb5fb('0x29')](handleEntityNotFound(_0x5dd22d,null))['then'](function(_0x3efcdc){if(_0x3efcdc){_0xdc6b0e=_0x3efcdc[_0xb5fb('0x63')];var _0x6bf192=_0xdc6b0e['slice'](-0x1);if(_0x6bf192==='/'){_0xdc6b0e=_0xdc6b0e[_0xb5fb('0x64')](0x0,_0xdc6b0e[_0xb5fb('0x65')](_0x6bf192));}var _0x27bbc3={'method':_0xb5fb('0x66'),'uri':util[_0xb5fb('0x67')]('%s/custom_fields',_0xdc6b0e),'headers':{'Content-Type':_0xb5fb('0x68'),'Accept':_0xb5fb('0x68')},'json':!![]};if(_0x3efcdc[_0xb5fb('0x5c')]==='basic'){_0x27bbc3[_0xb5fb('0x69')]['Authorization']=util[_0xb5fb('0x67')]('Basic\x20%s',new Buffer(util[_0xb5fb('0x67')]('%s:%s',_0x3efcdc[_0xb5fb('0x5d')],_0x3efcdc[_0xb5fb('0x5e')]))[_0xb5fb('0x6a')](_0xb5fb('0x6b')));}return rp(_0x27bbc3)[_0xb5fb('0x29')](function(_0x1bf05b){return _0x30eb6c[_0xb5fb('0x6c')](_[_0xb5fb('0x2e')](_0x1bf05b[_0xb5fb('0x6d')][_0xb5fb('0x6e')],function(_0x51df93){return{'id':_0x51df93[_0xb5fb('0x35')],'name':_0x51df93[_0xb5fb('0x35')],'type':_0x51df93[_0xb5fb('0x32')],'active':_0x51df93[_0xb5fb('0x6f')],'label':_0x51df93[_0xb5fb('0x70')],'custom':!![]};}));});}})[_0xb5fb('0x29')](function(_0x5ce4e6){return{'count':_0x5ce4e6['length'],'rows':_0x5ce4e6};})[_0xb5fb('0x29')](respondWithResult(_0x5dd22d,null))[_0xb5fb('0x48')](function(_0x1ca061){var _0x471733=_0x4b2e67[_0xb5fb('0x36')]['test']?0x1f4:_0x1ca061['statusCode']||0x1f4;logger[_0xb5fb('0x2a')](_0xb5fb('0x71'),_0xb5fb('0x5a'),_0x471733,JSON[_0xb5fb('0x72')](_0x1ca061));delete _0x1ca061['name'];if(_0x471733===0x191){_0x471733=0x190;}_0x5dd22d['status'](_0x471733)['send'](_0x4b2e67[_0xb5fb('0x36')][_0xb5fb('0x73')]?{'message':_0xb5fb('0x74'),'statusCode':_0x1ca061[_0xb5fb('0x75')]}:_0x1ca061);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf23c=['lodash','util','../../config/logger','api','request-promise','../../config/environment','./intDeskAccount.attributes','../../components/integrations/configuration','define','DeskAccount'];(function(_0x2be2b5,_0x577288){var _0x1cf9f9=function(_0x4ea68e){while(--_0x4ea68e){_0x2be2b5['push'](_0x2be2b5['shift']());}};_0x1cf9f9(++_0x577288);}(_0xf23c,0x15e));var _0xcf23=function(_0x565fed,_0xb85768){_0x565fed=_0x565fed-0x0;var _0x3e018f=_0xf23c[_0x565fed];return _0x3e018f;};'use strict';var _=require(_0xcf23('0x0'));var util=require(_0xcf23('0x1'));var logger=require(_0xcf23('0x2'))(_0xcf23('0x3'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0xcf23('0x4'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0xcf23('0x5'));var attributes=require(_0xcf23('0x6'));var integrations=require(_0xcf23('0x7'));module['exports']=function(_0x29bf5f,_0x3d671b){return _0x29bf5f[_0xcf23('0x8')](_0xcf23('0x9'),attributes,{'tableName':'int_desk_accounts','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x2ca1=['../../config/logger','moment','bluebird','request-promise','path','../../config/environment','./intDeskAccount.attributes','../../components/integrations/configuration','exports','define','DeskAccount','int_desk_accounts','lodash','util'];(function(_0x4e9310,_0x5296e4){var _0x346b79=function(_0x2b0d41){while(--_0x2b0d41){_0x4e9310['push'](_0x4e9310['shift']());}};_0x346b79(++_0x5296e4);}(_0x2ca1,0x1a2));var _0x12ca=function(_0x149083,_0x4047b6){_0x149083=_0x149083-0x0;var _0x4dc74e=_0x2ca1[_0x149083];return _0x4dc74e;};'use strict';var _=require(_0x12ca('0x0'));var util=require(_0x12ca('0x1'));var logger=require(_0x12ca('0x2'))('api');var moment=require(_0x12ca('0x3'));var BPromise=require(_0x12ca('0x4'));var rp=require(_0x12ca('0x5'));var fs=require('fs');var path=require(_0x12ca('0x6'));var rimraf=require('rimraf');var config=require(_0x12ca('0x7'));var attributes=require(_0x12ca('0x8'));var integrations=require(_0x12ca('0x9'));module[_0x12ca('0xa')]=function(_0x24f631,_0x5e89e9){return _0x24f631[_0x12ca('0xb')](_0x12ca('0xc'),attributes,{'tableName':_0x12ca('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xae16=['raw','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/environment','jayson/promise','client','then','info','request\x20sent','error','message','DeskAccount,\x20%s,\x20%s','result','catch','GetDeskAccount','DeskAccount','options','where','attributes','limit','include','map','model','debug','stringify','ShowDeskAccount','find'];(function(_0x2a2a25,_0xe403a4){var _0x57b888=function(_0x5d5b48){while(--_0x5d5b48){_0x2a2a25['push'](_0x2a2a25['shift']());}};_0x57b888(++_0xe403a4);}(_0xae16,0x181));var _0x6ae1=function(_0x3192fa,_0x3d58b5){_0x3192fa=_0x3192fa-0x0;var _0x283db5=_0xae16[_0x3192fa];return _0x283db5;};'use strict';var _=require('lodash');var util=require(_0x6ae1('0x0'));var moment=require(_0x6ae1('0x1'));var BPromise=require(_0x6ae1('0x2'));var rs=require(_0x6ae1('0x3'));var fs=require('fs');var Redis=require(_0x6ae1('0x4'));var db=require(_0x6ae1('0x5'))['db'];var utils=require(_0x6ae1('0x6'));var logger=require('../../config/logger')('rpc');var config=require(_0x6ae1('0x7'));var jayson=require(_0x6ae1('0x8'));var client=jayson[_0x6ae1('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x241ec5,_0x8c32bf,_0x513ee1){return new BPromise(function(_0x3ebc31,_0x5755da){return client['request'](_0x241ec5,_0x513ee1)[_0x6ae1('0xa')](function(_0x33f1b0){logger[_0x6ae1('0xb')]('DeskAccount,\x20%s,\x20%s',_0x8c32bf,_0x6ae1('0xc'));logger['debug']('DeskAccount,\x20%s,\x20%s,\x20%s',_0x8c32bf,_0x6ae1('0xc'),JSON['stringify'](_0x33f1b0));if(_0x33f1b0[_0x6ae1('0xd')]){if(_0x33f1b0[_0x6ae1('0xd')]['code']===0x1f4){logger['error']('DeskAccount,\x20%s,\x20%s',_0x8c32bf,_0x33f1b0['error']['message']);return _0x5755da(_0x33f1b0[_0x6ae1('0xd')][_0x6ae1('0xe')]);}logger[_0x6ae1('0xd')](_0x6ae1('0xf'),_0x8c32bf,_0x33f1b0['error'][_0x6ae1('0xe')]);return _0x3ebc31(_0x33f1b0[_0x6ae1('0xd')][_0x6ae1('0xe')]);}else{logger[_0x6ae1('0xb')](_0x6ae1('0xf'),_0x8c32bf,'request\x20sent');_0x3ebc31(_0x33f1b0[_0x6ae1('0x10')][_0x6ae1('0xe')]);}})[_0x6ae1('0x11')](function(_0x48a334){logger[_0x6ae1('0xd')](_0x6ae1('0xf'),_0x8c32bf,_0x48a334);_0x5755da(_0x48a334);});});}exports[_0x6ae1('0x12')]=function(_0x3f7eb0){var _0x125018=this;return new Promise(function(_0x56b279,_0x10cc2d){return db[_0x6ae1('0x13')]['findAll']({'raw':_0x3f7eb0[_0x6ae1('0x14')]?_0x3f7eb0['options']['raw']===undefined?!![]:![]:!![],'where':_0x3f7eb0['options']?_0x3f7eb0['options'][_0x6ae1('0x15')]||null:null,'attributes':_0x3f7eb0['options']?_0x3f7eb0[_0x6ae1('0x14')][_0x6ae1('0x16')]||null:null,'limit':_0x3f7eb0[_0x6ae1('0x14')]?_0x3f7eb0['options'][_0x6ae1('0x17')]||null:null,'include':_0x3f7eb0[_0x6ae1('0x14')]?_0x3f7eb0[_0x6ae1('0x14')][_0x6ae1('0x18')]?_[_0x6ae1('0x19')](_0x3f7eb0['options'][_0x6ae1('0x18')],function(_0x212cd4){return{'model':db[_0x212cd4['model']],'as':_0x212cd4['as'],'attributes':_0x212cd4['attributes'],'include':_0x212cd4[_0x6ae1('0x18')]?_[_0x6ae1('0x19')](_0x212cd4[_0x6ae1('0x18')],function(_0x1ec97d){return{'model':db[_0x1ec97d[_0x6ae1('0x1a')]],'as':_0x1ec97d['as'],'attributes':_0x1ec97d['attributes'],'include':_0x1ec97d[_0x6ae1('0x18')]?_['map'](_0x1ec97d[_0x6ae1('0x18')],function(_0x5832bb){return{'model':db[_0x5832bb[_0x6ae1('0x1a')]],'as':_0x5832bb['as'],'attributes':_0x5832bb[_0x6ae1('0x16')]};}):[]};}):[]};}):[]:[]})[_0x6ae1('0xa')](function(_0x3022aa){logger[_0x6ae1('0xb')](_0x6ae1('0x12'),_0x3f7eb0);logger[_0x6ae1('0x1b')]('GetDeskAccount',_0x3f7eb0,JSON[_0x6ae1('0x1c')](_0x3022aa));_0x56b279(_0x3022aa);})[_0x6ae1('0x11')](function(_0xd67e36){logger[_0x6ae1('0xd')](_0x6ae1('0x12'),_0xd67e36['message'],_0x3f7eb0);_0x10cc2d(_0x125018[_0x6ae1('0xd')](0x1f4,_0xd67e36[_0x6ae1('0xe')]));});});};exports[_0x6ae1('0x1d')]=function(_0x431297){var _0x54f183=this;return new Promise(function(_0x556f2b,_0x478008){return db[_0x6ae1('0x13')][_0x6ae1('0x1e')]({'raw':_0x431297['options']?_0x431297['options'][_0x6ae1('0x1f')]===undefined?!![]:![]:!![],'where':_0x431297[_0x6ae1('0x14')]?_0x431297[_0x6ae1('0x14')]['where']||null:null,'attributes':_0x431297['options']?_0x431297[_0x6ae1('0x14')]['attributes']||null:null,'include':_0x431297[_0x6ae1('0x14')]?_0x431297['options'][_0x6ae1('0x18')]?_['map'](_0x431297[_0x6ae1('0x14')]['include'],function(_0x501c47){return{'model':db[_0x501c47[_0x6ae1('0x1a')]],'as':_0x501c47['as'],'attributes':_0x501c47['attributes'],'include':_0x501c47['include']?_[_0x6ae1('0x19')](_0x501c47[_0x6ae1('0x18')],function(_0x49f9e6){return{'model':db[_0x49f9e6['model']],'as':_0x49f9e6['as'],'attributes':_0x49f9e6['attributes'],'include':_0x49f9e6['include']?_[_0x6ae1('0x19')](_0x49f9e6[_0x6ae1('0x18')],function(_0x33c33e){return{'model':db[_0x33c33e['model']],'as':_0x33c33e['as'],'attributes':_0x33c33e[_0x6ae1('0x16')]};}):[]};}):[]};}):[]:[]})[_0x6ae1('0xa')](function(_0x46a984){logger['info']('ShowDeskAccount',_0x431297);logger[_0x6ae1('0x1b')]('ShowDeskAccount',_0x431297,JSON[_0x6ae1('0x1c')](_0x46a984));_0x556f2b(_0x46a984);})['catch'](function(_0x34b1c0){logger[_0x6ae1('0xd')](_0x6ae1('0x1d'),_0x34b1c0[_0x6ae1('0xe')],_0x431297);_0x478008(_0x54f183[_0x6ae1('0xd')](0x1f4,_0x34b1c0[_0x6ae1('0xe')]));});});};
\ No newline at end of file
+var _0xf0d9=['../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','request','then','info','DeskAccount,\x20%s,\x20%s','debug','DeskAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','request\x20sent','result','catch','DeskAccount','findAll','options','raw','where','limit','include','map','model','attributes','GetDeskAccount','ShowDeskAccount','find','lodash','moment','bluebird','ioredis'];(function(_0xe8aea6,_0x3ea7d8){var _0x502b83=function(_0x4979d0){while(--_0x4979d0){_0xe8aea6['push'](_0xe8aea6['shift']());}};_0x502b83(++_0x3ea7d8);}(_0xf0d9,0xb5));var _0x9f0d=function(_0x35425b,_0x45eb59){_0x35425b=_0x35425b-0x0;var _0x41c2b4=_0xf0d9[_0x35425b];return _0x41c2b4;};'use strict';var _=require(_0x9f0d('0x0'));var util=require('util');var moment=require(_0x9f0d('0x1'));var BPromise=require(_0x9f0d('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x9f0d('0x3'));var db=require(_0x9f0d('0x4'))['db'];var utils=require(_0x9f0d('0x5'));var logger=require(_0x9f0d('0x6'))(_0x9f0d('0x7'));var config=require(_0x9f0d('0x8'));var jayson=require(_0x9f0d('0x9'));var client=jayson[_0x9f0d('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0x5e06bb,_0x2dbffe,_0x53a10a){return new BPromise(function(_0x296c46,_0x4bc2f5){return client[_0x9f0d('0xb')](_0x5e06bb,_0x53a10a)[_0x9f0d('0xc')](function(_0x4964b1){logger[_0x9f0d('0xd')](_0x9f0d('0xe'),_0x2dbffe,'request\x20sent');logger[_0x9f0d('0xf')](_0x9f0d('0x10'),_0x2dbffe,'request\x20sent',JSON[_0x9f0d('0x11')](_0x4964b1));if(_0x4964b1['error']){if(_0x4964b1[_0x9f0d('0x12')][_0x9f0d('0x13')]===0x1f4){logger[_0x9f0d('0x12')](_0x9f0d('0xe'),_0x2dbffe,_0x4964b1[_0x9f0d('0x12')]['message']);return _0x4bc2f5(_0x4964b1['error'][_0x9f0d('0x14')]);}logger[_0x9f0d('0x12')](_0x9f0d('0xe'),_0x2dbffe,_0x4964b1[_0x9f0d('0x12')][_0x9f0d('0x14')]);return _0x296c46(_0x4964b1[_0x9f0d('0x12')][_0x9f0d('0x14')]);}else{logger[_0x9f0d('0xd')](_0x9f0d('0xe'),_0x2dbffe,_0x9f0d('0x15'));_0x296c46(_0x4964b1[_0x9f0d('0x16')][_0x9f0d('0x14')]);}})[_0x9f0d('0x17')](function(_0x38eff2){logger['error'](_0x9f0d('0xe'),_0x2dbffe,_0x38eff2);_0x4bc2f5(_0x38eff2);});});}exports['GetDeskAccount']=function(_0x2ecd11){var _0x5ecb31=this;return new Promise(function(_0x3ca35f,_0x33fe99){return db[_0x9f0d('0x18')][_0x9f0d('0x19')]({'raw':_0x2ecd11['options']?_0x2ecd11[_0x9f0d('0x1a')][_0x9f0d('0x1b')]===undefined?!![]:![]:!![],'where':_0x2ecd11[_0x9f0d('0x1a')]?_0x2ecd11[_0x9f0d('0x1a')][_0x9f0d('0x1c')]||null:null,'attributes':_0x2ecd11['options']?_0x2ecd11[_0x9f0d('0x1a')]['attributes']||null:null,'limit':_0x2ecd11[_0x9f0d('0x1a')]?_0x2ecd11['options'][_0x9f0d('0x1d')]||null:null,'include':_0x2ecd11[_0x9f0d('0x1a')]?_0x2ecd11[_0x9f0d('0x1a')][_0x9f0d('0x1e')]?_[_0x9f0d('0x1f')](_0x2ecd11[_0x9f0d('0x1a')][_0x9f0d('0x1e')],function(_0x480419){return{'model':db[_0x480419[_0x9f0d('0x20')]],'as':_0x480419['as'],'attributes':_0x480419[_0x9f0d('0x21')],'include':_0x480419[_0x9f0d('0x1e')]?_[_0x9f0d('0x1f')](_0x480419[_0x9f0d('0x1e')],function(_0x75adad){return{'model':db[_0x75adad[_0x9f0d('0x20')]],'as':_0x75adad['as'],'attributes':_0x75adad[_0x9f0d('0x21')],'include':_0x75adad[_0x9f0d('0x1e')]?_[_0x9f0d('0x1f')](_0x75adad['include'],function(_0x3db3c8){return{'model':db[_0x3db3c8['model']],'as':_0x3db3c8['as'],'attributes':_0x3db3c8[_0x9f0d('0x21')]};}):[]};}):[]};}):[]:[]})[_0x9f0d('0xc')](function(_0x325ad5){logger[_0x9f0d('0xd')](_0x9f0d('0x22'),_0x2ecd11);logger[_0x9f0d('0xf')](_0x9f0d('0x22'),_0x2ecd11,JSON[_0x9f0d('0x11')](_0x325ad5));_0x3ca35f(_0x325ad5);})[_0x9f0d('0x17')](function(_0xcc37a){logger[_0x9f0d('0x12')](_0x9f0d('0x22'),_0xcc37a[_0x9f0d('0x14')],_0x2ecd11);_0x33fe99(_0x5ecb31['error'](0x1f4,_0xcc37a['message']));});});};exports[_0x9f0d('0x23')]=function(_0x24380b){var _0x5d8220=this;return new Promise(function(_0x13ac12,_0xf3868b){return db['DeskAccount'][_0x9f0d('0x24')]({'raw':_0x24380b[_0x9f0d('0x1a')]?_0x24380b['options'][_0x9f0d('0x1b')]===undefined?!![]:![]:!![],'where':_0x24380b[_0x9f0d('0x1a')]?_0x24380b[_0x9f0d('0x1a')]['where']||null:null,'attributes':_0x24380b['options']?_0x24380b[_0x9f0d('0x1a')][_0x9f0d('0x21')]||null:null,'include':_0x24380b[_0x9f0d('0x1a')]?_0x24380b['options'][_0x9f0d('0x1e')]?_['map'](_0x24380b[_0x9f0d('0x1a')][_0x9f0d('0x1e')],function(_0x3d8182){return{'model':db[_0x3d8182[_0x9f0d('0x20')]],'as':_0x3d8182['as'],'attributes':_0x3d8182['attributes'],'include':_0x3d8182[_0x9f0d('0x1e')]?_[_0x9f0d('0x1f')](_0x3d8182[_0x9f0d('0x1e')],function(_0x504585){return{'model':db[_0x504585[_0x9f0d('0x20')]],'as':_0x504585['as'],'attributes':_0x504585['attributes'],'include':_0x504585[_0x9f0d('0x1e')]?_['map'](_0x504585[_0x9f0d('0x1e')],function(_0x334cb4){return{'model':db[_0x334cb4['model']],'as':_0x334cb4['as'],'attributes':_0x334cb4[_0x9f0d('0x21')]};}):[]};}):[]};}):[]:[]})[_0x9f0d('0xc')](function(_0x2ab703){logger['info'](_0x9f0d('0x23'),_0x24380b);logger[_0x9f0d('0xf')]('ShowDeskAccount',_0x24380b,JSON[_0x9f0d('0x11')](_0x2ab703));_0x13ac12(_0x2ab703);})[_0x9f0d('0x17')](function(_0x2dbeb9){logger[_0x9f0d('0x12')](_0x9f0d('0x23'),_0x2dbeb9[_0x9f0d('0x14')],_0x24380b);_0xf3868b(_0x5d8220[_0x9f0d('0x12')](0x1f4,_0x2dbeb9[_0x9f0d('0x14')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x55ca=['../../config/environment','./intDeskConfiguration.controller','get','isAuthenticated','index','show','/:id/fields','/:id/subjects','getSubjects','/:id/descriptions','getDescriptions','/:id/tags','setTags','put','/:id','update','destroy','exports','multer','util','Router','fs-extra','../../components/interaction/service'];(function(_0x356127,_0x4873ac){var _0x5d4c75=function(_0x4fe60c){while(--_0x4fe60c){_0x356127['push'](_0x356127['shift']());}};_0x5d4c75(++_0x4873ac);}(_0x55ca,0x126));var _0xa55c=function(_0x2bbbc2,_0x2fd8b9){_0x2bbbc2=_0x2bbbc2-0x0;var _0x1f0319=_0x55ca[_0x2bbbc2];return _0x1f0319;};'use strict';var multer=require(_0xa55c('0x0'));var util=require(_0xa55c('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require('express');var router=express[_0xa55c('0x2')]();var fs_extra=require(_0xa55c('0x3'));var auth=require('../../components/auth/service');var interaction=require(_0xa55c('0x4'));var config=require(_0xa55c('0x5'));var controller=require(_0xa55c('0x6'));router[_0xa55c('0x7')]('/',auth[_0xa55c('0x8')](),controller[_0xa55c('0x9')]);router[_0xa55c('0x7')]('/:id',auth[_0xa55c('0x8')](),controller[_0xa55c('0xa')]);router['get'](_0xa55c('0xb'),auth[_0xa55c('0x8')](),controller['getFields']);router['get'](_0xa55c('0xc'),auth[_0xa55c('0x8')](),controller[_0xa55c('0xd')]);router[_0xa55c('0x7')](_0xa55c('0xe'),auth[_0xa55c('0x8')](),controller[_0xa55c('0xf')]);router[_0xa55c('0x7')](_0xa55c('0x10'),auth[_0xa55c('0x8')](),controller['getTags']);router['post']('/',auth[_0xa55c('0x8')](),controller['create']);router['post']('/:id/tags',auth[_0xa55c('0x8')](),controller[_0xa55c('0x11')]);router[_0xa55c('0x12')](_0xa55c('0x13'),auth[_0xa55c('0x8')](),controller[_0xa55c('0x14')]);router['delete'](_0xa55c('0x13'),auth[_0xa55c('0x8')](),controller[_0xa55c('0x15')]);module[_0xa55c('0x16')]=router;
\ No newline at end of file
+var _0x3e74=['show','/:id/fields','getFields','getSubjects','/:id/descriptions','getDescriptions','getTags','post','/:id/tags','setTags','update','delete','exports','multer','path','connect-timeout','express','../../components/auth/service','../../config/environment','./intDeskConfiguration.controller','get','isAuthenticated','index','/:id'];(function(_0xe00582,_0x167cdb){var _0x500d76=function(_0x524b1f){while(--_0x524b1f){_0xe00582['push'](_0xe00582['shift']());}};_0x500d76(++_0x167cdb);}(_0x3e74,0x175));var _0x43e7=function(_0x9d98f1,_0x4beda6){_0x9d98f1=_0x9d98f1-0x0;var _0x584af3=_0x3e74[_0x9d98f1];return _0x584af3;};'use strict';var multer=require(_0x43e7('0x0'));var util=require('util');var path=require(_0x43e7('0x1'));var timeout=require(_0x43e7('0x2'));var express=require(_0x43e7('0x3'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0x43e7('0x4'));var interaction=require('../../components/interaction/service');var config=require(_0x43e7('0x5'));var controller=require(_0x43e7('0x6'));router[_0x43e7('0x7')]('/',auth[_0x43e7('0x8')](),controller[_0x43e7('0x9')]);router['get'](_0x43e7('0xa'),auth[_0x43e7('0x8')](),controller[_0x43e7('0xb')]);router[_0x43e7('0x7')](_0x43e7('0xc'),auth['isAuthenticated'](),controller[_0x43e7('0xd')]);router['get']('/:id/subjects',auth[_0x43e7('0x8')](),controller[_0x43e7('0xe')]);router['get'](_0x43e7('0xf'),auth['isAuthenticated'](),controller[_0x43e7('0x10')]);router[_0x43e7('0x7')]('/:id/tags',auth[_0x43e7('0x8')](),controller[_0x43e7('0x11')]);router[_0x43e7('0x12')]('/',auth[_0x43e7('0x8')](),controller['create']);router['post'](_0x43e7('0x13'),auth[_0x43e7('0x8')](),controller[_0x43e7('0x14')]);router['put']('/:id',auth[_0x43e7('0x8')](),controller[_0x43e7('0x15')]);router[_0x43e7('0x16')](_0x43e7('0xa'),auth['isAuthenticated'](),controller['destroy']);module[_0x43e7('0x17')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x097e=['sequelize','exports','STRING'];(function(_0x43805e,_0x2170b2){var _0x4d091a=function(_0x52bd8e){while(--_0x52bd8e){_0x43805e['push'](_0x43805e['shift']());}};_0x4d091a(++_0x2170b2);}(_0x097e,0x108));var _0xe097=function(_0x4348a9,_0x196c75){_0x4348a9=_0x4348a9-0x0;var _0x516cc6=_0x097e[_0x4348a9];return _0x516cc6;};'use strict';var Sequelize=require(_0xe097('0x0'));module[_0xe097('0x1')]={'name':{'type':Sequelize[_0xe097('0x2')]},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0x261e=['exports','STRING','sequelize'];(function(_0x2e0b31,_0x155ff2){var _0x424fef=function(_0x219d27){while(--_0x219d27){_0x2e0b31['push'](_0x2e0b31['shift']());}};_0x424fef(++_0x155ff2);}(_0x261e,0x1ca));var _0xe261=function(_0x3cd431,_0x4cf65d){_0x3cd431=_0x3cd431-0x0;var _0x522f3c=_0x261e[_0x3cd431];return _0x522f3c;};'use strict';var Sequelize=require(_0xe261('0x0'));module[_0xe261('0x1')]={'name':{'type':Sequelize[_0xe261('0x2')]},'description':{'type':Sequelize[_0xe261('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x394e=['undefined','limit','count','Content-Range','apply','reject','save','update','destroy','sendStatus','error','name','send','index','map','DeskConfiguration','rawAttributes','key','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','then','include','rows','catch','params','keys','includeAll','find','body','getFields','DeskField','getSubjects','findOne','getDescriptions','getTags','setTags','ids','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset'];(function(_0x4c3244,_0xd2f7e4){var _0x395565=function(_0x5626ca){while(--_0x5626ca){_0x4c3244['push'](_0x4c3244['shift']());}};_0x395565(++_0xd2f7e4);}(_0x394e,0x88));var _0xe394=function(_0x3fd165,_0x5e2e2f){_0x3fd165=_0x3fd165-0x0;var _0x50f970=_0x394e[_0x3fd165];return _0x50f970;};'use strict';var emlformat=require(_0xe394('0x0'));var rimraf=require(_0xe394('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xe394('0x2'));var rp=require(_0xe394('0x3'));var moment=require(_0xe394('0x4'));var BPromise=require(_0xe394('0x5'));var Mustache=require('mustache');var util=require(_0xe394('0x6'));var path=require(_0xe394('0x7'));var sox=require(_0xe394('0x8'));var csv=require(_0xe394('0x9'));var ejs=require(_0xe394('0xa'));var fs=require('fs');var fs_extra=require(_0xe394('0xb'));var _=require(_0xe394('0xc'));var squel=require(_0xe394('0xd'));var crypto=require(_0xe394('0xe'));var jsforce=require(_0xe394('0xf'));var deskjs=require(_0xe394('0x10'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xe394('0x11'));var authService=require(_0xe394('0x12'));var qs=require(_0xe394('0x13'));var as=require(_0xe394('0x14'));var hardwareService=require(_0xe394('0x15'));var logger=require(_0xe394('0x16'))(_0xe394('0x17'));var utils=require(_0xe394('0x18'));var config=require(_0xe394('0x19'));var licenseUtil=require(_0xe394('0x1a'));var db=require(_0xe394('0x1b'))['db'];function respondWithStatusCode(_0x383e2c,_0x575a03){_0x575a03=_0x575a03||0xcc;return function(_0x5730b5){if(_0x5730b5){return _0x383e2c['sendStatus'](_0x575a03);}return _0x383e2c[_0xe394('0x1c')](_0x575a03)[_0xe394('0x1d')]();};}function respondWithResult(_0x4f1bf8,_0x996771){_0x996771=_0x996771||0xc8;return function(_0x61e157){if(_0x61e157){return _0x4f1bf8[_0xe394('0x1c')](_0x996771)[_0xe394('0x1e')](_0x61e157);}};}function respondWithFilteredResult(_0x1f4f71,_0x1c26db){return function(_0x56aafa){if(_0x56aafa){var _0x47afc4=typeof _0x1c26db[_0xe394('0x1f')]===_0xe394('0x20')&&typeof _0x1c26db[_0xe394('0x21')]===_0xe394('0x20');var _0x4a7a5b=_0x56aafa[_0xe394('0x22')];var _0x4b0d41=_0x47afc4?0x0:_0x1c26db[_0xe394('0x1f')];var _0x25c3b1=_0x47afc4?_0x56aafa[_0xe394('0x22')]:_0x1c26db['offset']+_0x1c26db[_0xe394('0x21')];var _0x28ab96;if(_0x25c3b1>=_0x4a7a5b){_0x25c3b1=_0x4a7a5b;_0x28ab96=0xc8;}else{_0x28ab96=0xce;}_0x1f4f71[_0xe394('0x1c')](_0x28ab96);return _0x1f4f71['set'](_0xe394('0x23'),_0x4b0d41+'-'+_0x25c3b1+'/'+_0x4a7a5b)[_0xe394('0x1e')](_0x56aafa);}return null;};}function patchUpdates(_0x1066a3){return function(_0x203a91){try{jsonpatch[_0xe394('0x24')](_0x203a91,_0x1066a3,!![]);}catch(_0x1a9004){return BPromise[_0xe394('0x25')](_0x1a9004);}return _0x203a91[_0xe394('0x26')]();};}function saveUpdates(_0x39ce6d,_0x36ef72){return function(_0x402fd5){if(_0x402fd5){return _0x402fd5[_0xe394('0x27')](_0x39ce6d)['then'](function(_0x133c8b){return _0x133c8b;});}return null;};}function removeEntity(_0x459bfe,_0x11c795){return function(_0x1b766c){if(_0x1b766c){return _0x1b766c[_0xe394('0x28')]()['then'](function(){_0x459bfe[_0xe394('0x1c')](0xcc)[_0xe394('0x1d')]();});}};}function handleEntityNotFound(_0x156f6b,_0x44c3e7){return function(_0x4ebf7d){if(!_0x4ebf7d){_0x156f6b[_0xe394('0x29')](0x194);}return _0x4ebf7d;};}function handleError(_0x446a53,_0x22597b){_0x22597b=_0x22597b||0x1f4;return function(_0xc6cb2d){logger[_0xe394('0x2a')](_0xc6cb2d['stack']);if(_0xc6cb2d[_0xe394('0x2b')]){delete _0xc6cb2d[_0xe394('0x2b')];}_0x446a53[_0xe394('0x1c')](_0x22597b)[_0xe394('0x2c')](_0xc6cb2d);};}exports[_0xe394('0x2d')]=function(_0x24146d,_0x3d7693){var _0xdd67a6={},_0x1abc74={},_0x50e2ff={'count':0x0,'rows':[]};var _0xab58d1=_[_0xe394('0x2e')](db[_0xe394('0x2f')][_0xe394('0x30')],function(_0xeca5ca){return{'name':_0xeca5ca['fieldName'],'type':_0xeca5ca['type'][_0xe394('0x31')]};});_0x1abc74[_0xe394('0x32')]=_[_0xe394('0x2e')](_0xab58d1,'name');_0x1abc74[_0xe394('0x33')]=_['keys'](_0x24146d['query']);_0x1abc74[_0xe394('0x34')]=_[_0xe394('0x35')](_0x1abc74[_0xe394('0x32')],_0x1abc74[_0xe394('0x33')]);_0xdd67a6[_0xe394('0x36')]=_[_0xe394('0x35')](_0x1abc74[_0xe394('0x32')],qs[_0xe394('0x37')](_0x24146d[_0xe394('0x33')][_0xe394('0x37')]));_0xdd67a6[_0xe394('0x36')]=_0xdd67a6['attributes'][_0xe394('0x38')]?_0xdd67a6[_0xe394('0x36')]:_0x1abc74[_0xe394('0x32')];if(!_0x24146d[_0xe394('0x33')][_0xe394('0x39')](_0xe394('0x3a'))){_0xdd67a6['limit']=qs['limit'](_0x24146d[_0xe394('0x33')][_0xe394('0x21')]);_0xdd67a6[_0xe394('0x1f')]=qs[_0xe394('0x1f')](_0x24146d[_0xe394('0x33')][_0xe394('0x1f')]);}_0xdd67a6[_0xe394('0x3b')]=qs[_0xe394('0x3c')](_0x24146d[_0xe394('0x33')][_0xe394('0x3c')]);_0xdd67a6[_0xe394('0x3d')]=qs[_0xe394('0x34')](_[_0xe394('0x3e')](_0x24146d[_0xe394('0x33')],_0x1abc74[_0xe394('0x34')]),_0xab58d1);if(_0x24146d['query'][_0xe394('0x3f')]){_0xdd67a6[_0xe394('0x3d')]=_[_0xe394('0x40')](_0xdd67a6[_0xe394('0x3d')],{'$or':_[_0xe394('0x2e')](_0xab58d1,function(_0x4b7152){if(_0x4b7152['type']!==_0xe394('0x41')){var _0x4ced1c={};_0x4ced1c[_0x4b7152[_0xe394('0x2b')]]={'$like':'%'+_0x24146d[_0xe394('0x33')][_0xe394('0x3f')]+'%'};return _0x4ced1c;}})});}_0xdd67a6=_['merge']({},_0xdd67a6,_0x24146d[_0xe394('0x42')]);var _0x5a13df={'where':_0xdd67a6['where']};return db[_0xe394('0x2f')][_0xe394('0x22')](_0x5a13df)[_0xe394('0x43')](function(_0x508649){_0x50e2ff[_0xe394('0x22')]=_0x508649;if(_0x24146d[_0xe394('0x33')]['includeAll']){_0xdd67a6[_0xe394('0x44')]=[{'all':!![]}];}return db[_0xe394('0x2f')]['findAll'](_0xdd67a6);})[_0xe394('0x43')](function(_0x3b5f69){_0x50e2ff[_0xe394('0x45')]=_0x3b5f69;return _0x50e2ff;})[_0xe394('0x43')](respondWithFilteredResult(_0x3d7693,_0xdd67a6))[_0xe394('0x46')](handleError(_0x3d7693,null));};exports['show']=function(_0x3b468f,_0xf1cd5f){var _0x5c5ceb={'raw':![],'where':{'id':_0x3b468f[_0xe394('0x47')]['id']}},_0x530dc6={};_0x530dc6[_0xe394('0x32')]=_[_0xe394('0x48')](db[_0xe394('0x2f')][_0xe394('0x30')]);_0x530dc6[_0xe394('0x33')]=_[_0xe394('0x48')](_0x3b468f[_0xe394('0x33')]);_0x530dc6[_0xe394('0x34')]=_[_0xe394('0x35')](_0x530dc6['model'],_0x530dc6[_0xe394('0x33')]);_0x5c5ceb[_0xe394('0x36')]=_[_0xe394('0x35')](_0x530dc6[_0xe394('0x32')],qs['fields'](_0x3b468f['query'][_0xe394('0x37')]));_0x5c5ceb[_0xe394('0x36')]=_0x5c5ceb['attributes'][_0xe394('0x38')]?_0x5c5ceb[_0xe394('0x36')]:_0x530dc6['model'];if(_0x3b468f[_0xe394('0x33')][_0xe394('0x49')]){_0x5c5ceb[_0xe394('0x44')]=[{'all':!![]}];}_0x5c5ceb=_[_0xe394('0x40')]({},_0x5c5ceb,_0x3b468f[_0xe394('0x42')]);return db[_0xe394('0x2f')][_0xe394('0x4a')](_0x5c5ceb)[_0xe394('0x43')](handleEntityNotFound(_0xf1cd5f,null))[_0xe394('0x43')](respondWithResult(_0xf1cd5f,null))['catch'](handleError(_0xf1cd5f,null));};exports['create']=function(_0x3064bf,_0x37adb1){return db[_0xe394('0x2f')]['create'](_0x3064bf[_0xe394('0x4b')],{})['then'](respondWithResult(_0x37adb1,0xc9))['catch'](handleError(_0x37adb1,null));};exports[_0xe394('0x27')]=function(_0x3a1974,_0x4a5550){if(_0x3a1974[_0xe394('0x4b')]['id']){delete _0x3a1974['body']['id'];}return db['DeskConfiguration']['find']({'where':{'id':_0x3a1974[_0xe394('0x47')]['id']}})[_0xe394('0x43')](handleEntityNotFound(_0x4a5550,null))['then'](saveUpdates(_0x3a1974[_0xe394('0x4b')],null))['then'](respondWithResult(_0x4a5550,null))[_0xe394('0x46')](handleError(_0x4a5550,null));};exports[_0xe394('0x28')]=function(_0x1023d2,_0x26e143){return db[_0xe394('0x2f')][_0xe394('0x4a')]({'where':{'id':_0x1023d2[_0xe394('0x47')]['id']}})[_0xe394('0x43')](handleEntityNotFound(_0x26e143,null))[_0xe394('0x43')](removeEntity(_0x26e143,null))[_0xe394('0x46')](handleError(_0x26e143,null));};exports[_0xe394('0x4c')]=function(_0x324bcd,_0x288702,_0x4016f4){var _0x5dd4df={};var _0x56cdd5={};var _0x8bacdf;var _0x41eaa4;return db[_0xe394('0x2f')]['findOne']({'where':{'id':_0x324bcd['params']['id']}})['then'](handleEntityNotFound(_0x288702,null))[_0xe394('0x43')](function(_0x4c5617){if(_0x4c5617){_0x8bacdf=_0x4c5617;_0x56cdd5[_0xe394('0x32')]=_['keys'](db[_0xe394('0x4d')][_0xe394('0x30')]);_0x56cdd5[_0xe394('0x33')]=_[_0xe394('0x48')](_0x324bcd[_0xe394('0x33')]);_0x56cdd5[_0xe394('0x34')]=_[_0xe394('0x35')](_0x56cdd5[_0xe394('0x32')],_0x56cdd5[_0xe394('0x33')]);_0x5dd4df[_0xe394('0x36')]=_[_0xe394('0x35')](_0x56cdd5[_0xe394('0x32')],qs['fields'](_0x324bcd[_0xe394('0x33')][_0xe394('0x37')]));_0x5dd4df[_0xe394('0x36')]=_0x5dd4df[_0xe394('0x36')]['length']?_0x5dd4df[_0xe394('0x36')]:_0x56cdd5[_0xe394('0x32')];_0x5dd4df[_0xe394('0x3b')]=qs['sort'](_0x324bcd[_0xe394('0x33')][_0xe394('0x3c')]);_0x5dd4df['where']=qs[_0xe394('0x34')](_[_0xe394('0x3e')](_0x324bcd[_0xe394('0x33')],_0x56cdd5[_0xe394('0x34')]));if(_0x324bcd[_0xe394('0x33')][_0xe394('0x3f')]){_0x5dd4df[_0xe394('0x3d')]=_[_0xe394('0x40')](_0x5dd4df[_0xe394('0x3d')],{'$or':_['map'](_0x5dd4df[_0xe394('0x36')],function(_0x8f289d){var _0x4ad65e={};_0x4ad65e[_0x8f289d]={'$like':'%'+_0x324bcd[_0xe394('0x33')]['filter']+'%'};return _0x4ad65e;})});}_0x5dd4df=_['merge']({},_0x5dd4df,_0x324bcd['options']);return _0x8bacdf[_0xe394('0x4c')](_0x5dd4df);}})['then'](function(_0x5a4c11){if(_0x5a4c11){_0x41eaa4=_0x5a4c11[_0xe394('0x38')];if(!_0x324bcd['query'][_0xe394('0x39')](_0xe394('0x3a'))){_0x5dd4df[_0xe394('0x21')]=qs['limit'](_0x324bcd[_0xe394('0x33')]['limit']);_0x5dd4df[_0xe394('0x1f')]=qs['offset'](_0x324bcd[_0xe394('0x33')][_0xe394('0x1f')]);}return _0x8bacdf[_0xe394('0x4c')](_0x5dd4df);}})[_0xe394('0x43')](function(_0x5f29aa){if(_0x5f29aa){return _0x5f29aa?{'count':_0x41eaa4,'rows':_0x5f29aa}:null;}})['then'](respondWithResult(_0x288702,null))['catch'](handleError(_0x288702,null));};exports[_0xe394('0x4e')]=function(_0xf18224,_0x2c2b97,_0x28c8e4){var _0x170668={};var _0x25cc8a={};var _0x2eccb8;var _0x2c64a9;return db['DeskConfiguration'][_0xe394('0x4f')]({'where':{'id':_0xf18224[_0xe394('0x47')]['id']}})[_0xe394('0x43')](handleEntityNotFound(_0x2c2b97,null))[_0xe394('0x43')](function(_0x5b6f84){if(_0x5b6f84){_0x2eccb8=_0x5b6f84;_0x25cc8a[_0xe394('0x32')]=_[_0xe394('0x48')](db[_0xe394('0x4d')]['rawAttributes']);_0x25cc8a['query']=_[_0xe394('0x48')](_0xf18224[_0xe394('0x33')]);_0x25cc8a[_0xe394('0x34')]=_[_0xe394('0x35')](_0x25cc8a[_0xe394('0x32')],_0x25cc8a['query']);_0x170668[_0xe394('0x36')]=_['intersection'](_0x25cc8a[_0xe394('0x32')],qs[_0xe394('0x37')](_0xf18224[_0xe394('0x33')]['fields']));_0x170668[_0xe394('0x36')]=_0x170668[_0xe394('0x36')][_0xe394('0x38')]?_0x170668[_0xe394('0x36')]:_0x25cc8a[_0xe394('0x32')];_0x170668['order']=qs['sort'](_0xf18224[_0xe394('0x33')][_0xe394('0x3c')]);_0x170668['where']=qs[_0xe394('0x34')](_[_0xe394('0x3e')](_0xf18224['query'],_0x25cc8a[_0xe394('0x34')]));if(_0xf18224[_0xe394('0x33')][_0xe394('0x3f')]){_0x170668[_0xe394('0x3d')]=_['merge'](_0x170668[_0xe394('0x3d')],{'$or':_[_0xe394('0x2e')](_0x170668[_0xe394('0x36')],function(_0x543c1e){var _0x10c33b={};_0x10c33b[_0x543c1e]={'$like':'%'+_0xf18224[_0xe394('0x33')]['filter']+'%'};return _0x10c33b;})});}_0x170668=_[_0xe394('0x40')]({},_0x170668,_0xf18224[_0xe394('0x42')]);return _0x2eccb8[_0xe394('0x4e')](_0x170668);}})[_0xe394('0x43')](function(_0x324ce2){if(_0x324ce2){_0x2c64a9=_0x324ce2[_0xe394('0x38')];if(!_0xf18224[_0xe394('0x33')][_0xe394('0x39')](_0xe394('0x3a'))){_0x170668[_0xe394('0x21')]=qs[_0xe394('0x21')](_0xf18224[_0xe394('0x33')][_0xe394('0x21')]);_0x170668[_0xe394('0x1f')]=qs[_0xe394('0x1f')](_0xf18224[_0xe394('0x33')][_0xe394('0x1f')]);}return _0x2eccb8['getSubjects'](_0x170668);}})[_0xe394('0x43')](function(_0x4dc01f){if(_0x4dc01f){return _0x4dc01f?{'count':_0x2c64a9,'rows':_0x4dc01f}:null;}})['then'](respondWithResult(_0x2c2b97,null))[_0xe394('0x46')](handleError(_0x2c2b97,null));};exports[_0xe394('0x50')]=function(_0x13e1c6,_0x4b275f,_0x2ef874){var _0x2393c3={};var _0x3c4cef={};var _0x11ab86;var _0x3203ec;return db[_0xe394('0x2f')]['findOne']({'where':{'id':_0x13e1c6[_0xe394('0x47')]['id']}})[_0xe394('0x43')](handleEntityNotFound(_0x4b275f,null))[_0xe394('0x43')](function(_0x4c75c5){if(_0x4c75c5){_0x11ab86=_0x4c75c5;_0x3c4cef[_0xe394('0x32')]=_[_0xe394('0x48')](db[_0xe394('0x4d')][_0xe394('0x30')]);_0x3c4cef[_0xe394('0x33')]=_[_0xe394('0x48')](_0x13e1c6['query']);_0x3c4cef['filters']=_[_0xe394('0x35')](_0x3c4cef['model'],_0x3c4cef[_0xe394('0x33')]);_0x2393c3[_0xe394('0x36')]=_['intersection'](_0x3c4cef[_0xe394('0x32')],qs[_0xe394('0x37')](_0x13e1c6[_0xe394('0x33')][_0xe394('0x37')]));_0x2393c3['attributes']=_0x2393c3[_0xe394('0x36')][_0xe394('0x38')]?_0x2393c3[_0xe394('0x36')]:_0x3c4cef['model'];_0x2393c3[_0xe394('0x3b')]=qs['sort'](_0x13e1c6['query'][_0xe394('0x3c')]);_0x2393c3[_0xe394('0x3d')]=qs[_0xe394('0x34')](_[_0xe394('0x3e')](_0x13e1c6[_0xe394('0x33')],_0x3c4cef['filters']));if(_0x13e1c6[_0xe394('0x33')][_0xe394('0x3f')]){_0x2393c3['where']=_[_0xe394('0x40')](_0x2393c3[_0xe394('0x3d')],{'$or':_[_0xe394('0x2e')](_0x2393c3['attributes'],function(_0x1fc8c3){var _0x420ef4={};_0x420ef4[_0x1fc8c3]={'$like':'%'+_0x13e1c6[_0xe394('0x33')]['filter']+'%'};return _0x420ef4;})});}_0x2393c3=_[_0xe394('0x40')]({},_0x2393c3,_0x13e1c6[_0xe394('0x42')]);return _0x11ab86[_0xe394('0x50')](_0x2393c3);}})[_0xe394('0x43')](function(_0x1f1b5f){if(_0x1f1b5f){_0x3203ec=_0x1f1b5f[_0xe394('0x38')];if(!_0x13e1c6[_0xe394('0x33')][_0xe394('0x39')]('nolimit')){_0x2393c3['limit']=qs[_0xe394('0x21')](_0x13e1c6['query'][_0xe394('0x21')]);_0x2393c3[_0xe394('0x1f')]=qs[_0xe394('0x1f')](_0x13e1c6[_0xe394('0x33')][_0xe394('0x1f')]);}return _0x11ab86[_0xe394('0x50')](_0x2393c3);}})[_0xe394('0x43')](function(_0x20d4bd){if(_0x20d4bd){return _0x20d4bd?{'count':_0x3203ec,'rows':_0x20d4bd}:null;}})[_0xe394('0x43')](respondWithResult(_0x4b275f,null))[_0xe394('0x46')](handleError(_0x4b275f,null));};exports[_0xe394('0x51')]=function(_0x25d5ad,_0x4b9f84,_0x52c9b1){var _0x50225c={};var _0x5c161e={};var _0x2c408b;var _0x5b0f13;return db[_0xe394('0x2f')]['findOne']({'where':{'id':_0x25d5ad['params']['id']}})[_0xe394('0x43')](handleEntityNotFound(_0x4b9f84,null))[_0xe394('0x43')](function(_0x3a629a){if(_0x3a629a){_0x2c408b=_0x3a629a;_0x5c161e['model']=_['keys'](db['Tag'][_0xe394('0x30')]);_0x5c161e[_0xe394('0x33')]=_[_0xe394('0x48')](_0x25d5ad[_0xe394('0x33')]);_0x5c161e[_0xe394('0x34')]=_[_0xe394('0x35')](_0x5c161e['model'],_0x5c161e[_0xe394('0x33')]);_0x50225c[_0xe394('0x36')]=_['intersection'](_0x5c161e['model'],qs[_0xe394('0x37')](_0x25d5ad['query'][_0xe394('0x37')]));_0x50225c['attributes']=_0x50225c[_0xe394('0x36')][_0xe394('0x38')]?_0x50225c['attributes']:_0x5c161e[_0xe394('0x32')];_0x50225c[_0xe394('0x3b')]=qs[_0xe394('0x3c')](_0x25d5ad[_0xe394('0x33')]['sort']);_0x50225c[_0xe394('0x3d')]=qs['filters'](_[_0xe394('0x3e')](_0x25d5ad[_0xe394('0x33')],_0x5c161e[_0xe394('0x34')]));if(_0x25d5ad['query'][_0xe394('0x3f')]){_0x50225c['where']=_[_0xe394('0x40')](_0x50225c[_0xe394('0x3d')],{'$or':_[_0xe394('0x2e')](_0x50225c['attributes'],function(_0x427063){var _0xa67001={};_0xa67001[_0x427063]={'$like':'%'+_0x25d5ad[_0xe394('0x33')][_0xe394('0x3f')]+'%'};return _0xa67001;})});}_0x50225c=_[_0xe394('0x40')]({},_0x50225c,_0x25d5ad[_0xe394('0x42')]);return _0x2c408b[_0xe394('0x51')](_0x50225c);}})[_0xe394('0x43')](function(_0xeb6650){if(_0xeb6650){_0x5b0f13=_0xeb6650[_0xe394('0x38')];if(!_0x25d5ad[_0xe394('0x33')][_0xe394('0x39')]('nolimit')){_0x50225c['limit']=qs[_0xe394('0x21')](_0x25d5ad[_0xe394('0x33')]['limit']);_0x50225c[_0xe394('0x1f')]=qs['offset'](_0x25d5ad[_0xe394('0x33')][_0xe394('0x1f')]);}return _0x2c408b[_0xe394('0x51')](_0x50225c);}})[_0xe394('0x43')](function(_0x12f241){if(_0x12f241){return _0x12f241?{'count':_0x5b0f13,'rows':_0x12f241}:null;}})['then'](respondWithResult(_0x4b9f84,null))[_0xe394('0x46')](handleError(_0x4b9f84,null));};exports['setTags']=function(_0xe8a880,_0x3e52ca,_0x50dea7){if(_0xe8a880[_0xe394('0x4b')]['id']){delete _0xe8a880[_0xe394('0x4b')]['id'];}return db['DeskConfiguration'][_0xe394('0x4f')]({'where':{'id':_0xe8a880[_0xe394('0x47')]['id']}})[_0xe394('0x43')](handleEntityNotFound(_0x3e52ca,null))[_0xe394('0x43')](function(_0x5d8a98){if(_0x5d8a98){return _0x5d8a98[_0xe394('0x52')](_0xe8a880[_0xe394('0x4b')][_0xe394('0x53')]||[]);}return null;})['then'](respondWithResult(_0x3e52ca,null))[_0xe394('0x46')](handleError(_0x3e52ca,null));};
\ No newline at end of file
+var _0x5b90=['update','getFields','findOne','DeskField','getSubjects','getDescriptions','getTags','setTags','eml-format','rimraf','zip-dir','request-promise','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','squel','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','undefined','limit','count','offset','set','Content-Range','apply','save','then','destroy','error','name','send','map','DeskConfiguration','fieldName','type','key','model','query','keys','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','merge','VIRTUAL','options','includeAll','include','rows','catch','show','params','rawAttributes','find','create','body'];(function(_0x3de8a4,_0x289a5c){var _0x4635cf=function(_0x2bddb8){while(--_0x2bddb8){_0x3de8a4['push'](_0x3de8a4['shift']());}};_0x4635cf(++_0x289a5c);}(_0x5b90,0x19d));var _0x05b9=function(_0x29215d,_0x39143f){_0x29215d=_0x29215d-0x0;var _0x265037=_0x5b90[_0x29215d];return _0x265037;};'use strict';var emlformat=require(_0x05b9('0x0'));var rimraf=require(_0x05b9('0x1'));var zipdir=require(_0x05b9('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x05b9('0x3'));var moment=require('moment');var BPromise=require(_0x05b9('0x4'));var Mustache=require(_0x05b9('0x5'));var util=require(_0x05b9('0x6'));var path=require('path');var sox=require(_0x05b9('0x7'));var csv=require(_0x05b9('0x8'));var ejs=require(_0x05b9('0x9'));var fs=require('fs');var fs_extra=require(_0x05b9('0xa'));var _=require('lodash');var squel=require(_0x05b9('0xb'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x05b9('0xc'));var Papa=require(_0x05b9('0xd'));var Redis=require(_0x05b9('0xe'));var authService=require('../../components/auth/service');var qs=require(_0x05b9('0xf'));var as=require(_0x05b9('0x10'));var hardwareService=require(_0x05b9('0x11'));var logger=require('../../config/logger')(_0x05b9('0x12'));var utils=require(_0x05b9('0x13'));var config=require(_0x05b9('0x14'));var licenseUtil=require(_0x05b9('0x15'));var db=require(_0x05b9('0x16'))['db'];function respondWithStatusCode(_0x2bcbe6,_0x5e6c88){_0x5e6c88=_0x5e6c88||0xcc;return function(_0x3b8eb9){if(_0x3b8eb9){return _0x2bcbe6[_0x05b9('0x17')](_0x5e6c88);}return _0x2bcbe6['status'](_0x5e6c88)[_0x05b9('0x18')]();};}function respondWithResult(_0x1474b7,_0x51fda3){_0x51fda3=_0x51fda3||0xc8;return function(_0x59be2f){if(_0x59be2f){return _0x1474b7[_0x05b9('0x19')](_0x51fda3)[_0x05b9('0x1a')](_0x59be2f);}};}function respondWithFilteredResult(_0x5f4587,_0x2eb8bc){return function(_0x52f50e){if(_0x52f50e){var _0x13888f=typeof _0x2eb8bc['offset']===_0x05b9('0x1b')&&typeof _0x2eb8bc[_0x05b9('0x1c')]===_0x05b9('0x1b');var _0x5a8ec1=_0x52f50e[_0x05b9('0x1d')];var _0x51c823=_0x13888f?0x0:_0x2eb8bc[_0x05b9('0x1e')];var _0x3ed59d=_0x13888f?_0x52f50e[_0x05b9('0x1d')]:_0x2eb8bc[_0x05b9('0x1e')]+_0x2eb8bc[_0x05b9('0x1c')];var _0x4e85ae;if(_0x3ed59d>=_0x5a8ec1){_0x3ed59d=_0x5a8ec1;_0x4e85ae=0xc8;}else{_0x4e85ae=0xce;}_0x5f4587[_0x05b9('0x19')](_0x4e85ae);return _0x5f4587[_0x05b9('0x1f')](_0x05b9('0x20'),_0x51c823+'-'+_0x3ed59d+'/'+_0x5a8ec1)[_0x05b9('0x1a')](_0x52f50e);}return null;};}function patchUpdates(_0x5319c9){return function(_0x543cc5){try{jsonpatch[_0x05b9('0x21')](_0x543cc5,_0x5319c9,!![]);}catch(_0x53c623){return BPromise['reject'](_0x53c623);}return _0x543cc5[_0x05b9('0x22')]();};}function saveUpdates(_0x169057,_0xcdef42){return function(_0x2c6189){if(_0x2c6189){return _0x2c6189['update'](_0x169057)[_0x05b9('0x23')](function(_0x4e36e5){return _0x4e36e5;});}return null;};}function removeEntity(_0x15319,_0x386b0f){return function(_0x5b3133){if(_0x5b3133){return _0x5b3133[_0x05b9('0x24')]()[_0x05b9('0x23')](function(){_0x15319[_0x05b9('0x19')](0xcc)[_0x05b9('0x18')]();});}};}function handleEntityNotFound(_0x3d058f,_0x1ff9f7){return function(_0x5166d8){if(!_0x5166d8){_0x3d058f[_0x05b9('0x17')](0x194);}return _0x5166d8;};}function handleError(_0x13277b,_0x29def4){_0x29def4=_0x29def4||0x1f4;return function(_0x12862b){logger[_0x05b9('0x25')](_0x12862b['stack']);if(_0x12862b[_0x05b9('0x26')]){delete _0x12862b[_0x05b9('0x26')];}_0x13277b[_0x05b9('0x19')](_0x29def4)[_0x05b9('0x27')](_0x12862b);};}exports['index']=function(_0x590ac1,_0x48e23a){var _0x4c089a={},_0x3aa1b4={},_0x553f2d={'count':0x0,'rows':[]};var _0x5f08f3=_[_0x05b9('0x28')](db[_0x05b9('0x29')]['rawAttributes'],function(_0x95edcf){return{'name':_0x95edcf[_0x05b9('0x2a')],'type':_0x95edcf[_0x05b9('0x2b')][_0x05b9('0x2c')]};});_0x3aa1b4[_0x05b9('0x2d')]=_[_0x05b9('0x28')](_0x5f08f3,'name');_0x3aa1b4[_0x05b9('0x2e')]=_[_0x05b9('0x2f')](_0x590ac1[_0x05b9('0x2e')]);_0x3aa1b4['filters']=_[_0x05b9('0x30')](_0x3aa1b4[_0x05b9('0x2d')],_0x3aa1b4['query']);_0x4c089a['attributes']=_[_0x05b9('0x30')](_0x3aa1b4[_0x05b9('0x2d')],qs[_0x05b9('0x31')](_0x590ac1[_0x05b9('0x2e')]['fields']));_0x4c089a['attributes']=_0x4c089a[_0x05b9('0x32')][_0x05b9('0x33')]?_0x4c089a[_0x05b9('0x32')]:_0x3aa1b4[_0x05b9('0x2d')];if(!_0x590ac1[_0x05b9('0x2e')][_0x05b9('0x34')](_0x05b9('0x35'))){_0x4c089a[_0x05b9('0x1c')]=qs['limit'](_0x590ac1['query'][_0x05b9('0x1c')]);_0x4c089a[_0x05b9('0x1e')]=qs[_0x05b9('0x1e')](_0x590ac1[_0x05b9('0x2e')]['offset']);}_0x4c089a[_0x05b9('0x36')]=qs[_0x05b9('0x37')](_0x590ac1[_0x05b9('0x2e')][_0x05b9('0x37')]);_0x4c089a[_0x05b9('0x38')]=qs[_0x05b9('0x39')](_[_0x05b9('0x3a')](_0x590ac1['query'],_0x3aa1b4[_0x05b9('0x39')]),_0x5f08f3);if(_0x590ac1['query'][_0x05b9('0x3b')]){_0x4c089a[_0x05b9('0x38')]=_[_0x05b9('0x3c')](_0x4c089a[_0x05b9('0x38')],{'$or':_['map'](_0x5f08f3,function(_0x1957ac){if(_0x1957ac[_0x05b9('0x2b')]!==_0x05b9('0x3d')){var _0x4911fa={};_0x4911fa[_0x1957ac['name']]={'$like':'%'+_0x590ac1['query']['filter']+'%'};return _0x4911fa;}})});}_0x4c089a=_['merge']({},_0x4c089a,_0x590ac1[_0x05b9('0x3e')]);var _0xf3655b={'where':_0x4c089a[_0x05b9('0x38')]};return db['DeskConfiguration']['count'](_0xf3655b)[_0x05b9('0x23')](function(_0x43a5ce){_0x553f2d[_0x05b9('0x1d')]=_0x43a5ce;if(_0x590ac1[_0x05b9('0x2e')][_0x05b9('0x3f')]){_0x4c089a[_0x05b9('0x40')]=[{'all':!![]}];}return db[_0x05b9('0x29')]['findAll'](_0x4c089a);})[_0x05b9('0x23')](function(_0x2e94d4){_0x553f2d[_0x05b9('0x41')]=_0x2e94d4;return _0x553f2d;})[_0x05b9('0x23')](respondWithFilteredResult(_0x48e23a,_0x4c089a))[_0x05b9('0x42')](handleError(_0x48e23a,null));};exports[_0x05b9('0x43')]=function(_0x2076c6,_0x12164f){var _0x2ab79a={'raw':![],'where':{'id':_0x2076c6[_0x05b9('0x44')]['id']}},_0x53a869={};_0x53a869[_0x05b9('0x2d')]=_[_0x05b9('0x2f')](db[_0x05b9('0x29')][_0x05b9('0x45')]);_0x53a869[_0x05b9('0x2e')]=_[_0x05b9('0x2f')](_0x2076c6[_0x05b9('0x2e')]);_0x53a869[_0x05b9('0x39')]=_[_0x05b9('0x30')](_0x53a869[_0x05b9('0x2d')],_0x53a869[_0x05b9('0x2e')]);_0x2ab79a[_0x05b9('0x32')]=_[_0x05b9('0x30')](_0x53a869[_0x05b9('0x2d')],qs[_0x05b9('0x31')](_0x2076c6[_0x05b9('0x2e')][_0x05b9('0x31')]));_0x2ab79a[_0x05b9('0x32')]=_0x2ab79a[_0x05b9('0x32')][_0x05b9('0x33')]?_0x2ab79a[_0x05b9('0x32')]:_0x53a869[_0x05b9('0x2d')];if(_0x2076c6[_0x05b9('0x2e')][_0x05b9('0x3f')]){_0x2ab79a[_0x05b9('0x40')]=[{'all':!![]}];}_0x2ab79a=_[_0x05b9('0x3c')]({},_0x2ab79a,_0x2076c6[_0x05b9('0x3e')]);return db['DeskConfiguration'][_0x05b9('0x46')](_0x2ab79a)[_0x05b9('0x23')](handleEntityNotFound(_0x12164f,null))[_0x05b9('0x23')](respondWithResult(_0x12164f,null))[_0x05b9('0x42')](handleError(_0x12164f,null));};exports[_0x05b9('0x47')]=function(_0x589316,_0x4c9f9b){return db[_0x05b9('0x29')]['create'](_0x589316[_0x05b9('0x48')],{})[_0x05b9('0x23')](respondWithResult(_0x4c9f9b,0xc9))[_0x05b9('0x42')](handleError(_0x4c9f9b,null));};exports[_0x05b9('0x49')]=function(_0xf6dbb5,_0x22ef88){if(_0xf6dbb5[_0x05b9('0x48')]['id']){delete _0xf6dbb5[_0x05b9('0x48')]['id'];}return db[_0x05b9('0x29')][_0x05b9('0x46')]({'where':{'id':_0xf6dbb5['params']['id']}})[_0x05b9('0x23')](handleEntityNotFound(_0x22ef88,null))[_0x05b9('0x23')](saveUpdates(_0xf6dbb5[_0x05b9('0x48')],null))[_0x05b9('0x23')](respondWithResult(_0x22ef88,null))[_0x05b9('0x42')](handleError(_0x22ef88,null));};exports[_0x05b9('0x24')]=function(_0x389748,_0x4ea6d9){return db[_0x05b9('0x29')][_0x05b9('0x46')]({'where':{'id':_0x389748[_0x05b9('0x44')]['id']}})[_0x05b9('0x23')](handleEntityNotFound(_0x4ea6d9,null))[_0x05b9('0x23')](removeEntity(_0x4ea6d9,null))['catch'](handleError(_0x4ea6d9,null));};exports['getFields']=function(_0x3ebb2d,_0x3cac8f,_0x5b1cd7){var _0x1516eb={};var _0x29dae6={};var _0x46d66f;var _0x347576;return db['DeskConfiguration']['findOne']({'where':{'id':_0x3ebb2d[_0x05b9('0x44')]['id']}})[_0x05b9('0x23')](handleEntityNotFound(_0x3cac8f,null))[_0x05b9('0x23')](function(_0x30a574){if(_0x30a574){_0x46d66f=_0x30a574;_0x29dae6[_0x05b9('0x2d')]=_[_0x05b9('0x2f')](db['DeskField'][_0x05b9('0x45')]);_0x29dae6[_0x05b9('0x2e')]=_[_0x05b9('0x2f')](_0x3ebb2d[_0x05b9('0x2e')]);_0x29dae6[_0x05b9('0x39')]=_['intersection'](_0x29dae6[_0x05b9('0x2d')],_0x29dae6['query']);_0x1516eb[_0x05b9('0x32')]=_[_0x05b9('0x30')](_0x29dae6[_0x05b9('0x2d')],qs[_0x05b9('0x31')](_0x3ebb2d[_0x05b9('0x2e')][_0x05b9('0x31')]));_0x1516eb[_0x05b9('0x32')]=_0x1516eb[_0x05b9('0x32')][_0x05b9('0x33')]?_0x1516eb[_0x05b9('0x32')]:_0x29dae6[_0x05b9('0x2d')];_0x1516eb[_0x05b9('0x36')]=qs[_0x05b9('0x37')](_0x3ebb2d[_0x05b9('0x2e')][_0x05b9('0x37')]);_0x1516eb[_0x05b9('0x38')]=qs[_0x05b9('0x39')](_[_0x05b9('0x3a')](_0x3ebb2d['query'],_0x29dae6['filters']));if(_0x3ebb2d[_0x05b9('0x2e')][_0x05b9('0x3b')]){_0x1516eb['where']=_[_0x05b9('0x3c')](_0x1516eb[_0x05b9('0x38')],{'$or':_[_0x05b9('0x28')](_0x1516eb[_0x05b9('0x32')],function(_0x52d2d0){var _0x4e9950={};_0x4e9950[_0x52d2d0]={'$like':'%'+_0x3ebb2d[_0x05b9('0x2e')][_0x05b9('0x3b')]+'%'};return _0x4e9950;})});}_0x1516eb=_['merge']({},_0x1516eb,_0x3ebb2d[_0x05b9('0x3e')]);return _0x46d66f[_0x05b9('0x4a')](_0x1516eb);}})[_0x05b9('0x23')](function(_0x290e88){if(_0x290e88){_0x347576=_0x290e88['length'];if(!_0x3ebb2d['query'][_0x05b9('0x34')](_0x05b9('0x35'))){_0x1516eb[_0x05b9('0x1c')]=qs[_0x05b9('0x1c')](_0x3ebb2d[_0x05b9('0x2e')][_0x05b9('0x1c')]);_0x1516eb[_0x05b9('0x1e')]=qs[_0x05b9('0x1e')](_0x3ebb2d[_0x05b9('0x2e')][_0x05b9('0x1e')]);}return _0x46d66f['getFields'](_0x1516eb);}})[_0x05b9('0x23')](function(_0x572081){if(_0x572081){return _0x572081?{'count':_0x347576,'rows':_0x572081}:null;}})[_0x05b9('0x23')](respondWithResult(_0x3cac8f,null))[_0x05b9('0x42')](handleError(_0x3cac8f,null));};exports['getSubjects']=function(_0x3b106a,_0x25cbd8,_0x35b2da){var _0x5ef590={};var _0x29b036={};var _0x46e55d;var _0x28206e;return db['DeskConfiguration'][_0x05b9('0x4b')]({'where':{'id':_0x3b106a['params']['id']}})['then'](handleEntityNotFound(_0x25cbd8,null))[_0x05b9('0x23')](function(_0x32a8cf){if(_0x32a8cf){_0x46e55d=_0x32a8cf;_0x29b036['model']=_[_0x05b9('0x2f')](db[_0x05b9('0x4c')]['rawAttributes']);_0x29b036[_0x05b9('0x2e')]=_[_0x05b9('0x2f')](_0x3b106a[_0x05b9('0x2e')]);_0x29b036[_0x05b9('0x39')]=_[_0x05b9('0x30')](_0x29b036[_0x05b9('0x2d')],_0x29b036[_0x05b9('0x2e')]);_0x5ef590[_0x05b9('0x32')]=_['intersection'](_0x29b036[_0x05b9('0x2d')],qs[_0x05b9('0x31')](_0x3b106a[_0x05b9('0x2e')][_0x05b9('0x31')]));_0x5ef590[_0x05b9('0x32')]=_0x5ef590[_0x05b9('0x32')][_0x05b9('0x33')]?_0x5ef590[_0x05b9('0x32')]:_0x29b036['model'];_0x5ef590['order']=qs['sort'](_0x3b106a['query'][_0x05b9('0x37')]);_0x5ef590[_0x05b9('0x38')]=qs[_0x05b9('0x39')](_[_0x05b9('0x3a')](_0x3b106a['query'],_0x29b036[_0x05b9('0x39')]));if(_0x3b106a[_0x05b9('0x2e')][_0x05b9('0x3b')]){_0x5ef590['where']=_['merge'](_0x5ef590['where'],{'$or':_[_0x05b9('0x28')](_0x5ef590['attributes'],function(_0x60687d){var _0xed10ee={};_0xed10ee[_0x60687d]={'$like':'%'+_0x3b106a[_0x05b9('0x2e')][_0x05b9('0x3b')]+'%'};return _0xed10ee;})});}_0x5ef590=_[_0x05b9('0x3c')]({},_0x5ef590,_0x3b106a['options']);return _0x46e55d['getSubjects'](_0x5ef590);}})['then'](function(_0x1104c6){if(_0x1104c6){_0x28206e=_0x1104c6[_0x05b9('0x33')];if(!_0x3b106a[_0x05b9('0x2e')]['hasOwnProperty'](_0x05b9('0x35'))){_0x5ef590[_0x05b9('0x1c')]=qs[_0x05b9('0x1c')](_0x3b106a[_0x05b9('0x2e')]['limit']);_0x5ef590['offset']=qs[_0x05b9('0x1e')](_0x3b106a[_0x05b9('0x2e')][_0x05b9('0x1e')]);}return _0x46e55d[_0x05b9('0x4d')](_0x5ef590);}})[_0x05b9('0x23')](function(_0x265856){if(_0x265856){return _0x265856?{'count':_0x28206e,'rows':_0x265856}:null;}})[_0x05b9('0x23')](respondWithResult(_0x25cbd8,null))[_0x05b9('0x42')](handleError(_0x25cbd8,null));};exports[_0x05b9('0x4e')]=function(_0x445bdf,_0x279ed8,_0x4d2569){var _0x591d2b={};var _0x7985df={};var _0x201110;var _0xe29fda;return db[_0x05b9('0x29')]['findOne']({'where':{'id':_0x445bdf[_0x05b9('0x44')]['id']}})[_0x05b9('0x23')](handleEntityNotFound(_0x279ed8,null))['then'](function(_0x1cb6b8){if(_0x1cb6b8){_0x201110=_0x1cb6b8;_0x7985df[_0x05b9('0x2d')]=_[_0x05b9('0x2f')](db['DeskField']['rawAttributes']);_0x7985df[_0x05b9('0x2e')]=_[_0x05b9('0x2f')](_0x445bdf[_0x05b9('0x2e')]);_0x7985df[_0x05b9('0x39')]=_[_0x05b9('0x30')](_0x7985df[_0x05b9('0x2d')],_0x7985df[_0x05b9('0x2e')]);_0x591d2b['attributes']=_['intersection'](_0x7985df['model'],qs['fields'](_0x445bdf[_0x05b9('0x2e')][_0x05b9('0x31')]));_0x591d2b[_0x05b9('0x32')]=_0x591d2b['attributes']['length']?_0x591d2b['attributes']:_0x7985df[_0x05b9('0x2d')];_0x591d2b[_0x05b9('0x36')]=qs[_0x05b9('0x37')](_0x445bdf[_0x05b9('0x2e')][_0x05b9('0x37')]);_0x591d2b[_0x05b9('0x38')]=qs[_0x05b9('0x39')](_['pick'](_0x445bdf[_0x05b9('0x2e')],_0x7985df[_0x05b9('0x39')]));if(_0x445bdf[_0x05b9('0x2e')][_0x05b9('0x3b')]){_0x591d2b[_0x05b9('0x38')]=_[_0x05b9('0x3c')](_0x591d2b[_0x05b9('0x38')],{'$or':_[_0x05b9('0x28')](_0x591d2b['attributes'],function(_0x1691a0){var _0x554d84={};_0x554d84[_0x1691a0]={'$like':'%'+_0x445bdf[_0x05b9('0x2e')]['filter']+'%'};return _0x554d84;})});}_0x591d2b=_[_0x05b9('0x3c')]({},_0x591d2b,_0x445bdf['options']);return _0x201110[_0x05b9('0x4e')](_0x591d2b);}})['then'](function(_0x3701f6){if(_0x3701f6){_0xe29fda=_0x3701f6[_0x05b9('0x33')];if(!_0x445bdf[_0x05b9('0x2e')][_0x05b9('0x34')](_0x05b9('0x35'))){_0x591d2b['limit']=qs[_0x05b9('0x1c')](_0x445bdf['query']['limit']);_0x591d2b['offset']=qs['offset'](_0x445bdf[_0x05b9('0x2e')][_0x05b9('0x1e')]);}return _0x201110[_0x05b9('0x4e')](_0x591d2b);}})['then'](function(_0x4e9944){if(_0x4e9944){return _0x4e9944?{'count':_0xe29fda,'rows':_0x4e9944}:null;}})[_0x05b9('0x23')](respondWithResult(_0x279ed8,null))[_0x05b9('0x42')](handleError(_0x279ed8,null));};exports[_0x05b9('0x4f')]=function(_0x250aae,_0x3b6b8e,_0x564656){var _0x10a7d8={};var _0x44d65d={};var _0x1c6806;var _0x48b379;return db[_0x05b9('0x29')][_0x05b9('0x4b')]({'where':{'id':_0x250aae[_0x05b9('0x44')]['id']}})[_0x05b9('0x23')](handleEntityNotFound(_0x3b6b8e,null))[_0x05b9('0x23')](function(_0x49a297){if(_0x49a297){_0x1c6806=_0x49a297;_0x44d65d['model']=_['keys'](db['Tag']['rawAttributes']);_0x44d65d[_0x05b9('0x2e')]=_['keys'](_0x250aae['query']);_0x44d65d[_0x05b9('0x39')]=_[_0x05b9('0x30')](_0x44d65d[_0x05b9('0x2d')],_0x44d65d[_0x05b9('0x2e')]);_0x10a7d8['attributes']=_[_0x05b9('0x30')](_0x44d65d[_0x05b9('0x2d')],qs['fields'](_0x250aae[_0x05b9('0x2e')][_0x05b9('0x31')]));_0x10a7d8['attributes']=_0x10a7d8[_0x05b9('0x32')]['length']?_0x10a7d8['attributes']:_0x44d65d[_0x05b9('0x2d')];_0x10a7d8['order']=qs[_0x05b9('0x37')](_0x250aae[_0x05b9('0x2e')][_0x05b9('0x37')]);_0x10a7d8[_0x05b9('0x38')]=qs['filters'](_[_0x05b9('0x3a')](_0x250aae[_0x05b9('0x2e')],_0x44d65d[_0x05b9('0x39')]));if(_0x250aae[_0x05b9('0x2e')][_0x05b9('0x3b')]){_0x10a7d8[_0x05b9('0x38')]=_[_0x05b9('0x3c')](_0x10a7d8[_0x05b9('0x38')],{'$or':_['map'](_0x10a7d8[_0x05b9('0x32')],function(_0x548ec2){var _0x766aaa={};_0x766aaa[_0x548ec2]={'$like':'%'+_0x250aae[_0x05b9('0x2e')][_0x05b9('0x3b')]+'%'};return _0x766aaa;})});}_0x10a7d8=_['merge']({},_0x10a7d8,_0x250aae[_0x05b9('0x3e')]);return _0x1c6806[_0x05b9('0x4f')](_0x10a7d8);}})[_0x05b9('0x23')](function(_0x23bb03){if(_0x23bb03){_0x48b379=_0x23bb03[_0x05b9('0x33')];if(!_0x250aae[_0x05b9('0x2e')][_0x05b9('0x34')](_0x05b9('0x35'))){_0x10a7d8['limit']=qs['limit'](_0x250aae[_0x05b9('0x2e')][_0x05b9('0x1c')]);_0x10a7d8[_0x05b9('0x1e')]=qs[_0x05b9('0x1e')](_0x250aae[_0x05b9('0x2e')][_0x05b9('0x1e')]);}return _0x1c6806[_0x05b9('0x4f')](_0x10a7d8);}})[_0x05b9('0x23')](function(_0x14a3b4){if(_0x14a3b4){return _0x14a3b4?{'count':_0x48b379,'rows':_0x14a3b4}:null;}})[_0x05b9('0x23')](respondWithResult(_0x3b6b8e,null))[_0x05b9('0x42')](handleError(_0x3b6b8e,null));};exports['setTags']=function(_0x5d54f6,_0x247d99,_0x1be97b){if(_0x5d54f6['body']['id']){delete _0x5d54f6['body']['id'];}return db[_0x05b9('0x29')]['findOne']({'where':{'id':_0x5d54f6[_0x05b9('0x44')]['id']}})[_0x05b9('0x23')](handleEntityNotFound(_0x247d99,null))[_0x05b9('0x23')](function(_0x1e0730){if(_0x1e0730){return _0x1e0730[_0x05b9('0x50')](_0x5d54f6['body']['ids']||[]);}return null;})[_0x05b9('0x23')](respondWithResult(_0x247d99,null))[_0x05b9('0x42')](handleError(_0x247d99,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x12c9=['define','DeskConfiguration','int_desk_configurations','lodash','../../config/logger','moment','request-promise','path','rimraf','../../config/environment','./intDeskConfiguration.attributes','exports'];(function(_0x434f2e,_0x68493e){var _0x76c0b9=function(_0x7db698){while(--_0x7db698){_0x434f2e['push'](_0x434f2e['shift']());}};_0x76c0b9(++_0x68493e);}(_0x12c9,0x9f));var _0x912c=function(_0x573077,_0x3d9fec){_0x573077=_0x573077-0x0;var _0x13f517=_0x12c9[_0x573077];return _0x13f517;};'use strict';var _=require(_0x912c('0x0'));var util=require('util');var logger=require(_0x912c('0x1'))('api');var moment=require(_0x912c('0x2'));var BPromise=require('bluebird');var rp=require(_0x912c('0x3'));var fs=require('fs');var path=require(_0x912c('0x4'));var rimraf=require(_0x912c('0x5'));var config=require(_0x912c('0x6'));var attributes=require(_0x912c('0x7'));module[_0x912c('0x8')]=function(_0x572179,_0x5daa7d){return _0x572179[_0x912c('0x9')](_0x912c('0xa'),attributes,{'tableName':_0x912c('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x8c0c=['define','DeskConfiguration','int_desk_configurations','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','exports'];(function(_0xfae23b,_0x2be4ba){var _0x200640=function(_0x4ae258){while(--_0x4ae258){_0xfae23b['push'](_0xfae23b['shift']());}};_0x200640(++_0x2be4ba);}(_0x8c0c,0x11b));var _0xc8c0=function(_0x122ef9,_0x451d2a){_0x122ef9=_0x122ef9-0x0;var _0x42fba0=_0x8c0c[_0x122ef9];return _0x42fba0;};'use strict';var _=require(_0xc8c0('0x0'));var util=require(_0xc8c0('0x1'));var logger=require(_0xc8c0('0x2'))(_0xc8c0('0x3'));var moment=require(_0xc8c0('0x4'));var BPromise=require(_0xc8c0('0x5'));var rp=require(_0xc8c0('0x6'));var fs=require('fs');var path=require(_0xc8c0('0x7'));var rimraf=require(_0xc8c0('0x8'));var config=require(_0xc8c0('0x9'));var attributes=require('./intDeskConfiguration.attributes');module[_0xc8c0('0xa')]=function(_0x20d616,_0x3f117e){return _0x20d616[_0xc8c0('0xb')](_0xc8c0('0xc'),attributes,{'tableName':_0xc8c0('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd290=['error','code','message','request\x20sent','catch','lodash','util','bluebird','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','request','then','info','DeskConfiguration,\x20%s,\x20%s','debug','DeskConfiguration,\x20%s,\x20%s,\x20%s','stringify'];(function(_0x32ab82,_0xa96386){var _0x383a35=function(_0x2d2fec){while(--_0x2d2fec){_0x32ab82['push'](_0x32ab82['shift']());}};_0x383a35(++_0xa96386);}(_0xd290,0x165));var _0x0d29=function(_0x5e112d,_0x41eaf1){_0x5e112d=_0x5e112d-0x0;var _0x595f80=_0xd290[_0x5e112d];return _0x595f80;};'use strict';var _=require(_0x0d29('0x0'));var util=require(_0x0d29('0x1'));var moment=require('moment');var BPromise=require(_0x0d29('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0x0d29('0x3'))['db'];var utils=require(_0x0d29('0x4'));var logger=require(_0x0d29('0x5'))(_0x0d29('0x6'));var config=require(_0x0d29('0x7'));var jayson=require('jayson/promise');var client=jayson[_0x0d29('0x8')][_0x0d29('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x151d32,_0x376d19,_0x276aeb){return new BPromise(function(_0x4edfcd,_0x3ee63c){return client[_0x0d29('0xa')](_0x151d32,_0x276aeb)[_0x0d29('0xb')](function(_0x4b876e){logger[_0x0d29('0xc')](_0x0d29('0xd'),_0x376d19,'request\x20sent');logger[_0x0d29('0xe')](_0x0d29('0xf'),_0x376d19,'request\x20sent',JSON[_0x0d29('0x10')](_0x4b876e));if(_0x4b876e['error']){if(_0x4b876e[_0x0d29('0x11')][_0x0d29('0x12')]===0x1f4){logger[_0x0d29('0x11')](_0x0d29('0xd'),_0x376d19,_0x4b876e[_0x0d29('0x11')]['message']);return _0x3ee63c(_0x4b876e[_0x0d29('0x11')][_0x0d29('0x13')]);}logger[_0x0d29('0x11')](_0x0d29('0xd'),_0x376d19,_0x4b876e[_0x0d29('0x11')]['message']);return _0x4edfcd(_0x4b876e['error']['message']);}else{logger[_0x0d29('0xc')]('DeskConfiguration,\x20%s,\x20%s',_0x376d19,_0x0d29('0x14'));_0x4edfcd(_0x4b876e['result'][_0x0d29('0x13')]);}})[_0x0d29('0x15')](function(_0x2a04d6){logger[_0x0d29('0x11')](_0x0d29('0xd'),_0x376d19,_0x2a04d6);_0x3ee63c(_0x2a04d6);});});}
\ No newline at end of file
+var _0x2ebd=['../../config/logger','rpc','../../config/environment','http','request','then','DeskConfiguration,\x20%s,\x20%s','request\x20sent','debug','DeskConfiguration,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','catch','lodash','util','moment','ioredis','../../mysqldb','../../config/utils'];(function(_0x2adaf2,_0x511aad){var _0x4f5ff9=function(_0x3a5285){while(--_0x3a5285){_0x2adaf2['push'](_0x2adaf2['shift']());}};_0x4f5ff9(++_0x511aad);}(_0x2ebd,0x1c8));var _0xd2eb=function(_0x336a97,_0x47419b){_0x336a97=_0x336a97-0x0;var _0x5827b7=_0x2ebd[_0x336a97];return _0x5827b7;};'use strict';var _=require(_0xd2eb('0x0'));var util=require(_0xd2eb('0x1'));var moment=require(_0xd2eb('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xd2eb('0x3'));var db=require(_0xd2eb('0x4'))['db'];var utils=require(_0xd2eb('0x5'));var logger=require(_0xd2eb('0x6'))(_0xd2eb('0x7'));var config=require(_0xd2eb('0x8'));var jayson=require('jayson/promise');var client=jayson['client'][_0xd2eb('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x2754dd,_0x496362,_0xcd242c){return new BPromise(function(_0x230113,_0x47f93e){return client[_0xd2eb('0xa')](_0x2754dd,_0xcd242c)[_0xd2eb('0xb')](function(_0x5eca80){logger['info'](_0xd2eb('0xc'),_0x496362,_0xd2eb('0xd'));logger[_0xd2eb('0xe')](_0xd2eb('0xf'),_0x496362,_0xd2eb('0xd'),JSON[_0xd2eb('0x10')](_0x5eca80));if(_0x5eca80[_0xd2eb('0x11')]){if(_0x5eca80[_0xd2eb('0x11')][_0xd2eb('0x12')]===0x1f4){logger[_0xd2eb('0x11')](_0xd2eb('0xc'),_0x496362,_0x5eca80[_0xd2eb('0x11')]['message']);return _0x47f93e(_0x5eca80[_0xd2eb('0x11')]['message']);}logger[_0xd2eb('0x11')](_0xd2eb('0xc'),_0x496362,_0x5eca80['error'][_0xd2eb('0x13')]);return _0x230113(_0x5eca80[_0xd2eb('0x11')]['message']);}else{logger[_0xd2eb('0x14')](_0xd2eb('0xc'),_0x496362,_0xd2eb('0xd'));_0x230113(_0x5eca80['result']['message']);}})[_0xd2eb('0x15')](function(_0x5086ab){logger['error'](_0xd2eb('0xc'),_0x496362,_0x5086ab);_0x47f93e(_0x5086ab);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xde1a=['show','post','create','put','update','exports','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./intDeskField.controller','get','isAuthenticated','index','/:id'];(function(_0x2cb609,_0x6328be){var _0x388103=function(_0x2e7a21){while(--_0x2e7a21){_0x2cb609['push'](_0x2cb609['shift']());}};_0x388103(++_0x6328be);}(_0xde1a,0xfd));var _0xade1=function(_0x2f974e,_0x18ac8a){_0x2f974e=_0x2f974e-0x0;var _0xa41492=_0xde1a[_0x2f974e];return _0xa41492;};'use strict';var multer=require('multer');var util=require(_0xade1('0x0'));var path=require(_0xade1('0x1'));var timeout=require(_0xade1('0x2'));var express=require(_0xade1('0x3'));var router=express[_0xade1('0x4')]();var fs_extra=require(_0xade1('0x5'));var auth=require(_0xade1('0x6'));var interaction=require(_0xade1('0x7'));var config=require('../../config/environment');var controller=require(_0xade1('0x8'));router[_0xade1('0x9')]('/',auth[_0xade1('0xa')](),controller[_0xade1('0xb')]);router[_0xade1('0x9')](_0xade1('0xc'),auth['isAuthenticated'](),controller[_0xade1('0xd')]);router[_0xade1('0xe')]('/',auth[_0xade1('0xa')](),controller[_0xade1('0xf')]);router[_0xade1('0x10')](_0xade1('0xc'),auth[_0xade1('0xa')](),controller[_0xade1('0x11')]);router['delete'](_0xade1('0xc'),auth[_0xade1('0xa')](),controller['destroy']);module[_0xade1('0x12')]=router;
\ No newline at end of file
+var _0xdec0=['multer','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service','./intDeskField.controller','get','index','show','post','isAuthenticated','create','put','/:id','update','destroy','exports'];(function(_0x9b01f5,_0x439066){var _0x173802=function(_0x1044ba){while(--_0x1044ba){_0x9b01f5['push'](_0x9b01f5['shift']());}};_0x173802(++_0x439066);}(_0xdec0,0xab));var _0x0dec=function(_0x51ac09,_0x383098){_0x51ac09=_0x51ac09-0x0;var _0x3f827d=_0xdec0[_0x51ac09];return _0x3f827d;};'use strict';var multer=require(_0x0dec('0x0'));var util=require('util');var path=require(_0x0dec('0x1'));var timeout=require(_0x0dec('0x2'));var express=require(_0x0dec('0x3'));var router=express[_0x0dec('0x4')]();var fs_extra=require(_0x0dec('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x0dec('0x6'));var config=require('../../config/environment');var controller=require(_0x0dec('0x7'));router[_0x0dec('0x8')]('/',auth['isAuthenticated'](),controller[_0x0dec('0x9')]);router['get']('/:id',auth['isAuthenticated'](),controller[_0x0dec('0xa')]);router[_0x0dec('0xb')]('/',auth[_0x0dec('0xc')](),controller[_0x0dec('0xd')]);router[_0x0dec('0xe')](_0x0dec('0xf'),auth[_0x0dec('0xc')](),controller[_0x0dec('0x10')]);router['delete'](_0x0dec('0xf'),auth['isAuthenticated'](),controller[_0x0dec('0x11')]);module[_0x0dec('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd5c9=['exports','string','keyValue','picklist','STRING','ENUM','variable','customVariable','BOOLEAN'];(function(_0x502c7d,_0x2f1285){var _0x30b7ed=function(_0x2d92f3){while(--_0x2d92f3){_0x502c7d['push'](_0x502c7d['shift']());}};_0x30b7ed(++_0x2f1285);}(_0xd5c9,0x105));var _0x9d5c=function(_0x553c78,_0x4656c2){_0x553c78=_0x553c78-0x0;var _0x2f68c5=_0xd5c9[_0x553c78];return _0x2f68c5;};'use strict';var Sequelize=require('sequelize');module[_0x9d5c('0x0')]={'type':{'type':Sequelize['ENUM'](_0x9d5c('0x1'),'variable','customVariable',_0x9d5c('0x2'),_0x9d5c('0x3')),'defaultValue':_0x9d5c('0x1')},'content':{'type':Sequelize['STRING']},'key':{'type':Sequelize[_0x9d5c('0x4')]},'keyType':{'type':Sequelize[_0x9d5c('0x5')](_0x9d5c('0x1'),_0x9d5c('0x6'),_0x9d5c('0x7'))},'keyContent':{'type':Sequelize[_0x9d5c('0x4')]},'idField':{'type':Sequelize[_0x9d5c('0x4')]},'nameField':{'type':Sequelize[_0x9d5c('0x4')]},'customField':{'type':Sequelize[_0x9d5c('0x8')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0x9d5c('0x4')]}};
\ No newline at end of file
+var _0xdbf1=['picklist','STRING','string','sequelize','ENUM','customVariable','keyValue'];(function(_0x492dd2,_0x1770e0){var _0x3fb5e3=function(_0x3210c5){while(--_0x3210c5){_0x492dd2['push'](_0x492dd2['shift']());}};_0x3fb5e3(++_0x1770e0);}(_0xdbf1,0x1c3));var _0x1dbf=function(_0x2aec52,_0x59d962){_0x2aec52=_0x2aec52-0x0;var _0x3b8835=_0xdbf1[_0x2aec52];return _0x3b8835;};'use strict';var Sequelize=require(_0x1dbf('0x0'));module['exports']={'type':{'type':Sequelize[_0x1dbf('0x1')]('string','variable',_0x1dbf('0x2'),_0x1dbf('0x3'),_0x1dbf('0x4')),'defaultValue':'string'},'content':{'type':Sequelize[_0x1dbf('0x5')]},'key':{'type':Sequelize[_0x1dbf('0x5')]},'keyType':{'type':Sequelize['ENUM'](_0x1dbf('0x6'),'variable','customVariable')},'keyContent':{'type':Sequelize[_0x1dbf('0x5')]},'idField':{'type':Sequelize[_0x1dbf('0x5')]},'nameField':{'type':Sequelize['STRING']},'customField':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'variableName':{'type':Sequelize[_0x1dbf('0x5')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0c23=['attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','include','findAll','catch','rawAttributes','includeAll','find','create','body','params','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','sendStatus','status','end','offset','undefined','limit','count','set','json','apply','reject','save','update','then','destroy','stack','name','map','DeskField','fieldName','type','key','model','query','keys','filters','intersection'];(function(_0x45c022,_0x552969){var _0xe7d71=function(_0x35b1a3){while(--_0x35b1a3){_0x45c022['push'](_0x45c022['shift']());}};_0xe7d71(++_0x552969);}(_0x0c23,0x13e));var _0x30c2=function(_0x1a59fe,_0x2d209f){_0x1a59fe=_0x1a59fe-0x0;var _0x428dd2=_0x0c23[_0x1a59fe];return _0x428dd2;};'use strict';var emlformat=require(_0x30c2('0x0'));var rimraf=require(_0x30c2('0x1'));var zipdir=require(_0x30c2('0x2'));var jsonpatch=require(_0x30c2('0x3'));var rp=require(_0x30c2('0x4'));var moment=require(_0x30c2('0x5'));var BPromise=require(_0x30c2('0x6'));var Mustache=require('mustache');var util=require(_0x30c2('0x7'));var path=require(_0x30c2('0x8'));var sox=require(_0x30c2('0x9'));var csv=require(_0x30c2('0xa'));var ejs=require(_0x30c2('0xb'));var fs=require('fs');var fs_extra=require(_0x30c2('0xc'));var _=require('lodash');var squel=require(_0x30c2('0xd'));var crypto=require(_0x30c2('0xe'));var jsforce=require(_0x30c2('0xf'));var deskjs=require(_0x30c2('0x10'));var toCsv=require(_0x30c2('0xa'));var querystring=require('querystring');var Papa=require(_0x30c2('0x11'));var Redis=require(_0x30c2('0x12'));var authService=require('../../components/auth/service');var qs=require(_0x30c2('0x13'));var as=require(_0x30c2('0x14'));var hardwareService=require(_0x30c2('0x15'));var logger=require(_0x30c2('0x16'))(_0x30c2('0x17'));var utils=require(_0x30c2('0x18'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x2fedbf,_0x2d40b8){_0x2d40b8=_0x2d40b8||0xcc;return function(_0x14be32){if(_0x14be32){return _0x2fedbf[_0x30c2('0x19')](_0x2d40b8);}return _0x2fedbf[_0x30c2('0x1a')](_0x2d40b8)[_0x30c2('0x1b')]();};}function respondWithResult(_0x2712dc,_0x4c6238){_0x4c6238=_0x4c6238||0xc8;return function(_0x1e0d4c){if(_0x1e0d4c){return _0x2712dc[_0x30c2('0x1a')](_0x4c6238)['json'](_0x1e0d4c);}};}function respondWithFilteredResult(_0x450129,_0x16256f){return function(_0x5823d1){if(_0x5823d1){var _0x301ce7=typeof _0x16256f[_0x30c2('0x1c')]===_0x30c2('0x1d')&&typeof _0x16256f[_0x30c2('0x1e')]===_0x30c2('0x1d');var _0x1d6318=_0x5823d1[_0x30c2('0x1f')];var _0x108900=_0x301ce7?0x0:_0x16256f[_0x30c2('0x1c')];var _0x549e8c=_0x301ce7?_0x5823d1[_0x30c2('0x1f')]:_0x16256f['offset']+_0x16256f['limit'];var _0xf36423;if(_0x549e8c>=_0x1d6318){_0x549e8c=_0x1d6318;_0xf36423=0xc8;}else{_0xf36423=0xce;}_0x450129[_0x30c2('0x1a')](_0xf36423);return _0x450129[_0x30c2('0x20')]('Content-Range',_0x108900+'-'+_0x549e8c+'/'+_0x1d6318)[_0x30c2('0x21')](_0x5823d1);}return null;};}function patchUpdates(_0x1d0b52){return function(_0x124140){try{jsonpatch[_0x30c2('0x22')](_0x124140,_0x1d0b52,!![]);}catch(_0x31293f){return BPromise[_0x30c2('0x23')](_0x31293f);}return _0x124140[_0x30c2('0x24')]();};}function saveUpdates(_0x3c6d51,_0x4d9b3f){return function(_0x57b861){if(_0x57b861){return _0x57b861[_0x30c2('0x25')](_0x3c6d51)[_0x30c2('0x26')](function(_0x55d4e1){return _0x55d4e1;});}return null;};}function removeEntity(_0x16f218,_0x428ce8){return function(_0x5a72f5){if(_0x5a72f5){return _0x5a72f5[_0x30c2('0x27')]()[_0x30c2('0x26')](function(){_0x16f218[_0x30c2('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x3dca66,_0x2cbab2){return function(_0x3bbd2d){if(!_0x3bbd2d){_0x3dca66['sendStatus'](0x194);}return _0x3bbd2d;};}function handleError(_0x1ed8d8,_0x3fc548){_0x3fc548=_0x3fc548||0x1f4;return function(_0x104c6d){logger['error'](_0x104c6d[_0x30c2('0x28')]);if(_0x104c6d[_0x30c2('0x29')]){delete _0x104c6d[_0x30c2('0x29')];}_0x1ed8d8[_0x30c2('0x1a')](_0x3fc548)['send'](_0x104c6d);};}exports['index']=function(_0x12d3a3,_0x571b28){var _0x17a6b7={},_0xf3e0d2={},_0x208b54={'count':0x0,'rows':[]};var _0x5227bb=_[_0x30c2('0x2a')](db[_0x30c2('0x2b')]['rawAttributes'],function(_0x343e87){return{'name':_0x343e87[_0x30c2('0x2c')],'type':_0x343e87[_0x30c2('0x2d')][_0x30c2('0x2e')]};});_0xf3e0d2[_0x30c2('0x2f')]=_[_0x30c2('0x2a')](_0x5227bb,_0x30c2('0x29'));_0xf3e0d2[_0x30c2('0x30')]=_[_0x30c2('0x31')](_0x12d3a3[_0x30c2('0x30')]);_0xf3e0d2[_0x30c2('0x32')]=_[_0x30c2('0x33')](_0xf3e0d2[_0x30c2('0x2f')],_0xf3e0d2[_0x30c2('0x30')]);_0x17a6b7[_0x30c2('0x34')]=_[_0x30c2('0x33')](_0xf3e0d2[_0x30c2('0x2f')],qs['fields'](_0x12d3a3['query'][_0x30c2('0x35')]));_0x17a6b7['attributes']=_0x17a6b7['attributes'][_0x30c2('0x36')]?_0x17a6b7[_0x30c2('0x34')]:_0xf3e0d2['model'];if(!_0x12d3a3['query'][_0x30c2('0x37')](_0x30c2('0x38'))){_0x17a6b7[_0x30c2('0x1e')]=qs[_0x30c2('0x1e')](_0x12d3a3[_0x30c2('0x30')][_0x30c2('0x1e')]);_0x17a6b7[_0x30c2('0x1c')]=qs['offset'](_0x12d3a3[_0x30c2('0x30')][_0x30c2('0x1c')]);}_0x17a6b7[_0x30c2('0x39')]=qs['sort'](_0x12d3a3['query'][_0x30c2('0x3a')]);_0x17a6b7[_0x30c2('0x3b')]=qs[_0x30c2('0x32')](_[_0x30c2('0x3c')](_0x12d3a3[_0x30c2('0x30')],_0xf3e0d2[_0x30c2('0x32')]),_0x5227bb);if(_0x12d3a3[_0x30c2('0x30')][_0x30c2('0x3d')]){_0x17a6b7[_0x30c2('0x3b')]=_[_0x30c2('0x3e')](_0x17a6b7['where'],{'$or':_[_0x30c2('0x2a')](_0x5227bb,function(_0x1b724f){if(_0x1b724f[_0x30c2('0x2d')]!==_0x30c2('0x3f')){var _0x196465={};_0x196465[_0x1b724f[_0x30c2('0x29')]]={'$like':'%'+_0x12d3a3[_0x30c2('0x30')][_0x30c2('0x3d')]+'%'};return _0x196465;}})});}_0x17a6b7=_[_0x30c2('0x3e')]({},_0x17a6b7,_0x12d3a3[_0x30c2('0x40')]);var _0x108d47={'where':_0x17a6b7['where']};return db[_0x30c2('0x2b')][_0x30c2('0x1f')](_0x108d47)[_0x30c2('0x26')](function(_0x856029){_0x208b54[_0x30c2('0x1f')]=_0x856029;if(_0x12d3a3[_0x30c2('0x30')]['includeAll']){_0x17a6b7[_0x30c2('0x41')]=[{'all':!![]}];}return db[_0x30c2('0x2b')][_0x30c2('0x42')](_0x17a6b7);})[_0x30c2('0x26')](function(_0x3868fe){_0x208b54['rows']=_0x3868fe;return _0x208b54;})[_0x30c2('0x26')](respondWithFilteredResult(_0x571b28,_0x17a6b7))[_0x30c2('0x43')](handleError(_0x571b28,null));};exports['show']=function(_0x3fc82f,_0x2b4c86){var _0x5041e4={'raw':!![],'where':{'id':_0x3fc82f['params']['id']}},_0x3e9140={};_0x3e9140[_0x30c2('0x2f')]=_[_0x30c2('0x31')](db[_0x30c2('0x2b')][_0x30c2('0x44')]);_0x3e9140[_0x30c2('0x30')]=_[_0x30c2('0x31')](_0x3fc82f[_0x30c2('0x30')]);_0x3e9140[_0x30c2('0x32')]=_[_0x30c2('0x33')](_0x3e9140[_0x30c2('0x2f')],_0x3e9140[_0x30c2('0x30')]);_0x5041e4[_0x30c2('0x34')]=_[_0x30c2('0x33')](_0x3e9140['model'],qs[_0x30c2('0x35')](_0x3fc82f[_0x30c2('0x30')][_0x30c2('0x35')]));_0x5041e4[_0x30c2('0x34')]=_0x5041e4[_0x30c2('0x34')][_0x30c2('0x36')]?_0x5041e4[_0x30c2('0x34')]:_0x3e9140['model'];if(_0x3fc82f[_0x30c2('0x30')][_0x30c2('0x45')]){_0x5041e4[_0x30c2('0x41')]=[{'all':!![]}];}_0x5041e4=_[_0x30c2('0x3e')]({},_0x5041e4,_0x3fc82f[_0x30c2('0x40')]);return db['DeskField'][_0x30c2('0x46')](_0x5041e4)[_0x30c2('0x26')](handleEntityNotFound(_0x2b4c86,null))[_0x30c2('0x26')](respondWithResult(_0x2b4c86,null))[_0x30c2('0x43')](handleError(_0x2b4c86,null));};exports[_0x30c2('0x47')]=function(_0xbbd3fb,_0x159ce9){return db['DeskField'][_0x30c2('0x47')](_0xbbd3fb[_0x30c2('0x48')],{})['then'](respondWithResult(_0x159ce9,0xc9))[_0x30c2('0x43')](handleError(_0x159ce9,null));};exports[_0x30c2('0x25')]=function(_0x5bff09,_0x15fc53){if(_0x5bff09[_0x30c2('0x48')]['id']){delete _0x5bff09[_0x30c2('0x48')]['id'];}return db[_0x30c2('0x2b')][_0x30c2('0x46')]({'where':{'id':_0x5bff09[_0x30c2('0x49')]['id']}})[_0x30c2('0x26')](handleEntityNotFound(_0x15fc53,null))['then'](saveUpdates(_0x5bff09['body'],null))['then'](respondWithResult(_0x15fc53,null))[_0x30c2('0x43')](handleError(_0x15fc53,null));};exports[_0x30c2('0x27')]=function(_0x27d7ca,_0x24db72){return db[_0x30c2('0x2b')]['find']({'where':{'id':_0x27d7ca['params']['id']}})[_0x30c2('0x26')](handleEntityNotFound(_0x24db72,null))[_0x30c2('0x26')](removeEntity(_0x24db72,null))['catch'](handleError(_0x24db72,null));};
\ No newline at end of file
+var _0x4af9=['include','find','create','body','eml-format','rimraf','request-promise','moment','bluebird','mustache','util','path','sox','ejs','fs-extra','lodash','squel','jsforce','desk.js','to-csv','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','sendStatus','end','status','json','offset','limit','undefined','count','set','Content-Range','apply','reject','update','then','destroy','stack','name','send','map','DeskField','rawAttributes','fieldName','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','VIRTUAL','merge','options','includeAll','findAll','rows','catch','show','params'];(function(_0xa639e5,_0x2d938d){var _0x44f75e=function(_0x382d31){while(--_0x382d31){_0xa639e5['push'](_0xa639e5['shift']());}};_0x44f75e(++_0x2d938d);}(_0x4af9,0x12c));var _0x94af=function(_0x3bf83f,_0x181cac){_0x3bf83f=_0x3bf83f-0x0;var _0x22c4a9=_0x4af9[_0x3bf83f];return _0x22c4a9;};'use strict';var emlformat=require(_0x94af('0x0'));var rimraf=require(_0x94af('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x94af('0x2'));var moment=require(_0x94af('0x3'));var BPromise=require(_0x94af('0x4'));var Mustache=require(_0x94af('0x5'));var util=require(_0x94af('0x6'));var path=require(_0x94af('0x7'));var sox=require(_0x94af('0x8'));var csv=require('to-csv');var ejs=require(_0x94af('0x9'));var fs=require('fs');var fs_extra=require(_0x94af('0xa'));var _=require(_0x94af('0xb'));var squel=require(_0x94af('0xc'));var crypto=require('crypto');var jsforce=require(_0x94af('0xd'));var deskjs=require(_0x94af('0xe'));var toCsv=require(_0x94af('0xf'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x94af('0x10'));var authService=require(_0x94af('0x11'));var qs=require(_0x94af('0x12'));var as=require(_0x94af('0x13'));var hardwareService=require(_0x94af('0x14'));var logger=require(_0x94af('0x15'))('api');var utils=require(_0x94af('0x16'));var config=require(_0x94af('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0x94af('0x18'))['db'];function respondWithStatusCode(_0x36fb24,_0x1621a9){_0x1621a9=_0x1621a9||0xcc;return function(_0x38108a){if(_0x38108a){return _0x36fb24[_0x94af('0x19')](_0x1621a9);}return _0x36fb24['status'](_0x1621a9)[_0x94af('0x1a')]();};}function respondWithResult(_0x4dd013,_0x598dff){_0x598dff=_0x598dff||0xc8;return function(_0x4d080c){if(_0x4d080c){return _0x4dd013[_0x94af('0x1b')](_0x598dff)[_0x94af('0x1c')](_0x4d080c);}};}function respondWithFilteredResult(_0x2313a1,_0x356a17){return function(_0x49eb9f){if(_0x49eb9f){var _0x275c63=typeof _0x356a17[_0x94af('0x1d')]==='undefined'&&typeof _0x356a17[_0x94af('0x1e')]===_0x94af('0x1f');var _0x11ee85=_0x49eb9f[_0x94af('0x20')];var _0x414bc9=_0x275c63?0x0:_0x356a17[_0x94af('0x1d')];var _0x19369b=_0x275c63?_0x49eb9f[_0x94af('0x20')]:_0x356a17[_0x94af('0x1d')]+_0x356a17[_0x94af('0x1e')];var _0x4a9d75;if(_0x19369b>=_0x11ee85){_0x19369b=_0x11ee85;_0x4a9d75=0xc8;}else{_0x4a9d75=0xce;}_0x2313a1['status'](_0x4a9d75);return _0x2313a1[_0x94af('0x21')](_0x94af('0x22'),_0x414bc9+'-'+_0x19369b+'/'+_0x11ee85)[_0x94af('0x1c')](_0x49eb9f);}return null;};}function patchUpdates(_0x17bfcc){return function(_0x472960){try{jsonpatch[_0x94af('0x23')](_0x472960,_0x17bfcc,!![]);}catch(_0x4adbea){return BPromise[_0x94af('0x24')](_0x4adbea);}return _0x472960['save']();};}function saveUpdates(_0x3b7cb9,_0x587ddb){return function(_0xa0cf1a){if(_0xa0cf1a){return _0xa0cf1a[_0x94af('0x25')](_0x3b7cb9)[_0x94af('0x26')](function(_0x521828){return _0x521828;});}return null;};}function removeEntity(_0x3f22f3,_0x2434fe){return function(_0x906599){if(_0x906599){return _0x906599[_0x94af('0x27')]()['then'](function(){_0x3f22f3[_0x94af('0x1b')](0xcc)[_0x94af('0x1a')]();});}};}function handleEntityNotFound(_0x24e8a0,_0x3b6152){return function(_0x202e5c){if(!_0x202e5c){_0x24e8a0[_0x94af('0x19')](0x194);}return _0x202e5c;};}function handleError(_0x1b3b4a,_0xc85250){_0xc85250=_0xc85250||0x1f4;return function(_0x131a93){logger['error'](_0x131a93[_0x94af('0x28')]);if(_0x131a93['name']){delete _0x131a93[_0x94af('0x29')];}_0x1b3b4a[_0x94af('0x1b')](_0xc85250)[_0x94af('0x2a')](_0x131a93);};}exports['index']=function(_0x16d7cf,_0x10eeb0){var _0x51d827={},_0x3332a5={},_0x1b40b0={'count':0x0,'rows':[]};var _0x331fc9=_[_0x94af('0x2b')](db[_0x94af('0x2c')][_0x94af('0x2d')],function(_0x54a14a){return{'name':_0x54a14a[_0x94af('0x2e')],'type':_0x54a14a['type']['key']};});_0x3332a5[_0x94af('0x2f')]=_[_0x94af('0x2b')](_0x331fc9,_0x94af('0x29'));_0x3332a5[_0x94af('0x30')]=_[_0x94af('0x31')](_0x16d7cf['query']);_0x3332a5[_0x94af('0x32')]=_[_0x94af('0x33')](_0x3332a5['model'],_0x3332a5[_0x94af('0x30')]);_0x51d827[_0x94af('0x34')]=_[_0x94af('0x33')](_0x3332a5[_0x94af('0x2f')],qs[_0x94af('0x35')](_0x16d7cf[_0x94af('0x30')][_0x94af('0x35')]));_0x51d827['attributes']=_0x51d827[_0x94af('0x34')][_0x94af('0x36')]?_0x51d827[_0x94af('0x34')]:_0x3332a5[_0x94af('0x2f')];if(!_0x16d7cf[_0x94af('0x30')][_0x94af('0x37')](_0x94af('0x38'))){_0x51d827[_0x94af('0x1e')]=qs[_0x94af('0x1e')](_0x16d7cf['query'][_0x94af('0x1e')]);_0x51d827[_0x94af('0x1d')]=qs[_0x94af('0x1d')](_0x16d7cf[_0x94af('0x30')][_0x94af('0x1d')]);}_0x51d827['order']=qs[_0x94af('0x39')](_0x16d7cf[_0x94af('0x30')][_0x94af('0x39')]);_0x51d827[_0x94af('0x3a')]=qs['filters'](_[_0x94af('0x3b')](_0x16d7cf['query'],_0x3332a5['filters']),_0x331fc9);if(_0x16d7cf['query'][_0x94af('0x3c')]){_0x51d827[_0x94af('0x3a')]=_['merge'](_0x51d827[_0x94af('0x3a')],{'$or':_['map'](_0x331fc9,function(_0x2ec124){if(_0x2ec124['type']!==_0x94af('0x3d')){var _0x2017fa={};_0x2017fa[_0x2ec124[_0x94af('0x29')]]={'$like':'%'+_0x16d7cf[_0x94af('0x30')][_0x94af('0x3c')]+'%'};return _0x2017fa;}})});}_0x51d827=_[_0x94af('0x3e')]({},_0x51d827,_0x16d7cf[_0x94af('0x3f')]);var _0x385b74={'where':_0x51d827[_0x94af('0x3a')]};return db[_0x94af('0x2c')][_0x94af('0x20')](_0x385b74)['then'](function(_0x416913){_0x1b40b0[_0x94af('0x20')]=_0x416913;if(_0x16d7cf['query'][_0x94af('0x40')]){_0x51d827['include']=[{'all':!![]}];}return db[_0x94af('0x2c')][_0x94af('0x41')](_0x51d827);})[_0x94af('0x26')](function(_0x4cf8b9){_0x1b40b0[_0x94af('0x42')]=_0x4cf8b9;return _0x1b40b0;})['then'](respondWithFilteredResult(_0x10eeb0,_0x51d827))[_0x94af('0x43')](handleError(_0x10eeb0,null));};exports[_0x94af('0x44')]=function(_0x501945,_0xa9fb04){var _0x144adc={'raw':!![],'where':{'id':_0x501945[_0x94af('0x45')]['id']}},_0x10d45b={};_0x10d45b[_0x94af('0x2f')]=_[_0x94af('0x31')](db[_0x94af('0x2c')][_0x94af('0x2d')]);_0x10d45b['query']=_[_0x94af('0x31')](_0x501945['query']);_0x10d45b[_0x94af('0x32')]=_[_0x94af('0x33')](_0x10d45b[_0x94af('0x2f')],_0x10d45b[_0x94af('0x30')]);_0x144adc[_0x94af('0x34')]=_[_0x94af('0x33')](_0x10d45b['model'],qs[_0x94af('0x35')](_0x501945[_0x94af('0x30')][_0x94af('0x35')]));_0x144adc[_0x94af('0x34')]=_0x144adc['attributes'][_0x94af('0x36')]?_0x144adc[_0x94af('0x34')]:_0x10d45b[_0x94af('0x2f')];if(_0x501945[_0x94af('0x30')][_0x94af('0x40')]){_0x144adc[_0x94af('0x46')]=[{'all':!![]}];}_0x144adc=_['merge']({},_0x144adc,_0x501945['options']);return db[_0x94af('0x2c')][_0x94af('0x47')](_0x144adc)[_0x94af('0x26')](handleEntityNotFound(_0xa9fb04,null))[_0x94af('0x26')](respondWithResult(_0xa9fb04,null))[_0x94af('0x43')](handleError(_0xa9fb04,null));};exports[_0x94af('0x48')]=function(_0x4fd8b3,_0x111dc8){return db[_0x94af('0x2c')][_0x94af('0x48')](_0x4fd8b3[_0x94af('0x49')],{})[_0x94af('0x26')](respondWithResult(_0x111dc8,0xc9))[_0x94af('0x43')](handleError(_0x111dc8,null));};exports[_0x94af('0x25')]=function(_0x5ed5b6,_0x321cf6){if(_0x5ed5b6['body']['id']){delete _0x5ed5b6[_0x94af('0x49')]['id'];}return db[_0x94af('0x2c')][_0x94af('0x47')]({'where':{'id':_0x5ed5b6[_0x94af('0x45')]['id']}})[_0x94af('0x26')](handleEntityNotFound(_0x321cf6,null))[_0x94af('0x26')](saveUpdates(_0x5ed5b6[_0x94af('0x49')],null))[_0x94af('0x26')](respondWithResult(_0x321cf6,null))[_0x94af('0x43')](handleError(_0x321cf6,null));};exports[_0x94af('0x27')]=function(_0x3c0945,_0x5ccfe){return db[_0x94af('0x2c')]['find']({'where':{'id':_0x3c0945[_0x94af('0x45')]['id']}})[_0x94af('0x26')](handleEntityNotFound(_0x5ccfe,null))[_0x94af('0x26')](removeEntity(_0x5ccfe,null))[_0x94af('0x43')](handleError(_0x5ccfe,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe033=['desk_unique_index','idField','FieldId','lodash','util','../../config/logger','api','moment','bluebird','request-promise','./intDeskField.attributes','define','DeskField','int_desk_fields'];(function(_0x54fe1c,_0x5d208c){var _0x460aaa=function(_0x430e7a){while(--_0x430e7a){_0x54fe1c['push'](_0x54fe1c['shift']());}};_0x460aaa(++_0x5d208c);}(_0xe033,0x137));var _0x3e03=function(_0x4f833a,_0x15e407){_0x4f833a=_0x4f833a-0x0;var _0x312fbf=_0xe033[_0x4f833a];return _0x312fbf;};'use strict';var _=require(_0x3e03('0x0'));var util=require(_0x3e03('0x1'));var logger=require(_0x3e03('0x2'))(_0x3e03('0x3'));var moment=require(_0x3e03('0x4'));var BPromise=require(_0x3e03('0x5'));var rp=require(_0x3e03('0x6'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0x3e03('0x7'));module['exports']=function(_0x42e083,_0x4fe391){return _0x42e083[_0x3e03('0x8')](_0x3e03('0x9'),attributes,{'tableName':_0x3e03('0xa'),'paranoid':![],'indexes':[{'name':_0x3e03('0xb'),'fields':[_0x3e03('0xc'),_0x3e03('0xd')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x7342=['rimraf','../../config/environment','exports','define','DeskField','int_desk_fields','desk_unique_index','idField','lodash','util','moment','bluebird','request-promise'];(function(_0x1fcf1b,_0x214549){var _0x5d2952=function(_0x3331b7){while(--_0x3331b7){_0x1fcf1b['push'](_0x1fcf1b['shift']());}};_0x5d2952(++_0x214549);}(_0x7342,0x8a));var _0x2734=function(_0x15d2d4,_0x48d31c){_0x15d2d4=_0x15d2d4-0x0;var _0x1fa147=_0x7342[_0x15d2d4];return _0x1fa147;};'use strict';var _=require(_0x2734('0x0'));var util=require(_0x2734('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0x2734('0x2'));var BPromise=require(_0x2734('0x3'));var rp=require(_0x2734('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x2734('0x5'));var config=require(_0x2734('0x6'));var attributes=require('./intDeskField.attributes');module[_0x2734('0x7')]=function(_0x4d255f,_0x39a6ed){return _0x4d255f[_0x2734('0x8')](_0x2734('0x9'),attributes,{'tableName':_0x2734('0xa'),'paranoid':![],'indexes':[{'name':_0x2734('0xb'),'fields':[_0x2734('0xc'),'FieldId'],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x791b=['DeskField,\x20%s,\x20%s,\x20%s','stringify','error','message','info','result','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','jayson/promise','client','http','request','then','DeskField,\x20%s,\x20%s','request\x20sent','debug'];(function(_0x360b7d,_0x1edf66){var _0x548e69=function(_0x1c6c96){while(--_0x1c6c96){_0x360b7d['push'](_0x360b7d['shift']());}};_0x548e69(++_0x1edf66);}(_0x791b,0x166));var _0xb791=function(_0x42cae2,_0x284ef8){_0x42cae2=_0x42cae2-0x0;var _0x5f256f=_0x791b[_0x42cae2];return _0x5f256f;};'use strict';var _=require(_0xb791('0x0'));var util=require(_0xb791('0x1'));var moment=require(_0xb791('0x2'));var BPromise=require(_0xb791('0x3'));var rs=require(_0xb791('0x4'));var fs=require('fs');var Redis=require(_0xb791('0x5'));var db=require(_0xb791('0x6'))['db'];var utils=require('../../config/utils');var logger=require(_0xb791('0x7'))('rpc');var config=require('../../config/environment');var jayson=require(_0xb791('0x8'));var client=jayson[_0xb791('0x9')][_0xb791('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x558586,_0x7a5e9b,_0x209eab){return new BPromise(function(_0x4c11f2,_0x1b5811){return client[_0xb791('0xb')](_0x558586,_0x209eab)[_0xb791('0xc')](function(_0xd05ba4){logger['info'](_0xb791('0xd'),_0x7a5e9b,_0xb791('0xe'));logger[_0xb791('0xf')](_0xb791('0x10'),_0x7a5e9b,_0xb791('0xe'),JSON[_0xb791('0x11')](_0xd05ba4));if(_0xd05ba4[_0xb791('0x12')]){if(_0xd05ba4[_0xb791('0x12')]['code']===0x1f4){logger[_0xb791('0x12')]('DeskField,\x20%s,\x20%s',_0x7a5e9b,_0xd05ba4['error'][_0xb791('0x13')]);return _0x1b5811(_0xd05ba4['error'][_0xb791('0x13')]);}logger[_0xb791('0x12')]('DeskField,\x20%s,\x20%s',_0x7a5e9b,_0xd05ba4[_0xb791('0x12')][_0xb791('0x13')]);return _0x4c11f2(_0xd05ba4['error'][_0xb791('0x13')]);}else{logger[_0xb791('0x14')](_0xb791('0xd'),_0x7a5e9b,'request\x20sent');_0x4c11f2(_0xd05ba4[_0xb791('0x15')][_0xb791('0x13')]);}})['catch'](function(_0x3ac81d){logger['error'](_0xb791('0xd'),_0x7a5e9b,_0x3ac81d);_0x1b5811(_0x3ac81d);});});}
\ No newline at end of file
+var _0xd477=['result','catch','lodash','moment','bluebird','randomstring','ioredis','../../config/utils','rpc','../../config/environment','jayson/promise','client','http','request','then','DeskField,\x20%s,\x20%s','request\x20sent','DeskField,\x20%s,\x20%s,\x20%s','error','code','message','info'];(function(_0x41a15d,_0x2570c1){var _0x804609=function(_0x1b810d){while(--_0x1b810d){_0x41a15d['push'](_0x41a15d['shift']());}};_0x804609(++_0x2570c1);}(_0xd477,0x18e));var _0x7d47=function(_0x174833,_0x4f5b0a){_0x174833=_0x174833-0x0;var _0x2b2f9c=_0xd477[_0x174833];return _0x2b2f9c;};'use strict';var _=require(_0x7d47('0x0'));var util=require('util');var moment=require(_0x7d47('0x1'));var BPromise=require(_0x7d47('0x2'));var rs=require(_0x7d47('0x3'));var fs=require('fs');var Redis=require(_0x7d47('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x7d47('0x5'));var logger=require('../../config/logger')(_0x7d47('0x6'));var config=require(_0x7d47('0x7'));var jayson=require(_0x7d47('0x8'));var client=jayson[_0x7d47('0x9')][_0x7d47('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x5ddeed,_0x5cf229,_0x50006d){return new BPromise(function(_0x4f8b32,_0x42f8b){return client[_0x7d47('0xb')](_0x5ddeed,_0x50006d)[_0x7d47('0xc')](function(_0x3aa9d9){logger['info'](_0x7d47('0xd'),_0x5cf229,_0x7d47('0xe'));logger['debug'](_0x7d47('0xf'),_0x5cf229,_0x7d47('0xe'),JSON['stringify'](_0x3aa9d9));if(_0x3aa9d9[_0x7d47('0x10')]){if(_0x3aa9d9[_0x7d47('0x10')][_0x7d47('0x11')]===0x1f4){logger[_0x7d47('0x10')](_0x7d47('0xd'),_0x5cf229,_0x3aa9d9[_0x7d47('0x10')]['message']);return _0x42f8b(_0x3aa9d9[_0x7d47('0x10')]['message']);}logger[_0x7d47('0x10')](_0x7d47('0xd'),_0x5cf229,_0x3aa9d9[_0x7d47('0x10')][_0x7d47('0x12')]);return _0x4f8b32(_0x3aa9d9[_0x7d47('0x10')]['message']);}else{logger[_0x7d47('0x13')](_0x7d47('0xd'),_0x5cf229,_0x7d47('0xe'));_0x4f8b32(_0x3aa9d9[_0x7d47('0x14')][_0x7d47('0x12')]);}})[_0x7d47('0x15')](function(_0x1fd9ae){logger['error'](_0x7d47('0xd'),_0x5cf229,_0x1fd9ae);_0x42f8b(_0x1fd9ae);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xba0f=['getConfigurations','/:id/fields','getFields','post','create','addConfiguration','/:id','update','delete','destroy','exports','multer','path','connect-timeout','fs-extra','../../components/auth/service','../../config/environment','get','isAuthenticated','index','show','/:id/configurations'];(function(_0x42bc91,_0x41f40a){var _0x3f5507=function(_0x20cfaf){while(--_0x20cfaf){_0x42bc91['push'](_0x42bc91['shift']());}};_0x3f5507(++_0x41f40a);}(_0xba0f,0x16b));var _0xfba0=function(_0x42cae2,_0x284ef8){_0x42cae2=_0x42cae2-0x0;var _0x5f256f=_0xba0f[_0x42cae2];return _0x5f256f;};'use strict';var multer=require(_0xfba0('0x0'));var util=require('util');var path=require(_0xfba0('0x1'));var timeout=require(_0xfba0('0x2'));var express=require('express');var router=express['Router']();var fs_extra=require(_0xfba0('0x3'));var auth=require(_0xfba0('0x4'));var interaction=require('../../components/interaction/service');var config=require(_0xfba0('0x5'));var controller=require('./intDynamics365Account.controller');router[_0xfba0('0x6')]('/',auth[_0xfba0('0x7')](),controller[_0xfba0('0x8')]);router['get']('/:id',auth[_0xfba0('0x7')](),controller[_0xfba0('0x9')]);router[_0xfba0('0x6')](_0xfba0('0xa'),auth[_0xfba0('0x7')](),controller[_0xfba0('0xb')]);router['get'](_0xfba0('0xc'),auth[_0xfba0('0x7')](),controller[_0xfba0('0xd')]);router[_0xfba0('0xe')]('/',auth['isAuthenticated'](),controller[_0xfba0('0xf')]);router[_0xfba0('0xe')]('/:id/configurations',auth[_0xfba0('0x7')](),controller[_0xfba0('0x10')]);router['put'](_0xfba0('0x11'),auth[_0xfba0('0x7')](),controller[_0xfba0('0x12')]);router[_0xfba0('0x13')](_0xfba0('0x11'),auth[_0xfba0('0x7')](),controller[_0xfba0('0x14')]);module[_0xfba0('0x15')]=router;
\ No newline at end of file
+var _0x4cec=['exports','multer','util','path','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./intDynamics365Account.controller','isAuthenticated','index','/:id','show','/:id/configurations','getConfigurations','/:id/fields','getFields','create','post','addConfiguration','put','delete','destroy'];(function(_0x4d5cfb,_0x47f167){var _0x5708d2=function(_0x274ae6){while(--_0x274ae6){_0x4d5cfb['push'](_0x4d5cfb['shift']());}};_0x5708d2(++_0x47f167);}(_0x4cec,0x12d));var _0xc4ce=function(_0x25e7cb,_0x3579b7){_0x25e7cb=_0x25e7cb-0x0;var _0x375d92=_0x4cec[_0x25e7cb];return _0x375d92;};'use strict';var multer=require(_0xc4ce('0x0'));var util=require(_0xc4ce('0x1'));var path=require(_0xc4ce('0x2'));var timeout=require('connect-timeout');var express=require(_0xc4ce('0x3'));var router=express[_0xc4ce('0x4')]();var fs_extra=require(_0xc4ce('0x5'));var auth=require(_0xc4ce('0x6'));var interaction=require(_0xc4ce('0x7'));var config=require(_0xc4ce('0x8'));var controller=require(_0xc4ce('0x9'));router['get']('/',auth[_0xc4ce('0xa')](),controller[_0xc4ce('0xb')]);router['get'](_0xc4ce('0xc'),auth[_0xc4ce('0xa')](),controller[_0xc4ce('0xd')]);router['get'](_0xc4ce('0xe'),auth[_0xc4ce('0xa')](),controller[_0xc4ce('0xf')]);router['get'](_0xc4ce('0x10'),auth[_0xc4ce('0xa')](),controller[_0xc4ce('0x11')]);router['post']('/',auth['isAuthenticated'](),controller[_0xc4ce('0x12')]);router[_0xc4ce('0x13')](_0xc4ce('0xe'),auth['isAuthenticated'](),controller[_0xc4ce('0x14')]);router[_0xc4ce('0x15')](_0xc4ce('0xc'),auth['isAuthenticated'](),controller['update']);router[_0xc4ce('0x16')]('/:id',auth[_0xc4ce('0xa')](),controller[_0xc4ce('0x17')]);module[_0xc4ce('0x18')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3210=['exports','STRING'];(function(_0x5b1389,_0x3f0664){var _0x559a88=function(_0x12ad09){while(--_0x12ad09){_0x5b1389['push'](_0x5b1389['shift']());}};_0x559a88(++_0x3f0664);}(_0x3210,0x198));var _0x0321=function(_0x4884ee,_0x282dde){_0x4884ee=_0x4884ee-0x0;var _0x4682a5=_0x3210[_0x4884ee];return _0x4682a5;};'use strict';var Sequelize=require('sequelize');module[_0x0321('0x0')]={'name':{'type':Sequelize[_0x0321('0x1')]},'username':{'type':Sequelize[_0x0321('0x1')]},'password':{'type':Sequelize[_0x0321('0x1')]},'remoteUri':{'type':Sequelize['STRING']},'tenantId':{'type':Sequelize[_0x0321('0x1')]},'clientId':{'type':Sequelize['STRING']},'clientSecret':{'type':Sequelize['STRING']},'serverUrl':{'type':Sequelize[_0x0321('0x1')],'allowNull':![]},'description':{'type':Sequelize[_0x0321('0x1')]}};
\ No newline at end of file
+var _0x188f=['STRING','sequelize','exports'];(function(_0x5650d6,_0x1e041e){var _0x261ca0=function(_0x2bb159){while(--_0x2bb159){_0x5650d6['push'](_0x5650d6['shift']());}};_0x261ca0(++_0x1e041e);}(_0x188f,0x19f));var _0xf188=function(_0x63d9c0,_0x58facd){_0x63d9c0=_0x63d9c0-0x0;var _0x45b691=_0x188f[_0x63d9c0];return _0x45b691;};'use strict';var Sequelize=require(_0xf188('0x0'));module[_0xf188('0x1')]={'name':{'type':Sequelize[_0xf188('0x2')]},'username':{'type':Sequelize[_0xf188('0x2')]},'password':{'type':Sequelize['STRING']},'remoteUri':{'type':Sequelize['STRING']},'tenantId':{'type':Sequelize[_0xf188('0x2')]},'clientId':{'type':Sequelize['STRING']},'clientSecret':{'type':Sequelize[_0xf188('0x2')]},'serverUrl':{'type':Sequelize[_0xf188('0x2')],'allowNull':![]},'description':{'type':Sequelize[_0xf188('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb31a=['true','FalseOption','false','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','limit','count','set','apply','reject','save','update','then','destroy','stack','name','send','index','map','Dynamics365Account','rawAttributes','fieldName','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','sort','where','merge','type','VIRTUAL','includeAll','include','findAll','show','params','find','catch','create','body','getConfigurations','Dynamics365Configuration','order','pick','filter','options','addConfiguration','findOne','AccountId','Subjects','getSubjects','channel','getDescriptions','Dynamics365Field','Descriptions','getFields','incident','Incident','PhoneCall','description','customerid','caseorigincode','subject','phonenumber','accountidyominame','actualserviceunits','billedserviceunits','contactidname','contactidyominame','contractidname','createdbyexternalpartyname','createdbyexternalpartyyominame','createdon','createdonbehalfbyname','createdonbehalfbyyominame','customeridtype','customeridyominame','emailaddress','entityimage_timestamp','entityimage_url','escalatedon','exchangerate','firstresponsebykpiidname','importsequencenumber','influencescore','kbarticleidname','masteridname','modifiedbyexternalpartyname','modifiedbyyominame','modifiedon','modifiedonbehalfbyname','msdyn_iotalertname','numberofchildincidents','onholdtime','owneridname','owneridtype','owneridyominame','parentcaseidname','primarycontactidname','primarycontactidyominame','prioritycodename','productidname','resolveby','resolvebykpiidname','responseby','responsiblecontactidname','responsiblecontactidyominame','sentimentvalue','slainvokedidname','slaname','socialprofileidname','statecode','statuscode','subjectidname','ticketnumber','timezoneruleversionnumber','transactioncurrencyidname','utcconversiontimezonecode','versionnumber','concat','username','password','tenantId','clientId','clientSecret','slice','substring','lastIndexOf','format','%s/api/data/v9.0/','POST','https://login.microsoftonline.com/','/oauth2/token','access_token','GET','EntityDefinitions?$select=DisplayName,EntitySetName&$filter=SchemaName\x20eq\x20\x27','Bearer\x20','value','MetadataId','EntityDefinitions(',')?$select=LogicalName&$expand=Attributes($select=LogicalName)','4.0','Attributes','includes','LogicalName','forEach','@odata.type','all','isNil','BooleanAttributeMetadata','push','StringAttributeMetadata','BigIntAttributeMetadata','IntegerAttributeMetadata','StatusAttributeMetadata','EntityNameAttributeMetadata','StateAttributeMetadata','DecimalAttributeMetadata','statusCode','error','Wrong\x20credentials',')/Attributes(',')/Microsoft.Dynamics.CRM.PicklistAttributeMetadata?','$select=DisplayName,LogicalName&$expand=OptionSet($select=Options)','OptionSet','Options','Label','UserLocalizedLabel','Value','DisplayName',')/Microsoft.Dynamics.CRM.BooleanAttributeMetadata?$select=DisplayName,LogicalName&$expand=OptionSet($select=FalseOption,\x20TrueOption)','TrueOption'];(function(_0x17418d,_0x3046fd){var _0x2108c6=function(_0x3a89a1){while(--_0x3a89a1){_0x17418d['push'](_0x17418d['shift']());}};_0x2108c6(++_0x3046fd);}(_0xb31a,0xd4));var _0xab31=function(_0x1afde3,_0xc1f075){_0x1afde3=_0x1afde3-0x0;var _0x54a07c=_0xb31a[_0x1afde3];return _0x54a07c;};'use strict';var emlformat=require(_0xab31('0x0'));var rimraf=require(_0xab31('0x1'));var zipdir=require(_0xab31('0x2'));var jsonpatch=require(_0xab31('0x3'));var rp=require(_0xab31('0x4'));var moment=require(_0xab31('0x5'));var BPromise=require(_0xab31('0x6'));var Mustache=require(_0xab31('0x7'));var util=require(_0xab31('0x8'));var path=require(_0xab31('0x9'));var sox=require(_0xab31('0xa'));var csv=require(_0xab31('0xb'));var ejs=require(_0xab31('0xc'));var fs=require('fs');var fs_extra=require(_0xab31('0xd'));var _=require(_0xab31('0xe'));var squel=require('squel');var crypto=require(_0xab31('0xf'));var jsforce=require(_0xab31('0x10'));var deskjs=require(_0xab31('0x11'));var toCsv=require(_0xab31('0xb'));var querystring=require(_0xab31('0x12'));var Papa=require(_0xab31('0x13'));var Redis=require(_0xab31('0x14'));var authService=require(_0xab31('0x15'));var qs=require(_0xab31('0x16'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0xab31('0x17'))(_0xab31('0x18'));var utils=require('../../config/utils');var config=require(_0xab31('0x19'));var licenseUtil=require(_0xab31('0x1a'));var db=require(_0xab31('0x1b'))['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x5065d2,_0x24f6e4){_0x24f6e4=_0x24f6e4||0xcc;return function(_0xac16ac){if(_0xac16ac){return _0x5065d2[_0xab31('0x1c')](_0x24f6e4);}return _0x5065d2[_0xab31('0x1d')](_0x24f6e4)[_0xab31('0x1e')]();};}function respondWithResult(_0xab1368,_0x3b702e){_0x3b702e=_0x3b702e||0xc8;return function(_0xbdf700){if(_0xbdf700){return _0xab1368[_0xab31('0x1d')](_0x3b702e)['json'](_0xbdf700);}};}function respondWithFilteredResult(_0x55a75c,_0x3f1da0){return function(_0x4bb592){if(_0x4bb592){var _0x1c0a9d=typeof _0x3f1da0[_0xab31('0x1f')]===_0xab31('0x20')&&typeof _0x3f1da0[_0xab31('0x21')]===_0xab31('0x20');var _0x214849=_0x4bb592[_0xab31('0x22')];var _0x4c7d92=_0x1c0a9d?0x0:_0x3f1da0[_0xab31('0x1f')];var _0x3c56a6=_0x1c0a9d?_0x4bb592[_0xab31('0x22')]:_0x3f1da0[_0xab31('0x1f')]+_0x3f1da0[_0xab31('0x21')];var _0x5bdee1;if(_0x3c56a6>=_0x214849){_0x3c56a6=_0x214849;_0x5bdee1=0xc8;}else{_0x5bdee1=0xce;}_0x55a75c[_0xab31('0x1d')](_0x5bdee1);return _0x55a75c[_0xab31('0x23')]('Content-Range',_0x4c7d92+'-'+_0x3c56a6+'/'+_0x214849)['json'](_0x4bb592);}return null;};}function patchUpdates(_0x1a83ce){return function(_0x36b57e){try{jsonpatch[_0xab31('0x24')](_0x36b57e,_0x1a83ce,!![]);}catch(_0x595052){return BPromise[_0xab31('0x25')](_0x595052);}return _0x36b57e[_0xab31('0x26')]();};}function saveUpdates(_0x4a723c,_0x57d61f){return function(_0x9c0007){if(_0x9c0007){return _0x9c0007[_0xab31('0x27')](_0x4a723c)[_0xab31('0x28')](function(_0x8b95b0){return _0x8b95b0;});}return null;};}function removeEntity(_0x4c7238,_0x3a9997){return function(_0x5db7fd){if(_0x5db7fd){return _0x5db7fd[_0xab31('0x29')]()[_0xab31('0x28')](function(){_0x4c7238['status'](0xcc)[_0xab31('0x1e')]();});}};}function handleEntityNotFound(_0x5761fe,_0x340d53){return function(_0x2363b5){if(!_0x2363b5){_0x5761fe[_0xab31('0x1c')](0x194);}return _0x2363b5;};}function handleError(_0x4efbd4,_0x3ff881){_0x3ff881=_0x3ff881||0x1f4;return function(_0x541f42){logger['error'](_0x541f42[_0xab31('0x2a')]);if(_0x541f42['name']){delete _0x541f42[_0xab31('0x2b')];}_0x4efbd4['status'](_0x3ff881)[_0xab31('0x2c')](_0x541f42);};}exports[_0xab31('0x2d')]=function(_0x30473c,_0x24d22c){var _0x429af1={},_0xa7dd3d={},_0x31d29d={'count':0x0,'rows':[]};var _0xb25176=_[_0xab31('0x2e')](db[_0xab31('0x2f')][_0xab31('0x30')],function(_0x40493c){return{'name':_0x40493c[_0xab31('0x31')],'type':_0x40493c['type'][_0xab31('0x32')]};});_0xa7dd3d[_0xab31('0x33')]=_[_0xab31('0x2e')](_0xb25176,'name');_0xa7dd3d[_0xab31('0x34')]=_[_0xab31('0x35')](_0x30473c[_0xab31('0x34')]);_0xa7dd3d[_0xab31('0x36')]=_[_0xab31('0x37')](_0xa7dd3d[_0xab31('0x33')],_0xa7dd3d[_0xab31('0x34')]);_0x429af1[_0xab31('0x38')]=_[_0xab31('0x37')](_0xa7dd3d[_0xab31('0x33')],qs[_0xab31('0x39')](_0x30473c[_0xab31('0x34')]['fields']));_0x429af1['attributes']=_0x429af1[_0xab31('0x38')][_0xab31('0x3a')]?_0x429af1['attributes']:_0xa7dd3d[_0xab31('0x33')];if(!_0x30473c[_0xab31('0x34')][_0xab31('0x3b')]('nolimit')){_0x429af1[_0xab31('0x21')]=qs[_0xab31('0x21')](_0x30473c[_0xab31('0x34')][_0xab31('0x21')]);_0x429af1['offset']=qs['offset'](_0x30473c[_0xab31('0x34')][_0xab31('0x1f')]);}_0x429af1['order']=qs[_0xab31('0x3c')](_0x30473c['query'][_0xab31('0x3c')]);_0x429af1[_0xab31('0x3d')]=qs[_0xab31('0x36')](_['pick'](_0x30473c['query'],_0xa7dd3d[_0xab31('0x36')]),_0xb25176);if(_0x30473c[_0xab31('0x34')]['filter']){_0x429af1[_0xab31('0x3d')]=_[_0xab31('0x3e')](_0x429af1['where'],{'$or':_[_0xab31('0x2e')](_0xb25176,function(_0x579e3d){if(_0x579e3d[_0xab31('0x3f')]!==_0xab31('0x40')){var _0x12d080={};_0x12d080[_0x579e3d[_0xab31('0x2b')]]={'$like':'%'+_0x30473c[_0xab31('0x34')]['filter']+'%'};return _0x12d080;}})});}_0x429af1=_[_0xab31('0x3e')]({},_0x429af1,_0x30473c['options']);var _0xdbb587={'where':_0x429af1[_0xab31('0x3d')]};return db[_0xab31('0x2f')][_0xab31('0x22')](_0xdbb587)['then'](function(_0x4890c4){_0x31d29d[_0xab31('0x22')]=_0x4890c4;if(_0x30473c[_0xab31('0x34')][_0xab31('0x41')]){_0x429af1[_0xab31('0x42')]=[{'all':!![]}];}return db[_0xab31('0x2f')][_0xab31('0x43')](_0x429af1);})[_0xab31('0x28')](function(_0x5ba385){_0x31d29d['rows']=_0x5ba385;return _0x31d29d;})[_0xab31('0x28')](respondWithFilteredResult(_0x24d22c,_0x429af1))['catch'](handleError(_0x24d22c,null));};exports[_0xab31('0x44')]=function(_0x2681fc,_0x3c9b25){var _0x4ecbf9={'raw':![],'where':{'id':_0x2681fc[_0xab31('0x45')]['id']}},_0x63499b={};_0x63499b[_0xab31('0x33')]=_['keys'](db['Dynamics365Account'][_0xab31('0x30')]);_0x63499b[_0xab31('0x34')]=_[_0xab31('0x35')](_0x2681fc['query']);_0x63499b[_0xab31('0x36')]=_['intersection'](_0x63499b['model'],_0x63499b[_0xab31('0x34')]);_0x4ecbf9[_0xab31('0x38')]=_[_0xab31('0x37')](_0x63499b[_0xab31('0x33')],qs[_0xab31('0x39')](_0x2681fc[_0xab31('0x34')][_0xab31('0x39')]));_0x4ecbf9[_0xab31('0x38')]=_0x4ecbf9[_0xab31('0x38')][_0xab31('0x3a')]?_0x4ecbf9['attributes']:_0x63499b[_0xab31('0x33')];if(_0x2681fc[_0xab31('0x34')]['includeAll']){_0x4ecbf9[_0xab31('0x42')]=[{'all':!![]}];}_0x4ecbf9=_[_0xab31('0x3e')]({},_0x4ecbf9,_0x2681fc['options']);return db[_0xab31('0x2f')][_0xab31('0x46')](_0x4ecbf9)[_0xab31('0x28')](handleEntityNotFound(_0x3c9b25,null))[_0xab31('0x28')](respondWithResult(_0x3c9b25,null))[_0xab31('0x47')](handleError(_0x3c9b25,null));};exports['create']=function(_0x11a657,_0x226fd6){return db[_0xab31('0x2f')][_0xab31('0x48')](_0x11a657[_0xab31('0x49')],{})[_0xab31('0x28')](respondWithResult(_0x226fd6,0xc9))['catch'](handleError(_0x226fd6,null));};exports[_0xab31('0x27')]=function(_0x491b5b,_0x306eb8){if(_0x491b5b['body']['id']){delete _0x491b5b[_0xab31('0x49')]['id'];}return db['Dynamics365Account'][_0xab31('0x46')]({'where':{'id':_0x491b5b[_0xab31('0x45')]['id']}})['then'](handleEntityNotFound(_0x306eb8,null))[_0xab31('0x28')](saveUpdates(_0x491b5b[_0xab31('0x49')],null))[_0xab31('0x28')](respondWithResult(_0x306eb8,null))[_0xab31('0x47')](handleError(_0x306eb8,null));};exports[_0xab31('0x29')]=function(_0x242cf9,_0x3a3c36){return db['Dynamics365Account'][_0xab31('0x46')]({'where':{'id':_0x242cf9['params']['id']}})[_0xab31('0x28')](handleEntityNotFound(_0x3a3c36,null))[_0xab31('0x28')](removeEntity(_0x3a3c36,null))[_0xab31('0x47')](handleError(_0x3a3c36,null));};exports[_0xab31('0x4a')]=function(_0x1bb8df,_0x2d1cad,_0x50f7da){var _0xaefa91={};var _0x1eaa05={};var _0x122a80;var _0x78fa85;return db[_0xab31('0x2f')]['findOne']({'where':{'id':_0x1bb8df['params']['id']}})[_0xab31('0x28')](handleEntityNotFound(_0x2d1cad,null))[_0xab31('0x28')](function(_0x65d550){if(_0x65d550){_0x122a80=_0x65d550;_0x1eaa05[_0xab31('0x33')]=_[_0xab31('0x35')](db[_0xab31('0x4b')][_0xab31('0x30')]);_0x1eaa05[_0xab31('0x34')]=_['keys'](_0x1bb8df[_0xab31('0x34')]);_0x1eaa05['filters']=_[_0xab31('0x37')](_0x1eaa05[_0xab31('0x33')],_0x1eaa05['query']);_0xaefa91[_0xab31('0x38')]=_[_0xab31('0x37')](_0x1eaa05['model'],qs[_0xab31('0x39')](_0x1bb8df[_0xab31('0x34')]['fields']));_0xaefa91[_0xab31('0x38')]=_0xaefa91['attributes'][_0xab31('0x3a')]?_0xaefa91[_0xab31('0x38')]:_0x1eaa05[_0xab31('0x33')];_0xaefa91[_0xab31('0x4c')]=qs[_0xab31('0x3c')](_0x1bb8df['query'][_0xab31('0x3c')]);_0xaefa91[_0xab31('0x3d')]=qs[_0xab31('0x36')](_[_0xab31('0x4d')](_0x1bb8df['query'],_0x1eaa05[_0xab31('0x36')]));if(_0x1bb8df[_0xab31('0x34')][_0xab31('0x4e')]){_0xaefa91[_0xab31('0x3d')]=_[_0xab31('0x3e')](_0xaefa91[_0xab31('0x3d')],{'$or':_[_0xab31('0x2e')](_0xaefa91[_0xab31('0x38')],function(_0x3b476e){var _0x4e44af={};_0x4e44af[_0x3b476e]={'$like':'%'+_0x1bb8df[_0xab31('0x34')][_0xab31('0x4e')]+'%'};return _0x4e44af;})});}_0xaefa91=_[_0xab31('0x3e')]({},_0xaefa91,_0x1bb8df[_0xab31('0x4f')]);return _0x122a80[_0xab31('0x4a')](_0xaefa91);}})[_0xab31('0x28')](function(_0x1173ff){if(_0x1173ff){_0x78fa85=_0x1173ff[_0xab31('0x3a')];if(!_0x1bb8df[_0xab31('0x34')][_0xab31('0x3b')]('nolimit')){_0xaefa91['limit']=qs[_0xab31('0x21')](_0x1bb8df[_0xab31('0x34')][_0xab31('0x21')]);_0xaefa91[_0xab31('0x1f')]=qs['offset'](_0x1bb8df['query']['offset']);}return _0x122a80[_0xab31('0x4a')](_0xaefa91);}})['then'](function(_0x2d3fc3){if(_0x2d3fc3){return _0x2d3fc3?{'count':_0x78fa85,'rows':_0x2d3fc3}:null;}})[_0xab31('0x28')](respondWithResult(_0x2d1cad,null))[_0xab31('0x47')](handleError(_0x2d1cad,null));};exports[_0xab31('0x50')]=function(_0x41733a,_0x236804,_0x5b27ab){if(_0x41733a['body']['id']){delete _0x41733a[_0xab31('0x49')]['id'];}return db[_0xab31('0x2f')][_0xab31('0x51')]({'where':{'id':_0x41733a[_0xab31('0x45')]['id']}})[_0xab31('0x28')](handleEntityNotFound(_0x236804,null))['then'](function(_0xbc00b4){if(_0xbc00b4){_0x41733a[_0xab31('0x49')][_0xab31('0x52')]=_0xbc00b4['id'];_0x41733a[_0xab31('0x49')][_0xab31('0x53')]=integrations[_0xab31('0x54')](_0x41733a[_0xab31('0x49')][_0xab31('0x55')],_0x41733a[_0xab31('0x49')]['type']);_0x41733a[_0xab31('0x49')]['Descriptions']=integrations[_0xab31('0x56')](_0x41733a[_0xab31('0x49')]['channel'],_0x41733a[_0xab31('0x49')][_0xab31('0x3f')]);return db[_0xab31('0x4b')][_0xab31('0x48')](_0x41733a[_0xab31('0x49')],{'include':[{'model':db[_0xab31('0x57')],'as':_0xab31('0x53')},{'model':db[_0xab31('0x57')],'as':_0xab31('0x58')}]});}return null;})[_0xab31('0x28')](respondWithResult(_0x236804,null))[_0xab31('0x47')](handleError(_0x236804,null));};exports[_0xab31('0x59')]=function(_0x2e628a,_0x4160b1,_0x57dca8){var _0x2765f4=_0x2e628a['query']['ticketType'];var _0x3ec75f=_0x2765f4===_0xab31('0x5a')?_0xab31('0x5b'):_0xab31('0x5c');var _0x1be3a0='';var _0x2b8f29='';var _0x2051f6='';var _0x342717='';var _0x29a5a5='';var _0x17207c='';var _0x1be045='';var _0x33fb8d='';var _0x2c3074=['title',_0xab31('0x5d'),_0xab31('0x5e'),'ownerid',_0xab31('0x5f'),_0xab31('0x60'),_0xab31('0x61'),'regardingobjectid','directioncode','phonecall_activity_parties'];var _0x4b26e0=['accountidname',_0xab31('0x62'),_0xab31('0x63'),_0xab31('0x64'),_0xab31('0x65'),_0xab31('0x66'),'contractdetailidname',_0xab31('0x67'),_0xab31('0x68'),_0xab31('0x69'),'createdbyname','createdbyyominame',_0xab31('0x6a'),_0xab31('0x6b'),_0xab31('0x6c'),'customeridname',_0xab31('0x6d'),_0xab31('0x6e'),_0xab31('0x6f'),'entitlementidname',_0xab31('0x70'),_0xab31('0x71'),_0xab31('0x72'),_0xab31('0x73'),_0xab31('0x74'),'followupby',_0xab31('0x75'),_0xab31('0x76'),_0xab31('0x77'),'lastonholdtime',_0xab31('0x78'),_0xab31('0x79'),'modifiedbyexternalpartyyominame','modifiedbyname',_0xab31('0x7a'),_0xab31('0x7b'),_0xab31('0x7c'),'modifiedonbehalfbyyominame','msdyn_incidenttypename',_0xab31('0x7d'),_0xab31('0x7e'),_0xab31('0x7f'),'overriddencreatedon',_0xab31('0x80'),_0xab31('0x81'),_0xab31('0x82'),_0xab31('0x83'),_0xab31('0x84'),_0xab31('0x85'),_0xab31('0x86'),_0xab31('0x87'),'productserialnumber',_0xab31('0x88'),_0xab31('0x89'),_0xab31('0x8a'),_0xab31('0x8b'),_0xab31('0x8c'),_0xab31('0x8d'),_0xab31('0x8e'),_0xab31('0x8f'),_0xab31('0x90'),_0xab31('0x91'),_0xab31('0x92'),_0xab31('0x93'),_0xab31('0x94'),_0xab31('0x95'),_0xab31('0x96'),'traversedpath',_0xab31('0x97'),_0xab31('0x98')];var _0xf035e=_0x2c3074[_0xab31('0x99')](_0x4b26e0);return db[_0xab31('0x2f')][_0xab31('0x51')]({'where':{'id':_0x2e628a['params']['id']},'attributes':['id',_0xab31('0x9a'),_0xab31('0x9b'),'remoteUri',_0xab31('0x9c'),_0xab31('0x9d'),_0xab31('0x9e')]})[_0xab31('0x28')](handleEntityNotFound(_0x4160b1,null))[_0xab31('0x28')](function(_0x5b9783){if(_0x5b9783){_0x33fb8d=_0x5b9783['remoteUri'];var _0x1f3ce9=_0x33fb8d[_0xab31('0x9f')](-0x1);if(_0x1f3ce9==='/'){_0x33fb8d=_0x33fb8d[_0xab31('0xa0')](0x0,_0x33fb8d[_0xab31('0xa1')](_0x1f3ce9));}_0x1be045=util[_0xab31('0xa2')](_0xab31('0xa3'),_0x33fb8d);var _0x1f3ca7={'method':_0xab31('0xa4'),'uri':_0xab31('0xa5')+_0x5b9783['tenantId']+_0xab31('0xa6'),'form':{'client_id':_0x5b9783[_0xab31('0x9d')],'resource':_0x33fb8d,'username':_0x5b9783[_0xab31('0x9a')],'password':_0x5b9783[_0xab31('0x9b')],'grant_type':_0xab31('0x9b'),'client_secret':_0x5b9783[_0xab31('0x9e')]},'json':!![]};return rp(_0x1f3ca7);}})[_0xab31('0x28')](function(_0x3dc8ff){_0x17207c=_0x3dc8ff[_0xab31('0xa7')];var _0x5b670f={'method':_0xab31('0xa8'),'uri':encodeURI(_0x1be045+_0xab31('0xa9')+_0x3ec75f+'\x27'),'headers':{'Authorization':_0xab31('0xaa')+_0x17207c,'If-None-Match':null,'OData-Version':'4.0'},'json':!![]};return rp(_0x5b670f);})[_0xab31('0x28')](function(_0x9a5a62){var _0x59fa43=_0x9a5a62[_0xab31('0xab')][0x0];var _0x123c07=_0x59fa43[_0xab31('0xac')];var _0x303598={'method':_0xab31('0xa8'),'uri':_0x1be045+_0xab31('0xad')+_0x123c07+_0xab31('0xae'),'headers':{'Authorization':_0xab31('0xaa')+_0x17207c,'If-None-Match':null,'OData-Version':_0xab31('0xaf')},'json':!![]};return rp(_0x303598);})[_0xab31('0x28')](function(_0x2db5e9){_0x1be3a0=_0x2db5e9;_0x2b8f29=_0x1be3a0[_0xab31('0xb0')];_0x2b8f29=_['remove'](_0x2b8f29,function(_0x56859b){return!_0xf035e[_0xab31('0xb1')](_0x56859b[_0xab31('0xb2')]);});var _0x4b4cd0=[];var _0x195f28=[];_0x2b8f29[_0xab31('0xb3')](function(_0x4519ff){if(_0x4519ff[_0xab31('0xb4')]){var _0x479965=_0x4519ff['@odata.type'][_0xab31('0xa0')](_0x4519ff['@odata.type'][_0xab31('0xa1')]('.')+0x1);if(_0x479965==='PicklistAttributeMetadata'){_0x4b4cd0['push'](getSelectList(_0x1be045,_0x2765f4,_0x195f28,_0x1be3a0[_0xab31('0xac')],_0x4519ff[_0xab31('0xac')],_0x17207c));}}});return Promise[_0xab31('0xb5')](_0x4b4cd0);})[_0xab31('0x28')](function(_0x58a680){_0x2051f6=_0x58a680[0x0];var _0x46839d=[];var _0x5dff37=[];_0x2b8f29['forEach'](function(_0x32d9f9){if(!_[_0xab31('0xb6')](_0x32d9f9[_0xab31('0xb4')])){var _0x8c3b81=_0x32d9f9[_0xab31('0xb4')][_0xab31('0xa0')](_0x32d9f9[_0xab31('0xb4')][_0xab31('0xa1')]('.')+0x1);if(_0x8c3b81===_0xab31('0xb7')){_0x46839d[_0xab31('0xb8')](getBooleanList(_0x1be045,_0x2765f4,_0x5dff37,_0x1be3a0['MetadataId'],_0x32d9f9[_0xab31('0xac')],_0x17207c));}}});return Promise[_0xab31('0xb5')](_0x46839d);})[_0xab31('0x28')](function(_0x755837){_0x342717=_0x755837[0x0];var _0xa781da=[];var _0x34ef46=[];_0x2b8f29[_0xab31('0xb3')](function(_0x477eef){if(_0x477eef[_0xab31('0xb4')]){var _0x3de882=_0x477eef[_0xab31('0xb4')][_0xab31('0xa0')](_0x477eef[_0xab31('0xb4')][_0xab31('0xa1')]('.')+0x1);if(_0x3de882===_0xab31('0xb9')||_0x3de882==='DoubleAttributeMetadata'||_0x3de882===_0xab31('0xba')||_0x3de882===_0xab31('0xbb')||_0x3de882==='MemoAttributeMetadata'||_0x3de882==='DateTimeAttributeMetadata'||_0x3de882===_0xab31('0xbc')||_0x3de882===_0xab31('0xbd')||_0x3de882===_0xab31('0xbe')||_0x3de882===_0xab31('0xbf')){_0xa781da[_0xab31('0xb8')](getInputList(_0x1be045,_0x2765f4,_0x3de882,_0x34ef46,_0x1be3a0[_0xab31('0xac')],_0x477eef[_0xab31('0xac')],_0x17207c));}}});return Promise[_0xab31('0xb5')](_0xa781da);})[_0xab31('0x28')](function(_0x394b22){_0x29a5a5=_0x394b22[0x0];var _0x32d1e1=_0x2051f6['concat'](_0x342717)[_0xab31('0x99')](_0x29a5a5);var _0x3dbc81={'count':_0x32d1e1[_0xab31('0x3a')],'rows':_0x32d1e1};return _0x3dbc81;})[_0xab31('0x28')](respondWithResult(_0x4160b1,null))[_0xab31('0x47')](function(_0x58d3bd){var _0x466a6e=_0x2e628a[_0xab31('0x34')]['test']?0x1f4:_0x58d3bd[_0xab31('0xc0')]||0x1f4;logger[_0xab31('0xc1')](_0x58d3bd[_0xab31('0x2a')]);delete _0x58d3bd[_0xab31('0x2b')];if(_0x466a6e===0x191){_0x466a6e=0x190;}_0x4160b1[_0xab31('0x1d')](_0x466a6e)[_0xab31('0x2c')](_0x2e628a[_0xab31('0x34')]['test']?{'message':_0xab31('0xc2'),'statusCode':_0x58d3bd[_0xab31('0xc0')]}:_0x58d3bd);});};function getSelectList(_0x3c2131,_0x4ebd8b,_0x151e16,_0xe5e18b,_0x191fac,_0x5ecafe){var _0x5013f5={'method':'GET','uri':_0x3c2131+_0xab31('0xad')+_0xe5e18b+_0xab31('0xc3')+_0x191fac+_0xab31('0xc4')+_0xab31('0xc5'),'headers':{'Authorization':_0xab31('0xaa')+_0x5ecafe,'If-None-Match':null,'OData-Version':'4.0'},'json':!![]};return rp(_0x5013f5)[_0xab31('0x28')](function(_0x4fb60a){var _0x24dece=[];var _0x1bf370=_0x4fb60a[_0xab31('0xc6')][_0xab31('0xc7')];_0x1bf370['forEach'](function(_0x380682){_0x24dece[_0xab31('0xb8')]({'name':_0x380682[_0xab31('0xc8')][_0xab31('0xc9')]['Label'],'value':String(_0x380682[_0xab31('0xca')])});});var _0x1f0e97={'id':_0x4ebd8b+'_'+_0x4fb60a[_0xab31('0xb2')],'name':_0x4fb60a[_0xab31('0xcb')]['UserLocalizedLabel'][_0xab31('0xc8')],'custom':![],'options':_0x24dece};_0x151e16[_0xab31('0xb8')](_0x1f0e97);return _0x151e16;});}function getBooleanList(_0x4f1c63,_0x2df79e,_0x1e225b,_0x3fb9c6,_0x551e85,_0x3480a9){var _0x3013e9={'method':'GET','uri':_0x4f1c63+'EntityDefinitions('+_0x3fb9c6+_0xab31('0xc3')+_0x551e85+_0xab31('0xcc'),'headers':{'Authorization':'Bearer\x20'+_0x3480a9,'If-None-Match':null,'OData-Version':'4.0'},'json':!![]};return rp(_0x3013e9)[_0xab31('0x28')](function(_0x577845){var _0x1762a0=[];_0x1762a0[_0xab31('0xb8')]({'name':_0x577845['OptionSet'][_0xab31('0xcd')]['Label']['UserLocalizedLabel'][_0xab31('0xc8')],'value':_0xab31('0xce')},{'name':_0x577845[_0xab31('0xc6')][_0xab31('0xcf')]['Label'][_0xab31('0xc9')][_0xab31('0xc8')],'value':_0xab31('0xd0')});var _0x45c4dc={'id':_0x2df79e+'_'+_0x577845['LogicalName'],'name':_0x577845[_0xab31('0xcb')][_0xab31('0xc9')][_0xab31('0xc8')],'custom':![],'options':_0x1762a0};_0x1e225b['push'](_0x45c4dc);return _0x1e225b;});}function getInputList(_0xe2b64f,_0x515cc8,_0x3ddd58,_0x1569b4,_0x359622,_0x5430da,_0x1d915b){var _0x1935ee={'method':_0xab31('0xa8'),'uri':_0xe2b64f+_0xab31('0xad')+_0x359622+_0xab31('0xc3')+_0x5430da+')/Microsoft.Dynamics.CRM.'+_0x3ddd58+'?$select=DisplayName,LogicalName','headers':{'Authorization':_0xab31('0xaa')+_0x1d915b,'If-None-Match':null,'OData-Version':'4.0'},'json':!![]};return rp(_0x1935ee)[_0xab31('0x28')](function(_0xbeb934){var _0x18bf1c={'id':_0x515cc8+'_'+_0xbeb934[_0xab31('0xb2')],'name':_0xbeb934[_0xab31('0xcb')][_0xab31('0xc9')]?_0xbeb934[_0xab31('0xcb')][_0xab31('0xc9')]['Label']:_0xbeb934[_0xab31('0xb2')],'custom':![],'options':[]};_0x1569b4[_0xab31('0xb8')](_0x18bf1c);return _0x1569b4;});}
\ No newline at end of file
+var _0x99c9=['customeridname','customeridtype','customeridyominame','emailaddress','entitlementidname','entityimage_timestamp','entityimage_url','escalatedon','exchangerate','firstresponsebykpiidname','followupby','influencescore','kbarticleidname','lastonholdtime','masteridname','modifiedbyexternalpartyname','modifiedbyexternalpartyyominame','modifiedon','modifiedonbehalfbyname','msdyn_incidenttypename','msdyn_iotalertname','numberofchildincidents','overriddencreatedon','owneridtype','owneridyominame','parentcaseidname','primarycontactidname','primarycontactidyominame','prioritycodename','productidname','productserialnumber','responsiblecontactidname','responsiblecontactidyominame','sentimentvalue','slainvokedidname','slaname','socialprofileidname','statecode','subjectidname','ticketnumber','timezoneruleversionnumber','transactioncurrencyidname','traversedpath','versionnumber','concat','username','remoteUri','tenantId','clientId','clientSecret','slice','substring','lastIndexOf','format','%s/api/data/v9.0/','POST','https://login.microsoftonline.com/','/oauth2/token','password','access_token','GET','EntityDefinitions?$select=DisplayName,EntitySetName&$filter=SchemaName\x20eq\x20\x27','Bearer\x20','4.0','EntityDefinitions(',')?$select=LogicalName&$expand=Attributes($select=LogicalName)','remove','includes','LogicalName','@odata.type','PicklistAttributeMetadata','push','MetadataId','all','forEach','isNil','DoubleAttributeMetadata','BigIntAttributeMetadata','MemoAttributeMetadata','DateTimeAttributeMetadata','StatusAttributeMetadata','EntityNameAttributeMetadata','StateAttributeMetadata','DecimalAttributeMetadata','test','statusCode','Wrong\x20credentials',')/Attributes(','$select=DisplayName,LogicalName&$expand=OptionSet($select=Options)','Label','UserLocalizedLabel','Value','DisplayName',')/Microsoft.Dynamics.CRM.BooleanAttributeMetadata?$select=DisplayName,LogicalName&$expand=OptionSet($select=FalseOption,\x20TrueOption)','OptionSet','TrueOption','true','FalseOption','false',')/Microsoft.Dynamics.CRM.','?$select=DisplayName,LogicalName','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','end','json','undefined','limit','count','offset','status','set','Content-Range','reject','save','update','then','destroy','error','stack','name','index','map','Dynamics365Account','rawAttributes','fieldName','type','key','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','filters','find','create','body','params','getConfigurations','findOne','Dynamics365Configuration','order','addConfiguration','Subjects','getSubjects','channel','Descriptions','getDescriptions','Dynamics365Field','getFields','incident','Incident','title','description','customerid','ownerid','caseorigincode','phonenumber','regardingobjectid','accountidname','accountidyominame','actualserviceunits','contactidname','contactidyominame','contractdetailidname','createdbyexternalpartyname','createdbyname','createdbyyominame','createdon','createdonbehalfbyname'];(function(_0x42cae2,_0x284ef8){var _0x5f256f=function(_0x41abc8){while(--_0x41abc8){_0x42cae2['push'](_0x42cae2['shift']());}};_0x5f256f(++_0x284ef8);}(_0x99c9,0x13c));var _0x999c=function(_0x4a9fb1,_0x273043){_0x4a9fb1=_0x4a9fb1-0x0;var _0x348672=_0x99c9[_0x4a9fb1];return _0x348672;};'use strict';var emlformat=require(_0x999c('0x0'));var rimraf=require(_0x999c('0x1'));var zipdir=require(_0x999c('0x2'));var jsonpatch=require(_0x999c('0x3'));var rp=require(_0x999c('0x4'));var moment=require(_0x999c('0x5'));var BPromise=require(_0x999c('0x6'));var Mustache=require('mustache');var util=require(_0x999c('0x7'));var path=require(_0x999c('0x8'));var sox=require(_0x999c('0x9'));var csv=require(_0x999c('0xa'));var ejs=require(_0x999c('0xb'));var fs=require('fs');var fs_extra=require(_0x999c('0xc'));var _=require(_0x999c('0xd'));var squel=require(_0x999c('0xe'));var crypto=require(_0x999c('0xf'));var jsforce=require(_0x999c('0x10'));var deskjs=require(_0x999c('0x11'));var toCsv=require(_0x999c('0xa'));var querystring=require(_0x999c('0x12'));var Papa=require(_0x999c('0x13'));var Redis=require('ioredis');var authService=require(_0x999c('0x14'));var qs=require(_0x999c('0x15'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x999c('0x16'));var logger=require(_0x999c('0x17'))(_0x999c('0x18'));var utils=require(_0x999c('0x19'));var config=require(_0x999c('0x1a'));var licenseUtil=require(_0x999c('0x1b'));var db=require(_0x999c('0x1c'))['db'];var integrations=require(_0x999c('0x1d'));function respondWithStatusCode(_0x2e5f7e,_0x44a5bc){_0x44a5bc=_0x44a5bc||0xcc;return function(_0x5b11ff){if(_0x5b11ff){return _0x2e5f7e[_0x999c('0x1e')](_0x44a5bc);}return _0x2e5f7e['status'](_0x44a5bc)[_0x999c('0x1f')]();};}function respondWithResult(_0xd14862,_0x4f2916){_0x4f2916=_0x4f2916||0xc8;return function(_0x54a2fa){if(_0x54a2fa){return _0xd14862['status'](_0x4f2916)[_0x999c('0x20')](_0x54a2fa);}};}function respondWithFilteredResult(_0xb3e981,_0x203a73){return function(_0x116f08){if(_0x116f08){var _0x2a6667=typeof _0x203a73['offset']===_0x999c('0x21')&&typeof _0x203a73[_0x999c('0x22')]===_0x999c('0x21');var _0xc05363=_0x116f08[_0x999c('0x23')];var _0x500048=_0x2a6667?0x0:_0x203a73[_0x999c('0x24')];var _0x3fb85e=_0x2a6667?_0x116f08[_0x999c('0x23')]:_0x203a73[_0x999c('0x24')]+_0x203a73[_0x999c('0x22')];var _0x52337e;if(_0x3fb85e>=_0xc05363){_0x3fb85e=_0xc05363;_0x52337e=0xc8;}else{_0x52337e=0xce;}_0xb3e981[_0x999c('0x25')](_0x52337e);return _0xb3e981[_0x999c('0x26')](_0x999c('0x27'),_0x500048+'-'+_0x3fb85e+'/'+_0xc05363)[_0x999c('0x20')](_0x116f08);}return null;};}function patchUpdates(_0xceb421){return function(_0x1219d6){try{jsonpatch['apply'](_0x1219d6,_0xceb421,!![]);}catch(_0x345b45){return BPromise[_0x999c('0x28')](_0x345b45);}return _0x1219d6[_0x999c('0x29')]();};}function saveUpdates(_0x2bcfc9,_0x1c6e55){return function(_0xd1b8bc){if(_0xd1b8bc){return _0xd1b8bc[_0x999c('0x2a')](_0x2bcfc9)[_0x999c('0x2b')](function(_0x4002d2){return _0x4002d2;});}return null;};}function removeEntity(_0x281720,_0x2cfd83){return function(_0x53a319){if(_0x53a319){return _0x53a319[_0x999c('0x2c')]()[_0x999c('0x2b')](function(){_0x281720[_0x999c('0x25')](0xcc)[_0x999c('0x1f')]();});}};}function handleEntityNotFound(_0x2256fd,_0x15d102){return function(_0x575897){if(!_0x575897){_0x2256fd[_0x999c('0x1e')](0x194);}return _0x575897;};}function handleError(_0x43293f,_0x1c866f){_0x1c866f=_0x1c866f||0x1f4;return function(_0x5c7fd4){logger[_0x999c('0x2d')](_0x5c7fd4[_0x999c('0x2e')]);if(_0x5c7fd4['name']){delete _0x5c7fd4[_0x999c('0x2f')];}_0x43293f['status'](_0x1c866f)['send'](_0x5c7fd4);};}exports[_0x999c('0x30')]=function(_0x42cb25,_0x457df3){var _0x2de6d5={},_0x3737e9={},_0x42c2e8={'count':0x0,'rows':[]};var _0x22cb67=_[_0x999c('0x31')](db[_0x999c('0x32')][_0x999c('0x33')],function(_0x532bae){return{'name':_0x532bae[_0x999c('0x34')],'type':_0x532bae[_0x999c('0x35')][_0x999c('0x36')]};});_0x3737e9[_0x999c('0x37')]=_[_0x999c('0x31')](_0x22cb67,_0x999c('0x2f'));_0x3737e9[_0x999c('0x38')]=_[_0x999c('0x39')](_0x42cb25['query']);_0x3737e9['filters']=_[_0x999c('0x3a')](_0x3737e9[_0x999c('0x37')],_0x3737e9[_0x999c('0x38')]);_0x2de6d5[_0x999c('0x3b')]=_['intersection'](_0x3737e9[_0x999c('0x37')],qs[_0x999c('0x3c')](_0x42cb25[_0x999c('0x38')][_0x999c('0x3c')]));_0x2de6d5['attributes']=_0x2de6d5['attributes'][_0x999c('0x3d')]?_0x2de6d5[_0x999c('0x3b')]:_0x3737e9[_0x999c('0x37')];if(!_0x42cb25[_0x999c('0x38')][_0x999c('0x3e')](_0x999c('0x3f'))){_0x2de6d5[_0x999c('0x22')]=qs['limit'](_0x42cb25['query']['limit']);_0x2de6d5[_0x999c('0x24')]=qs[_0x999c('0x24')](_0x42cb25['query']['offset']);}_0x2de6d5['order']=qs[_0x999c('0x40')](_0x42cb25[_0x999c('0x38')][_0x999c('0x40')]);_0x2de6d5[_0x999c('0x41')]=qs['filters'](_[_0x999c('0x42')](_0x42cb25[_0x999c('0x38')],_0x3737e9['filters']),_0x22cb67);if(_0x42cb25['query'][_0x999c('0x43')]){_0x2de6d5['where']=_[_0x999c('0x44')](_0x2de6d5['where'],{'$or':_[_0x999c('0x31')](_0x22cb67,function(_0x21850d){if(_0x21850d[_0x999c('0x35')]!==_0x999c('0x45')){var _0x59029b={};_0x59029b[_0x21850d['name']]={'$like':'%'+_0x42cb25[_0x999c('0x38')][_0x999c('0x43')]+'%'};return _0x59029b;}})});}_0x2de6d5=_[_0x999c('0x44')]({},_0x2de6d5,_0x42cb25[_0x999c('0x46')]);var _0x5e21b6={'where':_0x2de6d5[_0x999c('0x41')]};return db[_0x999c('0x32')][_0x999c('0x23')](_0x5e21b6)[_0x999c('0x2b')](function(_0x576360){_0x42c2e8[_0x999c('0x23')]=_0x576360;if(_0x42cb25['query'][_0x999c('0x47')]){_0x2de6d5[_0x999c('0x48')]=[{'all':!![]}];}return db['Dynamics365Account'][_0x999c('0x49')](_0x2de6d5);})[_0x999c('0x2b')](function(_0x383517){_0x42c2e8[_0x999c('0x4a')]=_0x383517;return _0x42c2e8;})[_0x999c('0x2b')](respondWithFilteredResult(_0x457df3,_0x2de6d5))[_0x999c('0x4b')](handleError(_0x457df3,null));};exports[_0x999c('0x4c')]=function(_0x3edf69,_0x4ef478){var _0x563e11={'raw':![],'where':{'id':_0x3edf69['params']['id']}},_0x499095={};_0x499095[_0x999c('0x37')]=_[_0x999c('0x39')](db[_0x999c('0x32')][_0x999c('0x33')]);_0x499095[_0x999c('0x38')]=_['keys'](_0x3edf69[_0x999c('0x38')]);_0x499095[_0x999c('0x4d')]=_[_0x999c('0x3a')](_0x499095[_0x999c('0x37')],_0x499095[_0x999c('0x38')]);_0x563e11['attributes']=_[_0x999c('0x3a')](_0x499095[_0x999c('0x37')],qs[_0x999c('0x3c')](_0x3edf69[_0x999c('0x38')][_0x999c('0x3c')]));_0x563e11[_0x999c('0x3b')]=_0x563e11[_0x999c('0x3b')][_0x999c('0x3d')]?_0x563e11[_0x999c('0x3b')]:_0x499095['model'];if(_0x3edf69['query'][_0x999c('0x47')]){_0x563e11[_0x999c('0x48')]=[{'all':!![]}];}_0x563e11=_[_0x999c('0x44')]({},_0x563e11,_0x3edf69[_0x999c('0x46')]);return db[_0x999c('0x32')][_0x999c('0x4e')](_0x563e11)[_0x999c('0x2b')](handleEntityNotFound(_0x4ef478,null))[_0x999c('0x2b')](respondWithResult(_0x4ef478,null))[_0x999c('0x4b')](handleError(_0x4ef478,null));};exports[_0x999c('0x4f')]=function(_0x3457d6,_0x4ca662){return db[_0x999c('0x32')][_0x999c('0x4f')](_0x3457d6[_0x999c('0x50')],{})[_0x999c('0x2b')](respondWithResult(_0x4ca662,0xc9))[_0x999c('0x4b')](handleError(_0x4ca662,null));};exports[_0x999c('0x2a')]=function(_0x11f3bf,_0x396e2c){if(_0x11f3bf['body']['id']){delete _0x11f3bf[_0x999c('0x50')]['id'];}return db[_0x999c('0x32')][_0x999c('0x4e')]({'where':{'id':_0x11f3bf[_0x999c('0x51')]['id']}})[_0x999c('0x2b')](handleEntityNotFound(_0x396e2c,null))[_0x999c('0x2b')](saveUpdates(_0x11f3bf[_0x999c('0x50')],null))['then'](respondWithResult(_0x396e2c,null))['catch'](handleError(_0x396e2c,null));};exports[_0x999c('0x2c')]=function(_0x3f134a,_0x37fb36){return db[_0x999c('0x32')][_0x999c('0x4e')]({'where':{'id':_0x3f134a['params']['id']}})[_0x999c('0x2b')](handleEntityNotFound(_0x37fb36,null))[_0x999c('0x2b')](removeEntity(_0x37fb36,null))[_0x999c('0x4b')](handleError(_0x37fb36,null));};exports[_0x999c('0x52')]=function(_0x5c066e,_0x19314a,_0x53cf5c){var _0x123192={};var _0x1129e9={};var _0x243913;var _0x1590ea;return db[_0x999c('0x32')][_0x999c('0x53')]({'where':{'id':_0x5c066e[_0x999c('0x51')]['id']}})['then'](handleEntityNotFound(_0x19314a,null))[_0x999c('0x2b')](function(_0x68f8f4){if(_0x68f8f4){_0x243913=_0x68f8f4;_0x1129e9[_0x999c('0x37')]=_['keys'](db[_0x999c('0x54')][_0x999c('0x33')]);_0x1129e9[_0x999c('0x38')]=_['keys'](_0x5c066e[_0x999c('0x38')]);_0x1129e9['filters']=_[_0x999c('0x3a')](_0x1129e9[_0x999c('0x37')],_0x1129e9[_0x999c('0x38')]);_0x123192[_0x999c('0x3b')]=_['intersection'](_0x1129e9[_0x999c('0x37')],qs['fields'](_0x5c066e['query'][_0x999c('0x3c')]));_0x123192[_0x999c('0x3b')]=_0x123192['attributes'][_0x999c('0x3d')]?_0x123192['attributes']:_0x1129e9[_0x999c('0x37')];_0x123192[_0x999c('0x55')]=qs['sort'](_0x5c066e[_0x999c('0x38')][_0x999c('0x40')]);_0x123192[_0x999c('0x41')]=qs[_0x999c('0x4d')](_[_0x999c('0x42')](_0x5c066e[_0x999c('0x38')],_0x1129e9[_0x999c('0x4d')]));if(_0x5c066e[_0x999c('0x38')][_0x999c('0x43')]){_0x123192['where']=_[_0x999c('0x44')](_0x123192[_0x999c('0x41')],{'$or':_[_0x999c('0x31')](_0x123192[_0x999c('0x3b')],function(_0x171e60){var _0x3c652b={};_0x3c652b[_0x171e60]={'$like':'%'+_0x5c066e['query']['filter']+'%'};return _0x3c652b;})});}_0x123192=_['merge']({},_0x123192,_0x5c066e['options']);return _0x243913[_0x999c('0x52')](_0x123192);}})[_0x999c('0x2b')](function(_0x36fd71){if(_0x36fd71){_0x1590ea=_0x36fd71['length'];if(!_0x5c066e[_0x999c('0x38')]['hasOwnProperty'](_0x999c('0x3f'))){_0x123192['limit']=qs[_0x999c('0x22')](_0x5c066e[_0x999c('0x38')][_0x999c('0x22')]);_0x123192[_0x999c('0x24')]=qs[_0x999c('0x24')](_0x5c066e['query'][_0x999c('0x24')]);}return _0x243913[_0x999c('0x52')](_0x123192);}})[_0x999c('0x2b')](function(_0x27f9af){if(_0x27f9af){return _0x27f9af?{'count':_0x1590ea,'rows':_0x27f9af}:null;}})[_0x999c('0x2b')](respondWithResult(_0x19314a,null))[_0x999c('0x4b')](handleError(_0x19314a,null));};exports[_0x999c('0x56')]=function(_0x4d4c33,_0x30f93c,_0x1092ba){if(_0x4d4c33[_0x999c('0x50')]['id']){delete _0x4d4c33[_0x999c('0x50')]['id'];}return db[_0x999c('0x32')][_0x999c('0x53')]({'where':{'id':_0x4d4c33[_0x999c('0x51')]['id']}})['then'](handleEntityNotFound(_0x30f93c,null))[_0x999c('0x2b')](function(_0xd2d105){if(_0xd2d105){_0x4d4c33['body']['AccountId']=_0xd2d105['id'];_0x4d4c33[_0x999c('0x50')][_0x999c('0x57')]=integrations[_0x999c('0x58')](_0x4d4c33['body'][_0x999c('0x59')],_0x4d4c33[_0x999c('0x50')][_0x999c('0x35')]);_0x4d4c33[_0x999c('0x50')][_0x999c('0x5a')]=integrations[_0x999c('0x5b')](_0x4d4c33['body'][_0x999c('0x59')],_0x4d4c33['body'][_0x999c('0x35')]);return db[_0x999c('0x54')][_0x999c('0x4f')](_0x4d4c33[_0x999c('0x50')],{'include':[{'model':db[_0x999c('0x5c')],'as':_0x999c('0x57')},{'model':db[_0x999c('0x5c')],'as':_0x999c('0x5a')}]});}return null;})[_0x999c('0x2b')](respondWithResult(_0x30f93c,null))[_0x999c('0x4b')](handleError(_0x30f93c,null));};exports[_0x999c('0x5d')]=function(_0x3905f1,_0xb1178c,_0x524931){var _0xd748e1=_0x3905f1[_0x999c('0x38')]['ticketType'];var _0x1066c8=_0xd748e1===_0x999c('0x5e')?_0x999c('0x5f'):'PhoneCall';var _0x2e0a60='';var _0xd83bc6='';var _0x2275e1='';var _0x1f30d8='';var _0x1e46f2='';var _0x5d4d9b='';var _0x42e688='';var _0x212050='';var _0x240a1c=[_0x999c('0x60'),_0x999c('0x61'),_0x999c('0x62'),_0x999c('0x63'),_0x999c('0x64'),'subject',_0x999c('0x65'),_0x999c('0x66'),'directioncode','phonecall_activity_parties'];var _0x2ac0be=[_0x999c('0x67'),_0x999c('0x68'),_0x999c('0x69'),'billedserviceunits',_0x999c('0x6a'),_0x999c('0x6b'),_0x999c('0x6c'),'contractidname',_0x999c('0x6d'),'createdbyexternalpartyyominame',_0x999c('0x6e'),_0x999c('0x6f'),_0x999c('0x70'),_0x999c('0x71'),'createdonbehalfbyyominame',_0x999c('0x72'),_0x999c('0x73'),_0x999c('0x74'),_0x999c('0x75'),_0x999c('0x76'),_0x999c('0x77'),_0x999c('0x78'),_0x999c('0x79'),_0x999c('0x7a'),_0x999c('0x7b'),_0x999c('0x7c'),'importsequencenumber',_0x999c('0x7d'),_0x999c('0x7e'),_0x999c('0x7f'),_0x999c('0x80'),_0x999c('0x81'),_0x999c('0x82'),'modifiedbyname','modifiedbyyominame',_0x999c('0x83'),_0x999c('0x84'),'modifiedonbehalfbyyominame',_0x999c('0x85'),_0x999c('0x86'),_0x999c('0x87'),'onholdtime',_0x999c('0x88'),'owneridname',_0x999c('0x89'),_0x999c('0x8a'),_0x999c('0x8b'),_0x999c('0x8c'),_0x999c('0x8d'),_0x999c('0x8e'),_0x999c('0x8f'),_0x999c('0x90'),'resolveby','resolvebykpiidname','responseby',_0x999c('0x91'),_0x999c('0x92'),_0x999c('0x93'),_0x999c('0x94'),_0x999c('0x95'),_0x999c('0x96'),_0x999c('0x97'),'statuscode',_0x999c('0x98'),_0x999c('0x99'),_0x999c('0x9a'),_0x999c('0x9b'),_0x999c('0x9c'),'utcconversiontimezonecode',_0x999c('0x9d')];var _0x4d74da=_0x240a1c[_0x999c('0x9e')](_0x2ac0be);return db['Dynamics365Account']['findOne']({'where':{'id':_0x3905f1['params']['id']},'attributes':['id',_0x999c('0x9f'),'password',_0x999c('0xa0'),_0x999c('0xa1'),_0x999c('0xa2'),_0x999c('0xa3')]})[_0x999c('0x2b')](handleEntityNotFound(_0xb1178c,null))[_0x999c('0x2b')](function(_0x34f209){if(_0x34f209){_0x212050=_0x34f209[_0x999c('0xa0')];var _0x11c03d=_0x212050[_0x999c('0xa4')](-0x1);if(_0x11c03d==='/'){_0x212050=_0x212050[_0x999c('0xa5')](0x0,_0x212050[_0x999c('0xa6')](_0x11c03d));}_0x42e688=util[_0x999c('0xa7')](_0x999c('0xa8'),_0x212050);var _0x56d9d5={'method':_0x999c('0xa9'),'uri':_0x999c('0xaa')+_0x34f209['tenantId']+_0x999c('0xab'),'form':{'client_id':_0x34f209['clientId'],'resource':_0x212050,'username':_0x34f209[_0x999c('0x9f')],'password':_0x34f209['password'],'grant_type':_0x999c('0xac'),'client_secret':_0x34f209['clientSecret']},'json':!![]};return rp(_0x56d9d5);}})[_0x999c('0x2b')](function(_0xdd8806){_0x5d4d9b=_0xdd8806[_0x999c('0xad')];var _0x599283={'method':_0x999c('0xae'),'uri':encodeURI(_0x42e688+_0x999c('0xaf')+_0x1066c8+'\x27'),'headers':{'Authorization':_0x999c('0xb0')+_0x5d4d9b,'If-None-Match':null,'OData-Version':_0x999c('0xb1')},'json':!![]};return rp(_0x599283);})['then'](function(_0x3ceb51){var _0x3626c7=_0x3ceb51['value'][0x0];var _0x488b0a=_0x3626c7['MetadataId'];var _0x5569b9={'method':'GET','uri':_0x42e688+_0x999c('0xb2')+_0x488b0a+_0x999c('0xb3'),'headers':{'Authorization':_0x999c('0xb0')+_0x5d4d9b,'If-None-Match':null,'OData-Version':_0x999c('0xb1')},'json':!![]};return rp(_0x5569b9);})[_0x999c('0x2b')](function(_0xc64e76){_0x2e0a60=_0xc64e76;_0xd83bc6=_0x2e0a60['Attributes'];_0xd83bc6=_[_0x999c('0xb4')](_0xd83bc6,function(_0x51e5ad){return!_0x4d74da[_0x999c('0xb5')](_0x51e5ad[_0x999c('0xb6')]);});var _0x41b2a7=[];var _0x27add6=[];_0xd83bc6['forEach'](function(_0x4208ab){if(_0x4208ab['@odata.type']){var _0x5e2064=_0x4208ab[_0x999c('0xb7')][_0x999c('0xa5')](_0x4208ab[_0x999c('0xb7')][_0x999c('0xa6')]('.')+0x1);if(_0x5e2064===_0x999c('0xb8')){_0x41b2a7[_0x999c('0xb9')](getSelectList(_0x42e688,_0xd748e1,_0x27add6,_0x2e0a60[_0x999c('0xba')],_0x4208ab[_0x999c('0xba')],_0x5d4d9b));}}});return Promise[_0x999c('0xbb')](_0x41b2a7);})['then'](function(_0x5490f4){_0x2275e1=_0x5490f4[0x0];var _0x3718c2=[];var _0x53809e=[];_0xd83bc6[_0x999c('0xbc')](function(_0x42ef9c){if(!_[_0x999c('0xbd')](_0x42ef9c['@odata.type'])){var _0x28f767=_0x42ef9c[_0x999c('0xb7')][_0x999c('0xa5')](_0x42ef9c[_0x999c('0xb7')]['lastIndexOf']('.')+0x1);if(_0x28f767==='BooleanAttributeMetadata'){_0x3718c2['push'](getBooleanList(_0x42e688,_0xd748e1,_0x53809e,_0x2e0a60[_0x999c('0xba')],_0x42ef9c[_0x999c('0xba')],_0x5d4d9b));}}});return Promise[_0x999c('0xbb')](_0x3718c2);})[_0x999c('0x2b')](function(_0x45315c){_0x1f30d8=_0x45315c[0x0];var _0x123a8f=[];var _0x7ac5e2=[];_0xd83bc6[_0x999c('0xbc')](function(_0x30f80f){if(_0x30f80f['@odata.type']){var _0x32acce=_0x30f80f[_0x999c('0xb7')]['substring'](_0x30f80f[_0x999c('0xb7')][_0x999c('0xa6')]('.')+0x1);if(_0x32acce==='StringAttributeMetadata'||_0x32acce===_0x999c('0xbe')||_0x32acce===_0x999c('0xbf')||_0x32acce==='IntegerAttributeMetadata'||_0x32acce===_0x999c('0xc0')||_0x32acce===_0x999c('0xc1')||_0x32acce===_0x999c('0xc2')||_0x32acce===_0x999c('0xc3')||_0x32acce===_0x999c('0xc4')||_0x32acce===_0x999c('0xc5')){_0x123a8f[_0x999c('0xb9')](getInputList(_0x42e688,_0xd748e1,_0x32acce,_0x7ac5e2,_0x2e0a60['MetadataId'],_0x30f80f['MetadataId'],_0x5d4d9b));}}});return Promise[_0x999c('0xbb')](_0x123a8f);})[_0x999c('0x2b')](function(_0x42e843){_0x1e46f2=_0x42e843[0x0];var _0x350c00=_0x2275e1[_0x999c('0x9e')](_0x1f30d8)['concat'](_0x1e46f2);var _0x5bce18={'count':_0x350c00[_0x999c('0x3d')],'rows':_0x350c00};return _0x5bce18;})[_0x999c('0x2b')](respondWithResult(_0xb1178c,null))['catch'](function(_0x352c27){var _0x5127ae=_0x3905f1[_0x999c('0x38')][_0x999c('0xc6')]?0x1f4:_0x352c27[_0x999c('0xc7')]||0x1f4;logger[_0x999c('0x2d')](_0x352c27['stack']);delete _0x352c27['name'];if(_0x5127ae===0x191){_0x5127ae=0x190;}_0xb1178c[_0x999c('0x25')](_0x5127ae)['send'](_0x3905f1[_0x999c('0x38')]['test']?{'message':_0x999c('0xc8'),'statusCode':_0x352c27['statusCode']}:_0x352c27);});};function getSelectList(_0x5d9747,_0x4a263c,_0x1225ff,_0x3031ee,_0xf9edc2,_0x44b467){var _0x2a00f6={'method':_0x999c('0xae'),'uri':_0x5d9747+'EntityDefinitions('+_0x3031ee+_0x999c('0xc9')+_0xf9edc2+')/Microsoft.Dynamics.CRM.PicklistAttributeMetadata?'+_0x999c('0xca'),'headers':{'Authorization':_0x999c('0xb0')+_0x44b467,'If-None-Match':null,'OData-Version':'4.0'},'json':!![]};return rp(_0x2a00f6)[_0x999c('0x2b')](function(_0x22f496){var _0xbb90d7=[];var _0x1f68dd=_0x22f496['OptionSet']['Options'];_0x1f68dd[_0x999c('0xbc')](function(_0x269707){_0xbb90d7[_0x999c('0xb9')]({'name':_0x269707[_0x999c('0xcb')][_0x999c('0xcc')][_0x999c('0xcb')],'value':String(_0x269707[_0x999c('0xcd')])});});var _0x259047={'id':_0x4a263c+'_'+_0x22f496['LogicalName'],'name':_0x22f496[_0x999c('0xce')][_0x999c('0xcc')][_0x999c('0xcb')],'custom':![],'options':_0xbb90d7};_0x1225ff[_0x999c('0xb9')](_0x259047);return _0x1225ff;});}function getBooleanList(_0x2c252c,_0xaefb8a,_0x478518,_0x38974e,_0x5b19f4,_0x203905){var _0x2c833e={'method':_0x999c('0xae'),'uri':_0x2c252c+_0x999c('0xb2')+_0x38974e+_0x999c('0xc9')+_0x5b19f4+_0x999c('0xcf'),'headers':{'Authorization':_0x999c('0xb0')+_0x203905,'If-None-Match':null,'OData-Version':_0x999c('0xb1')},'json':!![]};return rp(_0x2c833e)['then'](function(_0xa77743){var _0x413838=[];_0x413838['push']({'name':_0xa77743[_0x999c('0xd0')][_0x999c('0xd1')][_0x999c('0xcb')]['UserLocalizedLabel'][_0x999c('0xcb')],'value':_0x999c('0xd2')},{'name':_0xa77743['OptionSet'][_0x999c('0xd3')]['Label']['UserLocalizedLabel']['Label'],'value':_0x999c('0xd4')});var _0x1d2fcd={'id':_0xaefb8a+'_'+_0xa77743[_0x999c('0xb6')],'name':_0xa77743[_0x999c('0xce')]['UserLocalizedLabel'][_0x999c('0xcb')],'custom':![],'options':_0x413838};_0x478518['push'](_0x1d2fcd);return _0x478518;});}function getInputList(_0x2f457f,_0x3370e5,_0xce0a24,_0x20e708,_0x73f91,_0x3e12fc,_0x2cc2c6){var _0x5ca3bb={'method':_0x999c('0xae'),'uri':_0x2f457f+_0x999c('0xb2')+_0x73f91+_0x999c('0xc9')+_0x3e12fc+_0x999c('0xd5')+_0xce0a24+_0x999c('0xd6'),'headers':{'Authorization':_0x999c('0xb0')+_0x2cc2c6,'If-None-Match':null,'OData-Version':_0x999c('0xb1')},'json':!![]};return rp(_0x5ca3bb)[_0x999c('0x2b')](function(_0x3e81f1){var _0x49ea1d={'id':_0x3370e5+'_'+_0x3e81f1['LogicalName'],'name':_0x3e81f1[_0x999c('0xce')]['UserLocalizedLabel']?_0x3e81f1['DisplayName'][_0x999c('0xcc')][_0x999c('0xcb')]:_0x3e81f1[_0x999c('0xb6')],'custom':![],'options':[]};_0x20e708[_0x999c('0xb9')](_0x49ea1d);return _0x20e708;});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x757a=['Dynamics365Account','int_dynamics365_accounts','util','../../config/logger','request-promise','path','rimraf','../../config/environment','./intDynamics365Account.attributes','../../components/integrations/configuration'];(function(_0x17e078,_0x7b6acd){var _0x5bc405=function(_0x2d6498){while(--_0x2d6498){_0x17e078['push'](_0x17e078['shift']());}};_0x5bc405(++_0x7b6acd);}(_0x757a,0xde));var _0xa757=function(_0x3439ba,_0x196adb){_0x3439ba=_0x3439ba-0x0;var _0x55cd6b=_0x757a[_0x3439ba];return _0x55cd6b;};'use strict';var _=require('lodash');var util=require(_0xa757('0x0'));var logger=require(_0xa757('0x1'))('api');var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0xa757('0x2'));var fs=require('fs');var path=require(_0xa757('0x3'));var rimraf=require(_0xa757('0x4'));var config=require(_0xa757('0x5'));var attributes=require(_0xa757('0x6'));var integrations=require(_0xa757('0x7'));module['exports']=function(_0xae0e7c,_0x4343b6){return _0xae0e7c['define'](_0xa757('0x8'),attributes,{'tableName':_0xa757('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xcb91=['rimraf','./intDynamics365Account.attributes','../../components/integrations/configuration','Dynamics365Account','int_dynamics365_accounts','../../config/logger','api','moment','bluebird','path'];(function(_0x38ef52,_0x1d9c59){var _0x2403bb=function(_0x35037d){while(--_0x35037d){_0x38ef52['push'](_0x38ef52['shift']());}};_0x2403bb(++_0x1d9c59);}(_0xcb91,0x1a9));var _0x1cb9=function(_0x11005e,_0x20c3d2){_0x11005e=_0x11005e-0x0;var _0x29338f=_0xcb91[_0x11005e];return _0x29338f;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x1cb9('0x0'))(_0x1cb9('0x1'));var moment=require(_0x1cb9('0x2'));var BPromise=require(_0x1cb9('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x1cb9('0x4'));var rimraf=require(_0x1cb9('0x5'));var config=require('../../config/environment');var attributes=require(_0x1cb9('0x6'));var integrations=require(_0x1cb9('0x7'));module['exports']=function(_0x226b69,_0x3f7deb){return _0x226b69['define'](_0x1cb9('0x8'),attributes,{'tableName':_0x1cb9('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1ee0=['model','then','debug','ShowDynamics365Account','find','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','request','info','Dynamics365Account,\x20%s,\x20%s','Dynamics365Account,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','GetDynamics365Account','Dynamics365Account','findAll','options','raw','where','attributes','limit','include','map'];(function(_0x3947c9,_0x4d6c97){var _0x2e7871=function(_0x1236cc){while(--_0x1236cc){_0x3947c9['push'](_0x3947c9['shift']());}};_0x2e7871(++_0x4d6c97);}(_0x1ee0,0x182));var _0x01ee=function(_0x2d0794,_0x4215e2){_0x2d0794=_0x2d0794-0x0;var _0x5ced85=_0x1ee0[_0x2d0794];return _0x5ced85;};'use strict';var _=require(_0x01ee('0x0'));var util=require(_0x01ee('0x1'));var moment=require(_0x01ee('0x2'));var BPromise=require(_0x01ee('0x3'));var rs=require(_0x01ee('0x4'));var fs=require('fs');var Redis=require(_0x01ee('0x5'));var db=require(_0x01ee('0x6'))['db'];var utils=require(_0x01ee('0x7'));var logger=require(_0x01ee('0x8'))(_0x01ee('0x9'));var config=require(_0x01ee('0xa'));var jayson=require('jayson/promise');var client=jayson[_0x01ee('0xb')][_0x01ee('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x3baf34,_0x369a5e,_0x2dae45){return new BPromise(function(_0x5e261d,_0xb70139){return client[_0x01ee('0xd')](_0x3baf34,_0x2dae45)['then'](function(_0x5e83e7){logger[_0x01ee('0xe')](_0x01ee('0xf'),_0x369a5e,'request\x20sent');logger['debug'](_0x01ee('0x10'),_0x369a5e,_0x01ee('0x11'),JSON[_0x01ee('0x12')](_0x5e83e7));if(_0x5e83e7[_0x01ee('0x13')]){if(_0x5e83e7[_0x01ee('0x13')][_0x01ee('0x14')]===0x1f4){logger[_0x01ee('0x13')]('Dynamics365Account,\x20%s,\x20%s',_0x369a5e,_0x5e83e7['error'][_0x01ee('0x15')]);return _0xb70139(_0x5e83e7[_0x01ee('0x13')][_0x01ee('0x15')]);}logger[_0x01ee('0x13')](_0x01ee('0xf'),_0x369a5e,_0x5e83e7['error'][_0x01ee('0x15')]);return _0x5e261d(_0x5e83e7[_0x01ee('0x13')]['message']);}else{logger[_0x01ee('0xe')](_0x01ee('0xf'),_0x369a5e,'request\x20sent');_0x5e261d(_0x5e83e7['result'][_0x01ee('0x15')]);}})['catch'](function(_0x3fc16c){logger[_0x01ee('0x13')](_0x01ee('0xf'),_0x369a5e,_0x3fc16c);_0xb70139(_0x3fc16c);});});}exports[_0x01ee('0x16')]=function(_0x2fc225){var _0x11ebad=this;return new Promise(function(_0x368d12,_0x1f237b){return db[_0x01ee('0x17')][_0x01ee('0x18')]({'raw':_0x2fc225[_0x01ee('0x19')]?_0x2fc225[_0x01ee('0x19')][_0x01ee('0x1a')]===undefined?!![]:![]:!![],'where':_0x2fc225[_0x01ee('0x19')]?_0x2fc225[_0x01ee('0x19')][_0x01ee('0x1b')]||null:null,'attributes':_0x2fc225[_0x01ee('0x19')]?_0x2fc225[_0x01ee('0x19')][_0x01ee('0x1c')]||null:null,'limit':_0x2fc225[_0x01ee('0x19')]?_0x2fc225['options'][_0x01ee('0x1d')]||null:null,'include':_0x2fc225[_0x01ee('0x19')]?_0x2fc225[_0x01ee('0x19')][_0x01ee('0x1e')]?_[_0x01ee('0x1f')](_0x2fc225[_0x01ee('0x19')][_0x01ee('0x1e')],function(_0x32a66f){return{'model':db[_0x32a66f[_0x01ee('0x20')]],'as':_0x32a66f['as'],'attributes':_0x32a66f[_0x01ee('0x1c')],'include':_0x32a66f[_0x01ee('0x1e')]?_[_0x01ee('0x1f')](_0x32a66f[_0x01ee('0x1e')],function(_0x36219e){return{'model':db[_0x36219e[_0x01ee('0x20')]],'as':_0x36219e['as'],'attributes':_0x36219e[_0x01ee('0x1c')],'include':_0x36219e['include']?_[_0x01ee('0x1f')](_0x36219e[_0x01ee('0x1e')],function(_0x4305e5){return{'model':db[_0x4305e5[_0x01ee('0x20')]],'as':_0x4305e5['as'],'attributes':_0x4305e5[_0x01ee('0x1c')]};}):[]};}):[]};}):[]:[]})[_0x01ee('0x21')](function(_0x4ecbc7){logger['info']('GetDynamics365Account',_0x2fc225);logger[_0x01ee('0x22')](_0x01ee('0x16'),_0x2fc225,JSON[_0x01ee('0x12')](_0x4ecbc7));_0x368d12(_0x4ecbc7);})['catch'](function(_0x154adf){logger[_0x01ee('0x13')](_0x01ee('0x16'),_0x154adf[_0x01ee('0x15')],_0x2fc225);_0x1f237b(_0x11ebad[_0x01ee('0x13')](0x1f4,_0x154adf[_0x01ee('0x15')]));});});};exports[_0x01ee('0x23')]=function(_0x3435ec){var _0x476206=this;return new Promise(function(_0x400b58,_0x1e3d49){return db[_0x01ee('0x17')][_0x01ee('0x24')]({'raw':_0x3435ec[_0x01ee('0x19')]?_0x3435ec[_0x01ee('0x19')][_0x01ee('0x1a')]===undefined?!![]:![]:!![],'where':_0x3435ec[_0x01ee('0x19')]?_0x3435ec[_0x01ee('0x19')][_0x01ee('0x1b')]||null:null,'attributes':_0x3435ec['options']?_0x3435ec[_0x01ee('0x19')]['attributes']||null:null,'include':_0x3435ec['options']?_0x3435ec[_0x01ee('0x19')][_0x01ee('0x1e')]?_['map'](_0x3435ec['options']['include'],function(_0x158f0e){return{'model':db[_0x158f0e[_0x01ee('0x20')]],'as':_0x158f0e['as'],'attributes':_0x158f0e[_0x01ee('0x1c')],'include':_0x158f0e['include']?_[_0x01ee('0x1f')](_0x158f0e['include'],function(_0x4cd664){return{'model':db[_0x4cd664[_0x01ee('0x20')]],'as':_0x4cd664['as'],'attributes':_0x4cd664[_0x01ee('0x1c')],'include':_0x4cd664[_0x01ee('0x1e')]?_[_0x01ee('0x1f')](_0x4cd664[_0x01ee('0x1e')],function(_0x5869c8){return{'model':db[_0x5869c8[_0x01ee('0x20')]],'as':_0x5869c8['as'],'attributes':_0x5869c8[_0x01ee('0x1c')]};}):[]};}):[]};}):[]:[]})[_0x01ee('0x21')](function(_0x464074){logger[_0x01ee('0xe')](_0x01ee('0x23'),_0x3435ec);logger[_0x01ee('0x22')](_0x01ee('0x23'),_0x3435ec,JSON['stringify'](_0x464074));_0x400b58(_0x464074);})[_0x01ee('0x25')](function(_0x2a2874){logger['error'](_0x01ee('0x23'),_0x2a2874['message'],_0x3435ec);_0x1e3d49(_0x476206[_0x01ee('0x13')](0x1f4,_0x2a2874[_0x01ee('0x15')]));});});};
\ No newline at end of file
+var _0xae39=['moment','bluebird','ioredis','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','request','then','request\x20sent','debug','Dynamics365Account,\x20%s,\x20%s,\x20%s','stringify','error','code','message','Dynamics365Account,\x20%s,\x20%s','catch','GetDynamics365Account','Dynamics365Account','findAll','options','raw','where','limit','include','model','attributes','map','info','ShowDynamics365Account','find'];(function(_0x130719,_0x2a7018){var _0x159865=function(_0x3a4d06){while(--_0x3a4d06){_0x130719['push'](_0x130719['shift']());}};_0x159865(++_0x2a7018);}(_0xae39,0x176));var _0x9ae3=function(_0x273c39,_0x1052e6){_0x273c39=_0x273c39-0x0;var _0x46d6b5=_0xae39[_0x273c39];return _0x46d6b5;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x9ae3('0x0'));var BPromise=require(_0x9ae3('0x1'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x9ae3('0x2'));var db=require('../../mysqldb')['db'];var utils=require(_0x9ae3('0x3'));var logger=require(_0x9ae3('0x4'))('rpc');var config=require(_0x9ae3('0x5'));var jayson=require(_0x9ae3('0x6'));var client=jayson[_0x9ae3('0x7')][_0x9ae3('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x13be61,_0x111c2a,_0x405faf){return new BPromise(function(_0x135a1e,_0x2e4cdc){return client[_0x9ae3('0x9')](_0x13be61,_0x405faf)[_0x9ae3('0xa')](function(_0x52201a){logger['info']('Dynamics365Account,\x20%s,\x20%s',_0x111c2a,_0x9ae3('0xb'));logger[_0x9ae3('0xc')](_0x9ae3('0xd'),_0x111c2a,_0x9ae3('0xb'),JSON[_0x9ae3('0xe')](_0x52201a));if(_0x52201a[_0x9ae3('0xf')]){if(_0x52201a[_0x9ae3('0xf')][_0x9ae3('0x10')]===0x1f4){logger[_0x9ae3('0xf')]('Dynamics365Account,\x20%s,\x20%s',_0x111c2a,_0x52201a[_0x9ae3('0xf')]['message']);return _0x2e4cdc(_0x52201a[_0x9ae3('0xf')][_0x9ae3('0x11')]);}logger[_0x9ae3('0xf')](_0x9ae3('0x12'),_0x111c2a,_0x52201a[_0x9ae3('0xf')][_0x9ae3('0x11')]);return _0x135a1e(_0x52201a[_0x9ae3('0xf')][_0x9ae3('0x11')]);}else{logger['info'](_0x9ae3('0x12'),_0x111c2a,_0x9ae3('0xb'));_0x135a1e(_0x52201a['result']['message']);}})[_0x9ae3('0x13')](function(_0x472a56){logger[_0x9ae3('0xf')]('Dynamics365Account,\x20%s,\x20%s',_0x111c2a,_0x472a56);_0x2e4cdc(_0x472a56);});});}exports[_0x9ae3('0x14')]=function(_0x2b5c6d){var _0x147986=this;return new Promise(function(_0x398283,_0x529c0d){return db[_0x9ae3('0x15')][_0x9ae3('0x16')]({'raw':_0x2b5c6d['options']?_0x2b5c6d[_0x9ae3('0x17')][_0x9ae3('0x18')]===undefined?!![]:![]:!![],'where':_0x2b5c6d[_0x9ae3('0x17')]?_0x2b5c6d[_0x9ae3('0x17')][_0x9ae3('0x19')]||null:null,'attributes':_0x2b5c6d['options']?_0x2b5c6d[_0x9ae3('0x17')]['attributes']||null:null,'limit':_0x2b5c6d[_0x9ae3('0x17')]?_0x2b5c6d[_0x9ae3('0x17')][_0x9ae3('0x1a')]||null:null,'include':_0x2b5c6d[_0x9ae3('0x17')]?_0x2b5c6d[_0x9ae3('0x17')][_0x9ae3('0x1b')]?_['map'](_0x2b5c6d['options']['include'],function(_0x51f83f){return{'model':db[_0x51f83f[_0x9ae3('0x1c')]],'as':_0x51f83f['as'],'attributes':_0x51f83f[_0x9ae3('0x1d')],'include':_0x51f83f['include']?_[_0x9ae3('0x1e')](_0x51f83f[_0x9ae3('0x1b')],function(_0x3cf0dc){return{'model':db[_0x3cf0dc[_0x9ae3('0x1c')]],'as':_0x3cf0dc['as'],'attributes':_0x3cf0dc[_0x9ae3('0x1d')],'include':_0x3cf0dc[_0x9ae3('0x1b')]?_[_0x9ae3('0x1e')](_0x3cf0dc[_0x9ae3('0x1b')],function(_0x3eb1ab){return{'model':db[_0x3eb1ab[_0x9ae3('0x1c')]],'as':_0x3eb1ab['as'],'attributes':_0x3eb1ab['attributes']};}):[]};}):[]};}):[]:[]})[_0x9ae3('0xa')](function(_0x67daa7){logger[_0x9ae3('0x1f')](_0x9ae3('0x14'),_0x2b5c6d);logger[_0x9ae3('0xc')]('GetDynamics365Account',_0x2b5c6d,JSON[_0x9ae3('0xe')](_0x67daa7));_0x398283(_0x67daa7);})[_0x9ae3('0x13')](function(_0x41c2be){logger['error']('GetDynamics365Account',_0x41c2be['message'],_0x2b5c6d);_0x529c0d(_0x147986['error'](0x1f4,_0x41c2be[_0x9ae3('0x11')]));});});};exports[_0x9ae3('0x20')]=function(_0x145c79){var _0x1f1a97=this;return new Promise(function(_0x236d00,_0xbf0eb8){return db[_0x9ae3('0x15')][_0x9ae3('0x21')]({'raw':_0x145c79[_0x9ae3('0x17')]?_0x145c79['options'][_0x9ae3('0x18')]===undefined?!![]:![]:!![],'where':_0x145c79[_0x9ae3('0x17')]?_0x145c79['options'][_0x9ae3('0x19')]||null:null,'attributes':_0x145c79[_0x9ae3('0x17')]?_0x145c79['options'][_0x9ae3('0x1d')]||null:null,'include':_0x145c79[_0x9ae3('0x17')]?_0x145c79[_0x9ae3('0x17')]['include']?_[_0x9ae3('0x1e')](_0x145c79['options']['include'],function(_0x13233a){return{'model':db[_0x13233a['model']],'as':_0x13233a['as'],'attributes':_0x13233a[_0x9ae3('0x1d')],'include':_0x13233a[_0x9ae3('0x1b')]?_[_0x9ae3('0x1e')](_0x13233a[_0x9ae3('0x1b')],function(_0x583083){return{'model':db[_0x583083['model']],'as':_0x583083['as'],'attributes':_0x583083[_0x9ae3('0x1d')],'include':_0x583083[_0x9ae3('0x1b')]?_[_0x9ae3('0x1e')](_0x583083[_0x9ae3('0x1b')],function(_0x19538b){return{'model':db[_0x19538b[_0x9ae3('0x1c')]],'as':_0x19538b['as'],'attributes':_0x19538b[_0x9ae3('0x1d')]};}):[]};}):[]};}):[]:[]})[_0x9ae3('0xa')](function(_0x5c1a27){logger[_0x9ae3('0x1f')](_0x9ae3('0x20'),_0x145c79);logger[_0x9ae3('0xc')]('ShowDynamics365Account',_0x145c79,JSON[_0x9ae3('0xe')](_0x5c1a27));_0x236d00(_0x5c1a27);})[_0x9ae3('0x13')](function(_0x3899b3){logger[_0x9ae3('0xf')](_0x9ae3('0x20'),_0x3899b3['message'],_0x145c79);_0xbf0eb8(_0x1f1a97[_0x9ae3('0xf')](0x1f4,_0x3899b3['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9265=['exports','multer','util','path','connect-timeout','express','Router','fs-extra','./intDynamics365Configuration.controller','get','isAuthenticated','index','/:id','show','/:id/fields','/:id/subjects','getSubjects','/:id/descriptions','getDescriptions','create','put','update'];(function(_0x106ac4,_0x205307){var _0x834b26=function(_0x25b432){while(--_0x25b432){_0x106ac4['push'](_0x106ac4['shift']());}};_0x834b26(++_0x205307);}(_0x9265,0x1b9));var _0x5926=function(_0x42ee0d,_0x5bb2d8){_0x42ee0d=_0x42ee0d-0x0;var _0x40c5e1=_0x9265[_0x42ee0d];return _0x40c5e1;};'use strict';var multer=require(_0x5926('0x0'));var util=require(_0x5926('0x1'));var path=require(_0x5926('0x2'));var timeout=require(_0x5926('0x3'));var express=require(_0x5926('0x4'));var router=express[_0x5926('0x5')]();var fs_extra=require(_0x5926('0x6'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0x5926('0x7'));router[_0x5926('0x8')]('/',auth[_0x5926('0x9')](),controller[_0x5926('0xa')]);router['get'](_0x5926('0xb'),auth[_0x5926('0x9')](),controller[_0x5926('0xc')]);router['get'](_0x5926('0xd'),auth[_0x5926('0x9')](),controller['getFields']);router[_0x5926('0x8')](_0x5926('0xe'),auth[_0x5926('0x9')](),controller[_0x5926('0xf')]);router['get'](_0x5926('0x10'),auth['isAuthenticated'](),controller[_0x5926('0x11')]);router['post']('/',auth['isAuthenticated'](),controller[_0x5926('0x12')]);router[_0x5926('0x13')](_0x5926('0xb'),auth[_0x5926('0x9')](),controller[_0x5926('0x14')]);router['delete'](_0x5926('0xb'),auth['isAuthenticated'](),controller['destroy']);module[_0x5926('0x15')]=router;
\ No newline at end of file
+var _0x8c3f=['Router','fs-extra','../../components/interaction/service','get','isAuthenticated','index','show','getFields','/:id/subjects','getSubjects','/:id/descriptions','getDescriptions','post','create','put','/:id','exports','multer','util','express'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x8c3f,0xc5));var _0xf8c3=function(_0x36f320,_0x1fb8bc){_0x36f320=_0x36f320-0x0;var _0x47ccad=_0x8c3f[_0x36f320];return _0x47ccad;};'use strict';var multer=require(_0xf8c3('0x0'));var util=require(_0xf8c3('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0xf8c3('0x2'));var router=express[_0xf8c3('0x3')]();var fs_extra=require(_0xf8c3('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0xf8c3('0x5'));var config=require('../../config/environment');var controller=require('./intDynamics365Configuration.controller');router[_0xf8c3('0x6')]('/',auth[_0xf8c3('0x7')](),controller[_0xf8c3('0x8')]);router['get']('/:id',auth[_0xf8c3('0x7')](),controller[_0xf8c3('0x9')]);router[_0xf8c3('0x6')]('/:id/fields',auth[_0xf8c3('0x7')](),controller[_0xf8c3('0xa')]);router['get'](_0xf8c3('0xb'),auth[_0xf8c3('0x7')](),controller[_0xf8c3('0xc')]);router[_0xf8c3('0x6')](_0xf8c3('0xd'),auth[_0xf8c3('0x7')](),controller[_0xf8c3('0xe')]);router[_0xf8c3('0xf')]('/',auth['isAuthenticated'](),controller[_0xf8c3('0x10')]);router[_0xf8c3('0x11')](_0xf8c3('0x12'),auth[_0xf8c3('0x7')](),controller['update']);router['delete'](_0xf8c3('0x12'),auth['isAuthenticated'](),controller['destroy']);module[_0xf8c3('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf636=['sequelize','exports','STRING','incident','phonecall'];(function(_0x529abc,_0x17b97e){var _0x453afa=function(_0x536263){while(--_0x536263){_0x529abc['push'](_0x529abc['shift']());}};_0x453afa(++_0x17b97e);}(_0xf636,0xff));var _0x6f63=function(_0x34c1d1,_0x2b2a9d){_0x34c1d1=_0x34c1d1-0x0;var _0x2fddb2=_0xf636[_0x34c1d1];return _0x2fddb2;};'use strict';var Sequelize=require(_0x6f63('0x0'));module[_0x6f63('0x1')]={'name':{'type':Sequelize[_0x6f63('0x2')]},'description':{'type':Sequelize[_0x6f63('0x2')]},'ticketType':{'type':Sequelize['ENUM'](_0x6f63('0x3'),_0x6f63('0x4')),'defaultValue':_0x6f63('0x3')}};
\ No newline at end of file
+var _0xa2a2=['ENUM','phonecall','sequelize','STRING'];(function(_0x10841c,_0x389f1f){var _0x59e4a5=function(_0x55d789){while(--_0x55d789){_0x10841c['push'](_0x10841c['shift']());}};_0x59e4a5(++_0x389f1f);}(_0xa2a2,0x9a));var _0x2a2a=function(_0x21eafa,_0x9326cd){_0x21eafa=_0x21eafa-0x0;var _0x2a418c=_0xa2a2[_0x21eafa];return _0x2a418c;};'use strict';var Sequelize=require(_0x2a2a('0x0'));module['exports']={'name':{'type':Sequelize[_0x2a2a('0x1')]},'description':{'type':Sequelize[_0x2a2a('0x1')]},'ticketType':{'type':Sequelize[_0x2a2a('0x2')]('incident',_0x2a2a('0x3')),'defaultValue':'incident'}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2acb=['filter','merge','findAll','rows','catch','show','params','length','includeAll','include','find','create','body','update','getFields','findOne','Dynamics365Field','options','hasOwnProperty','getSubjects','getDescriptions','eml-format','rimraf','zip-dir','fast-json-patch','moment','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','limit','undefined','count','set','Content-Range','apply','reject','save','destroy','then','stack','name','send','index','map','Dynamics365Configuration','rawAttributes','fieldName','type','key','model','keys','filters','intersection','query','fields','attributes','nolimit','order','sort','where','pick'];(function(_0x40ac5e,_0x2de228){var _0x2839d6=function(_0x123d47){while(--_0x123d47){_0x40ac5e['push'](_0x40ac5e['shift']());}};_0x2839d6(++_0x2de228);}(_0x2acb,0x15d));var _0xb2ac=function(_0x5935de,_0x30c5e5){_0x5935de=_0x5935de-0x0;var _0x318d74=_0x2acb[_0x5935de];return _0x318d74;};'use strict';var emlformat=require(_0xb2ac('0x0'));var rimraf=require(_0xb2ac('0x1'));var zipdir=require(_0xb2ac('0x2'));var jsonpatch=require(_0xb2ac('0x3'));var rp=require('request-promise');var moment=require(_0xb2ac('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xb2ac('0x5'));var util=require(_0xb2ac('0x6'));var path=require('path');var sox=require(_0xb2ac('0x7'));var csv=require(_0xb2ac('0x8'));var ejs=require(_0xb2ac('0x9'));var fs=require('fs');var fs_extra=require(_0xb2ac('0xa'));var _=require(_0xb2ac('0xb'));var squel=require(_0xb2ac('0xc'));var crypto=require(_0xb2ac('0xd'));var jsforce=require(_0xb2ac('0xe'));var deskjs=require(_0xb2ac('0xf'));var toCsv=require(_0xb2ac('0x8'));var querystring=require(_0xb2ac('0x10'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xb2ac('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0xb2ac('0x12'));var hardwareService=require(_0xb2ac('0x13'));var logger=require(_0xb2ac('0x14'))(_0xb2ac('0x15'));var utils=require('../../config/utils');var config=require(_0xb2ac('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0xb2ac('0x17'))['db'];function respondWithStatusCode(_0x32f8a8,_0x36ba91){_0x36ba91=_0x36ba91||0xcc;return function(_0x903d1f){if(_0x903d1f){return _0x32f8a8[_0xb2ac('0x18')](_0x36ba91);}return _0x32f8a8[_0xb2ac('0x19')](_0x36ba91)[_0xb2ac('0x1a')]();};}function respondWithResult(_0x4a982f,_0x2f1b9d){_0x2f1b9d=_0x2f1b9d||0xc8;return function(_0x39d6fb){if(_0x39d6fb){return _0x4a982f[_0xb2ac('0x19')](_0x2f1b9d)[_0xb2ac('0x1b')](_0x39d6fb);}};}function respondWithFilteredResult(_0x2cfaed,_0x3d0383){return function(_0x544493){if(_0x544493){var _0x38c573=typeof _0x3d0383[_0xb2ac('0x1c')]==='undefined'&&typeof _0x3d0383[_0xb2ac('0x1d')]===_0xb2ac('0x1e');var _0x241751=_0x544493[_0xb2ac('0x1f')];var _0x1b5ef0=_0x38c573?0x0:_0x3d0383['offset'];var _0x50a37c=_0x38c573?_0x544493['count']:_0x3d0383[_0xb2ac('0x1c')]+_0x3d0383[_0xb2ac('0x1d')];var _0x508ae8;if(_0x50a37c>=_0x241751){_0x50a37c=_0x241751;_0x508ae8=0xc8;}else{_0x508ae8=0xce;}_0x2cfaed[_0xb2ac('0x19')](_0x508ae8);return _0x2cfaed[_0xb2ac('0x20')](_0xb2ac('0x21'),_0x1b5ef0+'-'+_0x50a37c+'/'+_0x241751)[_0xb2ac('0x1b')](_0x544493);}return null;};}function patchUpdates(_0x58d980){return function(_0x1df00b){try{jsonpatch[_0xb2ac('0x22')](_0x1df00b,_0x58d980,!![]);}catch(_0xbc895e){return BPromise[_0xb2ac('0x23')](_0xbc895e);}return _0x1df00b[_0xb2ac('0x24')]();};}function saveUpdates(_0x22ed88,_0xfce5e){return function(_0x52b2b9){if(_0x52b2b9){return _0x52b2b9['update'](_0x22ed88)['then'](function(_0x340258){return _0x340258;});}return null;};}function removeEntity(_0x48eda5,_0x17f7e5){return function(_0x19e71f){if(_0x19e71f){return _0x19e71f[_0xb2ac('0x25')]()[_0xb2ac('0x26')](function(){_0x48eda5[_0xb2ac('0x19')](0xcc)[_0xb2ac('0x1a')]();});}};}function handleEntityNotFound(_0x1e310c,_0x5dfc38){return function(_0x3469bc){if(!_0x3469bc){_0x1e310c[_0xb2ac('0x18')](0x194);}return _0x3469bc;};}function handleError(_0x21c275,_0x5890fb){_0x5890fb=_0x5890fb||0x1f4;return function(_0x388ff9){logger['error'](_0x388ff9[_0xb2ac('0x27')]);if(_0x388ff9['name']){delete _0x388ff9[_0xb2ac('0x28')];}_0x21c275[_0xb2ac('0x19')](_0x5890fb)[_0xb2ac('0x29')](_0x388ff9);};}exports[_0xb2ac('0x2a')]=function(_0x4657ca,_0x460480){var _0x3e2713={},_0x219667={},_0x5a09d7={'count':0x0,'rows':[]};var _0x27fa20=_[_0xb2ac('0x2b')](db[_0xb2ac('0x2c')][_0xb2ac('0x2d')],function(_0x1a5faf){return{'name':_0x1a5faf[_0xb2ac('0x2e')],'type':_0x1a5faf[_0xb2ac('0x2f')][_0xb2ac('0x30')]};});_0x219667[_0xb2ac('0x31')]=_[_0xb2ac('0x2b')](_0x27fa20,'name');_0x219667['query']=_[_0xb2ac('0x32')](_0x4657ca['query']);_0x219667[_0xb2ac('0x33')]=_[_0xb2ac('0x34')](_0x219667[_0xb2ac('0x31')],_0x219667['query']);_0x3e2713['attributes']=_[_0xb2ac('0x34')](_0x219667[_0xb2ac('0x31')],qs['fields'](_0x4657ca[_0xb2ac('0x35')][_0xb2ac('0x36')]));_0x3e2713[_0xb2ac('0x37')]=_0x3e2713[_0xb2ac('0x37')]['length']?_0x3e2713[_0xb2ac('0x37')]:_0x219667[_0xb2ac('0x31')];if(!_0x4657ca[_0xb2ac('0x35')]['hasOwnProperty'](_0xb2ac('0x38'))){_0x3e2713[_0xb2ac('0x1d')]=qs[_0xb2ac('0x1d')](_0x4657ca['query'][_0xb2ac('0x1d')]);_0x3e2713[_0xb2ac('0x1c')]=qs[_0xb2ac('0x1c')](_0x4657ca[_0xb2ac('0x35')][_0xb2ac('0x1c')]);}_0x3e2713[_0xb2ac('0x39')]=qs[_0xb2ac('0x3a')](_0x4657ca['query']['sort']);_0x3e2713[_0xb2ac('0x3b')]=qs['filters'](_[_0xb2ac('0x3c')](_0x4657ca['query'],_0x219667['filters']),_0x27fa20);if(_0x4657ca['query'][_0xb2ac('0x3d')]){_0x3e2713[_0xb2ac('0x3b')]=_[_0xb2ac('0x3e')](_0x3e2713[_0xb2ac('0x3b')],{'$or':_[_0xb2ac('0x2b')](_0x27fa20,function(_0x3a044b){if(_0x3a044b[_0xb2ac('0x2f')]!=='VIRTUAL'){var _0x239339={};_0x239339[_0x3a044b[_0xb2ac('0x28')]]={'$like':'%'+_0x4657ca['query']['filter']+'%'};return _0x239339;}})});}_0x3e2713=_[_0xb2ac('0x3e')]({},_0x3e2713,_0x4657ca['options']);var _0x6022bb={'where':_0x3e2713[_0xb2ac('0x3b')]};return db[_0xb2ac('0x2c')][_0xb2ac('0x1f')](_0x6022bb)[_0xb2ac('0x26')](function(_0x3717f9){_0x5a09d7[_0xb2ac('0x1f')]=_0x3717f9;if(_0x4657ca[_0xb2ac('0x35')]['includeAll']){_0x3e2713['include']=[{'all':!![]}];}return db['Dynamics365Configuration'][_0xb2ac('0x3f')](_0x3e2713);})[_0xb2ac('0x26')](function(_0xbbecc3){_0x5a09d7[_0xb2ac('0x40')]=_0xbbecc3;return _0x5a09d7;})[_0xb2ac('0x26')](respondWithFilteredResult(_0x460480,_0x3e2713))[_0xb2ac('0x41')](handleError(_0x460480,null));};exports[_0xb2ac('0x42')]=function(_0xdfd5c1,_0x4f8f2c){var _0x2bd55c={'raw':![],'where':{'id':_0xdfd5c1[_0xb2ac('0x43')]['id']}},_0x30e4d1={};_0x30e4d1[_0xb2ac('0x31')]=_[_0xb2ac('0x32')](db[_0xb2ac('0x2c')][_0xb2ac('0x2d')]);_0x30e4d1[_0xb2ac('0x35')]=_[_0xb2ac('0x32')](_0xdfd5c1[_0xb2ac('0x35')]);_0x30e4d1[_0xb2ac('0x33')]=_[_0xb2ac('0x34')](_0x30e4d1['model'],_0x30e4d1['query']);_0x2bd55c[_0xb2ac('0x37')]=_['intersection'](_0x30e4d1[_0xb2ac('0x31')],qs['fields'](_0xdfd5c1[_0xb2ac('0x35')]['fields']));_0x2bd55c[_0xb2ac('0x37')]=_0x2bd55c['attributes'][_0xb2ac('0x44')]?_0x2bd55c[_0xb2ac('0x37')]:_0x30e4d1[_0xb2ac('0x31')];if(_0xdfd5c1['query'][_0xb2ac('0x45')]){_0x2bd55c[_0xb2ac('0x46')]=[{'all':!![]}];}_0x2bd55c=_[_0xb2ac('0x3e')]({},_0x2bd55c,_0xdfd5c1['options']);return db[_0xb2ac('0x2c')][_0xb2ac('0x47')](_0x2bd55c)[_0xb2ac('0x26')](handleEntityNotFound(_0x4f8f2c,null))[_0xb2ac('0x26')](respondWithResult(_0x4f8f2c,null))[_0xb2ac('0x41')](handleError(_0x4f8f2c,null));};exports[_0xb2ac('0x48')]=function(_0xdfad8b,_0xedfb76){return db[_0xb2ac('0x2c')]['create'](_0xdfad8b[_0xb2ac('0x49')],{})[_0xb2ac('0x26')](respondWithResult(_0xedfb76,0xc9))[_0xb2ac('0x41')](handleError(_0xedfb76,null));};exports[_0xb2ac('0x4a')]=function(_0x5a99bb,_0x3ea03d){if(_0x5a99bb[_0xb2ac('0x49')]['id']){delete _0x5a99bb['body']['id'];}return db['Dynamics365Configuration'][_0xb2ac('0x47')]({'where':{'id':_0x5a99bb[_0xb2ac('0x43')]['id']}})[_0xb2ac('0x26')](handleEntityNotFound(_0x3ea03d,null))[_0xb2ac('0x26')](saveUpdates(_0x5a99bb['body'],null))[_0xb2ac('0x26')](respondWithResult(_0x3ea03d,null))['catch'](handleError(_0x3ea03d,null));};exports['destroy']=function(_0x465087,_0x29d315){return db[_0xb2ac('0x2c')][_0xb2ac('0x47')]({'where':{'id':_0x465087[_0xb2ac('0x43')]['id']}})[_0xb2ac('0x26')](handleEntityNotFound(_0x29d315,null))['then'](removeEntity(_0x29d315,null))[_0xb2ac('0x41')](handleError(_0x29d315,null));};exports[_0xb2ac('0x4b')]=function(_0x45a241,_0xb07614,_0xab05b7){var _0x55e473={};var _0x14413b={};var _0x1908cf;var _0xadbc72;return db['Dynamics365Configuration'][_0xb2ac('0x4c')]({'where':{'id':_0x45a241['params']['id']}})[_0xb2ac('0x26')](handleEntityNotFound(_0xb07614,null))[_0xb2ac('0x26')](function(_0x195b45){if(_0x195b45){_0x1908cf=_0x195b45;_0x14413b[_0xb2ac('0x31')]=_['keys'](db[_0xb2ac('0x4d')][_0xb2ac('0x2d')]);_0x14413b[_0xb2ac('0x35')]=_[_0xb2ac('0x32')](_0x45a241['query']);_0x14413b[_0xb2ac('0x33')]=_[_0xb2ac('0x34')](_0x14413b[_0xb2ac('0x31')],_0x14413b[_0xb2ac('0x35')]);_0x55e473[_0xb2ac('0x37')]=_[_0xb2ac('0x34')](_0x14413b[_0xb2ac('0x31')],qs[_0xb2ac('0x36')](_0x45a241['query'][_0xb2ac('0x36')]));_0x55e473[_0xb2ac('0x37')]=_0x55e473[_0xb2ac('0x37')][_0xb2ac('0x44')]?_0x55e473['attributes']:_0x14413b[_0xb2ac('0x31')];_0x55e473[_0xb2ac('0x39')]=qs['sort'](_0x45a241[_0xb2ac('0x35')][_0xb2ac('0x3a')]);_0x55e473[_0xb2ac('0x3b')]=qs[_0xb2ac('0x33')](_['pick'](_0x45a241[_0xb2ac('0x35')],_0x14413b[_0xb2ac('0x33')]));if(_0x45a241[_0xb2ac('0x35')][_0xb2ac('0x3d')]){_0x55e473['where']=_[_0xb2ac('0x3e')](_0x55e473[_0xb2ac('0x3b')],{'$or':_['map'](_0x55e473[_0xb2ac('0x37')],function(_0x6d74ec){var _0xa69c17={};_0xa69c17[_0x6d74ec]={'$like':'%'+_0x45a241['query'][_0xb2ac('0x3d')]+'%'};return _0xa69c17;})});}_0x55e473=_[_0xb2ac('0x3e')]({},_0x55e473,_0x45a241[_0xb2ac('0x4e')]);return _0x1908cf[_0xb2ac('0x4b')](_0x55e473);}})['then'](function(_0x2d3381){if(_0x2d3381){_0xadbc72=_0x2d3381[_0xb2ac('0x44')];if(!_0x45a241['query'][_0xb2ac('0x4f')](_0xb2ac('0x38'))){_0x55e473[_0xb2ac('0x1d')]=qs[_0xb2ac('0x1d')](_0x45a241[_0xb2ac('0x35')]['limit']);_0x55e473[_0xb2ac('0x1c')]=qs[_0xb2ac('0x1c')](_0x45a241[_0xb2ac('0x35')][_0xb2ac('0x1c')]);}return _0x1908cf['getFields'](_0x55e473);}})[_0xb2ac('0x26')](function(_0x22638a){if(_0x22638a){return _0x22638a?{'count':_0xadbc72,'rows':_0x22638a}:null;}})[_0xb2ac('0x26')](respondWithResult(_0xb07614,null))[_0xb2ac('0x41')](handleError(_0xb07614,null));};exports[_0xb2ac('0x50')]=function(_0xb0811,_0x21f911,_0xf6eaa1){var _0x305286={};var _0x399337={};var _0x1153a0;var _0x15da7c;return db[_0xb2ac('0x2c')][_0xb2ac('0x4c')]({'where':{'id':_0xb0811[_0xb2ac('0x43')]['id']}})[_0xb2ac('0x26')](handleEntityNotFound(_0x21f911,null))['then'](function(_0x584105){if(_0x584105){_0x1153a0=_0x584105;_0x399337[_0xb2ac('0x31')]=_['keys'](db[_0xb2ac('0x4d')][_0xb2ac('0x2d')]);_0x399337[_0xb2ac('0x35')]=_[_0xb2ac('0x32')](_0xb0811[_0xb2ac('0x35')]);_0x399337[_0xb2ac('0x33')]=_[_0xb2ac('0x34')](_0x399337['model'],_0x399337[_0xb2ac('0x35')]);_0x305286[_0xb2ac('0x37')]=_[_0xb2ac('0x34')](_0x399337[_0xb2ac('0x31')],qs[_0xb2ac('0x36')](_0xb0811[_0xb2ac('0x35')]['fields']));_0x305286['attributes']=_0x305286[_0xb2ac('0x37')]['length']?_0x305286[_0xb2ac('0x37')]:_0x399337['model'];_0x305286[_0xb2ac('0x39')]=qs['sort'](_0xb0811['query'][_0xb2ac('0x3a')]);_0x305286[_0xb2ac('0x3b')]=qs['filters'](_[_0xb2ac('0x3c')](_0xb0811[_0xb2ac('0x35')],_0x399337[_0xb2ac('0x33')]));if(_0xb0811['query']['filter']){_0x305286[_0xb2ac('0x3b')]=_[_0xb2ac('0x3e')](_0x305286[_0xb2ac('0x3b')],{'$or':_[_0xb2ac('0x2b')](_0x305286[_0xb2ac('0x37')],function(_0x48f05f){var _0x1a2e5c={};_0x1a2e5c[_0x48f05f]={'$like':'%'+_0xb0811['query'][_0xb2ac('0x3d')]+'%'};return _0x1a2e5c;})});}_0x305286=_[_0xb2ac('0x3e')]({},_0x305286,_0xb0811[_0xb2ac('0x4e')]);return _0x1153a0[_0xb2ac('0x50')](_0x305286);}})['then'](function(_0x2270f8){if(_0x2270f8){_0x15da7c=_0x2270f8['length'];if(!_0xb0811[_0xb2ac('0x35')]['hasOwnProperty'](_0xb2ac('0x38'))){_0x305286[_0xb2ac('0x1d')]=qs[_0xb2ac('0x1d')](_0xb0811[_0xb2ac('0x35')][_0xb2ac('0x1d')]);_0x305286[_0xb2ac('0x1c')]=qs[_0xb2ac('0x1c')](_0xb0811[_0xb2ac('0x35')]['offset']);}return _0x1153a0['getSubjects'](_0x305286);}})[_0xb2ac('0x26')](function(_0x4e576e){if(_0x4e576e){return _0x4e576e?{'count':_0x15da7c,'rows':_0x4e576e}:null;}})[_0xb2ac('0x26')](respondWithResult(_0x21f911,null))[_0xb2ac('0x41')](handleError(_0x21f911,null));};exports[_0xb2ac('0x51')]=function(_0x113192,_0x4fdd53,_0x3132ce){var _0x2f351c={};var _0x275f9a={};var _0x374e48;var _0x21c9f9;return db[_0xb2ac('0x2c')]['findOne']({'where':{'id':_0x113192[_0xb2ac('0x43')]['id']}})['then'](handleEntityNotFound(_0x4fdd53,null))['then'](function(_0x110347){if(_0x110347){_0x374e48=_0x110347;_0x275f9a[_0xb2ac('0x31')]=_[_0xb2ac('0x32')](db[_0xb2ac('0x4d')][_0xb2ac('0x2d')]);_0x275f9a['query']=_[_0xb2ac('0x32')](_0x113192['query']);_0x275f9a['filters']=_[_0xb2ac('0x34')](_0x275f9a[_0xb2ac('0x31')],_0x275f9a[_0xb2ac('0x35')]);_0x2f351c[_0xb2ac('0x37')]=_[_0xb2ac('0x34')](_0x275f9a[_0xb2ac('0x31')],qs[_0xb2ac('0x36')](_0x113192[_0xb2ac('0x35')][_0xb2ac('0x36')]));_0x2f351c['attributes']=_0x2f351c['attributes']['length']?_0x2f351c[_0xb2ac('0x37')]:_0x275f9a['model'];_0x2f351c[_0xb2ac('0x39')]=qs['sort'](_0x113192[_0xb2ac('0x35')]['sort']);_0x2f351c[_0xb2ac('0x3b')]=qs[_0xb2ac('0x33')](_['pick'](_0x113192[_0xb2ac('0x35')],_0x275f9a[_0xb2ac('0x33')]));if(_0x113192[_0xb2ac('0x35')]['filter']){_0x2f351c[_0xb2ac('0x3b')]=_[_0xb2ac('0x3e')](_0x2f351c[_0xb2ac('0x3b')],{'$or':_[_0xb2ac('0x2b')](_0x2f351c['attributes'],function(_0x4d38d8){var _0xdc30dd={};_0xdc30dd[_0x4d38d8]={'$like':'%'+_0x113192[_0xb2ac('0x35')][_0xb2ac('0x3d')]+'%'};return _0xdc30dd;})});}_0x2f351c=_[_0xb2ac('0x3e')]({},_0x2f351c,_0x113192[_0xb2ac('0x4e')]);return _0x374e48['getDescriptions'](_0x2f351c);}})[_0xb2ac('0x26')](function(_0x196dbc){if(_0x196dbc){_0x21c9f9=_0x196dbc[_0xb2ac('0x44')];if(!_0x113192[_0xb2ac('0x35')]['hasOwnProperty'](_0xb2ac('0x38'))){_0x2f351c[_0xb2ac('0x1d')]=qs[_0xb2ac('0x1d')](_0x113192[_0xb2ac('0x35')]['limit']);_0x2f351c[_0xb2ac('0x1c')]=qs['offset'](_0x113192[_0xb2ac('0x35')][_0xb2ac('0x1c')]);}return _0x374e48[_0xb2ac('0x51')](_0x2f351c);}})[_0xb2ac('0x26')](function(_0x2f982c){if(_0x2f982c){return _0x2f982c?{'count':_0x21c9f9,'rows':_0x2f982c}:null;}})['then'](respondWithResult(_0x4fdd53,null))[_0xb2ac('0x41')](handleError(_0x4fdd53,null));};
\ No newline at end of file
+var _0x7928=['zip-dir','fast-json-patch','request-promise','bluebird','path','to-csv','fs-extra','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','then','destroy','error','stack','name','send','map','Dynamics365Configuration','key','model','query','keys','filters','attributes','intersection','fields','hasOwnProperty','nolimit','order','sort','pick','filter','merge','where','options','includeAll','include','rows','catch','show','params','rawAttributes','length','find','create','body','update','getFields','findOne','Dynamics365Field','getSubjects','getDescriptions','eml-format','rimraf'];(function(_0x238030,_0x3f8d2b){var _0x259ba1=function(_0x164e8d){while(--_0x164e8d){_0x238030['push'](_0x238030['shift']());}};_0x259ba1(++_0x3f8d2b);}(_0x7928,0x170));var _0x8792=function(_0x31d71a,_0x3f9cb7){_0x31d71a=_0x31d71a-0x0;var _0x29338e=_0x7928[_0x31d71a];return _0x29338e;};'use strict';var emlformat=require(_0x8792('0x0'));var rimraf=require(_0x8792('0x1'));var zipdir=require(_0x8792('0x2'));var jsonpatch=require(_0x8792('0x3'));var rp=require(_0x8792('0x4'));var moment=require('moment');var BPromise=require(_0x8792('0x5'));var Mustache=require('mustache');var util=require('util');var path=require(_0x8792('0x6'));var sox=require('sox');var csv=require(_0x8792('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x8792('0x8'));var _=require('lodash');var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x8792('0x9'));var deskjs=require(_0x8792('0xa'));var toCsv=require(_0x8792('0x7'));var querystring=require(_0x8792('0xb'));var Papa=require(_0x8792('0xc'));var Redis=require(_0x8792('0xd'));var authService=require('../../components/auth/service');var qs=require(_0x8792('0xe'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x8792('0xf'))('api');var utils=require(_0x8792('0x10'));var config=require(_0x8792('0x11'));var licenseUtil=require('../../config/license/util');var db=require(_0x8792('0x12'))['db'];function respondWithStatusCode(_0x1f3da4,_0x4ebe57){_0x4ebe57=_0x4ebe57||0xcc;return function(_0x2bd66b){if(_0x2bd66b){return _0x1f3da4[_0x8792('0x13')](_0x4ebe57);}return _0x1f3da4[_0x8792('0x14')](_0x4ebe57)[_0x8792('0x15')]();};}function respondWithResult(_0x1439b2,_0x417a63){_0x417a63=_0x417a63||0xc8;return function(_0x578dbf){if(_0x578dbf){return _0x1439b2[_0x8792('0x14')](_0x417a63)[_0x8792('0x16')](_0x578dbf);}};}function respondWithFilteredResult(_0x2f92ac,_0x498e7a){return function(_0x1b2f0a){if(_0x1b2f0a){var _0x4002e4=typeof _0x498e7a[_0x8792('0x17')]===_0x8792('0x18')&&typeof _0x498e7a[_0x8792('0x19')]==='undefined';var _0x4d3719=_0x1b2f0a[_0x8792('0x1a')];var _0x569e0c=_0x4002e4?0x0:_0x498e7a[_0x8792('0x17')];var _0x5ec5fe=_0x4002e4?_0x1b2f0a['count']:_0x498e7a[_0x8792('0x17')]+_0x498e7a[_0x8792('0x19')];var _0x2f9c9d;if(_0x5ec5fe>=_0x4d3719){_0x5ec5fe=_0x4d3719;_0x2f9c9d=0xc8;}else{_0x2f9c9d=0xce;}_0x2f92ac['status'](_0x2f9c9d);return _0x2f92ac[_0x8792('0x1b')](_0x8792('0x1c'),_0x569e0c+'-'+_0x5ec5fe+'/'+_0x4d3719)['json'](_0x1b2f0a);}return null;};}function patchUpdates(_0x431e9b){return function(_0x1d534f){try{jsonpatch[_0x8792('0x1d')](_0x1d534f,_0x431e9b,!![]);}catch(_0x59170b){return BPromise[_0x8792('0x1e')](_0x59170b);}return _0x1d534f[_0x8792('0x1f')]();};}function saveUpdates(_0x463df4,_0x370258){return function(_0x51f0dc){if(_0x51f0dc){return _0x51f0dc['update'](_0x463df4)[_0x8792('0x20')](function(_0x589e64){return _0x589e64;});}return null;};}function removeEntity(_0x5a47cb,_0x5226b4){return function(_0x2e7225){if(_0x2e7225){return _0x2e7225[_0x8792('0x21')]()[_0x8792('0x20')](function(){_0x5a47cb[_0x8792('0x14')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4072ed,_0x208b35){return function(_0x186cd9){if(!_0x186cd9){_0x4072ed['sendStatus'](0x194);}return _0x186cd9;};}function handleError(_0x4d55ba,_0x3264a5){_0x3264a5=_0x3264a5||0x1f4;return function(_0x1e632b){logger[_0x8792('0x22')](_0x1e632b[_0x8792('0x23')]);if(_0x1e632b['name']){delete _0x1e632b[_0x8792('0x24')];}_0x4d55ba[_0x8792('0x14')](_0x3264a5)[_0x8792('0x25')](_0x1e632b);};}exports['index']=function(_0x2406d0,_0x42b4e1){var _0x293564={},_0x2b00bf={},_0x21e253={'count':0x0,'rows':[]};var _0x36bff2=_[_0x8792('0x26')](db[_0x8792('0x27')]['rawAttributes'],function(_0x57d79c){return{'name':_0x57d79c['fieldName'],'type':_0x57d79c['type'][_0x8792('0x28')]};});_0x2b00bf[_0x8792('0x29')]=_[_0x8792('0x26')](_0x36bff2,_0x8792('0x24'));_0x2b00bf[_0x8792('0x2a')]=_[_0x8792('0x2b')](_0x2406d0[_0x8792('0x2a')]);_0x2b00bf[_0x8792('0x2c')]=_['intersection'](_0x2b00bf[_0x8792('0x29')],_0x2b00bf['query']);_0x293564[_0x8792('0x2d')]=_[_0x8792('0x2e')](_0x2b00bf[_0x8792('0x29')],qs[_0x8792('0x2f')](_0x2406d0[_0x8792('0x2a')][_0x8792('0x2f')]));_0x293564[_0x8792('0x2d')]=_0x293564[_0x8792('0x2d')]['length']?_0x293564['attributes']:_0x2b00bf[_0x8792('0x29')];if(!_0x2406d0[_0x8792('0x2a')][_0x8792('0x30')](_0x8792('0x31'))){_0x293564[_0x8792('0x19')]=qs[_0x8792('0x19')](_0x2406d0['query'][_0x8792('0x19')]);_0x293564[_0x8792('0x17')]=qs[_0x8792('0x17')](_0x2406d0['query'][_0x8792('0x17')]);}_0x293564[_0x8792('0x32')]=qs[_0x8792('0x33')](_0x2406d0[_0x8792('0x2a')]['sort']);_0x293564['where']=qs['filters'](_[_0x8792('0x34')](_0x2406d0['query'],_0x2b00bf['filters']),_0x36bff2);if(_0x2406d0[_0x8792('0x2a')][_0x8792('0x35')]){_0x293564['where']=_[_0x8792('0x36')](_0x293564[_0x8792('0x37')],{'$or':_['map'](_0x36bff2,function(_0x12a35f){if(_0x12a35f['type']!=='VIRTUAL'){var _0x140f87={};_0x140f87[_0x12a35f[_0x8792('0x24')]]={'$like':'%'+_0x2406d0[_0x8792('0x2a')][_0x8792('0x35')]+'%'};return _0x140f87;}})});}_0x293564=_[_0x8792('0x36')]({},_0x293564,_0x2406d0[_0x8792('0x38')]);var _0x348a96={'where':_0x293564['where']};return db[_0x8792('0x27')][_0x8792('0x1a')](_0x348a96)['then'](function(_0x428e4c){_0x21e253[_0x8792('0x1a')]=_0x428e4c;if(_0x2406d0[_0x8792('0x2a')][_0x8792('0x39')]){_0x293564[_0x8792('0x3a')]=[{'all':!![]}];}return db[_0x8792('0x27')]['findAll'](_0x293564);})['then'](function(_0x1510d0){_0x21e253[_0x8792('0x3b')]=_0x1510d0;return _0x21e253;})['then'](respondWithFilteredResult(_0x42b4e1,_0x293564))[_0x8792('0x3c')](handleError(_0x42b4e1,null));};exports[_0x8792('0x3d')]=function(_0x298201,_0xe6bbab){var _0x25fa35={'raw':![],'where':{'id':_0x298201[_0x8792('0x3e')]['id']}},_0x408f30={};_0x408f30[_0x8792('0x29')]=_[_0x8792('0x2b')](db[_0x8792('0x27')][_0x8792('0x3f')]);_0x408f30[_0x8792('0x2a')]=_[_0x8792('0x2b')](_0x298201[_0x8792('0x2a')]);_0x408f30[_0x8792('0x2c')]=_['intersection'](_0x408f30[_0x8792('0x29')],_0x408f30[_0x8792('0x2a')]);_0x25fa35[_0x8792('0x2d')]=_['intersection'](_0x408f30['model'],qs[_0x8792('0x2f')](_0x298201[_0x8792('0x2a')][_0x8792('0x2f')]));_0x25fa35[_0x8792('0x2d')]=_0x25fa35[_0x8792('0x2d')][_0x8792('0x40')]?_0x25fa35[_0x8792('0x2d')]:_0x408f30['model'];if(_0x298201['query'][_0x8792('0x39')]){_0x25fa35[_0x8792('0x3a')]=[{'all':!![]}];}_0x25fa35=_[_0x8792('0x36')]({},_0x25fa35,_0x298201[_0x8792('0x38')]);return db['Dynamics365Configuration'][_0x8792('0x41')](_0x25fa35)[_0x8792('0x20')](handleEntityNotFound(_0xe6bbab,null))[_0x8792('0x20')](respondWithResult(_0xe6bbab,null))['catch'](handleError(_0xe6bbab,null));};exports[_0x8792('0x42')]=function(_0x5cad4a,_0x156853){return db[_0x8792('0x27')]['create'](_0x5cad4a[_0x8792('0x43')],{})[_0x8792('0x20')](respondWithResult(_0x156853,0xc9))[_0x8792('0x3c')](handleError(_0x156853,null));};exports[_0x8792('0x44')]=function(_0x25b5aa,_0x268498){if(_0x25b5aa[_0x8792('0x43')]['id']){delete _0x25b5aa[_0x8792('0x43')]['id'];}return db[_0x8792('0x27')]['find']({'where':{'id':_0x25b5aa[_0x8792('0x3e')]['id']}})[_0x8792('0x20')](handleEntityNotFound(_0x268498,null))[_0x8792('0x20')](saveUpdates(_0x25b5aa[_0x8792('0x43')],null))[_0x8792('0x20')](respondWithResult(_0x268498,null))[_0x8792('0x3c')](handleError(_0x268498,null));};exports['destroy']=function(_0x2ee258,_0x466c41){return db[_0x8792('0x27')][_0x8792('0x41')]({'where':{'id':_0x2ee258['params']['id']}})['then'](handleEntityNotFound(_0x466c41,null))[_0x8792('0x20')](removeEntity(_0x466c41,null))['catch'](handleError(_0x466c41,null));};exports[_0x8792('0x45')]=function(_0x240aee,_0x59c4b9,_0x551c2d){var _0x21b828={};var _0x4cf6f5={};var _0x3fe9ad;var _0x256a93;return db['Dynamics365Configuration'][_0x8792('0x46')]({'where':{'id':_0x240aee['params']['id']}})[_0x8792('0x20')](handleEntityNotFound(_0x59c4b9,null))['then'](function(_0x28a4eb){if(_0x28a4eb){_0x3fe9ad=_0x28a4eb;_0x4cf6f5[_0x8792('0x29')]=_['keys'](db[_0x8792('0x47')][_0x8792('0x3f')]);_0x4cf6f5['query']=_[_0x8792('0x2b')](_0x240aee[_0x8792('0x2a')]);_0x4cf6f5['filters']=_[_0x8792('0x2e')](_0x4cf6f5[_0x8792('0x29')],_0x4cf6f5[_0x8792('0x2a')]);_0x21b828[_0x8792('0x2d')]=_['intersection'](_0x4cf6f5['model'],qs[_0x8792('0x2f')](_0x240aee[_0x8792('0x2a')][_0x8792('0x2f')]));_0x21b828[_0x8792('0x2d')]=_0x21b828[_0x8792('0x2d')]['length']?_0x21b828[_0x8792('0x2d')]:_0x4cf6f5['model'];_0x21b828['order']=qs[_0x8792('0x33')](_0x240aee[_0x8792('0x2a')]['sort']);_0x21b828[_0x8792('0x37')]=qs[_0x8792('0x2c')](_[_0x8792('0x34')](_0x240aee[_0x8792('0x2a')],_0x4cf6f5[_0x8792('0x2c')]));if(_0x240aee[_0x8792('0x2a')][_0x8792('0x35')]){_0x21b828[_0x8792('0x37')]=_['merge'](_0x21b828[_0x8792('0x37')],{'$or':_[_0x8792('0x26')](_0x21b828['attributes'],function(_0x5086ec){var _0x1e3f38={};_0x1e3f38[_0x5086ec]={'$like':'%'+_0x240aee['query'][_0x8792('0x35')]+'%'};return _0x1e3f38;})});}_0x21b828=_[_0x8792('0x36')]({},_0x21b828,_0x240aee['options']);return _0x3fe9ad[_0x8792('0x45')](_0x21b828);}})[_0x8792('0x20')](function(_0x51ac00){if(_0x51ac00){_0x256a93=_0x51ac00[_0x8792('0x40')];if(!_0x240aee[_0x8792('0x2a')][_0x8792('0x30')](_0x8792('0x31'))){_0x21b828['limit']=qs[_0x8792('0x19')](_0x240aee[_0x8792('0x2a')]['limit']);_0x21b828[_0x8792('0x17')]=qs[_0x8792('0x17')](_0x240aee['query'][_0x8792('0x17')]);}return _0x3fe9ad[_0x8792('0x45')](_0x21b828);}})[_0x8792('0x20')](function(_0x491a30){if(_0x491a30){return _0x491a30?{'count':_0x256a93,'rows':_0x491a30}:null;}})['then'](respondWithResult(_0x59c4b9,null))[_0x8792('0x3c')](handleError(_0x59c4b9,null));};exports[_0x8792('0x48')]=function(_0x1c7fbe,_0x2b1e16,_0x244da1){var _0xa17145={};var _0x3334cc={};var _0x1bcfed;var _0x3a8ae7;return db[_0x8792('0x27')][_0x8792('0x46')]({'where':{'id':_0x1c7fbe[_0x8792('0x3e')]['id']}})[_0x8792('0x20')](handleEntityNotFound(_0x2b1e16,null))[_0x8792('0x20')](function(_0x58ede5){if(_0x58ede5){_0x1bcfed=_0x58ede5;_0x3334cc[_0x8792('0x29')]=_['keys'](db['Dynamics365Field'][_0x8792('0x3f')]);_0x3334cc['query']=_[_0x8792('0x2b')](_0x1c7fbe[_0x8792('0x2a')]);_0x3334cc['filters']=_[_0x8792('0x2e')](_0x3334cc[_0x8792('0x29')],_0x3334cc[_0x8792('0x2a')]);_0xa17145[_0x8792('0x2d')]=_[_0x8792('0x2e')](_0x3334cc[_0x8792('0x29')],qs['fields'](_0x1c7fbe[_0x8792('0x2a')][_0x8792('0x2f')]));_0xa17145[_0x8792('0x2d')]=_0xa17145[_0x8792('0x2d')]['length']?_0xa17145['attributes']:_0x3334cc[_0x8792('0x29')];_0xa17145[_0x8792('0x32')]=qs[_0x8792('0x33')](_0x1c7fbe[_0x8792('0x2a')]['sort']);_0xa17145['where']=qs[_0x8792('0x2c')](_[_0x8792('0x34')](_0x1c7fbe['query'],_0x3334cc['filters']));if(_0x1c7fbe[_0x8792('0x2a')][_0x8792('0x35')]){_0xa17145[_0x8792('0x37')]=_[_0x8792('0x36')](_0xa17145[_0x8792('0x37')],{'$or':_['map'](_0xa17145['attributes'],function(_0x3551c0){var _0x5a5d65={};_0x5a5d65[_0x3551c0]={'$like':'%'+_0x1c7fbe['query'][_0x8792('0x35')]+'%'};return _0x5a5d65;})});}_0xa17145=_['merge']({},_0xa17145,_0x1c7fbe['options']);return _0x1bcfed[_0x8792('0x48')](_0xa17145);}})['then'](function(_0x27f727){if(_0x27f727){_0x3a8ae7=_0x27f727[_0x8792('0x40')];if(!_0x1c7fbe[_0x8792('0x2a')][_0x8792('0x30')](_0x8792('0x31'))){_0xa17145[_0x8792('0x19')]=qs['limit'](_0x1c7fbe[_0x8792('0x2a')][_0x8792('0x19')]);_0xa17145[_0x8792('0x17')]=qs[_0x8792('0x17')](_0x1c7fbe[_0x8792('0x2a')][_0x8792('0x17')]);}return _0x1bcfed[_0x8792('0x48')](_0xa17145);}})[_0x8792('0x20')](function(_0x5df574){if(_0x5df574){return _0x5df574?{'count':_0x3a8ae7,'rows':_0x5df574}:null;}})['then'](respondWithResult(_0x2b1e16,null))[_0x8792('0x3c')](handleError(_0x2b1e16,null));};exports[_0x8792('0x49')]=function(_0x48d085,_0x242b58,_0x3122b0){var _0x12192b={};var _0x47dc4e={};var _0x2d87bd;var _0x58948a;return db[_0x8792('0x27')]['findOne']({'where':{'id':_0x48d085[_0x8792('0x3e')]['id']}})[_0x8792('0x20')](handleEntityNotFound(_0x242b58,null))[_0x8792('0x20')](function(_0x30e11d){if(_0x30e11d){_0x2d87bd=_0x30e11d;_0x47dc4e[_0x8792('0x29')]=_[_0x8792('0x2b')](db[_0x8792('0x47')][_0x8792('0x3f')]);_0x47dc4e['query']=_[_0x8792('0x2b')](_0x48d085['query']);_0x47dc4e[_0x8792('0x2c')]=_[_0x8792('0x2e')](_0x47dc4e['model'],_0x47dc4e[_0x8792('0x2a')]);_0x12192b['attributes']=_['intersection'](_0x47dc4e[_0x8792('0x29')],qs[_0x8792('0x2f')](_0x48d085[_0x8792('0x2a')][_0x8792('0x2f')]));_0x12192b[_0x8792('0x2d')]=_0x12192b['attributes'][_0x8792('0x40')]?_0x12192b['attributes']:_0x47dc4e[_0x8792('0x29')];_0x12192b['order']=qs['sort'](_0x48d085[_0x8792('0x2a')][_0x8792('0x33')]);_0x12192b[_0x8792('0x37')]=qs[_0x8792('0x2c')](_[_0x8792('0x34')](_0x48d085[_0x8792('0x2a')],_0x47dc4e[_0x8792('0x2c')]));if(_0x48d085[_0x8792('0x2a')][_0x8792('0x35')]){_0x12192b[_0x8792('0x37')]=_[_0x8792('0x36')](_0x12192b[_0x8792('0x37')],{'$or':_[_0x8792('0x26')](_0x12192b[_0x8792('0x2d')],function(_0x4d3951){var _0x1a39fe={};_0x1a39fe[_0x4d3951]={'$like':'%'+_0x48d085[_0x8792('0x2a')][_0x8792('0x35')]+'%'};return _0x1a39fe;})});}_0x12192b=_[_0x8792('0x36')]({},_0x12192b,_0x48d085['options']);return _0x2d87bd['getDescriptions'](_0x12192b);}})[_0x8792('0x20')](function(_0x484dd0){if(_0x484dd0){_0x58948a=_0x484dd0[_0x8792('0x40')];if(!_0x48d085['query'][_0x8792('0x30')]('nolimit')){_0x12192b[_0x8792('0x19')]=qs[_0x8792('0x19')](_0x48d085[_0x8792('0x2a')]['limit']);_0x12192b[_0x8792('0x17')]=qs[_0x8792('0x17')](_0x48d085[_0x8792('0x2a')]['offset']);}return _0x2d87bd['getDescriptions'](_0x12192b);}})[_0x8792('0x20')](function(_0x28e0a2){if(_0x28e0a2){return _0x28e0a2?{'count':_0x58948a,'rows':_0x28e0a2}:null;}})['then'](respondWithResult(_0x242b58,null))[_0x8792('0x3c')](handleError(_0x242b58,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9a19=['lodash','util','../../config/logger','moment','bluebird','request-promise','path','rimraf','../../config/environment','./intDynamics365Configuration.attributes','exports','define'];(function(_0x38537f,_0x252124){var _0x141e23=function(_0x2809b5){while(--_0x2809b5){_0x38537f['push'](_0x38537f['shift']());}};_0x141e23(++_0x252124);}(_0x9a19,0x114));var _0x99a1=function(_0x5d07ff,_0x1f976f){_0x5d07ff=_0x5d07ff-0x0;var _0x5226ad=_0x9a19[_0x5d07ff];return _0x5226ad;};'use strict';var _=require(_0x99a1('0x0'));var util=require(_0x99a1('0x1'));var logger=require(_0x99a1('0x2'))('api');var moment=require(_0x99a1('0x3'));var BPromise=require(_0x99a1('0x4'));var rp=require(_0x99a1('0x5'));var fs=require('fs');var path=require(_0x99a1('0x6'));var rimraf=require(_0x99a1('0x7'));var config=require(_0x99a1('0x8'));var attributes=require(_0x99a1('0x9'));module[_0x99a1('0xa')]=function(_0x3eff4a,_0xff0240){return _0x3eff4a[_0x99a1('0xb')]('Dynamics365Configuration',attributes,{'tableName':'int_dynamics365_configurations','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x4b84=['moment','path','rimraf','../../config/environment','Dynamics365Configuration','lodash','util'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x4b84,0x1cc));var _0x44b8=function(_0x2714ec,_0x36daa4){_0x2714ec=_0x2714ec-0x0;var _0x2608e5=_0x4b84[_0x2714ec];return _0x2608e5;};'use strict';var _=require(_0x44b8('0x0'));var util=require(_0x44b8('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0x44b8('0x2'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0x44b8('0x3'));var rimraf=require(_0x44b8('0x4'));var config=require(_0x44b8('0x5'));var attributes=require('./intDynamics365Configuration.attributes');module['exports']=function(_0x55f25d,_0x996a8b){return _0x55f25d['define'](_0x44b8('0x6'),attributes,{'tableName':'int_dynamics365_configurations','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4df5=['request','request\x20sent','debug','Dynamics365Configuration,\x20%s,\x20%s,\x20%s','stringify','error','code','Dynamics365Configuration,\x20%s,\x20%s','message','info','result','lodash','util','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client'];(function(_0x5955d6,_0x292037){var _0x437bf5=function(_0x3d956a){while(--_0x3d956a){_0x5955d6['push'](_0x5955d6['shift']());}};_0x437bf5(++_0x292037);}(_0x4df5,0x197));var _0x54df=function(_0x18efb0,_0x5d9ce0){_0x18efb0=_0x18efb0-0x0;var _0x72b1ff=_0x4df5[_0x18efb0];return _0x72b1ff;};'use strict';var _=require(_0x54df('0x0'));var util=require(_0x54df('0x1'));var moment=require('moment');var BPromise=require(_0x54df('0x2'));var rs=require(_0x54df('0x3'));var fs=require('fs');var Redis=require(_0x54df('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x54df('0x5'));var logger=require(_0x54df('0x6'))(_0x54df('0x7'));var config=require(_0x54df('0x8'));var jayson=require(_0x54df('0x9'));var client=jayson[_0x54df('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0x2227ba,_0xf54e27,_0x1004fc){return new BPromise(function(_0x1003e1,_0x29df02){return client[_0x54df('0xb')](_0x2227ba,_0x1004fc)['then'](function(_0x4925dc){logger['info']('Dynamics365Configuration,\x20%s,\x20%s',_0xf54e27,_0x54df('0xc'));logger[_0x54df('0xd')](_0x54df('0xe'),_0xf54e27,_0x54df('0xc'),JSON[_0x54df('0xf')](_0x4925dc));if(_0x4925dc[_0x54df('0x10')]){if(_0x4925dc[_0x54df('0x10')][_0x54df('0x11')]===0x1f4){logger[_0x54df('0x10')](_0x54df('0x12'),_0xf54e27,_0x4925dc[_0x54df('0x10')][_0x54df('0x13')]);return _0x29df02(_0x4925dc[_0x54df('0x10')][_0x54df('0x13')]);}logger[_0x54df('0x10')](_0x54df('0x12'),_0xf54e27,_0x4925dc[_0x54df('0x10')][_0x54df('0x13')]);return _0x1003e1(_0x4925dc[_0x54df('0x10')][_0x54df('0x13')]);}else{logger[_0x54df('0x14')](_0x54df('0x12'),_0xf54e27,'request\x20sent');_0x1003e1(_0x4925dc[_0x54df('0x15')][_0x54df('0x13')]);}})['catch'](function(_0x57dd20){logger['error'](_0x54df('0x12'),_0xf54e27,_0x57dd20);_0x29df02(_0x57dd20);});});}
\ No newline at end of file
+var _0x9b0e=['catch','lodash','util','moment','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','request','info','debug','Dynamics365Configuration,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','Dynamics365Configuration,\x20%s,\x20%s','message'];(function(_0x45bf86,_0x75586e){var _0x1f02b7=function(_0x1ea8a3){while(--_0x1ea8a3){_0x45bf86['push'](_0x45bf86['shift']());}};_0x1f02b7(++_0x75586e);}(_0x9b0e,0x131));var _0xe9b0=function(_0x3c28db,_0x98e337){_0x3c28db=_0x3c28db-0x0;var _0x248e3d=_0x9b0e[_0x3c28db];return _0x248e3d;};'use strict';var _=require(_0xe9b0('0x0'));var util=require(_0xe9b0('0x1'));var moment=require(_0xe9b0('0x2'));var BPromise=require('bluebird');var rs=require(_0xe9b0('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xe9b0('0x4'))['db'];var utils=require(_0xe9b0('0x5'));var logger=require(_0xe9b0('0x6'))(_0xe9b0('0x7'));var config=require(_0xe9b0('0x8'));var jayson=require('jayson/promise');var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0xb06dd2,_0x4ae4ea,_0x20d5ce){return new BPromise(function(_0x360c1f,_0x367ec8){return client[_0xe9b0('0x9')](_0xb06dd2,_0x20d5ce)['then'](function(_0x4fdab9){logger[_0xe9b0('0xa')]('Dynamics365Configuration,\x20%s,\x20%s',_0x4ae4ea,'request\x20sent');logger[_0xe9b0('0xb')](_0xe9b0('0xc'),_0x4ae4ea,_0xe9b0('0xd'),JSON[_0xe9b0('0xe')](_0x4fdab9));if(_0x4fdab9[_0xe9b0('0xf')]){if(_0x4fdab9[_0xe9b0('0xf')]['code']===0x1f4){logger[_0xe9b0('0xf')](_0xe9b0('0x10'),_0x4ae4ea,_0x4fdab9[_0xe9b0('0xf')][_0xe9b0('0x11')]);return _0x367ec8(_0x4fdab9[_0xe9b0('0xf')][_0xe9b0('0x11')]);}logger[_0xe9b0('0xf')]('Dynamics365Configuration,\x20%s,\x20%s',_0x4ae4ea,_0x4fdab9[_0xe9b0('0xf')][_0xe9b0('0x11')]);return _0x360c1f(_0x4fdab9[_0xe9b0('0xf')][_0xe9b0('0x11')]);}else{logger['info'](_0xe9b0('0x10'),_0x4ae4ea,_0xe9b0('0xd'));_0x360c1f(_0x4fdab9['result'][_0xe9b0('0x11')]);}})[_0xe9b0('0x12')](function(_0x59778d){logger[_0xe9b0('0xf')](_0xe9b0('0x10'),_0x4ae4ea,_0x59778d);_0x367ec8(_0x59778d);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x58b2=['update','delete','destroy','exports','util','connect-timeout','express','Router','../../components/auth/service','../../config/environment','./intDynamics365Field.controller','get','isAuthenticated','/:id','post','create'];(function(_0x4ddc5c,_0x1cb036){var _0x3f0bd8=function(_0x57a9a3){while(--_0x57a9a3){_0x4ddc5c['push'](_0x4ddc5c['shift']());}};_0x3f0bd8(++_0x1cb036);}(_0x58b2,0x1e4));var _0x258b=function(_0x2a04d4,_0xa57830){_0x2a04d4=_0x2a04d4-0x0;var _0x40b2f9=_0x58b2[_0x2a04d4];return _0x40b2f9;};'use strict';var multer=require('multer');var util=require(_0x258b('0x0'));var path=require('path');var timeout=require(_0x258b('0x1'));var express=require(_0x258b('0x2'));var router=express[_0x258b('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x258b('0x4'));var interaction=require('../../components/interaction/service');var config=require(_0x258b('0x5'));var controller=require(_0x258b('0x6'));router[_0x258b('0x7')]('/',auth[_0x258b('0x8')](),controller['index']);router['get'](_0x258b('0x9'),auth[_0x258b('0x8')](),controller['show']);router[_0x258b('0xa')]('/',auth[_0x258b('0x8')](),controller[_0x258b('0xb')]);router['put'](_0x258b('0x9'),auth[_0x258b('0x8')](),controller[_0x258b('0xc')]);router[_0x258b('0xd')](_0x258b('0x9'),auth[_0x258b('0x8')](),controller[_0x258b('0xe')]);module[_0x258b('0xf')]=router;
\ No newline at end of file
+var _0x7d45=['../../components/interaction/service','../../config/environment','isAuthenticated','get','/:id','show','put','destroy','exports','util','path','Router','fs-extra'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x7d45,0x100));var _0x57d4=function(_0x2c91e9,_0x2fb965){_0x2c91e9=_0x2c91e9-0x0;var _0x13f0ff=_0x7d45[_0x2c91e9];return _0x13f0ff;};'use strict';var multer=require('multer');var util=require(_0x57d4('0x0'));var path=require(_0x57d4('0x1'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x57d4('0x2')]();var fs_extra=require(_0x57d4('0x3'));var auth=require('../../components/auth/service');var interaction=require(_0x57d4('0x4'));var config=require(_0x57d4('0x5'));var controller=require('./intDynamics365Field.controller');router['get']('/',auth[_0x57d4('0x6')](),controller['index']);router[_0x57d4('0x7')](_0x57d4('0x8'),auth['isAuthenticated'](),controller[_0x57d4('0x9')]);router['post']('/',auth[_0x57d4('0x6')](),controller['create']);router[_0x57d4('0xa')](_0x57d4('0x8'),auth[_0x57d4('0x6')](),controller['update']);router['delete'](_0x57d4('0x8'),auth[_0x57d4('0x6')](),controller[_0x57d4('0xb')]);module[_0x57d4('0xc')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x636e=['STRING','customVariable','BOOLEAN','sequelize','exports','ENUM','string','variable','keyValue'];(function(_0x3b5049,_0x495a94){var _0x12454e=function(_0x3988d3){while(--_0x3988d3){_0x3b5049['push'](_0x3b5049['shift']());}};_0x12454e(++_0x495a94);}(_0x636e,0x1b3));var _0xe636=function(_0x12cc7d,_0x15707b){_0x12cc7d=_0x12cc7d-0x0;var _0x130508=_0x636e[_0x12cc7d];return _0x130508;};'use strict';var Sequelize=require(_0xe636('0x0'));module[_0xe636('0x1')]={'type':{'type':Sequelize[_0xe636('0x2')](_0xe636('0x3'),_0xe636('0x4'),'customVariable',_0xe636('0x5'),'picklist'),'defaultValue':_0xe636('0x3')},'content':{'type':Sequelize[_0xe636('0x6')]},'key':{'type':Sequelize[_0xe636('0x6')]},'keyType':{'type':Sequelize[_0xe636('0x2')](_0xe636('0x3'),'variable',_0xe636('0x7'))},'keyContent':{'type':Sequelize[_0xe636('0x6')]},'idField':{'type':Sequelize[_0xe636('0x6')]},'nameField':{'type':Sequelize['STRING']},'customField':{'type':Sequelize[_0xe636('0x8')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0xe636('0x6')]}};
\ No newline at end of file
+var _0x2e60=['keyValue','picklist','STRING','BOOLEAN','sequelize','exports','ENUM','string','variable','customVariable'];(function(_0x3670ec,_0x3d154a){var _0x495314=function(_0x23ffd8){while(--_0x23ffd8){_0x3670ec['push'](_0x3670ec['shift']());}};_0x495314(++_0x3d154a);}(_0x2e60,0x90));var _0x02e6=function(_0x199b37,_0x1f79a6){_0x199b37=_0x199b37-0x0;var _0x174835=_0x2e60[_0x199b37];return _0x174835;};'use strict';var Sequelize=require(_0x02e6('0x0'));module[_0x02e6('0x1')]={'type':{'type':Sequelize[_0x02e6('0x2')](_0x02e6('0x3'),_0x02e6('0x4'),_0x02e6('0x5'),_0x02e6('0x6'),_0x02e6('0x7')),'defaultValue':_0x02e6('0x3')},'content':{'type':Sequelize[_0x02e6('0x8')]},'key':{'type':Sequelize['STRING']},'keyType':{'type':Sequelize[_0x02e6('0x2')]('string','variable','customVariable')},'keyContent':{'type':Sequelize[_0x02e6('0x8')]},'idField':{'type':Sequelize[_0x02e6('0x8')]},'nameField':{'type':Sequelize[_0x02e6('0x8')]},'customField':{'type':Sequelize[_0x02e6('0x9')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0x02e6('0x8')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf870=['type','model','map','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','filter','merge','VIRTUAL','options','includeAll','findAll','show','params','keys','rawAttributes','include','catch','create','body','find','destroy','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','reject','save','update','then','error','name','send','index','Dynamics365Field','fieldName'];(function(_0x5c39a2,_0x1beee4){var _0x88abeb=function(_0x55d61d){while(--_0x55d61d){_0x5c39a2['push'](_0x5c39a2['shift']());}};_0x88abeb(++_0x1beee4);}(_0xf870,0x19e));var _0x0f87=function(_0x25e416,_0x3b2f71){_0x25e416=_0x25e416-0x0;var _0x31543a=_0xf870[_0x25e416];return _0x31543a;};'use strict';var emlformat=require(_0x0f87('0x0'));var rimraf=require(_0x0f87('0x1'));var zipdir=require(_0x0f87('0x2'));var jsonpatch=require(_0x0f87('0x3'));var rp=require(_0x0f87('0x4'));var moment=require('moment');var BPromise=require(_0x0f87('0x5'));var Mustache=require(_0x0f87('0x6'));var util=require('util');var path=require(_0x0f87('0x7'));var sox=require(_0x0f87('0x8'));var csv=require(_0x0f87('0x9'));var ejs=require(_0x0f87('0xa'));var fs=require('fs');var fs_extra=require(_0x0f87('0xb'));var _=require(_0x0f87('0xc'));var squel=require('squel');var crypto=require(_0x0f87('0xd'));var jsforce=require(_0x0f87('0xe'));var deskjs=require(_0x0f87('0xf'));var toCsv=require(_0x0f87('0x9'));var querystring=require(_0x0f87('0x10'));var Papa=require(_0x0f87('0x11'));var Redis=require(_0x0f87('0x12'));var authService=require(_0x0f87('0x13'));var qs=require(_0x0f87('0x14'));var as=require(_0x0f87('0x15'));var hardwareService=require(_0x0f87('0x16'));var logger=require(_0x0f87('0x17'))(_0x0f87('0x18'));var utils=require(_0x0f87('0x19'));var config=require(_0x0f87('0x1a'));var licenseUtil=require(_0x0f87('0x1b'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x1e58e4,_0x560037){_0x560037=_0x560037||0xcc;return function(_0x338ff0){if(_0x338ff0){return _0x1e58e4[_0x0f87('0x1c')](_0x560037);}return _0x1e58e4[_0x0f87('0x1d')](_0x560037)[_0x0f87('0x1e')]();};}function respondWithResult(_0x5316bc,_0x35c31c){_0x35c31c=_0x35c31c||0xc8;return function(_0x1c0514){if(_0x1c0514){return _0x5316bc['status'](_0x35c31c)[_0x0f87('0x1f')](_0x1c0514);}};}function respondWithFilteredResult(_0x3b7fda,_0x4999aa){return function(_0x31a239){if(_0x31a239){var _0x34f753=typeof _0x4999aa[_0x0f87('0x20')]===_0x0f87('0x21')&&typeof _0x4999aa['limit']===_0x0f87('0x21');var _0x5378e4=_0x31a239[_0x0f87('0x22')];var _0x3a4435=_0x34f753?0x0:_0x4999aa[_0x0f87('0x20')];var _0x1dec69=_0x34f753?_0x31a239[_0x0f87('0x22')]:_0x4999aa[_0x0f87('0x20')]+_0x4999aa[_0x0f87('0x23')];var _0x1c37f7;if(_0x1dec69>=_0x5378e4){_0x1dec69=_0x5378e4;_0x1c37f7=0xc8;}else{_0x1c37f7=0xce;}_0x3b7fda['status'](_0x1c37f7);return _0x3b7fda[_0x0f87('0x24')](_0x0f87('0x25'),_0x3a4435+'-'+_0x1dec69+'/'+_0x5378e4)['json'](_0x31a239);}return null;};}function patchUpdates(_0x256fe0){return function(_0x13ad14){try{jsonpatch['apply'](_0x13ad14,_0x256fe0,!![]);}catch(_0x571477){return BPromise[_0x0f87('0x26')](_0x571477);}return _0x13ad14[_0x0f87('0x27')]();};}function saveUpdates(_0x2d805c,_0x17f71a){return function(_0xb9fc81){if(_0xb9fc81){return _0xb9fc81[_0x0f87('0x28')](_0x2d805c)['then'](function(_0x3c6577){return _0x3c6577;});}return null;};}function removeEntity(_0xd9cf2d,_0x27a332){return function(_0xa1e297){if(_0xa1e297){return _0xa1e297['destroy']()[_0x0f87('0x29')](function(){_0xd9cf2d[_0x0f87('0x1d')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4d09a0,_0x15d7de){return function(_0x7c4e4a){if(!_0x7c4e4a){_0x4d09a0[_0x0f87('0x1c')](0x194);}return _0x7c4e4a;};}function handleError(_0x5a6160,_0x38735c){_0x38735c=_0x38735c||0x1f4;return function(_0x425dbf){logger[_0x0f87('0x2a')](_0x425dbf['stack']);if(_0x425dbf['name']){delete _0x425dbf[_0x0f87('0x2b')];}_0x5a6160[_0x0f87('0x1d')](_0x38735c)[_0x0f87('0x2c')](_0x425dbf);};}exports[_0x0f87('0x2d')]=function(_0x181838,_0x1e95ff){var _0x17d3ec={},_0x107617={},_0x5aad0f={'count':0x0,'rows':[]};var _0x37973e=_['map'](db[_0x0f87('0x2e')]['rawAttributes'],function(_0x4ca3ec){return{'name':_0x4ca3ec[_0x0f87('0x2f')],'type':_0x4ca3ec[_0x0f87('0x30')]['key']};});_0x107617[_0x0f87('0x31')]=_[_0x0f87('0x32')](_0x37973e,_0x0f87('0x2b'));_0x107617[_0x0f87('0x33')]=_['keys'](_0x181838[_0x0f87('0x33')]);_0x107617[_0x0f87('0x34')]=_[_0x0f87('0x35')](_0x107617['model'],_0x107617[_0x0f87('0x33')]);_0x17d3ec[_0x0f87('0x36')]=_[_0x0f87('0x35')](_0x107617[_0x0f87('0x31')],qs[_0x0f87('0x37')](_0x181838[_0x0f87('0x33')]['fields']));_0x17d3ec[_0x0f87('0x36')]=_0x17d3ec['attributes'][_0x0f87('0x38')]?_0x17d3ec['attributes']:_0x107617[_0x0f87('0x31')];if(!_0x181838[_0x0f87('0x33')][_0x0f87('0x39')](_0x0f87('0x3a'))){_0x17d3ec['limit']=qs[_0x0f87('0x23')](_0x181838[_0x0f87('0x33')][_0x0f87('0x23')]);_0x17d3ec[_0x0f87('0x20')]=qs[_0x0f87('0x20')](_0x181838['query']['offset']);}_0x17d3ec['order']=qs['sort'](_0x181838[_0x0f87('0x33')][_0x0f87('0x3b')]);_0x17d3ec[_0x0f87('0x3c')]=qs[_0x0f87('0x34')](_['pick'](_0x181838['query'],_0x107617['filters']),_0x37973e);if(_0x181838[_0x0f87('0x33')][_0x0f87('0x3d')]){_0x17d3ec[_0x0f87('0x3c')]=_[_0x0f87('0x3e')](_0x17d3ec[_0x0f87('0x3c')],{'$or':_[_0x0f87('0x32')](_0x37973e,function(_0x371b7c){if(_0x371b7c[_0x0f87('0x30')]!==_0x0f87('0x3f')){var _0x1e3ffd={};_0x1e3ffd[_0x371b7c['name']]={'$like':'%'+_0x181838[_0x0f87('0x33')][_0x0f87('0x3d')]+'%'};return _0x1e3ffd;}})});}_0x17d3ec=_[_0x0f87('0x3e')]({},_0x17d3ec,_0x181838[_0x0f87('0x40')]);var _0x425ad4={'where':_0x17d3ec['where']};return db[_0x0f87('0x2e')][_0x0f87('0x22')](_0x425ad4)[_0x0f87('0x29')](function(_0x3492f6){_0x5aad0f['count']=_0x3492f6;if(_0x181838[_0x0f87('0x33')][_0x0f87('0x41')]){_0x17d3ec['include']=[{'all':!![]}];}return db[_0x0f87('0x2e')][_0x0f87('0x42')](_0x17d3ec);})[_0x0f87('0x29')](function(_0x307cca){_0x5aad0f['rows']=_0x307cca;return _0x5aad0f;})[_0x0f87('0x29')](respondWithFilteredResult(_0x1e95ff,_0x17d3ec))['catch'](handleError(_0x1e95ff,null));};exports[_0x0f87('0x43')]=function(_0x51076b,_0x5c357f){var _0x541a07={'raw':!![],'where':{'id':_0x51076b[_0x0f87('0x44')]['id']}},_0x585c0b={};_0x585c0b[_0x0f87('0x31')]=_[_0x0f87('0x45')](db[_0x0f87('0x2e')][_0x0f87('0x46')]);_0x585c0b[_0x0f87('0x33')]=_['keys'](_0x51076b[_0x0f87('0x33')]);_0x585c0b[_0x0f87('0x34')]=_[_0x0f87('0x35')](_0x585c0b[_0x0f87('0x31')],_0x585c0b[_0x0f87('0x33')]);_0x541a07['attributes']=_[_0x0f87('0x35')](_0x585c0b[_0x0f87('0x31')],qs[_0x0f87('0x37')](_0x51076b['query'][_0x0f87('0x37')]));_0x541a07[_0x0f87('0x36')]=_0x541a07[_0x0f87('0x36')][_0x0f87('0x38')]?_0x541a07[_0x0f87('0x36')]:_0x585c0b[_0x0f87('0x31')];if(_0x51076b[_0x0f87('0x33')][_0x0f87('0x41')]){_0x541a07[_0x0f87('0x47')]=[{'all':!![]}];}_0x541a07=_[_0x0f87('0x3e')]({},_0x541a07,_0x51076b[_0x0f87('0x40')]);return db[_0x0f87('0x2e')]['find'](_0x541a07)[_0x0f87('0x29')](handleEntityNotFound(_0x5c357f,null))[_0x0f87('0x29')](respondWithResult(_0x5c357f,null))[_0x0f87('0x48')](handleError(_0x5c357f,null));};exports[_0x0f87('0x49')]=function(_0x8c00e5,_0x225a6c){return db[_0x0f87('0x2e')]['create'](_0x8c00e5[_0x0f87('0x4a')],{})[_0x0f87('0x29')](respondWithResult(_0x225a6c,0xc9))['catch'](handleError(_0x225a6c,null));};exports[_0x0f87('0x28')]=function(_0x26b29f,_0x34c4a7){if(_0x26b29f[_0x0f87('0x4a')]['id']){delete _0x26b29f['body']['id'];}return db[_0x0f87('0x2e')][_0x0f87('0x4b')]({'where':{'id':_0x26b29f[_0x0f87('0x44')]['id']}})['then'](handleEntityNotFound(_0x34c4a7,null))[_0x0f87('0x29')](saveUpdates(_0x26b29f[_0x0f87('0x4a')],null))[_0x0f87('0x29')](respondWithResult(_0x34c4a7,null))[_0x0f87('0x48')](handleError(_0x34c4a7,null));};exports[_0x0f87('0x4c')]=function(_0x453b7c,_0x55127d){return db[_0x0f87('0x2e')][_0x0f87('0x4b')]({'where':{'id':_0x453b7c[_0x0f87('0x44')]['id']}})[_0x0f87('0x29')](handleEntityNotFound(_0x55127d,null))[_0x0f87('0x29')](removeEntity(_0x55127d,null))[_0x0f87('0x48')](handleError(_0x55127d,null));};
\ No newline at end of file
+var _0x6ce2=['pick','filter','merge','VIRTUAL','options','includeAll','findAll','rows','catch','show','params','rawAttributes','attributes','include','find','create','Dynamics365Field','body','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','lodash','squel','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','status','end','offset','limit','count','Content-Range','json','apply','reject','save','update','then','destroy','sendStatus','stack','name','index','map','fieldName','type','key','model','query','keys','intersection','fields','length','hasOwnProperty','order','sort','where','filters'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x6ce2,0x1d4));var _0x26ce=function(_0x55e08b,_0x421620){_0x55e08b=_0x55e08b-0x0;var _0xd1a7ff=_0x6ce2[_0x55e08b];return _0xd1a7ff;};'use strict';var emlformat=require(_0x26ce('0x0'));var rimraf=require(_0x26ce('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x26ce('0x2'));var rp=require(_0x26ce('0x3'));var moment=require(_0x26ce('0x4'));var BPromise=require(_0x26ce('0x5'));var Mustache=require(_0x26ce('0x6'));var util=require('util');var path=require(_0x26ce('0x7'));var sox=require(_0x26ce('0x8'));var csv=require(_0x26ce('0x9'));var ejs=require(_0x26ce('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x26ce('0xb'));var squel=require(_0x26ce('0xc'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x26ce('0xd'));var toCsv=require(_0x26ce('0x9'));var querystring=require(_0x26ce('0xe'));var Papa=require(_0x26ce('0xf'));var Redis=require(_0x26ce('0x10'));var authService=require(_0x26ce('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0x26ce('0x12'));var hardwareService=require(_0x26ce('0x13'));var logger=require(_0x26ce('0x14'))(_0x26ce('0x15'));var utils=require(_0x26ce('0x16'));var config=require(_0x26ce('0x17'));var licenseUtil=require(_0x26ce('0x18'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x4ded89,_0x4e8c86){_0x4e8c86=_0x4e8c86||0xcc;return function(_0x33b748){if(_0x33b748){return _0x4ded89['sendStatus'](_0x4e8c86);}return _0x4ded89[_0x26ce('0x19')](_0x4e8c86)[_0x26ce('0x1a')]();};}function respondWithResult(_0xd4a3f7,_0x51f5cb){_0x51f5cb=_0x51f5cb||0xc8;return function(_0x328a69){if(_0x328a69){return _0xd4a3f7[_0x26ce('0x19')](_0x51f5cb)['json'](_0x328a69);}};}function respondWithFilteredResult(_0x38881b,_0x4a9c9f){return function(_0x54de38){if(_0x54de38){var _0x4728b7=typeof _0x4a9c9f[_0x26ce('0x1b')]==='undefined'&&typeof _0x4a9c9f[_0x26ce('0x1c')]==='undefined';var _0x3fbd67=_0x54de38[_0x26ce('0x1d')];var _0x393777=_0x4728b7?0x0:_0x4a9c9f[_0x26ce('0x1b')];var _0x2e3127=_0x4728b7?_0x54de38[_0x26ce('0x1d')]:_0x4a9c9f[_0x26ce('0x1b')]+_0x4a9c9f[_0x26ce('0x1c')];var _0x3336b2;if(_0x2e3127>=_0x3fbd67){_0x2e3127=_0x3fbd67;_0x3336b2=0xc8;}else{_0x3336b2=0xce;}_0x38881b['status'](_0x3336b2);return _0x38881b['set'](_0x26ce('0x1e'),_0x393777+'-'+_0x2e3127+'/'+_0x3fbd67)[_0x26ce('0x1f')](_0x54de38);}return null;};}function patchUpdates(_0x182efc){return function(_0x5c098d){try{jsonpatch[_0x26ce('0x20')](_0x5c098d,_0x182efc,!![]);}catch(_0x43a8f9){return BPromise[_0x26ce('0x21')](_0x43a8f9);}return _0x5c098d[_0x26ce('0x22')]();};}function saveUpdates(_0x42f2af,_0x2e2877){return function(_0x2c9592){if(_0x2c9592){return _0x2c9592[_0x26ce('0x23')](_0x42f2af)[_0x26ce('0x24')](function(_0x3e7a4f){return _0x3e7a4f;});}return null;};}function removeEntity(_0x2615fe,_0x4c7b4f){return function(_0x33416f){if(_0x33416f){return _0x33416f[_0x26ce('0x25')]()[_0x26ce('0x24')](function(){_0x2615fe[_0x26ce('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x39569f,_0x182762){return function(_0x2568cd){if(!_0x2568cd){_0x39569f[_0x26ce('0x26')](0x194);}return _0x2568cd;};}function handleError(_0x21f62f,_0x439cf9){_0x439cf9=_0x439cf9||0x1f4;return function(_0x5f336b){logger['error'](_0x5f336b[_0x26ce('0x27')]);if(_0x5f336b[_0x26ce('0x28')]){delete _0x5f336b['name'];}_0x21f62f['status'](_0x439cf9)['send'](_0x5f336b);};}exports[_0x26ce('0x29')]=function(_0x5158da,_0x240b6b){var _0xc61d53={},_0x2f37b9={},_0x37ea02={'count':0x0,'rows':[]};var _0x31af86=_[_0x26ce('0x2a')](db['Dynamics365Field']['rawAttributes'],function(_0x579ec2){return{'name':_0x579ec2[_0x26ce('0x2b')],'type':_0x579ec2[_0x26ce('0x2c')][_0x26ce('0x2d')]};});_0x2f37b9[_0x26ce('0x2e')]=_['map'](_0x31af86,_0x26ce('0x28'));_0x2f37b9[_0x26ce('0x2f')]=_[_0x26ce('0x30')](_0x5158da[_0x26ce('0x2f')]);_0x2f37b9['filters']=_[_0x26ce('0x31')](_0x2f37b9[_0x26ce('0x2e')],_0x2f37b9[_0x26ce('0x2f')]);_0xc61d53['attributes']=_[_0x26ce('0x31')](_0x2f37b9['model'],qs[_0x26ce('0x32')](_0x5158da[_0x26ce('0x2f')]['fields']));_0xc61d53['attributes']=_0xc61d53['attributes'][_0x26ce('0x33')]?_0xc61d53['attributes']:_0x2f37b9[_0x26ce('0x2e')];if(!_0x5158da['query'][_0x26ce('0x34')]('nolimit')){_0xc61d53['limit']=qs['limit'](_0x5158da[_0x26ce('0x2f')][_0x26ce('0x1c')]);_0xc61d53[_0x26ce('0x1b')]=qs[_0x26ce('0x1b')](_0x5158da[_0x26ce('0x2f')][_0x26ce('0x1b')]);}_0xc61d53[_0x26ce('0x35')]=qs['sort'](_0x5158da['query'][_0x26ce('0x36')]);_0xc61d53[_0x26ce('0x37')]=qs[_0x26ce('0x38')](_[_0x26ce('0x39')](_0x5158da[_0x26ce('0x2f')],_0x2f37b9[_0x26ce('0x38')]),_0x31af86);if(_0x5158da[_0x26ce('0x2f')][_0x26ce('0x3a')]){_0xc61d53[_0x26ce('0x37')]=_[_0x26ce('0x3b')](_0xc61d53[_0x26ce('0x37')],{'$or':_['map'](_0x31af86,function(_0x34c0fe){if(_0x34c0fe[_0x26ce('0x2c')]!==_0x26ce('0x3c')){var _0x20052f={};_0x20052f[_0x34c0fe[_0x26ce('0x28')]]={'$like':'%'+_0x5158da[_0x26ce('0x2f')][_0x26ce('0x3a')]+'%'};return _0x20052f;}})});}_0xc61d53=_[_0x26ce('0x3b')]({},_0xc61d53,_0x5158da[_0x26ce('0x3d')]);var _0x1a7a3f={'where':_0xc61d53['where']};return db['Dynamics365Field'][_0x26ce('0x1d')](_0x1a7a3f)[_0x26ce('0x24')](function(_0x150875){_0x37ea02[_0x26ce('0x1d')]=_0x150875;if(_0x5158da[_0x26ce('0x2f')][_0x26ce('0x3e')]){_0xc61d53['include']=[{'all':!![]}];}return db['Dynamics365Field'][_0x26ce('0x3f')](_0xc61d53);})[_0x26ce('0x24')](function(_0x42c7fb){_0x37ea02[_0x26ce('0x40')]=_0x42c7fb;return _0x37ea02;})['then'](respondWithFilteredResult(_0x240b6b,_0xc61d53))[_0x26ce('0x41')](handleError(_0x240b6b,null));};exports[_0x26ce('0x42')]=function(_0x31c5b5,_0x3114c4){var _0x1a8d96={'raw':!![],'where':{'id':_0x31c5b5[_0x26ce('0x43')]['id']}},_0x44c4a1={};_0x44c4a1['model']=_[_0x26ce('0x30')](db['Dynamics365Field'][_0x26ce('0x44')]);_0x44c4a1[_0x26ce('0x2f')]=_[_0x26ce('0x30')](_0x31c5b5['query']);_0x44c4a1[_0x26ce('0x38')]=_[_0x26ce('0x31')](_0x44c4a1[_0x26ce('0x2e')],_0x44c4a1[_0x26ce('0x2f')]);_0x1a8d96[_0x26ce('0x45')]=_['intersection'](_0x44c4a1[_0x26ce('0x2e')],qs['fields'](_0x31c5b5[_0x26ce('0x2f')]['fields']));_0x1a8d96['attributes']=_0x1a8d96['attributes'][_0x26ce('0x33')]?_0x1a8d96[_0x26ce('0x45')]:_0x44c4a1[_0x26ce('0x2e')];if(_0x31c5b5[_0x26ce('0x2f')][_0x26ce('0x3e')]){_0x1a8d96[_0x26ce('0x46')]=[{'all':!![]}];}_0x1a8d96=_[_0x26ce('0x3b')]({},_0x1a8d96,_0x31c5b5[_0x26ce('0x3d')]);return db['Dynamics365Field'][_0x26ce('0x47')](_0x1a8d96)['then'](handleEntityNotFound(_0x3114c4,null))[_0x26ce('0x24')](respondWithResult(_0x3114c4,null))[_0x26ce('0x41')](handleError(_0x3114c4,null));};exports[_0x26ce('0x48')]=function(_0x357fd9,_0x41e55e){return db[_0x26ce('0x49')][_0x26ce('0x48')](_0x357fd9[_0x26ce('0x4a')],{})[_0x26ce('0x24')](respondWithResult(_0x41e55e,0xc9))[_0x26ce('0x41')](handleError(_0x41e55e,null));};exports[_0x26ce('0x23')]=function(_0x80dc80,_0x404d58){if(_0x80dc80['body']['id']){delete _0x80dc80[_0x26ce('0x4a')]['id'];}return db['Dynamics365Field'][_0x26ce('0x47')]({'where':{'id':_0x80dc80[_0x26ce('0x43')]['id']}})[_0x26ce('0x24')](handleEntityNotFound(_0x404d58,null))[_0x26ce('0x24')](saveUpdates(_0x80dc80[_0x26ce('0x4a')],null))['then'](respondWithResult(_0x404d58,null))[_0x26ce('0x41')](handleError(_0x404d58,null));};exports['destroy']=function(_0x537c60,_0x546720){return db[_0x26ce('0x49')][_0x26ce('0x47')]({'where':{'id':_0x537c60[_0x26ce('0x43')]['id']}})[_0x26ce('0x24')](handleEntityNotFound(_0x546720,null))['then'](removeEntity(_0x546720,null))[_0x26ce('0x41')](handleError(_0x546720,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1f49=['define','Dynamics365Field','int_dynamics365_fields','FieldId','lodash','util','../../config/logger','api','path','rimraf','../../config/environment','./intDynamics365Field.attributes'];(function(_0x34e019,_0x369969){var _0x31a180=function(_0x98ed00){while(--_0x98ed00){_0x34e019['push'](_0x34e019['shift']());}};_0x31a180(++_0x369969);}(_0x1f49,0x70));var _0x91f4=function(_0x1cb18a,_0x33167a){_0x1cb18a=_0x1cb18a-0x0;var _0x22442e=_0x1f49[_0x1cb18a];return _0x22442e;};'use strict';var _=require(_0x91f4('0x0'));var util=require(_0x91f4('0x1'));var logger=require(_0x91f4('0x2'))(_0x91f4('0x3'));var moment=require('moment');var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0x91f4('0x4'));var rimraf=require(_0x91f4('0x5'));var config=require(_0x91f4('0x6'));var attributes=require(_0x91f4('0x7'));module['exports']=function(_0x28d84b,_0x1e82f9){return _0x28d84b[_0x91f4('0x8')](_0x91f4('0x9'),attributes,{'tableName':_0x91f4('0xa'),'paranoid':![],'indexes':[{'name':'dynamics365_unique_index','fields':['idField',_0x91f4('0xb')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x04d0=['rimraf','exports','define','int_dynamics365_fields','dynamics365_unique_index','idField','FieldId','util','api','moment','bluebird','request-promise','path'];(function(_0x56303d,_0x53bf3b){var _0x1cec90=function(_0x3b329a){while(--_0x3b329a){_0x56303d['push'](_0x56303d['shift']());}};_0x1cec90(++_0x53bf3b);}(_0x04d0,0x19a));var _0x004d=function(_0x282d2f,_0x4fc227){_0x282d2f=_0x282d2f-0x0;var _0x222f69=_0x04d0[_0x282d2f];return _0x222f69;};'use strict';var _=require('lodash');var util=require(_0x004d('0x0'));var logger=require('../../config/logger')(_0x004d('0x1'));var moment=require(_0x004d('0x2'));var BPromise=require(_0x004d('0x3'));var rp=require(_0x004d('0x4'));var fs=require('fs');var path=require(_0x004d('0x5'));var rimraf=require(_0x004d('0x6'));var config=require('../../config/environment');var attributes=require('./intDynamics365Field.attributes');module[_0x004d('0x7')]=function(_0x12fba3,_0x9d3869){return _0x12fba3[_0x004d('0x8')]('Dynamics365Field',attributes,{'tableName':_0x004d('0x9'),'paranoid':![],'indexes':[{'name':_0x004d('0xa'),'fields':[_0x004d('0xb'),_0x004d('0xc')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb748=['code','message','info','result','catch','lodash','moment','bluebird','ioredis','../../config/logger','rpc','jayson/promise','request','then','Dynamics365Field,\x20%s,\x20%s','request\x20sent','debug','stringify','error'];(function(_0x3e1a03,_0x70d28b){var _0x468592=function(_0x249c0d){while(--_0x249c0d){_0x3e1a03['push'](_0x3e1a03['shift']());}};_0x468592(++_0x70d28b);}(_0xb748,0xd6));var _0x8b74=function(_0xa84669,_0x5288c0){_0xa84669=_0xa84669-0x0;var _0x3c6ba4=_0xb748[_0xa84669];return _0x3c6ba4;};'use strict';var _=require(_0x8b74('0x0'));var util=require('util');var moment=require(_0x8b74('0x1'));var BPromise=require(_0x8b74('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x8b74('0x3'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x8b74('0x4'))(_0x8b74('0x5'));var config=require('../../config/environment');var jayson=require(_0x8b74('0x6'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x3ce378,_0x5af4e7,_0x2f6a34){return new BPromise(function(_0xff7f61,_0x1649b7){return client[_0x8b74('0x7')](_0x3ce378,_0x2f6a34)[_0x8b74('0x8')](function(_0x32b096){logger['info'](_0x8b74('0x9'),_0x5af4e7,_0x8b74('0xa'));logger[_0x8b74('0xb')]('Dynamics365Field,\x20%s,\x20%s,\x20%s',_0x5af4e7,_0x8b74('0xa'),JSON[_0x8b74('0xc')](_0x32b096));if(_0x32b096[_0x8b74('0xd')]){if(_0x32b096[_0x8b74('0xd')][_0x8b74('0xe')]===0x1f4){logger[_0x8b74('0xd')](_0x8b74('0x9'),_0x5af4e7,_0x32b096['error']['message']);return _0x1649b7(_0x32b096[_0x8b74('0xd')]['message']);}logger[_0x8b74('0xd')](_0x8b74('0x9'),_0x5af4e7,_0x32b096[_0x8b74('0xd')][_0x8b74('0xf')]);return _0xff7f61(_0x32b096[_0x8b74('0xd')][_0x8b74('0xf')]);}else{logger[_0x8b74('0x10')](_0x8b74('0x9'),_0x5af4e7,_0x8b74('0xa'));_0xff7f61(_0x32b096[_0x8b74('0x11')][_0x8b74('0xf')]);}})[_0x8b74('0x12')](function(_0x378504){logger['error'](_0x8b74('0x9'),_0x5af4e7,_0x378504);_0x1649b7(_0x378504);});});}
\ No newline at end of file
+var _0x8155=['ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','request','info','Dynamics365Field,\x20%s,\x20%s','request\x20sent','debug','Dynamics365Field,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','lodash','util','bluebird'];(function(_0x491cbe,_0x45c8ba){var _0x59449d=function(_0x21b463){while(--_0x21b463){_0x491cbe['push'](_0x491cbe['shift']());}};_0x59449d(++_0x45c8ba);}(_0x8155,0x173));var _0x5815=function(_0x482e4f,_0x3147f0){_0x482e4f=_0x482e4f-0x0;var _0x185640=_0x8155[_0x482e4f];return _0x185640;};'use strict';var _=require(_0x5815('0x0'));var util=require(_0x5815('0x1'));var moment=require('moment');var BPromise=require(_0x5815('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x5815('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x5815('0x4'));var logger=require(_0x5815('0x5'))(_0x5815('0x6'));var config=require(_0x5815('0x7'));var jayson=require('jayson/promise');var client=jayson[_0x5815('0x8')][_0x5815('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x42ba87,_0x18af42,_0x56a863){return new BPromise(function(_0x195596,_0x30f108){return client[_0x5815('0xa')](_0x42ba87,_0x56a863)['then'](function(_0x374daf){logger[_0x5815('0xb')](_0x5815('0xc'),_0x18af42,_0x5815('0xd'));logger[_0x5815('0xe')](_0x5815('0xf'),_0x18af42,_0x5815('0xd'),JSON[_0x5815('0x10')](_0x374daf));if(_0x374daf['error']){if(_0x374daf[_0x5815('0x11')][_0x5815('0x12')]===0x1f4){logger[_0x5815('0x11')](_0x5815('0xc'),_0x18af42,_0x374daf[_0x5815('0x11')][_0x5815('0x13')]);return _0x30f108(_0x374daf[_0x5815('0x11')][_0x5815('0x13')]);}logger[_0x5815('0x11')](_0x5815('0xc'),_0x18af42,_0x374daf[_0x5815('0x11')][_0x5815('0x13')]);return _0x195596(_0x374daf[_0x5815('0x11')][_0x5815('0x13')]);}else{logger[_0x5815('0xb')]('Dynamics365Field,\x20%s,\x20%s',_0x18af42,'request\x20sent');_0x195596(_0x374daf[_0x5815('0x14')]['message']);}})[_0x5815('0x15')](function(_0x4bce02){logger[_0x5815('0x11')](_0x5815('0xc'),_0x18af42,_0x4bce02);_0x30f108(_0x4bce02);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa71e=['/:id','show','/:id/configurations','/:id/fields','getFields','post','create','addConfiguration','put','update','destroy','multer','util','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../config/environment','get','isAuthenticated','index'];(function(_0x2bd408,_0x4c5659){var _0x54c9f1=function(_0x11e6e3){while(--_0x11e6e3){_0x2bd408['push'](_0x2bd408['shift']());}};_0x54c9f1(++_0x4c5659);}(_0xa71e,0x181));var _0xea71=function(_0x5c619e,_0x1bccdf){_0x5c619e=_0x5c619e-0x0;var _0x445cf8=_0xa71e[_0x5c619e];return _0x445cf8;};'use strict';var multer=require(_0xea71('0x0'));var util=require(_0xea71('0x1'));var path=require('path');var timeout=require(_0xea71('0x2'));var express=require(_0xea71('0x3'));var router=express[_0xea71('0x4')]();var fs_extra=require(_0xea71('0x5'));var auth=require(_0xea71('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0xea71('0x7'));var controller=require('./intFreshdeskAccount.controller');router[_0xea71('0x8')]('/',auth[_0xea71('0x9')](),controller[_0xea71('0xa')]);router[_0xea71('0x8')](_0xea71('0xb'),auth[_0xea71('0x9')](),controller[_0xea71('0xc')]);router[_0xea71('0x8')](_0xea71('0xd'),auth['isAuthenticated'](),controller['getConfigurations']);router[_0xea71('0x8')](_0xea71('0xe'),auth[_0xea71('0x9')](),controller[_0xea71('0xf')]);router[_0xea71('0x10')]('/',auth[_0xea71('0x9')](),controller[_0xea71('0x11')]);router[_0xea71('0x10')](_0xea71('0xd'),auth[_0xea71('0x9')](),controller[_0xea71('0x12')]);router[_0xea71('0x13')](_0xea71('0xb'),auth[_0xea71('0x9')](),controller[_0xea71('0x14')]);router['delete'](_0xea71('0xb'),auth[_0xea71('0x9')](),controller[_0xea71('0x15')]);module['exports']=router;
\ No newline at end of file
+var _0xfdbf=['fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./intFreshdeskAccount.controller','get','isAuthenticated','/:id','/:id/configurations','getConfigurations','/:id/fields','getFields','post','addConfiguration','update','delete','exports','util','path','connect-timeout'];(function(_0x2074db,_0x10b81b){var _0x27324c=function(_0x5c3d5c){while(--_0x5c3d5c){_0x2074db['push'](_0x2074db['shift']());}};_0x27324c(++_0x10b81b);}(_0xfdbf,0x75));var _0xffdb=function(_0x56f7e2,_0x145392){_0x56f7e2=_0x56f7e2-0x0;var _0x36240b=_0xfdbf[_0x56f7e2];return _0x36240b;};'use strict';var multer=require('multer');var util=require(_0xffdb('0x0'));var path=require(_0xffdb('0x1'));var timeout=require(_0xffdb('0x2'));var express=require('express');var router=express['Router']();var fs_extra=require(_0xffdb('0x3'));var auth=require(_0xffdb('0x4'));var interaction=require(_0xffdb('0x5'));var config=require(_0xffdb('0x6'));var controller=require(_0xffdb('0x7'));router[_0xffdb('0x8')]('/',auth[_0xffdb('0x9')](),controller['index']);router[_0xffdb('0x8')](_0xffdb('0xa'),auth[_0xffdb('0x9')](),controller['show']);router[_0xffdb('0x8')](_0xffdb('0xb'),auth['isAuthenticated'](),controller[_0xffdb('0xc')]);router[_0xffdb('0x8')](_0xffdb('0xd'),auth['isAuthenticated'](),controller[_0xffdb('0xe')]);router[_0xffdb('0xf')]('/',auth[_0xffdb('0x9')](),controller['create']);router[_0xffdb('0xf')](_0xffdb('0xb'),auth[_0xffdb('0x9')](),controller[_0xffdb('0x10')]);router['put'](_0xffdb('0xa'),auth[_0xffdb('0x9')](),controller[_0xffdb('0x11')]);router[_0xffdb('0x12')](_0xffdb('0xa'),auth[_0xffdb('0x9')](),controller['destroy']);module[_0xffdb('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x77d4=['exports','STRING','username'];(function(_0x312ad6,_0x5dcca8){var _0x1069dc=function(_0x42446d){while(--_0x42446d){_0x312ad6['push'](_0x312ad6['shift']());}};_0x1069dc(++_0x5dcca8);}(_0x77d4,0x108));var _0x477d=function(_0x561e7b,_0x4bcd2e){_0x561e7b=_0x561e7b-0x0;var _0x5851ed=_0x77d4[_0x561e7b];return _0x5851ed;};'use strict';var Sequelize=require('sequelize');module[_0x477d('0x0')]={'name':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0x477d('0x1')]},'username':{'type':Sequelize['STRING'],'unique':_0x477d('0x2')},'apiKey':{'type':Sequelize[_0x477d('0x1')]},'remoteUri':{'type':Sequelize['STRING'],'unique':'remoteUri'},'serverUrl':{'type':Sequelize[_0x477d('0x1')],'allowNull':![]}};
\ No newline at end of file
+var _0xda2d=['exports','STRING','username'];(function(_0x248604,_0x635589){var _0x5f227b=function(_0x6fd61f){while(--_0x6fd61f){_0x248604['push'](_0x248604['shift']());}};_0x5f227b(++_0x635589);}(_0xda2d,0x102));var _0xdda2=function(_0x59eba9,_0x5b492b){_0x59eba9=_0x59eba9-0x0;var _0x367c38=_0xda2d[_0x59eba9];return _0x367c38;};'use strict';var Sequelize=require('sequelize');module[_0xdda2('0x0')]={'name':{'type':Sequelize[_0xdda2('0x1')]},'description':{'type':Sequelize[_0xdda2('0x1')]},'username':{'type':Sequelize[_0xdda2('0x1')],'unique':_0xdda2('0x2')},'apiKey':{'type':Sequelize['STRING']},'remoteUri':{'type':Sequelize['STRING'],'unique':'remoteUri'},'serverUrl':{'type':Sequelize[_0xdda2('0x1')],'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9990=['ticket_type','company','remove','includes','default','custom_text','custom_dropdown','choices','capitalize','test','statusCode','error','stringify','Wrong\x20credentials','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','../../components/integrations/configuration','status','end','json','offset','undefined','count','limit','set','Content-Range','apply','update','then','destroy','stack','name','send','index','map','rawAttributes','fieldName','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','sort','filters','pick','filter','where','merge','type','VIRTUAL','options','FreshdeskAccount','includeAll','include','findAll','rows','catch','params','find','create','body','getConfigurations','findOne','order','addConfiguration','AccountId','Subjects','channel','Descriptions','getDescriptions','FreshdeskConfiguration','FreshdeskField','getFields','remoteUri','slice','substring','lastIndexOf','format','api/v2/ticket_fields','Basic\x20%s','%s:X','apiKey','toString','base64','requester','agent','description','priority','group','source'];(function(_0x151334,_0x1e11ac){var _0x3d03da=function(_0x2099cf){while(--_0x2099cf){_0x151334['push'](_0x151334['shift']());}};_0x3d03da(++_0x1e11ac);}(_0x9990,0xf6));var _0x0999=function(_0x243e12,_0x2d7bc5){_0x243e12=_0x243e12-0x0;var _0x3fddfc=_0x9990[_0x243e12];return _0x3fddfc;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x0999('0x0'));var zipdir=require(_0x0999('0x1'));var jsonpatch=require(_0x0999('0x2'));var rp=require(_0x0999('0x3'));var moment=require(_0x0999('0x4'));var BPromise=require(_0x0999('0x5'));var Mustache=require(_0x0999('0x6'));var util=require(_0x0999('0x7'));var path=require('path');var sox=require(_0x0999('0x8'));var csv=require(_0x0999('0x9'));var ejs=require(_0x0999('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x0999('0xb'));var squel=require(_0x0999('0xc'));var crypto=require(_0x0999('0xd'));var jsforce=require(_0x0999('0xe'));var deskjs=require(_0x0999('0xf'));var toCsv=require(_0x0999('0x9'));var querystring=require(_0x0999('0x10'));var Papa=require('papaparse');var Redis=require(_0x0999('0x11'));var authService=require(_0x0999('0x12'));var qs=require(_0x0999('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x0999('0x14'));var logger=require(_0x0999('0x15'))(_0x0999('0x16'));var utils=require('../../config/utils');var config=require(_0x0999('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0x0999('0x18'))['db'];var integrations=require(_0x0999('0x19'));function respondWithStatusCode(_0x2ea251,_0x428b59){_0x428b59=_0x428b59||0xcc;return function(_0x1a7598){if(_0x1a7598){return _0x2ea251['sendStatus'](_0x428b59);}return _0x2ea251[_0x0999('0x1a')](_0x428b59)[_0x0999('0x1b')]();};}function respondWithResult(_0x39cba9,_0x4011bf){_0x4011bf=_0x4011bf||0xc8;return function(_0x294776){if(_0x294776){return _0x39cba9['status'](_0x4011bf)[_0x0999('0x1c')](_0x294776);}};}function respondWithFilteredResult(_0x3757ae,_0x6bf882){return function(_0x4e4e53){if(_0x4e4e53){var _0x2d0ca2=typeof _0x6bf882[_0x0999('0x1d')]===_0x0999('0x1e')&&typeof _0x6bf882['limit']===_0x0999('0x1e');var _0x335d84=_0x4e4e53['count'];var _0x107573=_0x2d0ca2?0x0:_0x6bf882[_0x0999('0x1d')];var _0x56373e=_0x2d0ca2?_0x4e4e53[_0x0999('0x1f')]:_0x6bf882[_0x0999('0x1d')]+_0x6bf882[_0x0999('0x20')];var _0x470c84;if(_0x56373e>=_0x335d84){_0x56373e=_0x335d84;_0x470c84=0xc8;}else{_0x470c84=0xce;}_0x3757ae[_0x0999('0x1a')](_0x470c84);return _0x3757ae[_0x0999('0x21')](_0x0999('0x22'),_0x107573+'-'+_0x56373e+'/'+_0x335d84)[_0x0999('0x1c')](_0x4e4e53);}return null;};}function patchUpdates(_0x8a5ef6){return function(_0x4d451b){try{jsonpatch[_0x0999('0x23')](_0x4d451b,_0x8a5ef6,!![]);}catch(_0xb6dec){return BPromise['reject'](_0xb6dec);}return _0x4d451b['save']();};}function saveUpdates(_0x19ddc0,_0xf2820c){return function(_0x2404be){if(_0x2404be){return _0x2404be[_0x0999('0x24')](_0x19ddc0)[_0x0999('0x25')](function(_0x15a7e8){return _0x15a7e8;});}return null;};}function removeEntity(_0x4d4f38,_0x20ba88){return function(_0x5f4611){if(_0x5f4611){return _0x5f4611[_0x0999('0x26')]()['then'](function(){_0x4d4f38[_0x0999('0x1a')](0xcc)[_0x0999('0x1b')]();});}};}function handleEntityNotFound(_0x273163,_0x317127){return function(_0x4ba35b){if(!_0x4ba35b){_0x273163['sendStatus'](0x194);}return _0x4ba35b;};}function handleError(_0x1cc734,_0x5e5681){_0x5e5681=_0x5e5681||0x1f4;return function(_0x353b0a){logger['error'](_0x353b0a[_0x0999('0x27')]);if(_0x353b0a[_0x0999('0x28')]){delete _0x353b0a[_0x0999('0x28')];}_0x1cc734[_0x0999('0x1a')](_0x5e5681)[_0x0999('0x29')](_0x353b0a);};}exports[_0x0999('0x2a')]=function(_0x3cf0d3,_0x5c9fb4){var _0x1df4cf={},_0x199df7={},_0x36cd03={'count':0x0,'rows':[]};var _0x24411f=_[_0x0999('0x2b')](db['FreshdeskAccount'][_0x0999('0x2c')],function(_0x1cc07f){return{'name':_0x1cc07f[_0x0999('0x2d')],'type':_0x1cc07f['type']['key']};});_0x199df7[_0x0999('0x2e')]=_[_0x0999('0x2b')](_0x24411f,'name');_0x199df7[_0x0999('0x2f')]=_[_0x0999('0x30')](_0x3cf0d3[_0x0999('0x2f')]);_0x199df7['filters']=_[_0x0999('0x31')](_0x199df7['model'],_0x199df7[_0x0999('0x2f')]);_0x1df4cf[_0x0999('0x32')]=_[_0x0999('0x31')](_0x199df7[_0x0999('0x2e')],qs[_0x0999('0x33')](_0x3cf0d3['query']['fields']));_0x1df4cf[_0x0999('0x32')]=_0x1df4cf[_0x0999('0x32')][_0x0999('0x34')]?_0x1df4cf[_0x0999('0x32')]:_0x199df7['model'];if(!_0x3cf0d3[_0x0999('0x2f')][_0x0999('0x35')]('nolimit')){_0x1df4cf[_0x0999('0x20')]=qs[_0x0999('0x20')](_0x3cf0d3[_0x0999('0x2f')][_0x0999('0x20')]);_0x1df4cf[_0x0999('0x1d')]=qs[_0x0999('0x1d')](_0x3cf0d3['query'][_0x0999('0x1d')]);}_0x1df4cf['order']=qs[_0x0999('0x36')](_0x3cf0d3[_0x0999('0x2f')][_0x0999('0x36')]);_0x1df4cf['where']=qs[_0x0999('0x37')](_[_0x0999('0x38')](_0x3cf0d3[_0x0999('0x2f')],_0x199df7[_0x0999('0x37')]),_0x24411f);if(_0x3cf0d3[_0x0999('0x2f')][_0x0999('0x39')]){_0x1df4cf[_0x0999('0x3a')]=_[_0x0999('0x3b')](_0x1df4cf[_0x0999('0x3a')],{'$or':_[_0x0999('0x2b')](_0x24411f,function(_0x485d83){if(_0x485d83[_0x0999('0x3c')]!==_0x0999('0x3d')){var _0x557358={};_0x557358[_0x485d83[_0x0999('0x28')]]={'$like':'%'+_0x3cf0d3[_0x0999('0x2f')][_0x0999('0x39')]+'%'};return _0x557358;}})});}_0x1df4cf=_[_0x0999('0x3b')]({},_0x1df4cf,_0x3cf0d3[_0x0999('0x3e')]);var _0x47ab00={'where':_0x1df4cf[_0x0999('0x3a')]};return db[_0x0999('0x3f')][_0x0999('0x1f')](_0x47ab00)['then'](function(_0x3a95d8){_0x36cd03[_0x0999('0x1f')]=_0x3a95d8;if(_0x3cf0d3[_0x0999('0x2f')][_0x0999('0x40')]){_0x1df4cf[_0x0999('0x41')]=[{'all':!![]}];}return db[_0x0999('0x3f')][_0x0999('0x42')](_0x1df4cf);})[_0x0999('0x25')](function(_0x44976d){_0x36cd03[_0x0999('0x43')]=_0x44976d;return _0x36cd03;})[_0x0999('0x25')](respondWithFilteredResult(_0x5c9fb4,_0x1df4cf))[_0x0999('0x44')](handleError(_0x5c9fb4,null));};exports['show']=function(_0xc632f4,_0x266982){var _0x47edb3={'raw':![],'where':{'id':_0xc632f4[_0x0999('0x45')]['id']}},_0x51956e={};_0x51956e['model']=_['keys'](db[_0x0999('0x3f')][_0x0999('0x2c')]);_0x51956e[_0x0999('0x2f')]=_[_0x0999('0x30')](_0xc632f4[_0x0999('0x2f')]);_0x51956e[_0x0999('0x37')]=_[_0x0999('0x31')](_0x51956e[_0x0999('0x2e')],_0x51956e[_0x0999('0x2f')]);_0x47edb3[_0x0999('0x32')]=_[_0x0999('0x31')](_0x51956e['model'],qs['fields'](_0xc632f4[_0x0999('0x2f')][_0x0999('0x33')]));_0x47edb3[_0x0999('0x32')]=_0x47edb3[_0x0999('0x32')][_0x0999('0x34')]?_0x47edb3[_0x0999('0x32')]:_0x51956e[_0x0999('0x2e')];if(_0xc632f4[_0x0999('0x2f')]['includeAll']){_0x47edb3['include']=[{'all':!![]}];}_0x47edb3=_[_0x0999('0x3b')]({},_0x47edb3,_0xc632f4[_0x0999('0x3e')]);return db['FreshdeskAccount'][_0x0999('0x46')](_0x47edb3)['then'](handleEntityNotFound(_0x266982,null))['then'](respondWithResult(_0x266982,null))[_0x0999('0x44')](handleError(_0x266982,null));};exports[_0x0999('0x47')]=function(_0x433a6d,_0xaace1c){return db[_0x0999('0x3f')][_0x0999('0x47')](_0x433a6d[_0x0999('0x48')],{})[_0x0999('0x25')](respondWithResult(_0xaace1c,0xc9))[_0x0999('0x44')](handleError(_0xaace1c,null));};exports['update']=function(_0x2ee544,_0x29879b){if(_0x2ee544[_0x0999('0x48')]['id']){delete _0x2ee544[_0x0999('0x48')]['id'];}return db[_0x0999('0x3f')][_0x0999('0x46')]({'where':{'id':_0x2ee544[_0x0999('0x45')]['id']}})[_0x0999('0x25')](handleEntityNotFound(_0x29879b,null))[_0x0999('0x25')](saveUpdates(_0x2ee544['body'],null))[_0x0999('0x25')](respondWithResult(_0x29879b,null))['catch'](handleError(_0x29879b,null));};exports[_0x0999('0x26')]=function(_0x218092,_0x318345){return db[_0x0999('0x3f')][_0x0999('0x46')]({'where':{'id':_0x218092['params']['id']}})[_0x0999('0x25')](handleEntityNotFound(_0x318345,null))[_0x0999('0x25')](removeEntity(_0x318345,null))[_0x0999('0x44')](handleError(_0x318345,null));};exports[_0x0999('0x49')]=function(_0x3f42f8,_0x3f4f33,_0x563869){var _0x1e3d89={};var _0x1a90f1={};var _0x3faafa;var _0x2113e8;return db[_0x0999('0x3f')][_0x0999('0x4a')]({'where':{'id':_0x3f42f8[_0x0999('0x45')]['id']}})['then'](handleEntityNotFound(_0x3f4f33,null))[_0x0999('0x25')](function(_0x1df925){if(_0x1df925){_0x3faafa=_0x1df925;_0x1a90f1[_0x0999('0x2e')]=_[_0x0999('0x30')](db['FreshdeskConfiguration'][_0x0999('0x2c')]);_0x1a90f1[_0x0999('0x2f')]=_[_0x0999('0x30')](_0x3f42f8['query']);_0x1a90f1[_0x0999('0x37')]=_[_0x0999('0x31')](_0x1a90f1[_0x0999('0x2e')],_0x1a90f1['query']);_0x1e3d89[_0x0999('0x32')]=_[_0x0999('0x31')](_0x1a90f1[_0x0999('0x2e')],qs[_0x0999('0x33')](_0x3f42f8[_0x0999('0x2f')][_0x0999('0x33')]));_0x1e3d89[_0x0999('0x32')]=_0x1e3d89[_0x0999('0x32')][_0x0999('0x34')]?_0x1e3d89['attributes']:_0x1a90f1[_0x0999('0x2e')];_0x1e3d89[_0x0999('0x4b')]=qs[_0x0999('0x36')](_0x3f42f8[_0x0999('0x2f')][_0x0999('0x36')]);_0x1e3d89['where']=qs['filters'](_[_0x0999('0x38')](_0x3f42f8[_0x0999('0x2f')],_0x1a90f1['filters']));if(_0x3f42f8['query']['filter']){_0x1e3d89[_0x0999('0x3a')]=_[_0x0999('0x3b')](_0x1e3d89[_0x0999('0x3a')],{'$or':_[_0x0999('0x2b')](_0x1e3d89[_0x0999('0x32')],function(_0x16614c){var _0x1eefda={};_0x1eefda[_0x16614c]={'$like':'%'+_0x3f42f8[_0x0999('0x2f')][_0x0999('0x39')]+'%'};return _0x1eefda;})});}_0x1e3d89=_['merge']({},_0x1e3d89,_0x3f42f8[_0x0999('0x3e')]);return _0x3faafa['getConfigurations'](_0x1e3d89);}})[_0x0999('0x25')](function(_0x13f9c4){if(_0x13f9c4){_0x2113e8=_0x13f9c4[_0x0999('0x34')];if(!_0x3f42f8[_0x0999('0x2f')][_0x0999('0x35')]('nolimit')){_0x1e3d89['limit']=qs[_0x0999('0x20')](_0x3f42f8[_0x0999('0x2f')][_0x0999('0x20')]);_0x1e3d89[_0x0999('0x1d')]=qs[_0x0999('0x1d')](_0x3f42f8['query'][_0x0999('0x1d')]);}return _0x3faafa[_0x0999('0x49')](_0x1e3d89);}})[_0x0999('0x25')](function(_0x27a4ae){if(_0x27a4ae){return _0x27a4ae?{'count':_0x2113e8,'rows':_0x27a4ae}:null;}})[_0x0999('0x25')](respondWithResult(_0x3f4f33,null))[_0x0999('0x44')](handleError(_0x3f4f33,null));};exports[_0x0999('0x4c')]=function(_0x2e0eda,_0x27d4ce,_0x17f0e1){if(_0x2e0eda['body']['id']){delete _0x2e0eda[_0x0999('0x48')]['id'];}return db[_0x0999('0x3f')]['findOne']({'where':{'id':_0x2e0eda[_0x0999('0x45')]['id']}})[_0x0999('0x25')](handleEntityNotFound(_0x27d4ce,null))[_0x0999('0x25')](function(_0xb953f2){if(_0xb953f2){_0x2e0eda['body'][_0x0999('0x4d')]=_0xb953f2['id'];_0x2e0eda[_0x0999('0x48')][_0x0999('0x4e')]=integrations['getSubjects'](_0x2e0eda['body'][_0x0999('0x4f')],_0x2e0eda[_0x0999('0x48')][_0x0999('0x3c')]);_0x2e0eda['body'][_0x0999('0x50')]=integrations[_0x0999('0x51')](_0x2e0eda[_0x0999('0x48')]['channel'],_0x2e0eda['body'][_0x0999('0x3c')]);return db[_0x0999('0x52')][_0x0999('0x47')](_0x2e0eda[_0x0999('0x48')],{'include':[{'model':db[_0x0999('0x53')],'as':'Subjects'},{'model':db['FreshdeskField'],'as':'Descriptions'}]});}return null;})[_0x0999('0x25')](respondWithResult(_0x27d4ce,null))[_0x0999('0x44')](handleError(_0x27d4ce,null));};exports[_0x0999('0x54')]=function(_0x4b9c7e,_0x40473d,_0x2ed05d){var _0x139d36='';return db['FreshdeskAccount'][_0x0999('0x4a')]({'where':{'id':_0x4b9c7e[_0x0999('0x45')]['id']},'attributes':['id',_0x0999('0x55'),'apiKey']})['then'](handleEntityNotFound(_0x40473d,null))[_0x0999('0x25')](function(_0x576272){if(_0x576272){_0x139d36=_0x576272[_0x0999('0x55')];var _0x4dd2d4=_0x139d36[_0x0999('0x56')](-0x1);if(_0x4dd2d4==='/'){_0x139d36=_0x139d36[_0x0999('0x57')](0x0,_0x139d36[_0x0999('0x58')](_0x4dd2d4));}return rp({'method':'GET','uri':util[_0x0999('0x59')]('%s/%s',_0x139d36,_0x0999('0x5a')),'headers':{'Authorization':util[_0x0999('0x59')](_0x0999('0x5b'),new Buffer(util[_0x0999('0x59')](_0x0999('0x5c'),_0x576272[_0x0999('0x5d')]))[_0x0999('0x5e')](_0x0999('0x5f')))},'json':!![]});}})[_0x0999('0x25')](function(_0x3b046f){if(_0x3b046f){var _0xc2a04=[_0x0999('0x60'),'subject',_0x0999('0x61'),_0x0999('0x62'),'status',_0x0999('0x63'),_0x0999('0x64'),_0x0999('0x65'),_0x0999('0x66'),_0x0999('0x64'),_0x0999('0x67')];_[_0x0999('0x68')](_0x3b046f,function(_0x165d55){return _0xc2a04[_0x0999('0x69')](_0x165d55['name'])||!_0x165d55[_0x0999('0x6a')]&&_0x165d55['type']!==_0x0999('0x6b')&&_0x165d55[_0x0999('0x3c')]!==_0x0999('0x6c');});return{'count':_0x3b046f[_0x0999('0x34')],'rows':_[_0x0999('0x2b')](_0x3b046f,function(_0x48ba0d){return{'id':_0x48ba0d[_0x0999('0x28')],'name':_0x48ba0d['label'],'custom':!_0x48ba0d[_0x0999('0x6a')],'options':_0x48ba0d[_0x0999('0x6d')]?_[_0x0999('0x2b')](_0x48ba0d[_0x0999('0x6d')],function(_0xe47622){return{'name':_[_0x0999('0x6e')](_0xe47622),'value':_0xe47622};}):[]};})};}})['then'](respondWithResult(_0x40473d,null))['catch'](function(_0x443d9a){var _0x13a417=_0x4b9c7e['query'][_0x0999('0x6f')]?0x1f4:_0x443d9a[_0x0999('0x70')]||0x1f4;logger[_0x0999('0x71')]('getFields,\x20%s,\x20%s,\x20%s',_0x0999('0x54'),_0x13a417,JSON[_0x0999('0x72')](_0x443d9a));delete _0x443d9a['name'];if(_0x13a417===0x191){_0x13a417=0x190;}_0x40473d[_0x0999('0x1a')](_0x13a417)[_0x0999('0x29')](_0x4b9c7e['query'][_0x0999('0x6f')]?{'message':_0x0999('0x73'),'statusCode':_0x443d9a[_0x0999('0x70')]}:_0x443d9a);});};
\ No newline at end of file
+var _0xa68c=['includeAll','findAll','rows','catch','params','include','create','body','destroy','getConfigurations','addConfiguration','findOne','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','FreshdeskConfiguration','FreshdeskField','remoteUri','GET','format','%s/%s','Basic\x20%s','%s:X','apiKey','toString','base64','requester','subject','agent','priority','source','ticket_type','group','company','remove','default','custom_text','label','choices','capitalize','test','getFields,\x20%s,\x20%s,\x20%s','stringify','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','end','offset','undefined','limit','count','status','Content-Range','json','reject','save','update','then','error','stack','name','send','index','map','FreshdeskAccount','rawAttributes','fieldName','type','model','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','VIRTUAL','filter','options'];(function(_0xf0bcac,_0x531755){var _0x4e4c65=function(_0x35a77a){while(--_0x35a77a){_0xf0bcac['push'](_0xf0bcac['shift']());}};_0x4e4c65(++_0x531755);}(_0xa68c,0x187));var _0xca68=function(_0x3bf83f,_0x181cac){_0x3bf83f=_0x3bf83f-0x0;var _0x22c4a9=_0xa68c[_0x3bf83f];return _0x22c4a9;};'use strict';var emlformat=require(_0xca68('0x0'));var rimraf=require(_0xca68('0x1'));var zipdir=require(_0xca68('0x2'));var jsonpatch=require(_0xca68('0x3'));var rp=require(_0xca68('0x4'));var moment=require(_0xca68('0x5'));var BPromise=require(_0xca68('0x6'));var Mustache=require(_0xca68('0x7'));var util=require(_0xca68('0x8'));var path=require('path');var sox=require('sox');var csv=require(_0xca68('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xca68('0xa'));var _=require(_0xca68('0xb'));var squel=require(_0xca68('0xc'));var crypto=require(_0xca68('0xd'));var jsforce=require(_0xca68('0xe'));var deskjs=require(_0xca68('0xf'));var toCsv=require(_0xca68('0x9'));var querystring=require(_0xca68('0x10'));var Papa=require(_0xca68('0x11'));var Redis=require(_0xca68('0x12'));var authService=require(_0xca68('0x13'));var qs=require(_0xca68('0x14'));var as=require(_0xca68('0x15'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xca68('0x16'));var utils=require(_0xca68('0x17'));var config=require(_0xca68('0x18'));var licenseUtil=require(_0xca68('0x19'));var db=require(_0xca68('0x1a'))['db'];var integrations=require(_0xca68('0x1b'));function respondWithStatusCode(_0x4cc845,_0x221af9){_0x221af9=_0x221af9||0xcc;return function(_0x109996){if(_0x109996){return _0x4cc845[_0xca68('0x1c')](_0x221af9);}return _0x4cc845['status'](_0x221af9)[_0xca68('0x1d')]();};}function respondWithResult(_0x4944db,_0x1eee82){_0x1eee82=_0x1eee82||0xc8;return function(_0x1d5ef1){if(_0x1d5ef1){return _0x4944db['status'](_0x1eee82)['json'](_0x1d5ef1);}};}function respondWithFilteredResult(_0x2cb440,_0x252712){return function(_0x38d443){if(_0x38d443){var _0xce1268=typeof _0x252712[_0xca68('0x1e')]===_0xca68('0x1f')&&typeof _0x252712[_0xca68('0x20')]===_0xca68('0x1f');var _0x180edb=_0x38d443[_0xca68('0x21')];var _0x9221a5=_0xce1268?0x0:_0x252712[_0xca68('0x1e')];var _0x30e34f=_0xce1268?_0x38d443[_0xca68('0x21')]:_0x252712[_0xca68('0x1e')]+_0x252712[_0xca68('0x20')];var _0x5d5ac3;if(_0x30e34f>=_0x180edb){_0x30e34f=_0x180edb;_0x5d5ac3=0xc8;}else{_0x5d5ac3=0xce;}_0x2cb440[_0xca68('0x22')](_0x5d5ac3);return _0x2cb440['set'](_0xca68('0x23'),_0x9221a5+'-'+_0x30e34f+'/'+_0x180edb)[_0xca68('0x24')](_0x38d443);}return null;};}function patchUpdates(_0x27b1a2){return function(_0x4aeac7){try{jsonpatch['apply'](_0x4aeac7,_0x27b1a2,!![]);}catch(_0x58855b){return BPromise[_0xca68('0x25')](_0x58855b);}return _0x4aeac7[_0xca68('0x26')]();};}function saveUpdates(_0x39f8ee,_0x441a4e){return function(_0x1efd64){if(_0x1efd64){return _0x1efd64[_0xca68('0x27')](_0x39f8ee)[_0xca68('0x28')](function(_0x5d1891){return _0x5d1891;});}return null;};}function removeEntity(_0x1b2f41,_0x26628c){return function(_0x17f0c7){if(_0x17f0c7){return _0x17f0c7['destroy']()['then'](function(){_0x1b2f41[_0xca68('0x22')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5d8279,_0x28b801){return function(_0x55af0b){if(!_0x55af0b){_0x5d8279[_0xca68('0x1c')](0x194);}return _0x55af0b;};}function handleError(_0x1ca374,_0x2ebfe0){_0x2ebfe0=_0x2ebfe0||0x1f4;return function(_0x4f059c){logger[_0xca68('0x29')](_0x4f059c[_0xca68('0x2a')]);if(_0x4f059c[_0xca68('0x2b')]){delete _0x4f059c[_0xca68('0x2b')];}_0x1ca374[_0xca68('0x22')](_0x2ebfe0)[_0xca68('0x2c')](_0x4f059c);};}exports[_0xca68('0x2d')]=function(_0x141aa2,_0x553469){var _0x51bd6f={},_0x44b5f3={},_0x5e0f3b={'count':0x0,'rows':[]};var _0x3b01df=_[_0xca68('0x2e')](db[_0xca68('0x2f')][_0xca68('0x30')],function(_0x438cf4){return{'name':_0x438cf4[_0xca68('0x31')],'type':_0x438cf4[_0xca68('0x32')]['key']};});_0x44b5f3[_0xca68('0x33')]=_[_0xca68('0x2e')](_0x3b01df,_0xca68('0x2b'));_0x44b5f3[_0xca68('0x34')]=_[_0xca68('0x35')](_0x141aa2[_0xca68('0x34')]);_0x44b5f3[_0xca68('0x36')]=_['intersection'](_0x44b5f3['model'],_0x44b5f3[_0xca68('0x34')]);_0x51bd6f[_0xca68('0x37')]=_[_0xca68('0x38')](_0x44b5f3[_0xca68('0x33')],qs[_0xca68('0x39')](_0x141aa2['query']['fields']));_0x51bd6f[_0xca68('0x37')]=_0x51bd6f[_0xca68('0x37')][_0xca68('0x3a')]?_0x51bd6f[_0xca68('0x37')]:_0x44b5f3[_0xca68('0x33')];if(!_0x141aa2[_0xca68('0x34')][_0xca68('0x3b')](_0xca68('0x3c'))){_0x51bd6f[_0xca68('0x20')]=qs[_0xca68('0x20')](_0x141aa2[_0xca68('0x34')]['limit']);_0x51bd6f[_0xca68('0x1e')]=qs[_0xca68('0x1e')](_0x141aa2[_0xca68('0x34')][_0xca68('0x1e')]);}_0x51bd6f[_0xca68('0x3d')]=qs[_0xca68('0x3e')](_0x141aa2['query'][_0xca68('0x3e')]);_0x51bd6f[_0xca68('0x3f')]=qs['filters'](_[_0xca68('0x40')](_0x141aa2['query'],_0x44b5f3[_0xca68('0x36')]),_0x3b01df);if(_0x141aa2[_0xca68('0x34')]['filter']){_0x51bd6f[_0xca68('0x3f')]=_[_0xca68('0x41')](_0x51bd6f[_0xca68('0x3f')],{'$or':_[_0xca68('0x2e')](_0x3b01df,function(_0x3132b0){if(_0x3132b0['type']!==_0xca68('0x42')){var _0x1ab056={};_0x1ab056[_0x3132b0['name']]={'$like':'%'+_0x141aa2[_0xca68('0x34')][_0xca68('0x43')]+'%'};return _0x1ab056;}})});}_0x51bd6f=_[_0xca68('0x41')]({},_0x51bd6f,_0x141aa2[_0xca68('0x44')]);var _0xc49648={'where':_0x51bd6f[_0xca68('0x3f')]};return db['FreshdeskAccount']['count'](_0xc49648)['then'](function(_0x802506){_0x5e0f3b['count']=_0x802506;if(_0x141aa2[_0xca68('0x34')][_0xca68('0x45')]){_0x51bd6f['include']=[{'all':!![]}];}return db[_0xca68('0x2f')][_0xca68('0x46')](_0x51bd6f);})[_0xca68('0x28')](function(_0x449f97){_0x5e0f3b[_0xca68('0x47')]=_0x449f97;return _0x5e0f3b;})[_0xca68('0x28')](respondWithFilteredResult(_0x553469,_0x51bd6f))[_0xca68('0x48')](handleError(_0x553469,null));};exports['show']=function(_0x5f105c,_0x3269aa){var _0xd1f72={'raw':![],'where':{'id':_0x5f105c[_0xca68('0x49')]['id']}},_0x512e2e={};_0x512e2e[_0xca68('0x33')]=_[_0xca68('0x35')](db['FreshdeskAccount'][_0xca68('0x30')]);_0x512e2e[_0xca68('0x34')]=_[_0xca68('0x35')](_0x5f105c['query']);_0x512e2e[_0xca68('0x36')]=_[_0xca68('0x38')](_0x512e2e[_0xca68('0x33')],_0x512e2e[_0xca68('0x34')]);_0xd1f72[_0xca68('0x37')]=_[_0xca68('0x38')](_0x512e2e['model'],qs[_0xca68('0x39')](_0x5f105c['query'][_0xca68('0x39')]));_0xd1f72['attributes']=_0xd1f72[_0xca68('0x37')][_0xca68('0x3a')]?_0xd1f72[_0xca68('0x37')]:_0x512e2e['model'];if(_0x5f105c[_0xca68('0x34')][_0xca68('0x45')]){_0xd1f72[_0xca68('0x4a')]=[{'all':!![]}];}_0xd1f72=_['merge']({},_0xd1f72,_0x5f105c[_0xca68('0x44')]);return db[_0xca68('0x2f')]['find'](_0xd1f72)['then'](handleEntityNotFound(_0x3269aa,null))['then'](respondWithResult(_0x3269aa,null))['catch'](handleError(_0x3269aa,null));};exports[_0xca68('0x4b')]=function(_0x1f3f96,_0x31219e){return db['FreshdeskAccount']['create'](_0x1f3f96[_0xca68('0x4c')],{})[_0xca68('0x28')](respondWithResult(_0x31219e,0xc9))[_0xca68('0x48')](handleError(_0x31219e,null));};exports[_0xca68('0x27')]=function(_0x40cef9,_0x20c6ea){if(_0x40cef9[_0xca68('0x4c')]['id']){delete _0x40cef9[_0xca68('0x4c')]['id'];}return db['FreshdeskAccount']['find']({'where':{'id':_0x40cef9[_0xca68('0x49')]['id']}})[_0xca68('0x28')](handleEntityNotFound(_0x20c6ea,null))['then'](saveUpdates(_0x40cef9['body'],null))[_0xca68('0x28')](respondWithResult(_0x20c6ea,null))['catch'](handleError(_0x20c6ea,null));};exports[_0xca68('0x4d')]=function(_0x4670ed,_0x5b2cff){return db['FreshdeskAccount']['find']({'where':{'id':_0x4670ed[_0xca68('0x49')]['id']}})[_0xca68('0x28')](handleEntityNotFound(_0x5b2cff,null))['then'](removeEntity(_0x5b2cff,null))[_0xca68('0x48')](handleError(_0x5b2cff,null));};exports[_0xca68('0x4e')]=function(_0x134736,_0x1c4d0a,_0x1b8867){var _0x414c62={};var _0x3713c6={};var _0xb13cd;var _0x10a31f;return db[_0xca68('0x2f')]['findOne']({'where':{'id':_0x134736[_0xca68('0x49')]['id']}})[_0xca68('0x28')](handleEntityNotFound(_0x1c4d0a,null))[_0xca68('0x28')](function(_0x2fa868){if(_0x2fa868){_0xb13cd=_0x2fa868;_0x3713c6[_0xca68('0x33')]=_[_0xca68('0x35')](db['FreshdeskConfiguration'][_0xca68('0x30')]);_0x3713c6[_0xca68('0x34')]=_[_0xca68('0x35')](_0x134736[_0xca68('0x34')]);_0x3713c6[_0xca68('0x36')]=_[_0xca68('0x38')](_0x3713c6['model'],_0x3713c6[_0xca68('0x34')]);_0x414c62[_0xca68('0x37')]=_['intersection'](_0x3713c6['model'],qs[_0xca68('0x39')](_0x134736[_0xca68('0x34')]['fields']));_0x414c62[_0xca68('0x37')]=_0x414c62[_0xca68('0x37')][_0xca68('0x3a')]?_0x414c62['attributes']:_0x3713c6['model'];_0x414c62[_0xca68('0x3d')]=qs[_0xca68('0x3e')](_0x134736['query'][_0xca68('0x3e')]);_0x414c62[_0xca68('0x3f')]=qs[_0xca68('0x36')](_[_0xca68('0x40')](_0x134736['query'],_0x3713c6['filters']));if(_0x134736[_0xca68('0x34')]['filter']){_0x414c62['where']=_['merge'](_0x414c62[_0xca68('0x3f')],{'$or':_[_0xca68('0x2e')](_0x414c62[_0xca68('0x37')],function(_0x35b592){var _0xc00d0d={};_0xc00d0d[_0x35b592]={'$like':'%'+_0x134736[_0xca68('0x34')][_0xca68('0x43')]+'%'};return _0xc00d0d;})});}_0x414c62=_['merge']({},_0x414c62,_0x134736[_0xca68('0x44')]);return _0xb13cd['getConfigurations'](_0x414c62);}})[_0xca68('0x28')](function(_0x12070f){if(_0x12070f){_0x10a31f=_0x12070f[_0xca68('0x3a')];if(!_0x134736[_0xca68('0x34')][_0xca68('0x3b')]('nolimit')){_0x414c62[_0xca68('0x20')]=qs['limit'](_0x134736[_0xca68('0x34')][_0xca68('0x20')]);_0x414c62[_0xca68('0x1e')]=qs['offset'](_0x134736['query'][_0xca68('0x1e')]);}return _0xb13cd[_0xca68('0x4e')](_0x414c62);}})[_0xca68('0x28')](function(_0x29afac){if(_0x29afac){return _0x29afac?{'count':_0x10a31f,'rows':_0x29afac}:null;}})[_0xca68('0x28')](respondWithResult(_0x1c4d0a,null))['catch'](handleError(_0x1c4d0a,null));};exports[_0xca68('0x4f')]=function(_0x11a4c7,_0x43a6a0,_0x705a0e){if(_0x11a4c7[_0xca68('0x4c')]['id']){delete _0x11a4c7[_0xca68('0x4c')]['id'];}return db[_0xca68('0x2f')][_0xca68('0x50')]({'where':{'id':_0x11a4c7[_0xca68('0x49')]['id']}})[_0xca68('0x28')](handleEntityNotFound(_0x43a6a0,null))['then'](function(_0x21f50e){if(_0x21f50e){_0x11a4c7[_0xca68('0x4c')][_0xca68('0x51')]=_0x21f50e['id'];_0x11a4c7['body'][_0xca68('0x52')]=integrations[_0xca68('0x53')](_0x11a4c7[_0xca68('0x4c')][_0xca68('0x54')],_0x11a4c7['body'][_0xca68('0x32')]);_0x11a4c7[_0xca68('0x4c')][_0xca68('0x55')]=integrations[_0xca68('0x56')](_0x11a4c7['body'][_0xca68('0x54')],_0x11a4c7[_0xca68('0x4c')][_0xca68('0x32')]);return db[_0xca68('0x57')]['create'](_0x11a4c7[_0xca68('0x4c')],{'include':[{'model':db[_0xca68('0x58')],'as':'Subjects'},{'model':db['FreshdeskField'],'as':_0xca68('0x55')}]});}return null;})[_0xca68('0x28')](respondWithResult(_0x43a6a0,null))[_0xca68('0x48')](handleError(_0x43a6a0,null));};exports['getFields']=function(_0x25ce17,_0x48678f,_0x411fe5){var _0x195a2f='';return db['FreshdeskAccount']['findOne']({'where':{'id':_0x25ce17[_0xca68('0x49')]['id']},'attributes':['id',_0xca68('0x59'),'apiKey']})[_0xca68('0x28')](handleEntityNotFound(_0x48678f,null))[_0xca68('0x28')](function(_0x645396){if(_0x645396){_0x195a2f=_0x645396[_0xca68('0x59')];var _0x200803=_0x195a2f['slice'](-0x1);if(_0x200803==='/'){_0x195a2f=_0x195a2f['substring'](0x0,_0x195a2f['lastIndexOf'](_0x200803));}return rp({'method':_0xca68('0x5a'),'uri':util[_0xca68('0x5b')](_0xca68('0x5c'),_0x195a2f,'api/v2/ticket_fields'),'headers':{'Authorization':util['format'](_0xca68('0x5d'),new Buffer(util['format'](_0xca68('0x5e'),_0x645396[_0xca68('0x5f')]))[_0xca68('0x60')](_0xca68('0x61')))},'json':!![]});}})[_0xca68('0x28')](function(_0x1ffa11){if(_0x1ffa11){var _0x280fcb=[_0xca68('0x62'),_0xca68('0x63'),_0xca68('0x64'),'description','status',_0xca68('0x65'),'group',_0xca68('0x66'),_0xca68('0x67'),_0xca68('0x68'),_0xca68('0x69')];_[_0xca68('0x6a')](_0x1ffa11,function(_0x2c0651){return _0x280fcb['includes'](_0x2c0651[_0xca68('0x2b')])||!_0x2c0651[_0xca68('0x6b')]&&_0x2c0651[_0xca68('0x32')]!==_0xca68('0x6c')&&_0x2c0651[_0xca68('0x32')]!=='custom_dropdown';});return{'count':_0x1ffa11[_0xca68('0x3a')],'rows':_[_0xca68('0x2e')](_0x1ffa11,function(_0x5bfb2a){return{'id':_0x5bfb2a['name'],'name':_0x5bfb2a[_0xca68('0x6d')],'custom':!_0x5bfb2a[_0xca68('0x6b')],'options':_0x5bfb2a[_0xca68('0x6e')]?_[_0xca68('0x2e')](_0x5bfb2a[_0xca68('0x6e')],function(_0x2b4679){return{'name':_[_0xca68('0x6f')](_0x2b4679),'value':_0x2b4679};}):[]};})};}})[_0xca68('0x28')](respondWithResult(_0x48678f,null))['catch'](function(_0x342093){var _0x4b515d=_0x25ce17[_0xca68('0x34')][_0xca68('0x70')]?0x1f4:_0x342093['statusCode']||0x1f4;logger[_0xca68('0x29')](_0xca68('0x71'),'getFields',_0x4b515d,JSON[_0xca68('0x72')](_0x342093));delete _0x342093['name'];if(_0x4b515d===0x191){_0x4b515d=0x190;}_0x48678f[_0xca68('0x22')](_0x4b515d)['send'](_0x25ce17['query'][_0xca68('0x70')]?{'message':'Wrong\x20credentials','statusCode':_0x342093['statusCode']}:_0x342093);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7098=['FreshdeskAccount','int_freshdesk_accounts','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./intFreshdeskAccount.attributes','../../components/integrations/configuration','exports','define'];(function(_0x2972cf,_0x343fde){var _0x4c173f=function(_0x30eb3a){while(--_0x30eb3a){_0x2972cf['push'](_0x2972cf['shift']());}};_0x4c173f(++_0x343fde);}(_0x7098,0x179));var _0x8709=function(_0x48e637,_0x52e67d){_0x48e637=_0x48e637-0x0;var _0x3378a6=_0x7098[_0x48e637];return _0x3378a6;};'use strict';var _=require('lodash');var util=require(_0x8709('0x0'));var logger=require(_0x8709('0x1'))(_0x8709('0x2'));var moment=require(_0x8709('0x3'));var BPromise=require(_0x8709('0x4'));var rp=require(_0x8709('0x5'));var fs=require('fs');var path=require(_0x8709('0x6'));var rimraf=require(_0x8709('0x7'));var config=require(_0x8709('0x8'));var attributes=require(_0x8709('0x9'));var integrations=require(_0x8709('0xa'));module[_0x8709('0xb')]=function(_0x1b2cd9,_0x524935){return _0x1b2cd9[_0x8709('0xc')](_0x8709('0xd'),attributes,{'tableName':_0x8709('0xe'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xbf0d=['util','../../config/logger','moment','bluebird','request-promise','path','rimraf','./intFreshdeskAccount.attributes','exports','FreshdeskAccount','int_freshdesk_accounts','lodash'];(function(_0x5dd3b6,_0x348976){var _0x2a6e1c=function(_0x55cb14){while(--_0x55cb14){_0x5dd3b6['push'](_0x5dd3b6['shift']());}};_0x2a6e1c(++_0x348976);}(_0xbf0d,0x1a3));var _0xdbf0=function(_0x11860f,_0x5cad68){_0x11860f=_0x11860f-0x0;var _0x35cb3d=_0xbf0d[_0x11860f];return _0x35cb3d;};'use strict';var _=require(_0xdbf0('0x0'));var util=require(_0xdbf0('0x1'));var logger=require(_0xdbf0('0x2'))('api');var moment=require(_0xdbf0('0x3'));var BPromise=require(_0xdbf0('0x4'));var rp=require(_0xdbf0('0x5'));var fs=require('fs');var path=require(_0xdbf0('0x6'));var rimraf=require(_0xdbf0('0x7'));var config=require('../../config/environment');var attributes=require(_0xdbf0('0x8'));var integrations=require('../../components/integrations/configuration');module[_0xdbf0('0x9')]=function(_0x13cdb0,_0x30b0c4){return _0x13cdb0['define'](_0xdbf0('0xa'),attributes,{'tableName':_0xdbf0('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcb4d=['model','then','catch','raw','ShowFreshdeskAccount','lodash','util','moment','bluebird','ioredis','../../config/logger','rpc','../../config/environment','jayson/promise','http','info','FreshdeskAccount,\x20%s,\x20%s','request\x20sent','debug','FreshdeskAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','GetFreshdeskAccount','FreshdeskAccount','findAll','options','where','attributes','limit','include','map'];(function(_0x18fb16,_0x45edbc){var _0x147b0d=function(_0x5b1b00){while(--_0x5b1b00){_0x18fb16['push'](_0x18fb16['shift']());}};_0x147b0d(++_0x45edbc);}(_0xcb4d,0x68));var _0xdcb4=function(_0x4a19ab,_0x39cc66){_0x4a19ab=_0x4a19ab-0x0;var _0x438850=_0xcb4d[_0x4a19ab];return _0x438850;};'use strict';var _=require(_0xdcb4('0x0'));var util=require(_0xdcb4('0x1'));var moment=require(_0xdcb4('0x2'));var BPromise=require(_0xdcb4('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xdcb4('0x4'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0xdcb4('0x5'))(_0xdcb4('0x6'));var config=require(_0xdcb4('0x7'));var jayson=require(_0xdcb4('0x8'));var client=jayson['client'][_0xdcb4('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x5e92ce,_0x5ae4c0,_0x31cc06){return new BPromise(function(_0x589043,_0x3073ed){return client['request'](_0x5e92ce,_0x31cc06)['then'](function(_0x2b78c1){logger[_0xdcb4('0xa')](_0xdcb4('0xb'),_0x5ae4c0,_0xdcb4('0xc'));logger[_0xdcb4('0xd')](_0xdcb4('0xe'),_0x5ae4c0,_0xdcb4('0xc'),JSON[_0xdcb4('0xf')](_0x2b78c1));if(_0x2b78c1[_0xdcb4('0x10')]){if(_0x2b78c1[_0xdcb4('0x10')][_0xdcb4('0x11')]===0x1f4){logger[_0xdcb4('0x10')](_0xdcb4('0xb'),_0x5ae4c0,_0x2b78c1[_0xdcb4('0x10')][_0xdcb4('0x12')]);return _0x3073ed(_0x2b78c1[_0xdcb4('0x10')]['message']);}logger[_0xdcb4('0x10')](_0xdcb4('0xb'),_0x5ae4c0,_0x2b78c1[_0xdcb4('0x10')]['message']);return _0x589043(_0x2b78c1[_0xdcb4('0x10')][_0xdcb4('0x12')]);}else{logger['info'](_0xdcb4('0xb'),_0x5ae4c0,'request\x20sent');_0x589043(_0x2b78c1['result'][_0xdcb4('0x12')]);}})['catch'](function(_0x4bdb5d){logger[_0xdcb4('0x10')](_0xdcb4('0xb'),_0x5ae4c0,_0x4bdb5d);_0x3073ed(_0x4bdb5d);});});}exports[_0xdcb4('0x13')]=function(_0x1f39e9){var _0x4e0187=this;return new Promise(function(_0x2023b2,_0x4a7e7e){return db[_0xdcb4('0x14')][_0xdcb4('0x15')]({'raw':_0x1f39e9[_0xdcb4('0x16')]?_0x1f39e9[_0xdcb4('0x16')]['raw']===undefined?!![]:![]:!![],'where':_0x1f39e9[_0xdcb4('0x16')]?_0x1f39e9[_0xdcb4('0x16')][_0xdcb4('0x17')]||null:null,'attributes':_0x1f39e9['options']?_0x1f39e9[_0xdcb4('0x16')][_0xdcb4('0x18')]||null:null,'limit':_0x1f39e9[_0xdcb4('0x16')]?_0x1f39e9['options'][_0xdcb4('0x19')]||null:null,'include':_0x1f39e9['options']?_0x1f39e9[_0xdcb4('0x16')][_0xdcb4('0x1a')]?_[_0xdcb4('0x1b')](_0x1f39e9[_0xdcb4('0x16')][_0xdcb4('0x1a')],function(_0x37b4ef){return{'model':db[_0x37b4ef[_0xdcb4('0x1c')]],'as':_0x37b4ef['as'],'attributes':_0x37b4ef[_0xdcb4('0x18')],'include':_0x37b4ef[_0xdcb4('0x1a')]?_['map'](_0x37b4ef[_0xdcb4('0x1a')],function(_0x3b7204){return{'model':db[_0x3b7204['model']],'as':_0x3b7204['as'],'attributes':_0x3b7204[_0xdcb4('0x18')],'include':_0x3b7204[_0xdcb4('0x1a')]?_[_0xdcb4('0x1b')](_0x3b7204['include'],function(_0x43183c){return{'model':db[_0x43183c[_0xdcb4('0x1c')]],'as':_0x43183c['as'],'attributes':_0x43183c[_0xdcb4('0x18')]};}):[]};}):[]};}):[]:[]})[_0xdcb4('0x1d')](function(_0x3843ed){logger[_0xdcb4('0xa')]('GetFreshdeskAccount',_0x1f39e9);logger['debug'](_0xdcb4('0x13'),_0x1f39e9,JSON[_0xdcb4('0xf')](_0x3843ed));_0x2023b2(_0x3843ed);})[_0xdcb4('0x1e')](function(_0x1cf6bc){logger['error'](_0xdcb4('0x13'),_0x1cf6bc[_0xdcb4('0x12')],_0x1f39e9);_0x4a7e7e(_0x4e0187['error'](0x1f4,_0x1cf6bc[_0xdcb4('0x12')]));});});};exports['ShowFreshdeskAccount']=function(_0x547995){var _0x379091=this;return new Promise(function(_0x2ad8aa,_0x32374d){return db[_0xdcb4('0x14')]['find']({'raw':_0x547995[_0xdcb4('0x16')]?_0x547995[_0xdcb4('0x16')][_0xdcb4('0x1f')]===undefined?!![]:![]:!![],'where':_0x547995[_0xdcb4('0x16')]?_0x547995[_0xdcb4('0x16')][_0xdcb4('0x17')]||null:null,'attributes':_0x547995[_0xdcb4('0x16')]?_0x547995[_0xdcb4('0x16')][_0xdcb4('0x18')]||null:null,'include':_0x547995['options']?_0x547995[_0xdcb4('0x16')][_0xdcb4('0x1a')]?_[_0xdcb4('0x1b')](_0x547995[_0xdcb4('0x16')][_0xdcb4('0x1a')],function(_0x444d3f){return{'model':db[_0x444d3f['model']],'as':_0x444d3f['as'],'attributes':_0x444d3f[_0xdcb4('0x18')],'include':_0x444d3f['include']?_[_0xdcb4('0x1b')](_0x444d3f[_0xdcb4('0x1a')],function(_0x36ebf8){return{'model':db[_0x36ebf8['model']],'as':_0x36ebf8['as'],'attributes':_0x36ebf8[_0xdcb4('0x18')],'include':_0x36ebf8['include']?_['map'](_0x36ebf8[_0xdcb4('0x1a')],function(_0x4da807){return{'model':db[_0x4da807[_0xdcb4('0x1c')]],'as':_0x4da807['as'],'attributes':_0x4da807[_0xdcb4('0x18')]};}):[]};}):[]};}):[]:[]})[_0xdcb4('0x1d')](function(_0x4a3a9b){logger[_0xdcb4('0xa')](_0xdcb4('0x20'),_0x547995);logger['debug'](_0xdcb4('0x20'),_0x547995,JSON[_0xdcb4('0xf')](_0x4a3a9b));_0x2ad8aa(_0x4a3a9b);})[_0xdcb4('0x1e')](function(_0x38e96c){logger[_0xdcb4('0x10')](_0xdcb4('0x20'),_0x38e96c[_0xdcb4('0x12')],_0x547995);_0x32374d(_0x379091[_0xdcb4('0x10')](0x1f4,_0x38e96c[_0xdcb4('0x12')]));});});};
\ No newline at end of file
+var _0xefe5=['request','then','info','FreshdeskAccount,\x20%s,\x20%s','request\x20sent','FreshdeskAccount,\x20%s,\x20%s,\x20%s','stringify','error','message','result','GetFreshdeskAccount','options','raw','attributes','map','include','model','debug','ShowFreshdeskAccount','FreshdeskAccount','where','catch','lodash','moment','bluebird','ioredis','../../mysqldb','../../config/logger','../../config/environment','jayson/promise','client','http'];(function(_0x167cc1,_0x56ef5a){var _0x10bc4b=function(_0xd6a255){while(--_0xd6a255){_0x167cc1['push'](_0x167cc1['shift']());}};_0x10bc4b(++_0x56ef5a);}(_0xefe5,0xf6));var _0x5efe=function(_0x2e8080,_0x4390ee){_0x2e8080=_0x2e8080-0x0;var _0x3d7ad7=_0xefe5[_0x2e8080];return _0x3d7ad7;};'use strict';var _=require(_0x5efe('0x0'));var util=require('util');var moment=require(_0x5efe('0x1'));var BPromise=require(_0x5efe('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x5efe('0x3'));var db=require(_0x5efe('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0x5efe('0x5'))('rpc');var config=require(_0x5efe('0x6'));var jayson=require(_0x5efe('0x7'));var client=jayson[_0x5efe('0x8')][_0x5efe('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x289ee0,_0x49e8db,_0x2c2c58){return new BPromise(function(_0x2df49e,_0x3430ae){return client[_0x5efe('0xa')](_0x289ee0,_0x2c2c58)[_0x5efe('0xb')](function(_0x2d1c9a){logger[_0x5efe('0xc')](_0x5efe('0xd'),_0x49e8db,_0x5efe('0xe'));logger['debug'](_0x5efe('0xf'),_0x49e8db,_0x5efe('0xe'),JSON[_0x5efe('0x10')](_0x2d1c9a));if(_0x2d1c9a[_0x5efe('0x11')]){if(_0x2d1c9a['error']['code']===0x1f4){logger['error'](_0x5efe('0xd'),_0x49e8db,_0x2d1c9a[_0x5efe('0x11')][_0x5efe('0x12')]);return _0x3430ae(_0x2d1c9a[_0x5efe('0x11')][_0x5efe('0x12')]);}logger[_0x5efe('0x11')](_0x5efe('0xd'),_0x49e8db,_0x2d1c9a[_0x5efe('0x11')][_0x5efe('0x12')]);return _0x2df49e(_0x2d1c9a[_0x5efe('0x11')][_0x5efe('0x12')]);}else{logger['info'](_0x5efe('0xd'),_0x49e8db,_0x5efe('0xe'));_0x2df49e(_0x2d1c9a[_0x5efe('0x13')][_0x5efe('0x12')]);}})['catch'](function(_0xf1c770){logger[_0x5efe('0x11')]('FreshdeskAccount,\x20%s,\x20%s',_0x49e8db,_0xf1c770);_0x3430ae(_0xf1c770);});});}exports[_0x5efe('0x14')]=function(_0x1c9d47){var _0x4ef776=this;return new Promise(function(_0x50351d,_0x1df564){return db['FreshdeskAccount']['findAll']({'raw':_0x1c9d47[_0x5efe('0x15')]?_0x1c9d47[_0x5efe('0x15')][_0x5efe('0x16')]===undefined?!![]:![]:!![],'where':_0x1c9d47[_0x5efe('0x15')]?_0x1c9d47['options']['where']||null:null,'attributes':_0x1c9d47[_0x5efe('0x15')]?_0x1c9d47[_0x5efe('0x15')][_0x5efe('0x17')]||null:null,'limit':_0x1c9d47[_0x5efe('0x15')]?_0x1c9d47[_0x5efe('0x15')]['limit']||null:null,'include':_0x1c9d47[_0x5efe('0x15')]?_0x1c9d47['options']['include']?_[_0x5efe('0x18')](_0x1c9d47['options'][_0x5efe('0x19')],function(_0x3e035c){return{'model':db[_0x3e035c[_0x5efe('0x1a')]],'as':_0x3e035c['as'],'attributes':_0x3e035c['attributes'],'include':_0x3e035c[_0x5efe('0x19')]?_['map'](_0x3e035c[_0x5efe('0x19')],function(_0x1a2754){return{'model':db[_0x1a2754[_0x5efe('0x1a')]],'as':_0x1a2754['as'],'attributes':_0x1a2754[_0x5efe('0x17')],'include':_0x1a2754[_0x5efe('0x19')]?_[_0x5efe('0x18')](_0x1a2754[_0x5efe('0x19')],function(_0x42dc9c){return{'model':db[_0x42dc9c['model']],'as':_0x42dc9c['as'],'attributes':_0x42dc9c[_0x5efe('0x17')]};}):[]};}):[]};}):[]:[]})[_0x5efe('0xb')](function(_0x56407f){logger[_0x5efe('0xc')](_0x5efe('0x14'),_0x1c9d47);logger[_0x5efe('0x1b')]('GetFreshdeskAccount',_0x1c9d47,JSON[_0x5efe('0x10')](_0x56407f));_0x50351d(_0x56407f);})['catch'](function(_0x23e796){logger['error'](_0x5efe('0x14'),_0x23e796[_0x5efe('0x12')],_0x1c9d47);_0x1df564(_0x4ef776[_0x5efe('0x11')](0x1f4,_0x23e796[_0x5efe('0x12')]));});});};exports[_0x5efe('0x1c')]=function(_0x4fcabf){var _0x560002=this;return new Promise(function(_0x41e113,_0x521b55){return db[_0x5efe('0x1d')]['find']({'raw':_0x4fcabf[_0x5efe('0x15')]?_0x4fcabf[_0x5efe('0x15')][_0x5efe('0x16')]===undefined?!![]:![]:!![],'where':_0x4fcabf[_0x5efe('0x15')]?_0x4fcabf[_0x5efe('0x15')][_0x5efe('0x1e')]||null:null,'attributes':_0x4fcabf['options']?_0x4fcabf[_0x5efe('0x15')]['attributes']||null:null,'include':_0x4fcabf[_0x5efe('0x15')]?_0x4fcabf[_0x5efe('0x15')]['include']?_[_0x5efe('0x18')](_0x4fcabf[_0x5efe('0x15')][_0x5efe('0x19')],function(_0x4ecb43){return{'model':db[_0x4ecb43['model']],'as':_0x4ecb43['as'],'attributes':_0x4ecb43[_0x5efe('0x17')],'include':_0x4ecb43[_0x5efe('0x19')]?_['map'](_0x4ecb43[_0x5efe('0x19')],function(_0xf00299){return{'model':db[_0xf00299[_0x5efe('0x1a')]],'as':_0xf00299['as'],'attributes':_0xf00299['attributes'],'include':_0xf00299[_0x5efe('0x19')]?_[_0x5efe('0x18')](_0xf00299[_0x5efe('0x19')],function(_0x5f1d33){return{'model':db[_0x5f1d33[_0x5efe('0x1a')]],'as':_0x5f1d33['as'],'attributes':_0x5f1d33['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x29648d){logger[_0x5efe('0xc')](_0x5efe('0x1c'),_0x4fcabf);logger[_0x5efe('0x1b')](_0x5efe('0x1c'),_0x4fcabf,JSON[_0x5efe('0x10')](_0x29648d));_0x41e113(_0x29648d);})[_0x5efe('0x1f')](function(_0x1a6fdb){logger['error']('ShowFreshdeskAccount',_0x1a6fdb[_0x5efe('0x12')],_0x4fcabf);_0x521b55(_0x560002[_0x5efe('0x11')](0x1f4,_0x1a6fdb[_0x5efe('0x12')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7e72=['util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./intFreshdeskConfiguration.controller','get','isAuthenticated','index','/:id','/:id/fields','getFields','getSubjects','/:id/descriptions','getDescriptions','/:id/tags','post','create','put','update','delete','exports','multer'];(function(_0x336b01,_0x3b8647){var _0x5a3bb2=function(_0x1d62d0){while(--_0x1d62d0){_0x336b01['push'](_0x336b01['shift']());}};_0x5a3bb2(++_0x3b8647);}(_0x7e72,0x1e5));var _0x27e7=function(_0x4e956d,_0x5b3ccb){_0x4e956d=_0x4e956d-0x0;var _0x8f6fc5=_0x7e72[_0x4e956d];return _0x8f6fc5;};'use strict';var multer=require(_0x27e7('0x0'));var util=require(_0x27e7('0x1'));var path=require(_0x27e7('0x2'));var timeout=require(_0x27e7('0x3'));var express=require(_0x27e7('0x4'));var router=express[_0x27e7('0x5')]();var fs_extra=require(_0x27e7('0x6'));var auth=require(_0x27e7('0x7'));var interaction=require(_0x27e7('0x8'));var config=require(_0x27e7('0x9'));var controller=require(_0x27e7('0xa'));router[_0x27e7('0xb')]('/',auth[_0x27e7('0xc')](),controller[_0x27e7('0xd')]);router[_0x27e7('0xb')](_0x27e7('0xe'),auth[_0x27e7('0xc')](),controller['show']);router[_0x27e7('0xb')](_0x27e7('0xf'),auth[_0x27e7('0xc')](),controller[_0x27e7('0x10')]);router[_0x27e7('0xb')]('/:id/subjects',auth[_0x27e7('0xc')](),controller[_0x27e7('0x11')]);router[_0x27e7('0xb')](_0x27e7('0x12'),auth[_0x27e7('0xc')](),controller[_0x27e7('0x13')]);router[_0x27e7('0xb')](_0x27e7('0x14'),auth[_0x27e7('0xc')](),controller['getTags']);router[_0x27e7('0x15')]('/',auth[_0x27e7('0xc')](),controller[_0x27e7('0x16')]);router[_0x27e7('0x15')](_0x27e7('0x14'),auth[_0x27e7('0xc')](),controller['setTags']);router[_0x27e7('0x17')]('/:id',auth[_0x27e7('0xc')](),controller[_0x27e7('0x18')]);router[_0x27e7('0x19')]('/:id',auth[_0x27e7('0xc')](),controller['destroy']);module[_0x27e7('0x1a')]=router;
\ No newline at end of file
+var _0x3a25=['/:id/tags','setTags','put','delete','destroy','exports','multer','util','Router','fs-extra','../../components/auth/service','../../config/environment','get','isAuthenticated','index','/:id','show','/:id/fields','getFields','/:id/subjects','/:id/descriptions','getDescriptions','getTags','post','create'];(function(_0x3bf83f,_0x181cac){var _0x22c4a9=function(_0xb3ff0d){while(--_0xb3ff0d){_0x3bf83f['push'](_0x3bf83f['shift']());}};_0x22c4a9(++_0x181cac);}(_0x3a25,0x9c));var _0x53a2=function(_0x489740,_0x41d98c){_0x489740=_0x489740-0x0;var _0xb3c9f9=_0x3a25[_0x489740];return _0xb3c9f9;};'use strict';var multer=require(_0x53a2('0x0'));var util=require(_0x53a2('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require('express');var router=express[_0x53a2('0x2')]();var fs_extra=require(_0x53a2('0x3'));var auth=require(_0x53a2('0x4'));var interaction=require('../../components/interaction/service');var config=require(_0x53a2('0x5'));var controller=require('./intFreshdeskConfiguration.controller');router[_0x53a2('0x6')]('/',auth[_0x53a2('0x7')](),controller[_0x53a2('0x8')]);router[_0x53a2('0x6')](_0x53a2('0x9'),auth[_0x53a2('0x7')](),controller[_0x53a2('0xa')]);router[_0x53a2('0x6')](_0x53a2('0xb'),auth[_0x53a2('0x7')](),controller[_0x53a2('0xc')]);router[_0x53a2('0x6')](_0x53a2('0xd'),auth[_0x53a2('0x7')](),controller['getSubjects']);router[_0x53a2('0x6')](_0x53a2('0xe'),auth['isAuthenticated'](),controller[_0x53a2('0xf')]);router[_0x53a2('0x6')]('/:id/tags',auth[_0x53a2('0x7')](),controller[_0x53a2('0x10')]);router[_0x53a2('0x11')]('/',auth['isAuthenticated'](),controller[_0x53a2('0x12')]);router[_0x53a2('0x11')](_0x53a2('0x13'),auth[_0x53a2('0x7')](),controller[_0x53a2('0x14')]);router[_0x53a2('0x15')](_0x53a2('0x9'),auth[_0x53a2('0x7')](),controller['update']);router[_0x53a2('0x16')](_0x53a2('0x9'),auth['isAuthenticated'](),controller[_0x53a2('0x17')]);module[_0x53a2('0x18')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x621c=['exports','STRING','sequelize'];(function(_0x84ac92,_0x463eda){var _0x1539d5=function(_0xb0b93){while(--_0xb0b93){_0x84ac92['push'](_0x84ac92['shift']());}};_0x1539d5(++_0x463eda);}(_0x621c,0xce));var _0xc621=function(_0x597106,_0x4a4eba){_0x597106=_0x597106-0x0;var _0x51af2d=_0x621c[_0x597106];return _0x51af2d;};'use strict';var Sequelize=require(_0xc621('0x0'));module[_0xc621('0x1')]={'name':{'type':Sequelize[_0xc621('0x2')]},'description':{'type':Sequelize[_0xc621('0x2')]}};
\ No newline at end of file
+var _0x1742=['sequelize','STRING'];(function(_0x57272c,_0x2be9e2){var _0xc45fb=function(_0x18175d){while(--_0x18175d){_0x57272c['push'](_0x57272c['shift']());}};_0xc45fb(++_0x2be9e2);}(_0x1742,0x1c2));var _0x2174=function(_0x267678,_0x233201){_0x267678=_0x267678-0x0;var _0x394d48=_0x1742[_0x267678];return _0x394d48;};'use strict';var Sequelize=require(_0x2174('0x0'));module['exports']={'name':{'type':Sequelize[_0x2174('0x1')]},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8d29=['getSubjects','findOne','order','getDescriptions','getTags','setTags','ids','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','path','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','json','undefined','count','offset','set','Content-Range','apply','reject','save','update','then','end','error','name','send','index','fieldName','type','key','model','map','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','sort','where','pick','filter','merge','options','includeAll','FreshdeskConfiguration','findAll','rows','catch','show','keys','rawAttributes','find','create','body','params','getFields','FreshdeskField'];(function(_0x4202bc,_0x2ed6cf){var _0x319148=function(_0x537d36){while(--_0x537d36){_0x4202bc['push'](_0x4202bc['shift']());}};_0x319148(++_0x2ed6cf);}(_0x8d29,0x109));var _0x98d2=function(_0x15ad07,_0x39b691){_0x15ad07=_0x15ad07-0x0;var _0x313a4b=_0x8d29[_0x15ad07];return _0x313a4b;};'use strict';var emlformat=require(_0x98d2('0x0'));var rimraf=require(_0x98d2('0x1'));var zipdir=require(_0x98d2('0x2'));var jsonpatch=require(_0x98d2('0x3'));var rp=require(_0x98d2('0x4'));var moment=require('moment');var BPromise=require(_0x98d2('0x5'));var Mustache=require(_0x98d2('0x6'));var util=require('util');var path=require(_0x98d2('0x7'));var sox=require('sox');var csv=require(_0x98d2('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x98d2('0x9'));var _=require(_0x98d2('0xa'));var squel=require(_0x98d2('0xb'));var crypto=require(_0x98d2('0xc'));var jsforce=require(_0x98d2('0xd'));var deskjs=require(_0x98d2('0xe'));var toCsv=require('to-csv');var querystring=require(_0x98d2('0xf'));var Papa=require(_0x98d2('0x10'));var Redis=require(_0x98d2('0x11'));var authService=require(_0x98d2('0x12'));var qs=require(_0x98d2('0x13'));var as=require(_0x98d2('0x14'));var hardwareService=require(_0x98d2('0x15'));var logger=require(_0x98d2('0x16'))(_0x98d2('0x17'));var utils=require(_0x98d2('0x18'));var config=require(_0x98d2('0x19'));var licenseUtil=require(_0x98d2('0x1a'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x32efb5,_0x212ab4){_0x212ab4=_0x212ab4||0xcc;return function(_0xd4969b){if(_0xd4969b){return _0x32efb5[_0x98d2('0x1b')](_0x212ab4);}return _0x32efb5[_0x98d2('0x1c')](_0x212ab4)['end']();};}function respondWithResult(_0x4e1c95,_0x5100c5){_0x5100c5=_0x5100c5||0xc8;return function(_0x11282e){if(_0x11282e){return _0x4e1c95[_0x98d2('0x1c')](_0x5100c5)[_0x98d2('0x1d')](_0x11282e);}};}function respondWithFilteredResult(_0x26f045,_0x5d2716){return function(_0x187425){if(_0x187425){var _0x1757e6=typeof _0x5d2716['offset']===_0x98d2('0x1e')&&typeof _0x5d2716['limit']===_0x98d2('0x1e');var _0x32b407=_0x187425[_0x98d2('0x1f')];var _0x4e00fd=_0x1757e6?0x0:_0x5d2716[_0x98d2('0x20')];var _0x5c3fd1=_0x1757e6?_0x187425['count']:_0x5d2716[_0x98d2('0x20')]+_0x5d2716['limit'];var _0x284645;if(_0x5c3fd1>=_0x32b407){_0x5c3fd1=_0x32b407;_0x284645=0xc8;}else{_0x284645=0xce;}_0x26f045['status'](_0x284645);return _0x26f045[_0x98d2('0x21')](_0x98d2('0x22'),_0x4e00fd+'-'+_0x5c3fd1+'/'+_0x32b407)[_0x98d2('0x1d')](_0x187425);}return null;};}function patchUpdates(_0x29768f){return function(_0x473a46){try{jsonpatch[_0x98d2('0x23')](_0x473a46,_0x29768f,!![]);}catch(_0x5edea0){return BPromise[_0x98d2('0x24')](_0x5edea0);}return _0x473a46[_0x98d2('0x25')]();};}function saveUpdates(_0x478a06,_0x32bb50){return function(_0x17f7eb){if(_0x17f7eb){return _0x17f7eb[_0x98d2('0x26')](_0x478a06)['then'](function(_0x498b76){return _0x498b76;});}return null;};}function removeEntity(_0x1bc562,_0x3b4cac){return function(_0x2ef8ef){if(_0x2ef8ef){return _0x2ef8ef['destroy']()[_0x98d2('0x27')](function(){_0x1bc562['status'](0xcc)[_0x98d2('0x28')]();});}};}function handleEntityNotFound(_0x48737b,_0x36ac6a){return function(_0xfceb6a){if(!_0xfceb6a){_0x48737b[_0x98d2('0x1b')](0x194);}return _0xfceb6a;};}function handleError(_0xc54c,_0x3ef204){_0x3ef204=_0x3ef204||0x1f4;return function(_0x38751a){logger[_0x98d2('0x29')](_0x38751a['stack']);if(_0x38751a[_0x98d2('0x2a')]){delete _0x38751a[_0x98d2('0x2a')];}_0xc54c[_0x98d2('0x1c')](_0x3ef204)[_0x98d2('0x2b')](_0x38751a);};}exports[_0x98d2('0x2c')]=function(_0x2bae4c,_0x482665){var _0x504205={},_0x375298={},_0x3c7682={'count':0x0,'rows':[]};var _0xfe2268=_['map'](db['FreshdeskConfiguration']['rawAttributes'],function(_0x99c5b8){return{'name':_0x99c5b8[_0x98d2('0x2d')],'type':_0x99c5b8[_0x98d2('0x2e')][_0x98d2('0x2f')]};});_0x375298[_0x98d2('0x30')]=_[_0x98d2('0x31')](_0xfe2268,_0x98d2('0x2a'));_0x375298[_0x98d2('0x32')]=_['keys'](_0x2bae4c['query']);_0x375298[_0x98d2('0x33')]=_[_0x98d2('0x34')](_0x375298[_0x98d2('0x30')],_0x375298[_0x98d2('0x32')]);_0x504205[_0x98d2('0x35')]=_['intersection'](_0x375298[_0x98d2('0x30')],qs[_0x98d2('0x36')](_0x2bae4c[_0x98d2('0x32')][_0x98d2('0x36')]));_0x504205[_0x98d2('0x35')]=_0x504205[_0x98d2('0x35')][_0x98d2('0x37')]?_0x504205[_0x98d2('0x35')]:_0x375298[_0x98d2('0x30')];if(!_0x2bae4c[_0x98d2('0x32')][_0x98d2('0x38')](_0x98d2('0x39'))){_0x504205['limit']=qs['limit'](_0x2bae4c[_0x98d2('0x32')][_0x98d2('0x3a')]);_0x504205[_0x98d2('0x20')]=qs[_0x98d2('0x20')](_0x2bae4c[_0x98d2('0x32')][_0x98d2('0x20')]);}_0x504205['order']=qs[_0x98d2('0x3b')](_0x2bae4c[_0x98d2('0x32')][_0x98d2('0x3b')]);_0x504205[_0x98d2('0x3c')]=qs[_0x98d2('0x33')](_[_0x98d2('0x3d')](_0x2bae4c['query'],_0x375298['filters']),_0xfe2268);if(_0x2bae4c[_0x98d2('0x32')]['filter']){_0x504205[_0x98d2('0x3c')]=_['merge'](_0x504205[_0x98d2('0x3c')],{'$or':_[_0x98d2('0x31')](_0xfe2268,function(_0x580e25){if(_0x580e25[_0x98d2('0x2e')]!=='VIRTUAL'){var _0x1838a1={};_0x1838a1[_0x580e25[_0x98d2('0x2a')]]={'$like':'%'+_0x2bae4c[_0x98d2('0x32')][_0x98d2('0x3e')]+'%'};return _0x1838a1;}})});}_0x504205=_[_0x98d2('0x3f')]({},_0x504205,_0x2bae4c[_0x98d2('0x40')]);var _0xd8ca63={'where':_0x504205[_0x98d2('0x3c')]};return db['FreshdeskConfiguration']['count'](_0xd8ca63)[_0x98d2('0x27')](function(_0x58fcd4){_0x3c7682[_0x98d2('0x1f')]=_0x58fcd4;if(_0x2bae4c[_0x98d2('0x32')][_0x98d2('0x41')]){_0x504205['include']=[{'all':!![]}];}return db[_0x98d2('0x42')][_0x98d2('0x43')](_0x504205);})[_0x98d2('0x27')](function(_0x4be05c){_0x3c7682[_0x98d2('0x44')]=_0x4be05c;return _0x3c7682;})['then'](respondWithFilteredResult(_0x482665,_0x504205))[_0x98d2('0x45')](handleError(_0x482665,null));};exports[_0x98d2('0x46')]=function(_0xc3a67c,_0x20a45e){var _0x4e4695={'raw':![],'where':{'id':_0xc3a67c['params']['id']}},_0x24266a={};_0x24266a['model']=_[_0x98d2('0x47')](db[_0x98d2('0x42')][_0x98d2('0x48')]);_0x24266a['query']=_[_0x98d2('0x47')](_0xc3a67c[_0x98d2('0x32')]);_0x24266a[_0x98d2('0x33')]=_[_0x98d2('0x34')](_0x24266a['model'],_0x24266a[_0x98d2('0x32')]);_0x4e4695[_0x98d2('0x35')]=_[_0x98d2('0x34')](_0x24266a[_0x98d2('0x30')],qs[_0x98d2('0x36')](_0xc3a67c[_0x98d2('0x32')]['fields']));_0x4e4695[_0x98d2('0x35')]=_0x4e4695[_0x98d2('0x35')][_0x98d2('0x37')]?_0x4e4695[_0x98d2('0x35')]:_0x24266a[_0x98d2('0x30')];if(_0xc3a67c[_0x98d2('0x32')][_0x98d2('0x41')]){_0x4e4695['include']=[{'all':!![]}];}_0x4e4695=_[_0x98d2('0x3f')]({},_0x4e4695,_0xc3a67c[_0x98d2('0x40')]);return db[_0x98d2('0x42')][_0x98d2('0x49')](_0x4e4695)[_0x98d2('0x27')](handleEntityNotFound(_0x20a45e,null))[_0x98d2('0x27')](respondWithResult(_0x20a45e,null))[_0x98d2('0x45')](handleError(_0x20a45e,null));};exports[_0x98d2('0x4a')]=function(_0x283069,_0x4c5f77){return db['FreshdeskConfiguration']['create'](_0x283069[_0x98d2('0x4b')],{})['then'](respondWithResult(_0x4c5f77,0xc9))['catch'](handleError(_0x4c5f77,null));};exports[_0x98d2('0x26')]=function(_0x182cf9,_0xc30797){if(_0x182cf9[_0x98d2('0x4b')]['id']){delete _0x182cf9[_0x98d2('0x4b')]['id'];}return db[_0x98d2('0x42')]['find']({'where':{'id':_0x182cf9[_0x98d2('0x4c')]['id']}})[_0x98d2('0x27')](handleEntityNotFound(_0xc30797,null))['then'](saveUpdates(_0x182cf9[_0x98d2('0x4b')],null))[_0x98d2('0x27')](respondWithResult(_0xc30797,null))['catch'](handleError(_0xc30797,null));};exports['destroy']=function(_0x3f9b56,_0x48cbcd){return db[_0x98d2('0x42')][_0x98d2('0x49')]({'where':{'id':_0x3f9b56[_0x98d2('0x4c')]['id']}})[_0x98d2('0x27')](handleEntityNotFound(_0x48cbcd,null))[_0x98d2('0x27')](removeEntity(_0x48cbcd,null))[_0x98d2('0x45')](handleError(_0x48cbcd,null));};exports[_0x98d2('0x4d')]=function(_0x21737f,_0x3317ab,_0x3f57b5){var _0x45d6cc={};var _0x19f721={};var _0x806136;var _0x11ff78;return db[_0x98d2('0x42')]['findOne']({'where':{'id':_0x21737f[_0x98d2('0x4c')]['id']}})['then'](handleEntityNotFound(_0x3317ab,null))[_0x98d2('0x27')](function(_0x513c6c){if(_0x513c6c){_0x806136=_0x513c6c;_0x19f721['model']=_['keys'](db[_0x98d2('0x4e')]['rawAttributes']);_0x19f721['query']=_[_0x98d2('0x47')](_0x21737f[_0x98d2('0x32')]);_0x19f721[_0x98d2('0x33')]=_[_0x98d2('0x34')](_0x19f721['model'],_0x19f721[_0x98d2('0x32')]);_0x45d6cc['attributes']=_['intersection'](_0x19f721[_0x98d2('0x30')],qs[_0x98d2('0x36')](_0x21737f[_0x98d2('0x32')][_0x98d2('0x36')]));_0x45d6cc[_0x98d2('0x35')]=_0x45d6cc[_0x98d2('0x35')][_0x98d2('0x37')]?_0x45d6cc[_0x98d2('0x35')]:_0x19f721[_0x98d2('0x30')];_0x45d6cc['order']=qs['sort'](_0x21737f[_0x98d2('0x32')][_0x98d2('0x3b')]);_0x45d6cc[_0x98d2('0x3c')]=qs[_0x98d2('0x33')](_[_0x98d2('0x3d')](_0x21737f[_0x98d2('0x32')],_0x19f721['filters']));if(_0x21737f['query'][_0x98d2('0x3e')]){_0x45d6cc[_0x98d2('0x3c')]=_[_0x98d2('0x3f')](_0x45d6cc[_0x98d2('0x3c')],{'$or':_[_0x98d2('0x31')](_0x45d6cc[_0x98d2('0x35')],function(_0x1cf75b){var _0xa3a3ca={};_0xa3a3ca[_0x1cf75b]={'$like':'%'+_0x21737f[_0x98d2('0x32')]['filter']+'%'};return _0xa3a3ca;})});}_0x45d6cc=_[_0x98d2('0x3f')]({},_0x45d6cc,_0x21737f['options']);return _0x806136[_0x98d2('0x4d')](_0x45d6cc);}})[_0x98d2('0x27')](function(_0x47e6dc){if(_0x47e6dc){_0x11ff78=_0x47e6dc['length'];if(!_0x21737f[_0x98d2('0x32')][_0x98d2('0x38')](_0x98d2('0x39'))){_0x45d6cc[_0x98d2('0x3a')]=qs[_0x98d2('0x3a')](_0x21737f['query']['limit']);_0x45d6cc[_0x98d2('0x20')]=qs[_0x98d2('0x20')](_0x21737f[_0x98d2('0x32')][_0x98d2('0x20')]);}return _0x806136['getFields'](_0x45d6cc);}})[_0x98d2('0x27')](function(_0x337e93){if(_0x337e93){return _0x337e93?{'count':_0x11ff78,'rows':_0x337e93}:null;}})[_0x98d2('0x27')](respondWithResult(_0x3317ab,null))[_0x98d2('0x45')](handleError(_0x3317ab,null));};exports[_0x98d2('0x4f')]=function(_0x27ce31,_0xa5ee72,_0x173af0){var _0x5b0bd3={};var _0xb25b6e={};var _0x51b2fc;var _0x252e81;return db[_0x98d2('0x42')][_0x98d2('0x50')]({'where':{'id':_0x27ce31[_0x98d2('0x4c')]['id']}})['then'](handleEntityNotFound(_0xa5ee72,null))[_0x98d2('0x27')](function(_0x3b9247){if(_0x3b9247){_0x51b2fc=_0x3b9247;_0xb25b6e[_0x98d2('0x30')]=_[_0x98d2('0x47')](db[_0x98d2('0x4e')][_0x98d2('0x48')]);_0xb25b6e[_0x98d2('0x32')]=_[_0x98d2('0x47')](_0x27ce31[_0x98d2('0x32')]);_0xb25b6e[_0x98d2('0x33')]=_[_0x98d2('0x34')](_0xb25b6e[_0x98d2('0x30')],_0xb25b6e[_0x98d2('0x32')]);_0x5b0bd3['attributes']=_[_0x98d2('0x34')](_0xb25b6e[_0x98d2('0x30')],qs[_0x98d2('0x36')](_0x27ce31[_0x98d2('0x32')][_0x98d2('0x36')]));_0x5b0bd3['attributes']=_0x5b0bd3[_0x98d2('0x35')][_0x98d2('0x37')]?_0x5b0bd3[_0x98d2('0x35')]:_0xb25b6e['model'];_0x5b0bd3[_0x98d2('0x51')]=qs[_0x98d2('0x3b')](_0x27ce31[_0x98d2('0x32')]['sort']);_0x5b0bd3[_0x98d2('0x3c')]=qs[_0x98d2('0x33')](_['pick'](_0x27ce31['query'],_0xb25b6e['filters']));if(_0x27ce31['query'][_0x98d2('0x3e')]){_0x5b0bd3[_0x98d2('0x3c')]=_['merge'](_0x5b0bd3[_0x98d2('0x3c')],{'$or':_[_0x98d2('0x31')](_0x5b0bd3[_0x98d2('0x35')],function(_0x4c1b68){var _0x3694a0={};_0x3694a0[_0x4c1b68]={'$like':'%'+_0x27ce31[_0x98d2('0x32')]['filter']+'%'};return _0x3694a0;})});}_0x5b0bd3=_[_0x98d2('0x3f')]({},_0x5b0bd3,_0x27ce31[_0x98d2('0x40')]);return _0x51b2fc['getSubjects'](_0x5b0bd3);}})['then'](function(_0x1fa49f){if(_0x1fa49f){_0x252e81=_0x1fa49f['length'];if(!_0x27ce31['query'][_0x98d2('0x38')]('nolimit')){_0x5b0bd3['limit']=qs[_0x98d2('0x3a')](_0x27ce31[_0x98d2('0x32')][_0x98d2('0x3a')]);_0x5b0bd3['offset']=qs[_0x98d2('0x20')](_0x27ce31['query']['offset']);}return _0x51b2fc[_0x98d2('0x4f')](_0x5b0bd3);}})[_0x98d2('0x27')](function(_0xa38145){if(_0xa38145){return _0xa38145?{'count':_0x252e81,'rows':_0xa38145}:null;}})[_0x98d2('0x27')](respondWithResult(_0xa5ee72,null))[_0x98d2('0x45')](handleError(_0xa5ee72,null));};exports[_0x98d2('0x52')]=function(_0x261d15,_0x2d6ef3,_0x229c71){var _0x2a2017={};var _0x5c1e97={};var _0x1e967f;var _0x312a2d;return db[_0x98d2('0x42')][_0x98d2('0x50')]({'where':{'id':_0x261d15[_0x98d2('0x4c')]['id']}})[_0x98d2('0x27')](handleEntityNotFound(_0x2d6ef3,null))[_0x98d2('0x27')](function(_0x25602f){if(_0x25602f){_0x1e967f=_0x25602f;_0x5c1e97[_0x98d2('0x30')]=_[_0x98d2('0x47')](db[_0x98d2('0x4e')][_0x98d2('0x48')]);_0x5c1e97[_0x98d2('0x32')]=_[_0x98d2('0x47')](_0x261d15[_0x98d2('0x32')]);_0x5c1e97[_0x98d2('0x33')]=_[_0x98d2('0x34')](_0x5c1e97[_0x98d2('0x30')],_0x5c1e97[_0x98d2('0x32')]);_0x2a2017[_0x98d2('0x35')]=_[_0x98d2('0x34')](_0x5c1e97['model'],qs[_0x98d2('0x36')](_0x261d15[_0x98d2('0x32')][_0x98d2('0x36')]));_0x2a2017[_0x98d2('0x35')]=_0x2a2017['attributes'][_0x98d2('0x37')]?_0x2a2017[_0x98d2('0x35')]:_0x5c1e97[_0x98d2('0x30')];_0x2a2017[_0x98d2('0x51')]=qs['sort'](_0x261d15[_0x98d2('0x32')][_0x98d2('0x3b')]);_0x2a2017[_0x98d2('0x3c')]=qs[_0x98d2('0x33')](_[_0x98d2('0x3d')](_0x261d15['query'],_0x5c1e97['filters']));if(_0x261d15[_0x98d2('0x32')][_0x98d2('0x3e')]){_0x2a2017[_0x98d2('0x3c')]=_['merge'](_0x2a2017[_0x98d2('0x3c')],{'$or':_[_0x98d2('0x31')](_0x2a2017[_0x98d2('0x35')],function(_0x8f2d4e){var _0x274f5f={};_0x274f5f[_0x8f2d4e]={'$like':'%'+_0x261d15[_0x98d2('0x32')][_0x98d2('0x3e')]+'%'};return _0x274f5f;})});}_0x2a2017=_[_0x98d2('0x3f')]({},_0x2a2017,_0x261d15[_0x98d2('0x40')]);return _0x1e967f[_0x98d2('0x52')](_0x2a2017);}})[_0x98d2('0x27')](function(_0x108c3d){if(_0x108c3d){_0x312a2d=_0x108c3d[_0x98d2('0x37')];if(!_0x261d15[_0x98d2('0x32')][_0x98d2('0x38')](_0x98d2('0x39'))){_0x2a2017[_0x98d2('0x3a')]=qs[_0x98d2('0x3a')](_0x261d15[_0x98d2('0x32')][_0x98d2('0x3a')]);_0x2a2017['offset']=qs[_0x98d2('0x20')](_0x261d15[_0x98d2('0x32')][_0x98d2('0x20')]);}return _0x1e967f['getDescriptions'](_0x2a2017);}})[_0x98d2('0x27')](function(_0x9fe26e){if(_0x9fe26e){return _0x9fe26e?{'count':_0x312a2d,'rows':_0x9fe26e}:null;}})[_0x98d2('0x27')](respondWithResult(_0x2d6ef3,null))[_0x98d2('0x45')](handleError(_0x2d6ef3,null));};exports['getTags']=function(_0x35a612,_0x567e92,_0xb65472){var _0x5324e8={};var _0x243a2e={};var _0x4a9d73;var _0x306452;return db['FreshdeskConfiguration'][_0x98d2('0x50')]({'where':{'id':_0x35a612[_0x98d2('0x4c')]['id']}})[_0x98d2('0x27')](handleEntityNotFound(_0x567e92,null))[_0x98d2('0x27')](function(_0x4ec1c5){if(_0x4ec1c5){_0x4a9d73=_0x4ec1c5;_0x243a2e[_0x98d2('0x30')]=_[_0x98d2('0x47')](db['Tag']['rawAttributes']);_0x243a2e[_0x98d2('0x32')]=_[_0x98d2('0x47')](_0x35a612[_0x98d2('0x32')]);_0x243a2e[_0x98d2('0x33')]=_[_0x98d2('0x34')](_0x243a2e[_0x98d2('0x30')],_0x243a2e[_0x98d2('0x32')]);_0x5324e8[_0x98d2('0x35')]=_[_0x98d2('0x34')](_0x243a2e[_0x98d2('0x30')],qs[_0x98d2('0x36')](_0x35a612[_0x98d2('0x32')][_0x98d2('0x36')]));_0x5324e8[_0x98d2('0x35')]=_0x5324e8[_0x98d2('0x35')][_0x98d2('0x37')]?_0x5324e8[_0x98d2('0x35')]:_0x243a2e[_0x98d2('0x30')];_0x5324e8['order']=qs['sort'](_0x35a612['query'][_0x98d2('0x3b')]);_0x5324e8[_0x98d2('0x3c')]=qs[_0x98d2('0x33')](_[_0x98d2('0x3d')](_0x35a612['query'],_0x243a2e[_0x98d2('0x33')]));if(_0x35a612[_0x98d2('0x32')][_0x98d2('0x3e')]){_0x5324e8[_0x98d2('0x3c')]=_[_0x98d2('0x3f')](_0x5324e8[_0x98d2('0x3c')],{'$or':_['map'](_0x5324e8[_0x98d2('0x35')],function(_0x52a4ad){var _0x3fccd1={};_0x3fccd1[_0x52a4ad]={'$like':'%'+_0x35a612[_0x98d2('0x32')]['filter']+'%'};return _0x3fccd1;})});}_0x5324e8=_[_0x98d2('0x3f')]({},_0x5324e8,_0x35a612[_0x98d2('0x40')]);return _0x4a9d73[_0x98d2('0x53')](_0x5324e8);}})[_0x98d2('0x27')](function(_0x516585){if(_0x516585){_0x306452=_0x516585['length'];if(!_0x35a612[_0x98d2('0x32')][_0x98d2('0x38')](_0x98d2('0x39'))){_0x5324e8['limit']=qs[_0x98d2('0x3a')](_0x35a612['query']['limit']);_0x5324e8['offset']=qs[_0x98d2('0x20')](_0x35a612[_0x98d2('0x32')][_0x98d2('0x20')]);}return _0x4a9d73[_0x98d2('0x53')](_0x5324e8);}})[_0x98d2('0x27')](function(_0xeb0138){if(_0xeb0138){return _0xeb0138?{'count':_0x306452,'rows':_0xeb0138}:null;}})['then'](respondWithResult(_0x567e92,null))[_0x98d2('0x45')](handleError(_0x567e92,null));};exports[_0x98d2('0x54')]=function(_0x3b376f,_0x412d6b,_0x12448c){if(_0x3b376f[_0x98d2('0x4b')]['id']){delete _0x3b376f[_0x98d2('0x4b')]['id'];}return db[_0x98d2('0x42')]['findOne']({'where':{'id':_0x3b376f[_0x98d2('0x4c')]['id']}})[_0x98d2('0x27')](handleEntityNotFound(_0x412d6b,null))[_0x98d2('0x27')](function(_0xef5238){if(_0xef5238){return _0xef5238[_0x98d2('0x54')](_0x3b376f['body'][_0x98d2('0x55')]||[]);}return null;})[_0x98d2('0x27')](respondWithResult(_0x412d6b,null))[_0x98d2('0x45')](handleError(_0x412d6b,null));};
\ No newline at end of file
+var _0x64f2=['findOne','getFields','getSubjects','FreshdeskField','getDescriptions','getTags','Tag','setTags','ids','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','lodash','squel','jsforce','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','sendStatus','status','end','json','undefined','limit','count','offset','set','Content-Range','apply','then','destroy','error','stack','name','send','index','map','FreshdeskConfiguration','fieldName','key','query','intersection','model','fields','attributes','length','hasOwnProperty','nolimit','order','sort','filters','pick','filter','where','merge','type','VIRTUAL','include','findAll','rows','catch','show','keys','rawAttributes','options','create','body','find','params'];(function(_0x2dafbe,_0x5d04de){var _0x58a45a=function(_0x50ac96){while(--_0x50ac96){_0x2dafbe['push'](_0x2dafbe['shift']());}};_0x58a45a(++_0x5d04de);}(_0x64f2,0xaf));var _0x264f=function(_0x223494,_0x4152e5){_0x223494=_0x223494-0x0;var _0x565fd3=_0x64f2[_0x223494];return _0x565fd3;};'use strict';var emlformat=require(_0x264f('0x0'));var rimraf=require(_0x264f('0x1'));var zipdir=require(_0x264f('0x2'));var jsonpatch=require(_0x264f('0x3'));var rp=require(_0x264f('0x4'));var moment=require(_0x264f('0x5'));var BPromise=require(_0x264f('0x6'));var Mustache=require(_0x264f('0x7'));var util=require(_0x264f('0x8'));var path=require(_0x264f('0x9'));var sox=require('sox');var csv=require(_0x264f('0xa'));var ejs=require(_0x264f('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x264f('0xc'));var squel=require(_0x264f('0xd'));var crypto=require('crypto');var jsforce=require(_0x264f('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x264f('0xa'));var querystring=require(_0x264f('0xf'));var Papa=require(_0x264f('0x10'));var Redis=require('ioredis');var authService=require(_0x264f('0x11'));var qs=require(_0x264f('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x264f('0x13'));var logger=require(_0x264f('0x14'))('api');var utils=require(_0x264f('0x15'));var config=require(_0x264f('0x16'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x517a77,_0x228862){_0x228862=_0x228862||0xcc;return function(_0x3a080a){if(_0x3a080a){return _0x517a77[_0x264f('0x17')](_0x228862);}return _0x517a77[_0x264f('0x18')](_0x228862)[_0x264f('0x19')]();};}function respondWithResult(_0x4081d5,_0x446a47){_0x446a47=_0x446a47||0xc8;return function(_0x3e2652){if(_0x3e2652){return _0x4081d5[_0x264f('0x18')](_0x446a47)[_0x264f('0x1a')](_0x3e2652);}};}function respondWithFilteredResult(_0x46e1b1,_0x16c4d6){return function(_0x24a535){if(_0x24a535){var _0x34875c=typeof _0x16c4d6['offset']===_0x264f('0x1b')&&typeof _0x16c4d6[_0x264f('0x1c')]===_0x264f('0x1b');var _0x5c090a=_0x24a535[_0x264f('0x1d')];var _0x18adb7=_0x34875c?0x0:_0x16c4d6[_0x264f('0x1e')];var _0x439cb1=_0x34875c?_0x24a535[_0x264f('0x1d')]:_0x16c4d6['offset']+_0x16c4d6[_0x264f('0x1c')];var _0x1f52a9;if(_0x439cb1>=_0x5c090a){_0x439cb1=_0x5c090a;_0x1f52a9=0xc8;}else{_0x1f52a9=0xce;}_0x46e1b1[_0x264f('0x18')](_0x1f52a9);return _0x46e1b1[_0x264f('0x1f')](_0x264f('0x20'),_0x18adb7+'-'+_0x439cb1+'/'+_0x5c090a)[_0x264f('0x1a')](_0x24a535);}return null;};}function patchUpdates(_0x30083b){return function(_0x2d87ac){try{jsonpatch[_0x264f('0x21')](_0x2d87ac,_0x30083b,!![]);}catch(_0x4a37e8){return BPromise['reject'](_0x4a37e8);}return _0x2d87ac['save']();};}function saveUpdates(_0x568a56,_0xe06b3b){return function(_0x551a40){if(_0x551a40){return _0x551a40['update'](_0x568a56)[_0x264f('0x22')](function(_0x149a4b){return _0x149a4b;});}return null;};}function removeEntity(_0x333d81,_0x158c16){return function(_0x3f2dae){if(_0x3f2dae){return _0x3f2dae[_0x264f('0x23')]()['then'](function(){_0x333d81[_0x264f('0x18')](0xcc)[_0x264f('0x19')]();});}};}function handleEntityNotFound(_0x1ad5e0,_0x20a591){return function(_0x514d82){if(!_0x514d82){_0x1ad5e0[_0x264f('0x17')](0x194);}return _0x514d82;};}function handleError(_0x1086e1,_0x4af87d){_0x4af87d=_0x4af87d||0x1f4;return function(_0x24519a){logger[_0x264f('0x24')](_0x24519a[_0x264f('0x25')]);if(_0x24519a[_0x264f('0x26')]){delete _0x24519a[_0x264f('0x26')];}_0x1086e1[_0x264f('0x18')](_0x4af87d)[_0x264f('0x27')](_0x24519a);};}exports[_0x264f('0x28')]=function(_0x323b56,_0x1ca125){var _0x3c27f6={},_0x51cdee={},_0x549101={'count':0x0,'rows':[]};var _0x3c67e4=_[_0x264f('0x29')](db[_0x264f('0x2a')]['rawAttributes'],function(_0xf3df3c){return{'name':_0xf3df3c[_0x264f('0x2b')],'type':_0xf3df3c['type'][_0x264f('0x2c')]};});_0x51cdee['model']=_['map'](_0x3c67e4,_0x264f('0x26'));_0x51cdee[_0x264f('0x2d')]=_['keys'](_0x323b56['query']);_0x51cdee['filters']=_['intersection'](_0x51cdee['model'],_0x51cdee['query']);_0x3c27f6['attributes']=_[_0x264f('0x2e')](_0x51cdee[_0x264f('0x2f')],qs[_0x264f('0x30')](_0x323b56['query'][_0x264f('0x30')]));_0x3c27f6[_0x264f('0x31')]=_0x3c27f6['attributes'][_0x264f('0x32')]?_0x3c27f6[_0x264f('0x31')]:_0x51cdee[_0x264f('0x2f')];if(!_0x323b56[_0x264f('0x2d')][_0x264f('0x33')](_0x264f('0x34'))){_0x3c27f6[_0x264f('0x1c')]=qs[_0x264f('0x1c')](_0x323b56[_0x264f('0x2d')][_0x264f('0x1c')]);_0x3c27f6[_0x264f('0x1e')]=qs[_0x264f('0x1e')](_0x323b56['query'][_0x264f('0x1e')]);}_0x3c27f6[_0x264f('0x35')]=qs[_0x264f('0x36')](_0x323b56[_0x264f('0x2d')][_0x264f('0x36')]);_0x3c27f6['where']=qs[_0x264f('0x37')](_[_0x264f('0x38')](_0x323b56[_0x264f('0x2d')],_0x51cdee[_0x264f('0x37')]),_0x3c67e4);if(_0x323b56[_0x264f('0x2d')][_0x264f('0x39')]){_0x3c27f6[_0x264f('0x3a')]=_[_0x264f('0x3b')](_0x3c27f6[_0x264f('0x3a')],{'$or':_[_0x264f('0x29')](_0x3c67e4,function(_0x4123cb){if(_0x4123cb[_0x264f('0x3c')]!==_0x264f('0x3d')){var _0x5a309d={};_0x5a309d[_0x4123cb[_0x264f('0x26')]]={'$like':'%'+_0x323b56['query'][_0x264f('0x39')]+'%'};return _0x5a309d;}})});}_0x3c27f6=_[_0x264f('0x3b')]({},_0x3c27f6,_0x323b56['options']);var _0x152aa2={'where':_0x3c27f6[_0x264f('0x3a')]};return db[_0x264f('0x2a')][_0x264f('0x1d')](_0x152aa2)[_0x264f('0x22')](function(_0xd09363){_0x549101[_0x264f('0x1d')]=_0xd09363;if(_0x323b56[_0x264f('0x2d')]['includeAll']){_0x3c27f6[_0x264f('0x3e')]=[{'all':!![]}];}return db[_0x264f('0x2a')][_0x264f('0x3f')](_0x3c27f6);})['then'](function(_0x414a84){_0x549101[_0x264f('0x40')]=_0x414a84;return _0x549101;})[_0x264f('0x22')](respondWithFilteredResult(_0x1ca125,_0x3c27f6))[_0x264f('0x41')](handleError(_0x1ca125,null));};exports[_0x264f('0x42')]=function(_0x5ab554,_0x5c2f1e){var _0x417efa={'raw':![],'where':{'id':_0x5ab554['params']['id']}},_0x11ec33={};_0x11ec33[_0x264f('0x2f')]=_[_0x264f('0x43')](db[_0x264f('0x2a')][_0x264f('0x44')]);_0x11ec33[_0x264f('0x2d')]=_[_0x264f('0x43')](_0x5ab554['query']);_0x11ec33['filters']=_[_0x264f('0x2e')](_0x11ec33[_0x264f('0x2f')],_0x11ec33[_0x264f('0x2d')]);_0x417efa[_0x264f('0x31')]=_[_0x264f('0x2e')](_0x11ec33['model'],qs['fields'](_0x5ab554[_0x264f('0x2d')][_0x264f('0x30')]));_0x417efa['attributes']=_0x417efa[_0x264f('0x31')][_0x264f('0x32')]?_0x417efa[_0x264f('0x31')]:_0x11ec33['model'];if(_0x5ab554[_0x264f('0x2d')]['includeAll']){_0x417efa['include']=[{'all':!![]}];}_0x417efa=_[_0x264f('0x3b')]({},_0x417efa,_0x5ab554[_0x264f('0x45')]);return db[_0x264f('0x2a')]['find'](_0x417efa)[_0x264f('0x22')](handleEntityNotFound(_0x5c2f1e,null))[_0x264f('0x22')](respondWithResult(_0x5c2f1e,null))[_0x264f('0x41')](handleError(_0x5c2f1e,null));};exports[_0x264f('0x46')]=function(_0x47a25d,_0x347584){return db[_0x264f('0x2a')][_0x264f('0x46')](_0x47a25d[_0x264f('0x47')],{})[_0x264f('0x22')](respondWithResult(_0x347584,0xc9))[_0x264f('0x41')](handleError(_0x347584,null));};exports['update']=function(_0x11bdaa,_0x4819df){if(_0x11bdaa[_0x264f('0x47')]['id']){delete _0x11bdaa[_0x264f('0x47')]['id'];}return db[_0x264f('0x2a')][_0x264f('0x48')]({'where':{'id':_0x11bdaa[_0x264f('0x49')]['id']}})[_0x264f('0x22')](handleEntityNotFound(_0x4819df,null))[_0x264f('0x22')](saveUpdates(_0x11bdaa[_0x264f('0x47')],null))[_0x264f('0x22')](respondWithResult(_0x4819df,null))[_0x264f('0x41')](handleError(_0x4819df,null));};exports[_0x264f('0x23')]=function(_0x3a2a43,_0x5bcfa9){return db[_0x264f('0x2a')][_0x264f('0x48')]({'where':{'id':_0x3a2a43['params']['id']}})['then'](handleEntityNotFound(_0x5bcfa9,null))[_0x264f('0x22')](removeEntity(_0x5bcfa9,null))['catch'](handleError(_0x5bcfa9,null));};exports['getFields']=function(_0x429fda,_0x54eaee,_0x354ed7){var _0x3a0061={};var _0x540e1b={};var _0x104151;var _0x26b84c;return db[_0x264f('0x2a')][_0x264f('0x4a')]({'where':{'id':_0x429fda[_0x264f('0x49')]['id']}})[_0x264f('0x22')](handleEntityNotFound(_0x54eaee,null))[_0x264f('0x22')](function(_0x4b3808){if(_0x4b3808){_0x104151=_0x4b3808;_0x540e1b[_0x264f('0x2f')]=_[_0x264f('0x43')](db['FreshdeskField'][_0x264f('0x44')]);_0x540e1b[_0x264f('0x2d')]=_[_0x264f('0x43')](_0x429fda[_0x264f('0x2d')]);_0x540e1b[_0x264f('0x37')]=_[_0x264f('0x2e')](_0x540e1b[_0x264f('0x2f')],_0x540e1b[_0x264f('0x2d')]);_0x3a0061[_0x264f('0x31')]=_['intersection'](_0x540e1b['model'],qs[_0x264f('0x30')](_0x429fda[_0x264f('0x2d')][_0x264f('0x30')]));_0x3a0061[_0x264f('0x31')]=_0x3a0061[_0x264f('0x31')][_0x264f('0x32')]?_0x3a0061[_0x264f('0x31')]:_0x540e1b[_0x264f('0x2f')];_0x3a0061[_0x264f('0x35')]=qs[_0x264f('0x36')](_0x429fda['query'][_0x264f('0x36')]);_0x3a0061[_0x264f('0x3a')]=qs['filters'](_[_0x264f('0x38')](_0x429fda[_0x264f('0x2d')],_0x540e1b[_0x264f('0x37')]));if(_0x429fda['query'][_0x264f('0x39')]){_0x3a0061['where']=_[_0x264f('0x3b')](_0x3a0061[_0x264f('0x3a')],{'$or':_[_0x264f('0x29')](_0x3a0061[_0x264f('0x31')],function(_0x41d0d3){var _0x12072f={};_0x12072f[_0x41d0d3]={'$like':'%'+_0x429fda[_0x264f('0x2d')][_0x264f('0x39')]+'%'};return _0x12072f;})});}_0x3a0061=_[_0x264f('0x3b')]({},_0x3a0061,_0x429fda['options']);return _0x104151['getFields'](_0x3a0061);}})[_0x264f('0x22')](function(_0x3c2536){if(_0x3c2536){_0x26b84c=_0x3c2536['length'];if(!_0x429fda[_0x264f('0x2d')]['hasOwnProperty'](_0x264f('0x34'))){_0x3a0061['limit']=qs[_0x264f('0x1c')](_0x429fda['query'][_0x264f('0x1c')]);_0x3a0061[_0x264f('0x1e')]=qs[_0x264f('0x1e')](_0x429fda[_0x264f('0x2d')][_0x264f('0x1e')]);}return _0x104151[_0x264f('0x4b')](_0x3a0061);}})[_0x264f('0x22')](function(_0x43a17e){if(_0x43a17e){return _0x43a17e?{'count':_0x26b84c,'rows':_0x43a17e}:null;}})['then'](respondWithResult(_0x54eaee,null))[_0x264f('0x41')](handleError(_0x54eaee,null));};exports[_0x264f('0x4c')]=function(_0x534b4f,_0x281c80,_0x1d23af){var _0xbfbd45={};var _0x354af0={};var _0x5591e0;var _0x349243;return db['FreshdeskConfiguration'][_0x264f('0x4a')]({'where':{'id':_0x534b4f[_0x264f('0x49')]['id']}})[_0x264f('0x22')](handleEntityNotFound(_0x281c80,null))[_0x264f('0x22')](function(_0x2cebee){if(_0x2cebee){_0x5591e0=_0x2cebee;_0x354af0[_0x264f('0x2f')]=_[_0x264f('0x43')](db[_0x264f('0x4d')][_0x264f('0x44')]);_0x354af0[_0x264f('0x2d')]=_[_0x264f('0x43')](_0x534b4f[_0x264f('0x2d')]);_0x354af0['filters']=_[_0x264f('0x2e')](_0x354af0[_0x264f('0x2f')],_0x354af0['query']);_0xbfbd45[_0x264f('0x31')]=_[_0x264f('0x2e')](_0x354af0['model'],qs[_0x264f('0x30')](_0x534b4f[_0x264f('0x2d')][_0x264f('0x30')]));_0xbfbd45[_0x264f('0x31')]=_0xbfbd45['attributes'][_0x264f('0x32')]?_0xbfbd45['attributes']:_0x354af0[_0x264f('0x2f')];_0xbfbd45[_0x264f('0x35')]=qs[_0x264f('0x36')](_0x534b4f[_0x264f('0x2d')][_0x264f('0x36')]);_0xbfbd45[_0x264f('0x3a')]=qs[_0x264f('0x37')](_[_0x264f('0x38')](_0x534b4f[_0x264f('0x2d')],_0x354af0['filters']));if(_0x534b4f[_0x264f('0x2d')][_0x264f('0x39')]){_0xbfbd45[_0x264f('0x3a')]=_[_0x264f('0x3b')](_0xbfbd45[_0x264f('0x3a')],{'$or':_[_0x264f('0x29')](_0xbfbd45[_0x264f('0x31')],function(_0x4f71f0){var _0x1d1589={};_0x1d1589[_0x4f71f0]={'$like':'%'+_0x534b4f[_0x264f('0x2d')][_0x264f('0x39')]+'%'};return _0x1d1589;})});}_0xbfbd45=_[_0x264f('0x3b')]({},_0xbfbd45,_0x534b4f[_0x264f('0x45')]);return _0x5591e0['getSubjects'](_0xbfbd45);}})[_0x264f('0x22')](function(_0x43a0d6){if(_0x43a0d6){_0x349243=_0x43a0d6[_0x264f('0x32')];if(!_0x534b4f[_0x264f('0x2d')]['hasOwnProperty'](_0x264f('0x34'))){_0xbfbd45[_0x264f('0x1c')]=qs['limit'](_0x534b4f[_0x264f('0x2d')][_0x264f('0x1c')]);_0xbfbd45[_0x264f('0x1e')]=qs[_0x264f('0x1e')](_0x534b4f['query'][_0x264f('0x1e')]);}return _0x5591e0[_0x264f('0x4c')](_0xbfbd45);}})['then'](function(_0x55a229){if(_0x55a229){return _0x55a229?{'count':_0x349243,'rows':_0x55a229}:null;}})[_0x264f('0x22')](respondWithResult(_0x281c80,null))[_0x264f('0x41')](handleError(_0x281c80,null));};exports[_0x264f('0x4e')]=function(_0x271926,_0x2cb62c,_0x281dd5){var _0x126324={};var _0x58917a={};var _0x2d4bbc;var _0x27d47a;return db['FreshdeskConfiguration'][_0x264f('0x4a')]({'where':{'id':_0x271926[_0x264f('0x49')]['id']}})[_0x264f('0x22')](handleEntityNotFound(_0x2cb62c,null))[_0x264f('0x22')](function(_0x5c75ce){if(_0x5c75ce){_0x2d4bbc=_0x5c75ce;_0x58917a[_0x264f('0x2f')]=_[_0x264f('0x43')](db[_0x264f('0x4d')]['rawAttributes']);_0x58917a[_0x264f('0x2d')]=_[_0x264f('0x43')](_0x271926[_0x264f('0x2d')]);_0x58917a[_0x264f('0x37')]=_[_0x264f('0x2e')](_0x58917a['model'],_0x58917a[_0x264f('0x2d')]);_0x126324[_0x264f('0x31')]=_[_0x264f('0x2e')](_0x58917a[_0x264f('0x2f')],qs[_0x264f('0x30')](_0x271926[_0x264f('0x2d')][_0x264f('0x30')]));_0x126324['attributes']=_0x126324['attributes'][_0x264f('0x32')]?_0x126324[_0x264f('0x31')]:_0x58917a[_0x264f('0x2f')];_0x126324[_0x264f('0x35')]=qs[_0x264f('0x36')](_0x271926[_0x264f('0x2d')][_0x264f('0x36')]);_0x126324[_0x264f('0x3a')]=qs[_0x264f('0x37')](_[_0x264f('0x38')](_0x271926[_0x264f('0x2d')],_0x58917a[_0x264f('0x37')]));if(_0x271926[_0x264f('0x2d')][_0x264f('0x39')]){_0x126324[_0x264f('0x3a')]=_['merge'](_0x126324[_0x264f('0x3a')],{'$or':_['map'](_0x126324[_0x264f('0x31')],function(_0x1e8fc7){var _0x4314ad={};_0x4314ad[_0x1e8fc7]={'$like':'%'+_0x271926[_0x264f('0x2d')]['filter']+'%'};return _0x4314ad;})});}_0x126324=_['merge']({},_0x126324,_0x271926['options']);return _0x2d4bbc['getDescriptions'](_0x126324);}})[_0x264f('0x22')](function(_0x2b8554){if(_0x2b8554){_0x27d47a=_0x2b8554[_0x264f('0x32')];if(!_0x271926['query'][_0x264f('0x33')](_0x264f('0x34'))){_0x126324['limit']=qs['limit'](_0x271926[_0x264f('0x2d')][_0x264f('0x1c')]);_0x126324[_0x264f('0x1e')]=qs['offset'](_0x271926['query'][_0x264f('0x1e')]);}return _0x2d4bbc[_0x264f('0x4e')](_0x126324);}})['then'](function(_0x262503){if(_0x262503){return _0x262503?{'count':_0x27d47a,'rows':_0x262503}:null;}})[_0x264f('0x22')](respondWithResult(_0x2cb62c,null))['catch'](handleError(_0x2cb62c,null));};exports[_0x264f('0x4f')]=function(_0x15e884,_0x46555b,_0x25ec06){var _0x2b99a4={};var _0x4f3060={};var _0x2389f9;var _0x47a8bd;return db[_0x264f('0x2a')][_0x264f('0x4a')]({'where':{'id':_0x15e884['params']['id']}})[_0x264f('0x22')](handleEntityNotFound(_0x46555b,null))[_0x264f('0x22')](function(_0x4d134b){if(_0x4d134b){_0x2389f9=_0x4d134b;_0x4f3060['model']=_[_0x264f('0x43')](db[_0x264f('0x50')][_0x264f('0x44')]);_0x4f3060[_0x264f('0x2d')]=_[_0x264f('0x43')](_0x15e884[_0x264f('0x2d')]);_0x4f3060['filters']=_[_0x264f('0x2e')](_0x4f3060[_0x264f('0x2f')],_0x4f3060[_0x264f('0x2d')]);_0x2b99a4['attributes']=_[_0x264f('0x2e')](_0x4f3060[_0x264f('0x2f')],qs[_0x264f('0x30')](_0x15e884[_0x264f('0x2d')]['fields']));_0x2b99a4['attributes']=_0x2b99a4[_0x264f('0x31')][_0x264f('0x32')]?_0x2b99a4[_0x264f('0x31')]:_0x4f3060[_0x264f('0x2f')];_0x2b99a4['order']=qs['sort'](_0x15e884[_0x264f('0x2d')][_0x264f('0x36')]);_0x2b99a4[_0x264f('0x3a')]=qs[_0x264f('0x37')](_[_0x264f('0x38')](_0x15e884[_0x264f('0x2d')],_0x4f3060['filters']));if(_0x15e884[_0x264f('0x2d')][_0x264f('0x39')]){_0x2b99a4[_0x264f('0x3a')]=_[_0x264f('0x3b')](_0x2b99a4[_0x264f('0x3a')],{'$or':_['map'](_0x2b99a4[_0x264f('0x31')],function(_0x2132fd){var _0x1f16a3={};_0x1f16a3[_0x2132fd]={'$like':'%'+_0x15e884[_0x264f('0x2d')][_0x264f('0x39')]+'%'};return _0x1f16a3;})});}_0x2b99a4=_[_0x264f('0x3b')]({},_0x2b99a4,_0x15e884[_0x264f('0x45')]);return _0x2389f9[_0x264f('0x4f')](_0x2b99a4);}})[_0x264f('0x22')](function(_0x1ba844){if(_0x1ba844){_0x47a8bd=_0x1ba844[_0x264f('0x32')];if(!_0x15e884[_0x264f('0x2d')][_0x264f('0x33')](_0x264f('0x34'))){_0x2b99a4[_0x264f('0x1c')]=qs[_0x264f('0x1c')](_0x15e884[_0x264f('0x2d')][_0x264f('0x1c')]);_0x2b99a4[_0x264f('0x1e')]=qs[_0x264f('0x1e')](_0x15e884[_0x264f('0x2d')][_0x264f('0x1e')]);}return _0x2389f9['getTags'](_0x2b99a4);}})['then'](function(_0x3ef9d4){if(_0x3ef9d4){return _0x3ef9d4?{'count':_0x47a8bd,'rows':_0x3ef9d4}:null;}})['then'](respondWithResult(_0x46555b,null))[_0x264f('0x41')](handleError(_0x46555b,null));};exports['setTags']=function(_0xf11bf5,_0x2f4c07,_0x59b300){if(_0xf11bf5[_0x264f('0x47')]['id']){delete _0xf11bf5[_0x264f('0x47')]['id'];}return db['FreshdeskConfiguration']['findOne']({'where':{'id':_0xf11bf5[_0x264f('0x49')]['id']}})['then'](handleEntityNotFound(_0x2f4c07,null))[_0x264f('0x22')](function(_0x1352ce){if(_0x1352ce){return _0x1352ce[_0x264f('0x51')](_0xf11bf5[_0x264f('0x47')][_0x264f('0x52')]||[]);}return null;})[_0x264f('0x22')](respondWithResult(_0x2f4c07,null))[_0x264f('0x41')](handleError(_0x2f4c07,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x54f0=['rimraf','../../config/environment','exports','define','FreshdeskConfiguration','int_freshdesk_configurations','lodash','util','../../config/logger','api','moment','bluebird','path'];(function(_0x59ee6f,_0x450239){var _0x4c0979=function(_0x565e92){while(--_0x565e92){_0x59ee6f['push'](_0x59ee6f['shift']());}};_0x4c0979(++_0x450239);}(_0x54f0,0xfd));var _0x054f=function(_0x266de2,_0x480cb5){_0x266de2=_0x266de2-0x0;var _0xe93032=_0x54f0[_0x266de2];return _0xe93032;};'use strict';var _=require(_0x054f('0x0'));var util=require(_0x054f('0x1'));var logger=require(_0x054f('0x2'))(_0x054f('0x3'));var moment=require(_0x054f('0x4'));var BPromise=require(_0x054f('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x054f('0x6'));var rimraf=require(_0x054f('0x7'));var config=require(_0x054f('0x8'));var attributes=require('./intFreshdeskConfiguration.attributes');module[_0x054f('0x9')]=function(_0x1b9b0d,_0x3e610f){return _0x1b9b0d[_0x054f('0xa')](_0x054f('0xb'),attributes,{'tableName':_0x054f('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x27c6=['int_freshdesk_configurations','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','./intFreshdeskConfiguration.attributes','exports','FreshdeskConfiguration'];(function(_0x24711d,_0xbbca94){var _0x3c31e9=function(_0x1a096e){while(--_0x1a096e){_0x24711d['push'](_0x24711d['shift']());}};_0x3c31e9(++_0xbbca94);}(_0x27c6,0xe5));var _0x627c=function(_0x53042a,_0x36cc4d){_0x53042a=_0x53042a-0x0;var _0x321b5f=_0x27c6[_0x53042a];return _0x321b5f;};'use strict';var _=require(_0x627c('0x0'));var util=require(_0x627c('0x1'));var logger=require(_0x627c('0x2'))(_0x627c('0x3'));var moment=require(_0x627c('0x4'));var BPromise=require(_0x627c('0x5'));var rp=require(_0x627c('0x6'));var fs=require('fs');var path=require(_0x627c('0x7'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0x627c('0x8'));module[_0x627c('0x9')]=function(_0x4b8f7c,_0x3dd01b){return _0x4b8f7c['define'](_0x627c('0xa'),attributes,{'tableName':_0x627c('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x60d1=['catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','request','then','info','FreshdeskConfiguration,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result'];(function(_0x5d8e69,_0x249fa7){var _0x3df31b=function(_0x31a15f){while(--_0x31a15f){_0x5d8e69['push'](_0x5d8e69['shift']());}};_0x3df31b(++_0x249fa7);}(_0x60d1,0x178));var _0x160d=function(_0x2bd997,_0x31c648){_0x2bd997=_0x2bd997-0x0;var _0x5b3b21=_0x60d1[_0x2bd997];return _0x5b3b21;};'use strict';var _=require(_0x160d('0x0'));var util=require(_0x160d('0x1'));var moment=require(_0x160d('0x2'));var BPromise=require(_0x160d('0x3'));var rs=require(_0x160d('0x4'));var fs=require('fs');var Redis=require(_0x160d('0x5'));var db=require(_0x160d('0x6'))['db'];var utils=require(_0x160d('0x7'));var logger=require(_0x160d('0x8'))('rpc');var config=require(_0x160d('0x9'));var jayson=require(_0x160d('0xa'));var client=jayson[_0x160d('0xb')][_0x160d('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x5df0c1,_0x469c59,_0x546baa){return new BPromise(function(_0x14ba68,_0x1d3690){return client[_0x160d('0xd')](_0x5df0c1,_0x546baa)[_0x160d('0xe')](function(_0x20a496){logger[_0x160d('0xf')](_0x160d('0x10'),_0x469c59,_0x160d('0x11'));logger[_0x160d('0x12')]('FreshdeskConfiguration,\x20%s,\x20%s,\x20%s',_0x469c59,'request\x20sent',JSON[_0x160d('0x13')](_0x20a496));if(_0x20a496[_0x160d('0x14')]){if(_0x20a496['error'][_0x160d('0x15')]===0x1f4){logger['error'](_0x160d('0x10'),_0x469c59,_0x20a496[_0x160d('0x14')][_0x160d('0x16')]);return _0x1d3690(_0x20a496[_0x160d('0x14')][_0x160d('0x16')]);}logger[_0x160d('0x14')](_0x160d('0x10'),_0x469c59,_0x20a496[_0x160d('0x14')][_0x160d('0x16')]);return _0x14ba68(_0x20a496['error'][_0x160d('0x16')]);}else{logger[_0x160d('0xf')](_0x160d('0x10'),_0x469c59,_0x160d('0x11'));_0x14ba68(_0x20a496[_0x160d('0x17')]['message']);}})[_0x160d('0x18')](function(_0x36e1a2){logger[_0x160d('0x14')](_0x160d('0x10'),_0x469c59,_0x36e1a2);_0x1d3690(_0x36e1a2);});});}
\ No newline at end of file
+var _0x04be=['FreshdeskConfiguration,\x20%s,\x20%s','request\x20sent','debug','FreshdeskConfiguration,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','../../config/environment','client','request','then','info'];(function(_0x28d31d,_0x57a4e6){var _0x2df7c1=function(_0x52601d){while(--_0x52601d){_0x28d31d['push'](_0x28d31d['shift']());}};_0x2df7c1(++_0x57a4e6);}(_0x04be,0x163));var _0xe04b=function(_0x3154d8,_0x27d25e){_0x3154d8=_0x3154d8-0x0;var _0x46ec84=_0x04be[_0x3154d8];return _0x46ec84;};'use strict';var _=require(_0xe04b('0x0'));var util=require(_0xe04b('0x1'));var moment=require(_0xe04b('0x2'));var BPromise=require(_0xe04b('0x3'));var rs=require(_0xe04b('0x4'));var fs=require('fs');var Redis=require(_0xe04b('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0xe04b('0x6'));var logger=require(_0xe04b('0x7'))('rpc');var config=require(_0xe04b('0x8'));var jayson=require('jayson/promise');var client=jayson[_0xe04b('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x37bde4,_0x1e5e84,_0x29821b){return new BPromise(function(_0x5b1559,_0x629876){return client[_0xe04b('0xa')](_0x37bde4,_0x29821b)[_0xe04b('0xb')](function(_0x5a0cb8){logger[_0xe04b('0xc')](_0xe04b('0xd'),_0x1e5e84,_0xe04b('0xe'));logger[_0xe04b('0xf')](_0xe04b('0x10'),_0x1e5e84,_0xe04b('0xe'),JSON[_0xe04b('0x11')](_0x5a0cb8));if(_0x5a0cb8[_0xe04b('0x12')]){if(_0x5a0cb8[_0xe04b('0x12')][_0xe04b('0x13')]===0x1f4){logger[_0xe04b('0x12')](_0xe04b('0xd'),_0x1e5e84,_0x5a0cb8[_0xe04b('0x12')][_0xe04b('0x14')]);return _0x629876(_0x5a0cb8[_0xe04b('0x12')][_0xe04b('0x14')]);}logger['error'](_0xe04b('0xd'),_0x1e5e84,_0x5a0cb8[_0xe04b('0x12')][_0xe04b('0x14')]);return _0x5b1559(_0x5a0cb8[_0xe04b('0x12')][_0xe04b('0x14')]);}else{logger[_0xe04b('0xc')](_0xe04b('0xd'),_0x1e5e84,_0xe04b('0xe'));_0x5b1559(_0x5a0cb8[_0xe04b('0x15')][_0xe04b('0x14')]);}})[_0xe04b('0x16')](function(_0x4b0c7f){logger['error'](_0xe04b('0xd'),_0x1e5e84,_0x4b0c7f);_0x629876(_0x4b0c7f);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x44b6=['Router','fs-extra','./intFreshdeskField.controller','get','isAuthenticated','index','show','post','create','put','/:id','delete','exports','multer','path','express'];(function(_0x45530b,_0x556430){var _0x3c1652=function(_0x4f95e0){while(--_0x4f95e0){_0x45530b['push'](_0x45530b['shift']());}};_0x3c1652(++_0x556430);}(_0x44b6,0x1ed));var _0x644b=function(_0x5c082a,_0x19ac27){_0x5c082a=_0x5c082a-0x0;var _0x3b60ac=_0x44b6[_0x5c082a];return _0x3b60ac;};'use strict';var multer=require(_0x644b('0x0'));var util=require('util');var path=require(_0x644b('0x1'));var timeout=require('connect-timeout');var express=require(_0x644b('0x2'));var router=express[_0x644b('0x3')]();var fs_extra=require(_0x644b('0x4'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0x644b('0x5'));router[_0x644b('0x6')]('/',auth[_0x644b('0x7')](),controller[_0x644b('0x8')]);router[_0x644b('0x6')]('/:id',auth[_0x644b('0x7')](),controller[_0x644b('0x9')]);router[_0x644b('0xa')]('/',auth[_0x644b('0x7')](),controller[_0x644b('0xb')]);router[_0x644b('0xc')](_0x644b('0xd'),auth[_0x644b('0x7')](),controller['update']);router[_0x644b('0xe')](_0x644b('0xd'),auth[_0x644b('0x7')](),controller['destroy']);module[_0x644b('0xf')]=router;
\ No newline at end of file
+var _0x639c=['delete','destroy','exports','util','path','connect-timeout','Router','../../components/interaction/service','../../config/environment','get','isAuthenticated','/:id','show','post','create','put','update'];(function(_0x334fe1,_0x1494b4){var _0x2e20bd=function(_0x3169e7){while(--_0x3169e7){_0x334fe1['push'](_0x334fe1['shift']());}};_0x2e20bd(++_0x1494b4);}(_0x639c,0x9c));var _0xc639=function(_0x283fe6,_0x12604c){_0x283fe6=_0x283fe6-0x0;var _0xd8998=_0x639c[_0x283fe6];return _0xd8998;};'use strict';var multer=require('multer');var util=require(_0xc639('0x0'));var path=require(_0xc639('0x1'));var timeout=require(_0xc639('0x2'));var express=require('express');var router=express[_0xc639('0x3')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0xc639('0x4'));var config=require(_0xc639('0x5'));var controller=require('./intFreshdeskField.controller');router[_0xc639('0x6')]('/',auth[_0xc639('0x7')](),controller['index']);router['get'](_0xc639('0x8'),auth[_0xc639('0x7')](),controller[_0xc639('0x9')]);router[_0xc639('0xa')]('/',auth[_0xc639('0x7')](),controller[_0xc639('0xb')]);router[_0xc639('0xc')]('/:id',auth[_0xc639('0x7')](),controller[_0xc639('0xd')]);router[_0xc639('0xe')](_0xc639('0x8'),auth['isAuthenticated'](),controller[_0xc639('0xf')]);module[_0xc639('0x10')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x15e5=['ENUM','BOOLEAN','exports','variable','customVariable','keyValue','picklist','string','STRING'];(function(_0x151ab8,_0x23baf9){var _0x2af2cb=function(_0x57c7b5){while(--_0x57c7b5){_0x151ab8['push'](_0x151ab8['shift']());}};_0x2af2cb(++_0x23baf9);}(_0x15e5,0xd1));var _0x515e=function(_0x344e9d,_0xe345ed){_0x344e9d=_0x344e9d-0x0;var _0x103519=_0x15e5[_0x344e9d];return _0x103519;};'use strict';var Sequelize=require('sequelize');module[_0x515e('0x0')]={'type':{'type':Sequelize['ENUM']('string',_0x515e('0x1'),_0x515e('0x2'),_0x515e('0x3'),_0x515e('0x4')),'defaultValue':_0x515e('0x5')},'content':{'type':Sequelize['STRING']},'key':{'type':Sequelize[_0x515e('0x6')]},'keyType':{'type':Sequelize[_0x515e('0x7')](_0x515e('0x5'),_0x515e('0x1'),_0x515e('0x2'))},'keyContent':{'type':Sequelize[_0x515e('0x6')]},'idField':{'type':Sequelize[_0x515e('0x6')]},'nameField':{'type':Sequelize[_0x515e('0x6')]},'customField':{'type':Sequelize[_0x515e('0x8')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0x515e('0x6')]}};
\ No newline at end of file
+var _0xcbb6=['picklist','string','STRING','BOOLEAN','sequelize','exports','ENUM','variable','customVariable'];(function(_0x410197,_0x458037){var _0x5e614a=function(_0x5d4538){while(--_0x5d4538){_0x410197['push'](_0x410197['shift']());}};_0x5e614a(++_0x458037);}(_0xcbb6,0x109));var _0x6cbb=function(_0xa464c9,_0x7c86d8){_0xa464c9=_0xa464c9-0x0;var _0x3d73c4=_0xcbb6[_0xa464c9];return _0x3d73c4;};'use strict';var Sequelize=require(_0x6cbb('0x0'));module[_0x6cbb('0x1')]={'type':{'type':Sequelize[_0x6cbb('0x2')]('string',_0x6cbb('0x3'),_0x6cbb('0x4'),'keyValue',_0x6cbb('0x5')),'defaultValue':_0x6cbb('0x6')},'content':{'type':Sequelize['STRING']},'key':{'type':Sequelize[_0x6cbb('0x7')]},'keyType':{'type':Sequelize['ENUM'](_0x6cbb('0x6'),_0x6cbb('0x3'),_0x6cbb('0x4'))},'keyContent':{'type':Sequelize[_0x6cbb('0x7')]},'idField':{'type':Sequelize[_0x6cbb('0x7')]},'nameField':{'type':Sequelize['STRING']},'customField':{'type':Sequelize[_0x6cbb('0x8')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0x6cbb('0x7')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6308=['path','ejs','lodash','squel','crypto','jsforce','desk.js','to-csv','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','end','status','undefined','count','offset','limit','set','Content-Range','apply','update','then','destroy','error','stack','name','send','index','FreshdeskField','rawAttributes','fieldName','key','model','map','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filter','type','merge','options','includeAll','include','findAll','catch','show','params','find','create','body','eml-format','zip-dir','moment','bluebird','mustache','util'];(function(_0x1b3892,_0x418dc2){var _0x2ba023=function(_0x4d0e1d){while(--_0x4d0e1d){_0x1b3892['push'](_0x1b3892['shift']());}};_0x2ba023(++_0x418dc2);}(_0x6308,0x1f2));var _0x8630=function(_0x3ff085,_0x27c92e){_0x3ff085=_0x3ff085-0x0;var _0x2b68c3=_0x6308[_0x3ff085];return _0x2b68c3;};'use strict';var emlformat=require(_0x8630('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x8630('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x8630('0x2'));var BPromise=require(_0x8630('0x3'));var Mustache=require(_0x8630('0x4'));var util=require(_0x8630('0x5'));var path=require(_0x8630('0x6'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x8630('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x8630('0x8'));var squel=require(_0x8630('0x9'));var crypto=require(_0x8630('0xa'));var jsforce=require(_0x8630('0xb'));var deskjs=require(_0x8630('0xc'));var toCsv=require(_0x8630('0xd'));var querystring=require('querystring');var Papa=require(_0x8630('0xe'));var Redis=require('ioredis');var authService=require(_0x8630('0xf'));var qs=require(_0x8630('0x10'));var as=require(_0x8630('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x8630('0x12'))(_0x8630('0x13'));var utils=require(_0x8630('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0x8630('0x15'));var db=require(_0x8630('0x16'))['db'];function respondWithStatusCode(_0x5b6d75,_0x54073b){_0x54073b=_0x54073b||0xcc;return function(_0x303e3a){if(_0x303e3a){return _0x5b6d75[_0x8630('0x17')](_0x54073b);}return _0x5b6d75['status'](_0x54073b)[_0x8630('0x18')]();};}function respondWithResult(_0x4db686,_0xf31c17){_0xf31c17=_0xf31c17||0xc8;return function(_0x4cc542){if(_0x4cc542){return _0x4db686[_0x8630('0x19')](_0xf31c17)['json'](_0x4cc542);}};}function respondWithFilteredResult(_0x53f236,_0x29a42d){return function(_0x86c262){if(_0x86c262){var _0x49fce1=typeof _0x29a42d['offset']===_0x8630('0x1a')&&typeof _0x29a42d['limit']===_0x8630('0x1a');var _0x18a874=_0x86c262[_0x8630('0x1b')];var _0x20f462=_0x49fce1?0x0:_0x29a42d[_0x8630('0x1c')];var _0x1e9780=_0x49fce1?_0x86c262[_0x8630('0x1b')]:_0x29a42d[_0x8630('0x1c')]+_0x29a42d[_0x8630('0x1d')];var _0x5dd2e0;if(_0x1e9780>=_0x18a874){_0x1e9780=_0x18a874;_0x5dd2e0=0xc8;}else{_0x5dd2e0=0xce;}_0x53f236['status'](_0x5dd2e0);return _0x53f236[_0x8630('0x1e')](_0x8630('0x1f'),_0x20f462+'-'+_0x1e9780+'/'+_0x18a874)['json'](_0x86c262);}return null;};}function patchUpdates(_0x5cff5c){return function(_0x1325dc){try{jsonpatch[_0x8630('0x20')](_0x1325dc,_0x5cff5c,!![]);}catch(_0x1ac046){return BPromise['reject'](_0x1ac046);}return _0x1325dc['save']();};}function saveUpdates(_0xcc7454,_0x58c0b5){return function(_0x30fb4d){if(_0x30fb4d){return _0x30fb4d[_0x8630('0x21')](_0xcc7454)[_0x8630('0x22')](function(_0x469de3){return _0x469de3;});}return null;};}function removeEntity(_0x4c2851,_0x37c224){return function(_0xf24c11){if(_0xf24c11){return _0xf24c11[_0x8630('0x23')]()[_0x8630('0x22')](function(){_0x4c2851[_0x8630('0x19')](0xcc)[_0x8630('0x18')]();});}};}function handleEntityNotFound(_0x37b7aa,_0x5c0a22){return function(_0x5b2823){if(!_0x5b2823){_0x37b7aa[_0x8630('0x17')](0x194);}return _0x5b2823;};}function handleError(_0x41b79d,_0x439b33){_0x439b33=_0x439b33||0x1f4;return function(_0xf97e31){logger[_0x8630('0x24')](_0xf97e31[_0x8630('0x25')]);if(_0xf97e31[_0x8630('0x26')]){delete _0xf97e31[_0x8630('0x26')];}_0x41b79d[_0x8630('0x19')](_0x439b33)[_0x8630('0x27')](_0xf97e31);};}exports[_0x8630('0x28')]=function(_0x41f74c,_0xc18164){var _0x4285ee={},_0xbb1a58={},_0x190216={'count':0x0,'rows':[]};var _0x2d3f0b=_['map'](db[_0x8630('0x29')][_0x8630('0x2a')],function(_0x24d85d){return{'name':_0x24d85d[_0x8630('0x2b')],'type':_0x24d85d['type'][_0x8630('0x2c')]};});_0xbb1a58[_0x8630('0x2d')]=_[_0x8630('0x2e')](_0x2d3f0b,_0x8630('0x26'));_0xbb1a58[_0x8630('0x2f')]=_[_0x8630('0x30')](_0x41f74c['query']);_0xbb1a58[_0x8630('0x31')]=_[_0x8630('0x32')](_0xbb1a58[_0x8630('0x2d')],_0xbb1a58['query']);_0x4285ee[_0x8630('0x33')]=_[_0x8630('0x32')](_0xbb1a58[_0x8630('0x2d')],qs[_0x8630('0x34')](_0x41f74c[_0x8630('0x2f')][_0x8630('0x34')]));_0x4285ee['attributes']=_0x4285ee[_0x8630('0x33')][_0x8630('0x35')]?_0x4285ee[_0x8630('0x33')]:_0xbb1a58[_0x8630('0x2d')];if(!_0x41f74c[_0x8630('0x2f')][_0x8630('0x36')](_0x8630('0x37'))){_0x4285ee[_0x8630('0x1d')]=qs[_0x8630('0x1d')](_0x41f74c[_0x8630('0x2f')][_0x8630('0x1d')]);_0x4285ee[_0x8630('0x1c')]=qs[_0x8630('0x1c')](_0x41f74c[_0x8630('0x2f')][_0x8630('0x1c')]);}_0x4285ee[_0x8630('0x38')]=qs[_0x8630('0x39')](_0x41f74c['query'][_0x8630('0x39')]);_0x4285ee[_0x8630('0x3a')]=qs['filters'](_['pick'](_0x41f74c[_0x8630('0x2f')],_0xbb1a58[_0x8630('0x31')]),_0x2d3f0b);if(_0x41f74c[_0x8630('0x2f')][_0x8630('0x3b')]){_0x4285ee[_0x8630('0x3a')]=_['merge'](_0x4285ee[_0x8630('0x3a')],{'$or':_[_0x8630('0x2e')](_0x2d3f0b,function(_0x38ee10){if(_0x38ee10[_0x8630('0x3c')]!=='VIRTUAL'){var _0xac2876={};_0xac2876[_0x38ee10[_0x8630('0x26')]]={'$like':'%'+_0x41f74c[_0x8630('0x2f')][_0x8630('0x3b')]+'%'};return _0xac2876;}})});}_0x4285ee=_[_0x8630('0x3d')]({},_0x4285ee,_0x41f74c[_0x8630('0x3e')]);var _0x2fbb8c={'where':_0x4285ee['where']};return db[_0x8630('0x29')][_0x8630('0x1b')](_0x2fbb8c)[_0x8630('0x22')](function(_0xe3f392){_0x190216[_0x8630('0x1b')]=_0xe3f392;if(_0x41f74c[_0x8630('0x2f')][_0x8630('0x3f')]){_0x4285ee[_0x8630('0x40')]=[{'all':!![]}];}return db[_0x8630('0x29')][_0x8630('0x41')](_0x4285ee);})['then'](function(_0x358431){_0x190216['rows']=_0x358431;return _0x190216;})[_0x8630('0x22')](respondWithFilteredResult(_0xc18164,_0x4285ee))[_0x8630('0x42')](handleError(_0xc18164,null));};exports[_0x8630('0x43')]=function(_0x7c3dc5,_0x193bae){var _0x2f1fec={'raw':!![],'where':{'id':_0x7c3dc5[_0x8630('0x44')]['id']}},_0x5bcf39={};_0x5bcf39[_0x8630('0x2d')]=_[_0x8630('0x30')](db['FreshdeskField'][_0x8630('0x2a')]);_0x5bcf39[_0x8630('0x2f')]=_[_0x8630('0x30')](_0x7c3dc5[_0x8630('0x2f')]);_0x5bcf39[_0x8630('0x31')]=_[_0x8630('0x32')](_0x5bcf39['model'],_0x5bcf39[_0x8630('0x2f')]);_0x2f1fec[_0x8630('0x33')]=_[_0x8630('0x32')](_0x5bcf39['model'],qs[_0x8630('0x34')](_0x7c3dc5[_0x8630('0x2f')]['fields']));_0x2f1fec[_0x8630('0x33')]=_0x2f1fec[_0x8630('0x33')][_0x8630('0x35')]?_0x2f1fec['attributes']:_0x5bcf39['model'];if(_0x7c3dc5[_0x8630('0x2f')]['includeAll']){_0x2f1fec['include']=[{'all':!![]}];}_0x2f1fec=_[_0x8630('0x3d')]({},_0x2f1fec,_0x7c3dc5['options']);return db[_0x8630('0x29')][_0x8630('0x45')](_0x2f1fec)['then'](handleEntityNotFound(_0x193bae,null))[_0x8630('0x22')](respondWithResult(_0x193bae,null))[_0x8630('0x42')](handleError(_0x193bae,null));};exports[_0x8630('0x46')]=function(_0x5d8149,_0x121e83){return db['FreshdeskField'][_0x8630('0x46')](_0x5d8149[_0x8630('0x47')],{})['then'](respondWithResult(_0x121e83,0xc9))[_0x8630('0x42')](handleError(_0x121e83,null));};exports[_0x8630('0x21')]=function(_0x3ff20b,_0x47aa03){if(_0x3ff20b[_0x8630('0x47')]['id']){delete _0x3ff20b[_0x8630('0x47')]['id'];}return db[_0x8630('0x29')][_0x8630('0x45')]({'where':{'id':_0x3ff20b[_0x8630('0x44')]['id']}})[_0x8630('0x22')](handleEntityNotFound(_0x47aa03,null))[_0x8630('0x22')](saveUpdates(_0x3ff20b[_0x8630('0x47')],null))[_0x8630('0x22')](respondWithResult(_0x47aa03,null))['catch'](handleError(_0x47aa03,null));};exports['destroy']=function(_0x1b8328,_0x13326d){return db[_0x8630('0x29')][_0x8630('0x45')]({'where':{'id':_0x1b8328[_0x8630('0x44')]['id']}})[_0x8630('0x22')](handleEntityNotFound(_0x13326d,null))[_0x8630('0x22')](removeEntity(_0x13326d,null))['catch'](handleError(_0x13326d,null));};
\ No newline at end of file
+var _0xf290=['body','update','destroy','rimraf','fast-json-patch','moment','bluebird','mustache','util','path','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','undefined','limit','count','set','Content-Range','apply','then','error','send','index','map','rawAttributes','type','key','model','keys','intersection','query','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','filters','merge','name','filter','FreshdeskField','includeAll','findAll','catch','show','params','include','options','find','create'];(function(_0x314e2e,_0x25ddeb){var _0x1067aa=function(_0x4f834a){while(--_0x4f834a){_0x314e2e['push'](_0x314e2e['shift']());}};_0x1067aa(++_0x25ddeb);}(_0xf290,0xde));var _0x0f29=function(_0x38af48,_0x400460){_0x38af48=_0x38af48-0x0;var _0x445384=_0xf290[_0x38af48];return _0x445384;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x0f29('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x0f29('0x1'));var rp=require('request-promise');var moment=require(_0x0f29('0x2'));var BPromise=require(_0x0f29('0x3'));var Mustache=require(_0x0f29('0x4'));var util=require(_0x0f29('0x5'));var path=require(_0x0f29('0x6'));var sox=require('sox');var csv=require(_0x0f29('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x0f29('0x8'));var _=require(_0x0f29('0x9'));var squel=require(_0x0f29('0xa'));var crypto=require(_0x0f29('0xb'));var jsforce=require(_0x0f29('0xc'));var deskjs=require(_0x0f29('0xd'));var toCsv=require(_0x0f29('0x7'));var querystring=require(_0x0f29('0xe'));var Papa=require(_0x0f29('0xf'));var Redis=require(_0x0f29('0x10'));var authService=require(_0x0f29('0x11'));var qs=require(_0x0f29('0x12'));var as=require(_0x0f29('0x13'));var hardwareService=require(_0x0f29('0x14'));var logger=require(_0x0f29('0x15'))('api');var utils=require(_0x0f29('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x0f29('0x17'));var db=require(_0x0f29('0x18'))['db'];function respondWithStatusCode(_0x26bbec,_0x222c42){_0x222c42=_0x222c42||0xcc;return function(_0x195424){if(_0x195424){return _0x26bbec[_0x0f29('0x19')](_0x222c42);}return _0x26bbec['status'](_0x222c42)[_0x0f29('0x1a')]();};}function respondWithResult(_0x39961f,_0x2bb7b8){_0x2bb7b8=_0x2bb7b8||0xc8;return function(_0x368984){if(_0x368984){return _0x39961f[_0x0f29('0x1b')](_0x2bb7b8)[_0x0f29('0x1c')](_0x368984);}};}function respondWithFilteredResult(_0x1c518,_0x69df36){return function(_0x547404){if(_0x547404){var _0x4ac37d=typeof _0x69df36[_0x0f29('0x1d')]===_0x0f29('0x1e')&&typeof _0x69df36[_0x0f29('0x1f')]===_0x0f29('0x1e');var _0x4b3f0b=_0x547404[_0x0f29('0x20')];var _0x5d72a5=_0x4ac37d?0x0:_0x69df36[_0x0f29('0x1d')];var _0x4ca5e8=_0x4ac37d?_0x547404['count']:_0x69df36['offset']+_0x69df36[_0x0f29('0x1f')];var _0x8fc03f;if(_0x4ca5e8>=_0x4b3f0b){_0x4ca5e8=_0x4b3f0b;_0x8fc03f=0xc8;}else{_0x8fc03f=0xce;}_0x1c518[_0x0f29('0x1b')](_0x8fc03f);return _0x1c518[_0x0f29('0x21')](_0x0f29('0x22'),_0x5d72a5+'-'+_0x4ca5e8+'/'+_0x4b3f0b)[_0x0f29('0x1c')](_0x547404);}return null;};}function patchUpdates(_0x150271){return function(_0x4888b6){try{jsonpatch[_0x0f29('0x23')](_0x4888b6,_0x150271,!![]);}catch(_0x5a5a03){return BPromise['reject'](_0x5a5a03);}return _0x4888b6['save']();};}function saveUpdates(_0x5d94b9,_0x38a1ce){return function(_0x4a9dd8){if(_0x4a9dd8){return _0x4a9dd8['update'](_0x5d94b9)[_0x0f29('0x24')](function(_0x1840e0){return _0x1840e0;});}return null;};}function removeEntity(_0x346db8,_0x3402dc){return function(_0x29ca73){if(_0x29ca73){return _0x29ca73['destroy']()[_0x0f29('0x24')](function(){_0x346db8['status'](0xcc)[_0x0f29('0x1a')]();});}};}function handleEntityNotFound(_0x26f46f,_0x23c09e){return function(_0x28cfaa){if(!_0x28cfaa){_0x26f46f['sendStatus'](0x194);}return _0x28cfaa;};}function handleError(_0x13a2c7,_0x540d72){_0x540d72=_0x540d72||0x1f4;return function(_0x58b201){logger[_0x0f29('0x25')](_0x58b201['stack']);if(_0x58b201['name']){delete _0x58b201['name'];}_0x13a2c7['status'](_0x540d72)[_0x0f29('0x26')](_0x58b201);};}exports[_0x0f29('0x27')]=function(_0x4cc5a0,_0x1fc4fd){var _0x2ab528={},_0x274c9d={},_0x51e7dc={'count':0x0,'rows':[]};var _0x56e729=_[_0x0f29('0x28')](db['FreshdeskField'][_0x0f29('0x29')],function(_0x561c31){return{'name':_0x561c31['fieldName'],'type':_0x561c31[_0x0f29('0x2a')][_0x0f29('0x2b')]};});_0x274c9d[_0x0f29('0x2c')]=_[_0x0f29('0x28')](_0x56e729,'name');_0x274c9d['query']=_[_0x0f29('0x2d')](_0x4cc5a0['query']);_0x274c9d['filters']=_[_0x0f29('0x2e')](_0x274c9d['model'],_0x274c9d[_0x0f29('0x2f')]);_0x2ab528['attributes']=_['intersection'](_0x274c9d[_0x0f29('0x2c')],qs[_0x0f29('0x30')](_0x4cc5a0[_0x0f29('0x2f')][_0x0f29('0x30')]));_0x2ab528[_0x0f29('0x31')]=_0x2ab528['attributes'][_0x0f29('0x32')]?_0x2ab528['attributes']:_0x274c9d[_0x0f29('0x2c')];if(!_0x4cc5a0[_0x0f29('0x2f')][_0x0f29('0x33')](_0x0f29('0x34'))){_0x2ab528['limit']=qs[_0x0f29('0x1f')](_0x4cc5a0[_0x0f29('0x2f')]['limit']);_0x2ab528[_0x0f29('0x1d')]=qs[_0x0f29('0x1d')](_0x4cc5a0['query']['offset']);}_0x2ab528[_0x0f29('0x35')]=qs[_0x0f29('0x36')](_0x4cc5a0[_0x0f29('0x2f')][_0x0f29('0x36')]);_0x2ab528[_0x0f29('0x37')]=qs[_0x0f29('0x38')](_['pick'](_0x4cc5a0[_0x0f29('0x2f')],_0x274c9d['filters']),_0x56e729);if(_0x4cc5a0[_0x0f29('0x2f')]['filter']){_0x2ab528[_0x0f29('0x37')]=_[_0x0f29('0x39')](_0x2ab528[_0x0f29('0x37')],{'$or':_['map'](_0x56e729,function(_0x5f0d26){if(_0x5f0d26[_0x0f29('0x2a')]!=='VIRTUAL'){var _0x312c07={};_0x312c07[_0x5f0d26[_0x0f29('0x3a')]]={'$like':'%'+_0x4cc5a0[_0x0f29('0x2f')][_0x0f29('0x3b')]+'%'};return _0x312c07;}})});}_0x2ab528=_[_0x0f29('0x39')]({},_0x2ab528,_0x4cc5a0['options']);var _0x13c05c={'where':_0x2ab528[_0x0f29('0x37')]};return db[_0x0f29('0x3c')][_0x0f29('0x20')](_0x13c05c)[_0x0f29('0x24')](function(_0x4043d9){_0x51e7dc[_0x0f29('0x20')]=_0x4043d9;if(_0x4cc5a0[_0x0f29('0x2f')][_0x0f29('0x3d')]){_0x2ab528['include']=[{'all':!![]}];}return db[_0x0f29('0x3c')][_0x0f29('0x3e')](_0x2ab528);})[_0x0f29('0x24')](function(_0x11b1dc){_0x51e7dc['rows']=_0x11b1dc;return _0x51e7dc;})[_0x0f29('0x24')](respondWithFilteredResult(_0x1fc4fd,_0x2ab528))[_0x0f29('0x3f')](handleError(_0x1fc4fd,null));};exports[_0x0f29('0x40')]=function(_0x5c2282,_0x185493){var _0x56062d={'raw':!![],'where':{'id':_0x5c2282[_0x0f29('0x41')]['id']}},_0x410c59={};_0x410c59[_0x0f29('0x2c')]=_['keys'](db[_0x0f29('0x3c')][_0x0f29('0x29')]);_0x410c59[_0x0f29('0x2f')]=_[_0x0f29('0x2d')](_0x5c2282[_0x0f29('0x2f')]);_0x410c59[_0x0f29('0x38')]=_[_0x0f29('0x2e')](_0x410c59[_0x0f29('0x2c')],_0x410c59['query']);_0x56062d['attributes']=_['intersection'](_0x410c59[_0x0f29('0x2c')],qs[_0x0f29('0x30')](_0x5c2282[_0x0f29('0x2f')][_0x0f29('0x30')]));_0x56062d[_0x0f29('0x31')]=_0x56062d[_0x0f29('0x31')]['length']?_0x56062d[_0x0f29('0x31')]:_0x410c59['model'];if(_0x5c2282[_0x0f29('0x2f')]['includeAll']){_0x56062d[_0x0f29('0x42')]=[{'all':!![]}];}_0x56062d=_[_0x0f29('0x39')]({},_0x56062d,_0x5c2282[_0x0f29('0x43')]);return db[_0x0f29('0x3c')][_0x0f29('0x44')](_0x56062d)['then'](handleEntityNotFound(_0x185493,null))[_0x0f29('0x24')](respondWithResult(_0x185493,null))[_0x0f29('0x3f')](handleError(_0x185493,null));};exports[_0x0f29('0x45')]=function(_0x5a05b6,_0x14b747){return db['FreshdeskField']['create'](_0x5a05b6[_0x0f29('0x46')],{})[_0x0f29('0x24')](respondWithResult(_0x14b747,0xc9))[_0x0f29('0x3f')](handleError(_0x14b747,null));};exports[_0x0f29('0x47')]=function(_0x20aa53,_0x335435){if(_0x20aa53['body']['id']){delete _0x20aa53[_0x0f29('0x46')]['id'];}return db[_0x0f29('0x3c')][_0x0f29('0x44')]({'where':{'id':_0x20aa53[_0x0f29('0x41')]['id']}})[_0x0f29('0x24')](handleEntityNotFound(_0x335435,null))[_0x0f29('0x24')](saveUpdates(_0x20aa53[_0x0f29('0x46')],null))[_0x0f29('0x24')](respondWithResult(_0x335435,null))[_0x0f29('0x3f')](handleError(_0x335435,null));};exports[_0x0f29('0x48')]=function(_0x5cd4a9,_0x5e4479){return db[_0x0f29('0x3c')][_0x0f29('0x44')]({'where':{'id':_0x5cd4a9[_0x0f29('0x41')]['id']}})[_0x0f29('0x24')](handleEntityNotFound(_0x5e4479,null))['then'](removeEntity(_0x5e4479,null))[_0x0f29('0x3f')](handleError(_0x5e4479,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7aa2=['./intFreshdeskField.attributes','define','FreshdeskField','int_freshdesk_fields','freshdesk_unique_index','FieldId','lodash','util','../../config/logger','api','moment','bluebird','request-promise','rimraf','../../config/environment'];(function(_0x183256,_0x1a596d){var _0x5394a2=function(_0x192025){while(--_0x192025){_0x183256['push'](_0x183256['shift']());}};_0x5394a2(++_0x1a596d);}(_0x7aa2,0x132));var _0x27aa=function(_0x487a0b,_0x33c302){_0x487a0b=_0x487a0b-0x0;var _0x4cb1ba=_0x7aa2[_0x487a0b];return _0x4cb1ba;};'use strict';var _=require(_0x27aa('0x0'));var util=require(_0x27aa('0x1'));var logger=require(_0x27aa('0x2'))(_0x27aa('0x3'));var moment=require(_0x27aa('0x4'));var BPromise=require(_0x27aa('0x5'));var rp=require(_0x27aa('0x6'));var fs=require('fs');var path=require('path');var rimraf=require(_0x27aa('0x7'));var config=require(_0x27aa('0x8'));var attributes=require(_0x27aa('0x9'));module['exports']=function(_0x2eb905,_0x29fcb7){return _0x2eb905[_0x27aa('0xa')](_0x27aa('0xb'),attributes,{'tableName':_0x27aa('0xc'),'paranoid':![],'indexes':[{'name':_0x27aa('0xd'),'fields':['idField',_0x27aa('0xe')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xf7df=['moment','bluebird','path','../../config/environment','./intFreshdeskField.attributes','FreshdeskField','int_freshdesk_fields','freshdesk_unique_index','idField','FieldId','lodash','../../config/logger','api'];(function(_0x216d45,_0x4989fe){var _0xbaac0b=function(_0x308a41){while(--_0x308a41){_0x216d45['push'](_0x216d45['shift']());}};_0xbaac0b(++_0x4989fe);}(_0xf7df,0x10e));var _0xff7d=function(_0x1ed498,_0x5c19c9){_0x1ed498=_0x1ed498-0x0;var _0x5d8415=_0xf7df[_0x1ed498];return _0x5d8415;};'use strict';var _=require(_0xff7d('0x0'));var util=require('util');var logger=require(_0xff7d('0x1'))(_0xff7d('0x2'));var moment=require(_0xff7d('0x3'));var BPromise=require(_0xff7d('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xff7d('0x5'));var rimraf=require('rimraf');var config=require(_0xff7d('0x6'));var attributes=require(_0xff7d('0x7'));module['exports']=function(_0x758bfb,_0x54644b){return _0x758bfb['define'](_0xff7d('0x8'),attributes,{'tableName':_0xff7d('0x9'),'paranoid':![],'indexes':[{'name':_0xff7d('0xa'),'fields':[_0xff7d('0xb'),_0xff7d('0xc')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2abd=['then','info','FreshdeskField,\x20%s,\x20%s','FreshdeskField,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','catch','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','client','request'];(function(_0x57d725,_0x3cb1a4){var _0x4e927c=function(_0x46da0c){while(--_0x46da0c){_0x57d725['push'](_0x57d725['shift']());}};_0x4e927c(++_0x3cb1a4);}(_0x2abd,0x1d8));var _0xd2ab=function(_0x263a74,_0xc31414){_0x263a74=_0x263a74-0x0;var _0x2aa86c=_0x2abd[_0x263a74];return _0x2aa86c;};'use strict';var _=require(_0xd2ab('0x0'));var util=require('util');var moment=require(_0xd2ab('0x1'));var BPromise=require(_0xd2ab('0x2'));var rs=require(_0xd2ab('0x3'));var fs=require('fs');var Redis=require(_0xd2ab('0x4'));var db=require(_0xd2ab('0x5'))['db'];var utils=require(_0xd2ab('0x6'));var logger=require(_0xd2ab('0x7'))(_0xd2ab('0x8'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0xd2ab('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x55a928,_0x4408af,_0x8bcfa0){return new BPromise(function(_0x5503c3,_0x25d079){return client[_0xd2ab('0xa')](_0x55a928,_0x8bcfa0)[_0xd2ab('0xb')](function(_0x2a4a51){logger[_0xd2ab('0xc')](_0xd2ab('0xd'),_0x4408af,'request\x20sent');logger['debug'](_0xd2ab('0xe'),_0x4408af,_0xd2ab('0xf'),JSON[_0xd2ab('0x10')](_0x2a4a51));if(_0x2a4a51[_0xd2ab('0x11')]){if(_0x2a4a51[_0xd2ab('0x11')][_0xd2ab('0x12')]===0x1f4){logger['error']('FreshdeskField,\x20%s,\x20%s',_0x4408af,_0x2a4a51[_0xd2ab('0x11')][_0xd2ab('0x13')]);return _0x25d079(_0x2a4a51[_0xd2ab('0x11')][_0xd2ab('0x13')]);}logger['error'](_0xd2ab('0xd'),_0x4408af,_0x2a4a51[_0xd2ab('0x11')]['message']);return _0x5503c3(_0x2a4a51[_0xd2ab('0x11')]['message']);}else{logger[_0xd2ab('0xc')](_0xd2ab('0xd'),_0x4408af,_0xd2ab('0xf'));_0x5503c3(_0x2a4a51['result'][_0xd2ab('0x13')]);}})[_0xd2ab('0x14')](function(_0x1dd51c){logger[_0xd2ab('0x11')](_0xd2ab('0xd'),_0x4408af,_0x1dd51c);_0x25d079(_0x1dd51c);});});}
\ No newline at end of file
+var _0x5b33=['../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','FreshdeskField,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','lodash','util','bluebird','randomstring','ioredis','../../mysqldb'];(function(_0x2c138f,_0x2fedd8){var _0x30063d=function(_0x29b439){while(--_0x29b439){_0x2c138f['push'](_0x2c138f['shift']());}};_0x30063d(++_0x2fedd8);}(_0x5b33,0xe0));var _0x35b3=function(_0x1e9912,_0x50f826){_0x1e9912=_0x1e9912-0x0;var _0x193d70=_0x5b33[_0x1e9912];return _0x193d70;};'use strict';var _=require(_0x35b3('0x0'));var util=require(_0x35b3('0x1'));var moment=require('moment');var BPromise=require(_0x35b3('0x2'));var rs=require(_0x35b3('0x3'));var fs=require('fs');var Redis=require(_0x35b3('0x4'));var db=require(_0x35b3('0x5'))['db'];var utils=require(_0x35b3('0x6'));var logger=require(_0x35b3('0x7'))(_0x35b3('0x8'));var config=require(_0x35b3('0x9'));var jayson=require(_0x35b3('0xa'));var client=jayson[_0x35b3('0xb')][_0x35b3('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x1e8bf0,_0x39f66b,_0x4b7430){return new BPromise(function(_0x585626,_0x534cdc){return client[_0x35b3('0xd')](_0x1e8bf0,_0x4b7430)[_0x35b3('0xe')](function(_0x404e79){logger[_0x35b3('0xf')](_0x35b3('0x10'),_0x39f66b,_0x35b3('0x11'));logger['debug']('FreshdeskField,\x20%s,\x20%s,\x20%s',_0x39f66b,'request\x20sent',JSON[_0x35b3('0x12')](_0x404e79));if(_0x404e79[_0x35b3('0x13')]){if(_0x404e79['error'][_0x35b3('0x14')]===0x1f4){logger['error'](_0x35b3('0x10'),_0x39f66b,_0x404e79[_0x35b3('0x13')][_0x35b3('0x15')]);return _0x534cdc(_0x404e79[_0x35b3('0x13')][_0x35b3('0x15')]);}logger[_0x35b3('0x13')]('FreshdeskField,\x20%s,\x20%s',_0x39f66b,_0x404e79[_0x35b3('0x13')][_0x35b3('0x15')]);return _0x585626(_0x404e79[_0x35b3('0x13')]['message']);}else{logger['info'](_0x35b3('0x10'),_0x39f66b,_0x35b3('0x11'));_0x585626(_0x404e79[_0x35b3('0x16')][_0x35b3('0x15')]);}})['catch'](function(_0x2bd4b1){logger[_0x35b3('0x13')]('FreshdeskField,\x20%s,\x20%s',_0x39f66b,_0x2bd4b1);_0x534cdc(_0x2bd4b1);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x34b7=['getFields','post','create','/:id/configurations','addConfiguration','put','update','delete','destroy','exports','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','./intFreshsalesAccount.controller','get','isAuthenticated','index','/:id','show'];(function(_0x2aea9e,_0x1f587f){var _0x430b92=function(_0x416c37){while(--_0x416c37){_0x2aea9e['push'](_0x2aea9e['shift']());}};_0x430b92(++_0x1f587f);}(_0x34b7,0x196));var _0x734b=function(_0x23bc85,_0x19addc){_0x23bc85=_0x23bc85-0x0;var _0x177dfd=_0x34b7[_0x23bc85];return _0x177dfd;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x734b('0x0'));var timeout=require(_0x734b('0x1'));var express=require(_0x734b('0x2'));var router=express[_0x734b('0x3')]();var fs_extra=require(_0x734b('0x4'));var auth=require(_0x734b('0x5'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0x734b('0x6'));router[_0x734b('0x7')]('/',auth[_0x734b('0x8')](),controller[_0x734b('0x9')]);router[_0x734b('0x7')](_0x734b('0xa'),auth['isAuthenticated'](),controller[_0x734b('0xb')]);router[_0x734b('0x7')]('/:id/configurations',auth['isAuthenticated'](),controller['getConfigurations']);router[_0x734b('0x7')]('/:id/fields',auth[_0x734b('0x8')](),controller[_0x734b('0xc')]);router[_0x734b('0xd')]('/',auth[_0x734b('0x8')](),controller[_0x734b('0xe')]);router[_0x734b('0xd')](_0x734b('0xf'),auth[_0x734b('0x8')](),controller[_0x734b('0x10')]);router[_0x734b('0x11')](_0x734b('0xa'),auth[_0x734b('0x8')](),controller[_0x734b('0x12')]);router[_0x734b('0x13')]('/:id',auth[_0x734b('0x8')](),controller[_0x734b('0x14')]);module[_0x734b('0x15')]=router;
\ No newline at end of file
+var _0x84a0=['isAuthenticated','index','get','/:id','/:id/configurations','getConfigurations','getFields','post','create','addConfiguration','put','update','delete','exports','multer','util','path','connect-timeout','Router','fs-extra','../../config/environment','./intFreshsalesAccount.controller'];(function(_0x19950b,_0x53d0d7){var _0x3c6b41=function(_0x3924ad){while(--_0x3924ad){_0x19950b['push'](_0x19950b['shift']());}};_0x3c6b41(++_0x53d0d7);}(_0x84a0,0x66));var _0x084a=function(_0x2d531d,_0x3623e8){_0x2d531d=_0x2d531d-0x0;var _0x1defe3=_0x84a0[_0x2d531d];return _0x1defe3;};'use strict';var multer=require(_0x084a('0x0'));var util=require(_0x084a('0x1'));var path=require(_0x084a('0x2'));var timeout=require(_0x084a('0x3'));var express=require('express');var router=express[_0x084a('0x4')]();var fs_extra=require(_0x084a('0x5'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x084a('0x6'));var controller=require(_0x084a('0x7'));router['get']('/',auth[_0x084a('0x8')](),controller[_0x084a('0x9')]);router[_0x084a('0xa')](_0x084a('0xb'),auth[_0x084a('0x8')](),controller['show']);router[_0x084a('0xa')](_0x084a('0xc'),auth[_0x084a('0x8')](),controller[_0x084a('0xd')]);router[_0x084a('0xa')]('/:id/fields',auth['isAuthenticated'](),controller[_0x084a('0xe')]);router[_0x084a('0xf')]('/',auth[_0x084a('0x8')](),controller[_0x084a('0x10')]);router[_0x084a('0xf')]('/:id/configurations',auth['isAuthenticated'](),controller[_0x084a('0x11')]);router[_0x084a('0x12')](_0x084a('0xb'),auth[_0x084a('0x8')](),controller[_0x084a('0x13')]);router[_0x084a('0x14')](_0x084a('0xb'),auth[_0x084a('0x8')](),controller['destroy']);module[_0x084a('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5b12=['STRING','sequelize','exports'];(function(_0x2e4aa2,_0x11956a){var _0x5e6092=function(_0x4c12c2){while(--_0x4c12c2){_0x2e4aa2['push'](_0x2e4aa2['shift']());}};_0x5e6092(++_0x11956a);}(_0x5b12,0xa3));var _0x25b1=function(_0x143209,_0x4b24aa){_0x143209=_0x143209-0x0;var _0x314f24=_0x5b12[_0x143209];return _0x314f24;};'use strict';var Sequelize=require(_0x25b1('0x0'));module[_0x25b1('0x1')]={'name':{'type':Sequelize[_0x25b1('0x2')]},'description':{'type':Sequelize['STRING']},'username':{'type':Sequelize[_0x25b1('0x2')],'unique':'username'},'apiKey':{'type':Sequelize[_0x25b1('0x2')]},'remoteUri':{'type':Sequelize[_0x25b1('0x2')],'unique':'remoteUri'},'serverUrl':{'type':Sequelize[_0x25b1('0x2')],'allowNull':![]}};
\ No newline at end of file
+var _0x958a=['sequelize','exports','STRING','username'];(function(_0x22b68a,_0x2bffc3){var _0x1ac67a=function(_0x25f9d5){while(--_0x25f9d5){_0x22b68a['push'](_0x22b68a['shift']());}};_0x1ac67a(++_0x2bffc3);}(_0x958a,0x128));var _0xa958=function(_0x12522f,_0x4fd8e5){_0x12522f=_0x12522f-0x0;var _0x2dea82=_0x958a[_0x12522f];return _0x2dea82;};'use strict';var Sequelize=require(_0xa958('0x0'));module[_0xa958('0x1')]={'name':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0xa958('0x2')]},'username':{'type':Sequelize[_0xa958('0x2')],'unique':_0xa958('0x3')},'apiKey':{'type':Sequelize[_0xa958('0x2')]},'remoteUri':{'type':Sequelize[_0xa958('0x2')],'unique':'remoteUri'},'serverUrl':{'type':Sequelize[_0xa958('0x2')],'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6264=['desk.js','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','api','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','end','offset','undefined','count','set','Content-Range','json','apply','reject','update','destroy','then','error','name','send','index','map','FreshsalesAccount','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','nolimit','limit','sort','where','pick','filter','merge','options','include','findAll','rows','catch','show','params','find','create','body','FreshsalesConfiguration','order','getConfigurations','addConfiguration','findOne','AccountId','getSubjects','Descriptions','getDescriptions','channel','FreshsalesField','getFields','remoteUri','apiKey','slice','substring','lastIndexOf','GET','%s%s','/api/selector/owners','Token\x20token=','email','test','getFields,\x20%s,\x20%s,\x20%s','stringify','Wrong\x20credentials','statusCode','rimraf','zip-dir','moment','mustache','util','path','ejs','fs-extra','lodash','squel','crypto','jsforce'];(function(_0x525940,_0x29fbe9){var _0xfccf08=function(_0x133945){while(--_0x133945){_0x525940['push'](_0x525940['shift']());}};_0xfccf08(++_0x29fbe9);}(_0x6264,0x1e3));var _0x4626=function(_0x1f703a,_0x3031b7){_0x1f703a=_0x1f703a-0x0;var _0xd7b7e1=_0x6264[_0x1f703a];return _0xd7b7e1;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x4626('0x0'));var zipdir=require(_0x4626('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x4626('0x2'));var BPromise=require('bluebird');var Mustache=require(_0x4626('0x3'));var util=require(_0x4626('0x4'));var path=require(_0x4626('0x5'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x4626('0x6'));var fs=require('fs');var fs_extra=require(_0x4626('0x7'));var _=require(_0x4626('0x8'));var squel=require(_0x4626('0x9'));var crypto=require(_0x4626('0xa'));var jsforce=require(_0x4626('0xb'));var deskjs=require(_0x4626('0xc'));var toCsv=require(_0x4626('0xd'));var querystring=require(_0x4626('0xe'));var Papa=require('papaparse');var Redis=require(_0x4626('0xf'));var authService=require(_0x4626('0x10'));var qs=require(_0x4626('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x4626('0x12'));var utils=require('../../config/utils');var config=require(_0x4626('0x13'));var licenseUtil=require(_0x4626('0x14'));var db=require(_0x4626('0x15'))['db'];var integrations=require(_0x4626('0x16'));function respondWithStatusCode(_0xac373a,_0x2d12fc){_0x2d12fc=_0x2d12fc||0xcc;return function(_0x10f659){if(_0x10f659){return _0xac373a[_0x4626('0x17')](_0x2d12fc);}return _0xac373a[_0x4626('0x18')](_0x2d12fc)[_0x4626('0x19')]();};}function respondWithResult(_0x267116,_0x6faa53){_0x6faa53=_0x6faa53||0xc8;return function(_0x25d036){if(_0x25d036){return _0x267116[_0x4626('0x18')](_0x6faa53)['json'](_0x25d036);}};}function respondWithFilteredResult(_0x52147d,_0x1eeac9){return function(_0x546002){if(_0x546002){var _0xeb1159=typeof _0x1eeac9[_0x4626('0x1a')]===_0x4626('0x1b')&&typeof _0x1eeac9['limit']===_0x4626('0x1b');var _0x2ee232=_0x546002[_0x4626('0x1c')];var _0x50647f=_0xeb1159?0x0:_0x1eeac9['offset'];var _0xf20ccd=_0xeb1159?_0x546002[_0x4626('0x1c')]:_0x1eeac9[_0x4626('0x1a')]+_0x1eeac9['limit'];var _0x310c9e;if(_0xf20ccd>=_0x2ee232){_0xf20ccd=_0x2ee232;_0x310c9e=0xc8;}else{_0x310c9e=0xce;}_0x52147d[_0x4626('0x18')](_0x310c9e);return _0x52147d[_0x4626('0x1d')](_0x4626('0x1e'),_0x50647f+'-'+_0xf20ccd+'/'+_0x2ee232)[_0x4626('0x1f')](_0x546002);}return null;};}function patchUpdates(_0x10d7f2){return function(_0x37195f){try{jsonpatch[_0x4626('0x20')](_0x37195f,_0x10d7f2,!![]);}catch(_0x1b0f5c){return BPromise[_0x4626('0x21')](_0x1b0f5c);}return _0x37195f['save']();};}function saveUpdates(_0x5a893e,_0x3b5ff9){return function(_0x295bbf){if(_0x295bbf){return _0x295bbf[_0x4626('0x22')](_0x5a893e)['then'](function(_0x4ee398){return _0x4ee398;});}return null;};}function removeEntity(_0x3eea97,_0x531e5f){return function(_0x2d3e6d){if(_0x2d3e6d){return _0x2d3e6d[_0x4626('0x23')]()[_0x4626('0x24')](function(){_0x3eea97[_0x4626('0x18')](0xcc)[_0x4626('0x19')]();});}};}function handleEntityNotFound(_0x3c1127,_0x41fa5b){return function(_0x23ed18){if(!_0x23ed18){_0x3c1127[_0x4626('0x17')](0x194);}return _0x23ed18;};}function handleError(_0x3aaa98,_0x99d22e){_0x99d22e=_0x99d22e||0x1f4;return function(_0xb67987){logger[_0x4626('0x25')](_0xb67987['stack']);if(_0xb67987['name']){delete _0xb67987[_0x4626('0x26')];}_0x3aaa98[_0x4626('0x18')](_0x99d22e)[_0x4626('0x27')](_0xb67987);};}exports[_0x4626('0x28')]=function(_0x32d3f2,_0x1b8f1d){var _0x5e496f={},_0x5c6650={},_0x4ceb96={'count':0x0,'rows':[]};var _0x39ac84=_[_0x4626('0x29')](db[_0x4626('0x2a')][_0x4626('0x2b')],function(_0x430df9){return{'name':_0x430df9[_0x4626('0x2c')],'type':_0x430df9[_0x4626('0x2d')][_0x4626('0x2e')]};});_0x5c6650[_0x4626('0x2f')]=_[_0x4626('0x29')](_0x39ac84,_0x4626('0x26'));_0x5c6650[_0x4626('0x30')]=_[_0x4626('0x31')](_0x32d3f2['query']);_0x5c6650[_0x4626('0x32')]=_[_0x4626('0x33')](_0x5c6650[_0x4626('0x2f')],_0x5c6650[_0x4626('0x30')]);_0x5e496f[_0x4626('0x34')]=_[_0x4626('0x33')](_0x5c6650[_0x4626('0x2f')],qs[_0x4626('0x35')](_0x32d3f2['query']['fields']));_0x5e496f[_0x4626('0x34')]=_0x5e496f[_0x4626('0x34')][_0x4626('0x36')]?_0x5e496f[_0x4626('0x34')]:_0x5c6650['model'];if(!_0x32d3f2[_0x4626('0x30')]['hasOwnProperty'](_0x4626('0x37'))){_0x5e496f['limit']=qs[_0x4626('0x38')](_0x32d3f2[_0x4626('0x30')][_0x4626('0x38')]);_0x5e496f[_0x4626('0x1a')]=qs[_0x4626('0x1a')](_0x32d3f2[_0x4626('0x30')]['offset']);}_0x5e496f['order']=qs['sort'](_0x32d3f2['query'][_0x4626('0x39')]);_0x5e496f[_0x4626('0x3a')]=qs['filters'](_[_0x4626('0x3b')](_0x32d3f2['query'],_0x5c6650[_0x4626('0x32')]),_0x39ac84);if(_0x32d3f2[_0x4626('0x30')][_0x4626('0x3c')]){_0x5e496f[_0x4626('0x3a')]=_[_0x4626('0x3d')](_0x5e496f[_0x4626('0x3a')],{'$or':_[_0x4626('0x29')](_0x39ac84,function(_0x50b904){if(_0x50b904[_0x4626('0x2d')]!=='VIRTUAL'){var _0x49490c={};_0x49490c[_0x50b904[_0x4626('0x26')]]={'$like':'%'+_0x32d3f2[_0x4626('0x30')]['filter']+'%'};return _0x49490c;}})});}_0x5e496f=_[_0x4626('0x3d')]({},_0x5e496f,_0x32d3f2[_0x4626('0x3e')]);var _0x1650b9={'where':_0x5e496f[_0x4626('0x3a')]};return db[_0x4626('0x2a')][_0x4626('0x1c')](_0x1650b9)['then'](function(_0x51fac2){_0x4ceb96[_0x4626('0x1c')]=_0x51fac2;if(_0x32d3f2[_0x4626('0x30')]['includeAll']){_0x5e496f[_0x4626('0x3f')]=[{'all':!![]}];}return db[_0x4626('0x2a')][_0x4626('0x40')](_0x5e496f);})['then'](function(_0x500aad){_0x4ceb96[_0x4626('0x41')]=_0x500aad;return _0x4ceb96;})['then'](respondWithFilteredResult(_0x1b8f1d,_0x5e496f))[_0x4626('0x42')](handleError(_0x1b8f1d,null));};exports[_0x4626('0x43')]=function(_0x48eef1,_0x3c86e7){var _0x20ea00={'raw':![],'where':{'id':_0x48eef1[_0x4626('0x44')]['id']}},_0x4ea95a={};_0x4ea95a['model']=_['keys'](db[_0x4626('0x2a')][_0x4626('0x2b')]);_0x4ea95a[_0x4626('0x30')]=_[_0x4626('0x31')](_0x48eef1[_0x4626('0x30')]);_0x4ea95a[_0x4626('0x32')]=_[_0x4626('0x33')](_0x4ea95a[_0x4626('0x2f')],_0x4ea95a['query']);_0x20ea00['attributes']=_[_0x4626('0x33')](_0x4ea95a[_0x4626('0x2f')],qs['fields'](_0x48eef1['query'][_0x4626('0x35')]));_0x20ea00['attributes']=_0x20ea00['attributes'][_0x4626('0x36')]?_0x20ea00['attributes']:_0x4ea95a[_0x4626('0x2f')];if(_0x48eef1[_0x4626('0x30')]['includeAll']){_0x20ea00['include']=[{'all':!![]}];}_0x20ea00=_[_0x4626('0x3d')]({},_0x20ea00,_0x48eef1[_0x4626('0x3e')]);return db[_0x4626('0x2a')][_0x4626('0x45')](_0x20ea00)[_0x4626('0x24')](handleEntityNotFound(_0x3c86e7,null))[_0x4626('0x24')](respondWithResult(_0x3c86e7,null))[_0x4626('0x42')](handleError(_0x3c86e7,null));};exports['create']=function(_0x480333,_0x1f2510){return db[_0x4626('0x2a')][_0x4626('0x46')](_0x480333[_0x4626('0x47')],{})['then'](respondWithResult(_0x1f2510,0xc9))['catch'](handleError(_0x1f2510,null));};exports[_0x4626('0x22')]=function(_0x572ad7,_0x36f21e){if(_0x572ad7[_0x4626('0x47')]['id']){delete _0x572ad7[_0x4626('0x47')]['id'];}return db[_0x4626('0x2a')]['find']({'where':{'id':_0x572ad7[_0x4626('0x44')]['id']}})[_0x4626('0x24')](handleEntityNotFound(_0x36f21e,null))[_0x4626('0x24')](saveUpdates(_0x572ad7[_0x4626('0x47')],null))['then'](respondWithResult(_0x36f21e,null))[_0x4626('0x42')](handleError(_0x36f21e,null));};exports[_0x4626('0x23')]=function(_0x27c77a,_0x2b462d){return db['FreshsalesAccount'][_0x4626('0x45')]({'where':{'id':_0x27c77a['params']['id']}})['then'](handleEntityNotFound(_0x2b462d,null))['then'](removeEntity(_0x2b462d,null))[_0x4626('0x42')](handleError(_0x2b462d,null));};exports['getConfigurations']=function(_0x534f68,_0x249820,_0x26f23e){var _0x2f1436={};var _0xf68972={};var _0x5e7c6d;var _0x4e157d;return db[_0x4626('0x2a')]['findOne']({'where':{'id':_0x534f68[_0x4626('0x44')]['id']}})['then'](handleEntityNotFound(_0x249820,null))[_0x4626('0x24')](function(_0x105c30){if(_0x105c30){_0x5e7c6d=_0x105c30;_0xf68972[_0x4626('0x2f')]=_[_0x4626('0x31')](db[_0x4626('0x48')]['rawAttributes']);_0xf68972[_0x4626('0x30')]=_[_0x4626('0x31')](_0x534f68[_0x4626('0x30')]);_0xf68972[_0x4626('0x32')]=_['intersection'](_0xf68972[_0x4626('0x2f')],_0xf68972['query']);_0x2f1436[_0x4626('0x34')]=_['intersection'](_0xf68972[_0x4626('0x2f')],qs[_0x4626('0x35')](_0x534f68['query'][_0x4626('0x35')]));_0x2f1436[_0x4626('0x34')]=_0x2f1436[_0x4626('0x34')][_0x4626('0x36')]?_0x2f1436[_0x4626('0x34')]:_0xf68972[_0x4626('0x2f')];_0x2f1436[_0x4626('0x49')]=qs[_0x4626('0x39')](_0x534f68[_0x4626('0x30')][_0x4626('0x39')]);_0x2f1436[_0x4626('0x3a')]=qs['filters'](_[_0x4626('0x3b')](_0x534f68[_0x4626('0x30')],_0xf68972[_0x4626('0x32')]));if(_0x534f68[_0x4626('0x30')]['filter']){_0x2f1436['where']=_[_0x4626('0x3d')](_0x2f1436[_0x4626('0x3a')],{'$or':_[_0x4626('0x29')](_0x2f1436[_0x4626('0x34')],function(_0x17edd0){var _0x5b8ce8={};_0x5b8ce8[_0x17edd0]={'$like':'%'+_0x534f68[_0x4626('0x30')][_0x4626('0x3c')]+'%'};return _0x5b8ce8;})});}_0x2f1436=_[_0x4626('0x3d')]({},_0x2f1436,_0x534f68['options']);return _0x5e7c6d['getConfigurations'](_0x2f1436);}})['then'](function(_0x5b446d){if(_0x5b446d){_0x4e157d=_0x5b446d[_0x4626('0x36')];if(!_0x534f68[_0x4626('0x30')]['hasOwnProperty']('nolimit')){_0x2f1436['limit']=qs[_0x4626('0x38')](_0x534f68[_0x4626('0x30')][_0x4626('0x38')]);_0x2f1436[_0x4626('0x1a')]=qs[_0x4626('0x1a')](_0x534f68[_0x4626('0x30')][_0x4626('0x1a')]);}return _0x5e7c6d[_0x4626('0x4a')](_0x2f1436);}})['then'](function(_0xb638e1){if(_0xb638e1){return _0xb638e1?{'count':_0x4e157d,'rows':_0xb638e1}:null;}})['then'](respondWithResult(_0x249820,null))[_0x4626('0x42')](handleError(_0x249820,null));};exports[_0x4626('0x4b')]=function(_0x4764ac,_0xf0e266,_0x28e9fd){if(_0x4764ac[_0x4626('0x47')]['id']){delete _0x4764ac[_0x4626('0x47')]['id'];}return db[_0x4626('0x2a')][_0x4626('0x4c')]({'where':{'id':_0x4764ac[_0x4626('0x44')]['id']}})[_0x4626('0x24')](handleEntityNotFound(_0xf0e266,null))[_0x4626('0x24')](function(_0x2859f8){if(_0x2859f8){_0x4764ac[_0x4626('0x47')][_0x4626('0x4d')]=_0x2859f8['id'];_0x4764ac[_0x4626('0x47')]['Subjects']=integrations[_0x4626('0x4e')](_0x4764ac['body']['channel'],_0x4764ac[_0x4626('0x47')][_0x4626('0x2d')]);_0x4764ac[_0x4626('0x47')][_0x4626('0x4f')]=integrations[_0x4626('0x50')](_0x4764ac[_0x4626('0x47')][_0x4626('0x51')],_0x4764ac[_0x4626('0x47')][_0x4626('0x2d')]);return db[_0x4626('0x48')][_0x4626('0x46')](_0x4764ac[_0x4626('0x47')],{'include':[{'model':db[_0x4626('0x52')],'as':'Subjects'},{'model':db[_0x4626('0x52')],'as':'Descriptions'}]});}return null;})[_0x4626('0x24')](respondWithResult(_0xf0e266,null))[_0x4626('0x42')](handleError(_0xf0e266,null));};exports[_0x4626('0x53')]=function(_0x1d1686,_0x182f59,_0x84492a){var _0x53e2de='';var _0x258e17='';return db['FreshsalesAccount'][_0x4626('0x4c')]({'where':{'id':_0x1d1686[_0x4626('0x44')]['id']},'attributes':['id','username',_0x4626('0x54'),_0x4626('0x55')]})['then'](handleEntityNotFound(_0x182f59,null))[_0x4626('0x24')](function(_0x418df1){if(_0x418df1){_0x258e17=_0x418df1['username'];_0x53e2de=_0x418df1[_0x4626('0x54')];var _0x2108ac=_0x418df1['remoteUri'][_0x4626('0x56')](-0x1);if(_0x2108ac==='/'){_0x53e2de=_0x53e2de[_0x4626('0x57')](0x0,_0x53e2de[_0x4626('0x58')](_0x2108ac));}return rp({'method':_0x4626('0x59'),'uri':util['format'](_0x4626('0x5a'),_0x53e2de,_0x4626('0x5b')),'headers':{'Authorization':_0x4626('0x5c')+_0x418df1[_0x4626('0x55')]},'json':!![]});}})['then'](function(_0xd88bf0){if(_0xd88bf0){var _0xae231e=_0xd88bf0['users'];var _0x4d1086=![];var _0x255294=null;for(_0x255294=0x0;_0x255294<_0xae231e[_0x4626('0x36')];_0x255294++){if(_0xae231e[_0x255294][_0x4626('0x5d')]===_0x258e17){_0x4d1086=!![];}}if(_0x4d1086){return!![];}else{throw new Error({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}}})[_0x4626('0x24')](respondWithResult(_0x182f59,null))[_0x4626('0x42')](function(_0x32d066){var _0x18e3da=_0x1d1686[_0x4626('0x30')][_0x4626('0x5e')]?0x1f4:_0x32d066['statusCode']||0x1f4;logger[_0x4626('0x25')](_0x4626('0x5f'),_0x4626('0x53'),_0x18e3da,JSON[_0x4626('0x60')](_0x32d066));delete _0x32d066[_0x4626('0x26')];if(_0x18e3da===0x191){_0x18e3da=0x190;}_0x182f59[_0x4626('0x18')](_0x18e3da)['send'](_0x1d1686['query']['test']?{'message':_0x4626('0x61'),'statusCode':_0x32d066[_0x4626('0x62')]}:_0x32d066);});};
\ No newline at end of file
+var _0x28a6=['../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','limit','count','set','json','reject','save','destroy','then','error','name','send','index','map','FreshsalesAccount','fieldName','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','type','merge','options','findAll','rows','show','params','rawAttributes','includeAll','include','catch','create','body','update','find','findOne','order','getConfigurations','AccountId','Subjects','getSubjects','channel','getDescriptions','FreshsalesField','Descriptions','username','apiKey','remoteUri','slice','lastIndexOf','GET','format','%s%s','/api/selector/owners','Token\x20token=','users','email','Requested\x20Resource\x20not\x20Found','getFields,\x20%s,\x20%s,\x20%s','getFields','test','statusCode','eml-format','rimraf','fast-json-patch','request-promise','bluebird','path','sox','to-csv','fs-extra','lodash','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/advancedSearch'];(function(_0x40a045,_0x516f0e){var _0x1a687c=function(_0x48c9fe){while(--_0x48c9fe){_0x40a045['push'](_0x40a045['shift']());}};_0x1a687c(++_0x516f0e);}(_0x28a6,0xb8));var _0x628a=function(_0x4697fa,_0x21c841){_0x4697fa=_0x4697fa-0x0;var _0x390950=_0x28a6[_0x4697fa];return _0x390950;};'use strict';var emlformat=require(_0x628a('0x0'));var rimraf=require(_0x628a('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x628a('0x2'));var rp=require(_0x628a('0x3'));var moment=require('moment');var BPromise=require(_0x628a('0x4'));var Mustache=require('mustache');var util=require('util');var path=require(_0x628a('0x5'));var sox=require(_0x628a('0x6'));var csv=require(_0x628a('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x628a('0x8'));var _=require(_0x628a('0x9'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x628a('0xa'));var deskjs=require(_0x628a('0xb'));var toCsv=require(_0x628a('0x7'));var querystring=require(_0x628a('0xc'));var Papa=require(_0x628a('0xd'));var Redis=require('ioredis');var authService=require(_0x628a('0xe'));var qs=require('../../components/parsers/qs');var as=require(_0x628a('0xf'));var hardwareService=require(_0x628a('0x10'));var logger=require(_0x628a('0x11'))(_0x628a('0x12'));var utils=require(_0x628a('0x13'));var config=require(_0x628a('0x14'));var licenseUtil=require(_0x628a('0x15'));var db=require(_0x628a('0x16'))['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x508cb6,_0x38c50a){_0x38c50a=_0x38c50a||0xcc;return function(_0x10b21c){if(_0x10b21c){return _0x508cb6[_0x628a('0x17')](_0x38c50a);}return _0x508cb6[_0x628a('0x18')](_0x38c50a)[_0x628a('0x19')]();};}function respondWithResult(_0x40700c,_0x476721){_0x476721=_0x476721||0xc8;return function(_0x5defd5){if(_0x5defd5){return _0x40700c[_0x628a('0x18')](_0x476721)['json'](_0x5defd5);}};}function respondWithFilteredResult(_0x4f0345,_0x4a962c){return function(_0x1cb7f3){if(_0x1cb7f3){var _0x3ecc8f=typeof _0x4a962c[_0x628a('0x1a')]===_0x628a('0x1b')&&typeof _0x4a962c[_0x628a('0x1c')]===_0x628a('0x1b');var _0x188c1c=_0x1cb7f3[_0x628a('0x1d')];var _0x4aa9d7=_0x3ecc8f?0x0:_0x4a962c['offset'];var _0x56ef52=_0x3ecc8f?_0x1cb7f3[_0x628a('0x1d')]:_0x4a962c['offset']+_0x4a962c[_0x628a('0x1c')];var _0xc67ffb;if(_0x56ef52>=_0x188c1c){_0x56ef52=_0x188c1c;_0xc67ffb=0xc8;}else{_0xc67ffb=0xce;}_0x4f0345[_0x628a('0x18')](_0xc67ffb);return _0x4f0345[_0x628a('0x1e')]('Content-Range',_0x4aa9d7+'-'+_0x56ef52+'/'+_0x188c1c)[_0x628a('0x1f')](_0x1cb7f3);}return null;};}function patchUpdates(_0x2f4433){return function(_0x3a2f38){try{jsonpatch['apply'](_0x3a2f38,_0x2f4433,!![]);}catch(_0x270cc7){return BPromise[_0x628a('0x20')](_0x270cc7);}return _0x3a2f38[_0x628a('0x21')]();};}function saveUpdates(_0x3122be,_0x2b13ca){return function(_0x3983ac){if(_0x3983ac){return _0x3983ac['update'](_0x3122be)['then'](function(_0x1f6798){return _0x1f6798;});}return null;};}function removeEntity(_0x584a89,_0xc02d1a){return function(_0x3edb98){if(_0x3edb98){return _0x3edb98[_0x628a('0x22')]()[_0x628a('0x23')](function(){_0x584a89[_0x628a('0x18')](0xcc)[_0x628a('0x19')]();});}};}function handleEntityNotFound(_0x2e241b,_0x354d6a){return function(_0x2a637d){if(!_0x2a637d){_0x2e241b['sendStatus'](0x194);}return _0x2a637d;};}function handleError(_0x52277d,_0x3aa49c){_0x3aa49c=_0x3aa49c||0x1f4;return function(_0x573acb){logger[_0x628a('0x24')](_0x573acb['stack']);if(_0x573acb[_0x628a('0x25')]){delete _0x573acb[_0x628a('0x25')];}_0x52277d[_0x628a('0x18')](_0x3aa49c)[_0x628a('0x26')](_0x573acb);};}exports[_0x628a('0x27')]=function(_0x2ab530,_0x1590fe){var _0xff36f7={},_0x234b38={},_0x1b760f={'count':0x0,'rows':[]};var _0x5c8903=_[_0x628a('0x28')](db[_0x628a('0x29')]['rawAttributes'],function(_0x254758){return{'name':_0x254758[_0x628a('0x2a')],'type':_0x254758['type'][_0x628a('0x2b')]};});_0x234b38[_0x628a('0x2c')]=_[_0x628a('0x28')](_0x5c8903,_0x628a('0x25'));_0x234b38[_0x628a('0x2d')]=_[_0x628a('0x2e')](_0x2ab530[_0x628a('0x2d')]);_0x234b38[_0x628a('0x2f')]=_[_0x628a('0x30')](_0x234b38[_0x628a('0x2c')],_0x234b38[_0x628a('0x2d')]);_0xff36f7[_0x628a('0x31')]=_[_0x628a('0x30')](_0x234b38[_0x628a('0x2c')],qs[_0x628a('0x32')](_0x2ab530['query'][_0x628a('0x32')]));_0xff36f7[_0x628a('0x31')]=_0xff36f7[_0x628a('0x31')][_0x628a('0x33')]?_0xff36f7[_0x628a('0x31')]:_0x234b38['model'];if(!_0x2ab530[_0x628a('0x2d')][_0x628a('0x34')](_0x628a('0x35'))){_0xff36f7[_0x628a('0x1c')]=qs[_0x628a('0x1c')](_0x2ab530[_0x628a('0x2d')]['limit']);_0xff36f7['offset']=qs[_0x628a('0x1a')](_0x2ab530[_0x628a('0x2d')][_0x628a('0x1a')]);}_0xff36f7['order']=qs[_0x628a('0x36')](_0x2ab530[_0x628a('0x2d')][_0x628a('0x36')]);_0xff36f7[_0x628a('0x37')]=qs['filters'](_[_0x628a('0x38')](_0x2ab530[_0x628a('0x2d')],_0x234b38[_0x628a('0x2f')]),_0x5c8903);if(_0x2ab530[_0x628a('0x2d')][_0x628a('0x39')]){_0xff36f7['where']=_['merge'](_0xff36f7[_0x628a('0x37')],{'$or':_['map'](_0x5c8903,function(_0x2ff4ee){if(_0x2ff4ee[_0x628a('0x3a')]!=='VIRTUAL'){var _0xc15d95={};_0xc15d95[_0x2ff4ee[_0x628a('0x25')]]={'$like':'%'+_0x2ab530['query'][_0x628a('0x39')]+'%'};return _0xc15d95;}})});}_0xff36f7=_[_0x628a('0x3b')]({},_0xff36f7,_0x2ab530[_0x628a('0x3c')]);var _0x3f3930={'where':_0xff36f7['where']};return db['FreshsalesAccount']['count'](_0x3f3930)[_0x628a('0x23')](function(_0x11d8fc){_0x1b760f[_0x628a('0x1d')]=_0x11d8fc;if(_0x2ab530[_0x628a('0x2d')]['includeAll']){_0xff36f7['include']=[{'all':!![]}];}return db[_0x628a('0x29')][_0x628a('0x3d')](_0xff36f7);})[_0x628a('0x23')](function(_0x36ab18){_0x1b760f[_0x628a('0x3e')]=_0x36ab18;return _0x1b760f;})[_0x628a('0x23')](respondWithFilteredResult(_0x1590fe,_0xff36f7))['catch'](handleError(_0x1590fe,null));};exports[_0x628a('0x3f')]=function(_0x4e6f5d,_0x200bf6){var _0x4eafbc={'raw':![],'where':{'id':_0x4e6f5d[_0x628a('0x40')]['id']}},_0x46ed50={};_0x46ed50['model']=_[_0x628a('0x2e')](db['FreshsalesAccount'][_0x628a('0x41')]);_0x46ed50[_0x628a('0x2d')]=_['keys'](_0x4e6f5d['query']);_0x46ed50[_0x628a('0x2f')]=_[_0x628a('0x30')](_0x46ed50[_0x628a('0x2c')],_0x46ed50[_0x628a('0x2d')]);_0x4eafbc[_0x628a('0x31')]=_[_0x628a('0x30')](_0x46ed50[_0x628a('0x2c')],qs[_0x628a('0x32')](_0x4e6f5d[_0x628a('0x2d')]['fields']));_0x4eafbc['attributes']=_0x4eafbc['attributes'][_0x628a('0x33')]?_0x4eafbc[_0x628a('0x31')]:_0x46ed50[_0x628a('0x2c')];if(_0x4e6f5d[_0x628a('0x2d')][_0x628a('0x42')]){_0x4eafbc[_0x628a('0x43')]=[{'all':!![]}];}_0x4eafbc=_[_0x628a('0x3b')]({},_0x4eafbc,_0x4e6f5d['options']);return db['FreshsalesAccount']['find'](_0x4eafbc)[_0x628a('0x23')](handleEntityNotFound(_0x200bf6,null))['then'](respondWithResult(_0x200bf6,null))[_0x628a('0x44')](handleError(_0x200bf6,null));};exports[_0x628a('0x45')]=function(_0x2e856f,_0x207591){return db[_0x628a('0x29')][_0x628a('0x45')](_0x2e856f[_0x628a('0x46')],{})['then'](respondWithResult(_0x207591,0xc9))['catch'](handleError(_0x207591,null));};exports[_0x628a('0x47')]=function(_0xe77cfd,_0x5f0a08){if(_0xe77cfd[_0x628a('0x46')]['id']){delete _0xe77cfd[_0x628a('0x46')]['id'];}return db[_0x628a('0x29')][_0x628a('0x48')]({'where':{'id':_0xe77cfd[_0x628a('0x40')]['id']}})[_0x628a('0x23')](handleEntityNotFound(_0x5f0a08,null))[_0x628a('0x23')](saveUpdates(_0xe77cfd['body'],null))[_0x628a('0x23')](respondWithResult(_0x5f0a08,null))[_0x628a('0x44')](handleError(_0x5f0a08,null));};exports[_0x628a('0x22')]=function(_0x280c9f,_0x2007b1){return db[_0x628a('0x29')][_0x628a('0x48')]({'where':{'id':_0x280c9f[_0x628a('0x40')]['id']}})[_0x628a('0x23')](handleEntityNotFound(_0x2007b1,null))[_0x628a('0x23')](removeEntity(_0x2007b1,null))['catch'](handleError(_0x2007b1,null));};exports['getConfigurations']=function(_0x11685f,_0x413816,_0xe488e3){var _0x431a02={};var _0x10ac4d={};var _0x5020ec;var _0x3daaaf;return db[_0x628a('0x29')][_0x628a('0x49')]({'where':{'id':_0x11685f[_0x628a('0x40')]['id']}})['then'](handleEntityNotFound(_0x413816,null))['then'](function(_0x45ff95){if(_0x45ff95){_0x5020ec=_0x45ff95;_0x10ac4d[_0x628a('0x2c')]=_[_0x628a('0x2e')](db['FreshsalesConfiguration'][_0x628a('0x41')]);_0x10ac4d[_0x628a('0x2d')]=_[_0x628a('0x2e')](_0x11685f[_0x628a('0x2d')]);_0x10ac4d['filters']=_['intersection'](_0x10ac4d['model'],_0x10ac4d['query']);_0x431a02[_0x628a('0x31')]=_[_0x628a('0x30')](_0x10ac4d[_0x628a('0x2c')],qs[_0x628a('0x32')](_0x11685f[_0x628a('0x2d')][_0x628a('0x32')]));_0x431a02['attributes']=_0x431a02['attributes']['length']?_0x431a02[_0x628a('0x31')]:_0x10ac4d['model'];_0x431a02[_0x628a('0x4a')]=qs[_0x628a('0x36')](_0x11685f[_0x628a('0x2d')][_0x628a('0x36')]);_0x431a02[_0x628a('0x37')]=qs[_0x628a('0x2f')](_[_0x628a('0x38')](_0x11685f[_0x628a('0x2d')],_0x10ac4d['filters']));if(_0x11685f[_0x628a('0x2d')][_0x628a('0x39')]){_0x431a02['where']=_[_0x628a('0x3b')](_0x431a02[_0x628a('0x37')],{'$or':_[_0x628a('0x28')](_0x431a02[_0x628a('0x31')],function(_0x38aeec){var _0x3811e9={};_0x3811e9[_0x38aeec]={'$like':'%'+_0x11685f['query'][_0x628a('0x39')]+'%'};return _0x3811e9;})});}_0x431a02=_[_0x628a('0x3b')]({},_0x431a02,_0x11685f[_0x628a('0x3c')]);return _0x5020ec['getConfigurations'](_0x431a02);}})[_0x628a('0x23')](function(_0x53a340){if(_0x53a340){_0x3daaaf=_0x53a340[_0x628a('0x33')];if(!_0x11685f[_0x628a('0x2d')][_0x628a('0x34')](_0x628a('0x35'))){_0x431a02[_0x628a('0x1c')]=qs[_0x628a('0x1c')](_0x11685f[_0x628a('0x2d')][_0x628a('0x1c')]);_0x431a02['offset']=qs['offset'](_0x11685f[_0x628a('0x2d')][_0x628a('0x1a')]);}return _0x5020ec[_0x628a('0x4b')](_0x431a02);}})['then'](function(_0x5e95af){if(_0x5e95af){return _0x5e95af?{'count':_0x3daaaf,'rows':_0x5e95af}:null;}})[_0x628a('0x23')](respondWithResult(_0x413816,null))['catch'](handleError(_0x413816,null));};exports['addConfiguration']=function(_0x187c9a,_0x45c106,_0x44c88d){if(_0x187c9a[_0x628a('0x46')]['id']){delete _0x187c9a[_0x628a('0x46')]['id'];}return db[_0x628a('0x29')][_0x628a('0x49')]({'where':{'id':_0x187c9a[_0x628a('0x40')]['id']}})[_0x628a('0x23')](handleEntityNotFound(_0x45c106,null))[_0x628a('0x23')](function(_0x257b6e){if(_0x257b6e){_0x187c9a[_0x628a('0x46')][_0x628a('0x4c')]=_0x257b6e['id'];_0x187c9a[_0x628a('0x46')][_0x628a('0x4d')]=integrations[_0x628a('0x4e')](_0x187c9a[_0x628a('0x46')][_0x628a('0x4f')],_0x187c9a['body']['type']);_0x187c9a[_0x628a('0x46')]['Descriptions']=integrations[_0x628a('0x50')](_0x187c9a[_0x628a('0x46')][_0x628a('0x4f')],_0x187c9a['body']['type']);return db['FreshsalesConfiguration'][_0x628a('0x45')](_0x187c9a[_0x628a('0x46')],{'include':[{'model':db[_0x628a('0x51')],'as':'Subjects'},{'model':db[_0x628a('0x51')],'as':_0x628a('0x52')}]});}return null;})[_0x628a('0x23')](respondWithResult(_0x45c106,null))[_0x628a('0x44')](handleError(_0x45c106,null));};exports['getFields']=function(_0x6e99b,_0xe99edd,_0x166f01){var _0xc809e8='';var _0x2d3cbc='';return db[_0x628a('0x29')][_0x628a('0x49')]({'where':{'id':_0x6e99b[_0x628a('0x40')]['id']},'attributes':['id',_0x628a('0x53'),'remoteUri',_0x628a('0x54')]})['then'](handleEntityNotFound(_0xe99edd,null))['then'](function(_0x491bfc){if(_0x491bfc){_0x2d3cbc=_0x491bfc['username'];_0xc809e8=_0x491bfc[_0x628a('0x55')];var _0x427117=_0x491bfc[_0x628a('0x55')][_0x628a('0x56')](-0x1);if(_0x427117==='/'){_0xc809e8=_0xc809e8['substring'](0x0,_0xc809e8[_0x628a('0x57')](_0x427117));}return rp({'method':_0x628a('0x58'),'uri':util[_0x628a('0x59')](_0x628a('0x5a'),_0xc809e8,_0x628a('0x5b')),'headers':{'Authorization':_0x628a('0x5c')+_0x491bfc[_0x628a('0x54')]},'json':!![]});}})['then'](function(_0xec3ad1){if(_0xec3ad1){var _0xf3b74e=_0xec3ad1[_0x628a('0x5d')];var _0x26f865=![];var _0x8f056a=null;for(_0x8f056a=0x0;_0x8f056a<_0xf3b74e[_0x628a('0x33')];_0x8f056a++){if(_0xf3b74e[_0x8f056a][_0x628a('0x5e')]===_0x2d3cbc){_0x26f865=!![];}}if(_0x26f865){return!![];}else{throw new Error({'statusCode':0x194,'message':_0x628a('0x5f')});}}})[_0x628a('0x23')](respondWithResult(_0xe99edd,null))[_0x628a('0x44')](function(_0x2531cd){var _0x5047df=_0x6e99b[_0x628a('0x2d')]['test']?0x1f4:_0x2531cd['statusCode']||0x1f4;logger['error'](_0x628a('0x60'),_0x628a('0x61'),_0x5047df,JSON['stringify'](_0x2531cd));delete _0x2531cd[_0x628a('0x25')];if(_0x5047df===0x191){_0x5047df=0x190;}_0xe99edd[_0x628a('0x18')](_0x5047df)[_0x628a('0x26')](_0x6e99b[_0x628a('0x2d')][_0x628a('0x62')]?{'message':'Wrong\x20credentials','statusCode':_0x2531cd[_0x628a('0x63')]}:_0x2531cd);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4137=['moment','bluebird','request-promise','path','rimraf','../../config/environment','./intFreshsalesAccount.attributes','../../components/integrations/configuration','define','FreshsalesAccount','lodash','util','../../config/logger','api'];(function(_0x2dafbe,_0x5d04de){var _0x58a45a=function(_0x50ac96){while(--_0x50ac96){_0x2dafbe['push'](_0x2dafbe['shift']());}};_0x58a45a(++_0x5d04de);}(_0x4137,0xf8));var _0x7413=function(_0x4e676e,_0x2a7c6d){_0x4e676e=_0x4e676e-0x0;var _0x336a3c=_0x4137[_0x4e676e];return _0x336a3c;};'use strict';var _=require(_0x7413('0x0'));var util=require(_0x7413('0x1'));var logger=require(_0x7413('0x2'))(_0x7413('0x3'));var moment=require(_0x7413('0x4'));var BPromise=require(_0x7413('0x5'));var rp=require(_0x7413('0x6'));var fs=require('fs');var path=require(_0x7413('0x7'));var rimraf=require(_0x7413('0x8'));var config=require(_0x7413('0x9'));var attributes=require(_0x7413('0xa'));var integrations=require(_0x7413('0xb'));module['exports']=function(_0xc808cd,_0x188d89){return _0xc808cd[_0x7413('0xc')](_0x7413('0xd'),attributes,{'tableName':'int_freshsales_accounts','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x2272=['request-promise','path','rimraf','../../components/integrations/configuration','exports','define','FreshsalesAccount','int_freshsales_accounts','lodash','util','../../config/logger','api','moment'];(function(_0x17fc3d,_0x5516dd){var _0x3eba04=function(_0x19808e){while(--_0x19808e){_0x17fc3d['push'](_0x17fc3d['shift']());}};_0x3eba04(++_0x5516dd);}(_0x2272,0xd8));var _0x2227=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x2272[_0x14add3];return _0x4a174f;};'use strict';var _=require(_0x2227('0x0'));var util=require(_0x2227('0x1'));var logger=require(_0x2227('0x2'))(_0x2227('0x3'));var moment=require(_0x2227('0x4'));var BPromise=require('bluebird');var rp=require(_0x2227('0x5'));var fs=require('fs');var path=require(_0x2227('0x6'));var rimraf=require(_0x2227('0x7'));var config=require('../../config/environment');var attributes=require('./intFreshsalesAccount.attributes');var integrations=require(_0x2227('0x8'));module[_0x2227('0x9')]=function(_0xb33647,_0x2591db){return _0xb33647[_0x2227('0xa')](_0x2227('0xb'),attributes,{'tableName':_0x2227('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1261=['FreshsalesAccount,\x20%s,\x20%s,\x20%s','error','code','message','catch','GetFreshsalesAccount','options','raw','limit','include','map','model','attributes','stringify','ShowFreshsalesAccount','FreshsalesAccount','find','where','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','http','request','then','info','FreshsalesAccount,\x20%s,\x20%s','request\x20sent'];(function(_0x1c96ca,_0x928f86){var _0x514090=function(_0x87d2d4){while(--_0x87d2d4){_0x1c96ca['push'](_0x1c96ca['shift']());}};_0x514090(++_0x928f86);}(_0x1261,0x144));var _0x1126=function(_0x5d917c,_0x7846a){_0x5d917c=_0x5d917c-0x0;var _0x4e850f=_0x1261[_0x5d917c];return _0x4e850f;};'use strict';var _=require('lodash');var util=require(_0x1126('0x0'));var moment=require(_0x1126('0x1'));var BPromise=require(_0x1126('0x2'));var rs=require(_0x1126('0x3'));var fs=require('fs');var Redis=require(_0x1126('0x4'));var db=require(_0x1126('0x5'))['db'];var utils=require(_0x1126('0x6'));var logger=require(_0x1126('0x7'))(_0x1126('0x8'));var config=require(_0x1126('0x9'));var jayson=require('jayson/promise');var client=jayson['client'][_0x1126('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x907180,_0x4f239c,_0x17e5f0){return new BPromise(function(_0x28772d,_0x245be9){return client[_0x1126('0xb')](_0x907180,_0x17e5f0)[_0x1126('0xc')](function(_0x59cfa1){logger[_0x1126('0xd')](_0x1126('0xe'),_0x4f239c,_0x1126('0xf'));logger['debug'](_0x1126('0x10'),_0x4f239c,'request\x20sent',JSON['stringify'](_0x59cfa1));if(_0x59cfa1[_0x1126('0x11')]){if(_0x59cfa1['error'][_0x1126('0x12')]===0x1f4){logger[_0x1126('0x11')](_0x1126('0xe'),_0x4f239c,_0x59cfa1[_0x1126('0x11')][_0x1126('0x13')]);return _0x245be9(_0x59cfa1[_0x1126('0x11')][_0x1126('0x13')]);}logger[_0x1126('0x11')](_0x1126('0xe'),_0x4f239c,_0x59cfa1['error']['message']);return _0x28772d(_0x59cfa1[_0x1126('0x11')][_0x1126('0x13')]);}else{logger[_0x1126('0xd')]('FreshsalesAccount,\x20%s,\x20%s',_0x4f239c,_0x1126('0xf'));_0x28772d(_0x59cfa1['result'][_0x1126('0x13')]);}})[_0x1126('0x14')](function(_0x257b5f){logger['error'](_0x1126('0xe'),_0x4f239c,_0x257b5f);_0x245be9(_0x257b5f);});});}exports[_0x1126('0x15')]=function(_0x4a7b49){var _0x4d2b38=this;return new Promise(function(_0x22ae0b,_0x2b2487){return db['FreshsalesAccount']['findAll']({'raw':_0x4a7b49[_0x1126('0x16')]?_0x4a7b49['options'][_0x1126('0x17')]===undefined?!![]:![]:!![],'where':_0x4a7b49[_0x1126('0x16')]?_0x4a7b49[_0x1126('0x16')]['where']||null:null,'attributes':_0x4a7b49[_0x1126('0x16')]?_0x4a7b49['options']['attributes']||null:null,'limit':_0x4a7b49[_0x1126('0x16')]?_0x4a7b49[_0x1126('0x16')][_0x1126('0x18')]||null:null,'include':_0x4a7b49[_0x1126('0x16')]?_0x4a7b49['options'][_0x1126('0x19')]?_[_0x1126('0x1a')](_0x4a7b49['options'][_0x1126('0x19')],function(_0x59cd8e){return{'model':db[_0x59cd8e['model']],'as':_0x59cd8e['as'],'attributes':_0x59cd8e['attributes'],'include':_0x59cd8e[_0x1126('0x19')]?_[_0x1126('0x1a')](_0x59cd8e[_0x1126('0x19')],function(_0x34bcf1){return{'model':db[_0x34bcf1[_0x1126('0x1b')]],'as':_0x34bcf1['as'],'attributes':_0x34bcf1[_0x1126('0x1c')],'include':_0x34bcf1[_0x1126('0x19')]?_[_0x1126('0x1a')](_0x34bcf1['include'],function(_0x35eec3){return{'model':db[_0x35eec3[_0x1126('0x1b')]],'as':_0x35eec3['as'],'attributes':_0x35eec3[_0x1126('0x1c')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x541bc9){logger[_0x1126('0xd')](_0x1126('0x15'),_0x4a7b49);logger['debug'](_0x1126('0x15'),_0x4a7b49,JSON[_0x1126('0x1d')](_0x541bc9));_0x22ae0b(_0x541bc9);})['catch'](function(_0x3fa694){logger['error'](_0x1126('0x15'),_0x3fa694['message'],_0x4a7b49);_0x2b2487(_0x4d2b38[_0x1126('0x11')](0x1f4,_0x3fa694['message']));});});};exports[_0x1126('0x1e')]=function(_0x5f2611){var _0x5252e0=this;return new Promise(function(_0x4a53ab,_0x17646e){return db[_0x1126('0x1f')][_0x1126('0x20')]({'raw':_0x5f2611['options']?_0x5f2611[_0x1126('0x16')][_0x1126('0x17')]===undefined?!![]:![]:!![],'where':_0x5f2611['options']?_0x5f2611[_0x1126('0x16')][_0x1126('0x21')]||null:null,'attributes':_0x5f2611[_0x1126('0x16')]?_0x5f2611[_0x1126('0x16')]['attributes']||null:null,'include':_0x5f2611['options']?_0x5f2611[_0x1126('0x16')][_0x1126('0x19')]?_[_0x1126('0x1a')](_0x5f2611[_0x1126('0x16')]['include'],function(_0x145314){return{'model':db[_0x145314[_0x1126('0x1b')]],'as':_0x145314['as'],'attributes':_0x145314[_0x1126('0x1c')],'include':_0x145314[_0x1126('0x19')]?_[_0x1126('0x1a')](_0x145314['include'],function(_0x2a0dfe){return{'model':db[_0x2a0dfe[_0x1126('0x1b')]],'as':_0x2a0dfe['as'],'attributes':_0x2a0dfe[_0x1126('0x1c')],'include':_0x2a0dfe[_0x1126('0x19')]?_['map'](_0x2a0dfe['include'],function(_0x22827a){return{'model':db[_0x22827a[_0x1126('0x1b')]],'as':_0x22827a['as'],'attributes':_0x22827a['attributes']};}):[]};}):[]};}):[]:[]})[_0x1126('0xc')](function(_0xf3c21b){logger[_0x1126('0xd')]('ShowFreshsalesAccount',_0x5f2611);logger['debug'](_0x1126('0x1e'),_0x5f2611,JSON[_0x1126('0x1d')](_0xf3c21b));_0x4a53ab(_0xf3c21b);})[_0x1126('0x14')](function(_0x156554){logger['error'](_0x1126('0x1e'),_0x156554['message'],_0x5f2611);_0x17646e(_0x5252e0[_0x1126('0x11')](0x1f4,_0x156554[_0x1126('0x13')]));});});};
\ No newline at end of file
+var _0x6d11=['debug','FreshsalesAccount,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','catch','FreshsalesAccount','findAll','options','attributes','limit','map','include','model','GetFreshsalesAccount','ShowFreshsalesAccount','find','raw','where','lodash','util','moment','randomstring','../../mysqldb','../../config/utils','../../config/environment','jayson/promise','client','http','then','info','FreshsalesAccount,\x20%s,\x20%s'];(function(_0x16360c,_0x37c098){var _0x17dd2d=function(_0x32b306){while(--_0x32b306){_0x16360c['push'](_0x16360c['shift']());}};_0x17dd2d(++_0x37c098);}(_0x6d11,0xbf));var _0x16d1=function(_0x548ccb,_0x1fab15){_0x548ccb=_0x548ccb-0x0;var _0x2f7701=_0x6d11[_0x548ccb];return _0x2f7701;};'use strict';var _=require(_0x16d1('0x0'));var util=require(_0x16d1('0x1'));var moment=require(_0x16d1('0x2'));var BPromise=require('bluebird');var rs=require(_0x16d1('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x16d1('0x4'))['db'];var utils=require(_0x16d1('0x5'));var logger=require('../../config/logger')('rpc');var config=require(_0x16d1('0x6'));var jayson=require(_0x16d1('0x7'));var client=jayson[_0x16d1('0x8')][_0x16d1('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x1009dc,_0x150217,_0x19390d){return new BPromise(function(_0x5d0e3f,_0x58a7a2){return client['request'](_0x1009dc,_0x19390d)[_0x16d1('0xa')](function(_0xcfbb15){logger[_0x16d1('0xb')](_0x16d1('0xc'),_0x150217,'request\x20sent');logger[_0x16d1('0xd')](_0x16d1('0xe'),_0x150217,_0x16d1('0xf'),JSON[_0x16d1('0x10')](_0xcfbb15));if(_0xcfbb15[_0x16d1('0x11')]){if(_0xcfbb15[_0x16d1('0x11')][_0x16d1('0x12')]===0x1f4){logger[_0x16d1('0x11')]('FreshsalesAccount,\x20%s,\x20%s',_0x150217,_0xcfbb15[_0x16d1('0x11')][_0x16d1('0x13')]);return _0x58a7a2(_0xcfbb15[_0x16d1('0x11')][_0x16d1('0x13')]);}logger[_0x16d1('0x11')]('FreshsalesAccount,\x20%s,\x20%s',_0x150217,_0xcfbb15[_0x16d1('0x11')][_0x16d1('0x13')]);return _0x5d0e3f(_0xcfbb15[_0x16d1('0x11')][_0x16d1('0x13')]);}else{logger[_0x16d1('0xb')](_0x16d1('0xc'),_0x150217,_0x16d1('0xf'));_0x5d0e3f(_0xcfbb15['result'][_0x16d1('0x13')]);}})[_0x16d1('0x14')](function(_0x555b2d){logger['error'](_0x16d1('0xc'),_0x150217,_0x555b2d);_0x58a7a2(_0x555b2d);});});}exports['GetFreshsalesAccount']=function(_0x46a25e){var _0x4aeff0=this;return new Promise(function(_0x1da1b8,_0x4fe22d){return db[_0x16d1('0x15')][_0x16d1('0x16')]({'raw':_0x46a25e['options']?_0x46a25e['options']['raw']===undefined?!![]:![]:!![],'where':_0x46a25e['options']?_0x46a25e[_0x16d1('0x17')]['where']||null:null,'attributes':_0x46a25e[_0x16d1('0x17')]?_0x46a25e[_0x16d1('0x17')][_0x16d1('0x18')]||null:null,'limit':_0x46a25e[_0x16d1('0x17')]?_0x46a25e['options'][_0x16d1('0x19')]||null:null,'include':_0x46a25e[_0x16d1('0x17')]?_0x46a25e[_0x16d1('0x17')]['include']?_[_0x16d1('0x1a')](_0x46a25e[_0x16d1('0x17')][_0x16d1('0x1b')],function(_0x47cad4){return{'model':db[_0x47cad4[_0x16d1('0x1c')]],'as':_0x47cad4['as'],'attributes':_0x47cad4[_0x16d1('0x18')],'include':_0x47cad4[_0x16d1('0x1b')]?_[_0x16d1('0x1a')](_0x47cad4[_0x16d1('0x1b')],function(_0x335c24){return{'model':db[_0x335c24[_0x16d1('0x1c')]],'as':_0x335c24['as'],'attributes':_0x335c24[_0x16d1('0x18')],'include':_0x335c24[_0x16d1('0x1b')]?_[_0x16d1('0x1a')](_0x335c24[_0x16d1('0x1b')],function(_0x2b8403){return{'model':db[_0x2b8403['model']],'as':_0x2b8403['as'],'attributes':_0x2b8403[_0x16d1('0x18')]};}):[]};}):[]};}):[]:[]})[_0x16d1('0xa')](function(_0x4257f1){logger['info'](_0x16d1('0x1d'),_0x46a25e);logger[_0x16d1('0xd')](_0x16d1('0x1d'),_0x46a25e,JSON[_0x16d1('0x10')](_0x4257f1));_0x1da1b8(_0x4257f1);})[_0x16d1('0x14')](function(_0x462e5b){logger[_0x16d1('0x11')]('GetFreshsalesAccount',_0x462e5b[_0x16d1('0x13')],_0x46a25e);_0x4fe22d(_0x4aeff0[_0x16d1('0x11')](0x1f4,_0x462e5b[_0x16d1('0x13')]));});});};exports[_0x16d1('0x1e')]=function(_0x55c021){var _0x4b27f6=this;return new Promise(function(_0x2f16ee,_0x4ab3d4){return db[_0x16d1('0x15')][_0x16d1('0x1f')]({'raw':_0x55c021[_0x16d1('0x17')]?_0x55c021[_0x16d1('0x17')][_0x16d1('0x20')]===undefined?!![]:![]:!![],'where':_0x55c021[_0x16d1('0x17')]?_0x55c021[_0x16d1('0x17')][_0x16d1('0x21')]||null:null,'attributes':_0x55c021[_0x16d1('0x17')]?_0x55c021[_0x16d1('0x17')][_0x16d1('0x18')]||null:null,'include':_0x55c021[_0x16d1('0x17')]?_0x55c021['options'][_0x16d1('0x1b')]?_['map'](_0x55c021[_0x16d1('0x17')][_0x16d1('0x1b')],function(_0x2b9126){return{'model':db[_0x2b9126[_0x16d1('0x1c')]],'as':_0x2b9126['as'],'attributes':_0x2b9126[_0x16d1('0x18')],'include':_0x2b9126[_0x16d1('0x1b')]?_['map'](_0x2b9126['include'],function(_0x58d72d){return{'model':db[_0x58d72d[_0x16d1('0x1c')]],'as':_0x58d72d['as'],'attributes':_0x58d72d[_0x16d1('0x18')],'include':_0x58d72d[_0x16d1('0x1b')]?_[_0x16d1('0x1a')](_0x58d72d['include'],function(_0x885454){return{'model':db[_0x885454[_0x16d1('0x1c')]],'as':_0x885454['as'],'attributes':_0x885454['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x508ed7){logger[_0x16d1('0xb')](_0x16d1('0x1e'),_0x55c021);logger[_0x16d1('0xd')]('ShowFreshsalesAccount',_0x55c021,JSON[_0x16d1('0x10')](_0x508ed7));_0x2f16ee(_0x508ed7);})[_0x16d1('0x14')](function(_0x2928ad){logger[_0x16d1('0x11')](_0x16d1('0x1e'),_0x2928ad[_0x16d1('0x13')],_0x55c021);_0x4ab3d4(_0x4b27f6[_0x16d1('0x11')](0x1f4,_0x2928ad['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa1af=['getDescriptions','getFields','create','put','/:id','delete','destroy','exports','multer','util','path','connect-timeout','express','Router','../../components/interaction/service','./intFreshsalesConfiguration.controller','get','index','/:id/subjects','isAuthenticated','getSubjects','/:id/descriptions'];(function(_0x1b54f5,_0x83ee6a){var _0x3b9975=function(_0x20762a){while(--_0x20762a){_0x1b54f5['push'](_0x1b54f5['shift']());}};_0x3b9975(++_0x83ee6a);}(_0xa1af,0xe4));var _0xfa1a=function(_0x5354b0,_0x4da466){_0x5354b0=_0x5354b0-0x0;var _0x301330=_0xa1af[_0x5354b0];return _0x301330;};'use strict';var multer=require(_0xfa1a('0x0'));var util=require(_0xfa1a('0x1'));var path=require(_0xfa1a('0x2'));var timeout=require(_0xfa1a('0x3'));var express=require(_0xfa1a('0x4'));var router=express[_0xfa1a('0x5')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0xfa1a('0x6'));var config=require('../../config/environment');var controller=require(_0xfa1a('0x7'));router[_0xfa1a('0x8')]('/',auth['isAuthenticated'](),controller[_0xfa1a('0x9')]);router['get']('/:id',auth['isAuthenticated'](),controller['show']);router['get'](_0xfa1a('0xa'),auth[_0xfa1a('0xb')](),controller[_0xfa1a('0xc')]);router[_0xfa1a('0x8')](_0xfa1a('0xd'),auth[_0xfa1a('0xb')](),controller[_0xfa1a('0xe')]);router[_0xfa1a('0x8')]('/:id/fields',auth[_0xfa1a('0xb')](),controller[_0xfa1a('0xf')]);router['post']('/',auth[_0xfa1a('0xb')](),controller[_0xfa1a('0x10')]);router[_0xfa1a('0x11')](_0xfa1a('0x12'),auth[_0xfa1a('0xb')](),controller['update']);router[_0xfa1a('0x13')](_0xfa1a('0x12'),auth[_0xfa1a('0xb')](),controller[_0xfa1a('0x14')]);module[_0xfa1a('0x15')]=router;
\ No newline at end of file
+var _0xbf90=['get','isAuthenticated','/:id','show','/:id/subjects','/:id/descriptions','getDescriptions','/:id/fields','getFields','post','create','put','update','delete','destroy','exports','multer','util','path','connect-timeout','Router','../../components/interaction/service','../../config/environment','./intFreshsalesConfiguration.controller'];(function(_0x397df8,_0x3bee11){var _0x4ead11=function(_0x3753c8){while(--_0x3753c8){_0x397df8['push'](_0x397df8['shift']());}};_0x4ead11(++_0x3bee11);}(_0xbf90,0xb8));var _0x0bf9=function(_0x4e9ecb,_0x4019ba){_0x4e9ecb=_0x4e9ecb-0x0;var _0x45188a=_0xbf90[_0x4e9ecb];return _0x45188a;};'use strict';var multer=require(_0x0bf9('0x0'));var util=require(_0x0bf9('0x1'));var path=require(_0x0bf9('0x2'));var timeout=require(_0x0bf9('0x3'));var express=require('express');var router=express[_0x0bf9('0x4')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0x0bf9('0x5'));var config=require(_0x0bf9('0x6'));var controller=require(_0x0bf9('0x7'));router[_0x0bf9('0x8')]('/',auth[_0x0bf9('0x9')](),controller['index']);router[_0x0bf9('0x8')](_0x0bf9('0xa'),auth['isAuthenticated'](),controller[_0x0bf9('0xb')]);router[_0x0bf9('0x8')](_0x0bf9('0xc'),auth[_0x0bf9('0x9')](),controller['getSubjects']);router[_0x0bf9('0x8')](_0x0bf9('0xd'),auth['isAuthenticated'](),controller[_0x0bf9('0xe')]);router[_0x0bf9('0x8')](_0x0bf9('0xf'),auth[_0x0bf9('0x9')](),controller[_0x0bf9('0x10')]);router[_0x0bf9('0x11')]('/',auth['isAuthenticated'](),controller[_0x0bf9('0x12')]);router[_0x0bf9('0x13')](_0x0bf9('0xa'),auth['isAuthenticated'](),controller[_0x0bf9('0x14')]);router[_0x0bf9('0x15')]('/:id',auth['isAuthenticated'](),controller[_0x0bf9('0x16')]);module[_0x0bf9('0x17')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa190=['exports','STRING'];(function(_0x1cbcf1,_0x3f9fd9){var _0x3a06f0=function(_0x5425d4){while(--_0x5425d4){_0x1cbcf1['push'](_0x1cbcf1['shift']());}};_0x3a06f0(++_0x3f9fd9);}(_0xa190,0x16e));var _0x0a19=function(_0xf3cf27,_0x1df3c8){_0xf3cf27=_0xf3cf27-0x0;var _0x5331ac=_0xa190[_0xf3cf27];return _0x5331ac;};'use strict';var Sequelize=require('sequelize');module[_0x0a19('0x0')]={'name':{'type':Sequelize[_0x0a19('0x1')]},'description':{'type':Sequelize[_0x0a19('0x1')]}};
\ No newline at end of file
+var _0xe338=['STRING','exports'];(function(_0x2936dd,_0x552dfc){var _0x34ee21=function(_0x4c7367){while(--_0x4c7367){_0x2936dd['push'](_0x2936dd['shift']());}};_0x34ee21(++_0x552dfc);}(_0xe338,0x137));var _0x8e33=function(_0x4fc2fc,_0x5d3a71){_0x4fc2fc=_0x4fc2fc-0x0;var _0x1c701f=_0xe338[_0x4fc2fc];return _0x1c701f;};'use strict';var Sequelize=require('sequelize');module[_0x8e33('0x0')]={'name':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0x8e33('0x1')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6650=['ejs','fs-extra','lodash','crypto','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../mysqldb','sendStatus','end','json','offset','undefined','count','limit','status','set','Content-Range','apply','reject','save','error','stack','name','send','index','map','FreshsalesConfiguration','rawAttributes','type','key','model','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','filter','VIRTUAL','merge','then','includeAll','rows','params','include','options','catch','create','body','update','find','destroy','findOne','FreshsalesField','getSubjects','pick','getFields','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv'];(function(_0x5b2f0a,_0x3543ea){var _0x30413a=function(_0x4e33d0){while(--_0x4e33d0){_0x5b2f0a['push'](_0x5b2f0a['shift']());}};_0x30413a(++_0x3543ea);}(_0x6650,0x96));var _0x0665=function(_0x2f3463,_0x5d0b9f){_0x2f3463=_0x2f3463-0x0;var _0x254696=_0x6650[_0x2f3463];return _0x254696;};'use strict';var emlformat=require(_0x0665('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x0665('0x1'));var jsonpatch=require(_0x0665('0x2'));var rp=require(_0x0665('0x3'));var moment=require(_0x0665('0x4'));var BPromise=require(_0x0665('0x5'));var Mustache=require('mustache');var util=require(_0x0665('0x6'));var path=require(_0x0665('0x7'));var sox=require(_0x0665('0x8'));var csv=require(_0x0665('0x9'));var ejs=require(_0x0665('0xa'));var fs=require('fs');var fs_extra=require(_0x0665('0xb'));var _=require(_0x0665('0xc'));var squel=require('squel');var crypto=require(_0x0665('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x0665('0xe'));var toCsv=require(_0x0665('0x9'));var querystring=require(_0x0665('0xf'));var Papa=require(_0x0665('0x10'));var Redis=require('ioredis');var authService=require(_0x0665('0x11'));var qs=require(_0x0665('0x12'));var as=require(_0x0665('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x0665('0x14'))(_0x0665('0x15'));var utils=require('../../config/utils');var config=require(_0x0665('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0x0665('0x17'))['db'];function respondWithStatusCode(_0x16bb04,_0x134d35){_0x134d35=_0x134d35||0xcc;return function(_0x28a8f6){if(_0x28a8f6){return _0x16bb04[_0x0665('0x18')](_0x134d35);}return _0x16bb04['status'](_0x134d35)[_0x0665('0x19')]();};}function respondWithResult(_0x3f4d19,_0x5e5209){_0x5e5209=_0x5e5209||0xc8;return function(_0x1971ed){if(_0x1971ed){return _0x3f4d19['status'](_0x5e5209)[_0x0665('0x1a')](_0x1971ed);}};}function respondWithFilteredResult(_0x48fe3b,_0x1f8c0d){return function(_0x396700){if(_0x396700){var _0x5042a6=typeof _0x1f8c0d[_0x0665('0x1b')]===_0x0665('0x1c')&&typeof _0x1f8c0d['limit']===_0x0665('0x1c');var _0x2d6b8f=_0x396700[_0x0665('0x1d')];var _0x59ecef=_0x5042a6?0x0:_0x1f8c0d[_0x0665('0x1b')];var _0x121558=_0x5042a6?_0x396700[_0x0665('0x1d')]:_0x1f8c0d[_0x0665('0x1b')]+_0x1f8c0d[_0x0665('0x1e')];var _0x546169;if(_0x121558>=_0x2d6b8f){_0x121558=_0x2d6b8f;_0x546169=0xc8;}else{_0x546169=0xce;}_0x48fe3b[_0x0665('0x1f')](_0x546169);return _0x48fe3b[_0x0665('0x20')](_0x0665('0x21'),_0x59ecef+'-'+_0x121558+'/'+_0x2d6b8f)[_0x0665('0x1a')](_0x396700);}return null;};}function patchUpdates(_0x574357){return function(_0x33a633){try{jsonpatch[_0x0665('0x22')](_0x33a633,_0x574357,!![]);}catch(_0x59bb89){return BPromise[_0x0665('0x23')](_0x59bb89);}return _0x33a633[_0x0665('0x24')]();};}function saveUpdates(_0x475bd8,_0x54c1f7){return function(_0x179133){if(_0x179133){return _0x179133['update'](_0x475bd8)['then'](function(_0x33bdcb){return _0x33bdcb;});}return null;};}function removeEntity(_0x578ac9,_0x42c98f){return function(_0x3d756e){if(_0x3d756e){return _0x3d756e['destroy']()['then'](function(){_0x578ac9[_0x0665('0x1f')](0xcc)[_0x0665('0x19')]();});}};}function handleEntityNotFound(_0x4cde5e,_0x4508fa){return function(_0x509334){if(!_0x509334){_0x4cde5e['sendStatus'](0x194);}return _0x509334;};}function handleError(_0x3b5f93,_0x4913dd){_0x4913dd=_0x4913dd||0x1f4;return function(_0x4d9eed){logger[_0x0665('0x25')](_0x4d9eed[_0x0665('0x26')]);if(_0x4d9eed[_0x0665('0x27')]){delete _0x4d9eed[_0x0665('0x27')];}_0x3b5f93[_0x0665('0x1f')](_0x4913dd)[_0x0665('0x28')](_0x4d9eed);};}exports[_0x0665('0x29')]=function(_0x1c256b,_0x2aaee6){var _0x39bc9a={},_0x506d36={},_0x4e03f4={'count':0x0,'rows':[]};var _0x5bf7b3=_[_0x0665('0x2a')](db[_0x0665('0x2b')][_0x0665('0x2c')],function(_0x1033dd){return{'name':_0x1033dd['fieldName'],'type':_0x1033dd[_0x0665('0x2d')][_0x0665('0x2e')]};});_0x506d36[_0x0665('0x2f')]=_[_0x0665('0x2a')](_0x5bf7b3,'name');_0x506d36[_0x0665('0x30')]=_[_0x0665('0x31')](_0x1c256b[_0x0665('0x30')]);_0x506d36[_0x0665('0x32')]=_['intersection'](_0x506d36[_0x0665('0x2f')],_0x506d36['query']);_0x39bc9a[_0x0665('0x33')]=_[_0x0665('0x34')](_0x506d36['model'],qs[_0x0665('0x35')](_0x1c256b['query'][_0x0665('0x35')]));_0x39bc9a[_0x0665('0x33')]=_0x39bc9a[_0x0665('0x33')][_0x0665('0x36')]?_0x39bc9a['attributes']:_0x506d36[_0x0665('0x2f')];if(!_0x1c256b[_0x0665('0x30')][_0x0665('0x37')](_0x0665('0x38'))){_0x39bc9a[_0x0665('0x1e')]=qs[_0x0665('0x1e')](_0x1c256b[_0x0665('0x30')][_0x0665('0x1e')]);_0x39bc9a['offset']=qs[_0x0665('0x1b')](_0x1c256b[_0x0665('0x30')][_0x0665('0x1b')]);}_0x39bc9a[_0x0665('0x39')]=qs[_0x0665('0x3a')](_0x1c256b[_0x0665('0x30')][_0x0665('0x3a')]);_0x39bc9a[_0x0665('0x3b')]=qs[_0x0665('0x32')](_['pick'](_0x1c256b[_0x0665('0x30')],_0x506d36[_0x0665('0x32')]),_0x5bf7b3);if(_0x1c256b[_0x0665('0x30')][_0x0665('0x3c')]){_0x39bc9a['where']=_['merge'](_0x39bc9a[_0x0665('0x3b')],{'$or':_[_0x0665('0x2a')](_0x5bf7b3,function(_0x1aa208){if(_0x1aa208[_0x0665('0x2d')]!==_0x0665('0x3d')){var _0x103edb={};_0x103edb[_0x1aa208['name']]={'$like':'%'+_0x1c256b[_0x0665('0x30')][_0x0665('0x3c')]+'%'};return _0x103edb;}})});}_0x39bc9a=_[_0x0665('0x3e')]({},_0x39bc9a,_0x1c256b['options']);var _0x172d81={'where':_0x39bc9a['where']};return db[_0x0665('0x2b')][_0x0665('0x1d')](_0x172d81)[_0x0665('0x3f')](function(_0x13052e){_0x4e03f4[_0x0665('0x1d')]=_0x13052e;if(_0x1c256b[_0x0665('0x30')][_0x0665('0x40')]){_0x39bc9a['include']=[{'all':!![]}];}return db[_0x0665('0x2b')]['findAll'](_0x39bc9a);})['then'](function(_0x3ceb98){_0x4e03f4[_0x0665('0x41')]=_0x3ceb98;return _0x4e03f4;})['then'](respondWithFilteredResult(_0x2aaee6,_0x39bc9a))['catch'](handleError(_0x2aaee6,null));};exports['show']=function(_0x443021,_0x2932c2){var _0x48a62c={'raw':![],'where':{'id':_0x443021[_0x0665('0x42')]['id']}},_0x4133d6={};_0x4133d6[_0x0665('0x2f')]=_[_0x0665('0x31')](db['FreshsalesConfiguration'][_0x0665('0x2c')]);_0x4133d6[_0x0665('0x30')]=_[_0x0665('0x31')](_0x443021[_0x0665('0x30')]);_0x4133d6[_0x0665('0x32')]=_[_0x0665('0x34')](_0x4133d6[_0x0665('0x2f')],_0x4133d6[_0x0665('0x30')]);_0x48a62c[_0x0665('0x33')]=_[_0x0665('0x34')](_0x4133d6['model'],qs[_0x0665('0x35')](_0x443021[_0x0665('0x30')][_0x0665('0x35')]));_0x48a62c[_0x0665('0x33')]=_0x48a62c[_0x0665('0x33')]['length']?_0x48a62c[_0x0665('0x33')]:_0x4133d6[_0x0665('0x2f')];if(_0x443021[_0x0665('0x30')][_0x0665('0x40')]){_0x48a62c[_0x0665('0x43')]=[{'all':!![]}];}_0x48a62c=_['merge']({},_0x48a62c,_0x443021[_0x0665('0x44')]);return db['FreshsalesConfiguration']['find'](_0x48a62c)['then'](handleEntityNotFound(_0x2932c2,null))[_0x0665('0x3f')](respondWithResult(_0x2932c2,null))[_0x0665('0x45')](handleError(_0x2932c2,null));};exports[_0x0665('0x46')]=function(_0x4d8259,_0x58f6cf){return db[_0x0665('0x2b')][_0x0665('0x46')](_0x4d8259[_0x0665('0x47')],{})[_0x0665('0x3f')](respondWithResult(_0x58f6cf,0xc9))[_0x0665('0x45')](handleError(_0x58f6cf,null));};exports[_0x0665('0x48')]=function(_0x304e53,_0x3453c0){if(_0x304e53['body']['id']){delete _0x304e53[_0x0665('0x47')]['id'];}return db[_0x0665('0x2b')][_0x0665('0x49')]({'where':{'id':_0x304e53[_0x0665('0x42')]['id']}})[_0x0665('0x3f')](handleEntityNotFound(_0x3453c0,null))[_0x0665('0x3f')](saveUpdates(_0x304e53[_0x0665('0x47')],null))[_0x0665('0x3f')](respondWithResult(_0x3453c0,null))[_0x0665('0x45')](handleError(_0x3453c0,null));};exports[_0x0665('0x4a')]=function(_0x798d30,_0xaa4221){return db[_0x0665('0x2b')][_0x0665('0x49')]({'where':{'id':_0x798d30[_0x0665('0x42')]['id']}})[_0x0665('0x3f')](handleEntityNotFound(_0xaa4221,null))['then'](removeEntity(_0xaa4221,null))[_0x0665('0x45')](handleError(_0xaa4221,null));};exports['getSubjects']=function(_0x479fb4,_0x256b67,_0x1220c7){var _0x3111d9={};var _0x39ae86={};var _0x4ff295;var _0x402b4c;return db[_0x0665('0x2b')][_0x0665('0x4b')]({'where':{'id':_0x479fb4[_0x0665('0x42')]['id']}})['then'](handleEntityNotFound(_0x256b67,null))[_0x0665('0x3f')](function(_0x174eb0){if(_0x174eb0){_0x4ff295=_0x174eb0;_0x39ae86[_0x0665('0x2f')]=_['keys'](db[_0x0665('0x4c')]['rawAttributes']);_0x39ae86[_0x0665('0x30')]=_[_0x0665('0x31')](_0x479fb4['query']);_0x39ae86[_0x0665('0x32')]=_[_0x0665('0x34')](_0x39ae86[_0x0665('0x2f')],_0x39ae86[_0x0665('0x30')]);_0x3111d9[_0x0665('0x33')]=_[_0x0665('0x34')](_0x39ae86['model'],qs['fields'](_0x479fb4[_0x0665('0x30')][_0x0665('0x35')]));_0x3111d9[_0x0665('0x33')]=_0x3111d9['attributes'][_0x0665('0x36')]?_0x3111d9[_0x0665('0x33')]:_0x39ae86[_0x0665('0x2f')];_0x3111d9[_0x0665('0x39')]=qs['sort'](_0x479fb4['query'][_0x0665('0x3a')]);_0x3111d9['where']=qs[_0x0665('0x32')](_['pick'](_0x479fb4[_0x0665('0x30')],_0x39ae86['filters']));if(_0x479fb4['query'][_0x0665('0x3c')]){_0x3111d9[_0x0665('0x3b')]=_[_0x0665('0x3e')](_0x3111d9['where'],{'$or':_[_0x0665('0x2a')](_0x3111d9[_0x0665('0x33')],function(_0x51b689){var _0xe8d71d={};_0xe8d71d[_0x51b689]={'$like':'%'+_0x479fb4[_0x0665('0x30')][_0x0665('0x3c')]+'%'};return _0xe8d71d;})});}_0x3111d9=_[_0x0665('0x3e')]({},_0x3111d9,_0x479fb4[_0x0665('0x44')]);return _0x4ff295[_0x0665('0x4d')](_0x3111d9);}})[_0x0665('0x3f')](function(_0x162a74){if(_0x162a74){_0x402b4c=_0x162a74[_0x0665('0x36')];if(!_0x479fb4['query']['hasOwnProperty']('nolimit')){_0x3111d9['limit']=qs[_0x0665('0x1e')](_0x479fb4['query'][_0x0665('0x1e')]);_0x3111d9[_0x0665('0x1b')]=qs['offset'](_0x479fb4[_0x0665('0x30')][_0x0665('0x1b')]);}return _0x4ff295[_0x0665('0x4d')](_0x3111d9);}})[_0x0665('0x3f')](function(_0x1b801e){if(_0x1b801e){return _0x1b801e?{'count':_0x402b4c,'rows':_0x1b801e}:null;}})[_0x0665('0x3f')](respondWithResult(_0x256b67,null))[_0x0665('0x45')](handleError(_0x256b67,null));};exports['getDescriptions']=function(_0x39900b,_0x3071a4,_0x5078a6){var _0x445d6e={};var _0x233184={};var _0x1e1e80;var _0x100b25;return db[_0x0665('0x2b')][_0x0665('0x4b')]({'where':{'id':_0x39900b[_0x0665('0x42')]['id']}})[_0x0665('0x3f')](handleEntityNotFound(_0x3071a4,null))[_0x0665('0x3f')](function(_0x56e11d){if(_0x56e11d){_0x1e1e80=_0x56e11d;_0x233184[_0x0665('0x2f')]=_[_0x0665('0x31')](db[_0x0665('0x4c')]['rawAttributes']);_0x233184[_0x0665('0x30')]=_[_0x0665('0x31')](_0x39900b['query']);_0x233184[_0x0665('0x32')]=_[_0x0665('0x34')](_0x233184['model'],_0x233184[_0x0665('0x30')]);_0x445d6e[_0x0665('0x33')]=_[_0x0665('0x34')](_0x233184[_0x0665('0x2f')],qs[_0x0665('0x35')](_0x39900b[_0x0665('0x30')][_0x0665('0x35')]));_0x445d6e[_0x0665('0x33')]=_0x445d6e[_0x0665('0x33')][_0x0665('0x36')]?_0x445d6e[_0x0665('0x33')]:_0x233184[_0x0665('0x2f')];_0x445d6e[_0x0665('0x39')]=qs[_0x0665('0x3a')](_0x39900b[_0x0665('0x30')][_0x0665('0x3a')]);_0x445d6e['where']=qs[_0x0665('0x32')](_[_0x0665('0x4e')](_0x39900b[_0x0665('0x30')],_0x233184['filters']));if(_0x39900b[_0x0665('0x30')][_0x0665('0x3c')]){_0x445d6e[_0x0665('0x3b')]=_[_0x0665('0x3e')](_0x445d6e['where'],{'$or':_[_0x0665('0x2a')](_0x445d6e['attributes'],function(_0x2bb0c8){var _0x58cf8e={};_0x58cf8e[_0x2bb0c8]={'$like':'%'+_0x39900b['query'][_0x0665('0x3c')]+'%'};return _0x58cf8e;})});}_0x445d6e=_[_0x0665('0x3e')]({},_0x445d6e,_0x39900b[_0x0665('0x44')]);return _0x1e1e80['getDescriptions'](_0x445d6e);}})[_0x0665('0x3f')](function(_0x12cec3){if(_0x12cec3){_0x100b25=_0x12cec3[_0x0665('0x36')];if(!_0x39900b[_0x0665('0x30')][_0x0665('0x37')](_0x0665('0x38'))){_0x445d6e['limit']=qs['limit'](_0x39900b[_0x0665('0x30')][_0x0665('0x1e')]);_0x445d6e[_0x0665('0x1b')]=qs[_0x0665('0x1b')](_0x39900b[_0x0665('0x30')]['offset']);}return _0x1e1e80['getDescriptions'](_0x445d6e);}})[_0x0665('0x3f')](function(_0x5bb76a){if(_0x5bb76a){return _0x5bb76a?{'count':_0x100b25,'rows':_0x5bb76a}:null;}})[_0x0665('0x3f')](respondWithResult(_0x3071a4,null))['catch'](handleError(_0x3071a4,null));};exports[_0x0665('0x4f')]=function(_0xf52c4a,_0x2d4536,_0x3968c2){var _0x44cf5a={};var _0x3969d8={};var _0xbdb1ca;var _0x12d6e2;return db['FreshsalesConfiguration'][_0x0665('0x4b')]({'where':{'id':_0xf52c4a[_0x0665('0x42')]['id']}})['then'](handleEntityNotFound(_0x2d4536,null))[_0x0665('0x3f')](function(_0x3a9d5b){if(_0x3a9d5b){_0xbdb1ca=_0x3a9d5b;_0x3969d8['model']=_[_0x0665('0x31')](db[_0x0665('0x4c')][_0x0665('0x2c')]);_0x3969d8[_0x0665('0x30')]=_['keys'](_0xf52c4a[_0x0665('0x30')]);_0x3969d8[_0x0665('0x32')]=_[_0x0665('0x34')](_0x3969d8[_0x0665('0x2f')],_0x3969d8[_0x0665('0x30')]);_0x44cf5a[_0x0665('0x33')]=_[_0x0665('0x34')](_0x3969d8[_0x0665('0x2f')],qs[_0x0665('0x35')](_0xf52c4a[_0x0665('0x30')][_0x0665('0x35')]));_0x44cf5a[_0x0665('0x33')]=_0x44cf5a[_0x0665('0x33')][_0x0665('0x36')]?_0x44cf5a['attributes']:_0x3969d8[_0x0665('0x2f')];_0x44cf5a[_0x0665('0x39')]=qs[_0x0665('0x3a')](_0xf52c4a['query'][_0x0665('0x3a')]);_0x44cf5a[_0x0665('0x3b')]=qs['filters'](_[_0x0665('0x4e')](_0xf52c4a[_0x0665('0x30')],_0x3969d8[_0x0665('0x32')]));if(_0xf52c4a['query'][_0x0665('0x3c')]){_0x44cf5a[_0x0665('0x3b')]=_[_0x0665('0x3e')](_0x44cf5a[_0x0665('0x3b')],{'$or':_['map'](_0x44cf5a['attributes'],function(_0x4d3caa){var _0x229bd9={};_0x229bd9[_0x4d3caa]={'$like':'%'+_0xf52c4a[_0x0665('0x30')][_0x0665('0x3c')]+'%'};return _0x229bd9;})});}_0x44cf5a=_[_0x0665('0x3e')]({},_0x44cf5a,_0xf52c4a['options']);return _0xbdb1ca[_0x0665('0x4f')](_0x44cf5a);}})[_0x0665('0x3f')](function(_0x1488c3){if(_0x1488c3){_0x12d6e2=_0x1488c3['length'];if(!_0xf52c4a[_0x0665('0x30')][_0x0665('0x37')](_0x0665('0x38'))){_0x44cf5a['limit']=qs['limit'](_0xf52c4a[_0x0665('0x30')][_0x0665('0x1e')]);_0x44cf5a[_0x0665('0x1b')]=qs['offset'](_0xf52c4a[_0x0665('0x30')][_0x0665('0x1b')]);}return _0xbdb1ca[_0x0665('0x4f')](_0x44cf5a);}})[_0x0665('0x3f')](function(_0x18a029){if(_0x18a029){return _0x18a029?{'count':_0x12d6e2,'rows':_0x18a029}:null;}})[_0x0665('0x3f')](respondWithResult(_0x2d4536,null))[_0x0665('0x45')](handleError(_0x2d4536,null));};
\ No newline at end of file
+var _0x5988=['zip-dir','request-promise','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../mysqldb','status','end','limit','undefined','count','offset','set','Content-Range','json','reject','save','update','destroy','then','sendStatus','error','stack','name','map','FreshsalesConfiguration','type','key','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','include','findAll','rows','catch','show','params','keys','includeAll','options','find','create','body','getSubjects','findOne','rawAttributes','getDescriptions','FreshsalesField','getFields','order','eml-format'];(function(_0x504d9a,_0x187673){var _0x35fe3f=function(_0x3efde3){while(--_0x3efde3){_0x504d9a['push'](_0x504d9a['shift']());}};_0x35fe3f(++_0x187673);}(_0x5988,0x13b));var _0x8598=function(_0x432fca,_0xb0b1b5){_0x432fca=_0x432fca-0x0;var _0x3adba4=_0x5988[_0x432fca];return _0x3adba4;};'use strict';var emlformat=require(_0x8598('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x8598('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x8598('0x2'));var moment=require('moment');var BPromise=require(_0x8598('0x3'));var Mustache=require(_0x8598('0x4'));var util=require(_0x8598('0x5'));var path=require(_0x8598('0x6'));var sox=require(_0x8598('0x7'));var csv=require(_0x8598('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x8598('0x9'));var _=require(_0x8598('0xa'));var squel=require(_0x8598('0xb'));var crypto=require(_0x8598('0xc'));var jsforce=require(_0x8598('0xd'));var deskjs=require(_0x8598('0xe'));var toCsv=require(_0x8598('0x8'));var querystring=require(_0x8598('0xf'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x8598('0x10'));var qs=require(_0x8598('0x11'));var as=require(_0x8598('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x8598('0x13'))(_0x8598('0x14'));var utils=require('../../config/utils');var config=require(_0x8598('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0x8598('0x16'))['db'];function respondWithStatusCode(_0x26c9d3,_0x5dcccb){_0x5dcccb=_0x5dcccb||0xcc;return function(_0x3f34b3){if(_0x3f34b3){return _0x26c9d3['sendStatus'](_0x5dcccb);}return _0x26c9d3[_0x8598('0x17')](_0x5dcccb)[_0x8598('0x18')]();};}function respondWithResult(_0x3177e8,_0x21b6d5){_0x21b6d5=_0x21b6d5||0xc8;return function(_0x4ddb3b){if(_0x4ddb3b){return _0x3177e8[_0x8598('0x17')](_0x21b6d5)['json'](_0x4ddb3b);}};}function respondWithFilteredResult(_0x37f1d8,_0x3bb36a){return function(_0x236093){if(_0x236093){var _0x374b4d=typeof _0x3bb36a['offset']==='undefined'&&typeof _0x3bb36a[_0x8598('0x19')]===_0x8598('0x1a');var _0x19d646=_0x236093[_0x8598('0x1b')];var _0x32a66c=_0x374b4d?0x0:_0x3bb36a[_0x8598('0x1c')];var _0x3b99a8=_0x374b4d?_0x236093[_0x8598('0x1b')]:_0x3bb36a[_0x8598('0x1c')]+_0x3bb36a[_0x8598('0x19')];var _0x3bfd3b;if(_0x3b99a8>=_0x19d646){_0x3b99a8=_0x19d646;_0x3bfd3b=0xc8;}else{_0x3bfd3b=0xce;}_0x37f1d8[_0x8598('0x17')](_0x3bfd3b);return _0x37f1d8[_0x8598('0x1d')](_0x8598('0x1e'),_0x32a66c+'-'+_0x3b99a8+'/'+_0x19d646)[_0x8598('0x1f')](_0x236093);}return null;};}function patchUpdates(_0x5dc91c){return function(_0x21667b){try{jsonpatch['apply'](_0x21667b,_0x5dc91c,!![]);}catch(_0x54ffdd){return BPromise[_0x8598('0x20')](_0x54ffdd);}return _0x21667b[_0x8598('0x21')]();};}function saveUpdates(_0x5d9ace,_0x56e191){return function(_0x20a0d0){if(_0x20a0d0){return _0x20a0d0[_0x8598('0x22')](_0x5d9ace)['then'](function(_0x25d50a){return _0x25d50a;});}return null;};}function removeEntity(_0x14663d,_0x5d4cfa){return function(_0x494aa7){if(_0x494aa7){return _0x494aa7[_0x8598('0x23')]()[_0x8598('0x24')](function(){_0x14663d[_0x8598('0x17')](0xcc)[_0x8598('0x18')]();});}};}function handleEntityNotFound(_0x20f2ae,_0x3e30d5){return function(_0x4d9d93){if(!_0x4d9d93){_0x20f2ae[_0x8598('0x25')](0x194);}return _0x4d9d93;};}function handleError(_0x127a23,_0x2b327b){_0x2b327b=_0x2b327b||0x1f4;return function(_0x58394b){logger[_0x8598('0x26')](_0x58394b[_0x8598('0x27')]);if(_0x58394b[_0x8598('0x28')]){delete _0x58394b['name'];}_0x127a23[_0x8598('0x17')](_0x2b327b)['send'](_0x58394b);};}exports['index']=function(_0x39dde2,_0x328691){var _0x29bb89={},_0x2234ed={},_0x185928={'count':0x0,'rows':[]};var _0x5f4836=_[_0x8598('0x29')](db[_0x8598('0x2a')]['rawAttributes'],function(_0x138aa0){return{'name':_0x138aa0['fieldName'],'type':_0x138aa0[_0x8598('0x2b')][_0x8598('0x2c')]};});_0x2234ed[_0x8598('0x2d')]=_[_0x8598('0x29')](_0x5f4836,_0x8598('0x28'));_0x2234ed[_0x8598('0x2e')]=_['keys'](_0x39dde2[_0x8598('0x2e')]);_0x2234ed[_0x8598('0x2f')]=_[_0x8598('0x30')](_0x2234ed['model'],_0x2234ed['query']);_0x29bb89[_0x8598('0x31')]=_[_0x8598('0x30')](_0x2234ed[_0x8598('0x2d')],qs[_0x8598('0x32')](_0x39dde2['query'][_0x8598('0x32')]));_0x29bb89['attributes']=_0x29bb89[_0x8598('0x31')][_0x8598('0x33')]?_0x29bb89[_0x8598('0x31')]:_0x2234ed[_0x8598('0x2d')];if(!_0x39dde2['query'][_0x8598('0x34')](_0x8598('0x35'))){_0x29bb89[_0x8598('0x19')]=qs[_0x8598('0x19')](_0x39dde2[_0x8598('0x2e')][_0x8598('0x19')]);_0x29bb89[_0x8598('0x1c')]=qs['offset'](_0x39dde2[_0x8598('0x2e')]['offset']);}_0x29bb89['order']=qs[_0x8598('0x36')](_0x39dde2[_0x8598('0x2e')][_0x8598('0x36')]);_0x29bb89[_0x8598('0x37')]=qs['filters'](_[_0x8598('0x38')](_0x39dde2['query'],_0x2234ed[_0x8598('0x2f')]),_0x5f4836);if(_0x39dde2[_0x8598('0x2e')][_0x8598('0x39')]){_0x29bb89[_0x8598('0x37')]=_[_0x8598('0x3a')](_0x29bb89[_0x8598('0x37')],{'$or':_[_0x8598('0x29')](_0x5f4836,function(_0x1c5057){if(_0x1c5057[_0x8598('0x2b')]!==_0x8598('0x3b')){var _0x24aa44={};_0x24aa44[_0x1c5057[_0x8598('0x28')]]={'$like':'%'+_0x39dde2['query']['filter']+'%'};return _0x24aa44;}})});}_0x29bb89=_['merge']({},_0x29bb89,_0x39dde2['options']);var _0x5a6314={'where':_0x29bb89['where']};return db[_0x8598('0x2a')][_0x8598('0x1b')](_0x5a6314)[_0x8598('0x24')](function(_0x41c44c){_0x185928['count']=_0x41c44c;if(_0x39dde2[_0x8598('0x2e')]['includeAll']){_0x29bb89[_0x8598('0x3c')]=[{'all':!![]}];}return db['FreshsalesConfiguration'][_0x8598('0x3d')](_0x29bb89);})[_0x8598('0x24')](function(_0x328e5c){_0x185928[_0x8598('0x3e')]=_0x328e5c;return _0x185928;})[_0x8598('0x24')](respondWithFilteredResult(_0x328691,_0x29bb89))[_0x8598('0x3f')](handleError(_0x328691,null));};exports[_0x8598('0x40')]=function(_0x462f32,_0x35133a){var _0x5ad4b5={'raw':![],'where':{'id':_0x462f32[_0x8598('0x41')]['id']}},_0x3d250a={};_0x3d250a[_0x8598('0x2d')]=_[_0x8598('0x42')](db[_0x8598('0x2a')]['rawAttributes']);_0x3d250a['query']=_['keys'](_0x462f32[_0x8598('0x2e')]);_0x3d250a[_0x8598('0x2f')]=_[_0x8598('0x30')](_0x3d250a['model'],_0x3d250a[_0x8598('0x2e')]);_0x5ad4b5[_0x8598('0x31')]=_[_0x8598('0x30')](_0x3d250a[_0x8598('0x2d')],qs[_0x8598('0x32')](_0x462f32[_0x8598('0x2e')][_0x8598('0x32')]));_0x5ad4b5['attributes']=_0x5ad4b5[_0x8598('0x31')][_0x8598('0x33')]?_0x5ad4b5['attributes']:_0x3d250a[_0x8598('0x2d')];if(_0x462f32['query'][_0x8598('0x43')]){_0x5ad4b5[_0x8598('0x3c')]=[{'all':!![]}];}_0x5ad4b5=_[_0x8598('0x3a')]({},_0x5ad4b5,_0x462f32[_0x8598('0x44')]);return db[_0x8598('0x2a')][_0x8598('0x45')](_0x5ad4b5)[_0x8598('0x24')](handleEntityNotFound(_0x35133a,null))[_0x8598('0x24')](respondWithResult(_0x35133a,null))[_0x8598('0x3f')](handleError(_0x35133a,null));};exports[_0x8598('0x46')]=function(_0x28dd63,_0x5c4655){return db['FreshsalesConfiguration'][_0x8598('0x46')](_0x28dd63[_0x8598('0x47')],{})[_0x8598('0x24')](respondWithResult(_0x5c4655,0xc9))[_0x8598('0x3f')](handleError(_0x5c4655,null));};exports[_0x8598('0x22')]=function(_0x51cef2,_0x4d89a0){if(_0x51cef2['body']['id']){delete _0x51cef2[_0x8598('0x47')]['id'];}return db[_0x8598('0x2a')][_0x8598('0x45')]({'where':{'id':_0x51cef2[_0x8598('0x41')]['id']}})['then'](handleEntityNotFound(_0x4d89a0,null))[_0x8598('0x24')](saveUpdates(_0x51cef2[_0x8598('0x47')],null))['then'](respondWithResult(_0x4d89a0,null))[_0x8598('0x3f')](handleError(_0x4d89a0,null));};exports[_0x8598('0x23')]=function(_0x5a12dc,_0x5cd235){return db['FreshsalesConfiguration'][_0x8598('0x45')]({'where':{'id':_0x5a12dc['params']['id']}})[_0x8598('0x24')](handleEntityNotFound(_0x5cd235,null))['then'](removeEntity(_0x5cd235,null))['catch'](handleError(_0x5cd235,null));};exports[_0x8598('0x48')]=function(_0x5541aa,_0x10f00a,_0x2cf86d){var _0x472bec={};var _0x27781d={};var _0x4a6d69;var _0x2fa394;return db[_0x8598('0x2a')][_0x8598('0x49')]({'where':{'id':_0x5541aa[_0x8598('0x41')]['id']}})[_0x8598('0x24')](handleEntityNotFound(_0x10f00a,null))[_0x8598('0x24')](function(_0x3fc879){if(_0x3fc879){_0x4a6d69=_0x3fc879;_0x27781d['model']=_[_0x8598('0x42')](db['FreshsalesField'][_0x8598('0x4a')]);_0x27781d[_0x8598('0x2e')]=_[_0x8598('0x42')](_0x5541aa[_0x8598('0x2e')]);_0x27781d[_0x8598('0x2f')]=_[_0x8598('0x30')](_0x27781d['model'],_0x27781d[_0x8598('0x2e')]);_0x472bec[_0x8598('0x31')]=_['intersection'](_0x27781d['model'],qs['fields'](_0x5541aa[_0x8598('0x2e')]['fields']));_0x472bec[_0x8598('0x31')]=_0x472bec[_0x8598('0x31')][_0x8598('0x33')]?_0x472bec[_0x8598('0x31')]:_0x27781d[_0x8598('0x2d')];_0x472bec['order']=qs[_0x8598('0x36')](_0x5541aa[_0x8598('0x2e')][_0x8598('0x36')]);_0x472bec[_0x8598('0x37')]=qs[_0x8598('0x2f')](_[_0x8598('0x38')](_0x5541aa[_0x8598('0x2e')],_0x27781d[_0x8598('0x2f')]));if(_0x5541aa[_0x8598('0x2e')]['filter']){_0x472bec[_0x8598('0x37')]=_[_0x8598('0x3a')](_0x472bec[_0x8598('0x37')],{'$or':_[_0x8598('0x29')](_0x472bec['attributes'],function(_0x49dace){var _0x1a0478={};_0x1a0478[_0x49dace]={'$like':'%'+_0x5541aa[_0x8598('0x2e')][_0x8598('0x39')]+'%'};return _0x1a0478;})});}_0x472bec=_[_0x8598('0x3a')]({},_0x472bec,_0x5541aa['options']);return _0x4a6d69[_0x8598('0x48')](_0x472bec);}})[_0x8598('0x24')](function(_0x163971){if(_0x163971){_0x2fa394=_0x163971['length'];if(!_0x5541aa[_0x8598('0x2e')][_0x8598('0x34')]('nolimit')){_0x472bec[_0x8598('0x19')]=qs[_0x8598('0x19')](_0x5541aa[_0x8598('0x2e')][_0x8598('0x19')]);_0x472bec[_0x8598('0x1c')]=qs['offset'](_0x5541aa[_0x8598('0x2e')][_0x8598('0x1c')]);}return _0x4a6d69[_0x8598('0x48')](_0x472bec);}})[_0x8598('0x24')](function(_0xba86ee){if(_0xba86ee){return _0xba86ee?{'count':_0x2fa394,'rows':_0xba86ee}:null;}})['then'](respondWithResult(_0x10f00a,null))['catch'](handleError(_0x10f00a,null));};exports[_0x8598('0x4b')]=function(_0x1fc770,_0x26df2a,_0x4ef52c){var _0x566c10={};var _0x2f2ba2={};var _0x3a8b49;var _0x1738c1;return db[_0x8598('0x2a')][_0x8598('0x49')]({'where':{'id':_0x1fc770[_0x8598('0x41')]['id']}})['then'](handleEntityNotFound(_0x26df2a,null))['then'](function(_0x41f289){if(_0x41f289){_0x3a8b49=_0x41f289;_0x2f2ba2[_0x8598('0x2d')]=_[_0x8598('0x42')](db[_0x8598('0x4c')][_0x8598('0x4a')]);_0x2f2ba2[_0x8598('0x2e')]=_[_0x8598('0x42')](_0x1fc770[_0x8598('0x2e')]);_0x2f2ba2['filters']=_['intersection'](_0x2f2ba2[_0x8598('0x2d')],_0x2f2ba2[_0x8598('0x2e')]);_0x566c10[_0x8598('0x31')]=_[_0x8598('0x30')](_0x2f2ba2['model'],qs[_0x8598('0x32')](_0x1fc770[_0x8598('0x2e')]['fields']));_0x566c10[_0x8598('0x31')]=_0x566c10[_0x8598('0x31')][_0x8598('0x33')]?_0x566c10['attributes']:_0x2f2ba2[_0x8598('0x2d')];_0x566c10['order']=qs[_0x8598('0x36')](_0x1fc770[_0x8598('0x2e')][_0x8598('0x36')]);_0x566c10['where']=qs['filters'](_['pick'](_0x1fc770[_0x8598('0x2e')],_0x2f2ba2['filters']));if(_0x1fc770[_0x8598('0x2e')][_0x8598('0x39')]){_0x566c10[_0x8598('0x37')]=_[_0x8598('0x3a')](_0x566c10[_0x8598('0x37')],{'$or':_[_0x8598('0x29')](_0x566c10[_0x8598('0x31')],function(_0x20a83d){var _0x46dceb={};_0x46dceb[_0x20a83d]={'$like':'%'+_0x1fc770[_0x8598('0x2e')][_0x8598('0x39')]+'%'};return _0x46dceb;})});}_0x566c10=_[_0x8598('0x3a')]({},_0x566c10,_0x1fc770[_0x8598('0x44')]);return _0x3a8b49[_0x8598('0x4b')](_0x566c10);}})['then'](function(_0x559d1b){if(_0x559d1b){_0x1738c1=_0x559d1b[_0x8598('0x33')];if(!_0x1fc770['query']['hasOwnProperty'](_0x8598('0x35'))){_0x566c10[_0x8598('0x19')]=qs[_0x8598('0x19')](_0x1fc770[_0x8598('0x2e')]['limit']);_0x566c10['offset']=qs['offset'](_0x1fc770['query'][_0x8598('0x1c')]);}return _0x3a8b49[_0x8598('0x4b')](_0x566c10);}})[_0x8598('0x24')](function(_0x3cf6cd){if(_0x3cf6cd){return _0x3cf6cd?{'count':_0x1738c1,'rows':_0x3cf6cd}:null;}})['then'](respondWithResult(_0x26df2a,null))[_0x8598('0x3f')](handleError(_0x26df2a,null));};exports[_0x8598('0x4d')]=function(_0x5c63db,_0x59680c,_0x1b1e38){var _0x45f0c9={};var _0x3e2e29={};var _0x5a8d6b;var _0x15232b;return db[_0x8598('0x2a')][_0x8598('0x49')]({'where':{'id':_0x5c63db[_0x8598('0x41')]['id']}})[_0x8598('0x24')](handleEntityNotFound(_0x59680c,null))[_0x8598('0x24')](function(_0x4f2506){if(_0x4f2506){_0x5a8d6b=_0x4f2506;_0x3e2e29[_0x8598('0x2d')]=_[_0x8598('0x42')](db[_0x8598('0x4c')][_0x8598('0x4a')]);_0x3e2e29[_0x8598('0x2e')]=_[_0x8598('0x42')](_0x5c63db['query']);_0x3e2e29['filters']=_['intersection'](_0x3e2e29[_0x8598('0x2d')],_0x3e2e29[_0x8598('0x2e')]);_0x45f0c9[_0x8598('0x31')]=_[_0x8598('0x30')](_0x3e2e29[_0x8598('0x2d')],qs['fields'](_0x5c63db['query'][_0x8598('0x32')]));_0x45f0c9['attributes']=_0x45f0c9[_0x8598('0x31')]['length']?_0x45f0c9[_0x8598('0x31')]:_0x3e2e29['model'];_0x45f0c9[_0x8598('0x4e')]=qs[_0x8598('0x36')](_0x5c63db['query'][_0x8598('0x36')]);_0x45f0c9[_0x8598('0x37')]=qs[_0x8598('0x2f')](_[_0x8598('0x38')](_0x5c63db[_0x8598('0x2e')],_0x3e2e29[_0x8598('0x2f')]));if(_0x5c63db[_0x8598('0x2e')][_0x8598('0x39')]){_0x45f0c9['where']=_[_0x8598('0x3a')](_0x45f0c9['where'],{'$or':_[_0x8598('0x29')](_0x45f0c9['attributes'],function(_0x3c597f){var _0x14fafb={};_0x14fafb[_0x3c597f]={'$like':'%'+_0x5c63db['query'][_0x8598('0x39')]+'%'};return _0x14fafb;})});}_0x45f0c9=_[_0x8598('0x3a')]({},_0x45f0c9,_0x5c63db['options']);return _0x5a8d6b[_0x8598('0x4d')](_0x45f0c9);}})[_0x8598('0x24')](function(_0x129b0b){if(_0x129b0b){_0x15232b=_0x129b0b[_0x8598('0x33')];if(!_0x5c63db['query']['hasOwnProperty']('nolimit')){_0x45f0c9['limit']=qs[_0x8598('0x19')](_0x5c63db[_0x8598('0x2e')]['limit']);_0x45f0c9[_0x8598('0x1c')]=qs[_0x8598('0x1c')](_0x5c63db['query'][_0x8598('0x1c')]);}return _0x5a8d6b[_0x8598('0x4d')](_0x45f0c9);}})[_0x8598('0x24')](function(_0x4b00c0){if(_0x4b00c0){return _0x4b00c0?{'count':_0x15232b,'rows':_0x4b00c0}:null;}})[_0x8598('0x24')](respondWithResult(_0x59680c,null))[_0x8598('0x3f')](handleError(_0x59680c,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa4d4=['path','rimraf','../../config/environment','./intFreshsalesConfiguration.attributes','define','util','../../config/logger','api','bluebird','request-promise'];(function(_0x478acb,_0x595555){var _0x353e6a=function(_0x249203){while(--_0x249203){_0x478acb['push'](_0x478acb['shift']());}};_0x353e6a(++_0x595555);}(_0xa4d4,0x109));var _0x4a4d=function(_0x54fa87,_0x80e050){_0x54fa87=_0x54fa87-0x0;var _0x5d73b5=_0xa4d4[_0x54fa87];return _0x5d73b5;};'use strict';var _=require('lodash');var util=require(_0x4a4d('0x0'));var logger=require(_0x4a4d('0x1'))(_0x4a4d('0x2'));var moment=require('moment');var BPromise=require(_0x4a4d('0x3'));var rp=require(_0x4a4d('0x4'));var fs=require('fs');var path=require(_0x4a4d('0x5'));var rimraf=require(_0x4a4d('0x6'));var config=require(_0x4a4d('0x7'));var attributes=require(_0x4a4d('0x8'));module['exports']=function(_0x5728b8,_0x22f2ce){return _0x5728b8[_0x4a4d('0x9')]('FreshsalesConfiguration',attributes,{'tableName':'int_freshsales_configurations','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x2a85=['path','rimraf','../../config/environment','./intFreshsalesConfiguration.attributes','exports','int_freshsales_configurations','lodash','api','moment','bluebird','request-promise'];(function(_0x32b5da,_0x45d994){var _0x1304ab=function(_0x30b6e6){while(--_0x30b6e6){_0x32b5da['push'](_0x32b5da['shift']());}};_0x1304ab(++_0x45d994);}(_0x2a85,0x1ea));var _0x52a8=function(_0x290ef7,_0xa522f1){_0x290ef7=_0x290ef7-0x0;var _0xd88752=_0x2a85[_0x290ef7];return _0xd88752;};'use strict';var _=require(_0x52a8('0x0'));var util=require('util');var logger=require('../../config/logger')(_0x52a8('0x1'));var moment=require(_0x52a8('0x2'));var BPromise=require(_0x52a8('0x3'));var rp=require(_0x52a8('0x4'));var fs=require('fs');var path=require(_0x52a8('0x5'));var rimraf=require(_0x52a8('0x6'));var config=require(_0x52a8('0x7'));var attributes=require(_0x52a8('0x8'));module[_0x52a8('0x9')]=function(_0x2f295c,_0x18dbcc){return _0x2f295c['define']('FreshsalesConfiguration',attributes,{'tableName':_0x52a8('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8d03=['lodash','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','jayson/promise','client','info','FreshsalesConfiguration,\x20%s,\x20%s','request\x20sent','debug','FreshsalesConfiguration,\x20%s,\x20%s,\x20%s','error','code','message','catch'];(function(_0x1f42a4,_0x4e221f){var _0x4a6514=function(_0x55289f){while(--_0x55289f){_0x1f42a4['push'](_0x1f42a4['shift']());}};_0x4a6514(++_0x4e221f);}(_0x8d03,0x8c));var _0x38d0=function(_0x2d7f0e,_0x3e6fbd){_0x2d7f0e=_0x2d7f0e-0x0;var _0x110b07=_0x8d03[_0x2d7f0e];return _0x110b07;};'use strict';var _=require(_0x38d0('0x0'));var util=require(_0x38d0('0x1'));var moment=require(_0x38d0('0x2'));var BPromise=require(_0x38d0('0x3'));var rs=require(_0x38d0('0x4'));var fs=require('fs');var Redis=require(_0x38d0('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0x38d0('0x6'));var logger=require(_0x38d0('0x7'))(_0x38d0('0x8'));var config=require('../../config/environment');var jayson=require(_0x38d0('0x9'));var client=jayson[_0x38d0('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0x3e48d6,_0x1004e2,_0x9819d5){return new BPromise(function(_0x45d5ce,_0x327199){return client['request'](_0x3e48d6,_0x9819d5)['then'](function(_0xe260dd){logger[_0x38d0('0xb')](_0x38d0('0xc'),_0x1004e2,_0x38d0('0xd'));logger[_0x38d0('0xe')](_0x38d0('0xf'),_0x1004e2,_0x38d0('0xd'),JSON['stringify'](_0xe260dd));if(_0xe260dd[_0x38d0('0x10')]){if(_0xe260dd[_0x38d0('0x10')][_0x38d0('0x11')]===0x1f4){logger[_0x38d0('0x10')](_0x38d0('0xc'),_0x1004e2,_0xe260dd[_0x38d0('0x10')][_0x38d0('0x12')]);return _0x327199(_0xe260dd[_0x38d0('0x10')]['message']);}logger[_0x38d0('0x10')]('FreshsalesConfiguration,\x20%s,\x20%s',_0x1004e2,_0xe260dd['error'][_0x38d0('0x12')]);return _0x45d5ce(_0xe260dd['error'][_0x38d0('0x12')]);}else{logger[_0x38d0('0xb')](_0x38d0('0xc'),_0x1004e2,_0x38d0('0xd'));_0x45d5ce(_0xe260dd['result'][_0x38d0('0x12')]);}})[_0x38d0('0x13')](function(_0x45162b){logger[_0x38d0('0x10')](_0x38d0('0xc'),_0x1004e2,_0x45162b);_0x327199(_0x45162b);});});}
\ No newline at end of file
+var _0x4326=['FreshsalesConfiguration,\x20%s,\x20%s,\x20%s','stringify','code','error','message','FreshsalesConfiguration,\x20%s,\x20%s','result','catch','lodash','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','request','info','request\x20sent','debug'];(function(_0x550c34,_0x380a97){var _0x35900a=function(_0x2c4bac){while(--_0x2c4bac){_0x550c34['push'](_0x550c34['shift']());}};_0x35900a(++_0x380a97);}(_0x4326,0x14a));var _0x6432=function(_0x5cf3ad,_0x24a692){_0x5cf3ad=_0x5cf3ad-0x0;var _0x516957=_0x4326[_0x5cf3ad];return _0x516957;};'use strict';var _=require(_0x6432('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0x6432('0x1'));var rs=require(_0x6432('0x2'));var fs=require('fs');var Redis=require(_0x6432('0x3'));var db=require(_0x6432('0x4'))['db'];var utils=require(_0x6432('0x5'));var logger=require(_0x6432('0x6'))(_0x6432('0x7'));var config=require(_0x6432('0x8'));var jayson=require(_0x6432('0x9'));var client=jayson['client'][_0x6432('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x305ed0,_0x31f314,_0x46be72){return new BPromise(function(_0x5065fd,_0x33fce4){return client[_0x6432('0xb')](_0x305ed0,_0x46be72)['then'](function(_0x2ff633){logger[_0x6432('0xc')]('FreshsalesConfiguration,\x20%s,\x20%s',_0x31f314,_0x6432('0xd'));logger[_0x6432('0xe')](_0x6432('0xf'),_0x31f314,_0x6432('0xd'),JSON[_0x6432('0x10')](_0x2ff633));if(_0x2ff633['error']){if(_0x2ff633['error'][_0x6432('0x11')]===0x1f4){logger[_0x6432('0x12')]('FreshsalesConfiguration,\x20%s,\x20%s',_0x31f314,_0x2ff633[_0x6432('0x12')]['message']);return _0x33fce4(_0x2ff633['error'][_0x6432('0x13')]);}logger[_0x6432('0x12')]('FreshsalesConfiguration,\x20%s,\x20%s',_0x31f314,_0x2ff633[_0x6432('0x12')]['message']);return _0x5065fd(_0x2ff633[_0x6432('0x12')][_0x6432('0x13')]);}else{logger[_0x6432('0xc')](_0x6432('0x14'),_0x31f314,_0x6432('0xd'));_0x5065fd(_0x2ff633[_0x6432('0x15')][_0x6432('0x13')]);}})[_0x6432('0x16')](function(_0x1438f6){logger[_0x6432('0x12')](_0x6432('0x14'),_0x31f314,_0x1438f6);_0x33fce4(_0x1438f6);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1789=['destroy','exports','multer','util','path','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','get','isAuthenticated','index','show','post','update','delete','/:id'];(function(_0x275f1a,_0x3c9c7d){var _0x5426fc=function(_0x3019e9){while(--_0x3019e9){_0x275f1a['push'](_0x275f1a['shift']());}};_0x5426fc(++_0x3c9c7d);}(_0x1789,0x92));var _0x9178=function(_0x530ddb,_0x3008f8){_0x530ddb=_0x530ddb-0x0;var _0x4fa295=_0x1789[_0x530ddb];return _0x4fa295;};'use strict';var multer=require(_0x9178('0x0'));var util=require(_0x9178('0x1'));var path=require(_0x9178('0x2'));var timeout=require('connect-timeout');var express=require(_0x9178('0x3'));var router=express[_0x9178('0x4')]();var fs_extra=require(_0x9178('0x5'));var auth=require(_0x9178('0x6'));var interaction=require(_0x9178('0x7'));var config=require('../../config/environment');var controller=require('./intFreshsalesField.controller');router[_0x9178('0x8')]('/',auth[_0x9178('0x9')](),controller[_0x9178('0xa')]);router[_0x9178('0x8')]('/:id',auth[_0x9178('0x9')](),controller[_0x9178('0xb')]);router[_0x9178('0xc')]('/',auth[_0x9178('0x9')](),controller['create']);router['put']('/:id',auth[_0x9178('0x9')](),controller[_0x9178('0xd')]);router[_0x9178('0xe')](_0x9178('0xf'),auth['isAuthenticated'](),controller[_0x9178('0x10')]);module[_0x9178('0x11')]=router;
\ No newline at end of file
+var _0xb7cf=['destroy','exports','multer','util','path','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./intFreshsalesField.controller','get','isAuthenticated','index','/:id','show','post','put','delete'];(function(_0x37f2b6,_0x4a55e8){var _0x5a9cde=function(_0xb14d09){while(--_0xb14d09){_0x37f2b6['push'](_0x37f2b6['shift']());}};_0x5a9cde(++_0x4a55e8);}(_0xb7cf,0xca));var _0xfb7c=function(_0x135ebc,_0x123430){_0x135ebc=_0x135ebc-0x0;var _0x210162=_0xb7cf[_0x135ebc];return _0x210162;};'use strict';var multer=require(_0xfb7c('0x0'));var util=require(_0xfb7c('0x1'));var path=require(_0xfb7c('0x2'));var timeout=require(_0xfb7c('0x3'));var express=require(_0xfb7c('0x4'));var router=express['Router']();var fs_extra=require(_0xfb7c('0x5'));var auth=require(_0xfb7c('0x6'));var interaction=require(_0xfb7c('0x7'));var config=require(_0xfb7c('0x8'));var controller=require(_0xfb7c('0x9'));router[_0xfb7c('0xa')]('/',auth[_0xfb7c('0xb')](),controller[_0xfb7c('0xc')]);router[_0xfb7c('0xa')](_0xfb7c('0xd'),auth[_0xfb7c('0xb')](),controller[_0xfb7c('0xe')]);router[_0xfb7c('0xf')]('/',auth[_0xfb7c('0xb')](),controller['create']);router[_0xfb7c('0x10')](_0xfb7c('0xd'),auth[_0xfb7c('0xb')](),controller['update']);router[_0xfb7c('0x11')]('/:id',auth['isAuthenticated'](),controller[_0xfb7c('0x12')]);module[_0xfb7c('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa959=['BOOLEAN','sequelize','ENUM','string','variable','customVariable','keyValue','STRING'];(function(_0x5037ab,_0x43209e){var _0x512adb=function(_0x261783){while(--_0x261783){_0x5037ab['push'](_0x5037ab['shift']());}};_0x512adb(++_0x43209e);}(_0xa959,0x1d1));var _0x9a95=function(_0x2481c2,_0x198e94){_0x2481c2=_0x2481c2-0x0;var _0x4fd1bb=_0xa959[_0x2481c2];return _0x4fd1bb;};'use strict';var Sequelize=require(_0x9a95('0x0'));module['exports']={'type':{'type':Sequelize[_0x9a95('0x1')](_0x9a95('0x2'),_0x9a95('0x3'),_0x9a95('0x4'),_0x9a95('0x5'),'picklist'),'defaultValue':'string'},'content':{'type':Sequelize[_0x9a95('0x6')]},'key':{'type':Sequelize['STRING']},'keyType':{'type':Sequelize[_0x9a95('0x1')](_0x9a95('0x2'),_0x9a95('0x3'),_0x9a95('0x4'))},'keyContent':{'type':Sequelize[_0x9a95('0x6')]},'idField':{'type':Sequelize['STRING']},'nameField':{'type':Sequelize[_0x9a95('0x6')]},'customField':{'type':Sequelize[_0x9a95('0x7')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0x9a95('0x6')]}};
\ No newline at end of file
+var _0xcddb=['string','variable','customVariable','ENUM','STRING','sequelize','exports'];(function(_0x2641f9,_0x26715f){var _0x585741=function(_0x2d1462){while(--_0x2d1462){_0x2641f9['push'](_0x2641f9['shift']());}};_0x585741(++_0x26715f);}(_0xcddb,0x163));var _0xbcdd=function(_0x8b6a49,_0x39f608){_0x8b6a49=_0x8b6a49-0x0;var _0x1f4abf=_0xcddb[_0x8b6a49];return _0x1f4abf;};'use strict';var Sequelize=require(_0xbcdd('0x0'));module[_0xbcdd('0x1')]={'type':{'type':Sequelize['ENUM'](_0xbcdd('0x2'),_0xbcdd('0x3'),_0xbcdd('0x4'),'keyValue','picklist'),'defaultValue':'string'},'content':{'type':Sequelize['STRING']},'key':{'type':Sequelize['STRING']},'keyType':{'type':Sequelize[_0xbcdd('0x5')](_0xbcdd('0x2'),_0xbcdd('0x3'),'customVariable')},'keyContent':{'type':Sequelize[_0xbcdd('0x6')]},'idField':{'type':Sequelize[_0xbcdd('0x6')]},'nameField':{'type':Sequelize[_0xbcdd('0x6')]},'customField':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'variableName':{'type':Sequelize[_0xbcdd('0x6')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8ead=['length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','type','VIRTUAL','options','findAll','rows','catch','show','params','includeAll','include','find','create','body','destroy','rimraf','bluebird','mustache','util','path','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','offset','limit','undefined','count','set','Content-Range','json','apply','reject','save','update','then','sendStatus','error','stack','name','send','index','map','FreshsalesField','rawAttributes','fieldName','key','model','query','keys','filters','attributes','intersection','fields'];(function(_0x2af642,_0x519c58){var _0x2f807c=function(_0x25888b){while(--_0x25888b){_0x2af642['push'](_0x2af642['shift']());}};_0x2f807c(++_0x519c58);}(_0x8ead,0xb3));var _0xd8ea=function(_0x2d6593,_0x57e74a){_0x2d6593=_0x2d6593-0x0;var _0x1b2a82=_0x8ead[_0x2d6593];return _0x1b2a82;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xd8ea('0x0'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xd8ea('0x1'));var Mustache=require(_0xd8ea('0x2'));var util=require(_0xd8ea('0x3'));var path=require(_0xd8ea('0x4'));var sox=require('sox');var csv=require(_0xd8ea('0x5'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xd8ea('0x6'));var _=require(_0xd8ea('0x7'));var squel=require(_0xd8ea('0x8'));var crypto=require(_0xd8ea('0x9'));var jsforce=require(_0xd8ea('0xa'));var deskjs=require(_0xd8ea('0xb'));var toCsv=require(_0xd8ea('0x5'));var querystring=require(_0xd8ea('0xc'));var Papa=require(_0xd8ea('0xd'));var Redis=require(_0xd8ea('0xe'));var authService=require(_0xd8ea('0xf'));var qs=require(_0xd8ea('0x10'));var as=require(_0xd8ea('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xd8ea('0x12'))('api');var utils=require(_0xd8ea('0x13'));var config=require(_0xd8ea('0x14'));var licenseUtil=require(_0xd8ea('0x15'));var db=require(_0xd8ea('0x16'))['db'];function respondWithStatusCode(_0xe4995c,_0x223798){_0x223798=_0x223798||0xcc;return function(_0x252a98){if(_0x252a98){return _0xe4995c['sendStatus'](_0x223798);}return _0xe4995c[_0xd8ea('0x17')](_0x223798)[_0xd8ea('0x18')]();};}function respondWithResult(_0x551155,_0x9665e7){_0x9665e7=_0x9665e7||0xc8;return function(_0x1f2d32){if(_0x1f2d32){return _0x551155[_0xd8ea('0x17')](_0x9665e7)['json'](_0x1f2d32);}};}function respondWithFilteredResult(_0x36c2ef,_0x5bec15){return function(_0x4a2bf5){if(_0x4a2bf5){var _0xd69c9a=typeof _0x5bec15[_0xd8ea('0x19')]==='undefined'&&typeof _0x5bec15[_0xd8ea('0x1a')]===_0xd8ea('0x1b');var _0xdff3aa=_0x4a2bf5[_0xd8ea('0x1c')];var _0x6d5903=_0xd69c9a?0x0:_0x5bec15[_0xd8ea('0x19')];var _0x37df48=_0xd69c9a?_0x4a2bf5[_0xd8ea('0x1c')]:_0x5bec15[_0xd8ea('0x19')]+_0x5bec15[_0xd8ea('0x1a')];var _0x1c91c9;if(_0x37df48>=_0xdff3aa){_0x37df48=_0xdff3aa;_0x1c91c9=0xc8;}else{_0x1c91c9=0xce;}_0x36c2ef['status'](_0x1c91c9);return _0x36c2ef[_0xd8ea('0x1d')](_0xd8ea('0x1e'),_0x6d5903+'-'+_0x37df48+'/'+_0xdff3aa)[_0xd8ea('0x1f')](_0x4a2bf5);}return null;};}function patchUpdates(_0xe46c25){return function(_0x5dcdf0){try{jsonpatch[_0xd8ea('0x20')](_0x5dcdf0,_0xe46c25,!![]);}catch(_0x186749){return BPromise[_0xd8ea('0x21')](_0x186749);}return _0x5dcdf0[_0xd8ea('0x22')]();};}function saveUpdates(_0x1f6b97,_0x4ca504){return function(_0x333e4a){if(_0x333e4a){return _0x333e4a[_0xd8ea('0x23')](_0x1f6b97)[_0xd8ea('0x24')](function(_0x372beb){return _0x372beb;});}return null;};}function removeEntity(_0x289986,_0x3f8108){return function(_0x33f86a){if(_0x33f86a){return _0x33f86a['destroy']()['then'](function(){_0x289986[_0xd8ea('0x17')](0xcc)['end']();});}};}function handleEntityNotFound(_0x34de9e,_0x3624c7){return function(_0x42e518){if(!_0x42e518){_0x34de9e[_0xd8ea('0x25')](0x194);}return _0x42e518;};}function handleError(_0x1291cd,_0xc03af6){_0xc03af6=_0xc03af6||0x1f4;return function(_0x4869a5){logger[_0xd8ea('0x26')](_0x4869a5[_0xd8ea('0x27')]);if(_0x4869a5[_0xd8ea('0x28')]){delete _0x4869a5['name'];}_0x1291cd[_0xd8ea('0x17')](_0xc03af6)[_0xd8ea('0x29')](_0x4869a5);};}exports[_0xd8ea('0x2a')]=function(_0x2c28ee,_0x237508){var _0x1e5713={},_0xfefcec={},_0x41c0a2={'count':0x0,'rows':[]};var _0xbb8d77=_[_0xd8ea('0x2b')](db[_0xd8ea('0x2c')][_0xd8ea('0x2d')],function(_0x1d783c){return{'name':_0x1d783c[_0xd8ea('0x2e')],'type':_0x1d783c['type'][_0xd8ea('0x2f')]};});_0xfefcec[_0xd8ea('0x30')]=_[_0xd8ea('0x2b')](_0xbb8d77,_0xd8ea('0x28'));_0xfefcec[_0xd8ea('0x31')]=_[_0xd8ea('0x32')](_0x2c28ee[_0xd8ea('0x31')]);_0xfefcec[_0xd8ea('0x33')]=_['intersection'](_0xfefcec[_0xd8ea('0x30')],_0xfefcec[_0xd8ea('0x31')]);_0x1e5713[_0xd8ea('0x34')]=_[_0xd8ea('0x35')](_0xfefcec['model'],qs['fields'](_0x2c28ee[_0xd8ea('0x31')][_0xd8ea('0x36')]));_0x1e5713[_0xd8ea('0x34')]=_0x1e5713[_0xd8ea('0x34')][_0xd8ea('0x37')]?_0x1e5713[_0xd8ea('0x34')]:_0xfefcec['model'];if(!_0x2c28ee[_0xd8ea('0x31')][_0xd8ea('0x38')](_0xd8ea('0x39'))){_0x1e5713['limit']=qs[_0xd8ea('0x1a')](_0x2c28ee[_0xd8ea('0x31')][_0xd8ea('0x1a')]);_0x1e5713[_0xd8ea('0x19')]=qs[_0xd8ea('0x19')](_0x2c28ee[_0xd8ea('0x31')]['offset']);}_0x1e5713[_0xd8ea('0x3a')]=qs[_0xd8ea('0x3b')](_0x2c28ee[_0xd8ea('0x31')]['sort']);_0x1e5713[_0xd8ea('0x3c')]=qs[_0xd8ea('0x33')](_[_0xd8ea('0x3d')](_0x2c28ee[_0xd8ea('0x31')],_0xfefcec[_0xd8ea('0x33')]),_0xbb8d77);if(_0x2c28ee[_0xd8ea('0x31')][_0xd8ea('0x3e')]){_0x1e5713[_0xd8ea('0x3c')]=_[_0xd8ea('0x3f')](_0x1e5713['where'],{'$or':_['map'](_0xbb8d77,function(_0x118962){if(_0x118962[_0xd8ea('0x40')]!==_0xd8ea('0x41')){var _0x3bfe1c={};_0x3bfe1c[_0x118962[_0xd8ea('0x28')]]={'$like':'%'+_0x2c28ee[_0xd8ea('0x31')][_0xd8ea('0x3e')]+'%'};return _0x3bfe1c;}})});}_0x1e5713=_['merge']({},_0x1e5713,_0x2c28ee[_0xd8ea('0x42')]);var _0x46dc28={'where':_0x1e5713[_0xd8ea('0x3c')]};return db['FreshsalesField'][_0xd8ea('0x1c')](_0x46dc28)[_0xd8ea('0x24')](function(_0x6ee509){_0x41c0a2[_0xd8ea('0x1c')]=_0x6ee509;if(_0x2c28ee[_0xd8ea('0x31')]['includeAll']){_0x1e5713['include']=[{'all':!![]}];}return db[_0xd8ea('0x2c')][_0xd8ea('0x43')](_0x1e5713);})['then'](function(_0x175934){_0x41c0a2[_0xd8ea('0x44')]=_0x175934;return _0x41c0a2;})[_0xd8ea('0x24')](respondWithFilteredResult(_0x237508,_0x1e5713))[_0xd8ea('0x45')](handleError(_0x237508,null));};exports[_0xd8ea('0x46')]=function(_0x56d98d,_0x18ff08){var _0x113d45={'raw':!![],'where':{'id':_0x56d98d[_0xd8ea('0x47')]['id']}},_0x5e54ef={};_0x5e54ef[_0xd8ea('0x30')]=_[_0xd8ea('0x32')](db[_0xd8ea('0x2c')]['rawAttributes']);_0x5e54ef[_0xd8ea('0x31')]=_[_0xd8ea('0x32')](_0x56d98d[_0xd8ea('0x31')]);_0x5e54ef[_0xd8ea('0x33')]=_[_0xd8ea('0x35')](_0x5e54ef[_0xd8ea('0x30')],_0x5e54ef[_0xd8ea('0x31')]);_0x113d45[_0xd8ea('0x34')]=_[_0xd8ea('0x35')](_0x5e54ef[_0xd8ea('0x30')],qs[_0xd8ea('0x36')](_0x56d98d[_0xd8ea('0x31')][_0xd8ea('0x36')]));_0x113d45[_0xd8ea('0x34')]=_0x113d45[_0xd8ea('0x34')][_0xd8ea('0x37')]?_0x113d45[_0xd8ea('0x34')]:_0x5e54ef[_0xd8ea('0x30')];if(_0x56d98d[_0xd8ea('0x31')][_0xd8ea('0x48')]){_0x113d45[_0xd8ea('0x49')]=[{'all':!![]}];}_0x113d45=_['merge']({},_0x113d45,_0x56d98d['options']);return db[_0xd8ea('0x2c')][_0xd8ea('0x4a')](_0x113d45)[_0xd8ea('0x24')](handleEntityNotFound(_0x18ff08,null))[_0xd8ea('0x24')](respondWithResult(_0x18ff08,null))[_0xd8ea('0x45')](handleError(_0x18ff08,null));};exports[_0xd8ea('0x4b')]=function(_0x3edcc3,_0x35e9d3){return db[_0xd8ea('0x2c')][_0xd8ea('0x4b')](_0x3edcc3[_0xd8ea('0x4c')],{})[_0xd8ea('0x24')](respondWithResult(_0x35e9d3,0xc9))['catch'](handleError(_0x35e9d3,null));};exports[_0xd8ea('0x23')]=function(_0x201a87,_0x5e080f){if(_0x201a87[_0xd8ea('0x4c')]['id']){delete _0x201a87[_0xd8ea('0x4c')]['id'];}return db[_0xd8ea('0x2c')][_0xd8ea('0x4a')]({'where':{'id':_0x201a87['params']['id']}})[_0xd8ea('0x24')](handleEntityNotFound(_0x5e080f,null))[_0xd8ea('0x24')](saveUpdates(_0x201a87['body'],null))[_0xd8ea('0x24')](respondWithResult(_0x5e080f,null))[_0xd8ea('0x45')](handleError(_0x5e080f,null));};exports[_0xd8ea('0x4d')]=function(_0x1083d2,_0x40bb45){return db[_0xd8ea('0x2c')][_0xd8ea('0x4a')]({'where':{'id':_0x1083d2['params']['id']}})[_0xd8ea('0x24')](handleEntityNotFound(_0x40bb45,null))['then'](removeEntity(_0x40bb45,null))[_0xd8ea('0x45')](handleError(_0x40bb45,null));};
\ No newline at end of file
+var _0xb54f=['include','findAll','rows','show','merge','find','catch','create','body','params','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','offset','undefined','limit','Content-Range','json','apply','reject','save','update','then','end','error','stack','name','index','map','FreshsalesField','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','VIRTUAL','filter','options','count','includeAll'];(function(_0x1d7037,_0x57dd95){var _0x4d6568=function(_0x5c64c5){while(--_0x5c64c5){_0x1d7037['push'](_0x1d7037['shift']());}};_0x4d6568(++_0x57dd95);}(_0xb54f,0x1d8));var _0xfb54=function(_0x108def,_0x20e7ce){_0x108def=_0x108def-0x0;var _0x570832=_0xb54f[_0x108def];return _0x570832;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xfb54('0x0'));var zipdir=require(_0xfb54('0x1'));var jsonpatch=require(_0xfb54('0x2'));var rp=require(_0xfb54('0x3'));var moment=require(_0xfb54('0x4'));var BPromise=require(_0xfb54('0x5'));var Mustache=require(_0xfb54('0x6'));var util=require('util');var path=require('path');var sox=require(_0xfb54('0x7'));var csv=require(_0xfb54('0x8'));var ejs=require(_0xfb54('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xfb54('0xa'));var squel=require(_0xfb54('0xb'));var crypto=require(_0xfb54('0xc'));var jsforce=require(_0xfb54('0xd'));var deskjs=require(_0xfb54('0xe'));var toCsv=require('to-csv');var querystring=require(_0xfb54('0xf'));var Papa=require(_0xfb54('0x10'));var Redis=require(_0xfb54('0x11'));var authService=require(_0xfb54('0x12'));var qs=require(_0xfb54('0x13'));var as=require(_0xfb54('0x14'));var hardwareService=require(_0xfb54('0x15'));var logger=require(_0xfb54('0x16'))('api');var utils=require(_0xfb54('0x17'));var config=require(_0xfb54('0x18'));var licenseUtil=require(_0xfb54('0x19'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0xb18ed4,_0x144ff2){_0x144ff2=_0x144ff2||0xcc;return function(_0x406ada){if(_0x406ada){return _0xb18ed4[_0xfb54('0x1a')](_0x144ff2);}return _0xb18ed4['status'](_0x144ff2)['end']();};}function respondWithResult(_0x39387e,_0xc350c4){_0xc350c4=_0xc350c4||0xc8;return function(_0x4733c7){if(_0x4733c7){return _0x39387e[_0xfb54('0x1b')](_0xc350c4)['json'](_0x4733c7);}};}function respondWithFilteredResult(_0x17fd4a,_0xd50fac){return function(_0x5d49fe){if(_0x5d49fe){var _0x3a74fb=typeof _0xd50fac[_0xfb54('0x1c')]===_0xfb54('0x1d')&&typeof _0xd50fac['limit']==='undefined';var _0x11a026=_0x5d49fe['count'];var _0x29b83d=_0x3a74fb?0x0:_0xd50fac[_0xfb54('0x1c')];var _0x23a0ce=_0x3a74fb?_0x5d49fe['count']:_0xd50fac[_0xfb54('0x1c')]+_0xd50fac[_0xfb54('0x1e')];var _0x44101c;if(_0x23a0ce>=_0x11a026){_0x23a0ce=_0x11a026;_0x44101c=0xc8;}else{_0x44101c=0xce;}_0x17fd4a[_0xfb54('0x1b')](_0x44101c);return _0x17fd4a['set'](_0xfb54('0x1f'),_0x29b83d+'-'+_0x23a0ce+'/'+_0x11a026)[_0xfb54('0x20')](_0x5d49fe);}return null;};}function patchUpdates(_0x1370f2){return function(_0x151635){try{jsonpatch[_0xfb54('0x21')](_0x151635,_0x1370f2,!![]);}catch(_0x5a394a){return BPromise[_0xfb54('0x22')](_0x5a394a);}return _0x151635[_0xfb54('0x23')]();};}function saveUpdates(_0x2428d6,_0xcfab2f){return function(_0x42de1b){if(_0x42de1b){return _0x42de1b[_0xfb54('0x24')](_0x2428d6)[_0xfb54('0x25')](function(_0x49d306){return _0x49d306;});}return null;};}function removeEntity(_0x587a51,_0xb7f7fe){return function(_0x2e975f){if(_0x2e975f){return _0x2e975f['destroy']()[_0xfb54('0x25')](function(){_0x587a51['status'](0xcc)[_0xfb54('0x26')]();});}};}function handleEntityNotFound(_0x25f7be,_0x532ce9){return function(_0x43e6f5){if(!_0x43e6f5){_0x25f7be[_0xfb54('0x1a')](0x194);}return _0x43e6f5;};}function handleError(_0x40396b,_0x307965){_0x307965=_0x307965||0x1f4;return function(_0x49840a){logger[_0xfb54('0x27')](_0x49840a[_0xfb54('0x28')]);if(_0x49840a['name']){delete _0x49840a[_0xfb54('0x29')];}_0x40396b[_0xfb54('0x1b')](_0x307965)['send'](_0x49840a);};}exports[_0xfb54('0x2a')]=function(_0x4fd70a,_0x22fcad){var _0x5bc3ea={},_0x164834={},_0x1332d2={'count':0x0,'rows':[]};var _0x241ff3=_[_0xfb54('0x2b')](db[_0xfb54('0x2c')][_0xfb54('0x2d')],function(_0x1db98c){return{'name':_0x1db98c[_0xfb54('0x2e')],'type':_0x1db98c[_0xfb54('0x2f')][_0xfb54('0x30')]};});_0x164834[_0xfb54('0x31')]=_[_0xfb54('0x2b')](_0x241ff3,_0xfb54('0x29'));_0x164834[_0xfb54('0x32')]=_[_0xfb54('0x33')](_0x4fd70a[_0xfb54('0x32')]);_0x164834[_0xfb54('0x34')]=_[_0xfb54('0x35')](_0x164834['model'],_0x164834[_0xfb54('0x32')]);_0x5bc3ea[_0xfb54('0x36')]=_[_0xfb54('0x35')](_0x164834['model'],qs[_0xfb54('0x37')](_0x4fd70a[_0xfb54('0x32')][_0xfb54('0x37')]));_0x5bc3ea['attributes']=_0x5bc3ea[_0xfb54('0x36')][_0xfb54('0x38')]?_0x5bc3ea[_0xfb54('0x36')]:_0x164834[_0xfb54('0x31')];if(!_0x4fd70a[_0xfb54('0x32')][_0xfb54('0x39')](_0xfb54('0x3a'))){_0x5bc3ea['limit']=qs[_0xfb54('0x1e')](_0x4fd70a[_0xfb54('0x32')][_0xfb54('0x1e')]);_0x5bc3ea[_0xfb54('0x1c')]=qs[_0xfb54('0x1c')](_0x4fd70a[_0xfb54('0x32')]['offset']);}_0x5bc3ea[_0xfb54('0x3b')]=qs[_0xfb54('0x3c')](_0x4fd70a[_0xfb54('0x32')][_0xfb54('0x3c')]);_0x5bc3ea[_0xfb54('0x3d')]=qs[_0xfb54('0x34')](_['pick'](_0x4fd70a[_0xfb54('0x32')],_0x164834[_0xfb54('0x34')]),_0x241ff3);if(_0x4fd70a[_0xfb54('0x32')]['filter']){_0x5bc3ea[_0xfb54('0x3d')]=_['merge'](_0x5bc3ea[_0xfb54('0x3d')],{'$or':_[_0xfb54('0x2b')](_0x241ff3,function(_0x2fbacc){if(_0x2fbacc['type']!==_0xfb54('0x3e')){var _0x2e3e1b={};_0x2e3e1b[_0x2fbacc[_0xfb54('0x29')]]={'$like':'%'+_0x4fd70a[_0xfb54('0x32')][_0xfb54('0x3f')]+'%'};return _0x2e3e1b;}})});}_0x5bc3ea=_['merge']({},_0x5bc3ea,_0x4fd70a[_0xfb54('0x40')]);var _0x140fdc={'where':_0x5bc3ea[_0xfb54('0x3d')]};return db[_0xfb54('0x2c')][_0xfb54('0x41')](_0x140fdc)['then'](function(_0xbd8c65){_0x1332d2['count']=_0xbd8c65;if(_0x4fd70a[_0xfb54('0x32')][_0xfb54('0x42')]){_0x5bc3ea[_0xfb54('0x43')]=[{'all':!![]}];}return db['FreshsalesField'][_0xfb54('0x44')](_0x5bc3ea);})[_0xfb54('0x25')](function(_0x299cc7){_0x1332d2[_0xfb54('0x45')]=_0x299cc7;return _0x1332d2;})[_0xfb54('0x25')](respondWithFilteredResult(_0x22fcad,_0x5bc3ea))['catch'](handleError(_0x22fcad,null));};exports[_0xfb54('0x46')]=function(_0x22c842,_0x356fe2){var _0x59f3dc={'raw':!![],'where':{'id':_0x22c842['params']['id']}},_0x42ac00={};_0x42ac00['model']=_[_0xfb54('0x33')](db['FreshsalesField']['rawAttributes']);_0x42ac00[_0xfb54('0x32')]=_[_0xfb54('0x33')](_0x22c842[_0xfb54('0x32')]);_0x42ac00[_0xfb54('0x34')]=_['intersection'](_0x42ac00[_0xfb54('0x31')],_0x42ac00[_0xfb54('0x32')]);_0x59f3dc[_0xfb54('0x36')]=_[_0xfb54('0x35')](_0x42ac00[_0xfb54('0x31')],qs['fields'](_0x22c842[_0xfb54('0x32')][_0xfb54('0x37')]));_0x59f3dc[_0xfb54('0x36')]=_0x59f3dc['attributes'][_0xfb54('0x38')]?_0x59f3dc[_0xfb54('0x36')]:_0x42ac00[_0xfb54('0x31')];if(_0x22c842['query']['includeAll']){_0x59f3dc[_0xfb54('0x43')]=[{'all':!![]}];}_0x59f3dc=_[_0xfb54('0x47')]({},_0x59f3dc,_0x22c842[_0xfb54('0x40')]);return db['FreshsalesField'][_0xfb54('0x48')](_0x59f3dc)['then'](handleEntityNotFound(_0x356fe2,null))[_0xfb54('0x25')](respondWithResult(_0x356fe2,null))[_0xfb54('0x49')](handleError(_0x356fe2,null));};exports[_0xfb54('0x4a')]=function(_0x4a54b2,_0x3adc36){return db[_0xfb54('0x2c')][_0xfb54('0x4a')](_0x4a54b2[_0xfb54('0x4b')],{})[_0xfb54('0x25')](respondWithResult(_0x3adc36,0xc9))[_0xfb54('0x49')](handleError(_0x3adc36,null));};exports[_0xfb54('0x24')]=function(_0x1d2bc0,_0x4850ba){if(_0x1d2bc0['body']['id']){delete _0x1d2bc0['body']['id'];}return db[_0xfb54('0x2c')][_0xfb54('0x48')]({'where':{'id':_0x1d2bc0[_0xfb54('0x4c')]['id']}})[_0xfb54('0x25')](handleEntityNotFound(_0x4850ba,null))[_0xfb54('0x25')](saveUpdates(_0x1d2bc0['body'],null))['then'](respondWithResult(_0x4850ba,null))[_0xfb54('0x49')](handleError(_0x4850ba,null));};exports['destroy']=function(_0x903ad5,_0x36d11c){return db[_0xfb54('0x2c')][_0xfb54('0x48')]({'where':{'id':_0x903ad5[_0xfb54('0x4c')]['id']}})['then'](handleEntityNotFound(_0x36d11c,null))[_0xfb54('0x25')](removeEntity(_0x36d11c,null))[_0xfb54('0x49')](handleError(_0x36d11c,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x46c1=['api','moment','bluebird','path','rimraf','../../config/environment','./intFreshsalesField.attributes','exports','define','FreshsalesField','int_freshsales_fields','idField','util','../../config/logger'];(function(_0x5ef639,_0x535c66){var _0x13216d=function(_0x5a3452){while(--_0x5a3452){_0x5ef639['push'](_0x5ef639['shift']());}};_0x13216d(++_0x535c66);}(_0x46c1,0x7c));var _0x146c=function(_0x363c5d,_0x4ac556){_0x363c5d=_0x363c5d-0x0;var _0x3e4017=_0x46c1[_0x363c5d];return _0x3e4017;};'use strict';var _=require('lodash');var util=require(_0x146c('0x0'));var logger=require(_0x146c('0x1'))(_0x146c('0x2'));var moment=require(_0x146c('0x3'));var BPromise=require(_0x146c('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x146c('0x5'));var rimraf=require(_0x146c('0x6'));var config=require(_0x146c('0x7'));var attributes=require(_0x146c('0x8'));module[_0x146c('0x9')]=function(_0x49f94f,_0x5ae2f3){return _0x49f94f[_0x146c('0xa')](_0x146c('0xb'),attributes,{'tableName':_0x146c('0xc'),'paranoid':![],'indexes':[{'name':'freshsales_unique_index','fields':[_0x146c('0xd'),'FieldId'],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x6582=['FreshsalesField','int_freshsales_fields','freshsales_unique_index','FieldId','lodash','util','../../config/logger','api','moment','request-promise','path','rimraf','define'];(function(_0x39a07f,_0x5a5988){var _0x231c9e=function(_0x2cbeea){while(--_0x2cbeea){_0x39a07f['push'](_0x39a07f['shift']());}};_0x231c9e(++_0x5a5988);}(_0x6582,0x108));var _0x2658=function(_0xc889e1,_0x438415){_0xc889e1=_0xc889e1-0x0;var _0x17ab9e=_0x6582[_0xc889e1];return _0x17ab9e;};'use strict';var _=require(_0x2658('0x0'));var util=require(_0x2658('0x1'));var logger=require(_0x2658('0x2'))(_0x2658('0x3'));var moment=require(_0x2658('0x4'));var BPromise=require('bluebird');var rp=require(_0x2658('0x5'));var fs=require('fs');var path=require(_0x2658('0x6'));var rimraf=require(_0x2658('0x7'));var config=require('../../config/environment');var attributes=require('./intFreshsalesField.attributes');module['exports']=function(_0x2ef520,_0x1702bd){return _0x2ef520[_0x2658('0x8')](_0x2658('0x9'),attributes,{'tableName':_0x2658('0xa'),'paranoid':![],'indexes':[{'name':_0x2658('0xb'),'fields':['idField',_0x2658('0xc')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1261=['then','info','FreshsalesField,\x20%s,\x20%s','request\x20sent','FreshsalesField,\x20%s,\x20%s,\x20%s','error','code','message','catch','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','http','request'];(function(_0x26bf3,_0x2707a9){var _0x48bb65=function(_0x542be){while(--_0x542be){_0x26bf3['push'](_0x26bf3['shift']());}};_0x48bb65(++_0x2707a9);}(_0x1261,0x144));var _0x1126=function(_0x15cef4,_0x448b97){_0x15cef4=_0x15cef4-0x0;var _0x384430=_0x1261[_0x15cef4];return _0x384430;};'use strict';var _=require('lodash');var util=require(_0x1126('0x0'));var moment=require(_0x1126('0x1'));var BPromise=require(_0x1126('0x2'));var rs=require(_0x1126('0x3'));var fs=require('fs');var Redis=require(_0x1126('0x4'));var db=require(_0x1126('0x5'))['db'];var utils=require(_0x1126('0x6'));var logger=require(_0x1126('0x7'))(_0x1126('0x8'));var config=require(_0x1126('0x9'));var jayson=require('jayson/promise');var client=jayson['client'][_0x1126('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x907180,_0x4f239c,_0x17e5f0){return new BPromise(function(_0x28772d,_0x245be9){return client[_0x1126('0xb')](_0x907180,_0x17e5f0)[_0x1126('0xc')](function(_0x59cfa1){logger[_0x1126('0xd')](_0x1126('0xe'),_0x4f239c,_0x1126('0xf'));logger['debug'](_0x1126('0x10'),_0x4f239c,'request\x20sent',JSON['stringify'](_0x59cfa1));if(_0x59cfa1[_0x1126('0x11')]){if(_0x59cfa1['error'][_0x1126('0x12')]===0x1f4){logger[_0x1126('0x11')](_0x1126('0xe'),_0x4f239c,_0x59cfa1[_0x1126('0x11')][_0x1126('0x13')]);return _0x245be9(_0x59cfa1[_0x1126('0x11')][_0x1126('0x13')]);}logger[_0x1126('0x11')](_0x1126('0xe'),_0x4f239c,_0x59cfa1['error']['message']);return _0x28772d(_0x59cfa1[_0x1126('0x11')][_0x1126('0x13')]);}else{logger[_0x1126('0xd')]('FreshsalesField,\x20%s,\x20%s',_0x4f239c,_0x1126('0xf'));_0x28772d(_0x59cfa1['result'][_0x1126('0x13')]);}})[_0x1126('0x14')](function(_0x257b5f){logger['error'](_0x1126('0xe'),_0x4f239c,_0x257b5f);_0x245be9(_0x257b5f);});});}
\ No newline at end of file
+var _0x46ed=['FreshsalesField,\x20%s,\x20%s','debug','FreshsalesField,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','result','lodash','util','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','request','then','info'];(function(_0x4e9628,_0x250573){var _0x27bc8c=function(_0xb3b7ae){while(--_0xb3b7ae){_0x4e9628['push'](_0x4e9628['shift']());}};_0x27bc8c(++_0x250573);}(_0x46ed,0x168));var _0xd46e=function(_0x46e363,_0x45d7e2){_0x46e363=_0x46e363-0x0;var _0x3fb059=_0x46ed[_0x46e363];return _0x3fb059;};'use strict';var _=require(_0xd46e('0x0'));var util=require(_0xd46e('0x1'));var moment=require('moment');var BPromise=require(_0xd46e('0x2'));var rs=require(_0xd46e('0x3'));var fs=require('fs');var Redis=require(_0xd46e('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0xd46e('0x5'));var logger=require(_0xd46e('0x6'))('rpc');var config=require(_0xd46e('0x7'));var jayson=require(_0xd46e('0x8'));var client=jayson[_0xd46e('0x9')][_0xd46e('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x45e680,_0x855f24,_0x437ea0){return new BPromise(function(_0x144687,_0x31259b){return client[_0xd46e('0xb')](_0x45e680,_0x437ea0)[_0xd46e('0xc')](function(_0x59c88d){logger[_0xd46e('0xd')](_0xd46e('0xe'),_0x855f24,'request\x20sent');logger[_0xd46e('0xf')](_0xd46e('0x10'),_0x855f24,_0xd46e('0x11'),JSON[_0xd46e('0x12')](_0x59c88d));if(_0x59c88d[_0xd46e('0x13')]){if(_0x59c88d[_0xd46e('0x13')]['code']===0x1f4){logger[_0xd46e('0x13')]('FreshsalesField,\x20%s,\x20%s',_0x855f24,_0x59c88d['error'][_0xd46e('0x14')]);return _0x31259b(_0x59c88d[_0xd46e('0x13')]['message']);}logger['error'](_0xd46e('0xe'),_0x855f24,_0x59c88d[_0xd46e('0x13')][_0xd46e('0x14')]);return _0x144687(_0x59c88d[_0xd46e('0x13')]['message']);}else{logger[_0xd46e('0xd')](_0xd46e('0xe'),_0x855f24,_0xd46e('0x11'));_0x144687(_0x59c88d[_0xd46e('0x15')][_0xd46e('0x14')]);}})['catch'](function(_0x1d50a5){logger[_0xd46e('0x13')](_0xd46e('0xe'),_0x855f24,_0x1d50a5);_0x31259b(_0x1d50a5);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./intSalesforceAccount.controller','get','index','/:id','getConfigurations','/:id/fields','isAuthenticated','getFields','post','addConfiguration','put','update','destroy','exports','multer','util','path'];(function(_0x3183a9,_0x377454){var _0x26c83=function(_0x548540){while(--_0x548540){_0x3183a9['push'](_0x3183a9['shift']());}};_0x26c83(++_0x377454);}(_0xa9e0,0x123));var _0x0a9e=function(_0x501510,_0x61caa9){_0x501510=_0x501510-0x0;var _0x1e6ee5=_0xa9e0[_0x501510];return _0x1e6ee5;};'use strict';var multer=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var path=require(_0x0a9e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x0a9e('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x0a9e('0x4'));var interaction=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));var controller=require(_0x0a9e('0x7'));router[_0x0a9e('0x8')]('/',auth['isAuthenticated'](),controller[_0x0a9e('0x9')]);router[_0x0a9e('0x8')](_0x0a9e('0xa'),auth['isAuthenticated'](),controller['show']);router[_0x0a9e('0x8')]('/:id/configurations',auth['isAuthenticated'](),controller[_0x0a9e('0xb')]);router[_0x0a9e('0x8')](_0x0a9e('0xc'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0xe')]);router[_0x0a9e('0xf')]('/',auth['isAuthenticated'](),controller['create']);router['post']('/:id/configurations',auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x10')]);router[_0x0a9e('0x11')](_0x0a9e('0xa'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x12')]);router['delete'](_0x0a9e('0xa'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x13')]);module[_0x0a9e('0x14')]=router;
\ No newline at end of file
+var _0x9957=['connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./intSalesforceAccount.controller','get','isAuthenticated','index','/:id','show','getConfigurations','/:id/fields','getFields','post','create','addConfiguration','put','update','delete','destroy','exports','multer','util','path'];(function(_0xe153cb,_0x465fe4){var _0xcab4a5=function(_0x5741d2){while(--_0x5741d2){_0xe153cb['push'](_0xe153cb['shift']());}};_0xcab4a5(++_0x465fe4);}(_0x9957,0x93));var _0x7995=function(_0x1facfa,_0x1acf7d){_0x1facfa=_0x1facfa-0x0;var _0x9ec701=_0x9957[_0x1facfa];return _0x9ec701;};'use strict';var multer=require(_0x7995('0x0'));var util=require(_0x7995('0x1'));var path=require(_0x7995('0x2'));var timeout=require(_0x7995('0x3'));var express=require('express');var router=express[_0x7995('0x4')]();var fs_extra=require(_0x7995('0x5'));var auth=require(_0x7995('0x6'));var interaction=require(_0x7995('0x7'));var config=require('../../config/environment');var controller=require(_0x7995('0x8'));router[_0x7995('0x9')]('/',auth[_0x7995('0xa')](),controller[_0x7995('0xb')]);router[_0x7995('0x9')](_0x7995('0xc'),auth['isAuthenticated'](),controller[_0x7995('0xd')]);router[_0x7995('0x9')]('/:id/configurations',auth[_0x7995('0xa')](),controller[_0x7995('0xe')]);router[_0x7995('0x9')](_0x7995('0xf'),auth[_0x7995('0xa')](),controller[_0x7995('0x10')]);router[_0x7995('0x11')]('/',auth['isAuthenticated'](),controller[_0x7995('0x12')]);router[_0x7995('0x11')]('/:id/configurations',auth[_0x7995('0xa')](),controller[_0x7995('0x13')]);router[_0x7995('0x14')](_0x7995('0xc'),auth[_0x7995('0xa')](),controller[_0x7995('0x15')]);router[_0x7995('0x16')]('/:id',auth['isAuthenticated'](),controller[_0x7995('0x17')]);module[_0x7995('0x18')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5c21=['exports','STRING','integrationTab'];(function(_0x5ccf36,_0x599f21){var _0x3e28c0=function(_0x1b2b3a){while(--_0x1b2b3a){_0x5ccf36['push'](_0x5ccf36['shift']());}};_0x3e28c0(++_0x599f21);}(_0x5c21,0x90));var _0x15c2=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x5c21[_0x3dd15e];return _0x231fd0;};'use strict';var Sequelize=require('sequelize');module[_0x15c2('0x0')]={'name':{'type':Sequelize[_0x15c2('0x1')]},'description':{'type':Sequelize[_0x15c2('0x1')]},'username':{'type':Sequelize[_0x15c2('0x1')],'unique':'username'},'remoteUri':{'type':Sequelize[_0x15c2('0x1')]},'password':{'type':Sequelize[_0x15c2('0x1')]},'clientId':{'type':Sequelize[_0x15c2('0x1')]},'clientSecret':{'type':Sequelize[_0x15c2('0x1')]},'securityToken':{'type':Sequelize[_0x15c2('0x1')]},'serverUrl':{'type':Sequelize[_0x15c2('0x1')],'allowNull':![]},'type':{'type':Sequelize['ENUM'](_0x15c2('0x2'),'newTab'),'defaultValue':_0x15c2('0x2')}};
\ No newline at end of file
+var _0x67b1=['ENUM','integrationTab','newTab','exports','STRING'];(function(_0x4b1c10,_0xadb4b4){var _0x166069=function(_0x536c7c){while(--_0x536c7c){_0x4b1c10['push'](_0x4b1c10['shift']());}};_0x166069(++_0xadb4b4);}(_0x67b1,0xfd));var _0x167b=function(_0x480bc8,_0x1fac40){_0x480bc8=_0x480bc8-0x0;var _0x28c245=_0x67b1[_0x480bc8];return _0x28c245;};'use strict';var Sequelize=require('sequelize');module[_0x167b('0x0')]={'name':{'type':Sequelize[_0x167b('0x1')]},'description':{'type':Sequelize[_0x167b('0x1')]},'username':{'type':Sequelize[_0x167b('0x1')],'unique':'username'},'remoteUri':{'type':Sequelize[_0x167b('0x1')]},'password':{'type':Sequelize[_0x167b('0x1')]},'clientId':{'type':Sequelize[_0x167b('0x1')]},'clientSecret':{'type':Sequelize[_0x167b('0x1')]},'securityToken':{'type':Sequelize[_0x167b('0x1')]},'serverUrl':{'type':Sequelize[_0x167b('0x1')],'allowNull':![]},'type':{'type':Sequelize[_0x167b('0x2')](_0x167b('0x3'),_0x167b('0x4')),'defaultValue':_0x167b('0x3')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9475=['papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','error','name','send','map','SalesforceAccount','rawAttributes','fieldName','type','key','model','query','keys','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filters','filter','VIRTUAL','merge','options','includeAll','include','findAll','rows','catch','params','create','body','destroy','find','getConfigurations','SalesforceConfiguration','addConfiguration','findOne','Subjects','getSubjects','channel','Descriptions','SalesforceField','getFields','Task','remoteUri','clientId','clientSecret','username','password','securityToken','slice','substring','lastIndexOf','Connection','login','isNil','ticketType','OwnerId','ActivityDate','IsReminderSet','IsRecurrence','Subject','Description','picklist','boolean','email','phone','includes','picklistValues','label','True','False','false','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','Wrong\x20credentials','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','to-csv','fs-extra','lodash','crypto','desk.js'];(function(_0x1d2f20,_0x5a4148){var _0x453e08=function(_0x1eb4bd){while(--_0x1eb4bd){_0x1d2f20['push'](_0x1d2f20['shift']());}};_0x453e08(++_0x5a4148);}(_0x9475,0x6b));var _0x5947=function(_0x5e878a,_0x336feb){_0x5e878a=_0x5e878a-0x0;var _0x3f8fff=_0x9475[_0x5e878a];return _0x3f8fff;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x5947('0x0'));var jsonpatch=require(_0x5947('0x1'));var rp=require(_0x5947('0x2'));var moment=require(_0x5947('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x5947('0x4'));var util=require(_0x5947('0x5'));var path=require(_0x5947('0x6'));var sox=require('sox');var csv=require(_0x5947('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x5947('0x8'));var _=require(_0x5947('0x9'));var squel=require('squel');var crypto=require(_0x5947('0xa'));var jsforce=require('jsforce');var deskjs=require(_0x5947('0xb'));var toCsv=require(_0x5947('0x7'));var querystring=require('querystring');var Papa=require(_0x5947('0xc'));var Redis=require(_0x5947('0xd'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x5947('0xe'));var hardwareService=require(_0x5947('0xf'));var logger=require(_0x5947('0x10'))(_0x5947('0x11'));var utils=require(_0x5947('0x12'));var config=require(_0x5947('0x13'));var licenseUtil=require(_0x5947('0x14'));var db=require(_0x5947('0x15'))['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x20d59c,_0x1b451e){_0x1b451e=_0x1b451e||0xcc;return function(_0x457f15){if(_0x457f15){return _0x20d59c[_0x5947('0x16')](_0x1b451e);}return _0x20d59c[_0x5947('0x17')](_0x1b451e)[_0x5947('0x18')]();};}function respondWithResult(_0x2e61a4,_0x14c739){_0x14c739=_0x14c739||0xc8;return function(_0x2073e7){if(_0x2073e7){return _0x2e61a4[_0x5947('0x17')](_0x14c739)[_0x5947('0x19')](_0x2073e7);}};}function respondWithFilteredResult(_0x138625,_0x18fc95){return function(_0x373d45){if(_0x373d45){var _0x26cf5e=typeof _0x18fc95[_0x5947('0x1a')]===_0x5947('0x1b')&&typeof _0x18fc95[_0x5947('0x1c')]===_0x5947('0x1b');var _0x123689=_0x373d45[_0x5947('0x1d')];var _0x5a46f8=_0x26cf5e?0x0:_0x18fc95[_0x5947('0x1a')];var _0x3fbc2b=_0x26cf5e?_0x373d45[_0x5947('0x1d')]:_0x18fc95[_0x5947('0x1a')]+_0x18fc95['limit'];var _0x2b9835;if(_0x3fbc2b>=_0x123689){_0x3fbc2b=_0x123689;_0x2b9835=0xc8;}else{_0x2b9835=0xce;}_0x138625[_0x5947('0x17')](_0x2b9835);return _0x138625[_0x5947('0x1e')](_0x5947('0x1f'),_0x5a46f8+'-'+_0x3fbc2b+'/'+_0x123689)['json'](_0x373d45);}return null;};}function patchUpdates(_0x2c8943){return function(_0x1152d1){try{jsonpatch[_0x5947('0x20')](_0x1152d1,_0x2c8943,!![]);}catch(_0x435e17){return BPromise[_0x5947('0x21')](_0x435e17);}return _0x1152d1[_0x5947('0x22')]();};}function saveUpdates(_0x1f10cf,_0x1b1c76){return function(_0x35759e){if(_0x35759e){return _0x35759e[_0x5947('0x23')](_0x1f10cf)['then'](function(_0x1ae7e0){return _0x1ae7e0;});}return null;};}function removeEntity(_0x5d2aaa,_0x2b6952){return function(_0x1b2fbb){if(_0x1b2fbb){return _0x1b2fbb['destroy']()[_0x5947('0x24')](function(){_0x5d2aaa[_0x5947('0x17')](0xcc)[_0x5947('0x18')]();});}};}function handleEntityNotFound(_0x2c17c9,_0x552557){return function(_0x253053){if(!_0x253053){_0x2c17c9[_0x5947('0x16')](0x194);}return _0x253053;};}function handleError(_0x3ed3e0,_0x479c2d){_0x479c2d=_0x479c2d||0x1f4;return function(_0x114d79){logger[_0x5947('0x25')](_0x114d79['stack']);if(_0x114d79[_0x5947('0x26')]){delete _0x114d79['name'];}_0x3ed3e0['status'](_0x479c2d)[_0x5947('0x27')](_0x114d79);};}exports['index']=function(_0x4c051c,_0x2767f1){var _0x16c589={},_0x52c40f={},_0x55ab05={'count':0x0,'rows':[]};var _0x43555a=_[_0x5947('0x28')](db[_0x5947('0x29')][_0x5947('0x2a')],function(_0x21881){return{'name':_0x21881[_0x5947('0x2b')],'type':_0x21881[_0x5947('0x2c')][_0x5947('0x2d')]};});_0x52c40f[_0x5947('0x2e')]=_['map'](_0x43555a,_0x5947('0x26'));_0x52c40f[_0x5947('0x2f')]=_[_0x5947('0x30')](_0x4c051c[_0x5947('0x2f')]);_0x52c40f['filters']=_['intersection'](_0x52c40f[_0x5947('0x2e')],_0x52c40f[_0x5947('0x2f')]);_0x16c589[_0x5947('0x31')]=_[_0x5947('0x32')](_0x52c40f[_0x5947('0x2e')],qs[_0x5947('0x33')](_0x4c051c[_0x5947('0x2f')][_0x5947('0x33')]));_0x16c589['attributes']=_0x16c589[_0x5947('0x31')][_0x5947('0x34')]?_0x16c589['attributes']:_0x52c40f[_0x5947('0x2e')];if(!_0x4c051c[_0x5947('0x2f')][_0x5947('0x35')](_0x5947('0x36'))){_0x16c589['limit']=qs['limit'](_0x4c051c[_0x5947('0x2f')]['limit']);_0x16c589[_0x5947('0x1a')]=qs[_0x5947('0x1a')](_0x4c051c[_0x5947('0x2f')][_0x5947('0x1a')]);}_0x16c589[_0x5947('0x37')]=qs[_0x5947('0x38')](_0x4c051c['query']['sort']);_0x16c589[_0x5947('0x39')]=qs['filters'](_[_0x5947('0x3a')](_0x4c051c[_0x5947('0x2f')],_0x52c40f[_0x5947('0x3b')]),_0x43555a);if(_0x4c051c[_0x5947('0x2f')][_0x5947('0x3c')]){_0x16c589['where']=_['merge'](_0x16c589[_0x5947('0x39')],{'$or':_['map'](_0x43555a,function(_0x3e230b){if(_0x3e230b[_0x5947('0x2c')]!==_0x5947('0x3d')){var _0x51f411={};_0x51f411[_0x3e230b[_0x5947('0x26')]]={'$like':'%'+_0x4c051c['query']['filter']+'%'};return _0x51f411;}})});}_0x16c589=_[_0x5947('0x3e')]({},_0x16c589,_0x4c051c[_0x5947('0x3f')]);var _0x42fff5={'where':_0x16c589['where']};return db[_0x5947('0x29')]['count'](_0x42fff5)[_0x5947('0x24')](function(_0x1cebc7){_0x55ab05[_0x5947('0x1d')]=_0x1cebc7;if(_0x4c051c[_0x5947('0x2f')][_0x5947('0x40')]){_0x16c589[_0x5947('0x41')]=[{'all':!![]}];}return db['SalesforceAccount'][_0x5947('0x42')](_0x16c589);})['then'](function(_0x46d8bf){_0x55ab05[_0x5947('0x43')]=_0x46d8bf;return _0x55ab05;})[_0x5947('0x24')](respondWithFilteredResult(_0x2767f1,_0x16c589))[_0x5947('0x44')](handleError(_0x2767f1,null));};exports['show']=function(_0x1e87ab,_0x283779){var _0x26777e={'raw':![],'where':{'id':_0x1e87ab[_0x5947('0x45')]['id']}},_0x5cb653={};_0x5cb653['model']=_[_0x5947('0x30')](db[_0x5947('0x29')][_0x5947('0x2a')]);_0x5cb653['query']=_[_0x5947('0x30')](_0x1e87ab[_0x5947('0x2f')]);_0x5cb653[_0x5947('0x3b')]=_[_0x5947('0x32')](_0x5cb653[_0x5947('0x2e')],_0x5cb653[_0x5947('0x2f')]);_0x26777e['attributes']=_[_0x5947('0x32')](_0x5cb653[_0x5947('0x2e')],qs[_0x5947('0x33')](_0x1e87ab[_0x5947('0x2f')][_0x5947('0x33')]));_0x26777e[_0x5947('0x31')]=_0x26777e[_0x5947('0x31')][_0x5947('0x34')]?_0x26777e['attributes']:_0x5cb653[_0x5947('0x2e')];if(_0x1e87ab['query'][_0x5947('0x40')]){_0x26777e[_0x5947('0x41')]=[{'all':!![]}];}_0x26777e=_['merge']({},_0x26777e,_0x1e87ab['options']);return db[_0x5947('0x29')]['find'](_0x26777e)[_0x5947('0x24')](handleEntityNotFound(_0x283779,null))['then'](respondWithResult(_0x283779,null))['catch'](handleError(_0x283779,null));};exports[_0x5947('0x46')]=function(_0x21312f,_0x45a110){return db[_0x5947('0x29')][_0x5947('0x46')](_0x21312f[_0x5947('0x47')],{})[_0x5947('0x24')](respondWithResult(_0x45a110,0xc9))[_0x5947('0x44')](handleError(_0x45a110,null));};exports[_0x5947('0x23')]=function(_0x3dcdeb,_0x1d83bf){if(_0x3dcdeb[_0x5947('0x47')]['id']){delete _0x3dcdeb[_0x5947('0x47')]['id'];}return db[_0x5947('0x29')]['find']({'where':{'id':_0x3dcdeb['params']['id']}})[_0x5947('0x24')](handleEntityNotFound(_0x1d83bf,null))[_0x5947('0x24')](saveUpdates(_0x3dcdeb[_0x5947('0x47')],null))[_0x5947('0x24')](respondWithResult(_0x1d83bf,null))[_0x5947('0x44')](handleError(_0x1d83bf,null));};exports[_0x5947('0x48')]=function(_0x2dc38e,_0x29335f){return db['SalesforceAccount'][_0x5947('0x49')]({'where':{'id':_0x2dc38e[_0x5947('0x45')]['id']}})[_0x5947('0x24')](handleEntityNotFound(_0x29335f,null))[_0x5947('0x24')](removeEntity(_0x29335f,null))[_0x5947('0x44')](handleError(_0x29335f,null));};exports[_0x5947('0x4a')]=function(_0x3a12ed,_0x6c73ee,_0x50d843){var _0x45813a={};var _0x485e06={};var _0x1df29e;var _0x157d5d;return db[_0x5947('0x29')]['findOne']({'where':{'id':_0x3a12ed[_0x5947('0x45')]['id']}})[_0x5947('0x24')](handleEntityNotFound(_0x6c73ee,null))['then'](function(_0x5411fd){if(_0x5411fd){_0x1df29e=_0x5411fd;_0x485e06[_0x5947('0x2e')]=_[_0x5947('0x30')](db[_0x5947('0x4b')][_0x5947('0x2a')]);_0x485e06[_0x5947('0x2f')]=_['keys'](_0x3a12ed[_0x5947('0x2f')]);_0x485e06[_0x5947('0x3b')]=_[_0x5947('0x32')](_0x485e06[_0x5947('0x2e')],_0x485e06[_0x5947('0x2f')]);_0x45813a[_0x5947('0x31')]=_['intersection'](_0x485e06['model'],qs[_0x5947('0x33')](_0x3a12ed[_0x5947('0x2f')][_0x5947('0x33')]));_0x45813a['attributes']=_0x45813a[_0x5947('0x31')][_0x5947('0x34')]?_0x45813a[_0x5947('0x31')]:_0x485e06[_0x5947('0x2e')];_0x45813a[_0x5947('0x37')]=qs['sort'](_0x3a12ed[_0x5947('0x2f')][_0x5947('0x38')]);_0x45813a[_0x5947('0x39')]=qs[_0x5947('0x3b')](_['pick'](_0x3a12ed[_0x5947('0x2f')],_0x485e06[_0x5947('0x3b')]));if(_0x3a12ed[_0x5947('0x2f')][_0x5947('0x3c')]){_0x45813a[_0x5947('0x39')]=_[_0x5947('0x3e')](_0x45813a[_0x5947('0x39')],{'$or':_[_0x5947('0x28')](_0x45813a[_0x5947('0x31')],function(_0x25b9d2){var _0xa8c841={};_0xa8c841[_0x25b9d2]={'$like':'%'+_0x3a12ed[_0x5947('0x2f')][_0x5947('0x3c')]+'%'};return _0xa8c841;})});}_0x45813a=_[_0x5947('0x3e')]({},_0x45813a,_0x3a12ed['options']);return _0x1df29e[_0x5947('0x4a')](_0x45813a);}})[_0x5947('0x24')](function(_0x3a92a8){if(_0x3a92a8){_0x157d5d=_0x3a92a8[_0x5947('0x34')];if(!_0x3a12ed['query'][_0x5947('0x35')](_0x5947('0x36'))){_0x45813a[_0x5947('0x1c')]=qs[_0x5947('0x1c')](_0x3a12ed[_0x5947('0x2f')]['limit']);_0x45813a[_0x5947('0x1a')]=qs[_0x5947('0x1a')](_0x3a12ed['query'][_0x5947('0x1a')]);}return _0x1df29e[_0x5947('0x4a')](_0x45813a);}})[_0x5947('0x24')](function(_0x2bc63c){if(_0x2bc63c){return _0x2bc63c?{'count':_0x157d5d,'rows':_0x2bc63c}:null;}})[_0x5947('0x24')](respondWithResult(_0x6c73ee,null))[_0x5947('0x44')](handleError(_0x6c73ee,null));};exports[_0x5947('0x4c')]=function(_0x8aa60c,_0x115ede,_0x6ac19e){if(_0x8aa60c[_0x5947('0x47')]['id']){delete _0x8aa60c[_0x5947('0x47')]['id'];}return db['SalesforceAccount'][_0x5947('0x4d')]({'where':{'id':_0x8aa60c[_0x5947('0x45')]['id']}})['then'](handleEntityNotFound(_0x115ede,null))['then'](function(_0x6f897){if(_0x6f897){_0x8aa60c[_0x5947('0x47')]['AccountId']=_0x6f897['id'];_0x8aa60c[_0x5947('0x47')][_0x5947('0x4e')]=integrations[_0x5947('0x4f')](_0x8aa60c[_0x5947('0x47')][_0x5947('0x50')],_0x8aa60c[_0x5947('0x47')]['type']);_0x8aa60c[_0x5947('0x47')][_0x5947('0x51')]=integrations['getDescriptions'](_0x8aa60c[_0x5947('0x47')][_0x5947('0x50')],_0x8aa60c[_0x5947('0x47')]['type']);return db[_0x5947('0x4b')][_0x5947('0x46')](_0x8aa60c[_0x5947('0x47')],{'include':[{'model':db['SalesforceField'],'as':'Subjects'},{'model':db[_0x5947('0x52')],'as':'Descriptions'}]});}return null;})[_0x5947('0x24')](respondWithResult(_0x115ede,null))[_0x5947('0x44')](handleError(_0x115ede,null));};exports[_0x5947('0x53')]=function(_0x574dc8,_0xdade24,_0x1d0fad){var _0x4102df;var _0x278d61='';var _0x239fce=_0x5947('0x54');return db['SalesforceAccount']['findOne']({'where':{'id':_0x574dc8['params']['id']},'attributes':['id',_0x5947('0x55'),_0x5947('0x56'),_0x5947('0x57'),_0x5947('0x58'),_0x5947('0x59'),_0x5947('0x5a')]})[_0x5947('0x24')](handleEntityNotFound(_0xdade24,null))[_0x5947('0x24')](function(_0x27958f){if(_0x27958f){_0x278d61=_0x27958f[_0x5947('0x55')];var _0x27f764=_0x278d61[_0x5947('0x5b')](-0x1);if(_0x27f764==='/'){_0x278d61=_0x278d61[_0x5947('0x5c')](0x0,_0x278d61[_0x5947('0x5d')](_0x27f764));}_0x4102df=new jsforce[(_0x5947('0x5e'))]({'oauth2':{'loginUrl':_0x278d61,'clientId':_0x27958f[_0x5947('0x56')],'clientSecret':_0x27958f[_0x5947('0x57')]}});return _0x4102df[_0x5947('0x5f')](_0x27958f[_0x5947('0x58')],_0x27958f['password']['concat'](_0x27958f[_0x5947('0x5a')]));}})[_0x5947('0x24')](function(_0x294cd5){if(_0x294cd5){if(!_[_0x5947('0x60')](_0x574dc8[_0x5947('0x2f')][_0x5947('0x61')])){_0x239fce=_0x574dc8[_0x5947('0x2f')][_0x5947('0x61')];}return _0x4102df['sobject'](_0x239fce)['describe']();}})['then'](function(_0xc0a310){var _0x2295f0=[_0x5947('0x62'),_0x5947('0x63'),_0x5947('0x64'),_0x5947('0x65'),_0x5947('0x66'),_0x5947('0x67')];var _0x5842dc=['string','int',_0x5947('0x68'),_0x5947('0x69'),_0x5947('0x6a'),'textarea',_0x5947('0x6b')];if(_0xc0a310){_['remove'](_0xc0a310[_0x5947('0x33')],function(_0x38fbdb){return _0x2295f0[_0x5947('0x6c')](_0x38fbdb[_0x5947('0x26')])||!_0x5842dc[_0x5947('0x6c')](_0x38fbdb[_0x5947('0x2c')]);});return{'count':_0xc0a310[_0x5947('0x33')][_0x5947('0x34')],'rows':_[_0x5947('0x28')](_0xc0a310[_0x5947('0x33')],function(_0x161695){return{'id':_0x161695[_0x5947('0x26')],'name':_0x161695['label'],'custom':_0x161695['custom'],'options':_0x161695[_0x5947('0x6d')][_0x5947('0x34')]>0x0?_[_0x5947('0x28')](_0x161695[_0x5947('0x6d')],function(_0x16db56){return{'name':_0x16db56[_0x5947('0x6e')],'value':_0x16db56['value']};}):_0x161695['type']==_0x5947('0x69')?[{'name':_0x5947('0x6f'),'value':'true'},{'name':_0x5947('0x70'),'value':_0x5947('0x71')}]:[]};})};}})[_0x5947('0x24')](respondWithResult(_0xdade24,null))['catch'](function(_0x3c3463){var _0x14b36c=_0x574dc8['query'][_0x5947('0x72')]?0x1f4:_0x3c3463[_0x5947('0x73')]||0x1f4;logger[_0x5947('0x25')](_0x5947('0x74'),_0x5947('0x53'),_0x14b36c,JSON[_0x5947('0x75')](_0x3c3463));delete _0x3c3463['name'];if(_0x14b36c===0x191){_0x14b36c=0x190;}_0xdade24[_0x5947('0x17')](_0x14b36c)['send'](_0x574dc8[_0x5947('0x2f')][_0x5947('0x72')]?{'message':_0x5947('0x76'),'statusCode':_0x3c3463[_0x5947('0x73')]}:_0x3c3463);});};
\ No newline at end of file
+var _0xc004=['AccountId','Subjects','getSubjects','channel','getDescriptions','SalesforceConfiguration','SalesforceField','getFields','Task','findOne','clientId','clientSecret','password','remoteUri','slice','login','concat','securityToken','ticketType','sobject','describe','OwnerId','ActivityDate','IsRecurrence','Subject','Description','string','int','picklist','textarea','phone','remove','includes','label','custom','picklistValues','True','False','test','statusCode','stringify','Wrong\x20credentials','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','papaparse','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../components/integrations/configuration','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','save','update','destroy','then','error','stack','name','send','index','map','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','fields','attributes','nolimit','order','sort','where','pick','filter','merge','SalesforceAccount','includeAll','include','findAll','rows','catch','length','options','find','create','body','params','getConfigurations','hasOwnProperty','addConfiguration'];(function(_0x369151,_0x179f72){var _0x4292d5=function(_0x330422){while(--_0x330422){_0x369151['push'](_0x369151['shift']());}};_0x4292d5(++_0x179f72);}(_0xc004,0x195));var _0x4c00=function(_0x57171b,_0xfe67c6){_0x57171b=_0x57171b-0x0;var _0x33a2c8=_0xc004[_0x57171b];return _0x33a2c8;};'use strict';var emlformat=require(_0x4c00('0x0'));var rimraf=require(_0x4c00('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x4c00('0x2'));var rp=require(_0x4c00('0x3'));var moment=require(_0x4c00('0x4'));var BPromise=require(_0x4c00('0x5'));var Mustache=require(_0x4c00('0x6'));var util=require(_0x4c00('0x7'));var path=require(_0x4c00('0x8'));var sox=require(_0x4c00('0x9'));var csv=require(_0x4c00('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x4c00('0xb'));var _=require(_0x4c00('0xc'));var squel=require(_0x4c00('0xd'));var crypto=require(_0x4c00('0xe'));var jsforce=require(_0x4c00('0xf'));var deskjs=require('desk.js');var toCsv=require(_0x4c00('0xa'));var querystring=require('querystring');var Papa=require(_0x4c00('0x10'));var Redis=require(_0x4c00('0x11'));var authService=require('../../components/auth/service');var qs=require(_0x4c00('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x4c00('0x13'));var logger=require(_0x4c00('0x14'))('api');var utils=require(_0x4c00('0x15'));var config=require(_0x4c00('0x16'));var licenseUtil=require(_0x4c00('0x17'));var db=require('../../mysqldb')['db'];var integrations=require(_0x4c00('0x18'));function respondWithStatusCode(_0x9ebe4e,_0x1f8087){_0x1f8087=_0x1f8087||0xcc;return function(_0x2fbfb4){if(_0x2fbfb4){return _0x9ebe4e[_0x4c00('0x19')](_0x1f8087);}return _0x9ebe4e[_0x4c00('0x1a')](_0x1f8087)[_0x4c00('0x1b')]();};}function respondWithResult(_0x21a32e,_0x452a7c){_0x452a7c=_0x452a7c||0xc8;return function(_0x3acd99){if(_0x3acd99){return _0x21a32e[_0x4c00('0x1a')](_0x452a7c)[_0x4c00('0x1c')](_0x3acd99);}};}function respondWithFilteredResult(_0x4e520d,_0x2d037a){return function(_0x27a2be){if(_0x27a2be){var _0x209461=typeof _0x2d037a[_0x4c00('0x1d')]===_0x4c00('0x1e')&&typeof _0x2d037a[_0x4c00('0x1f')]===_0x4c00('0x1e');var _0x5270b1=_0x27a2be[_0x4c00('0x20')];var _0x3c071f=_0x209461?0x0:_0x2d037a[_0x4c00('0x1d')];var _0x44c3eb=_0x209461?_0x27a2be[_0x4c00('0x20')]:_0x2d037a[_0x4c00('0x1d')]+_0x2d037a[_0x4c00('0x1f')];var _0x429ea2;if(_0x44c3eb>=_0x5270b1){_0x44c3eb=_0x5270b1;_0x429ea2=0xc8;}else{_0x429ea2=0xce;}_0x4e520d[_0x4c00('0x1a')](_0x429ea2);return _0x4e520d[_0x4c00('0x21')](_0x4c00('0x22'),_0x3c071f+'-'+_0x44c3eb+'/'+_0x5270b1)[_0x4c00('0x1c')](_0x27a2be);}return null;};}function patchUpdates(_0x49346b){return function(_0x4e8203){try{jsonpatch[_0x4c00('0x23')](_0x4e8203,_0x49346b,!![]);}catch(_0xbc2409){return BPromise['reject'](_0xbc2409);}return _0x4e8203[_0x4c00('0x24')]();};}function saveUpdates(_0x17cbf7,_0x1926d8){return function(_0x20dc00){if(_0x20dc00){return _0x20dc00[_0x4c00('0x25')](_0x17cbf7)['then'](function(_0x1c3eaf){return _0x1c3eaf;});}return null;};}function removeEntity(_0x7c3005,_0x11884e){return function(_0x5c7482){if(_0x5c7482){return _0x5c7482[_0x4c00('0x26')]()[_0x4c00('0x27')](function(){_0x7c3005[_0x4c00('0x1a')](0xcc)[_0x4c00('0x1b')]();});}};}function handleEntityNotFound(_0x2992d9,_0x26e34c){return function(_0x5ce4b){if(!_0x5ce4b){_0x2992d9['sendStatus'](0x194);}return _0x5ce4b;};}function handleError(_0x44850a,_0x21b4cb){_0x21b4cb=_0x21b4cb||0x1f4;return function(_0x1c3e70){logger[_0x4c00('0x28')](_0x1c3e70[_0x4c00('0x29')]);if(_0x1c3e70[_0x4c00('0x2a')]){delete _0x1c3e70[_0x4c00('0x2a')];}_0x44850a[_0x4c00('0x1a')](_0x21b4cb)[_0x4c00('0x2b')](_0x1c3e70);};}exports[_0x4c00('0x2c')]=function(_0x3f6d5d,_0x13a538){var _0x420539={},_0x531ec4={},_0x5485f0={'count':0x0,'rows':[]};var _0x2b64b1=_[_0x4c00('0x2d')](db['SalesforceAccount'][_0x4c00('0x2e')],function(_0x38d4b0){return{'name':_0x38d4b0[_0x4c00('0x2f')],'type':_0x38d4b0[_0x4c00('0x30')][_0x4c00('0x31')]};});_0x531ec4[_0x4c00('0x32')]=_['map'](_0x2b64b1,_0x4c00('0x2a'));_0x531ec4['query']=_[_0x4c00('0x33')](_0x3f6d5d[_0x4c00('0x34')]);_0x531ec4[_0x4c00('0x35')]=_[_0x4c00('0x36')](_0x531ec4[_0x4c00('0x32')],_0x531ec4[_0x4c00('0x34')]);_0x420539['attributes']=_[_0x4c00('0x36')](_0x531ec4[_0x4c00('0x32')],qs[_0x4c00('0x37')](_0x3f6d5d[_0x4c00('0x34')]['fields']));_0x420539[_0x4c00('0x38')]=_0x420539[_0x4c00('0x38')]['length']?_0x420539[_0x4c00('0x38')]:_0x531ec4[_0x4c00('0x32')];if(!_0x3f6d5d[_0x4c00('0x34')]['hasOwnProperty'](_0x4c00('0x39'))){_0x420539[_0x4c00('0x1f')]=qs['limit'](_0x3f6d5d[_0x4c00('0x34')]['limit']);_0x420539[_0x4c00('0x1d')]=qs[_0x4c00('0x1d')](_0x3f6d5d[_0x4c00('0x34')][_0x4c00('0x1d')]);}_0x420539[_0x4c00('0x3a')]=qs['sort'](_0x3f6d5d[_0x4c00('0x34')][_0x4c00('0x3b')]);_0x420539[_0x4c00('0x3c')]=qs[_0x4c00('0x35')](_[_0x4c00('0x3d')](_0x3f6d5d[_0x4c00('0x34')],_0x531ec4[_0x4c00('0x35')]),_0x2b64b1);if(_0x3f6d5d['query'][_0x4c00('0x3e')]){_0x420539[_0x4c00('0x3c')]=_['merge'](_0x420539[_0x4c00('0x3c')],{'$or':_['map'](_0x2b64b1,function(_0x3ae15d){if(_0x3ae15d[_0x4c00('0x30')]!=='VIRTUAL'){var _0x5574af={};_0x5574af[_0x3ae15d[_0x4c00('0x2a')]]={'$like':'%'+_0x3f6d5d['query']['filter']+'%'};return _0x5574af;}})});}_0x420539=_[_0x4c00('0x3f')]({},_0x420539,_0x3f6d5d['options']);var _0xb9360={'where':_0x420539[_0x4c00('0x3c')]};return db[_0x4c00('0x40')]['count'](_0xb9360)[_0x4c00('0x27')](function(_0x1441e0){_0x5485f0[_0x4c00('0x20')]=_0x1441e0;if(_0x3f6d5d[_0x4c00('0x34')][_0x4c00('0x41')]){_0x420539[_0x4c00('0x42')]=[{'all':!![]}];}return db[_0x4c00('0x40')][_0x4c00('0x43')](_0x420539);})[_0x4c00('0x27')](function(_0xb39ab6){_0x5485f0[_0x4c00('0x44')]=_0xb39ab6;return _0x5485f0;})[_0x4c00('0x27')](respondWithFilteredResult(_0x13a538,_0x420539))[_0x4c00('0x45')](handleError(_0x13a538,null));};exports['show']=function(_0x72b7f8,_0x47e8bc){var _0x399d4a={'raw':![],'where':{'id':_0x72b7f8['params']['id']}},_0x10e739={};_0x10e739[_0x4c00('0x32')]=_[_0x4c00('0x33')](db[_0x4c00('0x40')][_0x4c00('0x2e')]);_0x10e739['query']=_[_0x4c00('0x33')](_0x72b7f8[_0x4c00('0x34')]);_0x10e739[_0x4c00('0x35')]=_[_0x4c00('0x36')](_0x10e739[_0x4c00('0x32')],_0x10e739[_0x4c00('0x34')]);_0x399d4a[_0x4c00('0x38')]=_[_0x4c00('0x36')](_0x10e739['model'],qs[_0x4c00('0x37')](_0x72b7f8['query'][_0x4c00('0x37')]));_0x399d4a[_0x4c00('0x38')]=_0x399d4a[_0x4c00('0x38')][_0x4c00('0x46')]?_0x399d4a[_0x4c00('0x38')]:_0x10e739[_0x4c00('0x32')];if(_0x72b7f8[_0x4c00('0x34')]['includeAll']){_0x399d4a['include']=[{'all':!![]}];}_0x399d4a=_[_0x4c00('0x3f')]({},_0x399d4a,_0x72b7f8[_0x4c00('0x47')]);return db[_0x4c00('0x40')][_0x4c00('0x48')](_0x399d4a)[_0x4c00('0x27')](handleEntityNotFound(_0x47e8bc,null))['then'](respondWithResult(_0x47e8bc,null))['catch'](handleError(_0x47e8bc,null));};exports[_0x4c00('0x49')]=function(_0x126f93,_0x556da2){return db[_0x4c00('0x40')][_0x4c00('0x49')](_0x126f93[_0x4c00('0x4a')],{})[_0x4c00('0x27')](respondWithResult(_0x556da2,0xc9))[_0x4c00('0x45')](handleError(_0x556da2,null));};exports['update']=function(_0x5da889,_0x1677d8){if(_0x5da889[_0x4c00('0x4a')]['id']){delete _0x5da889['body']['id'];}return db['SalesforceAccount'][_0x4c00('0x48')]({'where':{'id':_0x5da889[_0x4c00('0x4b')]['id']}})[_0x4c00('0x27')](handleEntityNotFound(_0x1677d8,null))[_0x4c00('0x27')](saveUpdates(_0x5da889[_0x4c00('0x4a')],null))[_0x4c00('0x27')](respondWithResult(_0x1677d8,null))['catch'](handleError(_0x1677d8,null));};exports[_0x4c00('0x26')]=function(_0x235d5a,_0x5b79ed){return db[_0x4c00('0x40')][_0x4c00('0x48')]({'where':{'id':_0x235d5a[_0x4c00('0x4b')]['id']}})['then'](handleEntityNotFound(_0x5b79ed,null))[_0x4c00('0x27')](removeEntity(_0x5b79ed,null))[_0x4c00('0x45')](handleError(_0x5b79ed,null));};exports[_0x4c00('0x4c')]=function(_0x4b32e3,_0xded424,_0x41ad7d){var _0x5ebe34={};var _0x202f55={};var _0x1a4a44;var _0x4503c1;return db['SalesforceAccount']['findOne']({'where':{'id':_0x4b32e3[_0x4c00('0x4b')]['id']}})[_0x4c00('0x27')](handleEntityNotFound(_0xded424,null))['then'](function(_0x36130c){if(_0x36130c){_0x1a4a44=_0x36130c;_0x202f55['model']=_['keys'](db['SalesforceConfiguration']['rawAttributes']);_0x202f55[_0x4c00('0x34')]=_[_0x4c00('0x33')](_0x4b32e3[_0x4c00('0x34')]);_0x202f55[_0x4c00('0x35')]=_[_0x4c00('0x36')](_0x202f55[_0x4c00('0x32')],_0x202f55[_0x4c00('0x34')]);_0x5ebe34[_0x4c00('0x38')]=_[_0x4c00('0x36')](_0x202f55[_0x4c00('0x32')],qs[_0x4c00('0x37')](_0x4b32e3[_0x4c00('0x34')][_0x4c00('0x37')]));_0x5ebe34[_0x4c00('0x38')]=_0x5ebe34[_0x4c00('0x38')][_0x4c00('0x46')]?_0x5ebe34['attributes']:_0x202f55[_0x4c00('0x32')];_0x5ebe34[_0x4c00('0x3a')]=qs[_0x4c00('0x3b')](_0x4b32e3[_0x4c00('0x34')][_0x4c00('0x3b')]);_0x5ebe34[_0x4c00('0x3c')]=qs[_0x4c00('0x35')](_[_0x4c00('0x3d')](_0x4b32e3['query'],_0x202f55[_0x4c00('0x35')]));if(_0x4b32e3[_0x4c00('0x34')][_0x4c00('0x3e')]){_0x5ebe34[_0x4c00('0x3c')]=_[_0x4c00('0x3f')](_0x5ebe34[_0x4c00('0x3c')],{'$or':_['map'](_0x5ebe34[_0x4c00('0x38')],function(_0x453f10){var _0x45b371={};_0x45b371[_0x453f10]={'$like':'%'+_0x4b32e3[_0x4c00('0x34')][_0x4c00('0x3e')]+'%'};return _0x45b371;})});}_0x5ebe34=_[_0x4c00('0x3f')]({},_0x5ebe34,_0x4b32e3[_0x4c00('0x47')]);return _0x1a4a44['getConfigurations'](_0x5ebe34);}})[_0x4c00('0x27')](function(_0x5281e0){if(_0x5281e0){_0x4503c1=_0x5281e0['length'];if(!_0x4b32e3[_0x4c00('0x34')][_0x4c00('0x4d')](_0x4c00('0x39'))){_0x5ebe34['limit']=qs[_0x4c00('0x1f')](_0x4b32e3[_0x4c00('0x34')]['limit']);_0x5ebe34[_0x4c00('0x1d')]=qs[_0x4c00('0x1d')](_0x4b32e3[_0x4c00('0x34')][_0x4c00('0x1d')]);}return _0x1a4a44['getConfigurations'](_0x5ebe34);}})[_0x4c00('0x27')](function(_0x136cdf){if(_0x136cdf){return _0x136cdf?{'count':_0x4503c1,'rows':_0x136cdf}:null;}})[_0x4c00('0x27')](respondWithResult(_0xded424,null))['catch'](handleError(_0xded424,null));};exports[_0x4c00('0x4e')]=function(_0x2b4543,_0x56099f,_0x122ba7){if(_0x2b4543[_0x4c00('0x4a')]['id']){delete _0x2b4543[_0x4c00('0x4a')]['id'];}return db['SalesforceAccount']['findOne']({'where':{'id':_0x2b4543[_0x4c00('0x4b')]['id']}})[_0x4c00('0x27')](handleEntityNotFound(_0x56099f,null))[_0x4c00('0x27')](function(_0x2b6dc6){if(_0x2b6dc6){_0x2b4543['body'][_0x4c00('0x4f')]=_0x2b6dc6['id'];_0x2b4543[_0x4c00('0x4a')][_0x4c00('0x50')]=integrations[_0x4c00('0x51')](_0x2b4543[_0x4c00('0x4a')][_0x4c00('0x52')],_0x2b4543['body']['type']);_0x2b4543[_0x4c00('0x4a')]['Descriptions']=integrations[_0x4c00('0x53')](_0x2b4543['body'][_0x4c00('0x52')],_0x2b4543[_0x4c00('0x4a')][_0x4c00('0x30')]);return db[_0x4c00('0x54')][_0x4c00('0x49')](_0x2b4543[_0x4c00('0x4a')],{'include':[{'model':db[_0x4c00('0x55')],'as':_0x4c00('0x50')},{'model':db[_0x4c00('0x55')],'as':'Descriptions'}]});}return null;})[_0x4c00('0x27')](respondWithResult(_0x56099f,null))[_0x4c00('0x45')](handleError(_0x56099f,null));};exports[_0x4c00('0x56')]=function(_0x1d692c,_0x3fda76,_0x4ef44a){var _0x36945e;var _0x84a82b='';var _0x49be5f=_0x4c00('0x57');return db[_0x4c00('0x40')][_0x4c00('0x58')]({'where':{'id':_0x1d692c[_0x4c00('0x4b')]['id']},'attributes':['id','remoteUri',_0x4c00('0x59'),_0x4c00('0x5a'),'username',_0x4c00('0x5b'),'securityToken']})[_0x4c00('0x27')](handleEntityNotFound(_0x3fda76,null))['then'](function(_0x48ac85){if(_0x48ac85){_0x84a82b=_0x48ac85[_0x4c00('0x5c')];var _0x1cfa74=_0x84a82b[_0x4c00('0x5d')](-0x1);if(_0x1cfa74==='/'){_0x84a82b=_0x84a82b['substring'](0x0,_0x84a82b['lastIndexOf'](_0x1cfa74));}_0x36945e=new jsforce['Connection']({'oauth2':{'loginUrl':_0x84a82b,'clientId':_0x48ac85[_0x4c00('0x59')],'clientSecret':_0x48ac85[_0x4c00('0x5a')]}});return _0x36945e[_0x4c00('0x5e')](_0x48ac85['username'],_0x48ac85[_0x4c00('0x5b')][_0x4c00('0x5f')](_0x48ac85[_0x4c00('0x60')]));}})[_0x4c00('0x27')](function(_0x58e086){if(_0x58e086){if(!_['isNil'](_0x1d692c['query'][_0x4c00('0x61')])){_0x49be5f=_0x1d692c[_0x4c00('0x34')]['ticketType'];}return _0x36945e[_0x4c00('0x62')](_0x49be5f)[_0x4c00('0x63')]();}})['then'](function(_0x43b442){var _0x2777e7=[_0x4c00('0x64'),_0x4c00('0x65'),'IsReminderSet',_0x4c00('0x66'),_0x4c00('0x67'),_0x4c00('0x68')];var _0xe1f47f=[_0x4c00('0x69'),_0x4c00('0x6a'),_0x4c00('0x6b'),'boolean','email',_0x4c00('0x6c'),_0x4c00('0x6d')];if(_0x43b442){_[_0x4c00('0x6e')](_0x43b442['fields'],function(_0x33b44a){return _0x2777e7[_0x4c00('0x6f')](_0x33b44a[_0x4c00('0x2a')])||!_0xe1f47f[_0x4c00('0x6f')](_0x33b44a['type']);});return{'count':_0x43b442[_0x4c00('0x37')]['length'],'rows':_[_0x4c00('0x2d')](_0x43b442[_0x4c00('0x37')],function(_0x7c8be8){return{'id':_0x7c8be8[_0x4c00('0x2a')],'name':_0x7c8be8[_0x4c00('0x70')],'custom':_0x7c8be8[_0x4c00('0x71')],'options':_0x7c8be8[_0x4c00('0x72')][_0x4c00('0x46')]>0x0?_[_0x4c00('0x2d')](_0x7c8be8[_0x4c00('0x72')],function(_0x3fa9fe){return{'name':_0x3fa9fe[_0x4c00('0x70')],'value':_0x3fa9fe['value']};}):_0x7c8be8[_0x4c00('0x30')]=='boolean'?[{'name':_0x4c00('0x73'),'value':'true'},{'name':_0x4c00('0x74'),'value':'false'}]:[]};})};}})[_0x4c00('0x27')](respondWithResult(_0x3fda76,null))[_0x4c00('0x45')](function(_0x5be6d8){var _0x5aa196=_0x1d692c['query'][_0x4c00('0x75')]?0x1f4:_0x5be6d8[_0x4c00('0x76')]||0x1f4;logger[_0x4c00('0x28')]('getFields,\x20%s,\x20%s,\x20%s',_0x4c00('0x56'),_0x5aa196,JSON[_0x4c00('0x77')](_0x5be6d8));delete _0x5be6d8[_0x4c00('0x2a')];if(_0x5aa196===0x191){_0x5aa196=0x190;}_0x3fda76['status'](_0x5aa196)[_0x4c00('0x2b')](_0x1d692c[_0x4c00('0x34')][_0x4c00('0x75')]?{'message':_0x4c00('0x78'),'statusCode':_0x5be6d8[_0x4c00('0x76')]}:_0x5be6d8);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x83a8=['api','moment','bluebird','path','rimraf','../../config/environment','define','SalesforceAccount','int_salesforce_accounts','lodash','util','../../config/logger'];(function(_0x3c9ab1,_0x4eddcd){var _0x4e9c62=function(_0x4a4311){while(--_0x4a4311){_0x3c9ab1['push'](_0x3c9ab1['shift']());}};_0x4e9c62(++_0x4eddcd);}(_0x83a8,0xf9));var _0x883a=function(_0x3d2a88,_0xeb4a1f){_0x3d2a88=_0x3d2a88-0x0;var _0x5c35e3=_0x83a8[_0x3d2a88];return _0x5c35e3;};'use strict';var _=require(_0x883a('0x0'));var util=require(_0x883a('0x1'));var logger=require(_0x883a('0x2'))(_0x883a('0x3'));var moment=require(_0x883a('0x4'));var BPromise=require(_0x883a('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x883a('0x6'));var rimraf=require(_0x883a('0x7'));var config=require(_0x883a('0x8'));var attributes=require('./intSalesforceAccount.attributes');var integrations=require('../../components/integrations/configuration');module['exports']=function(_0x3eba51,_0x66cfd9){return _0x3eba51[_0x883a('0x9')](_0x883a('0xa'),attributes,{'tableName':_0x883a('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x2874=['./intSalesforceAccount.attributes','../../components/integrations/configuration','exports','define','SalesforceAccount','int_salesforce_accounts','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf'];(function(_0xba2dbe,_0x1e1d6a){var _0x32e67a=function(_0x14424c){while(--_0x14424c){_0xba2dbe['push'](_0xba2dbe['shift']());}};_0x32e67a(++_0x1e1d6a);}(_0x2874,0x150));var _0x4287=function(_0x4cc492,_0x162c85){_0x4cc492=_0x4cc492-0x0;var _0x1f36b9=_0x2874[_0x4cc492];return _0x1f36b9;};'use strict';var _=require(_0x4287('0x0'));var util=require(_0x4287('0x1'));var logger=require(_0x4287('0x2'))(_0x4287('0x3'));var moment=require(_0x4287('0x4'));var BPromise=require(_0x4287('0x5'));var rp=require(_0x4287('0x6'));var fs=require('fs');var path=require(_0x4287('0x7'));var rimraf=require(_0x4287('0x8'));var config=require('../../config/environment');var attributes=require(_0x4287('0x9'));var integrations=require(_0x4287('0xa'));module[_0x4287('0xb')]=function(_0x562394,_0x420926){return _0x562394[_0x4287('0xc')](_0x4287('0xd'),attributes,{'tableName':_0x4287('0xe'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4f58=['result','catch','GetSalesforceAccount','SalesforceAccount','options','where','attributes','limit','include','map','model','debug','ShowSalesforceAccount','find','raw','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','request','then','SalesforceAccount,\x20%s,\x20%s','request\x20sent','SalesforceAccount,\x20%s,\x20%s,\x20%s','stringify','error','message','info'];(function(_0x2943a0,_0x1e54f4){var _0x68f82e=function(_0x53f0cc){while(--_0x53f0cc){_0x2943a0['push'](_0x2943a0['shift']());}};_0x68f82e(++_0x1e54f4);}(_0x4f58,0x14a));var _0x84f5=function(_0x2e4d1b,_0x2dcda6){_0x2e4d1b=_0x2e4d1b-0x0;var _0x2cc80c=_0x4f58[_0x2e4d1b];return _0x2cc80c;};'use strict';var _=require(_0x84f5('0x0'));var util=require(_0x84f5('0x1'));var moment=require(_0x84f5('0x2'));var BPromise=require(_0x84f5('0x3'));var rs=require(_0x84f5('0x4'));var fs=require('fs');var Redis=require(_0x84f5('0x5'));var db=require(_0x84f5('0x6'))['db'];var utils=require(_0x84f5('0x7'));var logger=require(_0x84f5('0x8'))(_0x84f5('0x9'));var config=require(_0x84f5('0xa'));var jayson=require('jayson/promise');var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x29b9fd,_0x305e8d,_0x6cb291){return new BPromise(function(_0x9dee45,_0x4e79f4){return client[_0x84f5('0xb')](_0x29b9fd,_0x6cb291)[_0x84f5('0xc')](function(_0x34938a){logger['info'](_0x84f5('0xd'),_0x305e8d,_0x84f5('0xe'));logger['debug'](_0x84f5('0xf'),_0x305e8d,_0x84f5('0xe'),JSON[_0x84f5('0x10')](_0x34938a));if(_0x34938a['error']){if(_0x34938a[_0x84f5('0x11')]['code']===0x1f4){logger[_0x84f5('0x11')](_0x84f5('0xd'),_0x305e8d,_0x34938a['error']['message']);return _0x4e79f4(_0x34938a[_0x84f5('0x11')]['message']);}logger[_0x84f5('0x11')](_0x84f5('0xd'),_0x305e8d,_0x34938a[_0x84f5('0x11')][_0x84f5('0x12')]);return _0x9dee45(_0x34938a[_0x84f5('0x11')][_0x84f5('0x12')]);}else{logger[_0x84f5('0x13')](_0x84f5('0xd'),_0x305e8d,'request\x20sent');_0x9dee45(_0x34938a[_0x84f5('0x14')]['message']);}})[_0x84f5('0x15')](function(_0x4e5147){logger[_0x84f5('0x11')](_0x84f5('0xd'),_0x305e8d,_0x4e5147);_0x4e79f4(_0x4e5147);});});}exports[_0x84f5('0x16')]=function(_0x1cb414){var _0xd3a30d=this;return new Promise(function(_0x6c609d,_0x49761c){return db[_0x84f5('0x17')]['findAll']({'raw':_0x1cb414[_0x84f5('0x18')]?_0x1cb414[_0x84f5('0x18')]['raw']===undefined?!![]:![]:!![],'where':_0x1cb414[_0x84f5('0x18')]?_0x1cb414[_0x84f5('0x18')][_0x84f5('0x19')]||null:null,'attributes':_0x1cb414['options']?_0x1cb414[_0x84f5('0x18')][_0x84f5('0x1a')]||null:null,'limit':_0x1cb414['options']?_0x1cb414[_0x84f5('0x18')][_0x84f5('0x1b')]||null:null,'include':_0x1cb414[_0x84f5('0x18')]?_0x1cb414['options'][_0x84f5('0x1c')]?_[_0x84f5('0x1d')](_0x1cb414['options']['include'],function(_0x3fd9d0){return{'model':db[_0x3fd9d0[_0x84f5('0x1e')]],'as':_0x3fd9d0['as'],'attributes':_0x3fd9d0['attributes'],'include':_0x3fd9d0[_0x84f5('0x1c')]?_[_0x84f5('0x1d')](_0x3fd9d0[_0x84f5('0x1c')],function(_0xb0c371){return{'model':db[_0xb0c371[_0x84f5('0x1e')]],'as':_0xb0c371['as'],'attributes':_0xb0c371[_0x84f5('0x1a')],'include':_0xb0c371['include']?_['map'](_0xb0c371['include'],function(_0x1e34cf){return{'model':db[_0x1e34cf[_0x84f5('0x1e')]],'as':_0x1e34cf['as'],'attributes':_0x1e34cf[_0x84f5('0x1a')]};}):[]};}):[]};}):[]:[]})[_0x84f5('0xc')](function(_0x266b67){logger[_0x84f5('0x13')]('GetSalesforceAccount',_0x1cb414);logger[_0x84f5('0x1f')](_0x84f5('0x16'),_0x1cb414,JSON[_0x84f5('0x10')](_0x266b67));_0x6c609d(_0x266b67);})[_0x84f5('0x15')](function(_0x309c17){logger[_0x84f5('0x11')](_0x84f5('0x16'),_0x309c17['message'],_0x1cb414);_0x49761c(_0xd3a30d[_0x84f5('0x11')](0x1f4,_0x309c17['message']));});});};exports[_0x84f5('0x20')]=function(_0x55fd8d){var _0x4e0dcf=this;return new Promise(function(_0x7db4aa,_0x54ebf1){return db[_0x84f5('0x17')][_0x84f5('0x21')]({'raw':_0x55fd8d['options']?_0x55fd8d[_0x84f5('0x18')][_0x84f5('0x22')]===undefined?!![]:![]:!![],'where':_0x55fd8d[_0x84f5('0x18')]?_0x55fd8d[_0x84f5('0x18')][_0x84f5('0x19')]||null:null,'attributes':_0x55fd8d[_0x84f5('0x18')]?_0x55fd8d['options'][_0x84f5('0x1a')]||null:null,'include':_0x55fd8d[_0x84f5('0x18')]?_0x55fd8d[_0x84f5('0x18')][_0x84f5('0x1c')]?_[_0x84f5('0x1d')](_0x55fd8d[_0x84f5('0x18')]['include'],function(_0x308773){return{'model':db[_0x308773[_0x84f5('0x1e')]],'as':_0x308773['as'],'attributes':_0x308773[_0x84f5('0x1a')],'include':_0x308773[_0x84f5('0x1c')]?_['map'](_0x308773['include'],function(_0x4ffbbb){return{'model':db[_0x4ffbbb[_0x84f5('0x1e')]],'as':_0x4ffbbb['as'],'attributes':_0x4ffbbb['attributes'],'include':_0x4ffbbb[_0x84f5('0x1c')]?_[_0x84f5('0x1d')](_0x4ffbbb[_0x84f5('0x1c')],function(_0x4cc854){return{'model':db[_0x4cc854[_0x84f5('0x1e')]],'as':_0x4cc854['as'],'attributes':_0x4cc854[_0x84f5('0x1a')]};}):[]};}):[]};}):[]:[]})[_0x84f5('0xc')](function(_0x1343e6){logger[_0x84f5('0x13')](_0x84f5('0x20'),_0x55fd8d);logger[_0x84f5('0x1f')](_0x84f5('0x20'),_0x55fd8d,JSON[_0x84f5('0x10')](_0x1343e6));_0x7db4aa(_0x1343e6);})[_0x84f5('0x15')](function(_0x27872b){logger[_0x84f5('0x11')](_0x84f5('0x20'),_0x27872b[_0x84f5('0x12')],_0x55fd8d);_0x54ebf1(_0x4e0dcf[_0x84f5('0x11')](0x1f4,_0x27872b[_0x84f5('0x12')]));});});};
\ No newline at end of file
+var _0xff01=['stringify','error','code','message','result','raw','options','attributes','limit','include','map','model','GetSalesforceAccount','catch','SalesforceAccount','find','where','ShowSalesforceAccount','lodash','util','bluebird','ioredis','../../mysqldb','../../config/utils','rpc','jayson/promise','http','request','then','info','SalesforceAccount,\x20%s,\x20%s','debug','request\x20sent'];(function(_0x27c35b,_0x2e39d9){var _0x2228b2=function(_0x481b05){while(--_0x481b05){_0x27c35b['push'](_0x27c35b['shift']());}};_0x2228b2(++_0x2e39d9);}(_0xff01,0xb7));var _0x1ff0=function(_0x1d9fb6,_0xcd7b7b){_0x1d9fb6=_0x1d9fb6-0x0;var _0x15c84c=_0xff01[_0x1d9fb6];return _0x15c84c;};'use strict';var _=require(_0x1ff0('0x0'));var util=require(_0x1ff0('0x1'));var moment=require('moment');var BPromise=require(_0x1ff0('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x1ff0('0x3'));var db=require(_0x1ff0('0x4'))['db'];var utils=require(_0x1ff0('0x5'));var logger=require('../../config/logger')(_0x1ff0('0x6'));var config=require('../../config/environment');var jayson=require(_0x1ff0('0x7'));var client=jayson['client'][_0x1ff0('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x47ca4c,_0x5e47d6,_0x389e37){return new BPromise(function(_0xb44d65,_0x4e5b21){return client[_0x1ff0('0x9')](_0x47ca4c,_0x389e37)[_0x1ff0('0xa')](function(_0x45dfea){logger[_0x1ff0('0xb')](_0x1ff0('0xc'),_0x5e47d6,'request\x20sent');logger[_0x1ff0('0xd')]('SalesforceAccount,\x20%s,\x20%s,\x20%s',_0x5e47d6,_0x1ff0('0xe'),JSON[_0x1ff0('0xf')](_0x45dfea));if(_0x45dfea[_0x1ff0('0x10')]){if(_0x45dfea[_0x1ff0('0x10')][_0x1ff0('0x11')]===0x1f4){logger[_0x1ff0('0x10')](_0x1ff0('0xc'),_0x5e47d6,_0x45dfea[_0x1ff0('0x10')][_0x1ff0('0x12')]);return _0x4e5b21(_0x45dfea[_0x1ff0('0x10')]['message']);}logger[_0x1ff0('0x10')](_0x1ff0('0xc'),_0x5e47d6,_0x45dfea[_0x1ff0('0x10')][_0x1ff0('0x12')]);return _0xb44d65(_0x45dfea['error'][_0x1ff0('0x12')]);}else{logger[_0x1ff0('0xb')]('SalesforceAccount,\x20%s,\x20%s',_0x5e47d6,_0x1ff0('0xe'));_0xb44d65(_0x45dfea[_0x1ff0('0x13')][_0x1ff0('0x12')]);}})['catch'](function(_0x564940){logger[_0x1ff0('0x10')](_0x1ff0('0xc'),_0x5e47d6,_0x564940);_0x4e5b21(_0x564940);});});}exports['GetSalesforceAccount']=function(_0x1efb08){var _0x3b0b40=this;return new Promise(function(_0x2b3199,_0x12ed82){return db['SalesforceAccount']['findAll']({'raw':_0x1efb08['options']?_0x1efb08['options'][_0x1ff0('0x14')]===undefined?!![]:![]:!![],'where':_0x1efb08[_0x1ff0('0x15')]?_0x1efb08[_0x1ff0('0x15')]['where']||null:null,'attributes':_0x1efb08[_0x1ff0('0x15')]?_0x1efb08[_0x1ff0('0x15')][_0x1ff0('0x16')]||null:null,'limit':_0x1efb08[_0x1ff0('0x15')]?_0x1efb08[_0x1ff0('0x15')][_0x1ff0('0x17')]||null:null,'include':_0x1efb08[_0x1ff0('0x15')]?_0x1efb08[_0x1ff0('0x15')][_0x1ff0('0x18')]?_[_0x1ff0('0x19')](_0x1efb08[_0x1ff0('0x15')]['include'],function(_0x45391b){return{'model':db[_0x45391b['model']],'as':_0x45391b['as'],'attributes':_0x45391b[_0x1ff0('0x16')],'include':_0x45391b['include']?_[_0x1ff0('0x19')](_0x45391b[_0x1ff0('0x18')],function(_0x3c9e6e){return{'model':db[_0x3c9e6e[_0x1ff0('0x1a')]],'as':_0x3c9e6e['as'],'attributes':_0x3c9e6e[_0x1ff0('0x16')],'include':_0x3c9e6e['include']?_[_0x1ff0('0x19')](_0x3c9e6e[_0x1ff0('0x18')],function(_0x38a2e2){return{'model':db[_0x38a2e2['model']],'as':_0x38a2e2['as'],'attributes':_0x38a2e2[_0x1ff0('0x16')]};}):[]};}):[]};}):[]:[]})[_0x1ff0('0xa')](function(_0x29fdb2){logger[_0x1ff0('0xb')](_0x1ff0('0x1b'),_0x1efb08);logger['debug'](_0x1ff0('0x1b'),_0x1efb08,JSON[_0x1ff0('0xf')](_0x29fdb2));_0x2b3199(_0x29fdb2);})[_0x1ff0('0x1c')](function(_0x16a084){logger['error'](_0x1ff0('0x1b'),_0x16a084['message'],_0x1efb08);_0x12ed82(_0x3b0b40[_0x1ff0('0x10')](0x1f4,_0x16a084[_0x1ff0('0x12')]));});});};exports['ShowSalesforceAccount']=function(_0x5a3069){var _0x5de363=this;return new Promise(function(_0x49218f,_0x1e0881){return db[_0x1ff0('0x1d')][_0x1ff0('0x1e')]({'raw':_0x5a3069['options']?_0x5a3069[_0x1ff0('0x15')][_0x1ff0('0x14')]===undefined?!![]:![]:!![],'where':_0x5a3069['options']?_0x5a3069[_0x1ff0('0x15')][_0x1ff0('0x1f')]||null:null,'attributes':_0x5a3069[_0x1ff0('0x15')]?_0x5a3069[_0x1ff0('0x15')]['attributes']||null:null,'include':_0x5a3069[_0x1ff0('0x15')]?_0x5a3069['options'][_0x1ff0('0x18')]?_[_0x1ff0('0x19')](_0x5a3069[_0x1ff0('0x15')][_0x1ff0('0x18')],function(_0x23539f){return{'model':db[_0x23539f[_0x1ff0('0x1a')]],'as':_0x23539f['as'],'attributes':_0x23539f[_0x1ff0('0x16')],'include':_0x23539f[_0x1ff0('0x18')]?_['map'](_0x23539f[_0x1ff0('0x18')],function(_0x5566fe){return{'model':db[_0x5566fe[_0x1ff0('0x1a')]],'as':_0x5566fe['as'],'attributes':_0x5566fe[_0x1ff0('0x16')],'include':_0x5566fe[_0x1ff0('0x18')]?_['map'](_0x5566fe['include'],function(_0x1523cf){return{'model':db[_0x1523cf['model']],'as':_0x1523cf['as'],'attributes':_0x1523cf[_0x1ff0('0x16')]};}):[]};}):[]};}):[]:[]})[_0x1ff0('0xa')](function(_0x518cb1){logger[_0x1ff0('0xb')](_0x1ff0('0x20'),_0x5a3069);logger[_0x1ff0('0xd')](_0x1ff0('0x20'),_0x5a3069,JSON[_0x1ff0('0xf')](_0x518cb1));_0x49218f(_0x518cb1);})[_0x1ff0('0x1c')](function(_0x5c272f){logger[_0x1ff0('0x10')](_0x1ff0('0x20'),_0x5c272f[_0x1ff0('0x12')],_0x5a3069);_0x1e0881(_0x5de363['error'](0x1f4,_0x5c272f['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2032=['Router','fs-extra','../../components/interaction/service','../../config/environment','./intSalesforceConfiguration.controller','get','isAuthenticated','index','/:id','show','getFields','/:id/subjects','getSubjects','/:id/descriptions','getDescriptions','create','exports','util','path','connect-timeout'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x2032,0xd9));var _0x2203=function(_0x9880a0,_0x80e7a0){_0x9880a0=_0x9880a0-0x0;var _0x58a2da=_0x2032[_0x9880a0];return _0x58a2da;};'use strict';var multer=require('multer');var util=require(_0x2203('0x0'));var path=require(_0x2203('0x1'));var timeout=require(_0x2203('0x2'));var express=require('express');var router=express[_0x2203('0x3')]();var fs_extra=require(_0x2203('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0x2203('0x5'));var config=require(_0x2203('0x6'));var controller=require(_0x2203('0x7'));router[_0x2203('0x8')]('/',auth[_0x2203('0x9')](),controller[_0x2203('0xa')]);router[_0x2203('0x8')](_0x2203('0xb'),auth[_0x2203('0x9')](),controller[_0x2203('0xc')]);router[_0x2203('0x8')]('/:id/fields',auth['isAuthenticated'](),controller[_0x2203('0xd')]);router['get'](_0x2203('0xe'),auth[_0x2203('0x9')](),controller[_0x2203('0xf')]);router['get'](_0x2203('0x10'),auth['isAuthenticated'](),controller[_0x2203('0x11')]);router['post']('/',auth[_0x2203('0x9')](),controller[_0x2203('0x12')]);router['put']('/:id',auth['isAuthenticated'](),controller['update']);router['delete'](_0x2203('0xb'),auth['isAuthenticated'](),controller['destroy']);module[_0x2203('0x13')]=router;
\ No newline at end of file
+var _0x2ef3=['connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','./intSalesforceConfiguration.controller','get','/:id','isAuthenticated','show','/:id/fields','getFields','/:id/subjects','/:id/descriptions','getDescriptions','put','update','exports','multer','util','path'];(function(_0x4557ee,_0x23f2f6){var _0x446902=function(_0x3b70dc){while(--_0x3b70dc){_0x4557ee['push'](_0x4557ee['shift']());}};_0x446902(++_0x23f2f6);}(_0x2ef3,0xba));var _0x32ef=function(_0x30f48f,_0x8767c2){_0x30f48f=_0x30f48f-0x0;var _0x32cc90=_0x2ef3[_0x30f48f];return _0x32cc90;};'use strict';var multer=require(_0x32ef('0x0'));var util=require(_0x32ef('0x1'));var path=require(_0x32ef('0x2'));var timeout=require(_0x32ef('0x3'));var express=require(_0x32ef('0x4'));var router=express[_0x32ef('0x5')]();var fs_extra=require('fs-extra');var auth=require(_0x32ef('0x6'));var interaction=require(_0x32ef('0x7'));var config=require('../../config/environment');var controller=require(_0x32ef('0x8'));router[_0x32ef('0x9')]('/',auth['isAuthenticated'](),controller['index']);router[_0x32ef('0x9')](_0x32ef('0xa'),auth[_0x32ef('0xb')](),controller[_0x32ef('0xc')]);router[_0x32ef('0x9')](_0x32ef('0xd'),auth[_0x32ef('0xb')](),controller[_0x32ef('0xe')]);router[_0x32ef('0x9')](_0x32ef('0xf'),auth['isAuthenticated'](),controller['getSubjects']);router[_0x32ef('0x9')](_0x32ef('0x10'),auth[_0x32ef('0xb')](),controller[_0x32ef('0x11')]);router['post']('/',auth[_0x32ef('0xb')](),controller['create']);router[_0x32ef('0x12')]('/:id',auth[_0x32ef('0xb')](),controller[_0x32ef('0x13')]);router['delete']('/:id',auth[_0x32ef('0xb')](),controller['destroy']);module[_0x32ef('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcc76=['contact_lead','contact','account_contact_lead','account','lead','sequelize','exports','STRING','Task','Case','ENUM'];(function(_0x43325f,_0xfc3a09){var _0x4ca95a=function(_0x56fe61){while(--_0x56fe61){_0x43325f['push'](_0x43325f['shift']());}};_0x4ca95a(++_0xfc3a09);}(_0xcc76,0x7e));var _0x6cc7=function(_0x381e63,_0x223c6c){_0x381e63=_0x381e63-0x0;var _0x508ef2=_0xcc76[_0x381e63];return _0x508ef2;};'use strict';var Sequelize=require(_0x6cc7('0x0'));module[_0x6cc7('0x1')]={'name':{'type':Sequelize[_0x6cc7('0x2')]},'description':{'type':Sequelize[_0x6cc7('0x2')]},'ticketType':{'type':Sequelize['ENUM'](_0x6cc7('0x3'),_0x6cc7('0x4')),'defaultValue':'Task'},'moduleSearch':{'type':Sequelize[_0x6cc7('0x5')](_0x6cc7('0x6'),_0x6cc7('0x7'),'lead',_0x6cc7('0x8'),'account'),'defaultValue':_0x6cc7('0x6')},'moduleCreate':{'type':Sequelize[_0x6cc7('0x5')]('nothing','contact','lead',_0x6cc7('0x9')),'defaultValue':_0x6cc7('0xa')},'leadId':{'type':Sequelize['STRING']},'additionalSearchAccount':{'type':Sequelize['STRING']},'additionalSearchContact':{'type':Sequelize[_0x6cc7('0x2')]},'additionalSearchLead':{'type':Sequelize[_0x6cc7('0x2')]}};
\ No newline at end of file
+var _0x95f8=['lead','account_contact_lead','sequelize','STRING','ENUM','Task','Case','contact_lead','contact'];(function(_0x737a1f,_0x235fef){var _0x16eba1=function(_0x292aa8){while(--_0x292aa8){_0x737a1f['push'](_0x737a1f['shift']());}};_0x16eba1(++_0x235fef);}(_0x95f8,0x1a9));var _0x895f=function(_0xcf15d7,_0x405a21){_0xcf15d7=_0xcf15d7-0x0;var _0x299737=_0x95f8[_0xcf15d7];return _0x299737;};'use strict';var Sequelize=require(_0x895f('0x0'));module['exports']={'name':{'type':Sequelize[_0x895f('0x1')]},'description':{'type':Sequelize[_0x895f('0x1')]},'ticketType':{'type':Sequelize[_0x895f('0x2')](_0x895f('0x3'),_0x895f('0x4')),'defaultValue':'Task'},'moduleSearch':{'type':Sequelize[_0x895f('0x2')](_0x895f('0x5'),_0x895f('0x6'),_0x895f('0x7'),_0x895f('0x8'),'account'),'defaultValue':_0x895f('0x5')},'moduleCreate':{'type':Sequelize[_0x895f('0x2')]('nothing',_0x895f('0x6'),_0x895f('0x7'),'account'),'defaultValue':'lead'},'leadId':{'type':Sequelize[_0x895f('0x1')]},'additionalSearchAccount':{'type':Sequelize['STRING']},'additionalSearchContact':{'type':Sequelize[_0x895f('0x1')]},'additionalSearchLead':{'type':Sequelize[_0x895f('0x1')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbf9a=['json','offset','undefined','limit','count','set','Content-Range','apply','reject','update','then','destroy','name','send','index','map','type','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','SalesforceConfiguration','includeAll','include','findAll','catch','show','params','rawAttributes','options','find','create','body','findOne','SalesforceField','order','getFields','getSubjects','getDescriptions','eml-format','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end'];(function(_0x31bcb2,_0x23cc0e){var _0x3f150c=function(_0x119f71){while(--_0x119f71){_0x31bcb2['push'](_0x31bcb2['shift']());}};_0x3f150c(++_0x23cc0e);}(_0xbf9a,0x7e));var _0xabf9=function(_0x46ae5a,_0x2a38d0){_0x46ae5a=_0x46ae5a-0x0;var _0x434986=_0xbf9a[_0x46ae5a];return _0x434986;};'use strict';var emlformat=require(_0xabf9('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xabf9('0x1'));var jsonpatch=require(_0xabf9('0x2'));var rp=require(_0xabf9('0x3'));var moment=require('moment');var BPromise=require(_0xabf9('0x4'));var Mustache=require(_0xabf9('0x5'));var util=require(_0xabf9('0x6'));var path=require(_0xabf9('0x7'));var sox=require(_0xabf9('0x8'));var csv=require(_0xabf9('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xabf9('0xa'));var _=require(_0xabf9('0xb'));var squel=require(_0xabf9('0xc'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xabf9('0xd'));var Redis=require('ioredis');var authService=require(_0xabf9('0xe'));var qs=require(_0xabf9('0xf'));var as=require(_0xabf9('0x10'));var hardwareService=require(_0xabf9('0x11'));var logger=require('../../config/logger')('api');var utils=require(_0xabf9('0x12'));var config=require('../../config/environment');var licenseUtil=require(_0xabf9('0x13'));var db=require(_0xabf9('0x14'))['db'];function respondWithStatusCode(_0x36d4c9,_0x53493b){_0x53493b=_0x53493b||0xcc;return function(_0x4e932a){if(_0x4e932a){return _0x36d4c9[_0xabf9('0x15')](_0x53493b);}return _0x36d4c9[_0xabf9('0x16')](_0x53493b)[_0xabf9('0x17')]();};}function respondWithResult(_0x115f94,_0x1fafd3){_0x1fafd3=_0x1fafd3||0xc8;return function(_0x54b6f3){if(_0x54b6f3){return _0x115f94[_0xabf9('0x16')](_0x1fafd3)[_0xabf9('0x18')](_0x54b6f3);}};}function respondWithFilteredResult(_0x501785,_0x373ce0){return function(_0x5199e9){if(_0x5199e9){var _0x5228af=typeof _0x373ce0[_0xabf9('0x19')]===_0xabf9('0x1a')&&typeof _0x373ce0[_0xabf9('0x1b')]===_0xabf9('0x1a');var _0x30362f=_0x5199e9[_0xabf9('0x1c')];var _0x3d3c48=_0x5228af?0x0:_0x373ce0[_0xabf9('0x19')];var _0x3eb254=_0x5228af?_0x5199e9[_0xabf9('0x1c')]:_0x373ce0[_0xabf9('0x19')]+_0x373ce0[_0xabf9('0x1b')];var _0x5e22f7;if(_0x3eb254>=_0x30362f){_0x3eb254=_0x30362f;_0x5e22f7=0xc8;}else{_0x5e22f7=0xce;}_0x501785[_0xabf9('0x16')](_0x5e22f7);return _0x501785[_0xabf9('0x1d')](_0xabf9('0x1e'),_0x3d3c48+'-'+_0x3eb254+'/'+_0x30362f)[_0xabf9('0x18')](_0x5199e9);}return null;};}function patchUpdates(_0x11ded1){return function(_0x4db8eb){try{jsonpatch[_0xabf9('0x1f')](_0x4db8eb,_0x11ded1,!![]);}catch(_0x4bcf76){return BPromise[_0xabf9('0x20')](_0x4bcf76);}return _0x4db8eb['save']();};}function saveUpdates(_0x3ee6a6,_0x506d5c){return function(_0x47c116){if(_0x47c116){return _0x47c116[_0xabf9('0x21')](_0x3ee6a6)[_0xabf9('0x22')](function(_0x87b919){return _0x87b919;});}return null;};}function removeEntity(_0x4057db,_0x5a9e86){return function(_0x44ec36){if(_0x44ec36){return _0x44ec36[_0xabf9('0x23')]()[_0xabf9('0x22')](function(){_0x4057db[_0xabf9('0x16')](0xcc)['end']();});}};}function handleEntityNotFound(_0x3f2434,_0x3f43e2){return function(_0x4ef7fc){if(!_0x4ef7fc){_0x3f2434[_0xabf9('0x15')](0x194);}return _0x4ef7fc;};}function handleError(_0x59b202,_0x5d8a97){_0x5d8a97=_0x5d8a97||0x1f4;return function(_0xb51548){logger['error'](_0xb51548['stack']);if(_0xb51548[_0xabf9('0x24')]){delete _0xb51548['name'];}_0x59b202[_0xabf9('0x16')](_0x5d8a97)[_0xabf9('0x25')](_0xb51548);};}exports[_0xabf9('0x26')]=function(_0x141907,_0x298051){var _0x2560b9={},_0x1a37ce={},_0x230a4c={'count':0x0,'rows':[]};var _0x30b44c=_[_0xabf9('0x27')](db['SalesforceConfiguration']['rawAttributes'],function(_0x68be46){return{'name':_0x68be46['fieldName'],'type':_0x68be46[_0xabf9('0x28')][_0xabf9('0x29')]};});_0x1a37ce[_0xabf9('0x2a')]=_['map'](_0x30b44c,'name');_0x1a37ce['query']=_[_0xabf9('0x2b')](_0x141907[_0xabf9('0x2c')]);_0x1a37ce[_0xabf9('0x2d')]=_[_0xabf9('0x2e')](_0x1a37ce[_0xabf9('0x2a')],_0x1a37ce[_0xabf9('0x2c')]);_0x2560b9[_0xabf9('0x2f')]=_[_0xabf9('0x2e')](_0x1a37ce[_0xabf9('0x2a')],qs['fields'](_0x141907['query'][_0xabf9('0x30')]));_0x2560b9[_0xabf9('0x2f')]=_0x2560b9[_0xabf9('0x2f')][_0xabf9('0x31')]?_0x2560b9[_0xabf9('0x2f')]:_0x1a37ce['model'];if(!_0x141907[_0xabf9('0x2c')][_0xabf9('0x32')](_0xabf9('0x33'))){_0x2560b9[_0xabf9('0x1b')]=qs[_0xabf9('0x1b')](_0x141907[_0xabf9('0x2c')][_0xabf9('0x1b')]);_0x2560b9[_0xabf9('0x19')]=qs[_0xabf9('0x19')](_0x141907[_0xabf9('0x2c')][_0xabf9('0x19')]);}_0x2560b9['order']=qs['sort'](_0x141907[_0xabf9('0x2c')][_0xabf9('0x34')]);_0x2560b9[_0xabf9('0x35')]=qs[_0xabf9('0x2d')](_[_0xabf9('0x36')](_0x141907['query'],_0x1a37ce[_0xabf9('0x2d')]),_0x30b44c);if(_0x141907['query'][_0xabf9('0x37')]){_0x2560b9[_0xabf9('0x35')]=_['merge'](_0x2560b9[_0xabf9('0x35')],{'$or':_['map'](_0x30b44c,function(_0x1e8f69){if(_0x1e8f69[_0xabf9('0x28')]!=='VIRTUAL'){var _0x46035b={};_0x46035b[_0x1e8f69[_0xabf9('0x24')]]={'$like':'%'+_0x141907[_0xabf9('0x2c')][_0xabf9('0x37')]+'%'};return _0x46035b;}})});}_0x2560b9=_[_0xabf9('0x38')]({},_0x2560b9,_0x141907['options']);var _0x32d357={'where':_0x2560b9['where']};return db[_0xabf9('0x39')]['count'](_0x32d357)[_0xabf9('0x22')](function(_0x44dd0e){_0x230a4c[_0xabf9('0x1c')]=_0x44dd0e;if(_0x141907[_0xabf9('0x2c')][_0xabf9('0x3a')]){_0x2560b9[_0xabf9('0x3b')]=[{'all':!![]}];}return db[_0xabf9('0x39')][_0xabf9('0x3c')](_0x2560b9);})['then'](function(_0x1b940a){_0x230a4c['rows']=_0x1b940a;return _0x230a4c;})[_0xabf9('0x22')](respondWithFilteredResult(_0x298051,_0x2560b9))[_0xabf9('0x3d')](handleError(_0x298051,null));};exports[_0xabf9('0x3e')]=function(_0x432e72,_0x3c94af){var _0x33b928={'raw':![],'where':{'id':_0x432e72[_0xabf9('0x3f')]['id']}},_0x47fec2={};_0x47fec2[_0xabf9('0x2a')]=_['keys'](db[_0xabf9('0x39')][_0xabf9('0x40')]);_0x47fec2[_0xabf9('0x2c')]=_['keys'](_0x432e72[_0xabf9('0x2c')]);_0x47fec2[_0xabf9('0x2d')]=_[_0xabf9('0x2e')](_0x47fec2[_0xabf9('0x2a')],_0x47fec2['query']);_0x33b928[_0xabf9('0x2f')]=_[_0xabf9('0x2e')](_0x47fec2[_0xabf9('0x2a')],qs['fields'](_0x432e72['query']['fields']));_0x33b928['attributes']=_0x33b928[_0xabf9('0x2f')][_0xabf9('0x31')]?_0x33b928[_0xabf9('0x2f')]:_0x47fec2['model'];if(_0x432e72[_0xabf9('0x2c')][_0xabf9('0x3a')]){_0x33b928[_0xabf9('0x3b')]=[{'all':!![]}];}_0x33b928=_[_0xabf9('0x38')]({},_0x33b928,_0x432e72[_0xabf9('0x41')]);return db[_0xabf9('0x39')][_0xabf9('0x42')](_0x33b928)['then'](handleEntityNotFound(_0x3c94af,null))[_0xabf9('0x22')](respondWithResult(_0x3c94af,null))[_0xabf9('0x3d')](handleError(_0x3c94af,null));};exports[_0xabf9('0x43')]=function(_0x134b07,_0x33eb63){return db[_0xabf9('0x39')][_0xabf9('0x43')](_0x134b07[_0xabf9('0x44')],{})[_0xabf9('0x22')](respondWithResult(_0x33eb63,0xc9))[_0xabf9('0x3d')](handleError(_0x33eb63,null));};exports[_0xabf9('0x21')]=function(_0x55085a,_0xd55aea){if(_0x55085a['body']['id']){delete _0x55085a[_0xabf9('0x44')]['id'];}return db[_0xabf9('0x39')][_0xabf9('0x42')]({'where':{'id':_0x55085a['params']['id']}})[_0xabf9('0x22')](handleEntityNotFound(_0xd55aea,null))['then'](saveUpdates(_0x55085a[_0xabf9('0x44')],null))[_0xabf9('0x22')](respondWithResult(_0xd55aea,null))[_0xabf9('0x3d')](handleError(_0xd55aea,null));};exports[_0xabf9('0x23')]=function(_0x474b6b,_0x39a979){return db[_0xabf9('0x39')][_0xabf9('0x42')]({'where':{'id':_0x474b6b[_0xabf9('0x3f')]['id']}})[_0xabf9('0x22')](handleEntityNotFound(_0x39a979,null))[_0xabf9('0x22')](removeEntity(_0x39a979,null))['catch'](handleError(_0x39a979,null));};exports['getFields']=function(_0x4a986b,_0x116056,_0xfeb74f){var _0x282d35={};var _0x4801e7={};var _0x432263;var _0x2e957f;return db[_0xabf9('0x39')][_0xabf9('0x45')]({'where':{'id':_0x4a986b[_0xabf9('0x3f')]['id']}})[_0xabf9('0x22')](handleEntityNotFound(_0x116056,null))[_0xabf9('0x22')](function(_0x39e8c6){if(_0x39e8c6){_0x432263=_0x39e8c6;_0x4801e7['model']=_[_0xabf9('0x2b')](db[_0xabf9('0x46')]['rawAttributes']);_0x4801e7[_0xabf9('0x2c')]=_[_0xabf9('0x2b')](_0x4a986b['query']);_0x4801e7[_0xabf9('0x2d')]=_[_0xabf9('0x2e')](_0x4801e7[_0xabf9('0x2a')],_0x4801e7[_0xabf9('0x2c')]);_0x282d35[_0xabf9('0x2f')]=_['intersection'](_0x4801e7['model'],qs[_0xabf9('0x30')](_0x4a986b[_0xabf9('0x2c')][_0xabf9('0x30')]));_0x282d35['attributes']=_0x282d35['attributes'][_0xabf9('0x31')]?_0x282d35[_0xabf9('0x2f')]:_0x4801e7[_0xabf9('0x2a')];_0x282d35[_0xabf9('0x47')]=qs[_0xabf9('0x34')](_0x4a986b[_0xabf9('0x2c')][_0xabf9('0x34')]);_0x282d35['where']=qs[_0xabf9('0x2d')](_[_0xabf9('0x36')](_0x4a986b[_0xabf9('0x2c')],_0x4801e7['filters']));if(_0x4a986b['query'][_0xabf9('0x37')]){_0x282d35[_0xabf9('0x35')]=_[_0xabf9('0x38')](_0x282d35[_0xabf9('0x35')],{'$or':_[_0xabf9('0x27')](_0x282d35['attributes'],function(_0x4c3aff){var _0x1e7311={};_0x1e7311[_0x4c3aff]={'$like':'%'+_0x4a986b[_0xabf9('0x2c')]['filter']+'%'};return _0x1e7311;})});}_0x282d35=_['merge']({},_0x282d35,_0x4a986b[_0xabf9('0x41')]);return _0x432263[_0xabf9('0x48')](_0x282d35);}})[_0xabf9('0x22')](function(_0xa25d1d){if(_0xa25d1d){_0x2e957f=_0xa25d1d['length'];if(!_0x4a986b['query'][_0xabf9('0x32')](_0xabf9('0x33'))){_0x282d35['limit']=qs[_0xabf9('0x1b')](_0x4a986b['query'][_0xabf9('0x1b')]);_0x282d35[_0xabf9('0x19')]=qs[_0xabf9('0x19')](_0x4a986b['query']['offset']);}return _0x432263['getFields'](_0x282d35);}})['then'](function(_0x2b842e){if(_0x2b842e){return _0x2b842e?{'count':_0x2e957f,'rows':_0x2b842e}:null;}})['then'](respondWithResult(_0x116056,null))['catch'](handleError(_0x116056,null));};exports[_0xabf9('0x49')]=function(_0x32d3e8,_0xadb286,_0x561cb4){var _0x4d462b={};var _0x435e93={};var _0x5e28e8;var _0x54d072;return db[_0xabf9('0x39')][_0xabf9('0x45')]({'where':{'id':_0x32d3e8[_0xabf9('0x3f')]['id']}})['then'](handleEntityNotFound(_0xadb286,null))[_0xabf9('0x22')](function(_0x52e29e){if(_0x52e29e){_0x5e28e8=_0x52e29e;_0x435e93[_0xabf9('0x2a')]=_['keys'](db[_0xabf9('0x46')][_0xabf9('0x40')]);_0x435e93['query']=_['keys'](_0x32d3e8[_0xabf9('0x2c')]);_0x435e93[_0xabf9('0x2d')]=_[_0xabf9('0x2e')](_0x435e93['model'],_0x435e93[_0xabf9('0x2c')]);_0x4d462b[_0xabf9('0x2f')]=_[_0xabf9('0x2e')](_0x435e93[_0xabf9('0x2a')],qs[_0xabf9('0x30')](_0x32d3e8[_0xabf9('0x2c')][_0xabf9('0x30')]));_0x4d462b[_0xabf9('0x2f')]=_0x4d462b['attributes']['length']?_0x4d462b[_0xabf9('0x2f')]:_0x435e93[_0xabf9('0x2a')];_0x4d462b[_0xabf9('0x47')]=qs['sort'](_0x32d3e8[_0xabf9('0x2c')][_0xabf9('0x34')]);_0x4d462b[_0xabf9('0x35')]=qs[_0xabf9('0x2d')](_[_0xabf9('0x36')](_0x32d3e8[_0xabf9('0x2c')],_0x435e93[_0xabf9('0x2d')]));if(_0x32d3e8[_0xabf9('0x2c')][_0xabf9('0x37')]){_0x4d462b['where']=_[_0xabf9('0x38')](_0x4d462b[_0xabf9('0x35')],{'$or':_[_0xabf9('0x27')](_0x4d462b['attributes'],function(_0x46f410){var _0x36edee={};_0x36edee[_0x46f410]={'$like':'%'+_0x32d3e8['query']['filter']+'%'};return _0x36edee;})});}_0x4d462b=_[_0xabf9('0x38')]({},_0x4d462b,_0x32d3e8[_0xabf9('0x41')]);return _0x5e28e8[_0xabf9('0x49')](_0x4d462b);}})[_0xabf9('0x22')](function(_0x4730dc){if(_0x4730dc){_0x54d072=_0x4730dc[_0xabf9('0x31')];if(!_0x32d3e8[_0xabf9('0x2c')][_0xabf9('0x32')](_0xabf9('0x33'))){_0x4d462b['limit']=qs['limit'](_0x32d3e8[_0xabf9('0x2c')][_0xabf9('0x1b')]);_0x4d462b[_0xabf9('0x19')]=qs[_0xabf9('0x19')](_0x32d3e8['query']['offset']);}return _0x5e28e8[_0xabf9('0x49')](_0x4d462b);}})[_0xabf9('0x22')](function(_0x3cdc73){if(_0x3cdc73){return _0x3cdc73?{'count':_0x54d072,'rows':_0x3cdc73}:null;}})[_0xabf9('0x22')](respondWithResult(_0xadb286,null))[_0xabf9('0x3d')](handleError(_0xadb286,null));};exports[_0xabf9('0x4a')]=function(_0x2f6432,_0x34c43a,_0x3dd614){var _0x40c65c={};var _0x1d2b3c={};var _0xacdec8;var _0x18b6d3;return db[_0xabf9('0x39')][_0xabf9('0x45')]({'where':{'id':_0x2f6432[_0xabf9('0x3f')]['id']}})['then'](handleEntityNotFound(_0x34c43a,null))[_0xabf9('0x22')](function(_0xb69bb3){if(_0xb69bb3){_0xacdec8=_0xb69bb3;_0x1d2b3c[_0xabf9('0x2a')]=_[_0xabf9('0x2b')](db[_0xabf9('0x46')][_0xabf9('0x40')]);_0x1d2b3c[_0xabf9('0x2c')]=_[_0xabf9('0x2b')](_0x2f6432['query']);_0x1d2b3c[_0xabf9('0x2d')]=_[_0xabf9('0x2e')](_0x1d2b3c['model'],_0x1d2b3c[_0xabf9('0x2c')]);_0x40c65c['attributes']=_[_0xabf9('0x2e')](_0x1d2b3c[_0xabf9('0x2a')],qs[_0xabf9('0x30')](_0x2f6432[_0xabf9('0x2c')][_0xabf9('0x30')]));_0x40c65c[_0xabf9('0x2f')]=_0x40c65c[_0xabf9('0x2f')][_0xabf9('0x31')]?_0x40c65c[_0xabf9('0x2f')]:_0x1d2b3c[_0xabf9('0x2a')];_0x40c65c[_0xabf9('0x47')]=qs[_0xabf9('0x34')](_0x2f6432[_0xabf9('0x2c')][_0xabf9('0x34')]);_0x40c65c['where']=qs[_0xabf9('0x2d')](_[_0xabf9('0x36')](_0x2f6432[_0xabf9('0x2c')],_0x1d2b3c[_0xabf9('0x2d')]));if(_0x2f6432[_0xabf9('0x2c')][_0xabf9('0x37')]){_0x40c65c[_0xabf9('0x35')]=_[_0xabf9('0x38')](_0x40c65c[_0xabf9('0x35')],{'$or':_[_0xabf9('0x27')](_0x40c65c[_0xabf9('0x2f')],function(_0x514355){var _0x53adaf={};_0x53adaf[_0x514355]={'$like':'%'+_0x2f6432[_0xabf9('0x2c')][_0xabf9('0x37')]+'%'};return _0x53adaf;})});}_0x40c65c=_[_0xabf9('0x38')]({},_0x40c65c,_0x2f6432[_0xabf9('0x41')]);return _0xacdec8['getDescriptions'](_0x40c65c);}})[_0xabf9('0x22')](function(_0x69e6ec){if(_0x69e6ec){_0x18b6d3=_0x69e6ec['length'];if(!_0x2f6432[_0xabf9('0x2c')][_0xabf9('0x32')](_0xabf9('0x33'))){_0x40c65c[_0xabf9('0x1b')]=qs[_0xabf9('0x1b')](_0x2f6432['query']['limit']);_0x40c65c[_0xabf9('0x19')]=qs[_0xabf9('0x19')](_0x2f6432[_0xabf9('0x2c')][_0xabf9('0x19')]);}return _0xacdec8[_0xabf9('0x4a')](_0x40c65c);}})[_0xabf9('0x22')](function(_0x11e349){if(_0x11e349){return _0x11e349?{'count':_0x18b6d3,'rows':_0x11e349}:null;}})[_0xabf9('0x22')](respondWithResult(_0x34c43a,null))['catch'](handleError(_0x34c43a,null));};
\ No newline at end of file
+var _0xf958=['desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','end','json','offset','undefined','limit','count','status','Content-Range','apply','save','update','destroy','then','stack','name','send','index','map','SalesforceConfiguration','type','key','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','options','includeAll','include','findAll','rows','show','params','merge','catch','create','body','findOne','rawAttributes','getFields','getSubjects','getDescriptions','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce'];(function(_0x40a825,_0x3bac79){var _0x273a54=function(_0x5628d8){while(--_0x5628d8){_0x40a825['push'](_0x40a825['shift']());}};_0x273a54(++_0x3bac79);}(_0xf958,0x1c0));var _0x8f95=function(_0x37f503,_0xace073){_0x37f503=_0x37f503-0x0;var _0x1f2afe=_0xf958[_0x37f503];return _0x1f2afe;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x8f95('0x0'));var rp=require(_0x8f95('0x1'));var moment=require(_0x8f95('0x2'));var BPromise=require(_0x8f95('0x3'));var Mustache=require(_0x8f95('0x4'));var util=require(_0x8f95('0x5'));var path=require('path');var sox=require(_0x8f95('0x6'));var csv=require(_0x8f95('0x7'));var ejs=require(_0x8f95('0x8'));var fs=require('fs');var fs_extra=require(_0x8f95('0x9'));var _=require(_0x8f95('0xa'));var squel=require(_0x8f95('0xb'));var crypto=require(_0x8f95('0xc'));var jsforce=require(_0x8f95('0xd'));var deskjs=require(_0x8f95('0xe'));var toCsv=require(_0x8f95('0x7'));var querystring=require('querystring');var Papa=require(_0x8f95('0xf'));var Redis=require('ioredis');var authService=require(_0x8f95('0x10'));var qs=require(_0x8f95('0x11'));var as=require(_0x8f95('0x12'));var hardwareService=require(_0x8f95('0x13'));var logger=require('../../config/logger')(_0x8f95('0x14'));var utils=require(_0x8f95('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0x8f95('0x16'));var db=require(_0x8f95('0x17'))['db'];function respondWithStatusCode(_0x4089ce,_0x360523){_0x360523=_0x360523||0xcc;return function(_0x53897e){if(_0x53897e){return _0x4089ce[_0x8f95('0x18')](_0x360523);}return _0x4089ce['status'](_0x360523)[_0x8f95('0x19')]();};}function respondWithResult(_0x5e7b50,_0x19d0fc){_0x19d0fc=_0x19d0fc||0xc8;return function(_0x3c665f){if(_0x3c665f){return _0x5e7b50['status'](_0x19d0fc)[_0x8f95('0x1a')](_0x3c665f);}};}function respondWithFilteredResult(_0x4af84f,_0x2051ca){return function(_0x5c675a){if(_0x5c675a){var _0x2ff25d=typeof _0x2051ca[_0x8f95('0x1b')]===_0x8f95('0x1c')&&typeof _0x2051ca[_0x8f95('0x1d')]==='undefined';var _0x242b26=_0x5c675a[_0x8f95('0x1e')];var _0x7b64bf=_0x2ff25d?0x0:_0x2051ca[_0x8f95('0x1b')];var _0x4dacb1=_0x2ff25d?_0x5c675a[_0x8f95('0x1e')]:_0x2051ca[_0x8f95('0x1b')]+_0x2051ca['limit'];var _0x18e43d;if(_0x4dacb1>=_0x242b26){_0x4dacb1=_0x242b26;_0x18e43d=0xc8;}else{_0x18e43d=0xce;}_0x4af84f[_0x8f95('0x1f')](_0x18e43d);return _0x4af84f['set'](_0x8f95('0x20'),_0x7b64bf+'-'+_0x4dacb1+'/'+_0x242b26)[_0x8f95('0x1a')](_0x5c675a);}return null;};}function patchUpdates(_0x78e30a){return function(_0x353c14){try{jsonpatch[_0x8f95('0x21')](_0x353c14,_0x78e30a,!![]);}catch(_0x19899a){return BPromise['reject'](_0x19899a);}return _0x353c14[_0x8f95('0x22')]();};}function saveUpdates(_0xc99d55,_0x4535b1){return function(_0xc6d696){if(_0xc6d696){return _0xc6d696[_0x8f95('0x23')](_0xc99d55)['then'](function(_0x315c18){return _0x315c18;});}return null;};}function removeEntity(_0xf14011,_0x3f083d){return function(_0x180b27){if(_0x180b27){return _0x180b27[_0x8f95('0x24')]()[_0x8f95('0x25')](function(){_0xf14011[_0x8f95('0x1f')](0xcc)[_0x8f95('0x19')]();});}};}function handleEntityNotFound(_0x5afc6a,_0x345b33){return function(_0x2edf2c){if(!_0x2edf2c){_0x5afc6a['sendStatus'](0x194);}return _0x2edf2c;};}function handleError(_0x8a0fbc,_0x568a6a){_0x568a6a=_0x568a6a||0x1f4;return function(_0x2df6bd){logger['error'](_0x2df6bd[_0x8f95('0x26')]);if(_0x2df6bd[_0x8f95('0x27')]){delete _0x2df6bd[_0x8f95('0x27')];}_0x8a0fbc[_0x8f95('0x1f')](_0x568a6a)[_0x8f95('0x28')](_0x2df6bd);};}exports[_0x8f95('0x29')]=function(_0x4941d1,_0x401c4d){var _0xdff317={},_0x3062d8={},_0x52d63b={'count':0x0,'rows':[]};var _0x1f5209=_[_0x8f95('0x2a')](db[_0x8f95('0x2b')]['rawAttributes'],function(_0x5ef363){return{'name':_0x5ef363['fieldName'],'type':_0x5ef363[_0x8f95('0x2c')][_0x8f95('0x2d')]};});_0x3062d8['model']=_[_0x8f95('0x2a')](_0x1f5209,'name');_0x3062d8[_0x8f95('0x2e')]=_[_0x8f95('0x2f')](_0x4941d1[_0x8f95('0x2e')]);_0x3062d8[_0x8f95('0x30')]=_[_0x8f95('0x31')](_0x3062d8[_0x8f95('0x32')],_0x3062d8[_0x8f95('0x2e')]);_0xdff317[_0x8f95('0x33')]=_['intersection'](_0x3062d8[_0x8f95('0x32')],qs[_0x8f95('0x34')](_0x4941d1[_0x8f95('0x2e')][_0x8f95('0x34')]));_0xdff317[_0x8f95('0x33')]=_0xdff317['attributes'][_0x8f95('0x35')]?_0xdff317['attributes']:_0x3062d8[_0x8f95('0x32')];if(!_0x4941d1[_0x8f95('0x2e')][_0x8f95('0x36')](_0x8f95('0x37'))){_0xdff317['limit']=qs[_0x8f95('0x1d')](_0x4941d1[_0x8f95('0x2e')][_0x8f95('0x1d')]);_0xdff317['offset']=qs['offset'](_0x4941d1['query']['offset']);}_0xdff317[_0x8f95('0x38')]=qs['sort'](_0x4941d1['query'][_0x8f95('0x39')]);_0xdff317['where']=qs[_0x8f95('0x30')](_[_0x8f95('0x3a')](_0x4941d1['query'],_0x3062d8[_0x8f95('0x30')]),_0x1f5209);if(_0x4941d1[_0x8f95('0x2e')][_0x8f95('0x3b')]){_0xdff317[_0x8f95('0x3c')]=_['merge'](_0xdff317[_0x8f95('0x3c')],{'$or':_['map'](_0x1f5209,function(_0x1f7122){if(_0x1f7122[_0x8f95('0x2c')]!=='VIRTUAL'){var _0x2b230d={};_0x2b230d[_0x1f7122[_0x8f95('0x27')]]={'$like':'%'+_0x4941d1[_0x8f95('0x2e')][_0x8f95('0x3b')]+'%'};return _0x2b230d;}})});}_0xdff317=_['merge']({},_0xdff317,_0x4941d1[_0x8f95('0x3d')]);var _0x53d79f={'where':_0xdff317[_0x8f95('0x3c')]};return db[_0x8f95('0x2b')][_0x8f95('0x1e')](_0x53d79f)[_0x8f95('0x25')](function(_0xa10690){_0x52d63b[_0x8f95('0x1e')]=_0xa10690;if(_0x4941d1[_0x8f95('0x2e')][_0x8f95('0x3e')]){_0xdff317[_0x8f95('0x3f')]=[{'all':!![]}];}return db[_0x8f95('0x2b')][_0x8f95('0x40')](_0xdff317);})[_0x8f95('0x25')](function(_0x2b1fff){_0x52d63b[_0x8f95('0x41')]=_0x2b1fff;return _0x52d63b;})[_0x8f95('0x25')](respondWithFilteredResult(_0x401c4d,_0xdff317))['catch'](handleError(_0x401c4d,null));};exports[_0x8f95('0x42')]=function(_0xfd87f5,_0x4e43d6){var _0x2aa35c={'raw':![],'where':{'id':_0xfd87f5[_0x8f95('0x43')]['id']}},_0x5ba117={};_0x5ba117[_0x8f95('0x32')]=_[_0x8f95('0x2f')](db[_0x8f95('0x2b')]['rawAttributes']);_0x5ba117['query']=_[_0x8f95('0x2f')](_0xfd87f5[_0x8f95('0x2e')]);_0x5ba117['filters']=_[_0x8f95('0x31')](_0x5ba117[_0x8f95('0x32')],_0x5ba117[_0x8f95('0x2e')]);_0x2aa35c[_0x8f95('0x33')]=_[_0x8f95('0x31')](_0x5ba117[_0x8f95('0x32')],qs[_0x8f95('0x34')](_0xfd87f5[_0x8f95('0x2e')][_0x8f95('0x34')]));_0x2aa35c[_0x8f95('0x33')]=_0x2aa35c[_0x8f95('0x33')][_0x8f95('0x35')]?_0x2aa35c[_0x8f95('0x33')]:_0x5ba117['model'];if(_0xfd87f5[_0x8f95('0x2e')][_0x8f95('0x3e')]){_0x2aa35c[_0x8f95('0x3f')]=[{'all':!![]}];}_0x2aa35c=_[_0x8f95('0x44')]({},_0x2aa35c,_0xfd87f5[_0x8f95('0x3d')]);return db[_0x8f95('0x2b')]['find'](_0x2aa35c)['then'](handleEntityNotFound(_0x4e43d6,null))['then'](respondWithResult(_0x4e43d6,null))[_0x8f95('0x45')](handleError(_0x4e43d6,null));};exports[_0x8f95('0x46')]=function(_0x96d618,_0x24d419){return db[_0x8f95('0x2b')][_0x8f95('0x46')](_0x96d618[_0x8f95('0x47')],{})['then'](respondWithResult(_0x24d419,0xc9))[_0x8f95('0x45')](handleError(_0x24d419,null));};exports['update']=function(_0xfa045d,_0x19b1f1){if(_0xfa045d[_0x8f95('0x47')]['id']){delete _0xfa045d[_0x8f95('0x47')]['id'];}return db[_0x8f95('0x2b')]['find']({'where':{'id':_0xfa045d[_0x8f95('0x43')]['id']}})['then'](handleEntityNotFound(_0x19b1f1,null))[_0x8f95('0x25')](saveUpdates(_0xfa045d['body'],null))[_0x8f95('0x25')](respondWithResult(_0x19b1f1,null))['catch'](handleError(_0x19b1f1,null));};exports[_0x8f95('0x24')]=function(_0x426aa4,_0x4b8cd9){return db[_0x8f95('0x2b')]['find']({'where':{'id':_0x426aa4[_0x8f95('0x43')]['id']}})[_0x8f95('0x25')](handleEntityNotFound(_0x4b8cd9,null))['then'](removeEntity(_0x4b8cd9,null))[_0x8f95('0x45')](handleError(_0x4b8cd9,null));};exports['getFields']=function(_0x587a11,_0x24b618,_0xaa0945){var _0xe2a725={};var _0x1036ba={};var _0xf1a662;var _0x3e87f3;return db[_0x8f95('0x2b')][_0x8f95('0x48')]({'where':{'id':_0x587a11['params']['id']}})[_0x8f95('0x25')](handleEntityNotFound(_0x24b618,null))[_0x8f95('0x25')](function(_0x41eacd){if(_0x41eacd){_0xf1a662=_0x41eacd;_0x1036ba[_0x8f95('0x32')]=_[_0x8f95('0x2f')](db['SalesforceField'][_0x8f95('0x49')]);_0x1036ba[_0x8f95('0x2e')]=_[_0x8f95('0x2f')](_0x587a11[_0x8f95('0x2e')]);_0x1036ba['filters']=_['intersection'](_0x1036ba[_0x8f95('0x32')],_0x1036ba[_0x8f95('0x2e')]);_0xe2a725['attributes']=_['intersection'](_0x1036ba[_0x8f95('0x32')],qs[_0x8f95('0x34')](_0x587a11[_0x8f95('0x2e')]['fields']));_0xe2a725[_0x8f95('0x33')]=_0xe2a725['attributes'][_0x8f95('0x35')]?_0xe2a725[_0x8f95('0x33')]:_0x1036ba[_0x8f95('0x32')];_0xe2a725['order']=qs['sort'](_0x587a11[_0x8f95('0x2e')][_0x8f95('0x39')]);_0xe2a725[_0x8f95('0x3c')]=qs[_0x8f95('0x30')](_['pick'](_0x587a11[_0x8f95('0x2e')],_0x1036ba['filters']));if(_0x587a11[_0x8f95('0x2e')][_0x8f95('0x3b')]){_0xe2a725[_0x8f95('0x3c')]=_[_0x8f95('0x44')](_0xe2a725['where'],{'$or':_[_0x8f95('0x2a')](_0xe2a725['attributes'],function(_0x338c85){var _0x2280c5={};_0x2280c5[_0x338c85]={'$like':'%'+_0x587a11[_0x8f95('0x2e')][_0x8f95('0x3b')]+'%'};return _0x2280c5;})});}_0xe2a725=_[_0x8f95('0x44')]({},_0xe2a725,_0x587a11[_0x8f95('0x3d')]);return _0xf1a662[_0x8f95('0x4a')](_0xe2a725);}})[_0x8f95('0x25')](function(_0x5a5b62){if(_0x5a5b62){_0x3e87f3=_0x5a5b62[_0x8f95('0x35')];if(!_0x587a11[_0x8f95('0x2e')]['hasOwnProperty'](_0x8f95('0x37'))){_0xe2a725['limit']=qs[_0x8f95('0x1d')](_0x587a11['query'][_0x8f95('0x1d')]);_0xe2a725['offset']=qs['offset'](_0x587a11[_0x8f95('0x2e')][_0x8f95('0x1b')]);}return _0xf1a662[_0x8f95('0x4a')](_0xe2a725);}})[_0x8f95('0x25')](function(_0x2b01f2){if(_0x2b01f2){return _0x2b01f2?{'count':_0x3e87f3,'rows':_0x2b01f2}:null;}})[_0x8f95('0x25')](respondWithResult(_0x24b618,null))[_0x8f95('0x45')](handleError(_0x24b618,null));};exports[_0x8f95('0x4b')]=function(_0x45e5a9,_0x12f043,_0x505228){var _0x2f9ab6={};var _0x32e1dd={};var _0x5609d9;var _0x245ee8;return db[_0x8f95('0x2b')][_0x8f95('0x48')]({'where':{'id':_0x45e5a9[_0x8f95('0x43')]['id']}})['then'](handleEntityNotFound(_0x12f043,null))[_0x8f95('0x25')](function(_0x42300c){if(_0x42300c){_0x5609d9=_0x42300c;_0x32e1dd[_0x8f95('0x32')]=_[_0x8f95('0x2f')](db['SalesforceField'][_0x8f95('0x49')]);_0x32e1dd[_0x8f95('0x2e')]=_['keys'](_0x45e5a9[_0x8f95('0x2e')]);_0x32e1dd[_0x8f95('0x30')]=_[_0x8f95('0x31')](_0x32e1dd[_0x8f95('0x32')],_0x32e1dd[_0x8f95('0x2e')]);_0x2f9ab6[_0x8f95('0x33')]=_[_0x8f95('0x31')](_0x32e1dd[_0x8f95('0x32')],qs[_0x8f95('0x34')](_0x45e5a9[_0x8f95('0x2e')][_0x8f95('0x34')]));_0x2f9ab6[_0x8f95('0x33')]=_0x2f9ab6[_0x8f95('0x33')][_0x8f95('0x35')]?_0x2f9ab6[_0x8f95('0x33')]:_0x32e1dd[_0x8f95('0x32')];_0x2f9ab6[_0x8f95('0x38')]=qs['sort'](_0x45e5a9[_0x8f95('0x2e')]['sort']);_0x2f9ab6[_0x8f95('0x3c')]=qs[_0x8f95('0x30')](_['pick'](_0x45e5a9[_0x8f95('0x2e')],_0x32e1dd['filters']));if(_0x45e5a9[_0x8f95('0x2e')][_0x8f95('0x3b')]){_0x2f9ab6[_0x8f95('0x3c')]=_[_0x8f95('0x44')](_0x2f9ab6[_0x8f95('0x3c')],{'$or':_['map'](_0x2f9ab6['attributes'],function(_0x3ad945){var _0xbb9ee={};_0xbb9ee[_0x3ad945]={'$like':'%'+_0x45e5a9[_0x8f95('0x2e')]['filter']+'%'};return _0xbb9ee;})});}_0x2f9ab6=_[_0x8f95('0x44')]({},_0x2f9ab6,_0x45e5a9[_0x8f95('0x3d')]);return _0x5609d9[_0x8f95('0x4b')](_0x2f9ab6);}})['then'](function(_0x1fe057){if(_0x1fe057){_0x245ee8=_0x1fe057[_0x8f95('0x35')];if(!_0x45e5a9[_0x8f95('0x2e')][_0x8f95('0x36')](_0x8f95('0x37'))){_0x2f9ab6['limit']=qs[_0x8f95('0x1d')](_0x45e5a9[_0x8f95('0x2e')][_0x8f95('0x1d')]);_0x2f9ab6['offset']=qs['offset'](_0x45e5a9[_0x8f95('0x2e')][_0x8f95('0x1b')]);}return _0x5609d9[_0x8f95('0x4b')](_0x2f9ab6);}})[_0x8f95('0x25')](function(_0x2f5339){if(_0x2f5339){return _0x2f5339?{'count':_0x245ee8,'rows':_0x2f5339}:null;}})['then'](respondWithResult(_0x12f043,null))[_0x8f95('0x45')](handleError(_0x12f043,null));};exports[_0x8f95('0x4c')]=function(_0x5a48e8,_0x38cc05,_0x2f5b23){var _0x4d5cee={};var _0x16ad60={};var _0x3e8292;var _0x3df8b3;return db[_0x8f95('0x2b')][_0x8f95('0x48')]({'where':{'id':_0x5a48e8[_0x8f95('0x43')]['id']}})['then'](handleEntityNotFound(_0x38cc05,null))[_0x8f95('0x25')](function(_0x40875d){if(_0x40875d){_0x3e8292=_0x40875d;_0x16ad60[_0x8f95('0x32')]=_[_0x8f95('0x2f')](db['SalesforceField'][_0x8f95('0x49')]);_0x16ad60[_0x8f95('0x2e')]=_['keys'](_0x5a48e8['query']);_0x16ad60[_0x8f95('0x30')]=_[_0x8f95('0x31')](_0x16ad60[_0x8f95('0x32')],_0x16ad60[_0x8f95('0x2e')]);_0x4d5cee[_0x8f95('0x33')]=_[_0x8f95('0x31')](_0x16ad60[_0x8f95('0x32')],qs[_0x8f95('0x34')](_0x5a48e8['query'][_0x8f95('0x34')]));_0x4d5cee['attributes']=_0x4d5cee[_0x8f95('0x33')][_0x8f95('0x35')]?_0x4d5cee['attributes']:_0x16ad60[_0x8f95('0x32')];_0x4d5cee[_0x8f95('0x38')]=qs['sort'](_0x5a48e8[_0x8f95('0x2e')]['sort']);_0x4d5cee[_0x8f95('0x3c')]=qs[_0x8f95('0x30')](_['pick'](_0x5a48e8[_0x8f95('0x2e')],_0x16ad60[_0x8f95('0x30')]));if(_0x5a48e8[_0x8f95('0x2e')][_0x8f95('0x3b')]){_0x4d5cee['where']=_[_0x8f95('0x44')](_0x4d5cee[_0x8f95('0x3c')],{'$or':_['map'](_0x4d5cee[_0x8f95('0x33')],function(_0x444ffd){var _0x453a61={};_0x453a61[_0x444ffd]={'$like':'%'+_0x5a48e8[_0x8f95('0x2e')][_0x8f95('0x3b')]+'%'};return _0x453a61;})});}_0x4d5cee=_[_0x8f95('0x44')]({},_0x4d5cee,_0x5a48e8['options']);return _0x3e8292['getDescriptions'](_0x4d5cee);}})[_0x8f95('0x25')](function(_0xa0954d){if(_0xa0954d){_0x3df8b3=_0xa0954d[_0x8f95('0x35')];if(!_0x5a48e8[_0x8f95('0x2e')][_0x8f95('0x36')](_0x8f95('0x37'))){_0x4d5cee[_0x8f95('0x1d')]=qs['limit'](_0x5a48e8[_0x8f95('0x2e')][_0x8f95('0x1d')]);_0x4d5cee[_0x8f95('0x1b')]=qs[_0x8f95('0x1b')](_0x5a48e8[_0x8f95('0x2e')][_0x8f95('0x1b')]);}return _0x3e8292[_0x8f95('0x4c')](_0x4d5cee);}})[_0x8f95('0x25')](function(_0x434a63){if(_0x434a63){return _0x434a63?{'count':_0x3df8b3,'rows':_0x434a63}:null;}})[_0x8f95('0x25')](respondWithResult(_0x38cc05,null))[_0x8f95('0x45')](handleError(_0x38cc05,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa8c6=['moment','bluebird','request-promise','path','rimraf','./intSalesforceConfiguration.attributes','exports','define','SalesforceConfiguration','int_salesforce_configurations','lodash','util','../../config/logger','api'];(function(_0x5ddb1c,_0x5ea4df){var _0x354adc=function(_0x2dfb1f){while(--_0x2dfb1f){_0x5ddb1c['push'](_0x5ddb1c['shift']());}};_0x354adc(++_0x5ea4df);}(_0xa8c6,0x96));var _0x6a8c=function(_0x40822a,_0x582b60){_0x40822a=_0x40822a-0x0;var _0x357420=_0xa8c6[_0x40822a];return _0x357420;};'use strict';var _=require(_0x6a8c('0x0'));var util=require(_0x6a8c('0x1'));var logger=require(_0x6a8c('0x2'))(_0x6a8c('0x3'));var moment=require(_0x6a8c('0x4'));var BPromise=require(_0x6a8c('0x5'));var rp=require(_0x6a8c('0x6'));var fs=require('fs');var path=require(_0x6a8c('0x7'));var rimraf=require(_0x6a8c('0x8'));var config=require('../../config/environment');var attributes=require(_0x6a8c('0x9'));module[_0x6a8c('0xa')]=function(_0x22362e,_0x4d6924){return _0x22362e[_0x6a8c('0xb')](_0x6a8c('0xc'),attributes,{'tableName':_0x6a8c('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x3d74=['./intSalesforceConfiguration.attributes','exports','define','SalesforceConfiguration','int_salesforce_configurations','lodash','util','moment','request-promise','path','rimraf'];(function(_0x3d53ce,_0x37f563){var _0x510f50=function(_0x28ec63){while(--_0x28ec63){_0x3d53ce['push'](_0x3d53ce['shift']());}};_0x510f50(++_0x37f563);}(_0x3d74,0x7e));var _0x43d7=function(_0x11c59d,_0x79cb4e){_0x11c59d=_0x11c59d-0x0;var _0x2d76f2=_0x3d74[_0x11c59d];return _0x2d76f2;};'use strict';var _=require(_0x43d7('0x0'));var util=require(_0x43d7('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0x43d7('0x2'));var BPromise=require('bluebird');var rp=require(_0x43d7('0x3'));var fs=require('fs');var path=require(_0x43d7('0x4'));var rimraf=require(_0x43d7('0x5'));var config=require('../../config/environment');var attributes=require(_0x43d7('0x6'));module[_0x43d7('0x7')]=function(_0x948a79,_0x430329){return _0x948a79[_0x43d7('0x8')](_0x43d7('0x9'),attributes,{'tableName':_0x43d7('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd58a=['lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','info','SalesforceConfiguration,\x20%s,\x20%s','request\x20sent','debug','SalesforceConfiguration,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result'];(function(_0x14d45f,_0x2d0dbb){var _0x176c80=function(_0x3c2046){while(--_0x3c2046){_0x14d45f['push'](_0x14d45f['shift']());}};_0x176c80(++_0x2d0dbb);}(_0xd58a,0x64));var _0xad58=function(_0x5b775c,_0x2e212b){_0x5b775c=_0x5b775c-0x0;var _0x2d206e=_0xd58a[_0x5b775c];return _0x2d206e;};'use strict';var _=require(_0xad58('0x0'));var util=require(_0xad58('0x1'));var moment=require(_0xad58('0x2'));var BPromise=require(_0xad58('0x3'));var rs=require(_0xad58('0x4'));var fs=require('fs');var Redis=require(_0xad58('0x5'));var db=require(_0xad58('0x6'))['db'];var utils=require(_0xad58('0x7'));var logger=require(_0xad58('0x8'))(_0xad58('0x9'));var config=require(_0xad58('0xa'));var jayson=require(_0xad58('0xb'));var client=jayson[_0xad58('0xc')][_0xad58('0xd')]({'port':0x232a});function respondWithRpcPromise(_0x42a106,_0x101ba5,_0x52a760){return new BPromise(function(_0xa5f748,_0x4b6433){return client[_0xad58('0xe')](_0x42a106,_0x52a760)['then'](function(_0x4d5cb0){logger[_0xad58('0xf')](_0xad58('0x10'),_0x101ba5,_0xad58('0x11'));logger[_0xad58('0x12')](_0xad58('0x13'),_0x101ba5,_0xad58('0x11'),JSON[_0xad58('0x14')](_0x4d5cb0));if(_0x4d5cb0[_0xad58('0x15')]){if(_0x4d5cb0[_0xad58('0x15')][_0xad58('0x16')]===0x1f4){logger[_0xad58('0x15')](_0xad58('0x10'),_0x101ba5,_0x4d5cb0[_0xad58('0x15')][_0xad58('0x17')]);return _0x4b6433(_0x4d5cb0['error'][_0xad58('0x17')]);}logger['error']('SalesforceConfiguration,\x20%s,\x20%s',_0x101ba5,_0x4d5cb0['error'][_0xad58('0x17')]);return _0xa5f748(_0x4d5cb0['error'][_0xad58('0x17')]);}else{logger[_0xad58('0xf')](_0xad58('0x10'),_0x101ba5,_0xad58('0x11'));_0xa5f748(_0x4d5cb0[_0xad58('0x18')][_0xad58('0x17')]);}})['catch'](function(_0x5f7a50){logger['error'](_0xad58('0x10'),_0x101ba5,_0x5f7a50);_0x4b6433(_0x5f7a50);});});}
\ No newline at end of file
+var _0x0223=['error','code','SalesforceConfiguration,\x20%s,\x20%s','message','result','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','http','request','then','info','debug','SalesforceConfiguration,\x20%s,\x20%s,\x20%s','request\x20sent','stringify'];(function(_0x139f22,_0x370a75){var _0xf1ba93=function(_0x4a6986){while(--_0x4a6986){_0x139f22['push'](_0x139f22['shift']());}};_0xf1ba93(++_0x370a75);}(_0x0223,0x147));var _0x3022=function(_0x2cdd4d,_0x394c2f){_0x2cdd4d=_0x2cdd4d-0x0;var _0x55cbc8=_0x0223[_0x2cdd4d];return _0x55cbc8;};'use strict';var _=require(_0x3022('0x0'));var util=require(_0x3022('0x1'));var moment=require(_0x3022('0x2'));var BPromise=require('bluebird');var rs=require(_0x3022('0x3'));var fs=require('fs');var Redis=require(_0x3022('0x4'));var db=require(_0x3022('0x5'))['db'];var utils=require(_0x3022('0x6'));var logger=require('../../config/logger')(_0x3022('0x7'));var config=require(_0x3022('0x8'));var jayson=require(_0x3022('0x9'));var client=jayson['client'][_0x3022('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x143bad,_0x518a7e,_0x5d2bf7){return new BPromise(function(_0x1f3745,_0x2c0a91){return client[_0x3022('0xb')](_0x143bad,_0x5d2bf7)[_0x3022('0xc')](function(_0x3958c8){logger[_0x3022('0xd')]('SalesforceConfiguration,\x20%s,\x20%s',_0x518a7e,'request\x20sent');logger[_0x3022('0xe')](_0x3022('0xf'),_0x518a7e,_0x3022('0x10'),JSON[_0x3022('0x11')](_0x3958c8));if(_0x3958c8[_0x3022('0x12')]){if(_0x3958c8[_0x3022('0x12')][_0x3022('0x13')]===0x1f4){logger[_0x3022('0x12')](_0x3022('0x14'),_0x518a7e,_0x3958c8[_0x3022('0x12')]['message']);return _0x2c0a91(_0x3958c8[_0x3022('0x12')]['message']);}logger['error']('SalesforceConfiguration,\x20%s,\x20%s',_0x518a7e,_0x3958c8[_0x3022('0x12')][_0x3022('0x15')]);return _0x1f3745(_0x3958c8[_0x3022('0x12')]['message']);}else{logger['info'](_0x3022('0x14'),_0x518a7e,_0x3022('0x10'));_0x1f3745(_0x3958c8[_0x3022('0x16')]['message']);}})['catch'](function(_0x30588a){logger['error'](_0x3022('0x14'),_0x518a7e,_0x30588a);_0x2c0a91(_0x30588a);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3184=['multer','util','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service','./intSalesforceField.controller','get','show','create','/:id','isAuthenticated','update','delete','destroy','exports'];(function(_0x1f4202,_0x5350da){var _0x47bb0d=function(_0x3052e9){while(--_0x3052e9){_0x1f4202['push'](_0x1f4202['shift']());}};_0x47bb0d(++_0x5350da);}(_0x3184,0xfc));var _0x4318=function(_0x3c5272,_0x1ea873){_0x3c5272=_0x3c5272-0x0;var _0x31a12a=_0x3184[_0x3c5272];return _0x31a12a;};'use strict';var multer=require(_0x4318('0x0'));var util=require(_0x4318('0x1'));var path=require(_0x4318('0x2'));var timeout=require(_0x4318('0x3'));var express=require(_0x4318('0x4'));var router=express[_0x4318('0x5')]();var fs_extra=require(_0x4318('0x6'));var auth=require('../../components/auth/service');var interaction=require(_0x4318('0x7'));var config=require('../../config/environment');var controller=require(_0x4318('0x8'));router['get']('/',auth['isAuthenticated'](),controller['index']);router[_0x4318('0x9')]('/:id',auth['isAuthenticated'](),controller[_0x4318('0xa')]);router['post']('/',auth['isAuthenticated'](),controller[_0x4318('0xb')]);router['put'](_0x4318('0xc'),auth[_0x4318('0xd')](),controller[_0x4318('0xe')]);router[_0x4318('0xf')](_0x4318('0xc'),auth[_0x4318('0xd')](),controller[_0x4318('0x10')]);module[_0x4318('0x11')]=router;
\ No newline at end of file
+var _0x0339=['connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','show','post','create','put','/:id','delete','destroy','multer','util','path'];(function(_0x1bd5c2,_0x5052b8){var _0x33676d=function(_0x540c7f){while(--_0x540c7f){_0x1bd5c2['push'](_0x1bd5c2['shift']());}};_0x33676d(++_0x5052b8);}(_0x0339,0x151));var _0x9033=function(_0x342f8f,_0x1cd71b){_0x342f8f=_0x342f8f-0x0;var _0x448983=_0x0339[_0x342f8f];return _0x448983;};'use strict';var multer=require(_0x9033('0x0'));var util=require(_0x9033('0x1'));var path=require(_0x9033('0x2'));var timeout=require(_0x9033('0x3'));var express=require(_0x9033('0x4'));var router=express[_0x9033('0x5')]();var fs_extra=require(_0x9033('0x6'));var auth=require(_0x9033('0x7'));var interaction=require(_0x9033('0x8'));var config=require(_0x9033('0x9'));var controller=require('./intSalesforceField.controller');router[_0x9033('0xa')]('/',auth[_0x9033('0xb')](),controller[_0x9033('0xc')]);router[_0x9033('0xa')]('/:id',auth[_0x9033('0xb')](),controller[_0x9033('0xd')]);router[_0x9033('0xe')]('/',auth[_0x9033('0xb')](),controller[_0x9033('0xf')]);router[_0x9033('0x10')](_0x9033('0x11'),auth[_0x9033('0xb')](),controller['update']);router[_0x9033('0x12')]('/:id',auth['isAuthenticated'](),controller[_0x9033('0x13')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x853d=['STRING','string','sequelize','exports','ENUM','variable','customVariable','keyValue','picklist'];(function(_0x405eaa,_0xb13aed){var _0x51af02=function(_0x22a8e0){while(--_0x22a8e0){_0x405eaa['push'](_0x405eaa['shift']());}};_0x51af02(++_0xb13aed);}(_0x853d,0x9b));var _0xd853=function(_0x4c53c2,_0x4e6d80){_0x4c53c2=_0x4c53c2-0x0;var _0x1ebf6a=_0x853d[_0x4c53c2];return _0x1ebf6a;};'use strict';var Sequelize=require(_0xd853('0x0'));module[_0xd853('0x1')]={'type':{'type':Sequelize[_0xd853('0x2')]('string',_0xd853('0x3'),_0xd853('0x4'),_0xd853('0x5'),_0xd853('0x6')),'defaultValue':'string'},'content':{'type':Sequelize[_0xd853('0x7')]},'key':{'type':Sequelize[_0xd853('0x7')]},'keyType':{'type':Sequelize[_0xd853('0x2')](_0xd853('0x8'),'variable',_0xd853('0x4'))},'keyContent':{'type':Sequelize[_0xd853('0x7')]},'idField':{'type':Sequelize[_0xd853('0x7')]},'variableName':{'type':Sequelize[_0xd853('0x7')]}};
\ No newline at end of file
+var _0xc445=['sequelize','exports','customVariable','keyValue','picklist','string','STRING','ENUM','variable'];(function(_0x96ad7d,_0x1017ba){var _0x32d63a=function(_0xb47ad9){while(--_0xb47ad9){_0x96ad7d['push'](_0x96ad7d['shift']());}};_0x32d63a(++_0x1017ba);}(_0xc445,0x1dd));var _0x5c44=function(_0xfd495c,_0x4a3c1a){_0xfd495c=_0xfd495c-0x0;var _0x561dd8=_0xc445[_0xfd495c];return _0x561dd8;};'use strict';var Sequelize=require(_0x5c44('0x0'));module[_0x5c44('0x1')]={'type':{'type':Sequelize['ENUM']('string','variable',_0x5c44('0x2'),_0x5c44('0x3'),_0x5c44('0x4')),'defaultValue':_0x5c44('0x5')},'content':{'type':Sequelize[_0x5c44('0x6')]},'key':{'type':Sequelize[_0x5c44('0x6')]},'keyType':{'type':Sequelize[_0x5c44('0x7')](_0x5c44('0x5'),_0x5c44('0x8'),_0x5c44('0x2'))},'keyContent':{'type':Sequelize[_0x5c44('0x6')]},'idField':{'type':Sequelize[_0x5c44('0x6')]},'variableName':{'type':Sequelize[_0x5c44('0x6')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfdb1=['query','attributes','intersection','fields','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','show','params','length','find','catch','create','body','update','destroy','eml-format','zip-dir','fast-json-patch','request-promise','moment','mustache','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','sendStatus','status','end','json','undefined','limit','count','offset','Content-Range','apply','reject','then','error','stack','name','send','index','map','SalesforceField','rawAttributes','fieldName','type','model','keys'];(function(_0x5a1cf0,_0x5cf6ba){var _0xbf247a=function(_0x4c5510){while(--_0x4c5510){_0x5a1cf0['push'](_0x5a1cf0['shift']());}};_0xbf247a(++_0x5cf6ba);}(_0xfdb1,0x66));var _0x1fdb=function(_0x5e32be,_0x4f1458){_0x5e32be=_0x5e32be-0x0;var _0x352c27=_0xfdb1[_0x5e32be];return _0x352c27;};'use strict';var emlformat=require(_0x1fdb('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x1fdb('0x1'));var jsonpatch=require(_0x1fdb('0x2'));var rp=require(_0x1fdb('0x3'));var moment=require(_0x1fdb('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x1fdb('0x5'));var util=require('util');var path=require('path');var sox=require(_0x1fdb('0x6'));var csv=require(_0x1fdb('0x7'));var ejs=require(_0x1fdb('0x8'));var fs=require('fs');var fs_extra=require(_0x1fdb('0x9'));var _=require('lodash');var squel=require(_0x1fdb('0xa'));var crypto=require(_0x1fdb('0xb'));var jsforce=require(_0x1fdb('0xc'));var deskjs=require(_0x1fdb('0xd'));var toCsv=require(_0x1fdb('0x7'));var querystring=require(_0x1fdb('0xe'));var Papa=require(_0x1fdb('0xf'));var Redis=require(_0x1fdb('0x10'));var authService=require(_0x1fdb('0x11'));var qs=require(_0x1fdb('0x12'));var as=require(_0x1fdb('0x13'));var hardwareService=require(_0x1fdb('0x14'));var logger=require(_0x1fdb('0x15'))('api');var utils=require(_0x1fdb('0x16'));var config=require(_0x1fdb('0x17'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x1bef53,_0x1b0ce6){_0x1b0ce6=_0x1b0ce6||0xcc;return function(_0x520058){if(_0x520058){return _0x1bef53[_0x1fdb('0x18')](_0x1b0ce6);}return _0x1bef53[_0x1fdb('0x19')](_0x1b0ce6)[_0x1fdb('0x1a')]();};}function respondWithResult(_0x14ccc6,_0x9b5179){_0x9b5179=_0x9b5179||0xc8;return function(_0x5a9b2a){if(_0x5a9b2a){return _0x14ccc6[_0x1fdb('0x19')](_0x9b5179)[_0x1fdb('0x1b')](_0x5a9b2a);}};}function respondWithFilteredResult(_0x34d14b,_0x1f1d65){return function(_0x248c6e){if(_0x248c6e){var _0x44231f=typeof _0x1f1d65['offset']===_0x1fdb('0x1c')&&typeof _0x1f1d65[_0x1fdb('0x1d')]===_0x1fdb('0x1c');var _0x5bd24a=_0x248c6e[_0x1fdb('0x1e')];var _0x50449d=_0x44231f?0x0:_0x1f1d65[_0x1fdb('0x1f')];var _0x1e6ad3=_0x44231f?_0x248c6e[_0x1fdb('0x1e')]:_0x1f1d65[_0x1fdb('0x1f')]+_0x1f1d65[_0x1fdb('0x1d')];var _0x305f23;if(_0x1e6ad3>=_0x5bd24a){_0x1e6ad3=_0x5bd24a;_0x305f23=0xc8;}else{_0x305f23=0xce;}_0x34d14b[_0x1fdb('0x19')](_0x305f23);return _0x34d14b['set'](_0x1fdb('0x20'),_0x50449d+'-'+_0x1e6ad3+'/'+_0x5bd24a)['json'](_0x248c6e);}return null;};}function patchUpdates(_0x2ec60c){return function(_0x488ffc){try{jsonpatch[_0x1fdb('0x21')](_0x488ffc,_0x2ec60c,!![]);}catch(_0x1fe624){return BPromise[_0x1fdb('0x22')](_0x1fe624);}return _0x488ffc['save']();};}function saveUpdates(_0x99554f,_0x3276d3){return function(_0x2aa8b7){if(_0x2aa8b7){return _0x2aa8b7['update'](_0x99554f)[_0x1fdb('0x23')](function(_0x2cfe1d){return _0x2cfe1d;});}return null;};}function removeEntity(_0x2a6e4c,_0x4e047a){return function(_0x1b5579){if(_0x1b5579){return _0x1b5579['destroy']()[_0x1fdb('0x23')](function(){_0x2a6e4c[_0x1fdb('0x19')](0xcc)[_0x1fdb('0x1a')]();});}};}function handleEntityNotFound(_0x1a4190,_0x4e6847){return function(_0x52e7dd){if(!_0x52e7dd){_0x1a4190[_0x1fdb('0x18')](0x194);}return _0x52e7dd;};}function handleError(_0x719b4a,_0x215c52){_0x215c52=_0x215c52||0x1f4;return function(_0x2d4e6f){logger[_0x1fdb('0x24')](_0x2d4e6f[_0x1fdb('0x25')]);if(_0x2d4e6f[_0x1fdb('0x26')]){delete _0x2d4e6f[_0x1fdb('0x26')];}_0x719b4a[_0x1fdb('0x19')](_0x215c52)[_0x1fdb('0x27')](_0x2d4e6f);};}exports[_0x1fdb('0x28')]=function(_0xf7d7a3,_0x868425){var _0xf0be5d={},_0x12a5eb={},_0x378f0f={'count':0x0,'rows':[]};var _0x1d09af=_[_0x1fdb('0x29')](db[_0x1fdb('0x2a')][_0x1fdb('0x2b')],function(_0x4717d8){return{'name':_0x4717d8[_0x1fdb('0x2c')],'type':_0x4717d8[_0x1fdb('0x2d')]['key']};});_0x12a5eb[_0x1fdb('0x2e')]=_[_0x1fdb('0x29')](_0x1d09af,_0x1fdb('0x26'));_0x12a5eb['query']=_[_0x1fdb('0x2f')](_0xf7d7a3['query']);_0x12a5eb['filters']=_['intersection'](_0x12a5eb[_0x1fdb('0x2e')],_0x12a5eb[_0x1fdb('0x30')]);_0xf0be5d[_0x1fdb('0x31')]=_[_0x1fdb('0x32')](_0x12a5eb[_0x1fdb('0x2e')],qs[_0x1fdb('0x33')](_0xf7d7a3[_0x1fdb('0x30')]['fields']));_0xf0be5d[_0x1fdb('0x31')]=_0xf0be5d[_0x1fdb('0x31')]['length']?_0xf0be5d['attributes']:_0x12a5eb[_0x1fdb('0x2e')];if(!_0xf7d7a3[_0x1fdb('0x30')][_0x1fdb('0x34')](_0x1fdb('0x35'))){_0xf0be5d['limit']=qs['limit'](_0xf7d7a3['query']['limit']);_0xf0be5d[_0x1fdb('0x1f')]=qs['offset'](_0xf7d7a3[_0x1fdb('0x30')][_0x1fdb('0x1f')]);}_0xf0be5d[_0x1fdb('0x36')]=qs[_0x1fdb('0x37')](_0xf7d7a3[_0x1fdb('0x30')][_0x1fdb('0x37')]);_0xf0be5d[_0x1fdb('0x38')]=qs[_0x1fdb('0x39')](_[_0x1fdb('0x3a')](_0xf7d7a3['query'],_0x12a5eb['filters']),_0x1d09af);if(_0xf7d7a3[_0x1fdb('0x30')][_0x1fdb('0x3b')]){_0xf0be5d['where']=_[_0x1fdb('0x3c')](_0xf0be5d[_0x1fdb('0x38')],{'$or':_[_0x1fdb('0x29')](_0x1d09af,function(_0x8eb288){if(_0x8eb288['type']!==_0x1fdb('0x3d')){var _0x4ee6a4={};_0x4ee6a4[_0x8eb288[_0x1fdb('0x26')]]={'$like':'%'+_0xf7d7a3[_0x1fdb('0x30')]['filter']+'%'};return _0x4ee6a4;}})});}_0xf0be5d=_[_0x1fdb('0x3c')]({},_0xf0be5d,_0xf7d7a3[_0x1fdb('0x3e')]);var _0x185621={'where':_0xf0be5d[_0x1fdb('0x38')]};return db['SalesforceField'][_0x1fdb('0x1e')](_0x185621)['then'](function(_0x1585e9){_0x378f0f[_0x1fdb('0x1e')]=_0x1585e9;if(_0xf7d7a3['query'][_0x1fdb('0x3f')]){_0xf0be5d[_0x1fdb('0x40')]=[{'all':!![]}];}return db[_0x1fdb('0x2a')][_0x1fdb('0x41')](_0xf0be5d);})[_0x1fdb('0x23')](function(_0x5e28d9){_0x378f0f['rows']=_0x5e28d9;return _0x378f0f;})['then'](respondWithFilteredResult(_0x868425,_0xf0be5d))['catch'](handleError(_0x868425,null));};exports[_0x1fdb('0x42')]=function(_0x22f29c,_0x165bbb){var _0x346a39={'raw':!![],'where':{'id':_0x22f29c[_0x1fdb('0x43')]['id']}},_0xcfc2c={};_0xcfc2c[_0x1fdb('0x2e')]=_[_0x1fdb('0x2f')](db[_0x1fdb('0x2a')][_0x1fdb('0x2b')]);_0xcfc2c[_0x1fdb('0x30')]=_['keys'](_0x22f29c['query']);_0xcfc2c[_0x1fdb('0x39')]=_[_0x1fdb('0x32')](_0xcfc2c[_0x1fdb('0x2e')],_0xcfc2c[_0x1fdb('0x30')]);_0x346a39[_0x1fdb('0x31')]=_[_0x1fdb('0x32')](_0xcfc2c[_0x1fdb('0x2e')],qs['fields'](_0x22f29c[_0x1fdb('0x30')]['fields']));_0x346a39[_0x1fdb('0x31')]=_0x346a39[_0x1fdb('0x31')][_0x1fdb('0x44')]?_0x346a39[_0x1fdb('0x31')]:_0xcfc2c[_0x1fdb('0x2e')];if(_0x22f29c[_0x1fdb('0x30')][_0x1fdb('0x3f')]){_0x346a39[_0x1fdb('0x40')]=[{'all':!![]}];}_0x346a39=_['merge']({},_0x346a39,_0x22f29c[_0x1fdb('0x3e')]);return db[_0x1fdb('0x2a')][_0x1fdb('0x45')](_0x346a39)[_0x1fdb('0x23')](handleEntityNotFound(_0x165bbb,null))['then'](respondWithResult(_0x165bbb,null))[_0x1fdb('0x46')](handleError(_0x165bbb,null));};exports[_0x1fdb('0x47')]=function(_0x2d4a23,_0x1ec578){return db[_0x1fdb('0x2a')][_0x1fdb('0x47')](_0x2d4a23[_0x1fdb('0x48')],{})[_0x1fdb('0x23')](respondWithResult(_0x1ec578,0xc9))['catch'](handleError(_0x1ec578,null));};exports[_0x1fdb('0x49')]=function(_0x73aad7,_0x28eefa){if(_0x73aad7[_0x1fdb('0x48')]['id']){delete _0x73aad7['body']['id'];}return db[_0x1fdb('0x2a')][_0x1fdb('0x45')]({'where':{'id':_0x73aad7['params']['id']}})[_0x1fdb('0x23')](handleEntityNotFound(_0x28eefa,null))[_0x1fdb('0x23')](saveUpdates(_0x73aad7[_0x1fdb('0x48')],null))['then'](respondWithResult(_0x28eefa,null))[_0x1fdb('0x46')](handleError(_0x28eefa,null));};exports[_0x1fdb('0x4a')]=function(_0x495e14,_0x1dcba5){return db[_0x1fdb('0x2a')][_0x1fdb('0x45')]({'where':{'id':_0x495e14[_0x1fdb('0x43')]['id']}})[_0x1fdb('0x23')](handleEntityNotFound(_0x1dcba5,null))[_0x1fdb('0x23')](removeEntity(_0x1dcba5,null))['catch'](handleError(_0x1dcba5,null));};
\ No newline at end of file
+var _0x4175=['map','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','type','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','find','create','body','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','offset','undefined','limit','count','set','Content-Range','json','apply','reject','save','update','then','destroy','sendStatus','error','stack','name','send','SalesforceField','rawAttributes','fieldName','model'];(function(_0x20481c,_0x57f1a3){var _0x312c66=function(_0x122b47){while(--_0x122b47){_0x20481c['push'](_0x20481c['shift']());}};_0x312c66(++_0x57f1a3);}(_0x4175,0x161));var _0x5417=function(_0x2f7475,_0x29a27e){_0x2f7475=_0x2f7475-0x0;var _0xda5df=_0x4175[_0x2f7475];return _0xda5df;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x5417('0x0'));var zipdir=require(_0x5417('0x1'));var jsonpatch=require(_0x5417('0x2'));var rp=require(_0x5417('0x3'));var moment=require(_0x5417('0x4'));var BPromise=require(_0x5417('0x5'));var Mustache=require(_0x5417('0x6'));var util=require(_0x5417('0x7'));var path=require(_0x5417('0x8'));var sox=require('sox');var csv=require(_0x5417('0x9'));var ejs=require(_0x5417('0xa'));var fs=require('fs');var fs_extra=require(_0x5417('0xb'));var _=require(_0x5417('0xc'));var squel=require(_0x5417('0xd'));var crypto=require(_0x5417('0xe'));var jsforce=require(_0x5417('0xf'));var deskjs=require(_0x5417('0x10'));var toCsv=require('to-csv');var querystring=require(_0x5417('0x11'));var Papa=require(_0x5417('0x12'));var Redis=require(_0x5417('0x13'));var authService=require(_0x5417('0x14'));var qs=require(_0x5417('0x15'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x5417('0x16'))(_0x5417('0x17'));var utils=require(_0x5417('0x18'));var config=require(_0x5417('0x19'));var licenseUtil=require(_0x5417('0x1a'));var db=require(_0x5417('0x1b'))['db'];function respondWithStatusCode(_0x26a282,_0x265010){_0x265010=_0x265010||0xcc;return function(_0x52f994){if(_0x52f994){return _0x26a282['sendStatus'](_0x265010);}return _0x26a282[_0x5417('0x1c')](_0x265010)[_0x5417('0x1d')]();};}function respondWithResult(_0x371b32,_0x4655aa){_0x4655aa=_0x4655aa||0xc8;return function(_0x34dd6b){if(_0x34dd6b){return _0x371b32[_0x5417('0x1c')](_0x4655aa)['json'](_0x34dd6b);}};}function respondWithFilteredResult(_0x3a93b6,_0x2ee27f){return function(_0x3a4229){if(_0x3a4229){var _0x2cdff2=typeof _0x2ee27f[_0x5417('0x1e')]===_0x5417('0x1f')&&typeof _0x2ee27f[_0x5417('0x20')]===_0x5417('0x1f');var _0x5eeeae=_0x3a4229[_0x5417('0x21')];var _0x495807=_0x2cdff2?0x0:_0x2ee27f[_0x5417('0x1e')];var _0x57762c=_0x2cdff2?_0x3a4229[_0x5417('0x21')]:_0x2ee27f[_0x5417('0x1e')]+_0x2ee27f[_0x5417('0x20')];var _0x284d64;if(_0x57762c>=_0x5eeeae){_0x57762c=_0x5eeeae;_0x284d64=0xc8;}else{_0x284d64=0xce;}_0x3a93b6[_0x5417('0x1c')](_0x284d64);return _0x3a93b6[_0x5417('0x22')](_0x5417('0x23'),_0x495807+'-'+_0x57762c+'/'+_0x5eeeae)[_0x5417('0x24')](_0x3a4229);}return null;};}function patchUpdates(_0x5e8930){return function(_0x422696){try{jsonpatch[_0x5417('0x25')](_0x422696,_0x5e8930,!![]);}catch(_0x4a0184){return BPromise[_0x5417('0x26')](_0x4a0184);}return _0x422696[_0x5417('0x27')]();};}function saveUpdates(_0x3b1f89,_0x14d73b){return function(_0x58252c){if(_0x58252c){return _0x58252c[_0x5417('0x28')](_0x3b1f89)[_0x5417('0x29')](function(_0x4095d9){return _0x4095d9;});}return null;};}function removeEntity(_0x4f9849,_0x3c6e41){return function(_0x309763){if(_0x309763){return _0x309763[_0x5417('0x2a')]()[_0x5417('0x29')](function(){_0x4f9849[_0x5417('0x1c')](0xcc)[_0x5417('0x1d')]();});}};}function handleEntityNotFound(_0x39be12,_0x5f166e){return function(_0x15bf3a){if(!_0x15bf3a){_0x39be12[_0x5417('0x2b')](0x194);}return _0x15bf3a;};}function handleError(_0x259bad,_0x5430d7){_0x5430d7=_0x5430d7||0x1f4;return function(_0x26cea3){logger[_0x5417('0x2c')](_0x26cea3[_0x5417('0x2d')]);if(_0x26cea3[_0x5417('0x2e')]){delete _0x26cea3[_0x5417('0x2e')];}_0x259bad[_0x5417('0x1c')](_0x5430d7)[_0x5417('0x2f')](_0x26cea3);};}exports['index']=function(_0x2d6390,_0x2ac632){var _0xd184ee={},_0x3eb145={},_0x45153b={'count':0x0,'rows':[]};var _0x4a5650=_['map'](db[_0x5417('0x30')][_0x5417('0x31')],function(_0x1d83a5){return{'name':_0x1d83a5[_0x5417('0x32')],'type':_0x1d83a5['type']['key']};});_0x3eb145[_0x5417('0x33')]=_[_0x5417('0x34')](_0x4a5650,_0x5417('0x2e'));_0x3eb145[_0x5417('0x35')]=_[_0x5417('0x36')](_0x2d6390['query']);_0x3eb145[_0x5417('0x37')]=_[_0x5417('0x38')](_0x3eb145['model'],_0x3eb145[_0x5417('0x35')]);_0xd184ee[_0x5417('0x39')]=_['intersection'](_0x3eb145['model'],qs['fields'](_0x2d6390[_0x5417('0x35')][_0x5417('0x3a')]));_0xd184ee[_0x5417('0x39')]=_0xd184ee[_0x5417('0x39')][_0x5417('0x3b')]?_0xd184ee[_0x5417('0x39')]:_0x3eb145['model'];if(!_0x2d6390[_0x5417('0x35')][_0x5417('0x3c')](_0x5417('0x3d'))){_0xd184ee['limit']=qs[_0x5417('0x20')](_0x2d6390[_0x5417('0x35')][_0x5417('0x20')]);_0xd184ee[_0x5417('0x1e')]=qs[_0x5417('0x1e')](_0x2d6390[_0x5417('0x35')][_0x5417('0x1e')]);}_0xd184ee[_0x5417('0x3e')]=qs[_0x5417('0x3f')](_0x2d6390[_0x5417('0x35')][_0x5417('0x3f')]);_0xd184ee[_0x5417('0x40')]=qs[_0x5417('0x37')](_[_0x5417('0x41')](_0x2d6390[_0x5417('0x35')],_0x3eb145[_0x5417('0x37')]),_0x4a5650);if(_0x2d6390[_0x5417('0x35')][_0x5417('0x42')]){_0xd184ee[_0x5417('0x40')]=_[_0x5417('0x43')](_0xd184ee['where'],{'$or':_[_0x5417('0x34')](_0x4a5650,function(_0x5d38d3){if(_0x5d38d3[_0x5417('0x44')]!==_0x5417('0x45')){var _0xf286a3={};_0xf286a3[_0x5d38d3[_0x5417('0x2e')]]={'$like':'%'+_0x2d6390[_0x5417('0x35')][_0x5417('0x42')]+'%'};return _0xf286a3;}})});}_0xd184ee=_[_0x5417('0x43')]({},_0xd184ee,_0x2d6390[_0x5417('0x46')]);var _0xa127f1={'where':_0xd184ee['where']};return db[_0x5417('0x30')]['count'](_0xa127f1)[_0x5417('0x29')](function(_0x442d4b){_0x45153b[_0x5417('0x21')]=_0x442d4b;if(_0x2d6390['query'][_0x5417('0x47')]){_0xd184ee[_0x5417('0x48')]=[{'all':!![]}];}return db[_0x5417('0x30')][_0x5417('0x49')](_0xd184ee);})['then'](function(_0x2ee2f5){_0x45153b[_0x5417('0x4a')]=_0x2ee2f5;return _0x45153b;})[_0x5417('0x29')](respondWithFilteredResult(_0x2ac632,_0xd184ee))[_0x5417('0x4b')](handleError(_0x2ac632,null));};exports[_0x5417('0x4c')]=function(_0x2cc629,_0x7c0dd5){var _0xc3d947={'raw':!![],'where':{'id':_0x2cc629[_0x5417('0x4d')]['id']}},_0x38c89e={};_0x38c89e['model']=_[_0x5417('0x36')](db[_0x5417('0x30')][_0x5417('0x31')]);_0x38c89e[_0x5417('0x35')]=_['keys'](_0x2cc629[_0x5417('0x35')]);_0x38c89e[_0x5417('0x37')]=_[_0x5417('0x38')](_0x38c89e[_0x5417('0x33')],_0x38c89e['query']);_0xc3d947[_0x5417('0x39')]=_[_0x5417('0x38')](_0x38c89e['model'],qs['fields'](_0x2cc629[_0x5417('0x35')]['fields']));_0xc3d947['attributes']=_0xc3d947[_0x5417('0x39')]['length']?_0xc3d947[_0x5417('0x39')]:_0x38c89e[_0x5417('0x33')];if(_0x2cc629[_0x5417('0x35')][_0x5417('0x47')]){_0xc3d947[_0x5417('0x48')]=[{'all':!![]}];}_0xc3d947=_[_0x5417('0x43')]({},_0xc3d947,_0x2cc629[_0x5417('0x46')]);return db[_0x5417('0x30')][_0x5417('0x4e')](_0xc3d947)['then'](handleEntityNotFound(_0x7c0dd5,null))[_0x5417('0x29')](respondWithResult(_0x7c0dd5,null))[_0x5417('0x4b')](handleError(_0x7c0dd5,null));};exports[_0x5417('0x4f')]=function(_0x1b2bd7,_0x5a767f){return db[_0x5417('0x30')]['create'](_0x1b2bd7[_0x5417('0x50')],{})['then'](respondWithResult(_0x5a767f,0xc9))['catch'](handleError(_0x5a767f,null));};exports[_0x5417('0x28')]=function(_0x2970e2,_0x4fe0d7){if(_0x2970e2[_0x5417('0x50')]['id']){delete _0x2970e2[_0x5417('0x50')]['id'];}return db[_0x5417('0x30')][_0x5417('0x4e')]({'where':{'id':_0x2970e2[_0x5417('0x4d')]['id']}})['then'](handleEntityNotFound(_0x4fe0d7,null))[_0x5417('0x29')](saveUpdates(_0x2970e2[_0x5417('0x50')],null))['then'](respondWithResult(_0x4fe0d7,null))[_0x5417('0x4b')](handleError(_0x4fe0d7,null));};exports[_0x5417('0x2a')]=function(_0x1fcce8,_0x16289e){return db[_0x5417('0x30')][_0x5417('0x4e')]({'where':{'id':_0x1fcce8[_0x5417('0x4d')]['id']}})[_0x5417('0x29')](handleEntityNotFound(_0x16289e,null))[_0x5417('0x29')](removeEntity(_0x16289e,null))['catch'](handleError(_0x16289e,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4657=['moment','bluebird','path','rimraf','../../config/environment','./intSalesforceField.attributes','define','SalesforceField','int_salesforce_fields','salesforce_unique_index','idField','FieldId','util'];(function(_0x5a356a,_0x576b0e){var _0x1f47a3=function(_0x5f5762){while(--_0x5f5762){_0x5a356a['push'](_0x5a356a['shift']());}};_0x1f47a3(++_0x576b0e);}(_0x4657,0x67));var _0x7465=function(_0x34217f,_0x4954d9){_0x34217f=_0x34217f-0x0;var _0x533721=_0x4657[_0x34217f];return _0x533721;};'use strict';var _=require('lodash');var util=require(_0x7465('0x0'));var logger=require('../../config/logger')('api');var moment=require(_0x7465('0x1'));var BPromise=require(_0x7465('0x2'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x7465('0x3'));var rimraf=require(_0x7465('0x4'));var config=require(_0x7465('0x5'));var attributes=require(_0x7465('0x6'));module['exports']=function(_0x3a4084,_0x21cf70){return _0x3a4084[_0x7465('0x7')](_0x7465('0x8'),attributes,{'tableName':_0x7465('0x9'),'paranoid':![],'indexes':[{'name':_0x7465('0xa'),'fields':[_0x7465('0xb'),_0x7465('0xc')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x275f=['./intSalesforceField.attributes','SalesforceField','salesforce_unique_index','idField','FieldId','lodash','util','../../config/logger','api','bluebird','request-promise','rimraf'];(function(_0x412b2a,_0x11fb8a){var _0x5872e3=function(_0x202191){while(--_0x202191){_0x412b2a['push'](_0x412b2a['shift']());}};_0x5872e3(++_0x11fb8a);}(_0x275f,0x16d));var _0xf275=function(_0x5783f4,_0x4a9e0a){_0x5783f4=_0x5783f4-0x0;var _0x28e380=_0x275f[_0x5783f4];return _0x28e380;};'use strict';var _=require(_0xf275('0x0'));var util=require(_0xf275('0x1'));var logger=require(_0xf275('0x2'))(_0xf275('0x3'));var moment=require('moment');var BPromise=require(_0xf275('0x4'));var rp=require(_0xf275('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0xf275('0x6'));var config=require('../../config/environment');var attributes=require(_0xf275('0x7'));module['exports']=function(_0x50fef7,_0x827f8a){return _0x50fef7['define'](_0xf275('0x8'),attributes,{'tableName':'int_salesforce_fields','paranoid':![],'indexes':[{'name':_0xf275('0x9'),'fields':[_0xf275('0xa'),_0xf275('0xb')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa20c=['SalesforceField,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','lodash','moment','bluebird','randomstring','../../config/logger','rpc','jayson/promise','client','http','request','info'];(function(_0x40a045,_0x516f0e){var _0x1a687c=function(_0x48c9fe){while(--_0x48c9fe){_0x40a045['push'](_0x40a045['shift']());}};_0x1a687c(++_0x516f0e);}(_0xa20c,0xd9));var _0xca20=function(_0x5b2783,_0x1f3362){_0x5b2783=_0x5b2783-0x0;var _0x74bfee=_0xa20c[_0x5b2783];return _0x74bfee;};'use strict';var _=require(_0xca20('0x0'));var util=require('util');var moment=require(_0xca20('0x1'));var BPromise=require(_0xca20('0x2'));var rs=require(_0xca20('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0xca20('0x4'))(_0xca20('0x5'));var config=require('../../config/environment');var jayson=require(_0xca20('0x6'));var client=jayson[_0xca20('0x7')][_0xca20('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x4ba2c9,_0x55ffce,_0x911351){return new BPromise(function(_0x43ae78,_0x239286){return client[_0xca20('0x9')](_0x4ba2c9,_0x911351)['then'](function(_0x192ad8){logger[_0xca20('0xa')](_0xca20('0xb'),_0x55ffce,_0xca20('0xc'));logger['debug']('SalesforceField,\x20%s,\x20%s,\x20%s',_0x55ffce,_0xca20('0xc'),JSON[_0xca20('0xd')](_0x192ad8));if(_0x192ad8[_0xca20('0xe')]){if(_0x192ad8['error'][_0xca20('0xf')]===0x1f4){logger[_0xca20('0xe')](_0xca20('0xb'),_0x55ffce,_0x192ad8[_0xca20('0xe')]['message']);return _0x239286(_0x192ad8[_0xca20('0xe')][_0xca20('0x10')]);}logger[_0xca20('0xe')](_0xca20('0xb'),_0x55ffce,_0x192ad8[_0xca20('0xe')][_0xca20('0x10')]);return _0x43ae78(_0x192ad8[_0xca20('0xe')][_0xca20('0x10')]);}else{logger[_0xca20('0xa')](_0xca20('0xb'),_0x55ffce,_0xca20('0xc'));_0x43ae78(_0x192ad8[_0xca20('0x11')]['message']);}})[_0xca20('0x12')](function(_0x1268df){logger['error'](_0xca20('0xb'),_0x55ffce,_0x1268df);_0x239286(_0x1268df);});});}
\ No newline at end of file
+var _0xcdc3=['../../config/logger','../../config/environment','jayson/promise','client','request','info','SalesforceField,\x20%s,\x20%s','request\x20sent','debug','SalesforceField,\x20%s,\x20%s,\x20%s','error','code','message','catch','lodash','util','randomstring','../../mysqldb','../../config/utils'];(function(_0x98ac1f,_0x2effb0){var _0x1579d1=function(_0x54b8d7){while(--_0x54b8d7){_0x98ac1f['push'](_0x98ac1f['shift']());}};_0x1579d1(++_0x2effb0);}(_0xcdc3,0xcc));var _0x3cdc=function(_0x2c7618,_0x26be9c){_0x2c7618=_0x2c7618-0x0;var _0x5ce3f0=_0xcdc3[_0x2c7618];return _0x5ce3f0;};'use strict';var _=require(_0x3cdc('0x0'));var util=require(_0x3cdc('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x3cdc('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x3cdc('0x3'))['db'];var utils=require(_0x3cdc('0x4'));var logger=require(_0x3cdc('0x5'))('rpc');var config=require(_0x3cdc('0x6'));var jayson=require(_0x3cdc('0x7'));var client=jayson[_0x3cdc('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x37815c,_0x27426e,_0x81e09f){return new BPromise(function(_0x4c24bb,_0x46aa7a){return client[_0x3cdc('0x9')](_0x37815c,_0x81e09f)['then'](function(_0x2145fd){logger[_0x3cdc('0xa')](_0x3cdc('0xb'),_0x27426e,_0x3cdc('0xc'));logger[_0x3cdc('0xd')](_0x3cdc('0xe'),_0x27426e,_0x3cdc('0xc'),JSON['stringify'](_0x2145fd));if(_0x2145fd[_0x3cdc('0xf')]){if(_0x2145fd['error'][_0x3cdc('0x10')]===0x1f4){logger[_0x3cdc('0xf')](_0x3cdc('0xb'),_0x27426e,_0x2145fd[_0x3cdc('0xf')][_0x3cdc('0x11')]);return _0x46aa7a(_0x2145fd[_0x3cdc('0xf')][_0x3cdc('0x11')]);}logger[_0x3cdc('0xf')]('SalesforceField,\x20%s,\x20%s',_0x27426e,_0x2145fd['error'][_0x3cdc('0x11')]);return _0x4c24bb(_0x2145fd[_0x3cdc('0xf')][_0x3cdc('0x11')]);}else{logger[_0x3cdc('0xa')]('SalesforceField,\x20%s,\x20%s',_0x27426e,_0x3cdc('0xc'));_0x4c24bb(_0x2145fd['result'][_0x3cdc('0x11')]);}})[_0x3cdc('0x12')](function(_0x36bf1d){logger['error']('SalesforceField,\x20%s,\x20%s',_0x27426e,_0x36bf1d);_0x46aa7a(_0x36bf1d);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x04d0=['path','connect-timeout','express','Router','fs-extra','../../config/environment','get','isAuthenticated','/:id','show','/:id/configurations','getConfigurations','/:id/fields','post','create','put','update','delete','destroy'];(function(_0x727619,_0x15bf40){var _0x1adabc=function(_0x58c3bc){while(--_0x58c3bc){_0x727619['push'](_0x727619['shift']());}};_0x1adabc(++_0x15bf40);}(_0x04d0,0x10a));var _0x004d=function(_0x5e97c8,_0x301ca0){_0x5e97c8=_0x5e97c8-0x0;var _0x1b9896=_0x04d0[_0x5e97c8];return _0x1b9896;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x004d('0x0'));var timeout=require(_0x004d('0x1'));var express=require(_0x004d('0x2'));var router=express[_0x004d('0x3')]();var fs_extra=require(_0x004d('0x4'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x004d('0x5'));var controller=require('./intServicenowAccount.controller');router[_0x004d('0x6')]('/',auth[_0x004d('0x7')](),controller['index']);router[_0x004d('0x6')](_0x004d('0x8'),auth['isAuthenticated'](),controller[_0x004d('0x9')]);router['get'](_0x004d('0xa'),auth[_0x004d('0x7')](),controller[_0x004d('0xb')]);router['get'](_0x004d('0xc'),auth[_0x004d('0x7')](),controller['getFields']);router[_0x004d('0xd')]('/',auth['isAuthenticated'](),controller[_0x004d('0xe')]);router[_0x004d('0xd')]('/:id/configurations',auth[_0x004d('0x7')](),controller['addConfiguration']);router[_0x004d('0xf')](_0x004d('0x8'),auth[_0x004d('0x7')](),controller[_0x004d('0x10')]);router[_0x004d('0x11')](_0x004d('0x8'),auth[_0x004d('0x7')](),controller[_0x004d('0x12')]);module['exports']=router;
\ No newline at end of file
+var _0xe563=['../../components/auth/service','../../components/interaction/service','../../config/environment','get','index','/:id','isAuthenticated','show','/:id/configurations','getConfigurations','/:id/fields','getFields','post','create','addConfiguration','put','update','exports','multer','util','path','connect-timeout','express','Router','fs-extra'];(function(_0x3eca5a,_0x20d490){var _0x15470e=function(_0x219cc6){while(--_0x219cc6){_0x3eca5a['push'](_0x3eca5a['shift']());}};_0x15470e(++_0x20d490);}(_0xe563,0x125));var _0x3e56=function(_0x43163b,_0x130529){_0x43163b=_0x43163b-0x0;var _0x412eaa=_0xe563[_0x43163b];return _0x412eaa;};'use strict';var multer=require(_0x3e56('0x0'));var util=require(_0x3e56('0x1'));var path=require(_0x3e56('0x2'));var timeout=require(_0x3e56('0x3'));var express=require(_0x3e56('0x4'));var router=express[_0x3e56('0x5')]();var fs_extra=require(_0x3e56('0x6'));var auth=require(_0x3e56('0x7'));var interaction=require(_0x3e56('0x8'));var config=require(_0x3e56('0x9'));var controller=require('./intServicenowAccount.controller');router[_0x3e56('0xa')]('/',auth['isAuthenticated'](),controller[_0x3e56('0xb')]);router[_0x3e56('0xa')](_0x3e56('0xc'),auth[_0x3e56('0xd')](),controller[_0x3e56('0xe')]);router[_0x3e56('0xa')](_0x3e56('0xf'),auth[_0x3e56('0xd')](),controller[_0x3e56('0x10')]);router[_0x3e56('0xa')](_0x3e56('0x11'),auth['isAuthenticated'](),controller[_0x3e56('0x12')]);router[_0x3e56('0x13')]('/',auth[_0x3e56('0xd')](),controller[_0x3e56('0x14')]);router[_0x3e56('0x13')](_0x3e56('0xf'),auth[_0x3e56('0xd')](),controller[_0x3e56('0x15')]);router[_0x3e56('0x16')](_0x3e56('0xc'),auth[_0x3e56('0xd')](),controller[_0x3e56('0x17')]);router['delete'](_0x3e56('0xc'),auth[_0x3e56('0xd')](),controller['destroy']);module[_0x3e56('0x18')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa0fe=['STRING','remoteUri','sequelize','exports'];(function(_0x40095e,_0x29becf){var _0x1a10ec=function(_0x4e8ade){while(--_0x4e8ade){_0x40095e['push'](_0x40095e['shift']());}};_0x1a10ec(++_0x29becf);}(_0xa0fe,0x9e));var _0xea0f=function(_0x2af07b,_0x390b2f){_0x2af07b=_0x2af07b-0x0;var _0x4848e8=_0xa0fe[_0x2af07b];return _0x4848e8;};'use strict';var Sequelize=require(_0xea0f('0x0'));module[_0xea0f('0x1')]={'name':{'type':Sequelize[_0xea0f('0x2')]},'description':{'type':Sequelize[_0xea0f('0x2')]},'username':{'type':Sequelize[_0xea0f('0x2')],'unique':'username'},'password':{'type':Sequelize[_0xea0f('0x2')]},'email':{'type':Sequelize['STRING']},'remoteUri':{'type':Sequelize['STRING'],'unique':_0xea0f('0x3')},'serverUrl':{'type':Sequelize[_0xea0f('0x2')],'allowNull':![]}};
\ No newline at end of file
+var _0x3284=['STRING','username','remoteUri','exports'];(function(_0x50f112,_0xd38e53){var _0x4ecf28=function(_0x62b75){while(--_0x62b75){_0x50f112['push'](_0x50f112['shift']());}};_0x4ecf28(++_0xd38e53);}(_0x3284,0x18b));var _0x4328=function(_0x1fb4ff,_0x172d25){_0x1fb4ff=_0x1fb4ff-0x0;var _0x3f2d20=_0x3284[_0x1fb4ff];return _0x3f2d20;};'use strict';var Sequelize=require('sequelize');module[_0x4328('0x0')]={'name':{'type':Sequelize[_0x4328('0x1')]},'description':{'type':Sequelize['STRING']},'username':{'type':Sequelize[_0x4328('0x1')],'unique':_0x4328('0x2')},'password':{'type':Sequelize[_0x4328('0x1')]},'email':{'type':Sequelize['STRING']},'remoteUri':{'type':Sequelize[_0x4328('0x1')],'unique':_0x4328('0x3')},'serverUrl':{'type':Sequelize['STRING'],'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xca54=['name','ServicenowAccount','rawAttributes','type','key','model','map','keys','query','attributes','intersection','fields','length','order','sort','filters','filter','where','merge','options','includeAll','include','catch','show','find','create','body','destroy','params','ServicenowConfiguration','pick','getConfigurations','nolimit','addConfiguration','findOne','Subjects','getSubjects','channel','Descriptions','getDescriptions','ServicenowField','getFields','made_sla','hold_reason','subcategory','close_code','notify','incident_state','severity','category','parent','caused_by','upon_reject','sys_updated_on','child_incidents','approval_history','number','resolved_by','sys_updated_by','opened_by','user_input','sys_created_on','sys_created_by','knowledge','calendar_stc','closed_at','cmdb_ci','delivery_plan','active','work_notes_list','priority','sys_domain_path','time_worked','expected_start','opened_at','business_duration','work_end','reopened_time','resolved_at','caller_id','work_notes','short_description','correlation_display','delivery_task','work_start','assignment_group','business_stc','additional_assignee_list','description','sys_class_name','close_notes','parent_incident','sys_id','contact_type','reopened_by','urgency','problem_id','company','comments','sla_due','approval','comments_and_work_notes','due_date','sys_mod_count','reopen_count','escalation','upon_approval','correlation_id','password','remoteUri','substring','lastIndexOf','format','%s/api/now/doc/table/schema/','%s/api/now/table/','username','GET','incident?sysparm_display_value=all','result','log','assign','includes','forEach','internalType','label','all','TCL:\x20_object','remove','TCL:\x20exports.getEntityFields\x20->\x20_objectsCustom','push','concat','ServiceNow\x20error:\x20','test','statusCode','stack','send','False','false','sys_choice?sysparm_query=name=incident^element=','eml-format','rimraf','fast-json-patch','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','papaparse','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','limit','count','set','json','apply','reject','save','update','then','error'];(function(_0x166e96,_0x55191d){var _0x553d73=function(_0x586142){while(--_0x586142){_0x166e96['push'](_0x166e96['shift']());}};_0x553d73(++_0x55191d);}(_0xca54,0x1eb));var _0x4ca5=function(_0x46888c,_0x2c6dcb){_0x46888c=_0x46888c-0x0;var _0x530b67=_0xca54[_0x46888c];return _0x530b67;};'use strict';var emlformat=require(_0x4ca5('0x0'));var rimraf=require(_0x4ca5('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x4ca5('0x2'));var rp=require('request-promise');var moment=require(_0x4ca5('0x3'));var BPromise=require(_0x4ca5('0x4'));var Mustache=require(_0x4ca5('0x5'));var util=require(_0x4ca5('0x6'));var path=require('path');var sox=require(_0x4ca5('0x7'));var csv=require(_0x4ca5('0x8'));var ejs=require(_0x4ca5('0x9'));var fs=require('fs');var fs_extra=require(_0x4ca5('0xa'));var _=require(_0x4ca5('0xb'));var squel=require('squel');var crypto=require(_0x4ca5('0xc'));var jsforce=require(_0x4ca5('0xd'));var deskjs=require(_0x4ca5('0xe'));var toCsv=require(_0x4ca5('0x8'));var querystring=require('querystring');var Papa=require(_0x4ca5('0xf'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x4ca5('0x10'));var logger=require(_0x4ca5('0x11'))(_0x4ca5('0x12'));var utils=require(_0x4ca5('0x13'));var config=require(_0x4ca5('0x14'));var licenseUtil=require(_0x4ca5('0x15'));var db=require(_0x4ca5('0x16'))['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x9937b7,_0x3764df){_0x3764df=_0x3764df||0xcc;return function(_0x652e8){if(_0x652e8){return _0x9937b7[_0x4ca5('0x17')](_0x3764df);}return _0x9937b7[_0x4ca5('0x18')](_0x3764df)[_0x4ca5('0x19')]();};}function respondWithResult(_0xdb4c02,_0x4cd64c){_0x4cd64c=_0x4cd64c||0xc8;return function(_0x24f870){if(_0x24f870){return _0xdb4c02[_0x4ca5('0x18')](_0x4cd64c)['json'](_0x24f870);}};}function respondWithFilteredResult(_0xda08f2,_0x413e22){return function(_0x2348a8){if(_0x2348a8){var _0xf41883=typeof _0x413e22[_0x4ca5('0x1a')]==='undefined'&&typeof _0x413e22[_0x4ca5('0x1b')]==='undefined';var _0x3e7fc1=_0x2348a8[_0x4ca5('0x1c')];var _0x52a222=_0xf41883?0x0:_0x413e22[_0x4ca5('0x1a')];var _0x22e4d2=_0xf41883?_0x2348a8[_0x4ca5('0x1c')]:_0x413e22[_0x4ca5('0x1a')]+_0x413e22[_0x4ca5('0x1b')];var _0x6edbe;if(_0x22e4d2>=_0x3e7fc1){_0x22e4d2=_0x3e7fc1;_0x6edbe=0xc8;}else{_0x6edbe=0xce;}_0xda08f2['status'](_0x6edbe);return _0xda08f2[_0x4ca5('0x1d')]('Content-Range',_0x52a222+'-'+_0x22e4d2+'/'+_0x3e7fc1)[_0x4ca5('0x1e')](_0x2348a8);}return null;};}function patchUpdates(_0x4fa89d){return function(_0x190892){try{jsonpatch[_0x4ca5('0x1f')](_0x190892,_0x4fa89d,!![]);}catch(_0x39fc79){return BPromise[_0x4ca5('0x20')](_0x39fc79);}return _0x190892[_0x4ca5('0x21')]();};}function saveUpdates(_0x57af85,_0xf308b6){return function(_0x433c61){if(_0x433c61){return _0x433c61[_0x4ca5('0x22')](_0x57af85)[_0x4ca5('0x23')](function(_0x322817){return _0x322817;});}return null;};}function removeEntity(_0x490c9d,_0xfcada3){return function(_0x3b4310){if(_0x3b4310){return _0x3b4310['destroy']()[_0x4ca5('0x23')](function(){_0x490c9d['status'](0xcc)[_0x4ca5('0x19')]();});}};}function handleEntityNotFound(_0x10085f,_0x10f43e){return function(_0x3c20b4){if(!_0x3c20b4){_0x10085f[_0x4ca5('0x17')](0x194);}return _0x3c20b4;};}function handleError(_0x3cb16a,_0x540040){_0x540040=_0x540040||0x1f4;return function(_0x1a0a7f){logger[_0x4ca5('0x24')](_0x1a0a7f['stack']);if(_0x1a0a7f[_0x4ca5('0x25')]){delete _0x1a0a7f[_0x4ca5('0x25')];}_0x3cb16a['status'](_0x540040)['send'](_0x1a0a7f);};}exports['index']=function(_0x277915,_0x247cfb){var _0xc225d5={},_0x2e1750={},_0x5e5021={'count':0x0,'rows':[]};var _0x2a650e=_['map'](db[_0x4ca5('0x26')][_0x4ca5('0x27')],function(_0x197c79){return{'name':_0x197c79['fieldName'],'type':_0x197c79[_0x4ca5('0x28')][_0x4ca5('0x29')]};});_0x2e1750[_0x4ca5('0x2a')]=_[_0x4ca5('0x2b')](_0x2a650e,_0x4ca5('0x25'));_0x2e1750['query']=_[_0x4ca5('0x2c')](_0x277915[_0x4ca5('0x2d')]);_0x2e1750['filters']=_['intersection'](_0x2e1750[_0x4ca5('0x2a')],_0x2e1750[_0x4ca5('0x2d')]);_0xc225d5[_0x4ca5('0x2e')]=_[_0x4ca5('0x2f')](_0x2e1750[_0x4ca5('0x2a')],qs[_0x4ca5('0x30')](_0x277915['query'][_0x4ca5('0x30')]));_0xc225d5[_0x4ca5('0x2e')]=_0xc225d5[_0x4ca5('0x2e')][_0x4ca5('0x31')]?_0xc225d5[_0x4ca5('0x2e')]:_0x2e1750[_0x4ca5('0x2a')];if(!_0x277915[_0x4ca5('0x2d')]['hasOwnProperty']('nolimit')){_0xc225d5[_0x4ca5('0x1b')]=qs['limit'](_0x277915[_0x4ca5('0x2d')][_0x4ca5('0x1b')]);_0xc225d5[_0x4ca5('0x1a')]=qs[_0x4ca5('0x1a')](_0x277915['query'][_0x4ca5('0x1a')]);}_0xc225d5[_0x4ca5('0x32')]=qs[_0x4ca5('0x33')](_0x277915[_0x4ca5('0x2d')][_0x4ca5('0x33')]);_0xc225d5['where']=qs[_0x4ca5('0x34')](_['pick'](_0x277915[_0x4ca5('0x2d')],_0x2e1750['filters']),_0x2a650e);if(_0x277915['query'][_0x4ca5('0x35')]){_0xc225d5[_0x4ca5('0x36')]=_[_0x4ca5('0x37')](_0xc225d5[_0x4ca5('0x36')],{'$or':_['map'](_0x2a650e,function(_0x4d3474){if(_0x4d3474[_0x4ca5('0x28')]!=='VIRTUAL'){var _0x210d17={};_0x210d17[_0x4d3474[_0x4ca5('0x25')]]={'$like':'%'+_0x277915['query'][_0x4ca5('0x35')]+'%'};return _0x210d17;}})});}_0xc225d5=_[_0x4ca5('0x37')]({},_0xc225d5,_0x277915[_0x4ca5('0x38')]);var _0x3f0426={'where':_0xc225d5[_0x4ca5('0x36')]};return db[_0x4ca5('0x26')][_0x4ca5('0x1c')](_0x3f0426)[_0x4ca5('0x23')](function(_0x5adb72){_0x5e5021[_0x4ca5('0x1c')]=_0x5adb72;if(_0x277915['query'][_0x4ca5('0x39')]){_0xc225d5[_0x4ca5('0x3a')]=[{'all':!![]}];}return db[_0x4ca5('0x26')]['findAll'](_0xc225d5);})[_0x4ca5('0x23')](function(_0x18f441){_0x5e5021['rows']=_0x18f441;return _0x5e5021;})[_0x4ca5('0x23')](respondWithFilteredResult(_0x247cfb,_0xc225d5))[_0x4ca5('0x3b')](handleError(_0x247cfb,null));};exports[_0x4ca5('0x3c')]=function(_0xdf615,_0x36ffec){var _0x1ab28b={'raw':![],'where':{'id':_0xdf615['params']['id']}},_0x36c068={};_0x36c068['model']=_[_0x4ca5('0x2c')](db[_0x4ca5('0x26')][_0x4ca5('0x27')]);_0x36c068[_0x4ca5('0x2d')]=_[_0x4ca5('0x2c')](_0xdf615[_0x4ca5('0x2d')]);_0x36c068[_0x4ca5('0x34')]=_['intersection'](_0x36c068[_0x4ca5('0x2a')],_0x36c068[_0x4ca5('0x2d')]);_0x1ab28b[_0x4ca5('0x2e')]=_[_0x4ca5('0x2f')](_0x36c068['model'],qs[_0x4ca5('0x30')](_0xdf615[_0x4ca5('0x2d')][_0x4ca5('0x30')]));_0x1ab28b[_0x4ca5('0x2e')]=_0x1ab28b[_0x4ca5('0x2e')][_0x4ca5('0x31')]?_0x1ab28b[_0x4ca5('0x2e')]:_0x36c068['model'];if(_0xdf615[_0x4ca5('0x2d')]['includeAll']){_0x1ab28b[_0x4ca5('0x3a')]=[{'all':!![]}];}_0x1ab28b=_[_0x4ca5('0x37')]({},_0x1ab28b,_0xdf615[_0x4ca5('0x38')]);return db[_0x4ca5('0x26')][_0x4ca5('0x3d')](_0x1ab28b)[_0x4ca5('0x23')](handleEntityNotFound(_0x36ffec,null))['then'](respondWithResult(_0x36ffec,null))[_0x4ca5('0x3b')](handleError(_0x36ffec,null));};exports[_0x4ca5('0x3e')]=function(_0x2bdf49,_0x2bc956){return db['ServicenowAccount'][_0x4ca5('0x3e')](_0x2bdf49['body'],{})[_0x4ca5('0x23')](respondWithResult(_0x2bc956,0xc9))[_0x4ca5('0x3b')](handleError(_0x2bc956,null));};exports[_0x4ca5('0x22')]=function(_0x1dff0b,_0x7e30ed){if(_0x1dff0b[_0x4ca5('0x3f')]['id']){delete _0x1dff0b['body']['id'];}return db[_0x4ca5('0x26')][_0x4ca5('0x3d')]({'where':{'id':_0x1dff0b['params']['id']}})[_0x4ca5('0x23')](handleEntityNotFound(_0x7e30ed,null))['then'](saveUpdates(_0x1dff0b['body'],null))['then'](respondWithResult(_0x7e30ed,null))[_0x4ca5('0x3b')](handleError(_0x7e30ed,null));};exports[_0x4ca5('0x40')]=function(_0x4c175a,_0x451148){return db[_0x4ca5('0x26')][_0x4ca5('0x3d')]({'where':{'id':_0x4c175a[_0x4ca5('0x41')]['id']}})[_0x4ca5('0x23')](handleEntityNotFound(_0x451148,null))[_0x4ca5('0x23')](removeEntity(_0x451148,null))[_0x4ca5('0x3b')](handleError(_0x451148,null));};exports['getConfigurations']=function(_0x2db575,_0x477aa5,_0x49a312){var _0xeae8c8={};var _0x339656={};var _0x570b30;var _0x350c2c;return db['ServicenowAccount']['findOne']({'where':{'id':_0x2db575[_0x4ca5('0x41')]['id']}})[_0x4ca5('0x23')](handleEntityNotFound(_0x477aa5,null))[_0x4ca5('0x23')](function(_0x239ae2){if(_0x239ae2){_0x570b30=_0x239ae2;_0x339656[_0x4ca5('0x2a')]=_[_0x4ca5('0x2c')](db[_0x4ca5('0x42')][_0x4ca5('0x27')]);_0x339656[_0x4ca5('0x2d')]=_[_0x4ca5('0x2c')](_0x2db575[_0x4ca5('0x2d')]);_0x339656[_0x4ca5('0x34')]=_['intersection'](_0x339656[_0x4ca5('0x2a')],_0x339656[_0x4ca5('0x2d')]);_0xeae8c8[_0x4ca5('0x2e')]=_[_0x4ca5('0x2f')](_0x339656['model'],qs[_0x4ca5('0x30')](_0x2db575[_0x4ca5('0x2d')][_0x4ca5('0x30')]));_0xeae8c8['attributes']=_0xeae8c8['attributes']['length']?_0xeae8c8['attributes']:_0x339656[_0x4ca5('0x2a')];_0xeae8c8['order']=qs[_0x4ca5('0x33')](_0x2db575[_0x4ca5('0x2d')][_0x4ca5('0x33')]);_0xeae8c8[_0x4ca5('0x36')]=qs[_0x4ca5('0x34')](_[_0x4ca5('0x43')](_0x2db575[_0x4ca5('0x2d')],_0x339656[_0x4ca5('0x34')]));if(_0x2db575[_0x4ca5('0x2d')]['filter']){_0xeae8c8[_0x4ca5('0x36')]=_[_0x4ca5('0x37')](_0xeae8c8['where'],{'$or':_[_0x4ca5('0x2b')](_0xeae8c8['attributes'],function(_0xb7dc04){var _0x33985c={};_0x33985c[_0xb7dc04]={'$like':'%'+_0x2db575[_0x4ca5('0x2d')][_0x4ca5('0x35')]+'%'};return _0x33985c;})});}_0xeae8c8=_[_0x4ca5('0x37')]({},_0xeae8c8,_0x2db575['options']);return _0x570b30[_0x4ca5('0x44')](_0xeae8c8);}})[_0x4ca5('0x23')](function(_0x9856fc){if(_0x9856fc){_0x350c2c=_0x9856fc[_0x4ca5('0x31')];if(!_0x2db575[_0x4ca5('0x2d')]['hasOwnProperty'](_0x4ca5('0x45'))){_0xeae8c8[_0x4ca5('0x1b')]=qs[_0x4ca5('0x1b')](_0x2db575['query'][_0x4ca5('0x1b')]);_0xeae8c8['offset']=qs[_0x4ca5('0x1a')](_0x2db575[_0x4ca5('0x2d')]['offset']);}return _0x570b30[_0x4ca5('0x44')](_0xeae8c8);}})['then'](function(_0x1afa4b){if(_0x1afa4b){return _0x1afa4b?{'count':_0x350c2c,'rows':_0x1afa4b}:null;}})[_0x4ca5('0x23')](respondWithResult(_0x477aa5,null))['catch'](handleError(_0x477aa5,null));};exports[_0x4ca5('0x46')]=function(_0x272fc5,_0x251ef7,_0x58c976){if(_0x272fc5[_0x4ca5('0x3f')]['id']){delete _0x272fc5[_0x4ca5('0x3f')]['id'];}return db[_0x4ca5('0x26')][_0x4ca5('0x47')]({'where':{'id':_0x272fc5[_0x4ca5('0x41')]['id']}})[_0x4ca5('0x23')](handleEntityNotFound(_0x251ef7,null))[_0x4ca5('0x23')](function(_0x156391){if(_0x156391){_0x272fc5['body']['AccountId']=_0x156391['id'];_0x272fc5[_0x4ca5('0x3f')][_0x4ca5('0x48')]=integrations[_0x4ca5('0x49')](_0x272fc5[_0x4ca5('0x3f')][_0x4ca5('0x4a')],_0x272fc5[_0x4ca5('0x3f')][_0x4ca5('0x28')]);_0x272fc5[_0x4ca5('0x3f')][_0x4ca5('0x4b')]=integrations[_0x4ca5('0x4c')](_0x272fc5[_0x4ca5('0x3f')]['channel'],_0x272fc5['body'][_0x4ca5('0x28')]);return db['ServicenowConfiguration'][_0x4ca5('0x3e')](_0x272fc5['body'],{'include':[{'model':db[_0x4ca5('0x4d')],'as':'Subjects'},{'model':db['ServicenowField'],'as':_0x4ca5('0x4b')}]});}return null;})[_0x4ca5('0x23')](respondWithResult(_0x251ef7,null))[_0x4ca5('0x3b')](handleError(_0x251ef7,null));};exports[_0x4ca5('0x4e')]=function(_0x3bda03,_0x590d56,_0x55d86d){var _0x4fa68c=[_0x4ca5('0x4f'),_0x4ca5('0x50'),'knowledge',_0x4ca5('0x51'),_0x4ca5('0x52'),_0x4ca5('0x53'),_0x4ca5('0x54'),_0x4ca5('0x55'),_0x4ca5('0x56')];var _0x1f9f39=[_0x4ca5('0x57'),'made_sla',_0x4ca5('0x58'),'watch_list',_0x4ca5('0x59'),_0x4ca5('0x5a'),_0x4ca5('0x5b'),_0x4ca5('0x50'),_0x4ca5('0x5c'),_0x4ca5('0x5d'),_0x4ca5('0x5e'),_0x4ca5('0x5f'),_0x4ca5('0x60'),_0x4ca5('0x61'),_0x4ca5('0x62'),'sys_domain','state',_0x4ca5('0x63'),_0x4ca5('0x64'),_0x4ca5('0x32'),_0x4ca5('0x65'),_0x4ca5('0x66'),_0x4ca5('0x67'),_0x4ca5('0x68'),'impact',_0x4ca5('0x69'),_0x4ca5('0x6a'),'business_service',_0x4ca5('0x6b'),_0x4ca5('0x6c'),'rfc',_0x4ca5('0x6d'),_0x4ca5('0x6e'),_0x4ca5('0x6f'),_0x4ca5('0x70'),'group_list',_0x4ca5('0x71'),_0x4ca5('0x72'),_0x4ca5('0x73'),_0x4ca5('0x74'),'approval_set',_0x4ca5('0x51'),_0x4ca5('0x75'),_0x4ca5('0x76'),_0x4ca5('0x52'),_0x4ca5('0x77'),_0x4ca5('0x78'),_0x4ca5('0x79'),_0x4ca5('0x7a'),_0x4ca5('0x7b'),_0x4ca5('0x7c'),_0x4ca5('0x7d'),'calendar_duration',_0x4ca5('0x53'),_0x4ca5('0x7e'),_0x4ca5('0x7f'),'closed_by','follow_up',_0x4ca5('0x80'),_0x4ca5('0x81'),_0x4ca5('0x82'),_0x4ca5('0x83'),_0x4ca5('0x54'),_0x4ca5('0x84'),_0x4ca5('0x85'),_0x4ca5('0x86'),'reassignment_count','activity_due','assigned_to',_0x4ca5('0x55'),_0x4ca5('0x87'),_0x4ca5('0x88'),_0x4ca5('0x89'),_0x4ca5('0x8a'),_0x4ca5('0x8b'),_0x4ca5('0x8c'),_0x4ca5('0x8d'),'sys_tags',_0x4ca5('0x8e'),_0x4ca5('0x8f'),_0x4ca5('0x90'),'location',_0x4ca5('0x56')];var _0x56b8ed='';var _0x2d4157='';var _0x2440b2=[];var _0x22d2ab='';var _0xf87561='';var _0x491840=[];var _0x2887bf='';var _0x120976='';var _0x260e1d={};var _0x1fd11e='';return db[_0x4ca5('0x26')][_0x4ca5('0x47')]({'where':{'id':_0x3bda03['params']['id']},'attributes':['id','username',_0x4ca5('0x91'),'email',_0x4ca5('0x92'),'serverUrl']})[_0x4ca5('0x23')](handleEntityNotFound(_0x590d56,null))['then'](function(_0x35c390){if(_0x35c390){_0x1fd11e=_0x35c390['remoteUri'];var _0x20a9ee=_0x1fd11e['slice'](-0x1);if(_0x20a9ee==='/'){_0x1fd11e=_0x1fd11e[_0x4ca5('0x93')](0x0,_0x1fd11e[_0x4ca5('0x94')](_0x20a9ee));}_0x120976=util[_0x4ca5('0x95')](_0x4ca5('0x96'),_0x1fd11e);_0x2887bf=util[_0x4ca5('0x95')](_0x4ca5('0x97'),_0x1fd11e);_0x260e1d={'user':_0x35c390[_0x4ca5('0x98')],'pass':_0x35c390['password']};var _0x10f0a3={'method':_0x4ca5('0x99'),'uri':_0x120976+_0x4ca5('0x9a'),'auth':_0x260e1d,'json':!![]};return rp(_0x10f0a3);}})['then'](function(_0x57ccfc){if(_0x57ccfc['result'][_0x4ca5('0x31')]>0x0){_0x56b8ed=_0x57ccfc[_0x4ca5('0x9b')];}console[_0x4ca5('0x9c')]('incident\x20table\x20objects',_0x56b8ed);_0x491840=[];_0x2d4157=Object[_0x4ca5('0x9d')]([],_0x56b8ed);_['remove'](_0x2d4157,function(_0x2bf8e7){return!_0x4fa68c[_0x4ca5('0x9e')](_0x2bf8e7[_0x4ca5('0x25')]);});_0x2d4157[_0x4ca5('0x9f')](function(_0x3758e4){var _0x281ca6=createFieldObject(_0x2887bf,_0x260e1d,_0x3758e4[_0x4ca5('0xa0')],_0x3758e4['name'],_0x3758e4[_0x4ca5('0xa1')],![]);_0x491840['push'](_0x281ca6);});return Promise[_0x4ca5('0xa2')](_0x491840);})['then'](function(_0x3efe46){_0x2440b2=_0x3efe46;_0x22d2ab=Object[_0x4ca5('0x9d')]([],_0x56b8ed);console[_0x4ca5('0x9c')](_0x4ca5('0xa3'),_0x56b8ed);_[_0x4ca5('0xa4')](_0x22d2ab,function(_0x3649ec){return _0x1f9f39[_0x4ca5('0x9e')](_0x3649ec[_0x4ca5('0x25')]);});console[_0x4ca5('0x9c')](_0x4ca5('0xa5'),_0x22d2ab);_0x491840=[];_0x22d2ab[_0x4ca5('0x9f')](function(_0xf9c2){var _0x3d5711=createFieldObject(_0x2887bf,_0x260e1d,_0xf9c2[_0x4ca5('0xa0')],_0xf9c2[_0x4ca5('0x25')],_0xf9c2['label'],!![]);_0x491840[_0x4ca5('0xa6')](_0x3d5711);});return Promise[_0x4ca5('0xa2')](_0x491840);})['then'](function(_0x68bf03){_0xf87561=_0x68bf03;var _0x2099d3=_0x2440b2[_0x4ca5('0xa7')](_0xf87561);return{'count':_0x2099d3[_0x4ca5('0x31')],'rows':_0x2099d3};})[_0x4ca5('0x23')](respondWithResult(_0x590d56,null))[_0x4ca5('0x3b')](function(_0x3a3445){console[_0x4ca5('0x9c')](_0x4ca5('0xa8')+_0x3a3445);var _0x4a01c7=_0x3bda03['query'][_0x4ca5('0xa9')]?0x1f4:_0x3a3445[_0x4ca5('0xaa')]||0x1f4;logger['error'](_0x3a3445[_0x4ca5('0xab')]);delete _0x3a3445[_0x4ca5('0x25')];if(_0x4a01c7===0x191){_0x4a01c7=0x190;}_0x590d56['status'](_0x4a01c7)[_0x4ca5('0xac')](_0x3bda03['query'][_0x4ca5('0xa9')]?{'message':'Wrong\x20credentials','statusCode':_0x3a3445['statusCode']}:_0x3a3445);});};function createFieldObject(_0x38b011,_0x1a9064,_0x101170,_0x2f3244,_0x14a86b,_0x211421){return new Promise(function(_0x4a5e0c,_0xd1fb12){var _0x473995={'id':_0x2f3244,'name':_0x14a86b,'custom':_0x211421};if(_0x101170==='boolean'){_0x473995[_0x4ca5('0x38')]=[{'name':'True','value':'true'},{'name':_0x4ca5('0xad'),'value':_0x4ca5('0xae')}];_0x4a5e0c(_0x473995);}else{var _0x482e26={'method':'GET','uri':_0x38b011+_0x4ca5('0xaf')+_0x2f3244,'auth':_0x1a9064,'json':!![]};return rp(_0x482e26)[_0x4ca5('0x23')](function(_0x3a8a2d){var _0xc33270=[];if(_0x3a8a2d[_0x4ca5('0x9b')][_0x4ca5('0x31')]>0x0){_0x3a8a2d[_0x4ca5('0x9b')][_0x4ca5('0x9f')](function(_0x31a7b6){if(_0x31a7b6['inactive']===_0x4ca5('0xae')){var _0x344c92={'name':_0x31a7b6[_0x4ca5('0xa1')],'value':_0x31a7b6['value']};_0xc33270['push'](_0x344c92);}});}_0x473995[_0x4ca5('0x38')]=_0xc33270;if(_0x473995[_0x4ca5('0x38')]['length']>0x0){_0x4a5e0c(_0x473995);}else{if(_0x211421==![]){_0x4a5e0c();}else{_0x4a5e0c(_0x473995);}}});}});}
\ No newline at end of file
+var _0x5100=['error','index','ServicenowAccount','rawAttributes','fieldName','type','key','map','name','query','filters','attributes','intersection','model','fields','hasOwnProperty','nolimit','order','sort','where','merge','VIRTUAL','filter','options','includeAll','include','findAll','rows','show','params','keys','length','catch','create','body','find','getConfigurations','findOne','ServicenowConfiguration','pick','addConfiguration','Subjects','channel','Descriptions','getDescriptions','ServicenowField','getFields','made_sla','hold_reason','knowledge','notify','incident_state','severity','watch_list','sys_updated_on','approval_history','resolved_by','opened_by','sys_domain','state','sys_created_by','calendar_stc','cmdb_ci','delivery_plan','impact','active','work_notes_list','business_service','priority','sys_domain_path','rfc','time_worked','expected_start','business_duration','work_end','reopened_time','resolved_at','caller_id','subcategory','work_notes','short_description','close_code','correlation_display','delivery_task','work_start','business_stc','additional_assignee_list','description','calendar_duration','sys_class_name','close_notes','closed_by','follow_up','parent_incident','sys_id','contact_type','reopened_by','urgency','reassignment_count','assigned_to','comments','sla_due','approval','comments_and_work_notes','due_date','sys_mod_count','reopen_count','sys_tags','escalation','upon_approval','location','category','username','password','email','remoteUri','serverUrl','substring','lastIndexOf','%s/api/now/doc/table/schema/','GET','incident?sysparm_display_value=all','result','log','assign','remove','includes','forEach','internalType','label','TCL:\x20_object','TCL:\x20exports.getEntityFields\x20->\x20_objectsCustom','push','all','concat','stack','send','test','Wrong\x20credentials','statusCode','boolean','True','False','false','sys_choice?sysparm_query=name=incident^element=','inactive','value','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','ejs','fs-extra','lodash','squel','jsforce','desk.js','to-csv','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','end','json','offset','undefined','count','limit','set','apply','save','update','then','destroy'];(function(_0x41880a,_0x49770d){var _0x594a48=function(_0x16e25c){while(--_0x16e25c){_0x41880a['push'](_0x41880a['shift']());}};_0x594a48(++_0x49770d);}(_0x5100,0x93));var _0x0510=function(_0x4f7ab4,_0x19372c){_0x4f7ab4=_0x4f7ab4-0x0;var _0x4225e0=_0x5100[_0x4f7ab4];return _0x4225e0;};'use strict';var emlformat=require(_0x0510('0x0'));var rimraf=require(_0x0510('0x1'));var zipdir=require(_0x0510('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x0510('0x3'));var moment=require(_0x0510('0x4'));var BPromise=require(_0x0510('0x5'));var Mustache=require(_0x0510('0x6'));var util=require(_0x0510('0x7'));var path=require(_0x0510('0x8'));var sox=require(_0x0510('0x9'));var csv=require('to-csv');var ejs=require(_0x0510('0xa'));var fs=require('fs');var fs_extra=require(_0x0510('0xb'));var _=require(_0x0510('0xc'));var squel=require(_0x0510('0xd'));var crypto=require('crypto');var jsforce=require(_0x0510('0xe'));var deskjs=require(_0x0510('0xf'));var toCsv=require(_0x0510('0x10'));var querystring=require(_0x0510('0x11'));var Papa=require(_0x0510('0x12'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x0510('0x13'));var as=require(_0x0510('0x14'));var hardwareService=require(_0x0510('0x15'));var logger=require(_0x0510('0x16'))('api');var utils=require('../../config/utils');var config=require(_0x0510('0x17'));var licenseUtil=require(_0x0510('0x18'));var db=require(_0x0510('0x19'))['db'];var integrations=require(_0x0510('0x1a'));function respondWithStatusCode(_0x1c9c96,_0x237fac){_0x237fac=_0x237fac||0xcc;return function(_0x47c7e7){if(_0x47c7e7){return _0x1c9c96[_0x0510('0x1b')](_0x237fac);}return _0x1c9c96[_0x0510('0x1c')](_0x237fac)[_0x0510('0x1d')]();};}function respondWithResult(_0x6713ba,_0x34c247){_0x34c247=_0x34c247||0xc8;return function(_0x5ebc94){if(_0x5ebc94){return _0x6713ba[_0x0510('0x1c')](_0x34c247)[_0x0510('0x1e')](_0x5ebc94);}};}function respondWithFilteredResult(_0x2db09a,_0x286a3f){return function(_0x5e45c3){if(_0x5e45c3){var _0x5761c3=typeof _0x286a3f[_0x0510('0x1f')]==='undefined'&&typeof _0x286a3f['limit']===_0x0510('0x20');var _0x420524=_0x5e45c3[_0x0510('0x21')];var _0xc2149=_0x5761c3?0x0:_0x286a3f[_0x0510('0x1f')];var _0x5497e8=_0x5761c3?_0x5e45c3[_0x0510('0x21')]:_0x286a3f['offset']+_0x286a3f[_0x0510('0x22')];var _0x29871f;if(_0x5497e8>=_0x420524){_0x5497e8=_0x420524;_0x29871f=0xc8;}else{_0x29871f=0xce;}_0x2db09a[_0x0510('0x1c')](_0x29871f);return _0x2db09a[_0x0510('0x23')]('Content-Range',_0xc2149+'-'+_0x5497e8+'/'+_0x420524)[_0x0510('0x1e')](_0x5e45c3);}return null;};}function patchUpdates(_0x27a7b4){return function(_0x1ab584){try{jsonpatch[_0x0510('0x24')](_0x1ab584,_0x27a7b4,!![]);}catch(_0x2ae4ad){return BPromise['reject'](_0x2ae4ad);}return _0x1ab584[_0x0510('0x25')]();};}function saveUpdates(_0x1852ef,_0x388661){return function(_0x30dd54){if(_0x30dd54){return _0x30dd54[_0x0510('0x26')](_0x1852ef)[_0x0510('0x27')](function(_0x432876){return _0x432876;});}return null;};}function removeEntity(_0x345048,_0x59e47c){return function(_0x524e90){if(_0x524e90){return _0x524e90[_0x0510('0x28')]()[_0x0510('0x27')](function(){_0x345048[_0x0510('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x396bb4,_0x296c2c){return function(_0x2c7505){if(!_0x2c7505){_0x396bb4[_0x0510('0x1b')](0x194);}return _0x2c7505;};}function handleError(_0x523caf,_0x3ec7fb){_0x3ec7fb=_0x3ec7fb||0x1f4;return function(_0x114b17){logger[_0x0510('0x29')](_0x114b17['stack']);if(_0x114b17['name']){delete _0x114b17['name'];}_0x523caf[_0x0510('0x1c')](_0x3ec7fb)['send'](_0x114b17);};}exports[_0x0510('0x2a')]=function(_0x33fd14,_0x389620){var _0x2450dc={},_0x515853={},_0x4406aa={'count':0x0,'rows':[]};var _0x172caf=_['map'](db[_0x0510('0x2b')][_0x0510('0x2c')],function(_0x26c5fb){return{'name':_0x26c5fb[_0x0510('0x2d')],'type':_0x26c5fb[_0x0510('0x2e')][_0x0510('0x2f')]};});_0x515853['model']=_[_0x0510('0x30')](_0x172caf,_0x0510('0x31'));_0x515853[_0x0510('0x32')]=_['keys'](_0x33fd14[_0x0510('0x32')]);_0x515853[_0x0510('0x33')]=_['intersection'](_0x515853['model'],_0x515853[_0x0510('0x32')]);_0x2450dc[_0x0510('0x34')]=_[_0x0510('0x35')](_0x515853[_0x0510('0x36')],qs[_0x0510('0x37')](_0x33fd14[_0x0510('0x32')][_0x0510('0x37')]));_0x2450dc[_0x0510('0x34')]=_0x2450dc['attributes']['length']?_0x2450dc[_0x0510('0x34')]:_0x515853[_0x0510('0x36')];if(!_0x33fd14[_0x0510('0x32')][_0x0510('0x38')](_0x0510('0x39'))){_0x2450dc[_0x0510('0x22')]=qs['limit'](_0x33fd14['query'][_0x0510('0x22')]);_0x2450dc[_0x0510('0x1f')]=qs[_0x0510('0x1f')](_0x33fd14[_0x0510('0x32')][_0x0510('0x1f')]);}_0x2450dc[_0x0510('0x3a')]=qs['sort'](_0x33fd14['query'][_0x0510('0x3b')]);_0x2450dc[_0x0510('0x3c')]=qs[_0x0510('0x33')](_['pick'](_0x33fd14[_0x0510('0x32')],_0x515853[_0x0510('0x33')]),_0x172caf);if(_0x33fd14[_0x0510('0x32')]['filter']){_0x2450dc[_0x0510('0x3c')]=_[_0x0510('0x3d')](_0x2450dc[_0x0510('0x3c')],{'$or':_[_0x0510('0x30')](_0x172caf,function(_0x512781){if(_0x512781[_0x0510('0x2e')]!==_0x0510('0x3e')){var _0x18d803={};_0x18d803[_0x512781[_0x0510('0x31')]]={'$like':'%'+_0x33fd14['query'][_0x0510('0x3f')]+'%'};return _0x18d803;}})});}_0x2450dc=_['merge']({},_0x2450dc,_0x33fd14[_0x0510('0x40')]);var _0x484e6b={'where':_0x2450dc[_0x0510('0x3c')]};return db[_0x0510('0x2b')]['count'](_0x484e6b)['then'](function(_0x3c2541){_0x4406aa[_0x0510('0x21')]=_0x3c2541;if(_0x33fd14[_0x0510('0x32')][_0x0510('0x41')]){_0x2450dc[_0x0510('0x42')]=[{'all':!![]}];}return db['ServicenowAccount'][_0x0510('0x43')](_0x2450dc);})[_0x0510('0x27')](function(_0xf6f2e8){_0x4406aa[_0x0510('0x44')]=_0xf6f2e8;return _0x4406aa;})[_0x0510('0x27')](respondWithFilteredResult(_0x389620,_0x2450dc))['catch'](handleError(_0x389620,null));};exports[_0x0510('0x45')]=function(_0x2536ff,_0x55ca11){var _0x52a9f0={'raw':![],'where':{'id':_0x2536ff[_0x0510('0x46')]['id']}},_0x231de0={};_0x231de0['model']=_['keys'](db[_0x0510('0x2b')][_0x0510('0x2c')]);_0x231de0['query']=_[_0x0510('0x47')](_0x2536ff[_0x0510('0x32')]);_0x231de0['filters']=_[_0x0510('0x35')](_0x231de0['model'],_0x231de0[_0x0510('0x32')]);_0x52a9f0[_0x0510('0x34')]=_[_0x0510('0x35')](_0x231de0[_0x0510('0x36')],qs[_0x0510('0x37')](_0x2536ff[_0x0510('0x32')][_0x0510('0x37')]));_0x52a9f0[_0x0510('0x34')]=_0x52a9f0[_0x0510('0x34')][_0x0510('0x48')]?_0x52a9f0[_0x0510('0x34')]:_0x231de0[_0x0510('0x36')];if(_0x2536ff[_0x0510('0x32')][_0x0510('0x41')]){_0x52a9f0[_0x0510('0x42')]=[{'all':!![]}];}_0x52a9f0=_['merge']({},_0x52a9f0,_0x2536ff[_0x0510('0x40')]);return db[_0x0510('0x2b')]['find'](_0x52a9f0)['then'](handleEntityNotFound(_0x55ca11,null))[_0x0510('0x27')](respondWithResult(_0x55ca11,null))[_0x0510('0x49')](handleError(_0x55ca11,null));};exports[_0x0510('0x4a')]=function(_0x4d0f9a,_0xd1fbc0){return db[_0x0510('0x2b')][_0x0510('0x4a')](_0x4d0f9a['body'],{})[_0x0510('0x27')](respondWithResult(_0xd1fbc0,0xc9))[_0x0510('0x49')](handleError(_0xd1fbc0,null));};exports[_0x0510('0x26')]=function(_0x39d2b6,_0x2a80b5){if(_0x39d2b6[_0x0510('0x4b')]['id']){delete _0x39d2b6[_0x0510('0x4b')]['id'];}return db[_0x0510('0x2b')][_0x0510('0x4c')]({'where':{'id':_0x39d2b6[_0x0510('0x46')]['id']}})[_0x0510('0x27')](handleEntityNotFound(_0x2a80b5,null))[_0x0510('0x27')](saveUpdates(_0x39d2b6['body'],null))[_0x0510('0x27')](respondWithResult(_0x2a80b5,null))[_0x0510('0x49')](handleError(_0x2a80b5,null));};exports['destroy']=function(_0x4fc7b0,_0x114967){return db[_0x0510('0x2b')]['find']({'where':{'id':_0x4fc7b0[_0x0510('0x46')]['id']}})[_0x0510('0x27')](handleEntityNotFound(_0x114967,null))[_0x0510('0x27')](removeEntity(_0x114967,null))[_0x0510('0x49')](handleError(_0x114967,null));};exports[_0x0510('0x4d')]=function(_0xa70161,_0xcc837c,_0x4a70b6){var _0x4135b9={};var _0x2f2e5c={};var _0x5ae0b9;var _0x4c7fe9;return db[_0x0510('0x2b')][_0x0510('0x4e')]({'where':{'id':_0xa70161['params']['id']}})['then'](handleEntityNotFound(_0xcc837c,null))[_0x0510('0x27')](function(_0x1a4ffd){if(_0x1a4ffd){_0x5ae0b9=_0x1a4ffd;_0x2f2e5c[_0x0510('0x36')]=_[_0x0510('0x47')](db[_0x0510('0x4f')][_0x0510('0x2c')]);_0x2f2e5c[_0x0510('0x32')]=_[_0x0510('0x47')](_0xa70161[_0x0510('0x32')]);_0x2f2e5c[_0x0510('0x33')]=_[_0x0510('0x35')](_0x2f2e5c[_0x0510('0x36')],_0x2f2e5c[_0x0510('0x32')]);_0x4135b9['attributes']=_[_0x0510('0x35')](_0x2f2e5c[_0x0510('0x36')],qs[_0x0510('0x37')](_0xa70161[_0x0510('0x32')][_0x0510('0x37')]));_0x4135b9['attributes']=_0x4135b9[_0x0510('0x34')][_0x0510('0x48')]?_0x4135b9[_0x0510('0x34')]:_0x2f2e5c[_0x0510('0x36')];_0x4135b9[_0x0510('0x3a')]=qs[_0x0510('0x3b')](_0xa70161[_0x0510('0x32')][_0x0510('0x3b')]);_0x4135b9[_0x0510('0x3c')]=qs[_0x0510('0x33')](_[_0x0510('0x50')](_0xa70161[_0x0510('0x32')],_0x2f2e5c[_0x0510('0x33')]));if(_0xa70161[_0x0510('0x32')][_0x0510('0x3f')]){_0x4135b9['where']=_[_0x0510('0x3d')](_0x4135b9['where'],{'$or':_[_0x0510('0x30')](_0x4135b9['attributes'],function(_0x1dfdc7){var _0xf5d3e5={};_0xf5d3e5[_0x1dfdc7]={'$like':'%'+_0xa70161[_0x0510('0x32')][_0x0510('0x3f')]+'%'};return _0xf5d3e5;})});}_0x4135b9=_[_0x0510('0x3d')]({},_0x4135b9,_0xa70161[_0x0510('0x40')]);return _0x5ae0b9[_0x0510('0x4d')](_0x4135b9);}})[_0x0510('0x27')](function(_0xdff880){if(_0xdff880){_0x4c7fe9=_0xdff880['length'];if(!_0xa70161[_0x0510('0x32')][_0x0510('0x38')](_0x0510('0x39'))){_0x4135b9['limit']=qs[_0x0510('0x22')](_0xa70161[_0x0510('0x32')]['limit']);_0x4135b9[_0x0510('0x1f')]=qs[_0x0510('0x1f')](_0xa70161[_0x0510('0x32')][_0x0510('0x1f')]);}return _0x5ae0b9[_0x0510('0x4d')](_0x4135b9);}})['then'](function(_0x238b92){if(_0x238b92){return _0x238b92?{'count':_0x4c7fe9,'rows':_0x238b92}:null;}})[_0x0510('0x27')](respondWithResult(_0xcc837c,null))['catch'](handleError(_0xcc837c,null));};exports[_0x0510('0x51')]=function(_0xd781cd,_0x3cd097,_0x2595a7){if(_0xd781cd[_0x0510('0x4b')]['id']){delete _0xd781cd[_0x0510('0x4b')]['id'];}return db[_0x0510('0x2b')][_0x0510('0x4e')]({'where':{'id':_0xd781cd[_0x0510('0x46')]['id']}})[_0x0510('0x27')](handleEntityNotFound(_0x3cd097,null))[_0x0510('0x27')](function(_0x2eeb21){if(_0x2eeb21){_0xd781cd['body']['AccountId']=_0x2eeb21['id'];_0xd781cd[_0x0510('0x4b')][_0x0510('0x52')]=integrations['getSubjects'](_0xd781cd[_0x0510('0x4b')][_0x0510('0x53')],_0xd781cd[_0x0510('0x4b')][_0x0510('0x2e')]);_0xd781cd[_0x0510('0x4b')][_0x0510('0x54')]=integrations[_0x0510('0x55')](_0xd781cd[_0x0510('0x4b')]['channel'],_0xd781cd[_0x0510('0x4b')]['type']);return db[_0x0510('0x4f')]['create'](_0xd781cd['body'],{'include':[{'model':db[_0x0510('0x56')],'as':_0x0510('0x52')},{'model':db[_0x0510('0x56')],'as':'Descriptions'}]});}return null;})[_0x0510('0x27')](respondWithResult(_0x3cd097,null))[_0x0510('0x49')](handleError(_0x3cd097,null));};exports[_0x0510('0x57')]=function(_0x3780f9,_0xa765f2,_0x400942){var _0x5a93e2=[_0x0510('0x58'),_0x0510('0x59'),_0x0510('0x5a'),'subcategory','close_code',_0x0510('0x5b'),_0x0510('0x5c'),_0x0510('0x5d'),'category'];var _0x3c7f74=['parent','made_sla','caused_by',_0x0510('0x5e'),'upon_reject',_0x0510('0x5f'),'child_incidents',_0x0510('0x59'),_0x0510('0x60'),'number',_0x0510('0x61'),'sys_updated_by',_0x0510('0x62'),'user_input','sys_created_on',_0x0510('0x63'),_0x0510('0x64'),_0x0510('0x65'),'knowledge',_0x0510('0x3a'),_0x0510('0x66'),'closed_at',_0x0510('0x67'),_0x0510('0x68'),_0x0510('0x69'),_0x0510('0x6a'),_0x0510('0x6b'),_0x0510('0x6c'),_0x0510('0x6d'),_0x0510('0x6e'),_0x0510('0x6f'),_0x0510('0x70'),_0x0510('0x71'),'opened_at',_0x0510('0x72'),'group_list',_0x0510('0x73'),_0x0510('0x74'),_0x0510('0x75'),_0x0510('0x76'),'approval_set',_0x0510('0x77'),_0x0510('0x78'),_0x0510('0x79'),_0x0510('0x7a'),_0x0510('0x7b'),_0x0510('0x7c'),_0x0510('0x7d'),'assignment_group',_0x0510('0x7e'),_0x0510('0x7f'),_0x0510('0x80'),_0x0510('0x81'),_0x0510('0x5b'),_0x0510('0x82'),_0x0510('0x83'),_0x0510('0x84'),_0x0510('0x85'),_0x0510('0x86'),_0x0510('0x87'),_0x0510('0x88'),_0x0510('0x89'),'incident_state',_0x0510('0x8a'),'problem_id','company',_0x0510('0x8b'),'activity_due',_0x0510('0x8c'),_0x0510('0x5d'),_0x0510('0x8d'),_0x0510('0x8e'),_0x0510('0x8f'),_0x0510('0x90'),_0x0510('0x91'),_0x0510('0x92'),_0x0510('0x93'),_0x0510('0x94'),_0x0510('0x95'),_0x0510('0x96'),'correlation_id',_0x0510('0x97'),_0x0510('0x98')];var _0x8f1bbe='';var _0x2cd480='';var _0x44c5f0=[];var _0xbee7c='';var _0xd478f4='';var _0x50b242=[];var _0x5062aa='';var _0x499d41='';var _0xafb5b7={};var _0xc95403='';return db['ServicenowAccount'][_0x0510('0x4e')]({'where':{'id':_0x3780f9[_0x0510('0x46')]['id']},'attributes':['id',_0x0510('0x99'),_0x0510('0x9a'),_0x0510('0x9b'),_0x0510('0x9c'),_0x0510('0x9d')]})[_0x0510('0x27')](handleEntityNotFound(_0xa765f2,null))['then'](function(_0x53a399){if(_0x53a399){_0xc95403=_0x53a399[_0x0510('0x9c')];var _0x4f340a=_0xc95403['slice'](-0x1);if(_0x4f340a==='/'){_0xc95403=_0xc95403[_0x0510('0x9e')](0x0,_0xc95403[_0x0510('0x9f')](_0x4f340a));}_0x499d41=util['format'](_0x0510('0xa0'),_0xc95403);_0x5062aa=util['format']('%s/api/now/table/',_0xc95403);_0xafb5b7={'user':_0x53a399['username'],'pass':_0x53a399['password']};var _0x39f086={'method':_0x0510('0xa1'),'uri':_0x499d41+_0x0510('0xa2'),'auth':_0xafb5b7,'json':!![]};return rp(_0x39f086);}})[_0x0510('0x27')](function(_0x19480d){if(_0x19480d[_0x0510('0xa3')][_0x0510('0x48')]>0x0){_0x8f1bbe=_0x19480d[_0x0510('0xa3')];}console[_0x0510('0xa4')]('incident\x20table\x20objects',_0x8f1bbe);_0x50b242=[];_0x2cd480=Object[_0x0510('0xa5')]([],_0x8f1bbe);_[_0x0510('0xa6')](_0x2cd480,function(_0x10d08e){return!_0x5a93e2[_0x0510('0xa7')](_0x10d08e[_0x0510('0x31')]);});_0x2cd480[_0x0510('0xa8')](function(_0x29862b){var _0x5e2495=createFieldObject(_0x5062aa,_0xafb5b7,_0x29862b[_0x0510('0xa9')],_0x29862b[_0x0510('0x31')],_0x29862b[_0x0510('0xaa')],![]);_0x50b242['push'](_0x5e2495);});return Promise['all'](_0x50b242);})[_0x0510('0x27')](function(_0x544540){_0x44c5f0=_0x544540;_0xbee7c=Object[_0x0510('0xa5')]([],_0x8f1bbe);console[_0x0510('0xa4')](_0x0510('0xab'),_0x8f1bbe);_[_0x0510('0xa6')](_0xbee7c,function(_0x15acf6){return _0x3c7f74[_0x0510('0xa7')](_0x15acf6[_0x0510('0x31')]);});console[_0x0510('0xa4')](_0x0510('0xac'),_0xbee7c);_0x50b242=[];_0xbee7c[_0x0510('0xa8')](function(_0x217ced){var _0x26dca8=createFieldObject(_0x5062aa,_0xafb5b7,_0x217ced[_0x0510('0xa9')],_0x217ced[_0x0510('0x31')],_0x217ced[_0x0510('0xaa')],!![]);_0x50b242[_0x0510('0xad')](_0x26dca8);});return Promise[_0x0510('0xae')](_0x50b242);})[_0x0510('0x27')](function(_0x1c131a){_0xd478f4=_0x1c131a;var _0x5a930b=_0x44c5f0[_0x0510('0xaf')](_0xd478f4);return{'count':_0x5a930b['length'],'rows':_0x5a930b};})[_0x0510('0x27')](respondWithResult(_0xa765f2,null))[_0x0510('0x49')](function(_0x1cfb34){console[_0x0510('0xa4')]('ServiceNow\x20error:\x20'+_0x1cfb34);var _0x2ff1cc=_0x3780f9['query']['test']?0x1f4:_0x1cfb34['statusCode']||0x1f4;logger[_0x0510('0x29')](_0x1cfb34[_0x0510('0xb0')]);delete _0x1cfb34['name'];if(_0x2ff1cc===0x191){_0x2ff1cc=0x190;}_0xa765f2[_0x0510('0x1c')](_0x2ff1cc)[_0x0510('0xb1')](_0x3780f9[_0x0510('0x32')][_0x0510('0xb2')]?{'message':_0x0510('0xb3'),'statusCode':_0x1cfb34[_0x0510('0xb4')]}:_0x1cfb34);});};function createFieldObject(_0x2694f8,_0x113b57,_0x3ab6e6,_0x41c97a,_0x282662,_0x99c57b){return new Promise(function(_0x335d7a,_0x129746){var _0x2a3172={'id':_0x41c97a,'name':_0x282662,'custom':_0x99c57b};if(_0x3ab6e6===_0x0510('0xb5')){_0x2a3172[_0x0510('0x40')]=[{'name':_0x0510('0xb6'),'value':'true'},{'name':_0x0510('0xb7'),'value':_0x0510('0xb8')}];_0x335d7a(_0x2a3172);}else{var _0x5bb6c9={'method':'GET','uri':_0x2694f8+_0x0510('0xb9')+_0x41c97a,'auth':_0x113b57,'json':!![]};return rp(_0x5bb6c9)[_0x0510('0x27')](function(_0x165d94){var _0x1241d0=[];if(_0x165d94['result'][_0x0510('0x48')]>0x0){_0x165d94[_0x0510('0xa3')]['forEach'](function(_0x1da73b){if(_0x1da73b[_0x0510('0xba')]===_0x0510('0xb8')){var _0x2b4b5a={'name':_0x1da73b[_0x0510('0xaa')],'value':_0x1da73b[_0x0510('0xbb')]};_0x1241d0['push'](_0x2b4b5a);}});}_0x2a3172['options']=_0x1241d0;if(_0x2a3172[_0x0510('0x40')]['length']>0x0){_0x335d7a(_0x2a3172);}else{if(_0x99c57b==![]){_0x335d7a();}else{_0x335d7a(_0x2a3172);}}});}});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3eea=['bluebird','request-promise','path','rimraf','../../config/environment','./intServicenowAccount.attributes','../../components/integrations/configuration','exports','define','int_servicenow_accounts','lodash','../../config/logger','api','moment'];(function(_0x3bf83f,_0x181cac){var _0x22c4a9=function(_0xb3ff0d){while(--_0xb3ff0d){_0x3bf83f['push'](_0x3bf83f['shift']());}};_0x22c4a9(++_0x181cac);}(_0x3eea,0x1ca));var _0xa3ee=function(_0x2ec32b,_0x2cc09b){_0x2ec32b=_0x2ec32b-0x0;var _0x57fbe8=_0x3eea[_0x2ec32b];return _0x57fbe8;};'use strict';var _=require(_0xa3ee('0x0'));var util=require('util');var logger=require(_0xa3ee('0x1'))(_0xa3ee('0x2'));var moment=require(_0xa3ee('0x3'));var BPromise=require(_0xa3ee('0x4'));var rp=require(_0xa3ee('0x5'));var fs=require('fs');var path=require(_0xa3ee('0x6'));var rimraf=require(_0xa3ee('0x7'));var config=require(_0xa3ee('0x8'));var attributes=require(_0xa3ee('0x9'));var integrations=require(_0xa3ee('0xa'));module[_0xa3ee('0xb')]=function(_0x5776bb,_0x538bf9){return _0x5776bb[_0xa3ee('0xc')]('ServicenowAccount',attributes,{'tableName':_0xa3ee('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x5d17=['lodash','util','moment','bluebird','request-promise','rimraf','../../config/environment','./intServicenowAccount.attributes','../../components/integrations/configuration','define','ServicenowAccount','int_servicenow_accounts'];(function(_0x56a515,_0x4328f0){var _0x1543f8=function(_0x575a71){while(--_0x575a71){_0x56a515['push'](_0x56a515['shift']());}};_0x1543f8(++_0x4328f0);}(_0x5d17,0x114));var _0x75d1=function(_0x5018bd,_0x24b200){_0x5018bd=_0x5018bd-0x0;var _0x5cb7c7=_0x5d17[_0x5018bd];return _0x5cb7c7;};'use strict';var _=require(_0x75d1('0x0'));var util=require(_0x75d1('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0x75d1('0x2'));var BPromise=require(_0x75d1('0x3'));var rp=require(_0x75d1('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x75d1('0x5'));var config=require(_0x75d1('0x6'));var attributes=require(_0x75d1('0x7'));var integrations=require(_0x75d1('0x8'));module['exports']=function(_0x458681,_0x116a51){return _0x458681[_0x75d1('0x9')](_0x75d1('0xa'),attributes,{'tableName':_0x75d1('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd15b=['ServicenowAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','GetServicenowAccount','ServicenowAccount','options','raw','attributes','limit','include','map','model','debug','ShowServicenowAccount','find','where','lodash','util','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','then','info','ServicenowAccount,\x20%s,\x20%s','request\x20sent'];(function(_0x196380,_0x3ee707){var _0x12cad7=function(_0x5aea3c){while(--_0x5aea3c){_0x196380['push'](_0x196380['shift']());}};_0x12cad7(++_0x3ee707);}(_0xd15b,0x195));var _0xbd15=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0xd15b[_0x14add3];return _0x4a174f;};'use strict';var _=require(_0xbd15('0x0'));var util=require(_0xbd15('0x1'));var moment=require('moment');var BPromise=require(_0xbd15('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xbd15('0x3'));var db=require(_0xbd15('0x4'))['db'];var utils=require(_0xbd15('0x5'));var logger=require(_0xbd15('0x6'))(_0xbd15('0x7'));var config=require('../../config/environment');var jayson=require(_0xbd15('0x8'));var client=jayson[_0xbd15('0x9')][_0xbd15('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x24c769,_0x5190db,_0x4e52b2){return new BPromise(function(_0x6e982d,_0x5c5049){return client['request'](_0x24c769,_0x4e52b2)[_0xbd15('0xb')](function(_0x392d22){logger[_0xbd15('0xc')](_0xbd15('0xd'),_0x5190db,_0xbd15('0xe'));logger['debug'](_0xbd15('0xf'),_0x5190db,'request\x20sent',JSON[_0xbd15('0x10')](_0x392d22));if(_0x392d22['error']){if(_0x392d22[_0xbd15('0x11')][_0xbd15('0x12')]===0x1f4){logger[_0xbd15('0x11')](_0xbd15('0xd'),_0x5190db,_0x392d22[_0xbd15('0x11')][_0xbd15('0x13')]);return _0x5c5049(_0x392d22[_0xbd15('0x11')]['message']);}logger[_0xbd15('0x11')]('ServicenowAccount,\x20%s,\x20%s',_0x5190db,_0x392d22[_0xbd15('0x11')][_0xbd15('0x13')]);return _0x6e982d(_0x392d22[_0xbd15('0x11')]['message']);}else{logger[_0xbd15('0xc')](_0xbd15('0xd'),_0x5190db,_0xbd15('0xe'));_0x6e982d(_0x392d22[_0xbd15('0x14')][_0xbd15('0x13')]);}})[_0xbd15('0x15')](function(_0x2c2427){logger[_0xbd15('0x11')](_0xbd15('0xd'),_0x5190db,_0x2c2427);_0x5c5049(_0x2c2427);});});}exports[_0xbd15('0x16')]=function(_0x52d04b){var _0xf88c21=this;return new Promise(function(_0x1680fe,_0x53d8dc){return db[_0xbd15('0x17')]['findAll']({'raw':_0x52d04b[_0xbd15('0x18')]?_0x52d04b[_0xbd15('0x18')][_0xbd15('0x19')]===undefined?!![]:![]:!![],'where':_0x52d04b[_0xbd15('0x18')]?_0x52d04b[_0xbd15('0x18')]['where']||null:null,'attributes':_0x52d04b['options']?_0x52d04b[_0xbd15('0x18')][_0xbd15('0x1a')]||null:null,'limit':_0x52d04b[_0xbd15('0x18')]?_0x52d04b[_0xbd15('0x18')][_0xbd15('0x1b')]||null:null,'include':_0x52d04b[_0xbd15('0x18')]?_0x52d04b[_0xbd15('0x18')][_0xbd15('0x1c')]?_[_0xbd15('0x1d')](_0x52d04b[_0xbd15('0x18')]['include'],function(_0x30d020){return{'model':db[_0x30d020[_0xbd15('0x1e')]],'as':_0x30d020['as'],'attributes':_0x30d020[_0xbd15('0x1a')],'include':_0x30d020[_0xbd15('0x1c')]?_['map'](_0x30d020[_0xbd15('0x1c')],function(_0x4d9a3a){return{'model':db[_0x4d9a3a[_0xbd15('0x1e')]],'as':_0x4d9a3a['as'],'attributes':_0x4d9a3a[_0xbd15('0x1a')],'include':_0x4d9a3a['include']?_[_0xbd15('0x1d')](_0x4d9a3a['include'],function(_0x2974de){return{'model':db[_0x2974de[_0xbd15('0x1e')]],'as':_0x2974de['as'],'attributes':_0x2974de['attributes']};}):[]};}):[]};}):[]:[]})[_0xbd15('0xb')](function(_0x306be7){logger['info'](_0xbd15('0x16'),_0x52d04b);logger[_0xbd15('0x1f')](_0xbd15('0x16'),_0x52d04b,JSON['stringify'](_0x306be7));_0x1680fe(_0x306be7);})[_0xbd15('0x15')](function(_0x310b95){logger[_0xbd15('0x11')](_0xbd15('0x16'),_0x310b95[_0xbd15('0x13')],_0x52d04b);_0x53d8dc(_0xf88c21[_0xbd15('0x11')](0x1f4,_0x310b95[_0xbd15('0x13')]));});});};exports[_0xbd15('0x20')]=function(_0x385919){var _0x1dfa76=this;return new Promise(function(_0xf16c2c,_0x4019d8){return db[_0xbd15('0x17')][_0xbd15('0x21')]({'raw':_0x385919[_0xbd15('0x18')]?_0x385919[_0xbd15('0x18')][_0xbd15('0x19')]===undefined?!![]:![]:!![],'where':_0x385919[_0xbd15('0x18')]?_0x385919['options'][_0xbd15('0x22')]||null:null,'attributes':_0x385919[_0xbd15('0x18')]?_0x385919[_0xbd15('0x18')][_0xbd15('0x1a')]||null:null,'include':_0x385919['options']?_0x385919['options']['include']?_[_0xbd15('0x1d')](_0x385919[_0xbd15('0x18')][_0xbd15('0x1c')],function(_0x4d1b16){return{'model':db[_0x4d1b16[_0xbd15('0x1e')]],'as':_0x4d1b16['as'],'attributes':_0x4d1b16[_0xbd15('0x1a')],'include':_0x4d1b16[_0xbd15('0x1c')]?_[_0xbd15('0x1d')](_0x4d1b16[_0xbd15('0x1c')],function(_0x4cb1cb){return{'model':db[_0x4cb1cb[_0xbd15('0x1e')]],'as':_0x4cb1cb['as'],'attributes':_0x4cb1cb[_0xbd15('0x1a')],'include':_0x4cb1cb[_0xbd15('0x1c')]?_[_0xbd15('0x1d')](_0x4cb1cb[_0xbd15('0x1c')],function(_0x14dbf3){return{'model':db[_0x14dbf3[_0xbd15('0x1e')]],'as':_0x14dbf3['as'],'attributes':_0x14dbf3['attributes']};}):[]};}):[]};}):[]:[]})[_0xbd15('0xb')](function(_0x323fd0){logger[_0xbd15('0xc')](_0xbd15('0x20'),_0x385919);logger[_0xbd15('0x1f')](_0xbd15('0x20'),_0x385919,JSON[_0xbd15('0x10')](_0x323fd0));_0xf16c2c(_0x323fd0);})[_0xbd15('0x15')](function(_0x5791c2){logger[_0xbd15('0x11')](_0xbd15('0x20'),_0x5791c2['message'],_0x385919);_0x4019d8(_0x1dfa76['error'](0x1f4,_0x5791c2[_0xbd15('0x13')]));});});};
\ No newline at end of file
+var _0x1592=['ServicenowAccount,\x20%s,\x20%s','debug','request\x20sent','stringify','error','code','message','info','result','GetServicenowAccount','ServicenowAccount','findAll','options','raw','where','attributes','include','map','model','catch','ShowServicenowAccount','find','lodash','util','moment','bluebird','randomstring','ioredis','../../config/logger','rpc','../../config/environment','http','request','then'];(function(_0x8e9386,_0x3cc60f){var _0x4abf26=function(_0x59de5a){while(--_0x59de5a){_0x8e9386['push'](_0x8e9386['shift']());}};_0x4abf26(++_0x3cc60f);}(_0x1592,0x18c));var _0x2159=function(_0x1d406d,_0x5b76e7){_0x1d406d=_0x1d406d-0x0;var _0x3e8f22=_0x1592[_0x1d406d];return _0x3e8f22;};'use strict';var _=require(_0x2159('0x0'));var util=require(_0x2159('0x1'));var moment=require(_0x2159('0x2'));var BPromise=require(_0x2159('0x3'));var rs=require(_0x2159('0x4'));var fs=require('fs');var Redis=require(_0x2159('0x5'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x2159('0x6'))(_0x2159('0x7'));var config=require(_0x2159('0x8'));var jayson=require('jayson/promise');var client=jayson['client'][_0x2159('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x49f193,_0x57759d,_0x25666c){return new BPromise(function(_0x21b441,_0x2b3f93){return client[_0x2159('0xa')](_0x49f193,_0x25666c)[_0x2159('0xb')](function(_0x364ae2){logger['info'](_0x2159('0xc'),_0x57759d,'request\x20sent');logger[_0x2159('0xd')]('ServicenowAccount,\x20%s,\x20%s,\x20%s',_0x57759d,_0x2159('0xe'),JSON[_0x2159('0xf')](_0x364ae2));if(_0x364ae2[_0x2159('0x10')]){if(_0x364ae2['error'][_0x2159('0x11')]===0x1f4){logger['error'](_0x2159('0xc'),_0x57759d,_0x364ae2[_0x2159('0x10')]['message']);return _0x2b3f93(_0x364ae2[_0x2159('0x10')]['message']);}logger[_0x2159('0x10')](_0x2159('0xc'),_0x57759d,_0x364ae2[_0x2159('0x10')]['message']);return _0x21b441(_0x364ae2[_0x2159('0x10')][_0x2159('0x12')]);}else{logger[_0x2159('0x13')](_0x2159('0xc'),_0x57759d,_0x2159('0xe'));_0x21b441(_0x364ae2[_0x2159('0x14')][_0x2159('0x12')]);}})['catch'](function(_0x5e5b3b){logger[_0x2159('0x10')]('ServicenowAccount,\x20%s,\x20%s',_0x57759d,_0x5e5b3b);_0x2b3f93(_0x5e5b3b);});});}exports[_0x2159('0x15')]=function(_0x1d10f8){var _0x1322a7=this;return new Promise(function(_0x310f1c,_0x165cde){return db[_0x2159('0x16')][_0x2159('0x17')]({'raw':_0x1d10f8[_0x2159('0x18')]?_0x1d10f8[_0x2159('0x18')][_0x2159('0x19')]===undefined?!![]:![]:!![],'where':_0x1d10f8[_0x2159('0x18')]?_0x1d10f8[_0x2159('0x18')][_0x2159('0x1a')]||null:null,'attributes':_0x1d10f8[_0x2159('0x18')]?_0x1d10f8[_0x2159('0x18')][_0x2159('0x1b')]||null:null,'limit':_0x1d10f8[_0x2159('0x18')]?_0x1d10f8['options']['limit']||null:null,'include':_0x1d10f8[_0x2159('0x18')]?_0x1d10f8['options'][_0x2159('0x1c')]?_[_0x2159('0x1d')](_0x1d10f8[_0x2159('0x18')][_0x2159('0x1c')],function(_0x1a8597){return{'model':db[_0x1a8597[_0x2159('0x1e')]],'as':_0x1a8597['as'],'attributes':_0x1a8597[_0x2159('0x1b')],'include':_0x1a8597[_0x2159('0x1c')]?_['map'](_0x1a8597[_0x2159('0x1c')],function(_0x2acb6e){return{'model':db[_0x2acb6e[_0x2159('0x1e')]],'as':_0x2acb6e['as'],'attributes':_0x2acb6e['attributes'],'include':_0x2acb6e[_0x2159('0x1c')]?_[_0x2159('0x1d')](_0x2acb6e['include'],function(_0x19da5a){return{'model':db[_0x19da5a['model']],'as':_0x19da5a['as'],'attributes':_0x19da5a[_0x2159('0x1b')]};}):[]};}):[]};}):[]:[]})[_0x2159('0xb')](function(_0x3d0892){logger[_0x2159('0x13')]('GetServicenowAccount',_0x1d10f8);logger[_0x2159('0xd')]('GetServicenowAccount',_0x1d10f8,JSON['stringify'](_0x3d0892));_0x310f1c(_0x3d0892);})[_0x2159('0x1f')](function(_0x576f65){logger['error'](_0x2159('0x15'),_0x576f65['message'],_0x1d10f8);_0x165cde(_0x1322a7[_0x2159('0x10')](0x1f4,_0x576f65[_0x2159('0x12')]));});});};exports[_0x2159('0x20')]=function(_0x4dedde){var _0x1ac78d=this;return new Promise(function(_0xb0fccf,_0x562b89){return db[_0x2159('0x16')][_0x2159('0x21')]({'raw':_0x4dedde[_0x2159('0x18')]?_0x4dedde[_0x2159('0x18')]['raw']===undefined?!![]:![]:!![],'where':_0x4dedde[_0x2159('0x18')]?_0x4dedde['options'][_0x2159('0x1a')]||null:null,'attributes':_0x4dedde[_0x2159('0x18')]?_0x4dedde[_0x2159('0x18')][_0x2159('0x1b')]||null:null,'include':_0x4dedde[_0x2159('0x18')]?_0x4dedde[_0x2159('0x18')][_0x2159('0x1c')]?_[_0x2159('0x1d')](_0x4dedde[_0x2159('0x18')][_0x2159('0x1c')],function(_0x29842d){return{'model':db[_0x29842d['model']],'as':_0x29842d['as'],'attributes':_0x29842d['attributes'],'include':_0x29842d['include']?_[_0x2159('0x1d')](_0x29842d[_0x2159('0x1c')],function(_0x57437d){return{'model':db[_0x57437d['model']],'as':_0x57437d['as'],'attributes':_0x57437d['attributes'],'include':_0x57437d['include']?_[_0x2159('0x1d')](_0x57437d['include'],function(_0x209cee){return{'model':db[_0x209cee[_0x2159('0x1e')]],'as':_0x209cee['as'],'attributes':_0x209cee[_0x2159('0x1b')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x3175d7){logger[_0x2159('0x13')](_0x2159('0x20'),_0x4dedde);logger['debug']('ShowServicenowAccount',_0x4dedde,JSON['stringify'](_0x3175d7));_0xb0fccf(_0x3175d7);})[_0x2159('0x1f')](function(_0x3acf8c){logger[_0x2159('0x10')](_0x2159('0x20'),_0x3acf8c[_0x2159('0x12')],_0x4dedde);_0x562b89(_0x1ac78d['error'](0x1f4,_0x3acf8c[_0x2159('0x12')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x54d7=['multer','util','path','connect-timeout','express','fs-extra','../../components/interaction/service','../../config/environment','./intServicenowConfiguration.controller','get','isAuthenticated','/:id/fields','getSubjects','/:id/descriptions','getDescriptions','post','create','put','update','/:id','exports'];(function(_0x54b39c,_0x41d31b){var _0x4d5d4c=function(_0x1480b9){while(--_0x1480b9){_0x54b39c['push'](_0x54b39c['shift']());}};_0x4d5d4c(++_0x41d31b);}(_0x54d7,0x17a));var _0x754d=function(_0x48d46f,_0x279bad){_0x48d46f=_0x48d46f-0x0;var _0x309bce=_0x54d7[_0x48d46f];return _0x309bce;};'use strict';var multer=require(_0x754d('0x0'));var util=require(_0x754d('0x1'));var path=require(_0x754d('0x2'));var timeout=require(_0x754d('0x3'));var express=require(_0x754d('0x4'));var router=express['Router']();var fs_extra=require(_0x754d('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x754d('0x6'));var config=require(_0x754d('0x7'));var controller=require(_0x754d('0x8'));router[_0x754d('0x9')]('/',auth[_0x754d('0xa')](),controller['index']);router['get']('/:id',auth[_0x754d('0xa')](),controller['show']);router[_0x754d('0x9')](_0x754d('0xb'),auth[_0x754d('0xa')](),controller['getFields']);router['get']('/:id/subjects',auth[_0x754d('0xa')](),controller[_0x754d('0xc')]);router['get'](_0x754d('0xd'),auth[_0x754d('0xa')](),controller[_0x754d('0xe')]);router[_0x754d('0xf')]('/',auth[_0x754d('0xa')](),controller[_0x754d('0x10')]);router[_0x754d('0x11')]('/:id',auth[_0x754d('0xa')](),controller[_0x754d('0x12')]);router['delete'](_0x754d('0x13'),auth[_0x754d('0xa')](),controller['destroy']);module[_0x754d('0x14')]=router;
\ No newline at end of file
+var _0x76ee=['../../components/interaction/service','../../config/environment','./intServicenowConfiguration.controller','get','isAuthenticated','/:id','show','/:id/fields','/:id/subjects','getSubjects','/:id/descriptions','getDescriptions','post','create','update','delete','destroy','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service'];(function(_0xf0bc07,_0x510ebf){var _0x1c50c2=function(_0x2e2bdf){while(--_0x2e2bdf){_0xf0bc07['push'](_0xf0bc07['shift']());}};_0x1c50c2(++_0x510ebf);}(_0x76ee,0x191));var _0xe76e=function(_0xb65c36,_0x57219b){_0xb65c36=_0xb65c36-0x0;var _0x4edc3a=_0x76ee[_0xb65c36];return _0x4edc3a;};'use strict';var multer=require('multer');var util=require(_0xe76e('0x0'));var path=require(_0xe76e('0x1'));var timeout=require(_0xe76e('0x2'));var express=require(_0xe76e('0x3'));var router=express[_0xe76e('0x4')]();var fs_extra=require(_0xe76e('0x5'));var auth=require(_0xe76e('0x6'));var interaction=require(_0xe76e('0x7'));var config=require(_0xe76e('0x8'));var controller=require(_0xe76e('0x9'));router[_0xe76e('0xa')]('/',auth[_0xe76e('0xb')](),controller['index']);router[_0xe76e('0xa')](_0xe76e('0xc'),auth[_0xe76e('0xb')](),controller[_0xe76e('0xd')]);router[_0xe76e('0xa')](_0xe76e('0xe'),auth['isAuthenticated'](),controller['getFields']);router[_0xe76e('0xa')](_0xe76e('0xf'),auth[_0xe76e('0xb')](),controller[_0xe76e('0x10')]);router[_0xe76e('0xa')](_0xe76e('0x11'),auth[_0xe76e('0xb')](),controller[_0xe76e('0x12')]);router[_0xe76e('0x13')]('/',auth[_0xe76e('0xb')](),controller[_0xe76e('0x14')]);router['put'](_0xe76e('0xc'),auth[_0xe76e('0xb')](),controller[_0xe76e('0x15')]);router[_0xe76e('0x16')]('/:id',auth[_0xe76e('0xb')](),controller[_0xe76e('0x17')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe2ac=['STRING','sequelize'];(function(_0x40db41,_0x99d735){var _0x16b759=function(_0x322855){while(--_0x322855){_0x40db41['push'](_0x40db41['shift']());}};_0x16b759(++_0x99d735);}(_0xe2ac,0xf5));var _0xce2a=function(_0x3c4dad,_0x25ffd5){_0x3c4dad=_0x3c4dad-0x0;var _0x1a4f49=_0xe2ac[_0x3c4dad];return _0x1a4f49;};'use strict';var Sequelize=require(_0xce2a('0x0'));module['exports']={'name':{'type':Sequelize[_0xce2a('0x1')]},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0x683b=['STRING','sequelize','exports'];(function(_0x2df580,_0x5f4dad){var _0x4b5186=function(_0x5181bc){while(--_0x5181bc){_0x2df580['push'](_0x2df580['shift']());}};_0x4b5186(++_0x5f4dad);}(_0x683b,0x1de));var _0xb683=function(_0x3c6bc1,_0x40b3c7){_0x3c6bc1=_0x3c6bc1-0x0;var _0x215adf=_0x683b[_0x3c6bc1];return _0x215adf;};'use strict';var Sequelize=require(_0xb683('0x0'));module[_0xb683('0x1')]={'name':{'type':Sequelize[_0xb683('0x2')]},'description':{'type':Sequelize[_0xb683('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa5ad=['../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','limit','undefined','count','offset','apply','reject','save','update','then','destroy','error','stack','name','send','index','ServicenowConfiguration','fieldName','type','model','map','query','keys','filters','intersection','fields','attributes','nolimit','order','sort','pick','filter','where','merge','VIRTUAL','options','include','findAll','rows','catch','show','params','length','find','create','body','getFields','findOne','ServicenowField','rawAttributes','hasOwnProperty','getSubjects','getDescriptions','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis'];(function(_0x2f3848,_0x48564d){var _0x102668=function(_0x5e32ab){while(--_0x5e32ab){_0x2f3848['push'](_0x2f3848['shift']());}};_0x102668(++_0x48564d);}(_0xa5ad,0x1d4));var _0xda5a=function(_0x3a2acb,_0x1eb52d){_0x3a2acb=_0x3a2acb-0x0;var _0x5674ec=_0xa5ad[_0x3a2acb];return _0x5674ec;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xda5a('0x0'));var zipdir=require(_0xda5a('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xda5a('0x2'));var moment=require(_0xda5a('0x3'));var BPromise=require(_0xda5a('0x4'));var Mustache=require(_0xda5a('0x5'));var util=require(_0xda5a('0x6'));var path=require(_0xda5a('0x7'));var sox=require(_0xda5a('0x8'));var csv=require(_0xda5a('0x9'));var ejs=require(_0xda5a('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xda5a('0xb'));var squel=require(_0xda5a('0xc'));var crypto=require(_0xda5a('0xd'));var jsforce=require(_0xda5a('0xe'));var deskjs=require(_0xda5a('0xf'));var toCsv=require(_0xda5a('0x9'));var querystring=require('querystring');var Papa=require(_0xda5a('0x10'));var Redis=require(_0xda5a('0x11'));var authService=require('../../components/auth/service');var qs=require(_0xda5a('0x12'));var as=require(_0xda5a('0x13'));var hardwareService=require(_0xda5a('0x14'));var logger=require(_0xda5a('0x15'))('api');var utils=require(_0xda5a('0x16'));var config=require(_0xda5a('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0xda5a('0x18'))['db'];function respondWithStatusCode(_0x32bf3e,_0x206762){_0x206762=_0x206762||0xcc;return function(_0x335838){if(_0x335838){return _0x32bf3e[_0xda5a('0x19')](_0x206762);}return _0x32bf3e[_0xda5a('0x1a')](_0x206762)[_0xda5a('0x1b')]();};}function respondWithResult(_0x5bac59,_0x216527){_0x216527=_0x216527||0xc8;return function(_0x55095d){if(_0x55095d){return _0x5bac59['status'](_0x216527)[_0xda5a('0x1c')](_0x55095d);}};}function respondWithFilteredResult(_0x153510,_0x4fc3){return function(_0x26b24e){if(_0x26b24e){var _0x1536c4=typeof _0x4fc3['offset']==='undefined'&&typeof _0x4fc3[_0xda5a('0x1d')]===_0xda5a('0x1e');var _0x5be138=_0x26b24e[_0xda5a('0x1f')];var _0x4ff849=_0x1536c4?0x0:_0x4fc3[_0xda5a('0x20')];var _0x31caad=_0x1536c4?_0x26b24e[_0xda5a('0x1f')]:_0x4fc3['offset']+_0x4fc3['limit'];var _0x443866;if(_0x31caad>=_0x5be138){_0x31caad=_0x5be138;_0x443866=0xc8;}else{_0x443866=0xce;}_0x153510[_0xda5a('0x1a')](_0x443866);return _0x153510['set']('Content-Range',_0x4ff849+'-'+_0x31caad+'/'+_0x5be138)[_0xda5a('0x1c')](_0x26b24e);}return null;};}function patchUpdates(_0x5e29f9){return function(_0x4f018e){try{jsonpatch[_0xda5a('0x21')](_0x4f018e,_0x5e29f9,!![]);}catch(_0x885c89){return BPromise[_0xda5a('0x22')](_0x885c89);}return _0x4f018e[_0xda5a('0x23')]();};}function saveUpdates(_0x180de1,_0x3d0fd3){return function(_0x3a7fd8){if(_0x3a7fd8){return _0x3a7fd8[_0xda5a('0x24')](_0x180de1)[_0xda5a('0x25')](function(_0x1af9f4){return _0x1af9f4;});}return null;};}function removeEntity(_0x28294a,_0x447abb){return function(_0x413f70){if(_0x413f70){return _0x413f70[_0xda5a('0x26')]()[_0xda5a('0x25')](function(){_0x28294a['status'](0xcc)[_0xda5a('0x1b')]();});}};}function handleEntityNotFound(_0x5aef34,_0x29b0b3){return function(_0x41663a){if(!_0x41663a){_0x5aef34[_0xda5a('0x19')](0x194);}return _0x41663a;};}function handleError(_0x1081c0,_0xf74644){_0xf74644=_0xf74644||0x1f4;return function(_0x543187){logger[_0xda5a('0x27')](_0x543187[_0xda5a('0x28')]);if(_0x543187[_0xda5a('0x29')]){delete _0x543187[_0xda5a('0x29')];}_0x1081c0['status'](_0xf74644)[_0xda5a('0x2a')](_0x543187);};}exports[_0xda5a('0x2b')]=function(_0x1ca97b,_0x487471){var _0x16447c={},_0xf1c3ae={},_0x146bad={'count':0x0,'rows':[]};var _0x500980=_['map'](db[_0xda5a('0x2c')]['rawAttributes'],function(_0x5af293){return{'name':_0x5af293[_0xda5a('0x2d')],'type':_0x5af293[_0xda5a('0x2e')]['key']};});_0xf1c3ae[_0xda5a('0x2f')]=_[_0xda5a('0x30')](_0x500980,'name');_0xf1c3ae[_0xda5a('0x31')]=_[_0xda5a('0x32')](_0x1ca97b['query']);_0xf1c3ae[_0xda5a('0x33')]=_[_0xda5a('0x34')](_0xf1c3ae[_0xda5a('0x2f')],_0xf1c3ae[_0xda5a('0x31')]);_0x16447c['attributes']=_['intersection'](_0xf1c3ae['model'],qs[_0xda5a('0x35')](_0x1ca97b[_0xda5a('0x31')][_0xda5a('0x35')]));_0x16447c[_0xda5a('0x36')]=_0x16447c['attributes']['length']?_0x16447c[_0xda5a('0x36')]:_0xf1c3ae['model'];if(!_0x1ca97b[_0xda5a('0x31')]['hasOwnProperty'](_0xda5a('0x37'))){_0x16447c['limit']=qs['limit'](_0x1ca97b[_0xda5a('0x31')][_0xda5a('0x1d')]);_0x16447c[_0xda5a('0x20')]=qs[_0xda5a('0x20')](_0x1ca97b[_0xda5a('0x31')][_0xda5a('0x20')]);}_0x16447c[_0xda5a('0x38')]=qs[_0xda5a('0x39')](_0x1ca97b['query']['sort']);_0x16447c['where']=qs[_0xda5a('0x33')](_[_0xda5a('0x3a')](_0x1ca97b['query'],_0xf1c3ae[_0xda5a('0x33')]),_0x500980);if(_0x1ca97b[_0xda5a('0x31')][_0xda5a('0x3b')]){_0x16447c[_0xda5a('0x3c')]=_[_0xda5a('0x3d')](_0x16447c[_0xda5a('0x3c')],{'$or':_[_0xda5a('0x30')](_0x500980,function(_0x12fd94){if(_0x12fd94[_0xda5a('0x2e')]!==_0xda5a('0x3e')){var _0x2ab512={};_0x2ab512[_0x12fd94['name']]={'$like':'%'+_0x1ca97b['query']['filter']+'%'};return _0x2ab512;}})});}_0x16447c=_[_0xda5a('0x3d')]({},_0x16447c,_0x1ca97b[_0xda5a('0x3f')]);var _0x88a0f8={'where':_0x16447c['where']};return db[_0xda5a('0x2c')][_0xda5a('0x1f')](_0x88a0f8)[_0xda5a('0x25')](function(_0x327ff2){_0x146bad[_0xda5a('0x1f')]=_0x327ff2;if(_0x1ca97b['query']['includeAll']){_0x16447c[_0xda5a('0x40')]=[{'all':!![]}];}return db[_0xda5a('0x2c')][_0xda5a('0x41')](_0x16447c);})[_0xda5a('0x25')](function(_0xb779d4){_0x146bad[_0xda5a('0x42')]=_0xb779d4;return _0x146bad;})[_0xda5a('0x25')](respondWithFilteredResult(_0x487471,_0x16447c))[_0xda5a('0x43')](handleError(_0x487471,null));};exports[_0xda5a('0x44')]=function(_0x4b584b,_0x4c84d4){var _0x3f563e={'raw':![],'where':{'id':_0x4b584b[_0xda5a('0x45')]['id']}},_0x1b2a2a={};_0x1b2a2a[_0xda5a('0x2f')]=_[_0xda5a('0x32')](db['ServicenowConfiguration']['rawAttributes']);_0x1b2a2a[_0xda5a('0x31')]=_[_0xda5a('0x32')](_0x4b584b[_0xda5a('0x31')]);_0x1b2a2a['filters']=_['intersection'](_0x1b2a2a[_0xda5a('0x2f')],_0x1b2a2a[_0xda5a('0x31')]);_0x3f563e[_0xda5a('0x36')]=_[_0xda5a('0x34')](_0x1b2a2a['model'],qs[_0xda5a('0x35')](_0x4b584b['query'][_0xda5a('0x35')]));_0x3f563e['attributes']=_0x3f563e[_0xda5a('0x36')][_0xda5a('0x46')]?_0x3f563e['attributes']:_0x1b2a2a['model'];if(_0x4b584b[_0xda5a('0x31')]['includeAll']){_0x3f563e['include']=[{'all':!![]}];}_0x3f563e=_[_0xda5a('0x3d')]({},_0x3f563e,_0x4b584b[_0xda5a('0x3f')]);return db[_0xda5a('0x2c')][_0xda5a('0x47')](_0x3f563e)['then'](handleEntityNotFound(_0x4c84d4,null))[_0xda5a('0x25')](respondWithResult(_0x4c84d4,null))[_0xda5a('0x43')](handleError(_0x4c84d4,null));};exports[_0xda5a('0x48')]=function(_0x17dc04,_0x556b0b){return db[_0xda5a('0x2c')][_0xda5a('0x48')](_0x17dc04[_0xda5a('0x49')],{})[_0xda5a('0x25')](respondWithResult(_0x556b0b,0xc9))[_0xda5a('0x43')](handleError(_0x556b0b,null));};exports['update']=function(_0x4c8741,_0x24f27d){if(_0x4c8741[_0xda5a('0x49')]['id']){delete _0x4c8741[_0xda5a('0x49')]['id'];}return db[_0xda5a('0x2c')][_0xda5a('0x47')]({'where':{'id':_0x4c8741[_0xda5a('0x45')]['id']}})[_0xda5a('0x25')](handleEntityNotFound(_0x24f27d,null))[_0xda5a('0x25')](saveUpdates(_0x4c8741[_0xda5a('0x49')],null))[_0xda5a('0x25')](respondWithResult(_0x24f27d,null))[_0xda5a('0x43')](handleError(_0x24f27d,null));};exports[_0xda5a('0x26')]=function(_0x2221a8,_0x108bba){return db[_0xda5a('0x2c')][_0xda5a('0x47')]({'where':{'id':_0x2221a8[_0xda5a('0x45')]['id']}})[_0xda5a('0x25')](handleEntityNotFound(_0x108bba,null))['then'](removeEntity(_0x108bba,null))[_0xda5a('0x43')](handleError(_0x108bba,null));};exports[_0xda5a('0x4a')]=function(_0x274689,_0x15a320,_0x2adeb7){var _0x26d3da={};var _0xc170be={};var _0x5e1252;var _0x1b493f;return db[_0xda5a('0x2c')][_0xda5a('0x4b')]({'where':{'id':_0x274689[_0xda5a('0x45')]['id']}})[_0xda5a('0x25')](handleEntityNotFound(_0x15a320,null))['then'](function(_0x10a34e){if(_0x10a34e){_0x5e1252=_0x10a34e;_0xc170be[_0xda5a('0x2f')]=_[_0xda5a('0x32')](db[_0xda5a('0x4c')][_0xda5a('0x4d')]);_0xc170be[_0xda5a('0x31')]=_[_0xda5a('0x32')](_0x274689[_0xda5a('0x31')]);_0xc170be[_0xda5a('0x33')]=_[_0xda5a('0x34')](_0xc170be[_0xda5a('0x2f')],_0xc170be[_0xda5a('0x31')]);_0x26d3da[_0xda5a('0x36')]=_[_0xda5a('0x34')](_0xc170be[_0xda5a('0x2f')],qs[_0xda5a('0x35')](_0x274689[_0xda5a('0x31')]['fields']));_0x26d3da[_0xda5a('0x36')]=_0x26d3da[_0xda5a('0x36')][_0xda5a('0x46')]?_0x26d3da[_0xda5a('0x36')]:_0xc170be[_0xda5a('0x2f')];_0x26d3da[_0xda5a('0x38')]=qs['sort'](_0x274689['query'][_0xda5a('0x39')]);_0x26d3da['where']=qs['filters'](_[_0xda5a('0x3a')](_0x274689[_0xda5a('0x31')],_0xc170be[_0xda5a('0x33')]));if(_0x274689[_0xda5a('0x31')]['filter']){_0x26d3da['where']=_[_0xda5a('0x3d')](_0x26d3da[_0xda5a('0x3c')],{'$or':_[_0xda5a('0x30')](_0x26d3da[_0xda5a('0x36')],function(_0x571069){var _0x25e552={};_0x25e552[_0x571069]={'$like':'%'+_0x274689[_0xda5a('0x31')]['filter']+'%'};return _0x25e552;})});}_0x26d3da=_['merge']({},_0x26d3da,_0x274689[_0xda5a('0x3f')]);return _0x5e1252[_0xda5a('0x4a')](_0x26d3da);}})[_0xda5a('0x25')](function(_0x13fb03){if(_0x13fb03){_0x1b493f=_0x13fb03[_0xda5a('0x46')];if(!_0x274689[_0xda5a('0x31')][_0xda5a('0x4e')](_0xda5a('0x37'))){_0x26d3da[_0xda5a('0x1d')]=qs[_0xda5a('0x1d')](_0x274689['query'][_0xda5a('0x1d')]);_0x26d3da[_0xda5a('0x20')]=qs[_0xda5a('0x20')](_0x274689[_0xda5a('0x31')][_0xda5a('0x20')]);}return _0x5e1252[_0xda5a('0x4a')](_0x26d3da);}})[_0xda5a('0x25')](function(_0x568318){if(_0x568318){return _0x568318?{'count':_0x1b493f,'rows':_0x568318}:null;}})['then'](respondWithResult(_0x15a320,null))[_0xda5a('0x43')](handleError(_0x15a320,null));};exports['getSubjects']=function(_0x1974bd,_0x34fee1,_0x2f57c5){var _0x2d0872={};var _0x1f4df2={};var _0x4b35f2;var _0x199ddb;return db[_0xda5a('0x2c')][_0xda5a('0x4b')]({'where':{'id':_0x1974bd['params']['id']}})[_0xda5a('0x25')](handleEntityNotFound(_0x34fee1,null))[_0xda5a('0x25')](function(_0x22a665){if(_0x22a665){_0x4b35f2=_0x22a665;_0x1f4df2[_0xda5a('0x2f')]=_['keys'](db[_0xda5a('0x4c')][_0xda5a('0x4d')]);_0x1f4df2[_0xda5a('0x31')]=_['keys'](_0x1974bd['query']);_0x1f4df2['filters']=_[_0xda5a('0x34')](_0x1f4df2[_0xda5a('0x2f')],_0x1f4df2[_0xda5a('0x31')]);_0x2d0872[_0xda5a('0x36')]=_[_0xda5a('0x34')](_0x1f4df2[_0xda5a('0x2f')],qs['fields'](_0x1974bd['query'][_0xda5a('0x35')]));_0x2d0872['attributes']=_0x2d0872[_0xda5a('0x36')]['length']?_0x2d0872[_0xda5a('0x36')]:_0x1f4df2['model'];_0x2d0872['order']=qs[_0xda5a('0x39')](_0x1974bd[_0xda5a('0x31')][_0xda5a('0x39')]);_0x2d0872[_0xda5a('0x3c')]=qs[_0xda5a('0x33')](_['pick'](_0x1974bd['query'],_0x1f4df2[_0xda5a('0x33')]));if(_0x1974bd[_0xda5a('0x31')][_0xda5a('0x3b')]){_0x2d0872[_0xda5a('0x3c')]=_[_0xda5a('0x3d')](_0x2d0872[_0xda5a('0x3c')],{'$or':_['map'](_0x2d0872['attributes'],function(_0x1f3289){var _0x2d08fa={};_0x2d08fa[_0x1f3289]={'$like':'%'+_0x1974bd[_0xda5a('0x31')]['filter']+'%'};return _0x2d08fa;})});}_0x2d0872=_[_0xda5a('0x3d')]({},_0x2d0872,_0x1974bd[_0xda5a('0x3f')]);return _0x4b35f2[_0xda5a('0x4f')](_0x2d0872);}})[_0xda5a('0x25')](function(_0x29d8db){if(_0x29d8db){_0x199ddb=_0x29d8db[_0xda5a('0x46')];if(!_0x1974bd['query'][_0xda5a('0x4e')](_0xda5a('0x37'))){_0x2d0872[_0xda5a('0x1d')]=qs[_0xda5a('0x1d')](_0x1974bd['query']['limit']);_0x2d0872['offset']=qs[_0xda5a('0x20')](_0x1974bd['query']['offset']);}return _0x4b35f2[_0xda5a('0x4f')](_0x2d0872);}})[_0xda5a('0x25')](function(_0x932932){if(_0x932932){return _0x932932?{'count':_0x199ddb,'rows':_0x932932}:null;}})[_0xda5a('0x25')](respondWithResult(_0x34fee1,null))[_0xda5a('0x43')](handleError(_0x34fee1,null));};exports[_0xda5a('0x50')]=function(_0x5b31b6,_0x39260d,_0x2daacc){var _0x4f82d2={};var _0x3724db={};var _0x6c72f5;var _0x23467a;return db[_0xda5a('0x2c')][_0xda5a('0x4b')]({'where':{'id':_0x5b31b6[_0xda5a('0x45')]['id']}})[_0xda5a('0x25')](handleEntityNotFound(_0x39260d,null))[_0xda5a('0x25')](function(_0xc09f3e){if(_0xc09f3e){_0x6c72f5=_0xc09f3e;_0x3724db[_0xda5a('0x2f')]=_['keys'](db[_0xda5a('0x4c')][_0xda5a('0x4d')]);_0x3724db[_0xda5a('0x31')]=_[_0xda5a('0x32')](_0x5b31b6['query']);_0x3724db['filters']=_[_0xda5a('0x34')](_0x3724db[_0xda5a('0x2f')],_0x3724db[_0xda5a('0x31')]);_0x4f82d2[_0xda5a('0x36')]=_[_0xda5a('0x34')](_0x3724db[_0xda5a('0x2f')],qs[_0xda5a('0x35')](_0x5b31b6['query']['fields']));_0x4f82d2[_0xda5a('0x36')]=_0x4f82d2['attributes'][_0xda5a('0x46')]?_0x4f82d2[_0xda5a('0x36')]:_0x3724db[_0xda5a('0x2f')];_0x4f82d2[_0xda5a('0x38')]=qs[_0xda5a('0x39')](_0x5b31b6[_0xda5a('0x31')][_0xda5a('0x39')]);_0x4f82d2[_0xda5a('0x3c')]=qs[_0xda5a('0x33')](_['pick'](_0x5b31b6[_0xda5a('0x31')],_0x3724db[_0xda5a('0x33')]));if(_0x5b31b6[_0xda5a('0x31')]['filter']){_0x4f82d2[_0xda5a('0x3c')]=_[_0xda5a('0x3d')](_0x4f82d2[_0xda5a('0x3c')],{'$or':_[_0xda5a('0x30')](_0x4f82d2[_0xda5a('0x36')],function(_0x297743){var _0x4ded92={};_0x4ded92[_0x297743]={'$like':'%'+_0x5b31b6['query'][_0xda5a('0x3b')]+'%'};return _0x4ded92;})});}_0x4f82d2=_[_0xda5a('0x3d')]({},_0x4f82d2,_0x5b31b6[_0xda5a('0x3f')]);return _0x6c72f5[_0xda5a('0x50')](_0x4f82d2);}})[_0xda5a('0x25')](function(_0x4e31db){if(_0x4e31db){_0x23467a=_0x4e31db[_0xda5a('0x46')];if(!_0x5b31b6[_0xda5a('0x31')][_0xda5a('0x4e')](_0xda5a('0x37'))){_0x4f82d2[_0xda5a('0x1d')]=qs[_0xda5a('0x1d')](_0x5b31b6[_0xda5a('0x31')]['limit']);_0x4f82d2[_0xda5a('0x20')]=qs['offset'](_0x5b31b6['query'][_0xda5a('0x20')]);}return _0x6c72f5['getDescriptions'](_0x4f82d2);}})[_0xda5a('0x25')](function(_0x832b84){if(_0x832b84){return _0x832b84?{'count':_0x23467a,'rows':_0x832b84}:null;}})[_0xda5a('0x25')](respondWithResult(_0x39260d,null))[_0xda5a('0x43')](handleError(_0x39260d,null));};
\ No newline at end of file
+var _0xb6a9=['body','find','findOne','getFields','getSubjects','ServicenowField','getDescriptions','eml-format','rimraf','fast-json-patch','request-promise','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../mysqldb','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','end','stack','name','send','index','map','ServicenowConfiguration','rawAttributes','type','key','query','keys','filters','intersection','attributes','model','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','show','params','catch','create'];(function(_0x140a03,_0x5cf435){var _0x4aa378=function(_0x885aa3){while(--_0x885aa3){_0x140a03['push'](_0x140a03['shift']());}};_0x4aa378(++_0x5cf435);}(_0xb6a9,0xf4));var _0x9b6a=function(_0x3c4737,_0x2329ec){_0x3c4737=_0x3c4737-0x0;var _0x2bb926=_0xb6a9[_0x3c4737];return _0x2bb926;};'use strict';var emlformat=require(_0x9b6a('0x0'));var rimraf=require(_0x9b6a('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x9b6a('0x2'));var rp=require(_0x9b6a('0x3'));var moment=require('moment');var BPromise=require(_0x9b6a('0x4'));var Mustache=require(_0x9b6a('0x5'));var util=require(_0x9b6a('0x6'));var path=require(_0x9b6a('0x7'));var sox=require('sox');var csv=require(_0x9b6a('0x8'));var ejs=require(_0x9b6a('0x9'));var fs=require('fs');var fs_extra=require(_0x9b6a('0xa'));var _=require(_0x9b6a('0xb'));var squel=require(_0x9b6a('0xc'));var crypto=require(_0x9b6a('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x9b6a('0xe'));var toCsv=require(_0x9b6a('0x8'));var querystring=require(_0x9b6a('0xf'));var Papa=require(_0x9b6a('0x10'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x9b6a('0x11'));var as=require(_0x9b6a('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x9b6a('0x13'))(_0x9b6a('0x14'));var utils=require(_0x9b6a('0x15'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x9b6a('0x16'))['db'];function respondWithStatusCode(_0x4326aa,_0x51b12d){_0x51b12d=_0x51b12d||0xcc;return function(_0x4e0f38){if(_0x4e0f38){return _0x4326aa[_0x9b6a('0x17')](_0x51b12d);}return _0x4326aa[_0x9b6a('0x18')](_0x51b12d)['end']();};}function respondWithResult(_0x494a32,_0x2075b7){_0x2075b7=_0x2075b7||0xc8;return function(_0xed60e7){if(_0xed60e7){return _0x494a32[_0x9b6a('0x18')](_0x2075b7)[_0x9b6a('0x19')](_0xed60e7);}};}function respondWithFilteredResult(_0x2bfae4,_0x4c45c4){return function(_0x4e4066){if(_0x4e4066){var _0x479b2b=typeof _0x4c45c4[_0x9b6a('0x1a')]===_0x9b6a('0x1b')&&typeof _0x4c45c4[_0x9b6a('0x1c')]===_0x9b6a('0x1b');var _0x2ee185=_0x4e4066[_0x9b6a('0x1d')];var _0x35c28c=_0x479b2b?0x0:_0x4c45c4[_0x9b6a('0x1a')];var _0x71435b=_0x479b2b?_0x4e4066['count']:_0x4c45c4[_0x9b6a('0x1a')]+_0x4c45c4['limit'];var _0x4db42d;if(_0x71435b>=_0x2ee185){_0x71435b=_0x2ee185;_0x4db42d=0xc8;}else{_0x4db42d=0xce;}_0x2bfae4[_0x9b6a('0x18')](_0x4db42d);return _0x2bfae4[_0x9b6a('0x1e')](_0x9b6a('0x1f'),_0x35c28c+'-'+_0x71435b+'/'+_0x2ee185)[_0x9b6a('0x19')](_0x4e4066);}return null;};}function patchUpdates(_0x4cc64d){return function(_0x2adecb){try{jsonpatch[_0x9b6a('0x20')](_0x2adecb,_0x4cc64d,!![]);}catch(_0xebdcd4){return BPromise[_0x9b6a('0x21')](_0xebdcd4);}return _0x2adecb[_0x9b6a('0x22')]();};}function saveUpdates(_0x136d9e,_0x4ebbfe){return function(_0x336758){if(_0x336758){return _0x336758[_0x9b6a('0x23')](_0x136d9e)[_0x9b6a('0x24')](function(_0x144c6f){return _0x144c6f;});}return null;};}function removeEntity(_0x37e832,_0x34ca6c){return function(_0x275f3e){if(_0x275f3e){return _0x275f3e['destroy']()['then'](function(){_0x37e832['status'](0xcc)[_0x9b6a('0x25')]();});}};}function handleEntityNotFound(_0x14b646,_0x3ceff8){return function(_0x2bdb74){if(!_0x2bdb74){_0x14b646[_0x9b6a('0x17')](0x194);}return _0x2bdb74;};}function handleError(_0x35fb3d,_0x431e11){_0x431e11=_0x431e11||0x1f4;return function(_0x42b269){logger['error'](_0x42b269[_0x9b6a('0x26')]);if(_0x42b269[_0x9b6a('0x27')]){delete _0x42b269['name'];}_0x35fb3d[_0x9b6a('0x18')](_0x431e11)[_0x9b6a('0x28')](_0x42b269);};}exports[_0x9b6a('0x29')]=function(_0x2be696,_0x509368){var _0x434bc3={},_0x37f6d9={},_0x48dad1={'count':0x0,'rows':[]};var _0x257eb9=_[_0x9b6a('0x2a')](db[_0x9b6a('0x2b')][_0x9b6a('0x2c')],function(_0x21dd1c){return{'name':_0x21dd1c['fieldName'],'type':_0x21dd1c[_0x9b6a('0x2d')][_0x9b6a('0x2e')]};});_0x37f6d9['model']=_[_0x9b6a('0x2a')](_0x257eb9,_0x9b6a('0x27'));_0x37f6d9[_0x9b6a('0x2f')]=_[_0x9b6a('0x30')](_0x2be696[_0x9b6a('0x2f')]);_0x37f6d9[_0x9b6a('0x31')]=_[_0x9b6a('0x32')](_0x37f6d9['model'],_0x37f6d9[_0x9b6a('0x2f')]);_0x434bc3[_0x9b6a('0x33')]=_[_0x9b6a('0x32')](_0x37f6d9[_0x9b6a('0x34')],qs[_0x9b6a('0x35')](_0x2be696[_0x9b6a('0x2f')][_0x9b6a('0x35')]));_0x434bc3[_0x9b6a('0x33')]=_0x434bc3[_0x9b6a('0x33')][_0x9b6a('0x36')]?_0x434bc3[_0x9b6a('0x33')]:_0x37f6d9[_0x9b6a('0x34')];if(!_0x2be696[_0x9b6a('0x2f')][_0x9b6a('0x37')](_0x9b6a('0x38'))){_0x434bc3['limit']=qs[_0x9b6a('0x1c')](_0x2be696[_0x9b6a('0x2f')]['limit']);_0x434bc3[_0x9b6a('0x1a')]=qs[_0x9b6a('0x1a')](_0x2be696[_0x9b6a('0x2f')][_0x9b6a('0x1a')]);}_0x434bc3[_0x9b6a('0x39')]=qs['sort'](_0x2be696[_0x9b6a('0x2f')][_0x9b6a('0x3a')]);_0x434bc3[_0x9b6a('0x3b')]=qs[_0x9b6a('0x31')](_[_0x9b6a('0x3c')](_0x2be696[_0x9b6a('0x2f')],_0x37f6d9['filters']),_0x257eb9);if(_0x2be696[_0x9b6a('0x2f')][_0x9b6a('0x3d')]){_0x434bc3['where']=_[_0x9b6a('0x3e')](_0x434bc3[_0x9b6a('0x3b')],{'$or':_[_0x9b6a('0x2a')](_0x257eb9,function(_0x5ad6ec){if(_0x5ad6ec[_0x9b6a('0x2d')]!==_0x9b6a('0x3f')){var _0x4154c3={};_0x4154c3[_0x5ad6ec[_0x9b6a('0x27')]]={'$like':'%'+_0x2be696['query'][_0x9b6a('0x3d')]+'%'};return _0x4154c3;}})});}_0x434bc3=_[_0x9b6a('0x3e')]({},_0x434bc3,_0x2be696[_0x9b6a('0x40')]);var _0xb5467e={'where':_0x434bc3[_0x9b6a('0x3b')]};return db[_0x9b6a('0x2b')][_0x9b6a('0x1d')](_0xb5467e)['then'](function(_0x7d7e30){_0x48dad1[_0x9b6a('0x1d')]=_0x7d7e30;if(_0x2be696[_0x9b6a('0x2f')][_0x9b6a('0x41')]){_0x434bc3[_0x9b6a('0x42')]=[{'all':!![]}];}return db[_0x9b6a('0x2b')][_0x9b6a('0x43')](_0x434bc3);})['then'](function(_0x69b1ea){_0x48dad1['rows']=_0x69b1ea;return _0x48dad1;})[_0x9b6a('0x24')](respondWithFilteredResult(_0x509368,_0x434bc3))['catch'](handleError(_0x509368,null));};exports[_0x9b6a('0x44')]=function(_0x439de6,_0x18599c){var _0x6c79bd={'raw':![],'where':{'id':_0x439de6[_0x9b6a('0x45')]['id']}},_0x325e64={};_0x325e64[_0x9b6a('0x34')]=_[_0x9b6a('0x30')](db['ServicenowConfiguration'][_0x9b6a('0x2c')]);_0x325e64['query']=_[_0x9b6a('0x30')](_0x439de6['query']);_0x325e64[_0x9b6a('0x31')]=_[_0x9b6a('0x32')](_0x325e64['model'],_0x325e64[_0x9b6a('0x2f')]);_0x6c79bd[_0x9b6a('0x33')]=_[_0x9b6a('0x32')](_0x325e64[_0x9b6a('0x34')],qs[_0x9b6a('0x35')](_0x439de6['query'][_0x9b6a('0x35')]));_0x6c79bd[_0x9b6a('0x33')]=_0x6c79bd[_0x9b6a('0x33')][_0x9b6a('0x36')]?_0x6c79bd['attributes']:_0x325e64[_0x9b6a('0x34')];if(_0x439de6[_0x9b6a('0x2f')][_0x9b6a('0x41')]){_0x6c79bd[_0x9b6a('0x42')]=[{'all':!![]}];}_0x6c79bd=_[_0x9b6a('0x3e')]({},_0x6c79bd,_0x439de6[_0x9b6a('0x40')]);return db['ServicenowConfiguration']['find'](_0x6c79bd)[_0x9b6a('0x24')](handleEntityNotFound(_0x18599c,null))['then'](respondWithResult(_0x18599c,null))[_0x9b6a('0x46')](handleError(_0x18599c,null));};exports[_0x9b6a('0x47')]=function(_0xdcd3c5,_0x435c6c){return db[_0x9b6a('0x2b')][_0x9b6a('0x47')](_0xdcd3c5[_0x9b6a('0x48')],{})[_0x9b6a('0x24')](respondWithResult(_0x435c6c,0xc9))[_0x9b6a('0x46')](handleError(_0x435c6c,null));};exports[_0x9b6a('0x23')]=function(_0x4a23bf,_0x3aa6ef){if(_0x4a23bf[_0x9b6a('0x48')]['id']){delete _0x4a23bf[_0x9b6a('0x48')]['id'];}return db[_0x9b6a('0x2b')][_0x9b6a('0x49')]({'where':{'id':_0x4a23bf['params']['id']}})['then'](handleEntityNotFound(_0x3aa6ef,null))[_0x9b6a('0x24')](saveUpdates(_0x4a23bf[_0x9b6a('0x48')],null))['then'](respondWithResult(_0x3aa6ef,null))['catch'](handleError(_0x3aa6ef,null));};exports['destroy']=function(_0x84aedd,_0x3870e7){return db[_0x9b6a('0x2b')]['find']({'where':{'id':_0x84aedd['params']['id']}})['then'](handleEntityNotFound(_0x3870e7,null))[_0x9b6a('0x24')](removeEntity(_0x3870e7,null))[_0x9b6a('0x46')](handleError(_0x3870e7,null));};exports['getFields']=function(_0x42e862,_0x500b3e,_0x3f0c77){var _0x41bb3e={};var _0x6e32fa={};var _0x27d0ef;var _0x5840be;return db[_0x9b6a('0x2b')][_0x9b6a('0x4a')]({'where':{'id':_0x42e862[_0x9b6a('0x45')]['id']}})[_0x9b6a('0x24')](handleEntityNotFound(_0x500b3e,null))[_0x9b6a('0x24')](function(_0x459d92){if(_0x459d92){_0x27d0ef=_0x459d92;_0x6e32fa[_0x9b6a('0x34')]=_[_0x9b6a('0x30')](db['ServicenowField'][_0x9b6a('0x2c')]);_0x6e32fa[_0x9b6a('0x2f')]=_['keys'](_0x42e862[_0x9b6a('0x2f')]);_0x6e32fa['filters']=_[_0x9b6a('0x32')](_0x6e32fa[_0x9b6a('0x34')],_0x6e32fa[_0x9b6a('0x2f')]);_0x41bb3e[_0x9b6a('0x33')]=_[_0x9b6a('0x32')](_0x6e32fa['model'],qs[_0x9b6a('0x35')](_0x42e862[_0x9b6a('0x2f')][_0x9b6a('0x35')]));_0x41bb3e[_0x9b6a('0x33')]=_0x41bb3e[_0x9b6a('0x33')][_0x9b6a('0x36')]?_0x41bb3e[_0x9b6a('0x33')]:_0x6e32fa[_0x9b6a('0x34')];_0x41bb3e['order']=qs[_0x9b6a('0x3a')](_0x42e862[_0x9b6a('0x2f')][_0x9b6a('0x3a')]);_0x41bb3e[_0x9b6a('0x3b')]=qs[_0x9b6a('0x31')](_[_0x9b6a('0x3c')](_0x42e862[_0x9b6a('0x2f')],_0x6e32fa[_0x9b6a('0x31')]));if(_0x42e862[_0x9b6a('0x2f')]['filter']){_0x41bb3e[_0x9b6a('0x3b')]=_[_0x9b6a('0x3e')](_0x41bb3e[_0x9b6a('0x3b')],{'$or':_[_0x9b6a('0x2a')](_0x41bb3e[_0x9b6a('0x33')],function(_0xbf4f7c){var _0x1685eb={};_0x1685eb[_0xbf4f7c]={'$like':'%'+_0x42e862['query'][_0x9b6a('0x3d')]+'%'};return _0x1685eb;})});}_0x41bb3e=_['merge']({},_0x41bb3e,_0x42e862[_0x9b6a('0x40')]);return _0x27d0ef['getFields'](_0x41bb3e);}})[_0x9b6a('0x24')](function(_0xd0b0da){if(_0xd0b0da){_0x5840be=_0xd0b0da['length'];if(!_0x42e862[_0x9b6a('0x2f')][_0x9b6a('0x37')](_0x9b6a('0x38'))){_0x41bb3e['limit']=qs[_0x9b6a('0x1c')](_0x42e862['query']['limit']);_0x41bb3e[_0x9b6a('0x1a')]=qs[_0x9b6a('0x1a')](_0x42e862[_0x9b6a('0x2f')]['offset']);}return _0x27d0ef[_0x9b6a('0x4b')](_0x41bb3e);}})['then'](function(_0x13c901){if(_0x13c901){return _0x13c901?{'count':_0x5840be,'rows':_0x13c901}:null;}})[_0x9b6a('0x24')](respondWithResult(_0x500b3e,null))[_0x9b6a('0x46')](handleError(_0x500b3e,null));};exports[_0x9b6a('0x4c')]=function(_0x205fbe,_0x5eeee4,_0x4b61d6){var _0x4c5d9c={};var _0x15cc9a={};var _0x996188;var _0x1a5177;return db[_0x9b6a('0x2b')][_0x9b6a('0x4a')]({'where':{'id':_0x205fbe[_0x9b6a('0x45')]['id']}})[_0x9b6a('0x24')](handleEntityNotFound(_0x5eeee4,null))[_0x9b6a('0x24')](function(_0x5baf95){if(_0x5baf95){_0x996188=_0x5baf95;_0x15cc9a[_0x9b6a('0x34')]=_[_0x9b6a('0x30')](db[_0x9b6a('0x4d')][_0x9b6a('0x2c')]);_0x15cc9a[_0x9b6a('0x2f')]=_[_0x9b6a('0x30')](_0x205fbe['query']);_0x15cc9a[_0x9b6a('0x31')]=_[_0x9b6a('0x32')](_0x15cc9a['model'],_0x15cc9a[_0x9b6a('0x2f')]);_0x4c5d9c[_0x9b6a('0x33')]=_[_0x9b6a('0x32')](_0x15cc9a['model'],qs[_0x9b6a('0x35')](_0x205fbe[_0x9b6a('0x2f')][_0x9b6a('0x35')]));_0x4c5d9c['attributes']=_0x4c5d9c[_0x9b6a('0x33')][_0x9b6a('0x36')]?_0x4c5d9c[_0x9b6a('0x33')]:_0x15cc9a[_0x9b6a('0x34')];_0x4c5d9c[_0x9b6a('0x39')]=qs[_0x9b6a('0x3a')](_0x205fbe['query'][_0x9b6a('0x3a')]);_0x4c5d9c[_0x9b6a('0x3b')]=qs[_0x9b6a('0x31')](_[_0x9b6a('0x3c')](_0x205fbe[_0x9b6a('0x2f')],_0x15cc9a[_0x9b6a('0x31')]));if(_0x205fbe['query'][_0x9b6a('0x3d')]){_0x4c5d9c[_0x9b6a('0x3b')]=_[_0x9b6a('0x3e')](_0x4c5d9c[_0x9b6a('0x3b')],{'$or':_[_0x9b6a('0x2a')](_0x4c5d9c[_0x9b6a('0x33')],function(_0x405098){var _0xd1b354={};_0xd1b354[_0x405098]={'$like':'%'+_0x205fbe[_0x9b6a('0x2f')][_0x9b6a('0x3d')]+'%'};return _0xd1b354;})});}_0x4c5d9c=_['merge']({},_0x4c5d9c,_0x205fbe[_0x9b6a('0x40')]);return _0x996188[_0x9b6a('0x4c')](_0x4c5d9c);}})[_0x9b6a('0x24')](function(_0x4cfc14){if(_0x4cfc14){_0x1a5177=_0x4cfc14[_0x9b6a('0x36')];if(!_0x205fbe[_0x9b6a('0x2f')]['hasOwnProperty'](_0x9b6a('0x38'))){_0x4c5d9c[_0x9b6a('0x1c')]=qs['limit'](_0x205fbe['query'][_0x9b6a('0x1c')]);_0x4c5d9c[_0x9b6a('0x1a')]=qs[_0x9b6a('0x1a')](_0x205fbe[_0x9b6a('0x2f')]['offset']);}return _0x996188['getSubjects'](_0x4c5d9c);}})[_0x9b6a('0x24')](function(_0x1bda74){if(_0x1bda74){return _0x1bda74?{'count':_0x1a5177,'rows':_0x1bda74}:null;}})[_0x9b6a('0x24')](respondWithResult(_0x5eeee4,null))[_0x9b6a('0x46')](handleError(_0x5eeee4,null));};exports[_0x9b6a('0x4e')]=function(_0x560000,_0x3a37b3,_0x43f6c4){var _0x2f0c7b={};var _0x362dcb={};var _0x55f884;var _0x31a4ee;return db[_0x9b6a('0x2b')][_0x9b6a('0x4a')]({'where':{'id':_0x560000[_0x9b6a('0x45')]['id']}})[_0x9b6a('0x24')](handleEntityNotFound(_0x3a37b3,null))[_0x9b6a('0x24')](function(_0x333128){if(_0x333128){_0x55f884=_0x333128;_0x362dcb[_0x9b6a('0x34')]=_[_0x9b6a('0x30')](db['ServicenowField']['rawAttributes']);_0x362dcb[_0x9b6a('0x2f')]=_[_0x9b6a('0x30')](_0x560000[_0x9b6a('0x2f')]);_0x362dcb[_0x9b6a('0x31')]=_[_0x9b6a('0x32')](_0x362dcb[_0x9b6a('0x34')],_0x362dcb[_0x9b6a('0x2f')]);_0x2f0c7b['attributes']=_['intersection'](_0x362dcb[_0x9b6a('0x34')],qs['fields'](_0x560000[_0x9b6a('0x2f')]['fields']));_0x2f0c7b[_0x9b6a('0x33')]=_0x2f0c7b[_0x9b6a('0x33')][_0x9b6a('0x36')]?_0x2f0c7b[_0x9b6a('0x33')]:_0x362dcb[_0x9b6a('0x34')];_0x2f0c7b[_0x9b6a('0x39')]=qs[_0x9b6a('0x3a')](_0x560000[_0x9b6a('0x2f')][_0x9b6a('0x3a')]);_0x2f0c7b['where']=qs[_0x9b6a('0x31')](_[_0x9b6a('0x3c')](_0x560000['query'],_0x362dcb[_0x9b6a('0x31')]));if(_0x560000[_0x9b6a('0x2f')][_0x9b6a('0x3d')]){_0x2f0c7b[_0x9b6a('0x3b')]=_[_0x9b6a('0x3e')](_0x2f0c7b[_0x9b6a('0x3b')],{'$or':_[_0x9b6a('0x2a')](_0x2f0c7b[_0x9b6a('0x33')],function(_0x1cabfa){var _0x4393e0={};_0x4393e0[_0x1cabfa]={'$like':'%'+_0x560000[_0x9b6a('0x2f')]['filter']+'%'};return _0x4393e0;})});}_0x2f0c7b=_[_0x9b6a('0x3e')]({},_0x2f0c7b,_0x560000[_0x9b6a('0x40')]);return _0x55f884[_0x9b6a('0x4e')](_0x2f0c7b);}})[_0x9b6a('0x24')](function(_0x40ed8b){if(_0x40ed8b){_0x31a4ee=_0x40ed8b[_0x9b6a('0x36')];if(!_0x560000[_0x9b6a('0x2f')]['hasOwnProperty'](_0x9b6a('0x38'))){_0x2f0c7b['limit']=qs[_0x9b6a('0x1c')](_0x560000[_0x9b6a('0x2f')][_0x9b6a('0x1c')]);_0x2f0c7b[_0x9b6a('0x1a')]=qs[_0x9b6a('0x1a')](_0x560000[_0x9b6a('0x2f')][_0x9b6a('0x1a')]);}return _0x55f884[_0x9b6a('0x4e')](_0x2f0c7b);}})[_0x9b6a('0x24')](function(_0x495c0c){if(_0x495c0c){return _0x495c0c?{'count':_0x31a4ee,'rows':_0x495c0c}:null;}})[_0x9b6a('0x24')](respondWithResult(_0x3a37b3,null))[_0x9b6a('0x46')](handleError(_0x3a37b3,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8769=['ServicenowConfiguration','int_servicenow_configurations','lodash','util','api','bluebird','request-promise','../../config/environment','./intServicenowConfiguration.attributes'];(function(_0x3124b1,_0x3cfb61){var _0x3a6652=function(_0x15e557){while(--_0x15e557){_0x3124b1['push'](_0x3124b1['shift']());}};_0x3a6652(++_0x3cfb61);}(_0x8769,0x110));var _0x9876=function(_0x2c7618,_0x26be9c){_0x2c7618=_0x2c7618-0x0;var _0x5ce3f0=_0x8769[_0x2c7618];return _0x5ce3f0;};'use strict';var _=require(_0x9876('0x0'));var util=require(_0x9876('0x1'));var logger=require('../../config/logger')(_0x9876('0x2'));var moment=require('moment');var BPromise=require(_0x9876('0x3'));var rp=require(_0x9876('0x4'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0x9876('0x5'));var attributes=require(_0x9876('0x6'));module['exports']=function(_0x179357,_0x5a4149){return _0x179357['define'](_0x9876('0x7'),attributes,{'tableName':_0x9876('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xc2af=['../../config/environment','./intServicenowConfiguration.attributes','exports','ServicenowConfiguration','lodash','../../config/logger','moment','bluebird','request-promise','path','rimraf'];(function(_0x32c63d,_0x4fe648){var _0x55da14=function(_0x35fefd){while(--_0x35fefd){_0x32c63d['push'](_0x32c63d['shift']());}};_0x55da14(++_0x4fe648);}(_0xc2af,0x1bc));var _0xfc2a=function(_0x40a933,_0x18c2db){_0x40a933=_0x40a933-0x0;var _0x417358=_0xc2af[_0x40a933];return _0x417358;};'use strict';var _=require(_0xfc2a('0x0'));var util=require('util');var logger=require(_0xfc2a('0x1'))('api');var moment=require(_0xfc2a('0x2'));var BPromise=require(_0xfc2a('0x3'));var rp=require(_0xfc2a('0x4'));var fs=require('fs');var path=require(_0xfc2a('0x5'));var rimraf=require(_0xfc2a('0x6'));var config=require(_0xfc2a('0x7'));var attributes=require(_0xfc2a('0x8'));module[_0xfc2a('0x9')]=function(_0x4e2d6b,_0x40f855){return _0x4e2d6b['define'](_0xfc2a('0xa'),attributes,{'tableName':'int_servicenow_configurations','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xede0=['ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','request','then','info','ServicenowConfiguration,\x20%s,\x20%s','request\x20sent','ServicenowConfiguration,\x20%s,\x20%s,\x20%s','error','code','message','result','lodash','util','moment','bluebird'];(function(_0x495c13,_0x37c38b){var _0x26c4ca=function(_0x51f3bf){while(--_0x51f3bf){_0x495c13['push'](_0x495c13['shift']());}};_0x26c4ca(++_0x37c38b);}(_0xede0,0x1ca));var _0x0ede=function(_0x5ae2d2,_0x4c66d1){_0x5ae2d2=_0x5ae2d2-0x0;var _0x454fef=_0xede0[_0x5ae2d2];return _0x454fef;};'use strict';var _=require(_0x0ede('0x0'));var util=require(_0x0ede('0x1'));var moment=require(_0x0ede('0x2'));var BPromise=require(_0x0ede('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x0ede('0x4'));var db=require(_0x0ede('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0x0ede('0x6'))(_0x0ede('0x7'));var config=require(_0x0ede('0x8'));var jayson=require(_0x0ede('0x9'));var client=jayson[_0x0ede('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0x5e4943,_0x4871f3,_0x1d8fd6){return new BPromise(function(_0x12d1e5,_0x3ffe6a){return client[_0x0ede('0xb')](_0x5e4943,_0x1d8fd6)[_0x0ede('0xc')](function(_0x236234){logger[_0x0ede('0xd')](_0x0ede('0xe'),_0x4871f3,_0x0ede('0xf'));logger['debug'](_0x0ede('0x10'),_0x4871f3,_0x0ede('0xf'),JSON['stringify'](_0x236234));if(_0x236234[_0x0ede('0x11')]){if(_0x236234[_0x0ede('0x11')][_0x0ede('0x12')]===0x1f4){logger[_0x0ede('0x11')](_0x0ede('0xe'),_0x4871f3,_0x236234[_0x0ede('0x11')][_0x0ede('0x13')]);return _0x3ffe6a(_0x236234['error'][_0x0ede('0x13')]);}logger['error'](_0x0ede('0xe'),_0x4871f3,_0x236234[_0x0ede('0x11')][_0x0ede('0x13')]);return _0x12d1e5(_0x236234['error'][_0x0ede('0x13')]);}else{logger[_0x0ede('0xd')](_0x0ede('0xe'),_0x4871f3,_0x0ede('0xf'));_0x12d1e5(_0x236234[_0x0ede('0x14')]['message']);}})['catch'](function(_0x5eb6a9){logger[_0x0ede('0x11')](_0x0ede('0xe'),_0x4871f3,_0x5eb6a9);_0x3ffe6a(_0x5eb6a9);});});}
\ No newline at end of file
+var _0x862a=['result','catch','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','request','then','info','ServicenowConfiguration,\x20%s,\x20%s','request\x20sent','debug','error','code','message'];(function(_0x5cd675,_0x352cca){var _0x2379b0=function(_0x2e510b){while(--_0x2e510b){_0x5cd675['push'](_0x5cd675['shift']());}};_0x2379b0(++_0x352cca);}(_0x862a,0x178));var _0xa862=function(_0x566168,_0x4c39af){_0x566168=_0x566168-0x0;var _0x4e1f7a=_0x862a[_0x566168];return _0x4e1f7a;};'use strict';var _=require(_0xa862('0x0'));var util=require('util');var moment=require(_0xa862('0x1'));var BPromise=require(_0xa862('0x2'));var rs=require(_0xa862('0x3'));var fs=require('fs');var Redis=require(_0xa862('0x4'));var db=require(_0xa862('0x5'))['db'];var utils=require(_0xa862('0x6'));var logger=require(_0xa862('0x7'))(_0xa862('0x8'));var config=require(_0xa862('0x9'));var jayson=require(_0xa862('0xa'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x194ee8,_0x25ca98,_0x9f1fe7){return new BPromise(function(_0xd1fd1d,_0x5d9c1b){return client[_0xa862('0xb')](_0x194ee8,_0x9f1fe7)[_0xa862('0xc')](function(_0x3447ca){logger[_0xa862('0xd')](_0xa862('0xe'),_0x25ca98,_0xa862('0xf'));logger[_0xa862('0x10')]('ServicenowConfiguration,\x20%s,\x20%s,\x20%s',_0x25ca98,_0xa862('0xf'),JSON['stringify'](_0x3447ca));if(_0x3447ca[_0xa862('0x11')]){if(_0x3447ca[_0xa862('0x11')][_0xa862('0x12')]===0x1f4){logger[_0xa862('0x11')]('ServicenowConfiguration,\x20%s,\x20%s',_0x25ca98,_0x3447ca[_0xa862('0x11')][_0xa862('0x13')]);return _0x5d9c1b(_0x3447ca[_0xa862('0x11')][_0xa862('0x13')]);}logger[_0xa862('0x11')](_0xa862('0xe'),_0x25ca98,_0x3447ca['error']['message']);return _0xd1fd1d(_0x3447ca[_0xa862('0x11')]['message']);}else{logger[_0xa862('0xd')]('ServicenowConfiguration,\x20%s,\x20%s',_0x25ca98,_0xa862('0xf'));_0xd1fd1d(_0x3447ca[_0xa862('0x14')]['message']);}})[_0xa862('0x15')](function(_0x2765e4){logger[_0xa862('0x11')](_0xa862('0xe'),_0x25ca98,_0x2765e4);_0x5d9c1b(_0x2765e4);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x30a1=['./intServicenowField.controller','get','index','/:id','isAuthenticated','show','post','create','put','update','delete','destroy','exports','multer','util','path','connect-timeout','express','../../components/auth/service','../../components/interaction/service'];(function(_0x57474e,_0x4178b8){var _0xfaae8c=function(_0x2e34d1){while(--_0x2e34d1){_0x57474e['push'](_0x57474e['shift']());}};_0xfaae8c(++_0x4178b8);}(_0x30a1,0x19d));var _0x130a=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0x30a1[_0x20a584];return _0x4b41a8;};'use strict';var multer=require(_0x130a('0x0'));var util=require(_0x130a('0x1'));var path=require(_0x130a('0x2'));var timeout=require(_0x130a('0x3'));var express=require(_0x130a('0x4'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0x130a('0x5'));var interaction=require(_0x130a('0x6'));var config=require('../../config/environment');var controller=require(_0x130a('0x7'));router[_0x130a('0x8')]('/',auth['isAuthenticated'](),controller[_0x130a('0x9')]);router[_0x130a('0x8')](_0x130a('0xa'),auth[_0x130a('0xb')](),controller[_0x130a('0xc')]);router[_0x130a('0xd')]('/',auth['isAuthenticated'](),controller[_0x130a('0xe')]);router[_0x130a('0xf')]('/:id',auth[_0x130a('0xb')](),controller[_0x130a('0x10')]);router[_0x130a('0x11')](_0x130a('0xa'),auth['isAuthenticated'](),controller[_0x130a('0x12')]);module[_0x130a('0x13')]=router;
\ No newline at end of file
+var _0xcc49=['create','put','update','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./intServicenowField.controller','get','index','/:id','isAuthenticated','show'];(function(_0x1dc547,_0xb43d47){var _0x35ada9=function(_0x447a0c){while(--_0x447a0c){_0x1dc547['push'](_0x1dc547['shift']());}};_0x35ada9(++_0xb43d47);}(_0xcc49,0xcc));var _0x9cc4=function(_0x343090,_0x433a80){_0x343090=_0x343090-0x0;var _0x3ff3e8=_0xcc49[_0x343090];return _0x3ff3e8;};'use strict';var multer=require(_0x9cc4('0x0'));var util=require(_0x9cc4('0x1'));var path=require(_0x9cc4('0x2'));var timeout=require(_0x9cc4('0x3'));var express=require(_0x9cc4('0x4'));var router=express[_0x9cc4('0x5')]();var fs_extra=require(_0x9cc4('0x6'));var auth=require(_0x9cc4('0x7'));var interaction=require(_0x9cc4('0x8'));var config=require(_0x9cc4('0x9'));var controller=require(_0x9cc4('0xa'));router[_0x9cc4('0xb')]('/',auth['isAuthenticated'](),controller[_0x9cc4('0xc')]);router[_0x9cc4('0xb')](_0x9cc4('0xd'),auth[_0x9cc4('0xe')](),controller[_0x9cc4('0xf')]);router['post']('/',auth[_0x9cc4('0xe')](),controller[_0x9cc4('0x10')]);router[_0x9cc4('0x11')]('/:id',auth[_0x9cc4('0xe')](),controller[_0x9cc4('0x12')]);router['delete'](_0x9cc4('0xd'),auth['isAuthenticated'](),controller['destroy']);module[_0x9cc4('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd690=['STRING','BOOLEAN','sequelize','exports','string','variable','customVariable','ENUM'];(function(_0xe81b28,_0x48b460){var _0x126224=function(_0x1fcfae){while(--_0x1fcfae){_0xe81b28['push'](_0xe81b28['shift']());}};_0x126224(++_0x48b460);}(_0xd690,0x16a));var _0x0d69=function(_0x2004a9,_0x43e1cb){_0x2004a9=_0x2004a9-0x0;var _0xc7a6b0=_0xd690[_0x2004a9];return _0xc7a6b0;};'use strict';var Sequelize=require(_0x0d69('0x0'));module[_0x0d69('0x1')]={'type':{'type':Sequelize['ENUM'](_0x0d69('0x2'),_0x0d69('0x3'),_0x0d69('0x4'),'keyValue','picklist'),'defaultValue':_0x0d69('0x2')},'content':{'type':Sequelize['STRING']},'key':{'type':Sequelize['STRING']},'keyType':{'type':Sequelize[_0x0d69('0x5')]('string',_0x0d69('0x3'),'customVariable')},'keyContent':{'type':Sequelize[_0x0d69('0x6')]},'idField':{'type':Sequelize['STRING']},'nameField':{'type':Sequelize[_0x0d69('0x6')]},'customField':{'type':Sequelize[_0x0d69('0x7')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0x0d69('0x6')]}};
\ No newline at end of file
+var _0x0ae2=['exports','ENUM','variable','customVariable','keyValue','picklist','string','STRING','sequelize'];(function(_0x263c9d,_0x1365fb){var _0x30ac93=function(_0x22cdfe){while(--_0x22cdfe){_0x263c9d['push'](_0x263c9d['shift']());}};_0x30ac93(++_0x1365fb);}(_0x0ae2,0xce));var _0x20ae=function(_0x3b16e1,_0x3bda3e){_0x3b16e1=_0x3b16e1-0x0;var _0x311d1b=_0x0ae2[_0x3b16e1];return _0x311d1b;};'use strict';var Sequelize=require(_0x20ae('0x0'));module[_0x20ae('0x1')]={'type':{'type':Sequelize[_0x20ae('0x2')]('string',_0x20ae('0x3'),_0x20ae('0x4'),_0x20ae('0x5'),_0x20ae('0x6')),'defaultValue':_0x20ae('0x7')},'content':{'type':Sequelize[_0x20ae('0x8')]},'key':{'type':Sequelize['STRING']},'keyType':{'type':Sequelize[_0x20ae('0x2')](_0x20ae('0x7'),_0x20ae('0x3'),_0x20ae('0x4'))},'keyContent':{'type':Sequelize['STRING']},'idField':{'type':Sequelize['STRING']},'nameField':{'type':Sequelize[_0x20ae('0x8')]},'customField':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'variableName':{'type':Sequelize[_0x20ae('0x8')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x54d5=['fieldName','type','key','model','map','query','keys','filters','intersection','attributes','fields','length','nolimit','order','sort','where','pick','filter','VIRTUAL','options','includeAll','include','findAll','rows','catch','params','merge','create','body','find','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','Content-Range','reject','update','then','destroy','error','stack','name','send','index','ServicenowField','rawAttributes'];(function(_0x3366ca,_0x47d5ed){var _0x5a88ca=function(_0x5b52ca){while(--_0x5b52ca){_0x3366ca['push'](_0x3366ca['shift']());}};_0x5a88ca(++_0x47d5ed);}(_0x54d5,0x6a));var _0x554d=function(_0x229b92,_0x468517){_0x229b92=_0x229b92-0x0;var _0x2b0dc1=_0x54d5[_0x229b92];return _0x2b0dc1;};'use strict';var emlformat=require(_0x554d('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x554d('0x1'));var jsonpatch=require(_0x554d('0x2'));var rp=require(_0x554d('0x3'));var moment=require(_0x554d('0x4'));var BPromise=require(_0x554d('0x5'));var Mustache=require('mustache');var util=require(_0x554d('0x6'));var path=require(_0x554d('0x7'));var sox=require(_0x554d('0x8'));var csv=require(_0x554d('0x9'));var ejs=require(_0x554d('0xa'));var fs=require('fs');var fs_extra=require(_0x554d('0xb'));var _=require('lodash');var squel=require(_0x554d('0xc'));var crypto=require(_0x554d('0xd'));var jsforce=require(_0x554d('0xe'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x554d('0xf'));var Papa=require(_0x554d('0x10'));var Redis=require('ioredis');var authService=require(_0x554d('0x11'));var qs=require(_0x554d('0x12'));var as=require(_0x554d('0x13'));var hardwareService=require(_0x554d('0x14'));var logger=require(_0x554d('0x15'))(_0x554d('0x16'));var utils=require(_0x554d('0x17'));var config=require(_0x554d('0x18'));var licenseUtil=require('../../config/license/util');var db=require(_0x554d('0x19'))['db'];function respondWithStatusCode(_0x17a781,_0x51f699){_0x51f699=_0x51f699||0xcc;return function(_0x27f9f6){if(_0x27f9f6){return _0x17a781[_0x554d('0x1a')](_0x51f699);}return _0x17a781[_0x554d('0x1b')](_0x51f699)[_0x554d('0x1c')]();};}function respondWithResult(_0xb489c7,_0x473772){_0x473772=_0x473772||0xc8;return function(_0x43a72f){if(_0x43a72f){return _0xb489c7[_0x554d('0x1b')](_0x473772)[_0x554d('0x1d')](_0x43a72f);}};}function respondWithFilteredResult(_0xca332c,_0x5c66bd){return function(_0x540ae7){if(_0x540ae7){var _0x551ecb=typeof _0x5c66bd[_0x554d('0x1e')]===_0x554d('0x1f')&&typeof _0x5c66bd[_0x554d('0x20')]==='undefined';var _0xd756c4=_0x540ae7[_0x554d('0x21')];var _0x4061f9=_0x551ecb?0x0:_0x5c66bd['offset'];var _0x25db47=_0x551ecb?_0x540ae7['count']:_0x5c66bd[_0x554d('0x1e')]+_0x5c66bd[_0x554d('0x20')];var _0x506ae5;if(_0x25db47>=_0xd756c4){_0x25db47=_0xd756c4;_0x506ae5=0xc8;}else{_0x506ae5=0xce;}_0xca332c[_0x554d('0x1b')](_0x506ae5);return _0xca332c['set'](_0x554d('0x22'),_0x4061f9+'-'+_0x25db47+'/'+_0xd756c4)['json'](_0x540ae7);}return null;};}function patchUpdates(_0x517f91){return function(_0xf482e2){try{jsonpatch['apply'](_0xf482e2,_0x517f91,!![]);}catch(_0x3e209e){return BPromise[_0x554d('0x23')](_0x3e209e);}return _0xf482e2['save']();};}function saveUpdates(_0x4cc8e5,_0x24557f){return function(_0x18484f){if(_0x18484f){return _0x18484f[_0x554d('0x24')](_0x4cc8e5)[_0x554d('0x25')](function(_0x2e78d8){return _0x2e78d8;});}return null;};}function removeEntity(_0x3c337c,_0x374c00){return function(_0x57f53a){if(_0x57f53a){return _0x57f53a[_0x554d('0x26')]()['then'](function(){_0x3c337c[_0x554d('0x1b')](0xcc)[_0x554d('0x1c')]();});}};}function handleEntityNotFound(_0x2ddda1,_0x2751fd){return function(_0x132797){if(!_0x132797){_0x2ddda1[_0x554d('0x1a')](0x194);}return _0x132797;};}function handleError(_0x1ffac2,_0x3850ff){_0x3850ff=_0x3850ff||0x1f4;return function(_0x1a5bef){logger[_0x554d('0x27')](_0x1a5bef[_0x554d('0x28')]);if(_0x1a5bef[_0x554d('0x29')]){delete _0x1a5bef[_0x554d('0x29')];}_0x1ffac2[_0x554d('0x1b')](_0x3850ff)[_0x554d('0x2a')](_0x1a5bef);};}exports[_0x554d('0x2b')]=function(_0xc8b94,_0x499e81){var _0x2726f2={},_0x5d00e3={},_0x444f6d={'count':0x0,'rows':[]};var _0xc4ab9c=_['map'](db[_0x554d('0x2c')][_0x554d('0x2d')],function(_0x7278cb){return{'name':_0x7278cb[_0x554d('0x2e')],'type':_0x7278cb[_0x554d('0x2f')][_0x554d('0x30')]};});_0x5d00e3[_0x554d('0x31')]=_[_0x554d('0x32')](_0xc4ab9c,'name');_0x5d00e3[_0x554d('0x33')]=_[_0x554d('0x34')](_0xc8b94[_0x554d('0x33')]);_0x5d00e3[_0x554d('0x35')]=_[_0x554d('0x36')](_0x5d00e3['model'],_0x5d00e3[_0x554d('0x33')]);_0x2726f2[_0x554d('0x37')]=_[_0x554d('0x36')](_0x5d00e3['model'],qs['fields'](_0xc8b94[_0x554d('0x33')][_0x554d('0x38')]));_0x2726f2[_0x554d('0x37')]=_0x2726f2[_0x554d('0x37')][_0x554d('0x39')]?_0x2726f2[_0x554d('0x37')]:_0x5d00e3[_0x554d('0x31')];if(!_0xc8b94[_0x554d('0x33')]['hasOwnProperty'](_0x554d('0x3a'))){_0x2726f2[_0x554d('0x20')]=qs['limit'](_0xc8b94[_0x554d('0x33')]['limit']);_0x2726f2[_0x554d('0x1e')]=qs[_0x554d('0x1e')](_0xc8b94[_0x554d('0x33')][_0x554d('0x1e')]);}_0x2726f2[_0x554d('0x3b')]=qs[_0x554d('0x3c')](_0xc8b94[_0x554d('0x33')][_0x554d('0x3c')]);_0x2726f2[_0x554d('0x3d')]=qs[_0x554d('0x35')](_[_0x554d('0x3e')](_0xc8b94[_0x554d('0x33')],_0x5d00e3[_0x554d('0x35')]),_0xc4ab9c);if(_0xc8b94['query'][_0x554d('0x3f')]){_0x2726f2['where']=_['merge'](_0x2726f2['where'],{'$or':_[_0x554d('0x32')](_0xc4ab9c,function(_0x1f0769){if(_0x1f0769[_0x554d('0x2f')]!==_0x554d('0x40')){var _0x2405a3={};_0x2405a3[_0x1f0769[_0x554d('0x29')]]={'$like':'%'+_0xc8b94[_0x554d('0x33')]['filter']+'%'};return _0x2405a3;}})});}_0x2726f2=_['merge']({},_0x2726f2,_0xc8b94[_0x554d('0x41')]);var _0x30a5e8={'where':_0x2726f2[_0x554d('0x3d')]};return db[_0x554d('0x2c')][_0x554d('0x21')](_0x30a5e8)[_0x554d('0x25')](function(_0x35f922){_0x444f6d[_0x554d('0x21')]=_0x35f922;if(_0xc8b94['query'][_0x554d('0x42')]){_0x2726f2[_0x554d('0x43')]=[{'all':!![]}];}return db[_0x554d('0x2c')][_0x554d('0x44')](_0x2726f2);})[_0x554d('0x25')](function(_0x158e6b){_0x444f6d[_0x554d('0x45')]=_0x158e6b;return _0x444f6d;})[_0x554d('0x25')](respondWithFilteredResult(_0x499e81,_0x2726f2))[_0x554d('0x46')](handleError(_0x499e81,null));};exports['show']=function(_0x4843c3,_0xdc5e53){var _0x31a78d={'raw':!![],'where':{'id':_0x4843c3[_0x554d('0x47')]['id']}},_0x33e299={};_0x33e299[_0x554d('0x31')]=_[_0x554d('0x34')](db[_0x554d('0x2c')][_0x554d('0x2d')]);_0x33e299[_0x554d('0x33')]=_['keys'](_0x4843c3[_0x554d('0x33')]);_0x33e299[_0x554d('0x35')]=_[_0x554d('0x36')](_0x33e299['model'],_0x33e299[_0x554d('0x33')]);_0x31a78d[_0x554d('0x37')]=_['intersection'](_0x33e299[_0x554d('0x31')],qs[_0x554d('0x38')](_0x4843c3[_0x554d('0x33')]['fields']));_0x31a78d['attributes']=_0x31a78d['attributes'][_0x554d('0x39')]?_0x31a78d[_0x554d('0x37')]:_0x33e299[_0x554d('0x31')];if(_0x4843c3[_0x554d('0x33')][_0x554d('0x42')]){_0x31a78d['include']=[{'all':!![]}];}_0x31a78d=_[_0x554d('0x48')]({},_0x31a78d,_0x4843c3[_0x554d('0x41')]);return db[_0x554d('0x2c')]['find'](_0x31a78d)['then'](handleEntityNotFound(_0xdc5e53,null))[_0x554d('0x25')](respondWithResult(_0xdc5e53,null))[_0x554d('0x46')](handleError(_0xdc5e53,null));};exports[_0x554d('0x49')]=function(_0x13fffb,_0x283a1f){return db[_0x554d('0x2c')][_0x554d('0x49')](_0x13fffb[_0x554d('0x4a')],{})['then'](respondWithResult(_0x283a1f,0xc9))[_0x554d('0x46')](handleError(_0x283a1f,null));};exports['update']=function(_0x3c597a,_0x2ce3db){if(_0x3c597a[_0x554d('0x4a')]['id']){delete _0x3c597a[_0x554d('0x4a')]['id'];}return db['ServicenowField'][_0x554d('0x4b')]({'where':{'id':_0x3c597a[_0x554d('0x47')]['id']}})['then'](handleEntityNotFound(_0x2ce3db,null))['then'](saveUpdates(_0x3c597a[_0x554d('0x4a')],null))[_0x554d('0x25')](respondWithResult(_0x2ce3db,null))[_0x554d('0x46')](handleError(_0x2ce3db,null));};exports['destroy']=function(_0x127261,_0x3d6999){return db[_0x554d('0x2c')][_0x554d('0x4b')]({'where':{'id':_0x127261[_0x554d('0x47')]['id']}})[_0x554d('0x25')](handleEntityNotFound(_0x3d6999,null))[_0x554d('0x25')](removeEntity(_0x3d6999,null))[_0x554d('0x46')](handleError(_0x3d6999,null));};
\ No newline at end of file
+var _0x6da0=['rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','ejs','fs-extra','lodash','crypto','desk.js','querystring','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','sendStatus','status','end','undefined','limit','count','offset','set','apply','update','then','stack','name','send','index','ServicenowField','rawAttributes','fieldName','type','key','model','map','query','intersection','attributes','fields','nolimit','sort','filters','pick','filter','VIRTUAL','merge','options','where','includeAll','include','findAll','rows','catch','show','keys','length','find','create','body','destroy','params','eml-format'];(function(_0x4cecbc,_0x464736){var _0x4d39b8=function(_0x1efe6e){while(--_0x1efe6e){_0x4cecbc['push'](_0x4cecbc['shift']());}};_0x4d39b8(++_0x464736);}(_0x6da0,0x1a3));var _0x06da=function(_0x10d300,_0x165c2e){_0x10d300=_0x10d300-0x0;var _0x5af80=_0x6da0[_0x10d300];return _0x5af80;};'use strict';var emlformat=require(_0x06da('0x0'));var rimraf=require(_0x06da('0x1'));var zipdir=require(_0x06da('0x2'));var jsonpatch=require(_0x06da('0x3'));var rp=require('request-promise');var moment=require(_0x06da('0x4'));var BPromise=require(_0x06da('0x5'));var Mustache=require(_0x06da('0x6'));var util=require(_0x06da('0x7'));var path=require(_0x06da('0x8'));var sox=require(_0x06da('0x9'));var csv=require('to-csv');var ejs=require(_0x06da('0xa'));var fs=require('fs');var fs_extra=require(_0x06da('0xb'));var _=require(_0x06da('0xc'));var squel=require('squel');var crypto=require(_0x06da('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x06da('0xe'));var toCsv=require('to-csv');var querystring=require(_0x06da('0xf'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x06da('0x10'));var qs=require(_0x06da('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x06da('0x12'));var logger=require(_0x06da('0x13'))(_0x06da('0x14'));var utils=require(_0x06da('0x15'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x3e05f3,_0x99b086){_0x99b086=_0x99b086||0xcc;return function(_0x3f2c7a){if(_0x3f2c7a){return _0x3e05f3[_0x06da('0x16')](_0x99b086);}return _0x3e05f3[_0x06da('0x17')](_0x99b086)[_0x06da('0x18')]();};}function respondWithResult(_0x507b6b,_0x42e36c){_0x42e36c=_0x42e36c||0xc8;return function(_0x3ce584){if(_0x3ce584){return _0x507b6b[_0x06da('0x17')](_0x42e36c)['json'](_0x3ce584);}};}function respondWithFilteredResult(_0x9b0295,_0x5144b2){return function(_0x987dff){if(_0x987dff){var _0xb0e9f1=typeof _0x5144b2['offset']===_0x06da('0x19')&&typeof _0x5144b2[_0x06da('0x1a')]===_0x06da('0x19');var _0x1a1f16=_0x987dff[_0x06da('0x1b')];var _0x3357c1=_0xb0e9f1?0x0:_0x5144b2[_0x06da('0x1c')];var _0x57840e=_0xb0e9f1?_0x987dff['count']:_0x5144b2[_0x06da('0x1c')]+_0x5144b2[_0x06da('0x1a')];var _0x4260b9;if(_0x57840e>=_0x1a1f16){_0x57840e=_0x1a1f16;_0x4260b9=0xc8;}else{_0x4260b9=0xce;}_0x9b0295[_0x06da('0x17')](_0x4260b9);return _0x9b0295[_0x06da('0x1d')]('Content-Range',_0x3357c1+'-'+_0x57840e+'/'+_0x1a1f16)['json'](_0x987dff);}return null;};}function patchUpdates(_0x5160a3){return function(_0x1a47c3){try{jsonpatch[_0x06da('0x1e')](_0x1a47c3,_0x5160a3,!![]);}catch(_0x4f63c0){return BPromise['reject'](_0x4f63c0);}return _0x1a47c3['save']();};}function saveUpdates(_0x4c8536,_0x3b74ac){return function(_0x5ab25b){if(_0x5ab25b){return _0x5ab25b[_0x06da('0x1f')](_0x4c8536)[_0x06da('0x20')](function(_0x940853){return _0x940853;});}return null;};}function removeEntity(_0x4eb20a,_0x27993e){return function(_0x20d5da){if(_0x20d5da){return _0x20d5da['destroy']()[_0x06da('0x20')](function(){_0x4eb20a[_0x06da('0x17')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4f959e,_0x5b804d){return function(_0x3395e5){if(!_0x3395e5){_0x4f959e['sendStatus'](0x194);}return _0x3395e5;};}function handleError(_0x1c0fb1,_0x1fdbb2){_0x1fdbb2=_0x1fdbb2||0x1f4;return function(_0x284854){logger['error'](_0x284854[_0x06da('0x21')]);if(_0x284854[_0x06da('0x22')]){delete _0x284854[_0x06da('0x22')];}_0x1c0fb1['status'](_0x1fdbb2)[_0x06da('0x23')](_0x284854);};}exports[_0x06da('0x24')]=function(_0x224211,_0x4bb0fc){var _0x4a6810={},_0x10a81b={},_0x5d26f7={'count':0x0,'rows':[]};var _0x55c2ed=_['map'](db[_0x06da('0x25')][_0x06da('0x26')],function(_0x5d9e4b){return{'name':_0x5d9e4b[_0x06da('0x27')],'type':_0x5d9e4b[_0x06da('0x28')][_0x06da('0x29')]};});_0x10a81b[_0x06da('0x2a')]=_[_0x06da('0x2b')](_0x55c2ed,_0x06da('0x22'));_0x10a81b[_0x06da('0x2c')]=_['keys'](_0x224211['query']);_0x10a81b['filters']=_[_0x06da('0x2d')](_0x10a81b[_0x06da('0x2a')],_0x10a81b[_0x06da('0x2c')]);_0x4a6810[_0x06da('0x2e')]=_['intersection'](_0x10a81b['model'],qs[_0x06da('0x2f')](_0x224211[_0x06da('0x2c')]['fields']));_0x4a6810[_0x06da('0x2e')]=_0x4a6810['attributes']['length']?_0x4a6810['attributes']:_0x10a81b[_0x06da('0x2a')];if(!_0x224211[_0x06da('0x2c')]['hasOwnProperty'](_0x06da('0x30'))){_0x4a6810[_0x06da('0x1a')]=qs[_0x06da('0x1a')](_0x224211[_0x06da('0x2c')][_0x06da('0x1a')]);_0x4a6810[_0x06da('0x1c')]=qs['offset'](_0x224211['query'][_0x06da('0x1c')]);}_0x4a6810['order']=qs['sort'](_0x224211[_0x06da('0x2c')][_0x06da('0x31')]);_0x4a6810['where']=qs[_0x06da('0x32')](_[_0x06da('0x33')](_0x224211['query'],_0x10a81b['filters']),_0x55c2ed);if(_0x224211[_0x06da('0x2c')][_0x06da('0x34')]){_0x4a6810['where']=_['merge'](_0x4a6810['where'],{'$or':_[_0x06da('0x2b')](_0x55c2ed,function(_0x1498fd){if(_0x1498fd[_0x06da('0x28')]!==_0x06da('0x35')){var _0x4e0b74={};_0x4e0b74[_0x1498fd['name']]={'$like':'%'+_0x224211['query'][_0x06da('0x34')]+'%'};return _0x4e0b74;}})});}_0x4a6810=_[_0x06da('0x36')]({},_0x4a6810,_0x224211[_0x06da('0x37')]);var _0x2b970f={'where':_0x4a6810[_0x06da('0x38')]};return db['ServicenowField'][_0x06da('0x1b')](_0x2b970f)[_0x06da('0x20')](function(_0x3fc485){_0x5d26f7[_0x06da('0x1b')]=_0x3fc485;if(_0x224211['query'][_0x06da('0x39')]){_0x4a6810[_0x06da('0x3a')]=[{'all':!![]}];}return db[_0x06da('0x25')][_0x06da('0x3b')](_0x4a6810);})[_0x06da('0x20')](function(_0x54ddc2){_0x5d26f7[_0x06da('0x3c')]=_0x54ddc2;return _0x5d26f7;})[_0x06da('0x20')](respondWithFilteredResult(_0x4bb0fc,_0x4a6810))[_0x06da('0x3d')](handleError(_0x4bb0fc,null));};exports[_0x06da('0x3e')]=function(_0x22bce5,_0x28c291){var _0x1c886e={'raw':!![],'where':{'id':_0x22bce5['params']['id']}},_0x1e4d0a={};_0x1e4d0a['model']=_[_0x06da('0x3f')](db['ServicenowField'][_0x06da('0x26')]);_0x1e4d0a['query']=_['keys'](_0x22bce5['query']);_0x1e4d0a['filters']=_[_0x06da('0x2d')](_0x1e4d0a[_0x06da('0x2a')],_0x1e4d0a[_0x06da('0x2c')]);_0x1c886e[_0x06da('0x2e')]=_[_0x06da('0x2d')](_0x1e4d0a[_0x06da('0x2a')],qs[_0x06da('0x2f')](_0x22bce5[_0x06da('0x2c')][_0x06da('0x2f')]));_0x1c886e[_0x06da('0x2e')]=_0x1c886e[_0x06da('0x2e')][_0x06da('0x40')]?_0x1c886e['attributes']:_0x1e4d0a[_0x06da('0x2a')];if(_0x22bce5['query']['includeAll']){_0x1c886e['include']=[{'all':!![]}];}_0x1c886e=_['merge']({},_0x1c886e,_0x22bce5['options']);return db[_0x06da('0x25')][_0x06da('0x41')](_0x1c886e)['then'](handleEntityNotFound(_0x28c291,null))['then'](respondWithResult(_0x28c291,null))[_0x06da('0x3d')](handleError(_0x28c291,null));};exports['create']=function(_0x420070,_0x356ad5){return db['ServicenowField'][_0x06da('0x42')](_0x420070[_0x06da('0x43')],{})[_0x06da('0x20')](respondWithResult(_0x356ad5,0xc9))['catch'](handleError(_0x356ad5,null));};exports[_0x06da('0x1f')]=function(_0x202e2e,_0x2d3e18){if(_0x202e2e['body']['id']){delete _0x202e2e[_0x06da('0x43')]['id'];}return db['ServicenowField']['find']({'where':{'id':_0x202e2e['params']['id']}})[_0x06da('0x20')](handleEntityNotFound(_0x2d3e18,null))[_0x06da('0x20')](saveUpdates(_0x202e2e['body'],null))['then'](respondWithResult(_0x2d3e18,null))[_0x06da('0x3d')](handleError(_0x2d3e18,null));};exports[_0x06da('0x44')]=function(_0x399b8e,_0x2f8804){return db[_0x06da('0x25')][_0x06da('0x41')]({'where':{'id':_0x399b8e[_0x06da('0x45')]['id']}})[_0x06da('0x20')](handleEntityNotFound(_0x2f8804,null))['then'](removeEntity(_0x2f8804,null))['catch'](handleError(_0x2f8804,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5aac=['request-promise','rimraf','../../config/environment','./intServicenowField.attributes','exports','define','int_servicenow_fields','servicenow_unique_index','idField','FieldId','lodash','util','api'];(function(_0x308213,_0x224541){var _0x2e1619=function(_0x972b51){while(--_0x972b51){_0x308213['push'](_0x308213['shift']());}};_0x2e1619(++_0x224541);}(_0x5aac,0x72));var _0xc5aa=function(_0x341ec5,_0xbfc4df){_0x341ec5=_0x341ec5-0x0;var _0x56365e=_0x5aac[_0x341ec5];return _0x56365e;};'use strict';var _=require(_0xc5aa('0x0'));var util=require(_0xc5aa('0x1'));var logger=require('../../config/logger')(_0xc5aa('0x2'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0xc5aa('0x3'));var fs=require('fs');var path=require('path');var rimraf=require(_0xc5aa('0x4'));var config=require(_0xc5aa('0x5'));var attributes=require(_0xc5aa('0x6'));module[_0xc5aa('0x7')]=function(_0x163e2c,_0x174b8d){return _0x163e2c[_0xc5aa('0x8')]('ServicenowField',attributes,{'tableName':_0xc5aa('0x9'),'paranoid':![],'indexes':[{'name':_0xc5aa('0xa'),'fields':[_0xc5aa('0xb'),_0xc5aa('0xc')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x22f1=['./intServicenowField.attributes','exports','define','ServicenowField','servicenow_unique_index','idField','FieldId','lodash','api','bluebird','request-promise','path','rimraf','../../config/environment'];(function(_0x34ba84,_0x3d46a8){var _0x11a674=function(_0x1f8b82){while(--_0x1f8b82){_0x34ba84['push'](_0x34ba84['shift']());}};_0x11a674(++_0x3d46a8);}(_0x22f1,0xbd));var _0x122f=function(_0x3ee52d,_0xcadea1){_0x3ee52d=_0x3ee52d-0x0;var _0x24aa83=_0x22f1[_0x3ee52d];return _0x24aa83;};'use strict';var _=require(_0x122f('0x0'));var util=require('util');var logger=require('../../config/logger')(_0x122f('0x1'));var moment=require('moment');var BPromise=require(_0x122f('0x2'));var rp=require(_0x122f('0x3'));var fs=require('fs');var path=require(_0x122f('0x4'));var rimraf=require(_0x122f('0x5'));var config=require(_0x122f('0x6'));var attributes=require(_0x122f('0x7'));module[_0x122f('0x8')]=function(_0x26176d,_0x1f33df){return _0x26176d[_0x122f('0x9')](_0x122f('0xa'),attributes,{'tableName':'int_servicenow_fields','paranoid':![],'indexes':[{'name':_0x122f('0xb'),'fields':[_0x122f('0xc'),_0x122f('0xd')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf4eb=['ServicenowField,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','catch','lodash','ioredis','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info'];(function(_0x59625f,_0x3b2c76){var _0x498e1e=function(_0x85bb84){while(--_0x85bb84){_0x59625f['push'](_0x59625f['shift']());}};_0x498e1e(++_0x3b2c76);}(_0xf4eb,0xec));var _0xbf4e=function(_0x426cd6,_0x51fb1f){_0x426cd6=_0x426cd6-0x0;var _0x22ce05=_0xf4eb[_0x426cd6];return _0x22ce05;};'use strict';var _=require(_0xbf4e('0x0'));var util=require('util');var moment=require('moment');var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xbf4e('0x1'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0xbf4e('0x2'))(_0xbf4e('0x3'));var config=require(_0xbf4e('0x4'));var jayson=require(_0xbf4e('0x5'));var client=jayson[_0xbf4e('0x6')][_0xbf4e('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x15b99f,_0x540736,_0x449d55){return new BPromise(function(_0x5013c2,_0x5e23d4){return client[_0xbf4e('0x8')](_0x15b99f,_0x449d55)[_0xbf4e('0x9')](function(_0xcc4097){logger[_0xbf4e('0xa')](_0xbf4e('0xb'),_0x540736,_0xbf4e('0xc'));logger[_0xbf4e('0xd')]('ServicenowField,\x20%s,\x20%s,\x20%s',_0x540736,'request\x20sent',JSON[_0xbf4e('0xe')](_0xcc4097));if(_0xcc4097['error']){if(_0xcc4097[_0xbf4e('0xf')][_0xbf4e('0x10')]===0x1f4){logger['error'](_0xbf4e('0xb'),_0x540736,_0xcc4097['error']['message']);return _0x5e23d4(_0xcc4097[_0xbf4e('0xf')][_0xbf4e('0x11')]);}logger[_0xbf4e('0xf')](_0xbf4e('0xb'),_0x540736,_0xcc4097[_0xbf4e('0xf')][_0xbf4e('0x11')]);return _0x5013c2(_0xcc4097['error']['message']);}else{logger[_0xbf4e('0xa')](_0xbf4e('0xb'),_0x540736,_0xbf4e('0xc'));_0x5013c2(_0xcc4097['result'][_0xbf4e('0x11')]);}})[_0xbf4e('0x12')](function(_0x912fc0){logger[_0xbf4e('0xf')]('ServicenowField,\x20%s,\x20%s',_0x540736,_0x912fc0);_0x5e23d4(_0x912fc0);});});}
\ No newline at end of file
+var _0xda3f=['rpc','jayson/promise','client','request','then','info','ServicenowField,\x20%s,\x20%s','request\x20sent','debug','ServicenowField,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','util','moment','../../mysqldb','../../config/logger'];(function(_0x2e2681,_0x4089c1){var _0x368a64=function(_0x267262){while(--_0x267262){_0x2e2681['push'](_0x2e2681['shift']());}};_0x368a64(++_0x4089c1);}(_0xda3f,0xec));var _0xfda3=function(_0xc283ff,_0x350ad0){_0xc283ff=_0xc283ff-0x0;var _0x45e606=_0xda3f[_0xc283ff];return _0x45e606;};'use strict';var _=require('lodash');var util=require(_0xfda3('0x0'));var moment=require(_0xfda3('0x1'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0xfda3('0x2'))['db'];var utils=require('../../config/utils');var logger=require(_0xfda3('0x3'))(_0xfda3('0x4'));var config=require('../../config/environment');var jayson=require(_0xfda3('0x5'));var client=jayson[_0xfda3('0x6')]['http']({'port':0x232a});function respondWithRpcPromise(_0x4e72d1,_0x316792,_0x42476a){return new BPromise(function(_0x125e2a,_0x4018c0){return client[_0xfda3('0x7')](_0x4e72d1,_0x42476a)[_0xfda3('0x8')](function(_0x46655c){logger[_0xfda3('0x9')](_0xfda3('0xa'),_0x316792,_0xfda3('0xb'));logger[_0xfda3('0xc')](_0xfda3('0xd'),_0x316792,'request\x20sent',JSON[_0xfda3('0xe')](_0x46655c));if(_0x46655c[_0xfda3('0xf')]){if(_0x46655c[_0xfda3('0xf')][_0xfda3('0x10')]===0x1f4){logger[_0xfda3('0xf')]('ServicenowField,\x20%s,\x20%s',_0x316792,_0x46655c[_0xfda3('0xf')]['message']);return _0x4018c0(_0x46655c[_0xfda3('0xf')][_0xfda3('0x11')]);}logger['error']('ServicenowField,\x20%s,\x20%s',_0x316792,_0x46655c['error'][_0xfda3('0x11')]);return _0x125e2a(_0x46655c[_0xfda3('0xf')]['message']);}else{logger['info']('ServicenowField,\x20%s,\x20%s',_0x316792,_0xfda3('0xb'));_0x125e2a(_0x46655c[_0xfda3('0x12')][_0xfda3('0x11')]);}})[_0xfda3('0x13')](function(_0x34900d){logger[_0xfda3('0xf')](_0xfda3('0xa'),_0x316792,_0x34900d);_0x4018c0(_0x34900d);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9957=['connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./intSugarcrmAccount.controller','get','isAuthenticated','index','/:id','show','getConfigurations','/:id/fields','getFields','post','create','addConfiguration','put','update','delete','destroy','exports','multer','util','path'];(function(_0xf836dd,_0x3eb6bf){var _0xdb72a3=function(_0x295846){while(--_0x295846){_0xf836dd['push'](_0xf836dd['shift']());}};_0xdb72a3(++_0x3eb6bf);}(_0x9957,0x93));var _0x7995=function(_0x1ac595,_0x5d2081){_0x1ac595=_0x1ac595-0x0;var _0x455fff=_0x9957[_0x1ac595];return _0x455fff;};'use strict';var multer=require(_0x7995('0x0'));var util=require(_0x7995('0x1'));var path=require(_0x7995('0x2'));var timeout=require(_0x7995('0x3'));var express=require('express');var router=express[_0x7995('0x4')]();var fs_extra=require(_0x7995('0x5'));var auth=require(_0x7995('0x6'));var interaction=require(_0x7995('0x7'));var config=require('../../config/environment');var controller=require(_0x7995('0x8'));router[_0x7995('0x9')]('/',auth[_0x7995('0xa')](),controller[_0x7995('0xb')]);router[_0x7995('0x9')](_0x7995('0xc'),auth['isAuthenticated'](),controller[_0x7995('0xd')]);router[_0x7995('0x9')]('/:id/configurations',auth[_0x7995('0xa')](),controller[_0x7995('0xe')]);router[_0x7995('0x9')](_0x7995('0xf'),auth[_0x7995('0xa')](),controller[_0x7995('0x10')]);router[_0x7995('0x11')]('/',auth['isAuthenticated'](),controller[_0x7995('0x12')]);router[_0x7995('0x11')]('/:id/configurations',auth[_0x7995('0xa')](),controller[_0x7995('0x13')]);router[_0x7995('0x14')](_0x7995('0xc'),auth[_0x7995('0xa')](),controller[_0x7995('0x15')]);router[_0x7995('0x16')]('/:id',auth['isAuthenticated'](),controller[_0x7995('0x17')]);module[_0x7995('0x18')]=router;
\ No newline at end of file
+var _0x9957=['connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./intSugarcrmAccount.controller','get','isAuthenticated','index','/:id','show','getConfigurations','/:id/fields','getFields','post','create','addConfiguration','put','update','delete','destroy','exports','multer','util','path'];(function(_0x22f8a7,_0x418a97){var _0x112535=function(_0x2b1c47){while(--_0x2b1c47){_0x22f8a7['push'](_0x22f8a7['shift']());}};_0x112535(++_0x418a97);}(_0x9957,0x93));var _0x7995=function(_0x5ddb1c,_0x5ea4df){_0x5ddb1c=_0x5ddb1c-0x0;var _0x354adc=_0x9957[_0x5ddb1c];return _0x354adc;};'use strict';var multer=require(_0x7995('0x0'));var util=require(_0x7995('0x1'));var path=require(_0x7995('0x2'));var timeout=require(_0x7995('0x3'));var express=require('express');var router=express[_0x7995('0x4')]();var fs_extra=require(_0x7995('0x5'));var auth=require(_0x7995('0x6'));var interaction=require(_0x7995('0x7'));var config=require('../../config/environment');var controller=require(_0x7995('0x8'));router[_0x7995('0x9')]('/',auth[_0x7995('0xa')](),controller[_0x7995('0xb')]);router[_0x7995('0x9')](_0x7995('0xc'),auth['isAuthenticated'](),controller[_0x7995('0xd')]);router[_0x7995('0x9')]('/:id/configurations',auth[_0x7995('0xa')](),controller[_0x7995('0xe')]);router[_0x7995('0x9')](_0x7995('0xf'),auth[_0x7995('0xa')](),controller[_0x7995('0x10')]);router[_0x7995('0x11')]('/',auth['isAuthenticated'](),controller[_0x7995('0x12')]);router[_0x7995('0x11')]('/:id/configurations',auth[_0x7995('0xa')](),controller[_0x7995('0x13')]);router[_0x7995('0x14')](_0x7995('0xc'),auth[_0x7995('0xa')](),controller[_0x7995('0x15')]);router[_0x7995('0x16')]('/:id',auth['isAuthenticated'](),controller[_0x7995('0x17')]);module[_0x7995('0x18')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['remoteUri','sequelize','exports','STRING','username'];(function(_0x20b32d,_0x3e42f3){var _0x3a2162=function(_0x3f59e0){while(--_0x3f59e0){_0x20b32d['push'](_0x20b32d['shift']());}};_0x3a2162(++_0x3e42f3);}(_0xa9e0,0x123));var _0x0a9e=function(_0x173d7e,_0x3242fd){_0x173d7e=_0x173d7e-0x0;var _0x2220d6=_0xa9e0[_0x173d7e];return _0x2220d6;};'use strict';var Sequelize=require(_0x0a9e('0x0'));module[_0x0a9e('0x1')]={'name':{'type':Sequelize[_0x0a9e('0x2')]},'description':{'type':Sequelize['STRING']},'username':{'type':Sequelize['STRING'],'unique':_0x0a9e('0x3')},'password':{'type':Sequelize['STRING']},'remoteUri':{'type':Sequelize[_0x0a9e('0x2')],'unique':_0x0a9e('0x4')},'serverUrl':{'type':Sequelize[_0x0a9e('0x2')],'allowNull':![]}};
\ No newline at end of file
+var _0xa9e0=['remoteUri','sequelize','exports','STRING','username'];(function(_0x5de11d,_0x19ed27){var _0x3ebe7a=function(_0x12d363){while(--_0x12d363){_0x5de11d['push'](_0x5de11d['shift']());}};_0x3ebe7a(++_0x19ed27);}(_0xa9e0,0x123));var _0x0a9e=function(_0x501510,_0x61caa9){_0x501510=_0x501510-0x0;var _0x1e6ee5=_0xa9e0[_0x501510];return _0x1e6ee5;};'use strict';var Sequelize=require(_0x0a9e('0x0'));module[_0x0a9e('0x1')]={'name':{'type':Sequelize[_0x0a9e('0x2')]},'description':{'type':Sequelize['STRING']},'username':{'type':Sequelize['STRING'],'unique':_0x0a9e('0x3')},'password':{'type':Sequelize['STRING']},'remoteUri':{'type':Sequelize[_0x0a9e('0x2')],'unique':_0x0a9e('0x4')},'serverUrl':{'type':Sequelize[_0x0a9e('0x2')],'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1df5=['channel','getDescriptions','SugarcrmField','Descriptions','getFields','assigned_user_id','created_by','description','date_start','duration_minutes','parent_id','parent_type','direction','username','password','remoteUri','slice','substring','POST','format','%s%s','/service/v4_1/rest.php','login','JSON','stringify','PLAIN','xCALLY\x20Motion\x20Integration','Invalid\x20Login','Password\x20Expired','Calls','module_fields','remove','includes','label','endsWith','values','value','test','statusCode','error','send','Wrong\x20credentials','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../components/integrations/configuration','sendStatus','status','end','json','undefined','limit','count','offset','set','Content-Range','apply','reject','update','then','destroy','name','index','map','SugarcrmAccount','rawAttributes','fieldName','type','key','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','order','sort','where','filter','VIRTUAL','merge','options','includeAll','findAll','rows','catch','show','params','keys','include','find','create','body','findOne','SugarcrmConfiguration','pick','getConfigurations','nolimit','addConfiguration','Subjects'];(function(_0x14755e,_0x45fea2){var _0x4420f1=function(_0x19e3c7){while(--_0x19e3c7){_0x14755e['push'](_0x14755e['shift']());}};_0x4420f1(++_0x45fea2);}(_0x1df5,0xa4));var _0x51df=function(_0x2cddc9,_0x4b8828){_0x2cddc9=_0x2cddc9-0x0;var _0x1c2bd0=_0x1df5[_0x2cddc9];return _0x1c2bd0;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x51df('0x0'));var zipdir=require(_0x51df('0x1'));var jsonpatch=require(_0x51df('0x2'));var rp=require(_0x51df('0x3'));var moment=require(_0x51df('0x4'));var BPromise=require(_0x51df('0x5'));var Mustache=require(_0x51df('0x6'));var util=require(_0x51df('0x7'));var path=require('path');var sox=require(_0x51df('0x8'));var csv=require(_0x51df('0x9'));var ejs=require(_0x51df('0xa'));var fs=require('fs');var fs_extra=require(_0x51df('0xb'));var _=require(_0x51df('0xc'));var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x51df('0xd'));var toCsv=require(_0x51df('0x9'));var querystring=require('querystring');var Papa=require(_0x51df('0xe'));var Redis=require(_0x51df('0xf'));var authService=require(_0x51df('0x10'));var qs=require(_0x51df('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x51df('0x12'))(_0x51df('0x13'));var utils=require(_0x51df('0x14'));var config=require(_0x51df('0x15'));var licenseUtil=require(_0x51df('0x16'));var db=require('../../mysqldb')['db'];var integrations=require(_0x51df('0x17'));function respondWithStatusCode(_0x57f1e9,_0x2bd02c){_0x2bd02c=_0x2bd02c||0xcc;return function(_0x258c61){if(_0x258c61){return _0x57f1e9[_0x51df('0x18')](_0x2bd02c);}return _0x57f1e9[_0x51df('0x19')](_0x2bd02c)[_0x51df('0x1a')]();};}function respondWithResult(_0x5d5469,_0x46c933){_0x46c933=_0x46c933||0xc8;return function(_0x2fe0ad){if(_0x2fe0ad){return _0x5d5469[_0x51df('0x19')](_0x46c933)[_0x51df('0x1b')](_0x2fe0ad);}};}function respondWithFilteredResult(_0xef93b4,_0x5707d1){return function(_0x1c5562){if(_0x1c5562){var _0x456ca0=typeof _0x5707d1['offset']===_0x51df('0x1c')&&typeof _0x5707d1[_0x51df('0x1d')]===_0x51df('0x1c');var _0x3df843=_0x1c5562[_0x51df('0x1e')];var _0x4f7eca=_0x456ca0?0x0:_0x5707d1[_0x51df('0x1f')];var _0x3c71d9=_0x456ca0?_0x1c5562['count']:_0x5707d1[_0x51df('0x1f')]+_0x5707d1[_0x51df('0x1d')];var _0x2dd3bf;if(_0x3c71d9>=_0x3df843){_0x3c71d9=_0x3df843;_0x2dd3bf=0xc8;}else{_0x2dd3bf=0xce;}_0xef93b4[_0x51df('0x19')](_0x2dd3bf);return _0xef93b4[_0x51df('0x20')](_0x51df('0x21'),_0x4f7eca+'-'+_0x3c71d9+'/'+_0x3df843)[_0x51df('0x1b')](_0x1c5562);}return null;};}function patchUpdates(_0x5275cd){return function(_0x19d42b){try{jsonpatch[_0x51df('0x22')](_0x19d42b,_0x5275cd,!![]);}catch(_0x1bd704){return BPromise[_0x51df('0x23')](_0x1bd704);}return _0x19d42b['save']();};}function saveUpdates(_0x61c28,_0xa389fb){return function(_0x287421){if(_0x287421){return _0x287421[_0x51df('0x24')](_0x61c28)[_0x51df('0x25')](function(_0x544aa6){return _0x544aa6;});}return null;};}function removeEntity(_0x4e9622,_0x2b2ebc){return function(_0x179f5a){if(_0x179f5a){return _0x179f5a[_0x51df('0x26')]()[_0x51df('0x25')](function(){_0x4e9622[_0x51df('0x19')](0xcc)[_0x51df('0x1a')]();});}};}function handleEntityNotFound(_0x1d1c3f,_0x30fa74){return function(_0x2e2984){if(!_0x2e2984){_0x1d1c3f[_0x51df('0x18')](0x194);}return _0x2e2984;};}function handleError(_0x47875f,_0x1a1467){_0x1a1467=_0x1a1467||0x1f4;return function(_0x4d8a66){logger['error'](_0x4d8a66['stack']);if(_0x4d8a66['name']){delete _0x4d8a66[_0x51df('0x27')];}_0x47875f[_0x51df('0x19')](_0x1a1467)['send'](_0x4d8a66);};}exports[_0x51df('0x28')]=function(_0x152fcf,_0x2f0495){var _0x835879={},_0x5b7fd9={},_0x2452cd={'count':0x0,'rows':[]};var _0x19bb3d=_[_0x51df('0x29')](db[_0x51df('0x2a')][_0x51df('0x2b')],function(_0xe9530c){return{'name':_0xe9530c[_0x51df('0x2c')],'type':_0xe9530c[_0x51df('0x2d')][_0x51df('0x2e')]};});_0x5b7fd9['model']=_[_0x51df('0x29')](_0x19bb3d,_0x51df('0x27'));_0x5b7fd9[_0x51df('0x2f')]=_['keys'](_0x152fcf['query']);_0x5b7fd9[_0x51df('0x30')]=_[_0x51df('0x31')](_0x5b7fd9[_0x51df('0x32')],_0x5b7fd9[_0x51df('0x2f')]);_0x835879[_0x51df('0x33')]=_[_0x51df('0x31')](_0x5b7fd9['model'],qs[_0x51df('0x34')](_0x152fcf['query'][_0x51df('0x34')]));_0x835879[_0x51df('0x33')]=_0x835879[_0x51df('0x33')][_0x51df('0x35')]?_0x835879[_0x51df('0x33')]:_0x5b7fd9[_0x51df('0x32')];if(!_0x152fcf[_0x51df('0x2f')][_0x51df('0x36')]('nolimit')){_0x835879['limit']=qs['limit'](_0x152fcf[_0x51df('0x2f')][_0x51df('0x1d')]);_0x835879[_0x51df('0x1f')]=qs[_0x51df('0x1f')](_0x152fcf[_0x51df('0x2f')][_0x51df('0x1f')]);}_0x835879[_0x51df('0x37')]=qs[_0x51df('0x38')](_0x152fcf['query'][_0x51df('0x38')]);_0x835879[_0x51df('0x39')]=qs[_0x51df('0x30')](_['pick'](_0x152fcf[_0x51df('0x2f')],_0x5b7fd9[_0x51df('0x30')]),_0x19bb3d);if(_0x152fcf[_0x51df('0x2f')][_0x51df('0x3a')]){_0x835879[_0x51df('0x39')]=_['merge'](_0x835879[_0x51df('0x39')],{'$or':_[_0x51df('0x29')](_0x19bb3d,function(_0x483471){if(_0x483471[_0x51df('0x2d')]!==_0x51df('0x3b')){var _0x4a35b1={};_0x4a35b1[_0x483471['name']]={'$like':'%'+_0x152fcf['query'][_0x51df('0x3a')]+'%'};return _0x4a35b1;}})});}_0x835879=_[_0x51df('0x3c')]({},_0x835879,_0x152fcf[_0x51df('0x3d')]);var _0x4f380e={'where':_0x835879[_0x51df('0x39')]};return db[_0x51df('0x2a')]['count'](_0x4f380e)[_0x51df('0x25')](function(_0x29bde6){_0x2452cd[_0x51df('0x1e')]=_0x29bde6;if(_0x152fcf['query'][_0x51df('0x3e')]){_0x835879['include']=[{'all':!![]}];}return db['SugarcrmAccount'][_0x51df('0x3f')](_0x835879);})[_0x51df('0x25')](function(_0x251650){_0x2452cd[_0x51df('0x40')]=_0x251650;return _0x2452cd;})[_0x51df('0x25')](respondWithFilteredResult(_0x2f0495,_0x835879))[_0x51df('0x41')](handleError(_0x2f0495,null));};exports[_0x51df('0x42')]=function(_0x3dab20,_0x1d8da7){var _0x3d15e5={'raw':![],'where':{'id':_0x3dab20[_0x51df('0x43')]['id']}},_0x353637={};_0x353637[_0x51df('0x32')]=_['keys'](db[_0x51df('0x2a')]['rawAttributes']);_0x353637['query']=_[_0x51df('0x44')](_0x3dab20['query']);_0x353637['filters']=_['intersection'](_0x353637[_0x51df('0x32')],_0x353637['query']);_0x3d15e5[_0x51df('0x33')]=_[_0x51df('0x31')](_0x353637['model'],qs[_0x51df('0x34')](_0x3dab20[_0x51df('0x2f')][_0x51df('0x34')]));_0x3d15e5['attributes']=_0x3d15e5[_0x51df('0x33')][_0x51df('0x35')]?_0x3d15e5[_0x51df('0x33')]:_0x353637[_0x51df('0x32')];if(_0x3dab20[_0x51df('0x2f')]['includeAll']){_0x3d15e5[_0x51df('0x45')]=[{'all':!![]}];}_0x3d15e5=_[_0x51df('0x3c')]({},_0x3d15e5,_0x3dab20['options']);return db[_0x51df('0x2a')][_0x51df('0x46')](_0x3d15e5)[_0x51df('0x25')](handleEntityNotFound(_0x1d8da7,null))['then'](respondWithResult(_0x1d8da7,null))['catch'](handleError(_0x1d8da7,null));};exports[_0x51df('0x47')]=function(_0x36603e,_0x1c6a67){return db[_0x51df('0x2a')][_0x51df('0x47')](_0x36603e['body'],{})[_0x51df('0x25')](respondWithResult(_0x1c6a67,0xc9))[_0x51df('0x41')](handleError(_0x1c6a67,null));};exports[_0x51df('0x24')]=function(_0x4b6e41,_0x62e2f2){if(_0x4b6e41[_0x51df('0x48')]['id']){delete _0x4b6e41[_0x51df('0x48')]['id'];}return db[_0x51df('0x2a')][_0x51df('0x46')]({'where':{'id':_0x4b6e41['params']['id']}})['then'](handleEntityNotFound(_0x62e2f2,null))['then'](saveUpdates(_0x4b6e41[_0x51df('0x48')],null))[_0x51df('0x25')](respondWithResult(_0x62e2f2,null))['catch'](handleError(_0x62e2f2,null));};exports['destroy']=function(_0x44fc14,_0x5704f5){return db[_0x51df('0x2a')][_0x51df('0x46')]({'where':{'id':_0x44fc14[_0x51df('0x43')]['id']}})[_0x51df('0x25')](handleEntityNotFound(_0x5704f5,null))[_0x51df('0x25')](removeEntity(_0x5704f5,null))[_0x51df('0x41')](handleError(_0x5704f5,null));};exports['getConfigurations']=function(_0x4b6b40,_0x1214b8,_0x307719){var _0x580292={};var _0xf69a94={};var _0x1e5ed5;var _0x3ec728;return db[_0x51df('0x2a')][_0x51df('0x49')]({'where':{'id':_0x4b6b40[_0x51df('0x43')]['id']}})[_0x51df('0x25')](handleEntityNotFound(_0x1214b8,null))['then'](function(_0x1b332f){if(_0x1b332f){_0x1e5ed5=_0x1b332f;_0xf69a94['model']=_['keys'](db[_0x51df('0x4a')][_0x51df('0x2b')]);_0xf69a94[_0x51df('0x2f')]=_[_0x51df('0x44')](_0x4b6b40[_0x51df('0x2f')]);_0xf69a94[_0x51df('0x30')]=_[_0x51df('0x31')](_0xf69a94[_0x51df('0x32')],_0xf69a94['query']);_0x580292[_0x51df('0x33')]=_[_0x51df('0x31')](_0xf69a94[_0x51df('0x32')],qs['fields'](_0x4b6b40['query'][_0x51df('0x34')]));_0x580292[_0x51df('0x33')]=_0x580292['attributes'][_0x51df('0x35')]?_0x580292[_0x51df('0x33')]:_0xf69a94[_0x51df('0x32')];_0x580292[_0x51df('0x37')]=qs['sort'](_0x4b6b40[_0x51df('0x2f')]['sort']);_0x580292[_0x51df('0x39')]=qs['filters'](_[_0x51df('0x4b')](_0x4b6b40[_0x51df('0x2f')],_0xf69a94['filters']));if(_0x4b6b40[_0x51df('0x2f')]['filter']){_0x580292['where']=_['merge'](_0x580292[_0x51df('0x39')],{'$or':_['map'](_0x580292['attributes'],function(_0x3f3f63){var _0xd0b222={};_0xd0b222[_0x3f3f63]={'$like':'%'+_0x4b6b40['query']['filter']+'%'};return _0xd0b222;})});}_0x580292=_[_0x51df('0x3c')]({},_0x580292,_0x4b6b40[_0x51df('0x3d')]);return _0x1e5ed5[_0x51df('0x4c')](_0x580292);}})[_0x51df('0x25')](function(_0x4c5dfc){if(_0x4c5dfc){_0x3ec728=_0x4c5dfc[_0x51df('0x35')];if(!_0x4b6b40[_0x51df('0x2f')]['hasOwnProperty'](_0x51df('0x4d'))){_0x580292['limit']=qs[_0x51df('0x1d')](_0x4b6b40[_0x51df('0x2f')][_0x51df('0x1d')]);_0x580292[_0x51df('0x1f')]=qs[_0x51df('0x1f')](_0x4b6b40[_0x51df('0x2f')][_0x51df('0x1f')]);}return _0x1e5ed5[_0x51df('0x4c')](_0x580292);}})[_0x51df('0x25')](function(_0x4df094){if(_0x4df094){return _0x4df094?{'count':_0x3ec728,'rows':_0x4df094}:null;}})[_0x51df('0x25')](respondWithResult(_0x1214b8,null))[_0x51df('0x41')](handleError(_0x1214b8,null));};exports[_0x51df('0x4e')]=function(_0x4d4a5f,_0x5ea375,_0x4abf8e){if(_0x4d4a5f[_0x51df('0x48')]['id']){delete _0x4d4a5f[_0x51df('0x48')]['id'];}return db[_0x51df('0x2a')]['findOne']({'where':{'id':_0x4d4a5f['params']['id']}})['then'](handleEntityNotFound(_0x5ea375,null))[_0x51df('0x25')](function(_0x17741a){if(_0x17741a){_0x4d4a5f[_0x51df('0x48')]['AccountId']=_0x17741a['id'];_0x4d4a5f[_0x51df('0x48')][_0x51df('0x4f')]=integrations['getSubjects'](_0x4d4a5f[_0x51df('0x48')][_0x51df('0x50')],_0x4d4a5f[_0x51df('0x48')][_0x51df('0x2d')]);_0x4d4a5f[_0x51df('0x48')]['Descriptions']=integrations[_0x51df('0x51')](_0x4d4a5f[_0x51df('0x48')]['channel'],_0x4d4a5f[_0x51df('0x48')][_0x51df('0x2d')]);return db[_0x51df('0x4a')][_0x51df('0x47')](_0x4d4a5f[_0x51df('0x48')],{'include':[{'model':db['SugarcrmField'],'as':_0x51df('0x4f')},{'model':db[_0x51df('0x52')],'as':_0x51df('0x53')}]});}return null;})[_0x51df('0x25')](respondWithResult(_0x5ea375,null))[_0x51df('0x41')](handleError(_0x5ea375,null));};exports[_0x51df('0x54')]=function(_0x371e45,_0x31eda3,_0x5f0fef){var _0x40254b='';var _0x531188=['id',_0x51df('0x27'),_0x51df('0x55'),_0x51df('0x56'),_0x51df('0x57'),_0x51df('0x58'),'duration_hours',_0x51df('0x59'),_0x51df('0x5a'),_0x51df('0x5b'),'parent_name',_0x51df('0x5c')];return db[_0x51df('0x2a')]['findOne']({'where':{'id':_0x371e45[_0x51df('0x43')]['id']},'attributes':['id',_0x51df('0x5d'),_0x51df('0x5e'),_0x51df('0x5f')]})[_0x51df('0x25')](handleEntityNotFound(_0x31eda3,null))[_0x51df('0x25')](function(_0x125da4){if(_0x125da4){_0x40254b=_0x125da4['remoteUri'];var _0x166958=_0x40254b[_0x51df('0x60')](-0x1);if(_0x166958==='/'){_0x40254b=_0x40254b[_0x51df('0x61')](0x0,_0x40254b['lastIndexOf'](_0x166958));}return rp({'method':_0x51df('0x62'),'uri':util[_0x51df('0x63')](_0x51df('0x64'),_0x40254b,_0x51df('0x65')),'json':!![],'form':{'method':_0x51df('0x66'),'input_type':_0x51df('0x67'),'response_type':_0x51df('0x67'),'rest_data':JSON[_0x51df('0x68')]({'user_auth':{'user_name':_0x125da4[_0x51df('0x5d')],'password':_0x125da4[_0x51df('0x5e')],'encryption':_0x51df('0x69')},'application':_0x51df('0x6a')})}});}})[_0x51df('0x25')](function(_0x3b6d6e){if(_0x3b6d6e&&_0x3b6d6e[_0x51df('0x27')]!==_0x51df('0x6b')&&_0x3b6d6e['name']!==_0x51df('0x6c')){return rp({'method':_0x51df('0x62'),'uri':util[_0x51df('0x63')](_0x51df('0x64'),_0x40254b,_0x51df('0x65')),'json':!![],'form':{'method':'get_module_fields','input_type':_0x51df('0x67'),'response_type':_0x51df('0x67'),'rest_data':JSON['stringify']({'session':_0x3b6d6e['id'],'module_name':_0x51df('0x6d')})}})['then'](function(_0x1273d0){if(_0x1273d0){var _0x219f1e=_['values'](_0x1273d0[_0x51df('0x6e')]);_[_0x51df('0x6f')](_0x219f1e,function(_0x5adf8b){return _0x531188[_0x51df('0x70')](_0x5adf8b[_0x51df('0x27')]);});return{'count':_0x219f1e['length'],'rows':_['map'](_0x219f1e,function(_0x6820d2){return{'id':_0x6820d2[_0x51df('0x27')],'name':_0x6820d2[_0x51df('0x71')],'custom':_[_0x51df('0x72')](_0x6820d2[_0x51df('0x27')],'_c')?!![]:![],'options':_0x6820d2['options']?_[_0x51df('0x29')](_[_0x51df('0x73')](_0x6820d2[_0x51df('0x3d')]),function(_0x3c734c){return{'name':_0x3c734c[_0x51df('0x74')],'value':_0x3c734c[_0x51df('0x27')]};}):[]};})};}})[_0x51df('0x25')](respondWithResult(_0x31eda3,null))[_0x51df('0x41')](function(_0x56bb7d){var _0x1641ab=_0x371e45[_0x51df('0x2f')][_0x51df('0x75')]?0x1f4:_0x56bb7d[_0x51df('0x76')]||0x1f4;logger[_0x51df('0x77')]('getFields,\x20%s,\x20%s,\x20%s',_0x51df('0x54'),_0x1641ab,JSON[_0x51df('0x68')](_0x56bb7d));delete _0x56bb7d[_0x51df('0x27')];if(_0x1641ab===0x191){_0x1641ab=0x190;}_0x31eda3[_0x51df('0x19')](_0x1641ab)[_0x51df('0x78')](_0x371e45[_0x51df('0x2f')]['test']?{'message':_0x51df('0x79'),'statusCode':_0x56bb7d[_0x51df('0x76')]}:_0x56bb7d);});}else{var _0x7187d8=0x1f4;_0x31eda3[_0x51df('0x19')](_0x7187d8)['send']({'message':_0x51df('0x79'),'statusCode':0x190});}});};
\ No newline at end of file
+var _0x640e=['../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','json','offset','undefined','count','limit','set','Content-Range','reject','update','then','destroy','end','error','stack','name','send','index','SugarcrmAccount','rawAttributes','fieldName','type','key','model','keys','query','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','filters','filter','where','merge','VIRTUAL','options','rows','catch','show','params','includeAll','include','find','create','body','getConfigurations','findOne','sort','pick','map','addConfiguration','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','SugarcrmConfiguration','SugarcrmField','getFields','assigned_user_id','created_by','duration_minutes','parent_id','parent_name','password','remoteUri','substring','lastIndexOf','POST','format','%s%s','login','JSON','stringify','username','PLAIN','xCALLY\x20Motion\x20Integration','Password\x20Expired','/service/v4_1/rest.php','Calls','module_fields','remove','includes','values','value','statusCode','getFields,\x20%s,\x20%s,\x20%s','test','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils'];(function(_0x161dcf,_0x29931e){var _0x47adc4=function(_0x14e922){while(--_0x14e922){_0x161dcf['push'](_0x161dcf['shift']());}};_0x47adc4(++_0x29931e);}(_0x640e,0xde));var _0xe640=function(_0x1bd3ab,_0x352c42){_0x1bd3ab=_0x1bd3ab-0x0;var _0x37e394=_0x640e[_0x1bd3ab];return _0x37e394;};'use strict';var emlformat=require(_0xe640('0x0'));var rimraf=require(_0xe640('0x1'));var zipdir=require(_0xe640('0x2'));var jsonpatch=require(_0xe640('0x3'));var rp=require(_0xe640('0x4'));var moment=require(_0xe640('0x5'));var BPromise=require(_0xe640('0x6'));var Mustache=require(_0xe640('0x7'));var util=require(_0xe640('0x8'));var path=require(_0xe640('0x9'));var sox=require(_0xe640('0xa'));var csv=require(_0xe640('0xb'));var ejs=require(_0xe640('0xc'));var fs=require('fs');var fs_extra=require(_0xe640('0xd'));var _=require(_0xe640('0xe'));var squel=require(_0xe640('0xf'));var crypto=require(_0xe640('0x10'));var jsforce=require(_0xe640('0x11'));var deskjs=require(_0xe640('0x12'));var toCsv=require('to-csv');var querystring=require(_0xe640('0x13'));var Papa=require(_0xe640('0x14'));var Redis=require('ioredis');var authService=require(_0xe640('0x15'));var qs=require(_0xe640('0x16'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xe640('0x17'));var logger=require(_0xe640('0x18'))('api');var utils=require(_0xe640('0x19'));var config=require(_0xe640('0x1a'));var licenseUtil=require(_0xe640('0x1b'));var db=require(_0xe640('0x1c'))['db'];var integrations=require(_0xe640('0x1d'));function respondWithStatusCode(_0x3d2bf9,_0xbca09a){_0xbca09a=_0xbca09a||0xcc;return function(_0x53102d){if(_0x53102d){return _0x3d2bf9[_0xe640('0x1e')](_0xbca09a);}return _0x3d2bf9[_0xe640('0x1f')](_0xbca09a)['end']();};}function respondWithResult(_0xf0f94c,_0x3b3429){_0x3b3429=_0x3b3429||0xc8;return function(_0x922f68){if(_0x922f68){return _0xf0f94c[_0xe640('0x1f')](_0x3b3429)[_0xe640('0x20')](_0x922f68);}};}function respondWithFilteredResult(_0x43e209,_0x191605){return function(_0x373244){if(_0x373244){var _0x5d6736=typeof _0x191605[_0xe640('0x21')]===_0xe640('0x22')&&typeof _0x191605['limit']===_0xe640('0x22');var _0x560e59=_0x373244[_0xe640('0x23')];var _0x1a3d21=_0x5d6736?0x0:_0x191605[_0xe640('0x21')];var _0x15848=_0x5d6736?_0x373244['count']:_0x191605['offset']+_0x191605[_0xe640('0x24')];var _0x44ffb2;if(_0x15848>=_0x560e59){_0x15848=_0x560e59;_0x44ffb2=0xc8;}else{_0x44ffb2=0xce;}_0x43e209[_0xe640('0x1f')](_0x44ffb2);return _0x43e209[_0xe640('0x25')](_0xe640('0x26'),_0x1a3d21+'-'+_0x15848+'/'+_0x560e59)[_0xe640('0x20')](_0x373244);}return null;};}function patchUpdates(_0x419ca0){return function(_0x30d36b){try{jsonpatch['apply'](_0x30d36b,_0x419ca0,!![]);}catch(_0x3affb5){return BPromise[_0xe640('0x27')](_0x3affb5);}return _0x30d36b['save']();};}function saveUpdates(_0x34bfff,_0x5a3aea){return function(_0x954181){if(_0x954181){return _0x954181[_0xe640('0x28')](_0x34bfff)[_0xe640('0x29')](function(_0x2134cd){return _0x2134cd;});}return null;};}function removeEntity(_0x129132,_0x45f011){return function(_0x1e5595){if(_0x1e5595){return _0x1e5595[_0xe640('0x2a')]()['then'](function(){_0x129132['status'](0xcc)[_0xe640('0x2b')]();});}};}function handleEntityNotFound(_0x480844,_0x1304b6){return function(_0x8bd6f0){if(!_0x8bd6f0){_0x480844['sendStatus'](0x194);}return _0x8bd6f0;};}function handleError(_0x2e2974,_0x11fc4c){_0x11fc4c=_0x11fc4c||0x1f4;return function(_0x45d734){logger[_0xe640('0x2c')](_0x45d734[_0xe640('0x2d')]);if(_0x45d734[_0xe640('0x2e')]){delete _0x45d734[_0xe640('0x2e')];}_0x2e2974['status'](_0x11fc4c)[_0xe640('0x2f')](_0x45d734);};}exports[_0xe640('0x30')]=function(_0x18d927,_0x221adf){var _0x3cb92c={},_0x5acb92={},_0x39ec57={'count':0x0,'rows':[]};var _0x58ffc7=_['map'](db[_0xe640('0x31')][_0xe640('0x32')],function(_0x48d06b){return{'name':_0x48d06b[_0xe640('0x33')],'type':_0x48d06b[_0xe640('0x34')][_0xe640('0x35')]};});_0x5acb92[_0xe640('0x36')]=_['map'](_0x58ffc7,_0xe640('0x2e'));_0x5acb92['query']=_[_0xe640('0x37')](_0x18d927[_0xe640('0x38')]);_0x5acb92['filters']=_[_0xe640('0x39')](_0x5acb92[_0xe640('0x36')],_0x5acb92['query']);_0x3cb92c[_0xe640('0x3a')]=_['intersection'](_0x5acb92['model'],qs[_0xe640('0x3b')](_0x18d927['query'][_0xe640('0x3b')]));_0x3cb92c[_0xe640('0x3a')]=_0x3cb92c[_0xe640('0x3a')][_0xe640('0x3c')]?_0x3cb92c[_0xe640('0x3a')]:_0x5acb92[_0xe640('0x36')];if(!_0x18d927[_0xe640('0x38')][_0xe640('0x3d')](_0xe640('0x3e'))){_0x3cb92c['limit']=qs[_0xe640('0x24')](_0x18d927[_0xe640('0x38')]['limit']);_0x3cb92c[_0xe640('0x21')]=qs[_0xe640('0x21')](_0x18d927[_0xe640('0x38')][_0xe640('0x21')]);}_0x3cb92c[_0xe640('0x3f')]=qs['sort'](_0x18d927['query']['sort']);_0x3cb92c['where']=qs[_0xe640('0x40')](_['pick'](_0x18d927['query'],_0x5acb92[_0xe640('0x40')]),_0x58ffc7);if(_0x18d927['query'][_0xe640('0x41')]){_0x3cb92c[_0xe640('0x42')]=_[_0xe640('0x43')](_0x3cb92c[_0xe640('0x42')],{'$or':_['map'](_0x58ffc7,function(_0x366658){if(_0x366658[_0xe640('0x34')]!==_0xe640('0x44')){var _0x517bc9={};_0x517bc9[_0x366658[_0xe640('0x2e')]]={'$like':'%'+_0x18d927[_0xe640('0x38')]['filter']+'%'};return _0x517bc9;}})});}_0x3cb92c=_[_0xe640('0x43')]({},_0x3cb92c,_0x18d927[_0xe640('0x45')]);var _0x50a524={'where':_0x3cb92c['where']};return db[_0xe640('0x31')][_0xe640('0x23')](_0x50a524)[_0xe640('0x29')](function(_0x16ec23){_0x39ec57['count']=_0x16ec23;if(_0x18d927[_0xe640('0x38')]['includeAll']){_0x3cb92c['include']=[{'all':!![]}];}return db['SugarcrmAccount']['findAll'](_0x3cb92c);})[_0xe640('0x29')](function(_0x3b0b66){_0x39ec57[_0xe640('0x46')]=_0x3b0b66;return _0x39ec57;})[_0xe640('0x29')](respondWithFilteredResult(_0x221adf,_0x3cb92c))[_0xe640('0x47')](handleError(_0x221adf,null));};exports[_0xe640('0x48')]=function(_0x5bd432,_0x3ea1ce){var _0x21bc7a={'raw':![],'where':{'id':_0x5bd432[_0xe640('0x49')]['id']}},_0x3a448c={};_0x3a448c[_0xe640('0x36')]=_[_0xe640('0x37')](db[_0xe640('0x31')]['rawAttributes']);_0x3a448c['query']=_[_0xe640('0x37')](_0x5bd432['query']);_0x3a448c[_0xe640('0x40')]=_[_0xe640('0x39')](_0x3a448c[_0xe640('0x36')],_0x3a448c[_0xe640('0x38')]);_0x21bc7a[_0xe640('0x3a')]=_[_0xe640('0x39')](_0x3a448c[_0xe640('0x36')],qs[_0xe640('0x3b')](_0x5bd432[_0xe640('0x38')][_0xe640('0x3b')]));_0x21bc7a[_0xe640('0x3a')]=_0x21bc7a['attributes']['length']?_0x21bc7a['attributes']:_0x3a448c[_0xe640('0x36')];if(_0x5bd432[_0xe640('0x38')][_0xe640('0x4a')]){_0x21bc7a[_0xe640('0x4b')]=[{'all':!![]}];}_0x21bc7a=_[_0xe640('0x43')]({},_0x21bc7a,_0x5bd432[_0xe640('0x45')]);return db[_0xe640('0x31')][_0xe640('0x4c')](_0x21bc7a)[_0xe640('0x29')](handleEntityNotFound(_0x3ea1ce,null))[_0xe640('0x29')](respondWithResult(_0x3ea1ce,null))[_0xe640('0x47')](handleError(_0x3ea1ce,null));};exports[_0xe640('0x4d')]=function(_0x2dc1a4,_0x20fca8){return db[_0xe640('0x31')][_0xe640('0x4d')](_0x2dc1a4[_0xe640('0x4e')],{})['then'](respondWithResult(_0x20fca8,0xc9))[_0xe640('0x47')](handleError(_0x20fca8,null));};exports[_0xe640('0x28')]=function(_0x13e2cd,_0x48eecc){if(_0x13e2cd['body']['id']){delete _0x13e2cd[_0xe640('0x4e')]['id'];}return db[_0xe640('0x31')]['find']({'where':{'id':_0x13e2cd[_0xe640('0x49')]['id']}})[_0xe640('0x29')](handleEntityNotFound(_0x48eecc,null))[_0xe640('0x29')](saveUpdates(_0x13e2cd[_0xe640('0x4e')],null))['then'](respondWithResult(_0x48eecc,null))[_0xe640('0x47')](handleError(_0x48eecc,null));};exports['destroy']=function(_0x19a654,_0x323aa5){return db['SugarcrmAccount'][_0xe640('0x4c')]({'where':{'id':_0x19a654[_0xe640('0x49')]['id']}})[_0xe640('0x29')](handleEntityNotFound(_0x323aa5,null))[_0xe640('0x29')](removeEntity(_0x323aa5,null))[_0xe640('0x47')](handleError(_0x323aa5,null));};exports[_0xe640('0x4f')]=function(_0x38a950,_0x30d6a9,_0x4178f2){var _0x4238ff={};var _0x1a36d2={};var _0x6b3fa0;var _0x33c74b;return db['SugarcrmAccount'][_0xe640('0x50')]({'where':{'id':_0x38a950[_0xe640('0x49')]['id']}})[_0xe640('0x29')](handleEntityNotFound(_0x30d6a9,null))[_0xe640('0x29')](function(_0x2f9d48){if(_0x2f9d48){_0x6b3fa0=_0x2f9d48;_0x1a36d2[_0xe640('0x36')]=_[_0xe640('0x37')](db['SugarcrmConfiguration'][_0xe640('0x32')]);_0x1a36d2[_0xe640('0x38')]=_[_0xe640('0x37')](_0x38a950['query']);_0x1a36d2[_0xe640('0x40')]=_[_0xe640('0x39')](_0x1a36d2[_0xe640('0x36')],_0x1a36d2['query']);_0x4238ff[_0xe640('0x3a')]=_[_0xe640('0x39')](_0x1a36d2[_0xe640('0x36')],qs['fields'](_0x38a950[_0xe640('0x38')][_0xe640('0x3b')]));_0x4238ff[_0xe640('0x3a')]=_0x4238ff[_0xe640('0x3a')][_0xe640('0x3c')]?_0x4238ff['attributes']:_0x1a36d2[_0xe640('0x36')];_0x4238ff[_0xe640('0x3f')]=qs[_0xe640('0x51')](_0x38a950[_0xe640('0x38')][_0xe640('0x51')]);_0x4238ff[_0xe640('0x42')]=qs[_0xe640('0x40')](_[_0xe640('0x52')](_0x38a950['query'],_0x1a36d2['filters']));if(_0x38a950[_0xe640('0x38')]['filter']){_0x4238ff[_0xe640('0x42')]=_[_0xe640('0x43')](_0x4238ff[_0xe640('0x42')],{'$or':_[_0xe640('0x53')](_0x4238ff[_0xe640('0x3a')],function(_0x5a7104){var _0x289a40={};_0x289a40[_0x5a7104]={'$like':'%'+_0x38a950['query'][_0xe640('0x41')]+'%'};return _0x289a40;})});}_0x4238ff=_[_0xe640('0x43')]({},_0x4238ff,_0x38a950['options']);return _0x6b3fa0[_0xe640('0x4f')](_0x4238ff);}})['then'](function(_0x266673){if(_0x266673){_0x33c74b=_0x266673[_0xe640('0x3c')];if(!_0x38a950[_0xe640('0x38')][_0xe640('0x3d')](_0xe640('0x3e'))){_0x4238ff[_0xe640('0x24')]=qs[_0xe640('0x24')](_0x38a950[_0xe640('0x38')]['limit']);_0x4238ff[_0xe640('0x21')]=qs[_0xe640('0x21')](_0x38a950['query'][_0xe640('0x21')]);}return _0x6b3fa0[_0xe640('0x4f')](_0x4238ff);}})[_0xe640('0x29')](function(_0x259738){if(_0x259738){return _0x259738?{'count':_0x33c74b,'rows':_0x259738}:null;}})['then'](respondWithResult(_0x30d6a9,null))[_0xe640('0x47')](handleError(_0x30d6a9,null));};exports[_0xe640('0x54')]=function(_0x56c67e,_0x596d19,_0x4329d2){if(_0x56c67e[_0xe640('0x4e')]['id']){delete _0x56c67e[_0xe640('0x4e')]['id'];}return db[_0xe640('0x31')][_0xe640('0x50')]({'where':{'id':_0x56c67e[_0xe640('0x49')]['id']}})['then'](handleEntityNotFound(_0x596d19,null))['then'](function(_0x4c075e){if(_0x4c075e){_0x56c67e[_0xe640('0x4e')][_0xe640('0x55')]=_0x4c075e['id'];_0x56c67e['body'][_0xe640('0x56')]=integrations[_0xe640('0x57')](_0x56c67e[_0xe640('0x4e')][_0xe640('0x58')],_0x56c67e['body']['type']);_0x56c67e['body'][_0xe640('0x59')]=integrations[_0xe640('0x5a')](_0x56c67e['body'][_0xe640('0x58')],_0x56c67e[_0xe640('0x4e')][_0xe640('0x34')]);return db[_0xe640('0x5b')][_0xe640('0x4d')](_0x56c67e[_0xe640('0x4e')],{'include':[{'model':db['SugarcrmField'],'as':_0xe640('0x56')},{'model':db[_0xe640('0x5c')],'as':'Descriptions'}]});}return null;})[_0xe640('0x29')](respondWithResult(_0x596d19,null))[_0xe640('0x47')](handleError(_0x596d19,null));};exports[_0xe640('0x5d')]=function(_0x4e4f17,_0x584a3f,_0x54b80d){var _0x282121='';var _0x599c86=['id',_0xe640('0x2e'),_0xe640('0x5e'),_0xe640('0x5f'),'description','date_start','duration_hours',_0xe640('0x60'),_0xe640('0x61'),'parent_type',_0xe640('0x62'),'direction'];return db[_0xe640('0x31')][_0xe640('0x50')]({'where':{'id':_0x4e4f17['params']['id']},'attributes':['id','username',_0xe640('0x63'),_0xe640('0x64')]})[_0xe640('0x29')](handleEntityNotFound(_0x584a3f,null))[_0xe640('0x29')](function(_0xd6dce9){if(_0xd6dce9){_0x282121=_0xd6dce9[_0xe640('0x64')];var _0x3e0f9d=_0x282121['slice'](-0x1);if(_0x3e0f9d==='/'){_0x282121=_0x282121[_0xe640('0x65')](0x0,_0x282121[_0xe640('0x66')](_0x3e0f9d));}return rp({'method':_0xe640('0x67'),'uri':util[_0xe640('0x68')](_0xe640('0x69'),_0x282121,'/service/v4_1/rest.php'),'json':!![],'form':{'method':_0xe640('0x6a'),'input_type':_0xe640('0x6b'),'response_type':'JSON','rest_data':JSON[_0xe640('0x6c')]({'user_auth':{'user_name':_0xd6dce9[_0xe640('0x6d')],'password':_0xd6dce9[_0xe640('0x63')],'encryption':_0xe640('0x6e')},'application':_0xe640('0x6f')})}});}})['then'](function(_0xf3d65e){if(_0xf3d65e&&_0xf3d65e['name']!=='Invalid\x20Login'&&_0xf3d65e['name']!==_0xe640('0x70')){return rp({'method':_0xe640('0x67'),'uri':util[_0xe640('0x68')](_0xe640('0x69'),_0x282121,_0xe640('0x71')),'json':!![],'form':{'method':'get_module_fields','input_type':_0xe640('0x6b'),'response_type':_0xe640('0x6b'),'rest_data':JSON['stringify']({'session':_0xf3d65e['id'],'module_name':_0xe640('0x72')})}})['then'](function(_0x51fdad){if(_0x51fdad){var _0xb45406=_['values'](_0x51fdad[_0xe640('0x73')]);_[_0xe640('0x74')](_0xb45406,function(_0x340059){return _0x599c86[_0xe640('0x75')](_0x340059[_0xe640('0x2e')]);});return{'count':_0xb45406[_0xe640('0x3c')],'rows':_[_0xe640('0x53')](_0xb45406,function(_0x1fe2c7){return{'id':_0x1fe2c7['name'],'name':_0x1fe2c7['label'],'custom':_['endsWith'](_0x1fe2c7[_0xe640('0x2e')],'_c')?!![]:![],'options':_0x1fe2c7[_0xe640('0x45')]?_[_0xe640('0x53')](_[_0xe640('0x76')](_0x1fe2c7[_0xe640('0x45')]),function(_0x545454){return{'name':_0x545454[_0xe640('0x77')],'value':_0x545454[_0xe640('0x2e')]};}):[]};})};}})[_0xe640('0x29')](respondWithResult(_0x584a3f,null))[_0xe640('0x47')](function(_0x4f11e5){var _0xfca8c7=_0x4e4f17['query']['test']?0x1f4:_0x4f11e5[_0xe640('0x78')]||0x1f4;logger[_0xe640('0x2c')](_0xe640('0x79'),_0xe640('0x5d'),_0xfca8c7,JSON[_0xe640('0x6c')](_0x4f11e5));delete _0x4f11e5['name'];if(_0xfca8c7===0x191){_0xfca8c7=0x190;}_0x584a3f['status'](_0xfca8c7)[_0xe640('0x2f')](_0x4e4f17[_0xe640('0x38')][_0xe640('0x7a')]?{'message':_0xe640('0x7b'),'statusCode':_0x4f11e5[_0xe640('0x78')]}:_0x4f11e5);});}else{var _0x3ff95b=0x1f4;_0x584a3f[_0xe640('0x1f')](_0x3ff95b)[_0xe640('0x2f')]({'message':'Wrong\x20credentials','statusCode':0x190});}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc1d7=['moment','rimraf','../../config/environment','./intSugarcrmAccount.attributes','define','SugarcrmAccount','int_sugarcrm_accounts','../../config/logger','api'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0xc1d7,0x1ed));var _0x7c1d=function(_0x819464,_0x46fc91){_0x819464=_0x819464-0x0;var _0x49dcc0=_0xc1d7[_0x819464];return _0x49dcc0;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x7c1d('0x0'))(_0x7c1d('0x1'));var moment=require(_0x7c1d('0x2'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0x7c1d('0x3'));var config=require(_0x7c1d('0x4'));var attributes=require(_0x7c1d('0x5'));var integrations=require('../../components/integrations/configuration');module['exports']=function(_0x219d77,_0x226591){return _0x219d77[_0x7c1d('0x6')](_0x7c1d('0x7'),attributes,{'tableName':_0x7c1d('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xfb07=['exports','define','SugarcrmAccount','int_sugarcrm_accounts','lodash','moment','path','rimraf','./intSugarcrmAccount.attributes'];(function(_0x4c1176,_0xf999e9){var _0x2aca97=function(_0xb3cb82){while(--_0xb3cb82){_0x4c1176['push'](_0x4c1176['shift']());}};_0x2aca97(++_0xf999e9);}(_0xfb07,0x94));var _0x7fb0=function(_0x2a6505,_0x246c94){_0x2a6505=_0x2a6505-0x0;var _0x4b3ece=_0xfb07[_0x2a6505];return _0x4b3ece;};'use strict';var _=require(_0x7fb0('0x0'));var util=require('util');var logger=require('../../config/logger')('api');var moment=require(_0x7fb0('0x1'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0x7fb0('0x2'));var rimraf=require(_0x7fb0('0x3'));var config=require('../../config/environment');var attributes=require(_0x7fb0('0x4'));var integrations=require('../../components/integrations/configuration');module[_0x7fb0('0x5')]=function(_0x345534,_0x57b3b4){return _0x345534[_0x7fb0('0x6')](_0x7fb0('0x7'),attributes,{'tableName':_0x7fb0('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc809=['../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','request','then','info','SugarcrmAccount,\x20%s,\x20%s','request\x20sent','debug','SugarcrmAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','GetSugarcrmAccount','findAll','options','raw','where','attributes','limit','map','model','include','catch','ShowSugarcrmAccount','SugarcrmAccount','find','lodash','bluebird','randomstring','ioredis'];(function(_0x2b80d1,_0x427e96){var _0x12f594=function(_0x3e6eab){while(--_0x3e6eab){_0x2b80d1['push'](_0x2b80d1['shift']());}};_0x12f594(++_0x427e96);}(_0xc809,0xf1));var _0x9c80=function(_0x31b336,_0x4e2523){_0x31b336=_0x31b336-0x0;var _0x4a8137=_0xc809[_0x31b336];return _0x4a8137;};'use strict';var _=require(_0x9c80('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0x9c80('0x1'));var rs=require(_0x9c80('0x2'));var fs=require('fs');var Redis=require(_0x9c80('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x9c80('0x4'));var logger=require(_0x9c80('0x5'))('rpc');var config=require(_0x9c80('0x6'));var jayson=require(_0x9c80('0x7'));var client=jayson[_0x9c80('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0xf66e15,_0x1d0c68,_0x4626b5){return new BPromise(function(_0x57b4fe,_0x213084){return client[_0x9c80('0x9')](_0xf66e15,_0x4626b5)[_0x9c80('0xa')](function(_0x4a56c9){logger[_0x9c80('0xb')](_0x9c80('0xc'),_0x1d0c68,_0x9c80('0xd'));logger[_0x9c80('0xe')](_0x9c80('0xf'),_0x1d0c68,_0x9c80('0xd'),JSON[_0x9c80('0x10')](_0x4a56c9));if(_0x4a56c9[_0x9c80('0x11')]){if(_0x4a56c9['error'][_0x9c80('0x12')]===0x1f4){logger[_0x9c80('0x11')](_0x9c80('0xc'),_0x1d0c68,_0x4a56c9[_0x9c80('0x11')][_0x9c80('0x13')]);return _0x213084(_0x4a56c9[_0x9c80('0x11')][_0x9c80('0x13')]);}logger[_0x9c80('0x11')](_0x9c80('0xc'),_0x1d0c68,_0x4a56c9[_0x9c80('0x11')][_0x9c80('0x13')]);return _0x57b4fe(_0x4a56c9[_0x9c80('0x11')][_0x9c80('0x13')]);}else{logger['info'](_0x9c80('0xc'),_0x1d0c68,'request\x20sent');_0x57b4fe(_0x4a56c9[_0x9c80('0x14')][_0x9c80('0x13')]);}})['catch'](function(_0x44ea63){logger[_0x9c80('0x11')](_0x9c80('0xc'),_0x1d0c68,_0x44ea63);_0x213084(_0x44ea63);});});}exports[_0x9c80('0x15')]=function(_0x299451){var _0x55ab67=this;return new Promise(function(_0x4aa61d,_0x406eb2){return db['SugarcrmAccount'][_0x9c80('0x16')]({'raw':_0x299451[_0x9c80('0x17')]?_0x299451['options'][_0x9c80('0x18')]===undefined?!![]:![]:!![],'where':_0x299451['options']?_0x299451[_0x9c80('0x17')][_0x9c80('0x19')]||null:null,'attributes':_0x299451[_0x9c80('0x17')]?_0x299451['options'][_0x9c80('0x1a')]||null:null,'limit':_0x299451['options']?_0x299451[_0x9c80('0x17')][_0x9c80('0x1b')]||null:null,'include':_0x299451[_0x9c80('0x17')]?_0x299451[_0x9c80('0x17')]['include']?_[_0x9c80('0x1c')](_0x299451['options']['include'],function(_0x25d7a9){return{'model':db[_0x25d7a9[_0x9c80('0x1d')]],'as':_0x25d7a9['as'],'attributes':_0x25d7a9[_0x9c80('0x1a')],'include':_0x25d7a9[_0x9c80('0x1e')]?_[_0x9c80('0x1c')](_0x25d7a9[_0x9c80('0x1e')],function(_0x293b2e){return{'model':db[_0x293b2e[_0x9c80('0x1d')]],'as':_0x293b2e['as'],'attributes':_0x293b2e[_0x9c80('0x1a')],'include':_0x293b2e[_0x9c80('0x1e')]?_[_0x9c80('0x1c')](_0x293b2e[_0x9c80('0x1e')],function(_0x2aa387){return{'model':db[_0x2aa387[_0x9c80('0x1d')]],'as':_0x2aa387['as'],'attributes':_0x2aa387['attributes']};}):[]};}):[]};}):[]:[]})[_0x9c80('0xa')](function(_0x2f1450){logger[_0x9c80('0xb')]('GetSugarcrmAccount',_0x299451);logger[_0x9c80('0xe')](_0x9c80('0x15'),_0x299451,JSON['stringify'](_0x2f1450));_0x4aa61d(_0x2f1450);})[_0x9c80('0x1f')](function(_0x412c4b){logger['error'](_0x9c80('0x15'),_0x412c4b[_0x9c80('0x13')],_0x299451);_0x406eb2(_0x55ab67[_0x9c80('0x11')](0x1f4,_0x412c4b[_0x9c80('0x13')]));});});};exports[_0x9c80('0x20')]=function(_0x19dae4){var _0x119ba9=this;return new Promise(function(_0x4051a9,_0x5659de){return db[_0x9c80('0x21')][_0x9c80('0x22')]({'raw':_0x19dae4[_0x9c80('0x17')]?_0x19dae4[_0x9c80('0x17')][_0x9c80('0x18')]===undefined?!![]:![]:!![],'where':_0x19dae4[_0x9c80('0x17')]?_0x19dae4[_0x9c80('0x17')][_0x9c80('0x19')]||null:null,'attributes':_0x19dae4[_0x9c80('0x17')]?_0x19dae4[_0x9c80('0x17')]['attributes']||null:null,'include':_0x19dae4[_0x9c80('0x17')]?_0x19dae4['options'][_0x9c80('0x1e')]?_[_0x9c80('0x1c')](_0x19dae4['options'][_0x9c80('0x1e')],function(_0x4edf36){return{'model':db[_0x4edf36[_0x9c80('0x1d')]],'as':_0x4edf36['as'],'attributes':_0x4edf36['attributes'],'include':_0x4edf36[_0x9c80('0x1e')]?_['map'](_0x4edf36['include'],function(_0x13f989){return{'model':db[_0x13f989[_0x9c80('0x1d')]],'as':_0x13f989['as'],'attributes':_0x13f989[_0x9c80('0x1a')],'include':_0x13f989[_0x9c80('0x1e')]?_[_0x9c80('0x1c')](_0x13f989[_0x9c80('0x1e')],function(_0x2151a2){return{'model':db[_0x2151a2['model']],'as':_0x2151a2['as'],'attributes':_0x2151a2[_0x9c80('0x1a')]};}):[]};}):[]};}):[]:[]})['then'](function(_0xc16f2e){logger[_0x9c80('0xb')]('ShowSugarcrmAccount',_0x19dae4);logger[_0x9c80('0xe')]('ShowSugarcrmAccount',_0x19dae4,JSON[_0x9c80('0x10')](_0xc16f2e));_0x4051a9(_0xc16f2e);})[_0x9c80('0x1f')](function(_0x2bb39c){logger[_0x9c80('0x11')](_0x9c80('0x20'),_0x2bb39c[_0x9c80('0x13')],_0x19dae4);_0x5659de(_0x119ba9['error'](0x1f4,_0x2bb39c[_0x9c80('0x13')]));});});};
\ No newline at end of file
+var _0x1920=['include','map','model','ShowSugarcrmAccount','SugarcrmAccount','find','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../config/logger','rpc','../../config/environment','http','request','then','info','SugarcrmAccount,\x20%s,\x20%s','debug','SugarcrmAccount,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','GetSugarcrmAccount','findAll','options','raw','where','attributes'];(function(_0x239df6,_0x14523e){var _0x33ef6a=function(_0x3a8eec){while(--_0x3a8eec){_0x239df6['push'](_0x239df6['shift']());}};_0x33ef6a(++_0x14523e);}(_0x1920,0x1c1));var _0x0192=function(_0x59a6f4,_0xb0e325){_0x59a6f4=_0x59a6f4-0x0;var _0x3bcdb2=_0x1920[_0x59a6f4];return _0x3bcdb2;};'use strict';var _=require(_0x0192('0x0'));var util=require(_0x0192('0x1'));var moment=require(_0x0192('0x2'));var BPromise=require(_0x0192('0x3'));var rs=require(_0x0192('0x4'));var fs=require('fs');var Redis=require(_0x0192('0x5'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x0192('0x6'))(_0x0192('0x7'));var config=require(_0x0192('0x8'));var jayson=require('jayson/promise');var client=jayson['client'][_0x0192('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x5939a3,_0x1b1be4,_0x496ce6){return new BPromise(function(_0x222c75,_0x4f9501){return client[_0x0192('0xa')](_0x5939a3,_0x496ce6)[_0x0192('0xb')](function(_0x224fbf){logger[_0x0192('0xc')](_0x0192('0xd'),_0x1b1be4,'request\x20sent');logger[_0x0192('0xe')](_0x0192('0xf'),_0x1b1be4,_0x0192('0x10'),JSON[_0x0192('0x11')](_0x224fbf));if(_0x224fbf['error']){if(_0x224fbf[_0x0192('0x12')][_0x0192('0x13')]===0x1f4){logger[_0x0192('0x12')](_0x0192('0xd'),_0x1b1be4,_0x224fbf[_0x0192('0x12')][_0x0192('0x14')]);return _0x4f9501(_0x224fbf[_0x0192('0x12')][_0x0192('0x14')]);}logger['error'](_0x0192('0xd'),_0x1b1be4,_0x224fbf['error']['message']);return _0x222c75(_0x224fbf['error'][_0x0192('0x14')]);}else{logger[_0x0192('0xc')](_0x0192('0xd'),_0x1b1be4,_0x0192('0x10'));_0x222c75(_0x224fbf['result']['message']);}})['catch'](function(_0x5e299f){logger['error']('SugarcrmAccount,\x20%s,\x20%s',_0x1b1be4,_0x5e299f);_0x4f9501(_0x5e299f);});});}exports[_0x0192('0x15')]=function(_0x59bfb0){var _0x4aaebf=this;return new Promise(function(_0x531e59,_0x438548){return db['SugarcrmAccount'][_0x0192('0x16')]({'raw':_0x59bfb0['options']?_0x59bfb0[_0x0192('0x17')][_0x0192('0x18')]===undefined?!![]:![]:!![],'where':_0x59bfb0[_0x0192('0x17')]?_0x59bfb0[_0x0192('0x17')][_0x0192('0x19')]||null:null,'attributes':_0x59bfb0[_0x0192('0x17')]?_0x59bfb0[_0x0192('0x17')][_0x0192('0x1a')]||null:null,'limit':_0x59bfb0[_0x0192('0x17')]?_0x59bfb0[_0x0192('0x17')]['limit']||null:null,'include':_0x59bfb0['options']?_0x59bfb0[_0x0192('0x17')][_0x0192('0x1b')]?_[_0x0192('0x1c')](_0x59bfb0[_0x0192('0x17')]['include'],function(_0x24acef){return{'model':db[_0x24acef['model']],'as':_0x24acef['as'],'attributes':_0x24acef[_0x0192('0x1a')],'include':_0x24acef[_0x0192('0x1b')]?_[_0x0192('0x1c')](_0x24acef[_0x0192('0x1b')],function(_0x23615d){return{'model':db[_0x23615d[_0x0192('0x1d')]],'as':_0x23615d['as'],'attributes':_0x23615d[_0x0192('0x1a')],'include':_0x23615d[_0x0192('0x1b')]?_[_0x0192('0x1c')](_0x23615d['include'],function(_0x31778e){return{'model':db[_0x31778e[_0x0192('0x1d')]],'as':_0x31778e['as'],'attributes':_0x31778e[_0x0192('0x1a')]};}):[]};}):[]};}):[]:[]})[_0x0192('0xb')](function(_0x329438){logger['info'](_0x0192('0x15'),_0x59bfb0);logger[_0x0192('0xe')](_0x0192('0x15'),_0x59bfb0,JSON['stringify'](_0x329438));_0x531e59(_0x329438);})['catch'](function(_0xbfd8b6){logger[_0x0192('0x12')](_0x0192('0x15'),_0xbfd8b6[_0x0192('0x14')],_0x59bfb0);_0x438548(_0x4aaebf[_0x0192('0x12')](0x1f4,_0xbfd8b6['message']));});});};exports[_0x0192('0x1e')]=function(_0x927f22){var _0x2ac9f6=this;return new Promise(function(_0x4095d6,_0x1075e6){return db[_0x0192('0x1f')][_0x0192('0x20')]({'raw':_0x927f22[_0x0192('0x17')]?_0x927f22['options'][_0x0192('0x18')]===undefined?!![]:![]:!![],'where':_0x927f22['options']?_0x927f22[_0x0192('0x17')][_0x0192('0x19')]||null:null,'attributes':_0x927f22['options']?_0x927f22[_0x0192('0x17')][_0x0192('0x1a')]||null:null,'include':_0x927f22['options']?_0x927f22[_0x0192('0x17')]['include']?_[_0x0192('0x1c')](_0x927f22['options']['include'],function(_0x1aaad0){return{'model':db[_0x1aaad0[_0x0192('0x1d')]],'as':_0x1aaad0['as'],'attributes':_0x1aaad0[_0x0192('0x1a')],'include':_0x1aaad0[_0x0192('0x1b')]?_[_0x0192('0x1c')](_0x1aaad0[_0x0192('0x1b')],function(_0x57ef43){return{'model':db[_0x57ef43['model']],'as':_0x57ef43['as'],'attributes':_0x57ef43[_0x0192('0x1a')],'include':_0x57ef43[_0x0192('0x1b')]?_['map'](_0x57ef43[_0x0192('0x1b')],function(_0x32a3d3){return{'model':db[_0x32a3d3['model']],'as':_0x32a3d3['as'],'attributes':_0x32a3d3[_0x0192('0x1a')]};}):[]};}):[]};}):[]:[]})[_0x0192('0xb')](function(_0x44efcf){logger['info'](_0x0192('0x1e'),_0x927f22);logger[_0x0192('0xe')](_0x0192('0x1e'),_0x927f22,JSON[_0x0192('0x11')](_0x44efcf));_0x4095d6(_0x44efcf);})[_0x0192('0x21')](function(_0x4b368d){logger['error'](_0x0192('0x1e'),_0x4b368d[_0x0192('0x14')],_0x927f22);_0x1075e6(_0x2ac9f6[_0x0192('0x12')](0x1f4,_0x4b368d[_0x0192('0x14')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd9a0=['getSubjects','/:id/descriptions','getDescriptions','create','put','destroy','exports','multer','util','connect-timeout','express','fs-extra','../../components/interaction/service','./intSugarcrmConfiguration.controller','get','isAuthenticated','index','/:id','show','/:id/subjects'];(function(_0x570973,_0x51db7e){var _0x4e2c87=function(_0x1e5558){while(--_0x1e5558){_0x570973['push'](_0x570973['shift']());}};_0x4e2c87(++_0x51db7e);}(_0xd9a0,0x183));var _0x0d9a=function(_0x555d4d,_0x828096){_0x555d4d=_0x555d4d-0x0;var _0x4966ed=_0xd9a0[_0x555d4d];return _0x4966ed;};'use strict';var multer=require(_0x0d9a('0x0'));var util=require(_0x0d9a('0x1'));var path=require('path');var timeout=require(_0x0d9a('0x2'));var express=require(_0x0d9a('0x3'));var router=express['Router']();var fs_extra=require(_0x0d9a('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0x0d9a('0x5'));var config=require('../../config/environment');var controller=require(_0x0d9a('0x6'));router[_0x0d9a('0x7')]('/',auth[_0x0d9a('0x8')](),controller[_0x0d9a('0x9')]);router['get'](_0x0d9a('0xa'),auth['isAuthenticated'](),controller[_0x0d9a('0xb')]);router[_0x0d9a('0x7')]('/:id/fields',auth[_0x0d9a('0x8')](),controller['getFields']);router[_0x0d9a('0x7')](_0x0d9a('0xc'),auth[_0x0d9a('0x8')](),controller[_0x0d9a('0xd')]);router[_0x0d9a('0x7')](_0x0d9a('0xe'),auth['isAuthenticated'](),controller[_0x0d9a('0xf')]);router['post']('/',auth['isAuthenticated'](),controller[_0x0d9a('0x10')]);router[_0x0d9a('0x11')]('/:id',auth[_0x0d9a('0x8')](),controller['update']);router['delete'](_0x0d9a('0xa'),auth[_0x0d9a('0x8')](),controller[_0x0d9a('0x12')]);module[_0x0d9a('0x13')]=router;
\ No newline at end of file
+var _0x8fb5=['destroy','exports','multer','util','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./intSugarcrmConfiguration.controller','get','/:id','show','/:id/fields','isAuthenticated','getFields','/:id/subjects','getSubjects','/:id/descriptions','getDescriptions','post','create','put','update','delete'];(function(_0x55c00d,_0x520cb6){var _0x254a8f=function(_0x2b3378){while(--_0x2b3378){_0x55c00d['push'](_0x55c00d['shift']());}};_0x254a8f(++_0x520cb6);}(_0x8fb5,0xbf));var _0x58fb=function(_0x3213b4,_0x3cddd0){_0x3213b4=_0x3213b4-0x0;var _0xa97785=_0x8fb5[_0x3213b4];return _0xa97785;};'use strict';var multer=require(_0x58fb('0x0'));var util=require(_0x58fb('0x1'));var path=require('path');var timeout=require(_0x58fb('0x2'));var express=require(_0x58fb('0x3'));var router=express[_0x58fb('0x4')]();var fs_extra=require(_0x58fb('0x5'));var auth=require(_0x58fb('0x6'));var interaction=require(_0x58fb('0x7'));var config=require(_0x58fb('0x8'));var controller=require(_0x58fb('0x9'));router['get']('/',auth['isAuthenticated'](),controller['index']);router[_0x58fb('0xa')](_0x58fb('0xb'),auth['isAuthenticated'](),controller[_0x58fb('0xc')]);router[_0x58fb('0xa')](_0x58fb('0xd'),auth[_0x58fb('0xe')](),controller[_0x58fb('0xf')]);router[_0x58fb('0xa')](_0x58fb('0x10'),auth[_0x58fb('0xe')](),controller[_0x58fb('0x11')]);router[_0x58fb('0xa')](_0x58fb('0x12'),auth[_0x58fb('0xe')](),controller[_0x58fb('0x13')]);router[_0x58fb('0x14')]('/',auth[_0x58fb('0xe')](),controller[_0x58fb('0x15')]);router[_0x58fb('0x16')](_0x58fb('0xb'),auth[_0x58fb('0xe')](),controller[_0x58fb('0x17')]);router[_0x58fb('0x18')]('/:id',auth[_0x58fb('0xe')](),controller[_0x58fb('0x19')]);module[_0x58fb('0x1a')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x01b0=['exports'];(function(_0x413aa2,_0x46a0e1){var _0x1d3639=function(_0x53391d){while(--_0x53391d){_0x413aa2['push'](_0x413aa2['shift']());}};_0x1d3639(++_0x46a0e1);}(_0x01b0,0xb3));var _0x001b=function(_0x1bab7d,_0x422688){_0x1bab7d=_0x1bab7d-0x0;var _0x42e972=_0x01b0[_0x1bab7d];return _0x42e972;};'use strict';var Sequelize=require('sequelize');module[_0x001b('0x0')]={'name':{'type':Sequelize['STRING']},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0x0157=['STRING','sequelize','exports'];(function(_0x47b493,_0x32457d){var _0x9da44d=function(_0x125d86){while(--_0x125d86){_0x47b493['push'](_0x47b493['shift']());}};_0x9da44d(++_0x32457d);}(_0x0157,0x1f3));var _0x7015=function(_0x45f1f5,_0x3824ab){_0x45f1f5=_0x45f1f5-0x0;var _0x45060b=_0x0157[_0x45f1f5];return _0x45060b;};'use strict';var Sequelize=require(_0x7015('0x0'));module[_0x7015('0x1')]={'name':{'type':Sequelize[_0x7015('0x2')]},'description':{'type':Sequelize[_0x7015('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd6d1=['set','Content-Range','update','then','destroy','error','name','send','map','SugarcrmConfiguration','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','filter','merge','options','includeAll','include','findAll','rows','params','find','catch','create','body','getFields','findOne','SugarcrmField','nolimit','getSubjects','getDescriptions','eml-format','request-promise','moment','bluebird','util','sox','ejs','fs-extra','lodash','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','limit','count','offset'];(function(_0x3bec69,_0x178e02){var _0x5bb4b0=function(_0x261b4c){while(--_0x261b4c){_0x3bec69['push'](_0x3bec69['shift']());}};_0x5bb4b0(++_0x178e02);}(_0xd6d1,0x195));var _0x1d6d=function(_0x5beb94,_0x489e5b){_0x5beb94=_0x5beb94-0x0;var _0x3958e2=_0xd6d1[_0x5beb94];return _0x3958e2;};'use strict';var emlformat=require(_0x1d6d('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x1d6d('0x1'));var moment=require(_0x1d6d('0x2'));var BPromise=require(_0x1d6d('0x3'));var Mustache=require('mustache');var util=require(_0x1d6d('0x4'));var path=require('path');var sox=require(_0x1d6d('0x5'));var csv=require('to-csv');var ejs=require(_0x1d6d('0x6'));var fs=require('fs');var fs_extra=require(_0x1d6d('0x7'));var _=require(_0x1d6d('0x8'));var squel=require('squel');var crypto=require(_0x1d6d('0x9'));var jsforce=require('jsforce');var deskjs=require(_0x1d6d('0xa'));var toCsv=require('to-csv');var querystring=require(_0x1d6d('0xb'));var Papa=require(_0x1d6d('0xc'));var Redis=require(_0x1d6d('0xd'));var authService=require(_0x1d6d('0xe'));var qs=require(_0x1d6d('0xf'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x1d6d('0x10'))('api');var utils=require(_0x1d6d('0x11'));var config=require(_0x1d6d('0x12'));var licenseUtil=require(_0x1d6d('0x13'));var db=require(_0x1d6d('0x14'))['db'];function respondWithStatusCode(_0x1d3c53,_0xb0be9f){_0xb0be9f=_0xb0be9f||0xcc;return function(_0x5aeeba){if(_0x5aeeba){return _0x1d3c53['sendStatus'](_0xb0be9f);}return _0x1d3c53[_0x1d6d('0x15')](_0xb0be9f)[_0x1d6d('0x16')]();};}function respondWithResult(_0x573121,_0x485026){_0x485026=_0x485026||0xc8;return function(_0x8ee771){if(_0x8ee771){return _0x573121[_0x1d6d('0x15')](_0x485026)[_0x1d6d('0x17')](_0x8ee771);}};}function respondWithFilteredResult(_0x49296f,_0x537dad){return function(_0x157f1f){if(_0x157f1f){var _0x50e26f=typeof _0x537dad['offset']==='undefined'&&typeof _0x537dad[_0x1d6d('0x18')]==='undefined';var _0x39a151=_0x157f1f[_0x1d6d('0x19')];var _0x2f00d3=_0x50e26f?0x0:_0x537dad[_0x1d6d('0x1a')];var _0x4186b5=_0x50e26f?_0x157f1f[_0x1d6d('0x19')]:_0x537dad['offset']+_0x537dad[_0x1d6d('0x18')];var _0xbaa494;if(_0x4186b5>=_0x39a151){_0x4186b5=_0x39a151;_0xbaa494=0xc8;}else{_0xbaa494=0xce;}_0x49296f[_0x1d6d('0x15')](_0xbaa494);return _0x49296f[_0x1d6d('0x1b')](_0x1d6d('0x1c'),_0x2f00d3+'-'+_0x4186b5+'/'+_0x39a151)['json'](_0x157f1f);}return null;};}function patchUpdates(_0x5218cf){return function(_0x1ed3e7){try{jsonpatch['apply'](_0x1ed3e7,_0x5218cf,!![]);}catch(_0xdbdac2){return BPromise['reject'](_0xdbdac2);}return _0x1ed3e7['save']();};}function saveUpdates(_0x563ca7,_0x4f451){return function(_0x4348ae){if(_0x4348ae){return _0x4348ae[_0x1d6d('0x1d')](_0x563ca7)[_0x1d6d('0x1e')](function(_0x5ed6b1){return _0x5ed6b1;});}return null;};}function removeEntity(_0x14cb7c,_0x480187){return function(_0xb2e63e){if(_0xb2e63e){return _0xb2e63e[_0x1d6d('0x1f')]()['then'](function(){_0x14cb7c[_0x1d6d('0x15')](0xcc)[_0x1d6d('0x16')]();});}};}function handleEntityNotFound(_0x11d7aa,_0x3ec3b2){return function(_0x2ef17d){if(!_0x2ef17d){_0x11d7aa['sendStatus'](0x194);}return _0x2ef17d;};}function handleError(_0x3848ed,_0x24b637){_0x24b637=_0x24b637||0x1f4;return function(_0x388e36){logger[_0x1d6d('0x20')](_0x388e36['stack']);if(_0x388e36[_0x1d6d('0x21')]){delete _0x388e36[_0x1d6d('0x21')];}_0x3848ed[_0x1d6d('0x15')](_0x24b637)[_0x1d6d('0x22')](_0x388e36);};}exports['index']=function(_0x4c38a3,_0x47ef36){var _0x1afd23={},_0x39cb8d={},_0x39bdca={'count':0x0,'rows':[]};var _0x50153c=_[_0x1d6d('0x23')](db[_0x1d6d('0x24')][_0x1d6d('0x25')],function(_0x30ebbe){return{'name':_0x30ebbe[_0x1d6d('0x26')],'type':_0x30ebbe[_0x1d6d('0x27')][_0x1d6d('0x28')]};});_0x39cb8d[_0x1d6d('0x29')]=_[_0x1d6d('0x23')](_0x50153c,'name');_0x39cb8d['query']=_[_0x1d6d('0x2a')](_0x4c38a3[_0x1d6d('0x2b')]);_0x39cb8d[_0x1d6d('0x2c')]=_[_0x1d6d('0x2d')](_0x39cb8d[_0x1d6d('0x29')],_0x39cb8d[_0x1d6d('0x2b')]);_0x1afd23[_0x1d6d('0x2e')]=_[_0x1d6d('0x2d')](_0x39cb8d[_0x1d6d('0x29')],qs[_0x1d6d('0x2f')](_0x4c38a3[_0x1d6d('0x2b')][_0x1d6d('0x2f')]));_0x1afd23['attributes']=_0x1afd23['attributes'][_0x1d6d('0x30')]?_0x1afd23['attributes']:_0x39cb8d[_0x1d6d('0x29')];if(!_0x4c38a3[_0x1d6d('0x2b')][_0x1d6d('0x31')]('nolimit')){_0x1afd23['limit']=qs[_0x1d6d('0x18')](_0x4c38a3['query'][_0x1d6d('0x18')]);_0x1afd23[_0x1d6d('0x1a')]=qs[_0x1d6d('0x1a')](_0x4c38a3['query'][_0x1d6d('0x1a')]);}_0x1afd23[_0x1d6d('0x32')]=qs[_0x1d6d('0x33')](_0x4c38a3['query'][_0x1d6d('0x33')]);_0x1afd23[_0x1d6d('0x34')]=qs['filters'](_[_0x1d6d('0x35')](_0x4c38a3[_0x1d6d('0x2b')],_0x39cb8d[_0x1d6d('0x2c')]),_0x50153c);if(_0x4c38a3['query'][_0x1d6d('0x36')]){_0x1afd23['where']=_[_0x1d6d('0x37')](_0x1afd23['where'],{'$or':_[_0x1d6d('0x23')](_0x50153c,function(_0x490026){if(_0x490026[_0x1d6d('0x27')]!=='VIRTUAL'){var _0x135583={};_0x135583[_0x490026[_0x1d6d('0x21')]]={'$like':'%'+_0x4c38a3[_0x1d6d('0x2b')]['filter']+'%'};return _0x135583;}})});}_0x1afd23=_[_0x1d6d('0x37')]({},_0x1afd23,_0x4c38a3[_0x1d6d('0x38')]);var _0xee3500={'where':_0x1afd23[_0x1d6d('0x34')]};return db[_0x1d6d('0x24')]['count'](_0xee3500)[_0x1d6d('0x1e')](function(_0x24eee3){_0x39bdca[_0x1d6d('0x19')]=_0x24eee3;if(_0x4c38a3[_0x1d6d('0x2b')][_0x1d6d('0x39')]){_0x1afd23[_0x1d6d('0x3a')]=[{'all':!![]}];}return db[_0x1d6d('0x24')][_0x1d6d('0x3b')](_0x1afd23);})['then'](function(_0x39d365){_0x39bdca[_0x1d6d('0x3c')]=_0x39d365;return _0x39bdca;})[_0x1d6d('0x1e')](respondWithFilteredResult(_0x47ef36,_0x1afd23))['catch'](handleError(_0x47ef36,null));};exports['show']=function(_0x29476e,_0x460b67){var _0xa48d67={'raw':![],'where':{'id':_0x29476e[_0x1d6d('0x3d')]['id']}},_0x6facf5={};_0x6facf5['model']=_[_0x1d6d('0x2a')](db[_0x1d6d('0x24')][_0x1d6d('0x25')]);_0x6facf5[_0x1d6d('0x2b')]=_[_0x1d6d('0x2a')](_0x29476e[_0x1d6d('0x2b')]);_0x6facf5['filters']=_[_0x1d6d('0x2d')](_0x6facf5[_0x1d6d('0x29')],_0x6facf5[_0x1d6d('0x2b')]);_0xa48d67['attributes']=_['intersection'](_0x6facf5[_0x1d6d('0x29')],qs[_0x1d6d('0x2f')](_0x29476e[_0x1d6d('0x2b')][_0x1d6d('0x2f')]));_0xa48d67['attributes']=_0xa48d67[_0x1d6d('0x2e')][_0x1d6d('0x30')]?_0xa48d67[_0x1d6d('0x2e')]:_0x6facf5[_0x1d6d('0x29')];if(_0x29476e[_0x1d6d('0x2b')][_0x1d6d('0x39')]){_0xa48d67[_0x1d6d('0x3a')]=[{'all':!![]}];}_0xa48d67=_[_0x1d6d('0x37')]({},_0xa48d67,_0x29476e['options']);return db[_0x1d6d('0x24')][_0x1d6d('0x3e')](_0xa48d67)[_0x1d6d('0x1e')](handleEntityNotFound(_0x460b67,null))[_0x1d6d('0x1e')](respondWithResult(_0x460b67,null))[_0x1d6d('0x3f')](handleError(_0x460b67,null));};exports[_0x1d6d('0x40')]=function(_0x40f135,_0x5c4754){return db[_0x1d6d('0x24')][_0x1d6d('0x40')](_0x40f135[_0x1d6d('0x41')],{})[_0x1d6d('0x1e')](respondWithResult(_0x5c4754,0xc9))[_0x1d6d('0x3f')](handleError(_0x5c4754,null));};exports[_0x1d6d('0x1d')]=function(_0x3d2381,_0x23bd19){if(_0x3d2381[_0x1d6d('0x41')]['id']){delete _0x3d2381[_0x1d6d('0x41')]['id'];}return db[_0x1d6d('0x24')][_0x1d6d('0x3e')]({'where':{'id':_0x3d2381[_0x1d6d('0x3d')]['id']}})[_0x1d6d('0x1e')](handleEntityNotFound(_0x23bd19,null))['then'](saveUpdates(_0x3d2381[_0x1d6d('0x41')],null))['then'](respondWithResult(_0x23bd19,null))[_0x1d6d('0x3f')](handleError(_0x23bd19,null));};exports[_0x1d6d('0x1f')]=function(_0x34e0d1,_0x5f4e14){return db[_0x1d6d('0x24')][_0x1d6d('0x3e')]({'where':{'id':_0x34e0d1[_0x1d6d('0x3d')]['id']}})[_0x1d6d('0x1e')](handleEntityNotFound(_0x5f4e14,null))[_0x1d6d('0x1e')](removeEntity(_0x5f4e14,null))[_0x1d6d('0x3f')](handleError(_0x5f4e14,null));};exports[_0x1d6d('0x42')]=function(_0x44b929,_0x47c3dc,_0x21c5a5){var _0x198685={};var _0x4d4af8={};var _0x1c8cbf;var _0x5aa2a8;return db[_0x1d6d('0x24')][_0x1d6d('0x43')]({'where':{'id':_0x44b929[_0x1d6d('0x3d')]['id']}})[_0x1d6d('0x1e')](handleEntityNotFound(_0x47c3dc,null))[_0x1d6d('0x1e')](function(_0x4ef876){if(_0x4ef876){_0x1c8cbf=_0x4ef876;_0x4d4af8[_0x1d6d('0x29')]=_[_0x1d6d('0x2a')](db[_0x1d6d('0x44')][_0x1d6d('0x25')]);_0x4d4af8['query']=_[_0x1d6d('0x2a')](_0x44b929[_0x1d6d('0x2b')]);_0x4d4af8[_0x1d6d('0x2c')]=_[_0x1d6d('0x2d')](_0x4d4af8[_0x1d6d('0x29')],_0x4d4af8[_0x1d6d('0x2b')]);_0x198685[_0x1d6d('0x2e')]=_[_0x1d6d('0x2d')](_0x4d4af8[_0x1d6d('0x29')],qs[_0x1d6d('0x2f')](_0x44b929[_0x1d6d('0x2b')][_0x1d6d('0x2f')]));_0x198685[_0x1d6d('0x2e')]=_0x198685[_0x1d6d('0x2e')][_0x1d6d('0x30')]?_0x198685[_0x1d6d('0x2e')]:_0x4d4af8[_0x1d6d('0x29')];_0x198685[_0x1d6d('0x32')]=qs['sort'](_0x44b929[_0x1d6d('0x2b')]['sort']);_0x198685[_0x1d6d('0x34')]=qs[_0x1d6d('0x2c')](_['pick'](_0x44b929[_0x1d6d('0x2b')],_0x4d4af8[_0x1d6d('0x2c')]));if(_0x44b929[_0x1d6d('0x2b')][_0x1d6d('0x36')]){_0x198685[_0x1d6d('0x34')]=_[_0x1d6d('0x37')](_0x198685['where'],{'$or':_[_0x1d6d('0x23')](_0x198685[_0x1d6d('0x2e')],function(_0x102897){var _0x571155={};_0x571155[_0x102897]={'$like':'%'+_0x44b929['query'][_0x1d6d('0x36')]+'%'};return _0x571155;})});}_0x198685=_[_0x1d6d('0x37')]({},_0x198685,_0x44b929[_0x1d6d('0x38')]);return _0x1c8cbf['getFields'](_0x198685);}})[_0x1d6d('0x1e')](function(_0x15f0be){if(_0x15f0be){_0x5aa2a8=_0x15f0be[_0x1d6d('0x30')];if(!_0x44b929[_0x1d6d('0x2b')]['hasOwnProperty'](_0x1d6d('0x45'))){_0x198685['limit']=qs[_0x1d6d('0x18')](_0x44b929[_0x1d6d('0x2b')][_0x1d6d('0x18')]);_0x198685[_0x1d6d('0x1a')]=qs[_0x1d6d('0x1a')](_0x44b929[_0x1d6d('0x2b')][_0x1d6d('0x1a')]);}return _0x1c8cbf[_0x1d6d('0x42')](_0x198685);}})[_0x1d6d('0x1e')](function(_0x1da450){if(_0x1da450){return _0x1da450?{'count':_0x5aa2a8,'rows':_0x1da450}:null;}})['then'](respondWithResult(_0x47c3dc,null))[_0x1d6d('0x3f')](handleError(_0x47c3dc,null));};exports['getSubjects']=function(_0x404964,_0x35ed9c,_0x452ebf){var _0x206c50={};var _0x3f2413={};var _0x2446bd;var _0x1289fa;return db[_0x1d6d('0x24')][_0x1d6d('0x43')]({'where':{'id':_0x404964[_0x1d6d('0x3d')]['id']}})['then'](handleEntityNotFound(_0x35ed9c,null))['then'](function(_0x51ff19){if(_0x51ff19){_0x2446bd=_0x51ff19;_0x3f2413[_0x1d6d('0x29')]=_[_0x1d6d('0x2a')](db[_0x1d6d('0x44')][_0x1d6d('0x25')]);_0x3f2413[_0x1d6d('0x2b')]=_[_0x1d6d('0x2a')](_0x404964[_0x1d6d('0x2b')]);_0x3f2413[_0x1d6d('0x2c')]=_['intersection'](_0x3f2413[_0x1d6d('0x29')],_0x3f2413[_0x1d6d('0x2b')]);_0x206c50[_0x1d6d('0x2e')]=_[_0x1d6d('0x2d')](_0x3f2413['model'],qs[_0x1d6d('0x2f')](_0x404964[_0x1d6d('0x2b')][_0x1d6d('0x2f')]));_0x206c50['attributes']=_0x206c50['attributes'][_0x1d6d('0x30')]?_0x206c50['attributes']:_0x3f2413['model'];_0x206c50[_0x1d6d('0x32')]=qs[_0x1d6d('0x33')](_0x404964[_0x1d6d('0x2b')][_0x1d6d('0x33')]);_0x206c50[_0x1d6d('0x34')]=qs[_0x1d6d('0x2c')](_['pick'](_0x404964['query'],_0x3f2413[_0x1d6d('0x2c')]));if(_0x404964[_0x1d6d('0x2b')][_0x1d6d('0x36')]){_0x206c50[_0x1d6d('0x34')]=_['merge'](_0x206c50[_0x1d6d('0x34')],{'$or':_['map'](_0x206c50[_0x1d6d('0x2e')],function(_0x2a05e7){var _0x3de108={};_0x3de108[_0x2a05e7]={'$like':'%'+_0x404964[_0x1d6d('0x2b')][_0x1d6d('0x36')]+'%'};return _0x3de108;})});}_0x206c50=_['merge']({},_0x206c50,_0x404964[_0x1d6d('0x38')]);return _0x2446bd[_0x1d6d('0x46')](_0x206c50);}})[_0x1d6d('0x1e')](function(_0x48bf9b){if(_0x48bf9b){_0x1289fa=_0x48bf9b[_0x1d6d('0x30')];if(!_0x404964['query'][_0x1d6d('0x31')](_0x1d6d('0x45'))){_0x206c50[_0x1d6d('0x18')]=qs[_0x1d6d('0x18')](_0x404964['query']['limit']);_0x206c50['offset']=qs[_0x1d6d('0x1a')](_0x404964[_0x1d6d('0x2b')][_0x1d6d('0x1a')]);}return _0x2446bd['getSubjects'](_0x206c50);}})[_0x1d6d('0x1e')](function(_0x45f06b){if(_0x45f06b){return _0x45f06b?{'count':_0x1289fa,'rows':_0x45f06b}:null;}})[_0x1d6d('0x1e')](respondWithResult(_0x35ed9c,null))[_0x1d6d('0x3f')](handleError(_0x35ed9c,null));};exports[_0x1d6d('0x47')]=function(_0x1d0324,_0x2adfad,_0x403e80){var _0x41641f={};var _0x53c58e={};var _0xf86b93;var _0x45a647;return db[_0x1d6d('0x24')][_0x1d6d('0x43')]({'where':{'id':_0x1d0324['params']['id']}})[_0x1d6d('0x1e')](handleEntityNotFound(_0x2adfad,null))[_0x1d6d('0x1e')](function(_0x38b9d8){if(_0x38b9d8){_0xf86b93=_0x38b9d8;_0x53c58e[_0x1d6d('0x29')]=_['keys'](db[_0x1d6d('0x44')][_0x1d6d('0x25')]);_0x53c58e[_0x1d6d('0x2b')]=_[_0x1d6d('0x2a')](_0x1d0324[_0x1d6d('0x2b')]);_0x53c58e[_0x1d6d('0x2c')]=_['intersection'](_0x53c58e[_0x1d6d('0x29')],_0x53c58e[_0x1d6d('0x2b')]);_0x41641f[_0x1d6d('0x2e')]=_[_0x1d6d('0x2d')](_0x53c58e['model'],qs[_0x1d6d('0x2f')](_0x1d0324[_0x1d6d('0x2b')][_0x1d6d('0x2f')]));_0x41641f['attributes']=_0x41641f[_0x1d6d('0x2e')][_0x1d6d('0x30')]?_0x41641f[_0x1d6d('0x2e')]:_0x53c58e[_0x1d6d('0x29')];_0x41641f['order']=qs['sort'](_0x1d0324['query'][_0x1d6d('0x33')]);_0x41641f[_0x1d6d('0x34')]=qs[_0x1d6d('0x2c')](_[_0x1d6d('0x35')](_0x1d0324['query'],_0x53c58e[_0x1d6d('0x2c')]));if(_0x1d0324['query'][_0x1d6d('0x36')]){_0x41641f[_0x1d6d('0x34')]=_[_0x1d6d('0x37')](_0x41641f[_0x1d6d('0x34')],{'$or':_['map'](_0x41641f[_0x1d6d('0x2e')],function(_0x287e59){var _0x38e1f9={};_0x38e1f9[_0x287e59]={'$like':'%'+_0x1d0324[_0x1d6d('0x2b')][_0x1d6d('0x36')]+'%'};return _0x38e1f9;})});}_0x41641f=_[_0x1d6d('0x37')]({},_0x41641f,_0x1d0324[_0x1d6d('0x38')]);return _0xf86b93[_0x1d6d('0x47')](_0x41641f);}})[_0x1d6d('0x1e')](function(_0x3e9da0){if(_0x3e9da0){_0x45a647=_0x3e9da0[_0x1d6d('0x30')];if(!_0x1d0324[_0x1d6d('0x2b')][_0x1d6d('0x31')](_0x1d6d('0x45'))){_0x41641f[_0x1d6d('0x18')]=qs[_0x1d6d('0x18')](_0x1d0324[_0x1d6d('0x2b')][_0x1d6d('0x18')]);_0x41641f['offset']=qs[_0x1d6d('0x1a')](_0x1d0324[_0x1d6d('0x2b')][_0x1d6d('0x1a')]);}return _0xf86b93[_0x1d6d('0x47')](_0x41641f);}})[_0x1d6d('0x1e')](function(_0x486486){if(_0x486486){return _0x486486?{'count':_0x45a647,'rows':_0x486486}:null;}})[_0x1d6d('0x1e')](respondWithResult(_0x2adfad,null))[_0x1d6d('0x3f')](handleError(_0x2adfad,null));};
\ No newline at end of file
+var _0x4ed7=['fields','nolimit','order','sort','pick','filter','merge','where','VIRTUAL','includeAll','include','catch','show','params','options','find','create','body','getFields','length','hasOwnProperty','SugarcrmField','getSubjects','getDescriptions','findOne','rimraf','zip-dir','request-promise','moment','bluebird','mustache','path','sox','ejs','fs-extra','squel','crypto','desk.js','to-csv','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','sendStatus','status','json','offset','undefined','count','limit','set','Content-Range','apply','reject','save','update','destroy','then','end','name','map','SugarcrmConfiguration','rawAttributes','fieldName','key','model','keys','query','filters','intersection','attributes'];(function(_0x4a9fb1,_0x273043){var _0x348672=function(_0x142b69){while(--_0x142b69){_0x4a9fb1['push'](_0x4a9fb1['shift']());}};_0x348672(++_0x273043);}(_0x4ed7,0x13d));var _0x74ed=function(_0x38af48,_0x400460){_0x38af48=_0x38af48-0x0;var _0x445384=_0x4ed7[_0x38af48];return _0x445384;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x74ed('0x0'));var zipdir=require(_0x74ed('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x74ed('0x2'));var moment=require(_0x74ed('0x3'));var BPromise=require(_0x74ed('0x4'));var Mustache=require(_0x74ed('0x5'));var util=require('util');var path=require(_0x74ed('0x6'));var sox=require(_0x74ed('0x7'));var csv=require('to-csv');var ejs=require(_0x74ed('0x8'));var fs=require('fs');var fs_extra=require(_0x74ed('0x9'));var _=require('lodash');var squel=require(_0x74ed('0xa'));var crypto=require(_0x74ed('0xb'));var jsforce=require('jsforce');var deskjs=require(_0x74ed('0xc'));var toCsv=require(_0x74ed('0xd'));var querystring=require('querystring');var Papa=require(_0x74ed('0xe'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x74ed('0xf'));var as=require(_0x74ed('0x10'));var hardwareService=require(_0x74ed('0x11'));var logger=require(_0x74ed('0x12'))(_0x74ed('0x13'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x446fb7,_0x111ad5){_0x111ad5=_0x111ad5||0xcc;return function(_0x43fe07){if(_0x43fe07){return _0x446fb7[_0x74ed('0x14')](_0x111ad5);}return _0x446fb7['status'](_0x111ad5)['end']();};}function respondWithResult(_0x1add06,_0x4df5fa){_0x4df5fa=_0x4df5fa||0xc8;return function(_0xa945a1){if(_0xa945a1){return _0x1add06[_0x74ed('0x15')](_0x4df5fa)[_0x74ed('0x16')](_0xa945a1);}};}function respondWithFilteredResult(_0x299e0c,_0xb31aa0){return function(_0x30e2ce){if(_0x30e2ce){var _0x8210fb=typeof _0xb31aa0[_0x74ed('0x17')]===_0x74ed('0x18')&&typeof _0xb31aa0['limit']===_0x74ed('0x18');var _0x1b7a5b=_0x30e2ce[_0x74ed('0x19')];var _0xac8449=_0x8210fb?0x0:_0xb31aa0[_0x74ed('0x17')];var _0x222e16=_0x8210fb?_0x30e2ce[_0x74ed('0x19')]:_0xb31aa0[_0x74ed('0x17')]+_0xb31aa0[_0x74ed('0x1a')];var _0x5c9def;if(_0x222e16>=_0x1b7a5b){_0x222e16=_0x1b7a5b;_0x5c9def=0xc8;}else{_0x5c9def=0xce;}_0x299e0c[_0x74ed('0x15')](_0x5c9def);return _0x299e0c[_0x74ed('0x1b')](_0x74ed('0x1c'),_0xac8449+'-'+_0x222e16+'/'+_0x1b7a5b)[_0x74ed('0x16')](_0x30e2ce);}return null;};}function patchUpdates(_0x43ec93){return function(_0x42f847){try{jsonpatch[_0x74ed('0x1d')](_0x42f847,_0x43ec93,!![]);}catch(_0x41606c){return BPromise[_0x74ed('0x1e')](_0x41606c);}return _0x42f847[_0x74ed('0x1f')]();};}function saveUpdates(_0x5465fb,_0x215fcd){return function(_0x4862e6){if(_0x4862e6){return _0x4862e6[_0x74ed('0x20')](_0x5465fb)['then'](function(_0x5ba07e){return _0x5ba07e;});}return null;};}function removeEntity(_0x1a9a83,_0x55732f){return function(_0x5379dc){if(_0x5379dc){return _0x5379dc[_0x74ed('0x21')]()[_0x74ed('0x22')](function(){_0x1a9a83['status'](0xcc)[_0x74ed('0x23')]();});}};}function handleEntityNotFound(_0x1a75b9,_0x36387a){return function(_0x203201){if(!_0x203201){_0x1a75b9['sendStatus'](0x194);}return _0x203201;};}function handleError(_0x5ec780,_0x290475){_0x290475=_0x290475||0x1f4;return function(_0x3b44c3){logger['error'](_0x3b44c3['stack']);if(_0x3b44c3[_0x74ed('0x24')]){delete _0x3b44c3[_0x74ed('0x24')];}_0x5ec780['status'](_0x290475)['send'](_0x3b44c3);};}exports['index']=function(_0x52b76e,_0x420190){var _0x1fef08={},_0x113d29={},_0x4bda7e={'count':0x0,'rows':[]};var _0x50640c=_[_0x74ed('0x25')](db[_0x74ed('0x26')][_0x74ed('0x27')],function(_0x153ae8){return{'name':_0x153ae8[_0x74ed('0x28')],'type':_0x153ae8['type'][_0x74ed('0x29')]};});_0x113d29[_0x74ed('0x2a')]=_[_0x74ed('0x25')](_0x50640c,_0x74ed('0x24'));_0x113d29['query']=_[_0x74ed('0x2b')](_0x52b76e[_0x74ed('0x2c')]);_0x113d29[_0x74ed('0x2d')]=_[_0x74ed('0x2e')](_0x113d29[_0x74ed('0x2a')],_0x113d29[_0x74ed('0x2c')]);_0x1fef08[_0x74ed('0x2f')]=_[_0x74ed('0x2e')](_0x113d29[_0x74ed('0x2a')],qs[_0x74ed('0x30')](_0x52b76e[_0x74ed('0x2c')][_0x74ed('0x30')]));_0x1fef08[_0x74ed('0x2f')]=_0x1fef08[_0x74ed('0x2f')]['length']?_0x1fef08[_0x74ed('0x2f')]:_0x113d29[_0x74ed('0x2a')];if(!_0x52b76e[_0x74ed('0x2c')]['hasOwnProperty'](_0x74ed('0x31'))){_0x1fef08[_0x74ed('0x1a')]=qs[_0x74ed('0x1a')](_0x52b76e[_0x74ed('0x2c')][_0x74ed('0x1a')]);_0x1fef08['offset']=qs[_0x74ed('0x17')](_0x52b76e[_0x74ed('0x2c')]['offset']);}_0x1fef08[_0x74ed('0x32')]=qs[_0x74ed('0x33')](_0x52b76e['query'][_0x74ed('0x33')]);_0x1fef08['where']=qs[_0x74ed('0x2d')](_[_0x74ed('0x34')](_0x52b76e[_0x74ed('0x2c')],_0x113d29[_0x74ed('0x2d')]),_0x50640c);if(_0x52b76e['query'][_0x74ed('0x35')]){_0x1fef08['where']=_[_0x74ed('0x36')](_0x1fef08[_0x74ed('0x37')],{'$or':_['map'](_0x50640c,function(_0x38a9f8){if(_0x38a9f8['type']!==_0x74ed('0x38')){var _0x202b54={};_0x202b54[_0x38a9f8['name']]={'$like':'%'+_0x52b76e['query'][_0x74ed('0x35')]+'%'};return _0x202b54;}})});}_0x1fef08=_[_0x74ed('0x36')]({},_0x1fef08,_0x52b76e['options']);var _0x209c1d={'where':_0x1fef08[_0x74ed('0x37')]};return db[_0x74ed('0x26')][_0x74ed('0x19')](_0x209c1d)[_0x74ed('0x22')](function(_0x581ebd){_0x4bda7e[_0x74ed('0x19')]=_0x581ebd;if(_0x52b76e[_0x74ed('0x2c')][_0x74ed('0x39')]){_0x1fef08[_0x74ed('0x3a')]=[{'all':!![]}];}return db[_0x74ed('0x26')]['findAll'](_0x1fef08);})[_0x74ed('0x22')](function(_0x50420d){_0x4bda7e['rows']=_0x50420d;return _0x4bda7e;})['then'](respondWithFilteredResult(_0x420190,_0x1fef08))[_0x74ed('0x3b')](handleError(_0x420190,null));};exports[_0x74ed('0x3c')]=function(_0x54b67b,_0x4ff3bc){var _0x4a408f={'raw':![],'where':{'id':_0x54b67b[_0x74ed('0x3d')]['id']}},_0x4231bc={};_0x4231bc[_0x74ed('0x2a')]=_[_0x74ed('0x2b')](db[_0x74ed('0x26')][_0x74ed('0x27')]);_0x4231bc['query']=_['keys'](_0x54b67b[_0x74ed('0x2c')]);_0x4231bc[_0x74ed('0x2d')]=_[_0x74ed('0x2e')](_0x4231bc['model'],_0x4231bc[_0x74ed('0x2c')]);_0x4a408f[_0x74ed('0x2f')]=_['intersection'](_0x4231bc[_0x74ed('0x2a')],qs[_0x74ed('0x30')](_0x54b67b[_0x74ed('0x2c')]['fields']));_0x4a408f[_0x74ed('0x2f')]=_0x4a408f[_0x74ed('0x2f')]['length']?_0x4a408f['attributes']:_0x4231bc[_0x74ed('0x2a')];if(_0x54b67b[_0x74ed('0x2c')][_0x74ed('0x39')]){_0x4a408f[_0x74ed('0x3a')]=[{'all':!![]}];}_0x4a408f=_['merge']({},_0x4a408f,_0x54b67b[_0x74ed('0x3e')]);return db[_0x74ed('0x26')][_0x74ed('0x3f')](_0x4a408f)[_0x74ed('0x22')](handleEntityNotFound(_0x4ff3bc,null))[_0x74ed('0x22')](respondWithResult(_0x4ff3bc,null))[_0x74ed('0x3b')](handleError(_0x4ff3bc,null));};exports[_0x74ed('0x40')]=function(_0x319ac7,_0x14c091){return db[_0x74ed('0x26')]['create'](_0x319ac7[_0x74ed('0x41')],{})[_0x74ed('0x22')](respondWithResult(_0x14c091,0xc9))[_0x74ed('0x3b')](handleError(_0x14c091,null));};exports[_0x74ed('0x20')]=function(_0x5ce46d,_0x825851){if(_0x5ce46d[_0x74ed('0x41')]['id']){delete _0x5ce46d[_0x74ed('0x41')]['id'];}return db['SugarcrmConfiguration'][_0x74ed('0x3f')]({'where':{'id':_0x5ce46d[_0x74ed('0x3d')]['id']}})[_0x74ed('0x22')](handleEntityNotFound(_0x825851,null))['then'](saveUpdates(_0x5ce46d['body'],null))[_0x74ed('0x22')](respondWithResult(_0x825851,null))[_0x74ed('0x3b')](handleError(_0x825851,null));};exports[_0x74ed('0x21')]=function(_0x3ac963,_0x8af152){return db[_0x74ed('0x26')][_0x74ed('0x3f')]({'where':{'id':_0x3ac963['params']['id']}})[_0x74ed('0x22')](handleEntityNotFound(_0x8af152,null))[_0x74ed('0x22')](removeEntity(_0x8af152,null))[_0x74ed('0x3b')](handleError(_0x8af152,null));};exports[_0x74ed('0x42')]=function(_0x118b5f,_0x45b520,_0x44024e){var _0x6ec112={};var _0xfefb82={};var _0x5026b3;var _0x4b4900;return db[_0x74ed('0x26')]['findOne']({'where':{'id':_0x118b5f['params']['id']}})['then'](handleEntityNotFound(_0x45b520,null))[_0x74ed('0x22')](function(_0x49878c){if(_0x49878c){_0x5026b3=_0x49878c;_0xfefb82[_0x74ed('0x2a')]=_[_0x74ed('0x2b')](db['SugarcrmField']['rawAttributes']);_0xfefb82[_0x74ed('0x2c')]=_[_0x74ed('0x2b')](_0x118b5f[_0x74ed('0x2c')]);_0xfefb82[_0x74ed('0x2d')]=_[_0x74ed('0x2e')](_0xfefb82[_0x74ed('0x2a')],_0xfefb82[_0x74ed('0x2c')]);_0x6ec112[_0x74ed('0x2f')]=_[_0x74ed('0x2e')](_0xfefb82['model'],qs[_0x74ed('0x30')](_0x118b5f[_0x74ed('0x2c')]['fields']));_0x6ec112[_0x74ed('0x2f')]=_0x6ec112['attributes']['length']?_0x6ec112[_0x74ed('0x2f')]:_0xfefb82[_0x74ed('0x2a')];_0x6ec112[_0x74ed('0x32')]=qs[_0x74ed('0x33')](_0x118b5f['query'][_0x74ed('0x33')]);_0x6ec112[_0x74ed('0x37')]=qs[_0x74ed('0x2d')](_['pick'](_0x118b5f[_0x74ed('0x2c')],_0xfefb82[_0x74ed('0x2d')]));if(_0x118b5f[_0x74ed('0x2c')]['filter']){_0x6ec112[_0x74ed('0x37')]=_[_0x74ed('0x36')](_0x6ec112['where'],{'$or':_[_0x74ed('0x25')](_0x6ec112[_0x74ed('0x2f')],function(_0xf96bff){var _0x257e2a={};_0x257e2a[_0xf96bff]={'$like':'%'+_0x118b5f[_0x74ed('0x2c')][_0x74ed('0x35')]+'%'};return _0x257e2a;})});}_0x6ec112=_[_0x74ed('0x36')]({},_0x6ec112,_0x118b5f[_0x74ed('0x3e')]);return _0x5026b3[_0x74ed('0x42')](_0x6ec112);}})[_0x74ed('0x22')](function(_0x3329b3){if(_0x3329b3){_0x4b4900=_0x3329b3[_0x74ed('0x43')];if(!_0x118b5f[_0x74ed('0x2c')][_0x74ed('0x44')]('nolimit')){_0x6ec112['limit']=qs[_0x74ed('0x1a')](_0x118b5f[_0x74ed('0x2c')]['limit']);_0x6ec112[_0x74ed('0x17')]=qs[_0x74ed('0x17')](_0x118b5f[_0x74ed('0x2c')][_0x74ed('0x17')]);}return _0x5026b3['getFields'](_0x6ec112);}})[_0x74ed('0x22')](function(_0x11afd1){if(_0x11afd1){return _0x11afd1?{'count':_0x4b4900,'rows':_0x11afd1}:null;}})[_0x74ed('0x22')](respondWithResult(_0x45b520,null))[_0x74ed('0x3b')](handleError(_0x45b520,null));};exports['getSubjects']=function(_0x30cf41,_0x472ccc,_0x4d689f){var _0x5e0dbe={};var _0x20ccb3={};var _0x3cf824;var _0x218fec;return db[_0x74ed('0x26')]['findOne']({'where':{'id':_0x30cf41[_0x74ed('0x3d')]['id']}})['then'](handleEntityNotFound(_0x472ccc,null))['then'](function(_0x344a69){if(_0x344a69){_0x3cf824=_0x344a69;_0x20ccb3[_0x74ed('0x2a')]=_[_0x74ed('0x2b')](db[_0x74ed('0x45')][_0x74ed('0x27')]);_0x20ccb3[_0x74ed('0x2c')]=_[_0x74ed('0x2b')](_0x30cf41[_0x74ed('0x2c')]);_0x20ccb3[_0x74ed('0x2d')]=_['intersection'](_0x20ccb3['model'],_0x20ccb3[_0x74ed('0x2c')]);_0x5e0dbe[_0x74ed('0x2f')]=_[_0x74ed('0x2e')](_0x20ccb3['model'],qs[_0x74ed('0x30')](_0x30cf41[_0x74ed('0x2c')][_0x74ed('0x30')]));_0x5e0dbe['attributes']=_0x5e0dbe['attributes']['length']?_0x5e0dbe[_0x74ed('0x2f')]:_0x20ccb3[_0x74ed('0x2a')];_0x5e0dbe[_0x74ed('0x32')]=qs[_0x74ed('0x33')](_0x30cf41[_0x74ed('0x2c')]['sort']);_0x5e0dbe[_0x74ed('0x37')]=qs[_0x74ed('0x2d')](_[_0x74ed('0x34')](_0x30cf41[_0x74ed('0x2c')],_0x20ccb3[_0x74ed('0x2d')]));if(_0x30cf41[_0x74ed('0x2c')]['filter']){_0x5e0dbe[_0x74ed('0x37')]=_[_0x74ed('0x36')](_0x5e0dbe[_0x74ed('0x37')],{'$or':_[_0x74ed('0x25')](_0x5e0dbe[_0x74ed('0x2f')],function(_0xaec6ab){var _0x28a1d1={};_0x28a1d1[_0xaec6ab]={'$like':'%'+_0x30cf41[_0x74ed('0x2c')][_0x74ed('0x35')]+'%'};return _0x28a1d1;})});}_0x5e0dbe=_[_0x74ed('0x36')]({},_0x5e0dbe,_0x30cf41[_0x74ed('0x3e')]);return _0x3cf824[_0x74ed('0x46')](_0x5e0dbe);}})[_0x74ed('0x22')](function(_0x3d8b0b){if(_0x3d8b0b){_0x218fec=_0x3d8b0b['length'];if(!_0x30cf41[_0x74ed('0x2c')][_0x74ed('0x44')](_0x74ed('0x31'))){_0x5e0dbe[_0x74ed('0x1a')]=qs[_0x74ed('0x1a')](_0x30cf41[_0x74ed('0x2c')][_0x74ed('0x1a')]);_0x5e0dbe[_0x74ed('0x17')]=qs[_0x74ed('0x17')](_0x30cf41[_0x74ed('0x2c')]['offset']);}return _0x3cf824['getSubjects'](_0x5e0dbe);}})['then'](function(_0x118a37){if(_0x118a37){return _0x118a37?{'count':_0x218fec,'rows':_0x118a37}:null;}})[_0x74ed('0x22')](respondWithResult(_0x472ccc,null))[_0x74ed('0x3b')](handleError(_0x472ccc,null));};exports[_0x74ed('0x47')]=function(_0x15abfa,_0x2de3c1,_0x4cb8b0){var _0x4b584c={};var _0x5ad5b3={};var _0x362b4a;var _0x1a3213;return db[_0x74ed('0x26')][_0x74ed('0x48')]({'where':{'id':_0x15abfa[_0x74ed('0x3d')]['id']}})[_0x74ed('0x22')](handleEntityNotFound(_0x2de3c1,null))[_0x74ed('0x22')](function(_0x9cd5eb){if(_0x9cd5eb){_0x362b4a=_0x9cd5eb;_0x5ad5b3[_0x74ed('0x2a')]=_['keys'](db[_0x74ed('0x45')][_0x74ed('0x27')]);_0x5ad5b3['query']=_[_0x74ed('0x2b')](_0x15abfa[_0x74ed('0x2c')]);_0x5ad5b3[_0x74ed('0x2d')]=_[_0x74ed('0x2e')](_0x5ad5b3[_0x74ed('0x2a')],_0x5ad5b3[_0x74ed('0x2c')]);_0x4b584c[_0x74ed('0x2f')]=_[_0x74ed('0x2e')](_0x5ad5b3['model'],qs[_0x74ed('0x30')](_0x15abfa[_0x74ed('0x2c')][_0x74ed('0x30')]));_0x4b584c[_0x74ed('0x2f')]=_0x4b584c['attributes']['length']?_0x4b584c[_0x74ed('0x2f')]:_0x5ad5b3[_0x74ed('0x2a')];_0x4b584c[_0x74ed('0x32')]=qs[_0x74ed('0x33')](_0x15abfa[_0x74ed('0x2c')][_0x74ed('0x33')]);_0x4b584c[_0x74ed('0x37')]=qs[_0x74ed('0x2d')](_[_0x74ed('0x34')](_0x15abfa['query'],_0x5ad5b3[_0x74ed('0x2d')]));if(_0x15abfa[_0x74ed('0x2c')][_0x74ed('0x35')]){_0x4b584c[_0x74ed('0x37')]=_[_0x74ed('0x36')](_0x4b584c[_0x74ed('0x37')],{'$or':_['map'](_0x4b584c[_0x74ed('0x2f')],function(_0x610a8b){var _0x2ca9d9={};_0x2ca9d9[_0x610a8b]={'$like':'%'+_0x15abfa[_0x74ed('0x2c')][_0x74ed('0x35')]+'%'};return _0x2ca9d9;})});}_0x4b584c=_[_0x74ed('0x36')]({},_0x4b584c,_0x15abfa[_0x74ed('0x3e')]);return _0x362b4a[_0x74ed('0x47')](_0x4b584c);}})['then'](function(_0x5293cf){if(_0x5293cf){_0x1a3213=_0x5293cf['length'];if(!_0x15abfa[_0x74ed('0x2c')][_0x74ed('0x44')]('nolimit')){_0x4b584c[_0x74ed('0x1a')]=qs[_0x74ed('0x1a')](_0x15abfa[_0x74ed('0x2c')]['limit']);_0x4b584c[_0x74ed('0x17')]=qs[_0x74ed('0x17')](_0x15abfa[_0x74ed('0x2c')][_0x74ed('0x17')]);}return _0x362b4a[_0x74ed('0x47')](_0x4b584c);}})['then'](function(_0x606a7f){if(_0x606a7f){return _0x606a7f?{'count':_0x1a3213,'rows':_0x606a7f}:null;}})[_0x74ed('0x22')](respondWithResult(_0x2de3c1,null))[_0x74ed('0x3b')](handleError(_0x2de3c1,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9968=['api','bluebird','request-promise','path','../../config/environment','./intSugarcrmConfiguration.attributes','exports','define','SugarcrmConfiguration','int_sugarcrm_configurations','lodash','util','../../config/logger'];(function(_0x4adfa4,_0x121c5a){var _0x14cec1=function(_0x4fd975){while(--_0x4fd975){_0x4adfa4['push'](_0x4adfa4['shift']());}};_0x14cec1(++_0x121c5a);}(_0x9968,0x72));var _0x8996=function(_0x2f9295,_0x4056fc){_0x2f9295=_0x2f9295-0x0;var _0x2bb94f=_0x9968[_0x2f9295];return _0x2bb94f;};'use strict';var _=require(_0x8996('0x0'));var util=require(_0x8996('0x1'));var logger=require(_0x8996('0x2'))(_0x8996('0x3'));var moment=require('moment');var BPromise=require(_0x8996('0x4'));var rp=require(_0x8996('0x5'));var fs=require('fs');var path=require(_0x8996('0x6'));var rimraf=require('rimraf');var config=require(_0x8996('0x7'));var attributes=require(_0x8996('0x8'));module[_0x8996('0x9')]=function(_0x4cd053,_0x4a073d){return _0x4cd053[_0x8996('0xa')](_0x8996('0xb'),attributes,{'tableName':_0x8996('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xffb3=['../../config/environment','exports','SugarcrmConfiguration','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf'];(function(_0x2d1cf6,_0x3864fe){var _0x3d4d16=function(_0x4ab393){while(--_0x4ab393){_0x2d1cf6['push'](_0x2d1cf6['shift']());}};_0x3d4d16(++_0x3864fe);}(_0xffb3,0x183));var _0x3ffb=function(_0x30fff5,_0x795b0){_0x30fff5=_0x30fff5-0x0;var _0x4b027d=_0xffb3[_0x30fff5];return _0x4b027d;};'use strict';var _=require(_0x3ffb('0x0'));var util=require(_0x3ffb('0x1'));var logger=require(_0x3ffb('0x2'))(_0x3ffb('0x3'));var moment=require(_0x3ffb('0x4'));var BPromise=require(_0x3ffb('0x5'));var rp=require(_0x3ffb('0x6'));var fs=require('fs');var path=require(_0x3ffb('0x7'));var rimraf=require(_0x3ffb('0x8'));var config=require(_0x3ffb('0x9'));var attributes=require('./intSugarcrmConfiguration.attributes');module[_0x3ffb('0xa')]=function(_0x2c98f7,_0x26d5e8){return _0x2c98f7['define'](_0x3ffb('0xb'),attributes,{'tableName':'int_sugarcrm_configurations','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7020=['../../config/logger','http','then','info','SugarcrmConfiguration,\x20%s,\x20%s','request\x20sent','debug','SugarcrmConfiguration,\x20%s,\x20%s,\x20%s','stringify','error','message','result','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils'];(function(_0x33f6be,_0x2864a6){var _0x3de6ac=function(_0x3e5c26){while(--_0x3e5c26){_0x33f6be['push'](_0x33f6be['shift']());}};_0x3de6ac(++_0x2864a6);}(_0x7020,0x84));var _0x0702=function(_0x45559d,_0x4ebfcb){_0x45559d=_0x45559d-0x0;var _0x48f984=_0x7020[_0x45559d];return _0x48f984;};'use strict';var _=require(_0x0702('0x0'));var util=require(_0x0702('0x1'));var moment=require(_0x0702('0x2'));var BPromise=require(_0x0702('0x3'));var rs=require(_0x0702('0x4'));var fs=require('fs');var Redis=require(_0x0702('0x5'));var db=require(_0x0702('0x6'))['db'];var utils=require(_0x0702('0x7'));var logger=require(_0x0702('0x8'))('rpc');var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson['client'][_0x0702('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x45fe20,_0x46f433,_0x42e5d6){return new BPromise(function(_0x1fa874,_0x5af3f6){return client['request'](_0x45fe20,_0x42e5d6)[_0x0702('0xa')](function(_0x1bed04){logger[_0x0702('0xb')](_0x0702('0xc'),_0x46f433,_0x0702('0xd'));logger[_0x0702('0xe')](_0x0702('0xf'),_0x46f433,_0x0702('0xd'),JSON[_0x0702('0x10')](_0x1bed04));if(_0x1bed04[_0x0702('0x11')]){if(_0x1bed04['error']['code']===0x1f4){logger[_0x0702('0x11')](_0x0702('0xc'),_0x46f433,_0x1bed04[_0x0702('0x11')]['message']);return _0x5af3f6(_0x1bed04[_0x0702('0x11')][_0x0702('0x12')]);}logger[_0x0702('0x11')](_0x0702('0xc'),_0x46f433,_0x1bed04['error'][_0x0702('0x12')]);return _0x1fa874(_0x1bed04[_0x0702('0x11')]['message']);}else{logger[_0x0702('0xb')](_0x0702('0xc'),_0x46f433,_0x0702('0xd'));_0x1fa874(_0x1bed04[_0x0702('0x13')][_0x0702('0x12')]);}})['catch'](function(_0x2bebb7){logger[_0x0702('0x11')](_0x0702('0xc'),_0x46f433,_0x2bebb7);_0x5af3f6(_0x2bebb7);});});}
\ No newline at end of file
+var _0x44e6=['bluebird','randomstring','ioredis','../../config/utils','../../config/environment','jayson/promise','client','http','request','info','SugarcrmConfiguration,\x20%s,\x20%s','request\x20sent','debug','SugarcrmConfiguration,\x20%s,\x20%s,\x20%s','stringify','error','message','lodash','util','moment'];(function(_0x4c4780,_0x5115f6){var _0x33be3a=function(_0x578360){while(--_0x578360){_0x4c4780['push'](_0x4c4780['shift']());}};_0x33be3a(++_0x5115f6);}(_0x44e6,0xc5));var _0x644e=function(_0x5ce775,_0x11aeae){_0x5ce775=_0x5ce775-0x0;var _0x25fcf6=_0x44e6[_0x5ce775];return _0x25fcf6;};'use strict';var _=require(_0x644e('0x0'));var util=require(_0x644e('0x1'));var moment=require(_0x644e('0x2'));var BPromise=require(_0x644e('0x3'));var rs=require(_0x644e('0x4'));var fs=require('fs');var Redis=require(_0x644e('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0x644e('0x6'));var logger=require('../../config/logger')('rpc');var config=require(_0x644e('0x7'));var jayson=require(_0x644e('0x8'));var client=jayson[_0x644e('0x9')][_0x644e('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x1866eb,_0x2c0b65,_0x10b6da){return new BPromise(function(_0x19b9bf,_0x58a9d9){return client[_0x644e('0xb')](_0x1866eb,_0x10b6da)['then'](function(_0x5cbd1f){logger[_0x644e('0xc')](_0x644e('0xd'),_0x2c0b65,_0x644e('0xe'));logger[_0x644e('0xf')](_0x644e('0x10'),_0x2c0b65,_0x644e('0xe'),JSON[_0x644e('0x11')](_0x5cbd1f));if(_0x5cbd1f[_0x644e('0x12')]){if(_0x5cbd1f[_0x644e('0x12')]['code']===0x1f4){logger['error'](_0x644e('0xd'),_0x2c0b65,_0x5cbd1f[_0x644e('0x12')][_0x644e('0x13')]);return _0x58a9d9(_0x5cbd1f[_0x644e('0x12')][_0x644e('0x13')]);}logger[_0x644e('0x12')](_0x644e('0xd'),_0x2c0b65,_0x5cbd1f[_0x644e('0x12')]['message']);return _0x19b9bf(_0x5cbd1f[_0x644e('0x12')][_0x644e('0x13')]);}else{logger['info'](_0x644e('0xd'),_0x2c0b65,_0x644e('0xe'));_0x19b9bf(_0x5cbd1f['result'][_0x644e('0x13')]);}})['catch'](function(_0x394a8e){logger[_0x644e('0x12')]('SugarcrmConfiguration,\x20%s,\x20%s',_0x2c0b65,_0x394a8e);_0x58a9d9(_0x394a8e);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa4e9=['util','path','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./intSugarcrmField.controller','isAuthenticated','index','get','/:id','show','create','put','update','delete','exports'];(function(_0x4c80d7,_0x2bef29){var _0x3c5095=function(_0x1b0e67){while(--_0x1b0e67){_0x4c80d7['push'](_0x4c80d7['shift']());}};_0x3c5095(++_0x2bef29);}(_0xa4e9,0xf7));var _0x9a4e=function(_0x31e97b,_0x5c503a){_0x31e97b=_0x31e97b-0x0;var _0x488a2c=_0xa4e9[_0x31e97b];return _0x488a2c;};'use strict';var multer=require('multer');var util=require(_0x9a4e('0x0'));var path=require(_0x9a4e('0x1'));var timeout=require(_0x9a4e('0x2'));var express=require(_0x9a4e('0x3'));var router=express['Router']();var fs_extra=require(_0x9a4e('0x4'));var auth=require(_0x9a4e('0x5'));var interaction=require(_0x9a4e('0x6'));var config=require(_0x9a4e('0x7'));var controller=require(_0x9a4e('0x8'));router['get']('/',auth[_0x9a4e('0x9')](),controller[_0x9a4e('0xa')]);router[_0x9a4e('0xb')](_0x9a4e('0xc'),auth[_0x9a4e('0x9')](),controller[_0x9a4e('0xd')]);router['post']('/',auth['isAuthenticated'](),controller[_0x9a4e('0xe')]);router[_0x9a4e('0xf')](_0x9a4e('0xc'),auth[_0x9a4e('0x9')](),controller[_0x9a4e('0x10')]);router[_0x9a4e('0x11')](_0x9a4e('0xc'),auth[_0x9a4e('0x9')](),controller['destroy']);module[_0x9a4e('0x12')]=router;
\ No newline at end of file
+var _0xb4c9=['multer','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','./intSugarcrmField.controller','index','isAuthenticated','show','post','create','put','update','/:id','destroy','exports'];(function(_0x29b609,_0x19d388){var _0x54c952=function(_0xb3c38d){while(--_0xb3c38d){_0x29b609['push'](_0x29b609['shift']());}};_0x54c952(++_0x19d388);}(_0xb4c9,0xab));var _0x9b4c=function(_0x32cdfc,_0x466ff5){_0x32cdfc=_0x32cdfc-0x0;var _0x5bfc2f=_0xb4c9[_0x32cdfc];return _0x5bfc2f;};'use strict';var multer=require(_0x9b4c('0x0'));var util=require('util');var path=require(_0x9b4c('0x1'));var timeout=require(_0x9b4c('0x2'));var express=require(_0x9b4c('0x3'));var router=express[_0x9b4c('0x4')]();var fs_extra=require(_0x9b4c('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x9b4c('0x6'));var config=require(_0x9b4c('0x7'));var controller=require(_0x9b4c('0x8'));router['get']('/',auth['isAuthenticated'](),controller[_0x9b4c('0x9')]);router['get']('/:id',auth[_0x9b4c('0xa')](),controller[_0x9b4c('0xb')]);router[_0x9b4c('0xc')]('/',auth['isAuthenticated'](),controller[_0x9b4c('0xd')]);router[_0x9b4c('0xe')]('/:id',auth['isAuthenticated'](),controller[_0x9b4c('0xf')]);router['delete'](_0x9b4c('0x10'),auth[_0x9b4c('0xa')](),controller[_0x9b4c('0x11')]);module[_0x9b4c('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaaf7=['sequelize','exports','ENUM','string','variable','customVariable','keyValue','STRING','BOOLEAN'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0xaaf7,0x1ef));var _0x7aaf=function(_0x5eea7b,_0x2f03d0){_0x5eea7b=_0x5eea7b-0x0;var _0xb6a416=_0xaaf7[_0x5eea7b];return _0xb6a416;};'use strict';var Sequelize=require(_0x7aaf('0x0'));module[_0x7aaf('0x1')]={'type':{'type':Sequelize[_0x7aaf('0x2')](_0x7aaf('0x3'),_0x7aaf('0x4'),_0x7aaf('0x5'),_0x7aaf('0x6'),'picklist'),'defaultValue':_0x7aaf('0x3')},'content':{'type':Sequelize[_0x7aaf('0x7')]},'key':{'type':Sequelize[_0x7aaf('0x7')]},'keyType':{'type':Sequelize[_0x7aaf('0x2')](_0x7aaf('0x3'),'variable',_0x7aaf('0x5'))},'keyContent':{'type':Sequelize[_0x7aaf('0x7')]},'idField':{'type':Sequelize[_0x7aaf('0x7')]},'nameField':{'type':Sequelize[_0x7aaf('0x7')]},'customField':{'type':Sequelize[_0x7aaf('0x8')],'defaultValue':!![]},'variableName':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0x08be=['keyValue','string','STRING','BOOLEAN','ENUM','variable','customVariable'];(function(_0x29a11c,_0x370f91){var _0x1f6132=function(_0x15a371){while(--_0x15a371){_0x29a11c['push'](_0x29a11c['shift']());}};_0x1f6132(++_0x370f91);}(_0x08be,0x131));var _0xe08b=function(_0x3b380d,_0x4bf247){_0x3b380d=_0x3b380d-0x0;var _0x54502b=_0x08be[_0x3b380d];return _0x54502b;};'use strict';var Sequelize=require('sequelize');module['exports']={'type':{'type':Sequelize[_0xe08b('0x0')]('string',_0xe08b('0x1'),_0xe08b('0x2'),_0xe08b('0x3'),'picklist'),'defaultValue':_0xe08b('0x4')},'content':{'type':Sequelize[_0xe08b('0x5')]},'key':{'type':Sequelize[_0xe08b('0x5')]},'keyType':{'type':Sequelize['ENUM'](_0xe08b('0x4'),_0xe08b('0x1'),'customVariable')},'keyContent':{'type':Sequelize[_0xe08b('0x5')]},'idField':{'type':Sequelize[_0xe08b('0x5')]},'nameField':{'type':Sequelize[_0xe08b('0x5')]},'customField':{'type':Sequelize[_0xe08b('0x6')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0xe08b('0x5')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x24a4=['nolimit','pick','filter','where','merge','map','options','findAll','rows','catch','params','attributes','length','includeAll','include','find','create','body','rimraf','zip-dir','request-promise','moment','bluebird','mustache','to-csv','ejs','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','sendStatus','end','status','json','offset','undefined','limit','count','set','Content-Range','apply','save','update','then','destroy','error','stack','name','send','index','SugarcrmField','rawAttributes','fieldName','type','model','query','keys','filters','intersection','fields','hasOwnProperty'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x24a4,0xe4));var _0x424a=function(_0x5ebfa3,_0xa33fb4){_0x5ebfa3=_0x5ebfa3-0x0;var _0x355bef=_0x24a4[_0x5ebfa3];return _0x355bef;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x424a('0x0'));var zipdir=require(_0x424a('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x424a('0x2'));var moment=require(_0x424a('0x3'));var BPromise=require(_0x424a('0x4'));var Mustache=require(_0x424a('0x5'));var util=require('util');var path=require('path');var sox=require('sox');var csv=require(_0x424a('0x6'));var ejs=require(_0x424a('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x424a('0x8'));var squel=require(_0x424a('0x9'));var crypto=require('crypto');var jsforce=require(_0x424a('0xa'));var deskjs=require(_0x424a('0xb'));var toCsv=require(_0x424a('0x6'));var querystring=require(_0x424a('0xc'));var Papa=require(_0x424a('0xd'));var Redis=require(_0x424a('0xe'));var authService=require(_0x424a('0xf'));var qs=require(_0x424a('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x424a('0x11'))('api');var utils=require(_0x424a('0x12'));var config=require(_0x424a('0x13'));var licenseUtil=require('../../config/license/util');var db=require(_0x424a('0x14'))['db'];function respondWithStatusCode(_0x4e4ff2,_0x189306){_0x189306=_0x189306||0xcc;return function(_0x5b141d){if(_0x5b141d){return _0x4e4ff2[_0x424a('0x15')](_0x189306);}return _0x4e4ff2['status'](_0x189306)[_0x424a('0x16')]();};}function respondWithResult(_0x6ccc91,_0x5694b7){_0x5694b7=_0x5694b7||0xc8;return function(_0x160c1e){if(_0x160c1e){return _0x6ccc91[_0x424a('0x17')](_0x5694b7)[_0x424a('0x18')](_0x160c1e);}};}function respondWithFilteredResult(_0x19ac93,_0x3277b2){return function(_0x4da761){if(_0x4da761){var _0x578ed2=typeof _0x3277b2[_0x424a('0x19')]===_0x424a('0x1a')&&typeof _0x3277b2[_0x424a('0x1b')]==='undefined';var _0x563506=_0x4da761[_0x424a('0x1c')];var _0x365c0f=_0x578ed2?0x0:_0x3277b2['offset'];var _0x3f50e5=_0x578ed2?_0x4da761[_0x424a('0x1c')]:_0x3277b2[_0x424a('0x19')]+_0x3277b2['limit'];var _0x1944fa;if(_0x3f50e5>=_0x563506){_0x3f50e5=_0x563506;_0x1944fa=0xc8;}else{_0x1944fa=0xce;}_0x19ac93['status'](_0x1944fa);return _0x19ac93[_0x424a('0x1d')](_0x424a('0x1e'),_0x365c0f+'-'+_0x3f50e5+'/'+_0x563506)[_0x424a('0x18')](_0x4da761);}return null;};}function patchUpdates(_0x2b258e){return function(_0xd39aac){try{jsonpatch[_0x424a('0x1f')](_0xd39aac,_0x2b258e,!![]);}catch(_0x30293f){return BPromise['reject'](_0x30293f);}return _0xd39aac[_0x424a('0x20')]();};}function saveUpdates(_0x224fa4,_0xb462c3){return function(_0x12522d){if(_0x12522d){return _0x12522d[_0x424a('0x21')](_0x224fa4)[_0x424a('0x22')](function(_0x4cf596){return _0x4cf596;});}return null;};}function removeEntity(_0x3acb96,_0x109ed3){return function(_0x2f33d1){if(_0x2f33d1){return _0x2f33d1[_0x424a('0x23')]()['then'](function(){_0x3acb96[_0x424a('0x17')](0xcc)['end']();});}};}function handleEntityNotFound(_0x40aae6,_0xfdf1dc){return function(_0x458951){if(!_0x458951){_0x40aae6[_0x424a('0x15')](0x194);}return _0x458951;};}function handleError(_0x250456,_0x50774f){_0x50774f=_0x50774f||0x1f4;return function(_0x27baef){logger[_0x424a('0x24')](_0x27baef[_0x424a('0x25')]);if(_0x27baef[_0x424a('0x26')]){delete _0x27baef[_0x424a('0x26')];}_0x250456[_0x424a('0x17')](_0x50774f)[_0x424a('0x27')](_0x27baef);};}exports[_0x424a('0x28')]=function(_0x40d2df,_0x345517){var _0x4e039f={},_0x293352={},_0x3315ca={'count':0x0,'rows':[]};var _0x541230=_['map'](db[_0x424a('0x29')][_0x424a('0x2a')],function(_0x149714){return{'name':_0x149714[_0x424a('0x2b')],'type':_0x149714[_0x424a('0x2c')]['key']};});_0x293352[_0x424a('0x2d')]=_['map'](_0x541230,_0x424a('0x26'));_0x293352[_0x424a('0x2e')]=_[_0x424a('0x2f')](_0x40d2df[_0x424a('0x2e')]);_0x293352[_0x424a('0x30')]=_[_0x424a('0x31')](_0x293352[_0x424a('0x2d')],_0x293352[_0x424a('0x2e')]);_0x4e039f['attributes']=_[_0x424a('0x31')](_0x293352[_0x424a('0x2d')],qs[_0x424a('0x32')](_0x40d2df[_0x424a('0x2e')][_0x424a('0x32')]));_0x4e039f['attributes']=_0x4e039f['attributes']['length']?_0x4e039f['attributes']:_0x293352[_0x424a('0x2d')];if(!_0x40d2df['query'][_0x424a('0x33')](_0x424a('0x34'))){_0x4e039f[_0x424a('0x1b')]=qs[_0x424a('0x1b')](_0x40d2df['query'][_0x424a('0x1b')]);_0x4e039f[_0x424a('0x19')]=qs[_0x424a('0x19')](_0x40d2df[_0x424a('0x2e')][_0x424a('0x19')]);}_0x4e039f['order']=qs['sort'](_0x40d2df['query']['sort']);_0x4e039f['where']=qs[_0x424a('0x30')](_[_0x424a('0x35')](_0x40d2df[_0x424a('0x2e')],_0x293352[_0x424a('0x30')]),_0x541230);if(_0x40d2df[_0x424a('0x2e')][_0x424a('0x36')]){_0x4e039f[_0x424a('0x37')]=_[_0x424a('0x38')](_0x4e039f[_0x424a('0x37')],{'$or':_[_0x424a('0x39')](_0x541230,function(_0x1fe3ed){if(_0x1fe3ed[_0x424a('0x2c')]!=='VIRTUAL'){var _0x4c5568={};_0x4c5568[_0x1fe3ed[_0x424a('0x26')]]={'$like':'%'+_0x40d2df[_0x424a('0x2e')]['filter']+'%'};return _0x4c5568;}})});}_0x4e039f=_[_0x424a('0x38')]({},_0x4e039f,_0x40d2df[_0x424a('0x3a')]);var _0x569056={'where':_0x4e039f[_0x424a('0x37')]};return db['SugarcrmField'][_0x424a('0x1c')](_0x569056)[_0x424a('0x22')](function(_0x2e72f3){_0x3315ca[_0x424a('0x1c')]=_0x2e72f3;if(_0x40d2df[_0x424a('0x2e')]['includeAll']){_0x4e039f['include']=[{'all':!![]}];}return db[_0x424a('0x29')][_0x424a('0x3b')](_0x4e039f);})[_0x424a('0x22')](function(_0xaf1539){_0x3315ca[_0x424a('0x3c')]=_0xaf1539;return _0x3315ca;})[_0x424a('0x22')](respondWithFilteredResult(_0x345517,_0x4e039f))[_0x424a('0x3d')](handleError(_0x345517,null));};exports['show']=function(_0x33d07e,_0x2f0964){var _0x19942c={'raw':!![],'where':{'id':_0x33d07e[_0x424a('0x3e')]['id']}},_0x5a9d01={};_0x5a9d01['model']=_[_0x424a('0x2f')](db[_0x424a('0x29')][_0x424a('0x2a')]);_0x5a9d01[_0x424a('0x2e')]=_[_0x424a('0x2f')](_0x33d07e[_0x424a('0x2e')]);_0x5a9d01[_0x424a('0x30')]=_['intersection'](_0x5a9d01['model'],_0x5a9d01[_0x424a('0x2e')]);_0x19942c[_0x424a('0x3f')]=_['intersection'](_0x5a9d01[_0x424a('0x2d')],qs[_0x424a('0x32')](_0x33d07e['query']['fields']));_0x19942c[_0x424a('0x3f')]=_0x19942c['attributes'][_0x424a('0x40')]?_0x19942c[_0x424a('0x3f')]:_0x5a9d01['model'];if(_0x33d07e['query'][_0x424a('0x41')]){_0x19942c[_0x424a('0x42')]=[{'all':!![]}];}_0x19942c=_[_0x424a('0x38')]({},_0x19942c,_0x33d07e[_0x424a('0x3a')]);return db[_0x424a('0x29')][_0x424a('0x43')](_0x19942c)[_0x424a('0x22')](handleEntityNotFound(_0x2f0964,null))[_0x424a('0x22')](respondWithResult(_0x2f0964,null))['catch'](handleError(_0x2f0964,null));};exports[_0x424a('0x44')]=function(_0x51a38f,_0x4e36c4){return db[_0x424a('0x29')][_0x424a('0x44')](_0x51a38f[_0x424a('0x45')],{})[_0x424a('0x22')](respondWithResult(_0x4e36c4,0xc9))[_0x424a('0x3d')](handleError(_0x4e36c4,null));};exports[_0x424a('0x21')]=function(_0x4a0447,_0x119df3){if(_0x4a0447[_0x424a('0x45')]['id']){delete _0x4a0447[_0x424a('0x45')]['id'];}return db[_0x424a('0x29')][_0x424a('0x43')]({'where':{'id':_0x4a0447[_0x424a('0x3e')]['id']}})[_0x424a('0x22')](handleEntityNotFound(_0x119df3,null))[_0x424a('0x22')](saveUpdates(_0x4a0447[_0x424a('0x45')],null))[_0x424a('0x22')](respondWithResult(_0x119df3,null))[_0x424a('0x3d')](handleError(_0x119df3,null));};exports[_0x424a('0x23')]=function(_0x4a1ae3,_0x36b0c8){return db[_0x424a('0x29')][_0x424a('0x43')]({'where':{'id':_0x4a1ae3['params']['id']}})[_0x424a('0x22')](handleEntityNotFound(_0x36b0c8,null))[_0x424a('0x22')](removeEntity(_0x36b0c8,null))[_0x424a('0x3d')](handleError(_0x36b0c8,null));};
\ No newline at end of file
+var _0x167a=['includeAll','include','findAll','rows','show','params','length','options','find','catch','create','body','eml-format','rimraf','fast-json-patch','moment','bluebird','mustache','util','to-csv','ejs','fs-extra','squel','crypto','jsforce','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','limit','count','set','apply','reject','save','update','then','destroy','error','stack','send','map','SugarcrmField','rawAttributes','type','model','query','keys','filters','intersection','fields','attributes','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','name'];(function(_0x4d1014,_0x3ee430){var _0x5b752c=function(_0x14f399){while(--_0x14f399){_0x4d1014['push'](_0x4d1014['shift']());}};_0x5b752c(++_0x3ee430);}(_0x167a,0x1bc));var _0xa167=function(_0x5b1fea,_0x5d1052){_0x5b1fea=_0x5b1fea-0x0;var _0x3b7134=_0x167a[_0x5b1fea];return _0x3b7134;};'use strict';var emlformat=require(_0xa167('0x0'));var rimraf=require(_0xa167('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xa167('0x2'));var rp=require('request-promise');var moment=require(_0xa167('0x3'));var BPromise=require(_0xa167('0x4'));var Mustache=require(_0xa167('0x5'));var util=require(_0xa167('0x6'));var path=require('path');var sox=require('sox');var csv=require(_0xa167('0x7'));var ejs=require(_0xa167('0x8'));var fs=require('fs');var fs_extra=require(_0xa167('0x9'));var _=require('lodash');var squel=require(_0xa167('0xa'));var crypto=require(_0xa167('0xb'));var jsforce=require(_0xa167('0xc'));var deskjs=require('desk.js');var toCsv=require(_0xa167('0x7'));var querystring=require('querystring');var Papa=require(_0xa167('0xd'));var Redis=require(_0xa167('0xe'));var authService=require('../../components/auth/service');var qs=require(_0xa167('0xf'));var as=require(_0xa167('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xa167('0x11'));var utils=require(_0xa167('0x12'));var config=require(_0xa167('0x13'));var licenseUtil=require(_0xa167('0x14'));var db=require(_0xa167('0x15'))['db'];function respondWithStatusCode(_0x15f03c,_0x4dc1c2){_0x4dc1c2=_0x4dc1c2||0xcc;return function(_0x540a63){if(_0x540a63){return _0x15f03c[_0xa167('0x16')](_0x4dc1c2);}return _0x15f03c[_0xa167('0x17')](_0x4dc1c2)[_0xa167('0x18')]();};}function respondWithResult(_0x31e1b5,_0x43c2a){_0x43c2a=_0x43c2a||0xc8;return function(_0x14d75d){if(_0x14d75d){return _0x31e1b5[_0xa167('0x17')](_0x43c2a)[_0xa167('0x19')](_0x14d75d);}};}function respondWithFilteredResult(_0x557949,_0x5dd0b1){return function(_0x370b2d){if(_0x370b2d){var _0x250e8f=typeof _0x5dd0b1[_0xa167('0x1a')]==='undefined'&&typeof _0x5dd0b1[_0xa167('0x1b')]==='undefined';var _0x5cc3be=_0x370b2d[_0xa167('0x1c')];var _0xd0fb74=_0x250e8f?0x0:_0x5dd0b1['offset'];var _0x3e23e0=_0x250e8f?_0x370b2d['count']:_0x5dd0b1[_0xa167('0x1a')]+_0x5dd0b1[_0xa167('0x1b')];var _0x409f94;if(_0x3e23e0>=_0x5cc3be){_0x3e23e0=_0x5cc3be;_0x409f94=0xc8;}else{_0x409f94=0xce;}_0x557949['status'](_0x409f94);return _0x557949[_0xa167('0x1d')]('Content-Range',_0xd0fb74+'-'+_0x3e23e0+'/'+_0x5cc3be)[_0xa167('0x19')](_0x370b2d);}return null;};}function patchUpdates(_0x281157){return function(_0x9a9147){try{jsonpatch[_0xa167('0x1e')](_0x9a9147,_0x281157,!![]);}catch(_0x57140e){return BPromise[_0xa167('0x1f')](_0x57140e);}return _0x9a9147[_0xa167('0x20')]();};}function saveUpdates(_0x325612,_0x104b7a){return function(_0x1db5af){if(_0x1db5af){return _0x1db5af[_0xa167('0x21')](_0x325612)[_0xa167('0x22')](function(_0x1374c1){return _0x1374c1;});}return null;};}function removeEntity(_0xfdb9e,_0x4a986b){return function(_0x3c2235){if(_0x3c2235){return _0x3c2235[_0xa167('0x23')]()[_0xa167('0x22')](function(){_0xfdb9e['status'](0xcc)[_0xa167('0x18')]();});}};}function handleEntityNotFound(_0xdc0e3f,_0x3f388f){return function(_0x51f91c){if(!_0x51f91c){_0xdc0e3f['sendStatus'](0x194);}return _0x51f91c;};}function handleError(_0x3319f1,_0x137371){_0x137371=_0x137371||0x1f4;return function(_0x315b63){logger[_0xa167('0x24')](_0x315b63[_0xa167('0x25')]);if(_0x315b63['name']){delete _0x315b63['name'];}_0x3319f1['status'](_0x137371)[_0xa167('0x26')](_0x315b63);};}exports['index']=function(_0x215730,_0x24f1eb){var _0x4b6e3a={},_0x2e2981={},_0xf18c71={'count':0x0,'rows':[]};var _0x1281dc=_[_0xa167('0x27')](db[_0xa167('0x28')][_0xa167('0x29')],function(_0xfd729e){return{'name':_0xfd729e['fieldName'],'type':_0xfd729e[_0xa167('0x2a')]['key']};});_0x2e2981[_0xa167('0x2b')]=_['map'](_0x1281dc,'name');_0x2e2981[_0xa167('0x2c')]=_[_0xa167('0x2d')](_0x215730['query']);_0x2e2981[_0xa167('0x2e')]=_[_0xa167('0x2f')](_0x2e2981[_0xa167('0x2b')],_0x2e2981[_0xa167('0x2c')]);_0x4b6e3a['attributes']=_['intersection'](_0x2e2981[_0xa167('0x2b')],qs[_0xa167('0x30')](_0x215730[_0xa167('0x2c')][_0xa167('0x30')]));_0x4b6e3a['attributes']=_0x4b6e3a[_0xa167('0x31')]['length']?_0x4b6e3a[_0xa167('0x31')]:_0x2e2981[_0xa167('0x2b')];if(!_0x215730['query'][_0xa167('0x32')](_0xa167('0x33'))){_0x4b6e3a[_0xa167('0x1b')]=qs[_0xa167('0x1b')](_0x215730['query'][_0xa167('0x1b')]);_0x4b6e3a[_0xa167('0x1a')]=qs[_0xa167('0x1a')](_0x215730[_0xa167('0x2c')][_0xa167('0x1a')]);}_0x4b6e3a[_0xa167('0x34')]=qs[_0xa167('0x35')](_0x215730[_0xa167('0x2c')][_0xa167('0x35')]);_0x4b6e3a[_0xa167('0x36')]=qs['filters'](_[_0xa167('0x37')](_0x215730[_0xa167('0x2c')],_0x2e2981[_0xa167('0x2e')]),_0x1281dc);if(_0x215730[_0xa167('0x2c')][_0xa167('0x38')]){_0x4b6e3a[_0xa167('0x36')]=_[_0xa167('0x39')](_0x4b6e3a[_0xa167('0x36')],{'$or':_[_0xa167('0x27')](_0x1281dc,function(_0x325022){if(_0x325022[_0xa167('0x2a')]!==_0xa167('0x3a')){var _0x48f9a4={};_0x48f9a4[_0x325022[_0xa167('0x3b')]]={'$like':'%'+_0x215730[_0xa167('0x2c')][_0xa167('0x38')]+'%'};return _0x48f9a4;}})});}_0x4b6e3a=_[_0xa167('0x39')]({},_0x4b6e3a,_0x215730['options']);var _0x3a2efa={'where':_0x4b6e3a[_0xa167('0x36')]};return db[_0xa167('0x28')][_0xa167('0x1c')](_0x3a2efa)['then'](function(_0x4e6637){_0xf18c71['count']=_0x4e6637;if(_0x215730[_0xa167('0x2c')][_0xa167('0x3c')]){_0x4b6e3a[_0xa167('0x3d')]=[{'all':!![]}];}return db[_0xa167('0x28')][_0xa167('0x3e')](_0x4b6e3a);})[_0xa167('0x22')](function(_0x55d725){_0xf18c71[_0xa167('0x3f')]=_0x55d725;return _0xf18c71;})['then'](respondWithFilteredResult(_0x24f1eb,_0x4b6e3a))['catch'](handleError(_0x24f1eb,null));};exports[_0xa167('0x40')]=function(_0x150352,_0x348009){var _0x2aef63={'raw':!![],'where':{'id':_0x150352[_0xa167('0x41')]['id']}},_0x207079={};_0x207079['model']=_[_0xa167('0x2d')](db[_0xa167('0x28')][_0xa167('0x29')]);_0x207079['query']=_[_0xa167('0x2d')](_0x150352[_0xa167('0x2c')]);_0x207079[_0xa167('0x2e')]=_[_0xa167('0x2f')](_0x207079[_0xa167('0x2b')],_0x207079[_0xa167('0x2c')]);_0x2aef63[_0xa167('0x31')]=_[_0xa167('0x2f')](_0x207079[_0xa167('0x2b')],qs[_0xa167('0x30')](_0x150352[_0xa167('0x2c')]['fields']));_0x2aef63['attributes']=_0x2aef63['attributes'][_0xa167('0x42')]?_0x2aef63[_0xa167('0x31')]:_0x207079['model'];if(_0x150352[_0xa167('0x2c')][_0xa167('0x3c')]){_0x2aef63[_0xa167('0x3d')]=[{'all':!![]}];}_0x2aef63=_[_0xa167('0x39')]({},_0x2aef63,_0x150352[_0xa167('0x43')]);return db[_0xa167('0x28')][_0xa167('0x44')](_0x2aef63)[_0xa167('0x22')](handleEntityNotFound(_0x348009,null))[_0xa167('0x22')](respondWithResult(_0x348009,null))[_0xa167('0x45')](handleError(_0x348009,null));};exports[_0xa167('0x46')]=function(_0x14b747,_0x5f1287){return db[_0xa167('0x28')][_0xa167('0x46')](_0x14b747[_0xa167('0x47')],{})[_0xa167('0x22')](respondWithResult(_0x5f1287,0xc9))[_0xa167('0x45')](handleError(_0x5f1287,null));};exports[_0xa167('0x21')]=function(_0x490edb,_0x3e9c3f){if(_0x490edb['body']['id']){delete _0x490edb[_0xa167('0x47')]['id'];}return db['SugarcrmField']['find']({'where':{'id':_0x490edb[_0xa167('0x41')]['id']}})[_0xa167('0x22')](handleEntityNotFound(_0x3e9c3f,null))[_0xa167('0x22')](saveUpdates(_0x490edb[_0xa167('0x47')],null))['then'](respondWithResult(_0x3e9c3f,null))[_0xa167('0x45')](handleError(_0x3e9c3f,null));};exports['destroy']=function(_0x32c324,_0x5ea20c){return db['SugarcrmField'][_0xa167('0x44')]({'where':{'id':_0x32c324[_0xa167('0x41')]['id']}})[_0xa167('0x22')](handleEntityNotFound(_0x5ea20c,null))['then'](removeEntity(_0x5ea20c,null))[_0xa167('0x45')](handleError(_0x5ea20c,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x30b6=['moment','bluebird','request-promise','path','../../config/environment','./intSugarcrmField.attributes','exports','define','SugarcrmField','int_sugarcrm_fields','sugarcrm_unique_index','idField','FieldId','lodash','util','api'];(function(_0x51020b,_0x38c2c7){var _0x371e47=function(_0x2a538f){while(--_0x2a538f){_0x51020b['push'](_0x51020b['shift']());}};_0x371e47(++_0x38c2c7);}(_0x30b6,0x16d));var _0x630b=function(_0x5379b7,_0xd5be03){_0x5379b7=_0x5379b7-0x0;var _0x34bce6=_0x30b6[_0x5379b7];return _0x34bce6;};'use strict';var _=require(_0x630b('0x0'));var util=require(_0x630b('0x1'));var logger=require('../../config/logger')(_0x630b('0x2'));var moment=require(_0x630b('0x3'));var BPromise=require(_0x630b('0x4'));var rp=require(_0x630b('0x5'));var fs=require('fs');var path=require(_0x630b('0x6'));var rimraf=require('rimraf');var config=require(_0x630b('0x7'));var attributes=require(_0x630b('0x8'));module[_0x630b('0x9')]=function(_0x6779ce,_0x553455){return _0x6779ce[_0x630b('0xa')](_0x630b('0xb'),attributes,{'tableName':_0x630b('0xc'),'paranoid':![],'indexes':[{'name':_0x630b('0xd'),'fields':[_0x630b('0xe'),_0x630b('0xf')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x76c6=['util','../../config/logger','api','path','./intSugarcrmField.attributes','exports','define','SugarcrmField','idField','FieldId','lodash'];(function(_0x59c788,_0x38a28d){var _0x2ac818=function(_0x254268){while(--_0x254268){_0x59c788['push'](_0x59c788['shift']());}};_0x2ac818(++_0x38a28d);}(_0x76c6,0x1cd));var _0x676c=function(_0x48120f,_0x1da1b8){_0x48120f=_0x48120f-0x0;var _0x39a62e=_0x76c6[_0x48120f];return _0x39a62e;};'use strict';var _=require(_0x676c('0x0'));var util=require(_0x676c('0x1'));var logger=require(_0x676c('0x2'))(_0x676c('0x3'));var moment=require('moment');var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0x676c('0x4'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0x676c('0x5'));module[_0x676c('0x6')]=function(_0x1110be,_0x5a9ec5){return _0x1110be[_0x676c('0x7')](_0x676c('0x8'),attributes,{'tableName':'int_sugarcrm_fields','paranoid':![],'indexes':[{'name':'sugarcrm_unique_index','fields':[_0x676c('0x9'),_0x676c('0xa')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf3a3=['info','SugarcrmField,\x20%s,\x20%s','SugarcrmField,\x20%s,\x20%s,\x20%s','stringify','error','message','request\x20sent','catch','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','client','request','then'];(function(_0x37b5be,_0x167703){var _0x4ace04=function(_0x175483){while(--_0x175483){_0x37b5be['push'](_0x37b5be['shift']());}};_0x4ace04(++_0x167703);}(_0xf3a3,0xa8));var _0x3f3a=function(_0x279d4a,_0x3cdf4d){_0x279d4a=_0x279d4a-0x0;var _0x2f8ab6=_0xf3a3[_0x279d4a];return _0x2f8ab6;};'use strict';var _=require('lodash');var util=require(_0x3f3a('0x0'));var moment=require(_0x3f3a('0x1'));var BPromise=require(_0x3f3a('0x2'));var rs=require(_0x3f3a('0x3'));var fs=require('fs');var Redis=require(_0x3f3a('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x3f3a('0x5'));var logger=require(_0x3f3a('0x6'))(_0x3f3a('0x7'));var config=require(_0x3f3a('0x8'));var jayson=require('jayson/promise');var client=jayson[_0x3f3a('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0xc9edaf,_0x297be3,_0xf37f78){return new BPromise(function(_0x4d6ded,_0x5d2402){return client[_0x3f3a('0xa')](_0xc9edaf,_0xf37f78)[_0x3f3a('0xb')](function(_0x4ede2f){logger[_0x3f3a('0xc')](_0x3f3a('0xd'),_0x297be3,'request\x20sent');logger['debug'](_0x3f3a('0xe'),_0x297be3,'request\x20sent',JSON[_0x3f3a('0xf')](_0x4ede2f));if(_0x4ede2f[_0x3f3a('0x10')]){if(_0x4ede2f['error']['code']===0x1f4){logger[_0x3f3a('0x10')](_0x3f3a('0xd'),_0x297be3,_0x4ede2f['error'][_0x3f3a('0x11')]);return _0x5d2402(_0x4ede2f[_0x3f3a('0x10')][_0x3f3a('0x11')]);}logger[_0x3f3a('0x10')](_0x3f3a('0xd'),_0x297be3,_0x4ede2f['error'][_0x3f3a('0x11')]);return _0x4d6ded(_0x4ede2f['error'][_0x3f3a('0x11')]);}else{logger[_0x3f3a('0xc')](_0x3f3a('0xd'),_0x297be3,_0x3f3a('0x12'));_0x4d6ded(_0x4ede2f['result'][_0x3f3a('0x11')]);}})[_0x3f3a('0x13')](function(_0x415998){logger[_0x3f3a('0x10')](_0x3f3a('0xd'),_0x297be3,_0x415998);_0x5d2402(_0x415998);});});}
\ No newline at end of file
+var _0x10ac=['jayson/promise','client','http','request','then','info','SugarcrmField,\x20%s,\x20%s','debug','SugarcrmField,\x20%s,\x20%s,\x20%s','stringify','error','code','message','request\x20sent','result','catch','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment'];(function(_0x761d36,_0x290d6d){var _0x15d81a=function(_0x2b9f6f){while(--_0x2b9f6f){_0x761d36['push'](_0x761d36['shift']());}};_0x15d81a(++_0x290d6d);}(_0x10ac,0x92));var _0xc10a=function(_0x500419,_0x549162){_0x500419=_0x500419-0x0;var _0x241c1a=_0x10ac[_0x500419];return _0x241c1a;};'use strict';var _=require(_0xc10a('0x0'));var util=require(_0xc10a('0x1'));var moment=require(_0xc10a('0x2'));var BPromise=require(_0xc10a('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xc10a('0x4'));var db=require(_0xc10a('0x5'))['db'];var utils=require(_0xc10a('0x6'));var logger=require(_0xc10a('0x7'))(_0xc10a('0x8'));var config=require(_0xc10a('0x9'));var jayson=require(_0xc10a('0xa'));var client=jayson[_0xc10a('0xb')][_0xc10a('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x49dacd,_0x1d687d,_0x435f8d){return new BPromise(function(_0x321e72,_0x3e3f39){return client[_0xc10a('0xd')](_0x49dacd,_0x435f8d)[_0xc10a('0xe')](function(_0x4e4bab){logger[_0xc10a('0xf')](_0xc10a('0x10'),_0x1d687d,'request\x20sent');logger[_0xc10a('0x11')](_0xc10a('0x12'),_0x1d687d,'request\x20sent',JSON[_0xc10a('0x13')](_0x4e4bab));if(_0x4e4bab[_0xc10a('0x14')]){if(_0x4e4bab[_0xc10a('0x14')][_0xc10a('0x15')]===0x1f4){logger[_0xc10a('0x14')](_0xc10a('0x10'),_0x1d687d,_0x4e4bab[_0xc10a('0x14')][_0xc10a('0x16')]);return _0x3e3f39(_0x4e4bab[_0xc10a('0x14')][_0xc10a('0x16')]);}logger['error'](_0xc10a('0x10'),_0x1d687d,_0x4e4bab[_0xc10a('0x14')][_0xc10a('0x16')]);return _0x321e72(_0x4e4bab[_0xc10a('0x14')][_0xc10a('0x16')]);}else{logger[_0xc10a('0xf')](_0xc10a('0x10'),_0x1d687d,_0xc10a('0x17'));_0x321e72(_0x4e4bab[_0xc10a('0x18')]['message']);}})[_0xc10a('0x19')](function(_0x582348){logger[_0xc10a('0x14')](_0xc10a('0x10'),_0x1d687d,_0x582348);_0x3e3f39(_0x582348);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x03ce=['put','delete','exports','multer','util','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../config/environment','./intVtigerAccount.controller','get','isAuthenticated','index','/:id','/:id/configurations','getConfigurations','/:id/fields','getFields','create','post','addConfiguration'];(function(_0x1247e8,_0x1d9374){var _0x3bbb92=function(_0x5b1e46){while(--_0x5b1e46){_0x1247e8['push'](_0x1247e8['shift']());}};_0x3bbb92(++_0x1d9374);}(_0x03ce,0x1a1));var _0xe03c=function(_0x3d1717,_0x24d397){_0x3d1717=_0x3d1717-0x0;var _0x4d6633=_0x03ce[_0x3d1717];return _0x4d6633;};'use strict';var multer=require(_0xe03c('0x0'));var util=require(_0xe03c('0x1'));var path=require(_0xe03c('0x2'));var timeout=require(_0xe03c('0x3'));var express=require('express');var router=express[_0xe03c('0x4')]();var fs_extra=require(_0xe03c('0x5'));var auth=require(_0xe03c('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0xe03c('0x7'));var controller=require(_0xe03c('0x8'));router[_0xe03c('0x9')]('/',auth[_0xe03c('0xa')](),controller[_0xe03c('0xb')]);router[_0xe03c('0x9')](_0xe03c('0xc'),auth['isAuthenticated'](),controller['show']);router[_0xe03c('0x9')](_0xe03c('0xd'),auth[_0xe03c('0xa')](),controller[_0xe03c('0xe')]);router[_0xe03c('0x9')](_0xe03c('0xf'),auth[_0xe03c('0xa')](),controller[_0xe03c('0x10')]);router['post']('/',auth[_0xe03c('0xa')](),controller[_0xe03c('0x11')]);router[_0xe03c('0x12')]('/:id/configurations',auth[_0xe03c('0xa')](),controller[_0xe03c('0x13')]);router[_0xe03c('0x14')](_0xe03c('0xc'),auth[_0xe03c('0xa')](),controller['update']);router[_0xe03c('0x15')](_0xe03c('0xc'),auth[_0xe03c('0xa')](),controller['destroy']);module[_0xe03c('0x16')]=router;
\ No newline at end of file
+var _0xb903=['../../components/interaction/service','../../config/environment','./intVtigerAccount.controller','get','index','isAuthenticated','show','/:id/configurations','post','addConfiguration','put','/:id','delete','destroy','exports','multer','util','path','connect-timeout','Router','fs-extra','../../components/auth/service'];(function(_0x213b27,_0x3a531a){var _0x2c04ee=function(_0x538d00){while(--_0x538d00){_0x213b27['push'](_0x213b27['shift']());}};_0x2c04ee(++_0x3a531a);}(_0xb903,0x185));var _0x3b90=function(_0x5ee662,_0x2840b2){_0x5ee662=_0x5ee662-0x0;var _0x3f7e74=_0xb903[_0x5ee662];return _0x3f7e74;};'use strict';var multer=require(_0x3b90('0x0'));var util=require(_0x3b90('0x1'));var path=require(_0x3b90('0x2'));var timeout=require(_0x3b90('0x3'));var express=require('express');var router=express[_0x3b90('0x4')]();var fs_extra=require(_0x3b90('0x5'));var auth=require(_0x3b90('0x6'));var interaction=require(_0x3b90('0x7'));var config=require(_0x3b90('0x8'));var controller=require(_0x3b90('0x9'));router[_0x3b90('0xa')]('/',auth['isAuthenticated'](),controller[_0x3b90('0xb')]);router['get']('/:id',auth[_0x3b90('0xc')](),controller[_0x3b90('0xd')]);router[_0x3b90('0xa')](_0x3b90('0xe'),auth['isAuthenticated'](),controller['getConfigurations']);router['get']('/:id/fields',auth['isAuthenticated'](),controller['getFields']);router[_0x3b90('0xf')]('/',auth[_0x3b90('0xc')](),controller['create']);router[_0x3b90('0xf')](_0x3b90('0xe'),auth['isAuthenticated'](),controller[_0x3b90('0x10')]);router[_0x3b90('0x11')](_0x3b90('0x12'),auth['isAuthenticated'](),controller['update']);router[_0x3b90('0x13')]('/:id',auth['isAuthenticated'](),controller[_0x3b90('0x14')]);module[_0x3b90('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdec8=['HelpDesk','STRING','sequelize'];(function(_0x3305de,_0x16582f){var _0x3b5a84=function(_0x57d7e1){while(--_0x57d7e1){_0x3305de['push'](_0x3305de['shift']());}};_0x3b5a84(++_0x16582f);}(_0xdec8,0x1a6));var _0x8dec=function(_0x10004e,_0xd701e6){_0x10004e=_0x10004e-0x0;var _0x5af990=_0xdec8[_0x10004e];return _0x5af990;};'use strict';var Sequelize=require(_0x8dec('0x0'));module['exports']={'name':{'type':Sequelize['STRING'],'allowNull':![]},'description':{'type':Sequelize['STRING']},'username':{'type':Sequelize['STRING'],'allowNull':![]},'moduleName':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0x8dec('0x1')},'remoteUri':{'type':Sequelize[_0x8dec('0x2')],'allowNull':![]},'serverUrl':{'type':Sequelize[_0x8dec('0x2')],'allowNull':![]},'accessKey':{'type':Sequelize[_0x8dec('0x2')],'allowNull':![]}};
\ No newline at end of file
+var _0x9326=['STRING','sequelize','exports'];(function(_0x5309a1,_0x41c7a6){var _0xb4751b=function(_0x500f80){while(--_0x500f80){_0x5309a1['push'](_0x5309a1['shift']());}};_0xb4751b(++_0x41c7a6);}(_0x9326,0x15d));var _0x6932=function(_0x4394b6,_0x12357f){_0x4394b6=_0x4394b6-0x0;var _0x360244=_0x9326[_0x4394b6];return _0x360244;};'use strict';var Sequelize=require(_0x6932('0x0'));module[_0x6932('0x1')]={'name':{'type':Sequelize['STRING'],'allowNull':![]},'description':{'type':Sequelize[_0x6932('0x2')]},'username':{'type':Sequelize[_0x6932('0x2')],'allowNull':![]},'moduleName':{'type':Sequelize[_0x6932('0x2')],'allowNull':![],'defaultValue':'HelpDesk'},'remoteUri':{'type':Sequelize[_0x6932('0x2')],'allowNull':![]},'serverUrl':{'type':Sequelize['STRING'],'allowNull':![]},'accessKey':{'type':Sequelize['STRING'],'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x88d4=['owner','remove','includes','editable','false','label','startsWith','picklist','picklistValues','value','log','vTiger\x20error:\x20','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','Wrong\x20credentials','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','path','sox','to-csv','ejs','fs-extra','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../components/integrations/configuration','sendStatus','status','end','undefined','limit','count','offset','set','Content-Range','json','apply','save','update','then','destroy','name','send','index','map','VtigerAccount','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','options','includeAll','include','rows','catch','show','params','find','create','body','getConfigurations','findOne','VtigerConfiguration','addConfiguration','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','VtigerField','md5','getFields','username','description','moduleName','remoteUri','serverUrl','slice','substring','%s/webservice.php','GET','getchallenge','success','POST','login','result','token','describe','sessionName','autogenerated','reference'];(function(_0x3ac066,_0x17eb7b){var _0xd6108a=function(_0x19b41b){while(--_0x19b41b){_0x3ac066['push'](_0x3ac066['shift']());}};_0xd6108a(++_0x17eb7b);}(_0x88d4,0x89));var _0x488d=function(_0x1d6e7e,_0x1ee548){_0x1d6e7e=_0x1d6e7e-0x0;var _0x2eeda1=_0x88d4[_0x1d6e7e];return _0x2eeda1;};'use strict';var emlformat=require(_0x488d('0x0'));var rimraf=require(_0x488d('0x1'));var zipdir=require(_0x488d('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x488d('0x3'));var moment=require(_0x488d('0x4'));var BPromise=require(_0x488d('0x5'));var Mustache=require('mustache');var util=require('util');var path=require(_0x488d('0x6'));var sox=require(_0x488d('0x7'));var csv=require(_0x488d('0x8'));var ejs=require(_0x488d('0x9'));var fs=require('fs');var fs_extra=require(_0x488d('0xa'));var _=require('lodash');var squel=require('squel');var crypto=require(_0x488d('0xb'));var jsforce=require(_0x488d('0xc'));var deskjs=require(_0x488d('0xd'));var toCsv=require(_0x488d('0x8'));var querystring=require(_0x488d('0xe'));var Papa=require(_0x488d('0xf'));var Redis=require('ioredis');var authService=require(_0x488d('0x10'));var qs=require(_0x488d('0x11'));var as=require(_0x488d('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x488d('0x13'))(_0x488d('0x14'));var utils=require(_0x488d('0x15'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];var integrations=require(_0x488d('0x16'));function respondWithStatusCode(_0x3874e5,_0xba1392){_0xba1392=_0xba1392||0xcc;return function(_0x2e360a){if(_0x2e360a){return _0x3874e5[_0x488d('0x17')](_0xba1392);}return _0x3874e5[_0x488d('0x18')](_0xba1392)[_0x488d('0x19')]();};}function respondWithResult(_0xbbcf56,_0x1186aa){_0x1186aa=_0x1186aa||0xc8;return function(_0x34932a){if(_0x34932a){return _0xbbcf56[_0x488d('0x18')](_0x1186aa)['json'](_0x34932a);}};}function respondWithFilteredResult(_0x471984,_0x5db509){return function(_0x13d748){if(_0x13d748){var _0x2fd0e3=typeof _0x5db509['offset']===_0x488d('0x1a')&&typeof _0x5db509[_0x488d('0x1b')]===_0x488d('0x1a');var _0x3aacc3=_0x13d748[_0x488d('0x1c')];var _0x47fcc3=_0x2fd0e3?0x0:_0x5db509[_0x488d('0x1d')];var _0x49c99e=_0x2fd0e3?_0x13d748[_0x488d('0x1c')]:_0x5db509['offset']+_0x5db509[_0x488d('0x1b')];var _0x13b5a1;if(_0x49c99e>=_0x3aacc3){_0x49c99e=_0x3aacc3;_0x13b5a1=0xc8;}else{_0x13b5a1=0xce;}_0x471984['status'](_0x13b5a1);return _0x471984[_0x488d('0x1e')](_0x488d('0x1f'),_0x47fcc3+'-'+_0x49c99e+'/'+_0x3aacc3)[_0x488d('0x20')](_0x13d748);}return null;};}function patchUpdates(_0x7e4b06){return function(_0x53a187){try{jsonpatch[_0x488d('0x21')](_0x53a187,_0x7e4b06,!![]);}catch(_0xb14ef4){return BPromise['reject'](_0xb14ef4);}return _0x53a187[_0x488d('0x22')]();};}function saveUpdates(_0x33a204,_0x72c8bf){return function(_0x1cf279){if(_0x1cf279){return _0x1cf279[_0x488d('0x23')](_0x33a204)[_0x488d('0x24')](function(_0x2773ad){return _0x2773ad;});}return null;};}function removeEntity(_0x56bcfe,_0x1ce7f8){return function(_0x49b5d8){if(_0x49b5d8){return _0x49b5d8[_0x488d('0x25')]()[_0x488d('0x24')](function(){_0x56bcfe['status'](0xcc)[_0x488d('0x19')]();});}};}function handleEntityNotFound(_0x5e1db4,_0x3a80bc){return function(_0x291023){if(!_0x291023){_0x5e1db4[_0x488d('0x17')](0x194);}return _0x291023;};}function handleError(_0xf4cbdf,_0x26c2b5){_0x26c2b5=_0x26c2b5||0x1f4;return function(_0x50d480){logger['error'](_0x50d480['stack']);if(_0x50d480['name']){delete _0x50d480[_0x488d('0x26')];}_0xf4cbdf[_0x488d('0x18')](_0x26c2b5)[_0x488d('0x27')](_0x50d480);};}exports[_0x488d('0x28')]=function(_0x268196,_0x1dc569){var _0x307d02={},_0x3edbb4={},_0x213572={'count':0x0,'rows':[]};var _0x1d90b3=_[_0x488d('0x29')](db[_0x488d('0x2a')][_0x488d('0x2b')],function(_0x5a20b5){return{'name':_0x5a20b5[_0x488d('0x2c')],'type':_0x5a20b5[_0x488d('0x2d')][_0x488d('0x2e')]};});_0x3edbb4[_0x488d('0x2f')]=_['map'](_0x1d90b3,_0x488d('0x26'));_0x3edbb4[_0x488d('0x30')]=_[_0x488d('0x31')](_0x268196[_0x488d('0x30')]);_0x3edbb4[_0x488d('0x32')]=_[_0x488d('0x33')](_0x3edbb4[_0x488d('0x2f')],_0x3edbb4['query']);_0x307d02[_0x488d('0x34')]=_[_0x488d('0x33')](_0x3edbb4[_0x488d('0x2f')],qs[_0x488d('0x35')](_0x268196['query'][_0x488d('0x35')]));_0x307d02['attributes']=_0x307d02['attributes'][_0x488d('0x36')]?_0x307d02['attributes']:_0x3edbb4[_0x488d('0x2f')];if(!_0x268196[_0x488d('0x30')][_0x488d('0x37')](_0x488d('0x38'))){_0x307d02[_0x488d('0x1b')]=qs[_0x488d('0x1b')](_0x268196[_0x488d('0x30')][_0x488d('0x1b')]);_0x307d02[_0x488d('0x1d')]=qs[_0x488d('0x1d')](_0x268196[_0x488d('0x30')][_0x488d('0x1d')]);}_0x307d02[_0x488d('0x39')]=qs[_0x488d('0x3a')](_0x268196[_0x488d('0x30')][_0x488d('0x3a')]);_0x307d02[_0x488d('0x3b')]=qs[_0x488d('0x32')](_[_0x488d('0x3c')](_0x268196[_0x488d('0x30')],_0x3edbb4[_0x488d('0x32')]),_0x1d90b3);if(_0x268196[_0x488d('0x30')][_0x488d('0x3d')]){_0x307d02[_0x488d('0x3b')]=_[_0x488d('0x3e')](_0x307d02[_0x488d('0x3b')],{'$or':_[_0x488d('0x29')](_0x1d90b3,function(_0x456142){if(_0x456142['type']!=='VIRTUAL'){var _0x13d6ef={};_0x13d6ef[_0x456142[_0x488d('0x26')]]={'$like':'%'+_0x268196[_0x488d('0x30')]['filter']+'%'};return _0x13d6ef;}})});}_0x307d02=_[_0x488d('0x3e')]({},_0x307d02,_0x268196[_0x488d('0x3f')]);var _0x26bfa8={'where':_0x307d02['where']};return db['VtigerAccount'][_0x488d('0x1c')](_0x26bfa8)[_0x488d('0x24')](function(_0x508106){_0x213572[_0x488d('0x1c')]=_0x508106;if(_0x268196[_0x488d('0x30')][_0x488d('0x40')]){_0x307d02[_0x488d('0x41')]=[{'all':!![]}];}return db['VtigerAccount']['findAll'](_0x307d02);})['then'](function(_0x1a5fbd){_0x213572[_0x488d('0x42')]=_0x1a5fbd;return _0x213572;})[_0x488d('0x24')](respondWithFilteredResult(_0x1dc569,_0x307d02))[_0x488d('0x43')](handleError(_0x1dc569,null));};exports[_0x488d('0x44')]=function(_0x134375,_0x2f05b0){var _0x335704={'raw':![],'where':{'id':_0x134375[_0x488d('0x45')]['id']}},_0x297d88={};_0x297d88[_0x488d('0x2f')]=_[_0x488d('0x31')](db[_0x488d('0x2a')][_0x488d('0x2b')]);_0x297d88[_0x488d('0x30')]=_[_0x488d('0x31')](_0x134375[_0x488d('0x30')]);_0x297d88['filters']=_[_0x488d('0x33')](_0x297d88[_0x488d('0x2f')],_0x297d88[_0x488d('0x30')]);_0x335704['attributes']=_[_0x488d('0x33')](_0x297d88['model'],qs[_0x488d('0x35')](_0x134375[_0x488d('0x30')][_0x488d('0x35')]));_0x335704[_0x488d('0x34')]=_0x335704[_0x488d('0x34')][_0x488d('0x36')]?_0x335704[_0x488d('0x34')]:_0x297d88[_0x488d('0x2f')];if(_0x134375[_0x488d('0x30')][_0x488d('0x40')]){_0x335704[_0x488d('0x41')]=[{'all':!![]}];}_0x335704=_[_0x488d('0x3e')]({},_0x335704,_0x134375[_0x488d('0x3f')]);return db[_0x488d('0x2a')][_0x488d('0x46')](_0x335704)['then'](handleEntityNotFound(_0x2f05b0,null))[_0x488d('0x24')](respondWithResult(_0x2f05b0,null))[_0x488d('0x43')](handleError(_0x2f05b0,null));};exports[_0x488d('0x47')]=function(_0xad997d,_0x4d445f){return db[_0x488d('0x2a')]['create'](_0xad997d['body'],{})[_0x488d('0x24')](respondWithResult(_0x4d445f,0xc9))[_0x488d('0x43')](handleError(_0x4d445f,null));};exports[_0x488d('0x23')]=function(_0x484856,_0x109831){if(_0x484856[_0x488d('0x48')]['id']){delete _0x484856['body']['id'];}return db[_0x488d('0x2a')][_0x488d('0x46')]({'where':{'id':_0x484856[_0x488d('0x45')]['id']}})[_0x488d('0x24')](handleEntityNotFound(_0x109831,null))[_0x488d('0x24')](saveUpdates(_0x484856['body'],null))[_0x488d('0x24')](respondWithResult(_0x109831,null))[_0x488d('0x43')](handleError(_0x109831,null));};exports[_0x488d('0x25')]=function(_0x422bd1,_0x27eb9e){return db[_0x488d('0x2a')]['find']({'where':{'id':_0x422bd1[_0x488d('0x45')]['id']}})['then'](handleEntityNotFound(_0x27eb9e,null))[_0x488d('0x24')](removeEntity(_0x27eb9e,null))[_0x488d('0x43')](handleError(_0x27eb9e,null));};exports[_0x488d('0x49')]=function(_0x251fb5,_0x3323a3,_0x5c9df8){var _0x199b28={};var _0x53be86={};var _0x2cd814;var _0x5e4db7;return db[_0x488d('0x2a')][_0x488d('0x4a')]({'where':{'id':_0x251fb5[_0x488d('0x45')]['id']}})[_0x488d('0x24')](handleEntityNotFound(_0x3323a3,null))['then'](function(_0x242742){if(_0x242742){_0x2cd814=_0x242742;_0x53be86[_0x488d('0x2f')]=_[_0x488d('0x31')](db[_0x488d('0x4b')]['rawAttributes']);_0x53be86[_0x488d('0x30')]=_['keys'](_0x251fb5['query']);_0x53be86[_0x488d('0x32')]=_[_0x488d('0x33')](_0x53be86['model'],_0x53be86[_0x488d('0x30')]);_0x199b28[_0x488d('0x34')]=_[_0x488d('0x33')](_0x53be86[_0x488d('0x2f')],qs[_0x488d('0x35')](_0x251fb5[_0x488d('0x30')][_0x488d('0x35')]));_0x199b28[_0x488d('0x34')]=_0x199b28[_0x488d('0x34')][_0x488d('0x36')]?_0x199b28[_0x488d('0x34')]:_0x53be86[_0x488d('0x2f')];_0x199b28[_0x488d('0x39')]=qs[_0x488d('0x3a')](_0x251fb5[_0x488d('0x30')]['sort']);_0x199b28[_0x488d('0x3b')]=qs['filters'](_[_0x488d('0x3c')](_0x251fb5['query'],_0x53be86['filters']));if(_0x251fb5['query'][_0x488d('0x3d')]){_0x199b28['where']=_[_0x488d('0x3e')](_0x199b28[_0x488d('0x3b')],{'$or':_[_0x488d('0x29')](_0x199b28['attributes'],function(_0x3b5e17){var _0x3a4c38={};_0x3a4c38[_0x3b5e17]={'$like':'%'+_0x251fb5['query'][_0x488d('0x3d')]+'%'};return _0x3a4c38;})});}_0x199b28=_[_0x488d('0x3e')]({},_0x199b28,_0x251fb5[_0x488d('0x3f')]);return _0x2cd814[_0x488d('0x49')](_0x199b28);}})[_0x488d('0x24')](function(_0x299a8e){if(_0x299a8e){_0x5e4db7=_0x299a8e[_0x488d('0x36')];if(!_0x251fb5[_0x488d('0x30')][_0x488d('0x37')]('nolimit')){_0x199b28[_0x488d('0x1b')]=qs['limit'](_0x251fb5[_0x488d('0x30')][_0x488d('0x1b')]);_0x199b28[_0x488d('0x1d')]=qs[_0x488d('0x1d')](_0x251fb5[_0x488d('0x30')][_0x488d('0x1d')]);}return _0x2cd814[_0x488d('0x49')](_0x199b28);}})[_0x488d('0x24')](function(_0x310ec5){if(_0x310ec5){return _0x310ec5?{'count':_0x5e4db7,'rows':_0x310ec5}:null;}})[_0x488d('0x24')](respondWithResult(_0x3323a3,null))[_0x488d('0x43')](handleError(_0x3323a3,null));};exports[_0x488d('0x4c')]=function(_0x207fef,_0x32ac43,_0x3fabdc){if(_0x207fef[_0x488d('0x48')]['id']){delete _0x207fef[_0x488d('0x48')]['id'];}return db[_0x488d('0x2a')]['findOne']({'where':{'id':_0x207fef[_0x488d('0x45')]['id']}})[_0x488d('0x24')](handleEntityNotFound(_0x32ac43,null))['then'](function(_0x4c55af){if(_0x4c55af){_0x207fef[_0x488d('0x48')][_0x488d('0x4d')]=_0x4c55af['id'];_0x207fef[_0x488d('0x48')][_0x488d('0x4e')]=integrations[_0x488d('0x4f')](_0x207fef[_0x488d('0x48')][_0x488d('0x50')],_0x207fef['body'][_0x488d('0x2d')]);_0x207fef[_0x488d('0x48')][_0x488d('0x51')]=integrations[_0x488d('0x52')](_0x207fef[_0x488d('0x48')][_0x488d('0x50')],_0x207fef[_0x488d('0x48')][_0x488d('0x2d')]);return db['VtigerConfiguration'][_0x488d('0x47')](_0x207fef[_0x488d('0x48')],{'include':[{'model':db[_0x488d('0x53')],'as':_0x488d('0x4e')},{'model':db[_0x488d('0x53')],'as':_0x488d('0x51')}]});}return null;})[_0x488d('0x24')](respondWithResult(_0x32ac43,null))['catch'](handleError(_0x32ac43,null));};var md5=require(_0x488d('0x54'));exports[_0x488d('0x55')]=function(_0x5a9525,_0x3b9368,_0x571dc3){var _0x7ce3e8=null;var _0x3bd550=null;var _0x2400e3=null;var _0x422cd8=null;var _0x39985d='';return db[_0x488d('0x2a')]['findOne']({'where':{'id':_0x5a9525[_0x488d('0x45')]['id']},'attributes':['id',_0x488d('0x26'),_0x488d('0x56'),_0x488d('0x57'),_0x488d('0x58'),_0x488d('0x59'),_0x488d('0x5a'),'accessKey']})['then'](handleEntityNotFound(_0x3b9368,null))[_0x488d('0x24')](function(_0x28cec5){if(_0x28cec5){_0x7ce3e8=_0x28cec5['username'];_0x3bd550=_0x28cec5['accessKey'];_0x2400e3=_0x28cec5[_0x488d('0x58')];_0x39985d=_0x28cec5[_0x488d('0x59')];var _0x45164f=_0x39985d[_0x488d('0x5b')](-0x1);if(_0x45164f==='/'){_0x39985d=_0x39985d[_0x488d('0x5c')](0x0,_0x39985d['lastIndexOf'](_0x45164f));}_0x422cd8=util['format'](_0x488d('0x5d'),_0x39985d);var _0x585f32={'method':_0x488d('0x5e'),'uri':_0x422cd8,'qs':{'operation':_0x488d('0x5f'),'username':_0x28cec5[_0x488d('0x56')]},'json':!![]};return rp(_0x585f32);}})[_0x488d('0x24')](function(_0x2b83a4){if(_0x2b83a4[_0x488d('0x60')]){var _0x19c106={'method':_0x488d('0x61'),'uri':_0x422cd8,'form':{'operation':_0x488d('0x62'),'username':_0x7ce3e8,'accessKey':md5(_0x2b83a4[_0x488d('0x63')][_0x488d('0x64')]+_0x3bd550)},'json':!![]};return rp(_0x19c106);}})['then'](function(_0x261301){if(_0x261301[_0x488d('0x60')]){var _0x21a007={'method':_0x488d('0x5e'),'uri':_0x422cd8,'qs':{'operation':_0x488d('0x65'),'username':_0x7ce3e8,'sessionName':_0x261301[_0x488d('0x63')][_0x488d('0x66')],'elementType':_0x2400e3},'json':!![]};return rp(_0x21a007);}})[_0x488d('0x24')](function(_0x47d7d9){if(_0x47d7d9[_0x488d('0x60')]){var _0x2e9e21=[_0x488d('0x67'),_0x488d('0x68'),_0x488d('0x69')];_[_0x488d('0x6a')](_0x47d7d9['result'][_0x488d('0x35')],function(_0x5b2881){return _0x2e9e21[_0x488d('0x6b')](_0x5b2881['type'][_0x488d('0x26')]);});_[_0x488d('0x6a')](_0x47d7d9[_0x488d('0x63')][_0x488d('0x35')],function(_0x37a377){return _0x37a377[_0x488d('0x6c')]===_0x488d('0x6d');});return{'count':_0x47d7d9[_0x488d('0x63')][_0x488d('0x35')][_0x488d('0x36')],'rows':_['map'](_0x47d7d9[_0x488d('0x63')][_0x488d('0x35')],function(_0x2c16ef){return{'id':_0x2c16ef[_0x488d('0x26')],'name':_0x2c16ef[_0x488d('0x6e')],'custom':_[_0x488d('0x6f')](_0x2c16ef[_0x488d('0x26')],'cf_')?!![]:![],'options':_0x2c16ef[_0x488d('0x2d')][_0x488d('0x26')]===_0x488d('0x70')&&_0x2c16ef[_0x488d('0x2d')][_0x488d('0x71')][_0x488d('0x36')]>0x0?_[_0x488d('0x29')](_0x2c16ef[_0x488d('0x2d')][_0x488d('0x71')],function(_0x3d6e02){return{'name':_0x3d6e02[_0x488d('0x6e')],'value':_0x3d6e02[_0x488d('0x72')]};}):[]};})};}})[_0x488d('0x24')](respondWithResult(_0x3b9368,null))[_0x488d('0x43')](function(_0x54568c){console[_0x488d('0x73')](_0x488d('0x74')+_0x54568c);var _0x287fb5=_0x5a9525[_0x488d('0x30')][_0x488d('0x75')]?0x1f4:_0x54568c[_0x488d('0x76')]||0x1f4;logger['error'](_0x488d('0x77'),_0x488d('0x55'),_0x287fb5,JSON['stringify'](_0x54568c));delete _0x54568c[_0x488d('0x26')];if(_0x287fb5===0x191){_0x287fb5=0x190;}_0x3b9368[_0x488d('0x18')](_0x287fb5)[_0x488d('0x27')](_0x5a9525[_0x488d('0x30')][_0x488d('0x75')]?{'message':_0x488d('0x78'),'statusCode':_0x54568c[_0x488d('0x76')]}:_0x54568c);});};
\ No newline at end of file
+var _0x6a3f=['format','%s/webservice.php','GET','getchallenge','success','login','result','token','describe','sessionName','autogenerated','reference','owner','includes','remove','editable','false','label','startsWith','picklist','picklistValues','value','vTiger\x20error:\x20','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','path','to-csv','fs-extra','lodash','squel','desk.js','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','end','offset','undefined','limit','count','set','json','apply','reject','update','destroy','then','error','stack','name','send','index','map','VtigerAccount','rawAttributes','fieldName','type','query','keys','filters','intersection','model','attributes','fields','length','nolimit','order','sort','pick','where','VIRTUAL','filter','merge','options','includeAll','include','findAll','catch','show','params','find','create','body','getConfigurations','findOne','VtigerConfiguration','hasOwnProperty','addConfiguration','AccountId','getSubjects','Descriptions','getDescriptions','channel','Subjects','VtigerField','md5','getFields','username','description','moduleName','remoteUri','accessKey','substring','lastIndexOf'];(function(_0x3275fb,_0x19f753){var _0x1323d4=function(_0x71d716){while(--_0x71d716){_0x3275fb['push'](_0x3275fb['shift']());}};_0x1323d4(++_0x19f753);}(_0x6a3f,0x180));var _0xf6a3=function(_0x112363,_0x424990){_0x112363=_0x112363-0x0;var _0x10bbaa=_0x6a3f[_0x112363];return _0x10bbaa;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xf6a3('0x0'));var zipdir=require(_0xf6a3('0x1'));var jsonpatch=require(_0xf6a3('0x2'));var rp=require(_0xf6a3('0x3'));var moment=require('moment');var BPromise=require(_0xf6a3('0x4'));var Mustache=require(_0xf6a3('0x5'));var util=require('util');var path=require(_0xf6a3('0x6'));var sox=require('sox');var csv=require(_0xf6a3('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xf6a3('0x8'));var _=require(_0xf6a3('0x9'));var squel=require(_0xf6a3('0xa'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xf6a3('0xb'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0xf6a3('0xc'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xf6a3('0xd'));var logger=require(_0xf6a3('0xe'))(_0xf6a3('0xf'));var utils=require(_0xf6a3('0x10'));var config=require(_0xf6a3('0x11'));var licenseUtil=require(_0xf6a3('0x12'));var db=require(_0xf6a3('0x13'))['db'];var integrations=require(_0xf6a3('0x14'));function respondWithStatusCode(_0x58b175,_0x563a2c){_0x563a2c=_0x563a2c||0xcc;return function(_0x37ea14){if(_0x37ea14){return _0x58b175[_0xf6a3('0x15')](_0x563a2c);}return _0x58b175[_0xf6a3('0x16')](_0x563a2c)[_0xf6a3('0x17')]();};}function respondWithResult(_0x4d2879,_0x363ad9){_0x363ad9=_0x363ad9||0xc8;return function(_0x55c801){if(_0x55c801){return _0x4d2879[_0xf6a3('0x16')](_0x363ad9)['json'](_0x55c801);}};}function respondWithFilteredResult(_0x515219,_0xc41a21){return function(_0x521526){if(_0x521526){var _0x4e27d3=typeof _0xc41a21[_0xf6a3('0x18')]===_0xf6a3('0x19')&&typeof _0xc41a21[_0xf6a3('0x1a')]===_0xf6a3('0x19');var _0x4d1f30=_0x521526[_0xf6a3('0x1b')];var _0x2a9420=_0x4e27d3?0x0:_0xc41a21['offset'];var _0x210c92=_0x4e27d3?_0x521526['count']:_0xc41a21[_0xf6a3('0x18')]+_0xc41a21[_0xf6a3('0x1a')];var _0xa10048;if(_0x210c92>=_0x4d1f30){_0x210c92=_0x4d1f30;_0xa10048=0xc8;}else{_0xa10048=0xce;}_0x515219[_0xf6a3('0x16')](_0xa10048);return _0x515219[_0xf6a3('0x1c')]('Content-Range',_0x2a9420+'-'+_0x210c92+'/'+_0x4d1f30)[_0xf6a3('0x1d')](_0x521526);}return null;};}function patchUpdates(_0x11ab17){return function(_0x1f9b41){try{jsonpatch[_0xf6a3('0x1e')](_0x1f9b41,_0x11ab17,!![]);}catch(_0x3b42ba){return BPromise[_0xf6a3('0x1f')](_0x3b42ba);}return _0x1f9b41['save']();};}function saveUpdates(_0x37086c,_0x25bdf0){return function(_0x4e957b){if(_0x4e957b){return _0x4e957b[_0xf6a3('0x20')](_0x37086c)['then'](function(_0xcff8bd){return _0xcff8bd;});}return null;};}function removeEntity(_0x2dff4d,_0x21f6ea){return function(_0x2e8dc8){if(_0x2e8dc8){return _0x2e8dc8[_0xf6a3('0x21')]()[_0xf6a3('0x22')](function(){_0x2dff4d['status'](0xcc)[_0xf6a3('0x17')]();});}};}function handleEntityNotFound(_0x35f323,_0x5671f9){return function(_0x5e63d1){if(!_0x5e63d1){_0x35f323[_0xf6a3('0x15')](0x194);}return _0x5e63d1;};}function handleError(_0x301f8c,_0x98569c){_0x98569c=_0x98569c||0x1f4;return function(_0x4d5ced){logger[_0xf6a3('0x23')](_0x4d5ced[_0xf6a3('0x24')]);if(_0x4d5ced[_0xf6a3('0x25')]){delete _0x4d5ced[_0xf6a3('0x25')];}_0x301f8c[_0xf6a3('0x16')](_0x98569c)[_0xf6a3('0x26')](_0x4d5ced);};}exports[_0xf6a3('0x27')]=function(_0x5d7566,_0x56e4ce){var _0x52bee9={},_0x130313={},_0x391bd6={'count':0x0,'rows':[]};var _0xe2348d=_[_0xf6a3('0x28')](db[_0xf6a3('0x29')][_0xf6a3('0x2a')],function(_0x4a489d){return{'name':_0x4a489d[_0xf6a3('0x2b')],'type':_0x4a489d[_0xf6a3('0x2c')]['key']};});_0x130313['model']=_[_0xf6a3('0x28')](_0xe2348d,_0xf6a3('0x25'));_0x130313[_0xf6a3('0x2d')]=_[_0xf6a3('0x2e')](_0x5d7566[_0xf6a3('0x2d')]);_0x130313[_0xf6a3('0x2f')]=_[_0xf6a3('0x30')](_0x130313[_0xf6a3('0x31')],_0x130313[_0xf6a3('0x2d')]);_0x52bee9[_0xf6a3('0x32')]=_[_0xf6a3('0x30')](_0x130313[_0xf6a3('0x31')],qs[_0xf6a3('0x33')](_0x5d7566[_0xf6a3('0x2d')][_0xf6a3('0x33')]));_0x52bee9['attributes']=_0x52bee9[_0xf6a3('0x32')][_0xf6a3('0x34')]?_0x52bee9[_0xf6a3('0x32')]:_0x130313[_0xf6a3('0x31')];if(!_0x5d7566[_0xf6a3('0x2d')]['hasOwnProperty'](_0xf6a3('0x35'))){_0x52bee9[_0xf6a3('0x1a')]=qs[_0xf6a3('0x1a')](_0x5d7566[_0xf6a3('0x2d')][_0xf6a3('0x1a')]);_0x52bee9[_0xf6a3('0x18')]=qs[_0xf6a3('0x18')](_0x5d7566['query'][_0xf6a3('0x18')]);}_0x52bee9[_0xf6a3('0x36')]=qs['sort'](_0x5d7566[_0xf6a3('0x2d')][_0xf6a3('0x37')]);_0x52bee9['where']=qs[_0xf6a3('0x2f')](_[_0xf6a3('0x38')](_0x5d7566[_0xf6a3('0x2d')],_0x130313[_0xf6a3('0x2f')]),_0xe2348d);if(_0x5d7566['query']['filter']){_0x52bee9[_0xf6a3('0x39')]=_['merge'](_0x52bee9[_0xf6a3('0x39')],{'$or':_[_0xf6a3('0x28')](_0xe2348d,function(_0x4b9386){if(_0x4b9386['type']!==_0xf6a3('0x3a')){var _0x41a4b8={};_0x41a4b8[_0x4b9386[_0xf6a3('0x25')]]={'$like':'%'+_0x5d7566['query'][_0xf6a3('0x3b')]+'%'};return _0x41a4b8;}})});}_0x52bee9=_[_0xf6a3('0x3c')]({},_0x52bee9,_0x5d7566[_0xf6a3('0x3d')]);var _0x2b8bf5={'where':_0x52bee9['where']};return db[_0xf6a3('0x29')][_0xf6a3('0x1b')](_0x2b8bf5)[_0xf6a3('0x22')](function(_0x4a2e78){_0x391bd6[_0xf6a3('0x1b')]=_0x4a2e78;if(_0x5d7566[_0xf6a3('0x2d')][_0xf6a3('0x3e')]){_0x52bee9[_0xf6a3('0x3f')]=[{'all':!![]}];}return db[_0xf6a3('0x29')][_0xf6a3('0x40')](_0x52bee9);})[_0xf6a3('0x22')](function(_0x41d31a){_0x391bd6['rows']=_0x41d31a;return _0x391bd6;})['then'](respondWithFilteredResult(_0x56e4ce,_0x52bee9))[_0xf6a3('0x41')](handleError(_0x56e4ce,null));};exports[_0xf6a3('0x42')]=function(_0x5a74f0,_0x437451){var _0x1a0735={'raw':![],'where':{'id':_0x5a74f0[_0xf6a3('0x43')]['id']}},_0x10610f={};_0x10610f[_0xf6a3('0x31')]=_['keys'](db[_0xf6a3('0x29')][_0xf6a3('0x2a')]);_0x10610f[_0xf6a3('0x2d')]=_[_0xf6a3('0x2e')](_0x5a74f0[_0xf6a3('0x2d')]);_0x10610f['filters']=_[_0xf6a3('0x30')](_0x10610f[_0xf6a3('0x31')],_0x10610f[_0xf6a3('0x2d')]);_0x1a0735['attributes']=_[_0xf6a3('0x30')](_0x10610f[_0xf6a3('0x31')],qs['fields'](_0x5a74f0[_0xf6a3('0x2d')]['fields']));_0x1a0735[_0xf6a3('0x32')]=_0x1a0735['attributes']['length']?_0x1a0735[_0xf6a3('0x32')]:_0x10610f['model'];if(_0x5a74f0[_0xf6a3('0x2d')][_0xf6a3('0x3e')]){_0x1a0735[_0xf6a3('0x3f')]=[{'all':!![]}];}_0x1a0735=_['merge']({},_0x1a0735,_0x5a74f0[_0xf6a3('0x3d')]);return db['VtigerAccount'][_0xf6a3('0x44')](_0x1a0735)[_0xf6a3('0x22')](handleEntityNotFound(_0x437451,null))[_0xf6a3('0x22')](respondWithResult(_0x437451,null))[_0xf6a3('0x41')](handleError(_0x437451,null));};exports['create']=function(_0x40458a,_0x5e3cfc){return db[_0xf6a3('0x29')][_0xf6a3('0x45')](_0x40458a[_0xf6a3('0x46')],{})[_0xf6a3('0x22')](respondWithResult(_0x5e3cfc,0xc9))['catch'](handleError(_0x5e3cfc,null));};exports[_0xf6a3('0x20')]=function(_0x862a75,_0x12f1c2){if(_0x862a75['body']['id']){delete _0x862a75['body']['id'];}return db[_0xf6a3('0x29')][_0xf6a3('0x44')]({'where':{'id':_0x862a75[_0xf6a3('0x43')]['id']}})[_0xf6a3('0x22')](handleEntityNotFound(_0x12f1c2,null))[_0xf6a3('0x22')](saveUpdates(_0x862a75[_0xf6a3('0x46')],null))[_0xf6a3('0x22')](respondWithResult(_0x12f1c2,null))[_0xf6a3('0x41')](handleError(_0x12f1c2,null));};exports['destroy']=function(_0x922514,_0x53d2bc){return db[_0xf6a3('0x29')][_0xf6a3('0x44')]({'where':{'id':_0x922514[_0xf6a3('0x43')]['id']}})[_0xf6a3('0x22')](handleEntityNotFound(_0x53d2bc,null))[_0xf6a3('0x22')](removeEntity(_0x53d2bc,null))['catch'](handleError(_0x53d2bc,null));};exports[_0xf6a3('0x47')]=function(_0x558f6a,_0x2ea058,_0x1adf88){var _0x3855bd={};var _0x290c94={};var _0x4b0774;var _0x39c411;return db[_0xf6a3('0x29')][_0xf6a3('0x48')]({'where':{'id':_0x558f6a['params']['id']}})['then'](handleEntityNotFound(_0x2ea058,null))['then'](function(_0x16a883){if(_0x16a883){_0x4b0774=_0x16a883;_0x290c94[_0xf6a3('0x31')]=_[_0xf6a3('0x2e')](db[_0xf6a3('0x49')][_0xf6a3('0x2a')]);_0x290c94[_0xf6a3('0x2d')]=_[_0xf6a3('0x2e')](_0x558f6a[_0xf6a3('0x2d')]);_0x290c94[_0xf6a3('0x2f')]=_[_0xf6a3('0x30')](_0x290c94[_0xf6a3('0x31')],_0x290c94[_0xf6a3('0x2d')]);_0x3855bd[_0xf6a3('0x32')]=_[_0xf6a3('0x30')](_0x290c94['model'],qs[_0xf6a3('0x33')](_0x558f6a['query'][_0xf6a3('0x33')]));_0x3855bd[_0xf6a3('0x32')]=_0x3855bd[_0xf6a3('0x32')][_0xf6a3('0x34')]?_0x3855bd[_0xf6a3('0x32')]:_0x290c94[_0xf6a3('0x31')];_0x3855bd[_0xf6a3('0x36')]=qs[_0xf6a3('0x37')](_0x558f6a['query'][_0xf6a3('0x37')]);_0x3855bd[_0xf6a3('0x39')]=qs['filters'](_[_0xf6a3('0x38')](_0x558f6a[_0xf6a3('0x2d')],_0x290c94['filters']));if(_0x558f6a['query'][_0xf6a3('0x3b')]){_0x3855bd[_0xf6a3('0x39')]=_[_0xf6a3('0x3c')](_0x3855bd[_0xf6a3('0x39')],{'$or':_[_0xf6a3('0x28')](_0x3855bd[_0xf6a3('0x32')],function(_0x390d48){var _0x4ab3ef={};_0x4ab3ef[_0x390d48]={'$like':'%'+_0x558f6a[_0xf6a3('0x2d')][_0xf6a3('0x3b')]+'%'};return _0x4ab3ef;})});}_0x3855bd=_[_0xf6a3('0x3c')]({},_0x3855bd,_0x558f6a['options']);return _0x4b0774[_0xf6a3('0x47')](_0x3855bd);}})[_0xf6a3('0x22')](function(_0x241a77){if(_0x241a77){_0x39c411=_0x241a77[_0xf6a3('0x34')];if(!_0x558f6a[_0xf6a3('0x2d')][_0xf6a3('0x4a')](_0xf6a3('0x35'))){_0x3855bd[_0xf6a3('0x1a')]=qs['limit'](_0x558f6a[_0xf6a3('0x2d')][_0xf6a3('0x1a')]);_0x3855bd[_0xf6a3('0x18')]=qs[_0xf6a3('0x18')](_0x558f6a[_0xf6a3('0x2d')]['offset']);}return _0x4b0774[_0xf6a3('0x47')](_0x3855bd);}})[_0xf6a3('0x22')](function(_0x7cf1f7){if(_0x7cf1f7){return _0x7cf1f7?{'count':_0x39c411,'rows':_0x7cf1f7}:null;}})[_0xf6a3('0x22')](respondWithResult(_0x2ea058,null))[_0xf6a3('0x41')](handleError(_0x2ea058,null));};exports[_0xf6a3('0x4b')]=function(_0x2dd1be,_0x189197,_0x46cb83){if(_0x2dd1be[_0xf6a3('0x46')]['id']){delete _0x2dd1be[_0xf6a3('0x46')]['id'];}return db[_0xf6a3('0x29')]['findOne']({'where':{'id':_0x2dd1be['params']['id']}})['then'](handleEntityNotFound(_0x189197,null))[_0xf6a3('0x22')](function(_0x5644d5){if(_0x5644d5){_0x2dd1be['body'][_0xf6a3('0x4c')]=_0x5644d5['id'];_0x2dd1be[_0xf6a3('0x46')]['Subjects']=integrations[_0xf6a3('0x4d')](_0x2dd1be['body']['channel'],_0x2dd1be[_0xf6a3('0x46')][_0xf6a3('0x2c')]);_0x2dd1be[_0xf6a3('0x46')][_0xf6a3('0x4e')]=integrations[_0xf6a3('0x4f')](_0x2dd1be[_0xf6a3('0x46')][_0xf6a3('0x50')],_0x2dd1be[_0xf6a3('0x46')][_0xf6a3('0x2c')]);return db['VtigerConfiguration'][_0xf6a3('0x45')](_0x2dd1be[_0xf6a3('0x46')],{'include':[{'model':db['VtigerField'],'as':_0xf6a3('0x51')},{'model':db[_0xf6a3('0x52')],'as':_0xf6a3('0x4e')}]});}return null;})[_0xf6a3('0x22')](respondWithResult(_0x189197,null))['catch'](handleError(_0x189197,null));};var md5=require(_0xf6a3('0x53'));exports[_0xf6a3('0x54')]=function(_0x190cd8,_0x5a0027,_0x5ec303){var _0xd477a2=null;var _0x186d89=null;var _0x5e9e48=null;var _0x36f764=null;var _0x2447ce='';return db[_0xf6a3('0x29')][_0xf6a3('0x48')]({'where':{'id':_0x190cd8['params']['id']},'attributes':['id',_0xf6a3('0x25'),_0xf6a3('0x55'),_0xf6a3('0x56'),_0xf6a3('0x57'),_0xf6a3('0x58'),'serverUrl',_0xf6a3('0x59')]})[_0xf6a3('0x22')](handleEntityNotFound(_0x5a0027,null))[_0xf6a3('0x22')](function(_0x2de69e){if(_0x2de69e){_0xd477a2=_0x2de69e[_0xf6a3('0x55')];_0x186d89=_0x2de69e[_0xf6a3('0x59')];_0x5e9e48=_0x2de69e[_0xf6a3('0x57')];_0x2447ce=_0x2de69e[_0xf6a3('0x58')];var _0x151691=_0x2447ce['slice'](-0x1);if(_0x151691==='/'){_0x2447ce=_0x2447ce[_0xf6a3('0x5a')](0x0,_0x2447ce[_0xf6a3('0x5b')](_0x151691));}_0x36f764=util[_0xf6a3('0x5c')](_0xf6a3('0x5d'),_0x2447ce);var _0x493019={'method':_0xf6a3('0x5e'),'uri':_0x36f764,'qs':{'operation':_0xf6a3('0x5f'),'username':_0x2de69e['username']},'json':!![]};return rp(_0x493019);}})[_0xf6a3('0x22')](function(_0x5f3ccc){if(_0x5f3ccc[_0xf6a3('0x60')]){var _0x40a753={'method':'POST','uri':_0x36f764,'form':{'operation':_0xf6a3('0x61'),'username':_0xd477a2,'accessKey':md5(_0x5f3ccc[_0xf6a3('0x62')][_0xf6a3('0x63')]+_0x186d89)},'json':!![]};return rp(_0x40a753);}})[_0xf6a3('0x22')](function(_0x1c2823){if(_0x1c2823['success']){var _0x1b2476={'method':'GET','uri':_0x36f764,'qs':{'operation':_0xf6a3('0x64'),'username':_0xd477a2,'sessionName':_0x1c2823[_0xf6a3('0x62')][_0xf6a3('0x65')],'elementType':_0x5e9e48},'json':!![]};return rp(_0x1b2476);}})['then'](function(_0x1ab5e7){if(_0x1ab5e7['success']){var _0x2cc758=[_0xf6a3('0x66'),_0xf6a3('0x67'),_0xf6a3('0x68')];_['remove'](_0x1ab5e7[_0xf6a3('0x62')]['fields'],function(_0x3df18c){return _0x2cc758[_0xf6a3('0x69')](_0x3df18c[_0xf6a3('0x2c')][_0xf6a3('0x25')]);});_[_0xf6a3('0x6a')](_0x1ab5e7[_0xf6a3('0x62')][_0xf6a3('0x33')],function(_0x10f2fe){return _0x10f2fe[_0xf6a3('0x6b')]===_0xf6a3('0x6c');});return{'count':_0x1ab5e7[_0xf6a3('0x62')]['fields']['length'],'rows':_[_0xf6a3('0x28')](_0x1ab5e7[_0xf6a3('0x62')][_0xf6a3('0x33')],function(_0x40ed51){return{'id':_0x40ed51[_0xf6a3('0x25')],'name':_0x40ed51[_0xf6a3('0x6d')],'custom':_[_0xf6a3('0x6e')](_0x40ed51[_0xf6a3('0x25')],'cf_')?!![]:![],'options':_0x40ed51[_0xf6a3('0x2c')][_0xf6a3('0x25')]===_0xf6a3('0x6f')&&_0x40ed51[_0xf6a3('0x2c')][_0xf6a3('0x70')][_0xf6a3('0x34')]>0x0?_[_0xf6a3('0x28')](_0x40ed51['type'][_0xf6a3('0x70')],function(_0x4f0d90){return{'name':_0x4f0d90[_0xf6a3('0x6d')],'value':_0x4f0d90[_0xf6a3('0x71')]};}):[]};})};}})[_0xf6a3('0x22')](respondWithResult(_0x5a0027,null))['catch'](function(_0x5ba70f){console['log'](_0xf6a3('0x72')+_0x5ba70f);var _0x31e7c4=_0x190cd8['query'][_0xf6a3('0x73')]?0x1f4:_0x5ba70f[_0xf6a3('0x74')]||0x1f4;logger['error'](_0xf6a3('0x75'),_0xf6a3('0x54'),_0x31e7c4,JSON[_0xf6a3('0x76')](_0x5ba70f));delete _0x5ba70f[_0xf6a3('0x25')];if(_0x31e7c4===0x191){_0x31e7c4=0x190;}_0x5a0027[_0xf6a3('0x16')](_0x31e7c4)[_0xf6a3('0x26')](_0x190cd8[_0xf6a3('0x2d')][_0xf6a3('0x73')]?{'message':'Wrong\x20credentials','statusCode':_0x5ba70f[_0xf6a3('0x74')]}:_0x5ba70f);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbc0a=['api','moment','request-promise','rimraf','../../config/environment','../../components/integrations/configuration','exports','define','int_vtiger_accounts','lodash'];(function(_0x30c578,_0x8946c2){var _0x453748=function(_0x5a9907){while(--_0x5a9907){_0x30c578['push'](_0x30c578['shift']());}};_0x453748(++_0x8946c2);}(_0xbc0a,0x10d));var _0xabc0=function(_0xfba697,_0x28149e){_0xfba697=_0xfba697-0x0;var _0x3976bc=_0xbc0a[_0xfba697];return _0x3976bc;};'use strict';var _=require(_0xabc0('0x0'));var util=require('util');var logger=require('../../config/logger')(_0xabc0('0x1'));var moment=require(_0xabc0('0x2'));var BPromise=require('bluebird');var rp=require(_0xabc0('0x3'));var fs=require('fs');var path=require('path');var rimraf=require(_0xabc0('0x4'));var config=require(_0xabc0('0x5'));var attributes=require('./intVtigerAccount.attributes');var integrations=require(_0xabc0('0x6'));module[_0xabc0('0x7')]=function(_0x47984a,_0x1fda0f){return _0x47984a[_0xabc0('0x8')]('VtigerAccount',attributes,{'tableName':_0xabc0('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xb212=['bluebird','request-promise','path','../../config/environment','./intVtigerAccount.attributes','../../components/integrations/configuration','exports','int_vtiger_accounts','lodash','util','../../config/logger','moment'];(function(_0x4f680e,_0x4e0780){var _0x1d3b6a=function(_0xf695ae){while(--_0xf695ae){_0x4f680e['push'](_0x4f680e['shift']());}};_0x1d3b6a(++_0x4e0780);}(_0xb212,0x17c));var _0x2b21=function(_0x3b031a,_0x4f6b74){_0x3b031a=_0x3b031a-0x0;var _0x8fc0e4=_0xb212[_0x3b031a];return _0x8fc0e4;};'use strict';var _=require(_0x2b21('0x0'));var util=require(_0x2b21('0x1'));var logger=require(_0x2b21('0x2'))('api');var moment=require(_0x2b21('0x3'));var BPromise=require(_0x2b21('0x4'));var rp=require(_0x2b21('0x5'));var fs=require('fs');var path=require(_0x2b21('0x6'));var rimraf=require('rimraf');var config=require(_0x2b21('0x7'));var attributes=require(_0x2b21('0x8'));var integrations=require(_0x2b21('0x9'));module[_0x2b21('0xa')]=function(_0x3b7301,_0x47a2ea){return _0x3b7301['define']('VtigerAccount',attributes,{'tableName':_0x2b21('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1be1=['../../config/environment','jayson/promise','client','request','then','info','VtigerAccount,\x20%s,\x20%s','debug','VtigerAccount,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','GetVtigerAccount','options','raw','where','attributes','limit','include','map','model','VtigerAccount','find','ShowVtigerAccount','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger'];(function(_0x5bc9ce,_0x221857){var _0x293b27=function(_0x33722b){while(--_0x33722b){_0x5bc9ce['push'](_0x5bc9ce['shift']());}};_0x293b27(++_0x221857);}(_0x1be1,0x192));var _0x11be=function(_0x36d5e3,_0x16ba58){_0x36d5e3=_0x36d5e3-0x0;var _0x6c1337=_0x1be1[_0x36d5e3];return _0x6c1337;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x11be('0x0'));var BPromise=require(_0x11be('0x1'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x11be('0x2'));var db=require(_0x11be('0x3'))['db'];var utils=require(_0x11be('0x4'));var logger=require(_0x11be('0x5'))('rpc');var config=require(_0x11be('0x6'));var jayson=require(_0x11be('0x7'));var client=jayson[_0x11be('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0xfe8c62,_0x497730,_0x18f661){return new BPromise(function(_0x11fc15,_0x246772){return client[_0x11be('0x9')](_0xfe8c62,_0x18f661)[_0x11be('0xa')](function(_0x5f3d04){logger[_0x11be('0xb')](_0x11be('0xc'),_0x497730,'request\x20sent');logger[_0x11be('0xd')](_0x11be('0xe'),_0x497730,_0x11be('0xf'),JSON[_0x11be('0x10')](_0x5f3d04));if(_0x5f3d04['error']){if(_0x5f3d04[_0x11be('0x11')][_0x11be('0x12')]===0x1f4){logger[_0x11be('0x11')]('VtigerAccount,\x20%s,\x20%s',_0x497730,_0x5f3d04[_0x11be('0x11')][_0x11be('0x13')]);return _0x246772(_0x5f3d04['error'][_0x11be('0x13')]);}logger['error']('VtigerAccount,\x20%s,\x20%s',_0x497730,_0x5f3d04['error']['message']);return _0x11fc15(_0x5f3d04['error']['message']);}else{logger['info'](_0x11be('0xc'),_0x497730,'request\x20sent');_0x11fc15(_0x5f3d04[_0x11be('0x14')][_0x11be('0x13')]);}})[_0x11be('0x15')](function(_0x216b8c){logger['error'](_0x11be('0xc'),_0x497730,_0x216b8c);_0x246772(_0x216b8c);});});}exports[_0x11be('0x16')]=function(_0x56ab61){var _0x299f45=this;return new Promise(function(_0xc3263c,_0x23aa5f){return db['VtigerAccount']['findAll']({'raw':_0x56ab61[_0x11be('0x17')]?_0x56ab61[_0x11be('0x17')][_0x11be('0x18')]===undefined?!![]:![]:!![],'where':_0x56ab61[_0x11be('0x17')]?_0x56ab61['options'][_0x11be('0x19')]||null:null,'attributes':_0x56ab61[_0x11be('0x17')]?_0x56ab61[_0x11be('0x17')][_0x11be('0x1a')]||null:null,'limit':_0x56ab61[_0x11be('0x17')]?_0x56ab61[_0x11be('0x17')][_0x11be('0x1b')]||null:null,'include':_0x56ab61[_0x11be('0x17')]?_0x56ab61[_0x11be('0x17')][_0x11be('0x1c')]?_['map'](_0x56ab61[_0x11be('0x17')][_0x11be('0x1c')],function(_0x2fe43c){return{'model':db[_0x2fe43c['model']],'as':_0x2fe43c['as'],'attributes':_0x2fe43c['attributes'],'include':_0x2fe43c[_0x11be('0x1c')]?_[_0x11be('0x1d')](_0x2fe43c[_0x11be('0x1c')],function(_0x4cb27f){return{'model':db[_0x4cb27f[_0x11be('0x1e')]],'as':_0x4cb27f['as'],'attributes':_0x4cb27f['attributes'],'include':_0x4cb27f[_0x11be('0x1c')]?_['map'](_0x4cb27f[_0x11be('0x1c')],function(_0xb11f3d){return{'model':db[_0xb11f3d['model']],'as':_0xb11f3d['as'],'attributes':_0xb11f3d[_0x11be('0x1a')]};}):[]};}):[]};}):[]:[]})[_0x11be('0xa')](function(_0x1d3b5c){logger[_0x11be('0xb')](_0x11be('0x16'),_0x56ab61);logger[_0x11be('0xd')](_0x11be('0x16'),_0x56ab61,JSON[_0x11be('0x10')](_0x1d3b5c));_0xc3263c(_0x1d3b5c);})[_0x11be('0x15')](function(_0x5966c5){logger[_0x11be('0x11')]('GetVtigerAccount',_0x5966c5[_0x11be('0x13')],_0x56ab61);_0x23aa5f(_0x299f45[_0x11be('0x11')](0x1f4,_0x5966c5['message']));});});};exports['ShowVtigerAccount']=function(_0x49fd5c){var _0x265fc9=this;return new Promise(function(_0x5e8f9a,_0x66316d){return db[_0x11be('0x1f')][_0x11be('0x20')]({'raw':_0x49fd5c[_0x11be('0x17')]?_0x49fd5c[_0x11be('0x17')][_0x11be('0x18')]===undefined?!![]:![]:!![],'where':_0x49fd5c['options']?_0x49fd5c[_0x11be('0x17')][_0x11be('0x19')]||null:null,'attributes':_0x49fd5c[_0x11be('0x17')]?_0x49fd5c[_0x11be('0x17')][_0x11be('0x1a')]||null:null,'include':_0x49fd5c[_0x11be('0x17')]?_0x49fd5c['options'][_0x11be('0x1c')]?_[_0x11be('0x1d')](_0x49fd5c[_0x11be('0x17')][_0x11be('0x1c')],function(_0x228bd3){return{'model':db[_0x228bd3['model']],'as':_0x228bd3['as'],'attributes':_0x228bd3[_0x11be('0x1a')],'include':_0x228bd3[_0x11be('0x1c')]?_[_0x11be('0x1d')](_0x228bd3['include'],function(_0x2c6fb2){return{'model':db[_0x2c6fb2['model']],'as':_0x2c6fb2['as'],'attributes':_0x2c6fb2['attributes'],'include':_0x2c6fb2['include']?_['map'](_0x2c6fb2[_0x11be('0x1c')],function(_0x2c5715){return{'model':db[_0x2c5715[_0x11be('0x1e')]],'as':_0x2c5715['as'],'attributes':_0x2c5715['attributes']};}):[]};}):[]};}):[]:[]})[_0x11be('0xa')](function(_0x1866d8){logger['info'](_0x11be('0x21'),_0x49fd5c);logger['debug'](_0x11be('0x21'),_0x49fd5c,JSON['stringify'](_0x1866d8));_0x5e8f9a(_0x1866d8);})[_0x11be('0x15')](function(_0xa6d724){logger[_0x11be('0x11')](_0x11be('0x21'),_0xa6d724['message'],_0x49fd5c);_0x66316d(_0x265fc9[_0x11be('0x11')](0x1f4,_0xa6d724[_0x11be('0x13')]));});});};
\ No newline at end of file
+var _0x0102=['util','moment','bluebird','randomstring','../../config/environment','jayson/promise','client','http','then','info','VtigerAccount,\x20%s,\x20%s','request\x20sent','debug','VtigerAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','GetVtigerAccount','findAll','options','raw','where','attributes','include','model','map','find','ShowVtigerAccount'];(function(_0x4420b6,_0x5e5d0c){var _0x4e4151=function(_0x883a32){while(--_0x883a32){_0x4420b6['push'](_0x4420b6['shift']());}};_0x4e4151(++_0x5e5d0c);}(_0x0102,0x186));var _0x2010=function(_0x2ddc9d,_0x220f1f){_0x2ddc9d=_0x2ddc9d-0x0;var _0x375126=_0x0102[_0x2ddc9d];return _0x375126;};'use strict';var _=require('lodash');var util=require(_0x2010('0x0'));var moment=require(_0x2010('0x1'));var BPromise=require(_0x2010('0x2'));var rs=require(_0x2010('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')('rpc');var config=require(_0x2010('0x4'));var jayson=require(_0x2010('0x5'));var client=jayson[_0x2010('0x6')][_0x2010('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x4eeb67,_0x453fc0,_0x495d98){return new BPromise(function(_0x4728c0,_0x160e41){return client['request'](_0x4eeb67,_0x495d98)[_0x2010('0x8')](function(_0x3c2d98){logger[_0x2010('0x9')](_0x2010('0xa'),_0x453fc0,_0x2010('0xb'));logger[_0x2010('0xc')](_0x2010('0xd'),_0x453fc0,_0x2010('0xb'),JSON[_0x2010('0xe')](_0x3c2d98));if(_0x3c2d98[_0x2010('0xf')]){if(_0x3c2d98[_0x2010('0xf')][_0x2010('0x10')]===0x1f4){logger[_0x2010('0xf')](_0x2010('0xa'),_0x453fc0,_0x3c2d98[_0x2010('0xf')][_0x2010('0x11')]);return _0x160e41(_0x3c2d98['error']['message']);}logger[_0x2010('0xf')](_0x2010('0xa'),_0x453fc0,_0x3c2d98[_0x2010('0xf')][_0x2010('0x11')]);return _0x4728c0(_0x3c2d98[_0x2010('0xf')][_0x2010('0x11')]);}else{logger['info'](_0x2010('0xa'),_0x453fc0,_0x2010('0xb'));_0x4728c0(_0x3c2d98['result'][_0x2010('0x11')]);}})[_0x2010('0x12')](function(_0x410889){logger[_0x2010('0xf')](_0x2010('0xa'),_0x453fc0,_0x410889);_0x160e41(_0x410889);});});}exports[_0x2010('0x13')]=function(_0x83cd35){var _0x1476c0=this;return new Promise(function(_0x309477,_0x569de2){return db['VtigerAccount'][_0x2010('0x14')]({'raw':_0x83cd35[_0x2010('0x15')]?_0x83cd35[_0x2010('0x15')][_0x2010('0x16')]===undefined?!![]:![]:!![],'where':_0x83cd35['options']?_0x83cd35['options'][_0x2010('0x17')]||null:null,'attributes':_0x83cd35[_0x2010('0x15')]?_0x83cd35[_0x2010('0x15')][_0x2010('0x18')]||null:null,'limit':_0x83cd35[_0x2010('0x15')]?_0x83cd35[_0x2010('0x15')]['limit']||null:null,'include':_0x83cd35[_0x2010('0x15')]?_0x83cd35[_0x2010('0x15')]['include']?_['map'](_0x83cd35['options'][_0x2010('0x19')],function(_0x574719){return{'model':db[_0x574719[_0x2010('0x1a')]],'as':_0x574719['as'],'attributes':_0x574719['attributes'],'include':_0x574719['include']?_[_0x2010('0x1b')](_0x574719[_0x2010('0x19')],function(_0x52b4fe){return{'model':db[_0x52b4fe[_0x2010('0x1a')]],'as':_0x52b4fe['as'],'attributes':_0x52b4fe['attributes'],'include':_0x52b4fe[_0x2010('0x19')]?_[_0x2010('0x1b')](_0x52b4fe[_0x2010('0x19')],function(_0x3dcea4){return{'model':db[_0x3dcea4[_0x2010('0x1a')]],'as':_0x3dcea4['as'],'attributes':_0x3dcea4[_0x2010('0x18')]};}):[]};}):[]};}):[]:[]})[_0x2010('0x8')](function(_0x3eb4dc){logger[_0x2010('0x9')](_0x2010('0x13'),_0x83cd35);logger[_0x2010('0xc')](_0x2010('0x13'),_0x83cd35,JSON['stringify'](_0x3eb4dc));_0x309477(_0x3eb4dc);})[_0x2010('0x12')](function(_0x52fe5e){logger[_0x2010('0xf')](_0x2010('0x13'),_0x52fe5e[_0x2010('0x11')],_0x83cd35);_0x569de2(_0x1476c0[_0x2010('0xf')](0x1f4,_0x52fe5e['message']));});});};exports['ShowVtigerAccount']=function(_0x136d5f){var _0x48d9f2=this;return new Promise(function(_0x2839f2,_0x1d5d7a){return db['VtigerAccount'][_0x2010('0x1c')]({'raw':_0x136d5f[_0x2010('0x15')]?_0x136d5f[_0x2010('0x15')][_0x2010('0x16')]===undefined?!![]:![]:!![],'where':_0x136d5f[_0x2010('0x15')]?_0x136d5f['options'][_0x2010('0x17')]||null:null,'attributes':_0x136d5f[_0x2010('0x15')]?_0x136d5f[_0x2010('0x15')]['attributes']||null:null,'include':_0x136d5f['options']?_0x136d5f[_0x2010('0x15')][_0x2010('0x19')]?_[_0x2010('0x1b')](_0x136d5f['options']['include'],function(_0xac64e1){return{'model':db[_0xac64e1[_0x2010('0x1a')]],'as':_0xac64e1['as'],'attributes':_0xac64e1[_0x2010('0x18')],'include':_0xac64e1[_0x2010('0x19')]?_[_0x2010('0x1b')](_0xac64e1['include'],function(_0x569e13){return{'model':db[_0x569e13['model']],'as':_0x569e13['as'],'attributes':_0x569e13[_0x2010('0x18')],'include':_0x569e13[_0x2010('0x19')]?_[_0x2010('0x1b')](_0x569e13['include'],function(_0x1f7f49){return{'model':db[_0x1f7f49[_0x2010('0x1a')]],'as':_0x1f7f49['as'],'attributes':_0x1f7f49[_0x2010('0x18')]};}):[]};}):[]};}):[]:[]})[_0x2010('0x8')](function(_0x4f5106){logger[_0x2010('0x9')](_0x2010('0x1d'),_0x136d5f);logger[_0x2010('0xc')]('ShowVtigerAccount',_0x136d5f,JSON[_0x2010('0xe')](_0x4f5106));_0x2839f2(_0x4f5106);})['catch'](function(_0x13f88a){logger[_0x2010('0xf')](_0x2010('0x1d'),_0x13f88a[_0x2010('0x11')],_0x136d5f);_0x1d5d7a(_0x48d9f2[_0x2010('0xf')](0x1f4,_0x13f88a[_0x2010('0x11')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8369=['put','update','destroy','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./intVtigerConfiguration.controller','get','isAuthenticated','index','/:id','show','/:id/fields','getFields','/:id/subjects','getSubjects','/:id/descriptions','getDescriptions','post','create'];(function(_0x44877c,_0x23b3e5){var _0x38cc85=function(_0x536bca){while(--_0x536bca){_0x44877c['push'](_0x44877c['shift']());}};_0x38cc85(++_0x23b3e5);}(_0x8369,0xe4));var _0x9836=function(_0x3c0724,_0x2b7f9c){_0x3c0724=_0x3c0724-0x0;var _0xc0a38f=_0x8369[_0x3c0724];return _0xc0a38f;};'use strict';var multer=require(_0x9836('0x0'));var util=require(_0x9836('0x1'));var path=require(_0x9836('0x2'));var timeout=require(_0x9836('0x3'));var express=require(_0x9836('0x4'));var router=express[_0x9836('0x5')]();var fs_extra=require(_0x9836('0x6'));var auth=require(_0x9836('0x7'));var interaction=require(_0x9836('0x8'));var config=require(_0x9836('0x9'));var controller=require(_0x9836('0xa'));router[_0x9836('0xb')]('/',auth[_0x9836('0xc')](),controller[_0x9836('0xd')]);router['get'](_0x9836('0xe'),auth['isAuthenticated'](),controller[_0x9836('0xf')]);router[_0x9836('0xb')](_0x9836('0x10'),auth[_0x9836('0xc')](),controller[_0x9836('0x11')]);router[_0x9836('0xb')](_0x9836('0x12'),auth[_0x9836('0xc')](),controller[_0x9836('0x13')]);router[_0x9836('0xb')](_0x9836('0x14'),auth[_0x9836('0xc')](),controller[_0x9836('0x15')]);router[_0x9836('0x16')]('/',auth[_0x9836('0xc')](),controller[_0x9836('0x17')]);router[_0x9836('0x18')](_0x9836('0xe'),auth[_0x9836('0xc')](),controller[_0x9836('0x19')]);router['delete'](_0x9836('0xe'),auth['isAuthenticated'](),controller[_0x9836('0x1a')]);module[_0x9836('0x1b')]=router;
\ No newline at end of file
+var _0x4a36=['/:id','show','/:id/fields','/:id/subjects','getSubjects','/:id/descriptions','getDescriptions','post','create','put','update','delete','destroy','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','isAuthenticated','get'];(function(_0x2ef61c,_0x385952){var _0xe78068=function(_0x294b35){while(--_0x294b35){_0x2ef61c['push'](_0x2ef61c['shift']());}};_0xe78068(++_0x385952);}(_0x4a36,0x1e9));var _0x64a3=function(_0x1afce8,_0x118f37){_0x1afce8=_0x1afce8-0x0;var _0x4cc4bd=_0x4a36[_0x1afce8];return _0x4cc4bd;};'use strict';var multer=require(_0x64a3('0x0'));var util=require(_0x64a3('0x1'));var path=require(_0x64a3('0x2'));var timeout=require(_0x64a3('0x3'));var express=require(_0x64a3('0x4'));var router=express[_0x64a3('0x5')]();var fs_extra=require(_0x64a3('0x6'));var auth=require('../../components/auth/service');var interaction=require(_0x64a3('0x7'));var config=require(_0x64a3('0x8'));var controller=require('./intVtigerConfiguration.controller');router['get']('/',auth[_0x64a3('0x9')](),controller['index']);router[_0x64a3('0xa')](_0x64a3('0xb'),auth['isAuthenticated'](),controller[_0x64a3('0xc')]);router['get'](_0x64a3('0xd'),auth[_0x64a3('0x9')](),controller['getFields']);router['get'](_0x64a3('0xe'),auth[_0x64a3('0x9')](),controller[_0x64a3('0xf')]);router[_0x64a3('0xa')](_0x64a3('0x10'),auth['isAuthenticated'](),controller[_0x64a3('0x11')]);router[_0x64a3('0x12')]('/',auth[_0x64a3('0x9')](),controller[_0x64a3('0x13')]);router[_0x64a3('0x14')](_0x64a3('0xb'),auth['isAuthenticated'](),controller[_0x64a3('0x15')]);router[_0x64a3('0x16')](_0x64a3('0xb'),auth['isAuthenticated'](),controller[_0x64a3('0x17')]);module[_0x64a3('0x18')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7b43=['STRING','sequelize'];(function(_0x4fa5bf,_0x182171){var _0x3921da=function(_0x373a99){while(--_0x373a99){_0x4fa5bf['push'](_0x4fa5bf['shift']());}};_0x3921da(++_0x182171);}(_0x7b43,0x183));var _0x37b4=function(_0xb2d997,_0x5657b2){_0xb2d997=_0xb2d997-0x0;var _0x1ca854=_0x7b43[_0xb2d997];return _0x1ca854;};'use strict';var Sequelize=require(_0x37b4('0x0'));module['exports']={'name':{'type':Sequelize[_0x37b4('0x1')]},'description':{'type':Sequelize[_0x37b4('0x1')]}};
\ No newline at end of file
+var _0x2b03=['sequelize','exports','STRING'];(function(_0x122ef9,_0x451d2a){var _0x42fba0=function(_0x17c9d3){while(--_0x17c9d3){_0x122ef9['push'](_0x122ef9['shift']());}};_0x42fba0(++_0x451d2a);}(_0x2b03,0x1d1));var _0x32b0=function(_0xbc65c,_0x502016){_0xbc65c=_0xbc65c-0x0;var _0x24f297=_0x2b03[_0xbc65c];return _0x24f297;};'use strict';var Sequelize=require(_0x32b0('0x0'));module[_0x32b0('0x1')]={'name':{'type':Sequelize[_0x32b0('0x2')]},'description':{'type':Sequelize[_0x32b0('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x93e9=['stack','name','send','index','map','VtigerConfiguration','type','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','VIRTUAL','filter','options','include','findAll','catch','show','includeAll','create','body','find','params','getFields','findOne','VtigerField','getSubjects','getDescriptions','rawAttributes','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','sox','to-csv','ejs','fs-extra','lodash','squel','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','apply','reject','save','update','then','destroy','error'];(function(_0xca2ba8,_0xc89bd2){var _0x3d04fa=function(_0x4c2987){while(--_0x4c2987){_0xca2ba8['push'](_0xca2ba8['shift']());}};_0x3d04fa(++_0xc89bd2);}(_0x93e9,0x7b));var _0x993e=function(_0x4c0319,_0x51c814){_0x4c0319=_0x4c0319-0x0;var _0x24c27c=_0x93e9[_0x4c0319];return _0x24c27c;};'use strict';var emlformat=require(_0x993e('0x0'));var rimraf=require(_0x993e('0x1'));var zipdir=require(_0x993e('0x2'));var jsonpatch=require(_0x993e('0x3'));var rp=require(_0x993e('0x4'));var moment=require(_0x993e('0x5'));var BPromise=require(_0x993e('0x6'));var Mustache=require(_0x993e('0x7'));var util=require('util');var path=require('path');var sox=require(_0x993e('0x8'));var csv=require(_0x993e('0x9'));var ejs=require(_0x993e('0xa'));var fs=require('fs');var fs_extra=require(_0x993e('0xb'));var _=require(_0x993e('0xc'));var squel=require(_0x993e('0xd'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x993e('0xe'));var toCsv=require(_0x993e('0x9'));var querystring=require(_0x993e('0xf'));var Papa=require(_0x993e('0x10'));var Redis=require(_0x993e('0x11'));var authService=require(_0x993e('0x12'));var qs=require(_0x993e('0x13'));var as=require(_0x993e('0x14'));var hardwareService=require(_0x993e('0x15'));var logger=require(_0x993e('0x16'))('api');var utils=require(_0x993e('0x17'));var config=require(_0x993e('0x18'));var licenseUtil=require(_0x993e('0x19'));var db=require(_0x993e('0x1a'))['db'];function respondWithStatusCode(_0xc1c719,_0xcbecd5){_0xcbecd5=_0xcbecd5||0xcc;return function(_0x9750dc){if(_0x9750dc){return _0xc1c719[_0x993e('0x1b')](_0xcbecd5);}return _0xc1c719[_0x993e('0x1c')](_0xcbecd5)[_0x993e('0x1d')]();};}function respondWithResult(_0x5d5b30,_0x51f14a){_0x51f14a=_0x51f14a||0xc8;return function(_0x4bdfd3){if(_0x4bdfd3){return _0x5d5b30[_0x993e('0x1c')](_0x51f14a)[_0x993e('0x1e')](_0x4bdfd3);}};}function respondWithFilteredResult(_0x5846d8,_0x1947fb){return function(_0x4a0215){if(_0x4a0215){var _0x4a02b7=typeof _0x1947fb[_0x993e('0x1f')]===_0x993e('0x20')&&typeof _0x1947fb[_0x993e('0x21')]===_0x993e('0x20');var _0x5844b3=_0x4a0215[_0x993e('0x22')];var _0x1bde7c=_0x4a02b7?0x0:_0x1947fb[_0x993e('0x1f')];var _0x39889b=_0x4a02b7?_0x4a0215['count']:_0x1947fb['offset']+_0x1947fb[_0x993e('0x21')];var _0x3c3fe3;if(_0x39889b>=_0x5844b3){_0x39889b=_0x5844b3;_0x3c3fe3=0xc8;}else{_0x3c3fe3=0xce;}_0x5846d8[_0x993e('0x1c')](_0x3c3fe3);return _0x5846d8[_0x993e('0x23')]('Content-Range',_0x1bde7c+'-'+_0x39889b+'/'+_0x5844b3)[_0x993e('0x1e')](_0x4a0215);}return null;};}function patchUpdates(_0x30c070){return function(_0x199b0a){try{jsonpatch[_0x993e('0x24')](_0x199b0a,_0x30c070,!![]);}catch(_0x906fbb){return BPromise[_0x993e('0x25')](_0x906fbb);}return _0x199b0a[_0x993e('0x26')]();};}function saveUpdates(_0x4a9292,_0x29b88d){return function(_0x495490){if(_0x495490){return _0x495490[_0x993e('0x27')](_0x4a9292)[_0x993e('0x28')](function(_0x19237d){return _0x19237d;});}return null;};}function removeEntity(_0x3135fa,_0x59a421){return function(_0x12d31a){if(_0x12d31a){return _0x12d31a[_0x993e('0x29')]()['then'](function(){_0x3135fa[_0x993e('0x1c')](0xcc)[_0x993e('0x1d')]();});}};}function handleEntityNotFound(_0x462dd7,_0x792c06){return function(_0x477cfb){if(!_0x477cfb){_0x462dd7['sendStatus'](0x194);}return _0x477cfb;};}function handleError(_0x446aaa,_0x511855){_0x511855=_0x511855||0x1f4;return function(_0x1a1994){logger[_0x993e('0x2a')](_0x1a1994[_0x993e('0x2b')]);if(_0x1a1994['name']){delete _0x1a1994[_0x993e('0x2c')];}_0x446aaa[_0x993e('0x1c')](_0x511855)[_0x993e('0x2d')](_0x1a1994);};}exports[_0x993e('0x2e')]=function(_0x3dd4c9,_0x292546){var _0x81243c={},_0xd9cc58={},_0x1c6897={'count':0x0,'rows':[]};var _0x4a83a9=_[_0x993e('0x2f')](db[_0x993e('0x30')]['rawAttributes'],function(_0x4782b5){return{'name':_0x4782b5['fieldName'],'type':_0x4782b5[_0x993e('0x31')]['key']};});_0xd9cc58['model']=_[_0x993e('0x2f')](_0x4a83a9,_0x993e('0x2c'));_0xd9cc58[_0x993e('0x32')]=_[_0x993e('0x33')](_0x3dd4c9[_0x993e('0x32')]);_0xd9cc58[_0x993e('0x34')]=_[_0x993e('0x35')](_0xd9cc58[_0x993e('0x36')],_0xd9cc58[_0x993e('0x32')]);_0x81243c[_0x993e('0x37')]=_[_0x993e('0x35')](_0xd9cc58[_0x993e('0x36')],qs['fields'](_0x3dd4c9[_0x993e('0x32')][_0x993e('0x38')]));_0x81243c[_0x993e('0x37')]=_0x81243c[_0x993e('0x37')][_0x993e('0x39')]?_0x81243c['attributes']:_0xd9cc58[_0x993e('0x36')];if(!_0x3dd4c9[_0x993e('0x32')][_0x993e('0x3a')](_0x993e('0x3b'))){_0x81243c[_0x993e('0x21')]=qs[_0x993e('0x21')](_0x3dd4c9[_0x993e('0x32')]['limit']);_0x81243c['offset']=qs[_0x993e('0x1f')](_0x3dd4c9['query'][_0x993e('0x1f')]);}_0x81243c[_0x993e('0x3c')]=qs['sort'](_0x3dd4c9[_0x993e('0x32')][_0x993e('0x3d')]);_0x81243c[_0x993e('0x3e')]=qs['filters'](_[_0x993e('0x3f')](_0x3dd4c9[_0x993e('0x32')],_0xd9cc58[_0x993e('0x34')]),_0x4a83a9);if(_0x3dd4c9[_0x993e('0x32')]['filter']){_0x81243c[_0x993e('0x3e')]=_[_0x993e('0x40')](_0x81243c['where'],{'$or':_['map'](_0x4a83a9,function(_0x72a5){if(_0x72a5[_0x993e('0x31')]!==_0x993e('0x41')){var _0x24f9ac={};_0x24f9ac[_0x72a5[_0x993e('0x2c')]]={'$like':'%'+_0x3dd4c9[_0x993e('0x32')][_0x993e('0x42')]+'%'};return _0x24f9ac;}})});}_0x81243c=_[_0x993e('0x40')]({},_0x81243c,_0x3dd4c9[_0x993e('0x43')]);var _0x390f10={'where':_0x81243c[_0x993e('0x3e')]};return db['VtigerConfiguration'][_0x993e('0x22')](_0x390f10)[_0x993e('0x28')](function(_0x2801b1){_0x1c6897[_0x993e('0x22')]=_0x2801b1;if(_0x3dd4c9[_0x993e('0x32')]['includeAll']){_0x81243c[_0x993e('0x44')]=[{'all':!![]}];}return db[_0x993e('0x30')][_0x993e('0x45')](_0x81243c);})['then'](function(_0x473ffd){_0x1c6897['rows']=_0x473ffd;return _0x1c6897;})[_0x993e('0x28')](respondWithFilteredResult(_0x292546,_0x81243c))[_0x993e('0x46')](handleError(_0x292546,null));};exports[_0x993e('0x47')]=function(_0x162d6f,_0x101ca4){var _0x1a7a75={'raw':![],'where':{'id':_0x162d6f['params']['id']}},_0x25095b={};_0x25095b['model']=_[_0x993e('0x33')](db[_0x993e('0x30')]['rawAttributes']);_0x25095b[_0x993e('0x32')]=_[_0x993e('0x33')](_0x162d6f[_0x993e('0x32')]);_0x25095b[_0x993e('0x34')]=_[_0x993e('0x35')](_0x25095b['model'],_0x25095b[_0x993e('0x32')]);_0x1a7a75[_0x993e('0x37')]=_[_0x993e('0x35')](_0x25095b[_0x993e('0x36')],qs[_0x993e('0x38')](_0x162d6f[_0x993e('0x32')]['fields']));_0x1a7a75['attributes']=_0x1a7a75[_0x993e('0x37')][_0x993e('0x39')]?_0x1a7a75['attributes']:_0x25095b[_0x993e('0x36')];if(_0x162d6f[_0x993e('0x32')][_0x993e('0x48')]){_0x1a7a75[_0x993e('0x44')]=[{'all':!![]}];}_0x1a7a75=_[_0x993e('0x40')]({},_0x1a7a75,_0x162d6f[_0x993e('0x43')]);return db[_0x993e('0x30')]['find'](_0x1a7a75)['then'](handleEntityNotFound(_0x101ca4,null))[_0x993e('0x28')](respondWithResult(_0x101ca4,null))[_0x993e('0x46')](handleError(_0x101ca4,null));};exports[_0x993e('0x49')]=function(_0x332108,_0xaac635){return db[_0x993e('0x30')][_0x993e('0x49')](_0x332108[_0x993e('0x4a')],{})['then'](respondWithResult(_0xaac635,0xc9))[_0x993e('0x46')](handleError(_0xaac635,null));};exports[_0x993e('0x27')]=function(_0x1b37bc,_0xc5086e){if(_0x1b37bc[_0x993e('0x4a')]['id']){delete _0x1b37bc['body']['id'];}return db[_0x993e('0x30')][_0x993e('0x4b')]({'where':{'id':_0x1b37bc[_0x993e('0x4c')]['id']}})[_0x993e('0x28')](handleEntityNotFound(_0xc5086e,null))['then'](saveUpdates(_0x1b37bc[_0x993e('0x4a')],null))['then'](respondWithResult(_0xc5086e,null))[_0x993e('0x46')](handleError(_0xc5086e,null));};exports['destroy']=function(_0x2f2c01,_0x436c00){return db[_0x993e('0x30')][_0x993e('0x4b')]({'where':{'id':_0x2f2c01['params']['id']}})[_0x993e('0x28')](handleEntityNotFound(_0x436c00,null))['then'](removeEntity(_0x436c00,null))[_0x993e('0x46')](handleError(_0x436c00,null));};exports[_0x993e('0x4d')]=function(_0x46d40a,_0x29191a,_0x50ecea){var _0x55f75c={};var _0xaee62a={};var _0x47acd9;var _0x449791;return db[_0x993e('0x30')][_0x993e('0x4e')]({'where':{'id':_0x46d40a[_0x993e('0x4c')]['id']}})[_0x993e('0x28')](handleEntityNotFound(_0x29191a,null))[_0x993e('0x28')](function(_0x248f0f){if(_0x248f0f){_0x47acd9=_0x248f0f;_0xaee62a[_0x993e('0x36')]=_[_0x993e('0x33')](db[_0x993e('0x4f')]['rawAttributes']);_0xaee62a[_0x993e('0x32')]=_[_0x993e('0x33')](_0x46d40a[_0x993e('0x32')]);_0xaee62a[_0x993e('0x34')]=_[_0x993e('0x35')](_0xaee62a[_0x993e('0x36')],_0xaee62a[_0x993e('0x32')]);_0x55f75c[_0x993e('0x37')]=_[_0x993e('0x35')](_0xaee62a[_0x993e('0x36')],qs[_0x993e('0x38')](_0x46d40a[_0x993e('0x32')][_0x993e('0x38')]));_0x55f75c['attributes']=_0x55f75c[_0x993e('0x37')][_0x993e('0x39')]?_0x55f75c[_0x993e('0x37')]:_0xaee62a[_0x993e('0x36')];_0x55f75c[_0x993e('0x3c')]=qs[_0x993e('0x3d')](_0x46d40a[_0x993e('0x32')]['sort']);_0x55f75c[_0x993e('0x3e')]=qs[_0x993e('0x34')](_['pick'](_0x46d40a['query'],_0xaee62a[_0x993e('0x34')]));if(_0x46d40a[_0x993e('0x32')][_0x993e('0x42')]){_0x55f75c['where']=_['merge'](_0x55f75c[_0x993e('0x3e')],{'$or':_[_0x993e('0x2f')](_0x55f75c[_0x993e('0x37')],function(_0x34ab2d){var _0x3f56dd={};_0x3f56dd[_0x34ab2d]={'$like':'%'+_0x46d40a['query'][_0x993e('0x42')]+'%'};return _0x3f56dd;})});}_0x55f75c=_[_0x993e('0x40')]({},_0x55f75c,_0x46d40a[_0x993e('0x43')]);return _0x47acd9[_0x993e('0x4d')](_0x55f75c);}})['then'](function(_0x563ead){if(_0x563ead){_0x449791=_0x563ead['length'];if(!_0x46d40a[_0x993e('0x32')][_0x993e('0x3a')]('nolimit')){_0x55f75c[_0x993e('0x21')]=qs['limit'](_0x46d40a[_0x993e('0x32')][_0x993e('0x21')]);_0x55f75c['offset']=qs['offset'](_0x46d40a['query'][_0x993e('0x1f')]);}return _0x47acd9[_0x993e('0x4d')](_0x55f75c);}})['then'](function(_0x1144dd){if(_0x1144dd){return _0x1144dd?{'count':_0x449791,'rows':_0x1144dd}:null;}})[_0x993e('0x28')](respondWithResult(_0x29191a,null))[_0x993e('0x46')](handleError(_0x29191a,null));};exports[_0x993e('0x50')]=function(_0x58eda2,_0x5646cd,_0x575c22){var _0x34ffaf={};var _0xf582f6={};var _0x42dc0e;var _0x5a38ff;return db['VtigerConfiguration']['findOne']({'where':{'id':_0x58eda2['params']['id']}})[_0x993e('0x28')](handleEntityNotFound(_0x5646cd,null))[_0x993e('0x28')](function(_0x98b219){if(_0x98b219){_0x42dc0e=_0x98b219;_0xf582f6[_0x993e('0x36')]=_[_0x993e('0x33')](db[_0x993e('0x4f')]['rawAttributes']);_0xf582f6[_0x993e('0x32')]=_[_0x993e('0x33')](_0x58eda2[_0x993e('0x32')]);_0xf582f6['filters']=_['intersection'](_0xf582f6[_0x993e('0x36')],_0xf582f6['query']);_0x34ffaf[_0x993e('0x37')]=_['intersection'](_0xf582f6[_0x993e('0x36')],qs[_0x993e('0x38')](_0x58eda2['query'][_0x993e('0x38')]));_0x34ffaf['attributes']=_0x34ffaf[_0x993e('0x37')][_0x993e('0x39')]?_0x34ffaf[_0x993e('0x37')]:_0xf582f6[_0x993e('0x36')];_0x34ffaf[_0x993e('0x3c')]=qs[_0x993e('0x3d')](_0x58eda2[_0x993e('0x32')][_0x993e('0x3d')]);_0x34ffaf[_0x993e('0x3e')]=qs[_0x993e('0x34')](_[_0x993e('0x3f')](_0x58eda2['query'],_0xf582f6['filters']));if(_0x58eda2[_0x993e('0x32')]['filter']){_0x34ffaf['where']=_[_0x993e('0x40')](_0x34ffaf[_0x993e('0x3e')],{'$or':_[_0x993e('0x2f')](_0x34ffaf['attributes'],function(_0x175277){var _0x4ff6fe={};_0x4ff6fe[_0x175277]={'$like':'%'+_0x58eda2[_0x993e('0x32')][_0x993e('0x42')]+'%'};return _0x4ff6fe;})});}_0x34ffaf=_[_0x993e('0x40')]({},_0x34ffaf,_0x58eda2[_0x993e('0x43')]);return _0x42dc0e['getSubjects'](_0x34ffaf);}})[_0x993e('0x28')](function(_0x39c137){if(_0x39c137){_0x5a38ff=_0x39c137[_0x993e('0x39')];if(!_0x58eda2[_0x993e('0x32')][_0x993e('0x3a')](_0x993e('0x3b'))){_0x34ffaf[_0x993e('0x21')]=qs[_0x993e('0x21')](_0x58eda2[_0x993e('0x32')][_0x993e('0x21')]);_0x34ffaf[_0x993e('0x1f')]=qs['offset'](_0x58eda2[_0x993e('0x32')]['offset']);}return _0x42dc0e['getSubjects'](_0x34ffaf);}})['then'](function(_0x1e3b87){if(_0x1e3b87){return _0x1e3b87?{'count':_0x5a38ff,'rows':_0x1e3b87}:null;}})[_0x993e('0x28')](respondWithResult(_0x5646cd,null))['catch'](handleError(_0x5646cd,null));};exports[_0x993e('0x51')]=function(_0x31928f,_0x37be30,_0x459403){var _0x35696f={};var _0x279263={};var _0x3c98c0;var _0x1f53e9;return db[_0x993e('0x30')]['findOne']({'where':{'id':_0x31928f['params']['id']}})[_0x993e('0x28')](handleEntityNotFound(_0x37be30,null))[_0x993e('0x28')](function(_0x262e7a){if(_0x262e7a){_0x3c98c0=_0x262e7a;_0x279263['model']=_[_0x993e('0x33')](db[_0x993e('0x4f')][_0x993e('0x52')]);_0x279263[_0x993e('0x32')]=_['keys'](_0x31928f[_0x993e('0x32')]);_0x279263[_0x993e('0x34')]=_[_0x993e('0x35')](_0x279263[_0x993e('0x36')],_0x279263[_0x993e('0x32')]);_0x35696f[_0x993e('0x37')]=_[_0x993e('0x35')](_0x279263['model'],qs[_0x993e('0x38')](_0x31928f['query'][_0x993e('0x38')]));_0x35696f[_0x993e('0x37')]=_0x35696f[_0x993e('0x37')][_0x993e('0x39')]?_0x35696f[_0x993e('0x37')]:_0x279263[_0x993e('0x36')];_0x35696f[_0x993e('0x3c')]=qs[_0x993e('0x3d')](_0x31928f[_0x993e('0x32')][_0x993e('0x3d')]);_0x35696f[_0x993e('0x3e')]=qs[_0x993e('0x34')](_[_0x993e('0x3f')](_0x31928f[_0x993e('0x32')],_0x279263[_0x993e('0x34')]));if(_0x31928f[_0x993e('0x32')][_0x993e('0x42')]){_0x35696f[_0x993e('0x3e')]=_[_0x993e('0x40')](_0x35696f['where'],{'$or':_[_0x993e('0x2f')](_0x35696f[_0x993e('0x37')],function(_0x45cfad){var _0x2830d7={};_0x2830d7[_0x45cfad]={'$like':'%'+_0x31928f[_0x993e('0x32')][_0x993e('0x42')]+'%'};return _0x2830d7;})});}_0x35696f=_['merge']({},_0x35696f,_0x31928f['options']);return _0x3c98c0['getDescriptions'](_0x35696f);}})[_0x993e('0x28')](function(_0x4ab808){if(_0x4ab808){_0x1f53e9=_0x4ab808[_0x993e('0x39')];if(!_0x31928f[_0x993e('0x32')]['hasOwnProperty'](_0x993e('0x3b'))){_0x35696f['limit']=qs[_0x993e('0x21')](_0x31928f[_0x993e('0x32')]['limit']);_0x35696f[_0x993e('0x1f')]=qs['offset'](_0x31928f[_0x993e('0x32')][_0x993e('0x1f')]);}return _0x3c98c0[_0x993e('0x51')](_0x35696f);}})[_0x993e('0x28')](function(_0x2f01b2){if(_0x2f01b2){return _0x2f01b2?{'count':_0x1f53e9,'rows':_0x2f01b2}:null;}})[_0x993e('0x28')](respondWithResult(_0x37be30,null))[_0x993e('0x46')](handleError(_0x37be30,null));};
\ No newline at end of file
+var _0x95c0=['query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','type','VIRTUAL','merge','VtigerConfiguration','include','findAll','rows','catch','show','includeAll','options','find','create','body','params','destroy','getFields','findOne','getSubjects','VtigerField','getDescriptions','eml-format','zip-dir','fast-json-patch','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','status','json','undefined','limit','count','offset','Content-Range','apply','reject','save','update','then','sendStatus','stack','name','send','rawAttributes','fieldName','model','map'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x95c0,0x74));var _0x095c=function(_0x4887b7,_0x4367f5){_0x4887b7=_0x4887b7-0x0;var _0x541e58=_0x95c0[_0x4887b7];return _0x541e58;};'use strict';var emlformat=require(_0x095c('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x095c('0x1'));var jsonpatch=require(_0x095c('0x2'));var rp=require('request-promise');var moment=require(_0x095c('0x3'));var BPromise=require(_0x095c('0x4'));var Mustache=require(_0x095c('0x5'));var util=require(_0x095c('0x6'));var path=require('path');var sox=require(_0x095c('0x7'));var csv=require(_0x095c('0x8'));var ejs=require(_0x095c('0x9'));var fs=require('fs');var fs_extra=require(_0x095c('0xa'));var _=require(_0x095c('0xb'));var squel=require(_0x095c('0xc'));var crypto=require('crypto');var jsforce=require(_0x095c('0xd'));var deskjs=require(_0x095c('0xe'));var toCsv=require(_0x095c('0x8'));var querystring=require(_0x095c('0xf'));var Papa=require('papaparse');var Redis=require(_0x095c('0x10'));var authService=require(_0x095c('0x11'));var qs=require(_0x095c('0x12'));var as=require(_0x095c('0x13'));var hardwareService=require(_0x095c('0x14'));var logger=require(_0x095c('0x15'))(_0x095c('0x16'));var utils=require(_0x095c('0x17'));var config=require(_0x095c('0x18'));var licenseUtil=require(_0x095c('0x19'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x2f8a67,_0x693c7f){_0x693c7f=_0x693c7f||0xcc;return function(_0x195452){if(_0x195452){return _0x2f8a67['sendStatus'](_0x693c7f);}return _0x2f8a67[_0x095c('0x1a')](_0x693c7f)['end']();};}function respondWithResult(_0x523149,_0x5d9c77){_0x5d9c77=_0x5d9c77||0xc8;return function(_0x477b30){if(_0x477b30){return _0x523149[_0x095c('0x1a')](_0x5d9c77)[_0x095c('0x1b')](_0x477b30);}};}function respondWithFilteredResult(_0x261cc6,_0x407c3c){return function(_0x1cee95){if(_0x1cee95){var _0x173479=typeof _0x407c3c['offset']===_0x095c('0x1c')&&typeof _0x407c3c[_0x095c('0x1d')]===_0x095c('0x1c');var _0x14e8a9=_0x1cee95[_0x095c('0x1e')];var _0x439ca5=_0x173479?0x0:_0x407c3c[_0x095c('0x1f')];var _0x4d1b02=_0x173479?_0x1cee95[_0x095c('0x1e')]:_0x407c3c[_0x095c('0x1f')]+_0x407c3c['limit'];var _0xf0da18;if(_0x4d1b02>=_0x14e8a9){_0x4d1b02=_0x14e8a9;_0xf0da18=0xc8;}else{_0xf0da18=0xce;}_0x261cc6[_0x095c('0x1a')](_0xf0da18);return _0x261cc6['set'](_0x095c('0x20'),_0x439ca5+'-'+_0x4d1b02+'/'+_0x14e8a9)[_0x095c('0x1b')](_0x1cee95);}return null;};}function patchUpdates(_0x25766){return function(_0x14043f){try{jsonpatch[_0x095c('0x21')](_0x14043f,_0x25766,!![]);}catch(_0x4ddd57){return BPromise[_0x095c('0x22')](_0x4ddd57);}return _0x14043f[_0x095c('0x23')]();};}function saveUpdates(_0x2feece,_0xcb35a7){return function(_0x59588a){if(_0x59588a){return _0x59588a[_0x095c('0x24')](_0x2feece)[_0x095c('0x25')](function(_0x468b0e){return _0x468b0e;});}return null;};}function removeEntity(_0x2c34ad,_0x396115){return function(_0x50c340){if(_0x50c340){return _0x50c340['destroy']()[_0x095c('0x25')](function(){_0x2c34ad['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x2f88cd,_0x27123a){return function(_0x2d1a4d){if(!_0x2d1a4d){_0x2f88cd[_0x095c('0x26')](0x194);}return _0x2d1a4d;};}function handleError(_0x1d84ef,_0x1189d7){_0x1189d7=_0x1189d7||0x1f4;return function(_0x21283c){logger['error'](_0x21283c[_0x095c('0x27')]);if(_0x21283c[_0x095c('0x28')]){delete _0x21283c[_0x095c('0x28')];}_0x1d84ef[_0x095c('0x1a')](_0x1189d7)[_0x095c('0x29')](_0x21283c);};}exports['index']=function(_0x393daa,_0x563af1){var _0x45bff1={},_0x3e613e={},_0xe92955={'count':0x0,'rows':[]};var _0x528b87=_['map'](db['VtigerConfiguration'][_0x095c('0x2a')],function(_0x337124){return{'name':_0x337124[_0x095c('0x2b')],'type':_0x337124['type']['key']};});_0x3e613e[_0x095c('0x2c')]=_[_0x095c('0x2d')](_0x528b87,'name');_0x3e613e[_0x095c('0x2e')]=_[_0x095c('0x2f')](_0x393daa[_0x095c('0x2e')]);_0x3e613e[_0x095c('0x30')]=_[_0x095c('0x31')](_0x3e613e[_0x095c('0x2c')],_0x3e613e[_0x095c('0x2e')]);_0x45bff1['attributes']=_[_0x095c('0x31')](_0x3e613e[_0x095c('0x2c')],qs[_0x095c('0x32')](_0x393daa[_0x095c('0x2e')][_0x095c('0x32')]));_0x45bff1[_0x095c('0x33')]=_0x45bff1[_0x095c('0x33')][_0x095c('0x34')]?_0x45bff1[_0x095c('0x33')]:_0x3e613e['model'];if(!_0x393daa[_0x095c('0x2e')][_0x095c('0x35')](_0x095c('0x36'))){_0x45bff1[_0x095c('0x1d')]=qs[_0x095c('0x1d')](_0x393daa[_0x095c('0x2e')][_0x095c('0x1d')]);_0x45bff1[_0x095c('0x1f')]=qs[_0x095c('0x1f')](_0x393daa['query'][_0x095c('0x1f')]);}_0x45bff1[_0x095c('0x37')]=qs[_0x095c('0x38')](_0x393daa[_0x095c('0x2e')][_0x095c('0x38')]);_0x45bff1[_0x095c('0x39')]=qs[_0x095c('0x30')](_[_0x095c('0x3a')](_0x393daa[_0x095c('0x2e')],_0x3e613e[_0x095c('0x30')]),_0x528b87);if(_0x393daa[_0x095c('0x2e')][_0x095c('0x3b')]){_0x45bff1['where']=_['merge'](_0x45bff1['where'],{'$or':_[_0x095c('0x2d')](_0x528b87,function(_0x1b89ed){if(_0x1b89ed[_0x095c('0x3c')]!==_0x095c('0x3d')){var _0x128a50={};_0x128a50[_0x1b89ed[_0x095c('0x28')]]={'$like':'%'+_0x393daa[_0x095c('0x2e')]['filter']+'%'};return _0x128a50;}})});}_0x45bff1=_[_0x095c('0x3e')]({},_0x45bff1,_0x393daa['options']);var _0x573ac6={'where':_0x45bff1[_0x095c('0x39')]};return db[_0x095c('0x3f')][_0x095c('0x1e')](_0x573ac6)[_0x095c('0x25')](function(_0x1da462){_0xe92955['count']=_0x1da462;if(_0x393daa[_0x095c('0x2e')]['includeAll']){_0x45bff1[_0x095c('0x40')]=[{'all':!![]}];}return db[_0x095c('0x3f')][_0x095c('0x41')](_0x45bff1);})[_0x095c('0x25')](function(_0x1aa34a){_0xe92955[_0x095c('0x42')]=_0x1aa34a;return _0xe92955;})[_0x095c('0x25')](respondWithFilteredResult(_0x563af1,_0x45bff1))[_0x095c('0x43')](handleError(_0x563af1,null));};exports[_0x095c('0x44')]=function(_0x1b6035,_0x2efc9c){var _0x522e39={'raw':![],'where':{'id':_0x1b6035['params']['id']}},_0x408206={};_0x408206[_0x095c('0x2c')]=_[_0x095c('0x2f')](db[_0x095c('0x3f')][_0x095c('0x2a')]);_0x408206[_0x095c('0x2e')]=_[_0x095c('0x2f')](_0x1b6035['query']);_0x408206[_0x095c('0x30')]=_[_0x095c('0x31')](_0x408206[_0x095c('0x2c')],_0x408206[_0x095c('0x2e')]);_0x522e39[_0x095c('0x33')]=_[_0x095c('0x31')](_0x408206['model'],qs[_0x095c('0x32')](_0x1b6035[_0x095c('0x2e')][_0x095c('0x32')]));_0x522e39[_0x095c('0x33')]=_0x522e39[_0x095c('0x33')][_0x095c('0x34')]?_0x522e39[_0x095c('0x33')]:_0x408206['model'];if(_0x1b6035[_0x095c('0x2e')][_0x095c('0x45')]){_0x522e39[_0x095c('0x40')]=[{'all':!![]}];}_0x522e39=_[_0x095c('0x3e')]({},_0x522e39,_0x1b6035[_0x095c('0x46')]);return db['VtigerConfiguration'][_0x095c('0x47')](_0x522e39)['then'](handleEntityNotFound(_0x2efc9c,null))[_0x095c('0x25')](respondWithResult(_0x2efc9c,null))[_0x095c('0x43')](handleError(_0x2efc9c,null));};exports[_0x095c('0x48')]=function(_0x461eca,_0x5f23f8){return db['VtigerConfiguration'][_0x095c('0x48')](_0x461eca[_0x095c('0x49')],{})[_0x095c('0x25')](respondWithResult(_0x5f23f8,0xc9))['catch'](handleError(_0x5f23f8,null));};exports[_0x095c('0x24')]=function(_0x13094e,_0x335c2b){if(_0x13094e[_0x095c('0x49')]['id']){delete _0x13094e[_0x095c('0x49')]['id'];}return db[_0x095c('0x3f')]['find']({'where':{'id':_0x13094e[_0x095c('0x4a')]['id']}})[_0x095c('0x25')](handleEntityNotFound(_0x335c2b,null))[_0x095c('0x25')](saveUpdates(_0x13094e[_0x095c('0x49')],null))[_0x095c('0x25')](respondWithResult(_0x335c2b,null))[_0x095c('0x43')](handleError(_0x335c2b,null));};exports[_0x095c('0x4b')]=function(_0x158ffd,_0x359cca){return db['VtigerConfiguration'][_0x095c('0x47')]({'where':{'id':_0x158ffd['params']['id']}})[_0x095c('0x25')](handleEntityNotFound(_0x359cca,null))[_0x095c('0x25')](removeEntity(_0x359cca,null))[_0x095c('0x43')](handleError(_0x359cca,null));};exports[_0x095c('0x4c')]=function(_0x5dacdc,_0xbedbb9,_0x4f21ec){var _0x484020={};var _0x51d750={};var _0x33caf1;var _0x13f6c3;return db['VtigerConfiguration'][_0x095c('0x4d')]({'where':{'id':_0x5dacdc[_0x095c('0x4a')]['id']}})[_0x095c('0x25')](handleEntityNotFound(_0xbedbb9,null))[_0x095c('0x25')](function(_0x3bee7b){if(_0x3bee7b){_0x33caf1=_0x3bee7b;_0x51d750[_0x095c('0x2c')]=_[_0x095c('0x2f')](db['VtigerField'][_0x095c('0x2a')]);_0x51d750[_0x095c('0x2e')]=_[_0x095c('0x2f')](_0x5dacdc[_0x095c('0x2e')]);_0x51d750['filters']=_[_0x095c('0x31')](_0x51d750[_0x095c('0x2c')],_0x51d750[_0x095c('0x2e')]);_0x484020['attributes']=_[_0x095c('0x31')](_0x51d750[_0x095c('0x2c')],qs['fields'](_0x5dacdc['query'][_0x095c('0x32')]));_0x484020[_0x095c('0x33')]=_0x484020['attributes'][_0x095c('0x34')]?_0x484020[_0x095c('0x33')]:_0x51d750['model'];_0x484020[_0x095c('0x37')]=qs[_0x095c('0x38')](_0x5dacdc['query'][_0x095c('0x38')]);_0x484020[_0x095c('0x39')]=qs[_0x095c('0x30')](_['pick'](_0x5dacdc[_0x095c('0x2e')],_0x51d750[_0x095c('0x30')]));if(_0x5dacdc[_0x095c('0x2e')]['filter']){_0x484020[_0x095c('0x39')]=_[_0x095c('0x3e')](_0x484020['where'],{'$or':_[_0x095c('0x2d')](_0x484020[_0x095c('0x33')],function(_0x33a94a){var _0x2583a2={};_0x2583a2[_0x33a94a]={'$like':'%'+_0x5dacdc['query'][_0x095c('0x3b')]+'%'};return _0x2583a2;})});}_0x484020=_[_0x095c('0x3e')]({},_0x484020,_0x5dacdc['options']);return _0x33caf1[_0x095c('0x4c')](_0x484020);}})[_0x095c('0x25')](function(_0x1dfd55){if(_0x1dfd55){_0x13f6c3=_0x1dfd55['length'];if(!_0x5dacdc['query']['hasOwnProperty'](_0x095c('0x36'))){_0x484020[_0x095c('0x1d')]=qs['limit'](_0x5dacdc[_0x095c('0x2e')][_0x095c('0x1d')]);_0x484020[_0x095c('0x1f')]=qs[_0x095c('0x1f')](_0x5dacdc[_0x095c('0x2e')][_0x095c('0x1f')]);}return _0x33caf1[_0x095c('0x4c')](_0x484020);}})['then'](function(_0x1a3825){if(_0x1a3825){return _0x1a3825?{'count':_0x13f6c3,'rows':_0x1a3825}:null;}})[_0x095c('0x25')](respondWithResult(_0xbedbb9,null))[_0x095c('0x43')](handleError(_0xbedbb9,null));};exports[_0x095c('0x4e')]=function(_0x47528f,_0x2e632e,_0x4e5916){var _0x1c9ca2={};var _0x3cd051={};var _0x225f28;var _0x49e560;return db[_0x095c('0x3f')]['findOne']({'where':{'id':_0x47528f[_0x095c('0x4a')]['id']}})['then'](handleEntityNotFound(_0x2e632e,null))['then'](function(_0x5fb709){if(_0x5fb709){_0x225f28=_0x5fb709;_0x3cd051[_0x095c('0x2c')]=_[_0x095c('0x2f')](db[_0x095c('0x4f')]['rawAttributes']);_0x3cd051[_0x095c('0x2e')]=_[_0x095c('0x2f')](_0x47528f[_0x095c('0x2e')]);_0x3cd051[_0x095c('0x30')]=_[_0x095c('0x31')](_0x3cd051[_0x095c('0x2c')],_0x3cd051[_0x095c('0x2e')]);_0x1c9ca2[_0x095c('0x33')]=_[_0x095c('0x31')](_0x3cd051['model'],qs[_0x095c('0x32')](_0x47528f[_0x095c('0x2e')][_0x095c('0x32')]));_0x1c9ca2[_0x095c('0x33')]=_0x1c9ca2[_0x095c('0x33')]['length']?_0x1c9ca2[_0x095c('0x33')]:_0x3cd051[_0x095c('0x2c')];_0x1c9ca2[_0x095c('0x37')]=qs['sort'](_0x47528f[_0x095c('0x2e')][_0x095c('0x38')]);_0x1c9ca2['where']=qs[_0x095c('0x30')](_['pick'](_0x47528f[_0x095c('0x2e')],_0x3cd051['filters']));if(_0x47528f['query'][_0x095c('0x3b')]){_0x1c9ca2[_0x095c('0x39')]=_[_0x095c('0x3e')](_0x1c9ca2[_0x095c('0x39')],{'$or':_['map'](_0x1c9ca2[_0x095c('0x33')],function(_0x5925d3){var _0x37af7b={};_0x37af7b[_0x5925d3]={'$like':'%'+_0x47528f[_0x095c('0x2e')][_0x095c('0x3b')]+'%'};return _0x37af7b;})});}_0x1c9ca2=_[_0x095c('0x3e')]({},_0x1c9ca2,_0x47528f['options']);return _0x225f28['getSubjects'](_0x1c9ca2);}})[_0x095c('0x25')](function(_0x2ccfae){if(_0x2ccfae){_0x49e560=_0x2ccfae[_0x095c('0x34')];if(!_0x47528f[_0x095c('0x2e')]['hasOwnProperty']('nolimit')){_0x1c9ca2[_0x095c('0x1d')]=qs[_0x095c('0x1d')](_0x47528f['query']['limit']);_0x1c9ca2[_0x095c('0x1f')]=qs[_0x095c('0x1f')](_0x47528f[_0x095c('0x2e')][_0x095c('0x1f')]);}return _0x225f28[_0x095c('0x4e')](_0x1c9ca2);}})['then'](function(_0xd20b30){if(_0xd20b30){return _0xd20b30?{'count':_0x49e560,'rows':_0xd20b30}:null;}})[_0x095c('0x25')](respondWithResult(_0x2e632e,null))['catch'](handleError(_0x2e632e,null));};exports[_0x095c('0x50')]=function(_0x1ae6c9,_0x136fc7,_0x1c5602){var _0x4cec4c={};var _0x1d9745={};var _0x23e17e;var _0x55a494;return db[_0x095c('0x3f')]['findOne']({'where':{'id':_0x1ae6c9['params']['id']}})['then'](handleEntityNotFound(_0x136fc7,null))[_0x095c('0x25')](function(_0x1aa961){if(_0x1aa961){_0x23e17e=_0x1aa961;_0x1d9745['model']=_[_0x095c('0x2f')](db[_0x095c('0x4f')][_0x095c('0x2a')]);_0x1d9745[_0x095c('0x2e')]=_['keys'](_0x1ae6c9[_0x095c('0x2e')]);_0x1d9745['filters']=_[_0x095c('0x31')](_0x1d9745[_0x095c('0x2c')],_0x1d9745[_0x095c('0x2e')]);_0x4cec4c['attributes']=_[_0x095c('0x31')](_0x1d9745[_0x095c('0x2c')],qs['fields'](_0x1ae6c9[_0x095c('0x2e')]['fields']));_0x4cec4c[_0x095c('0x33')]=_0x4cec4c[_0x095c('0x33')][_0x095c('0x34')]?_0x4cec4c[_0x095c('0x33')]:_0x1d9745[_0x095c('0x2c')];_0x4cec4c['order']=qs[_0x095c('0x38')](_0x1ae6c9['query']['sort']);_0x4cec4c['where']=qs['filters'](_[_0x095c('0x3a')](_0x1ae6c9[_0x095c('0x2e')],_0x1d9745[_0x095c('0x30')]));if(_0x1ae6c9['query'][_0x095c('0x3b')]){_0x4cec4c['where']=_[_0x095c('0x3e')](_0x4cec4c['where'],{'$or':_[_0x095c('0x2d')](_0x4cec4c[_0x095c('0x33')],function(_0x5957be){var _0x5f08b3={};_0x5f08b3[_0x5957be]={'$like':'%'+_0x1ae6c9['query'][_0x095c('0x3b')]+'%'};return _0x5f08b3;})});}_0x4cec4c=_[_0x095c('0x3e')]({},_0x4cec4c,_0x1ae6c9[_0x095c('0x46')]);return _0x23e17e['getDescriptions'](_0x4cec4c);}})[_0x095c('0x25')](function(_0x7d21cc){if(_0x7d21cc){_0x55a494=_0x7d21cc[_0x095c('0x34')];if(!_0x1ae6c9[_0x095c('0x2e')][_0x095c('0x35')](_0x095c('0x36'))){_0x4cec4c[_0x095c('0x1d')]=qs['limit'](_0x1ae6c9[_0x095c('0x2e')][_0x095c('0x1d')]);_0x4cec4c['offset']=qs[_0x095c('0x1f')](_0x1ae6c9[_0x095c('0x2e')]['offset']);}return _0x23e17e[_0x095c('0x50')](_0x4cec4c);}})['then'](function(_0x5b9ea0){if(_0x5b9ea0){return _0x5b9ea0?{'count':_0x55a494,'rows':_0x5b9ea0}:null;}})[_0x095c('0x25')](respondWithResult(_0x136fc7,null))[_0x095c('0x43')](handleError(_0x136fc7,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xde5b=['util','../../config/logger','api','moment','bluebird','rimraf','../../config/environment','./intVtigerConfiguration.attributes','exports','define','VtigerConfiguration','int_vtiger_configurations','lodash'];(function(_0x3e44fa,_0x75ed2a){var _0x2a0aba=function(_0x1db6a7){while(--_0x1db6a7){_0x3e44fa['push'](_0x3e44fa['shift']());}};_0x2a0aba(++_0x75ed2a);}(_0xde5b,0xa8));var _0xbde5=function(_0x1e6485,_0x2920b8){_0x1e6485=_0x1e6485-0x0;var _0x3d8913=_0xde5b[_0x1e6485];return _0x3d8913;};'use strict';var _=require(_0xbde5('0x0'));var util=require(_0xbde5('0x1'));var logger=require(_0xbde5('0x2'))(_0xbde5('0x3'));var moment=require(_0xbde5('0x4'));var BPromise=require(_0xbde5('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0xbde5('0x6'));var config=require(_0xbde5('0x7'));var attributes=require(_0xbde5('0x8'));module[_0xbde5('0x9')]=function(_0x3d44f5,_0xfae2f9){return _0x3d44f5[_0xbde5('0xa')](_0xbde5('0xb'),attributes,{'tableName':_0xbde5('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xcb4c=['util','../../config/logger','api','bluebird','request-promise','path','rimraf','../../config/environment','./intVtigerConfiguration.attributes','exports','VtigerConfiguration','int_vtiger_configurations'];(function(_0x2dafbe,_0x5d04de){var _0x58a45a=function(_0x50ac96){while(--_0x50ac96){_0x2dafbe['push'](_0x2dafbe['shift']());}};_0x58a45a(++_0x5d04de);}(_0xcb4c,0x6c));var _0xccb4=function(_0x4e3882,_0x29c9eb){_0x4e3882=_0x4e3882-0x0;var _0x342f63=_0xcb4c[_0x4e3882];return _0x342f63;};'use strict';var _=require('lodash');var util=require(_0xccb4('0x0'));var logger=require(_0xccb4('0x1'))(_0xccb4('0x2'));var moment=require('moment');var BPromise=require(_0xccb4('0x3'));var rp=require(_0xccb4('0x4'));var fs=require('fs');var path=require(_0xccb4('0x5'));var rimraf=require(_0xccb4('0x6'));var config=require(_0xccb4('0x7'));var attributes=require(_0xccb4('0x8'));module[_0xccb4('0x9')]=function(_0x1eb8f1,_0x220291){return _0x1eb8f1['define'](_0xccb4('0xa'),attributes,{'tableName':_0xccb4('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x74fb=['info','request\x20sent','VtigerConfiguration,\x20%s,\x20%s,\x20%s','stringify','error','code','VtigerConfiguration,\x20%s,\x20%s','message','catch','lodash','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x74fb,0x1d7));var _0xb74f=function(_0x2624f7,_0x4175b9){_0x2624f7=_0x2624f7-0x0;var _0x3ea815=_0x74fb[_0x2624f7];return _0x3ea815;};'use strict';var _=require(_0xb74f('0x0'));var util=require('util');var moment=require(_0xb74f('0x1'));var BPromise=require(_0xb74f('0x2'));var rs=require(_0xb74f('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xb74f('0x4'))['db'];var utils=require(_0xb74f('0x5'));var logger=require(_0xb74f('0x6'))(_0xb74f('0x7'));var config=require(_0xb74f('0x8'));var jayson=require(_0xb74f('0x9'));var client=jayson[_0xb74f('0xa')][_0xb74f('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x8df51c,_0x11ef39,_0x42967e){return new BPromise(function(_0x163a56,_0x3ffdd7){return client[_0xb74f('0xc')](_0x8df51c,_0x42967e)['then'](function(_0x5621cc){logger[_0xb74f('0xd')]('VtigerConfiguration,\x20%s,\x20%s',_0x11ef39,_0xb74f('0xe'));logger['debug'](_0xb74f('0xf'),_0x11ef39,_0xb74f('0xe'),JSON[_0xb74f('0x10')](_0x5621cc));if(_0x5621cc[_0xb74f('0x11')]){if(_0x5621cc[_0xb74f('0x11')][_0xb74f('0x12')]===0x1f4){logger['error'](_0xb74f('0x13'),_0x11ef39,_0x5621cc['error'][_0xb74f('0x14')]);return _0x3ffdd7(_0x5621cc[_0xb74f('0x11')]['message']);}logger[_0xb74f('0x11')](_0xb74f('0x13'),_0x11ef39,_0x5621cc[_0xb74f('0x11')][_0xb74f('0x14')]);return _0x163a56(_0x5621cc[_0xb74f('0x11')][_0xb74f('0x14')]);}else{logger['info'](_0xb74f('0x13'),_0x11ef39,_0xb74f('0xe'));_0x163a56(_0x5621cc['result'][_0xb74f('0x14')]);}})[_0xb74f('0x15')](function(_0x599e00){logger[_0xb74f('0x11')]('VtigerConfiguration,\x20%s,\x20%s',_0x11ef39,_0x599e00);_0x3ffdd7(_0x599e00);});});}
\ No newline at end of file
+var _0x3c0a=['jayson/promise','client','request','then','request\x20sent','debug','stringify','error','code','VtigerConfiguration,\x20%s,\x20%s','message','result','catch','lodash','util','moment','bluebird','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment'];(function(_0x1c71cd,_0x4b696a){var _0x505500=function(_0x56300b){while(--_0x56300b){_0x1c71cd['push'](_0x1c71cd['shift']());}};_0x505500(++_0x4b696a);}(_0x3c0a,0x7b));var _0xa3c0=function(_0x4d9c13,_0x3f2a20){_0x4d9c13=_0x4d9c13-0x0;var _0x22c62a=_0x3c0a[_0x4d9c13];return _0x22c62a;};'use strict';var _=require(_0xa3c0('0x0'));var util=require(_0xa3c0('0x1'));var moment=require(_0xa3c0('0x2'));var BPromise=require(_0xa3c0('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0xa3c0('0x4'))['db'];var utils=require(_0xa3c0('0x5'));var logger=require(_0xa3c0('0x6'))(_0xa3c0('0x7'));var config=require(_0xa3c0('0x8'));var jayson=require(_0xa3c0('0x9'));var client=jayson[_0xa3c0('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0xf0fed0,_0x5d4e9e,_0x3b02ef){return new BPromise(function(_0x36fd8f,_0xb8625b){return client[_0xa3c0('0xb')](_0xf0fed0,_0x3b02ef)[_0xa3c0('0xc')](function(_0x3117ec){logger['info']('VtigerConfiguration,\x20%s,\x20%s',_0x5d4e9e,_0xa3c0('0xd'));logger[_0xa3c0('0xe')]('VtigerConfiguration,\x20%s,\x20%s,\x20%s',_0x5d4e9e,_0xa3c0('0xd'),JSON[_0xa3c0('0xf')](_0x3117ec));if(_0x3117ec[_0xa3c0('0x10')]){if(_0x3117ec[_0xa3c0('0x10')][_0xa3c0('0x11')]===0x1f4){logger[_0xa3c0('0x10')](_0xa3c0('0x12'),_0x5d4e9e,_0x3117ec[_0xa3c0('0x10')][_0xa3c0('0x13')]);return _0xb8625b(_0x3117ec['error'][_0xa3c0('0x13')]);}logger[_0xa3c0('0x10')](_0xa3c0('0x12'),_0x5d4e9e,_0x3117ec[_0xa3c0('0x10')][_0xa3c0('0x13')]);return _0x36fd8f(_0x3117ec[_0xa3c0('0x10')][_0xa3c0('0x13')]);}else{logger['info'](_0xa3c0('0x12'),_0x5d4e9e,'request\x20sent');_0x36fd8f(_0x3117ec[_0xa3c0('0x14')][_0xa3c0('0x13')]);}})[_0xa3c0('0x15')](function(_0x506325){logger[_0xa3c0('0x10')](_0xa3c0('0x12'),_0x5d4e9e,_0x506325);_0xb8625b(_0x506325);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5fe0=['connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','get','isAuthenticated','show','post','put','update','delete','/:id','exports','multer','util','path'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x5fe0,0x1e3));var _0x05fe=function(_0x2dc103,_0x30471c){_0x2dc103=_0x2dc103-0x0;var _0x24ff4c=_0x5fe0[_0x2dc103];return _0x24ff4c;};'use strict';var multer=require(_0x05fe('0x0'));var util=require(_0x05fe('0x1'));var path=require(_0x05fe('0x2'));var timeout=require(_0x05fe('0x3'));var express=require(_0x05fe('0x4'));var router=express[_0x05fe('0x5')]();var fs_extra=require(_0x05fe('0x6'));var auth=require('../../components/auth/service');var interaction=require(_0x05fe('0x7'));var config=require(_0x05fe('0x8'));var controller=require('./intVtigerField.controller');router[_0x05fe('0x9')]('/',auth['isAuthenticated'](),controller['index']);router[_0x05fe('0x9')]('/:id',auth[_0x05fe('0xa')](),controller[_0x05fe('0xb')]);router[_0x05fe('0xc')]('/',auth[_0x05fe('0xa')](),controller['create']);router[_0x05fe('0xd')]('/:id',auth[_0x05fe('0xa')](),controller[_0x05fe('0xe')]);router[_0x05fe('0xf')](_0x05fe('0x10'),auth[_0x05fe('0xa')](),controller['destroy']);module[_0x05fe('0x11')]=router;
\ No newline at end of file
+var _0xedc7=['isAuthenticated','index','get','/:id','show','post','create','update','delete','destroy','exports','multer','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment'];(function(_0x395857,_0x58c3f1){var _0x3307b8=function(_0x4fb969){while(--_0x4fb969){_0x395857['push'](_0x395857['shift']());}};_0x3307b8(++_0x58c3f1);}(_0xedc7,0x14f));var _0x7edc=function(_0x43e798,_0x123053){_0x43e798=_0x43e798-0x0;var _0xe748d9=_0xedc7[_0x43e798];return _0xe748d9;};'use strict';var multer=require(_0x7edc('0x0'));var util=require('util');var path=require('path');var timeout=require(_0x7edc('0x1'));var express=require(_0x7edc('0x2'));var router=express[_0x7edc('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x7edc('0x4'));var interaction=require(_0x7edc('0x5'));var config=require(_0x7edc('0x6'));var controller=require('./intVtigerField.controller');router['get']('/',auth[_0x7edc('0x7')](),controller[_0x7edc('0x8')]);router[_0x7edc('0x9')](_0x7edc('0xa'),auth[_0x7edc('0x7')](),controller[_0x7edc('0xb')]);router[_0x7edc('0xc')]('/',auth[_0x7edc('0x7')](),controller[_0x7edc('0xd')]);router['put'](_0x7edc('0xa'),auth[_0x7edc('0x7')](),controller[_0x7edc('0xe')]);router[_0x7edc('0xf')]('/:id',auth[_0x7edc('0x7')](),controller[_0x7edc('0x10')]);module[_0x7edc('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0a30=['keyValue','picklist','STRING','sequelize','ENUM','string','variable'];(function(_0x17b041,_0x3b2ac3){var _0x46235c=function(_0x576f54){while(--_0x576f54){_0x17b041['push'](_0x17b041['shift']());}};_0x46235c(++_0x3b2ac3);}(_0x0a30,0xa4));var _0x00a3=function(_0x20d2de,_0x51ffd8){_0x20d2de=_0x20d2de-0x0;var _0x448033=_0x0a30[_0x20d2de];return _0x448033;};'use strict';var Sequelize=require(_0x00a3('0x0'));module['exports']={'type':{'type':Sequelize[_0x00a3('0x1')](_0x00a3('0x2'),_0x00a3('0x3'),'customVariable',_0x00a3('0x4'),_0x00a3('0x5')),'defaultValue':_0x00a3('0x2')},'content':{'type':Sequelize[_0x00a3('0x6')]},'key':{'type':Sequelize['STRING']},'keyType':{'type':Sequelize[_0x00a3('0x1')](_0x00a3('0x2'),_0x00a3('0x3'),'customVariable')},'keyContent':{'type':Sequelize[_0x00a3('0x6')]},'idField':{'type':Sequelize[_0x00a3('0x6')]},'nameField':{'type':Sequelize[_0x00a3('0x6')]},'customField':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'variableName':{'type':Sequelize[_0x00a3('0x6')]}};
\ No newline at end of file
+var _0xca5d=['picklist','STRING','BOOLEAN','sequelize','string','variable','customVariable'];(function(_0x39270a,_0x5e0175){var _0x188416=function(_0x59e66f){while(--_0x59e66f){_0x39270a['push'](_0x39270a['shift']());}};_0x188416(++_0x5e0175);}(_0xca5d,0x11b));var _0xdca5=function(_0x4766b1,_0x3f1371){_0x4766b1=_0x4766b1-0x0;var _0x6b9995=_0xca5d[_0x4766b1];return _0x6b9995;};'use strict';var Sequelize=require(_0xdca5('0x0'));module['exports']={'type':{'type':Sequelize['ENUM'](_0xdca5('0x1'),_0xdca5('0x2'),_0xdca5('0x3'),'keyValue',_0xdca5('0x4')),'defaultValue':_0xdca5('0x1')},'content':{'type':Sequelize[_0xdca5('0x5')]},'key':{'type':Sequelize[_0xdca5('0x5')]},'keyType':{'type':Sequelize['ENUM']('string','variable',_0xdca5('0x3'))},'keyContent':{'type':Sequelize[_0xdca5('0x5')]},'idField':{'type':Sequelize['STRING']},'nameField':{'type':Sequelize[_0xdca5('0x5')]},'customField':{'type':Sequelize[_0xdca5('0x6')],'defaultValue':!![]},'variableName':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa018=['query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filter','merge','VIRTUAL','VtigerField','include','findAll','rows','catch','show','rawAttributes','options','find','body','params','eml-format','rimraf','fast-json-patch','request-promise','mustache','util','sox','to-csv','ejs','lodash','squel','crypto','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','status','end','offset','undefined','limit','count','set','Content-Range','json','apply','reject','save','update','then','destroy','error','stack','name','send','index','map','fieldName','type','key','model'];(function(_0x3e3539,_0x33795a){var _0x142c73=function(_0x2d5d78){while(--_0x2d5d78){_0x3e3539['push'](_0x3e3539['shift']());}};_0x142c73(++_0x33795a);}(_0xa018,0xf2));var _0x8a01=function(_0xe64556,_0x3b940d){_0xe64556=_0xe64556-0x0;var _0x9ba36=_0xa018[_0xe64556];return _0x9ba36;};'use strict';var emlformat=require(_0x8a01('0x0'));var rimraf=require(_0x8a01('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x8a01('0x2'));var rp=require(_0x8a01('0x3'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x8a01('0x4'));var util=require(_0x8a01('0x5'));var path=require('path');var sox=require(_0x8a01('0x6'));var csv=require(_0x8a01('0x7'));var ejs=require(_0x8a01('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x8a01('0x9'));var squel=require(_0x8a01('0xa'));var crypto=require(_0x8a01('0xb'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x8a01('0x7'));var querystring=require(_0x8a01('0xc'));var Papa=require('papaparse');var Redis=require(_0x8a01('0xd'));var authService=require('../../components/auth/service');var qs=require(_0x8a01('0xe'));var as=require(_0x8a01('0xf'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x8a01('0x10'))(_0x8a01('0x11'));var utils=require(_0x8a01('0x12'));var config=require(_0x8a01('0x13'));var licenseUtil=require(_0x8a01('0x14'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x41f53b,_0x2a7307){_0x2a7307=_0x2a7307||0xcc;return function(_0x9df6c9){if(_0x9df6c9){return _0x41f53b['sendStatus'](_0x2a7307);}return _0x41f53b[_0x8a01('0x15')](_0x2a7307)[_0x8a01('0x16')]();};}function respondWithResult(_0x559f9e,_0x1fd02a){_0x1fd02a=_0x1fd02a||0xc8;return function(_0x261345){if(_0x261345){return _0x559f9e[_0x8a01('0x15')](_0x1fd02a)['json'](_0x261345);}};}function respondWithFilteredResult(_0xa4898f,_0x59bfac){return function(_0xbf2108){if(_0xbf2108){var _0x11cc12=typeof _0x59bfac[_0x8a01('0x17')]===_0x8a01('0x18')&&typeof _0x59bfac[_0x8a01('0x19')]===_0x8a01('0x18');var _0x56f121=_0xbf2108[_0x8a01('0x1a')];var _0x204792=_0x11cc12?0x0:_0x59bfac[_0x8a01('0x17')];var _0x3533b9=_0x11cc12?_0xbf2108['count']:_0x59bfac[_0x8a01('0x17')]+_0x59bfac[_0x8a01('0x19')];var _0x231bd3;if(_0x3533b9>=_0x56f121){_0x3533b9=_0x56f121;_0x231bd3=0xc8;}else{_0x231bd3=0xce;}_0xa4898f[_0x8a01('0x15')](_0x231bd3);return _0xa4898f[_0x8a01('0x1b')](_0x8a01('0x1c'),_0x204792+'-'+_0x3533b9+'/'+_0x56f121)[_0x8a01('0x1d')](_0xbf2108);}return null;};}function patchUpdates(_0xb9a377){return function(_0x37b31d){try{jsonpatch[_0x8a01('0x1e')](_0x37b31d,_0xb9a377,!![]);}catch(_0x328e95){return BPromise[_0x8a01('0x1f')](_0x328e95);}return _0x37b31d[_0x8a01('0x20')]();};}function saveUpdates(_0x3a20ef,_0x1393c2){return function(_0x2123fe){if(_0x2123fe){return _0x2123fe[_0x8a01('0x21')](_0x3a20ef)[_0x8a01('0x22')](function(_0x54c8e4){return _0x54c8e4;});}return null;};}function removeEntity(_0x41bbd3,_0xf6114){return function(_0x4765b4){if(_0x4765b4){return _0x4765b4[_0x8a01('0x23')]()['then'](function(){_0x41bbd3[_0x8a01('0x15')](0xcc)[_0x8a01('0x16')]();});}};}function handleEntityNotFound(_0x918bde,_0x2ec2d2){return function(_0xcac6e3){if(!_0xcac6e3){_0x918bde['sendStatus'](0x194);}return _0xcac6e3;};}function handleError(_0xa3d397,_0x1f210f){_0x1f210f=_0x1f210f||0x1f4;return function(_0x4e9168){logger[_0x8a01('0x24')](_0x4e9168[_0x8a01('0x25')]);if(_0x4e9168[_0x8a01('0x26')]){delete _0x4e9168['name'];}_0xa3d397[_0x8a01('0x15')](_0x1f210f)[_0x8a01('0x27')](_0x4e9168);};}exports[_0x8a01('0x28')]=function(_0x57e93c,_0x5c912b){var _0x335c1a={},_0x5f283c={},_0xd535ea={'count':0x0,'rows':[]};var _0x1c215e=_[_0x8a01('0x29')](db['VtigerField']['rawAttributes'],function(_0x2ab543){return{'name':_0x2ab543[_0x8a01('0x2a')],'type':_0x2ab543[_0x8a01('0x2b')][_0x8a01('0x2c')]};});_0x5f283c[_0x8a01('0x2d')]=_['map'](_0x1c215e,_0x8a01('0x26'));_0x5f283c[_0x8a01('0x2e')]=_[_0x8a01('0x2f')](_0x57e93c[_0x8a01('0x2e')]);_0x5f283c[_0x8a01('0x30')]=_[_0x8a01('0x31')](_0x5f283c[_0x8a01('0x2d')],_0x5f283c[_0x8a01('0x2e')]);_0x335c1a[_0x8a01('0x32')]=_[_0x8a01('0x31')](_0x5f283c['model'],qs[_0x8a01('0x33')](_0x57e93c[_0x8a01('0x2e')][_0x8a01('0x33')]));_0x335c1a['attributes']=_0x335c1a['attributes'][_0x8a01('0x34')]?_0x335c1a[_0x8a01('0x32')]:_0x5f283c['model'];if(!_0x57e93c[_0x8a01('0x2e')][_0x8a01('0x35')](_0x8a01('0x36'))){_0x335c1a[_0x8a01('0x19')]=qs[_0x8a01('0x19')](_0x57e93c['query'][_0x8a01('0x19')]);_0x335c1a[_0x8a01('0x17')]=qs[_0x8a01('0x17')](_0x57e93c[_0x8a01('0x2e')]['offset']);}_0x335c1a[_0x8a01('0x37')]=qs[_0x8a01('0x38')](_0x57e93c[_0x8a01('0x2e')][_0x8a01('0x38')]);_0x335c1a[_0x8a01('0x39')]=qs['filters'](_['pick'](_0x57e93c[_0x8a01('0x2e')],_0x5f283c[_0x8a01('0x30')]),_0x1c215e);if(_0x57e93c[_0x8a01('0x2e')][_0x8a01('0x3a')]){_0x335c1a[_0x8a01('0x39')]=_[_0x8a01('0x3b')](_0x335c1a[_0x8a01('0x39')],{'$or':_[_0x8a01('0x29')](_0x1c215e,function(_0x7e76d5){if(_0x7e76d5['type']!==_0x8a01('0x3c')){var _0x28f685={};_0x28f685[_0x7e76d5[_0x8a01('0x26')]]={'$like':'%'+_0x57e93c[_0x8a01('0x2e')]['filter']+'%'};return _0x28f685;}})});}_0x335c1a=_[_0x8a01('0x3b')]({},_0x335c1a,_0x57e93c['options']);var _0x7f1a1a={'where':_0x335c1a['where']};return db[_0x8a01('0x3d')][_0x8a01('0x1a')](_0x7f1a1a)['then'](function(_0x514b77){_0xd535ea[_0x8a01('0x1a')]=_0x514b77;if(_0x57e93c[_0x8a01('0x2e')]['includeAll']){_0x335c1a[_0x8a01('0x3e')]=[{'all':!![]}];}return db[_0x8a01('0x3d')][_0x8a01('0x3f')](_0x335c1a);})['then'](function(_0x25d612){_0xd535ea[_0x8a01('0x40')]=_0x25d612;return _0xd535ea;})[_0x8a01('0x22')](respondWithFilteredResult(_0x5c912b,_0x335c1a))[_0x8a01('0x41')](handleError(_0x5c912b,null));};exports[_0x8a01('0x42')]=function(_0x192144,_0x508054){var _0x244a43={'raw':!![],'where':{'id':_0x192144['params']['id']}},_0x3b5484={};_0x3b5484['model']=_[_0x8a01('0x2f')](db[_0x8a01('0x3d')][_0x8a01('0x43')]);_0x3b5484[_0x8a01('0x2e')]=_[_0x8a01('0x2f')](_0x192144[_0x8a01('0x2e')]);_0x3b5484['filters']=_[_0x8a01('0x31')](_0x3b5484['model'],_0x3b5484[_0x8a01('0x2e')]);_0x244a43['attributes']=_['intersection'](_0x3b5484[_0x8a01('0x2d')],qs[_0x8a01('0x33')](_0x192144['query'][_0x8a01('0x33')]));_0x244a43[_0x8a01('0x32')]=_0x244a43[_0x8a01('0x32')]['length']?_0x244a43[_0x8a01('0x32')]:_0x3b5484[_0x8a01('0x2d')];if(_0x192144['query']['includeAll']){_0x244a43[_0x8a01('0x3e')]=[{'all':!![]}];}_0x244a43=_[_0x8a01('0x3b')]({},_0x244a43,_0x192144[_0x8a01('0x44')]);return db[_0x8a01('0x3d')][_0x8a01('0x45')](_0x244a43)[_0x8a01('0x22')](handleEntityNotFound(_0x508054,null))[_0x8a01('0x22')](respondWithResult(_0x508054,null))[_0x8a01('0x41')](handleError(_0x508054,null));};exports['create']=function(_0x3949d1,_0x1f2112){return db[_0x8a01('0x3d')]['create'](_0x3949d1[_0x8a01('0x46')],{})[_0x8a01('0x22')](respondWithResult(_0x1f2112,0xc9))['catch'](handleError(_0x1f2112,null));};exports[_0x8a01('0x21')]=function(_0x2f21e6,_0x272052){if(_0x2f21e6[_0x8a01('0x46')]['id']){delete _0x2f21e6[_0x8a01('0x46')]['id'];}return db['VtigerField']['find']({'where':{'id':_0x2f21e6[_0x8a01('0x47')]['id']}})[_0x8a01('0x22')](handleEntityNotFound(_0x272052,null))['then'](saveUpdates(_0x2f21e6[_0x8a01('0x46')],null))['then'](respondWithResult(_0x272052,null))[_0x8a01('0x41')](handleError(_0x272052,null));};exports[_0x8a01('0x23')]=function(_0x3b8310,_0x509ab2){return db[_0x8a01('0x3d')][_0x8a01('0x45')]({'where':{'id':_0x3b8310['params']['id']}})[_0x8a01('0x22')](handleEntityNotFound(_0x509ab2,null))['then'](removeEntity(_0x509ab2,null))[_0x8a01('0x41')](handleError(_0x509ab2,null));};
\ No newline at end of file
+var _0xe04e=['json','offset','undefined','limit','count','set','Content-Range','apply','save','update','then','destroy','error','stack','name','send','index','map','rawAttributes','fieldName','model','keys','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','merge','type','VIRTUAL','filter','VtigerField','includeAll','include','rows','catch','show','params','length','find','create','body','fast-json-patch','request-promise','moment','bluebird','util','path','to-csv','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end'];(function(_0x3062e2,_0x2f673e){var _0x5c241a=function(_0x102633){while(--_0x102633){_0x3062e2['push'](_0x3062e2['shift']());}};_0x5c241a(++_0x2f673e);}(_0xe04e,0x1a2));var _0xee04=function(_0x5ba707,_0x5d9ece){_0x5ba707=_0x5ba707-0x0;var _0x45ba62=_0xe04e[_0x5ba707];return _0x45ba62;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xee04('0x0'));var rp=require(_0xee04('0x1'));var moment=require(_0xee04('0x2'));var BPromise=require(_0xee04('0x3'));var Mustache=require('mustache');var util=require(_0xee04('0x4'));var path=require(_0xee04('0x5'));var sox=require('sox');var csv=require(_0xee04('0x6'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xee04('0x7'));var squel=require(_0xee04('0x8'));var crypto=require(_0xee04('0x9'));var jsforce=require('jsforce');var deskjs=require(_0xee04('0xa'));var toCsv=require(_0xee04('0x6'));var querystring=require(_0xee04('0xb'));var Papa=require(_0xee04('0xc'));var Redis=require(_0xee04('0xd'));var authService=require(_0xee04('0xe'));var qs=require(_0xee04('0xf'));var as=require(_0xee04('0x10'));var hardwareService=require(_0xee04('0x11'));var logger=require(_0xee04('0x12'))('api');var utils=require(_0xee04('0x13'));var config=require(_0xee04('0x14'));var licenseUtil=require(_0xee04('0x15'));var db=require(_0xee04('0x16'))['db'];function respondWithStatusCode(_0x45d212,_0x35caf8){_0x35caf8=_0x35caf8||0xcc;return function(_0x4f1bbb){if(_0x4f1bbb){return _0x45d212[_0xee04('0x17')](_0x35caf8);}return _0x45d212[_0xee04('0x18')](_0x35caf8)[_0xee04('0x19')]();};}function respondWithResult(_0x10ed8a,_0x49955e){_0x49955e=_0x49955e||0xc8;return function(_0x19cff2){if(_0x19cff2){return _0x10ed8a[_0xee04('0x18')](_0x49955e)[_0xee04('0x1a')](_0x19cff2);}};}function respondWithFilteredResult(_0x143a7a,_0x58eda4){return function(_0x34e0f6){if(_0x34e0f6){var _0x31862e=typeof _0x58eda4[_0xee04('0x1b')]===_0xee04('0x1c')&&typeof _0x58eda4[_0xee04('0x1d')]===_0xee04('0x1c');var _0x43a404=_0x34e0f6[_0xee04('0x1e')];var _0x592dde=_0x31862e?0x0:_0x58eda4[_0xee04('0x1b')];var _0x114145=_0x31862e?_0x34e0f6[_0xee04('0x1e')]:_0x58eda4[_0xee04('0x1b')]+_0x58eda4[_0xee04('0x1d')];var _0x2a2a22;if(_0x114145>=_0x43a404){_0x114145=_0x43a404;_0x2a2a22=0xc8;}else{_0x2a2a22=0xce;}_0x143a7a[_0xee04('0x18')](_0x2a2a22);return _0x143a7a[_0xee04('0x1f')](_0xee04('0x20'),_0x592dde+'-'+_0x114145+'/'+_0x43a404)[_0xee04('0x1a')](_0x34e0f6);}return null;};}function patchUpdates(_0x5acaf0){return function(_0x293e5f){try{jsonpatch[_0xee04('0x21')](_0x293e5f,_0x5acaf0,!![]);}catch(_0x383fa7){return BPromise['reject'](_0x383fa7);}return _0x293e5f[_0xee04('0x22')]();};}function saveUpdates(_0x428487,_0x20517f){return function(_0x1ade7e){if(_0x1ade7e){return _0x1ade7e[_0xee04('0x23')](_0x428487)[_0xee04('0x24')](function(_0x2af909){return _0x2af909;});}return null;};}function removeEntity(_0x578b78,_0x17ac03){return function(_0x486c33){if(_0x486c33){return _0x486c33[_0xee04('0x25')]()[_0xee04('0x24')](function(){_0x578b78[_0xee04('0x18')](0xcc)[_0xee04('0x19')]();});}};}function handleEntityNotFound(_0x39d2d8,_0x2aa761){return function(_0x552a8e){if(!_0x552a8e){_0x39d2d8[_0xee04('0x17')](0x194);}return _0x552a8e;};}function handleError(_0x1e77d7,_0x3e590f){_0x3e590f=_0x3e590f||0x1f4;return function(_0x12e1be){logger[_0xee04('0x26')](_0x12e1be[_0xee04('0x27')]);if(_0x12e1be[_0xee04('0x28')]){delete _0x12e1be[_0xee04('0x28')];}_0x1e77d7[_0xee04('0x18')](_0x3e590f)[_0xee04('0x29')](_0x12e1be);};}exports[_0xee04('0x2a')]=function(_0x2899b6,_0x5598da){var _0x453c6e={},_0x2ed6b4={},_0x3ec6c3={'count':0x0,'rows':[]};var _0x2cfcc6=_[_0xee04('0x2b')](db['VtigerField'][_0xee04('0x2c')],function(_0x1ff618){return{'name':_0x1ff618[_0xee04('0x2d')],'type':_0x1ff618['type']['key']};});_0x2ed6b4[_0xee04('0x2e')]=_[_0xee04('0x2b')](_0x2cfcc6,_0xee04('0x28'));_0x2ed6b4['query']=_[_0xee04('0x2f')](_0x2899b6[_0xee04('0x30')]);_0x2ed6b4[_0xee04('0x31')]=_[_0xee04('0x32')](_0x2ed6b4[_0xee04('0x2e')],_0x2ed6b4[_0xee04('0x30')]);_0x453c6e[_0xee04('0x33')]=_[_0xee04('0x32')](_0x2ed6b4['model'],qs[_0xee04('0x34')](_0x2899b6[_0xee04('0x30')][_0xee04('0x34')]));_0x453c6e['attributes']=_0x453c6e[_0xee04('0x33')]['length']?_0x453c6e[_0xee04('0x33')]:_0x2ed6b4[_0xee04('0x2e')];if(!_0x2899b6[_0xee04('0x30')][_0xee04('0x35')](_0xee04('0x36'))){_0x453c6e[_0xee04('0x1d')]=qs[_0xee04('0x1d')](_0x2899b6['query'][_0xee04('0x1d')]);_0x453c6e[_0xee04('0x1b')]=qs[_0xee04('0x1b')](_0x2899b6[_0xee04('0x30')][_0xee04('0x1b')]);}_0x453c6e[_0xee04('0x37')]=qs[_0xee04('0x38')](_0x2899b6['query']['sort']);_0x453c6e[_0xee04('0x39')]=qs[_0xee04('0x31')](_[_0xee04('0x3a')](_0x2899b6[_0xee04('0x30')],_0x2ed6b4['filters']),_0x2cfcc6);if(_0x2899b6[_0xee04('0x30')]['filter']){_0x453c6e['where']=_[_0xee04('0x3b')](_0x453c6e['where'],{'$or':_[_0xee04('0x2b')](_0x2cfcc6,function(_0x5dfa10){if(_0x5dfa10[_0xee04('0x3c')]!==_0xee04('0x3d')){var _0x17fb0e={};_0x17fb0e[_0x5dfa10[_0xee04('0x28')]]={'$like':'%'+_0x2899b6[_0xee04('0x30')][_0xee04('0x3e')]+'%'};return _0x17fb0e;}})});}_0x453c6e=_['merge']({},_0x453c6e,_0x2899b6['options']);var _0x3ccc94={'where':_0x453c6e[_0xee04('0x39')]};return db[_0xee04('0x3f')]['count'](_0x3ccc94)[_0xee04('0x24')](function(_0x1d6b73){_0x3ec6c3[_0xee04('0x1e')]=_0x1d6b73;if(_0x2899b6['query'][_0xee04('0x40')]){_0x453c6e[_0xee04('0x41')]=[{'all':!![]}];}return db[_0xee04('0x3f')]['findAll'](_0x453c6e);})[_0xee04('0x24')](function(_0x4f2dfa){_0x3ec6c3[_0xee04('0x42')]=_0x4f2dfa;return _0x3ec6c3;})['then'](respondWithFilteredResult(_0x5598da,_0x453c6e))[_0xee04('0x43')](handleError(_0x5598da,null));};exports[_0xee04('0x44')]=function(_0x247f5a,_0x186945){var _0x114a5c={'raw':!![],'where':{'id':_0x247f5a[_0xee04('0x45')]['id']}},_0x492fe6={};_0x492fe6[_0xee04('0x2e')]=_[_0xee04('0x2f')](db[_0xee04('0x3f')][_0xee04('0x2c')]);_0x492fe6[_0xee04('0x30')]=_['keys'](_0x247f5a[_0xee04('0x30')]);_0x492fe6[_0xee04('0x31')]=_[_0xee04('0x32')](_0x492fe6['model'],_0x492fe6[_0xee04('0x30')]);_0x114a5c[_0xee04('0x33')]=_['intersection'](_0x492fe6[_0xee04('0x2e')],qs[_0xee04('0x34')](_0x247f5a[_0xee04('0x30')][_0xee04('0x34')]));_0x114a5c[_0xee04('0x33')]=_0x114a5c['attributes'][_0xee04('0x46')]?_0x114a5c[_0xee04('0x33')]:_0x492fe6[_0xee04('0x2e')];if(_0x247f5a[_0xee04('0x30')][_0xee04('0x40')]){_0x114a5c[_0xee04('0x41')]=[{'all':!![]}];}_0x114a5c=_['merge']({},_0x114a5c,_0x247f5a['options']);return db[_0xee04('0x3f')][_0xee04('0x47')](_0x114a5c)[_0xee04('0x24')](handleEntityNotFound(_0x186945,null))['then'](respondWithResult(_0x186945,null))[_0xee04('0x43')](handleError(_0x186945,null));};exports[_0xee04('0x48')]=function(_0x1ed527,_0x4427ff){return db[_0xee04('0x3f')][_0xee04('0x48')](_0x1ed527[_0xee04('0x49')],{})[_0xee04('0x24')](respondWithResult(_0x4427ff,0xc9))[_0xee04('0x43')](handleError(_0x4427ff,null));};exports[_0xee04('0x23')]=function(_0x365b50,_0x923e63){if(_0x365b50[_0xee04('0x49')]['id']){delete _0x365b50[_0xee04('0x49')]['id'];}return db[_0xee04('0x3f')][_0xee04('0x47')]({'where':{'id':_0x365b50[_0xee04('0x45')]['id']}})[_0xee04('0x24')](handleEntityNotFound(_0x923e63,null))[_0xee04('0x24')](saveUpdates(_0x365b50[_0xee04('0x49')],null))[_0xee04('0x24')](respondWithResult(_0x923e63,null))[_0xee04('0x43')](handleError(_0x923e63,null));};exports[_0xee04('0x25')]=function(_0x411651,_0x3e414c){return db[_0xee04('0x3f')]['find']({'where':{'id':_0x411651['params']['id']}})['then'](handleEntityNotFound(_0x3e414c,null))['then'](removeEntity(_0x3e414c,null))[_0xee04('0x43')](handleError(_0x3e414c,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf016=['moment','bluebird','request-promise','path','rimraf','./intVtigerField.attributes','exports','define','vtiger_unique_index','idField','FieldId','lodash','util','../../config/logger','api'];(function(_0x239875,_0x52a793){var _0x55a8d6=function(_0x1c48db){while(--_0x1c48db){_0x239875['push'](_0x239875['shift']());}};_0x55a8d6(++_0x52a793);}(_0xf016,0xb0));var _0x6f01=function(_0x2a826f,_0xbd49d6){_0x2a826f=_0x2a826f-0x0;var _0x346364=_0xf016[_0x2a826f];return _0x346364;};'use strict';var _=require(_0x6f01('0x0'));var util=require(_0x6f01('0x1'));var logger=require(_0x6f01('0x2'))(_0x6f01('0x3'));var moment=require(_0x6f01('0x4'));var BPromise=require(_0x6f01('0x5'));var rp=require(_0x6f01('0x6'));var fs=require('fs');var path=require(_0x6f01('0x7'));var rimraf=require(_0x6f01('0x8'));var config=require('../../config/environment');var attributes=require(_0x6f01('0x9'));module[_0x6f01('0xa')]=function(_0x4c7907,_0x3ce22f){return _0x4c7907[_0x6f01('0xb')]('VtigerField',attributes,{'tableName':'int_vtiger_fields','paranoid':![],'indexes':[{'name':_0x6f01('0xc'),'fields':[_0x6f01('0xd'),_0x6f01('0xe')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xbb2c=['rimraf','VtigerField','int_vtiger_fields','idField','lodash','util','../../config/logger','moment','bluebird','request-promise','path'];(function(_0x5102d3,_0x2a0a07){var _0x4e16bb=function(_0x524d67){while(--_0x524d67){_0x5102d3['push'](_0x5102d3['shift']());}};_0x4e16bb(++_0x2a0a07);}(_0xbb2c,0x185));var _0xcbb2=function(_0x12ef19,_0x1740c1){_0x12ef19=_0x12ef19-0x0;var _0x3149d6=_0xbb2c[_0x12ef19];return _0x3149d6;};'use strict';var _=require(_0xcbb2('0x0'));var util=require(_0xcbb2('0x1'));var logger=require(_0xcbb2('0x2'))('api');var moment=require(_0xcbb2('0x3'));var BPromise=require(_0xcbb2('0x4'));var rp=require(_0xcbb2('0x5'));var fs=require('fs');var path=require(_0xcbb2('0x6'));var rimraf=require(_0xcbb2('0x7'));var config=require('../../config/environment');var attributes=require('./intVtigerField.attributes');module['exports']=function(_0x205ba8,_0x374ec1){return _0x205ba8['define'](_0xcbb2('0x8'),attributes,{'tableName':_0xcbb2('0x9'),'paranoid':![],'indexes':[{'name':'vtiger_unique_index','fields':[_0xcbb2('0xa'),'FieldId'],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x90eb=['moment','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','then','info','request\x20sent','debug','VtigerField,\x20%s,\x20%s,\x20%s','error','code','VtigerField,\x20%s,\x20%s','message','catch','lodash','util'];(function(_0x11973d,_0x68c443){var _0x2875e3=function(_0x597cda){while(--_0x597cda){_0x11973d['push'](_0x11973d['shift']());}};_0x2875e3(++_0x68c443);}(_0x90eb,0x82));var _0xb90e=function(_0x193751,_0x169d89){_0x193751=_0x193751-0x0;var _0x2c36b7=_0x90eb[_0x193751];return _0x2c36b7;};'use strict';var _=require(_0xb90e('0x0'));var util=require(_0xb90e('0x1'));var moment=require(_0xb90e('0x2'));var BPromise=require('bluebird');var rs=require(_0xb90e('0x3'));var fs=require('fs');var Redis=require(_0xb90e('0x4'));var db=require(_0xb90e('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0xb90e('0x6'))(_0xb90e('0x7'));var config=require(_0xb90e('0x8'));var jayson=require(_0xb90e('0x9'));var client=jayson[_0xb90e('0xa')][_0xb90e('0xb')]({'port':0x232a});function respondWithRpcPromise(_0xd89d7f,_0x59cbfc,_0x5be9bf){return new BPromise(function(_0x320c75,_0xfd43ac){return client['request'](_0xd89d7f,_0x5be9bf)[_0xb90e('0xc')](function(_0xcb5a40){logger[_0xb90e('0xd')]('VtigerField,\x20%s,\x20%s',_0x59cbfc,_0xb90e('0xe'));logger[_0xb90e('0xf')](_0xb90e('0x10'),_0x59cbfc,'request\x20sent',JSON['stringify'](_0xcb5a40));if(_0xcb5a40[_0xb90e('0x11')]){if(_0xcb5a40[_0xb90e('0x11')][_0xb90e('0x12')]===0x1f4){logger[_0xb90e('0x11')](_0xb90e('0x13'),_0x59cbfc,_0xcb5a40[_0xb90e('0x11')][_0xb90e('0x14')]);return _0xfd43ac(_0xcb5a40['error']['message']);}logger[_0xb90e('0x11')](_0xb90e('0x13'),_0x59cbfc,_0xcb5a40['error'][_0xb90e('0x14')]);return _0x320c75(_0xcb5a40[_0xb90e('0x11')][_0xb90e('0x14')]);}else{logger['info'](_0xb90e('0x13'),_0x59cbfc,_0xb90e('0xe'));_0x320c75(_0xcb5a40['result'][_0xb90e('0x14')]);}})[_0xb90e('0x15')](function(_0xc18a83){logger['error']('VtigerField,\x20%s,\x20%s',_0x59cbfc,_0xc18a83);_0xfd43ac(_0xc18a83);});});}
\ No newline at end of file
+var _0x69c5=['request','then','info','request\x20sent','debug','stringify','error','code','VtigerField,\x20%s,\x20%s','message','result','catch','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http'];(function(_0x1cb84c,_0x576b00){var _0x1ff4ed=function(_0x27e6b4){while(--_0x27e6b4){_0x1cb84c['push'](_0x1cb84c['shift']());}};_0x1ff4ed(++_0x576b00);}(_0x69c5,0x15c));var _0x569c=function(_0x51bc5e,_0x2c40c6){_0x51bc5e=_0x51bc5e-0x0;var _0x428582=_0x69c5[_0x51bc5e];return _0x428582;};'use strict';var _=require(_0x569c('0x0'));var util=require(_0x569c('0x1'));var moment=require(_0x569c('0x2'));var BPromise=require('bluebird');var rs=require(_0x569c('0x3'));var fs=require('fs');var Redis=require(_0x569c('0x4'));var db=require(_0x569c('0x5'))['db'];var utils=require(_0x569c('0x6'));var logger=require(_0x569c('0x7'))('rpc');var config=require(_0x569c('0x8'));var jayson=require(_0x569c('0x9'));var client=jayson[_0x569c('0xa')][_0x569c('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x5cf920,_0x5c93c3,_0x359aef){return new BPromise(function(_0x1d5c02,_0xd3a65f){return client[_0x569c('0xc')](_0x5cf920,_0x359aef)[_0x569c('0xd')](function(_0x4c714f){logger[_0x569c('0xe')]('VtigerField,\x20%s,\x20%s',_0x5c93c3,_0x569c('0xf'));logger[_0x569c('0x10')]('VtigerField,\x20%s,\x20%s,\x20%s',_0x5c93c3,_0x569c('0xf'),JSON[_0x569c('0x11')](_0x4c714f));if(_0x4c714f['error']){if(_0x4c714f[_0x569c('0x12')][_0x569c('0x13')]===0x1f4){logger['error'](_0x569c('0x14'),_0x5c93c3,_0x4c714f[_0x569c('0x12')][_0x569c('0x15')]);return _0xd3a65f(_0x4c714f[_0x569c('0x12')][_0x569c('0x15')]);}logger[_0x569c('0x12')](_0x569c('0x14'),_0x5c93c3,_0x4c714f[_0x569c('0x12')][_0x569c('0x15')]);return _0x1d5c02(_0x4c714f[_0x569c('0x12')][_0x569c('0x15')]);}else{logger[_0x569c('0xe')](_0x569c('0x14'),_0x5c93c3,'request\x20sent');_0x1d5c02(_0x4c714f[_0x569c('0x16')][_0x569c('0x15')]);}})[_0x569c('0x17')](function(_0x34a9aa){logger[_0x569c('0x12')](_0x569c('0x14'),_0x5c93c3,_0x34a9aa);_0xd3a65f(_0x34a9aa);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5d81=['/:id/configurations','getConfigurations','/:id/fields','create','put','update','delete','exports','multer','util','path','express','Router','fs-extra','../../components/interaction/service','./intZendeskAccount.controller','get','isAuthenticated','index','/:id'];(function(_0x56482c,_0x16118d){var _0x5aae7a=function(_0x52512f){while(--_0x52512f){_0x56482c['push'](_0x56482c['shift']());}};_0x5aae7a(++_0x16118d);}(_0x5d81,0x1c0));var _0x15d8=function(_0x307d86,_0x9264f2){_0x307d86=_0x307d86-0x0;var _0x361745=_0x5d81[_0x307d86];return _0x361745;};'use strict';var multer=require(_0x15d8('0x0'));var util=require(_0x15d8('0x1'));var path=require(_0x15d8('0x2'));var timeout=require('connect-timeout');var express=require(_0x15d8('0x3'));var router=express[_0x15d8('0x4')]();var fs_extra=require(_0x15d8('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x15d8('0x6'));var config=require('../../config/environment');var controller=require(_0x15d8('0x7'));router[_0x15d8('0x8')]('/',auth[_0x15d8('0x9')](),controller[_0x15d8('0xa')]);router[_0x15d8('0x8')](_0x15d8('0xb'),auth[_0x15d8('0x9')](),controller['show']);router[_0x15d8('0x8')](_0x15d8('0xc'),auth['isAuthenticated'](),controller[_0x15d8('0xd')]);router['get'](_0x15d8('0xe'),auth[_0x15d8('0x9')](),controller['getFields']);router['post']('/',auth[_0x15d8('0x9')](),controller[_0x15d8('0xf')]);router['post'](_0x15d8('0xc'),auth['isAuthenticated'](),controller['addConfiguration']);router[_0x15d8('0x10')]('/:id',auth[_0x15d8('0x9')](),controller[_0x15d8('0x11')]);router[_0x15d8('0x12')](_0x15d8('0xb'),auth[_0x15d8('0x9')](),controller['destroy']);module[_0x15d8('0x13')]=router;
\ No newline at end of file
+var _0x95c9=['update','delete','destroy','path','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./intZendeskAccount.controller','get','isAuthenticated','index','/:id','/:id/configurations','getConfigurations','/:id/fields','getFields','post','create','addConfiguration','put'];(function(_0x1acbd3,_0x404331){var _0x50ae1f=function(_0xea2d9a){while(--_0xea2d9a){_0x1acbd3['push'](_0x1acbd3['shift']());}};_0x50ae1f(++_0x404331);}(_0x95c9,0x1e7));var _0x995c=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x95c9[_0x3dd15e];return _0x231fd0;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x995c('0x0'));var timeout=require('connect-timeout');var express=require(_0x995c('0x1'));var router=express['Router']();var fs_extra=require(_0x995c('0x2'));var auth=require(_0x995c('0x3'));var interaction=require(_0x995c('0x4'));var config=require(_0x995c('0x5'));var controller=require(_0x995c('0x6'));router[_0x995c('0x7')]('/',auth[_0x995c('0x8')](),controller[_0x995c('0x9')]);router['get'](_0x995c('0xa'),auth['isAuthenticated'](),controller['show']);router[_0x995c('0x7')](_0x995c('0xb'),auth[_0x995c('0x8')](),controller[_0x995c('0xc')]);router[_0x995c('0x7')](_0x995c('0xd'),auth[_0x995c('0x8')](),controller[_0x995c('0xe')]);router[_0x995c('0xf')]('/',auth[_0x995c('0x8')](),controller[_0x995c('0x10')]);router[_0x995c('0xf')]('/:id/configurations',auth[_0x995c('0x8')](),controller[_0x995c('0x11')]);router[_0x995c('0x12')](_0x995c('0xa'),auth[_0x995c('0x8')](),controller[_0x995c('0x13')]);router[_0x995c('0x14')](_0x995c('0xa'),auth[_0x995c('0x8')](),controller[_0x995c('0x15')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x326f=['integrationTab','newTab','sequelize','STRING','username','remoteUri','ENUM','password','token'];(function(_0x242454,_0x1cf31c){var _0x9c5f5b=function(_0x2fbf0e){while(--_0x2fbf0e){_0x242454['push'](_0x242454['shift']());}};_0x9c5f5b(++_0x1cf31c);}(_0x326f,0xd1));var _0xf326=function(_0x3a289a,_0x2e9b9f){_0x3a289a=_0x3a289a-0x0;var _0x4c9c07=_0x326f[_0x3a289a];return _0x4c9c07;};'use strict';var Sequelize=require(_0xf326('0x0'));module['exports']={'name':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0xf326('0x1')]},'username':{'type':Sequelize[_0xf326('0x1')],'unique':_0xf326('0x2')},'password':{'type':Sequelize[_0xf326('0x1')]},'token':{'type':Sequelize[_0xf326('0x1')]},'remoteUri':{'type':Sequelize[_0xf326('0x1')],'unique':_0xf326('0x3')},'authType':{'type':Sequelize[_0xf326('0x4')](_0xf326('0x5'),_0xf326('0x6')),'defaultValue':'password'},'serverUrl':{'type':Sequelize[_0xf326('0x1')],'allowNull':![]},'type':{'type':Sequelize[_0xf326('0x4')](_0xf326('0x7'),_0xf326('0x8')),'defaultValue':'integrationTab'}};
\ No newline at end of file
+var _0x1751=['STRING','username','remoteUri','ENUM','password','token','integrationTab','newTab','sequelize','exports'];(function(_0x3682d4,_0x45a786){var _0x213aa8=function(_0x26ee85){while(--_0x26ee85){_0x3682d4['push'](_0x3682d4['shift']());}};_0x213aa8(++_0x45a786);}(_0x1751,0x76));var _0x1175=function(_0x3e0cbd,_0x187b43){_0x3e0cbd=_0x3e0cbd-0x0;var _0x3583fe=_0x1751[_0x3e0cbd];return _0x3583fe;};'use strict';var Sequelize=require(_0x1175('0x0'));module[_0x1175('0x1')]={'name':{'type':Sequelize[_0x1175('0x2')]},'description':{'type':Sequelize[_0x1175('0x2')]},'username':{'type':Sequelize['STRING'],'unique':_0x1175('0x3')},'password':{'type':Sequelize[_0x1175('0x2')]},'token':{'type':Sequelize[_0x1175('0x2')]},'remoteUri':{'type':Sequelize[_0x1175('0x2')],'unique':_0x1175('0x4')},'authType':{'type':Sequelize[_0x1175('0x5')](_0x1175('0x6'),_0x1175('0x7')),'defaultValue':_0x1175('0x6')},'serverUrl':{'type':Sequelize[_0x1175('0x2')],'allowNull':![]},'type':{'type':Sequelize[_0x1175('0x5')](_0x1175('0x8'),_0x1175('0x9')),'defaultValue':_0x1175('0x8')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x02ce=['sendStatus','stack','name','send','index','map','ZendeskAccount','rawAttributes','fieldName','type','key','model','keys','query','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','filters','pick','filter','where','VIRTUAL','options','include','findAll','rows','catch','show','params','length','merge','find','create','body','ZendeskConfiguration','getConfigurations','addConfiguration','findOne','channel','getDescriptions','Subjects','ZendeskField','Descriptions','username','password','authType','remoteUri','GET','format','%s/%s','ticket_fields','headers','toString','base64','%s/token:%s','token','Sequelize','ValidationError','subject','description','group','assignee','remove','title','position','system_field_options','custom_field_options','error','getFields,\x20%s,\x20%s,\x20%s','stringify','test','Wrong\x20credentials','statusCode','eml-format','rimraf','zip-dir','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','end','status','offset','limit','undefined','count','set','reject','update','then','destroy'];(function(_0x5e62a0,_0xc335b9){var _0x4a070f=function(_0x33d786){while(--_0x33d786){_0x5e62a0['push'](_0x5e62a0['shift']());}};_0x4a070f(++_0xc335b9);}(_0x02ce,0x1ac));var _0xe02c=function(_0x607839,_0x675676){_0x607839=_0x607839-0x0;var _0x187307=_0x02ce[_0x607839];return _0x187307;};'use strict';var emlformat=require(_0xe02c('0x0'));var rimraf=require(_0xe02c('0x1'));var zipdir=require(_0xe02c('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xe02c('0x3'));var moment=require('moment');var BPromise=require(_0xe02c('0x4'));var Mustache=require(_0xe02c('0x5'));var util=require(_0xe02c('0x6'));var path=require(_0xe02c('0x7'));var sox=require(_0xe02c('0x8'));var csv=require(_0xe02c('0x9'));var ejs=require(_0xe02c('0xa'));var fs=require('fs');var fs_extra=require(_0xe02c('0xb'));var _=require(_0xe02c('0xc'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0xe02c('0xd'));var deskjs=require(_0xe02c('0xe'));var toCsv=require(_0xe02c('0x9'));var querystring=require(_0xe02c('0xf'));var Papa=require(_0xe02c('0x10'));var Redis=require(_0xe02c('0x11'));var authService=require(_0xe02c('0x12'));var qs=require(_0xe02c('0x13'));var as=require(_0xe02c('0x14'));var hardwareService=require(_0xe02c('0x15'));var logger=require(_0xe02c('0x16'))(_0xe02c('0x17'));var utils=require(_0xe02c('0x18'));var config=require(_0xe02c('0x19'));var licenseUtil=require(_0xe02c('0x1a'));var db=require(_0xe02c('0x1b'))['db'];var integrations=require(_0xe02c('0x1c'));function respondWithStatusCode(_0x32fc45,_0x5d6d13){_0x5d6d13=_0x5d6d13||0xcc;return function(_0x43079c){if(_0x43079c){return _0x32fc45['sendStatus'](_0x5d6d13);}return _0x32fc45['status'](_0x5d6d13)[_0xe02c('0x1d')]();};}function respondWithResult(_0x56405a,_0x221910){_0x221910=_0x221910||0xc8;return function(_0x59614c){if(_0x59614c){return _0x56405a[_0xe02c('0x1e')](_0x221910)['json'](_0x59614c);}};}function respondWithFilteredResult(_0x256311,_0x366893){return function(_0x59f2f6){if(_0x59f2f6){var _0x10a2a6=typeof _0x366893[_0xe02c('0x1f')]==='undefined'&&typeof _0x366893[_0xe02c('0x20')]===_0xe02c('0x21');var _0x5a4583=_0x59f2f6['count'];var _0x3e37bf=_0x10a2a6?0x0:_0x366893['offset'];var _0x1f8f37=_0x10a2a6?_0x59f2f6[_0xe02c('0x22')]:_0x366893[_0xe02c('0x1f')]+_0x366893[_0xe02c('0x20')];var _0x3898dc;if(_0x1f8f37>=_0x5a4583){_0x1f8f37=_0x5a4583;_0x3898dc=0xc8;}else{_0x3898dc=0xce;}_0x256311['status'](_0x3898dc);return _0x256311[_0xe02c('0x23')]('Content-Range',_0x3e37bf+'-'+_0x1f8f37+'/'+_0x5a4583)['json'](_0x59f2f6);}return null;};}function patchUpdates(_0x393621){return function(_0x4514ac){try{jsonpatch['apply'](_0x4514ac,_0x393621,!![]);}catch(_0x3fe8f7){return BPromise[_0xe02c('0x24')](_0x3fe8f7);}return _0x4514ac['save']();};}function saveUpdates(_0x38dce2,_0x45fd82){return function(_0x39b00c){if(_0x39b00c){return _0x39b00c[_0xe02c('0x25')](_0x38dce2)[_0xe02c('0x26')](function(_0x557142){return _0x557142;});}return null;};}function removeEntity(_0x3e80e3,_0xf41d4c){return function(_0xeae877){if(_0xeae877){return _0xeae877[_0xe02c('0x27')]()[_0xe02c('0x26')](function(){_0x3e80e3['status'](0xcc)[_0xe02c('0x1d')]();});}};}function handleEntityNotFound(_0x4411d8,_0x3592ca){return function(_0x14ffba){if(!_0x14ffba){_0x4411d8[_0xe02c('0x28')](0x194);}return _0x14ffba;};}function handleError(_0x303d24,_0x43dc78){_0x43dc78=_0x43dc78||0x1f4;return function(_0x1c14d6){logger['error'](_0x1c14d6[_0xe02c('0x29')]);if(_0x1c14d6[_0xe02c('0x2a')]){delete _0x1c14d6[_0xe02c('0x2a')];}_0x303d24['status'](_0x43dc78)[_0xe02c('0x2b')](_0x1c14d6);};}exports[_0xe02c('0x2c')]=function(_0x445421,_0x287f7e){var _0x1e7eab={},_0x35a309={},_0x22a285={'count':0x0,'rows':[]};var _0x1b8f21=_[_0xe02c('0x2d')](db[_0xe02c('0x2e')][_0xe02c('0x2f')],function(_0x5a2da0){return{'name':_0x5a2da0[_0xe02c('0x30')],'type':_0x5a2da0[_0xe02c('0x31')][_0xe02c('0x32')]};});_0x35a309[_0xe02c('0x33')]=_[_0xe02c('0x2d')](_0x1b8f21,_0xe02c('0x2a'));_0x35a309['query']=_[_0xe02c('0x34')](_0x445421[_0xe02c('0x35')]);_0x35a309['filters']=_[_0xe02c('0x36')](_0x35a309[_0xe02c('0x33')],_0x35a309[_0xe02c('0x35')]);_0x1e7eab[_0xe02c('0x37')]=_[_0xe02c('0x36')](_0x35a309['model'],qs['fields'](_0x445421[_0xe02c('0x35')][_0xe02c('0x38')]));_0x1e7eab['attributes']=_0x1e7eab[_0xe02c('0x37')]['length']?_0x1e7eab[_0xe02c('0x37')]:_0x35a309[_0xe02c('0x33')];if(!_0x445421[_0xe02c('0x35')][_0xe02c('0x39')](_0xe02c('0x3a'))){_0x1e7eab['limit']=qs[_0xe02c('0x20')](_0x445421['query'][_0xe02c('0x20')]);_0x1e7eab[_0xe02c('0x1f')]=qs[_0xe02c('0x1f')](_0x445421[_0xe02c('0x35')][_0xe02c('0x1f')]);}_0x1e7eab[_0xe02c('0x3b')]=qs['sort'](_0x445421[_0xe02c('0x35')][_0xe02c('0x3c')]);_0x1e7eab['where']=qs[_0xe02c('0x3d')](_[_0xe02c('0x3e')](_0x445421['query'],_0x35a309[_0xe02c('0x3d')]),_0x1b8f21);if(_0x445421['query'][_0xe02c('0x3f')]){_0x1e7eab[_0xe02c('0x40')]=_['merge'](_0x1e7eab[_0xe02c('0x40')],{'$or':_[_0xe02c('0x2d')](_0x1b8f21,function(_0x2502c8){if(_0x2502c8[_0xe02c('0x31')]!==_0xe02c('0x41')){var _0x28922a={};_0x28922a[_0x2502c8['name']]={'$like':'%'+_0x445421[_0xe02c('0x35')]['filter']+'%'};return _0x28922a;}})});}_0x1e7eab=_['merge']({},_0x1e7eab,_0x445421[_0xe02c('0x42')]);var _0x1095fb={'where':_0x1e7eab[_0xe02c('0x40')]};return db[_0xe02c('0x2e')]['count'](_0x1095fb)[_0xe02c('0x26')](function(_0x17830e){_0x22a285[_0xe02c('0x22')]=_0x17830e;if(_0x445421['query']['includeAll']){_0x1e7eab[_0xe02c('0x43')]=[{'all':!![]}];}return db[_0xe02c('0x2e')][_0xe02c('0x44')](_0x1e7eab);})[_0xe02c('0x26')](function(_0x1b0876){_0x22a285[_0xe02c('0x45')]=_0x1b0876;return _0x22a285;})[_0xe02c('0x26')](respondWithFilteredResult(_0x287f7e,_0x1e7eab))[_0xe02c('0x46')](handleError(_0x287f7e,null));};exports[_0xe02c('0x47')]=function(_0x53d123,_0xc7e935){var _0x5ef4a1={'raw':![],'where':{'id':_0x53d123[_0xe02c('0x48')]['id']}},_0x4d4be5={};_0x4d4be5[_0xe02c('0x33')]=_[_0xe02c('0x34')](db[_0xe02c('0x2e')][_0xe02c('0x2f')]);_0x4d4be5[_0xe02c('0x35')]=_[_0xe02c('0x34')](_0x53d123[_0xe02c('0x35')]);_0x4d4be5['filters']=_['intersection'](_0x4d4be5[_0xe02c('0x33')],_0x4d4be5[_0xe02c('0x35')]);_0x5ef4a1[_0xe02c('0x37')]=_['intersection'](_0x4d4be5[_0xe02c('0x33')],qs[_0xe02c('0x38')](_0x53d123[_0xe02c('0x35')][_0xe02c('0x38')]));_0x5ef4a1[_0xe02c('0x37')]=_0x5ef4a1[_0xe02c('0x37')][_0xe02c('0x49')]?_0x5ef4a1[_0xe02c('0x37')]:_0x4d4be5[_0xe02c('0x33')];if(_0x53d123[_0xe02c('0x35')]['includeAll']){_0x5ef4a1[_0xe02c('0x43')]=[{'all':!![]}];}_0x5ef4a1=_[_0xe02c('0x4a')]({},_0x5ef4a1,_0x53d123[_0xe02c('0x42')]);return db[_0xe02c('0x2e')][_0xe02c('0x4b')](_0x5ef4a1)[_0xe02c('0x26')](handleEntityNotFound(_0xc7e935,null))[_0xe02c('0x26')](respondWithResult(_0xc7e935,null))[_0xe02c('0x46')](handleError(_0xc7e935,null));};exports[_0xe02c('0x4c')]=function(_0x1176c9,_0xfed475){return db[_0xe02c('0x2e')][_0xe02c('0x4c')](_0x1176c9['body'],{})[_0xe02c('0x26')](respondWithResult(_0xfed475,0xc9))['catch'](handleError(_0xfed475,null));};exports[_0xe02c('0x25')]=function(_0x324911,_0x45a6df){if(_0x324911[_0xe02c('0x4d')]['id']){delete _0x324911[_0xe02c('0x4d')]['id'];}return db[_0xe02c('0x2e')][_0xe02c('0x4b')]({'where':{'id':_0x324911[_0xe02c('0x48')]['id']}})[_0xe02c('0x26')](handleEntityNotFound(_0x45a6df,null))[_0xe02c('0x26')](saveUpdates(_0x324911['body'],null))[_0xe02c('0x26')](respondWithResult(_0x45a6df,null))[_0xe02c('0x46')](handleError(_0x45a6df,null));};exports[_0xe02c('0x27')]=function(_0x536cf7,_0xdab6cb){return db['ZendeskAccount'][_0xe02c('0x4b')]({'where':{'id':_0x536cf7['params']['id']}})['then'](handleEntityNotFound(_0xdab6cb,null))['then'](removeEntity(_0xdab6cb,null))['catch'](handleError(_0xdab6cb,null));};exports['getConfigurations']=function(_0x5740df,_0x107f3f,_0x3ac0a5){var _0x1510aa={};var _0x35fbe2={};var _0x5d963d;var _0x274beb;return db[_0xe02c('0x2e')]['findOne']({'where':{'id':_0x5740df[_0xe02c('0x48')]['id']}})[_0xe02c('0x26')](handleEntityNotFound(_0x107f3f,null))[_0xe02c('0x26')](function(_0x51f940){if(_0x51f940){_0x5d963d=_0x51f940;_0x35fbe2['model']=_[_0xe02c('0x34')](db[_0xe02c('0x4e')][_0xe02c('0x2f')]);_0x35fbe2['query']=_[_0xe02c('0x34')](_0x5740df['query']);_0x35fbe2['filters']=_[_0xe02c('0x36')](_0x35fbe2[_0xe02c('0x33')],_0x35fbe2['query']);_0x1510aa[_0xe02c('0x37')]=_[_0xe02c('0x36')](_0x35fbe2[_0xe02c('0x33')],qs['fields'](_0x5740df[_0xe02c('0x35')][_0xe02c('0x38')]));_0x1510aa['attributes']=_0x1510aa[_0xe02c('0x37')][_0xe02c('0x49')]?_0x1510aa[_0xe02c('0x37')]:_0x35fbe2[_0xe02c('0x33')];_0x1510aa[_0xe02c('0x3b')]=qs[_0xe02c('0x3c')](_0x5740df[_0xe02c('0x35')][_0xe02c('0x3c')]);_0x1510aa[_0xe02c('0x40')]=qs['filters'](_['pick'](_0x5740df['query'],_0x35fbe2[_0xe02c('0x3d')]));if(_0x5740df[_0xe02c('0x35')][_0xe02c('0x3f')]){_0x1510aa['where']=_['merge'](_0x1510aa[_0xe02c('0x40')],{'$or':_[_0xe02c('0x2d')](_0x1510aa[_0xe02c('0x37')],function(_0xb50cfa){var _0xe02798={};_0xe02798[_0xb50cfa]={'$like':'%'+_0x5740df['query'][_0xe02c('0x3f')]+'%'};return _0xe02798;})});}_0x1510aa=_[_0xe02c('0x4a')]({},_0x1510aa,_0x5740df['options']);return _0x5d963d['getConfigurations'](_0x1510aa);}})[_0xe02c('0x26')](function(_0x566204){if(_0x566204){_0x274beb=_0x566204['length'];if(!_0x5740df['query'][_0xe02c('0x39')](_0xe02c('0x3a'))){_0x1510aa[_0xe02c('0x20')]=qs[_0xe02c('0x20')](_0x5740df[_0xe02c('0x35')][_0xe02c('0x20')]);_0x1510aa['offset']=qs[_0xe02c('0x1f')](_0x5740df['query']['offset']);}return _0x5d963d[_0xe02c('0x4f')](_0x1510aa);}})[_0xe02c('0x26')](function(_0x44ba68){if(_0x44ba68){return _0x44ba68?{'count':_0x274beb,'rows':_0x44ba68}:null;}})[_0xe02c('0x26')](respondWithResult(_0x107f3f,null))['catch'](handleError(_0x107f3f,null));};exports[_0xe02c('0x50')]=function(_0x31c287,_0x5d2119,_0xa7133f){if(_0x31c287[_0xe02c('0x4d')]['id']){delete _0x31c287['body']['id'];}return db[_0xe02c('0x2e')][_0xe02c('0x51')]({'where':{'id':_0x31c287[_0xe02c('0x48')]['id']}})[_0xe02c('0x26')](handleEntityNotFound(_0x5d2119,null))[_0xe02c('0x26')](function(_0x3a62a2){if(_0x3a62a2){_0x31c287[_0xe02c('0x4d')]['AccountId']=_0x3a62a2['id'];_0x31c287[_0xe02c('0x4d')]['Subjects']=integrations['getSubjects'](_0x31c287['body'][_0xe02c('0x52')],_0x31c287[_0xe02c('0x4d')][_0xe02c('0x31')]);_0x31c287[_0xe02c('0x4d')]['Descriptions']=integrations[_0xe02c('0x53')](_0x31c287[_0xe02c('0x4d')]['channel'],_0x31c287['body']['type']);return db[_0xe02c('0x4e')][_0xe02c('0x4c')](_0x31c287['body'],{'include':[{'model':db['ZendeskField'],'as':_0xe02c('0x54')},{'model':db[_0xe02c('0x55')],'as':_0xe02c('0x56')}]});}return null;})[_0xe02c('0x26')](respondWithResult(_0x5d2119,null))[_0xe02c('0x46')](handleError(_0x5d2119,null));};exports['getFields']=function(_0x39c7db,_0x12ac9f,_0x3f277b){var _0x2776c0='';return db[_0xe02c('0x2e')][_0xe02c('0x51')]({'where':{'id':_0x39c7db['params']['id']},'attributes':['id',_0xe02c('0x57'),_0xe02c('0x58'),'token',_0xe02c('0x59'),_0xe02c('0x5a')]})[_0xe02c('0x26')](handleEntityNotFound(_0x12ac9f,null))[_0xe02c('0x26')](function(_0x5d2455){if(_0x5d2455){_0x2776c0=_0x5d2455[_0xe02c('0x5a')];var _0x2229ae=_0x2776c0['slice'](-0x1);if(_0x2229ae==='/'){_0x2776c0=_0x2776c0['substring'](0x0,_0x2776c0['lastIndexOf'](_0x2229ae));}var _0x43977c={'method':_0xe02c('0x5b'),'uri':util[_0xe02c('0x5c')](_0xe02c('0x5d'),_0x2776c0,_0xe02c('0x5e')),'json':!![]};switch(_0x5d2455['authType']){case _0xe02c('0x58'):_0x43977c[_0xe02c('0x5f')]={'Authorization':util[_0xe02c('0x5c')]('Basic\x20%s',new Buffer(util['format']('%s:%s',_0x5d2455[_0xe02c('0x57')],_0x5d2455[_0xe02c('0x58')]))[_0xe02c('0x60')](_0xe02c('0x61')))};break;case'token':_0x43977c[_0xe02c('0x5f')]={'Authorization':util['format']('Basic\x20%s',new Buffer(util[_0xe02c('0x5c')](_0xe02c('0x62'),_0x5d2455[_0xe02c('0x57')],_0x5d2455[_0xe02c('0x63')]))[_0xe02c('0x60')](_0xe02c('0x61')))};break;default:throw new db[(_0xe02c('0x64'))][(_0xe02c('0x65'))]('Unknown\x20authentication\x20type');}return rp(_0x43977c);}})[_0xe02c('0x26')](function(_0x21049f){if(_0x21049f){var _0x2386cf=[_0xe02c('0x66'),_0xe02c('0x67'),_0xe02c('0x68'),_0xe02c('0x69')];_[_0xe02c('0x6a')](_0x21049f[_0xe02c('0x5e')],function(_0x411cd5){return _0x2386cf['includes'](_0x411cd5['type']);});return{'count':_0x21049f[_0xe02c('0x5e')][_0xe02c('0x49')],'rows':_[_0xe02c('0x2d')](_0x21049f[_0xe02c('0x5e')],function(_0x108566){return{'id':_0x108566['id'],'name':_0x108566['position']>0x7?_0x108566[_0xe02c('0x6b')]:_0x108566[_0xe02c('0x31')],'custom':_0x108566[_0xe02c('0x6c')]>0x7?!![]:![],'options':_0x108566[_0xe02c('0x6d')]?_0x108566[_0xe02c('0x6d')]:_0x108566[_0xe02c('0x6e')]?_0x108566[_0xe02c('0x6e')]:[]};})};}})[_0xe02c('0x26')](respondWithResult(_0x12ac9f,null))[_0xe02c('0x46')](function(_0x159f58){var _0x287eca=_0x39c7db[_0xe02c('0x35')]['test']?0x1f4:_0x159f58['statusCode']||0x1f4;logger[_0xe02c('0x6f')](_0xe02c('0x70'),'getFields',_0x287eca,JSON[_0xe02c('0x71')](_0x159f58));delete _0x159f58['name'];if(_0x287eca===0x191){_0x287eca=0x190;}_0x12ac9f[_0xe02c('0x1e')](_0x287eca)['send'](_0x39c7db[_0xe02c('0x35')][_0xe02c('0x72')]?{'message':_0xe02c('0x73'),'statusCode':_0x159f58[_0xe02c('0x74')]}:_0x159f58);});};
\ No newline at end of file
+var _0x0bb5=['offset','limit','undefined','count','set','json','reject','save','update','then','stack','name','send','index','map','rawAttributes','fieldName','type','key','model','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','filter','options','ZendeskAccount','include','findAll','rows','catch','show','params','includeAll','create','body','find','destroy','getConfigurations','findOne','ZendeskConfiguration','addConfiguration','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','ZendeskField','username','password','authType','remoteUri','substring','GET','%s/%s','ticket_fields','headers','format','Basic\x20%s','token','%s/token:%s','Sequelize','ValidationError','Unknown\x20authentication\x20type','description','group','assignee','remove','includes','position','title','system_field_options','custom_field_options','test','getFields,\x20%s,\x20%s,\x20%s','getFields','stringify','Wrong\x20credentials','statusCode','eml-format','rimraf','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../components/integrations/configuration','sendStatus','end','status'];(function(_0x45bec8,_0x5933f7){var _0x5ab1d0=function(_0x45c2a7){while(--_0x45c2a7){_0x45bec8['push'](_0x45bec8['shift']());}};_0x5ab1d0(++_0x5933f7);}(_0x0bb5,0x148));var _0x50bb=function(_0xe47eaf,_0x1e810a){_0xe47eaf=_0xe47eaf-0x0;var _0x375fe2=_0x0bb5[_0xe47eaf];return _0x375fe2;};'use strict';var emlformat=require(_0x50bb('0x0'));var rimraf=require(_0x50bb('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x50bb('0x2'));var moment=require(_0x50bb('0x3'));var BPromise=require(_0x50bb('0x4'));var Mustache=require(_0x50bb('0x5'));var util=require(_0x50bb('0x6'));var path=require(_0x50bb('0x7'));var sox=require(_0x50bb('0x8'));var csv=require(_0x50bb('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x50bb('0xa'));var squel=require(_0x50bb('0xb'));var crypto=require(_0x50bb('0xc'));var jsforce=require(_0x50bb('0xd'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x50bb('0xe'));var Papa=require(_0x50bb('0xf'));var Redis=require(_0x50bb('0x10'));var authService=require(_0x50bb('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0x50bb('0x12'));var hardwareService=require(_0x50bb('0x13'));var logger=require(_0x50bb('0x14'))(_0x50bb('0x15'));var utils=require(_0x50bb('0x16'));var config=require(_0x50bb('0x17'));var licenseUtil=require(_0x50bb('0x18'));var db=require('../../mysqldb')['db'];var integrations=require(_0x50bb('0x19'));function respondWithStatusCode(_0x58837d,_0x283f04){_0x283f04=_0x283f04||0xcc;return function(_0xd8ab27){if(_0xd8ab27){return _0x58837d[_0x50bb('0x1a')](_0x283f04);}return _0x58837d['status'](_0x283f04)[_0x50bb('0x1b')]();};}function respondWithResult(_0x309986,_0x3094f2){_0x3094f2=_0x3094f2||0xc8;return function(_0x5244b0){if(_0x5244b0){return _0x309986[_0x50bb('0x1c')](_0x3094f2)['json'](_0x5244b0);}};}function respondWithFilteredResult(_0x21befa,_0x3e1a51){return function(_0x253073){if(_0x253073){var _0x42ffab=typeof _0x3e1a51[_0x50bb('0x1d')]==='undefined'&&typeof _0x3e1a51[_0x50bb('0x1e')]===_0x50bb('0x1f');var _0x4b1f5f=_0x253073[_0x50bb('0x20')];var _0x4796ec=_0x42ffab?0x0:_0x3e1a51[_0x50bb('0x1d')];var _0x431ed4=_0x42ffab?_0x253073['count']:_0x3e1a51['offset']+_0x3e1a51[_0x50bb('0x1e')];var _0x1499dc;if(_0x431ed4>=_0x4b1f5f){_0x431ed4=_0x4b1f5f;_0x1499dc=0xc8;}else{_0x1499dc=0xce;}_0x21befa[_0x50bb('0x1c')](_0x1499dc);return _0x21befa[_0x50bb('0x21')]('Content-Range',_0x4796ec+'-'+_0x431ed4+'/'+_0x4b1f5f)[_0x50bb('0x22')](_0x253073);}return null;};}function patchUpdates(_0x32bfc3){return function(_0x4020a0){try{jsonpatch['apply'](_0x4020a0,_0x32bfc3,!![]);}catch(_0x3104c8){return BPromise[_0x50bb('0x23')](_0x3104c8);}return _0x4020a0[_0x50bb('0x24')]();};}function saveUpdates(_0x4825f8,_0x1dbba2){return function(_0x4cc7f9){if(_0x4cc7f9){return _0x4cc7f9[_0x50bb('0x25')](_0x4825f8)[_0x50bb('0x26')](function(_0x1a2a0b){return _0x1a2a0b;});}return null;};}function removeEntity(_0x2ee87a,_0x846311){return function(_0x342078){if(_0x342078){return _0x342078['destroy']()[_0x50bb('0x26')](function(){_0x2ee87a[_0x50bb('0x1c')](0xcc)[_0x50bb('0x1b')]();});}};}function handleEntityNotFound(_0x3462c1,_0x5234d7){return function(_0x75fea6){if(!_0x75fea6){_0x3462c1['sendStatus'](0x194);}return _0x75fea6;};}function handleError(_0x55e87b,_0x2befd9){_0x2befd9=_0x2befd9||0x1f4;return function(_0x491632){logger['error'](_0x491632[_0x50bb('0x27')]);if(_0x491632[_0x50bb('0x28')]){delete _0x491632[_0x50bb('0x28')];}_0x55e87b[_0x50bb('0x1c')](_0x2befd9)[_0x50bb('0x29')](_0x491632);};}exports[_0x50bb('0x2a')]=function(_0x41a8ad,_0x41d479){var _0x4f7514={},_0x44ce86={},_0x461cf3={'count':0x0,'rows':[]};var _0x15ee2e=_[_0x50bb('0x2b')](db['ZendeskAccount'][_0x50bb('0x2c')],function(_0x1a62fb){return{'name':_0x1a62fb[_0x50bb('0x2d')],'type':_0x1a62fb[_0x50bb('0x2e')][_0x50bb('0x2f')]};});_0x44ce86[_0x50bb('0x30')]=_[_0x50bb('0x2b')](_0x15ee2e,_0x50bb('0x28'));_0x44ce86[_0x50bb('0x31')]=_[_0x50bb('0x32')](_0x41a8ad[_0x50bb('0x31')]);_0x44ce86[_0x50bb('0x33')]=_['intersection'](_0x44ce86[_0x50bb('0x30')],_0x44ce86[_0x50bb('0x31')]);_0x4f7514[_0x50bb('0x34')]=_[_0x50bb('0x35')](_0x44ce86[_0x50bb('0x30')],qs[_0x50bb('0x36')](_0x41a8ad[_0x50bb('0x31')][_0x50bb('0x36')]));_0x4f7514[_0x50bb('0x34')]=_0x4f7514[_0x50bb('0x34')][_0x50bb('0x37')]?_0x4f7514['attributes']:_0x44ce86[_0x50bb('0x30')];if(!_0x41a8ad[_0x50bb('0x31')][_0x50bb('0x38')](_0x50bb('0x39'))){_0x4f7514[_0x50bb('0x1e')]=qs[_0x50bb('0x1e')](_0x41a8ad['query']['limit']);_0x4f7514[_0x50bb('0x1d')]=qs['offset'](_0x41a8ad[_0x50bb('0x31')][_0x50bb('0x1d')]);}_0x4f7514[_0x50bb('0x3a')]=qs[_0x50bb('0x3b')](_0x41a8ad[_0x50bb('0x31')]['sort']);_0x4f7514[_0x50bb('0x3c')]=qs['filters'](_[_0x50bb('0x3d')](_0x41a8ad[_0x50bb('0x31')],_0x44ce86[_0x50bb('0x33')]),_0x15ee2e);if(_0x41a8ad['query']['filter']){_0x4f7514[_0x50bb('0x3c')]=_[_0x50bb('0x3e')](_0x4f7514[_0x50bb('0x3c')],{'$or':_[_0x50bb('0x2b')](_0x15ee2e,function(_0x51750b){if(_0x51750b[_0x50bb('0x2e')]!=='VIRTUAL'){var _0x52059b={};_0x52059b[_0x51750b[_0x50bb('0x28')]]={'$like':'%'+_0x41a8ad['query'][_0x50bb('0x3f')]+'%'};return _0x52059b;}})});}_0x4f7514=_[_0x50bb('0x3e')]({},_0x4f7514,_0x41a8ad[_0x50bb('0x40')]);var _0x1f156e={'where':_0x4f7514[_0x50bb('0x3c')]};return db[_0x50bb('0x41')][_0x50bb('0x20')](_0x1f156e)[_0x50bb('0x26')](function(_0x46039a){_0x461cf3[_0x50bb('0x20')]=_0x46039a;if(_0x41a8ad['query']['includeAll']){_0x4f7514[_0x50bb('0x42')]=[{'all':!![]}];}return db[_0x50bb('0x41')][_0x50bb('0x43')](_0x4f7514);})[_0x50bb('0x26')](function(_0x5e8085){_0x461cf3[_0x50bb('0x44')]=_0x5e8085;return _0x461cf3;})['then'](respondWithFilteredResult(_0x41d479,_0x4f7514))[_0x50bb('0x45')](handleError(_0x41d479,null));};exports[_0x50bb('0x46')]=function(_0x379944,_0x40748d){var _0x1c438b={'raw':![],'where':{'id':_0x379944[_0x50bb('0x47')]['id']}},_0x355726={};_0x355726[_0x50bb('0x30')]=_[_0x50bb('0x32')](db[_0x50bb('0x41')][_0x50bb('0x2c')]);_0x355726[_0x50bb('0x31')]=_[_0x50bb('0x32')](_0x379944[_0x50bb('0x31')]);_0x355726[_0x50bb('0x33')]=_[_0x50bb('0x35')](_0x355726['model'],_0x355726[_0x50bb('0x31')]);_0x1c438b['attributes']=_[_0x50bb('0x35')](_0x355726[_0x50bb('0x30')],qs[_0x50bb('0x36')](_0x379944[_0x50bb('0x31')][_0x50bb('0x36')]));_0x1c438b[_0x50bb('0x34')]=_0x1c438b[_0x50bb('0x34')][_0x50bb('0x37')]?_0x1c438b[_0x50bb('0x34')]:_0x355726[_0x50bb('0x30')];if(_0x379944[_0x50bb('0x31')][_0x50bb('0x48')]){_0x1c438b[_0x50bb('0x42')]=[{'all':!![]}];}_0x1c438b=_[_0x50bb('0x3e')]({},_0x1c438b,_0x379944['options']);return db[_0x50bb('0x41')]['find'](_0x1c438b)[_0x50bb('0x26')](handleEntityNotFound(_0x40748d,null))[_0x50bb('0x26')](respondWithResult(_0x40748d,null))[_0x50bb('0x45')](handleError(_0x40748d,null));};exports[_0x50bb('0x49')]=function(_0x650e91,_0x39ac1a){return db[_0x50bb('0x41')][_0x50bb('0x49')](_0x650e91['body'],{})[_0x50bb('0x26')](respondWithResult(_0x39ac1a,0xc9))[_0x50bb('0x45')](handleError(_0x39ac1a,null));};exports[_0x50bb('0x25')]=function(_0x13afe2,_0x3659c4){if(_0x13afe2['body']['id']){delete _0x13afe2[_0x50bb('0x4a')]['id'];}return db[_0x50bb('0x41')][_0x50bb('0x4b')]({'where':{'id':_0x13afe2[_0x50bb('0x47')]['id']}})[_0x50bb('0x26')](handleEntityNotFound(_0x3659c4,null))['then'](saveUpdates(_0x13afe2['body'],null))[_0x50bb('0x26')](respondWithResult(_0x3659c4,null))['catch'](handleError(_0x3659c4,null));};exports[_0x50bb('0x4c')]=function(_0x57ee0e,_0x4316e4){return db[_0x50bb('0x41')][_0x50bb('0x4b')]({'where':{'id':_0x57ee0e['params']['id']}})[_0x50bb('0x26')](handleEntityNotFound(_0x4316e4,null))[_0x50bb('0x26')](removeEntity(_0x4316e4,null))['catch'](handleError(_0x4316e4,null));};exports[_0x50bb('0x4d')]=function(_0x1dff6a,_0x8d62af,_0x3c525c){var _0x55a4a6={};var _0x33e71f={};var _0x46b51e;var _0x2e0032;return db[_0x50bb('0x41')][_0x50bb('0x4e')]({'where':{'id':_0x1dff6a['params']['id']}})[_0x50bb('0x26')](handleEntityNotFound(_0x8d62af,null))['then'](function(_0x38a775){if(_0x38a775){_0x46b51e=_0x38a775;_0x33e71f['model']=_['keys'](db[_0x50bb('0x4f')]['rawAttributes']);_0x33e71f['query']=_[_0x50bb('0x32')](_0x1dff6a[_0x50bb('0x31')]);_0x33e71f[_0x50bb('0x33')]=_[_0x50bb('0x35')](_0x33e71f[_0x50bb('0x30')],_0x33e71f[_0x50bb('0x31')]);_0x55a4a6[_0x50bb('0x34')]=_[_0x50bb('0x35')](_0x33e71f['model'],qs['fields'](_0x1dff6a[_0x50bb('0x31')][_0x50bb('0x36')]));_0x55a4a6[_0x50bb('0x34')]=_0x55a4a6[_0x50bb('0x34')][_0x50bb('0x37')]?_0x55a4a6[_0x50bb('0x34')]:_0x33e71f[_0x50bb('0x30')];_0x55a4a6['order']=qs[_0x50bb('0x3b')](_0x1dff6a[_0x50bb('0x31')][_0x50bb('0x3b')]);_0x55a4a6[_0x50bb('0x3c')]=qs[_0x50bb('0x33')](_['pick'](_0x1dff6a[_0x50bb('0x31')],_0x33e71f[_0x50bb('0x33')]));if(_0x1dff6a[_0x50bb('0x31')][_0x50bb('0x3f')]){_0x55a4a6[_0x50bb('0x3c')]=_['merge'](_0x55a4a6[_0x50bb('0x3c')],{'$or':_['map'](_0x55a4a6['attributes'],function(_0x170761){var _0x3057f2={};_0x3057f2[_0x170761]={'$like':'%'+_0x1dff6a[_0x50bb('0x31')][_0x50bb('0x3f')]+'%'};return _0x3057f2;})});}_0x55a4a6=_[_0x50bb('0x3e')]({},_0x55a4a6,_0x1dff6a[_0x50bb('0x40')]);return _0x46b51e[_0x50bb('0x4d')](_0x55a4a6);}})[_0x50bb('0x26')](function(_0x330299){if(_0x330299){_0x2e0032=_0x330299[_0x50bb('0x37')];if(!_0x1dff6a[_0x50bb('0x31')]['hasOwnProperty'](_0x50bb('0x39'))){_0x55a4a6['limit']=qs[_0x50bb('0x1e')](_0x1dff6a[_0x50bb('0x31')]['limit']);_0x55a4a6[_0x50bb('0x1d')]=qs[_0x50bb('0x1d')](_0x1dff6a[_0x50bb('0x31')][_0x50bb('0x1d')]);}return _0x46b51e[_0x50bb('0x4d')](_0x55a4a6);}})[_0x50bb('0x26')](function(_0x2b7df6){if(_0x2b7df6){return _0x2b7df6?{'count':_0x2e0032,'rows':_0x2b7df6}:null;}})[_0x50bb('0x26')](respondWithResult(_0x8d62af,null))['catch'](handleError(_0x8d62af,null));};exports[_0x50bb('0x50')]=function(_0x2dc832,_0x3b17c8,_0x4a226d){if(_0x2dc832[_0x50bb('0x4a')]['id']){delete _0x2dc832[_0x50bb('0x4a')]['id'];}return db[_0x50bb('0x41')][_0x50bb('0x4e')]({'where':{'id':_0x2dc832[_0x50bb('0x47')]['id']}})[_0x50bb('0x26')](handleEntityNotFound(_0x3b17c8,null))['then'](function(_0xf47641){if(_0xf47641){_0x2dc832[_0x50bb('0x4a')][_0x50bb('0x51')]=_0xf47641['id'];_0x2dc832[_0x50bb('0x4a')][_0x50bb('0x52')]=integrations[_0x50bb('0x53')](_0x2dc832['body'][_0x50bb('0x54')],_0x2dc832[_0x50bb('0x4a')][_0x50bb('0x2e')]);_0x2dc832[_0x50bb('0x4a')][_0x50bb('0x55')]=integrations[_0x50bb('0x56')](_0x2dc832[_0x50bb('0x4a')][_0x50bb('0x54')],_0x2dc832[_0x50bb('0x4a')]['type']);return db[_0x50bb('0x4f')][_0x50bb('0x49')](_0x2dc832[_0x50bb('0x4a')],{'include':[{'model':db[_0x50bb('0x57')],'as':_0x50bb('0x52')},{'model':db[_0x50bb('0x57')],'as':_0x50bb('0x55')}]});}return null;})[_0x50bb('0x26')](respondWithResult(_0x3b17c8,null))[_0x50bb('0x45')](handleError(_0x3b17c8,null));};exports['getFields']=function(_0x58ad41,_0x5babbc,_0x4159ad){var _0x5ba597='';return db['ZendeskAccount'][_0x50bb('0x4e')]({'where':{'id':_0x58ad41[_0x50bb('0x47')]['id']},'attributes':['id',_0x50bb('0x58'),_0x50bb('0x59'),'token',_0x50bb('0x5a'),_0x50bb('0x5b')]})['then'](handleEntityNotFound(_0x5babbc,null))[_0x50bb('0x26')](function(_0x51e64f){if(_0x51e64f){_0x5ba597=_0x51e64f[_0x50bb('0x5b')];var _0x239a82=_0x5ba597['slice'](-0x1);if(_0x239a82==='/'){_0x5ba597=_0x5ba597[_0x50bb('0x5c')](0x0,_0x5ba597['lastIndexOf'](_0x239a82));}var _0x8f5df6={'method':_0x50bb('0x5d'),'uri':util['format'](_0x50bb('0x5e'),_0x5ba597,_0x50bb('0x5f')),'json':!![]};switch(_0x51e64f[_0x50bb('0x5a')]){case'password':_0x8f5df6[_0x50bb('0x60')]={'Authorization':util[_0x50bb('0x61')](_0x50bb('0x62'),new Buffer(util[_0x50bb('0x61')]('%s:%s',_0x51e64f[_0x50bb('0x58')],_0x51e64f[_0x50bb('0x59')]))['toString']('base64'))};break;case _0x50bb('0x63'):_0x8f5df6[_0x50bb('0x60')]={'Authorization':util['format'](_0x50bb('0x62'),new Buffer(util[_0x50bb('0x61')](_0x50bb('0x64'),_0x51e64f[_0x50bb('0x58')],_0x51e64f[_0x50bb('0x63')]))['toString']('base64'))};break;default:throw new db[(_0x50bb('0x65'))][(_0x50bb('0x66'))](_0x50bb('0x67'));}return rp(_0x8f5df6);}})[_0x50bb('0x26')](function(_0x4b51d4){if(_0x4b51d4){var _0x1975f7=['subject',_0x50bb('0x68'),_0x50bb('0x69'),_0x50bb('0x6a')];_[_0x50bb('0x6b')](_0x4b51d4[_0x50bb('0x5f')],function(_0x217170){return _0x1975f7[_0x50bb('0x6c')](_0x217170['type']);});return{'count':_0x4b51d4[_0x50bb('0x5f')][_0x50bb('0x37')],'rows':_[_0x50bb('0x2b')](_0x4b51d4[_0x50bb('0x5f')],function(_0x5d2dc4){return{'id':_0x5d2dc4['id'],'name':_0x5d2dc4[_0x50bb('0x6d')]>0x7?_0x5d2dc4[_0x50bb('0x6e')]:_0x5d2dc4['type'],'custom':_0x5d2dc4[_0x50bb('0x6d')]>0x7?!![]:![],'options':_0x5d2dc4[_0x50bb('0x6f')]?_0x5d2dc4[_0x50bb('0x6f')]:_0x5d2dc4[_0x50bb('0x70')]?_0x5d2dc4[_0x50bb('0x70')]:[]};})};}})['then'](respondWithResult(_0x5babbc,null))['catch'](function(_0x145cf8){var _0x47e80f=_0x58ad41[_0x50bb('0x31')][_0x50bb('0x71')]?0x1f4:_0x145cf8['statusCode']||0x1f4;logger['error'](_0x50bb('0x72'),_0x50bb('0x73'),_0x47e80f,JSON[_0x50bb('0x74')](_0x145cf8));delete _0x145cf8['name'];if(_0x47e80f===0x191){_0x47e80f=0x190;}_0x5babbc[_0x50bb('0x1c')](_0x47e80f)[_0x50bb('0x29')](_0x58ad41[_0x50bb('0x31')][_0x50bb('0x71')]?{'message':_0x50bb('0x75'),'statusCode':_0x145cf8[_0x50bb('0x76')]}:_0x145cf8);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb83e=['path','rimraf','./intZendeskAccount.attributes','../../components/integrations/configuration','exports','define','ZendeskAccount','int_zendesk_accounts','../../config/logger','api','moment','bluebird','request-promise'];(function(_0x22ffbf,_0x16f31e){var _0x360c17=function(_0x40807f){while(--_0x40807f){_0x22ffbf['push'](_0x22ffbf['shift']());}};_0x360c17(++_0x16f31e);}(_0xb83e,0x1c2));var _0xeb83=function(_0x8c4b43,_0xd43984){_0x8c4b43=_0x8c4b43-0x0;var _0x56cf12=_0xb83e[_0x8c4b43];return _0x56cf12;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0xeb83('0x0'))(_0xeb83('0x1'));var moment=require(_0xeb83('0x2'));var BPromise=require(_0xeb83('0x3'));var rp=require(_0xeb83('0x4'));var fs=require('fs');var path=require(_0xeb83('0x5'));var rimraf=require(_0xeb83('0x6'));var config=require('../../config/environment');var attributes=require(_0xeb83('0x7'));var integrations=require(_0xeb83('0x8'));module[_0xeb83('0x9')]=function(_0x4864cb,_0x1281ef){return _0x4864cb[_0xeb83('0xa')](_0xeb83('0xb'),attributes,{'tableName':_0xeb83('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xed45=['./intZendeskAccount.attributes','../../components/integrations/configuration','exports','int_zendesk_accounts','../../config/logger','api','moment','path','../../config/environment'];(function(_0x5ecb61,_0x5a6851){var _0x1dcfb0=function(_0x377f1f){while(--_0x377f1f){_0x5ecb61['push'](_0x5ecb61['shift']());}};_0x1dcfb0(++_0x5a6851);}(_0xed45,0x8b));var _0x5ed4=function(_0xbca1b1,_0x33f0ce){_0xbca1b1=_0xbca1b1-0x0;var _0x4e1686=_0xed45[_0xbca1b1];return _0x4e1686;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x5ed4('0x0'))(_0x5ed4('0x1'));var moment=require(_0x5ed4('0x2'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0x5ed4('0x3'));var rimraf=require('rimraf');var config=require(_0x5ed4('0x4'));var attributes=require(_0x5ed4('0x5'));var integrations=require(_0x5ed4('0x6'));module[_0x5ed4('0x7')]=function(_0x44f260,_0x33dbd7){return _0x44f260['define']('ZendeskAccount',attributes,{'tableName':_0x5ed4('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x696f=['request\x20sent','ZendeskAccount,\x20%s,\x20%s,\x20%s','error','code','message','result','ZendeskAccount','findAll','options','raw','where','attributes','map','include','model','GetZendeskAccount','debug','stringify','catch','ShowZendeskAccount','find','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','ZendeskAccount,\x20%s,\x20%s'];(function(_0x50eeb4,_0x3a5cb3){var _0x3e1369=function(_0x4a38ea){while(--_0x4a38ea){_0x50eeb4['push'](_0x50eeb4['shift']());}};_0x3e1369(++_0x3a5cb3);}(_0x696f,0x1b9));var _0xf696=function(_0x1facfa,_0x1acf7d){_0x1facfa=_0x1facfa-0x0;var _0x9ec701=_0x696f[_0x1facfa];return _0x9ec701;};'use strict';var _=require('lodash');var util=require('util');var moment=require('moment');var BPromise=require(_0xf696('0x0'));var rs=require(_0xf696('0x1'));var fs=require('fs');var Redis=require(_0xf696('0x2'));var db=require(_0xf696('0x3'))['db'];var utils=require('../../config/utils');var logger=require(_0xf696('0x4'))(_0xf696('0x5'));var config=require(_0xf696('0x6'));var jayson=require(_0xf696('0x7'));var client=jayson[_0xf696('0x8')][_0xf696('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x3d63d9,_0x44ae1e,_0x7c5d18){return new BPromise(function(_0xbbec31,_0x55c280){return client[_0xf696('0xa')](_0x3d63d9,_0x7c5d18)[_0xf696('0xb')](function(_0x571f36){logger[_0xf696('0xc')](_0xf696('0xd'),_0x44ae1e,_0xf696('0xe'));logger['debug'](_0xf696('0xf'),_0x44ae1e,_0xf696('0xe'),JSON['stringify'](_0x571f36));if(_0x571f36[_0xf696('0x10')]){if(_0x571f36['error'][_0xf696('0x11')]===0x1f4){logger[_0xf696('0x10')](_0xf696('0xd'),_0x44ae1e,_0x571f36['error'][_0xf696('0x12')]);return _0x55c280(_0x571f36[_0xf696('0x10')][_0xf696('0x12')]);}logger[_0xf696('0x10')](_0xf696('0xd'),_0x44ae1e,_0x571f36[_0xf696('0x10')]['message']);return _0xbbec31(_0x571f36[_0xf696('0x10')][_0xf696('0x12')]);}else{logger[_0xf696('0xc')](_0xf696('0xd'),_0x44ae1e,_0xf696('0xe'));_0xbbec31(_0x571f36[_0xf696('0x13')]['message']);}})['catch'](function(_0x2f28fb){logger[_0xf696('0x10')](_0xf696('0xd'),_0x44ae1e,_0x2f28fb);_0x55c280(_0x2f28fb);});});}exports['GetZendeskAccount']=function(_0x2692c6){var _0x4ea140=this;return new Promise(function(_0x45c879,_0x2a8daf){return db[_0xf696('0x14')][_0xf696('0x15')]({'raw':_0x2692c6[_0xf696('0x16')]?_0x2692c6[_0xf696('0x16')][_0xf696('0x17')]===undefined?!![]:![]:!![],'where':_0x2692c6[_0xf696('0x16')]?_0x2692c6['options'][_0xf696('0x18')]||null:null,'attributes':_0x2692c6['options']?_0x2692c6['options'][_0xf696('0x19')]||null:null,'limit':_0x2692c6[_0xf696('0x16')]?_0x2692c6[_0xf696('0x16')]['limit']||null:null,'include':_0x2692c6[_0xf696('0x16')]?_0x2692c6[_0xf696('0x16')]['include']?_[_0xf696('0x1a')](_0x2692c6[_0xf696('0x16')][_0xf696('0x1b')],function(_0x51df48){return{'model':db[_0x51df48['model']],'as':_0x51df48['as'],'attributes':_0x51df48['attributes'],'include':_0x51df48['include']?_[_0xf696('0x1a')](_0x51df48[_0xf696('0x1b')],function(_0x2776e2){return{'model':db[_0x2776e2[_0xf696('0x1c')]],'as':_0x2776e2['as'],'attributes':_0x2776e2[_0xf696('0x19')],'include':_0x2776e2['include']?_[_0xf696('0x1a')](_0x2776e2[_0xf696('0x1b')],function(_0x3cbeac){return{'model':db[_0x3cbeac[_0xf696('0x1c')]],'as':_0x3cbeac['as'],'attributes':_0x3cbeac[_0xf696('0x19')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x4d7fd9){logger[_0xf696('0xc')](_0xf696('0x1d'),_0x2692c6);logger[_0xf696('0x1e')]('GetZendeskAccount',_0x2692c6,JSON[_0xf696('0x1f')](_0x4d7fd9));_0x45c879(_0x4d7fd9);})[_0xf696('0x20')](function(_0x2cb2b0){logger[_0xf696('0x10')](_0xf696('0x1d'),_0x2cb2b0[_0xf696('0x12')],_0x2692c6);_0x2a8daf(_0x4ea140[_0xf696('0x10')](0x1f4,_0x2cb2b0[_0xf696('0x12')]));});});};exports[_0xf696('0x21')]=function(_0xf9f747){var _0x4e35ae=this;return new Promise(function(_0x399344,_0x19bd39){return db[_0xf696('0x14')][_0xf696('0x22')]({'raw':_0xf9f747[_0xf696('0x16')]?_0xf9f747[_0xf696('0x16')][_0xf696('0x17')]===undefined?!![]:![]:!![],'where':_0xf9f747[_0xf696('0x16')]?_0xf9f747[_0xf696('0x16')][_0xf696('0x18')]||null:null,'attributes':_0xf9f747[_0xf696('0x16')]?_0xf9f747[_0xf696('0x16')][_0xf696('0x19')]||null:null,'include':_0xf9f747['options']?_0xf9f747[_0xf696('0x16')][_0xf696('0x1b')]?_[_0xf696('0x1a')](_0xf9f747[_0xf696('0x16')]['include'],function(_0xd87aca){return{'model':db[_0xd87aca[_0xf696('0x1c')]],'as':_0xd87aca['as'],'attributes':_0xd87aca[_0xf696('0x19')],'include':_0xd87aca['include']?_['map'](_0xd87aca['include'],function(_0x150e70){return{'model':db[_0x150e70['model']],'as':_0x150e70['as'],'attributes':_0x150e70[_0xf696('0x19')],'include':_0x150e70[_0xf696('0x1b')]?_['map'](_0x150e70[_0xf696('0x1b')],function(_0xd69a5d){return{'model':db[_0xd69a5d[_0xf696('0x1c')]],'as':_0xd69a5d['as'],'attributes':_0xd69a5d[_0xf696('0x19')]};}):[]};}):[]};}):[]:[]})[_0xf696('0xb')](function(_0x4181ec){logger[_0xf696('0xc')](_0xf696('0x21'),_0xf9f747);logger[_0xf696('0x1e')](_0xf696('0x21'),_0xf9f747,JSON[_0xf696('0x1f')](_0x4181ec));_0x399344(_0x4181ec);})[_0xf696('0x20')](function(_0x58a279){logger[_0xf696('0x10')](_0xf696('0x21'),_0x58a279[_0xf696('0x12')],_0xf9f747);_0x19bd39(_0x4e35ae[_0xf696('0x10')](0x1f4,_0x58a279[_0xf696('0x12')]));});});};
\ No newline at end of file
+var _0x58c2=['then','stringify','catch','find','ShowZendeskAccount','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','ZendeskAccount,\x20%s,\x20%s','request\x20sent','debug','ZendeskAccount,\x20%s,\x20%s,\x20%s','error','message','info','GetZendeskAccount','ZendeskAccount','findAll','options','raw','include','map','model','attributes'];(function(_0xbb091,_0x3fe7ee){var _0x467a04=function(_0x3a978d){while(--_0x3a978d){_0xbb091['push'](_0xbb091['shift']());}};_0x467a04(++_0x3fe7ee);}(_0x58c2,0x170));var _0x258c=function(_0x199533,_0xe370c5){_0x199533=_0x199533-0x0;var _0x203348=_0x58c2[_0x199533];return _0x203348;};'use strict';var _=require(_0x258c('0x0'));var util=require(_0x258c('0x1'));var moment=require('moment');var BPromise=require(_0x258c('0x2'));var rs=require(_0x258c('0x3'));var fs=require('fs');var Redis=require(_0x258c('0x4'));var db=require(_0x258c('0x5'))['db'];var utils=require(_0x258c('0x6'));var logger=require(_0x258c('0x7'))('rpc');var config=require(_0x258c('0x8'));var jayson=require(_0x258c('0x9'));var client=jayson[_0x258c('0xa')][_0x258c('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x34776f,_0x2b5792,_0x3bc276){return new BPromise(function(_0x22a735,_0x400943){return client['request'](_0x34776f,_0x3bc276)['then'](function(_0x376444){logger['info'](_0x258c('0xc'),_0x2b5792,_0x258c('0xd'));logger[_0x258c('0xe')](_0x258c('0xf'),_0x2b5792,_0x258c('0xd'),JSON['stringify'](_0x376444));if(_0x376444[_0x258c('0x10')]){if(_0x376444[_0x258c('0x10')]['code']===0x1f4){logger[_0x258c('0x10')](_0x258c('0xc'),_0x2b5792,_0x376444['error']['message']);return _0x400943(_0x376444[_0x258c('0x10')][_0x258c('0x11')]);}logger[_0x258c('0x10')]('ZendeskAccount,\x20%s,\x20%s',_0x2b5792,_0x376444[_0x258c('0x10')][_0x258c('0x11')]);return _0x22a735(_0x376444[_0x258c('0x10')][_0x258c('0x11')]);}else{logger[_0x258c('0x12')](_0x258c('0xc'),_0x2b5792,'request\x20sent');_0x22a735(_0x376444['result'][_0x258c('0x11')]);}})['catch'](function(_0x2aa6cd){logger['error'](_0x258c('0xc'),_0x2b5792,_0x2aa6cd);_0x400943(_0x2aa6cd);});});}exports[_0x258c('0x13')]=function(_0x5c29c7){var _0x3b9e2a=this;return new Promise(function(_0x188473,_0xc9832e){return db[_0x258c('0x14')][_0x258c('0x15')]({'raw':_0x5c29c7[_0x258c('0x16')]?_0x5c29c7[_0x258c('0x16')][_0x258c('0x17')]===undefined?!![]:![]:!![],'where':_0x5c29c7['options']?_0x5c29c7[_0x258c('0x16')]['where']||null:null,'attributes':_0x5c29c7[_0x258c('0x16')]?_0x5c29c7[_0x258c('0x16')]['attributes']||null:null,'limit':_0x5c29c7[_0x258c('0x16')]?_0x5c29c7[_0x258c('0x16')]['limit']||null:null,'include':_0x5c29c7['options']?_0x5c29c7[_0x258c('0x16')][_0x258c('0x18')]?_[_0x258c('0x19')](_0x5c29c7['options'][_0x258c('0x18')],function(_0xc56103){return{'model':db[_0xc56103[_0x258c('0x1a')]],'as':_0xc56103['as'],'attributes':_0xc56103[_0x258c('0x1b')],'include':_0xc56103[_0x258c('0x18')]?_[_0x258c('0x19')](_0xc56103[_0x258c('0x18')],function(_0xed3e5c){return{'model':db[_0xed3e5c[_0x258c('0x1a')]],'as':_0xed3e5c['as'],'attributes':_0xed3e5c[_0x258c('0x1b')],'include':_0xed3e5c[_0x258c('0x18')]?_['map'](_0xed3e5c[_0x258c('0x18')],function(_0x56cef4){return{'model':db[_0x56cef4[_0x258c('0x1a')]],'as':_0x56cef4['as'],'attributes':_0x56cef4[_0x258c('0x1b')]};}):[]};}):[]};}):[]:[]})[_0x258c('0x1c')](function(_0x80bfcf){logger[_0x258c('0x12')](_0x258c('0x13'),_0x5c29c7);logger['debug'](_0x258c('0x13'),_0x5c29c7,JSON[_0x258c('0x1d')](_0x80bfcf));_0x188473(_0x80bfcf);})[_0x258c('0x1e')](function(_0x3a947c){logger['error'](_0x258c('0x13'),_0x3a947c[_0x258c('0x11')],_0x5c29c7);_0xc9832e(_0x3b9e2a[_0x258c('0x10')](0x1f4,_0x3a947c[_0x258c('0x11')]));});});};exports['ShowZendeskAccount']=function(_0x3b8a02){var _0x380b2d=this;return new Promise(function(_0x589a30,_0x167456){return db[_0x258c('0x14')][_0x258c('0x1f')]({'raw':_0x3b8a02[_0x258c('0x16')]?_0x3b8a02['options'][_0x258c('0x17')]===undefined?!![]:![]:!![],'where':_0x3b8a02[_0x258c('0x16')]?_0x3b8a02[_0x258c('0x16')]['where']||null:null,'attributes':_0x3b8a02[_0x258c('0x16')]?_0x3b8a02[_0x258c('0x16')][_0x258c('0x1b')]||null:null,'include':_0x3b8a02['options']?_0x3b8a02[_0x258c('0x16')]['include']?_['map'](_0x3b8a02['options'][_0x258c('0x18')],function(_0x28dce6){return{'model':db[_0x28dce6['model']],'as':_0x28dce6['as'],'attributes':_0x28dce6['attributes'],'include':_0x28dce6[_0x258c('0x18')]?_[_0x258c('0x19')](_0x28dce6[_0x258c('0x18')],function(_0x4728bd){return{'model':db[_0x4728bd[_0x258c('0x1a')]],'as':_0x4728bd['as'],'attributes':_0x4728bd[_0x258c('0x1b')],'include':_0x4728bd[_0x258c('0x18')]?_[_0x258c('0x19')](_0x4728bd[_0x258c('0x18')],function(_0x4acea7){return{'model':db[_0x4acea7[_0x258c('0x1a')]],'as':_0x4acea7['as'],'attributes':_0x4acea7[_0x258c('0x1b')]};}):[]};}):[]};}):[]:[]})[_0x258c('0x1c')](function(_0x1097f2){logger[_0x258c('0x12')](_0x258c('0x20'),_0x3b8a02);logger[_0x258c('0xe')](_0x258c('0x20'),_0x3b8a02,JSON[_0x258c('0x1d')](_0x1097f2));_0x589a30(_0x1097f2);})[_0x258c('0x1e')](function(_0x40e8b5){logger['error'](_0x258c('0x20'),_0x40e8b5['message'],_0x3b8a02);_0x167456(_0x380b2d[_0x258c('0x10')](0x1f4,_0x40e8b5[_0x258c('0x11')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x36ee=['Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./intZendeskConfiguration.controller','get','isAuthenticated','index','/:id','show','/:id/fields','getFields','/:id/subjects','getSubjects','/:id/descriptions','getDescriptions','/:id/tags','post','create','update','delete','destroy','exports','path','express'];(function(_0x1fdb40,_0x51351c){var _0x281f93=function(_0x35eebe){while(--_0x35eebe){_0x1fdb40['push'](_0x1fdb40['shift']());}};_0x281f93(++_0x51351c);}(_0x36ee,0xe8));var _0xe36e=function(_0x397e5f,_0x454c8f){_0x397e5f=_0x397e5f-0x0;var _0x5302b8=_0x36ee[_0x397e5f];return _0x5302b8;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0xe36e('0x0'));var timeout=require('connect-timeout');var express=require(_0xe36e('0x1'));var router=express[_0xe36e('0x2')]();var fs_extra=require(_0xe36e('0x3'));var auth=require(_0xe36e('0x4'));var interaction=require(_0xe36e('0x5'));var config=require(_0xe36e('0x6'));var controller=require(_0xe36e('0x7'));router[_0xe36e('0x8')]('/',auth[_0xe36e('0x9')](),controller[_0xe36e('0xa')]);router[_0xe36e('0x8')](_0xe36e('0xb'),auth['isAuthenticated'](),controller[_0xe36e('0xc')]);router['get'](_0xe36e('0xd'),auth[_0xe36e('0x9')](),controller[_0xe36e('0xe')]);router['get'](_0xe36e('0xf'),auth['isAuthenticated'](),controller[_0xe36e('0x10')]);router[_0xe36e('0x8')](_0xe36e('0x11'),auth[_0xe36e('0x9')](),controller[_0xe36e('0x12')]);router[_0xe36e('0x8')](_0xe36e('0x13'),auth[_0xe36e('0x9')](),controller['getTags']);router[_0xe36e('0x14')]('/',auth[_0xe36e('0x9')](),controller[_0xe36e('0x15')]);router[_0xe36e('0x14')]('/:id/tags',auth[_0xe36e('0x9')](),controller['setTags']);router['put'](_0xe36e('0xb'),auth[_0xe36e('0x9')](),controller[_0xe36e('0x16')]);router[_0xe36e('0x17')](_0xe36e('0xb'),auth[_0xe36e('0x9')](),controller[_0xe36e('0x18')]);module[_0xe36e('0x19')]=router;
\ No newline at end of file
+var _0x087b=['getSubjects','/:id/descriptions','getDescriptions','getTags','post','create','/:id/tags','setTags','put','update','delete','destroy','multer','util','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./intZendeskConfiguration.controller','get','isAuthenticated','index','/:id','show','/:id/fields','getFields'];(function(_0x3a5f10,_0x57dbfb){var _0x7177b=function(_0x408789){while(--_0x408789){_0x3a5f10['push'](_0x3a5f10['shift']());}};_0x7177b(++_0x57dbfb);}(_0x087b,0x11a));var _0xb087=function(_0xe73080,_0x24c56d){_0xe73080=_0xe73080-0x0;var _0x12cbc4=_0x087b[_0xe73080];return _0x12cbc4;};'use strict';var multer=require(_0xb087('0x0'));var util=require(_0xb087('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0xb087('0x2'));var router=express['Router']();var fs_extra=require(_0xb087('0x3'));var auth=require(_0xb087('0x4'));var interaction=require(_0xb087('0x5'));var config=require(_0xb087('0x6'));var controller=require(_0xb087('0x7'));router[_0xb087('0x8')]('/',auth[_0xb087('0x9')](),controller[_0xb087('0xa')]);router[_0xb087('0x8')](_0xb087('0xb'),auth[_0xb087('0x9')](),controller[_0xb087('0xc')]);router[_0xb087('0x8')](_0xb087('0xd'),auth[_0xb087('0x9')](),controller[_0xb087('0xe')]);router[_0xb087('0x8')]('/:id/subjects',auth[_0xb087('0x9')](),controller[_0xb087('0xf')]);router[_0xb087('0x8')](_0xb087('0x10'),auth[_0xb087('0x9')](),controller[_0xb087('0x11')]);router[_0xb087('0x8')]('/:id/tags',auth[_0xb087('0x9')](),controller[_0xb087('0x12')]);router[_0xb087('0x13')]('/',auth['isAuthenticated'](),controller[_0xb087('0x14')]);router[_0xb087('0x13')](_0xb087('0x15'),auth[_0xb087('0x9')](),controller[_0xb087('0x16')]);router[_0xb087('0x17')](_0xb087('0xb'),auth[_0xb087('0x9')](),controller[_0xb087('0x18')]);router[_0xb087('0x19')]('/:id',auth[_0xb087('0x9')](),controller[_0xb087('0x1a')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2191=['sequelize','exports','STRING'];(function(_0x3df223,_0x1740fc){var _0x562d11=function(_0x343009){while(--_0x343009){_0x3df223['push'](_0x3df223['shift']());}};_0x562d11(++_0x1740fc);}(_0x2191,0xbd));var _0x1219=function(_0x5b4e6b,_0x150cbd){_0x5b4e6b=_0x5b4e6b-0x0;var _0x3cd6ae=_0x2191[_0x5b4e6b];return _0x3cd6ae;};'use strict';var Sequelize=require(_0x1219('0x0'));module[_0x1219('0x1')]={'name':{'type':Sequelize[_0x1219('0x2')]},'description':{'type':Sequelize[_0x1219('0x2')]}};
\ No newline at end of file
+var _0x4401=['STRING'];(function(_0x5f1391,_0x19c132){var _0x50ebe3=function(_0x3d00a3){while(--_0x3d00a3){_0x5f1391['push'](_0x5f1391['shift']());}};_0x50ebe3(++_0x19c132);}(_0x4401,0x123));var _0x1440=function(_0x1960b1,_0x25785b){_0x1960b1=_0x1960b1-0x0;var _0x11e036=_0x4401[_0x1960b1];return _0x11e036;};'use strict';var Sequelize=require('sequelize');module['exports']={'name':{'type':Sequelize[_0x1440('0x0')]},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9dd=['getSubjects','getDescriptions','getTags','Tag','setTags','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','apply','reject','save','update','then','destroy','error','name','send','index','rawAttributes','fieldName','type','key','model','map','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','where','VIRTUAL','filter','options','ZendeskConfiguration','findAll','catch','show','params','includeAll','include','merge','find','create','body','getFields','findOne','ZendeskField'];(function(_0x32f7d7,_0x54231b){var _0x133d09=function(_0x41a7ab){while(--_0x41a7ab){_0x32f7d7['push'](_0x32f7d7['shift']());}};_0x133d09(++_0x54231b);}(_0xa9dd,0xb1));var _0xda9d=function(_0x1e4f2d,_0x22e2bb){_0x1e4f2d=_0x1e4f2d-0x0;var _0xd05ce5=_0xa9dd[_0x1e4f2d];return _0xd05ce5;};'use strict';var emlformat=require(_0xda9d('0x0'));var rimraf=require(_0xda9d('0x1'));var zipdir=require(_0xda9d('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xda9d('0x3'));var moment=require(_0xda9d('0x4'));var BPromise=require(_0xda9d('0x5'));var Mustache=require(_0xda9d('0x6'));var util=require('util');var path=require(_0xda9d('0x7'));var sox=require(_0xda9d('0x8'));var csv=require(_0xda9d('0x9'));var ejs=require(_0xda9d('0xa'));var fs=require('fs');var fs_extra=require(_0xda9d('0xb'));var _=require(_0xda9d('0xc'));var squel=require('squel');var crypto=require(_0xda9d('0xd'));var jsforce=require(_0xda9d('0xe'));var deskjs=require(_0xda9d('0xf'));var toCsv=require(_0xda9d('0x9'));var querystring=require(_0xda9d('0x10'));var Papa=require(_0xda9d('0x11'));var Redis=require(_0xda9d('0x12'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0xda9d('0x13'));var hardwareService=require(_0xda9d('0x14'));var logger=require('../../config/logger')(_0xda9d('0x15'));var utils=require(_0xda9d('0x16'));var config=require(_0xda9d('0x17'));var licenseUtil=require(_0xda9d('0x18'));var db=require(_0xda9d('0x19'))['db'];function respondWithStatusCode(_0x23f5d9,_0x5b84c8){_0x5b84c8=_0x5b84c8||0xcc;return function(_0x3ecc66){if(_0x3ecc66){return _0x23f5d9[_0xda9d('0x1a')](_0x5b84c8);}return _0x23f5d9[_0xda9d('0x1b')](_0x5b84c8)[_0xda9d('0x1c')]();};}function respondWithResult(_0x1a394b,_0x3c8445){_0x3c8445=_0x3c8445||0xc8;return function(_0x17bd55){if(_0x17bd55){return _0x1a394b[_0xda9d('0x1b')](_0x3c8445)[_0xda9d('0x1d')](_0x17bd55);}};}function respondWithFilteredResult(_0x4744ba,_0xd236a6){return function(_0x2e736c){if(_0x2e736c){var _0x37c25f=typeof _0xd236a6[_0xda9d('0x1e')]===_0xda9d('0x1f')&&typeof _0xd236a6[_0xda9d('0x20')]===_0xda9d('0x1f');var _0x11f51e=_0x2e736c[_0xda9d('0x21')];var _0x1718db=_0x37c25f?0x0:_0xd236a6[_0xda9d('0x1e')];var _0x41b700=_0x37c25f?_0x2e736c[_0xda9d('0x21')]:_0xd236a6['offset']+_0xd236a6['limit'];var _0x5c7e17;if(_0x41b700>=_0x11f51e){_0x41b700=_0x11f51e;_0x5c7e17=0xc8;}else{_0x5c7e17=0xce;}_0x4744ba[_0xda9d('0x1b')](_0x5c7e17);return _0x4744ba[_0xda9d('0x22')]('Content-Range',_0x1718db+'-'+_0x41b700+'/'+_0x11f51e)[_0xda9d('0x1d')](_0x2e736c);}return null;};}function patchUpdates(_0x3b9526){return function(_0x2b4297){try{jsonpatch[_0xda9d('0x23')](_0x2b4297,_0x3b9526,!![]);}catch(_0x135e07){return BPromise[_0xda9d('0x24')](_0x135e07);}return _0x2b4297[_0xda9d('0x25')]();};}function saveUpdates(_0xe145fe,_0xa8c618){return function(_0x41a636){if(_0x41a636){return _0x41a636[_0xda9d('0x26')](_0xe145fe)[_0xda9d('0x27')](function(_0x15110d){return _0x15110d;});}return null;};}function removeEntity(_0x7813c0,_0x1c7b83){return function(_0xa4c91e){if(_0xa4c91e){return _0xa4c91e[_0xda9d('0x28')]()[_0xda9d('0x27')](function(){_0x7813c0[_0xda9d('0x1b')](0xcc)[_0xda9d('0x1c')]();});}};}function handleEntityNotFound(_0x38e0f1,_0x10c766){return function(_0x17bd9e){if(!_0x17bd9e){_0x38e0f1['sendStatus'](0x194);}return _0x17bd9e;};}function handleError(_0x50b168,_0x5e8eea){_0x5e8eea=_0x5e8eea||0x1f4;return function(_0x2b3854){logger[_0xda9d('0x29')](_0x2b3854['stack']);if(_0x2b3854['name']){delete _0x2b3854[_0xda9d('0x2a')];}_0x50b168['status'](_0x5e8eea)[_0xda9d('0x2b')](_0x2b3854);};}exports[_0xda9d('0x2c')]=function(_0x3f0dcd,_0x578662){var _0x1d3128={},_0x22c8fc={},_0x81a282={'count':0x0,'rows':[]};var _0x14dff2=_['map'](db['ZendeskConfiguration'][_0xda9d('0x2d')],function(_0x564238){return{'name':_0x564238[_0xda9d('0x2e')],'type':_0x564238[_0xda9d('0x2f')][_0xda9d('0x30')]};});_0x22c8fc[_0xda9d('0x31')]=_[_0xda9d('0x32')](_0x14dff2,_0xda9d('0x2a'));_0x22c8fc['query']=_[_0xda9d('0x33')](_0x3f0dcd[_0xda9d('0x34')]);_0x22c8fc[_0xda9d('0x35')]=_[_0xda9d('0x36')](_0x22c8fc[_0xda9d('0x31')],_0x22c8fc[_0xda9d('0x34')]);_0x1d3128[_0xda9d('0x37')]=_[_0xda9d('0x36')](_0x22c8fc['model'],qs[_0xda9d('0x38')](_0x3f0dcd['query'][_0xda9d('0x38')]));_0x1d3128[_0xda9d('0x37')]=_0x1d3128[_0xda9d('0x37')][_0xda9d('0x39')]?_0x1d3128['attributes']:_0x22c8fc[_0xda9d('0x31')];if(!_0x3f0dcd[_0xda9d('0x34')][_0xda9d('0x3a')](_0xda9d('0x3b'))){_0x1d3128['limit']=qs['limit'](_0x3f0dcd[_0xda9d('0x34')][_0xda9d('0x20')]);_0x1d3128['offset']=qs[_0xda9d('0x1e')](_0x3f0dcd[_0xda9d('0x34')][_0xda9d('0x1e')]);}_0x1d3128[_0xda9d('0x3c')]=qs[_0xda9d('0x3d')](_0x3f0dcd['query'][_0xda9d('0x3d')]);_0x1d3128['where']=qs[_0xda9d('0x35')](_[_0xda9d('0x3e')](_0x3f0dcd[_0xda9d('0x34')],_0x22c8fc[_0xda9d('0x35')]),_0x14dff2);if(_0x3f0dcd[_0xda9d('0x34')]['filter']){_0x1d3128[_0xda9d('0x3f')]=_['merge'](_0x1d3128[_0xda9d('0x3f')],{'$or':_[_0xda9d('0x32')](_0x14dff2,function(_0x3de87c){if(_0x3de87c[_0xda9d('0x2f')]!==_0xda9d('0x40')){var _0x5bdd58={};_0x5bdd58[_0x3de87c[_0xda9d('0x2a')]]={'$like':'%'+_0x3f0dcd[_0xda9d('0x34')][_0xda9d('0x41')]+'%'};return _0x5bdd58;}})});}_0x1d3128=_['merge']({},_0x1d3128,_0x3f0dcd[_0xda9d('0x42')]);var _0x541b13={'where':_0x1d3128['where']};return db[_0xda9d('0x43')][_0xda9d('0x21')](_0x541b13)[_0xda9d('0x27')](function(_0x459663){_0x81a282[_0xda9d('0x21')]=_0x459663;if(_0x3f0dcd[_0xda9d('0x34')]['includeAll']){_0x1d3128['include']=[{'all':!![]}];}return db[_0xda9d('0x43')][_0xda9d('0x44')](_0x1d3128);})[_0xda9d('0x27')](function(_0x104332){_0x81a282['rows']=_0x104332;return _0x81a282;})['then'](respondWithFilteredResult(_0x578662,_0x1d3128))[_0xda9d('0x45')](handleError(_0x578662,null));};exports[_0xda9d('0x46')]=function(_0x2d4244,_0x19195b){var _0x2caae9={'raw':![],'where':{'id':_0x2d4244[_0xda9d('0x47')]['id']}},_0x2b8caf={};_0x2b8caf[_0xda9d('0x31')]=_[_0xda9d('0x33')](db[_0xda9d('0x43')][_0xda9d('0x2d')]);_0x2b8caf[_0xda9d('0x34')]=_[_0xda9d('0x33')](_0x2d4244[_0xda9d('0x34')]);_0x2b8caf[_0xda9d('0x35')]=_[_0xda9d('0x36')](_0x2b8caf[_0xda9d('0x31')],_0x2b8caf['query']);_0x2caae9[_0xda9d('0x37')]=_[_0xda9d('0x36')](_0x2b8caf[_0xda9d('0x31')],qs[_0xda9d('0x38')](_0x2d4244[_0xda9d('0x34')][_0xda9d('0x38')]));_0x2caae9['attributes']=_0x2caae9[_0xda9d('0x37')][_0xda9d('0x39')]?_0x2caae9[_0xda9d('0x37')]:_0x2b8caf[_0xda9d('0x31')];if(_0x2d4244[_0xda9d('0x34')][_0xda9d('0x48')]){_0x2caae9[_0xda9d('0x49')]=[{'all':!![]}];}_0x2caae9=_[_0xda9d('0x4a')]({},_0x2caae9,_0x2d4244[_0xda9d('0x42')]);return db[_0xda9d('0x43')][_0xda9d('0x4b')](_0x2caae9)['then'](handleEntityNotFound(_0x19195b,null))[_0xda9d('0x27')](respondWithResult(_0x19195b,null))['catch'](handleError(_0x19195b,null));};exports['create']=function(_0x3449c8,_0x45b9f4){return db['ZendeskConfiguration'][_0xda9d('0x4c')](_0x3449c8[_0xda9d('0x4d')],{})[_0xda9d('0x27')](respondWithResult(_0x45b9f4,0xc9))[_0xda9d('0x45')](handleError(_0x45b9f4,null));};exports['update']=function(_0x67bb72,_0x7cd11c){if(_0x67bb72['body']['id']){delete _0x67bb72[_0xda9d('0x4d')]['id'];}return db[_0xda9d('0x43')]['find']({'where':{'id':_0x67bb72[_0xda9d('0x47')]['id']}})[_0xda9d('0x27')](handleEntityNotFound(_0x7cd11c,null))[_0xda9d('0x27')](saveUpdates(_0x67bb72[_0xda9d('0x4d')],null))[_0xda9d('0x27')](respondWithResult(_0x7cd11c,null))[_0xda9d('0x45')](handleError(_0x7cd11c,null));};exports[_0xda9d('0x28')]=function(_0x4fc11f,_0x165ccc){return db[_0xda9d('0x43')][_0xda9d('0x4b')]({'where':{'id':_0x4fc11f['params']['id']}})['then'](handleEntityNotFound(_0x165ccc,null))[_0xda9d('0x27')](removeEntity(_0x165ccc,null))[_0xda9d('0x45')](handleError(_0x165ccc,null));};exports[_0xda9d('0x4e')]=function(_0x202bc4,_0x5414ad,_0x460079){var _0x21d597={};var _0x85d3cd={};var _0x1db493;var _0x4df161;return db[_0xda9d('0x43')][_0xda9d('0x4f')]({'where':{'id':_0x202bc4[_0xda9d('0x47')]['id']}})[_0xda9d('0x27')](handleEntityNotFound(_0x5414ad,null))[_0xda9d('0x27')](function(_0x5ddcfd){if(_0x5ddcfd){_0x1db493=_0x5ddcfd;_0x85d3cd[_0xda9d('0x31')]=_[_0xda9d('0x33')](db[_0xda9d('0x50')][_0xda9d('0x2d')]);_0x85d3cd[_0xda9d('0x34')]=_[_0xda9d('0x33')](_0x202bc4['query']);_0x85d3cd[_0xda9d('0x35')]=_[_0xda9d('0x36')](_0x85d3cd[_0xda9d('0x31')],_0x85d3cd['query']);_0x21d597['attributes']=_[_0xda9d('0x36')](_0x85d3cd[_0xda9d('0x31')],qs[_0xda9d('0x38')](_0x202bc4[_0xda9d('0x34')][_0xda9d('0x38')]));_0x21d597[_0xda9d('0x37')]=_0x21d597[_0xda9d('0x37')][_0xda9d('0x39')]?_0x21d597['attributes']:_0x85d3cd['model'];_0x21d597[_0xda9d('0x3c')]=qs[_0xda9d('0x3d')](_0x202bc4[_0xda9d('0x34')][_0xda9d('0x3d')]);_0x21d597[_0xda9d('0x3f')]=qs[_0xda9d('0x35')](_[_0xda9d('0x3e')](_0x202bc4[_0xda9d('0x34')],_0x85d3cd[_0xda9d('0x35')]));if(_0x202bc4[_0xda9d('0x34')]['filter']){_0x21d597[_0xda9d('0x3f')]=_[_0xda9d('0x4a')](_0x21d597[_0xda9d('0x3f')],{'$or':_[_0xda9d('0x32')](_0x21d597[_0xda9d('0x37')],function(_0x200169){var _0x532c46={};_0x532c46[_0x200169]={'$like':'%'+_0x202bc4[_0xda9d('0x34')]['filter']+'%'};return _0x532c46;})});}_0x21d597=_[_0xda9d('0x4a')]({},_0x21d597,_0x202bc4[_0xda9d('0x42')]);return _0x1db493['getFields'](_0x21d597);}})[_0xda9d('0x27')](function(_0x45eef6){if(_0x45eef6){_0x4df161=_0x45eef6[_0xda9d('0x39')];if(!_0x202bc4[_0xda9d('0x34')]['hasOwnProperty'](_0xda9d('0x3b'))){_0x21d597['limit']=qs[_0xda9d('0x20')](_0x202bc4[_0xda9d('0x34')]['limit']);_0x21d597[_0xda9d('0x1e')]=qs[_0xda9d('0x1e')](_0x202bc4['query'][_0xda9d('0x1e')]);}return _0x1db493[_0xda9d('0x4e')](_0x21d597);}})['then'](function(_0x559934){if(_0x559934){return _0x559934?{'count':_0x4df161,'rows':_0x559934}:null;}})[_0xda9d('0x27')](respondWithResult(_0x5414ad,null))['catch'](handleError(_0x5414ad,null));};exports[_0xda9d('0x51')]=function(_0x1af89e,_0x1ad9f8,_0x4b4ab1){var _0x5704b3={};var _0x31c931={};var _0x44d0da;var _0x25b352;return db[_0xda9d('0x43')]['findOne']({'where':{'id':_0x1af89e[_0xda9d('0x47')]['id']}})[_0xda9d('0x27')](handleEntityNotFound(_0x1ad9f8,null))[_0xda9d('0x27')](function(_0x5bd46e){if(_0x5bd46e){_0x44d0da=_0x5bd46e;_0x31c931[_0xda9d('0x31')]=_[_0xda9d('0x33')](db['ZendeskField'][_0xda9d('0x2d')]);_0x31c931['query']=_[_0xda9d('0x33')](_0x1af89e[_0xda9d('0x34')]);_0x31c931['filters']=_[_0xda9d('0x36')](_0x31c931['model'],_0x31c931[_0xda9d('0x34')]);_0x5704b3[_0xda9d('0x37')]=_[_0xda9d('0x36')](_0x31c931[_0xda9d('0x31')],qs['fields'](_0x1af89e[_0xda9d('0x34')][_0xda9d('0x38')]));_0x5704b3[_0xda9d('0x37')]=_0x5704b3[_0xda9d('0x37')][_0xda9d('0x39')]?_0x5704b3[_0xda9d('0x37')]:_0x31c931[_0xda9d('0x31')];_0x5704b3['order']=qs['sort'](_0x1af89e[_0xda9d('0x34')][_0xda9d('0x3d')]);_0x5704b3[_0xda9d('0x3f')]=qs[_0xda9d('0x35')](_['pick'](_0x1af89e[_0xda9d('0x34')],_0x31c931[_0xda9d('0x35')]));if(_0x1af89e['query']['filter']){_0x5704b3[_0xda9d('0x3f')]=_[_0xda9d('0x4a')](_0x5704b3[_0xda9d('0x3f')],{'$or':_['map'](_0x5704b3['attributes'],function(_0x59fbf8){var _0x5790c8={};_0x5790c8[_0x59fbf8]={'$like':'%'+_0x1af89e[_0xda9d('0x34')][_0xda9d('0x41')]+'%'};return _0x5790c8;})});}_0x5704b3=_['merge']({},_0x5704b3,_0x1af89e[_0xda9d('0x42')]);return _0x44d0da[_0xda9d('0x51')](_0x5704b3);}})[_0xda9d('0x27')](function(_0x681e50){if(_0x681e50){_0x25b352=_0x681e50[_0xda9d('0x39')];if(!_0x1af89e[_0xda9d('0x34')][_0xda9d('0x3a')](_0xda9d('0x3b'))){_0x5704b3['limit']=qs[_0xda9d('0x20')](_0x1af89e[_0xda9d('0x34')][_0xda9d('0x20')]);_0x5704b3['offset']=qs['offset'](_0x1af89e[_0xda9d('0x34')][_0xda9d('0x1e')]);}return _0x44d0da[_0xda9d('0x51')](_0x5704b3);}})[_0xda9d('0x27')](function(_0x54398d){if(_0x54398d){return _0x54398d?{'count':_0x25b352,'rows':_0x54398d}:null;}})[_0xda9d('0x27')](respondWithResult(_0x1ad9f8,null))[_0xda9d('0x45')](handleError(_0x1ad9f8,null));};exports['getDescriptions']=function(_0x5732cc,_0x4a33f7,_0x1e533a){var _0x27a0f7={};var _0x3b2845={};var _0x394515;var _0x19e0b7;return db[_0xda9d('0x43')][_0xda9d('0x4f')]({'where':{'id':_0x5732cc[_0xda9d('0x47')]['id']}})[_0xda9d('0x27')](handleEntityNotFound(_0x4a33f7,null))[_0xda9d('0x27')](function(_0x472901){if(_0x472901){_0x394515=_0x472901;_0x3b2845[_0xda9d('0x31')]=_['keys'](db[_0xda9d('0x50')][_0xda9d('0x2d')]);_0x3b2845[_0xda9d('0x34')]=_['keys'](_0x5732cc[_0xda9d('0x34')]);_0x3b2845[_0xda9d('0x35')]=_['intersection'](_0x3b2845[_0xda9d('0x31')],_0x3b2845[_0xda9d('0x34')]);_0x27a0f7[_0xda9d('0x37')]=_[_0xda9d('0x36')](_0x3b2845['model'],qs[_0xda9d('0x38')](_0x5732cc[_0xda9d('0x34')][_0xda9d('0x38')]));_0x27a0f7['attributes']=_0x27a0f7[_0xda9d('0x37')][_0xda9d('0x39')]?_0x27a0f7[_0xda9d('0x37')]:_0x3b2845[_0xda9d('0x31')];_0x27a0f7[_0xda9d('0x3c')]=qs[_0xda9d('0x3d')](_0x5732cc['query']['sort']);_0x27a0f7[_0xda9d('0x3f')]=qs[_0xda9d('0x35')](_['pick'](_0x5732cc[_0xda9d('0x34')],_0x3b2845['filters']));if(_0x5732cc[_0xda9d('0x34')][_0xda9d('0x41')]){_0x27a0f7[_0xda9d('0x3f')]=_['merge'](_0x27a0f7['where'],{'$or':_['map'](_0x27a0f7['attributes'],function(_0x32f148){var _0x134ac1={};_0x134ac1[_0x32f148]={'$like':'%'+_0x5732cc[_0xda9d('0x34')]['filter']+'%'};return _0x134ac1;})});}_0x27a0f7=_[_0xda9d('0x4a')]({},_0x27a0f7,_0x5732cc[_0xda9d('0x42')]);return _0x394515[_0xda9d('0x52')](_0x27a0f7);}})[_0xda9d('0x27')](function(_0x6b5d26){if(_0x6b5d26){_0x19e0b7=_0x6b5d26['length'];if(!_0x5732cc[_0xda9d('0x34')]['hasOwnProperty'](_0xda9d('0x3b'))){_0x27a0f7[_0xda9d('0x20')]=qs['limit'](_0x5732cc[_0xda9d('0x34')][_0xda9d('0x20')]);_0x27a0f7['offset']=qs[_0xda9d('0x1e')](_0x5732cc[_0xda9d('0x34')][_0xda9d('0x1e')]);}return _0x394515[_0xda9d('0x52')](_0x27a0f7);}})[_0xda9d('0x27')](function(_0x25effb){if(_0x25effb){return _0x25effb?{'count':_0x19e0b7,'rows':_0x25effb}:null;}})['then'](respondWithResult(_0x4a33f7,null))[_0xda9d('0x45')](handleError(_0x4a33f7,null));};exports[_0xda9d('0x53')]=function(_0x1a3ec1,_0x2d625b,_0x5b3043){var _0x26f308={};var _0x594cbd={};var _0x1000f5;var _0x30cb27;return db[_0xda9d('0x43')]['findOne']({'where':{'id':_0x1a3ec1[_0xda9d('0x47')]['id']}})[_0xda9d('0x27')](handleEntityNotFound(_0x2d625b,null))[_0xda9d('0x27')](function(_0x1d5545){if(_0x1d5545){_0x1000f5=_0x1d5545;_0x594cbd[_0xda9d('0x31')]=_['keys'](db[_0xda9d('0x54')][_0xda9d('0x2d')]);_0x594cbd['query']=_[_0xda9d('0x33')](_0x1a3ec1[_0xda9d('0x34')]);_0x594cbd['filters']=_[_0xda9d('0x36')](_0x594cbd[_0xda9d('0x31')],_0x594cbd[_0xda9d('0x34')]);_0x26f308[_0xda9d('0x37')]=_[_0xda9d('0x36')](_0x594cbd[_0xda9d('0x31')],qs[_0xda9d('0x38')](_0x1a3ec1[_0xda9d('0x34')]['fields']));_0x26f308[_0xda9d('0x37')]=_0x26f308[_0xda9d('0x37')][_0xda9d('0x39')]?_0x26f308[_0xda9d('0x37')]:_0x594cbd['model'];_0x26f308[_0xda9d('0x3c')]=qs['sort'](_0x1a3ec1[_0xda9d('0x34')][_0xda9d('0x3d')]);_0x26f308[_0xda9d('0x3f')]=qs[_0xda9d('0x35')](_[_0xda9d('0x3e')](_0x1a3ec1['query'],_0x594cbd['filters']));if(_0x1a3ec1['query'][_0xda9d('0x41')]){_0x26f308[_0xda9d('0x3f')]=_['merge'](_0x26f308[_0xda9d('0x3f')],{'$or':_[_0xda9d('0x32')](_0x26f308[_0xda9d('0x37')],function(_0x4f64a8){var _0x5b924b={};_0x5b924b[_0x4f64a8]={'$like':'%'+_0x1a3ec1['query'][_0xda9d('0x41')]+'%'};return _0x5b924b;})});}_0x26f308=_[_0xda9d('0x4a')]({},_0x26f308,_0x1a3ec1['options']);return _0x1000f5['getTags'](_0x26f308);}})['then'](function(_0x1ef311){if(_0x1ef311){_0x30cb27=_0x1ef311['length'];if(!_0x1a3ec1[_0xda9d('0x34')][_0xda9d('0x3a')](_0xda9d('0x3b'))){_0x26f308['limit']=qs[_0xda9d('0x20')](_0x1a3ec1[_0xda9d('0x34')]['limit']);_0x26f308[_0xda9d('0x1e')]=qs[_0xda9d('0x1e')](_0x1a3ec1[_0xda9d('0x34')]['offset']);}return _0x1000f5[_0xda9d('0x53')](_0x26f308);}})[_0xda9d('0x27')](function(_0x54b29d){if(_0x54b29d){return _0x54b29d?{'count':_0x30cb27,'rows':_0x54b29d}:null;}})[_0xda9d('0x27')](respondWithResult(_0x2d625b,null))[_0xda9d('0x45')](handleError(_0x2d625b,null));};exports[_0xda9d('0x55')]=function(_0x175f3f,_0x5e071c,_0x48c2f7){if(_0x175f3f[_0xda9d('0x4d')]['id']){delete _0x175f3f[_0xda9d('0x4d')]['id'];}return db[_0xda9d('0x43')][_0xda9d('0x4f')]({'where':{'id':_0x175f3f['params']['id']}})[_0xda9d('0x27')](handleEntityNotFound(_0x5e071c,null))[_0xda9d('0x27')](function(_0x5e8d30){if(_0x5e8d30){return _0x5e8d30['setTags'](_0x175f3f[_0xda9d('0x4d')]['ids']||[]);}return null;})[_0xda9d('0x27')](respondWithResult(_0x5e071c,null))[_0xda9d('0x45')](handleError(_0x5e071c,null));};
\ No newline at end of file
+var _0x126c=['set','apply','reject','then','destroy','error','name','send','index','map','rawAttributes','fieldName','type','model','query','keys','filters','attributes','intersection','fields','hasOwnProperty','nolimit','order','sort','where','pick','merge','VIRTUAL','filter','options','ZendeskConfiguration','include','findAll','rows','catch','show','includeAll','find','create','body','update','params','findOne','ZendeskField','length','getSubjects','getDescriptions','getTags','Tag','setTags','ids','rimraf','fast-json-patch','request-promise','moment','mustache','util','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','limit','undefined','count','offset'];(function(_0x2d7f0e,_0x3e6fbd){var _0x110b07=function(_0x557b00){while(--_0x557b00){_0x2d7f0e['push'](_0x2d7f0e['shift']());}};_0x110b07(++_0x3e6fbd);}(_0x126c,0x87));var _0xc126=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x126c[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xc126('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0xc126('0x1'));var rp=require(_0xc126('0x2'));var moment=require(_0xc126('0x3'));var BPromise=require('bluebird');var Mustache=require(_0xc126('0x4'));var util=require(_0xc126('0x5'));var path=require('path');var sox=require('sox');var csv=require(_0xc126('0x6'));var ejs=require(_0xc126('0x7'));var fs=require('fs');var fs_extra=require(_0xc126('0x8'));var _=require(_0xc126('0x9'));var squel=require(_0xc126('0xa'));var crypto=require('crypto');var jsforce=require(_0xc126('0xb'));var deskjs=require(_0xc126('0xc'));var toCsv=require(_0xc126('0x6'));var querystring=require(_0xc126('0xd'));var Papa=require(_0xc126('0xe'));var Redis=require(_0xc126('0xf'));var authService=require(_0xc126('0x10'));var qs=require(_0xc126('0x11'));var as=require(_0xc126('0x12'));var hardwareService=require(_0xc126('0x13'));var logger=require('../../config/logger')(_0xc126('0x14'));var utils=require(_0xc126('0x15'));var config=require(_0xc126('0x16'));var licenseUtil=require(_0xc126('0x17'));var db=require(_0xc126('0x18'))['db'];function respondWithStatusCode(_0x1b1e4a,_0x5eef4f){_0x5eef4f=_0x5eef4f||0xcc;return function(_0x140a93){if(_0x140a93){return _0x1b1e4a[_0xc126('0x19')](_0x5eef4f);}return _0x1b1e4a[_0xc126('0x1a')](_0x5eef4f)[_0xc126('0x1b')]();};}function respondWithResult(_0x21d2c7,_0x55508c){_0x55508c=_0x55508c||0xc8;return function(_0x1eff2a){if(_0x1eff2a){return _0x21d2c7['status'](_0x55508c)[_0xc126('0x1c')](_0x1eff2a);}};}function respondWithFilteredResult(_0x18d14e,_0x158fe1){return function(_0x1c137c){if(_0x1c137c){var _0xd5fc0=typeof _0x158fe1['offset']==='undefined'&&typeof _0x158fe1[_0xc126('0x1d')]===_0xc126('0x1e');var _0x5b4940=_0x1c137c[_0xc126('0x1f')];var _0x343786=_0xd5fc0?0x0:_0x158fe1[_0xc126('0x20')];var _0x5d5dd9=_0xd5fc0?_0x1c137c[_0xc126('0x1f')]:_0x158fe1[_0xc126('0x20')]+_0x158fe1['limit'];var _0x290eba;if(_0x5d5dd9>=_0x5b4940){_0x5d5dd9=_0x5b4940;_0x290eba=0xc8;}else{_0x290eba=0xce;}_0x18d14e['status'](_0x290eba);return _0x18d14e[_0xc126('0x21')]('Content-Range',_0x343786+'-'+_0x5d5dd9+'/'+_0x5b4940)[_0xc126('0x1c')](_0x1c137c);}return null;};}function patchUpdates(_0x16d221){return function(_0x3d4e75){try{jsonpatch[_0xc126('0x22')](_0x3d4e75,_0x16d221,!![]);}catch(_0x283295){return BPromise[_0xc126('0x23')](_0x283295);}return _0x3d4e75['save']();};}function saveUpdates(_0x3aedb9,_0x17ae17){return function(_0x1b03be){if(_0x1b03be){return _0x1b03be['update'](_0x3aedb9)[_0xc126('0x24')](function(_0x106c3a){return _0x106c3a;});}return null;};}function removeEntity(_0x904d6f,_0x1b507d){return function(_0x111250){if(_0x111250){return _0x111250[_0xc126('0x25')]()[_0xc126('0x24')](function(){_0x904d6f[_0xc126('0x1a')](0xcc)[_0xc126('0x1b')]();});}};}function handleEntityNotFound(_0x47933d,_0x3553c1){return function(_0xa0497e){if(!_0xa0497e){_0x47933d[_0xc126('0x19')](0x194);}return _0xa0497e;};}function handleError(_0x2ef245,_0x172a4b){_0x172a4b=_0x172a4b||0x1f4;return function(_0x16ccdd){logger[_0xc126('0x26')](_0x16ccdd['stack']);if(_0x16ccdd[_0xc126('0x27')]){delete _0x16ccdd[_0xc126('0x27')];}_0x2ef245[_0xc126('0x1a')](_0x172a4b)[_0xc126('0x28')](_0x16ccdd);};}exports[_0xc126('0x29')]=function(_0x9b0e98,_0x21b337){var _0x400340={},_0x2b0da3={},_0x28d2b6={'count':0x0,'rows':[]};var _0x3b924a=_[_0xc126('0x2a')](db['ZendeskConfiguration'][_0xc126('0x2b')],function(_0x1c8755){return{'name':_0x1c8755[_0xc126('0x2c')],'type':_0x1c8755[_0xc126('0x2d')]['key']};});_0x2b0da3[_0xc126('0x2e')]=_[_0xc126('0x2a')](_0x3b924a,_0xc126('0x27'));_0x2b0da3[_0xc126('0x2f')]=_[_0xc126('0x30')](_0x9b0e98[_0xc126('0x2f')]);_0x2b0da3[_0xc126('0x31')]=_['intersection'](_0x2b0da3[_0xc126('0x2e')],_0x2b0da3[_0xc126('0x2f')]);_0x400340[_0xc126('0x32')]=_[_0xc126('0x33')](_0x2b0da3[_0xc126('0x2e')],qs[_0xc126('0x34')](_0x9b0e98[_0xc126('0x2f')][_0xc126('0x34')]));_0x400340[_0xc126('0x32')]=_0x400340[_0xc126('0x32')]['length']?_0x400340[_0xc126('0x32')]:_0x2b0da3[_0xc126('0x2e')];if(!_0x9b0e98['query'][_0xc126('0x35')](_0xc126('0x36'))){_0x400340['limit']=qs[_0xc126('0x1d')](_0x9b0e98['query'][_0xc126('0x1d')]);_0x400340['offset']=qs[_0xc126('0x20')](_0x9b0e98[_0xc126('0x2f')][_0xc126('0x20')]);}_0x400340[_0xc126('0x37')]=qs[_0xc126('0x38')](_0x9b0e98[_0xc126('0x2f')]['sort']);_0x400340[_0xc126('0x39')]=qs['filters'](_[_0xc126('0x3a')](_0x9b0e98[_0xc126('0x2f')],_0x2b0da3['filters']),_0x3b924a);if(_0x9b0e98['query']['filter']){_0x400340[_0xc126('0x39')]=_[_0xc126('0x3b')](_0x400340[_0xc126('0x39')],{'$or':_['map'](_0x3b924a,function(_0x4b4077){if(_0x4b4077[_0xc126('0x2d')]!==_0xc126('0x3c')){var _0x3cbb11={};_0x3cbb11[_0x4b4077[_0xc126('0x27')]]={'$like':'%'+_0x9b0e98['query'][_0xc126('0x3d')]+'%'};return _0x3cbb11;}})});}_0x400340=_[_0xc126('0x3b')]({},_0x400340,_0x9b0e98[_0xc126('0x3e')]);var _0x54906e={'where':_0x400340[_0xc126('0x39')]};return db[_0xc126('0x3f')][_0xc126('0x1f')](_0x54906e)['then'](function(_0x25dfb7){_0x28d2b6['count']=_0x25dfb7;if(_0x9b0e98[_0xc126('0x2f')]['includeAll']){_0x400340[_0xc126('0x40')]=[{'all':!![]}];}return db[_0xc126('0x3f')][_0xc126('0x41')](_0x400340);})[_0xc126('0x24')](function(_0x12771e){_0x28d2b6[_0xc126('0x42')]=_0x12771e;return _0x28d2b6;})['then'](respondWithFilteredResult(_0x21b337,_0x400340))[_0xc126('0x43')](handleError(_0x21b337,null));};exports[_0xc126('0x44')]=function(_0x168bb1,_0x2f9976){var _0x2d828d={'raw':![],'where':{'id':_0x168bb1['params']['id']}},_0x2cd8f8={};_0x2cd8f8[_0xc126('0x2e')]=_['keys'](db[_0xc126('0x3f')]['rawAttributes']);_0x2cd8f8[_0xc126('0x2f')]=_[_0xc126('0x30')](_0x168bb1[_0xc126('0x2f')]);_0x2cd8f8[_0xc126('0x31')]=_['intersection'](_0x2cd8f8['model'],_0x2cd8f8[_0xc126('0x2f')]);_0x2d828d[_0xc126('0x32')]=_[_0xc126('0x33')](_0x2cd8f8[_0xc126('0x2e')],qs[_0xc126('0x34')](_0x168bb1['query'][_0xc126('0x34')]));_0x2d828d[_0xc126('0x32')]=_0x2d828d[_0xc126('0x32')]['length']?_0x2d828d[_0xc126('0x32')]:_0x2cd8f8[_0xc126('0x2e')];if(_0x168bb1['query'][_0xc126('0x45')]){_0x2d828d[_0xc126('0x40')]=[{'all':!![]}];}_0x2d828d=_[_0xc126('0x3b')]({},_0x2d828d,_0x168bb1[_0xc126('0x3e')]);return db[_0xc126('0x3f')][_0xc126('0x46')](_0x2d828d)[_0xc126('0x24')](handleEntityNotFound(_0x2f9976,null))[_0xc126('0x24')](respondWithResult(_0x2f9976,null))[_0xc126('0x43')](handleError(_0x2f9976,null));};exports[_0xc126('0x47')]=function(_0x137223,_0x19a320){return db[_0xc126('0x3f')]['create'](_0x137223[_0xc126('0x48')],{})['then'](respondWithResult(_0x19a320,0xc9))['catch'](handleError(_0x19a320,null));};exports[_0xc126('0x49')]=function(_0xd82247,_0x1c3ba6){if(_0xd82247[_0xc126('0x48')]['id']){delete _0xd82247[_0xc126('0x48')]['id'];}return db[_0xc126('0x3f')][_0xc126('0x46')]({'where':{'id':_0xd82247[_0xc126('0x4a')]['id']}})[_0xc126('0x24')](handleEntityNotFound(_0x1c3ba6,null))[_0xc126('0x24')](saveUpdates(_0xd82247[_0xc126('0x48')],null))[_0xc126('0x24')](respondWithResult(_0x1c3ba6,null))[_0xc126('0x43')](handleError(_0x1c3ba6,null));};exports[_0xc126('0x25')]=function(_0x3dff1a,_0x2e25b4){return db['ZendeskConfiguration']['find']({'where':{'id':_0x3dff1a[_0xc126('0x4a')]['id']}})['then'](handleEntityNotFound(_0x2e25b4,null))['then'](removeEntity(_0x2e25b4,null))[_0xc126('0x43')](handleError(_0x2e25b4,null));};exports['getFields']=function(_0x1fe9fc,_0x51fa11,_0x3c1fee){var _0x1f1870={};var _0x40962d={};var _0xd78e7;var _0x270c5c;return db['ZendeskConfiguration'][_0xc126('0x4b')]({'where':{'id':_0x1fe9fc[_0xc126('0x4a')]['id']}})[_0xc126('0x24')](handleEntityNotFound(_0x51fa11,null))[_0xc126('0x24')](function(_0x339214){if(_0x339214){_0xd78e7=_0x339214;_0x40962d[_0xc126('0x2e')]=_['keys'](db[_0xc126('0x4c')]['rawAttributes']);_0x40962d[_0xc126('0x2f')]=_[_0xc126('0x30')](_0x1fe9fc[_0xc126('0x2f')]);_0x40962d[_0xc126('0x31')]=_['intersection'](_0x40962d['model'],_0x40962d[_0xc126('0x2f')]);_0x1f1870[_0xc126('0x32')]=_[_0xc126('0x33')](_0x40962d[_0xc126('0x2e')],qs['fields'](_0x1fe9fc[_0xc126('0x2f')]['fields']));_0x1f1870[_0xc126('0x32')]=_0x1f1870[_0xc126('0x32')]['length']?_0x1f1870[_0xc126('0x32')]:_0x40962d[_0xc126('0x2e')];_0x1f1870[_0xc126('0x37')]=qs[_0xc126('0x38')](_0x1fe9fc[_0xc126('0x2f')]['sort']);_0x1f1870['where']=qs['filters'](_[_0xc126('0x3a')](_0x1fe9fc[_0xc126('0x2f')],_0x40962d['filters']));if(_0x1fe9fc['query']['filter']){_0x1f1870[_0xc126('0x39')]=_['merge'](_0x1f1870[_0xc126('0x39')],{'$or':_[_0xc126('0x2a')](_0x1f1870['attributes'],function(_0x5c31ac){var _0x38ac65={};_0x38ac65[_0x5c31ac]={'$like':'%'+_0x1fe9fc[_0xc126('0x2f')][_0xc126('0x3d')]+'%'};return _0x38ac65;})});}_0x1f1870=_[_0xc126('0x3b')]({},_0x1f1870,_0x1fe9fc[_0xc126('0x3e')]);return _0xd78e7['getFields'](_0x1f1870);}})['then'](function(_0x3a426e){if(_0x3a426e){_0x270c5c=_0x3a426e[_0xc126('0x4d')];if(!_0x1fe9fc[_0xc126('0x2f')][_0xc126('0x35')]('nolimit')){_0x1f1870[_0xc126('0x1d')]=qs['limit'](_0x1fe9fc[_0xc126('0x2f')]['limit']);_0x1f1870[_0xc126('0x20')]=qs['offset'](_0x1fe9fc[_0xc126('0x2f')]['offset']);}return _0xd78e7['getFields'](_0x1f1870);}})[_0xc126('0x24')](function(_0x3d1632){if(_0x3d1632){return _0x3d1632?{'count':_0x270c5c,'rows':_0x3d1632}:null;}})[_0xc126('0x24')](respondWithResult(_0x51fa11,null))[_0xc126('0x43')](handleError(_0x51fa11,null));};exports[_0xc126('0x4e')]=function(_0x533f24,_0x3d58b7,_0x50d94d){var _0x4a9d3b={};var _0x5dbfa0={};var _0x5f3811;var _0x8cf5be;return db[_0xc126('0x3f')]['findOne']({'where':{'id':_0x533f24[_0xc126('0x4a')]['id']}})[_0xc126('0x24')](handleEntityNotFound(_0x3d58b7,null))[_0xc126('0x24')](function(_0x12491d){if(_0x12491d){_0x5f3811=_0x12491d;_0x5dbfa0[_0xc126('0x2e')]=_['keys'](db[_0xc126('0x4c')][_0xc126('0x2b')]);_0x5dbfa0[_0xc126('0x2f')]=_['keys'](_0x533f24[_0xc126('0x2f')]);_0x5dbfa0[_0xc126('0x31')]=_['intersection'](_0x5dbfa0[_0xc126('0x2e')],_0x5dbfa0[_0xc126('0x2f')]);_0x4a9d3b[_0xc126('0x32')]=_['intersection'](_0x5dbfa0['model'],qs[_0xc126('0x34')](_0x533f24[_0xc126('0x2f')][_0xc126('0x34')]));_0x4a9d3b[_0xc126('0x32')]=_0x4a9d3b[_0xc126('0x32')][_0xc126('0x4d')]?_0x4a9d3b['attributes']:_0x5dbfa0[_0xc126('0x2e')];_0x4a9d3b[_0xc126('0x37')]=qs[_0xc126('0x38')](_0x533f24[_0xc126('0x2f')][_0xc126('0x38')]);_0x4a9d3b['where']=qs[_0xc126('0x31')](_[_0xc126('0x3a')](_0x533f24[_0xc126('0x2f')],_0x5dbfa0['filters']));if(_0x533f24['query'][_0xc126('0x3d')]){_0x4a9d3b['where']=_[_0xc126('0x3b')](_0x4a9d3b[_0xc126('0x39')],{'$or':_[_0xc126('0x2a')](_0x4a9d3b[_0xc126('0x32')],function(_0x2cb37a){var _0x271e50={};_0x271e50[_0x2cb37a]={'$like':'%'+_0x533f24[_0xc126('0x2f')]['filter']+'%'};return _0x271e50;})});}_0x4a9d3b=_['merge']({},_0x4a9d3b,_0x533f24[_0xc126('0x3e')]);return _0x5f3811[_0xc126('0x4e')](_0x4a9d3b);}})[_0xc126('0x24')](function(_0x55ade6){if(_0x55ade6){_0x8cf5be=_0x55ade6[_0xc126('0x4d')];if(!_0x533f24['query'][_0xc126('0x35')]('nolimit')){_0x4a9d3b[_0xc126('0x1d')]=qs[_0xc126('0x1d')](_0x533f24['query'][_0xc126('0x1d')]);_0x4a9d3b[_0xc126('0x20')]=qs[_0xc126('0x20')](_0x533f24[_0xc126('0x2f')]['offset']);}return _0x5f3811[_0xc126('0x4e')](_0x4a9d3b);}})[_0xc126('0x24')](function(_0x3f8bf3){if(_0x3f8bf3){return _0x3f8bf3?{'count':_0x8cf5be,'rows':_0x3f8bf3}:null;}})['then'](respondWithResult(_0x3d58b7,null))[_0xc126('0x43')](handleError(_0x3d58b7,null));};exports[_0xc126('0x4f')]=function(_0x1249d1,_0x2916c9,_0x22b29c){var _0x32d77e={};var _0x56634a={};var _0x397768;var _0x4e9e06;return db['ZendeskConfiguration'][_0xc126('0x4b')]({'where':{'id':_0x1249d1['params']['id']}})[_0xc126('0x24')](handleEntityNotFound(_0x2916c9,null))[_0xc126('0x24')](function(_0x31782c){if(_0x31782c){_0x397768=_0x31782c;_0x56634a[_0xc126('0x2e')]=_[_0xc126('0x30')](db[_0xc126('0x4c')][_0xc126('0x2b')]);_0x56634a[_0xc126('0x2f')]=_[_0xc126('0x30')](_0x1249d1[_0xc126('0x2f')]);_0x56634a['filters']=_[_0xc126('0x33')](_0x56634a[_0xc126('0x2e')],_0x56634a[_0xc126('0x2f')]);_0x32d77e[_0xc126('0x32')]=_[_0xc126('0x33')](_0x56634a['model'],qs['fields'](_0x1249d1['query'][_0xc126('0x34')]));_0x32d77e[_0xc126('0x32')]=_0x32d77e[_0xc126('0x32')][_0xc126('0x4d')]?_0x32d77e[_0xc126('0x32')]:_0x56634a[_0xc126('0x2e')];_0x32d77e[_0xc126('0x37')]=qs[_0xc126('0x38')](_0x1249d1[_0xc126('0x2f')][_0xc126('0x38')]);_0x32d77e['where']=qs['filters'](_[_0xc126('0x3a')](_0x1249d1[_0xc126('0x2f')],_0x56634a[_0xc126('0x31')]));if(_0x1249d1['query'][_0xc126('0x3d')]){_0x32d77e['where']=_[_0xc126('0x3b')](_0x32d77e[_0xc126('0x39')],{'$or':_[_0xc126('0x2a')](_0x32d77e['attributes'],function(_0x133af1){var _0x221d5b={};_0x221d5b[_0x133af1]={'$like':'%'+_0x1249d1[_0xc126('0x2f')]['filter']+'%'};return _0x221d5b;})});}_0x32d77e=_[_0xc126('0x3b')]({},_0x32d77e,_0x1249d1[_0xc126('0x3e')]);return _0x397768[_0xc126('0x4f')](_0x32d77e);}})[_0xc126('0x24')](function(_0x14ee18){if(_0x14ee18){_0x4e9e06=_0x14ee18['length'];if(!_0x1249d1[_0xc126('0x2f')][_0xc126('0x35')](_0xc126('0x36'))){_0x32d77e[_0xc126('0x1d')]=qs[_0xc126('0x1d')](_0x1249d1[_0xc126('0x2f')]['limit']);_0x32d77e['offset']=qs[_0xc126('0x20')](_0x1249d1[_0xc126('0x2f')][_0xc126('0x20')]);}return _0x397768[_0xc126('0x4f')](_0x32d77e);}})['then'](function(_0x3e63ba){if(_0x3e63ba){return _0x3e63ba?{'count':_0x4e9e06,'rows':_0x3e63ba}:null;}})[_0xc126('0x24')](respondWithResult(_0x2916c9,null))[_0xc126('0x43')](handleError(_0x2916c9,null));};exports[_0xc126('0x50')]=function(_0x291311,_0x1593e7,_0x125e66){var _0x583839={};var _0x562941={};var _0x552cfb;var _0x433982;return db['ZendeskConfiguration'][_0xc126('0x4b')]({'where':{'id':_0x291311[_0xc126('0x4a')]['id']}})[_0xc126('0x24')](handleEntityNotFound(_0x1593e7,null))['then'](function(_0x49977a){if(_0x49977a){_0x552cfb=_0x49977a;_0x562941[_0xc126('0x2e')]=_[_0xc126('0x30')](db[_0xc126('0x51')][_0xc126('0x2b')]);_0x562941[_0xc126('0x2f')]=_['keys'](_0x291311[_0xc126('0x2f')]);_0x562941[_0xc126('0x31')]=_[_0xc126('0x33')](_0x562941['model'],_0x562941[_0xc126('0x2f')]);_0x583839[_0xc126('0x32')]=_['intersection'](_0x562941['model'],qs[_0xc126('0x34')](_0x291311[_0xc126('0x2f')]['fields']));_0x583839[_0xc126('0x32')]=_0x583839[_0xc126('0x32')][_0xc126('0x4d')]?_0x583839[_0xc126('0x32')]:_0x562941[_0xc126('0x2e')];_0x583839[_0xc126('0x37')]=qs['sort'](_0x291311[_0xc126('0x2f')][_0xc126('0x38')]);_0x583839['where']=qs[_0xc126('0x31')](_['pick'](_0x291311[_0xc126('0x2f')],_0x562941[_0xc126('0x31')]));if(_0x291311[_0xc126('0x2f')][_0xc126('0x3d')]){_0x583839[_0xc126('0x39')]=_[_0xc126('0x3b')](_0x583839[_0xc126('0x39')],{'$or':_[_0xc126('0x2a')](_0x583839[_0xc126('0x32')],function(_0x2de28a){var _0x112087={};_0x112087[_0x2de28a]={'$like':'%'+_0x291311[_0xc126('0x2f')][_0xc126('0x3d')]+'%'};return _0x112087;})});}_0x583839=_[_0xc126('0x3b')]({},_0x583839,_0x291311[_0xc126('0x3e')]);return _0x552cfb[_0xc126('0x50')](_0x583839);}})[_0xc126('0x24')](function(_0x2ed589){if(_0x2ed589){_0x433982=_0x2ed589['length'];if(!_0x291311[_0xc126('0x2f')][_0xc126('0x35')](_0xc126('0x36'))){_0x583839[_0xc126('0x1d')]=qs['limit'](_0x291311[_0xc126('0x2f')][_0xc126('0x1d')]);_0x583839['offset']=qs[_0xc126('0x20')](_0x291311[_0xc126('0x2f')]['offset']);}return _0x552cfb[_0xc126('0x50')](_0x583839);}})[_0xc126('0x24')](function(_0x192d38){if(_0x192d38){return _0x192d38?{'count':_0x433982,'rows':_0x192d38}:null;}})[_0xc126('0x24')](respondWithResult(_0x1593e7,null))[_0xc126('0x43')](handleError(_0x1593e7,null));};exports[_0xc126('0x52')]=function(_0x4b8ec6,_0x14f8ab,_0x5c3a4a){if(_0x4b8ec6['body']['id']){delete _0x4b8ec6['body']['id'];}return db['ZendeskConfiguration'][_0xc126('0x4b')]({'where':{'id':_0x4b8ec6['params']['id']}})[_0xc126('0x24')](handleEntityNotFound(_0x14f8ab,null))[_0xc126('0x24')](function(_0xa9d99b){if(_0xa9d99b){return _0xa9d99b[_0xc126('0x52')](_0x4b8ec6[_0xc126('0x48')][_0xc126('0x53')]||[]);}return null;})['then'](respondWithResult(_0x14f8ab,null))[_0xc126('0x43')](handleError(_0x14f8ab,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xef0f=['moment','request-promise','path','rimraf','./intZendeskConfiguration.attributes','exports','define','ZendeskConfiguration','lodash','../../config/logger','api'];(function(_0x46bac8,_0x33ca8c){var _0x3b196c=function(_0x31f2b6){while(--_0x31f2b6){_0x46bac8['push'](_0x46bac8['shift']());}};_0x3b196c(++_0x33ca8c);}(_0xef0f,0x168));var _0xfef0=function(_0x59b07f,_0x59eb6){_0x59b07f=_0x59b07f-0x0;var _0x3d9a74=_0xef0f[_0x59b07f];return _0x3d9a74;};'use strict';var _=require(_0xfef0('0x0'));var util=require('util');var logger=require(_0xfef0('0x1'))(_0xfef0('0x2'));var moment=require(_0xfef0('0x3'));var BPromise=require('bluebird');var rp=require(_0xfef0('0x4'));var fs=require('fs');var path=require(_0xfef0('0x5'));var rimraf=require(_0xfef0('0x6'));var config=require('../../config/environment');var attributes=require(_0xfef0('0x7'));module[_0xfef0('0x8')]=function(_0x2697df,_0x315a8c){return _0x2697df[_0xfef0('0x9')](_0xfef0('0xa'),attributes,{'tableName':'int_zendesk_configurations','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x13f6=['request-promise','rimraf','../../config/environment','./intZendeskConfiguration.attributes','lodash','util','moment','bluebird'];(function(_0x3d571c,_0x1010b4){var _0x11174e=function(_0x144982){while(--_0x144982){_0x3d571c['push'](_0x3d571c['shift']());}};_0x11174e(++_0x1010b4);}(_0x13f6,0x124));var _0x613f=function(_0x6b22da,_0x110e58){_0x6b22da=_0x6b22da-0x0;var _0x894698=_0x13f6[_0x6b22da];return _0x894698;};'use strict';var _=require(_0x613f('0x0'));var util=require(_0x613f('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0x613f('0x2'));var BPromise=require(_0x613f('0x3'));var rp=require(_0x613f('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x613f('0x5'));var config=require(_0x613f('0x6'));var attributes=require(_0x613f('0x7'));module['exports']=function(_0x3f3525,_0x2367b3){return _0x3f3525['define']('ZendeskConfiguration',attributes,{'tableName':'int_zendesk_configurations','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb2ca=['catch','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','request','ZendeskConfiguration,\x20%s,\x20%s','debug','ZendeskConfiguration,\x20%s,\x20%s,\x20%s','stringify','error','code','message','request\x20sent'];(function(_0x3ffa95,_0x326da4){var _0xbd03ff=function(_0x1138eb){while(--_0x1138eb){_0x3ffa95['push'](_0x3ffa95['shift']());}};_0xbd03ff(++_0x326da4);}(_0xb2ca,0x1b9));var _0xab2c=function(_0x2be8c2,_0x14a4b5){_0x2be8c2=_0x2be8c2-0x0;var _0x97f531=_0xb2ca[_0x2be8c2];return _0x97f531;};'use strict';var _=require(_0xab2c('0x0'));var util=require(_0xab2c('0x1'));var moment=require(_0xab2c('0x2'));var BPromise=require('bluebird');var rs=require(_0xab2c('0x3'));var fs=require('fs');var Redis=require(_0xab2c('0x4'));var db=require(_0xab2c('0x5'))['db'];var utils=require(_0xab2c('0x6'));var logger=require(_0xab2c('0x7'))(_0xab2c('0x8'));var config=require(_0xab2c('0x9'));var jayson=require(_0xab2c('0xa'));var client=jayson[_0xab2c('0xb')]['http']({'port':0x232a});function respondWithRpcPromise(_0x3eef7d,_0x86e626,_0x42392f){return new BPromise(function(_0xf83dd1,_0x120ec9){return client[_0xab2c('0xc')](_0x3eef7d,_0x42392f)['then'](function(_0x4bfa1b){logger['info'](_0xab2c('0xd'),_0x86e626,'request\x20sent');logger[_0xab2c('0xe')](_0xab2c('0xf'),_0x86e626,'request\x20sent',JSON[_0xab2c('0x10')](_0x4bfa1b));if(_0x4bfa1b['error']){if(_0x4bfa1b[_0xab2c('0x11')][_0xab2c('0x12')]===0x1f4){logger[_0xab2c('0x11')](_0xab2c('0xd'),_0x86e626,_0x4bfa1b['error'][_0xab2c('0x13')]);return _0x120ec9(_0x4bfa1b[_0xab2c('0x11')][_0xab2c('0x13')]);}logger['error'](_0xab2c('0xd'),_0x86e626,_0x4bfa1b[_0xab2c('0x11')][_0xab2c('0x13')]);return _0xf83dd1(_0x4bfa1b[_0xab2c('0x11')][_0xab2c('0x13')]);}else{logger['info'](_0xab2c('0xd'),_0x86e626,_0xab2c('0x14'));_0xf83dd1(_0x4bfa1b['result'][_0xab2c('0x13')]);}})[_0xab2c('0x15')](function(_0xdb954e){logger['error']('ZendeskConfiguration,\x20%s,\x20%s',_0x86e626,_0xdb954e);_0x120ec9(_0xdb954e);});});}
\ No newline at end of file
+var _0x7ae9=['rpc','../../config/environment','jayson/promise','http','request','info','request\x20sent','debug','ZendeskConfiguration,\x20%s,\x20%s,\x20%s','stringify','error','message','ZendeskConfiguration,\x20%s,\x20%s','result','catch','lodash','moment','bluebird','ioredis','../../mysqldb','../../config/utils'];(function(_0x2fc026,_0xdc4f7a){var _0x34d056=function(_0x457d02){while(--_0x457d02){_0x2fc026['push'](_0x2fc026['shift']());}};_0x34d056(++_0xdc4f7a);}(_0x7ae9,0xf6));var _0x97ae=function(_0x3a8e99,_0x2436e4){_0x3a8e99=_0x3a8e99-0x0;var _0x240852=_0x7ae9[_0x3a8e99];return _0x240852;};'use strict';var _=require(_0x97ae('0x0'));var util=require('util');var moment=require(_0x97ae('0x1'));var BPromise=require(_0x97ae('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x97ae('0x3'));var db=require(_0x97ae('0x4'))['db'];var utils=require(_0x97ae('0x5'));var logger=require('../../config/logger')(_0x97ae('0x6'));var config=require(_0x97ae('0x7'));var jayson=require(_0x97ae('0x8'));var client=jayson['client'][_0x97ae('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x3aeff4,_0x4fa74e,_0x254f6f){return new BPromise(function(_0x3596f1,_0x4530fa){return client[_0x97ae('0xa')](_0x3aeff4,_0x254f6f)['then'](function(_0x588617){logger[_0x97ae('0xb')]('ZendeskConfiguration,\x20%s,\x20%s',_0x4fa74e,_0x97ae('0xc'));logger[_0x97ae('0xd')](_0x97ae('0xe'),_0x4fa74e,'request\x20sent',JSON[_0x97ae('0xf')](_0x588617));if(_0x588617[_0x97ae('0x10')]){if(_0x588617['error']['code']===0x1f4){logger['error']('ZendeskConfiguration,\x20%s,\x20%s',_0x4fa74e,_0x588617[_0x97ae('0x10')][_0x97ae('0x11')]);return _0x4530fa(_0x588617['error'][_0x97ae('0x11')]);}logger[_0x97ae('0x10')]('ZendeskConfiguration,\x20%s,\x20%s',_0x4fa74e,_0x588617[_0x97ae('0x10')][_0x97ae('0x11')]);return _0x3596f1(_0x588617[_0x97ae('0x10')][_0x97ae('0x11')]);}else{logger['info'](_0x97ae('0x12'),_0x4fa74e,'request\x20sent');_0x3596f1(_0x588617[_0x97ae('0x13')][_0x97ae('0x11')]);}})[_0x97ae('0x14')](function(_0x465ef4){logger[_0x97ae('0x10')](_0x97ae('0x12'),_0x4fa74e,_0x465ef4);_0x4530fa(_0x465ef4);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1920=['../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/:id','show','post','create','update','destroy','exports','multer','util','connect-timeout','express','Router','fs-extra'];(function(_0x5892bf,_0x16530c){var _0x33367a=function(_0x1f41eb){while(--_0x1f41eb){_0x5892bf['push'](_0x5892bf['shift']());}};_0x33367a(++_0x16530c);}(_0x1920,0x189));var _0x0192=function(_0x117b99,_0x2924f8){_0x117b99=_0x117b99-0x0;var _0x40bedf=_0x1920[_0x117b99];return _0x40bedf;};'use strict';var multer=require(_0x0192('0x0'));var util=require(_0x0192('0x1'));var path=require('path');var timeout=require(_0x0192('0x2'));var express=require(_0x0192('0x3'));var router=express[_0x0192('0x4')]();var fs_extra=require(_0x0192('0x5'));var auth=require(_0x0192('0x6'));var interaction=require(_0x0192('0x7'));var config=require(_0x0192('0x8'));var controller=require('./intZendeskField.controller');router[_0x0192('0x9')]('/',auth[_0x0192('0xa')](),controller[_0x0192('0xb')]);router[_0x0192('0x9')](_0x0192('0xc'),auth[_0x0192('0xa')](),controller[_0x0192('0xd')]);router[_0x0192('0xe')]('/',auth[_0x0192('0xa')](),controller[_0x0192('0xf')]);router['put'](_0x0192('0xc'),auth[_0x0192('0xa')](),controller[_0x0192('0x10')]);router['delete'](_0x0192('0xc'),auth[_0x0192('0xa')](),controller[_0x0192('0x11')]);module[_0x0192('0x12')]=router;
\ No newline at end of file
+var _0xa07b=['post','create','put','update','delete','destroy','exports','multer','util','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','isAuthenticated','index','/:id','show'];(function(_0xbe05c8,_0x26be13){var _0xbd60ca=function(_0x202473){while(--_0x202473){_0xbe05c8['push'](_0xbe05c8['shift']());}};_0xbd60ca(++_0x26be13);}(_0xa07b,0xe3));var _0xba07=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xa07b[_0x20a584];return _0x4b41a8;};'use strict';var multer=require(_0xba07('0x0'));var util=require(_0xba07('0x1'));var path=require(_0xba07('0x2'));var timeout=require(_0xba07('0x3'));var express=require(_0xba07('0x4'));var router=express[_0xba07('0x5')]();var fs_extra=require('fs-extra');var auth=require(_0xba07('0x6'));var interaction=require(_0xba07('0x7'));var config=require(_0xba07('0x8'));var controller=require('./intZendeskField.controller');router['get']('/',auth[_0xba07('0x9')](),controller[_0xba07('0xa')]);router['get'](_0xba07('0xb'),auth[_0xba07('0x9')](),controller[_0xba07('0xc')]);router[_0xba07('0xd')]('/',auth[_0xba07('0x9')](),controller[_0xba07('0xe')]);router[_0xba07('0xf')](_0xba07('0xb'),auth['isAuthenticated'](),controller[_0xba07('0x10')]);router[_0xba07('0x11')](_0xba07('0xb'),auth[_0xba07('0x9')](),controller[_0xba07('0x12')]);module[_0xba07('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfb2c=['picklist','STRING','BOOLEAN','sequelize','ENUM','string','variable','customVariable','keyValue'];(function(_0x420b24,_0x382adc){var _0x4da552=function(_0x4e1623){while(--_0x4e1623){_0x420b24['push'](_0x420b24['shift']());}};_0x4da552(++_0x382adc);}(_0xfb2c,0xd2));var _0xcfb2=function(_0x56482c,_0x16118d){_0x56482c=_0x56482c-0x0;var _0x5aae7a=_0xfb2c[_0x56482c];return _0x5aae7a;};'use strict';var Sequelize=require(_0xcfb2('0x0'));module['exports']={'type':{'type':Sequelize[_0xcfb2('0x1')](_0xcfb2('0x2'),_0xcfb2('0x3'),_0xcfb2('0x4'),_0xcfb2('0x5'),_0xcfb2('0x6')),'defaultValue':_0xcfb2('0x2')},'content':{'type':Sequelize[_0xcfb2('0x7')]},'key':{'type':Sequelize[_0xcfb2('0x7')]},'keyType':{'type':Sequelize['ENUM'](_0xcfb2('0x2'),_0xcfb2('0x3'),_0xcfb2('0x4'))},'keyContent':{'type':Sequelize[_0xcfb2('0x7')]},'idField':{'type':Sequelize[_0xcfb2('0x7')]},'nameField':{'type':Sequelize[_0xcfb2('0x7')]},'customField':{'type':Sequelize[_0xcfb2('0x8')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0xcfb2('0x7')]}};
\ No newline at end of file
+var _0xa220=['STRING','BOOLEAN','exports','ENUM','variable','customVariable','picklist','string'];(function(_0x45368d,_0x462150){var _0x579abf=function(_0x45c289){while(--_0x45c289){_0x45368d['push'](_0x45368d['shift']());}};_0x579abf(++_0x462150);}(_0xa220,0xd2));var _0x0a22=function(_0x3ab51d,_0x2fa01d){_0x3ab51d=_0x3ab51d-0x0;var _0x29a04e=_0xa220[_0x3ab51d];return _0x29a04e;};'use strict';var Sequelize=require('sequelize');module[_0x0a22('0x0')]={'type':{'type':Sequelize[_0x0a22('0x1')]('string',_0x0a22('0x2'),_0x0a22('0x3'),'keyValue',_0x0a22('0x4')),'defaultValue':_0x0a22('0x5')},'content':{'type':Sequelize[_0x0a22('0x6')]},'key':{'type':Sequelize[_0x0a22('0x6')]},'keyType':{'type':Sequelize[_0x0a22('0x1')](_0x0a22('0x5'),_0x0a22('0x2'),_0x0a22('0x3'))},'keyContent':{'type':Sequelize[_0x0a22('0x6')]},'idField':{'type':Sequelize[_0x0a22('0x6')]},'nameField':{'type':Sequelize[_0x0a22('0x6')]},'customField':{'type':Sequelize[_0x0a22('0x7')],'defaultValue':!![]},'variableName':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb56f=['ejs','fs-extra','lodash','squel','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','save','update','then','end','error','name','send','map','ZendeskField','rawAttributes','type','key','model','query','filters','intersection','fields','length','attributes','hasOwnProperty','order','sort','where','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','keys','create','body','params','destroy','find','eml-format','rimraf','zip-dir','request-promise','moment','mustache','util','sox','to-csv'];(function(_0x2b91c5,_0x3b6db5){var _0xbd5531=function(_0x54783d){while(--_0x54783d){_0x2b91c5['push'](_0x2b91c5['shift']());}};_0xbd5531(++_0x3b6db5);}(_0xb56f,0x113));var _0xfb56=function(_0x340b27,_0x566f75){_0x340b27=_0x340b27-0x0;var _0x28a892=_0xb56f[_0x340b27];return _0x28a892;};'use strict';var emlformat=require(_0xfb56('0x0'));var rimraf=require(_0xfb56('0x1'));var zipdir=require(_0xfb56('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xfb56('0x3'));var moment=require(_0xfb56('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xfb56('0x5'));var util=require(_0xfb56('0x6'));var path=require('path');var sox=require(_0xfb56('0x7'));var csv=require(_0xfb56('0x8'));var ejs=require(_0xfb56('0x9'));var fs=require('fs');var fs_extra=require(_0xfb56('0xa'));var _=require(_0xfb56('0xb'));var squel=require(_0xfb56('0xc'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xfb56('0xd'));var toCsv=require(_0xfb56('0x8'));var querystring=require(_0xfb56('0xe'));var Papa=require(_0xfb56('0xf'));var Redis=require(_0xfb56('0x10'));var authService=require(_0xfb56('0x11'));var qs=require(_0xfb56('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xfb56('0x13'));var utils=require('../../config/utils');var config=require(_0xfb56('0x14'));var licenseUtil=require(_0xfb56('0x15'));var db=require(_0xfb56('0x16'))['db'];function respondWithStatusCode(_0x1c3d74,_0x52159b){_0x52159b=_0x52159b||0xcc;return function(_0x95b3eb){if(_0x95b3eb){return _0x1c3d74[_0xfb56('0x17')](_0x52159b);}return _0x1c3d74[_0xfb56('0x18')](_0x52159b)['end']();};}function respondWithResult(_0x1a9f3c,_0x4d2602){_0x4d2602=_0x4d2602||0xc8;return function(_0x550930){if(_0x550930){return _0x1a9f3c[_0xfb56('0x18')](_0x4d2602)[_0xfb56('0x19')](_0x550930);}};}function respondWithFilteredResult(_0xc1e894,_0xed4a16){return function(_0x1c1f80){if(_0x1c1f80){var _0x3664ac=typeof _0xed4a16[_0xfb56('0x1a')]===_0xfb56('0x1b')&&typeof _0xed4a16[_0xfb56('0x1c')]===_0xfb56('0x1b');var _0x355016=_0x1c1f80[_0xfb56('0x1d')];var _0xaa69ef=_0x3664ac?0x0:_0xed4a16[_0xfb56('0x1a')];var _0x11c7fa=_0x3664ac?_0x1c1f80[_0xfb56('0x1d')]:_0xed4a16['offset']+_0xed4a16['limit'];var _0x262672;if(_0x11c7fa>=_0x355016){_0x11c7fa=_0x355016;_0x262672=0xc8;}else{_0x262672=0xce;}_0xc1e894[_0xfb56('0x18')](_0x262672);return _0xc1e894[_0xfb56('0x1e')](_0xfb56('0x1f'),_0xaa69ef+'-'+_0x11c7fa+'/'+_0x355016)[_0xfb56('0x19')](_0x1c1f80);}return null;};}function patchUpdates(_0x116bef){return function(_0x2f64c7){try{jsonpatch['apply'](_0x2f64c7,_0x116bef,!![]);}catch(_0x2d9327){return BPromise['reject'](_0x2d9327);}return _0x2f64c7[_0xfb56('0x20')]();};}function saveUpdates(_0x999533,_0x3a1e6c){return function(_0x340d47){if(_0x340d47){return _0x340d47[_0xfb56('0x21')](_0x999533)[_0xfb56('0x22')](function(_0xb7076d){return _0xb7076d;});}return null;};}function removeEntity(_0x18d1fe,_0x189269){return function(_0x2c924c){if(_0x2c924c){return _0x2c924c['destroy']()[_0xfb56('0x22')](function(){_0x18d1fe[_0xfb56('0x18')](0xcc)[_0xfb56('0x23')]();});}};}function handleEntityNotFound(_0x158869,_0x14b6bc){return function(_0x57b4a8){if(!_0x57b4a8){_0x158869[_0xfb56('0x17')](0x194);}return _0x57b4a8;};}function handleError(_0x478c76,_0x135a43){_0x135a43=_0x135a43||0x1f4;return function(_0x4cda28){logger[_0xfb56('0x24')](_0x4cda28['stack']);if(_0x4cda28[_0xfb56('0x25')]){delete _0x4cda28[_0xfb56('0x25')];}_0x478c76[_0xfb56('0x18')](_0x135a43)[_0xfb56('0x26')](_0x4cda28);};}exports['index']=function(_0x41c6f4,_0x42fa40){var _0x589e3c={},_0x2b5eb9={},_0x41ab0d={'count':0x0,'rows':[]};var _0x15ec05=_[_0xfb56('0x27')](db[_0xfb56('0x28')][_0xfb56('0x29')],function(_0x4ead45){return{'name':_0x4ead45['fieldName'],'type':_0x4ead45[_0xfb56('0x2a')][_0xfb56('0x2b')]};});_0x2b5eb9[_0xfb56('0x2c')]=_[_0xfb56('0x27')](_0x15ec05,_0xfb56('0x25'));_0x2b5eb9[_0xfb56('0x2d')]=_['keys'](_0x41c6f4[_0xfb56('0x2d')]);_0x2b5eb9[_0xfb56('0x2e')]=_[_0xfb56('0x2f')](_0x2b5eb9['model'],_0x2b5eb9[_0xfb56('0x2d')]);_0x589e3c['attributes']=_[_0xfb56('0x2f')](_0x2b5eb9[_0xfb56('0x2c')],qs['fields'](_0x41c6f4['query'][_0xfb56('0x30')]));_0x589e3c['attributes']=_0x589e3c['attributes'][_0xfb56('0x31')]?_0x589e3c[_0xfb56('0x32')]:_0x2b5eb9['model'];if(!_0x41c6f4[_0xfb56('0x2d')][_0xfb56('0x33')]('nolimit')){_0x589e3c[_0xfb56('0x1c')]=qs[_0xfb56('0x1c')](_0x41c6f4[_0xfb56('0x2d')][_0xfb56('0x1c')]);_0x589e3c[_0xfb56('0x1a')]=qs[_0xfb56('0x1a')](_0x41c6f4[_0xfb56('0x2d')][_0xfb56('0x1a')]);}_0x589e3c[_0xfb56('0x34')]=qs[_0xfb56('0x35')](_0x41c6f4[_0xfb56('0x2d')][_0xfb56('0x35')]);_0x589e3c[_0xfb56('0x36')]=qs['filters'](_['pick'](_0x41c6f4['query'],_0x2b5eb9['filters']),_0x15ec05);if(_0x41c6f4[_0xfb56('0x2d')][_0xfb56('0x37')]){_0x589e3c['where']=_[_0xfb56('0x38')](_0x589e3c[_0xfb56('0x36')],{'$or':_[_0xfb56('0x27')](_0x15ec05,function(_0x366ad9){if(_0x366ad9['type']!==_0xfb56('0x39')){var _0x5723ff={};_0x5723ff[_0x366ad9[_0xfb56('0x25')]]={'$like':'%'+_0x41c6f4['query'][_0xfb56('0x37')]+'%'};return _0x5723ff;}})});}_0x589e3c=_[_0xfb56('0x38')]({},_0x589e3c,_0x41c6f4[_0xfb56('0x3a')]);var _0x40bdff={'where':_0x589e3c[_0xfb56('0x36')]};return db[_0xfb56('0x28')][_0xfb56('0x1d')](_0x40bdff)[_0xfb56('0x22')](function(_0xb5f36b){_0x41ab0d[_0xfb56('0x1d')]=_0xb5f36b;if(_0x41c6f4[_0xfb56('0x2d')][_0xfb56('0x3b')]){_0x589e3c[_0xfb56('0x3c')]=[{'all':!![]}];}return db[_0xfb56('0x28')][_0xfb56('0x3d')](_0x589e3c);})['then'](function(_0x370a98){_0x41ab0d[_0xfb56('0x3e')]=_0x370a98;return _0x41ab0d;})[_0xfb56('0x22')](respondWithFilteredResult(_0x42fa40,_0x589e3c))[_0xfb56('0x3f')](handleError(_0x42fa40,null));};exports[_0xfb56('0x40')]=function(_0x4f342e,_0x16b2bf){var _0x48152b={'raw':!![],'where':{'id':_0x4f342e['params']['id']}},_0x32b4e5={};_0x32b4e5[_0xfb56('0x2c')]=_[_0xfb56('0x41')](db[_0xfb56('0x28')]['rawAttributes']);_0x32b4e5[_0xfb56('0x2d')]=_[_0xfb56('0x41')](_0x4f342e[_0xfb56('0x2d')]);_0x32b4e5[_0xfb56('0x2e')]=_[_0xfb56('0x2f')](_0x32b4e5[_0xfb56('0x2c')],_0x32b4e5[_0xfb56('0x2d')]);_0x48152b[_0xfb56('0x32')]=_['intersection'](_0x32b4e5['model'],qs[_0xfb56('0x30')](_0x4f342e[_0xfb56('0x2d')][_0xfb56('0x30')]));_0x48152b[_0xfb56('0x32')]=_0x48152b[_0xfb56('0x32')]['length']?_0x48152b[_0xfb56('0x32')]:_0x32b4e5['model'];if(_0x4f342e['query']['includeAll']){_0x48152b[_0xfb56('0x3c')]=[{'all':!![]}];}_0x48152b=_[_0xfb56('0x38')]({},_0x48152b,_0x4f342e[_0xfb56('0x3a')]);return db[_0xfb56('0x28')]['find'](_0x48152b)['then'](handleEntityNotFound(_0x16b2bf,null))['then'](respondWithResult(_0x16b2bf,null))['catch'](handleError(_0x16b2bf,null));};exports[_0xfb56('0x42')]=function(_0x252681,_0x3f1986){return db[_0xfb56('0x28')][_0xfb56('0x42')](_0x252681[_0xfb56('0x43')],{})['then'](respondWithResult(_0x3f1986,0xc9))[_0xfb56('0x3f')](handleError(_0x3f1986,null));};exports[_0xfb56('0x21')]=function(_0x1450fc,_0xd6a975){if(_0x1450fc[_0xfb56('0x43')]['id']){delete _0x1450fc[_0xfb56('0x43')]['id'];}return db[_0xfb56('0x28')]['find']({'where':{'id':_0x1450fc[_0xfb56('0x44')]['id']}})[_0xfb56('0x22')](handleEntityNotFound(_0xd6a975,null))['then'](saveUpdates(_0x1450fc[_0xfb56('0x43')],null))['then'](respondWithResult(_0xd6a975,null))[_0xfb56('0x3f')](handleError(_0xd6a975,null));};exports[_0xfb56('0x45')]=function(_0x59de40,_0x46088f){return db[_0xfb56('0x28')][_0xfb56('0x46')]({'where':{'id':_0x59de40['params']['id']}})[_0xfb56('0x22')](handleEntityNotFound(_0x46088f,null))[_0xfb56('0x22')](removeEntity(_0x46088f,null))[_0xfb56('0x3f')](handleError(_0x46088f,null));};
\ No newline at end of file
+var _0xdfe0=['limit','count','set','Content-Range','apply','save','update','then','destroy','end','error','stack','name','send','index','map','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','options','ZendeskField','includeAll','include','catch','show','params','rawAttributes','create','body','find','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined'];(function(_0x3abe75,_0x957926){var _0x40b56e=function(_0x73556f){while(--_0x73556f){_0x3abe75['push'](_0x3abe75['shift']());}};_0x40b56e(++_0x957926);}(_0xdfe0,0xce));var _0x0dfe=function(_0x324393,_0x5225ae){_0x324393=_0x324393-0x0;var _0x150921=_0xdfe0[_0x324393];return _0x150921;};'use strict';var emlformat=require(_0x0dfe('0x0'));var rimraf=require(_0x0dfe('0x1'));var zipdir=require(_0x0dfe('0x2'));var jsonpatch=require(_0x0dfe('0x3'));var rp=require(_0x0dfe('0x4'));var moment=require(_0x0dfe('0x5'));var BPromise=require(_0x0dfe('0x6'));var Mustache=require(_0x0dfe('0x7'));var util=require(_0x0dfe('0x8'));var path=require('path');var sox=require(_0x0dfe('0x9'));var csv=require(_0x0dfe('0xa'));var ejs=require(_0x0dfe('0xb'));var fs=require('fs');var fs_extra=require(_0x0dfe('0xc'));var _=require(_0x0dfe('0xd'));var squel=require('squel');var crypto=require(_0x0dfe('0xe'));var jsforce=require(_0x0dfe('0xf'));var deskjs=require(_0x0dfe('0x10'));var toCsv=require(_0x0dfe('0xa'));var querystring=require(_0x0dfe('0x11'));var Papa=require(_0x0dfe('0x12'));var Redis=require(_0x0dfe('0x13'));var authService=require(_0x0dfe('0x14'));var qs=require(_0x0dfe('0x15'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x0dfe('0x16'));var logger=require(_0x0dfe('0x17'))(_0x0dfe('0x18'));var utils=require(_0x0dfe('0x19'));var config=require(_0x0dfe('0x1a'));var licenseUtil=require(_0x0dfe('0x1b'));var db=require(_0x0dfe('0x1c'))['db'];function respondWithStatusCode(_0x4ab3ac,_0x387e7b){_0x387e7b=_0x387e7b||0xcc;return function(_0x154935){if(_0x154935){return _0x4ab3ac[_0x0dfe('0x1d')](_0x387e7b);}return _0x4ab3ac[_0x0dfe('0x1e')](_0x387e7b)['end']();};}function respondWithResult(_0x2671d6,_0x21f98f){_0x21f98f=_0x21f98f||0xc8;return function(_0x285171){if(_0x285171){return _0x2671d6[_0x0dfe('0x1e')](_0x21f98f)[_0x0dfe('0x1f')](_0x285171);}};}function respondWithFilteredResult(_0x56bda7,_0x3e250c){return function(_0x4d84d1){if(_0x4d84d1){var _0x563f93=typeof _0x3e250c[_0x0dfe('0x20')]===_0x0dfe('0x21')&&typeof _0x3e250c[_0x0dfe('0x22')]===_0x0dfe('0x21');var _0x62ba49=_0x4d84d1['count'];var _0x4e3bd4=_0x563f93?0x0:_0x3e250c['offset'];var _0x488870=_0x563f93?_0x4d84d1[_0x0dfe('0x23')]:_0x3e250c[_0x0dfe('0x20')]+_0x3e250c[_0x0dfe('0x22')];var _0xa7a32b;if(_0x488870>=_0x62ba49){_0x488870=_0x62ba49;_0xa7a32b=0xc8;}else{_0xa7a32b=0xce;}_0x56bda7['status'](_0xa7a32b);return _0x56bda7[_0x0dfe('0x24')](_0x0dfe('0x25'),_0x4e3bd4+'-'+_0x488870+'/'+_0x62ba49)[_0x0dfe('0x1f')](_0x4d84d1);}return null;};}function patchUpdates(_0x27d11e){return function(_0x38497c){try{jsonpatch[_0x0dfe('0x26')](_0x38497c,_0x27d11e,!![]);}catch(_0x34014f){return BPromise['reject'](_0x34014f);}return _0x38497c[_0x0dfe('0x27')]();};}function saveUpdates(_0xf8e966,_0x3aa43d){return function(_0x21fdd6){if(_0x21fdd6){return _0x21fdd6[_0x0dfe('0x28')](_0xf8e966)[_0x0dfe('0x29')](function(_0x13c255){return _0x13c255;});}return null;};}function removeEntity(_0x20f4ce,_0x470423){return function(_0x1e52b4){if(_0x1e52b4){return _0x1e52b4[_0x0dfe('0x2a')]()['then'](function(){_0x20f4ce[_0x0dfe('0x1e')](0xcc)[_0x0dfe('0x2b')]();});}};}function handleEntityNotFound(_0x4b385c,_0x1a33a0){return function(_0x28028c){if(!_0x28028c){_0x4b385c['sendStatus'](0x194);}return _0x28028c;};}function handleError(_0x47baa3,_0x3b5607){_0x3b5607=_0x3b5607||0x1f4;return function(_0x21f5a7){logger[_0x0dfe('0x2c')](_0x21f5a7[_0x0dfe('0x2d')]);if(_0x21f5a7[_0x0dfe('0x2e')]){delete _0x21f5a7[_0x0dfe('0x2e')];}_0x47baa3[_0x0dfe('0x1e')](_0x3b5607)[_0x0dfe('0x2f')](_0x21f5a7);};}exports[_0x0dfe('0x30')]=function(_0xed6ab3,_0x38cf49){var _0x2d2757={},_0x546a49={},_0x193f4a={'count':0x0,'rows':[]};var _0x313406=_[_0x0dfe('0x31')](db['ZendeskField']['rawAttributes'],function(_0x3a2d54){return{'name':_0x3a2d54[_0x0dfe('0x32')],'type':_0x3a2d54[_0x0dfe('0x33')][_0x0dfe('0x34')]};});_0x546a49[_0x0dfe('0x35')]=_[_0x0dfe('0x31')](_0x313406,'name');_0x546a49[_0x0dfe('0x36')]=_[_0x0dfe('0x37')](_0xed6ab3[_0x0dfe('0x36')]);_0x546a49[_0x0dfe('0x38')]=_[_0x0dfe('0x39')](_0x546a49['model'],_0x546a49[_0x0dfe('0x36')]);_0x2d2757[_0x0dfe('0x3a')]=_['intersection'](_0x546a49[_0x0dfe('0x35')],qs[_0x0dfe('0x3b')](_0xed6ab3['query'][_0x0dfe('0x3b')]));_0x2d2757[_0x0dfe('0x3a')]=_0x2d2757[_0x0dfe('0x3a')][_0x0dfe('0x3c')]?_0x2d2757[_0x0dfe('0x3a')]:_0x546a49[_0x0dfe('0x35')];if(!_0xed6ab3[_0x0dfe('0x36')][_0x0dfe('0x3d')](_0x0dfe('0x3e'))){_0x2d2757[_0x0dfe('0x22')]=qs[_0x0dfe('0x22')](_0xed6ab3[_0x0dfe('0x36')][_0x0dfe('0x22')]);_0x2d2757[_0x0dfe('0x20')]=qs[_0x0dfe('0x20')](_0xed6ab3['query'][_0x0dfe('0x20')]);}_0x2d2757[_0x0dfe('0x3f')]=qs[_0x0dfe('0x40')](_0xed6ab3[_0x0dfe('0x36')]['sort']);_0x2d2757[_0x0dfe('0x41')]=qs['filters'](_[_0x0dfe('0x42')](_0xed6ab3[_0x0dfe('0x36')],_0x546a49[_0x0dfe('0x38')]),_0x313406);if(_0xed6ab3[_0x0dfe('0x36')][_0x0dfe('0x43')]){_0x2d2757[_0x0dfe('0x41')]=_['merge'](_0x2d2757[_0x0dfe('0x41')],{'$or':_['map'](_0x313406,function(_0x3a9d61){if(_0x3a9d61['type']!=='VIRTUAL'){var _0x5aaa7e={};_0x5aaa7e[_0x3a9d61['name']]={'$like':'%'+_0xed6ab3[_0x0dfe('0x36')][_0x0dfe('0x43')]+'%'};return _0x5aaa7e;}})});}_0x2d2757=_[_0x0dfe('0x44')]({},_0x2d2757,_0xed6ab3[_0x0dfe('0x45')]);var _0x25dc8f={'where':_0x2d2757['where']};return db[_0x0dfe('0x46')][_0x0dfe('0x23')](_0x25dc8f)[_0x0dfe('0x29')](function(_0x1d0cbe){_0x193f4a['count']=_0x1d0cbe;if(_0xed6ab3['query'][_0x0dfe('0x47')]){_0x2d2757[_0x0dfe('0x48')]=[{'all':!![]}];}return db[_0x0dfe('0x46')]['findAll'](_0x2d2757);})[_0x0dfe('0x29')](function(_0x58cd8a){_0x193f4a['rows']=_0x58cd8a;return _0x193f4a;})['then'](respondWithFilteredResult(_0x38cf49,_0x2d2757))[_0x0dfe('0x49')](handleError(_0x38cf49,null));};exports[_0x0dfe('0x4a')]=function(_0x7439b6,_0x1376bd){var _0x12816b={'raw':!![],'where':{'id':_0x7439b6[_0x0dfe('0x4b')]['id']}},_0x3072e5={};_0x3072e5['model']=_[_0x0dfe('0x37')](db['ZendeskField'][_0x0dfe('0x4c')]);_0x3072e5[_0x0dfe('0x36')]=_['keys'](_0x7439b6['query']);_0x3072e5[_0x0dfe('0x38')]=_[_0x0dfe('0x39')](_0x3072e5[_0x0dfe('0x35')],_0x3072e5['query']);_0x12816b[_0x0dfe('0x3a')]=_[_0x0dfe('0x39')](_0x3072e5[_0x0dfe('0x35')],qs[_0x0dfe('0x3b')](_0x7439b6[_0x0dfe('0x36')][_0x0dfe('0x3b')]));_0x12816b['attributes']=_0x12816b[_0x0dfe('0x3a')][_0x0dfe('0x3c')]?_0x12816b[_0x0dfe('0x3a')]:_0x3072e5['model'];if(_0x7439b6[_0x0dfe('0x36')][_0x0dfe('0x47')]){_0x12816b['include']=[{'all':!![]}];}_0x12816b=_['merge']({},_0x12816b,_0x7439b6[_0x0dfe('0x45')]);return db[_0x0dfe('0x46')]['find'](_0x12816b)[_0x0dfe('0x29')](handleEntityNotFound(_0x1376bd,null))[_0x0dfe('0x29')](respondWithResult(_0x1376bd,null))[_0x0dfe('0x49')](handleError(_0x1376bd,null));};exports[_0x0dfe('0x4d')]=function(_0x96497a,_0x263d58){return db[_0x0dfe('0x46')][_0x0dfe('0x4d')](_0x96497a[_0x0dfe('0x4e')],{})[_0x0dfe('0x29')](respondWithResult(_0x263d58,0xc9))['catch'](handleError(_0x263d58,null));};exports[_0x0dfe('0x28')]=function(_0xa1181,_0x29779d){if(_0xa1181[_0x0dfe('0x4e')]['id']){delete _0xa1181['body']['id'];}return db[_0x0dfe('0x46')][_0x0dfe('0x4f')]({'where':{'id':_0xa1181[_0x0dfe('0x4b')]['id']}})[_0x0dfe('0x29')](handleEntityNotFound(_0x29779d,null))[_0x0dfe('0x29')](saveUpdates(_0xa1181[_0x0dfe('0x4e')],null))[_0x0dfe('0x29')](respondWithResult(_0x29779d,null))['catch'](handleError(_0x29779d,null));};exports[_0x0dfe('0x2a')]=function(_0x4fc599,_0x18dc92){return db[_0x0dfe('0x46')]['find']({'where':{'id':_0x4fc599[_0x0dfe('0x4b')]['id']}})[_0x0dfe('0x29')](handleEntityNotFound(_0x18dc92,null))[_0x0dfe('0x29')](removeEntity(_0x18dc92,null))['catch'](handleError(_0x18dc92,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3fbd=['../../config/environment','exports','define','int_zendesk_fields','zendesk_unique_index','lodash','../../config/logger','api','moment','request-promise'];(function(_0xd4636c,_0x34dbf6){var _0x5ee17d=function(_0x223c38){while(--_0x223c38){_0xd4636c['push'](_0xd4636c['shift']());}};_0x5ee17d(++_0x34dbf6);}(_0x3fbd,0x1e5));var _0xd3fb=function(_0x1d2af6,_0x2bd90c){_0x1d2af6=_0x1d2af6-0x0;var _0x2c776a=_0x3fbd[_0x1d2af6];return _0x2c776a;};'use strict';var _=require(_0xd3fb('0x0'));var util=require('util');var logger=require(_0xd3fb('0x1'))(_0xd3fb('0x2'));var moment=require(_0xd3fb('0x3'));var BPromise=require('bluebird');var rp=require(_0xd3fb('0x4'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0xd3fb('0x5'));var attributes=require('./intZendeskField.attributes');module[_0xd3fb('0x6')]=function(_0x469db4,_0x393132){return _0x469db4[_0xd3fb('0x7')]('ZendeskField',attributes,{'tableName':_0xd3fb('0x8'),'paranoid':![],'indexes':[{'name':_0xd3fb('0x9'),'fields':['idField','FieldId'],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x60df=['../../config/logger','api','moment','rimraf','./intZendeskField.attributes','exports','define','ZendeskField','int_zendesk_fields','idField','FieldId','lodash','util'];(function(_0x44365d,_0x5d9a0f){var _0x3f5040=function(_0x194a3e){while(--_0x194a3e){_0x44365d['push'](_0x44365d['shift']());}};_0x3f5040(++_0x5d9a0f);}(_0x60df,0x10f));var _0xf60d=function(_0xb2cee,_0x3a5502){_0xb2cee=_0xb2cee-0x0;var _0x115b08=_0x60df[_0xb2cee];return _0x115b08;};'use strict';var _=require(_0xf60d('0x0'));var util=require(_0xf60d('0x1'));var logger=require(_0xf60d('0x2'))(_0xf60d('0x3'));var moment=require(_0xf60d('0x4'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0xf60d('0x5'));var config=require('../../config/environment');var attributes=require(_0xf60d('0x6'));module[_0xf60d('0x7')]=function(_0x22e1c9,_0x8eb496){return _0x22e1c9[_0xf60d('0x8')](_0xf60d('0x9'),attributes,{'tableName':_0xf60d('0xa'),'paranoid':![],'indexes':[{'name':'zendesk_unique_index','fields':[_0xf60d('0xb'),_0xf60d('0xc')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd49c=['request','then','info','ZendeskField,\x20%s,\x20%s','request\x20sent','debug','ZendeskField,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','util','moment','bluebird','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http'];(function(_0x38a335,_0x44c809){var _0x5824f4=function(_0x2ff479){while(--_0x2ff479){_0x38a335['push'](_0x38a335['shift']());}};_0x5824f4(++_0x44c809);}(_0xd49c,0x182));var _0xcd49=function(_0x5632e1,_0x310c28){_0x5632e1=_0x5632e1-0x0;var _0x4f5b42=_0xd49c[_0x5632e1];return _0x4f5b42;};'use strict';var _=require('lodash');var util=require(_0xcd49('0x0'));var moment=require(_0xcd49('0x1'));var BPromise=require(_0xcd49('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0xcd49('0x3'))['db'];var utils=require(_0xcd49('0x4'));var logger=require(_0xcd49('0x5'))(_0xcd49('0x6'));var config=require(_0xcd49('0x7'));var jayson=require(_0xcd49('0x8'));var client=jayson['client'][_0xcd49('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x2a2694,_0x1676b5,_0x4cb545){return new BPromise(function(_0x374e9c,_0x35e323){return client[_0xcd49('0xa')](_0x2a2694,_0x4cb545)[_0xcd49('0xb')](function(_0x23bdd1){logger[_0xcd49('0xc')](_0xcd49('0xd'),_0x1676b5,_0xcd49('0xe'));logger[_0xcd49('0xf')](_0xcd49('0x10'),_0x1676b5,_0xcd49('0xe'),JSON['stringify'](_0x23bdd1));if(_0x23bdd1['error']){if(_0x23bdd1[_0xcd49('0x11')][_0xcd49('0x12')]===0x1f4){logger['error'](_0xcd49('0xd'),_0x1676b5,_0x23bdd1['error'][_0xcd49('0x13')]);return _0x35e323(_0x23bdd1['error'][_0xcd49('0x13')]);}logger[_0xcd49('0x11')](_0xcd49('0xd'),_0x1676b5,_0x23bdd1[_0xcd49('0x11')]['message']);return _0x374e9c(_0x23bdd1[_0xcd49('0x11')]['message']);}else{logger[_0xcd49('0xc')](_0xcd49('0xd'),_0x1676b5,_0xcd49('0xe'));_0x374e9c(_0x23bdd1[_0xcd49('0x14')][_0xcd49('0x13')]);}})[_0xcd49('0x15')](function(_0x390319){logger['error'](_0xcd49('0xd'),_0x1676b5,_0x390319);_0x35e323(_0x390319);});});}
\ No newline at end of file
+var _0x047f=['error','ZendeskField,\x20%s,\x20%s','message','result','lodash','util','moment','bluebird','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','request','then','info','request\x20sent','debug','stringify'];(function(_0x496ffe,_0x59b954){var _0x3bd0ff=function(_0xbf558){while(--_0xbf558){_0x496ffe['push'](_0x496ffe['shift']());}};_0x3bd0ff(++_0x59b954);}(_0x047f,0xd6));var _0xf047=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x047f[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0xf047('0x0'));var util=require(_0xf047('0x1'));var moment=require(_0xf047('0x2'));var BPromise=require(_0xf047('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0xf047('0x4'))['db'];var utils=require(_0xf047('0x5'));var logger=require(_0xf047('0x6'))(_0xf047('0x7'));var config=require(_0xf047('0x8'));var jayson=require('jayson/promise');var client=jayson[_0xf047('0x9')][_0xf047('0xa')]({'port':0x232a});function respondWithRpcPromise(_0xea37e1,_0x56a761,_0xe0e237){return new BPromise(function(_0x3d13a4,_0x17ebc2){return client[_0xf047('0xb')](_0xea37e1,_0xe0e237)[_0xf047('0xc')](function(_0x504dc3){logger[_0xf047('0xd')]('ZendeskField,\x20%s,\x20%s',_0x56a761,_0xf047('0xe'));logger[_0xf047('0xf')]('ZendeskField,\x20%s,\x20%s,\x20%s',_0x56a761,_0xf047('0xe'),JSON[_0xf047('0x10')](_0x504dc3));if(_0x504dc3['error']){if(_0x504dc3[_0xf047('0x11')]['code']===0x1f4){logger[_0xf047('0x11')](_0xf047('0x12'),_0x56a761,_0x504dc3[_0xf047('0x11')][_0xf047('0x13')]);return _0x17ebc2(_0x504dc3[_0xf047('0x11')][_0xf047('0x13')]);}logger['error'](_0xf047('0x12'),_0x56a761,_0x504dc3[_0xf047('0x11')][_0xf047('0x13')]);return _0x3d13a4(_0x504dc3[_0xf047('0x11')]['message']);}else{logger[_0xf047('0xd')]('ZendeskField,\x20%s,\x20%s',_0x56a761,'request\x20sent');_0x3d13a4(_0x504dc3[_0xf047('0x14')]['message']);}})['catch'](function(_0x47f58d){logger[_0xf047('0x11')](_0xf047('0x12'),_0x56a761,_0x47f58d);_0x17ebc2(_0x47f58d);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x747f=['/:id','update','exports','multer','util','connect-timeout','Router','fs-extra','../../components/interaction/service','./intZohoAccount.controller','get','isAuthenticated','index','show','/:id/configurations','/:id/fields','post','addConfiguration','put'];(function(_0x31c555,_0x3b9d08){var _0x2323cf=function(_0x1d39fe){while(--_0x1d39fe){_0x31c555['push'](_0x31c555['shift']());}};_0x2323cf(++_0x3b9d08);}(_0x747f,0x1a5));var _0xf747=function(_0x241edf,_0x55c05a){_0x241edf=_0x241edf-0x0;var _0x4440ee=_0x747f[_0x241edf];return _0x4440ee;};'use strict';var multer=require(_0xf747('0x0'));var util=require(_0xf747('0x1'));var path=require('path');var timeout=require(_0xf747('0x2'));var express=require('express');var router=express[_0xf747('0x3')]();var fs_extra=require(_0xf747('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0xf747('0x5'));var config=require('../../config/environment');var controller=require(_0xf747('0x6'));router[_0xf747('0x7')]('/',auth[_0xf747('0x8')](),controller[_0xf747('0x9')]);router[_0xf747('0x7')]('/:id',auth['isAuthenticated'](),controller[_0xf747('0xa')]);router[_0xf747('0x7')](_0xf747('0xb'),auth[_0xf747('0x8')](),controller['getConfigurations']);router[_0xf747('0x7')](_0xf747('0xc'),auth[_0xf747('0x8')](),controller['getFields']);router[_0xf747('0xd')]('/',auth[_0xf747('0x8')](),controller['create']);router[_0xf747('0xd')](_0xf747('0xb'),auth['isAuthenticated'](),controller[_0xf747('0xe')]);router[_0xf747('0xf')](_0xf747('0x10'),auth[_0xf747('0x8')](),controller[_0xf747('0x11')]);router['delete'](_0xf747('0x10'),auth[_0xf747('0x8')](),controller['destroy']);module[_0xf747('0x12')]=router;
\ No newline at end of file
+var _0x6984=['../../config/environment','./intZohoAccount.controller','isAuthenticated','index','get','/:id','show','/:id/configurations','getConfigurations','/:id/fields','getFields','post','create','put','update','destroy','multer','util','path','Router','fs-extra','../../components/auth/service','../../components/interaction/service'];(function(_0x3838b8,_0xa31d6d){var _0x43b02d=function(_0x1acdbe){while(--_0x1acdbe){_0x3838b8['push'](_0x3838b8['shift']());}};_0x43b02d(++_0xa31d6d);}(_0x6984,0x1dc));var _0x4698=function(_0x20871c,_0x2a72b8){_0x20871c=_0x20871c-0x0;var _0x3f2b0a=_0x6984[_0x20871c];return _0x3f2b0a;};'use strict';var multer=require(_0x4698('0x0'));var util=require(_0x4698('0x1'));var path=require(_0x4698('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x4698('0x3')]();var fs_extra=require(_0x4698('0x4'));var auth=require(_0x4698('0x5'));var interaction=require(_0x4698('0x6'));var config=require(_0x4698('0x7'));var controller=require(_0x4698('0x8'));router['get']('/',auth[_0x4698('0x9')](),controller[_0x4698('0xa')]);router[_0x4698('0xb')](_0x4698('0xc'),auth[_0x4698('0x9')](),controller[_0x4698('0xd')]);router['get'](_0x4698('0xe'),auth[_0x4698('0x9')](),controller[_0x4698('0xf')]);router[_0x4698('0xb')](_0x4698('0x10'),auth[_0x4698('0x9')](),controller[_0x4698('0x11')]);router[_0x4698('0x12')]('/',auth[_0x4698('0x9')](),controller[_0x4698('0x13')]);router[_0x4698('0x12')](_0x4698('0xe'),auth['isAuthenticated'](),controller['addConfiguration']);router[_0x4698('0x14')](_0x4698('0xc'),auth[_0x4698('0x9')](),controller[_0x4698('0x15')]);router['delete'](_0x4698('0xc'),auth[_0x4698('0x9')](),controller[_0x4698('0x16')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x84ab=['sequelize','exports','STRING'];(function(_0x384792,_0x9b8341){var _0x43d4b5=function(_0x55ede9){while(--_0x55ede9){_0x384792['push'](_0x384792['shift']());}};_0x43d4b5(++_0x9b8341);}(_0x84ab,0x12f));var _0xb84a=function(_0x5ce15c,_0x19c917){_0x5ce15c=_0x5ce15c-0x0;var _0x36e4f5=_0x84ab[_0x5ce15c];return _0x36e4f5;};'use strict';var Sequelize=require(_0xb84a('0x0'));module[_0xb84a('0x1')]={'name':{'type':Sequelize[_0xb84a('0x2')]},'description':{'type':Sequelize[_0xb84a('0x2')]},'host':{'type':Sequelize[_0xb84a('0x2')]},'zone':{'type':Sequelize['STRING']},'clientId':{'type':Sequelize[_0xb84a('0x2')]},'clientSecret':{'type':Sequelize[_0xb84a('0x2')]},'serverUrl':{'type':Sequelize['STRING'],'allowNull':![]},'code':{'type':Sequelize[_0xb84a('0x2')]},'refreshToken':{'type':Sequelize[_0xb84a('0x2')]}};
\ No newline at end of file
+var _0xd2ea=['sequelize','exports','STRING'];(function(_0x5d2803,_0xf375bd){var _0xdcad2c=function(_0x3c3a98){while(--_0x3c3a98){_0x5d2803['push'](_0x5d2803['shift']());}};_0xdcad2c(++_0xf375bd);}(_0xd2ea,0x15f));var _0xad2e=function(_0x1c226b,_0x11116b){_0x1c226b=_0x1c226b-0x0;var _0x3b5842=_0xd2ea[_0x1c226b];return _0x3b5842;};'use strict';var Sequelize=require(_0xad2e('0x0'));module[_0xad2e('0x1')]={'name':{'type':Sequelize[_0xad2e('0x2')]},'description':{'type':Sequelize[_0xad2e('0x2')]},'host':{'type':Sequelize[_0xad2e('0x2')]},'zone':{'type':Sequelize['STRING']},'clientId':{'type':Sequelize[_0xad2e('0x2')]},'clientSecret':{'type':Sequelize[_0xad2e('0x2')]},'serverUrl':{'type':Sequelize[_0xad2e('0x2')],'allowNull':![]},'code':{'type':Sequelize[_0xad2e('0x2')]},'refreshToken':{'type':Sequelize[_0xad2e('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x33b7=['then','create','body','findOne','ZohoConfiguration','sort','getConfigurations','AccountId','Subjects','Descriptions','getDescriptions','channel','ZohoField','zone','https://accounts.zoho.com.au','https://accounts.zoho.eu','https://accounts.zoho.in','https://accounts.zoho.com.cn','POST','/oauth/v2/token','refreshToken','clientId','access_token','Unable\x20to\x20retrieve\x20the\x20access\x20token','host','clientSecret','serverUrl','code','zoho.eu','com','slice','substring','lastIndexOf','Refresh\x20Token\x20not\x20available\x20for\x20the\x20account','GET','format','Calls','Zoho-oauthtoken\x20','response','message','Description','Call_Duration','Call_Result','Call_Type','includes','api_name','system_mandatory','push','display_label','custom_field','data_type','map','pick_list_values','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','getFields','stringify','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','ejs','crypto','to-csv','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','apply','update','error','stack','name','send','index','ZohoAccount','rawAttributes','fieldName','type','key','query','filters','attributes','model','fields','hasOwnProperty','nolimit','order','where','pick','VIRTUAL','filter','merge','options','includeAll','findAll','catch','show','params','keys','intersection','length','include','find'];(function(_0x15ec4e,_0x40b7e0){var _0xb5e5dd=function(_0x42bdd7){while(--_0x42bdd7){_0x15ec4e['push'](_0x15ec4e['shift']());}};_0xb5e5dd(++_0x40b7e0);}(_0x33b7,0x1b2));var _0x733b=function(_0x2f3848,_0x48564d){_0x2f3848=_0x2f3848-0x0;var _0x102668=_0x33b7[_0x2f3848];return _0x102668;};'use strict';var emlformat=require(_0x733b('0x0'));var rimraf=require(_0x733b('0x1'));var zipdir=require(_0x733b('0x2'));var jsonpatch=require(_0x733b('0x3'));var rp=require(_0x733b('0x4'));var moment=require('moment');var BPromise=require(_0x733b('0x5'));var Mustache=require(_0x733b('0x6'));var util=require(_0x733b('0x7'));var path=require(_0x733b('0x8'));var sox=require(_0x733b('0x9'));var csv=require('to-csv');var ejs=require(_0x733b('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require('squel');var crypto=require(_0x733b('0xb'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x733b('0xc'));var querystring=require('querystring');var Papa=require(_0x733b('0xd'));var Redis=require('ioredis');var authService=require(_0x733b('0xe'));var qs=require('../../components/parsers/qs');var as=require(_0x733b('0xf'));var hardwareService=require(_0x733b('0x10'));var logger=require('../../config/logger')(_0x733b('0x11'));var utils=require('../../config/utils');var config=require(_0x733b('0x12'));var licenseUtil=require(_0x733b('0x13'));var db=require(_0x733b('0x14'))['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x540824,_0xe75e4b){_0xe75e4b=_0xe75e4b||0xcc;return function(_0x4a7850){if(_0x4a7850){return _0x540824[_0x733b('0x15')](_0xe75e4b);}return _0x540824[_0x733b('0x16')](_0xe75e4b)[_0x733b('0x17')]();};}function respondWithResult(_0x98f42c,_0x57e5ed){_0x57e5ed=_0x57e5ed||0xc8;return function(_0x5c99ef){if(_0x5c99ef){return _0x98f42c[_0x733b('0x16')](_0x57e5ed)[_0x733b('0x18')](_0x5c99ef);}};}function respondWithFilteredResult(_0x543630,_0x112db4){return function(_0xe57c3c){if(_0xe57c3c){var _0x43801f=typeof _0x112db4[_0x733b('0x19')]===_0x733b('0x1a')&&typeof _0x112db4[_0x733b('0x1b')]===_0x733b('0x1a');var _0x4803c3=_0xe57c3c[_0x733b('0x1c')];var _0x3864d4=_0x43801f?0x0:_0x112db4['offset'];var _0x1a0d20=_0x43801f?_0xe57c3c[_0x733b('0x1c')]:_0x112db4[_0x733b('0x19')]+_0x112db4['limit'];var _0x1652bd;if(_0x1a0d20>=_0x4803c3){_0x1a0d20=_0x4803c3;_0x1652bd=0xc8;}else{_0x1652bd=0xce;}_0x543630[_0x733b('0x16')](_0x1652bd);return _0x543630[_0x733b('0x1d')]('Content-Range',_0x3864d4+'-'+_0x1a0d20+'/'+_0x4803c3)['json'](_0xe57c3c);}return null;};}function patchUpdates(_0x4ba4e8){return function(_0x382c26){try{jsonpatch[_0x733b('0x1e')](_0x382c26,_0x4ba4e8,!![]);}catch(_0x271c98){return BPromise['reject'](_0x271c98);}return _0x382c26['save']();};}function saveUpdates(_0x59a57b,_0x527889){return function(_0x5c4c02){if(_0x5c4c02){return _0x5c4c02[_0x733b('0x1f')](_0x59a57b)['then'](function(_0x3833a0){return _0x3833a0;});}return null;};}function removeEntity(_0x50e6ec,_0xb6078a){return function(_0x197353){if(_0x197353){return _0x197353['destroy']()['then'](function(){_0x50e6ec[_0x733b('0x16')](0xcc)[_0x733b('0x17')]();});}};}function handleEntityNotFound(_0x35ac3a,_0x37fec2){return function(_0x2808b0){if(!_0x2808b0){_0x35ac3a['sendStatus'](0x194);}return _0x2808b0;};}function handleError(_0x186f24,_0x242d4c){_0x242d4c=_0x242d4c||0x1f4;return function(_0x14721d){logger[_0x733b('0x20')](_0x14721d[_0x733b('0x21')]);if(_0x14721d[_0x733b('0x22')]){delete _0x14721d[_0x733b('0x22')];}_0x186f24[_0x733b('0x16')](_0x242d4c)[_0x733b('0x23')](_0x14721d);};}exports[_0x733b('0x24')]=function(_0x1a0b78,_0x2d6ec6){var _0xa36a17={},_0x144a16={},_0x36cac2={'count':0x0,'rows':[]};var _0x59b5ea=_['map'](db[_0x733b('0x25')][_0x733b('0x26')],function(_0x53cb6f){return{'name':_0x53cb6f[_0x733b('0x27')],'type':_0x53cb6f[_0x733b('0x28')][_0x733b('0x29')]};});_0x144a16['model']=_['map'](_0x59b5ea,_0x733b('0x22'));_0x144a16[_0x733b('0x2a')]=_['keys'](_0x1a0b78[_0x733b('0x2a')]);_0x144a16[_0x733b('0x2b')]=_['intersection'](_0x144a16['model'],_0x144a16[_0x733b('0x2a')]);_0xa36a17[_0x733b('0x2c')]=_['intersection'](_0x144a16[_0x733b('0x2d')],qs['fields'](_0x1a0b78[_0x733b('0x2a')][_0x733b('0x2e')]));_0xa36a17[_0x733b('0x2c')]=_0xa36a17[_0x733b('0x2c')]['length']?_0xa36a17[_0x733b('0x2c')]:_0x144a16[_0x733b('0x2d')];if(!_0x1a0b78[_0x733b('0x2a')][_0x733b('0x2f')](_0x733b('0x30'))){_0xa36a17[_0x733b('0x1b')]=qs[_0x733b('0x1b')](_0x1a0b78[_0x733b('0x2a')]['limit']);_0xa36a17['offset']=qs['offset'](_0x1a0b78[_0x733b('0x2a')][_0x733b('0x19')]);}_0xa36a17[_0x733b('0x31')]=qs['sort'](_0x1a0b78[_0x733b('0x2a')]['sort']);_0xa36a17[_0x733b('0x32')]=qs[_0x733b('0x2b')](_[_0x733b('0x33')](_0x1a0b78[_0x733b('0x2a')],_0x144a16['filters']),_0x59b5ea);if(_0x1a0b78[_0x733b('0x2a')]['filter']){_0xa36a17[_0x733b('0x32')]=_['merge'](_0xa36a17[_0x733b('0x32')],{'$or':_['map'](_0x59b5ea,function(_0x283856){if(_0x283856[_0x733b('0x28')]!==_0x733b('0x34')){var _0x4a676a={};_0x4a676a[_0x283856[_0x733b('0x22')]]={'$like':'%'+_0x1a0b78['query'][_0x733b('0x35')]+'%'};return _0x4a676a;}})});}_0xa36a17=_[_0x733b('0x36')]({},_0xa36a17,_0x1a0b78[_0x733b('0x37')]);var _0x17c500={'where':_0xa36a17['where']};return db[_0x733b('0x25')][_0x733b('0x1c')](_0x17c500)['then'](function(_0x5d647f){_0x36cac2[_0x733b('0x1c')]=_0x5d647f;if(_0x1a0b78[_0x733b('0x2a')][_0x733b('0x38')]){_0xa36a17['include']=[{'all':!![]}];}return db[_0x733b('0x25')][_0x733b('0x39')](_0xa36a17);})['then'](function(_0x496972){_0x36cac2['rows']=_0x496972;return _0x36cac2;})['then'](respondWithFilteredResult(_0x2d6ec6,_0xa36a17))[_0x733b('0x3a')](handleError(_0x2d6ec6,null));};exports[_0x733b('0x3b')]=function(_0x5c133e,_0x46c2b1){var _0x4143b3={'raw':![],'where':{'id':_0x5c133e[_0x733b('0x3c')]['id']}},_0x353359={};_0x353359[_0x733b('0x2d')]=_['keys'](db['ZohoAccount'][_0x733b('0x26')]);_0x353359[_0x733b('0x2a')]=_[_0x733b('0x3d')](_0x5c133e[_0x733b('0x2a')]);_0x353359[_0x733b('0x2b')]=_[_0x733b('0x3e')](_0x353359[_0x733b('0x2d')],_0x353359['query']);_0x4143b3[_0x733b('0x2c')]=_['intersection'](_0x353359[_0x733b('0x2d')],qs[_0x733b('0x2e')](_0x5c133e[_0x733b('0x2a')][_0x733b('0x2e')]));_0x4143b3['attributes']=_0x4143b3[_0x733b('0x2c')][_0x733b('0x3f')]?_0x4143b3['attributes']:_0x353359['model'];if(_0x5c133e[_0x733b('0x2a')][_0x733b('0x38')]){_0x4143b3[_0x733b('0x40')]=[{'all':!![]}];}_0x4143b3=_[_0x733b('0x36')]({},_0x4143b3,_0x5c133e[_0x733b('0x37')]);return db[_0x733b('0x25')][_0x733b('0x41')](_0x4143b3)[_0x733b('0x42')](handleEntityNotFound(_0x46c2b1,null))[_0x733b('0x42')](respondWithResult(_0x46c2b1,null))[_0x733b('0x3a')](handleError(_0x46c2b1,null));};exports[_0x733b('0x43')]=function(_0x4b29a9,_0x13558f){return db['ZohoAccount'][_0x733b('0x43')](_0x4b29a9[_0x733b('0x44')],{})['then'](respondWithResult(_0x13558f,0xc9))[_0x733b('0x3a')](handleError(_0x13558f,null));};exports[_0x733b('0x1f')]=function(_0x5562fb,_0x1b3c46){if(_0x5562fb['body']['id']){delete _0x5562fb['body']['id'];}return db['ZohoAccount'][_0x733b('0x41')]({'where':{'id':_0x5562fb[_0x733b('0x3c')]['id']}})[_0x733b('0x42')](handleEntityNotFound(_0x1b3c46,null))[_0x733b('0x42')](saveUpdates(_0x5562fb['body'],null))['then'](respondWithResult(_0x1b3c46,null))['catch'](handleError(_0x1b3c46,null));};exports['destroy']=function(_0x401965,_0x286c34){return db[_0x733b('0x25')][_0x733b('0x41')]({'where':{'id':_0x401965[_0x733b('0x3c')]['id']}})[_0x733b('0x42')](handleEntityNotFound(_0x286c34,null))[_0x733b('0x42')](removeEntity(_0x286c34,null))[_0x733b('0x3a')](handleError(_0x286c34,null));};exports['getConfigurations']=function(_0x4e6d37,_0x5b14ec,_0x808968){var _0x2491b6={};var _0x4546ed={};var _0x28de54;var _0x228d40;return db[_0x733b('0x25')][_0x733b('0x45')]({'where':{'id':_0x4e6d37['params']['id']}})['then'](handleEntityNotFound(_0x5b14ec,null))[_0x733b('0x42')](function(_0x120b62){if(_0x120b62){_0x28de54=_0x120b62;_0x4546ed['model']=_[_0x733b('0x3d')](db[_0x733b('0x46')]['rawAttributes']);_0x4546ed[_0x733b('0x2a')]=_['keys'](_0x4e6d37[_0x733b('0x2a')]);_0x4546ed[_0x733b('0x2b')]=_['intersection'](_0x4546ed[_0x733b('0x2d')],_0x4546ed[_0x733b('0x2a')]);_0x2491b6[_0x733b('0x2c')]=_[_0x733b('0x3e')](_0x4546ed['model'],qs[_0x733b('0x2e')](_0x4e6d37[_0x733b('0x2a')][_0x733b('0x2e')]));_0x2491b6[_0x733b('0x2c')]=_0x2491b6[_0x733b('0x2c')]['length']?_0x2491b6[_0x733b('0x2c')]:_0x4546ed[_0x733b('0x2d')];_0x2491b6['order']=qs['sort'](_0x4e6d37[_0x733b('0x2a')][_0x733b('0x47')]);_0x2491b6['where']=qs[_0x733b('0x2b')](_[_0x733b('0x33')](_0x4e6d37['query'],_0x4546ed[_0x733b('0x2b')]));if(_0x4e6d37[_0x733b('0x2a')][_0x733b('0x35')]){_0x2491b6['where']=_['merge'](_0x2491b6['where'],{'$or':_['map'](_0x2491b6['attributes'],function(_0x4a38f6){var _0x5b8196={};_0x5b8196[_0x4a38f6]={'$like':'%'+_0x4e6d37[_0x733b('0x2a')][_0x733b('0x35')]+'%'};return _0x5b8196;})});}_0x2491b6=_[_0x733b('0x36')]({},_0x2491b6,_0x4e6d37[_0x733b('0x37')]);return _0x28de54[_0x733b('0x48')](_0x2491b6);}})['then'](function(_0x2e1a00){if(_0x2e1a00){_0x228d40=_0x2e1a00[_0x733b('0x3f')];if(!_0x4e6d37[_0x733b('0x2a')]['hasOwnProperty']('nolimit')){_0x2491b6[_0x733b('0x1b')]=qs[_0x733b('0x1b')](_0x4e6d37[_0x733b('0x2a')]['limit']);_0x2491b6[_0x733b('0x19')]=qs[_0x733b('0x19')](_0x4e6d37['query'][_0x733b('0x19')]);}return _0x28de54[_0x733b('0x48')](_0x2491b6);}})['then'](function(_0x277576){if(_0x277576){return _0x277576?{'count':_0x228d40,'rows':_0x277576}:null;}})[_0x733b('0x42')](respondWithResult(_0x5b14ec,null))['catch'](handleError(_0x5b14ec,null));};exports['addConfiguration']=function(_0x276556,_0x3f498f,_0x194c61){if(_0x276556['body']['id']){delete _0x276556['body']['id'];}return db['ZohoAccount'][_0x733b('0x45')]({'where':{'id':_0x276556['params']['id']}})[_0x733b('0x42')](handleEntityNotFound(_0x3f498f,null))['then'](function(_0x1d544a){if(_0x1d544a){_0x276556[_0x733b('0x44')][_0x733b('0x49')]=_0x1d544a['id'];_0x276556[_0x733b('0x44')][_0x733b('0x4a')]=integrations['getSubjects'](_0x276556[_0x733b('0x44')]['channel'],_0x276556[_0x733b('0x44')]['type']);_0x276556[_0x733b('0x44')][_0x733b('0x4b')]=integrations[_0x733b('0x4c')](_0x276556[_0x733b('0x44')][_0x733b('0x4d')],_0x276556[_0x733b('0x44')][_0x733b('0x28')]);return db['ZohoConfiguration'][_0x733b('0x43')](_0x276556[_0x733b('0x44')],{'include':[{'model':db[_0x733b('0x4e')],'as':_0x733b('0x4a')},{'model':db[_0x733b('0x4e')],'as':'Descriptions'}]});}return null;})[_0x733b('0x42')](respondWithResult(_0x3f498f,null))['catch'](handleError(_0x3f498f,null));};function getAccessToken(_0x21d48e){return new Promise(function(_0x57b7fc,_0x21c0e7){var _0x2365d5;switch(_0x21d48e[_0x733b('0x4f')]){case'US':_0x2365d5='https://accounts.zoho.com';break;case'AU':_0x2365d5=_0x733b('0x50');break;case'EU':_0x2365d5=_0x733b('0x51');break;case'IN':_0x2365d5=_0x733b('0x52');break;case'CN':_0x2365d5=_0x733b('0x53');break;default:_0x2365d5='https://accounts.zoho.eu';break;}var _0x317086={'method':_0x733b('0x54'),'uri':_0x2365d5+_0x733b('0x55'),'qs':{'refresh_token':_0x21d48e[_0x733b('0x56')],'client_id':_0x21d48e[_0x733b('0x57')],'client_secret':_0x21d48e['clientSecret'],'grant_type':'refresh_token'},'json':!![]};return rp(_0x317086)[_0x733b('0x42')](function(_0xb37b7d){if(_0xb37b7d[_0x733b('0x58')]){_0x57b7fc(_0xb37b7d[_0x733b('0x58')]);}else{_0x21c0e7(_0x733b('0x59'));}})['catch'](function(_0x471898){_0x21c0e7(_0x471898);});});}exports['getFields']=function(_0x2e552a,_0x38cb04,_0x1e4164){var _0x1ca117,_0x2304a9,_0x13920a,_0x5c2fd8,_0x50c430;return db['ZohoAccount'][_0x733b('0x45')]({'where':{'id':_0x2e552a[_0x733b('0x3c')]['id']},'attributes':['id',_0x733b('0x5a'),'zone',_0x733b('0x57'),_0x733b('0x5b'),_0x733b('0x5c'),_0x733b('0x5d'),_0x733b('0x56')]})[_0x733b('0x42')](handleEntityNotFound(_0x38cb04,null))[_0x733b('0x42')](function(_0xd958b7){_0x50c430=_0xd958b7;_0x1ca117=_0x50c430[_0x733b('0x5a')];_0x2304a9=_0x1ca117===_0x733b('0x5e')?'eu':_0x733b('0x5f');_0x13920a=_0x50c430[_0x733b('0x5c')];var _0x98ad3f=_0x13920a[_0x733b('0x60')](-0x1);if(_0x98ad3f==='/'||_0x98ad3f==='\x5c'||_0x98ad3f===':'){_0x13920a=_0x13920a[_0x733b('0x61')](0x0,_0x13920a[_0x733b('0x62')](_0x98ad3f));}if(!_0x50c430[_0x733b('0x56')]){throw new Error(_0x733b('0x63'));}return getAccessToken(_0x50c430);})['then'](function(_0x51407b){if(_0x51407b){return rp({'method':_0x733b('0x64'),'uri':util[_0x733b('0x65')]('https://www.zohoapis.%s/crm/v2/settings/fields',_0x2304a9),'qs':{'module':_0x733b('0x66')},'headers':{'Authorization':_0x733b('0x67')+_0x51407b},'json':!![]});}})[_0x733b('0x42')](function(_0x24978c){if(_0x24978c){if(_0x24978c[_0x733b('0x68')]&&_0x24978c[_0x733b('0x68')][_0x733b('0x20')]){throw new Error(_0x24978c['response']['error'][_0x733b('0x69')]);}var _0xe4d33b=[];var _0x1a3367=[];var _0x1524a1=['Owner','Subject',_0x733b('0x6a'),'WhoId',_0x733b('0x6b'),_0x733b('0x6c'),'Call_Start_Time',_0x733b('0x6d')];_0x1a3367=_['remove'](_0x24978c[_0x733b('0x2e')],function(_0x4285bc){return _0x1524a1[_0x733b('0x6e')](_0x4285bc[_0x733b('0x6f')]);});for(var _0x2c98c6=0x0;_0x2c98c6<_0x1a3367['length'];_0x2c98c6++){if(_0x1a3367[_0x2c98c6][_0x733b('0x70')]===![]){_0xe4d33b[_0x733b('0x71')]({'id':_0x1a3367[_0x2c98c6]['id'],'name':_0x1a3367[_0x2c98c6][_0x733b('0x72')],'custom':_0x1a3367[_0x2c98c6][_0x733b('0x73')],'options':_0x1a3367[_0x2c98c6][_0x733b('0x74')]==='picklist'&&_0x1a3367[_0x2c98c6]['pick_list_values'][_0x733b('0x3f')]>-0x1?_[_0x733b('0x75')](_0x1a3367[_0x2c98c6][_0x733b('0x76')],function(_0x317a46){return{'name':_0x317a46,'value':_0x317a46};}):[]});}}return{'count':_0xe4d33b[_0x733b('0x3f')],'rows':_0xe4d33b};}else{return{'count':0x0,'rows':[]};}})[_0x733b('0x42')](respondWithResult(_0x38cb04,null))[_0x733b('0x3a')](function(_0x31fb6e){var _0x25d094=_0x2e552a['query'][_0x733b('0x77')]?0x1f4:_0x31fb6e[_0x733b('0x78')]||0x1f4;logger[_0x733b('0x20')](_0x733b('0x79'),_0x733b('0x7a'),_0x25d094,JSON[_0x733b('0x7b')](_0x31fb6e));delete _0x31fb6e['name'];if(_0x25d094===0x191){_0x25d094=0x190;}_0x38cb04[_0x733b('0x16')](_0x25d094)[_0x733b('0x23')](_0x2e552a[_0x733b('0x2a')][_0x733b('0x77')]?{'message':_0x733b('0x7c'),'statusCode':_0x31fb6e[_0x733b('0x78')]}:_0x31fb6e);});};
\ No newline at end of file
+var _0x981c=['getDescriptions','ZohoField','zone','https://accounts.zoho.com','https://accounts.zoho.com.au','https://accounts.zoho.eu','https://accounts.zoho.in','https://accounts.zoho.com.cn','POST','/oauth/v2/token','refreshToken','clientId','clientSecret','refresh_token','access_token','Unable\x20to\x20retrieve\x20the\x20access\x20token','getFields','host','serverUrl','code','zoho.eu','slice','substring','lastIndexOf','format','Zoho-oauthtoken\x20','response','message','Owner','Subject','Description','Call_Duration','Call_Result','Call_Start_Time','remove','api_name','display_label','custom_field','data_type','picklist','pick_list_values','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','Wrong\x20credentials','eml-format','rimraf','zip-dir','moment','bluebird','mustache','util','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','../../components/integrations/configuration','status','end','json','offset','limit','undefined','count','set','Content-Range','apply','reject','save','then','destroy','sendStatus','error','stack','send','index','fieldName','type','key','model','map','name','query','keys','filters','intersection','attributes','fields','hasOwnProperty','sort','where','pick','merge','options','ZohoAccount','includeAll','findAll','catch','params','rawAttributes','include','create','body','update','find','getConfigurations','findOne','ZohoConfiguration','order','filter','length','nolimit','addConfiguration','AccountId','Subjects','getSubjects','channel','Descriptions'];(function(_0x3ab51d,_0x2fa01d){var _0x29a04e=function(_0x7807b0){while(--_0x7807b0){_0x3ab51d['push'](_0x3ab51d['shift']());}};_0x29a04e(++_0x2fa01d);}(_0x981c,0x1bf));var _0xc981=function(_0x26b836,_0x527dcf){_0x26b836=_0x26b836-0x0;var _0x20d0b9=_0x981c[_0x26b836];return _0x20d0b9;};'use strict';var emlformat=require(_0xc981('0x0'));var rimraf=require(_0xc981('0x1'));var zipdir=require(_0xc981('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xc981('0x3'));var BPromise=require(_0xc981('0x4'));var Mustache=require(_0xc981('0x5'));var util=require(_0xc981('0x6'));var path=require('path');var sox=require(_0xc981('0x7'));var csv=require(_0xc981('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xc981('0x9'));var _=require(_0xc981('0xa'));var squel=require(_0xc981('0xb'));var crypto=require(_0xc981('0xc'));var jsforce=require(_0xc981('0xd'));var deskjs=require(_0xc981('0xe'));var toCsv=require(_0xc981('0x8'));var querystring=require(_0xc981('0xf'));var Papa=require(_0xc981('0x10'));var Redis=require(_0xc981('0x11'));var authService=require(_0xc981('0x12'));var qs=require(_0xc981('0x13'));var as=require(_0xc981('0x14'));var hardwareService=require(_0xc981('0x15'));var logger=require(_0xc981('0x16'))(_0xc981('0x17'));var utils=require(_0xc981('0x18'));var config=require(_0xc981('0x19'));var licenseUtil=require('../../config/license/util');var db=require(_0xc981('0x1a'))['db'];var integrations=require(_0xc981('0x1b'));function respondWithStatusCode(_0x598c0f,_0x504bd7){_0x504bd7=_0x504bd7||0xcc;return function(_0x50a24c){if(_0x50a24c){return _0x598c0f['sendStatus'](_0x504bd7);}return _0x598c0f[_0xc981('0x1c')](_0x504bd7)[_0xc981('0x1d')]();};}function respondWithResult(_0x668cfa,_0x4646f4){_0x4646f4=_0x4646f4||0xc8;return function(_0x9a7d5a){if(_0x9a7d5a){return _0x668cfa['status'](_0x4646f4)[_0xc981('0x1e')](_0x9a7d5a);}};}function respondWithFilteredResult(_0x3828b3,_0x3889e8){return function(_0x1530e9){if(_0x1530e9){var _0x30ef09=typeof _0x3889e8[_0xc981('0x1f')]==='undefined'&&typeof _0x3889e8[_0xc981('0x20')]===_0xc981('0x21');var _0x2df4ac=_0x1530e9['count'];var _0x41f24e=_0x30ef09?0x0:_0x3889e8['offset'];var _0x23e058=_0x30ef09?_0x1530e9[_0xc981('0x22')]:_0x3889e8['offset']+_0x3889e8['limit'];var _0x122ec2;if(_0x23e058>=_0x2df4ac){_0x23e058=_0x2df4ac;_0x122ec2=0xc8;}else{_0x122ec2=0xce;}_0x3828b3[_0xc981('0x1c')](_0x122ec2);return _0x3828b3[_0xc981('0x23')](_0xc981('0x24'),_0x41f24e+'-'+_0x23e058+'/'+_0x2df4ac)[_0xc981('0x1e')](_0x1530e9);}return null;};}function patchUpdates(_0x46b95c){return function(_0x350713){try{jsonpatch[_0xc981('0x25')](_0x350713,_0x46b95c,!![]);}catch(_0x412004){return BPromise[_0xc981('0x26')](_0x412004);}return _0x350713[_0xc981('0x27')]();};}function saveUpdates(_0x1c700c,_0x18b5d3){return function(_0x16d78f){if(_0x16d78f){return _0x16d78f['update'](_0x1c700c)[_0xc981('0x28')](function(_0x27af42){return _0x27af42;});}return null;};}function removeEntity(_0x358534,_0x320d1f){return function(_0x492651){if(_0x492651){return _0x492651[_0xc981('0x29')]()[_0xc981('0x28')](function(){_0x358534['status'](0xcc)[_0xc981('0x1d')]();});}};}function handleEntityNotFound(_0x2647a4,_0x2b666a){return function(_0x14457b){if(!_0x14457b){_0x2647a4[_0xc981('0x2a')](0x194);}return _0x14457b;};}function handleError(_0x185769,_0x36dad3){_0x36dad3=_0x36dad3||0x1f4;return function(_0x394b97){logger[_0xc981('0x2b')](_0x394b97[_0xc981('0x2c')]);if(_0x394b97['name']){delete _0x394b97['name'];}_0x185769[_0xc981('0x1c')](_0x36dad3)[_0xc981('0x2d')](_0x394b97);};}exports[_0xc981('0x2e')]=function(_0x3d8b21,_0x587d5c){var _0x23ef97={},_0x51125d={},_0x14cbd4={'count':0x0,'rows':[]};var _0x19ffa2=_['map'](db['ZohoAccount']['rawAttributes'],function(_0x407c88){return{'name':_0x407c88[_0xc981('0x2f')],'type':_0x407c88[_0xc981('0x30')][_0xc981('0x31')]};});_0x51125d[_0xc981('0x32')]=_[_0xc981('0x33')](_0x19ffa2,_0xc981('0x34'));_0x51125d[_0xc981('0x35')]=_[_0xc981('0x36')](_0x3d8b21[_0xc981('0x35')]);_0x51125d[_0xc981('0x37')]=_[_0xc981('0x38')](_0x51125d['model'],_0x51125d[_0xc981('0x35')]);_0x23ef97[_0xc981('0x39')]=_[_0xc981('0x38')](_0x51125d[_0xc981('0x32')],qs[_0xc981('0x3a')](_0x3d8b21['query'][_0xc981('0x3a')]));_0x23ef97[_0xc981('0x39')]=_0x23ef97[_0xc981('0x39')]['length']?_0x23ef97[_0xc981('0x39')]:_0x51125d[_0xc981('0x32')];if(!_0x3d8b21[_0xc981('0x35')][_0xc981('0x3b')]('nolimit')){_0x23ef97[_0xc981('0x20')]=qs[_0xc981('0x20')](_0x3d8b21[_0xc981('0x35')][_0xc981('0x20')]);_0x23ef97[_0xc981('0x1f')]=qs[_0xc981('0x1f')](_0x3d8b21['query'][_0xc981('0x1f')]);}_0x23ef97['order']=qs[_0xc981('0x3c')](_0x3d8b21[_0xc981('0x35')][_0xc981('0x3c')]);_0x23ef97[_0xc981('0x3d')]=qs[_0xc981('0x37')](_[_0xc981('0x3e')](_0x3d8b21[_0xc981('0x35')],_0x51125d['filters']),_0x19ffa2);if(_0x3d8b21['query']['filter']){_0x23ef97['where']=_[_0xc981('0x3f')](_0x23ef97[_0xc981('0x3d')],{'$or':_['map'](_0x19ffa2,function(_0x1aa0ea){if(_0x1aa0ea[_0xc981('0x30')]!=='VIRTUAL'){var _0x43c3e0={};_0x43c3e0[_0x1aa0ea[_0xc981('0x34')]]={'$like':'%'+_0x3d8b21[_0xc981('0x35')]['filter']+'%'};return _0x43c3e0;}})});}_0x23ef97=_[_0xc981('0x3f')]({},_0x23ef97,_0x3d8b21[_0xc981('0x40')]);var _0x9a2d7e={'where':_0x23ef97[_0xc981('0x3d')]};return db[_0xc981('0x41')][_0xc981('0x22')](_0x9a2d7e)['then'](function(_0x3af601){_0x14cbd4[_0xc981('0x22')]=_0x3af601;if(_0x3d8b21['query'][_0xc981('0x42')]){_0x23ef97['include']=[{'all':!![]}];}return db[_0xc981('0x41')][_0xc981('0x43')](_0x23ef97);})[_0xc981('0x28')](function(_0x5ecf31){_0x14cbd4['rows']=_0x5ecf31;return _0x14cbd4;})[_0xc981('0x28')](respondWithFilteredResult(_0x587d5c,_0x23ef97))[_0xc981('0x44')](handleError(_0x587d5c,null));};exports['show']=function(_0x1e4d2d,_0x1bbddf){var _0x43340a={'raw':![],'where':{'id':_0x1e4d2d[_0xc981('0x45')]['id']}},_0xf2eb5={};_0xf2eb5['model']=_[_0xc981('0x36')](db[_0xc981('0x41')][_0xc981('0x46')]);_0xf2eb5[_0xc981('0x35')]=_[_0xc981('0x36')](_0x1e4d2d['query']);_0xf2eb5['filters']=_['intersection'](_0xf2eb5['model'],_0xf2eb5[_0xc981('0x35')]);_0x43340a[_0xc981('0x39')]=_[_0xc981('0x38')](_0xf2eb5[_0xc981('0x32')],qs[_0xc981('0x3a')](_0x1e4d2d[_0xc981('0x35')]['fields']));_0x43340a['attributes']=_0x43340a[_0xc981('0x39')]['length']?_0x43340a['attributes']:_0xf2eb5[_0xc981('0x32')];if(_0x1e4d2d[_0xc981('0x35')][_0xc981('0x42')]){_0x43340a[_0xc981('0x47')]=[{'all':!![]}];}_0x43340a=_[_0xc981('0x3f')]({},_0x43340a,_0x1e4d2d[_0xc981('0x40')]);return db[_0xc981('0x41')]['find'](_0x43340a)[_0xc981('0x28')](handleEntityNotFound(_0x1bbddf,null))[_0xc981('0x28')](respondWithResult(_0x1bbddf,null))['catch'](handleError(_0x1bbddf,null));};exports[_0xc981('0x48')]=function(_0x48f30e,_0x5d5e32){return db['ZohoAccount'][_0xc981('0x48')](_0x48f30e[_0xc981('0x49')],{})[_0xc981('0x28')](respondWithResult(_0x5d5e32,0xc9))[_0xc981('0x44')](handleError(_0x5d5e32,null));};exports[_0xc981('0x4a')]=function(_0x5c05ac,_0x3e58be){if(_0x5c05ac[_0xc981('0x49')]['id']){delete _0x5c05ac[_0xc981('0x49')]['id'];}return db[_0xc981('0x41')][_0xc981('0x4b')]({'where':{'id':_0x5c05ac[_0xc981('0x45')]['id']}})[_0xc981('0x28')](handleEntityNotFound(_0x3e58be,null))['then'](saveUpdates(_0x5c05ac['body'],null))['then'](respondWithResult(_0x3e58be,null))[_0xc981('0x44')](handleError(_0x3e58be,null));};exports[_0xc981('0x29')]=function(_0x14796b,_0x1d2273){return db['ZohoAccount'][_0xc981('0x4b')]({'where':{'id':_0x14796b[_0xc981('0x45')]['id']}})[_0xc981('0x28')](handleEntityNotFound(_0x1d2273,null))[_0xc981('0x28')](removeEntity(_0x1d2273,null))[_0xc981('0x44')](handleError(_0x1d2273,null));};exports[_0xc981('0x4c')]=function(_0x4d8d90,_0x4962a7,_0x154831){var _0x2287bc={};var _0x12ccd5={};var _0x4d662d;var _0x36fb27;return db[_0xc981('0x41')][_0xc981('0x4d')]({'where':{'id':_0x4d8d90[_0xc981('0x45')]['id']}})[_0xc981('0x28')](handleEntityNotFound(_0x4962a7,null))[_0xc981('0x28')](function(_0x1b4795){if(_0x1b4795){_0x4d662d=_0x1b4795;_0x12ccd5['model']=_['keys'](db[_0xc981('0x4e')]['rawAttributes']);_0x12ccd5['query']=_[_0xc981('0x36')](_0x4d8d90[_0xc981('0x35')]);_0x12ccd5[_0xc981('0x37')]=_[_0xc981('0x38')](_0x12ccd5[_0xc981('0x32')],_0x12ccd5[_0xc981('0x35')]);_0x2287bc[_0xc981('0x39')]=_[_0xc981('0x38')](_0x12ccd5[_0xc981('0x32')],qs[_0xc981('0x3a')](_0x4d8d90[_0xc981('0x35')]['fields']));_0x2287bc[_0xc981('0x39')]=_0x2287bc[_0xc981('0x39')]['length']?_0x2287bc[_0xc981('0x39')]:_0x12ccd5[_0xc981('0x32')];_0x2287bc[_0xc981('0x4f')]=qs[_0xc981('0x3c')](_0x4d8d90[_0xc981('0x35')][_0xc981('0x3c')]);_0x2287bc[_0xc981('0x3d')]=qs['filters'](_[_0xc981('0x3e')](_0x4d8d90[_0xc981('0x35')],_0x12ccd5[_0xc981('0x37')]));if(_0x4d8d90['query']['filter']){_0x2287bc[_0xc981('0x3d')]=_[_0xc981('0x3f')](_0x2287bc['where'],{'$or':_[_0xc981('0x33')](_0x2287bc[_0xc981('0x39')],function(_0x540069){var _0x4a1db4={};_0x4a1db4[_0x540069]={'$like':'%'+_0x4d8d90[_0xc981('0x35')][_0xc981('0x50')]+'%'};return _0x4a1db4;})});}_0x2287bc=_[_0xc981('0x3f')]({},_0x2287bc,_0x4d8d90['options']);return _0x4d662d[_0xc981('0x4c')](_0x2287bc);}})['then'](function(_0x34b292){if(_0x34b292){_0x36fb27=_0x34b292[_0xc981('0x51')];if(!_0x4d8d90[_0xc981('0x35')][_0xc981('0x3b')](_0xc981('0x52'))){_0x2287bc[_0xc981('0x20')]=qs['limit'](_0x4d8d90[_0xc981('0x35')][_0xc981('0x20')]);_0x2287bc[_0xc981('0x1f')]=qs[_0xc981('0x1f')](_0x4d8d90[_0xc981('0x35')][_0xc981('0x1f')]);}return _0x4d662d[_0xc981('0x4c')](_0x2287bc);}})[_0xc981('0x28')](function(_0xd4772){if(_0xd4772){return _0xd4772?{'count':_0x36fb27,'rows':_0xd4772}:null;}})[_0xc981('0x28')](respondWithResult(_0x4962a7,null))['catch'](handleError(_0x4962a7,null));};exports[_0xc981('0x53')]=function(_0x3a5b80,_0x1a91cd,_0x45c075){if(_0x3a5b80[_0xc981('0x49')]['id']){delete _0x3a5b80[_0xc981('0x49')]['id'];}return db['ZohoAccount'][_0xc981('0x4d')]({'where':{'id':_0x3a5b80[_0xc981('0x45')]['id']}})[_0xc981('0x28')](handleEntityNotFound(_0x1a91cd,null))['then'](function(_0x30a1cb){if(_0x30a1cb){_0x3a5b80['body'][_0xc981('0x54')]=_0x30a1cb['id'];_0x3a5b80[_0xc981('0x49')][_0xc981('0x55')]=integrations[_0xc981('0x56')](_0x3a5b80[_0xc981('0x49')][_0xc981('0x57')],_0x3a5b80['body'][_0xc981('0x30')]);_0x3a5b80[_0xc981('0x49')][_0xc981('0x58')]=integrations[_0xc981('0x59')](_0x3a5b80[_0xc981('0x49')][_0xc981('0x57')],_0x3a5b80[_0xc981('0x49')][_0xc981('0x30')]);return db['ZohoConfiguration'][_0xc981('0x48')](_0x3a5b80['body'],{'include':[{'model':db['ZohoField'],'as':_0xc981('0x55')},{'model':db[_0xc981('0x5a')],'as':'Descriptions'}]});}return null;})['then'](respondWithResult(_0x1a91cd,null))['catch'](handleError(_0x1a91cd,null));};function getAccessToken(_0x1bf4cc){return new Promise(function(_0x38f0a4,_0x41c505){var _0x2e8b79;switch(_0x1bf4cc[_0xc981('0x5b')]){case'US':_0x2e8b79=_0xc981('0x5c');break;case'AU':_0x2e8b79=_0xc981('0x5d');break;case'EU':_0x2e8b79=_0xc981('0x5e');break;case'IN':_0x2e8b79=_0xc981('0x5f');break;case'CN':_0x2e8b79=_0xc981('0x60');break;default:_0x2e8b79=_0xc981('0x5e');break;}var _0x1b8a57={'method':_0xc981('0x61'),'uri':_0x2e8b79+_0xc981('0x62'),'qs':{'refresh_token':_0x1bf4cc[_0xc981('0x63')],'client_id':_0x1bf4cc[_0xc981('0x64')],'client_secret':_0x1bf4cc[_0xc981('0x65')],'grant_type':_0xc981('0x66')},'json':!![]};return rp(_0x1b8a57)[_0xc981('0x28')](function(_0x2537b1){if(_0x2537b1['access_token']){_0x38f0a4(_0x2537b1[_0xc981('0x67')]);}else{_0x41c505(_0xc981('0x68'));}})['catch'](function(_0x3682ce){_0x41c505(_0x3682ce);});});}exports[_0xc981('0x69')]=function(_0x1a35ff,_0x43c646,_0x59e831){var _0x149387,_0x47f42b,_0x1a2797,_0x1fe65d,_0x185a0c;return db['ZohoAccount'][_0xc981('0x4d')]({'where':{'id':_0x1a35ff[_0xc981('0x45')]['id']},'attributes':['id',_0xc981('0x6a'),_0xc981('0x5b'),_0xc981('0x64'),_0xc981('0x65'),_0xc981('0x6b'),_0xc981('0x6c'),_0xc981('0x63')]})[_0xc981('0x28')](handleEntityNotFound(_0x43c646,null))[_0xc981('0x28')](function(_0x2684ad){_0x185a0c=_0x2684ad;_0x149387=_0x185a0c[_0xc981('0x6a')];_0x47f42b=_0x149387===_0xc981('0x6d')?'eu':'com';_0x1a2797=_0x185a0c[_0xc981('0x6b')];var _0x371af2=_0x1a2797[_0xc981('0x6e')](-0x1);if(_0x371af2==='/'||_0x371af2==='\x5c'||_0x371af2===':'){_0x1a2797=_0x1a2797[_0xc981('0x6f')](0x0,_0x1a2797[_0xc981('0x70')](_0x371af2));}if(!_0x185a0c['refreshToken']){throw new Error('Refresh\x20Token\x20not\x20available\x20for\x20the\x20account');}return getAccessToken(_0x185a0c);})[_0xc981('0x28')](function(_0x5d5011){if(_0x5d5011){return rp({'method':'GET','uri':util[_0xc981('0x71')]('https://www.zohoapis.%s/crm/v2/settings/fields',_0x47f42b),'qs':{'module':'Calls'},'headers':{'Authorization':_0xc981('0x72')+_0x5d5011},'json':!![]});}})[_0xc981('0x28')](function(_0x1415e5){if(_0x1415e5){if(_0x1415e5[_0xc981('0x73')]&&_0x1415e5[_0xc981('0x73')]['error']){throw new Error(_0x1415e5['response']['error'][_0xc981('0x74')]);}var _0x21f918=[];var _0x1372b6=[];var _0x43b2c3=[_0xc981('0x75'),_0xc981('0x76'),_0xc981('0x77'),'WhoId',_0xc981('0x78'),_0xc981('0x79'),_0xc981('0x7a'),'Call_Type'];_0x1372b6=_[_0xc981('0x7b')](_0x1415e5[_0xc981('0x3a')],function(_0x44f27a){return _0x43b2c3['includes'](_0x44f27a[_0xc981('0x7c')]);});for(var _0x53eacf=0x0;_0x53eacf<_0x1372b6[_0xc981('0x51')];_0x53eacf++){if(_0x1372b6[_0x53eacf]['system_mandatory']===![]){_0x21f918['push']({'id':_0x1372b6[_0x53eacf]['id'],'name':_0x1372b6[_0x53eacf][_0xc981('0x7d')],'custom':_0x1372b6[_0x53eacf][_0xc981('0x7e')],'options':_0x1372b6[_0x53eacf][_0xc981('0x7f')]===_0xc981('0x80')&&_0x1372b6[_0x53eacf][_0xc981('0x81')][_0xc981('0x51')]>-0x1?_['map'](_0x1372b6[_0x53eacf][_0xc981('0x81')],function(_0x29aefc){return{'name':_0x29aefc,'value':_0x29aefc};}):[]});}}return{'count':_0x21f918[_0xc981('0x51')],'rows':_0x21f918};}else{return{'count':0x0,'rows':[]};}})['then'](respondWithResult(_0x43c646,null))[_0xc981('0x44')](function(_0x420f71){var _0x1cc304=_0x1a35ff[_0xc981('0x35')][_0xc981('0x82')]?0x1f4:_0x420f71[_0xc981('0x83')]||0x1f4;logger[_0xc981('0x2b')](_0xc981('0x84'),_0xc981('0x69'),_0x1cc304,JSON['stringify'](_0x420f71));delete _0x420f71[_0xc981('0x34')];if(_0x1cc304===0x191){_0x1cc304=0x190;}_0x43c646[_0xc981('0x1c')](_0x1cc304)[_0xc981('0x2d')](_0x1a35ff['query'][_0xc981('0x82')]?{'message':_0xc981('0x85'),'statusCode':_0x420f71[_0xc981('0x83')]}:_0x420f71);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2b28=['rimraf','./intZohoAccount.attributes','../../components/integrations/configuration','exports','define','ZohoAccount','int_zoho_accounts','changed','zone','serverUrl','clientId','code','slice','substring','lastIndexOf','https://accounts.zoho.com','https://accounts.zoho.com.au','https://accounts.zoho.com.cn','https://accounts.zoho.eu','/oauth/v2/token','authorization_code','clientSecret','application/x-www-form-urlencoded','then','parse','refresh_token','refreshToken','info','ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d','name','format','inspect','catch','error','ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d','host','https://accounts.zoho.in','POST','../../config/logger','api','moment','bluebird'];(function(_0x23c99f,_0x3c46e8){var _0x424726=function(_0x1bcd18){while(--_0x1bcd18){_0x23c99f['push'](_0x23c99f['shift']());}};_0x424726(++_0x3c46e8);}(_0x2b28,0x14c));var _0x82b2=function(_0x13ce0c,_0x3f2a0d){_0x13ce0c=_0x13ce0c-0x0;var _0x4388fb=_0x2b28[_0x13ce0c];return _0x4388fb;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x82b2('0x0'))(_0x82b2('0x1'));var moment=require(_0x82b2('0x2'));var BPromise=require(_0x82b2('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0x82b2('0x4'));var config=require('../../config/environment');var attributes=require(_0x82b2('0x5'));var integrations=require(_0x82b2('0x6'));module[_0x82b2('0x7')]=function(_0x2ca863,_0x2257e7){return _0x2ca863[_0x82b2('0x8')](_0x82b2('0x9'),attributes,{'tableName':_0x82b2('0xa'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeCreate':function(_0x44904d,_0x5cb747,_0x551a60){if(_0x44904d[_0x82b2('0xb')](_0x82b2('0xc'))||_0x44904d[_0x82b2('0xb')](_0x82b2('0xd'))||_0x44904d[_0x82b2('0xb')](_0x82b2('0xe'))||_0x44904d['changed']('clientSecret')||_0x44904d[_0x82b2('0xb')](_0x82b2('0xf'))||_0x44904d['changed']('host')){var _0x4529d5,_0x12c1b7;_0x4529d5=_0x44904d[_0x82b2('0xd')];var _0x98c7b6=_0x4529d5[_0x82b2('0x10')](-0x1);if(_0x98c7b6==='/'||_0x98c7b6==='\x5c'||_0x98c7b6===':'){_0x4529d5=_0x4529d5[_0x82b2('0x11')](0x0,_0x4529d5[_0x82b2('0x12')](_0x98c7b6));}switch(_0x44904d[_0x82b2('0xc')]){case'US':_0x12c1b7=_0x82b2('0x13');break;case'AU':_0x12c1b7=_0x82b2('0x14');break;case'IN':_0x12c1b7='https://accounts.zoho.in';break;case'CN':_0x12c1b7=_0x82b2('0x15');break;default:_0x12c1b7=_0x82b2('0x16');break;}var _0x57c5f4={'method':'POST','uri':_0x12c1b7+_0x82b2('0x17'),'form':{'grant_type':_0x82b2('0x18'),'client_id':_0x44904d[_0x82b2('0xe')],'client_secret':_0x44904d[_0x82b2('0x19')],'redirect_uri':_0x44904d[_0x82b2('0xd')],'code':_0x44904d[_0x82b2('0xf')]},'headers':{'Content-Type':_0x82b2('0x1a')}};return rp(_0x57c5f4)[_0x82b2('0x1b')](function(_0x335874){var _0x30511d=JSON[_0x82b2('0x1c')](_0x335874);if(_0x30511d[_0x82b2('0x1d')]){_0x44904d[_0x82b2('0x1e')]=_0x30511d[_0x82b2('0x1d')];logger[_0x82b2('0x1f')](util['format'](_0x82b2('0x20'),_0x44904d[_0x82b2('0x21')],_0x44904d['id']));}else{logger['error'](util[_0x82b2('0x22')]('ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d',_0x44904d[_0x82b2('0x21')],_0x44904d['id']),util[_0x82b2('0x23')](_0x30511d,{'showHidden':![],'depth':null}));}return _0x551a60(null,_0x5cb747);})[_0x82b2('0x24')](function(_0x5c2b3d){logger[_0x82b2('0x25')](util[_0x82b2('0x22')](_0x82b2('0x26'),_0x44904d['name'],_0x44904d['id']),util[_0x82b2('0x23')](parsedResult,{'showHidden':![],'depth':null}));return _0x551a60(_0x5c2b3d);});}else{return _0x551a60(null,_0x5cb747);}},'beforeUpdate':function(_0x4b0a8d,_0x323a8c,_0x9042e4){if(_0x4b0a8d['changed'](_0x82b2('0xc'))||_0x4b0a8d['changed']('serverUrl')||_0x4b0a8d[_0x82b2('0xb')](_0x82b2('0xe'))||_0x4b0a8d[_0x82b2('0xb')]('clientSecret')||_0x4b0a8d['changed'](_0x82b2('0xf'))||_0x4b0a8d[_0x82b2('0xb')](_0x82b2('0x27'))){var _0x28a2a0,_0x274adc;_0x28a2a0=_0x4b0a8d['serverUrl'];var _0x47681f=_0x28a2a0[_0x82b2('0x10')](-0x1);if(_0x47681f==='/'||_0x47681f==='\x5c'||_0x47681f===':'){_0x28a2a0=_0x28a2a0[_0x82b2('0x11')](0x0,_0x28a2a0[_0x82b2('0x12')](_0x47681f));}switch(_0x4b0a8d[_0x82b2('0xc')]){case'US':_0x274adc='https://accounts.zoho.com';break;case'AU':_0x274adc='https://accounts.zoho.com.au';break;case'IN':_0x274adc=_0x82b2('0x28');break;case'CN':_0x274adc=_0x82b2('0x15');break;default:_0x274adc=_0x82b2('0x16');break;}var _0x52be0f={'method':_0x82b2('0x29'),'uri':_0x274adc+'/oauth/v2/token','form':{'grant_type':_0x82b2('0x18'),'client_id':_0x4b0a8d[_0x82b2('0xe')],'client_secret':_0x4b0a8d[_0x82b2('0x19')],'redirect_uri':_0x4b0a8d[_0x82b2('0xd')],'code':_0x4b0a8d[_0x82b2('0xf')]},'headers':{'Content-Type':_0x82b2('0x1a')}};return rp(_0x52be0f)['then'](function(_0x411491){var _0x12e2d9=JSON[_0x82b2('0x1c')](_0x411491);if(_0x12e2d9[_0x82b2('0x1d')]){_0x4b0a8d['refreshToken']=_0x12e2d9[_0x82b2('0x1d')];logger[_0x82b2('0x1f')](util[_0x82b2('0x22')](_0x82b2('0x20'),_0x4b0a8d[_0x82b2('0x21')],_0x4b0a8d['id']));}else{logger[_0x82b2('0x25')](util[_0x82b2('0x22')](_0x82b2('0x26'),_0x4b0a8d[_0x82b2('0x21')],_0x4b0a8d['id']),util[_0x82b2('0x23')](_0x12e2d9,{'showHidden':![],'depth':null}));}return _0x9042e4(null,_0x323a8c);})[_0x82b2('0x24')](function(_0x7925b4){logger[_0x82b2('0x25')](util[_0x82b2('0x22')](_0x82b2('0x26'),_0x4b0a8d['name'],_0x4b0a8d['id']),util['inspect'](parsedResult,{'showHidden':![],'depth':null}));return _0x9042e4(_0x7925b4);});}else{return _0x9042e4(null,_0x323a8c);}}}});};
\ No newline at end of file
+var _0x3d77=['https://accounts.zoho.com','https://accounts.zoho.com.au','https://accounts.zoho.in','POST','authorization_code','then','parse','refresh_token','refreshToken','info','ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d','error','format','catch','ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d','name','inspect','substring','lastIndexOf','application/x-www-form-urlencoded','util','../../config/logger','api','bluebird','request-promise','rimraf','./intZohoAccount.attributes','../../components/integrations/configuration','define','int_zoho_accounts','changed','zone','serverUrl','clientId','clientSecret','code','host','slice'];(function(_0x644ecd,_0x397f36){var _0x1c66ce=function(_0x4cf42b){while(--_0x4cf42b){_0x644ecd['push'](_0x644ecd['shift']());}};_0x1c66ce(++_0x397f36);}(_0x3d77,0x190));var _0x73d7=function(_0x47e7cb,_0x4c1b8d){_0x47e7cb=_0x47e7cb-0x0;var _0x2a8874=_0x3d77[_0x47e7cb];return _0x2a8874;};'use strict';var _=require('lodash');var util=require(_0x73d7('0x0'));var logger=require(_0x73d7('0x1'))(_0x73d7('0x2'));var moment=require('moment');var BPromise=require(_0x73d7('0x3'));var rp=require(_0x73d7('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x73d7('0x5'));var config=require('../../config/environment');var attributes=require(_0x73d7('0x6'));var integrations=require(_0x73d7('0x7'));module['exports']=function(_0x54eff8,_0x3ac0be){return _0x54eff8[_0x73d7('0x8')]('ZohoAccount',attributes,{'tableName':_0x73d7('0x9'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeCreate':function(_0x492fcd,_0x47734c,_0x11787b){if(_0x492fcd[_0x73d7('0xa')](_0x73d7('0xb'))||_0x492fcd[_0x73d7('0xa')](_0x73d7('0xc'))||_0x492fcd[_0x73d7('0xa')](_0x73d7('0xd'))||_0x492fcd[_0x73d7('0xa')](_0x73d7('0xe'))||_0x492fcd[_0x73d7('0xa')](_0x73d7('0xf'))||_0x492fcd[_0x73d7('0xa')](_0x73d7('0x10'))){var _0x2618f8,_0x415d02;_0x2618f8=_0x492fcd[_0x73d7('0xc')];var _0x5bc197=_0x2618f8[_0x73d7('0x11')](-0x1);if(_0x5bc197==='/'||_0x5bc197==='\x5c'||_0x5bc197===':'){_0x2618f8=_0x2618f8['substring'](0x0,_0x2618f8['lastIndexOf'](_0x5bc197));}switch(_0x492fcd[_0x73d7('0xb')]){case'US':_0x415d02=_0x73d7('0x12');break;case'AU':_0x415d02=_0x73d7('0x13');break;case'IN':_0x415d02=_0x73d7('0x14');break;case'CN':_0x415d02='https://accounts.zoho.com.cn';break;default:_0x415d02='https://accounts.zoho.eu';break;}var _0x338fe2={'method':_0x73d7('0x15'),'uri':_0x415d02+'/oauth/v2/token','form':{'grant_type':_0x73d7('0x16'),'client_id':_0x492fcd[_0x73d7('0xd')],'client_secret':_0x492fcd[_0x73d7('0xe')],'redirect_uri':_0x492fcd['serverUrl'],'code':_0x492fcd['code']},'headers':{'Content-Type':'application/x-www-form-urlencoded'}};return rp(_0x338fe2)[_0x73d7('0x17')](function(_0x1e7196){var _0x2e05f2=JSON[_0x73d7('0x18')](_0x1e7196);if(_0x2e05f2[_0x73d7('0x19')]){_0x492fcd[_0x73d7('0x1a')]=_0x2e05f2[_0x73d7('0x19')];logger[_0x73d7('0x1b')](util['format'](_0x73d7('0x1c'),_0x492fcd['name'],_0x492fcd['id']));}else{logger[_0x73d7('0x1d')](util[_0x73d7('0x1e')]('ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d',_0x492fcd['name'],_0x492fcd['id']),util['inspect'](_0x2e05f2,{'showHidden':![],'depth':null}));}return _0x11787b(null,_0x47734c);})[_0x73d7('0x1f')](function(_0x4d08d5){logger[_0x73d7('0x1d')](util[_0x73d7('0x1e')](_0x73d7('0x20'),_0x492fcd[_0x73d7('0x21')],_0x492fcd['id']),util[_0x73d7('0x22')](parsedResult,{'showHidden':![],'depth':null}));return _0x11787b(_0x4d08d5);});}else{return _0x11787b(null,_0x47734c);}},'beforeUpdate':function(_0x26dbc9,_0x5b0075,_0x5706f9){if(_0x26dbc9['changed'](_0x73d7('0xb'))||_0x26dbc9[_0x73d7('0xa')](_0x73d7('0xc'))||_0x26dbc9[_0x73d7('0xa')]('clientId')||_0x26dbc9[_0x73d7('0xa')](_0x73d7('0xe'))||_0x26dbc9[_0x73d7('0xa')](_0x73d7('0xf'))||_0x26dbc9[_0x73d7('0xa')]('host')){var _0x51ab5c,_0x36d1b7;_0x51ab5c=_0x26dbc9['serverUrl'];var _0x407896=_0x51ab5c['slice'](-0x1);if(_0x407896==='/'||_0x407896==='\x5c'||_0x407896===':'){_0x51ab5c=_0x51ab5c[_0x73d7('0x23')](0x0,_0x51ab5c[_0x73d7('0x24')](_0x407896));}switch(_0x26dbc9[_0x73d7('0xb')]){case'US':_0x36d1b7=_0x73d7('0x12');break;case'AU':_0x36d1b7=_0x73d7('0x13');break;case'IN':_0x36d1b7=_0x73d7('0x14');break;case'CN':_0x36d1b7='https://accounts.zoho.com.cn';break;default:_0x36d1b7='https://accounts.zoho.eu';break;}var _0xa27a17={'method':_0x73d7('0x15'),'uri':_0x36d1b7+'/oauth/v2/token','form':{'grant_type':_0x73d7('0x16'),'client_id':_0x26dbc9[_0x73d7('0xd')],'client_secret':_0x26dbc9[_0x73d7('0xe')],'redirect_uri':_0x26dbc9['serverUrl'],'code':_0x26dbc9[_0x73d7('0xf')]},'headers':{'Content-Type':_0x73d7('0x25')}};return rp(_0xa27a17)['then'](function(_0x47547){var _0x14ae5a=JSON['parse'](_0x47547);if(_0x14ae5a[_0x73d7('0x19')]){_0x26dbc9['refreshToken']=_0x14ae5a[_0x73d7('0x19')];logger[_0x73d7('0x1b')](util[_0x73d7('0x1e')](_0x73d7('0x1c'),_0x26dbc9['name'],_0x26dbc9['id']));}else{logger[_0x73d7('0x1d')](util[_0x73d7('0x1e')]('ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d',_0x26dbc9[_0x73d7('0x21')],_0x26dbc9['id']),util[_0x73d7('0x22')](_0x14ae5a,{'showHidden':![],'depth':null}));}return _0x5706f9(null,_0x5b0075);})[_0x73d7('0x1f')](function(_0x3afbb3){logger['error'](util['format']('ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d',_0x26dbc9[_0x73d7('0x21')],_0x26dbc9['id']),util[_0x73d7('0x22')](parsedResult,{'showHidden':![],'depth':null}));return _0x5706f9(_0x3afbb3);});}else{return _0x5706f9(null,_0x5b0075);}}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdb7e=['info','ZohoAccount,\x20%s,\x20%s','request\x20sent','debug','ZohoAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','GetZohoAccount','ZohoAccount','findAll','options','raw','where','attributes','map','include','model','ShowZohoAccount','find','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then'];(function(_0x43bf3f,_0x44719b){var _0x257e87=function(_0x17e560){while(--_0x17e560){_0x43bf3f['push'](_0x43bf3f['shift']());}};_0x257e87(++_0x44719b);}(_0xdb7e,0x11a));var _0xedb7=function(_0x3d5f5b,_0x23246b){_0x3d5f5b=_0x3d5f5b-0x0;var _0x4c2ec3=_0xdb7e[_0x3d5f5b];return _0x4c2ec3;};'use strict';var _=require(_0xedb7('0x0'));var util=require(_0xedb7('0x1'));var moment=require(_0xedb7('0x2'));var BPromise=require('bluebird');var rs=require(_0xedb7('0x3'));var fs=require('fs');var Redis=require(_0xedb7('0x4'));var db=require(_0xedb7('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0xedb7('0x6'))(_0xedb7('0x7'));var config=require(_0xedb7('0x8'));var jayson=require(_0xedb7('0x9'));var client=jayson[_0xedb7('0xa')][_0xedb7('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x87bf4b,_0x20a7c7,_0x26774f){return new BPromise(function(_0x2ae0f7,_0x5a8650){return client[_0xedb7('0xc')](_0x87bf4b,_0x26774f)[_0xedb7('0xd')](function(_0x12c7ba){logger[_0xedb7('0xe')](_0xedb7('0xf'),_0x20a7c7,_0xedb7('0x10'));logger[_0xedb7('0x11')](_0xedb7('0x12'),_0x20a7c7,_0xedb7('0x10'),JSON[_0xedb7('0x13')](_0x12c7ba));if(_0x12c7ba[_0xedb7('0x14')]){if(_0x12c7ba[_0xedb7('0x14')][_0xedb7('0x15')]===0x1f4){logger['error']('ZohoAccount,\x20%s,\x20%s',_0x20a7c7,_0x12c7ba[_0xedb7('0x14')][_0xedb7('0x16')]);return _0x5a8650(_0x12c7ba[_0xedb7('0x14')][_0xedb7('0x16')]);}logger[_0xedb7('0x14')](_0xedb7('0xf'),_0x20a7c7,_0x12c7ba[_0xedb7('0x14')][_0xedb7('0x16')]);return _0x2ae0f7(_0x12c7ba[_0xedb7('0x14')]['message']);}else{logger['info'](_0xedb7('0xf'),_0x20a7c7,_0xedb7('0x10'));_0x2ae0f7(_0x12c7ba[_0xedb7('0x17')]['message']);}})[_0xedb7('0x18')](function(_0x3ce7c5){logger[_0xedb7('0x14')](_0xedb7('0xf'),_0x20a7c7,_0x3ce7c5);_0x5a8650(_0x3ce7c5);});});}exports[_0xedb7('0x19')]=function(_0x50f579){var _0x5d2d6a=this;return new Promise(function(_0x3d8f2a,_0xa8aae0){return db[_0xedb7('0x1a')][_0xedb7('0x1b')]({'raw':_0x50f579['options']?_0x50f579[_0xedb7('0x1c')][_0xedb7('0x1d')]===undefined?!![]:![]:!![],'where':_0x50f579[_0xedb7('0x1c')]?_0x50f579['options'][_0xedb7('0x1e')]||null:null,'attributes':_0x50f579['options']?_0x50f579[_0xedb7('0x1c')][_0xedb7('0x1f')]||null:null,'limit':_0x50f579[_0xedb7('0x1c')]?_0x50f579['options']['limit']||null:null,'include':_0x50f579[_0xedb7('0x1c')]?_0x50f579[_0xedb7('0x1c')]['include']?_[_0xedb7('0x20')](_0x50f579[_0xedb7('0x1c')]['include'],function(_0x16d887){return{'model':db[_0x16d887['model']],'as':_0x16d887['as'],'attributes':_0x16d887['attributes'],'include':_0x16d887[_0xedb7('0x21')]?_[_0xedb7('0x20')](_0x16d887['include'],function(_0x1ad4e9){return{'model':db[_0x1ad4e9[_0xedb7('0x22')]],'as':_0x1ad4e9['as'],'attributes':_0x1ad4e9[_0xedb7('0x1f')],'include':_0x1ad4e9[_0xedb7('0x21')]?_[_0xedb7('0x20')](_0x1ad4e9[_0xedb7('0x21')],function(_0xfcc7ee){return{'model':db[_0xfcc7ee[_0xedb7('0x22')]],'as':_0xfcc7ee['as'],'attributes':_0xfcc7ee['attributes']};}):[]};}):[]};}):[]:[]})[_0xedb7('0xd')](function(_0x509106){logger['info'](_0xedb7('0x19'),_0x50f579);logger[_0xedb7('0x11')]('GetZohoAccount',_0x50f579,JSON['stringify'](_0x509106));_0x3d8f2a(_0x509106);})[_0xedb7('0x18')](function(_0x515ab1){logger[_0xedb7('0x14')](_0xedb7('0x19'),_0x515ab1[_0xedb7('0x16')],_0x50f579);_0xa8aae0(_0x5d2d6a['error'](0x1f4,_0x515ab1[_0xedb7('0x16')]));});});};exports[_0xedb7('0x23')]=function(_0x320c92){var _0x2202bd=this;return new Promise(function(_0xe9293,_0xb5a7ba){return db['ZohoAccount'][_0xedb7('0x24')]({'raw':_0x320c92['options']?_0x320c92[_0xedb7('0x1c')]['raw']===undefined?!![]:![]:!![],'where':_0x320c92[_0xedb7('0x1c')]?_0x320c92['options'][_0xedb7('0x1e')]||null:null,'attributes':_0x320c92[_0xedb7('0x1c')]?_0x320c92[_0xedb7('0x1c')]['attributes']||null:null,'include':_0x320c92['options']?_0x320c92[_0xedb7('0x1c')][_0xedb7('0x21')]?_[_0xedb7('0x20')](_0x320c92['options'][_0xedb7('0x21')],function(_0x572e30){return{'model':db[_0x572e30[_0xedb7('0x22')]],'as':_0x572e30['as'],'attributes':_0x572e30[_0xedb7('0x1f')],'include':_0x572e30[_0xedb7('0x21')]?_[_0xedb7('0x20')](_0x572e30[_0xedb7('0x21')],function(_0x1c2b0c){return{'model':db[_0x1c2b0c['model']],'as':_0x1c2b0c['as'],'attributes':_0x1c2b0c[_0xedb7('0x1f')],'include':_0x1c2b0c[_0xedb7('0x21')]?_['map'](_0x1c2b0c[_0xedb7('0x21')],function(_0x251875){return{'model':db[_0x251875[_0xedb7('0x22')]],'as':_0x251875['as'],'attributes':_0x251875[_0xedb7('0x1f')]};}):[]};}):[]};}):[]:[]})[_0xedb7('0xd')](function(_0x24b2b0){logger[_0xedb7('0xe')](_0xedb7('0x23'),_0x320c92);logger[_0xedb7('0x11')](_0xedb7('0x23'),_0x320c92,JSON[_0xedb7('0x13')](_0x24b2b0));_0xe9293(_0x24b2b0);})[_0xedb7('0x18')](function(_0x262199){logger[_0xedb7('0x14')]('ShowZohoAccount',_0x262199[_0xedb7('0x16')],_0x320c92);_0xb5a7ba(_0x2202bd[_0xedb7('0x14')](0x1f4,_0x262199[_0xedb7('0x16')]));});});};
\ No newline at end of file
+var _0x1893=['request\x20sent','debug','ZohoAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','GetZohoAccount','ZohoAccount','findAll','options','raw','where','attributes','include','map','model','catch','ShowZohoAccount','find','then','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','request','ZohoAccount,\x20%s,\x20%s'];(function(_0x382170,_0x77f9c){var _0x2dd47d=function(_0x33b9dc){while(--_0x33b9dc){_0x382170['push'](_0x382170['shift']());}};_0x2dd47d(++_0x77f9c);}(_0x1893,0xa2));var _0x3189=function(_0x2cbb74,_0x241c10){_0x2cbb74=_0x2cbb74-0x0;var _0xa6d18=_0x1893[_0x2cbb74];return _0xa6d18;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x3189('0x0'));var BPromise=require(_0x3189('0x1'));var rs=require(_0x3189('0x2'));var fs=require('fs');var Redis=require(_0x3189('0x3'));var db=require(_0x3189('0x4'))['db'];var utils=require(_0x3189('0x5'));var logger=require(_0x3189('0x6'))('rpc');var config=require(_0x3189('0x7'));var jayson=require(_0x3189('0x8'));var client=jayson[_0x3189('0x9')][_0x3189('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x77c566,_0x118970,_0x14d84b){return new BPromise(function(_0x1f6764,_0x5312a3){return client[_0x3189('0xb')](_0x77c566,_0x14d84b)['then'](function(_0x127449){logger['info'](_0x3189('0xc'),_0x118970,_0x3189('0xd'));logger[_0x3189('0xe')](_0x3189('0xf'),_0x118970,'request\x20sent',JSON[_0x3189('0x10')](_0x127449));if(_0x127449[_0x3189('0x11')]){if(_0x127449[_0x3189('0x11')][_0x3189('0x12')]===0x1f4){logger[_0x3189('0x11')]('ZohoAccount,\x20%s,\x20%s',_0x118970,_0x127449[_0x3189('0x11')][_0x3189('0x13')]);return _0x5312a3(_0x127449[_0x3189('0x11')][_0x3189('0x13')]);}logger[_0x3189('0x11')](_0x3189('0xc'),_0x118970,_0x127449[_0x3189('0x11')][_0x3189('0x13')]);return _0x1f6764(_0x127449['error'][_0x3189('0x13')]);}else{logger[_0x3189('0x14')](_0x3189('0xc'),_0x118970,_0x3189('0xd'));_0x1f6764(_0x127449['result'][_0x3189('0x13')]);}})['catch'](function(_0x55f432){logger[_0x3189('0x11')]('ZohoAccount,\x20%s,\x20%s',_0x118970,_0x55f432);_0x5312a3(_0x55f432);});});}exports[_0x3189('0x15')]=function(_0xf8aed7){var _0x22c7ba=this;return new Promise(function(_0x9905c4,_0x4c4d9b){return db[_0x3189('0x16')][_0x3189('0x17')]({'raw':_0xf8aed7[_0x3189('0x18')]?_0xf8aed7['options'][_0x3189('0x19')]===undefined?!![]:![]:!![],'where':_0xf8aed7[_0x3189('0x18')]?_0xf8aed7[_0x3189('0x18')][_0x3189('0x1a')]||null:null,'attributes':_0xf8aed7[_0x3189('0x18')]?_0xf8aed7['options'][_0x3189('0x1b')]||null:null,'limit':_0xf8aed7[_0x3189('0x18')]?_0xf8aed7[_0x3189('0x18')]['limit']||null:null,'include':_0xf8aed7[_0x3189('0x18')]?_0xf8aed7['options'][_0x3189('0x1c')]?_[_0x3189('0x1d')](_0xf8aed7[_0x3189('0x18')][_0x3189('0x1c')],function(_0x1cbe33){return{'model':db[_0x1cbe33[_0x3189('0x1e')]],'as':_0x1cbe33['as'],'attributes':_0x1cbe33['attributes'],'include':_0x1cbe33['include']?_[_0x3189('0x1d')](_0x1cbe33[_0x3189('0x1c')],function(_0x1dc1c8){return{'model':db[_0x1dc1c8[_0x3189('0x1e')]],'as':_0x1dc1c8['as'],'attributes':_0x1dc1c8[_0x3189('0x1b')],'include':_0x1dc1c8[_0x3189('0x1c')]?_[_0x3189('0x1d')](_0x1dc1c8[_0x3189('0x1c')],function(_0x17b540){return{'model':db[_0x17b540[_0x3189('0x1e')]],'as':_0x17b540['as'],'attributes':_0x17b540['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x5aa34a){logger[_0x3189('0x14')](_0x3189('0x15'),_0xf8aed7);logger[_0x3189('0xe')](_0x3189('0x15'),_0xf8aed7,JSON[_0x3189('0x10')](_0x5aa34a));_0x9905c4(_0x5aa34a);})[_0x3189('0x1f')](function(_0x4d453a){logger[_0x3189('0x11')](_0x3189('0x15'),_0x4d453a['message'],_0xf8aed7);_0x4c4d9b(_0x22c7ba[_0x3189('0x11')](0x1f4,_0x4d453a[_0x3189('0x13')]));});});};exports[_0x3189('0x20')]=function(_0x5c7a36){var _0x168dc2=this;return new Promise(function(_0x32bba1,_0x23798e){return db['ZohoAccount'][_0x3189('0x21')]({'raw':_0x5c7a36[_0x3189('0x18')]?_0x5c7a36['options'][_0x3189('0x19')]===undefined?!![]:![]:!![],'where':_0x5c7a36[_0x3189('0x18')]?_0x5c7a36[_0x3189('0x18')][_0x3189('0x1a')]||null:null,'attributes':_0x5c7a36[_0x3189('0x18')]?_0x5c7a36['options']['attributes']||null:null,'include':_0x5c7a36[_0x3189('0x18')]?_0x5c7a36['options'][_0x3189('0x1c')]?_[_0x3189('0x1d')](_0x5c7a36[_0x3189('0x18')][_0x3189('0x1c')],function(_0x231d72){return{'model':db[_0x231d72[_0x3189('0x1e')]],'as':_0x231d72['as'],'attributes':_0x231d72[_0x3189('0x1b')],'include':_0x231d72[_0x3189('0x1c')]?_[_0x3189('0x1d')](_0x231d72['include'],function(_0x453e4b){return{'model':db[_0x453e4b[_0x3189('0x1e')]],'as':_0x453e4b['as'],'attributes':_0x453e4b[_0x3189('0x1b')],'include':_0x453e4b[_0x3189('0x1c')]?_[_0x3189('0x1d')](_0x453e4b[_0x3189('0x1c')],function(_0xd1ee0){return{'model':db[_0xd1ee0['model']],'as':_0xd1ee0['as'],'attributes':_0xd1ee0['attributes']};}):[]};}):[]};}):[]:[]})[_0x3189('0x22')](function(_0x580064){logger[_0x3189('0x14')](_0x3189('0x20'),_0x5c7a36);logger['debug'](_0x3189('0x20'),_0x5c7a36,JSON[_0x3189('0x10')](_0x580064));_0x32bba1(_0x580064);})[_0x3189('0x1f')](function(_0x254135){logger['error'](_0x3189('0x20'),_0x254135['message'],_0x5c7a36);_0x23798e(_0x168dc2['error'](0x1f4,_0x254135[_0x3189('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x32fd=['/:id','update','destroy','exports','multer','util','express','fs-extra','../../components/auth/service','../../config/environment','./intZohoConfiguration.controller','get','isAuthenticated','index','show','getFields','/:id/subjects','getSubjects','post','put'];(function(_0x8a4b15,_0x9fa7c0){var _0x1c604c=function(_0x5f41f8){while(--_0x5f41f8){_0x8a4b15['push'](_0x8a4b15['shift']());}};_0x1c604c(++_0x9fa7c0);}(_0x32fd,0xf4));var _0xd32f=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x32fd[_0x3dd15e];return _0x231fd0;};'use strict';var multer=require(_0xd32f('0x0'));var util=require(_0xd32f('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0xd32f('0x2'));var router=express['Router']();var fs_extra=require(_0xd32f('0x3'));var auth=require(_0xd32f('0x4'));var interaction=require('../../components/interaction/service');var config=require(_0xd32f('0x5'));var controller=require(_0xd32f('0x6'));router[_0xd32f('0x7')]('/',auth[_0xd32f('0x8')](),controller[_0xd32f('0x9')]);router[_0xd32f('0x7')]('/:id',auth['isAuthenticated'](),controller[_0xd32f('0xa')]);router[_0xd32f('0x7')]('/:id/fields',auth[_0xd32f('0x8')](),controller[_0xd32f('0xb')]);router[_0xd32f('0x7')](_0xd32f('0xc'),auth[_0xd32f('0x8')](),controller[_0xd32f('0xd')]);router[_0xd32f('0x7')]('/:id/descriptions',auth['isAuthenticated'](),controller['getDescriptions']);router[_0xd32f('0xe')]('/',auth[_0xd32f('0x8')](),controller['create']);router[_0xd32f('0xf')](_0xd32f('0x10'),auth[_0xd32f('0x8')](),controller[_0xd32f('0x11')]);router['delete']('/:id',auth['isAuthenticated'](),controller[_0xd32f('0x12')]);module[_0xd32f('0x13')]=router;
\ No newline at end of file
+var _0x98c1=['connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./intZohoConfiguration.controller','get','isAuthenticated','show','/:id/fields','/:id/subjects','/:id/descriptions','getDescriptions','post','create','/:id','delete','destroy','exports','util','path'];(function(_0x5d7389,_0x59dd6a){var _0xc76487=function(_0x480571){while(--_0x480571){_0x5d7389['push'](_0x5d7389['shift']());}};_0xc76487(++_0x59dd6a);}(_0x98c1,0x1b6));var _0x198c=function(_0x2c9056,_0x552f14){_0x2c9056=_0x2c9056-0x0;var _0x3e6959=_0x98c1[_0x2c9056];return _0x3e6959;};'use strict';var multer=require('multer');var util=require(_0x198c('0x0'));var path=require(_0x198c('0x1'));var timeout=require(_0x198c('0x2'));var express=require(_0x198c('0x3'));var router=express['Router']();var fs_extra=require(_0x198c('0x4'));var auth=require(_0x198c('0x5'));var interaction=require(_0x198c('0x6'));var config=require(_0x198c('0x7'));var controller=require(_0x198c('0x8'));router[_0x198c('0x9')]('/',auth[_0x198c('0xa')](),controller['index']);router['get']('/:id',auth['isAuthenticated'](),controller[_0x198c('0xb')]);router['get'](_0x198c('0xc'),auth['isAuthenticated'](),controller['getFields']);router[_0x198c('0x9')](_0x198c('0xd'),auth[_0x198c('0xa')](),controller['getSubjects']);router[_0x198c('0x9')](_0x198c('0xe'),auth[_0x198c('0xa')](),controller[_0x198c('0xf')]);router[_0x198c('0x10')]('/',auth['isAuthenticated'](),controller[_0x198c('0x11')]);router['put'](_0x198c('0x12'),auth[_0x198c('0xa')](),controller['update']);router[_0x198c('0x13')](_0x198c('0x12'),auth[_0x198c('0xa')](),controller[_0x198c('0x14')]);module[_0x198c('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xce14=['lead','contact','ENUM','contact_lead','STRING','sequelize','exports'];(function(_0x4c03ea,_0x3465be){var _0x7a6922=function(_0xd50354){while(--_0xd50354){_0x4c03ea['push'](_0x4c03ea['shift']());}};_0x7a6922(++_0x3465be);}(_0xce14,0x124));var _0x4ce1=function(_0xbca1b1,_0x33f0ce){_0xbca1b1=_0xbca1b1-0x0;var _0x4e1686=_0xce14[_0xbca1b1];return _0x4e1686;};'use strict';var Sequelize=require(_0x4ce1('0x0'));module[_0x4ce1('0x1')]={'name':{'type':Sequelize['STRING']},'moduleCreate':{'type':Sequelize['ENUM'](_0x4ce1('0x2'),_0x4ce1('0x3'),'nothing'),'defaultValue':_0x4ce1('0x2')},'moduleSearch':{'type':Sequelize[_0x4ce1('0x4')](_0x4ce1('0x5'),_0x4ce1('0x3'),_0x4ce1('0x2')),'defaultValue':_0x4ce1('0x5')},'description':{'type':Sequelize[_0x4ce1('0x6')]}};
\ No newline at end of file
+var _0x757a=['sequelize','exports','STRING','ENUM','lead','contact','nothing','contact_lead'];(function(_0x5eee28,_0x3c12a9){var _0x4efb99=function(_0x13aab0){while(--_0x13aab0){_0x5eee28['push'](_0x5eee28['shift']());}};_0x4efb99(++_0x3c12a9);}(_0x757a,0x110));var _0xa757=function(_0x30bbfa,_0x388daf){_0x30bbfa=_0x30bbfa-0x0;var _0xa82958=_0x757a[_0x30bbfa];return _0xa82958;};'use strict';var Sequelize=require(_0xa757('0x0'));module[_0xa757('0x1')]={'name':{'type':Sequelize[_0xa757('0x2')]},'moduleCreate':{'type':Sequelize[_0xa757('0x3')](_0xa757('0x4'),_0xa757('0x5'),_0xa757('0x6')),'defaultValue':_0xa757('0x4')},'moduleSearch':{'type':Sequelize[_0xa757('0x3')]('contact_lead',_0xa757('0x5'),_0xa757('0x4')),'defaultValue':_0xa757('0x7')},'description':{'type':Sequelize[_0xa757('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa704=['merge','options','includeAll','include','findAll','catch','show','find','body','params','findOne','ZohoField','getFields','getSubjects','getDescriptions','eml-format','zip-dir','fast-json-patch','request-promise','moment','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','undefined','count','set','Content-Range','apply','save','update','then','name','send','index','map','ZohoConfiguration','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','limit','order','sort','where','pick','filter'];(function(_0x246148,_0x1358ee){var _0x453d94=function(_0x59920e){while(--_0x59920e){_0x246148['push'](_0x246148['shift']());}};_0x453d94(++_0x1358ee);}(_0xa704,0xf6));var _0x4a70=function(_0x568b93,_0x1a7f8b){_0x568b93=_0x568b93-0x0;var _0xffd843=_0xa704[_0x568b93];return _0xffd843;};'use strict';var emlformat=require(_0x4a70('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x4a70('0x1'));var jsonpatch=require(_0x4a70('0x2'));var rp=require(_0x4a70('0x3'));var moment=require(_0x4a70('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x4a70('0x5'));var path=require(_0x4a70('0x6'));var sox=require(_0x4a70('0x7'));var csv=require(_0x4a70('0x8'));var ejs=require(_0x4a70('0x9'));var fs=require('fs');var fs_extra=require(_0x4a70('0xa'));var _=require(_0x4a70('0xb'));var squel=require(_0x4a70('0xc'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x4a70('0xd'));var toCsv=require(_0x4a70('0x8'));var querystring=require(_0x4a70('0xe'));var Papa=require(_0x4a70('0xf'));var Redis=require(_0x4a70('0x10'));var authService=require('../../components/auth/service');var qs=require(_0x4a70('0x11'));var as=require(_0x4a70('0x12'));var hardwareService=require(_0x4a70('0x13'));var logger=require('../../config/logger')(_0x4a70('0x14'));var utils=require(_0x4a70('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0x4a70('0x16'));var db=require(_0x4a70('0x17'))['db'];function respondWithStatusCode(_0xf579ca,_0xf82933){_0xf82933=_0xf82933||0xcc;return function(_0x5be83c){if(_0x5be83c){return _0xf579ca[_0x4a70('0x18')](_0xf82933);}return _0xf579ca['status'](_0xf82933)[_0x4a70('0x19')]();};}function respondWithResult(_0x425541,_0x20dc96){_0x20dc96=_0x20dc96||0xc8;return function(_0x2db36f){if(_0x2db36f){return _0x425541[_0x4a70('0x1a')](_0x20dc96)[_0x4a70('0x1b')](_0x2db36f);}};}function respondWithFilteredResult(_0x2417d0,_0x36a37e){return function(_0xe28ff7){if(_0xe28ff7){var _0x2a332c=typeof _0x36a37e[_0x4a70('0x1c')]===_0x4a70('0x1d')&&typeof _0x36a37e['limit']==='undefined';var _0x3fdf4d=_0xe28ff7[_0x4a70('0x1e')];var _0x34af09=_0x2a332c?0x0:_0x36a37e[_0x4a70('0x1c')];var _0x1f03f9=_0x2a332c?_0xe28ff7[_0x4a70('0x1e')]:_0x36a37e[_0x4a70('0x1c')]+_0x36a37e['limit'];var _0xf54146;if(_0x1f03f9>=_0x3fdf4d){_0x1f03f9=_0x3fdf4d;_0xf54146=0xc8;}else{_0xf54146=0xce;}_0x2417d0['status'](_0xf54146);return _0x2417d0[_0x4a70('0x1f')](_0x4a70('0x20'),_0x34af09+'-'+_0x1f03f9+'/'+_0x3fdf4d)['json'](_0xe28ff7);}return null;};}function patchUpdates(_0x4bda10){return function(_0x40f12c){try{jsonpatch[_0x4a70('0x21')](_0x40f12c,_0x4bda10,!![]);}catch(_0x2e193e){return BPromise['reject'](_0x2e193e);}return _0x40f12c[_0x4a70('0x22')]();};}function saveUpdates(_0x28f2a7,_0x220bf8){return function(_0x2c4d1a){if(_0x2c4d1a){return _0x2c4d1a[_0x4a70('0x23')](_0x28f2a7)[_0x4a70('0x24')](function(_0x2cb4b2){return _0x2cb4b2;});}return null;};}function removeEntity(_0x1a115c,_0x17c7d1){return function(_0x16c2a6){if(_0x16c2a6){return _0x16c2a6['destroy']()['then'](function(){_0x1a115c['status'](0xcc)[_0x4a70('0x19')]();});}};}function handleEntityNotFound(_0x496db0,_0x5f2e13){return function(_0x44e389){if(!_0x44e389){_0x496db0['sendStatus'](0x194);}return _0x44e389;};}function handleError(_0x45b61f,_0x194319){_0x194319=_0x194319||0x1f4;return function(_0xd6a57){logger['error'](_0xd6a57['stack']);if(_0xd6a57[_0x4a70('0x25')]){delete _0xd6a57['name'];}_0x45b61f['status'](_0x194319)[_0x4a70('0x26')](_0xd6a57);};}exports[_0x4a70('0x27')]=function(_0x2bb1d7,_0x3ed192){var _0xa7676d={},_0x2cb84b={},_0x5eb6ba={'count':0x0,'rows':[]};var _0x332a96=_[_0x4a70('0x28')](db[_0x4a70('0x29')][_0x4a70('0x2a')],function(_0xefa7dc){return{'name':_0xefa7dc[_0x4a70('0x2b')],'type':_0xefa7dc[_0x4a70('0x2c')][_0x4a70('0x2d')]};});_0x2cb84b[_0x4a70('0x2e')]=_['map'](_0x332a96,_0x4a70('0x25'));_0x2cb84b[_0x4a70('0x2f')]=_[_0x4a70('0x30')](_0x2bb1d7[_0x4a70('0x2f')]);_0x2cb84b[_0x4a70('0x31')]=_[_0x4a70('0x32')](_0x2cb84b[_0x4a70('0x2e')],_0x2cb84b[_0x4a70('0x2f')]);_0xa7676d['attributes']=_[_0x4a70('0x32')](_0x2cb84b[_0x4a70('0x2e')],qs[_0x4a70('0x33')](_0x2bb1d7[_0x4a70('0x2f')][_0x4a70('0x33')]));_0xa7676d[_0x4a70('0x34')]=_0xa7676d['attributes'][_0x4a70('0x35')]?_0xa7676d[_0x4a70('0x34')]:_0x2cb84b[_0x4a70('0x2e')];if(!_0x2bb1d7['query'][_0x4a70('0x36')](_0x4a70('0x37'))){_0xa7676d[_0x4a70('0x38')]=qs[_0x4a70('0x38')](_0x2bb1d7[_0x4a70('0x2f')]['limit']);_0xa7676d[_0x4a70('0x1c')]=qs[_0x4a70('0x1c')](_0x2bb1d7['query']['offset']);}_0xa7676d[_0x4a70('0x39')]=qs[_0x4a70('0x3a')](_0x2bb1d7['query'][_0x4a70('0x3a')]);_0xa7676d[_0x4a70('0x3b')]=qs['filters'](_[_0x4a70('0x3c')](_0x2bb1d7['query'],_0x2cb84b[_0x4a70('0x31')]),_0x332a96);if(_0x2bb1d7[_0x4a70('0x2f')][_0x4a70('0x3d')]){_0xa7676d[_0x4a70('0x3b')]=_[_0x4a70('0x3e')](_0xa7676d[_0x4a70('0x3b')],{'$or':_[_0x4a70('0x28')](_0x332a96,function(_0x427aa8){if(_0x427aa8['type']!=='VIRTUAL'){var _0x15b108={};_0x15b108[_0x427aa8[_0x4a70('0x25')]]={'$like':'%'+_0x2bb1d7[_0x4a70('0x2f')][_0x4a70('0x3d')]+'%'};return _0x15b108;}})});}_0xa7676d=_[_0x4a70('0x3e')]({},_0xa7676d,_0x2bb1d7[_0x4a70('0x3f')]);var _0x4cd73a={'where':_0xa7676d['where']};return db[_0x4a70('0x29')][_0x4a70('0x1e')](_0x4cd73a)['then'](function(_0x3aef4a){_0x5eb6ba[_0x4a70('0x1e')]=_0x3aef4a;if(_0x2bb1d7['query'][_0x4a70('0x40')]){_0xa7676d[_0x4a70('0x41')]=[{'all':!![]}];}return db['ZohoConfiguration'][_0x4a70('0x42')](_0xa7676d);})[_0x4a70('0x24')](function(_0x4e21cc){_0x5eb6ba['rows']=_0x4e21cc;return _0x5eb6ba;})[_0x4a70('0x24')](respondWithFilteredResult(_0x3ed192,_0xa7676d))[_0x4a70('0x43')](handleError(_0x3ed192,null));};exports[_0x4a70('0x44')]=function(_0x514146,_0xe1503c){var _0x44fbf9={'raw':![],'where':{'id':_0x514146['params']['id']}},_0x5e95d2={};_0x5e95d2['model']=_[_0x4a70('0x30')](db[_0x4a70('0x29')][_0x4a70('0x2a')]);_0x5e95d2[_0x4a70('0x2f')]=_[_0x4a70('0x30')](_0x514146[_0x4a70('0x2f')]);_0x5e95d2['filters']=_[_0x4a70('0x32')](_0x5e95d2[_0x4a70('0x2e')],_0x5e95d2[_0x4a70('0x2f')]);_0x44fbf9[_0x4a70('0x34')]=_[_0x4a70('0x32')](_0x5e95d2[_0x4a70('0x2e')],qs[_0x4a70('0x33')](_0x514146[_0x4a70('0x2f')][_0x4a70('0x33')]));_0x44fbf9[_0x4a70('0x34')]=_0x44fbf9['attributes'][_0x4a70('0x35')]?_0x44fbf9[_0x4a70('0x34')]:_0x5e95d2[_0x4a70('0x2e')];if(_0x514146['query']['includeAll']){_0x44fbf9[_0x4a70('0x41')]=[{'all':!![]}];}_0x44fbf9=_[_0x4a70('0x3e')]({},_0x44fbf9,_0x514146[_0x4a70('0x3f')]);return db[_0x4a70('0x29')][_0x4a70('0x45')](_0x44fbf9)[_0x4a70('0x24')](handleEntityNotFound(_0xe1503c,null))[_0x4a70('0x24')](respondWithResult(_0xe1503c,null))['catch'](handleError(_0xe1503c,null));};exports['create']=function(_0x4e8dd0,_0xfeb2b6){return db[_0x4a70('0x29')]['create'](_0x4e8dd0[_0x4a70('0x46')],{})['then'](respondWithResult(_0xfeb2b6,0xc9))[_0x4a70('0x43')](handleError(_0xfeb2b6,null));};exports[_0x4a70('0x23')]=function(_0x1c02bf,_0x1dd011){if(_0x1c02bf[_0x4a70('0x46')]['id']){delete _0x1c02bf['body']['id'];}return db[_0x4a70('0x29')][_0x4a70('0x45')]({'where':{'id':_0x1c02bf[_0x4a70('0x47')]['id']}})[_0x4a70('0x24')](handleEntityNotFound(_0x1dd011,null))['then'](saveUpdates(_0x1c02bf[_0x4a70('0x46')],null))['then'](respondWithResult(_0x1dd011,null))[_0x4a70('0x43')](handleError(_0x1dd011,null));};exports['destroy']=function(_0x3ed3bd,_0x1bea7d){return db[_0x4a70('0x29')][_0x4a70('0x45')]({'where':{'id':_0x3ed3bd[_0x4a70('0x47')]['id']}})['then'](handleEntityNotFound(_0x1bea7d,null))[_0x4a70('0x24')](removeEntity(_0x1bea7d,null))[_0x4a70('0x43')](handleError(_0x1bea7d,null));};exports['getFields']=function(_0x387252,_0x247eac,_0x3a2a69){var _0x258d81={};var _0x1891e1={};var _0x14afee;var _0x36999b;return db[_0x4a70('0x29')][_0x4a70('0x48')]({'where':{'id':_0x387252[_0x4a70('0x47')]['id']}})[_0x4a70('0x24')](handleEntityNotFound(_0x247eac,null))[_0x4a70('0x24')](function(_0xe83ded){if(_0xe83ded){_0x14afee=_0xe83ded;_0x1891e1[_0x4a70('0x2e')]=_[_0x4a70('0x30')](db[_0x4a70('0x49')]['rawAttributes']);_0x1891e1['query']=_[_0x4a70('0x30')](_0x387252['query']);_0x1891e1[_0x4a70('0x31')]=_['intersection'](_0x1891e1[_0x4a70('0x2e')],_0x1891e1[_0x4a70('0x2f')]);_0x258d81[_0x4a70('0x34')]=_[_0x4a70('0x32')](_0x1891e1['model'],qs[_0x4a70('0x33')](_0x387252[_0x4a70('0x2f')]['fields']));_0x258d81[_0x4a70('0x34')]=_0x258d81['attributes'][_0x4a70('0x35')]?_0x258d81['attributes']:_0x1891e1[_0x4a70('0x2e')];_0x258d81[_0x4a70('0x39')]=qs[_0x4a70('0x3a')](_0x387252[_0x4a70('0x2f')]['sort']);_0x258d81['where']=qs['filters'](_[_0x4a70('0x3c')](_0x387252[_0x4a70('0x2f')],_0x1891e1['filters']));if(_0x387252['query'][_0x4a70('0x3d')]){_0x258d81[_0x4a70('0x3b')]=_[_0x4a70('0x3e')](_0x258d81['where'],{'$or':_[_0x4a70('0x28')](_0x258d81[_0x4a70('0x34')],function(_0x473528){var _0x1e11de={};_0x1e11de[_0x473528]={'$like':'%'+_0x387252[_0x4a70('0x2f')][_0x4a70('0x3d')]+'%'};return _0x1e11de;})});}_0x258d81=_[_0x4a70('0x3e')]({},_0x258d81,_0x387252[_0x4a70('0x3f')]);return _0x14afee[_0x4a70('0x4a')](_0x258d81);}})[_0x4a70('0x24')](function(_0x4952cd){if(_0x4952cd){_0x36999b=_0x4952cd[_0x4a70('0x35')];if(!_0x387252[_0x4a70('0x2f')][_0x4a70('0x36')](_0x4a70('0x37'))){_0x258d81[_0x4a70('0x38')]=qs[_0x4a70('0x38')](_0x387252[_0x4a70('0x2f')][_0x4a70('0x38')]);_0x258d81[_0x4a70('0x1c')]=qs[_0x4a70('0x1c')](_0x387252[_0x4a70('0x2f')]['offset']);}return _0x14afee['getFields'](_0x258d81);}})['then'](function(_0xbf1cb){if(_0xbf1cb){return _0xbf1cb?{'count':_0x36999b,'rows':_0xbf1cb}:null;}})[_0x4a70('0x24')](respondWithResult(_0x247eac,null))[_0x4a70('0x43')](handleError(_0x247eac,null));};exports['getSubjects']=function(_0x42d06d,_0x27a1fe,_0x4b8118){var _0x2893d5={};var _0x76a79d={};var _0x166992;var _0x3af313;return db[_0x4a70('0x29')][_0x4a70('0x48')]({'where':{'id':_0x42d06d[_0x4a70('0x47')]['id']}})[_0x4a70('0x24')](handleEntityNotFound(_0x27a1fe,null))[_0x4a70('0x24')](function(_0x527f86){if(_0x527f86){_0x166992=_0x527f86;_0x76a79d['model']=_[_0x4a70('0x30')](db[_0x4a70('0x49')]['rawAttributes']);_0x76a79d[_0x4a70('0x2f')]=_[_0x4a70('0x30')](_0x42d06d['query']);_0x76a79d[_0x4a70('0x31')]=_[_0x4a70('0x32')](_0x76a79d[_0x4a70('0x2e')],_0x76a79d[_0x4a70('0x2f')]);_0x2893d5['attributes']=_['intersection'](_0x76a79d[_0x4a70('0x2e')],qs['fields'](_0x42d06d[_0x4a70('0x2f')][_0x4a70('0x33')]));_0x2893d5[_0x4a70('0x34')]=_0x2893d5[_0x4a70('0x34')][_0x4a70('0x35')]?_0x2893d5[_0x4a70('0x34')]:_0x76a79d[_0x4a70('0x2e')];_0x2893d5[_0x4a70('0x39')]=qs[_0x4a70('0x3a')](_0x42d06d['query'][_0x4a70('0x3a')]);_0x2893d5[_0x4a70('0x3b')]=qs[_0x4a70('0x31')](_[_0x4a70('0x3c')](_0x42d06d[_0x4a70('0x2f')],_0x76a79d[_0x4a70('0x31')]));if(_0x42d06d['query'][_0x4a70('0x3d')]){_0x2893d5[_0x4a70('0x3b')]=_[_0x4a70('0x3e')](_0x2893d5[_0x4a70('0x3b')],{'$or':_['map'](_0x2893d5[_0x4a70('0x34')],function(_0x504fe0){var _0x117147={};_0x117147[_0x504fe0]={'$like':'%'+_0x42d06d[_0x4a70('0x2f')][_0x4a70('0x3d')]+'%'};return _0x117147;})});}_0x2893d5=_[_0x4a70('0x3e')]({},_0x2893d5,_0x42d06d[_0x4a70('0x3f')]);return _0x166992[_0x4a70('0x4b')](_0x2893d5);}})['then'](function(_0xcf1550){if(_0xcf1550){_0x3af313=_0xcf1550[_0x4a70('0x35')];if(!_0x42d06d[_0x4a70('0x2f')][_0x4a70('0x36')](_0x4a70('0x37'))){_0x2893d5[_0x4a70('0x38')]=qs[_0x4a70('0x38')](_0x42d06d[_0x4a70('0x2f')][_0x4a70('0x38')]);_0x2893d5[_0x4a70('0x1c')]=qs['offset'](_0x42d06d['query'][_0x4a70('0x1c')]);}return _0x166992['getSubjects'](_0x2893d5);}})[_0x4a70('0x24')](function(_0x1471e4){if(_0x1471e4){return _0x1471e4?{'count':_0x3af313,'rows':_0x1471e4}:null;}})[_0x4a70('0x24')](respondWithResult(_0x27a1fe,null))['catch'](handleError(_0x27a1fe,null));};exports[_0x4a70('0x4c')]=function(_0x58075,_0x1a3186,_0x56cf2f){var _0x37eadb={};var _0x41ad33={};var _0x259a79;var _0x5ea9e4;return db[_0x4a70('0x29')][_0x4a70('0x48')]({'where':{'id':_0x58075[_0x4a70('0x47')]['id']}})[_0x4a70('0x24')](handleEntityNotFound(_0x1a3186,null))[_0x4a70('0x24')](function(_0x516561){if(_0x516561){_0x259a79=_0x516561;_0x41ad33[_0x4a70('0x2e')]=_[_0x4a70('0x30')](db['ZohoField'][_0x4a70('0x2a')]);_0x41ad33[_0x4a70('0x2f')]=_[_0x4a70('0x30')](_0x58075[_0x4a70('0x2f')]);_0x41ad33['filters']=_[_0x4a70('0x32')](_0x41ad33[_0x4a70('0x2e')],_0x41ad33['query']);_0x37eadb[_0x4a70('0x34')]=_[_0x4a70('0x32')](_0x41ad33[_0x4a70('0x2e')],qs['fields'](_0x58075[_0x4a70('0x2f')][_0x4a70('0x33')]));_0x37eadb[_0x4a70('0x34')]=_0x37eadb[_0x4a70('0x34')][_0x4a70('0x35')]?_0x37eadb['attributes']:_0x41ad33[_0x4a70('0x2e')];_0x37eadb['order']=qs['sort'](_0x58075[_0x4a70('0x2f')][_0x4a70('0x3a')]);_0x37eadb[_0x4a70('0x3b')]=qs[_0x4a70('0x31')](_[_0x4a70('0x3c')](_0x58075[_0x4a70('0x2f')],_0x41ad33['filters']));if(_0x58075['query'][_0x4a70('0x3d')]){_0x37eadb[_0x4a70('0x3b')]=_[_0x4a70('0x3e')](_0x37eadb[_0x4a70('0x3b')],{'$or':_['map'](_0x37eadb['attributes'],function(_0x47ed67){var _0xd1bf53={};_0xd1bf53[_0x47ed67]={'$like':'%'+_0x58075[_0x4a70('0x2f')]['filter']+'%'};return _0xd1bf53;})});}_0x37eadb=_[_0x4a70('0x3e')]({},_0x37eadb,_0x58075[_0x4a70('0x3f')]);return _0x259a79[_0x4a70('0x4c')](_0x37eadb);}})['then'](function(_0x445535){if(_0x445535){_0x5ea9e4=_0x445535[_0x4a70('0x35')];if(!_0x58075['query'][_0x4a70('0x36')](_0x4a70('0x37'))){_0x37eadb[_0x4a70('0x38')]=qs[_0x4a70('0x38')](_0x58075[_0x4a70('0x2f')][_0x4a70('0x38')]);_0x37eadb['offset']=qs['offset'](_0x58075[_0x4a70('0x2f')][_0x4a70('0x1c')]);}return _0x259a79[_0x4a70('0x4c')](_0x37eadb);}})[_0x4a70('0x24')](function(_0x1d038c){if(_0x1d038c){return _0x1d038c?{'count':_0x5ea9e4,'rows':_0x1d038c}:null;}})[_0x4a70('0x24')](respondWithResult(_0x1a3186,null))['catch'](handleError(_0x1a3186,null));};
\ No newline at end of file
+var _0x29bf=['status','end','offset','undefined','count','limit','Content-Range','json','apply','save','update','then','error','stack','send','index','rawAttributes','fieldName','type','key','model','map','query','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','filter','merge','VIRTUAL','name','includeAll','include','ZohoConfiguration','findAll','rows','catch','show','params','keys','find','create','body','findOne','ZohoField','getFields','nolimit','getSubjects','getDescriptions','eml-format','rimraf','fast-json-patch','request-promise','bluebird','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus'];(function(_0x440893,_0x2cea6a){var _0x482e57=function(_0x687b51){while(--_0x687b51){_0x440893['push'](_0x440893['shift']());}};_0x482e57(++_0x2cea6a);}(_0x29bf,0x1cc));var _0xf29b=function(_0x3c1a1f,_0x313fe4){_0x3c1a1f=_0x3c1a1f-0x0;var _0x2ace77=_0x29bf[_0x3c1a1f];return _0x2ace77;};'use strict';var emlformat=require(_0xf29b('0x0'));var rimraf=require(_0xf29b('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xf29b('0x2'));var rp=require(_0xf29b('0x3'));var moment=require('moment');var BPromise=require(_0xf29b('0x4'));var Mustache=require('mustache');var util=require('util');var path=require(_0xf29b('0x5'));var sox=require(_0xf29b('0x6'));var csv=require(_0xf29b('0x7'));var ejs=require(_0xf29b('0x8'));var fs=require('fs');var fs_extra=require(_0xf29b('0x9'));var _=require(_0xf29b('0xa'));var squel=require('squel');var crypto=require(_0xf29b('0xb'));var jsforce=require(_0xf29b('0xc'));var deskjs=require(_0xf29b('0xd'));var toCsv=require('to-csv');var querystring=require(_0xf29b('0xe'));var Papa=require(_0xf29b('0xf'));var Redis=require(_0xf29b('0x10'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0xf29b('0x11'));var hardwareService=require(_0xf29b('0x12'));var logger=require(_0xf29b('0x13'))(_0xf29b('0x14'));var utils=require(_0xf29b('0x15'));var config=require(_0xf29b('0x16'));var licenseUtil=require(_0xf29b('0x17'));var db=require(_0xf29b('0x18'))['db'];function respondWithStatusCode(_0x851a22,_0x384f71){_0x384f71=_0x384f71||0xcc;return function(_0x2b0907){if(_0x2b0907){return _0x851a22[_0xf29b('0x19')](_0x384f71);}return _0x851a22[_0xf29b('0x1a')](_0x384f71)[_0xf29b('0x1b')]();};}function respondWithResult(_0x51c65b,_0x2a5703){_0x2a5703=_0x2a5703||0xc8;return function(_0x18af2b){if(_0x18af2b){return _0x51c65b[_0xf29b('0x1a')](_0x2a5703)['json'](_0x18af2b);}};}function respondWithFilteredResult(_0x180c41,_0x1ff81b){return function(_0x946198){if(_0x946198){var _0x2f09df=typeof _0x1ff81b[_0xf29b('0x1c')]==='undefined'&&typeof _0x1ff81b['limit']===_0xf29b('0x1d');var _0x388d28=_0x946198[_0xf29b('0x1e')];var _0x24f242=_0x2f09df?0x0:_0x1ff81b['offset'];var _0x19a7ee=_0x2f09df?_0x946198['count']:_0x1ff81b[_0xf29b('0x1c')]+_0x1ff81b[_0xf29b('0x1f')];var _0x1f0bfa;if(_0x19a7ee>=_0x388d28){_0x19a7ee=_0x388d28;_0x1f0bfa=0xc8;}else{_0x1f0bfa=0xce;}_0x180c41[_0xf29b('0x1a')](_0x1f0bfa);return _0x180c41['set'](_0xf29b('0x20'),_0x24f242+'-'+_0x19a7ee+'/'+_0x388d28)[_0xf29b('0x21')](_0x946198);}return null;};}function patchUpdates(_0x3f01cc){return function(_0x42569f){try{jsonpatch[_0xf29b('0x22')](_0x42569f,_0x3f01cc,!![]);}catch(_0x34c48a){return BPromise['reject'](_0x34c48a);}return _0x42569f[_0xf29b('0x23')]();};}function saveUpdates(_0x478e48,_0x4893d3){return function(_0x43a8c0){if(_0x43a8c0){return _0x43a8c0[_0xf29b('0x24')](_0x478e48)[_0xf29b('0x25')](function(_0x4fefe2){return _0x4fefe2;});}return null;};}function removeEntity(_0x425a77,_0x336582){return function(_0x138689){if(_0x138689){return _0x138689['destroy']()[_0xf29b('0x25')](function(){_0x425a77[_0xf29b('0x1a')](0xcc)[_0xf29b('0x1b')]();});}};}function handleEntityNotFound(_0x4046ae,_0x9fee10){return function(_0x191004){if(!_0x191004){_0x4046ae[_0xf29b('0x19')](0x194);}return _0x191004;};}function handleError(_0x2330d4,_0x16c01c){_0x16c01c=_0x16c01c||0x1f4;return function(_0x12d1b9){logger[_0xf29b('0x26')](_0x12d1b9[_0xf29b('0x27')]);if(_0x12d1b9['name']){delete _0x12d1b9['name'];}_0x2330d4[_0xf29b('0x1a')](_0x16c01c)[_0xf29b('0x28')](_0x12d1b9);};}exports[_0xf29b('0x29')]=function(_0x53f838,_0x487c75){var _0x351099={},_0x3a8403={},_0x49509e={'count':0x0,'rows':[]};var _0x1816a7=_['map'](db['ZohoConfiguration'][_0xf29b('0x2a')],function(_0x90a6aa){return{'name':_0x90a6aa[_0xf29b('0x2b')],'type':_0x90a6aa[_0xf29b('0x2c')][_0xf29b('0x2d')]};});_0x3a8403[_0xf29b('0x2e')]=_[_0xf29b('0x2f')](_0x1816a7,'name');_0x3a8403['query']=_['keys'](_0x53f838[_0xf29b('0x30')]);_0x3a8403[_0xf29b('0x31')]=_[_0xf29b('0x32')](_0x3a8403['model'],_0x3a8403[_0xf29b('0x30')]);_0x351099[_0xf29b('0x33')]=_['intersection'](_0x3a8403['model'],qs[_0xf29b('0x34')](_0x53f838[_0xf29b('0x30')][_0xf29b('0x34')]));_0x351099['attributes']=_0x351099['attributes'][_0xf29b('0x35')]?_0x351099[_0xf29b('0x33')]:_0x3a8403[_0xf29b('0x2e')];if(!_0x53f838[_0xf29b('0x30')][_0xf29b('0x36')]('nolimit')){_0x351099[_0xf29b('0x1f')]=qs[_0xf29b('0x1f')](_0x53f838['query']['limit']);_0x351099['offset']=qs[_0xf29b('0x1c')](_0x53f838[_0xf29b('0x30')][_0xf29b('0x1c')]);}_0x351099[_0xf29b('0x37')]=qs[_0xf29b('0x38')](_0x53f838[_0xf29b('0x30')]['sort']);_0x351099[_0xf29b('0x39')]=qs[_0xf29b('0x31')](_[_0xf29b('0x3a')](_0x53f838[_0xf29b('0x30')],_0x3a8403[_0xf29b('0x31')]),_0x1816a7);if(_0x53f838[_0xf29b('0x30')][_0xf29b('0x3b')]){_0x351099[_0xf29b('0x39')]=_[_0xf29b('0x3c')](_0x351099['where'],{'$or':_[_0xf29b('0x2f')](_0x1816a7,function(_0x1a3867){if(_0x1a3867['type']!==_0xf29b('0x3d')){var _0x1b0e34={};_0x1b0e34[_0x1a3867[_0xf29b('0x3e')]]={'$like':'%'+_0x53f838[_0xf29b('0x30')][_0xf29b('0x3b')]+'%'};return _0x1b0e34;}})});}_0x351099=_[_0xf29b('0x3c')]({},_0x351099,_0x53f838['options']);var _0x4f458b={'where':_0x351099['where']};return db['ZohoConfiguration'][_0xf29b('0x1e')](_0x4f458b)[_0xf29b('0x25')](function(_0x1d8e91){_0x49509e[_0xf29b('0x1e')]=_0x1d8e91;if(_0x53f838['query'][_0xf29b('0x3f')]){_0x351099[_0xf29b('0x40')]=[{'all':!![]}];}return db[_0xf29b('0x41')][_0xf29b('0x42')](_0x351099);})[_0xf29b('0x25')](function(_0x11504c){_0x49509e[_0xf29b('0x43')]=_0x11504c;return _0x49509e;})[_0xf29b('0x25')](respondWithFilteredResult(_0x487c75,_0x351099))[_0xf29b('0x44')](handleError(_0x487c75,null));};exports[_0xf29b('0x45')]=function(_0x59a2c3,_0x7a74ef){var _0x2c2d29={'raw':![],'where':{'id':_0x59a2c3[_0xf29b('0x46')]['id']}},_0x2b3fba={};_0x2b3fba[_0xf29b('0x2e')]=_[_0xf29b('0x47')](db[_0xf29b('0x41')]['rawAttributes']);_0x2b3fba[_0xf29b('0x30')]=_['keys'](_0x59a2c3['query']);_0x2b3fba[_0xf29b('0x31')]=_[_0xf29b('0x32')](_0x2b3fba[_0xf29b('0x2e')],_0x2b3fba['query']);_0x2c2d29['attributes']=_[_0xf29b('0x32')](_0x2b3fba['model'],qs['fields'](_0x59a2c3[_0xf29b('0x30')][_0xf29b('0x34')]));_0x2c2d29[_0xf29b('0x33')]=_0x2c2d29[_0xf29b('0x33')][_0xf29b('0x35')]?_0x2c2d29[_0xf29b('0x33')]:_0x2b3fba[_0xf29b('0x2e')];if(_0x59a2c3['query'][_0xf29b('0x3f')]){_0x2c2d29[_0xf29b('0x40')]=[{'all':!![]}];}_0x2c2d29=_[_0xf29b('0x3c')]({},_0x2c2d29,_0x59a2c3['options']);return db[_0xf29b('0x41')][_0xf29b('0x48')](_0x2c2d29)[_0xf29b('0x25')](handleEntityNotFound(_0x7a74ef,null))['then'](respondWithResult(_0x7a74ef,null))[_0xf29b('0x44')](handleError(_0x7a74ef,null));};exports['create']=function(_0x270394,_0x3e22f8){return db[_0xf29b('0x41')][_0xf29b('0x49')](_0x270394[_0xf29b('0x4a')],{})[_0xf29b('0x25')](respondWithResult(_0x3e22f8,0xc9))[_0xf29b('0x44')](handleError(_0x3e22f8,null));};exports[_0xf29b('0x24')]=function(_0x965588,_0x1b9d13){if(_0x965588['body']['id']){delete _0x965588[_0xf29b('0x4a')]['id'];}return db[_0xf29b('0x41')]['find']({'where':{'id':_0x965588['params']['id']}})['then'](handleEntityNotFound(_0x1b9d13,null))[_0xf29b('0x25')](saveUpdates(_0x965588[_0xf29b('0x4a')],null))[_0xf29b('0x25')](respondWithResult(_0x1b9d13,null))['catch'](handleError(_0x1b9d13,null));};exports['destroy']=function(_0x25dc69,_0x595494){return db['ZohoConfiguration']['find']({'where':{'id':_0x25dc69[_0xf29b('0x46')]['id']}})[_0xf29b('0x25')](handleEntityNotFound(_0x595494,null))[_0xf29b('0x25')](removeEntity(_0x595494,null))['catch'](handleError(_0x595494,null));};exports['getFields']=function(_0x3af57f,_0x50c07b,_0x5a890f){var _0x309c4c={};var _0x532ed5={};var _0x5f29f6;var _0x4ea089;return db[_0xf29b('0x41')][_0xf29b('0x4b')]({'where':{'id':_0x3af57f[_0xf29b('0x46')]['id']}})[_0xf29b('0x25')](handleEntityNotFound(_0x50c07b,null))[_0xf29b('0x25')](function(_0x48c49a){if(_0x48c49a){_0x5f29f6=_0x48c49a;_0x532ed5[_0xf29b('0x2e')]=_[_0xf29b('0x47')](db[_0xf29b('0x4c')]['rawAttributes']);_0x532ed5[_0xf29b('0x30')]=_[_0xf29b('0x47')](_0x3af57f[_0xf29b('0x30')]);_0x532ed5[_0xf29b('0x31')]=_[_0xf29b('0x32')](_0x532ed5[_0xf29b('0x2e')],_0x532ed5['query']);_0x309c4c['attributes']=_['intersection'](_0x532ed5[_0xf29b('0x2e')],qs[_0xf29b('0x34')](_0x3af57f[_0xf29b('0x30')]['fields']));_0x309c4c['attributes']=_0x309c4c[_0xf29b('0x33')][_0xf29b('0x35')]?_0x309c4c[_0xf29b('0x33')]:_0x532ed5[_0xf29b('0x2e')];_0x309c4c[_0xf29b('0x37')]=qs[_0xf29b('0x38')](_0x3af57f[_0xf29b('0x30')][_0xf29b('0x38')]);_0x309c4c[_0xf29b('0x39')]=qs[_0xf29b('0x31')](_['pick'](_0x3af57f[_0xf29b('0x30')],_0x532ed5[_0xf29b('0x31')]));if(_0x3af57f['query'][_0xf29b('0x3b')]){_0x309c4c[_0xf29b('0x39')]=_[_0xf29b('0x3c')](_0x309c4c['where'],{'$or':_[_0xf29b('0x2f')](_0x309c4c[_0xf29b('0x33')],function(_0x145ac2){var _0x432022={};_0x432022[_0x145ac2]={'$like':'%'+_0x3af57f[_0xf29b('0x30')][_0xf29b('0x3b')]+'%'};return _0x432022;})});}_0x309c4c=_[_0xf29b('0x3c')]({},_0x309c4c,_0x3af57f['options']);return _0x5f29f6[_0xf29b('0x4d')](_0x309c4c);}})['then'](function(_0x11268e){if(_0x11268e){_0x4ea089=_0x11268e['length'];if(!_0x3af57f[_0xf29b('0x30')][_0xf29b('0x36')](_0xf29b('0x4e'))){_0x309c4c[_0xf29b('0x1f')]=qs['limit'](_0x3af57f[_0xf29b('0x30')]['limit']);_0x309c4c[_0xf29b('0x1c')]=qs['offset'](_0x3af57f[_0xf29b('0x30')]['offset']);}return _0x5f29f6[_0xf29b('0x4d')](_0x309c4c);}})['then'](function(_0x35c12e){if(_0x35c12e){return _0x35c12e?{'count':_0x4ea089,'rows':_0x35c12e}:null;}})[_0xf29b('0x25')](respondWithResult(_0x50c07b,null))[_0xf29b('0x44')](handleError(_0x50c07b,null));};exports[_0xf29b('0x4f')]=function(_0x30a2b8,_0x2b467f,_0x2216e0){var _0x328f17={};var _0xceaaa8={};var _0x48de96;var _0x1bb193;return db['ZohoConfiguration'][_0xf29b('0x4b')]({'where':{'id':_0x30a2b8[_0xf29b('0x46')]['id']}})[_0xf29b('0x25')](handleEntityNotFound(_0x2b467f,null))['then'](function(_0x2c6bac){if(_0x2c6bac){_0x48de96=_0x2c6bac;_0xceaaa8[_0xf29b('0x2e')]=_[_0xf29b('0x47')](db[_0xf29b('0x4c')]['rawAttributes']);_0xceaaa8[_0xf29b('0x30')]=_[_0xf29b('0x47')](_0x30a2b8[_0xf29b('0x30')]);_0xceaaa8['filters']=_[_0xf29b('0x32')](_0xceaaa8['model'],_0xceaaa8[_0xf29b('0x30')]);_0x328f17[_0xf29b('0x33')]=_['intersection'](_0xceaaa8[_0xf29b('0x2e')],qs[_0xf29b('0x34')](_0x30a2b8[_0xf29b('0x30')][_0xf29b('0x34')]));_0x328f17[_0xf29b('0x33')]=_0x328f17[_0xf29b('0x33')][_0xf29b('0x35')]?_0x328f17[_0xf29b('0x33')]:_0xceaaa8[_0xf29b('0x2e')];_0x328f17[_0xf29b('0x37')]=qs[_0xf29b('0x38')](_0x30a2b8[_0xf29b('0x30')]['sort']);_0x328f17[_0xf29b('0x39')]=qs[_0xf29b('0x31')](_[_0xf29b('0x3a')](_0x30a2b8['query'],_0xceaaa8['filters']));if(_0x30a2b8[_0xf29b('0x30')][_0xf29b('0x3b')]){_0x328f17[_0xf29b('0x39')]=_[_0xf29b('0x3c')](_0x328f17[_0xf29b('0x39')],{'$or':_[_0xf29b('0x2f')](_0x328f17[_0xf29b('0x33')],function(_0x355c4b){var _0x2d9221={};_0x2d9221[_0x355c4b]={'$like':'%'+_0x30a2b8[_0xf29b('0x30')][_0xf29b('0x3b')]+'%'};return _0x2d9221;})});}_0x328f17=_[_0xf29b('0x3c')]({},_0x328f17,_0x30a2b8['options']);return _0x48de96[_0xf29b('0x4f')](_0x328f17);}})[_0xf29b('0x25')](function(_0x5dff73){if(_0x5dff73){_0x1bb193=_0x5dff73[_0xf29b('0x35')];if(!_0x30a2b8[_0xf29b('0x30')][_0xf29b('0x36')](_0xf29b('0x4e'))){_0x328f17[_0xf29b('0x1f')]=qs[_0xf29b('0x1f')](_0x30a2b8['query'][_0xf29b('0x1f')]);_0x328f17[_0xf29b('0x1c')]=qs['offset'](_0x30a2b8[_0xf29b('0x30')][_0xf29b('0x1c')]);}return _0x48de96[_0xf29b('0x4f')](_0x328f17);}})[_0xf29b('0x25')](function(_0x271a1a){if(_0x271a1a){return _0x271a1a?{'count':_0x1bb193,'rows':_0x271a1a}:null;}})['then'](respondWithResult(_0x2b467f,null))[_0xf29b('0x44')](handleError(_0x2b467f,null));};exports['getDescriptions']=function(_0x371158,_0x3bdaff,_0x46eb32){var _0x1985a3={};var _0x364d35={};var _0xa82a3e;var _0x43f696;return db['ZohoConfiguration']['findOne']({'where':{'id':_0x371158[_0xf29b('0x46')]['id']}})['then'](handleEntityNotFound(_0x3bdaff,null))[_0xf29b('0x25')](function(_0x430f8b){if(_0x430f8b){_0xa82a3e=_0x430f8b;_0x364d35[_0xf29b('0x2e')]=_[_0xf29b('0x47')](db[_0xf29b('0x4c')][_0xf29b('0x2a')]);_0x364d35[_0xf29b('0x30')]=_[_0xf29b('0x47')](_0x371158['query']);_0x364d35[_0xf29b('0x31')]=_[_0xf29b('0x32')](_0x364d35['model'],_0x364d35[_0xf29b('0x30')]);_0x1985a3[_0xf29b('0x33')]=_[_0xf29b('0x32')](_0x364d35[_0xf29b('0x2e')],qs[_0xf29b('0x34')](_0x371158[_0xf29b('0x30')][_0xf29b('0x34')]));_0x1985a3['attributes']=_0x1985a3[_0xf29b('0x33')][_0xf29b('0x35')]?_0x1985a3[_0xf29b('0x33')]:_0x364d35[_0xf29b('0x2e')];_0x1985a3[_0xf29b('0x37')]=qs[_0xf29b('0x38')](_0x371158['query']['sort']);_0x1985a3[_0xf29b('0x39')]=qs['filters'](_['pick'](_0x371158[_0xf29b('0x30')],_0x364d35[_0xf29b('0x31')]));if(_0x371158[_0xf29b('0x30')][_0xf29b('0x3b')]){_0x1985a3[_0xf29b('0x39')]=_[_0xf29b('0x3c')](_0x1985a3[_0xf29b('0x39')],{'$or':_[_0xf29b('0x2f')](_0x1985a3[_0xf29b('0x33')],function(_0x4d9245){var _0xeb1a08={};_0xeb1a08[_0x4d9245]={'$like':'%'+_0x371158[_0xf29b('0x30')][_0xf29b('0x3b')]+'%'};return _0xeb1a08;})});}_0x1985a3=_[_0xf29b('0x3c')]({},_0x1985a3,_0x371158['options']);return _0xa82a3e[_0xf29b('0x50')](_0x1985a3);}})[_0xf29b('0x25')](function(_0x2bf547){if(_0x2bf547){_0x43f696=_0x2bf547[_0xf29b('0x35')];if(!_0x371158[_0xf29b('0x30')][_0xf29b('0x36')](_0xf29b('0x4e'))){_0x1985a3['limit']=qs[_0xf29b('0x1f')](_0x371158[_0xf29b('0x30')][_0xf29b('0x1f')]);_0x1985a3['offset']=qs[_0xf29b('0x1c')](_0x371158[_0xf29b('0x30')]['offset']);}return _0xa82a3e[_0xf29b('0x50')](_0x1985a3);}})[_0xf29b('0x25')](function(_0x586ef3){if(_0x586ef3){return _0x586ef3?{'count':_0x43f696,'rows':_0x586ef3}:null;}})[_0xf29b('0x25')](respondWithResult(_0x3bdaff,null))[_0xf29b('0x44')](handleError(_0x3bdaff,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xed2c=['int_zoho_configurations','lodash','api','moment','request-promise','path','rimraf','exports','define'];(function(_0x4b97d9,_0x4c508e){var _0x511b39=function(_0x30db55){while(--_0x30db55){_0x4b97d9['push'](_0x4b97d9['shift']());}};_0x511b39(++_0x4c508e);}(_0xed2c,0xd9));var _0xced2=function(_0x3b6cc7,_0x5df0c1){_0x3b6cc7=_0x3b6cc7-0x0;var _0x37f564=_0xed2c[_0x3b6cc7];return _0x37f564;};'use strict';var _=require(_0xced2('0x0'));var util=require('util');var logger=require('../../config/logger')(_0xced2('0x1'));var moment=require(_0xced2('0x2'));var BPromise=require('bluebird');var rp=require(_0xced2('0x3'));var fs=require('fs');var path=require(_0xced2('0x4'));var rimraf=require(_0xced2('0x5'));var config=require('../../config/environment');var attributes=require('./intZohoConfiguration.attributes');module[_0xced2('0x6')]=function(_0x470152,_0x44e357){return _0x470152[_0xced2('0x7')]('ZohoConfiguration',attributes,{'tableName':_0xced2('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x5020=['./intZohoConfiguration.attributes','exports','ZohoConfiguration','int_zoho_configurations','lodash','util','../../config/logger','api','moment','request-promise','rimraf','../../config/environment'];(function(_0x1135bf,_0x4d5a02){var _0x33eef6=function(_0x568b58){while(--_0x568b58){_0x1135bf['push'](_0x1135bf['shift']());}};_0x33eef6(++_0x4d5a02);}(_0x5020,0x154));var _0x0502=function(_0x92c450,_0x41f1e3){_0x92c450=_0x92c450-0x0;var _0x2a9599=_0x5020[_0x92c450];return _0x2a9599;};'use strict';var _=require(_0x0502('0x0'));var util=require(_0x0502('0x1'));var logger=require(_0x0502('0x2'))(_0x0502('0x3'));var moment=require(_0x0502('0x4'));var BPromise=require('bluebird');var rp=require(_0x0502('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0x0502('0x6'));var config=require(_0x0502('0x7'));var attributes=require(_0x0502('0x8'));module[_0x0502('0x9')]=function(_0x30928b,_0x4dd934){return _0x30928b['define'](_0x0502('0xa'),attributes,{'tableName':_0x0502('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa740=['request','then','info','ZohoConfiguration,\x20%s,\x20%s','request\x20sent','debug','stringify','code','error','message','result','catch','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/logger','../../config/environment','http'];(function(_0x211d49,_0x228d0f){var _0xeea9a6=function(_0x17bacd){while(--_0x17bacd){_0x211d49['push'](_0x211d49['shift']());}};_0xeea9a6(++_0x228d0f);}(_0xa740,0x1c5));var _0x0a74=function(_0x3a7289,_0x4c91b4){_0x3a7289=_0x3a7289-0x0;var _0x303ac8=_0xa740[_0x3a7289];return _0x303ac8;};'use strict';var _=require(_0x0a74('0x0'));var util=require(_0x0a74('0x1'));var moment=require(_0x0a74('0x2'));var BPromise=require(_0x0a74('0x3'));var rs=require(_0x0a74('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x0a74('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0x0a74('0x6'))('rpc');var config=require(_0x0a74('0x7'));var jayson=require('jayson/promise');var client=jayson['client'][_0x0a74('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x54127f,_0x5a1459,_0x8b9d8b){return new BPromise(function(_0x29b7a3,_0x36d4af){return client[_0x0a74('0x9')](_0x54127f,_0x8b9d8b)[_0x0a74('0xa')](function(_0x5c6012){logger[_0x0a74('0xb')](_0x0a74('0xc'),_0x5a1459,_0x0a74('0xd'));logger[_0x0a74('0xe')]('ZohoConfiguration,\x20%s,\x20%s,\x20%s',_0x5a1459,'request\x20sent',JSON[_0x0a74('0xf')](_0x5c6012));if(_0x5c6012['error']){if(_0x5c6012['error'][_0x0a74('0x10')]===0x1f4){logger['error'](_0x0a74('0xc'),_0x5a1459,_0x5c6012[_0x0a74('0x11')][_0x0a74('0x12')]);return _0x36d4af(_0x5c6012[_0x0a74('0x11')][_0x0a74('0x12')]);}logger['error'](_0x0a74('0xc'),_0x5a1459,_0x5c6012[_0x0a74('0x11')]['message']);return _0x29b7a3(_0x5c6012[_0x0a74('0x11')][_0x0a74('0x12')]);}else{logger[_0x0a74('0xb')](_0x0a74('0xc'),_0x5a1459,_0x0a74('0xd'));_0x29b7a3(_0x5c6012[_0x0a74('0x13')][_0x0a74('0x12')]);}})[_0x0a74('0x14')](function(_0x23e692){logger[_0x0a74('0x11')]('ZohoConfiguration,\x20%s,\x20%s',_0x5a1459,_0x23e692);_0x36d4af(_0x23e692);});});}
\ No newline at end of file
+var _0x00ca=['request','then','info','ZohoConfiguration,\x20%s,\x20%s','debug','ZohoConfiguration,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','result','util','moment','randomstring','ioredis','../../mysqldb','../../config/logger','../../config/environment','jayson/promise','http'];(function(_0x7cc1f1,_0x1aae92){var _0x25dfab=function(_0x41fbc7){while(--_0x41fbc7){_0x7cc1f1['push'](_0x7cc1f1['shift']());}};_0x25dfab(++_0x1aae92);}(_0x00ca,0x187));var _0xa00c=function(_0x432682,_0x253044){_0x432682=_0x432682-0x0;var _0x463d05=_0x00ca[_0x432682];return _0x463d05;};'use strict';var _=require('lodash');var util=require(_0xa00c('0x0'));var moment=require(_0xa00c('0x1'));var BPromise=require('bluebird');var rs=require(_0xa00c('0x2'));var fs=require('fs');var Redis=require(_0xa00c('0x3'));var db=require(_0xa00c('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0xa00c('0x5'))('rpc');var config=require(_0xa00c('0x6'));var jayson=require(_0xa00c('0x7'));var client=jayson['client'][_0xa00c('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x1d7de4,_0x78abce,_0x15994f){return new BPromise(function(_0x294e5e,_0x46704b){return client[_0xa00c('0x9')](_0x1d7de4,_0x15994f)[_0xa00c('0xa')](function(_0x329bde){logger[_0xa00c('0xb')](_0xa00c('0xc'),_0x78abce,'request\x20sent');logger[_0xa00c('0xd')](_0xa00c('0xe'),_0x78abce,_0xa00c('0xf'),JSON[_0xa00c('0x10')](_0x329bde));if(_0x329bde[_0xa00c('0x11')]){if(_0x329bde['error']['code']===0x1f4){logger[_0xa00c('0x11')](_0xa00c('0xc'),_0x78abce,_0x329bde[_0xa00c('0x11')][_0xa00c('0x12')]);return _0x46704b(_0x329bde[_0xa00c('0x11')][_0xa00c('0x12')]);}logger[_0xa00c('0x11')](_0xa00c('0xc'),_0x78abce,_0x329bde[_0xa00c('0x11')][_0xa00c('0x12')]);return _0x294e5e(_0x329bde[_0xa00c('0x11')]['message']);}else{logger[_0xa00c('0xb')](_0xa00c('0xc'),_0x78abce,_0xa00c('0xf'));_0x294e5e(_0x329bde[_0xa00c('0x13')]['message']);}})['catch'](function(_0x5c91a9){logger[_0xa00c('0x11')](_0xa00c('0xc'),_0x78abce,_0x5c91a9);_0x46704b(_0x5c91a9);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x89ad=['destroy','multer','util','path','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./intZohoField.controller','get','isAuthenticated','index','/:id','show','post','create','put','update','delete'];(function(_0x5d66ba,_0x498912){var _0x1c3da0=function(_0xc49bc5){while(--_0xc49bc5){_0x5d66ba['push'](_0x5d66ba['shift']());}};_0x1c3da0(++_0x498912);}(_0x89ad,0xdd));var _0xd89a=function(_0x2553eb,_0x2f6a76){_0x2553eb=_0x2553eb-0x0;var _0x5c2ff4=_0x89ad[_0x2553eb];return _0x5c2ff4;};'use strict';var multer=require(_0xd89a('0x0'));var util=require(_0xd89a('0x1'));var path=require(_0xd89a('0x2'));var timeout=require('connect-timeout');var express=require(_0xd89a('0x3'));var router=express[_0xd89a('0x4')]();var fs_extra=require(_0xd89a('0x5'));var auth=require(_0xd89a('0x6'));var interaction=require(_0xd89a('0x7'));var config=require('../../config/environment');var controller=require(_0xd89a('0x8'));router[_0xd89a('0x9')]('/',auth[_0xd89a('0xa')](),controller[_0xd89a('0xb')]);router['get'](_0xd89a('0xc'),auth[_0xd89a('0xa')](),controller[_0xd89a('0xd')]);router[_0xd89a('0xe')]('/',auth[_0xd89a('0xa')](),controller[_0xd89a('0xf')]);router[_0xd89a('0x10')](_0xd89a('0xc'),auth[_0xd89a('0xa')](),controller[_0xd89a('0x11')]);router[_0xd89a('0x12')](_0xd89a('0xc'),auth[_0xd89a('0xa')](),controller[_0xd89a('0x13')]);module['exports']=router;
\ No newline at end of file
+var _0x6c84=['show','create','put','update','delete','destroy','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../config/environment','./intZohoField.controller','get','isAuthenticated','index','/:id'];(function(_0xabab8b,_0x42c658){var _0x3ef0ae=function(_0x267f40){while(--_0x267f40){_0xabab8b['push'](_0xabab8b['shift']());}};_0x3ef0ae(++_0x42c658);}(_0x6c84,0x157));var _0x46c8=function(_0x5f0089,_0x227e2c){_0x5f0089=_0x5f0089-0x0;var _0x193892=_0x6c84[_0x5f0089];return _0x193892;};'use strict';var multer=require(_0x46c8('0x0'));var util=require(_0x46c8('0x1'));var path=require(_0x46c8('0x2'));var timeout=require(_0x46c8('0x3'));var express=require(_0x46c8('0x4'));var router=express[_0x46c8('0x5')]();var fs_extra=require(_0x46c8('0x6'));var auth=require(_0x46c8('0x7'));var interaction=require('../../components/interaction/service');var config=require(_0x46c8('0x8'));var controller=require(_0x46c8('0x9'));router[_0x46c8('0xa')]('/',auth[_0x46c8('0xb')](),controller[_0x46c8('0xc')]);router['get'](_0x46c8('0xd'),auth[_0x46c8('0xb')](),controller[_0x46c8('0xe')]);router['post']('/',auth['isAuthenticated'](),controller[_0x46c8('0xf')]);router[_0x46c8('0x10')]('/:id',auth[_0x46c8('0xb')](),controller[_0x46c8('0x11')]);router[_0x46c8('0x12')](_0x46c8('0xd'),auth[_0x46c8('0xb')](),controller[_0x46c8('0x13')]);module[_0x46c8('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x794e=['keyValue','picklist','STRING','ENUM','variable','BOOLEAN','string','customVariable'];(function(_0x12005c,_0x38729e){var _0x232713=function(_0x711e86){while(--_0x711e86){_0x12005c['push'](_0x12005c['shift']());}};_0x232713(++_0x38729e);}(_0x794e,0x12e));var _0xe794=function(_0x55abd9,_0x1148af){_0x55abd9=_0x55abd9-0x0;var _0x3e5669=_0x794e[_0x55abd9];return _0x3e5669;};'use strict';var Sequelize=require('sequelize');module['exports']={'type':{'type':Sequelize['ENUM'](_0xe794('0x0'),'variable',_0xe794('0x1'),_0xe794('0x2'),_0xe794('0x3')),'defaultValue':'string'},'content':{'type':Sequelize[_0xe794('0x4')]},'key':{'type':Sequelize['STRING']},'keyType':{'type':Sequelize[_0xe794('0x5')](_0xe794('0x0'),_0xe794('0x6'),_0xe794('0x1'))},'keyContent':{'type':Sequelize[_0xe794('0x4')]},'idField':{'type':Sequelize[_0xe794('0x4')]},'nameField':{'type':Sequelize[_0xe794('0x4')]},'customField':{'type':Sequelize[_0xe794('0x7')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0xe794('0x4')]}};
\ No newline at end of file
+var _0x2772=['BOOLEAN','exports','variable','customVariable','picklist','STRING','ENUM','string'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x2772,0xf9));var _0x2277=function(_0x506e4a,_0x4b902d){_0x506e4a=_0x506e4a-0x0;var _0x720979=_0x2772[_0x506e4a];return _0x720979;};'use strict';var Sequelize=require('sequelize');module[_0x2277('0x0')]={'type':{'type':Sequelize['ENUM']('string',_0x2277('0x1'),_0x2277('0x2'),'keyValue',_0x2277('0x3')),'defaultValue':'string'},'content':{'type':Sequelize[_0x2277('0x4')]},'key':{'type':Sequelize[_0x2277('0x4')]},'keyType':{'type':Sequelize[_0x2277('0x5')](_0x2277('0x6'),_0x2277('0x1'),_0x2277('0x2'))},'keyContent':{'type':Sequelize[_0x2277('0x4')]},'idField':{'type':Sequelize[_0x2277('0x4')]},'nameField':{'type':Sequelize[_0x2277('0x4')]},'customField':{'type':Sequelize[_0x2277('0x7')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0x2277('0x4')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdba6=['moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/environment','../../mysqldb','sendStatus','end','status','json','offset','undefined','limit','count','Content-Range','apply','reject','save','update','then','destroy','stack','send','map','ZohoField','rawAttributes','fieldName','type','key','model','name','query','keys','filters','fields','attributes','hasOwnProperty','order','sort','where','filter','merge','options','includeAll','include','findAll','rows','catch','show','intersection','length','create','body','params','eml-format','rimraf','zip-dir','fast-json-patch'];(function(_0x517d3d,_0x1f0485){var _0xb5ef19=function(_0xff5a08){while(--_0xff5a08){_0x517d3d['push'](_0x517d3d['shift']());}};_0xb5ef19(++_0x1f0485);}(_0xdba6,0x169));var _0x6dba=function(_0x1835e9,_0x483a49){_0x1835e9=_0x1835e9-0x0;var _0x2aaa0b=_0xdba6[_0x1835e9];return _0x2aaa0b;};'use strict';var emlformat=require(_0x6dba('0x0'));var rimraf=require(_0x6dba('0x1'));var zipdir=require(_0x6dba('0x2'));var jsonpatch=require(_0x6dba('0x3'));var rp=require('request-promise');var moment=require(_0x6dba('0x4'));var BPromise=require(_0x6dba('0x5'));var Mustache=require(_0x6dba('0x6'));var util=require(_0x6dba('0x7'));var path=require(_0x6dba('0x8'));var sox=require('sox');var csv=require(_0x6dba('0x9'));var ejs=require(_0x6dba('0xa'));var fs=require('fs');var fs_extra=require(_0x6dba('0xb'));var _=require(_0x6dba('0xc'));var squel=require(_0x6dba('0xd'));var crypto=require('crypto');var jsforce=require(_0x6dba('0xe'));var deskjs=require(_0x6dba('0xf'));var toCsv=require(_0x6dba('0x9'));var querystring=require(_0x6dba('0x10'));var Papa=require(_0x6dba('0x11'));var Redis=require(_0x6dba('0x12'));var authService=require('../../components/auth/service');var qs=require(_0x6dba('0x13'));var as=require(_0x6dba('0x14'));var hardwareService=require(_0x6dba('0x15'));var logger=require(_0x6dba('0x16'))('api');var utils=require('../../config/utils');var config=require(_0x6dba('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0x6dba('0x18'))['db'];function respondWithStatusCode(_0xea5e36,_0x4597c2){_0x4597c2=_0x4597c2||0xcc;return function(_0x33f2d7){if(_0x33f2d7){return _0xea5e36[_0x6dba('0x19')](_0x4597c2);}return _0xea5e36['status'](_0x4597c2)[_0x6dba('0x1a')]();};}function respondWithResult(_0x2a3ff5,_0x1214b8){_0x1214b8=_0x1214b8||0xc8;return function(_0x1d14d7){if(_0x1d14d7){return _0x2a3ff5[_0x6dba('0x1b')](_0x1214b8)[_0x6dba('0x1c')](_0x1d14d7);}};}function respondWithFilteredResult(_0xe41f69,_0x266b10){return function(_0x41dcaa){if(_0x41dcaa){var _0x332ae0=typeof _0x266b10[_0x6dba('0x1d')]===_0x6dba('0x1e')&&typeof _0x266b10[_0x6dba('0x1f')]===_0x6dba('0x1e');var _0x58a88c=_0x41dcaa[_0x6dba('0x20')];var _0x6a4787=_0x332ae0?0x0:_0x266b10[_0x6dba('0x1d')];var _0x1da25c=_0x332ae0?_0x41dcaa[_0x6dba('0x20')]:_0x266b10[_0x6dba('0x1d')]+_0x266b10[_0x6dba('0x1f')];var _0x147408;if(_0x1da25c>=_0x58a88c){_0x1da25c=_0x58a88c;_0x147408=0xc8;}else{_0x147408=0xce;}_0xe41f69[_0x6dba('0x1b')](_0x147408);return _0xe41f69['set'](_0x6dba('0x21'),_0x6a4787+'-'+_0x1da25c+'/'+_0x58a88c)[_0x6dba('0x1c')](_0x41dcaa);}return null;};}function patchUpdates(_0x278f39){return function(_0x163a98){try{jsonpatch[_0x6dba('0x22')](_0x163a98,_0x278f39,!![]);}catch(_0x113bdf){return BPromise[_0x6dba('0x23')](_0x113bdf);}return _0x163a98[_0x6dba('0x24')]();};}function saveUpdates(_0x30050c,_0x1cb8cb){return function(_0x29abcc){if(_0x29abcc){return _0x29abcc[_0x6dba('0x25')](_0x30050c)[_0x6dba('0x26')](function(_0x326fcf){return _0x326fcf;});}return null;};}function removeEntity(_0x18fb8c,_0x2c7134){return function(_0x247d46){if(_0x247d46){return _0x247d46[_0x6dba('0x27')]()[_0x6dba('0x26')](function(){_0x18fb8c[_0x6dba('0x1b')](0xcc)[_0x6dba('0x1a')]();});}};}function handleEntityNotFound(_0x35483b,_0x18869d){return function(_0x53f63a){if(!_0x53f63a){_0x35483b['sendStatus'](0x194);}return _0x53f63a;};}function handleError(_0x9f368b,_0xf4c5ef){_0xf4c5ef=_0xf4c5ef||0x1f4;return function(_0x2c4ae4){logger['error'](_0x2c4ae4[_0x6dba('0x28')]);if(_0x2c4ae4['name']){delete _0x2c4ae4['name'];}_0x9f368b[_0x6dba('0x1b')](_0xf4c5ef)[_0x6dba('0x29')](_0x2c4ae4);};}exports['index']=function(_0xb67e32,_0x2e803f){var _0xc56f0a={},_0x271b34={},_0x7952e3={'count':0x0,'rows':[]};var _0x43aa22=_[_0x6dba('0x2a')](db[_0x6dba('0x2b')][_0x6dba('0x2c')],function(_0x1dd09e){return{'name':_0x1dd09e[_0x6dba('0x2d')],'type':_0x1dd09e[_0x6dba('0x2e')][_0x6dba('0x2f')]};});_0x271b34[_0x6dba('0x30')]=_['map'](_0x43aa22,_0x6dba('0x31'));_0x271b34[_0x6dba('0x32')]=_[_0x6dba('0x33')](_0xb67e32[_0x6dba('0x32')]);_0x271b34[_0x6dba('0x34')]=_['intersection'](_0x271b34['model'],_0x271b34['query']);_0xc56f0a['attributes']=_['intersection'](_0x271b34[_0x6dba('0x30')],qs['fields'](_0xb67e32['query'][_0x6dba('0x35')]));_0xc56f0a[_0x6dba('0x36')]=_0xc56f0a[_0x6dba('0x36')]['length']?_0xc56f0a[_0x6dba('0x36')]:_0x271b34['model'];if(!_0xb67e32[_0x6dba('0x32')][_0x6dba('0x37')]('nolimit')){_0xc56f0a[_0x6dba('0x1f')]=qs[_0x6dba('0x1f')](_0xb67e32[_0x6dba('0x32')][_0x6dba('0x1f')]);_0xc56f0a['offset']=qs[_0x6dba('0x1d')](_0xb67e32[_0x6dba('0x32')][_0x6dba('0x1d')]);}_0xc56f0a[_0x6dba('0x38')]=qs[_0x6dba('0x39')](_0xb67e32[_0x6dba('0x32')][_0x6dba('0x39')]);_0xc56f0a[_0x6dba('0x3a')]=qs[_0x6dba('0x34')](_['pick'](_0xb67e32['query'],_0x271b34[_0x6dba('0x34')]),_0x43aa22);if(_0xb67e32['query'][_0x6dba('0x3b')]){_0xc56f0a[_0x6dba('0x3a')]=_[_0x6dba('0x3c')](_0xc56f0a[_0x6dba('0x3a')],{'$or':_[_0x6dba('0x2a')](_0x43aa22,function(_0x16642f){if(_0x16642f[_0x6dba('0x2e')]!=='VIRTUAL'){var _0x22ea72={};_0x22ea72[_0x16642f[_0x6dba('0x31')]]={'$like':'%'+_0xb67e32[_0x6dba('0x32')][_0x6dba('0x3b')]+'%'};return _0x22ea72;}})});}_0xc56f0a=_['merge']({},_0xc56f0a,_0xb67e32[_0x6dba('0x3d')]);var _0xb9f88={'where':_0xc56f0a[_0x6dba('0x3a')]};return db[_0x6dba('0x2b')][_0x6dba('0x20')](_0xb9f88)[_0x6dba('0x26')](function(_0x3ad055){_0x7952e3[_0x6dba('0x20')]=_0x3ad055;if(_0xb67e32[_0x6dba('0x32')][_0x6dba('0x3e')]){_0xc56f0a[_0x6dba('0x3f')]=[{'all':!![]}];}return db[_0x6dba('0x2b')][_0x6dba('0x40')](_0xc56f0a);})[_0x6dba('0x26')](function(_0x2773f1){_0x7952e3[_0x6dba('0x41')]=_0x2773f1;return _0x7952e3;})['then'](respondWithFilteredResult(_0x2e803f,_0xc56f0a))[_0x6dba('0x42')](handleError(_0x2e803f,null));};exports[_0x6dba('0x43')]=function(_0x4df231,_0x376c20){var _0x4ff074={'raw':!![],'where':{'id':_0x4df231['params']['id']}},_0x480e07={};_0x480e07[_0x6dba('0x30')]=_['keys'](db['ZohoField'][_0x6dba('0x2c')]);_0x480e07[_0x6dba('0x32')]=_[_0x6dba('0x33')](_0x4df231[_0x6dba('0x32')]);_0x480e07['filters']=_[_0x6dba('0x44')](_0x480e07['model'],_0x480e07[_0x6dba('0x32')]);_0x4ff074['attributes']=_['intersection'](_0x480e07['model'],qs[_0x6dba('0x35')](_0x4df231[_0x6dba('0x32')][_0x6dba('0x35')]));_0x4ff074['attributes']=_0x4ff074[_0x6dba('0x36')][_0x6dba('0x45')]?_0x4ff074[_0x6dba('0x36')]:_0x480e07[_0x6dba('0x30')];if(_0x4df231[_0x6dba('0x32')]['includeAll']){_0x4ff074[_0x6dba('0x3f')]=[{'all':!![]}];}_0x4ff074=_['merge']({},_0x4ff074,_0x4df231['options']);return db['ZohoField']['find'](_0x4ff074)[_0x6dba('0x26')](handleEntityNotFound(_0x376c20,null))['then'](respondWithResult(_0x376c20,null))[_0x6dba('0x42')](handleError(_0x376c20,null));};exports['create']=function(_0x243978,_0xdf4852){return db[_0x6dba('0x2b')][_0x6dba('0x46')](_0x243978[_0x6dba('0x47')],{})[_0x6dba('0x26')](respondWithResult(_0xdf4852,0xc9))[_0x6dba('0x42')](handleError(_0xdf4852,null));};exports[_0x6dba('0x25')]=function(_0x519994,_0x3e4366){if(_0x519994[_0x6dba('0x47')]['id']){delete _0x519994[_0x6dba('0x47')]['id'];}return db[_0x6dba('0x2b')]['find']({'where':{'id':_0x519994[_0x6dba('0x48')]['id']}})[_0x6dba('0x26')](handleEntityNotFound(_0x3e4366,null))['then'](saveUpdates(_0x519994[_0x6dba('0x47')],null))[_0x6dba('0x26')](respondWithResult(_0x3e4366,null))[_0x6dba('0x42')](handleError(_0x3e4366,null));};exports[_0x6dba('0x27')]=function(_0x18b95a,_0x3b15e9){return db[_0x6dba('0x2b')]['find']({'where':{'id':_0x18b95a[_0x6dba('0x48')]['id']}})[_0x6dba('0x26')](handleEntityNotFound(_0x3b15e9,null))[_0x6dba('0x26')](removeEntity(_0x3b15e9,null))[_0x6dba('0x42')](handleError(_0x3b15e9,null));};
\ No newline at end of file
+var _0xa968=['include','ZohoField','findAll','rows','catch','show','params','keys','find','create','body','destroy','rimraf','zip-dir','fast-json-patch','moment','bluebird','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','end','status','json','offset','limit','count','set','apply','reject','save','update','then','sendStatus','error','stack','name','index','map','rawAttributes','fieldName','type','query','filters','intersection','model','attributes','fields','length','nolimit','order','sort','pick','where','merge','filter','options','includeAll'];(function(_0x307e9f,_0x27205a){var _0xb71e84=function(_0xf2265e){while(--_0xf2265e){_0x307e9f['push'](_0x307e9f['shift']());}};_0xb71e84(++_0x27205a);}(_0xa968,0x1c2));var _0x8a96=function(_0x56fac1,_0x432aef){_0x56fac1=_0x56fac1-0x0;var _0x43254d=_0xa968[_0x56fac1];return _0x43254d;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x8a96('0x0'));var zipdir=require(_0x8a96('0x1'));var jsonpatch=require(_0x8a96('0x2'));var rp=require('request-promise');var moment=require(_0x8a96('0x3'));var BPromise=require(_0x8a96('0x4'));var Mustache=require('mustache');var util=require('util');var path=require(_0x8a96('0x5'));var sox=require('sox');var csv=require(_0x8a96('0x6'));var ejs=require(_0x8a96('0x7'));var fs=require('fs');var fs_extra=require(_0x8a96('0x8'));var _=require(_0x8a96('0x9'));var squel=require(_0x8a96('0xa'));var crypto=require(_0x8a96('0xb'));var jsforce=require(_0x8a96('0xc'));var deskjs=require(_0x8a96('0xd'));var toCsv=require(_0x8a96('0x6'));var querystring=require('querystring');var Papa=require(_0x8a96('0xe'));var Redis=require(_0x8a96('0xf'));var authService=require(_0x8a96('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0x8a96('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x8a96('0x12'))(_0x8a96('0x13'));var utils=require(_0x8a96('0x14'));var config=require(_0x8a96('0x15'));var licenseUtil=require(_0x8a96('0x16'));var db=require(_0x8a96('0x17'))['db'];function respondWithStatusCode(_0x13e056,_0x13d91d){_0x13d91d=_0x13d91d||0xcc;return function(_0x3a2d96){if(_0x3a2d96){return _0x13e056['sendStatus'](_0x13d91d);}return _0x13e056['status'](_0x13d91d)[_0x8a96('0x18')]();};}function respondWithResult(_0x13ad04,_0x29f2b8){_0x29f2b8=_0x29f2b8||0xc8;return function(_0x1de56f){if(_0x1de56f){return _0x13ad04[_0x8a96('0x19')](_0x29f2b8)[_0x8a96('0x1a')](_0x1de56f);}};}function respondWithFilteredResult(_0x4ab6da,_0xf69e6e){return function(_0x3e2428){if(_0x3e2428){var _0x581aa2=typeof _0xf69e6e[_0x8a96('0x1b')]==='undefined'&&typeof _0xf69e6e[_0x8a96('0x1c')]==='undefined';var _0x507e7e=_0x3e2428[_0x8a96('0x1d')];var _0x54355e=_0x581aa2?0x0:_0xf69e6e['offset'];var _0x76c714=_0x581aa2?_0x3e2428[_0x8a96('0x1d')]:_0xf69e6e[_0x8a96('0x1b')]+_0xf69e6e['limit'];var _0x3fdfe7;if(_0x76c714>=_0x507e7e){_0x76c714=_0x507e7e;_0x3fdfe7=0xc8;}else{_0x3fdfe7=0xce;}_0x4ab6da[_0x8a96('0x19')](_0x3fdfe7);return _0x4ab6da[_0x8a96('0x1e')]('Content-Range',_0x54355e+'-'+_0x76c714+'/'+_0x507e7e)[_0x8a96('0x1a')](_0x3e2428);}return null;};}function patchUpdates(_0x5f1b9c){return function(_0x53154c){try{jsonpatch[_0x8a96('0x1f')](_0x53154c,_0x5f1b9c,!![]);}catch(_0x40b3c2){return BPromise[_0x8a96('0x20')](_0x40b3c2);}return _0x53154c[_0x8a96('0x21')]();};}function saveUpdates(_0x518e67,_0x314f86){return function(_0x269a52){if(_0x269a52){return _0x269a52[_0x8a96('0x22')](_0x518e67)[_0x8a96('0x23')](function(_0x42e458){return _0x42e458;});}return null;};}function removeEntity(_0x36c926,_0x29b85f){return function(_0x48ac54){if(_0x48ac54){return _0x48ac54['destroy']()[_0x8a96('0x23')](function(){_0x36c926['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x3c31d2,_0x588e67){return function(_0x3a3a9e){if(!_0x3a3a9e){_0x3c31d2[_0x8a96('0x24')](0x194);}return _0x3a3a9e;};}function handleError(_0x16aa0b,_0x3a87bd){_0x3a87bd=_0x3a87bd||0x1f4;return function(_0x4fdfa1){logger[_0x8a96('0x25')](_0x4fdfa1[_0x8a96('0x26')]);if(_0x4fdfa1[_0x8a96('0x27')]){delete _0x4fdfa1[_0x8a96('0x27')];}_0x16aa0b[_0x8a96('0x19')](_0x3a87bd)['send'](_0x4fdfa1);};}exports[_0x8a96('0x28')]=function(_0x2e94e4,_0x15c373){var _0x5f3880={},_0x30c776={},_0x6340c4={'count':0x0,'rows':[]};var _0x44e9de=_[_0x8a96('0x29')](db['ZohoField'][_0x8a96('0x2a')],function(_0x5e2788){return{'name':_0x5e2788[_0x8a96('0x2b')],'type':_0x5e2788[_0x8a96('0x2c')]['key']};});_0x30c776['model']=_[_0x8a96('0x29')](_0x44e9de,_0x8a96('0x27'));_0x30c776[_0x8a96('0x2d')]=_['keys'](_0x2e94e4[_0x8a96('0x2d')]);_0x30c776[_0x8a96('0x2e')]=_[_0x8a96('0x2f')](_0x30c776[_0x8a96('0x30')],_0x30c776[_0x8a96('0x2d')]);_0x5f3880[_0x8a96('0x31')]=_[_0x8a96('0x2f')](_0x30c776[_0x8a96('0x30')],qs[_0x8a96('0x32')](_0x2e94e4[_0x8a96('0x2d')][_0x8a96('0x32')]));_0x5f3880['attributes']=_0x5f3880[_0x8a96('0x31')][_0x8a96('0x33')]?_0x5f3880[_0x8a96('0x31')]:_0x30c776['model'];if(!_0x2e94e4['query']['hasOwnProperty'](_0x8a96('0x34'))){_0x5f3880[_0x8a96('0x1c')]=qs[_0x8a96('0x1c')](_0x2e94e4[_0x8a96('0x2d')][_0x8a96('0x1c')]);_0x5f3880[_0x8a96('0x1b')]=qs[_0x8a96('0x1b')](_0x2e94e4[_0x8a96('0x2d')]['offset']);}_0x5f3880[_0x8a96('0x35')]=qs[_0x8a96('0x36')](_0x2e94e4[_0x8a96('0x2d')]['sort']);_0x5f3880['where']=qs[_0x8a96('0x2e')](_[_0x8a96('0x37')](_0x2e94e4[_0x8a96('0x2d')],_0x30c776[_0x8a96('0x2e')]),_0x44e9de);if(_0x2e94e4[_0x8a96('0x2d')]['filter']){_0x5f3880[_0x8a96('0x38')]=_[_0x8a96('0x39')](_0x5f3880[_0x8a96('0x38')],{'$or':_[_0x8a96('0x29')](_0x44e9de,function(_0x40db53){if(_0x40db53['type']!=='VIRTUAL'){var _0x247336={};_0x247336[_0x40db53[_0x8a96('0x27')]]={'$like':'%'+_0x2e94e4[_0x8a96('0x2d')][_0x8a96('0x3a')]+'%'};return _0x247336;}})});}_0x5f3880=_[_0x8a96('0x39')]({},_0x5f3880,_0x2e94e4[_0x8a96('0x3b')]);var _0xc63fdf={'where':_0x5f3880[_0x8a96('0x38')]};return db['ZohoField'][_0x8a96('0x1d')](_0xc63fdf)[_0x8a96('0x23')](function(_0x175df8){_0x6340c4[_0x8a96('0x1d')]=_0x175df8;if(_0x2e94e4['query'][_0x8a96('0x3c')]){_0x5f3880[_0x8a96('0x3d')]=[{'all':!![]}];}return db[_0x8a96('0x3e')][_0x8a96('0x3f')](_0x5f3880);})[_0x8a96('0x23')](function(_0x1f21f0){_0x6340c4[_0x8a96('0x40')]=_0x1f21f0;return _0x6340c4;})[_0x8a96('0x23')](respondWithFilteredResult(_0x15c373,_0x5f3880))[_0x8a96('0x41')](handleError(_0x15c373,null));};exports[_0x8a96('0x42')]=function(_0x5256f7,_0x46e273){var _0x292bb6={'raw':!![],'where':{'id':_0x5256f7[_0x8a96('0x43')]['id']}},_0x3b4fc1={};_0x3b4fc1[_0x8a96('0x30')]=_[_0x8a96('0x44')](db[_0x8a96('0x3e')][_0x8a96('0x2a')]);_0x3b4fc1['query']=_[_0x8a96('0x44')](_0x5256f7[_0x8a96('0x2d')]);_0x3b4fc1['filters']=_[_0x8a96('0x2f')](_0x3b4fc1[_0x8a96('0x30')],_0x3b4fc1[_0x8a96('0x2d')]);_0x292bb6[_0x8a96('0x31')]=_[_0x8a96('0x2f')](_0x3b4fc1['model'],qs['fields'](_0x5256f7[_0x8a96('0x2d')]['fields']));_0x292bb6[_0x8a96('0x31')]=_0x292bb6[_0x8a96('0x31')]['length']?_0x292bb6[_0x8a96('0x31')]:_0x3b4fc1['model'];if(_0x5256f7[_0x8a96('0x2d')][_0x8a96('0x3c')]){_0x292bb6[_0x8a96('0x3d')]=[{'all':!![]}];}_0x292bb6=_['merge']({},_0x292bb6,_0x5256f7['options']);return db['ZohoField'][_0x8a96('0x45')](_0x292bb6)[_0x8a96('0x23')](handleEntityNotFound(_0x46e273,null))['then'](respondWithResult(_0x46e273,null))[_0x8a96('0x41')](handleError(_0x46e273,null));};exports[_0x8a96('0x46')]=function(_0x58dd5b,_0x482ac0){return db[_0x8a96('0x3e')][_0x8a96('0x46')](_0x58dd5b['body'],{})[_0x8a96('0x23')](respondWithResult(_0x482ac0,0xc9))['catch'](handleError(_0x482ac0,null));};exports[_0x8a96('0x22')]=function(_0x5a0353,_0x248005){if(_0x5a0353[_0x8a96('0x47')]['id']){delete _0x5a0353[_0x8a96('0x47')]['id'];}return db[_0x8a96('0x3e')][_0x8a96('0x45')]({'where':{'id':_0x5a0353[_0x8a96('0x43')]['id']}})[_0x8a96('0x23')](handleEntityNotFound(_0x248005,null))['then'](saveUpdates(_0x5a0353['body'],null))[_0x8a96('0x23')](respondWithResult(_0x248005,null))[_0x8a96('0x41')](handleError(_0x248005,null));};exports[_0x8a96('0x48')]=function(_0x5de625,_0x5a8c6c){return db['ZohoField']['find']({'where':{'id':_0x5de625[_0x8a96('0x43')]['id']}})[_0x8a96('0x23')](handleEntityNotFound(_0x5a8c6c,null))['then'](removeEntity(_0x5a8c6c,null))[_0x8a96('0x41')](handleError(_0x5a8c6c,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf2e3=['request-promise','path','rimraf','../../config/environment','./intZohoField.attributes','define','ZohoField','int_zoho_fields','zoho_unique_index','idField','FieldId','lodash','../../config/logger','api','moment','bluebird'];(function(_0x4ff09b,_0x53f67d){var _0x3f5c2e=function(_0x124592){while(--_0x124592){_0x4ff09b['push'](_0x4ff09b['shift']());}};_0x3f5c2e(++_0x53f67d);}(_0xf2e3,0x9b));var _0x3f2e=function(_0x4a53d,_0x58a95e){_0x4a53d=_0x4a53d-0x0;var _0x27410e=_0xf2e3[_0x4a53d];return _0x27410e;};'use strict';var _=require(_0x3f2e('0x0'));var util=require('util');var logger=require(_0x3f2e('0x1'))(_0x3f2e('0x2'));var moment=require(_0x3f2e('0x3'));var BPromise=require(_0x3f2e('0x4'));var rp=require(_0x3f2e('0x5'));var fs=require('fs');var path=require(_0x3f2e('0x6'));var rimraf=require(_0x3f2e('0x7'));var config=require(_0x3f2e('0x8'));var attributes=require(_0x3f2e('0x9'));module['exports']=function(_0x33a3b7,_0xdd6b3e){return _0x33a3b7[_0x3f2e('0xa')](_0x3f2e('0xb'),attributes,{'tableName':_0x3f2e('0xc'),'paranoid':![],'indexes':[{'name':_0x3f2e('0xd'),'fields':[_0x3f2e('0xe'),_0x3f2e('0xf')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xe3da=['api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./intZohoField.attributes','exports','define','ZohoField','zoho_unique_index','idField','lodash','util','../../config/logger'];(function(_0x23c14e,_0x4ca88d){var _0x2488fe=function(_0x4f3d58){while(--_0x4f3d58){_0x23c14e['push'](_0x23c14e['shift']());}};_0x2488fe(++_0x4ca88d);}(_0xe3da,0x1cd));var _0xae3d=function(_0x19950b,_0x53d0d7){_0x19950b=_0x19950b-0x0;var _0x3c6b41=_0xe3da[_0x19950b];return _0x3c6b41;};'use strict';var _=require(_0xae3d('0x0'));var util=require(_0xae3d('0x1'));var logger=require(_0xae3d('0x2'))(_0xae3d('0x3'));var moment=require(_0xae3d('0x4'));var BPromise=require(_0xae3d('0x5'));var rp=require(_0xae3d('0x6'));var fs=require('fs');var path=require(_0xae3d('0x7'));var rimraf=require(_0xae3d('0x8'));var config=require(_0xae3d('0x9'));var attributes=require(_0xae3d('0xa'));module[_0xae3d('0xb')]=function(_0xa9a1a,_0xa54808){return _0xa9a1a[_0xae3d('0xc')](_0xae3d('0xd'),attributes,{'tableName':'int_zoho_fields','paranoid':![],'indexes':[{'name':_0xae3d('0xe'),'fields':[_0xae3d('0xf'),'FieldId'],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9003=['request\x20sent','debug','ZohoField,\x20%s,\x20%s,\x20%s','stringify','error','message','info','catch','util','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','ZohoField,\x20%s,\x20%s'];(function(_0x24237f,_0x4cf32c){var _0x48298e=function(_0x3f7511){while(--_0x3f7511){_0x24237f['push'](_0x24237f['shift']());}};_0x48298e(++_0x4cf32c);}(_0x9003,0x9b));var _0x3900=function(_0x126558,_0x143c9a){_0x126558=_0x126558-0x0;var _0x1f6d14=_0x9003[_0x126558];return _0x1f6d14;};'use strict';var _=require('lodash');var util=require(_0x3900('0x0'));var moment=require('moment');var BPromise=require(_0x3900('0x1'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x3900('0x2'));var db=require(_0x3900('0x3'))['db'];var utils=require(_0x3900('0x4'));var logger=require(_0x3900('0x5'))(_0x3900('0x6'));var config=require(_0x3900('0x7'));var jayson=require(_0x3900('0x8'));var client=jayson[_0x3900('0x9')][_0x3900('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x481082,_0xf5dd60,_0x250ed6){return new BPromise(function(_0x1f6418,_0x2b618f){return client[_0x3900('0xb')](_0x481082,_0x250ed6)['then'](function(_0x35e0fc){logger['info'](_0x3900('0xc'),_0xf5dd60,_0x3900('0xd'));logger[_0x3900('0xe')](_0x3900('0xf'),_0xf5dd60,_0x3900('0xd'),JSON[_0x3900('0x10')](_0x35e0fc));if(_0x35e0fc[_0x3900('0x11')]){if(_0x35e0fc['error']['code']===0x1f4){logger[_0x3900('0x11')]('ZohoField,\x20%s,\x20%s',_0xf5dd60,_0x35e0fc['error'][_0x3900('0x12')]);return _0x2b618f(_0x35e0fc['error']['message']);}logger['error'](_0x3900('0xc'),_0xf5dd60,_0x35e0fc[_0x3900('0x11')][_0x3900('0x12')]);return _0x1f6418(_0x35e0fc[_0x3900('0x11')][_0x3900('0x12')]);}else{logger[_0x3900('0x13')](_0x3900('0xc'),_0xf5dd60,_0x3900('0xd'));_0x1f6418(_0x35e0fc['result'][_0x3900('0x12')]);}})[_0x3900('0x14')](function(_0x17ce9e){logger[_0x3900('0x11')](_0x3900('0xc'),_0xf5dd60,_0x17ce9e);_0x2b618f(_0x17ce9e);});});}
\ No newline at end of file
+var _0x0cf9=['ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','then','debug','ZohoField,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','ZohoField,\x20%s,\x20%s','message','info','result','lodash','util','bluebird','randomstring'];(function(_0x5c9655,_0x431222){var _0x552d60=function(_0x48c502){while(--_0x48c502){_0x5c9655['push'](_0x5c9655['shift']());}};_0x552d60(++_0x431222);}(_0x0cf9,0x1df));var _0x90cf=function(_0x16aaef,_0x410651){_0x16aaef=_0x16aaef-0x0;var _0x1c82ef=_0x0cf9[_0x16aaef];return _0x1c82ef;};'use strict';var _=require(_0x90cf('0x0'));var util=require(_0x90cf('0x1'));var moment=require('moment');var BPromise=require(_0x90cf('0x2'));var rs=require(_0x90cf('0x3'));var fs=require('fs');var Redis=require(_0x90cf('0x4'));var db=require(_0x90cf('0x5'))['db'];var utils=require(_0x90cf('0x6'));var logger=require(_0x90cf('0x7'))(_0x90cf('0x8'));var config=require(_0x90cf('0x9'));var jayson=require(_0x90cf('0xa'));var client=jayson[_0x90cf('0xb')][_0x90cf('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x1cf18e,_0x5812df,_0x5ac63c){return new BPromise(function(_0x288e33,_0xb1d2be){return client['request'](_0x1cf18e,_0x5ac63c)[_0x90cf('0xd')](function(_0x4183e4){logger['info']('ZohoField,\x20%s,\x20%s',_0x5812df,'request\x20sent');logger[_0x90cf('0xe')](_0x90cf('0xf'),_0x5812df,_0x90cf('0x10'),JSON['stringify'](_0x4183e4));if(_0x4183e4[_0x90cf('0x11')]){if(_0x4183e4['error'][_0x90cf('0x12')]===0x1f4){logger['error'](_0x90cf('0x13'),_0x5812df,_0x4183e4[_0x90cf('0x11')][_0x90cf('0x14')]);return _0xb1d2be(_0x4183e4[_0x90cf('0x11')][_0x90cf('0x14')]);}logger[_0x90cf('0x11')](_0x90cf('0x13'),_0x5812df,_0x4183e4[_0x90cf('0x11')]['message']);return _0x288e33(_0x4183e4[_0x90cf('0x11')][_0x90cf('0x14')]);}else{logger[_0x90cf('0x15')](_0x90cf('0x13'),_0x5812df,_0x90cf('0x10'));_0x288e33(_0x4183e4[_0x90cf('0x16')][_0x90cf('0x14')]);}})['catch'](function(_0x142fab){logger['error'](_0x90cf('0x13'),_0x5812df,_0x142fab);_0xb1d2be(_0x142fab);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['../../components/interaction/service','../../config/environment','exports','multer','util','path','Router','../../components/auth/service'];(function(_0x4c0972,_0x115a79){var _0x37d513=function(_0x553ff9){while(--_0x553ff9){_0x4c0972['push'](_0x4c0972['shift']());}};_0x37d513(++_0x115a79);}(_0xa9e0,0x123));var _0x0a9e=function(_0x1ac595,_0x5d2081){_0x1ac595=_0x1ac595-0x0;var _0x455fff=_0xa9e0[_0x1ac595];return _0x455fff;};'use strict';var multer=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var path=require(_0x0a9e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x0a9e('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x0a9e('0x4'));var interaction=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));module[_0x0a9e('0x7')]=router;
\ No newline at end of file
+var _0xa9e0=['../../components/interaction/service','../../config/environment','exports','multer','util','path','Router','../../components/auth/service'];(function(_0x1d85e3,_0x125cff){var _0x38f84a=function(_0x1e481b){while(--_0x1e481b){_0x1d85e3['push'](_0x1d85e3['shift']());}};_0x38f84a(++_0x125cff);}(_0xa9e0,0x123));var _0x0a9e=function(_0x45e98e,_0x169b60){_0x45e98e=_0x45e98e-0x0;var _0x374dba=_0xa9e0[_0x45e98e];return _0x374dba;};'use strict';var multer=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var path=require(_0x0a9e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x0a9e('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x0a9e('0x4'));var interaction=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));module[_0x0a9e('0x7')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc543=['BOOLEAN','sequelize','exports','STRING','unique_name_and_version','app.js'];(function(_0x5a95fa,_0x4a2fc9){var _0x1a61b8=function(_0x59f119){while(--_0x59f119){_0x5a95fa['push'](_0x5a95fa['shift']());}};_0x1a61b8(++_0x4a2fc9);}(_0xc543,0x139));var _0x3c54=function(_0x3caec5,_0xde0d9e){_0x3caec5=_0x3caec5-0x0;var _0x5a66b0=_0xc543[_0x3caec5];return _0x5a66b0;};'use strict';var Sequelize=require(_0x3c54('0x0'));module[_0x3c54('0x1')]={'name':{'type':Sequelize[_0x3c54('0x2')],'allowNull':![],'unique':'unique_name_and_version'},'version':{'type':Sequelize[_0x3c54('0x2')],'allowNull':![],'unique':_0x3c54('0x3')},'main':{'type':Sequelize['STRING'],'defaultValue':_0x3c54('0x4')},'filename':{'type':Sequelize['STRING']},'path':{'type':Sequelize[_0x3c54('0x2')]},'type':{'type':Sequelize[_0x3c54('0x2')]},'size':{'type':Sequelize['INTEGER']},'active':{'type':Sequelize[_0x3c54('0x5')],'defaultValue':![]},'author':{'type':Sequelize[_0x3c54('0x2')]},'logo':{'type':Sequelize[_0x3c54('0x2')]},'state':{'type':Sequelize[_0x3c54('0x2')],'unique':'state'},'description':{'type':Sequelize[_0x3c54('0x2')]},'title':{'type':Sequelize[_0x3c54('0x2')]},'remoteUri':{'type':Sequelize['STRING']},'link':{'type':Sequelize[_0x3c54('0x2')],'defaultValue':'#'}};
\ No newline at end of file
+var _0x46d1=['STRING','unique_name_and_version','BOOLEAN','state','sequelize','exports'];(function(_0x24f31b,_0x44b8f3){var _0x488401=function(_0x204caf){while(--_0x204caf){_0x24f31b['push'](_0x24f31b['shift']());}};_0x488401(++_0x44b8f3);}(_0x46d1,0xbe));var _0x146d=function(_0x4ab540,_0x2d991e){_0x4ab540=_0x4ab540-0x0;var _0x5929b5=_0x46d1[_0x4ab540];return _0x5929b5;};'use strict';var Sequelize=require(_0x146d('0x0'));module[_0x146d('0x1')]={'name':{'type':Sequelize[_0x146d('0x2')],'allowNull':![],'unique':_0x146d('0x3')},'version':{'type':Sequelize[_0x146d('0x2')],'allowNull':![],'unique':_0x146d('0x3')},'main':{'type':Sequelize[_0x146d('0x2')],'defaultValue':'app.js'},'filename':{'type':Sequelize[_0x146d('0x2')]},'path':{'type':Sequelize[_0x146d('0x2')]},'type':{'type':Sequelize[_0x146d('0x2')]},'size':{'type':Sequelize['INTEGER']},'active':{'type':Sequelize[_0x146d('0x4')],'defaultValue':![]},'author':{'type':Sequelize['STRING']},'logo':{'type':Sequelize[_0x146d('0x2')]},'state':{'type':Sequelize[_0x146d('0x2')],'unique':_0x146d('0x5')},'description':{'type':Sequelize['STRING']},'title':{'type':Sequelize[_0x146d('0x2')]},'remoteUri':{'type':Sequelize['STRING']},'link':{'type':Sequelize[_0x146d('0x2')],'defaultValue':'#'}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd117=['hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','count','findAll','rows','catch','show','params','rawAttributes','includeAll','find','create','update','body','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','api','../../config/license/util','sendStatus','status','json','offset','undefined','limit','set','Content-Range','apply','reject','then','destroy','error','stack','name','send','Integration','fieldName','type','map','keys','query','filters','model','intersection','fields','attributes','length'];(function(_0xd6d18,_0x3c8c2b){var _0x28e4dc=function(_0x542193){while(--_0x542193){_0xd6d18['push'](_0xd6d18['shift']());}};_0x28e4dc(++_0x3c8c2b);}(_0xd117,0x182));var _0x7d11=function(_0x53b133,_0x176261){_0x53b133=_0x53b133-0x0;var _0x5647e0=_0xd117[_0x53b133];return _0x5647e0;};'use strict';var emlformat=require(_0x7d11('0x0'));var rimraf=require(_0x7d11('0x1'));var zipdir=require(_0x7d11('0x2'));var jsonpatch=require(_0x7d11('0x3'));var rp=require(_0x7d11('0x4'));var moment=require(_0x7d11('0x5'));var BPromise=require(_0x7d11('0x6'));var Mustache=require(_0x7d11('0x7'));var util=require(_0x7d11('0x8'));var path=require(_0x7d11('0x9'));var sox=require(_0x7d11('0xa'));var csv=require(_0x7d11('0xb'));var ejs=require(_0x7d11('0xc'));var fs=require('fs');var fs_extra=require(_0x7d11('0xd'));var _=require(_0x7d11('0xe'));var squel=require(_0x7d11('0xf'));var crypto=require('crypto');var jsforce=require(_0x7d11('0x10'));var deskjs=require(_0x7d11('0x11'));var toCsv=require(_0x7d11('0xb'));var querystring=require('querystring');var Papa=require(_0x7d11('0x12'));var Redis=require(_0x7d11('0x13'));var authService=require(_0x7d11('0x14'));var qs=require('../../components/parsers/qs');var as=require(_0x7d11('0x15'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x7d11('0x16'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x7d11('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x4767d5,_0x471f46){_0x471f46=_0x471f46||0xcc;return function(_0x5ee572){if(_0x5ee572){return _0x4767d5[_0x7d11('0x18')](_0x471f46);}return _0x4767d5[_0x7d11('0x19')](_0x471f46)['end']();};}function respondWithResult(_0x324de5,_0x16949d){_0x16949d=_0x16949d||0xc8;return function(_0x20a2df){if(_0x20a2df){return _0x324de5[_0x7d11('0x19')](_0x16949d)[_0x7d11('0x1a')](_0x20a2df);}};}function respondWithFilteredResult(_0xeae744,_0x2a269e){return function(_0xb1669e){if(_0xb1669e){var _0x4aa795=typeof _0x2a269e[_0x7d11('0x1b')]===_0x7d11('0x1c')&&typeof _0x2a269e[_0x7d11('0x1d')]===_0x7d11('0x1c');var _0x45f916=_0xb1669e['count'];var _0x456cb9=_0x4aa795?0x0:_0x2a269e[_0x7d11('0x1b')];var _0x4d1306=_0x4aa795?_0xb1669e['count']:_0x2a269e[_0x7d11('0x1b')]+_0x2a269e['limit'];var _0x1f9990;if(_0x4d1306>=_0x45f916){_0x4d1306=_0x45f916;_0x1f9990=0xc8;}else{_0x1f9990=0xce;}_0xeae744['status'](_0x1f9990);return _0xeae744[_0x7d11('0x1e')](_0x7d11('0x1f'),_0x456cb9+'-'+_0x4d1306+'/'+_0x45f916)[_0x7d11('0x1a')](_0xb1669e);}return null;};}function patchUpdates(_0x46f662){return function(_0x30df70){try{jsonpatch[_0x7d11('0x20')](_0x30df70,_0x46f662,!![]);}catch(_0x4297f8){return BPromise[_0x7d11('0x21')](_0x4297f8);}return _0x30df70['save']();};}function saveUpdates(_0x441917,_0x4a34f4){return function(_0x58455b){if(_0x58455b){return _0x58455b['update'](_0x441917)[_0x7d11('0x22')](function(_0x3545dc){return _0x3545dc;});}return null;};}function removeEntity(_0x44476c,_0x1a7853){return function(_0x355d14){if(_0x355d14){return _0x355d14[_0x7d11('0x23')]()[_0x7d11('0x22')](function(){_0x44476c[_0x7d11('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x36c2b4,_0x577ca9){return function(_0x4bfa76){if(!_0x4bfa76){_0x36c2b4['sendStatus'](0x194);}return _0x4bfa76;};}function handleError(_0x3ba092,_0x59cdba){_0x59cdba=_0x59cdba||0x1f4;return function(_0x180e1e){logger[_0x7d11('0x24')](_0x180e1e[_0x7d11('0x25')]);if(_0x180e1e['name']){delete _0x180e1e[_0x7d11('0x26')];}_0x3ba092[_0x7d11('0x19')](_0x59cdba)[_0x7d11('0x27')](_0x180e1e);};}exports['index']=function(_0x601650,_0x35a789){var _0x18c049={},_0x38f1be={},_0x4c7d6a={'count':0x0,'rows':[]};var _0x1a7745=_['map'](db[_0x7d11('0x28')]['rawAttributes'],function(_0x31866d){return{'name':_0x31866d[_0x7d11('0x29')],'type':_0x31866d[_0x7d11('0x2a')]['key']};});_0x38f1be['model']=_[_0x7d11('0x2b')](_0x1a7745,_0x7d11('0x26'));_0x38f1be['query']=_[_0x7d11('0x2c')](_0x601650[_0x7d11('0x2d')]);_0x38f1be[_0x7d11('0x2e')]=_['intersection'](_0x38f1be[_0x7d11('0x2f')],_0x38f1be['query']);_0x18c049['attributes']=_[_0x7d11('0x30')](_0x38f1be['model'],qs[_0x7d11('0x31')](_0x601650[_0x7d11('0x2d')][_0x7d11('0x31')]));_0x18c049[_0x7d11('0x32')]=_0x18c049['attributes'][_0x7d11('0x33')]?_0x18c049[_0x7d11('0x32')]:_0x38f1be['model'];if(!_0x601650['query'][_0x7d11('0x34')](_0x7d11('0x35'))){_0x18c049['limit']=qs[_0x7d11('0x1d')](_0x601650['query']['limit']);_0x18c049[_0x7d11('0x1b')]=qs['offset'](_0x601650['query'][_0x7d11('0x1b')]);}_0x18c049[_0x7d11('0x36')]=qs[_0x7d11('0x37')](_0x601650[_0x7d11('0x2d')][_0x7d11('0x37')]);_0x18c049[_0x7d11('0x38')]=qs[_0x7d11('0x2e')](_[_0x7d11('0x39')](_0x601650[_0x7d11('0x2d')],_0x38f1be[_0x7d11('0x2e')]),_0x1a7745);if(_0x601650[_0x7d11('0x2d')][_0x7d11('0x3a')]){_0x18c049['where']=_[_0x7d11('0x3b')](_0x18c049['where'],{'$or':_[_0x7d11('0x2b')](_0x1a7745,function(_0x111e26){if(_0x111e26[_0x7d11('0x2a')]!==_0x7d11('0x3c')){var _0x4f8fd2={};_0x4f8fd2[_0x111e26[_0x7d11('0x26')]]={'$like':'%'+_0x601650[_0x7d11('0x2d')][_0x7d11('0x3a')]+'%'};return _0x4f8fd2;}})});}_0x18c049=_[_0x7d11('0x3b')]({},_0x18c049,_0x601650['options']);var _0x22730e={'where':_0x18c049['where']};return db[_0x7d11('0x28')]['count'](_0x22730e)[_0x7d11('0x22')](function(_0x622725){_0x4c7d6a[_0x7d11('0x3d')]=_0x622725;if(_0x601650[_0x7d11('0x2d')]['includeAll']){_0x18c049['include']=[{'all':!![]}];}return db[_0x7d11('0x28')][_0x7d11('0x3e')](_0x18c049);})['then'](function(_0x1caef9){_0x4c7d6a[_0x7d11('0x3f')]=_0x1caef9;return _0x4c7d6a;})[_0x7d11('0x22')](respondWithFilteredResult(_0x35a789,_0x18c049))[_0x7d11('0x40')](handleError(_0x35a789,null));};exports[_0x7d11('0x41')]=function(_0x2e1647,_0x47e968){var _0x25b73b={'raw':![],'where':{'id':_0x2e1647[_0x7d11('0x42')]['id']}},_0x5cf6a6={};_0x5cf6a6[_0x7d11('0x2f')]=_[_0x7d11('0x2c')](db[_0x7d11('0x28')][_0x7d11('0x43')]);_0x5cf6a6[_0x7d11('0x2d')]=_['keys'](_0x2e1647['query']);_0x5cf6a6['filters']=_[_0x7d11('0x30')](_0x5cf6a6[_0x7d11('0x2f')],_0x5cf6a6[_0x7d11('0x2d')]);_0x25b73b[_0x7d11('0x32')]=_[_0x7d11('0x30')](_0x5cf6a6['model'],qs[_0x7d11('0x31')](_0x2e1647[_0x7d11('0x2d')]['fields']));_0x25b73b[_0x7d11('0x32')]=_0x25b73b[_0x7d11('0x32')][_0x7d11('0x33')]?_0x25b73b['attributes']:_0x5cf6a6[_0x7d11('0x2f')];if(_0x2e1647[_0x7d11('0x2d')][_0x7d11('0x44')]){_0x25b73b['include']=[{'all':!![]}];}_0x25b73b=_[_0x7d11('0x3b')]({},_0x25b73b,_0x2e1647['options']);return db[_0x7d11('0x28')][_0x7d11('0x45')](_0x25b73b)[_0x7d11('0x22')](handleEntityNotFound(_0x47e968,null))[_0x7d11('0x22')](respondWithResult(_0x47e968,null))[_0x7d11('0x40')](handleError(_0x47e968,null));};exports[_0x7d11('0x46')]=function(_0x161213,_0x193631){return db[_0x7d11('0x28')]['create'](_0x161213['body'],{})['then'](respondWithResult(_0x193631,0xc9))[_0x7d11('0x40')](handleError(_0x193631,null));};exports[_0x7d11('0x47')]=function(_0x20297a,_0x18ae0e){if(_0x20297a[_0x7d11('0x48')]['id']){delete _0x20297a[_0x7d11('0x48')]['id'];}return db[_0x7d11('0x28')][_0x7d11('0x45')]({'where':{'id':_0x20297a[_0x7d11('0x42')]['id']}})[_0x7d11('0x22')](handleEntityNotFound(_0x18ae0e,null))[_0x7d11('0x22')](saveUpdates(_0x20297a[_0x7d11('0x48')],null))['then'](respondWithResult(_0x18ae0e,null))[_0x7d11('0x40')](handleError(_0x18ae0e,null));};exports[_0x7d11('0x23')]=function(_0x29207f,_0x553a03){return db['Integration'][_0x7d11('0x45')]({'where':{'id':_0x29207f[_0x7d11('0x42')]['id']}})[_0x7d11('0x22')](handleEntityNotFound(_0x553a03,null))['then'](removeEntity(_0x553a03,null))['catch'](handleError(_0x553a03,null));};
\ No newline at end of file
+var _0x1a85=['includeAll','find','create','body','params','destroy','zip-dir','fast-json-patch','request-promise','mustache','util','path','to-csv','fs-extra','squel','crypto','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','update','then','end','error','stack','name','send','index','Integration','rawAttributes','fieldName','type','model','query','keys','filters','attributes','intersection','length','hasOwnProperty','nolimit','sort','where','pick','map','VIRTUAL','merge','options','include','findAll','rows','catch','show','fields'];(function(_0x38fb6a,_0xfaef49){var _0x8c894a=function(_0x49e5b9){while(--_0x49e5b9){_0x38fb6a['push'](_0x38fb6a['shift']());}};_0x8c894a(++_0xfaef49);}(_0x1a85,0x178));var _0x51a8=function(_0x337229,_0x390e5e){_0x337229=_0x337229-0x0;var _0x5c639a=_0x1a85[_0x337229];return _0x5c639a;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x51a8('0x0'));var jsonpatch=require(_0x51a8('0x1'));var rp=require(_0x51a8('0x2'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x51a8('0x3'));var util=require(_0x51a8('0x4'));var path=require(_0x51a8('0x5'));var sox=require('sox');var csv=require(_0x51a8('0x6'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x51a8('0x7'));var _=require('lodash');var squel=require(_0x51a8('0x8'));var crypto=require(_0x51a8('0x9'));var jsforce=require('jsforce');var deskjs=require(_0x51a8('0xa'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x51a8('0xb'));var Redis=require(_0x51a8('0xc'));var authService=require(_0x51a8('0xd'));var qs=require(_0x51a8('0xe'));var as=require(_0x51a8('0xf'));var hardwareService=require(_0x51a8('0x10'));var logger=require(_0x51a8('0x11'))(_0x51a8('0x12'));var utils=require(_0x51a8('0x13'));var config=require(_0x51a8('0x14'));var licenseUtil=require(_0x51a8('0x15'));var db=require(_0x51a8('0x16'))['db'];function respondWithStatusCode(_0x38a1d2,_0x1827e6){_0x1827e6=_0x1827e6||0xcc;return function(_0x43c042){if(_0x43c042){return _0x38a1d2[_0x51a8('0x17')](_0x1827e6);}return _0x38a1d2[_0x51a8('0x18')](_0x1827e6)['end']();};}function respondWithResult(_0x461f5c,_0x7a4c36){_0x7a4c36=_0x7a4c36||0xc8;return function(_0xaec066){if(_0xaec066){return _0x461f5c['status'](_0x7a4c36)[_0x51a8('0x19')](_0xaec066);}};}function respondWithFilteredResult(_0x547d40,_0x10584b){return function(_0x2b8d37){if(_0x2b8d37){var _0x39cd45=typeof _0x10584b[_0x51a8('0x1a')]===_0x51a8('0x1b')&&typeof _0x10584b[_0x51a8('0x1c')]===_0x51a8('0x1b');var _0x516abc=_0x2b8d37[_0x51a8('0x1d')];var _0x45a433=_0x39cd45?0x0:_0x10584b[_0x51a8('0x1a')];var _0x23539e=_0x39cd45?_0x2b8d37[_0x51a8('0x1d')]:_0x10584b[_0x51a8('0x1a')]+_0x10584b['limit'];var _0x1df8c2;if(_0x23539e>=_0x516abc){_0x23539e=_0x516abc;_0x1df8c2=0xc8;}else{_0x1df8c2=0xce;}_0x547d40[_0x51a8('0x18')](_0x1df8c2);return _0x547d40[_0x51a8('0x1e')](_0x51a8('0x1f'),_0x45a433+'-'+_0x23539e+'/'+_0x516abc)[_0x51a8('0x19')](_0x2b8d37);}return null;};}function patchUpdates(_0x3bc044){return function(_0x28aea0){try{jsonpatch[_0x51a8('0x20')](_0x28aea0,_0x3bc044,!![]);}catch(_0x5ac1c0){return BPromise[_0x51a8('0x21')](_0x5ac1c0);}return _0x28aea0['save']();};}function saveUpdates(_0xfe0ddb,_0x12c029){return function(_0x8bda40){if(_0x8bda40){return _0x8bda40[_0x51a8('0x22')](_0xfe0ddb)['then'](function(_0xae3588){return _0xae3588;});}return null;};}function removeEntity(_0x4b9cdd,_0x47f063){return function(_0x23d26a){if(_0x23d26a){return _0x23d26a['destroy']()[_0x51a8('0x23')](function(){_0x4b9cdd[_0x51a8('0x18')](0xcc)[_0x51a8('0x24')]();});}};}function handleEntityNotFound(_0x18e2f3,_0x157554){return function(_0x2f2f05){if(!_0x2f2f05){_0x18e2f3[_0x51a8('0x17')](0x194);}return _0x2f2f05;};}function handleError(_0x1326a2,_0x5b3f49){_0x5b3f49=_0x5b3f49||0x1f4;return function(_0x273ce2){logger[_0x51a8('0x25')](_0x273ce2[_0x51a8('0x26')]);if(_0x273ce2[_0x51a8('0x27')]){delete _0x273ce2[_0x51a8('0x27')];}_0x1326a2[_0x51a8('0x18')](_0x5b3f49)[_0x51a8('0x28')](_0x273ce2);};}exports[_0x51a8('0x29')]=function(_0xec08ae,_0x4b5cda){var _0x20c6b5={},_0x347a02={},_0x4a1548={'count':0x0,'rows':[]};var _0x2f9d53=_['map'](db[_0x51a8('0x2a')][_0x51a8('0x2b')],function(_0x143f46){return{'name':_0x143f46[_0x51a8('0x2c')],'type':_0x143f46[_0x51a8('0x2d')]['key']};});_0x347a02[_0x51a8('0x2e')]=_['map'](_0x2f9d53,_0x51a8('0x27'));_0x347a02[_0x51a8('0x2f')]=_[_0x51a8('0x30')](_0xec08ae['query']);_0x347a02[_0x51a8('0x31')]=_['intersection'](_0x347a02[_0x51a8('0x2e')],_0x347a02[_0x51a8('0x2f')]);_0x20c6b5[_0x51a8('0x32')]=_[_0x51a8('0x33')](_0x347a02[_0x51a8('0x2e')],qs['fields'](_0xec08ae[_0x51a8('0x2f')]['fields']));_0x20c6b5[_0x51a8('0x32')]=_0x20c6b5[_0x51a8('0x32')][_0x51a8('0x34')]?_0x20c6b5['attributes']:_0x347a02[_0x51a8('0x2e')];if(!_0xec08ae[_0x51a8('0x2f')][_0x51a8('0x35')](_0x51a8('0x36'))){_0x20c6b5[_0x51a8('0x1c')]=qs['limit'](_0xec08ae['query']['limit']);_0x20c6b5[_0x51a8('0x1a')]=qs[_0x51a8('0x1a')](_0xec08ae['query'][_0x51a8('0x1a')]);}_0x20c6b5['order']=qs[_0x51a8('0x37')](_0xec08ae[_0x51a8('0x2f')][_0x51a8('0x37')]);_0x20c6b5[_0x51a8('0x38')]=qs[_0x51a8('0x31')](_[_0x51a8('0x39')](_0xec08ae['query'],_0x347a02['filters']),_0x2f9d53);if(_0xec08ae[_0x51a8('0x2f')]['filter']){_0x20c6b5['where']=_['merge'](_0x20c6b5[_0x51a8('0x38')],{'$or':_[_0x51a8('0x3a')](_0x2f9d53,function(_0x3cbf97){if(_0x3cbf97['type']!==_0x51a8('0x3b')){var _0x25d772={};_0x25d772[_0x3cbf97[_0x51a8('0x27')]]={'$like':'%'+_0xec08ae[_0x51a8('0x2f')]['filter']+'%'};return _0x25d772;}})});}_0x20c6b5=_[_0x51a8('0x3c')]({},_0x20c6b5,_0xec08ae[_0x51a8('0x3d')]);var _0x1b0333={'where':_0x20c6b5['where']};return db[_0x51a8('0x2a')]['count'](_0x1b0333)[_0x51a8('0x23')](function(_0x1e637a){_0x4a1548[_0x51a8('0x1d')]=_0x1e637a;if(_0xec08ae[_0x51a8('0x2f')]['includeAll']){_0x20c6b5[_0x51a8('0x3e')]=[{'all':!![]}];}return db[_0x51a8('0x2a')][_0x51a8('0x3f')](_0x20c6b5);})[_0x51a8('0x23')](function(_0xa33fc){_0x4a1548[_0x51a8('0x40')]=_0xa33fc;return _0x4a1548;})[_0x51a8('0x23')](respondWithFilteredResult(_0x4b5cda,_0x20c6b5))[_0x51a8('0x41')](handleError(_0x4b5cda,null));};exports[_0x51a8('0x42')]=function(_0x4b8467,_0x22e6e6){var _0x2afb74={'raw':![],'where':{'id':_0x4b8467['params']['id']}},_0x4c7c67={};_0x4c7c67[_0x51a8('0x2e')]=_[_0x51a8('0x30')](db[_0x51a8('0x2a')][_0x51a8('0x2b')]);_0x4c7c67[_0x51a8('0x2f')]=_[_0x51a8('0x30')](_0x4b8467[_0x51a8('0x2f')]);_0x4c7c67[_0x51a8('0x31')]=_[_0x51a8('0x33')](_0x4c7c67[_0x51a8('0x2e')],_0x4c7c67['query']);_0x2afb74[_0x51a8('0x32')]=_[_0x51a8('0x33')](_0x4c7c67[_0x51a8('0x2e')],qs[_0x51a8('0x43')](_0x4b8467[_0x51a8('0x2f')][_0x51a8('0x43')]));_0x2afb74['attributes']=_0x2afb74[_0x51a8('0x32')]['length']?_0x2afb74[_0x51a8('0x32')]:_0x4c7c67[_0x51a8('0x2e')];if(_0x4b8467[_0x51a8('0x2f')][_0x51a8('0x44')]){_0x2afb74[_0x51a8('0x3e')]=[{'all':!![]}];}_0x2afb74=_['merge']({},_0x2afb74,_0x4b8467['options']);return db[_0x51a8('0x2a')][_0x51a8('0x45')](_0x2afb74)[_0x51a8('0x23')](handleEntityNotFound(_0x22e6e6,null))[_0x51a8('0x23')](respondWithResult(_0x22e6e6,null))[_0x51a8('0x41')](handleError(_0x22e6e6,null));};exports['create']=function(_0x504a43,_0xcbd998){return db[_0x51a8('0x2a')][_0x51a8('0x46')](_0x504a43[_0x51a8('0x47')],{})[_0x51a8('0x23')](respondWithResult(_0xcbd998,0xc9))[_0x51a8('0x41')](handleError(_0xcbd998,null));};exports[_0x51a8('0x22')]=function(_0x1103a3,_0x301578){if(_0x1103a3['body']['id']){delete _0x1103a3['body']['id'];}return db['Integration'][_0x51a8('0x45')]({'where':{'id':_0x1103a3[_0x51a8('0x48')]['id']}})[_0x51a8('0x23')](handleEntityNotFound(_0x301578,null))['then'](saveUpdates(_0x1103a3[_0x51a8('0x47')],null))[_0x51a8('0x23')](respondWithResult(_0x301578,null))['catch'](handleError(_0x301578,null));};exports[_0x51a8('0x49')]=function(_0x4fb93c,_0x50a2f8){return db[_0x51a8('0x2a')][_0x51a8('0x45')]({'where':{'id':_0x4fb93c[_0x51a8('0x48')]['id']}})['then'](handleEntityNotFound(_0x50a2f8,null))['then'](removeEntity(_0x50a2f8,null))[_0x51a8('0x41')](handleError(_0x50a2f8,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd26f=['request-promise','path','rimraf','../../config/environment','./integration.attributes','exports','define','Integration','lodash','util','../../config/logger','api','moment','bluebird'];(function(_0x40d927,_0x7d744b){var _0x5370cf=function(_0xb854c1){while(--_0xb854c1){_0x40d927['push'](_0x40d927['shift']());}};_0x5370cf(++_0x7d744b);}(_0xd26f,0x174));var _0xfd26=function(_0x1ac595,_0x5d2081){_0x1ac595=_0x1ac595-0x0;var _0x455fff=_0xd26f[_0x1ac595];return _0x455fff;};'use strict';var _=require(_0xfd26('0x0'));var util=require(_0xfd26('0x1'));var logger=require(_0xfd26('0x2'))(_0xfd26('0x3'));var moment=require(_0xfd26('0x4'));var BPromise=require(_0xfd26('0x5'));var rp=require(_0xfd26('0x6'));var fs=require('fs');var path=require(_0xfd26('0x7'));var rimraf=require(_0xfd26('0x8'));var config=require(_0xfd26('0x9'));var attributes=require(_0xfd26('0xa'));module[_0xfd26('0xb')]=function(_0x341454,_0x269adc){return _0x341454[_0xfd26('0xc')](_0xfd26('0xd'),attributes,{'tableName':'integrations','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x1e11=['bluebird','request-promise','path','rimraf','../../config/environment','./integration.attributes','exports','Integration','integrations','lodash','util','../../config/logger','api','moment'];(function(_0x4ae6ef,_0xc2af80){var _0x3cbb4e=function(_0x569ad5){while(--_0x569ad5){_0x4ae6ef['push'](_0x4ae6ef['shift']());}};_0x3cbb4e(++_0xc2af80);}(_0x1e11,0x14b));var _0x11e1=function(_0x3c6052,_0xd6e37f){_0x3c6052=_0x3c6052-0x0;var _0x186bdd=_0x1e11[_0x3c6052];return _0x186bdd;};'use strict';var _=require(_0x11e1('0x0'));var util=require(_0x11e1('0x1'));var logger=require(_0x11e1('0x2'))(_0x11e1('0x3'));var moment=require(_0x11e1('0x4'));var BPromise=require(_0x11e1('0x5'));var rp=require(_0x11e1('0x6'));var fs=require('fs');var path=require(_0x11e1('0x7'));var rimraf=require(_0x11e1('0x8'));var config=require(_0x11e1('0x9'));var attributes=require(_0x11e1('0xa'));module[_0x11e1('0xb')]=function(_0x50cb2d,_0x2e88d9){return _0x50cb2d['define'](_0x11e1('0xc'),attributes,{'tableName':_0x11e1('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd7d1=['info','Integration,\x20%s,\x20%s','request\x20sent','Integration,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','request','then'];(function(_0x166d93,_0x301f09){var _0xba708=function(_0x349bf7){while(--_0x349bf7){_0x166d93['push'](_0x166d93['shift']());}};_0xba708(++_0x301f09);}(_0xd7d1,0x1b3));var _0x1d7d=function(_0xd41825,_0x126758){_0xd41825=_0xd41825-0x0;var _0x244a6f=_0xd7d1[_0xd41825];return _0x244a6f;};'use strict';var _=require(_0x1d7d('0x0'));var util=require(_0x1d7d('0x1'));var moment=require(_0x1d7d('0x2'));var BPromise=require(_0x1d7d('0x3'));var rs=require(_0x1d7d('0x4'));var fs=require('fs');var Redis=require(_0x1d7d('0x5'));var db=require(_0x1d7d('0x6'))['db'];var utils=require(_0x1d7d('0x7'));var logger=require(_0x1d7d('0x8'))(_0x1d7d('0x9'));var config=require(_0x1d7d('0xa'));var jayson=require(_0x1d7d('0xb'));var client=jayson[_0x1d7d('0xc')]['http']({'port':0x232a});function respondWithRpcPromise(_0x462ef8,_0x1aa456,_0x14dbf6){return new BPromise(function(_0x3675a2,_0xd6189e){return client[_0x1d7d('0xd')](_0x462ef8,_0x14dbf6)[_0x1d7d('0xe')](function(_0xa44223){logger[_0x1d7d('0xf')](_0x1d7d('0x10'),_0x1aa456,_0x1d7d('0x11'));logger['debug'](_0x1d7d('0x12'),_0x1aa456,'request\x20sent',JSON[_0x1d7d('0x13')](_0xa44223));if(_0xa44223[_0x1d7d('0x14')]){if(_0xa44223[_0x1d7d('0x14')][_0x1d7d('0x15')]===0x1f4){logger['error'](_0x1d7d('0x10'),_0x1aa456,_0xa44223['error']['message']);return _0xd6189e(_0xa44223[_0x1d7d('0x14')][_0x1d7d('0x16')]);}logger['error']('Integration,\x20%s,\x20%s',_0x1aa456,_0xa44223[_0x1d7d('0x14')][_0x1d7d('0x16')]);return _0x3675a2(_0xa44223[_0x1d7d('0x14')][_0x1d7d('0x16')]);}else{logger[_0x1d7d('0xf')]('Integration,\x20%s,\x20%s',_0x1aa456,_0x1d7d('0x11'));_0x3675a2(_0xa44223[_0x1d7d('0x17')]['message']);}})[_0x1d7d('0x18')](function(_0x162c3a){logger[_0x1d7d('0x14')](_0x1d7d('0x10'),_0x1aa456,_0x162c3a);_0xd6189e(_0x162c3a);});});}
\ No newline at end of file
+var _0x0295=['client','http','then','info','request\x20sent','debug','Integration,\x20%s,\x20%s,\x20%s','stringify','error','Integration,\x20%s,\x20%s','message','result','catch','lodash','bluebird','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise'];(function(_0x1feb15,_0x20d239){var _0x4b2cd2=function(_0x376b59){while(--_0x376b59){_0x1feb15['push'](_0x1feb15['shift']());}};_0x4b2cd2(++_0x20d239);}(_0x0295,0x1f0));var _0x5029=function(_0xbc7ea,_0x4d3f90){_0xbc7ea=_0xbc7ea-0x0;var _0xadc703=_0x0295[_0xbc7ea];return _0xadc703;};'use strict';var _=require(_0x5029('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0x5029('0x1'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0x5029('0x2'))['db'];var utils=require(_0x5029('0x3'));var logger=require(_0x5029('0x4'))(_0x5029('0x5'));var config=require(_0x5029('0x6'));var jayson=require(_0x5029('0x7'));var client=jayson[_0x5029('0x8')][_0x5029('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x5b3cd,_0x502a62,_0x54978f){return new BPromise(function(_0x4ee867,_0xf4459b){return client['request'](_0x5b3cd,_0x54978f)[_0x5029('0xa')](function(_0x5bccfc){logger[_0x5029('0xb')]('Integration,\x20%s,\x20%s',_0x502a62,_0x5029('0xc'));logger[_0x5029('0xd')](_0x5029('0xe'),_0x502a62,'request\x20sent',JSON[_0x5029('0xf')](_0x5bccfc));if(_0x5bccfc[_0x5029('0x10')]){if(_0x5bccfc[_0x5029('0x10')]['code']===0x1f4){logger[_0x5029('0x10')](_0x5029('0x11'),_0x502a62,_0x5bccfc['error']['message']);return _0xf4459b(_0x5bccfc['error']['message']);}logger[_0x5029('0x10')](_0x5029('0x11'),_0x502a62,_0x5bccfc[_0x5029('0x10')][_0x5029('0x12')]);return _0x4ee867(_0x5bccfc[_0x5029('0x10')][_0x5029('0x12')]);}else{logger[_0x5029('0xb')](_0x5029('0x11'),_0x502a62,_0x5029('0xc'));_0x4ee867(_0x5bccfc[_0x5029('0x13')][_0x5029('0x12')]);}})[_0x5029('0x14')](function(_0x3786b5){logger[_0x5029('0x10')](_0x5029('0x11'),_0x502a62,_0x3786b5);_0xf4459b(_0x3786b5);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x896e=['show','put','update','delete','destroy','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./integrationReport.controller','get','index','/describe','isAuthenticated','describe','/:id'];(function(_0x160c73,_0x2ee678){var _0xd9302=function(_0x169454){while(--_0x169454){_0x160c73['push'](_0x160c73['shift']());}};_0xd9302(++_0x2ee678);}(_0x896e,0x1e9));var _0xe896=function(_0x2913fb,_0x21e145){_0x2913fb=_0x2913fb-0x0;var _0x51ba95=_0x896e[_0x2913fb];return _0x51ba95;};'use strict';var multer=require(_0xe896('0x0'));var util=require(_0xe896('0x1'));var path=require(_0xe896('0x2'));var timeout=require(_0xe896('0x3'));var express=require(_0xe896('0x4'));var router=express[_0xe896('0x5')]();var fs_extra=require(_0xe896('0x6'));var auth=require(_0xe896('0x7'));var interaction=require(_0xe896('0x8'));var config=require(_0xe896('0x9'));var controller=require(_0xe896('0xa'));router[_0xe896('0xb')]('/',auth['isAuthenticated'](),controller[_0xe896('0xc')]);router[_0xe896('0xb')](_0xe896('0xd'),auth[_0xe896('0xe')](),controller[_0xe896('0xf')]);router['get'](_0xe896('0x10'),auth[_0xe896('0xe')](),controller[_0xe896('0x11')]);router['post']('/',auth[_0xe896('0xe')](),controller['create']);router[_0xe896('0x12')]('/:id',auth[_0xe896('0xe')](),controller[_0xe896('0x13')]);router[_0xe896('0x14')]('/:id',auth[_0xe896('0xe')](),controller[_0xe896('0x15')]);module[_0xe896('0x16')]=router;
\ No newline at end of file
+var _0x7a54=['destroy','exports','multer','util','path','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./integrationReport.controller','get','index','/describe','isAuthenticated','post','put','update','delete','/:id'];(function(_0x22d5b5,_0x1b4a0b){var _0x14c29b=function(_0x313a82){while(--_0x313a82){_0x22d5b5['push'](_0x22d5b5['shift']());}};_0x14c29b(++_0x1b4a0b);}(_0x7a54,0x106));var _0x47a5=function(_0x6042e,_0x1bccda){_0x6042e=_0x6042e-0x0;var _0x872ad5=_0x7a54[_0x6042e];return _0x872ad5;};'use strict';var multer=require(_0x47a5('0x0'));var util=require(_0x47a5('0x1'));var path=require(_0x47a5('0x2'));var timeout=require('connect-timeout');var express=require(_0x47a5('0x3'));var router=express[_0x47a5('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0x47a5('0x5'));var interaction=require(_0x47a5('0x6'));var config=require(_0x47a5('0x7'));var controller=require(_0x47a5('0x8'));router[_0x47a5('0x9')]('/',auth['isAuthenticated'](),controller[_0x47a5('0xa')]);router['get'](_0x47a5('0xb'),auth[_0x47a5('0xc')](),controller['describe']);router[_0x47a5('0x9')]('/:id',auth['isAuthenticated'](),controller['show']);router[_0x47a5('0xd')]('/',auth[_0x47a5('0xc')](),controller['create']);router[_0x47a5('0xe')]('/:id',auth['isAuthenticated'](),controller[_0x47a5('0xf')]);router[_0x47a5('0x10')](_0x47a5('0x11'),auth[_0x47a5('0xc')](),controller[_0x47a5('0x12')]);module[_0x47a5('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe96e=['FAILED','sequelize','exports','STRING','INTEGER','DATE','BOOLEAN','TEXT','ENUM','SENDING'];(function(_0x377f50,_0x5589ba){var _0x14a9d2=function(_0x4ab38b){while(--_0x4ab38b){_0x377f50['push'](_0x377f50['shift']());}};_0x14a9d2(++_0x5589ba);}(_0xe96e,0x14b));var _0xee96=function(_0x5c2eb0,_0x2d2897){_0x5c2eb0=_0x5c2eb0-0x0;var _0x2b4fe1=_0xe96e[_0x5c2eb0];return _0x2b4fe1;};'use strict';var Sequelize=require(_0xee96('0x0'));module[_0xee96('0x1')]={'integration':{'type':Sequelize[_0xee96('0x2')]},'eventChannel':{'type':Sequelize[_0xee96('0x2')]},'exitStatus':{'type':Sequelize[_0xee96('0x2')]},'ticketId':{'type':Sequelize[_0xee96('0x2')]},'integrationId':{'type':Sequelize[_0xee96('0x3')]},'contacts':{'type':Sequelize[_0xee96('0x2')]},'uniqueid':{'type':Sequelize[_0xee96('0x2')]},'calleridnum':{'type':Sequelize[_0xee96('0x2')]},'calleridname':{'type':Sequelize[_0xee96('0x2')]},'queue':{'type':Sequelize[_0xee96('0x2')]},'interface':{'type':Sequelize['STRING']},'membername':{'type':Sequelize['STRING']},'agentcalledAt':{'type':Sequelize[_0xee96('0x4')]},'agentconnectAt':{'type':Sequelize[_0xee96('0x4')]},'holdtime':{'type':Sequelize[_0xee96('0x3')]},'agentcomplete':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'agentcompleteAt':{'type':Sequelize['DATE']},'talktime':{'type':Sequelize[_0xee96('0x3')]},'agentacw':{'type':Sequelize[_0xee96('0x5')],'defaultValue':![]},'acwtime':{'type':Sequelize[_0xee96('0x3')]},'reason':{'type':Sequelize['STRING']},'agentringnoanswer':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'agentringnoanswerAt':{'type':Sequelize[_0xee96('0x4')]},'agentdump':{'type':Sequelize[_0xee96('0x5')],'defaultValue':![]},'agentdumpAt':{'type':Sequelize['DATE']},'lastevent':{'type':Sequelize[_0xee96('0x2')]},'channel':{'type':Sequelize['STRING']},'channelstate':{'type':Sequelize['INTEGER']},'channelstatedesc':{'type':Sequelize[_0xee96('0x2')]},'connectedlinenum':{'type':Sequelize[_0xee96('0x2')]},'connectedlinename':{'type':Sequelize[_0xee96('0x2')]},'language':{'type':Sequelize['STRING']},'accountcode':{'type':Sequelize[_0xee96('0x2')]},'context':{'type':Sequelize[_0xee96('0x2')]},'exten':{'type':Sequelize['STRING']},'priority':{'type':Sequelize['STRING']},'destchannel':{'type':Sequelize[_0xee96('0x2')]},'destchannelstate':{'type':Sequelize['INTEGER']},'destchannelstatedesc':{'type':Sequelize[_0xee96('0x2')]},'destcalleridnum':{'type':Sequelize[_0xee96('0x2')]},'destcalleridname':{'type':Sequelize[_0xee96('0x2')]},'destconnectedlinenum':{'type':Sequelize[_0xee96('0x2')]},'destconnectedlinename':{'type':Sequelize[_0xee96('0x2')]},'destlanguage':{'type':Sequelize[_0xee96('0x2')]},'destaccountcode':{'type':Sequelize['STRING']},'destcontext':{'type':Sequelize[_0xee96('0x2')]},'destexten':{'type':Sequelize['STRING']},'destpriority':{'type':Sequelize['STRING']},'destuniqueid':{'type':Sequelize[_0xee96('0x2')]},'messageId':{'type':Sequelize[_0xee96('0x2')]},'inReplyTo':{'type':Sequelize[_0xee96('0x2')]},'subject':{'type':Sequelize[_0xee96('0x2')]},'from':{'type':Sequelize[_0xee96('0x2')]},'to':{'type':Sequelize[_0xee96('0x2')]},'cc':{'type':Sequelize[_0xee96('0x2')]},'attachment':{'type':Sequelize['TEXT']},'html':{'type':Sequelize[_0xee96('0x6')]},'text':{'type':Sequelize[_0xee96('0x6')]},'status':{'type':Sequelize[_0xee96('0x7')]('SENT',_0xee96('0x8'),'RECEIVED',_0xee96('0x9'))},'url':{'type':Sequelize['STRING']},'app':{'type':Sequelize[_0xee96('0x2')]},'appdata':{'type':Sequelize[_0xee96('0x2')]},'projectId':{'type':Sequelize[_0xee96('0x3')]}};
\ No newline at end of file
+var _0xf820=['BOOLEAN','TEXT','ENUM','SENDING','FAILED','sequelize','STRING','INTEGER','DATE'];(function(_0x4a5d73,_0x445e76){var _0x17d0e3=function(_0x45f9fd){while(--_0x45f9fd){_0x4a5d73['push'](_0x4a5d73['shift']());}};_0x17d0e3(++_0x445e76);}(_0xf820,0x71));var _0x0f82=function(_0x4e583e,_0x32e7a2){_0x4e583e=_0x4e583e-0x0;var _0x23be2f=_0xf820[_0x4e583e];return _0x23be2f;};'use strict';var Sequelize=require(_0x0f82('0x0'));module['exports']={'integration':{'type':Sequelize[_0x0f82('0x1')]},'eventChannel':{'type':Sequelize[_0x0f82('0x1')]},'exitStatus':{'type':Sequelize['STRING']},'ticketId':{'type':Sequelize[_0x0f82('0x1')]},'integrationId':{'type':Sequelize[_0x0f82('0x2')]},'contacts':{'type':Sequelize['STRING']},'uniqueid':{'type':Sequelize[_0x0f82('0x1')]},'calleridnum':{'type':Sequelize[_0x0f82('0x1')]},'calleridname':{'type':Sequelize['STRING']},'queue':{'type':Sequelize[_0x0f82('0x1')]},'interface':{'type':Sequelize[_0x0f82('0x1')]},'membername':{'type':Sequelize[_0x0f82('0x1')]},'agentcalledAt':{'type':Sequelize[_0x0f82('0x3')]},'agentconnectAt':{'type':Sequelize[_0x0f82('0x3')]},'holdtime':{'type':Sequelize[_0x0f82('0x2')]},'agentcomplete':{'type':Sequelize[_0x0f82('0x4')],'defaultValue':![]},'agentcompleteAt':{'type':Sequelize[_0x0f82('0x3')]},'talktime':{'type':Sequelize[_0x0f82('0x2')]},'agentacw':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'acwtime':{'type':Sequelize[_0x0f82('0x2')]},'reason':{'type':Sequelize[_0x0f82('0x1')]},'agentringnoanswer':{'type':Sequelize[_0x0f82('0x4')],'defaultValue':![]},'agentringnoanswerAt':{'type':Sequelize[_0x0f82('0x3')]},'agentdump':{'type':Sequelize[_0x0f82('0x4')],'defaultValue':![]},'agentdumpAt':{'type':Sequelize[_0x0f82('0x3')]},'lastevent':{'type':Sequelize[_0x0f82('0x1')]},'channel':{'type':Sequelize[_0x0f82('0x1')]},'channelstate':{'type':Sequelize[_0x0f82('0x2')]},'channelstatedesc':{'type':Sequelize[_0x0f82('0x1')]},'connectedlinenum':{'type':Sequelize['STRING']},'connectedlinename':{'type':Sequelize[_0x0f82('0x1')]},'language':{'type':Sequelize[_0x0f82('0x1')]},'accountcode':{'type':Sequelize[_0x0f82('0x1')]},'context':{'type':Sequelize[_0x0f82('0x1')]},'exten':{'type':Sequelize['STRING']},'priority':{'type':Sequelize[_0x0f82('0x1')]},'destchannel':{'type':Sequelize['STRING']},'destchannelstate':{'type':Sequelize['INTEGER']},'destchannelstatedesc':{'type':Sequelize['STRING']},'destcalleridnum':{'type':Sequelize[_0x0f82('0x1')]},'destcalleridname':{'type':Sequelize[_0x0f82('0x1')]},'destconnectedlinenum':{'type':Sequelize[_0x0f82('0x1')]},'destconnectedlinename':{'type':Sequelize[_0x0f82('0x1')]},'destlanguage':{'type':Sequelize[_0x0f82('0x1')]},'destaccountcode':{'type':Sequelize[_0x0f82('0x1')]},'destcontext':{'type':Sequelize['STRING']},'destexten':{'type':Sequelize['STRING']},'destpriority':{'type':Sequelize[_0x0f82('0x1')]},'destuniqueid':{'type':Sequelize['STRING']},'messageId':{'type':Sequelize[_0x0f82('0x1')]},'inReplyTo':{'type':Sequelize['STRING']},'subject':{'type':Sequelize[_0x0f82('0x1')]},'from':{'type':Sequelize['STRING']},'to':{'type':Sequelize[_0x0f82('0x1')]},'cc':{'type':Sequelize[_0x0f82('0x1')]},'attachment':{'type':Sequelize[_0x0f82('0x5')]},'html':{'type':Sequelize[_0x0f82('0x5')]},'text':{'type':Sequelize[_0x0f82('0x5')]},'status':{'type':Sequelize[_0x0f82('0x6')]('SENT',_0x0f82('0x7'),'RECEIVED',_0x0f82('0x8'))},'url':{'type':Sequelize[_0x0f82('0x1')]},'app':{'type':Sequelize[_0x0f82('0x1')]},'appdata':{'type':Sequelize[_0x0f82('0x1')]},'projectId':{'type':Sequelize[_0x0f82('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5dd4=['mustache','util','sox','ejs','fs-extra','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','undefined','limit','count','offset','set','Content-Range','apply','save','update','then','destroy','stack','name','send','map','IntegrationReport','rawAttributes','query','keys','filters','intersection','model','attributes','length','hasOwnProperty','sort','where','VIRTUAL','merge','options','includeAll','include','findAll','rows','catch','show','params','fields','find','create','body','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird'];(function(_0x4afa2c,_0x5a246f){var _0x4c7106=function(_0x32c84e){while(--_0x32c84e){_0x4afa2c['push'](_0x4afa2c['shift']());}};_0x4c7106(++_0x5a246f);}(_0x5dd4,0xd1));var _0x45dd=function(_0x3c465e,_0x3e80d1){_0x3c465e=_0x3c465e-0x0;var _0x1234c6=_0x5dd4[_0x3c465e];return _0x1234c6;};'use strict';var emlformat=require(_0x45dd('0x0'));var rimraf=require(_0x45dd('0x1'));var zipdir=require(_0x45dd('0x2'));var jsonpatch=require(_0x45dd('0x3'));var rp=require(_0x45dd('0x4'));var moment=require(_0x45dd('0x5'));var BPromise=require(_0x45dd('0x6'));var Mustache=require(_0x45dd('0x7'));var util=require(_0x45dd('0x8'));var path=require('path');var sox=require(_0x45dd('0x9'));var csv=require('to-csv');var ejs=require(_0x45dd('0xa'));var fs=require('fs');var fs_extra=require(_0x45dd('0xb'));var _=require('lodash');var squel=require('squel');var crypto=require(_0x45dd('0xc'));var jsforce=require(_0x45dd('0xd'));var deskjs=require(_0x45dd('0xe'));var toCsv=require('to-csv');var querystring=require(_0x45dd('0xf'));var Papa=require('papaparse');var Redis=require(_0x45dd('0x10'));var authService=require(_0x45dd('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0x45dd('0x12'));var hardwareService=require(_0x45dd('0x13'));var logger=require(_0x45dd('0x14'))(_0x45dd('0x15'));var utils=require(_0x45dd('0x16'));var config=require(_0x45dd('0x17'));var licenseUtil=require(_0x45dd('0x18'));var db=require(_0x45dd('0x19'))['db'];function respondWithStatusCode(_0x5ca3d9,_0xfa03){_0xfa03=_0xfa03||0xcc;return function(_0x582209){if(_0x582209){return _0x5ca3d9[_0x45dd('0x1a')](_0xfa03);}return _0x5ca3d9['status'](_0xfa03)[_0x45dd('0x1b')]();};}function respondWithResult(_0x343c90,_0x47fc7f){_0x47fc7f=_0x47fc7f||0xc8;return function(_0x1f3dd4){if(_0x1f3dd4){return _0x343c90[_0x45dd('0x1c')](_0x47fc7f)[_0x45dd('0x1d')](_0x1f3dd4);}};}function respondWithFilteredResult(_0x1f138c,_0x3f79ea){return function(_0x37a33f){if(_0x37a33f){var _0x5d7230=typeof _0x3f79ea['offset']===_0x45dd('0x1e')&&typeof _0x3f79ea[_0x45dd('0x1f')]===_0x45dd('0x1e');var _0x2e00bb=_0x37a33f[_0x45dd('0x20')];var _0x8d17f5=_0x5d7230?0x0:_0x3f79ea[_0x45dd('0x21')];var _0x1c1b5c=_0x5d7230?_0x37a33f[_0x45dd('0x20')]:_0x3f79ea[_0x45dd('0x21')]+_0x3f79ea[_0x45dd('0x1f')];var _0x3ea96d;if(_0x1c1b5c>=_0x2e00bb){_0x1c1b5c=_0x2e00bb;_0x3ea96d=0xc8;}else{_0x3ea96d=0xce;}_0x1f138c[_0x45dd('0x1c')](_0x3ea96d);return _0x1f138c[_0x45dd('0x22')](_0x45dd('0x23'),_0x8d17f5+'-'+_0x1c1b5c+'/'+_0x2e00bb)[_0x45dd('0x1d')](_0x37a33f);}return null;};}function patchUpdates(_0xb919bd){return function(_0x17764d){try{jsonpatch[_0x45dd('0x24')](_0x17764d,_0xb919bd,!![]);}catch(_0x3aec4c){return BPromise['reject'](_0x3aec4c);}return _0x17764d[_0x45dd('0x25')]();};}function saveUpdates(_0x183dfc,_0x35a1d6){return function(_0x14c089){if(_0x14c089){return _0x14c089[_0x45dd('0x26')](_0x183dfc)[_0x45dd('0x27')](function(_0x43f056){return _0x43f056;});}return null;};}function removeEntity(_0x3af520,_0x235031){return function(_0x5a171b){if(_0x5a171b){return _0x5a171b[_0x45dd('0x28')]()[_0x45dd('0x27')](function(){_0x3af520[_0x45dd('0x1c')](0xcc)[_0x45dd('0x1b')]();});}};}function handleEntityNotFound(_0x581485,_0x3a3368){return function(_0xc90327){if(!_0xc90327){_0x581485[_0x45dd('0x1a')](0x194);}return _0xc90327;};}function handleError(_0x1cc670,_0x1c56f0){_0x1c56f0=_0x1c56f0||0x1f4;return function(_0x590afa){logger['error'](_0x590afa[_0x45dd('0x29')]);if(_0x590afa[_0x45dd('0x2a')]){delete _0x590afa[_0x45dd('0x2a')];}_0x1cc670[_0x45dd('0x1c')](_0x1c56f0)[_0x45dd('0x2b')](_0x590afa);};}exports['index']=function(_0x4ae3d6,_0x578141){var _0x94654c={},_0x3ffa51={},_0x232598={'count':0x0,'rows':[]};var _0x49ab7a=_[_0x45dd('0x2c')](db[_0x45dd('0x2d')][_0x45dd('0x2e')],function(_0x55f10c){return{'name':_0x55f10c['fieldName'],'type':_0x55f10c['type']['key']};});_0x3ffa51['model']=_['map'](_0x49ab7a,_0x45dd('0x2a'));_0x3ffa51[_0x45dd('0x2f')]=_[_0x45dd('0x30')](_0x4ae3d6['query']);_0x3ffa51[_0x45dd('0x31')]=_[_0x45dd('0x32')](_0x3ffa51[_0x45dd('0x33')],_0x3ffa51['query']);_0x94654c['attributes']=_[_0x45dd('0x32')](_0x3ffa51[_0x45dd('0x33')],qs['fields'](_0x4ae3d6[_0x45dd('0x2f')]['fields']));_0x94654c[_0x45dd('0x34')]=_0x94654c[_0x45dd('0x34')][_0x45dd('0x35')]?_0x94654c['attributes']:_0x3ffa51['model'];if(!_0x4ae3d6[_0x45dd('0x2f')][_0x45dd('0x36')]('nolimit')){_0x94654c[_0x45dd('0x1f')]=qs[_0x45dd('0x1f')](_0x4ae3d6[_0x45dd('0x2f')]['limit']);_0x94654c[_0x45dd('0x21')]=qs[_0x45dd('0x21')](_0x4ae3d6[_0x45dd('0x2f')][_0x45dd('0x21')]);}_0x94654c['order']=qs[_0x45dd('0x37')](_0x4ae3d6[_0x45dd('0x2f')][_0x45dd('0x37')]);_0x94654c[_0x45dd('0x38')]=qs['filters'](_['pick'](_0x4ae3d6[_0x45dd('0x2f')],_0x3ffa51[_0x45dd('0x31')]),_0x49ab7a);if(_0x4ae3d6['query']['filter']){_0x94654c[_0x45dd('0x38')]=_['merge'](_0x94654c[_0x45dd('0x38')],{'$or':_['map'](_0x49ab7a,function(_0x2e54c9){if(_0x2e54c9['type']!==_0x45dd('0x39')){var _0x50c5ae={};_0x50c5ae[_0x2e54c9['name']]={'$like':'%'+_0x4ae3d6[_0x45dd('0x2f')]['filter']+'%'};return _0x50c5ae;}})});}_0x94654c=_[_0x45dd('0x3a')]({},_0x94654c,_0x4ae3d6[_0x45dd('0x3b')]);var _0x354ce4={'where':_0x94654c[_0x45dd('0x38')]};return db[_0x45dd('0x2d')]['count'](_0x354ce4)[_0x45dd('0x27')](function(_0x57f6eb){_0x232598['count']=_0x57f6eb;if(_0x4ae3d6['query'][_0x45dd('0x3c')]){_0x94654c[_0x45dd('0x3d')]=[{'all':!![]}];}return db[_0x45dd('0x2d')][_0x45dd('0x3e')](_0x94654c);})[_0x45dd('0x27')](function(_0x4d86ed){_0x232598[_0x45dd('0x3f')]=_0x4d86ed;return _0x232598;})['then'](respondWithFilteredResult(_0x578141,_0x94654c))[_0x45dd('0x40')](handleError(_0x578141,null));};exports[_0x45dd('0x41')]=function(_0x2af8a8,_0xce7f55){var _0x5e1b74={'raw':![],'where':{'id':_0x2af8a8[_0x45dd('0x42')]['id']}},_0x4e71d2={};_0x4e71d2[_0x45dd('0x33')]=_[_0x45dd('0x30')](db['IntegrationReport'][_0x45dd('0x2e')]);_0x4e71d2[_0x45dd('0x2f')]=_[_0x45dd('0x30')](_0x2af8a8[_0x45dd('0x2f')]);_0x4e71d2[_0x45dd('0x31')]=_[_0x45dd('0x32')](_0x4e71d2['model'],_0x4e71d2[_0x45dd('0x2f')]);_0x5e1b74[_0x45dd('0x34')]=_[_0x45dd('0x32')](_0x4e71d2[_0x45dd('0x33')],qs[_0x45dd('0x43')](_0x2af8a8[_0x45dd('0x2f')]['fields']));_0x5e1b74[_0x45dd('0x34')]=_0x5e1b74[_0x45dd('0x34')]['length']?_0x5e1b74['attributes']:_0x4e71d2['model'];if(_0x2af8a8[_0x45dd('0x2f')][_0x45dd('0x3c')]){_0x5e1b74[_0x45dd('0x3d')]=[{'all':!![]}];}_0x5e1b74=_[_0x45dd('0x3a')]({},_0x5e1b74,_0x2af8a8['options']);return db[_0x45dd('0x2d')][_0x45dd('0x44')](_0x5e1b74)['then'](handleEntityNotFound(_0xce7f55,null))[_0x45dd('0x27')](respondWithResult(_0xce7f55,null))[_0x45dd('0x40')](handleError(_0xce7f55,null));};exports['create']=function(_0x2ed13d,_0x199cb4){return db['IntegrationReport'][_0x45dd('0x45')](_0x2ed13d[_0x45dd('0x46')],{})['then'](respondWithResult(_0x199cb4,0xc9))['catch'](handleError(_0x199cb4,null));};exports[_0x45dd('0x26')]=function(_0x588d65,_0x503fdf){if(_0x588d65[_0x45dd('0x46')]['id']){delete _0x588d65[_0x45dd('0x46')]['id'];}return db['IntegrationReport'][_0x45dd('0x44')]({'where':{'id':_0x588d65['params']['id']}})[_0x45dd('0x27')](handleEntityNotFound(_0x503fdf,null))[_0x45dd('0x27')](saveUpdates(_0x588d65[_0x45dd('0x46')],null))[_0x45dd('0x27')](respondWithResult(_0x503fdf,null))[_0x45dd('0x40')](handleError(_0x503fdf,null));};exports[_0x45dd('0x28')]=function(_0x4ff3f5,_0x1e6642){return db['IntegrationReport']['find']({'where':{'id':_0x4ff3f5[_0x45dd('0x42')]['id']}})[_0x45dd('0x27')](handleEntityNotFound(_0x1e6642,null))['then'](removeEntity(_0x1e6642,null))[_0x45dd('0x40')](handleError(_0x1e6642,null));};exports['describe']=function(_0x312bba,_0x14a42e){return db[_0x45dd('0x2d')][_0x45dd('0x47')]()[_0x45dd('0x27')](respondWithResult(_0x14a42e,null))[_0x45dd('0x40')](handleError(_0x14a42e,null));};
\ No newline at end of file
+var _0x045b=['hasOwnProperty','nolimit','order','sort','pick','filter','merge','where','VIRTUAL','options','IntegrationReport','includeAll','include','findAll','rows','catch','show','model','find','create','update','body','params','describe','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','ejs','lodash','crypto','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','count','limit','set','Content-Range','apply','reject','save','then','destroy','end','name','index','map','rawAttributes','fieldName','type','key','query','keys','filters','intersection','attributes','fields','length'];(function(_0x3e36a0,_0x23a385){var _0x441f97=function(_0x563229){while(--_0x563229){_0x3e36a0['push'](_0x3e36a0['shift']());}};_0x441f97(++_0x23a385);}(_0x045b,0x64));var _0xb045=function(_0x384231,_0x50be41){_0x384231=_0x384231-0x0;var _0x2480bf=_0x045b[_0x384231];return _0x2480bf;};'use strict';var emlformat=require(_0xb045('0x0'));var rimraf=require(_0xb045('0x1'));var zipdir=require(_0xb045('0x2'));var jsonpatch=require(_0xb045('0x3'));var rp=require('request-promise');var moment=require(_0xb045('0x4'));var BPromise=require(_0xb045('0x5'));var Mustache=require(_0xb045('0x6'));var util=require(_0xb045('0x7'));var path=require(_0xb045('0x8'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xb045('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xb045('0xa'));var squel=require('squel');var crypto=require(_0xb045('0xb'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0xb045('0xc'));var Papa=require('papaparse');var Redis=require(_0xb045('0xd'));var authService=require('../../components/auth/service');var qs=require(_0xb045('0xe'));var as=require(_0xb045('0xf'));var hardwareService=require(_0xb045('0x10'));var logger=require(_0xb045('0x11'))(_0xb045('0x12'));var utils=require(_0xb045('0x13'));var config=require(_0xb045('0x14'));var licenseUtil=require(_0xb045('0x15'));var db=require(_0xb045('0x16'))['db'];function respondWithStatusCode(_0xbbe1e5,_0x4fc6be){_0x4fc6be=_0x4fc6be||0xcc;return function(_0x1562c8){if(_0x1562c8){return _0xbbe1e5[_0xb045('0x17')](_0x4fc6be);}return _0xbbe1e5[_0xb045('0x18')](_0x4fc6be)['end']();};}function respondWithResult(_0x537a53,_0x58826b){_0x58826b=_0x58826b||0xc8;return function(_0x56d889){if(_0x56d889){return _0x537a53['status'](_0x58826b)[_0xb045('0x19')](_0x56d889);}};}function respondWithFilteredResult(_0x33cb27,_0x24a2ff){return function(_0x35374c){if(_0x35374c){var _0x4793a5=typeof _0x24a2ff[_0xb045('0x1a')]===_0xb045('0x1b')&&typeof _0x24a2ff['limit']===_0xb045('0x1b');var _0x36cd09=_0x35374c[_0xb045('0x1c')];var _0x53a3b4=_0x4793a5?0x0:_0x24a2ff[_0xb045('0x1a')];var _0x45d05c=_0x4793a5?_0x35374c[_0xb045('0x1c')]:_0x24a2ff['offset']+_0x24a2ff[_0xb045('0x1d')];var _0x11db8c;if(_0x45d05c>=_0x36cd09){_0x45d05c=_0x36cd09;_0x11db8c=0xc8;}else{_0x11db8c=0xce;}_0x33cb27['status'](_0x11db8c);return _0x33cb27[_0xb045('0x1e')](_0xb045('0x1f'),_0x53a3b4+'-'+_0x45d05c+'/'+_0x36cd09)[_0xb045('0x19')](_0x35374c);}return null;};}function patchUpdates(_0x17021c){return function(_0x1f9c41){try{jsonpatch[_0xb045('0x20')](_0x1f9c41,_0x17021c,!![]);}catch(_0xaa0311){return BPromise[_0xb045('0x21')](_0xaa0311);}return _0x1f9c41[_0xb045('0x22')]();};}function saveUpdates(_0x18e805,_0x16b225){return function(_0x594e9e){if(_0x594e9e){return _0x594e9e['update'](_0x18e805)[_0xb045('0x23')](function(_0xf770a0){return _0xf770a0;});}return null;};}function removeEntity(_0xcbdde6,_0xf38c3b){return function(_0x4ea45b){if(_0x4ea45b){return _0x4ea45b[_0xb045('0x24')]()['then'](function(){_0xcbdde6[_0xb045('0x18')](0xcc)[_0xb045('0x25')]();});}};}function handleEntityNotFound(_0x570305,_0x2c5a16){return function(_0x1b20f4){if(!_0x1b20f4){_0x570305['sendStatus'](0x194);}return _0x1b20f4;};}function handleError(_0x4f4977,_0x110957){_0x110957=_0x110957||0x1f4;return function(_0x215049){logger['error'](_0x215049['stack']);if(_0x215049[_0xb045('0x26')]){delete _0x215049[_0xb045('0x26')];}_0x4f4977[_0xb045('0x18')](_0x110957)['send'](_0x215049);};}exports[_0xb045('0x27')]=function(_0x29ffa6,_0x493bff){var _0x4bb782={},_0x4d5dc8={},_0x39b42c={'count':0x0,'rows':[]};var _0x15c58c=_[_0xb045('0x28')](db['IntegrationReport'][_0xb045('0x29')],function(_0x80dfa5){return{'name':_0x80dfa5[_0xb045('0x2a')],'type':_0x80dfa5[_0xb045('0x2b')][_0xb045('0x2c')]};});_0x4d5dc8['model']=_[_0xb045('0x28')](_0x15c58c,_0xb045('0x26'));_0x4d5dc8[_0xb045('0x2d')]=_[_0xb045('0x2e')](_0x29ffa6[_0xb045('0x2d')]);_0x4d5dc8[_0xb045('0x2f')]=_[_0xb045('0x30')](_0x4d5dc8['model'],_0x4d5dc8[_0xb045('0x2d')]);_0x4bb782[_0xb045('0x31')]=_[_0xb045('0x30')](_0x4d5dc8['model'],qs[_0xb045('0x32')](_0x29ffa6[_0xb045('0x2d')][_0xb045('0x32')]));_0x4bb782[_0xb045('0x31')]=_0x4bb782[_0xb045('0x31')][_0xb045('0x33')]?_0x4bb782['attributes']:_0x4d5dc8['model'];if(!_0x29ffa6['query'][_0xb045('0x34')](_0xb045('0x35'))){_0x4bb782['limit']=qs[_0xb045('0x1d')](_0x29ffa6['query'][_0xb045('0x1d')]);_0x4bb782[_0xb045('0x1a')]=qs[_0xb045('0x1a')](_0x29ffa6[_0xb045('0x2d')][_0xb045('0x1a')]);}_0x4bb782[_0xb045('0x36')]=qs[_0xb045('0x37')](_0x29ffa6[_0xb045('0x2d')]['sort']);_0x4bb782['where']=qs[_0xb045('0x2f')](_[_0xb045('0x38')](_0x29ffa6['query'],_0x4d5dc8[_0xb045('0x2f')]),_0x15c58c);if(_0x29ffa6[_0xb045('0x2d')][_0xb045('0x39')]){_0x4bb782['where']=_[_0xb045('0x3a')](_0x4bb782[_0xb045('0x3b')],{'$or':_[_0xb045('0x28')](_0x15c58c,function(_0x4cd6da){if(_0x4cd6da[_0xb045('0x2b')]!==_0xb045('0x3c')){var _0x14133b={};_0x14133b[_0x4cd6da[_0xb045('0x26')]]={'$like':'%'+_0x29ffa6[_0xb045('0x2d')][_0xb045('0x39')]+'%'};return _0x14133b;}})});}_0x4bb782=_[_0xb045('0x3a')]({},_0x4bb782,_0x29ffa6[_0xb045('0x3d')]);var _0x52029c={'where':_0x4bb782[_0xb045('0x3b')]};return db[_0xb045('0x3e')]['count'](_0x52029c)[_0xb045('0x23')](function(_0x23655d){_0x39b42c[_0xb045('0x1c')]=_0x23655d;if(_0x29ffa6[_0xb045('0x2d')][_0xb045('0x3f')]){_0x4bb782[_0xb045('0x40')]=[{'all':!![]}];}return db[_0xb045('0x3e')][_0xb045('0x41')](_0x4bb782);})[_0xb045('0x23')](function(_0x5853a2){_0x39b42c[_0xb045('0x42')]=_0x5853a2;return _0x39b42c;})[_0xb045('0x23')](respondWithFilteredResult(_0x493bff,_0x4bb782))[_0xb045('0x43')](handleError(_0x493bff,null));};exports[_0xb045('0x44')]=function(_0x195afa,_0x320fa5){var _0x88eb82={'raw':![],'where':{'id':_0x195afa['params']['id']}},_0x30df53={};_0x30df53['model']=_[_0xb045('0x2e')](db[_0xb045('0x3e')][_0xb045('0x29')]);_0x30df53['query']=_[_0xb045('0x2e')](_0x195afa[_0xb045('0x2d')]);_0x30df53[_0xb045('0x2f')]=_[_0xb045('0x30')](_0x30df53['model'],_0x30df53[_0xb045('0x2d')]);_0x88eb82[_0xb045('0x31')]=_[_0xb045('0x30')](_0x30df53['model'],qs[_0xb045('0x32')](_0x195afa[_0xb045('0x2d')][_0xb045('0x32')]));_0x88eb82['attributes']=_0x88eb82['attributes'][_0xb045('0x33')]?_0x88eb82['attributes']:_0x30df53[_0xb045('0x45')];if(_0x195afa[_0xb045('0x2d')][_0xb045('0x3f')]){_0x88eb82[_0xb045('0x40')]=[{'all':!![]}];}_0x88eb82=_['merge']({},_0x88eb82,_0x195afa['options']);return db[_0xb045('0x3e')][_0xb045('0x46')](_0x88eb82)[_0xb045('0x23')](handleEntityNotFound(_0x320fa5,null))[_0xb045('0x23')](respondWithResult(_0x320fa5,null))[_0xb045('0x43')](handleError(_0x320fa5,null));};exports[_0xb045('0x47')]=function(_0x4f5a71,_0x4e4783){return db['IntegrationReport'][_0xb045('0x47')](_0x4f5a71['body'],{})[_0xb045('0x23')](respondWithResult(_0x4e4783,0xc9))[_0xb045('0x43')](handleError(_0x4e4783,null));};exports[_0xb045('0x48')]=function(_0x67b714,_0x17110f){if(_0x67b714['body']['id']){delete _0x67b714[_0xb045('0x49')]['id'];}return db['IntegrationReport'][_0xb045('0x46')]({'where':{'id':_0x67b714[_0xb045('0x4a')]['id']}})[_0xb045('0x23')](handleEntityNotFound(_0x17110f,null))[_0xb045('0x23')](saveUpdates(_0x67b714[_0xb045('0x49')],null))['then'](respondWithResult(_0x17110f,null))[_0xb045('0x43')](handleError(_0x17110f,null));};exports[_0xb045('0x24')]=function(_0x57457c,_0x5f4a4f){return db[_0xb045('0x3e')][_0xb045('0x46')]({'where':{'id':_0x57457c[_0xb045('0x4a')]['id']}})['then'](handleEntityNotFound(_0x5f4a4f,null))[_0xb045('0x23')](removeEntity(_0x5f4a4f,null))['catch'](handleError(_0x5f4a4f,null));};exports[_0xb045('0x4b')]=function(_0x2d5384,_0x5030ed){return db[_0xb045('0x3e')][_0xb045('0x4b')]()[_0xb045('0x23')](respondWithResult(_0x5030ed,null))[_0xb045('0x43')](handleError(_0x5030ed,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4e6f=['rimraf','../../config/environment','./integrationReport.attributes','exports','define','IntegrationReport','util','../../config/logger','api','bluebird','path'];(function(_0x2d5234,_0x34ddc2){var _0x553ab2=function(_0x2cd6c9){while(--_0x2cd6c9){_0x2d5234['push'](_0x2d5234['shift']());}};_0x553ab2(++_0x34ddc2);}(_0x4e6f,0x1b3));var _0xf4e6=function(_0x22a4b5,_0x742426){_0x22a4b5=_0x22a4b5-0x0;var _0x4a2320=_0x4e6f[_0x22a4b5];return _0x4a2320;};'use strict';var _=require('lodash');var util=require(_0xf4e6('0x0'));var logger=require(_0xf4e6('0x1'))(_0xf4e6('0x2'));var moment=require('moment');var BPromise=require(_0xf4e6('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xf4e6('0x4'));var rimraf=require(_0xf4e6('0x5'));var config=require(_0xf4e6('0x6'));var attributes=require(_0xf4e6('0x7'));module[_0xf4e6('0x8')]=function(_0xee8b97,_0x1572bc){return _0xee8b97[_0xf4e6('0x9')](_0xf4e6('0xa'),attributes,{'tableName':'report_integration','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x962c=['../../config/environment','./integrationReport.attributes','define','IntegrationReport','lodash','util','api','moment','rimraf'];(function(_0x4ac5e7,_0x22c8b9){var _0x533b4b=function(_0x56e304){while(--_0x56e304){_0x4ac5e7['push'](_0x4ac5e7['shift']());}};_0x533b4b(++_0x22c8b9);}(_0x962c,0x1a2));var _0xc962=function(_0x24715a,_0x3e94a0){_0x24715a=_0x24715a-0x0;var _0x4c6903=_0x962c[_0x24715a];return _0x4c6903;};'use strict';var _=require(_0xc962('0x0'));var util=require(_0xc962('0x1'));var logger=require('../../config/logger')(_0xc962('0x2'));var moment=require(_0xc962('0x3'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0xc962('0x4'));var config=require(_0xc962('0x5'));var attributes=require(_0xc962('0x6'));module['exports']=function(_0x1c40f8,_0x435e9e){return _0x1c40f8[_0xc962('0x7')](_0xc962('0x8'),attributes,{'tableName':'report_integration','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x814b=['info','IntegrationReport,\x20%s,\x20%s','request\x20sent','debug','IntegrationReport,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','request','then'];(function(_0x13ce0c,_0x3f2a0d){var _0x4388fb=function(_0x27db4b){while(--_0x27db4b){_0x13ce0c['push'](_0x13ce0c['shift']());}};_0x4388fb(++_0x3f2a0d);}(_0x814b,0x1a2));var _0xb814=function(_0x5e2b34,_0x58385c){_0x5e2b34=_0x5e2b34-0x0;var _0x4859f9=_0x814b[_0x5e2b34];return _0x4859f9;};'use strict';var _=require(_0xb814('0x0'));var util=require(_0xb814('0x1'));var moment=require(_0xb814('0x2'));var BPromise=require(_0xb814('0x3'));var rs=require(_0xb814('0x4'));var fs=require('fs');var Redis=require(_0xb814('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0xb814('0x6'));var logger=require(_0xb814('0x7'))(_0xb814('0x8'));var config=require(_0xb814('0x9'));var jayson=require(_0xb814('0xa'));var client=jayson[_0xb814('0xb')]['http']({'port':0x232a});function respondWithRpcPromise(_0x3b0829,_0x2e6272,_0x5c8539){return new BPromise(function(_0x271af9,_0x2913a6){return client[_0xb814('0xc')](_0x3b0829,_0x5c8539)[_0xb814('0xd')](function(_0x1fea33){logger[_0xb814('0xe')](_0xb814('0xf'),_0x2e6272,_0xb814('0x10'));logger[_0xb814('0x11')](_0xb814('0x12'),_0x2e6272,_0xb814('0x10'),JSON['stringify'](_0x1fea33));if(_0x1fea33[_0xb814('0x13')]){if(_0x1fea33['error'][_0xb814('0x14')]===0x1f4){logger[_0xb814('0x13')](_0xb814('0xf'),_0x2e6272,_0x1fea33[_0xb814('0x13')][_0xb814('0x15')]);return _0x2913a6(_0x1fea33[_0xb814('0x13')][_0xb814('0x15')]);}logger[_0xb814('0x13')](_0xb814('0xf'),_0x2e6272,_0x1fea33[_0xb814('0x13')][_0xb814('0x15')]);return _0x271af9(_0x1fea33[_0xb814('0x13')][_0xb814('0x15')]);}else{logger[_0xb814('0xe')](_0xb814('0xf'),_0x2e6272,_0xb814('0x10'));_0x271af9(_0x1fea33[_0xb814('0x16')][_0xb814('0x15')]);}})[_0xb814('0x17')](function(_0x21b73f){logger[_0xb814('0x13')]('IntegrationReport,\x20%s,\x20%s',_0x2e6272,_0x21b73f);_0x2913a6(_0x21b73f);});});}
\ No newline at end of file
+var _0xba34=['../../config/environment','jayson/promise','client','http','request','then','info','IntegrationReport,\x20%s,\x20%s','request\x20sent','debug','IntegrationReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','lodash','util','moment','bluebird','randomstring','../../config/logger','rpc'];(function(_0x3ae11b,_0x1cfdd0){var _0xec6aa3=function(_0x6de256){while(--_0x6de256){_0x3ae11b['push'](_0x3ae11b['shift']());}};_0xec6aa3(++_0x1cfdd0);}(_0xba34,0x119));var _0x4ba3=function(_0xffc3a1,_0x2a0f4c){_0xffc3a1=_0xffc3a1-0x0;var _0x282599=_0xba34[_0xffc3a1];return _0x282599;};'use strict';var _=require(_0x4ba3('0x0'));var util=require(_0x4ba3('0x1'));var moment=require(_0x4ba3('0x2'));var BPromise=require(_0x4ba3('0x3'));var rs=require(_0x4ba3('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x4ba3('0x5'))(_0x4ba3('0x6'));var config=require(_0x4ba3('0x7'));var jayson=require(_0x4ba3('0x8'));var client=jayson[_0x4ba3('0x9')][_0x4ba3('0xa')]({'port':0x232a});function respondWithRpcPromise(_0xe5f99a,_0x585f2d,_0x6254fb){return new BPromise(function(_0x368eee,_0x2df7f3){return client[_0x4ba3('0xb')](_0xe5f99a,_0x6254fb)[_0x4ba3('0xc')](function(_0xcf1ec3){logger[_0x4ba3('0xd')](_0x4ba3('0xe'),_0x585f2d,_0x4ba3('0xf'));logger[_0x4ba3('0x10')](_0x4ba3('0x11'),_0x585f2d,'request\x20sent',JSON[_0x4ba3('0x12')](_0xcf1ec3));if(_0xcf1ec3[_0x4ba3('0x13')]){if(_0xcf1ec3['error'][_0x4ba3('0x14')]===0x1f4){logger['error'](_0x4ba3('0xe'),_0x585f2d,_0xcf1ec3['error'][_0x4ba3('0x15')]);return _0x2df7f3(_0xcf1ec3[_0x4ba3('0x13')][_0x4ba3('0x15')]);}logger[_0x4ba3('0x13')](_0x4ba3('0xe'),_0x585f2d,_0xcf1ec3[_0x4ba3('0x13')][_0x4ba3('0x15')]);return _0x368eee(_0xcf1ec3[_0x4ba3('0x13')][_0x4ba3('0x15')]);}else{logger[_0x4ba3('0xd')](_0x4ba3('0xe'),_0x585f2d,_0x4ba3('0xf'));_0x368eee(_0xcf1ec3[_0x4ba3('0x16')][_0x4ba3('0x15')]);}})[_0x4ba3('0x17')](function(_0x1b7776){logger['error'](_0x4ba3('0xe'),_0x585f2d,_0x1b7776);_0x2df7f3(_0x1b7776);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaccc=['post','create','addInterval','/:id/sub_intervals/create_many','addIntervals','put','update','delete','destroy','exports','multer','util','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./interval.controller','isAuthenticated','get','/:id','show','/:id/sub_intervals','getIntervals'];(function(_0x70ba06,_0x16503a){var _0x5c9454=function(_0x21b997){while(--_0x21b997){_0x70ba06['push'](_0x70ba06['shift']());}};_0x5c9454(++_0x16503a);}(_0xaccc,0xda));var _0xcacc=function(_0x1cb18a,_0x33167a){_0x1cb18a=_0x1cb18a-0x0;var _0x22442e=_0xaccc[_0x1cb18a];return _0x22442e;};'use strict';var multer=require(_0xcacc('0x0'));var util=require(_0xcacc('0x1'));var path=require(_0xcacc('0x2'));var timeout=require(_0xcacc('0x3'));var express=require(_0xcacc('0x4'));var router=express[_0xcacc('0x5')]();var fs_extra=require('fs-extra');var auth=require(_0xcacc('0x6'));var interaction=require(_0xcacc('0x7'));var config=require(_0xcacc('0x8'));var controller=require(_0xcacc('0x9'));router['get']('/',auth[_0xcacc('0xa')](),controller['index']);router[_0xcacc('0xb')](_0xcacc('0xc'),auth[_0xcacc('0xa')](),controller[_0xcacc('0xd')]);router[_0xcacc('0xb')](_0xcacc('0xe'),auth[_0xcacc('0xa')](),controller[_0xcacc('0xf')]);router[_0xcacc('0x10')]('/',auth[_0xcacc('0xa')](),controller[_0xcacc('0x11')]);router[_0xcacc('0x10')]('/:id/sub_intervals',auth[_0xcacc('0xa')](),controller[_0xcacc('0x12')]);router['post'](_0xcacc('0x13'),auth[_0xcacc('0xa')](),controller[_0xcacc('0x14')]);router[_0xcacc('0x15')]('/:id',auth['isAuthenticated'](),controller[_0xcacc('0x16')]);router[_0xcacc('0x17')]('/:id',auth[_0xcacc('0xa')](),controller[_0xcacc('0x18')]);module[_0xcacc('0x19')]=router;
\ No newline at end of file
+var _0xae1c=['index','/:id','/:id/sub_intervals','getIntervals','create','post','addInterval','addIntervals','put','update','delete','destroy','exports','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./interval.controller','get','isAuthenticated'];(function(_0x3a99f4,_0x2a81c1){var _0xea0b42=function(_0x41f533){while(--_0x41f533){_0x3a99f4['push'](_0x3a99f4['shift']());}};_0xea0b42(++_0x2a81c1);}(_0xae1c,0xff));var _0xcae1=function(_0x2977aa,_0x2f1f1c){_0x2977aa=_0x2977aa-0x0;var _0x50bad8=_0xae1c[_0x2977aa];return _0x50bad8;};'use strict';var multer=require('multer');var util=require('util');var path=require('path');var timeout=require('connect-timeout');var express=require(_0xcae1('0x0'));var router=express[_0xcae1('0x1')]();var fs_extra=require(_0xcae1('0x2'));var auth=require(_0xcae1('0x3'));var interaction=require(_0xcae1('0x4'));var config=require(_0xcae1('0x5'));var controller=require(_0xcae1('0x6'));router[_0xcae1('0x7')]('/',auth[_0xcae1('0x8')](),controller[_0xcae1('0x9')]);router[_0xcae1('0x7')](_0xcae1('0xa'),auth[_0xcae1('0x8')](),controller['show']);router['get'](_0xcae1('0xb'),auth[_0xcae1('0x8')](),controller[_0xcae1('0xc')]);router['post']('/',auth[_0xcae1('0x8')](),controller[_0xcae1('0xd')]);router[_0xcae1('0xe')]('/:id/sub_intervals',auth[_0xcae1('0x8')](),controller[_0xcae1('0xf')]);router['post']('/:id/sub_intervals/create_many',auth[_0xcae1('0x8')](),controller[_0xcae1('0x10')]);router[_0xcae1('0x11')](_0xcae1('0xa'),auth[_0xcae1('0x8')](),controller[_0xcae1('0x12')]);router[_0xcae1('0x13')](_0xcae1('0xa'),auth[_0xcae1('0x8')](),controller[_0xcae1('0x14')]);module[_0xcae1('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa6cf=['exports','STRING'];(function(_0x133b22,_0x472a6f){var _0x528e86=function(_0x499e75){while(--_0x499e75){_0x133b22['push'](_0x133b22['shift']());}};_0x528e86(++_0x472a6f);}(_0xa6cf,0xce));var _0xfa6c=function(_0x3330a6,_0x33da1f){_0x3330a6=_0x3330a6-0x0;var _0x260253=_0xa6cf[_0x3330a6];return _0x260253;};'use strict';var Sequelize=require('sequelize');module[_0xfa6c('0x0')]={'name':{'type':Sequelize[_0xfa6c('0x1')]},'description':{'type':Sequelize[_0xfa6c('0x1')]},'interval':{'type':Sequelize[_0xfa6c('0x1')],'allowNull':!![]}};
\ No newline at end of file
+var _0x804b=['exports','STRING'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x804b,0x8a));var _0xb804=function(_0x35efc7,_0x9f485f){_0x35efc7=_0x35efc7-0x0;var _0x38d24c=_0x804b[_0x35efc7];return _0x38d24c;};'use strict';var Sequelize=require('sequelize');module[_0xb804('0x0')]={'name':{'type':Sequelize[_0xb804('0x1')]},'description':{'type':Sequelize[_0xb804('0x1')]},'interval':{'type':Sequelize[_0xb804('0x1')],'allowNull':!![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xce28=['../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','limit','count','Content-Range','reject','update','then','get','Intervals','UserProfileResource','destroy','error','stack','name','send','index','map','Interval','rawAttributes','fieldName','key','model','query','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','options','includeAll','include','findAll','rows','catch','params','keys','find','create','user','role','UserProfileSection','userProfileId','autoAssociation','body','IntervalId','getIntervals','findOne','filter','addIntervals','sequelize','transaction','bulkCreate','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','papaparse','../../components/parsers/qs'];(function(_0x397e5f,_0x454c8f){var _0x5302b8=function(_0x1a29ef){while(--_0x1a29ef){_0x397e5f['push'](_0x397e5f['shift']());}};_0x5302b8(++_0x454c8f);}(_0xce28,0x9d));var _0x8ce2=function(_0x2f45ea,_0x15c656){_0x2f45ea=_0x2f45ea-0x0;var _0x485a84=_0xce28[_0x2f45ea];return _0x485a84;};'use strict';var emlformat=require(_0x8ce2('0x0'));var rimraf=require(_0x8ce2('0x1'));var zipdir=require(_0x8ce2('0x2'));var jsonpatch=require(_0x8ce2('0x3'));var rp=require(_0x8ce2('0x4'));var moment=require('moment');var BPromise=require(_0x8ce2('0x5'));var Mustache=require(_0x8ce2('0x6'));var util=require(_0x8ce2('0x7'));var path=require(_0x8ce2('0x8'));var sox=require(_0x8ce2('0x9'));var csv=require(_0x8ce2('0xa'));var ejs=require(_0x8ce2('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x8ce2('0xc'));var squel=require(_0x8ce2('0xd'));var crypto=require(_0x8ce2('0xe'));var jsforce=require(_0x8ce2('0xf'));var deskjs=require(_0x8ce2('0x10'));var toCsv=require(_0x8ce2('0xa'));var querystring=require('querystring');var Papa=require(_0x8ce2('0x11'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x8ce2('0x12'));var as=require(_0x8ce2('0x13'));var hardwareService=require(_0x8ce2('0x14'));var logger=require('../../config/logger')(_0x8ce2('0x15'));var utils=require(_0x8ce2('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x8ce2('0x17'));var db=require(_0x8ce2('0x18'))['db'];var extensions=require('../../components/extensions/rewrite');function respondWithStatusCode(_0x5b8f92,_0x522626){_0x522626=_0x522626||0xcc;return function(_0x29b113){if(_0x29b113){return _0x5b8f92['sendStatus'](_0x522626);}return _0x5b8f92[_0x8ce2('0x19')](_0x522626)[_0x8ce2('0x1a')]();};}function respondWithResult(_0x219e69,_0x5ce493){_0x5ce493=_0x5ce493||0xc8;return function(_0x3bb3ff){if(_0x3bb3ff){return _0x219e69[_0x8ce2('0x19')](_0x5ce493)[_0x8ce2('0x1b')](_0x3bb3ff);}};}function respondWithFilteredResult(_0x38443b,_0x1101b7){return function(_0x2a1c07){if(_0x2a1c07){var _0x5d59af=typeof _0x1101b7[_0x8ce2('0x1c')]===_0x8ce2('0x1d')&&typeof _0x1101b7[_0x8ce2('0x1e')]===_0x8ce2('0x1d');var _0x5f119a=_0x2a1c07[_0x8ce2('0x1f')];var _0x1a5021=_0x5d59af?0x0:_0x1101b7[_0x8ce2('0x1c')];var _0xff2d85=_0x5d59af?_0x2a1c07[_0x8ce2('0x1f')]:_0x1101b7['offset']+_0x1101b7[_0x8ce2('0x1e')];var _0xad6faf;if(_0xff2d85>=_0x5f119a){_0xff2d85=_0x5f119a;_0xad6faf=0xc8;}else{_0xad6faf=0xce;}_0x38443b[_0x8ce2('0x19')](_0xad6faf);return _0x38443b['set'](_0x8ce2('0x20'),_0x1a5021+'-'+_0xff2d85+'/'+_0x5f119a)['json'](_0x2a1c07);}return null;};}function patchUpdates(_0x254005){return function(_0x2342ce){try{jsonpatch['apply'](_0x2342ce,_0x254005,!![]);}catch(_0x17ebf3){return BPromise[_0x8ce2('0x21')](_0x17ebf3);}return _0x2342ce['save']();};}function saveUpdates(_0x1d4221,_0x106ae4){return function(_0x48550b){if(_0x48550b){return _0x48550b[_0x8ce2('0x22')](_0x1d4221)[_0x8ce2('0x23')](function(_0x50d4c7){return _0x50d4c7;});}return null;};}function removeEntity(_0xad9df7,_0x1104d7){return function(_0x3e82b4){if(_0x3e82b4){return _0x3e82b4['destroy']()['then'](function(){var _0xd1025c=_0x3e82b4[_0x8ce2('0x24')]({'plain':!![]});var _0x447919=_0x8ce2('0x25');return db[_0x8ce2('0x26')][_0x8ce2('0x27')]({'where':{'type':_0x447919,'resourceId':_0xd1025c['id']}})[_0x8ce2('0x23')](function(){return _0x3e82b4;});})['then'](function(){_0xad9df7[_0x8ce2('0x19')](0xcc)[_0x8ce2('0x1a')]();});}};}function handleEntityNotFound(_0x53c671,_0x4da53b){return function(_0xe81a66){if(!_0xe81a66){_0x53c671['sendStatus'](0x194);}return _0xe81a66;};}function handleError(_0x49ccb6,_0x1b9f3c){_0x1b9f3c=_0x1b9f3c||0x1f4;return function(_0x403270){logger[_0x8ce2('0x28')](_0x403270[_0x8ce2('0x29')]);if(_0x403270[_0x8ce2('0x2a')]){delete _0x403270[_0x8ce2('0x2a')];}_0x49ccb6[_0x8ce2('0x19')](_0x1b9f3c)[_0x8ce2('0x2b')](_0x403270);};}exports[_0x8ce2('0x2c')]=function(_0x4baf86,_0x5cb671){var _0x4ccab7={},_0x27093d={},_0x347283={'count':0x0,'rows':[]};var _0x26d1be=_[_0x8ce2('0x2d')](db[_0x8ce2('0x2e')][_0x8ce2('0x2f')],function(_0x1f1e21){return{'name':_0x1f1e21[_0x8ce2('0x30')],'type':_0x1f1e21['type'][_0x8ce2('0x31')]};});_0x27093d[_0x8ce2('0x32')]=_[_0x8ce2('0x2d')](_0x26d1be,_0x8ce2('0x2a'));_0x27093d[_0x8ce2('0x33')]=_['keys'](_0x4baf86['query']);_0x27093d[_0x8ce2('0x34')]=_['intersection'](_0x27093d[_0x8ce2('0x32')],_0x27093d[_0x8ce2('0x33')]);_0x4ccab7[_0x8ce2('0x35')]=_[_0x8ce2('0x36')](_0x27093d[_0x8ce2('0x32')],qs[_0x8ce2('0x37')](_0x4baf86['query'][_0x8ce2('0x37')]));_0x4ccab7[_0x8ce2('0x35')]=_0x4ccab7[_0x8ce2('0x35')][_0x8ce2('0x38')]?_0x4ccab7[_0x8ce2('0x35')]:_0x27093d['model'];if(!_0x4baf86[_0x8ce2('0x33')][_0x8ce2('0x39')](_0x8ce2('0x3a'))){_0x4ccab7['limit']=qs[_0x8ce2('0x1e')](_0x4baf86[_0x8ce2('0x33')][_0x8ce2('0x1e')]);_0x4ccab7['offset']=qs[_0x8ce2('0x1c')](_0x4baf86[_0x8ce2('0x33')][_0x8ce2('0x1c')]);}_0x4ccab7[_0x8ce2('0x3b')]=qs[_0x8ce2('0x3c')](_0x4baf86[_0x8ce2('0x33')][_0x8ce2('0x3c')]);_0x4ccab7[_0x8ce2('0x3d')]=qs[_0x8ce2('0x34')](_[_0x8ce2('0x3e')](_0x4baf86[_0x8ce2('0x33')],_0x27093d[_0x8ce2('0x34')]),_0x26d1be);if(_0x4baf86[_0x8ce2('0x33')]['filter']){_0x4ccab7['where']=_[_0x8ce2('0x3f')](_0x4ccab7[_0x8ce2('0x3d')],{'$or':_['map'](_0x26d1be,function(_0x19157a){if(_0x19157a['type']!=='VIRTUAL'){var _0x1f2c0c={};_0x1f2c0c[_0x19157a[_0x8ce2('0x2a')]]={'$like':'%'+_0x4baf86[_0x8ce2('0x33')]['filter']+'%'};return _0x1f2c0c;}})});}_0x4ccab7=_['merge']({},_0x4ccab7,_0x4baf86[_0x8ce2('0x40')]);var _0x37369e={'where':_0x4ccab7[_0x8ce2('0x3d')]};return db[_0x8ce2('0x2e')][_0x8ce2('0x1f')](_0x37369e)['then'](function(_0x214dfb){_0x347283['count']=_0x214dfb;if(_0x4baf86[_0x8ce2('0x33')][_0x8ce2('0x41')]){_0x4ccab7[_0x8ce2('0x42')]=[{'all':!![]}];}return db[_0x8ce2('0x2e')][_0x8ce2('0x43')](_0x4ccab7);})[_0x8ce2('0x23')](function(_0x2871d3){_0x347283[_0x8ce2('0x44')]=_0x2871d3;return _0x347283;})[_0x8ce2('0x23')](respondWithFilteredResult(_0x5cb671,_0x4ccab7))[_0x8ce2('0x45')](handleError(_0x5cb671,null));};exports['show']=function(_0x2199d8,_0x122504){var _0x5588c2={'raw':!![],'where':{'id':_0x2199d8[_0x8ce2('0x46')]['id']}},_0x46c0f0={};_0x46c0f0[_0x8ce2('0x32')]=_[_0x8ce2('0x47')](db['Interval'][_0x8ce2('0x2f')]);_0x46c0f0['query']=_[_0x8ce2('0x47')](_0x2199d8[_0x8ce2('0x33')]);_0x46c0f0[_0x8ce2('0x34')]=_[_0x8ce2('0x36')](_0x46c0f0[_0x8ce2('0x32')],_0x46c0f0[_0x8ce2('0x33')]);_0x5588c2['attributes']=_[_0x8ce2('0x36')](_0x46c0f0[_0x8ce2('0x32')],qs[_0x8ce2('0x37')](_0x2199d8['query'][_0x8ce2('0x37')]));_0x5588c2[_0x8ce2('0x35')]=_0x5588c2['attributes']['length']?_0x5588c2['attributes']:_0x46c0f0['model'];if(_0x2199d8[_0x8ce2('0x33')][_0x8ce2('0x41')]){_0x5588c2[_0x8ce2('0x42')]=[{'all':!![]}];}_0x5588c2=_[_0x8ce2('0x3f')]({},_0x5588c2,_0x2199d8['options']);return db[_0x8ce2('0x2e')][_0x8ce2('0x48')](_0x5588c2)['then'](handleEntityNotFound(_0x122504,null))[_0x8ce2('0x23')](respondWithResult(_0x122504,null))[_0x8ce2('0x45')](handleError(_0x122504,null));};exports[_0x8ce2('0x49')]=function(_0x654e15,_0x52388e){return db['Interval']['create'](_0x654e15['body'],{})[_0x8ce2('0x23')](function(_0x56900b){var _0x49b5d8=_0x654e15[_0x8ce2('0x4a')][_0x8ce2('0x24')]({'plain':!![]});if(!_0x49b5d8)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x49b5d8[_0x8ce2('0x4b')]===_0x8ce2('0x4a')){var _0xea2e82=_0x56900b[_0x8ce2('0x24')]({'plain':!![]});var _0x4f69d6=_0x8ce2('0x25');return db[_0x8ce2('0x4c')]['find']({'where':{'name':_0x4f69d6,'userProfileId':_0x49b5d8[_0x8ce2('0x4d')]},'raw':!![]})[_0x8ce2('0x23')](function(_0x317644){if(_0x317644&&_0x317644[_0x8ce2('0x4e')]===0x0){return db[_0x8ce2('0x26')]['create']({'name':_0xea2e82['name'],'resourceId':_0xea2e82['id'],'type':_0x317644['name'],'sectionId':_0x317644['id']},{})[_0x8ce2('0x23')](function(){return _0x56900b;});}else{return _0x56900b;}})['catch'](function(_0x3de73e){logger[_0x8ce2('0x28')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x3de73e);throw _0x3de73e;});}return _0x56900b;})[_0x8ce2('0x23')](respondWithResult(_0x52388e,0xc9))['catch'](handleError(_0x52388e,null));};exports[_0x8ce2('0x22')]=function(_0x1e46af,_0x5c709f){if(_0x1e46af[_0x8ce2('0x4f')]['id']){delete _0x1e46af[_0x8ce2('0x4f')]['id'];}return db[_0x8ce2('0x2e')][_0x8ce2('0x48')]({'where':{'id':_0x1e46af['params']['id']}})[_0x8ce2('0x23')](handleEntityNotFound(_0x5c709f,null))[_0x8ce2('0x23')](saveUpdates(_0x1e46af['body'],null))[_0x8ce2('0x23')](respondWithResult(_0x5c709f,null))[_0x8ce2('0x45')](handleError(_0x5c709f,null));};exports[_0x8ce2('0x27')]=function(_0x4db882,_0x50b58f){return db[_0x8ce2('0x2e')][_0x8ce2('0x48')]({'where':{'id':_0x4db882[_0x8ce2('0x46')]['id']}})[_0x8ce2('0x23')](handleEntityNotFound(_0x50b58f,null))[_0x8ce2('0x23')](removeEntity(_0x50b58f,null))[_0x8ce2('0x45')](handleError(_0x50b58f,null));};exports['addInterval']=function(_0x4b4eb0,_0x4d50cd,_0x2ade87){if(_0x4b4eb0[_0x8ce2('0x4f')]['id']){delete _0x4b4eb0[_0x8ce2('0x4f')]['id'];}return db[_0x8ce2('0x2e')][_0x8ce2('0x48')]({'where':{'id':_0x4b4eb0[_0x8ce2('0x46')]['id']}})[_0x8ce2('0x23')](handleEntityNotFound(_0x4d50cd,null))['then'](function(_0x1cda11){if(_0x1cda11){_0x4b4eb0[_0x8ce2('0x4f')][_0x8ce2('0x50')]=_0x1cda11['id'];return db[_0x8ce2('0x2e')][_0x8ce2('0x49')](_0x4b4eb0[_0x8ce2('0x4f')]);}})['then'](respondWithResult(_0x4d50cd,null))['catch'](handleError(_0x4d50cd,null));};exports[_0x8ce2('0x51')]=function(_0x277f0e,_0x72ce52,_0x320b99){var _0x45727e={};var _0x89987b={};var _0x2ca85f;var _0x486251;return db[_0x8ce2('0x2e')][_0x8ce2('0x52')]({'where':{'id':_0x277f0e[_0x8ce2('0x46')]['id']}})[_0x8ce2('0x23')](handleEntityNotFound(_0x72ce52,null))[_0x8ce2('0x23')](function(_0x93b942){if(_0x93b942){_0x2ca85f=_0x93b942;_0x89987b['model']=_[_0x8ce2('0x47')](db['Interval'][_0x8ce2('0x2f')]);_0x89987b['query']=_[_0x8ce2('0x47')](_0x277f0e[_0x8ce2('0x33')]);_0x89987b[_0x8ce2('0x34')]=_[_0x8ce2('0x36')](_0x89987b[_0x8ce2('0x32')],_0x89987b[_0x8ce2('0x33')]);_0x45727e[_0x8ce2('0x35')]=_[_0x8ce2('0x36')](_0x89987b[_0x8ce2('0x32')],qs['fields'](_0x277f0e[_0x8ce2('0x33')][_0x8ce2('0x37')]));_0x45727e[_0x8ce2('0x35')]=_0x45727e['attributes'][_0x8ce2('0x38')]?_0x45727e[_0x8ce2('0x35')]:_0x89987b[_0x8ce2('0x32')];_0x45727e[_0x8ce2('0x3b')]=qs[_0x8ce2('0x3c')](_0x277f0e[_0x8ce2('0x33')]['sort']);_0x45727e[_0x8ce2('0x3d')]=qs['filters'](_[_0x8ce2('0x3e')](_0x277f0e[_0x8ce2('0x33')],_0x89987b[_0x8ce2('0x34')]));if(_0x277f0e[_0x8ce2('0x33')]['filter']){_0x45727e[_0x8ce2('0x3d')]=_[_0x8ce2('0x3f')](_0x45727e[_0x8ce2('0x3d')],{'$or':_[_0x8ce2('0x2d')](_0x45727e['attributes'],function(_0x9e3543){var _0x2cc22a={};_0x2cc22a[_0x9e3543]={'$like':'%'+_0x277f0e[_0x8ce2('0x33')][_0x8ce2('0x53')]+'%'};return _0x2cc22a;})});}_0x45727e=_[_0x8ce2('0x3f')]({},_0x45727e,_0x277f0e['options']);return _0x2ca85f[_0x8ce2('0x51')](_0x45727e);}})[_0x8ce2('0x23')](function(_0x3821fe){if(_0x3821fe){_0x486251=_0x3821fe[_0x8ce2('0x38')];if(!_0x277f0e[_0x8ce2('0x33')][_0x8ce2('0x39')]('nolimit')){_0x45727e[_0x8ce2('0x1e')]=qs['limit'](_0x277f0e[_0x8ce2('0x33')][_0x8ce2('0x1e')]);_0x45727e[_0x8ce2('0x1c')]=qs['offset'](_0x277f0e[_0x8ce2('0x33')]['offset']);}return _0x2ca85f[_0x8ce2('0x51')](_0x45727e);}})[_0x8ce2('0x23')](function(_0x19715e){if(_0x19715e){return _0x19715e?{'count':_0x486251,'rows':_0x19715e}:null;}})[_0x8ce2('0x23')](respondWithResult(_0x72ce52,null))[_0x8ce2('0x45')](handleError(_0x72ce52,null));};exports[_0x8ce2('0x54')]=function(_0x2094dc,_0x1254e5,_0x1612db){return db[_0x8ce2('0x2e')][_0x8ce2('0x52')]({'where':{'id':_0x2094dc[_0x8ce2('0x46')]['id']}})[_0x8ce2('0x23')](handleEntityNotFound(_0x1254e5,null))[_0x8ce2('0x23')](function(_0xe1a13a){if(_0xe1a13a){return db[_0x8ce2('0x55')][_0x8ce2('0x56')](function(_0x50d5d6){return db[_0x8ce2('0x2e')]['destroy']({'where':{'IntervalId':_0x2094dc[_0x8ce2('0x46')]['id']},'transaction':_0x50d5d6})[_0x8ce2('0x23')](function(_0x38de58){var _0x3deff0=_[_0x8ce2('0x2d')](_0x2094dc[_0x8ce2('0x4f')],function(_0x10358e){delete _0x10358e['id'];_0x10358e[_0x8ce2('0x50')]=_0x2094dc[_0x8ce2('0x46')]['id'];return _0x10358e;});return db['Interval'][_0x8ce2('0x57')](_0x3deff0,{'transaction':_0x50d5d6});});})['then'](function(){return db['Interval']['findAll']({'where':{'IntervalId':_0x2094dc[_0x8ce2('0x46')]['id']}});});}})[_0x8ce2('0x23')](respondWithResult(_0x1254e5,null))[_0x8ce2('0x45')](handleError(_0x1254e5,null));};
\ No newline at end of file
+var _0x81e8=['desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','../../components/extensions/rewrite','status','end','json','offset','undefined','count','set','Content-Range','apply','save','update','then','destroy','get','Intervals','UserProfileResource','error','stack','name','index','map','rawAttributes','key','model','query','keys','intersection','attributes','fields','hasOwnProperty','nolimit','limit','order','sort','filters','pick','filter','merge','where','Interval','include','findAll','rows','catch','show','params','length','includeAll','options','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','addInterval','findOne','getIntervals','addIntervals','sequelize','IntervalId','bulkCreate','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','util','path','sox','ejs','fs-extra','squel','jsforce'];(function(_0x2effbb,_0x2a751b){var _0x414b54=function(_0x1e6753){while(--_0x1e6753){_0x2effbb['push'](_0x2effbb['shift']());}};_0x414b54(++_0x2a751b);}(_0x81e8,0xab));var _0x881e=function(_0x432a41,_0x562b12){_0x432a41=_0x432a41-0x0;var _0x52c5e8=_0x81e8[_0x432a41];return _0x52c5e8;};'use strict';var emlformat=require(_0x881e('0x0'));var rimraf=require(_0x881e('0x1'));var zipdir=require(_0x881e('0x2'));var jsonpatch=require(_0x881e('0x3'));var rp=require(_0x881e('0x4'));var moment=require(_0x881e('0x5'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x881e('0x6'));var path=require(_0x881e('0x7'));var sox=require(_0x881e('0x8'));var csv=require('to-csv');var ejs=require(_0x881e('0x9'));var fs=require('fs');var fs_extra=require(_0x881e('0xa'));var _=require('lodash');var squel=require(_0x881e('0xb'));var crypto=require('crypto');var jsforce=require(_0x881e('0xc'));var deskjs=require(_0x881e('0xd'));var toCsv=require(_0x881e('0xe'));var querystring=require(_0x881e('0xf'));var Papa=require(_0x881e('0x10'));var Redis=require(_0x881e('0x11'));var authService=require(_0x881e('0x12'));var qs=require(_0x881e('0x13'));var as=require(_0x881e('0x14'));var hardwareService=require(_0x881e('0x15'));var logger=require(_0x881e('0x16'))('api');var utils=require(_0x881e('0x17'));var config=require(_0x881e('0x18'));var licenseUtil=require('../../config/license/util');var db=require(_0x881e('0x19'))['db'];var extensions=require(_0x881e('0x1a'));function respondWithStatusCode(_0x1d1924,_0x4aa139){_0x4aa139=_0x4aa139||0xcc;return function(_0x19ddd4){if(_0x19ddd4){return _0x1d1924['sendStatus'](_0x4aa139);}return _0x1d1924[_0x881e('0x1b')](_0x4aa139)[_0x881e('0x1c')]();};}function respondWithResult(_0xc7dd9,_0x18b31e){_0x18b31e=_0x18b31e||0xc8;return function(_0x409e86){if(_0x409e86){return _0xc7dd9[_0x881e('0x1b')](_0x18b31e)[_0x881e('0x1d')](_0x409e86);}};}function respondWithFilteredResult(_0x5d0ba2,_0xfa0231){return function(_0x604290){if(_0x604290){var _0x25194d=typeof _0xfa0231[_0x881e('0x1e')]===_0x881e('0x1f')&&typeof _0xfa0231['limit']===_0x881e('0x1f');var _0x5d677b=_0x604290[_0x881e('0x20')];var _0x2326e9=_0x25194d?0x0:_0xfa0231['offset'];var _0xa06a33=_0x25194d?_0x604290[_0x881e('0x20')]:_0xfa0231[_0x881e('0x1e')]+_0xfa0231['limit'];var _0x55cb44;if(_0xa06a33>=_0x5d677b){_0xa06a33=_0x5d677b;_0x55cb44=0xc8;}else{_0x55cb44=0xce;}_0x5d0ba2[_0x881e('0x1b')](_0x55cb44);return _0x5d0ba2[_0x881e('0x21')](_0x881e('0x22'),_0x2326e9+'-'+_0xa06a33+'/'+_0x5d677b)[_0x881e('0x1d')](_0x604290);}return null;};}function patchUpdates(_0x2dce34){return function(_0x2a5540){try{jsonpatch[_0x881e('0x23')](_0x2a5540,_0x2dce34,!![]);}catch(_0xa0e9db){return BPromise['reject'](_0xa0e9db);}return _0x2a5540[_0x881e('0x24')]();};}function saveUpdates(_0x13bb6e,_0x5b04df){return function(_0x1f465c){if(_0x1f465c){return _0x1f465c[_0x881e('0x25')](_0x13bb6e)[_0x881e('0x26')](function(_0x59e9e6){return _0x59e9e6;});}return null;};}function removeEntity(_0x1fbb48,_0x3b9673){return function(_0x4729a4){if(_0x4729a4){return _0x4729a4[_0x881e('0x27')]()[_0x881e('0x26')](function(){var _0x348ed4=_0x4729a4[_0x881e('0x28')]({'plain':!![]});var _0x241c85=_0x881e('0x29');return db[_0x881e('0x2a')]['destroy']({'where':{'type':_0x241c85,'resourceId':_0x348ed4['id']}})[_0x881e('0x26')](function(){return _0x4729a4;});})['then'](function(){_0x1fbb48['status'](0xcc)[_0x881e('0x1c')]();});}};}function handleEntityNotFound(_0x1f5eca,_0x143dab){return function(_0x3463af){if(!_0x3463af){_0x1f5eca['sendStatus'](0x194);}return _0x3463af;};}function handleError(_0x9b0390,_0x21ebae){_0x21ebae=_0x21ebae||0x1f4;return function(_0x4dfe9f){logger[_0x881e('0x2b')](_0x4dfe9f[_0x881e('0x2c')]);if(_0x4dfe9f[_0x881e('0x2d')]){delete _0x4dfe9f[_0x881e('0x2d')];}_0x9b0390[_0x881e('0x1b')](_0x21ebae)['send'](_0x4dfe9f);};}exports[_0x881e('0x2e')]=function(_0x1a5457,_0x455073){var _0x48640c={},_0x1fc8f9={},_0x5bd6c4={'count':0x0,'rows':[]};var _0x1063c9=_[_0x881e('0x2f')](db['Interval'][_0x881e('0x30')],function(_0x50c403){return{'name':_0x50c403['fieldName'],'type':_0x50c403['type'][_0x881e('0x31')]};});_0x1fc8f9[_0x881e('0x32')]=_[_0x881e('0x2f')](_0x1063c9,_0x881e('0x2d'));_0x1fc8f9[_0x881e('0x33')]=_[_0x881e('0x34')](_0x1a5457[_0x881e('0x33')]);_0x1fc8f9['filters']=_[_0x881e('0x35')](_0x1fc8f9[_0x881e('0x32')],_0x1fc8f9['query']);_0x48640c[_0x881e('0x36')]=_[_0x881e('0x35')](_0x1fc8f9[_0x881e('0x32')],qs[_0x881e('0x37')](_0x1a5457[_0x881e('0x33')][_0x881e('0x37')]));_0x48640c[_0x881e('0x36')]=_0x48640c[_0x881e('0x36')]['length']?_0x48640c['attributes']:_0x1fc8f9['model'];if(!_0x1a5457[_0x881e('0x33')][_0x881e('0x38')](_0x881e('0x39'))){_0x48640c['limit']=qs[_0x881e('0x3a')](_0x1a5457['query'][_0x881e('0x3a')]);_0x48640c[_0x881e('0x1e')]=qs[_0x881e('0x1e')](_0x1a5457[_0x881e('0x33')]['offset']);}_0x48640c[_0x881e('0x3b')]=qs[_0x881e('0x3c')](_0x1a5457[_0x881e('0x33')][_0x881e('0x3c')]);_0x48640c['where']=qs[_0x881e('0x3d')](_[_0x881e('0x3e')](_0x1a5457[_0x881e('0x33')],_0x1fc8f9['filters']),_0x1063c9);if(_0x1a5457[_0x881e('0x33')][_0x881e('0x3f')]){_0x48640c['where']=_[_0x881e('0x40')](_0x48640c[_0x881e('0x41')],{'$or':_[_0x881e('0x2f')](_0x1063c9,function(_0x33b7a3){if(_0x33b7a3['type']!=='VIRTUAL'){var _0x55392b={};_0x55392b[_0x33b7a3[_0x881e('0x2d')]]={'$like':'%'+_0x1a5457[_0x881e('0x33')][_0x881e('0x3f')]+'%'};return _0x55392b;}})});}_0x48640c=_[_0x881e('0x40')]({},_0x48640c,_0x1a5457['options']);var _0xa3710c={'where':_0x48640c[_0x881e('0x41')]};return db[_0x881e('0x42')]['count'](_0xa3710c)[_0x881e('0x26')](function(_0x427147){_0x5bd6c4['count']=_0x427147;if(_0x1a5457[_0x881e('0x33')]['includeAll']){_0x48640c[_0x881e('0x43')]=[{'all':!![]}];}return db['Interval'][_0x881e('0x44')](_0x48640c);})['then'](function(_0x4ec486){_0x5bd6c4[_0x881e('0x45')]=_0x4ec486;return _0x5bd6c4;})[_0x881e('0x26')](respondWithFilteredResult(_0x455073,_0x48640c))[_0x881e('0x46')](handleError(_0x455073,null));};exports[_0x881e('0x47')]=function(_0x2832b6,_0xe3ac73){var _0x36ae65={'raw':!![],'where':{'id':_0x2832b6[_0x881e('0x48')]['id']}},_0x292cbd={};_0x292cbd[_0x881e('0x32')]=_[_0x881e('0x34')](db[_0x881e('0x42')][_0x881e('0x30')]);_0x292cbd[_0x881e('0x33')]=_[_0x881e('0x34')](_0x2832b6['query']);_0x292cbd[_0x881e('0x3d')]=_[_0x881e('0x35')](_0x292cbd[_0x881e('0x32')],_0x292cbd['query']);_0x36ae65[_0x881e('0x36')]=_[_0x881e('0x35')](_0x292cbd[_0x881e('0x32')],qs[_0x881e('0x37')](_0x2832b6[_0x881e('0x33')]['fields']));_0x36ae65[_0x881e('0x36')]=_0x36ae65[_0x881e('0x36')][_0x881e('0x49')]?_0x36ae65[_0x881e('0x36')]:_0x292cbd[_0x881e('0x32')];if(_0x2832b6[_0x881e('0x33')][_0x881e('0x4a')]){_0x36ae65[_0x881e('0x43')]=[{'all':!![]}];}_0x36ae65=_[_0x881e('0x40')]({},_0x36ae65,_0x2832b6[_0x881e('0x4b')]);return db[_0x881e('0x42')][_0x881e('0x4c')](_0x36ae65)[_0x881e('0x26')](handleEntityNotFound(_0xe3ac73,null))['then'](respondWithResult(_0xe3ac73,null))['catch'](handleError(_0xe3ac73,null));};exports['create']=function(_0x1df077,_0x1d103e){return db[_0x881e('0x42')][_0x881e('0x4d')](_0x1df077[_0x881e('0x4e')],{})[_0x881e('0x26')](function(_0x3e6dde){var _0x1acceb=_0x1df077[_0x881e('0x4f')][_0x881e('0x28')]({'plain':!![]});if(!_0x1acceb)throw new Error(_0x881e('0x50'));if(_0x1acceb['role']===_0x881e('0x4f')){var _0x5574d6=_0x3e6dde[_0x881e('0x28')]({'plain':!![]});var _0x105d34=_0x881e('0x29');return db[_0x881e('0x51')][_0x881e('0x4c')]({'where':{'name':_0x105d34,'userProfileId':_0x1acceb[_0x881e('0x52')]},'raw':!![]})[_0x881e('0x26')](function(_0x9b6598){if(_0x9b6598&&_0x9b6598[_0x881e('0x53')]===0x0){return db[_0x881e('0x2a')][_0x881e('0x4d')]({'name':_0x5574d6[_0x881e('0x2d')],'resourceId':_0x5574d6['id'],'type':_0x9b6598[_0x881e('0x2d')],'sectionId':_0x9b6598['id']},{})[_0x881e('0x26')](function(){return _0x3e6dde;});}else{return _0x3e6dde;}})[_0x881e('0x46')](function(_0x5d848d){logger['error'](_0x881e('0x54'),_0x5d848d);throw _0x5d848d;});}return _0x3e6dde;})[_0x881e('0x26')](respondWithResult(_0x1d103e,0xc9))[_0x881e('0x46')](handleError(_0x1d103e,null));};exports['update']=function(_0x117ae6,_0x1bdf41){if(_0x117ae6[_0x881e('0x4e')]['id']){delete _0x117ae6[_0x881e('0x4e')]['id'];}return db['Interval']['find']({'where':{'id':_0x117ae6['params']['id']}})[_0x881e('0x26')](handleEntityNotFound(_0x1bdf41,null))['then'](saveUpdates(_0x117ae6[_0x881e('0x4e')],null))[_0x881e('0x26')](respondWithResult(_0x1bdf41,null))[_0x881e('0x46')](handleError(_0x1bdf41,null));};exports[_0x881e('0x27')]=function(_0x39a049,_0x1e29c6){return db[_0x881e('0x42')][_0x881e('0x4c')]({'where':{'id':_0x39a049[_0x881e('0x48')]['id']}})[_0x881e('0x26')](handleEntityNotFound(_0x1e29c6,null))[_0x881e('0x26')](removeEntity(_0x1e29c6,null))[_0x881e('0x46')](handleError(_0x1e29c6,null));};exports[_0x881e('0x55')]=function(_0x46d007,_0x2376e2,_0x467951){if(_0x46d007[_0x881e('0x4e')]['id']){delete _0x46d007[_0x881e('0x4e')]['id'];}return db[_0x881e('0x42')]['find']({'where':{'id':_0x46d007[_0x881e('0x48')]['id']}})[_0x881e('0x26')](handleEntityNotFound(_0x2376e2,null))[_0x881e('0x26')](function(_0x5a25aa){if(_0x5a25aa){_0x46d007['body']['IntervalId']=_0x5a25aa['id'];return db['Interval']['create'](_0x46d007[_0x881e('0x4e')]);}})[_0x881e('0x26')](respondWithResult(_0x2376e2,null))[_0x881e('0x46')](handleError(_0x2376e2,null));};exports['getIntervals']=function(_0x2544af,_0x1947bf,_0xd63e4f){var _0x3969db={};var _0x3188ef={};var _0x47f454;var _0x4f3f5f;return db[_0x881e('0x42')][_0x881e('0x56')]({'where':{'id':_0x2544af['params']['id']}})['then'](handleEntityNotFound(_0x1947bf,null))[_0x881e('0x26')](function(_0x5b6a4f){if(_0x5b6a4f){_0x47f454=_0x5b6a4f;_0x3188ef['model']=_[_0x881e('0x34')](db['Interval'][_0x881e('0x30')]);_0x3188ef['query']=_[_0x881e('0x34')](_0x2544af[_0x881e('0x33')]);_0x3188ef[_0x881e('0x3d')]=_[_0x881e('0x35')](_0x3188ef[_0x881e('0x32')],_0x3188ef[_0x881e('0x33')]);_0x3969db[_0x881e('0x36')]=_['intersection'](_0x3188ef['model'],qs[_0x881e('0x37')](_0x2544af['query']['fields']));_0x3969db[_0x881e('0x36')]=_0x3969db['attributes'][_0x881e('0x49')]?_0x3969db[_0x881e('0x36')]:_0x3188ef[_0x881e('0x32')];_0x3969db[_0x881e('0x3b')]=qs[_0x881e('0x3c')](_0x2544af[_0x881e('0x33')]['sort']);_0x3969db[_0x881e('0x41')]=qs[_0x881e('0x3d')](_['pick'](_0x2544af[_0x881e('0x33')],_0x3188ef[_0x881e('0x3d')]));if(_0x2544af[_0x881e('0x33')][_0x881e('0x3f')]){_0x3969db[_0x881e('0x41')]=_[_0x881e('0x40')](_0x3969db[_0x881e('0x41')],{'$or':_[_0x881e('0x2f')](_0x3969db['attributes'],function(_0x2f4b77){var _0x57bc8c={};_0x57bc8c[_0x2f4b77]={'$like':'%'+_0x2544af['query'][_0x881e('0x3f')]+'%'};return _0x57bc8c;})});}_0x3969db=_[_0x881e('0x40')]({},_0x3969db,_0x2544af[_0x881e('0x4b')]);return _0x47f454['getIntervals'](_0x3969db);}})['then'](function(_0x3d9694){if(_0x3d9694){_0x4f3f5f=_0x3d9694[_0x881e('0x49')];if(!_0x2544af['query'][_0x881e('0x38')](_0x881e('0x39'))){_0x3969db[_0x881e('0x3a')]=qs[_0x881e('0x3a')](_0x2544af[_0x881e('0x33')][_0x881e('0x3a')]);_0x3969db[_0x881e('0x1e')]=qs[_0x881e('0x1e')](_0x2544af['query'][_0x881e('0x1e')]);}return _0x47f454[_0x881e('0x57')](_0x3969db);}})[_0x881e('0x26')](function(_0x412203){if(_0x412203){return _0x412203?{'count':_0x4f3f5f,'rows':_0x412203}:null;}})[_0x881e('0x26')](respondWithResult(_0x1947bf,null))[_0x881e('0x46')](handleError(_0x1947bf,null));};exports[_0x881e('0x58')]=function(_0x20d38b,_0x1df1de,_0x4ea848){return db[_0x881e('0x42')][_0x881e('0x56')]({'where':{'id':_0x20d38b['params']['id']}})[_0x881e('0x26')](handleEntityNotFound(_0x1df1de,null))['then'](function(_0x7fc0b1){if(_0x7fc0b1){return db[_0x881e('0x59')]['transaction'](function(_0x2a23a3){return db['Interval']['destroy']({'where':{'IntervalId':_0x20d38b[_0x881e('0x48')]['id']},'transaction':_0x2a23a3})['then'](function(_0x4dfbe2){var _0x1f613d=_['map'](_0x20d38b['body'],function(_0x102eca){delete _0x102eca['id'];_0x102eca[_0x881e('0x5a')]=_0x20d38b[_0x881e('0x48')]['id'];return _0x102eca;});return db[_0x881e('0x42')][_0x881e('0x5b')](_0x1f613d,{'transaction':_0x2a23a3});});})[_0x881e('0x26')](function(){return db[_0x881e('0x42')][_0x881e('0x44')]({'where':{'IntervalId':_0x20d38b[_0x881e('0x48')]['id']}});});}})[_0x881e('0x26')](respondWithResult(_0x1df1de,null))['catch'](handleError(_0x1df1de,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf524=['lodash','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','../../components/extensions/rewrite','exports','define','Interval','tools_intervals','rewrite'];(function(_0x48f8c4,_0x4e3dba){var _0x118849=function(_0x4f9838){while(--_0x4f9838){_0x48f8c4['push'](_0x48f8c4['shift']());}};_0x118849(++_0x4e3dba);}(_0xf524,0x14a));var _0x4f52=function(_0x2638d0,_0x52f653){_0x2638d0=_0x2638d0-0x0;var _0x411a60=_0xf524[_0x2638d0];return _0x411a60;};'use strict';var _=require(_0x4f52('0x0'));var util=require('util');var logger=require(_0x4f52('0x1'))(_0x4f52('0x2'));var moment=require(_0x4f52('0x3'));var BPromise=require(_0x4f52('0x4'));var rp=require(_0x4f52('0x5'));var fs=require('fs');var path=require(_0x4f52('0x6'));var rimraf=require(_0x4f52('0x7'));var config=require(_0x4f52('0x8'));var attributes=require('./interval.attributes');var extensions=require(_0x4f52('0x9'));module[_0x4f52('0xa')]=function(_0x45fbbd,_0x2df98a){return _0x45fbbd[_0x4f52('0xb')](_0x4f52('0xc'),attributes,{'tableName':_0x4f52('0xd'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0x27aa96,_0x430790){extensions[_0x4f52('0xe')](_0x45fbbd,_0x27aa96);},'afterBulkCreate':function(_0x1476a4,_0x17b9fd,_0x4ecc24){_0x4ecc24();extensions[_0x4f52('0xe')](_0x45fbbd,_0x1476a4[0x0]);},'afterUpdate':function(_0x55f3f5,_0x568433){extensions[_0x4f52('0xe')](_0x45fbbd,_0x55f3f5);},'afterDestroy':function(_0xd6acb3,_0x326918){extensions['rewrite'](_0x45fbbd,_0xd6acb3);}}});};
\ No newline at end of file
+var _0x7ee0=['exports','define','Interval','tools_intervals','rewrite','util','api','moment','bluebird','request-promise','path','rimraf','../../config/environment'];(function(_0x8d631,_0x20bdb5){var _0x53647f=function(_0x1c065e){while(--_0x1c065e){_0x8d631['push'](_0x8d631['shift']());}};_0x53647f(++_0x20bdb5);}(_0x7ee0,0x123));var _0x07ee=function(_0x472b3f,_0x560d13){_0x472b3f=_0x472b3f-0x0;var _0x20abe1=_0x7ee0[_0x472b3f];return _0x20abe1;};'use strict';var _=require('lodash');var util=require(_0x07ee('0x0'));var logger=require('../../config/logger')(_0x07ee('0x1'));var moment=require(_0x07ee('0x2'));var BPromise=require(_0x07ee('0x3'));var rp=require(_0x07ee('0x4'));var fs=require('fs');var path=require(_0x07ee('0x5'));var rimraf=require(_0x07ee('0x6'));var config=require(_0x07ee('0x7'));var attributes=require('./interval.attributes');var extensions=require('../../components/extensions/rewrite');module[_0x07ee('0x8')]=function(_0x4c4aca,_0xdbdfb5){return _0x4c4aca[_0x07ee('0x9')](_0x07ee('0xa'),attributes,{'tableName':_0x07ee('0xb'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0x5add8d,_0x4388d6){extensions[_0x07ee('0xc')](_0x4c4aca,_0x5add8d);},'afterBulkCreate':function(_0x4bbf4b,_0x88029f,_0x11201a){_0x11201a();extensions[_0x07ee('0xc')](_0x4c4aca,_0x4bbf4b[0x0]);},'afterUpdate':function(_0x538ff4,_0x27d426){extensions['rewrite'](_0x4c4aca,_0x538ff4);},'afterDestroy':function(_0x10271d,_0x2a0998){extensions[_0x07ee('0xc')](_0x4c4aca,_0x10271d);}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['code','error','message','result','catch','Interval','findAll','options','raw','where','attributes','include','map','model','GetInterval','stringify','ShowInterval','find','then','lodash','util','moment','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','info','Interval,\x20%s,\x20%s','request\x20sent','debug','Interval,\x20%s,\x20%s,\x20%s'];(function(_0xd0b415,_0x149675){var _0x2bdf2c=function(_0x59fbfa){while(--_0x59fbfa){_0xd0b415['push'](_0xd0b415['shift']());}};_0x2bdf2c(++_0x149675);}(_0xa9e0,0x123));var _0x0a9e=function(_0x298ed3,_0x4ab5e1){_0x298ed3=_0x298ed3-0x0;var _0x5aad28=_0xa9e0[_0x298ed3];return _0x5aad28;};'use strict';var _=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var moment=require(_0x0a9e('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x0a9e('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x0a9e('0x4'));var logger=require(_0x0a9e('0x5'))(_0x0a9e('0x6'));var config=require(_0x0a9e('0x7'));var jayson=require(_0x0a9e('0x8'));var client=jayson['client'][_0x0a9e('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x441e3a,_0x2cc193,_0x5f41ea){return new BPromise(function(_0x503809,_0xe42b77){return client['request'](_0x441e3a,_0x5f41ea)['then'](function(_0x39753a){logger[_0x0a9e('0xa')](_0x0a9e('0xb'),_0x2cc193,_0x0a9e('0xc'));logger[_0x0a9e('0xd')](_0x0a9e('0xe'),_0x2cc193,'request\x20sent',JSON['stringify'](_0x39753a));if(_0x39753a['error']){if(_0x39753a['error'][_0x0a9e('0xf')]===0x1f4){logger[_0x0a9e('0x10')](_0x0a9e('0xb'),_0x2cc193,_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);return _0xe42b77(_0x39753a[_0x0a9e('0x10')]['message']);}logger[_0x0a9e('0x10')](_0x0a9e('0xb'),_0x2cc193,_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);return _0x503809(_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);}else{logger['info'](_0x0a9e('0xb'),_0x2cc193,'request\x20sent');_0x503809(_0x39753a[_0x0a9e('0x12')]['message']);}})[_0x0a9e('0x13')](function(_0x12066b){logger['error'](_0x0a9e('0xb'),_0x2cc193,_0x12066b);_0xe42b77(_0x12066b);});});}exports['GetInterval']=function(_0x459eb1){var _0x478723=this;return new Promise(function(_0x106033,_0x205fd6){return db[_0x0a9e('0x14')][_0x0a9e('0x15')]({'raw':_0x459eb1[_0x0a9e('0x16')]?_0x459eb1[_0x0a9e('0x16')][_0x0a9e('0x17')]===undefined?!![]:![]:!![],'where':_0x459eb1[_0x0a9e('0x16')]?_0x459eb1[_0x0a9e('0x16')][_0x0a9e('0x18')]||null:null,'attributes':_0x459eb1['options']?_0x459eb1[_0x0a9e('0x16')][_0x0a9e('0x19')]||null:null,'limit':_0x459eb1['options']?_0x459eb1[_0x0a9e('0x16')]['limit']||null:null,'include':_0x459eb1['options']?_0x459eb1[_0x0a9e('0x16')][_0x0a9e('0x1a')]?_[_0x0a9e('0x1b')](_0x459eb1[_0x0a9e('0x16')]['include'],function(_0xfb6e48){return{'model':db[_0xfb6e48[_0x0a9e('0x1c')]],'as':_0xfb6e48['as'],'attributes':_0xfb6e48[_0x0a9e('0x19')],'include':_0xfb6e48[_0x0a9e('0x1a')]?_[_0x0a9e('0x1b')](_0xfb6e48[_0x0a9e('0x1a')],function(_0x16b1ca){return{'model':db[_0x16b1ca['model']],'as':_0x16b1ca['as'],'attributes':_0x16b1ca['attributes'],'include':_0x16b1ca[_0x0a9e('0x1a')]?_[_0x0a9e('0x1b')](_0x16b1ca[_0x0a9e('0x1a')],function(_0x33161b){return{'model':db[_0x33161b['model']],'as':_0x33161b['as'],'attributes':_0x33161b[_0x0a9e('0x19')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x45a1e7){logger['info'](_0x0a9e('0x1d'),_0x459eb1);logger[_0x0a9e('0xd')](_0x0a9e('0x1d'),_0x459eb1,JSON[_0x0a9e('0x1e')](_0x45a1e7));_0x106033(_0x45a1e7);})[_0x0a9e('0x13')](function(_0x1538a4){logger[_0x0a9e('0x10')](_0x0a9e('0x1d'),_0x1538a4['message'],_0x459eb1);_0x205fd6(_0x478723[_0x0a9e('0x10')](0x1f4,_0x1538a4[_0x0a9e('0x11')]));});});};exports[_0x0a9e('0x1f')]=function(_0x2ec755){var _0x5c877d=this;return new Promise(function(_0x15b200,_0x40e7a3){return db[_0x0a9e('0x14')][_0x0a9e('0x20')]({'raw':_0x2ec755[_0x0a9e('0x16')]?_0x2ec755[_0x0a9e('0x16')][_0x0a9e('0x17')]===undefined?!![]:![]:!![],'where':_0x2ec755[_0x0a9e('0x16')]?_0x2ec755[_0x0a9e('0x16')]['where']||null:null,'attributes':_0x2ec755[_0x0a9e('0x16')]?_0x2ec755['options'][_0x0a9e('0x19')]||null:null,'include':_0x2ec755[_0x0a9e('0x16')]?_0x2ec755[_0x0a9e('0x16')][_0x0a9e('0x1a')]?_[_0x0a9e('0x1b')](_0x2ec755['options'][_0x0a9e('0x1a')],function(_0x46f0a5){return{'model':db[_0x46f0a5[_0x0a9e('0x1c')]],'as':_0x46f0a5['as'],'attributes':_0x46f0a5[_0x0a9e('0x19')],'include':_0x46f0a5[_0x0a9e('0x1a')]?_[_0x0a9e('0x1b')](_0x46f0a5[_0x0a9e('0x1a')],function(_0x39e565){return{'model':db[_0x39e565['model']],'as':_0x39e565['as'],'attributes':_0x39e565[_0x0a9e('0x19')],'include':_0x39e565['include']?_[_0x0a9e('0x1b')](_0x39e565[_0x0a9e('0x1a')],function(_0x2b7e7f){return{'model':db[_0x2b7e7f[_0x0a9e('0x1c')]],'as':_0x2b7e7f['as'],'attributes':_0x2b7e7f['attributes']};}):[]};}):[]};}):[]:[]})[_0x0a9e('0x21')](function(_0xd1836d){logger[_0x0a9e('0xa')](_0x0a9e('0x1f'),_0x2ec755);logger['debug']('ShowInterval',_0x2ec755,JSON[_0x0a9e('0x1e')](_0xd1836d));_0x15b200(_0xd1836d);})['catch'](function(_0x24936a){logger[_0x0a9e('0x10')](_0x0a9e('0x1f'),_0x24936a[_0x0a9e('0x11')],_0x2ec755);_0x40e7a3(_0x5c877d['error'](0x1f4,_0x24936a[_0x0a9e('0x11')]));});});};
\ No newline at end of file
+var _0xa9e0=['code','error','message','result','catch','Interval','findAll','options','raw','where','attributes','include','map','model','GetInterval','stringify','ShowInterval','find','then','lodash','util','moment','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','info','Interval,\x20%s,\x20%s','request\x20sent','debug','Interval,\x20%s,\x20%s,\x20%s'];(function(_0x30a31e,_0x31f766){var _0x170879=function(_0x313ee7){while(--_0x313ee7){_0x30a31e['push'](_0x30a31e['shift']());}};_0x170879(++_0x31f766);}(_0xa9e0,0x123));var _0x0a9e=function(_0x40ac5e,_0x2de228){_0x40ac5e=_0x40ac5e-0x0;var _0x2839d6=_0xa9e0[_0x40ac5e];return _0x2839d6;};'use strict';var _=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var moment=require(_0x0a9e('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x0a9e('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x0a9e('0x4'));var logger=require(_0x0a9e('0x5'))(_0x0a9e('0x6'));var config=require(_0x0a9e('0x7'));var jayson=require(_0x0a9e('0x8'));var client=jayson['client'][_0x0a9e('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x441e3a,_0x2cc193,_0x5f41ea){return new BPromise(function(_0x503809,_0xe42b77){return client['request'](_0x441e3a,_0x5f41ea)['then'](function(_0x39753a){logger[_0x0a9e('0xa')](_0x0a9e('0xb'),_0x2cc193,_0x0a9e('0xc'));logger[_0x0a9e('0xd')](_0x0a9e('0xe'),_0x2cc193,'request\x20sent',JSON['stringify'](_0x39753a));if(_0x39753a['error']){if(_0x39753a['error'][_0x0a9e('0xf')]===0x1f4){logger[_0x0a9e('0x10')](_0x0a9e('0xb'),_0x2cc193,_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);return _0xe42b77(_0x39753a[_0x0a9e('0x10')]['message']);}logger[_0x0a9e('0x10')](_0x0a9e('0xb'),_0x2cc193,_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);return _0x503809(_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);}else{logger['info'](_0x0a9e('0xb'),_0x2cc193,'request\x20sent');_0x503809(_0x39753a[_0x0a9e('0x12')]['message']);}})[_0x0a9e('0x13')](function(_0x12066b){logger['error'](_0x0a9e('0xb'),_0x2cc193,_0x12066b);_0xe42b77(_0x12066b);});});}exports['GetInterval']=function(_0x459eb1){var _0x478723=this;return new Promise(function(_0x106033,_0x205fd6){return db[_0x0a9e('0x14')][_0x0a9e('0x15')]({'raw':_0x459eb1[_0x0a9e('0x16')]?_0x459eb1[_0x0a9e('0x16')][_0x0a9e('0x17')]===undefined?!![]:![]:!![],'where':_0x459eb1[_0x0a9e('0x16')]?_0x459eb1[_0x0a9e('0x16')][_0x0a9e('0x18')]||null:null,'attributes':_0x459eb1['options']?_0x459eb1[_0x0a9e('0x16')][_0x0a9e('0x19')]||null:null,'limit':_0x459eb1['options']?_0x459eb1[_0x0a9e('0x16')]['limit']||null:null,'include':_0x459eb1['options']?_0x459eb1[_0x0a9e('0x16')][_0x0a9e('0x1a')]?_[_0x0a9e('0x1b')](_0x459eb1[_0x0a9e('0x16')]['include'],function(_0xfb6e48){return{'model':db[_0xfb6e48[_0x0a9e('0x1c')]],'as':_0xfb6e48['as'],'attributes':_0xfb6e48[_0x0a9e('0x19')],'include':_0xfb6e48[_0x0a9e('0x1a')]?_[_0x0a9e('0x1b')](_0xfb6e48[_0x0a9e('0x1a')],function(_0x16b1ca){return{'model':db[_0x16b1ca['model']],'as':_0x16b1ca['as'],'attributes':_0x16b1ca['attributes'],'include':_0x16b1ca[_0x0a9e('0x1a')]?_[_0x0a9e('0x1b')](_0x16b1ca[_0x0a9e('0x1a')],function(_0x33161b){return{'model':db[_0x33161b['model']],'as':_0x33161b['as'],'attributes':_0x33161b[_0x0a9e('0x19')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x45a1e7){logger['info'](_0x0a9e('0x1d'),_0x459eb1);logger[_0x0a9e('0xd')](_0x0a9e('0x1d'),_0x459eb1,JSON[_0x0a9e('0x1e')](_0x45a1e7));_0x106033(_0x45a1e7);})[_0x0a9e('0x13')](function(_0x1538a4){logger[_0x0a9e('0x10')](_0x0a9e('0x1d'),_0x1538a4['message'],_0x459eb1);_0x205fd6(_0x478723[_0x0a9e('0x10')](0x1f4,_0x1538a4[_0x0a9e('0x11')]));});});};exports[_0x0a9e('0x1f')]=function(_0x2ec755){var _0x5c877d=this;return new Promise(function(_0x15b200,_0x40e7a3){return db[_0x0a9e('0x14')][_0x0a9e('0x20')]({'raw':_0x2ec755[_0x0a9e('0x16')]?_0x2ec755[_0x0a9e('0x16')][_0x0a9e('0x17')]===undefined?!![]:![]:!![],'where':_0x2ec755[_0x0a9e('0x16')]?_0x2ec755[_0x0a9e('0x16')]['where']||null:null,'attributes':_0x2ec755[_0x0a9e('0x16')]?_0x2ec755['options'][_0x0a9e('0x19')]||null:null,'include':_0x2ec755[_0x0a9e('0x16')]?_0x2ec755[_0x0a9e('0x16')][_0x0a9e('0x1a')]?_[_0x0a9e('0x1b')](_0x2ec755['options'][_0x0a9e('0x1a')],function(_0x46f0a5){return{'model':db[_0x46f0a5[_0x0a9e('0x1c')]],'as':_0x46f0a5['as'],'attributes':_0x46f0a5[_0x0a9e('0x19')],'include':_0x46f0a5[_0x0a9e('0x1a')]?_[_0x0a9e('0x1b')](_0x46f0a5[_0x0a9e('0x1a')],function(_0x39e565){return{'model':db[_0x39e565['model']],'as':_0x39e565['as'],'attributes':_0x39e565[_0x0a9e('0x19')],'include':_0x39e565['include']?_[_0x0a9e('0x1b')](_0x39e565[_0x0a9e('0x1a')],function(_0x2b7e7f){return{'model':db[_0x2b7e7f[_0x0a9e('0x1c')]],'as':_0x2b7e7f['as'],'attributes':_0x2b7e7f['attributes']};}):[]};}):[]};}):[]:[]})[_0x0a9e('0x21')](function(_0xd1836d){logger[_0x0a9e('0xa')](_0x0a9e('0x1f'),_0x2ec755);logger['debug']('ShowInterval',_0x2ec755,JSON[_0x0a9e('0x1e')](_0xd1836d));_0x15b200(_0xd1836d);})['catch'](function(_0x24936a){logger[_0x0a9e('0x10')](_0x0a9e('0x1f'),_0x24936a[_0x0a9e('0x11')],_0x2ec755);_0x40e7a3(_0x5c877d['error'](0x1f4,_0x24936a[_0x0a9e('0x11')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdb28=['isAuthenticated','send','exports','express','Router','../../components/auth/service','./jira.controller'];(function(_0x249f9d,_0xcbf490){var _0x348e04=function(_0x422b47){while(--_0x422b47){_0x249f9d['push'](_0x249f9d['shift']());}};_0x348e04(++_0xcbf490);}(_0xdb28,0x106));var _0x8db2=function(_0x27106c,_0x56fb14){_0x27106c=_0x27106c-0x0;var _0x51375b=_0xdb28[_0x27106c];return _0x51375b;};'use strict';var express=require(_0x8db2('0x0'));var router=express[_0x8db2('0x1')]();var auth=require(_0x8db2('0x2'));var controller=require(_0x8db2('0x3'));router['post']('/',auth[_0x8db2('0x4')](),controller[_0x8db2('0x5')]);module[_0x8db2('0x6')]=router;
\ No newline at end of file
+var _0x0b0e=['exports','express','../../components/auth/service','post','isAuthenticated','send'];(function(_0x25e7cb,_0x3579b7){var _0x375d92=function(_0xe8cf3b){while(--_0xe8cf3b){_0x25e7cb['push'](_0x25e7cb['shift']());}};_0x375d92(++_0x3579b7);}(_0x0b0e,0x187));var _0xe0b0=function(_0x21bb2f,_0x4199b9){_0x21bb2f=_0x21bb2f-0x0;var _0x279b0e=_0x0b0e[_0x21bb2f];return _0x279b0e;};'use strict';var express=require(_0xe0b0('0x0'));var router=express['Router']();var auth=require(_0xe0b0('0x1'));var controller=require('./jira.controller');router[_0xe0b0('0x2')]('/',auth[_0xe0b0('0x3')](),controller[_0xe0b0('0x4')]);module[_0xe0b0('0x5')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1aff=['oldToken','newToken','customfield_11503','name','customfield_11504','reason','customfield_10102','track.xcallymotion.com','POST','application/json','Basic\x20','toString','base64','utf8','data','end','status','statusCode','json','Error\x20during\x20license\x20request.\x20Please\x20contact\x20our\x20license\x20team\x20at\x20license@xcally.com\x20with\x20your\x20request','api.jira','write','openIssue','send','headers','x-forwarded-for','remoteAddress','socket','connection','body','bluebird','../../config/logger','support','3eAmWpBVP0','key','MOTGUI','\x20from\x20','stringify','Bug','fields','customfield_11500','customfield_11501'];(function(_0x7e507c,_0x13ff90){var _0x304ca3=function(_0x4d7725){while(--_0x4d7725){_0x7e507c['push'](_0x7e507c['shift']());}};_0x304ca3(++_0x13ff90);}(_0x1aff,0x144));var _0xf1af=function(_0x1d8efe,_0x55ae97){_0x1d8efe=_0x1d8efe-0x0;var _0x19ca60=_0x1aff[_0x1d8efe];return _0x19ca60;};'use strict';var BPromise=require(_0xf1af('0x0'));var https=require('https');var logger=require(_0xf1af('0x1'))('api');var USERNAME=_0xf1af('0x2');var PASSWORD=_0xf1af('0x3');function openIssue(_0x2b59f2,_0x3c27ca){var _0x38bbff={'fields':{'project':{'key':_0x2b59f2[_0xf1af('0x4')]||_0xf1af('0x5')},'summary':(_0x2b59f2['summary']||'Report')+_0xf1af('0x6')+_0x2b59f2['ip'],'description':_0x2b59f2['description']||JSON[_0xf1af('0x7')](_0x2b59f2),'issuetype':{'name':_0x2b59f2['issuetype']||_0xf1af('0x8')}}};_0x38bbff[_0xf1af('0x9')][_0xf1af('0xa')]=_0x2b59f2['email'];_0x38bbff[_0xf1af('0x9')][_0xf1af('0xb')]=_0x2b59f2[_0xf1af('0xc')];_0x38bbff[_0xf1af('0x9')]['customfield_11502']=_0x2b59f2[_0xf1af('0xd')];_0x38bbff[_0xf1af('0x9')][_0xf1af('0xe')]=_0x2b59f2[_0xf1af('0xf')];_0x38bbff[_0xf1af('0x9')][_0xf1af('0x10')]=_0x2b59f2[_0xf1af('0x11')];_0x38bbff[_0xf1af('0x9')][_0xf1af('0x12')]=_0x2b59f2['ip'];var _0xa2b2ab={'host':_0xf1af('0x13'),'port':0x1bb,'path':'/rest/api/2/issue','method':_0xf1af('0x14'),'timeout':0x4e20,'headers':{'Content-Type':_0xf1af('0x15'),'Authorization':_0xf1af('0x16')+new Buffer(USERNAME+':'+PASSWORD)[_0xf1af('0x17')](_0xf1af('0x18'))}};var _0x48abe5=JSON[_0xf1af('0x7')](_0x38bbff);var _0x3d42dc=https['request'](_0xa2b2ab,function(_0x5696b5){_0x5696b5['setEncoding'](_0xf1af('0x19'));var _0x528177='';_0x5696b5['on'](_0xf1af('0x1a'),function(_0x4a4aab){_0x528177+=_0x4a4aab;});_0x5696b5['on'](_0xf1af('0x1b'),function(){if(_0x3c27ca){return _0x3c27ca[_0xf1af('0x1c')](_0x5696b5[_0xf1af('0x1d')])[_0xf1af('0x1e')](JSON['parse'](_0x528177));}});});_0x3d42dc['on']('error',function(_0x23a3dc){if(_0x3c27ca){return _0x3c27ca[_0xf1af('0x1c')](0x1f4)[_0xf1af('0x1e')]({'errors':[{'message':_0xf1af('0x1f'),'type':_0xf1af('0x20')}]});}});_0x3d42dc[_0xf1af('0x21')](_0x48abe5);_0x3d42dc[_0xf1af('0x1b')]();}exports[_0xf1af('0x22')]=openIssue;exports[_0xf1af('0x23')]=function(_0x430684,_0x5ca482){_0x430684['body']['ip']=_0x430684[_0xf1af('0x24')][_0xf1af('0x25')]||_0x430684['connection'][_0xf1af('0x26')]||_0x430684[_0xf1af('0x27')]['remoteAddress']||_0x430684[_0xf1af('0x28')][_0xf1af('0x27')][_0xf1af('0x26')];return openIssue(_0x430684[_0xf1af('0x29')],_0x5ca482);};
\ No newline at end of file
+var _0x58f8=['name','customfield_11504','reason','customfield_10102','track.xcallymotion.com','/rest/api/2/issue','POST','Basic\x20','toString','base64','setEncoding','utf8','data','end','status','statusCode','json','parse','Error\x20during\x20license\x20request.\x20Please\x20contact\x20our\x20license\x20team\x20at\x20license@xcally.com\x20with\x20your\x20request','write','openIssue','send','body','headers','x-forwarded-for','remoteAddress','socket','connection','bluebird','https','../../config/logger','api','3eAmWpBVP0','key','summary','Report','\x20from\x20','stringify','issuetype','Bug','customfield_11500','fields','oldToken','customfield_11502'];(function(_0x5d9469,_0x1f6755){var _0x56f815=function(_0x3f82d6){while(--_0x3f82d6){_0x5d9469['push'](_0x5d9469['shift']());}};_0x56f815(++_0x1f6755);}(_0x58f8,0x17c));var _0x858f=function(_0xa173d9,_0x13f3cc){_0xa173d9=_0xa173d9-0x0;var _0xd4711c=_0x58f8[_0xa173d9];return _0xd4711c;};'use strict';var BPromise=require(_0x858f('0x0'));var https=require(_0x858f('0x1'));var logger=require(_0x858f('0x2'))(_0x858f('0x3'));var USERNAME='support';var PASSWORD=_0x858f('0x4');function openIssue(_0x52222c,_0x13f30d){var _0x5923b8={'fields':{'project':{'key':_0x52222c[_0x858f('0x5')]||'MOTGUI'},'summary':(_0x52222c[_0x858f('0x6')]||_0x858f('0x7'))+_0x858f('0x8')+_0x52222c['ip'],'description':_0x52222c['description']||JSON[_0x858f('0x9')](_0x52222c),'issuetype':{'name':_0x52222c[_0x858f('0xa')]||_0x858f('0xb')}}};_0x5923b8['fields'][_0x858f('0xc')]=_0x52222c['email'];_0x5923b8[_0x858f('0xd')]['customfield_11501']=_0x52222c[_0x858f('0xe')];_0x5923b8['fields'][_0x858f('0xf')]=_0x52222c['newToken'];_0x5923b8[_0x858f('0xd')]['customfield_11503']=_0x52222c[_0x858f('0x10')];_0x5923b8[_0x858f('0xd')][_0x858f('0x11')]=_0x52222c[_0x858f('0x12')];_0x5923b8[_0x858f('0xd')][_0x858f('0x13')]=_0x52222c['ip'];var _0x305e9c={'host':_0x858f('0x14'),'port':0x1bb,'path':_0x858f('0x15'),'method':_0x858f('0x16'),'timeout':0x4e20,'headers':{'Content-Type':'application/json','Authorization':_0x858f('0x17')+new Buffer(USERNAME+':'+PASSWORD)[_0x858f('0x18')](_0x858f('0x19'))}};var _0x1c5769=JSON[_0x858f('0x9')](_0x5923b8);var _0x531375=https['request'](_0x305e9c,function(_0x23c31d){_0x23c31d[_0x858f('0x1a')](_0x858f('0x1b'));var _0x572be4='';_0x23c31d['on'](_0x858f('0x1c'),function(_0x1b179e){_0x572be4+=_0x1b179e;});_0x23c31d['on'](_0x858f('0x1d'),function(){if(_0x13f30d){return _0x13f30d[_0x858f('0x1e')](_0x23c31d[_0x858f('0x1f')])[_0x858f('0x20')](JSON[_0x858f('0x21')](_0x572be4));}});});_0x531375['on']('error',function(_0x488ffb){if(_0x13f30d){return _0x13f30d[_0x858f('0x1e')](0x1f4)['json']({'errors':[{'message':_0x858f('0x22'),'type':'api.jira'}]});}});_0x531375[_0x858f('0x23')](_0x1c5769);_0x531375[_0x858f('0x1d')]();}exports[_0x858f('0x24')]=openIssue;exports[_0x858f('0x25')]=function(_0x262817,_0x5a55be){_0x262817[_0x858f('0x26')]['ip']=_0x262817[_0x858f('0x27')][_0x858f('0x28')]||_0x262817['connection'][_0x858f('0x29')]||_0x262817[_0x858f('0x2a')][_0x858f('0x29')]||_0x262817[_0x858f('0x2b')][_0x858f('0x2a')][_0x858f('0x29')];return openIssue(_0x262817['body'],_0x5a55be);};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9f62=['../../config/environment','./jscriptyAnswerReport.controller','get','index','/describe','isAuthenticated','describe','post','/:id','delete','util','connect-timeout','express','Router','../../components/interaction/service'];(function(_0x429f2f,_0x8c7732){var _0x105d17=function(_0x109253){while(--_0x109253){_0x429f2f['push'](_0x429f2f['shift']());}};_0x105d17(++_0x8c7732);}(_0x9f62,0x154));var _0x29f6=function(_0x5ac521,_0x41f169){_0x5ac521=_0x5ac521-0x0;var _0x4610e6=_0x9f62[_0x5ac521];return _0x4610e6;};'use strict';var multer=require('multer');var util=require(_0x29f6('0x0'));var path=require('path');var timeout=require(_0x29f6('0x1'));var express=require(_0x29f6('0x2'));var router=express[_0x29f6('0x3')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0x29f6('0x4'));var config=require(_0x29f6('0x5'));var controller=require(_0x29f6('0x6'));router[_0x29f6('0x7')]('/',auth['isAuthenticated'](),controller[_0x29f6('0x8')]);router[_0x29f6('0x7')](_0x29f6('0x9'),auth[_0x29f6('0xa')](),controller[_0x29f6('0xb')]);router['get']('/:id',auth['isAuthenticated'](),controller['show']);router[_0x29f6('0xc')]('/',auth[_0x29f6('0xa')](),controller['create']);router['put'](_0x29f6('0xd'),auth[_0x29f6('0xa')](),controller['update']);router[_0x29f6('0xe')](_0x29f6('0xd'),auth['isAuthenticated'](),controller['destroy']);module['exports']=router;
\ No newline at end of file
+var _0x2750=['fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./jscriptyAnswerReport.controller','get','index','/describe','isAuthenticated','/:id','put','update','delete','destroy','exports','multer','path','connect-timeout','express','Router'];(function(_0x29e35f,_0x4859ef){var _0x266b74=function(_0xc09e1){while(--_0xc09e1){_0x29e35f['push'](_0x29e35f['shift']());}};_0x266b74(++_0x4859ef);}(_0x2750,0x13b));var _0x0275=function(_0x431837,_0x2a34c9){_0x431837=_0x431837-0x0;var _0x48f194=_0x2750[_0x431837];return _0x48f194;};'use strict';var multer=require(_0x0275('0x0'));var util=require('util');var path=require(_0x0275('0x1'));var timeout=require(_0x0275('0x2'));var express=require(_0x0275('0x3'));var router=express[_0x0275('0x4')]();var fs_extra=require(_0x0275('0x5'));var auth=require(_0x0275('0x6'));var interaction=require(_0x0275('0x7'));var config=require(_0x0275('0x8'));var controller=require(_0x0275('0x9'));router[_0x0275('0xa')]('/',auth['isAuthenticated'](),controller[_0x0275('0xb')]);router[_0x0275('0xa')](_0x0275('0xc'),auth[_0x0275('0xd')](),controller['describe']);router[_0x0275('0xa')](_0x0275('0xe'),auth[_0x0275('0xd')](),controller['show']);router['post']('/',auth[_0x0275('0xd')](),controller['create']);router[_0x0275('0xf')](_0x0275('0xe'),auth[_0x0275('0xd')](),controller[_0x0275('0x10')]);router[_0x0275('0x11')]('/:id',auth[_0x0275('0xd')](),controller[_0x0275('0x12')]);module[_0x0275('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a54=['long','STRING','sequelize','exports','TEXT'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x7a54,0x106));var _0x47a5=function(_0x494c5b,_0x174e87){_0x494c5b=_0x494c5b-0x0;var _0x20ee04=_0x7a54[_0x494c5b];return _0x20ee04;};'use strict';var Sequelize=require(_0x47a5('0x0'));module[_0x47a5('0x1')]={'question':{'type':Sequelize[_0x47a5('0x2')]},'answer':{'type':Sequelize['TEXT'](_0x47a5('0x3'))},'membername':{'type':Sequelize[_0x47a5('0x4')]},'projectname':{'type':Sequelize['STRING']},'queue':{'type':Sequelize[_0x47a5('0x4')]},'uniqueid':{'type':Sequelize[_0x47a5('0x4')]},'calleridname':{'type':Sequelize[_0x47a5('0x4')]},'calleridnum':{'type':Sequelize[_0x47a5('0x4')]},'questionId':{'type':Sequelize[_0x47a5('0x4')]}};
\ No newline at end of file
+var _0x7a54=['long','STRING','sequelize','exports','TEXT'];(function(_0x5f1391,_0x19c132){var _0x50ebe3=function(_0x3d00a3){while(--_0x3d00a3){_0x5f1391['push'](_0x5f1391['shift']());}};_0x50ebe3(++_0x19c132);}(_0x7a54,0x106));var _0x47a5=function(_0x199ce7,_0x1fcd83){_0x199ce7=_0x199ce7-0x0;var _0x52a10c=_0x7a54[_0x199ce7];return _0x52a10c;};'use strict';var Sequelize=require(_0x47a5('0x0'));module[_0x47a5('0x1')]={'question':{'type':Sequelize[_0x47a5('0x2')]},'answer':{'type':Sequelize['TEXT'](_0x47a5('0x3'))},'membername':{'type':Sequelize[_0x47a5('0x4')]},'projectname':{'type':Sequelize['STRING']},'queue':{'type':Sequelize[_0x47a5('0x4')]},'uniqueid':{'type':Sequelize[_0x47a5('0x4')]},'calleridname':{'type':Sequelize[_0x47a5('0x4')]},'calleridnum':{'type':Sequelize[_0x47a5('0x4')]},'questionId':{'type':Sequelize[_0x47a5('0x4')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf006=['fieldName','keys','filters','intersection','model','query','attributes','fields','hasOwnProperty','nolimit','order','sort','where','type','VIRTUAL','merge','includeAll','include','findAll','rows','catch','show','params','length','options','find','create','body','destroy','describe','zip-dir','fast-json-patch','moment','mustache','sox','to-csv','ejs','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','limit','count','set','Content-Range','reject','save','update','then','error','stack','name','send','index','map','JscriptyAnswerReport','rawAttributes'];(function(_0x2730da,_0x1098bd){var _0xfe9991=function(_0x2ea521){while(--_0x2ea521){_0x2730da['push'](_0x2730da['shift']());}};_0xfe9991(++_0x1098bd);}(_0xf006,0x146));var _0x6f00=function(_0x47a704,_0x72fe8c){_0x47a704=_0x47a704-0x0;var _0x22b014=_0xf006[_0x47a704];return _0x22b014;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x6f00('0x0'));var jsonpatch=require(_0x6f00('0x1'));var rp=require('request-promise');var moment=require(_0x6f00('0x2'));var BPromise=require('bluebird');var Mustache=require(_0x6f00('0x3'));var util=require('util');var path=require('path');var sox=require(_0x6f00('0x4'));var csv=require(_0x6f00('0x5'));var ejs=require(_0x6f00('0x6'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x6f00('0x7'));var squel=require('squel');var crypto=require(_0x6f00('0x8'));var jsforce=require(_0x6f00('0x9'));var deskjs=require(_0x6f00('0xa'));var toCsv=require(_0x6f00('0x5'));var querystring=require(_0x6f00('0xb'));var Papa=require(_0x6f00('0xc'));var Redis=require(_0x6f00('0xd'));var authService=require(_0x6f00('0xe'));var qs=require(_0x6f00('0xf'));var as=require(_0x6f00('0x10'));var hardwareService=require(_0x6f00('0x11'));var logger=require(_0x6f00('0x12'))(_0x6f00('0x13'));var utils=require('../../config/utils');var config=require(_0x6f00('0x14'));var licenseUtil=require(_0x6f00('0x15'));var db=require(_0x6f00('0x16'))['db'];function respondWithStatusCode(_0x36a2ec,_0x289fe9){_0x289fe9=_0x289fe9||0xcc;return function(_0x5e3264){if(_0x5e3264){return _0x36a2ec[_0x6f00('0x17')](_0x289fe9);}return _0x36a2ec['status'](_0x289fe9)[_0x6f00('0x18')]();};}function respondWithResult(_0x5047f5,_0x324e67){_0x324e67=_0x324e67||0xc8;return function(_0x220e68){if(_0x220e68){return _0x5047f5[_0x6f00('0x19')](_0x324e67)[_0x6f00('0x1a')](_0x220e68);}};}function respondWithFilteredResult(_0xa6e7a1,_0x411203){return function(_0x46bc2c){if(_0x46bc2c){var _0x4d8aee=typeof _0x411203[_0x6f00('0x1b')]==='undefined'&&typeof _0x411203[_0x6f00('0x1c')]==='undefined';var _0x534275=_0x46bc2c[_0x6f00('0x1d')];var _0x6cf83f=_0x4d8aee?0x0:_0x411203[_0x6f00('0x1b')];var _0x340f78=_0x4d8aee?_0x46bc2c[_0x6f00('0x1d')]:_0x411203[_0x6f00('0x1b')]+_0x411203[_0x6f00('0x1c')];var _0x295640;if(_0x340f78>=_0x534275){_0x340f78=_0x534275;_0x295640=0xc8;}else{_0x295640=0xce;}_0xa6e7a1[_0x6f00('0x19')](_0x295640);return _0xa6e7a1[_0x6f00('0x1e')](_0x6f00('0x1f'),_0x6cf83f+'-'+_0x340f78+'/'+_0x534275)[_0x6f00('0x1a')](_0x46bc2c);}return null;};}function patchUpdates(_0x4e11de){return function(_0x4f3031){try{jsonpatch['apply'](_0x4f3031,_0x4e11de,!![]);}catch(_0x2a5286){return BPromise[_0x6f00('0x20')](_0x2a5286);}return _0x4f3031[_0x6f00('0x21')]();};}function saveUpdates(_0x57340f,_0xe301e5){return function(_0x9066ff){if(_0x9066ff){return _0x9066ff[_0x6f00('0x22')](_0x57340f)[_0x6f00('0x23')](function(_0x388983){return _0x388983;});}return null;};}function removeEntity(_0x1cbf1c,_0x90d74c){return function(_0x1ea061){if(_0x1ea061){return _0x1ea061['destroy']()[_0x6f00('0x23')](function(){_0x1cbf1c[_0x6f00('0x19')](0xcc)[_0x6f00('0x18')]();});}};}function handleEntityNotFound(_0x4d41ef,_0x37f062){return function(_0x4f7e29){if(!_0x4f7e29){_0x4d41ef[_0x6f00('0x17')](0x194);}return _0x4f7e29;};}function handleError(_0x511293,_0x434735){_0x434735=_0x434735||0x1f4;return function(_0x39375d){logger[_0x6f00('0x24')](_0x39375d[_0x6f00('0x25')]);if(_0x39375d[_0x6f00('0x26')]){delete _0x39375d['name'];}_0x511293[_0x6f00('0x19')](_0x434735)[_0x6f00('0x27')](_0x39375d);};}exports[_0x6f00('0x28')]=function(_0x4366a4,_0x2671fe){var _0x235a86={},_0xff36ce={},_0x451849={'count':0x0,'rows':[]};var _0x22f107=_[_0x6f00('0x29')](db[_0x6f00('0x2a')][_0x6f00('0x2b')],function(_0x29555d){return{'name':_0x29555d[_0x6f00('0x2c')],'type':_0x29555d['type']['key']};});_0xff36ce['model']=_['map'](_0x22f107,'name');_0xff36ce['query']=_[_0x6f00('0x2d')](_0x4366a4['query']);_0xff36ce[_0x6f00('0x2e')]=_[_0x6f00('0x2f')](_0xff36ce[_0x6f00('0x30')],_0xff36ce[_0x6f00('0x31')]);_0x235a86[_0x6f00('0x32')]=_[_0x6f00('0x2f')](_0xff36ce['model'],qs[_0x6f00('0x33')](_0x4366a4[_0x6f00('0x31')][_0x6f00('0x33')]));_0x235a86[_0x6f00('0x32')]=_0x235a86[_0x6f00('0x32')]['length']?_0x235a86['attributes']:_0xff36ce['model'];if(!_0x4366a4[_0x6f00('0x31')][_0x6f00('0x34')](_0x6f00('0x35'))){_0x235a86[_0x6f00('0x1c')]=qs[_0x6f00('0x1c')](_0x4366a4['query'][_0x6f00('0x1c')]);_0x235a86[_0x6f00('0x1b')]=qs[_0x6f00('0x1b')](_0x4366a4[_0x6f00('0x31')][_0x6f00('0x1b')]);}_0x235a86[_0x6f00('0x36')]=qs[_0x6f00('0x37')](_0x4366a4['query'][_0x6f00('0x37')]);_0x235a86[_0x6f00('0x38')]=qs[_0x6f00('0x2e')](_['pick'](_0x4366a4[_0x6f00('0x31')],_0xff36ce[_0x6f00('0x2e')]),_0x22f107);if(_0x4366a4[_0x6f00('0x31')]['filter']){_0x235a86[_0x6f00('0x38')]=_['merge'](_0x235a86[_0x6f00('0x38')],{'$or':_['map'](_0x22f107,function(_0x3dc8e3){if(_0x3dc8e3[_0x6f00('0x39')]!==_0x6f00('0x3a')){var _0x896b3f={};_0x896b3f[_0x3dc8e3['name']]={'$like':'%'+_0x4366a4[_0x6f00('0x31')]['filter']+'%'};return _0x896b3f;}})});}_0x235a86=_[_0x6f00('0x3b')]({},_0x235a86,_0x4366a4['options']);var _0x7785e1={'where':_0x235a86[_0x6f00('0x38')]};return db[_0x6f00('0x2a')][_0x6f00('0x1d')](_0x7785e1)['then'](function(_0x53dc8c){_0x451849[_0x6f00('0x1d')]=_0x53dc8c;if(_0x4366a4['query'][_0x6f00('0x3c')]){_0x235a86[_0x6f00('0x3d')]=[{'all':!![]}];}return db['JscriptyAnswerReport'][_0x6f00('0x3e')](_0x235a86);})['then'](function(_0x4cac2c){_0x451849[_0x6f00('0x3f')]=_0x4cac2c;return _0x451849;})[_0x6f00('0x23')](respondWithFilteredResult(_0x2671fe,_0x235a86))[_0x6f00('0x40')](handleError(_0x2671fe,null));};exports[_0x6f00('0x41')]=function(_0x56399a,_0x38ee25){var _0x4523f2={'raw':!![],'where':{'id':_0x56399a[_0x6f00('0x42')]['id']}},_0x2bb5aa={};_0x2bb5aa[_0x6f00('0x30')]=_[_0x6f00('0x2d')](db['JscriptyAnswerReport'][_0x6f00('0x2b')]);_0x2bb5aa[_0x6f00('0x31')]=_[_0x6f00('0x2d')](_0x56399a[_0x6f00('0x31')]);_0x2bb5aa[_0x6f00('0x2e')]=_[_0x6f00('0x2f')](_0x2bb5aa['model'],_0x2bb5aa[_0x6f00('0x31')]);_0x4523f2[_0x6f00('0x32')]=_[_0x6f00('0x2f')](_0x2bb5aa['model'],qs[_0x6f00('0x33')](_0x56399a['query'][_0x6f00('0x33')]));_0x4523f2[_0x6f00('0x32')]=_0x4523f2['attributes'][_0x6f00('0x43')]?_0x4523f2['attributes']:_0x2bb5aa[_0x6f00('0x30')];if(_0x56399a[_0x6f00('0x31')][_0x6f00('0x3c')]){_0x4523f2[_0x6f00('0x3d')]=[{'all':!![]}];}_0x4523f2=_['merge']({},_0x4523f2,_0x56399a[_0x6f00('0x44')]);return db['JscriptyAnswerReport'][_0x6f00('0x45')](_0x4523f2)['then'](handleEntityNotFound(_0x38ee25,null))[_0x6f00('0x23')](respondWithResult(_0x38ee25,null))[_0x6f00('0x40')](handleError(_0x38ee25,null));};exports[_0x6f00('0x46')]=function(_0x9b003,_0x470ff3){return db[_0x6f00('0x2a')][_0x6f00('0x46')](_0x9b003[_0x6f00('0x47')],{})['then'](respondWithResult(_0x470ff3,0xc9))[_0x6f00('0x40')](handleError(_0x470ff3,null));};exports['update']=function(_0x265666,_0x31fb17){if(_0x265666[_0x6f00('0x47')]['id']){delete _0x265666['body']['id'];}return db['JscriptyAnswerReport'][_0x6f00('0x45')]({'where':{'id':_0x265666[_0x6f00('0x42')]['id']}})['then'](handleEntityNotFound(_0x31fb17,null))[_0x6f00('0x23')](saveUpdates(_0x265666['body'],null))[_0x6f00('0x23')](respondWithResult(_0x31fb17,null))['catch'](handleError(_0x31fb17,null));};exports[_0x6f00('0x48')]=function(_0x222b4c,_0x4c6e06){return db['JscriptyAnswerReport'][_0x6f00('0x45')]({'where':{'id':_0x222b4c[_0x6f00('0x42')]['id']}})['then'](handleEntityNotFound(_0x4c6e06,null))[_0x6f00('0x23')](removeEntity(_0x4c6e06,null))['catch'](handleError(_0x4c6e06,null));};exports[_0x6f00('0x49')]=function(_0x7f80ed,_0x3100ee){return db[_0x6f00('0x2a')][_0x6f00('0x49')]()[_0x6f00('0x23')](respondWithResult(_0x3100ee,null))[_0x6f00('0x40')](handleError(_0x3100ee,null));};
\ No newline at end of file
+var _0xc949=['eml-format','zip-dir','fast-json-patch','request-promise','moment','mustache','util','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','undefined','offset','count','limit','set','Content-Range','apply','reject','save','update','then','destroy','stack','name','send','index','map','JscriptyAnswerReport','type','key','model','query','keys','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','merge','includeAll','findAll','catch','rawAttributes','intersection','include','find','create','body','params','describe'];(function(_0x46fff0,_0x2ec3c0){var _0x259045=function(_0x2a41d3){while(--_0x2a41d3){_0x46fff0['push'](_0x46fff0['shift']());}};_0x259045(++_0x2ec3c0);}(_0xc949,0x181));var _0x9c94=function(_0x491a7f,_0x28bb80){_0x491a7f=_0x491a7f-0x0;var _0x3d8f44=_0xc949[_0x491a7f];return _0x3d8f44;};'use strict';var emlformat=require(_0x9c94('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x9c94('0x1'));var jsonpatch=require(_0x9c94('0x2'));var rp=require(_0x9c94('0x3'));var moment=require(_0x9c94('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x9c94('0x5'));var util=require(_0x9c94('0x6'));var path=require('path');var sox=require(_0x9c94('0x7'));var csv=require(_0x9c94('0x8'));var ejs=require(_0x9c94('0x9'));var fs=require('fs');var fs_extra=require(_0x9c94('0xa'));var _=require('lodash');var squel=require(_0x9c94('0xb'));var crypto=require(_0x9c94('0xc'));var jsforce=require(_0x9c94('0xd'));var deskjs=require(_0x9c94('0xe'));var toCsv=require(_0x9c94('0x8'));var querystring=require(_0x9c94('0xf'));var Papa=require(_0x9c94('0x10'));var Redis=require(_0x9c94('0x11'));var authService=require(_0x9c94('0x12'));var qs=require(_0x9c94('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x9c94('0x14'));var logger=require(_0x9c94('0x15'))(_0x9c94('0x16'));var utils=require(_0x9c94('0x17'));var config=require(_0x9c94('0x18'));var licenseUtil=require(_0x9c94('0x19'));var db=require(_0x9c94('0x1a'))['db'];function respondWithStatusCode(_0x423adb,_0x30f64e){_0x30f64e=_0x30f64e||0xcc;return function(_0x1e326f){if(_0x1e326f){return _0x423adb[_0x9c94('0x1b')](_0x30f64e);}return _0x423adb[_0x9c94('0x1c')](_0x30f64e)[_0x9c94('0x1d')]();};}function respondWithResult(_0x15c51c,_0x54d956){_0x54d956=_0x54d956||0xc8;return function(_0x9789bc){if(_0x9789bc){return _0x15c51c['status'](_0x54d956)[_0x9c94('0x1e')](_0x9789bc);}};}function respondWithFilteredResult(_0x26e629,_0x4f0013){return function(_0xe52641){if(_0xe52641){var _0x4d6308=typeof _0x4f0013['offset']===_0x9c94('0x1f')&&typeof _0x4f0013['limit']===_0x9c94('0x1f');var _0x33bd19=_0xe52641['count'];var _0x201e04=_0x4d6308?0x0:_0x4f0013[_0x9c94('0x20')];var _0x412804=_0x4d6308?_0xe52641[_0x9c94('0x21')]:_0x4f0013[_0x9c94('0x20')]+_0x4f0013[_0x9c94('0x22')];var _0x3e361c;if(_0x412804>=_0x33bd19){_0x412804=_0x33bd19;_0x3e361c=0xc8;}else{_0x3e361c=0xce;}_0x26e629['status'](_0x3e361c);return _0x26e629[_0x9c94('0x23')](_0x9c94('0x24'),_0x201e04+'-'+_0x412804+'/'+_0x33bd19)['json'](_0xe52641);}return null;};}function patchUpdates(_0x141801){return function(_0x845304){try{jsonpatch[_0x9c94('0x25')](_0x845304,_0x141801,!![]);}catch(_0x326b38){return BPromise[_0x9c94('0x26')](_0x326b38);}return _0x845304[_0x9c94('0x27')]();};}function saveUpdates(_0xadab16,_0x23cdf5){return function(_0x8fe4fb){if(_0x8fe4fb){return _0x8fe4fb[_0x9c94('0x28')](_0xadab16)[_0x9c94('0x29')](function(_0xe9280a){return _0xe9280a;});}return null;};}function removeEntity(_0x44d732,_0x8c0b7f){return function(_0x5b1020){if(_0x5b1020){return _0x5b1020[_0x9c94('0x2a')]()[_0x9c94('0x29')](function(){_0x44d732['status'](0xcc)[_0x9c94('0x1d')]();});}};}function handleEntityNotFound(_0x2c3d25,_0x4795bb){return function(_0x335184){if(!_0x335184){_0x2c3d25[_0x9c94('0x1b')](0x194);}return _0x335184;};}function handleError(_0x4dd38e,_0xc18230){_0xc18230=_0xc18230||0x1f4;return function(_0x45cf4d){logger['error'](_0x45cf4d[_0x9c94('0x2b')]);if(_0x45cf4d['name']){delete _0x45cf4d[_0x9c94('0x2c')];}_0x4dd38e[_0x9c94('0x1c')](_0xc18230)[_0x9c94('0x2d')](_0x45cf4d);};}exports[_0x9c94('0x2e')]=function(_0x1581c0,_0x3f2622){var _0xf30dd1={},_0x561fdc={},_0x5a6b1c={'count':0x0,'rows':[]};var _0xc4a819=_[_0x9c94('0x2f')](db[_0x9c94('0x30')]['rawAttributes'],function(_0x25a6b9){return{'name':_0x25a6b9['fieldName'],'type':_0x25a6b9[_0x9c94('0x31')][_0x9c94('0x32')]};});_0x561fdc[_0x9c94('0x33')]=_['map'](_0xc4a819,'name');_0x561fdc[_0x9c94('0x34')]=_[_0x9c94('0x35')](_0x1581c0[_0x9c94('0x34')]);_0x561fdc['filters']=_['intersection'](_0x561fdc['model'],_0x561fdc['query']);_0xf30dd1[_0x9c94('0x36')]=_['intersection'](_0x561fdc[_0x9c94('0x33')],qs[_0x9c94('0x37')](_0x1581c0['query']['fields']));_0xf30dd1[_0x9c94('0x36')]=_0xf30dd1[_0x9c94('0x36')][_0x9c94('0x38')]?_0xf30dd1[_0x9c94('0x36')]:_0x561fdc[_0x9c94('0x33')];if(!_0x1581c0[_0x9c94('0x34')][_0x9c94('0x39')](_0x9c94('0x3a'))){_0xf30dd1[_0x9c94('0x22')]=qs[_0x9c94('0x22')](_0x1581c0[_0x9c94('0x34')][_0x9c94('0x22')]);_0xf30dd1[_0x9c94('0x20')]=qs[_0x9c94('0x20')](_0x1581c0[_0x9c94('0x34')][_0x9c94('0x20')]);}_0xf30dd1[_0x9c94('0x3b')]=qs[_0x9c94('0x3c')](_0x1581c0['query'][_0x9c94('0x3c')]);_0xf30dd1[_0x9c94('0x3d')]=qs[_0x9c94('0x3e')](_[_0x9c94('0x3f')](_0x1581c0[_0x9c94('0x34')],_0x561fdc[_0x9c94('0x3e')]),_0xc4a819);if(_0x1581c0[_0x9c94('0x34')]['filter']){_0xf30dd1[_0x9c94('0x3d')]=_['merge'](_0xf30dd1[_0x9c94('0x3d')],{'$or':_[_0x9c94('0x2f')](_0xc4a819,function(_0x442d46){if(_0x442d46[_0x9c94('0x31')]!=='VIRTUAL'){var _0x245278={};_0x245278[_0x442d46['name']]={'$like':'%'+_0x1581c0[_0x9c94('0x34')][_0x9c94('0x40')]+'%'};return _0x245278;}})});}_0xf30dd1=_[_0x9c94('0x41')]({},_0xf30dd1,_0x1581c0['options']);var _0x21e9f7={'where':_0xf30dd1['where']};return db[_0x9c94('0x30')]['count'](_0x21e9f7)['then'](function(_0x9a75f0){_0x5a6b1c[_0x9c94('0x21')]=_0x9a75f0;if(_0x1581c0[_0x9c94('0x34')][_0x9c94('0x42')]){_0xf30dd1['include']=[{'all':!![]}];}return db[_0x9c94('0x30')][_0x9c94('0x43')](_0xf30dd1);})[_0x9c94('0x29')](function(_0x360960){_0x5a6b1c['rows']=_0x360960;return _0x5a6b1c;})[_0x9c94('0x29')](respondWithFilteredResult(_0x3f2622,_0xf30dd1))[_0x9c94('0x44')](handleError(_0x3f2622,null));};exports['show']=function(_0x24e74c,_0x3d8b31){var _0x2a5bd5={'raw':!![],'where':{'id':_0x24e74c['params']['id']}},_0x5e6a90={};_0x5e6a90[_0x9c94('0x33')]=_[_0x9c94('0x35')](db[_0x9c94('0x30')][_0x9c94('0x45')]);_0x5e6a90[_0x9c94('0x34')]=_[_0x9c94('0x35')](_0x24e74c[_0x9c94('0x34')]);_0x5e6a90[_0x9c94('0x3e')]=_[_0x9c94('0x46')](_0x5e6a90[_0x9c94('0x33')],_0x5e6a90[_0x9c94('0x34')]);_0x2a5bd5['attributes']=_[_0x9c94('0x46')](_0x5e6a90['model'],qs[_0x9c94('0x37')](_0x24e74c[_0x9c94('0x34')][_0x9c94('0x37')]));_0x2a5bd5[_0x9c94('0x36')]=_0x2a5bd5[_0x9c94('0x36')][_0x9c94('0x38')]?_0x2a5bd5[_0x9c94('0x36')]:_0x5e6a90['model'];if(_0x24e74c['query'][_0x9c94('0x42')]){_0x2a5bd5[_0x9c94('0x47')]=[{'all':!![]}];}_0x2a5bd5=_[_0x9c94('0x41')]({},_0x2a5bd5,_0x24e74c['options']);return db[_0x9c94('0x30')][_0x9c94('0x48')](_0x2a5bd5)['then'](handleEntityNotFound(_0x3d8b31,null))['then'](respondWithResult(_0x3d8b31,null))['catch'](handleError(_0x3d8b31,null));};exports['create']=function(_0x2b94e0,_0x5362f4){return db['JscriptyAnswerReport'][_0x9c94('0x49')](_0x2b94e0['body'],{})[_0x9c94('0x29')](respondWithResult(_0x5362f4,0xc9))[_0x9c94('0x44')](handleError(_0x5362f4,null));};exports[_0x9c94('0x28')]=function(_0x205f51,_0x22eaa4){if(_0x205f51['body']['id']){delete _0x205f51[_0x9c94('0x4a')]['id'];}return db[_0x9c94('0x30')][_0x9c94('0x48')]({'where':{'id':_0x205f51[_0x9c94('0x4b')]['id']}})[_0x9c94('0x29')](handleEntityNotFound(_0x22eaa4,null))[_0x9c94('0x29')](saveUpdates(_0x205f51['body'],null))[_0x9c94('0x29')](respondWithResult(_0x22eaa4,null))['catch'](handleError(_0x22eaa4,null));};exports[_0x9c94('0x2a')]=function(_0x38bb48,_0x426c0f){return db['JscriptyAnswerReport'][_0x9c94('0x48')]({'where':{'id':_0x38bb48[_0x9c94('0x4b')]['id']}})['then'](handleEntityNotFound(_0x426c0f,null))[_0x9c94('0x29')](removeEntity(_0x426c0f,null))['catch'](handleError(_0x426c0f,null));};exports[_0x9c94('0x4c')]=function(_0x3aa1dd,_0x537c78){return db['JscriptyAnswerReport'][_0x9c94('0x4c')]()['then'](respondWithResult(_0x537c78,null))[_0x9c94('0x44')](handleError(_0x537c78,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf040=['JscriptyAnswerReport','lodash','util','../../config/logger','api','bluebird','request-promise','path','define'];(function(_0x5f5694,_0x3ad2e4){var _0x5de981=function(_0x29a0c0){while(--_0x29a0c0){_0x5f5694['push'](_0x5f5694['shift']());}};_0x5de981(++_0x3ad2e4);}(_0xf040,0x17b));var _0x0f04=function(_0x2f5a56,_0x221e13){_0x2f5a56=_0x2f5a56-0x0;var _0x96bd89=_0xf040[_0x2f5a56];return _0x96bd89;};'use strict';var _=require(_0x0f04('0x0'));var util=require(_0x0f04('0x1'));var logger=require(_0x0f04('0x2'))(_0x0f04('0x3'));var moment=require('moment');var BPromise=require(_0x0f04('0x4'));var rp=require(_0x0f04('0x5'));var fs=require('fs');var path=require(_0x0f04('0x6'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require('./jscriptyAnswerReport.attributes');module['exports']=function(_0x6f34fa,_0x4a119c){return _0x6f34fa[_0x0f04('0x7')](_0x0f04('0x8'),attributes,{'tableName':'report_jscripty_answers','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x4dd7=['api','bluebird','request-promise','path','rimraf','./jscriptyAnswerReport.attributes','exports','define','JscriptyAnswerReport','report_jscripty_answers','lodash','../../config/logger'];(function(_0x36cf7a,_0x1863a7){var _0x2f0279=function(_0x2e3aaf){while(--_0x2e3aaf){_0x36cf7a['push'](_0x36cf7a['shift']());}};_0x2f0279(++_0x1863a7);}(_0x4dd7,0x1d2));var _0x74dd=function(_0x5ba1f3,_0x18ddfa){_0x5ba1f3=_0x5ba1f3-0x0;var _0x3ab93f=_0x4dd7[_0x5ba1f3];return _0x3ab93f;};'use strict';var _=require(_0x74dd('0x0'));var util=require('util');var logger=require(_0x74dd('0x1'))(_0x74dd('0x2'));var moment=require('moment');var BPromise=require(_0x74dd('0x3'));var rp=require(_0x74dd('0x4'));var fs=require('fs');var path=require(_0x74dd('0x5'));var rimraf=require(_0x74dd('0x6'));var config=require('../../config/environment');var attributes=require(_0x74dd('0x7'));module[_0x74dd('0x8')]=function(_0x5be2b2,_0x1cba0c){return _0x5be2b2[_0x74dd('0x9')](_0x74dd('0xa'),attributes,{'tableName':_0x74dd('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2dd3=['JscriptyAnswerReport,\x20%s,\x20%s','debug','JscriptyAnswerReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','request\x20sent','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','client','http','request','then','info'];(function(_0x14dfd6,_0x392fa4){var _0x36c19a=function(_0x453179){while(--_0x453179){_0x14dfd6['push'](_0x14dfd6['shift']());}};_0x36c19a(++_0x392fa4);}(_0x2dd3,0x18f));var _0x32dd=function(_0x204a27,_0x23fae5){_0x204a27=_0x204a27-0x0;var _0xe733eb=_0x2dd3[_0x204a27];return _0xe733eb;};'use strict';var _=require(_0x32dd('0x0'));var util=require(_0x32dd('0x1'));var moment=require(_0x32dd('0x2'));var BPromise=require(_0x32dd('0x3'));var rs=require(_0x32dd('0x4'));var fs=require('fs');var Redis=require(_0x32dd('0x5'));var db=require(_0x32dd('0x6'))['db'];var utils=require(_0x32dd('0x7'));var logger=require(_0x32dd('0x8'))(_0x32dd('0x9'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0x32dd('0xa')][_0x32dd('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x3963a4,_0xd0456,_0x420f5e){return new BPromise(function(_0x5c5f01,_0x26417b){return client[_0x32dd('0xc')](_0x3963a4,_0x420f5e)[_0x32dd('0xd')](function(_0x20dc2b){logger[_0x32dd('0xe')](_0x32dd('0xf'),_0xd0456,'request\x20sent');logger[_0x32dd('0x10')](_0x32dd('0x11'),_0xd0456,'request\x20sent',JSON[_0x32dd('0x12')](_0x20dc2b));if(_0x20dc2b[_0x32dd('0x13')]){if(_0x20dc2b[_0x32dd('0x13')][_0x32dd('0x14')]===0x1f4){logger[_0x32dd('0x13')]('JscriptyAnswerReport,\x20%s,\x20%s',_0xd0456,_0x20dc2b['error'][_0x32dd('0x15')]);return _0x26417b(_0x20dc2b[_0x32dd('0x13')][_0x32dd('0x15')]);}logger['error'](_0x32dd('0xf'),_0xd0456,_0x20dc2b[_0x32dd('0x13')][_0x32dd('0x15')]);return _0x5c5f01(_0x20dc2b[_0x32dd('0x13')][_0x32dd('0x15')]);}else{logger[_0x32dd('0xe')](_0x32dd('0xf'),_0xd0456,_0x32dd('0x16'));_0x5c5f01(_0x20dc2b['result'][_0x32dd('0x15')]);}})['catch'](function(_0x44284a){logger[_0x32dd('0x13')](_0x32dd('0xf'),_0xd0456,_0x44284a);_0x26417b(_0x44284a);});});}
\ No newline at end of file
+var _0x7cac=['../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','request','info','JscriptyAnswerReport,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','catch','lodash','util','moment','bluebird','randomstring','ioredis'];(function(_0x14c8ee,_0x34d4fb){var _0x51acc2=function(_0x4c1277){while(--_0x4c1277){_0x14c8ee['push'](_0x14c8ee['shift']());}};_0x51acc2(++_0x34d4fb);}(_0x7cac,0x15a));var _0xc7ca=function(_0x4fde08,_0x463a36){_0x4fde08=_0x4fde08-0x0;var _0x12e725=_0x7cac[_0x4fde08];return _0x12e725;};'use strict';var _=require(_0xc7ca('0x0'));var util=require(_0xc7ca('0x1'));var moment=require(_0xc7ca('0x2'));var BPromise=require(_0xc7ca('0x3'));var rs=require(_0xc7ca('0x4'));var fs=require('fs');var Redis=require(_0xc7ca('0x5'));var db=require(_0xc7ca('0x6'))['db'];var utils=require(_0xc7ca('0x7'));var logger=require(_0xc7ca('0x8'))(_0xc7ca('0x9'));var config=require(_0xc7ca('0xa'));var jayson=require(_0xc7ca('0xb'));var client=jayson[_0xc7ca('0xc')]['http']({'port':0x232a});function respondWithRpcPromise(_0x59e82b,_0x4f1895,_0x298e9c){return new BPromise(function(_0x510709,_0x52bf22){return client[_0xc7ca('0xd')](_0x59e82b,_0x298e9c)['then'](function(_0x54519d){logger[_0xc7ca('0xe')](_0xc7ca('0xf'),_0x4f1895,_0xc7ca('0x10'));logger['debug']('JscriptyAnswerReport,\x20%s,\x20%s,\x20%s',_0x4f1895,_0xc7ca('0x10'),JSON[_0xc7ca('0x11')](_0x54519d));if(_0x54519d[_0xc7ca('0x12')]){if(_0x54519d[_0xc7ca('0x12')][_0xc7ca('0x13')]===0x1f4){logger['error']('JscriptyAnswerReport,\x20%s,\x20%s',_0x4f1895,_0x54519d[_0xc7ca('0x12')][_0xc7ca('0x14')]);return _0x52bf22(_0x54519d[_0xc7ca('0x12')][_0xc7ca('0x14')]);}logger[_0xc7ca('0x12')](_0xc7ca('0xf'),_0x4f1895,_0x54519d[_0xc7ca('0x12')][_0xc7ca('0x14')]);return _0x510709(_0x54519d['error'][_0xc7ca('0x14')]);}else{logger[_0xc7ca('0xe')]('JscriptyAnswerReport,\x20%s,\x20%s',_0x4f1895,_0xc7ca('0x10'));_0x510709(_0x54519d['result'][_0xc7ca('0x14')]);}})[_0xc7ca('0x15')](function(_0x491279){logger[_0xc7ca('0x12')](_0xc7ca('0xf'),_0x4f1895,_0x491279);_0x52bf22(_0x491279);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x47fd=['multer','util','path','connect-timeout','express','Router','../../components/auth/service','get','index','/:id','isAuthenticated','show','/:id/sessions','getSessions','/:id/answers','30s','getSummary','post','/:id/clone','put','update','exports'];(function(_0x418eba,_0x3a9050){var _0x507793=function(_0x557f71){while(--_0x557f71){_0x418eba['push'](_0x418eba['shift']());}};_0x507793(++_0x3a9050);}(_0x47fd,0x9a));var _0xd47f=function(_0x591d44,_0x2b43a3){_0x591d44=_0x591d44-0x0;var _0x41dd26=_0x47fd[_0x591d44];return _0x41dd26;};'use strict';var multer=require(_0xd47f('0x0'));var util=require(_0xd47f('0x1'));var path=require(_0xd47f('0x2'));var timeout=require(_0xd47f('0x3'));var express=require(_0xd47f('0x4'));var router=express[_0xd47f('0x5')]();var fs_extra=require('fs-extra');var auth=require(_0xd47f('0x6'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require('./jscriptyProject.controller');router[_0xd47f('0x7')]('/',auth['isAuthenticated'](),controller[_0xd47f('0x8')]);router[_0xd47f('0x7')](_0xd47f('0x9'),auth[_0xd47f('0xa')](),controller[_0xd47f('0xb')]);router['get'](_0xd47f('0xc'),auth[_0xd47f('0xa')](),controller[_0xd47f('0xd')]);router['get'](_0xd47f('0xe'),auth[_0xd47f('0xa')](),controller['getAnswers']);router[_0xd47f('0x7')]('/:id/summary',auth[_0xd47f('0xa')](),timeout(_0xd47f('0xf')),controller[_0xd47f('0x10')]);router['post']('/',auth[_0xd47f('0xa')](),controller['create']);router[_0xd47f('0x11')](_0xd47f('0x12'),auth[_0xd47f('0xa')](),controller['clone']);router[_0xd47f('0x13')](_0xd47f('0x9'),auth[_0xd47f('0xa')](),controller[_0xd47f('0x14')]);router['delete'](_0xd47f('0x9'),auth[_0xd47f('0xa')](),controller['destroy']);module[_0xd47f('0x15')]=router;
\ No newline at end of file
+var _0x04a5=['getSummary','create','post','clone','put','update','destroy','exports','multer','util','path','connect-timeout','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/:id','show','/:id/sessions','getSessions','/:id/answers','getAnswers','/:id/summary'];(function(_0x93e590,_0x2414b4){var _0x39bdea=function(_0x31957b){while(--_0x31957b){_0x93e590['push'](_0x93e590['shift']());}};_0x39bdea(++_0x2414b4);}(_0x04a5,0x174));var _0x504a=function(_0x27c25f,_0x4ff5fe){_0x27c25f=_0x27c25f-0x0;var _0x2da4c4=_0x04a5[_0x27c25f];return _0x2da4c4;};'use strict';var multer=require(_0x504a('0x0'));var util=require(_0x504a('0x1'));var path=require(_0x504a('0x2'));var timeout=require(_0x504a('0x3'));var express=require('express');var router=express[_0x504a('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0x504a('0x5'));var interaction=require(_0x504a('0x6'));var config=require(_0x504a('0x7'));var controller=require('./jscriptyProject.controller');router[_0x504a('0x8')]('/',auth[_0x504a('0x9')](),controller[_0x504a('0xa')]);router[_0x504a('0x8')](_0x504a('0xb'),auth[_0x504a('0x9')](),controller[_0x504a('0xc')]);router[_0x504a('0x8')](_0x504a('0xd'),auth['isAuthenticated'](),controller[_0x504a('0xe')]);router[_0x504a('0x8')](_0x504a('0xf'),auth[_0x504a('0x9')](),controller[_0x504a('0x10')]);router[_0x504a('0x8')](_0x504a('0x11'),auth['isAuthenticated'](),timeout('30s'),controller[_0x504a('0x12')]);router['post']('/',auth['isAuthenticated'](),controller[_0x504a('0x13')]);router[_0x504a('0x14')]('/:id/clone',auth['isAuthenticated'](),controller[_0x504a('0x15')]);router[_0x504a('0x16')]('/:id',auth[_0x504a('0x9')](),controller[_0x504a('0x17')]);router['delete'](_0x504a('0xb'),auth[_0x504a('0x9')](),controller[_0x504a('0x18')]);module[_0x504a('0x19')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb3f1=['name','TEXT','long','isObjectLike','formData','stringify','isString','setDataValue','format','{\x22name\x22:\x22%s\x22,\x22description\x22:\x22%s\x22,\x22pages\x22:[]}','description','BOOLEAN','sequelize','lodash','util','exports','STRING'];(function(_0x188f32,_0x2d0c86){var _0x56c2f5=function(_0x32b87f){while(--_0x32b87f){_0x188f32['push'](_0x188f32['shift']());}};_0x56c2f5(++_0x2d0c86);}(_0xb3f1,0x182));var _0x1b3f=function(_0x4dc437,_0x1704d0){_0x4dc437=_0x4dc437-0x0;var _0x5b228e=_0xb3f1[_0x4dc437];return _0x5b228e;};'use strict';var Sequelize=require(_0x1b3f('0x0'));var _=require(_0x1b3f('0x1'));var util=require(_0x1b3f('0x2'));module[_0x1b3f('0x3')]={'name':{'type':Sequelize[_0x1b3f('0x4')],'unique':_0x1b3f('0x5')},'description':{'type':Sequelize[_0x1b3f('0x4')]},'formData':{'type':Sequelize[_0x1b3f('0x6')](_0x1b3f('0x7')),'set':function(_0x2c64ea){if(_[_0x1b3f('0x8')](_0x2c64ea)){this['setDataValue'](_0x1b3f('0x9'),JSON[_0x1b3f('0xa')](_0x2c64ea));}else if(_[_0x1b3f('0xb')](_0x2c64ea)){this[_0x1b3f('0xc')]('formData',_0x2c64ea);}else{this['setDataValue'](_0x1b3f('0x9'),util[_0x1b3f('0xd')](_0x1b3f('0xe'),this['getDataValue'](_0x1b3f('0x5'))||'',this['getDataValue'](_0x1b3f('0xf'))||''));}}},'enableUncompleteSave':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'sendUnpauseOnSubmit':{'type':Sequelize[_0x1b3f('0x10')],'defaultValue':![]}};
\ No newline at end of file
+var _0x6029=['TEXT','long','isObjectLike','isString','setDataValue','formData','format','getDataValue','description','BOOLEAN','sequelize','lodash','util','exports','name'];(function(_0x17d9e3,_0x1f969c){var _0x14192d=function(_0x159745){while(--_0x159745){_0x17d9e3['push'](_0x17d9e3['shift']());}};_0x14192d(++_0x1f969c);}(_0x6029,0x73));var _0x9602=function(_0x160d4c,_0x4f136e){_0x160d4c=_0x160d4c-0x0;var _0x5d2ecc=_0x6029[_0x160d4c];return _0x5d2ecc;};'use strict';var Sequelize=require(_0x9602('0x0'));var _=require(_0x9602('0x1'));var util=require(_0x9602('0x2'));module[_0x9602('0x3')]={'name':{'type':Sequelize['STRING'],'unique':_0x9602('0x4')},'description':{'type':Sequelize['STRING']},'formData':{'type':Sequelize[_0x9602('0x5')](_0x9602('0x6')),'set':function(_0x4614b7){if(_[_0x9602('0x7')](_0x4614b7)){this['setDataValue']('formData',JSON['stringify'](_0x4614b7));}else if(_[_0x9602('0x8')](_0x4614b7)){this[_0x9602('0x9')](_0x9602('0xa'),_0x4614b7);}else{this[_0x9602('0x9')](_0x9602('0xa'),util[_0x9602('0xb')]('{\x22name\x22:\x22%s\x22,\x22description\x22:\x22%s\x22,\x22pages\x22:[]}',this[_0x9602('0xc')](_0x9602('0x4'))||'',this['getDataValue'](_0x9602('0xd'))||''));}}},'enableUncompleteSave':{'type':Sequelize[_0x9602('0xe')],'defaultValue':!![]},'sendUnpauseOnSubmit':{'type':Sequelize[_0x9602('0xe')],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbc92=['where','pick','filter','merge','VIRTUAL','options','include','findAll','rows','catch','find','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','clone','params','includeAll','omit','createdAt','getSessions','JscriptySessionReport','ProjectId','getAnswers','JscriptyAnswerReport','fromCharCode','indexOf','toString','replace','getSummary','startTime','starttime','parse','JscriptyQuestionReport','questionId','question','format','YYYY-MM-DD\x20HH:mm:ss','SessionId','isEmpty','now','setHeader','Content-disposition','attachment;\x20filename=','Jscripty_Project_%d_Summary_%s.csv','text/csv','download','/tmp/Jscripty_Project_%d_Summary_%s.csv','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','sendStatus','status','end','json','undefined','offset','count','limit','set','apply','reject','save','update','then','destroy','Projects','error','stack','name','send','index','map','JscriptyProject','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort'];(function(_0x208b83,_0x5377fd){var _0x412f2e=function(_0x312f88){while(--_0x312f88){_0x208b83['push'](_0x208b83['shift']());}};_0x412f2e(++_0x5377fd);}(_0xbc92,0xb0));var _0x2bc9=function(_0xccc0d4,_0x2f6bf7){_0xccc0d4=_0xccc0d4-0x0;var _0x27a653=_0xbc92[_0xccc0d4];return _0x27a653;};'use strict';var emlformat=require(_0x2bc9('0x0'));var rimraf=require(_0x2bc9('0x1'));var zipdir=require(_0x2bc9('0x2'));var jsonpatch=require(_0x2bc9('0x3'));var rp=require(_0x2bc9('0x4'));var moment=require(_0x2bc9('0x5'));var BPromise=require(_0x2bc9('0x6'));var Mustache=require(_0x2bc9('0x7'));var util=require(_0x2bc9('0x8'));var path=require(_0x2bc9('0x9'));var sox=require(_0x2bc9('0xa'));var csv=require(_0x2bc9('0xb'));var ejs=require(_0x2bc9('0xc'));var fs=require('fs');var fs_extra=require(_0x2bc9('0xd'));var _=require(_0x2bc9('0xe'));var squel=require(_0x2bc9('0xf'));var crypto=require('crypto');var jsforce=require(_0x2bc9('0x10'));var deskjs=require(_0x2bc9('0x11'));var toCsv=require(_0x2bc9('0xb'));var querystring=require(_0x2bc9('0x12'));var Papa=require(_0x2bc9('0x13'));var Redis=require(_0x2bc9('0x14'));var authService=require(_0x2bc9('0x15'));var qs=require(_0x2bc9('0x16'));var as=require(_0x2bc9('0x17'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x2bc9('0x18'))('api');var utils=require(_0x2bc9('0x19'));var config=require(_0x2bc9('0x1a'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0xe2a883,_0x5ec4b6){_0x5ec4b6=_0x5ec4b6||0xcc;return function(_0x413a00){if(_0x413a00){return _0xe2a883[_0x2bc9('0x1b')](_0x5ec4b6);}return _0xe2a883[_0x2bc9('0x1c')](_0x5ec4b6)[_0x2bc9('0x1d')]();};}function respondWithResult(_0x1f481a,_0x5f5236){_0x5f5236=_0x5f5236||0xc8;return function(_0x3720d4){if(_0x3720d4){return _0x1f481a[_0x2bc9('0x1c')](_0x5f5236)[_0x2bc9('0x1e')](_0x3720d4);}};}function respondWithFilteredResult(_0xbceb1c,_0x5a00bf){return function(_0x51f652){if(_0x51f652){var _0x185ff2=typeof _0x5a00bf['offset']==='undefined'&&typeof _0x5a00bf['limit']===_0x2bc9('0x1f');var _0x22c055=_0x51f652['count'];var _0x43d54b=_0x185ff2?0x0:_0x5a00bf[_0x2bc9('0x20')];var _0x1adb1b=_0x185ff2?_0x51f652[_0x2bc9('0x21')]:_0x5a00bf[_0x2bc9('0x20')]+_0x5a00bf[_0x2bc9('0x22')];var _0x3a94eb;if(_0x1adb1b>=_0x22c055){_0x1adb1b=_0x22c055;_0x3a94eb=0xc8;}else{_0x3a94eb=0xce;}_0xbceb1c[_0x2bc9('0x1c')](_0x3a94eb);return _0xbceb1c[_0x2bc9('0x23')]('Content-Range',_0x43d54b+'-'+_0x1adb1b+'/'+_0x22c055)[_0x2bc9('0x1e')](_0x51f652);}return null;};}function patchUpdates(_0x3c9d6d){return function(_0x4973a2){try{jsonpatch[_0x2bc9('0x24')](_0x4973a2,_0x3c9d6d,!![]);}catch(_0xef4726){return BPromise[_0x2bc9('0x25')](_0xef4726);}return _0x4973a2[_0x2bc9('0x26')]();};}function saveUpdates(_0x566098,_0x5a6b1b){return function(_0x3e39f3){if(_0x3e39f3){return _0x3e39f3[_0x2bc9('0x27')](_0x566098)[_0x2bc9('0x28')](function(_0x3a1526){return _0x3a1526;});}return null;};}function removeEntity(_0xe0b132,_0x1f5c57){return function(_0x8f271c){if(_0x8f271c){return _0x8f271c[_0x2bc9('0x29')]()[_0x2bc9('0x28')](function(){var _0x4a975c=_0x8f271c['get']({'plain':!![]});var _0xfa46dd=_0x2bc9('0x2a');return db['UserProfileResource'][_0x2bc9('0x29')]({'where':{'type':_0xfa46dd,'resourceId':_0x4a975c['id']}})[_0x2bc9('0x28')](function(){return _0x8f271c;});})[_0x2bc9('0x28')](function(){_0xe0b132[_0x2bc9('0x1c')](0xcc)[_0x2bc9('0x1d')]();});}};}function handleEntityNotFound(_0x4ff3a1,_0x59dda3){return function(_0x43534d){if(!_0x43534d){_0x4ff3a1[_0x2bc9('0x1b')](0x194);}return _0x43534d;};}function handleError(_0x1a39a1,_0x57fe90){_0x57fe90=_0x57fe90||0x1f4;return function(_0x4059ff){logger[_0x2bc9('0x2b')](_0x4059ff[_0x2bc9('0x2c')]);if(_0x4059ff['name']){delete _0x4059ff[_0x2bc9('0x2d')];}_0x1a39a1[_0x2bc9('0x1c')](_0x57fe90)[_0x2bc9('0x2e')](_0x4059ff);};}exports[_0x2bc9('0x2f')]=function(_0x56c005,_0xa6a648){var _0x500ae2={},_0x4e8f80={},_0x51f238={'count':0x0,'rows':[]};var _0x25c3bc=_[_0x2bc9('0x30')](db[_0x2bc9('0x31')][_0x2bc9('0x32')],function(_0x53b2fc){return{'name':_0x53b2fc[_0x2bc9('0x33')],'type':_0x53b2fc[_0x2bc9('0x34')][_0x2bc9('0x35')]};});_0x4e8f80[_0x2bc9('0x36')]=_[_0x2bc9('0x30')](_0x25c3bc,_0x2bc9('0x2d'));_0x4e8f80[_0x2bc9('0x37')]=_[_0x2bc9('0x38')](_0x56c005[_0x2bc9('0x37')]);_0x4e8f80[_0x2bc9('0x39')]=_[_0x2bc9('0x3a')](_0x4e8f80[_0x2bc9('0x36')],_0x4e8f80[_0x2bc9('0x37')]);_0x500ae2[_0x2bc9('0x3b')]=_[_0x2bc9('0x3a')](_0x4e8f80['model'],qs[_0x2bc9('0x3c')](_0x56c005[_0x2bc9('0x37')][_0x2bc9('0x3c')]));_0x500ae2[_0x2bc9('0x3b')]=_0x500ae2['attributes'][_0x2bc9('0x3d')]?_0x500ae2[_0x2bc9('0x3b')]:_0x4e8f80['model'];if(!_0x56c005['query'][_0x2bc9('0x3e')](_0x2bc9('0x3f'))){_0x500ae2['limit']=qs['limit'](_0x56c005[_0x2bc9('0x37')][_0x2bc9('0x22')]);_0x500ae2['offset']=qs[_0x2bc9('0x20')](_0x56c005[_0x2bc9('0x37')][_0x2bc9('0x20')]);}_0x500ae2[_0x2bc9('0x40')]=qs['sort'](_0x56c005[_0x2bc9('0x37')][_0x2bc9('0x41')]);_0x500ae2[_0x2bc9('0x42')]=qs['filters'](_[_0x2bc9('0x43')](_0x56c005[_0x2bc9('0x37')],_0x4e8f80[_0x2bc9('0x39')]),_0x25c3bc);if(_0x56c005[_0x2bc9('0x37')][_0x2bc9('0x44')]){_0x500ae2[_0x2bc9('0x42')]=_[_0x2bc9('0x45')](_0x500ae2[_0x2bc9('0x42')],{'$or':_['map'](_0x25c3bc,function(_0x400c80){if(_0x400c80[_0x2bc9('0x34')]!==_0x2bc9('0x46')){var _0x7b0a61={};_0x7b0a61[_0x400c80[_0x2bc9('0x2d')]]={'$like':'%'+_0x56c005[_0x2bc9('0x37')][_0x2bc9('0x44')]+'%'};return _0x7b0a61;}})});}_0x500ae2=_[_0x2bc9('0x45')]({},_0x500ae2,_0x56c005[_0x2bc9('0x47')]);var _0x4d82a5={'where':_0x500ae2[_0x2bc9('0x42')]};return db[_0x2bc9('0x31')][_0x2bc9('0x21')](_0x4d82a5)[_0x2bc9('0x28')](function(_0x330816){_0x51f238[_0x2bc9('0x21')]=_0x330816;if(_0x56c005[_0x2bc9('0x37')]['includeAll']){_0x500ae2[_0x2bc9('0x48')]=[{'all':!![]}];}return db[_0x2bc9('0x31')][_0x2bc9('0x49')](_0x500ae2);})[_0x2bc9('0x28')](function(_0x504163){_0x51f238[_0x2bc9('0x4a')]=_0x504163;return _0x51f238;})['then'](respondWithFilteredResult(_0xa6a648,_0x500ae2))[_0x2bc9('0x4b')](handleError(_0xa6a648,null));};exports['show']=function(_0x3ceab2,_0x1297cc){var _0x5d8e86={'raw':![],'where':{'id':_0x3ceab2['params']['id']}},_0x59deef={};_0x59deef[_0x2bc9('0x36')]=_['keys'](db[_0x2bc9('0x31')][_0x2bc9('0x32')]);_0x59deef['query']=_[_0x2bc9('0x38')](_0x3ceab2[_0x2bc9('0x37')]);_0x59deef[_0x2bc9('0x39')]=_[_0x2bc9('0x3a')](_0x59deef[_0x2bc9('0x36')],_0x59deef['query']);_0x5d8e86[_0x2bc9('0x3b')]=_[_0x2bc9('0x3a')](_0x59deef[_0x2bc9('0x36')],qs['fields'](_0x3ceab2['query']['fields']));_0x5d8e86[_0x2bc9('0x3b')]=_0x5d8e86['attributes']['length']?_0x5d8e86[_0x2bc9('0x3b')]:_0x59deef[_0x2bc9('0x36')];if(_0x3ceab2[_0x2bc9('0x37')]['includeAll']){_0x5d8e86['include']=[{'all':!![]}];}_0x5d8e86=_['merge']({},_0x5d8e86,_0x3ceab2[_0x2bc9('0x47')]);return db['JscriptyProject'][_0x2bc9('0x4c')](_0x5d8e86)[_0x2bc9('0x28')](handleEntityNotFound(_0x1297cc,null))['then'](respondWithResult(_0x1297cc,null))[_0x2bc9('0x4b')](handleError(_0x1297cc,null));};exports[_0x2bc9('0x4d')]=function(_0x11ec61,_0x55b343){return db['JscriptyProject'][_0x2bc9('0x4d')](_0x11ec61[_0x2bc9('0x4e')],{})[_0x2bc9('0x28')](function(_0x3ffedc){var _0x4f9d8b=_0x11ec61[_0x2bc9('0x4f')][_0x2bc9('0x50')]({'plain':!![]});if(!_0x4f9d8b)throw new Error(_0x2bc9('0x51'));if(_0x4f9d8b[_0x2bc9('0x52')]===_0x2bc9('0x4f')){var _0x379320=_0x3ffedc[_0x2bc9('0x50')]({'plain':!![]});var _0xfab269=_0x2bc9('0x2a');return db[_0x2bc9('0x53')][_0x2bc9('0x4c')]({'where':{'name':_0xfab269,'userProfileId':_0x4f9d8b[_0x2bc9('0x54')]},'raw':!![]})[_0x2bc9('0x28')](function(_0x5abab5){if(_0x5abab5&&_0x5abab5[_0x2bc9('0x55')]===0x0){return db[_0x2bc9('0x56')][_0x2bc9('0x4d')]({'name':_0x379320[_0x2bc9('0x2d')],'resourceId':_0x379320['id'],'type':_0x5abab5[_0x2bc9('0x2d')],'sectionId':_0x5abab5['id']},{})['then'](function(){return _0x3ffedc;});}else{return _0x3ffedc;}})[_0x2bc9('0x4b')](function(_0x3ebf72){logger[_0x2bc9('0x2b')](_0x2bc9('0x57'),_0x3ebf72);throw _0x3ebf72;});}return _0x3ffedc;})[_0x2bc9('0x28')](respondWithResult(_0x55b343,0xc9))[_0x2bc9('0x4b')](handleError(_0x55b343,null));};exports[_0x2bc9('0x58')]=function(_0x4fd4bb,_0x1ab910){var _0x3f1250={'where':{'id':_0x4fd4bb[_0x2bc9('0x59')]['id']}},_0x1407e6={};_0x1407e6[_0x2bc9('0x36')]=_[_0x2bc9('0x38')](db[_0x2bc9('0x31')][_0x2bc9('0x32')]);_0x3f1250[_0x2bc9('0x3b')]=_['intersection'](_0x1407e6[_0x2bc9('0x36')],qs[_0x2bc9('0x3c')](_0x4fd4bb[_0x2bc9('0x37')]['fields']));_0x3f1250[_0x2bc9('0x3b')]=_0x3f1250['attributes'][_0x2bc9('0x3d')]?_0x3f1250[_0x2bc9('0x3b')]:_0x1407e6[_0x2bc9('0x36')];if(_0x4fd4bb['query'][_0x2bc9('0x5a')]){_0x3f1250[_0x2bc9('0x48')]=[{'all':!![]}];}_0x3f1250=_['merge']({},_0x3f1250,_0x4fd4bb[_0x2bc9('0x47')]);return db[_0x2bc9('0x31')]['find'](_0x3f1250)['then'](handleEntityNotFound(_0x1ab910,null))[_0x2bc9('0x28')](function(_0x4a9800){if(_0x4a9800){var _0xb4532b=_0x4a9800[_0x2bc9('0x50')]({'plain':!![]});_0xb4532b=qs[_0x2bc9('0x5b')](_0xb4532b,['id',_0x2bc9('0x5c'),'updatedAt']);_0x4fd4bb[_0x2bc9('0x4e')]=_['omit'](_0x4fd4bb['body'],['id',_0x2bc9('0x5c'),'updatedAt']);return db[_0x2bc9('0x31')][_0x2bc9('0x4d')](_[_0x2bc9('0x45')](_0xb4532b,_0x4fd4bb[_0x2bc9('0x4e')]),{'include':_0x4fd4bb['query']['includeAll']?[{'all':!![]}]:undefined})[_0x2bc9('0x28')](function(_0x19765e){var _0x39948a=_0x4fd4bb[_0x2bc9('0x4f')]['get']({'plain':!![]});if(!_0x39948a)throw new Error(_0x2bc9('0x51'));if(_0x39948a[_0x2bc9('0x52')]===_0x2bc9('0x4f')){var _0x5d86d3=_0x19765e[_0x2bc9('0x50')]({'plain':!![]});var _0x5757cf=_0x2bc9('0x2a');return db[_0x2bc9('0x53')][_0x2bc9('0x4c')]({'where':{'name':_0x5757cf,'userProfileId':_0x39948a[_0x2bc9('0x54')]},'raw':!![]})['then'](function(_0x4a4346){if(_0x4a4346&&_0x4a4346[_0x2bc9('0x55')]===0x0){return db[_0x2bc9('0x56')][_0x2bc9('0x4d')]({'name':_0x5d86d3['name'],'resourceId':_0x5d86d3['id'],'type':_0x4a4346['name'],'sectionId':_0x4a4346['id']},{})[_0x2bc9('0x28')](function(){return _0x19765e;});}else{return _0x19765e;}})[_0x2bc9('0x4b')](function(_0x1d8e83){logger[_0x2bc9('0x2b')](_0x2bc9('0x57'),_0x1d8e83);throw _0x1d8e83;});}return _0x19765e;});}})[_0x2bc9('0x28')](respondWithResult(_0x1ab910,0xc9))[_0x2bc9('0x4b')](handleError(_0x1ab910,null));};exports[_0x2bc9('0x27')]=function(_0x3993e9,_0x9de598){if(_0x3993e9[_0x2bc9('0x4e')]['id']){delete _0x3993e9[_0x2bc9('0x4e')]['id'];}return db[_0x2bc9('0x31')][_0x2bc9('0x4c')]({'where':{'id':_0x3993e9[_0x2bc9('0x59')]['id']}})[_0x2bc9('0x28')](handleEntityNotFound(_0x9de598,null))[_0x2bc9('0x28')](saveUpdates(_0x3993e9['body'],null))[_0x2bc9('0x28')](respondWithResult(_0x9de598,null))['catch'](handleError(_0x9de598,null));};exports[_0x2bc9('0x29')]=function(_0x4d5da5,_0x466f5a){return db[_0x2bc9('0x31')][_0x2bc9('0x4c')]({'where':{'id':_0x4d5da5['params']['id']}})[_0x2bc9('0x28')](handleEntityNotFound(_0x466f5a,null))['then'](removeEntity(_0x466f5a,null))[_0x2bc9('0x4b')](handleError(_0x466f5a,null));};exports[_0x2bc9('0x5d')]=function(_0x4a75ef,_0x4cc7c8,_0x495c45){var _0x49301a={'raw':!![],'where':{}};var _0x538a82={};var _0x40ce3e={'count':0x0,'rows':[]};return db['JscriptyProject']['findOne']({'where':{'id':_0x4a75ef['params']['id']}})[_0x2bc9('0x28')](handleEntityNotFound(_0x4cc7c8,null))[_0x2bc9('0x28')](function(_0x4cf6d4){if(_0x4cf6d4){_0x538a82[_0x2bc9('0x36')]=_[_0x2bc9('0x38')](db[_0x2bc9('0x5e')][_0x2bc9('0x32')]);_0x538a82[_0x2bc9('0x37')]=_[_0x2bc9('0x38')](_0x4a75ef[_0x2bc9('0x37')]);_0x538a82[_0x2bc9('0x39')]=_[_0x2bc9('0x3a')](_0x538a82[_0x2bc9('0x36')],_0x538a82[_0x2bc9('0x37')]);_0x49301a[_0x2bc9('0x3b')]=_[_0x2bc9('0x3a')](_0x538a82['model'],qs[_0x2bc9('0x3c')](_0x4a75ef['query'][_0x2bc9('0x3c')]));_0x49301a[_0x2bc9('0x3b')]=_0x49301a[_0x2bc9('0x3b')][_0x2bc9('0x3d')]?_0x49301a[_0x2bc9('0x3b')]:_0x538a82['model'];if(!_0x4a75ef['query'][_0x2bc9('0x3e')]('nolimit')){_0x49301a['limit']=qs[_0x2bc9('0x22')](_0x4a75ef[_0x2bc9('0x37')][_0x2bc9('0x22')]);_0x49301a[_0x2bc9('0x20')]=qs[_0x2bc9('0x20')](_0x4a75ef[_0x2bc9('0x37')][_0x2bc9('0x20')]);}_0x49301a[_0x2bc9('0x40')]=qs[_0x2bc9('0x41')](_0x4a75ef[_0x2bc9('0x37')]['sort']);_0x49301a[_0x2bc9('0x42')]=qs[_0x2bc9('0x39')](_[_0x2bc9('0x43')](_0x4a75ef[_0x2bc9('0x37')],_0x538a82['filters']));_0x49301a[_0x2bc9('0x42')][_0x2bc9('0x5f')]=_0x4cf6d4['id'];if(_0x4a75ef[_0x2bc9('0x37')][_0x2bc9('0x44')]){_0x49301a['where']=_['merge'](_0x49301a[_0x2bc9('0x42')],{'$or':_[_0x2bc9('0x30')](_0x49301a['attributes'],function(_0x59de44){var _0x3c61da={};_0x3c61da[_0x59de44]={'$like':'%'+_0x4a75ef[_0x2bc9('0x37')][_0x2bc9('0x44')]+'%'};return _0x3c61da;})});}_0x49301a=_[_0x2bc9('0x45')]({},_0x49301a,_0x4a75ef[_0x2bc9('0x47')]);return db['JscriptySessionReport'][_0x2bc9('0x21')]({'where':_0x49301a[_0x2bc9('0x42')]})[_0x2bc9('0x28')](function(_0x45eba0){_0x40ce3e[_0x2bc9('0x21')]=_0x45eba0;if(_0x4a75ef[_0x2bc9('0x37')][_0x2bc9('0x5a')]){_0x49301a[_0x2bc9('0x48')]=[{'all':!![]}];}return db['JscriptySessionReport']['findAll'](_0x49301a);})['then'](function(_0x54e60d){_0x40ce3e['rows']=_0x54e60d;return _0x40ce3e;});}})[_0x2bc9('0x28')](respondWithFilteredResult(_0x4cc7c8,_0x49301a))[_0x2bc9('0x4b')](handleError(_0x4cc7c8,null));};exports[_0x2bc9('0x60')]=function(_0x30fc3d,_0x56bc0a,_0x4a4664){var _0x364857={'raw':!![],'where':{}};var _0x546a02={};var _0x5c8775={'count':0x0,'rows':[]};return db[_0x2bc9('0x31')]['findOne']({'where':{'id':_0x30fc3d['params']['id']}})[_0x2bc9('0x28')](handleEntityNotFound(_0x56bc0a,null))[_0x2bc9('0x28')](function(_0x47cf89){if(_0x47cf89){_0x546a02[_0x2bc9('0x36')]=_[_0x2bc9('0x38')](db[_0x2bc9('0x61')]['rawAttributes']);_0x546a02[_0x2bc9('0x37')]=_[_0x2bc9('0x38')](_0x30fc3d[_0x2bc9('0x37')]);_0x546a02[_0x2bc9('0x39')]=_[_0x2bc9('0x3a')](_0x546a02['model'],_0x546a02[_0x2bc9('0x37')]);_0x364857[_0x2bc9('0x3b')]=_[_0x2bc9('0x3a')](_0x546a02[_0x2bc9('0x36')],qs[_0x2bc9('0x3c')](_0x30fc3d['query'][_0x2bc9('0x3c')]));_0x364857['attributes']=_0x364857[_0x2bc9('0x3b')][_0x2bc9('0x3d')]?_0x364857[_0x2bc9('0x3b')]:_0x546a02[_0x2bc9('0x36')];if(!_0x30fc3d[_0x2bc9('0x37')][_0x2bc9('0x3e')](_0x2bc9('0x3f'))){_0x364857[_0x2bc9('0x22')]=qs[_0x2bc9('0x22')](_0x30fc3d[_0x2bc9('0x37')]['limit']);_0x364857['offset']=qs[_0x2bc9('0x20')](_0x30fc3d[_0x2bc9('0x37')][_0x2bc9('0x20')]);}_0x364857[_0x2bc9('0x40')]=qs[_0x2bc9('0x41')](_0x30fc3d['query'][_0x2bc9('0x41')]);_0x364857[_0x2bc9('0x42')]=qs['filters'](_[_0x2bc9('0x43')](_0x30fc3d[_0x2bc9('0x37')],_0x546a02[_0x2bc9('0x39')]));_0x364857[_0x2bc9('0x42')][_0x2bc9('0x5f')]=_0x47cf89['id'];if(_0x30fc3d[_0x2bc9('0x37')][_0x2bc9('0x44')]){_0x364857[_0x2bc9('0x42')]=_[_0x2bc9('0x45')](_0x364857[_0x2bc9('0x42')],{'$or':_['map'](_0x364857[_0x2bc9('0x3b')],function(_0x367ef3){var _0x54f3bd={};_0x54f3bd[_0x367ef3]={'$like':'%'+_0x30fc3d['query'][_0x2bc9('0x44')]+'%'};return _0x54f3bd;})});}_0x364857=_[_0x2bc9('0x45')]({},_0x364857,_0x30fc3d[_0x2bc9('0x47')]);return db[_0x2bc9('0x61')][_0x2bc9('0x21')]({'where':_0x364857[_0x2bc9('0x42')]})[_0x2bc9('0x28')](function(_0x1ee4d2){_0x5c8775[_0x2bc9('0x21')]=_0x1ee4d2;if(_0x30fc3d['query'][_0x2bc9('0x5a')]){_0x364857['include']=[{'all':!![]}];}return db[_0x2bc9('0x61')][_0x2bc9('0x49')](_0x364857);})['then'](function(_0x4eab2c){_0x5c8775[_0x2bc9('0x4a')]=_0x4eab2c;return _0x5c8775;});}})[_0x2bc9('0x28')](respondWithFilteredResult(_0x56bc0a,_0x364857))[_0x2bc9('0x4b')](handleError(_0x56bc0a,null));};function char(_0x9472fb){return'number'===typeof _0x9472fb?String[_0x2bc9('0x62')]['apply'](null,arguments):_0x9472fb;}function needsEncapsulation(_0x58e90a){return!!_0x58e90a&&(_0x58e90a['toString']()[_0x2bc9('0x63')](char(0xd))>=0x0||_0x58e90a[_0x2bc9('0x64')]()[_0x2bc9('0x63')](char(0xa))>=0x0||_0x58e90a[_0x2bc9('0x64')]()[_0x2bc9('0x63')](char(0x2c))>=0x0||_0x58e90a[_0x2bc9('0x64')]()[_0x2bc9('0x63')](char(0x22))>=0x0);}function encapsulate(_0x12e16b){var _0x543b94=char(0x22),_0x87afb7='\x5c'+char(0x22),_0x2210da=_0x12e16b[_0x2bc9('0x64')]()[_0x2bc9('0x65')](new RegExp(_0x543b94,'g'),_0x87afb7);return _0x543b94+_0x2210da+_0x543b94;}exports[_0x2bc9('0x66')]=function(_0x127fdf,_0x2f52c7,_0x17edb0){var _0x4abd98,_0x23dacc;var _0x280e3a={'where':{'ProjectId':_0x127fdf['params']['id']}};if(_0x127fdf['query'][_0x2bc9('0x67')]){_0x280e3a[_0x2bc9('0x42')][_0x2bc9('0x68')]=JSON[_0x2bc9('0x69')](_0x127fdf[_0x2bc9('0x37')][_0x2bc9('0x67')]);}return db[_0x2bc9('0x5e')][_0x2bc9('0x49')](_0x280e3a)[_0x2bc9('0x28')](handleEntityNotFound(_0x2f52c7,null))[_0x2bc9('0x28')](function(_0x27b001){if(_0x27b001){_0x4abd98=_0x27b001;return db[_0x2bc9('0x6a')]['findAll']({'where':{'SessionId':{'$in':_[_0x2bc9('0x30')](_0x4abd98,'id')},'ProjectId':_0x127fdf['params']['id']},'order':'-createdAt'});}})[_0x2bc9('0x28')](handleEntityNotFound(_0x2f52c7,null))[_0x2bc9('0x28')](function(_0x32c856){if(_0x32c856){_0x23dacc=_0x32c856;var _0xbb5446={};for(var _0x22fe19=0x0,_0x451678=_0x23dacc[_0x2bc9('0x3d')];_0x22fe19<_0x451678;_0x22fe19++){if(!_0xbb5446[_0x2bc9('0x3e')](_0x23dacc[_0x22fe19][_0x2bc9('0x6b')])){_0xbb5446[_0x23dacc[_0x22fe19]['questionId']]=needsEncapsulation(_0x23dacc[_0x22fe19]['question'])?encapsulate(_0x23dacc[_0x22fe19][_0x2bc9('0x6c')]):_0x23dacc[_0x22fe19]['question'];}}var _0x5e0024=[],_0x17f008={};for(var _0xc2119c=0x0,_0x16bdfe=_0x4abd98[_0x2bc9('0x3d')];_0xc2119c<_0x16bdfe;_0xc2119c++){_0x17f008={'ProjectId':_0x127fdf['params']['id'],'SessionId':_0x4abd98[_0xc2119c]['id'],'StartTime':moment(_0x4abd98[_0xc2119c]['starttime'])[_0x2bc9('0x6d')](_0x2bc9('0x6e'))};for(var _0x2e4ee3=0x0,_0x70d3d0=_0x23dacc[_0x2bc9('0x3d')];_0x2e4ee3<_0x70d3d0;_0x2e4ee3++){if(_0x23dacc[_0x2e4ee3][_0x2bc9('0x6f')]==_0x4abd98[_0xc2119c]['id']&&_0xbb5446[_0x2bc9('0x3e')](_0x23dacc[_0x2e4ee3][_0x2bc9('0x6b')])){_0x17f008[_0xbb5446[_0x23dacc[_0x2e4ee3][_0x2bc9('0x6b')]]]=_0x23dacc[_0x2e4ee3]['answer'];}}for(var _0x5db4a8 in _0xbb5446){if(!_0x17f008[_0x2bc9('0x3e')](_0xbb5446[_0x5db4a8])){_0x17f008[_0xbb5446[_0x5db4a8]]=null;}}_0x5e0024['push'](_0x17f008);}return _0x5e0024;}})[_0x2bc9('0x28')](function(_0x57d138){if(!_[_0x2bc9('0x70')](_0x57d138)){var _0x202c26=toCsv(_0x57d138);var _0x14e630=Date[_0x2bc9('0x71')]();fs['writeFileSync'](util['format']('/tmp/Jscripty_Project_%d_Summary_%s.csv',_0x127fdf[_0x2bc9('0x59')]['id'],_0x14e630),_0x202c26);_0x2f52c7[_0x2bc9('0x72')](_0x2bc9('0x73'),_0x2bc9('0x74')+util[_0x2bc9('0x6d')](_0x2bc9('0x75'),_0x127fdf['params']['id'],_0x14e630));_0x2f52c7[_0x2bc9('0x72')]('Content-type',_0x2bc9('0x76'));return _0x2f52c7[_0x2bc9('0x77')](util[_0x2bc9('0x6d')](_0x2bc9('0x78'),_0x127fdf[_0x2bc9('0x59')]['id'],_0x14e630));}else{return _0x2f52c7[_0x2bc9('0x1b')](0xcc);}})[_0x2bc9('0x4b')](handleError(_0x2f52c7,null));};
\ No newline at end of file
+var _0x88b5=['clone','params','omit','createdAt','updatedAt','Projects','hasOwnProperty','pick','ProjectId','JscriptySessionReport','findAll','getAnswers','findOne','JscriptyAnswerReport','rows','number','fromCharCode','toString','indexOf','getSummary','startTime','parse','questionId','question','format','YYYY-MM-DD\x20HH:mm:ss','SessionId','answer','push','isEmpty','now','writeFileSync','setHeader','Content-disposition','attachment;\x20filename=','Jscripty_Project_%d_Summary_%s.csv','Content-type','text/csv','download','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','apply','save','update','then','destroy','error','stack','name','send','map','JscriptyProject','rawAttributes','fieldName','type','model','query','keys','filters','intersection','attributes','fields','length','nolimit','order','sort','where','filter','merge','VIRTUAL','options','includeAll','include','catch','find','create','body','user','role','get','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s'];(function(_0x9e9d6f,_0x3e5986){var _0x1a066d=function(_0x2c596e){while(--_0x2c596e){_0x9e9d6f['push'](_0x9e9d6f['shift']());}};_0x1a066d(++_0x3e5986);}(_0x88b5,0x10f));var _0x588b=function(_0x4f26a0,_0x540dbf){_0x4f26a0=_0x4f26a0-0x0;var _0x24e437=_0x88b5[_0x4f26a0];return _0x24e437;};'use strict';var emlformat=require(_0x588b('0x0'));var rimraf=require(_0x588b('0x1'));var zipdir=require(_0x588b('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x588b('0x3'));var moment=require(_0x588b('0x4'));var BPromise=require(_0x588b('0x5'));var Mustache=require(_0x588b('0x6'));var util=require(_0x588b('0x7'));var path=require(_0x588b('0x8'));var sox=require('sox');var csv=require(_0x588b('0x9'));var ejs=require(_0x588b('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x588b('0xb'));var crypto=require(_0x588b('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x588b('0xd'));var toCsv=require(_0x588b('0x9'));var querystring=require(_0x588b('0xe'));var Papa=require(_0x588b('0xf'));var Redis=require(_0x588b('0x10'));var authService=require('../../components/auth/service');var qs=require(_0x588b('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x588b('0x12'));var utils=require(_0x588b('0x13'));var config=require(_0x588b('0x14'));var licenseUtil=require(_0x588b('0x15'));var db=require(_0x588b('0x16'))['db'];function respondWithStatusCode(_0x22ee1a,_0x3e360c){_0x3e360c=_0x3e360c||0xcc;return function(_0x4febe0){if(_0x4febe0){return _0x22ee1a[_0x588b('0x17')](_0x3e360c);}return _0x22ee1a[_0x588b('0x18')](_0x3e360c)[_0x588b('0x19')]();};}function respondWithResult(_0x2312e2,_0x6df6ab){_0x6df6ab=_0x6df6ab||0xc8;return function(_0x280fc4){if(_0x280fc4){return _0x2312e2[_0x588b('0x18')](_0x6df6ab)[_0x588b('0x1a')](_0x280fc4);}};}function respondWithFilteredResult(_0xe5e240,_0x18e45c){return function(_0x2efe87){if(_0x2efe87){var _0x414692=typeof _0x18e45c[_0x588b('0x1b')]==='undefined'&&typeof _0x18e45c['limit']===_0x588b('0x1c');var _0x2b9aae=_0x2efe87[_0x588b('0x1d')];var _0x2ef1a2=_0x414692?0x0:_0x18e45c[_0x588b('0x1b')];var _0x640e19=_0x414692?_0x2efe87['count']:_0x18e45c[_0x588b('0x1b')]+_0x18e45c[_0x588b('0x1e')];var _0x6851fd;if(_0x640e19>=_0x2b9aae){_0x640e19=_0x2b9aae;_0x6851fd=0xc8;}else{_0x6851fd=0xce;}_0xe5e240['status'](_0x6851fd);return _0xe5e240[_0x588b('0x1f')](_0x588b('0x20'),_0x2ef1a2+'-'+_0x640e19+'/'+_0x2b9aae)[_0x588b('0x1a')](_0x2efe87);}return null;};}function patchUpdates(_0x11bce3){return function(_0x1ec4a2){try{jsonpatch[_0x588b('0x21')](_0x1ec4a2,_0x11bce3,!![]);}catch(_0x2e17f0){return BPromise['reject'](_0x2e17f0);}return _0x1ec4a2[_0x588b('0x22')]();};}function saveUpdates(_0x4ed54d,_0x2bdeea){return function(_0x232c85){if(_0x232c85){return _0x232c85[_0x588b('0x23')](_0x4ed54d)[_0x588b('0x24')](function(_0x341802){return _0x341802;});}return null;};}function removeEntity(_0x17cfd4,_0x1a9675){return function(_0x445312){if(_0x445312){return _0x445312[_0x588b('0x25')]()[_0x588b('0x24')](function(){var _0x231ebd=_0x445312['get']({'plain':!![]});var _0x13885f='Projects';return db['UserProfileResource']['destroy']({'where':{'type':_0x13885f,'resourceId':_0x231ebd['id']}})[_0x588b('0x24')](function(){return _0x445312;});})[_0x588b('0x24')](function(){_0x17cfd4[_0x588b('0x18')](0xcc)[_0x588b('0x19')]();});}};}function handleEntityNotFound(_0x524a94,_0x3aa95e){return function(_0x33dd0b){if(!_0x33dd0b){_0x524a94[_0x588b('0x17')](0x194);}return _0x33dd0b;};}function handleError(_0x4ea3bf,_0x15db0c){_0x15db0c=_0x15db0c||0x1f4;return function(_0x13f9c4){logger[_0x588b('0x26')](_0x13f9c4[_0x588b('0x27')]);if(_0x13f9c4[_0x588b('0x28')]){delete _0x13f9c4[_0x588b('0x28')];}_0x4ea3bf[_0x588b('0x18')](_0x15db0c)[_0x588b('0x29')](_0x13f9c4);};}exports['index']=function(_0xddef60,_0x13afeb){var _0x12dcb4={},_0x2b1a26={},_0x59a252={'count':0x0,'rows':[]};var _0x49fcfa=_[_0x588b('0x2a')](db[_0x588b('0x2b')][_0x588b('0x2c')],function(_0x45e54c){return{'name':_0x45e54c[_0x588b('0x2d')],'type':_0x45e54c[_0x588b('0x2e')]['key']};});_0x2b1a26[_0x588b('0x2f')]=_['map'](_0x49fcfa,_0x588b('0x28'));_0x2b1a26[_0x588b('0x30')]=_[_0x588b('0x31')](_0xddef60[_0x588b('0x30')]);_0x2b1a26[_0x588b('0x32')]=_[_0x588b('0x33')](_0x2b1a26[_0x588b('0x2f')],_0x2b1a26[_0x588b('0x30')]);_0x12dcb4[_0x588b('0x34')]=_['intersection'](_0x2b1a26[_0x588b('0x2f')],qs[_0x588b('0x35')](_0xddef60[_0x588b('0x30')][_0x588b('0x35')]));_0x12dcb4['attributes']=_0x12dcb4[_0x588b('0x34')][_0x588b('0x36')]?_0x12dcb4[_0x588b('0x34')]:_0x2b1a26['model'];if(!_0xddef60['query']['hasOwnProperty'](_0x588b('0x37'))){_0x12dcb4['limit']=qs['limit'](_0xddef60[_0x588b('0x30')][_0x588b('0x1e')]);_0x12dcb4[_0x588b('0x1b')]=qs[_0x588b('0x1b')](_0xddef60[_0x588b('0x30')][_0x588b('0x1b')]);}_0x12dcb4[_0x588b('0x38')]=qs[_0x588b('0x39')](_0xddef60['query'][_0x588b('0x39')]);_0x12dcb4[_0x588b('0x3a')]=qs[_0x588b('0x32')](_['pick'](_0xddef60[_0x588b('0x30')],_0x2b1a26[_0x588b('0x32')]),_0x49fcfa);if(_0xddef60['query'][_0x588b('0x3b')]){_0x12dcb4[_0x588b('0x3a')]=_[_0x588b('0x3c')](_0x12dcb4[_0x588b('0x3a')],{'$or':_['map'](_0x49fcfa,function(_0x5a612b){if(_0x5a612b[_0x588b('0x2e')]!==_0x588b('0x3d')){var _0x298b9b={};_0x298b9b[_0x5a612b[_0x588b('0x28')]]={'$like':'%'+_0xddef60[_0x588b('0x30')]['filter']+'%'};return _0x298b9b;}})});}_0x12dcb4=_[_0x588b('0x3c')]({},_0x12dcb4,_0xddef60[_0x588b('0x3e')]);var _0x469a56={'where':_0x12dcb4['where']};return db[_0x588b('0x2b')][_0x588b('0x1d')](_0x469a56)['then'](function(_0x36837e){_0x59a252['count']=_0x36837e;if(_0xddef60[_0x588b('0x30')][_0x588b('0x3f')]){_0x12dcb4[_0x588b('0x40')]=[{'all':!![]}];}return db[_0x588b('0x2b')]['findAll'](_0x12dcb4);})[_0x588b('0x24')](function(_0x33c77f){_0x59a252['rows']=_0x33c77f;return _0x59a252;})['then'](respondWithFilteredResult(_0x13afeb,_0x12dcb4))[_0x588b('0x41')](handleError(_0x13afeb,null));};exports['show']=function(_0x3715a6,_0x230747){var _0x428d0f={'raw':![],'where':{'id':_0x3715a6['params']['id']}},_0x18a9c2={};_0x18a9c2[_0x588b('0x2f')]=_['keys'](db[_0x588b('0x2b')]['rawAttributes']);_0x18a9c2[_0x588b('0x30')]=_[_0x588b('0x31')](_0x3715a6['query']);_0x18a9c2[_0x588b('0x32')]=_['intersection'](_0x18a9c2['model'],_0x18a9c2['query']);_0x428d0f[_0x588b('0x34')]=_[_0x588b('0x33')](_0x18a9c2[_0x588b('0x2f')],qs['fields'](_0x3715a6[_0x588b('0x30')][_0x588b('0x35')]));_0x428d0f[_0x588b('0x34')]=_0x428d0f[_0x588b('0x34')]['length']?_0x428d0f[_0x588b('0x34')]:_0x18a9c2[_0x588b('0x2f')];if(_0x3715a6[_0x588b('0x30')][_0x588b('0x3f')]){_0x428d0f[_0x588b('0x40')]=[{'all':!![]}];}_0x428d0f=_['merge']({},_0x428d0f,_0x3715a6[_0x588b('0x3e')]);return db[_0x588b('0x2b')][_0x588b('0x42')](_0x428d0f)[_0x588b('0x24')](handleEntityNotFound(_0x230747,null))[_0x588b('0x24')](respondWithResult(_0x230747,null))[_0x588b('0x41')](handleError(_0x230747,null));};exports[_0x588b('0x43')]=function(_0x4d0bb1,_0x59ca9c){return db[_0x588b('0x2b')][_0x588b('0x43')](_0x4d0bb1[_0x588b('0x44')],{})[_0x588b('0x24')](function(_0x30c404){var _0x9dbce4=_0x4d0bb1[_0x588b('0x45')]['get']({'plain':!![]});if(!_0x9dbce4)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x9dbce4[_0x588b('0x46')]===_0x588b('0x45')){var _0xf6109=_0x30c404[_0x588b('0x47')]({'plain':!![]});var _0x211053='Projects';return db[_0x588b('0x48')][_0x588b('0x42')]({'where':{'name':_0x211053,'userProfileId':_0x9dbce4[_0x588b('0x49')]},'raw':!![]})[_0x588b('0x24')](function(_0x2424cd){if(_0x2424cd&&_0x2424cd[_0x588b('0x4a')]===0x0){return db[_0x588b('0x4b')][_0x588b('0x43')]({'name':_0xf6109[_0x588b('0x28')],'resourceId':_0xf6109['id'],'type':_0x2424cd[_0x588b('0x28')],'sectionId':_0x2424cd['id']},{})[_0x588b('0x24')](function(){return _0x30c404;});}else{return _0x30c404;}})[_0x588b('0x41')](function(_0x1c5107){logger[_0x588b('0x26')](_0x588b('0x4c'),_0x1c5107);throw _0x1c5107;});}return _0x30c404;})[_0x588b('0x24')](respondWithResult(_0x59ca9c,0xc9))['catch'](handleError(_0x59ca9c,null));};exports[_0x588b('0x4d')]=function(_0x493fb4,_0x1c8432){var _0x34344c={'where':{'id':_0x493fb4[_0x588b('0x4e')]['id']}},_0x3dba5a={};_0x3dba5a[_0x588b('0x2f')]=_[_0x588b('0x31')](db[_0x588b('0x2b')][_0x588b('0x2c')]);_0x34344c[_0x588b('0x34')]=_['intersection'](_0x3dba5a['model'],qs[_0x588b('0x35')](_0x493fb4[_0x588b('0x30')][_0x588b('0x35')]));_0x34344c['attributes']=_0x34344c[_0x588b('0x34')]['length']?_0x34344c[_0x588b('0x34')]:_0x3dba5a[_0x588b('0x2f')];if(_0x493fb4[_0x588b('0x30')][_0x588b('0x3f')]){_0x34344c[_0x588b('0x40')]=[{'all':!![]}];}_0x34344c=_['merge']({},_0x34344c,_0x493fb4['options']);return db[_0x588b('0x2b')][_0x588b('0x42')](_0x34344c)[_0x588b('0x24')](handleEntityNotFound(_0x1c8432,null))[_0x588b('0x24')](function(_0x5766d8){if(_0x5766d8){var _0x3fb683=_0x5766d8[_0x588b('0x47')]({'plain':!![]});_0x3fb683=qs[_0x588b('0x4f')](_0x3fb683,['id',_0x588b('0x50'),_0x588b('0x51')]);_0x493fb4[_0x588b('0x44')]=_[_0x588b('0x4f')](_0x493fb4[_0x588b('0x44')],['id',_0x588b('0x50'),'updatedAt']);return db['JscriptyProject'][_0x588b('0x43')](_[_0x588b('0x3c')](_0x3fb683,_0x493fb4[_0x588b('0x44')]),{'include':_0x493fb4[_0x588b('0x30')]['includeAll']?[{'all':!![]}]:undefined})[_0x588b('0x24')](function(_0x5efa86){var _0x37a0d2=_0x493fb4[_0x588b('0x45')][_0x588b('0x47')]({'plain':!![]});if(!_0x37a0d2)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x37a0d2['role']===_0x588b('0x45')){var _0x3ea50d=_0x5efa86[_0x588b('0x47')]({'plain':!![]});var _0x2f447d=_0x588b('0x52');return db['UserProfileSection']['find']({'where':{'name':_0x2f447d,'userProfileId':_0x37a0d2[_0x588b('0x49')]},'raw':!![]})[_0x588b('0x24')](function(_0x1ccbf2){if(_0x1ccbf2&&_0x1ccbf2[_0x588b('0x4a')]===0x0){return db[_0x588b('0x4b')]['create']({'name':_0x3ea50d[_0x588b('0x28')],'resourceId':_0x3ea50d['id'],'type':_0x1ccbf2[_0x588b('0x28')],'sectionId':_0x1ccbf2['id']},{})[_0x588b('0x24')](function(){return _0x5efa86;});}else{return _0x5efa86;}})[_0x588b('0x41')](function(_0x3de71e){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x3de71e);throw _0x3de71e;});}return _0x5efa86;});}})['then'](respondWithResult(_0x1c8432,0xc9))[_0x588b('0x41')](handleError(_0x1c8432,null));};exports[_0x588b('0x23')]=function(_0x33455d,_0x5ee378){if(_0x33455d[_0x588b('0x44')]['id']){delete _0x33455d[_0x588b('0x44')]['id'];}return db[_0x588b('0x2b')][_0x588b('0x42')]({'where':{'id':_0x33455d[_0x588b('0x4e')]['id']}})[_0x588b('0x24')](handleEntityNotFound(_0x5ee378,null))[_0x588b('0x24')](saveUpdates(_0x33455d[_0x588b('0x44')],null))[_0x588b('0x24')](respondWithResult(_0x5ee378,null))[_0x588b('0x41')](handleError(_0x5ee378,null));};exports[_0x588b('0x25')]=function(_0x5747c4,_0x2ccd93){return db['JscriptyProject'][_0x588b('0x42')]({'where':{'id':_0x5747c4['params']['id']}})[_0x588b('0x24')](handleEntityNotFound(_0x2ccd93,null))[_0x588b('0x24')](removeEntity(_0x2ccd93,null))[_0x588b('0x41')](handleError(_0x2ccd93,null));};exports['getSessions']=function(_0x1b6589,_0x1c5c3e,_0x19522c){var _0x31dad3={'raw':!![],'where':{}};var _0xe2a5e4={};var _0x225be0={'count':0x0,'rows':[]};return db[_0x588b('0x2b')]['findOne']({'where':{'id':_0x1b6589[_0x588b('0x4e')]['id']}})[_0x588b('0x24')](handleEntityNotFound(_0x1c5c3e,null))[_0x588b('0x24')](function(_0x57d292){if(_0x57d292){_0xe2a5e4['model']=_[_0x588b('0x31')](db['JscriptySessionReport'][_0x588b('0x2c')]);_0xe2a5e4[_0x588b('0x30')]=_[_0x588b('0x31')](_0x1b6589[_0x588b('0x30')]);_0xe2a5e4[_0x588b('0x32')]=_[_0x588b('0x33')](_0xe2a5e4['model'],_0xe2a5e4['query']);_0x31dad3[_0x588b('0x34')]=_[_0x588b('0x33')](_0xe2a5e4[_0x588b('0x2f')],qs[_0x588b('0x35')](_0x1b6589['query'][_0x588b('0x35')]));_0x31dad3[_0x588b('0x34')]=_0x31dad3[_0x588b('0x34')][_0x588b('0x36')]?_0x31dad3[_0x588b('0x34')]:_0xe2a5e4[_0x588b('0x2f')];if(!_0x1b6589['query'][_0x588b('0x53')](_0x588b('0x37'))){_0x31dad3[_0x588b('0x1e')]=qs[_0x588b('0x1e')](_0x1b6589[_0x588b('0x30')][_0x588b('0x1e')]);_0x31dad3[_0x588b('0x1b')]=qs[_0x588b('0x1b')](_0x1b6589[_0x588b('0x30')][_0x588b('0x1b')]);}_0x31dad3[_0x588b('0x38')]=qs[_0x588b('0x39')](_0x1b6589['query'][_0x588b('0x39')]);_0x31dad3[_0x588b('0x3a')]=qs[_0x588b('0x32')](_[_0x588b('0x54')](_0x1b6589[_0x588b('0x30')],_0xe2a5e4[_0x588b('0x32')]));_0x31dad3['where'][_0x588b('0x55')]=_0x57d292['id'];if(_0x1b6589[_0x588b('0x30')][_0x588b('0x3b')]){_0x31dad3[_0x588b('0x3a')]=_[_0x588b('0x3c')](_0x31dad3[_0x588b('0x3a')],{'$or':_[_0x588b('0x2a')](_0x31dad3[_0x588b('0x34')],function(_0x100c16){var _0x3766c2={};_0x3766c2[_0x100c16]={'$like':'%'+_0x1b6589[_0x588b('0x30')][_0x588b('0x3b')]+'%'};return _0x3766c2;})});}_0x31dad3=_[_0x588b('0x3c')]({},_0x31dad3,_0x1b6589[_0x588b('0x3e')]);return db[_0x588b('0x56')][_0x588b('0x1d')]({'where':_0x31dad3[_0x588b('0x3a')]})[_0x588b('0x24')](function(_0x5c703d){_0x225be0['count']=_0x5c703d;if(_0x1b6589[_0x588b('0x30')][_0x588b('0x3f')]){_0x31dad3['include']=[{'all':!![]}];}return db['JscriptySessionReport'][_0x588b('0x57')](_0x31dad3);})[_0x588b('0x24')](function(_0x3ee7ab){_0x225be0['rows']=_0x3ee7ab;return _0x225be0;});}})['then'](respondWithFilteredResult(_0x1c5c3e,_0x31dad3))[_0x588b('0x41')](handleError(_0x1c5c3e,null));};exports[_0x588b('0x58')]=function(_0x15d7f5,_0x50a7c4,_0x3fb6e3){var _0xbb9a84={'raw':!![],'where':{}};var _0x452f57={};var _0xcc3947={'count':0x0,'rows':[]};return db['JscriptyProject'][_0x588b('0x59')]({'where':{'id':_0x15d7f5[_0x588b('0x4e')]['id']}})[_0x588b('0x24')](handleEntityNotFound(_0x50a7c4,null))[_0x588b('0x24')](function(_0x3e0f68){if(_0x3e0f68){_0x452f57['model']=_['keys'](db[_0x588b('0x5a')]['rawAttributes']);_0x452f57['query']=_[_0x588b('0x31')](_0x15d7f5[_0x588b('0x30')]);_0x452f57[_0x588b('0x32')]=_[_0x588b('0x33')](_0x452f57[_0x588b('0x2f')],_0x452f57[_0x588b('0x30')]);_0xbb9a84[_0x588b('0x34')]=_[_0x588b('0x33')](_0x452f57['model'],qs['fields'](_0x15d7f5['query'][_0x588b('0x35')]));_0xbb9a84[_0x588b('0x34')]=_0xbb9a84[_0x588b('0x34')]['length']?_0xbb9a84[_0x588b('0x34')]:_0x452f57[_0x588b('0x2f')];if(!_0x15d7f5[_0x588b('0x30')][_0x588b('0x53')](_0x588b('0x37'))){_0xbb9a84[_0x588b('0x1e')]=qs[_0x588b('0x1e')](_0x15d7f5[_0x588b('0x30')]['limit']);_0xbb9a84['offset']=qs['offset'](_0x15d7f5['query'][_0x588b('0x1b')]);}_0xbb9a84['order']=qs['sort'](_0x15d7f5[_0x588b('0x30')][_0x588b('0x39')]);_0xbb9a84[_0x588b('0x3a')]=qs['filters'](_['pick'](_0x15d7f5['query'],_0x452f57[_0x588b('0x32')]));_0xbb9a84[_0x588b('0x3a')]['ProjectId']=_0x3e0f68['id'];if(_0x15d7f5[_0x588b('0x30')][_0x588b('0x3b')]){_0xbb9a84[_0x588b('0x3a')]=_[_0x588b('0x3c')](_0xbb9a84[_0x588b('0x3a')],{'$or':_[_0x588b('0x2a')](_0xbb9a84[_0x588b('0x34')],function(_0x297a4f){var _0x31a785={};_0x31a785[_0x297a4f]={'$like':'%'+_0x15d7f5[_0x588b('0x30')][_0x588b('0x3b')]+'%'};return _0x31a785;})});}_0xbb9a84=_['merge']({},_0xbb9a84,_0x15d7f5[_0x588b('0x3e')]);return db[_0x588b('0x5a')][_0x588b('0x1d')]({'where':_0xbb9a84[_0x588b('0x3a')]})[_0x588b('0x24')](function(_0x557275){_0xcc3947[_0x588b('0x1d')]=_0x557275;if(_0x15d7f5[_0x588b('0x30')][_0x588b('0x3f')]){_0xbb9a84[_0x588b('0x40')]=[{'all':!![]}];}return db['JscriptyAnswerReport']['findAll'](_0xbb9a84);})['then'](function(_0x35da40){_0xcc3947[_0x588b('0x5b')]=_0x35da40;return _0xcc3947;});}})['then'](respondWithFilteredResult(_0x50a7c4,_0xbb9a84))[_0x588b('0x41')](handleError(_0x50a7c4,null));};function char(_0x3228a4){return _0x588b('0x5c')===typeof _0x3228a4?String[_0x588b('0x5d')][_0x588b('0x21')](null,arguments):_0x3228a4;}function needsEncapsulation(_0x16299c){return!!_0x16299c&&(_0x16299c[_0x588b('0x5e')]()[_0x588b('0x5f')](char(0xd))>=0x0||_0x16299c[_0x588b('0x5e')]()['indexOf'](char(0xa))>=0x0||_0x16299c[_0x588b('0x5e')]()['indexOf'](char(0x2c))>=0x0||_0x16299c[_0x588b('0x5e')]()['indexOf'](char(0x22))>=0x0);}function encapsulate(_0x561fc3){var _0x2ba3ce=char(0x22),_0x1293b6='\x5c'+char(0x22),_0x5bf75e=_0x561fc3['toString']()['replace'](new RegExp(_0x2ba3ce,'g'),_0x1293b6);return _0x2ba3ce+_0x5bf75e+_0x2ba3ce;}exports[_0x588b('0x60')]=function(_0x11408c,_0x112e57,_0x485efd){var _0x1e86b2,_0x4832b1;var _0x138535={'where':{'ProjectId':_0x11408c['params']['id']}};if(_0x11408c[_0x588b('0x30')][_0x588b('0x61')]){_0x138535['where']['starttime']=JSON[_0x588b('0x62')](_0x11408c['query']['startTime']);}return db[_0x588b('0x56')][_0x588b('0x57')](_0x138535)[_0x588b('0x24')](handleEntityNotFound(_0x112e57,null))[_0x588b('0x24')](function(_0x9a04a1){if(_0x9a04a1){_0x1e86b2=_0x9a04a1;return db['JscriptyQuestionReport'][_0x588b('0x57')]({'where':{'SessionId':{'$in':_[_0x588b('0x2a')](_0x1e86b2,'id')},'ProjectId':_0x11408c['params']['id']},'order':'-createdAt'});}})['then'](handleEntityNotFound(_0x112e57,null))[_0x588b('0x24')](function(_0x317acd){if(_0x317acd){_0x4832b1=_0x317acd;var _0xffe55c={};for(var _0x424467=0x0,_0x17cea0=_0x4832b1[_0x588b('0x36')];_0x424467<_0x17cea0;_0x424467++){if(!_0xffe55c[_0x588b('0x53')](_0x4832b1[_0x424467][_0x588b('0x63')])){_0xffe55c[_0x4832b1[_0x424467][_0x588b('0x63')]]=needsEncapsulation(_0x4832b1[_0x424467][_0x588b('0x64')])?encapsulate(_0x4832b1[_0x424467][_0x588b('0x64')]):_0x4832b1[_0x424467][_0x588b('0x64')];}}var _0x49cbfb=[],_0x3fea39={};for(var _0x2159f2=0x0,_0x2d7ae5=_0x1e86b2['length'];_0x2159f2<_0x2d7ae5;_0x2159f2++){_0x3fea39={'ProjectId':_0x11408c[_0x588b('0x4e')]['id'],'SessionId':_0x1e86b2[_0x2159f2]['id'],'StartTime':moment(_0x1e86b2[_0x2159f2]['starttime'])[_0x588b('0x65')](_0x588b('0x66'))};for(var _0x1c1d57=0x0,_0x51e3e8=_0x4832b1[_0x588b('0x36')];_0x1c1d57<_0x51e3e8;_0x1c1d57++){if(_0x4832b1[_0x1c1d57][_0x588b('0x67')]==_0x1e86b2[_0x2159f2]['id']&&_0xffe55c[_0x588b('0x53')](_0x4832b1[_0x1c1d57][_0x588b('0x63')])){_0x3fea39[_0xffe55c[_0x4832b1[_0x1c1d57]['questionId']]]=_0x4832b1[_0x1c1d57][_0x588b('0x68')];}}for(var _0x3f090e in _0xffe55c){if(!_0x3fea39['hasOwnProperty'](_0xffe55c[_0x3f090e])){_0x3fea39[_0xffe55c[_0x3f090e]]=null;}}_0x49cbfb[_0x588b('0x69')](_0x3fea39);}return _0x49cbfb;}})[_0x588b('0x24')](function(_0x4e90c4){if(!_[_0x588b('0x6a')](_0x4e90c4)){var _0x707691=toCsv(_0x4e90c4);var _0x561078=Date[_0x588b('0x6b')]();fs[_0x588b('0x6c')](util['format']('/tmp/Jscripty_Project_%d_Summary_%s.csv',_0x11408c[_0x588b('0x4e')]['id'],_0x561078),_0x707691);_0x112e57[_0x588b('0x6d')](_0x588b('0x6e'),_0x588b('0x6f')+util[_0x588b('0x65')](_0x588b('0x70'),_0x11408c['params']['id'],_0x561078));_0x112e57[_0x588b('0x6d')](_0x588b('0x71'),_0x588b('0x72'));return _0x112e57[_0x588b('0x73')](util['format']('/tmp/Jscripty_Project_%d_Summary_%s.csv',_0x11408c[_0x588b('0x4e')]['id'],_0x561078));}else{return _0x112e57[_0x588b('0x17')](0xcc);}})['catch'](handleError(_0x112e57,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2cd3=['jscripty_projects','lodash','../../config/logger','api','moment','bluebird','request-promise','path','./jscriptyProject.attributes','exports','define','JscriptyProject'];(function(_0x3947c9,_0x4d6c97){var _0x2e7871=function(_0x1236cc){while(--_0x1236cc){_0x3947c9['push'](_0x3947c9['shift']());}};_0x2e7871(++_0x4d6c97);}(_0x2cd3,0xf1));var _0x32cd=function(_0x42c118,_0x197006){_0x42c118=_0x42c118-0x0;var _0x112ebd=_0x2cd3[_0x42c118];return _0x112ebd;};'use strict';var _=require(_0x32cd('0x0'));var util=require('util');var logger=require(_0x32cd('0x1'))(_0x32cd('0x2'));var moment=require(_0x32cd('0x3'));var BPromise=require(_0x32cd('0x4'));var rp=require(_0x32cd('0x5'));var fs=require('fs');var path=require(_0x32cd('0x6'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0x32cd('0x7'));module[_0x32cd('0x8')]=function(_0x1af8c8,_0x1024e0){return _0x1af8c8[_0x32cd('0x9')](_0x32cd('0xa'),attributes,{'tableName':_0x32cd('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x1c88=['./jscriptyProject.attributes','exports','define','JscriptyProject','jscripty_projects','lodash','../../config/logger','api','moment','path','rimraf','../../config/environment'];(function(_0x24ddf6,_0x114e56){var _0x393d70=function(_0x12c818){while(--_0x12c818){_0x24ddf6['push'](_0x24ddf6['shift']());}};_0x393d70(++_0x114e56);}(_0x1c88,0x1a9));var _0x81c8=function(_0x2055a7,_0x415a4c){_0x2055a7=_0x2055a7-0x0;var _0x42a14d=_0x1c88[_0x2055a7];return _0x42a14d;};'use strict';var _=require(_0x81c8('0x0'));var util=require('util');var logger=require(_0x81c8('0x1'))(_0x81c8('0x2'));var moment=require(_0x81c8('0x3'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0x81c8('0x4'));var rimraf=require(_0x81c8('0x5'));var config=require(_0x81c8('0x6'));var attributes=require(_0x81c8('0x7'));module[_0x81c8('0x8')]=function(_0x3e5721,_0x3f4e27){return _0x3e5721[_0x81c8('0x9')](_0x81c8('0xa'),attributes,{'tableName':_0x81c8('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb43b=['rpc','../../config/environment','http','request','info','request\x20sent','debug','JscriptyProject,\x20%s,\x20%s,\x20%s','stringify','error','code','message','JscriptyProject,\x20%s,\x20%s','catch','lodash','util','bluebird','randomstring','ioredis','../../config/utils','../../config/logger'];(function(_0x50c11e,_0x5e233e){var _0xfaa6ab=function(_0x22b3c3){while(--_0x22b3c3){_0x50c11e['push'](_0x50c11e['shift']());}};_0xfaa6ab(++_0x5e233e);}(_0xb43b,0x1b2));var _0xbb43=function(_0xd83a51,_0x141a7b){_0xd83a51=_0xd83a51-0x0;var _0x1d5184=_0xb43b[_0xd83a51];return _0x1d5184;};'use strict';var _=require(_0xbb43('0x0'));var util=require(_0xbb43('0x1'));var moment=require('moment');var BPromise=require(_0xbb43('0x2'));var rs=require(_0xbb43('0x3'));var fs=require('fs');var Redis=require(_0xbb43('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0xbb43('0x5'));var logger=require(_0xbb43('0x6'))(_0xbb43('0x7'));var config=require(_0xbb43('0x8'));var jayson=require('jayson/promise');var client=jayson['client'][_0xbb43('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x553520,_0x80fe61,_0x1ccd49){return new BPromise(function(_0x2a2f11,_0x29ae1a){return client[_0xbb43('0xa')](_0x553520,_0x1ccd49)['then'](function(_0x208c2b){logger[_0xbb43('0xb')]('JscriptyProject,\x20%s,\x20%s',_0x80fe61,_0xbb43('0xc'));logger[_0xbb43('0xd')](_0xbb43('0xe'),_0x80fe61,_0xbb43('0xc'),JSON[_0xbb43('0xf')](_0x208c2b));if(_0x208c2b[_0xbb43('0x10')]){if(_0x208c2b['error'][_0xbb43('0x11')]===0x1f4){logger[_0xbb43('0x10')]('JscriptyProject,\x20%s,\x20%s',_0x80fe61,_0x208c2b['error'][_0xbb43('0x12')]);return _0x29ae1a(_0x208c2b['error']['message']);}logger[_0xbb43('0x10')]('JscriptyProject,\x20%s,\x20%s',_0x80fe61,_0x208c2b[_0xbb43('0x10')][_0xbb43('0x12')]);return _0x2a2f11(_0x208c2b['error']['message']);}else{logger['info'](_0xbb43('0x13'),_0x80fe61,_0xbb43('0xc'));_0x2a2f11(_0x208c2b['result']['message']);}})[_0xbb43('0x14')](function(_0x563ce1){logger['error'](_0xbb43('0x13'),_0x80fe61,_0x563ce1);_0x29ae1a(_0x563ce1);});});}
\ No newline at end of file
+var _0xa9e0=['http','info','JscriptyProject,\x20%s,\x20%s','request\x20sent','debug','JscriptyProject,\x20%s,\x20%s,\x20%s','code','error','message','result','catch','lodash','util','moment','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise'];(function(_0x4aaf3b,_0x201d64){var _0x4206c0=function(_0x19f011){while(--_0x19f011){_0x4aaf3b['push'](_0x4aaf3b['shift']());}};_0x4206c0(++_0x201d64);}(_0xa9e0,0x123));var _0x0a9e=function(_0xf50820,_0x56f041){_0xf50820=_0xf50820-0x0;var _0x2a9b10=_0xa9e0[_0xf50820];return _0x2a9b10;};'use strict';var _=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var moment=require(_0x0a9e('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x0a9e('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x0a9e('0x4'));var logger=require(_0x0a9e('0x5'))(_0x0a9e('0x6'));var config=require(_0x0a9e('0x7'));var jayson=require(_0x0a9e('0x8'));var client=jayson['client'][_0x0a9e('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x441e3a,_0x2cc193,_0x5f41ea){return new BPromise(function(_0x503809,_0xe42b77){return client['request'](_0x441e3a,_0x5f41ea)['then'](function(_0x39753a){logger[_0x0a9e('0xa')](_0x0a9e('0xb'),_0x2cc193,_0x0a9e('0xc'));logger[_0x0a9e('0xd')](_0x0a9e('0xe'),_0x2cc193,'request\x20sent',JSON['stringify'](_0x39753a));if(_0x39753a['error']){if(_0x39753a['error'][_0x0a9e('0xf')]===0x1f4){logger[_0x0a9e('0x10')](_0x0a9e('0xb'),_0x2cc193,_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);return _0xe42b77(_0x39753a[_0x0a9e('0x10')]['message']);}logger[_0x0a9e('0x10')](_0x0a9e('0xb'),_0x2cc193,_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);return _0x503809(_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);}else{logger['info'](_0x0a9e('0xb'),_0x2cc193,'request\x20sent');_0x503809(_0x39753a[_0x0a9e('0x12')]['message']);}})[_0x0a9e('0x13')](function(_0x12066b){logger['error'](_0x0a9e('0xb'),_0x2cc193,_0x12066b);_0xe42b77(_0x12066b);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf23b=['util','path','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./jscriptyQuestionReport.controller','get','/describe','isAuthenticated','describe','/:id','show','post','put','delete','destroy','exports'];(function(_0xef4ff0,_0x1e2014){var _0x87e5cb=function(_0x56259b){while(--_0x56259b){_0xef4ff0['push'](_0xef4ff0['shift']());}};_0x87e5cb(++_0x1e2014);}(_0xf23b,0xe4));var _0xbf23=function(_0x2a0bd4,_0x1f9bd2){_0x2a0bd4=_0x2a0bd4-0x0;var _0x295499=_0xf23b[_0x2a0bd4];return _0x295499;};'use strict';var multer=require('multer');var util=require(_0xbf23('0x0'));var path=require(_0xbf23('0x1'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0xbf23('0x2')]();var fs_extra=require(_0xbf23('0x3'));var auth=require(_0xbf23('0x4'));var interaction=require(_0xbf23('0x5'));var config=require(_0xbf23('0x6'));var controller=require(_0xbf23('0x7'));router[_0xbf23('0x8')]('/',auth['isAuthenticated'](),controller['index']);router['get'](_0xbf23('0x9'),auth[_0xbf23('0xa')](),controller[_0xbf23('0xb')]);router['get'](_0xbf23('0xc'),auth[_0xbf23('0xa')](),controller[_0xbf23('0xd')]);router[_0xbf23('0xe')]('/',auth['isAuthenticated'](),controller['create']);router[_0xbf23('0xf')]('/:id',auth[_0xbf23('0xa')](),controller['update']);router[_0xbf23('0x10')](_0xbf23('0xc'),auth[_0xbf23('0xa')](),controller[_0xbf23('0x11')]);module[_0xbf23('0x12')]=router;
\ No newline at end of file
+var _0x1d62=['index','isAuthenticated','describe','get','show','post','create','update','delete','/:id','destroy','exports','multer','path','connect-timeout','express','fs-extra','../../config/environment','./jscriptyQuestionReport.controller'];(function(_0x341e0f,_0x4a09d0){var _0x59555a=function(_0x4343a8){while(--_0x4343a8){_0x341e0f['push'](_0x341e0f['shift']());}};_0x59555a(++_0x4a09d0);}(_0x1d62,0x1d4));var _0x21d6=function(_0x1c32df,_0x206814){_0x1c32df=_0x1c32df-0x0;var _0x6c0c33=_0x1d62[_0x1c32df];return _0x6c0c33;};'use strict';var multer=require(_0x21d6('0x0'));var util=require('util');var path=require(_0x21d6('0x1'));var timeout=require(_0x21d6('0x2'));var express=require(_0x21d6('0x3'));var router=express['Router']();var fs_extra=require(_0x21d6('0x4'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x21d6('0x5'));var controller=require(_0x21d6('0x6'));router['get']('/',auth['isAuthenticated'](),controller[_0x21d6('0x7')]);router['get']('/describe',auth[_0x21d6('0x8')](),controller[_0x21d6('0x9')]);router[_0x21d6('0xa')]('/:id',auth[_0x21d6('0x8')](),controller[_0x21d6('0xb')]);router[_0x21d6('0xc')]('/',auth['isAuthenticated'](),controller[_0x21d6('0xd')]);router['put']('/:id',auth[_0x21d6('0x8')](),controller[_0x21d6('0xe')]);router[_0x21d6('0xf')](_0x21d6('0x10'),auth[_0x21d6('0x8')](),controller[_0x21d6('0x11')]);module[_0x21d6('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a54=['long','STRING','sequelize','exports','TEXT'];(function(_0x4a747d,_0x3b747f){var _0x3a5b5c=function(_0x4b3e81){while(--_0x4b3e81){_0x4a747d['push'](_0x4a747d['shift']());}};_0x3a5b5c(++_0x3b747f);}(_0x7a54,0x106));var _0x47a5=function(_0x4dd00b,_0x11c1b8){_0x4dd00b=_0x4dd00b-0x0;var _0x26fdc8=_0x7a54[_0x4dd00b];return _0x26fdc8;};'use strict';var Sequelize=require(_0x47a5('0x0'));module[_0x47a5('0x1')]={'question':{'type':Sequelize[_0x47a5('0x2')]},'answer':{'type':Sequelize['TEXT'](_0x47a5('0x3'))},'membername':{'type':Sequelize[_0x47a5('0x4')]},'projectname':{'type':Sequelize['STRING']},'queue':{'type':Sequelize[_0x47a5('0x4')]},'uniqueid':{'type':Sequelize[_0x47a5('0x4')]},'calleridname':{'type':Sequelize[_0x47a5('0x4')]},'calleridnum':{'type':Sequelize[_0x47a5('0x4')]},'questionId':{'type':Sequelize[_0x47a5('0x4')]}};
\ No newline at end of file
+var _0x7a54=['long','STRING','sequelize','exports','TEXT'];(function(_0x3b0731,_0xcf9925){var _0x4204d7=function(_0x635ac5){while(--_0x635ac5){_0x3b0731['push'](_0x3b0731['shift']());}};_0x4204d7(++_0xcf9925);}(_0x7a54,0x106));var _0x47a5=function(_0x2001cf,_0x2a5a8e){_0x2001cf=_0x2001cf-0x0;var _0x6956d9=_0x7a54[_0x2001cf];return _0x6956d9;};'use strict';var Sequelize=require(_0x47a5('0x0'));module[_0x47a5('0x1')]={'question':{'type':Sequelize[_0x47a5('0x2')]},'answer':{'type':Sequelize['TEXT'](_0x47a5('0x3'))},'membername':{'type':Sequelize[_0x47a5('0x4')]},'projectname':{'type':Sequelize['STRING']},'queue':{'type':Sequelize[_0x47a5('0x4')]},'uniqueid':{'type':Sequelize[_0x47a5('0x4')]},'calleridname':{'type':Sequelize[_0x47a5('0x4')]},'calleridnum':{'type':Sequelize[_0x47a5('0x4')]},'questionId':{'type':Sequelize[_0x47a5('0x4')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3c6e=['to-csv','ejs','fs-extra','lodash','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','end','status','undefined','limit','offset','count','set','Content-Range','json','update','then','destroy','sendStatus','error','stack','name','send','index','JscriptyQuestionReport','rawAttributes','fieldName','type','key','model','map','keys','query','filters','intersection','fields','attributes','hasOwnProperty','nolimit','order','sort','where','pick','filter','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','length','merge','find','create','body','describe','rimraf','zip-dir','request-promise','moment','bluebird','util','path','sox'];(function(_0x2a0b90,_0x3cd40a){var _0x59011b=function(_0x382949){while(--_0x382949){_0x2a0b90['push'](_0x2a0b90['shift']());}};_0x59011b(++_0x3cd40a);}(_0x3c6e,0x16f));var _0xe3c6=function(_0x2d9eae,_0x1fe7ef){_0x2d9eae=_0x2d9eae-0x0;var _0x33bb54=_0x3c6e[_0x2d9eae];return _0x33bb54;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xe3c6('0x0'));var zipdir=require(_0xe3c6('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xe3c6('0x2'));var moment=require(_0xe3c6('0x3'));var BPromise=require(_0xe3c6('0x4'));var Mustache=require('mustache');var util=require(_0xe3c6('0x5'));var path=require(_0xe3c6('0x6'));var sox=require(_0xe3c6('0x7'));var csv=require(_0xe3c6('0x8'));var ejs=require(_0xe3c6('0x9'));var fs=require('fs');var fs_extra=require(_0xe3c6('0xa'));var _=require(_0xe3c6('0xb'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0xe3c6('0xc'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0xe3c6('0xd'));var Papa=require(_0xe3c6('0xe'));var Redis=require(_0xe3c6('0xf'));var authService=require(_0xe3c6('0x10'));var qs=require(_0xe3c6('0x11'));var as=require(_0xe3c6('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xe3c6('0x13'))('api');var utils=require(_0xe3c6('0x14'));var config=require(_0xe3c6('0x15'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x47055a,_0x2b6f9d){_0x2b6f9d=_0x2b6f9d||0xcc;return function(_0x3b201a){if(_0x3b201a){return _0x47055a['sendStatus'](_0x2b6f9d);}return _0x47055a['status'](_0x2b6f9d)[_0xe3c6('0x16')]();};}function respondWithResult(_0x5da92c,_0x3eb30d){_0x3eb30d=_0x3eb30d||0xc8;return function(_0x41d9a7){if(_0x41d9a7){return _0x5da92c[_0xe3c6('0x17')](_0x3eb30d)['json'](_0x41d9a7);}};}function respondWithFilteredResult(_0x43da66,_0x51cd25){return function(_0x38e5c4){if(_0x38e5c4){var _0xf34953=typeof _0x51cd25['offset']===_0xe3c6('0x18')&&typeof _0x51cd25[_0xe3c6('0x19')]===_0xe3c6('0x18');var _0x59cf82=_0x38e5c4['count'];var _0x21f113=_0xf34953?0x0:_0x51cd25[_0xe3c6('0x1a')];var _0x1022b5=_0xf34953?_0x38e5c4[_0xe3c6('0x1b')]:_0x51cd25[_0xe3c6('0x1a')]+_0x51cd25[_0xe3c6('0x19')];var _0x2955c1;if(_0x1022b5>=_0x59cf82){_0x1022b5=_0x59cf82;_0x2955c1=0xc8;}else{_0x2955c1=0xce;}_0x43da66[_0xe3c6('0x17')](_0x2955c1);return _0x43da66[_0xe3c6('0x1c')](_0xe3c6('0x1d'),_0x21f113+'-'+_0x1022b5+'/'+_0x59cf82)[_0xe3c6('0x1e')](_0x38e5c4);}return null;};}function patchUpdates(_0x2063f1){return function(_0x1ca0b4){try{jsonpatch['apply'](_0x1ca0b4,_0x2063f1,!![]);}catch(_0x20be33){return BPromise['reject'](_0x20be33);}return _0x1ca0b4['save']();};}function saveUpdates(_0x4f9bd0,_0x2105eb){return function(_0x5a5885){if(_0x5a5885){return _0x5a5885[_0xe3c6('0x1f')](_0x4f9bd0)[_0xe3c6('0x20')](function(_0x57fd11){return _0x57fd11;});}return null;};}function removeEntity(_0x35f22e,_0x3d484b){return function(_0x45f106){if(_0x45f106){return _0x45f106[_0xe3c6('0x21')]()[_0xe3c6('0x20')](function(){_0x35f22e[_0xe3c6('0x17')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4c358a,_0x47d932){return function(_0x33ecbf){if(!_0x33ecbf){_0x4c358a[_0xe3c6('0x22')](0x194);}return _0x33ecbf;};}function handleError(_0x4090c6,_0x233aed){_0x233aed=_0x233aed||0x1f4;return function(_0x40c4a3){logger[_0xe3c6('0x23')](_0x40c4a3[_0xe3c6('0x24')]);if(_0x40c4a3[_0xe3c6('0x25')]){delete _0x40c4a3[_0xe3c6('0x25')];}_0x4090c6[_0xe3c6('0x17')](_0x233aed)[_0xe3c6('0x26')](_0x40c4a3);};}exports[_0xe3c6('0x27')]=function(_0x6e8455,_0x37b1f4){var _0x35f7b5={},_0x2b63db={},_0x29e3a6={'count':0x0,'rows':[]};var _0xa2d390=_['map'](db[_0xe3c6('0x28')][_0xe3c6('0x29')],function(_0x3e696a){return{'name':_0x3e696a[_0xe3c6('0x2a')],'type':_0x3e696a[_0xe3c6('0x2b')][_0xe3c6('0x2c')]};});_0x2b63db[_0xe3c6('0x2d')]=_[_0xe3c6('0x2e')](_0xa2d390,_0xe3c6('0x25'));_0x2b63db['query']=_[_0xe3c6('0x2f')](_0x6e8455[_0xe3c6('0x30')]);_0x2b63db[_0xe3c6('0x31')]=_[_0xe3c6('0x32')](_0x2b63db['model'],_0x2b63db[_0xe3c6('0x30')]);_0x35f7b5['attributes']=_[_0xe3c6('0x32')](_0x2b63db['model'],qs[_0xe3c6('0x33')](_0x6e8455['query']['fields']));_0x35f7b5[_0xe3c6('0x34')]=_0x35f7b5[_0xe3c6('0x34')]['length']?_0x35f7b5[_0xe3c6('0x34')]:_0x2b63db[_0xe3c6('0x2d')];if(!_0x6e8455[_0xe3c6('0x30')][_0xe3c6('0x35')](_0xe3c6('0x36'))){_0x35f7b5[_0xe3c6('0x19')]=qs[_0xe3c6('0x19')](_0x6e8455['query'][_0xe3c6('0x19')]);_0x35f7b5[_0xe3c6('0x1a')]=qs[_0xe3c6('0x1a')](_0x6e8455['query']['offset']);}_0x35f7b5[_0xe3c6('0x37')]=qs[_0xe3c6('0x38')](_0x6e8455[_0xe3c6('0x30')][_0xe3c6('0x38')]);_0x35f7b5[_0xe3c6('0x39')]=qs[_0xe3c6('0x31')](_[_0xe3c6('0x3a')](_0x6e8455['query'],_0x2b63db[_0xe3c6('0x31')]),_0xa2d390);if(_0x6e8455['query'][_0xe3c6('0x3b')]){_0x35f7b5[_0xe3c6('0x39')]=_['merge'](_0x35f7b5[_0xe3c6('0x39')],{'$or':_[_0xe3c6('0x2e')](_0xa2d390,function(_0x53815f){if(_0x53815f[_0xe3c6('0x2b')]!==_0xe3c6('0x3c')){var _0x386667={};_0x386667[_0x53815f[_0xe3c6('0x25')]]={'$like':'%'+_0x6e8455[_0xe3c6('0x30')][_0xe3c6('0x3b')]+'%'};return _0x386667;}})});}_0x35f7b5=_['merge']({},_0x35f7b5,_0x6e8455[_0xe3c6('0x3d')]);var _0x1e2ae7={'where':_0x35f7b5[_0xe3c6('0x39')]};return db[_0xe3c6('0x28')][_0xe3c6('0x1b')](_0x1e2ae7)[_0xe3c6('0x20')](function(_0xb5517a){_0x29e3a6[_0xe3c6('0x1b')]=_0xb5517a;if(_0x6e8455[_0xe3c6('0x30')][_0xe3c6('0x3e')]){_0x35f7b5[_0xe3c6('0x3f')]=[{'all':!![]}];}return db[_0xe3c6('0x28')][_0xe3c6('0x40')](_0x35f7b5);})['then'](function(_0x47eec7){_0x29e3a6[_0xe3c6('0x41')]=_0x47eec7;return _0x29e3a6;})[_0xe3c6('0x20')](respondWithFilteredResult(_0x37b1f4,_0x35f7b5))[_0xe3c6('0x42')](handleError(_0x37b1f4,null));};exports[_0xe3c6('0x43')]=function(_0x779bef,_0x28721e){var _0x5e9af5={'raw':!![],'where':{'id':_0x779bef[_0xe3c6('0x44')]['id']}},_0x3b67a0={};_0x3b67a0[_0xe3c6('0x2d')]=_[_0xe3c6('0x2f')](db[_0xe3c6('0x28')][_0xe3c6('0x29')]);_0x3b67a0[_0xe3c6('0x30')]=_[_0xe3c6('0x2f')](_0x779bef['query']);_0x3b67a0['filters']=_['intersection'](_0x3b67a0[_0xe3c6('0x2d')],_0x3b67a0[_0xe3c6('0x30')]);_0x5e9af5[_0xe3c6('0x34')]=_['intersection'](_0x3b67a0[_0xe3c6('0x2d')],qs['fields'](_0x779bef[_0xe3c6('0x30')][_0xe3c6('0x33')]));_0x5e9af5[_0xe3c6('0x34')]=_0x5e9af5['attributes'][_0xe3c6('0x45')]?_0x5e9af5[_0xe3c6('0x34')]:_0x3b67a0['model'];if(_0x779bef[_0xe3c6('0x30')][_0xe3c6('0x3e')]){_0x5e9af5[_0xe3c6('0x3f')]=[{'all':!![]}];}_0x5e9af5=_[_0xe3c6('0x46')]({},_0x5e9af5,_0x779bef['options']);return db[_0xe3c6('0x28')][_0xe3c6('0x47')](_0x5e9af5)[_0xe3c6('0x20')](handleEntityNotFound(_0x28721e,null))[_0xe3c6('0x20')](respondWithResult(_0x28721e,null))[_0xe3c6('0x42')](handleError(_0x28721e,null));};exports[_0xe3c6('0x48')]=function(_0xbe463,_0x287d8c){return db['JscriptyQuestionReport'][_0xe3c6('0x48')](_0xbe463[_0xe3c6('0x49')],{})['then'](respondWithResult(_0x287d8c,0xc9))['catch'](handleError(_0x287d8c,null));};exports[_0xe3c6('0x1f')]=function(_0x38272a,_0x381d94){if(_0x38272a['body']['id']){delete _0x38272a['body']['id'];}return db['JscriptyQuestionReport'][_0xe3c6('0x47')]({'where':{'id':_0x38272a[_0xe3c6('0x44')]['id']}})[_0xe3c6('0x20')](handleEntityNotFound(_0x381d94,null))['then'](saveUpdates(_0x38272a[_0xe3c6('0x49')],null))['then'](respondWithResult(_0x381d94,null))[_0xe3c6('0x42')](handleError(_0x381d94,null));};exports[_0xe3c6('0x21')]=function(_0x49f8de,_0x3c69f1){return db[_0xe3c6('0x28')][_0xe3c6('0x47')]({'where':{'id':_0x49f8de['params']['id']}})[_0xe3c6('0x20')](handleEntityNotFound(_0x3c69f1,null))[_0xe3c6('0x20')](removeEntity(_0x3c69f1,null))[_0xe3c6('0x42')](handleError(_0x3c69f1,null));};exports[_0xe3c6('0x4a')]=function(_0x44e05b,_0x4dda8a){return db[_0xe3c6('0x28')][_0xe3c6('0x4a')]()[_0xe3c6('0x20')](respondWithResult(_0x4dda8a,null))['catch'](handleError(_0x4dda8a,null));};
\ No newline at end of file
+var _0xecf4=['name','send','index','map','rawAttributes','fieldName','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','filter','merge','VIRTUAL','options','JscriptyQuestionReport','include','findAll','rows','catch','show','includeAll','find','create','body','params','describe','eml-format','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','lodash','squel','jsforce','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','update','destroy','then','end','error','stack'];(function(_0x30d74b,_0x4e619f){var _0x5c13e5=function(_0x449d8){while(--_0x449d8){_0x30d74b['push'](_0x30d74b['shift']());}};_0x5c13e5(++_0x4e619f);}(_0xecf4,0x1d9));var _0x4ecf=function(_0x19e928,_0x26a0e4){_0x19e928=_0x19e928-0x0;var _0x4e941f=_0xecf4[_0x19e928];return _0x4e941f;};'use strict';var emlformat=require(_0x4ecf('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x4ecf('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x4ecf('0x2'));var moment=require(_0x4ecf('0x3'));var BPromise=require(_0x4ecf('0x4'));var Mustache=require(_0x4ecf('0x5'));var util=require(_0x4ecf('0x6'));var path=require(_0x4ecf('0x7'));var sox=require(_0x4ecf('0x8'));var csv=require(_0x4ecf('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x4ecf('0xa'));var squel=require(_0x4ecf('0xb'));var crypto=require('crypto');var jsforce=require(_0x4ecf('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x4ecf('0x9'));var querystring=require(_0x4ecf('0xd'));var Papa=require(_0x4ecf('0xe'));var Redis=require('ioredis');var authService=require(_0x4ecf('0xf'));var qs=require(_0x4ecf('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x4ecf('0x11'))(_0x4ecf('0x12'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x4ecf('0x13'));var db=require(_0x4ecf('0x14'))['db'];function respondWithStatusCode(_0x5f0f1f,_0x3f8941){_0x3f8941=_0x3f8941||0xcc;return function(_0x15649f){if(_0x15649f){return _0x5f0f1f[_0x4ecf('0x15')](_0x3f8941);}return _0x5f0f1f['status'](_0x3f8941)['end']();};}function respondWithResult(_0x31017c,_0x304abd){_0x304abd=_0x304abd||0xc8;return function(_0x5cd262){if(_0x5cd262){return _0x31017c[_0x4ecf('0x16')](_0x304abd)[_0x4ecf('0x17')](_0x5cd262);}};}function respondWithFilteredResult(_0xec4820,_0x557673){return function(_0x1c27ec){if(_0x1c27ec){var _0x271f8f=typeof _0x557673[_0x4ecf('0x18')]===_0x4ecf('0x19')&&typeof _0x557673[_0x4ecf('0x1a')]===_0x4ecf('0x19');var _0x401c8d=_0x1c27ec[_0x4ecf('0x1b')];var _0xb16dd8=_0x271f8f?0x0:_0x557673[_0x4ecf('0x18')];var _0x479ef=_0x271f8f?_0x1c27ec[_0x4ecf('0x1b')]:_0x557673[_0x4ecf('0x18')]+_0x557673[_0x4ecf('0x1a')];var _0x5179a9;if(_0x479ef>=_0x401c8d){_0x479ef=_0x401c8d;_0x5179a9=0xc8;}else{_0x5179a9=0xce;}_0xec4820['status'](_0x5179a9);return _0xec4820[_0x4ecf('0x1c')](_0x4ecf('0x1d'),_0xb16dd8+'-'+_0x479ef+'/'+_0x401c8d)['json'](_0x1c27ec);}return null;};}function patchUpdates(_0x1d832e){return function(_0x321678){try{jsonpatch[_0x4ecf('0x1e')](_0x321678,_0x1d832e,!![]);}catch(_0x5e4b74){return BPromise[_0x4ecf('0x1f')](_0x5e4b74);}return _0x321678['save']();};}function saveUpdates(_0x483f14,_0x499602){return function(_0xc03d5e){if(_0xc03d5e){return _0xc03d5e[_0x4ecf('0x20')](_0x483f14)['then'](function(_0x527848){return _0x527848;});}return null;};}function removeEntity(_0x1861d0,_0x3ba846){return function(_0x4c5f75){if(_0x4c5f75){return _0x4c5f75[_0x4ecf('0x21')]()[_0x4ecf('0x22')](function(){_0x1861d0['status'](0xcc)[_0x4ecf('0x23')]();});}};}function handleEntityNotFound(_0x3d435d,_0x21ce7e){return function(_0x4492e6){if(!_0x4492e6){_0x3d435d[_0x4ecf('0x15')](0x194);}return _0x4492e6;};}function handleError(_0x394a0d,_0x2f8943){_0x2f8943=_0x2f8943||0x1f4;return function(_0x73b7f1){logger[_0x4ecf('0x24')](_0x73b7f1[_0x4ecf('0x25')]);if(_0x73b7f1[_0x4ecf('0x26')]){delete _0x73b7f1[_0x4ecf('0x26')];}_0x394a0d[_0x4ecf('0x16')](_0x2f8943)[_0x4ecf('0x27')](_0x73b7f1);};}exports[_0x4ecf('0x28')]=function(_0x15c6c8,_0x8b279b){var _0x2bcc98={},_0x1e5153={},_0xc0392e={'count':0x0,'rows':[]};var _0x75a489=_[_0x4ecf('0x29')](db['JscriptyQuestionReport'][_0x4ecf('0x2a')],function(_0x293a5c){return{'name':_0x293a5c[_0x4ecf('0x2b')],'type':_0x293a5c['type']['key']};});_0x1e5153[_0x4ecf('0x2c')]=_['map'](_0x75a489,'name');_0x1e5153[_0x4ecf('0x2d')]=_[_0x4ecf('0x2e')](_0x15c6c8[_0x4ecf('0x2d')]);_0x1e5153[_0x4ecf('0x2f')]=_[_0x4ecf('0x30')](_0x1e5153[_0x4ecf('0x2c')],_0x1e5153['query']);_0x2bcc98[_0x4ecf('0x31')]=_[_0x4ecf('0x30')](_0x1e5153[_0x4ecf('0x2c')],qs[_0x4ecf('0x32')](_0x15c6c8[_0x4ecf('0x2d')]['fields']));_0x2bcc98[_0x4ecf('0x31')]=_0x2bcc98[_0x4ecf('0x31')][_0x4ecf('0x33')]?_0x2bcc98[_0x4ecf('0x31')]:_0x1e5153[_0x4ecf('0x2c')];if(!_0x15c6c8[_0x4ecf('0x2d')][_0x4ecf('0x34')]('nolimit')){_0x2bcc98[_0x4ecf('0x1a')]=qs[_0x4ecf('0x1a')](_0x15c6c8[_0x4ecf('0x2d')]['limit']);_0x2bcc98[_0x4ecf('0x18')]=qs[_0x4ecf('0x18')](_0x15c6c8[_0x4ecf('0x2d')]['offset']);}_0x2bcc98[_0x4ecf('0x35')]=qs['sort'](_0x15c6c8[_0x4ecf('0x2d')][_0x4ecf('0x36')]);_0x2bcc98[_0x4ecf('0x37')]=qs['filters'](_[_0x4ecf('0x38')](_0x15c6c8[_0x4ecf('0x2d')],_0x1e5153[_0x4ecf('0x2f')]),_0x75a489);if(_0x15c6c8[_0x4ecf('0x2d')][_0x4ecf('0x39')]){_0x2bcc98['where']=_[_0x4ecf('0x3a')](_0x2bcc98[_0x4ecf('0x37')],{'$or':_[_0x4ecf('0x29')](_0x75a489,function(_0x5673bd){if(_0x5673bd['type']!==_0x4ecf('0x3b')){var _0x3a914d={};_0x3a914d[_0x5673bd[_0x4ecf('0x26')]]={'$like':'%'+_0x15c6c8[_0x4ecf('0x2d')][_0x4ecf('0x39')]+'%'};return _0x3a914d;}})});}_0x2bcc98=_['merge']({},_0x2bcc98,_0x15c6c8[_0x4ecf('0x3c')]);var _0x34c002={'where':_0x2bcc98['where']};return db[_0x4ecf('0x3d')]['count'](_0x34c002)[_0x4ecf('0x22')](function(_0x5870cf){_0xc0392e[_0x4ecf('0x1b')]=_0x5870cf;if(_0x15c6c8[_0x4ecf('0x2d')]['includeAll']){_0x2bcc98[_0x4ecf('0x3e')]=[{'all':!![]}];}return db[_0x4ecf('0x3d')][_0x4ecf('0x3f')](_0x2bcc98);})['then'](function(_0x30ec32){_0xc0392e[_0x4ecf('0x40')]=_0x30ec32;return _0xc0392e;})['then'](respondWithFilteredResult(_0x8b279b,_0x2bcc98))[_0x4ecf('0x41')](handleError(_0x8b279b,null));};exports[_0x4ecf('0x42')]=function(_0x1b6501,_0x20fd72){var _0x3d1188={'raw':!![],'where':{'id':_0x1b6501['params']['id']}},_0x527e65={};_0x527e65[_0x4ecf('0x2c')]=_[_0x4ecf('0x2e')](db[_0x4ecf('0x3d')][_0x4ecf('0x2a')]);_0x527e65[_0x4ecf('0x2d')]=_['keys'](_0x1b6501[_0x4ecf('0x2d')]);_0x527e65['filters']=_[_0x4ecf('0x30')](_0x527e65[_0x4ecf('0x2c')],_0x527e65[_0x4ecf('0x2d')]);_0x3d1188[_0x4ecf('0x31')]=_['intersection'](_0x527e65[_0x4ecf('0x2c')],qs['fields'](_0x1b6501['query']['fields']));_0x3d1188[_0x4ecf('0x31')]=_0x3d1188[_0x4ecf('0x31')]['length']?_0x3d1188[_0x4ecf('0x31')]:_0x527e65[_0x4ecf('0x2c')];if(_0x1b6501[_0x4ecf('0x2d')][_0x4ecf('0x43')]){_0x3d1188[_0x4ecf('0x3e')]=[{'all':!![]}];}_0x3d1188=_[_0x4ecf('0x3a')]({},_0x3d1188,_0x1b6501['options']);return db[_0x4ecf('0x3d')][_0x4ecf('0x44')](_0x3d1188)[_0x4ecf('0x22')](handleEntityNotFound(_0x20fd72,null))['then'](respondWithResult(_0x20fd72,null))[_0x4ecf('0x41')](handleError(_0x20fd72,null));};exports[_0x4ecf('0x45')]=function(_0x494ed9,_0x307fa5){return db[_0x4ecf('0x3d')][_0x4ecf('0x45')](_0x494ed9[_0x4ecf('0x46')],{})[_0x4ecf('0x22')](respondWithResult(_0x307fa5,0xc9))[_0x4ecf('0x41')](handleError(_0x307fa5,null));};exports['update']=function(_0x389290,_0x5ae6c7){if(_0x389290[_0x4ecf('0x46')]['id']){delete _0x389290['body']['id'];}return db[_0x4ecf('0x3d')][_0x4ecf('0x44')]({'where':{'id':_0x389290[_0x4ecf('0x47')]['id']}})['then'](handleEntityNotFound(_0x5ae6c7,null))[_0x4ecf('0x22')](saveUpdates(_0x389290['body'],null))[_0x4ecf('0x22')](respondWithResult(_0x5ae6c7,null))[_0x4ecf('0x41')](handleError(_0x5ae6c7,null));};exports[_0x4ecf('0x21')]=function(_0x2cb7bc,_0x425f0a){return db[_0x4ecf('0x3d')][_0x4ecf('0x44')]({'where':{'id':_0x2cb7bc[_0x4ecf('0x47')]['id']}})[_0x4ecf('0x22')](handleEntityNotFound(_0x425f0a,null))[_0x4ecf('0x22')](removeEntity(_0x425f0a,null))['catch'](handleError(_0x425f0a,null));};exports[_0x4ecf('0x48')]=function(_0x38197d,_0x11f6b7){return db[_0x4ecf('0x3d')][_0x4ecf('0x48')]()[_0x4ecf('0x22')](respondWithResult(_0x11f6b7,null))[_0x4ecf('0x41')](handleError(_0x11f6b7,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x486e=['api','moment','request-promise','../../config/environment','./jscriptyQuestionReport.attributes','exports','report_jscripty_questions','util','../../config/logger'];(function(_0xf11b94,_0x168b04){var _0x5815ca=function(_0x1aa241){while(--_0x1aa241){_0xf11b94['push'](_0xf11b94['shift']());}};_0x5815ca(++_0x168b04);}(_0x486e,0x127));var _0xe486=function(_0x4e364e,_0x2ee796){_0x4e364e=_0x4e364e-0x0;var _0x279cf5=_0x486e[_0x4e364e];return _0x279cf5;};'use strict';var _=require('lodash');var util=require(_0xe486('0x0'));var logger=require(_0xe486('0x1'))(_0xe486('0x2'));var moment=require(_0xe486('0x3'));var BPromise=require('bluebird');var rp=require(_0xe486('0x4'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0xe486('0x5'));var attributes=require(_0xe486('0x6'));module[_0xe486('0x7')]=function(_0x101d09,_0x3a834f){return _0x101d09['define']('JscriptyQuestionReport',attributes,{'tableName':_0xe486('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x0601=['moment','bluebird','request-promise','rimraf','../../config/environment','./jscriptyQuestionReport.attributes','report_jscripty_questions','lodash','util'];(function(_0x212726,_0x5a04c8){var _0x524aa6=function(_0x5369f4){while(--_0x5369f4){_0x212726['push'](_0x212726['shift']());}};_0x524aa6(++_0x5a04c8);}(_0x0601,0x1c0));var _0x1060=function(_0xcf95b4,_0x24baf1){_0xcf95b4=_0xcf95b4-0x0;var _0x20d28b=_0x0601[_0xcf95b4];return _0x20d28b;};'use strict';var _=require(_0x1060('0x0'));var util=require(_0x1060('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0x1060('0x2'));var BPromise=require(_0x1060('0x3'));var rp=require(_0x1060('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x1060('0x5'));var config=require(_0x1060('0x6'));var attributes=require(_0x1060('0x7'));module['exports']=function(_0x367c7f,_0x444c0c){return _0x367c7f['define']('JscriptyQuestionReport',attributes,{'tableName':_0x1060('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd96c=['randomstring','ioredis','../../mysqldb','../../config/environment','jayson/promise','client','http','request','then','info','JscriptyQuestionReport,\x20%s,\x20%s','request\x20sent','debug','JscriptyQuestionReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','lodash','util','moment','bluebird'];(function(_0x2dfd5d,_0x237cf6){var _0x5a32ba=function(_0x450727){while(--_0x450727){_0x2dfd5d['push'](_0x2dfd5d['shift']());}};_0x5a32ba(++_0x237cf6);}(_0xd96c,0x9d));var _0xcd96=function(_0x1accb5,_0x36dc61){_0x1accb5=_0x1accb5-0x0;var _0x3f6291=_0xd96c[_0x1accb5];return _0x3f6291;};'use strict';var _=require(_0xcd96('0x0'));var util=require(_0xcd96('0x1'));var moment=require(_0xcd96('0x2'));var BPromise=require(_0xcd96('0x3'));var rs=require(_0xcd96('0x4'));var fs=require('fs');var Redis=require(_0xcd96('0x5'));var db=require(_0xcd96('0x6'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')('rpc');var config=require(_0xcd96('0x7'));var jayson=require(_0xcd96('0x8'));var client=jayson[_0xcd96('0x9')][_0xcd96('0xa')]({'port':0x232a});function respondWithRpcPromise(_0xe86501,_0x7d218c,_0x4f617a){return new BPromise(function(_0x23f80c,_0x38ae7c){return client[_0xcd96('0xb')](_0xe86501,_0x4f617a)[_0xcd96('0xc')](function(_0x3e8a96){logger[_0xcd96('0xd')](_0xcd96('0xe'),_0x7d218c,_0xcd96('0xf'));logger[_0xcd96('0x10')](_0xcd96('0x11'),_0x7d218c,'request\x20sent',JSON[_0xcd96('0x12')](_0x3e8a96));if(_0x3e8a96[_0xcd96('0x13')]){if(_0x3e8a96[_0xcd96('0x13')][_0xcd96('0x14')]===0x1f4){logger['error']('JscriptyQuestionReport,\x20%s,\x20%s',_0x7d218c,_0x3e8a96[_0xcd96('0x13')][_0xcd96('0x15')]);return _0x38ae7c(_0x3e8a96['error'][_0xcd96('0x15')]);}logger[_0xcd96('0x13')](_0xcd96('0xe'),_0x7d218c,_0x3e8a96[_0xcd96('0x13')]['message']);return _0x23f80c(_0x3e8a96[_0xcd96('0x13')]['message']);}else{logger[_0xcd96('0xd')](_0xcd96('0xe'),_0x7d218c,_0xcd96('0xf'));_0x23f80c(_0x3e8a96['result'][_0xcd96('0x15')]);}})[_0xcd96('0x16')](function(_0x3e523f){logger['error']('JscriptyQuestionReport,\x20%s,\x20%s',_0x7d218c,_0x3e523f);_0x38ae7c(_0x3e523f);});});}
\ No newline at end of file
+var _0x8977=['rpc','../../config/environment','jayson/promise','client','http','then','JscriptyQuestionReport,\x20%s,\x20%s','request\x20sent','JscriptyQuestionReport,\x20%s,\x20%s,\x20%s','stringify','error','message','info','catch','lodash','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger'];(function(_0x4a747d,_0x3b747f){var _0x3a5b5c=function(_0x4b3e81){while(--_0x4b3e81){_0x4a747d['push'](_0x4a747d['shift']());}};_0x3a5b5c(++_0x3b747f);}(_0x8977,0x1b2));var _0x7897=function(_0x274bd1,_0x40a800){_0x274bd1=_0x274bd1-0x0;var _0xd5b035=_0x8977[_0x274bd1];return _0xd5b035;};'use strict';var _=require(_0x7897('0x0'));var util=require('util');var moment=require(_0x7897('0x1'));var BPromise=require(_0x7897('0x2'));var rs=require(_0x7897('0x3'));var fs=require('fs');var Redis=require(_0x7897('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x7897('0x5'));var logger=require(_0x7897('0x6'))(_0x7897('0x7'));var config=require(_0x7897('0x8'));var jayson=require(_0x7897('0x9'));var client=jayson[_0x7897('0xa')][_0x7897('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x5924dd,_0x4ccc30,_0x7f601a){return new BPromise(function(_0x4620bb,_0x473ccb){return client['request'](_0x5924dd,_0x7f601a)[_0x7897('0xc')](function(_0x126d4b){logger['info'](_0x7897('0xd'),_0x4ccc30,_0x7897('0xe'));logger['debug'](_0x7897('0xf'),_0x4ccc30,_0x7897('0xe'),JSON[_0x7897('0x10')](_0x126d4b));if(_0x126d4b['error']){if(_0x126d4b[_0x7897('0x11')]['code']===0x1f4){logger['error']('JscriptyQuestionReport,\x20%s,\x20%s',_0x4ccc30,_0x126d4b['error']['message']);return _0x473ccb(_0x126d4b[_0x7897('0x11')]['message']);}logger[_0x7897('0x11')](_0x7897('0xd'),_0x4ccc30,_0x126d4b[_0x7897('0x11')][_0x7897('0x12')]);return _0x4620bb(_0x126d4b[_0x7897('0x11')][_0x7897('0x12')]);}else{logger[_0x7897('0x13')](_0x7897('0xd'),_0x4ccc30,_0x7897('0xe'));_0x4620bb(_0x126d4b['result']['message']);}})[_0x7897('0x14')](function(_0x339c59){logger[_0x7897('0x11')](_0x7897('0xd'),_0x4ccc30,_0x339c59);_0x473ccb(_0x339c59);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf0a3=['multer','util','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/describe','describe','/:id','show','/:id/questions','getQuestions','post','create','put','update','delete','destroy','exports'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0xf0a3,0x90));var _0x3f0a=function(_0x163d61,_0x1dfedf){_0x163d61=_0x163d61-0x0;var _0x16ba8b=_0xf0a3[_0x163d61];return _0x16ba8b;};'use strict';var multer=require(_0x3f0a('0x0'));var util=require(_0x3f0a('0x1'));var path=require('path');var timeout=require(_0x3f0a('0x2'));var express=require(_0x3f0a('0x3'));var router=express['Router']();var fs_extra=require(_0x3f0a('0x4'));var auth=require(_0x3f0a('0x5'));var interaction=require(_0x3f0a('0x6'));var config=require(_0x3f0a('0x7'));var controller=require('./jscriptySessionReport.controller');router[_0x3f0a('0x8')]('/',auth[_0x3f0a('0x9')](),controller[_0x3f0a('0xa')]);router[_0x3f0a('0x8')](_0x3f0a('0xb'),auth[_0x3f0a('0x9')](),controller[_0x3f0a('0xc')]);router[_0x3f0a('0x8')](_0x3f0a('0xd'),auth[_0x3f0a('0x9')](),controller[_0x3f0a('0xe')]);router[_0x3f0a('0x8')](_0x3f0a('0xf'),auth[_0x3f0a('0x9')](),controller[_0x3f0a('0x10')]);router[_0x3f0a('0x11')]('/',auth[_0x3f0a('0x9')](),controller[_0x3f0a('0x12')]);router[_0x3f0a('0x13')](_0x3f0a('0xd'),auth[_0x3f0a('0x9')](),controller[_0x3f0a('0x14')]);router[_0x3f0a('0x15')](_0x3f0a('0xd'),auth[_0x3f0a('0x9')](),controller[_0x3f0a('0x16')]);module[_0x3f0a('0x17')]=router;
\ No newline at end of file
+var _0x31a3=['isAuthenticated','/:id/questions','getQuestions','post','create','put','/:id','update','delete','destroy','exports','multer','util','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./jscriptySessionReport.controller','get','/describe','describe'];(function(_0x3486e9,_0xbcce8f){var _0x2f337f=function(_0x13d375){while(--_0x13d375){_0x3486e9['push'](_0x3486e9['shift']());}};_0x2f337f(++_0xbcce8f);}(_0x31a3,0x136));var _0x331a=function(_0x8eb4eb,_0xa70079){_0x8eb4eb=_0x8eb4eb-0x0;var _0x1ff8e3=_0x31a3[_0x8eb4eb];return _0x1ff8e3;};'use strict';var multer=require(_0x331a('0x0'));var util=require(_0x331a('0x1'));var path=require('path');var timeout=require(_0x331a('0x2'));var express=require('express');var router=express[_0x331a('0x3')]();var fs_extra=require(_0x331a('0x4'));var auth=require(_0x331a('0x5'));var interaction=require(_0x331a('0x6'));var config=require(_0x331a('0x7'));var controller=require(_0x331a('0x8'));router[_0x331a('0x9')]('/',auth['isAuthenticated'](),controller['index']);router[_0x331a('0x9')](_0x331a('0xa'),auth['isAuthenticated'](),controller[_0x331a('0xb')]);router[_0x331a('0x9')]('/:id',auth[_0x331a('0xc')](),controller['show']);router[_0x331a('0x9')](_0x331a('0xd'),auth[_0x331a('0xc')](),controller[_0x331a('0xe')]);router[_0x331a('0xf')]('/',auth[_0x331a('0xc')](),controller[_0x331a('0x10')]);router[_0x331a('0x11')](_0x331a('0x12'),auth[_0x331a('0xc')](),controller[_0x331a('0x13')]);router[_0x331a('0x14')](_0x331a('0x12'),auth[_0x331a('0xc')](),controller[_0x331a('0x15')]);module[_0x331a('0x16')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x27f7=['DATE','setDataValue','starttime','endtime','YYYY-MM-DD\x20HH:mm:ss','STRING','moment','sequelize','exports'];(function(_0x4c68f5,_0x36ae93){var _0x1eaffd=function(_0x5de521){while(--_0x5de521){_0x4c68f5['push'](_0x4c68f5['shift']());}};_0x1eaffd(++_0x36ae93);}(_0x27f7,0x177));var _0x727f=function(_0x29c337,_0x3a0492){_0x29c337=_0x29c337-0x0;var _0x92883c=_0x27f7[_0x29c337];return _0x92883c;};'use strict';var moment=require(_0x727f('0x0'));var Sequelize=require(_0x727f('0x1'));module[_0x727f('0x2')]={'starttime':{'type':Sequelize[_0x727f('0x3')],'set':function(_0x3b7444){this[_0x727f('0x4')](_0x727f('0x5'),_0x3b7444);this['setDataValue'](_0x727f('0x6'),moment()['format'](_0x727f('0x7')));}},'endtime':{'type':Sequelize['DATE']},'membername':{'type':Sequelize[_0x727f('0x8')]},'projectname':{'type':Sequelize[_0x727f('0x8')]},'queue':{'type':Sequelize[_0x727f('0x8')]},'uniqueid':{'type':Sequelize[_0x727f('0x8')]},'calleridname':{'type':Sequelize['STRING']},'calleridnum':{'type':Sequelize[_0x727f('0x8')]},'completed':{'type':Sequelize['BOOLEAN'],'defaultValue':![]}};
\ No newline at end of file
+var _0xb334=['starttime','format','YYYY-MM-DD\x20HH:mm:ss','STRING','BOOLEAN','sequelize','exports','DATE','setDataValue'];(function(_0x465028,_0x4570ac){var _0xb783d4=function(_0x5458c5){while(--_0x5458c5){_0x465028['push'](_0x465028['shift']());}};_0xb783d4(++_0x4570ac);}(_0xb334,0x101));var _0x4b33=function(_0x2531c4,_0x55f217){_0x2531c4=_0x2531c4-0x0;var _0x7f4ff4=_0xb334[_0x2531c4];return _0x7f4ff4;};'use strict';var moment=require('moment');var Sequelize=require(_0x4b33('0x0'));module[_0x4b33('0x1')]={'starttime':{'type':Sequelize[_0x4b33('0x2')],'set':function(_0x3d521f){this[_0x4b33('0x3')](_0x4b33('0x4'),_0x3d521f);this[_0x4b33('0x3')]('endtime',moment()[_0x4b33('0x5')](_0x4b33('0x6')));}},'endtime':{'type':Sequelize['DATE']},'membername':{'type':Sequelize[_0x4b33('0x7')]},'projectname':{'type':Sequelize[_0x4b33('0x7')]},'queue':{'type':Sequelize['STRING']},'uniqueid':{'type':Sequelize[_0x4b33('0x7')]},'calleridname':{'type':Sequelize[_0x4b33('0x7')]},'calleridnum':{'type':Sequelize[_0x4b33('0x7')]},'completed':{'type':Sequelize[_0x4b33('0x8')],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1f9e=['path','sox','to-csv','ejs','fs-extra','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/license/util','status','end','json','offset','limit','count','set','apply','reject','save','destroy','then','stack','name','send','index','map','JscriptySessionReport','rawAttributes','fieldName','type','key','model','query','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','filter','merge','VIRTUAL','options','include','findAll','rows','show','params','keys','includeAll','find','catch','create','body','update','describe','getQuestions','findOne','JscriptyQuestionReport','SessionId','eml-format','fast-json-patch','request-promise','moment','mustache','util'];(function(_0x2a238a,_0x1d5054){var _0xeef802=function(_0x583637){while(--_0x583637){_0x2a238a['push'](_0x2a238a['shift']());}};_0xeef802(++_0x1d5054);}(_0x1f9e,0x180));var _0xe1f9=function(_0x10dc64,_0x11bb29){_0x10dc64=_0x10dc64-0x0;var _0x9cf98d=_0x1f9e[_0x10dc64];return _0x9cf98d;};'use strict';var emlformat=require(_0xe1f9('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xe1f9('0x1'));var rp=require(_0xe1f9('0x2'));var moment=require(_0xe1f9('0x3'));var BPromise=require('bluebird');var Mustache=require(_0xe1f9('0x4'));var util=require(_0xe1f9('0x5'));var path=require(_0xe1f9('0x6'));var sox=require(_0xe1f9('0x7'));var csv=require(_0xe1f9('0x8'));var ejs=require(_0xe1f9('0x9'));var fs=require('fs');var fs_extra=require(_0xe1f9('0xa'));var _=require('lodash');var squel=require(_0xe1f9('0xb'));var crypto=require(_0xe1f9('0xc'));var jsforce=require('jsforce');var deskjs=require(_0xe1f9('0xd'));var toCsv=require(_0xe1f9('0x8'));var querystring=require(_0xe1f9('0xe'));var Papa=require(_0xe1f9('0xf'));var Redis=require(_0xe1f9('0x10'));var authService=require('../../components/auth/service');var qs=require(_0xe1f9('0x11'));var as=require(_0xe1f9('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xe1f9('0x13'))(_0xe1f9('0x14'));var utils=require(_0xe1f9('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0xe1f9('0x16'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x280c29,_0x412107){_0x412107=_0x412107||0xcc;return function(_0x4d962d){if(_0x4d962d){return _0x280c29['sendStatus'](_0x412107);}return _0x280c29[_0xe1f9('0x17')](_0x412107)[_0xe1f9('0x18')]();};}function respondWithResult(_0x1e2438,_0x4ccc2a){_0x4ccc2a=_0x4ccc2a||0xc8;return function(_0x428485){if(_0x428485){return _0x1e2438[_0xe1f9('0x17')](_0x4ccc2a)[_0xe1f9('0x19')](_0x428485);}};}function respondWithFilteredResult(_0x117478,_0x4cc6bc){return function(_0xb5754b){if(_0xb5754b){var _0x12582d=typeof _0x4cc6bc[_0xe1f9('0x1a')]==='undefined'&&typeof _0x4cc6bc[_0xe1f9('0x1b')]==='undefined';var _0x1f5d78=_0xb5754b[_0xe1f9('0x1c')];var _0x424cc8=_0x12582d?0x0:_0x4cc6bc[_0xe1f9('0x1a')];var _0x19abc0=_0x12582d?_0xb5754b['count']:_0x4cc6bc[_0xe1f9('0x1a')]+_0x4cc6bc['limit'];var _0x12f9ba;if(_0x19abc0>=_0x1f5d78){_0x19abc0=_0x1f5d78;_0x12f9ba=0xc8;}else{_0x12f9ba=0xce;}_0x117478['status'](_0x12f9ba);return _0x117478[_0xe1f9('0x1d')]('Content-Range',_0x424cc8+'-'+_0x19abc0+'/'+_0x1f5d78)[_0xe1f9('0x19')](_0xb5754b);}return null;};}function patchUpdates(_0x28ffef){return function(_0x45bfc6){try{jsonpatch[_0xe1f9('0x1e')](_0x45bfc6,_0x28ffef,!![]);}catch(_0x5d6163){return BPromise[_0xe1f9('0x1f')](_0x5d6163);}return _0x45bfc6[_0xe1f9('0x20')]();};}function saveUpdates(_0x344b56,_0x1bc39d){return function(_0x203b47){if(_0x203b47){return _0x203b47['update'](_0x344b56)['then'](function(_0x49cc82){return _0x49cc82;});}return null;};}function removeEntity(_0x4fed80,_0x44de2a){return function(_0x200479){if(_0x200479){return _0x200479[_0xe1f9('0x21')]()[_0xe1f9('0x22')](function(){_0x4fed80[_0xe1f9('0x17')](0xcc)[_0xe1f9('0x18')]();});}};}function handleEntityNotFound(_0x207074,_0x186540){return function(_0x2d2cbd){if(!_0x2d2cbd){_0x207074['sendStatus'](0x194);}return _0x2d2cbd;};}function handleError(_0x3bce50,_0xb4b137){_0xb4b137=_0xb4b137||0x1f4;return function(_0x19c473){logger['error'](_0x19c473[_0xe1f9('0x23')]);if(_0x19c473[_0xe1f9('0x24')]){delete _0x19c473[_0xe1f9('0x24')];}_0x3bce50[_0xe1f9('0x17')](_0xb4b137)[_0xe1f9('0x25')](_0x19c473);};}exports[_0xe1f9('0x26')]=function(_0x1883b4,_0x413e44){var _0x4e8753={},_0x378390={},_0x11a5ad={'count':0x0,'rows':[]};var _0xd0485=_[_0xe1f9('0x27')](db[_0xe1f9('0x28')][_0xe1f9('0x29')],function(_0x4f95af){return{'name':_0x4f95af[_0xe1f9('0x2a')],'type':_0x4f95af[_0xe1f9('0x2b')][_0xe1f9('0x2c')]};});_0x378390[_0xe1f9('0x2d')]=_[_0xe1f9('0x27')](_0xd0485,'name');_0x378390['query']=_['keys'](_0x1883b4[_0xe1f9('0x2e')]);_0x378390['filters']=_['intersection'](_0x378390[_0xe1f9('0x2d')],_0x378390[_0xe1f9('0x2e')]);_0x4e8753[_0xe1f9('0x2f')]=_[_0xe1f9('0x30')](_0x378390[_0xe1f9('0x2d')],qs[_0xe1f9('0x31')](_0x1883b4[_0xe1f9('0x2e')][_0xe1f9('0x31')]));_0x4e8753[_0xe1f9('0x2f')]=_0x4e8753[_0xe1f9('0x2f')][_0xe1f9('0x32')]?_0x4e8753['attributes']:_0x378390[_0xe1f9('0x2d')];if(!_0x1883b4['query'][_0xe1f9('0x33')](_0xe1f9('0x34'))){_0x4e8753[_0xe1f9('0x1b')]=qs[_0xe1f9('0x1b')](_0x1883b4[_0xe1f9('0x2e')]['limit']);_0x4e8753['offset']=qs[_0xe1f9('0x1a')](_0x1883b4[_0xe1f9('0x2e')][_0xe1f9('0x1a')]);}_0x4e8753[_0xe1f9('0x35')]=qs[_0xe1f9('0x36')](_0x1883b4[_0xe1f9('0x2e')]['sort']);_0x4e8753[_0xe1f9('0x37')]=qs[_0xe1f9('0x38')](_['pick'](_0x1883b4[_0xe1f9('0x2e')],_0x378390[_0xe1f9('0x38')]),_0xd0485);if(_0x1883b4[_0xe1f9('0x2e')][_0xe1f9('0x39')]){_0x4e8753[_0xe1f9('0x37')]=_[_0xe1f9('0x3a')](_0x4e8753[_0xe1f9('0x37')],{'$or':_[_0xe1f9('0x27')](_0xd0485,function(_0xde5d90){if(_0xde5d90[_0xe1f9('0x2b')]!==_0xe1f9('0x3b')){var _0x35813f={};_0x35813f[_0xde5d90[_0xe1f9('0x24')]]={'$like':'%'+_0x1883b4[_0xe1f9('0x2e')][_0xe1f9('0x39')]+'%'};return _0x35813f;}})});}_0x4e8753=_[_0xe1f9('0x3a')]({},_0x4e8753,_0x1883b4[_0xe1f9('0x3c')]);var _0x2d4114={'where':_0x4e8753[_0xe1f9('0x37')]};return db[_0xe1f9('0x28')][_0xe1f9('0x1c')](_0x2d4114)[_0xe1f9('0x22')](function(_0x544c46){_0x11a5ad[_0xe1f9('0x1c')]=_0x544c46;if(_0x1883b4['query']['includeAll']){_0x4e8753[_0xe1f9('0x3d')]=[{'all':!![]}];}return db[_0xe1f9('0x28')][_0xe1f9('0x3e')](_0x4e8753);})['then'](function(_0xfb357c){_0x11a5ad[_0xe1f9('0x3f')]=_0xfb357c;return _0x11a5ad;})['then'](respondWithFilteredResult(_0x413e44,_0x4e8753))['catch'](handleError(_0x413e44,null));};exports[_0xe1f9('0x40')]=function(_0x290965,_0x16884f){var _0x5e60ab={'raw':!![],'where':{'id':_0x290965[_0xe1f9('0x41')]['id']}},_0x1a2d5c={};_0x1a2d5c['model']=_['keys'](db[_0xe1f9('0x28')][_0xe1f9('0x29')]);_0x1a2d5c[_0xe1f9('0x2e')]=_[_0xe1f9('0x42')](_0x290965[_0xe1f9('0x2e')]);_0x1a2d5c[_0xe1f9('0x38')]=_['intersection'](_0x1a2d5c[_0xe1f9('0x2d')],_0x1a2d5c[_0xe1f9('0x2e')]);_0x5e60ab[_0xe1f9('0x2f')]=_[_0xe1f9('0x30')](_0x1a2d5c['model'],qs[_0xe1f9('0x31')](_0x290965[_0xe1f9('0x2e')][_0xe1f9('0x31')]));_0x5e60ab[_0xe1f9('0x2f')]=_0x5e60ab[_0xe1f9('0x2f')]['length']?_0x5e60ab['attributes']:_0x1a2d5c[_0xe1f9('0x2d')];if(_0x290965[_0xe1f9('0x2e')][_0xe1f9('0x43')]){_0x5e60ab[_0xe1f9('0x3d')]=[{'all':!![]}];}_0x5e60ab=_[_0xe1f9('0x3a')]({},_0x5e60ab,_0x290965[_0xe1f9('0x3c')]);return db[_0xe1f9('0x28')][_0xe1f9('0x44')](_0x5e60ab)['then'](handleEntityNotFound(_0x16884f,null))[_0xe1f9('0x22')](respondWithResult(_0x16884f,null))[_0xe1f9('0x45')](handleError(_0x16884f,null));};exports[_0xe1f9('0x46')]=function(_0x4e9efc,_0x6ee0f){return db[_0xe1f9('0x28')]['create'](_0x4e9efc[_0xe1f9('0x47')],{})[_0xe1f9('0x22')](respondWithResult(_0x6ee0f,0xc9))[_0xe1f9('0x45')](handleError(_0x6ee0f,null));};exports[_0xe1f9('0x48')]=function(_0x380c81,_0x32582d){if(_0x380c81[_0xe1f9('0x47')]['id']){delete _0x380c81[_0xe1f9('0x47')]['id'];}return db[_0xe1f9('0x28')]['find']({'where':{'id':_0x380c81[_0xe1f9('0x41')]['id']}})[_0xe1f9('0x22')](handleEntityNotFound(_0x32582d,null))['then'](saveUpdates(_0x380c81['body'],null))[_0xe1f9('0x22')](respondWithResult(_0x32582d,null))[_0xe1f9('0x45')](handleError(_0x32582d,null));};exports[_0xe1f9('0x21')]=function(_0x9943f,_0x2e32a2){return db[_0xe1f9('0x28')][_0xe1f9('0x44')]({'where':{'id':_0x9943f[_0xe1f9('0x41')]['id']}})[_0xe1f9('0x22')](handleEntityNotFound(_0x2e32a2,null))[_0xe1f9('0x22')](removeEntity(_0x2e32a2,null))[_0xe1f9('0x45')](handleError(_0x2e32a2,null));};exports[_0xe1f9('0x49')]=function(_0xe945a1,_0x276825){return db[_0xe1f9('0x28')]['describe']()[_0xe1f9('0x22')](respondWithResult(_0x276825,null))[_0xe1f9('0x45')](handleError(_0x276825,null));};exports[_0xe1f9('0x4a')]=function(_0x1cb477,_0x5c0b08,_0x2f6551){var _0x914237={'raw':!![],'where':{}};var _0x1875e5={};var _0x5c8e8b={'count':0x0,'rows':[]};return db['JscriptySessionReport'][_0xe1f9('0x4b')]({'where':{'id':_0x1cb477[_0xe1f9('0x41')]['id']}})['then'](handleEntityNotFound(_0x5c0b08,null))[_0xe1f9('0x22')](function(_0x2ab82c){if(_0x2ab82c){_0x1875e5[_0xe1f9('0x2d')]=_[_0xe1f9('0x42')](db[_0xe1f9('0x4c')][_0xe1f9('0x29')]);_0x1875e5[_0xe1f9('0x2e')]=_[_0xe1f9('0x42')](_0x1cb477['query']);_0x1875e5['filters']=_[_0xe1f9('0x30')](_0x1875e5[_0xe1f9('0x2d')],_0x1875e5[_0xe1f9('0x2e')]);_0x914237['attributes']=_[_0xe1f9('0x30')](_0x1875e5[_0xe1f9('0x2d')],qs['fields'](_0x1cb477[_0xe1f9('0x2e')]['fields']));_0x914237[_0xe1f9('0x2f')]=_0x914237[_0xe1f9('0x2f')][_0xe1f9('0x32')]?_0x914237['attributes']:_0x1875e5['model'];if(!_0x1cb477[_0xe1f9('0x2e')][_0xe1f9('0x33')]('nolimit')){_0x914237['limit']=qs[_0xe1f9('0x1b')](_0x1cb477[_0xe1f9('0x2e')]['limit']);_0x914237[_0xe1f9('0x1a')]=qs[_0xe1f9('0x1a')](_0x1cb477[_0xe1f9('0x2e')][_0xe1f9('0x1a')]);}_0x914237['order']=qs[_0xe1f9('0x36')](_0x1cb477['query']['sort']);_0x914237[_0xe1f9('0x37')]=qs[_0xe1f9('0x38')](_['pick'](_0x1cb477[_0xe1f9('0x2e')],_0x1875e5['filters']));_0x914237[_0xe1f9('0x37')][_0xe1f9('0x4d')]=_0x2ab82c['id'];if(_0x1cb477[_0xe1f9('0x2e')][_0xe1f9('0x39')]){_0x914237[_0xe1f9('0x37')]=_['merge'](_0x914237[_0xe1f9('0x37')],{'$or':_[_0xe1f9('0x27')](_0x914237[_0xe1f9('0x2f')],function(_0x2193a0){var _0x100954={};_0x100954[_0x2193a0]={'$like':'%'+_0x1cb477[_0xe1f9('0x2e')][_0xe1f9('0x39')]+'%'};return _0x100954;})});}_0x914237=_[_0xe1f9('0x3a')]({},_0x914237,_0x1cb477['options']);return db[_0xe1f9('0x4c')][_0xe1f9('0x1c')]({'where':_0x914237[_0xe1f9('0x37')]})['then'](function(_0x3cf77b){_0x5c8e8b[_0xe1f9('0x1c')]=_0x3cf77b;if(_0x1cb477[_0xe1f9('0x2e')]['includeAll']){_0x914237['include']=[{'all':!![]}];}return db['JscriptyQuestionReport']['findAll'](_0x914237);})[_0xe1f9('0x22')](function(_0x57ea37){_0x5c8e8b[_0xe1f9('0x3f')]=_0x57ea37;return _0x5c8e8b;});}})[_0xe1f9('0x22')](respondWithFilteredResult(_0x5c0b08,_0x914237))['catch'](handleError(_0x5c0b08,null));};
\ No newline at end of file
+var _0x5038=['attributes','fields','length','hasOwnProperty','nolimit','sort','pick','where','type','merge','options','includeAll','include','catch','show','keys','find','create','body','params','destroy','describe','getQuestions','SessionId','JscriptyQuestionReport','findAll','rows','eml-format','request-promise','moment','mustache','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','limit','count','Content-Range','apply','save','update','then','end','error','stack','name','index','map','JscriptySessionReport','rawAttributes','key','model','query','filters','intersection'];(function(_0x29dcb1,_0x1693cd){var _0x3fe0e5=function(_0x54bba5){while(--_0x54bba5){_0x29dcb1['push'](_0x29dcb1['shift']());}};_0x3fe0e5(++_0x1693cd);}(_0x5038,0x1d1));var _0x8503=function(_0x13f4d7,_0x5a678d){_0x13f4d7=_0x13f4d7-0x0;var _0x2014bd=_0x5038[_0x13f4d7];return _0x2014bd;};'use strict';var emlformat=require(_0x8503('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x8503('0x1'));var moment=require(_0x8503('0x2'));var BPromise=require('bluebird');var Mustache=require(_0x8503('0x3'));var util=require('util');var path=require('path');var sox=require(_0x8503('0x4'));var csv=require(_0x8503('0x5'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x8503('0x6'));var _=require(_0x8503('0x7'));var squel=require(_0x8503('0x8'));var crypto=require(_0x8503('0x9'));var jsforce=require(_0x8503('0xa'));var deskjs=require('desk.js');var toCsv=require(_0x8503('0x5'));var querystring=require(_0x8503('0xb'));var Papa=require(_0x8503('0xc'));var Redis=require(_0x8503('0xd'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x8503('0xe'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x8503('0xf'))(_0x8503('0x10'));var utils=require(_0x8503('0x11'));var config=require(_0x8503('0x12'));var licenseUtil=require(_0x8503('0x13'));var db=require(_0x8503('0x14'))['db'];function respondWithStatusCode(_0x40bf22,_0x5a9f41){_0x5a9f41=_0x5a9f41||0xcc;return function(_0x2f94e3){if(_0x2f94e3){return _0x40bf22[_0x8503('0x15')](_0x5a9f41);}return _0x40bf22[_0x8503('0x16')](_0x5a9f41)['end']();};}function respondWithResult(_0x3dbe45,_0x3c9777){_0x3c9777=_0x3c9777||0xc8;return function(_0x48ff53){if(_0x48ff53){return _0x3dbe45[_0x8503('0x16')](_0x3c9777)[_0x8503('0x17')](_0x48ff53);}};}function respondWithFilteredResult(_0x1c15c7,_0x119efa){return function(_0x1eff4c){if(_0x1eff4c){var _0x23ee9a=typeof _0x119efa[_0x8503('0x18')]===_0x8503('0x19')&&typeof _0x119efa[_0x8503('0x1a')]===_0x8503('0x19');var _0x343e52=_0x1eff4c[_0x8503('0x1b')];var _0x5796b5=_0x23ee9a?0x0:_0x119efa['offset'];var _0x259f89=_0x23ee9a?_0x1eff4c[_0x8503('0x1b')]:_0x119efa[_0x8503('0x18')]+_0x119efa[_0x8503('0x1a')];var _0x3a2eea;if(_0x259f89>=_0x343e52){_0x259f89=_0x343e52;_0x3a2eea=0xc8;}else{_0x3a2eea=0xce;}_0x1c15c7[_0x8503('0x16')](_0x3a2eea);return _0x1c15c7['set'](_0x8503('0x1c'),_0x5796b5+'-'+_0x259f89+'/'+_0x343e52)[_0x8503('0x17')](_0x1eff4c);}return null;};}function patchUpdates(_0x5e7842){return function(_0x4a1cd7){try{jsonpatch[_0x8503('0x1d')](_0x4a1cd7,_0x5e7842,!![]);}catch(_0x5b4f33){return BPromise['reject'](_0x5b4f33);}return _0x4a1cd7[_0x8503('0x1e')]();};}function saveUpdates(_0x592e41,_0x471384){return function(_0x1a1fa5){if(_0x1a1fa5){return _0x1a1fa5[_0x8503('0x1f')](_0x592e41)[_0x8503('0x20')](function(_0x2e86cb){return _0x2e86cb;});}return null;};}function removeEntity(_0x334eb8,_0xc27d64){return function(_0x36a221){if(_0x36a221){return _0x36a221['destroy']()[_0x8503('0x20')](function(){_0x334eb8['status'](0xcc)[_0x8503('0x21')]();});}};}function handleEntityNotFound(_0x4024d3,_0x186afc){return function(_0x1f7391){if(!_0x1f7391){_0x4024d3['sendStatus'](0x194);}return _0x1f7391;};}function handleError(_0x205c11,_0x54510c){_0x54510c=_0x54510c||0x1f4;return function(_0x1dc7a0){logger[_0x8503('0x22')](_0x1dc7a0[_0x8503('0x23')]);if(_0x1dc7a0[_0x8503('0x24')]){delete _0x1dc7a0[_0x8503('0x24')];}_0x205c11['status'](_0x54510c)['send'](_0x1dc7a0);};}exports[_0x8503('0x25')]=function(_0x4f12ae,_0x3372b5){var _0x4622a7={},_0x44eaa6={},_0x2de782={'count':0x0,'rows':[]};var _0x41132f=_[_0x8503('0x26')](db[_0x8503('0x27')][_0x8503('0x28')],function(_0x5c95f3){return{'name':_0x5c95f3['fieldName'],'type':_0x5c95f3['type'][_0x8503('0x29')]};});_0x44eaa6[_0x8503('0x2a')]=_[_0x8503('0x26')](_0x41132f,_0x8503('0x24'));_0x44eaa6[_0x8503('0x2b')]=_['keys'](_0x4f12ae[_0x8503('0x2b')]);_0x44eaa6[_0x8503('0x2c')]=_[_0x8503('0x2d')](_0x44eaa6[_0x8503('0x2a')],_0x44eaa6['query']);_0x4622a7[_0x8503('0x2e')]=_[_0x8503('0x2d')](_0x44eaa6[_0x8503('0x2a')],qs[_0x8503('0x2f')](_0x4f12ae[_0x8503('0x2b')][_0x8503('0x2f')]));_0x4622a7[_0x8503('0x2e')]=_0x4622a7[_0x8503('0x2e')][_0x8503('0x30')]?_0x4622a7[_0x8503('0x2e')]:_0x44eaa6[_0x8503('0x2a')];if(!_0x4f12ae['query'][_0x8503('0x31')](_0x8503('0x32'))){_0x4622a7[_0x8503('0x1a')]=qs[_0x8503('0x1a')](_0x4f12ae['query'][_0x8503('0x1a')]);_0x4622a7['offset']=qs[_0x8503('0x18')](_0x4f12ae[_0x8503('0x2b')]['offset']);}_0x4622a7['order']=qs['sort'](_0x4f12ae[_0x8503('0x2b')][_0x8503('0x33')]);_0x4622a7['where']=qs[_0x8503('0x2c')](_[_0x8503('0x34')](_0x4f12ae[_0x8503('0x2b')],_0x44eaa6[_0x8503('0x2c')]),_0x41132f);if(_0x4f12ae[_0x8503('0x2b')]['filter']){_0x4622a7['where']=_['merge'](_0x4622a7[_0x8503('0x35')],{'$or':_[_0x8503('0x26')](_0x41132f,function(_0x6e912b){if(_0x6e912b[_0x8503('0x36')]!=='VIRTUAL'){var _0xbe7d39={};_0xbe7d39[_0x6e912b[_0x8503('0x24')]]={'$like':'%'+_0x4f12ae['query']['filter']+'%'};return _0xbe7d39;}})});}_0x4622a7=_[_0x8503('0x37')]({},_0x4622a7,_0x4f12ae[_0x8503('0x38')]);var _0x2305dd={'where':_0x4622a7[_0x8503('0x35')]};return db[_0x8503('0x27')][_0x8503('0x1b')](_0x2305dd)[_0x8503('0x20')](function(_0x122e39){_0x2de782[_0x8503('0x1b')]=_0x122e39;if(_0x4f12ae[_0x8503('0x2b')][_0x8503('0x39')]){_0x4622a7[_0x8503('0x3a')]=[{'all':!![]}];}return db['JscriptySessionReport']['findAll'](_0x4622a7);})['then'](function(_0x48d99a){_0x2de782['rows']=_0x48d99a;return _0x2de782;})[_0x8503('0x20')](respondWithFilteredResult(_0x3372b5,_0x4622a7))[_0x8503('0x3b')](handleError(_0x3372b5,null));};exports[_0x8503('0x3c')]=function(_0x13e526,_0x589f6d){var _0x3e2f07={'raw':!![],'where':{'id':_0x13e526['params']['id']}},_0x1ddea2={};_0x1ddea2[_0x8503('0x2a')]=_[_0x8503('0x3d')](db['JscriptySessionReport']['rawAttributes']);_0x1ddea2[_0x8503('0x2b')]=_['keys'](_0x13e526[_0x8503('0x2b')]);_0x1ddea2[_0x8503('0x2c')]=_[_0x8503('0x2d')](_0x1ddea2['model'],_0x1ddea2[_0x8503('0x2b')]);_0x3e2f07['attributes']=_[_0x8503('0x2d')](_0x1ddea2[_0x8503('0x2a')],qs[_0x8503('0x2f')](_0x13e526['query'][_0x8503('0x2f')]));_0x3e2f07[_0x8503('0x2e')]=_0x3e2f07[_0x8503('0x2e')][_0x8503('0x30')]?_0x3e2f07[_0x8503('0x2e')]:_0x1ddea2[_0x8503('0x2a')];if(_0x13e526['query'][_0x8503('0x39')]){_0x3e2f07[_0x8503('0x3a')]=[{'all':!![]}];}_0x3e2f07=_[_0x8503('0x37')]({},_0x3e2f07,_0x13e526[_0x8503('0x38')]);return db[_0x8503('0x27')][_0x8503('0x3e')](_0x3e2f07)[_0x8503('0x20')](handleEntityNotFound(_0x589f6d,null))['then'](respondWithResult(_0x589f6d,null))[_0x8503('0x3b')](handleError(_0x589f6d,null));};exports[_0x8503('0x3f')]=function(_0x1213a7,_0x2f4d7a){return db[_0x8503('0x27')][_0x8503('0x3f')](_0x1213a7[_0x8503('0x40')],{})[_0x8503('0x20')](respondWithResult(_0x2f4d7a,0xc9))[_0x8503('0x3b')](handleError(_0x2f4d7a,null));};exports[_0x8503('0x1f')]=function(_0x5b2cb8,_0x1e653c){if(_0x5b2cb8['body']['id']){delete _0x5b2cb8[_0x8503('0x40')]['id'];}return db[_0x8503('0x27')]['find']({'where':{'id':_0x5b2cb8[_0x8503('0x41')]['id']}})[_0x8503('0x20')](handleEntityNotFound(_0x1e653c,null))[_0x8503('0x20')](saveUpdates(_0x5b2cb8[_0x8503('0x40')],null))[_0x8503('0x20')](respondWithResult(_0x1e653c,null))['catch'](handleError(_0x1e653c,null));};exports[_0x8503('0x42')]=function(_0x20b13f,_0x30a2b5){return db[_0x8503('0x27')]['find']({'where':{'id':_0x20b13f[_0x8503('0x41')]['id']}})['then'](handleEntityNotFound(_0x30a2b5,null))[_0x8503('0x20')](removeEntity(_0x30a2b5,null))[_0x8503('0x3b')](handleError(_0x30a2b5,null));};exports[_0x8503('0x43')]=function(_0x4fb94a,_0x10e7a8){return db[_0x8503('0x27')]['describe']()[_0x8503('0x20')](respondWithResult(_0x10e7a8,null))['catch'](handleError(_0x10e7a8,null));};exports[_0x8503('0x44')]=function(_0x1b4f9f,_0x1f58e9,_0x356d88){var _0x1e2a41={'raw':!![],'where':{}};var _0xa15b67={};var _0xfbe6bb={'count':0x0,'rows':[]};return db[_0x8503('0x27')]['findOne']({'where':{'id':_0x1b4f9f['params']['id']}})[_0x8503('0x20')](handleEntityNotFound(_0x1f58e9,null))['then'](function(_0x4d375e){if(_0x4d375e){_0xa15b67[_0x8503('0x2a')]=_[_0x8503('0x3d')](db['JscriptyQuestionReport'][_0x8503('0x28')]);_0xa15b67[_0x8503('0x2b')]=_[_0x8503('0x3d')](_0x1b4f9f[_0x8503('0x2b')]);_0xa15b67[_0x8503('0x2c')]=_[_0x8503('0x2d')](_0xa15b67[_0x8503('0x2a')],_0xa15b67[_0x8503('0x2b')]);_0x1e2a41['attributes']=_[_0x8503('0x2d')](_0xa15b67[_0x8503('0x2a')],qs[_0x8503('0x2f')](_0x1b4f9f[_0x8503('0x2b')]['fields']));_0x1e2a41[_0x8503('0x2e')]=_0x1e2a41[_0x8503('0x2e')][_0x8503('0x30')]?_0x1e2a41['attributes']:_0xa15b67['model'];if(!_0x1b4f9f[_0x8503('0x2b')][_0x8503('0x31')](_0x8503('0x32'))){_0x1e2a41[_0x8503('0x1a')]=qs['limit'](_0x1b4f9f[_0x8503('0x2b')][_0x8503('0x1a')]);_0x1e2a41[_0x8503('0x18')]=qs[_0x8503('0x18')](_0x1b4f9f[_0x8503('0x2b')][_0x8503('0x18')]);}_0x1e2a41['order']=qs['sort'](_0x1b4f9f[_0x8503('0x2b')][_0x8503('0x33')]);_0x1e2a41[_0x8503('0x35')]=qs[_0x8503('0x2c')](_[_0x8503('0x34')](_0x1b4f9f[_0x8503('0x2b')],_0xa15b67[_0x8503('0x2c')]));_0x1e2a41[_0x8503('0x35')][_0x8503('0x45')]=_0x4d375e['id'];if(_0x1b4f9f[_0x8503('0x2b')]['filter']){_0x1e2a41[_0x8503('0x35')]=_[_0x8503('0x37')](_0x1e2a41[_0x8503('0x35')],{'$or':_[_0x8503('0x26')](_0x1e2a41['attributes'],function(_0x1d02ce){var _0x3a4eb5={};_0x3a4eb5[_0x1d02ce]={'$like':'%'+_0x1b4f9f[_0x8503('0x2b')]['filter']+'%'};return _0x3a4eb5;})});}_0x1e2a41=_[_0x8503('0x37')]({},_0x1e2a41,_0x1b4f9f[_0x8503('0x38')]);return db[_0x8503('0x46')][_0x8503('0x1b')]({'where':_0x1e2a41[_0x8503('0x35')]})[_0x8503('0x20')](function(_0x505881){_0xfbe6bb['count']=_0x505881;if(_0x1b4f9f[_0x8503('0x2b')][_0x8503('0x39')]){_0x1e2a41[_0x8503('0x3a')]=[{'all':!![]}];}return db[_0x8503('0x46')][_0x8503('0x47')](_0x1e2a41);})[_0x8503('0x20')](function(_0x50f405){_0xfbe6bb[_0x8503('0x48')]=_0x50f405;return _0xfbe6bb;});}})['then'](respondWithFilteredResult(_0x1f58e9,_0x1e2a41))[_0x8503('0x3b')](handleError(_0x1f58e9,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5075=['bluebird','request-promise','rimraf','../../config/environment','./jscriptySessionReport.attributes','define','report_jscripty_sessions','lodash','util','../../config/logger','api','moment'];(function(_0x4a9fb1,_0x273043){var _0x348672=function(_0x142b69){while(--_0x142b69){_0x4a9fb1['push'](_0x4a9fb1['shift']());}};_0x348672(++_0x273043);}(_0x5075,0x73));var _0x5507=function(_0x4bcf38,_0x3c12be){_0x4bcf38=_0x4bcf38-0x0;var _0x4a89be=_0x5075[_0x4bcf38];return _0x4a89be;};'use strict';var _=require(_0x5507('0x0'));var util=require(_0x5507('0x1'));var logger=require(_0x5507('0x2'))(_0x5507('0x3'));var moment=require(_0x5507('0x4'));var BPromise=require(_0x5507('0x5'));var rp=require(_0x5507('0x6'));var fs=require('fs');var path=require('path');var rimraf=require(_0x5507('0x7'));var config=require(_0x5507('0x8'));var attributes=require(_0x5507('0x9'));module['exports']=function(_0x5b6d7f,_0x2cd9ee){return _0x5b6d7f[_0x5507('0xa')]('JscriptySessionReport',attributes,{'tableName':_0x5507('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x53ec=['bluebird','path','../../config/environment','./jscriptySessionReport.attributes','define','JscriptySessionReport','lodash','util','../../config/logger','api','moment'];(function(_0x564ea0,_0x36fde9){var _0x2c3306=function(_0x50205f){while(--_0x50205f){_0x564ea0['push'](_0x564ea0['shift']());}};_0x2c3306(++_0x36fde9);}(_0x53ec,0x192));var _0xc53e=function(_0x339f67,_0x3eef63){_0x339f67=_0x339f67-0x0;var _0x9d6b2=_0x53ec[_0x339f67];return _0x9d6b2;};'use strict';var _=require(_0xc53e('0x0'));var util=require(_0xc53e('0x1'));var logger=require(_0xc53e('0x2'))(_0xc53e('0x3'));var moment=require(_0xc53e('0x4'));var BPromise=require(_0xc53e('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xc53e('0x6'));var rimraf=require('rimraf');var config=require(_0xc53e('0x7'));var attributes=require(_0xc53e('0x8'));module['exports']=function(_0x2f1414,_0x4f989b){return _0x2f1414[_0xc53e('0x9')](_0xc53e('0xa'),attributes,{'tableName':'report_jscripty_sessions','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3e24=['info','catch','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','http','then','JscriptySessionReport,\x20%s,\x20%s','request\x20sent','JscriptySessionReport,\x20%s,\x20%s,\x20%s','error','code','message'];(function(_0x1116ac,_0xcbe059){var _0x3e806b=function(_0x33b585){while(--_0x33b585){_0x1116ac['push'](_0x1116ac['shift']());}};_0x3e806b(++_0xcbe059);}(_0x3e24,0x167));var _0x43e2=function(_0x193fe6,_0x57d2c2){_0x193fe6=_0x193fe6-0x0;var _0x3afc4f=_0x3e24[_0x193fe6];return _0x3afc4f;};'use strict';var _=require(_0x43e2('0x0'));var util=require(_0x43e2('0x1'));var moment=require(_0x43e2('0x2'));var BPromise=require(_0x43e2('0x3'));var rs=require(_0x43e2('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x43e2('0x5'))['db'];var utils=require(_0x43e2('0x6'));var logger=require('../../config/logger')(_0x43e2('0x7'));var config=require(_0x43e2('0x8'));var jayson=require(_0x43e2('0x9'));var client=jayson[_0x43e2('0xa')][_0x43e2('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x121e2e,_0x23b2d8,_0x59956d){return new BPromise(function(_0xb75b,_0x2357bc){return client['request'](_0x121e2e,_0x59956d)[_0x43e2('0xc')](function(_0x2fdf85){logger['info'](_0x43e2('0xd'),_0x23b2d8,_0x43e2('0xe'));logger['debug'](_0x43e2('0xf'),_0x23b2d8,'request\x20sent',JSON['stringify'](_0x2fdf85));if(_0x2fdf85['error']){if(_0x2fdf85[_0x43e2('0x10')][_0x43e2('0x11')]===0x1f4){logger[_0x43e2('0x10')](_0x43e2('0xd'),_0x23b2d8,_0x2fdf85[_0x43e2('0x10')][_0x43e2('0x12')]);return _0x2357bc(_0x2fdf85[_0x43e2('0x10')][_0x43e2('0x12')]);}logger[_0x43e2('0x10')](_0x43e2('0xd'),_0x23b2d8,_0x2fdf85[_0x43e2('0x10')][_0x43e2('0x12')]);return _0xb75b(_0x2fdf85['error'][_0x43e2('0x12')]);}else{logger[_0x43e2('0x13')](_0x43e2('0xd'),_0x23b2d8,_0x43e2('0xe'));_0xb75b(_0x2fdf85['result']['message']);}})[_0x43e2('0x14')](function(_0x417ce5){logger[_0x43e2('0x10')](_0x43e2('0xd'),_0x23b2d8,_0x417ce5);_0x2357bc(_0x417ce5);});});}
\ No newline at end of file
+var _0x2542=['info','JscriptySessionReport,\x20%s,\x20%s','debug','JscriptySessionReport,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','code','error','message','lodash','util','moment','bluebird','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','request','then'];(function(_0x5aa5d2,_0x57d67a){var _0x573bd1=function(_0x2450ad){while(--_0x2450ad){_0x5aa5d2['push'](_0x5aa5d2['shift']());}};_0x573bd1(++_0x57d67a);}(_0x2542,0x169));var _0x2254=function(_0x28a475,_0x72e91b){_0x28a475=_0x28a475-0x0;var _0x4455eb=_0x2542[_0x28a475];return _0x4455eb;};'use strict';var _=require(_0x2254('0x0'));var util=require(_0x2254('0x1'));var moment=require(_0x2254('0x2'));var BPromise=require(_0x2254('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x2254('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x2254('0x5'));var logger=require(_0x2254('0x6'))(_0x2254('0x7'));var config=require(_0x2254('0x8'));var jayson=require(_0x2254('0x9'));var client=jayson['client'][_0x2254('0xa')]({'port':0x232a});function respondWithRpcPromise(_0xe8ca50,_0x2ee7ee,_0x3c45ec){return new BPromise(function(_0x1637ad,_0x477b47){return client[_0x2254('0xb')](_0xe8ca50,_0x3c45ec)[_0x2254('0xc')](function(_0xb395da){logger[_0x2254('0xd')](_0x2254('0xe'),_0x2ee7ee,'request\x20sent');logger[_0x2254('0xf')](_0x2254('0x10'),_0x2ee7ee,_0x2254('0x11'),JSON[_0x2254('0x12')](_0xb395da));if(_0xb395da['error']){if(_0xb395da['error'][_0x2254('0x13')]===0x1f4){logger[_0x2254('0x14')](_0x2254('0xe'),_0x2ee7ee,_0xb395da[_0x2254('0x14')][_0x2254('0x15')]);return _0x477b47(_0xb395da[_0x2254('0x14')]['message']);}logger[_0x2254('0x14')](_0x2254('0xe'),_0x2ee7ee,_0xb395da['error'][_0x2254('0x15')]);return _0x1637ad(_0xb395da[_0x2254('0x14')][_0x2254('0x15')]);}else{logger[_0x2254('0xd')](_0x2254('0xe'),_0x2ee7ee,_0x2254('0x11'));_0x1637ad(_0xb395da['result'][_0x2254('0x15')]);}})['catch'](function(_0x327d6d){logger[_0x2254('0x14')](_0x2254('0xe'),_0x2ee7ee,_0x327d6d);_0x477b47(_0x327d6d);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc999=['put','/:id','update','exports','util','path','connect-timeout','../../components/interaction/service','./license.controller','index'];(function(_0x54d4a8,_0x585a59){var _0x3b321b=function(_0x245c6a){while(--_0x245c6a){_0x54d4a8['push'](_0x54d4a8['shift']());}};_0x3b321b(++_0x585a59);}(_0xc999,0x176));var _0x9c99=function(_0x5e42a7,_0x3eba35){_0x5e42a7=_0x5e42a7-0x0;var _0x36d21b=_0xc999[_0x5e42a7];return _0x36d21b;};'use strict';var multer=require('multer');var util=require(_0x9c99('0x0'));var path=require(_0x9c99('0x1'));var timeout=require(_0x9c99('0x2'));var express=require('express');var router=express['Router']();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0x9c99('0x3'));var config=require('../../config/environment');var controller=require(_0x9c99('0x4'));router['get']('/',controller[_0x9c99('0x5')]);router[_0x9c99('0x6')](_0x9c99('0x7'),auth['isAuthenticated'](),controller[_0x9c99('0x8')]);module[_0x9c99('0x9')]=router;
\ No newline at end of file
+var _0x1782=['/:id','exports','util','path','Router','../../components/auth/service','../../components/interaction/service','./license.controller','index','put'];(function(_0x13357f,_0x210dc8){var _0x1fbbf1=function(_0x505bf2){while(--_0x505bf2){_0x13357f['push'](_0x13357f['shift']());}};_0x1fbbf1(++_0x210dc8);}(_0x1782,0x188));var _0x2178=function(_0x111777,_0x43e893){_0x111777=_0x111777-0x0;var _0x18b652=_0x1782[_0x111777];return _0x18b652;};'use strict';var multer=require('multer');var util=require(_0x2178('0x0'));var path=require(_0x2178('0x1'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x2178('0x2')]();var fs_extra=require('fs-extra');var auth=require(_0x2178('0x3'));var interaction=require(_0x2178('0x4'));var config=require('../../config/environment');var controller=require(_0x2178('0x5'));router['get']('/',controller[_0x2178('0x6')]);router[_0x2178('0x7')](_0x2178('0x8'),auth['isAuthenticated'](),controller['update']);module[_0x2178('0x9')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdddb=['sequelize','STRING','INTEGER'];(function(_0x4c373b,_0x43c1c0){var _0x5bb23b=function(_0x548449){while(--_0x548449){_0x4c373b['push'](_0x4c373b['shift']());}};_0x5bb23b(++_0x43c1c0);}(_0xdddb,0x1ef));var _0xbddd=function(_0x3823b0,_0x375563){_0x3823b0=_0x3823b0-0x0;var _0x4ffe22=_0xdddb[_0x3823b0];return _0x4ffe22;};'use strict';var Sequelize=require(_0xbddd('0x0'));module['exports']={'license':{'type':Sequelize['TEXT']},'data1':{'type':Sequelize[_0xbddd('0x1')]},'data2':{'type':Sequelize[_0xbddd('0x1')]},'chatLicenseExceeded':{'type':Sequelize[_0xbddd('0x2')],'defaultValue':0x0}};
\ No newline at end of file
+var _0xe93a=['exports','STRING','INTEGER','sequelize'];(function(_0x5ac8fe,_0x143e86){var _0x243105=function(_0x57bd4d){while(--_0x57bd4d){_0x5ac8fe['push'](_0x5ac8fe['shift']());}};_0x243105(++_0x143e86);}(_0xe93a,0x15f));var _0xae93=function(_0x2f5ac5,_0x1ee939){_0x2f5ac5=_0x2f5ac5-0x0;var _0x37c9a8=_0xe93a[_0x2f5ac5];return _0x37c9a8;};'use strict';var Sequelize=require(_0xae93('0x0'));module[_0xae93('0x1')]={'license':{'type':Sequelize['TEXT']},'data1':{'type':Sequelize[_0xae93('0x2')]},'data2':{'type':Sequelize['STRING']},'chatLicenseExceeded':{'type':Sequelize[_0xae93('0x3')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1261=['../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','reject','save','update','then','error','stack','send','index','model','License','query','intersection','fields','attributes','merge','options','getLicense','catch','body','find','params','get','key','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','fs-extra','lodash','crypto','jsforce','desk.js','to-csv','querystring','ioredis'];(function(_0x2bd688,_0xa8be6b){var _0x247408=function(_0x181497){while(--_0x181497){_0x2bd688['push'](_0x2bd688['shift']());}};_0x247408(++_0xa8be6b);}(_0x1261,0x144));var _0x1126=function(_0x43db86,_0x34184b){_0x43db86=_0x43db86-0x0;var _0x27bda2=_0x1261[_0x43db86];return _0x27bda2;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x1126('0x0'));var zipdir=require(_0x1126('0x1'));var jsonpatch=require(_0x1126('0x2'));var rp=require(_0x1126('0x3'));var moment=require(_0x1126('0x4'));var BPromise=require(_0x1126('0x5'));var Mustache=require(_0x1126('0x6'));var util=require(_0x1126('0x7'));var path=require(_0x1126('0x8'));var sox=require(_0x1126('0x9'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x1126('0xa'));var _=require(_0x1126('0xb'));var squel=require('squel');var crypto=require(_0x1126('0xc'));var jsforce=require(_0x1126('0xd'));var deskjs=require(_0x1126('0xe'));var toCsv=require(_0x1126('0xf'));var querystring=require(_0x1126('0x10'));var Papa=require('papaparse');var Redis=require(_0x1126('0x11'));var authService=require(_0x1126('0x12'));var qs=require(_0x1126('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x1126('0x14'));var logger=require('../../config/logger')('api');var utils=require(_0x1126('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0x1126('0x16'));var db=require(_0x1126('0x17'))['db'];function respondWithStatusCode(_0xd26a32,_0x273896){_0x273896=_0x273896||0xcc;return function(_0xca0355){if(_0xca0355){return _0xd26a32[_0x1126('0x18')](_0x273896);}return _0xd26a32[_0x1126('0x19')](_0x273896)[_0x1126('0x1a')]();};}function respondWithResult(_0x43850b,_0x53a8f0){_0x53a8f0=_0x53a8f0||0xc8;return function(_0x5de9a7){if(_0x5de9a7){return _0x43850b[_0x1126('0x19')](_0x53a8f0)[_0x1126('0x1b')](_0x5de9a7);}};}function respondWithFilteredResult(_0x279455,_0x4be0c6){return function(_0x45149c){if(_0x45149c){var _0x4794a7=typeof _0x4be0c6[_0x1126('0x1c')]===_0x1126('0x1d')&&typeof _0x4be0c6[_0x1126('0x1e')]==='undefined';var _0x245cd7=_0x45149c[_0x1126('0x1f')];var _0x4a7b49=_0x4794a7?0x0:_0x4be0c6['offset'];var _0x22ae0b=_0x4794a7?_0x45149c[_0x1126('0x1f')]:_0x4be0c6['offset']+_0x4be0c6['limit'];var _0x4564c0;if(_0x22ae0b>=_0x245cd7){_0x22ae0b=_0x245cd7;_0x4564c0=0xc8;}else{_0x4564c0=0xce;}_0x279455['status'](_0x4564c0);return _0x279455[_0x1126('0x20')](_0x1126('0x21'),_0x4a7b49+'-'+_0x22ae0b+'/'+_0x245cd7)[_0x1126('0x1b')](_0x45149c);}return null;};}function patchUpdates(_0x54400a){return function(_0x2a08ba){try{jsonpatch['apply'](_0x2a08ba,_0x54400a,!![]);}catch(_0x56efeb){return BPromise[_0x1126('0x22')](_0x56efeb);}return _0x2a08ba[_0x1126('0x23')]();};}function saveUpdates(_0x25b24b,_0x36d254){return function(_0x526ca1){if(_0x526ca1){return _0x526ca1[_0x1126('0x24')](_0x25b24b)[_0x1126('0x25')](function(_0x48a08d){return _0x48a08d;});}return null;};}function removeEntity(_0x2175fa,_0x59cd8e){return function(_0x529dd9){if(_0x529dd9){return _0x529dd9['destroy']()[_0x1126('0x25')](function(){_0x2175fa[_0x1126('0x19')](0xcc)[_0x1126('0x1a')]();});}};}function handleEntityNotFound(_0x34bcf1,_0x566c09){return function(_0x1b07a7){if(!_0x1b07a7){_0x34bcf1[_0x1126('0x18')](0x194);}return _0x1b07a7;};}function handleError(_0x38119d,_0x589725){_0x589725=_0x589725||0x1f4;return function(_0x35eec3){logger[_0x1126('0x26')](_0x35eec3[_0x1126('0x27')]);if(_0x35eec3['name']){delete _0x35eec3['name'];}_0x38119d[_0x1126('0x19')](_0x589725)[_0x1126('0x28')](_0x35eec3);};}var utilLicense=require('../../config/license/util');exports[_0x1126('0x29')]=function(_0x23d2bc,_0x4a334a){var _0x3fa694={'raw':!![],'where':{'id':0x1}},_0x4bf807={};_0x4bf807[_0x1126('0x2a')]=_['keys'](db[_0x1126('0x2b')]['rawAttributes']);_0x4bf807[_0x1126('0x2c')]=_['keys'](_0x23d2bc['query']);_0x4bf807['filters']=_[_0x1126('0x2d')](_0x4bf807[_0x1126('0x2a')],_0x4bf807[_0x1126('0x2c')]);_0x3fa694['attributes']=_[_0x1126('0x2d')](_0x4bf807[_0x1126('0x2a')],qs['fields'](_0x23d2bc[_0x1126('0x2c')][_0x1126('0x2e')]));_0x3fa694[_0x1126('0x2f')]=_0x3fa694[_0x1126('0x2f')]['length']?_0x3fa694['attributes']:_0x4bf807[_0x1126('0x2a')];_0x3fa694=_[_0x1126('0x30')]({},_0x3fa694,_0x23d2bc[_0x1126('0x31')]);return utilLicense[_0x1126('0x32')](_0x3fa694)['then'](respondWithResult(_0x4a334a,null))[_0x1126('0x33')](handleError(_0x4a334a,null));};exports[_0x1126('0x24')]=function(_0x313ebe,_0x22436c){if(_0x313ebe[_0x1126('0x34')]['id']){delete _0x313ebe['body']['id'];}return db[_0x1126('0x2b')][_0x1126('0x35')]({'where':{'id':_0x313ebe[_0x1126('0x36')]['id']}})[_0x1126('0x25')](handleEntityNotFound(_0x22436c,null))['then'](function(_0x4ca51c){var _0x22827a=_0x4ca51c[_0x1126('0x37')]({'plain':!![]});return utilLicense['checkLicense'](_0x22827a,_0x313ebe[_0x1126('0x34')][_0x1126('0x38')]);})[_0x1126('0x25')](function(_0x5c08b9){if(!_0x5c08b9['demo']){return saveUpdates(_0x313ebe[_0x1126('0x34')],null);}return _0x5c08b9;})[_0x1126('0x25')](respondWithResult(_0x22436c,null))[_0x1126('0x33')](handleError(_0x22436c,null));};
\ No newline at end of file
+var _0xadb5=['query','filters','intersection','attributes','merge','getLicense','body','find','params','key','catch','rimraf','fast-json-patch','request-promise','moment','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/license/util','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','update','then','destroy','end','stack','name','send','model','keys','License'];(function(_0x210937,_0x1d756a){var _0x2741af=function(_0x5356cd){while(--_0x5356cd){_0x210937['push'](_0x210937['shift']());}};_0x2741af(++_0x1d756a);}(_0xadb5,0xad));var _0x5adb=function(_0x5333a8,_0x2c3547){_0x5333a8=_0x5333a8-0x0;var _0x4ac0bf=_0xadb5[_0x5333a8];return _0x4ac0bf;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x5adb('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x5adb('0x1'));var rp=require(_0x5adb('0x2'));var moment=require(_0x5adb('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x5adb('0x4'));var util=require(_0x5adb('0x5'));var path=require(_0x5adb('0x6'));var sox=require('sox');var csv=require(_0x5adb('0x7'));var ejs=require(_0x5adb('0x8'));var fs=require('fs');var fs_extra=require(_0x5adb('0x9'));var _=require(_0x5adb('0xa'));var squel=require(_0x5adb('0xb'));var crypto=require(_0x5adb('0xc'));var jsforce=require(_0x5adb('0xd'));var deskjs=require(_0x5adb('0xe'));var toCsv=require(_0x5adb('0x7'));var querystring=require(_0x5adb('0xf'));var Papa=require(_0x5adb('0x10'));var Redis=require(_0x5adb('0x11'));var authService=require(_0x5adb('0x12'));var qs=require(_0x5adb('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x5adb('0x14'))(_0x5adb('0x15'));var utils=require(_0x5adb('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x5adb('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x2a0b70,_0x5433bf){_0x5433bf=_0x5433bf||0xcc;return function(_0x8cfcc6){if(_0x8cfcc6){return _0x2a0b70[_0x5adb('0x18')](_0x5433bf);}return _0x2a0b70[_0x5adb('0x19')](_0x5433bf)['end']();};}function respondWithResult(_0x2a545b,_0x34af2c){_0x34af2c=_0x34af2c||0xc8;return function(_0xf82f72){if(_0xf82f72){return _0x2a545b['status'](_0x34af2c)[_0x5adb('0x1a')](_0xf82f72);}};}function respondWithFilteredResult(_0x518823,_0x367d82){return function(_0x42a482){if(_0x42a482){var _0x30614e=typeof _0x367d82[_0x5adb('0x1b')]===_0x5adb('0x1c')&&typeof _0x367d82[_0x5adb('0x1d')]===_0x5adb('0x1c');var _0x42f4c6=_0x42a482[_0x5adb('0x1e')];var _0x529b65=_0x30614e?0x0:_0x367d82[_0x5adb('0x1b')];var _0x5de028=_0x30614e?_0x42a482[_0x5adb('0x1e')]:_0x367d82['offset']+_0x367d82[_0x5adb('0x1d')];var _0x50e84f;if(_0x5de028>=_0x42f4c6){_0x5de028=_0x42f4c6;_0x50e84f=0xc8;}else{_0x50e84f=0xce;}_0x518823['status'](_0x50e84f);return _0x518823[_0x5adb('0x1f')](_0x5adb('0x20'),_0x529b65+'-'+_0x5de028+'/'+_0x42f4c6)[_0x5adb('0x1a')](_0x42a482);}return null;};}function patchUpdates(_0x1fd4a7){return function(_0x99bc6c){try{jsonpatch['apply'](_0x99bc6c,_0x1fd4a7,!![]);}catch(_0x3255b3){return BPromise['reject'](_0x3255b3);}return _0x99bc6c['save']();};}function saveUpdates(_0x3754cc,_0x379b33){return function(_0x1a38d3){if(_0x1a38d3){return _0x1a38d3[_0x5adb('0x21')](_0x3754cc)[_0x5adb('0x22')](function(_0x413911){return _0x413911;});}return null;};}function removeEntity(_0xfd9bb9,_0x4ca150){return function(_0x4b1957){if(_0x4b1957){return _0x4b1957[_0x5adb('0x23')]()[_0x5adb('0x22')](function(){_0xfd9bb9[_0x5adb('0x19')](0xcc)[_0x5adb('0x24')]();});}};}function handleEntityNotFound(_0x49f203,_0x2fee18){return function(_0x2e1e63){if(!_0x2e1e63){_0x49f203['sendStatus'](0x194);}return _0x2e1e63;};}function handleError(_0x1feecf,_0x1ded9f){_0x1ded9f=_0x1ded9f||0x1f4;return function(_0x1a0acd){logger['error'](_0x1a0acd[_0x5adb('0x25')]);if(_0x1a0acd[_0x5adb('0x26')]){delete _0x1a0acd[_0x5adb('0x26')];}_0x1feecf[_0x5adb('0x19')](_0x1ded9f)[_0x5adb('0x27')](_0x1a0acd);};}var utilLicense=require(_0x5adb('0x17'));exports['index']=function(_0x49992e,_0x5d457e){var _0x39bddd={'raw':!![],'where':{'id':0x1}},_0x1eac55={};_0x1eac55[_0x5adb('0x28')]=_[_0x5adb('0x29')](db[_0x5adb('0x2a')]['rawAttributes']);_0x1eac55[_0x5adb('0x2b')]=_[_0x5adb('0x29')](_0x49992e[_0x5adb('0x2b')]);_0x1eac55[_0x5adb('0x2c')]=_[_0x5adb('0x2d')](_0x1eac55[_0x5adb('0x28')],_0x1eac55[_0x5adb('0x2b')]);_0x39bddd[_0x5adb('0x2e')]=_[_0x5adb('0x2d')](_0x1eac55[_0x5adb('0x28')],qs['fields'](_0x49992e[_0x5adb('0x2b')]['fields']));_0x39bddd[_0x5adb('0x2e')]=_0x39bddd[_0x5adb('0x2e')]['length']?_0x39bddd[_0x5adb('0x2e')]:_0x1eac55[_0x5adb('0x28')];_0x39bddd=_[_0x5adb('0x2f')]({},_0x39bddd,_0x49992e['options']);return utilLicense[_0x5adb('0x30')](_0x39bddd)[_0x5adb('0x22')](respondWithResult(_0x5d457e,null))['catch'](handleError(_0x5d457e,null));};exports['update']=function(_0x1ed9ea,_0x49dd03){if(_0x1ed9ea[_0x5adb('0x31')]['id']){delete _0x1ed9ea[_0x5adb('0x31')]['id'];}return db[_0x5adb('0x2a')][_0x5adb('0x32')]({'where':{'id':_0x1ed9ea[_0x5adb('0x33')]['id']}})['then'](handleEntityNotFound(_0x49dd03,null))[_0x5adb('0x22')](function(_0x215b88){var _0x1c3a5c=_0x215b88['get']({'plain':!![]});return utilLicense['checkLicense'](_0x1c3a5c,_0x1ed9ea[_0x5adb('0x31')][_0x5adb('0x34')]);})['then'](function(_0x2355bc){if(!_0x2355bc['demo']){return saveUpdates(_0x1ed9ea[_0x5adb('0x31')],null);}return _0x2355bc;})['then'](respondWithResult(_0x49dd03,null))[_0x5adb('0x35')](handleError(_0x49dd03,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x948d=['license','lodash','../../config/logger','api','moment','bluebird','request-promise','rimraf','../../config/environment','./license.attributes','exports','License'];(function(_0x24aa9c,_0x5e74e0){var _0x9029d2=function(_0x48b320){while(--_0x48b320){_0x24aa9c['push'](_0x24aa9c['shift']());}};_0x9029d2(++_0x5e74e0);}(_0x948d,0x85));var _0xd948=function(_0x113363,_0x1b9554){_0x113363=_0x113363-0x0;var _0x43688a=_0x948d[_0x113363];return _0x43688a;};'use strict';var _=require(_0xd948('0x0'));var util=require('util');var logger=require(_0xd948('0x1'))(_0xd948('0x2'));var moment=require(_0xd948('0x3'));var BPromise=require(_0xd948('0x4'));var rp=require(_0xd948('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0xd948('0x6'));var config=require(_0xd948('0x7'));var attributes=require(_0xd948('0x8'));module[_0xd948('0x9')]=function(_0x29c54d,_0x31ccf1){return _0x29c54d['define'](_0xd948('0xa'),attributes,{'tableName':_0xd948('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x7184=['define','License','license','lodash','../../config/logger','api','moment','bluebird','request-promise','path','./license.attributes','exports'];(function(_0xe747b0,_0x47814c){var _0x875f64=function(_0x17474f){while(--_0x17474f){_0xe747b0['push'](_0xe747b0['shift']());}};_0x875f64(++_0x47814c);}(_0x7184,0x153));var _0x4718=function(_0x3a83c8,_0x489ffd){_0x3a83c8=_0x3a83c8-0x0;var _0x5c89db=_0x7184[_0x3a83c8];return _0x5c89db;};'use strict';var _=require(_0x4718('0x0'));var util=require('util');var logger=require(_0x4718('0x1'))(_0x4718('0x2'));var moment=require(_0x4718('0x3'));var BPromise=require(_0x4718('0x4'));var rp=require(_0x4718('0x5'));var fs=require('fs');var path=require(_0x4718('0x6'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0x4718('0x7'));module[_0x4718('0x8')]=function(_0x1d5c7d,_0x4b0ef4){return _0x1d5c7d[_0x4718('0x9')](_0x4718('0xa'),attributes,{'tableName':_0x4718('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb5b7=['License,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','../../config/environment','jayson/promise','client','http','request','info','License,\x20%s,\x20%s','request\x20sent','debug'];(function(_0x1ae509,_0x52383b){var _0x141f0f=function(_0xd50bc3){while(--_0xd50bc3){_0x1ae509['push'](_0x1ae509['shift']());}};_0x141f0f(++_0x52383b);}(_0xb5b7,0x18e));var _0x7b5b=function(_0x453a4a,_0x4171f7){_0x453a4a=_0x453a4a-0x0;var _0x1b6dc4=_0xb5b7[_0x453a4a];return _0x1b6dc4;};'use strict';var _=require('lodash');var util=require(_0x7b5b('0x0'));var moment=require(_0x7b5b('0x1'));var BPromise=require(_0x7b5b('0x2'));var rs=require(_0x7b5b('0x3'));var fs=require('fs');var Redis=require(_0x7b5b('0x4'));var db=require(_0x7b5b('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0x7b5b('0x6'))('rpc');var config=require(_0x7b5b('0x7'));var jayson=require(_0x7b5b('0x8'));var client=jayson[_0x7b5b('0x9')][_0x7b5b('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x128661,_0x420b1e,_0x41babd){return new BPromise(function(_0x326088,_0x123c62){return client[_0x7b5b('0xb')](_0x128661,_0x41babd)['then'](function(_0x35eded){logger[_0x7b5b('0xc')](_0x7b5b('0xd'),_0x420b1e,_0x7b5b('0xe'));logger[_0x7b5b('0xf')](_0x7b5b('0x10'),_0x420b1e,_0x7b5b('0xe'),JSON[_0x7b5b('0x11')](_0x35eded));if(_0x35eded[_0x7b5b('0x12')]){if(_0x35eded[_0x7b5b('0x12')][_0x7b5b('0x13')]===0x1f4){logger['error']('License,\x20%s,\x20%s',_0x420b1e,_0x35eded[_0x7b5b('0x12')][_0x7b5b('0x14')]);return _0x123c62(_0x35eded[_0x7b5b('0x12')][_0x7b5b('0x14')]);}logger[_0x7b5b('0x12')]('License,\x20%s,\x20%s',_0x420b1e,_0x35eded['error'][_0x7b5b('0x14')]);return _0x326088(_0x35eded[_0x7b5b('0x12')][_0x7b5b('0x14')]);}else{logger[_0x7b5b('0xc')](_0x7b5b('0xd'),_0x420b1e,'request\x20sent');_0x326088(_0x35eded[_0x7b5b('0x15')]['message']);}})[_0x7b5b('0x16')](function(_0x2cb5e0){logger[_0x7b5b('0x12')](_0x7b5b('0xd'),_0x420b1e,_0x2cb5e0);_0x123c62(_0x2cb5e0);});});}
\ No newline at end of file
+var _0xd15d=['result','catch','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/environment','client','http','info','License,\x20%s,\x20%s','debug','License,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message'];(function(_0x5285f9,_0x2bd7d7){var _0x6edc0c=function(_0x5ae671){while(--_0x5ae671){_0x5285f9['push'](_0x5285f9['shift']());}};_0x6edc0c(++_0x2bd7d7);}(_0xd15d,0xb6));var _0xdd15=function(_0x20369d,_0x4cf364){_0x20369d=_0x20369d-0x0;var _0x45bc03=_0xd15d[_0x20369d];return _0x45bc03;};'use strict';var _=require(_0xdd15('0x0'));var util=require(_0xdd15('0x1'));var moment=require(_0xdd15('0x2'));var BPromise=require(_0xdd15('0x3'));var rs=require(_0xdd15('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xdd15('0x5'))['db'];var utils=require(_0xdd15('0x6'));var logger=require('../../config/logger')('rpc');var config=require(_0xdd15('0x7'));var jayson=require('jayson/promise');var client=jayson[_0xdd15('0x8')][_0xdd15('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x4e8194,_0x341cf6,_0x5f107f){return new BPromise(function(_0x5d7990,_0x2ed1a8){return client['request'](_0x4e8194,_0x5f107f)['then'](function(_0x2cf898){logger[_0xdd15('0xa')](_0xdd15('0xb'),_0x341cf6,'request\x20sent');logger[_0xdd15('0xc')](_0xdd15('0xd'),_0x341cf6,_0xdd15('0xe'),JSON[_0xdd15('0xf')](_0x2cf898));if(_0x2cf898['error']){if(_0x2cf898[_0xdd15('0x10')]['code']===0x1f4){logger[_0xdd15('0x10')](_0xdd15('0xb'),_0x341cf6,_0x2cf898[_0xdd15('0x10')][_0xdd15('0x11')]);return _0x2ed1a8(_0x2cf898['error'][_0xdd15('0x11')]);}logger[_0xdd15('0x10')](_0xdd15('0xb'),_0x341cf6,_0x2cf898[_0xdd15('0x10')][_0xdd15('0x11')]);return _0x5d7990(_0x2cf898[_0xdd15('0x10')][_0xdd15('0x11')]);}else{logger[_0xdd15('0xa')](_0xdd15('0xb'),_0x341cf6,_0xdd15('0xe'));_0x5d7990(_0x2cf898[_0xdd15('0x12')]['message']);}})[_0xdd15('0x13')](function(_0x4e9348){logger[_0xdd15('0x10')](_0xdd15('0xb'),_0x341cf6,_0x4e9348);_0x2ed1a8(_0x4e9348);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x56a1=['update','removeDispositions','delete','removeImap','removeSmtp','/:id','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./mailAccount.controller','get','isAuthenticated','index','/describe','describe','show','/:id/dispositions','/:id/canned_answers','getAnswers','/:id/in_servers','getImap','/:id/out_servers','getSmtp','getInteractions','getApplications','/:id/messages','/:id/verify','verifySmtp','post','addDisposition','create','addImap','addSmtp','/:id/interactions','addInteraction','/:id/applications','addApplications','/:id/send','send','/:id/users','addAgents','put'];(function(_0x40d73d,_0x107d1a){var _0x1e7882=function(_0xcfe745){while(--_0xcfe745){_0x40d73d['push'](_0x40d73d['shift']());}};_0x1e7882(++_0x107d1a);}(_0x56a1,0x165));var _0x156a=function(_0x11d830,_0x116d43){_0x11d830=_0x11d830-0x0;var _0x4868e7=_0x56a1[_0x11d830];return _0x4868e7;};'use strict';var multer=require(_0x156a('0x0'));var util=require(_0x156a('0x1'));var path=require(_0x156a('0x2'));var timeout=require(_0x156a('0x3'));var express=require(_0x156a('0x4'));var router=express[_0x156a('0x5')]();var fs_extra=require(_0x156a('0x6'));var auth=require(_0x156a('0x7'));var interaction=require(_0x156a('0x8'));var config=require(_0x156a('0x9'));var controller=require(_0x156a('0xa'));router[_0x156a('0xb')]('/',auth[_0x156a('0xc')](),controller[_0x156a('0xd')]);router[_0x156a('0xb')](_0x156a('0xe'),auth[_0x156a('0xc')](),controller[_0x156a('0xf')]);router[_0x156a('0xb')]('/:id',auth[_0x156a('0xc')](),controller[_0x156a('0x10')]);router['get'](_0x156a('0x11'),auth['isAuthenticated'](),controller['getDispositions']);router[_0x156a('0xb')](_0x156a('0x12'),auth[_0x156a('0xc')](),controller[_0x156a('0x13')]);router[_0x156a('0xb')](_0x156a('0x14'),auth[_0x156a('0xc')](),controller[_0x156a('0x15')]);router[_0x156a('0xb')](_0x156a('0x16'),auth[_0x156a('0xc')](),controller[_0x156a('0x17')]);router['get']('/:id/interactions',auth['isAuthenticated'](),controller[_0x156a('0x18')]);router['get']('/:id/applications',auth[_0x156a('0xc')](),controller[_0x156a('0x19')]);router[_0x156a('0xb')](_0x156a('0x1a'),auth['isAuthenticated'](),controller['getMessages']);router[_0x156a('0xb')](_0x156a('0x1b'),auth[_0x156a('0xc')](),controller[_0x156a('0x1c')]);router[_0x156a('0xb')]('/:id/users',auth[_0x156a('0xc')](),controller['getAgents']);router[_0x156a('0x1d')](_0x156a('0x11'),auth[_0x156a('0xc')](),controller[_0x156a('0x1e')]);router['post']('/:id/canned_answers',auth[_0x156a('0xc')](),controller['addAnswer']);router[_0x156a('0x1d')]('/',auth['isAuthenticated'](),controller[_0x156a('0x1f')]);router['post'](_0x156a('0x14'),auth['isAuthenticated'](),controller[_0x156a('0x20')]);router['post']('/:id/out_servers',auth[_0x156a('0xc')](),controller[_0x156a('0x21')]);router['post'](_0x156a('0x22'),auth[_0x156a('0xc')](),controller[_0x156a('0x23')]);router[_0x156a('0x1d')](_0x156a('0x24'),auth[_0x156a('0xc')](),controller[_0x156a('0x25')]);router['post'](_0x156a('0x26'),auth[_0x156a('0xc')](),controller[_0x156a('0x27')]);router[_0x156a('0x1d')](_0x156a('0x28'),auth[_0x156a('0xc')](),controller[_0x156a('0x29')]);router[_0x156a('0x2a')]('/:id',auth[_0x156a('0xc')](),controller[_0x156a('0x2b')]);router['delete'](_0x156a('0x11'),auth[_0x156a('0xc')](),controller[_0x156a('0x2c')]);router[_0x156a('0x2d')](_0x156a('0x12'),auth[_0x156a('0xc')](),controller['removeAnswers']);router[_0x156a('0x2d')]('/:id/in_servers',auth[_0x156a('0xc')](),controller[_0x156a('0x2e')]);router['delete']('/:id/out_servers',auth['isAuthenticated'](),controller[_0x156a('0x2f')]);router[_0x156a('0x2d')](_0x156a('0x30'),auth[_0x156a('0xc')](),controller['destroy']);router['delete'](_0x156a('0x28'),auth[_0x156a('0xc')](),controller['removeAgents']);module[_0x156a('0x31')]=router;
\ No newline at end of file
+var _0xb008=['/:id/interactions','addApplications','/:id/send','put','update','delete','removeDispositions','removeAnswers','removeImap','removeSmtp','destroy','exports','multer','util','path','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','./mailAccount.controller','get','/describe','describe','/:id','show','getDispositions','/:id/canned_answers','getAnswers','/:id/in_servers','getImap','/:id/out_servers','isAuthenticated','getSmtp','getInteractions','/:id/applications','getApplications','/:id/messages','getMessages','/:id/verify','verifySmtp','/:id/users','post','/:id/dispositions','addDisposition','addAnswer','create','addImap'];(function(_0x525c7b,_0x488fcc){var _0x27b33e=function(_0x56d43b){while(--_0x56d43b){_0x525c7b['push'](_0x525c7b['shift']());}};_0x27b33e(++_0x488fcc);}(_0xb008,0x1bc));var _0x8b00=function(_0xa0f8a5,_0x4d73e4){_0xa0f8a5=_0xa0f8a5-0x0;var _0x51ae8b=_0xb008[_0xa0f8a5];return _0x51ae8b;};'use strict';var multer=require(_0x8b00('0x0'));var util=require(_0x8b00('0x1'));var path=require(_0x8b00('0x2'));var timeout=require(_0x8b00('0x3'));var express=require(_0x8b00('0x4'));var router=express['Router']();var fs_extra=require(_0x8b00('0x5'));var auth=require(_0x8b00('0x6'));var interaction=require(_0x8b00('0x7'));var config=require('../../config/environment');var controller=require(_0x8b00('0x8'));router[_0x8b00('0x9')]('/',auth['isAuthenticated'](),controller['index']);router[_0x8b00('0x9')](_0x8b00('0xa'),auth['isAuthenticated'](),controller[_0x8b00('0xb')]);router[_0x8b00('0x9')](_0x8b00('0xc'),auth['isAuthenticated'](),controller[_0x8b00('0xd')]);router[_0x8b00('0x9')]('/:id/dispositions',auth['isAuthenticated'](),controller[_0x8b00('0xe')]);router[_0x8b00('0x9')](_0x8b00('0xf'),auth['isAuthenticated'](),controller[_0x8b00('0x10')]);router['get'](_0x8b00('0x11'),auth['isAuthenticated'](),controller[_0x8b00('0x12')]);router['get'](_0x8b00('0x13'),auth[_0x8b00('0x14')](),controller[_0x8b00('0x15')]);router[_0x8b00('0x9')]('/:id/interactions',auth[_0x8b00('0x14')](),controller[_0x8b00('0x16')]);router[_0x8b00('0x9')](_0x8b00('0x17'),auth['isAuthenticated'](),controller[_0x8b00('0x18')]);router[_0x8b00('0x9')](_0x8b00('0x19'),auth[_0x8b00('0x14')](),controller[_0x8b00('0x1a')]);router[_0x8b00('0x9')](_0x8b00('0x1b'),auth['isAuthenticated'](),controller[_0x8b00('0x1c')]);router[_0x8b00('0x9')](_0x8b00('0x1d'),auth[_0x8b00('0x14')](),controller['getAgents']);router[_0x8b00('0x1e')](_0x8b00('0x1f'),auth[_0x8b00('0x14')](),controller[_0x8b00('0x20')]);router[_0x8b00('0x1e')](_0x8b00('0xf'),auth[_0x8b00('0x14')](),controller[_0x8b00('0x21')]);router[_0x8b00('0x1e')]('/',auth[_0x8b00('0x14')](),controller[_0x8b00('0x22')]);router[_0x8b00('0x1e')]('/:id/in_servers',auth['isAuthenticated'](),controller[_0x8b00('0x23')]);router[_0x8b00('0x1e')](_0x8b00('0x13'),auth['isAuthenticated'](),controller['addSmtp']);router[_0x8b00('0x1e')](_0x8b00('0x24'),auth[_0x8b00('0x14')](),controller['addInteraction']);router[_0x8b00('0x1e')](_0x8b00('0x17'),auth[_0x8b00('0x14')](),controller[_0x8b00('0x25')]);router[_0x8b00('0x1e')](_0x8b00('0x26'),auth[_0x8b00('0x14')](),controller['send']);router['post'](_0x8b00('0x1d'),auth[_0x8b00('0x14')](),controller['addAgents']);router[_0x8b00('0x27')]('/:id',auth['isAuthenticated'](),controller[_0x8b00('0x28')]);router[_0x8b00('0x29')](_0x8b00('0x1f'),auth[_0x8b00('0x14')](),controller[_0x8b00('0x2a')]);router[_0x8b00('0x29')](_0x8b00('0xf'),auth[_0x8b00('0x14')](),controller[_0x8b00('0x2b')]);router[_0x8b00('0x29')]('/:id/in_servers',auth[_0x8b00('0x14')](),controller[_0x8b00('0x2c')]);router[_0x8b00('0x29')]('/:id/out_servers',auth[_0x8b00('0x14')](),controller[_0x8b00('0x2d')]);router[_0x8b00('0x29')]('/:id',auth[_0x8b00('0x14')](),controller[_0x8b00('0x2e')]);router['delete'](_0x8b00('0x1d'),auth['isAuthenticated'](),controller['removeAgents']);module[_0x8b00('0x2f')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe14b=['Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','mandatoryDispositionPauseId','setDataValue','mandatoryDisposition','sequelize','exports','BOOLEAN','STRING','Arial,Helvetica,sans-serif','INTEGER','UNSIGNED','TEXT','Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}<br/>Subject\x20:\x20{{message.subject}}'];(function(_0xcce135,_0x2c2415){var _0x159473=function(_0x3d1d57){while(--_0x3d1d57){_0xcce135['push'](_0xcce135['shift']());}};_0x159473(++_0x2c2415);}(_0xe14b,0x93));var _0xbe14=function(_0x27411f,_0x38e1d9){_0x27411f=_0x27411f-0x0;var _0x37d0f5=_0xe14b[_0x27411f];return _0x37d0f5;};'use strict';var Sequelize=require(_0xbe14('0x0'));module[_0xbe14('0x1')]={'description':{'type':Sequelize['STRING']},'name':{'type':Sequelize['STRING'],'allowNull':![]},'service':{'type':Sequelize[_0xbe14('0x2')],'defaultValue':![]},'email':{'type':Sequelize[_0xbe14('0x3')],'validate':{'isEmail':!![]}},'active':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'key':{'type':Sequelize[_0xbe14('0x3')],'allowNull':![]},'template':{'type':Sequelize['TEXT']},'markAsUnread':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'fontFamily':{'type':Sequelize[_0xbe14('0x3')],'allowNull':![],'defaultValue':_0xbe14('0x4')},'fontSize':{'type':Sequelize[_0xbe14('0x5')](0x2)[_0xbe14('0x6')],'defaultValue':0xd,'validate':{'min':0x8,'max':0x48}},'notificationTemplate':{'type':Sequelize[_0xbe14('0x7')],'defaultValue':function(){return _0xbe14('0x8');}},'notificationSound':{'type':Sequelize[_0xbe14('0x2')],'defaultValue':!![]},'notificationShake':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'queueTransfer':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize[_0xbe14('0x5')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0xbe14('0x2')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize[_0xbe14('0x5')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'mandatoryDispositionPauseId':{'type':Sequelize[_0xbe14('0x5')],'allowNull':!![],'defaultValue':null,'comment':'Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled'},'mandatoryDisposition':{'type':Sequelize['BOOLEAN'],'defaultValue':![],'comment':_0xbe14('0x9'),'set':function(_0x3f70cb){if(!_0x3f70cb)this['setDataValue'](_0xbe14('0xa'),null);this[_0xbe14('0xb')](_0xbe14('0xc'),_0x3f70cb);}}};
\ No newline at end of file
+var _0x32ef=['mandatoryDispositionPauseId','mandatoryDisposition','sequelize','exports','STRING','BOOLEAN','TEXT','Arial,Helvetica,sans-serif','INTEGER','UNSIGNED','Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}<br/>Subject\x20:\x20{{message.subject}}','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','setDataValue'];(function(_0x764740,_0x1c0cb5){var _0x50b4ff=function(_0x530f21){while(--_0x530f21){_0x764740['push'](_0x764740['shift']());}};_0x50b4ff(++_0x1c0cb5);}(_0x32ef,0xf9));var _0xf32e=function(_0x20ee8a,_0x18c871){_0x20ee8a=_0x20ee8a-0x0;var _0x3e4cb2=_0x32ef[_0x20ee8a];return _0x3e4cb2;};'use strict';var Sequelize=require(_0xf32e('0x0'));module[_0xf32e('0x1')]={'description':{'type':Sequelize[_0xf32e('0x2')]},'name':{'type':Sequelize[_0xf32e('0x2')],'allowNull':![]},'service':{'type':Sequelize[_0xf32e('0x3')],'defaultValue':![]},'email':{'type':Sequelize[_0xf32e('0x2')],'validate':{'isEmail':!![]}},'active':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'key':{'type':Sequelize[_0xf32e('0x2')],'allowNull':![]},'template':{'type':Sequelize[_0xf32e('0x4')]},'markAsUnread':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'fontFamily':{'type':Sequelize[_0xf32e('0x2')],'allowNull':![],'defaultValue':_0xf32e('0x5')},'fontSize':{'type':Sequelize[_0xf32e('0x6')](0x2)[_0xf32e('0x7')],'defaultValue':0xd,'validate':{'min':0x8,'max':0x48}},'notificationTemplate':{'type':Sequelize[_0xf32e('0x4')],'defaultValue':function(){return _0xf32e('0x8');}},'notificationSound':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'notificationShake':{'type':Sequelize[_0xf32e('0x3')],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'queueTransfer':{'type':Sequelize[_0xf32e('0x3')],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize[_0xf32e('0x6')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0xf32e('0x3')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize[_0xf32e('0x6')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'mandatoryDispositionPauseId':{'type':Sequelize[_0xf32e('0x6')],'allowNull':!![],'defaultValue':null,'comment':'Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled'},'mandatoryDisposition':{'type':Sequelize[_0xf32e('0x3')],'defaultValue':![],'comment':_0xf32e('0x9'),'set':function(_0x468a6d){if(!_0x468a6d)this[_0xf32e('0xa')](_0xf32e('0xb'),null);this[_0xf32e('0xa')](_0xf32e('0xc'),_0x468a6d);}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x865c=['destroy','MailAccounts','UserProfileResource','sendStatus','stack','name','send','index','MailServerIn','Smtp','Pause','mandatoryDispositionPause','MailAccount','rawAttributes','fieldName','type','model','map','query','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','VIRTUAL','filter','options','includeAll','include','findAll','rows','show','Imap','MailServerOut','keys','find','body','describe','addDisposition','params','MailAccountId','Disposition','create','getDispositions','removeDispositions','addAnswer','CannedAnswer','getAnswers','findOne','removeAnswers','key','email','ListId','active','description','cservice','user','cuser','password','pass','cpassword','authentication','host','port','service','get','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','getImap','addImap','removeImap','setImap','getSmtp','addSmtp','removeSmtp','setSmtp','addInteraction','ids','omit','getInteractions','MailInteraction','CmContact','Contact','User','Owner','fullname','internal','tag','sequelize','ISOLATION_LEVELS','READ_COMMITTED','MailApplication','bulkCreate','findAndCountAll','priority','finally','getApplications','getMessages','MailMessage','$gte','format','YYYY-MM-DD\x20HH:mm:ss','inlineCss','true','split','CmList','List','Contacts','isNil','from','%s\x20<%s>','attachments','root','server/files/attachments','basename','auth','secure','SendMail','sendMail','defaults','List\x20not\x20found','messageId','attach','out','Interaction','Messages','VerifySmtp','verifySmtp','Sequelize','ValidationError','You\x20can\x27t\x20remove\x20the\x20mail\x20service\x20account','addAgents','emit','removeAgents','isArray','userMailAccount:remove','getAgents','eml-format','rimraf','fast-json-patch','moment','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','html-to-text','juice','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','redis','socket.io-emitter','./mailAccount.socket','register','jayson/promise','client','http','request','info','MailAccount,\x20%s,\x20%s','request\x20sent','debug','MailAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','status','end','json','offset','undefined','limit','count','set','Content-Range','reject','save','update','then'];(function(_0xf84870,_0x4dc38f){var _0x4541a4=function(_0x3ff5d5){while(--_0x3ff5d5){_0xf84870['push'](_0xf84870['shift']());}};_0x4541a4(++_0x4dc38f);}(_0x865c,0x91));var _0xc865=function(_0x38ce14,_0x4806f3){_0x38ce14=_0x38ce14-0x0;var _0x36879a=_0x865c[_0x38ce14];return _0x36879a;};'use strict';var emlformat=require(_0xc865('0x0'));var rimraf=require(_0xc865('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xc865('0x2'));var rp=require('request-promise');var moment=require(_0xc865('0x3'));var BPromise=require('bluebird');var Mustache=require(_0xc865('0x4'));var util=require(_0xc865('0x5'));var path=require(_0xc865('0x6'));var sox=require(_0xc865('0x7'));var csv=require(_0xc865('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xc865('0x9'));var _=require(_0xc865('0xa'));var squel=require(_0xc865('0xb'));var crypto=require(_0xc865('0xc'));var jsforce=require(_0xc865('0xd'));var deskjs=require(_0xc865('0xe'));var toCsv=require(_0xc865('0x8'));var querystring=require(_0xc865('0xf'));var Papa=require(_0xc865('0x10'));var htmlToText=require(_0xc865('0x11'));var juice=require(_0xc865('0x12'));var Redis=require(_0xc865('0x13'));var authService=require(_0xc865('0x14'));var qs=require(_0xc865('0x15'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xc865('0x16'));var logger=require('../../config/logger')(_0xc865('0x17'));var utils=require(_0xc865('0x18'));var config=require(_0xc865('0x19'));var licenseUtil=require(_0xc865('0x1a'));var db=require('../../mysqldb')['db'];config[_0xc865('0x1b')]=_['defaults'](config[_0xc865('0x1b')],{'host':'localhost','port':0x18eb});var socket=require(_0xc865('0x1c'))(new Redis(config[_0xc865('0x1b')]));require(_0xc865('0x1d'))[_0xc865('0x1e')](socket);var jayson=require(_0xc865('0x1f'));var client=jayson[_0xc865('0x20')][_0xc865('0x21')]({'port':0x232b});function respondWithRpcPromise(_0x1b8db1,_0x299e72,_0x3c2bec,_0x130a0a){return new BPromise(function(_0x5c1799,_0x32dc23){var _0x396d2d=_0x130a0a||client;return _0x396d2d[_0xc865('0x22')](_0x1b8db1,_0x3c2bec)['then'](function(_0x1f4cbe){logger[_0xc865('0x23')](_0xc865('0x24'),_0x299e72,_0xc865('0x25'));logger[_0xc865('0x26')](_0xc865('0x27'),_0x299e72,'request\x20sent',JSON[_0xc865('0x28')](_0x1f4cbe));if(_0x1f4cbe['error']){if(_0x1f4cbe[_0xc865('0x29')][_0xc865('0x2a')]===0x1f4){logger[_0xc865('0x29')](_0xc865('0x24'),_0x299e72,_0x1f4cbe[_0xc865('0x29')][_0xc865('0x2b')]);return _0x32dc23(_0x1f4cbe[_0xc865('0x29')][_0xc865('0x2b')]);}logger[_0xc865('0x29')](_0xc865('0x24'),_0x299e72,_0x1f4cbe[_0xc865('0x29')]['message']);return _0x5c1799(_0x1f4cbe['error'][_0xc865('0x2b')]);}else{logger[_0xc865('0x23')]('MailAccount,\x20%s,\x20%s',_0x299e72,'request\x20sent');_0x5c1799(_0x1f4cbe[_0xc865('0x2c')]['message']);}})[_0xc865('0x2d')](function(_0x465365){logger['error']('MailAccount,\x20%s,\x20%s',_0x299e72,_0x465365);_0x32dc23(_0x465365);});});}function respondWithStatusCode(_0x79d227,_0x5b7de6){_0x5b7de6=_0x5b7de6||0xcc;return function(_0x128733){if(_0x128733){return _0x79d227['sendStatus'](_0x5b7de6);}return _0x79d227[_0xc865('0x2e')](_0x5b7de6)[_0xc865('0x2f')]();};}function respondWithResult(_0x39a101,_0x5dac43){_0x5dac43=_0x5dac43||0xc8;return function(_0x4597c7){if(_0x4597c7){return _0x39a101['status'](_0x5dac43)[_0xc865('0x30')](_0x4597c7);}};}function respondWithFilteredResult(_0x5a9ee8,_0x3166c2){return function(_0x59a6e3){if(_0x59a6e3){var _0x4cf816=typeof _0x3166c2[_0xc865('0x31')]===_0xc865('0x32')&&typeof _0x3166c2[_0xc865('0x33')]===_0xc865('0x32');var _0x4e37c9=_0x59a6e3[_0xc865('0x34')];var _0x52fc47=_0x4cf816?0x0:_0x3166c2[_0xc865('0x31')];var _0x1047fa=_0x4cf816?_0x59a6e3[_0xc865('0x34')]:_0x3166c2[_0xc865('0x31')]+_0x3166c2[_0xc865('0x33')];var _0x5bc76e;if(_0x1047fa>=_0x4e37c9){_0x1047fa=_0x4e37c9;_0x5bc76e=0xc8;}else{_0x5bc76e=0xce;}_0x5a9ee8[_0xc865('0x2e')](_0x5bc76e);return _0x5a9ee8[_0xc865('0x35')](_0xc865('0x36'),_0x52fc47+'-'+_0x1047fa+'/'+_0x4e37c9)[_0xc865('0x30')](_0x59a6e3);}return null;};}function patchUpdates(_0xaa7a9a){return function(_0x1bd55e){try{jsonpatch['apply'](_0x1bd55e,_0xaa7a9a,!![]);}catch(_0x585bc6){return BPromise[_0xc865('0x37')](_0x585bc6);}return _0x1bd55e[_0xc865('0x38')]();};}function saveUpdates(_0xc1ed93,_0xd9cdaa){return function(_0x27c654){if(_0x27c654){return _0x27c654[_0xc865('0x39')](_0xc1ed93)[_0xc865('0x3a')](function(_0x391a4e){return _0x391a4e;});}return null;};}function removeEntity(_0x434b4a,_0x28d1a3){return function(_0x4f3fd8){if(_0x4f3fd8){return _0x4f3fd8[_0xc865('0x3b')]()[_0xc865('0x3a')](function(){var _0x176de8=_0x4f3fd8['get']({'plain':!![]});var _0x399092=_0xc865('0x3c');return db[_0xc865('0x3d')][_0xc865('0x3b')]({'where':{'type':_0x399092,'resourceId':_0x176de8['id']}})[_0xc865('0x3a')](function(){return _0x4f3fd8;});})[_0xc865('0x3a')](function(){_0x434b4a[_0xc865('0x2e')](0xcc)[_0xc865('0x2f')]();});}};}function handleEntityNotFound(_0x2b3c20,_0x2d5a0c){return function(_0x61d8eb){if(!_0x61d8eb){_0x2b3c20[_0xc865('0x3e')](0x194);}return _0x61d8eb;};}function handleError(_0x48afee,_0x49392b){_0x49392b=_0x49392b||0x1f4;return function(_0x4ee128){logger['error'](_0x4ee128[_0xc865('0x3f')]);if(_0x4ee128[_0xc865('0x40')]){delete _0x4ee128[_0xc865('0x40')];}_0x48afee[_0xc865('0x2e')](_0x49392b)[_0xc865('0x41')](_0x4ee128);};}exports[_0xc865('0x42')]=function(_0x1a87a6,_0x269a15){var _0x594ec0={'include':[{'model':db[_0xc865('0x43')],'as':'Imap'},{'model':db['MailServerOut'],'as':_0xc865('0x44')},{'model':db[_0xc865('0x45')],'as':_0xc865('0x46')}]},_0xf28c0c={},_0x21a87f={'count':0x0,'rows':[]};var _0x17b7a0=_['map'](db[_0xc865('0x47')][_0xc865('0x48')],function(_0x59a423){return{'name':_0x59a423[_0xc865('0x49')],'type':_0x59a423[_0xc865('0x4a')]['key']};});_0xf28c0c[_0xc865('0x4b')]=_[_0xc865('0x4c')](_0x17b7a0,_0xc865('0x40'));_0xf28c0c[_0xc865('0x4d')]=_['keys'](_0x1a87a6[_0xc865('0x4d')]);_0xf28c0c[_0xc865('0x4e')]=_['intersection'](_0xf28c0c[_0xc865('0x4b')],_0xf28c0c[_0xc865('0x4d')]);_0x594ec0['attributes']=_[_0xc865('0x4f')](_0xf28c0c['model'],qs[_0xc865('0x50')](_0x1a87a6[_0xc865('0x4d')]['fields']));_0x594ec0[_0xc865('0x51')]=_0x594ec0['attributes'][_0xc865('0x52')]?_0x594ec0[_0xc865('0x51')]:_0xf28c0c['model'];if(!_0x1a87a6[_0xc865('0x4d')][_0xc865('0x53')](_0xc865('0x54'))){_0x594ec0['limit']=qs['limit'](_0x1a87a6[_0xc865('0x4d')][_0xc865('0x33')]);_0x594ec0[_0xc865('0x31')]=qs[_0xc865('0x31')](_0x1a87a6[_0xc865('0x4d')][_0xc865('0x31')]);}_0x594ec0[_0xc865('0x55')]=qs['sort'](_0x1a87a6['query'][_0xc865('0x56')]);_0x594ec0[_0xc865('0x57')]=qs[_0xc865('0x4e')](_[_0xc865('0x58')](_0x1a87a6[_0xc865('0x4d')],_0xf28c0c['filters']),_0x17b7a0);if(_0x1a87a6[_0xc865('0x4d')]['filter']){_0x594ec0[_0xc865('0x57')]=_[_0xc865('0x59')](_0x594ec0[_0xc865('0x57')],{'$or':_['map'](_0x17b7a0,function(_0x590870){if(_0x590870[_0xc865('0x4a')]!==_0xc865('0x5a')){var _0x2e3469={};_0x2e3469[_0x590870[_0xc865('0x40')]]={'$like':'%'+_0x1a87a6[_0xc865('0x4d')][_0xc865('0x5b')]+'%'};return _0x2e3469;}})});}_0x594ec0=_[_0xc865('0x59')]({},_0x594ec0,_0x1a87a6[_0xc865('0x5c')]);var _0x48920d={'where':_0x594ec0[_0xc865('0x57')]};return db['MailAccount'][_0xc865('0x34')](_0x48920d)['then'](function(_0x2374a9){_0x21a87f[_0xc865('0x34')]=_0x2374a9;if(_0x1a87a6[_0xc865('0x4d')][_0xc865('0x5d')]){_0x594ec0[_0xc865('0x5e')]=[{'all':!![]}];}return db[_0xc865('0x47')][_0xc865('0x5f')](_0x594ec0);})['then'](function(_0x9e7bc5){_0x21a87f[_0xc865('0x60')]=_0x9e7bc5;return _0x21a87f;})[_0xc865('0x3a')](respondWithFilteredResult(_0x269a15,_0x594ec0))[_0xc865('0x2d')](handleError(_0x269a15,null));};exports[_0xc865('0x61')]=function(_0x3e88a0,_0x113e4d){var _0x5b6cba={'raw':![],'where':{'id':_0x3e88a0['params']['id']},'include':[{'model':db['MailServerIn'],'as':_0xc865('0x62')},{'model':db[_0xc865('0x63')],'as':_0xc865('0x44')},{'model':db[_0xc865('0x45')],'as':_0xc865('0x46')}]},_0x28362d={};_0x28362d['model']=_[_0xc865('0x64')](db['MailAccount'][_0xc865('0x48')]);_0x28362d[_0xc865('0x4d')]=_[_0xc865('0x64')](_0x3e88a0[_0xc865('0x4d')]);_0x28362d['filters']=_[_0xc865('0x4f')](_0x28362d['model'],_0x28362d['query']);_0x5b6cba[_0xc865('0x51')]=_[_0xc865('0x4f')](_0x28362d[_0xc865('0x4b')],qs[_0xc865('0x50')](_0x3e88a0[_0xc865('0x4d')]['fields']));_0x5b6cba[_0xc865('0x51')]=_0x5b6cba['attributes'][_0xc865('0x52')]?_0x5b6cba[_0xc865('0x51')]:_0x28362d[_0xc865('0x4b')];if(_0x3e88a0[_0xc865('0x4d')]['includeAll']){_0x5b6cba[_0xc865('0x5e')]=[{'all':!![]}];}_0x5b6cba=_[_0xc865('0x59')]({},_0x5b6cba,_0x3e88a0[_0xc865('0x5c')]);return db[_0xc865('0x47')][_0xc865('0x65')](_0x5b6cba)[_0xc865('0x3a')](handleEntityNotFound(_0x113e4d,null))[_0xc865('0x3a')](respondWithResult(_0x113e4d,null))[_0xc865('0x2d')](handleError(_0x113e4d,null));};exports[_0xc865('0x39')]=function(_0x447109,_0x4a467f){if(_0x447109[_0xc865('0x66')]['id']){delete _0x447109[_0xc865('0x66')]['id'];}return db[_0xc865('0x47')][_0xc865('0x65')]({'where':{'id':_0x447109['params']['id']},'include':[{'model':db[_0xc865('0x43')],'as':_0xc865('0x62')},{'model':db[_0xc865('0x63')],'as':_0xc865('0x44')},{'model':db[_0xc865('0x45')],'as':'mandatoryDispositionPause'}]})[_0xc865('0x3a')](handleEntityNotFound(_0x4a467f,null))[_0xc865('0x3a')](saveUpdates(_0x447109['body'],null))[_0xc865('0x3a')](function(_0x526ade){if(_0x526ade&&_0x447109['body']['Imap']){return db[_0xc865('0x43')][_0xc865('0x39')](_0x447109['body'][_0xc865('0x62')],{'where':{'MailAccountId':_0x526ade['id']}})[_0xc865('0x3a')](function(){return _0x526ade;});}return _0x526ade;})[_0xc865('0x3a')](function(_0x14aaa2){if(_0x14aaa2&&_0x447109['body'][_0xc865('0x44')]){return db['MailServerOut'][_0xc865('0x39')](_0x447109[_0xc865('0x66')][_0xc865('0x44')],{'where':{'MailAccountId':_0x14aaa2['id']}})[_0xc865('0x3a')](function(){return _0x14aaa2;});}return _0x14aaa2;})[_0xc865('0x3a')](respondWithResult(_0x4a467f,null))[_0xc865('0x2d')](handleError(_0x4a467f,null));};exports['describe']=function(_0x1db673,_0x5e4bbe){return db['MailAccount'][_0xc865('0x67')]()[_0xc865('0x3a')](respondWithResult(_0x5e4bbe,null))[_0xc865('0x2d')](handleError(_0x5e4bbe,null));};exports[_0xc865('0x68')]=function(_0x11dded,_0x3219e5,_0x51c883){if(_0x11dded[_0xc865('0x66')]['id']){delete _0x11dded[_0xc865('0x66')]['id'];}return db['MailAccount'][_0xc865('0x65')]({'where':{'id':_0x11dded[_0xc865('0x69')]['id']}})[_0xc865('0x3a')](handleEntityNotFound(_0x3219e5,null))[_0xc865('0x3a')](function(_0x2c039f){if(_0x2c039f){_0x11dded['body'][_0xc865('0x6a')]=_0x2c039f['id'];return db[_0xc865('0x6b')][_0xc865('0x6c')](_0x11dded[_0xc865('0x66')]);}})[_0xc865('0x3a')](respondWithResult(_0x3219e5,null))[_0xc865('0x2d')](handleError(_0x3219e5,null));};exports[_0xc865('0x6d')]=function(_0x38008c,_0x470177,_0x1e2c10){var _0x493545={'raw':![],'where':{}};var _0x482bff={};var _0x286106={'count':0x0,'rows':[]};return db[_0xc865('0x47')]['findOne']({'where':{'id':_0x38008c['params']['id']}})[_0xc865('0x3a')](handleEntityNotFound(_0x470177,null))[_0xc865('0x3a')](function(_0x336ad4){if(_0x336ad4){_0x482bff[_0xc865('0x4b')]=_[_0xc865('0x64')](db['Disposition'][_0xc865('0x48')]);_0x482bff[_0xc865('0x4d')]=_['keys'](_0x38008c[_0xc865('0x4d')]);_0x482bff[_0xc865('0x4e')]=_['intersection'](_0x482bff[_0xc865('0x4b')],_0x482bff[_0xc865('0x4d')]);_0x493545[_0xc865('0x51')]=_[_0xc865('0x4f')](_0x482bff['model'],qs[_0xc865('0x50')](_0x38008c['query'][_0xc865('0x50')]));_0x493545[_0xc865('0x51')]=_0x493545[_0xc865('0x51')][_0xc865('0x52')]?_0x493545[_0xc865('0x51')]:_0x482bff[_0xc865('0x4b')];if(!_0x38008c[_0xc865('0x4d')]['hasOwnProperty'](_0xc865('0x54'))){_0x493545[_0xc865('0x33')]=qs['limit'](_0x38008c[_0xc865('0x4d')][_0xc865('0x33')]);_0x493545['offset']=qs[_0xc865('0x31')](_0x38008c[_0xc865('0x4d')][_0xc865('0x31')]);}_0x493545[_0xc865('0x55')]=qs[_0xc865('0x56')](_0x38008c[_0xc865('0x4d')][_0xc865('0x56')]);_0x493545['where']=qs[_0xc865('0x4e')](_[_0xc865('0x58')](_0x38008c[_0xc865('0x4d')],_0x482bff[_0xc865('0x4e')]));_0x493545[_0xc865('0x57')][_0xc865('0x6a')]=_0x336ad4['id'];if(_0x38008c[_0xc865('0x4d')][_0xc865('0x5b')]){_0x493545['where']=_['merge'](_0x493545['where'],{'$or':_['map'](_0x493545[_0xc865('0x51')],function(_0x3dfb03){var _0x3a2c5a={};_0x3a2c5a[_0x3dfb03]={'$like':'%'+_0x38008c[_0xc865('0x4d')][_0xc865('0x5b')]+'%'};return _0x3a2c5a;})});}_0x493545=_[_0xc865('0x59')]({},_0x493545,_0x38008c[_0xc865('0x5c')]);return db[_0xc865('0x6b')][_0xc865('0x34')]({'where':_0x493545[_0xc865('0x57')]})['then'](function(_0xc3da60){_0x286106[_0xc865('0x34')]=_0xc3da60;if(_0x38008c[_0xc865('0x4d')][_0xc865('0x5d')]){_0x493545[_0xc865('0x5e')]=[{'all':!![]}];}return db[_0xc865('0x6b')][_0xc865('0x5f')](_0x493545);})[_0xc865('0x3a')](function(_0x24dbea){_0x286106[_0xc865('0x60')]=_0x24dbea;return _0x286106;});}})['then'](respondWithFilteredResult(_0x470177,_0x493545))[_0xc865('0x2d')](handleError(_0x470177,null));};exports[_0xc865('0x6e')]=function(_0xe35097,_0x15a59b,_0x3be864){return db[_0xc865('0x47')]['find']({'where':{'id':_0xe35097[_0xc865('0x69')]['id']}})[_0xc865('0x3a')](handleEntityNotFound(_0x15a59b,null))['then'](function(_0x16617f){if(_0x16617f){return _0x16617f[_0xc865('0x6e')](_0xe35097['query']['ids']);}})['then'](respondWithStatusCode(_0x15a59b,null))[_0xc865('0x2d')](handleError(_0x15a59b,null));};exports[_0xc865('0x6f')]=function(_0x1c2751,_0x129c79,_0x1b25e0){if(_0x1c2751[_0xc865('0x66')]['id']){delete _0x1c2751[_0xc865('0x66')]['id'];}return db[_0xc865('0x47')][_0xc865('0x65')]({'where':{'id':_0x1c2751[_0xc865('0x69')]['id']}})[_0xc865('0x3a')](handleEntityNotFound(_0x129c79,null))[_0xc865('0x3a')](function(_0x467510){if(_0x467510){_0x1c2751['body'][_0xc865('0x6a')]=_0x467510['id'];return db[_0xc865('0x70')][_0xc865('0x6c')](_0x1c2751[_0xc865('0x66')]);}})[_0xc865('0x3a')](respondWithResult(_0x129c79,null))[_0xc865('0x2d')](handleError(_0x129c79,null));};exports[_0xc865('0x71')]=function(_0x47f97f,_0x160cfc,_0x3eabef){var _0x1bedc0={'raw':![],'where':{}};var _0x31ec8b={};var _0x16f52f={'count':0x0,'rows':[]};return db[_0xc865('0x47')][_0xc865('0x72')]({'where':{'id':_0x47f97f[_0xc865('0x69')]['id']}})[_0xc865('0x3a')](handleEntityNotFound(_0x160cfc,null))[_0xc865('0x3a')](function(_0x352167){if(_0x352167){_0x31ec8b[_0xc865('0x4b')]=_[_0xc865('0x64')](db[_0xc865('0x70')][_0xc865('0x48')]);_0x31ec8b[_0xc865('0x4d')]=_[_0xc865('0x64')](_0x47f97f[_0xc865('0x4d')]);_0x31ec8b[_0xc865('0x4e')]=_[_0xc865('0x4f')](_0x31ec8b[_0xc865('0x4b')],_0x31ec8b[_0xc865('0x4d')]);_0x1bedc0[_0xc865('0x51')]=_[_0xc865('0x4f')](_0x31ec8b['model'],qs['fields'](_0x47f97f[_0xc865('0x4d')]['fields']));_0x1bedc0[_0xc865('0x51')]=_0x1bedc0['attributes'][_0xc865('0x52')]?_0x1bedc0['attributes']:_0x31ec8b[_0xc865('0x4b')];if(!_0x47f97f[_0xc865('0x4d')]['hasOwnProperty']('nolimit')){_0x1bedc0[_0xc865('0x33')]=qs['limit'](_0x47f97f['query'][_0xc865('0x33')]);_0x1bedc0[_0xc865('0x31')]=qs['offset'](_0x47f97f[_0xc865('0x4d')]['offset']);}_0x1bedc0['order']=qs['sort'](_0x47f97f[_0xc865('0x4d')][_0xc865('0x56')]);_0x1bedc0[_0xc865('0x57')]=qs[_0xc865('0x4e')](_[_0xc865('0x58')](_0x47f97f[_0xc865('0x4d')],_0x31ec8b['filters']));_0x1bedc0[_0xc865('0x57')][_0xc865('0x6a')]=_0x352167['id'];if(_0x47f97f[_0xc865('0x4d')]['filter']){_0x1bedc0['where']=_[_0xc865('0x59')](_0x1bedc0[_0xc865('0x57')],{'$or':_[_0xc865('0x4c')](_0x1bedc0[_0xc865('0x51')],function(_0x48244b){var _0x43668b={};_0x43668b[_0x48244b]={'$like':'%'+_0x47f97f['query'][_0xc865('0x5b')]+'%'};return _0x43668b;})});}_0x1bedc0=_[_0xc865('0x59')]({},_0x1bedc0,_0x47f97f[_0xc865('0x5c')]);return db['CannedAnswer'][_0xc865('0x34')]({'where':_0x1bedc0[_0xc865('0x57')]})[_0xc865('0x3a')](function(_0x3281f2){_0x16f52f[_0xc865('0x34')]=_0x3281f2;if(_0x47f97f['query'][_0xc865('0x5d')]){_0x1bedc0[_0xc865('0x5e')]=[{'all':!![]}];}return db[_0xc865('0x70')][_0xc865('0x5f')](_0x1bedc0);})['then'](function(_0x536f3f){_0x16f52f[_0xc865('0x60')]=_0x536f3f;return _0x16f52f;});}})[_0xc865('0x3a')](respondWithFilteredResult(_0x160cfc,_0x1bedc0))[_0xc865('0x2d')](handleError(_0x160cfc,null));};exports[_0xc865('0x73')]=function(_0x7cb353,_0x4208a3,_0x1de032){return db[_0xc865('0x47')]['find']({'where':{'id':_0x7cb353[_0xc865('0x69')]['id']}})[_0xc865('0x3a')](handleEntityNotFound(_0x4208a3,null))['then'](function(_0x25081b){if(_0x25081b){return _0x25081b[_0xc865('0x73')](_0x7cb353['query']['ids']);}})[_0xc865('0x3a')](respondWithStatusCode(_0x4208a3,null))[_0xc865('0x2d')](handleError(_0x4208a3,null));};exports[_0xc865('0x6c')]=function(_0xbf5f65,_0x20f4c9){var _0x38f266={'name':_0xbf5f65[_0xc865('0x66')][_0xc865('0x40')],'key':_0xbf5f65[_0xc865('0x66')][_0xc865('0x74')],'email':_0xbf5f65[_0xc865('0x66')][_0xc865('0x75')],'ListId':_0xbf5f65[_0xc865('0x66')][_0xc865('0x76')],'active':!_['isNil'](_0xbf5f65['body'][_0xc865('0x77')])?_0xbf5f65['body'][_0xc865('0x77')]:!![],'description':_0xbf5f65[_0xc865('0x66')][_0xc865('0x78')]||null,'Imap':{},'Smtp':{}};if(_['isNil'](_0xbf5f65[_0xc865('0x66')][_0xc865('0x79')])){if(_0xbf5f65[_0xc865('0x66')]['cauthentication']){_0x38f266[_0xc865('0x62')]['user']=_0x38f266[_0xc865('0x44')][_0xc865('0x7a')]=_0xbf5f65['body'][_0xc865('0x7b')];_0x38f266['Imap'][_0xc865('0x7c')]=_0x38f266['Smtp'][_0xc865('0x7d')]=_0xbf5f65[_0xc865('0x66')][_0xc865('0x7e')];}else{_0x38f266[_0xc865('0x62')][_0xc865('0x7f')]=_0x38f266['Smtp'][_0xc865('0x7f')]=![];}_0x38f266['Imap'][_0xc865('0x80')]=_0xbf5f65[_0xc865('0x66')]['Imap'][_0xc865('0x80')];_0x38f266[_0xc865('0x62')][_0xc865('0x81')]=_0xbf5f65[_0xc865('0x66')][_0xc865('0x62')]['port'];_0x38f266[_0xc865('0x44')][_0xc865('0x80')]=_0xbf5f65['body'][_0xc865('0x44')][_0xc865('0x80')];_0x38f266[_0xc865('0x44')]['port']=_0xbf5f65[_0xc865('0x66')][_0xc865('0x44')][_0xc865('0x81')];}else{_0x38f266['Imap'][_0xc865('0x82')]=_0x38f266['Smtp'][_0xc865('0x82')]=_0xbf5f65['body'][_0xc865('0x79')];_0x38f266[_0xc865('0x62')][_0xc865('0x7a')]=_0x38f266[_0xc865('0x44')]['user']=_0xbf5f65[_0xc865('0x66')][_0xc865('0x7b')];_0x38f266[_0xc865('0x62')][_0xc865('0x7c')]=_0x38f266[_0xc865('0x44')][_0xc865('0x7d')]=_0xbf5f65['body'][_0xc865('0x7e')];}return db[_0xc865('0x47')][_0xc865('0x6c')](_0x38f266,{'include':[{'model':db[_0xc865('0x63')],'as':_0xc865('0x44')},{'model':db[_0xc865('0x43')],'as':'Imap'}]})[_0xc865('0x3a')](function(_0x265481){var _0x2fa84a=_0xbf5f65[_0xc865('0x7a')][_0xc865('0x83')]({'plain':!![]});if(!_0x2fa84a)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x2fa84a['role']==='user'){var _0x2a5b78=_0x265481[_0xc865('0x83')]({'plain':!![]});return db[_0xc865('0x84')][_0xc865('0x65')]({'where':{'name':_0xc865('0x3c'),'userProfileId':_0x2fa84a[_0xc865('0x85')]},'raw':!![]})['then'](function(_0x55bbd8){if(_0x55bbd8&&_0x55bbd8['autoAssociation']===0x0){return db[_0xc865('0x3d')][_0xc865('0x6c')]({'name':_0x2a5b78[_0xc865('0x40')],'resourceId':_0x2a5b78['id'],'type':_0x55bbd8[_0xc865('0x40')],'sectionId':_0x55bbd8['id']},{})[_0xc865('0x3a')](function(){return _0x265481;});}else{return _0x265481;}})['catch'](function(_0x4a244c){logger['error'](_0xc865('0x86'),_0x4a244c);throw _0x4a244c;});}return _0x265481;})[_0xc865('0x3a')](respondWithResult(_0x20f4c9,0xc9))[_0xc865('0x2d')](handleError(_0x20f4c9,null));};exports[_0xc865('0x87')]=function(_0x3ae3e6,_0x5f4cba,_0xc146ab){return db['MailAccount'][_0xc865('0x72')]({'where':{'id':_0x3ae3e6[_0xc865('0x69')]['id']}})[_0xc865('0x3a')](handleEntityNotFound(_0x5f4cba,null))[_0xc865('0x3a')](function(_0x19a9eb){if(_0x19a9eb){return _0x19a9eb['getImap']();}return null;})[_0xc865('0x3a')](respondWithResult(_0x5f4cba,null))[_0xc865('0x2d')](handleError(_0x5f4cba,null));};exports[_0xc865('0x88')]=function(_0x2052e6,_0x4b7e1a,_0x1639da){if(_0x2052e6['body']['id']){delete _0x2052e6['body']['id'];}return db['MailAccount']['find']({'where':{'id':_0x2052e6[_0xc865('0x69')]['id']}})[_0xc865('0x3a')](handleEntityNotFound(_0x4b7e1a,null))[_0xc865('0x3a')](function(_0x1fc346){if(_0x1fc346){_0x2052e6['body'][_0xc865('0x6a')]=_0x1fc346['id'];return db[_0xc865('0x43')][_0xc865('0x6c')](_0x2052e6[_0xc865('0x66')]);}})[_0xc865('0x3a')](respondWithResult(_0x4b7e1a,null))['catch'](handleError(_0x4b7e1a,null));};exports[_0xc865('0x89')]=function(_0x5bebeb,_0x32b3d4,_0xee82ce){return db['MailAccount'][_0xc865('0x72')]({'where':{'id':_0x5bebeb[_0xc865('0x69')]['id']}})[_0xc865('0x3a')](handleEntityNotFound(_0x32b3d4,null))['then'](function(_0x450ec6){if(_0x450ec6){return _0x450ec6[_0xc865('0x8a')](null);}return null;})[_0xc865('0x3a')](respondWithStatusCode(_0x32b3d4,null))[_0xc865('0x2d')](handleError(_0x32b3d4,null));};exports[_0xc865('0x8b')]=function(_0x132ebb,_0xfff402,_0x39034c){return db[_0xc865('0x47')][_0xc865('0x72')]({'where':{'id':_0x132ebb[_0xc865('0x69')]['id']}})[_0xc865('0x3a')](handleEntityNotFound(_0xfff402,null))[_0xc865('0x3a')](function(_0x93ce86){if(_0x93ce86){return _0x93ce86[_0xc865('0x8b')]();}return null;})[_0xc865('0x3a')](respondWithResult(_0xfff402,null))[_0xc865('0x2d')](handleError(_0xfff402,null));};exports[_0xc865('0x8c')]=function(_0x568743,_0x1640d0,_0x3e945b){if(_0x568743['body']['id']){delete _0x568743['body']['id'];}return db[_0xc865('0x47')][_0xc865('0x65')]({'where':{'id':_0x568743[_0xc865('0x69')]['id']}})[_0xc865('0x3a')](handleEntityNotFound(_0x1640d0,null))[_0xc865('0x3a')](function(_0x5dbc1e){if(_0x5dbc1e){_0x568743[_0xc865('0x66')][_0xc865('0x6a')]=_0x5dbc1e['id'];return db[_0xc865('0x63')][_0xc865('0x6c')](_0x568743['body']);}})['then'](respondWithResult(_0x1640d0,null))['catch'](handleError(_0x1640d0,null));};exports[_0xc865('0x8d')]=function(_0x44354e,_0x9c67ce,_0xd62171){return db['MailAccount'][_0xc865('0x72')]({'where':{'id':_0x44354e[_0xc865('0x69')]['id']}})[_0xc865('0x3a')](handleEntityNotFound(_0x9c67ce,null))[_0xc865('0x3a')](function(_0x4b9ff4){if(_0x4b9ff4){return _0x4b9ff4[_0xc865('0x8e')](null);}return null;})[_0xc865('0x3a')](respondWithStatusCode(_0x9c67ce,null))[_0xc865('0x2d')](handleError(_0x9c67ce,null));};exports[_0xc865('0x8f')]=function(_0x5c0bbb,_0x510dd0,_0x3e658d){return db['MailInteraction']['find']({'where':{'id':_0x5c0bbb['params']['id']}})[_0xc865('0x3a')](handleEntityNotFound(_0x510dd0,null))['then'](function(_0x41cd51){if(_0x41cd51){return _0x41cd51[_0xc865('0x8f')](_0x5c0bbb[_0xc865('0x66')][_0xc865('0x90')],_[_0xc865('0x91')](_0x5c0bbb[_0xc865('0x66')],[_0xc865('0x90'),'id'])||{});}})[_0xc865('0x3a')](respondWithResult(_0x510dd0,null))[_0xc865('0x2d')](handleError(_0x510dd0,null));};exports[_0xc865('0x92')]=function(_0x35050a,_0xfa84f,_0x18535b){var _0x1b9c03={'raw':![],'where':{}};var _0x5b806d={};var _0x35136a={'count':0x0,'rows':[]};return db[_0xc865('0x47')][_0xc865('0x72')]({'where':{'id':_0x35050a[_0xc865('0x69')]['id']}})[_0xc865('0x3a')](handleEntityNotFound(_0xfa84f,null))['then'](function(_0x269860){if(_0x269860){_0x5b806d[_0xc865('0x4b')]=_['keys'](db[_0xc865('0x93')]['rawAttributes']);_0x5b806d[_0xc865('0x4d')]=_['keys'](_0x35050a[_0xc865('0x4d')]);_0x5b806d[_0xc865('0x4e')]=_[_0xc865('0x4f')](_0x5b806d[_0xc865('0x4b')],_0x5b806d[_0xc865('0x4d')]);_0x1b9c03[_0xc865('0x51')]=_[_0xc865('0x4f')](_0x5b806d['model'],qs[_0xc865('0x50')](_0x35050a[_0xc865('0x4d')]['fields']));_0x1b9c03[_0xc865('0x51')]=_0x1b9c03[_0xc865('0x51')][_0xc865('0x52')]?_0x1b9c03[_0xc865('0x51')]:_0x5b806d[_0xc865('0x4b')];if(!_0x35050a[_0xc865('0x4d')][_0xc865('0x53')](_0xc865('0x54'))){_0x1b9c03[_0xc865('0x33')]=qs[_0xc865('0x33')](_0x35050a[_0xc865('0x4d')][_0xc865('0x33')]);_0x1b9c03[_0xc865('0x31')]=qs[_0xc865('0x31')](_0x35050a[_0xc865('0x4d')]['offset']);}_0x1b9c03[_0xc865('0x55')]=qs['sort'](_0x35050a['query']['sort']);_0x1b9c03[_0xc865('0x57')]=qs[_0xc865('0x4e')](_[_0xc865('0x58')](_0x35050a[_0xc865('0x4d')],_0x5b806d['filters']));_0x1b9c03[_0xc865('0x57')][_0xc865('0x6a')]=_0x269860['id'];if(_0x35050a[_0xc865('0x4d')][_0xc865('0x5b')]){_0x1b9c03[_0xc865('0x57')]=_['merge'](_0x1b9c03[_0xc865('0x57')],{'$or':_['map'](_0x1b9c03[_0xc865('0x51')],function(_0xc092bb){var _0xd1f08e={};_0xd1f08e[_0xc092bb]={'$like':'%'+_0x35050a[_0xc865('0x4d')][_0xc865('0x5b')]+'%'};return _0xd1f08e;})});}_0x1b9c03=_[_0xc865('0x59')]({},_0x1b9c03,_0x35050a[_0xc865('0x5c')]);return db[_0xc865('0x93')]['count']({'where':_0x1b9c03[_0xc865('0x57')]})['then'](function(_0x250ea0){_0x35136a[_0xc865('0x34')]=_0x250ea0;if(_0x35050a[_0xc865('0x4d')][_0xc865('0x5d')]){_0x1b9c03[_0xc865('0x5e')]=[{'model':db[_0xc865('0x94')],'as':_0xc865('0x95'),'required':![]},{'model':db[_0xc865('0x96')],'as':_0xc865('0x97'),'attributes':[_0xc865('0x40'),_0xc865('0x98'),_0xc865('0x99')],'required':![]},{'model':db['Tag'],'as':'Tags','attributes':['id','name','color'],'where':_0x35050a[_0xc865('0x4d')][_0xc865('0x9a')]?{'id':_0x35050a[_0xc865('0x4d')]['tag']}:undefined,'required':_0x35050a[_0xc865('0x4d')]['tag']?!![]:![]}];}return db[_0xc865('0x93')][_0xc865('0x5f')](_0x1b9c03);})[_0xc865('0x3a')](function(_0x2bdb85){_0x35136a[_0xc865('0x60')]=_0x2bdb85;return _0x35136a;});}})[_0xc865('0x3a')](respondWithFilteredResult(_0xfa84f,_0x1b9c03))[_0xc865('0x2d')](handleError(_0xfa84f,null));};exports['addApplications']=function addApplications(_0x22818f,_0x202203){var _0x5676b7=_0x22818f[_0xc865('0x69')]['id'];var _0x57a1b8=_0x22818f['body'];var _0x514a3=0xc8;var _0x488e47=null;return db['sequelize']['transaction']({'isolationLevel':db[_0xc865('0x9b')]['Transaction'][_0xc865('0x9c')][_0xc865('0x9d')]},function(_0x5c5db6){return db[_0xc865('0x47')][_0xc865('0x72')]({'where':{'id':_0x5676b7},'transaction':_0x5c5db6})[_0xc865('0x3a')](function(_0x4771e3){if(_0x4771e3){return db[_0xc865('0x9e')][_0xc865('0x3b')]({'where':{'MailAccountId':_0x5676b7},'transaction':_0x5c5db6})[_0xc865('0x3a')](function(){var _0x50d184=_[_0xc865('0x4c')](_0x57a1b8,function(_0x1c3ecb){_0x1c3ecb[_0xc865('0x6a')]=_0x5676b7;return _0x1c3ecb;});return db[_0xc865('0x9e')][_0xc865('0x9f')](_0x50d184,{'transaction':_0x5c5db6});});}else{_0x514a3=0x194;_0x488e47=[];}});})[_0xc865('0x3a')](function(){if(_0x514a3!==0x194){return db[_0xc865('0x9e')][_0xc865('0xa0')]({'where':{'MailAccountId':_0x5676b7},'order':_0xc865('0xa1')})['then'](function(_0x4d4888){_0x488e47=_0x4d4888;});}})[_0xc865('0x2d')](function(_0x215be8){_0x514a3=0x1f4;logger[_0xc865('0x29')](_0x215be8[_0xc865('0x3f')]);if(_0x215be8[_0xc865('0x40')]){delete _0x215be8['name'];}_0x488e47=_0x215be8;})[_0xc865('0xa2')](function(){if(_0x488e47===null){_0x202203['sendStatus'](_0x514a3);}else{if(_0x514a3===0x1f4){_0x202203['status'](_0x514a3)[_0xc865('0x41')](_0x488e47);}else{_0x202203[_0xc865('0x2e')](_0x514a3)[_0xc865('0x30')](_0x488e47);}}});};exports[_0xc865('0xa3')]=function(_0x520d5c,_0x42d115,_0xa8dfa7){var _0x10065d={};var _0x49a474={};var _0x517b9f;var _0x5dcb09;return db[_0xc865('0x47')]['findOne']({'where':{'id':_0x520d5c[_0xc865('0x69')]['id']}})[_0xc865('0x3a')](handleEntityNotFound(_0x42d115,null))[_0xc865('0x3a')](function(_0x1f5eff){if(_0x1f5eff){_0x517b9f=_0x1f5eff;_0x49a474[_0xc865('0x4b')]=_[_0xc865('0x64')](db[_0xc865('0x9e')]['rawAttributes']);_0x49a474[_0xc865('0x4d')]=_[_0xc865('0x64')](_0x520d5c[_0xc865('0x4d')]);_0x49a474[_0xc865('0x4e')]=_['intersection'](_0x49a474[_0xc865('0x4b')],_0x49a474[_0xc865('0x4d')]);_0x10065d['attributes']=_[_0xc865('0x4f')](_0x49a474[_0xc865('0x4b')],qs['fields'](_0x520d5c['query'][_0xc865('0x50')]));_0x10065d[_0xc865('0x51')]=_0x10065d[_0xc865('0x51')][_0xc865('0x52')]?_0x10065d[_0xc865('0x51')]:_0x49a474['model'];_0x10065d[_0xc865('0x55')]=qs[_0xc865('0x56')](_0x520d5c[_0xc865('0x4d')][_0xc865('0x56')]);_0x10065d['where']=qs[_0xc865('0x4e')](_[_0xc865('0x58')](_0x520d5c[_0xc865('0x4d')],_0x49a474[_0xc865('0x4e')]));if(_0x520d5c[_0xc865('0x4d')][_0xc865('0x5b')]){_0x10065d[_0xc865('0x57')]=_[_0xc865('0x59')](_0x10065d[_0xc865('0x57')],{'$or':_['map'](_0x10065d[_0xc865('0x51')],function(_0x588fa5){var _0x11cc82={};_0x11cc82[_0x588fa5]={'$like':'%'+_0x520d5c['query'][_0xc865('0x5b')]+'%'};return _0x11cc82;})});}_0x10065d=_[_0xc865('0x59')]({},_0x10065d,_0x520d5c[_0xc865('0x5c')]);return _0x517b9f[_0xc865('0xa3')](_0x10065d);}})[_0xc865('0x3a')](function(_0x1879ad){if(_0x1879ad){_0x5dcb09=_0x1879ad[_0xc865('0x52')];if(!_0x520d5c[_0xc865('0x4d')][_0xc865('0x53')](_0xc865('0x54'))){_0x10065d[_0xc865('0x33')]=qs[_0xc865('0x33')](_0x520d5c['query'][_0xc865('0x33')]);_0x10065d['offset']=qs[_0xc865('0x31')](_0x520d5c[_0xc865('0x4d')][_0xc865('0x31')]);}return _0x517b9f[_0xc865('0xa3')](_0x10065d);}})['then'](function(_0x50dc7e){if(_0x50dc7e){return _0x50dc7e?{'count':_0x5dcb09,'rows':_0x50dc7e}:null;}})[_0xc865('0x3a')](respondWithResult(_0x42d115,null))[_0xc865('0x2d')](handleError(_0x42d115,null));};exports[_0xc865('0xa4')]=function(_0x48f585,_0x295171,_0x5139c2){var _0x3db51d={'raw':!![],'where':{}};var _0x251334={};var _0x2c54f0={'count':0x0,'rows':[]};return db['MailAccount'][_0xc865('0x72')]({'where':{'id':_0x48f585['params']['id']}})[_0xc865('0x3a')](handleEntityNotFound(_0x295171,null))[_0xc865('0x3a')](function(_0x48b356){if(_0x48b356){_0x251334['model']=_[_0xc865('0x64')](db[_0xc865('0xa5')]['rawAttributes']);_0x251334[_0xc865('0x4d')]=_[_0xc865('0x64')](_0x48f585['query']);_0x251334[_0xc865('0x4e')]=_[_0xc865('0x4f')](_0x251334['model'],_0x251334[_0xc865('0x4d')]);_0x3db51d[_0xc865('0x51')]=_[_0xc865('0x4f')](_0x251334['model'],qs[_0xc865('0x50')](_0x48f585['query']['fields']));_0x3db51d[_0xc865('0x51')]=_0x3db51d['attributes'][_0xc865('0x52')]?_0x3db51d['attributes']:_0x251334[_0xc865('0x4b')];if(!_0x48f585[_0xc865('0x4d')]['hasOwnProperty'](_0xc865('0x54'))){_0x3db51d[_0xc865('0x33')]=qs[_0xc865('0x33')](_0x48f585[_0xc865('0x4d')]['limit']);_0x3db51d['offset']=qs[_0xc865('0x31')](_0x48f585[_0xc865('0x4d')][_0xc865('0x31')]);}_0x3db51d[_0xc865('0x55')]=qs['sort'](_0x48f585[_0xc865('0x4d')][_0xc865('0x56')]);_0x3db51d[_0xc865('0x57')]=qs['filters'](_['pick'](_0x48f585['query'],_0x251334[_0xc865('0x4e')]));_0x3db51d[_0xc865('0x57')][_0xc865('0x6a')]=_0x48b356['id'];if(_0x48f585['query']['filter']){_0x3db51d[_0xc865('0x57')]=_['merge'](_0x3db51d['where'],{'$or':_[_0xc865('0x4c')](_0x3db51d['attributes'],function(_0x5d0024){var _0x172f2b={};_0x172f2b[_0x5d0024]={'$like':'%'+_0x48f585[_0xc865('0x4d')][_0xc865('0x5b')]+'%'};return _0x172f2b;})});}if(_0x48f585[_0xc865('0x4d')][_0xc865('0xa6')]){var _0x3fca84=_0x48f585['query'][_0xc865('0xa6')]['split'](',');var _0xfd6bba={};_0xfd6bba[_0x3fca84[0x0]]={'$gte':moment(_0x3fca84[0x1])[_0xc865('0xa7')](_0xc865('0xa8'))};_0x3db51d[_0xc865('0x57')]=_[_0xc865('0x59')](_0x3db51d[_0xc865('0x57')],_0xfd6bba);}_0x3db51d=_[_0xc865('0x59')]({},_0x3db51d,_0x48f585[_0xc865('0x5c')]);return db[_0xc865('0xa5')]['count']({'where':_0x3db51d[_0xc865('0x57')]})['then'](function(_0x10a306){_0x2c54f0[_0xc865('0x34')]=_0x10a306;if(_0x48f585[_0xc865('0x4d')][_0xc865('0x5d')]){_0x3db51d[_0xc865('0x5e')]=[{'all':!![]}];}return db[_0xc865('0xa5')][_0xc865('0x5f')](_0x3db51d);})[_0xc865('0x3a')](function(_0x5b7923){if(_0x48f585[_0xc865('0x4d')][_0xc865('0xa9')]===_0xc865('0xaa')){for(var _0x256dd3=0x0;_0x256dd3<_0x5b7923[_0xc865('0x52')];_0x256dd3++){_0x5b7923[_0x256dd3][_0xc865('0x66')]=juice(_0x5b7923[_0x256dd3][_0xc865('0x66')]);}}_0x2c54f0[_0xc865('0x60')]=_0x5b7923;return _0x2c54f0;});}})[_0xc865('0x3a')](respondWithFilteredResult(_0x295171,_0x3db51d))[_0xc865('0x2d')](handleError(_0x295171,null));};exports['send']=function(_0x735e47,_0x537f26,_0x5156ba){var _0x148f5b,_0x4af9d2={},_0x120726;if(_0x735e47[_0xc865('0x66')]['to']){_0x120726=_0x735e47[_0xc865('0x66')]['to'][_0xc865('0xab')](',')[0x0];}return db[_0xc865('0x47')][_0xc865('0x65')]({'where':{'id':_0x735e47[_0xc865('0x69')]['id']},'include':[{'model':db[_0xc865('0xac')],'as':_0xc865('0xad'),'include':[{'model':db[_0xc865('0x94')],'as':_0xc865('0xae'),'where':{'email':_0x120726},'limit':0x1,'order':[['updatedAt','DESC']]}]},{'model':db[_0xc865('0x63')],'as':_0xc865('0x44'),'raw':!![]}]})[_0xc865('0x3a')](handleEntityNotFound(_0x537f26,null))['then'](function(_0x92a6d1){if(_0x92a6d1){_0x148f5b=_0x92a6d1;if(_0x92a6d1['Smtp']){if(_[_0xc865('0xaf')](_0x735e47[_0xc865('0x66')][_0xc865('0xb0')])){_0x735e47['body'][_0xc865('0xb0')]=util[_0xc865('0xa7')](_0xc865('0xb1'),_0x92a6d1[_0xc865('0x40')],_0x92a6d1[_0xc865('0x75')]||_0x92a6d1['Smtp']['user']);}if(_0x735e47[_0xc865('0x66')][_0xc865('0xb2')]&&_0x735e47[_0xc865('0x66')][_0xc865('0xb2')][_0xc865('0x52')]){for(var _0xcb0a24=0x0;_0xcb0a24<_0x735e47[_0xc865('0x66')][_0xc865('0xb2')][_0xc865('0x52')];_0xcb0a24+=0x1){_0x735e47[_0xc865('0x66')][_0xc865('0xb2')][_0xcb0a24]={'filename':_0x735e47['body'][_0xc865('0xb2')][_0xcb0a24][_0xc865('0x40')],'path':path['join'](config[_0xc865('0xb3')],_0xc865('0xb4'),_0x735e47[_0xc865('0x66')]['attachments'][_0xcb0a24][_0xc865('0xb5')])};}}var _0x1ef67c={'tls':{'rejectUnauthorized':![]}};if(_[_0xc865('0xaf')](_0x92a6d1['Smtp'][_0xc865('0x82')])){if(_0x92a6d1[_0xc865('0x44')][_0xc865('0x7f')]){_0x1ef67c[_0xc865('0xb6')]={'user':_0x92a6d1[_0xc865('0x44')][_0xc865('0x7a')],'pass':_0x92a6d1[_0xc865('0x44')]['pass']};}_0x1ef67c['host']=_0x92a6d1['Smtp'][_0xc865('0x80')];_0x1ef67c[_0xc865('0x81')]=_0x92a6d1[_0xc865('0x44')]['port'];_0x1ef67c[_0xc865('0xb7')]=_0x92a6d1[_0xc865('0x44')][_0xc865('0xb7')];}else{_0x1ef67c[_0xc865('0x82')]=_0x92a6d1[_0xc865('0x44')]['service'];_0x1ef67c['auth']={'user':_0x92a6d1[_0xc865('0x44')][_0xc865('0x7a')],'pass':_0x92a6d1[_0xc865('0x44')]['pass']};}return respondWithRpcPromise(_0xc865('0xb8'),_0xc865('0xb9'),{'account':_0x1ef67c,'message':_0x735e47[_0xc865('0x66')]});}else{throw new Error('List\x20not\x20found');}}})[_0xc865('0x3a')](function(_0x11439e){if(_0x11439e){_0x4af9d2=_0x11439e;if(_0x148f5b['List']){if(_0x148f5b[_0xc865('0xad')]['Contacts']['length']){return _0x148f5b[_0xc865('0xad')][_0xc865('0xae')][0x0];}else{return db[_0xc865('0x94')][_0xc865('0x6c')](_[_0xc865('0xba')](_0x735e47[_0xc865('0x66')],{'firstName':_0x735e47[_0xc865('0x66')]['to'],'email':_0x735e47[_0xc865('0x66')]['to'],'phone':_0x735e47[_0xc865('0x66')]['to'],'ListId':_0x148f5b[_0xc865('0x76')]}));}}else{throw new Error(_0xc865('0xbb'));}}})[_0xc865('0x3a')](function(_0x2050eb){if(_0x2050eb){var _0x4c3339={'UserId':_0x735e47[_0xc865('0x7a')]['id'],'ContactId':_0x2050eb['id'],'MailAccountId':_0x148f5b['id'],'inReplyTo':_0x4af9d2[_0xc865('0xbc')],'to':_0x735e47[_0xc865('0x66')][_0xc865('0xb0')],'cc':_0x735e47[_0xc865('0x66')]['cc'],'subject':_0x735e47['body']['subject'],'attach':_0x735e47[_0xc865('0x66')][_0xc865('0xbd')],'firstMsgDirection':_0xc865('0xbe'),'lastMsgAt':moment()[_0xc865('0xa7')]('YYYY-MM-DD\x20HH:mm:ss'),'lastMsgDirection':_0xc865('0xbe'),'Messages':[_['merge'](_0x735e47['body'],{'messageId':_0x4af9d2[_0xc865('0xbc')],'sentAt':moment()[_0xc865('0xa7')]('YYYY-MM-DD\x20HH:mm:ss'),'read':!![],'MailAccountId':_0x148f5b['id'],'UserId':_0x735e47[_0xc865('0x7a')]['id'],'ContactId':_0x2050eb['id']})]};if(_0x735e47[_0xc865('0x66')][_0xc865('0xbf')]){_0x4c3339=_[_0xc865('0x59')](_0x4c3339,_0x735e47[_0xc865('0x66')][_0xc865('0xbf')]);}return db[_0xc865('0x93')][_0xc865('0x6c')](_0x4c3339,{'include':[{'model':db[_0xc865('0xa5')],'as':_0xc865('0xc0')}]});}})[_0xc865('0x3a')](respondWithResult(_0x537f26,null))[_0xc865('0x2d')](handleError(_0x537f26,null));};exports['verifySmtp']=function(_0x12decd,_0x3e5f19,_0x46d1e8){return db[_0xc865('0x47')][_0xc865('0x65')]({'where':{'id':_0x12decd[_0xc865('0x69')]['id']},'include':[{'model':db[_0xc865('0x63')],'as':'Smtp','raw':!![]}]})['then'](handleEntityNotFound(_0x3e5f19,null))[_0xc865('0x3a')](function(_0xc0c266){if(_0xc0c266&&_0xc0c266[_0xc865('0x44')]){var _0x54f63b={'id':_0xc0c266['id'],'tls':{'rejectUnauthorized':![]}};if(_0xc0c266[_0xc865('0x44')][_0xc865('0x82')]){_0x54f63b[_0xc865('0x82')]=_0xc0c266[_0xc865('0x44')][_0xc865('0x82')];}else{_0x54f63b[_0xc865('0x80')]=_0xc0c266['Smtp']['host'];_0x54f63b['port']=_0xc0c266['Smtp'][_0xc865('0x81')];_0x54f63b['secure']=_0xc0c266['Smtp']['secure'];}if(_0xc0c266[_0xc865('0x44')][_0xc865('0x7f')]){_0x54f63b['auth']={'user':_0xc0c266[_0xc865('0x44')][_0xc865('0x7a')],'pass':_0xc0c266[_0xc865('0x44')][_0xc865('0x7d')]};}return respondWithRpcPromise(_0xc865('0xc1'),_0xc865('0xc2'),{'account':_0x54f63b});}})[_0xc865('0x3a')](respondWithResult(_0x3e5f19,null))[_0xc865('0x2d')](handleError(_0x3e5f19,null));};exports[_0xc865('0x3b')]=function(_0x310ef5,_0x1d84e2){return db[_0xc865('0x47')][_0xc865('0x65')]({'where':{'id':_0x310ef5[_0xc865('0x69')]['id']}})[_0xc865('0x3a')](handleEntityNotFound(_0x1d84e2,null))['then'](function(_0x1db73d){if(_0x1db73d&&_0x1db73d[_0xc865('0x82')]){throw new db[(_0xc865('0xc3'))][(_0xc865('0xc4'))](_0xc865('0xc5'));}return _0x1db73d;})[_0xc865('0x3a')](removeEntity(_0x1d84e2,null))[_0xc865('0x2d')](handleError(_0x1d84e2,null));};exports[_0xc865('0xc6')]=function(_0x1d7f6a,_0x4be25c,_0x77cca1){return db['MailAccount'][_0xc865('0x65')]({'where':{'id':_0x1d7f6a['params']['id']}})[_0xc865('0x3a')](handleEntityNotFound(_0x4be25c,null))[_0xc865('0x3a')](function(_0x608fe1){if(_0x608fe1){return _0x608fe1[_0xc865('0xc6')](_0x1d7f6a[_0xc865('0x66')][_0xc865('0x90')],_[_0xc865('0x91')](_0x1d7f6a['body'],[_0xc865('0x90'),'id'])||{})['spread'](function(_0x1bf1c7){for(var _0x458492=0x0;_0x458492<_0x1d7f6a[_0xc865('0x66')][_0xc865('0x90')][_0xc865('0x52')];_0x458492+=0x1){socket[_0xc865('0xc7')]('userMailAccount:save',{'UserId':Number(_0x1d7f6a['body'][_0xc865('0x90')][_0x458492]),'MailAccountId':Number(_0x1d7f6a[_0xc865('0x69')]['id'])});}return _0x1bf1c7;});}})[_0xc865('0x3a')](respondWithResult(_0x4be25c,null))['catch'](handleError(_0x4be25c,null));};exports['removeAgents']=function(_0x53c780,_0x57ef75,_0x1f92a2){return db['MailAccount'][_0xc865('0x65')]({'where':{'id':_0x53c780[_0xc865('0x69')]['id']}})[_0xc865('0x3a')](handleEntityNotFound(_0x57ef75,null))[_0xc865('0x3a')](function(_0x276912){if(_0x276912){return _0x276912[_0xc865('0xc8')](_0x53c780[_0xc865('0x4d')][_0xc865('0x90')])['then'](function(){if(_[_0xc865('0xc9')](_0x53c780[_0xc865('0x4d')][_0xc865('0x90')])){for(var _0x5a415c=0x0;_0x5a415c<_0x53c780[_0xc865('0x4d')][_0xc865('0x90')][_0xc865('0x52')];_0x5a415c+=0x1){socket[_0xc865('0xc7')]('userMailAccount:remove',{'UserId':Number(_0x53c780[_0xc865('0x4d')][_0xc865('0x90')][_0x5a415c]),'MailAccountId':Number(_0x53c780['params']['id'])});}}else{socket[_0xc865('0xc7')](_0xc865('0xca'),{'UserId':Number(_0x53c780['query']['ids']),'MailAccountId':Number(_0x53c780[_0xc865('0x69')]['id'])});}});}})[_0xc865('0x3a')](respondWithStatusCode(_0x57ef75,null))[_0xc865('0x2d')](handleError(_0x57ef75,null));};exports[_0xc865('0xcb')]=function(_0x392f07,_0x494b78,_0xb3e70b){var _0x3d07ff={};var _0x8c9071={};var _0x1ecdd3;var _0x5121e6;return db['MailAccount']['findOne']({'where':{'id':_0x392f07[_0xc865('0x69')]['id']}})['then'](handleEntityNotFound(_0x494b78,null))['then'](function(_0x4bcf50){if(_0x4bcf50){_0x1ecdd3=_0x4bcf50;_0x8c9071[_0xc865('0x4b')]=_[_0xc865('0x64')](db['User'][_0xc865('0x48')]);_0x8c9071['query']=_[_0xc865('0x64')](_0x392f07['query']);_0x8c9071[_0xc865('0x4e')]=_[_0xc865('0x4f')](_0x8c9071[_0xc865('0x4b')],_0x8c9071[_0xc865('0x4d')]);_0x3d07ff[_0xc865('0x51')]=_[_0xc865('0x4f')](_0x8c9071[_0xc865('0x4b')],qs['fields'](_0x392f07[_0xc865('0x4d')][_0xc865('0x50')]));_0x3d07ff[_0xc865('0x51')]=_0x3d07ff[_0xc865('0x51')][_0xc865('0x52')]?_0x3d07ff[_0xc865('0x51')]:_0x8c9071[_0xc865('0x4b')];_0x3d07ff[_0xc865('0x55')]=qs[_0xc865('0x56')](_0x392f07[_0xc865('0x4d')][_0xc865('0x56')]);_0x3d07ff['where']=qs[_0xc865('0x4e')](_['pick'](_0x392f07[_0xc865('0x4d')],_0x8c9071[_0xc865('0x4e')]));if(_0x392f07[_0xc865('0x4d')][_0xc865('0x5b')]){_0x3d07ff[_0xc865('0x57')]=_['merge'](_0x3d07ff[_0xc865('0x57')],{'$or':_[_0xc865('0x4c')](_0x3d07ff[_0xc865('0x51')],function(_0x53f7e3){var _0x531e59={};_0x531e59[_0x53f7e3]={'$like':'%'+_0x392f07[_0xc865('0x4d')][_0xc865('0x5b')]+'%'};return _0x531e59;})});}_0x3d07ff=_[_0xc865('0x59')]({},_0x3d07ff,_0x392f07[_0xc865('0x5c')]);return _0x1ecdd3[_0xc865('0xcb')](_0x3d07ff);}})['then'](function(_0x33efaa){if(_0x33efaa){_0x5121e6=_0x33efaa[_0xc865('0x52')];if(!_0x392f07['query']['hasOwnProperty'](_0xc865('0x54'))){_0x3d07ff['limit']=qs[_0xc865('0x33')](_0x392f07[_0xc865('0x4d')][_0xc865('0x33')]);_0x3d07ff['offset']=qs[_0xc865('0x31')](_0x392f07['query'][_0xc865('0x31')]);}return _0x1ecdd3[_0xc865('0xcb')](_0x3d07ff);}})[_0xc865('0x3a')](function(_0x2856f8){if(_0x2856f8){return _0x2856f8?{'count':_0x5121e6,'rows':_0x2856f8}:null;}})[_0xc865('0x3a')](respondWithResult(_0x494b78,null))[_0xc865('0x2d')](handleError(_0x494b78,null));};
\ No newline at end of file
+var _0x3e59=['getApplications','getMessages','MailMessage','$gte','format','inlineCss','true','CmList','List','CmContact','Contacts','DESC','from','%s\x20<%s>','attachments','join','root','server/files/attachments','basename','secure','auth','SendMail','sendMail','messageId','attach','YYYY-MM-DD\x20HH:mm:ss','out','Interaction','Messages','verifySmtp','VerifySmtp','Sequelize','ValidationError','addAgents','spread','emit','userMailAccount:save','removeAgents','userMailAccount:remove','getAgents','User','eml-format','zip-dir','moment','bluebird','mustache','util','path','sox','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','html-to-text','juice','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','redis','localhost','socket.io-emitter','jayson/promise','client','http','request','then','info','request\x20sent','MailAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','MailAccount,\x20%s,\x20%s','result','sendStatus','status','json','offset','undefined','count','limit','set','Content-Range','apply','reject','save','destroy','get','UserProfileResource','end','send','index','MailServerIn','Imap','MailServerOut','Smtp','map','rawAttributes','fieldName','type','key','model','query','keys','intersection','attributes','length','hasOwnProperty','nolimit','sort','where','filters','pick','VIRTUAL','name','merge','options','MailAccount','includeAll','include','findAll','rows','catch','show','params','fields','find','body','mandatoryDispositionPause','update','addDisposition','MailAccountId','Disposition','create','getDispositions','findOne','order','filter','removeDispositions','ids','addAnswer','getAnswers','CannedAnswer','removeAnswers','email','ListId','isNil','active','description','cservice','cauthentication','user','cuser','pass','cpassword','authentication','host','port','service','password','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','getImap','addImap','setImap','getSmtp','addSmtp','removeSmtp','addInteraction','omit','getInteractions','MailInteraction','Contact','Owner','fullname','Tags','tag','addApplications','sequelize','transaction','MailApplication','bulkCreate','priority'];(function(_0x353856,_0x5ce89d){var _0xa58048=function(_0x2cc6a9){while(--_0x2cc6a9){_0x353856['push'](_0x353856['shift']());}};_0xa58048(++_0x5ce89d);}(_0x3e59,0xec));var _0x93e5=function(_0x1f618f,_0x13e460){_0x1f618f=_0x1f618f-0x0;var _0x520d48=_0x3e59[_0x1f618f];return _0x520d48;};'use strict';var emlformat=require(_0x93e5('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x93e5('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x93e5('0x2'));var BPromise=require(_0x93e5('0x3'));var Mustache=require(_0x93e5('0x4'));var util=require(_0x93e5('0x5'));var path=require(_0x93e5('0x6'));var sox=require(_0x93e5('0x7'));var csv=require('to-csv');var ejs=require(_0x93e5('0x8'));var fs=require('fs');var fs_extra=require(_0x93e5('0x9'));var _=require(_0x93e5('0xa'));var squel=require(_0x93e5('0xb'));var crypto=require('crypto');var jsforce=require(_0x93e5('0xc'));var deskjs=require(_0x93e5('0xd'));var toCsv=require('to-csv');var querystring=require(_0x93e5('0xe'));var Papa=require(_0x93e5('0xf'));var htmlToText=require(_0x93e5('0x10'));var juice=require(_0x93e5('0x11'));var Redis=require(_0x93e5('0x12'));var authService=require(_0x93e5('0x13'));var qs=require(_0x93e5('0x14'));var as=require(_0x93e5('0x15'));var hardwareService=require(_0x93e5('0x16'));var logger=require(_0x93e5('0x17'))('api');var utils=require(_0x93e5('0x18'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];config[_0x93e5('0x19')]=_['defaults'](config[_0x93e5('0x19')],{'host':_0x93e5('0x1a'),'port':0x18eb});var socket=require(_0x93e5('0x1b'))(new Redis(config['redis']));require('./mailAccount.socket')['register'](socket);var jayson=require(_0x93e5('0x1c'));var client=jayson[_0x93e5('0x1d')][_0x93e5('0x1e')]({'port':0x232b});function respondWithRpcPromise(_0x1d0188,_0x488bab,_0x53859d,_0xdcfcbd){return new BPromise(function(_0x5e2421,_0x50e5a8){var _0x589f07=_0xdcfcbd||client;return _0x589f07[_0x93e5('0x1f')](_0x1d0188,_0x53859d)[_0x93e5('0x20')](function(_0x2addc2){logger[_0x93e5('0x21')]('MailAccount,\x20%s,\x20%s',_0x488bab,_0x93e5('0x22'));logger['debug'](_0x93e5('0x23'),_0x488bab,_0x93e5('0x22'),JSON[_0x93e5('0x24')](_0x2addc2));if(_0x2addc2['error']){if(_0x2addc2[_0x93e5('0x25')][_0x93e5('0x26')]===0x1f4){logger[_0x93e5('0x25')]('MailAccount,\x20%s,\x20%s',_0x488bab,_0x2addc2[_0x93e5('0x25')]['message']);return _0x50e5a8(_0x2addc2['error'][_0x93e5('0x27')]);}logger[_0x93e5('0x25')]('MailAccount,\x20%s,\x20%s',_0x488bab,_0x2addc2[_0x93e5('0x25')][_0x93e5('0x27')]);return _0x5e2421(_0x2addc2[_0x93e5('0x25')]['message']);}else{logger[_0x93e5('0x21')](_0x93e5('0x28'),_0x488bab,'request\x20sent');_0x5e2421(_0x2addc2[_0x93e5('0x29')][_0x93e5('0x27')]);}})['catch'](function(_0x73cb06){logger[_0x93e5('0x25')](_0x93e5('0x28'),_0x488bab,_0x73cb06);_0x50e5a8(_0x73cb06);});});}function respondWithStatusCode(_0x3cdaeb,_0x12649c){_0x12649c=_0x12649c||0xcc;return function(_0xb695c3){if(_0xb695c3){return _0x3cdaeb[_0x93e5('0x2a')](_0x12649c);}return _0x3cdaeb['status'](_0x12649c)['end']();};}function respondWithResult(_0x3fe660,_0x155f28){_0x155f28=_0x155f28||0xc8;return function(_0x430768){if(_0x430768){return _0x3fe660[_0x93e5('0x2b')](_0x155f28)[_0x93e5('0x2c')](_0x430768);}};}function respondWithFilteredResult(_0x355bf3,_0x9636b6){return function(_0x3afdc2){if(_0x3afdc2){var _0x422901=typeof _0x9636b6[_0x93e5('0x2d')]===_0x93e5('0x2e')&&typeof _0x9636b6['limit']==='undefined';var _0x74eb8c=_0x3afdc2[_0x93e5('0x2f')];var _0x29109a=_0x422901?0x0:_0x9636b6['offset'];var _0x2a76e5=_0x422901?_0x3afdc2[_0x93e5('0x2f')]:_0x9636b6[_0x93e5('0x2d')]+_0x9636b6[_0x93e5('0x30')];var _0x321495;if(_0x2a76e5>=_0x74eb8c){_0x2a76e5=_0x74eb8c;_0x321495=0xc8;}else{_0x321495=0xce;}_0x355bf3[_0x93e5('0x2b')](_0x321495);return _0x355bf3[_0x93e5('0x31')](_0x93e5('0x32'),_0x29109a+'-'+_0x2a76e5+'/'+_0x74eb8c)[_0x93e5('0x2c')](_0x3afdc2);}return null;};}function patchUpdates(_0x444eff){return function(_0x5a080d){try{jsonpatch[_0x93e5('0x33')](_0x5a080d,_0x444eff,!![]);}catch(_0x96072f){return BPromise[_0x93e5('0x34')](_0x96072f);}return _0x5a080d[_0x93e5('0x35')]();};}function saveUpdates(_0xfb1b93,_0x54e5be){return function(_0xee8882){if(_0xee8882){return _0xee8882['update'](_0xfb1b93)['then'](function(_0x24a0d2){return _0x24a0d2;});}return null;};}function removeEntity(_0x3ab4e0,_0x2934e1){return function(_0x2aaa76){if(_0x2aaa76){return _0x2aaa76[_0x93e5('0x36')]()[_0x93e5('0x20')](function(){var _0x587f13=_0x2aaa76[_0x93e5('0x37')]({'plain':!![]});var _0x405667='MailAccounts';return db[_0x93e5('0x38')][_0x93e5('0x36')]({'where':{'type':_0x405667,'resourceId':_0x587f13['id']}})[_0x93e5('0x20')](function(){return _0x2aaa76;});})[_0x93e5('0x20')](function(){_0x3ab4e0[_0x93e5('0x2b')](0xcc)[_0x93e5('0x39')]();});}};}function handleEntityNotFound(_0x5c860a,_0x1d45fa){return function(_0x40bfbd){if(!_0x40bfbd){_0x5c860a[_0x93e5('0x2a')](0x194);}return _0x40bfbd;};}function handleError(_0xcf6dc1,_0x1f1608){_0x1f1608=_0x1f1608||0x1f4;return function(_0x5e65ab){logger['error'](_0x5e65ab['stack']);if(_0x5e65ab['name']){delete _0x5e65ab['name'];}_0xcf6dc1['status'](_0x1f1608)[_0x93e5('0x3a')](_0x5e65ab);};}exports[_0x93e5('0x3b')]=function(_0x277a02,_0xe8667c){var _0x187033={'include':[{'model':db[_0x93e5('0x3c')],'as':_0x93e5('0x3d')},{'model':db[_0x93e5('0x3e')],'as':_0x93e5('0x3f')},{'model':db['Pause'],'as':'mandatoryDispositionPause'}]},_0xfacc7d={},_0x5a76f0={'count':0x0,'rows':[]};var _0x5262bb=_[_0x93e5('0x40')](db['MailAccount'][_0x93e5('0x41')],function(_0x35a29e){return{'name':_0x35a29e[_0x93e5('0x42')],'type':_0x35a29e[_0x93e5('0x43')][_0x93e5('0x44')]};});_0xfacc7d[_0x93e5('0x45')]=_[_0x93e5('0x40')](_0x5262bb,'name');_0xfacc7d[_0x93e5('0x46')]=_[_0x93e5('0x47')](_0x277a02[_0x93e5('0x46')]);_0xfacc7d['filters']=_[_0x93e5('0x48')](_0xfacc7d[_0x93e5('0x45')],_0xfacc7d[_0x93e5('0x46')]);_0x187033[_0x93e5('0x49')]=_[_0x93e5('0x48')](_0xfacc7d[_0x93e5('0x45')],qs['fields'](_0x277a02[_0x93e5('0x46')]['fields']));_0x187033[_0x93e5('0x49')]=_0x187033['attributes'][_0x93e5('0x4a')]?_0x187033[_0x93e5('0x49')]:_0xfacc7d[_0x93e5('0x45')];if(!_0x277a02['query'][_0x93e5('0x4b')](_0x93e5('0x4c'))){_0x187033[_0x93e5('0x30')]=qs[_0x93e5('0x30')](_0x277a02[_0x93e5('0x46')]['limit']);_0x187033[_0x93e5('0x2d')]=qs[_0x93e5('0x2d')](_0x277a02[_0x93e5('0x46')][_0x93e5('0x2d')]);}_0x187033['order']=qs[_0x93e5('0x4d')](_0x277a02[_0x93e5('0x46')][_0x93e5('0x4d')]);_0x187033[_0x93e5('0x4e')]=qs[_0x93e5('0x4f')](_[_0x93e5('0x50')](_0x277a02[_0x93e5('0x46')],_0xfacc7d['filters']),_0x5262bb);if(_0x277a02['query']['filter']){_0x187033[_0x93e5('0x4e')]=_['merge'](_0x187033[_0x93e5('0x4e')],{'$or':_[_0x93e5('0x40')](_0x5262bb,function(_0x43ada3){if(_0x43ada3['type']!==_0x93e5('0x51')){var _0x4b5b23={};_0x4b5b23[_0x43ada3[_0x93e5('0x52')]]={'$like':'%'+_0x277a02[_0x93e5('0x46')]['filter']+'%'};return _0x4b5b23;}})});}_0x187033=_[_0x93e5('0x53')]({},_0x187033,_0x277a02[_0x93e5('0x54')]);var _0xdbe9c6={'where':_0x187033[_0x93e5('0x4e')]};return db[_0x93e5('0x55')][_0x93e5('0x2f')](_0xdbe9c6)['then'](function(_0x48a5e3){_0x5a76f0[_0x93e5('0x2f')]=_0x48a5e3;if(_0x277a02[_0x93e5('0x46')][_0x93e5('0x56')]){_0x187033[_0x93e5('0x57')]=[{'all':!![]}];}return db[_0x93e5('0x55')][_0x93e5('0x58')](_0x187033);})[_0x93e5('0x20')](function(_0x322817){_0x5a76f0[_0x93e5('0x59')]=_0x322817;return _0x5a76f0;})['then'](respondWithFilteredResult(_0xe8667c,_0x187033))[_0x93e5('0x5a')](handleError(_0xe8667c,null));};exports[_0x93e5('0x5b')]=function(_0x4b0017,_0x36215a){var _0x515b9c={'raw':![],'where':{'id':_0x4b0017[_0x93e5('0x5c')]['id']},'include':[{'model':db[_0x93e5('0x3c')],'as':'Imap'},{'model':db['MailServerOut'],'as':'Smtp'},{'model':db['Pause'],'as':'mandatoryDispositionPause'}]},_0x4191c0={};_0x4191c0[_0x93e5('0x45')]=_['keys'](db[_0x93e5('0x55')][_0x93e5('0x41')]);_0x4191c0['query']=_[_0x93e5('0x47')](_0x4b0017[_0x93e5('0x46')]);_0x4191c0['filters']=_[_0x93e5('0x48')](_0x4191c0[_0x93e5('0x45')],_0x4191c0[_0x93e5('0x46')]);_0x515b9c['attributes']=_[_0x93e5('0x48')](_0x4191c0[_0x93e5('0x45')],qs[_0x93e5('0x5d')](_0x4b0017[_0x93e5('0x46')][_0x93e5('0x5d')]));_0x515b9c[_0x93e5('0x49')]=_0x515b9c['attributes'][_0x93e5('0x4a')]?_0x515b9c[_0x93e5('0x49')]:_0x4191c0[_0x93e5('0x45')];if(_0x4b0017[_0x93e5('0x46')][_0x93e5('0x56')]){_0x515b9c[_0x93e5('0x57')]=[{'all':!![]}];}_0x515b9c=_['merge']({},_0x515b9c,_0x4b0017['options']);return db[_0x93e5('0x55')][_0x93e5('0x5e')](_0x515b9c)['then'](handleEntityNotFound(_0x36215a,null))[_0x93e5('0x20')](respondWithResult(_0x36215a,null))[_0x93e5('0x5a')](handleError(_0x36215a,null));};exports['update']=function(_0x46f06c,_0x32a96c){if(_0x46f06c[_0x93e5('0x5f')]['id']){delete _0x46f06c[_0x93e5('0x5f')]['id'];}return db[_0x93e5('0x55')]['find']({'where':{'id':_0x46f06c[_0x93e5('0x5c')]['id']},'include':[{'model':db[_0x93e5('0x3c')],'as':_0x93e5('0x3d')},{'model':db[_0x93e5('0x3e')],'as':_0x93e5('0x3f')},{'model':db['Pause'],'as':_0x93e5('0x60')}]})[_0x93e5('0x20')](handleEntityNotFound(_0x32a96c,null))['then'](saveUpdates(_0x46f06c[_0x93e5('0x5f')],null))[_0x93e5('0x20')](function(_0x963aa5){if(_0x963aa5&&_0x46f06c['body'][_0x93e5('0x3d')]){return db[_0x93e5('0x3c')][_0x93e5('0x61')](_0x46f06c[_0x93e5('0x5f')][_0x93e5('0x3d')],{'where':{'MailAccountId':_0x963aa5['id']}})[_0x93e5('0x20')](function(){return _0x963aa5;});}return _0x963aa5;})[_0x93e5('0x20')](function(_0x3f0ae1){if(_0x3f0ae1&&_0x46f06c[_0x93e5('0x5f')]['Smtp']){return db[_0x93e5('0x3e')][_0x93e5('0x61')](_0x46f06c[_0x93e5('0x5f')]['Smtp'],{'where':{'MailAccountId':_0x3f0ae1['id']}})[_0x93e5('0x20')](function(){return _0x3f0ae1;});}return _0x3f0ae1;})['then'](respondWithResult(_0x32a96c,null))[_0x93e5('0x5a')](handleError(_0x32a96c,null));};exports['describe']=function(_0x191e96,_0x1dc78c){return db[_0x93e5('0x55')]['describe']()[_0x93e5('0x20')](respondWithResult(_0x1dc78c,null))[_0x93e5('0x5a')](handleError(_0x1dc78c,null));};exports[_0x93e5('0x62')]=function(_0x14a93c,_0x8541be,_0x3bdfc0){if(_0x14a93c['body']['id']){delete _0x14a93c['body']['id'];}return db['MailAccount'][_0x93e5('0x5e')]({'where':{'id':_0x14a93c[_0x93e5('0x5c')]['id']}})[_0x93e5('0x20')](handleEntityNotFound(_0x8541be,null))[_0x93e5('0x20')](function(_0x22e4d0){if(_0x22e4d0){_0x14a93c[_0x93e5('0x5f')][_0x93e5('0x63')]=_0x22e4d0['id'];return db[_0x93e5('0x64')][_0x93e5('0x65')](_0x14a93c['body']);}})['then'](respondWithResult(_0x8541be,null))[_0x93e5('0x5a')](handleError(_0x8541be,null));};exports[_0x93e5('0x66')]=function(_0x5b8c93,_0x5ead4b,_0x2008d2){var _0x203b28={'raw':![],'where':{}};var _0x2dda58={};var _0x296516={'count':0x0,'rows':[]};return db['MailAccount'][_0x93e5('0x67')]({'where':{'id':_0x5b8c93['params']['id']}})[_0x93e5('0x20')](handleEntityNotFound(_0x5ead4b,null))['then'](function(_0x49f89b){if(_0x49f89b){_0x2dda58[_0x93e5('0x45')]=_[_0x93e5('0x47')](db[_0x93e5('0x64')][_0x93e5('0x41')]);_0x2dda58[_0x93e5('0x46')]=_[_0x93e5('0x47')](_0x5b8c93[_0x93e5('0x46')]);_0x2dda58[_0x93e5('0x4f')]=_[_0x93e5('0x48')](_0x2dda58[_0x93e5('0x45')],_0x2dda58[_0x93e5('0x46')]);_0x203b28['attributes']=_[_0x93e5('0x48')](_0x2dda58['model'],qs[_0x93e5('0x5d')](_0x5b8c93[_0x93e5('0x46')][_0x93e5('0x5d')]));_0x203b28['attributes']=_0x203b28['attributes'][_0x93e5('0x4a')]?_0x203b28[_0x93e5('0x49')]:_0x2dda58['model'];if(!_0x5b8c93[_0x93e5('0x46')][_0x93e5('0x4b')]('nolimit')){_0x203b28[_0x93e5('0x30')]=qs['limit'](_0x5b8c93[_0x93e5('0x46')][_0x93e5('0x30')]);_0x203b28[_0x93e5('0x2d')]=qs[_0x93e5('0x2d')](_0x5b8c93[_0x93e5('0x46')][_0x93e5('0x2d')]);}_0x203b28[_0x93e5('0x68')]=qs[_0x93e5('0x4d')](_0x5b8c93[_0x93e5('0x46')][_0x93e5('0x4d')]);_0x203b28[_0x93e5('0x4e')]=qs[_0x93e5('0x4f')](_[_0x93e5('0x50')](_0x5b8c93['query'],_0x2dda58[_0x93e5('0x4f')]));_0x203b28[_0x93e5('0x4e')][_0x93e5('0x63')]=_0x49f89b['id'];if(_0x5b8c93[_0x93e5('0x46')][_0x93e5('0x69')]){_0x203b28['where']=_[_0x93e5('0x53')](_0x203b28[_0x93e5('0x4e')],{'$or':_[_0x93e5('0x40')](_0x203b28[_0x93e5('0x49')],function(_0x3c2c64){var _0xa82013={};_0xa82013[_0x3c2c64]={'$like':'%'+_0x5b8c93['query']['filter']+'%'};return _0xa82013;})});}_0x203b28=_[_0x93e5('0x53')]({},_0x203b28,_0x5b8c93[_0x93e5('0x54')]);return db[_0x93e5('0x64')]['count']({'where':_0x203b28[_0x93e5('0x4e')]})['then'](function(_0xe545ef){_0x296516[_0x93e5('0x2f')]=_0xe545ef;if(_0x5b8c93[_0x93e5('0x46')]['includeAll']){_0x203b28[_0x93e5('0x57')]=[{'all':!![]}];}return db[_0x93e5('0x64')][_0x93e5('0x58')](_0x203b28);})[_0x93e5('0x20')](function(_0x3143bd){_0x296516['rows']=_0x3143bd;return _0x296516;});}})[_0x93e5('0x20')](respondWithFilteredResult(_0x5ead4b,_0x203b28))[_0x93e5('0x5a')](handleError(_0x5ead4b,null));};exports['removeDispositions']=function(_0x5e6d4a,_0x388f1f,_0x5e01d5){return db[_0x93e5('0x55')]['find']({'where':{'id':_0x5e6d4a['params']['id']}})[_0x93e5('0x20')](handleEntityNotFound(_0x388f1f,null))[_0x93e5('0x20')](function(_0x276dd2){if(_0x276dd2){return _0x276dd2[_0x93e5('0x6a')](_0x5e6d4a[_0x93e5('0x46')][_0x93e5('0x6b')]);}})[_0x93e5('0x20')](respondWithStatusCode(_0x388f1f,null))[_0x93e5('0x5a')](handleError(_0x388f1f,null));};exports[_0x93e5('0x6c')]=function(_0x993b4b,_0x3117ee,_0x4c986a){if(_0x993b4b[_0x93e5('0x5f')]['id']){delete _0x993b4b[_0x93e5('0x5f')]['id'];}return db[_0x93e5('0x55')]['find']({'where':{'id':_0x993b4b[_0x93e5('0x5c')]['id']}})['then'](handleEntityNotFound(_0x3117ee,null))['then'](function(_0x23cdb6){if(_0x23cdb6){_0x993b4b['body'][_0x93e5('0x63')]=_0x23cdb6['id'];return db['CannedAnswer'][_0x93e5('0x65')](_0x993b4b[_0x93e5('0x5f')]);}})['then'](respondWithResult(_0x3117ee,null))[_0x93e5('0x5a')](handleError(_0x3117ee,null));};exports[_0x93e5('0x6d')]=function(_0x3ac38c,_0xf657a9,_0xd5afc0){var _0x38ea49={'raw':![],'where':{}};var _0x4bf9c1={};var _0x53bba3={'count':0x0,'rows':[]};return db[_0x93e5('0x55')]['findOne']({'where':{'id':_0x3ac38c['params']['id']}})[_0x93e5('0x20')](handleEntityNotFound(_0xf657a9,null))['then'](function(_0xba3e01){if(_0xba3e01){_0x4bf9c1[_0x93e5('0x45')]=_[_0x93e5('0x47')](db[_0x93e5('0x6e')][_0x93e5('0x41')]);_0x4bf9c1[_0x93e5('0x46')]=_['keys'](_0x3ac38c[_0x93e5('0x46')]);_0x4bf9c1[_0x93e5('0x4f')]=_[_0x93e5('0x48')](_0x4bf9c1['model'],_0x4bf9c1[_0x93e5('0x46')]);_0x38ea49[_0x93e5('0x49')]=_['intersection'](_0x4bf9c1[_0x93e5('0x45')],qs[_0x93e5('0x5d')](_0x3ac38c['query'][_0x93e5('0x5d')]));_0x38ea49['attributes']=_0x38ea49['attributes']['length']?_0x38ea49['attributes']:_0x4bf9c1[_0x93e5('0x45')];if(!_0x3ac38c['query'][_0x93e5('0x4b')]('nolimit')){_0x38ea49[_0x93e5('0x30')]=qs[_0x93e5('0x30')](_0x3ac38c['query'][_0x93e5('0x30')]);_0x38ea49[_0x93e5('0x2d')]=qs[_0x93e5('0x2d')](_0x3ac38c[_0x93e5('0x46')]['offset']);}_0x38ea49['order']=qs[_0x93e5('0x4d')](_0x3ac38c['query'][_0x93e5('0x4d')]);_0x38ea49[_0x93e5('0x4e')]=qs[_0x93e5('0x4f')](_[_0x93e5('0x50')](_0x3ac38c['query'],_0x4bf9c1[_0x93e5('0x4f')]));_0x38ea49['where'][_0x93e5('0x63')]=_0xba3e01['id'];if(_0x3ac38c[_0x93e5('0x46')][_0x93e5('0x69')]){_0x38ea49[_0x93e5('0x4e')]=_['merge'](_0x38ea49['where'],{'$or':_[_0x93e5('0x40')](_0x38ea49['attributes'],function(_0x2e46ae){var _0x4e0788={};_0x4e0788[_0x2e46ae]={'$like':'%'+_0x3ac38c['query'][_0x93e5('0x69')]+'%'};return _0x4e0788;})});}_0x38ea49=_['merge']({},_0x38ea49,_0x3ac38c[_0x93e5('0x54')]);return db[_0x93e5('0x6e')][_0x93e5('0x2f')]({'where':_0x38ea49[_0x93e5('0x4e')]})[_0x93e5('0x20')](function(_0x31dce4){_0x53bba3[_0x93e5('0x2f')]=_0x31dce4;if(_0x3ac38c[_0x93e5('0x46')][_0x93e5('0x56')]){_0x38ea49[_0x93e5('0x57')]=[{'all':!![]}];}return db['CannedAnswer'][_0x93e5('0x58')](_0x38ea49);})[_0x93e5('0x20')](function(_0x42fcab){_0x53bba3[_0x93e5('0x59')]=_0x42fcab;return _0x53bba3;});}})[_0x93e5('0x20')](respondWithFilteredResult(_0xf657a9,_0x38ea49))[_0x93e5('0x5a')](handleError(_0xf657a9,null));};exports[_0x93e5('0x6f')]=function(_0x332414,_0x237a2d,_0x1d0937){return db['MailAccount'][_0x93e5('0x5e')]({'where':{'id':_0x332414[_0x93e5('0x5c')]['id']}})[_0x93e5('0x20')](handleEntityNotFound(_0x237a2d,null))[_0x93e5('0x20')](function(_0x492194){if(_0x492194){return _0x492194[_0x93e5('0x6f')](_0x332414[_0x93e5('0x46')]['ids']);}})[_0x93e5('0x20')](respondWithStatusCode(_0x237a2d,null))[_0x93e5('0x5a')](handleError(_0x237a2d,null));};exports[_0x93e5('0x65')]=function(_0xef406d,_0x32d118){var _0x55accb={'name':_0xef406d[_0x93e5('0x5f')]['name'],'key':_0xef406d[_0x93e5('0x5f')][_0x93e5('0x44')],'email':_0xef406d[_0x93e5('0x5f')][_0x93e5('0x70')],'ListId':_0xef406d[_0x93e5('0x5f')][_0x93e5('0x71')],'active':!_[_0x93e5('0x72')](_0xef406d[_0x93e5('0x5f')]['active'])?_0xef406d[_0x93e5('0x5f')][_0x93e5('0x73')]:!![],'description':_0xef406d[_0x93e5('0x5f')][_0x93e5('0x74')]||null,'Imap':{},'Smtp':{}};if(_[_0x93e5('0x72')](_0xef406d[_0x93e5('0x5f')][_0x93e5('0x75')])){if(_0xef406d[_0x93e5('0x5f')][_0x93e5('0x76')]){_0x55accb[_0x93e5('0x3d')][_0x93e5('0x77')]=_0x55accb[_0x93e5('0x3f')][_0x93e5('0x77')]=_0xef406d[_0x93e5('0x5f')][_0x93e5('0x78')];_0x55accb[_0x93e5('0x3d')]['password']=_0x55accb[_0x93e5('0x3f')][_0x93e5('0x79')]=_0xef406d['body'][_0x93e5('0x7a')];}else{_0x55accb[_0x93e5('0x3d')]['authentication']=_0x55accb[_0x93e5('0x3f')][_0x93e5('0x7b')]=![];}_0x55accb[_0x93e5('0x3d')][_0x93e5('0x7c')]=_0xef406d[_0x93e5('0x5f')][_0x93e5('0x3d')]['host'];_0x55accb[_0x93e5('0x3d')][_0x93e5('0x7d')]=_0xef406d[_0x93e5('0x5f')][_0x93e5('0x3d')][_0x93e5('0x7d')];_0x55accb[_0x93e5('0x3f')][_0x93e5('0x7c')]=_0xef406d[_0x93e5('0x5f')][_0x93e5('0x3f')]['host'];_0x55accb[_0x93e5('0x3f')][_0x93e5('0x7d')]=_0xef406d['body'][_0x93e5('0x3f')]['port'];}else{_0x55accb[_0x93e5('0x3d')][_0x93e5('0x7e')]=_0x55accb[_0x93e5('0x3f')]['service']=_0xef406d[_0x93e5('0x5f')][_0x93e5('0x75')];_0x55accb[_0x93e5('0x3d')][_0x93e5('0x77')]=_0x55accb[_0x93e5('0x3f')]['user']=_0xef406d[_0x93e5('0x5f')][_0x93e5('0x78')];_0x55accb['Imap'][_0x93e5('0x7f')]=_0x55accb[_0x93e5('0x3f')][_0x93e5('0x79')]=_0xef406d[_0x93e5('0x5f')][_0x93e5('0x7a')];}return db[_0x93e5('0x55')][_0x93e5('0x65')](_0x55accb,{'include':[{'model':db['MailServerOut'],'as':'Smtp'},{'model':db['MailServerIn'],'as':_0x93e5('0x3d')}]})[_0x93e5('0x20')](function(_0xe5567f){var _0x2871d1=_0xef406d['user'][_0x93e5('0x37')]({'plain':!![]});if(!_0x2871d1)throw new Error(_0x93e5('0x80'));if(_0x2871d1[_0x93e5('0x81')]===_0x93e5('0x77')){var _0x20582b=_0xe5567f[_0x93e5('0x37')]({'plain':!![]});return db['UserProfileSection'][_0x93e5('0x5e')]({'where':{'name':'MailAccounts','userProfileId':_0x2871d1[_0x93e5('0x82')]},'raw':!![]})[_0x93e5('0x20')](function(_0x2588d2){if(_0x2588d2&&_0x2588d2[_0x93e5('0x83')]===0x0){return db[_0x93e5('0x38')][_0x93e5('0x65')]({'name':_0x20582b[_0x93e5('0x52')],'resourceId':_0x20582b['id'],'type':_0x2588d2[_0x93e5('0x52')],'sectionId':_0x2588d2['id']},{})[_0x93e5('0x20')](function(){return _0xe5567f;});}else{return _0xe5567f;}})[_0x93e5('0x5a')](function(_0x48c576){logger[_0x93e5('0x25')](_0x93e5('0x84'),_0x48c576);throw _0x48c576;});}return _0xe5567f;})[_0x93e5('0x20')](respondWithResult(_0x32d118,0xc9))[_0x93e5('0x5a')](handleError(_0x32d118,null));};exports[_0x93e5('0x85')]=function(_0x5d561a,_0x1f3eb2,_0x17f746){return db['MailAccount'][_0x93e5('0x67')]({'where':{'id':_0x5d561a[_0x93e5('0x5c')]['id']}})[_0x93e5('0x20')](handleEntityNotFound(_0x1f3eb2,null))[_0x93e5('0x20')](function(_0x3b5258){if(_0x3b5258){return _0x3b5258[_0x93e5('0x85')]();}return null;})[_0x93e5('0x20')](respondWithResult(_0x1f3eb2,null))['catch'](handleError(_0x1f3eb2,null));};exports[_0x93e5('0x86')]=function(_0x381367,_0x54dfc1,_0x43b9b2){if(_0x381367[_0x93e5('0x5f')]['id']){delete _0x381367[_0x93e5('0x5f')]['id'];}return db[_0x93e5('0x55')][_0x93e5('0x5e')]({'where':{'id':_0x381367[_0x93e5('0x5c')]['id']}})['then'](handleEntityNotFound(_0x54dfc1,null))[_0x93e5('0x20')](function(_0x5e05dd){if(_0x5e05dd){_0x381367[_0x93e5('0x5f')][_0x93e5('0x63')]=_0x5e05dd['id'];return db[_0x93e5('0x3c')]['create'](_0x381367[_0x93e5('0x5f')]);}})[_0x93e5('0x20')](respondWithResult(_0x54dfc1,null))[_0x93e5('0x5a')](handleError(_0x54dfc1,null));};exports['removeImap']=function(_0x4cb8a3,_0x564bbf,_0x17ab40){return db['MailAccount'][_0x93e5('0x67')]({'where':{'id':_0x4cb8a3['params']['id']}})[_0x93e5('0x20')](handleEntityNotFound(_0x564bbf,null))[_0x93e5('0x20')](function(_0x1707de){if(_0x1707de){return _0x1707de[_0x93e5('0x87')](null);}return null;})[_0x93e5('0x20')](respondWithStatusCode(_0x564bbf,null))['catch'](handleError(_0x564bbf,null));};exports[_0x93e5('0x88')]=function(_0x444e5a,_0xf7af06,_0x162126){return db['MailAccount'][_0x93e5('0x67')]({'where':{'id':_0x444e5a[_0x93e5('0x5c')]['id']}})[_0x93e5('0x20')](handleEntityNotFound(_0xf7af06,null))[_0x93e5('0x20')](function(_0x2d9831){if(_0x2d9831){return _0x2d9831[_0x93e5('0x88')]();}return null;})[_0x93e5('0x20')](respondWithResult(_0xf7af06,null))['catch'](handleError(_0xf7af06,null));};exports[_0x93e5('0x89')]=function(_0xe38fdc,_0x2b50f0,_0x65118e){if(_0xe38fdc['body']['id']){delete _0xe38fdc[_0x93e5('0x5f')]['id'];}return db[_0x93e5('0x55')]['find']({'where':{'id':_0xe38fdc['params']['id']}})[_0x93e5('0x20')](handleEntityNotFound(_0x2b50f0,null))['then'](function(_0xf20115){if(_0xf20115){_0xe38fdc[_0x93e5('0x5f')][_0x93e5('0x63')]=_0xf20115['id'];return db[_0x93e5('0x3e')]['create'](_0xe38fdc[_0x93e5('0x5f')]);}})['then'](respondWithResult(_0x2b50f0,null))[_0x93e5('0x5a')](handleError(_0x2b50f0,null));};exports[_0x93e5('0x8a')]=function(_0xb14225,_0x342d75,_0x3a4528){return db[_0x93e5('0x55')]['findOne']({'where':{'id':_0xb14225[_0x93e5('0x5c')]['id']}})[_0x93e5('0x20')](handleEntityNotFound(_0x342d75,null))[_0x93e5('0x20')](function(_0x268e67){if(_0x268e67){return _0x268e67['setSmtp'](null);}return null;})[_0x93e5('0x20')](respondWithStatusCode(_0x342d75,null))[_0x93e5('0x5a')](handleError(_0x342d75,null));};exports[_0x93e5('0x8b')]=function(_0x42426b,_0x5bf916,_0x4253cd){return db['MailInteraction'][_0x93e5('0x5e')]({'where':{'id':_0x42426b[_0x93e5('0x5c')]['id']}})[_0x93e5('0x20')](handleEntityNotFound(_0x5bf916,null))['then'](function(_0x2b984a){if(_0x2b984a){return _0x2b984a[_0x93e5('0x8b')](_0x42426b[_0x93e5('0x5f')][_0x93e5('0x6b')],_[_0x93e5('0x8c')](_0x42426b[_0x93e5('0x5f')],[_0x93e5('0x6b'),'id'])||{});}})[_0x93e5('0x20')](respondWithResult(_0x5bf916,null))[_0x93e5('0x5a')](handleError(_0x5bf916,null));};exports[_0x93e5('0x8d')]=function(_0x1eea57,_0x5059da,_0x5ee2d0){var _0x42cd08={'raw':![],'where':{}};var _0x4f5bfe={};var _0x4c5375={'count':0x0,'rows':[]};return db[_0x93e5('0x55')]['findOne']({'where':{'id':_0x1eea57['params']['id']}})[_0x93e5('0x20')](handleEntityNotFound(_0x5059da,null))[_0x93e5('0x20')](function(_0xddc265){if(_0xddc265){_0x4f5bfe['model']=_['keys'](db[_0x93e5('0x8e')]['rawAttributes']);_0x4f5bfe[_0x93e5('0x46')]=_[_0x93e5('0x47')](_0x1eea57[_0x93e5('0x46')]);_0x4f5bfe[_0x93e5('0x4f')]=_[_0x93e5('0x48')](_0x4f5bfe[_0x93e5('0x45')],_0x4f5bfe[_0x93e5('0x46')]);_0x42cd08[_0x93e5('0x49')]=_[_0x93e5('0x48')](_0x4f5bfe[_0x93e5('0x45')],qs[_0x93e5('0x5d')](_0x1eea57[_0x93e5('0x46')][_0x93e5('0x5d')]));_0x42cd08[_0x93e5('0x49')]=_0x42cd08[_0x93e5('0x49')][_0x93e5('0x4a')]?_0x42cd08[_0x93e5('0x49')]:_0x4f5bfe[_0x93e5('0x45')];if(!_0x1eea57[_0x93e5('0x46')]['hasOwnProperty'](_0x93e5('0x4c'))){_0x42cd08[_0x93e5('0x30')]=qs[_0x93e5('0x30')](_0x1eea57[_0x93e5('0x46')][_0x93e5('0x30')]);_0x42cd08[_0x93e5('0x2d')]=qs[_0x93e5('0x2d')](_0x1eea57[_0x93e5('0x46')][_0x93e5('0x2d')]);}_0x42cd08[_0x93e5('0x68')]=qs[_0x93e5('0x4d')](_0x1eea57['query'][_0x93e5('0x4d')]);_0x42cd08[_0x93e5('0x4e')]=qs[_0x93e5('0x4f')](_[_0x93e5('0x50')](_0x1eea57['query'],_0x4f5bfe['filters']));_0x42cd08['where'][_0x93e5('0x63')]=_0xddc265['id'];if(_0x1eea57[_0x93e5('0x46')][_0x93e5('0x69')]){_0x42cd08[_0x93e5('0x4e')]=_[_0x93e5('0x53')](_0x42cd08[_0x93e5('0x4e')],{'$or':_['map'](_0x42cd08[_0x93e5('0x49')],function(_0x130532){var _0x4d7138={};_0x4d7138[_0x130532]={'$like':'%'+_0x1eea57[_0x93e5('0x46')][_0x93e5('0x69')]+'%'};return _0x4d7138;})});}_0x42cd08=_[_0x93e5('0x53')]({},_0x42cd08,_0x1eea57['options']);return db[_0x93e5('0x8e')][_0x93e5('0x2f')]({'where':_0x42cd08[_0x93e5('0x4e')]})[_0x93e5('0x20')](function(_0x597992){_0x4c5375[_0x93e5('0x2f')]=_0x597992;if(_0x1eea57['query']['includeAll']){_0x42cd08[_0x93e5('0x57')]=[{'model':db['CmContact'],'as':_0x93e5('0x8f'),'required':![]},{'model':db['User'],'as':_0x93e5('0x90'),'attributes':[_0x93e5('0x52'),_0x93e5('0x91'),'internal'],'required':![]},{'model':db['Tag'],'as':_0x93e5('0x92'),'attributes':['id',_0x93e5('0x52'),'color'],'where':_0x1eea57[_0x93e5('0x46')][_0x93e5('0x93')]?{'id':_0x1eea57[_0x93e5('0x46')][_0x93e5('0x93')]}:undefined,'required':_0x1eea57['query'][_0x93e5('0x93')]?!![]:![]}];}return db[_0x93e5('0x8e')][_0x93e5('0x58')](_0x42cd08);})[_0x93e5('0x20')](function(_0x41dd66){_0x4c5375['rows']=_0x41dd66;return _0x4c5375;});}})['then'](respondWithFilteredResult(_0x5059da,_0x42cd08))[_0x93e5('0x5a')](handleError(_0x5059da,null));};exports[_0x93e5('0x94')]=function(_0x468481,_0x53fad2,_0x46ddba){return db[_0x93e5('0x55')][_0x93e5('0x67')]({'where':{'id':_0x468481[_0x93e5('0x5c')]['id']}})['then'](handleEntityNotFound(_0x53fad2,null))['then'](function(_0x4f37a3){if(_0x4f37a3){return db[_0x93e5('0x95')][_0x93e5('0x96')](function(_0x281010){return db[_0x93e5('0x97')]['destroy']({'where':{'MailAccountId':_0x468481['params']['id']},'transaction':_0x281010})[_0x93e5('0x20')](function(_0x2d84a0){var _0x34e84c=_[_0x93e5('0x40')](_0x468481[_0x93e5('0x5f')],function(_0x20fc56){_0x20fc56[_0x93e5('0x63')]=_0x468481['params']['id'];return _0x20fc56;});return db[_0x93e5('0x97')][_0x93e5('0x98')](_0x34e84c,{'transaction':_0x281010});});})[_0x93e5('0x20')](function(){return db['MailApplication']['findAndCountAll']({'where':{'MailAccountId':_0x468481[_0x93e5('0x5c')]['id']},'order':_0x93e5('0x99')});});}})['then'](respondWithResult(_0x53fad2,null))[_0x93e5('0x5a')](handleError(_0x53fad2,null));};exports[_0x93e5('0x9a')]=function(_0x5802a9,_0x202bd0,_0x459645){var _0x14336b={};var _0x2197f6={};var _0x1d8993;var _0x2884d8;return db[_0x93e5('0x55')][_0x93e5('0x67')]({'where':{'id':_0x5802a9['params']['id']}})[_0x93e5('0x20')](handleEntityNotFound(_0x202bd0,null))[_0x93e5('0x20')](function(_0x4f7ea7){if(_0x4f7ea7){_0x1d8993=_0x4f7ea7;_0x2197f6[_0x93e5('0x45')]=_[_0x93e5('0x47')](db['MailApplication'][_0x93e5('0x41')]);_0x2197f6[_0x93e5('0x46')]=_[_0x93e5('0x47')](_0x5802a9[_0x93e5('0x46')]);_0x2197f6[_0x93e5('0x4f')]=_[_0x93e5('0x48')](_0x2197f6[_0x93e5('0x45')],_0x2197f6[_0x93e5('0x46')]);_0x14336b[_0x93e5('0x49')]=_['intersection'](_0x2197f6[_0x93e5('0x45')],qs[_0x93e5('0x5d')](_0x5802a9[_0x93e5('0x46')][_0x93e5('0x5d')]));_0x14336b['attributes']=_0x14336b['attributes']['length']?_0x14336b[_0x93e5('0x49')]:_0x2197f6[_0x93e5('0x45')];_0x14336b[_0x93e5('0x68')]=qs[_0x93e5('0x4d')](_0x5802a9[_0x93e5('0x46')][_0x93e5('0x4d')]);_0x14336b['where']=qs['filters'](_['pick'](_0x5802a9[_0x93e5('0x46')],_0x2197f6[_0x93e5('0x4f')]));if(_0x5802a9[_0x93e5('0x46')][_0x93e5('0x69')]){_0x14336b[_0x93e5('0x4e')]=_[_0x93e5('0x53')](_0x14336b[_0x93e5('0x4e')],{'$or':_[_0x93e5('0x40')](_0x14336b['attributes'],function(_0x3f829e){var _0x483145={};_0x483145[_0x3f829e]={'$like':'%'+_0x5802a9[_0x93e5('0x46')][_0x93e5('0x69')]+'%'};return _0x483145;})});}_0x14336b=_[_0x93e5('0x53')]({},_0x14336b,_0x5802a9[_0x93e5('0x54')]);return _0x1d8993[_0x93e5('0x9a')](_0x14336b);}})['then'](function(_0x219b55){if(_0x219b55){_0x2884d8=_0x219b55[_0x93e5('0x4a')];if(!_0x5802a9['query'][_0x93e5('0x4b')](_0x93e5('0x4c'))){_0x14336b[_0x93e5('0x30')]=qs[_0x93e5('0x30')](_0x5802a9['query']['limit']);_0x14336b[_0x93e5('0x2d')]=qs['offset'](_0x5802a9[_0x93e5('0x46')][_0x93e5('0x2d')]);}return _0x1d8993[_0x93e5('0x9a')](_0x14336b);}})[_0x93e5('0x20')](function(_0x250e37){if(_0x250e37){return _0x250e37?{'count':_0x2884d8,'rows':_0x250e37}:null;}})['then'](respondWithResult(_0x202bd0,null))[_0x93e5('0x5a')](handleError(_0x202bd0,null));};exports[_0x93e5('0x9b')]=function(_0x2e1f43,_0x3c3979,_0x5f0e34){var _0x34dc59={'raw':!![],'where':{}};var _0xd9efaa={};var _0x9cf29d={'count':0x0,'rows':[]};return db[_0x93e5('0x55')][_0x93e5('0x67')]({'where':{'id':_0x2e1f43[_0x93e5('0x5c')]['id']}})[_0x93e5('0x20')](handleEntityNotFound(_0x3c3979,null))[_0x93e5('0x20')](function(_0x232af2){if(_0x232af2){_0xd9efaa[_0x93e5('0x45')]=_['keys'](db[_0x93e5('0x9c')][_0x93e5('0x41')]);_0xd9efaa[_0x93e5('0x46')]=_[_0x93e5('0x47')](_0x2e1f43[_0x93e5('0x46')]);_0xd9efaa['filters']=_[_0x93e5('0x48')](_0xd9efaa[_0x93e5('0x45')],_0xd9efaa[_0x93e5('0x46')]);_0x34dc59[_0x93e5('0x49')]=_[_0x93e5('0x48')](_0xd9efaa[_0x93e5('0x45')],qs['fields'](_0x2e1f43['query'][_0x93e5('0x5d')]));_0x34dc59['attributes']=_0x34dc59[_0x93e5('0x49')][_0x93e5('0x4a')]?_0x34dc59[_0x93e5('0x49')]:_0xd9efaa[_0x93e5('0x45')];if(!_0x2e1f43[_0x93e5('0x46')][_0x93e5('0x4b')](_0x93e5('0x4c'))){_0x34dc59[_0x93e5('0x30')]=qs[_0x93e5('0x30')](_0x2e1f43[_0x93e5('0x46')][_0x93e5('0x30')]);_0x34dc59[_0x93e5('0x2d')]=qs[_0x93e5('0x2d')](_0x2e1f43[_0x93e5('0x46')][_0x93e5('0x2d')]);}_0x34dc59[_0x93e5('0x68')]=qs['sort'](_0x2e1f43[_0x93e5('0x46')][_0x93e5('0x4d')]);_0x34dc59[_0x93e5('0x4e')]=qs[_0x93e5('0x4f')](_['pick'](_0x2e1f43[_0x93e5('0x46')],_0xd9efaa[_0x93e5('0x4f')]));_0x34dc59[_0x93e5('0x4e')]['MailAccountId']=_0x232af2['id'];if(_0x2e1f43[_0x93e5('0x46')][_0x93e5('0x69')]){_0x34dc59[_0x93e5('0x4e')]=_[_0x93e5('0x53')](_0x34dc59[_0x93e5('0x4e')],{'$or':_[_0x93e5('0x40')](_0x34dc59[_0x93e5('0x49')],function(_0x57b283){var _0x44b782={};_0x44b782[_0x57b283]={'$like':'%'+_0x2e1f43[_0x93e5('0x46')][_0x93e5('0x69')]+'%'};return _0x44b782;})});}if(_0x2e1f43[_0x93e5('0x46')][_0x93e5('0x9d')]){var _0x4d1ecd=_0x2e1f43[_0x93e5('0x46')][_0x93e5('0x9d')]['split'](',');var _0x9c0dfa={};_0x9c0dfa[_0x4d1ecd[0x0]]={'$gte':moment(_0x4d1ecd[0x1])[_0x93e5('0x9e')]('YYYY-MM-DD\x20HH:mm:ss')};_0x34dc59[_0x93e5('0x4e')]=_[_0x93e5('0x53')](_0x34dc59[_0x93e5('0x4e')],_0x9c0dfa);}_0x34dc59=_['merge']({},_0x34dc59,_0x2e1f43[_0x93e5('0x54')]);return db[_0x93e5('0x9c')][_0x93e5('0x2f')]({'where':_0x34dc59[_0x93e5('0x4e')]})[_0x93e5('0x20')](function(_0x398a0e){_0x9cf29d[_0x93e5('0x2f')]=_0x398a0e;if(_0x2e1f43['query'][_0x93e5('0x56')]){_0x34dc59[_0x93e5('0x57')]=[{'all':!![]}];}return db['MailMessage']['findAll'](_0x34dc59);})[_0x93e5('0x20')](function(_0x3c81c9){if(_0x2e1f43[_0x93e5('0x46')][_0x93e5('0x9f')]===_0x93e5('0xa0')){for(var _0x2e2d98=0x0;_0x2e2d98<_0x3c81c9['length'];_0x2e2d98++){_0x3c81c9[_0x2e2d98]['body']=juice(_0x3c81c9[_0x2e2d98]['body']);}}_0x9cf29d['rows']=_0x3c81c9;return _0x9cf29d;});}})[_0x93e5('0x20')](respondWithFilteredResult(_0x3c3979,_0x34dc59))[_0x93e5('0x5a')](handleError(_0x3c3979,null));};exports[_0x93e5('0x3a')]=function(_0x14c51b,_0x165bff,_0x544bed){var _0x4e6b90,_0x1366ae={},_0x17cba4;if(_0x14c51b[_0x93e5('0x5f')]['to']){_0x17cba4=_0x14c51b['body']['to']['split'](',')[0x0];}return db[_0x93e5('0x55')][_0x93e5('0x5e')]({'where':{'id':_0x14c51b['params']['id']},'include':[{'model':db[_0x93e5('0xa1')],'as':_0x93e5('0xa2'),'include':[{'model':db[_0x93e5('0xa3')],'as':_0x93e5('0xa4'),'where':{'email':_0x17cba4},'limit':0x1,'order':[['updatedAt',_0x93e5('0xa5')]]}]},{'model':db[_0x93e5('0x3e')],'as':_0x93e5('0x3f'),'raw':!![]}]})[_0x93e5('0x20')](handleEntityNotFound(_0x165bff,null))[_0x93e5('0x20')](function(_0xdb4746){if(_0xdb4746){_0x4e6b90=_0xdb4746;if(_0xdb4746[_0x93e5('0x3f')]){if(_[_0x93e5('0x72')](_0x14c51b['body']['from'])){_0x14c51b[_0x93e5('0x5f')][_0x93e5('0xa6')]=util['format'](_0x93e5('0xa7'),_0xdb4746['name'],_0xdb4746[_0x93e5('0x70')]||_0xdb4746[_0x93e5('0x3f')]['user']);}if(_0x14c51b[_0x93e5('0x5f')]['attachments']&&_0x14c51b['body'][_0x93e5('0xa8')][_0x93e5('0x4a')]){for(var _0x5a54b3=0x0;_0x5a54b3<_0x14c51b[_0x93e5('0x5f')][_0x93e5('0xa8')][_0x93e5('0x4a')];_0x5a54b3+=0x1){_0x14c51b[_0x93e5('0x5f')]['attachments'][_0x5a54b3]={'filename':_0x14c51b[_0x93e5('0x5f')][_0x93e5('0xa8')][_0x5a54b3][_0x93e5('0x52')],'path':path[_0x93e5('0xa9')](config[_0x93e5('0xaa')],_0x93e5('0xab'),_0x14c51b[_0x93e5('0x5f')][_0x93e5('0xa8')][_0x5a54b3][_0x93e5('0xac')])};}}var _0x22ee79={'tls':{'rejectUnauthorized':![]}};if(_['isNil'](_0xdb4746[_0x93e5('0x3f')][_0x93e5('0x7e')])){if(_0xdb4746['Smtp']['authentication']){_0x22ee79['auth']={'user':_0xdb4746[_0x93e5('0x3f')][_0x93e5('0x77')],'pass':_0xdb4746[_0x93e5('0x3f')]['pass']};}_0x22ee79['host']=_0xdb4746[_0x93e5('0x3f')][_0x93e5('0x7c')];_0x22ee79[_0x93e5('0x7d')]=_0xdb4746[_0x93e5('0x3f')][_0x93e5('0x7d')];_0x22ee79[_0x93e5('0xad')]=_0xdb4746[_0x93e5('0x3f')][_0x93e5('0xad')];}else{_0x22ee79['service']=_0xdb4746['Smtp'][_0x93e5('0x7e')];_0x22ee79[_0x93e5('0xae')]={'user':_0xdb4746['Smtp'][_0x93e5('0x77')],'pass':_0xdb4746['Smtp']['pass']};}return respondWithRpcPromise(_0x93e5('0xaf'),_0x93e5('0xb0'),{'account':_0x22ee79,'message':_0x14c51b[_0x93e5('0x5f')]});}else{throw new Error('List\x20not\x20found');}}})[_0x93e5('0x20')](function(_0x4b40bb){if(_0x4b40bb){_0x1366ae=_0x4b40bb;if(_0x4e6b90[_0x93e5('0xa2')]){if(_0x4e6b90[_0x93e5('0xa2')][_0x93e5('0xa4')][_0x93e5('0x4a')]){return _0x4e6b90[_0x93e5('0xa2')][_0x93e5('0xa4')][0x0];}else{return db['CmContact'][_0x93e5('0x65')](_['defaults'](_0x14c51b[_0x93e5('0x5f')],{'firstName':_0x14c51b[_0x93e5('0x5f')]['to'],'email':_0x14c51b['body']['to'],'phone':_0x14c51b[_0x93e5('0x5f')]['to'],'ListId':_0x4e6b90[_0x93e5('0x71')]}));}}else{throw new Error('List\x20not\x20found');}}})[_0x93e5('0x20')](function(_0x345c6e){if(_0x345c6e){var _0x3158e9={'UserId':_0x14c51b[_0x93e5('0x77')]['id'],'ContactId':_0x345c6e['id'],'MailAccountId':_0x4e6b90['id'],'inReplyTo':_0x1366ae[_0x93e5('0xb1')],'to':_0x14c51b[_0x93e5('0x5f')][_0x93e5('0xa6')],'cc':_0x14c51b['body']['cc'],'subject':_0x14c51b['body']['subject'],'attach':_0x14c51b['body'][_0x93e5('0xb2')],'firstMsgDirection':'out','lastMsgAt':moment()[_0x93e5('0x9e')](_0x93e5('0xb3')),'lastMsgDirection':_0x93e5('0xb4'),'Messages':[_[_0x93e5('0x53')](_0x14c51b[_0x93e5('0x5f')],{'messageId':_0x1366ae[_0x93e5('0xb1')],'sentAt':moment()[_0x93e5('0x9e')](_0x93e5('0xb3')),'read':!![],'MailAccountId':_0x4e6b90['id'],'UserId':_0x14c51b['user']['id'],'ContactId':_0x345c6e['id']})]};if(_0x14c51b[_0x93e5('0x5f')][_0x93e5('0xb5')]){_0x3158e9=_['merge'](_0x3158e9,_0x14c51b['body'][_0x93e5('0xb5')]);}return db[_0x93e5('0x8e')]['create'](_0x3158e9,{'include':[{'model':db[_0x93e5('0x9c')],'as':_0x93e5('0xb6')}]});}})[_0x93e5('0x20')](respondWithResult(_0x165bff,null))[_0x93e5('0x5a')](handleError(_0x165bff,null));};exports[_0x93e5('0xb7')]=function(_0x28ec7d,_0x126aaa,_0x46a6a4){return db[_0x93e5('0x55')][_0x93e5('0x5e')]({'where':{'id':_0x28ec7d[_0x93e5('0x5c')]['id']},'include':[{'model':db[_0x93e5('0x3e')],'as':_0x93e5('0x3f'),'raw':!![]}]})[_0x93e5('0x20')](handleEntityNotFound(_0x126aaa,null))[_0x93e5('0x20')](function(_0x57458e){if(_0x57458e&&_0x57458e[_0x93e5('0x3f')]){var _0x539f6d={'id':_0x57458e['id'],'tls':{'rejectUnauthorized':![]}};if(_0x57458e[_0x93e5('0x3f')]['service']){_0x539f6d[_0x93e5('0x7e')]=_0x57458e[_0x93e5('0x3f')][_0x93e5('0x7e')];}else{_0x539f6d[_0x93e5('0x7c')]=_0x57458e[_0x93e5('0x3f')][_0x93e5('0x7c')];_0x539f6d[_0x93e5('0x7d')]=_0x57458e[_0x93e5('0x3f')][_0x93e5('0x7d')];_0x539f6d[_0x93e5('0xad')]=_0x57458e['Smtp'][_0x93e5('0xad')];}if(_0x57458e[_0x93e5('0x3f')][_0x93e5('0x7b')]){_0x539f6d['auth']={'user':_0x57458e[_0x93e5('0x3f')]['user'],'pass':_0x57458e[_0x93e5('0x3f')][_0x93e5('0x79')]};}return respondWithRpcPromise(_0x93e5('0xb8'),'verifySmtp',{'account':_0x539f6d});}})[_0x93e5('0x20')](respondWithResult(_0x126aaa,null))[_0x93e5('0x5a')](handleError(_0x126aaa,null));};exports[_0x93e5('0x36')]=function(_0x2d12b9,_0x7fe892){return db[_0x93e5('0x55')][_0x93e5('0x5e')]({'where':{'id':_0x2d12b9['params']['id']}})[_0x93e5('0x20')](handleEntityNotFound(_0x7fe892,null))[_0x93e5('0x20')](function(_0x5c8d9b){if(_0x5c8d9b&&_0x5c8d9b[_0x93e5('0x7e')]){throw new db[(_0x93e5('0xb9'))][(_0x93e5('0xba'))]('You\x20can\x27t\x20remove\x20the\x20mail\x20service\x20account');}return _0x5c8d9b;})[_0x93e5('0x20')](removeEntity(_0x7fe892,null))[_0x93e5('0x5a')](handleError(_0x7fe892,null));};exports[_0x93e5('0xbb')]=function(_0x382679,_0xa48a4,_0x43cd93){return db[_0x93e5('0x55')][_0x93e5('0x5e')]({'where':{'id':_0x382679[_0x93e5('0x5c')]['id']}})[_0x93e5('0x20')](handleEntityNotFound(_0xa48a4,null))['then'](function(_0x4b6bfd){if(_0x4b6bfd){return _0x4b6bfd['addAgents'](_0x382679['body'][_0x93e5('0x6b')],_[_0x93e5('0x8c')](_0x382679[_0x93e5('0x5f')],[_0x93e5('0x6b'),'id'])||{})[_0x93e5('0xbc')](function(_0x399b7d){for(var _0x595b9a=0x0;_0x595b9a<_0x382679[_0x93e5('0x5f')][_0x93e5('0x6b')][_0x93e5('0x4a')];_0x595b9a+=0x1){socket[_0x93e5('0xbd')](_0x93e5('0xbe'),{'UserId':Number(_0x382679['body'][_0x93e5('0x6b')][_0x595b9a]),'MailAccountId':Number(_0x382679[_0x93e5('0x5c')]['id'])});}return _0x399b7d;});}})[_0x93e5('0x20')](respondWithResult(_0xa48a4,null))['catch'](handleError(_0xa48a4,null));};exports[_0x93e5('0xbf')]=function(_0x2296a6,_0x3b1c7a,_0x3cc2ae){return db[_0x93e5('0x55')]['find']({'where':{'id':_0x2296a6[_0x93e5('0x5c')]['id']}})['then'](handleEntityNotFound(_0x3b1c7a,null))['then'](function(_0x5289d1){if(_0x5289d1){return _0x5289d1[_0x93e5('0xbf')](_0x2296a6[_0x93e5('0x46')][_0x93e5('0x6b')])['then'](function(){if(_['isArray'](_0x2296a6[_0x93e5('0x46')]['ids'])){for(var _0x39dace=0x0;_0x39dace<_0x2296a6[_0x93e5('0x46')]['ids'][_0x93e5('0x4a')];_0x39dace+=0x1){socket[_0x93e5('0xbd')](_0x93e5('0xc0'),{'UserId':Number(_0x2296a6[_0x93e5('0x46')][_0x93e5('0x6b')][_0x39dace]),'MailAccountId':Number(_0x2296a6[_0x93e5('0x5c')]['id'])});}}else{socket['emit']('userMailAccount:remove',{'UserId':Number(_0x2296a6['query']['ids']),'MailAccountId':Number(_0x2296a6[_0x93e5('0x5c')]['id'])});}});}})[_0x93e5('0x20')](respondWithStatusCode(_0x3b1c7a,null))[_0x93e5('0x5a')](handleError(_0x3b1c7a,null));};exports[_0x93e5('0xc1')]=function(_0x44085c,_0x486450,_0x3ef201){var _0x30813c={};var _0x280835={};var _0x4753d2;var _0x427ad0;return db[_0x93e5('0x55')][_0x93e5('0x67')]({'where':{'id':_0x44085c['params']['id']}})[_0x93e5('0x20')](handleEntityNotFound(_0x486450,null))[_0x93e5('0x20')](function(_0x44f2e4){if(_0x44f2e4){_0x4753d2=_0x44f2e4;_0x280835['model']=_[_0x93e5('0x47')](db[_0x93e5('0xc2')][_0x93e5('0x41')]);_0x280835[_0x93e5('0x46')]=_[_0x93e5('0x47')](_0x44085c['query']);_0x280835['filters']=_[_0x93e5('0x48')](_0x280835[_0x93e5('0x45')],_0x280835['query']);_0x30813c['attributes']=_[_0x93e5('0x48')](_0x280835[_0x93e5('0x45')],qs[_0x93e5('0x5d')](_0x44085c['query'][_0x93e5('0x5d')]));_0x30813c[_0x93e5('0x49')]=_0x30813c[_0x93e5('0x49')]['length']?_0x30813c['attributes']:_0x280835[_0x93e5('0x45')];_0x30813c[_0x93e5('0x68')]=qs[_0x93e5('0x4d')](_0x44085c[_0x93e5('0x46')][_0x93e5('0x4d')]);_0x30813c[_0x93e5('0x4e')]=qs[_0x93e5('0x4f')](_['pick'](_0x44085c['query'],_0x280835[_0x93e5('0x4f')]));if(_0x44085c['query'][_0x93e5('0x69')]){_0x30813c[_0x93e5('0x4e')]=_['merge'](_0x30813c[_0x93e5('0x4e')],{'$or':_[_0x93e5('0x40')](_0x30813c[_0x93e5('0x49')],function(_0x2665ab){var _0x575e0b={};_0x575e0b[_0x2665ab]={'$like':'%'+_0x44085c[_0x93e5('0x46')][_0x93e5('0x69')]+'%'};return _0x575e0b;})});}_0x30813c=_[_0x93e5('0x53')]({},_0x30813c,_0x44085c[_0x93e5('0x54')]);return _0x4753d2[_0x93e5('0xc1')](_0x30813c);}})['then'](function(_0x55c203){if(_0x55c203){_0x427ad0=_0x55c203[_0x93e5('0x4a')];if(!_0x44085c[_0x93e5('0x46')][_0x93e5('0x4b')](_0x93e5('0x4c'))){_0x30813c[_0x93e5('0x30')]=qs[_0x93e5('0x30')](_0x44085c[_0x93e5('0x46')]['limit']);_0x30813c[_0x93e5('0x2d')]=qs['offset'](_0x44085c[_0x93e5('0x46')][_0x93e5('0x2d')]);}return _0x4753d2[_0x93e5('0xc1')](_0x30813c);}})[_0x93e5('0x20')](function(_0x4caf2d){if(_0x4caf2d){return _0x4caf2d?{'count':_0x427ad0,'rows':_0x4caf2d}:null;}})[_0x93e5('0x20')](respondWithResult(_0x486450,null))[_0x93e5('0x5a')](handleError(_0x486450,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x87e5=['emit','hasOwnProperty','hook','exports','events','../../mysqldb','setMaxListeners','save','remove'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x87e5,0xc1));var _0x587e=function(_0x54a9b9,_0x31352f){_0x54a9b9=_0x54a9b9-0x0;var _0x2a34ef=_0x87e5[_0x54a9b9];return _0x2a34ef;};'use strict';var EventEmitter=require(_0x587e('0x0'));var MailAccount=require(_0x587e('0x1'))['db']['MailAccount'];var MailAccountEvents=new EventEmitter();MailAccountEvents[_0x587e('0x2')](0x0);var events={'afterCreate':_0x587e('0x3'),'afterUpdate':'update','afterDestroy':_0x587e('0x4')};function emitEvent(_0x753094){return function(_0xf5e6d,_0xe69b6b,_0x3ec3a3){MailAccountEvents[_0x587e('0x5')](_0x753094+':'+_0xf5e6d['id'],_0xf5e6d);MailAccountEvents['emit'](_0x753094,_0xf5e6d);_0x3ec3a3(null);};}for(var e in events){if(events[_0x587e('0x6')](e)){var event=events[e];MailAccount[_0x587e('0x7')](e,emitEvent(event));}}module[_0x587e('0x8')]=MailAccountEvents;
\ No newline at end of file
+var _0xef17=['update','remove','emit','hook','events','../../mysqldb','MailAccount','setMaxListeners','save'];(function(_0x53d28e,_0x479f5c){var _0x18cbe5=function(_0x49b238){while(--_0x49b238){_0x53d28e['push'](_0x53d28e['shift']());}};_0x18cbe5(++_0x479f5c);}(_0xef17,0x136));var _0x7ef1=function(_0x2512e1,_0xe95220){_0x2512e1=_0x2512e1-0x0;var _0x22c554=_0xef17[_0x2512e1];return _0x22c554;};'use strict';var EventEmitter=require(_0x7ef1('0x0'));var MailAccount=require(_0x7ef1('0x1'))['db'][_0x7ef1('0x2')];var MailAccountEvents=new EventEmitter();MailAccountEvents[_0x7ef1('0x3')](0x0);var events={'afterCreate':_0x7ef1('0x4'),'afterUpdate':_0x7ef1('0x5'),'afterDestroy':_0x7ef1('0x6')};function emitEvent(_0x19a10d){return function(_0x2daaa6,_0x538a0a,_0x1d2f83){MailAccountEvents['emit'](_0x19a10d+':'+_0x2daaa6['id'],_0x2daaa6);MailAccountEvents[_0x7ef1('0x7')](_0x19a10d,_0x2daaa6);_0x1d2f83(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];MailAccount[_0x7ef1('0x8')](e,emitEvent(event));}}module['exports']=MailAccountEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6792=['bluebird','path','rimraf','../../config/environment','./mailAccount.attributes','exports','define','MailAccount','mail_accounts','lodash','util','../../config/logger','moment'];(function(_0xdc5fb5,_0xf29632){var _0x40113b=function(_0x572278){while(--_0x572278){_0xdc5fb5['push'](_0xdc5fb5['shift']());}};_0x40113b(++_0xf29632);}(_0x6792,0x14e));var _0x2679=function(_0x2c4b47,_0x41d515){_0x2c4b47=_0x2c4b47-0x0;var _0x204e4d=_0x6792[_0x2c4b47];return _0x204e4d;};'use strict';var _=require(_0x2679('0x0'));var util=require(_0x2679('0x1'));var logger=require(_0x2679('0x2'))('api');var moment=require(_0x2679('0x3'));var BPromise=require(_0x2679('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x2679('0x5'));var rimraf=require(_0x2679('0x6'));var config=require(_0x2679('0x7'));var attributes=require(_0x2679('0x8'));module[_0x2679('0x9')]=function(_0x1150be,_0xe68e68){return _0x1150be[_0x2679('0xa')](_0x2679('0xb'),attributes,{'tableName':_0x2679('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xc631=['moment','bluebird','request-promise','path','rimraf','../../config/environment','./mailAccount.attributes','mail_accounts','lodash','util','../../config/logger','api'];(function(_0x2bfc5b,_0x1161b5){var _0x4442d4=function(_0x4d8dce){while(--_0x4d8dce){_0x2bfc5b['push'](_0x2bfc5b['shift']());}};_0x4442d4(++_0x1161b5);}(_0xc631,0x1dc));var _0x1c63=function(_0x26b20f,_0x17fd98){_0x26b20f=_0x26b20f-0x0;var _0x33f371=_0xc631[_0x26b20f];return _0x33f371;};'use strict';var _=require(_0x1c63('0x0'));var util=require(_0x1c63('0x1'));var logger=require(_0x1c63('0x2'))(_0x1c63('0x3'));var moment=require(_0x1c63('0x4'));var BPromise=require(_0x1c63('0x5'));var rp=require(_0x1c63('0x6'));var fs=require('fs');var path=require(_0x1c63('0x7'));var rimraf=require(_0x1c63('0x8'));var config=require(_0x1c63('0x9'));var attributes=require(_0x1c63('0xa'));module['exports']=function(_0x1ef5c7,_0x56706c){return _0x1ef5c7['define']('MailAccount',attributes,{'tableName':_0x1c63('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfd23=['account','CmList','List','DESC','MailApplication','Applications','MailServerOut','Smtp','get','omit','applications','orderBy','autoclose','length','close','Contacts','ListId','create','List\x20not\x20found','messageId','format','YYYY-MM-DD\x20HH:mm:ss','MailInteraction','MailMessage','Messages','inReplyTo','Contact\x20not\x20found','spread','update','subject','attach','interaction','created','contact','attachments','originTo','originCc','originChannel','Email','Attachment','Attachments','UserId','User','name','unshift','waitForTheAssignedAgent','*,*,*,*','Start','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','http','defaults','redis','socket.io-emitter','./mailAccount.socket','register','request','then','MailAccount,\x20%s,\x20%s','request\x20sent','debug','MailAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','findAll','options','where','include','map','model','attributes','GetMailAccount','ShowMailAccount','MailAccount','find','raw','NotifyMailAccount','body','mail','difference','keys','CmContact','createdAt','updatedAt','CompanyId','isNil','from','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20'];(function(_0x1d1779,_0x284147){var _0x2377e9=function(_0x299f6f){while(--_0x299f6f){_0x1d1779['push'](_0x1d1779['shift']());}};_0x2377e9(++_0x284147);}(_0xfd23,0x9a));var _0x3fd2=function(_0x1b4b23,_0x5dd6d6){_0x1b4b23=_0x1b4b23-0x0;var _0x2a325b=_0xfd23[_0x1b4b23];return _0x2a325b;};'use strict';var _=require(_0x3fd2('0x0'));var util=require(_0x3fd2('0x1'));var moment=require(_0x3fd2('0x2'));var BPromise=require(_0x3fd2('0x3'));var rs=require(_0x3fd2('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x3fd2('0x5'))['db'];var utils=require(_0x3fd2('0x6'));var logger=require('../../config/logger')(_0x3fd2('0x7'));var config=require(_0x3fd2('0x8'));var jayson=require(_0x3fd2('0x9'));var client=jayson[_0x3fd2('0xa')][_0x3fd2('0xb')]({'port':0x232c});config['redis']=_[_0x3fd2('0xc')](config[_0x3fd2('0xd')],{'host':'localhost','port':0x18eb});var socket=require(_0x3fd2('0xe'))(new Redis(config[_0x3fd2('0xd')]));require(_0x3fd2('0xf'))[_0x3fd2('0x10')](socket);function respondWithRpcPromise(_0x3b6978,_0x848eee,_0x27d790){return new BPromise(function(_0x38e1da,_0x5b049a){return client[_0x3fd2('0x11')](_0x3b6978,_0x27d790)[_0x3fd2('0x12')](function(_0x5d824b){logger['info'](_0x3fd2('0x13'),_0x848eee,_0x3fd2('0x14'));logger[_0x3fd2('0x15')](_0x3fd2('0x16'),_0x848eee,_0x3fd2('0x14'),JSON[_0x3fd2('0x17')](_0x5d824b));if(_0x5d824b[_0x3fd2('0x18')]){if(_0x5d824b[_0x3fd2('0x18')][_0x3fd2('0x19')]===0x1f4){logger[_0x3fd2('0x18')]('MailAccount,\x20%s,\x20%s',_0x848eee,_0x5d824b['error'][_0x3fd2('0x1a')]);return _0x5b049a(_0x5d824b[_0x3fd2('0x18')][_0x3fd2('0x1a')]);}logger[_0x3fd2('0x18')](_0x3fd2('0x13'),_0x848eee,_0x5d824b[_0x3fd2('0x18')][_0x3fd2('0x1a')]);return _0x38e1da(_0x5d824b[_0x3fd2('0x18')][_0x3fd2('0x1a')]);}else{logger[_0x3fd2('0x1b')](_0x3fd2('0x13'),_0x848eee,_0x3fd2('0x14'));_0x38e1da(_0x5d824b[_0x3fd2('0x1c')]['message']);}})[_0x3fd2('0x1d')](function(_0x1f1ac5){logger[_0x3fd2('0x18')]('MailAccount,\x20%s,\x20%s',_0x848eee,_0x1f1ac5);_0x5b049a(_0x1f1ac5);});});}exports['GetMailAccount']=function(_0x1a31a3){var _0x5a9c60=this;return new Promise(function(_0x2a214f,_0x1edc7d){return db['MailAccount'][_0x3fd2('0x1e')]({'raw':_0x1a31a3['options']?_0x1a31a3[_0x3fd2('0x1f')]['raw']===undefined?!![]:![]:!![],'where':_0x1a31a3[_0x3fd2('0x1f')]?_0x1a31a3[_0x3fd2('0x1f')][_0x3fd2('0x20')]||null:null,'attributes':_0x1a31a3[_0x3fd2('0x1f')]?_0x1a31a3[_0x3fd2('0x1f')]['attributes']||null:null,'limit':_0x1a31a3[_0x3fd2('0x1f')]?_0x1a31a3[_0x3fd2('0x1f')]['limit']||null:null,'include':_0x1a31a3['options']?_0x1a31a3[_0x3fd2('0x1f')][_0x3fd2('0x21')]?_[_0x3fd2('0x22')](_0x1a31a3[_0x3fd2('0x1f')]['include'],function(_0x31d1f2){return{'model':db[_0x31d1f2[_0x3fd2('0x23')]],'as':_0x31d1f2['as'],'attributes':_0x31d1f2[_0x3fd2('0x24')],'include':_0x31d1f2['include']?_[_0x3fd2('0x22')](_0x31d1f2['include'],function(_0x472376){return{'model':db[_0x472376[_0x3fd2('0x23')]],'as':_0x472376['as'],'attributes':_0x472376[_0x3fd2('0x24')],'include':_0x472376[_0x3fd2('0x21')]?_[_0x3fd2('0x22')](_0x472376[_0x3fd2('0x21')],function(_0xfe79ff){return{'model':db[_0xfe79ff[_0x3fd2('0x23')]],'as':_0xfe79ff['as'],'attributes':_0xfe79ff['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x1bc2fc){logger[_0x3fd2('0x1b')](_0x3fd2('0x25'),_0x1a31a3);logger['debug'](_0x3fd2('0x25'),_0x1a31a3,JSON[_0x3fd2('0x17')](_0x1bc2fc));_0x2a214f(_0x1bc2fc);})[_0x3fd2('0x1d')](function(_0x39ac2e){logger[_0x3fd2('0x18')](_0x3fd2('0x25'),_0x39ac2e[_0x3fd2('0x1a')],_0x1a31a3);_0x1edc7d(_0x5a9c60[_0x3fd2('0x18')](0x1f4,_0x39ac2e[_0x3fd2('0x1a')]));});});};exports[_0x3fd2('0x26')]=function(_0x2e6ebb){var _0x12da8b=this;return new Promise(function(_0x444fa6,_0x15e3c3){return db[_0x3fd2('0x27')][_0x3fd2('0x28')]({'raw':_0x2e6ebb[_0x3fd2('0x1f')]?_0x2e6ebb[_0x3fd2('0x1f')][_0x3fd2('0x29')]===undefined?!![]:![]:!![],'where':_0x2e6ebb[_0x3fd2('0x1f')]?_0x2e6ebb[_0x3fd2('0x1f')][_0x3fd2('0x20')]||null:null,'attributes':_0x2e6ebb['options']?_0x2e6ebb['options'][_0x3fd2('0x24')]||null:null,'include':_0x2e6ebb[_0x3fd2('0x1f')]?_0x2e6ebb[_0x3fd2('0x1f')]['include']?_[_0x3fd2('0x22')](_0x2e6ebb[_0x3fd2('0x1f')]['include'],function(_0x40482e){return{'model':db[_0x40482e[_0x3fd2('0x23')]],'as':_0x40482e['as'],'attributes':_0x40482e[_0x3fd2('0x24')],'include':_0x40482e[_0x3fd2('0x21')]?_[_0x3fd2('0x22')](_0x40482e[_0x3fd2('0x21')],function(_0x67ecc4){return{'model':db[_0x67ecc4[_0x3fd2('0x23')]],'as':_0x67ecc4['as'],'attributes':_0x67ecc4[_0x3fd2('0x24')],'include':_0x67ecc4[_0x3fd2('0x21')]?_[_0x3fd2('0x22')](_0x67ecc4[_0x3fd2('0x21')],function(_0x5003b3){return{'model':db[_0x5003b3[_0x3fd2('0x23')]],'as':_0x5003b3['as'],'attributes':_0x5003b3[_0x3fd2('0x24')]};}):[]};}):[]};}):[]:[]})[_0x3fd2('0x12')](function(_0x60d5ed){logger['info']('ShowMailAccount',_0x2e6ebb);logger[_0x3fd2('0x15')]('ShowMailAccount',_0x2e6ebb,JSON[_0x3fd2('0x17')](_0x60d5ed));_0x444fa6(_0x60d5ed);})['catch'](function(_0x2c8a6e){logger[_0x3fd2('0x18')](_0x3fd2('0x26'),_0x2c8a6e[_0x3fd2('0x1a')],_0x2e6ebb);_0x15e3c3(_0x12da8b['error'](0x1f4,_0x2c8a6e[_0x3fd2('0x1a')]));});});};exports[_0x3fd2('0x2a')]=function(_0x2cc542){var _0x39737e=this;return new Promise(function(_0x145d51,_0x2087f1){var _0x1ceada={'body':_0x2cc542[_0x3fd2('0x2b')],'channel':_0x3fd2('0x2c')};var _0x10969a=_[_0x3fd2('0x2d')](_[_0x3fd2('0x2e')](db[_0x3fd2('0x2f')]['rawAttributes']),[_0x3fd2('0x30'),_0x3fd2('0x31'),_0x3fd2('0x32'),'ListId']);var _0x2ed225=![];if(_0x2cc542[_0x3fd2('0x2b')]['id']){delete _0x2cc542[_0x3fd2('0x2b')]['id'];}if(_[_0x3fd2('0x33')](_0x2cc542[_0x3fd2('0x2b')][_0x3fd2('0x34')])){return _0x2087f1(_0x39737e[_0x3fd2('0x18')](0x1f4,_0x3fd2('0x35')));}if(_['isNil'](_0x2cc542['body'][_0x3fd2('0x2b')])||_0x2cc542[_0x3fd2('0x2b')]['body']===''){return _0x2087f1(_0x39737e['error'](0x1f4,_0x3fd2('0x36')));}if(_[_0x3fd2('0x33')](_0x2cc542[_0x3fd2('0x2b')][_0x3fd2('0x37')])){return _0x2087f1(_0x39737e[_0x3fd2('0x18')](0x1f4,'mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x10969a));}if(!_[_0x3fd2('0x38')](_0x10969a,_0x2cc542['body']['mapKey'])){return _0x2087f1(_0x39737e[_0x3fd2('0x18')](0x1f4,_0x3fd2('0x39')+_0x10969a));}var _0x3fddbe={};_0x3fddbe[_0x2cc542[_0x3fd2('0x2b')]['mapKey']]=_0x2cc542[_0x3fd2('0x2b')][_0x3fd2('0x34')];return db[_0x3fd2('0x27')][_0x3fd2('0x28')]({'where':{'id':_0x2cc542[_0x3fd2('0x3a')]['id']},'include':[{'model':db[_0x3fd2('0x3b')],'as':_0x3fd2('0x3c'),'include':[{'model':db['CmContact'],'as':'Contacts','where':_0x3fddbe,'limit':0x1,'order':[[_0x3fd2('0x31'),_0x3fd2('0x3d')]]}]},{'model':db[_0x3fd2('0x3e')],'as':_0x3fd2('0x3f')},{'model':db[_0x3fd2('0x40')],'as':_0x3fd2('0x41')}]})[_0x3fd2('0x12')](function(_0x15844c){if(_0x15844c&&_0x15844c[_0x3fd2('0x3c')]){var _0xd56a3=_0x15844c[_0x3fd2('0x42')]({'plain':!![]});_0x1ceada['account']=_[_0x3fd2('0x43')](_0xd56a3,['Applications',_0x3fd2('0x3c')]);_0x1ceada[_0x3fd2('0x44')]=_0xd56a3[_0x3fd2('0x3f')];_0x1ceada['list']=_0xd56a3[_0x3fd2('0x3c')];_0x1ceada[_0x3fd2('0x44')]=_[_0x3fd2('0x45')](_0x1ceada[_0x3fd2('0x44')],['priority'],['asc']);if(_0x1ceada['account']&&_0x1ceada[_0x3fd2('0x3a')][_0x3fd2('0x46')]){_0x1ceada[_0x3fd2('0x44')]['push']({'id':0x0,'priority':_0x1ceada[_0x3fd2('0x44')][_0x3fd2('0x47')]+0x1,'app':_0x3fd2('0x48'),'appdata':_0x3fd2('0x46'),'interval':'*,*,*,*'});}if(_0x1ceada[_0x3fd2('0x3a')][_0x3fd2('0x3f')]){delete _0x1ceada[_0x3fd2('0x3a')][_0x3fd2('0x3f')];}if(_0x1ceada[_0x3fd2('0x3a')][_0x3fd2('0x3c')]){delete _0x1ceada[_0x3fd2('0x3a')]['List'];}if(_0xd56a3['List']['Contacts'][_0x3fd2('0x47')]){return _0xd56a3[_0x3fd2('0x3c')][_0x3fd2('0x49')][0x0];}var _0x14fc81=_['defaults'](_0x2cc542[_0x3fd2('0x2b')],{'firstName':_0x2cc542['body'][_0x3fd2('0x34')],'ListId':_0xd56a3[_0x3fd2('0x4a')]});_0x14fc81[_0x2cc542[_0x3fd2('0x2b')][_0x3fd2('0x37')]]=_0x2cc542[_0x3fd2('0x2b')][_0x3fd2('0x34')];return db[_0x3fd2('0x2f')][_0x3fd2('0x4b')](_0x14fc81);}else{throw new Error(_0x3fd2('0x4c'));}})[_0x3fd2('0x12')](function(_0x334e78){_0x1ceada['contact']=_0x334e78;if(_0x334e78){if(!_0x2cc542['body']['message'][_0x3fd2('0x4d')]){_0x2cc542[_0x3fd2('0x2b')][_0x3fd2('0x1a')][_0x3fd2('0x4d')]=rs['generate']()+'\x20'+_0x2cc542[_0x3fd2('0x2b')][_0x3fd2('0x1a')]['from'];}var _0xbd74e6={'ContactId':_0x334e78['id'],'MailAccountId':_0x2cc542[_0x3fd2('0x3a')]['id'],'inReplyTo':_0x2cc542['body']['message'][_0x3fd2('0x4d')],'to':_0x2cc542[_0x3fd2('0x2b')][_0x3fd2('0x1a')][_0x3fd2('0x34')],'cc':_0x2cc542[_0x3fd2('0x2b')]['message']['cc'],'subject':_0x2cc542[_0x3fd2('0x2b')][_0x3fd2('0x1a')]['subject'],'attach':_0x2cc542[_0x3fd2('0x2b')][_0x3fd2('0x1a')]['attach'],'lastMsgAt':moment()[_0x3fd2('0x4e')](_0x3fd2('0x4f')),'lastMsgDirection':'in'};return db[_0x3fd2('0x50')][_0x3fd2('0x28')]({'where':{'closed':![],'MailAccountId':_0x2cc542[_0x3fd2('0x3a')]['id']},'include':[{'model':db[_0x3fd2('0x51')],'as':_0x3fd2('0x52'),'attributes':[_0x3fd2('0x4d')],'where':{'messageId':_0x2cc542[_0x3fd2('0x2b')][_0x3fd2('0x1a')][_0x3fd2('0x53')]}}]})[_0x3fd2('0x12')](function(_0x8eef93){if(_0x8eef93){return[_0x8eef93,![]];}return db['MailInteraction'][_0x3fd2('0x4b')](_0xbd74e6)[_0x3fd2('0x12')](function(_0x1994b6){return[_0x1994b6,!![]];});});}else{throw new Error(_0x3fd2('0x54'));}})[_0x3fd2('0x55')](function(_0x4a6f7b,_0x4b5932){if(_0x4a6f7b){_0x2ed225=_0x4b5932;if(!_0x4b5932){return _0x4a6f7b[_0x3fd2('0x56')]({'inReplyTo':_0x2cc542[_0x3fd2('0x2b')]['message']['messageId'],'to':_0x2cc542[_0x3fd2('0x2b')]['message']['from'],'cc':_0x2cc542[_0x3fd2('0x2b')][_0x3fd2('0x1a')]['cc'],'subject':_0x2cc542['body'][_0x3fd2('0x1a')][_0x3fd2('0x57')],'attach':_0x4a6f7b[_0x3fd2('0x58')]?_0x4a6f7b[_0x3fd2('0x58')]:_0x2cc542['body'][_0x3fd2('0x1a')][_0x3fd2('0x58')],'substatus':null,'substatusAt':moment()[_0x3fd2('0x4e')](_0x3fd2('0x4f')),'lastMsgAt':moment()[_0x3fd2('0x4e')]('YYYY-MM-DD\x20HH:mm:ss'),'lastMsgDirection':'in'});}else{return _0x4a6f7b;}}})[_0x3fd2('0x12')](function(_0x4c94fc){_0x1ceada[_0x3fd2('0x59')]=_0x4c94fc['get']({'plain':!![]});_0x1ceada[_0x3fd2('0x59')][_0x3fd2('0x5a')]=_0x2ed225;return db[_0x3fd2('0x51')][_0x3fd2('0x4b')]({'body':_0x2cc542[_0x3fd2('0x2b')][_0x3fd2('0x2b')],'MailAccountId':_0x2cc542[_0x3fd2('0x3a')]['id'],'MailInteractionId':_0x4c94fc['id'],'direction':'in','ContactId':_0x1ceada[_0x3fd2('0x5b')]['id'],'messageId':_0x2cc542[_0x3fd2('0x2b')]['message'][_0x3fd2('0x4d')],'from':_0x2cc542[_0x3fd2('0x2b')]['message'][_0x3fd2('0x34')],'to':_0x2cc542[_0x3fd2('0x2b')][_0x3fd2('0x1a')]['to'],'cc':_0x2cc542[_0x3fd2('0x2b')][_0x3fd2('0x1a')]['cc'],'subject':_0x2cc542[_0x3fd2('0x2b')][_0x3fd2('0x1a')]['subject'],'attach':_0x2cc542[_0x3fd2('0x2b')]['message'][_0x3fd2('0x58')],'Attachments':_0x2cc542[_0x3fd2('0x2b')]['message'][_0x3fd2('0x5c')],'originTo':_0x2cc542[_0x3fd2('0x2b')][_0x3fd2('0x1a')][_0x3fd2('0x5d')],'originCc':_0x2cc542['body'][_0x3fd2('0x1a')][_0x3fd2('0x5e')],'bcc':_0x2cc542[_0x3fd2('0x2b')][_0x3fd2('0x1a')]['bcc'],'ChatWebsiteId':_0x2cc542[_0x3fd2('0x2b')][_0x3fd2('0x1a')]['ChatWebsiteId']||null,'originChannel':_0x2cc542[_0x3fd2('0x2b')][_0x3fd2('0x1a')][_0x3fd2('0x5f')]||_0x3fd2('0x60'),'ChatOfflineMessageId':_0x2cc542['body'][_0x3fd2('0x1a')]['ChatOfflineMessageId']||null},{'include':[{'model':db[_0x3fd2('0x61')],'as':_0x3fd2('0x62')}]});})['then'](function(_0x597012){_0x1ceada[_0x3fd2('0x1a')]=_0x597012;if(_0x1ceada[_0x3fd2('0x59')][_0x3fd2('0x63')]){return db[_0x3fd2('0x64')]['find']({'attributes':['id',_0x3fd2('0x65')],'where':{'id':_0x1ceada[_0x3fd2('0x59')][_0x3fd2('0x63')]}})[_0x3fd2('0x12')](function(_0x2d3d9b){if(_0x2d3d9b){_0x1ceada[_0x3fd2('0x44')][_0x3fd2('0x66')]({'id':0x0,'priority':0x0,'app':'agent','appdata':_0x2d3d9b[_0x3fd2('0x65')]+','+(_0x1ceada[_0x3fd2('0x3a')][_0x3fd2('0x67')]||0xa),'interval':_0x3fd2('0x68')});}return respondWithRpcPromise(_0x3fd2('0x69'),'startRouting',_0x1ceada);});}return respondWithRpcPromise('Start','startRouting',_0x1ceada);})[_0x3fd2('0x12')](function(_0x31536d){_0x145d51(_0x31536d);})[_0x3fd2('0x1d')](function(_0x2202ed){_0x2087f1(_0x39737e[_0x3fd2('0x18')](0x1f4,_0x2202ed['message']));});});};
\ No newline at end of file
+var _0x186a=['User','UserId','unshift','agent','name','waitForTheAssignedAgent','Start','startRouting','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','redis','defaults','localhost','socket.io-emitter','request','MailAccount,\x20%s,\x20%s','request\x20sent','debug','MailAccount,\x20%s,\x20%s,\x20%s','error','code','message','info','result','catch','GetMailAccount','MailAccount','options','where','attributes','limit','include','map','model','then','ShowMailAccount','find','stringify','NotifyMailAccount','mail','difference','createdAt','CompanyId','ListId','body','isNil','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','from','account','CmList','CmContact','Contacts','updatedAt','MailApplication','Applications','MailServerOut','Smtp','List','get','omit','applications','list','orderBy','priority','autoclose','push','length','close','*,*,*,*','create','List\x20not\x20found','messageId','generate','subject','attach','format','YYYY-MM-DD\x20HH:mm:ss','MailInteraction','MailMessage','Messages','inReplyTo','update','interaction','attachments','originTo','bcc','ChatWebsiteId','originChannel','Email','Attachment','Attachments'];(function(_0x132d12,_0x2c9799){var _0x1c3163=function(_0x7d9136){while(--_0x7d9136){_0x132d12['push'](_0x132d12['shift']());}};_0x1c3163(++_0x2c9799);}(_0x186a,0xd8));var _0xa186=function(_0x5d3151,_0x5cf478){_0x5d3151=_0x5d3151-0x0;var _0x42a7ce=_0x186a[_0x5d3151];return _0x42a7ce;};'use strict';var _=require(_0xa186('0x0'));var util=require('util');var moment=require(_0xa186('0x1'));var BPromise=require(_0xa186('0x2'));var rs=require(_0xa186('0x3'));var fs=require('fs');var Redis=require(_0xa186('0x4'));var db=require(_0xa186('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0xa186('0x6'))(_0xa186('0x7'));var config=require(_0xa186('0x8'));var jayson=require(_0xa186('0x9'));var client=jayson['client']['http']({'port':0x232c});config[_0xa186('0xa')]=_[_0xa186('0xb')](config['redis'],{'host':_0xa186('0xc'),'port':0x18eb});var socket=require(_0xa186('0xd'))(new Redis(config[_0xa186('0xa')]));require('./mailAccount.socket')['register'](socket);function respondWithRpcPromise(_0x52ea82,_0x1e9c97,_0x4e6c6c){return new BPromise(function(_0x2f5c8,_0x46a5e3){return client[_0xa186('0xe')](_0x52ea82,_0x4e6c6c)['then'](function(_0x3bcca9){logger['info'](_0xa186('0xf'),_0x1e9c97,_0xa186('0x10'));logger[_0xa186('0x11')](_0xa186('0x12'),_0x1e9c97,_0xa186('0x10'),JSON['stringify'](_0x3bcca9));if(_0x3bcca9[_0xa186('0x13')]){if(_0x3bcca9[_0xa186('0x13')][_0xa186('0x14')]===0x1f4){logger['error'](_0xa186('0xf'),_0x1e9c97,_0x3bcca9[_0xa186('0x13')][_0xa186('0x15')]);return _0x46a5e3(_0x3bcca9[_0xa186('0x13')][_0xa186('0x15')]);}logger[_0xa186('0x13')](_0xa186('0xf'),_0x1e9c97,_0x3bcca9[_0xa186('0x13')][_0xa186('0x15')]);return _0x2f5c8(_0x3bcca9[_0xa186('0x13')][_0xa186('0x15')]);}else{logger[_0xa186('0x16')](_0xa186('0xf'),_0x1e9c97,_0xa186('0x10'));_0x2f5c8(_0x3bcca9[_0xa186('0x17')][_0xa186('0x15')]);}})[_0xa186('0x18')](function(_0x4121c8){logger[_0xa186('0x13')](_0xa186('0xf'),_0x1e9c97,_0x4121c8);_0x46a5e3(_0x4121c8);});});}exports[_0xa186('0x19')]=function(_0x53d98c){var _0x3afdab=this;return new Promise(function(_0xfebdf1,_0x2d6f1f){return db[_0xa186('0x1a')]['findAll']({'raw':_0x53d98c[_0xa186('0x1b')]?_0x53d98c[_0xa186('0x1b')]['raw']===undefined?!![]:![]:!![],'where':_0x53d98c[_0xa186('0x1b')]?_0x53d98c[_0xa186('0x1b')][_0xa186('0x1c')]||null:null,'attributes':_0x53d98c[_0xa186('0x1b')]?_0x53d98c[_0xa186('0x1b')][_0xa186('0x1d')]||null:null,'limit':_0x53d98c[_0xa186('0x1b')]?_0x53d98c['options'][_0xa186('0x1e')]||null:null,'include':_0x53d98c[_0xa186('0x1b')]?_0x53d98c[_0xa186('0x1b')][_0xa186('0x1f')]?_[_0xa186('0x20')](_0x53d98c['options']['include'],function(_0xe65e81){return{'model':db[_0xe65e81[_0xa186('0x21')]],'as':_0xe65e81['as'],'attributes':_0xe65e81[_0xa186('0x1d')],'include':_0xe65e81['include']?_[_0xa186('0x20')](_0xe65e81[_0xa186('0x1f')],function(_0x4d8c2d){return{'model':db[_0x4d8c2d[_0xa186('0x21')]],'as':_0x4d8c2d['as'],'attributes':_0x4d8c2d[_0xa186('0x1d')],'include':_0x4d8c2d['include']?_[_0xa186('0x20')](_0x4d8c2d[_0xa186('0x1f')],function(_0x3387ee){return{'model':db[_0x3387ee['model']],'as':_0x3387ee['as'],'attributes':_0x3387ee['attributes']};}):[]};}):[]};}):[]:[]})[_0xa186('0x22')](function(_0x1f9a7c){logger[_0xa186('0x16')](_0xa186('0x19'),_0x53d98c);logger['debug'](_0xa186('0x19'),_0x53d98c,JSON['stringify'](_0x1f9a7c));_0xfebdf1(_0x1f9a7c);})[_0xa186('0x18')](function(_0x44253a){logger[_0xa186('0x13')](_0xa186('0x19'),_0x44253a[_0xa186('0x15')],_0x53d98c);_0x2d6f1f(_0x3afdab[_0xa186('0x13')](0x1f4,_0x44253a[_0xa186('0x15')]));});});};exports[_0xa186('0x23')]=function(_0x25d3f6){var _0x8ad076=this;return new Promise(function(_0x257c18,_0x32ce93){return db[_0xa186('0x1a')][_0xa186('0x24')]({'raw':_0x25d3f6[_0xa186('0x1b')]?_0x25d3f6['options']['raw']===undefined?!![]:![]:!![],'where':_0x25d3f6[_0xa186('0x1b')]?_0x25d3f6['options'][_0xa186('0x1c')]||null:null,'attributes':_0x25d3f6[_0xa186('0x1b')]?_0x25d3f6[_0xa186('0x1b')][_0xa186('0x1d')]||null:null,'include':_0x25d3f6[_0xa186('0x1b')]?_0x25d3f6['options'][_0xa186('0x1f')]?_[_0xa186('0x20')](_0x25d3f6['options'][_0xa186('0x1f')],function(_0x437447){return{'model':db[_0x437447[_0xa186('0x21')]],'as':_0x437447['as'],'attributes':_0x437447['attributes'],'include':_0x437447[_0xa186('0x1f')]?_['map'](_0x437447['include'],function(_0x44505a){return{'model':db[_0x44505a[_0xa186('0x21')]],'as':_0x44505a['as'],'attributes':_0x44505a['attributes'],'include':_0x44505a[_0xa186('0x1f')]?_[_0xa186('0x20')](_0x44505a['include'],function(_0x52e3d8){return{'model':db[_0x52e3d8[_0xa186('0x21')]],'as':_0x52e3d8['as'],'attributes':_0x52e3d8[_0xa186('0x1d')]};}):[]};}):[]};}):[]:[]})[_0xa186('0x22')](function(_0x477e52){logger[_0xa186('0x16')](_0xa186('0x23'),_0x25d3f6);logger[_0xa186('0x11')](_0xa186('0x23'),_0x25d3f6,JSON[_0xa186('0x25')](_0x477e52));_0x257c18(_0x477e52);})[_0xa186('0x18')](function(_0x45ab3d){logger[_0xa186('0x13')](_0xa186('0x23'),_0x45ab3d['message'],_0x25d3f6);_0x32ce93(_0x8ad076[_0xa186('0x13')](0x1f4,_0x45ab3d[_0xa186('0x15')]));});});};exports[_0xa186('0x26')]=function(_0x299175){var _0x54bedb=this;return new Promise(function(_0xcfba85,_0x5ed1c5){var _0xdade24={'body':_0x299175['body'],'channel':_0xa186('0x27')};var _0x581d37=_[_0xa186('0x28')](_['keys'](db['CmContact']['rawAttributes']),[_0xa186('0x29'),'updatedAt',_0xa186('0x2a'),_0xa186('0x2b')]);var _0x5f13fa=![];if(_0x299175[_0xa186('0x2c')]['id']){delete _0x299175[_0xa186('0x2c')]['id'];}if(_[_0xa186('0x2d')](_0x299175[_0xa186('0x2c')]['from'])){return _0x5ed1c5(_0x54bedb[_0xa186('0x13')](0x1f4,_0xa186('0x2e')));}if(_[_0xa186('0x2d')](_0x299175['body']['body'])||_0x299175[_0xa186('0x2c')]['body']===''){return _0x5ed1c5(_0x54bedb[_0xa186('0x13')](0x1f4,_0xa186('0x2f')));}if(_['isNil'](_0x299175[_0xa186('0x2c')][_0xa186('0x30')])){return _0x5ed1c5(_0x54bedb[_0xa186('0x13')](0x1f4,_0xa186('0x31')+_0x581d37));}if(!_[_0xa186('0x32')](_0x581d37,_0x299175[_0xa186('0x2c')][_0xa186('0x30')])){return _0x5ed1c5(_0x54bedb['error'](0x1f4,_0xa186('0x33')+_0x581d37));}var _0x41b1ca={};_0x41b1ca[_0x299175['body'][_0xa186('0x30')]]=_0x299175[_0xa186('0x2c')][_0xa186('0x34')];return db[_0xa186('0x1a')][_0xa186('0x24')]({'where':{'id':_0x299175[_0xa186('0x35')]['id']},'include':[{'model':db[_0xa186('0x36')],'as':'List','include':[{'model':db[_0xa186('0x37')],'as':_0xa186('0x38'),'where':_0x41b1ca,'limit':0x1,'order':[[_0xa186('0x39'),'DESC']]}]},{'model':db[_0xa186('0x3a')],'as':_0xa186('0x3b')},{'model':db[_0xa186('0x3c')],'as':_0xa186('0x3d')}]})['then'](function(_0x171734){if(_0x171734&&_0x171734[_0xa186('0x3e')]){var _0x2c5d7b=_0x171734[_0xa186('0x3f')]({'plain':!![]});_0xdade24['account']=_[_0xa186('0x40')](_0x2c5d7b,[_0xa186('0x3b'),_0xa186('0x3e')]);_0xdade24[_0xa186('0x41')]=_0x2c5d7b['Applications'];_0xdade24[_0xa186('0x42')]=_0x2c5d7b[_0xa186('0x3e')];_0xdade24[_0xa186('0x41')]=_[_0xa186('0x43')](_0xdade24[_0xa186('0x41')],[_0xa186('0x44')],['asc']);if(_0xdade24[_0xa186('0x35')]&&_0xdade24['account'][_0xa186('0x45')]){_0xdade24[_0xa186('0x41')][_0xa186('0x46')]({'id':0x0,'priority':_0xdade24[_0xa186('0x41')][_0xa186('0x47')]+0x1,'app':_0xa186('0x48'),'appdata':_0xa186('0x45'),'interval':_0xa186('0x49')});}if(_0xdade24[_0xa186('0x35')][_0xa186('0x3b')]){delete _0xdade24[_0xa186('0x35')]['Applications'];}if(_0xdade24[_0xa186('0x35')]['List']){delete _0xdade24[_0xa186('0x35')][_0xa186('0x3e')];}if(_0x2c5d7b[_0xa186('0x3e')][_0xa186('0x38')][_0xa186('0x47')]){return _0x2c5d7b['List'][_0xa186('0x38')][0x0];}var _0x5c5572=_[_0xa186('0xb')](_0x299175['body'],{'firstName':_0x299175[_0xa186('0x2c')][_0xa186('0x34')],'ListId':_0x2c5d7b[_0xa186('0x2b')]});_0x5c5572[_0x299175['body'][_0xa186('0x30')]]=_0x299175[_0xa186('0x2c')][_0xa186('0x34')];return db['CmContact'][_0xa186('0x4a')](_0x5c5572);}else{throw new Error(_0xa186('0x4b'));}})['then'](function(_0x1d0721){_0xdade24['contact']=_0x1d0721;if(_0x1d0721){if(!_0x299175[_0xa186('0x2c')]['message'][_0xa186('0x4c')]){_0x299175[_0xa186('0x2c')][_0xa186('0x15')][_0xa186('0x4c')]=rs[_0xa186('0x4d')]()+'\x20'+_0x299175['body'][_0xa186('0x15')][_0xa186('0x34')];}var _0x54d87b={'ContactId':_0x1d0721['id'],'MailAccountId':_0x299175['account']['id'],'inReplyTo':_0x299175[_0xa186('0x2c')][_0xa186('0x15')][_0xa186('0x4c')],'to':_0x299175[_0xa186('0x2c')][_0xa186('0x15')]['from'],'cc':_0x299175['body']['message']['cc'],'subject':_0x299175[_0xa186('0x2c')]['message'][_0xa186('0x4e')],'attach':_0x299175[_0xa186('0x2c')][_0xa186('0x15')][_0xa186('0x4f')],'lastMsgAt':moment()[_0xa186('0x50')](_0xa186('0x51')),'lastMsgDirection':'in'};return db[_0xa186('0x52')][_0xa186('0x24')]({'where':{'closed':![],'MailAccountId':_0x299175['account']['id']},'include':[{'model':db[_0xa186('0x53')],'as':_0xa186('0x54'),'attributes':[_0xa186('0x4c')],'where':{'messageId':_0x299175['body']['message'][_0xa186('0x55')]}}]})[_0xa186('0x22')](function(_0x4b6882){if(_0x4b6882){return[_0x4b6882,![]];}return db['MailInteraction']['create'](_0x54d87b)[_0xa186('0x22')](function(_0x4c43d9){return[_0x4c43d9,!![]];});});}else{throw new Error('Contact\x20not\x20found');}})['spread'](function(_0x2aa787,_0x196279){if(_0x2aa787){_0x5f13fa=_0x196279;if(!_0x196279){return _0x2aa787[_0xa186('0x56')]({'inReplyTo':_0x299175[_0xa186('0x2c')][_0xa186('0x15')][_0xa186('0x4c')],'to':_0x299175[_0xa186('0x2c')][_0xa186('0x15')][_0xa186('0x34')],'cc':_0x299175['body'][_0xa186('0x15')]['cc'],'subject':_0x299175['body'][_0xa186('0x15')][_0xa186('0x4e')],'attach':_0x2aa787[_0xa186('0x4f')]?_0x2aa787['attach']:_0x299175[_0xa186('0x2c')][_0xa186('0x15')][_0xa186('0x4f')],'substatus':null,'substatusAt':moment()[_0xa186('0x50')](_0xa186('0x51')),'lastMsgAt':moment()[_0xa186('0x50')](_0xa186('0x51')),'lastMsgDirection':'in'});}else{return _0x2aa787;}}})[_0xa186('0x22')](function(_0x54c4c4){_0xdade24['interaction']=_0x54c4c4[_0xa186('0x3f')]({'plain':!![]});_0xdade24[_0xa186('0x57')]['created']=_0x5f13fa;return db[_0xa186('0x53')][_0xa186('0x4a')]({'body':_0x299175[_0xa186('0x2c')][_0xa186('0x2c')],'MailAccountId':_0x299175[_0xa186('0x35')]['id'],'MailInteractionId':_0x54c4c4['id'],'direction':'in','ContactId':_0xdade24['contact']['id'],'messageId':_0x299175['body'][_0xa186('0x15')][_0xa186('0x4c')],'from':_0x299175[_0xa186('0x2c')][_0xa186('0x15')][_0xa186('0x34')],'to':_0x299175[_0xa186('0x2c')]['message']['to'],'cc':_0x299175[_0xa186('0x2c')]['message']['cc'],'subject':_0x299175[_0xa186('0x2c')][_0xa186('0x15')][_0xa186('0x4e')],'attach':_0x299175['body'][_0xa186('0x15')][_0xa186('0x4f')],'Attachments':_0x299175[_0xa186('0x2c')]['message'][_0xa186('0x58')],'originTo':_0x299175['body'][_0xa186('0x15')][_0xa186('0x59')],'originCc':_0x299175['body'][_0xa186('0x15')]['originCc'],'bcc':_0x299175[_0xa186('0x2c')][_0xa186('0x15')][_0xa186('0x5a')],'ChatWebsiteId':_0x299175[_0xa186('0x2c')][_0xa186('0x15')][_0xa186('0x5b')]||null,'originChannel':_0x299175[_0xa186('0x2c')][_0xa186('0x15')][_0xa186('0x5c')]||_0xa186('0x5d'),'ChatOfflineMessageId':_0x299175[_0xa186('0x2c')][_0xa186('0x15')]['ChatOfflineMessageId']||null},{'include':[{'model':db[_0xa186('0x5e')],'as':_0xa186('0x5f')}]});})['then'](function(_0x1162a5){_0xdade24[_0xa186('0x15')]=_0x1162a5;if(_0xdade24[_0xa186('0x57')]['UserId']){return db[_0xa186('0x60')][_0xa186('0x24')]({'attributes':['id','name'],'where':{'id':_0xdade24[_0xa186('0x57')][_0xa186('0x61')]}})[_0xa186('0x22')](function(_0x50bb73){if(_0x50bb73){_0xdade24['applications'][_0xa186('0x62')]({'id':0x0,'priority':0x0,'app':_0xa186('0x63'),'appdata':_0x50bb73[_0xa186('0x64')]+','+(_0xdade24[_0xa186('0x35')][_0xa186('0x65')]||0xa),'interval':'*,*,*,*'});}return respondWithRpcPromise(_0xa186('0x66'),'startRouting',_0xdade24);});}return respondWithRpcPromise('Start',_0xa186('0x67'),_0xdade24);})[_0xa186('0x22')](function(_0x2cf69d){_0xcfba85(_0x2cf69d);})['catch'](function(_0x2bc20c){_0x5ed1c5(_0x54bedb[_0xa186('0x13')](0x1f4,_0x2bc20c[_0xa186('0x15')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x38f9=['mailAccount:','remove','update','removeListener','length'];(function(_0xbe7189,_0x541242){var _0x4b433e=function(_0x4c849b){while(--_0x4c849b){_0xbe7189['push'](_0xbe7189['shift']());}};_0x4b433e(++_0x541242);}(_0x38f9,0xd3));var _0x938f=function(_0x1b5aea,_0x3f04b7){_0x1b5aea=_0x1b5aea-0x0;var _0x15cfc6=_0x38f9[_0x1b5aea];return _0x15cfc6;};'use strict';var MailAccountEvents=require('./mailAccount.events');var events=['save',_0x938f('0x0'),_0x938f('0x1')];function createListener(_0x502c36,_0x4b9b44){return function(_0x3c30fa){_0x4b9b44['emit'](_0x502c36,_0x3c30fa);};}function removeListener(_0x5cc294,_0xfb2ab2){return function(){MailAccountEvents[_0x938f('0x2')](_0x5cc294,_0xfb2ab2);};}exports['register']=function(_0x2959d6){for(var _0x26cbd3=0x0,_0x4b3c40=events[_0x938f('0x3')];_0x26cbd3<_0x4b3c40;_0x26cbd3++){var _0x45e31c=events[_0x26cbd3];var _0x5632f9=createListener(_0x938f('0x4')+_0x45e31c,_0x2959d6);MailAccountEvents['on'](_0x45e31c,_0x5632f9);}};
\ No newline at end of file
+var _0x13ef=['emit','removeListener','register','length','./mailAccount.events','save','remove','update'];(function(_0x141749,_0x477b04){var _0x3e6932=function(_0x47b3f2){while(--_0x47b3f2){_0x141749['push'](_0x141749['shift']());}};_0x3e6932(++_0x477b04);}(_0x13ef,0x19c));var _0xf13e=function(_0x40a825,_0x3bac79){_0x40a825=_0x40a825-0x0;var _0x273a54=_0x13ef[_0x40a825];return _0x273a54;};'use strict';var MailAccountEvents=require(_0xf13e('0x0'));var events=[_0xf13e('0x1'),_0xf13e('0x2'),_0xf13e('0x3')];function createListener(_0x58d565,_0x4c045d){return function(_0x56899a){_0x4c045d[_0xf13e('0x4')](_0x58d565,_0x56899a);};}function removeListener(_0x5bd42d,_0xdb684e){return function(){MailAccountEvents[_0xf13e('0x5')](_0x5bd42d,_0xdb684e);};}exports[_0xf13e('0x6')]=function(_0x5223c7){for(var _0x897e34=0x0,_0x29ff3d=events[_0xf13e('0x7')];_0x897e34<_0x29ff3d;_0x897e34++){var _0x58e5de=events[_0x897e34];var _0x19a3dd=createListener('mailAccount:'+_0x58e5de,_0x5223c7);MailAccountEvents['on'](_0x58e5de,_0x19a3dd);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6d3d=['fs-extra','../../components/interaction/service','get','/:id','isAuthenticated','put','update','delete','destroy','exports','multer','util','connect-timeout','express','Router'];(function(_0x344e15,_0x4deaf3){var _0x19b6d3=function(_0x4f258f){while(--_0x4f258f){_0x344e15['push'](_0x344e15['shift']());}};_0x19b6d3(++_0x4deaf3);}(_0x6d3d,0x127));var _0xd6d3=function(_0x5a3e97,_0x22957d){_0x5a3e97=_0x5a3e97-0x0;var _0x1dfd00=_0x6d3d[_0x5a3e97];return _0x1dfd00;};'use strict';var multer=require(_0xd6d3('0x0'));var util=require(_0xd6d3('0x1'));var path=require('path');var timeout=require(_0xd6d3('0x2'));var express=require(_0xd6d3('0x3'));var router=express[_0xd6d3('0x4')]();var fs_extra=require(_0xd6d3('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0xd6d3('0x6'));var config=require('../../config/environment');var controller=require('./mailApplication.controller');router[_0xd6d3('0x7')](_0xd6d3('0x8'),auth[_0xd6d3('0x9')](),controller['show']);router[_0xd6d3('0xa')](_0xd6d3('0x8'),auth[_0xd6d3('0x9')](),controller[_0xd6d3('0xb')]);router[_0xd6d3('0xc')](_0xd6d3('0x8'),auth[_0xd6d3('0x9')](),controller[_0xd6d3('0xd')]);module[_0xd6d3('0xe')]=router;
\ No newline at end of file
+var _0x74ff=['../../config/environment','./mailApplication.controller','/:id','isAuthenticated','show','put','update','delete','destroy','exports','util','path','Router','fs-extra','../../components/interaction/service'];(function(_0x389318,_0x13a53d){var _0x7919e3=function(_0x2985d1){while(--_0x2985d1){_0x389318['push'](_0x389318['shift']());}};_0x7919e3(++_0x13a53d);}(_0x74ff,0x1bd));var _0xf74f=function(_0x412692,_0x5b1286){_0x412692=_0x412692-0x0;var _0xe98e2e=_0x74ff[_0x412692];return _0xe98e2e;};'use strict';var multer=require('multer');var util=require(_0xf74f('0x0'));var path=require(_0xf74f('0x1'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0xf74f('0x2')]();var fs_extra=require(_0xf74f('0x3'));var auth=require('../../components/auth/service');var interaction=require(_0xf74f('0x4'));var config=require(_0xf74f('0x5'));var controller=require(_0xf74f('0x6'));router['get'](_0xf74f('0x7'),auth[_0xf74f('0x8')](),controller[_0xf74f('0x9')]);router[_0xf74f('0xa')](_0xf74f('0x7'),auth[_0xf74f('0x8')](),controller[_0xf74f('0xb')]);router[_0xf74f('0xc')](_0xf74f('0x7'),auth['isAuthenticated'](),controller[_0xf74f('0xd')]);module[_0xf74f('0xe')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbe1d=['TEXT','*,*,*,*','sequelize','exports','INTEGER','STRING','noop'];(function(_0x369889,_0x3fab14){var _0x398b84=function(_0x3313ca){while(--_0x3313ca){_0x369889['push'](_0x369889['shift']());}};_0x398b84(++_0x3fab14);}(_0xbe1d,0x113));var _0xdbe1=function(_0x38d825,_0x357fd6){_0x38d825=_0x38d825-0x0;var _0xc39a03=_0xbe1d[_0x38d825];return _0xc39a03;};'use strict';var Sequelize=require(_0xdbe1('0x0'));module[_0xdbe1('0x1')]={'priority':{'type':Sequelize[_0xdbe1('0x2')],'allowNull':![]},'app':{'type':Sequelize[_0xdbe1('0x3')],'allowNull':![],'defaultValue':_0xdbe1('0x4')},'appdata':{'type':Sequelize[_0xdbe1('0x5')]()},'description':{'type':Sequelize[_0xdbe1('0x3')]},'interval':{'type':Sequelize['STRING'],'defaultValue':_0xdbe1('0x6')}};
\ No newline at end of file
+var _0xb581=['sequelize','INTEGER','STRING','noop','*,*,*,*'];(function(_0x581af1,_0x4f02c5){var _0x54c22e=function(_0x5a7a5a){while(--_0x5a7a5a){_0x581af1['push'](_0x581af1['shift']());}};_0x54c22e(++_0x4f02c5);}(_0xb581,0x7d));var _0x1b58=function(_0x254b10,_0x161b6d){_0x254b10=_0x254b10-0x0;var _0x36e4f7=_0xb581[_0x254b10];return _0x36e4f7;};'use strict';var Sequelize=require(_0x1b58('0x0'));module['exports']={'priority':{'type':Sequelize[_0x1b58('0x1')],'allowNull':![]},'app':{'type':Sequelize[_0x1b58('0x2')],'allowNull':![],'defaultValue':_0x1b58('0x3')},'appdata':{'type':Sequelize['TEXT']()},'description':{'type':Sequelize[_0x1b58('0x2')]},'interval':{'type':Sequelize['STRING'],'defaultValue':_0x1b58('0x4')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xedd9=['query','filters','intersection','model','attributes','fields','length','includeAll','include','merge','options','find','catch','update','body','destroy','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','squel','jsforce','desk.js','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','limit','count','set','apply','then','end','error','stack','send','show','params','keys','MailApplication','rawAttributes'];(function(_0x541260,_0x4c7f2e){var _0x1dd2b5=function(_0x4140de){while(--_0x4140de){_0x541260['push'](_0x541260['shift']());}};_0x1dd2b5(++_0x4c7f2e);}(_0xedd9,0xfc));var _0x9edd=function(_0x247502,_0x565e72){_0x247502=_0x247502-0x0;var _0x39297d=_0xedd9[_0x247502];return _0x39297d;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x9edd('0x0'));var zipdir=require(_0x9edd('0x1'));var jsonpatch=require(_0x9edd('0x2'));var rp=require(_0x9edd('0x3'));var moment=require(_0x9edd('0x4'));var BPromise=require(_0x9edd('0x5'));var Mustache=require(_0x9edd('0x6'));var util=require(_0x9edd('0x7'));var path=require('path');var sox=require(_0x9edd('0x8'));var csv=require(_0x9edd('0x9'));var ejs=require(_0x9edd('0xa'));var fs=require('fs');var fs_extra=require(_0x9edd('0xb'));var _=require('lodash');var squel=require(_0x9edd('0xc'));var crypto=require('crypto');var jsforce=require(_0x9edd('0xd'));var deskjs=require(_0x9edd('0xe'));var toCsv=require(_0x9edd('0x9'));var querystring=require(_0x9edd('0xf'));var Papa=require('papaparse');var Redis=require(_0x9edd('0x10'));var authService=require('../../components/auth/service');var qs=require(_0x9edd('0x11'));var as=require(_0x9edd('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x9edd('0x13'))(_0x9edd('0x14'));var utils=require('../../config/utils');var config=require(_0x9edd('0x15'));var licenseUtil=require(_0x9edd('0x16'));var db=require(_0x9edd('0x17'))['db'];function respondWithStatusCode(_0xfd544a,_0x287ddd){_0x287ddd=_0x287ddd||0xcc;return function(_0x3a7b84){if(_0x3a7b84){return _0xfd544a[_0x9edd('0x18')](_0x287ddd);}return _0xfd544a[_0x9edd('0x19')](_0x287ddd)['end']();};}function respondWithResult(_0x176bfa,_0x44fc7c){_0x44fc7c=_0x44fc7c||0xc8;return function(_0x891832){if(_0x891832){return _0x176bfa[_0x9edd('0x19')](_0x44fc7c)[_0x9edd('0x1a')](_0x891832);}};}function respondWithFilteredResult(_0x338f3c,_0x1042aa){return function(_0x75a4ab){if(_0x75a4ab){var _0x4ea60f=typeof _0x1042aa[_0x9edd('0x1b')]===_0x9edd('0x1c')&&typeof _0x1042aa[_0x9edd('0x1d')]==='undefined';var _0x1b54c0=_0x75a4ab[_0x9edd('0x1e')];var _0x40ba32=_0x4ea60f?0x0:_0x1042aa['offset'];var _0x43dc70=_0x4ea60f?_0x75a4ab['count']:_0x1042aa[_0x9edd('0x1b')]+_0x1042aa[_0x9edd('0x1d')];var _0x4bdb88;if(_0x43dc70>=_0x1b54c0){_0x43dc70=_0x1b54c0;_0x4bdb88=0xc8;}else{_0x4bdb88=0xce;}_0x338f3c['status'](_0x4bdb88);return _0x338f3c[_0x9edd('0x1f')]('Content-Range',_0x40ba32+'-'+_0x43dc70+'/'+_0x1b54c0)[_0x9edd('0x1a')](_0x75a4ab);}return null;};}function patchUpdates(_0x54a03f){return function(_0x535f37){try{jsonpatch[_0x9edd('0x20')](_0x535f37,_0x54a03f,!![]);}catch(_0x1c46a8){return BPromise['reject'](_0x1c46a8);}return _0x535f37['save']();};}function saveUpdates(_0x341d67,_0x186186){return function(_0x477878){if(_0x477878){return _0x477878['update'](_0x341d67)[_0x9edd('0x21')](function(_0x1dca43){return _0x1dca43;});}return null;};}function removeEntity(_0x44a6c1,_0x2ca65f){return function(_0x339a0d){if(_0x339a0d){return _0x339a0d['destroy']()[_0x9edd('0x21')](function(){_0x44a6c1[_0x9edd('0x19')](0xcc)[_0x9edd('0x22')]();});}};}function handleEntityNotFound(_0x2f9f86,_0x310a4d){return function(_0x4d507f){if(!_0x4d507f){_0x2f9f86['sendStatus'](0x194);}return _0x4d507f;};}function handleError(_0x3276ee,_0xfeca7b){_0xfeca7b=_0xfeca7b||0x1f4;return function(_0x8d67aa){logger[_0x9edd('0x23')](_0x8d67aa[_0x9edd('0x24')]);if(_0x8d67aa['name']){delete _0x8d67aa['name'];}_0x3276ee[_0x9edd('0x19')](_0xfeca7b)[_0x9edd('0x25')](_0x8d67aa);};}exports[_0x9edd('0x26')]=function(_0x52746a,_0x238b22){var _0x28cfae={'raw':!![],'where':{'id':_0x52746a[_0x9edd('0x27')]['id']}},_0x2ae8dd={};_0x2ae8dd['model']=_[_0x9edd('0x28')](db[_0x9edd('0x29')][_0x9edd('0x2a')]);_0x2ae8dd[_0x9edd('0x2b')]=_[_0x9edd('0x28')](_0x52746a[_0x9edd('0x2b')]);_0x2ae8dd[_0x9edd('0x2c')]=_[_0x9edd('0x2d')](_0x2ae8dd[_0x9edd('0x2e')],_0x2ae8dd[_0x9edd('0x2b')]);_0x28cfae[_0x9edd('0x2f')]=_[_0x9edd('0x2d')](_0x2ae8dd[_0x9edd('0x2e')],qs[_0x9edd('0x30')](_0x52746a[_0x9edd('0x2b')]['fields']));_0x28cfae[_0x9edd('0x2f')]=_0x28cfae[_0x9edd('0x2f')][_0x9edd('0x31')]?_0x28cfae['attributes']:_0x2ae8dd[_0x9edd('0x2e')];if(_0x52746a[_0x9edd('0x2b')][_0x9edd('0x32')]){_0x28cfae[_0x9edd('0x33')]=[{'all':!![]}];}_0x28cfae=_[_0x9edd('0x34')]({},_0x28cfae,_0x52746a[_0x9edd('0x35')]);return db[_0x9edd('0x29')][_0x9edd('0x36')](_0x28cfae)[_0x9edd('0x21')](handleEntityNotFound(_0x238b22,null))[_0x9edd('0x21')](respondWithResult(_0x238b22,null))[_0x9edd('0x37')](handleError(_0x238b22,null));};exports[_0x9edd('0x38')]=function(_0x27eb7e,_0x14f780){if(_0x27eb7e['body']['id']){delete _0x27eb7e[_0x9edd('0x39')]['id'];}return db['MailApplication'][_0x9edd('0x36')]({'where':{'id':_0x27eb7e[_0x9edd('0x27')]['id']}})[_0x9edd('0x21')](handleEntityNotFound(_0x14f780,null))[_0x9edd('0x21')](saveUpdates(_0x27eb7e[_0x9edd('0x39')],null))['then'](respondWithResult(_0x14f780,null))[_0x9edd('0x37')](handleError(_0x14f780,null));};exports[_0x9edd('0x3a')]=function(_0x2b3469,_0x38e9be){return db[_0x9edd('0x29')][_0x9edd('0x36')]({'where':{'id':_0x2b3469[_0x9edd('0x27')]['id']}})[_0x9edd('0x21')](handleEntityNotFound(_0x38e9be,null))[_0x9edd('0x21')](removeEntity(_0x38e9be,null))[_0x9edd('0x37')](handleError(_0x38e9be,null));};
\ No newline at end of file
+var _0x9bde=['../../config/license/util','../../mysqldb','sendStatus','status','end','json','undefined','limit','count','offset','set','Content-Range','apply','save','then','destroy','error','name','send','show','model','keys','MailApplication','rawAttributes','query','filters','intersection','attributes','fields','length','includeAll','include','merge','options','find','catch','update','body','params','rimraf','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment'];(function(_0x864cdf,_0x37682b){var _0x196fb6=function(_0x71c0ae){while(--_0x71c0ae){_0x864cdf['push'](_0x864cdf['shift']());}};_0x196fb6(++_0x37682b);}(_0x9bde,0xe1));var _0xe9bd=function(_0x26f55f,_0x289f3b){_0x26f55f=_0x26f55f-0x0;var _0x11f351=_0x9bde[_0x26f55f];return _0x11f351;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xe9bd('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0xe9bd('0x1'));var rp=require('request-promise');var moment=require(_0xe9bd('0x2'));var BPromise=require(_0xe9bd('0x3'));var Mustache=require(_0xe9bd('0x4'));var util=require(_0xe9bd('0x5'));var path=require(_0xe9bd('0x6'));var sox=require(_0xe9bd('0x7'));var csv=require(_0xe9bd('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xe9bd('0x9'));var _=require(_0xe9bd('0xa'));var squel=require(_0xe9bd('0xb'));var crypto=require(_0xe9bd('0xc'));var jsforce=require(_0xe9bd('0xd'));var deskjs=require(_0xe9bd('0xe'));var toCsv=require(_0xe9bd('0x8'));var querystring=require(_0xe9bd('0xf'));var Papa=require(_0xe9bd('0x10'));var Redis=require(_0xe9bd('0x11'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0xe9bd('0x12'));var hardwareService=require(_0xe9bd('0x13'));var logger=require(_0xe9bd('0x14'))('api');var utils=require(_0xe9bd('0x15'));var config=require(_0xe9bd('0x16'));var licenseUtil=require(_0xe9bd('0x17'));var db=require(_0xe9bd('0x18'))['db'];function respondWithStatusCode(_0x5e022a,_0x2c1d98){_0x2c1d98=_0x2c1d98||0xcc;return function(_0x4ac319){if(_0x4ac319){return _0x5e022a[_0xe9bd('0x19')](_0x2c1d98);}return _0x5e022a[_0xe9bd('0x1a')](_0x2c1d98)[_0xe9bd('0x1b')]();};}function respondWithResult(_0x51109f,_0x47ba5e){_0x47ba5e=_0x47ba5e||0xc8;return function(_0x46a95e){if(_0x46a95e){return _0x51109f[_0xe9bd('0x1a')](_0x47ba5e)[_0xe9bd('0x1c')](_0x46a95e);}};}function respondWithFilteredResult(_0x46a59b,_0x3360bd){return function(_0x389e7b){if(_0x389e7b){var _0x45a9f2=typeof _0x3360bd['offset']===_0xe9bd('0x1d')&&typeof _0x3360bd[_0xe9bd('0x1e')]===_0xe9bd('0x1d');var _0x494b27=_0x389e7b[_0xe9bd('0x1f')];var _0x3bae08=_0x45a9f2?0x0:_0x3360bd[_0xe9bd('0x20')];var _0x330733=_0x45a9f2?_0x389e7b['count']:_0x3360bd[_0xe9bd('0x20')]+_0x3360bd['limit'];var _0xc6b661;if(_0x330733>=_0x494b27){_0x330733=_0x494b27;_0xc6b661=0xc8;}else{_0xc6b661=0xce;}_0x46a59b['status'](_0xc6b661);return _0x46a59b[_0xe9bd('0x21')](_0xe9bd('0x22'),_0x3bae08+'-'+_0x330733+'/'+_0x494b27)[_0xe9bd('0x1c')](_0x389e7b);}return null;};}function patchUpdates(_0x3dda13){return function(_0x1acb82){try{jsonpatch[_0xe9bd('0x23')](_0x1acb82,_0x3dda13,!![]);}catch(_0x6593ce){return BPromise['reject'](_0x6593ce);}return _0x1acb82[_0xe9bd('0x24')]();};}function saveUpdates(_0x28cd17,_0x4ecaf5){return function(_0x37aec1){if(_0x37aec1){return _0x37aec1['update'](_0x28cd17)[_0xe9bd('0x25')](function(_0x1b9cc9){return _0x1b9cc9;});}return null;};}function removeEntity(_0x36f8c0,_0xf02209){return function(_0x5bc4bf){if(_0x5bc4bf){return _0x5bc4bf[_0xe9bd('0x26')]()[_0xe9bd('0x25')](function(){_0x36f8c0[_0xe9bd('0x1a')](0xcc)[_0xe9bd('0x1b')]();});}};}function handleEntityNotFound(_0x2641be,_0xb52d45){return function(_0x399f3c){if(!_0x399f3c){_0x2641be[_0xe9bd('0x19')](0x194);}return _0x399f3c;};}function handleError(_0x1ae889,_0x5987af){_0x5987af=_0x5987af||0x1f4;return function(_0x3c211a){logger[_0xe9bd('0x27')](_0x3c211a['stack']);if(_0x3c211a[_0xe9bd('0x28')]){delete _0x3c211a[_0xe9bd('0x28')];}_0x1ae889[_0xe9bd('0x1a')](_0x5987af)[_0xe9bd('0x29')](_0x3c211a);};}exports[_0xe9bd('0x2a')]=function(_0x183601,_0x519f48){var _0x5b7f1d={'raw':!![],'where':{'id':_0x183601['params']['id']}},_0x1de54c={};_0x1de54c[_0xe9bd('0x2b')]=_[_0xe9bd('0x2c')](db[_0xe9bd('0x2d')][_0xe9bd('0x2e')]);_0x1de54c[_0xe9bd('0x2f')]=_['keys'](_0x183601['query']);_0x1de54c[_0xe9bd('0x30')]=_[_0xe9bd('0x31')](_0x1de54c[_0xe9bd('0x2b')],_0x1de54c[_0xe9bd('0x2f')]);_0x5b7f1d[_0xe9bd('0x32')]=_[_0xe9bd('0x31')](_0x1de54c[_0xe9bd('0x2b')],qs[_0xe9bd('0x33')](_0x183601[_0xe9bd('0x2f')]['fields']));_0x5b7f1d[_0xe9bd('0x32')]=_0x5b7f1d[_0xe9bd('0x32')][_0xe9bd('0x34')]?_0x5b7f1d['attributes']:_0x1de54c['model'];if(_0x183601[_0xe9bd('0x2f')][_0xe9bd('0x35')]){_0x5b7f1d[_0xe9bd('0x36')]=[{'all':!![]}];}_0x5b7f1d=_[_0xe9bd('0x37')]({},_0x5b7f1d,_0x183601[_0xe9bd('0x38')]);return db[_0xe9bd('0x2d')][_0xe9bd('0x39')](_0x5b7f1d)[_0xe9bd('0x25')](handleEntityNotFound(_0x519f48,null))[_0xe9bd('0x25')](respondWithResult(_0x519f48,null))[_0xe9bd('0x3a')](handleError(_0x519f48,null));};exports[_0xe9bd('0x3b')]=function(_0x549dd1,_0x2ad46e){if(_0x549dd1[_0xe9bd('0x3c')]['id']){delete _0x549dd1[_0xe9bd('0x3c')]['id'];}return db[_0xe9bd('0x2d')][_0xe9bd('0x39')]({'where':{'id':_0x549dd1[_0xe9bd('0x3d')]['id']}})['then'](handleEntityNotFound(_0x2ad46e,null))[_0xe9bd('0x25')](saveUpdates(_0x549dd1[_0xe9bd('0x3c')],null))['then'](respondWithResult(_0x2ad46e,null))[_0xe9bd('0x3a')](handleError(_0x2ad46e,null));};exports[_0xe9bd('0x26')]=function(_0x4c7d47,_0x4b1da0){return db[_0xe9bd('0x2d')][_0xe9bd('0x39')]({'where':{'id':_0x4c7d47['params']['id']}})[_0xe9bd('0x25')](handleEntityNotFound(_0x4b1da0,null))[_0xe9bd('0x25')](removeEntity(_0x4b1da0,null))[_0xe9bd('0x3a')](handleError(_0x4b1da0,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x391d=['lodash','util','../../config/logger','moment','bluebird','request-promise','path','rimraf','../../config/environment','./mailApplication.attributes','exports','define','MailApplication','mail_applications','utf8mb4','utf8mb4_unicode_ci'];(function(_0x3b0e33,_0x344cea){var _0x1d2acd=function(_0x3c4e3c){while(--_0x3c4e3c){_0x3b0e33['push'](_0x3b0e33['shift']());}};_0x1d2acd(++_0x344cea);}(_0x391d,0xa0));var _0xd391=function(_0x37f9fa,_0x4acb2d){_0x37f9fa=_0x37f9fa-0x0;var _0x3e4ffe=_0x391d[_0x37f9fa];return _0x3e4ffe;};'use strict';var _=require(_0xd391('0x0'));var util=require(_0xd391('0x1'));var logger=require(_0xd391('0x2'))('api');var moment=require(_0xd391('0x3'));var BPromise=require(_0xd391('0x4'));var rp=require(_0xd391('0x5'));var fs=require('fs');var path=require(_0xd391('0x6'));var rimraf=require(_0xd391('0x7'));var config=require(_0xd391('0x8'));var attributes=require(_0xd391('0x9'));module[_0xd391('0xa')]=function(_0x2c3106,_0x34eb10){return _0x2c3106[_0xd391('0xb')](_0xd391('0xc'),attributes,{'tableName':_0xd391('0xd'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0xd391('0xe'),'collate':_0xd391('0xf')});};
\ No newline at end of file
+var _0x2981=['request-promise','rimraf','../../config/environment','exports','define','MailApplication','utf8mb4_unicode_ci','util','../../config/logger','moment','bluebird'];(function(_0x2854d7,_0x495328){var _0x184aba=function(_0x4a63e7){while(--_0x4a63e7){_0x2854d7['push'](_0x2854d7['shift']());}};_0x184aba(++_0x495328);}(_0x2981,0x1bf));var _0x1298=function(_0x134324,_0x4d3d78){_0x134324=_0x134324-0x0;var _0x450c00=_0x2981[_0x134324];return _0x450c00;};'use strict';var _=require('lodash');var util=require(_0x1298('0x0'));var logger=require(_0x1298('0x1'))('api');var moment=require(_0x1298('0x2'));var BPromise=require(_0x1298('0x3'));var rp=require(_0x1298('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x1298('0x5'));var config=require(_0x1298('0x6'));var attributes=require('./mailApplication.attributes');module[_0x1298('0x7')]=function(_0x20af96,_0x4115f2){return _0x20af96[_0x1298('0x8')](_0x1298('0x9'),attributes,{'tableName':'mail_applications','paranoid':![],'indexes':[],'timestamps':!![],'charset':'utf8mb4','collate':_0x1298('0xa')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xad03=['catch','UpdateMailApplication','update','body','options','where','attributes','limit','stringify','moment','bluebird','randomstring','ioredis','../../config/logger','rpc','../../config/environment','jayson/promise','http','request','then','info','MailApplication,\x20%s,\x20%s','request\x20sent','debug','MailApplication,\x20%s,\x20%s,\x20%s','error','code','message'];(function(_0x2b5120,_0x1330bb){var _0x1966b2=function(_0x2b2a88){while(--_0x2b2a88){_0x2b5120['push'](_0x2b5120['shift']());}};_0x1966b2(++_0x1330bb);}(_0xad03,0xe9));var _0x3ad0=function(_0x192b0b,_0x55c8d5){_0x192b0b=_0x192b0b-0x0;var _0x5dd10a=_0xad03[_0x192b0b];return _0x5dd10a;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x3ad0('0x0'));var BPromise=require(_0x3ad0('0x1'));var rs=require(_0x3ad0('0x2'));var fs=require('fs');var Redis=require(_0x3ad0('0x3'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x3ad0('0x4'))(_0x3ad0('0x5'));var config=require(_0x3ad0('0x6'));var jayson=require(_0x3ad0('0x7'));var client=jayson['client'][_0x3ad0('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x1bb451,_0x553db7,_0x32b53d){return new BPromise(function(_0x5a015b,_0x2f55f2){return client[_0x3ad0('0x9')](_0x1bb451,_0x32b53d)[_0x3ad0('0xa')](function(_0x90bb29){logger[_0x3ad0('0xb')](_0x3ad0('0xc'),_0x553db7,_0x3ad0('0xd'));logger[_0x3ad0('0xe')](_0x3ad0('0xf'),_0x553db7,_0x3ad0('0xd'),JSON['stringify'](_0x90bb29));if(_0x90bb29[_0x3ad0('0x10')]){if(_0x90bb29[_0x3ad0('0x10')][_0x3ad0('0x11')]===0x1f4){logger['error'](_0x3ad0('0xc'),_0x553db7,_0x90bb29[_0x3ad0('0x10')][_0x3ad0('0x12')]);return _0x2f55f2(_0x90bb29[_0x3ad0('0x10')][_0x3ad0('0x12')]);}logger['error'](_0x3ad0('0xc'),_0x553db7,_0x90bb29['error'][_0x3ad0('0x12')]);return _0x5a015b(_0x90bb29['error'][_0x3ad0('0x12')]);}else{logger['info'](_0x3ad0('0xc'),_0x553db7,_0x3ad0('0xd'));_0x5a015b(_0x90bb29['result'][_0x3ad0('0x12')]);}})[_0x3ad0('0x13')](function(_0x4e0e6f){logger[_0x3ad0('0x10')](_0x3ad0('0xc'),_0x553db7,_0x4e0e6f);_0x2f55f2(_0x4e0e6f);});});}exports[_0x3ad0('0x14')]=function(_0x182119){var _0x5d1a9a=this;return new Promise(function(_0x3e78b1,_0x153ca9){return db['MailApplication'][_0x3ad0('0x15')](_0x182119[_0x3ad0('0x16')],{'raw':_0x182119['options']?_0x182119[_0x3ad0('0x17')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x182119['options']?_0x182119[_0x3ad0('0x17')][_0x3ad0('0x18')]||null:null,'attributes':_0x182119['options']?_0x182119['options'][_0x3ad0('0x19')]||null:null,'limit':_0x182119[_0x3ad0('0x17')]?_0x182119['options'][_0x3ad0('0x1a')]||null:null})[_0x3ad0('0xa')](function(_0x733bbc){logger[_0x3ad0('0xb')](_0x3ad0('0x14'),_0x182119);logger['debug']('UpdateMailApplication',_0x182119,JSON[_0x3ad0('0x1b')](_0x733bbc));_0x3e78b1(_0x733bbc);})[_0x3ad0('0x13')](function(_0x467ee1){logger[_0x3ad0('0x10')]('UpdateMailApplication',_0x467ee1['message'],_0x182119);_0x153ca9(_0x5d1a9a[_0x3ad0('0x10')](0x1f4,_0x467ee1['message']));});});};
\ No newline at end of file
+var _0xff6e=['../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','request','info','MailApplication,\x20%s,\x20%s','debug','MailApplication,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','message','result','UpdateMailApplication','MailApplication','body','options','raw','where','attributes','limit','then','stringify','catch','util','moment','randomstring','ioredis','../../mysqldb'];(function(_0x44a4e1,_0x416b89){var _0x244e48=function(_0x3401f5){while(--_0x3401f5){_0x44a4e1['push'](_0x44a4e1['shift']());}};_0x244e48(++_0x416b89);}(_0xff6e,0x131));var _0xeff6=function(_0x19159a,_0x1cb5c3){_0x19159a=_0x19159a-0x0;var _0xa677f4=_0xff6e[_0x19159a];return _0xa677f4;};'use strict';var _=require('lodash');var util=require(_0xeff6('0x0'));var moment=require(_0xeff6('0x1'));var BPromise=require('bluebird');var rs=require(_0xeff6('0x2'));var fs=require('fs');var Redis=require(_0xeff6('0x3'));var db=require(_0xeff6('0x4'))['db'];var utils=require(_0xeff6('0x5'));var logger=require(_0xeff6('0x6'))(_0xeff6('0x7'));var config=require(_0xeff6('0x8'));var jayson=require(_0xeff6('0x9'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x3cc318,_0x240d36,_0x3e2a78){return new BPromise(function(_0x652051,_0x1152b0){return client[_0xeff6('0xa')](_0x3cc318,_0x3e2a78)['then'](function(_0x1d8484){logger[_0xeff6('0xb')](_0xeff6('0xc'),_0x240d36,'request\x20sent');logger[_0xeff6('0xd')](_0xeff6('0xe'),_0x240d36,_0xeff6('0xf'),JSON['stringify'](_0x1d8484));if(_0x1d8484['error']){if(_0x1d8484[_0xeff6('0x10')][_0xeff6('0x11')]===0x1f4){logger['error'](_0xeff6('0xc'),_0x240d36,_0x1d8484[_0xeff6('0x10')][_0xeff6('0x12')]);return _0x1152b0(_0x1d8484[_0xeff6('0x10')][_0xeff6('0x12')]);}logger[_0xeff6('0x10')](_0xeff6('0xc'),_0x240d36,_0x1d8484[_0xeff6('0x10')][_0xeff6('0x12')]);return _0x652051(_0x1d8484[_0xeff6('0x10')][_0xeff6('0x12')]);}else{logger[_0xeff6('0xb')](_0xeff6('0xc'),_0x240d36,_0xeff6('0xf'));_0x652051(_0x1d8484[_0xeff6('0x13')]['message']);}})['catch'](function(_0x300ac5){logger[_0xeff6('0x10')](_0xeff6('0xc'),_0x240d36,_0x300ac5);_0x1152b0(_0x300ac5);});});}exports[_0xeff6('0x14')]=function(_0x48c548){var _0x1cf4f2=this;return new Promise(function(_0x2a2020,_0x1ab0ad){return db[_0xeff6('0x15')]['update'](_0x48c548[_0xeff6('0x16')],{'raw':_0x48c548[_0xeff6('0x17')]?_0x48c548[_0xeff6('0x17')][_0xeff6('0x18')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x48c548[_0xeff6('0x17')]?_0x48c548[_0xeff6('0x17')][_0xeff6('0x19')]||null:null,'attributes':_0x48c548[_0xeff6('0x17')]?_0x48c548[_0xeff6('0x17')][_0xeff6('0x1a')]||null:null,'limit':_0x48c548[_0xeff6('0x17')]?_0x48c548[_0xeff6('0x17')][_0xeff6('0x1b')]||null:null})[_0xeff6('0x1c')](function(_0xb74526){logger[_0xeff6('0xb')](_0xeff6('0x14'),_0x48c548);logger[_0xeff6('0xd')](_0xeff6('0x14'),_0x48c548,JSON[_0xeff6('0x1d')](_0xb74526));_0x2a2020(_0xb74526);})[_0xeff6('0x1e')](function(_0x3b9554){logger[_0xeff6('0x10')](_0xeff6('0x14'),_0x3b9554[_0xeff6('0x12')],_0x48c548);_0x1ab0ad(_0x1cf4f2[_0xeff6('0x10')](0x1f4,_0x3b9554[_0xeff6('0x12')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0784=['index','describe','/:id','/:id/messages','getMessages','/:id/download','download','post','create','/:id/tags','mail','mailinteraction:addtags','addTags','put','tracked','mailinteraction:update','delete','mailinteraction:destroy','destroy','exports','express','Router','../../components/interaction/service','./mailInteraction.controller','get','isAuthenticated'];(function(_0x4f6f84,_0x31e197){var _0x20d989=function(_0x34db70){while(--_0x34db70){_0x4f6f84['push'](_0x4f6f84['shift']());}};_0x20d989(++_0x31e197);}(_0x0784,0x19a));var _0x4078=function(_0x4b73ac,_0x3e34df){_0x4b73ac=_0x4b73ac-0x0;var _0x1960ae=_0x0784[_0x4b73ac];return _0x1960ae;};'use strict';var express=require(_0x4078('0x0'));var router=express[_0x4078('0x1')]();var auth=require('../../components/auth/service');var interaction=require(_0x4078('0x2'));var controller=require(_0x4078('0x3'));router[_0x4078('0x4')]('/',auth[_0x4078('0x5')](),controller[_0x4078('0x6')]);router[_0x4078('0x4')]('/describe',auth[_0x4078('0x5')](),controller[_0x4078('0x7')]);router['get'](_0x4078('0x8'),auth[_0x4078('0x5')](),controller['show']);router['get'](_0x4078('0x9'),auth['isAuthenticated'](),controller[_0x4078('0xa')]);router['get'](_0x4078('0xb'),auth[_0x4078('0x5')](),controller[_0x4078('0xc')]);router[_0x4078('0xd')]('/',auth[_0x4078('0x5')](),controller[_0x4078('0xe')]);router[_0x4078('0xd')](_0x4078('0x9'),auth['isAuthenticated'](),controller['addMessage']);router[_0x4078('0xd')](_0x4078('0xf'),auth[_0x4078('0x5')](),interaction['tracked'](_0x4078('0x10'),_0x4078('0x11')),controller[_0x4078('0x12')]);router[_0x4078('0x13')](_0x4078('0x8'),auth[_0x4078('0x5')](),interaction[_0x4078('0x14')](_0x4078('0x10'),_0x4078('0x15')),controller['update']);router[_0x4078('0x16')]('/:id',auth[_0x4078('0x5')](),interaction[_0x4078('0x14')](_0x4078('0x10'),_0x4078('0x17')),controller[_0x4078('0x18')]);router[_0x4078('0x16')](_0x4078('0xf'),auth[_0x4078('0x5')](),controller['removeTags']);module[_0x4078('0x19')]=router;
\ No newline at end of file
+var _0x5a79=['Router','../../components/auth/service','../../components/interaction/service','get','index','/describe','isAuthenticated','/:id','show','/:id/messages','/:id/download','post','create','addMessage','/:id/tags','tracked','mailinteraction:addtags','addTags','put','mailinteraction:update','update','mailinteraction:destroy','destroy','delete','exports','express'];(function(_0x1a6d6c,_0x1c222a){var _0x22aa5c=function(_0x385c86){while(--_0x385c86){_0x1a6d6c['push'](_0x1a6d6c['shift']());}};_0x22aa5c(++_0x1c222a);}(_0x5a79,0x103));var _0x95a7=function(_0x4132d1,_0x41fbbd){_0x4132d1=_0x4132d1-0x0;var _0x27d9cb=_0x5a79[_0x4132d1];return _0x27d9cb;};'use strict';var express=require(_0x95a7('0x0'));var router=express[_0x95a7('0x1')]();var auth=require(_0x95a7('0x2'));var interaction=require(_0x95a7('0x3'));var controller=require('./mailInteraction.controller');router[_0x95a7('0x4')]('/',auth['isAuthenticated'](),controller[_0x95a7('0x5')]);router[_0x95a7('0x4')](_0x95a7('0x6'),auth[_0x95a7('0x7')](),controller['describe']);router['get'](_0x95a7('0x8'),auth[_0x95a7('0x7')](),controller[_0x95a7('0x9')]);router[_0x95a7('0x4')](_0x95a7('0xa'),auth[_0x95a7('0x7')](),controller['getMessages']);router[_0x95a7('0x4')](_0x95a7('0xb'),auth[_0x95a7('0x7')](),controller['download']);router[_0x95a7('0xc')]('/',auth[_0x95a7('0x7')](),controller[_0x95a7('0xd')]);router['post'](_0x95a7('0xa'),auth[_0x95a7('0x7')](),controller[_0x95a7('0xe')]);router[_0x95a7('0xc')](_0x95a7('0xf'),auth[_0x95a7('0x7')](),interaction[_0x95a7('0x10')]('mail',_0x95a7('0x11')),controller[_0x95a7('0x12')]);router[_0x95a7('0x13')](_0x95a7('0x8'),auth[_0x95a7('0x7')](),interaction[_0x95a7('0x10')]('mail',_0x95a7('0x14')),controller[_0x95a7('0x15')]);router['delete'](_0x95a7('0x8'),auth[_0x95a7('0x7')](),interaction[_0x95a7('0x10')]('mail',_0x95a7('0x16')),controller[_0x95a7('0x17')]);router[_0x95a7('0x18')](_0x95a7('0xf'),auth[_0x95a7('0x7')](),controller['removeTags']);module[_0x95a7('0x19')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1340=['sequelize','exports','DATE','STRING','long','TEXT','BOOLEAN','ENUM','out'];(function(_0x145016,_0x40ba0b){var _0x4a57e8=function(_0x11ea2a){while(--_0x11ea2a){_0x145016['push'](_0x145016['shift']());}};_0x4a57e8(++_0x40ba0b);}(_0x1340,0xab));var _0x0134=function(_0x5024a4,_0x516a8d){_0x5024a4=_0x5024a4-0x0;var _0x588f01=_0x1340[_0x5024a4];return _0x588f01;};'use strict';var Sequelize=require(_0x0134('0x0'));var iconv=require('iconv');module[_0x0134('0x1')]={'closed':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'closedAt':{'type':Sequelize[_0x0134('0x2')]},'disposition':{'type':Sequelize[_0x0134('0x3')]},'secondDisposition':{'type':Sequelize[_0x0134('0x3')]},'thirdDisposition':{'type':Sequelize[_0x0134('0x3')]},'note':{'type':Sequelize[_0x0134('0x3')]},'inReplyTo':{'type':Sequelize['STRING'](0x1fe)},'to':{'type':Sequelize['STRING']},'cc':{'type':Sequelize['TEXT'](_0x0134('0x4'))},'subject':{'type':Sequelize[_0x0134('0x5')]()},'attach':{'type':Sequelize[_0x0134('0x6')],'defaultValue':![]},'read1stAt':{'type':Sequelize['DATE']},'substatus':{'type':Sequelize[_0x0134('0x3')](0x3c)},'substatusAt':{'type':Sequelize['DATE']},'firstMsgDirection':{'type':Sequelize[_0x0134('0x7')]('in',_0x0134('0x8')),'defaultValue':'in','allowNull':![]},'lastMsgAt':{'type':Sequelize[_0x0134('0x2')]},'lastMsgDirection':{'type':Sequelize[_0x0134('0x7')]('in',_0x0134('0x8')),'defaultValue':'in','allowNull':![]},'autoreplyExecuted':{'type':Sequelize['BOOLEAN'],'defaultValue':![]}};
\ No newline at end of file
+var _0xc222=['TEXT','long','ENUM','out','sequelize','iconv','exports','BOOLEAN','DATE','STRING'];(function(_0x24bf75,_0x5f4a8c){var _0x31c323=function(_0x1c1b7e){while(--_0x1c1b7e){_0x24bf75['push'](_0x24bf75['shift']());}};_0x31c323(++_0x5f4a8c);}(_0xc222,0x144));var _0x2c22=function(_0x2f874e,_0x1f155d){_0x2f874e=_0x2f874e-0x0;var _0x32bda6=_0xc222[_0x2f874e];return _0x32bda6;};'use strict';var Sequelize=require(_0x2c22('0x0'));var iconv=require(_0x2c22('0x1'));module[_0x2c22('0x2')]={'closed':{'type':Sequelize[_0x2c22('0x3')],'defaultValue':![]},'closedAt':{'type':Sequelize[_0x2c22('0x4')]},'disposition':{'type':Sequelize[_0x2c22('0x5')]},'secondDisposition':{'type':Sequelize[_0x2c22('0x5')]},'thirdDisposition':{'type':Sequelize[_0x2c22('0x5')]},'note':{'type':Sequelize[_0x2c22('0x5')]},'inReplyTo':{'type':Sequelize[_0x2c22('0x5')](0x1fe)},'to':{'type':Sequelize['STRING']},'cc':{'type':Sequelize[_0x2c22('0x6')](_0x2c22('0x7'))},'subject':{'type':Sequelize[_0x2c22('0x6')]()},'attach':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'read1stAt':{'type':Sequelize['DATE']},'substatus':{'type':Sequelize[_0x2c22('0x5')](0x3c)},'substatusAt':{'type':Sequelize['DATE']},'firstMsgDirection':{'type':Sequelize[_0x2c22('0x8')]('in',_0x2c22('0x9')),'defaultValue':'in','allowNull':![]},'lastMsgAt':{'type':Sequelize[_0x2c22('0x4')]},'lastMsgDirection':{'type':Sequelize[_0x2c22('0x8')]('in',_0x2c22('0x9')),'defaultValue':'in','allowNull':![]},'autoreplyExecuted':{'type':Sequelize['BOOLEAN'],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc3e3=['../../components/parsers/advancedSearch','../../config/logger','api','../../mysqldb','html-entities','redis','defaults','localhost','socket.io-emitter','register','sendStatus','end','status','json','offset','undefined','limit','count','Content-Range','update','then','destroy','error','name','send','Users','fullname','TagIds','Tags','forEach','MailMessage','findOne','out','-id','plainBody','trimStart','catch','index','MailInteraction','rawAttributes','model','map','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','order','sort','field','color','from','tools_tags','select','u.id','u.fullname','user_has_mail_interactions','left_join','users','u.id\x20=\x20ui.UserId','mail_interactions','cm_contacts','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','o.id\x20=\x20i.UserId','mail_accounts','mail_messages','me.MailInteractionId\x20=\x20i.id','mail_interaction_has_tags','it.MailInteractionId\x20=\x20i.id','t.id\x20=\x20it.TagId','expr','search','parseSearch','sqlOperator','conditions','find','unreadMessages','having','`\x20=\x200','Contact','value','split','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?','ContactId','buildExpression','Tag','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','User','operator','$substring','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','text','start','some','isEmpty','where','i.MailAccountId\x20IN\x20?','concat','parse','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20IS\x20NULL','\x20=\x20?','read','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','tag','isArray','filter','replace','isNumeric','i.id\x20LIKE\x20?','isEmail','c.email\x20LIKE\x20?','MATCH\x20(i.to,\x20i.subject)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','MATCH\x20(me.plainBody,\x20me.subject)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','i.id','Sequelize','QueryTypes','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','contactName','t.id\x20IN\x20?','resolve','MailAccountId','i.MailAccountId\x20IS\x20NOT\x20NULL','user','role','agent','getMailAccounts','i.MailAccountId\x20IS\x20NULL','sequelize','toString','keyBy','a.key','a.mandatoryDisposition','Account.mandatoryDisposition','CASE\x20WHEN\x20i.to\x20IS\x20NOT\x20NULL\x20AND\x20i.to\x20<>\x20\x27\x27\x20AND\x20i.to\x20NOT\x20LIKE\x20(\x27%\x27\x20+\x20a.email\x20+\x20\x27%\x27)\x20THEN\x20SUBSTRING_INDEX(i.to,\x20\x27<\x27,\x201)\x20WHEN\x20(c.firstName\x20IS\x20NOT\x20NULL\x20AND\x20c.firstName\x20<>\x20\x27\x27)\x20OR\x20(c.lastName\x20IS\x20NOT\x20NULL\x20AND\x20c.lastName\x20<>\x20\x27\x27)\x20THEN\x20CONCAT(IFNULL(c.firstName,\x20\x27\x27),\x20\x27\x20\x27,\x20IFNULL(c.lastName,\x20\x27\x27))\x20ELSE\x20\x27Unknown\x27\x20END','i.updatedAt','i.closed','i.closedAt','i.lastMsgAt','i.lastMsgDirection','i.subject','i.secondDisposition','i.substatus','i.to','i.MailAccountId','i.UserId','c.firstName','c.lastName','Contact.lastName','c.email','c.phone','c.mobile','Contact.fax','Owner.fullname','o.internal','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','MailInteractionId','Setting','enableEmailPreview','push','all','rows','show','includeAll','include','merge','create','body','params','addMessage','ids','getMessages','nolimit','pick','$gte','format','YYYY-MM-DD\x20HH:mm:ss','options','findAll','true','addTags','setTags','omit','emit','removeTags','download','unix','root','server','files','tmp','join','attachments','transcript-%d-%s.zip','Attachment','Attachments','Messages','bcc','subject','createdAt','get','mkdirSync','each','decode','ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ','headers','Bcc','existsSync','type','readFileSync','build','message%d.eml','unlinkSync','eml-format','rimraf','zip-dir','moment','bluebird','util','path','lodash','squel','ioredis','../../components/parsers/qs'];(function(_0x49f67f,_0x4113a4){var _0x4779a1=function(_0x5064b0){while(--_0x5064b0){_0x49f67f['push'](_0x49f67f['shift']());}};_0x4779a1(++_0x4113a4);}(_0xc3e3,0x1c9));var _0x3c3e=function(_0x368590,_0x48ad74){_0x368590=_0x368590-0x0;var _0x5ceb60=_0xc3e3[_0x368590];return _0x5ceb60;};'use strict';var emlformat=require(_0x3c3e('0x0'));var rimraf=require(_0x3c3e('0x1'));var zipdir=require(_0x3c3e('0x2'));var moment=require(_0x3c3e('0x3'));var BPromise=require(_0x3c3e('0x4'));var util=require(_0x3c3e('0x5'));var path=require(_0x3c3e('0x6'));var fs=require('fs');var _=require(_0x3c3e('0x7'));var squel=require(_0x3c3e('0x8'));var juice=require('juice');var Redis=require(_0x3c3e('0x9'));var qs=require(_0x3c3e('0xa'));var as=require(_0x3c3e('0xb'));var logger=require(_0x3c3e('0xc'))(_0x3c3e('0xd'));var config=require('../../config/environment');var db=require(_0x3c3e('0xe'))['db'];var htmlEntities=require(_0x3c3e('0xf'));config[_0x3c3e('0x10')]=_[_0x3c3e('0x11')](config['redis'],{'host':_0x3c3e('0x12'),'port':0x18eb});var socket=require(_0x3c3e('0x13'))(new Redis(config['redis']));require('./mailInteraction.socket')[_0x3c3e('0x14')](socket);function respondWithStatusCode(_0x614f90,_0x541652){_0x541652=_0x541652||0xcc;return function(_0x50f9db){if(_0x50f9db){return _0x614f90[_0x3c3e('0x15')](_0x541652);}return _0x614f90['status'](_0x541652)[_0x3c3e('0x16')]();};}function respondWithResult(_0xcabd2a,_0x17389f){_0x17389f=_0x17389f||0xc8;return function(_0xb65b3){if(_0xb65b3){return _0xcabd2a[_0x3c3e('0x17')](_0x17389f)[_0x3c3e('0x18')](_0xb65b3);}};}function respondWithFilteredResult(_0x844c17,_0x46e79f){return function(_0xce781a){if(_0xce781a){var _0x54c8c6=typeof _0x46e79f[_0x3c3e('0x19')]===_0x3c3e('0x1a')&&typeof _0x46e79f[_0x3c3e('0x1b')]==='undefined';var _0x450b20=_0xce781a['count'];var _0xc48672=_0x54c8c6?0x0:_0x46e79f[_0x3c3e('0x19')];var _0x2545e4=_0x54c8c6?_0xce781a[_0x3c3e('0x1c')]:_0x46e79f[_0x3c3e('0x19')]+_0x46e79f[_0x3c3e('0x1b')];var _0x3ce48d;if(_0x2545e4>=_0x450b20){_0x2545e4=_0x450b20;_0x3ce48d=0xc8;}else{_0x3ce48d=0xce;}_0x844c17[_0x3c3e('0x17')](_0x3ce48d);return _0x844c17['set'](_0x3c3e('0x1d'),_0xc48672+'-'+_0x2545e4+'/'+_0x450b20)[_0x3c3e('0x18')](_0xce781a);}return null;};}function saveUpdates(_0x348983){return function(_0x2abe3f){if(_0x2abe3f){return _0x2abe3f[_0x3c3e('0x1e')](_0x348983)[_0x3c3e('0x1f')](function(_0x5844f6){return _0x5844f6;});}return null;};}function removeEntity(_0x3a04c3){return function(_0x14e05a){if(_0x14e05a){return _0x14e05a[_0x3c3e('0x20')]()[_0x3c3e('0x1f')](function(){_0x3a04c3[_0x3c3e('0x17')](0xcc)[_0x3c3e('0x16')]();});}};}function handleEntityNotFound(_0x38c414){return function(_0x3162d5){if(!_0x3162d5){_0x38c414[_0x3c3e('0x15')](0x194);}return _0x3162d5;};}function handleError(_0x58b6b6,_0x33fc04){_0x33fc04=_0x33fc04||0x1f4;return function(_0x381840){logger[_0x3c3e('0x21')](_0x381840['stack']);if(_0x381840[_0x3c3e('0x22')]){delete _0x381840[_0x3c3e('0x22')];}_0x58b6b6[_0x3c3e('0x17')](_0x33fc04)[_0x3c3e('0x23')](_0x381840);};}function getInteractionUsers(_0x12b590,_0x49f003){return new BPromise(function(_0x3c0177,_0x3da31e){try{if(_0x49f003[_0x12b590['id']]){_0x12b590[_0x3c3e('0x24')]=_['map'](_0x49f003[_0x12b590['id']],function(_0x478984){return{'id':_0x478984['id'],'fullname':_0x478984[_0x3c3e('0x25')]};});}}catch(_0x28ea00){_0x3da31e(_0x28ea00);}_0x3c0177(_0x12b590);});}function getInteractionTags(_0x4f83f5,_0xa2b0eb){return new BPromise(function(_0x46b010,_0x33a100){try{if(_0x4f83f5[_0x3c3e('0x26')]){_0x4f83f5[_0x3c3e('0x27')]=[];_0x4f83f5[_0x3c3e('0x26')]['split'](',')[_0x3c3e('0x28')](function(_0x5eec56){_0x4f83f5[_0x3c3e('0x27')]['push'](_0xa2b0eb[_0x5eec56]);});}delete _0x4f83f5[_0x3c3e('0x26')];}catch(_0x33824a){_0x33a100(_0x33824a);}_0x46b010(_0x4f83f5);});}function getLastMessageText(_0x222ace){return new BPromise(function(_0x45d5d9,_0x4c238e){return db[_0x3c3e('0x29')][_0x3c3e('0x2a')]({'where':{'$and':[{'MailInteractionId':_0x222ace['id']},{'$or':[{'direction':'in'},{'$and':[{'direction':_0x3c3e('0x2b')},{'secret':![]},{'UserId':{'$ne':null}}]}]}]},'attributes':['plainBody'],'order':_0x3c3e('0x2c'),'raw':!![]})[_0x3c3e('0x1f')](function(_0x4aecac){if(_0x4aecac&&_0x4aecac[_0x3c3e('0x2d')]){_0x222ace['lastMsgText']=_[_0x3c3e('0x2e')](_0x4aecac[_0x3c3e('0x2d')]);}_0x45d5d9(_0x222ace);})[_0x3c3e('0x2f')](function(_0x28bbbc){_0x4c238e(_0x28bbbc);});});}function updateMailInteraction(_0x2d4a9b,_0xe002e5,_0x3afec4,_0x5ce861){return new BPromise(function(_0x1cea9d,_0x2ed5c3){return getInteractionUsers(_0x2d4a9b,_0x3afec4)['then'](function(_0x483a24){return getInteractionTags(_0x483a24,_0xe002e5);})[_0x3c3e('0x1f')](function(_0x356fbb){if(_0x5ce861){_0x1cea9d(getLastMessageText(_0x356fbb));}else{_0x1cea9d(_0x356fbb);}})[_0x3c3e('0x2f')](function(_0x5362c7){_0x2ed5c3(_0x5362c7);});});}exports[_0x3c3e('0x30')]=function(_0xb845f2,_0x11cecd){var _0x1c3e2={},_0x496d4a={},_0x1b7cc6={'count':0x0,'rows':[]};var _0x296bfe=_['map'](db[_0x3c3e('0x31')][_0x3c3e('0x32')],function(_0xf3a7b0){return{'name':_0xf3a7b0['fieldName'],'type':_0xf3a7b0['type']['key']};});_0x496d4a[_0x3c3e('0x33')]=_[_0x3c3e('0x34')](_0x296bfe,'name');_0x496d4a[_0x3c3e('0x35')]=_[_0x3c3e('0x36')](_0xb845f2[_0x3c3e('0x35')]);_0x496d4a[_0x3c3e('0x37')]=_['intersection'](_0x496d4a[_0x3c3e('0x33')],_0x496d4a[_0x3c3e('0x35')]);_0x1c3e2[_0x3c3e('0x38')]=_[_0x3c3e('0x39')](_0x496d4a[_0x3c3e('0x33')],qs[_0x3c3e('0x3a')](_0xb845f2[_0x3c3e('0x35')][_0x3c3e('0x3a')]));_0x1c3e2['attributes']=_0x1c3e2[_0x3c3e('0x38')][_0x3c3e('0x3b')]?_0x1c3e2['attributes']:_0x496d4a[_0x3c3e('0x33')];if(!_0xb845f2[_0x3c3e('0x35')][_0x3c3e('0x3c')]('nolimit')){_0x1c3e2['limit']=qs['limit'](_0xb845f2[_0x3c3e('0x35')][_0x3c3e('0x1b')]);_0x1c3e2[_0x3c3e('0x19')]=qs[_0x3c3e('0x19')](_0xb845f2['query'][_0x3c3e('0x19')]);}_0x1c3e2[_0x3c3e('0x3d')]=qs[_0x3c3e('0x3e')](_0xb845f2['query'][_0x3c3e('0x3e')]);_0x1c3e2['where']=qs[_0x3c3e('0x37')](_['pick'](_0xb845f2[_0x3c3e('0x35')],_0x496d4a[_0x3c3e('0x37')]),_0x296bfe);var _0x397b96=[];var _0x111634=squel['select']()['field']('id')[_0x3c3e('0x3f')](_0x3c3e('0x22'))[_0x3c3e('0x3f')](_0x3c3e('0x40'))[_0x3c3e('0x41')](_0x3c3e('0x42'));var _0x4bdce4=squel[_0x3c3e('0x43')]()[_0x3c3e('0x3f')](_0x3c3e('0x44'))[_0x3c3e('0x3f')](_0x3c3e('0x45'))['field']('ui.MailInteractionId')['from'](_0x3c3e('0x46'),'ui')[_0x3c3e('0x47')](_0x3c3e('0x48'),'u',_0x3c3e('0x49'));var _0xc9d228=squel['select']()['from'](_0x3c3e('0x4a'),'i')[_0x3c3e('0x47')](_0x3c3e('0x4b'),'c',_0x3c3e('0x4c'))[_0x3c3e('0x47')](_0x3c3e('0x48'),'o',_0x3c3e('0x4d'))[_0x3c3e('0x47')](_0x3c3e('0x4e'),'a','a.id\x20=\x20i.MailAccountId')[_0x3c3e('0x47')](_0x3c3e('0x4f'),'me',_0x3c3e('0x50'))[_0x3c3e('0x47')](_0x3c3e('0x51'),'it',_0x3c3e('0x52'))[_0x3c3e('0x47')](_0x3c3e('0x42'),'t',_0x3c3e('0x53'));var _0xbdf311=squel['expr']();var _0x3100de=[];var _0x48447e=squel[_0x3c3e('0x54')]();var _0x2c61c1;if(_0xb845f2[_0x3c3e('0x35')][_0x3c3e('0x55')]){_0x2c61c1=as[_0x3c3e('0x56')](_0xb845f2[_0x3c3e('0x35')][_0x3c3e('0x55')]);var _0x3571ee=_0x2c61c1[_0x3c3e('0x57')];for(var _0x4af8c5=0x0;_0x4af8c5<_0x2c61c1[_0x3c3e('0x58')][_0x3c3e('0x3b')];_0x4af8c5++){var _0x3ab5dd=_0x2c61c1[_0x3c3e('0x58')][_0x4af8c5];var _0x151bf9='i';var _0x4da638=_[_0x3c3e('0x59')](_0x296bfe,['name',_0x3ab5dd[_0x3c3e('0x3f')]]);if(!_0x4da638){switch(_0x3ab5dd['field']){case _0x3c3e('0x5a'):if(_0x3ab5dd['value']==0x1){_0xc9d228[_0x3c3e('0x5b')]('`'+_0x3ab5dd['field']+_0x3c3e('0x5c'));}else{_0xc9d228['having']('`'+_0x3ab5dd[_0x3c3e('0x3f')]+'`\x20>\x200');}break;case _0x3c3e('0x5d'):if(_0x3ab5dd['operator']==='$substring'){if(_0x3ab5dd[_0x3c3e('0x5e')][_0x3c3e('0x5f')]('\x20')[_0x3c3e('0x3b')]>0x1){_0xbdf311[_0x3571ee](_0x3c3e('0x60'),qs[_0x3c3e('0x61')](_0x3ab5dd['value']),null);}else{var _0x896487='%'+_0x3ab5dd[_0x3c3e('0x5e')]+'%';_0xbdf311[_0x3571ee](_0x3c3e('0x62'),_0x896487,_0x896487,_0x896487);}}else{_0x4da638=_[_0x3c3e('0x59')](_0x296bfe,[_0x3c3e('0x22'),_0x3c3e('0x63')]);_0x3ab5dd[_0x3c3e('0x3f')]=_0x3c3e('0x63');_0x393d57=as[_0x3c3e('0x64')](_0x151bf9,_0x4da638['type'],_0x3ab5dd);_0xbdf311[_0x3571ee](_0x393d57['text'],_0x393d57[_0x3c3e('0x5e')]['start'],_0x393d57['value'][_0x3c3e('0x16')]);}break;case _0x3c3e('0x65'):var _0x8af0cf=_0x3ab5dd['value']['split'](',')[_0x3c3e('0x34')](function(_0x37897a){return Number(_0x37897a);});_0x8af0cf[_0x3c3e('0x28')](function(_0x1fab80){_0x48447e['or'](_0x3c3e('0x66'),'%,'+_0x1fab80+',%');});_0x3100de=_[_0x3c3e('0x67')](_0x3100de,_0x8af0cf);break;case _0x3c3e('0x68'):if(_0x3ab5dd[_0x3c3e('0x69')]===_0x3c3e('0x6a')){_0xbdf311[_0x3571ee](_0x3c3e('0x6b'),'%'+_0x3ab5dd[_0x3c3e('0x5e')]+'%',null);}else{_0x4da638=_[_0x3c3e('0x59')](_0x296bfe,[_0x3c3e('0x22'),'UserId']);_0x3ab5dd[_0x3c3e('0x3f')]=_0x3c3e('0x6c');_0x393d57=as['buildExpression'](_0x151bf9,_0x4da638['type'],_0x3ab5dd);_0xbdf311[_0x3571ee](_0x393d57[_0x3c3e('0x6d')],_0x393d57[_0x3c3e('0x5e')][_0x3c3e('0x6e')],_0x393d57[_0x3c3e('0x5e')][_0x3c3e('0x16')]);}break;case'plainBody':_0x393d57=as[_0x3c3e('0x64')]('me',null,_0x3ab5dd);_0xbdf311[_0x3571ee](_0x393d57['text'],_0x393d57[_0x3c3e('0x5e')]['start'],_0x393d57[_0x3c3e('0x5e')][_0x3c3e('0x16')]);break;}}else{var _0x393d57=as[_0x3c3e('0x64')](_0x151bf9,_0x4da638['type'],_0x3ab5dd);_0xbdf311[_0x3571ee](_0x393d57[_0x3c3e('0x6d')],_0x393d57[_0x3c3e('0x5e')]['start'],_0x393d57[_0x3c3e('0x5e')][_0x3c3e('0x16')]);}}}else{var _0x5dc195=_(_0xb845f2[_0x3c3e('0x35')])[_0x3c3e('0x36')]()[_0x3c3e('0x34')](function(_0x3d558f){return _[_0x3c3e('0x6f')](_0x296bfe,[_0x3c3e('0x22'),_0x3d558f])?_0x3d558f:undefined;})['compact']()['value']();if(!_[_0x3c3e('0x70')](_0x5dc195)){_0x5dc195['forEach'](function(_0x47818c){if(_0x47818c==='MailAccountId'){_0xc9d228[_0x3c3e('0x71')](_0x3c3e('0x72'),[][_0x3c3e('0x73')](_0xb845f2[_0x3c3e('0x35')][_0x47818c]));}else if(_0x47818c==='createdAt'){var _0x253c1b=JSON[_0x3c3e('0x74')](_0xb845f2['query'][_0x47818c])['$gte'];var _0x3515e4=JSON[_0x3c3e('0x74')](_0xb845f2[_0x3c3e('0x35')][_0x47818c])['$lte'];_0xc9d228[_0x3c3e('0x71')](_0x3c3e('0x75'),_0x253c1b,_0x3515e4);}else{if(_0xb845f2[_0x3c3e('0x35')][_0x47818c]===_0x3c3e('0x76')){_0xc9d228[_0x3c3e('0x71')]('i.'+_0x47818c+_0x3c3e('0x77'));}else{_0xc9d228['where']('i.'+_0x47818c+_0x3c3e('0x78'),_0xb845f2[_0x3c3e('0x35')][_0x47818c]);}}});}if(_0xb845f2[_0x3c3e('0x35')][_0x3c3e('0x79')]){if(_0xb845f2[_0x3c3e('0x35')]['read']==0x1){_0xc9d228[_0x3c3e('0x5b')](_0x3c3e('0x7a'));}else{_0xc9d228[_0x3c3e('0x5b')](_0x3c3e('0x7b'));}}if(_0xb845f2[_0x3c3e('0x35')][_0x3c3e('0x7c')]){_0x3100de=_[_0x3c3e('0x7d')](_0xb845f2[_0x3c3e('0x35')]['tag'])?_0xb845f2[_0x3c3e('0x35')][_0x3c3e('0x7c')]:new Array(_0xb845f2[_0x3c3e('0x35')][_0x3c3e('0x7c')]);_0x3100de[_0x3c3e('0x28')](function(_0xd07031){_0x48447e['or'](_0x3c3e('0x66'),'%,'+_0xd07031+',%');});}if(_0xb845f2[_0x3c3e('0x35')]['filter']){var _0x3803de=_0xb845f2[_0x3c3e('0x35')][_0x3c3e('0x7e')][_0x3c3e('0x7f')]('\x5c','\x5c\x5c')[_0x3c3e('0x7f')](/'/g,'\x27\x27');if(qs[_0x3c3e('0x80')](_0x3803de)){_0xbdf311['or'](_0x3c3e('0x81'),_0x3803de+'%');}else if(qs[_0x3c3e('0x82')](_0x3803de)){_0xbdf311['or'](_0x3c3e('0x83'),_0x3803de+'%');}else{_0xbdf311['or'](_0x3c3e('0x84'),qs[_0x3c3e('0x61')](_0x3803de))['or'](_0x3c3e('0x85'),qs[_0x3c3e('0x61')](_0x3803de));}}}_0xc9d228[_0x3c3e('0x71')](_0xbdf311);_0xc9d228['group'](_0x3c3e('0x86'));var _0x440633={'type':db[_0x3c3e('0x87')][_0x3c3e('0x88')]['SELECT'],'raw':!![]};var _0x449ae6=_0xc9d228['clone']();_0x449ae6[_0x3c3e('0x3f')](_0x3c3e('0x86'));_0x449ae6[_0x3c3e('0x3f')](_0x3c3e('0x89'),_0x3c3e('0x5a'));if(_0x1c3e2[_0x3c3e('0x3d')]){_0x1c3e2['order'][_0x3c3e('0x28')](function(_0x4130bc){var _0x4755a4=_0x4130bc[0x0]===_0x3c3e('0x8a')?_0x4130bc[0x0]:'i.'+_0x4130bc[0x0];_0xc9d228['order'](_0x4755a4,_0x4130bc[0x1]==='DESC'?![]:!![]);});}if(!_[_0x3c3e('0x70')](_0x3100de)){_0xc9d228[_0x3c3e('0x5b')](_0x48447e);_0x449ae6[_0x3c3e('0x71')](_0x3c3e('0x8b'),_0x3100de);}BPromise[_0x3c3e('0x8c')]()[_0x3c3e('0x1f')](function(){if(!_0x2c61c1){if(_0xb845f2[_0x3c3e('0x35')][_0x3c3e('0x8d')])return;_0x449ae6[_0x3c3e('0x71')](_0x3c3e('0x8e'));_0xc9d228[_0x3c3e('0x71')](_0x3c3e('0x8e'));return;}if(_0xb845f2[_0x3c3e('0x8f')][_0x3c3e('0x90')]!==_0x3c3e('0x91'))return;return _0xb845f2[_0x3c3e('0x8f')][_0x3c3e('0x92')]({'attributes':['id'],'raw':!![]})[_0x3c3e('0x1f')](function(_0x5ed407){if(_['isEmpty'](_0x5ed407)){_0x449ae6[_0x3c3e('0x71')](_0x3c3e('0x93'));_0xc9d228[_0x3c3e('0x71')](_0x3c3e('0x93'));}else{_0x449ae6[_0x3c3e('0x71')]('i.MailAccountId\x20IN\x20?',_['map'](_0x5ed407,'id'));_0xc9d228[_0x3c3e('0x71')](_0x3c3e('0x72'),_[_0x3c3e('0x34')](_0x5ed407,'id'));}});})['then'](function(){if(_0xb845f2[_0x3c3e('0x8f')][_0x3c3e('0x90')]===_0x3c3e('0x91')&&!_0x2c61c1&&!_0xb845f2[_0x3c3e('0x35')]['MailAccountId'])return[];return db[_0x3c3e('0x94')][_0x3c3e('0x35')](_0x449ae6[_0x3c3e('0x95')](),_0x440633);})[_0x3c3e('0x1f')](function(_0x13a1dc){_0x1b7cc6['count']=_0x13a1dc[_0x3c3e('0x3b')];if(_0x1b7cc6['count']===0x0)return[];return db[_0x3c3e('0x94')]['query'](_0x111634['toString'](),_0x440633)['then'](function(_0x246713){_0x397b96=_[_0x3c3e('0x96')](_0x246713,'id');_0x440633=_['merge'](_0x440633,{'model':db[_0x3c3e('0x31')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0xb845f2[_0x3c3e('0x35')][_0x3c3e('0x3a')]){_0x1c3e2[_0x3c3e('0x38')][_0x3c3e('0x28')](function(_0x21bcf0){_0xc9d228[_0x3c3e('0x3f')]('i.'+_0x21bcf0);});}else{_0xc9d228['field'](_0x3c3e('0x89'),_0x3c3e('0x5a'));_0xc9d228[_0x3c3e('0x3f')](_0x3c3e('0x97'),'Account.key');_0xc9d228[_0x3c3e('0x3f')](_0x3c3e('0x98'),_0x3c3e('0x99'));_0xc9d228['field'](_0x3c3e('0x9a'),'contactName');_0xc9d228[_0x3c3e('0x3f')](_0x3c3e('0x86'));_0xc9d228['field']('i.createdAt');_0xc9d228['field'](_0x3c3e('0x9b'));_0xc9d228[_0x3c3e('0x3f')](_0x3c3e('0x9c'));_0xc9d228['field'](_0x3c3e('0x9d'));_0xc9d228[_0x3c3e('0x3f')]('i.attach');_0xc9d228['field'](_0x3c3e('0x9e'));_0xc9d228[_0x3c3e('0x3f')](_0x3c3e('0x9f'));_0xc9d228['field'](_0x3c3e('0xa0'));_0xc9d228[_0x3c3e('0x3f')]('i.disposition');_0xc9d228[_0x3c3e('0x3f')](_0x3c3e('0xa1'));_0xc9d228[_0x3c3e('0x3f')]('i.thirdDisposition');_0xc9d228[_0x3c3e('0x3f')](_0x3c3e('0xa2'));_0xc9d228[_0x3c3e('0x3f')](_0x3c3e('0xa3'));_0xc9d228[_0x3c3e('0x3f')]('i.ContactId');_0xc9d228[_0x3c3e('0x3f')](_0x3c3e('0xa4'));_0xc9d228[_0x3c3e('0x3f')](_0x3c3e('0xa5'));_0xc9d228['field'](_0x3c3e('0xa6'),'Contact.firstName');_0xc9d228[_0x3c3e('0x3f')](_0x3c3e('0xa7'),_0x3c3e('0xa8'));_0xc9d228[_0x3c3e('0x3f')](_0x3c3e('0xa9'),'Contact.email');_0xc9d228[_0x3c3e('0x3f')](_0x3c3e('0xaa'),'Contact.phone');_0xc9d228[_0x3c3e('0x3f')](_0x3c3e('0xab'),'Contact.mobile');_0xc9d228['field']('c.fax',_0x3c3e('0xac'));_0xc9d228['field']('o.fullname',_0x3c3e('0xad'));_0xc9d228[_0x3c3e('0x3f')](_0x3c3e('0xae'),_0x3c3e('0xaf'));_0xc9d228['field'](_0x3c3e('0xb0'),'TagIds');}if(_0x1c3e2[_0x3c3e('0x1b')])_0xc9d228['limit'](_0x1c3e2[_0x3c3e('0x1b')]);if(_0x1c3e2[_0x3c3e('0x19')])_0xc9d228[_0x3c3e('0x19')](_0x1c3e2[_0x3c3e('0x19')]);return db[_0x3c3e('0x94')][_0x3c3e('0x35')](_0xc9d228['toString'](),_0x440633);})[_0x3c3e('0x1f')](function(_0x147436){if(_0x147436[_0x3c3e('0x3b')]>0x0)_0x4bdce4['where']('ui.MailInteractionId\x20IN\x20?',_['map'](_0x147436,'id'));return db[_0x3c3e('0x94')]['query'](_0x4bdce4[_0x3c3e('0x95')](),_0x440633)[_0x3c3e('0x1f')](function(_0x4ef048){var _0x199c48=_['groupBy'](_0x4ef048,_0x3c3e('0xb1'));var _0x2795ee=[];return db[_0x3c3e('0xb2')][_0x3c3e('0x2a')]({'attributes':[_0x3c3e('0xb3')],'raw':!![]})[_0x3c3e('0x1f')](function(_0x298472){var _0x63bc20=_0x298472['enableEmailPreview'];_0x147436[_0x3c3e('0x28')](function(_0x53c428){_0x2795ee[_0x3c3e('0xb4')](updateMailInteraction(_0x53c428,_0x397b96,_0x199c48,_0x63bc20));});return BPromise[_0x3c3e('0xb5')](_0x2795ee);});});});})[_0x3c3e('0x1f')](function(_0x429361){_0x1b7cc6[_0x3c3e('0xb6')]=_0x429361;return _0x1b7cc6;})[_0x3c3e('0x1f')](respondWithFilteredResult(_0x11cecd,_0x1c3e2))[_0x3c3e('0x2f')](handleError(_0x11cecd,null));};exports[_0x3c3e('0xb7')]=function(_0x2cbed,_0x3c107d){var _0x359f20={'raw':![],'where':{'id':_0x2cbed['params']['id']}},_0x508b0b={};_0x508b0b[_0x3c3e('0x33')]=_[_0x3c3e('0x36')](db[_0x3c3e('0x31')][_0x3c3e('0x32')]);_0x508b0b[_0x3c3e('0x35')]=_[_0x3c3e('0x36')](_0x2cbed[_0x3c3e('0x35')]);_0x508b0b[_0x3c3e('0x37')]=_[_0x3c3e('0x39')](_0x508b0b['model'],_0x508b0b[_0x3c3e('0x35')]);_0x359f20[_0x3c3e('0x38')]=_['intersection'](_0x508b0b[_0x3c3e('0x33')],qs[_0x3c3e('0x3a')](_0x2cbed[_0x3c3e('0x35')][_0x3c3e('0x3a')]));_0x359f20[_0x3c3e('0x38')]=_0x359f20[_0x3c3e('0x38')][_0x3c3e('0x3b')]?_0x359f20[_0x3c3e('0x38')]:_0x508b0b[_0x3c3e('0x33')];if(_0x2cbed['query'][_0x3c3e('0xb8')]){_0x359f20[_0x3c3e('0xb9')]=[{'all':!![]}];}_0x359f20=_[_0x3c3e('0xba')]({},_0x359f20,_0x2cbed['options']);return db[_0x3c3e('0x31')][_0x3c3e('0x59')](_0x359f20)[_0x3c3e('0x1f')](handleEntityNotFound(_0x3c107d,null))[_0x3c3e('0x1f')](respondWithResult(_0x3c107d,null))['catch'](handleError(_0x3c107d,null));};exports[_0x3c3e('0xbb')]=function(_0x26e803,_0x2e2793){return db[_0x3c3e('0x31')]['create'](_0x26e803[_0x3c3e('0xbc')],{})[_0x3c3e('0x1f')](respondWithResult(_0x2e2793,0xc9))[_0x3c3e('0x2f')](handleError(_0x2e2793,null));};exports[_0x3c3e('0x1e')]=function(_0x40c5fb,_0x7d7411){if(_0x40c5fb[_0x3c3e('0xbc')]['id']){delete _0x40c5fb[_0x3c3e('0xbc')]['id'];}return db[_0x3c3e('0x31')][_0x3c3e('0x59')]({'where':{'id':_0x40c5fb[_0x3c3e('0xbd')]['id']}})[_0x3c3e('0x1f')](handleEntityNotFound(_0x7d7411,null))[_0x3c3e('0x1f')](saveUpdates(_0x40c5fb[_0x3c3e('0xbc')],null))[_0x3c3e('0x1f')](respondWithResult(_0x7d7411,null))[_0x3c3e('0x2f')](handleError(_0x7d7411,null));};exports[_0x3c3e('0x20')]=function(_0x5036f9,_0x1febed){return db['MailInteraction'][_0x3c3e('0x59')]({'where':{'id':_0x5036f9['params']['id']}})[_0x3c3e('0x1f')](handleEntityNotFound(_0x1febed,null))[_0x3c3e('0x1f')](removeEntity(_0x1febed,null))['catch'](handleError(_0x1febed,null));};exports['describe']=function(_0x48e4f1,_0xb013eb){return db['MailInteraction']['describe']()[_0x3c3e('0x1f')](respondWithResult(_0xb013eb,null))[_0x3c3e('0x2f')](handleError(_0xb013eb,null));};exports['addMessage']=function(_0x1d94c4,_0x30857c){return db[_0x3c3e('0x29')][_0x3c3e('0x59')]({'where':{'id':_0x1d94c4[_0x3c3e('0xbd')]['id']}})[_0x3c3e('0x1f')](handleEntityNotFound(_0x30857c,null))[_0x3c3e('0x1f')](function(_0x5b069a){if(_0x5b069a){return _0x5b069a[_0x3c3e('0xbe')](_0x1d94c4[_0x3c3e('0xbc')][_0x3c3e('0xbf')],_['omit'](_0x1d94c4[_0x3c3e('0xbc')],[_0x3c3e('0xbf'),'id'])||{});}})[_0x3c3e('0x1f')](respondWithResult(_0x30857c,null))[_0x3c3e('0x2f')](handleError(_0x30857c,null));};exports[_0x3c3e('0xc0')]=function(_0x1bd8d3,_0x402678){var _0x49c7a8={'raw':![],'where':{}};var _0x340f13={};var _0x3902c2={'count':0x0,'rows':[]};return db[_0x3c3e('0x31')][_0x3c3e('0x2a')]({'where':{'id':_0x1bd8d3[_0x3c3e('0xbd')]['id']}})['then'](handleEntityNotFound(_0x402678,null))[_0x3c3e('0x1f')](function(_0x354f00){if(_0x354f00){_0x340f13['model']=_[_0x3c3e('0x36')](db['MailMessage']['rawAttributes']);_0x340f13['query']=_[_0x3c3e('0x36')](_0x1bd8d3[_0x3c3e('0x35')]);_0x340f13['filters']=_['intersection'](_0x340f13[_0x3c3e('0x33')],_0x340f13[_0x3c3e('0x35')]);_0x49c7a8['attributes']=_[_0x3c3e('0x39')](_0x340f13[_0x3c3e('0x33')],qs['fields'](_0x1bd8d3[_0x3c3e('0x35')][_0x3c3e('0x3a')]));_0x49c7a8[_0x3c3e('0x38')]=_0x49c7a8['attributes']['length']?_0x49c7a8['attributes']:_0x340f13['model'];if(!_0x1bd8d3[_0x3c3e('0x35')]['hasOwnProperty'](_0x3c3e('0xc1'))){_0x49c7a8[_0x3c3e('0x1b')]=qs[_0x3c3e('0x1b')](_0x1bd8d3[_0x3c3e('0x35')][_0x3c3e('0x1b')]);_0x49c7a8[_0x3c3e('0x19')]=qs[_0x3c3e('0x19')](_0x1bd8d3[_0x3c3e('0x35')][_0x3c3e('0x19')]);}_0x49c7a8[_0x3c3e('0x3d')]=qs['sort'](_0x1bd8d3[_0x3c3e('0x35')]['sort']);_0x49c7a8[_0x3c3e('0x71')]=qs[_0x3c3e('0x37')](_[_0x3c3e('0xc2')](_0x1bd8d3[_0x3c3e('0x35')],_0x340f13[_0x3c3e('0x37')]));_0x49c7a8[_0x3c3e('0x71')][_0x3c3e('0xb1')]=_0x354f00['id'];if(_0x1bd8d3[_0x3c3e('0x35')][_0x3c3e('0x7e')]){_0x49c7a8[_0x3c3e('0x71')]=_['merge'](_0x49c7a8[_0x3c3e('0x71')],{'$or':_[_0x3c3e('0x34')](_0x49c7a8['attributes'],function(_0x1e5b4d){var _0x494c50={};_0x494c50[_0x1e5b4d]={'$like':'%'+_0x1bd8d3[_0x3c3e('0x35')]['filter']+'%'};return _0x494c50;})});}if(_0x1bd8d3[_0x3c3e('0x35')][_0x3c3e('0xc3')]){var _0x5251c5=_0x1bd8d3['query'][_0x3c3e('0xc3')][_0x3c3e('0x5f')](',');var _0x14ece3={};_0x14ece3[_0x5251c5[0x0]]={'$gte':moment(_0x5251c5[0x1])[_0x3c3e('0xc4')](_0x3c3e('0xc5'))};_0x49c7a8[_0x3c3e('0x71')]=_[_0x3c3e('0xba')](_0x49c7a8[_0x3c3e('0x71')],_0x14ece3);}_0x49c7a8=_[_0x3c3e('0xba')]({},_0x49c7a8,_0x1bd8d3[_0x3c3e('0xc6')]);return db[_0x3c3e('0x29')][_0x3c3e('0x1c')]({'where':_0x49c7a8['where']})[_0x3c3e('0x1f')](function(_0x3e2d96){_0x3902c2[_0x3c3e('0x1c')]=_0x3e2d96;if(_0x1bd8d3[_0x3c3e('0x35')][_0x3c3e('0xb8')]){_0x49c7a8[_0x3c3e('0xb9')]=[{'all':!![]}];}return db['MailMessage'][_0x3c3e('0xc7')](_0x49c7a8);})['then'](function(_0x3739f2){if(_0x1bd8d3[_0x3c3e('0x35')]['inlineCss']===_0x3c3e('0xc8')){for(var _0x3bb170=0x0;_0x3bb170<_0x3739f2[_0x3c3e('0x3b')];_0x3bb170++){_0x3739f2[_0x3bb170][_0x3c3e('0xbc')]=juice(_0x3739f2[_0x3bb170][_0x3c3e('0xbc')]);}}_0x3902c2[_0x3c3e('0xb6')]=_0x3739f2;return _0x3902c2;});}})[_0x3c3e('0x1f')](respondWithFilteredResult(_0x402678,_0x49c7a8))[_0x3c3e('0x2f')](handleError(_0x402678,null));};exports[_0x3c3e('0xc9')]=function(_0x4255c5,_0xe41706){return db[_0x3c3e('0x31')][_0x3c3e('0x59')]({'where':{'id':_0x4255c5['params']['id']}})[_0x3c3e('0x1f')](handleEntityNotFound(_0xe41706,null))[_0x3c3e('0x1f')](function(_0x64f7b6){if(_0x64f7b6){return _0x64f7b6[_0x3c3e('0xca')](_0x4255c5['body'][_0x3c3e('0xbf')],_[_0x3c3e('0xcb')](_0x4255c5[_0x3c3e('0xbc')],[_0x3c3e('0xbf'),'id'])||{})['spread'](function(){return db['Tag'][_0x3c3e('0xc7')]({'attributes':['id',_0x3c3e('0x22'),_0x3c3e('0x40')],'where':{'id':_0x4255c5[_0x3c3e('0xbc')]['ids']}});})[_0x3c3e('0x1f')](function(_0x4821f1){socket[_0x3c3e('0xcc')]('mailInteractionTags:save',{'id':Number(_0x4255c5['params']['id']),'tags':_0x4821f1||[]});return{'id':Number(_0x4255c5['params']['id']),'tags':_0x4821f1||[]};});}})[_0x3c3e('0x1f')](respondWithResult(_0xe41706,null))['catch'](handleError(_0xe41706,null));};exports[_0x3c3e('0xcd')]=function(_0x9f5c92,_0x3eb494){return db[_0x3c3e('0x31')][_0x3c3e('0x59')]({'where':{'id':_0x9f5c92['params']['id']}})['then'](handleEntityNotFound(_0x3eb494,null))[_0x3c3e('0x1f')](function(_0x3b24de){if(_0x3b24de){return _0x3b24de['removeTags'](_0x9f5c92['query'][_0x3c3e('0xbf')]);}})[_0x3c3e('0x1f')](respondWithStatusCode(_0x3eb494,null))[_0x3c3e('0x2f')](handleError(_0x3eb494,null));};exports[_0x3c3e('0xce')]=function(_0x4b0afb,_0x42b0cd){var _0x3ffb41=moment()[_0x3c3e('0xcf')]()[_0x3c3e('0x95')]();var _0x36aa2a=path['join'](config[_0x3c3e('0xd0')],_0x3c3e('0xd1'),_0x3c3e('0xd2'),_0x3c3e('0xd3'));var _0x298256=path[_0x3c3e('0xd4')](config[_0x3c3e('0xd0')],_0x3c3e('0xd1'),_0x3c3e('0xd2'),_0x3c3e('0xd5'));var _0x51f325=path['join'](_0x36aa2a,_0x3ffb41);var _0x2d51a2=util[_0x3c3e('0xc4')](_0x3c3e('0xd6'),_0x4b0afb[_0x3c3e('0xbd')]['id'],_0x3ffb41);var _0x464055=path[_0x3c3e('0xd4')](_0x36aa2a,_0x2d51a2);var _0x1f36eb=[];if(_0x4b0afb[_0x3c3e('0x35')][_0x3c3e('0xd5')]){_0x1f36eb['push']({'model':db[_0x3c3e('0xd7')],'as':_0x3c3e('0xd8'),'raw':!![]});}var _0x11adf9=[{'model':db[_0x3c3e('0x29')],'as':_0x3c3e('0xd9'),'attributes':['id',_0x3c3e('0xbc'),_0x3c3e('0x41'),'to','cc',_0x3c3e('0xda'),_0x3c3e('0xdb'),_0x3c3e('0xdc')],'where':{'secret':![]},'order':qs[_0x3c3e('0x3e')]('id'),'include':_0x1f36eb}];return db['MailInteraction'][_0x3c3e('0x59')]({'where':{'id':_0x4b0afb[_0x3c3e('0xbd')]['id']},'include':_0x11adf9})['then'](handleEntityNotFound(_0x42b0cd,null))[_0x3c3e('0x1f')](function(_0x142c73){if(_0x142c73&&_0x142c73[_0x3c3e('0xd9')]){var _0x3ed6b7=_0x142c73[_0x3c3e('0xdd')]({'plain':!![]});fs[_0x3c3e('0xde')](_0x51f325);return BPromise[_0x3c3e('0xdf')](_0x3ed6b7[_0x3c3e('0xd9')],function(_0x38acfd,_0x27e8fa){var _0x312574={'from':_0x38acfd['from'],'to':_0x38acfd['to'],'subject':_0x38acfd[_0x3c3e('0xdb')],'html':htmlEntities[_0x3c3e('0xe0')](_0x38acfd[_0x3c3e('0xbc')]),'headers':{'Date':moment(_0x38acfd[_0x3c3e('0xdc')])[_0x3c3e('0xc4')](_0x3c3e('0xe1'))},'attachments':[]};if(_0x38acfd['cc']){_0x312574[_0x3c3e('0xe2')]['Cc']=_0x38acfd['cc'];}if(_0x38acfd[_0x3c3e('0xda')]){_0x312574['headers'][_0x3c3e('0xe3')]=_0x38acfd[_0x3c3e('0xda')];}return new BPromise(function(_0x199049,_0x238066){if(_0x38acfd[_0x3c3e('0xd8')]){for(var _0xe75ab0=0x0;_0xe75ab0<_0x38acfd['Attachments']['length'];_0xe75ab0++){var _0x3c04f5=_0x38acfd[_0x3c3e('0xd8')][_0xe75ab0];var _0x29bb45=path[_0x3c3e('0xd4')](_0x298256,_0x3c04f5['basename']);if(fs[_0x3c3e('0xe4')](_0x29bb45)){_0x312574[_0x3c3e('0xd5')][_0x3c3e('0xb4')]({'name':_0x3c04f5[_0x3c3e('0x22')],'contentType':_0x3c04f5[_0x3c3e('0xe5')],'data':fs[_0x3c3e('0xe6')](_0x29bb45)});}}}emlformat[_0x3c3e('0xe7')](_0x312574,function(_0x290fec,_0x265c82){if(_0x290fec)return _0x238066(_0x290fec);fs['writeFileSync'](path[_0x3c3e('0xd4')](_0x51f325,util['format'](_0x3c3e('0xe8'),_0x27e8fa)),_0x265c82);return _0x199049(_0x265c82);});});})[_0x3c3e('0x1f')](function(){return new BPromise(function(_0x2f258a,_0x37c964){zipdir(_0x51f325,{'saveTo':_0x464055},function(_0x110c81,_0x430b4a){if(_0x110c81)return _0x37c964(_0x110c81);return _0x2f258a(_0x430b4a);});})[_0x3c3e('0x1f')](function(){return new BPromise(function(_0x5e9c3c,_0x5f19fd){rimraf(_0x51f325,function(_0x65af03){if(_0x65af03)_0x5f19fd(_0x65af03);return _0x5e9c3c();});});})[_0x3c3e('0x1f')](function(){return _0x42b0cd[_0x3c3e('0xce')](_0x464055,_0x2d51a2,function(_0x110f4c){if(!_0x110f4c)fs[_0x3c3e('0xe9')](_0x464055);});});});}else{return _0x42b0cd[_0x3c3e('0x15')](0xc8);}})['catch'](handleError(_0x42b0cd,null));};
\ No newline at end of file
+var _0xb10b=['Contact.email','c.phone','Contact.phone','c.mobile','Contact.mobile','c.fax','o.fullname','Owner.fullname','o.internal','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.MailInteractionId\x20IN\x20?','groupBy','MailInteractionId','Setting','findOne','enableEmailPreview','show','params','rawAttributes','includeAll','include','merge','options','create','body','describe','addMessage','ids','omit','getMessages','nolimit','pick','$gte','format','YYYY-MM-DD\x20HH:mm:ss','findAll','inlineCss','rows','spread','emit','mailInteractionTags:save','removeTags','download','unix','join','server','tmp','root','files','attachments','transcript-%d-%s.zip','Attachment','Attachments','Messages','subject','get','each','ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ','headers','bcc','Bcc','basename','existsSync','build','message%d.eml','unlinkSync','eml-format','zip-dir','moment','bluebird','path','lodash','squel','juice','ioredis','../../components/parsers/qs','../../config/logger','api','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./mailInteraction.socket','sendStatus','end','status','json','offset','undefined','limit','count','set','Content-Range','update','destroy','then','error','stack','name','send','fullname','TagIds','Tags','split','forEach','push','MailMessage','out','-id','trimStart','plainBody','catch','index','map','MailInteraction','key','model','query','keys','filters','intersection','fields','attributes','hasOwnProperty','order','sort','where','field','color','tools_tags','u.id','ui.MailInteractionId','from','user_has_mail_interactions','left_join','users','u.id\x20=\x20ui.UserId','select','mail_interactions','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','o.id\x20=\x20i.UserId','mail_accounts','a.id\x20=\x20i.MailAccountId','mail_messages','me.MailInteractionId\x20=\x20i.id','it.MailInteractionId\x20=\x20i.id','expr','search','parseSearch','conditions','length','find','unreadMessages','value','having','`\x20>\x200','Contact','operator','$substring','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?','ContactId','buildExpression','type','text','Tag','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','User','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','start','some','compact','isEmpty','i.MailAccountId\x20IN\x20?','concat','createdAt','parse','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20IS\x20NULL','\x20=\x20?','read','`unreadMessages`\x20>\x200','tag','isArray','filter','replace','isNumeric','isEmail','MATCH\x20(me.plainBody,\x20me.subject)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','group','SELECT','clone','i.id','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','DESC','t.id\x20IN\x20?','resolve','MailAccountId','i.MailAccountId\x20IS\x20NOT\x20NULL','role','getMailAccounts','i.MailAccountId\x20IS\x20NULL','agent','toString','sequelize','keyBy','a.key','Account.key','Account.mandatoryDisposition','CASE\x20WHEN\x20i.to\x20IS\x20NOT\x20NULL\x20AND\x20i.to\x20<>\x20\x27\x27\x20AND\x20i.to\x20NOT\x20LIKE\x20(\x27%\x27\x20+\x20a.email\x20+\x20\x27%\x27)\x20THEN\x20SUBSTRING_INDEX(i.to,\x20\x27<\x27,\x201)\x20WHEN\x20(c.firstName\x20IS\x20NOT\x20NULL\x20AND\x20c.firstName\x20<>\x20\x27\x27)\x20OR\x20(c.lastName\x20IS\x20NOT\x20NULL\x20AND\x20c.lastName\x20<>\x20\x27\x27)\x20THEN\x20CONCAT(IFNULL(c.firstName,\x20\x27\x27),\x20\x27\x20\x27,\x20IFNULL(c.lastName,\x20\x27\x27))\x20ELSE\x20\x27Unknown\x27\x20END','contactName','i.createdAt','i.updatedAt','i.closed','i.attach','i.lastMsgAt','i.subject','i.disposition','i.secondDisposition','i.thirdDisposition','i.ContactId','i.MailAccountId','Contact.firstName','c.email'];(function(_0x2bf141,_0x31eac7){var _0x48277b=function(_0x9fe560){while(--_0x9fe560){_0x2bf141['push'](_0x2bf141['shift']());}};_0x48277b(++_0x31eac7);}(_0xb10b,0x12a));var _0xbb10=function(_0x124d12,_0x2351a1){_0x124d12=_0x124d12-0x0;var _0x54180f=_0xb10b[_0x124d12];return _0x54180f;};'use strict';var emlformat=require(_0xbb10('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xbb10('0x1'));var moment=require(_0xbb10('0x2'));var BPromise=require(_0xbb10('0x3'));var util=require('util');var path=require(_0xbb10('0x4'));var fs=require('fs');var _=require(_0xbb10('0x5'));var squel=require(_0xbb10('0x6'));var juice=require(_0xbb10('0x7'));var Redis=require(_0xbb10('0x8'));var qs=require(_0xbb10('0x9'));var as=require('../../components/parsers/advancedSearch');var logger=require(_0xbb10('0xa'))(_0xbb10('0xb'));var config=require('../../config/environment');var db=require(_0xbb10('0xc'))['db'];config[_0xbb10('0xd')]=_[_0xbb10('0xe')](config[_0xbb10('0xd')],{'host':_0xbb10('0xf'),'port':0x18eb});var socket=require(_0xbb10('0x10'))(new Redis(config[_0xbb10('0xd')]));require(_0xbb10('0x11'))['register'](socket);function respondWithStatusCode(_0x4e47f8,_0x20bd61){_0x20bd61=_0x20bd61||0xcc;return function(_0x118a74){if(_0x118a74){return _0x4e47f8[_0xbb10('0x12')](_0x20bd61);}return _0x4e47f8['status'](_0x20bd61)[_0xbb10('0x13')]();};}function respondWithResult(_0x5be7e0,_0x44fb19){_0x44fb19=_0x44fb19||0xc8;return function(_0x916a32){if(_0x916a32){return _0x5be7e0[_0xbb10('0x14')](_0x44fb19)[_0xbb10('0x15')](_0x916a32);}};}function respondWithFilteredResult(_0x442548,_0x147230){return function(_0x58a612){if(_0x58a612){var _0x26e021=typeof _0x147230[_0xbb10('0x16')]===_0xbb10('0x17')&&typeof _0x147230[_0xbb10('0x18')]===_0xbb10('0x17');var _0x2f2ebf=_0x58a612[_0xbb10('0x19')];var _0x36b5e8=_0x26e021?0x0:_0x147230[_0xbb10('0x16')];var _0x2b184e=_0x26e021?_0x58a612['count']:_0x147230[_0xbb10('0x16')]+_0x147230[_0xbb10('0x18')];var _0x133ac2;if(_0x2b184e>=_0x2f2ebf){_0x2b184e=_0x2f2ebf;_0x133ac2=0xc8;}else{_0x133ac2=0xce;}_0x442548[_0xbb10('0x14')](_0x133ac2);return _0x442548[_0xbb10('0x1a')](_0xbb10('0x1b'),_0x36b5e8+'-'+_0x2b184e+'/'+_0x2f2ebf)[_0xbb10('0x15')](_0x58a612);}return null;};}function saveUpdates(_0x30efc6){return function(_0xbf2906){if(_0xbf2906){return _0xbf2906[_0xbb10('0x1c')](_0x30efc6)['then'](function(_0x5ff0cf){return _0x5ff0cf;});}return null;};}function removeEntity(_0x19f48d){return function(_0x388fab){if(_0x388fab){return _0x388fab[_0xbb10('0x1d')]()[_0xbb10('0x1e')](function(){_0x19f48d[_0xbb10('0x14')](0xcc)['end']();});}};}function handleEntityNotFound(_0x12f888){return function(_0x12ef77){if(!_0x12ef77){_0x12f888['sendStatus'](0x194);}return _0x12ef77;};}function handleError(_0x4c4b0d,_0x8e2b97){_0x8e2b97=_0x8e2b97||0x1f4;return function(_0x311abe){logger[_0xbb10('0x1f')](_0x311abe[_0xbb10('0x20')]);if(_0x311abe[_0xbb10('0x21')]){delete _0x311abe[_0xbb10('0x21')];}_0x4c4b0d[_0xbb10('0x14')](_0x8e2b97)[_0xbb10('0x22')](_0x311abe);};}function getInteractionUsers(_0x7f2377,_0x395404){return new BPromise(function(_0x3ba6cd,_0x26ad93){try{if(_0x395404[_0x7f2377['id']]){_0x7f2377['Users']=_['map'](_0x395404[_0x7f2377['id']],function(_0x4fb5e0){return{'id':_0x4fb5e0['id'],'fullname':_0x4fb5e0[_0xbb10('0x23')]};});}}catch(_0x3c5ae7){_0x26ad93(_0x3c5ae7);}_0x3ba6cd(_0x7f2377);});}function getInteractionTags(_0x2c89b9,_0x4e25ff){return new BPromise(function(_0x2fdde9,_0x24d586){try{if(_0x2c89b9[_0xbb10('0x24')]){_0x2c89b9[_0xbb10('0x25')]=[];_0x2c89b9[_0xbb10('0x24')][_0xbb10('0x26')](',')[_0xbb10('0x27')](function(_0x4aabb9){_0x2c89b9[_0xbb10('0x25')][_0xbb10('0x28')](_0x4e25ff[_0x4aabb9]);});}delete _0x2c89b9[_0xbb10('0x24')];}catch(_0x2e0249){_0x24d586(_0x2e0249);}_0x2fdde9(_0x2c89b9);});}function getLastMessageText(_0x1d30aa){return new BPromise(function(_0x2ff4c1,_0x5d5c80){return db[_0xbb10('0x29')]['findOne']({'where':{'$and':[{'MailInteractionId':_0x1d30aa['id']},{'$or':[{'direction':'in'},{'$and':[{'direction':_0xbb10('0x2a')},{'secret':![]},{'UserId':{'$ne':null}}]}]}]},'attributes':['plainBody'],'order':_0xbb10('0x2b'),'raw':!![]})[_0xbb10('0x1e')](function(_0x1b59f9){if(_0x1b59f9&&_0x1b59f9['plainBody']){_0x1d30aa['lastMsgText']=_[_0xbb10('0x2c')](_0x1b59f9[_0xbb10('0x2d')]);}_0x2ff4c1(_0x1d30aa);})['catch'](function(_0x359ad4){_0x5d5c80(_0x359ad4);});});}function updateMailInteraction(_0x37dde7,_0x2f653f,_0x1c0b57,_0x37a83f){return new BPromise(function(_0x138bc6,_0xf85197){return getInteractionUsers(_0x37dde7,_0x1c0b57)['then'](function(_0x25acb3){return getInteractionTags(_0x25acb3,_0x2f653f);})[_0xbb10('0x1e')](function(_0x441d15){if(_0x37a83f){_0x138bc6(getLastMessageText(_0x441d15));}else{_0x138bc6(_0x441d15);}})[_0xbb10('0x2e')](function(_0xfb2c5e){_0xf85197(_0xfb2c5e);});});}exports[_0xbb10('0x2f')]=function(_0x188cbd,_0x10202c){var _0x3c8d7d={},_0x56943c={},_0x2b5352={'count':0x0,'rows':[]};var _0x150107=_[_0xbb10('0x30')](db[_0xbb10('0x31')]['rawAttributes'],function(_0x111762){return{'name':_0x111762['fieldName'],'type':_0x111762['type'][_0xbb10('0x32')]};});_0x56943c[_0xbb10('0x33')]=_[_0xbb10('0x30')](_0x150107,_0xbb10('0x21'));_0x56943c[_0xbb10('0x34')]=_[_0xbb10('0x35')](_0x188cbd['query']);_0x56943c[_0xbb10('0x36')]=_[_0xbb10('0x37')](_0x56943c['model'],_0x56943c['query']);_0x3c8d7d['attributes']=_[_0xbb10('0x37')](_0x56943c[_0xbb10('0x33')],qs[_0xbb10('0x38')](_0x188cbd['query'][_0xbb10('0x38')]));_0x3c8d7d[_0xbb10('0x39')]=_0x3c8d7d[_0xbb10('0x39')]['length']?_0x3c8d7d[_0xbb10('0x39')]:_0x56943c[_0xbb10('0x33')];if(!_0x188cbd[_0xbb10('0x34')][_0xbb10('0x3a')]('nolimit')){_0x3c8d7d[_0xbb10('0x18')]=qs[_0xbb10('0x18')](_0x188cbd['query'][_0xbb10('0x18')]);_0x3c8d7d[_0xbb10('0x16')]=qs[_0xbb10('0x16')](_0x188cbd[_0xbb10('0x34')][_0xbb10('0x16')]);}_0x3c8d7d[_0xbb10('0x3b')]=qs['sort'](_0x188cbd[_0xbb10('0x34')][_0xbb10('0x3c')]);_0x3c8d7d[_0xbb10('0x3d')]=qs[_0xbb10('0x36')](_['pick'](_0x188cbd[_0xbb10('0x34')],_0x56943c[_0xbb10('0x36')]),_0x150107);var _0x23dc18=[];var _0x403beb=squel['select']()[_0xbb10('0x3e')]('id')[_0xbb10('0x3e')]('name')['field'](_0xbb10('0x3f'))['from'](_0xbb10('0x40'));var _0x180933=squel['select']()[_0xbb10('0x3e')](_0xbb10('0x41'))[_0xbb10('0x3e')]('u.fullname')[_0xbb10('0x3e')](_0xbb10('0x42'))[_0xbb10('0x43')](_0xbb10('0x44'),'ui')[_0xbb10('0x45')](_0xbb10('0x46'),'u',_0xbb10('0x47'));var _0x3efa96=squel[_0xbb10('0x48')]()[_0xbb10('0x43')](_0xbb10('0x49'),'i')[_0xbb10('0x45')]('cm_contacts','c',_0xbb10('0x4a'))[_0xbb10('0x45')]('users','o',_0xbb10('0x4b'))[_0xbb10('0x45')](_0xbb10('0x4c'),'a',_0xbb10('0x4d'))[_0xbb10('0x45')](_0xbb10('0x4e'),'me',_0xbb10('0x4f'))['left_join']('mail_interaction_has_tags','it',_0xbb10('0x50'))[_0xbb10('0x45')](_0xbb10('0x40'),'t','t.id\x20=\x20it.TagId');var _0x5f0c12=squel[_0xbb10('0x51')]();var _0x34cf4e=[];var _0x1bd054=squel[_0xbb10('0x51')]();var _0x10159b;if(_0x188cbd[_0xbb10('0x34')][_0xbb10('0x52')]){_0x10159b=as[_0xbb10('0x53')](_0x188cbd[_0xbb10('0x34')][_0xbb10('0x52')]);var _0x550111=_0x10159b['sqlOperator'];for(var _0x412e13=0x0;_0x412e13<_0x10159b[_0xbb10('0x54')][_0xbb10('0x55')];_0x412e13++){var _0xb014b0=_0x10159b[_0xbb10('0x54')][_0x412e13];var _0x440f9e='i';var _0x358e7e=_[_0xbb10('0x56')](_0x150107,[_0xbb10('0x21'),_0xb014b0[_0xbb10('0x3e')]]);if(!_0x358e7e){switch(_0xb014b0[_0xbb10('0x3e')]){case _0xbb10('0x57'):if(_0xb014b0[_0xbb10('0x58')]==0x1){_0x3efa96[_0xbb10('0x59')]('`'+_0xb014b0[_0xbb10('0x3e')]+'`\x20=\x200');}else{_0x3efa96[_0xbb10('0x59')]('`'+_0xb014b0['field']+_0xbb10('0x5a'));}break;case _0xbb10('0x5b'):if(_0xb014b0[_0xbb10('0x5c')]===_0xbb10('0x5d')){if(_0xb014b0[_0xbb10('0x58')][_0xbb10('0x26')]('\x20')[_0xbb10('0x55')]>0x1){_0x5f0c12[_0x550111](_0xbb10('0x5e'),qs[_0xbb10('0x5f')](_0xb014b0[_0xbb10('0x58')]),null);}else{var _0x44a056='%'+_0xb014b0[_0xbb10('0x58')]+'%';_0x5f0c12[_0x550111](_0xbb10('0x60'),_0x44a056,_0x44a056,_0x44a056);}}else{_0x358e7e=_[_0xbb10('0x56')](_0x150107,[_0xbb10('0x21'),'ContactId']);_0xb014b0[_0xbb10('0x3e')]=_0xbb10('0x61');_0x155dc5=as[_0xbb10('0x62')](_0x440f9e,_0x358e7e[_0xbb10('0x63')],_0xb014b0);_0x5f0c12[_0x550111](_0x155dc5[_0xbb10('0x64')],_0x155dc5[_0xbb10('0x58')]['start'],_0x155dc5[_0xbb10('0x58')][_0xbb10('0x13')]);}break;case _0xbb10('0x65'):var _0x14fed3=_0xb014b0[_0xbb10('0x58')][_0xbb10('0x26')](',')[_0xbb10('0x30')](function(_0x12ec18){return Number(_0x12ec18);});_0x14fed3[_0xbb10('0x27')](function(_0x40c4fb){_0x1bd054['or'](_0xbb10('0x66'),'%,'+_0x40c4fb+',%');});_0x34cf4e=_[_0xbb10('0x67')](_0x34cf4e,_0x14fed3);break;case _0xbb10('0x68'):if(_0xb014b0['operator']==='$substring'){_0x5f0c12[_0x550111](_0xbb10('0x69'),'%'+_0xb014b0[_0xbb10('0x58')]+'%',null);}else{_0x358e7e=_[_0xbb10('0x56')](_0x150107,[_0xbb10('0x21'),'UserId']);_0xb014b0['field']=_0xbb10('0x6a');_0x155dc5=as[_0xbb10('0x62')](_0x440f9e,_0x358e7e[_0xbb10('0x63')],_0xb014b0);_0x5f0c12[_0x550111](_0x155dc5[_0xbb10('0x64')],_0x155dc5[_0xbb10('0x58')][_0xbb10('0x6b')],_0x155dc5[_0xbb10('0x58')]['end']);}break;case _0xbb10('0x2d'):_0x155dc5=as[_0xbb10('0x62')]('me',null,_0xb014b0);_0x5f0c12[_0x550111](_0x155dc5['text'],_0x155dc5['value']['start'],_0x155dc5[_0xbb10('0x58')][_0xbb10('0x13')]);break;}}else{var _0x155dc5=as['buildExpression'](_0x440f9e,_0x358e7e['type'],_0xb014b0);_0x5f0c12[_0x550111](_0x155dc5['text'],_0x155dc5[_0xbb10('0x58')][_0xbb10('0x6b')],_0x155dc5[_0xbb10('0x58')]['end']);}}}else{var _0xa1bbd9=_(_0x188cbd[_0xbb10('0x34')])['keys']()['map'](function(_0x27d7b9){return _[_0xbb10('0x6c')](_0x150107,[_0xbb10('0x21'),_0x27d7b9])?_0x27d7b9:undefined;})[_0xbb10('0x6d')]()['value']();if(!_[_0xbb10('0x6e')](_0xa1bbd9)){_0xa1bbd9[_0xbb10('0x27')](function(_0xa7179d){if(_0xa7179d==='MailAccountId'){_0x3efa96[_0xbb10('0x3d')](_0xbb10('0x6f'),[][_0xbb10('0x70')](_0x188cbd['query'][_0xa7179d]));}else if(_0xa7179d===_0xbb10('0x71')){var _0x31e85e=JSON[_0xbb10('0x72')](_0x188cbd[_0xbb10('0x34')][_0xa7179d])['$gte'];var _0x251417=JSON[_0xbb10('0x72')](_0x188cbd[_0xbb10('0x34')][_0xa7179d])[_0xbb10('0x73')];_0x3efa96['where'](_0xbb10('0x74'),_0x31e85e,_0x251417);}else{if(_0x188cbd[_0xbb10('0x34')][_0xa7179d]===_0xbb10('0x75')){_0x3efa96[_0xbb10('0x3d')]('i.'+_0xa7179d+_0xbb10('0x76'));}else{_0x3efa96[_0xbb10('0x3d')]('i.'+_0xa7179d+_0xbb10('0x77'),_0x188cbd['query'][_0xa7179d]);}}});}if(_0x188cbd['query']['read']){if(_0x188cbd[_0xbb10('0x34')][_0xbb10('0x78')]==0x1){_0x3efa96[_0xbb10('0x59')]('`unreadMessages`\x20=\x200');}else{_0x3efa96['having'](_0xbb10('0x79'));}}if(_0x188cbd[_0xbb10('0x34')][_0xbb10('0x7a')]){_0x34cf4e=_[_0xbb10('0x7b')](_0x188cbd[_0xbb10('0x34')][_0xbb10('0x7a')])?_0x188cbd['query'][_0xbb10('0x7a')]:new Array(_0x188cbd[_0xbb10('0x34')][_0xbb10('0x7a')]);_0x34cf4e[_0xbb10('0x27')](function(_0x2aaaa6){_0x1bd054['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x2aaaa6+',%');});}if(_0x188cbd['query']['filter']){var _0x329da7=_0x188cbd[_0xbb10('0x34')][_0xbb10('0x7c')][_0xbb10('0x7d')]('\x5c','\x5c\x5c')[_0xbb10('0x7d')](/'/g,'\x27\x27');if(qs[_0xbb10('0x7e')](_0x329da7)){_0x5f0c12['or']('i.id\x20LIKE\x20?',_0x329da7+'%');}else if(qs[_0xbb10('0x7f')](_0x329da7)){_0x5f0c12['or']('c.email\x20LIKE\x20?',_0x329da7+'%');}else{_0x5f0c12['or']('MATCH\x20(i.to,\x20i.subject)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs['getFullTextValue'](_0x329da7))['or'](_0xbb10('0x80'),qs[_0xbb10('0x5f')](_0x329da7));}}}_0x3efa96[_0xbb10('0x3d')](_0x5f0c12);_0x3efa96[_0xbb10('0x81')]('i.id');var _0x122d38={'type':db['Sequelize']['QueryTypes'][_0xbb10('0x82')],'raw':!![]};var _0xfe3db0=_0x3efa96[_0xbb10('0x83')]();_0xfe3db0[_0xbb10('0x3e')](_0xbb10('0x84'));_0xfe3db0['field'](_0xbb10('0x85'),_0xbb10('0x57'));if(_0x3c8d7d[_0xbb10('0x3b')]){_0x3c8d7d[_0xbb10('0x3b')][_0xbb10('0x27')](function(_0x27f42f){var _0x174395=_0x27f42f[0x0]==='contactName'?_0x27f42f[0x0]:'i.'+_0x27f42f[0x0];_0x3efa96[_0xbb10('0x3b')](_0x174395,_0x27f42f[0x1]===_0xbb10('0x86')?![]:!![]);});}if(!_[_0xbb10('0x6e')](_0x34cf4e)){_0x3efa96[_0xbb10('0x59')](_0x1bd054);_0xfe3db0[_0xbb10('0x3d')](_0xbb10('0x87'),_0x34cf4e);}BPromise[_0xbb10('0x88')]()[_0xbb10('0x1e')](function(){if(!_0x10159b){if(_0x188cbd['query'][_0xbb10('0x89')])return;_0xfe3db0[_0xbb10('0x3d')](_0xbb10('0x8a'));_0x3efa96['where']('i.MailAccountId\x20IS\x20NOT\x20NULL');return;}if(_0x188cbd['user'][_0xbb10('0x8b')]!=='agent')return;return _0x188cbd['user'][_0xbb10('0x8c')]({'attributes':['id'],'raw':!![]})[_0xbb10('0x1e')](function(_0x33ff06){if(_[_0xbb10('0x6e')](_0x33ff06)){_0xfe3db0[_0xbb10('0x3d')](_0xbb10('0x8d'));_0x3efa96[_0xbb10('0x3d')](_0xbb10('0x8d'));}else{_0xfe3db0[_0xbb10('0x3d')]('i.MailAccountId\x20IN\x20?',_[_0xbb10('0x30')](_0x33ff06,'id'));_0x3efa96[_0xbb10('0x3d')](_0xbb10('0x6f'),_[_0xbb10('0x30')](_0x33ff06,'id'));}});})['then'](function(){if(_0x188cbd['user'][_0xbb10('0x8b')]===_0xbb10('0x8e')&&!_0x10159b&&!_0x188cbd[_0xbb10('0x34')][_0xbb10('0x89')])return[];return db['sequelize'][_0xbb10('0x34')](_0xfe3db0[_0xbb10('0x8f')](),_0x122d38);})[_0xbb10('0x1e')](function(_0xf7b3e1){_0x2b5352[_0xbb10('0x19')]=_0xf7b3e1['length'];if(_0x2b5352['count']===0x0)return[];return db[_0xbb10('0x90')][_0xbb10('0x34')](_0x403beb[_0xbb10('0x8f')](),_0x122d38)['then'](function(_0x256b35){_0x23dc18=_[_0xbb10('0x91')](_0x256b35,'id');_0x122d38=_['merge'](_0x122d38,{'model':db['MailInteraction'],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x188cbd[_0xbb10('0x34')][_0xbb10('0x38')]){_0x3c8d7d[_0xbb10('0x39')]['forEach'](function(_0x32d5a5){_0x3efa96[_0xbb10('0x3e')]('i.'+_0x32d5a5);});}else{_0x3efa96[_0xbb10('0x3e')](_0xbb10('0x85'),_0xbb10('0x57'));_0x3efa96[_0xbb10('0x3e')](_0xbb10('0x92'),_0xbb10('0x93'));_0x3efa96[_0xbb10('0x3e')]('a.mandatoryDisposition',_0xbb10('0x94'));_0x3efa96[_0xbb10('0x3e')](_0xbb10('0x95'),_0xbb10('0x96'));_0x3efa96[_0xbb10('0x3e')](_0xbb10('0x84'));_0x3efa96[_0xbb10('0x3e')](_0xbb10('0x97'));_0x3efa96[_0xbb10('0x3e')](_0xbb10('0x98'));_0x3efa96[_0xbb10('0x3e')](_0xbb10('0x99'));_0x3efa96['field']('i.closedAt');_0x3efa96[_0xbb10('0x3e')](_0xbb10('0x9a'));_0x3efa96[_0xbb10('0x3e')](_0xbb10('0x9b'));_0x3efa96[_0xbb10('0x3e')]('i.lastMsgDirection');_0x3efa96[_0xbb10('0x3e')](_0xbb10('0x9c'));_0x3efa96[_0xbb10('0x3e')](_0xbb10('0x9d'));_0x3efa96[_0xbb10('0x3e')](_0xbb10('0x9e'));_0x3efa96['field'](_0xbb10('0x9f'));_0x3efa96[_0xbb10('0x3e')]('i.substatus');_0x3efa96[_0xbb10('0x3e')]('i.to');_0x3efa96[_0xbb10('0x3e')](_0xbb10('0xa0'));_0x3efa96[_0xbb10('0x3e')](_0xbb10('0xa1'));_0x3efa96[_0xbb10('0x3e')]('i.UserId');_0x3efa96[_0xbb10('0x3e')]('c.firstName',_0xbb10('0xa2'));_0x3efa96[_0xbb10('0x3e')]('c.lastName','Contact.lastName');_0x3efa96[_0xbb10('0x3e')](_0xbb10('0xa3'),_0xbb10('0xa4'));_0x3efa96[_0xbb10('0x3e')](_0xbb10('0xa5'),_0xbb10('0xa6'));_0x3efa96[_0xbb10('0x3e')](_0xbb10('0xa7'),_0xbb10('0xa8'));_0x3efa96[_0xbb10('0x3e')](_0xbb10('0xa9'),'Contact.fax');_0x3efa96[_0xbb10('0x3e')](_0xbb10('0xaa'),_0xbb10('0xab'));_0x3efa96[_0xbb10('0x3e')](_0xbb10('0xac'),_0xbb10('0xad'));_0x3efa96[_0xbb10('0x3e')](_0xbb10('0xae'),_0xbb10('0x24'));}if(_0x3c8d7d[_0xbb10('0x18')])_0x3efa96[_0xbb10('0x18')](_0x3c8d7d[_0xbb10('0x18')]);if(_0x3c8d7d['offset'])_0x3efa96[_0xbb10('0x16')](_0x3c8d7d['offset']);return db[_0xbb10('0x90')][_0xbb10('0x34')](_0x3efa96[_0xbb10('0x8f')](),_0x122d38);})[_0xbb10('0x1e')](function(_0x38d369){if(_0x38d369['length']>0x0)_0x180933[_0xbb10('0x3d')](_0xbb10('0xaf'),_[_0xbb10('0x30')](_0x38d369,'id'));return db[_0xbb10('0x90')][_0xbb10('0x34')](_0x180933[_0xbb10('0x8f')](),_0x122d38)['then'](function(_0x4bd470){var _0x5cc9d7=_[_0xbb10('0xb0')](_0x4bd470,_0xbb10('0xb1'));var _0x57d5a1=[];return db[_0xbb10('0xb2')][_0xbb10('0xb3')]({'attributes':['enableEmailPreview'],'raw':!![]})[_0xbb10('0x1e')](function(_0xaede56){var _0x5642c3=_0xaede56[_0xbb10('0xb4')];_0x38d369['forEach'](function(_0x34cec7){_0x57d5a1[_0xbb10('0x28')](updateMailInteraction(_0x34cec7,_0x23dc18,_0x5cc9d7,_0x5642c3));});return BPromise['all'](_0x57d5a1);});});});})[_0xbb10('0x1e')](function(_0x28cc74){_0x2b5352['rows']=_0x28cc74;return _0x2b5352;})['then'](respondWithFilteredResult(_0x10202c,_0x3c8d7d))[_0xbb10('0x2e')](handleError(_0x10202c,null));};exports[_0xbb10('0xb5')]=function(_0x3e0e34,_0x3299bc){var _0x3ceb77={'raw':![],'where':{'id':_0x3e0e34[_0xbb10('0xb6')]['id']}},_0x4c3bdc={};_0x4c3bdc[_0xbb10('0x33')]=_[_0xbb10('0x35')](db['MailInteraction'][_0xbb10('0xb7')]);_0x4c3bdc[_0xbb10('0x34')]=_[_0xbb10('0x35')](_0x3e0e34[_0xbb10('0x34')]);_0x4c3bdc[_0xbb10('0x36')]=_[_0xbb10('0x37')](_0x4c3bdc[_0xbb10('0x33')],_0x4c3bdc[_0xbb10('0x34')]);_0x3ceb77[_0xbb10('0x39')]=_['intersection'](_0x4c3bdc['model'],qs[_0xbb10('0x38')](_0x3e0e34[_0xbb10('0x34')][_0xbb10('0x38')]));_0x3ceb77[_0xbb10('0x39')]=_0x3ceb77[_0xbb10('0x39')][_0xbb10('0x55')]?_0x3ceb77[_0xbb10('0x39')]:_0x4c3bdc[_0xbb10('0x33')];if(_0x3e0e34[_0xbb10('0x34')][_0xbb10('0xb8')]){_0x3ceb77[_0xbb10('0xb9')]=[{'all':!![]}];}_0x3ceb77=_[_0xbb10('0xba')]({},_0x3ceb77,_0x3e0e34[_0xbb10('0xbb')]);return db['MailInteraction'][_0xbb10('0x56')](_0x3ceb77)[_0xbb10('0x1e')](handleEntityNotFound(_0x3299bc,null))[_0xbb10('0x1e')](respondWithResult(_0x3299bc,null))[_0xbb10('0x2e')](handleError(_0x3299bc,null));};exports[_0xbb10('0xbc')]=function(_0xd9284e,_0x4258fc){return db[_0xbb10('0x31')][_0xbb10('0xbc')](_0xd9284e[_0xbb10('0xbd')],{})[_0xbb10('0x1e')](respondWithResult(_0x4258fc,0xc9))['catch'](handleError(_0x4258fc,null));};exports[_0xbb10('0x1c')]=function(_0x5e1ac5,_0x3faaca){if(_0x5e1ac5[_0xbb10('0xbd')]['id']){delete _0x5e1ac5[_0xbb10('0xbd')]['id'];}return db[_0xbb10('0x31')][_0xbb10('0x56')]({'where':{'id':_0x5e1ac5[_0xbb10('0xb6')]['id']}})['then'](handleEntityNotFound(_0x3faaca,null))[_0xbb10('0x1e')](saveUpdates(_0x5e1ac5['body'],null))[_0xbb10('0x1e')](respondWithResult(_0x3faaca,null))[_0xbb10('0x2e')](handleError(_0x3faaca,null));};exports[_0xbb10('0x1d')]=function(_0x576bb6,_0x2b652c){return db[_0xbb10('0x31')][_0xbb10('0x56')]({'where':{'id':_0x576bb6[_0xbb10('0xb6')]['id']}})[_0xbb10('0x1e')](handleEntityNotFound(_0x2b652c,null))[_0xbb10('0x1e')](removeEntity(_0x2b652c,null))[_0xbb10('0x2e')](handleError(_0x2b652c,null));};exports[_0xbb10('0xbe')]=function(_0x589565,_0x3696b3){return db['MailInteraction'][_0xbb10('0xbe')]()[_0xbb10('0x1e')](respondWithResult(_0x3696b3,null))[_0xbb10('0x2e')](handleError(_0x3696b3,null));};exports[_0xbb10('0xbf')]=function(_0x44c229,_0x40271f){return db[_0xbb10('0x29')]['find']({'where':{'id':_0x44c229[_0xbb10('0xb6')]['id']}})['then'](handleEntityNotFound(_0x40271f,null))['then'](function(_0x1513e0){if(_0x1513e0){return _0x1513e0[_0xbb10('0xbf')](_0x44c229[_0xbb10('0xbd')][_0xbb10('0xc0')],_[_0xbb10('0xc1')](_0x44c229[_0xbb10('0xbd')],['ids','id'])||{});}})[_0xbb10('0x1e')](respondWithResult(_0x40271f,null))[_0xbb10('0x2e')](handleError(_0x40271f,null));};exports[_0xbb10('0xc2')]=function(_0xb1b7c8,_0x136520){var _0x28127c={'raw':![],'where':{}};var _0x528aff={};var _0xdfdc42={'count':0x0,'rows':[]};return db[_0xbb10('0x31')][_0xbb10('0xb3')]({'where':{'id':_0xb1b7c8[_0xbb10('0xb6')]['id']}})[_0xbb10('0x1e')](handleEntityNotFound(_0x136520,null))[_0xbb10('0x1e')](function(_0x2764e1){if(_0x2764e1){_0x528aff['model']=_[_0xbb10('0x35')](db['MailMessage'][_0xbb10('0xb7')]);_0x528aff['query']=_['keys'](_0xb1b7c8[_0xbb10('0x34')]);_0x528aff[_0xbb10('0x36')]=_[_0xbb10('0x37')](_0x528aff[_0xbb10('0x33')],_0x528aff[_0xbb10('0x34')]);_0x28127c['attributes']=_[_0xbb10('0x37')](_0x528aff['model'],qs['fields'](_0xb1b7c8['query'][_0xbb10('0x38')]));_0x28127c[_0xbb10('0x39')]=_0x28127c[_0xbb10('0x39')][_0xbb10('0x55')]?_0x28127c[_0xbb10('0x39')]:_0x528aff['model'];if(!_0xb1b7c8[_0xbb10('0x34')][_0xbb10('0x3a')](_0xbb10('0xc3'))){_0x28127c[_0xbb10('0x18')]=qs[_0xbb10('0x18')](_0xb1b7c8[_0xbb10('0x34')][_0xbb10('0x18')]);_0x28127c['offset']=qs['offset'](_0xb1b7c8['query'][_0xbb10('0x16')]);}_0x28127c[_0xbb10('0x3b')]=qs[_0xbb10('0x3c')](_0xb1b7c8[_0xbb10('0x34')][_0xbb10('0x3c')]);_0x28127c[_0xbb10('0x3d')]=qs[_0xbb10('0x36')](_[_0xbb10('0xc4')](_0xb1b7c8[_0xbb10('0x34')],_0x528aff[_0xbb10('0x36')]));_0x28127c['where']['MailInteractionId']=_0x2764e1['id'];if(_0xb1b7c8['query'][_0xbb10('0x7c')]){_0x28127c[_0xbb10('0x3d')]=_[_0xbb10('0xba')](_0x28127c['where'],{'$or':_[_0xbb10('0x30')](_0x28127c[_0xbb10('0x39')],function(_0x2c638d){var _0x290280={};_0x290280[_0x2c638d]={'$like':'%'+_0xb1b7c8[_0xbb10('0x34')][_0xbb10('0x7c')]+'%'};return _0x290280;})});}if(_0xb1b7c8['query']['$gte']){var _0x356660=_0xb1b7c8['query'][_0xbb10('0xc5')][_0xbb10('0x26')](',');var _0x152ca9={};_0x152ca9[_0x356660[0x0]]={'$gte':moment(_0x356660[0x1])[_0xbb10('0xc6')](_0xbb10('0xc7'))};_0x28127c[_0xbb10('0x3d')]=_[_0xbb10('0xba')](_0x28127c[_0xbb10('0x3d')],_0x152ca9);}_0x28127c=_[_0xbb10('0xba')]({},_0x28127c,_0xb1b7c8[_0xbb10('0xbb')]);return db['MailMessage'][_0xbb10('0x19')]({'where':_0x28127c['where']})[_0xbb10('0x1e')](function(_0x5547fa){_0xdfdc42[_0xbb10('0x19')]=_0x5547fa;if(_0xb1b7c8[_0xbb10('0x34')][_0xbb10('0xb8')]){_0x28127c[_0xbb10('0xb9')]=[{'all':!![]}];}return db['MailMessage'][_0xbb10('0xc8')](_0x28127c);})['then'](function(_0xfe1154){if(_0xb1b7c8[_0xbb10('0x34')][_0xbb10('0xc9')]==='true'){for(var _0x298167=0x0;_0x298167<_0xfe1154[_0xbb10('0x55')];_0x298167++){_0xfe1154[_0x298167][_0xbb10('0xbd')]=juice(_0xfe1154[_0x298167][_0xbb10('0xbd')]);}}_0xdfdc42[_0xbb10('0xca')]=_0xfe1154;return _0xdfdc42;});}})[_0xbb10('0x1e')](respondWithFilteredResult(_0x136520,_0x28127c))['catch'](handleError(_0x136520,null));};exports['addTags']=function(_0x522a88,_0x26a752){return db['MailInteraction'][_0xbb10('0x56')]({'where':{'id':_0x522a88['params']['id']}})[_0xbb10('0x1e')](handleEntityNotFound(_0x26a752,null))[_0xbb10('0x1e')](function(_0x385ad3){if(_0x385ad3){return _0x385ad3['setTags'](_0x522a88['body'][_0xbb10('0xc0')],_[_0xbb10('0xc1')](_0x522a88[_0xbb10('0xbd')],['ids','id'])||{})[_0xbb10('0xcb')](function(){return db[_0xbb10('0x65')][_0xbb10('0xc8')]({'attributes':['id','name','color'],'where':{'id':_0x522a88['body'][_0xbb10('0xc0')]}});})['then'](function(_0x3dfbcd){socket[_0xbb10('0xcc')](_0xbb10('0xcd'),{'id':Number(_0x522a88[_0xbb10('0xb6')]['id']),'tags':_0x3dfbcd||[]});return{'id':Number(_0x522a88[_0xbb10('0xb6')]['id']),'tags':_0x3dfbcd||[]};});}})[_0xbb10('0x1e')](respondWithResult(_0x26a752,null))[_0xbb10('0x2e')](handleError(_0x26a752,null));};exports[_0xbb10('0xce')]=function(_0x2746eb,_0x431792){return db[_0xbb10('0x31')]['find']({'where':{'id':_0x2746eb[_0xbb10('0xb6')]['id']}})[_0xbb10('0x1e')](handleEntityNotFound(_0x431792,null))['then'](function(_0x14ef50){if(_0x14ef50){return _0x14ef50['removeTags'](_0x2746eb['query'][_0xbb10('0xc0')]);}})[_0xbb10('0x1e')](respondWithStatusCode(_0x431792,null))[_0xbb10('0x2e')](handleError(_0x431792,null));};exports[_0xbb10('0xcf')]=function(_0x99c4,_0x4ca4ce){var _0x161171=moment()[_0xbb10('0xd0')]()['toString']();var _0xa45726=path[_0xbb10('0xd1')](config['root'],_0xbb10('0xd2'),'files',_0xbb10('0xd3'));var _0x8e8049=path[_0xbb10('0xd1')](config[_0xbb10('0xd4')],_0xbb10('0xd2'),_0xbb10('0xd5'),_0xbb10('0xd6'));var _0x56f902=path[_0xbb10('0xd1')](_0xa45726,_0x161171);var _0x4720a1=util[_0xbb10('0xc6')](_0xbb10('0xd7'),_0x99c4[_0xbb10('0xb6')]['id'],_0x161171);var _0x1301e3=path['join'](_0xa45726,_0x4720a1);var _0x550301=[];if(_0x99c4['query'][_0xbb10('0xd6')]){_0x550301[_0xbb10('0x28')]({'model':db[_0xbb10('0xd8')],'as':_0xbb10('0xd9'),'raw':!![]});}var _0x57700b=[{'model':db[_0xbb10('0x29')],'as':_0xbb10('0xda'),'attributes':['id',_0xbb10('0xbd'),'from','to','cc','bcc',_0xbb10('0xdb'),'createdAt'],'where':{'secret':![]},'order':qs[_0xbb10('0x3c')]('id'),'include':_0x550301}];return db[_0xbb10('0x31')][_0xbb10('0x56')]({'where':{'id':_0x99c4[_0xbb10('0xb6')]['id']},'include':_0x57700b})[_0xbb10('0x1e')](handleEntityNotFound(_0x4ca4ce,null))[_0xbb10('0x1e')](function(_0x1fe250){if(_0x1fe250&&_0x1fe250['Messages']){var _0x424371=_0x1fe250[_0xbb10('0xdc')]({'plain':!![]});fs['mkdirSync'](_0x56f902);return BPromise[_0xbb10('0xdd')](_0x424371[_0xbb10('0xda')],function(_0x32f261,_0x5b11a2){var _0x4b490a={'from':_0x32f261['from'],'to':_0x32f261['to'],'subject':_0x32f261[_0xbb10('0xdb')],'html':_0x32f261[_0xbb10('0xbd')],'headers':{'Date':moment(_0x32f261['createdAt'])[_0xbb10('0xc6')](_0xbb10('0xde'))},'attachments':[]};if(_0x32f261['cc']){_0x4b490a[_0xbb10('0xdf')]['Cc']=_0x32f261['cc'];}if(_0x32f261[_0xbb10('0xe0')]){_0x4b490a[_0xbb10('0xdf')][_0xbb10('0xe1')]=_0x32f261[_0xbb10('0xe0')];}return new BPromise(function(_0x48f0eb,_0x304603){if(_0x32f261['Attachments']){for(var _0x5a7c4e=0x0;_0x5a7c4e<_0x32f261['Attachments'][_0xbb10('0x55')];_0x5a7c4e++){var _0x572d73=_0x32f261['Attachments'][_0x5a7c4e];var _0x1f09f1=path['join'](_0x8e8049,_0x572d73[_0xbb10('0xe2')]);if(fs[_0xbb10('0xe3')](_0x1f09f1)){_0x4b490a[_0xbb10('0xd6')]['push']({'name':_0x572d73['name'],'contentType':_0x572d73[_0xbb10('0x63')],'data':fs['readFileSync'](_0x1f09f1)});}}}emlformat[_0xbb10('0xe4')](_0x4b490a,function(_0x211172,_0x589ecb){if(_0x211172)return _0x304603(_0x211172);fs['writeFileSync'](path[_0xbb10('0xd1')](_0x56f902,util[_0xbb10('0xc6')](_0xbb10('0xe5'),_0x5b11a2)),_0x589ecb);return _0x48f0eb(_0x589ecb);});});})['then'](function(){return new BPromise(function(_0x4f4aa8,_0x426a4f){zipdir(_0x56f902,{'saveTo':_0x1301e3},function(_0x22f153,_0x4d47cc){if(_0x22f153)return _0x426a4f(_0x22f153);return _0x4f4aa8(_0x4d47cc);});})[_0xbb10('0x1e')](function(){return new BPromise(function(_0x203e5a,_0xe88e90){rimraf(_0x56f902,function(_0x4845b5){if(_0x4845b5)_0xe88e90(_0x4845b5);return _0x203e5a();});});})[_0xbb10('0x1e')](function(){return _0x4ca4ce[_0xbb10('0xcf')](_0x1301e3,_0x4720a1,function(_0x166f4f){if(!_0x166f4f)fs[_0xbb10('0xe6')](_0x1301e3);});});});}else{return _0x4ca4ce[_0xbb10('0x12')](0xc8);}})[_0xbb10('0x2e')](handleError(_0x4ca4ce,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd0a1=['hook','exports','events','../../mysqldb','save','update','remove','setDataValue','map','findAll','then','length','emit','catch'];(function(_0x98f118,_0x1ac28b){var _0x39b182=function(_0x3bca7a){while(--_0x3bca7a){_0x98f118['push'](_0x98f118['shift']());}};_0x39b182(++_0x1ac28b);}(_0xd0a1,0x1d0));var _0x1d0a=function(_0x3cc651,_0x32f10e){_0x3cc651=_0x3cc651-0x0;var _0x372a5a=_0xd0a1[_0x3cc651];return _0x372a5a;};'use strict';var EventEmitter=require(_0x1d0a('0x0'));var MailInteraction=require(_0x1d0a('0x1'))['db']['MailInteraction'];var MailMessage=require('../../mysqldb')['db']['MailMessage'];var MailInteractionEvents=new EventEmitter();MailInteractionEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x1d0a('0x2'),'afterUpdate':_0x1d0a('0x3'),'afterDestroy':_0x1d0a('0x4')};function emitEvent(_0x41769e){return function(_0xbf0447,_0x324111,_0x58ec15){_0xbf0447['getUsers']({'attributes':['id'],'raw':!![]})['then'](function(_0x326884){_0xbf0447[_0x1d0a('0x5')]('Users',_0x326884[_0x1d0a('0x6')](function(_0x25eec2){return{'id':_0x25eec2['id']};}));return MailMessage[_0x1d0a('0x7')]({'where':{'MailInteractionId':_0xbf0447['id'],'direction':'in','read':![]},'raw':!![]});})[_0x1d0a('0x8')](function(_0x11e8d1){_0xbf0447['setDataValue']('unreadMessages',_0x11e8d1[_0x1d0a('0x9')]);MailInteractionEvents['emit'](_0x41769e+':'+_0xbf0447['id'],_0xbf0447);MailInteractionEvents[_0x1d0a('0xa')](_0x41769e,_0xbf0447);_0x58ec15(null);})[_0x1d0a('0xb')](_0x58ec15(null));};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];MailInteraction[_0x1d0a('0xc')](e,emitEvent(event));}}module[_0x1d0a('0xd')]=MailInteractionEvents;
\ No newline at end of file
+var _0x9362=['emit','hasOwnProperty','exports','events','../../mysqldb','MailInteraction','save','update','remove','getUsers','then','Users','map','findAll','setDataValue','unreadMessages','length'];(function(_0x557f77,_0x2ff13f){var _0x166ce5=function(_0x153405){while(--_0x153405){_0x557f77['push'](_0x557f77['shift']());}};_0x166ce5(++_0x2ff13f);}(_0x9362,0x1f0));var _0x2936=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x9362[_0x14add3];return _0x4a174f;};'use strict';var EventEmitter=require(_0x2936('0x0'));var MailInteraction=require(_0x2936('0x1'))['db'][_0x2936('0x2')];var MailMessage=require(_0x2936('0x1'))['db']['MailMessage'];var MailInteractionEvents=new EventEmitter();MailInteractionEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x2936('0x3'),'afterUpdate':_0x2936('0x4'),'afterDestroy':_0x2936('0x5')};function emitEvent(_0x32a7e7){return function(_0x3c298c,_0x3ef715,_0x57bd7e){_0x3c298c[_0x2936('0x6')]({'attributes':['id'],'raw':!![]})[_0x2936('0x7')](function(_0x211c2c){_0x3c298c['setDataValue'](_0x2936('0x8'),_0x211c2c[_0x2936('0x9')](function(_0x2c187b){return{'id':_0x2c187b['id']};}));return MailMessage[_0x2936('0xa')]({'where':{'MailInteractionId':_0x3c298c['id'],'direction':'in','read':![]},'raw':!![]});})[_0x2936('0x7')](function(_0x55da29){_0x3c298c[_0x2936('0xb')](_0x2936('0xc'),_0x55da29[_0x2936('0xd')]);MailInteractionEvents[_0x2936('0xe')](_0x32a7e7+':'+_0x3c298c['id'],_0x3c298c);MailInteractionEvents[_0x2936('0xe')](_0x32a7e7,_0x3c298c);_0x57bd7e(null);})['catch'](_0x57bd7e(null));};}for(var e in events){if(events[_0x2936('0xf')](e)){var event=events[e];MailInteraction['hook'](e,emitEvent(event));}}module[_0x2936('0x10')]=MailInteractionEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe5f5=['utf8mb4','lodash','util','../../config/logger','api','moment','request-promise','rimraf','../../config/environment','./mailInteraction.attributes','exports','define','MailInteraction','mail_interactions','fti_mail_interactions','subject','FULLTEXT','substatus','substatusAt','format','YYYY-MM-DD\x20HH:mm:ss','closed','closedAt','changed','get','update','then'];(function(_0x2e082b,_0x5c7359){var _0x390c2c=function(_0xef5782){while(--_0xef5782){_0x2e082b['push'](_0x2e082b['shift']());}};_0x390c2c(++_0x5c7359);}(_0xe5f5,0x12a));var _0x5e5f=function(_0x4ff9ea,_0x177a29){_0x4ff9ea=_0x4ff9ea-0x0;var _0x3dddce=_0xe5f5[_0x4ff9ea];return _0x3dddce;};'use strict';var _=require(_0x5e5f('0x0'));var util=require(_0x5e5f('0x1'));var logger=require(_0x5e5f('0x2'))(_0x5e5f('0x3'));var moment=require(_0x5e5f('0x4'));var BPromise=require('bluebird');var rp=require(_0x5e5f('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0x5e5f('0x6'));var config=require(_0x5e5f('0x7'));var attributes=require(_0x5e5f('0x8'));module[_0x5e5f('0x9')]=function(_0x518c4c,_0x357834){return _0x518c4c[_0x5e5f('0xa')](_0x5e5f('0xb'),attributes,{'tableName':_0x5e5f('0xc'),'paranoid':![],'indexes':[{'name':_0x5e5f('0xd'),'fields':[_0x5e5f('0xe'),'to'],'type':_0x5e5f('0xf')}],'timestamps':!![],'hooks':{'beforeCreate':function(_0x2c31cd,_0x41bd41,_0x2e8aa0){if(_0x2c31cd[_0x5e5f('0x10')]){_0x2c31cd[_0x5e5f('0x11')]=moment()[_0x5e5f('0x12')](_0x5e5f('0x13'));}if(_0x2c31cd[_0x5e5f('0x14')]){_0x2c31cd[_0x5e5f('0x15')]=moment()[_0x5e5f('0x12')](_0x5e5f('0x13'));}_0x2e8aa0(null,_0x41bd41);},'beforeUpdate':function(_0x3dfbeb,_0x5b450f,_0x1a5673){if(_0x3dfbeb[_0x5e5f('0x16')](_0x5e5f('0x10'))){_0x3dfbeb[_0x5e5f('0x11')]=_0x3dfbeb['substatus']?moment()['format'](_0x5e5f('0x13')):null;}if(_0x3dfbeb[_0x5e5f('0x16')](_0x5e5f('0x14'))){_0x3dfbeb[_0x5e5f('0x15')]=moment()['format'](_0x5e5f('0x13'));_0x3dfbeb['substatus']=null;_0x3dfbeb[_0x5e5f('0x11')]=null;}_0x1a5673(null,_0x3dfbeb);},'afterUpdate':function(_0x57dde6,_0x878334,_0x5cb893){var _0x237293=_0x518c4c['models'];var _0x108253=_0x57dde6[_0x5e5f('0x17')]({'plain':!![]});if(_0x108253['closed']){return _0x237293['MailMessage'][_0x5e5f('0x18')]({'read':!![]},{'where':{'MailInteractionId':_0x108253['id']}})[_0x5e5f('0x19')](function(){_0x5cb893();})['catch'](function(_0x166f20){_0x5cb893(_0x166f20);});}else{_0x5cb893();}}},'charset':_0x5e5f('0x1a'),'collate':'utf8mb4_unicode_ci'});};
\ No newline at end of file
+var _0xcd9c=['format','closed','closedAt','changed','YYYY-MM-DD\x20HH:mm:ss','get','MailMessage','update','then','catch','utf8mb4','utf8mb4_unicode_ci','lodash','util','../../config/logger','api','bluebird','request-promise','path','../../config/environment','exports','define','mail_interactions','fti_mail_interactions','subject','FULLTEXT','substatus','substatusAt'];(function(_0x2fbcf6,_0x2e7155){var _0x3e7265=function(_0x15a3c3){while(--_0x15a3c3){_0x2fbcf6['push'](_0x2fbcf6['shift']());}};_0x3e7265(++_0x2e7155);}(_0xcd9c,0x7c));var _0xccd9=function(_0x43f6df,_0x7cee2c){_0x43f6df=_0x43f6df-0x0;var _0x38b714=_0xcd9c[_0x43f6df];return _0x38b714;};'use strict';var _=require(_0xccd9('0x0'));var util=require(_0xccd9('0x1'));var logger=require(_0xccd9('0x2'))(_0xccd9('0x3'));var moment=require('moment');var BPromise=require(_0xccd9('0x4'));var rp=require(_0xccd9('0x5'));var fs=require('fs');var path=require(_0xccd9('0x6'));var rimraf=require('rimraf');var config=require(_0xccd9('0x7'));var attributes=require('./mailInteraction.attributes');module[_0xccd9('0x8')]=function(_0x1fdb7c,_0x4997b4){return _0x1fdb7c[_0xccd9('0x9')]('MailInteraction',attributes,{'tableName':_0xccd9('0xa'),'paranoid':![],'indexes':[{'name':_0xccd9('0xb'),'fields':[_0xccd9('0xc'),'to'],'type':_0xccd9('0xd')}],'timestamps':!![],'hooks':{'beforeCreate':function(_0xb1590d,_0x36da92,_0x56f3e3){if(_0xb1590d[_0xccd9('0xe')]){_0xb1590d[_0xccd9('0xf')]=moment()[_0xccd9('0x10')]('YYYY-MM-DD\x20HH:mm:ss');}if(_0xb1590d[_0xccd9('0x11')]){_0xb1590d[_0xccd9('0x12')]=moment()[_0xccd9('0x10')]('YYYY-MM-DD\x20HH:mm:ss');}_0x56f3e3(null,_0x36da92);},'beforeUpdate':function(_0x4bc2b3,_0x280522,_0xd92e9c){if(_0x4bc2b3[_0xccd9('0x13')]('substatus')){_0x4bc2b3[_0xccd9('0xf')]=_0x4bc2b3['substatus']?moment()[_0xccd9('0x10')]('YYYY-MM-DD\x20HH:mm:ss'):null;}if(_0x4bc2b3[_0xccd9('0x13')](_0xccd9('0x11'))){_0x4bc2b3[_0xccd9('0x12')]=moment()['format'](_0xccd9('0x14'));_0x4bc2b3[_0xccd9('0xe')]=null;_0x4bc2b3['substatusAt']=null;}_0xd92e9c(null,_0x4bc2b3);},'afterUpdate':function(_0x364000,_0x40f425,_0x120ea6){var _0x177e10=_0x1fdb7c['models'];var _0x477851=_0x364000[_0xccd9('0x15')]({'plain':!![]});if(_0x477851[_0xccd9('0x11')]){return _0x177e10[_0xccd9('0x16')][_0xccd9('0x17')]({'read':!![]},{'where':{'MailInteractionId':_0x477851['id']}})[_0xccd9('0x18')](function(){_0x120ea6();})[_0xccd9('0x19')](function(_0x18dd54){_0x120ea6(_0x18dd54);});}else{_0x120ea6();}}},'charset':_0xccd9('0x1a'),'collate':_0xccd9('0x1b')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf2ee=['MailInteraction,\x20%s,\x20%s','request\x20sent','debug','MailInteraction,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','UpdateMailInteraction','options','attributes','AddTagsToMailInteraction','MailInteraction','addTags','body','ids','omit','spread','AddTags','lodash','util','moment','bluebird','../../config/utils','rpc','../../config/environment','jayson/promise','client','http','redis','localhost','socket.io-emitter','register','then','info'];(function(_0x204568,_0x579c2b){var _0xc79786=function(_0x5181b9){while(--_0x5181b9){_0x204568['push'](_0x204568['shift']());}};_0xc79786(++_0x579c2b);}(_0xf2ee,0x110));var _0xef2e=function(_0x99b540,_0x237666){_0x99b540=_0x99b540-0x0;var _0x4b804e=_0xf2ee[_0x99b540];return _0x4b804e;};'use strict';var _=require(_0xef2e('0x0'));var util=require(_0xef2e('0x1'));var moment=require(_0xef2e('0x2'));var BPromise=require(_0xef2e('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0xef2e('0x4'));var logger=require('../../config/logger')(_0xef2e('0x5'));var config=require(_0xef2e('0x6'));var jayson=require(_0xef2e('0x7'));var client=jayson[_0xef2e('0x8')][_0xef2e('0x9')]({'port':0x232a});config['redis']=_['defaults'](config[_0xef2e('0xa')],{'host':_0xef2e('0xb'),'port':0x18eb});var socket=require(_0xef2e('0xc'))(new Redis(config[_0xef2e('0xa')]));require('./mailInteraction.socket')[_0xef2e('0xd')](socket);function respondWithRpcPromise(_0x167f6c,_0x56ac9a,_0x4d9266){return new BPromise(function(_0x501cc2,_0x2e8fd7){return client['request'](_0x167f6c,_0x4d9266)[_0xef2e('0xe')](function(_0x568765){logger[_0xef2e('0xf')](_0xef2e('0x10'),_0x56ac9a,_0xef2e('0x11'));logger[_0xef2e('0x12')](_0xef2e('0x13'),_0x56ac9a,_0xef2e('0x11'),JSON[_0xef2e('0x14')](_0x568765));if(_0x568765[_0xef2e('0x15')]){if(_0x568765[_0xef2e('0x15')]['code']===0x1f4){logger[_0xef2e('0x15')]('MailInteraction,\x20%s,\x20%s',_0x56ac9a,_0x568765[_0xef2e('0x15')][_0xef2e('0x16')]);return _0x2e8fd7(_0x568765[_0xef2e('0x15')][_0xef2e('0x16')]);}logger[_0xef2e('0x15')](_0xef2e('0x10'),_0x56ac9a,_0x568765['error'][_0xef2e('0x16')]);return _0x501cc2(_0x568765[_0xef2e('0x15')][_0xef2e('0x16')]);}else{logger[_0xef2e('0xf')](_0xef2e('0x10'),_0x56ac9a,'request\x20sent');_0x501cc2(_0x568765[_0xef2e('0x17')][_0xef2e('0x16')]);}})[_0xef2e('0x18')](function(_0x5e7a26){logger['error'](_0xef2e('0x10'),_0x56ac9a,_0x5e7a26);_0x2e8fd7(_0x5e7a26);});});}exports[_0xef2e('0x19')]=function(_0x2f2008){var _0x1dc996=this;return new Promise(function(_0x36283e,_0x5258ec){return db['MailInteraction']['update'](_0x2f2008['body'],{'raw':_0x2f2008['options']?_0x2f2008['options']['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x2f2008[_0xef2e('0x1a')]?_0x2f2008[_0xef2e('0x1a')]['where']||null:null,'attributes':_0x2f2008[_0xef2e('0x1a')]?_0x2f2008[_0xef2e('0x1a')][_0xef2e('0x1b')]||null:null,'limit':_0x2f2008['options']?_0x2f2008[_0xef2e('0x1a')]['limit']||null:null})['then'](function(_0x2af42b){logger[_0xef2e('0xf')](_0xef2e('0x19'),_0x2f2008);logger[_0xef2e('0x12')](_0xef2e('0x19'),_0x2f2008,JSON[_0xef2e('0x14')](_0x2af42b));_0x36283e(_0x2af42b);})['catch'](function(_0x160ab5){logger[_0xef2e('0x15')](_0xef2e('0x19'),_0x160ab5[_0xef2e('0x16')],_0x2f2008);_0x5258ec(_0x1dc996[_0xef2e('0x15')](0x1f4,_0x160ab5[_0xef2e('0x16')]));});});};exports[_0xef2e('0x1c')]=function(_0x4193e7){return new Promise(function(_0x4f8418,_0x19d42a){return db[_0xef2e('0x1d')]['find']({'where':_0x4193e7['options']?_0x4193e7[_0xef2e('0x1a')]['where']||null:null})[_0xef2e('0xe')](function(_0x385211){if(_0x385211){return _0x385211[_0xef2e('0x1e')](_0x4193e7[_0xef2e('0x1f')][_0xef2e('0x20')],_[_0xef2e('0x21')](_0x4193e7[_0xef2e('0x1f')],[_0xef2e('0x20'),'id'])||{});}})[_0xef2e('0x22')](function(_0xc9a2b2){logger[_0xef2e('0xf')](_0xef2e('0x23'),_0x4193e7);logger['debug'](_0xef2e('0x23'),_0x4193e7,JSON['stringify'](_0xc9a2b2));_0x4f8418(_0xc9a2b2);})[_0xef2e('0x18')](function(_0x5c4b9e){logger[_0xef2e('0x15')](_0xef2e('0x23'),_0x5c4b9e[_0xef2e('0x16')],_0x4193e7);_0x19d42a(_this[_0xef2e('0x15')](0x1f4,_0x5c4b9e[_0xef2e('0x16')]));});});};
\ No newline at end of file
+var _0x1fb2=['limit','debug','stringify','AddTagsToMailInteraction','MailInteraction','find','ids','spread','AddTags','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','redis','defaults','localhost','socket.io-emitter','./mailInteraction.socket','info','MailInteraction,\x20%s,\x20%s','request\x20sent','MailInteraction,\x20%s,\x20%s,\x20%s','error','code','message','catch','UpdateMailInteraction','update','body','options','raw','where','attributes'];(function(_0x2026f3,_0x4bc3ea){var _0x4aa64f=function(_0x7fe99b){while(--_0x7fe99b){_0x2026f3['push'](_0x2026f3['shift']());}};_0x4aa64f(++_0x4bc3ea);}(_0x1fb2,0x18f));var _0x21fb=function(_0x5b85e8,_0x548a56){_0x5b85e8=_0x5b85e8-0x0;var _0x1709b8=_0x1fb2[_0x5b85e8];return _0x1709b8;};'use strict';var _=require(_0x21fb('0x0'));var util=require(_0x21fb('0x1'));var moment=require(_0x21fb('0x2'));var BPromise=require(_0x21fb('0x3'));var rs=require(_0x21fb('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x21fb('0x5'))['db'];var utils=require(_0x21fb('0x6'));var logger=require('../../config/logger')(_0x21fb('0x7'));var config=require(_0x21fb('0x8'));var jayson=require(_0x21fb('0x9'));var client=jayson['client']['http']({'port':0x232a});config[_0x21fb('0xa')]=_[_0x21fb('0xb')](config['redis'],{'host':_0x21fb('0xc'),'port':0x18eb});var socket=require(_0x21fb('0xd'))(new Redis(config[_0x21fb('0xa')]));require(_0x21fb('0xe'))['register'](socket);function respondWithRpcPromise(_0x1172bd,_0x1b2c20,_0x5f46a6){return new BPromise(function(_0x1c20d8,_0x4f6d12){return client['request'](_0x1172bd,_0x5f46a6)['then'](function(_0x4b44dd){logger[_0x21fb('0xf')](_0x21fb('0x10'),_0x1b2c20,_0x21fb('0x11'));logger['debug'](_0x21fb('0x12'),_0x1b2c20,_0x21fb('0x11'),JSON['stringify'](_0x4b44dd));if(_0x4b44dd['error']){if(_0x4b44dd[_0x21fb('0x13')][_0x21fb('0x14')]===0x1f4){logger[_0x21fb('0x13')]('MailInteraction,\x20%s,\x20%s',_0x1b2c20,_0x4b44dd[_0x21fb('0x13')][_0x21fb('0x15')]);return _0x4f6d12(_0x4b44dd[_0x21fb('0x13')][_0x21fb('0x15')]);}logger['error'](_0x21fb('0x10'),_0x1b2c20,_0x4b44dd[_0x21fb('0x13')][_0x21fb('0x15')]);return _0x1c20d8(_0x4b44dd[_0x21fb('0x13')][_0x21fb('0x15')]);}else{logger[_0x21fb('0xf')]('MailInteraction,\x20%s,\x20%s',_0x1b2c20,_0x21fb('0x11'));_0x1c20d8(_0x4b44dd['result'][_0x21fb('0x15')]);}})[_0x21fb('0x16')](function(_0x5e4f70){logger[_0x21fb('0x13')](_0x21fb('0x10'),_0x1b2c20,_0x5e4f70);_0x4f6d12(_0x5e4f70);});});}exports[_0x21fb('0x17')]=function(_0x11d5d7){var _0x59453b=this;return new Promise(function(_0xf6fdf9,_0x221e25){return db['MailInteraction'][_0x21fb('0x18')](_0x11d5d7[_0x21fb('0x19')],{'raw':_0x11d5d7[_0x21fb('0x1a')]?_0x11d5d7[_0x21fb('0x1a')][_0x21fb('0x1b')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x11d5d7['options']?_0x11d5d7[_0x21fb('0x1a')][_0x21fb('0x1c')]||null:null,'attributes':_0x11d5d7[_0x21fb('0x1a')]?_0x11d5d7[_0x21fb('0x1a')][_0x21fb('0x1d')]||null:null,'limit':_0x11d5d7[_0x21fb('0x1a')]?_0x11d5d7[_0x21fb('0x1a')][_0x21fb('0x1e')]||null:null})['then'](function(_0x28d90d){logger[_0x21fb('0xf')](_0x21fb('0x17'),_0x11d5d7);logger[_0x21fb('0x1f')]('UpdateMailInteraction',_0x11d5d7,JSON[_0x21fb('0x20')](_0x28d90d));_0xf6fdf9(_0x28d90d);})['catch'](function(_0x3f9e1f){logger['error']('UpdateMailInteraction',_0x3f9e1f['message'],_0x11d5d7);_0x221e25(_0x59453b[_0x21fb('0x13')](0x1f4,_0x3f9e1f['message']));});});};exports[_0x21fb('0x21')]=function(_0x587c56){return new Promise(function(_0x3b5655,_0x277522){return db[_0x21fb('0x22')][_0x21fb('0x23')]({'where':_0x587c56[_0x21fb('0x1a')]?_0x587c56[_0x21fb('0x1a')][_0x21fb('0x1c')]||null:null})['then'](function(_0x5765ea){if(_0x5765ea){return _0x5765ea['addTags'](_0x587c56['body'][_0x21fb('0x24')],_['omit'](_0x587c56[_0x21fb('0x19')],['ids','id'])||{});}})[_0x21fb('0x25')](function(_0x15883c){logger[_0x21fb('0xf')](_0x21fb('0x26'),_0x587c56);logger[_0x21fb('0x1f')](_0x21fb('0x26'),_0x587c56,JSON[_0x21fb('0x20')](_0x15883c));_0x3b5655(_0x15883c);})['catch'](function(_0x1f0e5e){logger['error'](_0x21fb('0x26'),_0x1f0e5e['message'],_0x587c56);_0x277522(_this[_0x21fb('0x13')](0x1f4,_0x1f0e5e[_0x21fb('0x15')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x23bd=['emit','removeListener','register','mailInteraction:','./mailInteraction.events','save','remove','update'];(function(_0x47623f,_0x148f3a){var _0x282ce8=function(_0x35bca1){while(--_0x35bca1){_0x47623f['push'](_0x47623f['shift']());}};_0x282ce8(++_0x148f3a);}(_0x23bd,0x1b4));var _0xd23b=function(_0x4f9c74,_0x5642b7){_0x4f9c74=_0x4f9c74-0x0;var _0xcbba69=_0x23bd[_0x4f9c74];return _0xcbba69;};'use strict';var MailInteractionEvents=require(_0xd23b('0x0'));var events=[_0xd23b('0x1'),_0xd23b('0x2'),_0xd23b('0x3')];function createListener(_0xc14aa8,_0x44570a){return function(_0x303792){_0x44570a[_0xd23b('0x4')](_0xc14aa8,_0x303792);};}function removeListener(_0x14892f,_0x436082){return function(){MailInteractionEvents[_0xd23b('0x5')](_0x14892f,_0x436082);};}exports[_0xd23b('0x6')]=function(_0x39cae9){for(var _0xed6bc6=0x0,_0x56b470=events['length'];_0xed6bc6<_0x56b470;_0xed6bc6++){var _0x4f6f56=events[_0xed6bc6];var _0x4f8aae=createListener(_0xd23b('0x7')+_0x4f6f56,_0x39cae9);MailInteractionEvents['on'](_0x4f6f56,_0x4f8aae);}};
\ No newline at end of file
+var _0xdb55=['removeListener','register','length','./mailInteraction.events','save','remove','update','emit'];(function(_0x3a4b77,_0x2e54a6){var _0x50b307=function(_0x157336){while(--_0x157336){_0x3a4b77['push'](_0x3a4b77['shift']());}};_0x50b307(++_0x2e54a6);}(_0xdb55,0x18b));var _0x5db5=function(_0x3d239d,_0x11a33f){_0x3d239d=_0x3d239d-0x0;var _0x1bd260=_0xdb55[_0x3d239d];return _0x1bd260;};'use strict';var MailInteractionEvents=require(_0x5db5('0x0'));var events=[_0x5db5('0x1'),_0x5db5('0x2'),_0x5db5('0x3')];function createListener(_0x5fadda,_0x367a2d){return function(_0x9f950d){_0x367a2d[_0x5db5('0x4')](_0x5fadda,_0x9f950d);};}function removeListener(_0xcab14c,_0x3e641a){return function(){MailInteractionEvents[_0x5db5('0x5')](_0xcab14c,_0x3e641a);};}exports[_0x5db5('0x6')]=function(_0x22882d){for(var _0x2ae7f8=0x0,_0x39833b=events[_0x5db5('0x7')];_0x2ae7f8<_0x39833b;_0x2ae7f8++){var _0x247a08=events[_0x2ae7f8];var _0x591ffc=createListener('mailInteraction:'+_0x247a08,_0x22882d);MailInteractionEvents['on'](_0x247a08,_0x591ffc);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3d0a=['mailmessage:create','create','accept','put','/:id/reject','reject','delete','destroy','exports','multer','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','isAuthenticated','index','get','describe'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x3d0a,0xa9));var _0xa3d0=function(_0x13b02f,_0x462a53){_0x13b02f=_0x13b02f-0x0;var _0x12e9a6=_0x3d0a[_0x13b02f];return _0x12e9a6;};'use strict';var multer=require(_0xa3d0('0x0'));var util=require('util');var path=require(_0xa3d0('0x1'));var timeout=require(_0xa3d0('0x2'));var express=require(_0xa3d0('0x3'));var router=express[_0xa3d0('0x4')]();var fs_extra=require(_0xa3d0('0x5'));var auth=require(_0xa3d0('0x6'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require('./mailMessage.controller');router['get']('/',auth[_0xa3d0('0x7')](),controller[_0xa3d0('0x8')]);router[_0xa3d0('0x9')]('/describe',auth['isAuthenticated'](),controller[_0xa3d0('0xa')]);router['get']('/:id',auth[_0xa3d0('0x7')](),controller['show']);router[_0xa3d0('0x9')]('/:id/download',auth[_0xa3d0('0x7')](),controller['download']);router['post']('/',auth['isAuthenticated'](),interaction['tracked']('mail',_0xa3d0('0xb')),controller[_0xa3d0('0xc')]);router['put']('/:id',auth[_0xa3d0('0x7')](),controller['update']);router['put']('/:id/accept',auth[_0xa3d0('0x7')](),controller[_0xa3d0('0xd')]);router[_0xa3d0('0xe')](_0xa3d0('0xf'),auth[_0xa3d0('0x7')](),controller[_0xa3d0('0x10')]);router[_0xa3d0('0x11')]('/:id',auth[_0xa3d0('0x7')](),controller[_0xa3d0('0x12')]);module[_0xa3d0('0x13')]=router;
\ No newline at end of file
+var _0xcd31=['download','post','tracked','mail','mailmessage:create','create','/:id','update','put','/:id/accept','/:id/reject','delete','destroy','util','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./mailMessage.controller','isAuthenticated','index','get','describe','show','/:id/download'];(function(_0x1a430d,_0xdddb30){var _0x8553dd=function(_0x20d889){while(--_0x20d889){_0x1a430d['push'](_0x1a430d['shift']());}};_0x8553dd(++_0xdddb30);}(_0xcd31,0x15d));var _0x1cd3=function(_0x4d17ac,_0x25fa6f){_0x4d17ac=_0x4d17ac-0x0;var _0x24e8a5=_0xcd31[_0x4d17ac];return _0x24e8a5;};'use strict';var multer=require('multer');var util=require(_0x1cd3('0x0'));var path=require(_0x1cd3('0x1'));var timeout=require(_0x1cd3('0x2'));var express=require('express');var router=express[_0x1cd3('0x3')]();var fs_extra=require(_0x1cd3('0x4'));var auth=require(_0x1cd3('0x5'));var interaction=require(_0x1cd3('0x6'));var config=require(_0x1cd3('0x7'));var controller=require(_0x1cd3('0x8'));router['get']('/',auth[_0x1cd3('0x9')](),controller[_0x1cd3('0xa')]);router[_0x1cd3('0xb')]('/describe',auth[_0x1cd3('0x9')](),controller[_0x1cd3('0xc')]);router[_0x1cd3('0xb')]('/:id',auth[_0x1cd3('0x9')](),controller[_0x1cd3('0xd')]);router[_0x1cd3('0xb')](_0x1cd3('0xe'),auth[_0x1cd3('0x9')](),controller[_0x1cd3('0xf')]);router[_0x1cd3('0x10')]('/',auth['isAuthenticated'](),interaction[_0x1cd3('0x11')](_0x1cd3('0x12'),_0x1cd3('0x13')),controller[_0x1cd3('0x14')]);router['put'](_0x1cd3('0x15'),auth['isAuthenticated'](),controller[_0x1cd3('0x16')]);router[_0x1cd3('0x17')](_0x1cd3('0x18'),auth['isAuthenticated'](),controller['accept']);router[_0x1cd3('0x17')](_0x1cd3('0x19'),auth[_0x1cd3('0x9')](),controller['reject']);router[_0x1cd3('0x1a')](_0x1cd3('0x15'),auth[_0x1cd3('0x9')](),controller[_0x1cd3('0x1b')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3535=['ENUM','Email','lodash','exports','long','TEXT','medium','out','STRING','DATE','INTEGER'];(function(_0x30d4c3,_0x35136d){var _0x7c7dad=function(_0x326fb0){while(--_0x326fb0){_0x30d4c3['push'](_0x30d4c3['shift']());}};_0x7c7dad(++_0x35136d);}(_0x3535,0xa7));var _0x5353=function(_0x1935b6,_0x26070c){_0x1935b6=_0x1935b6-0x0;var _0x5b5eac=_0x3535[_0x1935b6];return _0x5b5eac;};'use strict';var Sequelize=require('sequelize');var _=require(_0x5353('0x0'));module[_0x5353('0x1')]={'body':{'type':Sequelize['TEXT'](_0x5353('0x2')),'allowNull':![]},'plainBody':{'type':Sequelize[_0x5353('0x3')](_0x5353('0x4'))},'read':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'direction':{'type':Sequelize['ENUM']('in','out'),'defaultValue':_0x5353('0x5'),'allowNull':![]},'messageId':{'type':Sequelize[_0x5353('0x6')](0x1fe)},'from':{'type':Sequelize[_0x5353('0x6')]},'to':{'type':Sequelize[_0x5353('0x3')](_0x5353('0x2'))},'cc':{'type':Sequelize['TEXT'](_0x5353('0x2'))},'bcc':{'type':Sequelize['TEXT']('long')},'subject':{'type':Sequelize[_0x5353('0x3')]},'sentAt':{'type':Sequelize[_0x5353('0x7')]},'attach':{'type':Sequelize[_0x5353('0x8')],'defaultValue':0x0},'secret':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'readAt':{'type':Sequelize[_0x5353('0x7')]},'originTo':{'type':Sequelize[_0x5353('0x3')](_0x5353('0x2'))},'originCc':{'type':Sequelize['TEXT'](_0x5353('0x2'))},'originChannel':{'type':Sequelize[_0x5353('0x9')](_0x5353('0xa'),'Chat'),'defaultValue':_0x5353('0xa'),'allowNull':![]}};
\ No newline at end of file
+var _0x43a0=['ENUM','out','STRING','DATE','Email','sequelize','lodash','exports','TEXT','long','medium','BOOLEAN'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x43a0,0x1b5));var _0x043a=function(_0x2a381b,_0x2dc88d){_0x2a381b=_0x2a381b-0x0;var _0x38967c=_0x43a0[_0x2a381b];return _0x38967c;};'use strict';var Sequelize=require(_0x043a('0x0'));var _=require(_0x043a('0x1'));module[_0x043a('0x2')]={'body':{'type':Sequelize[_0x043a('0x3')](_0x043a('0x4')),'allowNull':![]},'plainBody':{'type':Sequelize['TEXT'](_0x043a('0x5'))},'read':{'type':Sequelize[_0x043a('0x6')],'defaultValue':![]},'direction':{'type':Sequelize[_0x043a('0x7')]('in',_0x043a('0x8')),'defaultValue':_0x043a('0x8'),'allowNull':![]},'messageId':{'type':Sequelize[_0x043a('0x9')](0x1fe)},'from':{'type':Sequelize[_0x043a('0x9')]},'to':{'type':Sequelize[_0x043a('0x3')](_0x043a('0x4'))},'cc':{'type':Sequelize[_0x043a('0x3')](_0x043a('0x4'))},'bcc':{'type':Sequelize[_0x043a('0x3')](_0x043a('0x4'))},'subject':{'type':Sequelize[_0x043a('0x3')]},'sentAt':{'type':Sequelize[_0x043a('0xa')]},'attach':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'secret':{'type':Sequelize[_0x043a('0x6')],'defaultValue':![]},'readAt':{'type':Sequelize['DATE']},'originTo':{'type':Sequelize[_0x043a('0x3')](_0x043a('0x4'))},'originCc':{'type':Sequelize['TEXT']('long')},'originChannel':{'type':Sequelize[_0x043a('0x7')](_0x043a('0xb'),'Chat'),'defaultValue':_0x043a('0xb'),'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2ffb=['type','key','model','map','query','keys','intersection','fields','attributes','length','limit','order','sort','where','filters','pick','filter','VIRTUAL','merge','options','includeAll','include','findAll','rows','show','params','find','body','describe','create','direction','out','split','MailAccount','MailAccountId','CmList','List','CmContact','Contacts','updatedAt','DESC','MailServerOut','Smtp','host','port','secure','authentication','user','pass','service','auth','attachments','join','root','server/files/attachments','basename','defaults','ListId','List\x20not\x20found','sendMail','messageId','format','stringify','mail','read','readAt','UserId','get','MailInteractionId','isNil','read1stAt','YYYY-MM-DD\x20HH:mm:ss','interaction','[MAILMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','null','AcceptMessage','ContactId','sequelize','Sequelize','QueryTypes','contact','User','agent','fullname','email','internal','interface','channel','motionChannel','event','accept','fromString','EventManager','MailInteraction','[MAILMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','SELECT','SIP/%s','download','unix','server','files','tmp','message-%s.eml','from','bcc','createdAt','Attachment','Attachments','subject','decode','ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ','headers','push','unlinkSync','moment','bluebird','util','path','lodash','html-to-text','../../components/parsers/qs','../../config/logger','../../config/environment','../../mysqldb','redis','localhost','socket.io-emitter','html-entities','./mailMessage.socket','register','jayson/promise','client','http','request','then','info','MailMessage,\x20%s,\x20%s','request\x20sent','debug','error','code','message','result','catch','status','json','offset','undefined','count','set','update','destroy','sendStatus','stack','name','send','index','MailMessage','rawAttributes','fieldName'];(function(_0x32b894,_0x14c458){var _0x1f4d76=function(_0x4737af){while(--_0x4737af){_0x32b894['push'](_0x32b894['shift']());}};_0x1f4d76(++_0x14c458);}(_0x2ffb,0x1b8));var _0xb2ff=function(_0x7a35b1,_0x925417){_0x7a35b1=_0x7a35b1-0x0;var _0x3c4535=_0x2ffb[_0x7a35b1];return _0x3c4535;};'use strict';var emlformat=require('eml-format');var moment=require(_0xb2ff('0x0'));var BPromise=require(_0xb2ff('0x1'));var util=require(_0xb2ff('0x2'));var path=require(_0xb2ff('0x3'));var fs=require('fs');var _=require(_0xb2ff('0x4'));var Redis=require('ioredis');var htmlToText=require(_0xb2ff('0x5'));var qs=require(_0xb2ff('0x6'));var logger=require('../../config/logger')('api');var interaction_log=require(_0xb2ff('0x7'))('mail-interactions');var config=require(_0xb2ff('0x8'));var db=require(_0xb2ff('0x9'))['db'];config['redis']=_['defaults'](config[_0xb2ff('0xa')],{'host':_0xb2ff('0xb'),'port':0x18eb});var socket=require(_0xb2ff('0xc'))(new Redis(config[_0xb2ff('0xa')]));var htmlEntities=require(_0xb2ff('0xd'));require(_0xb2ff('0xe'))[_0xb2ff('0xf')](socket);var jayson=require(_0xb2ff('0x10'));var client=jayson[_0xb2ff('0x11')]['http']({'port':0x232c});var client9003=jayson['client'][_0xb2ff('0x12')]({'port':0x232b});var client9002=jayson[_0xb2ff('0x11')]['http']({'port':0x232a});function respondWithRpcPromise(_0x523376,_0x11a842,_0x55a614,_0x40558a){return new BPromise(function(_0x5d6079,_0x5f31f0){var _0x51e65d=_0x40558a||client;return _0x51e65d[_0xb2ff('0x13')](_0x523376,_0x55a614)[_0xb2ff('0x14')](function(_0x21fca7){logger[_0xb2ff('0x15')](_0xb2ff('0x16'),_0x11a842,_0xb2ff('0x17'));logger[_0xb2ff('0x18')]('MailMessage,\x20%s,\x20%s,\x20%s',_0x11a842,_0xb2ff('0x17'),JSON['stringify'](_0x21fca7));if(_0x21fca7[_0xb2ff('0x19')]){if(_0x21fca7[_0xb2ff('0x19')][_0xb2ff('0x1a')]===0x1f4){logger[_0xb2ff('0x19')](_0xb2ff('0x16'),_0x11a842,_0x21fca7[_0xb2ff('0x19')][_0xb2ff('0x1b')]);return _0x5f31f0(_0x21fca7[_0xb2ff('0x19')][_0xb2ff('0x1b')]);}logger[_0xb2ff('0x19')]('MailMessage,\x20%s,\x20%s',_0x11a842,_0x21fca7[_0xb2ff('0x19')][_0xb2ff('0x1b')]);return _0x5d6079(_0x21fca7[_0xb2ff('0x19')][_0xb2ff('0x1b')]);}else{logger[_0xb2ff('0x15')](_0xb2ff('0x16'),_0x11a842,_0xb2ff('0x17'));_0x5d6079(_0x21fca7[_0xb2ff('0x1c')][_0xb2ff('0x1b')]);}})[_0xb2ff('0x1d')](function(_0xbb3f7e){logger['error']('MailMessage,\x20%s,\x20%s',_0x11a842,_0xbb3f7e);_0x5f31f0(_0xbb3f7e);});});}function respondWithResult(_0x327694,_0x54c8ea){_0x54c8ea=_0x54c8ea||0xc8;return function(_0x14370f){if(_0x14370f){return _0x327694[_0xb2ff('0x1e')](_0x54c8ea)[_0xb2ff('0x1f')](_0x14370f);}};}function respondWithFilteredResult(_0x196fd0,_0xe899c7){return function(_0x39827f){if(_0x39827f){var _0x3a3701=typeof _0xe899c7[_0xb2ff('0x20')]===_0xb2ff('0x21')&&typeof _0xe899c7['limit']==='undefined';var _0x57732d=_0x39827f[_0xb2ff('0x22')];var _0x48c1c9=_0x3a3701?0x0:_0xe899c7['offset'];var _0x175a7e=_0x3a3701?_0x39827f[_0xb2ff('0x22')]:_0xe899c7['offset']+_0xe899c7['limit'];var _0x594017;if(_0x175a7e>=_0x57732d){_0x175a7e=_0x57732d;_0x594017=0xc8;}else{_0x594017=0xce;}_0x196fd0[_0xb2ff('0x1e')](_0x594017);return _0x196fd0[_0xb2ff('0x23')]('Content-Range',_0x48c1c9+'-'+_0x175a7e+'/'+_0x57732d)['json'](_0x39827f);}return null;};}function saveUpdates(_0x32f7a1){return function(_0x4616c7){if(_0x4616c7){return _0x4616c7[_0xb2ff('0x24')](_0x32f7a1)[_0xb2ff('0x14')](function(_0x4979bf){return _0x4979bf;});}return null;};}function removeEntity(_0x1611d1){return function(_0x6f21e2){if(_0x6f21e2){return _0x6f21e2[_0xb2ff('0x25')]()[_0xb2ff('0x14')](function(){_0x1611d1[_0xb2ff('0x1e')](0xcc)['end']();});}};}function handleEntityNotFound(_0x2d5778){return function(_0x4aa00b){if(!_0x4aa00b){_0x2d5778[_0xb2ff('0x26')](0x194);}return _0x4aa00b;};}function handleError(_0xeace62,_0x4a6f0a){_0x4a6f0a=_0x4a6f0a||0x1f4;return function(_0x527a4d){logger[_0xb2ff('0x19')](_0x527a4d[_0xb2ff('0x27')]);if(_0x527a4d[_0xb2ff('0x28')]){delete _0x527a4d[_0xb2ff('0x28')];}_0xeace62[_0xb2ff('0x1e')](_0x4a6f0a)[_0xb2ff('0x29')](_0x527a4d);};}exports[_0xb2ff('0x2a')]=function(_0x29c440,_0x193af5){var _0x7f8f47={},_0x1c4557={},_0xca957d={'count':0x0,'rows':[]};var _0x545088=_['map'](db[_0xb2ff('0x2b')][_0xb2ff('0x2c')],function(_0x3c06bd){return{'name':_0x3c06bd[_0xb2ff('0x2d')],'type':_0x3c06bd[_0xb2ff('0x2e')][_0xb2ff('0x2f')]};});_0x1c4557[_0xb2ff('0x30')]=_[_0xb2ff('0x31')](_0x545088,_0xb2ff('0x28'));_0x1c4557[_0xb2ff('0x32')]=_[_0xb2ff('0x33')](_0x29c440[_0xb2ff('0x32')]);_0x1c4557['filters']=_[_0xb2ff('0x34')](_0x1c4557[_0xb2ff('0x30')],_0x1c4557['query']);_0x7f8f47['attributes']=_[_0xb2ff('0x34')](_0x1c4557[_0xb2ff('0x30')],qs['fields'](_0x29c440[_0xb2ff('0x32')][_0xb2ff('0x35')]));_0x7f8f47[_0xb2ff('0x36')]=_0x7f8f47[_0xb2ff('0x36')][_0xb2ff('0x37')]?_0x7f8f47['attributes']:_0x1c4557[_0xb2ff('0x30')];if(!_0x29c440[_0xb2ff('0x32')]['hasOwnProperty']('nolimit')){_0x7f8f47['limit']=qs[_0xb2ff('0x38')](_0x29c440[_0xb2ff('0x32')][_0xb2ff('0x38')]);_0x7f8f47[_0xb2ff('0x20')]=qs['offset'](_0x29c440['query'][_0xb2ff('0x20')]);}_0x7f8f47[_0xb2ff('0x39')]=qs[_0xb2ff('0x3a')](_0x29c440['query']['sort']);_0x7f8f47[_0xb2ff('0x3b')]=qs[_0xb2ff('0x3c')](_[_0xb2ff('0x3d')](_0x29c440[_0xb2ff('0x32')],_0x1c4557['filters']),_0x545088);if(_0x29c440['query'][_0xb2ff('0x3e')]){_0x7f8f47['where']=_['merge'](_0x7f8f47[_0xb2ff('0x3b')],{'$or':_['map'](_0x545088,function(_0x542388){if(_0x542388[_0xb2ff('0x2e')]!==_0xb2ff('0x3f')){var _0x1458be={};_0x1458be[_0x542388[_0xb2ff('0x28')]]={'$like':'%'+_0x29c440[_0xb2ff('0x32')][_0xb2ff('0x3e')]+'%'};return _0x1458be;}})});}_0x7f8f47=_[_0xb2ff('0x40')]({},_0x7f8f47,_0x29c440[_0xb2ff('0x41')]);var _0x4d1560={'where':_0x7f8f47[_0xb2ff('0x3b')]};return db[_0xb2ff('0x2b')][_0xb2ff('0x22')](_0x4d1560)[_0xb2ff('0x14')](function(_0x1bc280){_0xca957d[_0xb2ff('0x22')]=_0x1bc280;if(_0x29c440[_0xb2ff('0x32')][_0xb2ff('0x42')]){_0x7f8f47[_0xb2ff('0x43')]=[{'all':!![]}];}return db[_0xb2ff('0x2b')][_0xb2ff('0x44')](_0x7f8f47);})[_0xb2ff('0x14')](function(_0x5cc5d6){_0xca957d[_0xb2ff('0x45')]=_0x5cc5d6;return _0xca957d;})[_0xb2ff('0x14')](respondWithFilteredResult(_0x193af5,_0x7f8f47))[_0xb2ff('0x1d')](handleError(_0x193af5,null));};exports[_0xb2ff('0x46')]=function(_0x3225af,_0x157293){var _0x2d349a={'raw':!![],'where':{'id':_0x3225af[_0xb2ff('0x47')]['id']}},_0x46d719={};_0x46d719[_0xb2ff('0x30')]=_[_0xb2ff('0x33')](db[_0xb2ff('0x2b')]['rawAttributes']);_0x46d719[_0xb2ff('0x32')]=_[_0xb2ff('0x33')](_0x3225af['query']);_0x46d719[_0xb2ff('0x3c')]=_['intersection'](_0x46d719[_0xb2ff('0x30')],_0x46d719[_0xb2ff('0x32')]);_0x2d349a[_0xb2ff('0x36')]=_[_0xb2ff('0x34')](_0x46d719[_0xb2ff('0x30')],qs[_0xb2ff('0x35')](_0x3225af['query'][_0xb2ff('0x35')]));_0x2d349a[_0xb2ff('0x36')]=_0x2d349a['attributes'][_0xb2ff('0x37')]?_0x2d349a[_0xb2ff('0x36')]:_0x46d719[_0xb2ff('0x30')];if(_0x3225af['query']['includeAll']){_0x2d349a[_0xb2ff('0x43')]=[{'all':!![]}];}_0x2d349a=_[_0xb2ff('0x40')]({},_0x2d349a,_0x3225af['options']);return db['MailMessage'][_0xb2ff('0x48')](_0x2d349a)[_0xb2ff('0x14')](handleEntityNotFound(_0x157293,null))[_0xb2ff('0x14')](respondWithResult(_0x157293,null))[_0xb2ff('0x1d')](handleError(_0x157293,null));};exports[_0xb2ff('0x24')]=function(_0x3aff62,_0x4d6168){if(_0x3aff62[_0xb2ff('0x49')]['id']){delete _0x3aff62['body']['id'];}return db[_0xb2ff('0x2b')][_0xb2ff('0x48')]({'where':{'id':_0x3aff62[_0xb2ff('0x47')]['id']}})[_0xb2ff('0x14')](handleEntityNotFound(_0x4d6168,null))[_0xb2ff('0x14')](saveUpdates(_0x3aff62[_0xb2ff('0x49')],null))['then'](respondWithResult(_0x4d6168,null))[_0xb2ff('0x1d')](handleError(_0x4d6168,null));};exports[_0xb2ff('0x25')]=function(_0x5504db,_0x346241){return db[_0xb2ff('0x2b')][_0xb2ff('0x48')]({'where':{'id':_0x5504db[_0xb2ff('0x47')]['id']}})['then'](handleEntityNotFound(_0x346241,null))[_0xb2ff('0x14')](removeEntity(_0x346241,null))['catch'](handleError(_0x346241,null));};exports[_0xb2ff('0x4a')]=function(_0x6ae295,_0x1cbebc){return db[_0xb2ff('0x2b')][_0xb2ff('0x4a')]()[_0xb2ff('0x14')](respondWithResult(_0x1cbebc,null))[_0xb2ff('0x1d')](handleError(_0x1cbebc,null));};exports[_0xb2ff('0x4b')]=function(_0xfbce73,_0x1820ce){return db[_0xb2ff('0x2b')][_0xb2ff('0x4b')](_0xfbce73[_0xb2ff('0x49')])[_0xb2ff('0x14')](function(_0x596925){if(_0x596925){if(_0x596925[_0xb2ff('0x4c')]===_0xb2ff('0x4d')&&!_0x596925['secret']){var _0x23b88d,_0x3f59a2,_0x8cb9b6;if(_0xfbce73[_0xb2ff('0x49')]['to']){_0x3f59a2=_0xfbce73[_0xb2ff('0x49')]['to'][_0xb2ff('0x4e')](',')[0x0];}return db[_0xb2ff('0x4f')]['findOne']({'where':{'id':_0x596925[_0xb2ff('0x50')]},'include':[{'model':db[_0xb2ff('0x51')],'as':_0xb2ff('0x52'),'include':[{'model':db[_0xb2ff('0x53')],'as':_0xb2ff('0x54'),'where':{'email':_0x3f59a2},'limit':0x1,'order':[[_0xb2ff('0x55'),_0xb2ff('0x56')]]}]},{'model':db[_0xb2ff('0x57')],'as':'Smtp','raw':!![]}]})[_0xb2ff('0x14')](function(_0x38945e){_0x23b88d=_0x38945e;if(_0x23b88d&&_0x23b88d[_0xb2ff('0x58')]){var _0x342217={'tls':{'rejectUnauthorized':![]}};if(_['isNil'](_0x23b88d[_0xb2ff('0x58')]['service'])){_0x342217[_0xb2ff('0x59')]=_0x23b88d[_0xb2ff('0x58')][_0xb2ff('0x59')];_0x342217['port']=_0x23b88d[_0xb2ff('0x58')][_0xb2ff('0x5a')];_0x342217[_0xb2ff('0x5b')]=_0x23b88d['Smtp']['secure'];if(_0x23b88d[_0xb2ff('0x58')][_0xb2ff('0x5c')]){_0x342217['auth']={'user':_0x23b88d['Smtp'][_0xb2ff('0x5d')],'pass':_0x23b88d[_0xb2ff('0x58')][_0xb2ff('0x5e')]};}}else{_0x342217[_0xb2ff('0x5f')]=_0x23b88d['Smtp'][_0xb2ff('0x5f')];_0x342217[_0xb2ff('0x60')]={'user':_0x23b88d[_0xb2ff('0x58')][_0xb2ff('0x5d')],'pass':_0x23b88d[_0xb2ff('0x58')][_0xb2ff('0x5e')]};_0x342217[_0xb2ff('0x5b')]=_0x23b88d['Smtp'][_0xb2ff('0x5b')];}if(_0xfbce73[_0xb2ff('0x49')][_0xb2ff('0x61')]&&_0xfbce73[_0xb2ff('0x49')][_0xb2ff('0x61')][_0xb2ff('0x37')]){for(var _0x17146c=0x0;_0x17146c<_0xfbce73[_0xb2ff('0x49')][_0xb2ff('0x61')][_0xb2ff('0x37')];_0x17146c+=0x1){_0xfbce73[_0xb2ff('0x49')]['attachments'][_0x17146c]={'filename':_0xfbce73[_0xb2ff('0x49')][_0xb2ff('0x61')][_0x17146c][_0xb2ff('0x28')],'path':path[_0xb2ff('0x62')](config[_0xb2ff('0x63')],_0xb2ff('0x64'),_0xfbce73[_0xb2ff('0x49')][_0xb2ff('0x61')][_0x17146c][_0xb2ff('0x65')])};}}_0x8cb9b6={'account':_0x342217,'message':_0xfbce73[_0xb2ff('0x49')]};return;}})[_0xb2ff('0x14')](function(){if(_0x23b88d[_0xb2ff('0x52')]){if(_0x23b88d[_0xb2ff('0x52')][_0xb2ff('0x54')][_0xb2ff('0x37')]){return _0x23b88d[_0xb2ff('0x52')]['Contacts'][0x0];}else{return db[_0xb2ff('0x53')][_0xb2ff('0x4b')](_[_0xb2ff('0x66')](_0xfbce73[_0xb2ff('0x49')],{'firstName':_0xfbce73[_0xb2ff('0x49')]['to'],'email':_0xfbce73[_0xb2ff('0x49')]['to'],'phone':_0xfbce73[_0xb2ff('0x49')]['to'],'ListId':_0x23b88d[_0xb2ff('0x67')]}));}}else{throw new Error(_0xb2ff('0x68'));}})[_0xb2ff('0x14')](function(){if(_0x8cb9b6){return respondWithRpcPromise('SendMail',_0xb2ff('0x69'),_0x8cb9b6,client9003)[_0xb2ff('0x14')](function(_0x561c0f){return _0x596925[_0xb2ff('0x24')]({'read':!![],'messageId':_0x561c0f[_0xb2ff('0x6a')],'sentAt':moment()[_0xb2ff('0x6b')]('YYYY-MM-DD\x20HH:mm:ss')});})[_0xb2ff('0x1d')](function(_0x3feb11){logger['error']('%s',JSON[_0xb2ff('0x6c')](_0x3feb11));return _0x596925;});}return _0x596925;});}return _0x596925;}})['then'](respondWithResult(_0x1820ce,0xc9))[_0xb2ff('0x1d')](handleError(_0x1820ce,null));};exports['accept']=function(_0x7a0e81,_0x467824){var _0xcb6a5b={'agent':{},'channel':_0xb2ff('0x6d')};if(_0x7a0e81[_0xb2ff('0x49')]['id']){delete _0x7a0e81[_0xb2ff('0x49')]['id'];}_0x7a0e81[_0xb2ff('0x49')][_0xb2ff('0x6e')]=!![];_0x7a0e81[_0xb2ff('0x49')][_0xb2ff('0x6f')]=moment()[_0xb2ff('0x6b')]('YYYY-MM-DD\x20HH:mm:ss');_0x7a0e81['body'][_0xb2ff('0x70')]=_0x7a0e81[_0xb2ff('0x49')]['UserId']||_0x7a0e81['user']['id'];_0xcb6a5b['agent']['id']=_0x7a0e81[_0xb2ff('0x49')]['UserId'];return db['MailMessage']['find']({'where':{'id':_0x7a0e81[_0xb2ff('0x47')]['id'],'UserId':null}})[_0xb2ff('0x14')](handleEntityNotFound(_0x467824,null))['then'](saveUpdates(_0x7a0e81[_0xb2ff('0x49')],null))['then'](function(_0x51aa4d){if(_0x51aa4d){_0xcb6a5b[_0xb2ff('0x1b')]=_0x51aa4d[_0xb2ff('0x71')]({'plain':!![]});return db['MailInteraction'][_0xb2ff('0x48')]({'where':{'id':_0x51aa4d[_0xb2ff('0x72')]}});}return null;})[_0xb2ff('0x14')](handleEntityNotFound(_0x467824,null))[_0xb2ff('0x14')](function(_0x4b6a5c){if(_0x4b6a5c){return _0x4b6a5c['update']({'UserId':_0x7a0e81[_0xb2ff('0x49')][_0xb2ff('0x70')],'read1stAt':_[_0xb2ff('0x73')](_0x4b6a5c[_0xb2ff('0x74')])?moment()[_0xb2ff('0x6b')](_0xb2ff('0x75')):undefined});}return null;})[_0xb2ff('0x14')](function(_0x61dde1){if(_0x61dde1){_0xcb6a5b[_0xb2ff('0x76')]=_0x61dde1[_0xb2ff('0x71')]({'plain':!![]});interaction_log['info'](_0xb2ff('0x77'),_0x7a0e81[_0xb2ff('0x5d')]['id'],_0x7a0e81['user'][_0xb2ff('0x28')],_0x7a0e81[_0xb2ff('0x5d')]['role'],_0xcb6a5b[_0xb2ff('0x76')]['id'],_0x7a0e81[_0xb2ff('0x49')]?JSON[_0xb2ff('0x6c')](_0x7a0e81[_0xb2ff('0x49')]):_0xb2ff('0x78'));return respondWithRpcPromise(_0xb2ff('0x79'),'acceptMessage',_0xcb6a5b);}return null;})[_0xb2ff('0x14')](function(_0x588b9f){var _0x5ee372='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x588b9f[_0xb2ff('0x1b')][_0xb2ff('0x7a')];return db[_0xb2ff('0x7b')][_0xb2ff('0x32')](_0x5ee372,{'type':db[_0xb2ff('0x7c')][_0xb2ff('0x7d')]['SELECT'],'raw':!![]})[_0xb2ff('0x14')](function(_0x3cd92){return _0x3cd92;});})['then'](function(_0x154cd7){if(_0x154cd7){_0xcb6a5b[_0xb2ff('0x1b')][_0xb2ff('0x7e')]=_0x154cd7[0x0];if(!_0x7a0e81['body'][_0xb2ff('0x70')])return;return db[_0xb2ff('0x7f')][_0xb2ff('0x48')]({'where':{'id':_0x7a0e81[_0xb2ff('0x49')][_0xb2ff('0x70')],'role':_0xb2ff('0x80')},'attributes':['id',_0xb2ff('0x28'),_0xb2ff('0x81'),_0xb2ff('0x82'),_0xb2ff('0x83')],'raw':!![]});}return null;})[_0xb2ff('0x14')](function(_0xba9eb){if(!_0xba9eb)return null;_0xcb6a5b['message']['agent']=_0xba9eb;return _0xcb6a5b;})['then'](function(_0x139514){if(_0x139514){if(_0x7a0e81['body']['manual']){_0xcb6a5b['message'][_0xb2ff('0x84')]=util[_0xb2ff('0x6b')]('SIP/%s',_0x7a0e81[_0xb2ff('0x5d')][_0xb2ff('0x28')]);_0xcb6a5b[_0xb2ff('0x1b')][_0xb2ff('0x85')]=_0xcb6a5b[_0xb2ff('0x85')];_0xcb6a5b[_0xb2ff('0x1b')][_0xb2ff('0x86')]=_0xcb6a5b['channel'];_0xcb6a5b[_0xb2ff('0x1b')][_0xb2ff('0x87')]=_0xb2ff('0x88');_0xcb6a5b[_0xb2ff('0x1b')]['body']=htmlToText[_0xb2ff('0x89')](_0xcb6a5b['message'][_0xb2ff('0x49')]);return respondWithRpcPromise(_0xb2ff('0x8a'),_0xb2ff('0x8a'),{'event':'acceptmessage','message':_0xcb6a5b[_0xb2ff('0x1b')]},client9002)[_0xb2ff('0x14')](function(){return _0xcb6a5b;});}return _0xcb6a5b;}return null;})[_0xb2ff('0x14')](respondWithResult(_0x467824,null))['catch'](handleError(_0x467824,null));};exports['reject']=function(_0x211f19,_0x3d828d){var _0x32f960={'agent':{},'channel':_0xb2ff('0x6d')};if(_0x211f19[_0xb2ff('0x49')]['id']){delete _0x211f19['body']['id'];}_0x211f19[_0xb2ff('0x49')][_0xb2ff('0x70')]=_0x211f19[_0xb2ff('0x49')]['UserId']||_0x211f19[_0xb2ff('0x5d')]['id'];_0x32f960[_0xb2ff('0x80')]['id']=_0x211f19[_0xb2ff('0x49')][_0xb2ff('0x70')];return db[_0xb2ff('0x2b')][_0xb2ff('0x48')]({'where':{'id':_0x211f19[_0xb2ff('0x47')]['id'],'UserId':null}})[_0xb2ff('0x14')](handleEntityNotFound(_0x3d828d,null))[_0xb2ff('0x14')](function(_0x47a8f1){if(_0x47a8f1){_0x32f960[_0xb2ff('0x1b')]=_0x47a8f1['get']({'plain':!![]});return db[_0xb2ff('0x8b')][_0xb2ff('0x48')]({'where':{'id':_0x47a8f1[_0xb2ff('0x72')]}});}return null;})[_0xb2ff('0x14')](handleEntityNotFound(_0x3d828d,null))[_0xb2ff('0x14')](function(_0xa01838){if(_0xa01838){_0x32f960[_0xb2ff('0x76')]=_0xa01838[_0xb2ff('0x71')]({'plain':!![]});interaction_log[_0xb2ff('0x15')](_0xb2ff('0x8c'),_0x211f19[_0xb2ff('0x5d')]['id'],_0x211f19['user'][_0xb2ff('0x28')],_0x211f19[_0xb2ff('0x5d')][_0xb2ff('0x8d')],_0x32f960[_0xb2ff('0x76')]['id'],_0x211f19[_0xb2ff('0x49')]?JSON[_0xb2ff('0x6c')](_0x211f19['body']):_0xb2ff('0x78'));return respondWithRpcPromise('RejectMessage','rejectMessage',_0x32f960);}return null;})[_0xb2ff('0x14')](function(_0x2ffa22){var _0x4d0025=_0xb2ff('0x8e')+_0x2ffa22[_0xb2ff('0x1b')][_0xb2ff('0x7a')];return db[_0xb2ff('0x7b')]['query'](_0x4d0025,{'type':db[_0xb2ff('0x7c')][_0xb2ff('0x7d')][_0xb2ff('0x8f')],'raw':!![]})['then'](function(_0x292794){return _0x292794;});})[_0xb2ff('0x14')](function(_0x1c7c36){if(_0x1c7c36){_0x32f960[_0xb2ff('0x1b')][_0xb2ff('0x7e')]=_0x1c7c36[0x0];if(!_0x211f19[_0xb2ff('0x49')][_0xb2ff('0x70')])return;return db[_0xb2ff('0x7f')][_0xb2ff('0x48')]({'where':{'id':_0x211f19['body'][_0xb2ff('0x70')],'role':'agent'},'attributes':['id','name',_0xb2ff('0x81'),'email',_0xb2ff('0x83')],'raw':!![]});}return null;})[_0xb2ff('0x14')](function(_0x590845){if(!_0x590845)return null;_0x32f960[_0xb2ff('0x1b')][_0xb2ff('0x80')]=_0x590845;return _0x32f960;})[_0xb2ff('0x14')](function(_0x32dfb9){if(_0x32dfb9){_0x32dfb9['message'][_0xb2ff('0x84')]=util[_0xb2ff('0x6b')](_0xb2ff('0x90'),_0x211f19['user'][_0xb2ff('0x28')]);_0x32dfb9['message'][_0xb2ff('0x85')]=_0x32f960['channel'];_0x32dfb9[_0xb2ff('0x1b')][_0xb2ff('0x86')]=_0x32f960[_0xb2ff('0x85')];_0x32dfb9['message'][_0xb2ff('0x87')]='reject';_0x32dfb9[_0xb2ff('0x1b')][_0xb2ff('0x49')]=htmlToText[_0xb2ff('0x89')](_0x32f960['message'][_0xb2ff('0x49')]);respondWithRpcPromise(_0xb2ff('0x8a'),'EventManager',{'event':'rejectmessage','message':_0x32dfb9[_0xb2ff('0x1b')]},client9002);return _0x32f960;}return null;})[_0xb2ff('0x14')](respondWithResult(_0x3d828d,null))[_0xb2ff('0x1d')](handleError(_0x3d828d,null));};exports[_0xb2ff('0x91')]=function(_0x17bd73,_0x614e62){var _0x4cd45b=moment()[_0xb2ff('0x92')]()['toString']();var _0x4cc735=path[_0xb2ff('0x62')](config[_0xb2ff('0x63')],_0xb2ff('0x93'),_0xb2ff('0x94'),_0xb2ff('0x95'));var _0x109dc8=path[_0xb2ff('0x62')](config[_0xb2ff('0x63')],_0xb2ff('0x93'),'files',_0xb2ff('0x61'));var _0x2a96a8=util['format'](_0xb2ff('0x96'),_0x4cd45b);return db[_0xb2ff('0x2b')][_0xb2ff('0x48')]({'where':{'id':_0x17bd73[_0xb2ff('0x47')]['id']},'attributes':['id',_0xb2ff('0x49'),_0xb2ff('0x97'),'to','cc',_0xb2ff('0x98'),'subject',_0xb2ff('0x99')],'include':_0x17bd73[_0xb2ff('0x32')][_0xb2ff('0x61')]?[{'model':db[_0xb2ff('0x9a')],'as':_0xb2ff('0x9b')}]:undefined})[_0xb2ff('0x14')](handleEntityNotFound(_0x614e62,null))['then'](function(_0x3b783a){if(_0x3b783a){var _0x27a0bd=_0x3b783a;var _0x166ffd={'from':_0x27a0bd[_0xb2ff('0x97')],'to':_0x27a0bd['to'],'subject':_0x27a0bd[_0xb2ff('0x9c')],'html':htmlEntities[_0xb2ff('0x9d')](_0x27a0bd['body']),'headers':{'Date':moment(_0x27a0bd['createdAt'])[_0xb2ff('0x6b')](_0xb2ff('0x9e'))},'attachments':[]};if(_0x3b783a['cc']){_0x166ffd[_0xb2ff('0x9f')]['Cc']=_0x3b783a['cc'];}if(_0x3b783a['bcc']){_0x166ffd[_0xb2ff('0x9f')]['Bcc']=_0x3b783a[_0xb2ff('0x98')];}return new BPromise(function(_0x13d692,_0x2bb82b){if(_0x3b783a[_0xb2ff('0x9b')]){for(var _0x591ef4=0x0;_0x591ef4<_0x3b783a[_0xb2ff('0x9b')][_0xb2ff('0x37')];_0x591ef4++){var _0x399f8c=_0x3b783a[_0xb2ff('0x9b')][_0x591ef4];var _0x4c0925=path['join'](_0x109dc8,_0x399f8c[_0xb2ff('0x65')]);if(fs['existsSync'](_0x4c0925)){_0x166ffd['attachments'][_0xb2ff('0xa0')]({'name':_0x399f8c[_0xb2ff('0x28')],'contentType':_0x399f8c[_0xb2ff('0x2e')],'data':fs['readFileSync'](_0x4c0925)});}}}emlformat['build'](_0x166ffd,function(_0x19691d,_0x33db9e){if(_0x19691d)return _0x2bb82b(_0x19691d);fs['writeFileSync'](path[_0xb2ff('0x62')](_0x4cc735,_0x2a96a8),_0x33db9e);return _0x13d692(_0x33db9e);});});}})[_0xb2ff('0x14')](function(_0x4770f1){if(_0x4770f1){return _0x614e62['download'](path['join'](_0x4cc735,_0x2a96a8),_0x2a96a8,function(_0x13d4fc){if(!_0x13d4fc)fs[_0xb2ff('0xa1')](path[_0xb2ff('0x62')](_0x4cc735,_0x2a96a8));});}})['catch'](handleError(_0x614e62,null));};
\ No newline at end of file
+var _0x34e8=['message','info','catch','status','json','offset','undefined','limit','count','set','Content-Range','destroy','end','sendStatus','name','send','index','map','MailMessage','rawAttributes','type','key','query','keys','filters','intersection','model','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','VIRTUAL','filter','merge','options','includeAll','findAll','rows','show','params','length','include','find','body','create','direction','out','secret','MailAccount','findOne','CmList','List','CmContact','Contacts','DESC','MailServerOut','Smtp','isNil','service','host','port','secure','authentication','auth','user','pass','attachments','join','root','server/files/attachments','basename','ListId','sendMail','update','messageId','YYYY-MM-DD\x20HH:mm:ss','accept','readAt','UserId','agent','get','MailInteraction','MailInteractionId','format','interaction','[MAILMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','null','AcceptMessage','ContactId','sequelize','Sequelize','QueryTypes','SELECT','contact','User','fullname','internal','SIP/%s','channel','fromString','EventManager','acceptmessage','reject','mail','RejectMessage','rejectMessage','email','interface','event','rejectmessage','download','unix','toString','files','tmp','server','message-%s.eml','from','bcc','subject','createdAt','Attachment','Attachments','ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ','headers','Bcc','existsSync','push','build','writeFileSync','unlinkSync','eml-format','moment','bluebird','util','lodash','ioredis','html-to-text','../../components/parsers/qs','../../config/logger','api','../../config/environment','redis','defaults','localhost','socket.io-emitter','./mailMessage.socket','register','jayson/promise','client','http','request','then','MailMessage,\x20%s,\x20%s','request\x20sent','MailMessage,\x20%s,\x20%s,\x20%s','stringify','error','code'];(function(_0x2ba740,_0x62a305){var _0x358bda=function(_0x16cc07){while(--_0x16cc07){_0x2ba740['push'](_0x2ba740['shift']());}};_0x358bda(++_0x62a305);}(_0x34e8,0x12c));var _0x834e=function(_0x2aac85,_0x22dfef){_0x2aac85=_0x2aac85-0x0;var _0x5a0aa7=_0x34e8[_0x2aac85];return _0x5a0aa7;};'use strict';var emlformat=require(_0x834e('0x0'));var moment=require(_0x834e('0x1'));var BPromise=require(_0x834e('0x2'));var util=require(_0x834e('0x3'));var path=require('path');var fs=require('fs');var _=require(_0x834e('0x4'));var Redis=require(_0x834e('0x5'));var htmlToText=require(_0x834e('0x6'));var qs=require(_0x834e('0x7'));var logger=require(_0x834e('0x8'))(_0x834e('0x9'));var interaction_log=require(_0x834e('0x8'))('mail-interactions');var config=require(_0x834e('0xa'));var db=require('../../mysqldb')['db'];config[_0x834e('0xb')]=_[_0x834e('0xc')](config[_0x834e('0xb')],{'host':_0x834e('0xd'),'port':0x18eb});var socket=require(_0x834e('0xe'))(new Redis(config[_0x834e('0xb')]));require(_0x834e('0xf'))[_0x834e('0x10')](socket);var jayson=require(_0x834e('0x11'));var client=jayson[_0x834e('0x12')][_0x834e('0x13')]({'port':0x232c});var client9003=jayson[_0x834e('0x12')][_0x834e('0x13')]({'port':0x232b});var client9002=jayson[_0x834e('0x12')][_0x834e('0x13')]({'port':0x232a});function respondWithRpcPromise(_0x1e00de,_0x2fd95c,_0x538bb3,_0x5e5b6d){return new BPromise(function(_0x6cd9b9,_0x58a27e){var _0x23848e=_0x5e5b6d||client;return _0x23848e[_0x834e('0x14')](_0x1e00de,_0x538bb3)[_0x834e('0x15')](function(_0x21cc0a){logger['info'](_0x834e('0x16'),_0x2fd95c,_0x834e('0x17'));logger['debug'](_0x834e('0x18'),_0x2fd95c,'request\x20sent',JSON[_0x834e('0x19')](_0x21cc0a));if(_0x21cc0a[_0x834e('0x1a')]){if(_0x21cc0a['error'][_0x834e('0x1b')]===0x1f4){logger[_0x834e('0x1a')](_0x834e('0x16'),_0x2fd95c,_0x21cc0a['error'][_0x834e('0x1c')]);return _0x58a27e(_0x21cc0a[_0x834e('0x1a')][_0x834e('0x1c')]);}logger[_0x834e('0x1a')](_0x834e('0x16'),_0x2fd95c,_0x21cc0a[_0x834e('0x1a')][_0x834e('0x1c')]);return _0x6cd9b9(_0x21cc0a['error'][_0x834e('0x1c')]);}else{logger[_0x834e('0x1d')](_0x834e('0x16'),_0x2fd95c,_0x834e('0x17'));_0x6cd9b9(_0x21cc0a['result'][_0x834e('0x1c')]);}})[_0x834e('0x1e')](function(_0x5a05c0){logger[_0x834e('0x1a')](_0x834e('0x16'),_0x2fd95c,_0x5a05c0);_0x58a27e(_0x5a05c0);});});}function respondWithResult(_0x8d406e,_0x5c55ca){_0x5c55ca=_0x5c55ca||0xc8;return function(_0x4e3f48){if(_0x4e3f48){return _0x8d406e[_0x834e('0x1f')](_0x5c55ca)[_0x834e('0x20')](_0x4e3f48);}};}function respondWithFilteredResult(_0x589dde,_0x25ee1d){return function(_0x1dc1e0){if(_0x1dc1e0){var _0x58f4fd=typeof _0x25ee1d[_0x834e('0x21')]===_0x834e('0x22')&&typeof _0x25ee1d[_0x834e('0x23')]==='undefined';var _0x24fcf7=_0x1dc1e0[_0x834e('0x24')];var _0x5e1cc5=_0x58f4fd?0x0:_0x25ee1d['offset'];var _0x1e713a=_0x58f4fd?_0x1dc1e0['count']:_0x25ee1d[_0x834e('0x21')]+_0x25ee1d[_0x834e('0x23')];var _0x3db026;if(_0x1e713a>=_0x24fcf7){_0x1e713a=_0x24fcf7;_0x3db026=0xc8;}else{_0x3db026=0xce;}_0x589dde[_0x834e('0x1f')](_0x3db026);return _0x589dde[_0x834e('0x25')](_0x834e('0x26'),_0x5e1cc5+'-'+_0x1e713a+'/'+_0x24fcf7)['json'](_0x1dc1e0);}return null;};}function saveUpdates(_0x510780){return function(_0x4dc64a){if(_0x4dc64a){return _0x4dc64a['update'](_0x510780)[_0x834e('0x15')](function(_0x567cea){return _0x567cea;});}return null;};}function removeEntity(_0x106d6a){return function(_0x5dacc1){if(_0x5dacc1){return _0x5dacc1[_0x834e('0x27')]()[_0x834e('0x15')](function(){_0x106d6a[_0x834e('0x1f')](0xcc)[_0x834e('0x28')]();});}};}function handleEntityNotFound(_0x4551f5){return function(_0x390119){if(!_0x390119){_0x4551f5[_0x834e('0x29')](0x194);}return _0x390119;};}function handleError(_0xfaf716,_0x278db3){_0x278db3=_0x278db3||0x1f4;return function(_0x493289){logger[_0x834e('0x1a')](_0x493289['stack']);if(_0x493289[_0x834e('0x2a')]){delete _0x493289[_0x834e('0x2a')];}_0xfaf716[_0x834e('0x1f')](_0x278db3)[_0x834e('0x2b')](_0x493289);};}exports[_0x834e('0x2c')]=function(_0x4689c2,_0x4696a1){var _0x38cd29={},_0x358c31={},_0x12b2bc={'count':0x0,'rows':[]};var _0x5bd232=_[_0x834e('0x2d')](db[_0x834e('0x2e')][_0x834e('0x2f')],function(_0xaf01f4){return{'name':_0xaf01f4['fieldName'],'type':_0xaf01f4[_0x834e('0x30')][_0x834e('0x31')]};});_0x358c31['model']=_['map'](_0x5bd232,'name');_0x358c31[_0x834e('0x32')]=_[_0x834e('0x33')](_0x4689c2[_0x834e('0x32')]);_0x358c31[_0x834e('0x34')]=_[_0x834e('0x35')](_0x358c31[_0x834e('0x36')],_0x358c31['query']);_0x38cd29[_0x834e('0x37')]=_['intersection'](_0x358c31[_0x834e('0x36')],qs[_0x834e('0x38')](_0x4689c2['query'][_0x834e('0x38')]));_0x38cd29[_0x834e('0x37')]=_0x38cd29['attributes']['length']?_0x38cd29[_0x834e('0x37')]:_0x358c31[_0x834e('0x36')];if(!_0x4689c2[_0x834e('0x32')][_0x834e('0x39')](_0x834e('0x3a'))){_0x38cd29['limit']=qs[_0x834e('0x23')](_0x4689c2['query']['limit']);_0x38cd29[_0x834e('0x21')]=qs['offset'](_0x4689c2[_0x834e('0x32')][_0x834e('0x21')]);}_0x38cd29[_0x834e('0x3b')]=qs[_0x834e('0x3c')](_0x4689c2[_0x834e('0x32')]['sort']);_0x38cd29[_0x834e('0x3d')]=qs[_0x834e('0x34')](_[_0x834e('0x3e')](_0x4689c2['query'],_0x358c31[_0x834e('0x34')]),_0x5bd232);if(_0x4689c2[_0x834e('0x32')]['filter']){_0x38cd29[_0x834e('0x3d')]=_['merge'](_0x38cd29[_0x834e('0x3d')],{'$or':_[_0x834e('0x2d')](_0x5bd232,function(_0x4a18bb){if(_0x4a18bb['type']!==_0x834e('0x3f')){var _0x16969b={};_0x16969b[_0x4a18bb[_0x834e('0x2a')]]={'$like':'%'+_0x4689c2[_0x834e('0x32')][_0x834e('0x40')]+'%'};return _0x16969b;}})});}_0x38cd29=_[_0x834e('0x41')]({},_0x38cd29,_0x4689c2[_0x834e('0x42')]);var _0x4a3381={'where':_0x38cd29[_0x834e('0x3d')]};return db['MailMessage'][_0x834e('0x24')](_0x4a3381)['then'](function(_0x1df5b0){_0x12b2bc['count']=_0x1df5b0;if(_0x4689c2[_0x834e('0x32')][_0x834e('0x43')]){_0x38cd29['include']=[{'all':!![]}];}return db[_0x834e('0x2e')][_0x834e('0x44')](_0x38cd29);})[_0x834e('0x15')](function(_0xd55cc3){_0x12b2bc[_0x834e('0x45')]=_0xd55cc3;return _0x12b2bc;})[_0x834e('0x15')](respondWithFilteredResult(_0x4696a1,_0x38cd29))[_0x834e('0x1e')](handleError(_0x4696a1,null));};exports[_0x834e('0x46')]=function(_0x5dc63b,_0x279ea1){var _0x5f3943={'raw':!![],'where':{'id':_0x5dc63b[_0x834e('0x47')]['id']}},_0x3124be={};_0x3124be['model']=_[_0x834e('0x33')](db[_0x834e('0x2e')][_0x834e('0x2f')]);_0x3124be[_0x834e('0x32')]=_[_0x834e('0x33')](_0x5dc63b[_0x834e('0x32')]);_0x3124be['filters']=_['intersection'](_0x3124be[_0x834e('0x36')],_0x3124be[_0x834e('0x32')]);_0x5f3943[_0x834e('0x37')]=_[_0x834e('0x35')](_0x3124be[_0x834e('0x36')],qs[_0x834e('0x38')](_0x5dc63b[_0x834e('0x32')][_0x834e('0x38')]));_0x5f3943[_0x834e('0x37')]=_0x5f3943[_0x834e('0x37')][_0x834e('0x48')]?_0x5f3943[_0x834e('0x37')]:_0x3124be[_0x834e('0x36')];if(_0x5dc63b[_0x834e('0x32')][_0x834e('0x43')]){_0x5f3943[_0x834e('0x49')]=[{'all':!![]}];}_0x5f3943=_[_0x834e('0x41')]({},_0x5f3943,_0x5dc63b[_0x834e('0x42')]);return db[_0x834e('0x2e')][_0x834e('0x4a')](_0x5f3943)['then'](handleEntityNotFound(_0x279ea1,null))[_0x834e('0x15')](respondWithResult(_0x279ea1,null))[_0x834e('0x1e')](handleError(_0x279ea1,null));};exports['update']=function(_0x3c00a3,_0x3b0988){if(_0x3c00a3['body']['id']){delete _0x3c00a3[_0x834e('0x4b')]['id'];}return db[_0x834e('0x2e')][_0x834e('0x4a')]({'where':{'id':_0x3c00a3[_0x834e('0x47')]['id']}})[_0x834e('0x15')](handleEntityNotFound(_0x3b0988,null))[_0x834e('0x15')](saveUpdates(_0x3c00a3[_0x834e('0x4b')],null))['then'](respondWithResult(_0x3b0988,null))[_0x834e('0x1e')](handleError(_0x3b0988,null));};exports[_0x834e('0x27')]=function(_0x3e0550,_0x363675){return db[_0x834e('0x2e')][_0x834e('0x4a')]({'where':{'id':_0x3e0550[_0x834e('0x47')]['id']}})[_0x834e('0x15')](handleEntityNotFound(_0x363675,null))['then'](removeEntity(_0x363675,null))[_0x834e('0x1e')](handleError(_0x363675,null));};exports['describe']=function(_0x2f4bde,_0x53a9ee){return db[_0x834e('0x2e')]['describe']()['then'](respondWithResult(_0x53a9ee,null))[_0x834e('0x1e')](handleError(_0x53a9ee,null));};exports[_0x834e('0x4c')]=function(_0x5291ae,_0x5be43d){return db[_0x834e('0x2e')][_0x834e('0x4c')](_0x5291ae[_0x834e('0x4b')])[_0x834e('0x15')](function(_0x21c417){if(_0x21c417){if(_0x21c417[_0x834e('0x4d')]===_0x834e('0x4e')&&!_0x21c417[_0x834e('0x4f')]){var _0x528e66,_0x142334,_0x3c70bf;if(_0x5291ae['body']['to']){_0x142334=_0x5291ae[_0x834e('0x4b')]['to']['split'](',')[0x0];}return db[_0x834e('0x50')][_0x834e('0x51')]({'where':{'id':_0x21c417['MailAccountId']},'include':[{'model':db[_0x834e('0x52')],'as':_0x834e('0x53'),'include':[{'model':db[_0x834e('0x54')],'as':_0x834e('0x55'),'where':{'email':_0x142334},'limit':0x1,'order':[['updatedAt',_0x834e('0x56')]]}]},{'model':db[_0x834e('0x57')],'as':_0x834e('0x58'),'raw':!![]}]})['then'](function(_0x246b8e){_0x528e66=_0x246b8e;if(_0x528e66&&_0x528e66[_0x834e('0x58')]){var _0x3a7683={'tls':{'rejectUnauthorized':![]}};if(_[_0x834e('0x59')](_0x528e66[_0x834e('0x58')][_0x834e('0x5a')])){_0x3a7683[_0x834e('0x5b')]=_0x528e66[_0x834e('0x58')][_0x834e('0x5b')];_0x3a7683[_0x834e('0x5c')]=_0x528e66[_0x834e('0x58')][_0x834e('0x5c')];_0x3a7683[_0x834e('0x5d')]=_0x528e66[_0x834e('0x58')][_0x834e('0x5d')];if(_0x528e66[_0x834e('0x58')][_0x834e('0x5e')]){_0x3a7683[_0x834e('0x5f')]={'user':_0x528e66[_0x834e('0x58')][_0x834e('0x60')],'pass':_0x528e66[_0x834e('0x58')][_0x834e('0x61')]};}}else{_0x3a7683['service']=_0x528e66[_0x834e('0x58')][_0x834e('0x5a')];_0x3a7683[_0x834e('0x5f')]={'user':_0x528e66[_0x834e('0x58')]['user'],'pass':_0x528e66[_0x834e('0x58')]['pass']};_0x3a7683['secure']=_0x528e66[_0x834e('0x58')][_0x834e('0x5d')];}if(_0x5291ae[_0x834e('0x4b')][_0x834e('0x62')]&&_0x5291ae[_0x834e('0x4b')][_0x834e('0x62')][_0x834e('0x48')]){for(var _0xe5c8f6=0x0;_0xe5c8f6<_0x5291ae['body'][_0x834e('0x62')]['length'];_0xe5c8f6+=0x1){_0x5291ae[_0x834e('0x4b')][_0x834e('0x62')][_0xe5c8f6]={'filename':_0x5291ae['body']['attachments'][_0xe5c8f6][_0x834e('0x2a')],'path':path[_0x834e('0x63')](config[_0x834e('0x64')],_0x834e('0x65'),_0x5291ae[_0x834e('0x4b')]['attachments'][_0xe5c8f6][_0x834e('0x66')])};}}_0x3c70bf={'account':_0x3a7683,'message':_0x5291ae[_0x834e('0x4b')]};return;}})[_0x834e('0x15')](function(){if(_0x528e66[_0x834e('0x53')]){if(_0x528e66[_0x834e('0x53')][_0x834e('0x55')][_0x834e('0x48')]){return _0x528e66[_0x834e('0x53')][_0x834e('0x55')][0x0];}else{return db[_0x834e('0x54')]['create'](_[_0x834e('0xc')](_0x5291ae[_0x834e('0x4b')],{'firstName':_0x5291ae[_0x834e('0x4b')]['to'],'email':_0x5291ae[_0x834e('0x4b')]['to'],'phone':_0x5291ae['body']['to'],'ListId':_0x528e66[_0x834e('0x67')]}));}}else{throw new Error('List\x20not\x20found');}})['then'](function(){if(_0x3c70bf){return respondWithRpcPromise('SendMail',_0x834e('0x68'),_0x3c70bf,client9003)[_0x834e('0x15')](function(_0x514aac){return _0x21c417[_0x834e('0x69')]({'read':!![],'messageId':_0x514aac[_0x834e('0x6a')],'sentAt':moment()['format'](_0x834e('0x6b'))});})[_0x834e('0x1e')](function(_0x4b88e7){logger['error']('%s',JSON[_0x834e('0x19')](_0x4b88e7));return _0x21c417;});}return _0x21c417;});}return _0x21c417;}})[_0x834e('0x15')](respondWithResult(_0x5be43d,0xc9))[_0x834e('0x1e')](handleError(_0x5be43d,null));};exports[_0x834e('0x6c')]=function(_0x1d8e7,_0x493239){var _0x264a6f={'agent':{},'channel':'mail'};if(_0x1d8e7[_0x834e('0x4b')]['id']){delete _0x1d8e7[_0x834e('0x4b')]['id'];}_0x1d8e7[_0x834e('0x4b')]['read']=!![];_0x1d8e7[_0x834e('0x4b')][_0x834e('0x6d')]=moment()['format'](_0x834e('0x6b'));_0x1d8e7[_0x834e('0x4b')][_0x834e('0x6e')]=_0x1d8e7['body'][_0x834e('0x6e')]||_0x1d8e7[_0x834e('0x60')]['id'];_0x264a6f[_0x834e('0x6f')]['id']=_0x1d8e7[_0x834e('0x4b')][_0x834e('0x6e')];return db[_0x834e('0x2e')][_0x834e('0x4a')]({'where':{'id':_0x1d8e7[_0x834e('0x47')]['id'],'UserId':null}})[_0x834e('0x15')](handleEntityNotFound(_0x493239,null))[_0x834e('0x15')](saveUpdates(_0x1d8e7['body'],null))['then'](function(_0x4e466e){if(_0x4e466e){_0x264a6f[_0x834e('0x1c')]=_0x4e466e[_0x834e('0x70')]({'plain':!![]});return db[_0x834e('0x71')][_0x834e('0x4a')]({'where':{'id':_0x4e466e[_0x834e('0x72')]}});}return null;})['then'](handleEntityNotFound(_0x493239,null))['then'](function(_0x4520fc){if(_0x4520fc){return _0x4520fc[_0x834e('0x69')]({'UserId':_0x1d8e7[_0x834e('0x4b')][_0x834e('0x6e')],'read1stAt':_[_0x834e('0x59')](_0x4520fc['read1stAt'])?moment()[_0x834e('0x73')](_0x834e('0x6b')):undefined});}return null;})[_0x834e('0x15')](function(_0x4e1735){if(_0x4e1735){_0x264a6f[_0x834e('0x74')]=_0x4e1735[_0x834e('0x70')]({'plain':!![]});interaction_log[_0x834e('0x1d')](_0x834e('0x75'),_0x1d8e7[_0x834e('0x60')]['id'],_0x1d8e7['user']['name'],_0x1d8e7[_0x834e('0x60')][_0x834e('0x76')],_0x264a6f['interaction']['id'],_0x1d8e7[_0x834e('0x4b')]?JSON['stringify'](_0x1d8e7[_0x834e('0x4b')]):_0x834e('0x77'));return respondWithRpcPromise(_0x834e('0x78'),'acceptMessage',_0x264a6f);}return null;})[_0x834e('0x15')](function(_0x49e721){var _0x5b2621='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x49e721[_0x834e('0x1c')][_0x834e('0x79')];return db[_0x834e('0x7a')][_0x834e('0x32')](_0x5b2621,{'type':db[_0x834e('0x7b')][_0x834e('0x7c')][_0x834e('0x7d')],'raw':!![]})[_0x834e('0x15')](function(_0x17e61a){return _0x17e61a;});})['then'](function(_0x2f775a){if(_0x2f775a){_0x264a6f['message'][_0x834e('0x7e')]=_0x2f775a[0x0];if(!_0x1d8e7[_0x834e('0x4b')][_0x834e('0x6e')])return;return db[_0x834e('0x7f')][_0x834e('0x4a')]({'where':{'id':_0x1d8e7[_0x834e('0x4b')]['UserId'],'role':'agent'},'attributes':['id',_0x834e('0x2a'),_0x834e('0x80'),'email',_0x834e('0x81')],'raw':!![]});}return null;})[_0x834e('0x15')](function(_0x1bc5d1){if(!_0x1bc5d1)return null;_0x264a6f[_0x834e('0x1c')][_0x834e('0x6f')]=_0x1bc5d1;return _0x264a6f;})['then'](function(_0x29839d){if(_0x29839d){if(_0x1d8e7[_0x834e('0x4b')]['manual']){_0x264a6f['message']['interface']=util[_0x834e('0x73')](_0x834e('0x82'),_0x1d8e7['user'][_0x834e('0x2a')]);_0x264a6f[_0x834e('0x1c')]['channel']=_0x264a6f[_0x834e('0x83')];_0x264a6f['message']['event']=_0x834e('0x6c');_0x264a6f[_0x834e('0x1c')][_0x834e('0x4b')]=htmlToText[_0x834e('0x84')](_0x264a6f['message'][_0x834e('0x4b')]);return respondWithRpcPromise(_0x834e('0x85'),_0x834e('0x85'),{'event':_0x834e('0x86'),'message':_0x264a6f[_0x834e('0x1c')]},client9002)[_0x834e('0x15')](function(){return _0x264a6f;});}return _0x264a6f;}return null;})[_0x834e('0x15')](respondWithResult(_0x493239,null))[_0x834e('0x1e')](handleError(_0x493239,null));};exports[_0x834e('0x87')]=function(_0x2821fe,_0x2fa64c){var _0x261e3d={'agent':{},'channel':_0x834e('0x88')};if(_0x2821fe[_0x834e('0x4b')]['id']){delete _0x2821fe[_0x834e('0x4b')]['id'];}_0x2821fe[_0x834e('0x4b')][_0x834e('0x6e')]=_0x2821fe[_0x834e('0x4b')][_0x834e('0x6e')]||_0x2821fe[_0x834e('0x60')]['id'];_0x261e3d[_0x834e('0x6f')]['id']=_0x2821fe[_0x834e('0x4b')]['UserId'];return db[_0x834e('0x2e')][_0x834e('0x4a')]({'where':{'id':_0x2821fe[_0x834e('0x47')]['id'],'UserId':null}})[_0x834e('0x15')](handleEntityNotFound(_0x2fa64c,null))[_0x834e('0x15')](function(_0x3bcdcd){if(_0x3bcdcd){_0x261e3d[_0x834e('0x1c')]=_0x3bcdcd[_0x834e('0x70')]({'plain':!![]});return db[_0x834e('0x71')]['find']({'where':{'id':_0x3bcdcd['MailInteractionId']}});}return null;})['then'](handleEntityNotFound(_0x2fa64c,null))[_0x834e('0x15')](function(_0x493e1f){if(_0x493e1f){_0x261e3d[_0x834e('0x74')]=_0x493e1f[_0x834e('0x70')]({'plain':!![]});interaction_log[_0x834e('0x1d')]('[MAILMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x2821fe[_0x834e('0x60')]['id'],_0x2821fe[_0x834e('0x60')][_0x834e('0x2a')],_0x2821fe[_0x834e('0x60')][_0x834e('0x76')],_0x261e3d[_0x834e('0x74')]['id'],_0x2821fe['body']?JSON[_0x834e('0x19')](_0x2821fe[_0x834e('0x4b')]):_0x834e('0x77'));return respondWithRpcPromise(_0x834e('0x89'),_0x834e('0x8a'),_0x261e3d);}return null;})['then'](function(_0x4ebeba){var _0x508b3e='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x4ebeba[_0x834e('0x1c')][_0x834e('0x79')];return db['sequelize'][_0x834e('0x32')](_0x508b3e,{'type':db[_0x834e('0x7b')]['QueryTypes'][_0x834e('0x7d')],'raw':!![]})[_0x834e('0x15')](function(_0xbf7693){return _0xbf7693;});})[_0x834e('0x15')](function(_0x1d1075){if(_0x1d1075){_0x261e3d[_0x834e('0x1c')]['contact']=_0x1d1075[0x0];if(!_0x2821fe['body'][_0x834e('0x6e')])return;return db[_0x834e('0x7f')][_0x834e('0x4a')]({'where':{'id':_0x2821fe['body'][_0x834e('0x6e')],'role':_0x834e('0x6f')},'attributes':['id','name',_0x834e('0x80'),_0x834e('0x8b'),_0x834e('0x81')],'raw':!![]});}return null;})[_0x834e('0x15')](function(_0x4cb802){if(!_0x4cb802)return null;_0x261e3d[_0x834e('0x1c')]['agent']=_0x4cb802;return _0x261e3d;})['then'](function(_0xc64958){if(_0xc64958){_0xc64958[_0x834e('0x1c')][_0x834e('0x8c')]=util[_0x834e('0x73')](_0x834e('0x82'),_0x2821fe[_0x834e('0x60')]['name']);_0xc64958['message'][_0x834e('0x83')]=_0x261e3d[_0x834e('0x83')];_0xc64958[_0x834e('0x1c')][_0x834e('0x8d')]=_0x834e('0x87');_0xc64958[_0x834e('0x1c')][_0x834e('0x4b')]=htmlToText['fromString'](_0x261e3d[_0x834e('0x1c')][_0x834e('0x4b')]);respondWithRpcPromise('EventManager',_0x834e('0x85'),{'event':_0x834e('0x8e'),'message':_0xc64958[_0x834e('0x1c')]},client9002);return _0x261e3d;}return null;})[_0x834e('0x15')](respondWithResult(_0x2fa64c,null))[_0x834e('0x1e')](handleError(_0x2fa64c,null));};exports[_0x834e('0x8f')]=function(_0x231f0b,_0x3b44f3){var _0x14e794=moment()[_0x834e('0x90')]()[_0x834e('0x91')]();var _0x152372=path[_0x834e('0x63')](config[_0x834e('0x64')],'server',_0x834e('0x92'),_0x834e('0x93'));var _0x522eab=path[_0x834e('0x63')](config['root'],_0x834e('0x94'),'files',_0x834e('0x62'));var _0x560d10=util[_0x834e('0x73')](_0x834e('0x95'),_0x14e794);return db[_0x834e('0x2e')][_0x834e('0x4a')]({'where':{'id':_0x231f0b['params']['id']},'attributes':['id',_0x834e('0x4b'),_0x834e('0x96'),'to','cc',_0x834e('0x97'),_0x834e('0x98'),_0x834e('0x99')],'include':_0x231f0b[_0x834e('0x32')][_0x834e('0x62')]?[{'model':db[_0x834e('0x9a')],'as':_0x834e('0x9b')}]:undefined})[_0x834e('0x15')](handleEntityNotFound(_0x3b44f3,null))[_0x834e('0x15')](function(_0x1cb4d0){if(_0x1cb4d0){var _0x3a6546=_0x1cb4d0;var _0x246f01={'from':_0x3a6546[_0x834e('0x96')],'to':_0x3a6546['to'],'subject':_0x3a6546[_0x834e('0x98')],'html':_0x3a6546[_0x834e('0x4b')],'headers':{'Date':moment(_0x3a6546['createdAt'])['format'](_0x834e('0x9c'))},'attachments':[]};if(_0x1cb4d0['cc']){_0x246f01[_0x834e('0x9d')]['Cc']=_0x1cb4d0['cc'];}if(_0x1cb4d0[_0x834e('0x97')]){_0x246f01[_0x834e('0x9d')][_0x834e('0x9e')]=_0x1cb4d0[_0x834e('0x97')];}return new BPromise(function(_0x22f90d,_0x40fd40){if(_0x1cb4d0[_0x834e('0x9b')]){for(var _0x58cd3b=0x0;_0x58cd3b<_0x1cb4d0[_0x834e('0x9b')][_0x834e('0x48')];_0x58cd3b++){var _0x513d9e=_0x1cb4d0[_0x834e('0x9b')][_0x58cd3b];var _0x54c129=path[_0x834e('0x63')](_0x522eab,_0x513d9e[_0x834e('0x66')]);if(fs[_0x834e('0x9f')](_0x54c129)){_0x246f01['attachments'][_0x834e('0xa0')]({'name':_0x513d9e[_0x834e('0x2a')],'contentType':_0x513d9e['type'],'data':fs['readFileSync'](_0x54c129)});}}}emlformat[_0x834e('0xa1')](_0x246f01,function(_0x3b7b1a,_0x4e0f4d){if(_0x3b7b1a)return _0x40fd40(_0x3b7b1a);fs[_0x834e('0xa2')](path[_0x834e('0x63')](_0x152372,_0x560d10),_0x4e0f4d);return _0x22f90d(_0x4e0f4d);});});}})[_0x834e('0x15')](function(_0x135219){if(_0x135219){return _0x3b44f3[_0x834e('0x8f')](path['join'](_0x152372,_0x560d10),_0x560d10,function(_0x4e7545){if(!_0x4e7545)fs[_0x834e('0xa3')](path['join'](_0x152372,_0x560d10));});}})['catch'](handleError(_0x3b44f3,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2d05=['save','update','remove','emit','hook','exports','../../mysqldb'];(function(_0x54427d,_0x30ff8c){var _0xa6a845=function(_0x52498a){while(--_0x52498a){_0x54427d['push'](_0x54427d['shift']());}};_0xa6a845(++_0x30ff8c);}(_0x2d05,0xbc));var _0x52d0=function(_0x552d54,_0x308ca1){_0x552d54=_0x552d54-0x0;var _0x1d8f3a=_0x2d05[_0x552d54];return _0x1d8f3a;};'use strict';var EventEmitter=require('events');var MailMessage=require(_0x52d0('0x0'))['db']['MailMessage'];var MailMessageEvents=new EventEmitter();MailMessageEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x52d0('0x1'),'afterUpdate':_0x52d0('0x2'),'afterDestroy':_0x52d0('0x3')};function emitEvent(_0x4f7ac3){return function(_0x5e384b,_0x56f803,_0x37edc6){MailMessageEvents[_0x52d0('0x4')](_0x4f7ac3+':'+_0x5e384b['id'],_0x5e384b);MailMessageEvents[_0x52d0('0x4')](_0x4f7ac3,_0x5e384b);_0x37edc6(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];MailMessage[_0x52d0('0x5')](e,emitEvent(event));}}module[_0x52d0('0x6')]=MailMessageEvents;
\ No newline at end of file
+var _0x2419=['hasOwnProperty','hook','exports','events','../../mysqldb','MailMessage','save','update','remove','emit'];(function(_0x10aafe,_0x10f825){var _0x51d3f8=function(_0x4877bd){while(--_0x4877bd){_0x10aafe['push'](_0x10aafe['shift']());}};_0x51d3f8(++_0x10f825);}(_0x2419,0x11b));var _0x9241=function(_0x2eb776,_0x27c3c3){_0x2eb776=_0x2eb776-0x0;var _0x31fa34=_0x2419[_0x2eb776];return _0x31fa34;};'use strict';var EventEmitter=require(_0x9241('0x0'));var MailMessage=require(_0x9241('0x1'))['db'][_0x9241('0x2')];var MailMessageEvents=new EventEmitter();MailMessageEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x9241('0x3'),'afterUpdate':_0x9241('0x4'),'afterDestroy':_0x9241('0x5')};function emitEvent(_0x2810ef){return function(_0x1ae0d8,_0x19edf6,_0x2ce99b){MailMessageEvents[_0x9241('0x6')](_0x2810ef+':'+_0x1ae0d8['id'],_0x1ae0d8);MailMessageEvents[_0x9241('0x6')](_0x2810ef,_0x1ae0d8);_0x2ce99b(null);};}for(var e in events){if(events[_0x9241('0x7')](e)){var event=events[e];MailMessage[_0x9241('0x8')](e,emitEvent(event));}}module[_0x9241('0x9')]=MailMessageEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x076a=['../../config/environment','exports','mail_messages','messageId','fti_mail_messages','subject','body','plainBody','fromString','direction','toLowerCase','out','isNil','UserId','MailInteraction','findOne','MailInteractionId','then','update','createdAt','catch','error','lodash','../../config/logger','moment','bluebird','request-promise','html-to-text','path','rimraf'];(function(_0x4e7c1c,_0x56eafd){var _0x47adb2=function(_0x346135){while(--_0x346135){_0x4e7c1c['push'](_0x4e7c1c['shift']());}};_0x47adb2(++_0x56eafd);}(_0x076a,0x8e));var _0xa076=function(_0x616fb8,_0x177e11){_0x616fb8=_0x616fb8-0x0;var _0x739e20=_0x076a[_0x616fb8];return _0x739e20;};'use strict';var _=require(_0xa076('0x0'));var util=require('util');var logger=require(_0xa076('0x1'))('api');var moment=require(_0xa076('0x2'));var BPromise=require(_0xa076('0x3'));var rp=require(_0xa076('0x4'));var htmlToText=require(_0xa076('0x5'));var fs=require('fs');var path=require(_0xa076('0x6'));var rimraf=require(_0xa076('0x7'));var config=require(_0xa076('0x8'));var attributes=require('./mailMessage.attributes');module[_0xa076('0x9')]=function(_0x188ec8,_0x477432){return _0x188ec8['define']('MailMessage',attributes,{'tableName':_0xa076('0xa'),'paranoid':![],'indexes':[{'name':'messageId','fields':[_0xa076('0xb')]},{'name':_0xa076('0xc'),'fields':['plainBody',_0xa076('0xd')],'type':'FULLTEXT'}],'timestamps':!![],'hooks':{'beforeCreate':function(_0x2765fa,_0x28d3ad,_0x246ba5){if(_0x2765fa[_0xa076('0xe')]){_0x2765fa[_0xa076('0xf')]=htmlToText[_0xa076('0x10')](_0x2765fa[_0xa076('0xe')],{'preserveNewlines':!![],'singleNewLineParagraphs':!![],'uppercaseHeadings':![],'noLinkBrackets':!![],'ignoreImage':!![]});}_0x246ba5(null,_0x28d3ad);},'afterCreate':function(_0x2a6785,_0x574d69,_0x211f80){var _0x49215d=_0x188ec8['models'];var _0x37050c=_0x2a6785['get']({'plain':!![]});if(_0x37050c[_0xa076('0x11')][_0xa076('0x12')]()==='in'||_0x37050c[_0xa076('0x11')][_0xa076('0x12')]()===_0xa076('0x13')&&!_0x37050c['secret']&&!_[_0xa076('0x14')](_0x37050c[_0xa076('0x15')])){_0x49215d[_0xa076('0x16')][_0xa076('0x17')]({'where':{'id':_0x37050c[_0xa076('0x18')]}})[_0xa076('0x19')](function(_0x3df250){if(_0x3df250){_0x3df250[_0xa076('0x1a')]({'lastMsgAt':_0x37050c[_0xa076('0x1b')],'lastMsgDirection':_0x37050c[_0xa076('0x11')][_0xa076('0x12')]()});}})[_0xa076('0x1c')](function(_0x5248d3){console[_0xa076('0x1d')](_0x5248d3);});}_0x211f80();}},'charset':'utf8mb4','collate':'utf8mb4_unicode_ci'});};
\ No newline at end of file
+var _0x70a6=['error','utf8mb4','utf8mb4_unicode_ci','lodash','util','../../config/logger','api','moment','bluebird','request-promise','html-to-text','path','rimraf','../../config/environment','./mailMessage.attributes','define','MailMessage','mail_messages','messageId','fti_mail_messages','subject','FULLTEXT','body','plainBody','fromString','models','get','toLowerCase','direction','out','secret','isNil','UserId','findOne','MailInteractionId','then','update'];(function(_0x4b49c9,_0x290d55){var _0xab2d67=function(_0x3a8e9c){while(--_0x3a8e9c){_0x4b49c9['push'](_0x4b49c9['shift']());}};_0xab2d67(++_0x290d55);}(_0x70a6,0x72));var _0x670a=function(_0x2f88a3,_0x108fd5){_0x2f88a3=_0x2f88a3-0x0;var _0x199492=_0x70a6[_0x2f88a3];return _0x199492;};'use strict';var _=require(_0x670a('0x0'));var util=require(_0x670a('0x1'));var logger=require(_0x670a('0x2'))(_0x670a('0x3'));var moment=require(_0x670a('0x4'));var BPromise=require(_0x670a('0x5'));var rp=require(_0x670a('0x6'));var htmlToText=require(_0x670a('0x7'));var fs=require('fs');var path=require(_0x670a('0x8'));var rimraf=require(_0x670a('0x9'));var config=require(_0x670a('0xa'));var attributes=require(_0x670a('0xb'));module['exports']=function(_0x596f86,_0x5d04ae){return _0x596f86[_0x670a('0xc')](_0x670a('0xd'),attributes,{'tableName':_0x670a('0xe'),'paranoid':![],'indexes':[{'name':_0x670a('0xf'),'fields':[_0x670a('0xf')]},{'name':_0x670a('0x10'),'fields':['plainBody',_0x670a('0x11')],'type':_0x670a('0x12')}],'timestamps':!![],'hooks':{'beforeCreate':function(_0x5b1aba,_0x46643e,_0x1a871c){if(_0x5b1aba[_0x670a('0x13')]){_0x5b1aba[_0x670a('0x14')]=htmlToText[_0x670a('0x15')](_0x5b1aba['body'],{'preserveNewlines':!![],'singleNewLineParagraphs':!![],'uppercaseHeadings':![],'noLinkBrackets':!![],'ignoreImage':!![]});}_0x1a871c(null,_0x46643e);},'afterCreate':function(_0x3ee6f3,_0x51cf00,_0x426d19){var _0x16ae76=_0x596f86[_0x670a('0x16')];var _0x11a636=_0x3ee6f3[_0x670a('0x17')]({'plain':!![]});if(_0x11a636['direction'][_0x670a('0x18')]()==='in'||_0x11a636[_0x670a('0x19')][_0x670a('0x18')]()===_0x670a('0x1a')&&!_0x11a636[_0x670a('0x1b')]&&!_[_0x670a('0x1c')](_0x11a636[_0x670a('0x1d')])){_0x16ae76['MailInteraction'][_0x670a('0x1e')]({'where':{'id':_0x11a636[_0x670a('0x1f')]}})[_0x670a('0x20')](function(_0x434e48){if(_0x434e48){_0x434e48[_0x670a('0x21')]({'lastMsgAt':_0x11a636['createdAt'],'lastMsgDirection':_0x11a636[_0x670a('0x19')][_0x670a('0x18')]()});}})['catch'](function(_0x1b2a07){console[_0x670a('0x22')](_0x1b2a07);});}_0x426d19();}},'charset':_0x670a('0x23'),'collate':_0x670a('0x24')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf7b4=['randomstring','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','register','request','then','info','debug','MailMessage,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','MailMessage,\x20%s,\x20%s','message','result','catch','MailMessage','create','body','options','raw','CreateMailMessage','lodash','bluebird'];(function(_0x4baae2,_0x487ab6){var _0x1a2285=function(_0x1cea47){while(--_0x1cea47){_0x4baae2['push'](_0x4baae2['shift']());}};_0x1a2285(++_0x487ab6);}(_0xf7b4,0x152));var _0x4f7b=function(_0x14e551,_0x28d6bd){_0x14e551=_0x14e551-0x0;var _0x3a19f3=_0xf7b4[_0x14e551];return _0x3a19f3;};'use strict';var _=require(_0x4f7b('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0x4f7b('0x1'));var rs=require(_0x4f7b('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x4f7b('0x3'));var logger=require(_0x4f7b('0x4'))(_0x4f7b('0x5'));var config=require(_0x4f7b('0x6'));var jayson=require(_0x4f7b('0x7'));var client=jayson[_0x4f7b('0x8')][_0x4f7b('0x9')]({'port':0x232a});config[_0x4f7b('0xa')]=_[_0x4f7b('0xb')](config[_0x4f7b('0xa')],{'host':_0x4f7b('0xc'),'port':0x18eb});var socket=require(_0x4f7b('0xd'))(new Redis(config[_0x4f7b('0xa')]));require('./mailMessage.socket')[_0x4f7b('0xe')](socket);function respondWithRpcPromise(_0x1016e0,_0x479208,_0xdd1aab){return new BPromise(function(_0x3a3d6c,_0x408e01){return client[_0x4f7b('0xf')](_0x1016e0,_0xdd1aab)[_0x4f7b('0x10')](function(_0x55d69f){logger[_0x4f7b('0x11')]('MailMessage,\x20%s,\x20%s',_0x479208,'request\x20sent');logger[_0x4f7b('0x12')](_0x4f7b('0x13'),_0x479208,_0x4f7b('0x14'),JSON[_0x4f7b('0x15')](_0x55d69f));if(_0x55d69f['error']){if(_0x55d69f[_0x4f7b('0x16')][_0x4f7b('0x17')]===0x1f4){logger[_0x4f7b('0x16')](_0x4f7b('0x18'),_0x479208,_0x55d69f[_0x4f7b('0x16')][_0x4f7b('0x19')]);return _0x408e01(_0x55d69f[_0x4f7b('0x16')][_0x4f7b('0x19')]);}logger[_0x4f7b('0x16')](_0x4f7b('0x18'),_0x479208,_0x55d69f[_0x4f7b('0x16')][_0x4f7b('0x19')]);return _0x3a3d6c(_0x55d69f['error'][_0x4f7b('0x19')]);}else{logger['info']('MailMessage,\x20%s,\x20%s',_0x479208,_0x4f7b('0x14'));_0x3a3d6c(_0x55d69f[_0x4f7b('0x1a')]['message']);}})[_0x4f7b('0x1b')](function(_0x24c460){logger[_0x4f7b('0x16')](_0x4f7b('0x18'),_0x479208,_0x24c460);_0x408e01(_0x24c460);});});}exports['CreateMailMessage']=function(_0x1daa79){var _0x5adacb=this;return new Promise(function(_0x41cf36,_0x12374b){return db[_0x4f7b('0x1c')][_0x4f7b('0x1d')](_0x1daa79[_0x4f7b('0x1e')],{'raw':_0x1daa79[_0x4f7b('0x1f')]?_0x1daa79[_0x4f7b('0x1f')][_0x4f7b('0x20')]===undefined?!![]:![]:!![]})[_0x4f7b('0x10')](function(_0x5508bd){logger[_0x4f7b('0x11')](_0x4f7b('0x21'),_0x1daa79);logger[_0x4f7b('0x12')]('CreateMailMessage',_0x1daa79,JSON[_0x4f7b('0x15')](_0x5508bd));_0x41cf36(_0x5508bd);})[_0x4f7b('0x1b')](function(_0x5d22f4){logger[_0x4f7b('0x16')]('CreateMailMessage',_0x5d22f4[_0x4f7b('0x19')],_0x1daa79);_0x12374b(_0x5adacb[_0x4f7b('0x16')](0x1f4,_0x5d22f4[_0x4f7b('0x19')]));});});};
\ No newline at end of file
+var _0x5fdc=['catch','CreateMailMessage','MailMessage','create','body','options','debug','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','socket.io-emitter','./mailMessage.socket','register','request','then','MailMessage,\x20%s,\x20%s','MailMessage,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','info','result'];(function(_0x5199d1,_0x3069d9){var _0x5d93ea=function(_0x3c3228){while(--_0x3c3228){_0x5199d1['push'](_0x5199d1['shift']());}};_0x5d93ea(++_0x3069d9);}(_0x5fdc,0x127));var _0xc5fd=function(_0x459e0f,_0x285439){_0x459e0f=_0x459e0f-0x0;var _0x278698=_0x5fdc[_0x459e0f];return _0x278698;};'use strict';var _=require(_0xc5fd('0x0'));var util=require(_0xc5fd('0x1'));var moment=require(_0xc5fd('0x2'));var BPromise=require(_0xc5fd('0x3'));var rs=require(_0xc5fd('0x4'));var fs=require('fs');var Redis=require(_0xc5fd('0x5'));var db=require(_0xc5fd('0x6'))['db'];var utils=require(_0xc5fd('0x7'));var logger=require(_0xc5fd('0x8'))(_0xc5fd('0x9'));var config=require(_0xc5fd('0xa'));var jayson=require(_0xc5fd('0xb'));var client=jayson[_0xc5fd('0xc')][_0xc5fd('0xd')]({'port':0x232a});config[_0xc5fd('0xe')]=_['defaults'](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0xc5fd('0xf'))(new Redis(config[_0xc5fd('0xe')]));require(_0xc5fd('0x10'))[_0xc5fd('0x11')](socket);function respondWithRpcPromise(_0x4e6d35,_0x4e1e94,_0x3442dd){return new BPromise(function(_0x1edeec,_0x39a95a){return client[_0xc5fd('0x12')](_0x4e6d35,_0x3442dd)[_0xc5fd('0x13')](function(_0x368c80){logger['info'](_0xc5fd('0x14'),_0x4e1e94,'request\x20sent');logger['debug'](_0xc5fd('0x15'),_0x4e1e94,_0xc5fd('0x16'),JSON[_0xc5fd('0x17')](_0x368c80));if(_0x368c80[_0xc5fd('0x18')]){if(_0x368c80[_0xc5fd('0x18')][_0xc5fd('0x19')]===0x1f4){logger[_0xc5fd('0x18')](_0xc5fd('0x14'),_0x4e1e94,_0x368c80['error'][_0xc5fd('0x1a')]);return _0x39a95a(_0x368c80[_0xc5fd('0x18')][_0xc5fd('0x1a')]);}logger[_0xc5fd('0x18')]('MailMessage,\x20%s,\x20%s',_0x4e1e94,_0x368c80['error']['message']);return _0x1edeec(_0x368c80['error']['message']);}else{logger[_0xc5fd('0x1b')](_0xc5fd('0x14'),_0x4e1e94,_0xc5fd('0x16'));_0x1edeec(_0x368c80[_0xc5fd('0x1c')][_0xc5fd('0x1a')]);}})[_0xc5fd('0x1d')](function(_0xfd14c7){logger['error'](_0xc5fd('0x14'),_0x4e1e94,_0xfd14c7);_0x39a95a(_0xfd14c7);});});}exports[_0xc5fd('0x1e')]=function(_0x32eac2){var _0x9c12e4=this;return new Promise(function(_0x3b3093,_0x48024e){return db[_0xc5fd('0x1f')][_0xc5fd('0x20')](_0x32eac2[_0xc5fd('0x21')],{'raw':_0x32eac2[_0xc5fd('0x22')]?_0x32eac2['options']['raw']===undefined?!![]:![]:!![]})[_0xc5fd('0x13')](function(_0x2ab935){logger[_0xc5fd('0x1b')](_0xc5fd('0x1e'),_0x32eac2);logger[_0xc5fd('0x23')](_0xc5fd('0x1e'),_0x32eac2,JSON['stringify'](_0x2ab935));_0x3b3093(_0x2ab935);})[_0xc5fd('0x1d')](function(_0x2701f7){logger[_0xc5fd('0x18')](_0xc5fd('0x1e'),_0x2701f7[_0xc5fd('0x1a')],_0x32eac2);_0x48024e(_0x9c12e4[_0xc5fd('0x18')](0x1f4,_0x2701f7[_0xc5fd('0x1a')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcf83=['mailMessage:','./mailMessage.events','save','remove','update','removeListener','register','length'];(function(_0x2533fc,_0x1cb120){var _0x1f665b=function(_0x139cd8){while(--_0x139cd8){_0x2533fc['push'](_0x2533fc['shift']());}};_0x1f665b(++_0x1cb120);}(_0xcf83,0x101));var _0x3cf8=function(_0x4236f1,_0x67852f){_0x4236f1=_0x4236f1-0x0;var _0x1495bb=_0xcf83[_0x4236f1];return _0x1495bb;};'use strict';var MailMessageEvents=require(_0x3cf8('0x0'));var events=[_0x3cf8('0x1'),_0x3cf8('0x2'),_0x3cf8('0x3')];function createListener(_0x2ba790,_0x562799){return function(_0x3ec0d4){_0x562799['emit'](_0x2ba790,_0x3ec0d4);};}function removeListener(_0xcd28c6,_0x2372c4){return function(){MailMessageEvents[_0x3cf8('0x4')](_0xcd28c6,_0x2372c4);};}exports[_0x3cf8('0x5')]=function(_0x5aa93a){for(var _0x3f89f2=0x0,_0xafa630=events[_0x3cf8('0x6')];_0x3f89f2<_0xafa630;_0x3f89f2++){var _0xd962a1=events[_0x3f89f2];var _0x2af0f7=createListener(_0x3cf8('0x7')+_0xd962a1,_0x5aa93a);MailMessageEvents['on'](_0xd962a1,_0x2af0f7);}};
\ No newline at end of file
+var _0x3e1a=['mailMessage:','save','remove','removeListener','length'];(function(_0x17928f,_0x4ad33f){var _0x500b63=function(_0x127644){while(--_0x127644){_0x17928f['push'](_0x17928f['shift']());}};_0x500b63(++_0x4ad33f);}(_0x3e1a,0x187));var _0xa3e1=function(_0x3d2781,_0x3ff8f0){_0x3d2781=_0x3d2781-0x0;var _0x9a75cf=_0x3e1a[_0x3d2781];return _0x9a75cf;};'use strict';var MailMessageEvents=require('./mailMessage.events');var events=[_0xa3e1('0x0'),_0xa3e1('0x1'),'update'];function createListener(_0x3e43cb,_0x102bdb){return function(_0x570814){_0x102bdb['emit'](_0x3e43cb,_0x570814);};}function removeListener(_0x1d36f9,_0x24ec70){return function(){MailMessageEvents[_0xa3e1('0x2')](_0x1d36f9,_0x24ec70);};}exports['register']=function(_0x1f35fc){for(var _0x524bd5=0x0,_0x38b6e6=events[_0xa3e1('0x3')];_0x524bd5<_0x38b6e6;_0x524bd5++){var _0x48df47=events[_0x524bd5];var _0x53b013=createListener(_0xa3e1('0x4')+_0x48df47,_0x1f35fc);MailMessageEvents['on'](_0x48df47,_0x53b013);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x55a5=['get','isAuthenticated','index','/describe','/:id','/:id/members','/:id/teams','getTeams','/:id/users','getAgents','post','create','addTeams','addAgents','put','delete','removeAgents','exports','multer','util','path','Router','fs-extra','../../components/auth/service','../../config/environment','./mailQueue.controller'];(function(_0x3b380d,_0x4bf247){var _0x54502b=function(_0x35d207){while(--_0x35d207){_0x3b380d['push'](_0x3b380d['shift']());}};_0x54502b(++_0x4bf247);}(_0x55a5,0xae));var _0x555a=function(_0x3dd92b,_0x4d1139){_0x3dd92b=_0x3dd92b-0x0;var _0x5e1d23=_0x55a5[_0x3dd92b];return _0x5e1d23;};'use strict';var multer=require(_0x555a('0x0'));var util=require(_0x555a('0x1'));var path=require(_0x555a('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x555a('0x3')]();var fs_extra=require(_0x555a('0x4'));var auth=require(_0x555a('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0x555a('0x6'));var controller=require(_0x555a('0x7'));router[_0x555a('0x8')]('/',auth[_0x555a('0x9')](),controller[_0x555a('0xa')]);router[_0x555a('0x8')](_0x555a('0xb'),auth[_0x555a('0x9')](),controller['describe']);router[_0x555a('0x8')](_0x555a('0xc'),auth[_0x555a('0x9')](),controller['show']);router[_0x555a('0x8')](_0x555a('0xd'),auth[_0x555a('0x9')](),controller['getMembers']);router[_0x555a('0x8')](_0x555a('0xe'),auth[_0x555a('0x9')](),controller[_0x555a('0xf')]);router[_0x555a('0x8')](_0x555a('0x10'),auth[_0x555a('0x9')](),controller[_0x555a('0x11')]);router[_0x555a('0x12')]('/',auth['isAuthenticated'](),controller[_0x555a('0x13')]);router[_0x555a('0x12')](_0x555a('0xe'),auth[_0x555a('0x9')](),controller[_0x555a('0x14')]);router['post'](_0x555a('0x10'),auth[_0x555a('0x9')](),controller[_0x555a('0x15')]);router[_0x555a('0x16')](_0x555a('0xc'),auth[_0x555a('0x9')](),controller['update']);router[_0x555a('0x17')](_0x555a('0xc'),auth['isAuthenticated'](),controller['destroy']);router[_0x555a('0x17')]('/:id/teams',auth['isAuthenticated'](),controller['removeTeams']);router[_0x555a('0x17')](_0x555a('0x10'),auth[_0x555a('0x9')](),controller[_0x555a('0x18')]);module[_0x555a('0x19')]=router;
\ No newline at end of file
+var _0x81bd=['removeTeams','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../config/environment','./mailQueue.controller','get','index','isAuthenticated','/:id','show','getMembers','/:id/teams','/:id/users','getAgents','post','create','addTeams','addAgents','delete'];(function(_0x48cb1b,_0x596a80){var _0x2c636f=function(_0x3a8ddb){while(--_0x3a8ddb){_0x48cb1b['push'](_0x48cb1b['shift']());}};_0x2c636f(++_0x596a80);}(_0x81bd,0x1c4));var _0xd81b=function(_0x12dd11,_0x52b882){_0x12dd11=_0x12dd11-0x0;var _0x3a502b=_0x81bd[_0x12dd11];return _0x3a502b;};'use strict';var multer=require(_0xd81b('0x0'));var util=require(_0xd81b('0x1'));var path=require(_0xd81b('0x2'));var timeout=require(_0xd81b('0x3'));var express=require(_0xd81b('0x4'));var router=express[_0xd81b('0x5')]();var fs_extra=require(_0xd81b('0x6'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0xd81b('0x7'));var controller=require(_0xd81b('0x8'));router[_0xd81b('0x9')]('/',auth['isAuthenticated'](),controller[_0xd81b('0xa')]);router[_0xd81b('0x9')]('/describe',auth[_0xd81b('0xb')](),controller['describe']);router[_0xd81b('0x9')](_0xd81b('0xc'),auth[_0xd81b('0xb')](),controller[_0xd81b('0xd')]);router[_0xd81b('0x9')]('/:id/members',auth[_0xd81b('0xb')](),controller[_0xd81b('0xe')]);router['get'](_0xd81b('0xf'),auth[_0xd81b('0xb')](),controller['getTeams']);router[_0xd81b('0x9')](_0xd81b('0x10'),auth[_0xd81b('0xb')](),controller[_0xd81b('0x11')]);router[_0xd81b('0x12')]('/',auth[_0xd81b('0xb')](),controller[_0xd81b('0x13')]);router[_0xd81b('0x12')](_0xd81b('0xf'),auth[_0xd81b('0xb')](),controller[_0xd81b('0x14')]);router[_0xd81b('0x12')]('/:id/users',auth[_0xd81b('0xb')](),controller[_0xd81b('0x15')]);router['put']('/:id',auth[_0xd81b('0xb')](),controller['update']);router[_0xd81b('0x16')](_0xd81b('0xc'),auth[_0xd81b('0xb')](),controller['destroy']);router[_0xd81b('0x16')]('/:id/teams',auth[_0xd81b('0xb')](),controller[_0xd81b('0x17')]);router['delete'](_0xd81b('0x10'),auth[_0xd81b('0xb')](),controller['removeAgents']);module[_0xd81b('0x18')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4e0c=['STRING','INTEGER','ENUM','beepall','roundrobin','sequelize'];(function(_0x1a4748,_0x40c46e){var _0x28ca99=function(_0x99232c){while(--_0x99232c){_0x1a4748['push'](_0x1a4748['shift']());}};_0x28ca99(++_0x40c46e);}(_0x4e0c,0x1b5));var _0xc4e0=function(_0x556bb1,_0x34830d){_0x556bb1=_0x556bb1-0x0;var _0x45455f=_0x4e0c[_0x556bb1];return _0x45455f;};'use strict';var Sequelize=require(_0xc4e0('0x0'));module['exports']={'name':{'type':Sequelize['STRING'],'unique':'name','validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize[_0xc4e0('0x1')]},'timeout':{'type':Sequelize[_0xc4e0('0x2')],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0xc4e0('0x3')]('rrmemory',_0xc4e0('0x4'),_0xc4e0('0x5'))}};
\ No newline at end of file
+var _0x9295=['roundrobin','exports','STRING','name','INTEGER','ENUM','rrmemory','beepall'];(function(_0x545eb6,_0x464f70){var _0x205d3e=function(_0x4e2d19){while(--_0x4e2d19){_0x545eb6['push'](_0x545eb6['shift']());}};_0x205d3e(++_0x464f70);}(_0x9295,0x129));var _0x5929=function(_0x3a08c1,_0x389f00){_0x3a08c1=_0x3a08c1-0x0;var _0x592e2e=_0x9295[_0x3a08c1];return _0x592e2e;};'use strict';var Sequelize=require('sequelize');module[_0x5929('0x0')]={'name':{'type':Sequelize[_0x5929('0x1')],'unique':_0x5929('0x2'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize['STRING']},'timeout':{'type':Sequelize[_0x5929('0x3')],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0x5929('0x4')](_0x5929('0x5'),_0x5929('0x6'),_0x5929('0x7'))}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0ec2=['./mailQueue.socket','sendStatus','status','end','json','offset','limit','undefined','count','set','Content-Range','save','update','destroy','then','get','UserProfileResource','error','stack','send','map','MailQueue','rawAttributes','type','key','model','name','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','rows','catch','params','keys','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','find','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','describe','getMembers','findOne','UserMailQueue','order','MailQueueId','findAll','User','findAndCountAll','UserId','agent','createdAt','%s/%s','SIP','mailPause','updatedAt','getTeams','length','addTeams','ids','Team','Agents','online','voicePause','sequelize','transaction','each','emit','userMailQueue:save','removeTeams','select','field','tq.TeamId','from','team_has_mail_queues','join','ut.TeamId\x20=\x20tq.TeamId','MailQueueId\x20=\x20?','clone','ut.UserId\x20=\x20?','push','toString','QueryTypes','SELECT','TeamId','includes','all','union','compact','value','isEmpty','removeAgents','forEach','userMailQueue:remove','addAgents','omit','spread','isArray','getAgents','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','redis','defaults'];(function(_0x1327f6,_0x30921e){var _0x620902=function(_0x31b389){while(--_0x31b389){_0x1327f6['push'](_0x1327f6['shift']());}};_0x620902(++_0x30921e);}(_0x0ec2,0x72));var _0x20ec=function(_0x2f2360,_0x151089){_0x2f2360=_0x2f2360-0x0;var _0x1cc8d3=_0x0ec2[_0x2f2360];return _0x1cc8d3;};'use strict';var emlformat=require(_0x20ec('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x20ec('0x1'));var jsonpatch=require(_0x20ec('0x2'));var rp=require(_0x20ec('0x3'));var moment=require(_0x20ec('0x4'));var BPromise=require(_0x20ec('0x5'));var Mustache=require(_0x20ec('0x6'));var util=require(_0x20ec('0x7'));var path=require(_0x20ec('0x8'));var sox=require(_0x20ec('0x9'));var csv=require(_0x20ec('0xa'));var ejs=require(_0x20ec('0xb'));var fs=require('fs');var fs_extra=require(_0x20ec('0xc'));var _=require(_0x20ec('0xd'));var squel=require(_0x20ec('0xe'));var crypto=require(_0x20ec('0xf'));var jsforce=require('jsforce');var deskjs=require(_0x20ec('0x10'));var toCsv=require('to-csv');var querystring=require(_0x20ec('0x11'));var Papa=require(_0x20ec('0x12'));var Redis=require(_0x20ec('0x13'));var authService=require(_0x20ec('0x14'));var qs=require(_0x20ec('0x15'));var as=require(_0x20ec('0x16'));var hardwareService=require(_0x20ec('0x17'));var logger=require(_0x20ec('0x18'))(_0x20ec('0x19'));var utils=require(_0x20ec('0x1a'));var config=require('../../config/environment');var licenseUtil=require(_0x20ec('0x1b'));var db=require(_0x20ec('0x1c'))['db'];config[_0x20ec('0x1d')]=_[_0x20ec('0x1e')](config[_0x20ec('0x1d')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x20ec('0x1d')]));require(_0x20ec('0x1f'))['register'](socket);function respondWithStatusCode(_0x9ce965,_0x23e08d){_0x23e08d=_0x23e08d||0xcc;return function(_0x3674a5){if(_0x3674a5){return _0x9ce965[_0x20ec('0x20')](_0x23e08d);}return _0x9ce965[_0x20ec('0x21')](_0x23e08d)[_0x20ec('0x22')]();};}function respondWithResult(_0x2cb099,_0x2b12fe){_0x2b12fe=_0x2b12fe||0xc8;return function(_0xdfeca9){if(_0xdfeca9){return _0x2cb099[_0x20ec('0x21')](_0x2b12fe)[_0x20ec('0x23')](_0xdfeca9);}};}function respondWithFilteredResult(_0x2ff339,_0x5ad45f){return function(_0x3c113d){if(_0x3c113d){var _0x3d9227=typeof _0x5ad45f[_0x20ec('0x24')]==='undefined'&&typeof _0x5ad45f[_0x20ec('0x25')]===_0x20ec('0x26');var _0x3c16f4=_0x3c113d[_0x20ec('0x27')];var _0x50ce32=_0x3d9227?0x0:_0x5ad45f[_0x20ec('0x24')];var _0xc5604e=_0x3d9227?_0x3c113d[_0x20ec('0x27')]:_0x5ad45f[_0x20ec('0x24')]+_0x5ad45f[_0x20ec('0x25')];var _0x437bc3;if(_0xc5604e>=_0x3c16f4){_0xc5604e=_0x3c16f4;_0x437bc3=0xc8;}else{_0x437bc3=0xce;}_0x2ff339[_0x20ec('0x21')](_0x437bc3);return _0x2ff339[_0x20ec('0x28')](_0x20ec('0x29'),_0x50ce32+'-'+_0xc5604e+'/'+_0x3c16f4)[_0x20ec('0x23')](_0x3c113d);}return null;};}function patchUpdates(_0x47fb7a){return function(_0x2330be){try{jsonpatch['apply'](_0x2330be,_0x47fb7a,!![]);}catch(_0xbbff4c){return BPromise['reject'](_0xbbff4c);}return _0x2330be[_0x20ec('0x2a')]();};}function saveUpdates(_0x819c1e,_0x2b140d){return function(_0x593c74){if(_0x593c74){return _0x593c74[_0x20ec('0x2b')](_0x819c1e)['then'](function(_0x3c0ac2){return _0x3c0ac2;});}return null;};}function removeEntity(_0x350345,_0x425cf4){return function(_0x2bebf2){if(_0x2bebf2){return _0x2bebf2[_0x20ec('0x2c')]()[_0x20ec('0x2d')](function(){var _0x2a97bd=_0x2bebf2[_0x20ec('0x2e')]({'plain':!![]});var _0xa1587e='MailQueues';return db[_0x20ec('0x2f')]['destroy']({'where':{'type':_0xa1587e,'resourceId':_0x2a97bd['id']}})[_0x20ec('0x2d')](function(){return _0x2bebf2;});})['then'](function(){_0x350345[_0x20ec('0x21')](0xcc)['end']();});}};}function handleEntityNotFound(_0x23c31c,_0x2c6558){return function(_0x1a455f){if(!_0x1a455f){_0x23c31c[_0x20ec('0x20')](0x194);}return _0x1a455f;};}function handleError(_0x165575,_0x1adcd1){_0x1adcd1=_0x1adcd1||0x1f4;return function(_0x1285e0){logger[_0x20ec('0x30')](_0x1285e0[_0x20ec('0x31')]);if(_0x1285e0['name']){delete _0x1285e0['name'];}_0x165575[_0x20ec('0x21')](_0x1adcd1)[_0x20ec('0x32')](_0x1285e0);};}exports['index']=function(_0x2373af,_0x5db4e0){var _0x2b8ff8={},_0x36bfec={},_0x4f8424={'count':0x0,'rows':[]};var _0x255a7a=_[_0x20ec('0x33')](db[_0x20ec('0x34')][_0x20ec('0x35')],function(_0x11477a){return{'name':_0x11477a['fieldName'],'type':_0x11477a[_0x20ec('0x36')][_0x20ec('0x37')]};});_0x36bfec[_0x20ec('0x38')]=_[_0x20ec('0x33')](_0x255a7a,_0x20ec('0x39'));_0x36bfec[_0x20ec('0x3a')]=_['keys'](_0x2373af[_0x20ec('0x3a')]);_0x36bfec[_0x20ec('0x3b')]=_[_0x20ec('0x3c')](_0x36bfec['model'],_0x36bfec[_0x20ec('0x3a')]);_0x2b8ff8[_0x20ec('0x3d')]=_['intersection'](_0x36bfec[_0x20ec('0x38')],qs[_0x20ec('0x3e')](_0x2373af[_0x20ec('0x3a')][_0x20ec('0x3e')]));_0x2b8ff8[_0x20ec('0x3d')]=_0x2b8ff8[_0x20ec('0x3d')]['length']?_0x2b8ff8[_0x20ec('0x3d')]:_0x36bfec[_0x20ec('0x38')];if(!_0x2373af[_0x20ec('0x3a')][_0x20ec('0x3f')](_0x20ec('0x40'))){_0x2b8ff8[_0x20ec('0x25')]=qs[_0x20ec('0x25')](_0x2373af[_0x20ec('0x3a')][_0x20ec('0x25')]);_0x2b8ff8[_0x20ec('0x24')]=qs['offset'](_0x2373af['query']['offset']);}_0x2b8ff8['order']=qs['sort'](_0x2373af[_0x20ec('0x3a')][_0x20ec('0x41')]);_0x2b8ff8[_0x20ec('0x42')]=qs[_0x20ec('0x3b')](_[_0x20ec('0x43')](_0x2373af[_0x20ec('0x3a')],_0x36bfec[_0x20ec('0x3b')]),_0x255a7a);if(_0x2373af[_0x20ec('0x3a')][_0x20ec('0x44')]){_0x2b8ff8[_0x20ec('0x42')]=_[_0x20ec('0x45')](_0x2b8ff8[_0x20ec('0x42')],{'$or':_[_0x20ec('0x33')](_0x255a7a,function(_0x3a52bb){if(_0x3a52bb[_0x20ec('0x36')]!==_0x20ec('0x46')){var _0x2c5b9d={};_0x2c5b9d[_0x3a52bb['name']]={'$like':'%'+_0x2373af[_0x20ec('0x3a')][_0x20ec('0x44')]+'%'};return _0x2c5b9d;}})});}_0x2b8ff8=_['merge']({},_0x2b8ff8,_0x2373af[_0x20ec('0x47')]);var _0x3ca6cd={'where':_0x2b8ff8[_0x20ec('0x42')]};return db[_0x20ec('0x34')][_0x20ec('0x27')](_0x3ca6cd)[_0x20ec('0x2d')](function(_0x19fc04){_0x4f8424[_0x20ec('0x27')]=_0x19fc04;if(_0x2373af['query'][_0x20ec('0x48')]){_0x2b8ff8[_0x20ec('0x49')]=[{'all':!![]}];}return db[_0x20ec('0x34')]['findAll'](_0x2b8ff8);})[_0x20ec('0x2d')](function(_0x5f2427){_0x4f8424[_0x20ec('0x4a')]=_0x5f2427;return _0x4f8424;})[_0x20ec('0x2d')](respondWithFilteredResult(_0x5db4e0,_0x2b8ff8))[_0x20ec('0x4b')](handleError(_0x5db4e0,null));};exports['show']=function(_0x42ca56,_0x5269b1){var _0x2a6217={'raw':!![],'where':{'id':_0x42ca56[_0x20ec('0x4c')]['id']}},_0x42d095={};_0x42d095[_0x20ec('0x38')]=_[_0x20ec('0x4d')](db[_0x20ec('0x34')][_0x20ec('0x35')]);_0x42d095[_0x20ec('0x3a')]=_[_0x20ec('0x4d')](_0x42ca56[_0x20ec('0x3a')]);_0x42d095[_0x20ec('0x3b')]=_['intersection'](_0x42d095[_0x20ec('0x38')],_0x42d095['query']);_0x2a6217[_0x20ec('0x3d')]=_[_0x20ec('0x3c')](_0x42d095[_0x20ec('0x38')],qs[_0x20ec('0x3e')](_0x42ca56['query']['fields']));_0x2a6217[_0x20ec('0x3d')]=_0x2a6217[_0x20ec('0x3d')]['length']?_0x2a6217[_0x20ec('0x3d')]:_0x42d095[_0x20ec('0x38')];if(_0x42ca56[_0x20ec('0x3a')][_0x20ec('0x48')]){_0x2a6217['include']=[{'all':!![]}];}_0x2a6217=_[_0x20ec('0x45')]({},_0x2a6217,_0x42ca56['options']);return db[_0x20ec('0x34')]['find'](_0x2a6217)[_0x20ec('0x2d')](handleEntityNotFound(_0x5269b1,null))[_0x20ec('0x2d')](respondWithResult(_0x5269b1,null))[_0x20ec('0x4b')](handleError(_0x5269b1,null));};exports[_0x20ec('0x4e')]=function(_0x27bf85,_0xec113){return db['MailQueue'][_0x20ec('0x4e')](_0x27bf85['body'],{})[_0x20ec('0x2d')](function(_0x2ef1dc){var _0x232919=_0x27bf85[_0x20ec('0x4f')][_0x20ec('0x2e')]({'plain':!![]});if(!_0x232919)throw new Error(_0x20ec('0x50'));if(_0x232919['role']===_0x20ec('0x4f')){var _0x3709cc=_0x2ef1dc[_0x20ec('0x2e')]({'plain':!![]});var _0x50b2c9='MailQueues';return db[_0x20ec('0x51')][_0x20ec('0x52')]({'where':{'name':_0x50b2c9,'userProfileId':_0x232919['userProfileId']},'raw':!![]})[_0x20ec('0x2d')](function(_0x300968){if(_0x300968&&_0x300968[_0x20ec('0x53')]===0x0){return db[_0x20ec('0x2f')][_0x20ec('0x4e')]({'name':_0x3709cc[_0x20ec('0x39')],'resourceId':_0x3709cc['id'],'type':_0x300968[_0x20ec('0x39')],'sectionId':_0x300968['id']},{})[_0x20ec('0x2d')](function(){return _0x2ef1dc;});}else{return _0x2ef1dc;}})[_0x20ec('0x4b')](function(_0xc6ff87){logger[_0x20ec('0x30')](_0x20ec('0x54'),_0xc6ff87);throw _0xc6ff87;});}return _0x2ef1dc;})['then'](respondWithResult(_0xec113,0xc9))[_0x20ec('0x4b')](handleError(_0xec113,null));};exports[_0x20ec('0x2b')]=function(_0x6412b7,_0x2fa74c){if(_0x6412b7[_0x20ec('0x55')]['id']){delete _0x6412b7[_0x20ec('0x55')]['id'];}return db['MailQueue'][_0x20ec('0x52')]({'where':{'id':_0x6412b7['params']['id']}})['then'](handleEntityNotFound(_0x2fa74c,null))[_0x20ec('0x2d')](saveUpdates(_0x6412b7['body'],null))[_0x20ec('0x2d')](respondWithResult(_0x2fa74c,null))['catch'](handleError(_0x2fa74c,null));};exports[_0x20ec('0x2c')]=function(_0x5e2e02,_0x132420){return db[_0x20ec('0x34')][_0x20ec('0x52')]({'where':{'id':_0x5e2e02[_0x20ec('0x4c')]['id']}})[_0x20ec('0x2d')](handleEntityNotFound(_0x132420,null))['then'](removeEntity(_0x132420,null))[_0x20ec('0x4b')](handleError(_0x132420,null));};exports[_0x20ec('0x56')]=function(_0x3c1cca,_0x3d2888){return db[_0x20ec('0x34')][_0x20ec('0x56')]()[_0x20ec('0x2d')](respondWithResult(_0x3d2888,null))[_0x20ec('0x4b')](handleError(_0x3d2888,null));};exports[_0x20ec('0x57')]=function(_0x5dd9c2,_0x1e9256,_0x421588){var _0x461ba9={'raw':!![],'where':{}},_0x5b40c7={},_0x2db3c0;return db[_0x20ec('0x34')][_0x20ec('0x58')]({'where':{'id':_0x5dd9c2[_0x20ec('0x4c')]['id']}})[_0x20ec('0x2d')](handleEntityNotFound(_0x1e9256,null))[_0x20ec('0x2d')](function(_0x29bccb){if(_0x29bccb){_0x2db3c0=_0x29bccb[_0x20ec('0x2e')]({'plain':!![]});_0x5b40c7[_0x20ec('0x38')]=_[_0x20ec('0x4d')](db[_0x20ec('0x59')]['rawAttributes']);_0x5b40c7[_0x20ec('0x3a')]=_[_0x20ec('0x4d')](_0x5dd9c2['query']);_0x5b40c7[_0x20ec('0x3b')]=_['intersection'](_0x5b40c7[_0x20ec('0x38')],_0x5b40c7[_0x20ec('0x3a')]);_0x461ba9['attributes']=_['intersection'](_0x5b40c7[_0x20ec('0x38')],qs[_0x20ec('0x3e')](_0x5dd9c2['query'][_0x20ec('0x3e')]));_0x461ba9[_0x20ec('0x3d')]=_0x461ba9[_0x20ec('0x3d')]['length']?_0x461ba9[_0x20ec('0x3d')]:_0x5b40c7['model'];if(!_0x5dd9c2[_0x20ec('0x3a')]['hasOwnProperty'](_0x20ec('0x40'))){_0x461ba9['limit']=qs[_0x20ec('0x25')](_0x5dd9c2['query'][_0x20ec('0x25')]);_0x461ba9[_0x20ec('0x24')]=qs[_0x20ec('0x24')](_0x5dd9c2[_0x20ec('0x3a')][_0x20ec('0x24')]);}_0x461ba9[_0x20ec('0x5a')]=qs[_0x20ec('0x41')](_0x5dd9c2['query'][_0x20ec('0x41')]);_0x461ba9[_0x20ec('0x42')]=qs[_0x20ec('0x3b')](_['pick'](_0x5dd9c2[_0x20ec('0x3a')],_0x5b40c7[_0x20ec('0x3b')]));_0x461ba9[_0x20ec('0x42')][_0x20ec('0x5b')]=_0x29bccb['id'];if(_0x5dd9c2[_0x20ec('0x3a')][_0x20ec('0x44')]){_0x461ba9['where']=_[_0x20ec('0x45')](_0x461ba9[_0x20ec('0x42')],{'$or':_['map'](_0x461ba9['attributes'],function(_0x38d51a){var _0x435adb={};_0x435adb[_0x38d51a]={'$like':'%'+_0x5dd9c2['query']['filter']+'%'};return _0x435adb;})});}_0x461ba9=_['merge']({},_0x461ba9,_0x5dd9c2[_0x20ec('0x47')]);return db[_0x20ec('0x59')][_0x20ec('0x5c')](_0x461ba9);}})[_0x20ec('0x2d')](function(_0x49bf1c){if(_0x49bf1c){return db[_0x20ec('0x5d')][_0x20ec('0x5e')]({'where':{'id':_[_0x20ec('0x33')](_0x49bf1c,_0x20ec('0x5f')),'role':_0x20ec('0x60')},'attributes':['id',_0x20ec('0x39'),'mailPause','updatedAt',_0x20ec('0x61')]});}})[_0x20ec('0x2d')](function(_0x17d8e2){if(_0x17d8e2){return{'count':_0x17d8e2['count'],'rows':_['map'](_0x17d8e2['rows'],function(_0x1fcef5){return{'membername':_0x1fcef5[_0x20ec('0x39')],'UserId':_0x1fcef5['id'],'queue_name':_0x2db3c0[_0x20ec('0x39')],'MailQueueId':_0x2db3c0['id'],'interface':util['format'](_0x20ec('0x62'),_0x20ec('0x63'),_0x1fcef5[_0x20ec('0x39')]),'penalty':0x0,'paused':_0x1fcef5[_0x20ec('0x64')],'createdAt':_0x1fcef5[_0x20ec('0x61')],'updatedAt':_0x1fcef5[_0x20ec('0x65')]};})};}else{return{'count':0x0,'rows':[]};}})[_0x20ec('0x2d')](respondWithFilteredResult(_0x1e9256,_0x461ba9))[_0x20ec('0x4b')](handleError(_0x1e9256,null));};exports[_0x20ec('0x66')]=function(_0x5f3286,_0x54a85f,_0x427edc){var _0x4ae1ec={};var _0x480454={};var _0x532c49;var _0x10c252;return db[_0x20ec('0x34')][_0x20ec('0x58')]({'where':{'id':_0x5f3286[_0x20ec('0x4c')]['id']}})['then'](handleEntityNotFound(_0x54a85f,null))[_0x20ec('0x2d')](function(_0x490d02){if(_0x490d02){_0x532c49=_0x490d02;_0x480454[_0x20ec('0x38')]=_['keys'](db['Team'][_0x20ec('0x35')]);_0x480454[_0x20ec('0x3a')]=_[_0x20ec('0x4d')](_0x5f3286[_0x20ec('0x3a')]);_0x480454[_0x20ec('0x3b')]=_['intersection'](_0x480454[_0x20ec('0x38')],_0x480454['query']);_0x4ae1ec['attributes']=_['intersection'](_0x480454[_0x20ec('0x38')],qs[_0x20ec('0x3e')](_0x5f3286[_0x20ec('0x3a')][_0x20ec('0x3e')]));_0x4ae1ec[_0x20ec('0x3d')]=_0x4ae1ec['attributes']['length']?_0x4ae1ec['attributes']:_0x480454[_0x20ec('0x38')];_0x4ae1ec[_0x20ec('0x5a')]=qs[_0x20ec('0x41')](_0x5f3286[_0x20ec('0x3a')][_0x20ec('0x41')]);_0x4ae1ec['where']=qs[_0x20ec('0x3b')](_[_0x20ec('0x43')](_0x5f3286[_0x20ec('0x3a')],_0x480454[_0x20ec('0x3b')]));if(_0x5f3286[_0x20ec('0x3a')][_0x20ec('0x44')]){_0x4ae1ec[_0x20ec('0x42')]=_[_0x20ec('0x45')](_0x4ae1ec['where'],{'$or':_[_0x20ec('0x33')](_0x4ae1ec[_0x20ec('0x3d')],function(_0x202c87){var _0x42daec={};_0x42daec[_0x202c87]={'$like':'%'+_0x5f3286['query'][_0x20ec('0x44')]+'%'};return _0x42daec;})});}_0x4ae1ec=_[_0x20ec('0x45')]({},_0x4ae1ec,_0x5f3286[_0x20ec('0x47')]);return _0x532c49[_0x20ec('0x66')](_0x4ae1ec);}})[_0x20ec('0x2d')](function(_0x284069){if(_0x284069){_0x10c252=_0x284069[_0x20ec('0x67')];if(!_0x5f3286[_0x20ec('0x3a')][_0x20ec('0x3f')]('nolimit')){_0x4ae1ec[_0x20ec('0x25')]=qs['limit'](_0x5f3286[_0x20ec('0x3a')]['limit']);_0x4ae1ec['offset']=qs['offset'](_0x5f3286[_0x20ec('0x3a')]['offset']);}return _0x532c49['getTeams'](_0x4ae1ec);}})[_0x20ec('0x2d')](function(_0x5b8ed0){if(_0x5b8ed0){return _0x5b8ed0?{'count':_0x10c252,'rows':_0x5b8ed0}:null;}})['then'](respondWithResult(_0x54a85f,null))[_0x20ec('0x4b')](handleError(_0x54a85f,null));};exports[_0x20ec('0x68')]=function(_0x36cad5,_0x40d610,_0x388396){var _0x5f0415=_0x36cad5[_0x20ec('0x55')][_0x20ec('0x69')];return db[_0x20ec('0x6a')]['findAll']({'where':{'id':_0x5f0415},'attributes':['id'],'include':[{'model':db['User'],'as':_0x20ec('0x6b'),'attributes':['id',_0x20ec('0x39'),_0x20ec('0x6c'),_0x20ec('0x6d'),'interface'],'raw':!![]}]})[_0x20ec('0x2d')](function(_0x462272){if(_0x462272){var _0x3d4a89=_['flatMap'](_0x462272,function(_0x1c5ee1){var _0x56fe04=_0x1c5ee1['get']({'plain':!![]});return _0x56fe04[_0x20ec('0x6b')];});return db[_0x20ec('0x34')][_0x20ec('0x52')]({'where':{'id':_0x36cad5[_0x20ec('0x4c')]['id']}})[_0x20ec('0x2d')](function(_0x45dfdc){return db[_0x20ec('0x6e')][_0x20ec('0x6f')](function(_0x1b3271){return _0x45dfdc[_0x20ec('0x68')](_0x5f0415,{'transaction':_0x1b3271})[_0x20ec('0x2d')](function(){return BPromise[_0x20ec('0x70')](_0x3d4a89,function(_0x41d4d9){return db[_0x20ec('0x59')]['findOrCreate']({'where':{'UserId':_0x41d4d9['id'],'MailQueueId':_0x36cad5[_0x20ec('0x4c')]['id']},'transaction':_0x1b3271});});})[_0x20ec('0x2d')](function(){_0x3d4a89['forEach'](function(_0x2fe9e2){socket[_0x20ec('0x71')](_0x20ec('0x72'),{'UserId':_0x2fe9e2['id'],'MailQueueId':_0x45dfdc['id']});});});});});}})['then'](respondWithStatusCode(_0x40d610,null))[_0x20ec('0x4b')](handleError(_0x40d610,null));};exports[_0x20ec('0x73')]=function(_0x48fcea,_0x11e00c,_0x17fec8){return db[_0x20ec('0x6a')][_0x20ec('0x5c')]({'where':{'id':_0x48fcea[_0x20ec('0x3a')][_0x20ec('0x69')]},'attributes':['id'],'include':[{'model':db[_0x20ec('0x5d')],'as':_0x20ec('0x6b'),'attributes':['id'],'raw':!![]}]})['then'](handleEntityNotFound(_0x11e00c,null))[_0x20ec('0x2d')](function(_0x3e8ae7){var _0x523bfd=_[_0x20ec('0x33')](_0x3e8ae7,'id');var _0x2b6205=[];var _0x27132d=[];var _0x3c69e1=squel[_0x20ec('0x74')]();_0x3c69e1[_0x20ec('0x75')](_0x20ec('0x76'))[_0x20ec('0x77')](_0x20ec('0x78'),'tq')[_0x20ec('0x79')]('user_has_teams','ut',_0x20ec('0x7a'))['where'](_0x20ec('0x7b'),_0x48fcea[_0x20ec('0x4c')]['id']);for(var _0x474150=0x0;_0x474150<_0x3e8ae7[_0x20ec('0x67')];_0x474150+=0x1){let _0x414424=_0x3e8ae7[_0x474150];for(var _0x5d1f59=0x0;_0x5d1f59<_0x414424[_0x20ec('0x6b')][_0x20ec('0x67')];_0x5d1f59+=0x1){let _0x4bd98c=_0x414424['Agents'][_0x5d1f59];var _0x854bf8=_0x3c69e1[_0x20ec('0x7c')]();_0x854bf8[_0x20ec('0x42')](_0x20ec('0x7d'),_0x4bd98c['id']);_0x27132d[_0x20ec('0x7e')](db[_0x20ec('0x6e')]['query'](_0x854bf8[_0x20ec('0x7f')](),{'type':db[_0x20ec('0x6e')][_0x20ec('0x80')][_0x20ec('0x81')]})[_0x20ec('0x2d')](function(_0xe5828a){if(_0xe5828a[_0x20ec('0x67')]===0x1){return _0x4bd98c['id'];}else{var _0x271064=_['every'](_['map'](_0xe5828a,_0x20ec('0x82')),function(_0x4301fc){return _[_0x20ec('0x83')](_0x523bfd,_0x4301fc);});if(_0x271064){return _0x4bd98c['id'];}}}));}}return BPromise[_0x20ec('0x84')](_0x27132d)[_0x20ec('0x2d')](function(_0x422720){_0x2b6205=_(_0x2b6205)[_0x20ec('0x85')](_0x422720)[_0x20ec('0x86')]()[_0x20ec('0x87')]();return db['MailQueue'][_0x20ec('0x52')]({'where':{'id':_0x48fcea['params']['id']}})[_0x20ec('0x2d')](function(_0x5c557a){return db[_0x20ec('0x6e')]['transaction'](function(_0x48a317){return _0x5c557a[_0x20ec('0x73')](_0x48fcea[_0x20ec('0x3a')][_0x20ec('0x69')],{'transaction':_0x48a317})['then'](function(){if(!_[_0x20ec('0x88')](_0x2b6205)){return _0x5c557a[_0x20ec('0x89')](_0x2b6205,{'transaction':_0x48a317});}})[_0x20ec('0x2d')](function(){_0x2b6205[_0x20ec('0x8a')](function(_0x5d0746){socket[_0x20ec('0x71')](_0x20ec('0x8b'),{'UserId':_0x5d0746,'MailQueueId':_0x5c557a['id']});});});});});});})[_0x20ec('0x2d')](respondWithStatusCode(_0x11e00c,null))[_0x20ec('0x4b')](handleError(_0x11e00c,null));};exports[_0x20ec('0x8c')]=function(_0x18205c,_0x367b01,_0x16e2f1){return db['MailQueue'][_0x20ec('0x52')]({'where':{'id':_0x18205c[_0x20ec('0x4c')]['id']}})['then'](handleEntityNotFound(_0x367b01,null))[_0x20ec('0x2d')](function(_0x375046){if(_0x375046){return _0x375046[_0x20ec('0x8c')](_0x18205c[_0x20ec('0x55')][_0x20ec('0x69')],_[_0x20ec('0x8d')](_0x18205c[_0x20ec('0x55')],[_0x20ec('0x69'),'id'])||{})[_0x20ec('0x8e')](function(_0x3afa03){for(var _0x26e51f=0x0;_0x26e51f<_0x18205c[_0x20ec('0x55')][_0x20ec('0x69')][_0x20ec('0x67')];_0x26e51f+=0x1){socket[_0x20ec('0x71')](_0x20ec('0x72'),{'UserId':Number(_0x18205c['body'][_0x20ec('0x69')][_0x26e51f]),'MailQueueId':Number(_0x18205c[_0x20ec('0x4c')]['id'])});}return _0x3afa03;});}})[_0x20ec('0x2d')](respondWithResult(_0x367b01,null))[_0x20ec('0x4b')](handleError(_0x367b01,null));};exports[_0x20ec('0x89')]=function(_0x511ec3,_0x2cc2c6,_0x31469b){return db['MailQueue'][_0x20ec('0x52')]({'where':{'id':_0x511ec3[_0x20ec('0x4c')]['id']}})[_0x20ec('0x2d')](handleEntityNotFound(_0x2cc2c6,null))['then'](function(_0x5def9d){if(_0x5def9d){return _0x5def9d[_0x20ec('0x89')](_0x511ec3[_0x20ec('0x3a')]['ids'])[_0x20ec('0x2d')](function(){if(_[_0x20ec('0x8f')](_0x511ec3[_0x20ec('0x3a')][_0x20ec('0x69')])){for(var _0x2f3729=0x0;_0x2f3729<_0x511ec3[_0x20ec('0x3a')][_0x20ec('0x69')][_0x20ec('0x67')];_0x2f3729+=0x1){socket['emit'](_0x20ec('0x8b'),{'UserId':Number(_0x511ec3['query']['ids'][_0x2f3729]),'MailQueueId':Number(_0x511ec3[_0x20ec('0x4c')]['id'])});}}else{socket['emit']('userMailQueue:remove',{'UserId':Number(_0x511ec3[_0x20ec('0x3a')][_0x20ec('0x69')]),'MailQueueId':Number(_0x511ec3[_0x20ec('0x4c')]['id'])});}});}})['then'](respondWithStatusCode(_0x2cc2c6,null))[_0x20ec('0x4b')](handleError(_0x2cc2c6,null));};exports['getAgents']=function(_0x4c9eb6,_0x15ae0e,_0xf52de){var _0x1befc6={};var _0x443a16={};var _0x2d7c83;var _0x37c686;return db['MailQueue'][_0x20ec('0x58')]({'where':{'id':_0x4c9eb6[_0x20ec('0x4c')]['id']}})['then'](handleEntityNotFound(_0x15ae0e,null))[_0x20ec('0x2d')](function(_0x5e56f5){if(_0x5e56f5){_0x2d7c83=_0x5e56f5;_0x443a16[_0x20ec('0x38')]=_['keys'](db['User'][_0x20ec('0x35')]);_0x443a16[_0x20ec('0x3a')]=_['keys'](_0x4c9eb6['query']);_0x443a16['filters']=_['intersection'](_0x443a16[_0x20ec('0x38')],_0x443a16['query']);_0x1befc6[_0x20ec('0x3d')]=_[_0x20ec('0x3c')](_0x443a16[_0x20ec('0x38')],qs['fields'](_0x4c9eb6[_0x20ec('0x3a')]['fields']));_0x1befc6[_0x20ec('0x3d')]=_0x1befc6[_0x20ec('0x3d')][_0x20ec('0x67')]?_0x1befc6['attributes']:_0x443a16[_0x20ec('0x38')];_0x1befc6['order']=qs[_0x20ec('0x41')](_0x4c9eb6[_0x20ec('0x3a')][_0x20ec('0x41')]);_0x1befc6[_0x20ec('0x42')]=qs[_0x20ec('0x3b')](_[_0x20ec('0x43')](_0x4c9eb6[_0x20ec('0x3a')],_0x443a16[_0x20ec('0x3b')]));if(_0x4c9eb6['query'][_0x20ec('0x44')]){_0x1befc6[_0x20ec('0x42')]=_['merge'](_0x1befc6[_0x20ec('0x42')],{'$or':_[_0x20ec('0x33')](_0x1befc6[_0x20ec('0x3d')],function(_0x207223){var _0x15691a={};_0x15691a[_0x207223]={'$like':'%'+_0x4c9eb6[_0x20ec('0x3a')][_0x20ec('0x44')]+'%'};return _0x15691a;})});}_0x1befc6=_['merge']({},_0x1befc6,_0x4c9eb6[_0x20ec('0x47')]);return _0x2d7c83[_0x20ec('0x90')](_0x1befc6);}})['then'](function(_0x6e2e7b){if(_0x6e2e7b){_0x37c686=_0x6e2e7b['length'];if(!_0x4c9eb6[_0x20ec('0x3a')][_0x20ec('0x3f')](_0x20ec('0x40'))){_0x1befc6['limit']=qs[_0x20ec('0x25')](_0x4c9eb6[_0x20ec('0x3a')]['limit']);_0x1befc6[_0x20ec('0x24')]=qs[_0x20ec('0x24')](_0x4c9eb6['query']['offset']);}return _0x2d7c83[_0x20ec('0x90')](_0x1befc6);}})['then'](function(_0x380bbe){if(_0x380bbe){return _0x380bbe?{'count':_0x37c686,'rows':_0x380bbe}:null;}})[_0x20ec('0x2d')](respondWithResult(_0x15ae0e,null))[_0x20ec('0x4b')](handleError(_0x15ae0e,null));};
\ No newline at end of file
+var _0x417f=['userMailQueue:save','getAgents','rimraf','request-promise','moment','bluebird','mustache','util','fs-extra','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','socket.io-emitter','./mailQueue.socket','register','sendStatus','end','status','json','offset','undefined','limit','count','set','Content-Range','apply','save','update','destroy','then','get','MailQueues','name','send','index','map','MailQueue','rawAttributes','fieldName','type','keys','query','filters','model','attributes','fields','hasOwnProperty','order','sort','where','filter','merge','options','includeAll','include','findAll','rows','show','params','intersection','length','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','catch','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','describe','getMembers','findOne','UserMailQueue','pick','MailQueueId','User','UserId','mailPause','createdAt','format','%s/%s','SIP','updatedAt','getTeams','Team','nolimit','addTeams','Agents','online','flatMap','transaction','each','forEach','emit','removeTeams','ids','field','tq.TeamId','from','team_has_mail_queues','join','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','MailQueueId\x20=\x20?','clone','push','sequelize','toString','QueryTypes','SELECT','every','TeamId','includes','all','union','value','isEmpty','removeAgents','userMailQueue:remove','addAgents','omit','spread'];(function(_0x3cc81e,_0x3309df){var _0x3d83ba=function(_0x3c61b3){while(--_0x3c61b3){_0x3cc81e['push'](_0x3cc81e['shift']());}};_0x3d83ba(++_0x3309df);}(_0x417f,0x91));var _0xf417=function(_0x3b160c,_0x40f6ba){_0x3b160c=_0x3b160c-0x0;var _0x26c0b2=_0x417f[_0x3b160c];return _0x26c0b2;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xf417('0x0'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0xf417('0x1'));var moment=require(_0xf417('0x2'));var BPromise=require(_0xf417('0x3'));var Mustache=require(_0xf417('0x4'));var util=require(_0xf417('0x5'));var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xf417('0x6'));var _=require('lodash');var squel=require(_0xf417('0x7'));var crypto=require(_0xf417('0x8'));var jsforce=require(_0xf417('0x9'));var deskjs=require(_0xf417('0xa'));var toCsv=require(_0xf417('0xb'));var querystring=require(_0xf417('0xc'));var Papa=require(_0xf417('0xd'));var Redis=require(_0xf417('0xe'));var authService=require(_0xf417('0xf'));var qs=require(_0xf417('0x10'));var as=require(_0xf417('0x11'));var hardwareService=require(_0xf417('0x12'));var logger=require(_0xf417('0x13'))(_0xf417('0x14'));var utils=require(_0xf417('0x15'));var config=require(_0xf417('0x16'));var licenseUtil=require(_0xf417('0x17'));var db=require(_0xf417('0x18'))['db'];config[_0xf417('0x19')]=_[_0xf417('0x1a')](config[_0xf417('0x19')],{'host':'localhost','port':0x18eb});var socket=require(_0xf417('0x1b'))(new Redis(config[_0xf417('0x19')]));require(_0xf417('0x1c'))[_0xf417('0x1d')](socket);function respondWithStatusCode(_0x3f50bd,_0x5cf7a0){_0x5cf7a0=_0x5cf7a0||0xcc;return function(_0x5af13d){if(_0x5af13d){return _0x3f50bd[_0xf417('0x1e')](_0x5cf7a0);}return _0x3f50bd['status'](_0x5cf7a0)[_0xf417('0x1f')]();};}function respondWithResult(_0xe40047,_0x48f319){_0x48f319=_0x48f319||0xc8;return function(_0x378574){if(_0x378574){return _0xe40047[_0xf417('0x20')](_0x48f319)[_0xf417('0x21')](_0x378574);}};}function respondWithFilteredResult(_0x101647,_0x5aea0f){return function(_0x24e5e4){if(_0x24e5e4){var _0x5f07a5=typeof _0x5aea0f[_0xf417('0x22')]===_0xf417('0x23')&&typeof _0x5aea0f[_0xf417('0x24')]==='undefined';var _0x32f111=_0x24e5e4[_0xf417('0x25')];var _0x49ca21=_0x5f07a5?0x0:_0x5aea0f[_0xf417('0x22')];var _0x364c00=_0x5f07a5?_0x24e5e4['count']:_0x5aea0f[_0xf417('0x22')]+_0x5aea0f[_0xf417('0x24')];var _0x310bc0;if(_0x364c00>=_0x32f111){_0x364c00=_0x32f111;_0x310bc0=0xc8;}else{_0x310bc0=0xce;}_0x101647[_0xf417('0x20')](_0x310bc0);return _0x101647[_0xf417('0x26')](_0xf417('0x27'),_0x49ca21+'-'+_0x364c00+'/'+_0x32f111)[_0xf417('0x21')](_0x24e5e4);}return null;};}function patchUpdates(_0x309d6e){return function(_0x4866a9){try{jsonpatch[_0xf417('0x28')](_0x4866a9,_0x309d6e,!![]);}catch(_0x42accf){return BPromise['reject'](_0x42accf);}return _0x4866a9[_0xf417('0x29')]();};}function saveUpdates(_0x498cf2,_0x5f4908){return function(_0x5bed33){if(_0x5bed33){return _0x5bed33[_0xf417('0x2a')](_0x498cf2)['then'](function(_0xc3f9e2){return _0xc3f9e2;});}return null;};}function removeEntity(_0x34bf5d,_0x566c75){return function(_0x39ee04){if(_0x39ee04){return _0x39ee04[_0xf417('0x2b')]()[_0xf417('0x2c')](function(){var _0x5a442c=_0x39ee04[_0xf417('0x2d')]({'plain':!![]});var _0x3be3cd=_0xf417('0x2e');return db['UserProfileResource'][_0xf417('0x2b')]({'where':{'type':_0x3be3cd,'resourceId':_0x5a442c['id']}})['then'](function(){return _0x39ee04;});})[_0xf417('0x2c')](function(){_0x34bf5d['status'](0xcc)[_0xf417('0x1f')]();});}};}function handleEntityNotFound(_0x568cbf,_0x3be96e){return function(_0x53adfe){if(!_0x53adfe){_0x568cbf['sendStatus'](0x194);}return _0x53adfe;};}function handleError(_0x28d849,_0x3ddf72){_0x3ddf72=_0x3ddf72||0x1f4;return function(_0x3c289e){logger['error'](_0x3c289e['stack']);if(_0x3c289e[_0xf417('0x2f')]){delete _0x3c289e[_0xf417('0x2f')];}_0x28d849[_0xf417('0x20')](_0x3ddf72)[_0xf417('0x30')](_0x3c289e);};}exports[_0xf417('0x31')]=function(_0x5ceb66,_0x1a63bd){var _0x35d5bd={},_0x2a34ed={},_0x53621a={'count':0x0,'rows':[]};var _0x50a48c=_[_0xf417('0x32')](db[_0xf417('0x33')][_0xf417('0x34')],function(_0x13ac0e){return{'name':_0x13ac0e[_0xf417('0x35')],'type':_0x13ac0e[_0xf417('0x36')]['key']};});_0x2a34ed['model']=_['map'](_0x50a48c,_0xf417('0x2f'));_0x2a34ed['query']=_[_0xf417('0x37')](_0x5ceb66[_0xf417('0x38')]);_0x2a34ed[_0xf417('0x39')]=_['intersection'](_0x2a34ed[_0xf417('0x3a')],_0x2a34ed[_0xf417('0x38')]);_0x35d5bd[_0xf417('0x3b')]=_['intersection'](_0x2a34ed[_0xf417('0x3a')],qs[_0xf417('0x3c')](_0x5ceb66[_0xf417('0x38')][_0xf417('0x3c')]));_0x35d5bd['attributes']=_0x35d5bd[_0xf417('0x3b')]['length']?_0x35d5bd[_0xf417('0x3b')]:_0x2a34ed['model'];if(!_0x5ceb66[_0xf417('0x38')][_0xf417('0x3d')]('nolimit')){_0x35d5bd[_0xf417('0x24')]=qs['limit'](_0x5ceb66[_0xf417('0x38')][_0xf417('0x24')]);_0x35d5bd[_0xf417('0x22')]=qs[_0xf417('0x22')](_0x5ceb66['query'][_0xf417('0x22')]);}_0x35d5bd[_0xf417('0x3e')]=qs[_0xf417('0x3f')](_0x5ceb66[_0xf417('0x38')]['sort']);_0x35d5bd[_0xf417('0x40')]=qs['filters'](_['pick'](_0x5ceb66[_0xf417('0x38')],_0x2a34ed['filters']),_0x50a48c);if(_0x5ceb66[_0xf417('0x38')][_0xf417('0x41')]){_0x35d5bd[_0xf417('0x40')]=_[_0xf417('0x42')](_0x35d5bd[_0xf417('0x40')],{'$or':_[_0xf417('0x32')](_0x50a48c,function(_0x3a6489){if(_0x3a6489[_0xf417('0x36')]!=='VIRTUAL'){var _0xadf907={};_0xadf907[_0x3a6489['name']]={'$like':'%'+_0x5ceb66[_0xf417('0x38')][_0xf417('0x41')]+'%'};return _0xadf907;}})});}_0x35d5bd=_['merge']({},_0x35d5bd,_0x5ceb66[_0xf417('0x43')]);var _0x29a64f={'where':_0x35d5bd[_0xf417('0x40')]};return db[_0xf417('0x33')][_0xf417('0x25')](_0x29a64f)['then'](function(_0x30903e){_0x53621a['count']=_0x30903e;if(_0x5ceb66[_0xf417('0x38')][_0xf417('0x44')]){_0x35d5bd[_0xf417('0x45')]=[{'all':!![]}];}return db[_0xf417('0x33')][_0xf417('0x46')](_0x35d5bd);})[_0xf417('0x2c')](function(_0x5d7ada){_0x53621a[_0xf417('0x47')]=_0x5d7ada;return _0x53621a;})['then'](respondWithFilteredResult(_0x1a63bd,_0x35d5bd))['catch'](handleError(_0x1a63bd,null));};exports[_0xf417('0x48')]=function(_0x4d44cf,_0x27523f){var _0x18f7bd={'raw':!![],'where':{'id':_0x4d44cf[_0xf417('0x49')]['id']}},_0x1c29cb={};_0x1c29cb['model']=_['keys'](db[_0xf417('0x33')][_0xf417('0x34')]);_0x1c29cb[_0xf417('0x38')]=_['keys'](_0x4d44cf['query']);_0x1c29cb[_0xf417('0x39')]=_[_0xf417('0x4a')](_0x1c29cb[_0xf417('0x3a')],_0x1c29cb['query']);_0x18f7bd['attributes']=_[_0xf417('0x4a')](_0x1c29cb[_0xf417('0x3a')],qs[_0xf417('0x3c')](_0x4d44cf[_0xf417('0x38')][_0xf417('0x3c')]));_0x18f7bd[_0xf417('0x3b')]=_0x18f7bd['attributes'][_0xf417('0x4b')]?_0x18f7bd[_0xf417('0x3b')]:_0x1c29cb[_0xf417('0x3a')];if(_0x4d44cf[_0xf417('0x38')][_0xf417('0x44')]){_0x18f7bd[_0xf417('0x45')]=[{'all':!![]}];}_0x18f7bd=_[_0xf417('0x42')]({},_0x18f7bd,_0x4d44cf[_0xf417('0x43')]);return db[_0xf417('0x33')][_0xf417('0x4c')](_0x18f7bd)[_0xf417('0x2c')](handleEntityNotFound(_0x27523f,null))['then'](respondWithResult(_0x27523f,null))['catch'](handleError(_0x27523f,null));};exports['create']=function(_0x393b64,_0x432483){return db[_0xf417('0x33')][_0xf417('0x4d')](_0x393b64['body'],{})[_0xf417('0x2c')](function(_0x304ab2){var _0x54d72d=_0x393b64[_0xf417('0x4e')][_0xf417('0x2d')]({'plain':!![]});if(!_0x54d72d)throw new Error(_0xf417('0x4f'));if(_0x54d72d[_0xf417('0x50')]===_0xf417('0x4e')){var _0x105c40=_0x304ab2[_0xf417('0x2d')]({'plain':!![]});var _0xf7e9d6=_0xf417('0x2e');return db[_0xf417('0x51')]['find']({'where':{'name':_0xf7e9d6,'userProfileId':_0x54d72d[_0xf417('0x52')]},'raw':!![]})['then'](function(_0x3cbc7b){if(_0x3cbc7b&&_0x3cbc7b[_0xf417('0x53')]===0x0){return db[_0xf417('0x54')][_0xf417('0x4d')]({'name':_0x105c40[_0xf417('0x2f')],'resourceId':_0x105c40['id'],'type':_0x3cbc7b['name'],'sectionId':_0x3cbc7b['id']},{})[_0xf417('0x2c')](function(){return _0x304ab2;});}else{return _0x304ab2;}})[_0xf417('0x55')](function(_0x108a3f){logger['error'](_0xf417('0x56'),_0x108a3f);throw _0x108a3f;});}return _0x304ab2;})[_0xf417('0x2c')](respondWithResult(_0x432483,0xc9))['catch'](handleError(_0x432483,null));};exports['update']=function(_0x359267,_0x7cf6db){if(_0x359267[_0xf417('0x57')]['id']){delete _0x359267[_0xf417('0x57')]['id'];}return db[_0xf417('0x33')]['find']({'where':{'id':_0x359267[_0xf417('0x49')]['id']}})[_0xf417('0x2c')](handleEntityNotFound(_0x7cf6db,null))['then'](saveUpdates(_0x359267[_0xf417('0x57')],null))[_0xf417('0x2c')](respondWithResult(_0x7cf6db,null))[_0xf417('0x55')](handleError(_0x7cf6db,null));};exports[_0xf417('0x2b')]=function(_0x2bb11a,_0x197ed3){return db[_0xf417('0x33')][_0xf417('0x4c')]({'where':{'id':_0x2bb11a[_0xf417('0x49')]['id']}})[_0xf417('0x2c')](handleEntityNotFound(_0x197ed3,null))['then'](removeEntity(_0x197ed3,null))['catch'](handleError(_0x197ed3,null));};exports[_0xf417('0x58')]=function(_0x5f86c7,_0x2a1ffc){return db['MailQueue'][_0xf417('0x58')]()[_0xf417('0x2c')](respondWithResult(_0x2a1ffc,null))[_0xf417('0x55')](handleError(_0x2a1ffc,null));};exports[_0xf417('0x59')]=function(_0x13cb14,_0xc8dc3f,_0x44aadc){var _0x4743c0={'raw':!![],'where':{}},_0x2a5412={},_0x10670a;return db[_0xf417('0x33')][_0xf417('0x5a')]({'where':{'id':_0x13cb14[_0xf417('0x49')]['id']}})[_0xf417('0x2c')](handleEntityNotFound(_0xc8dc3f,null))[_0xf417('0x2c')](function(_0x34b92d){if(_0x34b92d){_0x10670a=_0x34b92d[_0xf417('0x2d')]({'plain':!![]});_0x2a5412[_0xf417('0x3a')]=_['keys'](db[_0xf417('0x5b')]['rawAttributes']);_0x2a5412['query']=_[_0xf417('0x37')](_0x13cb14['query']);_0x2a5412['filters']=_[_0xf417('0x4a')](_0x2a5412['model'],_0x2a5412[_0xf417('0x38')]);_0x4743c0[_0xf417('0x3b')]=_['intersection'](_0x2a5412[_0xf417('0x3a')],qs['fields'](_0x13cb14[_0xf417('0x38')][_0xf417('0x3c')]));_0x4743c0[_0xf417('0x3b')]=_0x4743c0[_0xf417('0x3b')][_0xf417('0x4b')]?_0x4743c0[_0xf417('0x3b')]:_0x2a5412[_0xf417('0x3a')];if(!_0x13cb14['query']['hasOwnProperty']('nolimit')){_0x4743c0[_0xf417('0x24')]=qs[_0xf417('0x24')](_0x13cb14[_0xf417('0x38')][_0xf417('0x24')]);_0x4743c0[_0xf417('0x22')]=qs[_0xf417('0x22')](_0x13cb14['query'][_0xf417('0x22')]);}_0x4743c0[_0xf417('0x3e')]=qs[_0xf417('0x3f')](_0x13cb14[_0xf417('0x38')]['sort']);_0x4743c0['where']=qs[_0xf417('0x39')](_[_0xf417('0x5c')](_0x13cb14['query'],_0x2a5412[_0xf417('0x39')]));_0x4743c0[_0xf417('0x40')][_0xf417('0x5d')]=_0x34b92d['id'];if(_0x13cb14[_0xf417('0x38')][_0xf417('0x41')]){_0x4743c0[_0xf417('0x40')]=_[_0xf417('0x42')](_0x4743c0[_0xf417('0x40')],{'$or':_[_0xf417('0x32')](_0x4743c0[_0xf417('0x3b')],function(_0x114e6b){var _0x225a79={};_0x225a79[_0x114e6b]={'$like':'%'+_0x13cb14[_0xf417('0x38')]['filter']+'%'};return _0x225a79;})});}_0x4743c0=_[_0xf417('0x42')]({},_0x4743c0,_0x13cb14[_0xf417('0x43')]);return db[_0xf417('0x5b')][_0xf417('0x46')](_0x4743c0);}})['then'](function(_0x2d2adf){if(_0x2d2adf){return db[_0xf417('0x5e')]['findAndCountAll']({'where':{'id':_['map'](_0x2d2adf,_0xf417('0x5f')),'role':'agent'},'attributes':['id','name',_0xf417('0x60'),'updatedAt',_0xf417('0x61')]});}})[_0xf417('0x2c')](function(_0x5dceef){if(_0x5dceef){return{'count':_0x5dceef[_0xf417('0x25')],'rows':_['map'](_0x5dceef[_0xf417('0x47')],function(_0x3adc1b){return{'membername':_0x3adc1b[_0xf417('0x2f')],'UserId':_0x3adc1b['id'],'queue_name':_0x10670a['name'],'MailQueueId':_0x10670a['id'],'interface':util[_0xf417('0x62')](_0xf417('0x63'),_0xf417('0x64'),_0x3adc1b[_0xf417('0x2f')]),'penalty':0x0,'paused':_0x3adc1b[_0xf417('0x60')],'createdAt':_0x3adc1b[_0xf417('0x61')],'updatedAt':_0x3adc1b[_0xf417('0x65')]};})};}else{return{'count':0x0,'rows':[]};}})[_0xf417('0x2c')](respondWithFilteredResult(_0xc8dc3f,_0x4743c0))[_0xf417('0x55')](handleError(_0xc8dc3f,null));};exports[_0xf417('0x66')]=function(_0x49d4bf,_0x461bd8,_0x5584c1){var _0x1c98ae={};var _0x345681={};var _0x31e18b;var _0x1c0a8a;return db[_0xf417('0x33')][_0xf417('0x5a')]({'where':{'id':_0x49d4bf[_0xf417('0x49')]['id']}})[_0xf417('0x2c')](handleEntityNotFound(_0x461bd8,null))[_0xf417('0x2c')](function(_0xd5522e){if(_0xd5522e){_0x31e18b=_0xd5522e;_0x345681[_0xf417('0x3a')]=_[_0xf417('0x37')](db[_0xf417('0x67')][_0xf417('0x34')]);_0x345681['query']=_['keys'](_0x49d4bf[_0xf417('0x38')]);_0x345681[_0xf417('0x39')]=_[_0xf417('0x4a')](_0x345681[_0xf417('0x3a')],_0x345681[_0xf417('0x38')]);_0x1c98ae['attributes']=_[_0xf417('0x4a')](_0x345681[_0xf417('0x3a')],qs[_0xf417('0x3c')](_0x49d4bf['query'][_0xf417('0x3c')]));_0x1c98ae[_0xf417('0x3b')]=_0x1c98ae[_0xf417('0x3b')]['length']?_0x1c98ae[_0xf417('0x3b')]:_0x345681[_0xf417('0x3a')];_0x1c98ae['order']=qs[_0xf417('0x3f')](_0x49d4bf[_0xf417('0x38')][_0xf417('0x3f')]);_0x1c98ae['where']=qs[_0xf417('0x39')](_['pick'](_0x49d4bf[_0xf417('0x38')],_0x345681[_0xf417('0x39')]));if(_0x49d4bf[_0xf417('0x38')][_0xf417('0x41')]){_0x1c98ae[_0xf417('0x40')]=_[_0xf417('0x42')](_0x1c98ae[_0xf417('0x40')],{'$or':_[_0xf417('0x32')](_0x1c98ae[_0xf417('0x3b')],function(_0x46e2ea){var _0x1a3faa={};_0x1a3faa[_0x46e2ea]={'$like':'%'+_0x49d4bf['query'][_0xf417('0x41')]+'%'};return _0x1a3faa;})});}_0x1c98ae=_[_0xf417('0x42')]({},_0x1c98ae,_0x49d4bf[_0xf417('0x43')]);return _0x31e18b[_0xf417('0x66')](_0x1c98ae);}})[_0xf417('0x2c')](function(_0x29a939){if(_0x29a939){_0x1c0a8a=_0x29a939[_0xf417('0x4b')];if(!_0x49d4bf[_0xf417('0x38')][_0xf417('0x3d')](_0xf417('0x68'))){_0x1c98ae[_0xf417('0x24')]=qs[_0xf417('0x24')](_0x49d4bf[_0xf417('0x38')][_0xf417('0x24')]);_0x1c98ae[_0xf417('0x22')]=qs[_0xf417('0x22')](_0x49d4bf[_0xf417('0x38')][_0xf417('0x22')]);}return _0x31e18b[_0xf417('0x66')](_0x1c98ae);}})['then'](function(_0x284241){if(_0x284241){return _0x284241?{'count':_0x1c0a8a,'rows':_0x284241}:null;}})[_0xf417('0x2c')](respondWithResult(_0x461bd8,null))['catch'](handleError(_0x461bd8,null));};exports[_0xf417('0x69')]=function(_0x274f1b,_0x13d6ac,_0x1b5283){var _0xf2dc8c=_0x274f1b[_0xf417('0x57')]['ids'];return db[_0xf417('0x67')][_0xf417('0x46')]({'where':{'id':_0xf2dc8c},'attributes':['id'],'include':[{'model':db[_0xf417('0x5e')],'as':_0xf417('0x6a'),'attributes':['id',_0xf417('0x2f'),_0xf417('0x6b'),'voicePause','interface'],'raw':!![]}]})[_0xf417('0x2c')](function(_0x999b16){if(_0x999b16){var _0x3e490e=_[_0xf417('0x6c')](_0x999b16,function(_0x77859e){var _0xf8e0d5=_0x77859e[_0xf417('0x2d')]({'plain':!![]});return _0xf8e0d5[_0xf417('0x6a')];});return db[_0xf417('0x33')][_0xf417('0x4c')]({'where':{'id':_0x274f1b['params']['id']}})[_0xf417('0x2c')](function(_0x2a9300){return db['sequelize'][_0xf417('0x6d')](function(_0x2b22c4){return _0x2a9300[_0xf417('0x69')](_0xf2dc8c,{'transaction':_0x2b22c4})[_0xf417('0x2c')](function(){return BPromise[_0xf417('0x6e')](_0x3e490e,function(_0x58a228){return db[_0xf417('0x5b')]['findOrCreate']({'where':{'UserId':_0x58a228['id'],'MailQueueId':_0x274f1b['params']['id']},'transaction':_0x2b22c4});});})[_0xf417('0x2c')](function(){_0x3e490e[_0xf417('0x6f')](function(_0x5520ab){socket[_0xf417('0x70')]('userMailQueue:save',{'UserId':_0x5520ab['id'],'MailQueueId':_0x2a9300['id']});});});});});}})[_0xf417('0x2c')](respondWithStatusCode(_0x13d6ac,null))['catch'](handleError(_0x13d6ac,null));};exports[_0xf417('0x71')]=function(_0x2c335f,_0x5f227e,_0x19f233){return db[_0xf417('0x67')][_0xf417('0x46')]({'where':{'id':_0x2c335f[_0xf417('0x38')][_0xf417('0x72')]},'attributes':['id'],'include':[{'model':db[_0xf417('0x5e')],'as':_0xf417('0x6a'),'attributes':['id'],'raw':!![]}]})[_0xf417('0x2c')](handleEntityNotFound(_0x5f227e,null))[_0xf417('0x2c')](function(_0x3cb1ea){var _0x301727=_[_0xf417('0x32')](_0x3cb1ea,'id');var _0x300858=[];var _0x3c3a30=[];var _0x396e4c=squel['select']();_0x396e4c[_0xf417('0x73')](_0xf417('0x74'))[_0xf417('0x75')](_0xf417('0x76'),'tq')[_0xf417('0x77')](_0xf417('0x78'),'ut',_0xf417('0x79'))['where'](_0xf417('0x7a'),_0x2c335f[_0xf417('0x49')]['id']);for(var _0x7a2d5e=0x0;_0x7a2d5e<_0x3cb1ea[_0xf417('0x4b')];_0x7a2d5e+=0x1){let _0x850e8d=_0x3cb1ea[_0x7a2d5e];for(var _0x111f6f=0x0;_0x111f6f<_0x850e8d[_0xf417('0x6a')][_0xf417('0x4b')];_0x111f6f+=0x1){let _0x3a4557=_0x850e8d[_0xf417('0x6a')][_0x111f6f];var _0x10ea31=_0x396e4c[_0xf417('0x7b')]();_0x10ea31['where']('ut.UserId\x20=\x20?',_0x3a4557['id']);_0x3c3a30[_0xf417('0x7c')](db[_0xf417('0x7d')]['query'](_0x10ea31[_0xf417('0x7e')](),{'type':db['sequelize'][_0xf417('0x7f')][_0xf417('0x80')]})[_0xf417('0x2c')](function(_0x3744af){if(_0x3744af[_0xf417('0x4b')]===0x1){return _0x3a4557['id'];}else{var _0x41b849=_[_0xf417('0x81')](_[_0xf417('0x32')](_0x3744af,_0xf417('0x82')),function(_0x403587){return _[_0xf417('0x83')](_0x301727,_0x403587);});if(_0x41b849){return _0x3a4557['id'];}}}));}}return BPromise[_0xf417('0x84')](_0x3c3a30)[_0xf417('0x2c')](function(_0x4df83e){_0x300858=_(_0x300858)[_0xf417('0x85')](_0x4df83e)['compact']()[_0xf417('0x86')]();return db[_0xf417('0x33')][_0xf417('0x4c')]({'where':{'id':_0x2c335f['params']['id']}})[_0xf417('0x2c')](function(_0x40cc19){return db['sequelize'][_0xf417('0x6d')](function(_0x4bb601){return _0x40cc19[_0xf417('0x71')](_0x2c335f['query'][_0xf417('0x72')],{'transaction':_0x4bb601})[_0xf417('0x2c')](function(){if(!_[_0xf417('0x87')](_0x300858)){return _0x40cc19[_0xf417('0x88')](_0x300858,{'transaction':_0x4bb601});}})['then'](function(){_0x300858[_0xf417('0x6f')](function(_0x218dfe){socket['emit'](_0xf417('0x89'),{'UserId':_0x218dfe,'MailQueueId':_0x40cc19['id']});});});});});});})[_0xf417('0x2c')](respondWithStatusCode(_0x5f227e,null))['catch'](handleError(_0x5f227e,null));};exports['addAgents']=function(_0x472589,_0x30ba47,_0x35396c){return db[_0xf417('0x33')][_0xf417('0x4c')]({'where':{'id':_0x472589[_0xf417('0x49')]['id']}})[_0xf417('0x2c')](handleEntityNotFound(_0x30ba47,null))[_0xf417('0x2c')](function(_0x20470a){if(_0x20470a){return _0x20470a[_0xf417('0x8a')](_0x472589[_0xf417('0x57')][_0xf417('0x72')],_[_0xf417('0x8b')](_0x472589[_0xf417('0x57')],[_0xf417('0x72'),'id'])||{})[_0xf417('0x8c')](function(_0x3b68b5){for(var _0x384c32=0x0;_0x384c32<_0x472589['body']['ids'][_0xf417('0x4b')];_0x384c32+=0x1){socket[_0xf417('0x70')](_0xf417('0x8d'),{'UserId':Number(_0x472589[_0xf417('0x57')][_0xf417('0x72')][_0x384c32]),'MailQueueId':Number(_0x472589[_0xf417('0x49')]['id'])});}return _0x3b68b5;});}})[_0xf417('0x2c')](respondWithResult(_0x30ba47,null))['catch'](handleError(_0x30ba47,null));};exports[_0xf417('0x88')]=function(_0x3879a8,_0x367946,_0x548078){return db[_0xf417('0x33')][_0xf417('0x4c')]({'where':{'id':_0x3879a8[_0xf417('0x49')]['id']}})[_0xf417('0x2c')](handleEntityNotFound(_0x367946,null))[_0xf417('0x2c')](function(_0x2dbab){if(_0x2dbab){return _0x2dbab['removeAgents'](_0x3879a8[_0xf417('0x38')][_0xf417('0x72')])[_0xf417('0x2c')](function(){if(_['isArray'](_0x3879a8[_0xf417('0x38')][_0xf417('0x72')])){for(var _0x2ea9ec=0x0;_0x2ea9ec<_0x3879a8['query'][_0xf417('0x72')][_0xf417('0x4b')];_0x2ea9ec+=0x1){socket['emit']('userMailQueue:remove',{'UserId':Number(_0x3879a8[_0xf417('0x38')][_0xf417('0x72')][_0x2ea9ec]),'MailQueueId':Number(_0x3879a8[_0xf417('0x49')]['id'])});}}else{socket[_0xf417('0x70')](_0xf417('0x89'),{'UserId':Number(_0x3879a8[_0xf417('0x38')][_0xf417('0x72')]),'MailQueueId':Number(_0x3879a8[_0xf417('0x49')]['id'])});}});}})['then'](respondWithStatusCode(_0x367946,null))[_0xf417('0x55')](handleError(_0x367946,null));};exports[_0xf417('0x8e')]=function(_0x1f147b,_0x31ef40,_0x2f47de){var _0x3bf9d7={};var _0x572ce1={};var _0x17391b;var _0x5f2dfb;return db[_0xf417('0x33')][_0xf417('0x5a')]({'where':{'id':_0x1f147b[_0xf417('0x49')]['id']}})[_0xf417('0x2c')](handleEntityNotFound(_0x31ef40,null))[_0xf417('0x2c')](function(_0x10dda8){if(_0x10dda8){_0x17391b=_0x10dda8;_0x572ce1[_0xf417('0x3a')]=_[_0xf417('0x37')](db[_0xf417('0x5e')][_0xf417('0x34')]);_0x572ce1[_0xf417('0x38')]=_[_0xf417('0x37')](_0x1f147b[_0xf417('0x38')]);_0x572ce1[_0xf417('0x39')]=_[_0xf417('0x4a')](_0x572ce1['model'],_0x572ce1['query']);_0x3bf9d7[_0xf417('0x3b')]=_[_0xf417('0x4a')](_0x572ce1[_0xf417('0x3a')],qs[_0xf417('0x3c')](_0x1f147b[_0xf417('0x38')]['fields']));_0x3bf9d7['attributes']=_0x3bf9d7[_0xf417('0x3b')]['length']?_0x3bf9d7[_0xf417('0x3b')]:_0x572ce1['model'];_0x3bf9d7['order']=qs[_0xf417('0x3f')](_0x1f147b[_0xf417('0x38')][_0xf417('0x3f')]);_0x3bf9d7[_0xf417('0x40')]=qs[_0xf417('0x39')](_[_0xf417('0x5c')](_0x1f147b['query'],_0x572ce1[_0xf417('0x39')]));if(_0x1f147b[_0xf417('0x38')][_0xf417('0x41')]){_0x3bf9d7[_0xf417('0x40')]=_[_0xf417('0x42')](_0x3bf9d7[_0xf417('0x40')],{'$or':_['map'](_0x3bf9d7[_0xf417('0x3b')],function(_0x2d19f2){var _0x4aff6d={};_0x4aff6d[_0x2d19f2]={'$like':'%'+_0x1f147b[_0xf417('0x38')][_0xf417('0x41')]+'%'};return _0x4aff6d;})});}_0x3bf9d7=_[_0xf417('0x42')]({},_0x3bf9d7,_0x1f147b[_0xf417('0x43')]);return _0x17391b['getAgents'](_0x3bf9d7);}})['then'](function(_0x2cbbb9){if(_0x2cbbb9){_0x5f2dfb=_0x2cbbb9[_0xf417('0x4b')];if(!_0x1f147b[_0xf417('0x38')][_0xf417('0x3d')](_0xf417('0x68'))){_0x3bf9d7['limit']=qs[_0xf417('0x24')](_0x1f147b[_0xf417('0x38')]['limit']);_0x3bf9d7[_0xf417('0x22')]=qs['offset'](_0x1f147b[_0xf417('0x38')][_0xf417('0x22')]);}return _0x17391b[_0xf417('0x8e')](_0x3bf9d7);}})[_0xf417('0x2c')](function(_0x13fe05){if(_0x13fe05){return _0x13fe05?{'count':_0x5f2dfb,'rows':_0x13fe05}:null;}})['then'](respondWithResult(_0x31ef40,null))[_0xf417('0x55')](handleError(_0x31ef40,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4e8e=['events','../../mysqldb','MailQueue','setMaxListeners','save','update','remove','emit','hasOwnProperty','hook'];(function(_0xd20708,_0x2766ea){var _0x472619=function(_0x1a95ac){while(--_0x1a95ac){_0xd20708['push'](_0xd20708['shift']());}};_0x472619(++_0x2766ea);}(_0x4e8e,0x190));var _0xe4e8=function(_0x54af90,_0x17ec71){_0x54af90=_0x54af90-0x0;var _0x37da03=_0x4e8e[_0x54af90];return _0x37da03;};'use strict';var EventEmitter=require(_0xe4e8('0x0'));var MailQueue=require(_0xe4e8('0x1'))['db'][_0xe4e8('0x2')];var MailQueueEvents=new EventEmitter();MailQueueEvents[_0xe4e8('0x3')](0x0);var events={'afterCreate':_0xe4e8('0x4'),'afterUpdate':_0xe4e8('0x5'),'afterDestroy':_0xe4e8('0x6')};function emitEvent(_0x91ea90){return function(_0x3839cb,_0x24d32c,_0x5f583e){MailQueueEvents['emit'](_0x91ea90+':'+_0x3839cb['id'],_0x3839cb);MailQueueEvents[_0xe4e8('0x7')](_0x91ea90,_0x3839cb);_0x5f583e(null);};}for(var e in events){if(events[_0xe4e8('0x8')](e)){var event=events[e];MailQueue[_0xe4e8('0x9')](e,emitEvent(event));}}module['exports']=MailQueueEvents;
\ No newline at end of file
+var _0xaee4=['exports','events','../../mysqldb','MailQueue','setMaxListeners','emit','hasOwnProperty','hook'];(function(_0x17270c,_0x3d2b47){var _0x2766a8=function(_0x2d04b4){while(--_0x2d04b4){_0x17270c['push'](_0x17270c['shift']());}};_0x2766a8(++_0x3d2b47);}(_0xaee4,0x159));var _0x4aee=function(_0x40425e,_0x4867e9){_0x40425e=_0x40425e-0x0;var _0x86c7b8=_0xaee4[_0x40425e];return _0x86c7b8;};'use strict';var EventEmitter=require(_0x4aee('0x0'));var MailQueue=require(_0x4aee('0x1'))['db'][_0x4aee('0x2')];var MailQueueEvents=new EventEmitter();MailQueueEvents[_0x4aee('0x3')](0x0);var events={'afterCreate':'save','afterUpdate':'update','afterDestroy':'remove'};function emitEvent(_0x5e1807){return function(_0x1e5e45,_0x4dfb7f,_0x5801ff){MailQueueEvents[_0x4aee('0x4')](_0x5e1807+':'+_0x1e5e45['id'],_0x1e5e45);MailQueueEvents[_0x4aee('0x4')](_0x5e1807,_0x1e5e45);_0x5801ff(null);};}for(var e in events){if(events[_0x4aee('0x5')](e)){var event=events[e];MailQueue[_0x4aee('0x6')](e,emitEvent(event));}}module[_0x4aee('0x7')]=MailQueueEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf806=['moment','request-promise','rimraf','define','MailQueue','mail_queues','lodash','util','../../config/logger','api'];(function(_0xf313bc,_0x534061){var _0x3f48c1=function(_0x3c7087){while(--_0x3c7087){_0xf313bc['push'](_0xf313bc['shift']());}};_0x3f48c1(++_0x534061);}(_0xf806,0x178));var _0x6f80=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xf806[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0x6f80('0x0'));var util=require(_0x6f80('0x1'));var logger=require(_0x6f80('0x2'))(_0x6f80('0x3'));var moment=require(_0x6f80('0x4'));var BPromise=require('bluebird');var rp=require(_0x6f80('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0x6f80('0x6'));var config=require('../../config/environment');var attributes=require('./mailQueue.attributes');module['exports']=function(_0x3d91de,_0x4419d4){return _0x3d91de[_0x6f80('0x7')](_0x6f80('0x8'),attributes,{'tableName':_0x6f80('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xf1cc=['api','bluebird','request-promise','path','rimraf','./mailQueue.attributes','define','MailQueue','mail_queues','lodash','util'];(function(_0x590b71,_0xf2162b){var _0x4bbc59=function(_0x34fe71){while(--_0x34fe71){_0x590b71['push'](_0x590b71['shift']());}};_0x4bbc59(++_0xf2162b);}(_0xf1cc,0xda));var _0xcf1c=function(_0x2d8482,_0x3a2ca7){_0x2d8482=_0x2d8482-0x0;var _0x8fc666=_0xf1cc[_0x2d8482];return _0x8fc666;};'use strict';var _=require(_0xcf1c('0x0'));var util=require(_0xcf1c('0x1'));var logger=require('../../config/logger')(_0xcf1c('0x2'));var moment=require('moment');var BPromise=require(_0xcf1c('0x3'));var rp=require(_0xcf1c('0x4'));var fs=require('fs');var path=require(_0xcf1c('0x5'));var rimraf=require(_0xcf1c('0x6'));var config=require('../../config/environment');var attributes=require(_0xcf1c('0x7'));module['exports']=function(_0x4f7ff9,_0x164b85){return _0x4f7ff9[_0xcf1c('0x8')](_0xcf1c('0x9'),attributes,{'tableName':_0xcf1c('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3dad=['../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','defaults','socket.io-emitter','./mailQueue.socket','request','then','MailQueue,\x20%s,\x20%s','request\x20sent','debug','stringify','error','message','info','catch','GetMailQueue','MailQueue','findAll','options','raw','where','attributes','limit','include','map','model','ShowMailQueue','find','lodash','util','bluebird','ioredis'];(function(_0x304fcf,_0x646b3f){var _0x495560=function(_0x4f01b4){while(--_0x4f01b4){_0x304fcf['push'](_0x304fcf['shift']());}};_0x495560(++_0x646b3f);}(_0x3dad,0x106));var _0xd3da=function(_0x432682,_0x253044){_0x432682=_0x432682-0x0;var _0x463d05=_0x3dad[_0x432682];return _0x463d05;};'use strict';var _=require(_0xd3da('0x0'));var util=require(_0xd3da('0x1'));var moment=require('moment');var BPromise=require(_0xd3da('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xd3da('0x3'));var db=require(_0xd3da('0x4'))['db'];var utils=require(_0xd3da('0x5'));var logger=require(_0xd3da('0x6'))(_0xd3da('0x7'));var config=require(_0xd3da('0x8'));var jayson=require(_0xd3da('0x9'));var client=jayson[_0xd3da('0xa')][_0xd3da('0xb')]({'port':0x232a});config['redis']=_[_0xd3da('0xc')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0xd3da('0xd'))(new Redis(config['redis']));require(_0xd3da('0xe'))['register'](socket);function respondWithRpcPromise(_0x2eec05,_0x564213,_0x3cd96b){return new BPromise(function(_0x403102,_0x105fb9){return client[_0xd3da('0xf')](_0x2eec05,_0x3cd96b)[_0xd3da('0x10')](function(_0x42a42a){logger['info'](_0xd3da('0x11'),_0x564213,_0xd3da('0x12'));logger[_0xd3da('0x13')]('MailQueue,\x20%s,\x20%s,\x20%s',_0x564213,_0xd3da('0x12'),JSON[_0xd3da('0x14')](_0x42a42a));if(_0x42a42a['error']){if(_0x42a42a[_0xd3da('0x15')]['code']===0x1f4){logger[_0xd3da('0x15')](_0xd3da('0x11'),_0x564213,_0x42a42a[_0xd3da('0x15')]['message']);return _0x105fb9(_0x42a42a[_0xd3da('0x15')][_0xd3da('0x16')]);}logger[_0xd3da('0x15')]('MailQueue,\x20%s,\x20%s',_0x564213,_0x42a42a[_0xd3da('0x15')][_0xd3da('0x16')]);return _0x403102(_0x42a42a[_0xd3da('0x15')][_0xd3da('0x16')]);}else{logger[_0xd3da('0x17')]('MailQueue,\x20%s,\x20%s',_0x564213,_0xd3da('0x12'));_0x403102(_0x42a42a['result'][_0xd3da('0x16')]);}})[_0xd3da('0x18')](function(_0x198e6a){logger['error'](_0xd3da('0x11'),_0x564213,_0x198e6a);_0x105fb9(_0x198e6a);});});}exports[_0xd3da('0x19')]=function(_0x49b5ab){var _0x21f2d5=this;return new Promise(function(_0x10de28,_0xbd52d){return db[_0xd3da('0x1a')][_0xd3da('0x1b')]({'raw':_0x49b5ab[_0xd3da('0x1c')]?_0x49b5ab[_0xd3da('0x1c')][_0xd3da('0x1d')]===undefined?!![]:![]:!![],'where':_0x49b5ab['options']?_0x49b5ab[_0xd3da('0x1c')][_0xd3da('0x1e')]||null:null,'attributes':_0x49b5ab[_0xd3da('0x1c')]?_0x49b5ab[_0xd3da('0x1c')][_0xd3da('0x1f')]||null:null,'limit':_0x49b5ab['options']?_0x49b5ab[_0xd3da('0x1c')][_0xd3da('0x20')]||null:null,'include':_0x49b5ab[_0xd3da('0x1c')]?_0x49b5ab[_0xd3da('0x1c')][_0xd3da('0x21')]?_[_0xd3da('0x22')](_0x49b5ab[_0xd3da('0x1c')]['include'],function(_0x7a703a){return{'model':db[_0x7a703a['model']],'as':_0x7a703a['as'],'attributes':_0x7a703a[_0xd3da('0x1f')],'include':_0x7a703a[_0xd3da('0x21')]?_[_0xd3da('0x22')](_0x7a703a[_0xd3da('0x21')],function(_0x49ec2d){return{'model':db[_0x49ec2d[_0xd3da('0x23')]],'as':_0x49ec2d['as'],'attributes':_0x49ec2d[_0xd3da('0x1f')],'include':_0x49ec2d[_0xd3da('0x21')]?_[_0xd3da('0x22')](_0x49ec2d[_0xd3da('0x21')],function(_0x7ecfdd){return{'model':db[_0x7ecfdd['model']],'as':_0x7ecfdd['as'],'attributes':_0x7ecfdd[_0xd3da('0x1f')]};}):[]};}):[]};}):[]:[]})[_0xd3da('0x10')](function(_0x527daf){logger[_0xd3da('0x17')](_0xd3da('0x19'),_0x49b5ab);logger[_0xd3da('0x13')](_0xd3da('0x19'),_0x49b5ab,JSON[_0xd3da('0x14')](_0x527daf));_0x10de28(_0x527daf);})[_0xd3da('0x18')](function(_0x297b01){logger[_0xd3da('0x15')](_0xd3da('0x19'),_0x297b01['message'],_0x49b5ab);_0xbd52d(_0x21f2d5[_0xd3da('0x15')](0x1f4,_0x297b01[_0xd3da('0x16')]));});});};exports[_0xd3da('0x24')]=function(_0x23d856){var _0x52ffbc=this;return new Promise(function(_0x37c1a1,_0x248677){return db[_0xd3da('0x1a')][_0xd3da('0x25')]({'raw':_0x23d856[_0xd3da('0x1c')]?_0x23d856[_0xd3da('0x1c')][_0xd3da('0x1d')]===undefined?!![]:![]:!![],'where':_0x23d856[_0xd3da('0x1c')]?_0x23d856[_0xd3da('0x1c')][_0xd3da('0x1e')]||null:null,'attributes':_0x23d856[_0xd3da('0x1c')]?_0x23d856[_0xd3da('0x1c')]['attributes']||null:null,'include':_0x23d856[_0xd3da('0x1c')]?_0x23d856[_0xd3da('0x1c')]['include']?_[_0xd3da('0x22')](_0x23d856[_0xd3da('0x1c')][_0xd3da('0x21')],function(_0x2198a2){return{'model':db[_0x2198a2[_0xd3da('0x23')]],'as':_0x2198a2['as'],'attributes':_0x2198a2['attributes'],'include':_0x2198a2['include']?_[_0xd3da('0x22')](_0x2198a2[_0xd3da('0x21')],function(_0x2eccac){return{'model':db[_0x2eccac[_0xd3da('0x23')]],'as':_0x2eccac['as'],'attributes':_0x2eccac[_0xd3da('0x1f')],'include':_0x2eccac['include']?_[_0xd3da('0x22')](_0x2eccac['include'],function(_0x1bf9d9){return{'model':db[_0x1bf9d9[_0xd3da('0x23')]],'as':_0x1bf9d9['as'],'attributes':_0x1bf9d9[_0xd3da('0x1f')]};}):[]};}):[]};}):[]:[]})[_0xd3da('0x10')](function(_0x5e8ab3){logger[_0xd3da('0x17')](_0xd3da('0x24'),_0x23d856);logger[_0xd3da('0x13')](_0xd3da('0x24'),_0x23d856,JSON[_0xd3da('0x14')](_0x5e8ab3));_0x37c1a1(_0x5e8ab3);})['catch'](function(_0x24560f){logger[_0xd3da('0x15')](_0xd3da('0x24'),_0x24560f['message'],_0x23d856);_0x248677(_0x52ffbc[_0xd3da('0x15')](0x1f4,_0x24560f['message']));});});};
\ No newline at end of file
+var _0xe073=['socket.io-emitter','register','request','info','MailQueue,\x20%s,\x20%s','request\x20sent','debug','MailQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','GetMailQueue','MailQueue','findAll','raw','options','where','attributes','limit','include','map','model','ShowMailQueue','find','then','lodash','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults'];(function(_0x5f36cd,_0x37d4c9){var _0x49832a=function(_0xa82985){while(--_0xa82985){_0x5f36cd['push'](_0x5f36cd['shift']());}};_0x49832a(++_0x37d4c9);}(_0xe073,0x1b6));var _0x3e07=function(_0x23a642,_0x266032){_0x23a642=_0x23a642-0x0;var _0x2c63be=_0xe073[_0x23a642];return _0x2c63be;};'use strict';var _=require(_0x3e07('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0x3e07('0x1'));var rs=require(_0x3e07('0x2'));var fs=require('fs');var Redis=require(_0x3e07('0x3'));var db=require(_0x3e07('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0x3e07('0x5'))(_0x3e07('0x6'));var config=require(_0x3e07('0x7'));var jayson=require(_0x3e07('0x8'));var client=jayson[_0x3e07('0x9')][_0x3e07('0xa')]({'port':0x232a});config[_0x3e07('0xb')]=_[_0x3e07('0xc')](config[_0x3e07('0xb')],{'host':'localhost','port':0x18eb});var socket=require(_0x3e07('0xd'))(new Redis(config[_0x3e07('0xb')]));require('./mailQueue.socket')[_0x3e07('0xe')](socket);function respondWithRpcPromise(_0x225827,_0x4b0c44,_0x23dc74){return new BPromise(function(_0x115274,_0x5ea01b){return client[_0x3e07('0xf')](_0x225827,_0x23dc74)['then'](function(_0x22545){logger[_0x3e07('0x10')](_0x3e07('0x11'),_0x4b0c44,_0x3e07('0x12'));logger[_0x3e07('0x13')](_0x3e07('0x14'),_0x4b0c44,_0x3e07('0x12'),JSON[_0x3e07('0x15')](_0x22545));if(_0x22545[_0x3e07('0x16')]){if(_0x22545[_0x3e07('0x16')][_0x3e07('0x17')]===0x1f4){logger[_0x3e07('0x16')](_0x3e07('0x11'),_0x4b0c44,_0x22545[_0x3e07('0x16')][_0x3e07('0x18')]);return _0x5ea01b(_0x22545['error']['message']);}logger[_0x3e07('0x16')](_0x3e07('0x11'),_0x4b0c44,_0x22545[_0x3e07('0x16')][_0x3e07('0x18')]);return _0x115274(_0x22545['error']['message']);}else{logger['info'](_0x3e07('0x11'),_0x4b0c44,_0x3e07('0x12'));_0x115274(_0x22545[_0x3e07('0x19')][_0x3e07('0x18')]);}})[_0x3e07('0x1a')](function(_0x440d18){logger[_0x3e07('0x16')](_0x3e07('0x11'),_0x4b0c44,_0x440d18);_0x5ea01b(_0x440d18);});});}exports[_0x3e07('0x1b')]=function(_0x40cb06){var _0x6efdfb=this;return new Promise(function(_0x5870c3,_0x50e858){return db[_0x3e07('0x1c')][_0x3e07('0x1d')]({'raw':_0x40cb06['options']?_0x40cb06['options'][_0x3e07('0x1e')]===undefined?!![]:![]:!![],'where':_0x40cb06['options']?_0x40cb06[_0x3e07('0x1f')][_0x3e07('0x20')]||null:null,'attributes':_0x40cb06['options']?_0x40cb06[_0x3e07('0x1f')][_0x3e07('0x21')]||null:null,'limit':_0x40cb06[_0x3e07('0x1f')]?_0x40cb06['options'][_0x3e07('0x22')]||null:null,'include':_0x40cb06[_0x3e07('0x1f')]?_0x40cb06[_0x3e07('0x1f')][_0x3e07('0x23')]?_[_0x3e07('0x24')](_0x40cb06['options'][_0x3e07('0x23')],function(_0x1240d4){return{'model':db[_0x1240d4[_0x3e07('0x25')]],'as':_0x1240d4['as'],'attributes':_0x1240d4[_0x3e07('0x21')],'include':_0x1240d4[_0x3e07('0x23')]?_[_0x3e07('0x24')](_0x1240d4[_0x3e07('0x23')],function(_0x37ff9e){return{'model':db[_0x37ff9e[_0x3e07('0x25')]],'as':_0x37ff9e['as'],'attributes':_0x37ff9e['attributes'],'include':_0x37ff9e[_0x3e07('0x23')]?_[_0x3e07('0x24')](_0x37ff9e['include'],function(_0x5e59ee){return{'model':db[_0x5e59ee[_0x3e07('0x25')]],'as':_0x5e59ee['as'],'attributes':_0x5e59ee[_0x3e07('0x21')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x51c7b4){logger[_0x3e07('0x10')](_0x3e07('0x1b'),_0x40cb06);logger[_0x3e07('0x13')](_0x3e07('0x1b'),_0x40cb06,JSON[_0x3e07('0x15')](_0x51c7b4));_0x5870c3(_0x51c7b4);})[_0x3e07('0x1a')](function(_0x10f517){logger[_0x3e07('0x16')](_0x3e07('0x1b'),_0x10f517[_0x3e07('0x18')],_0x40cb06);_0x50e858(_0x6efdfb[_0x3e07('0x16')](0x1f4,_0x10f517[_0x3e07('0x18')]));});});};exports[_0x3e07('0x26')]=function(_0x58a2cc){var _0x39eb35=this;return new Promise(function(_0x1bb56d,_0x1cbbcd){return db['MailQueue'][_0x3e07('0x27')]({'raw':_0x58a2cc[_0x3e07('0x1f')]?_0x58a2cc['options']['raw']===undefined?!![]:![]:!![],'where':_0x58a2cc[_0x3e07('0x1f')]?_0x58a2cc[_0x3e07('0x1f')][_0x3e07('0x20')]||null:null,'attributes':_0x58a2cc[_0x3e07('0x1f')]?_0x58a2cc['options'][_0x3e07('0x21')]||null:null,'include':_0x58a2cc[_0x3e07('0x1f')]?_0x58a2cc['options']['include']?_[_0x3e07('0x24')](_0x58a2cc['options'][_0x3e07('0x23')],function(_0x38cf8f){return{'model':db[_0x38cf8f['model']],'as':_0x38cf8f['as'],'attributes':_0x38cf8f[_0x3e07('0x21')],'include':_0x38cf8f[_0x3e07('0x23')]?_[_0x3e07('0x24')](_0x38cf8f['include'],function(_0x30407f){return{'model':db[_0x30407f[_0x3e07('0x25')]],'as':_0x30407f['as'],'attributes':_0x30407f[_0x3e07('0x21')],'include':_0x30407f['include']?_[_0x3e07('0x24')](_0x30407f[_0x3e07('0x23')],function(_0x2ed01a){return{'model':db[_0x2ed01a[_0x3e07('0x25')]],'as':_0x2ed01a['as'],'attributes':_0x2ed01a[_0x3e07('0x21')]};}):[]};}):[]};}):[]:[]})[_0x3e07('0x28')](function(_0x510fd5){logger[_0x3e07('0x10')]('ShowMailQueue',_0x58a2cc);logger[_0x3e07('0x13')](_0x3e07('0x26'),_0x58a2cc,JSON[_0x3e07('0x15')](_0x510fd5));_0x1bb56d(_0x510fd5);})[_0x3e07('0x1a')](function(_0x570bd5){logger['error'](_0x3e07('0x26'),_0x570bd5['message'],_0x58a2cc);_0x1cbbcd(_0x39eb35[_0x3e07('0x16')](0x1f4,_0x570bd5[_0x3e07('0x18')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x12c1=['./mailQueue.events','save','remove','update','emit','length'];(function(_0x3dd603,_0x4eda35){var _0x3ce3aa=function(_0x1c896b){while(--_0x1c896b){_0x3dd603['push'](_0x3dd603['shift']());}};_0x3ce3aa(++_0x4eda35);}(_0x12c1,0x9c));var _0x112c=function(_0x4b7603,_0x482e94){_0x4b7603=_0x4b7603-0x0;var _0x3fe096=_0x12c1[_0x4b7603];return _0x3fe096;};'use strict';var MailQueueEvents=require(_0x112c('0x0'));var events=[_0x112c('0x1'),_0x112c('0x2'),_0x112c('0x3')];function createListener(_0x4486a7,_0x2c9530){return function(_0x31133d){_0x2c9530[_0x112c('0x4')](_0x4486a7,_0x31133d);};}function removeListener(_0x393769,_0x170de0){return function(){MailQueueEvents['removeListener'](_0x393769,_0x170de0);};}exports['register']=function(_0x2350bb){for(var _0x287485=0x0,_0x5390f2=events[_0x112c('0x5')];_0x287485<_0x5390f2;_0x287485++){var _0x4d9a52=events[_0x287485];var _0x5a9981=createListener('mailQueue:'+_0x4d9a52,_0x2350bb);MailQueueEvents['on'](_0x4d9a52,_0x5a9981);}};
\ No newline at end of file
+var _0x7d19=['mailQueue:','./mailQueue.events','save','remove','emit','removeListener','length'];(function(_0x46d1f5,_0x3aaa9b){var _0x1cccbb=function(_0x3be677){while(--_0x3be677){_0x46d1f5['push'](_0x46d1f5['shift']());}};_0x1cccbb(++_0x3aaa9b);}(_0x7d19,0x104));var _0x97d1=function(_0x2503aa,_0x4ea0db){_0x2503aa=_0x2503aa-0x0;var _0x44f5e2=_0x7d19[_0x2503aa];return _0x44f5e2;};'use strict';var MailQueueEvents=require(_0x97d1('0x0'));var events=[_0x97d1('0x1'),_0x97d1('0x2'),'update'];function createListener(_0x42e9ad,_0x39cde2){return function(_0x1f6d0b){_0x39cde2[_0x97d1('0x3')](_0x42e9ad,_0x1f6d0b);};}function removeListener(_0x2c2e97,_0x33525b){return function(){MailQueueEvents[_0x97d1('0x4')](_0x2c2e97,_0x33525b);};}exports['register']=function(_0x5b7eae){for(var _0x8f5be0=0x0,_0x2e8ef0=events[_0x97d1('0x5')];_0x8f5be0<_0x2e8ef0;_0x8f5be0++){var _0x38ee54=events[_0x8f5be0];var _0x134127=createListener(_0x97d1('0x6')+_0x38ee54,_0x5b7eae);MailQueueEvents['on'](_0x38ee54,_0x134127);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x46a4=['create','put','update','delete','destroy','multer','connect-timeout','express','Router','../../config/environment','./mailQueueReport.controller','isAuthenticated','index','/describe','describe','get','/:id'];(function(_0x407867,_0x126b05){var _0x17e975=function(_0x366ce4){while(--_0x366ce4){_0x407867['push'](_0x407867['shift']());}};_0x17e975(++_0x126b05);}(_0x46a4,0x9e));var _0x446a=function(_0x3f00ea,_0x3f286d){_0x3f00ea=_0x3f00ea-0x0;var _0x16eff4=_0x46a4[_0x3f00ea];return _0x16eff4;};'use strict';var multer=require(_0x446a('0x0'));var util=require('util');var path=require('path');var timeout=require(_0x446a('0x1'));var express=require(_0x446a('0x2'));var router=express[_0x446a('0x3')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x446a('0x4'));var controller=require(_0x446a('0x5'));router['get']('/',auth[_0x446a('0x6')](),controller[_0x446a('0x7')]);router['get'](_0x446a('0x8'),auth[_0x446a('0x6')](),controller[_0x446a('0x9')]);router[_0x446a('0xa')](_0x446a('0xb'),auth[_0x446a('0x6')](),controller['show']);router['post']('/',auth[_0x446a('0x6')](),controller[_0x446a('0xc')]);router[_0x446a('0xd')]('/:id',auth[_0x446a('0x6')](),controller[_0x446a('0xe')]);router[_0x446a('0xf')](_0x446a('0xb'),auth[_0x446a('0x6')](),controller[_0x446a('0x10')]);module['exports']=router;
\ No newline at end of file
+var _0xb3a6=['../../components/interaction/service','../../config/environment','./mailQueueReport.controller','get','isAuthenticated','index','/describe','describe','/:id','create','update','destroy','exports','multer','util','path','connect-timeout','fs-extra','../../components/auth/service'];(function(_0xf7bf02,_0x13da13){var _0x4f263f=function(_0x3b5603){while(--_0x3b5603){_0xf7bf02['push'](_0xf7bf02['shift']());}};_0x4f263f(++_0x13da13);}(_0xb3a6,0x117));var _0x6b3a=function(_0x202d24,_0x5e8641){_0x202d24=_0x202d24-0x0;var _0x2b3a8e=_0xb3a6[_0x202d24];return _0x2b3a8e;};'use strict';var multer=require(_0x6b3a('0x0'));var util=require(_0x6b3a('0x1'));var path=require(_0x6b3a('0x2'));var timeout=require(_0x6b3a('0x3'));var express=require('express');var router=express['Router']();var fs_extra=require(_0x6b3a('0x4'));var auth=require(_0x6b3a('0x5'));var interaction=require(_0x6b3a('0x6'));var config=require(_0x6b3a('0x7'));var controller=require(_0x6b3a('0x8'));router[_0x6b3a('0x9')]('/',auth[_0x6b3a('0xa')](),controller[_0x6b3a('0xb')]);router[_0x6b3a('0x9')](_0x6b3a('0xc'),auth[_0x6b3a('0xa')](),controller[_0x6b3a('0xd')]);router[_0x6b3a('0x9')](_0x6b3a('0xe'),auth[_0x6b3a('0xa')](),controller['show']);router['post']('/',auth[_0x6b3a('0xa')](),controller[_0x6b3a('0xf')]);router['put'](_0x6b3a('0xe'),auth[_0x6b3a('0xa')](),controller[_0x6b3a('0x10')]);router['delete'](_0x6b3a('0xe'),auth[_0x6b3a('0xa')](),controller[_0x6b3a('0x11')]);module[_0x6b3a('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8cf5=['STRING','DATE','moment','exports'];(function(_0x4a17bb,_0x484ca9){var _0x758be=function(_0x2dc416){while(--_0x2dc416){_0x4a17bb['push'](_0x4a17bb['shift']());}};_0x758be(++_0x484ca9);}(_0x8cf5,0x1e2));var _0x58cf=function(_0x3619b9,_0x3c68cc){_0x3619b9=_0x3619b9-0x0;var _0x5724cc=_0x8cf5[_0x3619b9];return _0x5724cc;};'use strict';var moment=require(_0x58cf('0x0'));var Sequelize=require('sequelize');module[_0x58cf('0x1')]={'uniqueid':{'type':Sequelize[_0x58cf('0x2')],'allowNull':![]},'from':{'type':Sequelize['STRING']},'joinAt':{'type':Sequelize['DATE']},'leaveAt':{'type':Sequelize['DATE']},'acceptAt':{'type':Sequelize[_0x58cf('0x3')]},'exitAt':{'type':Sequelize[_0x58cf('0x3')]},'reason':{'type':Sequelize[_0x58cf('0x2')]}};
\ No newline at end of file
+var _0x7076=['DATE','moment','exports','STRING'];(function(_0x8854f2,_0x79542c){var _0x38505d=function(_0x5af02b){while(--_0x5af02b){_0x8854f2['push'](_0x8854f2['shift']());}};_0x38505d(++_0x79542c);}(_0x7076,0x1b9));var _0x6707=function(_0x282154,_0x23b72f){_0x282154=_0x282154-0x0;var _0x58a32b=_0x7076[_0x282154];return _0x58a32b;};'use strict';var moment=require(_0x6707('0x0'));var Sequelize=require('sequelize');module[_0x6707('0x1')]={'uniqueid':{'type':Sequelize[_0x6707('0x2')],'allowNull':![]},'from':{'type':Sequelize[_0x6707('0x2')]},'joinAt':{'type':Sequelize['DATE']},'leaveAt':{'type':Sequelize[_0x6707('0x3')]},'acceptAt':{'type':Sequelize[_0x6707('0x3')]},'exitAt':{'type':Sequelize['DATE']},'reason':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6050=['filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filter','merge','VIRTUAL','options','includeAll','findAll','rows','catch','show','params','include','find','create','body','update','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','fs-extra','jsforce','desk.js','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','Content-Range','apply','reject','save','then','destroy','name','send','index','map','MailQueueReport','rawAttributes','type','key','model','query','keys'];(function(_0x1e74cc,_0x155e31){var _0x41ab97=function(_0x3e7012){while(--_0x3e7012){_0x1e74cc['push'](_0x1e74cc['shift']());}};_0x41ab97(++_0x155e31);}(_0x6050,0x196));var _0x0605=function(_0x3b71b7,_0x4ddbc8){_0x3b71b7=_0x3b71b7-0x0;var _0x3f5552=_0x6050[_0x3b71b7];return _0x3f5552;};'use strict';var emlformat=require(_0x0605('0x0'));var rimraf=require(_0x0605('0x1'));var zipdir=require(_0x0605('0x2'));var jsonpatch=require(_0x0605('0x3'));var rp=require(_0x0605('0x4'));var moment=require(_0x0605('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x0605('0x6'));var util=require(_0x0605('0x7'));var path=require(_0x0605('0x8'));var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x0605('0x9'));var _=require('lodash');var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x0605('0xa'));var deskjs=require(_0x0605('0xb'));var toCsv=require(_0x0605('0xc'));var querystring=require(_0x0605('0xd'));var Papa=require(_0x0605('0xe'));var Redis=require('ioredis');var authService=require(_0x0605('0xf'));var qs=require(_0x0605('0x10'));var as=require(_0x0605('0x11'));var hardwareService=require(_0x0605('0x12'));var logger=require(_0x0605('0x13'))(_0x0605('0x14'));var utils=require(_0x0605('0x15'));var config=require(_0x0605('0x16'));var licenseUtil=require(_0x0605('0x17'));var db=require(_0x0605('0x18'))['db'];function respondWithStatusCode(_0xd22e35,_0x39e288){_0x39e288=_0x39e288||0xcc;return function(_0x34c9e6){if(_0x34c9e6){return _0xd22e35[_0x0605('0x19')](_0x39e288);}return _0xd22e35[_0x0605('0x1a')](_0x39e288)[_0x0605('0x1b')]();};}function respondWithResult(_0x169a70,_0x65a20b){_0x65a20b=_0x65a20b||0xc8;return function(_0x1b944f){if(_0x1b944f){return _0x169a70['status'](_0x65a20b)[_0x0605('0x1c')](_0x1b944f);}};}function respondWithFilteredResult(_0x1a802b,_0x4993ab){return function(_0x5ce56a){if(_0x5ce56a){var _0x4eefe9=typeof _0x4993ab[_0x0605('0x1d')]===_0x0605('0x1e')&&typeof _0x4993ab[_0x0605('0x1f')]===_0x0605('0x1e');var _0xefc557=_0x5ce56a[_0x0605('0x20')];var _0x2b7b5a=_0x4eefe9?0x0:_0x4993ab[_0x0605('0x1d')];var _0x193520=_0x4eefe9?_0x5ce56a[_0x0605('0x20')]:_0x4993ab[_0x0605('0x1d')]+_0x4993ab[_0x0605('0x1f')];var _0x2e2204;if(_0x193520>=_0xefc557){_0x193520=_0xefc557;_0x2e2204=0xc8;}else{_0x2e2204=0xce;}_0x1a802b[_0x0605('0x1a')](_0x2e2204);return _0x1a802b['set'](_0x0605('0x21'),_0x2b7b5a+'-'+_0x193520+'/'+_0xefc557)[_0x0605('0x1c')](_0x5ce56a);}return null;};}function patchUpdates(_0x430f28){return function(_0x443326){try{jsonpatch[_0x0605('0x22')](_0x443326,_0x430f28,!![]);}catch(_0x90b2e1){return BPromise[_0x0605('0x23')](_0x90b2e1);}return _0x443326[_0x0605('0x24')]();};}function saveUpdates(_0x226ef5,_0x5b0d44){return function(_0xc334b8){if(_0xc334b8){return _0xc334b8['update'](_0x226ef5)[_0x0605('0x25')](function(_0x118e9c){return _0x118e9c;});}return null;};}function removeEntity(_0x110098,_0xf182c4){return function(_0x10c575){if(_0x10c575){return _0x10c575[_0x0605('0x26')]()[_0x0605('0x25')](function(){_0x110098[_0x0605('0x1a')](0xcc)[_0x0605('0x1b')]();});}};}function handleEntityNotFound(_0x2896d7,_0x9f2833){return function(_0x1c3722){if(!_0x1c3722){_0x2896d7['sendStatus'](0x194);}return _0x1c3722;};}function handleError(_0x6bc204,_0x3c8e36){_0x3c8e36=_0x3c8e36||0x1f4;return function(_0x4b1e0c){logger['error'](_0x4b1e0c['stack']);if(_0x4b1e0c[_0x0605('0x27')]){delete _0x4b1e0c[_0x0605('0x27')];}_0x6bc204[_0x0605('0x1a')](_0x3c8e36)[_0x0605('0x28')](_0x4b1e0c);};}exports[_0x0605('0x29')]=function(_0x4554df,_0x4e32ef){var _0x34f25d={},_0x5daef6={},_0xa836f2={'count':0x0,'rows':[]};var _0x3640b9=_[_0x0605('0x2a')](db[_0x0605('0x2b')][_0x0605('0x2c')],function(_0x352dd6){return{'name':_0x352dd6['fieldName'],'type':_0x352dd6[_0x0605('0x2d')][_0x0605('0x2e')]};});_0x5daef6[_0x0605('0x2f')]=_[_0x0605('0x2a')](_0x3640b9,_0x0605('0x27'));_0x5daef6[_0x0605('0x30')]=_[_0x0605('0x31')](_0x4554df[_0x0605('0x30')]);_0x5daef6[_0x0605('0x32')]=_[_0x0605('0x33')](_0x5daef6[_0x0605('0x2f')],_0x5daef6[_0x0605('0x30')]);_0x34f25d[_0x0605('0x34')]=_[_0x0605('0x33')](_0x5daef6[_0x0605('0x2f')],qs[_0x0605('0x35')](_0x4554df[_0x0605('0x30')][_0x0605('0x35')]));_0x34f25d[_0x0605('0x34')]=_0x34f25d[_0x0605('0x34')][_0x0605('0x36')]?_0x34f25d[_0x0605('0x34')]:_0x5daef6[_0x0605('0x2f')];if(!_0x4554df[_0x0605('0x30')][_0x0605('0x37')](_0x0605('0x38'))){_0x34f25d[_0x0605('0x1f')]=qs['limit'](_0x4554df[_0x0605('0x30')][_0x0605('0x1f')]);_0x34f25d['offset']=qs[_0x0605('0x1d')](_0x4554df[_0x0605('0x30')]['offset']);}_0x34f25d[_0x0605('0x39')]=qs[_0x0605('0x3a')](_0x4554df[_0x0605('0x30')][_0x0605('0x3a')]);_0x34f25d[_0x0605('0x3b')]=qs[_0x0605('0x32')](_['pick'](_0x4554df['query'],_0x5daef6[_0x0605('0x32')]),_0x3640b9);if(_0x4554df[_0x0605('0x30')][_0x0605('0x3c')]){_0x34f25d['where']=_[_0x0605('0x3d')](_0x34f25d['where'],{'$or':_[_0x0605('0x2a')](_0x3640b9,function(_0x1e98f6){if(_0x1e98f6[_0x0605('0x2d')]!==_0x0605('0x3e')){var _0x42f7ce={};_0x42f7ce[_0x1e98f6[_0x0605('0x27')]]={'$like':'%'+_0x4554df[_0x0605('0x30')][_0x0605('0x3c')]+'%'};return _0x42f7ce;}})});}_0x34f25d=_[_0x0605('0x3d')]({},_0x34f25d,_0x4554df[_0x0605('0x3f')]);var _0x57aa15={'where':_0x34f25d[_0x0605('0x3b')]};return db['MailQueueReport'][_0x0605('0x20')](_0x57aa15)[_0x0605('0x25')](function(_0x45787e){_0xa836f2['count']=_0x45787e;if(_0x4554df['query'][_0x0605('0x40')]){_0x34f25d['include']=[{'all':!![]}];}return db[_0x0605('0x2b')][_0x0605('0x41')](_0x34f25d);})[_0x0605('0x25')](function(_0x3de34a){_0xa836f2[_0x0605('0x42')]=_0x3de34a;return _0xa836f2;})[_0x0605('0x25')](respondWithFilteredResult(_0x4e32ef,_0x34f25d))[_0x0605('0x43')](handleError(_0x4e32ef,null));};exports[_0x0605('0x44')]=function(_0x3fa553,_0x10bb36){var _0x18d3ce={'raw':!![],'where':{'id':_0x3fa553[_0x0605('0x45')]['id']}},_0x3616a3={};_0x3616a3['model']=_['keys'](db[_0x0605('0x2b')]['rawAttributes']);_0x3616a3[_0x0605('0x30')]=_[_0x0605('0x31')](_0x3fa553['query']);_0x3616a3[_0x0605('0x32')]=_[_0x0605('0x33')](_0x3616a3['model'],_0x3616a3[_0x0605('0x30')]);_0x18d3ce[_0x0605('0x34')]=_['intersection'](_0x3616a3[_0x0605('0x2f')],qs[_0x0605('0x35')](_0x3fa553['query'][_0x0605('0x35')]));_0x18d3ce['attributes']=_0x18d3ce['attributes'][_0x0605('0x36')]?_0x18d3ce[_0x0605('0x34')]:_0x3616a3[_0x0605('0x2f')];if(_0x3fa553[_0x0605('0x30')][_0x0605('0x40')]){_0x18d3ce[_0x0605('0x46')]=[{'all':!![]}];}_0x18d3ce=_[_0x0605('0x3d')]({},_0x18d3ce,_0x3fa553[_0x0605('0x3f')]);return db['MailQueueReport'][_0x0605('0x47')](_0x18d3ce)[_0x0605('0x25')](handleEntityNotFound(_0x10bb36,null))[_0x0605('0x25')](respondWithResult(_0x10bb36,null))['catch'](handleError(_0x10bb36,null));};exports[_0x0605('0x48')]=function(_0x1fb70b,_0x45cc1a){return db[_0x0605('0x2b')][_0x0605('0x48')](_0x1fb70b[_0x0605('0x49')],{})[_0x0605('0x25')](respondWithResult(_0x45cc1a,0xc9))[_0x0605('0x43')](handleError(_0x45cc1a,null));};exports[_0x0605('0x4a')]=function(_0x4bc55e,_0x3c597c){if(_0x4bc55e[_0x0605('0x49')]['id']){delete _0x4bc55e[_0x0605('0x49')]['id'];}return db[_0x0605('0x2b')][_0x0605('0x47')]({'where':{'id':_0x4bc55e[_0x0605('0x45')]['id']}})[_0x0605('0x25')](handleEntityNotFound(_0x3c597c,null))[_0x0605('0x25')](saveUpdates(_0x4bc55e[_0x0605('0x49')],null))[_0x0605('0x25')](respondWithResult(_0x3c597c,null))['catch'](handleError(_0x3c597c,null));};exports['destroy']=function(_0x4876c7,_0x2687a8){return db[_0x0605('0x2b')][_0x0605('0x47')]({'where':{'id':_0x4876c7[_0x0605('0x45')]['id']}})[_0x0605('0x25')](handleEntityNotFound(_0x2687a8,null))[_0x0605('0x25')](removeEntity(_0x2687a8,null))['catch'](handleError(_0x2687a8,null));};exports[_0x0605('0x4b')]=function(_0x286485,_0x184232){return db[_0x0605('0x2b')]['describe']()[_0x0605('0x25')](respondWithResult(_0x184232,null))[_0x0605('0x43')](handleError(_0x184232,null));};
\ No newline at end of file
+var _0x1893=['query','filters','intersection','fields','attributes','length','hasOwnProperty','sort','where','pick','map','VIRTUAL','filter','includeAll','include','catch','keys','merge','find','body','params','describe','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','reject','save','update','then','error','send','index','MailQueueReport','rawAttributes','type','key','model','name'];(function(_0xbca1b1,_0x33f0ce){var _0x4e1686=function(_0x58a80c){while(--_0x58a80c){_0xbca1b1['push'](_0xbca1b1['shift']());}};_0x4e1686(++_0x33f0ce);}(_0x1893,0xa2));var _0x3189=function(_0x19691f,_0x159737){_0x19691f=_0x19691f-0x0;var _0x5677b6=_0x1893[_0x19691f];return _0x5677b6;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x3189('0x0'));var jsonpatch=require(_0x3189('0x1'));var rp=require(_0x3189('0x2'));var moment=require(_0x3189('0x3'));var BPromise=require(_0x3189('0x4'));var Mustache=require(_0x3189('0x5'));var util=require(_0x3189('0x6'));var path=require('path');var sox=require(_0x3189('0x7'));var csv=require(_0x3189('0x8'));var ejs=require(_0x3189('0x9'));var fs=require('fs');var fs_extra=require(_0x3189('0xa'));var _=require(_0x3189('0xb'));var squel=require(_0x3189('0xc'));var crypto=require(_0x3189('0xd'));var jsforce=require(_0x3189('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x3189('0x8'));var querystring=require('querystring');var Papa=require(_0x3189('0xf'));var Redis=require('ioredis');var authService=require(_0x3189('0x10'));var qs=require(_0x3189('0x11'));var as=require(_0x3189('0x12'));var hardwareService=require(_0x3189('0x13'));var logger=require('../../config/logger')(_0x3189('0x14'));var utils=require(_0x3189('0x15'));var config=require(_0x3189('0x16'));var licenseUtil=require(_0x3189('0x17'));var db=require(_0x3189('0x18'))['db'];function respondWithStatusCode(_0x5d9fff,_0x22b11e){_0x22b11e=_0x22b11e||0xcc;return function(_0x353b17){if(_0x353b17){return _0x5d9fff[_0x3189('0x19')](_0x22b11e);}return _0x5d9fff[_0x3189('0x1a')](_0x22b11e)[_0x3189('0x1b')]();};}function respondWithResult(_0x20dcc2,_0xef438){_0xef438=_0xef438||0xc8;return function(_0x25a917){if(_0x25a917){return _0x20dcc2['status'](_0xef438)[_0x3189('0x1c')](_0x25a917);}};}function respondWithFilteredResult(_0xb3e4c2,_0x1c209b){return function(_0x2fb62b){if(_0x2fb62b){var _0x486dd2=typeof _0x1c209b[_0x3189('0x1d')]==='undefined'&&typeof _0x1c209b['limit']===_0x3189('0x1e');var _0x49b1bc=_0x2fb62b[_0x3189('0x1f')];var _0xf8aed7=_0x486dd2?0x0:_0x1c209b[_0x3189('0x1d')];var _0x9905c4=_0x486dd2?_0x2fb62b['count']:_0x1c209b[_0x3189('0x1d')]+_0x1c209b[_0x3189('0x20')];var _0x16edd7;if(_0x9905c4>=_0x49b1bc){_0x9905c4=_0x49b1bc;_0x16edd7=0xc8;}else{_0x16edd7=0xce;}_0xb3e4c2['status'](_0x16edd7);return _0xb3e4c2[_0x3189('0x21')](_0x3189('0x22'),_0xf8aed7+'-'+_0x9905c4+'/'+_0x49b1bc)[_0x3189('0x1c')](_0x2fb62b);}return null;};}function patchUpdates(_0x2c1e59){return function(_0x29b275){try{jsonpatch['apply'](_0x29b275,_0x2c1e59,!![]);}catch(_0x1771a8){return BPromise[_0x3189('0x23')](_0x1771a8);}return _0x29b275[_0x3189('0x24')]();};}function saveUpdates(_0x539e12,_0x309c6e){return function(_0x47abb4){if(_0x47abb4){return _0x47abb4[_0x3189('0x25')](_0x539e12)[_0x3189('0x26')](function(_0x200f16){return _0x200f16;});}return null;};}function removeEntity(_0x38e56a,_0x1cbe33){return function(_0x393fcb){if(_0x393fcb){return _0x393fcb['destroy']()['then'](function(){_0x38e56a[_0x3189('0x1a')](0xcc)[_0x3189('0x1b')]();});}};}function handleEntityNotFound(_0x1dc1c8,_0x3cc1e5){return function(_0x103de4){if(!_0x103de4){_0x1dc1c8[_0x3189('0x19')](0x194);}return _0x103de4;};}function handleError(_0xdda38b,_0x379a48){_0x379a48=_0x379a48||0x1f4;return function(_0x17b540){logger[_0x3189('0x27')](_0x17b540['stack']);if(_0x17b540['name']){delete _0x17b540['name'];}_0xdda38b[_0x3189('0x1a')](_0x379a48)[_0x3189('0x28')](_0x17b540);};}exports[_0x3189('0x29')]=function(_0x90c31,_0x36b258){var _0x2f7504={},_0x4d453a={},_0x1ab94b={'count':0x0,'rows':[]};var _0x37b9ec=_['map'](db[_0x3189('0x2a')][_0x3189('0x2b')],function(_0x39c5e4){return{'name':_0x39c5e4['fieldName'],'type':_0x39c5e4[_0x3189('0x2c')][_0x3189('0x2d')]};});_0x4d453a[_0x3189('0x2e')]=_['map'](_0x37b9ec,_0x3189('0x2f'));_0x4d453a[_0x3189('0x30')]=_['keys'](_0x90c31[_0x3189('0x30')]);_0x4d453a[_0x3189('0x31')]=_[_0x3189('0x32')](_0x4d453a[_0x3189('0x2e')],_0x4d453a[_0x3189('0x30')]);_0x2f7504['attributes']=_['intersection'](_0x4d453a[_0x3189('0x2e')],qs['fields'](_0x90c31[_0x3189('0x30')][_0x3189('0x33')]));_0x2f7504[_0x3189('0x34')]=_0x2f7504[_0x3189('0x34')][_0x3189('0x35')]?_0x2f7504[_0x3189('0x34')]:_0x4d453a[_0x3189('0x2e')];if(!_0x90c31[_0x3189('0x30')][_0x3189('0x36')]('nolimit')){_0x2f7504[_0x3189('0x20')]=qs[_0x3189('0x20')](_0x90c31[_0x3189('0x30')][_0x3189('0x20')]);_0x2f7504[_0x3189('0x1d')]=qs[_0x3189('0x1d')](_0x90c31[_0x3189('0x30')]['offset']);}_0x2f7504['order']=qs[_0x3189('0x37')](_0x90c31['query'][_0x3189('0x37')]);_0x2f7504[_0x3189('0x38')]=qs['filters'](_[_0x3189('0x39')](_0x90c31[_0x3189('0x30')],_0x4d453a[_0x3189('0x31')]),_0x37b9ec);if(_0x90c31[_0x3189('0x30')]['filter']){_0x2f7504[_0x3189('0x38')]=_['merge'](_0x2f7504['where'],{'$or':_[_0x3189('0x3a')](_0x37b9ec,function(_0xed3041){if(_0xed3041[_0x3189('0x2c')]!==_0x3189('0x3b')){var _0x12dee0={};_0x12dee0[_0xed3041[_0x3189('0x2f')]]={'$like':'%'+_0x90c31[_0x3189('0x30')][_0x3189('0x3c')]+'%'};return _0x12dee0;}})});}_0x2f7504=_['merge']({},_0x2f7504,_0x90c31['options']);var _0x407e0a={'where':_0x2f7504[_0x3189('0x38')]};return db[_0x3189('0x2a')][_0x3189('0x1f')](_0x407e0a)[_0x3189('0x26')](function(_0xb52c70){_0x1ab94b['count']=_0xb52c70;if(_0x90c31[_0x3189('0x30')][_0x3189('0x3d')]){_0x2f7504[_0x3189('0x3e')]=[{'all':!![]}];}return db[_0x3189('0x2a')]['findAll'](_0x2f7504);})[_0x3189('0x26')](function(_0x2f0d49){_0x1ab94b['rows']=_0x2f0d49;return _0x1ab94b;})['then'](respondWithFilteredResult(_0x36b258,_0x2f7504))[_0x3189('0x3f')](handleError(_0x36b258,null));};exports['show']=function(_0x376787,_0x3074b9){var _0x38bf83={'raw':!![],'where':{'id':_0x376787['params']['id']}},_0x9593f3={};_0x9593f3[_0x3189('0x2e')]=_[_0x3189('0x40')](db['MailQueueReport'][_0x3189('0x2b')]);_0x9593f3[_0x3189('0x30')]=_[_0x3189('0x40')](_0x376787[_0x3189('0x30')]);_0x9593f3[_0x3189('0x31')]=_['intersection'](_0x9593f3['model'],_0x9593f3[_0x3189('0x30')]);_0x38bf83['attributes']=_[_0x3189('0x32')](_0x9593f3[_0x3189('0x2e')],qs[_0x3189('0x33')](_0x376787['query'][_0x3189('0x33')]));_0x38bf83[_0x3189('0x34')]=_0x38bf83[_0x3189('0x34')]['length']?_0x38bf83[_0x3189('0x34')]:_0x9593f3[_0x3189('0x2e')];if(_0x376787[_0x3189('0x30')][_0x3189('0x3d')]){_0x38bf83[_0x3189('0x3e')]=[{'all':!![]}];}_0x38bf83=_[_0x3189('0x41')]({},_0x38bf83,_0x376787['options']);return db['MailQueueReport'][_0x3189('0x42')](_0x38bf83)['then'](handleEntityNotFound(_0x3074b9,null))['then'](respondWithResult(_0x3074b9,null))[_0x3189('0x3f')](handleError(_0x3074b9,null));};exports['create']=function(_0x2d58fd,_0x1b6f09){return db[_0x3189('0x2a')]['create'](_0x2d58fd[_0x3189('0x43')],{})['then'](respondWithResult(_0x1b6f09,0xc9))[_0x3189('0x3f')](handleError(_0x1b6f09,null));};exports['update']=function(_0x49c4a8,_0x244166){if(_0x49c4a8['body']['id']){delete _0x49c4a8[_0x3189('0x43')]['id'];}return db['MailQueueReport']['find']({'where':{'id':_0x49c4a8[_0x3189('0x44')]['id']}})[_0x3189('0x26')](handleEntityNotFound(_0x244166,null))[_0x3189('0x26')](saveUpdates(_0x49c4a8[_0x3189('0x43')],null))[_0x3189('0x26')](respondWithResult(_0x244166,null))[_0x3189('0x3f')](handleError(_0x244166,null));};exports['destroy']=function(_0x21d446,_0x549bc7){return db['MailQueueReport'][_0x3189('0x42')]({'where':{'id':_0x21d446[_0x3189('0x44')]['id']}})[_0x3189('0x26')](handleEntityNotFound(_0x549bc7,null))[_0x3189('0x26')](removeEntity(_0x549bc7,null))[_0x3189('0x3f')](handleError(_0x549bc7,null));};exports[_0x3189('0x45')]=function(_0x556ee5,_0x5117fb){return db['MailQueueReport'][_0x3189('0x45')]()[_0x3189('0x26')](respondWithResult(_0x5117fb,null))[_0x3189('0x3f')](handleError(_0x5117fb,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4d07=['report_mail_queue','uniqueid','lodash','../../config/logger','path','rimraf','../../config/environment','./mailQueueReport.attributes','exports','define','MailQueueReport'];(function(_0x3f4568,_0x9eb0ee){var _0xee2340=function(_0xdefabb){while(--_0xdefabb){_0x3f4568['push'](_0x3f4568['shift']());}};_0xee2340(++_0x9eb0ee);}(_0x4d07,0x18e));var _0x74d0=function(_0x5054da,_0x217daf){_0x5054da=_0x5054da-0x0;var _0x76c47b=_0x4d07[_0x5054da];return _0x76c47b;};'use strict';var _=require(_0x74d0('0x0'));var util=require('util');var logger=require(_0x74d0('0x1'))('api');var moment=require('moment');var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0x74d0('0x2'));var rimraf=require(_0x74d0('0x3'));var config=require(_0x74d0('0x4'));var attributes=require(_0x74d0('0x5'));module[_0x74d0('0x6')]=function(_0x32e893,_0x2d3541){return _0x32e893[_0x74d0('0x7')](_0x74d0('0x8'),attributes,{'tableName':_0x74d0('0x9'),'paranoid':![],'indexes':[{'name':_0x74d0('0xa'),'fields':[_0x74d0('0xa')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x16ef=['lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./mailQueueReport.attributes','exports','define','MailQueueReport','uniqueid'];(function(_0x2d2f1a,_0x57b966){var _0x55d9db=function(_0x15771f){while(--_0x15771f){_0x2d2f1a['push'](_0x2d2f1a['shift']());}};_0x55d9db(++_0x57b966);}(_0x16ef,0x1e0));var _0xf16e=function(_0x5ead1b,_0x5d1fb3){_0x5ead1b=_0x5ead1b-0x0;var _0x2ba1da=_0x16ef[_0x5ead1b];return _0x2ba1da;};'use strict';var _=require(_0xf16e('0x0'));var util=require(_0xf16e('0x1'));var logger=require(_0xf16e('0x2'))(_0xf16e('0x3'));var moment=require(_0xf16e('0x4'));var BPromise=require(_0xf16e('0x5'));var rp=require(_0xf16e('0x6'));var fs=require('fs');var path=require(_0xf16e('0x7'));var rimraf=require(_0xf16e('0x8'));var config=require(_0xf16e('0x9'));var attributes=require(_0xf16e('0xa'));module[_0xf16e('0xb')]=function(_0x530042,_0x2e6da3){return _0x530042[_0xf16e('0xc')](_0xf16e('0xd'),attributes,{'tableName':'report_mail_queue','paranoid':![],'indexes':[{'name':_0xf16e('0xe'),'fields':[_0xf16e('0xe')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a54=['moment','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','info','MailQueueReport,\x20%s,\x20%s','debug','stringify','error','code','message','request\x20sent','result','catch','MailQueueReport','create','body','options','raw','CreateMailQueueReport','UpdateMailQueueReport','update','where','attributes','limit','then','lodash','util'];(function(_0x49d7e8,_0x83f837){var _0xe098ce=function(_0x53e187){while(--_0x53e187){_0x49d7e8['push'](_0x49d7e8['shift']());}};_0xe098ce(++_0x83f837);}(_0x7a54,0x106));var _0x47a5=function(_0x37425d,_0x1c307f){_0x37425d=_0x37425d-0x0;var _0x4b4f8c=_0x7a54[_0x37425d];return _0x4b4f8c;};'use strict';var _=require(_0x47a5('0x0'));var util=require(_0x47a5('0x1'));var moment=require(_0x47a5('0x2'));var BPromise=require('bluebird');var rs=require(_0x47a5('0x3'));var fs=require('fs');var Redis=require(_0x47a5('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x47a5('0x5'));var logger=require(_0x47a5('0x6'))(_0x47a5('0x7'));var config=require(_0x47a5('0x8'));var jayson=require(_0x47a5('0x9'));var client=jayson['client'][_0x47a5('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x59199c,_0x343372,_0x30e405){return new BPromise(function(_0x506eda,_0x194fb0){return client['request'](_0x59199c,_0x30e405)['then'](function(_0x582352){logger[_0x47a5('0xb')](_0x47a5('0xc'),_0x343372,'request\x20sent');logger[_0x47a5('0xd')]('MailQueueReport,\x20%s,\x20%s,\x20%s',_0x343372,'request\x20sent',JSON[_0x47a5('0xe')](_0x582352));if(_0x582352[_0x47a5('0xf')]){if(_0x582352[_0x47a5('0xf')][_0x47a5('0x10')]===0x1f4){logger[_0x47a5('0xf')](_0x47a5('0xc'),_0x343372,_0x582352[_0x47a5('0xf')]['message']);return _0x194fb0(_0x582352[_0x47a5('0xf')][_0x47a5('0x11')]);}logger[_0x47a5('0xf')](_0x47a5('0xc'),_0x343372,_0x582352[_0x47a5('0xf')][_0x47a5('0x11')]);return _0x506eda(_0x582352[_0x47a5('0xf')][_0x47a5('0x11')]);}else{logger['info'](_0x47a5('0xc'),_0x343372,_0x47a5('0x12'));_0x506eda(_0x582352[_0x47a5('0x13')][_0x47a5('0x11')]);}})[_0x47a5('0x14')](function(_0x574af6){logger['error'](_0x47a5('0xc'),_0x343372,_0x574af6);_0x194fb0(_0x574af6);});});}exports['CreateMailQueueReport']=function(_0x5247fd){var _0x423a81=this;return new Promise(function(_0xaf70a6,_0x2ce454){return db[_0x47a5('0x15')][_0x47a5('0x16')](_0x5247fd[_0x47a5('0x17')],{'raw':_0x5247fd[_0x47a5('0x18')]?_0x5247fd[_0x47a5('0x18')][_0x47a5('0x19')]===undefined?!![]:![]:!![]})['then'](function(_0x1570bc){logger[_0x47a5('0xb')]('CreateMailQueueReport',_0x5247fd);logger[_0x47a5('0xd')](_0x47a5('0x1a'),_0x5247fd,JSON[_0x47a5('0xe')](_0x1570bc));_0xaf70a6(_0x1570bc);})['catch'](function(_0xb8ae6c){logger[_0x47a5('0xf')](_0x47a5('0x1a'),_0xb8ae6c[_0x47a5('0x11')],_0x5247fd);_0x2ce454(_0x423a81['error'](0x1f4,_0xb8ae6c[_0x47a5('0x11')]));});});};exports[_0x47a5('0x1b')]=function(_0x513981){var _0x28747d=this;return new Promise(function(_0xc4cd63,_0x4437f1){return db[_0x47a5('0x15')][_0x47a5('0x1c')](_0x513981['body'],{'raw':_0x513981['options']?_0x513981[_0x47a5('0x18')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x513981[_0x47a5('0x18')]?_0x513981['options'][_0x47a5('0x1d')]||null:null,'attributes':_0x513981[_0x47a5('0x18')]?_0x513981[_0x47a5('0x18')][_0x47a5('0x1e')]||null:null,'limit':_0x513981[_0x47a5('0x18')]?_0x513981[_0x47a5('0x18')][_0x47a5('0x1f')]||null:null})[_0x47a5('0x20')](function(_0x16631f){logger[_0x47a5('0xb')](_0x47a5('0x1b'),_0x513981);logger[_0x47a5('0xd')](_0x47a5('0x1b'),_0x513981,JSON['stringify'](_0x16631f));_0xc4cd63(_0x16631f);})[_0x47a5('0x14')](function(_0x51833b){logger[_0x47a5('0xf')](_0x47a5('0x1b'),_0x51833b[_0x47a5('0x11')],_0x513981);_0x4437f1(_0x28747d['error'](0x1f4,_0x51833b[_0x47a5('0x11')]));});});};
\ No newline at end of file
+var _0xdb28=['UpdateMailQueueReport','MailQueueReport','update','raw','where','limit','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','request','then','MailQueueReport,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','info','catch','CreateMailQueueReport','create','body','options'];(function(_0x4c8fa3,_0x12a507){var _0x3e0b0f=function(_0x1b9142){while(--_0x1b9142){_0x4c8fa3['push'](_0x4c8fa3['shift']());}};_0x3e0b0f(++_0x12a507);}(_0xdb28,0x106));var _0x8db2=function(_0x497b0a,_0x3edb75){_0x497b0a=_0x497b0a-0x0;var _0x3bc892=_0xdb28[_0x497b0a];return _0x3bc892;};'use strict';var _=require(_0x8db2('0x0'));var util=require(_0x8db2('0x1'));var moment=require(_0x8db2('0x2'));var BPromise=require(_0x8db2('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x8db2('0x4'));var db=require(_0x8db2('0x5'))['db'];var utils=require(_0x8db2('0x6'));var logger=require(_0x8db2('0x7'))(_0x8db2('0x8'));var config=require('../../config/environment');var jayson=require(_0x8db2('0x9'));var client=jayson[_0x8db2('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0x494b40,_0x477f50,_0x46932f){return new BPromise(function(_0x131537,_0x29f698){return client[_0x8db2('0xb')](_0x494b40,_0x46932f)[_0x8db2('0xc')](function(_0x126c78){logger['info'](_0x8db2('0xd'),_0x477f50,_0x8db2('0xe'));logger[_0x8db2('0xf')]('MailQueueReport,\x20%s,\x20%s,\x20%s',_0x477f50,_0x8db2('0xe'),JSON[_0x8db2('0x10')](_0x126c78));if(_0x126c78['error']){if(_0x126c78[_0x8db2('0x11')][_0x8db2('0x12')]===0x1f4){logger[_0x8db2('0x11')](_0x8db2('0xd'),_0x477f50,_0x126c78[_0x8db2('0x11')]['message']);return _0x29f698(_0x126c78['error'][_0x8db2('0x13')]);}logger[_0x8db2('0x11')](_0x8db2('0xd'),_0x477f50,_0x126c78[_0x8db2('0x11')][_0x8db2('0x13')]);return _0x131537(_0x126c78[_0x8db2('0x11')][_0x8db2('0x13')]);}else{logger[_0x8db2('0x14')](_0x8db2('0xd'),_0x477f50,_0x8db2('0xe'));_0x131537(_0x126c78['result'][_0x8db2('0x13')]);}})[_0x8db2('0x15')](function(_0x48101e){logger[_0x8db2('0x11')](_0x8db2('0xd'),_0x477f50,_0x48101e);_0x29f698(_0x48101e);});});}exports[_0x8db2('0x16')]=function(_0x3fddc2){var _0x2efd06=this;return new Promise(function(_0x46ce14,_0x51d60d){return db['MailQueueReport'][_0x8db2('0x17')](_0x3fddc2[_0x8db2('0x18')],{'raw':_0x3fddc2[_0x8db2('0x19')]?_0x3fddc2[_0x8db2('0x19')]['raw']===undefined?!![]:![]:!![]})[_0x8db2('0xc')](function(_0x36a9ff){logger[_0x8db2('0x14')](_0x8db2('0x16'),_0x3fddc2);logger[_0x8db2('0xf')]('CreateMailQueueReport',_0x3fddc2,JSON[_0x8db2('0x10')](_0x36a9ff));_0x46ce14(_0x36a9ff);})[_0x8db2('0x15')](function(_0x18f69c){logger[_0x8db2('0x11')](_0x8db2('0x16'),_0x18f69c[_0x8db2('0x13')],_0x3fddc2);_0x51d60d(_0x2efd06[_0x8db2('0x11')](0x1f4,_0x18f69c['message']));});});};exports[_0x8db2('0x1a')]=function(_0x4f6516){var _0x5725f0=this;return new Promise(function(_0x52a9ca,_0x4d923c){return db[_0x8db2('0x1b')][_0x8db2('0x1c')](_0x4f6516[_0x8db2('0x18')],{'raw':_0x4f6516[_0x8db2('0x19')]?_0x4f6516[_0x8db2('0x19')][_0x8db2('0x1d')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x4f6516['options']?_0x4f6516[_0x8db2('0x19')][_0x8db2('0x1e')]||null:null,'attributes':_0x4f6516[_0x8db2('0x19')]?_0x4f6516[_0x8db2('0x19')]['attributes']||null:null,'limit':_0x4f6516[_0x8db2('0x19')]?_0x4f6516[_0x8db2('0x19')][_0x8db2('0x1f')]||null:null})[_0x8db2('0xc')](function(_0xbe5ece){logger[_0x8db2('0x14')](_0x8db2('0x1a'),_0x4f6516);logger[_0x8db2('0xf')](_0x8db2('0x1a'),_0x4f6516,JSON['stringify'](_0xbe5ece));_0x52a9ca(_0xbe5ece);})[_0x8db2('0x15')](function(_0x50b28d){logger['error'](_0x8db2('0x1a'),_0x50b28d[_0x8db2('0x13')],_0x4f6516);_0x4d923c(_0x5725f0[_0x8db2('0x11')](0x1f4,_0x50b28d['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9c44=['express','Router','fs-extra','../../components/auth/service','exports','path','connect-timeout'];(function(_0x35c4e8,_0x18ff04){var _0x4a958a=function(_0x43b341){while(--_0x43b341){_0x35c4e8['push'](_0x35c4e8['shift']());}};_0x4a958a(++_0x18ff04);}(_0x9c44,0x178));var _0x49c4=function(_0x5d2803,_0xf375bd){_0x5d2803=_0x5d2803-0x0;var _0xdcad2c=_0x9c44[_0x5d2803];return _0xdcad2c;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x49c4('0x0'));var timeout=require(_0x49c4('0x1'));var express=require(_0x49c4('0x2'));var router=express[_0x49c4('0x3')]();var fs_extra=require(_0x49c4('0x4'));var auth=require(_0x49c4('0x5'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');module[_0x49c4('0x6')]=router;
\ No newline at end of file
+var _0x70e0=['../../components/auth/service','../../components/interaction/service','exports','multer','util','path','Router','fs-extra'];(function(_0x3460ff,_0xb5a91d){var _0x71b290=function(_0x363126){while(--_0x363126){_0x3460ff['push'](_0x3460ff['shift']());}};_0x71b290(++_0xb5a91d);}(_0x70e0,0x17b));var _0x070e=function(_0x4463c9,_0x34bc74){_0x4463c9=_0x4463c9-0x0;var _0x98ea=_0x70e0[_0x4463c9];return _0x98ea;};'use strict';var multer=require(_0x070e('0x0'));var util=require(_0x070e('0x1'));var path=require(_0x070e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x070e('0x3')]();var fs_extra=require(_0x070e('0x4'));var auth=require(_0x070e('0x5'));var interaction=require(_0x070e('0x6'));var config=require('../../config/environment');module[_0x070e('0x7')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd3d1=['BOOLEAN','STRING','INTEGER','INBOX','sequelize','exports'];(function(_0x19102a,_0x9c4e92){var _0x2c3c51=function(_0x458e6a){while(--_0x458e6a){_0x19102a['push'](_0x19102a['shift']());}};_0x2c3c51(++_0x9c4e92);}(_0xd3d1,0x172));var _0x1d3d=function(_0x36ed48,_0x1ee0d4){_0x36ed48=_0x36ed48-0x0;var _0x51c63a=_0xd3d1[_0x36ed48];return _0x51c63a;};'use strict';var Sequelize=require(_0x1d3d('0x0'));module[_0x1d3d('0x1')]={'description':{'type':Sequelize['STRING']},'host':{'type':Sequelize['STRING']},'authentication':{'type':Sequelize[_0x1d3d('0x2')],'defaultValue':!![]},'user':{'type':Sequelize[_0x1d3d('0x3')]},'password':{'type':Sequelize[_0x1d3d('0x3')]},'port':{'type':Sequelize[_0x1d3d('0x4')]},'tls':{'type':Sequelize[_0x1d3d('0x2')],'defaultValue':!![]},'mailbox':{'type':Sequelize[_0x1d3d('0x3')],'defaultValue':_0x1d3d('0x5')},'connTimeout':{'type':Sequelize[_0x1d3d('0x4')],'defaultValue':0xa},'authTimeout':{'type':Sequelize[_0x1d3d('0x4')],'defaultValue':0x5},'service':{'type':Sequelize[_0x1d3d('0x3')]}};
\ No newline at end of file
+var _0xae60=['sequelize','exports','STRING','BOOLEAN','INTEGER'];(function(_0x2641f9,_0x26715f){var _0x585741=function(_0x2d1462){while(--_0x2d1462){_0x2641f9['push'](_0x2641f9['shift']());}};_0x585741(++_0x26715f);}(_0xae60,0x1c7));var _0x0ae6=function(_0x2aea9e,_0x1f587f){_0x2aea9e=_0x2aea9e-0x0;var _0x430b92=_0xae60[_0x2aea9e];return _0x430b92;};'use strict';var Sequelize=require(_0x0ae6('0x0'));module[_0x0ae6('0x1')]={'description':{'type':Sequelize[_0x0ae6('0x2')]},'host':{'type':Sequelize['STRING']},'authentication':{'type':Sequelize[_0x0ae6('0x3')],'defaultValue':!![]},'user':{'type':Sequelize[_0x0ae6('0x2')]},'password':{'type':Sequelize[_0x0ae6('0x2')]},'port':{'type':Sequelize['INTEGER']},'tls':{'type':Sequelize[_0x0ae6('0x3')],'defaultValue':!![]},'mailbox':{'type':Sequelize[_0x0ae6('0x2')],'defaultValue':'INBOX'},'connTimeout':{'type':Sequelize[_0x0ae6('0x4')],'defaultValue':0xa},'authTimeout':{'type':Sequelize[_0x0ae6('0x4')],'defaultValue':0x5},'service':{'type':Sequelize[_0x0ae6('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x61d0=['request-promise','path','rimraf','./mailServerIn.attributes','exports','define','MailServerIn','mail_servers_in','../../config/logger','api','moment','bluebird'];(function(_0x43cba5,_0x4a2f83){var _0x359d1a=function(_0x888a02){while(--_0x888a02){_0x43cba5['push'](_0x43cba5['shift']());}};_0x359d1a(++_0x4a2f83);}(_0x61d0,0xbc));var _0x061d=function(_0x4d121d,_0x3fe733){_0x4d121d=_0x4d121d-0x0;var _0xffa031=_0x61d0[_0x4d121d];return _0xffa031;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x061d('0x0'))(_0x061d('0x1'));var moment=require(_0x061d('0x2'));var BPromise=require(_0x061d('0x3'));var rp=require(_0x061d('0x4'));var fs=require('fs');var path=require(_0x061d('0x5'));var rimraf=require(_0x061d('0x6'));var config=require('../../config/environment');var attributes=require(_0x061d('0x7'));module[_0x061d('0x8')]=function(_0x2eab8f,_0x37df41){return _0x2eab8f[_0x061d('0x9')](_0x061d('0xa'),attributes,{'tableName':_0x061d('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xcb51=['./mailServerIn.attributes','exports','define','mail_servers_in','lodash','../../config/logger','api','moment','bluebird','request-promise','rimraf','../../config/environment'];(function(_0x1d9ee3,_0x4dc0ca){var _0x7cdbc4=function(_0x9b626){while(--_0x9b626){_0x1d9ee3['push'](_0x1d9ee3['shift']());}};_0x7cdbc4(++_0x4dc0ca);}(_0xcb51,0x1a8));var _0x1cb5=function(_0x2faddb,_0xc18b78){_0x2faddb=_0x2faddb-0x0;var _0x273c05=_0xcb51[_0x2faddb];return _0x273c05;};'use strict';var _=require(_0x1cb5('0x0'));var util=require('util');var logger=require(_0x1cb5('0x1'))(_0x1cb5('0x2'));var moment=require(_0x1cb5('0x3'));var BPromise=require(_0x1cb5('0x4'));var rp=require(_0x1cb5('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0x1cb5('0x6'));var config=require(_0x1cb5('0x7'));var attributes=require(_0x1cb5('0x8'));module[_0x1cb5('0x9')]=function(_0x5f4c1f,_0x5d0c65){return _0x5f4c1f[_0x1cb5('0xa')]('MailServerIn',attributes,{'tableName':_0x1cb5('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9993=['stringify','error','code','message','info','catch','MailServerIn','options','raw','where','attributes','include','map','model','then','GetMailServerIn','debug','lodash','moment','bluebird','randomstring','../../mysqldb','../../config/logger','rpc','../../config/environment','client','http','request','MailServerIn,\x20%s,\x20%s','request\x20sent','MailServerIn,\x20%s,\x20%s,\x20%s'];(function(_0x50f6d0,_0x4b413d){var _0x293e49=function(_0x3c38d4){while(--_0x3c38d4){_0x50f6d0['push'](_0x50f6d0['shift']());}};_0x293e49(++_0x4b413d);}(_0x9993,0x109));var _0x3999=function(_0x27af45,_0x1b57aa){_0x27af45=_0x27af45-0x0;var _0x18df21=_0x9993[_0x27af45];return _0x18df21;};'use strict';var _=require(_0x3999('0x0'));var util=require('util');var moment=require(_0x3999('0x1'));var BPromise=require(_0x3999('0x2'));var rs=require(_0x3999('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x3999('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0x3999('0x5'))(_0x3999('0x6'));var config=require(_0x3999('0x7'));var jayson=require('jayson/promise');var client=jayson[_0x3999('0x8')][_0x3999('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x536de7,_0xc27316,_0x85b5af){return new BPromise(function(_0x4c1a49,_0x77282){return client[_0x3999('0xa')](_0x536de7,_0x85b5af)['then'](function(_0x3dd61){logger['info'](_0x3999('0xb'),_0xc27316,_0x3999('0xc'));logger['debug'](_0x3999('0xd'),_0xc27316,_0x3999('0xc'),JSON[_0x3999('0xe')](_0x3dd61));if(_0x3dd61[_0x3999('0xf')]){if(_0x3dd61[_0x3999('0xf')][_0x3999('0x10')]===0x1f4){logger[_0x3999('0xf')]('MailServerIn,\x20%s,\x20%s',_0xc27316,_0x3dd61[_0x3999('0xf')][_0x3999('0x11')]);return _0x77282(_0x3dd61['error'][_0x3999('0x11')]);}logger[_0x3999('0xf')](_0x3999('0xb'),_0xc27316,_0x3dd61[_0x3999('0xf')]['message']);return _0x4c1a49(_0x3dd61[_0x3999('0xf')]['message']);}else{logger[_0x3999('0x12')]('MailServerIn,\x20%s,\x20%s',_0xc27316,_0x3999('0xc'));_0x4c1a49(_0x3dd61['result'][_0x3999('0x11')]);}})[_0x3999('0x13')](function(_0x27a62b){logger[_0x3999('0xf')]('MailServerIn,\x20%s,\x20%s',_0xc27316,_0x27a62b);_0x77282(_0x27a62b);});});}exports['GetMailServerIn']=function(_0xdd19a){var _0x29ca01=this;return new Promise(function(_0x5705f6,_0x19c2fa){return db[_0x3999('0x14')]['findAll']({'raw':_0xdd19a[_0x3999('0x15')]?_0xdd19a['options'][_0x3999('0x16')]===undefined?!![]:![]:!![],'where':_0xdd19a['options']?_0xdd19a['options'][_0x3999('0x17')]||null:null,'attributes':_0xdd19a[_0x3999('0x15')]?_0xdd19a[_0x3999('0x15')][_0x3999('0x18')]||null:null,'limit':_0xdd19a[_0x3999('0x15')]?_0xdd19a[_0x3999('0x15')]['limit']||null:null,'include':_0xdd19a[_0x3999('0x15')]?_0xdd19a['options'][_0x3999('0x19')]?_[_0x3999('0x1a')](_0xdd19a[_0x3999('0x15')][_0x3999('0x19')],function(_0xb17e81){return{'model':db[_0xb17e81['model']],'as':_0xb17e81['as'],'attributes':_0xb17e81['attributes'],'include':_0xb17e81[_0x3999('0x19')]?_[_0x3999('0x1a')](_0xb17e81[_0x3999('0x19')],function(_0x11a394){return{'model':db[_0x11a394[_0x3999('0x1b')]],'as':_0x11a394['as'],'attributes':_0x11a394['attributes'],'include':_0x11a394[_0x3999('0x19')]?_[_0x3999('0x1a')](_0x11a394[_0x3999('0x19')],function(_0xe8ed9e){return{'model':db[_0xe8ed9e[_0x3999('0x1b')]],'as':_0xe8ed9e['as'],'attributes':_0xe8ed9e[_0x3999('0x18')]};}):[]};}):[]};}):[]:[]})[_0x3999('0x1c')](function(_0x593458){logger['info'](_0x3999('0x1d'),_0xdd19a);logger[_0x3999('0x1e')](_0x3999('0x1d'),_0xdd19a,JSON[_0x3999('0xe')](_0x593458));_0x5705f6(_0x593458);})[_0x3999('0x13')](function(_0x5937ef){logger[_0x3999('0xf')](_0x3999('0x1d'),_0x5937ef['message'],_0xdd19a);_0x19c2fa(_0x29ca01['error'](0x1f4,_0x5937ef['message']));});});};
\ No newline at end of file
+var _0xe27e=['options','where','include','map','attributes','model','GetMailServerIn','stringify','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','info','MailServerIn,\x20%s,\x20%s','request\x20sent','debug','MailServerIn,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','findAll','raw'];(function(_0x16d10f,_0x2ba2d5){var _0x50c823=function(_0x44e43f){while(--_0x44e43f){_0x16d10f['push'](_0x16d10f['shift']());}};_0x50c823(++_0x2ba2d5);}(_0xe27e,0xa8));var _0xee27=function(_0x4914e2,_0x48be8f){_0x4914e2=_0x4914e2-0x0;var _0x2dcd07=_0xe27e[_0x4914e2];return _0x2dcd07;};'use strict';var _=require(_0xee27('0x0'));var util=require('util');var moment=require(_0xee27('0x1'));var BPromise=require(_0xee27('0x2'));var rs=require(_0xee27('0x3'));var fs=require('fs');var Redis=require(_0xee27('0x4'));var db=require(_0xee27('0x5'))['db'];var utils=require(_0xee27('0x6'));var logger=require(_0xee27('0x7'))(_0xee27('0x8'));var config=require('../../config/environment');var jayson=require(_0xee27('0x9'));var client=jayson[_0xee27('0xa')][_0xee27('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x199a2e,_0x4d16d6,_0x4df68b){return new BPromise(function(_0x5b97db,_0x472274){return client['request'](_0x199a2e,_0x4df68b)['then'](function(_0x4f0174){logger[_0xee27('0xc')](_0xee27('0xd'),_0x4d16d6,_0xee27('0xe'));logger[_0xee27('0xf')](_0xee27('0x10'),_0x4d16d6,_0xee27('0xe'),JSON['stringify'](_0x4f0174));if(_0x4f0174[_0xee27('0x11')]){if(_0x4f0174['error'][_0xee27('0x12')]===0x1f4){logger['error']('MailServerIn,\x20%s,\x20%s',_0x4d16d6,_0x4f0174[_0xee27('0x11')][_0xee27('0x13')]);return _0x472274(_0x4f0174[_0xee27('0x11')][_0xee27('0x13')]);}logger[_0xee27('0x11')](_0xee27('0xd'),_0x4d16d6,_0x4f0174[_0xee27('0x11')]['message']);return _0x5b97db(_0x4f0174[_0xee27('0x11')][_0xee27('0x13')]);}else{logger[_0xee27('0xc')](_0xee27('0xd'),_0x4d16d6,_0xee27('0xe'));_0x5b97db(_0x4f0174[_0xee27('0x14')][_0xee27('0x13')]);}})[_0xee27('0x15')](function(_0x218725){logger[_0xee27('0x11')](_0xee27('0xd'),_0x4d16d6,_0x218725);_0x472274(_0x218725);});});}exports['GetMailServerIn']=function(_0x4e1e6a){var _0x509358=this;return new Promise(function(_0x128b6d,_0x19cba3){return db['MailServerIn'][_0xee27('0x16')]({'raw':_0x4e1e6a['options']?_0x4e1e6a['options'][_0xee27('0x17')]===undefined?!![]:![]:!![],'where':_0x4e1e6a[_0xee27('0x18')]?_0x4e1e6a['options'][_0xee27('0x19')]||null:null,'attributes':_0x4e1e6a[_0xee27('0x18')]?_0x4e1e6a[_0xee27('0x18')]['attributes']||null:null,'limit':_0x4e1e6a[_0xee27('0x18')]?_0x4e1e6a[_0xee27('0x18')]['limit']||null:null,'include':_0x4e1e6a[_0xee27('0x18')]?_0x4e1e6a[_0xee27('0x18')][_0xee27('0x1a')]?_[_0xee27('0x1b')](_0x4e1e6a[_0xee27('0x18')][_0xee27('0x1a')],function(_0x4ae85f){return{'model':db[_0x4ae85f['model']],'as':_0x4ae85f['as'],'attributes':_0x4ae85f[_0xee27('0x1c')],'include':_0x4ae85f[_0xee27('0x1a')]?_[_0xee27('0x1b')](_0x4ae85f['include'],function(_0x314b12){return{'model':db[_0x314b12[_0xee27('0x1d')]],'as':_0x314b12['as'],'attributes':_0x314b12[_0xee27('0x1c')],'include':_0x314b12[_0xee27('0x1a')]?_[_0xee27('0x1b')](_0x314b12['include'],function(_0x4c87a5){return{'model':db[_0x4c87a5[_0xee27('0x1d')]],'as':_0x4c87a5['as'],'attributes':_0x4c87a5['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x3ef660){logger[_0xee27('0xc')](_0xee27('0x1e'),_0x4e1e6a);logger[_0xee27('0xf')](_0xee27('0x1e'),_0x4e1e6a,JSON[_0xee27('0x1f')](_0x3ef660));_0x128b6d(_0x3ef660);})[_0xee27('0x15')](function(_0x36f635){logger['error'](_0xee27('0x1e'),_0x36f635['message'],_0x4e1e6a);_0x19cba3(_0x509358[_0xee27('0x11')](0x1f4,_0x36f635[_0xee27('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9957=['multer','util','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./mailServerOut.controller','get','isAuthenticated','index','/:id','show','post','create','put','update','delete','destroy','exports'];(function(_0x481bf7,_0x437f69){var _0x461787=function(_0xb3bc9d){while(--_0xb3bc9d){_0x481bf7['push'](_0x481bf7['shift']());}};_0x461787(++_0x437f69);}(_0x9957,0x93));var _0x7995=function(_0x5ddb1c,_0x5ea4df){_0x5ddb1c=_0x5ddb1c-0x0;var _0x354adc=_0x9957[_0x5ddb1c];return _0x354adc;};'use strict';var multer=require(_0x7995('0x0'));var util=require(_0x7995('0x1'));var path=require(_0x7995('0x2'));var timeout=require(_0x7995('0x3'));var express=require('express');var router=express[_0x7995('0x4')]();var fs_extra=require(_0x7995('0x5'));var auth=require(_0x7995('0x6'));var interaction=require(_0x7995('0x7'));var config=require('../../config/environment');var controller=require(_0x7995('0x8'));router[_0x7995('0x9')]('/',auth[_0x7995('0xa')](),controller[_0x7995('0xb')]);router[_0x7995('0x9')](_0x7995('0xc'),auth['isAuthenticated'](),controller[_0x7995('0xd')]);router[_0x7995('0xe')]('/',auth['isAuthenticated'](),controller[_0x7995('0xf')]);router[_0x7995('0x10')](_0x7995('0xc'),auth[_0x7995('0xa')](),controller[_0x7995('0x11')]);router[_0x7995('0x12')](_0x7995('0xc'),auth['isAuthenticated'](),controller[_0x7995('0x13')]);module[_0x7995('0x14')]=router;
\ No newline at end of file
+var _0x7a54=['index','/:id','isAuthenticated','post','delete','destroy','exports','multer','util','path','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./mailServerOut.controller','get'];(function(_0x580576,_0x2f107d){var _0x3f55a0=function(_0x2e180b){while(--_0x2e180b){_0x580576['push'](_0x580576['shift']());}};_0x3f55a0(++_0x2f107d);}(_0x7a54,0x106));var _0x47a5=function(_0x23c559,_0x23ced7){_0x23c559=_0x23c559-0x0;var _0x188a4b=_0x7a54[_0x23c559];return _0x188a4b;};'use strict';var multer=require(_0x47a5('0x0'));var util=require(_0x47a5('0x1'));var path=require(_0x47a5('0x2'));var timeout=require('connect-timeout');var express=require(_0x47a5('0x3'));var router=express[_0x47a5('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0x47a5('0x5'));var interaction=require(_0x47a5('0x6'));var config=require(_0x47a5('0x7'));var controller=require(_0x47a5('0x8'));router[_0x47a5('0x9')]('/',auth['isAuthenticated'](),controller[_0x47a5('0xa')]);router['get'](_0x47a5('0xb'),auth[_0x47a5('0xc')](),controller['show']);router[_0x47a5('0xd')]('/',auth['isAuthenticated'](),controller['create']);router['put'](_0x47a5('0xb'),auth[_0x47a5('0xc')](),controller['update']);router[_0x47a5('0xe')]('/:id',auth['isAuthenticated'](),controller[_0x47a5('0xf')]);module[_0x47a5('0x10')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf6fa=['exports','STRING','BOOLEAN'];(function(_0x3c8e9a,_0x384306){var _0x2d4c57=function(_0x43d408){while(--_0x43d408){_0x3c8e9a['push'](_0x3c8e9a['shift']());}};_0x2d4c57(++_0x384306);}(_0xf6fa,0x87));var _0xaf6f=function(_0x13d07a,_0x41efc3){_0x13d07a=_0x13d07a-0x0;var _0x5ee0ee=_0xf6fa[_0x13d07a];return _0x5ee0ee;};'use strict';var Sequelize=require('sequelize');module[_0xaf6f('0x0')]={'description':{'type':Sequelize['STRING']},'host':{'type':Sequelize[_0xaf6f('0x1')]},'user':{'type':Sequelize[_0xaf6f('0x1')]},'pass':{'type':Sequelize[_0xaf6f('0x1')]},'port':{'type':Sequelize['INTEGER']},'secure':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'service':{'type':Sequelize[_0xaf6f('0x1')]},'authentication':{'type':Sequelize[_0xaf6f('0x2')],'defaultValue':!![]}};
\ No newline at end of file
+var _0xaac2=['STRING','INTEGER','BOOLEAN','sequelize'];(function(_0x7d3e40,_0x2e6e6){var _0x5b011a=function(_0x50963f){while(--_0x50963f){_0x7d3e40['push'](_0x7d3e40['shift']());}};_0x5b011a(++_0x2e6e6);}(_0xaac2,0x1eb));var _0x2aac=function(_0xdabb70,_0x174caf){_0xdabb70=_0xdabb70-0x0;var _0x2f6ec3=_0xaac2[_0xdabb70];return _0x2f6ec3;};'use strict';var Sequelize=require(_0x2aac('0x0'));module['exports']={'description':{'type':Sequelize[_0x2aac('0x1')]},'host':{'type':Sequelize[_0x2aac('0x1')]},'user':{'type':Sequelize[_0x2aac('0x1')]},'pass':{'type':Sequelize[_0x2aac('0x1')]},'port':{'type':Sequelize[_0x2aac('0x2')]},'secure':{'type':Sequelize[_0x2aac('0x3')],'defaultValue':![]},'service':{'type':Sequelize[_0x2aac('0x1')]},'authentication':{'type':Sequelize[_0x2aac('0x3')],'defaultValue':!![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1ed5=['filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','VIRTUAL','filter','options','includeAll','include','findAll','catch','show','params','find','create','body','destroy','eml-format','rimraf','zip-dir','request-promise','moment','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','error','stack','name','send','map','MailServerOut','rawAttributes','fieldName','type','query','keys'];(function(_0x59f0b5,_0x1ce05d){var _0x113cdb=function(_0x2ffabb){while(--_0x2ffabb){_0x59f0b5['push'](_0x59f0b5['shift']());}};_0x113cdb(++_0x1ce05d);}(_0x1ed5,0x1a0));var _0x51ed=function(_0xd92a00,_0x3cadb5){_0xd92a00=_0xd92a00-0x0;var _0x22aff5=_0x1ed5[_0xd92a00];return _0x22aff5;};'use strict';var emlformat=require(_0x51ed('0x0'));var rimraf=require(_0x51ed('0x1'));var zipdir=require(_0x51ed('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x51ed('0x3'));var moment=require(_0x51ed('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x51ed('0x5'));var util=require(_0x51ed('0x6'));var path=require(_0x51ed('0x7'));var sox=require(_0x51ed('0x8'));var csv=require(_0x51ed('0x9'));var ejs=require(_0x51ed('0xa'));var fs=require('fs');var fs_extra=require(_0x51ed('0xb'));var _=require(_0x51ed('0xc'));var squel=require(_0x51ed('0xd'));var crypto=require('crypto');var jsforce=require(_0x51ed('0xe'));var deskjs=require(_0x51ed('0xf'));var toCsv=require(_0x51ed('0x9'));var querystring=require(_0x51ed('0x10'));var Papa=require(_0x51ed('0x11'));var Redis=require(_0x51ed('0x12'));var authService=require(_0x51ed('0x13'));var qs=require(_0x51ed('0x14'));var as=require(_0x51ed('0x15'));var hardwareService=require(_0x51ed('0x16'));var logger=require(_0x51ed('0x17'))(_0x51ed('0x18'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x51ed('0x19'));var db=require(_0x51ed('0x1a'))['db'];function respondWithStatusCode(_0x3fcd4b,_0x73ccbe){_0x73ccbe=_0x73ccbe||0xcc;return function(_0x4091b9){if(_0x4091b9){return _0x3fcd4b[_0x51ed('0x1b')](_0x73ccbe);}return _0x3fcd4b[_0x51ed('0x1c')](_0x73ccbe)[_0x51ed('0x1d')]();};}function respondWithResult(_0x214244,_0x4626b2){_0x4626b2=_0x4626b2||0xc8;return function(_0x54f2f2){if(_0x54f2f2){return _0x214244[_0x51ed('0x1c')](_0x4626b2)['json'](_0x54f2f2);}};}function respondWithFilteredResult(_0x2a933f,_0x45d2fd){return function(_0x58cc91){if(_0x58cc91){var _0x219a39=typeof _0x45d2fd[_0x51ed('0x1e')]===_0x51ed('0x1f')&&typeof _0x45d2fd[_0x51ed('0x20')]==='undefined';var _0x33ea40=_0x58cc91[_0x51ed('0x21')];var _0x3207a1=_0x219a39?0x0:_0x45d2fd[_0x51ed('0x1e')];var _0x1f44dc=_0x219a39?_0x58cc91[_0x51ed('0x21')]:_0x45d2fd[_0x51ed('0x1e')]+_0x45d2fd[_0x51ed('0x20')];var _0x107a3f;if(_0x1f44dc>=_0x33ea40){_0x1f44dc=_0x33ea40;_0x107a3f=0xc8;}else{_0x107a3f=0xce;}_0x2a933f['status'](_0x107a3f);return _0x2a933f[_0x51ed('0x22')](_0x51ed('0x23'),_0x3207a1+'-'+_0x1f44dc+'/'+_0x33ea40)['json'](_0x58cc91);}return null;};}function patchUpdates(_0x5896c7){return function(_0x3bbd01){try{jsonpatch[_0x51ed('0x24')](_0x3bbd01,_0x5896c7,!![]);}catch(_0x134aa3){return BPromise[_0x51ed('0x25')](_0x134aa3);}return _0x3bbd01[_0x51ed('0x26')]();};}function saveUpdates(_0x13b2c9,_0x253baa){return function(_0x22f360){if(_0x22f360){return _0x22f360[_0x51ed('0x27')](_0x13b2c9)[_0x51ed('0x28')](function(_0x5ede29){return _0x5ede29;});}return null;};}function removeEntity(_0xcc93e1,_0x535147){return function(_0x16f959){if(_0x16f959){return _0x16f959['destroy']()[_0x51ed('0x28')](function(){_0xcc93e1[_0x51ed('0x1c')](0xcc)[_0x51ed('0x1d')]();});}};}function handleEntityNotFound(_0x3b73a3,_0x53bebd){return function(_0x2ad069){if(!_0x2ad069){_0x3b73a3[_0x51ed('0x1b')](0x194);}return _0x2ad069;};}function handleError(_0x53723e,_0x5117de){_0x5117de=_0x5117de||0x1f4;return function(_0x5d1665){logger[_0x51ed('0x29')](_0x5d1665[_0x51ed('0x2a')]);if(_0x5d1665[_0x51ed('0x2b')]){delete _0x5d1665[_0x51ed('0x2b')];}_0x53723e['status'](_0x5117de)[_0x51ed('0x2c')](_0x5d1665);};}exports['index']=function(_0x328a30,_0x11fab1){var _0x93e856={},_0x538f97={},_0xead191={'count':0x0,'rows':[]};var _0x1c9966=_[_0x51ed('0x2d')](db[_0x51ed('0x2e')][_0x51ed('0x2f')],function(_0x137dde){return{'name':_0x137dde[_0x51ed('0x30')],'type':_0x137dde[_0x51ed('0x31')]['key']};});_0x538f97['model']=_['map'](_0x1c9966,_0x51ed('0x2b'));_0x538f97[_0x51ed('0x32')]=_[_0x51ed('0x33')](_0x328a30['query']);_0x538f97[_0x51ed('0x34')]=_[_0x51ed('0x35')](_0x538f97[_0x51ed('0x36')],_0x538f97[_0x51ed('0x32')]);_0x93e856[_0x51ed('0x37')]=_[_0x51ed('0x35')](_0x538f97[_0x51ed('0x36')],qs[_0x51ed('0x38')](_0x328a30[_0x51ed('0x32')][_0x51ed('0x38')]));_0x93e856[_0x51ed('0x37')]=_0x93e856[_0x51ed('0x37')][_0x51ed('0x39')]?_0x93e856[_0x51ed('0x37')]:_0x538f97[_0x51ed('0x36')];if(!_0x328a30[_0x51ed('0x32')][_0x51ed('0x3a')](_0x51ed('0x3b'))){_0x93e856['limit']=qs[_0x51ed('0x20')](_0x328a30[_0x51ed('0x32')][_0x51ed('0x20')]);_0x93e856[_0x51ed('0x1e')]=qs[_0x51ed('0x1e')](_0x328a30[_0x51ed('0x32')][_0x51ed('0x1e')]);}_0x93e856[_0x51ed('0x3c')]=qs[_0x51ed('0x3d')](_0x328a30[_0x51ed('0x32')]['sort']);_0x93e856[_0x51ed('0x3e')]=qs[_0x51ed('0x34')](_[_0x51ed('0x3f')](_0x328a30[_0x51ed('0x32')],_0x538f97[_0x51ed('0x34')]),_0x1c9966);if(_0x328a30[_0x51ed('0x32')]['filter']){_0x93e856['where']=_[_0x51ed('0x40')](_0x93e856[_0x51ed('0x3e')],{'$or':_[_0x51ed('0x2d')](_0x1c9966,function(_0x21ad51){if(_0x21ad51[_0x51ed('0x31')]!==_0x51ed('0x41')){var _0x5ba1a6={};_0x5ba1a6[_0x21ad51[_0x51ed('0x2b')]]={'$like':'%'+_0x328a30[_0x51ed('0x32')][_0x51ed('0x42')]+'%'};return _0x5ba1a6;}})});}_0x93e856=_[_0x51ed('0x40')]({},_0x93e856,_0x328a30[_0x51ed('0x43')]);var _0x46fb81={'where':_0x93e856[_0x51ed('0x3e')]};return db[_0x51ed('0x2e')][_0x51ed('0x21')](_0x46fb81)['then'](function(_0x49f544){_0xead191['count']=_0x49f544;if(_0x328a30[_0x51ed('0x32')][_0x51ed('0x44')]){_0x93e856[_0x51ed('0x45')]=[{'all':!![]}];}return db[_0x51ed('0x2e')][_0x51ed('0x46')](_0x93e856);})['then'](function(_0xa9630b){_0xead191['rows']=_0xa9630b;return _0xead191;})[_0x51ed('0x28')](respondWithFilteredResult(_0x11fab1,_0x93e856))[_0x51ed('0x47')](handleError(_0x11fab1,null));};exports[_0x51ed('0x48')]=function(_0x5edfb2,_0x2e9a7b){var _0x3fc782={'raw':!![],'where':{'id':_0x5edfb2[_0x51ed('0x49')]['id']}},_0x3559f0={};_0x3559f0[_0x51ed('0x36')]=_[_0x51ed('0x33')](db[_0x51ed('0x2e')][_0x51ed('0x2f')]);_0x3559f0[_0x51ed('0x32')]=_[_0x51ed('0x33')](_0x5edfb2[_0x51ed('0x32')]);_0x3559f0[_0x51ed('0x34')]=_[_0x51ed('0x35')](_0x3559f0[_0x51ed('0x36')],_0x3559f0['query']);_0x3fc782[_0x51ed('0x37')]=_['intersection'](_0x3559f0[_0x51ed('0x36')],qs[_0x51ed('0x38')](_0x5edfb2[_0x51ed('0x32')][_0x51ed('0x38')]));_0x3fc782['attributes']=_0x3fc782[_0x51ed('0x37')][_0x51ed('0x39')]?_0x3fc782[_0x51ed('0x37')]:_0x3559f0[_0x51ed('0x36')];if(_0x5edfb2['query'][_0x51ed('0x44')]){_0x3fc782[_0x51ed('0x45')]=[{'all':!![]}];}_0x3fc782=_[_0x51ed('0x40')]({},_0x3fc782,_0x5edfb2[_0x51ed('0x43')]);return db['MailServerOut'][_0x51ed('0x4a')](_0x3fc782)[_0x51ed('0x28')](handleEntityNotFound(_0x2e9a7b,null))[_0x51ed('0x28')](respondWithResult(_0x2e9a7b,null))['catch'](handleError(_0x2e9a7b,null));};exports[_0x51ed('0x4b')]=function(_0x221643,_0x2644a1){return db[_0x51ed('0x2e')][_0x51ed('0x4b')](_0x221643[_0x51ed('0x4c')],{})[_0x51ed('0x28')](respondWithResult(_0x2644a1,0xc9))[_0x51ed('0x47')](handleError(_0x2644a1,null));};exports[_0x51ed('0x27')]=function(_0x497f51,_0x519d55){if(_0x497f51[_0x51ed('0x4c')]['id']){delete _0x497f51[_0x51ed('0x4c')]['id'];}return db['MailServerOut'][_0x51ed('0x4a')]({'where':{'id':_0x497f51[_0x51ed('0x49')]['id']}})[_0x51ed('0x28')](handleEntityNotFound(_0x519d55,null))[_0x51ed('0x28')](saveUpdates(_0x497f51[_0x51ed('0x4c')],null))[_0x51ed('0x28')](respondWithResult(_0x519d55,null))[_0x51ed('0x47')](handleError(_0x519d55,null));};exports[_0x51ed('0x4d')]=function(_0x3b7292,_0x24c613){return db[_0x51ed('0x2e')][_0x51ed('0x4a')]({'where':{'id':_0x3b7292['params']['id']}})['then'](handleEntityNotFound(_0x24c613,null))['then'](removeEntity(_0x24c613,null))[_0x51ed('0x47')](handleError(_0x24c613,null));};
\ No newline at end of file
+var _0x9f7c=['keys','create','body','find','params','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','json','limit','undefined','count','offset','set','apply','update','destroy','then','error','stack','name','send','map','MailServerOut','rawAttributes','key','model','query','filters','attributes','intersection','fields','length','sort','where','filter','merge','type','options','include','findAll','rows','catch'];(function(_0x4e3a30,_0x257cd8){var _0x5b9365=function(_0xbe49b6){while(--_0xbe49b6){_0x4e3a30['push'](_0x4e3a30['shift']());}};_0x5b9365(++_0x257cd8);}(_0x9f7c,0x15e));var _0xc9f7=function(_0x3db1d8,_0x5e7740){_0x3db1d8=_0x3db1d8-0x0;var _0x1bd6d8=_0x9f7c[_0x3db1d8];return _0x1bd6d8;};'use strict';var emlformat=require(_0xc9f7('0x0'));var rimraf=require(_0xc9f7('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xc9f7('0x2'));var rp=require(_0xc9f7('0x3'));var moment=require(_0xc9f7('0x4'));var BPromise=require(_0xc9f7('0x5'));var Mustache=require(_0xc9f7('0x6'));var util=require(_0xc9f7('0x7'));var path=require(_0xc9f7('0x8'));var sox=require(_0xc9f7('0x9'));var csv=require(_0xc9f7('0xa'));var ejs=require(_0xc9f7('0xb'));var fs=require('fs');var fs_extra=require(_0xc9f7('0xc'));var _=require(_0xc9f7('0xd'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0xc9f7('0xe'));var deskjs=require(_0xc9f7('0xf'));var toCsv=require(_0xc9f7('0xa'));var querystring=require(_0xc9f7('0x10'));var Papa=require(_0xc9f7('0x11'));var Redis=require(_0xc9f7('0x12'));var authService=require(_0xc9f7('0x13'));var qs=require(_0xc9f7('0x14'));var as=require(_0xc9f7('0x15'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xc9f7('0x16'));var utils=require(_0xc9f7('0x17'));var config=require(_0xc9f7('0x18'));var licenseUtil=require(_0xc9f7('0x19'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x2b2882,_0x3b5194){_0x3b5194=_0x3b5194||0xcc;return function(_0x1e7aa5){if(_0x1e7aa5){return _0x2b2882[_0xc9f7('0x1a')](_0x3b5194);}return _0x2b2882[_0xc9f7('0x1b')](_0x3b5194)[_0xc9f7('0x1c')]();};}function respondWithResult(_0x59f8b2,_0xb835cb){_0xb835cb=_0xb835cb||0xc8;return function(_0x4b5bd7){if(_0x4b5bd7){return _0x59f8b2[_0xc9f7('0x1b')](_0xb835cb)[_0xc9f7('0x1d')](_0x4b5bd7);}};}function respondWithFilteredResult(_0x5f3f1b,_0x1fb637){return function(_0x42db3d){if(_0x42db3d){var _0xf1436c=typeof _0x1fb637['offset']==='undefined'&&typeof _0x1fb637[_0xc9f7('0x1e')]===_0xc9f7('0x1f');var _0x3abeb4=_0x42db3d[_0xc9f7('0x20')];var _0x3add1a=_0xf1436c?0x0:_0x1fb637[_0xc9f7('0x21')];var _0x41b0e6=_0xf1436c?_0x42db3d['count']:_0x1fb637['offset']+_0x1fb637['limit'];var _0x1f4e83;if(_0x41b0e6>=_0x3abeb4){_0x41b0e6=_0x3abeb4;_0x1f4e83=0xc8;}else{_0x1f4e83=0xce;}_0x5f3f1b[_0xc9f7('0x1b')](_0x1f4e83);return _0x5f3f1b[_0xc9f7('0x22')]('Content-Range',_0x3add1a+'-'+_0x41b0e6+'/'+_0x3abeb4)[_0xc9f7('0x1d')](_0x42db3d);}return null;};}function patchUpdates(_0x59d224){return function(_0x1d47a6){try{jsonpatch[_0xc9f7('0x23')](_0x1d47a6,_0x59d224,!![]);}catch(_0x38b808){return BPromise['reject'](_0x38b808);}return _0x1d47a6['save']();};}function saveUpdates(_0x2bccbd,_0x31abe8){return function(_0x21b154){if(_0x21b154){return _0x21b154[_0xc9f7('0x24')](_0x2bccbd)['then'](function(_0x81dc34){return _0x81dc34;});}return null;};}function removeEntity(_0x4a62f1,_0x5c9427){return function(_0x1e1dbf){if(_0x1e1dbf){return _0x1e1dbf[_0xc9f7('0x25')]()[_0xc9f7('0x26')](function(){_0x4a62f1['status'](0xcc)[_0xc9f7('0x1c')]();});}};}function handleEntityNotFound(_0x296ec0,_0x10b6a7){return function(_0xa36f5b){if(!_0xa36f5b){_0x296ec0['sendStatus'](0x194);}return _0xa36f5b;};}function handleError(_0x1783a4,_0x5e2525){_0x5e2525=_0x5e2525||0x1f4;return function(_0x31f90c){logger[_0xc9f7('0x27')](_0x31f90c[_0xc9f7('0x28')]);if(_0x31f90c[_0xc9f7('0x29')]){delete _0x31f90c[_0xc9f7('0x29')];}_0x1783a4[_0xc9f7('0x1b')](_0x5e2525)[_0xc9f7('0x2a')](_0x31f90c);};}exports['index']=function(_0x3fda68,_0x54d661){var _0x19be00={},_0x5e3759={},_0x3a1727={'count':0x0,'rows':[]};var _0x3f2109=_[_0xc9f7('0x2b')](db[_0xc9f7('0x2c')][_0xc9f7('0x2d')],function(_0x202612){return{'name':_0x202612['fieldName'],'type':_0x202612['type'][_0xc9f7('0x2e')]};});_0x5e3759[_0xc9f7('0x2f')]=_[_0xc9f7('0x2b')](_0x3f2109,_0xc9f7('0x29'));_0x5e3759['query']=_['keys'](_0x3fda68[_0xc9f7('0x30')]);_0x5e3759[_0xc9f7('0x31')]=_['intersection'](_0x5e3759[_0xc9f7('0x2f')],_0x5e3759['query']);_0x19be00[_0xc9f7('0x32')]=_[_0xc9f7('0x33')](_0x5e3759[_0xc9f7('0x2f')],qs['fields'](_0x3fda68[_0xc9f7('0x30')][_0xc9f7('0x34')]));_0x19be00[_0xc9f7('0x32')]=_0x19be00[_0xc9f7('0x32')][_0xc9f7('0x35')]?_0x19be00[_0xc9f7('0x32')]:_0x5e3759[_0xc9f7('0x2f')];if(!_0x3fda68[_0xc9f7('0x30')]['hasOwnProperty']('nolimit')){_0x19be00[_0xc9f7('0x1e')]=qs[_0xc9f7('0x1e')](_0x3fda68[_0xc9f7('0x30')][_0xc9f7('0x1e')]);_0x19be00['offset']=qs['offset'](_0x3fda68[_0xc9f7('0x30')][_0xc9f7('0x21')]);}_0x19be00['order']=qs['sort'](_0x3fda68[_0xc9f7('0x30')][_0xc9f7('0x36')]);_0x19be00[_0xc9f7('0x37')]=qs[_0xc9f7('0x31')](_['pick'](_0x3fda68[_0xc9f7('0x30')],_0x5e3759[_0xc9f7('0x31')]),_0x3f2109);if(_0x3fda68[_0xc9f7('0x30')][_0xc9f7('0x38')]){_0x19be00['where']=_[_0xc9f7('0x39')](_0x19be00[_0xc9f7('0x37')],{'$or':_[_0xc9f7('0x2b')](_0x3f2109,function(_0x3ed77c){if(_0x3ed77c[_0xc9f7('0x3a')]!=='VIRTUAL'){var _0x48d7a6={};_0x48d7a6[_0x3ed77c[_0xc9f7('0x29')]]={'$like':'%'+_0x3fda68['query'][_0xc9f7('0x38')]+'%'};return _0x48d7a6;}})});}_0x19be00=_[_0xc9f7('0x39')]({},_0x19be00,_0x3fda68[_0xc9f7('0x3b')]);var _0xd5f35b={'where':_0x19be00['where']};return db[_0xc9f7('0x2c')][_0xc9f7('0x20')](_0xd5f35b)[_0xc9f7('0x26')](function(_0x4bce36){_0x3a1727[_0xc9f7('0x20')]=_0x4bce36;if(_0x3fda68['query']['includeAll']){_0x19be00[_0xc9f7('0x3c')]=[{'all':!![]}];}return db['MailServerOut'][_0xc9f7('0x3d')](_0x19be00);})['then'](function(_0xf6b3e2){_0x3a1727[_0xc9f7('0x3e')]=_0xf6b3e2;return _0x3a1727;})['then'](respondWithFilteredResult(_0x54d661,_0x19be00))[_0xc9f7('0x3f')](handleError(_0x54d661,null));};exports['show']=function(_0x52efc7,_0x4ecf16){var _0x5da382={'raw':!![],'where':{'id':_0x52efc7['params']['id']}},_0x1323f9={};_0x1323f9[_0xc9f7('0x2f')]=_[_0xc9f7('0x40')](db[_0xc9f7('0x2c')]['rawAttributes']);_0x1323f9[_0xc9f7('0x30')]=_['keys'](_0x52efc7[_0xc9f7('0x30')]);_0x1323f9[_0xc9f7('0x31')]=_[_0xc9f7('0x33')](_0x1323f9[_0xc9f7('0x2f')],_0x1323f9[_0xc9f7('0x30')]);_0x5da382[_0xc9f7('0x32')]=_['intersection'](_0x1323f9[_0xc9f7('0x2f')],qs[_0xc9f7('0x34')](_0x52efc7[_0xc9f7('0x30')][_0xc9f7('0x34')]));_0x5da382['attributes']=_0x5da382[_0xc9f7('0x32')]['length']?_0x5da382[_0xc9f7('0x32')]:_0x1323f9[_0xc9f7('0x2f')];if(_0x52efc7['query']['includeAll']){_0x5da382[_0xc9f7('0x3c')]=[{'all':!![]}];}_0x5da382=_[_0xc9f7('0x39')]({},_0x5da382,_0x52efc7[_0xc9f7('0x3b')]);return db[_0xc9f7('0x2c')]['find'](_0x5da382)['then'](handleEntityNotFound(_0x4ecf16,null))[_0xc9f7('0x26')](respondWithResult(_0x4ecf16,null))[_0xc9f7('0x3f')](handleError(_0x4ecf16,null));};exports[_0xc9f7('0x41')]=function(_0x17304b,_0x16ae79){return db['MailServerOut'][_0xc9f7('0x41')](_0x17304b[_0xc9f7('0x42')],{})[_0xc9f7('0x26')](respondWithResult(_0x16ae79,0xc9))[_0xc9f7('0x3f')](handleError(_0x16ae79,null));};exports['update']=function(_0x53c92b,_0x16998d){if(_0x53c92b[_0xc9f7('0x42')]['id']){delete _0x53c92b[_0xc9f7('0x42')]['id'];}return db[_0xc9f7('0x2c')][_0xc9f7('0x43')]({'where':{'id':_0x53c92b[_0xc9f7('0x44')]['id']}})[_0xc9f7('0x26')](handleEntityNotFound(_0x16998d,null))['then'](saveUpdates(_0x53c92b[_0xc9f7('0x42')],null))[_0xc9f7('0x26')](respondWithResult(_0x16998d,null))[_0xc9f7('0x3f')](handleError(_0x16998d,null));};exports['destroy']=function(_0x5a7b0c,_0x39a9e0){return db['MailServerOut'][_0xc9f7('0x43')]({'where':{'id':_0x5a7b0c[_0xc9f7('0x44')]['id']}})[_0xc9f7('0x26')](handleEntityNotFound(_0x39a9e0,null))[_0xc9f7('0x26')](removeEntity(_0x39a9e0,null))['catch'](handleError(_0x39a9e0,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1285=['./mailServerOut.attributes','exports','define','MailServerOut','lodash','util','../../config/logger','moment','request-promise','path','rimraf','../../config/environment'];(function(_0x4243a3,_0x447337){var _0x1b2a33=function(_0x6a8200){while(--_0x6a8200){_0x4243a3['push'](_0x4243a3['shift']());}};_0x1b2a33(++_0x447337);}(_0x1285,0xc4));var _0x5128=function(_0x9f99db,_0x3da21d){_0x9f99db=_0x9f99db-0x0;var _0x56196e=_0x1285[_0x9f99db];return _0x56196e;};'use strict';var _=require(_0x5128('0x0'));var util=require(_0x5128('0x1'));var logger=require(_0x5128('0x2'))('api');var moment=require(_0x5128('0x3'));var BPromise=require('bluebird');var rp=require(_0x5128('0x4'));var fs=require('fs');var path=require(_0x5128('0x5'));var rimraf=require(_0x5128('0x6'));var config=require(_0x5128('0x7'));var attributes=require(_0x5128('0x8'));module[_0x5128('0x9')]=function(_0x44ca7c,_0x3bc999){return _0x44ca7c[_0x5128('0xa')](_0x5128('0xb'),attributes,{'tableName':'mail_servers_out','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x0ecc=['path','rimraf','../../config/environment','./mailServerOut.attributes','exports','MailServerOut','mail_servers_out','lodash','../../config/logger','api','bluebird'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x0ecc,0x75));var _0xc0ec=function(_0x110577,_0x171475){_0x110577=_0x110577-0x0;var _0x4a29ef=_0x0ecc[_0x110577];return _0x4a29ef;};'use strict';var _=require(_0xc0ec('0x0'));var util=require('util');var logger=require(_0xc0ec('0x1'))(_0xc0ec('0x2'));var moment=require('moment');var BPromise=require(_0xc0ec('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xc0ec('0x4'));var rimraf=require(_0xc0ec('0x5'));var config=require(_0xc0ec('0x6'));var attributes=require(_0xc0ec('0x7'));module[_0xc0ec('0x8')]=function(_0x20220e,_0x1205d5){return _0x20220e['define'](_0xc0ec('0x9'),attributes,{'tableName':_0xc0ec('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2ef3=['bluebird','randomstring','ioredis','../../config/utils','../../config/logger','../../config/environment','jayson/promise','request','then','info','MailServerOut,\x20%s,\x20%s','MailServerOut,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','catch','lodash','util','moment'];(function(_0x472257,_0x5aa307){var _0x13eaaf=function(_0x19cf21){while(--_0x19cf21){_0x472257['push'](_0x472257['shift']());}};_0x13eaaf(++_0x5aa307);}(_0x2ef3,0xba));var _0x32ef=function(_0x5387e7,_0x79f56d){_0x5387e7=_0x5387e7-0x0;var _0x1c94bf=_0x2ef3[_0x5387e7];return _0x1c94bf;};'use strict';var _=require(_0x32ef('0x0'));var util=require(_0x32ef('0x1'));var moment=require(_0x32ef('0x2'));var BPromise=require(_0x32ef('0x3'));var rs=require(_0x32ef('0x4'));var fs=require('fs');var Redis=require(_0x32ef('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0x32ef('0x6'));var logger=require(_0x32ef('0x7'))('rpc');var config=require(_0x32ef('0x8'));var jayson=require(_0x32ef('0x9'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x2c0089,_0x4bfcf8,_0x367c39){return new BPromise(function(_0x2fb8eb,_0x234863){return client[_0x32ef('0xa')](_0x2c0089,_0x367c39)[_0x32ef('0xb')](function(_0x2bbb50){logger[_0x32ef('0xc')](_0x32ef('0xd'),_0x4bfcf8,'request\x20sent');logger['debug'](_0x32ef('0xe'),_0x4bfcf8,_0x32ef('0xf'),JSON[_0x32ef('0x10')](_0x2bbb50));if(_0x2bbb50[_0x32ef('0x11')]){if(_0x2bbb50['error'][_0x32ef('0x12')]===0x1f4){logger['error'](_0x32ef('0xd'),_0x4bfcf8,_0x2bbb50['error'][_0x32ef('0x13')]);return _0x234863(_0x2bbb50[_0x32ef('0x11')]['message']);}logger['error'](_0x32ef('0xd'),_0x4bfcf8,_0x2bbb50['error'][_0x32ef('0x13')]);return _0x2fb8eb(_0x2bbb50[_0x32ef('0x11')][_0x32ef('0x13')]);}else{logger[_0x32ef('0xc')]('MailServerOut,\x20%s,\x20%s',_0x4bfcf8,'request\x20sent');_0x2fb8eb(_0x2bbb50['result'][_0x32ef('0x13')]);}})[_0x32ef('0x14')](function(_0xb5aed2){logger['error']('MailServerOut,\x20%s,\x20%s',_0x4bfcf8,_0xb5aed2);_0x234863(_0xb5aed2);});});}
\ No newline at end of file
+var _0x7a54=['info','MailServerOut,\x20%s,\x20%s','debug','stringify','error','code','message','request\x20sent','result','catch','lodash','util','moment','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http'];(function(_0x397e5f,_0x454c8f){var _0x5302b8=function(_0x1a29ef){while(--_0x1a29ef){_0x397e5f['push'](_0x397e5f['shift']());}};_0x5302b8(++_0x454c8f);}(_0x7a54,0x106));var _0x47a5=function(_0x4d5f2d,_0x4fc3fc){_0x4d5f2d=_0x4d5f2d-0x0;var _0x56ba73=_0x7a54[_0x4d5f2d];return _0x56ba73;};'use strict';var _=require(_0x47a5('0x0'));var util=require(_0x47a5('0x1'));var moment=require(_0x47a5('0x2'));var BPromise=require('bluebird');var rs=require(_0x47a5('0x3'));var fs=require('fs');var Redis=require(_0x47a5('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x47a5('0x5'));var logger=require(_0x47a5('0x6'))(_0x47a5('0x7'));var config=require(_0x47a5('0x8'));var jayson=require(_0x47a5('0x9'));var client=jayson['client'][_0x47a5('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x59199c,_0x343372,_0x30e405){return new BPromise(function(_0x506eda,_0x194fb0){return client['request'](_0x59199c,_0x30e405)['then'](function(_0x582352){logger[_0x47a5('0xb')](_0x47a5('0xc'),_0x343372,'request\x20sent');logger[_0x47a5('0xd')]('MailServerOut,\x20%s,\x20%s,\x20%s',_0x343372,'request\x20sent',JSON[_0x47a5('0xe')](_0x582352));if(_0x582352[_0x47a5('0xf')]){if(_0x582352[_0x47a5('0xf')][_0x47a5('0x10')]===0x1f4){logger[_0x47a5('0xf')](_0x47a5('0xc'),_0x343372,_0x582352[_0x47a5('0xf')]['message']);return _0x194fb0(_0x582352[_0x47a5('0xf')][_0x47a5('0x11')]);}logger[_0x47a5('0xf')](_0x47a5('0xc'),_0x343372,_0x582352[_0x47a5('0xf')][_0x47a5('0x11')]);return _0x506eda(_0x582352[_0x47a5('0xf')][_0x47a5('0x11')]);}else{logger['info'](_0x47a5('0xc'),_0x343372,_0x47a5('0x12'));_0x506eda(_0x582352[_0x47a5('0x13')][_0x47a5('0x11')]);}})[_0x47a5('0x14')](function(_0x574af6){logger['error'](_0x47a5('0xc'),_0x343372,_0x574af6);_0x194fb0(_0x574af6);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd9c6=['describe','/:id','create','put','delete','exports','util','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','get','isAuthenticated','/describe'];(function(_0x49cdad,_0xdf6048){var _0x4c8112=function(_0x3d7336){while(--_0x3d7336){_0x49cdad['push'](_0x49cdad['shift']());}};_0x4c8112(++_0xdf6048);}(_0xd9c6,0x19e));var _0x6d9c=function(_0x2eface,_0xe06a7f){_0x2eface=_0x2eface-0x0;var _0x42bd1f=_0xd9c6[_0x2eface];return _0x42bd1f;};'use strict';var multer=require('multer');var util=require(_0x6d9c('0x0'));var path=require(_0x6d9c('0x1'));var timeout=require(_0x6d9c('0x2'));var express=require(_0x6d9c('0x3'));var router=express[_0x6d9c('0x4')]();var fs_extra=require(_0x6d9c('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x6d9c('0x6'));var config=require(_0x6d9c('0x7'));var controller=require('./mailSubstatus.controller');router[_0x6d9c('0x8')]('/',auth[_0x6d9c('0x9')](),controller['index']);router['get'](_0x6d9c('0xa'),auth[_0x6d9c('0x9')](),controller[_0x6d9c('0xb')]);router['get'](_0x6d9c('0xc'),auth[_0x6d9c('0x9')](),controller['show']);router['post']('/',auth['isAuthenticated'](),controller[_0x6d9c('0xd')]);router[_0x6d9c('0xe')](_0x6d9c('0xc'),auth[_0x6d9c('0x9')](),controller['update']);router[_0x6d9c('0xf')](_0x6d9c('0xc'),auth[_0x6d9c('0x9')](),controller['destroy']);module[_0x6d9c('0x10')]=router;
\ No newline at end of file
+var _0x169a=['path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./mailSubstatus.controller','index','get','/describe','describe','/:id','show','isAuthenticated','create','put','destroy','exports','multer','util'];(function(_0x47d821,_0x12a6de){var _0x1e3f61=function(_0x11a51b){while(--_0x11a51b){_0x47d821['push'](_0x47d821['shift']());}};_0x1e3f61(++_0x12a6de);}(_0x169a,0x1b7));var _0xa169=function(_0x2e8971,_0x4933b6){_0x2e8971=_0x2e8971-0x0;var _0x114f83=_0x169a[_0x2e8971];return _0x114f83;};'use strict';var multer=require(_0xa169('0x0'));var util=require(_0xa169('0x1'));var path=require(_0xa169('0x2'));var timeout=require(_0xa169('0x3'));var express=require(_0xa169('0x4'));var router=express[_0xa169('0x5')]();var fs_extra=require('fs-extra');var auth=require(_0xa169('0x6'));var interaction=require(_0xa169('0x7'));var config=require(_0xa169('0x8'));var controller=require(_0xa169('0x9'));router['get']('/',auth['isAuthenticated'](),controller[_0xa169('0xa')]);router[_0xa169('0xb')](_0xa169('0xc'),auth['isAuthenticated'](),controller[_0xa169('0xd')]);router[_0xa169('0xb')](_0xa169('0xe'),auth['isAuthenticated'](),controller[_0xa169('0xf')]);router['post']('/',auth[_0xa169('0x10')](),controller[_0xa169('0x11')]);router[_0xa169('0x12')](_0xa169('0xe'),auth[_0xa169('0x10')](),controller['update']);router['delete'](_0xa169('0xe'),auth[_0xa169('0x10')](),controller[_0xa169('0x13')]);module[_0xa169('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x446c=['STRING','name','sequelize','exports'];(function(_0x532056,_0x22ac60){var _0x244f83=function(_0x525ede){while(--_0x525ede){_0x532056['push'](_0x532056['shift']());}};_0x244f83(++_0x22ac60);}(_0x446c,0x156));var _0xc446=function(_0x5093e9,_0x5154d0){_0x5093e9=_0x5093e9-0x0;var _0x4c9a22=_0x446c[_0x5093e9];return _0x4c9a22;};'use strict';var Sequelize=require(_0xc446('0x0'));module[_0xc446('0x1')]={'name':{'type':Sequelize[_0xc446('0x2')],'unique':_0xc446('0x3'),'allowNull':![],'validate':{'notEmpty':!![]}},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0xe3da=['name','sequelize','exports','STRING'];(function(_0x545153,_0x4cb575){var _0x370f6b=function(_0x159c36){while(--_0x159c36){_0x545153['push'](_0x545153['shift']());}};_0x370f6b(++_0x4cb575);}(_0xe3da,0x1cd));var _0xae3d=function(_0x40a045,_0x516f0e){_0x40a045=_0x40a045-0x0;var _0x1a687c=_0xe3da[_0x40a045];return _0x1a687c;};'use strict';var Sequelize=require(_0xae3d('0x0'));module[_0xae3d('0x1')]={'name':{'type':Sequelize[_0xae3d('0x2')],'unique':_0xae3d('0x3'),'allowNull':![],'validate':{'notEmpty':!![]}},'description':{'type':Sequelize[_0xae3d('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcf4b=['include','rows','catch','show','params','options','find','create','body','describe','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','fs-extra','lodash','squel','crypto','jsforce','querystring','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','end','status','json','undefined','count','offset','limit','set','Content-Range','apply','reject','update','then','destroy','sendStatus','stack','name','send','MailSubstatus','rawAttributes','fieldName','type','key','model','map','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','query','order','sort','pick','filter','where','merge','VIRTUAL','includeAll'];(function(_0x1ba228,_0x1b8703){var _0x1b95f4=function(_0x91e1db){while(--_0x91e1db){_0x1ba228['push'](_0x1ba228['shift']());}};_0x1b95f4(++_0x1b8703);}(_0xcf4b,0xa2));var _0xbcf4=function(_0x407c64,_0x54ded7){_0x407c64=_0x407c64-0x0;var _0x209677=_0xcf4b[_0x407c64];return _0x209677;};'use strict';var emlformat=require(_0xbcf4('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xbcf4('0x1'));var jsonpatch=require(_0xbcf4('0x2'));var rp=require(_0xbcf4('0x3'));var moment=require(_0xbcf4('0x4'));var BPromise=require(_0xbcf4('0x5'));var Mustache=require(_0xbcf4('0x6'));var util=require(_0xbcf4('0x7'));var path=require(_0xbcf4('0x8'));var sox=require(_0xbcf4('0x9'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xbcf4('0xa'));var _=require(_0xbcf4('0xb'));var squel=require(_0xbcf4('0xc'));var crypto=require(_0xbcf4('0xd'));var jsforce=require(_0xbcf4('0xe'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0xbcf4('0xf'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xbcf4('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0xbcf4('0x11'));var hardwareService=require(_0xbcf4('0x12'));var logger=require(_0xbcf4('0x13'))(_0xbcf4('0x14'));var utils=require(_0xbcf4('0x15'));var config=require(_0xbcf4('0x16'));var licenseUtil=require(_0xbcf4('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x5d2052,_0x456388){_0x456388=_0x456388||0xcc;return function(_0x34a9e2){if(_0x34a9e2){return _0x5d2052['sendStatus'](_0x456388);}return _0x5d2052['status'](_0x456388)[_0xbcf4('0x18')]();};}function respondWithResult(_0x5ba97d,_0x1ed138){_0x1ed138=_0x1ed138||0xc8;return function(_0x20d050){if(_0x20d050){return _0x5ba97d[_0xbcf4('0x19')](_0x1ed138)[_0xbcf4('0x1a')](_0x20d050);}};}function respondWithFilteredResult(_0x2c056b,_0x5ce447){return function(_0x154683){if(_0x154683){var _0x3788af=typeof _0x5ce447['offset']===_0xbcf4('0x1b')&&typeof _0x5ce447['limit']===_0xbcf4('0x1b');var _0x41763f=_0x154683[_0xbcf4('0x1c')];var _0x10c57c=_0x3788af?0x0:_0x5ce447['offset'];var _0x59f010=_0x3788af?_0x154683[_0xbcf4('0x1c')]:_0x5ce447[_0xbcf4('0x1d')]+_0x5ce447[_0xbcf4('0x1e')];var _0x2dfda0;if(_0x59f010>=_0x41763f){_0x59f010=_0x41763f;_0x2dfda0=0xc8;}else{_0x2dfda0=0xce;}_0x2c056b[_0xbcf4('0x19')](_0x2dfda0);return _0x2c056b[_0xbcf4('0x1f')](_0xbcf4('0x20'),_0x10c57c+'-'+_0x59f010+'/'+_0x41763f)[_0xbcf4('0x1a')](_0x154683);}return null;};}function patchUpdates(_0x61f571){return function(_0x40b195){try{jsonpatch[_0xbcf4('0x21')](_0x40b195,_0x61f571,!![]);}catch(_0x373039){return BPromise[_0xbcf4('0x22')](_0x373039);}return _0x40b195['save']();};}function saveUpdates(_0xcc7f98,_0x3d953e){return function(_0x4fb33f){if(_0x4fb33f){return _0x4fb33f[_0xbcf4('0x23')](_0xcc7f98)[_0xbcf4('0x24')](function(_0x3a4033){return _0x3a4033;});}return null;};}function removeEntity(_0x5c63f8,_0x23cbfb){return function(_0x151feb){if(_0x151feb){return _0x151feb[_0xbcf4('0x25')]()[_0xbcf4('0x24')](function(){_0x5c63f8[_0xbcf4('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x3e3c46,_0xf55b6e){return function(_0x280471){if(!_0x280471){_0x3e3c46[_0xbcf4('0x26')](0x194);}return _0x280471;};}function handleError(_0x45578f,_0x2ec071){_0x2ec071=_0x2ec071||0x1f4;return function(_0x1c1c34){logger['error'](_0x1c1c34[_0xbcf4('0x27')]);if(_0x1c1c34['name']){delete _0x1c1c34[_0xbcf4('0x28')];}_0x45578f['status'](_0x2ec071)[_0xbcf4('0x29')](_0x1c1c34);};}exports['index']=function(_0x68343b,_0x763909){var _0x5aea6a={},_0x3efc71={},_0x53330f={'count':0x0,'rows':[]};var _0xbb8369=_['map'](db[_0xbcf4('0x2a')][_0xbcf4('0x2b')],function(_0x5b965a){return{'name':_0x5b965a[_0xbcf4('0x2c')],'type':_0x5b965a[_0xbcf4('0x2d')][_0xbcf4('0x2e')]};});_0x3efc71[_0xbcf4('0x2f')]=_[_0xbcf4('0x30')](_0xbb8369,_0xbcf4('0x28'));_0x3efc71['query']=_[_0xbcf4('0x31')](_0x68343b['query']);_0x3efc71[_0xbcf4('0x32')]=_[_0xbcf4('0x33')](_0x3efc71[_0xbcf4('0x2f')],_0x3efc71['query']);_0x5aea6a[_0xbcf4('0x34')]=_[_0xbcf4('0x33')](_0x3efc71[_0xbcf4('0x2f')],qs[_0xbcf4('0x35')](_0x68343b['query'][_0xbcf4('0x35')]));_0x5aea6a[_0xbcf4('0x34')]=_0x5aea6a[_0xbcf4('0x34')][_0xbcf4('0x36')]?_0x5aea6a['attributes']:_0x3efc71['model'];if(!_0x68343b['query'][_0xbcf4('0x37')](_0xbcf4('0x38'))){_0x5aea6a[_0xbcf4('0x1e')]=qs[_0xbcf4('0x1e')](_0x68343b[_0xbcf4('0x39')][_0xbcf4('0x1e')]);_0x5aea6a[_0xbcf4('0x1d')]=qs['offset'](_0x68343b[_0xbcf4('0x39')]['offset']);}_0x5aea6a[_0xbcf4('0x3a')]=qs[_0xbcf4('0x3b')](_0x68343b[_0xbcf4('0x39')]['sort']);_0x5aea6a['where']=qs[_0xbcf4('0x32')](_[_0xbcf4('0x3c')](_0x68343b['query'],_0x3efc71['filters']),_0xbb8369);if(_0x68343b[_0xbcf4('0x39')][_0xbcf4('0x3d')]){_0x5aea6a[_0xbcf4('0x3e')]=_[_0xbcf4('0x3f')](_0x5aea6a[_0xbcf4('0x3e')],{'$or':_['map'](_0xbb8369,function(_0x4ed4a1){if(_0x4ed4a1['type']!==_0xbcf4('0x40')){var _0x8feec4={};_0x8feec4[_0x4ed4a1[_0xbcf4('0x28')]]={'$like':'%'+_0x68343b[_0xbcf4('0x39')][_0xbcf4('0x3d')]+'%'};return _0x8feec4;}})});}_0x5aea6a=_[_0xbcf4('0x3f')]({},_0x5aea6a,_0x68343b['options']);var _0x527abe={'where':_0x5aea6a[_0xbcf4('0x3e')]};return db[_0xbcf4('0x2a')][_0xbcf4('0x1c')](_0x527abe)[_0xbcf4('0x24')](function(_0x57b500){_0x53330f[_0xbcf4('0x1c')]=_0x57b500;if(_0x68343b[_0xbcf4('0x39')][_0xbcf4('0x41')]){_0x5aea6a[_0xbcf4('0x42')]=[{'all':!![]}];}return db[_0xbcf4('0x2a')]['findAll'](_0x5aea6a);})[_0xbcf4('0x24')](function(_0x8b823d){_0x53330f[_0xbcf4('0x43')]=_0x8b823d;return _0x53330f;})[_0xbcf4('0x24')](respondWithFilteredResult(_0x763909,_0x5aea6a))[_0xbcf4('0x44')](handleError(_0x763909,null));};exports[_0xbcf4('0x45')]=function(_0x2256d3,_0x194deb){var _0x28b2d1={'raw':!![],'where':{'id':_0x2256d3[_0xbcf4('0x46')]['id']}},_0x47f8a4={};_0x47f8a4[_0xbcf4('0x2f')]=_['keys'](db['MailSubstatus']['rawAttributes']);_0x47f8a4['query']=_[_0xbcf4('0x31')](_0x2256d3[_0xbcf4('0x39')]);_0x47f8a4[_0xbcf4('0x32')]=_[_0xbcf4('0x33')](_0x47f8a4[_0xbcf4('0x2f')],_0x47f8a4['query']);_0x28b2d1['attributes']=_[_0xbcf4('0x33')](_0x47f8a4[_0xbcf4('0x2f')],qs['fields'](_0x2256d3[_0xbcf4('0x39')]['fields']));_0x28b2d1[_0xbcf4('0x34')]=_0x28b2d1['attributes']['length']?_0x28b2d1[_0xbcf4('0x34')]:_0x47f8a4[_0xbcf4('0x2f')];if(_0x2256d3[_0xbcf4('0x39')][_0xbcf4('0x41')]){_0x28b2d1[_0xbcf4('0x42')]=[{'all':!![]}];}_0x28b2d1=_[_0xbcf4('0x3f')]({},_0x28b2d1,_0x2256d3[_0xbcf4('0x47')]);return db[_0xbcf4('0x2a')][_0xbcf4('0x48')](_0x28b2d1)[_0xbcf4('0x24')](handleEntityNotFound(_0x194deb,null))['then'](respondWithResult(_0x194deb,null))[_0xbcf4('0x44')](handleError(_0x194deb,null));};exports[_0xbcf4('0x49')]=function(_0x2811e4,_0xa29508){return db[_0xbcf4('0x2a')]['create'](_0x2811e4[_0xbcf4('0x4a')],{})['then'](respondWithResult(_0xa29508,0xc9))['catch'](handleError(_0xa29508,null));};exports['update']=function(_0x5b23d4,_0x25e054){if(_0x5b23d4['body']['id']){delete _0x5b23d4[_0xbcf4('0x4a')]['id'];}return db['MailSubstatus']['find']({'where':{'id':_0x5b23d4['params']['id']}})[_0xbcf4('0x24')](handleEntityNotFound(_0x25e054,null))[_0xbcf4('0x24')](saveUpdates(_0x5b23d4[_0xbcf4('0x4a')],null))[_0xbcf4('0x24')](respondWithResult(_0x25e054,null))[_0xbcf4('0x44')](handleError(_0x25e054,null));};exports[_0xbcf4('0x25')]=function(_0xe715b1,_0xd2e0ac){return db[_0xbcf4('0x2a')][_0xbcf4('0x48')]({'where':{'id':_0xe715b1['params']['id']}})['then'](handleEntityNotFound(_0xd2e0ac,null))[_0xbcf4('0x24')](removeEntity(_0xd2e0ac,null))[_0xbcf4('0x44')](handleError(_0xd2e0ac,null));};exports[_0xbcf4('0x4b')]=function(_0x1937ca,_0x2a4dbb){return db[_0xbcf4('0x2a')][_0xbcf4('0x4b')]()['then'](respondWithResult(_0x2a4dbb,null))[_0xbcf4('0x44')](handleError(_0x2a4dbb,null));};
\ No newline at end of file
+var _0xdb43=['rows','show','find','catch','create','body','params','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../config/logger','../../config/utils','../../config/license/util','sendStatus','status','end','json','offset','limit','count','set','apply','reject','update','then','destroy','error','stack','name','send','index','map','MailSubstatus','rawAttributes','fieldName','key','model','keys','query','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','type','merge','options','includeAll','include','findAll'];(function(_0x363887,_0x4f5e81){var _0x3dbf=function(_0x35a9b2){while(--_0x35a9b2){_0x363887['push'](_0x363887['shift']());}};_0x3dbf(++_0x4f5e81);}(_0xdb43,0x9e));var _0x3db4=function(_0x1ccdf7,_0x215d5a){_0x1ccdf7=_0x1ccdf7-0x0;var _0x52a0ae=_0xdb43[_0x1ccdf7];return _0x52a0ae;};'use strict';var emlformat=require(_0x3db4('0x0'));var rimraf=require(_0x3db4('0x1'));var zipdir=require(_0x3db4('0x2'));var jsonpatch=require(_0x3db4('0x3'));var rp=require(_0x3db4('0x4'));var moment=require(_0x3db4('0x5'));var BPromise=require(_0x3db4('0x6'));var Mustache=require('mustache');var util=require(_0x3db4('0x7'));var path=require(_0x3db4('0x8'));var sox=require(_0x3db4('0x9'));var csv=require(_0x3db4('0xa'));var ejs=require(_0x3db4('0xb'));var fs=require('fs');var fs_extra=require(_0x3db4('0xc'));var _=require(_0x3db4('0xd'));var squel=require(_0x3db4('0xe'));var crypto=require(_0x3db4('0xf'));var jsforce=require(_0x3db4('0x10'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x3db4('0x11'));var Papa=require(_0x3db4('0x12'));var Redis=require(_0x3db4('0x13'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x3db4('0x14'))('api');var utils=require(_0x3db4('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0x3db4('0x16'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x243954,_0x1f5c8e){_0x1f5c8e=_0x1f5c8e||0xcc;return function(_0x4b7a4b){if(_0x4b7a4b){return _0x243954[_0x3db4('0x17')](_0x1f5c8e);}return _0x243954[_0x3db4('0x18')](_0x1f5c8e)[_0x3db4('0x19')]();};}function respondWithResult(_0x344939,_0x2d8131){_0x2d8131=_0x2d8131||0xc8;return function(_0x210dc7){if(_0x210dc7){return _0x344939[_0x3db4('0x18')](_0x2d8131)[_0x3db4('0x1a')](_0x210dc7);}};}function respondWithFilteredResult(_0x480dd8,_0x1a4e86){return function(_0x1c27ec){if(_0x1c27ec){var _0x4e68cf=typeof _0x1a4e86[_0x3db4('0x1b')]==='undefined'&&typeof _0x1a4e86[_0x3db4('0x1c')]==='undefined';var _0x146ed3=_0x1c27ec['count'];var _0x3f537d=_0x4e68cf?0x0:_0x1a4e86[_0x3db4('0x1b')];var _0xd326be=_0x4e68cf?_0x1c27ec[_0x3db4('0x1d')]:_0x1a4e86[_0x3db4('0x1b')]+_0x1a4e86[_0x3db4('0x1c')];var _0x1a3059;if(_0xd326be>=_0x146ed3){_0xd326be=_0x146ed3;_0x1a3059=0xc8;}else{_0x1a3059=0xce;}_0x480dd8['status'](_0x1a3059);return _0x480dd8[_0x3db4('0x1e')]('Content-Range',_0x3f537d+'-'+_0xd326be+'/'+_0x146ed3)[_0x3db4('0x1a')](_0x1c27ec);}return null;};}function patchUpdates(_0x2b37dc){return function(_0x4abb4b){try{jsonpatch[_0x3db4('0x1f')](_0x4abb4b,_0x2b37dc,!![]);}catch(_0xd1d426){return BPromise[_0x3db4('0x20')](_0xd1d426);}return _0x4abb4b['save']();};}function saveUpdates(_0x582af0,_0x199d43){return function(_0x589c33){if(_0x589c33){return _0x589c33[_0x3db4('0x21')](_0x582af0)[_0x3db4('0x22')](function(_0x2cdd7d){return _0x2cdd7d;});}return null;};}function removeEntity(_0x243651,_0x26ad61){return function(_0x129758){if(_0x129758){return _0x129758[_0x3db4('0x23')]()[_0x3db4('0x22')](function(){_0x243651[_0x3db4('0x18')](0xcc)[_0x3db4('0x19')]();});}};}function handleEntityNotFound(_0x4b606c,_0x3b1e2d){return function(_0xaf6653){if(!_0xaf6653){_0x4b606c['sendStatus'](0x194);}return _0xaf6653;};}function handleError(_0x1c2012,_0x1ce22e){_0x1ce22e=_0x1ce22e||0x1f4;return function(_0x5cd79e){logger[_0x3db4('0x24')](_0x5cd79e[_0x3db4('0x25')]);if(_0x5cd79e[_0x3db4('0x26')]){delete _0x5cd79e[_0x3db4('0x26')];}_0x1c2012[_0x3db4('0x18')](_0x1ce22e)[_0x3db4('0x27')](_0x5cd79e);};}exports[_0x3db4('0x28')]=function(_0x4d4224,_0x81421f){var _0x161f04={},_0x42166b={},_0x3a9a99={'count':0x0,'rows':[]};var _0x23156d=_[_0x3db4('0x29')](db[_0x3db4('0x2a')][_0x3db4('0x2b')],function(_0xd8e899){return{'name':_0xd8e899[_0x3db4('0x2c')],'type':_0xd8e899['type'][_0x3db4('0x2d')]};});_0x42166b[_0x3db4('0x2e')]=_[_0x3db4('0x29')](_0x23156d,_0x3db4('0x26'));_0x42166b['query']=_[_0x3db4('0x2f')](_0x4d4224[_0x3db4('0x30')]);_0x42166b[_0x3db4('0x31')]=_[_0x3db4('0x32')](_0x42166b[_0x3db4('0x2e')],_0x42166b[_0x3db4('0x30')]);_0x161f04['attributes']=_['intersection'](_0x42166b[_0x3db4('0x2e')],qs[_0x3db4('0x33')](_0x4d4224[_0x3db4('0x30')]['fields']));_0x161f04[_0x3db4('0x34')]=_0x161f04[_0x3db4('0x34')][_0x3db4('0x35')]?_0x161f04[_0x3db4('0x34')]:_0x42166b[_0x3db4('0x2e')];if(!_0x4d4224[_0x3db4('0x30')][_0x3db4('0x36')](_0x3db4('0x37'))){_0x161f04[_0x3db4('0x1c')]=qs['limit'](_0x4d4224[_0x3db4('0x30')][_0x3db4('0x1c')]);_0x161f04[_0x3db4('0x1b')]=qs[_0x3db4('0x1b')](_0x4d4224[_0x3db4('0x30')][_0x3db4('0x1b')]);}_0x161f04[_0x3db4('0x38')]=qs[_0x3db4('0x39')](_0x4d4224[_0x3db4('0x30')][_0x3db4('0x39')]);_0x161f04[_0x3db4('0x3a')]=qs[_0x3db4('0x31')](_[_0x3db4('0x3b')](_0x4d4224[_0x3db4('0x30')],_0x42166b[_0x3db4('0x31')]),_0x23156d);if(_0x4d4224[_0x3db4('0x30')][_0x3db4('0x3c')]){_0x161f04[_0x3db4('0x3a')]=_['merge'](_0x161f04[_0x3db4('0x3a')],{'$or':_[_0x3db4('0x29')](_0x23156d,function(_0x2c82bd){if(_0x2c82bd[_0x3db4('0x3d')]!=='VIRTUAL'){var _0x30e7e7={};_0x30e7e7[_0x2c82bd[_0x3db4('0x26')]]={'$like':'%'+_0x4d4224[_0x3db4('0x30')]['filter']+'%'};return _0x30e7e7;}})});}_0x161f04=_[_0x3db4('0x3e')]({},_0x161f04,_0x4d4224[_0x3db4('0x3f')]);var _0xc21489={'where':_0x161f04[_0x3db4('0x3a')]};return db['MailSubstatus']['count'](_0xc21489)[_0x3db4('0x22')](function(_0x44a762){_0x3a9a99[_0x3db4('0x1d')]=_0x44a762;if(_0x4d4224[_0x3db4('0x30')][_0x3db4('0x40')]){_0x161f04[_0x3db4('0x41')]=[{'all':!![]}];}return db[_0x3db4('0x2a')][_0x3db4('0x42')](_0x161f04);})[_0x3db4('0x22')](function(_0x1fc246){_0x3a9a99[_0x3db4('0x43')]=_0x1fc246;return _0x3a9a99;})[_0x3db4('0x22')](respondWithFilteredResult(_0x81421f,_0x161f04))['catch'](handleError(_0x81421f,null));};exports[_0x3db4('0x44')]=function(_0x500f1f,_0x348479){var _0x59f8a4={'raw':!![],'where':{'id':_0x500f1f['params']['id']}},_0x2a36eb={};_0x2a36eb[_0x3db4('0x2e')]=_['keys'](db[_0x3db4('0x2a')][_0x3db4('0x2b')]);_0x2a36eb['query']=_['keys'](_0x500f1f['query']);_0x2a36eb['filters']=_[_0x3db4('0x32')](_0x2a36eb[_0x3db4('0x2e')],_0x2a36eb[_0x3db4('0x30')]);_0x59f8a4[_0x3db4('0x34')]=_['intersection'](_0x2a36eb[_0x3db4('0x2e')],qs[_0x3db4('0x33')](_0x500f1f[_0x3db4('0x30')][_0x3db4('0x33')]));_0x59f8a4[_0x3db4('0x34')]=_0x59f8a4[_0x3db4('0x34')][_0x3db4('0x35')]?_0x59f8a4['attributes']:_0x2a36eb[_0x3db4('0x2e')];if(_0x500f1f[_0x3db4('0x30')]['includeAll']){_0x59f8a4[_0x3db4('0x41')]=[{'all':!![]}];}_0x59f8a4=_[_0x3db4('0x3e')]({},_0x59f8a4,_0x500f1f[_0x3db4('0x3f')]);return db[_0x3db4('0x2a')][_0x3db4('0x45')](_0x59f8a4)[_0x3db4('0x22')](handleEntityNotFound(_0x348479,null))[_0x3db4('0x22')](respondWithResult(_0x348479,null))[_0x3db4('0x46')](handleError(_0x348479,null));};exports[_0x3db4('0x47')]=function(_0x59d031,_0x1d3ad8){return db['MailSubstatus'][_0x3db4('0x47')](_0x59d031[_0x3db4('0x48')],{})[_0x3db4('0x22')](respondWithResult(_0x1d3ad8,0xc9))[_0x3db4('0x46')](handleError(_0x1d3ad8,null));};exports[_0x3db4('0x21')]=function(_0xbadbd8,_0x11049e){if(_0xbadbd8[_0x3db4('0x48')]['id']){delete _0xbadbd8['body']['id'];}return db[_0x3db4('0x2a')][_0x3db4('0x45')]({'where':{'id':_0xbadbd8['params']['id']}})[_0x3db4('0x22')](handleEntityNotFound(_0x11049e,null))[_0x3db4('0x22')](saveUpdates(_0xbadbd8[_0x3db4('0x48')],null))[_0x3db4('0x22')](respondWithResult(_0x11049e,null))[_0x3db4('0x46')](handleError(_0x11049e,null));};exports[_0x3db4('0x23')]=function(_0xc2312e,_0x3b1b08){return db[_0x3db4('0x2a')][_0x3db4('0x45')]({'where':{'id':_0xc2312e[_0x3db4('0x49')]['id']}})[_0x3db4('0x22')](handleEntityNotFound(_0x3b1b08,null))[_0x3db4('0x22')](removeEntity(_0x3b1b08,null))[_0x3db4('0x46')](handleError(_0x3b1b08,null));};exports[_0x3db4('0x4a')]=function(_0x21bede,_0x202f62){return db[_0x3db4('0x2a')]['describe']()[_0x3db4('0x22')](respondWithResult(_0x202f62,null))[_0x3db4('0x46')](handleError(_0x202f62,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9f8d=['util','../../config/logger','bluebird','request-promise','path','rimraf','../../config/environment','define','MailSubstatus','mail_substatuses','lodash'];(function(_0x337537,_0x4ea7b8){var _0x4fdd67=function(_0x59ad18){while(--_0x59ad18){_0x337537['push'](_0x337537['shift']());}};_0x4fdd67(++_0x4ea7b8);}(_0x9f8d,0x112));var _0xd9f8=function(_0xd3d6e2,_0x32170c){_0xd3d6e2=_0xd3d6e2-0x0;var _0x5c6f3f=_0x9f8d[_0xd3d6e2];return _0x5c6f3f;};'use strict';var _=require(_0xd9f8('0x0'));var util=require(_0xd9f8('0x1'));var logger=require(_0xd9f8('0x2'))('api');var moment=require('moment');var BPromise=require(_0xd9f8('0x3'));var rp=require(_0xd9f8('0x4'));var fs=require('fs');var path=require(_0xd9f8('0x5'));var rimraf=require(_0xd9f8('0x6'));var config=require(_0xd9f8('0x7'));var attributes=require('./mailSubstatus.attributes');module['exports']=function(_0x57f8d9,_0x5cf4b7){return _0x57f8d9[_0xd9f8('0x8')](_0xd9f8('0x9'),attributes,{'tableName':_0xd9f8('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xf663=['bluebird','request-promise','path','rimraf','./mailSubstatus.attributes','exports','mail_substatuses','util','api','moment'];(function(_0x3ec0a7,_0x57055a){var _0x354432=function(_0x52a3cf){while(--_0x52a3cf){_0x3ec0a7['push'](_0x3ec0a7['shift']());}};_0x354432(++_0x57055a);}(_0xf663,0x1a1));var _0x3f66=function(_0x305b93,_0x220608){_0x305b93=_0x305b93-0x0;var _0x2e02e9=_0xf663[_0x305b93];return _0x2e02e9;};'use strict';var _=require('lodash');var util=require(_0x3f66('0x0'));var logger=require('../../config/logger')(_0x3f66('0x1'));var moment=require(_0x3f66('0x2'));var BPromise=require(_0x3f66('0x3'));var rp=require(_0x3f66('0x4'));var fs=require('fs');var path=require(_0x3f66('0x5'));var rimraf=require(_0x3f66('0x6'));var config=require('../../config/environment');var attributes=require(_0x3f66('0x7'));module[_0x3f66('0x8')]=function(_0x5b24d5,_0x343231){return _0x5b24d5['define']('MailSubstatus',attributes,{'tableName':_0x3f66('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x243f=['client','http','request','then','info','debug','MailSubstatus,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','MailSubstatus,\x20%s,\x20%s','message','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','jayson/promise'];(function(_0x1afc73,_0x1e3ecb){var _0x23f0d2=function(_0x395b44){while(--_0x395b44){_0x1afc73['push'](_0x1afc73['shift']());}};_0x23f0d2(++_0x1e3ecb);}(_0x243f,0x186));var _0xf243=function(_0x216d45,_0x4989fe){_0x216d45=_0x216d45-0x0;var _0xbaac0b=_0x243f[_0x216d45];return _0xbaac0b;};'use strict';var _=require('lodash');var util=require(_0xf243('0x0'));var moment=require(_0xf243('0x1'));var BPromise=require(_0xf243('0x2'));var rs=require(_0xf243('0x3'));var fs=require('fs');var Redis=require(_0xf243('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0xf243('0x5'));var logger=require(_0xf243('0x6'))(_0xf243('0x7'));var config=require('../../config/environment');var jayson=require(_0xf243('0x8'));var client=jayson[_0xf243('0x9')][_0xf243('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x1bdd41,_0x4a62e1,_0x455904){return new BPromise(function(_0x1fca34,_0x35ca56){return client[_0xf243('0xb')](_0x1bdd41,_0x455904)[_0xf243('0xc')](function(_0x18c454){logger[_0xf243('0xd')]('MailSubstatus,\x20%s,\x20%s',_0x4a62e1,'request\x20sent');logger[_0xf243('0xe')](_0xf243('0xf'),_0x4a62e1,_0xf243('0x10'),JSON['stringify'](_0x18c454));if(_0x18c454[_0xf243('0x11')]){if(_0x18c454['error'][_0xf243('0x12')]===0x1f4){logger[_0xf243('0x11')](_0xf243('0x13'),_0x4a62e1,_0x18c454[_0xf243('0x11')][_0xf243('0x14')]);return _0x35ca56(_0x18c454[_0xf243('0x11')][_0xf243('0x14')]);}logger[_0xf243('0x11')](_0xf243('0x13'),_0x4a62e1,_0x18c454[_0xf243('0x11')][_0xf243('0x14')]);return _0x1fca34(_0x18c454[_0xf243('0x11')][_0xf243('0x14')]);}else{logger['info'](_0xf243('0x13'),_0x4a62e1,_0xf243('0x10'));_0x1fca34(_0x18c454['result'][_0xf243('0x14')]);}})['catch'](function(_0x4e20b6){logger[_0xf243('0x11')]('MailSubstatus,\x20%s,\x20%s',_0x4a62e1,_0x4e20b6);_0x35ca56(_0x4e20b6);});});}
\ No newline at end of file
+var _0x2c8c=['randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','http','request','then','info','MailSubstatus,\x20%s,\x20%s','request\x20sent','MailSubstatus,\x20%s,\x20%s,\x20%s','stringify','error','code','message','lodash','util','moment','bluebird'];(function(_0x5f1138,_0x35678c){var _0x28b295=function(_0x263c5b){while(--_0x263c5b){_0x5f1138['push'](_0x5f1138['shift']());}};_0x28b295(++_0x35678c);}(_0x2c8c,0x10d));var _0xc2c8=function(_0x33581f,_0x2ace42){_0x33581f=_0x33581f-0x0;var _0x367a49=_0x2c8c[_0x33581f];return _0x367a49;};'use strict';var _=require(_0xc2c8('0x0'));var util=require(_0xc2c8('0x1'));var moment=require(_0xc2c8('0x2'));var BPromise=require(_0xc2c8('0x3'));var rs=require(_0xc2c8('0x4'));var fs=require('fs');var Redis=require(_0xc2c8('0x5'));var db=require(_0xc2c8('0x6'))['db'];var utils=require('../../config/utils');var logger=require(_0xc2c8('0x7'))(_0xc2c8('0x8'));var config=require(_0xc2c8('0x9'));var jayson=require('jayson/promise');var client=jayson['client'][_0xc2c8('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x32944d,_0x5a832c,_0x3acdd2){return new BPromise(function(_0x3c13f8,_0x1d7260){return client[_0xc2c8('0xb')](_0x32944d,_0x3acdd2)[_0xc2c8('0xc')](function(_0x1064bd){logger[_0xc2c8('0xd')](_0xc2c8('0xe'),_0x5a832c,_0xc2c8('0xf'));logger['debug'](_0xc2c8('0x10'),_0x5a832c,_0xc2c8('0xf'),JSON[_0xc2c8('0x11')](_0x1064bd));if(_0x1064bd[_0xc2c8('0x12')]){if(_0x1064bd['error'][_0xc2c8('0x13')]===0x1f4){logger[_0xc2c8('0x12')](_0xc2c8('0xe'),_0x5a832c,_0x1064bd[_0xc2c8('0x12')][_0xc2c8('0x14')]);return _0x1d7260(_0x1064bd[_0xc2c8('0x12')]['message']);}logger[_0xc2c8('0x12')](_0xc2c8('0xe'),_0x5a832c,_0x1064bd[_0xc2c8('0x12')][_0xc2c8('0x14')]);return _0x3c13f8(_0x1064bd[_0xc2c8('0x12')][_0xc2c8('0x14')]);}else{logger[_0xc2c8('0xd')]('MailSubstatus,\x20%s,\x20%s',_0x5a832c,_0xc2c8('0xf'));_0x3c13f8(_0x1064bd['result'][_0xc2c8('0x14')]);}})['catch'](function(_0x5b8771){logger[_0xc2c8('0x12')]('MailSubstatus,\x20%s,\x20%s',_0x5a832c,_0x5b8771);_0x1d7260(_0x5b8771);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfe1f=['index','/describe','describe','/:id','post','put','update','delete','destroy','exports','util','path','express','Router','../../config/environment','./mailTransferReport.controller','get','isAuthenticated'];(function(_0x533aff,_0x27d0f2){var _0x25e4f7=function(_0x53f1f7){while(--_0x53f1f7){_0x533aff['push'](_0x533aff['shift']());}};_0x25e4f7(++_0x27d0f2);}(_0xfe1f,0x1de));var _0xffe1=function(_0x36bf46,_0x3d8db9){_0x36bf46=_0x36bf46-0x0;var _0x1d0a72=_0xfe1f[_0x36bf46];return _0x1d0a72;};'use strict';var multer=require('multer');var util=require(_0xffe1('0x0'));var path=require(_0xffe1('0x1'));var timeout=require('connect-timeout');var express=require(_0xffe1('0x2'));var router=express[_0xffe1('0x3')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0xffe1('0x4'));var controller=require(_0xffe1('0x5'));router[_0xffe1('0x6')]('/',auth[_0xffe1('0x7')](),controller[_0xffe1('0x8')]);router[_0xffe1('0x6')](_0xffe1('0x9'),auth['isAuthenticated'](),controller[_0xffe1('0xa')]);router[_0xffe1('0x6')](_0xffe1('0xb'),auth[_0xffe1('0x7')](),controller['show']);router[_0xffe1('0xc')]('/',auth[_0xffe1('0x7')](),controller['create']);router[_0xffe1('0xd')](_0xffe1('0xb'),auth['isAuthenticated'](),controller[_0xffe1('0xe')]);router[_0xffe1('0xf')]('/:id',auth[_0xffe1('0x7')](),controller[_0xffe1('0x10')]);module[_0xffe1('0x11')]=router;
\ No newline at end of file
+var _0xd2af=['/:id','show','post','create','update','delete','destroy','exports','multer','util','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./mailTransferReport.controller','isAuthenticated','index','describe','get'];(function(_0x5d6456,_0x58ecc7){var _0x4d66c1=function(_0x4335e3){while(--_0x4335e3){_0x5d6456['push'](_0x5d6456['shift']());}};_0x4d66c1(++_0x58ecc7);}(_0xd2af,0x1d4));var _0xfd2a=function(_0x22f85a,_0x195ed5){_0x22f85a=_0x22f85a-0x0;var _0xaa717=_0xd2af[_0x22f85a];return _0xaa717;};'use strict';var multer=require(_0xfd2a('0x0'));var util=require(_0xfd2a('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0xfd2a('0x2'));var router=express['Router']();var fs_extra=require(_0xfd2a('0x3'));var auth=require(_0xfd2a('0x4'));var interaction=require(_0xfd2a('0x5'));var config=require(_0xfd2a('0x6'));var controller=require(_0xfd2a('0x7'));router['get']('/',auth[_0xfd2a('0x8')](),controller[_0xfd2a('0x9')]);router['get']('/describe',auth[_0xfd2a('0x8')](),controller[_0xfd2a('0xa')]);router[_0xfd2a('0xb')](_0xfd2a('0xc'),auth['isAuthenticated'](),controller[_0xfd2a('0xd')]);router[_0xfd2a('0xe')]('/',auth[_0xfd2a('0x8')](),controller[_0xfd2a('0xf')]);router['put']('/:id',auth['isAuthenticated'](),controller[_0xfd2a('0x10')]);router[_0xfd2a('0x11')](_0xfd2a('0xc'),auth[_0xfd2a('0x8')](),controller[_0xfd2a('0x12')]);module[_0xfd2a('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['account','queue','DATE','NOW','moment','sequelize','exports'];(function(_0x2d873a,_0x4656a0){var _0x4e45b9=function(_0x4b331a){while(--_0x4b331a){_0x2d873a['push'](_0x2d873a['shift']());}};_0x4e45b9(++_0x4656a0);}(_0xa9e0,0x123));var _0x0a9e=function(_0x433a86,_0x175b5c){_0x433a86=_0x433a86-0x0;var _0x23000c=_0xa9e0[_0x433a86];return _0x23000c;};'use strict';var moment=require(_0x0a9e('0x0'));var Sequelize=require(_0x0a9e('0x1'));module[_0x0a9e('0x2')]={'uniqueid':{'type':Sequelize['STRING'],'allowNull':![]},'type':{'type':Sequelize['ENUM'](_0x0a9e('0x3'),'agent',_0x0a9e('0x4')),'allowNull':![],'defaultValue':_0x0a9e('0x4')},'transferredAt':{'type':Sequelize[_0x0a9e('0x5')],'allowNull':![],'defaultValue':Sequelize[_0x0a9e('0x6')]}};
\ No newline at end of file
+var _0xcb91=['STRING','ENUM','account','queue','NOW','exports'];(function(_0x1d9a93,_0x4c4ceb){var _0x266e93=function(_0x43f69b){while(--_0x43f69b){_0x1d9a93['push'](_0x1d9a93['shift']());}};_0x266e93(++_0x4c4ceb);}(_0xcb91,0x1a9));var _0x1cb9=function(_0x305c31,_0x466b17){_0x305c31=_0x305c31-0x0;var _0x17f39f=_0xcb91[_0x305c31];return _0x17f39f;};'use strict';var moment=require('moment');var Sequelize=require('sequelize');module[_0x1cb9('0x0')]={'uniqueid':{'type':Sequelize[_0x1cb9('0x1')],'allowNull':![]},'type':{'type':Sequelize[_0x1cb9('0x2')](_0x1cb9('0x3'),'agent',_0x1cb9('0x4')),'allowNull':![],'defaultValue':_0x1cb9('0x4')},'transferredAt':{'type':Sequelize['DATE'],'allowNull':![],'defaultValue':Sequelize[_0x1cb9('0x5')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe754=['bluebird','sox','to-csv','ejs','squel','crypto','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','sendStatus','status','offset','undefined','count','limit','set','json','apply','save','update','then','destroy','stack','name','send','map','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','MailTransferReport','include','rows','catch','show','params','options','find','create','body','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment'];(function(_0x24237f,_0x4cf32c){var _0x48298e=function(_0x3f7511){while(--_0x3f7511){_0x24237f['push'](_0x24237f['shift']());}};_0x48298e(++_0x4cf32c);}(_0xe754,0x158));var _0x4e75=function(_0x3c3045,_0x126f4c){_0x3c3045=_0x3c3045-0x0;var _0x1d6f8f=_0xe754[_0x3c3045];return _0x1d6f8f;};'use strict';var emlformat=require(_0x4e75('0x0'));var rimraf=require(_0x4e75('0x1'));var zipdir=require(_0x4e75('0x2'));var jsonpatch=require(_0x4e75('0x3'));var rp=require(_0x4e75('0x4'));var moment=require(_0x4e75('0x5'));var BPromise=require(_0x4e75('0x6'));var Mustache=require('mustache');var util=require('util');var path=require('path');var sox=require(_0x4e75('0x7'));var csv=require(_0x4e75('0x8'));var ejs=require(_0x4e75('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x4e75('0xa'));var crypto=require(_0x4e75('0xb'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x4e75('0xc'));var Papa=require(_0x4e75('0xd'));var Redis=require(_0x4e75('0xe'));var authService=require(_0x4e75('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0x4e75('0x10'));var hardwareService=require(_0x4e75('0x11'));var logger=require(_0x4e75('0x12'))('api');var utils=require(_0x4e75('0x13'));var config=require(_0x4e75('0x14'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x4eadfe,_0x17f082){_0x17f082=_0x17f082||0xcc;return function(_0x2a8a16){if(_0x2a8a16){return _0x4eadfe[_0x4e75('0x15')](_0x17f082);}return _0x4eadfe['status'](_0x17f082)['end']();};}function respondWithResult(_0x565159,_0x2c6150){_0x2c6150=_0x2c6150||0xc8;return function(_0x5d30a2){if(_0x5d30a2){return _0x565159[_0x4e75('0x16')](_0x2c6150)['json'](_0x5d30a2);}};}function respondWithFilteredResult(_0x4bb5eb,_0x119e00){return function(_0x3f225c){if(_0x3f225c){var _0x55d8ee=typeof _0x119e00[_0x4e75('0x17')]===_0x4e75('0x18')&&typeof _0x119e00['limit']===_0x4e75('0x18');var _0x349778=_0x3f225c[_0x4e75('0x19')];var _0x2161f2=_0x55d8ee?0x0:_0x119e00['offset'];var _0x440a24=_0x55d8ee?_0x3f225c[_0x4e75('0x19')]:_0x119e00[_0x4e75('0x17')]+_0x119e00[_0x4e75('0x1a')];var _0x69db50;if(_0x440a24>=_0x349778){_0x440a24=_0x349778;_0x69db50=0xc8;}else{_0x69db50=0xce;}_0x4bb5eb[_0x4e75('0x16')](_0x69db50);return _0x4bb5eb[_0x4e75('0x1b')]('Content-Range',_0x2161f2+'-'+_0x440a24+'/'+_0x349778)[_0x4e75('0x1c')](_0x3f225c);}return null;};}function patchUpdates(_0x116584){return function(_0x93f71e){try{jsonpatch[_0x4e75('0x1d')](_0x93f71e,_0x116584,!![]);}catch(_0x2c7781){return BPromise['reject'](_0x2c7781);}return _0x93f71e[_0x4e75('0x1e')]();};}function saveUpdates(_0x138de3,_0x31d352){return function(_0x179558){if(_0x179558){return _0x179558[_0x4e75('0x1f')](_0x138de3)[_0x4e75('0x20')](function(_0x3b2633){return _0x3b2633;});}return null;};}function removeEntity(_0x15d00b,_0x26ceb3){return function(_0xe514ec){if(_0xe514ec){return _0xe514ec[_0x4e75('0x21')]()[_0x4e75('0x20')](function(){_0x15d00b[_0x4e75('0x16')](0xcc)['end']();});}};}function handleEntityNotFound(_0xd94b62,_0x1a7daa){return function(_0x8f0f42){if(!_0x8f0f42){_0xd94b62[_0x4e75('0x15')](0x194);}return _0x8f0f42;};}function handleError(_0x35705b,_0x29e40b){_0x29e40b=_0x29e40b||0x1f4;return function(_0x4d61dd){logger['error'](_0x4d61dd[_0x4e75('0x22')]);if(_0x4d61dd[_0x4e75('0x23')]){delete _0x4d61dd[_0x4e75('0x23')];}_0x35705b[_0x4e75('0x16')](_0x29e40b)[_0x4e75('0x24')](_0x4d61dd);};}exports['index']=function(_0x3607da,_0x19c9cb){var _0x16f501={},_0x35a3fb={},_0x5d8bee={'count':0x0,'rows':[]};var _0x17316a=_[_0x4e75('0x25')](db['MailTransferReport'][_0x4e75('0x26')],function(_0x54b760){return{'name':_0x54b760[_0x4e75('0x27')],'type':_0x54b760[_0x4e75('0x28')][_0x4e75('0x29')]};});_0x35a3fb[_0x4e75('0x2a')]=_['map'](_0x17316a,_0x4e75('0x23'));_0x35a3fb['query']=_[_0x4e75('0x2b')](_0x3607da[_0x4e75('0x2c')]);_0x35a3fb[_0x4e75('0x2d')]=_[_0x4e75('0x2e')](_0x35a3fb[_0x4e75('0x2a')],_0x35a3fb['query']);_0x16f501[_0x4e75('0x2f')]=_[_0x4e75('0x2e')](_0x35a3fb[_0x4e75('0x2a')],qs[_0x4e75('0x30')](_0x3607da[_0x4e75('0x2c')][_0x4e75('0x30')]));_0x16f501[_0x4e75('0x2f')]=_0x16f501[_0x4e75('0x2f')][_0x4e75('0x31')]?_0x16f501['attributes']:_0x35a3fb['model'];if(!_0x3607da[_0x4e75('0x2c')][_0x4e75('0x32')](_0x4e75('0x33'))){_0x16f501[_0x4e75('0x1a')]=qs[_0x4e75('0x1a')](_0x3607da['query'][_0x4e75('0x1a')]);_0x16f501[_0x4e75('0x17')]=qs[_0x4e75('0x17')](_0x3607da[_0x4e75('0x2c')][_0x4e75('0x17')]);}_0x16f501[_0x4e75('0x34')]=qs[_0x4e75('0x35')](_0x3607da['query']['sort']);_0x16f501[_0x4e75('0x36')]=qs['filters'](_[_0x4e75('0x37')](_0x3607da['query'],_0x35a3fb[_0x4e75('0x2d')]),_0x17316a);if(_0x3607da['query'][_0x4e75('0x38')]){_0x16f501[_0x4e75('0x36')]=_[_0x4e75('0x39')](_0x16f501['where'],{'$or':_['map'](_0x17316a,function(_0x3bd7bf){if(_0x3bd7bf[_0x4e75('0x28')]!==_0x4e75('0x3a')){var _0x5cafe6={};_0x5cafe6[_0x3bd7bf['name']]={'$like':'%'+_0x3607da['query']['filter']+'%'};return _0x5cafe6;}})});}_0x16f501=_['merge']({},_0x16f501,_0x3607da['options']);var _0x89b57e={'where':_0x16f501[_0x4e75('0x36')]};return db[_0x4e75('0x3b')][_0x4e75('0x19')](_0x89b57e)[_0x4e75('0x20')](function(_0x5d19fb){_0x5d8bee['count']=_0x5d19fb;if(_0x3607da[_0x4e75('0x2c')]['includeAll']){_0x16f501[_0x4e75('0x3c')]=[{'all':!![]}];}return db[_0x4e75('0x3b')]['findAll'](_0x16f501);})[_0x4e75('0x20')](function(_0x57b3b3){_0x5d8bee[_0x4e75('0x3d')]=_0x57b3b3;return _0x5d8bee;})[_0x4e75('0x20')](respondWithFilteredResult(_0x19c9cb,_0x16f501))[_0x4e75('0x3e')](handleError(_0x19c9cb,null));};exports[_0x4e75('0x3f')]=function(_0xd1401e,_0x5a336b){var _0x590852={'raw':!![],'where':{'id':_0xd1401e[_0x4e75('0x40')]['id']}},_0x1e44ad={};_0x1e44ad[_0x4e75('0x2a')]=_['keys'](db[_0x4e75('0x3b')][_0x4e75('0x26')]);_0x1e44ad[_0x4e75('0x2c')]=_['keys'](_0xd1401e[_0x4e75('0x2c')]);_0x1e44ad[_0x4e75('0x2d')]=_[_0x4e75('0x2e')](_0x1e44ad[_0x4e75('0x2a')],_0x1e44ad['query']);_0x590852[_0x4e75('0x2f')]=_[_0x4e75('0x2e')](_0x1e44ad[_0x4e75('0x2a')],qs['fields'](_0xd1401e['query'][_0x4e75('0x30')]));_0x590852[_0x4e75('0x2f')]=_0x590852[_0x4e75('0x2f')][_0x4e75('0x31')]?_0x590852[_0x4e75('0x2f')]:_0x1e44ad[_0x4e75('0x2a')];if(_0xd1401e[_0x4e75('0x2c')]['includeAll']){_0x590852[_0x4e75('0x3c')]=[{'all':!![]}];}_0x590852=_[_0x4e75('0x39')]({},_0x590852,_0xd1401e[_0x4e75('0x41')]);return db[_0x4e75('0x3b')][_0x4e75('0x42')](_0x590852)[_0x4e75('0x20')](handleEntityNotFound(_0x5a336b,null))[_0x4e75('0x20')](respondWithResult(_0x5a336b,null))['catch'](handleError(_0x5a336b,null));};exports[_0x4e75('0x43')]=function(_0x3274d4,_0x4e2440){return db[_0x4e75('0x3b')][_0x4e75('0x43')](_0x3274d4['body'],{})[_0x4e75('0x20')](respondWithResult(_0x4e2440,0xc9))[_0x4e75('0x3e')](handleError(_0x4e2440,null));};exports[_0x4e75('0x1f')]=function(_0x15e4eb,_0x10064a){if(_0x15e4eb[_0x4e75('0x44')]['id']){delete _0x15e4eb[_0x4e75('0x44')]['id'];}return db['MailTransferReport'][_0x4e75('0x42')]({'where':{'id':_0x15e4eb[_0x4e75('0x40')]['id']}})[_0x4e75('0x20')](handleEntityNotFound(_0x10064a,null))[_0x4e75('0x20')](saveUpdates(_0x15e4eb['body'],null))[_0x4e75('0x20')](respondWithResult(_0x10064a,null))[_0x4e75('0x3e')](handleError(_0x10064a,null));};exports[_0x4e75('0x21')]=function(_0x249373,_0x211bb4){return db['MailTransferReport'][_0x4e75('0x42')]({'where':{'id':_0x249373[_0x4e75('0x40')]['id']}})[_0x4e75('0x20')](handleEntityNotFound(_0x211bb4,null))[_0x4e75('0x20')](removeEntity(_0x211bb4,null))[_0x4e75('0x3e')](handleError(_0x211bb4,null));};exports[_0x4e75('0x45')]=function(_0x179227,_0x123bcf){return db[_0x4e75('0x3b')][_0x4e75('0x45')]()[_0x4e75('0x20')](respondWithResult(_0x123bcf,null))[_0x4e75('0x3e')](handleError(_0x123bcf,null));};
\ No newline at end of file
+var _0xc43a=['send','index','map','MailTransferReport','rawAttributes','type','key','model','query','keys','filters','intersection','attributes','fields','length','nolimit','order','sort','where','filter','merge','VIRTUAL','includeAll','include','findAll','show','options','catch','body','find','params','describe','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','crypto','jsforce','desk.js','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../mysqldb','status','end','json','undefined','limit','count','offset','set','Content-Range','apply','update','then','destroy','sendStatus','error','name'];(function(_0x363c83,_0x32c92d){var _0x1545d4=function(_0xe04bda){while(--_0xe04bda){_0x363c83['push'](_0x363c83['shift']());}};_0x1545d4(++_0x32c92d);}(_0xc43a,0x188));var _0xac43=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xc43a[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0xac43('0x0'));var rimraf=require(_0xac43('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xac43('0x2'));var rp=require(_0xac43('0x3'));var moment=require(_0xac43('0x4'));var BPromise=require(_0xac43('0x5'));var Mustache=require('mustache');var util=require(_0xac43('0x6'));var path=require(_0xac43('0x7'));var sox=require(_0xac43('0x8'));var csv=require(_0xac43('0x9'));var ejs=require(_0xac43('0xa'));var fs=require('fs');var fs_extra=require(_0xac43('0xb'));var _=require('lodash');var squel=require('squel');var crypto=require(_0xac43('0xc'));var jsforce=require(_0xac43('0xd'));var deskjs=require(_0xac43('0xe'));var toCsv=require(_0xac43('0x9'));var querystring=require(_0xac43('0xf'));var Papa=require('papaparse');var Redis=require(_0xac43('0x10'));var authService=require('../../components/auth/service');var qs=require(_0xac43('0x11'));var as=require(_0xac43('0x12'));var hardwareService=require(_0xac43('0x13'));var logger=require('../../config/logger')(_0xac43('0x14'));var utils=require(_0xac43('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0xac43('0x16'));var db=require(_0xac43('0x17'))['db'];function respondWithStatusCode(_0x5d1bb5,_0x5334c8){_0x5334c8=_0x5334c8||0xcc;return function(_0x5f3d63){if(_0x5f3d63){return _0x5d1bb5['sendStatus'](_0x5334c8);}return _0x5d1bb5[_0xac43('0x18')](_0x5334c8)[_0xac43('0x19')]();};}function respondWithResult(_0x51dffd,_0x2a424f){_0x2a424f=_0x2a424f||0xc8;return function(_0x23be7c){if(_0x23be7c){return _0x51dffd[_0xac43('0x18')](_0x2a424f)[_0xac43('0x1a')](_0x23be7c);}};}function respondWithFilteredResult(_0x358ed0,_0x5d8aca){return function(_0x51b4ae){if(_0x51b4ae){var _0xbe7fec=typeof _0x5d8aca['offset']===_0xac43('0x1b')&&typeof _0x5d8aca[_0xac43('0x1c')]==='undefined';var _0x1ea6f5=_0x51b4ae[_0xac43('0x1d')];var _0x523759=_0xbe7fec?0x0:_0x5d8aca[_0xac43('0x1e')];var _0x189df8=_0xbe7fec?_0x51b4ae[_0xac43('0x1d')]:_0x5d8aca[_0xac43('0x1e')]+_0x5d8aca[_0xac43('0x1c')];var _0x1d3150;if(_0x189df8>=_0x1ea6f5){_0x189df8=_0x1ea6f5;_0x1d3150=0xc8;}else{_0x1d3150=0xce;}_0x358ed0[_0xac43('0x18')](_0x1d3150);return _0x358ed0[_0xac43('0x1f')](_0xac43('0x20'),_0x523759+'-'+_0x189df8+'/'+_0x1ea6f5)[_0xac43('0x1a')](_0x51b4ae);}return null;};}function patchUpdates(_0x458b67){return function(_0x5e40ac){try{jsonpatch[_0xac43('0x21')](_0x5e40ac,_0x458b67,!![]);}catch(_0x503049){return BPromise['reject'](_0x503049);}return _0x5e40ac['save']();};}function saveUpdates(_0x4cc152,_0x563e21){return function(_0x5ed73){if(_0x5ed73){return _0x5ed73[_0xac43('0x22')](_0x4cc152)[_0xac43('0x23')](function(_0x20e026){return _0x20e026;});}return null;};}function removeEntity(_0x1905e2,_0x2a3d02){return function(_0x2ac9a7){if(_0x2ac9a7){return _0x2ac9a7[_0xac43('0x24')]()[_0xac43('0x23')](function(){_0x1905e2['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x581543,_0x2fff70){return function(_0x18efa8){if(!_0x18efa8){_0x581543[_0xac43('0x25')](0x194);}return _0x18efa8;};}function handleError(_0x470380,_0x1232c5){_0x1232c5=_0x1232c5||0x1f4;return function(_0x36566b){logger[_0xac43('0x26')](_0x36566b['stack']);if(_0x36566b[_0xac43('0x27')]){delete _0x36566b[_0xac43('0x27')];}_0x470380[_0xac43('0x18')](_0x1232c5)[_0xac43('0x28')](_0x36566b);};}exports[_0xac43('0x29')]=function(_0x54a021,_0xaf03f3){var _0x1387bd={},_0x128572={},_0x1998a2={'count':0x0,'rows':[]};var _0x37be96=_[_0xac43('0x2a')](db[_0xac43('0x2b')][_0xac43('0x2c')],function(_0x57ac7a){return{'name':_0x57ac7a['fieldName'],'type':_0x57ac7a[_0xac43('0x2d')][_0xac43('0x2e')]};});_0x128572[_0xac43('0x2f')]=_[_0xac43('0x2a')](_0x37be96,'name');_0x128572[_0xac43('0x30')]=_[_0xac43('0x31')](_0x54a021[_0xac43('0x30')]);_0x128572[_0xac43('0x32')]=_[_0xac43('0x33')](_0x128572[_0xac43('0x2f')],_0x128572[_0xac43('0x30')]);_0x1387bd[_0xac43('0x34')]=_['intersection'](_0x128572[_0xac43('0x2f')],qs['fields'](_0x54a021[_0xac43('0x30')][_0xac43('0x35')]));_0x1387bd[_0xac43('0x34')]=_0x1387bd[_0xac43('0x34')][_0xac43('0x36')]?_0x1387bd[_0xac43('0x34')]:_0x128572[_0xac43('0x2f')];if(!_0x54a021['query']['hasOwnProperty'](_0xac43('0x37'))){_0x1387bd[_0xac43('0x1c')]=qs[_0xac43('0x1c')](_0x54a021[_0xac43('0x30')][_0xac43('0x1c')]);_0x1387bd[_0xac43('0x1e')]=qs[_0xac43('0x1e')](_0x54a021[_0xac43('0x30')][_0xac43('0x1e')]);}_0x1387bd[_0xac43('0x38')]=qs['sort'](_0x54a021['query'][_0xac43('0x39')]);_0x1387bd[_0xac43('0x3a')]=qs[_0xac43('0x32')](_['pick'](_0x54a021['query'],_0x128572[_0xac43('0x32')]),_0x37be96);if(_0x54a021[_0xac43('0x30')][_0xac43('0x3b')]){_0x1387bd[_0xac43('0x3a')]=_[_0xac43('0x3c')](_0x1387bd['where'],{'$or':_[_0xac43('0x2a')](_0x37be96,function(_0x1c6f57){if(_0x1c6f57['type']!==_0xac43('0x3d')){var _0x4d49d1={};_0x4d49d1[_0x1c6f57['name']]={'$like':'%'+_0x54a021[_0xac43('0x30')][_0xac43('0x3b')]+'%'};return _0x4d49d1;}})});}_0x1387bd=_[_0xac43('0x3c')]({},_0x1387bd,_0x54a021['options']);var _0x934246={'where':_0x1387bd[_0xac43('0x3a')]};return db[_0xac43('0x2b')]['count'](_0x934246)[_0xac43('0x23')](function(_0x5437bd){_0x1998a2[_0xac43('0x1d')]=_0x5437bd;if(_0x54a021[_0xac43('0x30')][_0xac43('0x3e')]){_0x1387bd[_0xac43('0x3f')]=[{'all':!![]}];}return db[_0xac43('0x2b')][_0xac43('0x40')](_0x1387bd);})[_0xac43('0x23')](function(_0x3b6c83){_0x1998a2['rows']=_0x3b6c83;return _0x1998a2;})[_0xac43('0x23')](respondWithFilteredResult(_0xaf03f3,_0x1387bd))['catch'](handleError(_0xaf03f3,null));};exports[_0xac43('0x41')]=function(_0x1fd7a7,_0x3ee8dd){var _0x1edaf7={'raw':!![],'where':{'id':_0x1fd7a7['params']['id']}},_0x1c47df={};_0x1c47df[_0xac43('0x2f')]=_[_0xac43('0x31')](db[_0xac43('0x2b')][_0xac43('0x2c')]);_0x1c47df[_0xac43('0x30')]=_['keys'](_0x1fd7a7[_0xac43('0x30')]);_0x1c47df['filters']=_[_0xac43('0x33')](_0x1c47df['model'],_0x1c47df[_0xac43('0x30')]);_0x1edaf7[_0xac43('0x34')]=_[_0xac43('0x33')](_0x1c47df[_0xac43('0x2f')],qs[_0xac43('0x35')](_0x1fd7a7[_0xac43('0x30')][_0xac43('0x35')]));_0x1edaf7[_0xac43('0x34')]=_0x1edaf7[_0xac43('0x34')][_0xac43('0x36')]?_0x1edaf7['attributes']:_0x1c47df[_0xac43('0x2f')];if(_0x1fd7a7['query']['includeAll']){_0x1edaf7[_0xac43('0x3f')]=[{'all':!![]}];}_0x1edaf7=_[_0xac43('0x3c')]({},_0x1edaf7,_0x1fd7a7[_0xac43('0x42')]);return db[_0xac43('0x2b')]['find'](_0x1edaf7)[_0xac43('0x23')](handleEntityNotFound(_0x3ee8dd,null))['then'](respondWithResult(_0x3ee8dd,null))[_0xac43('0x43')](handleError(_0x3ee8dd,null));};exports['create']=function(_0x19e8be,_0x217441){return db[_0xac43('0x2b')]['create'](_0x19e8be['body'],{})['then'](respondWithResult(_0x217441,0xc9))[_0xac43('0x43')](handleError(_0x217441,null));};exports[_0xac43('0x22')]=function(_0xee368a,_0x33705d){if(_0xee368a['body']['id']){delete _0xee368a[_0xac43('0x44')]['id'];}return db[_0xac43('0x2b')][_0xac43('0x45')]({'where':{'id':_0xee368a[_0xac43('0x46')]['id']}})[_0xac43('0x23')](handleEntityNotFound(_0x33705d,null))['then'](saveUpdates(_0xee368a[_0xac43('0x44')],null))['then'](respondWithResult(_0x33705d,null))['catch'](handleError(_0x33705d,null));};exports[_0xac43('0x24')]=function(_0x390d8d,_0x41a87a){return db['MailTransferReport']['find']({'where':{'id':_0x390d8d[_0xac43('0x46')]['id']}})['then'](handleEntityNotFound(_0x41a87a,null))[_0xac43('0x23')](removeEntity(_0x41a87a,null))[_0xac43('0x43')](handleError(_0x41a87a,null));};exports[_0xac43('0x47')]=function(_0x43b749,_0x2bfcb4){return db['MailTransferReport'][_0xac43('0x47')]()[_0xac43('0x23')](respondWithResult(_0x2bfcb4,null))[_0xac43('0x43')](handleError(_0x2bfcb4,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6f49=['bluebird','../../config/environment','exports','MailTransferReport','report_mail_transfer','uniqueid','util','../../config/logger','api','moment'];(function(_0x17d9e3,_0x1f969c){var _0x14192d=function(_0x159745){while(--_0x159745){_0x17d9e3['push'](_0x17d9e3['shift']());}};_0x14192d(++_0x1f969c);}(_0x6f49,0xa6));var _0x96f4=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x6f49[_0x321bb2];return _0x9c12ed;};'use strict';var _=require('lodash');var util=require(_0x96f4('0x0'));var logger=require(_0x96f4('0x1'))(_0x96f4('0x2'));var moment=require(_0x96f4('0x3'));var BPromise=require(_0x96f4('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0x96f4('0x5'));var attributes=require('./mailTransferReport.attributes');module[_0x96f4('0x6')]=function(_0x1e7389,_0x67f60f){return _0x1e7389['define'](_0x96f4('0x7'),attributes,{'tableName':_0x96f4('0x8'),'paranoid':![],'indexes':[{'name':_0x96f4('0x9'),'fields':[_0x96f4('0x9')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x6b4e=['./mailTransferReport.attributes','exports','define','MailTransferReport','report_mail_transfer','uniqueid','util','request-promise','path','rimraf','../../config/environment'];(function(_0x58d5ac,_0x11c4bc){var _0x37985c=function(_0x419671){while(--_0x419671){_0x58d5ac['push'](_0x58d5ac['shift']());}};_0x37985c(++_0x11c4bc);}(_0x6b4e,0x1a8));var _0xe6b4=function(_0x5ecd19,_0x1b92fb){_0x5ecd19=_0x5ecd19-0x0;var _0x1f7119=_0x6b4e[_0x5ecd19];return _0x1f7119;};'use strict';var _=require('lodash');var util=require(_0xe6b4('0x0'));var logger=require('../../config/logger')('api');var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0xe6b4('0x1'));var fs=require('fs');var path=require(_0xe6b4('0x2'));var rimraf=require(_0xe6b4('0x3'));var config=require(_0xe6b4('0x4'));var attributes=require(_0xe6b4('0x5'));module[_0xe6b4('0x6')]=function(_0x598f8c,_0x29c81b){return _0x598f8c[_0xe6b4('0x7')](_0xe6b4('0x8'),attributes,{'tableName':_0xe6b4('0x9'),'paranoid':![],'indexes':[{'name':_0xe6b4('0xa'),'fields':[_0xe6b4('0xa')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe136=['client','http','request','info','MailTransferReport,\x20%s,\x20%s','request\x20sent','MailTransferReport,\x20%s,\x20%s,\x20%s','error','message','result','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise'];(function(_0x7fab38,_0x501063){var _0xb5c718=function(_0x471181){while(--_0x471181){_0x7fab38['push'](_0x7fab38['shift']());}};_0xb5c718(++_0x501063);}(_0xe136,0x96));var _0x6e13=function(_0x25353c,_0x1824c2){_0x25353c=_0x25353c-0x0;var _0x4c170b=_0xe136[_0x25353c];return _0x4c170b;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x6e13('0x0'));var BPromise=require(_0x6e13('0x1'));var rs=require(_0x6e13('0x2'));var fs=require('fs');var Redis=require(_0x6e13('0x3'));var db=require(_0x6e13('0x4'))['db'];var utils=require(_0x6e13('0x5'));var logger=require(_0x6e13('0x6'))(_0x6e13('0x7'));var config=require(_0x6e13('0x8'));var jayson=require(_0x6e13('0x9'));var client=jayson[_0x6e13('0xa')][_0x6e13('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x1bcd10,_0x37b230,_0x33bf71){return new BPromise(function(_0x14fe31,_0x2819d5){return client[_0x6e13('0xc')](_0x1bcd10,_0x33bf71)['then'](function(_0x555d54){logger[_0x6e13('0xd')](_0x6e13('0xe'),_0x37b230,_0x6e13('0xf'));logger['debug'](_0x6e13('0x10'),_0x37b230,_0x6e13('0xf'),JSON['stringify'](_0x555d54));if(_0x555d54['error']){if(_0x555d54[_0x6e13('0x11')]['code']===0x1f4){logger['error'](_0x6e13('0xe'),_0x37b230,_0x555d54[_0x6e13('0x11')][_0x6e13('0x12')]);return _0x2819d5(_0x555d54['error']['message']);}logger[_0x6e13('0x11')](_0x6e13('0xe'),_0x37b230,_0x555d54[_0x6e13('0x11')]['message']);return _0x14fe31(_0x555d54[_0x6e13('0x11')][_0x6e13('0x12')]);}else{logger['info'](_0x6e13('0xe'),_0x37b230,_0x6e13('0xf'));_0x14fe31(_0x555d54[_0x6e13('0x13')][_0x6e13('0x12')]);}})['catch'](function(_0x1dceb8){logger[_0x6e13('0x11')](_0x6e13('0xe'),_0x37b230,_0x1dceb8);_0x2819d5(_0x1dceb8);});});}
\ No newline at end of file
+var _0x8248=['MailTransferReport,\x20%s,\x20%s,\x20%s','error','message','result','catch','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','client','http','request','then','info','MailTransferReport,\x20%s,\x20%s','request\x20sent'];(function(_0x239faa,_0x59db9c){var _0x22bb6d=function(_0x351e0b){while(--_0x351e0b){_0x239faa['push'](_0x239faa['shift']());}};_0x22bb6d(++_0x59db9c);}(_0x8248,0x116));var _0x8824=function(_0xc6afe9,_0x3eae56){_0xc6afe9=_0xc6afe9-0x0;var _0x21d51c=_0x8248[_0xc6afe9];return _0x21d51c;};'use strict';var _=require(_0x8824('0x0'));var util=require('util');var moment=require(_0x8824('0x1'));var BPromise=require(_0x8824('0x2'));var rs=require(_0x8824('0x3'));var fs=require('fs');var Redis=require(_0x8824('0x4'));var db=require(_0x8824('0x5'))['db'];var utils=require(_0x8824('0x6'));var logger=require(_0x8824('0x7'))('rpc');var config=require(_0x8824('0x8'));var jayson=require('jayson/promise');var client=jayson[_0x8824('0x9')][_0x8824('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x2e0283,_0x2a6182,_0x2ae400){return new BPromise(function(_0x220937,_0x1953a0){return client[_0x8824('0xb')](_0x2e0283,_0x2ae400)[_0x8824('0xc')](function(_0x561226){logger[_0x8824('0xd')](_0x8824('0xe'),_0x2a6182,_0x8824('0xf'));logger['debug'](_0x8824('0x10'),_0x2a6182,'request\x20sent',JSON['stringify'](_0x561226));if(_0x561226['error']){if(_0x561226[_0x8824('0x11')]['code']===0x1f4){logger[_0x8824('0x11')](_0x8824('0xe'),_0x2a6182,_0x561226[_0x8824('0x11')][_0x8824('0x12')]);return _0x1953a0(_0x561226['error']['message']);}logger[_0x8824('0x11')](_0x8824('0xe'),_0x2a6182,_0x561226[_0x8824('0x11')][_0x8824('0x12')]);return _0x220937(_0x561226[_0x8824('0x11')][_0x8824('0x12')]);}else{logger['info']('MailTransferReport,\x20%s,\x20%s',_0x2a6182,_0x8824('0xf'));_0x220937(_0x561226[_0x8824('0x13')][_0x8824('0x12')]);}})[_0x8824('0x14')](function(_0x343a5e){logger[_0x8824('0x11')]('MailTransferReport,\x20%s,\x20%s',_0x2a6182,_0x343a5e);_0x1953a0(_0x343a5e);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2501=['/:id','exports','multer','path','express','Router','../../components/interaction/service','../../config/environment','./memberReport.controller','isAuthenticated','index','get','/describe','describe','show','post','put','delete'];(function(_0x4395be,_0x5a2f19){var _0x2982a7=function(_0x46fc4a){while(--_0x46fc4a){_0x4395be['push'](_0x4395be['shift']());}};_0x2982a7(++_0x5a2f19);}(_0x2501,0x134));var _0x1250=function(_0x5c2cb7,_0x47e8c0){_0x5c2cb7=_0x5c2cb7-0x0;var _0x20506a=_0x2501[_0x5c2cb7];return _0x20506a;};'use strict';var multer=require(_0x1250('0x0'));var util=require('util');var path=require(_0x1250('0x1'));var timeout=require('connect-timeout');var express=require(_0x1250('0x2'));var router=express[_0x1250('0x3')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0x1250('0x4'));var config=require(_0x1250('0x5'));var controller=require(_0x1250('0x6'));router['get']('/',auth[_0x1250('0x7')](),controller[_0x1250('0x8')]);router[_0x1250('0x9')](_0x1250('0xa'),auth['isAuthenticated'](),controller[_0x1250('0xb')]);router['get']('/:id',auth[_0x1250('0x7')](),controller[_0x1250('0xc')]);router[_0x1250('0xd')]('/',auth[_0x1250('0x7')](),controller['create']);router[_0x1250('0xe')]('/:id',auth[_0x1250('0x7')](),controller['update']);router[_0x1250('0xf')](_0x1250('0x10'),auth['isAuthenticated'](),controller['destroy']);module[_0x1250('0x11')]=router;
\ No newline at end of file
+var _0x927b=['put','/:id','update','delete','destroy','exports','multer','util','path','../../components/auth/service','../../config/environment','./memberReport.controller','get','isAuthenticated','/describe','create'];(function(_0x3fb556,_0x602ce2){var _0x496145=function(_0x441f7c){while(--_0x441f7c){_0x3fb556['push'](_0x3fb556['shift']());}};_0x496145(++_0x602ce2);}(_0x927b,0x186));var _0xb927=function(_0x35197d,_0x33eda7){_0x35197d=_0x35197d-0x0;var _0x157a26=_0x927b[_0x35197d];return _0x157a26;};'use strict';var multer=require(_0xb927('0x0'));var util=require(_0xb927('0x1'));var path=require(_0xb927('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0xb927('0x3'));var interaction=require('../../components/interaction/service');var config=require(_0xb927('0x4'));var controller=require(_0xb927('0x5'));router[_0xb927('0x6')]('/',auth[_0xb927('0x7')](),controller['index']);router[_0xb927('0x6')](_0xb927('0x8'),auth[_0xb927('0x7')](),controller['describe']);router[_0xb927('0x6')]('/:id',auth[_0xb927('0x7')](),controller['show']);router['post']('/',auth[_0xb927('0x7')](),controller[_0xb927('0x9')]);router[_0xb927('0xa')](_0xb927('0xb'),auth['isAuthenticated'](),controller[_0xb927('0xc')]);router[_0xb927('0xd')](_0xb927('0xb'),auth[_0xb927('0x7')](),controller[_0xb927('0xe')]);module[_0xb927('0xf')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xac65=['sequelize','moment','exports','STRING','LOGIN,\x20PAUSE,\x20TALKING','INTEGER','DATE','getDataValue','enterAt','diff','seconds','setDataValue','exitAt','duration','talk:[inbound,\x20outbound],\x20pause:[reason]','talk:[start]','talk:[destination]','talk:[dial\x20string]','talk:[queue]'];(function(_0x394da3,_0x14afb1){var _0x1e13c4=function(_0x3f562e){while(--_0x3f562e){_0x394da3['push'](_0x394da3['shift']());}};_0x1e13c4(++_0x14afb1);}(_0xac65,0x11d));var _0x5ac6=function(_0x1144d9,_0x1d47e3){_0x1144d9=_0x1144d9-0x0;var _0x44608d=_0xac65[_0x1144d9];return _0x44608d;};'use strict';var Sequelize=require(_0x5ac6('0x0'));var moment=require(_0x5ac6('0x1'));module[_0x5ac6('0x2')]={'channel':{'type':Sequelize['STRING']},'membername':{'type':Sequelize[_0x5ac6('0x3')]},'interface':{'type':Sequelize[_0x5ac6('0x3')]},'type':{'type':Sequelize[_0x5ac6('0x3')],'defaultValue':'DEFAULT\x20PAUSE','comment':_0x5ac6('0x4')},'duration':{'type':Sequelize[_0x5ac6('0x5')]},'enterAt':{'type':Sequelize[_0x5ac6('0x6')]},'exitAt':{'type':Sequelize['DATE'],'set':function(_0x2da747){var _0x38711d=moment(_0x2da747);var _0x130661=moment(this[_0x5ac6('0x7')](_0x5ac6('0x8')));var _0x932f6f=_0x38711d[_0x5ac6('0x9')](_0x130661,_0x5ac6('0xa'));this[_0x5ac6('0xb')](_0x5ac6('0xc'),_0x2da747);this[_0x5ac6('0xb')](_0x5ac6('0xd'),_0x932f6f||null);}},'data1':{'type':Sequelize[_0x5ac6('0x3')],'comment':_0x5ac6('0xe')},'data2':{'type':Sequelize[_0x5ac6('0x3')],'comment':_0x5ac6('0xf')},'data3':{'type':Sequelize[_0x5ac6('0x3')],'comment':_0x5ac6('0x10')},'data4':{'type':Sequelize[_0x5ac6('0x3')],'comment':_0x5ac6('0x11')},'data5':{'type':Sequelize[_0x5ac6('0x3')],'comment':_0x5ac6('0x12')},'role':{'type':Sequelize[_0x5ac6('0x3')]},'internal':{'type':Sequelize[_0x5ac6('0x5')]},'uniqueid':{'type':Sequelize[_0x5ac6('0x3')]}};
\ No newline at end of file
+var _0x593e=['moment','exports','STRING','DEFAULT\x20PAUSE','INTEGER','DATE','getDataValue','enterAt','diff','setDataValue','exitAt','talk:[inbound,\x20outbound],\x20pause:[reason]','talk:[start]','talk:[destination]','talk:[dial\x20string]','talk:[queue]','sequelize'];(function(_0x5b2cc7,_0x402395){var _0x46167a=function(_0x51a1f0){while(--_0x51a1f0){_0x5b2cc7['push'](_0x5b2cc7['shift']());}};_0x46167a(++_0x402395);}(_0x593e,0xcb));var _0xe593=function(_0x64db78,_0x42cad3){_0x64db78=_0x64db78-0x0;var _0x16f2be=_0x593e[_0x64db78];return _0x16f2be;};'use strict';var Sequelize=require(_0xe593('0x0'));var moment=require(_0xe593('0x1'));module[_0xe593('0x2')]={'channel':{'type':Sequelize[_0xe593('0x3')]},'membername':{'type':Sequelize[_0xe593('0x3')]},'interface':{'type':Sequelize[_0xe593('0x3')]},'type':{'type':Sequelize[_0xe593('0x3')],'defaultValue':_0xe593('0x4'),'comment':'LOGIN,\x20PAUSE,\x20TALKING'},'duration':{'type':Sequelize[_0xe593('0x5')]},'enterAt':{'type':Sequelize[_0xe593('0x6')]},'exitAt':{'type':Sequelize[_0xe593('0x6')],'set':function(_0x1e50d3){var _0x3b7082=moment(_0x1e50d3);var _0x14cff3=moment(this[_0xe593('0x7')](_0xe593('0x8')));var _0x169c08=_0x3b7082[_0xe593('0x9')](_0x14cff3,'seconds');this[_0xe593('0xa')](_0xe593('0xb'),_0x1e50d3);this[_0xe593('0xa')]('duration',_0x169c08||null);}},'data1':{'type':Sequelize['STRING'],'comment':_0xe593('0xc')},'data2':{'type':Sequelize[_0xe593('0x3')],'comment':_0xe593('0xd')},'data3':{'type':Sequelize['STRING'],'comment':_0xe593('0xe')},'data4':{'type':Sequelize[_0xe593('0x3')],'comment':_0xe593('0xf')},'data5':{'type':Sequelize[_0xe593('0x3')],'comment':_0xe593('0x10')},'role':{'type':Sequelize[_0xe593('0x3')]},'internal':{'type':Sequelize[_0xe593('0x5')]},'uniqueid':{'type':Sequelize[_0xe593('0x3')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x34e8=['path','sox','to-csv','fs-extra','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','undefined','limit','count','offset','set','Content-Range','json','apply','reject','save','update','then','destroy','error','stack','name','map','MemberReport','rawAttributes','fieldName','type','key','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','sort','where','pick','filter','merge','options','includeAll','catch','show','params','keys','include','find','create','body','describe','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util'];(function(_0x339129,_0x86dcc6){var _0x1570df=function(_0x3b537e){while(--_0x3b537e){_0x339129['push'](_0x339129['shift']());}};_0x1570df(++_0x86dcc6);}(_0x34e8,0x12c));var _0x834e=function(_0x550a3d,_0x34b868){_0x550a3d=_0x550a3d-0x0;var _0x49e9a3=_0x34e8[_0x550a3d];return _0x49e9a3;};'use strict';var emlformat=require(_0x834e('0x0'));var rimraf=require(_0x834e('0x1'));var zipdir=require(_0x834e('0x2'));var jsonpatch=require(_0x834e('0x3'));var rp=require('request-promise');var moment=require(_0x834e('0x4'));var BPromise=require(_0x834e('0x5'));var Mustache=require(_0x834e('0x6'));var util=require(_0x834e('0x7'));var path=require(_0x834e('0x8'));var sox=require(_0x834e('0x9'));var csv=require(_0x834e('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x834e('0xb'));var _=require('lodash');var squel=require(_0x834e('0xc'));var crypto=require(_0x834e('0xd'));var jsforce=require(_0x834e('0xe'));var deskjs=require(_0x834e('0xf'));var toCsv=require(_0x834e('0xa'));var querystring=require(_0x834e('0x10'));var Papa=require(_0x834e('0x11'));var Redis=require(_0x834e('0x12'));var authService=require(_0x834e('0x13'));var qs=require(_0x834e('0x14'));var as=require(_0x834e('0x15'));var hardwareService=require(_0x834e('0x16'));var logger=require(_0x834e('0x17'))(_0x834e('0x18'));var utils=require(_0x834e('0x19'));var config=require(_0x834e('0x1a'));var licenseUtil=require(_0x834e('0x1b'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x5e5b6d,_0x6cd9b9){_0x6cd9b9=_0x6cd9b9||0xcc;return function(_0x58a27e){if(_0x58a27e){return _0x5e5b6d[_0x834e('0x1c')](_0x6cd9b9);}return _0x5e5b6d[_0x834e('0x1d')](_0x6cd9b9)[_0x834e('0x1e')]();};}function respondWithResult(_0x21cc0a,_0x50e860){_0x50e860=_0x50e860||0xc8;return function(_0x43156c){if(_0x43156c){return _0x21cc0a[_0x834e('0x1d')](_0x50e860)['json'](_0x43156c);}};}function respondWithFilteredResult(_0x316205,_0x4a9cdc){return function(_0x38a8cd){if(_0x38a8cd){var _0x36d443=typeof _0x4a9cdc['offset']===_0x834e('0x1f')&&typeof _0x4a9cdc[_0x834e('0x20')]===_0x834e('0x1f');var _0x50b3f6=_0x38a8cd[_0x834e('0x21')];var _0x211e9a=_0x36d443?0x0:_0x4a9cdc[_0x834e('0x22')];var _0xb993a1=_0x36d443?_0x38a8cd[_0x834e('0x21')]:_0x4a9cdc[_0x834e('0x22')]+_0x4a9cdc[_0x834e('0x20')];var _0x595515;if(_0xb993a1>=_0x50b3f6){_0xb993a1=_0x50b3f6;_0x595515=0xc8;}else{_0x595515=0xce;}_0x316205[_0x834e('0x1d')](_0x595515);return _0x316205[_0x834e('0x23')](_0x834e('0x24'),_0x211e9a+'-'+_0xb993a1+'/'+_0x50b3f6)[_0x834e('0x25')](_0x38a8cd);}return null;};}function patchUpdates(_0x4ab05d){return function(_0x45a630){try{jsonpatch[_0x834e('0x26')](_0x45a630,_0x4ab05d,!![]);}catch(_0x5a05c0){return BPromise[_0x834e('0x27')](_0x5a05c0);}return _0x45a630[_0x834e('0x28')]();};}function saveUpdates(_0x8d406e,_0x5c55ca){return function(_0x4e3f48){if(_0x4e3f48){return _0x4e3f48[_0x834e('0x29')](_0x8d406e)[_0x834e('0x2a')](function(_0x589dde){return _0x589dde;});}return null;};}function removeEntity(_0x25ee1d,_0x1dc1e0){return function(_0x58f4fd){if(_0x58f4fd){return _0x58f4fd[_0x834e('0x2b')]()[_0x834e('0x2a')](function(){_0x25ee1d[_0x834e('0x1d')](0xcc)['end']();});}};}function handleEntityNotFound(_0x24fcf7,_0x3e310f){return function(_0x5e1cc5){if(!_0x5e1cc5){_0x24fcf7['sendStatus'](0x194);}return _0x5e1cc5;};}function handleError(_0x1e713a,_0x508a1d){_0x508a1d=_0x508a1d||0x1f4;return function(_0x2826ec){logger[_0x834e('0x2c')](_0x2826ec[_0x834e('0x2d')]);if(_0x2826ec[_0x834e('0x2e')]){delete _0x2826ec[_0x834e('0x2e')];}_0x1e713a[_0x834e('0x1d')](_0x508a1d)['send'](_0x2826ec);};}exports['index']=function(_0x4dc64a,_0x58c1d7){var _0x2c7a8d={},_0x567cea={},_0x106d6a={'count':0x0,'rows':[]};var _0x5dacc1=_[_0x834e('0x2f')](db[_0x834e('0x30')][_0x834e('0x31')],function(_0x1e026a){return{'name':_0x1e026a[_0x834e('0x32')],'type':_0x1e026a[_0x834e('0x33')][_0x834e('0x34')]};});_0x567cea[_0x834e('0x35')]=_[_0x834e('0x2f')](_0x5dacc1,'name');_0x567cea[_0x834e('0x36')]=_['keys'](_0x4dc64a[_0x834e('0x36')]);_0x567cea[_0x834e('0x37')]=_[_0x834e('0x38')](_0x567cea[_0x834e('0x35')],_0x567cea[_0x834e('0x36')]);_0x2c7a8d[_0x834e('0x39')]=_[_0x834e('0x38')](_0x567cea[_0x834e('0x35')],qs[_0x834e('0x3a')](_0x4dc64a[_0x834e('0x36')]['fields']));_0x2c7a8d[_0x834e('0x39')]=_0x2c7a8d[_0x834e('0x39')][_0x834e('0x3b')]?_0x2c7a8d[_0x834e('0x39')]:_0x567cea['model'];if(!_0x4dc64a[_0x834e('0x36')][_0x834e('0x3c')]('nolimit')){_0x2c7a8d['limit']=qs['limit'](_0x4dc64a[_0x834e('0x36')][_0x834e('0x20')]);_0x2c7a8d[_0x834e('0x22')]=qs[_0x834e('0x22')](_0x4dc64a[_0x834e('0x36')][_0x834e('0x22')]);}_0x2c7a8d['order']=qs[_0x834e('0x3d')](_0x4dc64a['query'][_0x834e('0x3d')]);_0x2c7a8d[_0x834e('0x3e')]=qs['filters'](_[_0x834e('0x3f')](_0x4dc64a[_0x834e('0x36')],_0x567cea['filters']),_0x5dacc1);if(_0x4dc64a['query'][_0x834e('0x40')]){_0x2c7a8d[_0x834e('0x3e')]=_[_0x834e('0x41')](_0x2c7a8d[_0x834e('0x3e')],{'$or':_[_0x834e('0x2f')](_0x5dacc1,function(_0x4ca43c){if(_0x4ca43c[_0x834e('0x33')]!=='VIRTUAL'){var _0x50c243={};_0x50c243[_0x4ca43c[_0x834e('0x2e')]]={'$like':'%'+_0x4dc64a['query'][_0x834e('0x40')]+'%'};return _0x50c243;}})});}_0x2c7a8d=_[_0x834e('0x41')]({},_0x2c7a8d,_0x4dc64a[_0x834e('0x42')]);var _0x3c59af={'where':_0x2c7a8d[_0x834e('0x3e')]};return db['MemberReport'][_0x834e('0x21')](_0x3c59af)[_0x834e('0x2a')](function(_0x38f266){_0x106d6a['count']=_0x38f266;if(_0x4dc64a[_0x834e('0x36')][_0x834e('0x43')]){_0x2c7a8d['include']=[{'all':!![]}];}return db[_0x834e('0x30')]['findAll'](_0x2c7a8d);})[_0x834e('0x2a')](function(_0x585335){_0x106d6a['rows']=_0x585335;return _0x106d6a;})['then'](respondWithFilteredResult(_0x58c1d7,_0x2c7a8d))[_0x834e('0x44')](handleError(_0x58c1d7,null));};exports[_0x834e('0x45')]=function(_0x3bcbf4,_0xbc1571){var _0x8ad264={'raw':!![],'where':{'id':_0x3bcbf4[_0x834e('0x46')]['id']}},_0x23feea={};_0x23feea['model']=_[_0x834e('0x47')](db['MemberReport'][_0x834e('0x31')]);_0x23feea['query']=_[_0x834e('0x47')](_0x3bcbf4['query']);_0x23feea[_0x834e('0x37')]=_[_0x834e('0x38')](_0x23feea['model'],_0x23feea[_0x834e('0x36')]);_0x8ad264[_0x834e('0x39')]=_[_0x834e('0x38')](_0x23feea[_0x834e('0x35')],qs[_0x834e('0x3a')](_0x3bcbf4[_0x834e('0x36')][_0x834e('0x3a')]));_0x8ad264[_0x834e('0x39')]=_0x8ad264[_0x834e('0x39')][_0x834e('0x3b')]?_0x8ad264['attributes']:_0x23feea[_0x834e('0x35')];if(_0x3bcbf4[_0x834e('0x36')]['includeAll']){_0x8ad264[_0x834e('0x48')]=[{'all':!![]}];}_0x8ad264=_[_0x834e('0x41')]({},_0x8ad264,_0x3bcbf4[_0x834e('0x42')]);return db[_0x834e('0x30')][_0x834e('0x49')](_0x8ad264)[_0x834e('0x2a')](handleEntityNotFound(_0xbc1571,null))['then'](respondWithResult(_0xbc1571,null))['catch'](handleError(_0xbc1571,null));};exports[_0x834e('0x4a')]=function(_0x1a5444,_0x30568e){return db[_0x834e('0x30')][_0x834e('0x4a')](_0x1a5444[_0x834e('0x4b')],{})[_0x834e('0x2a')](respondWithResult(_0x30568e,0xc9))[_0x834e('0x44')](handleError(_0x30568e,null));};exports[_0x834e('0x29')]=function(_0x390c45,_0xf02f0d){if(_0x390c45[_0x834e('0x4b')]['id']){delete _0x390c45[_0x834e('0x4b')]['id'];}return db[_0x834e('0x30')][_0x834e('0x49')]({'where':{'id':_0x390c45[_0x834e('0x46')]['id']}})[_0x834e('0x2a')](handleEntityNotFound(_0xf02f0d,null))[_0x834e('0x2a')](saveUpdates(_0x390c45[_0x834e('0x4b')],null))[_0x834e('0x2a')](respondWithResult(_0xf02f0d,null))['catch'](handleError(_0xf02f0d,null));};exports[_0x834e('0x2b')]=function(_0x1f08b9,_0x4e73e0){return db[_0x834e('0x30')][_0x834e('0x49')]({'where':{'id':_0x1f08b9['params']['id']}})[_0x834e('0x2a')](handleEntityNotFound(_0x4e73e0,null))[_0x834e('0x2a')](removeEntity(_0x4e73e0,null))[_0x834e('0x44')](handleError(_0x4e73e0,null));};exports[_0x834e('0x4c')]=function(_0x4288e4,_0xb77aab){return db[_0x834e('0x30')]['describe']()[_0x834e('0x2a')](respondWithResult(_0xb77aab,null))[_0x834e('0x44')](handleError(_0xb77aab,null));};
\ No newline at end of file
+var _0xedd9=['keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','catch','params','find','create','body','update','destroy','describe','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','squel','jsforce','desk.js','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','limit','count','set','apply','then','end','error','stack','send','index','map','MemberReport','rawAttributes','fieldName','type','key','model','name','query'];(function(_0x49ca18,_0x5e6d05){var _0x145d54=function(_0x30b9be){while(--_0x30b9be){_0x49ca18['push'](_0x49ca18['shift']());}};_0x145d54(++_0x5e6d05);}(_0xedd9,0xfc));var _0x9edd=function(_0x2ee500,_0x4f6d20){_0x2ee500=_0x2ee500-0x0;var _0x1da789=_0xedd9[_0x2ee500];return _0x1da789;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x9edd('0x0'));var zipdir=require(_0x9edd('0x1'));var jsonpatch=require(_0x9edd('0x2'));var rp=require(_0x9edd('0x3'));var moment=require(_0x9edd('0x4'));var BPromise=require(_0x9edd('0x5'));var Mustache=require(_0x9edd('0x6'));var util=require(_0x9edd('0x7'));var path=require('path');var sox=require(_0x9edd('0x8'));var csv=require(_0x9edd('0x9'));var ejs=require(_0x9edd('0xa'));var fs=require('fs');var fs_extra=require(_0x9edd('0xb'));var _=require('lodash');var squel=require(_0x9edd('0xc'));var crypto=require('crypto');var jsforce=require(_0x9edd('0xd'));var deskjs=require(_0x9edd('0xe'));var toCsv=require(_0x9edd('0x9'));var querystring=require(_0x9edd('0xf'));var Papa=require('papaparse');var Redis=require(_0x9edd('0x10'));var authService=require('../../components/auth/service');var qs=require(_0x9edd('0x11'));var as=require(_0x9edd('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x9edd('0x13'))(_0x9edd('0x14'));var utils=require('../../config/utils');var config=require(_0x9edd('0x15'));var licenseUtil=require(_0x9edd('0x16'));var db=require(_0x9edd('0x17'))['db'];function respondWithStatusCode(_0xfd544a,_0x287ddd){_0x287ddd=_0x287ddd||0xcc;return function(_0x3a7b84){if(_0x3a7b84){return _0xfd544a[_0x9edd('0x18')](_0x287ddd);}return _0xfd544a[_0x9edd('0x19')](_0x287ddd)['end']();};}function respondWithResult(_0x176bfa,_0x44fc7c){_0x44fc7c=_0x44fc7c||0xc8;return function(_0x891832){if(_0x891832){return _0x176bfa[_0x9edd('0x19')](_0x44fc7c)[_0x9edd('0x1a')](_0x891832);}};}function respondWithFilteredResult(_0x338f3c,_0x1042aa){return function(_0x75a4ab){if(_0x75a4ab){var _0x4ea60f=typeof _0x1042aa[_0x9edd('0x1b')]===_0x9edd('0x1c')&&typeof _0x1042aa[_0x9edd('0x1d')]==='undefined';var _0x1b54c0=_0x75a4ab[_0x9edd('0x1e')];var _0x40ba32=_0x4ea60f?0x0:_0x1042aa['offset'];var _0x43dc70=_0x4ea60f?_0x75a4ab['count']:_0x1042aa[_0x9edd('0x1b')]+_0x1042aa[_0x9edd('0x1d')];var _0x4bdb88;if(_0x43dc70>=_0x1b54c0){_0x43dc70=_0x1b54c0;_0x4bdb88=0xc8;}else{_0x4bdb88=0xce;}_0x338f3c['status'](_0x4bdb88);return _0x338f3c[_0x9edd('0x1f')]('Content-Range',_0x40ba32+'-'+_0x43dc70+'/'+_0x1b54c0)[_0x9edd('0x1a')](_0x75a4ab);}return null;};}function patchUpdates(_0x54a03f){return function(_0x535f37){try{jsonpatch[_0x9edd('0x20')](_0x535f37,_0x54a03f,!![]);}catch(_0x1c46a8){return BPromise['reject'](_0x1c46a8);}return _0x535f37['save']();};}function saveUpdates(_0x341d67,_0x186186){return function(_0x477878){if(_0x477878){return _0x477878['update'](_0x341d67)[_0x9edd('0x21')](function(_0x1dca43){return _0x1dca43;});}return null;};}function removeEntity(_0x44a6c1,_0x2ca65f){return function(_0x339a0d){if(_0x339a0d){return _0x339a0d['destroy']()[_0x9edd('0x21')](function(){_0x44a6c1[_0x9edd('0x19')](0xcc)[_0x9edd('0x22')]();});}};}function handleEntityNotFound(_0x2f9f86,_0x310a4d){return function(_0x4d507f){if(!_0x4d507f){_0x2f9f86['sendStatus'](0x194);}return _0x4d507f;};}function handleError(_0x3276ee,_0xfeca7b){_0xfeca7b=_0xfeca7b||0x1f4;return function(_0x8d67aa){logger[_0x9edd('0x23')](_0x8d67aa[_0x9edd('0x24')]);if(_0x8d67aa['name']){delete _0x8d67aa['name'];}_0x3276ee[_0x9edd('0x19')](_0xfeca7b)[_0x9edd('0x25')](_0x8d67aa);};}exports[_0x9edd('0x26')]=function(_0x52746a,_0x238b22){var _0x28cfae={},_0x2ae8dd={},_0x41af53={'count':0x0,'rows':[]};var _0x5eccfb=_[_0x9edd('0x27')](db[_0x9edd('0x28')][_0x9edd('0x29')],function(_0x12c1bc){return{'name':_0x12c1bc[_0x9edd('0x2a')],'type':_0x12c1bc[_0x9edd('0x2b')][_0x9edd('0x2c')]};});_0x2ae8dd[_0x9edd('0x2d')]=_[_0x9edd('0x27')](_0x5eccfb,_0x9edd('0x2e'));_0x2ae8dd[_0x9edd('0x2f')]=_[_0x9edd('0x30')](_0x52746a[_0x9edd('0x2f')]);_0x2ae8dd[_0x9edd('0x31')]=_[_0x9edd('0x32')](_0x2ae8dd['model'],_0x2ae8dd[_0x9edd('0x2f')]);_0x28cfae[_0x9edd('0x33')]=_[_0x9edd('0x32')](_0x2ae8dd['model'],qs[_0x9edd('0x34')](_0x52746a[_0x9edd('0x2f')][_0x9edd('0x34')]));_0x28cfae[_0x9edd('0x33')]=_0x28cfae[_0x9edd('0x33')][_0x9edd('0x35')]?_0x28cfae[_0x9edd('0x33')]:_0x2ae8dd[_0x9edd('0x2d')];if(!_0x52746a[_0x9edd('0x2f')][_0x9edd('0x36')](_0x9edd('0x37'))){_0x28cfae[_0x9edd('0x1d')]=qs[_0x9edd('0x1d')](_0x52746a[_0x9edd('0x2f')]['limit']);_0x28cfae[_0x9edd('0x1b')]=qs['offset'](_0x52746a[_0x9edd('0x2f')][_0x9edd('0x1b')]);}_0x28cfae[_0x9edd('0x38')]=qs[_0x9edd('0x39')](_0x52746a[_0x9edd('0x2f')]['sort']);_0x28cfae[_0x9edd('0x3a')]=qs[_0x9edd('0x31')](_[_0x9edd('0x3b')](_0x52746a[_0x9edd('0x2f')],_0x2ae8dd[_0x9edd('0x31')]),_0x5eccfb);if(_0x52746a[_0x9edd('0x2f')][_0x9edd('0x3c')]){_0x28cfae[_0x9edd('0x3a')]=_[_0x9edd('0x3d')](_0x28cfae[_0x9edd('0x3a')],{'$or':_['map'](_0x5eccfb,function(_0x231604){if(_0x231604['type']!==_0x9edd('0x3e')){var _0x5658d6={};_0x5658d6[_0x231604[_0x9edd('0x2e')]]={'$like':'%'+_0x52746a[_0x9edd('0x2f')][_0x9edd('0x3c')]+'%'};return _0x5658d6;}})});}_0x28cfae=_['merge']({},_0x28cfae,_0x52746a[_0x9edd('0x3f')]);var _0xcbd0ef={'where':_0x28cfae[_0x9edd('0x3a')]};return db['MemberReport'][_0x9edd('0x1e')](_0xcbd0ef)['then'](function(_0x1fc4fb){_0x41af53[_0x9edd('0x1e')]=_0x1fc4fb;if(_0x52746a['query'][_0x9edd('0x40')]){_0x28cfae[_0x9edd('0x41')]=[{'all':!![]}];}return db[_0x9edd('0x28')][_0x9edd('0x42')](_0x28cfae);})['then'](function(_0x449f01){_0x41af53['rows']=_0x449f01;return _0x41af53;})[_0x9edd('0x21')](respondWithFilteredResult(_0x238b22,_0x28cfae))[_0x9edd('0x43')](handleError(_0x238b22,null));};exports['show']=function(_0x318757,_0x49a128){var _0x548299={'raw':!![],'where':{'id':_0x318757[_0x9edd('0x44')]['id']}},_0x369b69={};_0x369b69[_0x9edd('0x2d')]=_[_0x9edd('0x30')](db[_0x9edd('0x28')][_0x9edd('0x29')]);_0x369b69[_0x9edd('0x2f')]=_[_0x9edd('0x30')](_0x318757[_0x9edd('0x2f')]);_0x369b69[_0x9edd('0x31')]=_[_0x9edd('0x32')](_0x369b69[_0x9edd('0x2d')],_0x369b69[_0x9edd('0x2f')]);_0x548299[_0x9edd('0x33')]=_[_0x9edd('0x32')](_0x369b69['model'],qs[_0x9edd('0x34')](_0x318757[_0x9edd('0x2f')][_0x9edd('0x34')]));_0x548299[_0x9edd('0x33')]=_0x548299[_0x9edd('0x33')][_0x9edd('0x35')]?_0x548299[_0x9edd('0x33')]:_0x369b69['model'];if(_0x318757['query']['includeAll']){_0x548299[_0x9edd('0x41')]=[{'all':!![]}];}_0x548299=_['merge']({},_0x548299,_0x318757[_0x9edd('0x3f')]);return db[_0x9edd('0x28')][_0x9edd('0x45')](_0x548299)[_0x9edd('0x21')](handleEntityNotFound(_0x49a128,null))[_0x9edd('0x21')](respondWithResult(_0x49a128,null))['catch'](handleError(_0x49a128,null));};exports[_0x9edd('0x46')]=function(_0x35e63c,_0x40e33d){return db['MemberReport'][_0x9edd('0x46')](_0x35e63c[_0x9edd('0x47')],{})[_0x9edd('0x21')](respondWithResult(_0x40e33d,0xc9))[_0x9edd('0x43')](handleError(_0x40e33d,null));};exports[_0x9edd('0x48')]=function(_0x35bdec,_0x4d4f33){if(_0x35bdec[_0x9edd('0x47')]['id']){delete _0x35bdec[_0x9edd('0x47')]['id'];}return db['MemberReport'][_0x9edd('0x45')]({'where':{'id':_0x35bdec[_0x9edd('0x44')]['id']}})['then'](handleEntityNotFound(_0x4d4f33,null))[_0x9edd('0x21')](saveUpdates(_0x35bdec[_0x9edd('0x47')],null))[_0x9edd('0x21')](respondWithResult(_0x4d4f33,null))['catch'](handleError(_0x4d4f33,null));};exports[_0x9edd('0x49')]=function(_0x151157,_0x317a60){return db[_0x9edd('0x28')]['find']({'where':{'id':_0x151157[_0x9edd('0x44')]['id']}})[_0x9edd('0x21')](handleEntityNotFound(_0x317a60,null))[_0x9edd('0x21')](removeEntity(_0x317a60,null))['catch'](handleError(_0x317a60,null));};exports[_0x9edd('0x4a')]=function(_0x21f6ce,_0x57db43){return db[_0x9edd('0x28')]['describe']()[_0x9edd('0x21')](respondWithResult(_0x57db43,null))[_0x9edd('0x43')](handleError(_0x57db43,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc9b1=['./memberReport.attributes','exports','MemberReport','report_member','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment'];(function(_0x301c80,_0x12b530){var _0x35b48d=function(_0x1da11c){while(--_0x1da11c){_0x301c80['push'](_0x301c80['shift']());}};_0x35b48d(++_0x12b530);}(_0xc9b1,0xb8));var _0x1c9b=function(_0x3a1a12,_0x3cc82f){_0x3a1a12=_0x3a1a12-0x0;var _0x6ab74c=_0xc9b1[_0x3a1a12];return _0x6ab74c;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x1c9b('0x0'))(_0x1c9b('0x1'));var moment=require(_0x1c9b('0x2'));var BPromise=require(_0x1c9b('0x3'));var rp=require(_0x1c9b('0x4'));var fs=require('fs');var path=require(_0x1c9b('0x5'));var rimraf=require(_0x1c9b('0x6'));var config=require(_0x1c9b('0x7'));var attributes=require(_0x1c9b('0x8'));module[_0x1c9b('0x9')]=function(_0x398b97,_0xdbde74){return _0x398b97['define'](_0x1c9b('0xa'),attributes,{'tableName':_0x1c9b('0xb'),'paranoid':![],'indexes':[{'name':'membername_interface','fields':['membername','interface']}],'timestamps':!![]});};
\ No newline at end of file
+var _0xee3b=['interface','lodash','../../config/logger','api','request-promise','rimraf','../../config/environment','./memberReport.attributes','exports','MemberReport','report_member','membername'];(function(_0x1f3b90,_0x50a2e0){var _0x2a07e6=function(_0x2a4fd6){while(--_0x2a4fd6){_0x1f3b90['push'](_0x1f3b90['shift']());}};_0x2a07e6(++_0x50a2e0);}(_0xee3b,0xfd));var _0xbee3=function(_0x156e23,_0x40da05){_0x156e23=_0x156e23-0x0;var _0x5dbd51=_0xee3b[_0x156e23];return _0x5dbd51;};'use strict';var _=require(_0xbee3('0x0'));var util=require('util');var logger=require(_0xbee3('0x1'))(_0xbee3('0x2'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0xbee3('0x3'));var fs=require('fs');var path=require('path');var rimraf=require(_0xbee3('0x4'));var config=require(_0xbee3('0x5'));var attributes=require(_0xbee3('0x6'));module[_0xbee3('0x7')]=function(_0x276461,_0x2e028d){return _0x276461['define'](_0xbee3('0x8'),attributes,{'tableName':_0xbee3('0x9'),'paranoid':![],'indexes':[{'name':'membername_interface','fields':[_0xbee3('0xa'),_0xbee3('0xb')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2dc3=['map','include','model','create','CreateMemberReport','UpdateMemberReport','update','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','jayson/promise','http','then','info','debug','MemberReport,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','MemberReport,\x20%s,\x20%s','message','catch','GetMemberReport','MemberReport','findAll','options','raw','where','attributes','limit'];(function(_0x192ff1,_0x46d596){var _0x3d4bfd=function(_0x56ee39){while(--_0x56ee39){_0x192ff1['push'](_0x192ff1['shift']());}};_0x3d4bfd(++_0x46d596);}(_0x2dc3,0x127));var _0x32dc=function(_0x2dafbe,_0x5d04de){_0x2dafbe=_0x2dafbe-0x0;var _0x58a45a=_0x2dc3[_0x2dafbe];return _0x58a45a;};'use strict';var _=require('lodash');var util=require(_0x32dc('0x0'));var moment=require(_0x32dc('0x1'));var BPromise=require(_0x32dc('0x2'));var rs=require(_0x32dc('0x3'));var fs=require('fs');var Redis=require(_0x32dc('0x4'));var db=require(_0x32dc('0x5'))['db'];var utils=require(_0x32dc('0x6'));var logger=require(_0x32dc('0x7'))('rpc');var config=require('../../config/environment');var jayson=require(_0x32dc('0x8'));var client=jayson['client'][_0x32dc('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x52336b,_0x8f2cea,_0x491a56){return new BPromise(function(_0x49c416,_0x3ae9e1){return client['request'](_0x52336b,_0x491a56)[_0x32dc('0xa')](function(_0x335ab1){logger[_0x32dc('0xb')]('MemberReport,\x20%s,\x20%s',_0x8f2cea,'request\x20sent');logger[_0x32dc('0xc')](_0x32dc('0xd'),_0x8f2cea,_0x32dc('0xe'),JSON[_0x32dc('0xf')](_0x335ab1));if(_0x335ab1[_0x32dc('0x10')]){if(_0x335ab1[_0x32dc('0x10')][_0x32dc('0x11')]===0x1f4){logger['error'](_0x32dc('0x12'),_0x8f2cea,_0x335ab1['error'][_0x32dc('0x13')]);return _0x3ae9e1(_0x335ab1[_0x32dc('0x10')][_0x32dc('0x13')]);}logger['error'](_0x32dc('0x12'),_0x8f2cea,_0x335ab1[_0x32dc('0x10')]['message']);return _0x49c416(_0x335ab1[_0x32dc('0x10')]['message']);}else{logger[_0x32dc('0xb')]('MemberReport,\x20%s,\x20%s',_0x8f2cea,'request\x20sent');_0x49c416(_0x335ab1['result'][_0x32dc('0x13')]);}})[_0x32dc('0x14')](function(_0x391c13){logger['error'](_0x32dc('0x12'),_0x8f2cea,_0x391c13);_0x3ae9e1(_0x391c13);});});}exports[_0x32dc('0x15')]=function(_0x38064a){var _0x47ccb4=this;return new Promise(function(_0x36e287,_0x36389b){return db[_0x32dc('0x16')][_0x32dc('0x17')]({'raw':_0x38064a['options']?_0x38064a[_0x32dc('0x18')][_0x32dc('0x19')]===undefined?!![]:![]:!![],'where':_0x38064a[_0x32dc('0x18')]?_0x38064a[_0x32dc('0x18')][_0x32dc('0x1a')]||null:null,'attributes':_0x38064a[_0x32dc('0x18')]?_0x38064a[_0x32dc('0x18')][_0x32dc('0x1b')]||null:null,'limit':_0x38064a['options']?_0x38064a[_0x32dc('0x18')][_0x32dc('0x1c')]||null:null,'include':_0x38064a[_0x32dc('0x18')]?_0x38064a[_0x32dc('0x18')]['include']?_[_0x32dc('0x1d')](_0x38064a[_0x32dc('0x18')][_0x32dc('0x1e')],function(_0x39182b){return{'model':db[_0x39182b['model']],'as':_0x39182b['as'],'attributes':_0x39182b[_0x32dc('0x1b')],'include':_0x39182b[_0x32dc('0x1e')]?_[_0x32dc('0x1d')](_0x39182b['include'],function(_0x51af54){return{'model':db[_0x51af54[_0x32dc('0x1f')]],'as':_0x51af54['as'],'attributes':_0x51af54['attributes'],'include':_0x51af54[_0x32dc('0x1e')]?_['map'](_0x51af54['include'],function(_0x50ccf4){return{'model':db[_0x50ccf4[_0x32dc('0x1f')]],'as':_0x50ccf4['as'],'attributes':_0x50ccf4['attributes']};}):[]};}):[]};}):[]:[]})[_0x32dc('0xa')](function(_0x26e348){logger['info'](_0x32dc('0x15'),_0x38064a);logger[_0x32dc('0xc')](_0x32dc('0x15'),_0x38064a,JSON[_0x32dc('0xf')](_0x26e348));_0x36e287(_0x26e348);})[_0x32dc('0x14')](function(_0x41d845){logger[_0x32dc('0x10')]('GetMemberReport',_0x41d845[_0x32dc('0x13')],_0x38064a);_0x36389b(_0x47ccb4[_0x32dc('0x10')](0x1f4,_0x41d845['message']));});});};exports['CreateMemberReport']=function(_0x2e240f){var _0x51e50c=this;return new Promise(function(_0x46a526,_0x5b9c3a){return db[_0x32dc('0x16')][_0x32dc('0x20')](_0x2e240f['body'],{'raw':_0x2e240f[_0x32dc('0x18')]?_0x2e240f[_0x32dc('0x18')][_0x32dc('0x19')]===undefined?!![]:![]:!![]})['then'](function(_0x1b2a18){logger[_0x32dc('0xb')](_0x32dc('0x21'),_0x2e240f);logger[_0x32dc('0xc')](_0x32dc('0x21'),_0x2e240f,JSON[_0x32dc('0xf')](_0x1b2a18));_0x46a526(_0x1b2a18);})[_0x32dc('0x14')](function(_0x399f88){logger[_0x32dc('0x10')](_0x32dc('0x21'),_0x399f88['message'],_0x2e240f);_0x5b9c3a(_0x51e50c[_0x32dc('0x10')](0x1f4,_0x399f88[_0x32dc('0x13')]));});});};exports[_0x32dc('0x22')]=function(_0x267fc1){var _0x29266f=this;return new Promise(function(_0x56a34c,_0x26ca1c){return db['MemberReport'][_0x32dc('0x23')](_0x267fc1['body'],{'raw':_0x267fc1[_0x32dc('0x18')]?_0x267fc1['options']['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x267fc1[_0x32dc('0x18')]?_0x267fc1[_0x32dc('0x18')][_0x32dc('0x1a')]||null:null,'attributes':_0x267fc1[_0x32dc('0x18')]?_0x267fc1['options'][_0x32dc('0x1b')]||null:null,'limit':_0x267fc1[_0x32dc('0x18')]?_0x267fc1[_0x32dc('0x18')][_0x32dc('0x1c')]||null:null})['then'](function(_0x4410cd){logger[_0x32dc('0xb')](_0x32dc('0x22'),_0x267fc1);logger[_0x32dc('0xc')](_0x32dc('0x22'),_0x267fc1,JSON['stringify'](_0x4410cd));_0x56a34c(_0x4410cd);})['catch'](function(_0x5c1ccb){logger['error']('UpdateMemberReport',_0x5c1ccb[_0x32dc('0x13')],_0x267fc1);_0x26ca1c(_0x29266f[_0x32dc('0x10')](0x1f4,_0x5c1ccb['message']));});});};
\ No newline at end of file
+var _0x8efc=['error','message','result','catch','GetMemberReport','options','raw','attributes','limit','include','map','model','debug','CreateMemberReport','body','UpdateMemberReport','MemberReport','update','where','moment','randomstring','../../mysqldb','../../config/utils','../../config/environment','client','http','then','info','MemberReport,\x20%s,\x20%s','request\x20sent','stringify'];(function(_0x15106b,_0x4d96f6){var _0x521203=function(_0x4dbe23){while(--_0x4dbe23){_0x15106b['push'](_0x15106b['shift']());}};_0x521203(++_0x4d96f6);}(_0x8efc,0x8f));var _0xc8ef=function(_0x4d7241,_0x32aa1f){_0x4d7241=_0x4d7241-0x0;var _0x59d9e2=_0x8efc[_0x4d7241];return _0x59d9e2;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0xc8ef('0x0'));var BPromise=require('bluebird');var rs=require(_0xc8ef('0x1'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xc8ef('0x2'))['db'];var utils=require(_0xc8ef('0x3'));var logger=require('../../config/logger')('rpc');var config=require(_0xc8ef('0x4'));var jayson=require('jayson/promise');var client=jayson[_0xc8ef('0x5')][_0xc8ef('0x6')]({'port':0x232a});function respondWithRpcPromise(_0x1648ac,_0x1f7596,_0x819e70){return new BPromise(function(_0x522d75,_0x4331d3){return client['request'](_0x1648ac,_0x819e70)[_0xc8ef('0x7')](function(_0xbdd184){logger[_0xc8ef('0x8')](_0xc8ef('0x9'),_0x1f7596,'request\x20sent');logger['debug']('MemberReport,\x20%s,\x20%s,\x20%s',_0x1f7596,_0xc8ef('0xa'),JSON[_0xc8ef('0xb')](_0xbdd184));if(_0xbdd184[_0xc8ef('0xc')]){if(_0xbdd184[_0xc8ef('0xc')]['code']===0x1f4){logger[_0xc8ef('0xc')](_0xc8ef('0x9'),_0x1f7596,_0xbdd184[_0xc8ef('0xc')][_0xc8ef('0xd')]);return _0x4331d3(_0xbdd184[_0xc8ef('0xc')][_0xc8ef('0xd')]);}logger[_0xc8ef('0xc')](_0xc8ef('0x9'),_0x1f7596,_0xbdd184['error']['message']);return _0x522d75(_0xbdd184[_0xc8ef('0xc')][_0xc8ef('0xd')]);}else{logger[_0xc8ef('0x8')](_0xc8ef('0x9'),_0x1f7596,_0xc8ef('0xa'));_0x522d75(_0xbdd184[_0xc8ef('0xe')][_0xc8ef('0xd')]);}})[_0xc8ef('0xf')](function(_0x5569c0){logger['error'](_0xc8ef('0x9'),_0x1f7596,_0x5569c0);_0x4331d3(_0x5569c0);});});}exports[_0xc8ef('0x10')]=function(_0x166ec4){var _0x183c85=this;return new Promise(function(_0x5a2815,_0x5dc90b){return db['MemberReport']['findAll']({'raw':_0x166ec4[_0xc8ef('0x11')]?_0x166ec4['options'][_0xc8ef('0x12')]===undefined?!![]:![]:!![],'where':_0x166ec4[_0xc8ef('0x11')]?_0x166ec4[_0xc8ef('0x11')]['where']||null:null,'attributes':_0x166ec4[_0xc8ef('0x11')]?_0x166ec4[_0xc8ef('0x11')][_0xc8ef('0x13')]||null:null,'limit':_0x166ec4[_0xc8ef('0x11')]?_0x166ec4[_0xc8ef('0x11')][_0xc8ef('0x14')]||null:null,'include':_0x166ec4[_0xc8ef('0x11')]?_0x166ec4[_0xc8ef('0x11')][_0xc8ef('0x15')]?_[_0xc8ef('0x16')](_0x166ec4[_0xc8ef('0x11')][_0xc8ef('0x15')],function(_0x52f695){return{'model':db[_0x52f695['model']],'as':_0x52f695['as'],'attributes':_0x52f695[_0xc8ef('0x13')],'include':_0x52f695[_0xc8ef('0x15')]?_[_0xc8ef('0x16')](_0x52f695[_0xc8ef('0x15')],function(_0x16c6d4){return{'model':db[_0x16c6d4['model']],'as':_0x16c6d4['as'],'attributes':_0x16c6d4['attributes'],'include':_0x16c6d4[_0xc8ef('0x15')]?_[_0xc8ef('0x16')](_0x16c6d4[_0xc8ef('0x15')],function(_0x50bb55){return{'model':db[_0x50bb55[_0xc8ef('0x17')]],'as':_0x50bb55['as'],'attributes':_0x50bb55[_0xc8ef('0x13')]};}):[]};}):[]};}):[]:[]})[_0xc8ef('0x7')](function(_0xc6749){logger['info']('GetMemberReport',_0x166ec4);logger[_0xc8ef('0x18')](_0xc8ef('0x10'),_0x166ec4,JSON[_0xc8ef('0xb')](_0xc6749));_0x5a2815(_0xc6749);})['catch'](function(_0x309985){logger[_0xc8ef('0xc')](_0xc8ef('0x10'),_0x309985['message'],_0x166ec4);_0x5dc90b(_0x183c85[_0xc8ef('0xc')](0x1f4,_0x309985[_0xc8ef('0xd')]));});});};exports[_0xc8ef('0x19')]=function(_0x3a54d4){var _0x17c07c=this;return new Promise(function(_0x5b8fbe,_0x27fd8d){return db['MemberReport']['create'](_0x3a54d4[_0xc8ef('0x1a')],{'raw':_0x3a54d4['options']?_0x3a54d4[_0xc8ef('0x11')]['raw']===undefined?!![]:![]:!![]})['then'](function(_0x21a1c5){logger[_0xc8ef('0x8')](_0xc8ef('0x19'),_0x3a54d4);logger[_0xc8ef('0x18')](_0xc8ef('0x19'),_0x3a54d4,JSON[_0xc8ef('0xb')](_0x21a1c5));_0x5b8fbe(_0x21a1c5);})['catch'](function(_0x673423){logger[_0xc8ef('0xc')]('CreateMemberReport',_0x673423[_0xc8ef('0xd')],_0x3a54d4);_0x27fd8d(_0x17c07c['error'](0x1f4,_0x673423['message']));});});};exports[_0xc8ef('0x1b')]=function(_0x18680b){var _0x122546=this;return new Promise(function(_0x43d1df,_0x4791b4){return db[_0xc8ef('0x1c')][_0xc8ef('0x1d')](_0x18680b[_0xc8ef('0x1a')],{'raw':_0x18680b[_0xc8ef('0x11')]?_0x18680b[_0xc8ef('0x11')][_0xc8ef('0x12')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x18680b[_0xc8ef('0x11')]?_0x18680b['options'][_0xc8ef('0x1e')]||null:null,'attributes':_0x18680b['options']?_0x18680b['options'][_0xc8ef('0x13')]||null:null,'limit':_0x18680b[_0xc8ef('0x11')]?_0x18680b[_0xc8ef('0x11')][_0xc8ef('0x14')]||null:null})[_0xc8ef('0x7')](function(_0x194e89){logger[_0xc8ef('0x8')](_0xc8ef('0x1b'),_0x18680b);logger[_0xc8ef('0x18')](_0xc8ef('0x1b'),_0x18680b,JSON[_0xc8ef('0xb')](_0x194e89));_0x43d1df(_0x194e89);})[_0xc8ef('0xf')](function(_0x2039c6){logger['error']('UpdateMemberReport',_0x2039c6[_0xc8ef('0xd')],_0x18680b);_0x4791b4(_0x122546[_0xc8ef('0xc')](0x1f4,_0x2039c6[_0xc8ef('0xd')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcce9=['express','Router','fs-extra','../../components/auth/service','../../config/environment','./migration.controller','get','exports','multer','util','path','connect-timeout'];(function(_0x169742,_0x3b8408){var _0xadda3d=function(_0x49a337){while(--_0x49a337){_0x169742['push'](_0x169742['shift']());}};_0xadda3d(++_0x3b8408);}(_0xcce9,0xd4));var _0x9cce=function(_0x4b8e65,_0x4a22bb){_0x4b8e65=_0x4b8e65-0x0;var _0x273fb0=_0xcce9[_0x4b8e65];return _0x273fb0;};'use strict';var multer=require(_0x9cce('0x0'));var util=require(_0x9cce('0x1'));var path=require(_0x9cce('0x2'));var timeout=require(_0x9cce('0x3'));var express=require(_0x9cce('0x4'));var router=express[_0x9cce('0x5')]();var fs_extra=require(_0x9cce('0x6'));var auth=require(_0x9cce('0x7'));var interaction=require('../../components/interaction/service');var config=require(_0x9cce('0x8'));var controller=require(_0x9cce('0x9'));router[_0x9cce('0xa')]('/',controller['index']);module[_0x9cce('0xb')]=router;
\ No newline at end of file
+var _0x91c7=['Router','fs-extra','../../components/interaction/service','../../config/environment','get','index','multer','util','path','connect-timeout','express'];(function(_0x4a7f4a,_0x1a4b06){var _0x3d7145=function(_0x31ccd2){while(--_0x31ccd2){_0x4a7f4a['push'](_0x4a7f4a['shift']());}};_0x3d7145(++_0x1a4b06);}(_0x91c7,0x10e));var _0x791c=function(_0x4727b7,_0x585a61){_0x4727b7=_0x4727b7-0x0;var _0xce9394=_0x91c7[_0x4727b7];return _0xce9394;};'use strict';var multer=require(_0x791c('0x0'));var util=require(_0x791c('0x1'));var path=require(_0x791c('0x2'));var timeout=require(_0x791c('0x3'));var express=require(_0x791c('0x4'));var router=express[_0x791c('0x5')]();var fs_extra=require(_0x791c('0x6'));var auth=require('../../components/auth/service');var interaction=require(_0x791c('0x7'));var config=require(_0x791c('0x8'));var controller=require('./migration.controller');router[_0x791c('0x9')]('/',controller[_0x791c('0xa')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1100=['STRING','version','exports'];(function(_0x40220a,_0x22feb1){var _0x3903cc=function(_0x33a296){while(--_0x33a296){_0x40220a['push'](_0x40220a['shift']());}};_0x3903cc(++_0x22feb1);}(_0x1100,0x1e2));var _0x0110=function(_0x2b27b8,_0x537a6e){_0x2b27b8=_0x2b27b8-0x0;var _0x48d411=_0x1100[_0x2b27b8];return _0x48d411;};'use strict';var Sequelize=require('sequelize');module[_0x0110('0x0')]={'version':{'type':Sequelize[_0x0110('0x1')],'unique':_0x0110('0x2')}};
\ No newline at end of file
+var _0xbc95=['version','sequelize','exports','STRING'];(function(_0x2a52f3,_0x47364e){var _0x2f680f=function(_0x16bb6e){while(--_0x16bb6e){_0x2a52f3['push'](_0x2a52f3['shift']());}};_0x2f680f(++_0x47364e);}(_0xbc95,0x159));var _0x5bc9=function(_0x5ee300,_0x59f054){_0x5ee300=_0x5ee300-0x0;var _0x15717b=_0xbc95[_0x5ee300];return _0x15717b;};'use strict';var Sequelize=require(_0x5bc9('0x0'));module[_0x5bc9('0x1')]={'version':{'type':Sequelize[_0x5bc9('0x2')],'unique':_0x5bc9('0x3')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaf3c=['squel','crypto','jsforce','desk.js','to-csv','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','count','limit','set','Content-Range','apply','save','update','then','destroy','sendStatus','error','stack','name','index','Migration','rawAttributes','fieldName','type','key','model','map','query','filters','intersection','attributes','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','options','includeAll','include','rows','catch','eml-format','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','ejs','fs-extra'];(function(_0x311c35,_0x534915){var _0x5cc50c=function(_0x3ad680){while(--_0x3ad680){_0x311c35['push'](_0x311c35['shift']());}};_0x5cc50c(++_0x534915);}(_0xaf3c,0x109));var _0xcaf3=function(_0x361d7f,_0x55c073){_0x361d7f=_0x361d7f-0x0;var _0x5643ec=_0xaf3c[_0x361d7f];return _0x5643ec;};'use strict';var emlformat=require(_0xcaf3('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xcaf3('0x1'));var jsonpatch=require(_0xcaf3('0x2'));var rp=require(_0xcaf3('0x3'));var moment=require(_0xcaf3('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xcaf3('0x5'));var util=require(_0xcaf3('0x6'));var path=require(_0xcaf3('0x7'));var sox=require(_0xcaf3('0x8'));var csv=require('to-csv');var ejs=require(_0xcaf3('0x9'));var fs=require('fs');var fs_extra=require(_0xcaf3('0xa'));var _=require('lodash');var squel=require(_0xcaf3('0xb'));var crypto=require(_0xcaf3('0xc'));var jsforce=require(_0xcaf3('0xd'));var deskjs=require(_0xcaf3('0xe'));var toCsv=require(_0xcaf3('0xf'));var querystring=require('querystring');var Papa=require(_0xcaf3('0x10'));var Redis=require(_0xcaf3('0x11'));var authService=require(_0xcaf3('0x12'));var qs=require(_0xcaf3('0x13'));var as=require(_0xcaf3('0x14'));var hardwareService=require(_0xcaf3('0x15'));var logger=require('../../config/logger')(_0xcaf3('0x16'));var utils=require(_0xcaf3('0x17'));var config=require('../../config/environment');var licenseUtil=require(_0xcaf3('0x18'));var db=require(_0xcaf3('0x19'))['db'];function respondWithStatusCode(_0x44f754,_0x3ee380){_0x3ee380=_0x3ee380||0xcc;return function(_0x16e10b){if(_0x16e10b){return _0x44f754['sendStatus'](_0x3ee380);}return _0x44f754[_0xcaf3('0x1a')](_0x3ee380)[_0xcaf3('0x1b')]();};}function respondWithResult(_0x1b4f0a,_0x55a5e7){_0x55a5e7=_0x55a5e7||0xc8;return function(_0x160cfc){if(_0x160cfc){return _0x1b4f0a[_0xcaf3('0x1a')](_0x55a5e7)[_0xcaf3('0x1c')](_0x160cfc);}};}function respondWithFilteredResult(_0x1072a3,_0x2059dc){return function(_0x5eb690){if(_0x5eb690){var _0xcbcb1e=typeof _0x2059dc[_0xcaf3('0x1d')]===_0xcaf3('0x1e')&&typeof _0x2059dc['limit']===_0xcaf3('0x1e');var _0x4be783=_0x5eb690[_0xcaf3('0x1f')];var _0x223b66=_0xcbcb1e?0x0:_0x2059dc[_0xcaf3('0x1d')];var _0x4ee774=_0xcbcb1e?_0x5eb690['count']:_0x2059dc[_0xcaf3('0x1d')]+_0x2059dc[_0xcaf3('0x20')];var _0x243f9f;if(_0x4ee774>=_0x4be783){_0x4ee774=_0x4be783;_0x243f9f=0xc8;}else{_0x243f9f=0xce;}_0x1072a3[_0xcaf3('0x1a')](_0x243f9f);return _0x1072a3[_0xcaf3('0x21')](_0xcaf3('0x22'),_0x223b66+'-'+_0x4ee774+'/'+_0x4be783)[_0xcaf3('0x1c')](_0x5eb690);}return null;};}function patchUpdates(_0x12a545){return function(_0xc62145){try{jsonpatch[_0xcaf3('0x23')](_0xc62145,_0x12a545,!![]);}catch(_0x5d1c88){return BPromise['reject'](_0x5d1c88);}return _0xc62145[_0xcaf3('0x24')]();};}function saveUpdates(_0x4b7a44,_0x1f59c3){return function(_0xc9d93a){if(_0xc9d93a){return _0xc9d93a[_0xcaf3('0x25')](_0x4b7a44)[_0xcaf3('0x26')](function(_0x14e92e){return _0x14e92e;});}return null;};}function removeEntity(_0x5c08c9,_0x121a44){return function(_0x6be6d0){if(_0x6be6d0){return _0x6be6d0[_0xcaf3('0x27')]()[_0xcaf3('0x26')](function(){_0x5c08c9[_0xcaf3('0x1a')](0xcc)[_0xcaf3('0x1b')]();});}};}function handleEntityNotFound(_0x24e250,_0x4b87fc){return function(_0x1be6fe){if(!_0x1be6fe){_0x24e250[_0xcaf3('0x28')](0x194);}return _0x1be6fe;};}function handleError(_0x5f374a,_0x18e833){_0x18e833=_0x18e833||0x1f4;return function(_0x7c3553){logger[_0xcaf3('0x29')](_0x7c3553[_0xcaf3('0x2a')]);if(_0x7c3553[_0xcaf3('0x2b')]){delete _0x7c3553[_0xcaf3('0x2b')];}_0x5f374a[_0xcaf3('0x1a')](_0x18e833)['send'](_0x7c3553);};}exports[_0xcaf3('0x2c')]=function(_0x3003fc,_0x38073a){var _0x4105ef={},_0x17b964={},_0x13414b={'count':0x0,'rows':[]};var _0x3d456a=_['map'](db[_0xcaf3('0x2d')][_0xcaf3('0x2e')],function(_0xdfa30b){return{'name':_0xdfa30b[_0xcaf3('0x2f')],'type':_0xdfa30b[_0xcaf3('0x30')][_0xcaf3('0x31')]};});_0x17b964[_0xcaf3('0x32')]=_[_0xcaf3('0x33')](_0x3d456a,_0xcaf3('0x2b'));_0x17b964[_0xcaf3('0x34')]=_['keys'](_0x3003fc[_0xcaf3('0x34')]);_0x17b964[_0xcaf3('0x35')]=_[_0xcaf3('0x36')](_0x17b964[_0xcaf3('0x32')],_0x17b964[_0xcaf3('0x34')]);_0x4105ef[_0xcaf3('0x37')]=_[_0xcaf3('0x36')](_0x17b964[_0xcaf3('0x32')],qs['fields'](_0x3003fc[_0xcaf3('0x34')]['fields']));_0x4105ef[_0xcaf3('0x37')]=_0x4105ef[_0xcaf3('0x37')]['length']?_0x4105ef['attributes']:_0x17b964[_0xcaf3('0x32')];if(!_0x3003fc[_0xcaf3('0x34')][_0xcaf3('0x38')](_0xcaf3('0x39'))){_0x4105ef[_0xcaf3('0x20')]=qs['limit'](_0x3003fc['query'][_0xcaf3('0x20')]);_0x4105ef[_0xcaf3('0x1d')]=qs['offset'](_0x3003fc[_0xcaf3('0x34')][_0xcaf3('0x1d')]);}_0x4105ef[_0xcaf3('0x3a')]=qs[_0xcaf3('0x3b')](_0x3003fc['query']['sort']);_0x4105ef['where']=qs[_0xcaf3('0x35')](_[_0xcaf3('0x3c')](_0x3003fc['query'],_0x17b964[_0xcaf3('0x35')]),_0x3d456a);if(_0x3003fc[_0xcaf3('0x34')][_0xcaf3('0x3d')]){_0x4105ef[_0xcaf3('0x3e')]=_[_0xcaf3('0x3f')](_0x4105ef[_0xcaf3('0x3e')],{'$or':_[_0xcaf3('0x33')](_0x3d456a,function(_0x1da7e7){if(_0x1da7e7[_0xcaf3('0x30')]!=='VIRTUAL'){var _0x3e1662={};_0x3e1662[_0x1da7e7[_0xcaf3('0x2b')]]={'$like':'%'+_0x3003fc[_0xcaf3('0x34')]['filter']+'%'};return _0x3e1662;}})});}_0x4105ef=_['merge']({},_0x4105ef,_0x3003fc[_0xcaf3('0x40')]);var _0x4345bb={'where':_0x4105ef[_0xcaf3('0x3e')]};return db[_0xcaf3('0x2d')]['count'](_0x4345bb)[_0xcaf3('0x26')](function(_0x7bec3a){_0x13414b[_0xcaf3('0x1f')]=_0x7bec3a;if(_0x3003fc[_0xcaf3('0x34')][_0xcaf3('0x41')]){_0x4105ef[_0xcaf3('0x42')]=[{'all':!![]}];}return db['Migration']['findAll'](_0x4105ef);})[_0xcaf3('0x26')](function(_0x59ab4c){_0x13414b[_0xcaf3('0x43')]=_0x59ab4c;return _0x13414b;})['then'](respondWithFilteredResult(_0x38073a,_0x4105ef))[_0xcaf3('0x44')](handleError(_0x38073a,null));};
\ No newline at end of file
+var _0xdf76=['merge','options','where','Migration','includeAll','rows','catch','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','desk.js','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','limit','undefined','count','set','Content-Range','save','update','then','destroy','error','name','send','index','rawAttributes','fieldName','type','key','map','keys','query','filters','intersection','model','attributes','length','nolimit','order','filter','VIRTUAL'];(function(_0x3597f7,_0x1ba5f6){var _0x30b9e4=function(_0x371e0b){while(--_0x371e0b){_0x3597f7['push'](_0x3597f7['shift']());}};_0x30b9e4(++_0x1ba5f6);}(_0xdf76,0x1d5));var _0x6df7=function(_0x28b0a4,_0x2ea758){_0x28b0a4=_0x28b0a4-0x0;var _0x105ce6=_0xdf76[_0x28b0a4];return _0x105ce6;};'use strict';var emlformat=require(_0x6df7('0x0'));var rimraf=require(_0x6df7('0x1'));var zipdir=require(_0x6df7('0x2'));var jsonpatch=require(_0x6df7('0x3'));var rp=require(_0x6df7('0x4'));var moment=require('moment');var BPromise=require(_0x6df7('0x5'));var Mustache=require(_0x6df7('0x6'));var util=require(_0x6df7('0x7'));var path=require(_0x6df7('0x8'));var sox=require(_0x6df7('0x9'));var csv=require(_0x6df7('0xa'));var ejs=require(_0x6df7('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x6df7('0xc'));var squel=require(_0x6df7('0xd'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x6df7('0xe'));var toCsv=require(_0x6df7('0xa'));var querystring=require(_0x6df7('0xf'));var Papa=require(_0x6df7('0x10'));var Redis=require(_0x6df7('0x11'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x6df7('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x6df7('0x13'))(_0x6df7('0x14'));var utils=require(_0x6df7('0x15'));var config=require(_0x6df7('0x16'));var licenseUtil=require(_0x6df7('0x17'));var db=require(_0x6df7('0x18'))['db'];function respondWithStatusCode(_0x2859cd,_0x75457c){_0x75457c=_0x75457c||0xcc;return function(_0xf5591b){if(_0xf5591b){return _0x2859cd[_0x6df7('0x19')](_0x75457c);}return _0x2859cd[_0x6df7('0x1a')](_0x75457c)[_0x6df7('0x1b')]();};}function respondWithResult(_0x4b638d,_0x431b93){_0x431b93=_0x431b93||0xc8;return function(_0x3fed69){if(_0x3fed69){return _0x4b638d[_0x6df7('0x1a')](_0x431b93)[_0x6df7('0x1c')](_0x3fed69);}};}function respondWithFilteredResult(_0x371020,_0x15d1dd){return function(_0x3cd321){if(_0x3cd321){var _0x3128ea=typeof _0x15d1dd[_0x6df7('0x1d')]==='undefined'&&typeof _0x15d1dd[_0x6df7('0x1e')]===_0x6df7('0x1f');var _0x4402b6=_0x3cd321[_0x6df7('0x20')];var _0x4f9211=_0x3128ea?0x0:_0x15d1dd[_0x6df7('0x1d')];var _0x1cfce0=_0x3128ea?_0x3cd321[_0x6df7('0x20')]:_0x15d1dd['offset']+_0x15d1dd[_0x6df7('0x1e')];var _0x195eb6;if(_0x1cfce0>=_0x4402b6){_0x1cfce0=_0x4402b6;_0x195eb6=0xc8;}else{_0x195eb6=0xce;}_0x371020[_0x6df7('0x1a')](_0x195eb6);return _0x371020[_0x6df7('0x21')](_0x6df7('0x22'),_0x4f9211+'-'+_0x1cfce0+'/'+_0x4402b6)[_0x6df7('0x1c')](_0x3cd321);}return null;};}function patchUpdates(_0x23373d){return function(_0x138f4d){try{jsonpatch['apply'](_0x138f4d,_0x23373d,!![]);}catch(_0x48e841){return BPromise['reject'](_0x48e841);}return _0x138f4d[_0x6df7('0x23')]();};}function saveUpdates(_0x3f52ab,_0x16fab9){return function(_0x2e5c71){if(_0x2e5c71){return _0x2e5c71[_0x6df7('0x24')](_0x3f52ab)[_0x6df7('0x25')](function(_0x49f826){return _0x49f826;});}return null;};}function removeEntity(_0x37ddec,_0x20e6eb){return function(_0x3102e2){if(_0x3102e2){return _0x3102e2[_0x6df7('0x26')]()[_0x6df7('0x25')](function(){_0x37ddec['status'](0xcc)[_0x6df7('0x1b')]();});}};}function handleEntityNotFound(_0xa747b9,_0x468659){return function(_0x25d601){if(!_0x25d601){_0xa747b9['sendStatus'](0x194);}return _0x25d601;};}function handleError(_0x1fdad9,_0x2e1a35){_0x2e1a35=_0x2e1a35||0x1f4;return function(_0x470836){logger[_0x6df7('0x27')](_0x470836['stack']);if(_0x470836[_0x6df7('0x28')]){delete _0x470836[_0x6df7('0x28')];}_0x1fdad9[_0x6df7('0x1a')](_0x2e1a35)[_0x6df7('0x29')](_0x470836);};}exports[_0x6df7('0x2a')]=function(_0x5eb080,_0x3c8aed){var _0x3bb032={},_0x32a58e={},_0x2821d4={'count':0x0,'rows':[]};var _0x22c68c=_['map'](db['Migration'][_0x6df7('0x2b')],function(_0x23294a){return{'name':_0x23294a[_0x6df7('0x2c')],'type':_0x23294a[_0x6df7('0x2d')][_0x6df7('0x2e')]};});_0x32a58e['model']=_[_0x6df7('0x2f')](_0x22c68c,_0x6df7('0x28'));_0x32a58e['query']=_[_0x6df7('0x30')](_0x5eb080[_0x6df7('0x31')]);_0x32a58e[_0x6df7('0x32')]=_[_0x6df7('0x33')](_0x32a58e[_0x6df7('0x34')],_0x32a58e[_0x6df7('0x31')]);_0x3bb032[_0x6df7('0x35')]=_['intersection'](_0x32a58e[_0x6df7('0x34')],qs['fields'](_0x5eb080['query']['fields']));_0x3bb032[_0x6df7('0x35')]=_0x3bb032[_0x6df7('0x35')][_0x6df7('0x36')]?_0x3bb032[_0x6df7('0x35')]:_0x32a58e[_0x6df7('0x34')];if(!_0x5eb080[_0x6df7('0x31')]['hasOwnProperty'](_0x6df7('0x37'))){_0x3bb032[_0x6df7('0x1e')]=qs[_0x6df7('0x1e')](_0x5eb080['query'][_0x6df7('0x1e')]);_0x3bb032[_0x6df7('0x1d')]=qs[_0x6df7('0x1d')](_0x5eb080['query'][_0x6df7('0x1d')]);}_0x3bb032[_0x6df7('0x38')]=qs['sort'](_0x5eb080[_0x6df7('0x31')]['sort']);_0x3bb032['where']=qs['filters'](_['pick'](_0x5eb080[_0x6df7('0x31')],_0x32a58e[_0x6df7('0x32')]),_0x22c68c);if(_0x5eb080['query'][_0x6df7('0x39')]){_0x3bb032['where']=_['merge'](_0x3bb032['where'],{'$or':_[_0x6df7('0x2f')](_0x22c68c,function(_0x36fea4){if(_0x36fea4[_0x6df7('0x2d')]!==_0x6df7('0x3a')){var _0x4bc0ff={};_0x4bc0ff[_0x36fea4[_0x6df7('0x28')]]={'$like':'%'+_0x5eb080[_0x6df7('0x31')][_0x6df7('0x39')]+'%'};return _0x4bc0ff;}})});}_0x3bb032=_[_0x6df7('0x3b')]({},_0x3bb032,_0x5eb080[_0x6df7('0x3c')]);var _0x2346d6={'where':_0x3bb032[_0x6df7('0x3d')]};return db[_0x6df7('0x3e')][_0x6df7('0x20')](_0x2346d6)[_0x6df7('0x25')](function(_0x34ff4a){_0x2821d4['count']=_0x34ff4a;if(_0x5eb080['query'][_0x6df7('0x3f')]){_0x3bb032['include']=[{'all':!![]}];}return db[_0x6df7('0x3e')]['findAll'](_0x3bb032);})[_0x6df7('0x25')](function(_0xccb2bf){_0x2821d4[_0x6df7('0x40')]=_0xccb2bf;return _0x2821d4;})[_0x6df7('0x25')](respondWithFilteredResult(_0x3c8aed,_0x3bb032))[_0x6df7('0x41')](handleError(_0x3c8aed,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8337=['api','bluebird','path','../../config/environment','./migration.attributes','define','Migration','migrations','lodash','util'];(function(_0x170a8f,_0xc8d837){var _0x12cefd=function(_0xe15279){while(--_0xe15279){_0x170a8f['push'](_0x170a8f['shift']());}};_0x12cefd(++_0xc8d837);}(_0x8337,0x15c));var _0x7833=function(_0x41dbfd,_0x33ff74){_0x41dbfd=_0x41dbfd-0x0;var _0x5eb024=_0x8337[_0x41dbfd];return _0x5eb024;};'use strict';var _=require(_0x7833('0x0'));var util=require(_0x7833('0x1'));var logger=require('../../config/logger')(_0x7833('0x2'));var moment=require('moment');var BPromise=require(_0x7833('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x7833('0x4'));var rimraf=require('rimraf');var config=require(_0x7833('0x5'));var attributes=require(_0x7833('0x6'));module['exports']=function(_0x1a63cb,_0x3cdaae){return _0x1a63cb[_0x7833('0x7')](_0x7833('0x8'),attributes,{'tableName':_0x7833('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x3932=['rimraf','../../config/environment','./migration.attributes','exports','define','Migration','migrations','lodash','util','api','bluebird','request-promise'];(function(_0x4f39d3,_0x3822e1){var _0x46a500=function(_0x3d4d52){while(--_0x3d4d52){_0x4f39d3['push'](_0x4f39d3['shift']());}};_0x46a500(++_0x3822e1);}(_0x3932,0xa3));var _0x2393=function(_0x511f54,_0x1d891c){_0x511f54=_0x511f54-0x0;var _0x236bb=_0x3932[_0x511f54];return _0x236bb;};'use strict';var _=require(_0x2393('0x0'));var util=require(_0x2393('0x1'));var logger=require('../../config/logger')(_0x2393('0x2'));var moment=require('moment');var BPromise=require(_0x2393('0x3'));var rp=require(_0x2393('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x2393('0x5'));var config=require(_0x2393('0x6'));var attributes=require(_0x2393('0x7'));module[_0x2393('0x8')]=function(_0x39a6eb,_0x24ffcd){return _0x39a6eb[_0x2393('0x9')](_0x2393('0xa'),attributes,{'tableName':_0x2393('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x682e=['lodash','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','Migration,\x20%s,\x20%s','debug','request\x20sent','error','code','message'];(function(_0x347541,_0x137cf){var _0x5c0e38=function(_0x32a276){while(--_0x32a276){_0x347541['push'](_0x347541['shift']());}};_0x5c0e38(++_0x137cf);}(_0x682e,0x1ce));var _0xe682=function(_0x1d5fbb,_0x1e072b){_0x1d5fbb=_0x1d5fbb-0x0;var _0x1f49bd=_0x682e[_0x1d5fbb];return _0x1f49bd;};'use strict';var _=require(_0xe682('0x0'));var util=require(_0xe682('0x1'));var moment=require(_0xe682('0x2'));var BPromise=require(_0xe682('0x3'));var rs=require(_0xe682('0x4'));var fs=require('fs');var Redis=require(_0xe682('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0xe682('0x6'));var logger=require(_0xe682('0x7'))(_0xe682('0x8'));var config=require(_0xe682('0x9'));var jayson=require(_0xe682('0xa'));var client=jayson[_0xe682('0xb')][_0xe682('0xc')]({'port':0x232a});function respondWithRpcPromise(_0xd6995,_0x68a2e3,_0x1ab428){return new BPromise(function(_0x4e7e7d,_0x1817bf){return client[_0xe682('0xd')](_0xd6995,_0x1ab428)[_0xe682('0xe')](function(_0x2c098f){logger[_0xe682('0xf')](_0xe682('0x10'),_0x68a2e3,'request\x20sent');logger[_0xe682('0x11')]('Migration,\x20%s,\x20%s,\x20%s',_0x68a2e3,_0xe682('0x12'),JSON['stringify'](_0x2c098f));if(_0x2c098f['error']){if(_0x2c098f[_0xe682('0x13')][_0xe682('0x14')]===0x1f4){logger[_0xe682('0x13')](_0xe682('0x10'),_0x68a2e3,_0x2c098f[_0xe682('0x13')][_0xe682('0x15')]);return _0x1817bf(_0x2c098f['error'][_0xe682('0x15')]);}logger[_0xe682('0x13')](_0xe682('0x10'),_0x68a2e3,_0x2c098f[_0xe682('0x13')][_0xe682('0x15')]);return _0x4e7e7d(_0x2c098f[_0xe682('0x13')][_0xe682('0x15')]);}else{logger[_0xe682('0xf')]('Migration,\x20%s,\x20%s',_0x68a2e3,_0xe682('0x12'));_0x4e7e7d(_0x2c098f['result']['message']);}})['catch'](function(_0x14fc2f){logger[_0xe682('0x13')](_0xe682('0x10'),_0x68a2e3,_0x14fc2f);_0x1817bf(_0x14fc2f);});});}
\ No newline at end of file
+var _0xbd99=['../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','request','Migration,\x20%s,\x20%s','request\x20sent','debug','Migration,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','lodash','util','bluebird','randomstring'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0xbd99,0x1df));var _0x9bd9=function(_0x1fcbe9,_0xc1badc){_0x1fcbe9=_0x1fcbe9-0x0;var _0x10ffbd=_0xbd99[_0x1fcbe9];return _0x10ffbd;};'use strict';var _=require(_0x9bd9('0x0'));var util=require(_0x9bd9('0x1'));var moment=require('moment');var BPromise=require(_0x9bd9('0x2'));var rs=require(_0x9bd9('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x9bd9('0x4'))['db'];var utils=require(_0x9bd9('0x5'));var logger=require(_0x9bd9('0x6'))(_0x9bd9('0x7'));var config=require(_0x9bd9('0x8'));var jayson=require(_0x9bd9('0x9'));var client=jayson[_0x9bd9('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0x3b41ea,_0x241303,_0x28b83f){return new BPromise(function(_0x7ddd62,_0x441225){return client[_0x9bd9('0xb')](_0x3b41ea,_0x28b83f)['then'](function(_0x865dc1){logger['info'](_0x9bd9('0xc'),_0x241303,_0x9bd9('0xd'));logger[_0x9bd9('0xe')](_0x9bd9('0xf'),_0x241303,_0x9bd9('0xd'),JSON[_0x9bd9('0x10')](_0x865dc1));if(_0x865dc1[_0x9bd9('0x11')]){if(_0x865dc1['error'][_0x9bd9('0x12')]===0x1f4){logger['error']('Migration,\x20%s,\x20%s',_0x241303,_0x865dc1[_0x9bd9('0x11')]['message']);return _0x441225(_0x865dc1[_0x9bd9('0x11')][_0x9bd9('0x13')]);}logger[_0x9bd9('0x11')]('Migration,\x20%s,\x20%s',_0x241303,_0x865dc1[_0x9bd9('0x11')]['message']);return _0x7ddd62(_0x865dc1[_0x9bd9('0x11')][_0x9bd9('0x13')]);}else{logger['info'](_0x9bd9('0xc'),_0x241303,_0x9bd9('0xd'));_0x7ddd62(_0x865dc1[_0x9bd9('0x14')][_0x9bd9('0x13')]);}})['catch'](function(_0x57ffcb){logger[_0x9bd9('0x11')](_0x9bd9('0xc'),_0x241303,_0x57ffcb);_0x441225(_0x57ffcb);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xef7e=['create','put','update','destroy','exports','multer','path','connect-timeout','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./network.controller','get','isAuthenticated','index','/:id','show','post'];(function(_0x276fac,_0x8059f3){var _0x410c97=function(_0xb473d1){while(--_0xb473d1){_0x276fac['push'](_0x276fac['shift']());}};_0x410c97(++_0x8059f3);}(_0xef7e,0x194));var _0xeef7=function(_0x122ef9,_0x451d2a){_0x122ef9=_0x122ef9-0x0;var _0x42fba0=_0xef7e[_0x122ef9];return _0x42fba0;};'use strict';var multer=require(_0xeef7('0x0'));var util=require('util');var path=require(_0xeef7('0x1'));var timeout=require(_0xeef7('0x2'));var express=require('express');var router=express[_0xeef7('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0xeef7('0x4'));var interaction=require(_0xeef7('0x5'));var config=require(_0xeef7('0x6'));var controller=require(_0xeef7('0x7'));router[_0xeef7('0x8')]('/',auth[_0xeef7('0x9')](),controller[_0xeef7('0xa')]);router[_0xeef7('0x8')](_0xeef7('0xb'),auth[_0xeef7('0x9')](),controller[_0xeef7('0xc')]);router[_0xeef7('0xd')]('/',auth[_0xeef7('0x9')](),controller[_0xeef7('0xe')]);router[_0xeef7('0xf')](_0xeef7('0xb'),auth['isAuthenticated'](),controller[_0xeef7('0x10')]);router['delete'](_0xeef7('0xb'),auth[_0xeef7('0x9')](),controller[_0xeef7('0x11')]);module[_0xeef7('0x12')]=router;
\ No newline at end of file
+var _0xca6e=['../../config/environment','get','isAuthenticated','index','/:id','show','post','create','put','update','delete','exports','multer','util','path','connect-timeout','express','fs-extra','../../components/auth/service'];(function(_0x16f6ca,_0x3bb671){var _0x483cc3=function(_0x57cf74){while(--_0x57cf74){_0x16f6ca['push'](_0x16f6ca['shift']());}};_0x483cc3(++_0x3bb671);}(_0xca6e,0x1c1));var _0xeca6=function(_0x3f3b02,_0x3870c2){_0x3f3b02=_0x3f3b02-0x0;var _0x1f42f1=_0xca6e[_0x3f3b02];return _0x1f42f1;};'use strict';var multer=require(_0xeca6('0x0'));var util=require(_0xeca6('0x1'));var path=require(_0xeca6('0x2'));var timeout=require(_0xeca6('0x3'));var express=require(_0xeca6('0x4'));var router=express['Router']();var fs_extra=require(_0xeca6('0x5'));var auth=require(_0xeca6('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0xeca6('0x7'));var controller=require('./network.controller');router[_0xeca6('0x8')]('/',auth[_0xeca6('0x9')](),controller[_0xeca6('0xa')]);router['get'](_0xeca6('0xb'),auth['isAuthenticated'](),controller[_0xeca6('0xc')]);router[_0xeca6('0xd')]('/',auth[_0xeca6('0x9')](),controller[_0xeca6('0xe')]);router[_0xeca6('0xf')]('/:id',auth[_0xeca6('0x9')](),controller[_0xeca6('0x10')]);router[_0xeca6('0x11')](_0xeca6('0xb'),auth[_0xeca6('0x9')](),controller['destroy']);module[_0xeca6('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9dfb=['localnet','stun','STRING','exports','ENUM'];(function(_0x273056,_0x4ca997){var _0x1e1929=function(_0x14de13){while(--_0x14de13){_0x273056['push'](_0x273056['shift']());}};_0x1e1929(++_0x4ca997);}(_0x9dfb,0x71));var _0xb9df=function(_0xf9a272,_0xe5186d){_0xf9a272=_0xf9a272-0x0;var _0x12dd75=_0x9dfb[_0xf9a272];return _0x12dd75;};'use strict';var Sequelize=require('sequelize');module[_0xb9df('0x0')]={'type':{'type':Sequelize[_0xb9df('0x1')](_0xb9df('0x2'),'externip',_0xb9df('0x3'),'turn')},'value':{'type':Sequelize[_0xb9df('0x4')]},'username':{'type':Sequelize[_0xb9df('0x4')]},'password':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0x859c=['localnet','externip','turn','STRING','exports','ENUM'];(function(_0x8c43de,_0x90ff31){var _0xa6591b=function(_0x469716){while(--_0x469716){_0x8c43de['push'](_0x8c43de['shift']());}};_0xa6591b(++_0x90ff31);}(_0x859c,0x1d8));var _0xc859=function(_0x94f746,_0x575268){_0x94f746=_0x94f746-0x0;var _0x5d33a0=_0x859c[_0x94f746];return _0x5d33a0;};'use strict';var Sequelize=require('sequelize');module[_0xc859('0x0')]={'type':{'type':Sequelize[_0xc859('0x1')](_0xc859('0x2'),_0xc859('0x3'),'stun',_0xc859('0x4'))},'value':{'type':Sequelize[_0xc859('0x5')]},'username':{'type':Sequelize['STRING']},'password':{'type':Sequelize[_0xc859('0x5')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x96a2=['merge','VIRTUAL','count','includeAll','include','findAll','rows','show','keys','rawAttributes','intersection','options','find','create','body','toUpperCase','STUN','readFileSync','join','server/files/templates/stun_multiple.ejs','utf8','render','writeFileSync','/etc/asterisk/stun_xcally.conf','Reload','res_stun_monitor.so','root','/etc/asterisk/turn_xcally.conf','server/files/templates/network.ejs','format','/etc/asterisk/sip_xcally_%s.conf','toLowerCase','chan_sip.so','sequelize','transaction','params','TURN','server/files/templates/turn_multiple.ejs','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','jayson/promise','client','http','request','then','info','request\x20sent','stringify','error','Network,\x20%s,\x20%s','message','result','catch','sendStatus','status','end','json','offset','limit','undefined','set','Content-Range','apply','save','update','destroy','stack','name','send','index','Network','fieldName','type','key','model','query','attributes','fields','length','nolimit','order','sort','where','filters','pick','filter'];(function(_0x4f4547,_0x2b7b2f){var _0x5541de=function(_0x48fd60){while(--_0x48fd60){_0x4f4547['push'](_0x4f4547['shift']());}};_0x5541de(++_0x2b7b2f);}(_0x96a2,0x96));var _0x296a=function(_0x1b62fa,_0x451dc2){_0x1b62fa=_0x1b62fa-0x0;var _0x11b69e=_0x96a2[_0x1b62fa];return _0x11b69e;};'use strict';var emlformat=require(_0x296a('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x296a('0x1'));var jsonpatch=require(_0x296a('0x2'));var rp=require(_0x296a('0x3'));var moment=require(_0x296a('0x4'));var BPromise=require(_0x296a('0x5'));var Mustache=require(_0x296a('0x6'));var util=require(_0x296a('0x7'));var path=require(_0x296a('0x8'));var sox=require(_0x296a('0x9'));var csv=require(_0x296a('0xa'));var ejs=require(_0x296a('0xb'));var fs=require('fs');var fs_extra=require(_0x296a('0xc'));var _=require(_0x296a('0xd'));var squel=require(_0x296a('0xe'));var crypto=require(_0x296a('0xf'));var jsforce=require(_0x296a('0x10'));var deskjs=require(_0x296a('0x11'));var toCsv=require(_0x296a('0xa'));var querystring=require('querystring');var Papa=require(_0x296a('0x12'));var Redis=require(_0x296a('0x13'));var authService=require('../../components/auth/service');var qs=require(_0x296a('0x14'));var as=require(_0x296a('0x15'));var hardwareService=require(_0x296a('0x16'));var logger=require(_0x296a('0x17'))(_0x296a('0x18'));var utils=require(_0x296a('0x19'));var config=require(_0x296a('0x1a'));var licenseUtil=require('../../config/license/util');var db=require(_0x296a('0x1b'))['db'];var jayson=require(_0x296a('0x1c'));var client=jayson[_0x296a('0x1d')][_0x296a('0x1e')]({'port':0x232a});function respondWithRpcPromise(_0x28a7ac,_0x4cedd8,_0x29f141,_0xba0fe9){return new BPromise(function(_0x495be8,_0xc1f766){var _0x1332ea=_0xba0fe9||client;return _0x1332ea[_0x296a('0x1f')](_0x28a7ac,_0x29f141)[_0x296a('0x20')](function(_0x99b163){logger[_0x296a('0x21')]('Network,\x20%s,\x20%s',_0x4cedd8,_0x296a('0x22'));logger['debug']('Network,\x20%s,\x20%s,\x20%s',_0x4cedd8,'request\x20sent',JSON[_0x296a('0x23')](_0x99b163));if(_0x99b163[_0x296a('0x24')]){if(_0x99b163[_0x296a('0x24')]['code']===0x1f4){logger['error'](_0x296a('0x25'),_0x4cedd8,_0x99b163['error'][_0x296a('0x26')]);return _0xc1f766(_0x99b163[_0x296a('0x24')][_0x296a('0x26')]);}logger['error'](_0x296a('0x25'),_0x4cedd8,_0x99b163[_0x296a('0x24')][_0x296a('0x26')]);return _0x495be8(_0x99b163['error'][_0x296a('0x26')]);}else{logger[_0x296a('0x21')]('Network,\x20%s,\x20%s',_0x4cedd8,'request\x20sent');_0x495be8(_0x99b163[_0x296a('0x27')][_0x296a('0x26')]);}})[_0x296a('0x28')](function(_0x37f44e){logger[_0x296a('0x24')](_0x296a('0x25'),_0x4cedd8,_0x37f44e);_0xc1f766(_0x37f44e);});});}function respondWithStatusCode(_0x2cff01,_0x2cf007){_0x2cf007=_0x2cf007||0xcc;return function(_0x37f6d4){if(_0x37f6d4){return _0x2cff01[_0x296a('0x29')](_0x2cf007);}return _0x2cff01[_0x296a('0x2a')](_0x2cf007)[_0x296a('0x2b')]();};}function respondWithResult(_0x3f430c,_0xf6b922){_0xf6b922=_0xf6b922||0xc8;return function(_0x2177df){if(_0x2177df){return _0x3f430c['status'](_0xf6b922)[_0x296a('0x2c')](_0x2177df);}};}function respondWithFilteredResult(_0x43911b,_0x526ac5){return function(_0x2c4bed){if(_0x2c4bed){var _0x2a1e83=typeof _0x526ac5[_0x296a('0x2d')]==='undefined'&&typeof _0x526ac5[_0x296a('0x2e')]===_0x296a('0x2f');var _0x502944=_0x2c4bed['count'];var _0x15e9ac=_0x2a1e83?0x0:_0x526ac5[_0x296a('0x2d')];var _0x2d7209=_0x2a1e83?_0x2c4bed['count']:_0x526ac5['offset']+_0x526ac5[_0x296a('0x2e')];var _0x327260;if(_0x2d7209>=_0x502944){_0x2d7209=_0x502944;_0x327260=0xc8;}else{_0x327260=0xce;}_0x43911b[_0x296a('0x2a')](_0x327260);return _0x43911b[_0x296a('0x30')](_0x296a('0x31'),_0x15e9ac+'-'+_0x2d7209+'/'+_0x502944)[_0x296a('0x2c')](_0x2c4bed);}return null;};}function patchUpdates(_0x20d41e){return function(_0x917bf3){try{jsonpatch[_0x296a('0x32')](_0x917bf3,_0x20d41e,!![]);}catch(_0x2eae17){return BPromise['reject'](_0x2eae17);}return _0x917bf3[_0x296a('0x33')]();};}function saveUpdates(_0x589817,_0x4214d9){return function(_0x518b73){if(_0x518b73){return _0x518b73[_0x296a('0x34')](_0x589817)[_0x296a('0x20')](function(_0x22076b){return _0x22076b;});}return null;};}function removeEntity(_0x151741,_0x2d34ca){return function(_0x4f4573){if(_0x4f4573){return _0x4f4573[_0x296a('0x35')]()[_0x296a('0x20')](function(){_0x151741[_0x296a('0x2a')](0xcc)[_0x296a('0x2b')]();});}};}function handleEntityNotFound(_0x5be6b6,_0x114173){return function(_0x47c100){if(!_0x47c100){_0x5be6b6['sendStatus'](0x194);}return _0x47c100;};}function handleError(_0x56e562,_0x1c653d){_0x1c653d=_0x1c653d||0x1f4;return function(_0x2c3c21){logger[_0x296a('0x24')](_0x2c3c21[_0x296a('0x36')]);if(_0x2c3c21['name']){delete _0x2c3c21[_0x296a('0x37')];}_0x56e562[_0x296a('0x2a')](_0x1c653d)[_0x296a('0x38')](_0x2c3c21);};}exports[_0x296a('0x39')]=function(_0x51c78b,_0x5f4447){var _0x5d0578={},_0x362672={},_0x1d26d1={'count':0x0,'rows':[]};var _0x1495a3=_['map'](db[_0x296a('0x3a')]['rawAttributes'],function(_0x5610dc){return{'name':_0x5610dc[_0x296a('0x3b')],'type':_0x5610dc[_0x296a('0x3c')][_0x296a('0x3d')]};});_0x362672[_0x296a('0x3e')]=_['map'](_0x1495a3,_0x296a('0x37'));_0x362672[_0x296a('0x3f')]=_['keys'](_0x51c78b[_0x296a('0x3f')]);_0x362672['filters']=_['intersection'](_0x362672['model'],_0x362672[_0x296a('0x3f')]);_0x5d0578[_0x296a('0x40')]=_['intersection'](_0x362672[_0x296a('0x3e')],qs[_0x296a('0x41')](_0x51c78b[_0x296a('0x3f')][_0x296a('0x41')]));_0x5d0578[_0x296a('0x40')]=_0x5d0578[_0x296a('0x40')][_0x296a('0x42')]?_0x5d0578[_0x296a('0x40')]:_0x362672[_0x296a('0x3e')];if(!_0x51c78b[_0x296a('0x3f')]['hasOwnProperty'](_0x296a('0x43'))){_0x5d0578[_0x296a('0x2e')]=qs['limit'](_0x51c78b[_0x296a('0x3f')]['limit']);_0x5d0578['offset']=qs[_0x296a('0x2d')](_0x51c78b[_0x296a('0x3f')][_0x296a('0x2d')]);}_0x5d0578[_0x296a('0x44')]=qs[_0x296a('0x45')](_0x51c78b[_0x296a('0x3f')][_0x296a('0x45')]);_0x5d0578[_0x296a('0x46')]=qs[_0x296a('0x47')](_[_0x296a('0x48')](_0x51c78b[_0x296a('0x3f')],_0x362672[_0x296a('0x47')]),_0x1495a3);if(_0x51c78b[_0x296a('0x3f')][_0x296a('0x49')]){_0x5d0578[_0x296a('0x46')]=_[_0x296a('0x4a')](_0x5d0578['where'],{'$or':_['map'](_0x1495a3,function(_0x3c9f9c){if(_0x3c9f9c['type']!==_0x296a('0x4b')){var _0x4a7828={};_0x4a7828[_0x3c9f9c[_0x296a('0x37')]]={'$like':'%'+_0x51c78b[_0x296a('0x3f')]['filter']+'%'};return _0x4a7828;}})});}_0x5d0578=_[_0x296a('0x4a')]({},_0x5d0578,_0x51c78b['options']);var _0x431ac5={'where':_0x5d0578[_0x296a('0x46')]};return db['Network'][_0x296a('0x4c')](_0x431ac5)[_0x296a('0x20')](function(_0x533607){_0x1d26d1[_0x296a('0x4c')]=_0x533607;if(_0x51c78b[_0x296a('0x3f')][_0x296a('0x4d')]){_0x5d0578[_0x296a('0x4e')]=[{'all':!![]}];}return db[_0x296a('0x3a')][_0x296a('0x4f')](_0x5d0578);})[_0x296a('0x20')](function(_0x3fcb86){_0x1d26d1[_0x296a('0x50')]=_0x3fcb86;return _0x1d26d1;})[_0x296a('0x20')](respondWithFilteredResult(_0x5f4447,_0x5d0578))[_0x296a('0x28')](handleError(_0x5f4447,null));};exports[_0x296a('0x51')]=function(_0x23ee87,_0x403e9e){var _0x23aefa={'raw':!![],'where':{'id':_0x23ee87['params']['id']}},_0x3d1115={};_0x3d1115[_0x296a('0x3e')]=_[_0x296a('0x52')](db[_0x296a('0x3a')][_0x296a('0x53')]);_0x3d1115[_0x296a('0x3f')]=_[_0x296a('0x52')](_0x23ee87[_0x296a('0x3f')]);_0x3d1115[_0x296a('0x47')]=_['intersection'](_0x3d1115[_0x296a('0x3e')],_0x3d1115[_0x296a('0x3f')]);_0x23aefa[_0x296a('0x40')]=_[_0x296a('0x54')](_0x3d1115[_0x296a('0x3e')],qs['fields'](_0x23ee87['query'][_0x296a('0x41')]));_0x23aefa[_0x296a('0x40')]=_0x23aefa[_0x296a('0x40')][_0x296a('0x42')]?_0x23aefa[_0x296a('0x40')]:_0x3d1115[_0x296a('0x3e')];if(_0x23ee87[_0x296a('0x3f')][_0x296a('0x4d')]){_0x23aefa[_0x296a('0x4e')]=[{'all':!![]}];}_0x23aefa=_['merge']({},_0x23aefa,_0x23ee87[_0x296a('0x55')]);return db[_0x296a('0x3a')][_0x296a('0x56')](_0x23aefa)['then'](handleEntityNotFound(_0x403e9e,null))[_0x296a('0x20')](respondWithResult(_0x403e9e,null))[_0x296a('0x28')](handleError(_0x403e9e,null));};exports[_0x296a('0x57')]=function(_0x165a8c,_0x46ab3e,_0x3d2019){var _0x19df68;return db['sequelize']['transaction'](function(_0x1463eb){return db['Network'][_0x296a('0x57')](_0x165a8c[_0x296a('0x58')],{'raw':!![]})[_0x296a('0x20')](function(_0x47038f){_0x19df68=_0x47038f;return db[_0x296a('0x3a')][_0x296a('0x4f')]({'where':{'type':_0x165a8c[_0x296a('0x58')][_0x296a('0x3c')]},'raw':!![]});})[_0x296a('0x20')](function(_0x401dba){if(_0x19df68['type'][_0x296a('0x59')]()==_0x296a('0x5a')){var _0x3fe627=fs[_0x296a('0x5b')](path[_0x296a('0x5c')](config['root'],_0x296a('0x5d')),_0x296a('0x5e'));var _0x2593cd=ejs[_0x296a('0x5f')](_0x3fe627,{'networks':_0x401dba||[]});fs[_0x296a('0x60')](_0x296a('0x61'),_0x2593cd);return respondWithRpcPromise(_0x296a('0x62'),_0x296a('0x57'),{'module':_0x296a('0x63')});}else if(_0x19df68[_0x296a('0x3c')]['toUpperCase']()=='TURN'){var _0x2f2ca0=fs[_0x296a('0x5b')](path['join'](config[_0x296a('0x64')],'server/files/templates/turn_multiple.ejs'),_0x296a('0x5e'));var _0x3b33df=ejs[_0x296a('0x5f')](_0x2f2ca0,{'networks':_0x401dba||[]});fs['writeFileSync'](_0x296a('0x65'),_0x3b33df);return respondWithRpcPromise('Reload',_0x296a('0x57'),{'module':_0x296a('0x63')});}else{var _0x537b07=fs[_0x296a('0x5b')](path[_0x296a('0x5c')](config[_0x296a('0x64')],_0x296a('0x66')),_0x296a('0x5e'));var _0x34bdfd=ejs['render'](_0x537b07,{'networks':_0x401dba||[]});fs[_0x296a('0x60')](util[_0x296a('0x67')](_0x296a('0x68'),_0x165a8c[_0x296a('0x58')]['type'][_0x296a('0x69')]()),_0x34bdfd);return respondWithRpcPromise(_0x296a('0x62'),_0x296a('0x57'),{'module':_0x296a('0x6a')});}return null;})[_0x296a('0x20')](function(){return _0x19df68;});})['then'](respondWithResult(_0x46ab3e,0xc9))[_0x296a('0x28')](handleError(_0x46ab3e,null));};exports[_0x296a('0x34')]=function(_0x42e09c,_0x3728e3,_0x1f73b8){var _0x91d553;return db[_0x296a('0x6b')][_0x296a('0x6c')](function(_0x50d4c6){return db['Network'][_0x296a('0x56')]({'where':{'id':_0x42e09c['params']['id']}})[_0x296a('0x20')](handleEntityNotFound(_0x3728e3,null))[_0x296a('0x20')](saveUpdates(_0x42e09c[_0x296a('0x58')],null))[_0x296a('0x20')](function(_0x13c938){if(_0x13c938){_0x91d553=_0x13c938;return db[_0x296a('0x3a')][_0x296a('0x4f')]({'where':{'type':_0x91d553[_0x296a('0x3c')]},'raw':!![]});}return null;})[_0x296a('0x20')](function(_0x5aca44){if(_0x91d553[_0x296a('0x3c')][_0x296a('0x59')]()=='STUN'){var _0x2ee722=fs[_0x296a('0x5b')](path[_0x296a('0x5c')](config[_0x296a('0x64')],_0x296a('0x5d')),_0x296a('0x5e'));var _0x63004e=ejs[_0x296a('0x5f')](_0x2ee722,{'networks':_0x5aca44||[]});fs[_0x296a('0x60')](_0x296a('0x61'),_0x63004e);return respondWithRpcPromise(_0x296a('0x62'),_0x296a('0x34'),{'module':_0x296a('0x63')});}else if(_0x91d553[_0x296a('0x3c')][_0x296a('0x59')]()=='TURN'){var _0x738980=fs[_0x296a('0x5b')](path[_0x296a('0x5c')](config['root'],'server/files/templates/turn_multiple.ejs'),_0x296a('0x5e'));var _0x584acc=ejs[_0x296a('0x5f')](_0x738980,{'networks':_0x5aca44||[]});fs[_0x296a('0x60')](_0x296a('0x65'),_0x584acc);return respondWithRpcPromise('Reload',_0x296a('0x34'),{'module':_0x296a('0x63')});}else{var _0x1b8765=fs[_0x296a('0x5b')](path[_0x296a('0x5c')](config[_0x296a('0x64')],'server/files/templates/network.ejs'),_0x296a('0x5e'));var _0x427718=ejs['render'](_0x1b8765,{'networks':_0x5aca44||[]});fs[_0x296a('0x60')](util[_0x296a('0x67')](_0x296a('0x68'),_0x42e09c[_0x296a('0x58')][_0x296a('0x3c')][_0x296a('0x69')]()),_0x427718);return respondWithRpcPromise(_0x296a('0x62'),_0x296a('0x34'),{'module':'chan_sip.so'});}return null;})['then'](function(_0x31d5fb){if(_0x31d5fb){return _0x91d553;}return null;});})[_0x296a('0x20')](respondWithResult(_0x3728e3,null))[_0x296a('0x28')](handleError(_0x3728e3,null));};exports[_0x296a('0x35')]=function(_0x1faa25,_0x7d3470,_0x3e6634){var _0xf7c9ff;return db[_0x296a('0x3a')]['find']({'where':{'id':_0x1faa25[_0x296a('0x6d')]['id']}})[_0x296a('0x20')](function(_0x536cb3){_0xf7c9ff=_0x536cb3;return _0x536cb3;})[_0x296a('0x20')](handleEntityNotFound(_0x7d3470,null))['then'](removeEntity(_0x7d3470,null))[_0x296a('0x20')](function(){if(_0xf7c9ff){return db[_0x296a('0x3a')][_0x296a('0x4f')]({'where':{'type':_0xf7c9ff[_0x296a('0x3c')]},'raw':!![]});}})[_0x296a('0x20')](function(_0x3a3ab0){if(_0xf7c9ff[_0x296a('0x3c')]['toUpperCase']()==_0x296a('0x5a')){var _0x24ce4d=fs['readFileSync'](path[_0x296a('0x5c')](config[_0x296a('0x64')],_0x296a('0x5d')),_0x296a('0x5e'));var _0x47ecd0=ejs[_0x296a('0x5f')](_0x24ce4d,{'networks':_0x3a3ab0||[]});fs[_0x296a('0x60')]('/etc/asterisk/stun_xcally.conf',_0x47ecd0);return respondWithRpcPromise(_0x296a('0x62'),_0x296a('0x35'),{'module':_0x296a('0x63')});}else if(_0xf7c9ff[_0x296a('0x3c')][_0x296a('0x59')]()==_0x296a('0x6e')){var _0x436e36=fs[_0x296a('0x5b')](path['join'](config[_0x296a('0x64')],_0x296a('0x6f')),_0x296a('0x5e'));var _0x470f64=ejs[_0x296a('0x5f')](_0x436e36,{'networks':_0x3a3ab0||[]});fs['writeFileSync'](_0x296a('0x65'),_0x470f64);return respondWithRpcPromise('Reload',_0x296a('0x35'),{'module':_0x296a('0x63')});}else{var _0x29804e=fs[_0x296a('0x5b')](path[_0x296a('0x5c')](config['root'],_0x296a('0x66')),_0x296a('0x5e'));var _0x59d7e2=ejs[_0x296a('0x5f')](_0x29804e,{'networks':_0x3a3ab0||[]});fs[_0x296a('0x60')](util[_0x296a('0x67')](_0x296a('0x68'),_0x1faa25[_0x296a('0x58')]['type']['toLowerCase']()),_0x59d7e2);return respondWithRpcPromise('Reload',_0x296a('0x35'),{'module':_0x296a('0x6a')});}return null;})['catch'](handleError(_0x7d3470,null));};
\ No newline at end of file
+var _0x94b1=['attributes','fields','nolimit','order','sort','filters','pick','filter','where','VIRTUAL','merge','options','Network','include','findAll','show','params','rawAttributes','includeAll','find','sequelize','transaction','body','toUpperCase','join','server/files/templates/stun_multiple.ejs','render','writeFileSync','/etc/asterisk/stun_xcally.conf','Reload','res_stun_monitor.so','TURN','root','server/files/templates/turn_multiple.ejs','utf8','/etc/asterisk/turn_xcally.conf','create','server/files/templates/network.ejs','format','/etc/asterisk/sip_xcally_%s.conf','toLowerCase','STUN','readFileSync','chan_sip.so','rimraf','fast-json-patch','request-promise','moment','mustache','util','path','sox','ejs','fs-extra','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','client','http','request','then','info','Network,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','catch','status','end','json','offset','undefined','limit','count','apply','reject','save','update','destroy','send','index','map','type','key','model','name','query','keys','intersection'];(function(_0x213ed5,_0x26712a){var _0x191514=function(_0x2d9305){while(--_0x2d9305){_0x213ed5['push'](_0x213ed5['shift']());}};_0x191514(++_0x26712a);}(_0x94b1,0x102));var _0x194b=function(_0x39d85b,_0x290fc8){_0x39d85b=_0x39d85b-0x0;var _0x3f111f=_0x94b1[_0x39d85b];return _0x3f111f;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x194b('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x194b('0x1'));var rp=require(_0x194b('0x2'));var moment=require(_0x194b('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x194b('0x4'));var util=require(_0x194b('0x5'));var path=require(_0x194b('0x6'));var sox=require(_0x194b('0x7'));var csv=require('to-csv');var ejs=require(_0x194b('0x8'));var fs=require('fs');var fs_extra=require(_0x194b('0x9'));var _=require('lodash');var squel=require(_0x194b('0xa'));var crypto=require(_0x194b('0xb'));var jsforce=require(_0x194b('0xc'));var deskjs=require(_0x194b('0xd'));var toCsv=require(_0x194b('0xe'));var querystring=require(_0x194b('0xf'));var Papa=require(_0x194b('0x10'));var Redis=require(_0x194b('0x11'));var authService=require(_0x194b('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0x194b('0x13'));var hardwareService=require(_0x194b('0x14'));var logger=require(_0x194b('0x15'))('api');var utils=require(_0x194b('0x16'));var config=require(_0x194b('0x17'));var licenseUtil=require(_0x194b('0x18'));var db=require(_0x194b('0x19'))['db'];var jayson=require(_0x194b('0x1a'));var client=jayson[_0x194b('0x1b')][_0x194b('0x1c')]({'port':0x232a});function respondWithRpcPromise(_0x382d38,_0xa7b256,_0x228392,_0x3170dc){return new BPromise(function(_0xb5776f,_0x2a181c){var _0x30e66e=_0x3170dc||client;return _0x30e66e[_0x194b('0x1d')](_0x382d38,_0x228392)[_0x194b('0x1e')](function(_0x1efd3f){logger[_0x194b('0x1f')](_0x194b('0x20'),_0xa7b256,_0x194b('0x21'));logger[_0x194b('0x22')]('Network,\x20%s,\x20%s,\x20%s',_0xa7b256,'request\x20sent',JSON[_0x194b('0x23')](_0x1efd3f));if(_0x1efd3f[_0x194b('0x24')]){if(_0x1efd3f[_0x194b('0x24')][_0x194b('0x25')]===0x1f4){logger[_0x194b('0x24')](_0x194b('0x20'),_0xa7b256,_0x1efd3f[_0x194b('0x24')][_0x194b('0x26')]);return _0x2a181c(_0x1efd3f['error'][_0x194b('0x26')]);}logger['error'](_0x194b('0x20'),_0xa7b256,_0x1efd3f[_0x194b('0x24')][_0x194b('0x26')]);return _0xb5776f(_0x1efd3f[_0x194b('0x24')][_0x194b('0x26')]);}else{logger[_0x194b('0x1f')](_0x194b('0x20'),_0xa7b256,'request\x20sent');_0xb5776f(_0x1efd3f[_0x194b('0x27')]['message']);}})[_0x194b('0x28')](function(_0x1985ff){logger[_0x194b('0x24')](_0x194b('0x20'),_0xa7b256,_0x1985ff);_0x2a181c(_0x1985ff);});});}function respondWithStatusCode(_0x3f2133,_0x2a9776){_0x2a9776=_0x2a9776||0xcc;return function(_0x3f3aeb){if(_0x3f3aeb){return _0x3f2133['sendStatus'](_0x2a9776);}return _0x3f2133[_0x194b('0x29')](_0x2a9776)[_0x194b('0x2a')]();};}function respondWithResult(_0x13fc16,_0x1fa11d){_0x1fa11d=_0x1fa11d||0xc8;return function(_0x2ac3fd){if(_0x2ac3fd){return _0x13fc16[_0x194b('0x29')](_0x1fa11d)[_0x194b('0x2b')](_0x2ac3fd);}};}function respondWithFilteredResult(_0x1f3d2c,_0x15a865){return function(_0x2f5b57){if(_0x2f5b57){var _0x31276e=typeof _0x15a865[_0x194b('0x2c')]===_0x194b('0x2d')&&typeof _0x15a865[_0x194b('0x2e')]===_0x194b('0x2d');var _0x2a44c6=_0x2f5b57[_0x194b('0x2f')];var _0x15da96=_0x31276e?0x0:_0x15a865[_0x194b('0x2c')];var _0x8d6483=_0x31276e?_0x2f5b57[_0x194b('0x2f')]:_0x15a865['offset']+_0x15a865[_0x194b('0x2e')];var _0x1182fd;if(_0x8d6483>=_0x2a44c6){_0x8d6483=_0x2a44c6;_0x1182fd=0xc8;}else{_0x1182fd=0xce;}_0x1f3d2c[_0x194b('0x29')](_0x1182fd);return _0x1f3d2c['set']('Content-Range',_0x15da96+'-'+_0x8d6483+'/'+_0x2a44c6)[_0x194b('0x2b')](_0x2f5b57);}return null;};}function patchUpdates(_0x60572a){return function(_0x42e690){try{jsonpatch[_0x194b('0x30')](_0x42e690,_0x60572a,!![]);}catch(_0x597b1d){return BPromise[_0x194b('0x31')](_0x597b1d);}return _0x42e690[_0x194b('0x32')]();};}function saveUpdates(_0x25d42d,_0x4a5a0e){return function(_0x5d32c1){if(_0x5d32c1){return _0x5d32c1[_0x194b('0x33')](_0x25d42d)[_0x194b('0x1e')](function(_0x45bb82){return _0x45bb82;});}return null;};}function removeEntity(_0x472c36,_0x69b176){return function(_0x2662f4){if(_0x2662f4){return _0x2662f4[_0x194b('0x34')]()[_0x194b('0x1e')](function(){_0x472c36[_0x194b('0x29')](0xcc)[_0x194b('0x2a')]();});}};}function handleEntityNotFound(_0xb951d4,_0x49fc48){return function(_0xf4c85b){if(!_0xf4c85b){_0xb951d4['sendStatus'](0x194);}return _0xf4c85b;};}function handleError(_0x161192,_0x435482){_0x435482=_0x435482||0x1f4;return function(_0x17c31d){logger[_0x194b('0x24')](_0x17c31d['stack']);if(_0x17c31d['name']){delete _0x17c31d['name'];}_0x161192[_0x194b('0x29')](_0x435482)[_0x194b('0x35')](_0x17c31d);};}exports[_0x194b('0x36')]=function(_0x5cf69e,_0x312d2b){var _0x367c04={},_0x4cef3d={},_0x4388ac={'count':0x0,'rows':[]};var _0x205804=_[_0x194b('0x37')](db['Network']['rawAttributes'],function(_0x371e80){return{'name':_0x371e80['fieldName'],'type':_0x371e80[_0x194b('0x38')][_0x194b('0x39')]};});_0x4cef3d[_0x194b('0x3a')]=_[_0x194b('0x37')](_0x205804,_0x194b('0x3b'));_0x4cef3d[_0x194b('0x3c')]=_[_0x194b('0x3d')](_0x5cf69e[_0x194b('0x3c')]);_0x4cef3d['filters']=_[_0x194b('0x3e')](_0x4cef3d[_0x194b('0x3a')],_0x4cef3d['query']);_0x367c04[_0x194b('0x3f')]=_['intersection'](_0x4cef3d[_0x194b('0x3a')],qs[_0x194b('0x40')](_0x5cf69e[_0x194b('0x3c')][_0x194b('0x40')]));_0x367c04['attributes']=_0x367c04['attributes']['length']?_0x367c04[_0x194b('0x3f')]:_0x4cef3d[_0x194b('0x3a')];if(!_0x5cf69e[_0x194b('0x3c')]['hasOwnProperty'](_0x194b('0x41'))){_0x367c04['limit']=qs['limit'](_0x5cf69e[_0x194b('0x3c')]['limit']);_0x367c04[_0x194b('0x2c')]=qs['offset'](_0x5cf69e['query']['offset']);}_0x367c04[_0x194b('0x42')]=qs['sort'](_0x5cf69e[_0x194b('0x3c')][_0x194b('0x43')]);_0x367c04['where']=qs[_0x194b('0x44')](_[_0x194b('0x45')](_0x5cf69e[_0x194b('0x3c')],_0x4cef3d[_0x194b('0x44')]),_0x205804);if(_0x5cf69e[_0x194b('0x3c')][_0x194b('0x46')]){_0x367c04[_0x194b('0x47')]=_['merge'](_0x367c04[_0x194b('0x47')],{'$or':_[_0x194b('0x37')](_0x205804,function(_0x1261d7){if(_0x1261d7[_0x194b('0x38')]!==_0x194b('0x48')){var _0x3043cf={};_0x3043cf[_0x1261d7['name']]={'$like':'%'+_0x5cf69e['query'][_0x194b('0x46')]+'%'};return _0x3043cf;}})});}_0x367c04=_[_0x194b('0x49')]({},_0x367c04,_0x5cf69e[_0x194b('0x4a')]);var _0x40c4c6={'where':_0x367c04[_0x194b('0x47')]};return db[_0x194b('0x4b')][_0x194b('0x2f')](_0x40c4c6)['then'](function(_0x117073){_0x4388ac[_0x194b('0x2f')]=_0x117073;if(_0x5cf69e[_0x194b('0x3c')]['includeAll']){_0x367c04[_0x194b('0x4c')]=[{'all':!![]}];}return db[_0x194b('0x4b')][_0x194b('0x4d')](_0x367c04);})['then'](function(_0x3e372e){_0x4388ac['rows']=_0x3e372e;return _0x4388ac;})['then'](respondWithFilteredResult(_0x312d2b,_0x367c04))['catch'](handleError(_0x312d2b,null));};exports[_0x194b('0x4e')]=function(_0xd2cae1,_0x126a39){var _0x1812fa={'raw':!![],'where':{'id':_0xd2cae1[_0x194b('0x4f')]['id']}},_0x4aabce={};_0x4aabce[_0x194b('0x3a')]=_['keys'](db['Network'][_0x194b('0x50')]);_0x4aabce[_0x194b('0x3c')]=_[_0x194b('0x3d')](_0xd2cae1[_0x194b('0x3c')]);_0x4aabce[_0x194b('0x44')]=_[_0x194b('0x3e')](_0x4aabce[_0x194b('0x3a')],_0x4aabce[_0x194b('0x3c')]);_0x1812fa[_0x194b('0x3f')]=_[_0x194b('0x3e')](_0x4aabce['model'],qs[_0x194b('0x40')](_0xd2cae1[_0x194b('0x3c')][_0x194b('0x40')]));_0x1812fa['attributes']=_0x1812fa[_0x194b('0x3f')]['length']?_0x1812fa[_0x194b('0x3f')]:_0x4aabce[_0x194b('0x3a')];if(_0xd2cae1[_0x194b('0x3c')][_0x194b('0x51')]){_0x1812fa[_0x194b('0x4c')]=[{'all':!![]}];}_0x1812fa=_['merge']({},_0x1812fa,_0xd2cae1[_0x194b('0x4a')]);return db[_0x194b('0x4b')][_0x194b('0x52')](_0x1812fa)[_0x194b('0x1e')](handleEntityNotFound(_0x126a39,null))[_0x194b('0x1e')](respondWithResult(_0x126a39,null))[_0x194b('0x28')](handleError(_0x126a39,null));};exports['create']=function(_0x337e45,_0x56e01f,_0x5a01d7){var _0x4ab861;return db[_0x194b('0x53')][_0x194b('0x54')](function(_0x59b3ae){return db['Network']['create'](_0x337e45[_0x194b('0x55')],{'raw':!![]})[_0x194b('0x1e')](function(_0x56bb05){_0x4ab861=_0x56bb05;return db[_0x194b('0x4b')][_0x194b('0x4d')]({'where':{'type':_0x337e45[_0x194b('0x55')][_0x194b('0x38')]},'raw':!![]});})['then'](function(_0x22e962){if(_0x4ab861[_0x194b('0x38')][_0x194b('0x56')]()=='STUN'){var _0x740ede=fs['readFileSync'](path[_0x194b('0x57')](config['root'],_0x194b('0x58')),'utf8');var _0x1dc889=ejs[_0x194b('0x59')](_0x740ede,{'networks':_0x22e962||[]});fs[_0x194b('0x5a')](_0x194b('0x5b'),_0x1dc889);return respondWithRpcPromise(_0x194b('0x5c'),'create',{'module':_0x194b('0x5d')});}else if(_0x4ab861['type'][_0x194b('0x56')]()==_0x194b('0x5e')){var _0x34a411=fs['readFileSync'](path[_0x194b('0x57')](config[_0x194b('0x5f')],_0x194b('0x60')),_0x194b('0x61'));var _0x59ed32=ejs[_0x194b('0x59')](_0x34a411,{'networks':_0x22e962||[]});fs['writeFileSync'](_0x194b('0x62'),_0x59ed32);return respondWithRpcPromise(_0x194b('0x5c'),_0x194b('0x63'),{'module':_0x194b('0x5d')});}else{var _0x4c5a20=fs['readFileSync'](path[_0x194b('0x57')](config[_0x194b('0x5f')],_0x194b('0x64')),_0x194b('0x61'));var _0x377b35=ejs[_0x194b('0x59')](_0x4c5a20,{'networks':_0x22e962||[]});fs[_0x194b('0x5a')](util[_0x194b('0x65')](_0x194b('0x66'),_0x337e45[_0x194b('0x55')][_0x194b('0x38')][_0x194b('0x67')]()),_0x377b35);return respondWithRpcPromise('Reload',_0x194b('0x63'),{'module':'chan_sip.so'});}return null;})[_0x194b('0x1e')](function(){return _0x4ab861;});})[_0x194b('0x1e')](respondWithResult(_0x56e01f,0xc9))['catch'](handleError(_0x56e01f,null));};exports[_0x194b('0x33')]=function(_0x3439e7,_0x13fbbb,_0x204525){var _0x45b16f;return db[_0x194b('0x53')]['transaction'](function(_0x4f7da6){return db[_0x194b('0x4b')][_0x194b('0x52')]({'where':{'id':_0x3439e7[_0x194b('0x4f')]['id']}})[_0x194b('0x1e')](handleEntityNotFound(_0x13fbbb,null))[_0x194b('0x1e')](saveUpdates(_0x3439e7['body'],null))[_0x194b('0x1e')](function(_0x4bc159){if(_0x4bc159){_0x45b16f=_0x4bc159;return db['Network']['findAll']({'where':{'type':_0x45b16f[_0x194b('0x38')]},'raw':!![]});}return null;})[_0x194b('0x1e')](function(_0x340fba){if(_0x45b16f[_0x194b('0x38')]['toUpperCase']()==_0x194b('0x68')){var _0x7ba257=fs[_0x194b('0x69')](path[_0x194b('0x57')](config[_0x194b('0x5f')],'server/files/templates/stun_multiple.ejs'),_0x194b('0x61'));var _0x1e1f1b=ejs[_0x194b('0x59')](_0x7ba257,{'networks':_0x340fba||[]});fs[_0x194b('0x5a')](_0x194b('0x5b'),_0x1e1f1b);return respondWithRpcPromise(_0x194b('0x5c'),_0x194b('0x33'),{'module':_0x194b('0x5d')});}else if(_0x45b16f['type'][_0x194b('0x56')]()==_0x194b('0x5e')){var _0x1dd78d=fs[_0x194b('0x69')](path[_0x194b('0x57')](config[_0x194b('0x5f')],'server/files/templates/turn_multiple.ejs'),_0x194b('0x61'));var _0x3b989f=ejs[_0x194b('0x59')](_0x1dd78d,{'networks':_0x340fba||[]});fs[_0x194b('0x5a')]('/etc/asterisk/turn_xcally.conf',_0x3b989f);return respondWithRpcPromise(_0x194b('0x5c'),_0x194b('0x33'),{'module':'res_stun_monitor.so'});}else{var _0x3081fb=fs[_0x194b('0x69')](path[_0x194b('0x57')](config[_0x194b('0x5f')],_0x194b('0x64')),_0x194b('0x61'));var _0x1377a5=ejs['render'](_0x3081fb,{'networks':_0x340fba||[]});fs[_0x194b('0x5a')](util[_0x194b('0x65')]('/etc/asterisk/sip_xcally_%s.conf',_0x3439e7[_0x194b('0x55')][_0x194b('0x38')][_0x194b('0x67')]()),_0x1377a5);return respondWithRpcPromise(_0x194b('0x5c'),_0x194b('0x33'),{'module':'chan_sip.so'});}return null;})[_0x194b('0x1e')](function(_0x1c64f6){if(_0x1c64f6){return _0x45b16f;}return null;});})[_0x194b('0x1e')](respondWithResult(_0x13fbbb,null))[_0x194b('0x28')](handleError(_0x13fbbb,null));};exports[_0x194b('0x34')]=function(_0x560ce7,_0x583b1b,_0x30620e){var _0x399c71;return db['Network']['find']({'where':{'id':_0x560ce7[_0x194b('0x4f')]['id']}})[_0x194b('0x1e')](function(_0x7f1a83){_0x399c71=_0x7f1a83;return _0x7f1a83;})['then'](handleEntityNotFound(_0x583b1b,null))[_0x194b('0x1e')](removeEntity(_0x583b1b,null))[_0x194b('0x1e')](function(){if(_0x399c71){return db[_0x194b('0x4b')]['findAll']({'where':{'type':_0x399c71['type']},'raw':!![]});}})['then'](function(_0x578dd6){if(_0x399c71[_0x194b('0x38')][_0x194b('0x56')]()=='STUN'){var _0x51002e=fs[_0x194b('0x69')](path[_0x194b('0x57')](config[_0x194b('0x5f')],_0x194b('0x58')),_0x194b('0x61'));var _0x27cc68=ejs[_0x194b('0x59')](_0x51002e,{'networks':_0x578dd6||[]});fs[_0x194b('0x5a')](_0x194b('0x5b'),_0x27cc68);return respondWithRpcPromise(_0x194b('0x5c'),'destroy',{'module':'res_stun_monitor.so'});}else if(_0x399c71[_0x194b('0x38')][_0x194b('0x56')]()==_0x194b('0x5e')){var _0x19f6da=fs[_0x194b('0x69')](path[_0x194b('0x57')](config[_0x194b('0x5f')],_0x194b('0x60')),_0x194b('0x61'));var _0x3157c2=ejs[_0x194b('0x59')](_0x19f6da,{'networks':_0x578dd6||[]});fs[_0x194b('0x5a')](_0x194b('0x62'),_0x3157c2);return respondWithRpcPromise(_0x194b('0x5c'),'destroy',{'module':_0x194b('0x5d')});}else{var _0x50003a=fs[_0x194b('0x69')](path[_0x194b('0x57')](config['root'],_0x194b('0x64')),'utf8');var _0x2acd51=ejs['render'](_0x50003a,{'networks':_0x578dd6||[]});fs[_0x194b('0x5a')](util[_0x194b('0x65')](_0x194b('0x66'),_0x560ce7[_0x194b('0x55')][_0x194b('0x38')][_0x194b('0x67')]()),_0x2acd51);return respondWithRpcPromise(_0x194b('0x5c'),_0x194b('0x34'),{'module':_0x194b('0x6a')});}return null;})[_0x194b('0x28')](handleError(_0x583b1b,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x57f8=['Network','network','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./network.attributes','exports','define'];(function(_0x5d1044,_0x18f656){var _0x3cd90e=function(_0x3c40be){while(--_0x3c40be){_0x5d1044['push'](_0x5d1044['shift']());}};_0x3cd90e(++_0x18f656);}(_0x57f8,0x198));var _0x857f=function(_0x273b7e,_0x1b642f){_0x273b7e=_0x273b7e-0x0;var _0x5df145=_0x57f8[_0x273b7e];return _0x5df145;};'use strict';var _=require('lodash');var util=require(_0x857f('0x0'));var logger=require(_0x857f('0x1'))(_0x857f('0x2'));var moment=require(_0x857f('0x3'));var BPromise=require(_0x857f('0x4'));var rp=require(_0x857f('0x5'));var fs=require('fs');var path=require(_0x857f('0x6'));var rimraf=require(_0x857f('0x7'));var config=require(_0x857f('0x8'));var attributes=require(_0x857f('0x9'));module[_0x857f('0xa')]=function(_0x369c40,_0x5d22e4){return _0x369c40[_0x857f('0xb')](_0x857f('0xc'),attributes,{'tableName':_0x857f('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x4e81=['lodash','util','../../config/logger','request-promise','path','rimraf','../../config/environment','./network.attributes','exports','define','Network','network'];(function(_0x10d34b,_0x4fef76){var _0x92b0bf=function(_0x16e291){while(--_0x16e291){_0x10d34b['push'](_0x10d34b['shift']());}};_0x92b0bf(++_0x4fef76);}(_0x4e81,0x1bc));var _0x14e8=function(_0x107f10,_0x5529f2){_0x107f10=_0x107f10-0x0;var _0x811cab=_0x4e81[_0x107f10];return _0x811cab;};'use strict';var _=require(_0x14e8('0x0'));var util=require(_0x14e8('0x1'));var logger=require(_0x14e8('0x2'))('api');var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0x14e8('0x3'));var fs=require('fs');var path=require(_0x14e8('0x4'));var rimraf=require(_0x14e8('0x5'));var config=require(_0x14e8('0x6'));var attributes=require(_0x14e8('0x7'));module[_0x14e8('0x8')]=function(_0x56a266,_0x57c79b){return _0x56a266[_0x14e8('0x9')](_0x14e8('0xa'),attributes,{'tableName':_0x14e8('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a54=['info','Network,\x20%s,\x20%s','debug','stringify','error','code','message','request\x20sent','result','catch','lodash','util','moment','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http'];(function(_0x3ab51d,_0x2fa01d){var _0x29a04e=function(_0x7807b0){while(--_0x7807b0){_0x3ab51d['push'](_0x3ab51d['shift']());}};_0x29a04e(++_0x2fa01d);}(_0x7a54,0x106));var _0x47a5=function(_0x4c324f,_0x434f2c){_0x4c324f=_0x4c324f-0x0;var _0x202c76=_0x7a54[_0x4c324f];return _0x202c76;};'use strict';var _=require(_0x47a5('0x0'));var util=require(_0x47a5('0x1'));var moment=require(_0x47a5('0x2'));var BPromise=require('bluebird');var rs=require(_0x47a5('0x3'));var fs=require('fs');var Redis=require(_0x47a5('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x47a5('0x5'));var logger=require(_0x47a5('0x6'))(_0x47a5('0x7'));var config=require(_0x47a5('0x8'));var jayson=require(_0x47a5('0x9'));var client=jayson['client'][_0x47a5('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x59199c,_0x343372,_0x30e405){return new BPromise(function(_0x506eda,_0x194fb0){return client['request'](_0x59199c,_0x30e405)['then'](function(_0x582352){logger[_0x47a5('0xb')](_0x47a5('0xc'),_0x343372,'request\x20sent');logger[_0x47a5('0xd')]('Network,\x20%s,\x20%s,\x20%s',_0x343372,'request\x20sent',JSON[_0x47a5('0xe')](_0x582352));if(_0x582352[_0x47a5('0xf')]){if(_0x582352[_0x47a5('0xf')][_0x47a5('0x10')]===0x1f4){logger[_0x47a5('0xf')](_0x47a5('0xc'),_0x343372,_0x582352[_0x47a5('0xf')]['message']);return _0x194fb0(_0x582352[_0x47a5('0xf')][_0x47a5('0x11')]);}logger[_0x47a5('0xf')](_0x47a5('0xc'),_0x343372,_0x582352[_0x47a5('0xf')][_0x47a5('0x11')]);return _0x506eda(_0x582352[_0x47a5('0xf')][_0x47a5('0x11')]);}else{logger['info'](_0x47a5('0xc'),_0x343372,_0x47a5('0x12'));_0x506eda(_0x582352[_0x47a5('0x13')][_0x47a5('0x11')]);}})[_0x47a5('0x14')](function(_0x574af6){logger['error'](_0x47a5('0xc'),_0x343372,_0x574af6);_0x194fb0(_0x574af6);});});}
\ No newline at end of file
+var _0x7a54=['info','Network,\x20%s,\x20%s','debug','stringify','error','code','message','request\x20sent','result','catch','lodash','util','moment','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http'];(function(_0x2dafbe,_0x5d04de){var _0x58a45a=function(_0x50ac96){while(--_0x50ac96){_0x2dafbe['push'](_0x2dafbe['shift']());}};_0x58a45a(++_0x5d04de);}(_0x7a54,0x106));var _0x47a5=function(_0x1d5866,_0x49dd6b){_0x1d5866=_0x1d5866-0x0;var _0x4c8683=_0x7a54[_0x1d5866];return _0x4c8683;};'use strict';var _=require(_0x47a5('0x0'));var util=require(_0x47a5('0x1'));var moment=require(_0x47a5('0x2'));var BPromise=require('bluebird');var rs=require(_0x47a5('0x3'));var fs=require('fs');var Redis=require(_0x47a5('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x47a5('0x5'));var logger=require(_0x47a5('0x6'))(_0x47a5('0x7'));var config=require(_0x47a5('0x8'));var jayson=require(_0x47a5('0x9'));var client=jayson['client'][_0x47a5('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x59199c,_0x343372,_0x30e405){return new BPromise(function(_0x506eda,_0x194fb0){return client['request'](_0x59199c,_0x30e405)['then'](function(_0x582352){logger[_0x47a5('0xb')](_0x47a5('0xc'),_0x343372,'request\x20sent');logger[_0x47a5('0xd')]('Network,\x20%s,\x20%s,\x20%s',_0x343372,'request\x20sent',JSON[_0x47a5('0xe')](_0x582352));if(_0x582352[_0x47a5('0xf')]){if(_0x582352[_0x47a5('0xf')][_0x47a5('0x10')]===0x1f4){logger[_0x47a5('0xf')](_0x47a5('0xc'),_0x343372,_0x582352[_0x47a5('0xf')]['message']);return _0x194fb0(_0x582352[_0x47a5('0xf')][_0x47a5('0x11')]);}logger[_0x47a5('0xf')](_0x47a5('0xc'),_0x343372,_0x582352[_0x47a5('0xf')][_0x47a5('0x11')]);return _0x506eda(_0x582352[_0x47a5('0xf')][_0x47a5('0x11')]);}else{logger['info'](_0x47a5('0xc'),_0x343372,_0x47a5('0x12'));_0x506eda(_0x582352[_0x47a5('0x13')][_0x47a5('0x11')]);}})[_0x47a5('0x14')](function(_0x574af6){logger['error'](_0x47a5('0xc'),_0x343372,_0x574af6);_0x194fb0(_0x574af6);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd867=['create','addDisposition','/:id/notify','notify','addApplications','addAgents','/:id/send','send','put','update','delete','destroy','removeDispositions','removeAnswers','exports','multer','util','path','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/describe','describe','/:id','show','/:id/dispositions','/:id/canned_answers','getAnswers','/:id/applications','getApplications','/:id/interactions','getInteractions','/:id/users','post'];(function(_0x1e175d,_0x41ff45){var _0x3a3ce5=function(_0x186001){while(--_0x186001){_0x1e175d['push'](_0x1e175d['shift']());}};_0x3a3ce5(++_0x41ff45);}(_0xd867,0x1c7));var _0x7d86=function(_0x3cfa43,_0x4bf2eb){_0x3cfa43=_0x3cfa43-0x0;var _0x1265ea=_0xd867[_0x3cfa43];return _0x1265ea;};'use strict';var multer=require(_0x7d86('0x0'));var util=require(_0x7d86('0x1'));var path=require(_0x7d86('0x2'));var timeout=require('connect-timeout');var express=require(_0x7d86('0x3'));var router=express[_0x7d86('0x4')]();var fs_extra=require(_0x7d86('0x5'));var auth=require(_0x7d86('0x6'));var interaction=require(_0x7d86('0x7'));var config=require(_0x7d86('0x8'));var controller=require('./openchannelAccount.controller');router[_0x7d86('0x9')]('/',auth[_0x7d86('0xa')](),controller[_0x7d86('0xb')]);router['get'](_0x7d86('0xc'),auth['isAuthenticated'](),controller[_0x7d86('0xd')]);router[_0x7d86('0x9')](_0x7d86('0xe'),auth[_0x7d86('0xa')](),controller[_0x7d86('0xf')]);router[_0x7d86('0x9')](_0x7d86('0x10'),auth[_0x7d86('0xa')](),controller['getDispositions']);router[_0x7d86('0x9')](_0x7d86('0x11'),auth[_0x7d86('0xa')](),controller[_0x7d86('0x12')]);router[_0x7d86('0x9')](_0x7d86('0x13'),auth['isAuthenticated'](),controller[_0x7d86('0x14')]);router[_0x7d86('0x9')](_0x7d86('0x15'),auth['isAuthenticated'](),controller[_0x7d86('0x16')]);router[_0x7d86('0x9')](_0x7d86('0x17'),auth['isAuthenticated'](),controller['getAgents']);router[_0x7d86('0x18')]('/',auth['isAuthenticated'](),controller[_0x7d86('0x19')]);router[_0x7d86('0x18')](_0x7d86('0x10'),auth[_0x7d86('0xa')](),controller[_0x7d86('0x1a')]);router['post'](_0x7d86('0x11'),auth[_0x7d86('0xa')](),controller['addAnswer']);router[_0x7d86('0x18')](_0x7d86('0x1b'),controller[_0x7d86('0x1c')]);router['post'](_0x7d86('0x13'),auth[_0x7d86('0xa')](),controller[_0x7d86('0x1d')]);router[_0x7d86('0x18')]('/:id/users',auth[_0x7d86('0xa')](),controller[_0x7d86('0x1e')]);router[_0x7d86('0x18')](_0x7d86('0x1f'),auth['isAuthenticated'](),controller[_0x7d86('0x20')]);router[_0x7d86('0x21')](_0x7d86('0xe'),auth[_0x7d86('0xa')](),controller[_0x7d86('0x22')]);router[_0x7d86('0x23')](_0x7d86('0xe'),auth['isAuthenticated'](),controller[_0x7d86('0x24')]);router[_0x7d86('0x23')](_0x7d86('0x10'),auth['isAuthenticated'](),controller[_0x7d86('0x25')]);router[_0x7d86('0x23')](_0x7d86('0x11'),auth['isAuthenticated'](),controller[_0x7d86('0x26')]);router[_0x7d86('0x23')]('/:id/users',auth[_0x7d86('0xa')](),controller['removeAgents']);module[_0x7d86('0x27')]=router;
\ No newline at end of file
+var _0x914b=['get','isAuthenticated','index','/describe','describe','/:id','show','/:id/dispositions','getDispositions','getAnswers','/:id/applications','getApplications','/:id/interactions','/:id/users','getAgents','create','post','addDisposition','/:id/canned_answers','addAnswer','/:id/notify','addApplications','/:id/send','send','put','update','delete','destroy','removeAnswers','exports','multer','util','path','express','fs-extra','../../components/auth/service','../../config/environment'];(function(_0x27af45,_0x1b57aa){var _0x18df21=function(_0x4b7679){while(--_0x4b7679){_0x27af45['push'](_0x27af45['shift']());}};_0x18df21(++_0x1b57aa);}(_0x914b,0x8d));var _0xb914=function(_0x466af7,_0x2f7551){_0x466af7=_0x466af7-0x0;var _0x348c96=_0x914b[_0x466af7];return _0x348c96;};'use strict';var multer=require(_0xb914('0x0'));var util=require(_0xb914('0x1'));var path=require(_0xb914('0x2'));var timeout=require('connect-timeout');var express=require(_0xb914('0x3'));var router=express['Router']();var fs_extra=require(_0xb914('0x4'));var auth=require(_0xb914('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0xb914('0x6'));var controller=require('./openchannelAccount.controller');router[_0xb914('0x7')]('/',auth[_0xb914('0x8')](),controller[_0xb914('0x9')]);router['get'](_0xb914('0xa'),auth[_0xb914('0x8')](),controller[_0xb914('0xb')]);router['get'](_0xb914('0xc'),auth[_0xb914('0x8')](),controller[_0xb914('0xd')]);router[_0xb914('0x7')](_0xb914('0xe'),auth[_0xb914('0x8')](),controller[_0xb914('0xf')]);router['get']('/:id/canned_answers',auth[_0xb914('0x8')](),controller[_0xb914('0x10')]);router[_0xb914('0x7')](_0xb914('0x11'),auth[_0xb914('0x8')](),controller[_0xb914('0x12')]);router['get'](_0xb914('0x13'),auth[_0xb914('0x8')](),controller['getInteractions']);router[_0xb914('0x7')](_0xb914('0x14'),auth[_0xb914('0x8')](),controller[_0xb914('0x15')]);router['post']('/',auth[_0xb914('0x8')](),controller[_0xb914('0x16')]);router[_0xb914('0x17')]('/:id/dispositions',auth[_0xb914('0x8')](),controller[_0xb914('0x18')]);router['post'](_0xb914('0x19'),auth['isAuthenticated'](),controller[_0xb914('0x1a')]);router[_0xb914('0x17')](_0xb914('0x1b'),controller['notify']);router[_0xb914('0x17')](_0xb914('0x11'),auth[_0xb914('0x8')](),controller[_0xb914('0x1c')]);router[_0xb914('0x17')]('/:id/users',auth[_0xb914('0x8')](),controller['addAgents']);router['post'](_0xb914('0x1d'),auth['isAuthenticated'](),controller[_0xb914('0x1e')]);router[_0xb914('0x1f')](_0xb914('0xc'),auth[_0xb914('0x8')](),controller[_0xb914('0x20')]);router[_0xb914('0x21')](_0xb914('0xc'),auth['isAuthenticated'](),controller[_0xb914('0x22')]);router['delete'](_0xb914('0xe'),auth[_0xb914('0x8')](),controller['removeDispositions']);router[_0xb914('0x21')](_0xb914('0x19'),auth[_0xb914('0x8')](),controller[_0xb914('0x23')]);router[_0xb914('0x21')]('/:id/users',auth[_0xb914('0x8')](),controller['removeAgents']);module[_0xb914('0x24')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfc90=['name','generate','TEXT','BOOLEAN','INTEGER','Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','mandatoryDispositionPauseId','setDataValue','mandatoryDisposition','exports','STRING'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0xfc90,0x1ba));var _0x0fc9=function(_0x2b5cdc,_0x2f906d){_0x2b5cdc=_0x2b5cdc-0x0;var _0x4df3f3=_0xfc90[_0x2b5cdc];return _0x4df3f3;};'use strict';var Sequelize=require('sequelize');var rs=require('randomstring');module[_0x0fc9('0x0')]={'name':{'type':Sequelize[_0x0fc9('0x1')],'unique':_0x0fc9('0x2'),'allowNull':![]},'description':{'type':Sequelize[_0x0fc9('0x1')]},'token':{'type':Sequelize[_0x0fc9('0x1')],'defaultValue':function(){return rs[_0x0fc9('0x3')]();}},'replyUri':{'type':Sequelize['STRING'],'validate':{'isUrl':!![]}},'key':{'type':Sequelize[_0x0fc9('0x1')],'allowNull':![]},'notificationTemplate':{'type':Sequelize[_0x0fc9('0x4')],'defaultValue':function(){return'Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}';}},'notificationSound':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'notificationShake':{'type':Sequelize[_0x0fc9('0x5')],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize[_0x0fc9('0x6')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'mapKey':{'type':Sequelize[_0x0fc9('0x1')]},'queueTransfer':{'type':Sequelize[_0x0fc9('0x5')],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize[_0x0fc9('0x6')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0x0fc9('0x5')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize[_0x0fc9('0x6')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'mandatoryDispositionPauseId':{'type':Sequelize[_0x0fc9('0x6')],'allowNull':!![],'defaultValue':null,'comment':_0x0fc9('0x7')},'mandatoryDisposition':{'type':Sequelize[_0x0fc9('0x5')],'defaultValue':![],'comment':_0x0fc9('0x8'),'set':function(_0x5dedb3){if(!_0x5dedb3)this['setDataValue'](_0x0fc9('0x9'),null);this[_0x0fc9('0xa')](_0x0fc9('0xb'),_0x5dedb3);}}};
\ No newline at end of file
+var _0xc6a0=['setDataValue','mandatoryDisposition','sequelize','randomstring','exports','STRING','BOOLEAN','INTEGER','Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','mandatoryDispositionPauseId'];(function(_0x554292,_0x82948a){var _0x3dd555=function(_0xab7590){while(--_0xab7590){_0x554292['push'](_0x554292['shift']());}};_0x3dd555(++_0x82948a);}(_0xc6a0,0xb2));var _0x0c6a=function(_0xb0ae60,_0x27a47b){_0xb0ae60=_0xb0ae60-0x0;var _0xa70ceb=_0xc6a0[_0xb0ae60];return _0xa70ceb;};'use strict';var Sequelize=require(_0x0c6a('0x0'));var rs=require(_0x0c6a('0x1'));module[_0x0c6a('0x2')]={'name':{'type':Sequelize['STRING'],'unique':'name','allowNull':![]},'description':{'type':Sequelize[_0x0c6a('0x3')]},'token':{'type':Sequelize[_0x0c6a('0x3')],'defaultValue':function(){return rs['generate']();}},'replyUri':{'type':Sequelize[_0x0c6a('0x3')],'validate':{'isUrl':!![]}},'key':{'type':Sequelize[_0x0c6a('0x3')],'allowNull':![]},'notificationTemplate':{'type':Sequelize['TEXT'],'defaultValue':function(){return'Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}';}},'notificationSound':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'notificationShake':{'type':Sequelize[_0x0c6a('0x4')],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize[_0x0c6a('0x5')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'mapKey':{'type':Sequelize[_0x0c6a('0x3')]},'queueTransfer':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0x0c6a('0x4')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize[_0x0c6a('0x5')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'mandatoryDispositionPauseId':{'type':Sequelize[_0x0c6a('0x5')],'allowNull':!![],'defaultValue':null,'comment':_0x0c6a('0x6')},'mandatoryDisposition':{'type':Sequelize['BOOLEAN'],'defaultValue':![],'comment':_0x0c6a('0x7'),'set':function(_0x1e0d0d){if(!_0x1e0d0d)this['setDataValue'](_0x0c6a('0x8'),null);this[_0x0c6a('0x9')](_0x0c6a('0xa'),_0x1e0d0d);}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5158=['Pause','map','OpenchannelAccount','rawAttributes','fieldName','type','key','query','keys','filters','intersection','attributes','model','fields','length','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','include','show','params','mandatoryDispositionPause','includeAll','find','create','body','user','role','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','describe','addDisposition','OpenchannelAccountId','getDispositions','findOne','Disposition','rows','removeDispositions','ids','addAnswer','getAnswers','CannedAnswer','hasOwnProperty','removeAnswers','notify','CmContact','ValidationError','no\x20available\x20attributes','difference','createdAt','updatedAt','CompanyId','ListId','isNil','from','Sequelize','from\x20is\x20mandatory','mapKey','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','CmList','List','Contacts','OpenchannelApplication','Applications','account','applications','list','orderBy','priority','asc','contact','firstName','lastName','threadId','externalUrl','OpenchannelInteraction','ContactId','spread','messageId','interaction','created','autoclose','push','OpenchannelMessage','UserId','User','unshift','agent','waitForTheAssignedAgent','*,*,*,*','Start','startRouting','EventManager','sequelize','transaction','bulkCreate','getApplications','getInteractions','Owner','fullname','internal','Tags','tag','findAll','addAgents','emit','userOpenchannelAccount:save','removeAgents','isArray','userOpenchannelAccount:remove','getAgents','body\x20is\x20mandatory\x20and\x20not\x20empty','DESC','out','Messages','dataValues','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','redis','defaults','localhost','register','client','http','request','then','info','OpenchannelAccount,\x20%s,\x20%s','debug','OpenchannelAccount,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','result','catch','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','apply','reject','save','update','destroy','get','OpenchannelAccounts','name','send','index'];(function(_0x49f1fd,_0x1be18a){var _0xabd89f=function(_0x784d2d){while(--_0x784d2d){_0x49f1fd['push'](_0x49f1fd['shift']());}};_0xabd89f(++_0x1be18a);}(_0x5158,0x7d));var _0x8515=function(_0x5ddaac,_0x2697a8){_0x5ddaac=_0x5ddaac-0x0;var _0x2a9c58=_0x5158[_0x5ddaac];return _0x2a9c58;};'use strict';var emlformat=require(_0x8515('0x0'));var rimraf=require(_0x8515('0x1'));var zipdir=require(_0x8515('0x2'));var jsonpatch=require(_0x8515('0x3'));var rp=require(_0x8515('0x4'));var moment=require(_0x8515('0x5'));var BPromise=require(_0x8515('0x6'));var Mustache=require('mustache');var util=require(_0x8515('0x7'));var path=require(_0x8515('0x8'));var sox=require(_0x8515('0x9'));var csv=require(_0x8515('0xa'));var ejs=require(_0x8515('0xb'));var fs=require('fs');var fs_extra=require(_0x8515('0xc'));var _=require(_0x8515('0xd'));var squel=require(_0x8515('0xe'));var crypto=require(_0x8515('0xf'));var jsforce=require(_0x8515('0x10'));var deskjs=require('desk.js');var toCsv=require(_0x8515('0xa'));var querystring=require(_0x8515('0x11'));var Papa=require('papaparse');var Redis=require(_0x8515('0x12'));var authService=require(_0x8515('0x13'));var qs=require('../../components/parsers/qs');var as=require(_0x8515('0x14'));var hardwareService=require(_0x8515('0x15'));var logger=require(_0x8515('0x16'))('api');var utils=require(_0x8515('0x17'));var config=require(_0x8515('0x18'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];config[_0x8515('0x19')]=_[_0x8515('0x1a')](config[_0x8515('0x19')],{'host':_0x8515('0x1b'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x8515('0x19')]));require('./openchannelAccount.socket')[_0x8515('0x1c')](socket);var jayson=require('jayson/promise');var client=jayson[_0x8515('0x1d')]['http']({'port':0x232c});var client9002=jayson[_0x8515('0x1d')][_0x8515('0x1e')]({'port':0x232a});function respondWithRpcPromise(_0x28ed1f,_0x3b1646,_0x5dac37,_0x1a965a){return new BPromise(function(_0x3cf427,_0x13402e){var _0x2b9b70=_0x1a965a||client;return _0x2b9b70[_0x8515('0x1f')](_0x28ed1f,_0x5dac37)[_0x8515('0x20')](function(_0x446797){logger[_0x8515('0x21')](_0x8515('0x22'),_0x3b1646,'request\x20sent');logger[_0x8515('0x23')](_0x8515('0x24'),_0x3b1646,_0x8515('0x25'),JSON[_0x8515('0x26')](_0x446797));if(_0x446797['error']){if(_0x446797[_0x8515('0x27')]['code']===0x1f4){logger[_0x8515('0x27')](_0x8515('0x22'),_0x3b1646,_0x446797['error'][_0x8515('0x28')]);return _0x13402e(_0x446797[_0x8515('0x27')]['message']);}logger[_0x8515('0x27')]('OpenchannelAccount,\x20%s,\x20%s',_0x3b1646,_0x446797[_0x8515('0x27')]['message']);return _0x3cf427(_0x446797[_0x8515('0x27')][_0x8515('0x28')]);}else{logger['info'](_0x8515('0x22'),_0x3b1646,'request\x20sent');_0x3cf427(_0x446797[_0x8515('0x29')][_0x8515('0x28')]);}})[_0x8515('0x2a')](function(_0xe8fb2e){logger['error'](_0x8515('0x22'),_0x3b1646,_0xe8fb2e);_0x13402e(_0xe8fb2e);});});}function respondWithStatusCode(_0xaca919,_0x55e33a){_0x55e33a=_0x55e33a||0xcc;return function(_0x183a8d){if(_0x183a8d){return _0xaca919[_0x8515('0x2b')](_0x55e33a);}return _0xaca919[_0x8515('0x2c')](_0x55e33a)[_0x8515('0x2d')]();};}function respondWithResult(_0x2a6558,_0x11456a){_0x11456a=_0x11456a||0xc8;return function(_0x2ad5a){if(_0x2ad5a){return _0x2a6558['status'](_0x11456a)[_0x8515('0x2e')](_0x2ad5a);}};}function respondWithFilteredResult(_0x302ff5,_0x72992d){return function(_0xe873bb){if(_0xe873bb){var _0x325d4a=typeof _0x72992d[_0x8515('0x2f')]===_0x8515('0x30')&&typeof _0x72992d['limit']===_0x8515('0x30');var _0x4218fb=_0xe873bb[_0x8515('0x31')];var _0xb88197=_0x325d4a?0x0:_0x72992d[_0x8515('0x2f')];var _0x9a2174=_0x325d4a?_0xe873bb[_0x8515('0x31')]:_0x72992d[_0x8515('0x2f')]+_0x72992d[_0x8515('0x32')];var _0x52a994;if(_0x9a2174>=_0x4218fb){_0x9a2174=_0x4218fb;_0x52a994=0xc8;}else{_0x52a994=0xce;}_0x302ff5['status'](_0x52a994);return _0x302ff5[_0x8515('0x33')](_0x8515('0x34'),_0xb88197+'-'+_0x9a2174+'/'+_0x4218fb)[_0x8515('0x2e')](_0xe873bb);}return null;};}function patchUpdates(_0x5e33b2){return function(_0x356891){try{jsonpatch[_0x8515('0x35')](_0x356891,_0x5e33b2,!![]);}catch(_0x1a9c77){return BPromise[_0x8515('0x36')](_0x1a9c77);}return _0x356891[_0x8515('0x37')]();};}function saveUpdates(_0x3d676b,_0x2fe2ac){return function(_0x1d789c){if(_0x1d789c){return _0x1d789c[_0x8515('0x38')](_0x3d676b)[_0x8515('0x20')](function(_0x396ae8){return _0x396ae8;});}return null;};}function removeEntity(_0x15c729,_0x4aba74){return function(_0x3d66b9){if(_0x3d66b9){return _0x3d66b9[_0x8515('0x39')]()['then'](function(){var _0x1f5104=_0x3d66b9[_0x8515('0x3a')]({'plain':!![]});var _0x25feb8=_0x8515('0x3b');return db['UserProfileResource'][_0x8515('0x39')]({'where':{'type':_0x25feb8,'resourceId':_0x1f5104['id']}})[_0x8515('0x20')](function(){return _0x3d66b9;});})['then'](function(){_0x15c729['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0xfd7089,_0x593a7e){return function(_0x301a8e){if(!_0x301a8e){_0xfd7089[_0x8515('0x2b')](0x194);}return _0x301a8e;};}function handleError(_0x1dc43c,_0x259189){_0x259189=_0x259189||0x1f4;return function(_0x2ff62a){logger[_0x8515('0x27')](_0x2ff62a['stack']);if(_0x2ff62a['name']){delete _0x2ff62a[_0x8515('0x3c')];}_0x1dc43c[_0x8515('0x2c')](_0x259189)[_0x8515('0x3d')](_0x2ff62a);};}exports[_0x8515('0x3e')]=function(_0x38a3a9,_0x1fcb33){var _0x4ae408={'include':[{'model':db[_0x8515('0x3f')],'as':'mandatoryDispositionPause'}]},_0x1b249a={},_0x16c65f={'count':0x0,'rows':[]};var _0x287c18=_[_0x8515('0x40')](db[_0x8515('0x41')][_0x8515('0x42')],function(_0x378af0){return{'name':_0x378af0[_0x8515('0x43')],'type':_0x378af0[_0x8515('0x44')][_0x8515('0x45')]};});_0x1b249a['model']=_[_0x8515('0x40')](_0x287c18,_0x8515('0x3c'));_0x1b249a[_0x8515('0x46')]=_[_0x8515('0x47')](_0x38a3a9[_0x8515('0x46')]);_0x1b249a[_0x8515('0x48')]=_[_0x8515('0x49')](_0x1b249a['model'],_0x1b249a['query']);_0x4ae408[_0x8515('0x4a')]=_[_0x8515('0x49')](_0x1b249a[_0x8515('0x4b')],qs['fields'](_0x38a3a9[_0x8515('0x46')][_0x8515('0x4c')]));_0x4ae408[_0x8515('0x4a')]=_0x4ae408['attributes'][_0x8515('0x4d')]?_0x4ae408[_0x8515('0x4a')]:_0x1b249a[_0x8515('0x4b')];if(!_0x38a3a9[_0x8515('0x46')]['hasOwnProperty'](_0x8515('0x4e'))){_0x4ae408[_0x8515('0x32')]=qs[_0x8515('0x32')](_0x38a3a9[_0x8515('0x46')][_0x8515('0x32')]);_0x4ae408[_0x8515('0x2f')]=qs[_0x8515('0x2f')](_0x38a3a9[_0x8515('0x46')]['offset']);}_0x4ae408[_0x8515('0x4f')]=qs[_0x8515('0x50')](_0x38a3a9[_0x8515('0x46')]['sort']);_0x4ae408[_0x8515('0x51')]=qs[_0x8515('0x48')](_[_0x8515('0x52')](_0x38a3a9[_0x8515('0x46')],_0x1b249a[_0x8515('0x48')]),_0x287c18);if(_0x38a3a9[_0x8515('0x46')][_0x8515('0x53')]){_0x4ae408['where']=_[_0x8515('0x54')](_0x4ae408[_0x8515('0x51')],{'$or':_[_0x8515('0x40')](_0x287c18,function(_0x21ba30){if(_0x21ba30['type']!==_0x8515('0x55')){var _0x598c38={};_0x598c38[_0x21ba30['name']]={'$like':'%'+_0x38a3a9[_0x8515('0x46')][_0x8515('0x53')]+'%'};return _0x598c38;}})});}_0x4ae408=_['merge']({},_0x4ae408,_0x38a3a9[_0x8515('0x56')]);var _0x2bfa57={'where':_0x4ae408[_0x8515('0x51')]};return db[_0x8515('0x41')][_0x8515('0x31')](_0x2bfa57)[_0x8515('0x20')](function(_0x59a01f){_0x16c65f[_0x8515('0x31')]=_0x59a01f;if(_0x38a3a9[_0x8515('0x46')]['includeAll']){_0x4ae408[_0x8515('0x57')]=[{'all':!![]}];}return db['OpenchannelAccount']['findAll'](_0x4ae408);})['then'](function(_0xfa7ae){_0x16c65f['rows']=_0xfa7ae;return _0x16c65f;})[_0x8515('0x20')](respondWithFilteredResult(_0x1fcb33,_0x4ae408))[_0x8515('0x2a')](handleError(_0x1fcb33,null));};exports[_0x8515('0x58')]=function(_0x5ea487,_0x2fad1c){var _0x144edf={'raw':![],'where':{'id':_0x5ea487[_0x8515('0x59')]['id']},'include':[{'model':db[_0x8515('0x3f')],'as':_0x8515('0x5a')}]},_0x2e3091={};_0x2e3091[_0x8515('0x4b')]=_[_0x8515('0x47')](db['OpenchannelAccount']['rawAttributes']);_0x2e3091[_0x8515('0x46')]=_['keys'](_0x5ea487['query']);_0x2e3091[_0x8515('0x48')]=_[_0x8515('0x49')](_0x2e3091[_0x8515('0x4b')],_0x2e3091[_0x8515('0x46')]);_0x144edf[_0x8515('0x4a')]=_[_0x8515('0x49')](_0x2e3091['model'],qs[_0x8515('0x4c')](_0x5ea487['query'][_0x8515('0x4c')]));_0x144edf[_0x8515('0x4a')]=_0x144edf[_0x8515('0x4a')]['length']?_0x144edf['attributes']:_0x2e3091[_0x8515('0x4b')];if(_0x5ea487[_0x8515('0x46')][_0x8515('0x5b')]){_0x144edf[_0x8515('0x57')]=[{'all':!![]}];}_0x144edf=_['merge']({},_0x144edf,_0x5ea487['options']);return db[_0x8515('0x41')][_0x8515('0x5c')](_0x144edf)[_0x8515('0x20')](handleEntityNotFound(_0x2fad1c,null))[_0x8515('0x20')](respondWithResult(_0x2fad1c,null))[_0x8515('0x2a')](handleError(_0x2fad1c,null));};exports[_0x8515('0x5d')]=function(_0x442444,_0x512634){return db[_0x8515('0x41')][_0x8515('0x5d')](_0x442444[_0x8515('0x5e')],{})[_0x8515('0x20')](function(_0x1db647){var _0x35b660=_0x442444[_0x8515('0x5f')][_0x8515('0x3a')]({'plain':!![]});if(!_0x35b660)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x35b660[_0x8515('0x60')]==='user'){var _0x2e8117=_0x1db647[_0x8515('0x3a')]({'plain':!![]});var _0x4194fe=_0x8515('0x3b');return db[_0x8515('0x61')]['find']({'where':{'name':_0x4194fe,'userProfileId':_0x35b660[_0x8515('0x62')]},'raw':!![]})[_0x8515('0x20')](function(_0x4db465){if(_0x4db465&&_0x4db465[_0x8515('0x63')]===0x0){return db[_0x8515('0x64')][_0x8515('0x5d')]({'name':_0x2e8117['name'],'resourceId':_0x2e8117['id'],'type':_0x4db465['name'],'sectionId':_0x4db465['id']},{})[_0x8515('0x20')](function(){return _0x1db647;});}else{return _0x1db647;}})[_0x8515('0x2a')](function(_0x37b373){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x37b373);throw _0x37b373;});}return _0x1db647;})[_0x8515('0x20')](respondWithResult(_0x512634,0xc9))[_0x8515('0x2a')](handleError(_0x512634,null));};exports[_0x8515('0x38')]=function(_0xbb9bcd,_0xa1d7d8){if(_0xbb9bcd['body']['id']){delete _0xbb9bcd[_0x8515('0x5e')]['id'];}return db['OpenchannelAccount'][_0x8515('0x5c')]({'where':{'id':_0xbb9bcd['params']['id']},'include':[{'model':db['Pause'],'as':_0x8515('0x5a')}]})['then'](handleEntityNotFound(_0xa1d7d8,null))[_0x8515('0x20')](saveUpdates(_0xbb9bcd['body'],null))[_0x8515('0x20')](respondWithResult(_0xa1d7d8,null))[_0x8515('0x2a')](handleError(_0xa1d7d8,null));};exports[_0x8515('0x39')]=function(_0x107069,_0x37b7de){return db[_0x8515('0x41')][_0x8515('0x5c')]({'where':{'id':_0x107069[_0x8515('0x59')]['id']}})['then'](handleEntityNotFound(_0x37b7de,null))[_0x8515('0x20')](removeEntity(_0x37b7de,null))['catch'](handleError(_0x37b7de,null));};exports[_0x8515('0x65')]=function(_0xe6915b,_0x33467b){return db['OpenchannelAccount'][_0x8515('0x65')]()['then'](respondWithResult(_0x33467b,null))['catch'](handleError(_0x33467b,null));};exports[_0x8515('0x66')]=function(_0x2a01fb,_0x3533f3,_0x478476){if(_0x2a01fb[_0x8515('0x5e')]['id']){delete _0x2a01fb[_0x8515('0x5e')]['id'];}return db[_0x8515('0x41')][_0x8515('0x5c')]({'where':{'id':_0x2a01fb[_0x8515('0x59')]['id']}})['then'](handleEntityNotFound(_0x3533f3,null))[_0x8515('0x20')](function(_0x18bea1){if(_0x18bea1){_0x2a01fb[_0x8515('0x5e')][_0x8515('0x67')]=_0x18bea1['id'];return db['Disposition'][_0x8515('0x5d')](_0x2a01fb[_0x8515('0x5e')]);}})[_0x8515('0x20')](respondWithResult(_0x3533f3,null))['catch'](handleError(_0x3533f3,null));};exports[_0x8515('0x68')]=function(_0x523c55,_0x416dd9,_0x1fc168){var _0x47afc4={'raw':![],'where':{}};var _0x2d4af5={};var _0x3c53fd={'count':0x0,'rows':[]};return db[_0x8515('0x41')][_0x8515('0x69')]({'where':{'id':_0x523c55[_0x8515('0x59')]['id']}})[_0x8515('0x20')](handleEntityNotFound(_0x416dd9,null))['then'](function(_0x18d8da){if(_0x18d8da){_0x2d4af5[_0x8515('0x4b')]=_[_0x8515('0x47')](db[_0x8515('0x6a')][_0x8515('0x42')]);_0x2d4af5[_0x8515('0x46')]=_[_0x8515('0x47')](_0x523c55[_0x8515('0x46')]);_0x2d4af5[_0x8515('0x48')]=_[_0x8515('0x49')](_0x2d4af5[_0x8515('0x4b')],_0x2d4af5[_0x8515('0x46')]);_0x47afc4[_0x8515('0x4a')]=_['intersection'](_0x2d4af5[_0x8515('0x4b')],qs[_0x8515('0x4c')](_0x523c55['query'][_0x8515('0x4c')]));_0x47afc4[_0x8515('0x4a')]=_0x47afc4[_0x8515('0x4a')][_0x8515('0x4d')]?_0x47afc4[_0x8515('0x4a')]:_0x2d4af5[_0x8515('0x4b')];if(!_0x523c55[_0x8515('0x46')]['hasOwnProperty'](_0x8515('0x4e'))){_0x47afc4[_0x8515('0x32')]=qs['limit'](_0x523c55[_0x8515('0x46')][_0x8515('0x32')]);_0x47afc4['offset']=qs[_0x8515('0x2f')](_0x523c55[_0x8515('0x46')][_0x8515('0x2f')]);}_0x47afc4[_0x8515('0x4f')]=qs[_0x8515('0x50')](_0x523c55['query']['sort']);_0x47afc4[_0x8515('0x51')]=qs[_0x8515('0x48')](_['pick'](_0x523c55[_0x8515('0x46')],_0x2d4af5[_0x8515('0x48')]));_0x47afc4['where'][_0x8515('0x67')]=_0x18d8da['id'];if(_0x523c55[_0x8515('0x46')][_0x8515('0x53')]){_0x47afc4['where']=_[_0x8515('0x54')](_0x47afc4[_0x8515('0x51')],{'$or':_['map'](_0x47afc4['attributes'],function(_0x345661){var _0x5bbef1={};_0x5bbef1[_0x345661]={'$like':'%'+_0x523c55[_0x8515('0x46')][_0x8515('0x53')]+'%'};return _0x5bbef1;})});}_0x47afc4=_[_0x8515('0x54')]({},_0x47afc4,_0x523c55[_0x8515('0x56')]);return db[_0x8515('0x6a')]['count']({'where':_0x47afc4['where']})[_0x8515('0x20')](function(_0x16bc26){_0x3c53fd[_0x8515('0x31')]=_0x16bc26;if(_0x523c55['query'][_0x8515('0x5b')]){_0x47afc4[_0x8515('0x57')]=[{'all':!![]}];}return db[_0x8515('0x6a')]['findAll'](_0x47afc4);})[_0x8515('0x20')](function(_0x4d3499){_0x3c53fd[_0x8515('0x6b')]=_0x4d3499;return _0x3c53fd;});}})['then'](respondWithFilteredResult(_0x416dd9,_0x47afc4))['catch'](handleError(_0x416dd9,null));};exports[_0x8515('0x6c')]=function(_0x2aba3f,_0x21ee50,_0x4bf63a){return db[_0x8515('0x41')][_0x8515('0x5c')]({'where':{'id':_0x2aba3f[_0x8515('0x59')]['id']}})[_0x8515('0x20')](handleEntityNotFound(_0x21ee50,null))['then'](function(_0x375ae0){if(_0x375ae0){return _0x375ae0['removeDispositions'](_0x2aba3f['query'][_0x8515('0x6d')]);}})['then'](respondWithStatusCode(_0x21ee50,null))[_0x8515('0x2a')](handleError(_0x21ee50,null));};exports[_0x8515('0x6e')]=function(_0x4133e6,_0x21fb2d,_0x16520c){if(_0x4133e6['body']['id']){delete _0x4133e6[_0x8515('0x5e')]['id'];}return db[_0x8515('0x41')][_0x8515('0x5c')]({'where':{'id':_0x4133e6[_0x8515('0x59')]['id']}})[_0x8515('0x20')](handleEntityNotFound(_0x21fb2d,null))['then'](function(_0xcbc00e){if(_0xcbc00e){_0x4133e6[_0x8515('0x5e')]['OpenchannelAccountId']=_0xcbc00e['id'];return db['CannedAnswer'][_0x8515('0x5d')](_0x4133e6[_0x8515('0x5e')]);}})[_0x8515('0x20')](respondWithResult(_0x21fb2d,null))['catch'](handleError(_0x21fb2d,null));};exports[_0x8515('0x6f')]=function(_0x385ff0,_0x66c629,_0x167365){var _0x39269d={'raw':![],'where':{}};var _0x1b752c={};var _0x445f06={'count':0x0,'rows':[]};return db[_0x8515('0x41')][_0x8515('0x69')]({'where':{'id':_0x385ff0[_0x8515('0x59')]['id']}})[_0x8515('0x20')](handleEntityNotFound(_0x66c629,null))[_0x8515('0x20')](function(_0x41c763){if(_0x41c763){_0x1b752c[_0x8515('0x4b')]=_[_0x8515('0x47')](db[_0x8515('0x70')]['rawAttributes']);_0x1b752c['query']=_[_0x8515('0x47')](_0x385ff0[_0x8515('0x46')]);_0x1b752c[_0x8515('0x48')]=_[_0x8515('0x49')](_0x1b752c[_0x8515('0x4b')],_0x1b752c[_0x8515('0x46')]);_0x39269d[_0x8515('0x4a')]=_[_0x8515('0x49')](_0x1b752c['model'],qs[_0x8515('0x4c')](_0x385ff0[_0x8515('0x46')][_0x8515('0x4c')]));_0x39269d[_0x8515('0x4a')]=_0x39269d[_0x8515('0x4a')][_0x8515('0x4d')]?_0x39269d[_0x8515('0x4a')]:_0x1b752c[_0x8515('0x4b')];if(!_0x385ff0[_0x8515('0x46')][_0x8515('0x71')](_0x8515('0x4e'))){_0x39269d['limit']=qs[_0x8515('0x32')](_0x385ff0[_0x8515('0x46')][_0x8515('0x32')]);_0x39269d[_0x8515('0x2f')]=qs[_0x8515('0x2f')](_0x385ff0['query'][_0x8515('0x2f')]);}_0x39269d[_0x8515('0x4f')]=qs[_0x8515('0x50')](_0x385ff0[_0x8515('0x46')][_0x8515('0x50')]);_0x39269d['where']=qs[_0x8515('0x48')](_[_0x8515('0x52')](_0x385ff0[_0x8515('0x46')],_0x1b752c[_0x8515('0x48')]));_0x39269d[_0x8515('0x51')]['OpenchannelAccountId']=_0x41c763['id'];if(_0x385ff0[_0x8515('0x46')][_0x8515('0x53')]){_0x39269d[_0x8515('0x51')]=_['merge'](_0x39269d[_0x8515('0x51')],{'$or':_[_0x8515('0x40')](_0x39269d[_0x8515('0x4a')],function(_0x405c03){var _0x1e5544={};_0x1e5544[_0x405c03]={'$like':'%'+_0x385ff0[_0x8515('0x46')][_0x8515('0x53')]+'%'};return _0x1e5544;})});}_0x39269d=_[_0x8515('0x54')]({},_0x39269d,_0x385ff0['options']);return db['CannedAnswer'][_0x8515('0x31')]({'where':_0x39269d[_0x8515('0x51')]})[_0x8515('0x20')](function(_0x2a14d2){_0x445f06[_0x8515('0x31')]=_0x2a14d2;if(_0x385ff0[_0x8515('0x46')]['includeAll']){_0x39269d['include']=[{'all':!![]}];}return db['CannedAnswer']['findAll'](_0x39269d);})['then'](function(_0x598174){_0x445f06[_0x8515('0x6b')]=_0x598174;return _0x445f06;});}})[_0x8515('0x20')](respondWithFilteredResult(_0x66c629,_0x39269d))['catch'](handleError(_0x66c629,null));};exports['removeAnswers']=function(_0x3a54,_0x2dde99,_0x2fd539){return db[_0x8515('0x41')]['find']({'where':{'id':_0x3a54[_0x8515('0x59')]['id']}})['then'](handleEntityNotFound(_0x2dde99,null))['then'](function(_0x48c247){if(_0x48c247){return _0x48c247[_0x8515('0x72')](_0x3a54['query'][_0x8515('0x6d')]);}})['then'](respondWithStatusCode(_0x2dde99,null))['catch'](handleError(_0x2dde99,null));};exports[_0x8515('0x73')]=function(_0x597eee,_0x2823ea,_0x2c3a87){var _0x5d7640={'body':_0x597eee[_0x8515('0x5e')],'channel':'openchannel'};var _0x1c4847=[];var _0x3bb77b=[];var _0x19f772={};var _0x568dfc=![];return db[_0x8515('0x74')]['describe']()[_0x8515('0x20')](function(_0x3bbb96){if(!_0x3bbb96){throw new db['Sequelize'][(_0x8515('0x75'))](_0x8515('0x76'));}_0x1c4847=_[_0x8515('0x77')](_[_0x8515('0x47')](_0x3bbb96),[_0x8515('0x78'),_0x8515('0x79')]);_0x3bb77b=_[_0x8515('0x77')](_['keys'](_0x3bbb96),[_0x8515('0x78'),_0x8515('0x79'),_0x8515('0x7a'),_0x8515('0x7b')]);if(_0x597eee['body']['id']){delete _0x597eee['body']['id'];}if(_[_0x8515('0x7c')](_0x597eee[_0x8515('0x5e')][_0x8515('0x7d')])){throw new db[(_0x8515('0x7e'))][(_0x8515('0x75'))](_0x8515('0x7f'));}if(_[_0x8515('0x7c')](_0x597eee[_0x8515('0x5e')]['body'])||_0x597eee[_0x8515('0x5e')]['body']===''){throw new db[(_0x8515('0x7e'))][(_0x8515('0x75'))]('body\x20is\x20mandatory\x20and\x20not\x20empty');}if(_['isNil'](_0x597eee[_0x8515('0x5e')][_0x8515('0x80')])){throw new db[(_0x8515('0x7e'))]['ValidationError']('mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x3bb77b);}if(!_[_0x8515('0x81')](_0x3bb77b,_0x597eee['body'][_0x8515('0x80')])){throw new db[(_0x8515('0x7e'))][(_0x8515('0x75'))](_0x8515('0x82')+_0x3bb77b);}_0x19f772[_0x597eee['body'][_0x8515('0x80')]]=_0x597eee['body'][_0x8515('0x7d')];})['then'](function(){return db['OpenchannelAccount']['find']({'where':{'id':_0x597eee['params']['id']},'include':[{'model':db[_0x8515('0x83')],'as':_0x8515('0x84'),'include':[{'model':db[_0x8515('0x74')],'as':_0x8515('0x85'),'where':_0x19f772,'limit':0x1,'order':[[_0x8515('0x79'),'DESC']]}]},{'model':db[_0x8515('0x86')],'as':_0x8515('0x87')}]});})[_0x8515('0x20')](handleEntityNotFound(_0x2823ea,null))[_0x8515('0x20')](function(_0x3952f4){if(_0x3952f4&&_0x3952f4[_0x8515('0x84')]){_0x5d7640[_0x8515('0x88')]=_0x3952f4;_0x5d7640[_0x8515('0x89')]=_0x3952f4[_0x8515('0x87')];_0x5d7640[_0x8515('0x8a')]=_0x3952f4[_0x8515('0x84')];_0x5d7640['applications']=_[_0x8515('0x8b')](_0x5d7640['applications'],[_0x8515('0x8c')],[_0x8515('0x8d')]);if(_0x5d7640[_0x8515('0x88')][_0x8515('0x87')]){delete _0x5d7640[_0x8515('0x88')]['Applications'];}if(_0x5d7640[_0x8515('0x88')]['List']&&_0x5d7640[_0x8515('0x88')]['List'][_0x8515('0x85')][_0x8515('0x4d')]){return _0x5d7640[_0x8515('0x88')][_0x8515('0x84')][_0x8515('0x85')][0x0];}var _0x478f84=_[_0x8515('0x1a')](_0x597eee['body'],{'firstName':_0x597eee['body']['from'],'ListId':_0x3952f4[_0x8515('0x7b')]});_0x478f84[_0x597eee[_0x8515('0x5e')][_0x8515('0x80')]]=_0x597eee[_0x8515('0x5e')][_0x8515('0x7d')];return db[_0x8515('0x74')][_0x8515('0x5d')](_0x478f84,{'fields':_0x1c4847,'raw':!![]});}})[_0x8515('0x20')](handleEntityNotFound(_0x2823ea,null))[_0x8515('0x20')](function(_0x17f217){_0x5d7640[_0x8515('0x8e')]=_0x17f217;if(_0x17f217){var _0x89c78d={'ContactId':_0x17f217['id'],'OpenchannelAccountId':_0x597eee[_0x8515('0x59')]['id'],'from':(_0x17f217[_0x8515('0x8f')]||'')+'\x20'+(_0x17f217[_0x8515('0x90')]||'')};var _0x1d7a32={'OpenchannelAccountId':_0x597eee[_0x8515('0x59')]['id'],'closed':![]};if(_0x597eee[_0x8515('0x5e')][_0x8515('0x91')]){_0x1d7a32[_0x8515('0x91')]=_0x597eee['body']['threadId'];return db['OpenchannelInteraction'][_0x8515('0x5c')]({'where':_0x1d7a32})[_0x8515('0x20')](function(_0xfebb37){if(_0xfebb37){return[_0xfebb37,![]];}_0x89c78d[_0x8515('0x91')]=_0x597eee[_0x8515('0x5e')][_0x8515('0x91')];_0x89c78d[_0x8515('0x92')]=_0x597eee[_0x8515('0x5e')]['externalUrl'];return db[_0x8515('0x93')][_0x8515('0x5d')](_0x89c78d)['then'](function(_0x15c40c){return[_0x15c40c,!![]];});});}else{_0x1d7a32[_0x8515('0x91')]=null;}_0x1d7a32[_0x8515('0x94')]=_0x17f217['id'];return db['OpenchannelInteraction'][_0x8515('0x5c')]({'where':_0x1d7a32})[_0x8515('0x20')](function(_0x34b4df){if(_0x34b4df){return[_0x34b4df,![]];}return db['OpenchannelInteraction'][_0x8515('0x5d')](_0x89c78d)[_0x8515('0x20')](function(_0x570e2e){return[_0x570e2e,!![]];});});}})[_0x8515('0x95')](function(_0x3fdc8d,_0x151f61){if(_0x3fdc8d){_0x568dfc=_0x151f61;if(!_0x151f61){var _0x2c1ca6={'from':(_0x5d7640[_0x8515('0x8e')][_0x8515('0x8f')]||'')+'\x20'+(_0x5d7640[_0x8515('0x8e')][_0x8515('0x90')]||'')};if(_0x597eee['body'][_0x8515('0x91')]&&_0x597eee[_0x8515('0x5e')][_0x8515('0x96')]&&_0x597eee[_0x8515('0x5e')][_0x8515('0x91')]!=_0x597eee[_0x8515('0x5e')][_0x8515('0x96')]){_0x2c1ca6[_0x8515('0x91')]=_0x597eee['body']['messageId'];}return _0x3fdc8d['update'](_0x2c1ca6);}else{return _0x3fdc8d;}}})['then'](function(_0xa0552d){_0x5d7640[_0x8515('0x97')]=_0xa0552d[_0x8515('0x3a')]({'plain':!![]});_0x5d7640[_0x8515('0x97')][_0x8515('0x98')]=_0x568dfc;if(_0x5d7640['interaction'][_0x8515('0x98')]){if(_0x5d7640['account'][_0x8515('0x99')]){_0x5d7640[_0x8515('0x89')][_0x8515('0x9a')]({'id':0x0,'priority':_0x5d7640[_0x8515('0x89')][_0x8515('0x4d')]+0x1,'app':'close','appdata':'unmanaged','interval':'*,*,*,*'});}}return db[_0x8515('0x9b')]['create']({'body':_0x597eee[_0x8515('0x5e')]['body'],'OpenchannelAccountId':_0x597eee['params']['id'],'OpenchannelInteractionId':_0xa0552d['id'],'direction':'in','ContactId':_0x5d7640[_0x8515('0x8e')]['id'],'AttachmentId':_0x597eee['body']['AttachmentId']});})['then'](function(_0x565b10){_0x5d7640['message']=_0x565b10;if(_0x5d7640['interaction'][_0x8515('0x9c')]){return db[_0x8515('0x9d')]['find']({'attributes':['id',_0x8515('0x3c')],'where':{'id':_0x5d7640[_0x8515('0x97')]['UserId']}})[_0x8515('0x20')](function(_0x1de476){if(_0x1de476){_0x5d7640[_0x8515('0x89')][_0x8515('0x9e')]({'id':0x0,'priority':0x0,'app':_0x8515('0x9f'),'appdata':_0x1de476[_0x8515('0x3c')]+','+(_0x5d7640[_0x8515('0x88')][_0x8515('0xa0')]||0xa),'interval':_0x8515('0xa1')});_0x5d7640['forcedOwnership']=![];}return respondWithRpcPromise(_0x8515('0xa2'),_0x8515('0xa3'),_0x5d7640);});}return respondWithRpcPromise(_0x8515('0xa2'),'startRouting',_0x5d7640);})[_0x8515('0x20')](function(_0x17d7e5){respondWithRpcPromise('EventManager',_0x8515('0xa4'),{'event':_0x8515('0x73'),'message':_0x17d7e5},client9002);return _0x17d7e5;})[_0x8515('0x20')](respondWithResult(_0x2823ea,null))[_0x8515('0x2a')](handleError(_0x2823ea,null));};exports['addApplications']=function(_0x64b85b,_0x12195e,_0x3470d7){return db[_0x8515('0x41')]['findOne']({'where':{'id':_0x64b85b['params']['id']}})[_0x8515('0x20')](handleEntityNotFound(_0x12195e,null))['then'](function(_0x4697b5){if(_0x4697b5){return db[_0x8515('0xa5')][_0x8515('0xa6')](function(_0x999bf6){return db[_0x8515('0x86')][_0x8515('0x39')]({'where':{'OpenchannelAccountId':_0x64b85b['params']['id']},'transaction':_0x999bf6})[_0x8515('0x20')](function(_0x26f1c3){var _0x541006=_[_0x8515('0x40')](_0x64b85b[_0x8515('0x5e')],function(_0x166da3){_0x166da3[_0x8515('0x67')]=_0x64b85b[_0x8515('0x59')]['id'];return _0x166da3;});return db[_0x8515('0x86')][_0x8515('0xa7')](_0x541006,{'transaction':_0x999bf6});});})[_0x8515('0x20')](function(){return db[_0x8515('0x86')]['findAndCountAll']({'where':{'OpenchannelAccountId':_0x64b85b[_0x8515('0x59')]['id']},'order':_0x8515('0x8c')});});}})[_0x8515('0x20')](respondWithResult(_0x12195e,null))[_0x8515('0x2a')](handleError(_0x12195e,null));};exports[_0x8515('0xa8')]=function(_0x126951,_0x5ebf37,_0x415403){var _0x1cee85={};var _0x184773={};var _0x54755c;var _0x4c044b;return db['OpenchannelAccount'][_0x8515('0x69')]({'where':{'id':_0x126951['params']['id']}})[_0x8515('0x20')](handleEntityNotFound(_0x5ebf37,null))[_0x8515('0x20')](function(_0x6406a4){if(_0x6406a4){_0x54755c=_0x6406a4;_0x184773['model']=_['keys'](db[_0x8515('0x86')][_0x8515('0x42')]);_0x184773[_0x8515('0x46')]=_[_0x8515('0x47')](_0x126951[_0x8515('0x46')]);_0x184773[_0x8515('0x48')]=_[_0x8515('0x49')](_0x184773['model'],_0x184773[_0x8515('0x46')]);_0x1cee85['attributes']=_[_0x8515('0x49')](_0x184773['model'],qs[_0x8515('0x4c')](_0x126951['query'][_0x8515('0x4c')]));_0x1cee85['attributes']=_0x1cee85[_0x8515('0x4a')][_0x8515('0x4d')]?_0x1cee85[_0x8515('0x4a')]:_0x184773[_0x8515('0x4b')];_0x1cee85['order']=qs[_0x8515('0x50')](_0x126951[_0x8515('0x46')][_0x8515('0x50')]);_0x1cee85['where']=qs['filters'](_['pick'](_0x126951[_0x8515('0x46')],_0x184773[_0x8515('0x48')]));if(_0x126951[_0x8515('0x46')][_0x8515('0x53')]){_0x1cee85['where']=_[_0x8515('0x54')](_0x1cee85['where'],{'$or':_[_0x8515('0x40')](_0x1cee85[_0x8515('0x4a')],function(_0xc77211){var _0x26e6f5={};_0x26e6f5[_0xc77211]={'$like':'%'+_0x126951['query'][_0x8515('0x53')]+'%'};return _0x26e6f5;})});}_0x1cee85=_[_0x8515('0x54')]({},_0x1cee85,_0x126951[_0x8515('0x56')]);return _0x54755c[_0x8515('0xa8')](_0x1cee85);}})[_0x8515('0x20')](function(_0x4e909d){if(_0x4e909d){_0x4c044b=_0x4e909d['length'];if(!_0x126951['query'][_0x8515('0x71')](_0x8515('0x4e'))){_0x1cee85[_0x8515('0x32')]=qs[_0x8515('0x32')](_0x126951[_0x8515('0x46')][_0x8515('0x32')]);_0x1cee85[_0x8515('0x2f')]=qs['offset'](_0x126951[_0x8515('0x46')][_0x8515('0x2f')]);}return _0x54755c[_0x8515('0xa8')](_0x1cee85);}})[_0x8515('0x20')](function(_0x2c0ecb){if(_0x2c0ecb){return _0x2c0ecb?{'count':_0x4c044b,'rows':_0x2c0ecb}:null;}})[_0x8515('0x20')](respondWithResult(_0x5ebf37,null))['catch'](handleError(_0x5ebf37,null));};exports[_0x8515('0xa9')]=function(_0x272cc,_0xe3f86c,_0x403502){var _0x195e37={'raw':![],'where':{}};var _0x468d82={};var _0x1b4f60={'count':0x0,'rows':[]};return db['OpenchannelAccount'][_0x8515('0x69')]({'where':{'id':_0x272cc[_0x8515('0x59')]['id']}})['then'](handleEntityNotFound(_0xe3f86c,null))[_0x8515('0x20')](function(_0xefc6a7){if(_0xefc6a7){_0x468d82['model']=_[_0x8515('0x47')](db[_0x8515('0x93')][_0x8515('0x42')]);_0x468d82[_0x8515('0x46')]=_['keys'](_0x272cc[_0x8515('0x46')]);_0x468d82['filters']=_['intersection'](_0x468d82[_0x8515('0x4b')],_0x468d82['query']);_0x195e37[_0x8515('0x4a')]=_[_0x8515('0x49')](_0x468d82[_0x8515('0x4b')],qs[_0x8515('0x4c')](_0x272cc[_0x8515('0x46')]['fields']));_0x195e37[_0x8515('0x4a')]=_0x195e37['attributes'][_0x8515('0x4d')]?_0x195e37[_0x8515('0x4a')]:_0x468d82['model'];if(!_0x272cc['query'][_0x8515('0x71')](_0x8515('0x4e'))){_0x195e37['limit']=qs[_0x8515('0x32')](_0x272cc[_0x8515('0x46')][_0x8515('0x32')]);_0x195e37[_0x8515('0x2f')]=qs[_0x8515('0x2f')](_0x272cc[_0x8515('0x46')][_0x8515('0x2f')]);}_0x195e37[_0x8515('0x4f')]=qs[_0x8515('0x50')](_0x272cc[_0x8515('0x46')]['sort']);_0x195e37['where']=qs[_0x8515('0x48')](_[_0x8515('0x52')](_0x272cc[_0x8515('0x46')],_0x468d82['filters']));_0x195e37[_0x8515('0x51')]['OpenchannelAccountId']=_0xefc6a7['id'];if(_0x272cc[_0x8515('0x46')]['filter']){_0x195e37['where']=_[_0x8515('0x54')](_0x195e37[_0x8515('0x51')],{'$or':_['map'](_0x195e37[_0x8515('0x4a')],function(_0x215474){var _0x29e5a1={};_0x29e5a1[_0x215474]={'$like':'%'+_0x272cc['query'][_0x8515('0x53')]+'%'};return _0x29e5a1;})});}_0x195e37=_[_0x8515('0x54')]({},_0x195e37,_0x272cc[_0x8515('0x56')]);return db['OpenchannelInteraction']['count']({'where':_0x195e37[_0x8515('0x51')]})[_0x8515('0x20')](function(_0x332b36){_0x1b4f60[_0x8515('0x31')]=_0x332b36;if(_0x272cc[_0x8515('0x46')][_0x8515('0x5b')]){_0x195e37['include']=[{'model':db[_0x8515('0x74')],'as':'Contact','required':![]},{'model':db[_0x8515('0x9d')],'as':_0x8515('0xaa'),'attributes':[_0x8515('0x3c'),_0x8515('0xab'),_0x8515('0xac')],'required':![]},{'model':db['Tag'],'as':_0x8515('0xad'),'attributes':['id',_0x8515('0x3c'),'color'],'where':_0x272cc[_0x8515('0x46')][_0x8515('0xae')]?{'id':_0x272cc['query'][_0x8515('0xae')]}:undefined,'required':_0x272cc[_0x8515('0x46')][_0x8515('0xae')]?!![]:![]}];}return db[_0x8515('0x93')][_0x8515('0xaf')](_0x195e37);})['then'](function(_0x2143b1){_0x1b4f60[_0x8515('0x6b')]=_0x2143b1;return _0x1b4f60;});}})[_0x8515('0x20')](respondWithFilteredResult(_0xe3f86c,_0x195e37))[_0x8515('0x2a')](handleError(_0xe3f86c,null));};exports[_0x8515('0xb0')]=function(_0x171ad5,_0xa23f4b,_0x27a49a){return db[_0x8515('0x41')]['find']({'where':{'id':_0x171ad5[_0x8515('0x59')]['id']}})[_0x8515('0x20')](handleEntityNotFound(_0xa23f4b,null))[_0x8515('0x20')](function(_0x9fb8f1){if(_0x9fb8f1){return _0x9fb8f1[_0x8515('0xb0')](_0x171ad5[_0x8515('0x5e')]['ids'],_['omit'](_0x171ad5[_0x8515('0x5e')],[_0x8515('0x6d'),'id'])||{})[_0x8515('0x95')](function(_0x49b472){for(var _0x5ce1fa=0x0;_0x5ce1fa<_0x171ad5[_0x8515('0x5e')][_0x8515('0x6d')]['length'];_0x5ce1fa+=0x1){socket[_0x8515('0xb1')](_0x8515('0xb2'),{'UserId':Number(_0x171ad5[_0x8515('0x5e')]['ids'][_0x5ce1fa]),'OpenchannelAccountId':Number(_0x171ad5['params']['id'])});}return _0x49b472;});}})[_0x8515('0x20')](respondWithResult(_0xa23f4b,null))[_0x8515('0x2a')](handleError(_0xa23f4b,null));};exports[_0x8515('0xb3')]=function(_0x2dce3f,_0x5374ab,_0x118dfc){return db[_0x8515('0x41')][_0x8515('0x5c')]({'where':{'id':_0x2dce3f[_0x8515('0x59')]['id']}})['then'](handleEntityNotFound(_0x5374ab,null))[_0x8515('0x20')](function(_0x17317c){if(_0x17317c){return _0x17317c['removeAgents'](_0x2dce3f[_0x8515('0x46')][_0x8515('0x6d')])[_0x8515('0x20')](function(){if(_[_0x8515('0xb4')](_0x2dce3f[_0x8515('0x46')][_0x8515('0x6d')])){for(var _0x12cae5=0x0;_0x12cae5<_0x2dce3f[_0x8515('0x46')]['ids']['length'];_0x12cae5+=0x1){socket[_0x8515('0xb1')](_0x8515('0xb5'),{'UserId':Number(_0x2dce3f[_0x8515('0x46')]['ids'][_0x12cae5]),'OpenchannelAccountId':Number(_0x2dce3f['params']['id'])});}}else{socket[_0x8515('0xb1')](_0x8515('0xb5'),{'UserId':Number(_0x2dce3f[_0x8515('0x46')]['ids']),'OpenchannelAccountId':Number(_0x2dce3f[_0x8515('0x59')]['id'])});}});}})[_0x8515('0x20')](respondWithStatusCode(_0x5374ab,null))[_0x8515('0x2a')](handleError(_0x5374ab,null));};exports[_0x8515('0xb6')]=function(_0x40e6e8,_0x480445,_0x557172){var _0x1ab773={};var _0x409382={};var _0x3a6639;var _0x40df9d;return db[_0x8515('0x41')][_0x8515('0x69')]({'where':{'id':_0x40e6e8[_0x8515('0x59')]['id']}})[_0x8515('0x20')](handleEntityNotFound(_0x480445,null))[_0x8515('0x20')](function(_0x3594cb){if(_0x3594cb){_0x3a6639=_0x3594cb;_0x409382[_0x8515('0x4b')]=_[_0x8515('0x47')](db[_0x8515('0x9d')][_0x8515('0x42')]);_0x409382[_0x8515('0x46')]=_[_0x8515('0x47')](_0x40e6e8['query']);_0x409382[_0x8515('0x48')]=_[_0x8515('0x49')](_0x409382[_0x8515('0x4b')],_0x409382[_0x8515('0x46')]);_0x1ab773[_0x8515('0x4a')]=_['intersection'](_0x409382['model'],qs['fields'](_0x40e6e8[_0x8515('0x46')][_0x8515('0x4c')]));_0x1ab773[_0x8515('0x4a')]=_0x1ab773[_0x8515('0x4a')][_0x8515('0x4d')]?_0x1ab773[_0x8515('0x4a')]:_0x409382['model'];_0x1ab773['order']=qs['sort'](_0x40e6e8['query'][_0x8515('0x50')]);_0x1ab773[_0x8515('0x51')]=qs[_0x8515('0x48')](_[_0x8515('0x52')](_0x40e6e8[_0x8515('0x46')],_0x409382['filters']));if(_0x40e6e8[_0x8515('0x46')][_0x8515('0x53')]){_0x1ab773[_0x8515('0x51')]=_[_0x8515('0x54')](_0x1ab773[_0x8515('0x51')],{'$or':_[_0x8515('0x40')](_0x1ab773['attributes'],function(_0x445724){var _0x2779e5={};_0x2779e5[_0x445724]={'$like':'%'+_0x40e6e8[_0x8515('0x46')][_0x8515('0x53')]+'%'};return _0x2779e5;})});}_0x1ab773=_[_0x8515('0x54')]({},_0x1ab773,_0x40e6e8['options']);return _0x3a6639['getAgents'](_0x1ab773);}})['then'](function(_0x7b7df8){if(_0x7b7df8){_0x40df9d=_0x7b7df8['length'];if(!_0x40e6e8[_0x8515('0x46')][_0x8515('0x71')](_0x8515('0x4e'))){_0x1ab773[_0x8515('0x32')]=qs[_0x8515('0x32')](_0x40e6e8[_0x8515('0x46')][_0x8515('0x32')]);_0x1ab773[_0x8515('0x2f')]=qs[_0x8515('0x2f')](_0x40e6e8[_0x8515('0x46')][_0x8515('0x2f')]);}return _0x3a6639['getAgents'](_0x1ab773);}})[_0x8515('0x20')](function(_0x125e21){if(_0x125e21){return _0x125e21?{'count':_0x40df9d,'rows':_0x125e21}:null;}})[_0x8515('0x20')](respondWithResult(_0x480445,null))[_0x8515('0x2a')](handleError(_0x480445,null));};exports[_0x8515('0x3d')]=function(_0x432b91,_0x47495a,_0x33fd3f){var _0x594c61,_0x1641ba,_0x37a4b3;if(_[_0x8515('0x7c')](_0x432b91[_0x8515('0x5e')][_0x8515('0x5e')])||_0x432b91[_0x8515('0x5e')][_0x8515('0x5e')]===''){throw new db[(_0x8515('0x7e'))][(_0x8515('0x75'))](_0x8515('0xb7'));}if(_['isNil'](_0x432b91['body']['to'])){}_0x594c61=_0x432b91[_0x8515('0x5e')]['to'];return db['OpenchannelAccount'][_0x8515('0x69')]({'where':{'id':_0x432b91['params']['id']}})[_0x8515('0x20')](handleEntityNotFound(_0x47495a,null))[_0x8515('0x20')](function(_0x37eadf){if(_0x37eadf){return db[_0x8515('0x41')][_0x8515('0x5c')]({'where':{'id':_0x37eadf['id']},'include':[{'model':db['CmList'],'as':_0x8515('0x84'),'include':[{'model':db[_0x8515('0x74')],'as':_0x8515('0x85'),'where':{[_0x37eadf[_0x8515('0x80')]]:_0x594c61},'limit':0x1,'order':[[_0x8515('0x79'),_0x8515('0xb8')]]}]}]})[_0x8515('0x20')](handleEntityNotFound(_0x47495a,null))['then'](function(_0x4c7d6c){if(_0x4c7d6c&&_0x4c7d6c[_0x8515('0x84')]){_0x1641ba=_0x4c7d6c[_0x8515('0x3a')]({'plain':!![]});if(_0x1641ba[_0x8515('0x84')]&&_0x1641ba[_0x8515('0x84')]['Contacts']['length']){return _0x1641ba[_0x8515('0x84')][_0x8515('0x85')][0x0];}return db[_0x8515('0x74')][_0x8515('0x5d')](_[_0x8515('0x1a')](_0x432b91[_0x8515('0x5e')],{'firstName':_0x594c61,[_0x4c7d6c[_0x8515('0x80')]]:_0x594c61,'phone':_0x594c61,'ListId':_0x1641ba[_0x8515('0x7b')]}));}})[_0x8515('0x20')](handleEntityNotFound(_0x47495a,null))['then'](function(_0x2c3e51){if(_0x2c3e51){_0x37a4b3=_0x2c3e51;return db[_0x8515('0x93')][_0x8515('0x5c')]({'where':{'ContactId':_0x37a4b3['id'],'closed':![],'OpenchannelAccountId':_0x1641ba['id']}})[_0x8515('0x20')](function(_0x240c71){if(_0x240c71){return[_0x240c71,![]];}return db[_0x8515('0x93')][_0x8515('0x5d')]({'UserId':_0x432b91[_0x8515('0x5f')]['id'],'ContactId':_0x37a4b3['id'],'OpenchannelAccountId':_0x1641ba['id'],'lastMsgDirection':_0x8515('0xb9'),'Messages':[_['merge'](_0x432b91[_0x8515('0x5e')],{'read':![],'body':_0x432b91[_0x8515('0x5e')][_0x8515('0x5e')],'OpenchannelAccountId':_0x1641ba['id'],'UserId':_0x432b91[_0x8515('0x5f')]['id'],'ContactId':_0x37a4b3['id']})]},{'include':[{'model':db[_0x8515('0x9b')],'as':_0x8515('0xba')}]})[_0x8515('0x20')](function(_0x3fdb36){return[_0x3fdb36,!![]];});});}})[_0x8515('0x95')](function(_0x393d06,_0x246c18){if(_0x246c18){return _0x393d06;}return db[_0x8515('0x9b')][_0x8515('0x5d')](_[_0x8515('0x54')](_0x432b91[_0x8515('0x5e')],{'read':![],'body':_0x432b91['body']['body'],'OpenchannelAccountId':_0x1641ba['id'],'OpenchannelInteractionId':_0x393d06['id'],'UserId':_0x432b91['user']['id'],'ContactId':_0x37a4b3['id']}))[_0x8515('0x20')](function(_0x13962c){_0x393d06[_0x8515('0xbb')][_0x8515('0xba')]=[];_0x393d06[_0x8515('0xbb')][_0x8515('0xba')]['push'](_0x13962c[_0x8515('0xbb')]);return _0x393d06;});});}})[_0x8515('0x20')](respondWithResult(_0x47495a,null))[_0x8515('0x2a')](handleError(_0x47495a,null));};
\ No newline at end of file
+var _0x2fad=['body','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','autoAssociation','describe','addDisposition','OpenchannelAccountId','getDispositions','findOne','Disposition','pick','removeDispositions','ids','addAnswer','CannedAnswer','getAnswers','includeAll','removeAnswers','notify','openchannel','CmContact','Sequelize','ValidationError','no\x20available\x20attributes','difference','updatedAt','createdAt','isNil','from','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','CmList','List','Contacts','DESC','OpenchannelApplication','Applications','applications','list','orderBy','priority','account','firstName','threadId','externalUrl','ContactId','contact','lastName','messageId','interaction','created','autoclose','push','close','unmanaged','*,*,*,*','OpenchannelMessage','AttachmentId','UserId','waitForTheAssignedAgent','forcedOwnership','Start','startRouting','EventManager','addApplications','sequelize','transaction','bulkCreate','findAndCountAll','getApplications','getInteractions','OpenchannelInteraction','Contact','Owner','internal','tag','addAgents','omit','spread','emit','userOpenchannelAccount:save','removeAgents','userOpenchannelAccount:remove','getAgents','User','ListId','out','Messages','dataValues','eml-format','zip-dir','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./openchannelAccount.socket','register','client','http','info','request\x20sent','debug','OpenchannelAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','OpenchannelAccount,\x20%s,\x20%s','message','catch','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','get','UserProfileResource','stack','name','send','index','Pause','mandatoryDispositionPause','map','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','filter','merge','VIRTUAL','options','OpenchannelAccount','include','findAll','rows','show','params','find','create'];(function(_0x2dafbe,_0x5d04de){var _0x58a45a=function(_0x50ac96){while(--_0x50ac96){_0x2dafbe['push'](_0x2dafbe['shift']());}};_0x58a45a(++_0x5d04de);}(_0x2fad,0x1da));var _0xd2fa=function(_0x336264,_0x32e1d9){_0x336264=_0x336264-0x0;var _0x53cf91=_0x2fad[_0x336264];return _0x53cf91;};'use strict';var emlformat=require(_0xd2fa('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xd2fa('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xd2fa('0x2'));var moment=require(_0xd2fa('0x3'));var BPromise=require(_0xd2fa('0x4'));var Mustache=require(_0xd2fa('0x5'));var util=require('util');var path=require(_0xd2fa('0x6'));var sox=require(_0xd2fa('0x7'));var csv=require(_0xd2fa('0x8'));var ejs=require(_0xd2fa('0x9'));var fs=require('fs');var fs_extra=require(_0xd2fa('0xa'));var _=require(_0xd2fa('0xb'));var squel=require(_0xd2fa('0xc'));var crypto=require(_0xd2fa('0xd'));var jsforce=require(_0xd2fa('0xe'));var deskjs=require(_0xd2fa('0xf'));var toCsv=require(_0xd2fa('0x8'));var querystring=require('querystring');var Papa=require(_0xd2fa('0x10'));var Redis=require('ioredis');var authService=require(_0xd2fa('0x11'));var qs=require(_0xd2fa('0x12'));var as=require(_0xd2fa('0x13'));var hardwareService=require(_0xd2fa('0x14'));var logger=require(_0xd2fa('0x15'))(_0xd2fa('0x16'));var utils=require(_0xd2fa('0x17'));var config=require(_0xd2fa('0x18'));var licenseUtil=require(_0xd2fa('0x19'));var db=require(_0xd2fa('0x1a'))['db'];config[_0xd2fa('0x1b')]=_[_0xd2fa('0x1c')](config['redis'],{'host':_0xd2fa('0x1d'),'port':0x18eb});var socket=require(_0xd2fa('0x1e'))(new Redis(config[_0xd2fa('0x1b')]));require(_0xd2fa('0x1f'))[_0xd2fa('0x20')](socket);var jayson=require('jayson/promise');var client=jayson[_0xd2fa('0x21')][_0xd2fa('0x22')]({'port':0x232c});var client9002=jayson[_0xd2fa('0x21')][_0xd2fa('0x22')]({'port':0x232a});function respondWithRpcPromise(_0x17720c,_0x2166eb,_0x5e5c5c,_0x5a7c5f){return new BPromise(function(_0x2d221d,_0x4263d9){var _0x125ed9=_0x5a7c5f||client;return _0x125ed9['request'](_0x17720c,_0x5e5c5c)['then'](function(_0x4506ea){logger[_0xd2fa('0x23')]('OpenchannelAccount,\x20%s,\x20%s',_0x2166eb,_0xd2fa('0x24'));logger[_0xd2fa('0x25')](_0xd2fa('0x26'),_0x2166eb,_0xd2fa('0x24'),JSON[_0xd2fa('0x27')](_0x4506ea));if(_0x4506ea[_0xd2fa('0x28')]){if(_0x4506ea[_0xd2fa('0x28')][_0xd2fa('0x29')]===0x1f4){logger[_0xd2fa('0x28')](_0xd2fa('0x2a'),_0x2166eb,_0x4506ea[_0xd2fa('0x28')][_0xd2fa('0x2b')]);return _0x4263d9(_0x4506ea[_0xd2fa('0x28')]['message']);}logger[_0xd2fa('0x28')]('OpenchannelAccount,\x20%s,\x20%s',_0x2166eb,_0x4506ea[_0xd2fa('0x28')][_0xd2fa('0x2b')]);return _0x2d221d(_0x4506ea[_0xd2fa('0x28')][_0xd2fa('0x2b')]);}else{logger[_0xd2fa('0x23')]('OpenchannelAccount,\x20%s,\x20%s',_0x2166eb,'request\x20sent');_0x2d221d(_0x4506ea['result'][_0xd2fa('0x2b')]);}})[_0xd2fa('0x2c')](function(_0x1748c1){logger[_0xd2fa('0x28')](_0xd2fa('0x2a'),_0x2166eb,_0x1748c1);_0x4263d9(_0x1748c1);});});}function respondWithStatusCode(_0x2ce4aa,_0x5b867e){_0x5b867e=_0x5b867e||0xcc;return function(_0x339b88){if(_0x339b88){return _0x2ce4aa[_0xd2fa('0x2d')](_0x5b867e);}return _0x2ce4aa[_0xd2fa('0x2e')](_0x5b867e)[_0xd2fa('0x2f')]();};}function respondWithResult(_0x3575be,_0x1130dd){_0x1130dd=_0x1130dd||0xc8;return function(_0x470c36){if(_0x470c36){return _0x3575be['status'](_0x1130dd)[_0xd2fa('0x30')](_0x470c36);}};}function respondWithFilteredResult(_0x18926f,_0xcc39c1){return function(_0xbdf969){if(_0xbdf969){var _0x480489=typeof _0xcc39c1[_0xd2fa('0x31')]===_0xd2fa('0x32')&&typeof _0xcc39c1[_0xd2fa('0x33')]===_0xd2fa('0x32');var _0x302975=_0xbdf969['count'];var _0x192158=_0x480489?0x0:_0xcc39c1[_0xd2fa('0x31')];var _0x38d51c=_0x480489?_0xbdf969[_0xd2fa('0x34')]:_0xcc39c1['offset']+_0xcc39c1[_0xd2fa('0x33')];var _0x4dd814;if(_0x38d51c>=_0x302975){_0x38d51c=_0x302975;_0x4dd814=0xc8;}else{_0x4dd814=0xce;}_0x18926f[_0xd2fa('0x2e')](_0x4dd814);return _0x18926f[_0xd2fa('0x35')](_0xd2fa('0x36'),_0x192158+'-'+_0x38d51c+'/'+_0x302975)['json'](_0xbdf969);}return null;};}function patchUpdates(_0x5c2dd3){return function(_0x20ddc1){try{jsonpatch[_0xd2fa('0x37')](_0x20ddc1,_0x5c2dd3,!![]);}catch(_0x2c9348){return BPromise[_0xd2fa('0x38')](_0x2c9348);}return _0x20ddc1[_0xd2fa('0x39')]();};}function saveUpdates(_0x1ef15b,_0x2458e1){return function(_0x47604b){if(_0x47604b){return _0x47604b[_0xd2fa('0x3a')](_0x1ef15b)[_0xd2fa('0x3b')](function(_0x30520d){return _0x30520d;});}return null;};}function removeEntity(_0x40d05c,_0x2bab93){return function(_0x373f58){if(_0x373f58){return _0x373f58[_0xd2fa('0x3c')]()[_0xd2fa('0x3b')](function(){var _0x46caad=_0x373f58[_0xd2fa('0x3d')]({'plain':!![]});var _0x12988d='OpenchannelAccounts';return db[_0xd2fa('0x3e')][_0xd2fa('0x3c')]({'where':{'type':_0x12988d,'resourceId':_0x46caad['id']}})[_0xd2fa('0x3b')](function(){return _0x373f58;});})[_0xd2fa('0x3b')](function(){_0x40d05c[_0xd2fa('0x2e')](0xcc)[_0xd2fa('0x2f')]();});}};}function handleEntityNotFound(_0x1ca308,_0x495c16){return function(_0x2288e7){if(!_0x2288e7){_0x1ca308[_0xd2fa('0x2d')](0x194);}return _0x2288e7;};}function handleError(_0x4b486f,_0x44491e){_0x44491e=_0x44491e||0x1f4;return function(_0x3b46d4){logger[_0xd2fa('0x28')](_0x3b46d4[_0xd2fa('0x3f')]);if(_0x3b46d4[_0xd2fa('0x40')]){delete _0x3b46d4['name'];}_0x4b486f['status'](_0x44491e)[_0xd2fa('0x41')](_0x3b46d4);};}exports[_0xd2fa('0x42')]=function(_0x54ca29,_0x49d3b8){var _0x4d239c={'include':[{'model':db[_0xd2fa('0x43')],'as':_0xd2fa('0x44')}]},_0x544e17={},_0x1d074f={'count':0x0,'rows':[]};var _0x3353f0=_[_0xd2fa('0x45')](db['OpenchannelAccount'][_0xd2fa('0x46')],function(_0x1d4aeb){return{'name':_0x1d4aeb[_0xd2fa('0x47')],'type':_0x1d4aeb[_0xd2fa('0x48')][_0xd2fa('0x49')]};});_0x544e17[_0xd2fa('0x4a')]=_[_0xd2fa('0x45')](_0x3353f0,_0xd2fa('0x40'));_0x544e17[_0xd2fa('0x4b')]=_[_0xd2fa('0x4c')](_0x54ca29[_0xd2fa('0x4b')]);_0x544e17[_0xd2fa('0x4d')]=_['intersection'](_0x544e17[_0xd2fa('0x4a')],_0x544e17[_0xd2fa('0x4b')]);_0x4d239c['attributes']=_[_0xd2fa('0x4e')](_0x544e17[_0xd2fa('0x4a')],qs[_0xd2fa('0x4f')](_0x54ca29['query'][_0xd2fa('0x4f')]));_0x4d239c['attributes']=_0x4d239c[_0xd2fa('0x50')][_0xd2fa('0x51')]?_0x4d239c['attributes']:_0x544e17[_0xd2fa('0x4a')];if(!_0x54ca29[_0xd2fa('0x4b')][_0xd2fa('0x52')](_0xd2fa('0x53'))){_0x4d239c[_0xd2fa('0x33')]=qs[_0xd2fa('0x33')](_0x54ca29['query'][_0xd2fa('0x33')]);_0x4d239c[_0xd2fa('0x31')]=qs[_0xd2fa('0x31')](_0x54ca29[_0xd2fa('0x4b')][_0xd2fa('0x31')]);}_0x4d239c[_0xd2fa('0x54')]=qs['sort'](_0x54ca29['query'][_0xd2fa('0x55')]);_0x4d239c[_0xd2fa('0x56')]=qs[_0xd2fa('0x4d')](_['pick'](_0x54ca29[_0xd2fa('0x4b')],_0x544e17[_0xd2fa('0x4d')]),_0x3353f0);if(_0x54ca29[_0xd2fa('0x4b')][_0xd2fa('0x57')]){_0x4d239c[_0xd2fa('0x56')]=_[_0xd2fa('0x58')](_0x4d239c[_0xd2fa('0x56')],{'$or':_[_0xd2fa('0x45')](_0x3353f0,function(_0x30ab2f){if(_0x30ab2f[_0xd2fa('0x48')]!==_0xd2fa('0x59')){var _0x2e2472={};_0x2e2472[_0x30ab2f['name']]={'$like':'%'+_0x54ca29['query']['filter']+'%'};return _0x2e2472;}})});}_0x4d239c=_[_0xd2fa('0x58')]({},_0x4d239c,_0x54ca29[_0xd2fa('0x5a')]);var _0x2eb233={'where':_0x4d239c[_0xd2fa('0x56')]};return db[_0xd2fa('0x5b')][_0xd2fa('0x34')](_0x2eb233)['then'](function(_0x5dca2f){_0x1d074f[_0xd2fa('0x34')]=_0x5dca2f;if(_0x54ca29[_0xd2fa('0x4b')]['includeAll']){_0x4d239c[_0xd2fa('0x5c')]=[{'all':!![]}];}return db[_0xd2fa('0x5b')][_0xd2fa('0x5d')](_0x4d239c);})[_0xd2fa('0x3b')](function(_0x574dc5){_0x1d074f[_0xd2fa('0x5e')]=_0x574dc5;return _0x1d074f;})[_0xd2fa('0x3b')](respondWithFilteredResult(_0x49d3b8,_0x4d239c))['catch'](handleError(_0x49d3b8,null));};exports[_0xd2fa('0x5f')]=function(_0x4cb323,_0x3b96f8){var _0x21e7fa={'raw':![],'where':{'id':_0x4cb323[_0xd2fa('0x60')]['id']},'include':[{'model':db[_0xd2fa('0x43')],'as':_0xd2fa('0x44')}]},_0x14acfa={};_0x14acfa[_0xd2fa('0x4a')]=_[_0xd2fa('0x4c')](db[_0xd2fa('0x5b')][_0xd2fa('0x46')]);_0x14acfa[_0xd2fa('0x4b')]=_[_0xd2fa('0x4c')](_0x4cb323[_0xd2fa('0x4b')]);_0x14acfa[_0xd2fa('0x4d')]=_[_0xd2fa('0x4e')](_0x14acfa[_0xd2fa('0x4a')],_0x14acfa[_0xd2fa('0x4b')]);_0x21e7fa['attributes']=_[_0xd2fa('0x4e')](_0x14acfa[_0xd2fa('0x4a')],qs[_0xd2fa('0x4f')](_0x4cb323['query'][_0xd2fa('0x4f')]));_0x21e7fa['attributes']=_0x21e7fa[_0xd2fa('0x50')][_0xd2fa('0x51')]?_0x21e7fa[_0xd2fa('0x50')]:_0x14acfa[_0xd2fa('0x4a')];if(_0x4cb323[_0xd2fa('0x4b')]['includeAll']){_0x21e7fa['include']=[{'all':!![]}];}_0x21e7fa=_[_0xd2fa('0x58')]({},_0x21e7fa,_0x4cb323['options']);return db[_0xd2fa('0x5b')][_0xd2fa('0x61')](_0x21e7fa)['then'](handleEntityNotFound(_0x3b96f8,null))['then'](respondWithResult(_0x3b96f8,null))[_0xd2fa('0x2c')](handleError(_0x3b96f8,null));};exports['create']=function(_0x52b79a,_0xfc5f74){return db['OpenchannelAccount'][_0xd2fa('0x62')](_0x52b79a[_0xd2fa('0x63')],{})[_0xd2fa('0x3b')](function(_0x2dced6){var _0x1bbaf8=_0x52b79a['user'][_0xd2fa('0x3d')]({'plain':!![]});if(!_0x1bbaf8)throw new Error(_0xd2fa('0x64'));if(_0x1bbaf8['role']===_0xd2fa('0x65')){var _0x16c18e=_0x2dced6[_0xd2fa('0x3d')]({'plain':!![]});var _0xd7807a='OpenchannelAccounts';return db['UserProfileSection'][_0xd2fa('0x61')]({'where':{'name':_0xd7807a,'userProfileId':_0x1bbaf8['userProfileId']},'raw':!![]})[_0xd2fa('0x3b')](function(_0x58320b){if(_0x58320b&&_0x58320b[_0xd2fa('0x66')]===0x0){return db['UserProfileResource'][_0xd2fa('0x62')]({'name':_0x16c18e[_0xd2fa('0x40')],'resourceId':_0x16c18e['id'],'type':_0x58320b[_0xd2fa('0x40')],'sectionId':_0x58320b['id']},{})[_0xd2fa('0x3b')](function(){return _0x2dced6;});}else{return _0x2dced6;}})[_0xd2fa('0x2c')](function(_0x46b8f0){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x46b8f0);throw _0x46b8f0;});}return _0x2dced6;})[_0xd2fa('0x3b')](respondWithResult(_0xfc5f74,0xc9))[_0xd2fa('0x2c')](handleError(_0xfc5f74,null));};exports[_0xd2fa('0x3a')]=function(_0x1590cb,_0x129f88){if(_0x1590cb[_0xd2fa('0x63')]['id']){delete _0x1590cb['body']['id'];}return db['OpenchannelAccount'][_0xd2fa('0x61')]({'where':{'id':_0x1590cb[_0xd2fa('0x60')]['id']},'include':[{'model':db['Pause'],'as':'mandatoryDispositionPause'}]})[_0xd2fa('0x3b')](handleEntityNotFound(_0x129f88,null))['then'](saveUpdates(_0x1590cb[_0xd2fa('0x63')],null))[_0xd2fa('0x3b')](respondWithResult(_0x129f88,null))[_0xd2fa('0x2c')](handleError(_0x129f88,null));};exports['destroy']=function(_0xfa78b1,_0x37c2d5){return db[_0xd2fa('0x5b')]['find']({'where':{'id':_0xfa78b1[_0xd2fa('0x60')]['id']}})[_0xd2fa('0x3b')](handleEntityNotFound(_0x37c2d5,null))[_0xd2fa('0x3b')](removeEntity(_0x37c2d5,null))['catch'](handleError(_0x37c2d5,null));};exports[_0xd2fa('0x67')]=function(_0x2195eb,_0x4c96c3){return db[_0xd2fa('0x5b')][_0xd2fa('0x67')]()['then'](respondWithResult(_0x4c96c3,null))['catch'](handleError(_0x4c96c3,null));};exports[_0xd2fa('0x68')]=function(_0x1857b9,_0x420496,_0x1ddc30){if(_0x1857b9[_0xd2fa('0x63')]['id']){delete _0x1857b9[_0xd2fa('0x63')]['id'];}return db['OpenchannelAccount'][_0xd2fa('0x61')]({'where':{'id':_0x1857b9['params']['id']}})[_0xd2fa('0x3b')](handleEntityNotFound(_0x420496,null))[_0xd2fa('0x3b')](function(_0x1f219e){if(_0x1f219e){_0x1857b9['body'][_0xd2fa('0x69')]=_0x1f219e['id'];return db['Disposition'][_0xd2fa('0x62')](_0x1857b9[_0xd2fa('0x63')]);}})[_0xd2fa('0x3b')](respondWithResult(_0x420496,null))[_0xd2fa('0x2c')](handleError(_0x420496,null));};exports[_0xd2fa('0x6a')]=function(_0x40b44d,_0x8377,_0x24dbfd){var _0x337049={'raw':![],'where':{}};var _0x56684d={};var _0x4a55fd={'count':0x0,'rows':[]};return db[_0xd2fa('0x5b')][_0xd2fa('0x6b')]({'where':{'id':_0x40b44d[_0xd2fa('0x60')]['id']}})[_0xd2fa('0x3b')](handleEntityNotFound(_0x8377,null))[_0xd2fa('0x3b')](function(_0x580e0c){if(_0x580e0c){_0x56684d[_0xd2fa('0x4a')]=_[_0xd2fa('0x4c')](db[_0xd2fa('0x6c')][_0xd2fa('0x46')]);_0x56684d['query']=_[_0xd2fa('0x4c')](_0x40b44d[_0xd2fa('0x4b')]);_0x56684d[_0xd2fa('0x4d')]=_[_0xd2fa('0x4e')](_0x56684d[_0xd2fa('0x4a')],_0x56684d[_0xd2fa('0x4b')]);_0x337049[_0xd2fa('0x50')]=_[_0xd2fa('0x4e')](_0x56684d[_0xd2fa('0x4a')],qs[_0xd2fa('0x4f')](_0x40b44d['query'][_0xd2fa('0x4f')]));_0x337049[_0xd2fa('0x50')]=_0x337049[_0xd2fa('0x50')][_0xd2fa('0x51')]?_0x337049[_0xd2fa('0x50')]:_0x56684d[_0xd2fa('0x4a')];if(!_0x40b44d[_0xd2fa('0x4b')][_0xd2fa('0x52')](_0xd2fa('0x53'))){_0x337049[_0xd2fa('0x33')]=qs[_0xd2fa('0x33')](_0x40b44d[_0xd2fa('0x4b')][_0xd2fa('0x33')]);_0x337049['offset']=qs[_0xd2fa('0x31')](_0x40b44d[_0xd2fa('0x4b')]['offset']);}_0x337049['order']=qs['sort'](_0x40b44d[_0xd2fa('0x4b')][_0xd2fa('0x55')]);_0x337049[_0xd2fa('0x56')]=qs['filters'](_[_0xd2fa('0x6d')](_0x40b44d[_0xd2fa('0x4b')],_0x56684d['filters']));_0x337049[_0xd2fa('0x56')][_0xd2fa('0x69')]=_0x580e0c['id'];if(_0x40b44d[_0xd2fa('0x4b')][_0xd2fa('0x57')]){_0x337049['where']=_[_0xd2fa('0x58')](_0x337049[_0xd2fa('0x56')],{'$or':_['map'](_0x337049[_0xd2fa('0x50')],function(_0x24e3ad){var _0x413f10={};_0x413f10[_0x24e3ad]={'$like':'%'+_0x40b44d[_0xd2fa('0x4b')][_0xd2fa('0x57')]+'%'};return _0x413f10;})});}_0x337049=_[_0xd2fa('0x58')]({},_0x337049,_0x40b44d[_0xd2fa('0x5a')]);return db[_0xd2fa('0x6c')][_0xd2fa('0x34')]({'where':_0x337049[_0xd2fa('0x56')]})[_0xd2fa('0x3b')](function(_0x4391f1){_0x4a55fd['count']=_0x4391f1;if(_0x40b44d[_0xd2fa('0x4b')]['includeAll']){_0x337049[_0xd2fa('0x5c')]=[{'all':!![]}];}return db[_0xd2fa('0x6c')]['findAll'](_0x337049);})[_0xd2fa('0x3b')](function(_0x24f6ee){_0x4a55fd['rows']=_0x24f6ee;return _0x4a55fd;});}})[_0xd2fa('0x3b')](respondWithFilteredResult(_0x8377,_0x337049))[_0xd2fa('0x2c')](handleError(_0x8377,null));};exports[_0xd2fa('0x6e')]=function(_0x52d743,_0xb13768,_0x29f2e9){return db['OpenchannelAccount'][_0xd2fa('0x61')]({'where':{'id':_0x52d743[_0xd2fa('0x60')]['id']}})[_0xd2fa('0x3b')](handleEntityNotFound(_0xb13768,null))[_0xd2fa('0x3b')](function(_0x308bbb){if(_0x308bbb){return _0x308bbb[_0xd2fa('0x6e')](_0x52d743['query'][_0xd2fa('0x6f')]);}})['then'](respondWithStatusCode(_0xb13768,null))['catch'](handleError(_0xb13768,null));};exports[_0xd2fa('0x70')]=function(_0x512741,_0x448879,_0x2db8a5){if(_0x512741['body']['id']){delete _0x512741[_0xd2fa('0x63')]['id'];}return db[_0xd2fa('0x5b')]['find']({'where':{'id':_0x512741['params']['id']}})[_0xd2fa('0x3b')](handleEntityNotFound(_0x448879,null))[_0xd2fa('0x3b')](function(_0x29d4ca){if(_0x29d4ca){_0x512741[_0xd2fa('0x63')][_0xd2fa('0x69')]=_0x29d4ca['id'];return db[_0xd2fa('0x71')][_0xd2fa('0x62')](_0x512741[_0xd2fa('0x63')]);}})[_0xd2fa('0x3b')](respondWithResult(_0x448879,null))[_0xd2fa('0x2c')](handleError(_0x448879,null));};exports[_0xd2fa('0x72')]=function(_0x4f4375,_0x39f115,_0x56f459){var _0xf9fa10={'raw':![],'where':{}};var _0x139517={};var _0x40af01={'count':0x0,'rows':[]};return db['OpenchannelAccount']['findOne']({'where':{'id':_0x4f4375['params']['id']}})[_0xd2fa('0x3b')](handleEntityNotFound(_0x39f115,null))[_0xd2fa('0x3b')](function(_0x52eec6){if(_0x52eec6){_0x139517['model']=_['keys'](db['CannedAnswer'][_0xd2fa('0x46')]);_0x139517[_0xd2fa('0x4b')]=_['keys'](_0x4f4375[_0xd2fa('0x4b')]);_0x139517['filters']=_[_0xd2fa('0x4e')](_0x139517['model'],_0x139517[_0xd2fa('0x4b')]);_0xf9fa10[_0xd2fa('0x50')]=_[_0xd2fa('0x4e')](_0x139517['model'],qs[_0xd2fa('0x4f')](_0x4f4375[_0xd2fa('0x4b')][_0xd2fa('0x4f')]));_0xf9fa10['attributes']=_0xf9fa10[_0xd2fa('0x50')][_0xd2fa('0x51')]?_0xf9fa10[_0xd2fa('0x50')]:_0x139517[_0xd2fa('0x4a')];if(!_0x4f4375[_0xd2fa('0x4b')]['hasOwnProperty'](_0xd2fa('0x53'))){_0xf9fa10[_0xd2fa('0x33')]=qs['limit'](_0x4f4375['query'][_0xd2fa('0x33')]);_0xf9fa10[_0xd2fa('0x31')]=qs[_0xd2fa('0x31')](_0x4f4375[_0xd2fa('0x4b')][_0xd2fa('0x31')]);}_0xf9fa10[_0xd2fa('0x54')]=qs[_0xd2fa('0x55')](_0x4f4375[_0xd2fa('0x4b')]['sort']);_0xf9fa10[_0xd2fa('0x56')]=qs[_0xd2fa('0x4d')](_[_0xd2fa('0x6d')](_0x4f4375[_0xd2fa('0x4b')],_0x139517['filters']));_0xf9fa10[_0xd2fa('0x56')][_0xd2fa('0x69')]=_0x52eec6['id'];if(_0x4f4375['query'][_0xd2fa('0x57')]){_0xf9fa10[_0xd2fa('0x56')]=_[_0xd2fa('0x58')](_0xf9fa10['where'],{'$or':_[_0xd2fa('0x45')](_0xf9fa10['attributes'],function(_0x293b4e){var _0x3f8df5={};_0x3f8df5[_0x293b4e]={'$like':'%'+_0x4f4375['query'][_0xd2fa('0x57')]+'%'};return _0x3f8df5;})});}_0xf9fa10=_['merge']({},_0xf9fa10,_0x4f4375['options']);return db[_0xd2fa('0x71')][_0xd2fa('0x34')]({'where':_0xf9fa10['where']})[_0xd2fa('0x3b')](function(_0x3261ec){_0x40af01[_0xd2fa('0x34')]=_0x3261ec;if(_0x4f4375[_0xd2fa('0x4b')][_0xd2fa('0x73')]){_0xf9fa10[_0xd2fa('0x5c')]=[{'all':!![]}];}return db[_0xd2fa('0x71')][_0xd2fa('0x5d')](_0xf9fa10);})[_0xd2fa('0x3b')](function(_0x21e88d){_0x40af01['rows']=_0x21e88d;return _0x40af01;});}})[_0xd2fa('0x3b')](respondWithFilteredResult(_0x39f115,_0xf9fa10))['catch'](handleError(_0x39f115,null));};exports[_0xd2fa('0x74')]=function(_0x28384e,_0x29859b,_0x12aa2c){return db[_0xd2fa('0x5b')][_0xd2fa('0x61')]({'where':{'id':_0x28384e['params']['id']}})[_0xd2fa('0x3b')](handleEntityNotFound(_0x29859b,null))[_0xd2fa('0x3b')](function(_0xde90ff){if(_0xde90ff){return _0xde90ff[_0xd2fa('0x74')](_0x28384e[_0xd2fa('0x4b')]['ids']);}})['then'](respondWithStatusCode(_0x29859b,null))[_0xd2fa('0x2c')](handleError(_0x29859b,null));};exports[_0xd2fa('0x75')]=function(_0x1818db,_0x316128,_0x2c9072){var _0x2a7dda={'body':_0x1818db[_0xd2fa('0x63')],'channel':_0xd2fa('0x76')};var _0xbb4a0c=[];var _0x1bf5e5=[];var _0x3a033b={};var _0x54d6b8=![];return db[_0xd2fa('0x77')][_0xd2fa('0x67')]()[_0xd2fa('0x3b')](function(_0x143dc5){if(!_0x143dc5){throw new db[(_0xd2fa('0x78'))][(_0xd2fa('0x79'))](_0xd2fa('0x7a'));}_0xbb4a0c=_[_0xd2fa('0x7b')](_['keys'](_0x143dc5),['createdAt',_0xd2fa('0x7c')]);_0x1bf5e5=_[_0xd2fa('0x7b')](_[_0xd2fa('0x4c')](_0x143dc5),[_0xd2fa('0x7d'),'updatedAt','CompanyId','ListId']);if(_0x1818db[_0xd2fa('0x63')]['id']){delete _0x1818db[_0xd2fa('0x63')]['id'];}if(_[_0xd2fa('0x7e')](_0x1818db[_0xd2fa('0x63')][_0xd2fa('0x7f')])){throw new db[(_0xd2fa('0x78'))]['ValidationError']('from\x20is\x20mandatory');}if(_[_0xd2fa('0x7e')](_0x1818db[_0xd2fa('0x63')][_0xd2fa('0x63')])||_0x1818db[_0xd2fa('0x63')][_0xd2fa('0x63')]===''){throw new db[(_0xd2fa('0x78'))][(_0xd2fa('0x79'))](_0xd2fa('0x80'));}if(_[_0xd2fa('0x7e')](_0x1818db['body'][_0xd2fa('0x81')])){throw new db[(_0xd2fa('0x78'))]['ValidationError'](_0xd2fa('0x82')+_0x1bf5e5);}if(!_[_0xd2fa('0x83')](_0x1bf5e5,_0x1818db[_0xd2fa('0x63')][_0xd2fa('0x81')])){throw new db[(_0xd2fa('0x78'))][(_0xd2fa('0x79'))](_0xd2fa('0x84')+_0x1bf5e5);}_0x3a033b[_0x1818db['body'][_0xd2fa('0x81')]]=_0x1818db[_0xd2fa('0x63')][_0xd2fa('0x7f')];})['then'](function(){return db[_0xd2fa('0x5b')]['find']({'where':{'id':_0x1818db[_0xd2fa('0x60')]['id']},'include':[{'model':db[_0xd2fa('0x85')],'as':_0xd2fa('0x86'),'include':[{'model':db['CmContact'],'as':_0xd2fa('0x87'),'where':_0x3a033b,'limit':0x1,'order':[[_0xd2fa('0x7c'),_0xd2fa('0x88')]]}]},{'model':db[_0xd2fa('0x89')],'as':_0xd2fa('0x8a')}]});})[_0xd2fa('0x3b')](handleEntityNotFound(_0x316128,null))[_0xd2fa('0x3b')](function(_0x5ca7cf){if(_0x5ca7cf&&_0x5ca7cf[_0xd2fa('0x86')]){_0x2a7dda['account']=_0x5ca7cf;_0x2a7dda[_0xd2fa('0x8b')]=_0x5ca7cf[_0xd2fa('0x8a')];_0x2a7dda[_0xd2fa('0x8c')]=_0x5ca7cf[_0xd2fa('0x86')];_0x2a7dda[_0xd2fa('0x8b')]=_[_0xd2fa('0x8d')](_0x2a7dda[_0xd2fa('0x8b')],[_0xd2fa('0x8e')],['asc']);if(_0x2a7dda[_0xd2fa('0x8f')][_0xd2fa('0x8a')]){delete _0x2a7dda['account'][_0xd2fa('0x8a')];}if(_0x2a7dda[_0xd2fa('0x8f')]['List']&&_0x2a7dda[_0xd2fa('0x8f')][_0xd2fa('0x86')][_0xd2fa('0x87')]['length']){return _0x2a7dda[_0xd2fa('0x8f')][_0xd2fa('0x86')]['Contacts'][0x0];}var _0x263cb5=_['defaults'](_0x1818db['body'],{'firstName':_0x1818db[_0xd2fa('0x63')][_0xd2fa('0x7f')],'ListId':_0x5ca7cf['ListId']});_0x263cb5[_0x1818db[_0xd2fa('0x63')][_0xd2fa('0x81')]]=_0x1818db['body'][_0xd2fa('0x7f')];return db['CmContact'][_0xd2fa('0x62')](_0x263cb5,{'fields':_0xbb4a0c,'raw':!![]});}})[_0xd2fa('0x3b')](handleEntityNotFound(_0x316128,null))[_0xd2fa('0x3b')](function(_0x2bc3ff){_0x2a7dda['contact']=_0x2bc3ff;if(_0x2bc3ff){var _0x47335c={'ContactId':_0x2bc3ff['id'],'OpenchannelAccountId':_0x1818db[_0xd2fa('0x60')]['id'],'from':(_0x2bc3ff[_0xd2fa('0x90')]||'')+'\x20'+(_0x2bc3ff['lastName']||'')};var _0x3817f4={'OpenchannelAccountId':_0x1818db['params']['id'],'closed':![]};if(_0x1818db[_0xd2fa('0x63')]['threadId']){_0x3817f4[_0xd2fa('0x91')]=_0x1818db['body']['threadId'];return db['OpenchannelInteraction'][_0xd2fa('0x61')]({'where':_0x3817f4})['then'](function(_0x50a68d){if(_0x50a68d){return[_0x50a68d,![]];}_0x47335c['threadId']=_0x1818db[_0xd2fa('0x63')][_0xd2fa('0x91')];_0x47335c[_0xd2fa('0x92')]=_0x1818db[_0xd2fa('0x63')][_0xd2fa('0x92')];return db['OpenchannelInteraction'][_0xd2fa('0x62')](_0x47335c)[_0xd2fa('0x3b')](function(_0x23bbb6){return[_0x23bbb6,!![]];});});}else{_0x3817f4[_0xd2fa('0x91')]=null;}_0x3817f4[_0xd2fa('0x93')]=_0x2bc3ff['id'];return db['OpenchannelInteraction'][_0xd2fa('0x61')]({'where':_0x3817f4})[_0xd2fa('0x3b')](function(_0x4bd5a8){if(_0x4bd5a8){return[_0x4bd5a8,![]];}return db['OpenchannelInteraction'][_0xd2fa('0x62')](_0x47335c)['then'](function(_0x303b06){return[_0x303b06,!![]];});});}})['spread'](function(_0x362ba4,_0x41a78d){if(_0x362ba4){_0x54d6b8=_0x41a78d;if(!_0x41a78d){var _0x1e99e8={'from':(_0x2a7dda[_0xd2fa('0x94')][_0xd2fa('0x90')]||'')+'\x20'+(_0x2a7dda[_0xd2fa('0x94')][_0xd2fa('0x95')]||'')};if(_0x1818db[_0xd2fa('0x63')][_0xd2fa('0x91')]&&_0x1818db[_0xd2fa('0x63')][_0xd2fa('0x96')]&&_0x1818db[_0xd2fa('0x63')][_0xd2fa('0x91')]!=_0x1818db[_0xd2fa('0x63')]['messageId']){_0x1e99e8[_0xd2fa('0x91')]=_0x1818db[_0xd2fa('0x63')][_0xd2fa('0x96')];}return _0x362ba4['update'](_0x1e99e8);}else{return _0x362ba4;}}})[_0xd2fa('0x3b')](function(_0x152887){_0x2a7dda[_0xd2fa('0x97')]=_0x152887[_0xd2fa('0x3d')]({'plain':!![]});_0x2a7dda['interaction'][_0xd2fa('0x98')]=_0x54d6b8;if(_0x2a7dda[_0xd2fa('0x97')][_0xd2fa('0x98')]){if(_0x2a7dda[_0xd2fa('0x8f')][_0xd2fa('0x99')]){_0x2a7dda[_0xd2fa('0x8b')][_0xd2fa('0x9a')]({'id':0x0,'priority':_0x2a7dda[_0xd2fa('0x8b')][_0xd2fa('0x51')]+0x1,'app':_0xd2fa('0x9b'),'appdata':_0xd2fa('0x9c'),'interval':_0xd2fa('0x9d')});}}return db[_0xd2fa('0x9e')][_0xd2fa('0x62')]({'body':_0x1818db[_0xd2fa('0x63')][_0xd2fa('0x63')],'OpenchannelAccountId':_0x1818db['params']['id'],'OpenchannelInteractionId':_0x152887['id'],'direction':'in','ContactId':_0x2a7dda['contact']['id'],'AttachmentId':_0x1818db['body'][_0xd2fa('0x9f')]});})[_0xd2fa('0x3b')](function(_0x153a7a){_0x2a7dda[_0xd2fa('0x2b')]=_0x153a7a;if(_0x2a7dda[_0xd2fa('0x97')][_0xd2fa('0xa0')]){return db['User'][_0xd2fa('0x61')]({'attributes':['id',_0xd2fa('0x40')],'where':{'id':_0x2a7dda[_0xd2fa('0x97')][_0xd2fa('0xa0')]}})[_0xd2fa('0x3b')](function(_0x488a1a){if(_0x488a1a){_0x2a7dda[_0xd2fa('0x8b')]['unshift']({'id':0x0,'priority':0x0,'app':'agent','appdata':_0x488a1a[_0xd2fa('0x40')]+','+(_0x2a7dda[_0xd2fa('0x8f')][_0xd2fa('0xa1')]||0xa),'interval':'*,*,*,*'});_0x2a7dda[_0xd2fa('0xa2')]=![];}return respondWithRpcPromise(_0xd2fa('0xa3'),_0xd2fa('0xa4'),_0x2a7dda);});}return respondWithRpcPromise('Start',_0xd2fa('0xa4'),_0x2a7dda);})[_0xd2fa('0x3b')](function(_0x1ea524){respondWithRpcPromise(_0xd2fa('0xa5'),_0xd2fa('0xa5'),{'event':'notify','message':_0x1ea524},client9002);return _0x1ea524;})[_0xd2fa('0x3b')](respondWithResult(_0x316128,null))[_0xd2fa('0x2c')](handleError(_0x316128,null));};exports[_0xd2fa('0xa6')]=function(_0x222cd7,_0x5885cf,_0x5d834b){return db[_0xd2fa('0x5b')]['findOne']({'where':{'id':_0x222cd7[_0xd2fa('0x60')]['id']}})[_0xd2fa('0x3b')](handleEntityNotFound(_0x5885cf,null))[_0xd2fa('0x3b')](function(_0x1f6afc){if(_0x1f6afc){return db[_0xd2fa('0xa7')][_0xd2fa('0xa8')](function(_0x251983){return db[_0xd2fa('0x89')][_0xd2fa('0x3c')]({'where':{'OpenchannelAccountId':_0x222cd7[_0xd2fa('0x60')]['id']},'transaction':_0x251983})[_0xd2fa('0x3b')](function(_0x2b7b46){var _0x41aeb1=_[_0xd2fa('0x45')](_0x222cd7[_0xd2fa('0x63')],function(_0x5e3ff0){_0x5e3ff0[_0xd2fa('0x69')]=_0x222cd7[_0xd2fa('0x60')]['id'];return _0x5e3ff0;});return db[_0xd2fa('0x89')][_0xd2fa('0xa9')](_0x41aeb1,{'transaction':_0x251983});});})['then'](function(){return db[_0xd2fa('0x89')][_0xd2fa('0xaa')]({'where':{'OpenchannelAccountId':_0x222cd7[_0xd2fa('0x60')]['id']},'order':_0xd2fa('0x8e')});});}})[_0xd2fa('0x3b')](respondWithResult(_0x5885cf,null))['catch'](handleError(_0x5885cf,null));};exports['getApplications']=function(_0x22c442,_0x4fdfe0,_0x26ff23){var _0x1b1444={};var _0x7c789f={};var _0x28fbc9;var _0x3fbed1;return db[_0xd2fa('0x5b')]['findOne']({'where':{'id':_0x22c442[_0xd2fa('0x60')]['id']}})[_0xd2fa('0x3b')](handleEntityNotFound(_0x4fdfe0,null))[_0xd2fa('0x3b')](function(_0x3678a4){if(_0x3678a4){_0x28fbc9=_0x3678a4;_0x7c789f[_0xd2fa('0x4a')]=_['keys'](db[_0xd2fa('0x89')][_0xd2fa('0x46')]);_0x7c789f[_0xd2fa('0x4b')]=_[_0xd2fa('0x4c')](_0x22c442[_0xd2fa('0x4b')]);_0x7c789f[_0xd2fa('0x4d')]=_[_0xd2fa('0x4e')](_0x7c789f[_0xd2fa('0x4a')],_0x7c789f[_0xd2fa('0x4b')]);_0x1b1444[_0xd2fa('0x50')]=_[_0xd2fa('0x4e')](_0x7c789f[_0xd2fa('0x4a')],qs[_0xd2fa('0x4f')](_0x22c442[_0xd2fa('0x4b')][_0xd2fa('0x4f')]));_0x1b1444['attributes']=_0x1b1444['attributes']['length']?_0x1b1444['attributes']:_0x7c789f[_0xd2fa('0x4a')];_0x1b1444[_0xd2fa('0x54')]=qs[_0xd2fa('0x55')](_0x22c442[_0xd2fa('0x4b')][_0xd2fa('0x55')]);_0x1b1444[_0xd2fa('0x56')]=qs[_0xd2fa('0x4d')](_[_0xd2fa('0x6d')](_0x22c442['query'],_0x7c789f[_0xd2fa('0x4d')]));if(_0x22c442[_0xd2fa('0x4b')][_0xd2fa('0x57')]){_0x1b1444['where']=_[_0xd2fa('0x58')](_0x1b1444['where'],{'$or':_[_0xd2fa('0x45')](_0x1b1444[_0xd2fa('0x50')],function(_0x2d66af){var _0xf567a5={};_0xf567a5[_0x2d66af]={'$like':'%'+_0x22c442[_0xd2fa('0x4b')]['filter']+'%'};return _0xf567a5;})});}_0x1b1444=_[_0xd2fa('0x58')]({},_0x1b1444,_0x22c442[_0xd2fa('0x5a')]);return _0x28fbc9[_0xd2fa('0xab')](_0x1b1444);}})['then'](function(_0x29634f){if(_0x29634f){_0x3fbed1=_0x29634f[_0xd2fa('0x51')];if(!_0x22c442['query'][_0xd2fa('0x52')](_0xd2fa('0x53'))){_0x1b1444['limit']=qs[_0xd2fa('0x33')](_0x22c442[_0xd2fa('0x4b')][_0xd2fa('0x33')]);_0x1b1444[_0xd2fa('0x31')]=qs['offset'](_0x22c442[_0xd2fa('0x4b')][_0xd2fa('0x31')]);}return _0x28fbc9[_0xd2fa('0xab')](_0x1b1444);}})[_0xd2fa('0x3b')](function(_0x5d9bd9){if(_0x5d9bd9){return _0x5d9bd9?{'count':_0x3fbed1,'rows':_0x5d9bd9}:null;}})[_0xd2fa('0x3b')](respondWithResult(_0x4fdfe0,null))['catch'](handleError(_0x4fdfe0,null));};exports[_0xd2fa('0xac')]=function(_0x48eee8,_0x25dd78,_0x450ff4){var _0x30c0d9={'raw':![],'where':{}};var _0x55346f={};var _0x9bea02={'count':0x0,'rows':[]};return db[_0xd2fa('0x5b')][_0xd2fa('0x6b')]({'where':{'id':_0x48eee8[_0xd2fa('0x60')]['id']}})[_0xd2fa('0x3b')](handleEntityNotFound(_0x25dd78,null))[_0xd2fa('0x3b')](function(_0x50a9cc){if(_0x50a9cc){_0x55346f[_0xd2fa('0x4a')]=_[_0xd2fa('0x4c')](db[_0xd2fa('0xad')][_0xd2fa('0x46')]);_0x55346f[_0xd2fa('0x4b')]=_[_0xd2fa('0x4c')](_0x48eee8['query']);_0x55346f[_0xd2fa('0x4d')]=_[_0xd2fa('0x4e')](_0x55346f['model'],_0x55346f[_0xd2fa('0x4b')]);_0x30c0d9[_0xd2fa('0x50')]=_[_0xd2fa('0x4e')](_0x55346f[_0xd2fa('0x4a')],qs[_0xd2fa('0x4f')](_0x48eee8[_0xd2fa('0x4b')]['fields']));_0x30c0d9[_0xd2fa('0x50')]=_0x30c0d9[_0xd2fa('0x50')]['length']?_0x30c0d9[_0xd2fa('0x50')]:_0x55346f['model'];if(!_0x48eee8[_0xd2fa('0x4b')][_0xd2fa('0x52')](_0xd2fa('0x53'))){_0x30c0d9[_0xd2fa('0x33')]=qs['limit'](_0x48eee8['query']['limit']);_0x30c0d9['offset']=qs[_0xd2fa('0x31')](_0x48eee8[_0xd2fa('0x4b')]['offset']);}_0x30c0d9['order']=qs[_0xd2fa('0x55')](_0x48eee8['query'][_0xd2fa('0x55')]);_0x30c0d9[_0xd2fa('0x56')]=qs[_0xd2fa('0x4d')](_[_0xd2fa('0x6d')](_0x48eee8[_0xd2fa('0x4b')],_0x55346f[_0xd2fa('0x4d')]));_0x30c0d9[_0xd2fa('0x56')][_0xd2fa('0x69')]=_0x50a9cc['id'];if(_0x48eee8[_0xd2fa('0x4b')][_0xd2fa('0x57')]){_0x30c0d9['where']=_[_0xd2fa('0x58')](_0x30c0d9[_0xd2fa('0x56')],{'$or':_[_0xd2fa('0x45')](_0x30c0d9['attributes'],function(_0x19c501){var _0x5b1f97={};_0x5b1f97[_0x19c501]={'$like':'%'+_0x48eee8[_0xd2fa('0x4b')]['filter']+'%'};return _0x5b1f97;})});}_0x30c0d9=_['merge']({},_0x30c0d9,_0x48eee8[_0xd2fa('0x5a')]);return db[_0xd2fa('0xad')]['count']({'where':_0x30c0d9['where']})[_0xd2fa('0x3b')](function(_0x7924c7){_0x9bea02[_0xd2fa('0x34')]=_0x7924c7;if(_0x48eee8[_0xd2fa('0x4b')][_0xd2fa('0x73')]){_0x30c0d9[_0xd2fa('0x5c')]=[{'model':db[_0xd2fa('0x77')],'as':_0xd2fa('0xae'),'required':![]},{'model':db['User'],'as':_0xd2fa('0xaf'),'attributes':['name','fullname',_0xd2fa('0xb0')],'required':![]},{'model':db['Tag'],'as':'Tags','attributes':['id','name','color'],'where':_0x48eee8['query'][_0xd2fa('0xb1')]?{'id':_0x48eee8[_0xd2fa('0x4b')][_0xd2fa('0xb1')]}:undefined,'required':_0x48eee8[_0xd2fa('0x4b')][_0xd2fa('0xb1')]?!![]:![]}];}return db['OpenchannelInteraction']['findAll'](_0x30c0d9);})[_0xd2fa('0x3b')](function(_0x2da685){_0x9bea02[_0xd2fa('0x5e')]=_0x2da685;return _0x9bea02;});}})[_0xd2fa('0x3b')](respondWithFilteredResult(_0x25dd78,_0x30c0d9))['catch'](handleError(_0x25dd78,null));};exports[_0xd2fa('0xb2')]=function(_0x544cb4,_0x504ad1,_0x471841){return db['OpenchannelAccount'][_0xd2fa('0x61')]({'where':{'id':_0x544cb4[_0xd2fa('0x60')]['id']}})[_0xd2fa('0x3b')](handleEntityNotFound(_0x504ad1,null))[_0xd2fa('0x3b')](function(_0xb54eb3){if(_0xb54eb3){return _0xb54eb3['addAgents'](_0x544cb4['body'][_0xd2fa('0x6f')],_[_0xd2fa('0xb3')](_0x544cb4['body'],['ids','id'])||{})[_0xd2fa('0xb4')](function(_0x1d922e){for(var _0x3119cb=0x0;_0x3119cb<_0x544cb4[_0xd2fa('0x63')][_0xd2fa('0x6f')][_0xd2fa('0x51')];_0x3119cb+=0x1){socket[_0xd2fa('0xb5')](_0xd2fa('0xb6'),{'UserId':Number(_0x544cb4[_0xd2fa('0x63')]['ids'][_0x3119cb]),'OpenchannelAccountId':Number(_0x544cb4[_0xd2fa('0x60')]['id'])});}return _0x1d922e;});}})[_0xd2fa('0x3b')](respondWithResult(_0x504ad1,null))[_0xd2fa('0x2c')](handleError(_0x504ad1,null));};exports[_0xd2fa('0xb7')]=function(_0x3810f4,_0x3fd50c,_0x54b279){return db['OpenchannelAccount'][_0xd2fa('0x61')]({'where':{'id':_0x3810f4['params']['id']}})[_0xd2fa('0x3b')](handleEntityNotFound(_0x3fd50c,null))[_0xd2fa('0x3b')](function(_0x3d58b4){if(_0x3d58b4){return _0x3d58b4[_0xd2fa('0xb7')](_0x3810f4[_0xd2fa('0x4b')][_0xd2fa('0x6f')])[_0xd2fa('0x3b')](function(){if(_['isArray'](_0x3810f4['query']['ids'])){for(var _0x5a10f2=0x0;_0x5a10f2<_0x3810f4[_0xd2fa('0x4b')]['ids']['length'];_0x5a10f2+=0x1){socket[_0xd2fa('0xb5')](_0xd2fa('0xb8'),{'UserId':Number(_0x3810f4[_0xd2fa('0x4b')][_0xd2fa('0x6f')][_0x5a10f2]),'OpenchannelAccountId':Number(_0x3810f4[_0xd2fa('0x60')]['id'])});}}else{socket[_0xd2fa('0xb5')]('userOpenchannelAccount:remove',{'UserId':Number(_0x3810f4[_0xd2fa('0x4b')][_0xd2fa('0x6f')]),'OpenchannelAccountId':Number(_0x3810f4[_0xd2fa('0x60')]['id'])});}});}})[_0xd2fa('0x3b')](respondWithStatusCode(_0x3fd50c,null))[_0xd2fa('0x2c')](handleError(_0x3fd50c,null));};exports[_0xd2fa('0xb9')]=function(_0x425e6e,_0x452bda,_0x1dbbfc){var _0x36000a={};var _0x3e487c={};var _0x2ff7c1;var _0x5cf45b;return db[_0xd2fa('0x5b')]['findOne']({'where':{'id':_0x425e6e[_0xd2fa('0x60')]['id']}})[_0xd2fa('0x3b')](handleEntityNotFound(_0x452bda,null))['then'](function(_0x4d0585){if(_0x4d0585){_0x2ff7c1=_0x4d0585;_0x3e487c['model']=_[_0xd2fa('0x4c')](db[_0xd2fa('0xba')][_0xd2fa('0x46')]);_0x3e487c[_0xd2fa('0x4b')]=_[_0xd2fa('0x4c')](_0x425e6e[_0xd2fa('0x4b')]);_0x3e487c[_0xd2fa('0x4d')]=_[_0xd2fa('0x4e')](_0x3e487c[_0xd2fa('0x4a')],_0x3e487c[_0xd2fa('0x4b')]);_0x36000a[_0xd2fa('0x50')]=_[_0xd2fa('0x4e')](_0x3e487c[_0xd2fa('0x4a')],qs[_0xd2fa('0x4f')](_0x425e6e[_0xd2fa('0x4b')]['fields']));_0x36000a[_0xd2fa('0x50')]=_0x36000a[_0xd2fa('0x50')][_0xd2fa('0x51')]?_0x36000a[_0xd2fa('0x50')]:_0x3e487c['model'];_0x36000a[_0xd2fa('0x54')]=qs[_0xd2fa('0x55')](_0x425e6e[_0xd2fa('0x4b')][_0xd2fa('0x55')]);_0x36000a[_0xd2fa('0x56')]=qs[_0xd2fa('0x4d')](_[_0xd2fa('0x6d')](_0x425e6e[_0xd2fa('0x4b')],_0x3e487c[_0xd2fa('0x4d')]));if(_0x425e6e[_0xd2fa('0x4b')][_0xd2fa('0x57')]){_0x36000a['where']=_[_0xd2fa('0x58')](_0x36000a[_0xd2fa('0x56')],{'$or':_[_0xd2fa('0x45')](_0x36000a[_0xd2fa('0x50')],function(_0x44415c){var _0x1c21fb={};_0x1c21fb[_0x44415c]={'$like':'%'+_0x425e6e[_0xd2fa('0x4b')][_0xd2fa('0x57')]+'%'};return _0x1c21fb;})});}_0x36000a=_['merge']({},_0x36000a,_0x425e6e['options']);return _0x2ff7c1[_0xd2fa('0xb9')](_0x36000a);}})[_0xd2fa('0x3b')](function(_0x2325fd){if(_0x2325fd){_0x5cf45b=_0x2325fd[_0xd2fa('0x51')];if(!_0x425e6e[_0xd2fa('0x4b')][_0xd2fa('0x52')](_0xd2fa('0x53'))){_0x36000a[_0xd2fa('0x33')]=qs[_0xd2fa('0x33')](_0x425e6e['query'][_0xd2fa('0x33')]);_0x36000a[_0xd2fa('0x31')]=qs['offset'](_0x425e6e[_0xd2fa('0x4b')][_0xd2fa('0x31')]);}return _0x2ff7c1[_0xd2fa('0xb9')](_0x36000a);}})[_0xd2fa('0x3b')](function(_0x479bbb){if(_0x479bbb){return _0x479bbb?{'count':_0x5cf45b,'rows':_0x479bbb}:null;}})[_0xd2fa('0x3b')](respondWithResult(_0x452bda,null))[_0xd2fa('0x2c')](handleError(_0x452bda,null));};exports[_0xd2fa('0x41')]=function(_0x421a34,_0x359310,_0x11fc02){var _0x2bb84c,_0x286fd7,_0x5c491d;if(_[_0xd2fa('0x7e')](_0x421a34['body'][_0xd2fa('0x63')])||_0x421a34[_0xd2fa('0x63')][_0xd2fa('0x63')]===''){throw new db[(_0xd2fa('0x78'))][(_0xd2fa('0x79'))](_0xd2fa('0x80'));}if(_[_0xd2fa('0x7e')](_0x421a34['body']['to'])){}_0x2bb84c=_0x421a34['body']['to'];return db[_0xd2fa('0x5b')][_0xd2fa('0x6b')]({'where':{'id':_0x421a34['params']['id']}})[_0xd2fa('0x3b')](handleEntityNotFound(_0x359310,null))[_0xd2fa('0x3b')](function(_0x3dc8c1){if(_0x3dc8c1){return db[_0xd2fa('0x5b')][_0xd2fa('0x61')]({'where':{'id':_0x3dc8c1['id']},'include':[{'model':db[_0xd2fa('0x85')],'as':_0xd2fa('0x86'),'include':[{'model':db[_0xd2fa('0x77')],'as':_0xd2fa('0x87'),'where':{[_0x3dc8c1[_0xd2fa('0x81')]]:_0x2bb84c},'limit':0x1,'order':[[_0xd2fa('0x7c'),_0xd2fa('0x88')]]}]}]})[_0xd2fa('0x3b')](handleEntityNotFound(_0x359310,null))[_0xd2fa('0x3b')](function(_0x1d51a7){if(_0x1d51a7&&_0x1d51a7[_0xd2fa('0x86')]){_0x286fd7=_0x1d51a7[_0xd2fa('0x3d')]({'plain':!![]});if(_0x286fd7[_0xd2fa('0x86')]&&_0x286fd7[_0xd2fa('0x86')][_0xd2fa('0x87')]['length']){return _0x286fd7[_0xd2fa('0x86')][_0xd2fa('0x87')][0x0];}return db[_0xd2fa('0x77')][_0xd2fa('0x62')](_[_0xd2fa('0x1c')](_0x421a34[_0xd2fa('0x63')],{'firstName':_0x2bb84c,[_0x1d51a7[_0xd2fa('0x81')]]:_0x2bb84c,'phone':_0x2bb84c,'ListId':_0x286fd7[_0xd2fa('0xbb')]}));}})[_0xd2fa('0x3b')](handleEntityNotFound(_0x359310,null))[_0xd2fa('0x3b')](function(_0x4e3581){if(_0x4e3581){_0x5c491d=_0x4e3581;return db[_0xd2fa('0xad')][_0xd2fa('0x61')]({'where':{'ContactId':_0x5c491d['id'],'closed':![],'OpenchannelAccountId':_0x286fd7['id']}})[_0xd2fa('0x3b')](function(_0x2fa447){if(_0x2fa447){return[_0x2fa447,![]];}return db[_0xd2fa('0xad')][_0xd2fa('0x62')]({'UserId':_0x421a34[_0xd2fa('0x65')]['id'],'ContactId':_0x5c491d['id'],'OpenchannelAccountId':_0x286fd7['id'],'lastMsgDirection':_0xd2fa('0xbc'),'Messages':[_['merge'](_0x421a34[_0xd2fa('0x63')],{'read':![],'body':_0x421a34['body'][_0xd2fa('0x63')],'OpenchannelAccountId':_0x286fd7['id'],'UserId':_0x421a34['user']['id'],'ContactId':_0x5c491d['id']})]},{'include':[{'model':db['OpenchannelMessage'],'as':_0xd2fa('0xbd')}]})[_0xd2fa('0x3b')](function(_0x14964e){return[_0x14964e,!![]];});});}})[_0xd2fa('0xb4')](function(_0x337e86,_0x32fb3f){if(_0x32fb3f){return _0x337e86;}return db[_0xd2fa('0x9e')][_0xd2fa('0x62')](_[_0xd2fa('0x58')](_0x421a34['body'],{'read':![],'body':_0x421a34[_0xd2fa('0x63')][_0xd2fa('0x63')],'OpenchannelAccountId':_0x286fd7['id'],'OpenchannelInteractionId':_0x337e86['id'],'UserId':_0x421a34[_0xd2fa('0x65')]['id'],'ContactId':_0x5c491d['id']}))[_0xd2fa('0x3b')](function(_0x2f67f8){_0x337e86['dataValues'][_0xd2fa('0xbd')]=[];_0x337e86[_0xd2fa('0xbe')][_0xd2fa('0xbd')][_0xd2fa('0x9a')](_0x2f67f8[_0xd2fa('0xbe')]);return _0x337e86;});});}})[_0xd2fa('0x3b')](respondWithResult(_0x359310,null))['catch'](handleError(_0x359310,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaa88=['../../mysqldb','OpenchannelAccount','setMaxListeners','update','remove','hasOwnProperty','exports','events'];(function(_0x3c4a0f,_0x2821ae){var _0x3de6b3=function(_0x1bb317){while(--_0x1bb317){_0x3c4a0f['push'](_0x3c4a0f['shift']());}};_0x3de6b3(++_0x2821ae);}(_0xaa88,0x137));var _0x8aa8=function(_0x450bf9,_0x1895de){_0x450bf9=_0x450bf9-0x0;var _0x268350=_0xaa88[_0x450bf9];return _0x268350;};'use strict';var EventEmitter=require(_0x8aa8('0x0'));var OpenchannelAccount=require(_0x8aa8('0x1'))['db'][_0x8aa8('0x2')];var OpenchannelAccountEvents=new EventEmitter();OpenchannelAccountEvents[_0x8aa8('0x3')](0x0);var events={'afterCreate':'save','afterUpdate':_0x8aa8('0x4'),'afterDestroy':_0x8aa8('0x5')};function emitEvent(_0x43f7e4){return function(_0x3b2c88,_0x3e3b70,_0x350e8b){OpenchannelAccountEvents['emit'](_0x43f7e4+':'+_0x3b2c88['id'],_0x3b2c88);OpenchannelAccountEvents['emit'](_0x43f7e4,_0x3b2c88);_0x350e8b(null);};}for(var e in events){if(events[_0x8aa8('0x6')](e)){var event=events[e];OpenchannelAccount['hook'](e,emitEvent(event));}}module[_0x8aa8('0x7')]=OpenchannelAccountEvents;
\ No newline at end of file
+var _0x1be1=['OpenchannelAccount','setMaxListeners','update','remove','emit','hook'];(function(_0x257419,_0x30c6b9){var _0x457759=function(_0x56fbe0){while(--_0x56fbe0){_0x257419['push'](_0x257419['shift']());}};_0x457759(++_0x30c6b9);}(_0x1be1,0x192));var _0x11be=function(_0x5874c6,_0x595020){_0x5874c6=_0x5874c6-0x0;var _0xe24953=_0x1be1[_0x5874c6];return _0xe24953;};'use strict';var EventEmitter=require('events');var OpenchannelAccount=require('../../mysqldb')['db'][_0x11be('0x0')];var OpenchannelAccountEvents=new EventEmitter();OpenchannelAccountEvents[_0x11be('0x1')](0x0);var events={'afterCreate':'save','afterUpdate':_0x11be('0x2'),'afterDestroy':_0x11be('0x3')};function emitEvent(_0x200b2a){return function(_0x318d41,_0x504d3a,_0x3ce56d){OpenchannelAccountEvents[_0x11be('0x4')](_0x200b2a+':'+_0x318d41['id'],_0x318d41);OpenchannelAccountEvents[_0x11be('0x4')](_0x200b2a,_0x318d41);_0x3ce56d(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];OpenchannelAccount[_0x11be('0x5')](e,emitEvent(event));}}module['exports']=OpenchannelAccountEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['../../config/environment','./openchannelAccount.attributes','exports','define','OpenchannelAccount','lodash','util','../../config/logger','bluebird','path','rimraf'];(function(_0x454877,_0x419192){var _0x1d621d=function(_0x2b253f){while(--_0x2b253f){_0x454877['push'](_0x454877['shift']());}};_0x1d621d(++_0x419192);}(_0xa9e0,0x123));var _0x0a9e=function(_0xa1e3e3,_0x29fe0e){_0xa1e3e3=_0xa1e3e3-0x0;var _0xc980e9=_0xa9e0[_0xa1e3e3];return _0xc980e9;};'use strict';var _=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var logger=require(_0x0a9e('0x2'))('api');var moment=require('moment');var BPromise=require(_0x0a9e('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x0a9e('0x4'));var rimraf=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));var attributes=require(_0x0a9e('0x7'));module[_0x0a9e('0x8')]=function(_0x57b080,_0x219af0){return _0x57b080[_0x0a9e('0x9')](_0x0a9e('0xa'),attributes,{'tableName':'openchannel_accounts','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xa9e0=['../../config/environment','./openchannelAccount.attributes','exports','define','OpenchannelAccount','lodash','util','../../config/logger','bluebird','path','rimraf'];(function(_0x5eaa30,_0x59e6ec){var _0x23d952=function(_0x50c576){while(--_0x50c576){_0x5eaa30['push'](_0x5eaa30['shift']());}};_0x23d952(++_0x59e6ec);}(_0xa9e0,0x123));var _0x0a9e=function(_0x3b5250,_0x7a0b2c){_0x3b5250=_0x3b5250-0x0;var _0xc844a1=_0xa9e0[_0x3b5250];return _0xc844a1;};'use strict';var _=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var logger=require(_0x0a9e('0x2'))('api');var moment=require('moment');var BPromise=require(_0x0a9e('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x0a9e('0x4'));var rimraf=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));var attributes=require(_0x0a9e('0x7'));module[_0x0a9e('0x8')]=function(_0x57b080,_0x219af0){return _0x57b080[_0x0a9e('0x9')](_0x0a9e('0xa'),attributes,{'tableName':'openchannel_accounts','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9d9b=['./openchannelAccount.socket','register','request','then','info','OpenchannelAccount,\x20%s,\x20%s','debug','request\x20sent','stringify','error','code','message','result','util','moment','randomstring','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','client','http','defaults','redis','localhost','socket.io-emitter'];(function(_0x38ae00,_0x41c671){var _0x3515f9=function(_0x52683d){while(--_0x52683d){_0x38ae00['push'](_0x38ae00['shift']());}};_0x3515f9(++_0x41c671);}(_0x9d9b,0x1e1));var _0xb9d9=function(_0x4ac007,_0x3632ae){_0x4ac007=_0x4ac007-0x0;var _0x42e227=_0x9d9b[_0x4ac007];return _0x42e227;};'use strict';var _=require('lodash');var util=require(_0xb9d9('0x0'));var moment=require(_0xb9d9('0x1'));var BPromise=require('bluebird');var rs=require(_0xb9d9('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xb9d9('0x3'))['db'];var utils=require(_0xb9d9('0x4'));var logger=require(_0xb9d9('0x5'))('rpc');var config=require(_0xb9d9('0x6'));var jayson=require('jayson/promise');var client=jayson[_0xb9d9('0x7')][_0xb9d9('0x8')]({'port':0x232a});config['redis']=_[_0xb9d9('0x9')](config[_0xb9d9('0xa')],{'host':_0xb9d9('0xb'),'port':0x18eb});var socket=require(_0xb9d9('0xc'))(new Redis(config[_0xb9d9('0xa')]));require(_0xb9d9('0xd'))[_0xb9d9('0xe')](socket);function respondWithRpcPromise(_0x5a9c18,_0x5b591e,_0x5f14e7){return new BPromise(function(_0x4cde40,_0x45f507){return client[_0xb9d9('0xf')](_0x5a9c18,_0x5f14e7)[_0xb9d9('0x10')](function(_0x5e226e){logger[_0xb9d9('0x11')](_0xb9d9('0x12'),_0x5b591e,'request\x20sent');logger[_0xb9d9('0x13')]('OpenchannelAccount,\x20%s,\x20%s,\x20%s',_0x5b591e,_0xb9d9('0x14'),JSON[_0xb9d9('0x15')](_0x5e226e));if(_0x5e226e[_0xb9d9('0x16')]){if(_0x5e226e[_0xb9d9('0x16')][_0xb9d9('0x17')]===0x1f4){logger[_0xb9d9('0x16')](_0xb9d9('0x12'),_0x5b591e,_0x5e226e[_0xb9d9('0x16')]['message']);return _0x45f507(_0x5e226e['error'][_0xb9d9('0x18')]);}logger[_0xb9d9('0x16')](_0xb9d9('0x12'),_0x5b591e,_0x5e226e[_0xb9d9('0x16')]['message']);return _0x4cde40(_0x5e226e['error'][_0xb9d9('0x18')]);}else{logger['info']('OpenchannelAccount,\x20%s,\x20%s',_0x5b591e,_0xb9d9('0x14'));_0x4cde40(_0x5e226e[_0xb9d9('0x19')][_0xb9d9('0x18')]);}})['catch'](function(_0x473b89){logger[_0xb9d9('0x16')]('OpenchannelAccount,\x20%s,\x20%s',_0x5b591e,_0x473b89);_0x45f507(_0x473b89);});});}
\ No newline at end of file
+var _0x6e6c=['OpenchannelAccount,\x20%s,\x20%s','message','catch','lodash','util','bluebird','randomstring','../../config/utils','rpc','jayson/promise','client','redis','defaults','localhost','socket.io-emitter','./openchannelAccount.socket','request','then','info','request\x20sent','OpenchannelAccount,\x20%s,\x20%s,\x20%s','stringify','error','code'];(function(_0x17625d,_0xca1dd6){var _0x6b497a=function(_0x2c0be2){while(--_0x2c0be2){_0x17625d['push'](_0x17625d['shift']());}};_0x6b497a(++_0xca1dd6);}(_0x6e6c,0xc3));var _0xc6e6=function(_0x2dafbe,_0x5d04de){_0x2dafbe=_0x2dafbe-0x0;var _0x58a45a=_0x6e6c[_0x2dafbe];return _0x58a45a;};'use strict';var _=require(_0xc6e6('0x0'));var util=require(_0xc6e6('0x1'));var moment=require('moment');var BPromise=require(_0xc6e6('0x2'));var rs=require(_0xc6e6('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0xc6e6('0x4'));var logger=require('../../config/logger')(_0xc6e6('0x5'));var config=require('../../config/environment');var jayson=require(_0xc6e6('0x6'));var client=jayson[_0xc6e6('0x7')]['http']({'port':0x232a});config[_0xc6e6('0x8')]=_[_0xc6e6('0x9')](config['redis'],{'host':_0xc6e6('0xa'),'port':0x18eb});var socket=require(_0xc6e6('0xb'))(new Redis(config['redis']));require(_0xc6e6('0xc'))['register'](socket);function respondWithRpcPromise(_0x172aa9,_0x3b2f50,_0x29f78a){return new BPromise(function(_0x3ddf6f,_0x12596b){return client[_0xc6e6('0xd')](_0x172aa9,_0x29f78a)[_0xc6e6('0xe')](function(_0x10aae5){logger[_0xc6e6('0xf')]('OpenchannelAccount,\x20%s,\x20%s',_0x3b2f50,_0xc6e6('0x10'));logger['debug'](_0xc6e6('0x11'),_0x3b2f50,_0xc6e6('0x10'),JSON[_0xc6e6('0x12')](_0x10aae5));if(_0x10aae5[_0xc6e6('0x13')]){if(_0x10aae5['error'][_0xc6e6('0x14')]===0x1f4){logger[_0xc6e6('0x13')](_0xc6e6('0x15'),_0x3b2f50,_0x10aae5[_0xc6e6('0x13')][_0xc6e6('0x16')]);return _0x12596b(_0x10aae5['error'][_0xc6e6('0x16')]);}logger[_0xc6e6('0x13')]('OpenchannelAccount,\x20%s,\x20%s',_0x3b2f50,_0x10aae5[_0xc6e6('0x13')][_0xc6e6('0x16')]);return _0x3ddf6f(_0x10aae5[_0xc6e6('0x13')]['message']);}else{logger['info']('OpenchannelAccount,\x20%s,\x20%s',_0x3b2f50,_0xc6e6('0x10'));_0x3ddf6f(_0x10aae5['result'][_0xc6e6('0x16')]);}})[_0xc6e6('0x17')](function(_0x1ecc8f){logger[_0xc6e6('0x13')](_0xc6e6('0x15'),_0x3b2f50,_0x1ecc8f);_0x12596b(_0x1ecc8f);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x54ef=['remove','emit','removeListener','length','./openchannelAccount.events','save'];(function(_0x43a251,_0x2ca1b8){var _0x15f782=function(_0x8b1d41){while(--_0x8b1d41){_0x43a251['push'](_0x43a251['shift']());}};_0x15f782(++_0x2ca1b8);}(_0x54ef,0x112));var _0xf54e=function(_0x2d99b4,_0x317bf7){_0x2d99b4=_0x2d99b4-0x0;var _0x5d2904=_0x54ef[_0x2d99b4];return _0x5d2904;};'use strict';var OpenchannelAccountEvents=require(_0xf54e('0x0'));var events=[_0xf54e('0x1'),_0xf54e('0x2'),'update'];function createListener(_0xd936f7,_0x18b7d6){return function(_0x18b1cf){_0x18b7d6[_0xf54e('0x3')](_0xd936f7,_0x18b1cf);};}function removeListener(_0x8b6bb6,_0x431e36){return function(){OpenchannelAccountEvents[_0xf54e('0x4')](_0x8b6bb6,_0x431e36);};}exports['register']=function(_0x55e611){for(var _0x18e84e=0x0,_0x99cf9=events[_0xf54e('0x5')];_0x18e84e<_0x99cf9;_0x18e84e++){var _0x561870=events[_0x18e84e];var _0x27e69b=createListener('openchannelAccount:'+_0x561870,_0x55e611);OpenchannelAccountEvents['on'](_0x561870,_0x27e69b);}};
\ No newline at end of file
+var _0xd4bd=['length','./openchannelAccount.events','save','remove','update','emit','removeListener'];(function(_0x21ccce,_0x8cf90d){var _0x1d2351=function(_0x18be00){while(--_0x18be00){_0x21ccce['push'](_0x21ccce['shift']());}};_0x1d2351(++_0x8cf90d);}(_0xd4bd,0x15f));var _0xdd4b=function(_0x248952,_0x1c5a48){_0x248952=_0x248952-0x0;var _0x386a71=_0xd4bd[_0x248952];return _0x386a71;};'use strict';var OpenchannelAccountEvents=require(_0xdd4b('0x0'));var events=[_0xdd4b('0x1'),_0xdd4b('0x2'),_0xdd4b('0x3')];function createListener(_0x54b1db,_0x5f2139){return function(_0x37f821){_0x5f2139[_0xdd4b('0x4')](_0x54b1db,_0x37f821);};}function removeListener(_0x176535,_0x378465){return function(){OpenchannelAccountEvents[_0xdd4b('0x5')](_0x176535,_0x378465);};}exports['register']=function(_0x48eda4){for(var _0x1c72c7=0x0,_0x543281=events[_0xdd4b('0x6')];_0x1c72c7<_0x543281;_0x1c72c7++){var _0x173584=events[_0x1c72c7];var _0x4ac6a5=createListener('openchannelAccount:'+_0x173584,_0x48eda4);OpenchannelAccountEvents['on'](_0x173584,_0x4ac6a5);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x612e=['create','put','update','delete','destroy','multer','util','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','./openchannelApplication.controller','get','index','isAuthenticated','post'];(function(_0x37612b,_0x7338a8){var _0x1ee7e7=function(_0x2ff0b5){while(--_0x2ff0b5){_0x37612b['push'](_0x37612b['shift']());}};_0x1ee7e7(++_0x7338a8);}(_0x612e,0xef));var _0xe612=function(_0x5433d8,_0x210448){_0x5433d8=_0x5433d8-0x0;var _0x99ee3c=_0x612e[_0x5433d8];return _0x99ee3c;};'use strict';var multer=require(_0xe612('0x0'));var util=require(_0xe612('0x1'));var path=require('path');var timeout=require(_0xe612('0x2'));var express=require(_0xe612('0x3'));var router=express[_0xe612('0x4')]();var fs_extra=require(_0xe612('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0xe612('0x6'));var config=require(_0xe612('0x7'));var controller=require(_0xe612('0x8'));router[_0xe612('0x9')]('/',auth['isAuthenticated'](),controller[_0xe612('0xa')]);router[_0xe612('0x9')]('/:id',auth[_0xe612('0xb')](),controller['show']);router[_0xe612('0xc')]('/',auth[_0xe612('0xb')](),controller[_0xe612('0xd')]);router[_0xe612('0xe')]('/:id',auth[_0xe612('0xb')](),controller[_0xe612('0xf')]);router[_0xe612('0x10')]('/:id',auth[_0xe612('0xb')](),controller[_0xe612('0x11')]);module['exports']=router;
\ No newline at end of file
+var _0x7ebe=['create','put','update','delete','destroy','exports','multer','util','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','./openchannelApplication.controller','get','isAuthenticated','index','/:id','post'];(function(_0x2e2ff5,_0x515087){var _0x5191f9=function(_0xf58d4b){while(--_0xf58d4b){_0x2e2ff5['push'](_0x2e2ff5['shift']());}};_0x5191f9(++_0x515087);}(_0x7ebe,0xce));var _0xe7eb=function(_0x4c5a6b,_0x597b4d){_0x4c5a6b=_0x4c5a6b-0x0;var _0x220ff9=_0x7ebe[_0x4c5a6b];return _0x220ff9;};'use strict';var multer=require(_0xe7eb('0x0'));var util=require(_0xe7eb('0x1'));var path=require(_0xe7eb('0x2'));var timeout=require(_0xe7eb('0x3'));var express=require(_0xe7eb('0x4'));var router=express[_0xe7eb('0x5')]();var fs_extra=require('fs-extra');var auth=require(_0xe7eb('0x6'));var interaction=require(_0xe7eb('0x7'));var config=require('../../config/environment');var controller=require(_0xe7eb('0x8'));router[_0xe7eb('0x9')]('/',auth[_0xe7eb('0xa')](),controller[_0xe7eb('0xb')]);router[_0xe7eb('0x9')](_0xe7eb('0xc'),auth[_0xe7eb('0xa')](),controller['show']);router[_0xe7eb('0xd')]('/',auth[_0xe7eb('0xa')](),controller[_0xe7eb('0xe')]);router[_0xe7eb('0xf')]('/:id',auth['isAuthenticated'](),controller[_0xe7eb('0x10')]);router[_0xe7eb('0x11')]('/:id',auth[_0xe7eb('0xa')](),controller[_0xe7eb('0x12')]);module[_0xe7eb('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa8c0=['*,*,*,*','sequelize','exports','INTEGER','TEXT','STRING'];(function(_0x476dc4,_0x3817cd){var _0x121014=function(_0x3597a0){while(--_0x3597a0){_0x476dc4['push'](_0x476dc4['shift']());}};_0x121014(++_0x3817cd);}(_0xa8c0,0xc7));var _0x0a8c=function(_0x3f2d02,_0x2c7deb){_0x3f2d02=_0x3f2d02-0x0;var _0x54092b=_0xa8c0[_0x3f2d02];return _0x54092b;};'use strict';var Sequelize=require(_0x0a8c('0x0'));module[_0x0a8c('0x1')]={'priority':{'type':Sequelize[_0x0a8c('0x2')],'allowNull':![]},'app':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':'noop'},'appdata':{'type':Sequelize[_0x0a8c('0x3')]()},'description':{'type':Sequelize[_0x0a8c('0x4')]},'interval':{'type':Sequelize['STRING'],'defaultValue':_0x0a8c('0x5')}};
\ No newline at end of file
+var _0x98a2=['TEXT','STRING','*,*,*,*','exports','INTEGER','noop'];(function(_0x554323,_0x75cd89){var _0x38f84b=function(_0x129d7b){while(--_0x129d7b){_0x554323['push'](_0x554323['shift']());}};_0x38f84b(++_0x75cd89);}(_0x98a2,0x1a1));var _0x298a=function(_0x24db42,_0x482b9f){_0x24db42=_0x24db42-0x0;var _0x331b46=_0x98a2[_0x24db42];return _0x331b46;};'use strict';var Sequelize=require('sequelize');module[_0x298a('0x0')]={'priority':{'type':Sequelize[_0x298a('0x1')],'allowNull':![]},'app':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0x298a('0x2')},'appdata':{'type':Sequelize[_0x298a('0x3')]()},'description':{'type':Sequelize[_0x298a('0x4')]},'interval':{'type':Sequelize[_0x298a('0x4')],'defaultValue':_0x298a('0x5')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x27c4=['fields','hasOwnProperty','order','sort','where','pick','filters','filter','merge','map','VIRTUAL','options','includeAll','findAll','rows','catch','show','include','find','create','body','params','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','ejs','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','offset','undefined','limit','count','json','apply','reject','then','destroy','end','error','stack','name','send','OpenchannelApplication','rawAttributes','type','key','model','keys','query','intersection','attributes'];(function(_0x2c0434,_0x499c6a){var _0x1dbb93=function(_0x16f362){while(--_0x16f362){_0x2c0434['push'](_0x2c0434['shift']());}};_0x1dbb93(++_0x499c6a);}(_0x27c4,0x1d8));var _0x427c=function(_0x5c0bd4,_0x4874fe){_0x5c0bd4=_0x5c0bd4-0x0;var _0x57a10d=_0x27c4[_0x5c0bd4];return _0x57a10d;};'use strict';var emlformat=require(_0x427c('0x0'));var rimraf=require(_0x427c('0x1'));var zipdir=require(_0x427c('0x2'));var jsonpatch=require(_0x427c('0x3'));var rp=require(_0x427c('0x4'));var moment=require(_0x427c('0x5'));var BPromise=require(_0x427c('0x6'));var Mustache=require(_0x427c('0x7'));var util=require(_0x427c('0x8'));var path=require(_0x427c('0x9'));var sox=require(_0x427c('0xa'));var csv=require('to-csv');var ejs=require(_0x427c('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x427c('0xc'));var squel=require(_0x427c('0xd'));var crypto=require(_0x427c('0xe'));var jsforce=require(_0x427c('0xf'));var deskjs=require(_0x427c('0x10'));var toCsv=require(_0x427c('0x11'));var querystring=require(_0x427c('0x12'));var Papa=require('papaparse');var Redis=require(_0x427c('0x13'));var authService=require(_0x427c('0x14'));var qs=require(_0x427c('0x15'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x427c('0x16'));var logger=require(_0x427c('0x17'))(_0x427c('0x18'));var utils=require(_0x427c('0x19'));var config=require(_0x427c('0x1a'));var licenseUtil=require(_0x427c('0x1b'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x33b507,_0x34872d){_0x34872d=_0x34872d||0xcc;return function(_0x59f414){if(_0x59f414){return _0x33b507[_0x427c('0x1c')](_0x34872d);}return _0x33b507['status'](_0x34872d)['end']();};}function respondWithResult(_0x18930c,_0x367497){_0x367497=_0x367497||0xc8;return function(_0x4c9753){if(_0x4c9753){return _0x18930c[_0x427c('0x1d')](_0x367497)['json'](_0x4c9753);}};}function respondWithFilteredResult(_0x56e37f,_0x8846fe){return function(_0x3183cd){if(_0x3183cd){var _0x1c7e34=typeof _0x8846fe[_0x427c('0x1e')]===_0x427c('0x1f')&&typeof _0x8846fe[_0x427c('0x20')]===_0x427c('0x1f');var _0x5a6882=_0x3183cd[_0x427c('0x21')];var _0x43d13c=_0x1c7e34?0x0:_0x8846fe[_0x427c('0x1e')];var _0x1d2152=_0x1c7e34?_0x3183cd['count']:_0x8846fe[_0x427c('0x1e')]+_0x8846fe[_0x427c('0x20')];var _0x5f31bf;if(_0x1d2152>=_0x5a6882){_0x1d2152=_0x5a6882;_0x5f31bf=0xc8;}else{_0x5f31bf=0xce;}_0x56e37f['status'](_0x5f31bf);return _0x56e37f['set']('Content-Range',_0x43d13c+'-'+_0x1d2152+'/'+_0x5a6882)[_0x427c('0x22')](_0x3183cd);}return null;};}function patchUpdates(_0x618683){return function(_0xef0e4e){try{jsonpatch[_0x427c('0x23')](_0xef0e4e,_0x618683,!![]);}catch(_0x59d0b4){return BPromise[_0x427c('0x24')](_0x59d0b4);}return _0xef0e4e['save']();};}function saveUpdates(_0x29e255,_0x5ee15b){return function(_0x85cc5f){if(_0x85cc5f){return _0x85cc5f['update'](_0x29e255)[_0x427c('0x25')](function(_0x20ec89){return _0x20ec89;});}return null;};}function removeEntity(_0x5e9fdc,_0x5c5844){return function(_0x25c750){if(_0x25c750){return _0x25c750[_0x427c('0x26')]()[_0x427c('0x25')](function(){_0x5e9fdc[_0x427c('0x1d')](0xcc)[_0x427c('0x27')]();});}};}function handleEntityNotFound(_0x120434,_0x38c16e){return function(_0x774999){if(!_0x774999){_0x120434[_0x427c('0x1c')](0x194);}return _0x774999;};}function handleError(_0x1dfae6,_0x3c2c26){_0x3c2c26=_0x3c2c26||0x1f4;return function(_0x38755e){logger[_0x427c('0x28')](_0x38755e[_0x427c('0x29')]);if(_0x38755e[_0x427c('0x2a')]){delete _0x38755e[_0x427c('0x2a')];}_0x1dfae6[_0x427c('0x1d')](_0x3c2c26)[_0x427c('0x2b')](_0x38755e);};}exports['index']=function(_0x23bd13,_0x1eaaf5){var _0x583209={},_0x38fd89={},_0x31941b={'count':0x0,'rows':[]};var _0x21a747=_['map'](db[_0x427c('0x2c')][_0x427c('0x2d')],function(_0x33fe90){return{'name':_0x33fe90['fieldName'],'type':_0x33fe90[_0x427c('0x2e')][_0x427c('0x2f')]};});_0x38fd89[_0x427c('0x30')]=_['map'](_0x21a747,_0x427c('0x2a'));_0x38fd89['query']=_[_0x427c('0x31')](_0x23bd13[_0x427c('0x32')]);_0x38fd89['filters']=_[_0x427c('0x33')](_0x38fd89[_0x427c('0x30')],_0x38fd89[_0x427c('0x32')]);_0x583209[_0x427c('0x34')]=_['intersection'](_0x38fd89[_0x427c('0x30')],qs[_0x427c('0x35')](_0x23bd13[_0x427c('0x32')][_0x427c('0x35')]));_0x583209[_0x427c('0x34')]=_0x583209[_0x427c('0x34')]['length']?_0x583209[_0x427c('0x34')]:_0x38fd89[_0x427c('0x30')];if(!_0x23bd13[_0x427c('0x32')][_0x427c('0x36')]('nolimit')){_0x583209[_0x427c('0x20')]=qs[_0x427c('0x20')](_0x23bd13[_0x427c('0x32')][_0x427c('0x20')]);_0x583209[_0x427c('0x1e')]=qs[_0x427c('0x1e')](_0x23bd13[_0x427c('0x32')][_0x427c('0x1e')]);}_0x583209[_0x427c('0x37')]=qs[_0x427c('0x38')](_0x23bd13['query'][_0x427c('0x38')]);_0x583209[_0x427c('0x39')]=qs['filters'](_[_0x427c('0x3a')](_0x23bd13[_0x427c('0x32')],_0x38fd89[_0x427c('0x3b')]),_0x21a747);if(_0x23bd13[_0x427c('0x32')][_0x427c('0x3c')]){_0x583209[_0x427c('0x39')]=_[_0x427c('0x3d')](_0x583209['where'],{'$or':_[_0x427c('0x3e')](_0x21a747,function(_0x34376d){if(_0x34376d['type']!==_0x427c('0x3f')){var _0x219cb8={};_0x219cb8[_0x34376d[_0x427c('0x2a')]]={'$like':'%'+_0x23bd13[_0x427c('0x32')][_0x427c('0x3c')]+'%'};return _0x219cb8;}})});}_0x583209=_[_0x427c('0x3d')]({},_0x583209,_0x23bd13[_0x427c('0x40')]);var _0x4169c4={'where':_0x583209[_0x427c('0x39')]};return db[_0x427c('0x2c')][_0x427c('0x21')](_0x4169c4)[_0x427c('0x25')](function(_0x332e75){_0x31941b[_0x427c('0x21')]=_0x332e75;if(_0x23bd13['query'][_0x427c('0x41')]){_0x583209['include']=[{'all':!![]}];}return db[_0x427c('0x2c')][_0x427c('0x42')](_0x583209);})[_0x427c('0x25')](function(_0x4bc75e){_0x31941b[_0x427c('0x43')]=_0x4bc75e;return _0x31941b;})['then'](respondWithFilteredResult(_0x1eaaf5,_0x583209))[_0x427c('0x44')](handleError(_0x1eaaf5,null));};exports[_0x427c('0x45')]=function(_0x199f75,_0x45a75e){var _0x45e3b6={'raw':!![],'where':{'id':_0x199f75['params']['id']}},_0x55b88d={};_0x55b88d[_0x427c('0x30')]=_[_0x427c('0x31')](db[_0x427c('0x2c')]['rawAttributes']);_0x55b88d['query']=_[_0x427c('0x31')](_0x199f75['query']);_0x55b88d[_0x427c('0x3b')]=_[_0x427c('0x33')](_0x55b88d[_0x427c('0x30')],_0x55b88d[_0x427c('0x32')]);_0x45e3b6[_0x427c('0x34')]=_[_0x427c('0x33')](_0x55b88d[_0x427c('0x30')],qs[_0x427c('0x35')](_0x199f75['query'][_0x427c('0x35')]));_0x45e3b6['attributes']=_0x45e3b6['attributes']['length']?_0x45e3b6[_0x427c('0x34')]:_0x55b88d[_0x427c('0x30')];if(_0x199f75['query'][_0x427c('0x41')]){_0x45e3b6[_0x427c('0x46')]=[{'all':!![]}];}_0x45e3b6=_[_0x427c('0x3d')]({},_0x45e3b6,_0x199f75[_0x427c('0x40')]);return db[_0x427c('0x2c')][_0x427c('0x47')](_0x45e3b6)[_0x427c('0x25')](handleEntityNotFound(_0x45a75e,null))[_0x427c('0x25')](respondWithResult(_0x45a75e,null))[_0x427c('0x44')](handleError(_0x45a75e,null));};exports[_0x427c('0x48')]=function(_0x39168a,_0x2d297a){return db[_0x427c('0x2c')][_0x427c('0x48')](_0x39168a[_0x427c('0x49')],{})[_0x427c('0x25')](respondWithResult(_0x2d297a,0xc9))[_0x427c('0x44')](handleError(_0x2d297a,null));};exports['update']=function(_0xf34076,_0x2b0e6f){if(_0xf34076[_0x427c('0x49')]['id']){delete _0xf34076[_0x427c('0x49')]['id'];}return db[_0x427c('0x2c')][_0x427c('0x47')]({'where':{'id':_0xf34076[_0x427c('0x4a')]['id']}})[_0x427c('0x25')](handleEntityNotFound(_0x2b0e6f,null))[_0x427c('0x25')](saveUpdates(_0xf34076[_0x427c('0x49')],null))[_0x427c('0x25')](respondWithResult(_0x2b0e6f,null))[_0x427c('0x44')](handleError(_0x2b0e6f,null));};exports[_0x427c('0x26')]=function(_0x35c513,_0x10b4f1){return db['OpenchannelApplication'][_0x427c('0x47')]({'where':{'id':_0x35c513[_0x427c('0x4a')]['id']}})[_0x427c('0x25')](handleEntityNotFound(_0x10b4f1,null))[_0x427c('0x25')](removeEntity(_0x10b4f1,null))[_0x427c('0x44')](handleError(_0x10b4f1,null));};
\ No newline at end of file
+var _0xa75f=['send','map','rawAttributes','fieldName','key','model','keys','query','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','filters','pick','where','merge','type','VIRTUAL','options','OpenchannelApplication','includeAll','include','findAll','rows','catch','show','create','body','find','params','rimraf','fast-json-patch','moment','bluebird','mustache','util','path','to-csv','fs-extra','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','sendStatus','end','offset','undefined','limit','count','json','apply','reject','save','update','then','destroy','status','error','stack','name'];(function(_0xbf8ebe,_0x3b69a5){var _0x1e25e8=function(_0x40c390){while(--_0x40c390){_0xbf8ebe['push'](_0xbf8ebe['shift']());}};_0x1e25e8(++_0x3b69a5);}(_0xa75f,0x69));var _0xfa75=function(_0x37cfb9,_0x112ae7){_0x37cfb9=_0x37cfb9-0x0;var _0x12fbac=_0xa75f[_0x37cfb9];return _0x12fbac;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xfa75('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0xfa75('0x1'));var rp=require('request-promise');var moment=require(_0xfa75('0x2'));var BPromise=require(_0xfa75('0x3'));var Mustache=require(_0xfa75('0x4'));var util=require(_0xfa75('0x5'));var path=require(_0xfa75('0x6'));var sox=require('sox');var csv=require(_0xfa75('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xfa75('0x8'));var _=require('lodash');var squel=require(_0xfa75('0x9'));var crypto=require(_0xfa75('0xa'));var jsforce=require('jsforce');var deskjs=require(_0xfa75('0xb'));var toCsv=require('to-csv');var querystring=require(_0xfa75('0xc'));var Papa=require(_0xfa75('0xd'));var Redis=require(_0xfa75('0xe'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0xfa75('0xf'));var hardwareService=require(_0xfa75('0x10'));var logger=require(_0xfa75('0x11'))('api');var utils=require(_0xfa75('0x12'));var config=require('../../config/environment');var licenseUtil=require(_0xfa75('0x13'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x5cb521,_0x43b395){_0x43b395=_0x43b395||0xcc;return function(_0x16b5f7){if(_0x16b5f7){return _0x5cb521[_0xfa75('0x14')](_0x43b395);}return _0x5cb521['status'](_0x43b395)[_0xfa75('0x15')]();};}function respondWithResult(_0x261377,_0x3ab571){_0x3ab571=_0x3ab571||0xc8;return function(_0x24b176){if(_0x24b176){return _0x261377['status'](_0x3ab571)['json'](_0x24b176);}};}function respondWithFilteredResult(_0x5c16ff,_0x1fcf06){return function(_0x87c5a4){if(_0x87c5a4){var _0x46c1aa=typeof _0x1fcf06[_0xfa75('0x16')]===_0xfa75('0x17')&&typeof _0x1fcf06[_0xfa75('0x18')]===_0xfa75('0x17');var _0x2c9a26=_0x87c5a4[_0xfa75('0x19')];var _0x3d8dfd=_0x46c1aa?0x0:_0x1fcf06[_0xfa75('0x16')];var _0x237197=_0x46c1aa?_0x87c5a4[_0xfa75('0x19')]:_0x1fcf06[_0xfa75('0x16')]+_0x1fcf06[_0xfa75('0x18')];var _0x534b10;if(_0x237197>=_0x2c9a26){_0x237197=_0x2c9a26;_0x534b10=0xc8;}else{_0x534b10=0xce;}_0x5c16ff['status'](_0x534b10);return _0x5c16ff['set']('Content-Range',_0x3d8dfd+'-'+_0x237197+'/'+_0x2c9a26)[_0xfa75('0x1a')](_0x87c5a4);}return null;};}function patchUpdates(_0x2fd742){return function(_0x125089){try{jsonpatch[_0xfa75('0x1b')](_0x125089,_0x2fd742,!![]);}catch(_0x44d42a){return BPromise[_0xfa75('0x1c')](_0x44d42a);}return _0x125089[_0xfa75('0x1d')]();};}function saveUpdates(_0x3aaa3e,_0x1cffcc){return function(_0x3232f8){if(_0x3232f8){return _0x3232f8[_0xfa75('0x1e')](_0x3aaa3e)[_0xfa75('0x1f')](function(_0x8d7593){return _0x8d7593;});}return null;};}function removeEntity(_0x14eafa,_0xffa870){return function(_0x395b36){if(_0x395b36){return _0x395b36[_0xfa75('0x20')]()['then'](function(){_0x14eafa[_0xfa75('0x21')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5c3240,_0x57b773){return function(_0x4000cf){if(!_0x4000cf){_0x5c3240[_0xfa75('0x14')](0x194);}return _0x4000cf;};}function handleError(_0x1a6e48,_0x319e0b){_0x319e0b=_0x319e0b||0x1f4;return function(_0x3ff393){logger[_0xfa75('0x22')](_0x3ff393[_0xfa75('0x23')]);if(_0x3ff393[_0xfa75('0x24')]){delete _0x3ff393[_0xfa75('0x24')];}_0x1a6e48[_0xfa75('0x21')](_0x319e0b)[_0xfa75('0x25')](_0x3ff393);};}exports['index']=function(_0x5265f7,_0xa773fc){var _0x39b0b8={},_0x315090={},_0x1a2694={'count':0x0,'rows':[]};var _0x575336=_[_0xfa75('0x26')](db['OpenchannelApplication'][_0xfa75('0x27')],function(_0x321fd9){return{'name':_0x321fd9[_0xfa75('0x28')],'type':_0x321fd9['type'][_0xfa75('0x29')]};});_0x315090[_0xfa75('0x2a')]=_['map'](_0x575336,_0xfa75('0x24'));_0x315090['query']=_[_0xfa75('0x2b')](_0x5265f7[_0xfa75('0x2c')]);_0x315090['filters']=_[_0xfa75('0x2d')](_0x315090['model'],_0x315090[_0xfa75('0x2c')]);_0x39b0b8['attributes']=_[_0xfa75('0x2d')](_0x315090[_0xfa75('0x2a')],qs[_0xfa75('0x2e')](_0x5265f7[_0xfa75('0x2c')][_0xfa75('0x2e')]));_0x39b0b8[_0xfa75('0x2f')]=_0x39b0b8[_0xfa75('0x2f')][_0xfa75('0x30')]?_0x39b0b8[_0xfa75('0x2f')]:_0x315090['model'];if(!_0x5265f7[_0xfa75('0x2c')][_0xfa75('0x31')](_0xfa75('0x32'))){_0x39b0b8[_0xfa75('0x18')]=qs[_0xfa75('0x18')](_0x5265f7['query'][_0xfa75('0x18')]);_0x39b0b8['offset']=qs[_0xfa75('0x16')](_0x5265f7[_0xfa75('0x2c')]['offset']);}_0x39b0b8[_0xfa75('0x33')]=qs[_0xfa75('0x34')](_0x5265f7[_0xfa75('0x2c')][_0xfa75('0x34')]);_0x39b0b8['where']=qs[_0xfa75('0x35')](_[_0xfa75('0x36')](_0x5265f7[_0xfa75('0x2c')],_0x315090[_0xfa75('0x35')]),_0x575336);if(_0x5265f7[_0xfa75('0x2c')]['filter']){_0x39b0b8[_0xfa75('0x37')]=_[_0xfa75('0x38')](_0x39b0b8[_0xfa75('0x37')],{'$or':_[_0xfa75('0x26')](_0x575336,function(_0x4e8e47){if(_0x4e8e47[_0xfa75('0x39')]!==_0xfa75('0x3a')){var _0x24529c={};_0x24529c[_0x4e8e47[_0xfa75('0x24')]]={'$like':'%'+_0x5265f7[_0xfa75('0x2c')]['filter']+'%'};return _0x24529c;}})});}_0x39b0b8=_[_0xfa75('0x38')]({},_0x39b0b8,_0x5265f7[_0xfa75('0x3b')]);var _0xf91fc8={'where':_0x39b0b8['where']};return db[_0xfa75('0x3c')][_0xfa75('0x19')](_0xf91fc8)[_0xfa75('0x1f')](function(_0x7cbedc){_0x1a2694['count']=_0x7cbedc;if(_0x5265f7[_0xfa75('0x2c')][_0xfa75('0x3d')]){_0x39b0b8[_0xfa75('0x3e')]=[{'all':!![]}];}return db[_0xfa75('0x3c')][_0xfa75('0x3f')](_0x39b0b8);})['then'](function(_0x4fc544){_0x1a2694[_0xfa75('0x40')]=_0x4fc544;return _0x1a2694;})['then'](respondWithFilteredResult(_0xa773fc,_0x39b0b8))[_0xfa75('0x41')](handleError(_0xa773fc,null));};exports[_0xfa75('0x42')]=function(_0x2443a3,_0x4779a1){var _0x296ffc={'raw':!![],'where':{'id':_0x2443a3['params']['id']}},_0x36737d={};_0x36737d[_0xfa75('0x2a')]=_[_0xfa75('0x2b')](db[_0xfa75('0x3c')][_0xfa75('0x27')]);_0x36737d['query']=_[_0xfa75('0x2b')](_0x2443a3[_0xfa75('0x2c')]);_0x36737d[_0xfa75('0x35')]=_[_0xfa75('0x2d')](_0x36737d['model'],_0x36737d[_0xfa75('0x2c')]);_0x296ffc[_0xfa75('0x2f')]=_[_0xfa75('0x2d')](_0x36737d[_0xfa75('0x2a')],qs['fields'](_0x2443a3[_0xfa75('0x2c')][_0xfa75('0x2e')]));_0x296ffc[_0xfa75('0x2f')]=_0x296ffc[_0xfa75('0x2f')][_0xfa75('0x30')]?_0x296ffc[_0xfa75('0x2f')]:_0x36737d['model'];if(_0x2443a3[_0xfa75('0x2c')][_0xfa75('0x3d')]){_0x296ffc[_0xfa75('0x3e')]=[{'all':!![]}];}_0x296ffc=_[_0xfa75('0x38')]({},_0x296ffc,_0x2443a3[_0xfa75('0x3b')]);return db[_0xfa75('0x3c')]['find'](_0x296ffc)[_0xfa75('0x1f')](handleEntityNotFound(_0x4779a1,null))[_0xfa75('0x1f')](respondWithResult(_0x4779a1,null))[_0xfa75('0x41')](handleError(_0x4779a1,null));};exports[_0xfa75('0x43')]=function(_0x39f41e,_0x53529e){return db['OpenchannelApplication'][_0xfa75('0x43')](_0x39f41e[_0xfa75('0x44')],{})[_0xfa75('0x1f')](respondWithResult(_0x53529e,0xc9))[_0xfa75('0x41')](handleError(_0x53529e,null));};exports[_0xfa75('0x1e')]=function(_0x21e8b9,_0xf5d89c){if(_0x21e8b9[_0xfa75('0x44')]['id']){delete _0x21e8b9[_0xfa75('0x44')]['id'];}return db[_0xfa75('0x3c')][_0xfa75('0x45')]({'where':{'id':_0x21e8b9['params']['id']}})[_0xfa75('0x1f')](handleEntityNotFound(_0xf5d89c,null))['then'](saveUpdates(_0x21e8b9[_0xfa75('0x44')],null))[_0xfa75('0x1f')](respondWithResult(_0xf5d89c,null))['catch'](handleError(_0xf5d89c,null));};exports[_0xfa75('0x20')]=function(_0x9552bb,_0x1157fb){return db[_0xfa75('0x3c')]['find']({'where':{'id':_0x9552bb[_0xfa75('0x46')]['id']}})[_0xfa75('0x1f')](handleEntityNotFound(_0x1157fb,null))['then'](removeEntity(_0x1157fb,null))['catch'](handleError(_0x1157fb,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbcdb=['utf8mb4_unicode_ci','lodash','util','../../config/logger','moment','request-promise','path','rimraf','../../config/environment','./openchannelApplication.attributes','define','OpenchannelApplication','openchannel_applications','utf8mb4'];(function(_0x411900,_0x113b42){var _0x373570=function(_0x279da9){while(--_0x279da9){_0x411900['push'](_0x411900['shift']());}};_0x373570(++_0x113b42);}(_0xbcdb,0xfd));var _0xbbcd=function(_0x1ffaa9,_0x240f2a){_0x1ffaa9=_0x1ffaa9-0x0;var _0xad69e9=_0xbcdb[_0x1ffaa9];return _0xad69e9;};'use strict';var _=require(_0xbbcd('0x0'));var util=require(_0xbbcd('0x1'));var logger=require(_0xbbcd('0x2'))('api');var moment=require(_0xbbcd('0x3'));var BPromise=require('bluebird');var rp=require(_0xbbcd('0x4'));var fs=require('fs');var path=require(_0xbbcd('0x5'));var rimraf=require(_0xbbcd('0x6'));var config=require(_0xbbcd('0x7'));var attributes=require(_0xbbcd('0x8'));module['exports']=function(_0x149590,_0xae4950){return _0x149590[_0xbbcd('0x9')](_0xbbcd('0xa'),attributes,{'tableName':_0xbbcd('0xb'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0xbbcd('0xc'),'collate':_0xbbcd('0xd')});};
\ No newline at end of file
+var _0x848d=['api','moment','bluebird','path','../../config/environment','./openchannelApplication.attributes','exports','define','OpenchannelApplication','openchannel_applications','utf8mb4','utf8mb4_unicode_ci','lodash','util'];(function(_0x14d042,_0x19eaea){var _0x28f422=function(_0x351c7c){while(--_0x351c7c){_0x14d042['push'](_0x14d042['shift']());}};_0x28f422(++_0x19eaea);}(_0x848d,0x1cc));var _0xd848=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x848d[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0xd848('0x0'));var util=require(_0xd848('0x1'));var logger=require('../../config/logger')(_0xd848('0x2'));var moment=require(_0xd848('0x3'));var BPromise=require(_0xd848('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xd848('0x5'));var rimraf=require('rimraf');var config=require(_0xd848('0x6'));var attributes=require(_0xd848('0x7'));module[_0xd848('0x8')]=function(_0x3cd584,_0x58fc60){return _0x3cd584[_0xd848('0x9')](_0xd848('0xa'),attributes,{'tableName':_0xd848('0xb'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0xd848('0xc'),'collate':_0xd848('0xd')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x395e=['ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','request','OpenchannelApplication,\x20%s,\x20%s','OpenchannelApplication,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','message','info','result','catch','UpdateOpenchannelApplication','OpenchannelApplication','update','body','options','attributes','then','debug','util','moment','randomstring'];(function(_0x1aa6cc,_0x3f85cc){var _0x3c700c=function(_0x9baa6){while(--_0x9baa6){_0x1aa6cc['push'](_0x1aa6cc['shift']());}};_0x3c700c(++_0x3f85cc);}(_0x395e,0x169));var _0xe395=function(_0x3947c9,_0x4d6c97){_0x3947c9=_0x3947c9-0x0;var _0x2e7871=_0x395e[_0x3947c9];return _0x2e7871;};'use strict';var _=require('lodash');var util=require(_0xe395('0x0'));var moment=require(_0xe395('0x1'));var BPromise=require('bluebird');var rs=require(_0xe395('0x2'));var fs=require('fs');var Redis=require(_0xe395('0x3'));var db=require(_0xe395('0x4'))['db'];var utils=require(_0xe395('0x5'));var logger=require(_0xe395('0x6'))('rpc');var config=require(_0xe395('0x7'));var jayson=require(_0xe395('0x8'));var client=jayson[_0xe395('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x126304,_0x3ff7b6,_0x280b0d){return new BPromise(function(_0x592ca9,_0x3bc9bb){return client[_0xe395('0xa')](_0x126304,_0x280b0d)['then'](function(_0x5d86f5){logger['info'](_0xe395('0xb'),_0x3ff7b6,'request\x20sent');logger['debug'](_0xe395('0xc'),_0x3ff7b6,_0xe395('0xd'),JSON['stringify'](_0x5d86f5));if(_0x5d86f5[_0xe395('0xe')]){if(_0x5d86f5[_0xe395('0xe')][_0xe395('0xf')]===0x1f4){logger[_0xe395('0xe')](_0xe395('0xb'),_0x3ff7b6,_0x5d86f5[_0xe395('0xe')][_0xe395('0x10')]);return _0x3bc9bb(_0x5d86f5[_0xe395('0xe')][_0xe395('0x10')]);}logger[_0xe395('0xe')]('OpenchannelApplication,\x20%s,\x20%s',_0x3ff7b6,_0x5d86f5[_0xe395('0xe')]['message']);return _0x592ca9(_0x5d86f5[_0xe395('0xe')][_0xe395('0x10')]);}else{logger[_0xe395('0x11')](_0xe395('0xb'),_0x3ff7b6,'request\x20sent');_0x592ca9(_0x5d86f5[_0xe395('0x12')][_0xe395('0x10')]);}})[_0xe395('0x13')](function(_0x5ae26a){logger[_0xe395('0xe')](_0xe395('0xb'),_0x3ff7b6,_0x5ae26a);_0x3bc9bb(_0x5ae26a);});});}exports[_0xe395('0x14')]=function(_0x2b0361){var _0x5e4946=this;return new Promise(function(_0x500bb3,_0x5b4094){return db[_0xe395('0x15')][_0xe395('0x16')](_0x2b0361[_0xe395('0x17')],{'raw':_0x2b0361[_0xe395('0x18')]?_0x2b0361['options']['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x2b0361[_0xe395('0x18')]?_0x2b0361[_0xe395('0x18')]['where']||null:null,'attributes':_0x2b0361[_0xe395('0x18')]?_0x2b0361['options'][_0xe395('0x19')]||null:null,'limit':_0x2b0361[_0xe395('0x18')]?_0x2b0361[_0xe395('0x18')]['limit']||null:null})[_0xe395('0x1a')](function(_0x35292e){logger['info'](_0xe395('0x14'),_0x2b0361);logger[_0xe395('0x1b')]('UpdateOpenchannelApplication',_0x2b0361,JSON['stringify'](_0x35292e));_0x500bb3(_0x35292e);})['catch'](function(_0x82f8c4){logger[_0xe395('0xe')](_0xe395('0x14'),_0x82f8c4['message'],_0x2b0361);_0x5b4094(_0x5e4946[_0xe395('0xe')](0x1f4,_0x82f8c4['message']));});});};
\ No newline at end of file
+var _0x2bee=['raw','where','attributes','info','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','then','request\x20sent','debug','OpenchannelApplication,\x20%s,\x20%s,\x20%s','stringify','code','error','message','OpenchannelApplication,\x20%s,\x20%s','result','catch','UpdateOpenchannelApplication','OpenchannelApplication','update','body','options'];(function(_0x13ea00,_0x12f610){var _0x1f7347=function(_0x34ae63){while(--_0x34ae63){_0x13ea00['push'](_0x13ea00['shift']());}};_0x1f7347(++_0x12f610);}(_0x2bee,0x1e4));var _0xe2be=function(_0x5c4e16,_0x113035){_0x5c4e16=_0x5c4e16-0x0;var _0x36044a=_0x2bee[_0x5c4e16];return _0x36044a;};'use strict';var _=require(_0xe2be('0x0'));var util=require(_0xe2be('0x1'));var moment=require(_0xe2be('0x2'));var BPromise=require(_0xe2be('0x3'));var rs=require(_0xe2be('0x4'));var fs=require('fs');var Redis=require(_0xe2be('0x5'));var db=require(_0xe2be('0x6'))['db'];var utils=require(_0xe2be('0x7'));var logger=require(_0xe2be('0x8'))(_0xe2be('0x9'));var config=require(_0xe2be('0xa'));var jayson=require(_0xe2be('0xb'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x3c8b59,_0x59d989,_0x1265db){return new BPromise(function(_0x2a3b98,_0x7f8a9b){return client['request'](_0x3c8b59,_0x1265db)[_0xe2be('0xc')](function(_0x4511b6){logger['info']('OpenchannelApplication,\x20%s,\x20%s',_0x59d989,_0xe2be('0xd'));logger[_0xe2be('0xe')](_0xe2be('0xf'),_0x59d989,_0xe2be('0xd'),JSON[_0xe2be('0x10')](_0x4511b6));if(_0x4511b6['error']){if(_0x4511b6['error'][_0xe2be('0x11')]===0x1f4){logger[_0xe2be('0x12')]('OpenchannelApplication,\x20%s,\x20%s',_0x59d989,_0x4511b6['error'][_0xe2be('0x13')]);return _0x7f8a9b(_0x4511b6[_0xe2be('0x12')][_0xe2be('0x13')]);}logger[_0xe2be('0x12')](_0xe2be('0x14'),_0x59d989,_0x4511b6[_0xe2be('0x12')][_0xe2be('0x13')]);return _0x2a3b98(_0x4511b6[_0xe2be('0x12')][_0xe2be('0x13')]);}else{logger['info'](_0xe2be('0x14'),_0x59d989,'request\x20sent');_0x2a3b98(_0x4511b6[_0xe2be('0x15')][_0xe2be('0x13')]);}})[_0xe2be('0x16')](function(_0x11dd34){logger[_0xe2be('0x12')](_0xe2be('0x14'),_0x59d989,_0x11dd34);_0x7f8a9b(_0x11dd34);});});}exports[_0xe2be('0x17')]=function(_0x1776a5){var _0x3e35ce=this;return new Promise(function(_0x20a126,_0xdc3334){return db[_0xe2be('0x18')][_0xe2be('0x19')](_0x1776a5[_0xe2be('0x1a')],{'raw':_0x1776a5[_0xe2be('0x1b')]?_0x1776a5[_0xe2be('0x1b')][_0xe2be('0x1c')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x1776a5['options']?_0x1776a5['options'][_0xe2be('0x1d')]||null:null,'attributes':_0x1776a5[_0xe2be('0x1b')]?_0x1776a5[_0xe2be('0x1b')][_0xe2be('0x1e')]||null:null,'limit':_0x1776a5['options']?_0x1776a5[_0xe2be('0x1b')]['limit']||null:null})[_0xe2be('0xc')](function(_0x434e1a){logger[_0xe2be('0x1f')]('UpdateOpenchannelApplication',_0x1776a5);logger[_0xe2be('0xe')](_0xe2be('0x17'),_0x1776a5,JSON[_0xe2be('0x10')](_0x434e1a));_0x20a126(_0x434e1a);})['catch'](function(_0x3cf3f3){logger['error'](_0xe2be('0x17'),_0x3cf3f3[_0xe2be('0x13')],_0x1776a5);_0xdc3334(_0x3e35ce[_0xe2be('0x12')](0x1f4,_0x3cf3f3[_0xe2be('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x90b6=['post','create','addMessage','/:id/tags','openchannelinteraction:addtags','addTags','tracked','openchannel','openchannelinteraction:update','delete','openchannelinteraction:destroy','destroy','multer','util','path','connect-timeout','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./openchannelInteraction.controller','get','isAuthenticated','index','/describe','describe','/:id','/:id/messages','/:id/download'];(function(_0x2215c8,_0x32ea49){var _0x2d8d10=function(_0x43629a){while(--_0x43629a){_0x2215c8['push'](_0x2215c8['shift']());}};_0x2d8d10(++_0x32ea49);}(_0x90b6,0x1a2));var _0x690b=function(_0xace742,_0x109afb){_0xace742=_0xace742-0x0;var _0x50aa30=_0x90b6[_0xace742];return _0x50aa30;};'use strict';var multer=require(_0x690b('0x0'));var util=require(_0x690b('0x1'));var path=require(_0x690b('0x2'));var timeout=require(_0x690b('0x3'));var express=require('express');var router=express['Router']();var fs_extra=require(_0x690b('0x4'));var auth=require(_0x690b('0x5'));var interaction=require(_0x690b('0x6'));var config=require(_0x690b('0x7'));var controller=require(_0x690b('0x8'));router[_0x690b('0x9')]('/',auth[_0x690b('0xa')](),controller[_0x690b('0xb')]);router[_0x690b('0x9')](_0x690b('0xc'),auth['isAuthenticated'](),controller[_0x690b('0xd')]);router[_0x690b('0x9')](_0x690b('0xe'),auth[_0x690b('0xa')](),controller['show']);router[_0x690b('0x9')](_0x690b('0xf'),auth[_0x690b('0xa')](),controller['getMessages']);router[_0x690b('0x9')](_0x690b('0x10'),auth['isAuthenticated'](),controller['download']);router[_0x690b('0x11')]('/',auth['isAuthenticated'](),controller[_0x690b('0x12')]);router['post']('/:id/messages',auth['isAuthenticated'](),controller[_0x690b('0x13')]);router[_0x690b('0x11')](_0x690b('0x14'),auth[_0x690b('0xa')](),interaction['tracked']('openchannel',_0x690b('0x15')),controller[_0x690b('0x16')]);router['put'](_0x690b('0xe'),auth[_0x690b('0xa')](),interaction[_0x690b('0x17')](_0x690b('0x18'),_0x690b('0x19')),controller['update']);router[_0x690b('0x1a')](_0x690b('0xe'),auth['isAuthenticated'](),interaction[_0x690b('0x17')](_0x690b('0x18'),_0x690b('0x1b')),controller[_0x690b('0x1c')]);router['delete'](_0x690b('0x14'),auth['isAuthenticated'](),controller['removeTags']);module['exports']=router;
\ No newline at end of file
+var _0x9543=['../../components/auth/service','../../components/interaction/service','../../config/environment','./openchannelInteraction.controller','get','/describe','isAuthenticated','/:id','show','/:id/messages','/:id/download','download','post','create','addMessage','/:id/tags','tracked','openchannelinteraction:addtags','put','openchannel','openchannelinteraction:update','update','delete','openchannelinteraction:destroy','destroy','removeTags','exports','util','path','connect-timeout','express','fs-extra'];(function(_0x5c6299,_0x11bd28){var _0x23b564=function(_0x329ed6){while(--_0x329ed6){_0x5c6299['push'](_0x5c6299['shift']());}};_0x23b564(++_0x11bd28);}(_0x9543,0xfb));var _0x3954=function(_0x24480b,_0x57071d){_0x24480b=_0x24480b-0x0;var _0x2e30ea=_0x9543[_0x24480b];return _0x2e30ea;};'use strict';var multer=require('multer');var util=require(_0x3954('0x0'));var path=require(_0x3954('0x1'));var timeout=require(_0x3954('0x2'));var express=require(_0x3954('0x3'));var router=express['Router']();var fs_extra=require(_0x3954('0x4'));var auth=require(_0x3954('0x5'));var interaction=require(_0x3954('0x6'));var config=require(_0x3954('0x7'));var controller=require(_0x3954('0x8'));router[_0x3954('0x9')]('/',auth['isAuthenticated'](),controller['index']);router[_0x3954('0x9')](_0x3954('0xa'),auth[_0x3954('0xb')](),controller['describe']);router[_0x3954('0x9')](_0x3954('0xc'),auth[_0x3954('0xb')](),controller[_0x3954('0xd')]);router['get'](_0x3954('0xe'),auth[_0x3954('0xb')](),controller['getMessages']);router[_0x3954('0x9')](_0x3954('0xf'),auth[_0x3954('0xb')](),controller[_0x3954('0x10')]);router[_0x3954('0x11')]('/',auth[_0x3954('0xb')](),controller[_0x3954('0x12')]);router[_0x3954('0x11')]('/:id/messages',auth['isAuthenticated'](),controller[_0x3954('0x13')]);router['post'](_0x3954('0x14'),auth[_0x3954('0xb')](),interaction[_0x3954('0x15')]('openchannel',_0x3954('0x16')),controller['addTags']);router[_0x3954('0x17')](_0x3954('0xc'),auth[_0x3954('0xb')](),interaction[_0x3954('0x15')](_0x3954('0x18'),_0x3954('0x19')),controller[_0x3954('0x1a')]);router[_0x3954('0x1b')](_0x3954('0xc'),auth[_0x3954('0xb')](),interaction['tracked']('openchannel',_0x3954('0x1c')),controller[_0x3954('0x1d')]);router[_0x3954('0x1b')](_0x3954('0x14'),auth[_0x3954('0xb')](),controller[_0x3954('0x1e')]);module[_0x3954('0x1f')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x20d7=['STRING','out','BOOLEAN','DATE'];(function(_0x319bed,_0x14a43a){var _0x2dec8f=function(_0xd3d30){while(--_0xd3d30){_0x319bed['push'](_0x319bed['shift']());}};_0x2dec8f(++_0x14a43a);}(_0x20d7,0x146));var _0x720d=function(_0x5630ad,_0x5c0d6b){_0x5630ad=_0x5630ad-0x0;var _0x1176f4=_0x20d7[_0x5630ad];return _0x1176f4;};'use strict';var Sequelize=require('sequelize');module['exports']={'closed':{'type':Sequelize[_0x720d('0x0')],'defaultValue':![]},'closedAt':{'type':Sequelize[_0x720d('0x1')]},'disposition':{'type':Sequelize[_0x720d('0x2')]},'secondDisposition':{'type':Sequelize['STRING']},'thirdDisposition':{'type':Sequelize['STRING']},'note':{'type':Sequelize['STRING']},'read1stAt':{'type':Sequelize[_0x720d('0x1')]},'threadId':{'type':Sequelize[_0x720d('0x2')]},'externalUrl':{'type':Sequelize['STRING']},'lastMsgAt':{'type':Sequelize['DATE']},'lastMsgDirection':{'type':Sequelize['ENUM']('in',_0x720d('0x3')),'defaultValue':'in','allowNull':![]},'from':{'type':Sequelize['STRING']},'autoreplyExecuted':{'type':Sequelize[_0x720d('0x0')],'defaultValue':![]}};
\ No newline at end of file
+var _0x1353=['exports','BOOLEAN','DATE','STRING','out','sequelize'];(function(_0x80f8fa,_0x19f911){var _0x572624=function(_0x19c6d1){while(--_0x19c6d1){_0x80f8fa['push'](_0x80f8fa['shift']());}};_0x572624(++_0x19f911);}(_0x1353,0xb3));var _0x3135=function(_0x21a9d9,_0x4d5ac8){_0x21a9d9=_0x21a9d9-0x0;var _0x46adce=_0x1353[_0x21a9d9];return _0x46adce;};'use strict';var Sequelize=require(_0x3135('0x0'));module[_0x3135('0x1')]={'closed':{'type':Sequelize[_0x3135('0x2')],'defaultValue':![]},'closedAt':{'type':Sequelize[_0x3135('0x3')]},'disposition':{'type':Sequelize[_0x3135('0x4')]},'secondDisposition':{'type':Sequelize[_0x3135('0x4')]},'thirdDisposition':{'type':Sequelize['STRING']},'note':{'type':Sequelize[_0x3135('0x4')]},'read1stAt':{'type':Sequelize[_0x3135('0x3')]},'threadId':{'type':Sequelize[_0x3135('0x4')]},'externalUrl':{'type':Sequelize[_0x3135('0x4')]},'lastMsgAt':{'type':Sequelize[_0x3135('0x3')]},'lastMsgDirection':{'type':Sequelize['ENUM']('in',_0x3135('0x5')),'defaultValue':'in','allowNull':![]},'from':{'type':Sequelize[_0x3135('0x4')]},'autoreplyExecuted':{'type':Sequelize['BOOLEAN'],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x12ab=['forEach','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','body','keys','compact','isEmpty','OpenchannelAccountId','where','i.OpenchannelAccountId\x20IN\x20?','parse','$gte','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20IS\x20NULL','\x20=\x20?','read','`unreadMessages`\x20>\x200','tag','isArray','filter','replace','isNumeric','MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?','group','i.id','Sequelize','SELECT','clone','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','unreadMessages','contactName','DESC','resolve','i.OpenchannelAccountId\x20IS\x20NOT\x20NULL','user','role','agent','i.OpenchannelAccountId\x20IS\x20NULL','toString','sequelize','keyBy','a.key','Account.key','a.mandatoryDisposition','Account.mandatoryDisposition','i.*','c.firstName','Contact.firstName','c.lastName','Contact.lastName','c.email','c.phone','Contact.phone','c.mobile','Contact.mobile','o.fullname','o.internal','Owner.internal','ui.OpenchannelInteractionId\x20IN\x20?','groupBy','OpenchannelInteractionId','all','rows','params','OpenchannelInteraction','includeAll','merge','options','create','describe','addMessage','OpenchannelMessage','ids','omit','getMessages','findOne','rawAttributes','nolimit','format','YYYY-MM-DD\x20HH:mm:ss','findAll','addTags','spread','removeTags','download','unix','join','root','server','tmp','attachments','User','CmContact','firstName','lastName','Attachment','Messages','direction','secret','OpenchannelAccount','Account','Owner','get','mkdirSync','Openchannel','createdAt','closedAt','disposition','threadId','Public','Private','basename','pipe','createWriteStream','out','System','downloadInteraction.ejs','transcript-','.pdf','log','err','unlinkSync','eml-format','rimraf','zip-dir','fast-json-patch','moment','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/export/pdf','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','./openchannelInteraction.socket','register','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','reject','save','update','then','destroy','error','name','send','Users','map','fullname','TagIds','Tags','split','push','catch','index','fieldName','type','key','model','query','filters','intersection','fields','length','attributes','order','sort','pick','field','color','from','tools_tags','select','u.fullname','ui.OpenchannelInteractionId','user_has_openchannel_interactions','left_join','users','u.id\x20=\x20ui.UserId','cm_contacts','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','o.id\x20=\x20i.UserId','openchannel_accounts','a.id\x20=\x20i.OpenchannelAccountId','openchannel_messages','me.OpenchannelInteractionId\x20=\x20i.id','openchannel_interaction_has_tags','it.OpenchannelInteractionId\x20=\x20i.id','expr','search','parseSearch','conditions','find','value','having','`\x20=\x200','`\x20>\x200','Contact','operator','$substring','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?','ContactId','buildExpression','text','start','Tag'];(function(_0x2791a7,_0x169558){var _0x4bef2c=function(_0x48e86d){while(--_0x48e86d){_0x2791a7['push'](_0x2791a7['shift']());}};_0x4bef2c(++_0x169558);}(_0x12ab,0x80));var _0xb12a=function(_0x4215d7,_0x172117){_0x4215d7=_0x4215d7-0x0;var _0x4a05d4=_0x12ab[_0x4215d7];return _0x4a05d4;};'use strict';var emlformat=require(_0xb12a('0x0'));var rimraf=require(_0xb12a('0x1'));var zipdir=require(_0xb12a('0x2'));var jsonpatch=require(_0xb12a('0x3'));var rp=require('request-promise');var moment=require(_0xb12a('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xb12a('0x5'));var util=require(_0xb12a('0x6'));var path=require(_0xb12a('0x7'));var sox=require(_0xb12a('0x8'));var csv=require(_0xb12a('0x9'));var ejs=require(_0xb12a('0xa'));var fs=require('fs');var fs_extra=require(_0xb12a('0xb'));var _=require(_0xb12a('0xc'));var squel=require(_0xb12a('0xd'));var crypto=require(_0xb12a('0xe'));var jsforce=require(_0xb12a('0xf'));var deskjs=require(_0xb12a('0x10'));var toCsv=require(_0xb12a('0x9'));var querystring=require(_0xb12a('0x11'));var Papa=require(_0xb12a('0x12'));var Redis=require('ioredis');var authService=require(_0xb12a('0x13'));var qs=require(_0xb12a('0x14'));var as=require('../../components/parsers/advancedSearch');var pdf=require(_0xb12a('0x15'));var hardwareService=require(_0xb12a('0x16'));var logger=require(_0xb12a('0x17'))(_0xb12a('0x18'));var utils=require(_0xb12a('0x19'));var config=require(_0xb12a('0x1a'));var licenseUtil=require(_0xb12a('0x1b'));var db=require(_0xb12a('0x1c'))['db'];config[_0xb12a('0x1d')]=_['defaults'](config[_0xb12a('0x1d')],{'host':_0xb12a('0x1e'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0xb12a('0x1f'))[_0xb12a('0x20')](socket);function respondWithStatusCode(_0x23222b,_0x41174f){_0x41174f=_0x41174f||0xcc;return function(_0x40d7b3){if(_0x40d7b3){return _0x23222b[_0xb12a('0x21')](_0x41174f);}return _0x23222b[_0xb12a('0x22')](_0x41174f)[_0xb12a('0x23')]();};}function respondWithResult(_0x557b46,_0x29a3be){_0x29a3be=_0x29a3be||0xc8;return function(_0x432b1c){if(_0x432b1c){return _0x557b46[_0xb12a('0x22')](_0x29a3be)[_0xb12a('0x24')](_0x432b1c);}};}function respondWithFilteredResult(_0x2805e4,_0x5dc73b){return function(_0x150517){if(_0x150517){var _0x3d77fe=typeof _0x5dc73b[_0xb12a('0x25')]===_0xb12a('0x26')&&typeof _0x5dc73b[_0xb12a('0x27')]===_0xb12a('0x26');var _0x4e45e6=_0x150517['count'];var _0x2dc6bf=_0x3d77fe?0x0:_0x5dc73b[_0xb12a('0x25')];var _0x25f91f=_0x3d77fe?_0x150517[_0xb12a('0x28')]:_0x5dc73b['offset']+_0x5dc73b[_0xb12a('0x27')];var _0x2a6d5c;if(_0x25f91f>=_0x4e45e6){_0x25f91f=_0x4e45e6;_0x2a6d5c=0xc8;}else{_0x2a6d5c=0xce;}_0x2805e4[_0xb12a('0x22')](_0x2a6d5c);return _0x2805e4[_0xb12a('0x29')](_0xb12a('0x2a'),_0x2dc6bf+'-'+_0x25f91f+'/'+_0x4e45e6)[_0xb12a('0x24')](_0x150517);}return null;};}function patchUpdates(_0x5cfd2e){return function(_0x589902){try{jsonpatch['apply'](_0x589902,_0x5cfd2e,!![]);}catch(_0x5a4d0c){return BPromise[_0xb12a('0x2b')](_0x5a4d0c);}return _0x589902[_0xb12a('0x2c')]();};}function saveUpdates(_0x93d98,_0x353d3b){return function(_0x415095){if(_0x415095){return _0x415095[_0xb12a('0x2d')](_0x93d98)[_0xb12a('0x2e')](function(_0x521ced){return _0x521ced;});}return null;};}function removeEntity(_0x24d6bd,_0x449dc8){return function(_0xe7e009){if(_0xe7e009){return _0xe7e009[_0xb12a('0x2f')]()[_0xb12a('0x2e')](function(){_0x24d6bd[_0xb12a('0x22')](0xcc)[_0xb12a('0x23')]();});}};}function handleEntityNotFound(_0x2a83fc,_0x1965c1){return function(_0x4be15e){if(!_0x4be15e){_0x2a83fc[_0xb12a('0x21')](0x194);}return _0x4be15e;};}function handleError(_0x41b3c9,_0x5cabc2){_0x5cabc2=_0x5cabc2||0x1f4;return function(_0x21dcae){logger[_0xb12a('0x30')](_0x21dcae['stack']);if(_0x21dcae['name']){delete _0x21dcae[_0xb12a('0x31')];}_0x41b3c9[_0xb12a('0x22')](_0x5cabc2)[_0xb12a('0x32')](_0x21dcae);};}function getInteractionUsers(_0x4ec6dc,_0x222321){return new BPromise(function(_0x21da14,_0x2b46d3){try{if(_0x222321[_0x4ec6dc['id']]){_0x4ec6dc[_0xb12a('0x33')]=_[_0xb12a('0x34')](_0x222321[_0x4ec6dc['id']],function(_0x1647d7){return{'id':_0x1647d7['id'],'fullname':_0x1647d7[_0xb12a('0x35')]};});}}catch(_0x5807ff){_0x2b46d3(_0x5807ff);}_0x21da14(_0x4ec6dc);});}function getInteractionTags(_0x302b13,_0x1b66aa){return new BPromise(function(_0x19c3be,_0x4beeed){try{if(_0x302b13[_0xb12a('0x36')]){_0x302b13[_0xb12a('0x37')]=[];_0x302b13[_0xb12a('0x36')][_0xb12a('0x38')](',')['forEach'](function(_0x1f2793){_0x302b13[_0xb12a('0x37')][_0xb12a('0x39')](_0x1b66aa[_0x1f2793]);});}delete _0x302b13['TagIds'];}catch(_0x28c5db){_0x4beeed(_0x28c5db);}_0x19c3be(_0x302b13);});}function updateOpenchannelInteraction(_0xa3449e,_0x15b07e,_0x249923){return new BPromise(function(_0xa11ce5,_0xb799dc){return getInteractionUsers(_0xa3449e,_0x249923)[_0xb12a('0x2e')](function(_0x1ac65c){return getInteractionTags(_0x1ac65c,_0x15b07e);})[_0xb12a('0x2e')](function(_0x57154c){_0xa11ce5(_0x57154c);})[_0xb12a('0x3a')](function(_0x472062){_0xb799dc(_0x472062);});});}exports[_0xb12a('0x3b')]=function(_0x4ee2fc,_0x19d984){var _0x1fb26d={},_0x55f1a3={},_0x34f89b={'count':0x0,'rows':[]};var _0x54928b=_['map'](db['OpenchannelInteraction']['rawAttributes'],function(_0xeb3907){return{'name':_0xeb3907[_0xb12a('0x3c')],'type':_0xeb3907[_0xb12a('0x3d')][_0xb12a('0x3e')]};});_0x55f1a3[_0xb12a('0x3f')]=_[_0xb12a('0x34')](_0x54928b,_0xb12a('0x31'));_0x55f1a3[_0xb12a('0x40')]=_['keys'](_0x4ee2fc['query']);_0x55f1a3[_0xb12a('0x41')]=_[_0xb12a('0x42')](_0x55f1a3['model'],_0x55f1a3[_0xb12a('0x40')]);_0x1fb26d['attributes']=_[_0xb12a('0x42')](_0x55f1a3[_0xb12a('0x3f')],qs[_0xb12a('0x43')](_0x4ee2fc[_0xb12a('0x40')][_0xb12a('0x43')]));_0x1fb26d['attributes']=_0x1fb26d['attributes'][_0xb12a('0x44')]?_0x1fb26d[_0xb12a('0x45')]:_0x55f1a3[_0xb12a('0x3f')];if(!_0x4ee2fc[_0xb12a('0x40')]['hasOwnProperty']('nolimit')){_0x1fb26d['limit']=qs[_0xb12a('0x27')](_0x4ee2fc['query'][_0xb12a('0x27')]);_0x1fb26d[_0xb12a('0x25')]=qs[_0xb12a('0x25')](_0x4ee2fc[_0xb12a('0x40')][_0xb12a('0x25')]);}_0x1fb26d[_0xb12a('0x46')]=qs[_0xb12a('0x47')](_0x4ee2fc[_0xb12a('0x40')][_0xb12a('0x47')]);_0x1fb26d['where']=qs[_0xb12a('0x41')](_[_0xb12a('0x48')](_0x4ee2fc[_0xb12a('0x40')],_0x55f1a3[_0xb12a('0x41')]),_0x54928b);var _0x1d70d4=[];var _0x5c96dc=squel['select']()[_0xb12a('0x49')]('id')[_0xb12a('0x49')](_0xb12a('0x31'))[_0xb12a('0x49')](_0xb12a('0x4a'))[_0xb12a('0x4b')](_0xb12a('0x4c'));var _0x59d41c=squel[_0xb12a('0x4d')]()[_0xb12a('0x49')]('u.id')['field'](_0xb12a('0x4e'))[_0xb12a('0x49')](_0xb12a('0x4f'))[_0xb12a('0x4b')](_0xb12a('0x50'),'ui')[_0xb12a('0x51')](_0xb12a('0x52'),'u',_0xb12a('0x53'));var _0x1b8d7e=squel[_0xb12a('0x4d')]()[_0xb12a('0x4b')]('openchannel_interactions','i')[_0xb12a('0x51')](_0xb12a('0x54'),'c',_0xb12a('0x55'))['left_join'](_0xb12a('0x52'),'o',_0xb12a('0x56'))[_0xb12a('0x51')](_0xb12a('0x57'),'a',_0xb12a('0x58'))[_0xb12a('0x51')](_0xb12a('0x59'),'me',_0xb12a('0x5a'))[_0xb12a('0x51')](_0xb12a('0x5b'),'it',_0xb12a('0x5c'))[_0xb12a('0x51')](_0xb12a('0x4c'),'t','t.id\x20=\x20it.TagId');var _0x3cf41f=squel[_0xb12a('0x5d')]();var _0x26ef30=[];var _0x34417b=squel[_0xb12a('0x5d')]();var _0x21f58e;if(_0x4ee2fc[_0xb12a('0x40')][_0xb12a('0x5e')]){_0x21f58e=as[_0xb12a('0x5f')](_0x4ee2fc[_0xb12a('0x40')][_0xb12a('0x5e')]);var _0x4488f3=_0x21f58e['sqlOperator'];for(var _0xf69a95=0x0;_0xf69a95<_0x21f58e[_0xb12a('0x60')][_0xb12a('0x44')];_0xf69a95++){var _0x10e78e=_0x21f58e['conditions'][_0xf69a95];var _0x3be51b='i';var _0x5e593c=_[_0xb12a('0x61')](_0x54928b,['name',_0x10e78e[_0xb12a('0x49')]]);if(!_0x5e593c){switch(_0x10e78e[_0xb12a('0x49')]){case'unreadMessages':if(_0x10e78e[_0xb12a('0x62')]==0x1){_0x1b8d7e[_0xb12a('0x63')]('`'+_0x10e78e[_0xb12a('0x49')]+_0xb12a('0x64'));}else{_0x1b8d7e[_0xb12a('0x63')]('`'+_0x10e78e[_0xb12a('0x49')]+_0xb12a('0x65'));}break;case _0xb12a('0x66'):if(_0x10e78e[_0xb12a('0x67')]===_0xb12a('0x68')){if(_0x10e78e['value'][_0xb12a('0x38')]('\x20')[_0xb12a('0x44')]>0x1){_0x3cf41f[_0x4488f3](_0xb12a('0x69'),qs['getFullTextValue'](_0x10e78e['value']),null);}else{var _0x329a4a='%'+_0x10e78e['value']+'%';_0x3cf41f[_0x4488f3](_0xb12a('0x6a'),_0x329a4a,_0x329a4a,_0x329a4a);}}else{_0x5e593c=_[_0xb12a('0x61')](_0x54928b,[_0xb12a('0x31'),'ContactId']);_0x10e78e[_0xb12a('0x49')]=_0xb12a('0x6b');_0x30c7f3=as[_0xb12a('0x6c')](_0x3be51b,_0x5e593c[_0xb12a('0x3d')],_0x10e78e);_0x3cf41f[_0x4488f3](_0x30c7f3[_0xb12a('0x6d')],_0x30c7f3[_0xb12a('0x62')][_0xb12a('0x6e')],_0x30c7f3[_0xb12a('0x62')][_0xb12a('0x23')]);}break;case _0xb12a('0x6f'):var _0x38cfcb=_0x10e78e[_0xb12a('0x62')]['split'](',')[_0xb12a('0x34')](function(_0x515d30){return Number(_0x515d30);});_0x38cfcb[_0xb12a('0x70')](function(_0x5b3514){_0x34417b['or'](_0xb12a('0x71'),'%,'+_0x5b3514+',%');});_0x26ef30=_[_0xb12a('0x72')](_0x26ef30,_0x38cfcb);break;case'User':if(_0x10e78e[_0xb12a('0x67')]==='$substring'){_0x3cf41f[_0x4488f3](_0xb12a('0x73'),'%'+_0x10e78e[_0xb12a('0x62')]+'%',null);}else{_0x5e593c=_['find'](_0x54928b,[_0xb12a('0x31'),_0xb12a('0x74')]);_0x10e78e[_0xb12a('0x49')]=_0xb12a('0x74');_0x30c7f3=as[_0xb12a('0x6c')](_0x3be51b,_0x5e593c[_0xb12a('0x3d')],_0x10e78e);_0x3cf41f[_0x4488f3](_0x30c7f3['text'],_0x30c7f3[_0xb12a('0x62')][_0xb12a('0x6e')],_0x30c7f3[_0xb12a('0x62')]['end']);}break;case _0xb12a('0x75'):_0x30c7f3=as[_0xb12a('0x6c')]('me',null,_0x10e78e);_0x3cf41f[_0x4488f3](_0x30c7f3[_0xb12a('0x6d')],_0x30c7f3['value'][_0xb12a('0x6e')],_0x30c7f3[_0xb12a('0x62')][_0xb12a('0x23')]);break;}}else{var _0x30c7f3=as[_0xb12a('0x6c')](_0x3be51b,_0x5e593c['type'],_0x10e78e);_0x3cf41f[_0x4488f3](_0x30c7f3[_0xb12a('0x6d')],_0x30c7f3[_0xb12a('0x62')][_0xb12a('0x6e')],_0x30c7f3[_0xb12a('0x62')][_0xb12a('0x23')]);}}}else{var _0x257cd9=_(_0x4ee2fc[_0xb12a('0x40')])[_0xb12a('0x76')]()['map'](function(_0x304a32){return _['some'](_0x54928b,[_0xb12a('0x31'),_0x304a32])?_0x304a32:undefined;})[_0xb12a('0x77')]()['value']();if(!_[_0xb12a('0x78')](_0x257cd9)){_0x257cd9[_0xb12a('0x70')](function(_0x12dffa){if(_0x12dffa===_0xb12a('0x79')){_0x1b8d7e[_0xb12a('0x7a')](_0xb12a('0x7b'),[]['concat'](_0x4ee2fc[_0xb12a('0x40')][_0x12dffa]));}else if(_0x12dffa==='createdAt'){var _0x4d99ad=JSON[_0xb12a('0x7c')](_0x4ee2fc[_0xb12a('0x40')][_0x12dffa])[_0xb12a('0x7d')];var _0x355467=JSON[_0xb12a('0x7c')](_0x4ee2fc[_0xb12a('0x40')][_0x12dffa])[_0xb12a('0x7e')];_0x1b8d7e['where'](_0xb12a('0x7f'),_0x4d99ad,_0x355467);}else{if(_0x4ee2fc[_0xb12a('0x40')][_0x12dffa]===_0xb12a('0x80')){_0x1b8d7e['where']('i.'+_0x12dffa+_0xb12a('0x81'));}else{_0x1b8d7e['where']('i.'+_0x12dffa+_0xb12a('0x82'),_0x4ee2fc[_0xb12a('0x40')][_0x12dffa]);}}});}if(_0x4ee2fc[_0xb12a('0x40')][_0xb12a('0x83')]){if(_0x4ee2fc[_0xb12a('0x40')][_0xb12a('0x83')]==0x1){_0x1b8d7e['having']('`unreadMessages`\x20=\x200');}else{_0x1b8d7e['having'](_0xb12a('0x84'));}}if(_0x4ee2fc[_0xb12a('0x40')][_0xb12a('0x85')]){_0x26ef30=_[_0xb12a('0x86')](_0x4ee2fc[_0xb12a('0x40')]['tag'])?_0x4ee2fc[_0xb12a('0x40')][_0xb12a('0x85')]:new Array(_0x4ee2fc[_0xb12a('0x40')]['tag']);_0x26ef30[_0xb12a('0x70')](function(_0x53c86b){_0x34417b['or'](_0xb12a('0x71'),'%,'+_0x53c86b+',%');});}if(_0x4ee2fc[_0xb12a('0x40')][_0xb12a('0x87')]){var _0x3ece95=_0x4ee2fc[_0xb12a('0x40')][_0xb12a('0x87')][_0xb12a('0x88')]('\x5c','\x5c\x5c')[_0xb12a('0x88')](/'/g,'\x27\x27');if(qs[_0xb12a('0x89')](_0x3ece95)){_0x3cf41f['or']('i.id\x20LIKE\x20?',_0x3ece95+'%');}else{_0x3cf41f['or'](_0xb12a('0x8a'),qs[_0xb12a('0x8b')](_0x3ece95))['or']('i.from\x20LIKE\x20?',_0x3ece95+'%')['or'](_0xb12a('0x8c'),_0x3ece95+'%');}}}_0x1b8d7e[_0xb12a('0x7a')](_0x3cf41f);_0x1b8d7e[_0xb12a('0x8d')](_0xb12a('0x8e'));var _0x27a3bf={'type':db[_0xb12a('0x8f')]['QueryTypes'][_0xb12a('0x90')],'raw':!![]};var _0x55c38b=_0x1b8d7e[_0xb12a('0x91')]();_0x55c38b[_0xb12a('0x49')]('i.id');_0x55c38b['field'](_0xb12a('0x92'),_0xb12a('0x93'));if(_0x1fb26d[_0xb12a('0x46')]){_0x1fb26d[_0xb12a('0x46')][_0xb12a('0x70')](function(_0x3ec38c){var _0x3edf40=_0x3ec38c[0x0]===_0xb12a('0x94')?_0x3ec38c[0x0]:'i.'+_0x3ec38c[0x0];_0x1b8d7e[_0xb12a('0x46')](_0x3edf40,_0x3ec38c[0x1]===_0xb12a('0x95')?![]:!![]);});}if(!_['isEmpty'](_0x26ef30)){_0x1b8d7e[_0xb12a('0x63')](_0x34417b);_0x55c38b['where']('t.id\x20IN\x20?',_0x26ef30);}BPromise[_0xb12a('0x96')]()[_0xb12a('0x2e')](function(){if(!_0x21f58e){if(_0x4ee2fc[_0xb12a('0x40')][_0xb12a('0x79')])return;_0x55c38b['where'](_0xb12a('0x97'));_0x1b8d7e['where']('i.OpenchannelAccountId\x20IS\x20NOT\x20NULL');return;}if(_0x4ee2fc[_0xb12a('0x98')][_0xb12a('0x99')]!==_0xb12a('0x9a'))return;return _0x4ee2fc['user']['getOpenchannelAccounts']({'attributes':['id'],'raw':!![]})['then'](function(_0x47cddf){if(_[_0xb12a('0x78')](_0x47cddf)){_0x55c38b['where'](_0xb12a('0x9b'));_0x1b8d7e[_0xb12a('0x7a')](_0xb12a('0x9b'));}else{_0x55c38b[_0xb12a('0x7a')](_0xb12a('0x7b'),_['map'](_0x47cddf,'id'));_0x1b8d7e[_0xb12a('0x7a')]('i.OpenchannelAccountId\x20IN\x20?',_[_0xb12a('0x34')](_0x47cddf,'id'));}});})[_0xb12a('0x2e')](function(){if(_0x4ee2fc[_0xb12a('0x98')][_0xb12a('0x99')]===_0xb12a('0x9a')&&!_0x21f58e&&!_0x4ee2fc[_0xb12a('0x40')][_0xb12a('0x79')])return[];return db['sequelize']['query'](_0x55c38b[_0xb12a('0x9c')](),_0x27a3bf);})[_0xb12a('0x2e')](function(_0x2947af){_0x34f89b[_0xb12a('0x28')]=_0x2947af[_0xb12a('0x44')];if(_0x34f89b[_0xb12a('0x28')]===0x0)return[];return db[_0xb12a('0x9d')]['query'](_0x5c96dc[_0xb12a('0x9c')](),_0x27a3bf)[_0xb12a('0x2e')](function(_0x2c6a8c){_0x1d70d4=_[_0xb12a('0x9e')](_0x2c6a8c,'id');_0x27a3bf=_['merge'](_0x27a3bf,{'model':db['OpenchannelInteraction'],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x4ee2fc[_0xb12a('0x40')]['fields']){_0x1fb26d[_0xb12a('0x45')][_0xb12a('0x70')](function(_0xb93f99){_0x1b8d7e['field']('i.'+_0xb93f99);});}else{_0x1b8d7e[_0xb12a('0x49')](_0xb12a('0x92'),_0xb12a('0x93'));_0x1b8d7e[_0xb12a('0x49')](_0xb12a('0x9f'),_0xb12a('0xa0'));_0x1b8d7e[_0xb12a('0x49')](_0xb12a('0xa1'),_0xb12a('0xa2'));_0x1b8d7e[_0xb12a('0x49')]('CASE\x20WHEN\x20i.from\x20IS\x20NOT\x20NULL\x20AND\x20i.from\x20<>\x20\x27\x27\x20THEN\x20i.from\x20WHEN\x20(c.firstName\x20IS\x20NOT\x20NULL\x20AND\x20c.firstName\x20<>\x20\x27\x27)\x20OR\x20(c.lastName\x20IS\x20NOT\x20NULL\x20AND\x20c.lastName\x20<>\x20\x27\x27)\x20THEN\x20CONCAT(IFNULL(c.firstName,\x20\x27\x27),\x20\x27\x20\x27,\x20IFNULL(c.lastName,\x20\x27\x27))\x20ELSE\x20\x27Unknown\x27\x20END','contactName');_0x1b8d7e[_0xb12a('0x49')](_0xb12a('0xa3'));_0x1b8d7e[_0xb12a('0x49')](_0xb12a('0xa4'),_0xb12a('0xa5'));_0x1b8d7e[_0xb12a('0x49')](_0xb12a('0xa6'),_0xb12a('0xa7'));_0x1b8d7e[_0xb12a('0x49')](_0xb12a('0xa8'),'Contact.email');_0x1b8d7e[_0xb12a('0x49')](_0xb12a('0xa9'),_0xb12a('0xaa'));_0x1b8d7e[_0xb12a('0x49')](_0xb12a('0xab'),_0xb12a('0xac'));_0x1b8d7e[_0xb12a('0x49')]('c.fax','Contact.fax');_0x1b8d7e[_0xb12a('0x49')](_0xb12a('0xad'),'Owner.fullname');_0x1b8d7e[_0xb12a('0x49')](_0xb12a('0xae'),_0xb12a('0xaf'));_0x1b8d7e['field']('GROUP_CONCAT(DISTINCT\x20t.id)',_0xb12a('0x36'));}if(_0x1fb26d['limit'])_0x1b8d7e[_0xb12a('0x27')](_0x1fb26d[_0xb12a('0x27')]);if(_0x1fb26d['offset'])_0x1b8d7e[_0xb12a('0x25')](_0x1fb26d[_0xb12a('0x25')]);return db[_0xb12a('0x9d')][_0xb12a('0x40')](_0x1b8d7e[_0xb12a('0x9c')](),_0x27a3bf);})[_0xb12a('0x2e')](function(_0x2eead4){if(_0x2eead4['length']>0x0)_0x59d41c['where'](_0xb12a('0xb0'),_[_0xb12a('0x34')](_0x2eead4,'id'));return db[_0xb12a('0x9d')][_0xb12a('0x40')](_0x59d41c[_0xb12a('0x9c')](),_0x27a3bf)[_0xb12a('0x2e')](function(_0x5365f4){var _0x86d683=_[_0xb12a('0xb1')](_0x5365f4,_0xb12a('0xb2'));var _0x532a51=[];_0x2eead4[_0xb12a('0x70')](function(_0x248396){_0x532a51[_0xb12a('0x39')](updateOpenchannelInteraction(_0x248396,_0x1d70d4,_0x86d683));});return BPromise[_0xb12a('0xb3')](_0x532a51);});});})[_0xb12a('0x2e')](function(_0x2d56f0){_0x34f89b[_0xb12a('0xb4')]=_0x2d56f0;return _0x34f89b;})[_0xb12a('0x2e')](respondWithFilteredResult(_0x19d984,_0x1fb26d))[_0xb12a('0x3a')](handleError(_0x19d984,null));};exports['show']=function(_0x23d94d,_0x1a8661){var _0x364cca={};if(_0x23d94d['query'][_0xb12a('0x3d')]&&_0x23d94d[_0xb12a('0x40')]['type']==='from'){_0x364cca[_0xb12a('0x4b')]=_0x23d94d[_0xb12a('0xb5')]['id'];}else{_0x364cca['id']=_0x23d94d['params']['id'];}var _0x5b35fd={'raw':![],'where':_0x364cca},_0x1e83fe={};_0x1e83fe[_0xb12a('0x3f')]=_[_0xb12a('0x76')](db[_0xb12a('0xb6')]['rawAttributes']);_0x1e83fe[_0xb12a('0x40')]=_[_0xb12a('0x76')](_0x23d94d['query']);_0x1e83fe[_0xb12a('0x41')]=_['intersection'](_0x1e83fe[_0xb12a('0x3f')],_0x1e83fe[_0xb12a('0x40')]);_0x5b35fd['attributes']=_['intersection'](_0x1e83fe['model'],qs['fields'](_0x23d94d[_0xb12a('0x40')][_0xb12a('0x43')]));_0x5b35fd[_0xb12a('0x45')]=_0x5b35fd['attributes'][_0xb12a('0x44')]?_0x5b35fd['attributes']:_0x1e83fe[_0xb12a('0x3f')];if(_0x23d94d['query'][_0xb12a('0xb7')]){_0x5b35fd['include']=[{'all':!![]}];}_0x5b35fd=_[_0xb12a('0xb8')]({},_0x5b35fd,_0x23d94d[_0xb12a('0xb9')]);return db[_0xb12a('0xb6')]['find'](_0x5b35fd)['then'](handleEntityNotFound(_0x1a8661,null))[_0xb12a('0x2e')](respondWithResult(_0x1a8661,null))['catch'](handleError(_0x1a8661,null));};exports['create']=function(_0x562fe2,_0x534a6c){return db['OpenchannelInteraction'][_0xb12a('0xba')](_0x562fe2['body'],{})[_0xb12a('0x2e')](respondWithResult(_0x534a6c,0xc9))['catch'](handleError(_0x534a6c,null));};exports['update']=function(_0x3af279,_0x2a4db6){if(_0x3af279[_0xb12a('0x75')]['id']){delete _0x3af279[_0xb12a('0x75')]['id'];}return db[_0xb12a('0xb6')]['find']({'where':{'id':_0x3af279[_0xb12a('0xb5')]['id']}})['then'](handleEntityNotFound(_0x2a4db6,null))['then'](saveUpdates(_0x3af279['body'],null))['then'](respondWithResult(_0x2a4db6,null))[_0xb12a('0x3a')](handleError(_0x2a4db6,null));};exports[_0xb12a('0x2f')]=function(_0x465e0d,_0x4c09bf){return db[_0xb12a('0xb6')][_0xb12a('0x61')]({'where':{'id':_0x465e0d[_0xb12a('0xb5')]['id']}})[_0xb12a('0x2e')](handleEntityNotFound(_0x4c09bf,null))[_0xb12a('0x2e')](removeEntity(_0x4c09bf,null))['catch'](handleError(_0x4c09bf,null));};exports['describe']=function(_0x246ca6,_0x5b40d3){return db[_0xb12a('0xb6')][_0xb12a('0xbb')]()[_0xb12a('0x2e')](respondWithResult(_0x5b40d3,null))[_0xb12a('0x3a')](handleError(_0x5b40d3,null));};exports[_0xb12a('0xbc')]=function(_0x1fca30,_0x19cb4d,_0x2c624a){return db[_0xb12a('0xbd')][_0xb12a('0x61')]({'where':{'id':_0x1fca30[_0xb12a('0xb5')]['id']}})['then'](handleEntityNotFound(_0x19cb4d,null))[_0xb12a('0x2e')](function(_0x566dba){if(_0x566dba){return _0x566dba[_0xb12a('0xbc')](_0x1fca30['body'][_0xb12a('0xbe')],_[_0xb12a('0xbf')](_0x1fca30[_0xb12a('0x75')],['ids','id'])||{});}})['then'](respondWithResult(_0x19cb4d,null))['catch'](handleError(_0x19cb4d,null));};exports[_0xb12a('0xc0')]=function(_0x2ceaa6,_0x5425fa,_0x50e41e){var _0x5b68c7={'raw':![],'where':{}};var _0x4fb0c3={};var _0x3eff07={'count':0x0,'rows':[]};return db[_0xb12a('0xb6')][_0xb12a('0xc1')]({'where':{'id':_0x2ceaa6['params']['id']}})[_0xb12a('0x2e')](handleEntityNotFound(_0x5425fa,null))['then'](function(_0x1a8ef0){if(_0x1a8ef0){_0x4fb0c3[_0xb12a('0x3f')]=_['keys'](db['OpenchannelMessage'][_0xb12a('0xc2')]);_0x4fb0c3[_0xb12a('0x40')]=_[_0xb12a('0x76')](_0x2ceaa6[_0xb12a('0x40')]);_0x4fb0c3['filters']=_['intersection'](_0x4fb0c3[_0xb12a('0x3f')],_0x4fb0c3[_0xb12a('0x40')]);_0x5b68c7[_0xb12a('0x45')]=_[_0xb12a('0x42')](_0x4fb0c3['model'],qs[_0xb12a('0x43')](_0x2ceaa6[_0xb12a('0x40')][_0xb12a('0x43')]));_0x5b68c7['attributes']=_0x5b68c7[_0xb12a('0x45')]['length']?_0x5b68c7[_0xb12a('0x45')]:_0x4fb0c3[_0xb12a('0x3f')];if(!_0x2ceaa6[_0xb12a('0x40')]['hasOwnProperty'](_0xb12a('0xc3'))){_0x5b68c7[_0xb12a('0x27')]=qs['limit'](_0x2ceaa6['query'][_0xb12a('0x27')]);_0x5b68c7[_0xb12a('0x25')]=qs[_0xb12a('0x25')](_0x2ceaa6['query'][_0xb12a('0x25')]);}_0x5b68c7[_0xb12a('0x46')]=qs['sort'](_0x2ceaa6[_0xb12a('0x40')][_0xb12a('0x47')]);_0x5b68c7[_0xb12a('0x7a')]=qs[_0xb12a('0x41')](_[_0xb12a('0x48')](_0x2ceaa6[_0xb12a('0x40')],_0x4fb0c3[_0xb12a('0x41')]));_0x5b68c7['where']['OpenchannelInteractionId']=_0x1a8ef0['id'];if(_0x2ceaa6['query'][_0xb12a('0x87')]){_0x5b68c7[_0xb12a('0x7a')]=_[_0xb12a('0xb8')](_0x5b68c7[_0xb12a('0x7a')],{'$or':_[_0xb12a('0x34')](_0x5b68c7['attributes'],function(_0x45e452){var _0x1e1b1a={};_0x1e1b1a[_0x45e452]={'$like':'%'+_0x2ceaa6[_0xb12a('0x40')][_0xb12a('0x87')]+'%'};return _0x1e1b1a;})});}if(_0x2ceaa6[_0xb12a('0x40')][_0xb12a('0x7d')]){var _0xb41e9d=_0x2ceaa6['query'][_0xb12a('0x7d')][_0xb12a('0x38')](',');var _0x161c39={};_0x161c39[_0xb41e9d[0x0]]={'$gte':moment(_0xb41e9d[0x1])[_0xb12a('0xc4')](_0xb12a('0xc5'))};_0x5b68c7['where']=_[_0xb12a('0xb8')](_0x5b68c7['where'],_0x161c39);}_0x5b68c7=_[_0xb12a('0xb8')]({},_0x5b68c7,_0x2ceaa6[_0xb12a('0xb9')]);return db[_0xb12a('0xbd')][_0xb12a('0x28')]({'where':_0x5b68c7[_0xb12a('0x7a')]})[_0xb12a('0x2e')](function(_0x1c152a){_0x3eff07[_0xb12a('0x28')]=_0x1c152a;if(_0x2ceaa6[_0xb12a('0x40')][_0xb12a('0xb7')]){_0x5b68c7['include']=[{'all':!![]}];}return db[_0xb12a('0xbd')][_0xb12a('0xc6')](_0x5b68c7);})[_0xb12a('0x2e')](function(_0x23d445){_0x3eff07[_0xb12a('0xb4')]=_0x23d445;return _0x3eff07;});}})['then'](respondWithFilteredResult(_0x5425fa,_0x5b68c7))['catch'](handleError(_0x5425fa,null));};exports[_0xb12a('0xc7')]=function(_0xcb2b24,_0xcdef8c,_0x5b3bae){return db[_0xb12a('0xb6')][_0xb12a('0x61')]({'where':{'id':_0xcb2b24['params']['id']}})['then'](handleEntityNotFound(_0xcdef8c,null))[_0xb12a('0x2e')](function(_0x5ae6ff){if(_0x5ae6ff){return _0x5ae6ff['setTags'](_0xcb2b24['body'][_0xb12a('0xbe')],_['omit'](_0xcb2b24[_0xb12a('0x75')],[_0xb12a('0xbe'),'id'])||{})[_0xb12a('0xc8')](function(){return db[_0xb12a('0x6f')][_0xb12a('0xc6')]({'attributes':['id',_0xb12a('0x31'),_0xb12a('0x4a')],'where':{'id':_0xcb2b24[_0xb12a('0x75')]['ids']}});})[_0xb12a('0x2e')](function(_0x3305ec){socket['emit']('openchannelInteractionTags:save',{'id':Number(_0xcb2b24[_0xb12a('0xb5')]['id']),'tags':_0x3305ec||[]});return{'id':Number(_0xcb2b24['params']['id']),'tags':_0x3305ec||[]};});}})['then'](respondWithResult(_0xcdef8c,null))[_0xb12a('0x3a')](handleError(_0xcdef8c,null));};exports[_0xb12a('0xc9')]=function(_0x2b9b5a,_0x3b2505,_0x399125){return db['OpenchannelInteraction'][_0xb12a('0x61')]({'where':{'id':_0x2b9b5a[_0xb12a('0xb5')]['id']}})['then'](handleEntityNotFound(_0x3b2505,null))[_0xb12a('0x2e')](function(_0x19a28e){if(_0x19a28e){return _0x19a28e[_0xb12a('0xc9')](_0x2b9b5a['query'][_0xb12a('0xbe')]);}})[_0xb12a('0x2e')](respondWithStatusCode(_0x3b2505,null))[_0xb12a('0x3a')](handleError(_0x3b2505,null));};exports[_0xb12a('0xca')]=function(_0x35a86b,_0x5e8b6d){var _0x5e2eab=moment()[_0xb12a('0xcb')]()[_0xb12a('0x9c')]();var _0x5b411d=path[_0xb12a('0xcc')](config[_0xb12a('0xcd')],_0xb12a('0xce'),'files',_0xb12a('0xcf'));var _0x35f5ff=path[_0xb12a('0xcc')](config[_0xb12a('0xcd')],_0xb12a('0xce'),'files',_0xb12a('0xd0'));var _0x5d95cd=path[_0xb12a('0xcc')](_0x5b411d,_0x5e2eab);var _0x2d4167=util[_0xb12a('0xc4')]('transcript-%d-%s.zip',_0x35a86b['params']['id'],_0x5e2eab);var _0xeccdab=path[_0xb12a('0xcc')](_0x5b411d,_0x2d4167);var _0x52a425=[];_0x52a425['push']({'model':db[_0xb12a('0xd1')],'as':_0xb12a('0xd1'),'attributes':['id',_0xb12a('0x35')],'raw':!![]});_0x52a425[_0xb12a('0x39')]({'model':db[_0xb12a('0xd2')],'as':_0xb12a('0x66'),'attributes':['id',_0xb12a('0xd3'),_0xb12a('0xd4')],'raw':!![]});if(_0x35a86b['query']['attachments']){_0x52a425[_0xb12a('0x39')]({'model':db[_0xb12a('0xd5')],'as':'Attachment','raw':!![]});}var _0x352ecf=[{'model':db['OpenchannelMessage'],'as':_0xb12a('0xd6'),'attributes':['id',_0xb12a('0x75'),'createdAt',_0xb12a('0xd7'),_0xb12a('0xd8'),_0xb12a('0x83')],'include':_0x52a425}];_0x352ecf['push']({'model':db[_0xb12a('0xd9')],'as':_0xb12a('0xda'),'attributes':['id',_0xb12a('0x31')]});_0x352ecf[_0xb12a('0x39')]({'model':db[_0xb12a('0xd1')],'as':_0xb12a('0xdb'),'attributes':['id',_0xb12a('0x35')]});return db[_0xb12a('0xb6')][_0xb12a('0x61')]({'where':{'id':_0x35a86b[_0xb12a('0xb5')]['id']},'include':_0x352ecf})['then'](handleEntityNotFound(_0x5e8b6d,null))[_0xb12a('0x2e')](function(_0x321146){if(_0x321146){var _0x1d93c5=_0x321146[_0xb12a('0xdc')]({'plain':!![]});fs[_0xb12a('0xdd')](_0x5d95cd);var _0x27363b={'channel':_0xb12a('0xde'),'account':_0x1d93c5[_0xb12a('0xda')][_0xb12a('0x31')],'agent':_0x1d93c5[_0xb12a('0xdb')]?_0x1d93c5['Owner'][_0xb12a('0x35')]:'N.A.','createdAt':moment(_0x1d93c5[_0xb12a('0xdf')])[_0xb12a('0xc4')]('YYYY-MM-DD\x20HH:mm:ss')[_0xb12a('0x9c')](),'closedAt':_0x1d93c5['closed']?moment(_0x1d93c5[_0xb12a('0xe0')])[_0xb12a('0xc4')](_0xb12a('0xc5'))[_0xb12a('0x9c')]():'','disposition':_0x1d93c5[_0xb12a('0xe1')],'visibility':_0x1d93c5[_0xb12a('0xe2')]?_0xb12a('0xe3'):_0xb12a('0xe4'),'messages':_(_0x1d93c5[_0xb12a('0xd6')])['filter']({'secret':![]})[_0xb12a('0x34')](function(_0x363530){if(_0x363530[_0xb12a('0xd5')]){var _0x4ccedd=path['join'](_0x35f5ff,_0x363530['Attachment'][_0xb12a('0xe5')]);if(fs['existsSync'](_0x4ccedd)){fs['createReadStream'](_0x4ccedd)[_0xb12a('0xe6')](fs[_0xb12a('0xe7')](path['join'](_0x5d95cd,_0x363530[_0xb12a('0xd5')][_0xb12a('0xe5')])));}}return{'date':moment(_0x363530['createdAt'])['format']('YYYY-MM-DD\x20HH:mm:ss')[_0xb12a('0x9c')](),'sender':_0x363530[_0xb12a('0xd7')]===_0xb12a('0xe8')?_0x363530[_0xb12a('0xd1')]?_0x363530['User'][_0xb12a('0x35')]:_0xb12a('0xe9'):_0x363530[_0xb12a('0x66')]['firstName']+(_0x363530[_0xb12a('0x66')][_0xb12a('0xd4')]?'\x20'+_0x363530[_0xb12a('0x66')][_0xb12a('0xd4')]:''),'body':_0x363530['Attachment']?_0x363530['Attachment'][_0xb12a('0xe5')]:_0x363530[_0xb12a('0x75')],'direction':_0x363530[_0xb12a('0xd7')]==='out'?'A':'C','secret':_0x363530[_0xb12a('0xd8')],'read':_0x363530['read'],'attachment':_0x363530[_0xb12a('0xd5')]};})[_0xb12a('0x62')]()};return ejs['renderFile'](path[_0xb12a('0xcc')](config[_0xb12a('0xcd')],_0xb12a('0xce'),'views',_0xb12a('0xea')),{'interaction':_0x27363b})[_0xb12a('0x2e')](function(_0x3faf38){var _0x18c557=path[_0xb12a('0xcc')](_0x5d95cd,_0xb12a('0xeb')+_0x1d93c5['id']+'-'+_0x5e2eab+_0xb12a('0xec'));var _0x431cd2={'path':_0x18c557,'channel':_0xb12a('0xde'),'interactionId':_0x1d93c5['id']};return pdf['createPdfFromHTML'](_0x3faf38,_0x431cd2);})[_0xb12a('0x2e')](function(){return new BPromise(function(_0x39affa,_0x306076){zipdir(_0x5d95cd,{'saveTo':_0xeccdab},function(_0x3a254c,_0x33ddd8){if(_0x3a254c)return _0x306076(_0x3a254c);return _0x39affa(_0x33ddd8);});})[_0xb12a('0x2e')](function(){return new BPromise(function(_0x55341e,_0x3f0038){rimraf(_0x5d95cd,function(_0x59004b){if(_0x59004b)_0x3f0038(_0x59004b);return _0x55341e();});});})['then'](function(){return _0x5e8b6d[_0xb12a('0xca')](_0xeccdab,_0x2d4167,function(_0x263e43){if(_0x263e43){console[_0xb12a('0xed')](_0xb12a('0xee'),_0x263e43);}else{fs[_0xb12a('0xef')](_0xeccdab);}});});});}else{return _0x5e8b6d[_0xb12a('0x21')](0xc8);}})[_0xb12a('0x3a')](handleError(_0x5e8b6d,null));};
\ No newline at end of file
+var _0x139c=['from','u.fullname','ui.OpenchannelInteractionId','user_has_openchannel_interactions','users','u.id\x20=\x20ui.UserId','left_join','cm_contacts','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','openchannel_accounts','a.id\x20=\x20i.OpenchannelAccountId','openchannel_messages','me.OpenchannelInteractionId\x20=\x20i.id','it.OpenchannelInteractionId\x20=\x20i.id','tools_tags','t.id\x20=\x20it.TagId','expr','search','parseSearch','sqlOperator','conditions','unreadMessages','having','`\x20>\x200','Contact','operator','value','split','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?','find','ContactId','buildExpression','text','start','union','$substring','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','body','type','compact','isEmpty','OpenchannelAccountId','i.OpenchannelAccountId\x20IN\x20?','concat','createdAt','$gte','parse','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20=\x20?','read','`unreadMessages`\x20=\x200','tag','isArray','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','replace','i.id\x20LIKE\x20?','MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','i.from\x20LIKE\x20?','group','i.id','QueryTypes','SELECT','clone','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','order','contactName','DESC','i.OpenchannelAccountId\x20IS\x20NOT\x20NULL','user','role','agent','getOpenchannelAccounts','i.OpenchannelAccountId\x20IS\x20NULL','sequelize','merge','OpenchannelInteraction','a.key','Account.key','a.mandatoryDisposition','CASE\x20WHEN\x20i.from\x20IS\x20NOT\x20NULL\x20AND\x20i.from\x20<>\x20\x27\x27\x20THEN\x20i.from\x20WHEN\x20(c.firstName\x20IS\x20NOT\x20NULL\x20AND\x20c.firstName\x20<>\x20\x27\x27)\x20OR\x20(c.lastName\x20IS\x20NOT\x20NULL\x20AND\x20c.lastName\x20<>\x20\x27\x27)\x20THEN\x20CONCAT(IFNULL(c.firstName,\x20\x27\x27),\x20\x27\x20\x27,\x20IFNULL(c.lastName,\x20\x27\x27))\x20ELSE\x20\x27Unknown\x27\x20END','i.*','c.firstName','Contact.firstName','c.lastName','Contact.lastName','c.email','Contact.email','c.phone','Contact.phone','c.mobile','Contact.mobile','c.fax','Contact.fax','o.fullname','o.internal','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','toString','ui.OpenchannelInteractionId\x20IN\x20?','groupBy','OpenchannelInteractionId','all','show','params','include','options','catch','create','describe','addMessage','OpenchannelMessage','omit','ids','getMessages','findOne','nolimit','filter','format','YYYY-MM-DD\x20HH:mm:ss','findAll','rows','setTags','spread','Tag','emit','openchannelInteractionTags:save','removeTags','unix','server','tmp','join','root','files','attachments','transcript-%d-%s.zip','User','CmContact','firstName','lastName','Attachment','Messages','direction','secret','OpenchannelAccount','Account','get','Openchannel','Owner','N.A.','closed','disposition','Private','existsSync','createReadStream','createWriteStream','basename','out','renderFile','.pdf','download','log','unlinkSync','eml-format','rimraf','request-promise','moment','util','path','sox','ejs','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../components/export/pdf','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','./openchannelInteraction.socket','sendStatus','status','json','offset','undefined','limit','count','Content-Range','apply','reject','save','update','then','destroy','end','error','stack','name','map','fullname','TagIds','Tags','forEach','push','rawAttributes','fieldName','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','sort','where','pick','select','field','color'];(function(_0x351d95,_0x3f46b1){var _0x1a4215=function(_0x2453ef){while(--_0x2453ef){_0x351d95['push'](_0x351d95['shift']());}};_0x1a4215(++_0x3f46b1);}(_0x139c,0xa6));var _0xc139=function(_0x4dc7f0,_0x308df7){_0x4dc7f0=_0x4dc7f0-0x0;var _0x5dae36=_0x139c[_0x4dc7f0];return _0x5dae36;};'use strict';var emlformat=require(_0xc139('0x0'));var rimraf=require(_0xc139('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0xc139('0x2'));var moment=require(_0xc139('0x3'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xc139('0x4'));var path=require(_0xc139('0x5'));var sox=require(_0xc139('0x6'));var csv=require('to-csv');var ejs=require(_0xc139('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xc139('0x8'));var squel=require(_0xc139('0x9'));var crypto=require(_0xc139('0xa'));var jsforce=require(_0xc139('0xb'));var deskjs=require(_0xc139('0xc'));var toCsv=require(_0xc139('0xd'));var querystring=require(_0xc139('0xe'));var Papa=require(_0xc139('0xf'));var Redis=require('ioredis');var authService=require(_0xc139('0x10'));var qs=require(_0xc139('0x11'));var as=require(_0xc139('0x12'));var pdf=require(_0xc139('0x13'));var hardwareService=require(_0xc139('0x14'));var logger=require(_0xc139('0x15'))(_0xc139('0x16'));var utils=require(_0xc139('0x17'));var config=require(_0xc139('0x18'));var licenseUtil=require(_0xc139('0x19'));var db=require(_0xc139('0x1a'))['db'];config[_0xc139('0x1b')]=_['defaults'](config[_0xc139('0x1b')],{'host':_0xc139('0x1c'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xc139('0x1b')]));require(_0xc139('0x1d'))['register'](socket);function respondWithStatusCode(_0x1b412e,_0x3120e9){_0x3120e9=_0x3120e9||0xcc;return function(_0x42c5d2){if(_0x42c5d2){return _0x1b412e[_0xc139('0x1e')](_0x3120e9);}return _0x1b412e[_0xc139('0x1f')](_0x3120e9)['end']();};}function respondWithResult(_0x4b01af,_0xfb40fe){_0xfb40fe=_0xfb40fe||0xc8;return function(_0x27c935){if(_0x27c935){return _0x4b01af[_0xc139('0x1f')](_0xfb40fe)[_0xc139('0x20')](_0x27c935);}};}function respondWithFilteredResult(_0x477e27,_0x5435c2){return function(_0x54dbf7){if(_0x54dbf7){var _0xdde36e=typeof _0x5435c2[_0xc139('0x21')]===_0xc139('0x22')&&typeof _0x5435c2[_0xc139('0x23')]==='undefined';var _0x11a0b6=_0x54dbf7[_0xc139('0x24')];var _0x1225f1=_0xdde36e?0x0:_0x5435c2[_0xc139('0x21')];var _0x4fbf2b=_0xdde36e?_0x54dbf7[_0xc139('0x24')]:_0x5435c2['offset']+_0x5435c2[_0xc139('0x23')];var _0x310c1a;if(_0x4fbf2b>=_0x11a0b6){_0x4fbf2b=_0x11a0b6;_0x310c1a=0xc8;}else{_0x310c1a=0xce;}_0x477e27[_0xc139('0x1f')](_0x310c1a);return _0x477e27['set'](_0xc139('0x25'),_0x1225f1+'-'+_0x4fbf2b+'/'+_0x11a0b6)[_0xc139('0x20')](_0x54dbf7);}return null;};}function patchUpdates(_0x229092){return function(_0x107df4){try{jsonpatch[_0xc139('0x26')](_0x107df4,_0x229092,!![]);}catch(_0x192df6){return BPromise[_0xc139('0x27')](_0x192df6);}return _0x107df4[_0xc139('0x28')]();};}function saveUpdates(_0x4fc198,_0x2ec17c){return function(_0x265def){if(_0x265def){return _0x265def[_0xc139('0x29')](_0x4fc198)[_0xc139('0x2a')](function(_0x2bee7a){return _0x2bee7a;});}return null;};}function removeEntity(_0x87cb90,_0x59f4ca){return function(_0x3c2f37){if(_0x3c2f37){return _0x3c2f37[_0xc139('0x2b')]()['then'](function(){_0x87cb90[_0xc139('0x1f')](0xcc)[_0xc139('0x2c')]();});}};}function handleEntityNotFound(_0x226d3c,_0x52a7e4){return function(_0x419d0c){if(!_0x419d0c){_0x226d3c[_0xc139('0x1e')](0x194);}return _0x419d0c;};}function handleError(_0x238aee,_0x4bb523){_0x4bb523=_0x4bb523||0x1f4;return function(_0x293744){logger[_0xc139('0x2d')](_0x293744[_0xc139('0x2e')]);if(_0x293744[_0xc139('0x2f')]){delete _0x293744[_0xc139('0x2f')];}_0x238aee[_0xc139('0x1f')](_0x4bb523)['send'](_0x293744);};}function getInteractionUsers(_0x3f7829,_0x58616a){return new BPromise(function(_0x3f581c,_0x5228d3){try{if(_0x58616a[_0x3f7829['id']]){_0x3f7829['Users']=_[_0xc139('0x30')](_0x58616a[_0x3f7829['id']],function(_0x73b23){return{'id':_0x73b23['id'],'fullname':_0x73b23[_0xc139('0x31')]};});}}catch(_0x6d5734){_0x5228d3(_0x6d5734);}_0x3f581c(_0x3f7829);});}function getInteractionTags(_0x4a5a7b,_0x3ed2e1){return new BPromise(function(_0x5e23e6,_0x38d084){try{if(_0x4a5a7b[_0xc139('0x32')]){_0x4a5a7b[_0xc139('0x33')]=[];_0x4a5a7b[_0xc139('0x32')]['split'](',')[_0xc139('0x34')](function(_0x268855){_0x4a5a7b[_0xc139('0x33')][_0xc139('0x35')](_0x3ed2e1[_0x268855]);});}delete _0x4a5a7b['TagIds'];}catch(_0x2cee40){_0x38d084(_0x2cee40);}_0x5e23e6(_0x4a5a7b);});}function updateOpenchannelInteraction(_0x157460,_0x2a9709,_0x28de90){return new BPromise(function(_0x291bf2,_0x362e56){return getInteractionUsers(_0x157460,_0x28de90)[_0xc139('0x2a')](function(_0x53620d){return getInteractionTags(_0x53620d,_0x2a9709);})[_0xc139('0x2a')](function(_0x10a6f8){_0x291bf2(_0x10a6f8);})['catch'](function(_0x24e642){_0x362e56(_0x24e642);});});}exports['index']=function(_0x4ba559,_0x3c01be){var _0x2a1cc4={},_0x2e4b82={},_0x1567d4={'count':0x0,'rows':[]};var _0x37b9dd=_[_0xc139('0x30')](db['OpenchannelInteraction'][_0xc139('0x36')],function(_0x3f7fb7){return{'name':_0x3f7fb7[_0xc139('0x37')],'type':_0x3f7fb7['type']['key']};});_0x2e4b82[_0xc139('0x38')]=_[_0xc139('0x30')](_0x37b9dd,_0xc139('0x2f'));_0x2e4b82[_0xc139('0x39')]=_[_0xc139('0x3a')](_0x4ba559[_0xc139('0x39')]);_0x2e4b82[_0xc139('0x3b')]=_[_0xc139('0x3c')](_0x2e4b82[_0xc139('0x38')],_0x2e4b82[_0xc139('0x39')]);_0x2a1cc4[_0xc139('0x3d')]=_['intersection'](_0x2e4b82[_0xc139('0x38')],qs[_0xc139('0x3e')](_0x4ba559['query'][_0xc139('0x3e')]));_0x2a1cc4[_0xc139('0x3d')]=_0x2a1cc4[_0xc139('0x3d')][_0xc139('0x3f')]?_0x2a1cc4[_0xc139('0x3d')]:_0x2e4b82[_0xc139('0x38')];if(!_0x4ba559[_0xc139('0x39')][_0xc139('0x40')]('nolimit')){_0x2a1cc4[_0xc139('0x23')]=qs[_0xc139('0x23')](_0x4ba559[_0xc139('0x39')][_0xc139('0x23')]);_0x2a1cc4['offset']=qs[_0xc139('0x21')](_0x4ba559[_0xc139('0x39')][_0xc139('0x21')]);}_0x2a1cc4['order']=qs[_0xc139('0x41')](_0x4ba559[_0xc139('0x39')]['sort']);_0x2a1cc4[_0xc139('0x42')]=qs[_0xc139('0x3b')](_[_0xc139('0x43')](_0x4ba559[_0xc139('0x39')],_0x2e4b82[_0xc139('0x3b')]),_0x37b9dd);var _0x10594c=[];var _0x1a3fca=squel[_0xc139('0x44')]()[_0xc139('0x45')]('id')[_0xc139('0x45')](_0xc139('0x2f'))[_0xc139('0x45')](_0xc139('0x46'))[_0xc139('0x47')]('tools_tags');var _0x5c6bb9=squel[_0xc139('0x44')]()[_0xc139('0x45')]('u.id')[_0xc139('0x45')](_0xc139('0x48'))[_0xc139('0x45')](_0xc139('0x49'))[_0xc139('0x47')](_0xc139('0x4a'),'ui')['left_join'](_0xc139('0x4b'),'u',_0xc139('0x4c'));var _0x36ff41=squel['select']()[_0xc139('0x47')]('openchannel_interactions','i')[_0xc139('0x4d')](_0xc139('0x4e'),'c',_0xc139('0x4f'))[_0xc139('0x4d')](_0xc139('0x4b'),'o','o.id\x20=\x20i.UserId')[_0xc139('0x4d')](_0xc139('0x50'),'a',_0xc139('0x51'))[_0xc139('0x4d')](_0xc139('0x52'),'me',_0xc139('0x53'))[_0xc139('0x4d')]('openchannel_interaction_has_tags','it',_0xc139('0x54'))[_0xc139('0x4d')](_0xc139('0x55'),'t',_0xc139('0x56'));var _0x54bd8a=squel[_0xc139('0x57')]();var _0x44304e=[];var _0x63f7d8=squel['expr']();var _0x16c039;if(_0x4ba559['query'][_0xc139('0x58')]){_0x16c039=as[_0xc139('0x59')](_0x4ba559[_0xc139('0x39')][_0xc139('0x58')]);var _0x11374b=_0x16c039[_0xc139('0x5a')];for(var _0x50b6ff=0x0;_0x50b6ff<_0x16c039['conditions'][_0xc139('0x3f')];_0x50b6ff++){var _0x120a33=_0x16c039[_0xc139('0x5b')][_0x50b6ff];var _0x30a554='i';var _0x1c6577=_['find'](_0x37b9dd,[_0xc139('0x2f'),_0x120a33['field']]);if(!_0x1c6577){switch(_0x120a33[_0xc139('0x45')]){case _0xc139('0x5c'):if(_0x120a33['value']==0x1){_0x36ff41[_0xc139('0x5d')]('`'+_0x120a33[_0xc139('0x45')]+'`\x20=\x200');}else{_0x36ff41['having']('`'+_0x120a33['field']+_0xc139('0x5e'));}break;case _0xc139('0x5f'):if(_0x120a33[_0xc139('0x60')]==='$substring'){if(_0x120a33[_0xc139('0x61')][_0xc139('0x62')]('\x20')[_0xc139('0x3f')]>0x1){_0x54bd8a[_0x11374b](_0xc139('0x63'),qs[_0xc139('0x64')](_0x120a33[_0xc139('0x61')]),null);}else{var _0x143dd3='%'+_0x120a33[_0xc139('0x61')]+'%';_0x54bd8a[_0x11374b](_0xc139('0x65'),_0x143dd3,_0x143dd3,_0x143dd3);}}else{_0x1c6577=_[_0xc139('0x66')](_0x37b9dd,[_0xc139('0x2f'),_0xc139('0x67')]);_0x120a33[_0xc139('0x45')]=_0xc139('0x67');_0x2e1011=as[_0xc139('0x68')](_0x30a554,_0x1c6577['type'],_0x120a33);_0x54bd8a[_0x11374b](_0x2e1011[_0xc139('0x69')],_0x2e1011['value'][_0xc139('0x6a')],_0x2e1011[_0xc139('0x61')][_0xc139('0x2c')]);}break;case'Tag':var _0x3ecbb1=_0x120a33[_0xc139('0x61')][_0xc139('0x62')](',')[_0xc139('0x30')](function(_0x2deb57){return Number(_0x2deb57);});_0x3ecbb1['forEach'](function(_0x39cec1){_0x63f7d8['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x39cec1+',%');});_0x44304e=_[_0xc139('0x6b')](_0x44304e,_0x3ecbb1);break;case'User':if(_0x120a33[_0xc139('0x60')]===_0xc139('0x6c')){_0x54bd8a[_0x11374b](_0xc139('0x6d'),'%'+_0x120a33[_0xc139('0x61')]+'%',null);}else{_0x1c6577=_[_0xc139('0x66')](_0x37b9dd,['name',_0xc139('0x6e')]);_0x120a33[_0xc139('0x45')]=_0xc139('0x6e');_0x2e1011=as[_0xc139('0x68')](_0x30a554,_0x1c6577['type'],_0x120a33);_0x54bd8a[_0x11374b](_0x2e1011[_0xc139('0x69')],_0x2e1011[_0xc139('0x61')][_0xc139('0x6a')],_0x2e1011[_0xc139('0x61')][_0xc139('0x2c')]);}break;case _0xc139('0x6f'):_0x2e1011=as[_0xc139('0x68')]('me',null,_0x120a33);_0x54bd8a[_0x11374b](_0x2e1011[_0xc139('0x69')],_0x2e1011[_0xc139('0x61')][_0xc139('0x6a')],_0x2e1011[_0xc139('0x61')][_0xc139('0x2c')]);break;}}else{var _0x2e1011=as[_0xc139('0x68')](_0x30a554,_0x1c6577[_0xc139('0x70')],_0x120a33);_0x54bd8a[_0x11374b](_0x2e1011[_0xc139('0x69')],_0x2e1011[_0xc139('0x61')][_0xc139('0x6a')],_0x2e1011['value'][_0xc139('0x2c')]);}}}else{var _0x2cacbf=_(_0x4ba559[_0xc139('0x39')])['keys']()['map'](function(_0x1cda97){return _['some'](_0x37b9dd,[_0xc139('0x2f'),_0x1cda97])?_0x1cda97:undefined;})[_0xc139('0x71')]()[_0xc139('0x61')]();if(!_[_0xc139('0x72')](_0x2cacbf)){_0x2cacbf[_0xc139('0x34')](function(_0x5a7a4e){if(_0x5a7a4e===_0xc139('0x73')){_0x36ff41[_0xc139('0x42')](_0xc139('0x74'),[][_0xc139('0x75')](_0x4ba559['query'][_0x5a7a4e]));}else if(_0x5a7a4e===_0xc139('0x76')){var _0xf3e75a=JSON['parse'](_0x4ba559[_0xc139('0x39')][_0x5a7a4e])[_0xc139('0x77')];var _0x5c7bf3=JSON[_0xc139('0x78')](_0x4ba559[_0xc139('0x39')][_0x5a7a4e])['$lte'];_0x36ff41[_0xc139('0x42')](_0xc139('0x79'),_0xf3e75a,_0x5c7bf3);}else{if(_0x4ba559[_0xc139('0x39')][_0x5a7a4e]===_0xc139('0x7a')){_0x36ff41[_0xc139('0x42')]('i.'+_0x5a7a4e+'\x20IS\x20NULL');}else{_0x36ff41[_0xc139('0x42')]('i.'+_0x5a7a4e+_0xc139('0x7b'),_0x4ba559[_0xc139('0x39')][_0x5a7a4e]);}}});}if(_0x4ba559[_0xc139('0x39')]['read']){if(_0x4ba559[_0xc139('0x39')][_0xc139('0x7c')]==0x1){_0x36ff41[_0xc139('0x5d')](_0xc139('0x7d'));}else{_0x36ff41[_0xc139('0x5d')]('`unreadMessages`\x20>\x200');}}if(_0x4ba559['query'][_0xc139('0x7e')]){_0x44304e=_[_0xc139('0x7f')](_0x4ba559['query'][_0xc139('0x7e')])?_0x4ba559[_0xc139('0x39')][_0xc139('0x7e')]:new Array(_0x4ba559[_0xc139('0x39')]['tag']);_0x44304e['forEach'](function(_0x4c0016){_0x63f7d8['or'](_0xc139('0x80'),'%,'+_0x4c0016+',%');});}if(_0x4ba559['query']['filter']){var _0x5dbfab=_0x4ba559['query']['filter'][_0xc139('0x81')]('\x5c','\x5c\x5c')[_0xc139('0x81')](/'/g,'\x27\x27');if(qs['isNumeric'](_0x5dbfab)){_0x54bd8a['or'](_0xc139('0x82'),_0x5dbfab+'%');}else{_0x54bd8a['or'](_0xc139('0x83'),qs[_0xc139('0x64')](_0x5dbfab))['or'](_0xc139('0x84'),_0x5dbfab+'%')['or']('CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?',_0x5dbfab+'%');}}}_0x36ff41[_0xc139('0x42')](_0x54bd8a);_0x36ff41[_0xc139('0x85')](_0xc139('0x86'));var _0x35308a={'type':db['Sequelize'][_0xc139('0x87')][_0xc139('0x88')],'raw':!![]};var _0x566bd=_0x36ff41[_0xc139('0x89')]();_0x566bd[_0xc139('0x45')]('i.id');_0x566bd[_0xc139('0x45')](_0xc139('0x8a'),_0xc139('0x5c'));if(_0x2a1cc4[_0xc139('0x8b')]){_0x2a1cc4[_0xc139('0x8b')][_0xc139('0x34')](function(_0x3e9b22){var _0x4896bf=_0x3e9b22[0x0]===_0xc139('0x8c')?_0x3e9b22[0x0]:'i.'+_0x3e9b22[0x0];_0x36ff41[_0xc139('0x8b')](_0x4896bf,_0x3e9b22[0x1]===_0xc139('0x8d')?![]:!![]);});}if(!_[_0xc139('0x72')](_0x44304e)){_0x36ff41['having'](_0x63f7d8);_0x566bd['where']('t.id\x20IN\x20?',_0x44304e);}BPromise['resolve']()[_0xc139('0x2a')](function(){if(!_0x16c039){if(_0x4ba559[_0xc139('0x39')][_0xc139('0x73')])return;_0x566bd[_0xc139('0x42')](_0xc139('0x8e'));_0x36ff41[_0xc139('0x42')](_0xc139('0x8e'));return;}if(_0x4ba559[_0xc139('0x8f')][_0xc139('0x90')]!==_0xc139('0x91'))return;return _0x4ba559[_0xc139('0x8f')][_0xc139('0x92')]({'attributes':['id'],'raw':!![]})[_0xc139('0x2a')](function(_0x491a21){if(_[_0xc139('0x72')](_0x491a21)){_0x566bd[_0xc139('0x42')](_0xc139('0x93'));_0x36ff41[_0xc139('0x42')](_0xc139('0x93'));}else{_0x566bd[_0xc139('0x42')](_0xc139('0x74'),_[_0xc139('0x30')](_0x491a21,'id'));_0x36ff41[_0xc139('0x42')](_0xc139('0x74'),_[_0xc139('0x30')](_0x491a21,'id'));}});})[_0xc139('0x2a')](function(){if(_0x4ba559[_0xc139('0x8f')]['role']==='agent'&&!_0x16c039&&!_0x4ba559[_0xc139('0x39')][_0xc139('0x73')])return[];return db[_0xc139('0x94')]['query'](_0x566bd['toString'](),_0x35308a);})[_0xc139('0x2a')](function(_0x5adfda){_0x1567d4['count']=_0x5adfda['length'];if(_0x1567d4[_0xc139('0x24')]===0x0)return[];return db[_0xc139('0x94')][_0xc139('0x39')](_0x1a3fca['toString'](),_0x35308a)[_0xc139('0x2a')](function(_0x41863b){_0x10594c=_['keyBy'](_0x41863b,'id');_0x35308a=_[_0xc139('0x95')](_0x35308a,{'model':db[_0xc139('0x96')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x4ba559['query'][_0xc139('0x3e')]){_0x2a1cc4[_0xc139('0x3d')]['forEach'](function(_0x896ae0){_0x36ff41[_0xc139('0x45')]('i.'+_0x896ae0);});}else{_0x36ff41[_0xc139('0x45')](_0xc139('0x8a'),_0xc139('0x5c'));_0x36ff41[_0xc139('0x45')](_0xc139('0x97'),_0xc139('0x98'));_0x36ff41['field'](_0xc139('0x99'),'Account.mandatoryDisposition');_0x36ff41[_0xc139('0x45')](_0xc139('0x9a'),_0xc139('0x8c'));_0x36ff41[_0xc139('0x45')](_0xc139('0x9b'));_0x36ff41[_0xc139('0x45')](_0xc139('0x9c'),_0xc139('0x9d'));_0x36ff41[_0xc139('0x45')](_0xc139('0x9e'),_0xc139('0x9f'));_0x36ff41['field'](_0xc139('0xa0'),_0xc139('0xa1'));_0x36ff41['field'](_0xc139('0xa2'),_0xc139('0xa3'));_0x36ff41[_0xc139('0x45')](_0xc139('0xa4'),_0xc139('0xa5'));_0x36ff41[_0xc139('0x45')](_0xc139('0xa6'),_0xc139('0xa7'));_0x36ff41[_0xc139('0x45')](_0xc139('0xa8'),'Owner.fullname');_0x36ff41[_0xc139('0x45')](_0xc139('0xa9'),_0xc139('0xaa'));_0x36ff41[_0xc139('0x45')](_0xc139('0xab'),_0xc139('0x32'));}if(_0x2a1cc4['limit'])_0x36ff41[_0xc139('0x23')](_0x2a1cc4[_0xc139('0x23')]);if(_0x2a1cc4[_0xc139('0x21')])_0x36ff41[_0xc139('0x21')](_0x2a1cc4[_0xc139('0x21')]);return db[_0xc139('0x94')]['query'](_0x36ff41[_0xc139('0xac')](),_0x35308a);})['then'](function(_0x46df53){if(_0x46df53[_0xc139('0x3f')]>0x0)_0x5c6bb9[_0xc139('0x42')](_0xc139('0xad'),_[_0xc139('0x30')](_0x46df53,'id'));return db['sequelize'][_0xc139('0x39')](_0x5c6bb9['toString'](),_0x35308a)['then'](function(_0x4362be){var _0x4e3523=_[_0xc139('0xae')](_0x4362be,_0xc139('0xaf'));var _0x5f4b2e=[];_0x46df53[_0xc139('0x34')](function(_0x2b58bf){_0x5f4b2e[_0xc139('0x35')](updateOpenchannelInteraction(_0x2b58bf,_0x10594c,_0x4e3523));});return BPromise[_0xc139('0xb0')](_0x5f4b2e);});});})[_0xc139('0x2a')](function(_0x493756){_0x1567d4['rows']=_0x493756;return _0x1567d4;})[_0xc139('0x2a')](respondWithFilteredResult(_0x3c01be,_0x2a1cc4))['catch'](handleError(_0x3c01be,null));};exports[_0xc139('0xb1')]=function(_0x4d1909,_0x4decb4){var _0x542318={};if(_0x4d1909[_0xc139('0x39')][_0xc139('0x70')]&&_0x4d1909[_0xc139('0x39')][_0xc139('0x70')]==='from'){_0x542318[_0xc139('0x47')]=_0x4d1909[_0xc139('0xb2')]['id'];}else{_0x542318['id']=_0x4d1909[_0xc139('0xb2')]['id'];}var _0x232638={'raw':![],'where':_0x542318},_0x5eb122={};_0x5eb122[_0xc139('0x38')]=_[_0xc139('0x3a')](db['OpenchannelInteraction']['rawAttributes']);_0x5eb122[_0xc139('0x39')]=_['keys'](_0x4d1909['query']);_0x5eb122[_0xc139('0x3b')]=_[_0xc139('0x3c')](_0x5eb122['model'],_0x5eb122[_0xc139('0x39')]);_0x232638[_0xc139('0x3d')]=_['intersection'](_0x5eb122[_0xc139('0x38')],qs[_0xc139('0x3e')](_0x4d1909[_0xc139('0x39')]['fields']));_0x232638[_0xc139('0x3d')]=_0x232638[_0xc139('0x3d')]['length']?_0x232638[_0xc139('0x3d')]:_0x5eb122[_0xc139('0x38')];if(_0x4d1909[_0xc139('0x39')]['includeAll']){_0x232638[_0xc139('0xb3')]=[{'all':!![]}];}_0x232638=_['merge']({},_0x232638,_0x4d1909[_0xc139('0xb4')]);return db[_0xc139('0x96')][_0xc139('0x66')](_0x232638)['then'](handleEntityNotFound(_0x4decb4,null))[_0xc139('0x2a')](respondWithResult(_0x4decb4,null))[_0xc139('0xb5')](handleError(_0x4decb4,null));};exports[_0xc139('0xb6')]=function(_0x3fef66,_0x53101f){return db[_0xc139('0x96')]['create'](_0x3fef66['body'],{})[_0xc139('0x2a')](respondWithResult(_0x53101f,0xc9))[_0xc139('0xb5')](handleError(_0x53101f,null));};exports[_0xc139('0x29')]=function(_0x12b694,_0x49068c){if(_0x12b694['body']['id']){delete _0x12b694[_0xc139('0x6f')]['id'];}return db['OpenchannelInteraction']['find']({'where':{'id':_0x12b694[_0xc139('0xb2')]['id']}})[_0xc139('0x2a')](handleEntityNotFound(_0x49068c,null))[_0xc139('0x2a')](saveUpdates(_0x12b694[_0xc139('0x6f')],null))[_0xc139('0x2a')](respondWithResult(_0x49068c,null))[_0xc139('0xb5')](handleError(_0x49068c,null));};exports[_0xc139('0x2b')]=function(_0x1a4a5a,_0x1fcc10){return db[_0xc139('0x96')][_0xc139('0x66')]({'where':{'id':_0x1a4a5a[_0xc139('0xb2')]['id']}})[_0xc139('0x2a')](handleEntityNotFound(_0x1fcc10,null))['then'](removeEntity(_0x1fcc10,null))[_0xc139('0xb5')](handleError(_0x1fcc10,null));};exports['describe']=function(_0x3c64c1,_0x40ae82){return db['OpenchannelInteraction'][_0xc139('0xb7')]()['then'](respondWithResult(_0x40ae82,null))[_0xc139('0xb5')](handleError(_0x40ae82,null));};exports[_0xc139('0xb8')]=function(_0x175823,_0x2db44d,_0x1c62bb){return db[_0xc139('0xb9')]['find']({'where':{'id':_0x175823[_0xc139('0xb2')]['id']}})[_0xc139('0x2a')](handleEntityNotFound(_0x2db44d,null))['then'](function(_0x3605c1){if(_0x3605c1){return _0x3605c1[_0xc139('0xb8')](_0x175823[_0xc139('0x6f')]['ids'],_[_0xc139('0xba')](_0x175823[_0xc139('0x6f')],[_0xc139('0xbb'),'id'])||{});}})[_0xc139('0x2a')](respondWithResult(_0x2db44d,null))[_0xc139('0xb5')](handleError(_0x2db44d,null));};exports[_0xc139('0xbc')]=function(_0x12e5da,_0x38e241,_0x16b801){var _0x488ad7={'raw':![],'where':{}};var _0xe1ce74={};var _0x3f8ff7={'count':0x0,'rows':[]};return db[_0xc139('0x96')][_0xc139('0xbd')]({'where':{'id':_0x12e5da[_0xc139('0xb2')]['id']}})[_0xc139('0x2a')](handleEntityNotFound(_0x38e241,null))[_0xc139('0x2a')](function(_0x3c370e){if(_0x3c370e){_0xe1ce74['model']=_[_0xc139('0x3a')](db[_0xc139('0xb9')][_0xc139('0x36')]);_0xe1ce74[_0xc139('0x39')]=_[_0xc139('0x3a')](_0x12e5da['query']);_0xe1ce74['filters']=_['intersection'](_0xe1ce74[_0xc139('0x38')],_0xe1ce74[_0xc139('0x39')]);_0x488ad7[_0xc139('0x3d')]=_[_0xc139('0x3c')](_0xe1ce74[_0xc139('0x38')],qs[_0xc139('0x3e')](_0x12e5da[_0xc139('0x39')][_0xc139('0x3e')]));_0x488ad7[_0xc139('0x3d')]=_0x488ad7[_0xc139('0x3d')][_0xc139('0x3f')]?_0x488ad7[_0xc139('0x3d')]:_0xe1ce74['model'];if(!_0x12e5da[_0xc139('0x39')]['hasOwnProperty'](_0xc139('0xbe'))){_0x488ad7['limit']=qs[_0xc139('0x23')](_0x12e5da[_0xc139('0x39')][_0xc139('0x23')]);_0x488ad7['offset']=qs[_0xc139('0x21')](_0x12e5da[_0xc139('0x39')]['offset']);}_0x488ad7['order']=qs[_0xc139('0x41')](_0x12e5da[_0xc139('0x39')]['sort']);_0x488ad7[_0xc139('0x42')]=qs[_0xc139('0x3b')](_[_0xc139('0x43')](_0x12e5da[_0xc139('0x39')],_0xe1ce74[_0xc139('0x3b')]));_0x488ad7[_0xc139('0x42')]['OpenchannelInteractionId']=_0x3c370e['id'];if(_0x12e5da[_0xc139('0x39')][_0xc139('0xbf')]){_0x488ad7[_0xc139('0x42')]=_[_0xc139('0x95')](_0x488ad7['where'],{'$or':_[_0xc139('0x30')](_0x488ad7['attributes'],function(_0x89e9c0){var _0x22f104={};_0x22f104[_0x89e9c0]={'$like':'%'+_0x12e5da[_0xc139('0x39')]['filter']+'%'};return _0x22f104;})});}if(_0x12e5da['query'][_0xc139('0x77')]){var _0x229dab=_0x12e5da[_0xc139('0x39')][_0xc139('0x77')]['split'](',');var _0x3f4406={};_0x3f4406[_0x229dab[0x0]]={'$gte':moment(_0x229dab[0x1])[_0xc139('0xc0')](_0xc139('0xc1'))};_0x488ad7[_0xc139('0x42')]=_[_0xc139('0x95')](_0x488ad7[_0xc139('0x42')],_0x3f4406);}_0x488ad7=_[_0xc139('0x95')]({},_0x488ad7,_0x12e5da[_0xc139('0xb4')]);return db[_0xc139('0xb9')]['count']({'where':_0x488ad7[_0xc139('0x42')]})[_0xc139('0x2a')](function(_0x48a84c){_0x3f8ff7[_0xc139('0x24')]=_0x48a84c;if(_0x12e5da['query']['includeAll']){_0x488ad7[_0xc139('0xb3')]=[{'all':!![]}];}return db['OpenchannelMessage'][_0xc139('0xc2')](_0x488ad7);})[_0xc139('0x2a')](function(_0x1bf280){_0x3f8ff7[_0xc139('0xc3')]=_0x1bf280;return _0x3f8ff7;});}})[_0xc139('0x2a')](respondWithFilteredResult(_0x38e241,_0x488ad7))[_0xc139('0xb5')](handleError(_0x38e241,null));};exports['addTags']=function(_0x4b5e92,_0x3f9ddc,_0x21922a){return db[_0xc139('0x96')][_0xc139('0x66')]({'where':{'id':_0x4b5e92[_0xc139('0xb2')]['id']}})['then'](handleEntityNotFound(_0x3f9ddc,null))[_0xc139('0x2a')](function(_0x194756){if(_0x194756){return _0x194756[_0xc139('0xc4')](_0x4b5e92['body'][_0xc139('0xbb')],_[_0xc139('0xba')](_0x4b5e92['body'],['ids','id'])||{})[_0xc139('0xc5')](function(){return db[_0xc139('0xc6')][_0xc139('0xc2')]({'attributes':['id',_0xc139('0x2f'),_0xc139('0x46')],'where':{'id':_0x4b5e92['body'][_0xc139('0xbb')]}});})['then'](function(_0x51904a){socket[_0xc139('0xc7')](_0xc139('0xc8'),{'id':Number(_0x4b5e92[_0xc139('0xb2')]['id']),'tags':_0x51904a||[]});return{'id':Number(_0x4b5e92[_0xc139('0xb2')]['id']),'tags':_0x51904a||[]};});}})[_0xc139('0x2a')](respondWithResult(_0x3f9ddc,null))[_0xc139('0xb5')](handleError(_0x3f9ddc,null));};exports[_0xc139('0xc9')]=function(_0x53456e,_0xd6c506,_0x35d328){return db[_0xc139('0x96')][_0xc139('0x66')]({'where':{'id':_0x53456e[_0xc139('0xb2')]['id']}})[_0xc139('0x2a')](handleEntityNotFound(_0xd6c506,null))[_0xc139('0x2a')](function(_0x24fae8){if(_0x24fae8){return _0x24fae8[_0xc139('0xc9')](_0x53456e[_0xc139('0x39')][_0xc139('0xbb')]);}})[_0xc139('0x2a')](respondWithStatusCode(_0xd6c506,null))[_0xc139('0xb5')](handleError(_0xd6c506,null));};exports['download']=function(_0x573e42,_0x64d32e){var _0x2c3554=moment()[_0xc139('0xca')]()[_0xc139('0xac')]();var _0x4099ea=path['join'](config['root'],_0xc139('0xcb'),'files',_0xc139('0xcc'));var _0x4a65f3=path[_0xc139('0xcd')](config[_0xc139('0xce')],_0xc139('0xcb'),_0xc139('0xcf'),_0xc139('0xd0'));var _0x25b826=path[_0xc139('0xcd')](_0x4099ea,_0x2c3554);var _0x408756=util['format'](_0xc139('0xd1'),_0x573e42['params']['id'],_0x2c3554);var _0x2bbf1c=path[_0xc139('0xcd')](_0x4099ea,_0x408756);var _0x4a16ff=[];_0x4a16ff[_0xc139('0x35')]({'model':db[_0xc139('0xd2')],'as':_0xc139('0xd2'),'attributes':['id',_0xc139('0x31')],'raw':!![]});_0x4a16ff[_0xc139('0x35')]({'model':db[_0xc139('0xd3')],'as':_0xc139('0x5f'),'attributes':['id',_0xc139('0xd4'),_0xc139('0xd5')],'raw':!![]});if(_0x573e42['query'][_0xc139('0xd0')]){_0x4a16ff[_0xc139('0x35')]({'model':db[_0xc139('0xd6')],'as':'Attachment','raw':!![]});}var _0x58186e=[{'model':db[_0xc139('0xb9')],'as':_0xc139('0xd7'),'attributes':['id',_0xc139('0x6f'),'createdAt',_0xc139('0xd8'),_0xc139('0xd9'),_0xc139('0x7c')],'include':_0x4a16ff}];_0x58186e['push']({'model':db[_0xc139('0xda')],'as':_0xc139('0xdb'),'attributes':['id',_0xc139('0x2f')]});_0x58186e[_0xc139('0x35')]({'model':db[_0xc139('0xd2')],'as':'Owner','attributes':['id',_0xc139('0x31')]});return db[_0xc139('0x96')]['find']({'where':{'id':_0x573e42[_0xc139('0xb2')]['id']},'include':_0x58186e})[_0xc139('0x2a')](handleEntityNotFound(_0x64d32e,null))[_0xc139('0x2a')](function(_0x28187d){if(_0x28187d){var _0x975e90=_0x28187d[_0xc139('0xdc')]({'plain':!![]});fs['mkdirSync'](_0x25b826);var _0x326b5f={'channel':_0xc139('0xdd'),'account':_0x975e90[_0xc139('0xdb')]['name'],'agent':_0x975e90['Owner']?_0x975e90[_0xc139('0xde')]['fullname']:_0xc139('0xdf'),'createdAt':moment(_0x975e90['createdAt'])['format'](_0xc139('0xc1'))[_0xc139('0xac')](),'closedAt':_0x975e90[_0xc139('0xe0')]?moment(_0x975e90['closedAt'])[_0xc139('0xc0')]('YYYY-MM-DD\x20HH:mm:ss')[_0xc139('0xac')]():'','disposition':_0x975e90[_0xc139('0xe1')],'visibility':_0x975e90['threadId']?'Public':_0xc139('0xe2'),'messages':_(_0x975e90[_0xc139('0xd7')])[_0xc139('0xbf')]({'secret':![]})[_0xc139('0x30')](function(_0x3cf607){if(_0x3cf607[_0xc139('0xd6')]){var _0x9ac9dd=path[_0xc139('0xcd')](_0x4a65f3,_0x3cf607[_0xc139('0xd6')]['basename']);if(fs[_0xc139('0xe3')](_0x9ac9dd)){fs[_0xc139('0xe4')](_0x9ac9dd)['pipe'](fs[_0xc139('0xe5')](path[_0xc139('0xcd')](_0x25b826,_0x3cf607[_0xc139('0xd6')][_0xc139('0xe6')])));}}return{'date':moment(_0x3cf607['createdAt'])[_0xc139('0xc0')](_0xc139('0xc1'))['toString'](),'sender':_0x3cf607[_0xc139('0xd8')]===_0xc139('0xe7')?_0x3cf607['User']?_0x3cf607['User']['fullname']:'System':_0x3cf607[_0xc139('0x5f')]['firstName']+(_0x3cf607[_0xc139('0x5f')][_0xc139('0xd5')]?'\x20'+_0x3cf607[_0xc139('0x5f')][_0xc139('0xd5')]:''),'body':_0x3cf607[_0xc139('0xd6')]?_0x3cf607[_0xc139('0xd6')][_0xc139('0xe6')]:_0x3cf607[_0xc139('0x6f')],'direction':_0x3cf607[_0xc139('0xd8')]===_0xc139('0xe7')?'A':'C','secret':_0x3cf607[_0xc139('0xd9')],'read':_0x3cf607[_0xc139('0x7c')],'attachment':_0x3cf607[_0xc139('0xd6')]};})[_0xc139('0x61')]()};return ejs[_0xc139('0xe8')](path[_0xc139('0xcd')](config[_0xc139('0xce')],_0xc139('0xcb'),'views','downloadInteraction.ejs'),{'interaction':_0x326b5f})['then'](function(_0x237564){var _0x4e121e=path['join'](_0x25b826,'transcript-'+_0x975e90['id']+'-'+_0x2c3554+_0xc139('0xe9'));var _0xf70fe9={'path':_0x4e121e,'channel':_0xc139('0xdd'),'interactionId':_0x975e90['id']};return pdf['createPdfFromHTML'](_0x237564,_0xf70fe9);})[_0xc139('0x2a')](function(){return new BPromise(function(_0x2d6e1e,_0x5471b5){zipdir(_0x25b826,{'saveTo':_0x2bbf1c},function(_0x16a6f3,_0x52e833){if(_0x16a6f3)return _0x5471b5(_0x16a6f3);return _0x2d6e1e(_0x52e833);});})[_0xc139('0x2a')](function(){return new BPromise(function(_0x5dbeb6,_0x17643e){rimraf(_0x25b826,function(_0x42755c){if(_0x42755c)_0x17643e(_0x42755c);return _0x5dbeb6();});});})[_0xc139('0x2a')](function(){return _0x64d32e[_0xc139('0xea')](_0x2bbf1c,_0x408756,function(_0x21bddd){if(_0x21bddd){console[_0xc139('0xeb')]('err',_0x21bddd);}else{fs[_0xc139('0xec')](_0x2bbf1c);}});});});}else{return _0x64d32e[_0xc139('0x1e')](0xc8);}})[_0xc139('0xb5')](handleError(_0x64d32e,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6e52=['findAll','setDataValue','unreadMessages','emit','catch','hook','events','../../mysqldb','OpenchannelInteraction','OpenchannelMessage','setMaxListeners','save','update','remove','getUsers','then','Users','map'];(function(_0x20ca78,_0xe6bf85){var _0x191710=function(_0x2abd7e){while(--_0x2abd7e){_0x20ca78['push'](_0x20ca78['shift']());}};_0x191710(++_0xe6bf85);}(_0x6e52,0x180));var _0x26e5=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x6e52[_0x321bb2];return _0x9c12ed;};'use strict';var EventEmitter=require(_0x26e5('0x0'));var OpenchannelInteraction=require(_0x26e5('0x1'))['db'][_0x26e5('0x2')];var OpenchannelMessage=require(_0x26e5('0x1'))['db'][_0x26e5('0x3')];var OpenchannelInteractionEvents=new EventEmitter();OpenchannelInteractionEvents[_0x26e5('0x4')](0x0);var events={'afterCreate':_0x26e5('0x5'),'afterUpdate':_0x26e5('0x6'),'afterDestroy':_0x26e5('0x7')};function emitEvent(_0x1c2309){return function(_0x44b655,_0x4dbd74,_0x385f69){_0x44b655[_0x26e5('0x8')]({'attributes':['id'],'raw':!![]})[_0x26e5('0x9')](function(_0x55decc){_0x44b655['setDataValue'](_0x26e5('0xa'),_0x55decc[_0x26e5('0xb')](function(_0x2b046a){return{'id':_0x2b046a['id']};}));return OpenchannelMessage[_0x26e5('0xc')]({'where':{'OpenchannelInteractionId':_0x44b655['id'],'direction':'in','read':![]},'raw':!![]});})[_0x26e5('0x9')](function(_0x4febf8){_0x44b655[_0x26e5('0xd')](_0x26e5('0xe'),_0x4febf8['length']);OpenchannelInteractionEvents[_0x26e5('0xf')](_0x1c2309+':'+_0x44b655['id'],_0x44b655);OpenchannelInteractionEvents[_0x26e5('0xf')](_0x1c2309,_0x44b655);_0x385f69(null);})[_0x26e5('0x10')](_0x385f69(null));};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];OpenchannelInteraction[_0x26e5('0x11')](e,emitEvent(event));}}module['exports']=OpenchannelInteractionEvents;
\ No newline at end of file
+var _0xaf04=['events','../../mysqldb','OpenchannelMessage','setMaxListeners','save','update','remove','getUsers','then','setDataValue','map','unreadMessages','length','emit','catch','hasOwnProperty','hook'];(function(_0x122ef9,_0x451d2a){var _0x42fba0=function(_0x17c9d3){while(--_0x17c9d3){_0x122ef9['push'](_0x122ef9['shift']());}};_0x42fba0(++_0x451d2a);}(_0xaf04,0x187));var _0x4af0=function(_0x36bdda,_0x10e4ff){_0x36bdda=_0x36bdda-0x0;var _0x2347f8=_0xaf04[_0x36bdda];return _0x2347f8;};'use strict';var EventEmitter=require(_0x4af0('0x0'));var OpenchannelInteraction=require('../../mysqldb')['db']['OpenchannelInteraction'];var OpenchannelMessage=require(_0x4af0('0x1'))['db'][_0x4af0('0x2')];var OpenchannelInteractionEvents=new EventEmitter();OpenchannelInteractionEvents[_0x4af0('0x3')](0x0);var events={'afterCreate':_0x4af0('0x4'),'afterUpdate':_0x4af0('0x5'),'afterDestroy':_0x4af0('0x6')};function emitEvent(_0x30dc2b){return function(_0x126764,_0x3d6896,_0x34ce35){_0x126764[_0x4af0('0x7')]({'attributes':['id'],'raw':!![]})[_0x4af0('0x8')](function(_0x15d8d4){_0x126764[_0x4af0('0x9')]('Users',_0x15d8d4[_0x4af0('0xa')](function(_0x2af8bd){return{'id':_0x2af8bd['id']};}));return OpenchannelMessage['findAll']({'where':{'OpenchannelInteractionId':_0x126764['id'],'direction':'in','read':![]},'raw':!![]});})[_0x4af0('0x8')](function(_0x9aead){_0x126764[_0x4af0('0x9')](_0x4af0('0xb'),_0x9aead[_0x4af0('0xc')]);OpenchannelInteractionEvents['emit'](_0x30dc2b+':'+_0x126764['id'],_0x126764);OpenchannelInteractionEvents[_0x4af0('0xd')](_0x30dc2b,_0x126764);_0x34ce35(null);})[_0x4af0('0xe')](_0x34ce35(null));};}for(var e in events){if(events[_0x4af0('0xf')](e)){var event=events[e];OpenchannelInteraction[_0x4af0('0x10')](e,emitEvent(event));}}module['exports']=OpenchannelInteractionEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7522=['moment','bluebird','request-promise','path','rimraf','../../config/environment','./openchannelInteraction.attributes','define','OpenchannelInteraction','openchannel_interactions','utf8mb4','changed','closed','closedAt','YYYY-MM-DD\x20HH:mm:ss','lodash','util','api'];(function(_0x5af1ce,_0x318f6e){var _0x4e7f4f=function(_0x4c4c90){while(--_0x4c4c90){_0x5af1ce['push'](_0x5af1ce['shift']());}};_0x4e7f4f(++_0x318f6e);}(_0x7522,0x12f));var _0x2752=function(_0x1b25fe,_0x5829cd){_0x1b25fe=_0x1b25fe-0x0;var _0xe5615e=_0x7522[_0x1b25fe];return _0xe5615e;};'use strict';var _=require(_0x2752('0x0'));var util=require(_0x2752('0x1'));var logger=require('../../config/logger')(_0x2752('0x2'));var moment=require(_0x2752('0x3'));var BPromise=require(_0x2752('0x4'));var rp=require(_0x2752('0x5'));var fs=require('fs');var path=require(_0x2752('0x6'));var rimraf=require(_0x2752('0x7'));var config=require(_0x2752('0x8'));var attributes=require(_0x2752('0x9'));module['exports']=function(_0x1b6616,_0x4f3fbb){return _0x1b6616[_0x2752('0xa')](_0x2752('0xb'),attributes,{'tableName':_0x2752('0xc'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x2752('0xd'),'collate':'utf8mb4_unicode_ci','hooks':{'beforeUpdate':function(_0x1e2ebb,_0x54c5f2,_0xcb7065){if(_0x1e2ebb[_0x2752('0xe')](_0x2752('0xf'))){_0x1e2ebb[_0x2752('0x10')]=moment()['format'](_0x2752('0x11'));}_0xcb7065(null,_0x1e2ebb);}}});};
\ No newline at end of file
+var _0xadfd=['../../config/environment','./openchannelInteraction.attributes','exports','define','OpenchannelInteraction','utf8mb4','utf8mb4_unicode_ci','changed','closed','closedAt','format','YYYY-MM-DD\x20HH:mm:ss','lodash','util','../../config/logger','api','moment','bluebird','rimraf'];(function(_0x22206a,_0x427496){var _0x38c2b3=function(_0x98a71a){while(--_0x98a71a){_0x22206a['push'](_0x22206a['shift']());}};_0x38c2b3(++_0x427496);}(_0xadfd,0xf0));var _0xdadf=function(_0x306a33,_0x1d8b8d){_0x306a33=_0x306a33-0x0;var _0x1220fa=_0xadfd[_0x306a33];return _0x1220fa;};'use strict';var _=require(_0xdadf('0x0'));var util=require(_0xdadf('0x1'));var logger=require(_0xdadf('0x2'))(_0xdadf('0x3'));var moment=require(_0xdadf('0x4'));var BPromise=require(_0xdadf('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0xdadf('0x6'));var config=require(_0xdadf('0x7'));var attributes=require(_0xdadf('0x8'));module[_0xdadf('0x9')]=function(_0x7b4ca6,_0x5e4a1e){return _0x7b4ca6[_0xdadf('0xa')](_0xdadf('0xb'),attributes,{'tableName':'openchannel_interactions','paranoid':![],'indexes':[],'timestamps':!![],'charset':_0xdadf('0xc'),'collate':_0xdadf('0xd'),'hooks':{'beforeUpdate':function(_0x15ed63,_0x402d3,_0x229c56){if(_0x15ed63[_0xdadf('0xe')](_0xdadf('0xf'))){_0x15ed63[_0xdadf('0x10')]=moment()[_0xdadf('0x11')](_0xdadf('0x12'));}_0x229c56(null,_0x15ed63);}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x59b2=['jayson/promise','client','http','redis','defaults','localhost','register','request','info','OpenchannelInteraction,\x20%s,\x20%s','debug','request\x20sent','error','code','message','result','catch','UpdateOpenchannelInteraction','OpenchannelInteraction','body','options','raw','where','attributes','limit','then','stringify','AddTagsToOpenchannelInteraction','find','ids','omit','spread','AddTags','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment'];(function(_0x170e1e,_0xd1b2d1){var _0x232244=function(_0x45d318){while(--_0x45d318){_0x170e1e['push'](_0x170e1e['shift']());}};_0x232244(++_0xd1b2d1);}(_0x59b2,0x75));var _0x259b=function(_0x1526e1,_0x5ed5a5){_0x1526e1=_0x1526e1-0x0;var _0x249a1e=_0x59b2[_0x1526e1];return _0x249a1e;};'use strict';var _=require(_0x259b('0x0'));var util=require(_0x259b('0x1'));var moment=require(_0x259b('0x2'));var BPromise=require(_0x259b('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x259b('0x4'));var db=require(_0x259b('0x5'))['db'];var utils=require(_0x259b('0x6'));var logger=require('../../config/logger')(_0x259b('0x7'));var config=require(_0x259b('0x8'));var jayson=require(_0x259b('0x9'));var client=jayson[_0x259b('0xa')][_0x259b('0xb')]({'port':0x232a});config[_0x259b('0xc')]=_[_0x259b('0xd')](config[_0x259b('0xc')],{'host':_0x259b('0xe'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x259b('0xc')]));require('./openchannelInteraction.socket')[_0x259b('0xf')](socket);function respondWithRpcPromise(_0x524bb0,_0x14d2ff,_0x33a8d9){return new BPromise(function(_0x2b5a52,_0x347d0b){return client[_0x259b('0x10')](_0x524bb0,_0x33a8d9)['then'](function(_0x459f23){logger[_0x259b('0x11')](_0x259b('0x12'),_0x14d2ff,'request\x20sent');logger[_0x259b('0x13')]('OpenchannelInteraction,\x20%s,\x20%s,\x20%s',_0x14d2ff,_0x259b('0x14'),JSON['stringify'](_0x459f23));if(_0x459f23['error']){if(_0x459f23[_0x259b('0x15')][_0x259b('0x16')]===0x1f4){logger['error'](_0x259b('0x12'),_0x14d2ff,_0x459f23[_0x259b('0x15')][_0x259b('0x17')]);return _0x347d0b(_0x459f23[_0x259b('0x15')][_0x259b('0x17')]);}logger['error'](_0x259b('0x12'),_0x14d2ff,_0x459f23[_0x259b('0x15')]['message']);return _0x2b5a52(_0x459f23[_0x259b('0x15')][_0x259b('0x17')]);}else{logger[_0x259b('0x11')]('OpenchannelInteraction,\x20%s,\x20%s',_0x14d2ff,'request\x20sent');_0x2b5a52(_0x459f23[_0x259b('0x18')][_0x259b('0x17')]);}})[_0x259b('0x19')](function(_0x5242de){logger['error']('OpenchannelInteraction,\x20%s,\x20%s',_0x14d2ff,_0x5242de);_0x347d0b(_0x5242de);});});}exports[_0x259b('0x1a')]=function(_0x3abee8){var _0x4523e9=this;return new Promise(function(_0x369df5,_0xb5d685){return db[_0x259b('0x1b')]['update'](_0x3abee8[_0x259b('0x1c')],{'raw':_0x3abee8[_0x259b('0x1d')]?_0x3abee8['options'][_0x259b('0x1e')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x3abee8[_0x259b('0x1d')]?_0x3abee8['options'][_0x259b('0x1f')]||null:null,'attributes':_0x3abee8[_0x259b('0x1d')]?_0x3abee8[_0x259b('0x1d')][_0x259b('0x20')]||null:null,'limit':_0x3abee8[_0x259b('0x1d')]?_0x3abee8[_0x259b('0x1d')][_0x259b('0x21')]||null:null})[_0x259b('0x22')](function(_0x55675b){logger[_0x259b('0x11')](_0x259b('0x1a'),_0x3abee8);logger[_0x259b('0x13')]('UpdateOpenchannelInteraction',_0x3abee8,JSON[_0x259b('0x23')](_0x55675b));_0x369df5(_0x55675b);})[_0x259b('0x19')](function(_0x178aeb){logger[_0x259b('0x15')](_0x259b('0x1a'),_0x178aeb['message'],_0x3abee8);_0xb5d685(_0x4523e9[_0x259b('0x15')](0x1f4,_0x178aeb[_0x259b('0x17')]));});});};exports[_0x259b('0x24')]=function(_0x4508cd){return new Promise(function(_0xa66ad5,_0x309240){return db['OpenchannelInteraction'][_0x259b('0x25')]({'where':_0x4508cd[_0x259b('0x1d')]?_0x4508cd[_0x259b('0x1d')][_0x259b('0x1f')]||null:null})[_0x259b('0x22')](function(_0x5649f8){if(_0x5649f8){return _0x5649f8['addTags'](_0x4508cd['body'][_0x259b('0x26')],_[_0x259b('0x27')](_0x4508cd[_0x259b('0x1c')],[_0x259b('0x26'),'id'])||{});}})[_0x259b('0x28')](function(_0x39b0d7){logger[_0x259b('0x11')](_0x259b('0x29'),_0x4508cd);logger['debug'](_0x259b('0x29'),_0x4508cd,JSON[_0x259b('0x23')](_0x39b0d7));_0xa66ad5(_0x39b0d7);})[_0x259b('0x19')](function(_0x320de2){logger[_0x259b('0x15')](_0x259b('0x29'),_0x320de2[_0x259b('0x17')],_0x4508cd);_0x309240(_this[_0x259b('0x15')](0x1f4,_0x320de2[_0x259b('0x17')]));});});};
\ No newline at end of file
+var _0xc233=['redis','localhost','socket.io-emitter','register','request','then','info','OpenchannelInteraction,\x20%s,\x20%s','request\x20sent','debug','OpenchannelInteraction,\x20%s,\x20%s,\x20%s','stringify','error','message','result','UpdateOpenchannelInteraction','OpenchannelInteraction','body','options','raw','where','attributes','limit','AddTagsToOpenchannelInteraction','find','addTags','ids','omit','spread','AddTags','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','http'];(function(_0x325451,_0x40e8dc){var _0x16eb16=function(_0xb6a195){while(--_0xb6a195){_0x325451['push'](_0x325451['shift']());}};_0x16eb16(++_0x40e8dc);}(_0xc233,0xbe));var _0x3c23=function(_0x1e3671,_0x9ae4fc){_0x1e3671=_0x1e3671-0x0;var _0x48d5f5=_0xc233[_0x1e3671];return _0x48d5f5;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x3c23('0x0'));var BPromise=require(_0x3c23('0x1'));var rs=require(_0x3c23('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x3c23('0x3'))['db'];var utils=require(_0x3c23('0x4'));var logger=require(_0x3c23('0x5'))(_0x3c23('0x6'));var config=require('../../config/environment');var jayson=require(_0x3c23('0x7'));var client=jayson[_0x3c23('0x8')][_0x3c23('0x9')]({'port':0x232a});config[_0x3c23('0xa')]=_['defaults'](config[_0x3c23('0xa')],{'host':_0x3c23('0xb'),'port':0x18eb});var socket=require(_0x3c23('0xc'))(new Redis(config['redis']));require('./openchannelInteraction.socket')[_0x3c23('0xd')](socket);function respondWithRpcPromise(_0x429858,_0x2534eb,_0x99d82a){return new BPromise(function(_0xa9037b,_0x6199cb){return client[_0x3c23('0xe')](_0x429858,_0x99d82a)[_0x3c23('0xf')](function(_0x115f1c){logger[_0x3c23('0x10')](_0x3c23('0x11'),_0x2534eb,_0x3c23('0x12'));logger[_0x3c23('0x13')](_0x3c23('0x14'),_0x2534eb,_0x3c23('0x12'),JSON[_0x3c23('0x15')](_0x115f1c));if(_0x115f1c['error']){if(_0x115f1c[_0x3c23('0x16')]['code']===0x1f4){logger[_0x3c23('0x16')](_0x3c23('0x11'),_0x2534eb,_0x115f1c[_0x3c23('0x16')][_0x3c23('0x17')]);return _0x6199cb(_0x115f1c[_0x3c23('0x16')][_0x3c23('0x17')]);}logger['error']('OpenchannelInteraction,\x20%s,\x20%s',_0x2534eb,_0x115f1c[_0x3c23('0x16')]['message']);return _0xa9037b(_0x115f1c['error'][_0x3c23('0x17')]);}else{logger[_0x3c23('0x10')]('OpenchannelInteraction,\x20%s,\x20%s',_0x2534eb,'request\x20sent');_0xa9037b(_0x115f1c[_0x3c23('0x18')]['message']);}})['catch'](function(_0x18ca0c){logger['error']('OpenchannelInteraction,\x20%s,\x20%s',_0x2534eb,_0x18ca0c);_0x6199cb(_0x18ca0c);});});}exports[_0x3c23('0x19')]=function(_0x3efede){var _0x516325=this;return new Promise(function(_0x3c5724,_0x5c842a){return db[_0x3c23('0x1a')]['update'](_0x3efede[_0x3c23('0x1b')],{'raw':_0x3efede[_0x3c23('0x1c')]?_0x3efede['options'][_0x3c23('0x1d')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x3efede[_0x3c23('0x1c')]?_0x3efede[_0x3c23('0x1c')][_0x3c23('0x1e')]||null:null,'attributes':_0x3efede[_0x3c23('0x1c')]?_0x3efede['options'][_0x3c23('0x1f')]||null:null,'limit':_0x3efede['options']?_0x3efede[_0x3c23('0x1c')][_0x3c23('0x20')]||null:null})[_0x3c23('0xf')](function(_0x4d41a6){logger[_0x3c23('0x10')]('UpdateOpenchannelInteraction',_0x3efede);logger[_0x3c23('0x13')](_0x3c23('0x19'),_0x3efede,JSON[_0x3c23('0x15')](_0x4d41a6));_0x3c5724(_0x4d41a6);})['catch'](function(_0xddd566){logger[_0x3c23('0x16')](_0x3c23('0x19'),_0xddd566[_0x3c23('0x17')],_0x3efede);_0x5c842a(_0x516325[_0x3c23('0x16')](0x1f4,_0xddd566[_0x3c23('0x17')]));});});};exports[_0x3c23('0x21')]=function(_0x5f5a5b){return new Promise(function(_0x46574c,_0x1a3181){return db[_0x3c23('0x1a')][_0x3c23('0x22')]({'where':_0x5f5a5b[_0x3c23('0x1c')]?_0x5f5a5b[_0x3c23('0x1c')][_0x3c23('0x1e')]||null:null})['then'](function(_0x27043e){if(_0x27043e){return _0x27043e[_0x3c23('0x23')](_0x5f5a5b[_0x3c23('0x1b')][_0x3c23('0x24')],_[_0x3c23('0x25')](_0x5f5a5b[_0x3c23('0x1b')],[_0x3c23('0x24'),'id'])||{});}})[_0x3c23('0x26')](function(_0x5f3739){logger['info'](_0x3c23('0x27'),_0x5f5a5b);logger[_0x3c23('0x13')](_0x3c23('0x27'),_0x5f5a5b,JSON[_0x3c23('0x15')](_0x5f3739));_0x46574c(_0x5f3739);})['catch'](function(_0x213035){logger['error'](_0x3c23('0x27'),_0x213035[_0x3c23('0x17')],_0x5f5a5b);_0x1a3181(_this[_0x3c23('0x16')](0x1f4,_0x213035[_0x3c23('0x17')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2c1c=['./openchannelInteraction.events','save','remove','update','emit','removeListener','register'];(function(_0x4f1e8d,_0x5cccc6){var _0x28d998=function(_0x3ac2f5){while(--_0x3ac2f5){_0x4f1e8d['push'](_0x4f1e8d['shift']());}};_0x28d998(++_0x5cccc6);}(_0x2c1c,0x1dc));var _0xc2c1=function(_0x485b5a,_0x2b289b){_0x485b5a=_0x485b5a-0x0;var _0xd2b34d=_0x2c1c[_0x485b5a];return _0xd2b34d;};'use strict';var OpenchannelInteractionEvents=require(_0xc2c1('0x0'));var events=[_0xc2c1('0x1'),_0xc2c1('0x2'),_0xc2c1('0x3')];function createListener(_0x375934,_0x46d163){return function(_0x422c0c){_0x46d163[_0xc2c1('0x4')](_0x375934,_0x422c0c);};}function removeListener(_0x5a24f1,_0x2850c2){return function(){OpenchannelInteractionEvents[_0xc2c1('0x5')](_0x5a24f1,_0x2850c2);};}exports[_0xc2c1('0x6')]=function(_0xdb84ec){for(var _0x201b29=0x0,_0x1fbaf3=events['length'];_0x201b29<_0x1fbaf3;_0x201b29++){var _0x249263=events[_0x201b29];var _0x478d7a=createListener('openchannelInteraction:'+_0x249263,_0xdb84ec);OpenchannelInteractionEvents['on'](_0x249263,_0x478d7a);}};
\ No newline at end of file
+var _0x8f4b=['save','remove','update','emit','removeListener','register','openchannelInteraction:'];(function(_0x68ee8b,_0x3cc6c5){var _0x5148f7=function(_0x5dcbd5){while(--_0x5dcbd5){_0x68ee8b['push'](_0x68ee8b['shift']());}};_0x5148f7(++_0x3cc6c5);}(_0x8f4b,0x16c));var _0xb8f4=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x8f4b[_0x3dd15e];return _0x231fd0;};'use strict';var OpenchannelInteractionEvents=require('./openchannelInteraction.events');var events=[_0xb8f4('0x0'),_0xb8f4('0x1'),_0xb8f4('0x2')];function createListener(_0x50d333,_0x213e84){return function(_0x16e8cb){_0x213e84[_0xb8f4('0x3')](_0x50d333,_0x16e8cb);};}function removeListener(_0x54ee8b,_0x4b32a5){return function(){OpenchannelInteractionEvents[_0xb8f4('0x4')](_0x54ee8b,_0x4b32a5);};}exports[_0xb8f4('0x5')]=function(_0x4f51ed){for(var _0x13e356=0x0,_0xd89533=events['length'];_0x13e356<_0xd89533;_0x13e356++){var _0x11127e=events[_0x13e356];var _0x4f5386=createListener(_0xb8f4('0x6')+_0x11127e,_0x4f51ed);OpenchannelInteractionEvents['on'](_0x11127e,_0x4f5386);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['index','/describe','show','post','isAuthenticated','tracked','openchannel','openchannelmessage:create','update','put','/:id/accept','accept','reject','delete','/:id','destroy','multer','util','path','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./openchannelMessage.controller','get'];(function(_0x1e35d2,_0x1f316c){var _0x3668ce=function(_0x5350ad){while(--_0x5350ad){_0x1e35d2['push'](_0x1e35d2['shift']());}};_0x3668ce(++_0x1f316c);}(_0xa9e0,0x123));var _0x0a9e=function(_0x173d7e,_0x3242fd){_0x173d7e=_0x173d7e-0x0;var _0x2220d6=_0xa9e0[_0x173d7e];return _0x2220d6;};'use strict';var multer=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var path=require(_0x0a9e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x0a9e('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x0a9e('0x4'));var interaction=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));var controller=require(_0x0a9e('0x7'));router[_0x0a9e('0x8')]('/',auth['isAuthenticated'](),controller[_0x0a9e('0x9')]);router[_0x0a9e('0x8')](_0x0a9e('0xa'),auth['isAuthenticated'](),controller['describe']);router[_0x0a9e('0x8')]('/:id',auth['isAuthenticated'](),controller[_0x0a9e('0xb')]);router[_0x0a9e('0xc')]('/',auth[_0x0a9e('0xd')](),interaction[_0x0a9e('0xe')](_0x0a9e('0xf'),_0x0a9e('0x10')),controller['create']);router['put']('/:id',auth['isAuthenticated'](),controller[_0x0a9e('0x11')]);router[_0x0a9e('0x12')](_0x0a9e('0x13'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x14')]);router[_0x0a9e('0x12')]('/:id/reject',auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x15')]);router[_0x0a9e('0x16')](_0x0a9e('0x17'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x18')]);module['exports']=router;
\ No newline at end of file
+var _0x9c44=['index','get','/describe','/:id','show','tracked','openchannel','create','put','update','accept','/:id/reject','reject','delete','destroy','exports','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','./openchannelMessage.controller','isAuthenticated'];(function(_0x13ad2f,_0x2f99cb){var _0x509efd=function(_0x5a1c0e){while(--_0x5a1c0e){_0x13ad2f['push'](_0x13ad2f['shift']());}};_0x509efd(++_0x2f99cb);}(_0x9c44,0x178));var _0x49c4=function(_0x1d9aa0,_0x272488){_0x1d9aa0=_0x1d9aa0-0x0;var _0x226868=_0x9c44[_0x1d9aa0];return _0x226868;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x49c4('0x0'));var timeout=require(_0x49c4('0x1'));var express=require(_0x49c4('0x2'));var router=express[_0x49c4('0x3')]();var fs_extra=require(_0x49c4('0x4'));var auth=require(_0x49c4('0x5'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0x49c4('0x6'));router['get']('/',auth[_0x49c4('0x7')](),controller[_0x49c4('0x8')]);router[_0x49c4('0x9')](_0x49c4('0xa'),auth[_0x49c4('0x7')](),controller['describe']);router[_0x49c4('0x9')](_0x49c4('0xb'),auth[_0x49c4('0x7')](),controller[_0x49c4('0xc')]);router['post']('/',auth['isAuthenticated'](),interaction[_0x49c4('0xd')](_0x49c4('0xe'),'openchannelmessage:create'),controller[_0x49c4('0xf')]);router[_0x49c4('0x10')]('/:id',auth['isAuthenticated'](),controller[_0x49c4('0x11')]);router[_0x49c4('0x10')]('/:id/accept',auth[_0x49c4('0x7')](),controller[_0x49c4('0x12')]);router['put'](_0x49c4('0x13'),auth[_0x49c4('0x7')](),controller[_0x49c4('0x14')]);router[_0x49c4('0x15')](_0x49c4('0xb'),auth[_0x49c4('0x7')](),controller[_0x49c4('0x16')]);module[_0x49c4('0x17')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd5fc=['sequelize','BOOLEAN','ENUM','out','DATE','TEXT'];(function(_0x432682,_0x253044){var _0x463d05=function(_0xa73403){while(--_0xa73403){_0x432682['push'](_0x432682['shift']());}};_0x463d05(++_0x253044);}(_0xd5fc,0xae));var _0xcd5f=function(_0x498c5a,_0x30468d){_0x498c5a=_0x498c5a-0x0;var _0x12fc81=_0xd5fc[_0x498c5a];return _0x12fc81;};'use strict';var Sequelize=require(_0xcd5f('0x0'));module['exports']={'body':{'type':Sequelize['TEXT']('medium'),'allowNull':![]},'read':{'type':Sequelize[_0xcd5f('0x1')],'defaultValue':![]},'secret':{'type':Sequelize[_0xcd5f('0x1')],'defaultValue':![]},'direction':{'type':Sequelize[_0xcd5f('0x2')]('in',_0xcd5f('0x3')),'defaultValue':_0xcd5f('0x3'),'allowNull':![]},'readAt':{'type':Sequelize[_0xcd5f('0x4')]},'providerName':{'type':Sequelize['STRING']},'providerResponse':{'type':Sequelize[_0xcd5f('0x5')]}};
\ No newline at end of file
+var _0x3c8b=['DATE','STRING','TEXT','exports','medium','BOOLEAN','out'];(function(_0x38987f,_0xc79720){var _0x4cb697=function(_0x1af5ae){while(--_0x1af5ae){_0x38987f['push'](_0x38987f['shift']());}};_0x4cb697(++_0xc79720);}(_0x3c8b,0x18b));var _0xb3c8=function(_0x81e1fd,_0x467a2f){_0x81e1fd=_0x81e1fd-0x0;var _0x1e2565=_0x3c8b[_0x81e1fd];return _0x1e2565;};'use strict';var Sequelize=require('sequelize');module[_0xb3c8('0x0')]={'body':{'type':Sequelize['TEXT'](_0xb3c8('0x1')),'allowNull':![]},'read':{'type':Sequelize[_0xb3c8('0x2')],'defaultValue':![]},'secret':{'type':Sequelize[_0xb3c8('0x2')],'defaultValue':![]},'direction':{'type':Sequelize['ENUM']('in',_0xb3c8('0x3')),'defaultValue':_0xb3c8('0x3'),'allowNull':![]},'readAt':{'type':Sequelize[_0xb3c8('0x4')]},'providerName':{'type':Sequelize[_0xb3c8('0x5')]},'providerResponse':{'type':Sequelize[_0xb3c8('0x6')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbcba=['../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','./openchannelMessage.socket','register','client','http','request','then','info','OpenchannelMessage,\x20%s,\x20%s','request\x20sent','debug','OpenchannelMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','sendStatus','status','json','limit','undefined','count','offset','Content-Range','apply','save','destroy','end','name','index','map','OpenchannelMessage','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','sort','filter','where','merge','options','includeAll','include','findAll','catch','params','rawAttributes','find','create','body','update','describe','accept','openchannel','read','readAt','format','UserId','user','agent','get','OpenchannelInteraction','OpenchannelInteractionId','isNil','read1stAt','interaction','role','null','AcceptMessage','acceptMessage','ContactId','sequelize','Sequelize','QueryTypes','fullname','email','internal','interface','SIP/%s','channel','event','EventManager','acceptmessage','reject','[OPENCHANNELMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','RejectMessage','rejectMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','SELECT','contact','User','rejectmessage','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','to-csv','ejs','squel','crypto','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware'];(function(_0x5baf5f,_0x993a23){var _0x2dff53=function(_0xfa7e9b){while(--_0xfa7e9b){_0x5baf5f['push'](_0x5baf5f['shift']());}};_0x2dff53(++_0x993a23);}(_0xbcba,0x6d));var _0xabcb=function(_0xf9875,_0x353ac1){_0xf9875=_0xf9875-0x0;var _0x46e212=_0xbcba[_0xf9875];return _0x46e212;};'use strict';var emlformat=require(_0xabcb('0x0'));var rimraf=require(_0xabcb('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xabcb('0x2'));var rp=require(_0xabcb('0x3'));var moment=require(_0xabcb('0x4'));var BPromise=require(_0xabcb('0x5'));var Mustache=require(_0xabcb('0x6'));var util=require(_0xabcb('0x7'));var path=require('path');var sox=require('sox');var csv=require(_0xabcb('0x8'));var ejs=require(_0xabcb('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0xabcb('0xa'));var crypto=require(_0xabcb('0xb'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xabcb('0x8'));var querystring=require('querystring');var Papa=require(_0xabcb('0xc'));var Redis=require(_0xabcb('0xd'));var authService=require(_0xabcb('0xe'));var qs=require(_0xabcb('0xf'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xabcb('0x10'));var logger=require(_0xabcb('0x11'))(_0xabcb('0x12'));var utils=require(_0xabcb('0x13'));var config=require(_0xabcb('0x14'));var licenseUtil=require(_0xabcb('0x15'));var db=require(_0xabcb('0x16'))['db'];config[_0xabcb('0x17')]=_['defaults'](config[_0xabcb('0x17')],{'host':_0xabcb('0x18'),'port':0x18eb});var socket=require(_0xabcb('0x19'))(new Redis(config[_0xabcb('0x17')]));require(_0xabcb('0x1a'))[_0xabcb('0x1b')](socket);var jayson=require('jayson/promise');var client=jayson[_0xabcb('0x1c')][_0xabcb('0x1d')]({'port':0x232c});var client9002=jayson[_0xabcb('0x1c')][_0xabcb('0x1d')]({'port':0x232a});function respondWithRpcPromise(_0x29c6f4,_0x40ee1b,_0x22a10c,_0x233048){return new BPromise(function(_0x19032f,_0x25b67e){var _0x48dd27=_0x233048||client;return _0x48dd27[_0xabcb('0x1e')](_0x29c6f4,_0x22a10c)[_0xabcb('0x1f')](function(_0x314016){logger[_0xabcb('0x20')](_0xabcb('0x21'),_0x40ee1b,_0xabcb('0x22'));logger[_0xabcb('0x23')](_0xabcb('0x24'),_0x40ee1b,_0xabcb('0x22'),JSON[_0xabcb('0x25')](_0x314016));if(_0x314016[_0xabcb('0x26')]){if(_0x314016[_0xabcb('0x26')][_0xabcb('0x27')]===0x1f4){logger[_0xabcb('0x26')]('OpenchannelMessage,\x20%s,\x20%s',_0x40ee1b,_0x314016['error']['message']);return _0x25b67e(_0x314016[_0xabcb('0x26')][_0xabcb('0x28')]);}logger[_0xabcb('0x26')](_0xabcb('0x21'),_0x40ee1b,_0x314016[_0xabcb('0x26')]['message']);return _0x19032f(_0x314016[_0xabcb('0x26')]['message']);}else{logger['info'](_0xabcb('0x21'),_0x40ee1b,_0xabcb('0x22'));_0x19032f(_0x314016[_0xabcb('0x29')][_0xabcb('0x28')]);}})['catch'](function(_0xf7ddfb){logger[_0xabcb('0x26')](_0xabcb('0x21'),_0x40ee1b,_0xf7ddfb);_0x25b67e(_0xf7ddfb);});});}function respondWithStatusCode(_0x117ee6,_0x4b6a46){_0x4b6a46=_0x4b6a46||0xcc;return function(_0x461866){if(_0x461866){return _0x117ee6[_0xabcb('0x2a')](_0x4b6a46);}return _0x117ee6['status'](_0x4b6a46)['end']();};}function respondWithResult(_0x1b0938,_0x5e5533){_0x5e5533=_0x5e5533||0xc8;return function(_0x1bbf15){if(_0x1bbf15){return _0x1b0938[_0xabcb('0x2b')](_0x5e5533)[_0xabcb('0x2c')](_0x1bbf15);}};}function respondWithFilteredResult(_0xe6a539,_0x342383){return function(_0x279f03){if(_0x279f03){var _0x3ce398=typeof _0x342383['offset']==='undefined'&&typeof _0x342383[_0xabcb('0x2d')]===_0xabcb('0x2e');var _0x531bae=_0x279f03[_0xabcb('0x2f')];var _0x1d848b=_0x3ce398?0x0:_0x342383[_0xabcb('0x30')];var _0xa1b649=_0x3ce398?_0x279f03[_0xabcb('0x2f')]:_0x342383[_0xabcb('0x30')]+_0x342383['limit'];var _0x18f014;if(_0xa1b649>=_0x531bae){_0xa1b649=_0x531bae;_0x18f014=0xc8;}else{_0x18f014=0xce;}_0xe6a539[_0xabcb('0x2b')](_0x18f014);return _0xe6a539['set'](_0xabcb('0x31'),_0x1d848b+'-'+_0xa1b649+'/'+_0x531bae)[_0xabcb('0x2c')](_0x279f03);}return null;};}function patchUpdates(_0x49aff7){return function(_0xf94b8a){try{jsonpatch[_0xabcb('0x32')](_0xf94b8a,_0x49aff7,!![]);}catch(_0x4e704e){return BPromise['reject'](_0x4e704e);}return _0xf94b8a[_0xabcb('0x33')]();};}function saveUpdates(_0x539d44,_0x3e1b0f){return function(_0x575c24){if(_0x575c24){return _0x575c24['update'](_0x539d44)['then'](function(_0x1d950c){return _0x1d950c;});}return null;};}function removeEntity(_0x30e963,_0x24b90c){return function(_0x54f3ab){if(_0x54f3ab){return _0x54f3ab[_0xabcb('0x34')]()[_0xabcb('0x1f')](function(){_0x30e963[_0xabcb('0x2b')](0xcc)[_0xabcb('0x35')]();});}};}function handleEntityNotFound(_0x4aea88,_0x4827d6){return function(_0x28b0f9){if(!_0x28b0f9){_0x4aea88[_0xabcb('0x2a')](0x194);}return _0x28b0f9;};}function handleError(_0x4f32f0,_0x2d415b){_0x2d415b=_0x2d415b||0x1f4;return function(_0x114c3c){logger[_0xabcb('0x26')](_0x114c3c['stack']);if(_0x114c3c[_0xabcb('0x36')]){delete _0x114c3c[_0xabcb('0x36')];}_0x4f32f0[_0xabcb('0x2b')](_0x2d415b)['send'](_0x114c3c);};}exports[_0xabcb('0x37')]=function(_0x2a1d6e,_0x3d643f){var _0x49f790={},_0x2597bb={},_0x441f16={'count':0x0,'rows':[]};var _0xfb7484=_[_0xabcb('0x38')](db[_0xabcb('0x39')]['rawAttributes'],function(_0x4421cc){return{'name':_0x4421cc[_0xabcb('0x3a')],'type':_0x4421cc[_0xabcb('0x3b')][_0xabcb('0x3c')]};});_0x2597bb[_0xabcb('0x3d')]=_['map'](_0xfb7484,_0xabcb('0x36'));_0x2597bb[_0xabcb('0x3e')]=_[_0xabcb('0x3f')](_0x2a1d6e[_0xabcb('0x3e')]);_0x2597bb[_0xabcb('0x40')]=_[_0xabcb('0x41')](_0x2597bb[_0xabcb('0x3d')],_0x2597bb[_0xabcb('0x3e')]);_0x49f790[_0xabcb('0x42')]=_[_0xabcb('0x41')](_0x2597bb[_0xabcb('0x3d')],qs[_0xabcb('0x43')](_0x2a1d6e['query']['fields']));_0x49f790[_0xabcb('0x42')]=_0x49f790['attributes'][_0xabcb('0x44')]?_0x49f790['attributes']:_0x2597bb['model'];if(!_0x2a1d6e['query'][_0xabcb('0x45')]('nolimit')){_0x49f790['limit']=qs[_0xabcb('0x2d')](_0x2a1d6e[_0xabcb('0x3e')]['limit']);_0x49f790[_0xabcb('0x30')]=qs[_0xabcb('0x30')](_0x2a1d6e[_0xabcb('0x3e')]['offset']);}_0x49f790['order']=qs[_0xabcb('0x46')](_0x2a1d6e[_0xabcb('0x3e')][_0xabcb('0x46')]);_0x49f790['where']=qs['filters'](_['pick'](_0x2a1d6e[_0xabcb('0x3e')],_0x2597bb['filters']),_0xfb7484);if(_0x2a1d6e[_0xabcb('0x3e')][_0xabcb('0x47')]){_0x49f790[_0xabcb('0x48')]=_['merge'](_0x49f790[_0xabcb('0x48')],{'$or':_['map'](_0xfb7484,function(_0xf9d2f0){if(_0xf9d2f0['type']!=='VIRTUAL'){var _0x1fa411={};_0x1fa411[_0xf9d2f0[_0xabcb('0x36')]]={'$like':'%'+_0x2a1d6e[_0xabcb('0x3e')]['filter']+'%'};return _0x1fa411;}})});}_0x49f790=_[_0xabcb('0x49')]({},_0x49f790,_0x2a1d6e[_0xabcb('0x4a')]);var _0x4cf824={'where':_0x49f790['where']};return db[_0xabcb('0x39')][_0xabcb('0x2f')](_0x4cf824)[_0xabcb('0x1f')](function(_0x5f2a3d){_0x441f16[_0xabcb('0x2f')]=_0x5f2a3d;if(_0x2a1d6e[_0xabcb('0x3e')][_0xabcb('0x4b')]){_0x49f790[_0xabcb('0x4c')]=[{'all':!![]}];}return db[_0xabcb('0x39')][_0xabcb('0x4d')](_0x49f790);})[_0xabcb('0x1f')](function(_0x4e0a33){_0x441f16['rows']=_0x4e0a33;return _0x441f16;})['then'](respondWithFilteredResult(_0x3d643f,_0x49f790))[_0xabcb('0x4e')](handleError(_0x3d643f,null));};exports['show']=function(_0x534696,_0x1a4a09){var _0x264799={'raw':!![],'where':{'id':_0x534696[_0xabcb('0x4f')]['id']}},_0x24f9d6={};_0x24f9d6['model']=_[_0xabcb('0x3f')](db[_0xabcb('0x39')][_0xabcb('0x50')]);_0x24f9d6[_0xabcb('0x3e')]=_[_0xabcb('0x3f')](_0x534696['query']);_0x24f9d6[_0xabcb('0x40')]=_['intersection'](_0x24f9d6[_0xabcb('0x3d')],_0x24f9d6[_0xabcb('0x3e')]);_0x264799[_0xabcb('0x42')]=_[_0xabcb('0x41')](_0x24f9d6[_0xabcb('0x3d')],qs[_0xabcb('0x43')](_0x534696[_0xabcb('0x3e')][_0xabcb('0x43')]));_0x264799[_0xabcb('0x42')]=_0x264799[_0xabcb('0x42')][_0xabcb('0x44')]?_0x264799['attributes']:_0x24f9d6[_0xabcb('0x3d')];if(_0x534696[_0xabcb('0x3e')]['includeAll']){_0x264799[_0xabcb('0x4c')]=[{'all':!![]}];}_0x264799=_[_0xabcb('0x49')]({},_0x264799,_0x534696[_0xabcb('0x4a')]);return db[_0xabcb('0x39')][_0xabcb('0x51')](_0x264799)['then'](handleEntityNotFound(_0x1a4a09,null))['then'](respondWithResult(_0x1a4a09,null))[_0xabcb('0x4e')](handleError(_0x1a4a09,null));};exports[_0xabcb('0x52')]=function(_0x530401,_0x3a3104){return db[_0xabcb('0x39')][_0xabcb('0x52')](_0x530401[_0xabcb('0x53')],{})['then'](respondWithResult(_0x3a3104,0xc9))[_0xabcb('0x4e')](handleError(_0x3a3104,null));};exports[_0xabcb('0x54')]=function(_0x4a0112,_0x2f1f96){if(_0x4a0112[_0xabcb('0x53')]['id']){delete _0x4a0112[_0xabcb('0x53')]['id'];}return db[_0xabcb('0x39')][_0xabcb('0x51')]({'where':{'id':_0x4a0112[_0xabcb('0x4f')]['id']}})[_0xabcb('0x1f')](handleEntityNotFound(_0x2f1f96,null))[_0xabcb('0x1f')](saveUpdates(_0x4a0112['body'],null))[_0xabcb('0x1f')](respondWithResult(_0x2f1f96,null))[_0xabcb('0x4e')](handleError(_0x2f1f96,null));};exports['destroy']=function(_0x58ed05,_0x311f5e){return db[_0xabcb('0x39')][_0xabcb('0x51')]({'where':{'id':_0x58ed05[_0xabcb('0x4f')]['id']}})[_0xabcb('0x1f')](handleEntityNotFound(_0x311f5e,null))['then'](removeEntity(_0x311f5e,null))['catch'](handleError(_0x311f5e,null));};exports[_0xabcb('0x55')]=function(_0x3e4133,_0x341eb3){return db['OpenchannelMessage'][_0xabcb('0x55')]()[_0xabcb('0x1f')](respondWithResult(_0x341eb3,null))[_0xabcb('0x4e')](handleError(_0x341eb3,null));};var interaction_log=require(_0xabcb('0x11'))('openchannel-interactions');exports[_0xabcb('0x56')]=function(_0x366eae,_0x9f4be1,_0x361cc7){var _0x13b3f4={'agent':{},'channel':_0xabcb('0x57')};if(_0x366eae['body']['id']){delete _0x366eae[_0xabcb('0x53')]['id'];}_0x366eae[_0xabcb('0x53')][_0xabcb('0x58')]=!![];_0x366eae[_0xabcb('0x53')][_0xabcb('0x59')]=moment()[_0xabcb('0x5a')]('YYYY-MM-DD\x20HH:mm:ss');_0x366eae['body'][_0xabcb('0x5b')]=_0x366eae['body'][_0xabcb('0x5b')]||_0x366eae[_0xabcb('0x5c')]['id'];_0x13b3f4[_0xabcb('0x5d')]['id']=_0x366eae['body'][_0xabcb('0x5b')];return db[_0xabcb('0x39')][_0xabcb('0x51')]({'where':{'id':_0x366eae['params']['id'],'UserId':null}})['then'](handleEntityNotFound(_0x9f4be1,null))['then'](saveUpdates(_0x366eae[_0xabcb('0x53')],null))[_0xabcb('0x1f')](function(_0x50c6b6){if(_0x50c6b6){_0x13b3f4[_0xabcb('0x28')]=_0x50c6b6[_0xabcb('0x5e')]({'plain':!![]});return db[_0xabcb('0x5f')][_0xabcb('0x51')]({'where':{'id':_0x50c6b6[_0xabcb('0x60')]}});}return null;})[_0xabcb('0x1f')](handleEntityNotFound(_0x9f4be1,null))['then'](function(_0x4d2b77){if(_0x4d2b77){return _0x4d2b77['update']({'UserId':_0x366eae[_0xabcb('0x53')][_0xabcb('0x5b')],'read1stAt':_[_0xabcb('0x61')](_0x4d2b77[_0xabcb('0x62')])?moment()[_0xabcb('0x5a')]('YYYY-MM-DD\x20HH:mm:ss'):undefined});}return null;})[_0xabcb('0x1f')](function(_0x277168){if(_0x277168){_0x13b3f4[_0xabcb('0x63')]=_0x277168[_0xabcb('0x5e')]({'plain':!![]});interaction_log[_0xabcb('0x20')]('[OPENCHANNELMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x366eae[_0xabcb('0x5c')]['id'],_0x366eae[_0xabcb('0x5c')][_0xabcb('0x36')],_0x366eae['user'][_0xabcb('0x64')],_0x13b3f4[_0xabcb('0x63')]['id'],_0x366eae[_0xabcb('0x53')]?JSON[_0xabcb('0x25')](_0x366eae[_0xabcb('0x53')]):_0xabcb('0x65'));return respondWithRpcPromise(_0xabcb('0x66'),_0xabcb('0x67'),_0x13b3f4);}return null;})[_0xabcb('0x1f')](function(_0x346bb8){var _0x30cc41='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x346bb8[_0xabcb('0x28')][_0xabcb('0x68')];return db[_0xabcb('0x69')]['query'](_0x30cc41,{'type':db[_0xabcb('0x6a')][_0xabcb('0x6b')]['SELECT'],'raw':!![]})[_0xabcb('0x1f')](function(_0x2d1427){return _0x2d1427;});})[_0xabcb('0x1f')](function(_0x5ef058){if(_0x5ef058){_0x13b3f4[_0xabcb('0x28')]['contact']=_0x5ef058[0x0];if(!_0x366eae[_0xabcb('0x53')][_0xabcb('0x5b')])return;return db['User'][_0xabcb('0x51')]({'where':{'id':_0x366eae[_0xabcb('0x53')][_0xabcb('0x5b')],'role':'agent'},'attributes':['id',_0xabcb('0x36'),_0xabcb('0x6c'),_0xabcb('0x6d'),_0xabcb('0x6e')],'raw':!![]});}return null;})[_0xabcb('0x1f')](function(_0x3f25b4){if(!_0x3f25b4)return null;_0x13b3f4[_0xabcb('0x28')][_0xabcb('0x5d')]=_0x3f25b4;return _0x13b3f4;})[_0xabcb('0x1f')](function(_0x5c9b7a){if(_0x5c9b7a){if(_0x366eae[_0xabcb('0x53')]['manual']){_0x13b3f4[_0xabcb('0x28')][_0xabcb('0x6f')]=util['format'](_0xabcb('0x70'),_0x366eae[_0xabcb('0x5c')][_0xabcb('0x36')]);_0x13b3f4[_0xabcb('0x28')][_0xabcb('0x71')]=_0x13b3f4['channel'];_0x13b3f4['message']['motionChannel']=_0x13b3f4[_0xabcb('0x71')];_0x13b3f4['message'][_0xabcb('0x72')]=_0xabcb('0x56');return respondWithRpcPromise(_0xabcb('0x73'),'EventManager',{'event':_0xabcb('0x74'),'message':_0x13b3f4[_0xabcb('0x28')]},client9002)[_0xabcb('0x1f')](function(){return _0x13b3f4;});}return _0x13b3f4;}return null;})[_0xabcb('0x1f')](respondWithResult(_0x9f4be1,null))[_0xabcb('0x4e')](handleError(_0x9f4be1,null));};var interaction_log=require(_0xabcb('0x11'))('openchannel-interactions');exports[_0xabcb('0x75')]=function(_0x3bc6ba,_0xf330ad,_0x3731e5){var _0x5cc09b={'agent':{},'channel':_0xabcb('0x57')};if(_0x3bc6ba[_0xabcb('0x53')]['id']){delete _0x3bc6ba[_0xabcb('0x53')]['id'];}_0x3bc6ba[_0xabcb('0x53')][_0xabcb('0x5b')]=_0x3bc6ba[_0xabcb('0x53')]['UserId']||_0x3bc6ba[_0xabcb('0x5c')]['id'];_0x5cc09b[_0xabcb('0x5d')]['id']=_0x3bc6ba[_0xabcb('0x53')][_0xabcb('0x5b')];return db[_0xabcb('0x39')][_0xabcb('0x51')]({'where':{'id':_0x3bc6ba[_0xabcb('0x4f')]['id'],'UserId':null}})[_0xabcb('0x1f')](handleEntityNotFound(_0xf330ad,null))[_0xabcb('0x1f')](function(_0x24672f){if(_0x24672f){_0x5cc09b['message']=_0x24672f[_0xabcb('0x5e')]({'plain':!![]});return db[_0xabcb('0x5f')][_0xabcb('0x51')]({'where':{'id':_0x24672f[_0xabcb('0x60')]}});}return null;})[_0xabcb('0x1f')](handleEntityNotFound(_0xf330ad,null))[_0xabcb('0x1f')](function(_0x5eb2a4){if(_0x5eb2a4){_0x5cc09b[_0xabcb('0x63')]=_0x5eb2a4['get']({'plain':!![]});interaction_log[_0xabcb('0x20')](_0xabcb('0x76'),_0x3bc6ba[_0xabcb('0x5c')]['id'],_0x3bc6ba[_0xabcb('0x5c')]['name'],_0x3bc6ba[_0xabcb('0x5c')]['role'],_0x5cc09b['interaction']['id'],_0x3bc6ba[_0xabcb('0x53')]?JSON[_0xabcb('0x25')](_0x3bc6ba[_0xabcb('0x53')]):_0xabcb('0x65'));return respondWithRpcPromise(_0xabcb('0x77'),_0xabcb('0x78'),_0x5cc09b);}return null;})[_0xabcb('0x1f')](function(_0x584e35){var _0x4ee15c=_0xabcb('0x79')+_0x584e35[_0xabcb('0x28')][_0xabcb('0x68')];return db[_0xabcb('0x69')]['query'](_0x4ee15c,{'type':db[_0xabcb('0x6a')][_0xabcb('0x6b')][_0xabcb('0x7a')],'raw':!![]})['then'](function(_0x404e16){return _0x404e16;});})[_0xabcb('0x1f')](function(_0x1e1e34){if(_0x1e1e34){_0x5cc09b[_0xabcb('0x28')][_0xabcb('0x7b')]=_0x1e1e34[0x0];if(!_0x3bc6ba[_0xabcb('0x53')][_0xabcb('0x5b')])return;return db[_0xabcb('0x7c')]['find']({'where':{'id':_0x3bc6ba[_0xabcb('0x53')][_0xabcb('0x5b')],'role':_0xabcb('0x5d')},'attributes':['id','name',_0xabcb('0x6c'),'email',_0xabcb('0x6e')],'raw':!![]});}return null;})[_0xabcb('0x1f')](function(_0x28fc9e){if(!_0x28fc9e)return null;_0x5cc09b[_0xabcb('0x28')][_0xabcb('0x5d')]=_0x28fc9e;return _0x5cc09b;})[_0xabcb('0x1f')](function(_0x54c404){if(_0x54c404){_0x54c404['message'][_0xabcb('0x6f')]=util[_0xabcb('0x5a')](_0xabcb('0x70'),_0x3bc6ba[_0xabcb('0x5c')][_0xabcb('0x36')]);_0x54c404[_0xabcb('0x28')][_0xabcb('0x71')]=_0x5cc09b[_0xabcb('0x71')];_0x54c404[_0xabcb('0x28')]['motionChannel']=_0x5cc09b[_0xabcb('0x71')];_0x54c404['message'][_0xabcb('0x72')]=_0xabcb('0x75');respondWithRpcPromise(_0xabcb('0x73'),_0xabcb('0x73'),{'event':_0xabcb('0x7d'),'message':_0x54c404[_0xabcb('0x28')]},client9002);return _0x5cc09b;}return null;})[_0xabcb('0x1f')](respondWithResult(_0xf330ad,null))[_0xabcb('0x4e')](handleError(_0xf330ad,null));};
\ No newline at end of file
+var _0x84c7=['ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/license/util','../../mysqldb','redis','defaults','socket.io-emitter','./openchannelMessage.socket','register','jayson/promise','http','client','request','then','info','request\x20sent','debug','OpenchannelMessage,\x20%s,\x20%s,\x20%s','error','code','message','OpenchannelMessage,\x20%s,\x20%s','result','sendStatus','status','json','undefined','limit','offset','count','set','apply','save','update','destroy','stack','name','send','index','map','fieldName','type','key','query','keys','filters','intersection','attributes','fields','length','model','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','OpenchannelMessage','includeAll','include','findAll','rows','catch','show','rawAttributes','find','create','body','describe','../../config/logger','openchannel-interactions','accept','read','readAt','YYYY-MM-DD\x20HH:mm:ss','UserId','user','OpenchannelInteraction','OpenchannelInteractionId','isNil','read1stAt','interaction','get','[OPENCHANNELMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','stringify','null','AcceptMessage','acceptMessage','ContactId','sequelize','Sequelize','QueryTypes','SELECT','contact','User','agent','fullname','email','internal','interface','format','SIP/%s','channel','event','acceptmessage','reject','openchannel','params','[OPENCHANNELMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','RejectMessage','rejectMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','EventManager','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv'];(function(_0x580c99,_0x5ca8ed){var _0x320f10=function(_0x41ad9a){while(--_0x41ad9a){_0x580c99['push'](_0x580c99['shift']());}};_0x320f10(++_0x5ca8ed);}(_0x84c7,0x10e));var _0x784c=function(_0xd8bd98,_0xa183d9){_0xd8bd98=_0xd8bd98-0x0;var _0x14ce10=_0x84c7[_0xd8bd98];return _0x14ce10;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x784c('0x0'));var zipdir=require(_0x784c('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x784c('0x2'));var moment=require(_0x784c('0x3'));var BPromise=require(_0x784c('0x4'));var Mustache=require(_0x784c('0x5'));var util=require(_0x784c('0x6'));var path=require(_0x784c('0x7'));var sox=require(_0x784c('0x8'));var csv=require(_0x784c('0x9'));var ejs=require(_0x784c('0xa'));var fs=require('fs');var fs_extra=require(_0x784c('0xb'));var _=require(_0x784c('0xc'));var squel=require(_0x784c('0xd'));var crypto=require(_0x784c('0xe'));var jsforce=require(_0x784c('0xf'));var deskjs=require(_0x784c('0x10'));var toCsv=require('to-csv');var querystring=require(_0x784c('0x11'));var Papa=require(_0x784c('0x12'));var Redis=require(_0x784c('0x13'));var authService=require(_0x784c('0x14'));var qs=require('../../components/parsers/qs');var as=require(_0x784c('0x15'));var hardwareService=require(_0x784c('0x16'));var logger=require('../../config/logger')(_0x784c('0x17'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x784c('0x18'));var db=require(_0x784c('0x19'))['db'];config[_0x784c('0x1a')]=_[_0x784c('0x1b')](config[_0x784c('0x1a')],{'host':'localhost','port':0x18eb});var socket=require(_0x784c('0x1c'))(new Redis(config[_0x784c('0x1a')]));require(_0x784c('0x1d'))[_0x784c('0x1e')](socket);var jayson=require(_0x784c('0x1f'));var client=jayson['client'][_0x784c('0x20')]({'port':0x232c});var client9002=jayson[_0x784c('0x21')][_0x784c('0x20')]({'port':0x232a});function respondWithRpcPromise(_0x2b9413,_0x3b3eb5,_0x138311,_0xa68f20){return new BPromise(function(_0x445727,_0x351226){var _0x5951f4=_0xa68f20||client;return _0x5951f4[_0x784c('0x22')](_0x2b9413,_0x138311)[_0x784c('0x23')](function(_0x1ebca3){logger[_0x784c('0x24')]('OpenchannelMessage,\x20%s,\x20%s',_0x3b3eb5,_0x784c('0x25'));logger[_0x784c('0x26')](_0x784c('0x27'),_0x3b3eb5,_0x784c('0x25'),JSON['stringify'](_0x1ebca3));if(_0x1ebca3['error']){if(_0x1ebca3[_0x784c('0x28')][_0x784c('0x29')]===0x1f4){logger[_0x784c('0x28')]('OpenchannelMessage,\x20%s,\x20%s',_0x3b3eb5,_0x1ebca3[_0x784c('0x28')][_0x784c('0x2a')]);return _0x351226(_0x1ebca3[_0x784c('0x28')][_0x784c('0x2a')]);}logger[_0x784c('0x28')](_0x784c('0x2b'),_0x3b3eb5,_0x1ebca3['error'][_0x784c('0x2a')]);return _0x445727(_0x1ebca3['error'][_0x784c('0x2a')]);}else{logger['info']('OpenchannelMessage,\x20%s,\x20%s',_0x3b3eb5,_0x784c('0x25'));_0x445727(_0x1ebca3[_0x784c('0x2c')][_0x784c('0x2a')]);}})['catch'](function(_0x4b6e37){logger[_0x784c('0x28')](_0x784c('0x2b'),_0x3b3eb5,_0x4b6e37);_0x351226(_0x4b6e37);});});}function respondWithStatusCode(_0x304bed,_0x24ba74){_0x24ba74=_0x24ba74||0xcc;return function(_0x588be9){if(_0x588be9){return _0x304bed[_0x784c('0x2d')](_0x24ba74);}return _0x304bed[_0x784c('0x2e')](_0x24ba74)['end']();};}function respondWithResult(_0x2d7849,_0xf99426){_0xf99426=_0xf99426||0xc8;return function(_0x5242c2){if(_0x5242c2){return _0x2d7849['status'](_0xf99426)[_0x784c('0x2f')](_0x5242c2);}};}function respondWithFilteredResult(_0x2166ff,_0x4e7f71){return function(_0x1bc8da){if(_0x1bc8da){var _0x5852fc=typeof _0x4e7f71['offset']===_0x784c('0x30')&&typeof _0x4e7f71[_0x784c('0x31')]===_0x784c('0x30');var _0x53e3d8=_0x1bc8da['count'];var _0x110b7b=_0x5852fc?0x0:_0x4e7f71[_0x784c('0x32')];var _0x249937=_0x5852fc?_0x1bc8da[_0x784c('0x33')]:_0x4e7f71['offset']+_0x4e7f71[_0x784c('0x31')];var _0x5793af;if(_0x249937>=_0x53e3d8){_0x249937=_0x53e3d8;_0x5793af=0xc8;}else{_0x5793af=0xce;}_0x2166ff[_0x784c('0x2e')](_0x5793af);return _0x2166ff[_0x784c('0x34')]('Content-Range',_0x110b7b+'-'+_0x249937+'/'+_0x53e3d8)[_0x784c('0x2f')](_0x1bc8da);}return null;};}function patchUpdates(_0x3b0957){return function(_0x1a066d){try{jsonpatch[_0x784c('0x35')](_0x1a066d,_0x3b0957,!![]);}catch(_0x4777d8){return BPromise['reject'](_0x4777d8);}return _0x1a066d[_0x784c('0x36')]();};}function saveUpdates(_0xd7f7af,_0x449014){return function(_0x417d7b){if(_0x417d7b){return _0x417d7b[_0x784c('0x37')](_0xd7f7af)[_0x784c('0x23')](function(_0x1ba0b1){return _0x1ba0b1;});}return null;};}function removeEntity(_0x202f3f,_0x25024b){return function(_0x222f1f){if(_0x222f1f){return _0x222f1f[_0x784c('0x38')]()['then'](function(){_0x202f3f[_0x784c('0x2e')](0xcc)['end']();});}};}function handleEntityNotFound(_0x2a9a9d,_0x3d59cc){return function(_0x3d957d){if(!_0x3d957d){_0x2a9a9d['sendStatus'](0x194);}return _0x3d957d;};}function handleError(_0x33c8ce,_0x49b40c){_0x49b40c=_0x49b40c||0x1f4;return function(_0x34046f){logger[_0x784c('0x28')](_0x34046f[_0x784c('0x39')]);if(_0x34046f['name']){delete _0x34046f[_0x784c('0x3a')];}_0x33c8ce[_0x784c('0x2e')](_0x49b40c)[_0x784c('0x3b')](_0x34046f);};}exports[_0x784c('0x3c')]=function(_0x3c16a3,_0x1b31e1){var _0x5c639b={},_0x185308={},_0x2fd2d5={'count':0x0,'rows':[]};var _0x4faa6d=_[_0x784c('0x3d')](db['OpenchannelMessage']['rawAttributes'],function(_0x287ece){return{'name':_0x287ece[_0x784c('0x3e')],'type':_0x287ece[_0x784c('0x3f')][_0x784c('0x40')]};});_0x185308['model']=_[_0x784c('0x3d')](_0x4faa6d,_0x784c('0x3a'));_0x185308[_0x784c('0x41')]=_[_0x784c('0x42')](_0x3c16a3[_0x784c('0x41')]);_0x185308[_0x784c('0x43')]=_[_0x784c('0x44')](_0x185308['model'],_0x185308[_0x784c('0x41')]);_0x5c639b[_0x784c('0x45')]=_['intersection'](_0x185308['model'],qs[_0x784c('0x46')](_0x3c16a3[_0x784c('0x41')][_0x784c('0x46')]));_0x5c639b[_0x784c('0x45')]=_0x5c639b['attributes'][_0x784c('0x47')]?_0x5c639b[_0x784c('0x45')]:_0x185308[_0x784c('0x48')];if(!_0x3c16a3[_0x784c('0x41')][_0x784c('0x49')](_0x784c('0x4a'))){_0x5c639b[_0x784c('0x31')]=qs[_0x784c('0x31')](_0x3c16a3[_0x784c('0x41')][_0x784c('0x31')]);_0x5c639b[_0x784c('0x32')]=qs['offset'](_0x3c16a3[_0x784c('0x41')]['offset']);}_0x5c639b[_0x784c('0x4b')]=qs[_0x784c('0x4c')](_0x3c16a3[_0x784c('0x41')][_0x784c('0x4c')]);_0x5c639b[_0x784c('0x4d')]=qs[_0x784c('0x43')](_[_0x784c('0x4e')](_0x3c16a3[_0x784c('0x41')],_0x185308[_0x784c('0x43')]),_0x4faa6d);if(_0x3c16a3[_0x784c('0x41')][_0x784c('0x4f')]){_0x5c639b[_0x784c('0x4d')]=_[_0x784c('0x50')](_0x5c639b[_0x784c('0x4d')],{'$or':_[_0x784c('0x3d')](_0x4faa6d,function(_0x416ec5){if(_0x416ec5[_0x784c('0x3f')]!==_0x784c('0x51')){var _0x1a7469={};_0x1a7469[_0x416ec5[_0x784c('0x3a')]]={'$like':'%'+_0x3c16a3[_0x784c('0x41')]['filter']+'%'};return _0x1a7469;}})});}_0x5c639b=_[_0x784c('0x50')]({},_0x5c639b,_0x3c16a3[_0x784c('0x52')]);var _0x543143={'where':_0x5c639b[_0x784c('0x4d')]};return db[_0x784c('0x53')][_0x784c('0x33')](_0x543143)[_0x784c('0x23')](function(_0x15a3f9){_0x2fd2d5['count']=_0x15a3f9;if(_0x3c16a3[_0x784c('0x41')][_0x784c('0x54')]){_0x5c639b[_0x784c('0x55')]=[{'all':!![]}];}return db['OpenchannelMessage'][_0x784c('0x56')](_0x5c639b);})['then'](function(_0x26d595){_0x2fd2d5[_0x784c('0x57')]=_0x26d595;return _0x2fd2d5;})[_0x784c('0x23')](respondWithFilteredResult(_0x1b31e1,_0x5c639b))[_0x784c('0x58')](handleError(_0x1b31e1,null));};exports[_0x784c('0x59')]=function(_0x268e23,_0x16c8be){var _0x177046={'raw':!![],'where':{'id':_0x268e23['params']['id']}},_0x2f5ad5={};_0x2f5ad5[_0x784c('0x48')]=_['keys'](db[_0x784c('0x53')][_0x784c('0x5a')]);_0x2f5ad5[_0x784c('0x41')]=_[_0x784c('0x42')](_0x268e23[_0x784c('0x41')]);_0x2f5ad5['filters']=_[_0x784c('0x44')](_0x2f5ad5['model'],_0x2f5ad5[_0x784c('0x41')]);_0x177046[_0x784c('0x45')]=_[_0x784c('0x44')](_0x2f5ad5[_0x784c('0x48')],qs[_0x784c('0x46')](_0x268e23[_0x784c('0x41')][_0x784c('0x46')]));_0x177046['attributes']=_0x177046[_0x784c('0x45')][_0x784c('0x47')]?_0x177046[_0x784c('0x45')]:_0x2f5ad5['model'];if(_0x268e23['query'][_0x784c('0x54')]){_0x177046[_0x784c('0x55')]=[{'all':!![]}];}_0x177046=_[_0x784c('0x50')]({},_0x177046,_0x268e23[_0x784c('0x52')]);return db[_0x784c('0x53')][_0x784c('0x5b')](_0x177046)[_0x784c('0x23')](handleEntityNotFound(_0x16c8be,null))[_0x784c('0x23')](respondWithResult(_0x16c8be,null))[_0x784c('0x58')](handleError(_0x16c8be,null));};exports[_0x784c('0x5c')]=function(_0x5a7e96,_0x2ca944){return db[_0x784c('0x53')][_0x784c('0x5c')](_0x5a7e96[_0x784c('0x5d')],{})[_0x784c('0x23')](respondWithResult(_0x2ca944,0xc9))[_0x784c('0x58')](handleError(_0x2ca944,null));};exports[_0x784c('0x37')]=function(_0x25f76b,_0x3bbf7d){if(_0x25f76b[_0x784c('0x5d')]['id']){delete _0x25f76b[_0x784c('0x5d')]['id'];}return db[_0x784c('0x53')][_0x784c('0x5b')]({'where':{'id':_0x25f76b['params']['id']}})['then'](handleEntityNotFound(_0x3bbf7d,null))['then'](saveUpdates(_0x25f76b[_0x784c('0x5d')],null))['then'](respondWithResult(_0x3bbf7d,null))[_0x784c('0x58')](handleError(_0x3bbf7d,null));};exports['destroy']=function(_0x581601,_0x37793c){return db[_0x784c('0x53')][_0x784c('0x5b')]({'where':{'id':_0x581601['params']['id']}})[_0x784c('0x23')](handleEntityNotFound(_0x37793c,null))[_0x784c('0x23')](removeEntity(_0x37793c,null))[_0x784c('0x58')](handleError(_0x37793c,null));};exports[_0x784c('0x5e')]=function(_0x33a453,_0x4302ba){return db[_0x784c('0x53')][_0x784c('0x5e')]()[_0x784c('0x23')](respondWithResult(_0x4302ba,null))[_0x784c('0x58')](handleError(_0x4302ba,null));};var interaction_log=require(_0x784c('0x5f'))(_0x784c('0x60'));exports[_0x784c('0x61')]=function(_0x4a03db,_0x388c69,_0x30f43a){var _0xdc492a={'agent':{},'channel':'openchannel'};if(_0x4a03db[_0x784c('0x5d')]['id']){delete _0x4a03db[_0x784c('0x5d')]['id'];}_0x4a03db[_0x784c('0x5d')][_0x784c('0x62')]=!![];_0x4a03db['body'][_0x784c('0x63')]=moment()['format'](_0x784c('0x64'));_0x4a03db[_0x784c('0x5d')]['UserId']=_0x4a03db['body'][_0x784c('0x65')]||_0x4a03db[_0x784c('0x66')]['id'];_0xdc492a['agent']['id']=_0x4a03db[_0x784c('0x5d')][_0x784c('0x65')];return db['OpenchannelMessage'][_0x784c('0x5b')]({'where':{'id':_0x4a03db['params']['id'],'UserId':null}})[_0x784c('0x23')](handleEntityNotFound(_0x388c69,null))['then'](saveUpdates(_0x4a03db[_0x784c('0x5d')],null))['then'](function(_0x148904){if(_0x148904){_0xdc492a[_0x784c('0x2a')]=_0x148904['get']({'plain':!![]});return db[_0x784c('0x67')]['find']({'where':{'id':_0x148904[_0x784c('0x68')]}});}return null;})[_0x784c('0x23')](handleEntityNotFound(_0x388c69,null))[_0x784c('0x23')](function(_0x1745b1){if(_0x1745b1){return _0x1745b1['update']({'UserId':_0x4a03db[_0x784c('0x5d')][_0x784c('0x65')],'read1stAt':_[_0x784c('0x69')](_0x1745b1[_0x784c('0x6a')])?moment()['format'](_0x784c('0x64')):undefined});}return null;})[_0x784c('0x23')](function(_0x51eba5){if(_0x51eba5){_0xdc492a[_0x784c('0x6b')]=_0x51eba5[_0x784c('0x6c')]({'plain':!![]});interaction_log[_0x784c('0x24')](_0x784c('0x6d'),_0x4a03db[_0x784c('0x66')]['id'],_0x4a03db[_0x784c('0x66')][_0x784c('0x3a')],_0x4a03db[_0x784c('0x66')][_0x784c('0x6e')],_0xdc492a[_0x784c('0x6b')]['id'],_0x4a03db['body']?JSON[_0x784c('0x6f')](_0x4a03db[_0x784c('0x5d')]):_0x784c('0x70'));return respondWithRpcPromise(_0x784c('0x71'),_0x784c('0x72'),_0xdc492a);}return null;})[_0x784c('0x23')](function(_0x1b8696){var _0x38a911='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x1b8696['message'][_0x784c('0x73')];return db[_0x784c('0x74')][_0x784c('0x41')](_0x38a911,{'type':db[_0x784c('0x75')][_0x784c('0x76')][_0x784c('0x77')],'raw':!![]})['then'](function(_0x47cb7c){return _0x47cb7c;});})[_0x784c('0x23')](function(_0x2291fc){if(_0x2291fc){_0xdc492a[_0x784c('0x2a')][_0x784c('0x78')]=_0x2291fc[0x0];if(!_0x4a03db[_0x784c('0x5d')][_0x784c('0x65')])return;return db[_0x784c('0x79')][_0x784c('0x5b')]({'where':{'id':_0x4a03db[_0x784c('0x5d')][_0x784c('0x65')],'role':_0x784c('0x7a')},'attributes':['id',_0x784c('0x3a'),_0x784c('0x7b'),_0x784c('0x7c'),_0x784c('0x7d')],'raw':!![]});}return null;})[_0x784c('0x23')](function(_0x24289e){if(!_0x24289e)return null;_0xdc492a[_0x784c('0x2a')][_0x784c('0x7a')]=_0x24289e;return _0xdc492a;})[_0x784c('0x23')](function(_0xf46ee9){if(_0xf46ee9){if(_0x4a03db['body']['manual']){_0xdc492a[_0x784c('0x2a')][_0x784c('0x7e')]=util[_0x784c('0x7f')](_0x784c('0x80'),_0x4a03db[_0x784c('0x66')][_0x784c('0x3a')]);_0xdc492a[_0x784c('0x2a')][_0x784c('0x81')]=_0xdc492a[_0x784c('0x81')];_0xdc492a['message'][_0x784c('0x82')]='accept';return respondWithRpcPromise('EventManager','EventManager',{'event':_0x784c('0x83'),'message':_0xdc492a[_0x784c('0x2a')]},client9002)[_0x784c('0x23')](function(){return _0xdc492a;});}return _0xdc492a;}return null;})['then'](respondWithResult(_0x388c69,null))[_0x784c('0x58')](handleError(_0x388c69,null));};var interaction_log=require(_0x784c('0x5f'))('openchannel-interactions');exports[_0x784c('0x84')]=function(_0x46c227,_0x12a39b,_0x45de05){var _0x24955a={'agent':{},'channel':_0x784c('0x85')};if(_0x46c227['body']['id']){delete _0x46c227[_0x784c('0x5d')]['id'];}_0x46c227[_0x784c('0x5d')][_0x784c('0x65')]=_0x46c227[_0x784c('0x5d')][_0x784c('0x65')]||_0x46c227[_0x784c('0x66')]['id'];_0x24955a['agent']['id']=_0x46c227[_0x784c('0x5d')][_0x784c('0x65')];return db[_0x784c('0x53')][_0x784c('0x5b')]({'where':{'id':_0x46c227[_0x784c('0x86')]['id'],'UserId':null}})[_0x784c('0x23')](handleEntityNotFound(_0x12a39b,null))[_0x784c('0x23')](function(_0xdbbbf8){if(_0xdbbbf8){_0x24955a[_0x784c('0x2a')]=_0xdbbbf8['get']({'plain':!![]});return db['OpenchannelInteraction'][_0x784c('0x5b')]({'where':{'id':_0xdbbbf8[_0x784c('0x68')]}});}return null;})[_0x784c('0x23')](handleEntityNotFound(_0x12a39b,null))[_0x784c('0x23')](function(_0x144ffd){if(_0x144ffd){_0x24955a[_0x784c('0x6b')]=_0x144ffd['get']({'plain':!![]});interaction_log['info'](_0x784c('0x87'),_0x46c227['user']['id'],_0x46c227['user'][_0x784c('0x3a')],_0x46c227[_0x784c('0x66')][_0x784c('0x6e')],_0x24955a[_0x784c('0x6b')]['id'],_0x46c227[_0x784c('0x5d')]?JSON['stringify'](_0x46c227[_0x784c('0x5d')]):'null');return respondWithRpcPromise(_0x784c('0x88'),_0x784c('0x89'),_0x24955a);}return null;})[_0x784c('0x23')](function(_0x40d289){var _0x30ffaa=_0x784c('0x8a')+_0x40d289['message'][_0x784c('0x73')];return db[_0x784c('0x74')][_0x784c('0x41')](_0x30ffaa,{'type':db[_0x784c('0x75')][_0x784c('0x76')]['SELECT'],'raw':!![]})['then'](function(_0x4972f8){return _0x4972f8;});})['then'](function(_0x225b3d){if(_0x225b3d){_0x24955a[_0x784c('0x2a')]['contact']=_0x225b3d[0x0];if(!_0x46c227[_0x784c('0x5d')][_0x784c('0x65')])return;return db[_0x784c('0x79')][_0x784c('0x5b')]({'where':{'id':_0x46c227[_0x784c('0x5d')][_0x784c('0x65')],'role':'agent'},'attributes':['id',_0x784c('0x3a'),'fullname',_0x784c('0x7c'),'internal'],'raw':!![]});}return null;})[_0x784c('0x23')](function(_0xded418){if(!_0xded418)return null;_0x24955a[_0x784c('0x2a')][_0x784c('0x7a')]=_0xded418;return _0x24955a;})[_0x784c('0x23')](function(_0x5e01cb){if(_0x5e01cb){_0x5e01cb[_0x784c('0x2a')]['interface']=util['format']('SIP/%s',_0x46c227[_0x784c('0x66')][_0x784c('0x3a')]);_0x5e01cb[_0x784c('0x2a')][_0x784c('0x81')]=_0x24955a[_0x784c('0x81')];_0x5e01cb[_0x784c('0x2a')][_0x784c('0x82')]=_0x784c('0x84');respondWithRpcPromise(_0x784c('0x8b'),'EventManager',{'event':'rejectmessage','message':_0x5e01cb['message']},client9002);return _0x24955a;}return null;})[_0x784c('0x23')](respondWithResult(_0x12a39b,null))[_0x784c('0x58')](handleError(_0x12a39b,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa69d=['exports','../../mysqldb','OpenchannelMessage','setMaxListeners','update','emit','hasOwnProperty','hook'];(function(_0x49536b,_0x2abe5d){var _0x30de59=function(_0xb848e3){while(--_0xb848e3){_0x49536b['push'](_0x49536b['shift']());}};_0x30de59(++_0x2abe5d);}(_0xa69d,0x1b1));var _0xda69=function(_0x46aff0,_0x122890){_0x46aff0=_0x46aff0-0x0;var _0x9d78cf=_0xa69d[_0x46aff0];return _0x9d78cf;};'use strict';var EventEmitter=require('events');var OpenchannelMessage=require(_0xda69('0x0'))['db'][_0xda69('0x1')];var OpenchannelMessageEvents=new EventEmitter();OpenchannelMessageEvents[_0xda69('0x2')](0x0);var events={'afterCreate':'save','afterUpdate':_0xda69('0x3'),'afterDestroy':'remove'};function emitEvent(_0x4f06b8){return function(_0x22cbb4,_0x7a0901,_0x33723f){OpenchannelMessageEvents[_0xda69('0x4')](_0x4f06b8+':'+_0x22cbb4['id'],_0x22cbb4);OpenchannelMessageEvents[_0xda69('0x4')](_0x4f06b8,_0x22cbb4);_0x33723f(null);};}for(var e in events){if(events[_0xda69('0x5')](e)){var event=events[e];OpenchannelMessage[_0xda69('0x6')](e,emitEvent(event));}}module[_0xda69('0x7')]=OpenchannelMessageEvents;
\ No newline at end of file
+var _0xec24=['emit','events','OpenchannelMessage','setMaxListeners','save','update','remove'];(function(_0x56329b,_0x1f047f){var _0x12649e=function(_0x102c97){while(--_0x102c97){_0x56329b['push'](_0x56329b['shift']());}};_0x12649e(++_0x1f047f);}(_0xec24,0xef));var _0x4ec2=function(_0x1027dd,_0x50c4a9){_0x1027dd=_0x1027dd-0x0;var _0x496399=_0xec24[_0x1027dd];return _0x496399;};'use strict';var EventEmitter=require(_0x4ec2('0x0'));var OpenchannelMessage=require('../../mysqldb')['db'][_0x4ec2('0x1')];var OpenchannelMessageEvents=new EventEmitter();OpenchannelMessageEvents[_0x4ec2('0x2')](0x0);var events={'afterCreate':_0x4ec2('0x3'),'afterUpdate':_0x4ec2('0x4'),'afterDestroy':_0x4ec2('0x5')};function emitEvent(_0x234593){return function(_0x2bfb13,_0x51775d,_0x38c1f1){OpenchannelMessageEvents[_0x4ec2('0x6')](_0x234593+':'+_0x2bfb13['id'],_0x2bfb13);OpenchannelMessageEvents[_0x4ec2('0x6')](_0x234593,_0x2bfb13);_0x38c1f1(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];OpenchannelMessage['hook'](e,emitEvent(event));}}module['exports']=OpenchannelMessageEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7708=['update','createdAt','catch','error','describe','OpenchannelAccount','Interactions','CmContact','Contact','replyUri','afterCreate','format','Forwarding\x20message\x20%d\x20to\x20%s','Interaction','omit','POST','method','GET','info','Message\x20%d\x20forwarded\x20to\x20%s','threadId','OpenchannelMessage,\x20%s,\x20%s','finally','utf8mb4_unicode_ci','lodash','util','api','rimraf','../../config/environment','exports','define','OpenchannelMessage','openchannel_messages','fti_openchannel_messages','body','FULLTEXT','get','direction','toLowerCase','out','secret','UserId','OpenchannelInteraction','findOne','OpenchannelInteractionId','then'];(function(_0x427648,_0x2b3a39){var _0x228429=function(_0x466e32){while(--_0x466e32){_0x427648['push'](_0x427648['shift']());}};_0x228429(++_0x2b3a39);}(_0x7708,0x188));var _0x8770=function(_0x400b43,_0x55da4e){_0x400b43=_0x400b43-0x0;var _0x3c330f=_0x7708[_0x400b43];return _0x3c330f;};'use strict';var _=require(_0x8770('0x0'));var util=require(_0x8770('0x1'));var logger=require('../../config/logger')(_0x8770('0x2'));var moment=require('moment');var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0x8770('0x3'));var config=require(_0x8770('0x4'));var attributes=require('./openchannelMessage.attributes');module[_0x8770('0x5')]=function(_0x50bab7,_0x31390d){return _0x50bab7[_0x8770('0x6')](_0x8770('0x7'),attributes,{'tableName':_0x8770('0x8'),'paranoid':![],'indexes':[{'name':_0x8770('0x9'),'fields':[_0x8770('0xa')],'type':_0x8770('0xb')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x4fc512,_0x396322,_0x2ca830){var _0x3f357a=_0x50bab7['models'];var _0x390af0=_0x4fc512[_0x8770('0xc')]({'plain':!![]});if(_0x390af0[_0x8770('0xd')][_0x8770('0xe')]()==='in'||_0x390af0['direction'][_0x8770('0xe')]()===_0x8770('0xf')&&!_0x390af0[_0x8770('0x10')]&&!_['isNil'](_0x390af0[_0x8770('0x11')])){_0x3f357a[_0x8770('0x12')][_0x8770('0x13')]({'where':{'id':_0x390af0[_0x8770('0x14')]}})[_0x8770('0x15')](function(_0x12a06f){if(_0x12a06f){_0x12a06f[_0x8770('0x16')]({'lastMsgAt':_0x390af0[_0x8770('0x17')],'lastMsgDirection':_0x390af0['direction'][_0x8770('0xe')]()});}})[_0x8770('0x18')](function(_0x5dd4e7){console[_0x8770('0x19')](_0x5dd4e7);});}if(_0x390af0['direction']===_0x8770('0xf')&&!_0x390af0['secret']){var _0x5b4716;_0x3f357a['CmContact'][_0x8770('0x1a')]()[_0x8770('0x15')](function(_0x17b634){return _0x3f357a[_0x8770('0x1b')]['find']({'where':{'id':_0x390af0['OpenchannelAccountId']},'include':[{'model':_0x3f357a[_0x8770('0x12')],'as':_0x8770('0x1c'),'where':{'id':_0x390af0[_0x8770('0x14')]},'limit':0x1,'include':[{'model':_0x3f357a[_0x8770('0x1d')],'as':_0x8770('0x1e'),'attributes':_['keys'](_0x17b634)}]}]});})[_0x8770('0x15')](function(_0x1234dd){_0x5b4716=_0x1234dd[_0x8770('0xc')]({'plain':!![]});if(_0x5b4716&&_0x5b4716[_0x8770('0x1f')]){logger['info']('OpenchannelMessage,\x20%s,\x20%s',_0x8770('0x20'),util[_0x8770('0x21')](_0x8770('0x22'),_0x390af0['id'],_0x5b4716[_0x8770('0x1f')]));if(_0x5b4716[_0x8770('0x1c')]&&_0x5b4716[_0x8770('0x1c')]['length']){_0x390af0[_0x8770('0x23')]=_[_0x8770('0x24')](_0x5b4716[_0x8770('0x1c')][0x0],_0x8770('0x1e'));_0x390af0['Contact']=_0x5b4716[_0x8770('0x1c')][0x0]['Contact'];}var _0x396322={'method':_0x8770('0x25'),'uri':encodeURI(_0x5b4716[_0x8770('0x1f')]),'json':!![],'resolveWithFullResponse':!![]};switch(_0x396322[_0x8770('0x26')]){case _0x8770('0x27'):_0x396322['qs']=_0x390af0;break;case _0x8770('0x25'):_0x396322[_0x8770('0xa')]=_0x390af0;break;}return rp(_0x396322)[_0x8770('0x15')](function(_0xb3f4aa){logger[_0x8770('0x28')]('OpenchannelMessage,\x20%s,\x20%s',_0x8770('0x20'),util[_0x8770('0x21')](_0x8770('0x29'),_0x390af0['id'],_0x5b4716[_0x8770('0x1f')]));if(_0xb3f4aa[_0x8770('0xa')][_0x8770('0x2a')]&&_0xb3f4aa['body']['threadId']!=_0x390af0[_0x8770('0x23')][_0x8770('0x2a')]){return _0x3f357a[_0x8770('0x12')][_0x8770('0x16')]({'threadId':_0xb3f4aa[_0x8770('0xa')]['threadId']},{'logging':!![],'where':{'id':_0x390af0['Interaction']['id']}});}else{return;}})[_0x8770('0x15')](function(){return _0x4fc512[_0x8770('0x16')]({'read':!![]});})[_0x8770('0x18')](function(_0x2c2c77){logger['error'](_0x8770('0x2b'),'afterCreate',util['inspect'](_0x2c2c77,{'showHidden':![],'depth':null}));_0x2ca830();});}else{_0x2ca830();}})[_0x8770('0x2c')](function(){_0x2ca830();});}else{_0x2ca830();}}},'charset':'utf8mb4','collate':_0x8770('0x2d')});};
\ No newline at end of file
+var _0xea28=['moment','bluebird','request-promise','path','../../config/environment','./openchannelMessage.attributes','exports','define','OpenchannelMessage','openchannel_messages','fti_openchannel_messages','body','FULLTEXT','models','direction','toLowerCase','out','secret','isNil','UserId','OpenchannelInteraction','OpenchannelInteractionId','update','createdAt','catch','error','CmContact','describe','then','OpenchannelAccount','find','OpenchannelAccountId','Interactions','get','info','OpenchannelMessage,\x20%s,\x20%s','format','Forwarding\x20message\x20%d\x20to\x20%s','replyUri','length','Interaction','omit','Contact','POST','GET','afterCreate','threadId','finally','utf8mb4','lodash','util','../../config/logger','api'];(function(_0x559469,_0x3cfcef){var _0x2dbeb4=function(_0x4881bb){while(--_0x4881bb){_0x559469['push'](_0x559469['shift']());}};_0x2dbeb4(++_0x3cfcef);}(_0xea28,0x13a));var _0x8ea2=function(_0x3f3f6a,_0x50a975){_0x3f3f6a=_0x3f3f6a-0x0;var _0x9afa11=_0xea28[_0x3f3f6a];return _0x9afa11;};'use strict';var _=require(_0x8ea2('0x0'));var util=require(_0x8ea2('0x1'));var logger=require(_0x8ea2('0x2'))(_0x8ea2('0x3'));var moment=require(_0x8ea2('0x4'));var BPromise=require(_0x8ea2('0x5'));var rp=require(_0x8ea2('0x6'));var fs=require('fs');var path=require(_0x8ea2('0x7'));var rimraf=require('rimraf');var config=require(_0x8ea2('0x8'));var attributes=require(_0x8ea2('0x9'));module[_0x8ea2('0xa')]=function(_0x513a0d,_0x29b82b){return _0x513a0d[_0x8ea2('0xb')](_0x8ea2('0xc'),attributes,{'tableName':_0x8ea2('0xd'),'paranoid':![],'indexes':[{'name':_0x8ea2('0xe'),'fields':[_0x8ea2('0xf')],'type':_0x8ea2('0x10')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x320750,_0x3de4a1,_0x3000f9){var _0x3d0b35=_0x513a0d[_0x8ea2('0x11')];var _0x500b82=_0x320750['get']({'plain':!![]});if(_0x500b82[_0x8ea2('0x12')][_0x8ea2('0x13')]()==='in'||_0x500b82[_0x8ea2('0x12')]['toLowerCase']()===_0x8ea2('0x14')&&!_0x500b82[_0x8ea2('0x15')]&&!_[_0x8ea2('0x16')](_0x500b82[_0x8ea2('0x17')])){_0x3d0b35[_0x8ea2('0x18')]['findOne']({'where':{'id':_0x500b82[_0x8ea2('0x19')]}})['then'](function(_0x4b2192){if(_0x4b2192){_0x4b2192[_0x8ea2('0x1a')]({'lastMsgAt':_0x500b82[_0x8ea2('0x1b')],'lastMsgDirection':_0x500b82[_0x8ea2('0x12')][_0x8ea2('0x13')]()});}})[_0x8ea2('0x1c')](function(_0xbb9bd1){console[_0x8ea2('0x1d')](_0xbb9bd1);});}if(_0x500b82[_0x8ea2('0x12')]===_0x8ea2('0x14')&&!_0x500b82[_0x8ea2('0x15')]){var _0x2dfa7c;_0x3d0b35[_0x8ea2('0x1e')][_0x8ea2('0x1f')]()[_0x8ea2('0x20')](function(_0x1b64cf){return _0x3d0b35[_0x8ea2('0x21')][_0x8ea2('0x22')]({'where':{'id':_0x500b82[_0x8ea2('0x23')]},'include':[{'model':_0x3d0b35[_0x8ea2('0x18')],'as':_0x8ea2('0x24'),'where':{'id':_0x500b82[_0x8ea2('0x19')]},'limit':0x1,'include':[{'model':_0x3d0b35[_0x8ea2('0x1e')],'as':'Contact','attributes':_['keys'](_0x1b64cf)}]}]});})[_0x8ea2('0x20')](function(_0x248c18){_0x2dfa7c=_0x248c18[_0x8ea2('0x25')]({'plain':!![]});if(_0x2dfa7c&&_0x2dfa7c['replyUri']){logger[_0x8ea2('0x26')](_0x8ea2('0x27'),'afterCreate',util[_0x8ea2('0x28')](_0x8ea2('0x29'),_0x500b82['id'],_0x2dfa7c[_0x8ea2('0x2a')]));if(_0x2dfa7c[_0x8ea2('0x24')]&&_0x2dfa7c[_0x8ea2('0x24')][_0x8ea2('0x2b')]){_0x500b82[_0x8ea2('0x2c')]=_[_0x8ea2('0x2d')](_0x2dfa7c[_0x8ea2('0x24')][0x0],'Contact');_0x500b82[_0x8ea2('0x2e')]=_0x2dfa7c['Interactions'][0x0][_0x8ea2('0x2e')];}var _0x3de4a1={'method':_0x8ea2('0x2f'),'uri':encodeURI(_0x2dfa7c['replyUri']),'json':!![],'resolveWithFullResponse':!![]};switch(_0x3de4a1['method']){case _0x8ea2('0x30'):_0x3de4a1['qs']=_0x500b82;break;case'POST':_0x3de4a1[_0x8ea2('0xf')]=_0x500b82;break;}return rp(_0x3de4a1)['then'](function(_0x3be291){logger[_0x8ea2('0x26')](_0x8ea2('0x27'),_0x8ea2('0x31'),util['format']('Message\x20%d\x20forwarded\x20to\x20%s',_0x500b82['id'],_0x2dfa7c[_0x8ea2('0x2a')]));if(_0x3be291['body'][_0x8ea2('0x32')]&&_0x3be291[_0x8ea2('0xf')][_0x8ea2('0x32')]!=_0x500b82[_0x8ea2('0x2c')][_0x8ea2('0x32')]){return _0x3d0b35[_0x8ea2('0x18')][_0x8ea2('0x1a')]({'threadId':_0x3be291[_0x8ea2('0xf')][_0x8ea2('0x32')]},{'logging':!![],'where':{'id':_0x500b82[_0x8ea2('0x2c')]['id']}});}else{return;}})['then'](function(){return _0x320750['update']({'read':!![]});})[_0x8ea2('0x1c')](function(_0x188553){logger['error']('OpenchannelMessage,\x20%s,\x20%s',_0x8ea2('0x31'),util['inspect'](_0x188553,{'showHidden':![],'depth':null}));_0x3000f9();});}else{_0x3000f9();}})[_0x8ea2('0x33')](function(){_0x3000f9();});}else{_0x3000f9();}}},'charset':_0x8ea2('0x34'),'collate':'utf8mb4_unicode_ci'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5f66=['stringify','error','code','message','info','result','OpenchannelMessage','create','body','options','raw','CreateOpenchannelMessage','catch','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','jayson/promise','client','defaults','redis','localhost','socket.io-emitter','./openchannelMessage.socket','then','OpenchannelMessage,\x20%s,\x20%s','debug','request\x20sent'];(function(_0x40ce36,_0x2fdf37){var _0x75c2f8=function(_0x23e58f){while(--_0x23e58f){_0x40ce36['push'](_0x40ce36['shift']());}};_0x75c2f8(++_0x2fdf37);}(_0x5f66,0x1a0));var _0x65f6=function(_0x465028,_0x4570ac){_0x465028=_0x465028-0x0;var _0xb783d4=_0x5f66[_0x465028];return _0xb783d4;};'use strict';var _=require('lodash');var util=require(_0x65f6('0x0'));var moment=require('moment');var BPromise=require(_0x65f6('0x1'));var rs=require(_0x65f6('0x2'));var fs=require('fs');var Redis=require(_0x65f6('0x3'));var db=require(_0x65f6('0x4'))['db'];var utils=require(_0x65f6('0x5'));var logger=require('../../config/logger')(_0x65f6('0x6'));var config=require('../../config/environment');var jayson=require(_0x65f6('0x7'));var client=jayson[_0x65f6('0x8')]['http']({'port':0x232a});config['redis']=_[_0x65f6('0x9')](config[_0x65f6('0xa')],{'host':_0x65f6('0xb'),'port':0x18eb});var socket=require(_0x65f6('0xc'))(new Redis(config[_0x65f6('0xa')]));require(_0x65f6('0xd'))['register'](socket);function respondWithRpcPromise(_0x5123ee,_0x18fea1,_0x2f6d5b){return new BPromise(function(_0x264647,_0x25c416){return client['request'](_0x5123ee,_0x2f6d5b)[_0x65f6('0xe')](function(_0x571436){logger['info'](_0x65f6('0xf'),_0x18fea1,'request\x20sent');logger[_0x65f6('0x10')]('OpenchannelMessage,\x20%s,\x20%s,\x20%s',_0x18fea1,_0x65f6('0x11'),JSON[_0x65f6('0x12')](_0x571436));if(_0x571436[_0x65f6('0x13')]){if(_0x571436[_0x65f6('0x13')][_0x65f6('0x14')]===0x1f4){logger[_0x65f6('0x13')](_0x65f6('0xf'),_0x18fea1,_0x571436[_0x65f6('0x13')][_0x65f6('0x15')]);return _0x25c416(_0x571436[_0x65f6('0x13')]['message']);}logger[_0x65f6('0x13')]('OpenchannelMessage,\x20%s,\x20%s',_0x18fea1,_0x571436['error'][_0x65f6('0x15')]);return _0x264647(_0x571436[_0x65f6('0x13')][_0x65f6('0x15')]);}else{logger[_0x65f6('0x16')](_0x65f6('0xf'),_0x18fea1,_0x65f6('0x11'));_0x264647(_0x571436[_0x65f6('0x17')][_0x65f6('0x15')]);}})['catch'](function(_0x4d79a1){logger[_0x65f6('0x13')]('OpenchannelMessage,\x20%s,\x20%s',_0x18fea1,_0x4d79a1);_0x25c416(_0x4d79a1);});});}exports['CreateOpenchannelMessage']=function(_0x5c5b91){var _0x365159=this;return new Promise(function(_0x21ea88,_0x5114a4){return db[_0x65f6('0x18')][_0x65f6('0x19')](_0x5c5b91[_0x65f6('0x1a')],{'raw':_0x5c5b91[_0x65f6('0x1b')]?_0x5c5b91[_0x65f6('0x1b')][_0x65f6('0x1c')]===undefined?!![]:![]:!![]})['then'](function(_0x197a49){logger['info']('CreateOpenchannelMessage',_0x5c5b91);logger[_0x65f6('0x10')](_0x65f6('0x1d'),_0x5c5b91,JSON['stringify'](_0x197a49));_0x21ea88(_0x197a49);})[_0x65f6('0x1e')](function(_0x471a33){logger[_0x65f6('0x13')](_0x65f6('0x1d'),_0x471a33['message'],_0x5c5b91);_0x5114a4(_0x365159[_0x65f6('0x13')](0x1f4,_0x471a33[_0x65f6('0x15')]));});});};
\ No newline at end of file
+var _0x5f66=['stringify','error','code','message','info','result','OpenchannelMessage','create','body','options','raw','CreateOpenchannelMessage','catch','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','jayson/promise','client','defaults','redis','localhost','socket.io-emitter','./openchannelMessage.socket','then','OpenchannelMessage,\x20%s,\x20%s','debug','request\x20sent'];(function(_0x157fcc,_0x5c162c){var _0x500c12=function(_0x120d15){while(--_0x120d15){_0x157fcc['push'](_0x157fcc['shift']());}};_0x500c12(++_0x5c162c);}(_0x5f66,0x1a0));var _0x65f6=function(_0x580576,_0x2f107d){_0x580576=_0x580576-0x0;var _0x3f55a0=_0x5f66[_0x580576];return _0x3f55a0;};'use strict';var _=require('lodash');var util=require(_0x65f6('0x0'));var moment=require('moment');var BPromise=require(_0x65f6('0x1'));var rs=require(_0x65f6('0x2'));var fs=require('fs');var Redis=require(_0x65f6('0x3'));var db=require(_0x65f6('0x4'))['db'];var utils=require(_0x65f6('0x5'));var logger=require('../../config/logger')(_0x65f6('0x6'));var config=require('../../config/environment');var jayson=require(_0x65f6('0x7'));var client=jayson[_0x65f6('0x8')]['http']({'port':0x232a});config['redis']=_[_0x65f6('0x9')](config[_0x65f6('0xa')],{'host':_0x65f6('0xb'),'port':0x18eb});var socket=require(_0x65f6('0xc'))(new Redis(config[_0x65f6('0xa')]));require(_0x65f6('0xd'))['register'](socket);function respondWithRpcPromise(_0x5123ee,_0x18fea1,_0x2f6d5b){return new BPromise(function(_0x264647,_0x25c416){return client['request'](_0x5123ee,_0x2f6d5b)[_0x65f6('0xe')](function(_0x571436){logger['info'](_0x65f6('0xf'),_0x18fea1,'request\x20sent');logger[_0x65f6('0x10')]('OpenchannelMessage,\x20%s,\x20%s,\x20%s',_0x18fea1,_0x65f6('0x11'),JSON[_0x65f6('0x12')](_0x571436));if(_0x571436[_0x65f6('0x13')]){if(_0x571436[_0x65f6('0x13')][_0x65f6('0x14')]===0x1f4){logger[_0x65f6('0x13')](_0x65f6('0xf'),_0x18fea1,_0x571436[_0x65f6('0x13')][_0x65f6('0x15')]);return _0x25c416(_0x571436[_0x65f6('0x13')]['message']);}logger[_0x65f6('0x13')]('OpenchannelMessage,\x20%s,\x20%s',_0x18fea1,_0x571436['error'][_0x65f6('0x15')]);return _0x264647(_0x571436[_0x65f6('0x13')][_0x65f6('0x15')]);}else{logger[_0x65f6('0x16')](_0x65f6('0xf'),_0x18fea1,_0x65f6('0x11'));_0x264647(_0x571436[_0x65f6('0x17')][_0x65f6('0x15')]);}})['catch'](function(_0x4d79a1){logger[_0x65f6('0x13')]('OpenchannelMessage,\x20%s,\x20%s',_0x18fea1,_0x4d79a1);_0x25c416(_0x4d79a1);});});}exports['CreateOpenchannelMessage']=function(_0x5c5b91){var _0x365159=this;return new Promise(function(_0x21ea88,_0x5114a4){return db[_0x65f6('0x18')][_0x65f6('0x19')](_0x5c5b91[_0x65f6('0x1a')],{'raw':_0x5c5b91[_0x65f6('0x1b')]?_0x5c5b91[_0x65f6('0x1b')][_0x65f6('0x1c')]===undefined?!![]:![]:!![]})['then'](function(_0x197a49){logger['info']('CreateOpenchannelMessage',_0x5c5b91);logger[_0x65f6('0x10')](_0x65f6('0x1d'),_0x5c5b91,JSON['stringify'](_0x197a49));_0x21ea88(_0x197a49);})[_0x65f6('0x1e')](function(_0x471a33){logger[_0x65f6('0x13')](_0x65f6('0x1d'),_0x471a33['message'],_0x5c5b91);_0x5114a4(_0x365159[_0x65f6('0x13')](0x1f4,_0x471a33[_0x65f6('0x15')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6dba=['emit','removeListener','length','openchannelMessage:','./openchannelMessage.events','save','remove','update'];(function(_0x4d1556,_0x45b703){var _0x11503c=function(_0x57a6a3){while(--_0x57a6a3){_0x4d1556['push'](_0x4d1556['shift']());}};_0x11503c(++_0x45b703);}(_0x6dba,0x13c));var _0xa6db=function(_0x3f9c5d,_0x283784){_0x3f9c5d=_0x3f9c5d-0x0;var _0x2f2c73=_0x6dba[_0x3f9c5d];return _0x2f2c73;};'use strict';var OpenchannelMessageEvents=require(_0xa6db('0x0'));var events=[_0xa6db('0x1'),_0xa6db('0x2'),_0xa6db('0x3')];function createListener(_0x42330d,_0x415569){return function(_0x2666ec){_0x415569[_0xa6db('0x4')](_0x42330d,_0x2666ec);};}function removeListener(_0x56ba78,_0xf09ca4){return function(){OpenchannelMessageEvents[_0xa6db('0x5')](_0x56ba78,_0xf09ca4);};}exports['register']=function(_0x5b2799){for(var _0x3e1f92=0x0,_0x59c6d1=events[_0xa6db('0x6')];_0x3e1f92<_0x59c6d1;_0x3e1f92++){var _0x5dee9c=events[_0x3e1f92];var _0x479aca=createListener(_0xa6db('0x7')+_0x5dee9c,_0x5b2799);OpenchannelMessageEvents['on'](_0x5dee9c,_0x479aca);}};
\ No newline at end of file
+var _0x72ea=['./openchannelMessage.events','save','remove','emit','removeListener','register','length','openchannelMessage:'];(function(_0x55e6c0,_0x4cd562){var _0x343775=function(_0x40186e){while(--_0x40186e){_0x55e6c0['push'](_0x55e6c0['shift']());}};_0x343775(++_0x4cd562);}(_0x72ea,0x1e8));var _0xa72e=function(_0x156b3e,_0x4e6e62){_0x156b3e=_0x156b3e-0x0;var _0x2dad1b=_0x72ea[_0x156b3e];return _0x2dad1b;};'use strict';var OpenchannelMessageEvents=require(_0xa72e('0x0'));var events=[_0xa72e('0x1'),_0xa72e('0x2'),'update'];function createListener(_0x19f0de,_0x3280df){return function(_0x2701c5){_0x3280df[_0xa72e('0x3')](_0x19f0de,_0x2701c5);};}function removeListener(_0x351fb9,_0x3bf05f){return function(){OpenchannelMessageEvents[_0xa72e('0x4')](_0x351fb9,_0x3bf05f);};}exports[_0xa72e('0x5')]=function(_0x9b66ae){for(var _0x55882c=0x0,_0x39c65a=events[_0xa72e('0x6')];_0x55882c<_0x39c65a;_0x55882c++){var _0x1b454c=events[_0x55882c];var _0x372dcb=createListener(_0xa72e('0x7')+_0x1b454c,_0x9b66ae);OpenchannelMessageEvents['on'](_0x1b454c,_0x372dcb);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4640=['index','/describe','describe','show','/:id/members','getMembers','/:id/teams','getTeams','/:id/users','create','post','addAgents','put','/:id','delete','removeTeams','removeAgents','exports','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./openchannelQueue.controller','get','isAuthenticated'];(function(_0x44af92,_0x194173){var _0x1b4b42=function(_0xa584cb){while(--_0xa584cb){_0x44af92['push'](_0x44af92['shift']());}};_0x1b4b42(++_0x194173);}(_0x4640,0x16e));var _0x0464=function(_0x100e04,_0x2070aa){_0x100e04=_0x100e04-0x0;var _0xeee5e7=_0x4640[_0x100e04];return _0xeee5e7;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x0464('0x0'));var timeout=require(_0x0464('0x1'));var express=require(_0x0464('0x2'));var router=express[_0x0464('0x3')]();var fs_extra=require(_0x0464('0x4'));var auth=require(_0x0464('0x5'));var interaction=require(_0x0464('0x6'));var config=require(_0x0464('0x7'));var controller=require(_0x0464('0x8'));router[_0x0464('0x9')]('/',auth[_0x0464('0xa')](),controller[_0x0464('0xb')]);router[_0x0464('0x9')](_0x0464('0xc'),auth[_0x0464('0xa')](),controller[_0x0464('0xd')]);router['get']('/:id',auth[_0x0464('0xa')](),controller[_0x0464('0xe')]);router[_0x0464('0x9')](_0x0464('0xf'),auth[_0x0464('0xa')](),controller[_0x0464('0x10')]);router[_0x0464('0x9')](_0x0464('0x11'),auth[_0x0464('0xa')](),controller[_0x0464('0x12')]);router[_0x0464('0x9')](_0x0464('0x13'),auth[_0x0464('0xa')](),controller['getAgents']);router['post']('/',auth[_0x0464('0xa')](),controller[_0x0464('0x14')]);router[_0x0464('0x15')]('/:id/teams',auth['isAuthenticated'](),controller['addTeams']);router[_0x0464('0x15')](_0x0464('0x13'),auth[_0x0464('0xa')](),controller[_0x0464('0x16')]);router[_0x0464('0x17')](_0x0464('0x18'),auth[_0x0464('0xa')](),controller['update']);router[_0x0464('0x19')](_0x0464('0x18'),auth[_0x0464('0xa')](),controller['destroy']);router['delete'](_0x0464('0x11'),auth['isAuthenticated'](),controller[_0x0464('0x1a')]);router[_0x0464('0x19')](_0x0464('0x13'),auth[_0x0464('0xa')](),controller[_0x0464('0x1b')]);module[_0x0464('0x1c')]=router;
\ No newline at end of file
+var _0xf573=['../../components/interaction/service','./openchannelQueue.controller','get','/describe','show','/:id/members','isAuthenticated','getMembers','/:id/users','getAgents','create','post','/:id/teams','addAgents','/:id','destroy','exports','multer','util','Router','fs-extra','../../components/auth/service'];(function(_0x48df1d,_0x36cffe){var _0x556697=function(_0x58ea44){while(--_0x58ea44){_0x48df1d['push'](_0x48df1d['shift']());}};_0x556697(++_0x36cffe);}(_0xf573,0x103));var _0x3f57=function(_0x4f68ac,_0x26c135){_0x4f68ac=_0x4f68ac-0x0;var _0x44a1ff=_0xf573[_0x4f68ac];return _0x44a1ff;};'use strict';var multer=require(_0x3f57('0x0'));var util=require(_0x3f57('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require('express');var router=express[_0x3f57('0x2')]();var fs_extra=require(_0x3f57('0x3'));var auth=require(_0x3f57('0x4'));var interaction=require(_0x3f57('0x5'));var config=require('../../config/environment');var controller=require(_0x3f57('0x6'));router[_0x3f57('0x7')]('/',auth['isAuthenticated'](),controller['index']);router['get'](_0x3f57('0x8'),auth['isAuthenticated'](),controller['describe']);router[_0x3f57('0x7')]('/:id',auth['isAuthenticated'](),controller[_0x3f57('0x9')]);router[_0x3f57('0x7')](_0x3f57('0xa'),auth[_0x3f57('0xb')](),controller[_0x3f57('0xc')]);router[_0x3f57('0x7')]('/:id/teams',auth[_0x3f57('0xb')](),controller['getTeams']);router[_0x3f57('0x7')](_0x3f57('0xd'),auth['isAuthenticated'](),controller[_0x3f57('0xe')]);router['post']('/',auth['isAuthenticated'](),controller[_0x3f57('0xf')]);router[_0x3f57('0x10')](_0x3f57('0x11'),auth[_0x3f57('0xb')](),controller['addTeams']);router['post'](_0x3f57('0xd'),auth['isAuthenticated'](),controller[_0x3f57('0x12')]);router['put']('/:id',auth[_0x3f57('0xb')](),controller['update']);router['delete'](_0x3f57('0x13'),auth['isAuthenticated'](),controller[_0x3f57('0x14')]);router['delete']('/:id/teams',auth[_0x3f57('0xb')](),controller['removeTeams']);router['delete']('/:id/users',auth[_0x3f57('0xb')](),controller['removeAgents']);module[_0x3f57('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8f8e=['STRING','ENUM','rrmemory','beepall','sequelize','exports'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x8f8e,0x12a));var _0xe8f8=function(_0x4e4519,_0x392ae){_0x4e4519=_0x4e4519-0x0;var _0x340044=_0x8f8e[_0x4e4519];return _0x340044;};'use strict';var Sequelize=require(_0xe8f8('0x0'));module[_0xe8f8('0x1')]={'name':{'type':Sequelize[_0xe8f8('0x2')],'unique':'name','validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize[_0xe8f8('0x2')]},'timeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0xe8f8('0x3')](_0xe8f8('0x4'),_0xe8f8('0x5'),'roundrobin')}};
\ No newline at end of file
+var _0xa3bd=['beepall','roundrobin','sequelize','exports','name','STRING','ENUM'];(function(_0x514989,_0x2437bb){var _0x132218=function(_0x2c93c2){while(--_0x2c93c2){_0x514989['push'](_0x514989['shift']());}};_0x132218(++_0x2437bb);}(_0xa3bd,0x144));var _0xda3b=function(_0xd3fdcb,_0x149595){_0xd3fdcb=_0xd3fdcb-0x0;var _0x4309b0=_0xa3bd[_0xd3fdcb];return _0x4309b0;};'use strict';var Sequelize=require(_0xda3b('0x0'));module[_0xda3b('0x1')]={'name':{'type':Sequelize['STRING'],'unique':_0xda3b('0x2'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize[_0xda3b('0x3')]},'timeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0xda3b('0x4')]('rrmemory',_0xda3b('0x5'),_0xda3b('0x6'))}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6e08=['findOrCreate','emit','removeTeams','select','field','tq.TeamId','from','join','user_has_teams','OpenchannelQueueId\x20=\x20?','push','toString','QueryTypes','SELECT','every','TeamId','includes','all','union','compact','value','transaction','ids','isEmpty','forEach','userOpenchannelQueue:remove','addAgents','omit','spread','userOpenchannelQueue:save','removeAgents','isArray','getAgents','options','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./openchannelQueue.socket','sendStatus','json','offset','undefined','limit','count','set','Content-Range','save','update','then','destroy','get','UserProfileResource','status','end','error','stack','name','send','index','OpenchannelQueue','rawAttributes','fieldName','key','model','query','keys','filters','intersection','attributes','fields','length','nolimit','sort','where','pick','filter','merge','map','VIRTUAL','includeAll','rows','catch','show','params','include','find','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','autoAssociation','create','describe','getMembers','findOne','UserOpenchannelQueue','hasOwnProperty','order','OpenchannelQueueId','findAll','User','UserId','agent','createdAt','format','%s/%s','SIP','openchannelPause','updatedAt','getTeams','Team','addTeams','online','voicePause','interface','flatMap','Agents','sequelize','each'];(function(_0x5a6326,_0x5cb8a4){var _0x4533ea=function(_0x117094){while(--_0x117094){_0x5a6326['push'](_0x5a6326['shift']());}};_0x4533ea(++_0x5cb8a4);}(_0x6e08,0x146));var _0x86e0=function(_0x24d24e,_0x4e17a4){_0x24d24e=_0x24d24e-0x0;var _0x20e068=_0x6e08[_0x24d24e];return _0x20e068;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x86e0('0x0'));var zipdir=require(_0x86e0('0x1'));var jsonpatch=require(_0x86e0('0x2'));var rp=require(_0x86e0('0x3'));var moment=require('moment');var BPromise=require(_0x86e0('0x4'));var Mustache=require('mustache');var util=require(_0x86e0('0x5'));var path=require(_0x86e0('0x6'));var sox=require(_0x86e0('0x7'));var csv=require(_0x86e0('0x8'));var ejs=require(_0x86e0('0x9'));var fs=require('fs');var fs_extra=require(_0x86e0('0xa'));var _=require(_0x86e0('0xb'));var squel=require(_0x86e0('0xc'));var crypto=require(_0x86e0('0xd'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x86e0('0x8'));var querystring=require(_0x86e0('0xe'));var Papa=require(_0x86e0('0xf'));var Redis=require(_0x86e0('0x10'));var authService=require(_0x86e0('0x11'));var qs=require(_0x86e0('0x12'));var as=require(_0x86e0('0x13'));var hardwareService=require(_0x86e0('0x14'));var logger=require(_0x86e0('0x15'))(_0x86e0('0x16'));var utils=require(_0x86e0('0x17'));var config=require(_0x86e0('0x18'));var licenseUtil=require('../../config/license/util');var db=require(_0x86e0('0x19'))['db'];config[_0x86e0('0x1a')]=_[_0x86e0('0x1b')](config['redis'],{'host':_0x86e0('0x1c'),'port':0x18eb});var socket=require(_0x86e0('0x1d'))(new Redis(config['redis']));require(_0x86e0('0x1e'))['register'](socket);function respondWithStatusCode(_0x329a74,_0x583a5a){_0x583a5a=_0x583a5a||0xcc;return function(_0x323a02){if(_0x323a02){return _0x329a74[_0x86e0('0x1f')](_0x583a5a);}return _0x329a74['status'](_0x583a5a)['end']();};}function respondWithResult(_0x6247ee,_0x5435c4){_0x5435c4=_0x5435c4||0xc8;return function(_0x5c4d5a){if(_0x5c4d5a){return _0x6247ee['status'](_0x5435c4)[_0x86e0('0x20')](_0x5c4d5a);}};}function respondWithFilteredResult(_0x230483,_0x99af0a){return function(_0x135a45){if(_0x135a45){var _0x1ba2a2=typeof _0x99af0a[_0x86e0('0x21')]===_0x86e0('0x22')&&typeof _0x99af0a[_0x86e0('0x23')]===_0x86e0('0x22');var _0x3d2269=_0x135a45[_0x86e0('0x24')];var _0x15a871=_0x1ba2a2?0x0:_0x99af0a[_0x86e0('0x21')];var _0x4c1283=_0x1ba2a2?_0x135a45[_0x86e0('0x24')]:_0x99af0a[_0x86e0('0x21')]+_0x99af0a['limit'];var _0x491cdf;if(_0x4c1283>=_0x3d2269){_0x4c1283=_0x3d2269;_0x491cdf=0xc8;}else{_0x491cdf=0xce;}_0x230483['status'](_0x491cdf);return _0x230483[_0x86e0('0x25')](_0x86e0('0x26'),_0x15a871+'-'+_0x4c1283+'/'+_0x3d2269)[_0x86e0('0x20')](_0x135a45);}return null;};}function patchUpdates(_0x2a3e9b){return function(_0x1908bc){try{jsonpatch['apply'](_0x1908bc,_0x2a3e9b,!![]);}catch(_0x3dd057){return BPromise['reject'](_0x3dd057);}return _0x1908bc[_0x86e0('0x27')]();};}function saveUpdates(_0x78da6b,_0x521039){return function(_0x35cb05){if(_0x35cb05){return _0x35cb05[_0x86e0('0x28')](_0x78da6b)[_0x86e0('0x29')](function(_0x23b2dc){return _0x23b2dc;});}return null;};}function removeEntity(_0x377913,_0x39db11){return function(_0x56f84f){if(_0x56f84f){return _0x56f84f[_0x86e0('0x2a')]()['then'](function(){var _0x482f4d=_0x56f84f[_0x86e0('0x2b')]({'plain':!![]});var _0x38d658='OpenchannelQueues';return db[_0x86e0('0x2c')]['destroy']({'where':{'type':_0x38d658,'resourceId':_0x482f4d['id']}})['then'](function(){return _0x56f84f;});})[_0x86e0('0x29')](function(){_0x377913[_0x86e0('0x2d')](0xcc)[_0x86e0('0x2e')]();});}};}function handleEntityNotFound(_0x581d9b,_0x2a8620){return function(_0x5caae5){if(!_0x5caae5){_0x581d9b[_0x86e0('0x1f')](0x194);}return _0x5caae5;};}function handleError(_0x4fd1d5,_0x123e60){_0x123e60=_0x123e60||0x1f4;return function(_0x326c00){logger[_0x86e0('0x2f')](_0x326c00[_0x86e0('0x30')]);if(_0x326c00[_0x86e0('0x31')]){delete _0x326c00[_0x86e0('0x31')];}_0x4fd1d5[_0x86e0('0x2d')](_0x123e60)[_0x86e0('0x32')](_0x326c00);};}exports[_0x86e0('0x33')]=function(_0x2ca4e6,_0x286f50){var _0x427cfb={},_0x61ba51={},_0x5f48de={'count':0x0,'rows':[]};var _0x1c4832=_['map'](db[_0x86e0('0x34')][_0x86e0('0x35')],function(_0x958adf){return{'name':_0x958adf[_0x86e0('0x36')],'type':_0x958adf['type'][_0x86e0('0x37')]};});_0x61ba51[_0x86e0('0x38')]=_['map'](_0x1c4832,_0x86e0('0x31'));_0x61ba51[_0x86e0('0x39')]=_[_0x86e0('0x3a')](_0x2ca4e6[_0x86e0('0x39')]);_0x61ba51[_0x86e0('0x3b')]=_[_0x86e0('0x3c')](_0x61ba51[_0x86e0('0x38')],_0x61ba51[_0x86e0('0x39')]);_0x427cfb[_0x86e0('0x3d')]=_['intersection'](_0x61ba51['model'],qs[_0x86e0('0x3e')](_0x2ca4e6[_0x86e0('0x39')]['fields']));_0x427cfb[_0x86e0('0x3d')]=_0x427cfb[_0x86e0('0x3d')][_0x86e0('0x3f')]?_0x427cfb[_0x86e0('0x3d')]:_0x61ba51[_0x86e0('0x38')];if(!_0x2ca4e6[_0x86e0('0x39')]['hasOwnProperty'](_0x86e0('0x40'))){_0x427cfb[_0x86e0('0x23')]=qs[_0x86e0('0x23')](_0x2ca4e6['query'][_0x86e0('0x23')]);_0x427cfb['offset']=qs[_0x86e0('0x21')](_0x2ca4e6[_0x86e0('0x39')]['offset']);}_0x427cfb['order']=qs[_0x86e0('0x41')](_0x2ca4e6[_0x86e0('0x39')][_0x86e0('0x41')]);_0x427cfb[_0x86e0('0x42')]=qs[_0x86e0('0x3b')](_[_0x86e0('0x43')](_0x2ca4e6[_0x86e0('0x39')],_0x61ba51['filters']),_0x1c4832);if(_0x2ca4e6[_0x86e0('0x39')][_0x86e0('0x44')]){_0x427cfb['where']=_[_0x86e0('0x45')](_0x427cfb[_0x86e0('0x42')],{'$or':_[_0x86e0('0x46')](_0x1c4832,function(_0x34a42e){if(_0x34a42e['type']!==_0x86e0('0x47')){var _0x32a0b4={};_0x32a0b4[_0x34a42e['name']]={'$like':'%'+_0x2ca4e6[_0x86e0('0x39')]['filter']+'%'};return _0x32a0b4;}})});}_0x427cfb=_['merge']({},_0x427cfb,_0x2ca4e6['options']);var _0x2b9019={'where':_0x427cfb[_0x86e0('0x42')]};return db['OpenchannelQueue'][_0x86e0('0x24')](_0x2b9019)[_0x86e0('0x29')](function(_0x3b535b){_0x5f48de[_0x86e0('0x24')]=_0x3b535b;if(_0x2ca4e6[_0x86e0('0x39')][_0x86e0('0x48')]){_0x427cfb['include']=[{'all':!![]}];}return db[_0x86e0('0x34')]['findAll'](_0x427cfb);})[_0x86e0('0x29')](function(_0x1d6cea){_0x5f48de[_0x86e0('0x49')]=_0x1d6cea;return _0x5f48de;})[_0x86e0('0x29')](respondWithFilteredResult(_0x286f50,_0x427cfb))[_0x86e0('0x4a')](handleError(_0x286f50,null));};exports[_0x86e0('0x4b')]=function(_0x5786af,_0x8b8e01){var _0x35ce0e={'raw':!![],'where':{'id':_0x5786af[_0x86e0('0x4c')]['id']}},_0x405b8b={};_0x405b8b[_0x86e0('0x38')]=_[_0x86e0('0x3a')](db['OpenchannelQueue'][_0x86e0('0x35')]);_0x405b8b[_0x86e0('0x39')]=_[_0x86e0('0x3a')](_0x5786af[_0x86e0('0x39')]);_0x405b8b[_0x86e0('0x3b')]=_[_0x86e0('0x3c')](_0x405b8b[_0x86e0('0x38')],_0x405b8b['query']);_0x35ce0e[_0x86e0('0x3d')]=_[_0x86e0('0x3c')](_0x405b8b[_0x86e0('0x38')],qs['fields'](_0x5786af[_0x86e0('0x39')][_0x86e0('0x3e')]));_0x35ce0e[_0x86e0('0x3d')]=_0x35ce0e[_0x86e0('0x3d')][_0x86e0('0x3f')]?_0x35ce0e[_0x86e0('0x3d')]:_0x405b8b['model'];if(_0x5786af[_0x86e0('0x39')][_0x86e0('0x48')]){_0x35ce0e[_0x86e0('0x4d')]=[{'all':!![]}];}_0x35ce0e=_['merge']({},_0x35ce0e,_0x5786af['options']);return db[_0x86e0('0x34')][_0x86e0('0x4e')](_0x35ce0e)[_0x86e0('0x29')](handleEntityNotFound(_0x8b8e01,null))[_0x86e0('0x29')](respondWithResult(_0x8b8e01,null))[_0x86e0('0x4a')](handleError(_0x8b8e01,null));};exports['create']=function(_0x182a92,_0xee311f){return db[_0x86e0('0x34')]['create'](_0x182a92[_0x86e0('0x4f')],{})[_0x86e0('0x29')](function(_0x5b92d8){var _0x1e364e=_0x182a92[_0x86e0('0x50')][_0x86e0('0x2b')]({'plain':!![]});if(!_0x1e364e)throw new Error(_0x86e0('0x51'));if(_0x1e364e['role']===_0x86e0('0x50')){var _0x4434b6=_0x5b92d8['get']({'plain':!![]});var _0x3d2237='OpenchannelQueues';return db[_0x86e0('0x52')]['find']({'where':{'name':_0x3d2237,'userProfileId':_0x1e364e['userProfileId']},'raw':!![]})[_0x86e0('0x29')](function(_0xc51f55){if(_0xc51f55&&_0xc51f55[_0x86e0('0x53')]===0x0){return db[_0x86e0('0x2c')][_0x86e0('0x54')]({'name':_0x4434b6[_0x86e0('0x31')],'resourceId':_0x4434b6['id'],'type':_0xc51f55[_0x86e0('0x31')],'sectionId':_0xc51f55['id']},{})[_0x86e0('0x29')](function(){return _0x5b92d8;});}else{return _0x5b92d8;}})[_0x86e0('0x4a')](function(_0x34a0ef){logger[_0x86e0('0x2f')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x34a0ef);throw _0x34a0ef;});}return _0x5b92d8;})['then'](respondWithResult(_0xee311f,0xc9))[_0x86e0('0x4a')](handleError(_0xee311f,null));};exports[_0x86e0('0x28')]=function(_0x16b7a6,_0x31d491){if(_0x16b7a6[_0x86e0('0x4f')]['id']){delete _0x16b7a6['body']['id'];}return db[_0x86e0('0x34')]['find']({'where':{'id':_0x16b7a6[_0x86e0('0x4c')]['id']}})[_0x86e0('0x29')](handleEntityNotFound(_0x31d491,null))['then'](saveUpdates(_0x16b7a6[_0x86e0('0x4f')],null))['then'](respondWithResult(_0x31d491,null))['catch'](handleError(_0x31d491,null));};exports[_0x86e0('0x2a')]=function(_0x38f1ef,_0x2e5b7b){return db['OpenchannelQueue'][_0x86e0('0x4e')]({'where':{'id':_0x38f1ef[_0x86e0('0x4c')]['id']}})['then'](handleEntityNotFound(_0x2e5b7b,null))[_0x86e0('0x29')](removeEntity(_0x2e5b7b,null))[_0x86e0('0x4a')](handleError(_0x2e5b7b,null));};exports['describe']=function(_0x47fdd6,_0x217188){return db[_0x86e0('0x34')][_0x86e0('0x55')]()[_0x86e0('0x29')](respondWithResult(_0x217188,null))[_0x86e0('0x4a')](handleError(_0x217188,null));};exports[_0x86e0('0x56')]=function(_0x132166,_0x119c2e,_0x1d5c92){var _0xfe8e0c={'raw':!![],'where':{}},_0x32e5c2={},_0x49faa7;return db['OpenchannelQueue'][_0x86e0('0x57')]({'where':{'id':_0x132166[_0x86e0('0x4c')]['id']}})[_0x86e0('0x29')](handleEntityNotFound(_0x119c2e,null))[_0x86e0('0x29')](function(_0x31229e){if(_0x31229e){_0x49faa7=_0x31229e['get']({'plain':!![]});_0x32e5c2['model']=_[_0x86e0('0x3a')](db[_0x86e0('0x58')][_0x86e0('0x35')]);_0x32e5c2[_0x86e0('0x39')]=_[_0x86e0('0x3a')](_0x132166[_0x86e0('0x39')]);_0x32e5c2[_0x86e0('0x3b')]=_[_0x86e0('0x3c')](_0x32e5c2[_0x86e0('0x38')],_0x32e5c2[_0x86e0('0x39')]);_0xfe8e0c[_0x86e0('0x3d')]=_[_0x86e0('0x3c')](_0x32e5c2['model'],qs[_0x86e0('0x3e')](_0x132166[_0x86e0('0x39')][_0x86e0('0x3e')]));_0xfe8e0c[_0x86e0('0x3d')]=_0xfe8e0c[_0x86e0('0x3d')][_0x86e0('0x3f')]?_0xfe8e0c[_0x86e0('0x3d')]:_0x32e5c2['model'];if(!_0x132166[_0x86e0('0x39')][_0x86e0('0x59')]('nolimit')){_0xfe8e0c[_0x86e0('0x23')]=qs[_0x86e0('0x23')](_0x132166[_0x86e0('0x39')][_0x86e0('0x23')]);_0xfe8e0c['offset']=qs[_0x86e0('0x21')](_0x132166[_0x86e0('0x39')][_0x86e0('0x21')]);}_0xfe8e0c[_0x86e0('0x5a')]=qs['sort'](_0x132166['query']['sort']);_0xfe8e0c[_0x86e0('0x42')]=qs[_0x86e0('0x3b')](_[_0x86e0('0x43')](_0x132166['query'],_0x32e5c2[_0x86e0('0x3b')]));_0xfe8e0c['where'][_0x86e0('0x5b')]=_0x31229e['id'];if(_0x132166[_0x86e0('0x39')][_0x86e0('0x44')]){_0xfe8e0c[_0x86e0('0x42')]=_['merge'](_0xfe8e0c[_0x86e0('0x42')],{'$or':_['map'](_0xfe8e0c[_0x86e0('0x3d')],function(_0x1b7fe7){var _0x14086b={};_0x14086b[_0x1b7fe7]={'$like':'%'+_0x132166[_0x86e0('0x39')]['filter']+'%'};return _0x14086b;})});}_0xfe8e0c=_[_0x86e0('0x45')]({},_0xfe8e0c,_0x132166['options']);return db[_0x86e0('0x58')][_0x86e0('0x5c')](_0xfe8e0c);}})['then'](function(_0x32469f){if(_0x32469f){return db[_0x86e0('0x5d')]['findAndCountAll']({'where':{'id':_[_0x86e0('0x46')](_0x32469f,_0x86e0('0x5e')),'role':_0x86e0('0x5f')},'attributes':['id',_0x86e0('0x31'),'openchannelPause','updatedAt',_0x86e0('0x60')]});}})[_0x86e0('0x29')](function(_0x444694){if(_0x444694){return{'count':_0x444694[_0x86e0('0x24')],'rows':_[_0x86e0('0x46')](_0x444694[_0x86e0('0x49')],function(_0x1258e5){return{'membername':_0x1258e5[_0x86e0('0x31')],'UserId':_0x1258e5['id'],'queue_name':_0x49faa7[_0x86e0('0x31')],'OpenchannelQueueId':_0x49faa7['id'],'interface':util[_0x86e0('0x61')](_0x86e0('0x62'),_0x86e0('0x63'),_0x1258e5[_0x86e0('0x31')]),'penalty':0x0,'paused':_0x1258e5[_0x86e0('0x64')],'createdAt':_0x1258e5[_0x86e0('0x60')],'updatedAt':_0x1258e5[_0x86e0('0x65')]};})};}else{return{'count':0x0,'rows':[]};}})[_0x86e0('0x29')](respondWithFilteredResult(_0x119c2e,_0xfe8e0c))[_0x86e0('0x4a')](handleError(_0x119c2e,null));};exports[_0x86e0('0x66')]=function(_0x3df506,_0x2ad50f,_0x4c9e1e){var _0x2610cf={};var _0x49b719={};var _0x1857f5;var _0x21ce4b;return db[_0x86e0('0x34')][_0x86e0('0x57')]({'where':{'id':_0x3df506[_0x86e0('0x4c')]['id']}})[_0x86e0('0x29')](handleEntityNotFound(_0x2ad50f,null))['then'](function(_0x2ff39f){if(_0x2ff39f){_0x1857f5=_0x2ff39f;_0x49b719[_0x86e0('0x38')]=_[_0x86e0('0x3a')](db[_0x86e0('0x67')]['rawAttributes']);_0x49b719[_0x86e0('0x39')]=_[_0x86e0('0x3a')](_0x3df506[_0x86e0('0x39')]);_0x49b719['filters']=_[_0x86e0('0x3c')](_0x49b719[_0x86e0('0x38')],_0x49b719[_0x86e0('0x39')]);_0x2610cf[_0x86e0('0x3d')]=_[_0x86e0('0x3c')](_0x49b719[_0x86e0('0x38')],qs[_0x86e0('0x3e')](_0x3df506['query'][_0x86e0('0x3e')]));_0x2610cf[_0x86e0('0x3d')]=_0x2610cf[_0x86e0('0x3d')][_0x86e0('0x3f')]?_0x2610cf[_0x86e0('0x3d')]:_0x49b719[_0x86e0('0x38')];_0x2610cf['order']=qs[_0x86e0('0x41')](_0x3df506[_0x86e0('0x39')][_0x86e0('0x41')]);_0x2610cf[_0x86e0('0x42')]=qs[_0x86e0('0x3b')](_[_0x86e0('0x43')](_0x3df506['query'],_0x49b719[_0x86e0('0x3b')]));if(_0x3df506[_0x86e0('0x39')][_0x86e0('0x44')]){_0x2610cf[_0x86e0('0x42')]=_[_0x86e0('0x45')](_0x2610cf[_0x86e0('0x42')],{'$or':_['map'](_0x2610cf[_0x86e0('0x3d')],function(_0x48494e){var _0x30baf1={};_0x30baf1[_0x48494e]={'$like':'%'+_0x3df506['query']['filter']+'%'};return _0x30baf1;})});}_0x2610cf=_[_0x86e0('0x45')]({},_0x2610cf,_0x3df506['options']);return _0x1857f5[_0x86e0('0x66')](_0x2610cf);}})['then'](function(_0x3fa644){if(_0x3fa644){_0x21ce4b=_0x3fa644['length'];if(!_0x3df506[_0x86e0('0x39')][_0x86e0('0x59')](_0x86e0('0x40'))){_0x2610cf['limit']=qs['limit'](_0x3df506[_0x86e0('0x39')][_0x86e0('0x23')]);_0x2610cf[_0x86e0('0x21')]=qs[_0x86e0('0x21')](_0x3df506[_0x86e0('0x39')][_0x86e0('0x21')]);}return _0x1857f5[_0x86e0('0x66')](_0x2610cf);}})[_0x86e0('0x29')](function(_0x170b21){if(_0x170b21){return _0x170b21?{'count':_0x21ce4b,'rows':_0x170b21}:null;}})[_0x86e0('0x29')](respondWithResult(_0x2ad50f,null))['catch'](handleError(_0x2ad50f,null));};exports[_0x86e0('0x68')]=function(_0x4b1621,_0x210a99,_0x5841d3){var _0x2d36fb=_0x4b1621[_0x86e0('0x4f')]['ids'];return db[_0x86e0('0x67')]['findAll']({'where':{'id':_0x2d36fb},'attributes':['id'],'include':[{'model':db[_0x86e0('0x5d')],'as':'Agents','attributes':['id',_0x86e0('0x31'),_0x86e0('0x69'),_0x86e0('0x6a'),_0x86e0('0x6b')],'raw':!![]}]})[_0x86e0('0x29')](function(_0x3920d1){if(_0x3920d1){var _0x5af9bb=_[_0x86e0('0x6c')](_0x3920d1,function(_0x260bd1){var _0x532d5b=_0x260bd1[_0x86e0('0x2b')]({'plain':!![]});return _0x532d5b[_0x86e0('0x6d')];});return db[_0x86e0('0x34')][_0x86e0('0x4e')]({'where':{'id':_0x4b1621[_0x86e0('0x4c')]['id']}})['then'](function(_0x26859f){return db[_0x86e0('0x6e')]['transaction'](function(_0x8e34f){return _0x26859f[_0x86e0('0x68')](_0x2d36fb,{'transaction':_0x8e34f})[_0x86e0('0x29')](function(){return BPromise[_0x86e0('0x6f')](_0x5af9bb,function(_0x514b47){return db[_0x86e0('0x58')][_0x86e0('0x70')]({'where':{'UserId':_0x514b47['id'],'OpenchannelQueueId':_0x4b1621[_0x86e0('0x4c')]['id']},'transaction':_0x8e34f});});})['then'](function(){_0x5af9bb['forEach'](function(_0x43711c){socket[_0x86e0('0x71')]('userOpenchannelQueue:save',{'UserId':_0x43711c['id'],'OpenchannelQueueId':_0x26859f['id']});});});});});}})[_0x86e0('0x29')](respondWithStatusCode(_0x210a99,null))[_0x86e0('0x4a')](handleError(_0x210a99,null));};exports[_0x86e0('0x72')]=function(_0x3734d1,_0x26bac2,_0xd2dfab){return db['Team'][_0x86e0('0x5c')]({'where':{'id':_0x3734d1[_0x86e0('0x39')]['ids']},'attributes':['id'],'include':[{'model':db[_0x86e0('0x5d')],'as':_0x86e0('0x6d'),'attributes':['id'],'raw':!![]}]})[_0x86e0('0x29')](handleEntityNotFound(_0x26bac2,null))[_0x86e0('0x29')](function(_0x306201){var _0x4009ac=_[_0x86e0('0x46')](_0x306201,'id');var _0x4b0e3f=[];var _0x5b8763=[];var _0x37bc51=squel[_0x86e0('0x73')]();_0x37bc51[_0x86e0('0x74')](_0x86e0('0x75'))[_0x86e0('0x76')]('team_has_openchannel_queues','tq')[_0x86e0('0x77')](_0x86e0('0x78'),'ut','ut.TeamId\x20=\x20tq.TeamId')[_0x86e0('0x42')](_0x86e0('0x79'),_0x3734d1[_0x86e0('0x4c')]['id']);for(var _0x373093=0x0;_0x373093<_0x306201[_0x86e0('0x3f')];_0x373093+=0x1){let _0xd91fcd=_0x306201[_0x373093];for(var _0xbf7952=0x0;_0xbf7952<_0xd91fcd[_0x86e0('0x6d')][_0x86e0('0x3f')];_0xbf7952+=0x1){let _0x461c2e=_0xd91fcd[_0x86e0('0x6d')][_0xbf7952];var _0x5da9dc=_0x37bc51['clone']();_0x5da9dc[_0x86e0('0x42')]('ut.UserId\x20=\x20?',_0x461c2e['id']);_0x5b8763[_0x86e0('0x7a')](db['sequelize'][_0x86e0('0x39')](_0x5da9dc[_0x86e0('0x7b')](),{'type':db[_0x86e0('0x6e')][_0x86e0('0x7c')][_0x86e0('0x7d')]})[_0x86e0('0x29')](function(_0x5c457b){if(_0x5c457b[_0x86e0('0x3f')]===0x1){return _0x461c2e['id'];}else{var _0x22cf17=_[_0x86e0('0x7e')](_[_0x86e0('0x46')](_0x5c457b,_0x86e0('0x7f')),function(_0x1fbeb1){return _[_0x86e0('0x80')](_0x4009ac,_0x1fbeb1);});if(_0x22cf17){return _0x461c2e['id'];}}}));}}return BPromise[_0x86e0('0x81')](_0x5b8763)[_0x86e0('0x29')](function(_0x3d1017){_0x4b0e3f=_(_0x4b0e3f)[_0x86e0('0x82')](_0x3d1017)[_0x86e0('0x83')]()[_0x86e0('0x84')]();return db[_0x86e0('0x34')][_0x86e0('0x4e')]({'where':{'id':_0x3734d1[_0x86e0('0x4c')]['id']}})[_0x86e0('0x29')](function(_0x5dccc3){return db[_0x86e0('0x6e')][_0x86e0('0x85')](function(_0x3f2830){return _0x5dccc3[_0x86e0('0x72')](_0x3734d1[_0x86e0('0x39')][_0x86e0('0x86')],{'transaction':_0x3f2830})[_0x86e0('0x29')](function(){if(!_[_0x86e0('0x87')](_0x4b0e3f)){return _0x5dccc3['removeAgents'](_0x4b0e3f,{'transaction':_0x3f2830});}})[_0x86e0('0x29')](function(){_0x4b0e3f[_0x86e0('0x88')](function(_0x5b4f1e){socket['emit'](_0x86e0('0x89'),{'UserId':_0x5b4f1e,'OpenchannelQueueId':_0x5dccc3['id']});});});});});});})['then'](respondWithStatusCode(_0x26bac2,null))[_0x86e0('0x4a')](handleError(_0x26bac2,null));};exports[_0x86e0('0x8a')]=function(_0x515f5e,_0x64b61b,_0x559895){return db['OpenchannelQueue'][_0x86e0('0x4e')]({'where':{'id':_0x515f5e['params']['id']}})[_0x86e0('0x29')](handleEntityNotFound(_0x64b61b,null))['then'](function(_0x16b698){if(_0x16b698){return _0x16b698[_0x86e0('0x8a')](_0x515f5e[_0x86e0('0x4f')]['ids'],_[_0x86e0('0x8b')](_0x515f5e[_0x86e0('0x4f')],[_0x86e0('0x86'),'id'])||{})[_0x86e0('0x8c')](function(_0x3910be){for(var _0x58e992=0x0;_0x58e992<_0x515f5e[_0x86e0('0x4f')][_0x86e0('0x86')][_0x86e0('0x3f')];_0x58e992+=0x1){socket['emit'](_0x86e0('0x8d'),{'UserId':Number(_0x515f5e[_0x86e0('0x4f')]['ids'][_0x58e992]),'OpenchannelQueueId':Number(_0x515f5e[_0x86e0('0x4c')]['id'])});}return _0x3910be;});}})['then'](respondWithResult(_0x64b61b,null))[_0x86e0('0x4a')](handleError(_0x64b61b,null));};exports[_0x86e0('0x8e')]=function(_0x17b510,_0x38f7b0,_0x7bbe33){return db[_0x86e0('0x34')][_0x86e0('0x4e')]({'where':{'id':_0x17b510[_0x86e0('0x4c')]['id']}})[_0x86e0('0x29')](handleEntityNotFound(_0x38f7b0,null))[_0x86e0('0x29')](function(_0x3d5bc8){if(_0x3d5bc8){return _0x3d5bc8['removeAgents'](_0x17b510[_0x86e0('0x39')]['ids'])[_0x86e0('0x29')](function(){if(_[_0x86e0('0x8f')](_0x17b510[_0x86e0('0x39')]['ids'])){for(var _0x33f0a4=0x0;_0x33f0a4<_0x17b510['query'][_0x86e0('0x86')]['length'];_0x33f0a4+=0x1){socket[_0x86e0('0x71')]('userOpenchannelQueue:remove',{'UserId':Number(_0x17b510[_0x86e0('0x39')]['ids'][_0x33f0a4]),'OpenchannelQueueId':Number(_0x17b510[_0x86e0('0x4c')]['id'])});}}else{socket[_0x86e0('0x71')](_0x86e0('0x89'),{'UserId':Number(_0x17b510[_0x86e0('0x39')][_0x86e0('0x86')]),'OpenchannelQueueId':Number(_0x17b510[_0x86e0('0x4c')]['id'])});}});}})[_0x86e0('0x29')](respondWithStatusCode(_0x38f7b0,null))['catch'](handleError(_0x38f7b0,null));};exports[_0x86e0('0x90')]=function(_0x2ce83a,_0x21649d,_0x4b008e){var _0x2cace3={};var _0x291421={};var _0x387369;var _0x23ad1b;return db[_0x86e0('0x34')]['findOne']({'where':{'id':_0x2ce83a[_0x86e0('0x4c')]['id']}})['then'](handleEntityNotFound(_0x21649d,null))[_0x86e0('0x29')](function(_0x264d93){if(_0x264d93){_0x387369=_0x264d93;_0x291421[_0x86e0('0x38')]=_['keys'](db[_0x86e0('0x5d')][_0x86e0('0x35')]);_0x291421[_0x86e0('0x39')]=_[_0x86e0('0x3a')](_0x2ce83a[_0x86e0('0x39')]);_0x291421[_0x86e0('0x3b')]=_['intersection'](_0x291421['model'],_0x291421[_0x86e0('0x39')]);_0x2cace3[_0x86e0('0x3d')]=_['intersection'](_0x291421['model'],qs[_0x86e0('0x3e')](_0x2ce83a[_0x86e0('0x39')]['fields']));_0x2cace3[_0x86e0('0x3d')]=_0x2cace3['attributes'][_0x86e0('0x3f')]?_0x2cace3[_0x86e0('0x3d')]:_0x291421[_0x86e0('0x38')];_0x2cace3[_0x86e0('0x5a')]=qs[_0x86e0('0x41')](_0x2ce83a[_0x86e0('0x39')][_0x86e0('0x41')]);_0x2cace3[_0x86e0('0x42')]=qs[_0x86e0('0x3b')](_[_0x86e0('0x43')](_0x2ce83a['query'],_0x291421[_0x86e0('0x3b')]));if(_0x2ce83a[_0x86e0('0x39')][_0x86e0('0x44')]){_0x2cace3[_0x86e0('0x42')]=_[_0x86e0('0x45')](_0x2cace3[_0x86e0('0x42')],{'$or':_['map'](_0x2cace3['attributes'],function(_0x418d4a){var _0x2aefa7={};_0x2aefa7[_0x418d4a]={'$like':'%'+_0x2ce83a[_0x86e0('0x39')][_0x86e0('0x44')]+'%'};return _0x2aefa7;})});}_0x2cace3=_[_0x86e0('0x45')]({},_0x2cace3,_0x2ce83a[_0x86e0('0x91')]);return _0x387369[_0x86e0('0x90')](_0x2cace3);}})[_0x86e0('0x29')](function(_0x2b238d){if(_0x2b238d){_0x23ad1b=_0x2b238d[_0x86e0('0x3f')];if(!_0x2ce83a[_0x86e0('0x39')][_0x86e0('0x59')](_0x86e0('0x40'))){_0x2cace3[_0x86e0('0x23')]=qs[_0x86e0('0x23')](_0x2ce83a[_0x86e0('0x39')][_0x86e0('0x23')]);_0x2cace3[_0x86e0('0x21')]=qs[_0x86e0('0x21')](_0x2ce83a[_0x86e0('0x39')][_0x86e0('0x21')]);}return _0x387369[_0x86e0('0x90')](_0x2cace3);}})[_0x86e0('0x29')](function(_0x2453ce){if(_0x2453ce){return _0x2453ce?{'count':_0x23ad1b,'rows':_0x2453ce}:null;}})['then'](respondWithResult(_0x21649d,null))['catch'](handleError(_0x21649d,null));};
\ No newline at end of file
+var _0xb64f=['describe','getMembers','findOne','OpenchannelQueueId','options','User','UserId','updatedAt','createdAt','rows','format','%s/%s','openchannelPause','getTeams','Team','addTeams','ids','Agents','online','voicePause','interface','flatMap','transaction','findOrCreate','forEach','userOpenchannelQueue:save','select','tq.TeamId','from','team_has_openchannel_queues','join','OpenchannelQueueId\x20=\x20?','sequelize','toString','SELECT','every','TeamId','includes','all','union','value','removeTeams','isEmpty','removeAgents','emit','userOpenchannelQueue:remove','addAgents','isArray','getAgents','eml-format','rimraf','zip-dir','fast-json-patch','moment','mustache','util','path','sox','to-csv','lodash','squel','crypto','jsforce','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','register','sendStatus','status','end','json','offset','undefined','limit','count','Content-Range','apply','reject','update','then','destroy','OpenchannelQueues','UserProfileResource','name','send','index','map','OpenchannelQueue','type','key','model','query','keys','filters','intersection','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','VIRTUAL','filter','include','findAll','catch','show','params','rawAttributes','fields','includeAll','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','find'];(function(_0x28b0a1,_0x99bd0a){var _0x21470c=function(_0x45bf01){while(--_0x45bf01){_0x28b0a1['push'](_0x28b0a1['shift']());}};_0x21470c(++_0x99bd0a);}(_0xb64f,0xba));var _0xfb64=function(_0x3c5f8d,_0x39891f){_0x3c5f8d=_0x3c5f8d-0x0;var _0x3b7beb=_0xb64f[_0x3c5f8d];return _0x3b7beb;};'use strict';var emlformat=require(_0xfb64('0x0'));var rimraf=require(_0xfb64('0x1'));var zipdir=require(_0xfb64('0x2'));var jsonpatch=require(_0xfb64('0x3'));var rp=require('request-promise');var moment=require(_0xfb64('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xfb64('0x5'));var util=require(_0xfb64('0x6'));var path=require(_0xfb64('0x7'));var sox=require(_0xfb64('0x8'));var csv=require(_0xfb64('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xfb64('0xa'));var squel=require(_0xfb64('0xb'));var crypto=require(_0xfb64('0xc'));var jsforce=require(_0xfb64('0xd'));var deskjs=require('desk.js');var toCsv=require(_0xfb64('0x9'));var querystring=require(_0xfb64('0xe'));var Papa=require(_0xfb64('0xf'));var Redis=require('ioredis');var authService=require(_0xfb64('0x10'));var qs=require(_0xfb64('0x11'));var as=require(_0xfb64('0x12'));var hardwareService=require(_0xfb64('0x13'));var logger=require('../../config/logger')(_0xfb64('0x14'));var utils=require(_0xfb64('0x15'));var config=require(_0xfb64('0x16'));var licenseUtil=require(_0xfb64('0x17'));var db=require(_0xfb64('0x18'))['db'];config[_0xfb64('0x19')]=_[_0xfb64('0x1a')](config['redis'],{'host':_0xfb64('0x1b'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xfb64('0x19')]));require('./openchannelQueue.socket')[_0xfb64('0x1c')](socket);function respondWithStatusCode(_0x3505d8,_0x2877ef){_0x2877ef=_0x2877ef||0xcc;return function(_0x3dde3e){if(_0x3dde3e){return _0x3505d8[_0xfb64('0x1d')](_0x2877ef);}return _0x3505d8[_0xfb64('0x1e')](_0x2877ef)[_0xfb64('0x1f')]();};}function respondWithResult(_0x4d943,_0x1e6e7c){_0x1e6e7c=_0x1e6e7c||0xc8;return function(_0x4d30a0){if(_0x4d30a0){return _0x4d943[_0xfb64('0x1e')](_0x1e6e7c)[_0xfb64('0x20')](_0x4d30a0);}};}function respondWithFilteredResult(_0x9a3cd8,_0x593ef5){return function(_0x285898){if(_0x285898){var _0x7e5454=typeof _0x593ef5[_0xfb64('0x21')]===_0xfb64('0x22')&&typeof _0x593ef5[_0xfb64('0x23')]===_0xfb64('0x22');var _0x22c415=_0x285898[_0xfb64('0x24')];var _0x1adb44=_0x7e5454?0x0:_0x593ef5[_0xfb64('0x21')];var _0x453d52=_0x7e5454?_0x285898[_0xfb64('0x24')]:_0x593ef5[_0xfb64('0x21')]+_0x593ef5[_0xfb64('0x23')];var _0x4a5912;if(_0x453d52>=_0x22c415){_0x453d52=_0x22c415;_0x4a5912=0xc8;}else{_0x4a5912=0xce;}_0x9a3cd8[_0xfb64('0x1e')](_0x4a5912);return _0x9a3cd8['set'](_0xfb64('0x25'),_0x1adb44+'-'+_0x453d52+'/'+_0x22c415)[_0xfb64('0x20')](_0x285898);}return null;};}function patchUpdates(_0x27b09c){return function(_0x35c41d){try{jsonpatch[_0xfb64('0x26')](_0x35c41d,_0x27b09c,!![]);}catch(_0x187b19){return BPromise[_0xfb64('0x27')](_0x187b19);}return _0x35c41d['save']();};}function saveUpdates(_0x4515d3,_0x54ea0a){return function(_0x2a2d89){if(_0x2a2d89){return _0x2a2d89[_0xfb64('0x28')](_0x4515d3)[_0xfb64('0x29')](function(_0x3eaa6f){return _0x3eaa6f;});}return null;};}function removeEntity(_0x16dd93,_0x253b5f){return function(_0x47dd97){if(_0x47dd97){return _0x47dd97[_0xfb64('0x2a')]()[_0xfb64('0x29')](function(){var _0x20bc1c=_0x47dd97['get']({'plain':!![]});var _0x2c8e5f=_0xfb64('0x2b');return db[_0xfb64('0x2c')][_0xfb64('0x2a')]({'where':{'type':_0x2c8e5f,'resourceId':_0x20bc1c['id']}})['then'](function(){return _0x47dd97;});})[_0xfb64('0x29')](function(){_0x16dd93[_0xfb64('0x1e')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5af2b7,_0x3aed15){return function(_0x2ef6ba){if(!_0x2ef6ba){_0x5af2b7[_0xfb64('0x1d')](0x194);}return _0x2ef6ba;};}function handleError(_0x563430,_0x2aedfc){_0x2aedfc=_0x2aedfc||0x1f4;return function(_0x569b30){logger['error'](_0x569b30['stack']);if(_0x569b30[_0xfb64('0x2d')]){delete _0x569b30[_0xfb64('0x2d')];}_0x563430['status'](_0x2aedfc)[_0xfb64('0x2e')](_0x569b30);};}exports[_0xfb64('0x2f')]=function(_0x23fb7c,_0x53bdcb){var _0x39af05={},_0x9533a0={},_0x26ac70={'count':0x0,'rows':[]};var _0x545304=_[_0xfb64('0x30')](db[_0xfb64('0x31')]['rawAttributes'],function(_0x4a9454){return{'name':_0x4a9454['fieldName'],'type':_0x4a9454[_0xfb64('0x32')][_0xfb64('0x33')]};});_0x9533a0[_0xfb64('0x34')]=_[_0xfb64('0x30')](_0x545304,_0xfb64('0x2d'));_0x9533a0[_0xfb64('0x35')]=_[_0xfb64('0x36')](_0x23fb7c[_0xfb64('0x35')]);_0x9533a0[_0xfb64('0x37')]=_[_0xfb64('0x38')](_0x9533a0[_0xfb64('0x34')],_0x9533a0[_0xfb64('0x35')]);_0x39af05[_0xfb64('0x39')]=_[_0xfb64('0x38')](_0x9533a0[_0xfb64('0x34')],qs['fields'](_0x23fb7c[_0xfb64('0x35')]['fields']));_0x39af05['attributes']=_0x39af05[_0xfb64('0x39')][_0xfb64('0x3a')]?_0x39af05[_0xfb64('0x39')]:_0x9533a0[_0xfb64('0x34')];if(!_0x23fb7c[_0xfb64('0x35')][_0xfb64('0x3b')](_0xfb64('0x3c'))){_0x39af05['limit']=qs['limit'](_0x23fb7c[_0xfb64('0x35')][_0xfb64('0x23')]);_0x39af05[_0xfb64('0x21')]=qs['offset'](_0x23fb7c[_0xfb64('0x35')][_0xfb64('0x21')]);}_0x39af05[_0xfb64('0x3d')]=qs[_0xfb64('0x3e')](_0x23fb7c['query'][_0xfb64('0x3e')]);_0x39af05[_0xfb64('0x3f')]=qs['filters'](_[_0xfb64('0x40')](_0x23fb7c[_0xfb64('0x35')],_0x9533a0[_0xfb64('0x37')]),_0x545304);if(_0x23fb7c[_0xfb64('0x35')]['filter']){_0x39af05[_0xfb64('0x3f')]=_[_0xfb64('0x41')](_0x39af05[_0xfb64('0x3f')],{'$or':_[_0xfb64('0x30')](_0x545304,function(_0x1f0531){if(_0x1f0531[_0xfb64('0x32')]!==_0xfb64('0x42')){var _0x5f9bf0={};_0x5f9bf0[_0x1f0531[_0xfb64('0x2d')]]={'$like':'%'+_0x23fb7c[_0xfb64('0x35')][_0xfb64('0x43')]+'%'};return _0x5f9bf0;}})});}_0x39af05=_[_0xfb64('0x41')]({},_0x39af05,_0x23fb7c['options']);var _0x43cfff={'where':_0x39af05['where']};return db['OpenchannelQueue'][_0xfb64('0x24')](_0x43cfff)['then'](function(_0x474c8a){_0x26ac70['count']=_0x474c8a;if(_0x23fb7c[_0xfb64('0x35')]['includeAll']){_0x39af05[_0xfb64('0x44')]=[{'all':!![]}];}return db[_0xfb64('0x31')][_0xfb64('0x45')](_0x39af05);})[_0xfb64('0x29')](function(_0x231891){_0x26ac70['rows']=_0x231891;return _0x26ac70;})[_0xfb64('0x29')](respondWithFilteredResult(_0x53bdcb,_0x39af05))[_0xfb64('0x46')](handleError(_0x53bdcb,null));};exports[_0xfb64('0x47')]=function(_0x3076cf,_0x47e81d){var _0x1ddffc={'raw':!![],'where':{'id':_0x3076cf[_0xfb64('0x48')]['id']}},_0x3a1b8b={};_0x3a1b8b['model']=_[_0xfb64('0x36')](db[_0xfb64('0x31')][_0xfb64('0x49')]);_0x3a1b8b[_0xfb64('0x35')]=_['keys'](_0x3076cf[_0xfb64('0x35')]);_0x3a1b8b['filters']=_[_0xfb64('0x38')](_0x3a1b8b[_0xfb64('0x34')],_0x3a1b8b[_0xfb64('0x35')]);_0x1ddffc[_0xfb64('0x39')]=_[_0xfb64('0x38')](_0x3a1b8b[_0xfb64('0x34')],qs[_0xfb64('0x4a')](_0x3076cf[_0xfb64('0x35')][_0xfb64('0x4a')]));_0x1ddffc[_0xfb64('0x39')]=_0x1ddffc['attributes'][_0xfb64('0x3a')]?_0x1ddffc[_0xfb64('0x39')]:_0x3a1b8b[_0xfb64('0x34')];if(_0x3076cf[_0xfb64('0x35')][_0xfb64('0x4b')]){_0x1ddffc['include']=[{'all':!![]}];}_0x1ddffc=_[_0xfb64('0x41')]({},_0x1ddffc,_0x3076cf['options']);return db[_0xfb64('0x31')]['find'](_0x1ddffc)[_0xfb64('0x29')](handleEntityNotFound(_0x47e81d,null))[_0xfb64('0x29')](respondWithResult(_0x47e81d,null))['catch'](handleError(_0x47e81d,null));};exports['create']=function(_0x5e4acd,_0x4ece1f){return db['OpenchannelQueue'][_0xfb64('0x4c')](_0x5e4acd[_0xfb64('0x4d')],{})[_0xfb64('0x29')](function(_0x3eb7a2){var _0x5e363a=_0x5e4acd[_0xfb64('0x4e')][_0xfb64('0x4f')]({'plain':!![]});if(!_0x5e363a)throw new Error(_0xfb64('0x50'));if(_0x5e363a[_0xfb64('0x51')]===_0xfb64('0x4e')){var _0x26a4be=_0x3eb7a2[_0xfb64('0x4f')]({'plain':!![]});var _0x6918eb=_0xfb64('0x2b');return db[_0xfb64('0x52')]['find']({'where':{'name':_0x6918eb,'userProfileId':_0x5e363a[_0xfb64('0x53')]},'raw':!![]})[_0xfb64('0x29')](function(_0x447973){if(_0x447973&&_0x447973[_0xfb64('0x54')]===0x0){return db['UserProfileResource'][_0xfb64('0x4c')]({'name':_0x26a4be[_0xfb64('0x2d')],'resourceId':_0x26a4be['id'],'type':_0x447973['name'],'sectionId':_0x447973['id']},{})[_0xfb64('0x29')](function(){return _0x3eb7a2;});}else{return _0x3eb7a2;}})[_0xfb64('0x46')](function(_0x239964){logger[_0xfb64('0x55')](_0xfb64('0x56'),_0x239964);throw _0x239964;});}return _0x3eb7a2;})[_0xfb64('0x29')](respondWithResult(_0x4ece1f,0xc9))[_0xfb64('0x46')](handleError(_0x4ece1f,null));};exports['update']=function(_0x530e2f,_0x469e9d){if(_0x530e2f[_0xfb64('0x4d')]['id']){delete _0x530e2f[_0xfb64('0x4d')]['id'];}return db['OpenchannelQueue'][_0xfb64('0x57')]({'where':{'id':_0x530e2f[_0xfb64('0x48')]['id']}})[_0xfb64('0x29')](handleEntityNotFound(_0x469e9d,null))[_0xfb64('0x29')](saveUpdates(_0x530e2f[_0xfb64('0x4d')],null))[_0xfb64('0x29')](respondWithResult(_0x469e9d,null))[_0xfb64('0x46')](handleError(_0x469e9d,null));};exports['destroy']=function(_0x553b09,_0x413eb8){return db['OpenchannelQueue'][_0xfb64('0x57')]({'where':{'id':_0x553b09[_0xfb64('0x48')]['id']}})[_0xfb64('0x29')](handleEntityNotFound(_0x413eb8,null))[_0xfb64('0x29')](removeEntity(_0x413eb8,null))[_0xfb64('0x46')](handleError(_0x413eb8,null));};exports[_0xfb64('0x58')]=function(_0x267ebf,_0x45fc6c){return db['OpenchannelQueue'][_0xfb64('0x58')]()[_0xfb64('0x29')](respondWithResult(_0x45fc6c,null))['catch'](handleError(_0x45fc6c,null));};exports[_0xfb64('0x59')]=function(_0x27d0ee,_0x598095,_0x3d5a47){var _0x24be67={'raw':!![],'where':{}},_0x9f80a2={},_0x54a8ba;return db[_0xfb64('0x31')][_0xfb64('0x5a')]({'where':{'id':_0x27d0ee[_0xfb64('0x48')]['id']}})['then'](handleEntityNotFound(_0x598095,null))[_0xfb64('0x29')](function(_0x3c57db){if(_0x3c57db){_0x54a8ba=_0x3c57db[_0xfb64('0x4f')]({'plain':!![]});_0x9f80a2[_0xfb64('0x34')]=_[_0xfb64('0x36')](db['UserOpenchannelQueue'][_0xfb64('0x49')]);_0x9f80a2[_0xfb64('0x35')]=_[_0xfb64('0x36')](_0x27d0ee[_0xfb64('0x35')]);_0x9f80a2[_0xfb64('0x37')]=_['intersection'](_0x9f80a2[_0xfb64('0x34')],_0x9f80a2[_0xfb64('0x35')]);_0x24be67[_0xfb64('0x39')]=_['intersection'](_0x9f80a2[_0xfb64('0x34')],qs['fields'](_0x27d0ee[_0xfb64('0x35')][_0xfb64('0x4a')]));_0x24be67['attributes']=_0x24be67['attributes'][_0xfb64('0x3a')]?_0x24be67[_0xfb64('0x39')]:_0x9f80a2[_0xfb64('0x34')];if(!_0x27d0ee[_0xfb64('0x35')]['hasOwnProperty'](_0xfb64('0x3c'))){_0x24be67[_0xfb64('0x23')]=qs[_0xfb64('0x23')](_0x27d0ee['query'][_0xfb64('0x23')]);_0x24be67[_0xfb64('0x21')]=qs[_0xfb64('0x21')](_0x27d0ee['query'][_0xfb64('0x21')]);}_0x24be67[_0xfb64('0x3d')]=qs[_0xfb64('0x3e')](_0x27d0ee[_0xfb64('0x35')][_0xfb64('0x3e')]);_0x24be67[_0xfb64('0x3f')]=qs[_0xfb64('0x37')](_[_0xfb64('0x40')](_0x27d0ee['query'],_0x9f80a2[_0xfb64('0x37')]));_0x24be67[_0xfb64('0x3f')][_0xfb64('0x5b')]=_0x3c57db['id'];if(_0x27d0ee[_0xfb64('0x35')][_0xfb64('0x43')]){_0x24be67[_0xfb64('0x3f')]=_['merge'](_0x24be67[_0xfb64('0x3f')],{'$or':_['map'](_0x24be67['attributes'],function(_0x27fbc9){var _0x59b2e7={};_0x59b2e7[_0x27fbc9]={'$like':'%'+_0x27d0ee[_0xfb64('0x35')][_0xfb64('0x43')]+'%'};return _0x59b2e7;})});}_0x24be67=_[_0xfb64('0x41')]({},_0x24be67,_0x27d0ee[_0xfb64('0x5c')]);return db['UserOpenchannelQueue'][_0xfb64('0x45')](_0x24be67);}})[_0xfb64('0x29')](function(_0x30ef92){if(_0x30ef92){return db[_0xfb64('0x5d')]['findAndCountAll']({'where':{'id':_[_0xfb64('0x30')](_0x30ef92,_0xfb64('0x5e')),'role':'agent'},'attributes':['id',_0xfb64('0x2d'),'openchannelPause',_0xfb64('0x5f'),_0xfb64('0x60')]});}})[_0xfb64('0x29')](function(_0x25f72f){if(_0x25f72f){return{'count':_0x25f72f['count'],'rows':_[_0xfb64('0x30')](_0x25f72f[_0xfb64('0x61')],function(_0x5718e){return{'membername':_0x5718e[_0xfb64('0x2d')],'UserId':_0x5718e['id'],'queue_name':_0x54a8ba[_0xfb64('0x2d')],'OpenchannelQueueId':_0x54a8ba['id'],'interface':util[_0xfb64('0x62')](_0xfb64('0x63'),'SIP',_0x5718e['name']),'penalty':0x0,'paused':_0x5718e[_0xfb64('0x64')],'createdAt':_0x5718e['createdAt'],'updatedAt':_0x5718e['updatedAt']};})};}else{return{'count':0x0,'rows':[]};}})['then'](respondWithFilteredResult(_0x598095,_0x24be67))[_0xfb64('0x46')](handleError(_0x598095,null));};exports[_0xfb64('0x65')]=function(_0xb8fa48,_0x284ce1,_0x2bfe56){var _0xb34dbc={};var _0x39212d={};var _0x8c9e50;var _0xe68392;return db[_0xfb64('0x31')][_0xfb64('0x5a')]({'where':{'id':_0xb8fa48[_0xfb64('0x48')]['id']}})[_0xfb64('0x29')](handleEntityNotFound(_0x284ce1,null))[_0xfb64('0x29')](function(_0x3d9b05){if(_0x3d9b05){_0x8c9e50=_0x3d9b05;_0x39212d[_0xfb64('0x34')]=_[_0xfb64('0x36')](db[_0xfb64('0x66')][_0xfb64('0x49')]);_0x39212d['query']=_[_0xfb64('0x36')](_0xb8fa48[_0xfb64('0x35')]);_0x39212d[_0xfb64('0x37')]=_['intersection'](_0x39212d[_0xfb64('0x34')],_0x39212d[_0xfb64('0x35')]);_0xb34dbc[_0xfb64('0x39')]=_[_0xfb64('0x38')](_0x39212d['model'],qs['fields'](_0xb8fa48[_0xfb64('0x35')][_0xfb64('0x4a')]));_0xb34dbc[_0xfb64('0x39')]=_0xb34dbc[_0xfb64('0x39')][_0xfb64('0x3a')]?_0xb34dbc[_0xfb64('0x39')]:_0x39212d[_0xfb64('0x34')];_0xb34dbc[_0xfb64('0x3d')]=qs[_0xfb64('0x3e')](_0xb8fa48[_0xfb64('0x35')][_0xfb64('0x3e')]);_0xb34dbc[_0xfb64('0x3f')]=qs[_0xfb64('0x37')](_[_0xfb64('0x40')](_0xb8fa48['query'],_0x39212d[_0xfb64('0x37')]));if(_0xb8fa48['query'][_0xfb64('0x43')]){_0xb34dbc[_0xfb64('0x3f')]=_['merge'](_0xb34dbc[_0xfb64('0x3f')],{'$or':_['map'](_0xb34dbc['attributes'],function(_0x41b2bd){var _0x408808={};_0x408808[_0x41b2bd]={'$like':'%'+_0xb8fa48[_0xfb64('0x35')]['filter']+'%'};return _0x408808;})});}_0xb34dbc=_[_0xfb64('0x41')]({},_0xb34dbc,_0xb8fa48[_0xfb64('0x5c')]);return _0x8c9e50['getTeams'](_0xb34dbc);}})[_0xfb64('0x29')](function(_0x4f9a21){if(_0x4f9a21){_0xe68392=_0x4f9a21['length'];if(!_0xb8fa48[_0xfb64('0x35')][_0xfb64('0x3b')](_0xfb64('0x3c'))){_0xb34dbc[_0xfb64('0x23')]=qs[_0xfb64('0x23')](_0xb8fa48['query']['limit']);_0xb34dbc[_0xfb64('0x21')]=qs[_0xfb64('0x21')](_0xb8fa48['query']['offset']);}return _0x8c9e50[_0xfb64('0x65')](_0xb34dbc);}})[_0xfb64('0x29')](function(_0x474fb9){if(_0x474fb9){return _0x474fb9?{'count':_0xe68392,'rows':_0x474fb9}:null;}})[_0xfb64('0x29')](respondWithResult(_0x284ce1,null))[_0xfb64('0x46')](handleError(_0x284ce1,null));};exports[_0xfb64('0x67')]=function(_0x1348a0,_0x149939,_0x4b999b){var _0x2085f4=_0x1348a0[_0xfb64('0x4d')][_0xfb64('0x68')];return db[_0xfb64('0x66')][_0xfb64('0x45')]({'where':{'id':_0x2085f4},'attributes':['id'],'include':[{'model':db[_0xfb64('0x5d')],'as':_0xfb64('0x69'),'attributes':['id',_0xfb64('0x2d'),_0xfb64('0x6a'),_0xfb64('0x6b'),_0xfb64('0x6c')],'raw':!![]}]})[_0xfb64('0x29')](function(_0x12409e){if(_0x12409e){var _0x311960=_[_0xfb64('0x6d')](_0x12409e,function(_0xe896c3){var _0x1623ac=_0xe896c3[_0xfb64('0x4f')]({'plain':!![]});return _0x1623ac[_0xfb64('0x69')];});return db[_0xfb64('0x31')][_0xfb64('0x57')]({'where':{'id':_0x1348a0[_0xfb64('0x48')]['id']}})[_0xfb64('0x29')](function(_0x43b9f6){return db['sequelize'][_0xfb64('0x6e')](function(_0x492936){return _0x43b9f6[_0xfb64('0x67')](_0x2085f4,{'transaction':_0x492936})[_0xfb64('0x29')](function(){return BPromise['each'](_0x311960,function(_0x26e650){return db['UserOpenchannelQueue'][_0xfb64('0x6f')]({'where':{'UserId':_0x26e650['id'],'OpenchannelQueueId':_0x1348a0[_0xfb64('0x48')]['id']},'transaction':_0x492936});});})['then'](function(){_0x311960[_0xfb64('0x70')](function(_0xc70390){socket['emit'](_0xfb64('0x71'),{'UserId':_0xc70390['id'],'OpenchannelQueueId':_0x43b9f6['id']});});});});});}})[_0xfb64('0x29')](respondWithStatusCode(_0x149939,null))['catch'](handleError(_0x149939,null));};exports['removeTeams']=function(_0x4731ef,_0x32165f,_0x59169f){return db['Team'][_0xfb64('0x45')]({'where':{'id':_0x4731ef[_0xfb64('0x35')][_0xfb64('0x68')]},'attributes':['id'],'include':[{'model':db[_0xfb64('0x5d')],'as':_0xfb64('0x69'),'attributes':['id'],'raw':!![]}]})[_0xfb64('0x29')](handleEntityNotFound(_0x32165f,null))['then'](function(_0x1b97f4){var _0x4305f4=_[_0xfb64('0x30')](_0x1b97f4,'id');var _0x23da25=[];var _0x21afd6=[];var _0x483b19=squel[_0xfb64('0x72')]();_0x483b19['field'](_0xfb64('0x73'))[_0xfb64('0x74')](_0xfb64('0x75'),'tq')[_0xfb64('0x76')]('user_has_teams','ut','ut.TeamId\x20=\x20tq.TeamId')[_0xfb64('0x3f')](_0xfb64('0x77'),_0x4731ef[_0xfb64('0x48')]['id']);for(var _0x5774c5=0x0;_0x5774c5<_0x1b97f4[_0xfb64('0x3a')];_0x5774c5+=0x1){let _0xb8e731=_0x1b97f4[_0x5774c5];for(var _0x113ba3=0x0;_0x113ba3<_0xb8e731['Agents']['length'];_0x113ba3+=0x1){let _0xffbab8=_0xb8e731[_0xfb64('0x69')][_0x113ba3];var _0x583438=_0x483b19['clone']();_0x583438[_0xfb64('0x3f')]('ut.UserId\x20=\x20?',_0xffbab8['id']);_0x21afd6['push'](db[_0xfb64('0x78')][_0xfb64('0x35')](_0x583438[_0xfb64('0x79')](),{'type':db[_0xfb64('0x78')]['QueryTypes'][_0xfb64('0x7a')]})['then'](function(_0x37b306){if(_0x37b306[_0xfb64('0x3a')]===0x1){return _0xffbab8['id'];}else{var _0x71a03f=_[_0xfb64('0x7b')](_['map'](_0x37b306,_0xfb64('0x7c')),function(_0xeacfe9){return _[_0xfb64('0x7d')](_0x4305f4,_0xeacfe9);});if(_0x71a03f){return _0xffbab8['id'];}}}));}}return BPromise[_0xfb64('0x7e')](_0x21afd6)[_0xfb64('0x29')](function(_0x1a1ccf){_0x23da25=_(_0x23da25)[_0xfb64('0x7f')](_0x1a1ccf)['compact']()[_0xfb64('0x80')]();return db['OpenchannelQueue']['find']({'where':{'id':_0x4731ef[_0xfb64('0x48')]['id']}})[_0xfb64('0x29')](function(_0x902267){return db[_0xfb64('0x78')][_0xfb64('0x6e')](function(_0x41dace){return _0x902267[_0xfb64('0x81')](_0x4731ef['query']['ids'],{'transaction':_0x41dace})[_0xfb64('0x29')](function(){if(!_[_0xfb64('0x82')](_0x23da25)){return _0x902267[_0xfb64('0x83')](_0x23da25,{'transaction':_0x41dace});}})['then'](function(){_0x23da25[_0xfb64('0x70')](function(_0xdfce0){socket[_0xfb64('0x84')](_0xfb64('0x85'),{'UserId':_0xdfce0,'OpenchannelQueueId':_0x902267['id']});});});});});});})[_0xfb64('0x29')](respondWithStatusCode(_0x32165f,null))[_0xfb64('0x46')](handleError(_0x32165f,null));};exports['addAgents']=function(_0x20158e,_0x374cfe,_0x489831){return db[_0xfb64('0x31')][_0xfb64('0x57')]({'where':{'id':_0x20158e[_0xfb64('0x48')]['id']}})[_0xfb64('0x29')](handleEntityNotFound(_0x374cfe,null))[_0xfb64('0x29')](function(_0x4bff92){if(_0x4bff92){return _0x4bff92[_0xfb64('0x86')](_0x20158e[_0xfb64('0x4d')][_0xfb64('0x68')],_['omit'](_0x20158e[_0xfb64('0x4d')],[_0xfb64('0x68'),'id'])||{})['spread'](function(_0x3246f0){for(var _0x2c7d33=0x0;_0x2c7d33<_0x20158e[_0xfb64('0x4d')][_0xfb64('0x68')]['length'];_0x2c7d33+=0x1){socket[_0xfb64('0x84')](_0xfb64('0x71'),{'UserId':Number(_0x20158e[_0xfb64('0x4d')][_0xfb64('0x68')][_0x2c7d33]),'OpenchannelQueueId':Number(_0x20158e[_0xfb64('0x48')]['id'])});}return _0x3246f0;});}})['then'](respondWithResult(_0x374cfe,null))[_0xfb64('0x46')](handleError(_0x374cfe,null));};exports['removeAgents']=function(_0x36e6fb,_0x2326db,_0x2ca324){return db[_0xfb64('0x31')][_0xfb64('0x57')]({'where':{'id':_0x36e6fb[_0xfb64('0x48')]['id']}})[_0xfb64('0x29')](handleEntityNotFound(_0x2326db,null))[_0xfb64('0x29')](function(_0x26e18b){if(_0x26e18b){return _0x26e18b[_0xfb64('0x83')](_0x36e6fb[_0xfb64('0x35')][_0xfb64('0x68')])[_0xfb64('0x29')](function(){if(_[_0xfb64('0x87')](_0x36e6fb['query'][_0xfb64('0x68')])){for(var _0x550f77=0x0;_0x550f77<_0x36e6fb[_0xfb64('0x35')][_0xfb64('0x68')][_0xfb64('0x3a')];_0x550f77+=0x1){socket[_0xfb64('0x84')](_0xfb64('0x85'),{'UserId':Number(_0x36e6fb[_0xfb64('0x35')][_0xfb64('0x68')][_0x550f77]),'OpenchannelQueueId':Number(_0x36e6fb[_0xfb64('0x48')]['id'])});}}else{socket[_0xfb64('0x84')]('userOpenchannelQueue:remove',{'UserId':Number(_0x36e6fb['query'][_0xfb64('0x68')]),'OpenchannelQueueId':Number(_0x36e6fb['params']['id'])});}});}})[_0xfb64('0x29')](respondWithStatusCode(_0x2326db,null))[_0xfb64('0x46')](handleError(_0x2326db,null));};exports[_0xfb64('0x88')]=function(_0xba54fa,_0x1b4f33,_0x314eeb){var _0x2ecc67={};var _0x362552={};var _0x22cfe9;var _0x401d56;return db[_0xfb64('0x31')][_0xfb64('0x5a')]({'where':{'id':_0xba54fa[_0xfb64('0x48')]['id']}})[_0xfb64('0x29')](handleEntityNotFound(_0x1b4f33,null))['then'](function(_0x48f135){if(_0x48f135){_0x22cfe9=_0x48f135;_0x362552['model']=_[_0xfb64('0x36')](db[_0xfb64('0x5d')][_0xfb64('0x49')]);_0x362552[_0xfb64('0x35')]=_[_0xfb64('0x36')](_0xba54fa[_0xfb64('0x35')]);_0x362552[_0xfb64('0x37')]=_[_0xfb64('0x38')](_0x362552[_0xfb64('0x34')],_0x362552['query']);_0x2ecc67[_0xfb64('0x39')]=_['intersection'](_0x362552[_0xfb64('0x34')],qs[_0xfb64('0x4a')](_0xba54fa[_0xfb64('0x35')]['fields']));_0x2ecc67['attributes']=_0x2ecc67['attributes'][_0xfb64('0x3a')]?_0x2ecc67[_0xfb64('0x39')]:_0x362552[_0xfb64('0x34')];_0x2ecc67[_0xfb64('0x3d')]=qs[_0xfb64('0x3e')](_0xba54fa['query']['sort']);_0x2ecc67[_0xfb64('0x3f')]=qs[_0xfb64('0x37')](_[_0xfb64('0x40')](_0xba54fa[_0xfb64('0x35')],_0x362552[_0xfb64('0x37')]));if(_0xba54fa[_0xfb64('0x35')][_0xfb64('0x43')]){_0x2ecc67[_0xfb64('0x3f')]=_[_0xfb64('0x41')](_0x2ecc67[_0xfb64('0x3f')],{'$or':_[_0xfb64('0x30')](_0x2ecc67[_0xfb64('0x39')],function(_0x4357c3){var _0x127458={};_0x127458[_0x4357c3]={'$like':'%'+_0xba54fa['query']['filter']+'%'};return _0x127458;})});}_0x2ecc67=_[_0xfb64('0x41')]({},_0x2ecc67,_0xba54fa['options']);return _0x22cfe9[_0xfb64('0x88')](_0x2ecc67);}})[_0xfb64('0x29')](function(_0x414bf9){if(_0x414bf9){_0x401d56=_0x414bf9['length'];if(!_0xba54fa['query'][_0xfb64('0x3b')]('nolimit')){_0x2ecc67[_0xfb64('0x23')]=qs[_0xfb64('0x23')](_0xba54fa['query'][_0xfb64('0x23')]);_0x2ecc67[_0xfb64('0x21')]=qs['offset'](_0xba54fa['query'][_0xfb64('0x21')]);}return _0x22cfe9['getAgents'](_0x2ecc67);}})[_0xfb64('0x29')](function(_0x2ce428){if(_0x2ce428){return _0x2ce428?{'count':_0x401d56,'rows':_0x2ce428}:null;}})[_0xfb64('0x29')](respondWithResult(_0x1b4f33,null))['catch'](handleError(_0x1b4f33,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd9ed=['emit','hasOwnProperty','events','setMaxListeners','save'];(function(_0x5b147d,_0x43292b){var _0x4b5afb=function(_0x1349d3){while(--_0x1349d3){_0x5b147d['push'](_0x5b147d['shift']());}};_0x4b5afb(++_0x43292b);}(_0xd9ed,0x16f));var _0xdd9e=function(_0x3058c8,_0x2ebc13){_0x3058c8=_0x3058c8-0x0;var _0x2d7799=_0xd9ed[_0x3058c8];return _0x2d7799;};'use strict';var EventEmitter=require(_0xdd9e('0x0'));var OpenchannelQueue=require('../../mysqldb')['db']['OpenchannelQueue'];var OpenchannelQueueEvents=new EventEmitter();OpenchannelQueueEvents[_0xdd9e('0x1')](0x0);var events={'afterCreate':_0xdd9e('0x2'),'afterUpdate':'update','afterDestroy':'remove'};function emitEvent(_0x20232f){return function(_0xce4e7b,_0x3ce039,_0x385de9){OpenchannelQueueEvents[_0xdd9e('0x3')](_0x20232f+':'+_0xce4e7b['id'],_0xce4e7b);OpenchannelQueueEvents['emit'](_0x20232f,_0xce4e7b);_0x385de9(null);};}for(var e in events){if(events[_0xdd9e('0x4')](e)){var event=events[e];OpenchannelQueue['hook'](e,emitEvent(event));}}module['exports']=OpenchannelQueueEvents;
\ No newline at end of file
+var _0x4918=['save','remove','emit','hook','exports','OpenchannelQueue','setMaxListeners'];(function(_0x50007c,_0x1cbf11){var _0x5c1ec7=function(_0x52d038){while(--_0x52d038){_0x50007c['push'](_0x50007c['shift']());}};_0x5c1ec7(++_0x1cbf11);}(_0x4918,0x1e8));var _0x8491=function(_0x4a0f16,_0x21ba18){_0x4a0f16=_0x4a0f16-0x0;var _0x45d653=_0x4918[_0x4a0f16];return _0x45d653;};'use strict';var EventEmitter=require('events');var OpenchannelQueue=require('../../mysqldb')['db'][_0x8491('0x0')];var OpenchannelQueueEvents=new EventEmitter();OpenchannelQueueEvents[_0x8491('0x1')](0x0);var events={'afterCreate':_0x8491('0x2'),'afterUpdate':'update','afterDestroy':_0x8491('0x3')};function emitEvent(_0x2545c3){return function(_0x285bed,_0x44e50e,_0x4a6ae4){OpenchannelQueueEvents['emit'](_0x2545c3+':'+_0x285bed['id'],_0x285bed);OpenchannelQueueEvents[_0x8491('0x4')](_0x2545c3,_0x285bed);_0x4a6ae4(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];OpenchannelQueue[_0x8491('0x5')](e,emitEvent(event));}}module[_0x8491('0x6')]=OpenchannelQueueEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdf60=['moment','bluebird','request-promise','path','rimraf','../../config/environment','./openchannelQueue.attributes','define','OpenchannelQueue','openchannel_queues','lodash','util','../../config/logger'];(function(_0x22455e,_0x1562fa){var _0x38fd15=function(_0x1dd0f2){while(--_0x1dd0f2){_0x22455e['push'](_0x22455e['shift']());}};_0x38fd15(++_0x1562fa);}(_0xdf60,0x1c4));var _0x0df6=function(_0x54e4a4,_0x335886){_0x54e4a4=_0x54e4a4-0x0;var _0x2190ec=_0xdf60[_0x54e4a4];return _0x2190ec;};'use strict';var _=require(_0x0df6('0x0'));var util=require(_0x0df6('0x1'));var logger=require(_0x0df6('0x2'))('api');var moment=require(_0x0df6('0x3'));var BPromise=require(_0x0df6('0x4'));var rp=require(_0x0df6('0x5'));var fs=require('fs');var path=require(_0x0df6('0x6'));var rimraf=require(_0x0df6('0x7'));var config=require(_0x0df6('0x8'));var attributes=require(_0x0df6('0x9'));module['exports']=function(_0x24ed27,_0xe78219){return _0x24ed27[_0x0df6('0xa')](_0x0df6('0xb'),attributes,{'tableName':_0x0df6('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xa3f3=['../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','exports','define','OpenchannelQueue','lodash','util'];(function(_0x40f7e6,_0x8c61ae){var _0x156a90=function(_0x2bf1ee){while(--_0x2bf1ee){_0x40f7e6['push'](_0x40f7e6['shift']());}};_0x156a90(++_0x8c61ae);}(_0xa3f3,0x1b8));var _0x3a3f=function(_0x587f69,_0x48a1b1){_0x587f69=_0x587f69-0x0;var _0x28d79b=_0xa3f3[_0x587f69];return _0x28d79b;};'use strict';var _=require(_0x3a3f('0x0'));var util=require(_0x3a3f('0x1'));var logger=require(_0x3a3f('0x2'))(_0x3a3f('0x3'));var moment=require(_0x3a3f('0x4'));var BPromise=require(_0x3a3f('0x5'));var rp=require(_0x3a3f('0x6'));var fs=require('fs');var path=require(_0x3a3f('0x7'));var rimraf=require(_0x3a3f('0x8'));var config=require(_0x3a3f('0x9'));var attributes=require('./openchannelQueue.attributes');module[_0x3a3f('0xa')]=function(_0xad28d,_0x3aa15b){return _0xad28d[_0x3a3f('0xb')](_0x3a3f('0xc'),attributes,{'tableName':'openchannel_queues','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0713=['util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','redis','defaults','socket.io-emitter','./openchannelQueue.socket','request','info','OpenchannelQueue,\x20%s,\x20%s','debug','OpenchannelQueue,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','GetOpenchannelQueue','OpenchannelQueue','findAll','options','raw','where','attributes','limit','include','map','model','then','ShowOpenchannelQueue','find','lodash'];(function(_0x11005e,_0x20c3d2){var _0x29338f=function(_0x3384e9){while(--_0x3384e9){_0x11005e['push'](_0x11005e['shift']());}};_0x29338f(++_0x20c3d2);}(_0x0713,0x12c));var _0x3071=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x0713[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0x3071('0x0'));var util=require(_0x3071('0x1'));var moment=require(_0x3071('0x2'));var BPromise=require(_0x3071('0x3'));var rs=require(_0x3071('0x4'));var fs=require('fs');var Redis=require(_0x3071('0x5'));var db=require(_0x3071('0x6'))['db'];var utils=require(_0x3071('0x7'));var logger=require(_0x3071('0x8'))(_0x3071('0x9'));var config=require(_0x3071('0xa'));var jayson=require(_0x3071('0xb'));var client=jayson[_0x3071('0xc')]['http']({'port':0x232a});config[_0x3071('0xd')]=_[_0x3071('0xe')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x3071('0xf'))(new Redis(config[_0x3071('0xd')]));require(_0x3071('0x10'))['register'](socket);function respondWithRpcPromise(_0x54b468,_0x4106fa,_0x3d3304){return new BPromise(function(_0x50b9e5,_0x391e41){return client[_0x3071('0x11')](_0x54b468,_0x3d3304)['then'](function(_0x2de9de){logger[_0x3071('0x12')](_0x3071('0x13'),_0x4106fa,'request\x20sent');logger[_0x3071('0x14')](_0x3071('0x15'),_0x4106fa,_0x3071('0x16'),JSON[_0x3071('0x17')](_0x2de9de));if(_0x2de9de[_0x3071('0x18')]){if(_0x2de9de['error'][_0x3071('0x19')]===0x1f4){logger[_0x3071('0x18')](_0x3071('0x13'),_0x4106fa,_0x2de9de[_0x3071('0x18')]['message']);return _0x391e41(_0x2de9de[_0x3071('0x18')][_0x3071('0x1a')]);}logger[_0x3071('0x18')]('OpenchannelQueue,\x20%s,\x20%s',_0x4106fa,_0x2de9de['error'][_0x3071('0x1a')]);return _0x50b9e5(_0x2de9de[_0x3071('0x18')][_0x3071('0x1a')]);}else{logger[_0x3071('0x12')](_0x3071('0x13'),_0x4106fa,_0x3071('0x16'));_0x50b9e5(_0x2de9de[_0x3071('0x1b')][_0x3071('0x1a')]);}})[_0x3071('0x1c')](function(_0x1259ac){logger[_0x3071('0x18')](_0x3071('0x13'),_0x4106fa,_0x1259ac);_0x391e41(_0x1259ac);});});}exports[_0x3071('0x1d')]=function(_0x14a17e){var _0x5c2896=this;return new Promise(function(_0x5ac8b2,_0x299832){return db[_0x3071('0x1e')][_0x3071('0x1f')]({'raw':_0x14a17e[_0x3071('0x20')]?_0x14a17e[_0x3071('0x20')][_0x3071('0x21')]===undefined?!![]:![]:!![],'where':_0x14a17e[_0x3071('0x20')]?_0x14a17e[_0x3071('0x20')][_0x3071('0x22')]||null:null,'attributes':_0x14a17e['options']?_0x14a17e[_0x3071('0x20')][_0x3071('0x23')]||null:null,'limit':_0x14a17e[_0x3071('0x20')]?_0x14a17e[_0x3071('0x20')][_0x3071('0x24')]||null:null,'include':_0x14a17e[_0x3071('0x20')]?_0x14a17e['options'][_0x3071('0x25')]?_[_0x3071('0x26')](_0x14a17e[_0x3071('0x20')]['include'],function(_0x1b6856){return{'model':db[_0x1b6856[_0x3071('0x27')]],'as':_0x1b6856['as'],'attributes':_0x1b6856['attributes'],'include':_0x1b6856[_0x3071('0x25')]?_['map'](_0x1b6856[_0x3071('0x25')],function(_0x28a071){return{'model':db[_0x28a071[_0x3071('0x27')]],'as':_0x28a071['as'],'attributes':_0x28a071[_0x3071('0x23')],'include':_0x28a071[_0x3071('0x25')]?_['map'](_0x28a071[_0x3071('0x25')],function(_0x375488){return{'model':db[_0x375488[_0x3071('0x27')]],'as':_0x375488['as'],'attributes':_0x375488['attributes']};}):[]};}):[]};}):[]:[]})[_0x3071('0x28')](function(_0x255522){logger[_0x3071('0x12')](_0x3071('0x1d'),_0x14a17e);logger[_0x3071('0x14')](_0x3071('0x1d'),_0x14a17e,JSON['stringify'](_0x255522));_0x5ac8b2(_0x255522);})[_0x3071('0x1c')](function(_0x3e2a33){logger[_0x3071('0x18')](_0x3071('0x1d'),_0x3e2a33[_0x3071('0x1a')],_0x14a17e);_0x299832(_0x5c2896[_0x3071('0x18')](0x1f4,_0x3e2a33[_0x3071('0x1a')]));});});};exports[_0x3071('0x29')]=function(_0x9b0eeb){var _0x474e6a=this;return new Promise(function(_0x551631,_0x338e31){return db[_0x3071('0x1e')][_0x3071('0x2a')]({'raw':_0x9b0eeb[_0x3071('0x20')]?_0x9b0eeb[_0x3071('0x20')][_0x3071('0x21')]===undefined?!![]:![]:!![],'where':_0x9b0eeb[_0x3071('0x20')]?_0x9b0eeb[_0x3071('0x20')][_0x3071('0x22')]||null:null,'attributes':_0x9b0eeb[_0x3071('0x20')]?_0x9b0eeb[_0x3071('0x20')][_0x3071('0x23')]||null:null,'include':_0x9b0eeb[_0x3071('0x20')]?_0x9b0eeb[_0x3071('0x20')][_0x3071('0x25')]?_[_0x3071('0x26')](_0x9b0eeb[_0x3071('0x20')][_0x3071('0x25')],function(_0x2ac399){return{'model':db[_0x2ac399[_0x3071('0x27')]],'as':_0x2ac399['as'],'attributes':_0x2ac399[_0x3071('0x23')],'include':_0x2ac399[_0x3071('0x25')]?_['map'](_0x2ac399[_0x3071('0x25')],function(_0x28dd66){return{'model':db[_0x28dd66[_0x3071('0x27')]],'as':_0x28dd66['as'],'attributes':_0x28dd66['attributes'],'include':_0x28dd66[_0x3071('0x25')]?_[_0x3071('0x26')](_0x28dd66[_0x3071('0x25')],function(_0x206c99){return{'model':db[_0x206c99[_0x3071('0x27')]],'as':_0x206c99['as'],'attributes':_0x206c99['attributes']};}):[]};}):[]};}):[]:[]})[_0x3071('0x28')](function(_0x3fda6a){logger[_0x3071('0x12')](_0x3071('0x29'),_0x9b0eeb);logger[_0x3071('0x14')](_0x3071('0x29'),_0x9b0eeb,JSON[_0x3071('0x17')](_0x3fda6a));_0x551631(_0x3fda6a);})['catch'](function(_0x2971ed){logger[_0x3071('0x18')](_0x3071('0x29'),_0x2971ed[_0x3071('0x1a')],_0x9b0eeb);_0x338e31(_0x474e6a['error'](0x1f4,_0x2971ed[_0x3071('0x1a')]));});});};
\ No newline at end of file
+var _0xa13c=['http','redis','defaults','localhost','socket.io-emitter','./openchannelQueue.socket','register','then','info','request\x20sent','debug','OpenchannelQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message','OpenchannelQueue,\x20%s,\x20%s','catch','GetOpenchannelQueue','findAll','options','raw','where','attributes','limit','include','model','map','ShowOpenchannelQueue','OpenchannelQueue','find','lodash','util','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xa13c,0x71));var _0xca13=function(_0x2700aa,_0x5dc51b){_0x2700aa=_0x2700aa-0x0;var _0x566dc9=_0xa13c[_0x2700aa];return _0x566dc9;};'use strict';var _=require(_0xca13('0x0'));var util=require(_0xca13('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0xca13('0x2'));var fs=require('fs');var Redis=require(_0xca13('0x3'));var db=require(_0xca13('0x4'))['db'];var utils=require(_0xca13('0x5'));var logger=require(_0xca13('0x6'))('rpc');var config=require(_0xca13('0x7'));var jayson=require(_0xca13('0x8'));var client=jayson[_0xca13('0x9')][_0xca13('0xa')]({'port':0x232a});config[_0xca13('0xb')]=_[_0xca13('0xc')](config[_0xca13('0xb')],{'host':_0xca13('0xd'),'port':0x18eb});var socket=require(_0xca13('0xe'))(new Redis(config[_0xca13('0xb')]));require(_0xca13('0xf'))[_0xca13('0x10')](socket);function respondWithRpcPromise(_0x58cd92,_0x47631c,_0xf5d9ab){return new BPromise(function(_0x3d59ef,_0x254553){return client['request'](_0x58cd92,_0xf5d9ab)[_0xca13('0x11')](function(_0x2ae5f1){logger[_0xca13('0x12')]('OpenchannelQueue,\x20%s,\x20%s',_0x47631c,_0xca13('0x13'));logger[_0xca13('0x14')](_0xca13('0x15'),_0x47631c,_0xca13('0x13'),JSON[_0xca13('0x16')](_0x2ae5f1));if(_0x2ae5f1[_0xca13('0x17')]){if(_0x2ae5f1['error'][_0xca13('0x18')]===0x1f4){logger[_0xca13('0x17')]('OpenchannelQueue,\x20%s,\x20%s',_0x47631c,_0x2ae5f1['error'][_0xca13('0x19')]);return _0x254553(_0x2ae5f1[_0xca13('0x17')][_0xca13('0x19')]);}logger['error'](_0xca13('0x1a'),_0x47631c,_0x2ae5f1[_0xca13('0x17')][_0xca13('0x19')]);return _0x3d59ef(_0x2ae5f1[_0xca13('0x17')][_0xca13('0x19')]);}else{logger[_0xca13('0x12')](_0xca13('0x1a'),_0x47631c,_0xca13('0x13'));_0x3d59ef(_0x2ae5f1['result'][_0xca13('0x19')]);}})[_0xca13('0x1b')](function(_0x46dd42){logger[_0xca13('0x17')](_0xca13('0x1a'),_0x47631c,_0x46dd42);_0x254553(_0x46dd42);});});}exports[_0xca13('0x1c')]=function(_0x5134a0){var _0x5d5be4=this;return new Promise(function(_0x475932,_0x4a3edd){return db['OpenchannelQueue'][_0xca13('0x1d')]({'raw':_0x5134a0['options']?_0x5134a0[_0xca13('0x1e')][_0xca13('0x1f')]===undefined?!![]:![]:!![],'where':_0x5134a0['options']?_0x5134a0['options'][_0xca13('0x20')]||null:null,'attributes':_0x5134a0[_0xca13('0x1e')]?_0x5134a0['options'][_0xca13('0x21')]||null:null,'limit':_0x5134a0[_0xca13('0x1e')]?_0x5134a0[_0xca13('0x1e')][_0xca13('0x22')]||null:null,'include':_0x5134a0[_0xca13('0x1e')]?_0x5134a0['options'][_0xca13('0x23')]?_['map'](_0x5134a0[_0xca13('0x1e')][_0xca13('0x23')],function(_0x10c962){return{'model':db[_0x10c962[_0xca13('0x24')]],'as':_0x10c962['as'],'attributes':_0x10c962[_0xca13('0x21')],'include':_0x10c962[_0xca13('0x23')]?_['map'](_0x10c962[_0xca13('0x23')],function(_0x1ace52){return{'model':db[_0x1ace52[_0xca13('0x24')]],'as':_0x1ace52['as'],'attributes':_0x1ace52[_0xca13('0x21')],'include':_0x1ace52['include']?_[_0xca13('0x25')](_0x1ace52[_0xca13('0x23')],function(_0x1f2aca){return{'model':db[_0x1f2aca[_0xca13('0x24')]],'as':_0x1f2aca['as'],'attributes':_0x1f2aca['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x47a712){logger[_0xca13('0x12')](_0xca13('0x1c'),_0x5134a0);logger[_0xca13('0x14')]('GetOpenchannelQueue',_0x5134a0,JSON[_0xca13('0x16')](_0x47a712));_0x475932(_0x47a712);})[_0xca13('0x1b')](function(_0x3b48f7){logger[_0xca13('0x17')](_0xca13('0x1c'),_0x3b48f7[_0xca13('0x19')],_0x5134a0);_0x4a3edd(_0x5d5be4['error'](0x1f4,_0x3b48f7[_0xca13('0x19')]));});});};exports[_0xca13('0x26')]=function(_0x52114){var _0x37e9c4=this;return new Promise(function(_0x2fd18f,_0x2dc1b4){return db[_0xca13('0x27')][_0xca13('0x28')]({'raw':_0x52114[_0xca13('0x1e')]?_0x52114[_0xca13('0x1e')]['raw']===undefined?!![]:![]:!![],'where':_0x52114[_0xca13('0x1e')]?_0x52114['options'][_0xca13('0x20')]||null:null,'attributes':_0x52114[_0xca13('0x1e')]?_0x52114[_0xca13('0x1e')]['attributes']||null:null,'include':_0x52114[_0xca13('0x1e')]?_0x52114['options'][_0xca13('0x23')]?_[_0xca13('0x25')](_0x52114[_0xca13('0x1e')]['include'],function(_0x396c55){return{'model':db[_0x396c55['model']],'as':_0x396c55['as'],'attributes':_0x396c55[_0xca13('0x21')],'include':_0x396c55['include']?_['map'](_0x396c55['include'],function(_0x563db2){return{'model':db[_0x563db2[_0xca13('0x24')]],'as':_0x563db2['as'],'attributes':_0x563db2[_0xca13('0x21')],'include':_0x563db2[_0xca13('0x23')]?_['map'](_0x563db2[_0xca13('0x23')],function(_0x29d4cd){return{'model':db[_0x29d4cd[_0xca13('0x24')]],'as':_0x29d4cd['as'],'attributes':_0x29d4cd['attributes']};}):[]};}):[]};}):[]:[]})[_0xca13('0x11')](function(_0x5c6df2){logger[_0xca13('0x12')](_0xca13('0x26'),_0x52114);logger[_0xca13('0x14')](_0xca13('0x26'),_0x52114,JSON['stringify'](_0x5c6df2));_0x2fd18f(_0x5c6df2);})[_0xca13('0x1b')](function(_0x1daa16){logger[_0xca13('0x17')](_0xca13('0x26'),_0x1daa16[_0xca13('0x19')],_0x52114);_0x2dc1b4(_0x37e9c4['error'](0x1f4,_0x1daa16[_0xca13('0x19')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x90e2=['removeListener','length','openchannelQueue:','save'];(function(_0x338f73,_0x1945c8){var _0x163fdf=function(_0x4cd033){while(--_0x4cd033){_0x338f73['push'](_0x338f73['shift']());}};_0x163fdf(++_0x1945c8);}(_0x90e2,0x183));var _0x290e=function(_0x5e98c2,_0x49675b){_0x5e98c2=_0x5e98c2-0x0;var _0xd987d8=_0x90e2[_0x5e98c2];return _0xd987d8;};'use strict';var OpenchannelQueueEvents=require('./openchannelQueue.events');var events=[_0x290e('0x0'),'remove','update'];function createListener(_0x3568ed,_0x41736c){return function(_0x453caf){_0x41736c['emit'](_0x3568ed,_0x453caf);};}function removeListener(_0x26c839,_0x5a244a){return function(){OpenchannelQueueEvents[_0x290e('0x1')](_0x26c839,_0x5a244a);};}exports['register']=function(_0x502fde){for(var _0x5b3c09=0x0,_0x1e2e8b=events[_0x290e('0x2')];_0x5b3c09<_0x1e2e8b;_0x5b3c09++){var _0x27927b=events[_0x5b3c09];var _0x1727e7=createListener(_0x290e('0x3')+_0x27927b,_0x502fde);OpenchannelQueueEvents['on'](_0x27927b,_0x1727e7);}};
\ No newline at end of file
+var _0xf603=['emit','removeListener','length','openchannelQueue:','./openchannelQueue.events','save','remove'];(function(_0x53012d,_0x497f0f){var _0x1e0abd=function(_0x3720ae){while(--_0x3720ae){_0x53012d['push'](_0x53012d['shift']());}};_0x1e0abd(++_0x497f0f);}(_0xf603,0xeb));var _0x3f60=function(_0x303498,_0x5c9534){_0x303498=_0x303498-0x0;var _0x92f1ad=_0xf603[_0x303498];return _0x92f1ad;};'use strict';var OpenchannelQueueEvents=require(_0x3f60('0x0'));var events=[_0x3f60('0x1'),_0x3f60('0x2'),'update'];function createListener(_0x16d28f,_0xb20102){return function(_0x3da9d6){_0xb20102[_0x3f60('0x3')](_0x16d28f,_0x3da9d6);};}function removeListener(_0x24aafb,_0x553e8b){return function(){OpenchannelQueueEvents[_0x3f60('0x4')](_0x24aafb,_0x553e8b);};}exports['register']=function(_0x5914cd){for(var _0x2910c7=0x0,_0x1ec43c=events[_0x3f60('0x5')];_0x2910c7<_0x1ec43c;_0x2910c7++){var _0x17659b=events[_0x2910c7];var _0x434249=createListener(_0x3f60('0x6')+_0x17659b,_0x5914cd);OpenchannelQueueEvents['on'](_0x17659b,_0x434249);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x67b1=['exports','util','path','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./openchannelQueueReport.controller','get','isAuthenticated','index','/describe','describe','/:id','show','post','put','update','delete'];(function(_0x3b380d,_0x4bf247){var _0x54502b=function(_0x35d207){while(--_0x35d207){_0x3b380d['push'](_0x3b380d['shift']());}};_0x54502b(++_0x4bf247);}(_0x67b1,0xfd));var _0x167b=function(_0xb99421,_0xaab133){_0xb99421=_0xb99421-0x0;var _0x4b3ec7=_0x67b1[_0xb99421];return _0x4b3ec7;};'use strict';var multer=require('multer');var util=require(_0x167b('0x0'));var path=require(_0x167b('0x1'));var timeout=require(_0x167b('0x2'));var express=require(_0x167b('0x3'));var router=express['Router']();var fs_extra=require(_0x167b('0x4'));var auth=require(_0x167b('0x5'));var interaction=require(_0x167b('0x6'));var config=require(_0x167b('0x7'));var controller=require(_0x167b('0x8'));router[_0x167b('0x9')]('/',auth[_0x167b('0xa')](),controller[_0x167b('0xb')]);router[_0x167b('0x9')](_0x167b('0xc'),auth[_0x167b('0xa')](),controller[_0x167b('0xd')]);router[_0x167b('0x9')](_0x167b('0xe'),auth[_0x167b('0xa')](),controller[_0x167b('0xf')]);router[_0x167b('0x10')]('/',auth[_0x167b('0xa')](),controller['create']);router[_0x167b('0x11')](_0x167b('0xe'),auth[_0x167b('0xa')](),controller[_0x167b('0x12')]);router[_0x167b('0x13')](_0x167b('0xe'),auth[_0x167b('0xa')](),controller['destroy']);module[_0x167b('0x14')]=router;
\ No newline at end of file
+var _0x4457=['./openchannelQueueReport.controller','get','isAuthenticated','/describe','describe','/:id','show','create','update','delete','destroy','exports','multer','util','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x4457,0x138));var _0x7445=function(_0x34e79d,_0x1fb826){_0x34e79d=_0x34e79d-0x0;var _0x56afa8=_0x4457[_0x34e79d];return _0x56afa8;};'use strict';var multer=require(_0x7445('0x0'));var util=require(_0x7445('0x1'));var path=require('path');var timeout=require(_0x7445('0x2'));var express=require(_0x7445('0x3'));var router=express[_0x7445('0x4')]();var fs_extra=require(_0x7445('0x5'));var auth=require(_0x7445('0x6'));var interaction=require(_0x7445('0x7'));var config=require('../../config/environment');var controller=require(_0x7445('0x8'));router[_0x7445('0x9')]('/',auth[_0x7445('0xa')](),controller['index']);router[_0x7445('0x9')](_0x7445('0xb'),auth[_0x7445('0xa')](),controller[_0x7445('0xc')]);router['get'](_0x7445('0xd'),auth[_0x7445('0xa')](),controller[_0x7445('0xe')]);router['post']('/',auth[_0x7445('0xa')](),controller[_0x7445('0xf')]);router['put'](_0x7445('0xd'),auth[_0x7445('0xa')](),controller[_0x7445('0x10')]);router[_0x7445('0x11')](_0x7445('0xd'),auth['isAuthenticated'](),controller[_0x7445('0x12')]);module[_0x7445('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x90fc=['STRING','DATE','sequelize','exports'];(function(_0x3370aa,_0x282cfc){var _0xa5801a=function(_0x22144e){while(--_0x22144e){_0x3370aa['push'](_0x3370aa['shift']());}};_0xa5801a(++_0x282cfc);}(_0x90fc,0x186));var _0xc90f=function(_0x88cd7b,_0x4c884c){_0x88cd7b=_0x88cd7b-0x0;var _0x56fcc8=_0x90fc[_0x88cd7b];return _0x56fcc8;};'use strict';var moment=require('moment');var Sequelize=require(_0xc90f('0x0'));module[_0xc90f('0x1')]={'uniqueid':{'type':Sequelize[_0xc90f('0x2')],'allowNull':![]},'from':{'type':Sequelize['STRING']},'joinAt':{'type':Sequelize[_0xc90f('0x3')]},'leaveAt':{'type':Sequelize[_0xc90f('0x3')]},'acceptAt':{'type':Sequelize[_0xc90f('0x3')]},'exitAt':{'type':Sequelize['DATE']},'reason':{'type':Sequelize[_0xc90f('0x2')]}};
\ No newline at end of file
+var _0x31dc=['exports','STRING','DATE','sequelize'];(function(_0x655fc5,_0x498cc5){var _0x20ddf5=function(_0x592c4b){while(--_0x592c4b){_0x655fc5['push'](_0x655fc5['shift']());}};_0x20ddf5(++_0x498cc5);}(_0x31dc,0xeb));var _0xc31d=function(_0x117bdf,_0x232ac0){_0x117bdf=_0x117bdf-0x0;var _0x1c83db=_0x31dc[_0x117bdf];return _0x1c83db;};'use strict';var moment=require('moment');var Sequelize=require(_0xc31d('0x0'));module[_0xc31d('0x1')]={'uniqueid':{'type':Sequelize[_0xc31d('0x2')],'allowNull':![]},'from':{'type':Sequelize[_0xc31d('0x2')]},'joinAt':{'type':Sequelize[_0xc31d('0x3')]},'leaveAt':{'type':Sequelize[_0xc31d('0x3')]},'acceptAt':{'type':Sequelize['DATE']},'exitAt':{'type':Sequelize[_0xc31d('0x3')]},'reason':{'type':Sequelize[_0xc31d('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x29bc=['attributes','fields','length','hasOwnProperty','sort','where','filters','pick','merge','VIRTUAL','filter','options','OpenchannelQueueReport','includeAll','include','findAll','rows','show','find','catch','create','update','body','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','lodash','squel','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','json','offset','undefined','limit','count','set','apply','reject','save','then','destroy','error','stack','name','send','index','map','rawAttributes','fieldName','type','key','model','query','keys','intersection'];(function(_0x43379c,_0x271d36){var _0x495648=function(_0x3f4652){while(--_0x3f4652){_0x43379c['push'](_0x43379c['shift']());}};_0x495648(++_0x271d36);}(_0x29bc,0x1a3));var _0xc29b=function(_0x4cf98e,_0xba4b79){_0x4cf98e=_0x4cf98e-0x0;var _0x1623ac=_0x29bc[_0x4cf98e];return _0x1623ac;};'use strict';var emlformat=require(_0xc29b('0x0'));var rimraf=require(_0xc29b('0x1'));var zipdir=require(_0xc29b('0x2'));var jsonpatch=require(_0xc29b('0x3'));var rp=require(_0xc29b('0x4'));var moment=require(_0xc29b('0x5'));var BPromise=require(_0xc29b('0x6'));var Mustache=require(_0xc29b('0x7'));var util=require(_0xc29b('0x8'));var path=require('path');var sox=require(_0xc29b('0x9'));var csv=require(_0xc29b('0xa'));var ejs=require(_0xc29b('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xc29b('0xc'));var squel=require(_0xc29b('0xd'));var crypto=require('crypto');var jsforce=require(_0xc29b('0xe'));var deskjs=require('desk.js');var toCsv=require(_0xc29b('0xa'));var querystring=require(_0xc29b('0xf'));var Papa=require(_0xc29b('0x10'));var Redis=require(_0xc29b('0x11'));var authService=require(_0xc29b('0x12'));var qs=require(_0xc29b('0x13'));var as=require(_0xc29b('0x14'));var hardwareService=require(_0xc29b('0x15'));var logger=require(_0xc29b('0x16'))(_0xc29b('0x17'));var utils=require(_0xc29b('0x18'));var config=require(_0xc29b('0x19'));var licenseUtil=require(_0xc29b('0x1a'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x5e6456,_0x37a580){_0x37a580=_0x37a580||0xcc;return function(_0x458074){if(_0x458074){return _0x5e6456[_0xc29b('0x1b')](_0x37a580);}return _0x5e6456[_0xc29b('0x1c')](_0x37a580)[_0xc29b('0x1d')]();};}function respondWithResult(_0xb48148,_0x44b0ad){_0x44b0ad=_0x44b0ad||0xc8;return function(_0x1cee82){if(_0x1cee82){return _0xb48148[_0xc29b('0x1c')](_0x44b0ad)[_0xc29b('0x1e')](_0x1cee82);}};}function respondWithFilteredResult(_0x3c1283,_0x3b13fd){return function(_0x5a45e0){if(_0x5a45e0){var _0x24b113=typeof _0x3b13fd[_0xc29b('0x1f')]===_0xc29b('0x20')&&typeof _0x3b13fd[_0xc29b('0x21')]===_0xc29b('0x20');var _0x4fec9f=_0x5a45e0[_0xc29b('0x22')];var _0x36b893=_0x24b113?0x0:_0x3b13fd[_0xc29b('0x1f')];var _0x6a08ed=_0x24b113?_0x5a45e0[_0xc29b('0x22')]:_0x3b13fd[_0xc29b('0x1f')]+_0x3b13fd[_0xc29b('0x21')];var _0x935bfe;if(_0x6a08ed>=_0x4fec9f){_0x6a08ed=_0x4fec9f;_0x935bfe=0xc8;}else{_0x935bfe=0xce;}_0x3c1283[_0xc29b('0x1c')](_0x935bfe);return _0x3c1283[_0xc29b('0x23')]('Content-Range',_0x36b893+'-'+_0x6a08ed+'/'+_0x4fec9f)['json'](_0x5a45e0);}return null;};}function patchUpdates(_0x13a39b){return function(_0x6bdf53){try{jsonpatch[_0xc29b('0x24')](_0x6bdf53,_0x13a39b,!![]);}catch(_0x41ad91){return BPromise[_0xc29b('0x25')](_0x41ad91);}return _0x6bdf53[_0xc29b('0x26')]();};}function saveUpdates(_0x587f3a,_0x92b5ee){return function(_0x5799dc){if(_0x5799dc){return _0x5799dc['update'](_0x587f3a)[_0xc29b('0x27')](function(_0x5c86e0){return _0x5c86e0;});}return null;};}function removeEntity(_0xf500e4,_0x569816){return function(_0x82f6da){if(_0x82f6da){return _0x82f6da[_0xc29b('0x28')]()[_0xc29b('0x27')](function(){_0xf500e4[_0xc29b('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x2b94bf,_0xbbe28c){return function(_0x367500){if(!_0x367500){_0x2b94bf['sendStatus'](0x194);}return _0x367500;};}function handleError(_0x1a713a,_0x44e25a){_0x44e25a=_0x44e25a||0x1f4;return function(_0x600fb6){logger[_0xc29b('0x29')](_0x600fb6[_0xc29b('0x2a')]);if(_0x600fb6[_0xc29b('0x2b')]){delete _0x600fb6[_0xc29b('0x2b')];}_0x1a713a[_0xc29b('0x1c')](_0x44e25a)[_0xc29b('0x2c')](_0x600fb6);};}exports[_0xc29b('0x2d')]=function(_0x846066,_0x36278d){var _0x13954e={},_0x1f9b5a={},_0x43de27={'count':0x0,'rows':[]};var _0x255e07=_[_0xc29b('0x2e')](db['OpenchannelQueueReport'][_0xc29b('0x2f')],function(_0x7b1857){return{'name':_0x7b1857[_0xc29b('0x30')],'type':_0x7b1857[_0xc29b('0x31')][_0xc29b('0x32')]};});_0x1f9b5a[_0xc29b('0x33')]=_[_0xc29b('0x2e')](_0x255e07,'name');_0x1f9b5a[_0xc29b('0x34')]=_[_0xc29b('0x35')](_0x846066[_0xc29b('0x34')]);_0x1f9b5a['filters']=_[_0xc29b('0x36')](_0x1f9b5a['model'],_0x1f9b5a[_0xc29b('0x34')]);_0x13954e[_0xc29b('0x37')]=_[_0xc29b('0x36')](_0x1f9b5a[_0xc29b('0x33')],qs[_0xc29b('0x38')](_0x846066[_0xc29b('0x34')][_0xc29b('0x38')]));_0x13954e['attributes']=_0x13954e[_0xc29b('0x37')][_0xc29b('0x39')]?_0x13954e['attributes']:_0x1f9b5a[_0xc29b('0x33')];if(!_0x846066[_0xc29b('0x34')][_0xc29b('0x3a')]('nolimit')){_0x13954e['limit']=qs[_0xc29b('0x21')](_0x846066[_0xc29b('0x34')][_0xc29b('0x21')]);_0x13954e[_0xc29b('0x1f')]=qs[_0xc29b('0x1f')](_0x846066['query'][_0xc29b('0x1f')]);}_0x13954e['order']=qs[_0xc29b('0x3b')](_0x846066[_0xc29b('0x34')]['sort']);_0x13954e[_0xc29b('0x3c')]=qs[_0xc29b('0x3d')](_[_0xc29b('0x3e')](_0x846066[_0xc29b('0x34')],_0x1f9b5a[_0xc29b('0x3d')]),_0x255e07);if(_0x846066[_0xc29b('0x34')]['filter']){_0x13954e[_0xc29b('0x3c')]=_[_0xc29b('0x3f')](_0x13954e['where'],{'$or':_[_0xc29b('0x2e')](_0x255e07,function(_0xfee940){if(_0xfee940[_0xc29b('0x31')]!==_0xc29b('0x40')){var _0x57e21c={};_0x57e21c[_0xfee940['name']]={'$like':'%'+_0x846066[_0xc29b('0x34')][_0xc29b('0x41')]+'%'};return _0x57e21c;}})});}_0x13954e=_[_0xc29b('0x3f')]({},_0x13954e,_0x846066[_0xc29b('0x42')]);var _0x2a6d1a={'where':_0x13954e[_0xc29b('0x3c')]};return db[_0xc29b('0x43')][_0xc29b('0x22')](_0x2a6d1a)[_0xc29b('0x27')](function(_0x4b2ae4){_0x43de27[_0xc29b('0x22')]=_0x4b2ae4;if(_0x846066[_0xc29b('0x34')][_0xc29b('0x44')]){_0x13954e[_0xc29b('0x45')]=[{'all':!![]}];}return db[_0xc29b('0x43')][_0xc29b('0x46')](_0x13954e);})[_0xc29b('0x27')](function(_0x25ac8d){_0x43de27[_0xc29b('0x47')]=_0x25ac8d;return _0x43de27;})['then'](respondWithFilteredResult(_0x36278d,_0x13954e))['catch'](handleError(_0x36278d,null));};exports[_0xc29b('0x48')]=function(_0x3933e9,_0x4275d2){var _0x39f8d3={'raw':!![],'where':{'id':_0x3933e9['params']['id']}},_0x5ba3aa={};_0x5ba3aa[_0xc29b('0x33')]=_[_0xc29b('0x35')](db[_0xc29b('0x43')][_0xc29b('0x2f')]);_0x5ba3aa[_0xc29b('0x34')]=_[_0xc29b('0x35')](_0x3933e9['query']);_0x5ba3aa[_0xc29b('0x3d')]=_[_0xc29b('0x36')](_0x5ba3aa['model'],_0x5ba3aa[_0xc29b('0x34')]);_0x39f8d3[_0xc29b('0x37')]=_[_0xc29b('0x36')](_0x5ba3aa[_0xc29b('0x33')],qs[_0xc29b('0x38')](_0x3933e9['query']['fields']));_0x39f8d3['attributes']=_0x39f8d3[_0xc29b('0x37')]['length']?_0x39f8d3['attributes']:_0x5ba3aa[_0xc29b('0x33')];if(_0x3933e9[_0xc29b('0x34')][_0xc29b('0x44')]){_0x39f8d3[_0xc29b('0x45')]=[{'all':!![]}];}_0x39f8d3=_['merge']({},_0x39f8d3,_0x3933e9[_0xc29b('0x42')]);return db[_0xc29b('0x43')][_0xc29b('0x49')](_0x39f8d3)[_0xc29b('0x27')](handleEntityNotFound(_0x4275d2,null))['then'](respondWithResult(_0x4275d2,null))[_0xc29b('0x4a')](handleError(_0x4275d2,null));};exports[_0xc29b('0x4b')]=function(_0x1d6593,_0x113771){return db[_0xc29b('0x43')][_0xc29b('0x4b')](_0x1d6593['body'],{})[_0xc29b('0x27')](respondWithResult(_0x113771,0xc9))[_0xc29b('0x4a')](handleError(_0x113771,null));};exports[_0xc29b('0x4c')]=function(_0x112479,_0x223a9e){if(_0x112479['body']['id']){delete _0x112479[_0xc29b('0x4d')]['id'];}return db['OpenchannelQueueReport'][_0xc29b('0x49')]({'where':{'id':_0x112479['params']['id']}})['then'](handleEntityNotFound(_0x223a9e,null))['then'](saveUpdates(_0x112479[_0xc29b('0x4d')],null))[_0xc29b('0x27')](respondWithResult(_0x223a9e,null))[_0xc29b('0x4a')](handleError(_0x223a9e,null));};exports[_0xc29b('0x28')]=function(_0x54323a,_0xaf505e){return db[_0xc29b('0x43')]['find']({'where':{'id':_0x54323a['params']['id']}})[_0xc29b('0x27')](handleEntityNotFound(_0xaf505e,null))[_0xc29b('0x27')](removeEntity(_0xaf505e,null))['catch'](handleError(_0xaf505e,null));};exports[_0xc29b('0x4e')]=function(_0x3b1317,_0x433747){return db[_0xc29b('0x43')][_0xc29b('0x4e')]()[_0xc29b('0x27')](respondWithResult(_0x433747,null))[_0xc29b('0x4a')](handleError(_0x433747,null));};
\ No newline at end of file
+var _0xefd1=['offset','undefined','count','limit','Content-Range','json','apply','reject','update','destroy','then','error','stack','name','send','map','OpenchannelQueueReport','rawAttributes','fieldName','type','key','query','keys','filters','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','options','includeAll','include','rows','catch','show','params','intersection','find','body','describe','eml-format','rimraf','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/license/util','../../mysqldb','sendStatus','end','status'];(function(_0x1d1d85,_0x2c91f4){var _0x19a6cd=function(_0x1ac1b5){while(--_0x1ac1b5){_0x1d1d85['push'](_0x1d1d85['shift']());}};_0x19a6cd(++_0x2c91f4);}(_0xefd1,0xc5));var _0x1efd=function(_0x2bce5a,_0x4dcb7e){_0x2bce5a=_0x2bce5a-0x0;var _0x2224f9=_0xefd1[_0x2bce5a];return _0x2224f9;};'use strict';var emlformat=require(_0x1efd('0x0'));var rimraf=require(_0x1efd('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x1efd('0x2'));var moment=require(_0x1efd('0x3'));var BPromise=require(_0x1efd('0x4'));var Mustache=require(_0x1efd('0x5'));var util=require(_0x1efd('0x6'));var path=require(_0x1efd('0x7'));var sox=require(_0x1efd('0x8'));var csv=require(_0x1efd('0x9'));var ejs=require(_0x1efd('0xa'));var fs=require('fs');var fs_extra=require(_0x1efd('0xb'));var _=require(_0x1efd('0xc'));var squel=require(_0x1efd('0xd'));var crypto=require(_0x1efd('0xe'));var jsforce=require(_0x1efd('0xf'));var deskjs=require('desk.js');var toCsv=require(_0x1efd('0x9'));var querystring=require(_0x1efd('0x10'));var Papa=require(_0x1efd('0x11'));var Redis=require(_0x1efd('0x12'));var authService=require(_0x1efd('0x13'));var qs=require('../../components/parsers/qs');var as=require(_0x1efd('0x14'));var hardwareService=require(_0x1efd('0x15'));var logger=require(_0x1efd('0x16'))('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x1efd('0x17'));var db=require(_0x1efd('0x18'))['db'];function respondWithStatusCode(_0x452b15,_0x4eb7be){_0x4eb7be=_0x4eb7be||0xcc;return function(_0x22200d){if(_0x22200d){return _0x452b15[_0x1efd('0x19')](_0x4eb7be);}return _0x452b15['status'](_0x4eb7be)[_0x1efd('0x1a')]();};}function respondWithResult(_0x1a7b0b,_0xc24e54){_0xc24e54=_0xc24e54||0xc8;return function(_0x34d2e1){if(_0x34d2e1){return _0x1a7b0b[_0x1efd('0x1b')](_0xc24e54)['json'](_0x34d2e1);}};}function respondWithFilteredResult(_0x6b6dfa,_0x566263){return function(_0xeec263){if(_0xeec263){var _0x27e678=typeof _0x566263[_0x1efd('0x1c')]===_0x1efd('0x1d')&&typeof _0x566263['limit']===_0x1efd('0x1d');var _0xa9cbe7=_0xeec263[_0x1efd('0x1e')];var _0x7bcf65=_0x27e678?0x0:_0x566263[_0x1efd('0x1c')];var _0x29238d=_0x27e678?_0xeec263[_0x1efd('0x1e')]:_0x566263['offset']+_0x566263[_0x1efd('0x1f')];var _0x24782d;if(_0x29238d>=_0xa9cbe7){_0x29238d=_0xa9cbe7;_0x24782d=0xc8;}else{_0x24782d=0xce;}_0x6b6dfa[_0x1efd('0x1b')](_0x24782d);return _0x6b6dfa['set'](_0x1efd('0x20'),_0x7bcf65+'-'+_0x29238d+'/'+_0xa9cbe7)[_0x1efd('0x21')](_0xeec263);}return null;};}function patchUpdates(_0x2f2c62){return function(_0x158dd8){try{jsonpatch[_0x1efd('0x22')](_0x158dd8,_0x2f2c62,!![]);}catch(_0x189a60){return BPromise[_0x1efd('0x23')](_0x189a60);}return _0x158dd8['save']();};}function saveUpdates(_0xa6e6f7,_0x305237){return function(_0x4a1275){if(_0x4a1275){return _0x4a1275[_0x1efd('0x24')](_0xa6e6f7)['then'](function(_0x46cc2a){return _0x46cc2a;});}return null;};}function removeEntity(_0x1d175e,_0x15418f){return function(_0x3c6386){if(_0x3c6386){return _0x3c6386[_0x1efd('0x25')]()[_0x1efd('0x26')](function(){_0x1d175e[_0x1efd('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x57c0bf,_0x504b3c){return function(_0x34f41a){if(!_0x34f41a){_0x57c0bf[_0x1efd('0x19')](0x194);}return _0x34f41a;};}function handleError(_0x5a13df,_0x1072f2){_0x1072f2=_0x1072f2||0x1f4;return function(_0x14ab47){logger[_0x1efd('0x27')](_0x14ab47[_0x1efd('0x28')]);if(_0x14ab47[_0x1efd('0x29')]){delete _0x14ab47['name'];}_0x5a13df[_0x1efd('0x1b')](_0x1072f2)[_0x1efd('0x2a')](_0x14ab47);};}exports['index']=function(_0x198703,_0x35685e){var _0x3dec05={},_0x40157c={},_0x54739d={'count':0x0,'rows':[]};var _0x452218=_[_0x1efd('0x2b')](db[_0x1efd('0x2c')][_0x1efd('0x2d')],function(_0x128f79){return{'name':_0x128f79[_0x1efd('0x2e')],'type':_0x128f79[_0x1efd('0x2f')][_0x1efd('0x30')]};});_0x40157c['model']=_[_0x1efd('0x2b')](_0x452218,'name');_0x40157c[_0x1efd('0x31')]=_[_0x1efd('0x32')](_0x198703[_0x1efd('0x31')]);_0x40157c[_0x1efd('0x33')]=_['intersection'](_0x40157c[_0x1efd('0x34')],_0x40157c[_0x1efd('0x31')]);_0x3dec05[_0x1efd('0x35')]=_['intersection'](_0x40157c[_0x1efd('0x34')],qs[_0x1efd('0x36')](_0x198703['query']['fields']));_0x3dec05[_0x1efd('0x35')]=_0x3dec05[_0x1efd('0x35')][_0x1efd('0x37')]?_0x3dec05[_0x1efd('0x35')]:_0x40157c[_0x1efd('0x34')];if(!_0x198703[_0x1efd('0x31')][_0x1efd('0x38')](_0x1efd('0x39'))){_0x3dec05['limit']=qs['limit'](_0x198703[_0x1efd('0x31')][_0x1efd('0x1f')]);_0x3dec05[_0x1efd('0x1c')]=qs[_0x1efd('0x1c')](_0x198703[_0x1efd('0x31')][_0x1efd('0x1c')]);}_0x3dec05[_0x1efd('0x3a')]=qs[_0x1efd('0x3b')](_0x198703[_0x1efd('0x31')]['sort']);_0x3dec05[_0x1efd('0x3c')]=qs[_0x1efd('0x33')](_[_0x1efd('0x3d')](_0x198703[_0x1efd('0x31')],_0x40157c[_0x1efd('0x33')]),_0x452218);if(_0x198703[_0x1efd('0x31')][_0x1efd('0x3e')]){_0x3dec05[_0x1efd('0x3c')]=_['merge'](_0x3dec05['where'],{'$or':_['map'](_0x452218,function(_0x199599){if(_0x199599['type']!=='VIRTUAL'){var _0x319fc9={};_0x319fc9[_0x199599[_0x1efd('0x29')]]={'$like':'%'+_0x198703[_0x1efd('0x31')][_0x1efd('0x3e')]+'%'};return _0x319fc9;}})});}_0x3dec05=_[_0x1efd('0x3f')]({},_0x3dec05,_0x198703[_0x1efd('0x40')]);var _0x3de601={'where':_0x3dec05[_0x1efd('0x3c')]};return db[_0x1efd('0x2c')][_0x1efd('0x1e')](_0x3de601)[_0x1efd('0x26')](function(_0x345e4a){_0x54739d[_0x1efd('0x1e')]=_0x345e4a;if(_0x198703[_0x1efd('0x31')][_0x1efd('0x41')]){_0x3dec05[_0x1efd('0x42')]=[{'all':!![]}];}return db[_0x1efd('0x2c')]['findAll'](_0x3dec05);})[_0x1efd('0x26')](function(_0x5ebe9d){_0x54739d[_0x1efd('0x43')]=_0x5ebe9d;return _0x54739d;})[_0x1efd('0x26')](respondWithFilteredResult(_0x35685e,_0x3dec05))[_0x1efd('0x44')](handleError(_0x35685e,null));};exports[_0x1efd('0x45')]=function(_0x50b315,_0x185d55){var _0x5311c3={'raw':!![],'where':{'id':_0x50b315[_0x1efd('0x46')]['id']}},_0x171b33={};_0x171b33['model']=_['keys'](db[_0x1efd('0x2c')][_0x1efd('0x2d')]);_0x171b33['query']=_[_0x1efd('0x32')](_0x50b315[_0x1efd('0x31')]);_0x171b33['filters']=_[_0x1efd('0x47')](_0x171b33[_0x1efd('0x34')],_0x171b33['query']);_0x5311c3[_0x1efd('0x35')]=_['intersection'](_0x171b33[_0x1efd('0x34')],qs[_0x1efd('0x36')](_0x50b315[_0x1efd('0x31')]['fields']));_0x5311c3['attributes']=_0x5311c3[_0x1efd('0x35')]['length']?_0x5311c3[_0x1efd('0x35')]:_0x171b33['model'];if(_0x50b315['query'][_0x1efd('0x41')]){_0x5311c3[_0x1efd('0x42')]=[{'all':!![]}];}_0x5311c3=_['merge']({},_0x5311c3,_0x50b315[_0x1efd('0x40')]);return db[_0x1efd('0x2c')][_0x1efd('0x48')](_0x5311c3)[_0x1efd('0x26')](handleEntityNotFound(_0x185d55,null))['then'](respondWithResult(_0x185d55,null))['catch'](handleError(_0x185d55,null));};exports['create']=function(_0x3c4fa9,_0x1a161f){return db['OpenchannelQueueReport']['create'](_0x3c4fa9[_0x1efd('0x49')],{})[_0x1efd('0x26')](respondWithResult(_0x1a161f,0xc9))['catch'](handleError(_0x1a161f,null));};exports[_0x1efd('0x24')]=function(_0x23c2af,_0x2d8f3a){if(_0x23c2af['body']['id']){delete _0x23c2af[_0x1efd('0x49')]['id'];}return db[_0x1efd('0x2c')]['find']({'where':{'id':_0x23c2af['params']['id']}})[_0x1efd('0x26')](handleEntityNotFound(_0x2d8f3a,null))[_0x1efd('0x26')](saveUpdates(_0x23c2af[_0x1efd('0x49')],null))[_0x1efd('0x26')](respondWithResult(_0x2d8f3a,null))['catch'](handleError(_0x2d8f3a,null));};exports['destroy']=function(_0x3b4044,_0x4f5f2b){return db[_0x1efd('0x2c')][_0x1efd('0x48')]({'where':{'id':_0x3b4044['params']['id']}})['then'](handleEntityNotFound(_0x4f5f2b,null))[_0x1efd('0x26')](removeEntity(_0x4f5f2b,null))[_0x1efd('0x44')](handleError(_0x4f5f2b,null));};exports[_0x1efd('0x4a')]=function(_0x536e37,_0x2f31af){return db[_0x1efd('0x2c')]['describe']()['then'](respondWithResult(_0x2f31af,null))['catch'](handleError(_0x2f31af,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe14b=['bluebird','path','./openchannelQueueReport.attributes','exports','define','OpenchannelQueueReport','report_openchannel_queue','lodash','util','moment'];(function(_0x2143c2,_0x464d78){var _0x4a5840=function(_0x1f401d){while(--_0x1f401d){_0x2143c2['push'](_0x2143c2['shift']());}};_0x4a5840(++_0x464d78);}(_0xe14b,0x93));var _0xbe14=function(_0x395b28,_0x112ebe){_0x395b28=_0x395b28-0x0;var _0x32761b=_0xe14b[_0x395b28];return _0x32761b;};'use strict';var _=require(_0xbe14('0x0'));var util=require(_0xbe14('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0xbe14('0x2'));var BPromise=require(_0xbe14('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xbe14('0x4'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0xbe14('0x5'));module[_0xbe14('0x6')]=function(_0x1fe204,_0x1ff100){return _0x1fe204[_0xbe14('0x7')](_0xbe14('0x8'),attributes,{'tableName':_0xbe14('0x9'),'paranoid':![],'indexes':[{'name':'uniqueid','fields':['uniqueid']}],'timestamps':!![]});};
\ No newline at end of file
+var _0x5fc3=['util','api','moment','bluebird','request-promise','path','../../config/environment','./openchannelQueueReport.attributes','exports','define','report_openchannel_queue','uniqueid','lodash'];(function(_0x2d91c6,_0x10ae0e){var _0x3a8d19=function(_0x27a3ce){while(--_0x27a3ce){_0x2d91c6['push'](_0x2d91c6['shift']());}};_0x3a8d19(++_0x10ae0e);}(_0x5fc3,0xa8));var _0x35fc=function(_0x4de586,_0x183427){_0x4de586=_0x4de586-0x0;var _0x46baf5=_0x5fc3[_0x4de586];return _0x46baf5;};'use strict';var _=require(_0x35fc('0x0'));var util=require(_0x35fc('0x1'));var logger=require('../../config/logger')(_0x35fc('0x2'));var moment=require(_0x35fc('0x3'));var BPromise=require(_0x35fc('0x4'));var rp=require(_0x35fc('0x5'));var fs=require('fs');var path=require(_0x35fc('0x6'));var rimraf=require('rimraf');var config=require(_0x35fc('0x7'));var attributes=require(_0x35fc('0x8'));module[_0x35fc('0x9')]=function(_0x5b85ad,_0x5754be){return _0x5b85ad[_0x35fc('0xa')]('OpenchannelQueueReport',attributes,{'tableName':_0x35fc('0xb'),'paranoid':![],'indexes':[{'name':_0x35fc('0xc'),'fields':[_0x35fc('0xc')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb7e7=['moment','randomstring','../../mysqldb','../../config/logger','rpc','../../config/environment','http','request','then','info','OpenchannelQueueReport,\x20%s,\x20%s','debug','OpenchannelQueueReport,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','catch','CreateOpenchannelQueueReport','OpenchannelQueueReport','create','body','options','raw','where','attributes','UpdateOpenchannelQueueReport','lodash'];(function(_0x5f553b,_0x39f5ce){var _0x231fae=function(_0x1955b3){while(--_0x1955b3){_0x5f553b['push'](_0x5f553b['shift']());}};_0x231fae(++_0x39f5ce);}(_0xb7e7,0x121));var _0x7b7e=function(_0x3e5086,_0x48f4a2){_0x3e5086=_0x3e5086-0x0;var _0xfeb102=_0xb7e7[_0x3e5086];return _0xfeb102;};'use strict';var _=require(_0x7b7e('0x0'));var util=require('util');var moment=require(_0x7b7e('0x1'));var BPromise=require('bluebird');var rs=require(_0x7b7e('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x7b7e('0x3'))['db'];var utils=require('../../config/utils');var logger=require(_0x7b7e('0x4'))(_0x7b7e('0x5'));var config=require(_0x7b7e('0x6'));var jayson=require('jayson/promise');var client=jayson['client'][_0x7b7e('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x372bde,_0x7f87e0,_0x55ce81){return new BPromise(function(_0x42b871,_0x223587){return client[_0x7b7e('0x8')](_0x372bde,_0x55ce81)[_0x7b7e('0x9')](function(_0x148964){logger[_0x7b7e('0xa')](_0x7b7e('0xb'),_0x7f87e0,'request\x20sent');logger[_0x7b7e('0xc')](_0x7b7e('0xd'),_0x7f87e0,_0x7b7e('0xe'),JSON[_0x7b7e('0xf')](_0x148964));if(_0x148964[_0x7b7e('0x10')]){if(_0x148964[_0x7b7e('0x10')][_0x7b7e('0x11')]===0x1f4){logger[_0x7b7e('0x10')](_0x7b7e('0xb'),_0x7f87e0,_0x148964['error'][_0x7b7e('0x12')]);return _0x223587(_0x148964[_0x7b7e('0x10')]['message']);}logger[_0x7b7e('0x10')]('OpenchannelQueueReport,\x20%s,\x20%s',_0x7f87e0,_0x148964['error'][_0x7b7e('0x12')]);return _0x42b871(_0x148964[_0x7b7e('0x10')][_0x7b7e('0x12')]);}else{logger[_0x7b7e('0xa')](_0x7b7e('0xb'),_0x7f87e0,'request\x20sent');_0x42b871(_0x148964['result'][_0x7b7e('0x12')]);}})[_0x7b7e('0x13')](function(_0x27f999){logger[_0x7b7e('0x10')](_0x7b7e('0xb'),_0x7f87e0,_0x27f999);_0x223587(_0x27f999);});});}exports[_0x7b7e('0x14')]=function(_0x242368){var _0x200ef7=this;return new Promise(function(_0x2acb8c,_0x429a0e){return db[_0x7b7e('0x15')][_0x7b7e('0x16')](_0x242368[_0x7b7e('0x17')],{'raw':_0x242368[_0x7b7e('0x18')]?_0x242368[_0x7b7e('0x18')][_0x7b7e('0x19')]===undefined?!![]:![]:!![]})[_0x7b7e('0x9')](function(_0x49eddb){logger[_0x7b7e('0xa')](_0x7b7e('0x14'),_0x242368);logger[_0x7b7e('0xc')]('CreateOpenchannelQueueReport',_0x242368,JSON[_0x7b7e('0xf')](_0x49eddb));_0x2acb8c(_0x49eddb);})[_0x7b7e('0x13')](function(_0x14243b){logger[_0x7b7e('0x10')](_0x7b7e('0x14'),_0x14243b[_0x7b7e('0x12')],_0x242368);_0x429a0e(_0x200ef7[_0x7b7e('0x10')](0x1f4,_0x14243b[_0x7b7e('0x12')]));});});};exports['UpdateOpenchannelQueueReport']=function(_0x5d6215){var _0x4a836a=this;return new Promise(function(_0x26ee14,_0x22598e){return db[_0x7b7e('0x15')]['update'](_0x5d6215['body'],{'raw':_0x5d6215['options']?_0x5d6215[_0x7b7e('0x18')][_0x7b7e('0x19')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x5d6215[_0x7b7e('0x18')]?_0x5d6215[_0x7b7e('0x18')][_0x7b7e('0x1a')]||null:null,'attributes':_0x5d6215['options']?_0x5d6215[_0x7b7e('0x18')][_0x7b7e('0x1b')]||null:null,'limit':_0x5d6215['options']?_0x5d6215['options']['limit']||null:null})[_0x7b7e('0x9')](function(_0x423832){logger['info'](_0x7b7e('0x1c'),_0x5d6215);logger['debug'](_0x7b7e('0x1c'),_0x5d6215,JSON[_0x7b7e('0xf')](_0x423832));_0x26ee14(_0x423832);})[_0x7b7e('0x13')](function(_0x5515ca){logger[_0x7b7e('0x10')](_0x7b7e('0x1c'),_0x5515ca[_0x7b7e('0x12')],_0x5d6215);_0x22598e(_0x4a836a[_0x7b7e('0x10')](0x1f4,_0x5515ca[_0x7b7e('0x12')]));});});};
\ No newline at end of file
+var _0x253d=['lodash','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','request','then','info','debug','request\x20sent','stringify','error','code','message','result','OpenchannelQueueReport,\x20%s,\x20%s','CreateOpenchannelQueueReport','create','options','catch','UpdateOpenchannelQueueReport','OpenchannelQueueReport','update','body','limit'];(function(_0x36332b,_0x5f2c0e){var _0x3a35c5=function(_0x5a4b8a){while(--_0x5a4b8a){_0x36332b['push'](_0x36332b['shift']());}};_0x3a35c5(++_0x5f2c0e);}(_0x253d,0x1b3));var _0xd253=function(_0x338ad7,_0x37c306){_0x338ad7=_0x338ad7-0x0;var _0x566608=_0x253d[_0x338ad7];return _0x566608;};'use strict';var _=require(_0xd253('0x0'));var util=require('util');var moment=require('moment');var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xd253('0x1'));var db=require(_0xd253('0x2'))['db'];var utils=require(_0xd253('0x3'));var logger=require(_0xd253('0x4'))(_0xd253('0x5'));var config=require('../../config/environment');var jayson=require(_0xd253('0x6'));var client=jayson[_0xd253('0x7')][_0xd253('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x17589a,_0xf4b457,_0x487f4e){return new BPromise(function(_0x2c4de4,_0x712c81){return client[_0xd253('0x9')](_0x17589a,_0x487f4e)[_0xd253('0xa')](function(_0x351047){logger[_0xd253('0xb')]('OpenchannelQueueReport,\x20%s,\x20%s',_0xf4b457,'request\x20sent');logger[_0xd253('0xc')]('OpenchannelQueueReport,\x20%s,\x20%s,\x20%s',_0xf4b457,_0xd253('0xd'),JSON[_0xd253('0xe')](_0x351047));if(_0x351047[_0xd253('0xf')]){if(_0x351047[_0xd253('0xf')][_0xd253('0x10')]===0x1f4){logger[_0xd253('0xf')]('OpenchannelQueueReport,\x20%s,\x20%s',_0xf4b457,_0x351047['error'][_0xd253('0x11')]);return _0x712c81(_0x351047[_0xd253('0xf')][_0xd253('0x11')]);}logger['error']('OpenchannelQueueReport,\x20%s,\x20%s',_0xf4b457,_0x351047[_0xd253('0xf')][_0xd253('0x11')]);return _0x2c4de4(_0x351047[_0xd253('0xf')]['message']);}else{logger[_0xd253('0xb')]('OpenchannelQueueReport,\x20%s,\x20%s',_0xf4b457,_0xd253('0xd'));_0x2c4de4(_0x351047[_0xd253('0x12')][_0xd253('0x11')]);}})['catch'](function(_0x1b7ed1){logger['error'](_0xd253('0x13'),_0xf4b457,_0x1b7ed1);_0x712c81(_0x1b7ed1);});});}exports[_0xd253('0x14')]=function(_0x5e4051){var _0x2496cb=this;return new Promise(function(_0x2a2adc,_0x5b24ff){return db['OpenchannelQueueReport'][_0xd253('0x15')](_0x5e4051['body'],{'raw':_0x5e4051['options']?_0x5e4051[_0xd253('0x16')]['raw']===undefined?!![]:![]:!![]})[_0xd253('0xa')](function(_0x1e48c3){logger[_0xd253('0xb')](_0xd253('0x14'),_0x5e4051);logger['debug'](_0xd253('0x14'),_0x5e4051,JSON['stringify'](_0x1e48c3));_0x2a2adc(_0x1e48c3);})[_0xd253('0x17')](function(_0x50f8b5){logger[_0xd253('0xf')](_0xd253('0x14'),_0x50f8b5[_0xd253('0x11')],_0x5e4051);_0x5b24ff(_0x2496cb[_0xd253('0xf')](0x1f4,_0x50f8b5['message']));});});};exports[_0xd253('0x18')]=function(_0x34d98d){var _0x585c14=this;return new Promise(function(_0x27b0a1,_0x434be5){return db[_0xd253('0x19')][_0xd253('0x1a')](_0x34d98d[_0xd253('0x1b')],{'raw':_0x34d98d[_0xd253('0x16')]?_0x34d98d[_0xd253('0x16')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x34d98d[_0xd253('0x16')]?_0x34d98d['options']['where']||null:null,'attributes':_0x34d98d[_0xd253('0x16')]?_0x34d98d[_0xd253('0x16')]['attributes']||null:null,'limit':_0x34d98d['options']?_0x34d98d[_0xd253('0x16')][_0xd253('0x1c')]||null:null})['then'](function(_0x3955a0){logger[_0xd253('0xb')](_0xd253('0x18'),_0x34d98d);logger[_0xd253('0xc')](_0xd253('0x18'),_0x34d98d,JSON['stringify'](_0x3955a0));_0x27b0a1(_0x3955a0);})[_0xd253('0x17')](function(_0x31a217){logger[_0xd253('0xf')]('UpdateOpenchannelQueueReport',_0x31a217[_0xd253('0x11')],_0x34d98d);_0x434be5(_0x585c14['error'](0x1f4,_0x31a217[_0xd253('0x11')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb72a=['isAuthenticated','index','/describe','post','put','update','/:id','destroy','multer','util','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./openchannelTransferReport.controller','get'];(function(_0x261522,_0x1adc1f){var _0x98a25a=function(_0x1b0f9c){while(--_0x1b0f9c){_0x261522['push'](_0x261522['shift']());}};_0x98a25a(++_0x1adc1f);}(_0xb72a,0x1e3));var _0xab72=function(_0x58c0fe,_0x234b20){_0x58c0fe=_0x58c0fe-0x0;var _0xbe68fd=_0xb72a[_0x58c0fe];return _0xbe68fd;};'use strict';var multer=require(_0xab72('0x0'));var util=require(_0xab72('0x1'));var path=require('path');var timeout=require(_0xab72('0x2'));var express=require(_0xab72('0x3'));var router=express[_0xab72('0x4')]();var fs_extra=require(_0xab72('0x5'));var auth=require(_0xab72('0x6'));var interaction=require(_0xab72('0x7'));var config=require(_0xab72('0x8'));var controller=require(_0xab72('0x9'));router[_0xab72('0xa')]('/',auth[_0xab72('0xb')](),controller[_0xab72('0xc')]);router[_0xab72('0xa')](_0xab72('0xd'),auth[_0xab72('0xb')](),controller['describe']);router[_0xab72('0xa')]('/:id',auth[_0xab72('0xb')](),controller['show']);router[_0xab72('0xe')]('/',auth[_0xab72('0xb')](),controller['create']);router[_0xab72('0xf')]('/:id',auth[_0xab72('0xb')](),controller[_0xab72('0x10')]);router['delete'](_0xab72('0x11'),auth[_0xab72('0xb')](),controller[_0xab72('0x12')]);module['exports']=router;
\ No newline at end of file
+var _0x8f1f=['delete','destroy','exports','multer','util','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./openchannelTransferReport.controller','get','isAuthenticated','describe','/:id','show','post','create','put','update'];(function(_0x394453,_0x2a55cb){var _0x4f8b6d=function(_0xd7d688){while(--_0xd7d688){_0x394453['push'](_0x394453['shift']());}};_0x4f8b6d(++_0x2a55cb);}(_0x8f1f,0x18f));var _0xf8f1=function(_0x19aa32,_0x33381b){_0x19aa32=_0x19aa32-0x0;var _0x104dd6=_0x8f1f[_0x19aa32];return _0x104dd6;};'use strict';var multer=require(_0xf8f1('0x0'));var util=require(_0xf8f1('0x1'));var path=require(_0xf8f1('0x2'));var timeout=require(_0xf8f1('0x3'));var express=require('express');var router=express[_0xf8f1('0x4')]();var fs_extra=require(_0xf8f1('0x5'));var auth=require(_0xf8f1('0x6'));var interaction=require(_0xf8f1('0x7'));var config=require(_0xf8f1('0x8'));var controller=require(_0xf8f1('0x9'));router[_0xf8f1('0xa')]('/',auth[_0xf8f1('0xb')](),controller['index']);router[_0xf8f1('0xa')]('/describe',auth[_0xf8f1('0xb')](),controller[_0xf8f1('0xc')]);router['get'](_0xf8f1('0xd'),auth[_0xf8f1('0xb')](),controller[_0xf8f1('0xe')]);router[_0xf8f1('0xf')]('/',auth[_0xf8f1('0xb')](),controller[_0xf8f1('0x10')]);router[_0xf8f1('0x11')](_0xf8f1('0xd'),auth['isAuthenticated'](),controller[_0xf8f1('0x12')]);router[_0xf8f1('0x13')](_0xf8f1('0xd'),auth[_0xf8f1('0xb')](),controller[_0xf8f1('0x14')]);module[_0xf8f1('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcb91=['STRING','ENUM','account','queue','NOW','exports'];(function(_0x1b0431,_0x2fb4b8){var _0x2c0049=function(_0x7c072d){while(--_0x7c072d){_0x1b0431['push'](_0x1b0431['shift']());}};_0x2c0049(++_0x2fb4b8);}(_0xcb91,0x1a9));var _0x1cb9=function(_0x209fcd,_0x1ecccc){_0x209fcd=_0x209fcd-0x0;var _0x501d5e=_0xcb91[_0x209fcd];return _0x501d5e;};'use strict';var moment=require('moment');var Sequelize=require('sequelize');module[_0x1cb9('0x0')]={'uniqueid':{'type':Sequelize[_0x1cb9('0x1')],'allowNull':![]},'type':{'type':Sequelize[_0x1cb9('0x2')](_0x1cb9('0x3'),'agent',_0x1cb9('0x4')),'allowNull':![],'defaultValue':_0x1cb9('0x4')},'transferredAt':{'type':Sequelize['DATE'],'allowNull':![],'defaultValue':Sequelize[_0x1cb9('0x5')]}};
\ No newline at end of file
+var _0x9c44=['ENUM','account','agent','queue','NOW','exports','STRING'];(function(_0x25c988,_0xce8221){var _0x45fcc2=function(_0x47fba5){while(--_0x47fba5){_0x25c988['push'](_0x25c988['shift']());}};_0x45fcc2(++_0xce8221);}(_0x9c44,0x178));var _0x49c4=function(_0x3d42d8,_0x4cffaa){_0x3d42d8=_0x3d42d8-0x0;var _0x27fc41=_0x9c44[_0x3d42d8];return _0x27fc41;};'use strict';var moment=require('moment');var Sequelize=require('sequelize');module[_0x49c4('0x0')]={'uniqueid':{'type':Sequelize[_0x49c4('0x1')],'allowNull':![]},'type':{'type':Sequelize[_0x49c4('0x2')](_0x49c4('0x3'),_0x49c4('0x4'),_0x49c4('0x5')),'allowNull':![],'defaultValue':'queue'},'transferredAt':{'type':Sequelize['DATE'],'allowNull':![],'defaultValue':Sequelize[_0x49c4('0x6')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x06a1=['then','destroy','error','name','index','map','OpenchannelTransferReport','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','order','sort','where','pick','filter','merge','VIRTUAL','options','rows','catch','params','length','includeAll','include','find','body','eml-format','rimraf','moment','bluebird','mustache','path','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','to-csv','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','limit','Content-Range','save','update'];(function(_0x27b900,_0x4c3cd0){var _0x38f4ce=function(_0xae4675){while(--_0xae4675){_0x27b900['push'](_0x27b900['shift']());}};_0x38f4ce(++_0x4c3cd0);}(_0x06a1,0xad));var _0x106a=function(_0x344cf7,_0x3cad83){_0x344cf7=_0x344cf7-0x0;var _0x5b0b9e=_0x06a1[_0x344cf7];return _0x5b0b9e;};'use strict';var emlformat=require(_0x106a('0x0'));var rimraf=require(_0x106a('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x106a('0x2'));var BPromise=require(_0x106a('0x3'));var Mustache=require(_0x106a('0x4'));var util=require('util');var path=require(_0x106a('0x5'));var sox=require(_0x106a('0x6'));var csv=require('to-csv');var ejs=require(_0x106a('0x7'));var fs=require('fs');var fs_extra=require(_0x106a('0x8'));var _=require(_0x106a('0x9'));var squel=require(_0x106a('0xa'));var crypto=require(_0x106a('0xb'));var jsforce=require(_0x106a('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x106a('0xd'));var querystring=require('querystring');var Papa=require(_0x106a('0xe'));var Redis=require('ioredis');var authService=require(_0x106a('0xf'));var qs=require(_0x106a('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x106a('0x11'));var logger=require(_0x106a('0x12'))(_0x106a('0x13'));var utils=require('../../config/utils');var config=require(_0x106a('0x14'));var licenseUtil=require(_0x106a('0x15'));var db=require(_0x106a('0x16'))['db'];function respondWithStatusCode(_0x5f4212,_0x5c8c88){_0x5c8c88=_0x5c8c88||0xcc;return function(_0x306553){if(_0x306553){return _0x5f4212[_0x106a('0x17')](_0x5c8c88);}return _0x5f4212[_0x106a('0x18')](_0x5c8c88)[_0x106a('0x19')]();};}function respondWithResult(_0x46c6b8,_0x1e89e6){_0x1e89e6=_0x1e89e6||0xc8;return function(_0x1890ae){if(_0x1890ae){return _0x46c6b8[_0x106a('0x18')](_0x1e89e6)[_0x106a('0x1a')](_0x1890ae);}};}function respondWithFilteredResult(_0x2730cc,_0x3198f0){return function(_0x1f1c28){if(_0x1f1c28){var _0x592c73=typeof _0x3198f0[_0x106a('0x1b')]===_0x106a('0x1c')&&typeof _0x3198f0['limit']===_0x106a('0x1c');var _0x3fe99a=_0x1f1c28[_0x106a('0x1d')];var _0x420af3=_0x592c73?0x0:_0x3198f0[_0x106a('0x1b')];var _0x4d8836=_0x592c73?_0x1f1c28[_0x106a('0x1d')]:_0x3198f0[_0x106a('0x1b')]+_0x3198f0[_0x106a('0x1e')];var _0x2cd774;if(_0x4d8836>=_0x3fe99a){_0x4d8836=_0x3fe99a;_0x2cd774=0xc8;}else{_0x2cd774=0xce;}_0x2730cc[_0x106a('0x18')](_0x2cd774);return _0x2730cc['set'](_0x106a('0x1f'),_0x420af3+'-'+_0x4d8836+'/'+_0x3fe99a)[_0x106a('0x1a')](_0x1f1c28);}return null;};}function patchUpdates(_0x1b00ca){return function(_0x5f4e85){try{jsonpatch['apply'](_0x5f4e85,_0x1b00ca,!![]);}catch(_0x81e948){return BPromise['reject'](_0x81e948);}return _0x5f4e85[_0x106a('0x20')]();};}function saveUpdates(_0x4cd721,_0x4230aa){return function(_0x4f12d1){if(_0x4f12d1){return _0x4f12d1[_0x106a('0x21')](_0x4cd721)[_0x106a('0x22')](function(_0x96cdc){return _0x96cdc;});}return null;};}function removeEntity(_0x579788,_0x301e6c){return function(_0x3feabf){if(_0x3feabf){return _0x3feabf[_0x106a('0x23')]()[_0x106a('0x22')](function(){_0x579788[_0x106a('0x18')](0xcc)[_0x106a('0x19')]();});}};}function handleEntityNotFound(_0x471428,_0x3cfca5){return function(_0x3fb8e4){if(!_0x3fb8e4){_0x471428[_0x106a('0x17')](0x194);}return _0x3fb8e4;};}function handleError(_0x2517da,_0x38f158){_0x38f158=_0x38f158||0x1f4;return function(_0x265844){logger[_0x106a('0x24')](_0x265844['stack']);if(_0x265844[_0x106a('0x25')]){delete _0x265844[_0x106a('0x25')];}_0x2517da[_0x106a('0x18')](_0x38f158)['send'](_0x265844);};}exports[_0x106a('0x26')]=function(_0x4d05bc,_0x350231){var _0x377f33={},_0x4ade4b={},_0x41d1ba={'count':0x0,'rows':[]};var _0x107bb0=_[_0x106a('0x27')](db[_0x106a('0x28')][_0x106a('0x29')],function(_0x3f449a){return{'name':_0x3f449a[_0x106a('0x2a')],'type':_0x3f449a[_0x106a('0x2b')][_0x106a('0x2c')]};});_0x4ade4b[_0x106a('0x2d')]=_[_0x106a('0x27')](_0x107bb0,_0x106a('0x25'));_0x4ade4b[_0x106a('0x2e')]=_[_0x106a('0x2f')](_0x4d05bc['query']);_0x4ade4b[_0x106a('0x30')]=_[_0x106a('0x31')](_0x4ade4b[_0x106a('0x2d')],_0x4ade4b[_0x106a('0x2e')]);_0x377f33[_0x106a('0x32')]=_['intersection'](_0x4ade4b[_0x106a('0x2d')],qs['fields'](_0x4d05bc[_0x106a('0x2e')][_0x106a('0x33')]));_0x377f33[_0x106a('0x32')]=_0x377f33[_0x106a('0x32')]['length']?_0x377f33[_0x106a('0x32')]:_0x4ade4b[_0x106a('0x2d')];if(!_0x4d05bc['query'][_0x106a('0x34')]('nolimit')){_0x377f33[_0x106a('0x1e')]=qs[_0x106a('0x1e')](_0x4d05bc[_0x106a('0x2e')]['limit']);_0x377f33['offset']=qs[_0x106a('0x1b')](_0x4d05bc[_0x106a('0x2e')][_0x106a('0x1b')]);}_0x377f33[_0x106a('0x35')]=qs[_0x106a('0x36')](_0x4d05bc[_0x106a('0x2e')][_0x106a('0x36')]);_0x377f33[_0x106a('0x37')]=qs['filters'](_[_0x106a('0x38')](_0x4d05bc[_0x106a('0x2e')],_0x4ade4b[_0x106a('0x30')]),_0x107bb0);if(_0x4d05bc[_0x106a('0x2e')][_0x106a('0x39')]){_0x377f33['where']=_[_0x106a('0x3a')](_0x377f33['where'],{'$or':_[_0x106a('0x27')](_0x107bb0,function(_0x55bb1c){if(_0x55bb1c[_0x106a('0x2b')]!==_0x106a('0x3b')){var _0x5b113={};_0x5b113[_0x55bb1c['name']]={'$like':'%'+_0x4d05bc['query'][_0x106a('0x39')]+'%'};return _0x5b113;}})});}_0x377f33=_[_0x106a('0x3a')]({},_0x377f33,_0x4d05bc[_0x106a('0x3c')]);var _0x47aaa2={'where':_0x377f33[_0x106a('0x37')]};return db[_0x106a('0x28')][_0x106a('0x1d')](_0x47aaa2)[_0x106a('0x22')](function(_0x2b05d9){_0x41d1ba[_0x106a('0x1d')]=_0x2b05d9;if(_0x4d05bc['query']['includeAll']){_0x377f33['include']=[{'all':!![]}];}return db[_0x106a('0x28')]['findAll'](_0x377f33);})[_0x106a('0x22')](function(_0xe2e981){_0x41d1ba[_0x106a('0x3d')]=_0xe2e981;return _0x41d1ba;})['then'](respondWithFilteredResult(_0x350231,_0x377f33))[_0x106a('0x3e')](handleError(_0x350231,null));};exports['show']=function(_0x268304,_0x467713){var _0x59c770={'raw':!![],'where':{'id':_0x268304[_0x106a('0x3f')]['id']}},_0x4a11e7={};_0x4a11e7['model']=_[_0x106a('0x2f')](db[_0x106a('0x28')][_0x106a('0x29')]);_0x4a11e7[_0x106a('0x2e')]=_[_0x106a('0x2f')](_0x268304[_0x106a('0x2e')]);_0x4a11e7[_0x106a('0x30')]=_[_0x106a('0x31')](_0x4a11e7[_0x106a('0x2d')],_0x4a11e7['query']);_0x59c770['attributes']=_[_0x106a('0x31')](_0x4a11e7[_0x106a('0x2d')],qs[_0x106a('0x33')](_0x268304[_0x106a('0x2e')][_0x106a('0x33')]));_0x59c770[_0x106a('0x32')]=_0x59c770['attributes'][_0x106a('0x40')]?_0x59c770[_0x106a('0x32')]:_0x4a11e7['model'];if(_0x268304[_0x106a('0x2e')][_0x106a('0x41')]){_0x59c770[_0x106a('0x42')]=[{'all':!![]}];}_0x59c770=_[_0x106a('0x3a')]({},_0x59c770,_0x268304[_0x106a('0x3c')]);return db[_0x106a('0x28')][_0x106a('0x43')](_0x59c770)[_0x106a('0x22')](handleEntityNotFound(_0x467713,null))[_0x106a('0x22')](respondWithResult(_0x467713,null))[_0x106a('0x3e')](handleError(_0x467713,null));};exports['create']=function(_0xd6d7d2,_0x4d2c40){return db[_0x106a('0x28')]['create'](_0xd6d7d2[_0x106a('0x44')],{})[_0x106a('0x22')](respondWithResult(_0x4d2c40,0xc9))[_0x106a('0x3e')](handleError(_0x4d2c40,null));};exports[_0x106a('0x21')]=function(_0x3524e7,_0x6d1a34){if(_0x3524e7[_0x106a('0x44')]['id']){delete _0x3524e7[_0x106a('0x44')]['id'];}return db[_0x106a('0x28')]['find']({'where':{'id':_0x3524e7[_0x106a('0x3f')]['id']}})[_0x106a('0x22')](handleEntityNotFound(_0x6d1a34,null))[_0x106a('0x22')](saveUpdates(_0x3524e7[_0x106a('0x44')],null))['then'](respondWithResult(_0x6d1a34,null))[_0x106a('0x3e')](handleError(_0x6d1a34,null));};exports[_0x106a('0x23')]=function(_0x3b6d98,_0x3d442d){return db[_0x106a('0x28')][_0x106a('0x43')]({'where':{'id':_0x3b6d98[_0x106a('0x3f')]['id']}})[_0x106a('0x22')](handleEntityNotFound(_0x3d442d,null))[_0x106a('0x22')](removeEntity(_0x3d442d,null))['catch'](handleError(_0x3d442d,null));};exports['describe']=function(_0x5b6ad6,_0x5b1a76){return db[_0x106a('0x28')]['describe']()[_0x106a('0x22')](respondWithResult(_0x5b1a76,null))['catch'](handleError(_0x5b1a76,null));};
\ No newline at end of file
+var _0xe6bc=['count','set','apply','reject','save','update','then','destroy','error','stack','name','index','map','OpenchannelTransferReport','rawAttributes','fieldName','type','key','keys','query','attributes','intersection','model','fields','length','hasOwnProperty','order','sort','where','filters','filter','merge','VIRTUAL','options','findAll','rows','show','params','includeAll','include','find','catch','create','body','describe','eml-format','rimraf','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/environment','sendStatus','status','end','json','offset','undefined','limit'];(function(_0x346f8f,_0x341102){var _0x1dcde5=function(_0x4040b3){while(--_0x4040b3){_0x346f8f['push'](_0x346f8f['shift']());}};_0x1dcde5(++_0x341102);}(_0xe6bc,0x1e9));var _0xce6b=function(_0x221ba2,_0x5c04ff){_0x221ba2=_0x221ba2-0x0;var _0x456af2=_0xe6bc[_0x221ba2];return _0x456af2;};'use strict';var emlformat=require(_0xce6b('0x0'));var rimraf=require(_0xce6b('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0xce6b('0x2'));var moment=require(_0xce6b('0x3'));var BPromise=require(_0xce6b('0x4'));var Mustache=require(_0xce6b('0x5'));var util=require(_0xce6b('0x6'));var path=require(_0xce6b('0x7'));var sox=require('sox');var csv=require(_0xce6b('0x8'));var ejs=require(_0xce6b('0x9'));var fs=require('fs');var fs_extra=require(_0xce6b('0xa'));var _=require('lodash');var squel=require(_0xce6b('0xb'));var crypto=require(_0xce6b('0xc'));var jsforce=require(_0xce6b('0xd'));var deskjs=require('desk.js');var toCsv=require(_0xce6b('0x8'));var querystring=require(_0xce6b('0xe'));var Papa=require(_0xce6b('0xf'));var Redis=require(_0xce6b('0x10'));var authService=require(_0xce6b('0x11'));var qs=require(_0xce6b('0x12'));var as=require(_0xce6b('0x13'));var hardwareService=require(_0xce6b('0x14'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require(_0xce6b('0x15'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x41d990,_0x14e851){_0x14e851=_0x14e851||0xcc;return function(_0x4873bc){if(_0x4873bc){return _0x41d990[_0xce6b('0x16')](_0x14e851);}return _0x41d990[_0xce6b('0x17')](_0x14e851)[_0xce6b('0x18')]();};}function respondWithResult(_0x33c094,_0x45d882){_0x45d882=_0x45d882||0xc8;return function(_0xdb6071){if(_0xdb6071){return _0x33c094['status'](_0x45d882)[_0xce6b('0x19')](_0xdb6071);}};}function respondWithFilteredResult(_0x2819f6,_0x21e2c5){return function(_0x6992f7){if(_0x6992f7){var _0x38d80a=typeof _0x21e2c5[_0xce6b('0x1a')]===_0xce6b('0x1b')&&typeof _0x21e2c5[_0xce6b('0x1c')]==='undefined';var _0x37ec5a=_0x6992f7[_0xce6b('0x1d')];var _0x53f7c0=_0x38d80a?0x0:_0x21e2c5[_0xce6b('0x1a')];var _0x4700ef=_0x38d80a?_0x6992f7['count']:_0x21e2c5[_0xce6b('0x1a')]+_0x21e2c5[_0xce6b('0x1c')];var _0x30a9da;if(_0x4700ef>=_0x37ec5a){_0x4700ef=_0x37ec5a;_0x30a9da=0xc8;}else{_0x30a9da=0xce;}_0x2819f6['status'](_0x30a9da);return _0x2819f6[_0xce6b('0x1e')]('Content-Range',_0x53f7c0+'-'+_0x4700ef+'/'+_0x37ec5a)[_0xce6b('0x19')](_0x6992f7);}return null;};}function patchUpdates(_0x340a0a){return function(_0x5ac1c8){try{jsonpatch[_0xce6b('0x1f')](_0x5ac1c8,_0x340a0a,!![]);}catch(_0x509f31){return BPromise[_0xce6b('0x20')](_0x509f31);}return _0x5ac1c8[_0xce6b('0x21')]();};}function saveUpdates(_0x4c4504,_0x426eba){return function(_0x22aa35){if(_0x22aa35){return _0x22aa35[_0xce6b('0x22')](_0x4c4504)[_0xce6b('0x23')](function(_0x12c5d7){return _0x12c5d7;});}return null;};}function removeEntity(_0x179af7,_0x344a75){return function(_0x3e1c9b){if(_0x3e1c9b){return _0x3e1c9b[_0xce6b('0x24')]()[_0xce6b('0x23')](function(){_0x179af7['status'](0xcc)[_0xce6b('0x18')]();});}};}function handleEntityNotFound(_0x49488e,_0x263b1f){return function(_0x514a02){if(!_0x514a02){_0x49488e['sendStatus'](0x194);}return _0x514a02;};}function handleError(_0x259c41,_0x1858ed){_0x1858ed=_0x1858ed||0x1f4;return function(_0x16e75f){logger[_0xce6b('0x25')](_0x16e75f[_0xce6b('0x26')]);if(_0x16e75f['name']){delete _0x16e75f[_0xce6b('0x27')];}_0x259c41[_0xce6b('0x17')](_0x1858ed)['send'](_0x16e75f);};}exports[_0xce6b('0x28')]=function(_0x58c422,_0x2640f1){var _0x48e798={},_0xa5f8c1={},_0x39489b={'count':0x0,'rows':[]};var _0x58e53c=_[_0xce6b('0x29')](db[_0xce6b('0x2a')][_0xce6b('0x2b')],function(_0xfd90e9){return{'name':_0xfd90e9[_0xce6b('0x2c')],'type':_0xfd90e9[_0xce6b('0x2d')][_0xce6b('0x2e')]};});_0xa5f8c1['model']=_[_0xce6b('0x29')](_0x58e53c,_0xce6b('0x27'));_0xa5f8c1['query']=_[_0xce6b('0x2f')](_0x58c422['query']);_0xa5f8c1['filters']=_['intersection'](_0xa5f8c1['model'],_0xa5f8c1[_0xce6b('0x30')]);_0x48e798[_0xce6b('0x31')]=_[_0xce6b('0x32')](_0xa5f8c1[_0xce6b('0x33')],qs['fields'](_0x58c422[_0xce6b('0x30')][_0xce6b('0x34')]));_0x48e798[_0xce6b('0x31')]=_0x48e798['attributes'][_0xce6b('0x35')]?_0x48e798[_0xce6b('0x31')]:_0xa5f8c1[_0xce6b('0x33')];if(!_0x58c422[_0xce6b('0x30')][_0xce6b('0x36')]('nolimit')){_0x48e798[_0xce6b('0x1c')]=qs[_0xce6b('0x1c')](_0x58c422[_0xce6b('0x30')][_0xce6b('0x1c')]);_0x48e798[_0xce6b('0x1a')]=qs[_0xce6b('0x1a')](_0x58c422[_0xce6b('0x30')][_0xce6b('0x1a')]);}_0x48e798[_0xce6b('0x37')]=qs['sort'](_0x58c422[_0xce6b('0x30')][_0xce6b('0x38')]);_0x48e798[_0xce6b('0x39')]=qs[_0xce6b('0x3a')](_['pick'](_0x58c422[_0xce6b('0x30')],_0xa5f8c1[_0xce6b('0x3a')]),_0x58e53c);if(_0x58c422[_0xce6b('0x30')][_0xce6b('0x3b')]){_0x48e798[_0xce6b('0x39')]=_[_0xce6b('0x3c')](_0x48e798[_0xce6b('0x39')],{'$or':_[_0xce6b('0x29')](_0x58e53c,function(_0x39c30c){if(_0x39c30c[_0xce6b('0x2d')]!==_0xce6b('0x3d')){var _0x132f1a={};_0x132f1a[_0x39c30c[_0xce6b('0x27')]]={'$like':'%'+_0x58c422['query'][_0xce6b('0x3b')]+'%'};return _0x132f1a;}})});}_0x48e798=_['merge']({},_0x48e798,_0x58c422[_0xce6b('0x3e')]);var _0x4770dd={'where':_0x48e798['where']};return db[_0xce6b('0x2a')][_0xce6b('0x1d')](_0x4770dd)['then'](function(_0x2eeb0e){_0x39489b[_0xce6b('0x1d')]=_0x2eeb0e;if(_0x58c422[_0xce6b('0x30')]['includeAll']){_0x48e798['include']=[{'all':!![]}];}return db[_0xce6b('0x2a')][_0xce6b('0x3f')](_0x48e798);})[_0xce6b('0x23')](function(_0x35452d){_0x39489b[_0xce6b('0x40')]=_0x35452d;return _0x39489b;})[_0xce6b('0x23')](respondWithFilteredResult(_0x2640f1,_0x48e798))['catch'](handleError(_0x2640f1,null));};exports[_0xce6b('0x41')]=function(_0x1e3666,_0x3a7acc){var _0x1cce4e={'raw':!![],'where':{'id':_0x1e3666[_0xce6b('0x42')]['id']}},_0x540f18={};_0x540f18[_0xce6b('0x33')]=_[_0xce6b('0x2f')](db[_0xce6b('0x2a')]['rawAttributes']);_0x540f18[_0xce6b('0x30')]=_[_0xce6b('0x2f')](_0x1e3666[_0xce6b('0x30')]);_0x540f18[_0xce6b('0x3a')]=_[_0xce6b('0x32')](_0x540f18[_0xce6b('0x33')],_0x540f18[_0xce6b('0x30')]);_0x1cce4e['attributes']=_[_0xce6b('0x32')](_0x540f18[_0xce6b('0x33')],qs[_0xce6b('0x34')](_0x1e3666[_0xce6b('0x30')][_0xce6b('0x34')]));_0x1cce4e[_0xce6b('0x31')]=_0x1cce4e['attributes'][_0xce6b('0x35')]?_0x1cce4e['attributes']:_0x540f18['model'];if(_0x1e3666[_0xce6b('0x30')][_0xce6b('0x43')]){_0x1cce4e[_0xce6b('0x44')]=[{'all':!![]}];}_0x1cce4e=_[_0xce6b('0x3c')]({},_0x1cce4e,_0x1e3666['options']);return db[_0xce6b('0x2a')][_0xce6b('0x45')](_0x1cce4e)[_0xce6b('0x23')](handleEntityNotFound(_0x3a7acc,null))[_0xce6b('0x23')](respondWithResult(_0x3a7acc,null))[_0xce6b('0x46')](handleError(_0x3a7acc,null));};exports['create']=function(_0x493e5a,_0x387657){return db[_0xce6b('0x2a')][_0xce6b('0x47')](_0x493e5a[_0xce6b('0x48')],{})[_0xce6b('0x23')](respondWithResult(_0x387657,0xc9))[_0xce6b('0x46')](handleError(_0x387657,null));};exports[_0xce6b('0x22')]=function(_0x395677,_0x3b3dde){if(_0x395677[_0xce6b('0x48')]['id']){delete _0x395677[_0xce6b('0x48')]['id'];}return db[_0xce6b('0x2a')]['find']({'where':{'id':_0x395677[_0xce6b('0x42')]['id']}})[_0xce6b('0x23')](handleEntityNotFound(_0x3b3dde,null))['then'](saveUpdates(_0x395677[_0xce6b('0x48')],null))[_0xce6b('0x23')](respondWithResult(_0x3b3dde,null))[_0xce6b('0x46')](handleError(_0x3b3dde,null));};exports[_0xce6b('0x24')]=function(_0x4f40c0,_0x449aed){return db[_0xce6b('0x2a')][_0xce6b('0x45')]({'where':{'id':_0x4f40c0[_0xce6b('0x42')]['id']}})[_0xce6b('0x23')](handleEntityNotFound(_0x449aed,null))[_0xce6b('0x23')](removeEntity(_0x449aed,null))[_0xce6b('0x46')](handleError(_0x449aed,null));};exports[_0xce6b('0x49')]=function(_0x3de72a,_0x1fd17b){return db[_0xce6b('0x2a')][_0xce6b('0x49')]()[_0xce6b('0x23')](respondWithResult(_0x1fd17b,null))['catch'](handleError(_0x1fd17b,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf7b9=['api','moment','request-promise','path','../../config/environment','define','OpenchannelTransferReport','uniqueid','util'];(function(_0x5c418a,_0x5392ac){var _0x20f968=function(_0x4891b9){while(--_0x4891b9){_0x5c418a['push'](_0x5c418a['shift']());}};_0x20f968(++_0x5392ac);}(_0xf7b9,0xe9));var _0x9f7b=function(_0x7864a8,_0x3ab694){_0x7864a8=_0x7864a8-0x0;var _0x75ddbc=_0xf7b9[_0x7864a8];return _0x75ddbc;};'use strict';var _=require('lodash');var util=require(_0x9f7b('0x0'));var logger=require('../../config/logger')(_0x9f7b('0x1'));var moment=require(_0x9f7b('0x2'));var BPromise=require('bluebird');var rp=require(_0x9f7b('0x3'));var fs=require('fs');var path=require(_0x9f7b('0x4'));var rimraf=require('rimraf');var config=require(_0x9f7b('0x5'));var attributes=require('./openchannelTransferReport.attributes');module['exports']=function(_0x1a37b2,_0x48eb10){return _0x1a37b2[_0x9f7b('0x6')](_0x9f7b('0x7'),attributes,{'tableName':'report_openchannel_transfer','paranoid':![],'indexes':[{'name':_0x9f7b('0x8'),'fields':[_0x9f7b('0x8')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x50de=['util','../../config/logger','api','moment','bluebird','request-promise','rimraf','../../config/environment','./openchannelTransferReport.attributes','exports','OpenchannelTransferReport','report_openchannel_transfer','lodash'];(function(_0x1a3057,_0x275afb){var _0x3585b5=function(_0x3935c7){while(--_0x3935c7){_0x1a3057['push'](_0x1a3057['shift']());}};_0x3585b5(++_0x275afb);}(_0x50de,0x19f));var _0xe50d=function(_0x59b439,_0x14ae7b){_0x59b439=_0x59b439-0x0;var _0x521ea3=_0x50de[_0x59b439];return _0x521ea3;};'use strict';var _=require(_0xe50d('0x0'));var util=require(_0xe50d('0x1'));var logger=require(_0xe50d('0x2'))(_0xe50d('0x3'));var moment=require(_0xe50d('0x4'));var BPromise=require(_0xe50d('0x5'));var rp=require(_0xe50d('0x6'));var fs=require('fs');var path=require('path');var rimraf=require(_0xe50d('0x7'));var config=require(_0xe50d('0x8'));var attributes=require(_0xe50d('0x9'));module[_0xe50d('0xa')]=function(_0x5512f9,_0x572f24){return _0x5512f9['define'](_0xe50d('0xb'),attributes,{'tableName':_0xe50d('0xc'),'paranoid':![],'indexes':[{'name':'uniqueid','fields':['uniqueid']}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x972c=['../../config/environment','jayson/promise','http','OpenchannelTransferReport,\x20%s,\x20%s','request\x20sent','debug','OpenchannelTransferReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','moment','bluebird','ioredis','../../mysqldb','rpc'];(function(_0x5efd01,_0x418660){var _0x4676d0=function(_0x35387c){while(--_0x35387c){_0x5efd01['push'](_0x5efd01['shift']());}};_0x4676d0(++_0x418660);}(_0x972c,0xf2));var _0xc972=function(_0x10db26,_0xf6b817){_0x10db26=_0x10db26-0x0;var _0x16ff66=_0x972c[_0x10db26];return _0x16ff66;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0xc972('0x0'));var BPromise=require(_0xc972('0x1'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xc972('0x2'));var db=require(_0xc972('0x3'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0xc972('0x4'));var config=require(_0xc972('0x5'));var jayson=require(_0xc972('0x6'));var client=jayson['client'][_0xc972('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x4cff66,_0x1c1a16,_0xd8cd25){return new BPromise(function(_0x304d08,_0x5ef7c4){return client['request'](_0x4cff66,_0xd8cd25)['then'](function(_0xa1400f){logger['info'](_0xc972('0x8'),_0x1c1a16,_0xc972('0x9'));logger[_0xc972('0xa')](_0xc972('0xb'),_0x1c1a16,_0xc972('0x9'),JSON[_0xc972('0xc')](_0xa1400f));if(_0xa1400f[_0xc972('0xd')]){if(_0xa1400f['error'][_0xc972('0xe')]===0x1f4){logger[_0xc972('0xd')](_0xc972('0x8'),_0x1c1a16,_0xa1400f['error'][_0xc972('0xf')]);return _0x5ef7c4(_0xa1400f[_0xc972('0xd')][_0xc972('0xf')]);}logger['error'](_0xc972('0x8'),_0x1c1a16,_0xa1400f[_0xc972('0xd')][_0xc972('0xf')]);return _0x304d08(_0xa1400f[_0xc972('0xd')]['message']);}else{logger[_0xc972('0x10')](_0xc972('0x8'),_0x1c1a16,_0xc972('0x9'));_0x304d08(_0xa1400f[_0xc972('0x11')][_0xc972('0xf')]);}})[_0xc972('0x12')](function(_0x1e3389){logger[_0xc972('0xd')](_0xc972('0x8'),_0x1c1a16,_0x1e3389);_0x5ef7c4(_0x1e3389);});});}
\ No newline at end of file
+var _0x05bc=['randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','info','OpenchannelTransferReport,\x20%s,\x20%s','request\x20sent','debug','OpenchannelTransferReport,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','util','bluebird'];(function(_0x59f61a,_0x4f2099){var _0x21a0db=function(_0x292a06){while(--_0x292a06){_0x59f61a['push'](_0x59f61a['shift']());}};_0x21a0db(++_0x4f2099);}(_0x05bc,0xae));var _0xc05b=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x05bc[_0x3dd15e];return _0x231fd0;};'use strict';var _=require('lodash');var util=require(_0xc05b('0x0'));var moment=require('moment');var BPromise=require(_0xc05b('0x1'));var rs=require(_0xc05b('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xc05b('0x3'))['db'];var utils=require(_0xc05b('0x4'));var logger=require(_0xc05b('0x5'))(_0xc05b('0x6'));var config=require(_0xc05b('0x7'));var jayson=require(_0xc05b('0x8'));var client=jayson[_0xc05b('0x9')][_0xc05b('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x9c6c57,_0x1b501a,_0x275f0f){return new BPromise(function(_0x143ba4,_0x45245b){return client[_0xc05b('0xb')](_0x9c6c57,_0x275f0f)['then'](function(_0x5d72b9){logger[_0xc05b('0xc')](_0xc05b('0xd'),_0x1b501a,_0xc05b('0xe'));logger[_0xc05b('0xf')](_0xc05b('0x10'),_0x1b501a,_0xc05b('0xe'),JSON[_0xc05b('0x11')](_0x5d72b9));if(_0x5d72b9[_0xc05b('0x12')]){if(_0x5d72b9[_0xc05b('0x12')]['code']===0x1f4){logger[_0xc05b('0x12')](_0xc05b('0xd'),_0x1b501a,_0x5d72b9[_0xc05b('0x12')][_0xc05b('0x13')]);return _0x45245b(_0x5d72b9[_0xc05b('0x12')][_0xc05b('0x13')]);}logger['error'](_0xc05b('0xd'),_0x1b501a,_0x5d72b9[_0xc05b('0x12')]['message']);return _0x143ba4(_0x5d72b9['error'][_0xc05b('0x13')]);}else{logger[_0xc05b('0xc')](_0xc05b('0xd'),_0x1b501a,_0xc05b('0xe'));_0x143ba4(_0x5d72b9[_0xc05b('0x14')][_0xc05b('0x13')]);}})[_0xc05b('0x15')](function(_0x5a33c1){logger[_0xc05b('0x12')](_0xc05b('0xd'),_0x1b501a,_0x5a33c1);_0x45245b(_0x5a33c1);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xee11=['destroy','exports','multer','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./pause.controller','isAuthenticated','index','get','/:id','create','put','update'];(function(_0x535c17,_0x206242){var _0x52d73f=function(_0xb13021){while(--_0xb13021){_0x535c17['push'](_0x535c17['shift']());}};_0x52d73f(++_0x206242);}(_0xee11,0x146));var _0x1ee1=function(_0x40e141,_0x4385ee){_0x40e141=_0x40e141-0x0;var _0x3ce15c=_0xee11[_0x40e141];return _0x3ce15c;};'use strict';var multer=require(_0x1ee1('0x0'));var util=require('util');var path=require('path');var timeout=require(_0x1ee1('0x1'));var express=require(_0x1ee1('0x2'));var router=express[_0x1ee1('0x3')]();var fs_extra=require(_0x1ee1('0x4'));var auth=require(_0x1ee1('0x5'));var interaction=require(_0x1ee1('0x6'));var config=require(_0x1ee1('0x7'));var controller=require(_0x1ee1('0x8'));router['get']('/',auth[_0x1ee1('0x9')](),controller[_0x1ee1('0xa')]);router[_0x1ee1('0xb')](_0x1ee1('0xc'),auth[_0x1ee1('0x9')](),controller['show']);router['post']('/',auth[_0x1ee1('0x9')](),controller[_0x1ee1('0xd')]);router[_0x1ee1('0xe')](_0x1ee1('0xc'),auth['isAuthenticated'](),controller[_0x1ee1('0xf')]);router['delete'](_0x1ee1('0xc'),auth[_0x1ee1('0x9')](),controller[_0x1ee1('0x10')]);module[_0x1ee1('0x11')]=router;
\ No newline at end of file
+var _0x76dc=['put','/:id','update','destroy','exports','multer','util','path','connect-timeout','Router','fs-extra','../../components/interaction/service','get','isAuthenticated','index','show','post'];(function(_0x4213ad,_0x189c5b){var _0x2411e5=function(_0xbd5a7){while(--_0xbd5a7){_0x4213ad['push'](_0x4213ad['shift']());}};_0x2411e5(++_0x189c5b);}(_0x76dc,0x1f2));var _0xc76d=function(_0x3b90bc,_0x1e0dc7){_0x3b90bc=_0x3b90bc-0x0;var _0x5d8542=_0x76dc[_0x3b90bc];return _0x5d8542;};'use strict';var multer=require(_0xc76d('0x0'));var util=require(_0xc76d('0x1'));var path=require(_0xc76d('0x2'));var timeout=require(_0xc76d('0x3'));var express=require('express');var router=express[_0xc76d('0x4')]();var fs_extra=require(_0xc76d('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0xc76d('0x6'));var config=require('../../config/environment');var controller=require('./pause.controller');router[_0xc76d('0x7')]('/',auth[_0xc76d('0x8')](),controller[_0xc76d('0x9')]);router['get']('/:id',auth[_0xc76d('0x8')](),controller[_0xc76d('0xa')]);router[_0xc76d('0xb')]('/',auth['isAuthenticated'](),controller['create']);router[_0xc76d('0xc')](_0xc76d('0xd'),auth['isAuthenticated'](),controller[_0xc76d('0xe')]);router['delete'](_0xc76d('0xd'),auth[_0xc76d('0x8')](),controller[_0xc76d('0xf')]);module[_0xc76d('0x10')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2947=['sequelize','STRING'];(function(_0x3591db,_0x5be15b){var _0x36f5f0=function(_0x3db7f0){while(--_0x3db7f0){_0x3591db['push'](_0x3591db['shift']());}};_0x36f5f0(++_0x5be15b);}(_0x2947,0x1e4));var _0x7294=function(_0x3caa14,_0x3316ad){_0x3caa14=_0x3caa14-0x0;var _0x5bea24=_0x2947[_0x3caa14];return _0x5bea24;};'use strict';var Sequelize=require(_0x7294('0x0'));module['exports']={'name':{'type':Sequelize[_0x7294('0x1')],'unique':'name','allowNull':![]},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0x2376=['exports','STRING','name','sequelize'];(function(_0x412ad7,_0x28dc2d){var _0x42aea9=function(_0x284fc0){while(--_0x284fc0){_0x412ad7['push'](_0x412ad7['shift']());}};_0x42aea9(++_0x28dc2d);}(_0x2376,0xe7));var _0x6237=function(_0x2ca649,_0x5572e9){_0x2ca649=_0x2ca649-0x0;var _0x4ac7f6=_0x2376[_0x2ca649];return _0x4ac7f6;};'use strict';var Sequelize=require(_0x6237('0x0'));module[_0x6237('0x1')]={'name':{'type':Sequelize[_0x6237('0x2')],'unique':_0x6237('0x3'),'allowNull':![]},'description':{'type':Sequelize[_0x6237('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa1fa=['Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','querystring','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','limit','undefined','count','Content-Range','apply','reject','save','then','destroy','get','Pauses','UserProfileResource','error','name','send','map','rawAttributes','fieldName','key','query','keys','filters','intersection','model','fields','attributes','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','Pause','includeAll','include','findAll','rows','catch','show','params','find','body','role','user','UserProfileSection','userProfileId','autoAssociation','create'];(function(_0x3de7e0,_0x28cbff){var _0x11d0b3=function(_0xd95412){while(--_0xd95412){_0x3de7e0['push'](_0x3de7e0['shift']());}};_0x11d0b3(++_0x28cbff);}(_0xa1fa,0x14d));var _0xaa1f=function(_0x47655b,_0x370d89){_0x47655b=_0x47655b-0x0;var _0x57e73b=_0xa1fa[_0x47655b];return _0x57e73b;};'use strict';var emlformat=require(_0xaa1f('0x0'));var rimraf=require(_0xaa1f('0x1'));var zipdir=require(_0xaa1f('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xaa1f('0x3'));var moment=require(_0xaa1f('0x4'));var BPromise=require(_0xaa1f('0x5'));var Mustache=require(_0xaa1f('0x6'));var util=require(_0xaa1f('0x7'));var path=require(_0xaa1f('0x8'));var sox=require(_0xaa1f('0x9'));var csv=require(_0xaa1f('0xa'));var ejs=require(_0xaa1f('0xb'));var fs=require('fs');var fs_extra=require(_0xaa1f('0xc'));var _=require(_0xaa1f('0xd'));var squel=require(_0xaa1f('0xe'));var crypto=require('crypto');var jsforce=require(_0xaa1f('0xf'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0xaa1f('0x10'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xaa1f('0x11'));var qs=require(_0xaa1f('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xaa1f('0x13'));var logger=require(_0xaa1f('0x14'))('api');var utils=require(_0xaa1f('0x15'));var config=require(_0xaa1f('0x16'));var licenseUtil=require(_0xaa1f('0x17'));var db=require(_0xaa1f('0x18'))['db'];function respondWithStatusCode(_0x36d2e8,_0x3a2714){_0x3a2714=_0x3a2714||0xcc;return function(_0x1a8686){if(_0x1a8686){return _0x36d2e8[_0xaa1f('0x19')](_0x3a2714);}return _0x36d2e8[_0xaa1f('0x1a')](_0x3a2714)[_0xaa1f('0x1b')]();};}function respondWithResult(_0x33367c,_0x34cc46){_0x34cc46=_0x34cc46||0xc8;return function(_0x24fba7){if(_0x24fba7){return _0x33367c[_0xaa1f('0x1a')](_0x34cc46)[_0xaa1f('0x1c')](_0x24fba7);}};}function respondWithFilteredResult(_0x1c211c,_0x5542e1){return function(_0x1da764){if(_0x1da764){var _0x4e9ffb=typeof _0x5542e1[_0xaa1f('0x1d')]==='undefined'&&typeof _0x5542e1[_0xaa1f('0x1e')]===_0xaa1f('0x1f');var _0x60920=_0x1da764[_0xaa1f('0x20')];var _0x46225a=_0x4e9ffb?0x0:_0x5542e1[_0xaa1f('0x1d')];var _0x27d99e=_0x4e9ffb?_0x1da764[_0xaa1f('0x20')]:_0x5542e1['offset']+_0x5542e1[_0xaa1f('0x1e')];var _0x7514cd;if(_0x27d99e>=_0x60920){_0x27d99e=_0x60920;_0x7514cd=0xc8;}else{_0x7514cd=0xce;}_0x1c211c[_0xaa1f('0x1a')](_0x7514cd);return _0x1c211c['set'](_0xaa1f('0x21'),_0x46225a+'-'+_0x27d99e+'/'+_0x60920)['json'](_0x1da764);}return null;};}function patchUpdates(_0x1f0337){return function(_0x474ea6){try{jsonpatch[_0xaa1f('0x22')](_0x474ea6,_0x1f0337,!![]);}catch(_0x3e2a94){return BPromise[_0xaa1f('0x23')](_0x3e2a94);}return _0x474ea6[_0xaa1f('0x24')]();};}function saveUpdates(_0x78e485,_0x5b97a2){return function(_0x44040a){if(_0x44040a){return _0x44040a['update'](_0x78e485)[_0xaa1f('0x25')](function(_0x33ff3a){return _0x33ff3a;});}return null;};}function removeEntity(_0x1db639,_0x4dbfaf){return function(_0x4492eb){if(_0x4492eb){return _0x4492eb[_0xaa1f('0x26')]()[_0xaa1f('0x25')](function(){var _0x300e81=_0x4492eb[_0xaa1f('0x27')]({'plain':!![]});var _0x3ff496=_0xaa1f('0x28');return db[_0xaa1f('0x29')][_0xaa1f('0x26')]({'where':{'type':_0x3ff496,'resourceId':_0x300e81['id']}})[_0xaa1f('0x25')](function(){return _0x4492eb;});})['then'](function(){_0x1db639[_0xaa1f('0x1a')](0xcc)[_0xaa1f('0x1b')]();});}};}function handleEntityNotFound(_0x110b8a,_0x329034){return function(_0x53d123){if(!_0x53d123){_0x110b8a[_0xaa1f('0x19')](0x194);}return _0x53d123;};}function handleError(_0x2f6f1f,_0x4222b5){_0x4222b5=_0x4222b5||0x1f4;return function(_0x3ce117){logger[_0xaa1f('0x2a')](_0x3ce117['stack']);if(_0x3ce117[_0xaa1f('0x2b')]){delete _0x3ce117[_0xaa1f('0x2b')];}_0x2f6f1f[_0xaa1f('0x1a')](_0x4222b5)[_0xaa1f('0x2c')](_0x3ce117);};}exports['index']=function(_0x537c1d,_0x2790eb){var _0xf0ced2={},_0x3a2794={},_0x456883={'count':0x0,'rows':[]};var _0xc06a64=_[_0xaa1f('0x2d')](db['Pause'][_0xaa1f('0x2e')],function(_0x9001ae){return{'name':_0x9001ae[_0xaa1f('0x2f')],'type':_0x9001ae['type'][_0xaa1f('0x30')]};});_0x3a2794['model']=_[_0xaa1f('0x2d')](_0xc06a64,'name');_0x3a2794[_0xaa1f('0x31')]=_[_0xaa1f('0x32')](_0x537c1d['query']);_0x3a2794[_0xaa1f('0x33')]=_[_0xaa1f('0x34')](_0x3a2794['model'],_0x3a2794[_0xaa1f('0x31')]);_0xf0ced2['attributes']=_[_0xaa1f('0x34')](_0x3a2794[_0xaa1f('0x35')],qs[_0xaa1f('0x36')](_0x537c1d[_0xaa1f('0x31')][_0xaa1f('0x36')]));_0xf0ced2[_0xaa1f('0x37')]=_0xf0ced2[_0xaa1f('0x37')][_0xaa1f('0x38')]?_0xf0ced2[_0xaa1f('0x37')]:_0x3a2794['model'];if(!_0x537c1d[_0xaa1f('0x31')][_0xaa1f('0x39')](_0xaa1f('0x3a'))){_0xf0ced2['limit']=qs[_0xaa1f('0x1e')](_0x537c1d[_0xaa1f('0x31')][_0xaa1f('0x1e')]);_0xf0ced2[_0xaa1f('0x1d')]=qs[_0xaa1f('0x1d')](_0x537c1d[_0xaa1f('0x31')]['offset']);}_0xf0ced2['order']=qs[_0xaa1f('0x3b')](_0x537c1d['query']['sort']);_0xf0ced2[_0xaa1f('0x3c')]=qs[_0xaa1f('0x33')](_[_0xaa1f('0x3d')](_0x537c1d[_0xaa1f('0x31')],_0x3a2794[_0xaa1f('0x33')]),_0xc06a64);if(_0x537c1d['query'][_0xaa1f('0x3e')]){_0xf0ced2['where']=_[_0xaa1f('0x3f')](_0xf0ced2[_0xaa1f('0x3c')],{'$or':_[_0xaa1f('0x2d')](_0xc06a64,function(_0x26d79c){if(_0x26d79c['type']!==_0xaa1f('0x40')){var _0x4ca950={};_0x4ca950[_0x26d79c['name']]={'$like':'%'+_0x537c1d[_0xaa1f('0x31')][_0xaa1f('0x3e')]+'%'};return _0x4ca950;}})});}_0xf0ced2=_[_0xaa1f('0x3f')]({},_0xf0ced2,_0x537c1d[_0xaa1f('0x41')]);var _0x13242f={'where':_0xf0ced2[_0xaa1f('0x3c')]};return db[_0xaa1f('0x42')][_0xaa1f('0x20')](_0x13242f)['then'](function(_0x3e33fe){_0x456883[_0xaa1f('0x20')]=_0x3e33fe;if(_0x537c1d[_0xaa1f('0x31')][_0xaa1f('0x43')]){_0xf0ced2[_0xaa1f('0x44')]=[{'all':!![]}];}return db[_0xaa1f('0x42')][_0xaa1f('0x45')](_0xf0ced2);})[_0xaa1f('0x25')](function(_0x4847f7){_0x456883[_0xaa1f('0x46')]=_0x4847f7;return _0x456883;})[_0xaa1f('0x25')](respondWithFilteredResult(_0x2790eb,_0xf0ced2))[_0xaa1f('0x47')](handleError(_0x2790eb,null));};exports[_0xaa1f('0x48')]=function(_0x2c4008,_0x53e9b9){var _0x5ca976={'raw':!![],'where':{'id':_0x2c4008[_0xaa1f('0x49')]['id']}},_0x3d3a87={};_0x3d3a87[_0xaa1f('0x35')]=_['keys'](db[_0xaa1f('0x42')]['rawAttributes']);_0x3d3a87[_0xaa1f('0x31')]=_['keys'](_0x2c4008[_0xaa1f('0x31')]);_0x3d3a87[_0xaa1f('0x33')]=_['intersection'](_0x3d3a87['model'],_0x3d3a87[_0xaa1f('0x31')]);_0x5ca976[_0xaa1f('0x37')]=_[_0xaa1f('0x34')](_0x3d3a87[_0xaa1f('0x35')],qs['fields'](_0x2c4008['query'][_0xaa1f('0x36')]));_0x5ca976[_0xaa1f('0x37')]=_0x5ca976[_0xaa1f('0x37')][_0xaa1f('0x38')]?_0x5ca976[_0xaa1f('0x37')]:_0x3d3a87[_0xaa1f('0x35')];if(_0x2c4008[_0xaa1f('0x31')][_0xaa1f('0x43')]){_0x5ca976[_0xaa1f('0x44')]=[{'all':!![]}];}_0x5ca976=_['merge']({},_0x5ca976,_0x2c4008[_0xaa1f('0x41')]);return db[_0xaa1f('0x42')][_0xaa1f('0x4a')](_0x5ca976)['then'](handleEntityNotFound(_0x53e9b9,null))[_0xaa1f('0x25')](respondWithResult(_0x53e9b9,null))[_0xaa1f('0x47')](handleError(_0x53e9b9,null));};exports['create']=function(_0x7a3482,_0x583e7f){return db[_0xaa1f('0x42')]['create'](_0x7a3482[_0xaa1f('0x4b')],{})[_0xaa1f('0x25')](function(_0x47566a){var _0x496eba=_0x7a3482['user']['get']({'plain':!![]});if(!_0x496eba)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x496eba[_0xaa1f('0x4c')]===_0xaa1f('0x4d')){var _0x3d030e=_0x47566a[_0xaa1f('0x27')]({'plain':!![]});var _0x3f0e1b=_0xaa1f('0x28');return db[_0xaa1f('0x4e')]['find']({'where':{'name':_0x3f0e1b,'userProfileId':_0x496eba[_0xaa1f('0x4f')]},'raw':!![]})['then'](function(_0x46cb86){if(_0x46cb86&&_0x46cb86[_0xaa1f('0x50')]===0x0){return db[_0xaa1f('0x29')][_0xaa1f('0x51')]({'name':_0x3d030e[_0xaa1f('0x2b')],'resourceId':_0x3d030e['id'],'type':_0x46cb86[_0xaa1f('0x2b')],'sectionId':_0x46cb86['id']},{})[_0xaa1f('0x25')](function(){return _0x47566a;});}else{return _0x47566a;}})[_0xaa1f('0x47')](function(_0xa5f5d8){logger['error'](_0xaa1f('0x52'),_0xa5f5d8);throw _0xa5f5d8;});}return _0x47566a;})['then'](respondWithResult(_0x583e7f,0xc9))[_0xaa1f('0x47')](handleError(_0x583e7f,null));};exports['update']=function(_0x54e8c8,_0xe32546){if(_0x54e8c8['body']['id']){delete _0x54e8c8['body']['id'];}return db[_0xaa1f('0x42')][_0xaa1f('0x4a')]({'where':{'id':_0x54e8c8[_0xaa1f('0x49')]['id']}})[_0xaa1f('0x25')](handleEntityNotFound(_0xe32546,null))[_0xaa1f('0x25')](saveUpdates(_0x54e8c8[_0xaa1f('0x4b')],null))[_0xaa1f('0x25')](respondWithResult(_0xe32546,null))[_0xaa1f('0x47')](handleError(_0xe32546,null));};exports[_0xaa1f('0x26')]=function(_0x3f84d0,_0x211fe7){return db[_0xaa1f('0x42')][_0xaa1f('0x4a')]({'where':{'id':_0x3f84d0[_0xaa1f('0x49')]['id']}})[_0xaa1f('0x25')](handleEntityNotFound(_0x211fe7,null))[_0xaa1f('0x25')](removeEntity(_0x211fe7,null))['catch'](handleError(_0x211fe7,null));};
\ No newline at end of file
+var _0xa497=['user','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','destroy','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','status','end','undefined','count','offset','Content-Range','apply','reject','save','update','then','get','Pauses','UserProfileResource','send','Pause','rawAttributes','key','model','map','name','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','order','sort','where','pick','filters','filter','merge','type','VIRTUAL','options','includeAll','include','findAll','catch','show','params','find','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role'];(function(_0x48e1ec,_0x35f468){var _0x3b33eb=function(_0x507bf9){while(--_0x507bf9){_0x48e1ec['push'](_0x48e1ec['shift']());}};_0x3b33eb(++_0x35f468);}(_0xa497,0xab));var _0x7a49=function(_0x5e5727,_0x139f86){_0x5e5727=_0x5e5727-0x0;var _0xbce011=_0xa497[_0x5e5727];return _0xbce011;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x7a49('0x0'));var jsonpatch=require(_0x7a49('0x1'));var rp=require(_0x7a49('0x2'));var moment=require(_0x7a49('0x3'));var BPromise=require(_0x7a49('0x4'));var Mustache=require(_0x7a49('0x5'));var util=require(_0x7a49('0x6'));var path=require(_0x7a49('0x7'));var sox=require(_0x7a49('0x8'));var csv=require(_0x7a49('0x9'));var ejs=require(_0x7a49('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x7a49('0xb'));var squel=require(_0x7a49('0xc'));var crypto=require(_0x7a49('0xd'));var jsforce=require(_0x7a49('0xe'));var deskjs=require(_0x7a49('0xf'));var toCsv=require(_0x7a49('0x9'));var querystring=require(_0x7a49('0x10'));var Papa=require(_0x7a49('0x11'));var Redis=require(_0x7a49('0x12'));var authService=require(_0x7a49('0x13'));var qs=require(_0x7a49('0x14'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x7a49('0x15'));var logger=require(_0x7a49('0x16'))(_0x7a49('0x17'));var utils=require('../../config/utils');var config=require(_0x7a49('0x18'));var licenseUtil=require(_0x7a49('0x19'));var db=require(_0x7a49('0x1a'))['db'];function respondWithStatusCode(_0xdfdfcf,_0x41356e){_0x41356e=_0x41356e||0xcc;return function(_0x592f45){if(_0x592f45){return _0xdfdfcf['sendStatus'](_0x41356e);}return _0xdfdfcf[_0x7a49('0x1b')](_0x41356e)[_0x7a49('0x1c')]();};}function respondWithResult(_0x24e8b8,_0x912b1f){_0x912b1f=_0x912b1f||0xc8;return function(_0x2382f7){if(_0x2382f7){return _0x24e8b8[_0x7a49('0x1b')](_0x912b1f)['json'](_0x2382f7);}};}function respondWithFilteredResult(_0x2f87ac,_0x1e4a90){return function(_0x5414bd){if(_0x5414bd){var _0x5942cf=typeof _0x1e4a90['offset']===_0x7a49('0x1d')&&typeof _0x1e4a90['limit']===_0x7a49('0x1d');var _0x5d4960=_0x5414bd[_0x7a49('0x1e')];var _0x23c6c8=_0x5942cf?0x0:_0x1e4a90[_0x7a49('0x1f')];var _0x408c32=_0x5942cf?_0x5414bd[_0x7a49('0x1e')]:_0x1e4a90[_0x7a49('0x1f')]+_0x1e4a90['limit'];var _0x5e1493;if(_0x408c32>=_0x5d4960){_0x408c32=_0x5d4960;_0x5e1493=0xc8;}else{_0x5e1493=0xce;}_0x2f87ac['status'](_0x5e1493);return _0x2f87ac['set'](_0x7a49('0x20'),_0x23c6c8+'-'+_0x408c32+'/'+_0x5d4960)['json'](_0x5414bd);}return null;};}function patchUpdates(_0xcf1190){return function(_0x3e4691){try{jsonpatch[_0x7a49('0x21')](_0x3e4691,_0xcf1190,!![]);}catch(_0x4009cd){return BPromise[_0x7a49('0x22')](_0x4009cd);}return _0x3e4691[_0x7a49('0x23')]();};}function saveUpdates(_0x4d2b4e,_0x443549){return function(_0x4103ab){if(_0x4103ab){return _0x4103ab[_0x7a49('0x24')](_0x4d2b4e)[_0x7a49('0x25')](function(_0x26ecc8){return _0x26ecc8;});}return null;};}function removeEntity(_0x5512f4,_0x35a3e0){return function(_0x152874){if(_0x152874){return _0x152874['destroy']()[_0x7a49('0x25')](function(){var _0xa578d4=_0x152874[_0x7a49('0x26')]({'plain':!![]});var _0x4da436=_0x7a49('0x27');return db[_0x7a49('0x28')]['destroy']({'where':{'type':_0x4da436,'resourceId':_0xa578d4['id']}})[_0x7a49('0x25')](function(){return _0x152874;});})[_0x7a49('0x25')](function(){_0x5512f4[_0x7a49('0x1b')](0xcc)[_0x7a49('0x1c')]();});}};}function handleEntityNotFound(_0xa75d67,_0x3bce66){return function(_0x4a516a){if(!_0x4a516a){_0xa75d67['sendStatus'](0x194);}return _0x4a516a;};}function handleError(_0x281305,_0x3b9aea){_0x3b9aea=_0x3b9aea||0x1f4;return function(_0x236637){logger['error'](_0x236637['stack']);if(_0x236637['name']){delete _0x236637['name'];}_0x281305['status'](_0x3b9aea)[_0x7a49('0x29')](_0x236637);};}exports['index']=function(_0x372ee0,_0x185a9a){var _0x4d3078={},_0x1e2de2={},_0x1d4acd={'count':0x0,'rows':[]};var _0x454953=_['map'](db[_0x7a49('0x2a')][_0x7a49('0x2b')],function(_0x58de8f){return{'name':_0x58de8f['fieldName'],'type':_0x58de8f['type'][_0x7a49('0x2c')]};});_0x1e2de2[_0x7a49('0x2d')]=_[_0x7a49('0x2e')](_0x454953,_0x7a49('0x2f'));_0x1e2de2[_0x7a49('0x30')]=_[_0x7a49('0x31')](_0x372ee0[_0x7a49('0x30')]);_0x1e2de2['filters']=_[_0x7a49('0x32')](_0x1e2de2[_0x7a49('0x2d')],_0x1e2de2['query']);_0x4d3078[_0x7a49('0x33')]=_['intersection'](_0x1e2de2[_0x7a49('0x2d')],qs[_0x7a49('0x34')](_0x372ee0[_0x7a49('0x30')][_0x7a49('0x34')]));_0x4d3078[_0x7a49('0x33')]=_0x4d3078[_0x7a49('0x33')][_0x7a49('0x35')]?_0x4d3078[_0x7a49('0x33')]:_0x1e2de2[_0x7a49('0x2d')];if(!_0x372ee0[_0x7a49('0x30')][_0x7a49('0x36')](_0x7a49('0x37'))){_0x4d3078[_0x7a49('0x38')]=qs[_0x7a49('0x38')](_0x372ee0[_0x7a49('0x30')]['limit']);_0x4d3078['offset']=qs[_0x7a49('0x1f')](_0x372ee0[_0x7a49('0x30')]['offset']);}_0x4d3078[_0x7a49('0x39')]=qs['sort'](_0x372ee0[_0x7a49('0x30')][_0x7a49('0x3a')]);_0x4d3078[_0x7a49('0x3b')]=qs['filters'](_[_0x7a49('0x3c')](_0x372ee0[_0x7a49('0x30')],_0x1e2de2[_0x7a49('0x3d')]),_0x454953);if(_0x372ee0[_0x7a49('0x30')][_0x7a49('0x3e')]){_0x4d3078[_0x7a49('0x3b')]=_[_0x7a49('0x3f')](_0x4d3078[_0x7a49('0x3b')],{'$or':_[_0x7a49('0x2e')](_0x454953,function(_0x5b4109){if(_0x5b4109[_0x7a49('0x40')]!==_0x7a49('0x41')){var _0x165be7={};_0x165be7[_0x5b4109[_0x7a49('0x2f')]]={'$like':'%'+_0x372ee0[_0x7a49('0x30')][_0x7a49('0x3e')]+'%'};return _0x165be7;}})});}_0x4d3078=_[_0x7a49('0x3f')]({},_0x4d3078,_0x372ee0[_0x7a49('0x42')]);var _0x14d20c={'where':_0x4d3078['where']};return db[_0x7a49('0x2a')][_0x7a49('0x1e')](_0x14d20c)[_0x7a49('0x25')](function(_0x146dfd){_0x1d4acd['count']=_0x146dfd;if(_0x372ee0[_0x7a49('0x30')][_0x7a49('0x43')]){_0x4d3078[_0x7a49('0x44')]=[{'all':!![]}];}return db['Pause'][_0x7a49('0x45')](_0x4d3078);})[_0x7a49('0x25')](function(_0x20b9db){_0x1d4acd['rows']=_0x20b9db;return _0x1d4acd;})[_0x7a49('0x25')](respondWithFilteredResult(_0x185a9a,_0x4d3078))[_0x7a49('0x46')](handleError(_0x185a9a,null));};exports[_0x7a49('0x47')]=function(_0x4e5ef4,_0x190d60){var _0x58d7ba={'raw':!![],'where':{'id':_0x4e5ef4[_0x7a49('0x48')]['id']}},_0x11f126={};_0x11f126[_0x7a49('0x2d')]=_['keys'](db[_0x7a49('0x2a')][_0x7a49('0x2b')]);_0x11f126[_0x7a49('0x30')]=_[_0x7a49('0x31')](_0x4e5ef4['query']);_0x11f126[_0x7a49('0x3d')]=_[_0x7a49('0x32')](_0x11f126[_0x7a49('0x2d')],_0x11f126[_0x7a49('0x30')]);_0x58d7ba['attributes']=_[_0x7a49('0x32')](_0x11f126[_0x7a49('0x2d')],qs[_0x7a49('0x34')](_0x4e5ef4[_0x7a49('0x30')]['fields']));_0x58d7ba[_0x7a49('0x33')]=_0x58d7ba[_0x7a49('0x33')]['length']?_0x58d7ba[_0x7a49('0x33')]:_0x11f126['model'];if(_0x4e5ef4[_0x7a49('0x30')][_0x7a49('0x43')]){_0x58d7ba[_0x7a49('0x44')]=[{'all':!![]}];}_0x58d7ba=_[_0x7a49('0x3f')]({},_0x58d7ba,_0x4e5ef4['options']);return db['Pause'][_0x7a49('0x49')](_0x58d7ba)[_0x7a49('0x25')](handleEntityNotFound(_0x190d60,null))['then'](respondWithResult(_0x190d60,null))[_0x7a49('0x46')](handleError(_0x190d60,null));};exports[_0x7a49('0x4a')]=function(_0x5b9b2c,_0x45b050){return db[_0x7a49('0x2a')]['create'](_0x5b9b2c[_0x7a49('0x4b')],{})['then'](function(_0x5105a5){var _0x10ad1e=_0x5b9b2c['user'][_0x7a49('0x26')]({'plain':!![]});if(!_0x10ad1e)throw new Error(_0x7a49('0x4c'));if(_0x10ad1e[_0x7a49('0x4d')]===_0x7a49('0x4e')){var _0xd156e=_0x5105a5['get']({'plain':!![]});var _0x3d60a7='Pauses';return db['UserProfileSection'][_0x7a49('0x49')]({'where':{'name':_0x3d60a7,'userProfileId':_0x10ad1e['userProfileId']},'raw':!![]})[_0x7a49('0x25')](function(_0x4a7036){if(_0x4a7036&&_0x4a7036[_0x7a49('0x4f')]===0x0){return db[_0x7a49('0x28')][_0x7a49('0x4a')]({'name':_0xd156e['name'],'resourceId':_0xd156e['id'],'type':_0x4a7036[_0x7a49('0x2f')],'sectionId':_0x4a7036['id']},{})[_0x7a49('0x25')](function(){return _0x5105a5;});}else{return _0x5105a5;}})[_0x7a49('0x46')](function(_0x7f05a){logger[_0x7a49('0x50')](_0x7a49('0x51'),_0x7f05a);throw _0x7f05a;});}return _0x5105a5;})[_0x7a49('0x25')](respondWithResult(_0x45b050,0xc9))[_0x7a49('0x46')](handleError(_0x45b050,null));};exports[_0x7a49('0x24')]=function(_0x401967,_0x49e196){if(_0x401967['body']['id']){delete _0x401967[_0x7a49('0x4b')]['id'];}return db[_0x7a49('0x2a')][_0x7a49('0x49')]({'where':{'id':_0x401967['params']['id']}})['then'](handleEntityNotFound(_0x49e196,null))[_0x7a49('0x25')](saveUpdates(_0x401967[_0x7a49('0x4b')],null))[_0x7a49('0x25')](respondWithResult(_0x49e196,null))[_0x7a49('0x46')](handleError(_0x49e196,null));};exports[_0x7a49('0x52')]=function(_0x8713cb,_0x22c771){return db['Pause'][_0x7a49('0x49')]({'where':{'id':_0x8713cb[_0x7a49('0x48')]['id']}})[_0x7a49('0x25')](handleEntityNotFound(_0x22c771,null))[_0x7a49('0x25')](removeEntity(_0x22c771,null))[_0x7a49('0x46')](handleError(_0x22c771,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x814b=['define','Pause','lodash','util','../../config/logger','api','moment','bluebird','path','rimraf','../../config/environment','./pause.attributes','exports'];(function(_0x5513c6,_0x5c65bb){var _0x54c18f=function(_0x2d4867){while(--_0x2d4867){_0x5513c6['push'](_0x5513c6['shift']());}};_0x54c18f(++_0x5c65bb);}(_0x814b,0x1a2));var _0xb814=function(_0x367e5b,_0x5721e4){_0x367e5b=_0x367e5b-0x0;var _0x4b909e=_0x814b[_0x367e5b];return _0x4b909e;};'use strict';var _=require(_0xb814('0x0'));var util=require(_0xb814('0x1'));var logger=require(_0xb814('0x2'))(_0xb814('0x3'));var moment=require(_0xb814('0x4'));var BPromise=require(_0xb814('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xb814('0x6'));var rimraf=require(_0xb814('0x7'));var config=require(_0xb814('0x8'));var attributes=require(_0xb814('0x9'));module[_0xb814('0xa')]=function(_0x322a70,_0x53e507){return _0x322a70[_0xb814('0xb')](_0xb814('0xc'),attributes,{'tableName':'tools_pauses','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x326f=['tools_pauses','lodash','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./pause.attributes','exports','define','Pause'];(function(_0x455bb7,_0x1278a2){var _0x52a276=function(_0x5036ae){while(--_0x5036ae){_0x455bb7['push'](_0x455bb7['shift']());}};_0x52a276(++_0x1278a2);}(_0x326f,0xd1));var _0xf326=function(_0x107620,_0x54ff9f){_0x107620=_0x107620-0x0;var _0x31ef94=_0x326f[_0x107620];return _0x31ef94;};'use strict';var _=require(_0xf326('0x0'));var util=require('util');var logger=require('../../config/logger')(_0xf326('0x1'));var moment=require(_0xf326('0x2'));var BPromise=require(_0xf326('0x3'));var rp=require(_0xf326('0x4'));var fs=require('fs');var path=require(_0xf326('0x5'));var rimraf=require(_0xf326('0x6'));var config=require(_0xf326('0x7'));var attributes=require(_0xf326('0x8'));module[_0xf326('0x9')]=function(_0x3ace29,_0x4c2249){return _0x3ace29[_0xf326('0xa')](_0xf326('0xb'),attributes,{'tableName':_0xf326('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb10b=['catch','lodash','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','request','then','info','Pause,\x20%s,\x20%s','Pause,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','result','ShowPause','Pause','find','options','raw','where','attributes','map','include','model','debug'];(function(_0xcf713c,_0x9b38b5){var _0x324aa8=function(_0x11c4b8){while(--_0x11c4b8){_0xcf713c['push'](_0xcf713c['shift']());}};_0x324aa8(++_0x9b38b5);}(_0xb10b,0x12a));var _0xbb10=function(_0x460358,_0x354877){_0x460358=_0x460358-0x0;var _0xdfdfa8=_0xb10b[_0x460358];return _0xdfdfa8;};'use strict';var _=require(_0xbb10('0x0'));var util=require('util');var moment=require(_0xbb10('0x1'));var BPromise=require(_0xbb10('0x2'));var rs=require(_0xbb10('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xbb10('0x4'))['db'];var utils=require(_0xbb10('0x5'));var logger=require(_0xbb10('0x6'))(_0xbb10('0x7'));var config=require(_0xbb10('0x8'));var jayson=require(_0xbb10('0x9'));var client=jayson['client'][_0xbb10('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x3cdd53,_0x513741,_0x1b9e94){return new BPromise(function(_0x3fb675,_0x21370f){return client[_0xbb10('0xb')](_0x3cdd53,_0x1b9e94)[_0xbb10('0xc')](function(_0x1ce33e){logger[_0xbb10('0xd')](_0xbb10('0xe'),_0x513741,'request\x20sent');logger['debug'](_0xbb10('0xf'),_0x513741,_0xbb10('0x10'),JSON[_0xbb10('0x11')](_0x1ce33e));if(_0x1ce33e['error']){if(_0x1ce33e[_0xbb10('0x12')]['code']===0x1f4){logger[_0xbb10('0x12')](_0xbb10('0xe'),_0x513741,_0x1ce33e[_0xbb10('0x12')][_0xbb10('0x13')]);return _0x21370f(_0x1ce33e[_0xbb10('0x12')][_0xbb10('0x13')]);}logger['error'](_0xbb10('0xe'),_0x513741,_0x1ce33e[_0xbb10('0x12')][_0xbb10('0x13')]);return _0x3fb675(_0x1ce33e[_0xbb10('0x12')][_0xbb10('0x13')]);}else{logger[_0xbb10('0xd')](_0xbb10('0xe'),_0x513741,_0xbb10('0x10'));_0x3fb675(_0x1ce33e[_0xbb10('0x14')][_0xbb10('0x13')]);}})['catch'](function(_0x2eca0f){logger[_0xbb10('0x12')](_0xbb10('0xe'),_0x513741,_0x2eca0f);_0x21370f(_0x2eca0f);});});}exports[_0xbb10('0x15')]=function(_0x378da8){var _0x1682a4=this;return new Promise(function(_0x575cca,_0x30efc6){return db[_0xbb10('0x16')][_0xbb10('0x17')]({'raw':_0x378da8['options']?_0x378da8[_0xbb10('0x18')][_0xbb10('0x19')]===undefined?!![]:![]:!![],'where':_0x378da8[_0xbb10('0x18')]?_0x378da8[_0xbb10('0x18')][_0xbb10('0x1a')]||null:null,'attributes':_0x378da8[_0xbb10('0x18')]?_0x378da8['options'][_0xbb10('0x1b')]||null:null,'include':_0x378da8[_0xbb10('0x18')]?_0x378da8['options']['include']?_[_0xbb10('0x1c')](_0x378da8[_0xbb10('0x18')][_0xbb10('0x1d')],function(_0x317da4){return{'model':db[_0x317da4[_0xbb10('0x1e')]],'as':_0x317da4['as'],'attributes':_0x317da4[_0xbb10('0x1b')],'include':_0x317da4[_0xbb10('0x1d')]?_[_0xbb10('0x1c')](_0x317da4[_0xbb10('0x1d')],function(_0x395404){return{'model':db[_0x395404[_0xbb10('0x1e')]],'as':_0x395404['as'],'attributes':_0x395404[_0xbb10('0x1b')],'include':_0x395404['include']?_['map'](_0x395404['include'],function(_0xc93a04){return{'model':db[_0xc93a04[_0xbb10('0x1e')]],'as':_0xc93a04['as'],'attributes':_0xc93a04[_0xbb10('0x1b')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x2fdde9){logger[_0xbb10('0xd')](_0xbb10('0x15'),_0x378da8);logger[_0xbb10('0x1f')](_0xbb10('0x15'),_0x378da8,JSON[_0xbb10('0x11')](_0x2fdde9));_0x575cca(_0x2fdde9);})[_0xbb10('0x20')](function(_0x4aabb9){logger[_0xbb10('0x12')](_0xbb10('0x15'),_0x4aabb9[_0xbb10('0x13')],_0x378da8);_0x30efc6(_0x1682a4[_0xbb10('0x12')](0x1f4,_0x4aabb9[_0xbb10('0x13')]));});});};
\ No newline at end of file
+var _0x7a54=['message','request\x20sent','result','catch','Pause','find','options','raw','where','attributes','map','include','model','ShowPause','lodash','util','moment','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','info','Pause,\x20%s,\x20%s','debug','stringify','error','code'];(function(_0x459b3b,_0x185823){var _0x1ef64a=function(_0x30d3ff){while(--_0x30d3ff){_0x459b3b['push'](_0x459b3b['shift']());}};_0x1ef64a(++_0x185823);}(_0x7a54,0x106));var _0x47a5=function(_0x5e1296,_0xf1638){_0x5e1296=_0x5e1296-0x0;var _0x1c211a=_0x7a54[_0x5e1296];return _0x1c211a;};'use strict';var _=require(_0x47a5('0x0'));var util=require(_0x47a5('0x1'));var moment=require(_0x47a5('0x2'));var BPromise=require('bluebird');var rs=require(_0x47a5('0x3'));var fs=require('fs');var Redis=require(_0x47a5('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x47a5('0x5'));var logger=require(_0x47a5('0x6'))(_0x47a5('0x7'));var config=require(_0x47a5('0x8'));var jayson=require(_0x47a5('0x9'));var client=jayson['client'][_0x47a5('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x59199c,_0x343372,_0x30e405){return new BPromise(function(_0x506eda,_0x194fb0){return client['request'](_0x59199c,_0x30e405)['then'](function(_0x582352){logger[_0x47a5('0xb')](_0x47a5('0xc'),_0x343372,'request\x20sent');logger[_0x47a5('0xd')]('Pause,\x20%s,\x20%s,\x20%s',_0x343372,'request\x20sent',JSON[_0x47a5('0xe')](_0x582352));if(_0x582352[_0x47a5('0xf')]){if(_0x582352[_0x47a5('0xf')][_0x47a5('0x10')]===0x1f4){logger[_0x47a5('0xf')](_0x47a5('0xc'),_0x343372,_0x582352[_0x47a5('0xf')]['message']);return _0x194fb0(_0x582352[_0x47a5('0xf')][_0x47a5('0x11')]);}logger[_0x47a5('0xf')](_0x47a5('0xc'),_0x343372,_0x582352[_0x47a5('0xf')][_0x47a5('0x11')]);return _0x506eda(_0x582352[_0x47a5('0xf')][_0x47a5('0x11')]);}else{logger['info'](_0x47a5('0xc'),_0x343372,_0x47a5('0x12'));_0x506eda(_0x582352[_0x47a5('0x13')][_0x47a5('0x11')]);}})[_0x47a5('0x14')](function(_0x574af6){logger['error'](_0x47a5('0xc'),_0x343372,_0x574af6);_0x194fb0(_0x574af6);});});}exports['ShowPause']=function(_0x5247fd){var _0x423a81=this;return new Promise(function(_0xaf70a6,_0x2ce454){return db[_0x47a5('0x15')][_0x47a5('0x16')]({'raw':_0x5247fd[_0x47a5('0x17')]?_0x5247fd[_0x47a5('0x17')][_0x47a5('0x18')]===undefined?!![]:![]:!![],'where':_0x5247fd[_0x47a5('0x17')]?_0x5247fd['options'][_0x47a5('0x19')]||null:null,'attributes':_0x5247fd[_0x47a5('0x17')]?_0x5247fd['options'][_0x47a5('0x1a')]||null:null,'include':_0x5247fd[_0x47a5('0x17')]?_0x5247fd[_0x47a5('0x17')]['include']?_[_0x47a5('0x1b')](_0x5247fd[_0x47a5('0x17')][_0x47a5('0x1c')],function(_0x7a9f9e){return{'model':db[_0x7a9f9e['model']],'as':_0x7a9f9e['as'],'attributes':_0x7a9f9e[_0x47a5('0x1a')],'include':_0x7a9f9e[_0x47a5('0x1c')]?_['map'](_0x7a9f9e[_0x47a5('0x1c')],function(_0xc4cd63){return{'model':db[_0xc4cd63[_0x47a5('0x1d')]],'as':_0xc4cd63['as'],'attributes':_0xc4cd63[_0x47a5('0x1a')],'include':_0xc4cd63[_0x47a5('0x1c')]?_['map'](_0xc4cd63['include'],function(_0x136745){return{'model':db[_0x136745['model']],'as':_0x136745['as'],'attributes':_0x136745[_0x47a5('0x1a')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x23cb77){logger[_0x47a5('0xb')](_0x47a5('0x1e'),_0x5247fd);logger[_0x47a5('0xd')](_0x47a5('0x1e'),_0x5247fd,JSON[_0x47a5('0xe')](_0x23cb77));_0xaf70a6(_0x23cb77);})[_0x47a5('0x14')](function(_0x136b14){logger[_0x47a5('0xf')](_0x47a5('0x1e'),_0x136b14[_0x47a5('0x11')],_0x5247fd);_0x2ce454(_0x423a81[_0x47a5('0xf')](0x1f4,_0x136b14[_0x47a5('0x11')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2d17=['connect-timeout','express','fs-extra','../../components/auth/service','../../config/environment','get','index','webhookGet','/:id','show','/:id/download','download','diskStorage','join','root','server/files/plugins','originalname','replace','format','%s-%s%s','basename','extname','now','post','file','/webhook','put','isAuthenticated','delete','exports','multer','util'];(function(_0xaefc06,_0x5c6863){var _0x15dbe0=function(_0x2c8316){while(--_0x2c8316){_0xaefc06['push'](_0xaefc06['shift']());}};_0x15dbe0(++_0x5c6863);}(_0x2d17,0x17e));var _0x72d1=function(_0x571370,_0x11f49d){_0x571370=_0x571370-0x0;var _0x1b4e40=_0x2d17[_0x571370];return _0x1b4e40;};'use strict';var multer=require(_0x72d1('0x0'));var util=require(_0x72d1('0x1'));var path=require('path');var timeout=require(_0x72d1('0x2'));var express=require(_0x72d1('0x3'));var router=express['Router']();var fs_extra=require(_0x72d1('0x4'));var auth=require(_0x72d1('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0x72d1('0x6'));var controller=require('./plugin.controller');router[_0x72d1('0x7')]('/',auth['isAuthenticated'](),controller[_0x72d1('0x8')]);router[_0x72d1('0x7')]('/webhook',controller[_0x72d1('0x9')]);router[_0x72d1('0x7')](_0x72d1('0xa'),auth['isAuthenticated'](),controller[_0x72d1('0xb')]);router[_0x72d1('0x7')](_0x72d1('0xc'),auth['isAuthenticated'](),controller[_0x72d1('0xd')]);var upload=multer({'storage':multer[_0x72d1('0xe')]({'destination':function(_0x45eb4a,_0x14a41e,_0x3cb9c2){_0x3cb9c2(null,path[_0x72d1('0xf')](config[_0x72d1('0x10')],_0x72d1('0x11')));},'filename':function(_0x273ccf,_0x2f5a78,_0x5ad4df){_0x2f5a78[_0x72d1('0x12')]=_0x2f5a78[_0x72d1('0x12')][_0x72d1('0x13')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');_0x5ad4df(null,util[_0x72d1('0x14')](_0x72d1('0x15'),path[_0x72d1('0x16')](_0x2f5a78[_0x72d1('0x12')],path[_0x72d1('0x17')](_0x2f5a78[_0x72d1('0x12')])),Date[_0x72d1('0x18')](),path[_0x72d1('0x17')](_0x2f5a78[_0x72d1('0x12')])));}})});router[_0x72d1('0x19')]('/',upload['single'](_0x72d1('0x1a')),controller['upload']);router[_0x72d1('0x19')](_0x72d1('0x1b'),controller['webhookPost']);router[_0x72d1('0x1c')](_0x72d1('0xa'),auth[_0x72d1('0x1d')](),controller['update']);router['delete'](_0x72d1('0xa'),auth[_0x72d1('0x1d')](),controller[_0x72d1('0x1e')]);module[_0x72d1('0x1f')]=router;
\ No newline at end of file
+var _0xaba6=['get','webhookGet','isAuthenticated','show','/:id/download','download','diskStorage','root','server/files/plugins','originalname','format','%s-%s%s','basename','extname','now','post','single','file','upload','/webhook','put','/:id','delete','multer','util','fs-extra','../../components/auth/service','../../config/environment','./plugin.controller'];(function(_0x2eda3a,_0x57c6d6){var _0x29575f=function(_0xa74065){while(--_0xa74065){_0x2eda3a['push'](_0x2eda3a['shift']());}};_0x29575f(++_0x57c6d6);}(_0xaba6,0xe2));var _0x6aba=function(_0x58f6fd,_0x8e6c3d){_0x58f6fd=_0x58f6fd-0x0;var _0x44dce4=_0xaba6[_0x58f6fd];return _0x44dce4;};'use strict';var multer=require(_0x6aba('0x0'));var util=require(_0x6aba('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require('express');var router=express['Router']();var fs_extra=require(_0x6aba('0x2'));var auth=require(_0x6aba('0x3'));var interaction=require('../../components/interaction/service');var config=require(_0x6aba('0x4'));var controller=require(_0x6aba('0x5'));router['get']('/',auth['isAuthenticated'](),controller['index']);router[_0x6aba('0x6')]('/webhook',controller[_0x6aba('0x7')]);router[_0x6aba('0x6')]('/:id',auth[_0x6aba('0x8')](),controller[_0x6aba('0x9')]);router['get'](_0x6aba('0xa'),auth[_0x6aba('0x8')](),controller[_0x6aba('0xb')]);var upload=multer({'storage':multer[_0x6aba('0xc')]({'destination':function(_0xdbc119,_0x4089c6,_0x181426){_0x181426(null,path['join'](config[_0x6aba('0xd')],_0x6aba('0xe')));},'filename':function(_0x43867b,_0x254007,_0x53e604){_0x254007[_0x6aba('0xf')]=_0x254007[_0x6aba('0xf')]['replace'](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');_0x53e604(null,util[_0x6aba('0x10')](_0x6aba('0x11'),path[_0x6aba('0x12')](_0x254007['originalname'],path[_0x6aba('0x13')](_0x254007[_0x6aba('0xf')])),Date[_0x6aba('0x14')](),path['extname'](_0x254007[_0x6aba('0xf')])));}})});router[_0x6aba('0x15')]('/',upload[_0x6aba('0x16')](_0x6aba('0x17')),controller[_0x6aba('0x18')]);router[_0x6aba('0x15')](_0x6aba('0x19'),controller['webhookPost']);router[_0x6aba('0x1a')](_0x6aba('0x1b'),auth[_0x6aba('0x8')](),controller['update']);router[_0x6aba('0x1c')]('/:id',auth['isAuthenticated'](),controller[_0x6aba('0x1c')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x69cd=['agentOnly','never','Indicates\x20whether\x20to\x20display\x20the\x20plugin\x20in\x20the\x20sidebar.','sequelize','STRING','TEXT','BOOLEAN','Indicates\x20whether\x20the\x20plugin\x20is\x20installed.\x20Updated\x20when\x20the\x20plugin\x20is\x20installed/uninstalled.'];(function(_0x310504,_0x26ad95){var _0x5b36d0=function(_0x253f28){while(--_0x253f28){_0x310504['push'](_0x310504['shift']());}};_0x5b36d0(++_0x26ad95);}(_0x69cd,0x9b));var _0xd69c=function(_0x9c3c56,_0x169b56){_0x9c3c56=_0x9c3c56-0x0;var _0x2dd782=_0x69cd[_0x9c3c56];return _0x2dd782;};'use strict';var Sequelize=require(_0xd69c('0x0'));module['exports']={'name':{'type':Sequelize[_0xd69c('0x1')]},'type':{'type':Sequelize['ENUM']('html','script')},'description':{'type':Sequelize[_0xd69c('0x2')]},'version':{'type':Sequelize[_0xd69c('0x2')]},'path':{'type':Sequelize[_0xd69c('0x1')],'comment':'The\x20physical\x20path\x20where\x20the\x20plugin\x20is\x20stored.'},'active':{'type':Sequelize[_0xd69c('0x3')],'defaultValue':0x0,'comment':_0xd69c('0x4')},'sidebar':{'type':Sequelize['ENUM']('adminOnly',_0xd69c('0x5'),'always',_0xd69c('0x6')),'defaultValue':'always','comment':_0xd69c('0x7')},'icon':{'type':Sequelize['STRING']},'adminUrl':{'type':Sequelize['STRING']},'agentUrl':{'type':Sequelize[_0xd69c('0x1')]},'scriptName':{'type':Sequelize['STRING']},'scriptPath':{'type':Sequelize[_0xd69c('0x1')]}};
\ No newline at end of file
+var _0xd8df=['agentOnly','never','always','sequelize','STRING','ENUM','html','script','TEXT'];(function(_0x39d544,_0x35c14f){var _0x5a5ff2=function(_0x2271fb){while(--_0x2271fb){_0x39d544['push'](_0x39d544['shift']());}};_0x5a5ff2(++_0x35c14f);}(_0xd8df,0x78));var _0xfd8d=function(_0x392d41,_0x99e821){_0x392d41=_0x392d41-0x0;var _0x5828de=_0xd8df[_0x392d41];return _0x5828de;};'use strict';var Sequelize=require(_0xfd8d('0x0'));module['exports']={'name':{'type':Sequelize[_0xfd8d('0x1')]},'type':{'type':Sequelize[_0xfd8d('0x2')](_0xfd8d('0x3'),_0xfd8d('0x4'))},'description':{'type':Sequelize[_0xfd8d('0x5')]},'version':{'type':Sequelize['TEXT']},'path':{'type':Sequelize[_0xfd8d('0x1')],'comment':'The\x20physical\x20path\x20where\x20the\x20plugin\x20is\x20stored.'},'active':{'type':Sequelize['BOOLEAN'],'defaultValue':0x0,'comment':'Indicates\x20whether\x20the\x20plugin\x20is\x20installed.\x20Updated\x20when\x20the\x20plugin\x20is\x20installed/uninstalled.'},'sidebar':{'type':Sequelize[_0xfd8d('0x2')]('adminOnly',_0xfd8d('0x6'),'always',_0xfd8d('0x7')),'defaultValue':_0xfd8d('0x8'),'comment':'Indicates\x20whether\x20to\x20display\x20the\x20plugin\x20in\x20the\x20sidebar.'},'icon':{'type':Sequelize[_0xfd8d('0x1')]},'adminUrl':{'type':Sequelize['STRING']},'agentUrl':{'type':Sequelize[_0xfd8d('0x1')]},'scriptName':{'type':Sequelize[_0xfd8d('0x1')]},'scriptPath':{'type':Sequelize[_0xfd8d('0x1')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3d4f=['include','findAll','show','params','catch','download','find','root','server/files/plugins','format','%s.zip','basename','zip','warning','ENOENT','Sequelize','Error','Error\x20while\x20generating\x20the\x20zip\x20archive','pipe','glob','join','dirname','node_modules/**/*','attachments/**/*','finalize','existsSync','Plugin\x20not\x20found','Error\x20while\x20downloading\x20the\x20plugin','unlinkSync','info','Download\x20completed','Temporary\x20file\x20removed','upload','file','filename','Plugin\x20upload\x20destination:\x20%s','chmodSync','0777','readdirSync','Invalid\x20plugin\x20structure','lstatSync','isFile','isDirectory','some','readFileSync','manifest.json','parse','Invalid\x20manifest:\x20name\x20missing','Invalid\x20manifest:\x20type\x20missing','version','Invalid\x20manifest:\x20version\x20not\x20specified','parameters','Invalid\x20manifest:\x20parameters\x20missing','type','html','views','Invalid\x20manifest:\x20views\x20missing','admin','agent','Invalid\x20manifest:\x20no\x20view\x20specified','script','Invalid\x20manifest:\x20script\x20name\x20missing','scriptPath','Invalid\x20manifest:\x20invalid\x20type','sidebar','always','icon-apps','test','plugins','Warning:\x20admin\x20view\x20not\x20specified','Warning:\x20agent\x20view\x20not\x20specified','scriptName','body','role','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','Plugins','userProfileId','autoAssociation','create','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','send','Zip\x20archive\x20removed','Extracted\x20folder\x20removed','delete','resolve','\x27PATH\x27\x20parameter\x20not\x20specified','port','\x27PORT\x27\x20parameter\x20not\x20specified','hostname','http://localhost:','encoding','method','%s%s','headers','content-type','endsWith','statusCode','content-length','eml-format','zip-dir','fast-json-patch','request-promise','mustache','util','path','fs-extra','lodash','squel','crypto','jsforce','to-csv','querystring','papaparse','rimraf','archiver','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/environment','defaults','redis','localhost','socket.io-emitter','./plugin.socket','register','sendStatus','status','end','json','undefined','count','offset','limit','set','reject','save','update','destroy','then','get','UserProfileResource','error','name','index','map','Plugin','rawAttributes','fieldName','key','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','merge','VIRTUAL','options','includeAll'];(function(_0x43b548,_0x30ea37){var _0x37f928=function(_0x320477){while(--_0x320477){_0x43b548['push'](_0x43b548['shift']());}};_0x37f928(++_0x30ea37);}(_0x3d4f,0x1bb));var _0xf3d4=function(_0x3c9268,_0x1a0c1f){_0x3c9268=_0x3c9268-0x0;var _0x4c62e5=_0x3d4f[_0x3c9268];return _0x4c62e5;};'use strict';var emlformat=require(_0xf3d4('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xf3d4('0x1'));var jsonpatch=require(_0xf3d4('0x2'));var rp=require(_0xf3d4('0x3'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xf3d4('0x4'));var util=require(_0xf3d4('0x5'));var path=require(_0xf3d4('0x6'));var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xf3d4('0x7'));var _=require(_0xf3d4('0x8'));var squel=require(_0xf3d4('0x9'));var crypto=require(_0xf3d4('0xa'));var jsforce=require(_0xf3d4('0xb'));var deskjs=require('desk.js');var toCsv=require(_0xf3d4('0xc'));var querystring=require(_0xf3d4('0xd'));var Papa=require(_0xf3d4('0xe'));var extract=require('extract-zip');var rimraf=require(_0xf3d4('0xf'));var archiver=require(_0xf3d4('0x10'));var Redis=require(_0xf3d4('0x11'));var authService=require(_0xf3d4('0x12'));var qs=require(_0xf3d4('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xf3d4('0x14'));var logger=require(_0xf3d4('0x15'))(_0xf3d4('0x16'));var utils=require('../../config/utils');var config=require(_0xf3d4('0x17'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];config['redis']=_[_0xf3d4('0x18')](config[_0xf3d4('0x19')],{'host':_0xf3d4('0x1a'),'port':0x18eb});var socket=require(_0xf3d4('0x1b'))(new Redis(config[_0xf3d4('0x19')]));require(_0xf3d4('0x1c'))[_0xf3d4('0x1d')](socket);function respondWithStatusCode(_0x2f3d88,_0xe8d18a){_0xe8d18a=_0xe8d18a||0xcc;return function(_0x374e39){if(_0x374e39){return _0x2f3d88[_0xf3d4('0x1e')](_0xe8d18a);}return _0x2f3d88[_0xf3d4('0x1f')](_0xe8d18a)[_0xf3d4('0x20')]();};}function respondWithResult(_0x5cc785,_0x48ec75){_0x48ec75=_0x48ec75||0xc8;return function(_0x943ca8){if(_0x943ca8){return _0x5cc785[_0xf3d4('0x1f')](_0x48ec75)[_0xf3d4('0x21')](_0x943ca8);}};}function respondWithFilteredResult(_0x514d27,_0x51e20e){return function(_0x3f52ce){if(_0x3f52ce){var _0x1e0351=typeof _0x51e20e['offset']===_0xf3d4('0x22')&&typeof _0x51e20e['limit']===_0xf3d4('0x22');var _0x1f184d=_0x3f52ce[_0xf3d4('0x23')];var _0xf1d529=_0x1e0351?0x0:_0x51e20e[_0xf3d4('0x24')];var _0x39557e=_0x1e0351?_0x3f52ce[_0xf3d4('0x23')]:_0x51e20e[_0xf3d4('0x24')]+_0x51e20e[_0xf3d4('0x25')];var _0x43c6ce;if(_0x39557e>=_0x1f184d){_0x39557e=_0x1f184d;_0x43c6ce=0xc8;}else{_0x43c6ce=0xce;}_0x514d27['status'](_0x43c6ce);return _0x514d27[_0xf3d4('0x26')]('Content-Range',_0xf1d529+'-'+_0x39557e+'/'+_0x1f184d)[_0xf3d4('0x21')](_0x3f52ce);}return null;};}function patchUpdates(_0x30f48c){return function(_0x5c7ce1){try{jsonpatch['apply'](_0x5c7ce1,_0x30f48c,!![]);}catch(_0x2b6058){return BPromise[_0xf3d4('0x27')](_0x2b6058);}return _0x5c7ce1[_0xf3d4('0x28')]();};}function saveUpdates(_0x54cc96,_0x2c859c){return function(_0x387091){if(_0x387091){return _0x387091[_0xf3d4('0x29')](_0x54cc96)['then'](function(_0x168041){return _0x168041;});}return null;};}function removeEntity(_0x45c661,_0x51ae50){return function(_0x472a1d){if(_0x472a1d){return _0x472a1d[_0xf3d4('0x2a')]()[_0xf3d4('0x2b')](function(){var _0x2ad3c0=_0x472a1d[_0xf3d4('0x2c')]({'plain':!![]});var _0x5f470a='Plugins';return db[_0xf3d4('0x2d')][_0xf3d4('0x2a')]({'where':{'type':_0x5f470a,'resourceId':_0x2ad3c0['id']}})['then'](function(){return _0x472a1d;});})[_0xf3d4('0x2b')](function(){_0x45c661[_0xf3d4('0x1f')](0xcc)[_0xf3d4('0x20')]();});}};}function handleEntityNotFound(_0x1bdf74,_0x23326d){return function(_0x1aab12){if(!_0x1aab12){_0x1bdf74['sendStatus'](0x194);}return _0x1aab12;};}function handleError(_0x2b78a6,_0x13c84c){_0x13c84c=_0x13c84c||0x1f4;return function(_0x307f32){logger[_0xf3d4('0x2e')](_0x307f32['stack']);if(_0x307f32[_0xf3d4('0x2f')]){delete _0x307f32['name'];}_0x2b78a6['status'](_0x13c84c)['send'](_0x307f32);};}exports[_0xf3d4('0x30')]=function(_0x26f89b,_0x323121){var _0x428a9c={},_0x44fd87={},_0x2c8798={'count':0x0,'rows':[]};var _0x5d98f9=_[_0xf3d4('0x31')](db[_0xf3d4('0x32')][_0xf3d4('0x33')],function(_0x4f7aa6){return{'name':_0x4f7aa6[_0xf3d4('0x34')],'type':_0x4f7aa6['type'][_0xf3d4('0x35')]};});_0x44fd87[_0xf3d4('0x36')]=_[_0xf3d4('0x31')](_0x5d98f9,'name');_0x44fd87[_0xf3d4('0x37')]=_[_0xf3d4('0x38')](_0x26f89b[_0xf3d4('0x37')]);_0x44fd87['filters']=_[_0xf3d4('0x39')](_0x44fd87[_0xf3d4('0x36')],_0x44fd87[_0xf3d4('0x37')]);_0x428a9c[_0xf3d4('0x3a')]=_[_0xf3d4('0x39')](_0x44fd87['model'],qs[_0xf3d4('0x3b')](_0x26f89b['query']['fields']));_0x428a9c[_0xf3d4('0x3a')]=_0x428a9c['attributes'][_0xf3d4('0x3c')]?_0x428a9c[_0xf3d4('0x3a')]:_0x44fd87[_0xf3d4('0x36')];if(!_0x26f89b['query'][_0xf3d4('0x3d')](_0xf3d4('0x3e'))){_0x428a9c['limit']=qs['limit'](_0x26f89b[_0xf3d4('0x37')][_0xf3d4('0x25')]);_0x428a9c[_0xf3d4('0x24')]=qs[_0xf3d4('0x24')](_0x26f89b[_0xf3d4('0x37')][_0xf3d4('0x24')]);}_0x428a9c[_0xf3d4('0x3f')]=qs[_0xf3d4('0x40')](_0x26f89b['query']['sort']);_0x428a9c[_0xf3d4('0x41')]=qs[_0xf3d4('0x42')](_[_0xf3d4('0x43')](_0x26f89b[_0xf3d4('0x37')],_0x44fd87[_0xf3d4('0x42')]),_0x5d98f9);if(_0x26f89b[_0xf3d4('0x37')][_0xf3d4('0x44')]){_0x428a9c[_0xf3d4('0x41')]=_[_0xf3d4('0x45')](_0x428a9c[_0xf3d4('0x41')],{'$or':_[_0xf3d4('0x31')](_0x5d98f9,function(_0x4648b7){if(_0x4648b7['type']!==_0xf3d4('0x46')){var _0x336585={};_0x336585[_0x4648b7[_0xf3d4('0x2f')]]={'$like':'%'+_0x26f89b[_0xf3d4('0x37')][_0xf3d4('0x44')]+'%'};return _0x336585;}})});}_0x428a9c=_[_0xf3d4('0x45')]({},_0x428a9c,_0x26f89b[_0xf3d4('0x47')]);var _0x121194={'where':_0x428a9c['where']};return db['Plugin'][_0xf3d4('0x23')](_0x121194)[_0xf3d4('0x2b')](function(_0x2e196f){_0x2c8798[_0xf3d4('0x23')]=_0x2e196f;if(_0x26f89b['query'][_0xf3d4('0x48')]){_0x428a9c[_0xf3d4('0x49')]=[{'all':!![]}];}return db[_0xf3d4('0x32')][_0xf3d4('0x4a')](_0x428a9c);})['then'](function(_0x1dc3a7){_0x2c8798['rows']=_0x1dc3a7;return _0x2c8798;})[_0xf3d4('0x2b')](respondWithFilteredResult(_0x323121,_0x428a9c))['catch'](handleError(_0x323121,null));};exports[_0xf3d4('0x4b')]=function(_0x7908f4,_0x1b79e4){var _0x153ba8={'raw':!![],'where':{'id':_0x7908f4[_0xf3d4('0x4c')]['id']}},_0x502175={};_0x502175[_0xf3d4('0x36')]=_[_0xf3d4('0x38')](db['Plugin'][_0xf3d4('0x33')]);_0x502175[_0xf3d4('0x37')]=_[_0xf3d4('0x38')](_0x7908f4[_0xf3d4('0x37')]);_0x502175[_0xf3d4('0x42')]=_['intersection'](_0x502175['model'],_0x502175[_0xf3d4('0x37')]);_0x153ba8[_0xf3d4('0x3a')]=_['intersection'](_0x502175[_0xf3d4('0x36')],qs[_0xf3d4('0x3b')](_0x7908f4[_0xf3d4('0x37')]['fields']));_0x153ba8['attributes']=_0x153ba8[_0xf3d4('0x3a')][_0xf3d4('0x3c')]?_0x153ba8['attributes']:_0x502175[_0xf3d4('0x36')];if(_0x7908f4[_0xf3d4('0x37')]['includeAll']){_0x153ba8[_0xf3d4('0x49')]=[{'all':!![]}];}_0x153ba8=_[_0xf3d4('0x45')]({},_0x153ba8,_0x7908f4[_0xf3d4('0x47')]);return db[_0xf3d4('0x32')]['find'](_0x153ba8)[_0xf3d4('0x2b')](handleEntityNotFound(_0x1b79e4,null))[_0xf3d4('0x2b')](respondWithResult(_0x1b79e4,null))[_0xf3d4('0x4d')](handleError(_0x1b79e4,null));};exports[_0xf3d4('0x4e')]=function(_0x217c69,_0x338d59,_0x158f4a){return db[_0xf3d4('0x32')][_0xf3d4('0x4f')]({'where':{'id':_0x217c69[_0xf3d4('0x4c')]['id']},'attributes':[_0xf3d4('0x2f'),_0xf3d4('0x6')],'raw':!![]})['then'](handleEntityNotFound(_0x338d59,null))[_0xf3d4('0x2b')](function(_0x59e931){if(_0x59e931){var _0x1a5e1e=path['join'](config[_0xf3d4('0x50')],_0xf3d4('0x51'),util[_0xf3d4('0x52')](_0xf3d4('0x53'),path[_0xf3d4('0x54')](_0x59e931[_0xf3d4('0x6')])));var _0x337ad5=fs['createWriteStream'](_0x1a5e1e);var _0x46070d=archiver(_0xf3d4('0x55'),{'zlib':{'level':0x9}});_0x46070d['on'](_0xf3d4('0x56'),function(_0x168a7f){if(_0x168a7f['code']===_0xf3d4('0x57')){logger[_0xf3d4('0x2e')](_0x168a7f);}else{throw new db[(_0xf3d4('0x58'))][(_0xf3d4('0x59'))](_0xf3d4('0x5a'));}});_0x46070d['on'](_0xf3d4('0x2e'),function(_0x6ada82){throw new db[(_0xf3d4('0x58'))]['Error'](_0xf3d4('0x5a'));});_0x46070d[_0xf3d4('0x5b')](_0x337ad5);_0x46070d[_0xf3d4('0x5c')]('**/*',{'cwd':path[_0xf3d4('0x5d')](config['root'],_0xf3d4('0x51'),path[_0xf3d4('0x5e')](_0x59e931[_0xf3d4('0x6')])),'ignore':[path[_0xf3d4('0x5d')](path[_0xf3d4('0x54')](_0x59e931[_0xf3d4('0x6')]),_0xf3d4('0x5f')),path[_0xf3d4('0x5d')](path['basename'](_0x59e931[_0xf3d4('0x6')]),_0xf3d4('0x60'))],'nodir':!![]})[_0xf3d4('0x61')]();_0x337ad5['on']('close',function(){if(!fs[_0xf3d4('0x62')](_0x1a5e1e)){throw new db[(_0xf3d4('0x58'))][(_0xf3d4('0x59'))](_0xf3d4('0x63'));}return _0x338d59['download'](_0x1a5e1e,util[_0xf3d4('0x52')]('%s.zip',path['basename'](_0x59e931[_0xf3d4('0x6')])),function(_0x2fe8a7){if(_0x2fe8a7){throw new db[(_0xf3d4('0x58'))]['Error'](_0xf3d4('0x64'));}fs[_0xf3d4('0x65')](_0x1a5e1e);logger[_0xf3d4('0x66')](_0xf3d4('0x67'));logger[_0xf3d4('0x66')](_0xf3d4('0x68'));});});}return null;})[_0xf3d4('0x4d')](handleError(_0x338d59,null));};exports[_0xf3d4('0x69')]=function(_0x9b4378,_0x599543,_0x411735){var _0x565902=path['basename'](_0x9b4378[_0xf3d4('0x6a')][_0xf3d4('0x6b')],path['extname'](_0x9b4378[_0xf3d4('0x6a')][_0xf3d4('0x6b')]));var _0x378b9e=path[_0xf3d4('0x5d')](config['root'],'server/files/plugins',_0x9b4378[_0xf3d4('0x6a')][_0xf3d4('0x6b')]);var _0x1d91fd=path[_0xf3d4('0x5d')](config[_0xf3d4('0x50')],_0xf3d4('0x51'),_0x565902);logger[_0xf3d4('0x66')]('Plugin\x20upload\x20filepath:\x20%s',_0x378b9e);logger[_0xf3d4('0x66')](_0xf3d4('0x6c'),_0x1d91fd);try{fs[_0xf3d4('0x6d')](_0x378b9e,parseInt(_0xf3d4('0x6e'),0x8));extract(_0x378b9e,{'dir':_0x1d91fd},function(_0x5f35d1){if(_0x5f35d1){logger['error'](_0x5f35d1);handleError(_0x5f35d1,!![]);};var _0x387d27=fs[_0xf3d4('0x6f')](_0x1d91fd);if(_0x387d27[_0xf3d4('0x3c')]>0x1){removeReferences(_0x378b9e,_0x1d91fd);logger[_0xf3d4('0x2e')](_0xf3d4('0x70'));return _0x411735(new Error('Invalid\x20plugin\x20structure'));}var _0x236a21=fs[_0xf3d4('0x71')](path['join'](_0x1d91fd,_0x387d27[0x0]));if(_0x236a21[_0xf3d4('0x72')]()){removeReferences(_0x378b9e,_0x1d91fd);logger[_0xf3d4('0x2e')]('Invalid\x20plugin\x20structure');return _0x411735(new Error(_0xf3d4('0x70')));}if(_0x236a21[_0xf3d4('0x73')]()){var _0x227dd7=fs[_0xf3d4('0x6f')](path[_0xf3d4('0x5d')](_0x1d91fd,_0x387d27[0x0]));if(_0x227dd7[_0xf3d4('0x3c')]===0x0){removeReferences(_0x378b9e,_0x1d91fd);logger[_0xf3d4('0x2e')](_0xf3d4('0x70'));return _0x411735(new Error(_0xf3d4('0x70')));}var _0x115fe8=_0x227dd7[_0xf3d4('0x74')](function(_0x5a6d5f){return _0x5a6d5f==='manifest.json';});if(!_0x115fe8){return _0x411735(new Error('Plugin\x20manifest\x20missing'));}var _0x1a95d9=fs[_0xf3d4('0x75')](path[_0xf3d4('0x5d')](_0x1d91fd,_0x387d27[0x0],_0xf3d4('0x76')));var _0x41c1f1=JSON[_0xf3d4('0x77')](_0x1a95d9);if(_0xf3d4('0x22')==typeof _0x41c1f1[_0xf3d4('0x2f')]){return _0x411735(new Error(_0xf3d4('0x78')));}if('undefined'==typeof _0x41c1f1['type']){return _0x411735(new Error(_0xf3d4('0x79')));}if(_0xf3d4('0x22')==typeof _0x41c1f1[_0xf3d4('0x7a')]){return _0x411735(new Error(_0xf3d4('0x7b')));}if(_0xf3d4('0x22')==typeof _0x41c1f1[_0xf3d4('0x7c')]){return _0x411735(new Error(_0xf3d4('0x7d')));}if(_0x41c1f1[_0xf3d4('0x7e')]===_0xf3d4('0x7f')){if('undefined'==typeof _0x41c1f1['parameters'][_0xf3d4('0x80')]){return _0x411735(new Error(_0xf3d4('0x81')));}if(_0xf3d4('0x22')==typeof _0x41c1f1['parameters'][_0xf3d4('0x80')][_0xf3d4('0x82')]&&_0xf3d4('0x22')==typeof _0x41c1f1[_0xf3d4('0x7c')][_0xf3d4('0x80')][_0xf3d4('0x83')]){return _0x411735(new Error(_0xf3d4('0x84')));}}else if(_0x41c1f1[_0xf3d4('0x7e')]===_0xf3d4('0x85')){if(_0xf3d4('0x22')==typeof _0x41c1f1[_0xf3d4('0x7c')]['scriptName']){return _0x411735(new Error(_0xf3d4('0x86')));}if(_0xf3d4('0x22')==typeof _0x41c1f1[_0xf3d4('0x7c')][_0xf3d4('0x87')]){return _0x411735(new Error('Invalid\x20manifest:\x20script\x20path\x20missing'));}}else{return _0x411735(new Error(_0xf3d4('0x88')));}var _0x22b7ea=_0x41c1f1[_0xf3d4('0x2f')];var _0x47d8ac=_0x41c1f1['description'];var _0x16e1aa=_0x41c1f1['type'];var _0x2ff1c7=_0x41c1f1[_0xf3d4('0x89')]?_0x41c1f1[_0xf3d4('0x89')]:_0xf3d4('0x8a');var _0x49fe18=_0x41c1f1['icon']?_0x41c1f1['icon']:_0xf3d4('0x8b');var _0x8d6993='';var _0x162e67='';var _0x464f29='';var _0x132b51='';var _0xfda4e5=_0x41c1f1['version'];if(_0x16e1aa===_0xf3d4('0x7f')){if(_0xf3d4('0x22')!=typeof _0x41c1f1[_0xf3d4('0x7c')][_0xf3d4('0x80')]['admin']){var _0x5b454f=_0x41c1f1[_0xf3d4('0x7c')][_0xf3d4('0x80')][_0xf3d4('0x82')];if(!/^(f|ht)tps?:\/\//i[_0xf3d4('0x8c')](_0x5b454f)){_0x8d6993=path[_0xf3d4('0x5d')](_0xf3d4('0x8d'),_0x565902,_0x387d27[0x0],_0x5b454f);}else{_0x8d6993=_0x5b454f;}}else{logger[_0xf3d4('0x66')](_0xf3d4('0x8e'));}if(_0xf3d4('0x22')!=typeof _0x41c1f1['parameters'][_0xf3d4('0x80')][_0xf3d4('0x83')]){var _0x18fec5=_0x41c1f1[_0xf3d4('0x7c')][_0xf3d4('0x80')][_0xf3d4('0x83')];if(!/^(f|ht)tps?:\/\//i['test'](_0x18fec5)){_0x162e67=path[_0xf3d4('0x5d')]('plugins',_0x565902,_0x387d27[0x0],_0x18fec5);}else{_0x162e67=_0x18fec5;}}else{logger['info'](_0xf3d4('0x8f'));}}else if(_0x16e1aa==='script'){_0x464f29=_0x41c1f1[_0xf3d4('0x7c')][_0xf3d4('0x90')];_0x132b51=_0x41c1f1['parameters'][_0xf3d4('0x87')];if(_0xf3d4('0x22')!=typeof _0x41c1f1[_0xf3d4('0x7c')][_0xf3d4('0x80')]){if(_0xf3d4('0x22')!=typeof _0x41c1f1['parameters'][_0xf3d4('0x80')][_0xf3d4('0x82')]){var _0x5b454f=_0x41c1f1[_0xf3d4('0x7c')][_0xf3d4('0x80')][_0xf3d4('0x82')];if(!/^(f|ht)tps?:\/\//i['test'](_0x5b454f)){_0x8d6993=path[_0xf3d4('0x5d')](_0xf3d4('0x8d'),_0x565902,_0x387d27[0x0],_0x5b454f);}else{_0x8d6993=_0x5b454f;}}if(_0xf3d4('0x22')!=typeof _0x41c1f1[_0xf3d4('0x7c')][_0xf3d4('0x80')][_0xf3d4('0x83')]){var _0x18fec5=_0x41c1f1[_0xf3d4('0x7c')][_0xf3d4('0x80')][_0xf3d4('0x83')];if(!/^(f|ht)tps?:\/\//i[_0xf3d4('0x8c')](_0x18fec5)){_0x162e67=path[_0xf3d4('0x5d')](_0xf3d4('0x8d'),_0x565902,_0x387d27[0x0],_0x18fec5);}else{_0x162e67=_0x18fec5;}}}}var _0x39a2d4={'name':_0x22b7ea,'description':_0x47d8ac,'path':path['join'](_0x565902,_0x387d27[0x0]),'type':_0x16e1aa,'sidebar':_0x2ff1c7,'icon':_0x49fe18,'adminUrl':_0x8d6993,'agentUrl':_0x162e67,'scriptName':_0x464f29,'scriptPath':_0x132b51,'version':_0xfda4e5};removeReferences(_0x378b9e,null);return db[_0xf3d4('0x32')]['create'](_0x39a2d4)[_0xf3d4('0x2b')](function(_0x36c04f){var _0x5f38d3={'role':_0x9b4378[_0xf3d4('0x91')][_0xf3d4('0x92')],'userProfileId':_0x9b4378[_0xf3d4('0x91')]['userProfileId']};if(!_0x5f38d3)throw new Error(_0xf3d4('0x93'));if(_0x5f38d3['role']===_0xf3d4('0x94')){var _0x44df33=_0x36c04f[_0xf3d4('0x2c')]({'plain':!![]});return db['UserProfileSection'][_0xf3d4('0x4f')]({'where':{'name':_0xf3d4('0x95'),'userProfileId':_0x5f38d3[_0xf3d4('0x96')]},'raw':!![]})[_0xf3d4('0x2b')](function(_0x293a4b){if(_0x293a4b&&_0x293a4b[_0xf3d4('0x97')]===0x0){return db[_0xf3d4('0x2d')][_0xf3d4('0x98')]({'name':_0x44df33[_0xf3d4('0x2f')],'resourceId':_0x44df33['id'],'type':_0x293a4b['name'],'sectionId':_0x293a4b['id']},{})[_0xf3d4('0x2b')](function(){return _0x36c04f;});}else{return _0x36c04f;}})['catch'](function(_0x6d37db){logger[_0xf3d4('0x2e')](_0xf3d4('0x99'),_0x6d37db);throw _0x6d37db;});}return _0x36c04f;})['then'](respondWithResult(_0x599543,null))['catch'](handleError(_0x599543,null));}});}catch(_0x5c19f0){_0x599543[_0xf3d4('0x1f')](0x1f4)[_0xf3d4('0x9a')](_0x5c19f0);}};function removeReferences(_0x5e431b,_0xc07ba1){try{if(_0x5e431b){fs['unlinkSync'](_0x5e431b);logger[_0xf3d4('0x66')](_0xf3d4('0x9b'));}if(_0xc07ba1){rimraf(_0xc07ba1,function(){});logger[_0xf3d4('0x66')](_0xf3d4('0x9c'));}}catch(_0x2ddd0f){logger[_0xf3d4('0x2e')](_0x2ddd0f);}}exports['update']=function(_0x1ef079,_0x2a970c,_0x220a3f){return db[_0xf3d4('0x32')][_0xf3d4('0x4f')]({'where':{'id':_0x1ef079[_0xf3d4('0x4c')]['id']}})['then'](handleEntityNotFound(_0x2a970c,null))[_0xf3d4('0x2b')](saveUpdates(_0x1ef079[_0xf3d4('0x91')],null))[_0xf3d4('0x2b')](respondWithResult(_0x2a970c,null))[_0xf3d4('0x4d')](handleError(_0x2a970c,null));};exports[_0xf3d4('0x9d')]=function(_0x1f96ef,_0x1074ab,_0x243084){return db[_0xf3d4('0x32')]['find']({'where':{'id':_0x1f96ef['params']['id']}})[_0xf3d4('0x2b')](function(_0x5939fc){if(_0x5939fc){return _0x5939fc[_0xf3d4('0x2a')]();}})[_0xf3d4('0x2b')](function(_0x48ec79){rimraf(path[_0xf3d4('0x5d')](config[_0xf3d4('0x50')],'server/files/plugins',path[_0xf3d4('0x5e')](_0x48ec79[_0xf3d4('0x6')])),function(){});return _0x48ec79;})[_0xf3d4('0x2b')](handleEntityNotFound(_0x1074ab,null))[_0xf3d4('0x2b')](respondWithStatusCode(_0x1074ab,null))[_0xf3d4('0x4d')](handleError(_0x1074ab,null));};exports['webhookGet']=function(_0x4c133f,_0x33cb5f,_0xdc6fe5){return BPromise[_0xf3d4('0x9e')]()[_0xf3d4('0x2b')](function(){if(!_0x4c133f[_0xf3d4('0x37')][_0xf3d4('0x6')]){throw new Error(_0xf3d4('0x9f'));}if(!_0x4c133f[_0xf3d4('0x37')][_0xf3d4('0xa0')]){throw new Error(_0xf3d4('0xa1'));}var _0x42a42c=_0x4c133f[_0xf3d4('0x37')][_0xf3d4('0xa2')]?_0x4c133f[_0xf3d4('0x37')][_0xf3d4('0xa2')]+':'+_0x4c133f[_0xf3d4('0x37')][_0xf3d4('0xa0')]:_0xf3d4('0xa3')+_0x4c133f[_0xf3d4('0x37')][_0xf3d4('0xa0')];var _0x17a39=_0x4c133f[_0xf3d4('0x37')][_0xf3d4('0x21')]?_0x4c133f[_0xf3d4('0x37')][_0xf3d4('0x21')]:!![];var _0x2b229c=_0x4c133f['query']['encoding']?_0x4c133f[_0xf3d4('0x37')][_0xf3d4('0xa4')]:null;var _0x2fb206={'method':_0x4c133f[_0xf3d4('0xa5')],'uri':util[_0xf3d4('0x52')](_0xf3d4('0xa6'),_0x42a42c,_0x4c133f[_0xf3d4('0x37')][_0xf3d4('0x6')]),'json':_0x17a39,'resolveWithFullResponse':!![],'encoding':_0x2b229c,'qs':_0x4c133f[_0xf3d4('0x37')]};if(_0x4c133f[_0xf3d4('0xa7')]){_0x2fb206[_0xf3d4('0xa7')]=_0x4c133f[_0xf3d4('0xa7')];if(_0x2fb206[_0xf3d4('0xa7')]['content-length']){delete _0x2fb206[_0xf3d4('0xa7')]['content-length'];}}if(_0x2fb206[_0xf3d4('0xa7')]['content-type']){delete _0x2fb206[_0xf3d4('0xa7')][_0xf3d4('0xa8')];}return rp(_0x2fb206);})[_0xf3d4('0x2b')](function(_0x8a3dd4){if(_0x8a3dd4){_0x33cb5f[_0xf3d4('0x26')](_0x8a3dd4['headers']);logger[_0xf3d4('0x66')](_0x8a3dd4['body']);if(_[_0xf3d4('0xa9')](_0x4c133f['query'][_0xf3d4('0x6')],_0xf3d4('0x4e'))&&_0x8a3dd4['statusCode']==0x1f4){return _0x33cb5f[_0xf3d4('0x1e')](_0x8a3dd4[_0xf3d4('0xaa')]);}else{return _0x33cb5f[_0xf3d4('0x1f')](_0x8a3dd4['statusCode'])[_0xf3d4('0x9a')](_0x8a3dd4[_0xf3d4('0x91')]);}}else{return _0x33cb5f[_0xf3d4('0x1e')](0xc8);}})[_0xf3d4('0x4d')](handleError(_0x33cb5f,null));};exports['webhookPost']=function(_0x2290a9,_0x406289,_0x5752e6){return BPromise['resolve']()[_0xf3d4('0x2b')](function(){if(!_0x2290a9[_0xf3d4('0x37')][_0xf3d4('0x6')]){throw new Error(_0xf3d4('0x9f'));}if(!_0x2290a9['query'][_0xf3d4('0xa0')]){throw new Error(_0xf3d4('0xa1'));}var _0x2b7a10=_0x2290a9[_0xf3d4('0x37')]['hostname']?_0x2290a9[_0xf3d4('0x37')]['hostname']+':'+_0x2290a9['query'][_0xf3d4('0xa0')]:_0xf3d4('0xa3')+_0x2290a9['query'][_0xf3d4('0xa0')];var _0x4f582e=_0x2290a9['query']['json']?_0x2290a9[_0xf3d4('0x37')][_0xf3d4('0x21')]:!![];var _0x3aee03=_0x2290a9['query'][_0xf3d4('0xa4')]?_0x2290a9['query'][_0xf3d4('0xa4')]:null;var _0x39efc7={'method':_0x2290a9['method'],'uri':util[_0xf3d4('0x52')](_0xf3d4('0xa6'),_0x2b7a10,_0x2290a9[_0xf3d4('0x37')][_0xf3d4('0x6')]),'json':_0x4f582e,'resolveWithFullResponse':!![],'encoding':_0x3aee03,'body':_0x2290a9[_0xf3d4('0x91')]};if(_0x2290a9[_0xf3d4('0xa7')]){_0x39efc7[_0xf3d4('0xa7')]=_0x2290a9[_0xf3d4('0xa7')];if(_0x39efc7['headers'][_0xf3d4('0xab')]){delete _0x39efc7[_0xf3d4('0xa7')][_0xf3d4('0xab')];}}if(_0x39efc7[_0xf3d4('0xa7')]['content-type']){delete _0x39efc7['headers']['content-type'];}return rp(_0x39efc7);})[_0xf3d4('0x2b')](function(_0x285c52){if(_0x285c52){_0x406289['set'](_0x285c52[_0xf3d4('0xa7')]);logger[_0xf3d4('0x66')](_0x285c52[_0xf3d4('0x91')]);return _0x406289[_0xf3d4('0x1f')](_0x285c52['statusCode'])[_0xf3d4('0x9a')](_0x285c52[_0xf3d4('0x91')]);}else{return _0x406289['sendStatus'](0xc8);}})[_0xf3d4('0x4d')](handleError(_0x406289,null));};
\ No newline at end of file
+var _0x31ec=['%s.zip','Error\x20while\x20downloading\x20the\x20plugin','unlinkSync','info','Download\x20completed','Temporary\x20file\x20removed','filename','extname','file','root','Plugin\x20upload\x20filepath:\x20%s','Plugin\x20upload\x20destination:\x20%s','chmodSync','Invalid\x20plugin\x20structure','lstatSync','isFile','isDirectory','readdirSync','some','manifest.json','Plugin\x20manifest\x20missing','readFileSync','parse','undefined','Invalid\x20manifest:\x20name\x20missing','Invalid\x20manifest:\x20type\x20missing','version','parameters','Invalid\x20manifest:\x20parameters\x20missing','html','views','Invalid\x20manifest:\x20views\x20missing','admin','Invalid\x20manifest:\x20script\x20name\x20missing','scriptPath','Invalid\x20manifest:\x20script\x20path\x20missing','Invalid\x20manifest:\x20invalid\x20type','description','sidebar','always','icon','test','plugins','Warning:\x20admin\x20view\x20not\x20specified','agent','Warning:\x20agent\x20view\x20not\x20specified','script','scriptName','create','body','role','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','get','userProfileId','Extracted\x20folder\x20removed','webhookGet','resolve','\x27PATH\x27\x20parameter\x20not\x20specified','port','hostname','method','%s%s','headers','content-length','content-type','endsWith','statusCode','webhookPost','\x27PORT\x27\x20parameter\x20not\x20specified','http://localhost:','encoding','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','extract-zip','archiver','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','./plugin.socket','register','sendStatus','status','json','offset','count','limit','set','Content-Range','apply','reject','save','update','then','destroy','Plugins','UserProfileResource','end','error','stack','name','send','index','map','fieldName','type','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','where','pick','filter','merge','VIRTUAL','options','Plugin','include','rows','catch','params','download','find','join','server/files/plugins','format','basename','createWriteStream','warning','code','ENOENT','Sequelize','Error\x20while\x20generating\x20the\x20zip\x20archive','pipe','glob','dirname','node_modules/**/*','attachments/**/*','finalize','close','existsSync','Error','Plugin\x20not\x20found'];(function(_0x37f3d4,_0x1eabd4){var _0x5f2dd0=function(_0xeb17fd){while(--_0xeb17fd){_0x37f3d4['push'](_0x37f3d4['shift']());}};_0x5f2dd0(++_0x1eabd4);}(_0x31ec,0x1a6));var _0xc31e=function(_0xb59f03,_0x33df92){_0xb59f03=_0xb59f03-0x0;var _0x4069e9=_0x31ec[_0xb59f03];return _0x4069e9;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xc31e('0x0'));var zipdir=require(_0xc31e('0x1'));var jsonpatch=require(_0xc31e('0x2'));var rp=require(_0xc31e('0x3'));var moment=require(_0xc31e('0x4'));var BPromise=require(_0xc31e('0x5'));var Mustache=require(_0xc31e('0x6'));var util=require('util');var path=require(_0xc31e('0x7'));var sox=require(_0xc31e('0x8'));var csv=require(_0xc31e('0x9'));var ejs=require(_0xc31e('0xa'));var fs=require('fs');var fs_extra=require(_0xc31e('0xb'));var _=require(_0xc31e('0xc'));var squel=require(_0xc31e('0xd'));var crypto=require(_0xc31e('0xe'));var jsforce=require(_0xc31e('0xf'));var deskjs=require('desk.js');var toCsv=require(_0xc31e('0x9'));var querystring=require(_0xc31e('0x10'));var Papa=require(_0xc31e('0x11'));var extract=require(_0xc31e('0x12'));var rimraf=require('rimraf');var archiver=require(_0xc31e('0x13'));var Redis=require(_0xc31e('0x14'));var authService=require(_0xc31e('0x15'));var qs=require(_0xc31e('0x16'));var as=require(_0xc31e('0x17'));var hardwareService=require(_0xc31e('0x18'));var logger=require(_0xc31e('0x19'))(_0xc31e('0x1a'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0xc31e('0x1b'));var db=require(_0xc31e('0x1c'))['db'];config[_0xc31e('0x1d')]=_['defaults'](config['redis'],{'host':_0xc31e('0x1e'),'port':0x18eb});var socket=require(_0xc31e('0x1f'))(new Redis(config['redis']));require(_0xc31e('0x20'))[_0xc31e('0x21')](socket);function respondWithStatusCode(_0x125eae,_0x9c808a){_0x9c808a=_0x9c808a||0xcc;return function(_0xeefacf){if(_0xeefacf){return _0x125eae[_0xc31e('0x22')](_0x9c808a);}return _0x125eae[_0xc31e('0x23')](_0x9c808a)['end']();};}function respondWithResult(_0x35f96f,_0x532740){_0x532740=_0x532740||0xc8;return function(_0x23be33){if(_0x23be33){return _0x35f96f[_0xc31e('0x23')](_0x532740)[_0xc31e('0x24')](_0x23be33);}};}function respondWithFilteredResult(_0x351e7d,_0x37b993){return function(_0x95fd24){if(_0x95fd24){var _0x2a082c=typeof _0x37b993[_0xc31e('0x25')]==='undefined'&&typeof _0x37b993['limit']==='undefined';var _0xb75b51=_0x95fd24[_0xc31e('0x26')];var _0x196d2b=_0x2a082c?0x0:_0x37b993['offset'];var _0x8cf426=_0x2a082c?_0x95fd24['count']:_0x37b993[_0xc31e('0x25')]+_0x37b993[_0xc31e('0x27')];var _0x29830a;if(_0x8cf426>=_0xb75b51){_0x8cf426=_0xb75b51;_0x29830a=0xc8;}else{_0x29830a=0xce;}_0x351e7d[_0xc31e('0x23')](_0x29830a);return _0x351e7d[_0xc31e('0x28')](_0xc31e('0x29'),_0x196d2b+'-'+_0x8cf426+'/'+_0xb75b51)[_0xc31e('0x24')](_0x95fd24);}return null;};}function patchUpdates(_0x222b71){return function(_0x4278e1){try{jsonpatch[_0xc31e('0x2a')](_0x4278e1,_0x222b71,!![]);}catch(_0xa46c1e){return BPromise[_0xc31e('0x2b')](_0xa46c1e);}return _0x4278e1[_0xc31e('0x2c')]();};}function saveUpdates(_0x1922d3,_0x5b5cd2){return function(_0x21c954){if(_0x21c954){return _0x21c954[_0xc31e('0x2d')](_0x1922d3)[_0xc31e('0x2e')](function(_0x539d07){return _0x539d07;});}return null;};}function removeEntity(_0x4e3964,_0x223731){return function(_0x425c65){if(_0x425c65){return _0x425c65[_0xc31e('0x2f')]()[_0xc31e('0x2e')](function(){var _0x18185f=_0x425c65['get']({'plain':!![]});var _0x4cf3cd=_0xc31e('0x30');return db[_0xc31e('0x31')]['destroy']({'where':{'type':_0x4cf3cd,'resourceId':_0x18185f['id']}})[_0xc31e('0x2e')](function(){return _0x425c65;});})['then'](function(){_0x4e3964['status'](0xcc)[_0xc31e('0x32')]();});}};}function handleEntityNotFound(_0x2eac91,_0x3896c1){return function(_0x5bc8e0){if(!_0x5bc8e0){_0x2eac91[_0xc31e('0x22')](0x194);}return _0x5bc8e0;};}function handleError(_0x7f2728,_0x197e06){_0x197e06=_0x197e06||0x1f4;return function(_0x694ef6){logger[_0xc31e('0x33')](_0x694ef6[_0xc31e('0x34')]);if(_0x694ef6[_0xc31e('0x35')]){delete _0x694ef6[_0xc31e('0x35')];}_0x7f2728['status'](_0x197e06)[_0xc31e('0x36')](_0x694ef6);};}exports[_0xc31e('0x37')]=function(_0x7570bd,_0x1c0df2){var _0x456d67={},_0x3cafb6={},_0x4bb280={'count':0x0,'rows':[]};var _0x5ee5bf=_[_0xc31e('0x38')](db['Plugin']['rawAttributes'],function(_0x1cbd97){return{'name':_0x1cbd97[_0xc31e('0x39')],'type':_0x1cbd97[_0xc31e('0x3a')]['key']};});_0x3cafb6[_0xc31e('0x3b')]=_[_0xc31e('0x38')](_0x5ee5bf,'name');_0x3cafb6[_0xc31e('0x3c')]=_[_0xc31e('0x3d')](_0x7570bd['query']);_0x3cafb6[_0xc31e('0x3e')]=_[_0xc31e('0x3f')](_0x3cafb6[_0xc31e('0x3b')],_0x3cafb6[_0xc31e('0x3c')]);_0x456d67[_0xc31e('0x40')]=_[_0xc31e('0x3f')](_0x3cafb6['model'],qs['fields'](_0x7570bd[_0xc31e('0x3c')][_0xc31e('0x41')]));_0x456d67['attributes']=_0x456d67[_0xc31e('0x40')][_0xc31e('0x42')]?_0x456d67[_0xc31e('0x40')]:_0x3cafb6[_0xc31e('0x3b')];if(!_0x7570bd[_0xc31e('0x3c')][_0xc31e('0x43')](_0xc31e('0x44'))){_0x456d67[_0xc31e('0x27')]=qs[_0xc31e('0x27')](_0x7570bd['query'][_0xc31e('0x27')]);_0x456d67[_0xc31e('0x25')]=qs['offset'](_0x7570bd[_0xc31e('0x3c')][_0xc31e('0x25')]);}_0x456d67[_0xc31e('0x45')]=qs['sort'](_0x7570bd[_0xc31e('0x3c')]['sort']);_0x456d67[_0xc31e('0x46')]=qs[_0xc31e('0x3e')](_[_0xc31e('0x47')](_0x7570bd[_0xc31e('0x3c')],_0x3cafb6['filters']),_0x5ee5bf);if(_0x7570bd['query'][_0xc31e('0x48')]){_0x456d67[_0xc31e('0x46')]=_[_0xc31e('0x49')](_0x456d67[_0xc31e('0x46')],{'$or':_[_0xc31e('0x38')](_0x5ee5bf,function(_0x2d8586){if(_0x2d8586['type']!==_0xc31e('0x4a')){var _0x1971c4={};_0x1971c4[_0x2d8586[_0xc31e('0x35')]]={'$like':'%'+_0x7570bd['query'][_0xc31e('0x48')]+'%'};return _0x1971c4;}})});}_0x456d67=_['merge']({},_0x456d67,_0x7570bd[_0xc31e('0x4b')]);var _0x5347cf={'where':_0x456d67[_0xc31e('0x46')]};return db[_0xc31e('0x4c')]['count'](_0x5347cf)[_0xc31e('0x2e')](function(_0x26442f){_0x4bb280[_0xc31e('0x26')]=_0x26442f;if(_0x7570bd[_0xc31e('0x3c')]['includeAll']){_0x456d67[_0xc31e('0x4d')]=[{'all':!![]}];}return db['Plugin']['findAll'](_0x456d67);})['then'](function(_0x4b8fb9){_0x4bb280[_0xc31e('0x4e')]=_0x4b8fb9;return _0x4bb280;})[_0xc31e('0x2e')](respondWithFilteredResult(_0x1c0df2,_0x456d67))[_0xc31e('0x4f')](handleError(_0x1c0df2,null));};exports['show']=function(_0x293ae0,_0x139106){var _0x4f843d={'raw':!![],'where':{'id':_0x293ae0[_0xc31e('0x50')]['id']}},_0x2d6e62={};_0x2d6e62[_0xc31e('0x3b')]=_[_0xc31e('0x3d')](db[_0xc31e('0x4c')]['rawAttributes']);_0x2d6e62[_0xc31e('0x3c')]=_[_0xc31e('0x3d')](_0x293ae0[_0xc31e('0x3c')]);_0x2d6e62[_0xc31e('0x3e')]=_[_0xc31e('0x3f')](_0x2d6e62[_0xc31e('0x3b')],_0x2d6e62[_0xc31e('0x3c')]);_0x4f843d['attributes']=_[_0xc31e('0x3f')](_0x2d6e62['model'],qs[_0xc31e('0x41')](_0x293ae0['query'][_0xc31e('0x41')]));_0x4f843d['attributes']=_0x4f843d[_0xc31e('0x40')]['length']?_0x4f843d['attributes']:_0x2d6e62['model'];if(_0x293ae0[_0xc31e('0x3c')]['includeAll']){_0x4f843d[_0xc31e('0x4d')]=[{'all':!![]}];}_0x4f843d=_[_0xc31e('0x49')]({},_0x4f843d,_0x293ae0['options']);return db[_0xc31e('0x4c')]['find'](_0x4f843d)[_0xc31e('0x2e')](handleEntityNotFound(_0x139106,null))[_0xc31e('0x2e')](respondWithResult(_0x139106,null))['catch'](handleError(_0x139106,null));};exports[_0xc31e('0x51')]=function(_0x229185,_0x401206,_0x414837){return db[_0xc31e('0x4c')][_0xc31e('0x52')]({'where':{'id':_0x229185[_0xc31e('0x50')]['id']},'attributes':[_0xc31e('0x35'),'path'],'raw':!![]})[_0xc31e('0x2e')](handleEntityNotFound(_0x401206,null))[_0xc31e('0x2e')](function(_0x424d92){if(_0x424d92){var _0x2ca905=path[_0xc31e('0x53')](config['root'],_0xc31e('0x54'),util[_0xc31e('0x55')]('%s.zip',path[_0xc31e('0x56')](_0x424d92[_0xc31e('0x7')])));var _0xac69a5=fs[_0xc31e('0x57')](_0x2ca905);var _0x526dc8=archiver('zip',{'zlib':{'level':0x9}});_0x526dc8['on'](_0xc31e('0x58'),function(_0x4dbb60){if(_0x4dbb60[_0xc31e('0x59')]===_0xc31e('0x5a')){logger[_0xc31e('0x33')](_0x4dbb60);}else{throw new db['Sequelize']['Error']('Error\x20while\x20generating\x20the\x20zip\x20archive');}});_0x526dc8['on'](_0xc31e('0x33'),function(_0x1d81fe){throw new db[(_0xc31e('0x5b'))]['Error'](_0xc31e('0x5c'));});_0x526dc8[_0xc31e('0x5d')](_0xac69a5);_0x526dc8[_0xc31e('0x5e')]('**/*',{'cwd':path[_0xc31e('0x53')](config['root'],_0xc31e('0x54'),path[_0xc31e('0x5f')](_0x424d92['path'])),'ignore':[path[_0xc31e('0x53')](path[_0xc31e('0x56')](_0x424d92[_0xc31e('0x7')]),_0xc31e('0x60')),path[_0xc31e('0x53')](path[_0xc31e('0x56')](_0x424d92[_0xc31e('0x7')]),_0xc31e('0x61'))],'nodir':!![]})[_0xc31e('0x62')]();_0xac69a5['on'](_0xc31e('0x63'),function(){if(!fs[_0xc31e('0x64')](_0x2ca905)){throw new db[(_0xc31e('0x5b'))][(_0xc31e('0x65'))](_0xc31e('0x66'));}return _0x401206['download'](_0x2ca905,util[_0xc31e('0x55')](_0xc31e('0x67'),path['basename'](_0x424d92[_0xc31e('0x7')])),function(_0x1affbf){if(_0x1affbf){throw new db[(_0xc31e('0x5b'))][(_0xc31e('0x65'))](_0xc31e('0x68'));}fs[_0xc31e('0x69')](_0x2ca905);logger[_0xc31e('0x6a')](_0xc31e('0x6b'));logger[_0xc31e('0x6a')](_0xc31e('0x6c'));});});}return null;})[_0xc31e('0x4f')](handleError(_0x401206,null));};exports['upload']=function(_0x4bf87c,_0x2d6617,_0x1f3e5a){var _0x15be7e=path['basename'](_0x4bf87c['file'][_0xc31e('0x6d')],path[_0xc31e('0x6e')](_0x4bf87c[_0xc31e('0x6f')][_0xc31e('0x6d')]));var _0xa2cc52=path[_0xc31e('0x53')](config[_0xc31e('0x70')],'server/files/plugins',_0x4bf87c[_0xc31e('0x6f')]['filename']);var _0x2976d5=path['join'](config[_0xc31e('0x70')],'server/files/plugins',_0x15be7e);logger[_0xc31e('0x6a')](_0xc31e('0x71'),_0xa2cc52);logger[_0xc31e('0x6a')](_0xc31e('0x72'),_0x2976d5);try{fs[_0xc31e('0x73')](_0xa2cc52,parseInt('0777',0x8));extract(_0xa2cc52,{'dir':_0x2976d5},function(_0x29f802){if(_0x29f802){logger[_0xc31e('0x33')](_0x29f802);handleError(_0x29f802,!![]);};var _0x5c41c6=fs['readdirSync'](_0x2976d5);if(_0x5c41c6[_0xc31e('0x42')]>0x1){removeReferences(_0xa2cc52,_0x2976d5);logger[_0xc31e('0x33')]('Invalid\x20plugin\x20structure');return _0x1f3e5a(new Error(_0xc31e('0x74')));}var _0x585699=fs[_0xc31e('0x75')](path[_0xc31e('0x53')](_0x2976d5,_0x5c41c6[0x0]));if(_0x585699[_0xc31e('0x76')]()){removeReferences(_0xa2cc52,_0x2976d5);logger[_0xc31e('0x33')](_0xc31e('0x74'));return _0x1f3e5a(new Error(_0xc31e('0x74')));}if(_0x585699[_0xc31e('0x77')]()){var _0xd1f154=fs[_0xc31e('0x78')](path[_0xc31e('0x53')](_0x2976d5,_0x5c41c6[0x0]));if(_0xd1f154[_0xc31e('0x42')]===0x0){removeReferences(_0xa2cc52,_0x2976d5);logger[_0xc31e('0x33')]('Invalid\x20plugin\x20structure');return _0x1f3e5a(new Error('Invalid\x20plugin\x20structure'));}var _0x4f67bb=_0xd1f154[_0xc31e('0x79')](function(_0x24d1ca){return _0x24d1ca===_0xc31e('0x7a');});if(!_0x4f67bb){return _0x1f3e5a(new Error(_0xc31e('0x7b')));}var _0x461bfd=fs[_0xc31e('0x7c')](path['join'](_0x2976d5,_0x5c41c6[0x0],'manifest.json'));var _0x5c3085=JSON[_0xc31e('0x7d')](_0x461bfd);if(_0xc31e('0x7e')==typeof _0x5c3085[_0xc31e('0x35')]){return _0x1f3e5a(new Error(_0xc31e('0x7f')));}if(_0xc31e('0x7e')==typeof _0x5c3085['type']){return _0x1f3e5a(new Error(_0xc31e('0x80')));}if('undefined'==typeof _0x5c3085[_0xc31e('0x81')]){return _0x1f3e5a(new Error('Invalid\x20manifest:\x20version\x20not\x20specified'));}if(_0xc31e('0x7e')==typeof _0x5c3085[_0xc31e('0x82')]){return _0x1f3e5a(new Error(_0xc31e('0x83')));}if(_0x5c3085[_0xc31e('0x3a')]===_0xc31e('0x84')){if('undefined'==typeof _0x5c3085[_0xc31e('0x82')][_0xc31e('0x85')]){return _0x1f3e5a(new Error(_0xc31e('0x86')));}if(_0xc31e('0x7e')==typeof _0x5c3085[_0xc31e('0x82')][_0xc31e('0x85')][_0xc31e('0x87')]&&_0xc31e('0x7e')==typeof _0x5c3085['parameters'][_0xc31e('0x85')]['agent']){return _0x1f3e5a(new Error('Invalid\x20manifest:\x20no\x20view\x20specified'));}}else if(_0x5c3085[_0xc31e('0x3a')]==='script'){if(_0xc31e('0x7e')==typeof _0x5c3085[_0xc31e('0x82')]['scriptName']){return _0x1f3e5a(new Error(_0xc31e('0x88')));}if('undefined'==typeof _0x5c3085[_0xc31e('0x82')][_0xc31e('0x89')]){return _0x1f3e5a(new Error(_0xc31e('0x8a')));}}else{return _0x1f3e5a(new Error(_0xc31e('0x8b')));}var _0x338307=_0x5c3085['name'];var _0x2774da=_0x5c3085[_0xc31e('0x8c')];var _0x4d1db0=_0x5c3085[_0xc31e('0x3a')];var _0x1ef719=_0x5c3085[_0xc31e('0x8d')]?_0x5c3085[_0xc31e('0x8d')]:_0xc31e('0x8e');var _0x211a23=_0x5c3085['icon']?_0x5c3085[_0xc31e('0x8f')]:'icon-apps';var _0x369eb2='';var _0x1a94dd='';var _0x20e6ad='';var _0x3650c2='';var _0x280087=_0x5c3085[_0xc31e('0x81')];if(_0x4d1db0===_0xc31e('0x84')){if(_0xc31e('0x7e')!=typeof _0x5c3085[_0xc31e('0x82')]['views']['admin']){var _0x2fa3f4=_0x5c3085['parameters'][_0xc31e('0x85')][_0xc31e('0x87')];if(!/^(f|ht)tps?:\/\//i[_0xc31e('0x90')](_0x2fa3f4)){_0x369eb2=path[_0xc31e('0x53')](_0xc31e('0x91'),_0x15be7e,_0x5c41c6[0x0],_0x2fa3f4);}else{_0x369eb2=_0x2fa3f4;}}else{logger['info'](_0xc31e('0x92'));}if(_0xc31e('0x7e')!=typeof _0x5c3085[_0xc31e('0x82')][_0xc31e('0x85')][_0xc31e('0x93')]){var _0x5eb182=_0x5c3085[_0xc31e('0x82')][_0xc31e('0x85')][_0xc31e('0x93')];if(!/^(f|ht)tps?:\/\//i[_0xc31e('0x90')](_0x5eb182)){_0x1a94dd=path[_0xc31e('0x53')](_0xc31e('0x91'),_0x15be7e,_0x5c41c6[0x0],_0x5eb182);}else{_0x1a94dd=_0x5eb182;}}else{logger[_0xc31e('0x6a')](_0xc31e('0x94'));}}else if(_0x4d1db0===_0xc31e('0x95')){_0x20e6ad=_0x5c3085[_0xc31e('0x82')][_0xc31e('0x96')];_0x3650c2=_0x5c3085[_0xc31e('0x82')]['scriptPath'];if(_0xc31e('0x7e')!=typeof _0x5c3085[_0xc31e('0x82')][_0xc31e('0x85')]){if(_0xc31e('0x7e')!=typeof _0x5c3085['parameters']['views']['admin']){var _0x2fa3f4=_0x5c3085[_0xc31e('0x82')]['views'][_0xc31e('0x87')];if(!/^(f|ht)tps?:\/\//i[_0xc31e('0x90')](_0x2fa3f4)){_0x369eb2=path['join'](_0xc31e('0x91'),_0x15be7e,_0x5c41c6[0x0],_0x2fa3f4);}else{_0x369eb2=_0x2fa3f4;}}if(_0xc31e('0x7e')!=typeof _0x5c3085[_0xc31e('0x82')][_0xc31e('0x85')][_0xc31e('0x93')]){var _0x5eb182=_0x5c3085['parameters'][_0xc31e('0x85')]['agent'];if(!/^(f|ht)tps?:\/\//i[_0xc31e('0x90')](_0x5eb182)){_0x1a94dd=path['join']('plugins',_0x15be7e,_0x5c41c6[0x0],_0x5eb182);}else{_0x1a94dd=_0x5eb182;}}}}var _0x3326eb={'name':_0x338307,'description':_0x2774da,'path':path[_0xc31e('0x53')](_0x15be7e,_0x5c41c6[0x0]),'type':_0x4d1db0,'sidebar':_0x1ef719,'icon':_0x211a23,'adminUrl':_0x369eb2,'agentUrl':_0x1a94dd,'scriptName':_0x20e6ad,'scriptPath':_0x3650c2,'version':_0x280087};removeReferences(_0xa2cc52,null);return db[_0xc31e('0x4c')][_0xc31e('0x97')](_0x3326eb)[_0xc31e('0x2e')](function(_0x9cd5e2){var _0x468eff={'role':_0x4bf87c[_0xc31e('0x98')][_0xc31e('0x99')],'userProfileId':_0x4bf87c['body']['userProfileId']};if(!_0x468eff)throw new Error(_0xc31e('0x9a'));if(_0x468eff[_0xc31e('0x99')]===_0xc31e('0x9b')){var _0x340f7b=_0x9cd5e2[_0xc31e('0x9c')]({'plain':!![]});return db['UserProfileSection'][_0xc31e('0x52')]({'where':{'name':'Plugins','userProfileId':_0x468eff[_0xc31e('0x9d')]},'raw':!![]})['then'](function(_0x188333){if(_0x188333&&_0x188333['autoAssociation']===0x0){return db['UserProfileResource'][_0xc31e('0x97')]({'name':_0x340f7b['name'],'resourceId':_0x340f7b['id'],'type':_0x188333[_0xc31e('0x35')],'sectionId':_0x188333['id']},{})[_0xc31e('0x2e')](function(){return _0x9cd5e2;});}else{return _0x9cd5e2;}})['catch'](function(_0xdcbead){logger[_0xc31e('0x33')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0xdcbead);throw _0xdcbead;});}return _0x9cd5e2;})['then'](respondWithResult(_0x2d6617,null))[_0xc31e('0x4f')](handleError(_0x2d6617,null));}});}catch(_0x5bf117){_0x2d6617['status'](0x1f4)[_0xc31e('0x36')](_0x5bf117);}};function removeReferences(_0xda52c9,_0x3bfd75){try{if(_0xda52c9){fs['unlinkSync'](_0xda52c9);logger[_0xc31e('0x6a')]('Zip\x20archive\x20removed');}if(_0x3bfd75){rimraf(_0x3bfd75,function(){});logger[_0xc31e('0x6a')](_0xc31e('0x9e'));}}catch(_0x25a479){logger[_0xc31e('0x33')](_0x25a479);}}exports[_0xc31e('0x2d')]=function(_0x28e05d,_0x23a096,_0xb8626b){return db['Plugin']['find']({'where':{'id':_0x28e05d[_0xc31e('0x50')]['id']}})['then'](handleEntityNotFound(_0x23a096,null))[_0xc31e('0x2e')](saveUpdates(_0x28e05d[_0xc31e('0x98')],null))['then'](respondWithResult(_0x23a096,null))[_0xc31e('0x4f')](handleError(_0x23a096,null));};exports['delete']=function(_0x48d8f0,_0x4827a0,_0x122711){return db[_0xc31e('0x4c')][_0xc31e('0x52')]({'where':{'id':_0x48d8f0['params']['id']}})[_0xc31e('0x2e')](function(_0x4ad940){if(_0x4ad940){return _0x4ad940[_0xc31e('0x2f')]();}})[_0xc31e('0x2e')](function(_0x3d1096){rimraf(path[_0xc31e('0x53')](config[_0xc31e('0x70')],_0xc31e('0x54'),path[_0xc31e('0x5f')](_0x3d1096['path'])),function(){});return _0x3d1096;})[_0xc31e('0x2e')](handleEntityNotFound(_0x4827a0,null))[_0xc31e('0x2e')](respondWithStatusCode(_0x4827a0,null))[_0xc31e('0x4f')](handleError(_0x4827a0,null));};exports[_0xc31e('0x9f')]=function(_0x5a0282,_0x126912,_0x577649){return BPromise[_0xc31e('0xa0')]()[_0xc31e('0x2e')](function(){if(!_0x5a0282[_0xc31e('0x3c')][_0xc31e('0x7')]){throw new Error(_0xc31e('0xa1'));}if(!_0x5a0282['query'][_0xc31e('0xa2')]){throw new Error('\x27PORT\x27\x20parameter\x20not\x20specified');}var _0x464c47=_0x5a0282[_0xc31e('0x3c')][_0xc31e('0xa3')]?_0x5a0282['query'][_0xc31e('0xa3')]+':'+_0x5a0282[_0xc31e('0x3c')]['port']:'http://localhost:'+_0x5a0282[_0xc31e('0x3c')][_0xc31e('0xa2')];var _0x3b9fef=_0x5a0282['query'][_0xc31e('0x24')]?_0x5a0282[_0xc31e('0x3c')][_0xc31e('0x24')]:!![];var _0x4dd666=_0x5a0282[_0xc31e('0x3c')]['encoding']?_0x5a0282[_0xc31e('0x3c')]['encoding']:null;var _0x6fb03f={'method':_0x5a0282[_0xc31e('0xa4')],'uri':util[_0xc31e('0x55')](_0xc31e('0xa5'),_0x464c47,_0x5a0282[_0xc31e('0x3c')]['path']),'json':_0x3b9fef,'resolveWithFullResponse':!![],'encoding':_0x4dd666,'qs':_0x5a0282[_0xc31e('0x3c')]};if(_0x5a0282[_0xc31e('0xa6')]){_0x6fb03f[_0xc31e('0xa6')]=_0x5a0282[_0xc31e('0xa6')];if(_0x6fb03f[_0xc31e('0xa6')][_0xc31e('0xa7')]){delete _0x6fb03f[_0xc31e('0xa6')][_0xc31e('0xa7')];}}if(_0x6fb03f[_0xc31e('0xa6')][_0xc31e('0xa8')]){delete _0x6fb03f[_0xc31e('0xa6')][_0xc31e('0xa8')];}return rp(_0x6fb03f);})[_0xc31e('0x2e')](function(_0x548d9b){if(_0x548d9b){_0x126912[_0xc31e('0x28')](_0x548d9b[_0xc31e('0xa6')]);logger[_0xc31e('0x6a')](_0x548d9b[_0xc31e('0x98')]);if(_[_0xc31e('0xa9')](_0x5a0282[_0xc31e('0x3c')]['path'],_0xc31e('0x51'))&&_0x548d9b[_0xc31e('0xaa')]==0x1f4){return _0x126912[_0xc31e('0x22')](_0x548d9b[_0xc31e('0xaa')]);}else{return _0x126912[_0xc31e('0x23')](_0x548d9b['statusCode'])[_0xc31e('0x36')](_0x548d9b['body']);}}else{return _0x126912['sendStatus'](0xc8);}})[_0xc31e('0x4f')](handleError(_0x126912,null));};exports[_0xc31e('0xab')]=function(_0x564f5e,_0x18de6b,_0x14ce28){return BPromise[_0xc31e('0xa0')]()[_0xc31e('0x2e')](function(){if(!_0x564f5e[_0xc31e('0x3c')]['path']){throw new Error(_0xc31e('0xa1'));}if(!_0x564f5e[_0xc31e('0x3c')]['port']){throw new Error(_0xc31e('0xac'));}var _0x17a3c3=_0x564f5e[_0xc31e('0x3c')]['hostname']?_0x564f5e[_0xc31e('0x3c')][_0xc31e('0xa3')]+':'+_0x564f5e[_0xc31e('0x3c')][_0xc31e('0xa2')]:_0xc31e('0xad')+_0x564f5e['query'][_0xc31e('0xa2')];var _0x55cf55=_0x564f5e[_0xc31e('0x3c')][_0xc31e('0x24')]?_0x564f5e[_0xc31e('0x3c')][_0xc31e('0x24')]:!![];var _0x4e02ca=_0x564f5e['query'][_0xc31e('0xae')]?_0x564f5e[_0xc31e('0x3c')]['encoding']:null;var _0x4e5275={'method':_0x564f5e['method'],'uri':util['format'](_0xc31e('0xa5'),_0x17a3c3,_0x564f5e[_0xc31e('0x3c')]['path']),'json':_0x55cf55,'resolveWithFullResponse':!![],'encoding':_0x4e02ca,'body':_0x564f5e[_0xc31e('0x98')]};if(_0x564f5e[_0xc31e('0xa6')]){_0x4e5275[_0xc31e('0xa6')]=_0x564f5e[_0xc31e('0xa6')];if(_0x4e5275[_0xc31e('0xa6')][_0xc31e('0xa7')]){delete _0x4e5275[_0xc31e('0xa6')][_0xc31e('0xa7')];}}if(_0x4e5275[_0xc31e('0xa6')][_0xc31e('0xa8')]){delete _0x4e5275[_0xc31e('0xa6')]['content-type'];}return rp(_0x4e5275);})[_0xc31e('0x2e')](function(_0xfbd6fd){if(_0xfbd6fd){_0x18de6b[_0xc31e('0x28')](_0xfbd6fd[_0xc31e('0xa6')]);logger[_0xc31e('0x6a')](_0xfbd6fd[_0xc31e('0x98')]);return _0x18de6b[_0xc31e('0x23')](_0xfbd6fd[_0xc31e('0xaa')])['send'](_0xfbd6fd['body']);}else{return _0x18de6b[_0xc31e('0x22')](0xc8);}})[_0xc31e('0x4f')](handleError(_0x18de6b,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4975=['Plugin','setMaxListeners','save','update','remove','emit','hasOwnProperty','exports','events'];(function(_0x44d869,_0x49425f){var _0x1ed521=function(_0x2c2968){while(--_0x2c2968){_0x44d869['push'](_0x44d869['shift']());}};_0x1ed521(++_0x49425f);}(_0x4975,0x86));var _0x5497=function(_0x5bdf24,_0x26a5cc){_0x5bdf24=_0x5bdf24-0x0;var _0x31252b=_0x4975[_0x5bdf24];return _0x31252b;};'use strict';var EventEmitter=require(_0x5497('0x0'));var Plugin=require('../../mysqldb')['db'][_0x5497('0x1')];var PluginEvents=new EventEmitter();PluginEvents[_0x5497('0x2')](0x0);var events={'afterCreate':_0x5497('0x3'),'afterUpdate':_0x5497('0x4'),'afterDestroy':_0x5497('0x5')};function emitEvent(_0x235986){return function(_0x14cecb,_0xeb31af,_0xbb1888){PluginEvents[_0x5497('0x6')](_0x235986+':'+_0x14cecb['id'],_0x14cecb);PluginEvents['emit'](_0x235986,_0x14cecb);_0xbb1888(null);};}for(var e in events){if(events[_0x5497('0x7')](e)){var event=events[e];Plugin['hook'](e,emitEvent(event));}}module[_0x5497('0x8')]=PluginEvents;
\ No newline at end of file
+var _0x0650=['events','../../mysqldb','Plugin','setMaxListeners','update','hasOwnProperty'];(function(_0x3b380d,_0x4bf247){var _0x54502b=function(_0x35d207){while(--_0x35d207){_0x3b380d['push'](_0x3b380d['shift']());}};_0x54502b(++_0x4bf247);}(_0x0650,0x1aa));var _0x0065=function(_0x1e1f74,_0x190226){_0x1e1f74=_0x1e1f74-0x0;var _0x54139e=_0x0650[_0x1e1f74];return _0x54139e;};'use strict';var EventEmitter=require(_0x0065('0x0'));var Plugin=require(_0x0065('0x1'))['db'][_0x0065('0x2')];var PluginEvents=new EventEmitter();PluginEvents[_0x0065('0x3')](0x0);var events={'afterCreate':'save','afterUpdate':_0x0065('0x4'),'afterDestroy':'remove'};function emitEvent(_0x49a595){return function(_0x1798d6,_0xe2785,_0x185c29){PluginEvents['emit'](_0x49a595+':'+_0x1798d6['id'],_0x1798d6);PluginEvents['emit'](_0x49a595,_0x1798d6);_0x185c29(null);};}for(var e in events){if(events[_0x0065('0x5')](e)){var event=events[e];Plugin['hook'](e,emitEvent(event));}}module['exports']=PluginEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9b8f=['util','../../config/logger','api','bluebird','request-promise','rimraf','./plugin.attributes','exports','define','Plugin','plugins','lodash'];(function(_0x5cc045,_0x49a9bc){var _0x1875bc=function(_0x4002de){while(--_0x4002de){_0x5cc045['push'](_0x5cc045['shift']());}};_0x1875bc(++_0x49a9bc);}(_0x9b8f,0x83));var _0xf9b8=function(_0x2a6c0d,_0x596838){_0x2a6c0d=_0x2a6c0d-0x0;var _0x4c9f43=_0x9b8f[_0x2a6c0d];return _0x4c9f43;};'use strict';var _=require(_0xf9b8('0x0'));var util=require(_0xf9b8('0x1'));var logger=require(_0xf9b8('0x2'))(_0xf9b8('0x3'));var moment=require('moment');var BPromise=require(_0xf9b8('0x4'));var rp=require(_0xf9b8('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0xf9b8('0x6'));var config=require('../../config/environment');var attributes=require(_0xf9b8('0x7'));module[_0xf9b8('0x8')]=function(_0x4621fb,_0x1cafe9){return _0x4621fb[_0xf9b8('0x9')](_0xf9b8('0xa'),attributes,{'tableName':_0xf9b8('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x7564=['lodash','moment','request-promise','path','rimraf','../../config/environment','./plugin.attributes','define','Plugin','plugins'];(function(_0x10ecfc,_0x391624){var _0x1ab2bd=function(_0x47ed00){while(--_0x47ed00){_0x10ecfc['push'](_0x10ecfc['shift']());}};_0x1ab2bd(++_0x391624);}(_0x7564,0xaa));var _0x4756=function(_0x58afd5,_0x534a48){_0x58afd5=_0x58afd5-0x0;var _0x3e503b=_0x7564[_0x58afd5];return _0x3e503b;};'use strict';var _=require(_0x4756('0x0'));var util=require('util');var logger=require('../../config/logger')('api');var moment=require(_0x4756('0x1'));var BPromise=require('bluebird');var rp=require(_0x4756('0x2'));var fs=require('fs');var path=require(_0x4756('0x3'));var rimraf=require(_0x4756('0x4'));var config=require(_0x4756('0x5'));var attributes=require(_0x4756('0x6'));module['exports']=function(_0x2ea0e6,_0x5bd7fd){return _0x2ea0e6[_0x4756('0x7')](_0x4756('0x8'),attributes,{'tableName':_0x4756('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x011f=['lodash','util','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','client','http','redis','localhost','socket.io-emitter','then','info','Plugin,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','Plugin,\x20%s,\x20%s','message','result','catch','CreatePlugin','create','options','raw','debug'];(function(_0x121c3a,_0x3aed12){var _0x515ffc=function(_0x3ac662){while(--_0x3ac662){_0x121c3a['push'](_0x121c3a['shift']());}};_0x515ffc(++_0x3aed12);}(_0x011f,0x91));var _0xf011=function(_0xee3051,_0xbe4f18){_0xee3051=_0xee3051-0x0;var _0x139e81=_0x011f[_0xee3051];return _0x139e81;};'use strict';var _=require(_0xf011('0x0'));var util=require(_0xf011('0x1'));var moment=require('moment');var BPromise=require(_0xf011('0x2'));var rs=require(_0xf011('0x3'));var fs=require('fs');var Redis=require(_0xf011('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0xf011('0x5'));var logger=require(_0xf011('0x6'))(_0xf011('0x7'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0xf011('0x8')][_0xf011('0x9')]({'port':0x232a});config[_0xf011('0xa')]=_['defaults'](config[_0xf011('0xa')],{'host':_0xf011('0xb'),'port':0x18eb});var socket=require(_0xf011('0xc'))(new Redis(config[_0xf011('0xa')]));require('./plugin.socket')['register'](socket);function respondWithRpcPromise(_0x5dcd92,_0x25417f,_0x421248){return new BPromise(function(_0x4945c1,_0x16aad3){return client['request'](_0x5dcd92,_0x421248)[_0xf011('0xd')](function(_0x332c4b){logger[_0xf011('0xe')]('Plugin,\x20%s,\x20%s',_0x25417f,'request\x20sent');logger['debug'](_0xf011('0xf'),_0x25417f,_0xf011('0x10'),JSON[_0xf011('0x11')](_0x332c4b));if(_0x332c4b[_0xf011('0x12')]){if(_0x332c4b[_0xf011('0x12')][_0xf011('0x13')]===0x1f4){logger['error'](_0xf011('0x14'),_0x25417f,_0x332c4b[_0xf011('0x12')][_0xf011('0x15')]);return _0x16aad3(_0x332c4b[_0xf011('0x12')]['message']);}logger[_0xf011('0x12')]('Plugin,\x20%s,\x20%s',_0x25417f,_0x332c4b['error']['message']);return _0x4945c1(_0x332c4b[_0xf011('0x12')][_0xf011('0x15')]);}else{logger['info'](_0xf011('0x14'),_0x25417f,'request\x20sent');_0x4945c1(_0x332c4b[_0xf011('0x16')][_0xf011('0x15')]);}})[_0xf011('0x17')](function(_0x3cc4d0){logger[_0xf011('0x12')]('Plugin,\x20%s,\x20%s',_0x25417f,_0x3cc4d0);_0x16aad3(_0x3cc4d0);});});}exports[_0xf011('0x18')]=function(_0xf0bc44){var _0x2855cc=this;return new Promise(function(_0xf9ab7,_0x149c93){return db['Plugin'][_0xf011('0x19')](_0xf0bc44['body'],{'raw':_0xf0bc44[_0xf011('0x1a')]?_0xf0bc44[_0xf011('0x1a')][_0xf011('0x1b')]===undefined?!![]:![]:!![]})[_0xf011('0xd')](function(_0x4700dd){logger['info']('CreatePlugin',_0xf0bc44);logger[_0xf011('0x1c')](_0xf011('0x18'),_0xf0bc44,JSON[_0xf011('0x11')](_0x4700dd));_0xf9ab7(_0x4700dd);})[_0xf011('0x17')](function(_0x3a6791){logger[_0xf011('0x12')](_0xf011('0x18'),_0x3a6791[_0xf011('0x15')],_0xf0bc44);_0x149c93(_0x2855cc['error'](0x1f4,_0x3a6791[_0xf011('0x15')]));});});};
\ No newline at end of file
+var _0xf2d8=['message','result','catch','Plugin','create','body','options','raw','CreatePlugin','debug','stringify','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','../../config/environment','client','http','redis','localhost','socket.io-emitter','register','then','info','request\x20sent','Plugin,\x20%s,\x20%s,\x20%s','error','code','Plugin,\x20%s,\x20%s'];(function(_0x525d37,_0x1ed9d8){var _0x382c76=function(_0x171b7a){while(--_0x171b7a){_0x525d37['push'](_0x525d37['shift']());}};_0x382c76(++_0x1ed9d8);}(_0xf2d8,0x122));var _0x8f2d=function(_0x4d7f3f,_0x4d2803){_0x4d7f3f=_0x4d7f3f-0x0;var _0x5d67cc=_0xf2d8[_0x4d7f3f];return _0x5d67cc;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x8f2d('0x0'));var BPromise=require(_0x8f2d('0x1'));var rs=require(_0x8f2d('0x2'));var fs=require('fs');var Redis=require(_0x8f2d('0x3'));var db=require(_0x8f2d('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0x8f2d('0x5'))('rpc');var config=require(_0x8f2d('0x6'));var jayson=require('jayson/promise');var client=jayson[_0x8f2d('0x7')][_0x8f2d('0x8')]({'port':0x232a});config[_0x8f2d('0x9')]=_['defaults'](config[_0x8f2d('0x9')],{'host':_0x8f2d('0xa'),'port':0x18eb});var socket=require(_0x8f2d('0xb'))(new Redis(config[_0x8f2d('0x9')]));require('./plugin.socket')[_0x8f2d('0xc')](socket);function respondWithRpcPromise(_0x4c5d5e,_0x7faa16,_0x683c0e){return new BPromise(function(_0x53c3c6,_0x305bda){return client['request'](_0x4c5d5e,_0x683c0e)[_0x8f2d('0xd')](function(_0x1ecb2e){logger[_0x8f2d('0xe')]('Plugin,\x20%s,\x20%s',_0x7faa16,_0x8f2d('0xf'));logger['debug'](_0x8f2d('0x10'),_0x7faa16,_0x8f2d('0xf'),JSON['stringify'](_0x1ecb2e));if(_0x1ecb2e[_0x8f2d('0x11')]){if(_0x1ecb2e[_0x8f2d('0x11')][_0x8f2d('0x12')]===0x1f4){logger[_0x8f2d('0x11')](_0x8f2d('0x13'),_0x7faa16,_0x1ecb2e[_0x8f2d('0x11')][_0x8f2d('0x14')]);return _0x305bda(_0x1ecb2e[_0x8f2d('0x11')][_0x8f2d('0x14')]);}logger[_0x8f2d('0x11')](_0x8f2d('0x13'),_0x7faa16,_0x1ecb2e[_0x8f2d('0x11')][_0x8f2d('0x14')]);return _0x53c3c6(_0x1ecb2e[_0x8f2d('0x11')][_0x8f2d('0x14')]);}else{logger['info'](_0x8f2d('0x13'),_0x7faa16,_0x8f2d('0xf'));_0x53c3c6(_0x1ecb2e[_0x8f2d('0x15')][_0x8f2d('0x14')]);}})[_0x8f2d('0x16')](function(_0xe9a13a){logger[_0x8f2d('0x11')]('Plugin,\x20%s,\x20%s',_0x7faa16,_0xe9a13a);_0x305bda(_0xe9a13a);});});}exports['CreatePlugin']=function(_0x39dd01){var _0x2fb9a8=this;return new Promise(function(_0x2bffac,_0x1c6896){return db[_0x8f2d('0x17')][_0x8f2d('0x18')](_0x39dd01[_0x8f2d('0x19')],{'raw':_0x39dd01[_0x8f2d('0x1a')]?_0x39dd01[_0x8f2d('0x1a')][_0x8f2d('0x1b')]===undefined?!![]:![]:!![]})[_0x8f2d('0xd')](function(_0xbf9fa0){logger['info'](_0x8f2d('0x1c'),_0x39dd01);logger[_0x8f2d('0x1d')](_0x8f2d('0x1c'),_0x39dd01,JSON[_0x8f2d('0x1e')](_0xbf9fa0));_0x2bffac(_0xbf9fa0);})['catch'](function(_0x342665){logger[_0x8f2d('0x11')](_0x8f2d('0x1c'),_0x342665[_0x8f2d('0x14')],_0x39dd01);_0x1c6896(_0x2fb9a8[_0x8f2d('0x11')](0x1f4,_0x342665[_0x8f2d('0x14')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4b72=['length','plugin:','./plugin.events','save','update','emit','removeListener','register'];(function(_0x2f3ae0,_0xef2804){var _0x44bc56=function(_0x5accef){while(--_0x5accef){_0x2f3ae0['push'](_0x2f3ae0['shift']());}};_0x44bc56(++_0xef2804);}(_0x4b72,0x17a));var _0x24b7=function(_0x161670,_0x1eb5a9){_0x161670=_0x161670-0x0;var _0x172d66=_0x4b72[_0x161670];return _0x172d66;};'use strict';var PluginEvents=require(_0x24b7('0x0'));var events=[_0x24b7('0x1'),'remove',_0x24b7('0x2')];function createListener(_0xd73009,_0x59a7ce){return function(_0x439ca2){_0x59a7ce[_0x24b7('0x3')](_0xd73009,_0x439ca2);};}function removeListener(_0x33a503,_0x35eadf){return function(){PluginEvents[_0x24b7('0x4')](_0x33a503,_0x35eadf);};}exports[_0x24b7('0x5')]=function(_0x5d0877){for(var _0x5b7c02=0x0,_0x2a3468=events[_0x24b7('0x6')];_0x5b7c02<_0x2a3468;_0x5b7c02++){var _0x50f5e2=events[_0x5b7c02];var _0x5dfda2=createListener(_0x24b7('0x7')+_0x50f5e2,_0x5d0877);PluginEvents['on'](_0x50f5e2,_0x5dfda2);}};
\ No newline at end of file
+var _0xcb97=['./plugin.events','save','remove','update','emit','removeListener','register','plugin:'];(function(_0x7adde7,_0x21459f){var _0x4db008=function(_0x5f44ab){while(--_0x5f44ab){_0x7adde7['push'](_0x7adde7['shift']());}};_0x4db008(++_0x21459f);}(_0xcb97,0xf8));var _0x7cb9=function(_0x4ca764,_0x572b2a){_0x4ca764=_0x4ca764-0x0;var _0x39292d=_0xcb97[_0x4ca764];return _0x39292d;};'use strict';var PluginEvents=require(_0x7cb9('0x0'));var events=[_0x7cb9('0x1'),_0x7cb9('0x2'),_0x7cb9('0x3')];function createListener(_0x44eafd,_0x55a402){return function(_0x7fb752){_0x55a402[_0x7cb9('0x4')](_0x44eafd,_0x7fb752);};}function removeListener(_0x1dd687,_0x9fcbad){return function(){PluginEvents[_0x7cb9('0x5')](_0x1dd687,_0x9fcbad);};}exports[_0x7cb9('0x6')]=function(_0x53f707){for(var _0x55def2=0x0,_0x597237=events['length'];_0x55def2<_0x597237;_0x55def2++){var _0xb61ec4=events[_0x55def2];var _0x23119a=createListener(_0x7cb9('0x7')+_0xb61ec4,_0x53f707);PluginEvents['on'](_0xb61ec4,_0x23119a);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['create','put','delete','destroy','exports','express','Router','../../components/auth/service','isAuthenticated','get','/:id','show','post'];(function(_0x5460d2,_0x18a499){var _0x1a7f4c=function(_0x3f0b8c){while(--_0x3f0b8c){_0x5460d2['push'](_0x5460d2['shift']());}};_0x1a7f4c(++_0x18a499);}(_0xa9e0,0x123));var _0x0a9e=function(_0x5783f4,_0x4a9e0a){_0x5783f4=_0x5783f4-0x0;var _0x28e380=_0xa9e0[_0x5783f4];return _0x28e380;};'use strict';var express=require(_0x0a9e('0x0'));var router=express[_0x0a9e('0x1')]();var auth=require(_0x0a9e('0x2'));var controller=require('./pm2.controller');router['get']('/',auth[_0x0a9e('0x3')](),controller['index']);router[_0x0a9e('0x4')](_0x0a9e('0x5'),auth[_0x0a9e('0x3')](),controller[_0x0a9e('0x6')]);router[_0x0a9e('0x7')]('/',auth['isAuthenticated'](),controller[_0x0a9e('0x8')]);router[_0x0a9e('0x9')](_0x0a9e('0x5'),auth['isAuthenticated'](),controller['update']);router[_0x0a9e('0xa')]('/:id',auth['isAuthenticated'](),controller[_0x0a9e('0xb')]);module[_0x0a9e('0xc')]=router;
\ No newline at end of file
+var _0xa9e0=['create','put','delete','destroy','exports','express','Router','../../components/auth/service','isAuthenticated','get','/:id','show','post'];(function(_0x5d70ed,_0x35a2a3){var _0x4fc0b9=function(_0x5c2e2d){while(--_0x5c2e2d){_0x5d70ed['push'](_0x5d70ed['shift']());}};_0x4fc0b9(++_0x35a2a3);}(_0xa9e0,0x123));var _0x0a9e=function(_0x2f3848,_0x48564d){_0x2f3848=_0x2f3848-0x0;var _0x102668=_0xa9e0[_0x2f3848];return _0x102668;};'use strict';var express=require(_0x0a9e('0x0'));var router=express[_0x0a9e('0x1')]();var auth=require(_0x0a9e('0x2'));var controller=require('./pm2.controller');router['get']('/',auth[_0x0a9e('0x3')](),controller['index']);router[_0x0a9e('0x4')](_0x0a9e('0x5'),auth[_0x0a9e('0x3')](),controller[_0x0a9e('0x6')]);router[_0x0a9e('0x7')]('/',auth['isAuthenticated'](),controller[_0x0a9e('0x8')]);router[_0x0a9e('0x9')](_0x0a9e('0x5'),auth['isAuthenticated'](),controller['update']);router[_0x0a9e('0xa')]('/:id',auth['isAuthenticated'](),controller[_0x0a9e('0xb')]);module[_0x0a9e('0xc')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x54ef=['bluebird','status','error','name','send','npm\x20install','info','index','list','reject','express','motion2','catch','show','describe','params','then','create','script','join','../../files/plugins','body','cwd','chdir','dirname','dump','Missing\x20name\x20and/or\x20path','update','restart','hasOwnProperty','Unknown\x20status','destroy','delete','Unknown\x20id','lodash','../../config/pm2','../../config/logger','path','child_process','exec'];(function(_0x4b7e4d,_0x82d2ab){var _0x38d6af=function(_0x227432){while(--_0x227432){_0x4b7e4d['push'](_0x4b7e4d['shift']());}};_0x38d6af(++_0x82d2ab);}(_0x54ef,0x112));var _0xf54e=function(_0x37d4b1,_0x13f768){_0x37d4b1=_0x37d4b1-0x0;var _0x51bc77=_0x54ef[_0x37d4b1];return _0x51bc77;};'use strict';var _=require(_0xf54e('0x0'));var pm2=require(_0xf54e('0x1'));var logger=require(_0xf54e('0x2'))('api');var path=require(_0xf54e('0x3'));var exec=require(_0xf54e('0x4'))[_0xf54e('0x5')];var BPromise=require(_0xf54e('0x6'));function handleEntityNotFound(_0x8b6bb6,_0x431e36){return function(_0x12d43f){if(!_0x12d43f){_0x8b6bb6['sendStatus'](0x194);;}return _0x12d43f;};}function respondWithResult(_0x55e611,_0x18e84e){_0x18e84e=_0x18e84e||0xc8;return function(_0x99cf9){if(_0x99cf9){return _0x55e611[_0xf54e('0x7')](_0x18e84e)['json'](_0x99cf9);}return null;};}function handleError(_0x27e69b,_0x57a1ce){_0x57a1ce=_0x57a1ce||0x1f4;return function(_0x40a75d){logger[_0xf54e('0x8')](_0x40a75d['stack']);if(_0x40a75d[_0xf54e('0x9')]){delete _0x40a75d[_0xf54e('0x9')];}_0x27e69b[_0xf54e('0x7')](_0x57a1ce)[_0xf54e('0xa')](_0x40a75d);};}function execChildProcess(){return new BPromise(function(_0x5f232a,_0x558502){exec(_0xf54e('0xb'),function(_0x143d66,_0x326eef,_0x553759){logger[_0xf54e('0xc')](_0x326eef);logger['info'](_0x553759);if(_0x143d66){logger['error'](_0x143d66);return _0x558502(_0x143d66);}return _0x5f232a(_0x326eef);});});}exports[_0xf54e('0xd')]=function(_0x2033e9,_0x28f776){return pm2[_0xf54e('0xe')]()['then'](function(_0x331732){if(_0x331732){var _0x1bbeaa=_[_0xf54e('0xf')](_0x331732,function(_0x15f639){return _0x15f639['name']===_0xf54e('0x10')||_0x15f639[_0xf54e('0x9')]===_0xf54e('0x11');});return{'rows':_0x1bbeaa,'count':_0x1bbeaa['length']};}return null;})['then'](respondWithResult(_0x28f776,null))[_0xf54e('0x12')](handleError(_0x28f776,null));};exports[_0xf54e('0x13')]=function(_0x1c02e7,_0x9647f){return pm2[_0xf54e('0x14')](_0x1c02e7[_0xf54e('0x15')]['id'])[_0xf54e('0x16')](respondWithResult(_0x9647f,null))[_0xf54e('0x16')](handleEntityNotFound(_0x9647f,null))[_0xf54e('0x12')](handleError(_0x9647f,null));};exports[_0xf54e('0x17')]=function(_0x226c96,_0x50fc66){if(_0x226c96['body'][_0xf54e('0x9')]&&_0x226c96['body'][_0xf54e('0x18')]){var _0x1bfe99=path[_0xf54e('0x19')](__dirname,_0xf54e('0x1a'),_0x226c96[_0xf54e('0x1b')][_0xf54e('0x18')]);var _0x388aa0=process[_0xf54e('0x1c')]();process[_0xf54e('0x1d')](path[_0xf54e('0x1e')](_0x1bfe99));return execChildProcess()[_0xf54e('0x16')](function(_0x5b83df){process[_0xf54e('0x1d')](_0x388aa0);return pm2['start']({'name':_0x226c96[_0xf54e('0x1b')][_0xf54e('0x9')],'script':_0x1bfe99});})[_0xf54e('0x16')](function(_0x474b61){pm2[_0xf54e('0x1f')]();return _0x474b61[0x0];})[_0xf54e('0x16')](respondWithResult(_0x50fc66,0xc9))[_0xf54e('0x12')](handleError(_0x50fc66,null));}else{return _0x50fc66[_0xf54e('0x7')](0x1f4)[_0xf54e('0xa')]({'message':_0xf54e('0x20')});}};exports[_0xf54e('0x21')]=function(_0x39c0ae,_0x2ea001){if(_0x39c0ae['body']['id']){delete _0x39c0ae[_0xf54e('0x1b')]['id'];}var _0x4cbf7c={'online':_0xf54e('0x22'),'stopped':'stop'};if(_0x4cbf7c[_0xf54e('0x23')](_0x39c0ae[_0xf54e('0x1b')][_0xf54e('0x7')])){return pm2[_0x4cbf7c[_0x39c0ae[_0xf54e('0x1b')][_0xf54e('0x7')]]](_0x39c0ae[_0xf54e('0x15')]['id'])[_0xf54e('0x16')](respondWithResult(_0x2ea001,0xc8))['catch'](handleError(_0x2ea001,null));}else{return _0x2ea001['status'](0x1f4)[_0xf54e('0xa')]({'message':_0xf54e('0x24')});}};exports[_0xf54e('0x25')]=function(_0x16d00f,_0xb2d4c4){if(_0x16d00f[_0xf54e('0x1b')]['id']){delete _0x16d00f[_0xf54e('0x1b')]['id'];}if(_0x16d00f[_0xf54e('0x15')]['id']){return pm2[_0xf54e('0x26')](_0x16d00f[_0xf54e('0x15')]['id'])['then'](function(_0x5f29d3){pm2[_0xf54e('0x1f')]();return _0x5f29d3[0x0];})[_0xf54e('0x16')](respondWithResult(_0xb2d4c4,null))['catch'](handleError(_0xb2d4c4,null));}else{return _0xb2d4c4[_0xf54e('0x7')](0x1f4)[_0xf54e('0xa')]({'message':_0xf54e('0x27')});}};
\ No newline at end of file
+var _0xa9e0=['list','then','reject','express','motion2','catch','describe','params','create','body','script','join','../../files/plugins','chdir','dirname','start','dump','Missing\x20name\x20and/or\x20path','update','stop','hasOwnProperty','Unknown\x20status','destroy','delete','Unknown\x20id','lodash','../../config/pm2','../../config/logger','child_process','bluebird','sendStatus','status','stack','name','send','info','error','index'];(function(_0x55532b,_0x4a6065){var _0x367b7d=function(_0xd39fa0){while(--_0xd39fa0){_0x55532b['push'](_0x55532b['shift']());}};_0x367b7d(++_0x4a6065);}(_0xa9e0,0x123));var _0x0a9e=function(_0x3ce3c,_0x319337){_0x3ce3c=_0x3ce3c-0x0;var _0x55a2c9=_0xa9e0[_0x3ce3c];return _0x55a2c9;};'use strict';var _=require(_0x0a9e('0x0'));var pm2=require(_0x0a9e('0x1'));var logger=require(_0x0a9e('0x2'))('api');var path=require('path');var exec=require(_0x0a9e('0x3'))['exec'];var BPromise=require(_0x0a9e('0x4'));function handleEntityNotFound(_0x432180,_0x2ab90b){return function(_0x991246){if(!_0x991246){_0x432180[_0x0a9e('0x5')](0x194);;}return _0x991246;};}function respondWithResult(_0x57b080,_0x219af0){_0x219af0=_0x219af0||0xc8;return function(_0x441e3a){if(_0x441e3a){return _0x57b080[_0x0a9e('0x6')](_0x219af0)['json'](_0x441e3a);}return null;};}function handleError(_0x503809,_0xe42b77){_0xe42b77=_0xe42b77||0x1f4;return function(_0x56465b){logger['error'](_0x56465b[_0x0a9e('0x7')]);if(_0x56465b[_0x0a9e('0x8')]){delete _0x56465b[_0x0a9e('0x8')];}_0x503809[_0x0a9e('0x6')](_0xe42b77)[_0x0a9e('0x9')](_0x56465b);};}function execChildProcess(){return new BPromise(function(_0xbd1168,_0x4a4c56){exec('npm\x20install',function(_0x527cdd,_0x4cfe67,_0x273d4d){logger[_0x0a9e('0xa')](_0x4cfe67);logger[_0x0a9e('0xa')](_0x273d4d);if(_0x527cdd){logger[_0x0a9e('0xb')](_0x527cdd);return _0x4a4c56(_0x527cdd);}return _0xbd1168(_0x4cfe67);});});}exports[_0x0a9e('0xc')]=function(_0x69aeb7,_0x5db4b0){return pm2[_0x0a9e('0xd')]()[_0x0a9e('0xe')](function(_0x2b4227){if(_0x2b4227){var _0x281129=_[_0x0a9e('0xf')](_0x2b4227,function(_0x4d5611){return _0x4d5611['name']===_0x0a9e('0x10')||_0x4d5611['name']===_0x0a9e('0x11');});return{'rows':_0x281129,'count':_0x281129['length']};}return null;})[_0x0a9e('0xe')](respondWithResult(_0x5db4b0,null))[_0x0a9e('0x12')](handleError(_0x5db4b0,null));};exports['show']=function(_0x225616,_0x5a0a06){return pm2[_0x0a9e('0x13')](_0x225616[_0x0a9e('0x14')]['id'])[_0x0a9e('0xe')](respondWithResult(_0x5a0a06,null))[_0x0a9e('0xe')](handleEntityNotFound(_0x5a0a06,null))[_0x0a9e('0x12')](handleError(_0x5a0a06,null));};exports[_0x0a9e('0x15')]=function(_0x530eb7,_0x20559e){if(_0x530eb7[_0x0a9e('0x16')][_0x0a9e('0x8')]&&_0x530eb7[_0x0a9e('0x16')][_0x0a9e('0x17')]){var _0x4bb1e3=path[_0x0a9e('0x18')](__dirname,_0x0a9e('0x19'),_0x530eb7['body'][_0x0a9e('0x17')]);var _0x5a09ef=process['cwd']();process[_0x0a9e('0x1a')](path[_0x0a9e('0x1b')](_0x4bb1e3));return execChildProcess()[_0x0a9e('0xe')](function(_0x30bae6){process['chdir'](_0x5a09ef);return pm2[_0x0a9e('0x1c')]({'name':_0x530eb7[_0x0a9e('0x16')][_0x0a9e('0x8')],'script':_0x4bb1e3});})[_0x0a9e('0xe')](function(_0x370d86){pm2[_0x0a9e('0x1d')]();return _0x370d86[0x0];})[_0x0a9e('0xe')](respondWithResult(_0x20559e,0xc9))['catch'](handleError(_0x20559e,null));}else{return _0x20559e['status'](0x1f4)[_0x0a9e('0x9')]({'message':_0x0a9e('0x1e')});}};exports[_0x0a9e('0x1f')]=function(_0x33161b,_0x526cf3){if(_0x33161b[_0x0a9e('0x16')]['id']){delete _0x33161b['body']['id'];}var _0x45a1e7={'online':'restart','stopped':_0x0a9e('0x20')};if(_0x45a1e7[_0x0a9e('0x21')](_0x33161b[_0x0a9e('0x16')][_0x0a9e('0x6')])){return pm2[_0x45a1e7[_0x33161b[_0x0a9e('0x16')][_0x0a9e('0x6')]]](_0x33161b[_0x0a9e('0x14')]['id'])[_0x0a9e('0xe')](respondWithResult(_0x526cf3,0xc8))['catch'](handleError(_0x526cf3,null));}else{return _0x526cf3[_0x0a9e('0x6')](0x1f4)[_0x0a9e('0x9')]({'message':_0x0a9e('0x22')});}};exports[_0x0a9e('0x23')]=function(_0x5c877d,_0x15b200){if(_0x5c877d[_0x0a9e('0x16')]['id']){delete _0x5c877d[_0x0a9e('0x16')]['id'];}if(_0x5c877d[_0x0a9e('0x14')]['id']){return pm2[_0x0a9e('0x24')](_0x5c877d[_0x0a9e('0x14')]['id'])[_0x0a9e('0xe')](function(_0x2e8759){pm2[_0x0a9e('0x1d')]();return _0x2e8759[0x0];})['then'](respondWithResult(_0x15b200,null))[_0x0a9e('0x12')](handleError(_0x15b200,null));}else{return _0x15b200['status'](0x1f4)[_0x0a9e('0x9')]({'message':_0x0a9e('0x25')});}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xff4f=['express','Router','../../components/auth/service','/queues','isAuthenticated','getQueues'];(function(_0x12ee03,_0x455139){var _0x48a632=function(_0x16f9b8){while(--_0x16f9b8){_0x12ee03['push'](_0x12ee03['shift']());}};_0x48a632(++_0x455139);}(_0xff4f,0x156));var _0xfff4=function(_0x38fead,_0x1a0c68){_0x38fead=_0x38fead-0x0;var _0x1598e0=_0xff4f[_0x38fead];return _0x1598e0;};'use strict';var express=require(_0xfff4('0x0'));var router=express[_0xfff4('0x1')]();var auth=require(_0xfff4('0x2'));var controller=require('./realtime.controller');router['get'](_0xfff4('0x3'),auth[_0xfff4('0x4')](),controller[_0xfff4('0x5')]);module['exports']=router;
\ No newline at end of file
+var _0x8796=['isAuthenticated','getQueues','exports','express','Router','./realtime.controller','/queues'];(function(_0x585b9a,_0x2473b7){var _0x18b740=function(_0x3cd478){while(--_0x3cd478){_0x585b9a['push'](_0x585b9a['shift']());}};_0x18b740(++_0x2473b7);}(_0x8796,0x1a0));var _0x6879=function(_0x2e846d,_0x370cd6){_0x2e846d=_0x2e846d-0x0;var _0x10a6ab=_0x8796[_0x2e846d];return _0x10a6ab;};'use strict';var express=require(_0x6879('0x0'));var router=express[_0x6879('0x1')]();var auth=require('../../components/auth/service');var controller=require(_0x6879('0x2'));router['get'](_0x6879('0x3'),auth[_0x6879('0x4')](),controller[_0x6879('0x5')]);module[_0x6879('0x6')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd1ed=['dialMethod','Trunk','startPredictive','erlangCalls','erlangCallToSecond','erlangBusyFactor','dialPredictiveIntervalMinThreshold','predictiveIntervalAvailable','predictiveIntervalTotalCalls','predictiveIntervalDroppedCallsTimeout','predictiveIntervalDroppedCallsCallersExit','predictiveIntervalAvgHoldtime','predictiveIntervalAvgTalktime','get','agents','loggedInDb','waiting','talking','find','merge','pick','queue','length','internal','toString','busy','getMembers','UserId','accountcode','online','voiceStatus','User','Queue','findAll','QueueId','getQueues','mail','chat','sms','openchannel','fax','whatsapp','resolve','query','channel','includes','Invalid\x20channel','rawAttributes','fieldName','type','key','getOptions','user','role','userProfileId','QueueCampaigns','Queues','filter','UserProfile','getResources','findAndCountAll','rows','map','all','jayson/promise','../../components/parsers/qs','../../config/logger','../../mysqldb','client','http','offset','undefined','count','limit','status','json','error','name','request','Agents','result','Unable\x20to\x20retrieve\x20RPC\x20agents\x20(Routing)','catch','startCase','then','format','Unable\x20to\x20retrieve\x20RPC\x20%s\x20queues','VoiceQueuesChannels','Unable\x20to\x20retrieve\x20voice\x20queues\x20channels','loggedIn','paused','voice','outbound','push','pTalking','originated','message','dialActive'];(function(_0x4954ac,_0x27cce7){var _0x2cd669=function(_0x565eca){while(--_0x565eca){_0x4954ac['push'](_0x4954ac['shift']());}};_0x2cd669(++_0x27cce7);}(_0xd1ed,0x1c8));var _0xdd1e=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xd1ed[_0x3dd15e];return _0x231fd0;};'use strict';var util=require('util');var _=require('lodash');var jayson=require(_0xdd1e('0x0'));var qs=require(_0xdd1e('0x1'));var logger=require(_0xdd1e('0x2'))('api');var db=require(_0xdd1e('0x3'))['db'];var amiClient=jayson[_0xdd1e('0x4')][_0xdd1e('0x5')]({'port':0x232a});var routingClient=jayson[_0xdd1e('0x4')][_0xdd1e('0x5')]({'port':0x232c});function respondWithFilteredResult(_0x3bbc7d,_0x2ab015){return function(_0x160f33){if(_0x160f33){var _0x13cc1d=typeof _0x2ab015[_0xdd1e('0x6')]===_0xdd1e('0x7')&&typeof _0x2ab015['limit']==='undefined';var _0x26a7e1=_0x160f33[_0xdd1e('0x8')];var _0x499fb4=_0x13cc1d?0x0:_0x2ab015[_0xdd1e('0x6')];var _0x8f29d5=_0x13cc1d?_0x160f33['count']:_0x2ab015['offset']+_0x2ab015[_0xdd1e('0x9')];var _0x2ce5c4;if(_0x8f29d5>=_0x26a7e1){_0x8f29d5=_0x26a7e1;_0x2ce5c4=0xc8;}else{_0x2ce5c4=0xce;}_0x3bbc7d[_0xdd1e('0xa')](_0x2ce5c4);return _0x3bbc7d['set']('Content-Range',_0x499fb4+'-'+_0x8f29d5+'/'+_0x26a7e1)[_0xdd1e('0xb')](_0x160f33);}return null;};}function handleError(_0x5ce1cf,_0x346d39){_0x346d39=_0x346d39||0x1f4;return function(_0x278b7d){logger[_0xdd1e('0xc')](_0x278b7d['stack']);if(_0x278b7d[_0xdd1e('0xd')]){delete _0x278b7d[_0xdd1e('0xd')];}_0x5ce1cf[_0xdd1e('0xa')](_0x346d39)['send'](_0x278b7d);};}function getRealtimeAgents(){return new Promise(function(_0x177dea,_0x457526){return amiClient[_0xdd1e('0xe')](_0xdd1e('0xf'),{})['then'](function(_0x3ca8d8){if(_0x3ca8d8[_0xdd1e('0xc')])throw new Error('Unable\x20to\x20retrieve\x20RPC\x20agents\x20(AMI)');var _0x378bd8=_0x3ca8d8[_0xdd1e('0x10')];return routingClient[_0xdd1e('0xe')]('Agents',{})['then'](function(_0x480e91){if(_0x480e91['error'])throw new Error(_0xdd1e('0x11'));var _0x4fc218=_0x480e91[_0xdd1e('0x10')];return _0x177dea(_['merge']({},_0x378bd8,_0x4fc218));});})[_0xdd1e('0x12')](function(_0x11dc87){_0x457526(_0x11dc87);});});}function getRealtimeQueues(_0x1c8c2a,_0x3cd05e){return new Promise(function(_0x373fa2,_0x4c5e24){var _0x88771c=_0x3cd05e==='voice'?amiClient:routingClient;return _0x88771c[_0xdd1e('0xe')](_[_0xdd1e('0x13')](_0x3cd05e)+'Queues',_0x1c8c2a)[_0xdd1e('0x14')](function(_0x2e42d0){if(_0x2e42d0[_0xdd1e('0xc')])throw new Error(util[_0xdd1e('0x15')](_0xdd1e('0x16'),_0x3cd05e));return _0x373fa2(_0x2e42d0[_0xdd1e('0x10')]);})[_0xdd1e('0x12')](function(_0x9a1224){_0x4c5e24(_0x9a1224);});});}function getRealtimeVoiceQueueChannels(){return new Promise(function(_0x1d8238,_0x5b80d1){return amiClient[_0xdd1e('0xe')](_0xdd1e('0x17'),{})['then'](function(_0x4a462e){if(_0x4a462e[_0xdd1e('0xc')])throw new Error(_0xdd1e('0x18'));return _0x1d8238(_0x4a462e[_0xdd1e('0x10')]);})[_0xdd1e('0x12')](function(_0x4b9a86){_0x5b80d1(_0x4b9a86);});});}function initializeQueues(_0x138037,_0x4670fa,_0x2cd77f,_0x45971f){var _0x19a3b2=[_0xdd1e('0x19'),'available','waiting','talking',_0xdd1e('0x1a')];if(_0x2cd77f===_0xdd1e('0x1b')&&_0x45971f===_0xdd1e('0x1c')){_0x19a3b2[_0xdd1e('0x1d')](_0xdd1e('0x1e'),_0xdd1e('0x1f'),_0xdd1e('0x20'),_0xdd1e('0x21'),_0xdd1e('0x22'),_0xdd1e('0x23'),_0xdd1e('0x24'),'startProgressive',_0xdd1e('0x25'),_0xdd1e('0x26'),'erlangAbandonmentRate',_0xdd1e('0x27'),'dialPredictiveInterval','dialPredictiveIntervalMaxThreshold',_0xdd1e('0x28'),_0xdd1e('0x29'),_0xdd1e('0x2a'),'predictiveIntervalAnsweredCalls',_0xdd1e('0x2b'),_0xdd1e('0x2c'),_0xdd1e('0x2d'),_0xdd1e('0x2e'));}return _0x138037['map'](function(_0x161a76){var _0x526e3a=_0x161a76[_0xdd1e('0x2f')]({'plain':!![]});_0x526e3a[_0xdd1e('0x30')]=[];_0x526e3a[_0xdd1e('0x1a')]=0x0;_0x526e3a[_0xdd1e('0x31')]=0x0;_0x526e3a[_0xdd1e('0x19')]=0x0;_0x526e3a['available']=0x0;_0x526e3a[_0xdd1e('0x32')]=0x0;if(_0x2cd77f==='voice'){_0x526e3a[_0xdd1e('0x33')]=0x0;_0x526e3a['busy']=0x0;if(_0x45971f===_0xdd1e('0x1c')){_0x526e3a['pTalking']=0x0;_0x526e3a['originated']=0x0;}}var _0x19d29b=_[_0xdd1e('0x34')](_0x4670fa,['id',_0x526e3a['id']]);if(_0x19d29b)_[_0xdd1e('0x35')](_0x526e3a,_[_0xdd1e('0x36')](_0x19d29b,_0x19a3b2));return _0x526e3a;});}function updateAgentVoiceStatus(_0x3cc2f1,_0x121f19,_0x5f13e1){var _0x352ce1=_['filter'](_0x5f13e1,[_0xdd1e('0x37'),_0x121f19[_0xdd1e('0xd')]]);if(_0x352ce1[_0xdd1e('0x38')]===0x0)return _0x3cc2f1['busy']=!![];if(_['some'](_0x352ce1,['connectedlinenum',_0x3cc2f1[_0xdd1e('0x39')][_0xdd1e('0x3a')]()]))return _0x3cc2f1[_0xdd1e('0x33')]=!![];if(!_0x3cc2f1[_0xdd1e('0x33')])return _0x3cc2f1[_0xdd1e('0x3b')]=!![];}function getVoiceQueueAgents(_0x41c210,_0x59cfac,_0xc6ea1d,_0x4f8496){var _0x38eb76=_[_0xdd1e('0x34')](_0x59cfac,['id',_0x41c210['id']]);if(!_0x38eb76)return _0x41c210;return _0x38eb76[_0xdd1e('0x3c')]({'raw':!![]})[_0xdd1e('0x14')](function(_0x5c639f){for(var _0x222544=0x0;_0x222544<_0x5c639f[_0xdd1e('0x38')];_0x222544++){var _0x49a457=_['find'](_0xc6ea1d,['id',_0x5c639f[_0x222544][_0xdd1e('0x3d')]]);if(!_0x49a457){_0x49a457={'id':_0x5c639f[_0x222544]['UserId'],'name':_0x5c639f[_0x222544]['UserId'],'accountcode':'','online':![]};}var _0x21fea5={'id':_0x49a457['id'],'name':_0x49a457[_0xdd1e('0xd')],'internal':_0x49a457[_0xdd1e('0x3e')],'online':Boolean(_0x49a457[_0xdd1e('0x3f')]),'paused':Boolean(_0x5c639f[_0x222544][_0xdd1e('0x1a')])};if(_0x49a457[_0xdd1e('0x40')]===_0xdd1e('0x33'))updateAgentVoiceStatus(_0x21fea5,_0x41c210,_0x4f8496);if(_0x21fea5[_0xdd1e('0x3f')])_0x41c210['loggedInDb']++;if(_0x21fea5[_0xdd1e('0x3b')])_0x41c210[_0xdd1e('0x3b')]++;if(_0x21fea5[_0xdd1e('0x1a')]&&!_0x21fea5[_0xdd1e('0x3b')]&&!_0x21fea5[_0xdd1e('0x33')])_0x41c210['paused']++;_0x41c210['agents']['push'](_0x21fea5);}return _0x41c210;});}function getQueueAgents(_0x5d8d69,_0x231f07,_0x412cd2){var _0x3d3c2e=_0xdd1e('0x41')+_[_0xdd1e('0x13')](_0x412cd2)+_0xdd1e('0x42');var _0x2fbc77=_0x412cd2+'Pause';return db[_0x3d3c2e][_0xdd1e('0x43')]({'where':{[_['startCase'](_0x412cd2)+_0xdd1e('0x44')]:_0x5d8d69['id']},'raw':!![]})[_0xdd1e('0x14')](function(_0x11c3f2){for(var _0x374027=0x0;_0x374027<_0x11c3f2[_0xdd1e('0x38')];_0x374027++){var _0x1baa6f=_[_0xdd1e('0x34')](_0x231f07,['id',_0x11c3f2[_0x374027][_0xdd1e('0x3d')]]);if(!_0x1baa6f){_0x1baa6f={'id':_0x11c3f2[_0x374027][_0xdd1e('0x3d')],'name':_0x11c3f2[_0x374027][_0xdd1e('0x3d')],'online':![],['pauseField']:![]};}var _0x40e0eb={'id':_0x1baa6f['id'],'name':_0x1baa6f[_0xdd1e('0xd')],'online':Boolean(_0x1baa6f[_0xdd1e('0x3f')]),'paused':Boolean(_0x1baa6f[_0x2fbc77])};if(_0x40e0eb[_0xdd1e('0x3f')])_0x5d8d69[_0xdd1e('0x31')]++;_0x5d8d69[_0xdd1e('0x30')][_0xdd1e('0x1d')](_0x40e0eb);}return _0x5d8d69;});}exports[_0xdd1e('0x45')]=function(_0x18c9c2,_0x3e2d1d){var _0x5bba7d=[_0xdd1e('0x46'),_0xdd1e('0x47'),_0xdd1e('0x48'),_0xdd1e('0x49'),_0xdd1e('0x4a'),_0xdd1e('0x4b'),_0xdd1e('0x1b')];var _0x3f5e84={'count':0x0,'rows':[]},_0x39985a={},_0x5111f8,_0x18050e,_0x41b010,_0x3086a2,_0x13ba2c;Promise[_0xdd1e('0x4c')]()[_0xdd1e('0x14')](function(){if(_0x18c9c2[_0xdd1e('0x4d')][_0xdd1e('0x4e')]){if(!_[_0xdd1e('0x4f')](_0x5bba7d,_0x18c9c2[_0xdd1e('0x4d')][_0xdd1e('0x4e')]['toLowerCase']()))throw new Error(_0xdd1e('0x50'));_0x5111f8=_0x18c9c2[_0xdd1e('0x4d')][_0xdd1e('0x4e')]['toLowerCase']();}var _0x1a2c1f=_['startCase'](_0x5111f8)+_0xdd1e('0x42');var _0x41a6fa=_['map'](db[_0x1a2c1f][_0xdd1e('0x51')],function(_0x2a65bf){return{'name':_0x2a65bf[_0xdd1e('0x52')],'type':_0x2a65bf[_0xdd1e('0x53')][_0xdd1e('0x54')]};});_0x39985a=qs[_0xdd1e('0x55')](_0x41a6fa,_0x18c9c2);if(_0x18c9c2[_0xdd1e('0x56')][_0xdd1e('0x57')]===_0xdd1e('0x56')){var _0x33c10b={'params':{'id':_0x18c9c2[_0xdd1e('0x56')][_0xdd1e('0x58')]},'query':{'section':_0x5111f8===_0xdd1e('0x1b')&&_0x18c9c2['query'][_0xdd1e('0x53')]===_0xdd1e('0x1c')?_0xdd1e('0x59'):_['startCase'](_0x5111f8)+_0xdd1e('0x5a'),'type':_0x18c9c2[_0xdd1e('0x4d')][_0xdd1e('0x53')],'nolimit':!![],'sort':_0xdd1e('0xd'),'filter':_0x18c9c2[_0xdd1e('0x4d')][_0xdd1e('0x5b')]}};return db[_0xdd1e('0x5c')][_0xdd1e('0x5d')](_0x33c10b);}return db[_0x1a2c1f][_0xdd1e('0x5e')](_0x39985a);})['then'](function(_0x315299){_0x3f5e84['count']=_0x315299[_0xdd1e('0x8')];_0x18050e=_0x315299[_0xdd1e('0x5f')];return getRealtimeQueues(_0x18c9c2,_0x5111f8);})[_0xdd1e('0x14')](function(_0x5714c1){_0x3086a2=_0x5714c1[_0xdd1e('0x5f')];return getRealtimeAgents();})[_0xdd1e('0x14')](function(_0x40a94a){_0x41b010=_0x40a94a[_0xdd1e('0x5f')];if(_0x5111f8!=_0xdd1e('0x1b'))return;return getRealtimeVoiceQueueChannels();})[_0xdd1e('0x14')](function(_0x41b6d6){_0x13ba2c=_0x41b6d6?_0x41b6d6[_0xdd1e('0x5f')]:[];return initializeQueues(_0x18050e,_0x3086a2,_0x5111f8,_0x18c9c2[_0xdd1e('0x4d')][_0xdd1e('0x53')]);})['then'](function(_0x3e5d08){var _0x1cab2c=_0x3e5d08[_0xdd1e('0x60')](function(_0x492738){if(_0x5111f8==='voice')return getVoiceQueueAgents(_0x492738,_0x18050e,_0x41b010,_0x13ba2c);else return getQueueAgents(_0x492738,_0x41b010,_0x5111f8);});return Promise[_0xdd1e('0x61')](_0x1cab2c);})[_0xdd1e('0x14')](function(_0x1e3d5e){_0x3f5e84[_0xdd1e('0x5f')]=_0x1e3d5e;return _0x3f5e84;})['then'](respondWithFilteredResult(_0x3e2d1d,_0x39985a))[_0xdd1e('0x12')](handleError(_0x3e2d1d,null));};
\ No newline at end of file
+var _0x5d58=['Queues','filter','UserProfile','getResources','findAndCountAll','count','error','format','result','available','waiting','paused','push','pTalking','originated','message','Trunk','startPredictive','startProgressive','erlangCalls','erlangCallToSecond','erlangAbandonmentRate','erlangBusyFactor','dialPredictiveInterval','dialPredictiveIntervalMaxThreshold','predictiveIntervalTotalCalls','predictiveIntervalAnsweredCalls','predictiveIntervalDroppedCallsTimeout','predictiveIntervalDroppedCallsCallersExit','predictiveIntervalAvgHoldtime','predictiveIntervalAvgTalktime','rows','get','loggedIn','talking','outbound','find','merge','pick','online','getMembers','UserId','agents','User','Queue','Pause','findAll','QueueId','agent','loggedInDb','all','api','../../mysqldb','http','client','undefined','limit','offset','status','set','Content-Range','json','name','send','getQueues','mail','chat','sms','openchannel','fax','whatsapp','voice','resolve','then','query','channel','includes','toLowerCase','startCase','map','type','key','user','userProfileId','QueueCampaigns'];(function(_0x53e6db,_0x471c0d){var _0x1df0f3=function(_0x130fa4){while(--_0x130fa4){_0x53e6db['push'](_0x53e6db['shift']());}};_0x1df0f3(++_0x471c0d);}(_0x5d58,0x187));var _0x85d5=function(_0xa599cf,_0x35feec){_0xa599cf=_0xa599cf-0x0;var _0x383ef5=_0x5d58[_0xa599cf];return _0x383ef5;};'use strict';var util=require('util');var _=require('lodash');var jayson=require('jayson/promise');var qs=require('../../components/parsers/qs');var logger=require('../../config/logger')(_0x85d5('0x0'));var db=require(_0x85d5('0x1'))['db'];var client=jayson['client'][_0x85d5('0x2')]({'port':0x232a});var routingClient=jayson[_0x85d5('0x3')]['http']({'port':0x232c});function respondWithFilteredResult(_0x1eb211,_0x2d457a){return function(_0x578fad){if(_0x578fad){var _0x46e7b4=typeof _0x2d457a['offset']===_0x85d5('0x4')&&typeof _0x2d457a[_0x85d5('0x5')]==='undefined';var _0x4326a8=_0x578fad['count'];var _0x1098be=_0x46e7b4?0x0:_0x2d457a[_0x85d5('0x6')];var _0x258f0c=_0x46e7b4?_0x578fad['count']:_0x2d457a['offset']+_0x2d457a['limit'];var _0x1a2b82;if(_0x258f0c>=_0x4326a8){_0x258f0c=_0x4326a8;_0x1a2b82=0xc8;}else{_0x1a2b82=0xce;}_0x1eb211[_0x85d5('0x7')](_0x1a2b82);return _0x1eb211[_0x85d5('0x8')](_0x85d5('0x9'),_0x1098be+'-'+_0x258f0c+'/'+_0x4326a8)[_0x85d5('0xa')](_0x578fad);}return null;};}function handleError(_0x18331f,_0x31409d){_0x31409d=_0x31409d||0x1f4;return function(_0x5897af){logger['error'](_0x5897af['stack']);if(_0x5897af[_0x85d5('0xb')]){delete _0x5897af[_0x85d5('0xb')];}_0x18331f[_0x85d5('0x7')](_0x31409d)[_0x85d5('0xc')](_0x5897af);};}exports[_0x85d5('0xd')]=function(_0x44f702,_0x1545b4){var _0x586382=[_0x85d5('0xe'),_0x85d5('0xf'),_0x85d5('0x10'),_0x85d5('0x11'),_0x85d5('0x12'),_0x85d5('0x13'),_0x85d5('0x14')];var _0x12bef9={'count':0x0,'rows':[]},_0x17652b={},_0x17acb0;Promise[_0x85d5('0x15')]()[_0x85d5('0x16')](function(){if(_0x44f702[_0x85d5('0x17')][_0x85d5('0x18')]){if(!_[_0x85d5('0x19')](_0x586382,_0x44f702[_0x85d5('0x17')][_0x85d5('0x18')][_0x85d5('0x1a')]()))throw new Error('Invalid\x20channel');_0x17acb0=_0x44f702[_0x85d5('0x17')][_0x85d5('0x18')]['toLowerCase']();}var _0x231b57=_[_0x85d5('0x1b')](_0x17acb0)+'Queue';var _0x58290b=_[_0x85d5('0x1c')](db[_0x231b57]['rawAttributes'],function(_0x2f2bae){return{'name':_0x2f2bae['fieldName'],'type':_0x2f2bae[_0x85d5('0x1d')][_0x85d5('0x1e')]};});_0x17652b=qs['getOptions'](_0x58290b,_0x44f702);if(_0x44f702['user']['role']==='user'){var _0xf03669={'params':{'id':_0x44f702[_0x85d5('0x1f')][_0x85d5('0x20')]},'query':{'section':_0x17acb0===_0x85d5('0x14')&&_0x44f702[_0x85d5('0x17')][_0x85d5('0x1d')]==='outbound'?_0x85d5('0x21'):_['startCase'](_0x17acb0)+_0x85d5('0x22'),'type':_0x44f702[_0x85d5('0x17')][_0x85d5('0x1d')],'nolimit':!![],'sort':'name','filter':_0x44f702[_0x85d5('0x17')][_0x85d5('0x23')]}};return db[_0x85d5('0x24')][_0x85d5('0x25')](_0xf03669);}return db[_0x231b57][_0x85d5('0x26')](_0x17652b);})['then'](function(_0x1cbef1){_0x12bef9[_0x85d5('0x27')]=_0x1cbef1[_0x85d5('0x27')];var _0x22a961=_0x17acb0===_0x85d5('0x14')?client:routingClient;return _0x22a961['request'](_['startCase'](_0x17acb0)+_0x85d5('0x22'),_0x44f702)[_0x85d5('0x16')](function(_0x2d1157){if(_0x2d1157[_0x85d5('0x28')])throw new Error(util[_0x85d5('0x29')]('Unable\x20to\x20retrieve\x20RPC\x20%s\x20queues',_0x17acb0));var _0x3553c0=_0x2d1157[_0x85d5('0x2a')];var _0x5561dd=['loggedIn',_0x85d5('0x2b'),_0x85d5('0x2c'),'talking',_0x85d5('0x2d')];if(_0x17acb0==='voice'&&_0x44f702[_0x85d5('0x17')][_0x85d5('0x1d')]==='outbound'){_0x5561dd[_0x85d5('0x2e')](_0x85d5('0x2f'),_0x85d5('0x30'),_0x85d5('0x31'),'dialActive','dialMethod',_0x85d5('0x32'),_0x85d5('0x33'),_0x85d5('0x34'),_0x85d5('0x35'),_0x85d5('0x36'),_0x85d5('0x37'),_0x85d5('0x38'),_0x85d5('0x39'),_0x85d5('0x3a'),'dialPredictiveIntervalMinThreshold','predictiveIntervalAvailable',_0x85d5('0x3b'),_0x85d5('0x3c'),_0x85d5('0x3d'),_0x85d5('0x3e'),_0x85d5('0x3f'),_0x85d5('0x40'));}var _0x118a02=_0x1cbef1[_0x85d5('0x41')]['map'](function(_0x358555){var _0x42e8b4=_0x358555[_0x85d5('0x42')]({'plain':!![]});_0x42e8b4[_0x85d5('0x2d')]=0x0;_0x42e8b4['loggedInDb']=0x0;_0x42e8b4[_0x85d5('0x43')]=0x0;_0x42e8b4[_0x85d5('0x2b')]=0x0;_0x42e8b4[_0x85d5('0x2d')]=0x0;_0x42e8b4[_0x85d5('0x2c')]=0x0;if(_0x17acb0==='voice'){_0x42e8b4[_0x85d5('0x44')]=0x0;if(_0x44f702['query']['type']===_0x85d5('0x45')){_0x42e8b4['pTalking']=0x0;_0x42e8b4[_0x85d5('0x30')]=0x0;}}_0x42e8b4['agents']=[];var _0x56f3de=_[_0x85d5('0x46')](_0x3553c0[_0x85d5('0x41')],['id',_0x42e8b4['id']]);if(_0x56f3de)_[_0x85d5('0x47')](_0x42e8b4,_[_0x85d5('0x48')](_0x56f3de,_0x5561dd));if(_0x17acb0===_0x85d5('0x14')){return _0x358555['getAgents']({'attributes':['id','name',_0x85d5('0x49')],'joinTableAttributes':[],'raw':!![]})[_0x85d5('0x16')](function(_0x285465){return _0x358555[_0x85d5('0x4a')]({'raw':!![]})[_0x85d5('0x16')](function(_0x139872){for(var _0x544783=0x0;_0x544783<_0x285465['length'];_0x544783++){var _0x55cf7b=_['find'](_0x139872,[_0x85d5('0x4b'),_0x285465[_0x544783]['id']]);var _0x18e94d={'id':_0x285465[_0x544783]['id'],'name':_0x285465[_0x544783][_0x85d5('0xb')],'online':Boolean(_0x285465[_0x544783][_0x85d5('0x49')]),'paused':_0x55cf7b?Boolean(_0x55cf7b[_0x85d5('0x2d')]):![]};if(_0x18e94d['online'])_0x42e8b4['loggedInDb']++;if(_0x18e94d[_0x85d5('0x2d')])_0x42e8b4[_0x85d5('0x2d')]++;_0x42e8b4[_0x85d5('0x4c')][_0x85d5('0x2e')](_0x18e94d);}return _0x42e8b4;});});}else{var _0x2fe3e0=_0x85d5('0x4d')+_[_0x85d5('0x1b')](_0x17acb0)+_0x85d5('0x4e');var _0x43f4c4=_0x17acb0+_0x85d5('0x4f');return db[_0x2fe3e0][_0x85d5('0x50')]({'where':{[_[_0x85d5('0x1b')](_0x17acb0)+_0x85d5('0x51')]:_0x358555['id']},'raw':!![]})[_0x85d5('0x16')](function(_0x344927){return db[_0x85d5('0x4d')][_0x85d5('0x50')]({'attributes':['id','name','online',_0x43f4c4],'where':{'id':_[_0x85d5('0x1c')](_0x344927,_0x85d5('0x4b')),'role':_0x85d5('0x52')},'raw':!![]});})[_0x85d5('0x16')](function(_0x2e78f8){for(var _0xe34edd=0x0;_0xe34edd<_0x2e78f8['length'];_0xe34edd++){var _0x1188f2={'id':_0x2e78f8[_0xe34edd]['id'],'name':_0x2e78f8[_0xe34edd]['name'],'online':Boolean(_0x2e78f8[_0xe34edd]['online']),'paused':Boolean(_0x2e78f8[_0xe34edd][_0x43f4c4])};if(_0x1188f2[_0x85d5('0x49')])_0x42e8b4[_0x85d5('0x53')]++;if(_0x1188f2[_0x85d5('0x2d')])_0x42e8b4[_0x85d5('0x2d')]++;_0x42e8b4[_0x85d5('0x4c')]['push'](_0x1188f2);}return _0x42e8b4;});}});return Promise[_0x85d5('0x54')](_0x118a02);});})['then'](function(_0x1f2ef9){_0x12bef9[_0x85d5('0x41')]=_0x1f2ef9;return _0x12bef9;})[_0x85d5('0x16')](respondWithFilteredResult(_0x1545b4,_0x17652b))['catch'](handleError(_0x1545b4,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['../../components/interaction/service','../../config/environment','exports','multer','util','path','Router','../../components/auth/service'];(function(_0x3945f4,_0x2da4ad){var _0x2a1633=function(_0x4e31a5){while(--_0x4e31a5){_0x3945f4['push'](_0x3945f4['shift']());}};_0x2a1633(++_0x2da4ad);}(_0xa9e0,0x123));var _0x0a9e=function(_0xa1e3e3,_0x29fe0e){_0xa1e3e3=_0xa1e3e3-0x0;var _0xc980e9=_0xa9e0[_0xa1e3e3];return _0xc980e9;};'use strict';var multer=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var path=require(_0x0a9e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x0a9e('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x0a9e('0x4'));var interaction=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));module[_0x0a9e('0x7')]=router;
\ No newline at end of file
+var _0x70e0=['../../components/auth/service','../../components/interaction/service','exports','multer','util','path','Router','fs-extra'];(function(_0x3de8ca,_0x1f3ee1){var _0x48eeb1=function(_0x1b2dd9){while(--_0x1b2dd9){_0x3de8ca['push'](_0x3de8ca['shift']());}};_0x48eeb1(++_0x1f3ee1);}(_0x70e0,0x17b));var _0x070e=function(_0x4725b2,_0x5b1b6a){_0x4725b2=_0x4725b2-0x0;var _0x13b43b=_0x70e0[_0x4725b2];return _0x13b43b;};'use strict';var multer=require(_0x070e('0x0'));var util=require(_0x070e('0x1'));var path=require(_0x070e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x070e('0x3')]();var fs_extra=require(_0x070e('0x4'));var auth=require(_0x070e('0x5'));var interaction=require(_0x070e('0x6'));var config=require('../../config/environment');module[_0x070e('0x7')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8ff3=['STRING','DATE','sequelize','exports'];(function(_0x5725e1,_0x49be96){var _0x387730=function(_0x19b210){while(--_0x19b210){_0x5725e1['push'](_0x5725e1['shift']());}};_0x387730(++_0x49be96);}(_0x8ff3,0x72));var _0x38ff=function(_0x7b28fe,_0x14b077){_0x7b28fe=_0x7b28fe-0x0;var _0x3eea1b=_0x8ff3[_0x7b28fe];return _0x3eea1b;};'use strict';var Sequelize=require(_0x38ff('0x0'));module[_0x38ff('0x1')]={'state':{'type':Sequelize['INTEGER'](0x2)},'statedesc':{'type':Sequelize[_0x38ff('0x2')]},'scheduledat':{'type':Sequelize[_0x38ff('0x3')]},'uniqueid':{'type':Sequelize[_0x38ff('0x2')]},'starttime':{'type':Sequelize[_0x38ff('0x3')]},'responsetime':{'type':Sequelize[_0x38ff('0x3')]},'ringtime':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'campaign':{'type':Sequelize['STRING']},'campaigntype':{'type':Sequelize[_0x38ff('0x2')]},'membername':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0xf693=['DATE','exports','INTEGER','STRING'];(function(_0x24ebb7,_0x3fe41c){var _0x3d1037=function(_0x224953){while(--_0x224953){_0x24ebb7['push'](_0x24ebb7['shift']());}};_0x3d1037(++_0x3fe41c);}(_0xf693,0x181));var _0x3f69=function(_0x6d44ac,_0x368c05){_0x6d44ac=_0x6d44ac-0x0;var _0x52a6a6=_0xf693[_0x6d44ac];return _0x52a6a6;};'use strict';var Sequelize=require('sequelize');module[_0x3f69('0x0')]={'state':{'type':Sequelize[_0x3f69('0x1')](0x2)},'statedesc':{'type':Sequelize[_0x3f69('0x2')]},'scheduledat':{'type':Sequelize[_0x3f69('0x3')]},'uniqueid':{'type':Sequelize[_0x3f69('0x2')]},'starttime':{'type':Sequelize[_0x3f69('0x3')]},'responsetime':{'type':Sequelize[_0x3f69('0x3')]},'ringtime':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'campaign':{'type':Sequelize[_0x3f69('0x2')]},'campaigntype':{'type':Sequelize[_0x3f69('0x2')]},'membername':{'type':Sequelize[_0x3f69('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8722=['moment','path','../../config/environment','./reportAgentPreview.attributes','define','ReportAgentPreview','report_agent_preview','lodash','util','api'];(function(_0x2d60b3,_0x4ad866){var _0xd1dd56=function(_0x2fd84e){while(--_0x2fd84e){_0x2d60b3['push'](_0x2d60b3['shift']());}};_0xd1dd56(++_0x4ad866);}(_0x8722,0x129));var _0x2872=function(_0x135eb4,_0x5d00cf){_0x135eb4=_0x135eb4-0x0;var _0x3ac25d=_0x8722[_0x135eb4];return _0x3ac25d;};'use strict';var _=require(_0x2872('0x0'));var util=require(_0x2872('0x1'));var logger=require('../../config/logger')(_0x2872('0x2'));var moment=require(_0x2872('0x3'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0x2872('0x4'));var rimraf=require('rimraf');var config=require(_0x2872('0x5'));var attributes=require(_0x2872('0x6'));module['exports']=function(_0x36763d,_0x4f4621){return _0x36763d[_0x2872('0x7')](_0x2872('0x8'),attributes,{'tableName':_0x2872('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x00a0=['rimraf','../../config/environment','./reportAgentPreview.attributes','define','report_agent_preview','moment','bluebird','request-promise','path'];(function(_0x3eb4ea,_0x5528c7){var _0xa6e890=function(_0x52527b){while(--_0x52527b){_0x3eb4ea['push'](_0x3eb4ea['shift']());}};_0xa6e890(++_0x5528c7);}(_0x00a0,0x7a));var _0x000a=function(_0x2be8c2,_0x14a4b5){_0x2be8c2=_0x2be8c2-0x0;var _0x97f531=_0x00a0[_0x2be8c2];return _0x97f531;};'use strict';var _=require('lodash');var util=require('util');var logger=require('../../config/logger')('api');var moment=require(_0x000a('0x0'));var BPromise=require(_0x000a('0x1'));var rp=require(_0x000a('0x2'));var fs=require('fs');var path=require(_0x000a('0x3'));var rimraf=require(_0x000a('0x4'));var config=require(_0x000a('0x5'));var attributes=require(_0x000a('0x6'));module['exports']=function(_0x5ad173,_0x58f303){return _0x5ad173[_0x000a('0x7')]('ReportAgentPreview',attributes,{'tableName':_0x000a('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb0c8=['jayson/promise','client','http','then','ReportAgentPreview,\x20%s,\x20%s','request\x20sent','ReportAgentPreview,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','CreateReportAgentPreview','ReportAgentPreview','create','body','options','raw','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment'];(function(_0xefd519,_0xc62635){var _0x4bb882=function(_0x37e0a1){while(--_0x37e0a1){_0xefd519['push'](_0xefd519['shift']());}};_0x4bb882(++_0xc62635);}(_0xb0c8,0x6e));var _0x8b0c=function(_0x6af71c,_0x26f3d9){_0x6af71c=_0x6af71c-0x0;var _0x1ae421=_0xb0c8[_0x6af71c];return _0x1ae421;};'use strict';var _=require(_0x8b0c('0x0'));var util=require(_0x8b0c('0x1'));var moment=require(_0x8b0c('0x2'));var BPromise=require(_0x8b0c('0x3'));var rs=require(_0x8b0c('0x4'));var fs=require('fs');var Redis=require(_0x8b0c('0x5'));var db=require(_0x8b0c('0x6'))['db'];var utils=require(_0x8b0c('0x7'));var logger=require('../../config/logger')(_0x8b0c('0x8'));var config=require(_0x8b0c('0x9'));var jayson=require(_0x8b0c('0xa'));var client=jayson[_0x8b0c('0xb')][_0x8b0c('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x2561a1,_0x174a65,_0x571703){return new BPromise(function(_0x4b8a15,_0x263f81){return client['request'](_0x2561a1,_0x571703)[_0x8b0c('0xd')](function(_0x1b424c){logger['info'](_0x8b0c('0xe'),_0x174a65,_0x8b0c('0xf'));logger['debug'](_0x8b0c('0x10'),_0x174a65,_0x8b0c('0xf'),JSON[_0x8b0c('0x11')](_0x1b424c));if(_0x1b424c[_0x8b0c('0x12')]){if(_0x1b424c[_0x8b0c('0x12')][_0x8b0c('0x13')]===0x1f4){logger['error'](_0x8b0c('0xe'),_0x174a65,_0x1b424c[_0x8b0c('0x12')][_0x8b0c('0x14')]);return _0x263f81(_0x1b424c[_0x8b0c('0x12')]['message']);}logger[_0x8b0c('0x12')](_0x8b0c('0xe'),_0x174a65,_0x1b424c[_0x8b0c('0x12')][_0x8b0c('0x14')]);return _0x4b8a15(_0x1b424c[_0x8b0c('0x12')][_0x8b0c('0x14')]);}else{logger[_0x8b0c('0x15')]('ReportAgentPreview,\x20%s,\x20%s',_0x174a65,_0x8b0c('0xf'));_0x4b8a15(_0x1b424c[_0x8b0c('0x16')]['message']);}})[_0x8b0c('0x17')](function(_0x7a2d7f){logger[_0x8b0c('0x12')](_0x8b0c('0xe'),_0x174a65,_0x7a2d7f);_0x263f81(_0x7a2d7f);});});}exports[_0x8b0c('0x18')]=function(_0x3f33e7){var _0x33fedc=this;return new Promise(function(_0x135df5,_0x462c32){return db[_0x8b0c('0x19')][_0x8b0c('0x1a')](_0x3f33e7[_0x8b0c('0x1b')],{'raw':_0x3f33e7[_0x8b0c('0x1c')]?_0x3f33e7['options'][_0x8b0c('0x1d')]===undefined?!![]:![]:!![]})[_0x8b0c('0xd')](function(_0x5aa9e9){logger['info']('CreateReportAgentPreview',_0x3f33e7);logger['debug']('CreateReportAgentPreview',_0x3f33e7,JSON[_0x8b0c('0x11')](_0x5aa9e9));_0x135df5(_0x5aa9e9);})['catch'](function(_0x4f9d6d){logger[_0x8b0c('0x12')](_0x8b0c('0x18'),_0x4f9d6d[_0x8b0c('0x14')],_0x3f33e7);_0x462c32(_0x33fedc[_0x8b0c('0x12')](0x1f4,_0x4f9d6d[_0x8b0c('0x14')]));});});};
\ No newline at end of file
+var _0xb31f=['ReportAgentPreview,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','CreateReportAgentPreview','ReportAgentPreview','create','body','options','raw','debug','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','ReportAgentPreview,\x20%s,\x20%s','request\x20sent'];(function(_0x3a1cc8,_0x514e33){var _0x21cb98=function(_0x53c423){while(--_0x53c423){_0x3a1cc8['push'](_0x3a1cc8['shift']());}};_0x21cb98(++_0x514e33);}(_0xb31f,0x1ee));var _0xfb31=function(_0x37a9d7,_0x2b6fde){_0x37a9d7=_0x37a9d7-0x0;var _0x1343d3=_0xb31f[_0x37a9d7];return _0x1343d3;};'use strict';var _=require(_0xfb31('0x0'));var util=require(_0xfb31('0x1'));var moment=require(_0xfb31('0x2'));var BPromise=require('bluebird');var rs=require(_0xfb31('0x3'));var fs=require('fs');var Redis=require(_0xfb31('0x4'));var db=require(_0xfb31('0x5'))['db'];var utils=require(_0xfb31('0x6'));var logger=require(_0xfb31('0x7'))(_0xfb31('0x8'));var config=require(_0xfb31('0x9'));var jayson=require(_0xfb31('0xa'));var client=jayson[_0xfb31('0xb')][_0xfb31('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x1fe3c6,_0x42177d,_0x210810){return new BPromise(function(_0x55f8b0,_0x46376c){return client[_0xfb31('0xd')](_0x1fe3c6,_0x210810)['then'](function(_0x1d697f){logger['info'](_0xfb31('0xe'),_0x42177d,_0xfb31('0xf'));logger['debug'](_0xfb31('0x10'),_0x42177d,_0xfb31('0xf'),JSON[_0xfb31('0x11')](_0x1d697f));if(_0x1d697f[_0xfb31('0x12')]){if(_0x1d697f[_0xfb31('0x12')][_0xfb31('0x13')]===0x1f4){logger[_0xfb31('0x12')]('ReportAgentPreview,\x20%s,\x20%s',_0x42177d,_0x1d697f[_0xfb31('0x12')][_0xfb31('0x14')]);return _0x46376c(_0x1d697f['error']['message']);}logger[_0xfb31('0x12')]('ReportAgentPreview,\x20%s,\x20%s',_0x42177d,_0x1d697f[_0xfb31('0x12')][_0xfb31('0x14')]);return _0x55f8b0(_0x1d697f[_0xfb31('0x12')][_0xfb31('0x14')]);}else{logger[_0xfb31('0x15')]('ReportAgentPreview,\x20%s,\x20%s',_0x42177d,_0xfb31('0xf'));_0x55f8b0(_0x1d697f[_0xfb31('0x16')][_0xfb31('0x14')]);}})['catch'](function(_0x26af36){logger['error'](_0xfb31('0xe'),_0x42177d,_0x26af36);_0x46376c(_0x26af36);});});}exports[_0xfb31('0x17')]=function(_0x36f83d){var _0x34a720=this;return new Promise(function(_0x19be16,_0x42ff3e){return db[_0xfb31('0x18')][_0xfb31('0x19')](_0x36f83d[_0xfb31('0x1a')],{'raw':_0x36f83d['options']?_0x36f83d[_0xfb31('0x1b')][_0xfb31('0x1c')]===undefined?!![]:![]:!![]})['then'](function(_0x409b95){logger[_0xfb31('0x15')](_0xfb31('0x17'),_0x36f83d);logger[_0xfb31('0x1d')]('CreateReportAgentPreview',_0x36f83d,JSON[_0xfb31('0x11')](_0x409b95));_0x19be16(_0x409b95);})['catch'](function(_0x22f362){logger[_0xfb31('0x12')](_0xfb31('0x17'),_0x22f362['message'],_0x36f83d);_0x42ff3e(_0x34a720[_0xfb31('0x12')](0x1f4,_0x22f362['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc585=['/chat/queues/waitinginteractions','/mail/queues/waitinginteractions','mailQueuesWaitingInteractions','/openchannel/queues/waitinginteractions','openchannelQueuesWaitingInteractions','/openchannel/queues/:id/waitinginteractions','openchannelQueuesIdWaitingInteractions','/whatsapp/queues/waitinginteractions','whatsappQueuesWaitingInteractions','post','/mail/queues/:id/notify','queueNotify','/chat/queues/:id/notify','chat','/chat/queues/:id','showChatQueues','/fax/queues/:id/notify','fax','/fax/queues/:id','openchannel','/openchannel/queues/:id','sms','/whatsapp/queues/:id/notify','whatsapp','/sms/queues/:id','showSmsQueues','/whatsapp/queues/:id','showWhatsappQueues','/agents/:id/notify','agentNotify','exports','multer','util','express','Router','../../components/auth/service','./rpc.controller','get','/voice/channels','isAuthenticated','voiceChannels','/voice/channels/:uniqueid/mixmonitor','/voice/channels/:uniqueid/stopmixmonitor','voiceQueues','/chat/queues','chatQueues','mailQueues','mailAccounts','openchannelQueues','/sms/queues','smsQueues','/whatsapp/queues','whatsappQueues','/fax/queues','faxQueues','/voice/queues/preview/:id','voiceQueuesPreview','/voice/queues/channels','voiceQueuesChannels','/voice/queues/channels/:uniqueid','voiceQueuesChannel','voiceQueuesChannelHangup','voiceQueuesChannelRedirect','/voice/queues/:id','showVoiceQueues','put','updateVoiceQueue','/outbound','outbound','/outbound/channels','agents','agentCapacity','/telephones','/trunks','trunks','/campaigns','campaigns','/fax/accounts'];(function(_0x59dbfc,_0x5a7136){var _0x14bb78=function(_0x588f42){while(--_0x588f42){_0x59dbfc['push'](_0x59dbfc['shift']());}};_0x14bb78(++_0x5a7136);}(_0xc585,0x157));var _0x5c58=function(_0x2316c5,_0x34870b){_0x2316c5=_0x2316c5-0x0;var _0x11b909=_0xc585[_0x2316c5];return _0x11b909;};'use strict';var multer=require(_0x5c58('0x0'));var util=require(_0x5c58('0x1'));var path=require('path');var express=require(_0x5c58('0x2'));var router=express[_0x5c58('0x3')]();var auth=require(_0x5c58('0x4'));var controller=require(_0x5c58('0x5'));router[_0x5c58('0x6')](_0x5c58('0x7'),auth[_0x5c58('0x8')](),controller[_0x5c58('0x9')]);router[_0x5c58('0x6')](_0x5c58('0xa'),auth[_0x5c58('0x8')](),controller['voiceChannelMixMonitor']);router[_0x5c58('0x6')](_0x5c58('0xb'),auth[_0x5c58('0x8')](),controller['voiceChannelStopMixMonitor']);router[_0x5c58('0x6')]('/voice/queues',auth[_0x5c58('0x8')](),controller[_0x5c58('0xc')]);router[_0x5c58('0x6')](_0x5c58('0xd'),auth[_0x5c58('0x8')](),controller[_0x5c58('0xe')]);router[_0x5c58('0x6')]('/mail/queues',auth[_0x5c58('0x8')](),controller[_0x5c58('0xf')]);router[_0x5c58('0x6')]('/mail/accounts',auth[_0x5c58('0x8')](),controller[_0x5c58('0x10')]);router['get']('/openchannel/queues',auth[_0x5c58('0x8')](),controller[_0x5c58('0x11')]);router[_0x5c58('0x6')](_0x5c58('0x12'),auth[_0x5c58('0x8')](),controller[_0x5c58('0x13')]);router[_0x5c58('0x6')](_0x5c58('0x14'),auth[_0x5c58('0x8')](),controller[_0x5c58('0x15')]);router[_0x5c58('0x6')](_0x5c58('0x16'),auth['isAuthenticated'](),controller[_0x5c58('0x17')]);router[_0x5c58('0x6')](_0x5c58('0x18'),auth[_0x5c58('0x8')](),controller[_0x5c58('0x19')]);router[_0x5c58('0x6')](_0x5c58('0x1a'),auth[_0x5c58('0x8')](),controller[_0x5c58('0x1b')]);router[_0x5c58('0x6')](_0x5c58('0x1c'),auth['isAuthenticated'](),controller[_0x5c58('0x1d')]);router[_0x5c58('0x6')]('/voice/queues/channels/:uniqueid/hangup',auth[_0x5c58('0x8')](),controller[_0x5c58('0x1e')]);router[_0x5c58('0x6')]('/voice/queues/channels/:uniqueid/redirect/:exten',auth[_0x5c58('0x8')](),controller[_0x5c58('0x1f')]);router[_0x5c58('0x6')](_0x5c58('0x20'),auth[_0x5c58('0x8')](),controller[_0x5c58('0x21')]);router[_0x5c58('0x22')](_0x5c58('0x20'),auth['isAuthenticated'](),controller[_0x5c58('0x23')]);router[_0x5c58('0x6')](_0x5c58('0x24'),auth[_0x5c58('0x8')](),controller[_0x5c58('0x25')]);router[_0x5c58('0x6')](_0x5c58('0x26'),auth[_0x5c58('0x8')](),controller['outboundChannels']);router['get']('/agents',auth[_0x5c58('0x8')](),controller[_0x5c58('0x27')]);router['put']('/agents/:id/capacity',auth['isAuthenticated'](),controller[_0x5c58('0x28')]);router[_0x5c58('0x6')](_0x5c58('0x29'),auth[_0x5c58('0x8')](),controller['telephones']);router['get'](_0x5c58('0x2a'),auth['isAuthenticated'](),controller[_0x5c58('0x2b')]);router[_0x5c58('0x6')](_0x5c58('0x2c'),auth[_0x5c58('0x8')](),controller[_0x5c58('0x2d')]);router[_0x5c58('0x6')](_0x5c58('0x2e'),auth[_0x5c58('0x8')](),controller['faxAccounts']);router['get'](_0x5c58('0x2f'),auth['isAuthenticated'](),controller['chatQueuesWaitingInteractions']);router[_0x5c58('0x6')](_0x5c58('0x30'),auth['isAuthenticated'](),controller[_0x5c58('0x31')]);router[_0x5c58('0x6')](_0x5c58('0x32'),auth[_0x5c58('0x8')](),controller[_0x5c58('0x33')]);router['get'](_0x5c58('0x34'),auth[_0x5c58('0x8')](),controller[_0x5c58('0x35')]);router[_0x5c58('0x6')]('/sms/queues/waitinginteractions',auth[_0x5c58('0x8')](),controller['smsQueuesWaitingInteractions']);router[_0x5c58('0x6')](_0x5c58('0x36'),auth[_0x5c58('0x8')](),controller[_0x5c58('0x37')]);router[_0x5c58('0x6')]('/fax/queues/waitinginteractions',auth['isAuthenticated'](),controller['faxQueuesWaitingInteractions']);router[_0x5c58('0x38')](_0x5c58('0x39'),auth[_0x5c58('0x8')](),controller[_0x5c58('0x3a')]('mail'));router[_0x5c58('0x6')]('/mail/queues/:id',auth[_0x5c58('0x8')](),controller['showMailQueues']);router[_0x5c58('0x38')](_0x5c58('0x3b'),auth[_0x5c58('0x8')](),controller[_0x5c58('0x3a')](_0x5c58('0x3c')));router[_0x5c58('0x6')](_0x5c58('0x3d'),auth[_0x5c58('0x8')](),controller[_0x5c58('0x3e')]);router[_0x5c58('0x38')](_0x5c58('0x3f'),auth[_0x5c58('0x8')](),controller[_0x5c58('0x3a')](_0x5c58('0x40')));router[_0x5c58('0x6')](_0x5c58('0x41'),auth[_0x5c58('0x8')](),controller['showFaxQueues']);router[_0x5c58('0x38')]('/openchannel/queues/:id/notify',auth['isAuthenticated'](),controller[_0x5c58('0x3a')](_0x5c58('0x42')));router[_0x5c58('0x6')](_0x5c58('0x43'),auth[_0x5c58('0x8')](),controller['showOpenchannelQueues']);router[_0x5c58('0x38')]('/sms/queues/:id/notify',auth[_0x5c58('0x8')](),controller[_0x5c58('0x3a')](_0x5c58('0x44')));router[_0x5c58('0x38')](_0x5c58('0x45'),auth['isAuthenticated'](),controller[_0x5c58('0x3a')](_0x5c58('0x46')));router[_0x5c58('0x6')](_0x5c58('0x47'),auth[_0x5c58('0x8')](),controller[_0x5c58('0x48')]);router[_0x5c58('0x6')](_0x5c58('0x49'),auth['isAuthenticated'](),controller[_0x5c58('0x4a')]);router['post'](_0x5c58('0x4b'),auth[_0x5c58('0x8')](),controller[_0x5c58('0x4c')]);module[_0x5c58('0x4d')]=router;
\ No newline at end of file
+var _0x829e=['/openchannel/queues/:id/waitinginteractions','openchannelQueuesIdWaitingInteractions','smsQueuesWaitingInteractions','faxQueuesWaitingInteractions','post','queueNotify','/mail/queues/:id','showMailQueues','/chat/queues/:id','showChatQueues','/fax/queues/:id/notify','fax','/fax/queues/:id','showFaxQueues','/openchannel/queues/:id/notify','openchannel','showOpenchannelQueues','/sms/queues/:id/notify','sms','whatsapp','/sms/queues/:id','showWhatsappQueues','agentNotify','exports','multer','util','path','express','Router','./rpc.controller','/voice/channels','isAuthenticated','voiceChannels','/voice/channels/:uniqueid/mixmonitor','get','voiceChannelStopMixMonitor','/chat/queues','/mail/queues','/mail/accounts','mailAccounts','/openchannel/queues','/sms/queues','smsQueues','/whatsapp/queues','whatsappQueues','faxQueues','voiceQueuesPreview','/voice/queues/channels','voiceQueuesChannels','voiceQueuesChannel','/voice/queues/channels/:uniqueid/hangup','/voice/queues/channels/:uniqueid/redirect/:exten','voiceQueuesChannelRedirect','/voice/queues/:id','/outbound','outbound','outboundChannels','/agents','agents','put','/agents/:id/capacity','/telephones','telephones','/trunks','trunks','/campaigns','campaigns','/fax/accounts','faxAccounts','chatQueuesWaitingInteractions','/mail/queues/waitinginteractions','/openchannel/queues/waitinginteractions','openchannelQueuesWaitingInteractions'];(function(_0x408943,_0x5a7cd9){var _0x58978d=function(_0x5e28f9){while(--_0x5e28f9){_0x408943['push'](_0x408943['shift']());}};_0x58978d(++_0x5a7cd9);}(_0x829e,0xaa));var _0xe829=function(_0x2a67a0,_0x4c8ae8){_0x2a67a0=_0x2a67a0-0x0;var _0xd3fadc=_0x829e[_0x2a67a0];return _0xd3fadc;};'use strict';var multer=require(_0xe829('0x0'));var util=require(_0xe829('0x1'));var path=require(_0xe829('0x2'));var express=require(_0xe829('0x3'));var router=express[_0xe829('0x4')]();var auth=require('../../components/auth/service');var controller=require(_0xe829('0x5'));router['get'](_0xe829('0x6'),auth[_0xe829('0x7')](),controller[_0xe829('0x8')]);router['get'](_0xe829('0x9'),auth['isAuthenticated'](),controller['voiceChannelMixMonitor']);router[_0xe829('0xa')]('/voice/channels/:uniqueid/stopmixmonitor',auth[_0xe829('0x7')](),controller[_0xe829('0xb')]);router['get']('/voice/queues',auth[_0xe829('0x7')](),controller['voiceQueues']);router[_0xe829('0xa')](_0xe829('0xc'),auth['isAuthenticated'](),controller['chatQueues']);router['get'](_0xe829('0xd'),auth['isAuthenticated'](),controller['mailQueues']);router[_0xe829('0xa')](_0xe829('0xe'),auth['isAuthenticated'](),controller[_0xe829('0xf')]);router[_0xe829('0xa')](_0xe829('0x10'),auth[_0xe829('0x7')](),controller['openchannelQueues']);router[_0xe829('0xa')](_0xe829('0x11'),auth['isAuthenticated'](),controller[_0xe829('0x12')]);router[_0xe829('0xa')](_0xe829('0x13'),auth[_0xe829('0x7')](),controller[_0xe829('0x14')]);router['get']('/fax/queues',auth[_0xe829('0x7')](),controller[_0xe829('0x15')]);router[_0xe829('0xa')]('/voice/queues/preview/:id',auth[_0xe829('0x7')](),controller[_0xe829('0x16')]);router[_0xe829('0xa')](_0xe829('0x17'),auth[_0xe829('0x7')](),controller[_0xe829('0x18')]);router[_0xe829('0xa')]('/voice/queues/channels/:uniqueid',auth[_0xe829('0x7')](),controller[_0xe829('0x19')]);router['get'](_0xe829('0x1a'),auth[_0xe829('0x7')](),controller['voiceQueuesChannelHangup']);router[_0xe829('0xa')](_0xe829('0x1b'),auth[_0xe829('0x7')](),controller[_0xe829('0x1c')]);router[_0xe829('0xa')]('/voice/queues/:id',auth[_0xe829('0x7')](),controller['showVoiceQueues']);router['put'](_0xe829('0x1d'),auth[_0xe829('0x7')](),controller['updateVoiceQueue']);router['get'](_0xe829('0x1e'),auth[_0xe829('0x7')](),controller[_0xe829('0x1f')]);router[_0xe829('0xa')]('/outbound/channels',auth[_0xe829('0x7')](),controller[_0xe829('0x20')]);router[_0xe829('0xa')](_0xe829('0x21'),auth[_0xe829('0x7')](),controller[_0xe829('0x22')]);router[_0xe829('0x23')](_0xe829('0x24'),auth['isAuthenticated'](),controller['agentCapacity']);router[_0xe829('0xa')](_0xe829('0x25'),auth['isAuthenticated'](),controller[_0xe829('0x26')]);router[_0xe829('0xa')](_0xe829('0x27'),auth[_0xe829('0x7')](),controller[_0xe829('0x28')]);router['get'](_0xe829('0x29'),auth[_0xe829('0x7')](),controller[_0xe829('0x2a')]);router[_0xe829('0xa')](_0xe829('0x2b'),auth[_0xe829('0x7')](),controller[_0xe829('0x2c')]);router[_0xe829('0xa')]('/chat/queues/waitinginteractions',auth[_0xe829('0x7')](),controller[_0xe829('0x2d')]);router[_0xe829('0xa')](_0xe829('0x2e'),auth[_0xe829('0x7')](),controller['mailQueuesWaitingInteractions']);router[_0xe829('0xa')](_0xe829('0x2f'),auth[_0xe829('0x7')](),controller[_0xe829('0x30')]);router[_0xe829('0xa')](_0xe829('0x31'),auth['isAuthenticated'](),controller[_0xe829('0x32')]);router[_0xe829('0xa')]('/sms/queues/waitinginteractions',auth['isAuthenticated'](),controller[_0xe829('0x33')]);router[_0xe829('0xa')]('/whatsapp/queues/waitinginteractions',auth[_0xe829('0x7')](),controller['whatsappQueuesWaitingInteractions']);router[_0xe829('0xa')]('/fax/queues/waitinginteractions',auth[_0xe829('0x7')](),controller[_0xe829('0x34')]);router[_0xe829('0x35')]('/mail/queues/:id/notify',auth[_0xe829('0x7')](),controller[_0xe829('0x36')]('mail'));router['get'](_0xe829('0x37'),auth['isAuthenticated'](),controller[_0xe829('0x38')]);router[_0xe829('0x35')]('/chat/queues/:id/notify',auth[_0xe829('0x7')](),controller[_0xe829('0x36')]('chat'));router[_0xe829('0xa')](_0xe829('0x39'),auth[_0xe829('0x7')](),controller[_0xe829('0x3a')]);router[_0xe829('0x35')](_0xe829('0x3b'),auth[_0xe829('0x7')](),controller['queueNotify'](_0xe829('0x3c')));router['get'](_0xe829('0x3d'),auth[_0xe829('0x7')](),controller[_0xe829('0x3e')]);router['post'](_0xe829('0x3f'),auth[_0xe829('0x7')](),controller[_0xe829('0x36')](_0xe829('0x40')));router[_0xe829('0xa')]('/openchannel/queues/:id',auth[_0xe829('0x7')](),controller[_0xe829('0x41')]);router[_0xe829('0x35')](_0xe829('0x42'),auth[_0xe829('0x7')](),controller[_0xe829('0x36')](_0xe829('0x43')));router[_0xe829('0x35')]('/whatsapp/queues/:id/notify',auth[_0xe829('0x7')](),controller['queueNotify'](_0xe829('0x44')));router[_0xe829('0xa')](_0xe829('0x45'),auth[_0xe829('0x7')](),controller['showSmsQueues']);router[_0xe829('0xa')]('/whatsapp/queues/:id',auth[_0xe829('0x7')](),controller[_0xe829('0x46')]);router[_0xe829('0x35')]('/agents/:id/notify',auth['isAuthenticated'](),controller[_0xe829('0x47')]);module[_0xe829('0x48')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7217=['mailQueuesWaitingInteractions','MailQueuesWaitingInteractions','openchannelQueuesWaitingInteractions','OpenchannelQueuesWaitingInteractions','openchannelQueuesIdWaitingInteractions','type','rows','map','value','filter','indexOf','queue_id','smsQueuesWaitingInteractions','whatsappQueuesWaitingInteractions','WhatsappQueuesWaitingInteractions','faxQueuesWaitingInteractions','capitalize','chat','Website','Account','Queue','Message','findOne','messageId','Interaction','queue','MessageId','InteractionId','From','QueueId','TransferReport','create','Start','channel','Channel\x20field\x20is\x20mandatory','\x20Message\x20not\x20found','update','agentTransferTimeout','*,*,*,*','bluebird','lodash','util','../../mysqldb','../../config/logger','api','http','client','request','then','error','code','message','result','catch','json','sendStatus','stack','send','isNil','find','voiceChannels','VoiceChannels','query','voiceChannelMixMonitor','VoiceChannelMixMonitor','merge','params','VoiceChannelStopMixMonitor','voiceQueues','VoiceQueues','showVoiceQueues','updateVoiceQueue','UpdateVoiceQueue','voiceQueuesChannels','VoiceQueuesChannels','voiceQueuesChannel','VoiceQueuesChannel','voiceQueuesChannelHangup','VoiceQueuesChannelHangup','VoiceQueuesChannelRedirect','outboundChannels','agents','Agents','agentCapacity','body','interaction','user','name','hasOwnProperty','MemberReport','findAll','length','format','updateAttributes','findOrCreate','SIP/%s','INTERACTION','YYYY-MM-DD\x20HH:mm:ss','agent','internal','AgentCapacity','capacity','telephones','Telephones','trunks','Trunks','campaigns','Campaigns','ChatQueues','showChatQueues','MailQueues','mailAccounts','OpenchannelQueues','showOpenchannelQueues','SmsQueues','showSmsQueues','whatsappQueues','WhatsappQueues','showWhatsappQueues','faxQueues','FaxQueues','showFaxQueues','FaxAccounts','chatQueuesWaitingInteractions','ChatQueuesWaitingInteractions'];(function(_0x4c12ec,_0x2e9103){var _0x3ae42c=function(_0x5a728f){while(--_0x5a728f){_0x4c12ec['push'](_0x4c12ec['shift']());}};_0x3ae42c(++_0x2e9103);}(_0x7217,0x19e));var _0x7721=function(_0x484e36,_0x4482d8){_0x484e36=_0x484e36-0x0;var _0xafc85d=_0x7217[_0x484e36];return _0xafc85d;};'use strict';var BPromise=require(_0x7721('0x0'));var moment=require('moment');var _=require(_0x7721('0x1'));var util=require(_0x7721('0x2'));var db=require(_0x7721('0x3'))['db'];var logger=require(_0x7721('0x4'))(_0x7721('0x5'));var jayson=require('jayson/promise');var amiClient=jayson['client'][_0x7721('0x6')]({'port':0x232a});var mailClient=jayson[_0x7721('0x7')][_0x7721('0x6')]({'port':0x232b});var routingClient=jayson[_0x7721('0x7')][_0x7721('0x6')]({'port':0x232c});function respondWithRpcPromise(_0xf7ff37,_0x18ab6b,_0x21f680){return new BPromise(function(_0x225610,_0x2f99ed){var _0x3e6368=_0x21f680?_0x21f680:amiClient;return _0x3e6368[_0x7721('0x8')](_0xf7ff37,_0x18ab6b)[_0x7721('0x9')](function(_0x138740){if(_0x138740[_0x7721('0xa')]){if(_0x138740['error'][_0x7721('0xb')]===0x1f4){return _0x2f99ed(_0x138740[_0x7721('0xa')][_0x7721('0xc')]);}return _0x225610(_0x138740[_0x7721('0xa')][_0x7721('0xc')]);}else{_0x225610(_0x138740[_0x7721('0xd')]);}})[_0x7721('0xe')](function(_0x27b36b){_0x2f99ed(_0x27b36b);});});}function respondWithResult(_0x55b4ca,_0x2911ec){_0x2911ec=_0x2911ec||0xc8;return function(_0x199930){if(_0x199930){return _0x55b4ca['status'](_0x2911ec)[_0x7721('0xf')](_0x199930);}return _0x55b4ca[_0x7721('0x10')](0x194);};}function handleError(_0x3f01c5,_0x2e9752){_0x2e9752=_0x2e9752||0x1f4;return function(_0x5069da){logger[_0x7721('0xa')](_0x5069da[_0x7721('0x11')]);if(_0x5069da['name']){delete _0x5069da['name'];}_0x3f01c5['status'](_0x2e9752)[_0x7721('0x12')](_0x5069da);};}function findById(_0x25a628){return function(_0x3cc909){if(!_[_0x7721('0x13')](_0x25a628)&&!_['isNil'](_0x3cc909)&&!_[_0x7721('0x13')](_0x3cc909['rows'])){return _[_0x7721('0x14')](_0x3cc909['rows'],function(_0xfec626){return _0xfec626['id']==_0x25a628;});}return null;};}exports[_0x7721('0x15')]=function(_0x3ab5a5,_0x3e140d){return respondWithRpcPromise(_0x7721('0x16'),_0x3ab5a5[_0x7721('0x17')])[_0x7721('0x9')](respondWithResult(_0x3e140d,null))[_0x7721('0xe')](handleError(_0x3e140d,null));};exports[_0x7721('0x18')]=function(_0xaeccc4,_0x4ce1db){return respondWithRpcPromise(_0x7721('0x19'),_[_0x7721('0x1a')](_0xaeccc4[_0x7721('0x17')],_0xaeccc4[_0x7721('0x1b')]))['then'](respondWithResult(_0x4ce1db,null))[_0x7721('0xe')](handleError(_0x4ce1db,null));};exports['voiceChannelStopMixMonitor']=function(_0xb9e9dd,_0x288e3a){return respondWithRpcPromise(_0x7721('0x1c'),_[_0x7721('0x1a')](_0xb9e9dd[_0x7721('0x17')],_0xb9e9dd[_0x7721('0x1b')]))[_0x7721('0x9')](respondWithResult(_0x288e3a,null))['catch'](handleError(_0x288e3a,null));};exports[_0x7721('0x1d')]=function(_0x1abedb,_0x125564){return respondWithRpcPromise(_0x7721('0x1e'),_0x1abedb[_0x7721('0x17')])[_0x7721('0x9')](respondWithResult(_0x125564,null))[_0x7721('0xe')](handleError(_0x125564,null));};exports[_0x7721('0x1f')]=function(_0x40f367,_0x52316e){return respondWithRpcPromise(_0x7721('0x1e'),_0x40f367['query'])['then'](findById(_0x40f367[_0x7721('0x1b')]['id']))[_0x7721('0x9')](respondWithResult(_0x52316e,null))[_0x7721('0xe')](handleError(_0x52316e,null));};exports[_0x7721('0x20')]=function(_0x1ea4d,_0x37b9f0){return respondWithRpcPromise(_0x7721('0x21'),_[_0x7721('0x1a')](_0x1ea4d['body'],_0x1ea4d[_0x7721('0x1b')]))[_0x7721('0x9')](respondWithResult(_0x37b9f0,null))['catch'](handleError(_0x37b9f0,null));};exports['voiceQueuesPreview']=function(_0xfde9ec,_0x220bbf){return respondWithRpcPromise('VoiceQueuesPreview',_[_0x7721('0x1a')](_0xfde9ec[_0x7721('0x17')],_0xfde9ec[_0x7721('0x1b')]))['then'](respondWithResult(_0x220bbf,null))[_0x7721('0xe')](handleError(_0x220bbf,null));};exports[_0x7721('0x22')]=function(_0x1492d4,_0x3f15e2){return respondWithRpcPromise(_0x7721('0x23'),_0x1492d4['query'])[_0x7721('0x9')](respondWithResult(_0x3f15e2,null))[_0x7721('0xe')](handleError(_0x3f15e2,null));};exports[_0x7721('0x24')]=function(_0x5c5b33,_0x35de7a){return respondWithRpcPromise(_0x7721('0x25'),_['merge'](_0x5c5b33[_0x7721('0x17')],_0x5c5b33['params']))[_0x7721('0x9')](respondWithResult(_0x35de7a,null))[_0x7721('0xe')](handleError(_0x35de7a,null));};exports[_0x7721('0x26')]=function(_0x1d894b,_0x1c84c0){return respondWithRpcPromise(_0x7721('0x27'),_[_0x7721('0x1a')](_0x1d894b[_0x7721('0x17')],_0x1d894b[_0x7721('0x1b')]))[_0x7721('0x9')](respondWithResult(_0x1c84c0,null))[_0x7721('0xe')](handleError(_0x1c84c0,null));};exports['voiceQueuesChannelRedirect']=function(_0xd1df68,_0x5e6663){return respondWithRpcPromise(_0x7721('0x28'),_[_0x7721('0x1a')](_0xd1df68[_0x7721('0x17')],_0xd1df68[_0x7721('0x1b')]))[_0x7721('0x9')](respondWithResult(_0x5e6663,null))[_0x7721('0xe')](handleError(_0x5e6663,null));};exports['outbound']=function(_0x557c34,_0x4cadef){return respondWithRpcPromise('Outbound',_0x557c34[_0x7721('0x17')])[_0x7721('0x9')](respondWithResult(_0x4cadef,null))[_0x7721('0xe')](handleError(_0x4cadef,null));};exports[_0x7721('0x29')]=function(_0x4a90ce,_0xa389fa){return respondWithRpcPromise('OutboundChannels',_0x4a90ce[_0x7721('0x17')])[_0x7721('0x9')](respondWithResult(_0xa389fa,null))['catch'](handleError(_0xa389fa,null));};exports[_0x7721('0x2a')]=function(_0x3a47c8,_0x4e77ff){var _0x4d0111;return respondWithRpcPromise(_0x7721('0x2b'),_0x3a47c8[_0x7721('0x17')])[_0x7721('0x9')](function(_0x15e34d){_0x4d0111=_0x15e34d;return respondWithRpcPromise('Agents',_0x3a47c8[_0x7721('0x17')],routingClient);})[_0x7721('0x9')](function(_0x40ce8c){return _[_0x7721('0x1a')]({},_0x40ce8c,_0x4d0111);})[_0x7721('0x9')](respondWithResult(_0x4e77ff,null))['catch'](handleError(_0x4e77ff,null));};exports[_0x7721('0x2c')]=function(_0x4a2c28,_0xaa3216){if(_0x4a2c28['body']&&_0x4a2c28[_0x7721('0x2d')][_0x7721('0x2e')]&&_0x4a2c28[_0x7721('0x2f')]&&_0x4a2c28['user'][_0x7721('0x30')]){for(var _0x11d853 in _0x4a2c28[_0x7721('0x2d')]['interaction']){if(_0x4a2c28[_0x7721('0x2d')][_0x7721('0x2e')][_0x7721('0x31')](_0x11d853)){db[_0x7721('0x32')][_0x7721('0x33')]({'where':{'channel':_0x11d853,'membername':_0x4a2c28[_0x7721('0x2f')][_0x7721('0x30')],'type':'INTERACTION','exitAt':null,'uniqueid':_0x4a2c28['body'][_0x7721('0x2e')][_0x11d853]&&_0x4a2c28[_0x7721('0x2d')][_0x7721('0x2e')][_0x11d853][_0x7721('0x34')]?{'$notIn':_0x4a2c28[_0x7721('0x2d')][_0x7721('0x2e')][_0x11d853]}:{'$ne':null}}})[_0x7721('0x9')](function(_0x2966fe){var _0xa601bc=moment()[_0x7721('0x35')]('YYYY-MM-DD\x20HH:mm:ss');for(var _0x578867=0x0,_0x5ed70d=_0x2966fe[_0x7721('0x34')];_0x578867<_0x5ed70d;_0x578867+=0x1){_0x2966fe[_0x578867][_0x7721('0x36')]({'exitAt':_0xa601bc});}});for(var _0x219c9f=0x0;_0x219c9f<_0x4a2c28['body'][_0x7721('0x2e')][_0x11d853][_0x7721('0x34')];_0x219c9f+=0x1){db['MemberReport'][_0x7721('0x37')]({'where':{'channel':_0x11d853,'membername':_0x4a2c28['user'][_0x7721('0x30')],'type':'INTERACTION','uniqueid':_0x4a2c28[_0x7721('0x2d')][_0x7721('0x2e')][_0x11d853][_0x219c9f],'exitAt':null},'defaults':{'channel':_0x11d853,'membername':_0x4a2c28[_0x7721('0x2f')]['name'],'interface':_[_0x7721('0x13')](_0x4a2c28[_0x7721('0x2f')]['interface'])?util[_0x7721('0x35')](_0x7721('0x38'),_0x4a2c28[_0x7721('0x2f')]['name']):_0x4a2c28[_0x7721('0x2f')]['interface'],'type':_0x7721('0x39'),'enterAt':moment()[_0x7721('0x35')](_0x7721('0x3a')),'role':_0x7721('0x3b'),'internal':_0x4a2c28[_0x7721('0x2f')][_0x7721('0x3c')],'uniqueid':_0x4a2c28[_0x7721('0x2d')][_0x7721('0x2e')][_0x11d853][_0x219c9f]}});}}}}return respondWithRpcPromise(_0x7721('0x3d'),{'id':_0x4a2c28[_0x7721('0x1b')]['id'],'capacity':_0x4a2c28[_0x7721('0x2d')][_0x7721('0x3e')]},routingClient)[_0x7721('0x9')](respondWithResult(_0xaa3216,null))[_0x7721('0xe')](handleError(_0xaa3216,null));};exports[_0x7721('0x3f')]=function(_0x5b741d,_0x474f32){return respondWithRpcPromise(_0x7721('0x40'),_0x5b741d[_0x7721('0x17')])[_0x7721('0x9')](respondWithResult(_0x474f32,null))[_0x7721('0xe')](handleError(_0x474f32,null));};exports[_0x7721('0x41')]=function(_0x267f5e,_0x57484c){return respondWithRpcPromise(_0x7721('0x42'),_0x267f5e[_0x7721('0x17')])[_0x7721('0x9')](respondWithResult(_0x57484c,null))[_0x7721('0xe')](handleError(_0x57484c,null));};exports[_0x7721('0x43')]=function(_0x9c0d4,_0x7fbd6c){return respondWithRpcPromise(_0x7721('0x44'),_0x9c0d4[_0x7721('0x17')])[_0x7721('0x9')](respondWithResult(_0x7fbd6c,null))[_0x7721('0xe')](handleError(_0x7fbd6c,null));};exports['chatQueues']=function(_0x421c27,_0xadb365){return respondWithRpcPromise(_0x7721('0x45'),_0x421c27[_0x7721('0x17')],routingClient)[_0x7721('0x9')](respondWithResult(_0xadb365,null))[_0x7721('0xe')](handleError(_0xadb365,null));};exports[_0x7721('0x46')]=function(_0x36fe6f,_0x360882){return respondWithRpcPromise(_0x7721('0x45'),_0x36fe6f[_0x7721('0x17')],routingClient)[_0x7721('0x9')](findById(_0x36fe6f[_0x7721('0x1b')]['id']))[_0x7721('0x9')](respondWithResult(_0x360882,null))[_0x7721('0xe')](handleError(_0x360882,null));};exports['mailQueues']=function(_0x50e9e9,_0x4e112e){return respondWithRpcPromise(_0x7721('0x47'),_0x50e9e9['query'],routingClient)['then'](respondWithResult(_0x4e112e,null))['catch'](handleError(_0x4e112e,null));};exports['showMailQueues']=function(_0x47925a,_0x219181){return respondWithRpcPromise(_0x7721('0x47'),_0x47925a['query'],routingClient)[_0x7721('0x9')](findById(_0x47925a['params']['id']))['then'](respondWithResult(_0x219181,null))['catch'](handleError(_0x219181,null));};exports[_0x7721('0x48')]=function(_0x4f0d38,_0x48e7e3){return respondWithRpcPromise('MailAccounts',_0x4f0d38[_0x7721('0x17')],mailClient)[_0x7721('0x9')](respondWithResult(_0x48e7e3,null))[_0x7721('0xe')](handleError(_0x48e7e3,null));};exports['openchannelQueues']=function(_0x2a025c,_0x1f1890){return respondWithRpcPromise(_0x7721('0x49'),_0x2a025c[_0x7721('0x17')],routingClient)[_0x7721('0x9')](respondWithResult(_0x1f1890,null))[_0x7721('0xe')](handleError(_0x1f1890,null));};exports[_0x7721('0x4a')]=function(_0x3e3301,_0x127f46){return respondWithRpcPromise(_0x7721('0x49'),_0x3e3301[_0x7721('0x17')],routingClient)[_0x7721('0x9')](findById(_0x3e3301[_0x7721('0x1b')]['id']))[_0x7721('0x9')](respondWithResult(_0x127f46,null))[_0x7721('0xe')](handleError(_0x127f46,null));};exports['smsQueues']=function(_0x233e5d,_0x2c93b0){return respondWithRpcPromise(_0x7721('0x4b'),_0x233e5d[_0x7721('0x17')],routingClient)['then'](respondWithResult(_0x2c93b0,null))[_0x7721('0xe')](handleError(_0x2c93b0,null));};exports[_0x7721('0x4c')]=function(_0x4c8284,_0x3e7df3){return respondWithRpcPromise('SmsQueues',_0x4c8284[_0x7721('0x17')],routingClient)[_0x7721('0x9')](findById(_0x4c8284[_0x7721('0x1b')]['id']))[_0x7721('0x9')](respondWithResult(_0x3e7df3,null))[_0x7721('0xe')](handleError(_0x3e7df3,null));};exports[_0x7721('0x4d')]=function(_0x3121e0,_0x167ce7){return respondWithRpcPromise(_0x7721('0x4e'),_0x3121e0['query'],routingClient)[_0x7721('0x9')](respondWithResult(_0x167ce7,null))[_0x7721('0xe')](handleError(_0x167ce7,null));};exports[_0x7721('0x4f')]=function(_0x3a11e2,_0x56a988){return respondWithRpcPromise(_0x7721('0x4e'),_0x3a11e2[_0x7721('0x17')],routingClient)['then'](findById(_0x3a11e2[_0x7721('0x1b')]['id']))[_0x7721('0x9')](respondWithResult(_0x56a988,null))['catch'](handleError(_0x56a988,null));};exports[_0x7721('0x50')]=function(_0x565c49,_0x14b543){return respondWithRpcPromise(_0x7721('0x51'),_0x565c49[_0x7721('0x17')],routingClient)[_0x7721('0x9')](respondWithResult(_0x14b543,null))[_0x7721('0xe')](handleError(_0x14b543,null));};exports[_0x7721('0x52')]=function(_0x258c57,_0x5dca04){return respondWithRpcPromise(_0x7721('0x51'),_0x258c57[_0x7721('0x17')],routingClient)[_0x7721('0x9')](findById(_0x258c57['params']['id']))['then'](respondWithResult(_0x5dca04,null))['catch'](handleError(_0x5dca04,null));};exports['faxAccounts']=function(_0x5e966f,_0x1fc5f7){return respondWithRpcPromise(_0x7721('0x53'),_0x5e966f['query'])[_0x7721('0x9')](respondWithResult(_0x1fc5f7,null))[_0x7721('0xe')](handleError(_0x1fc5f7,null));};exports[_0x7721('0x54')]=function(_0x4593e1,_0x53ebb1){return respondWithRpcPromise(_0x7721('0x55'),_0x4593e1[_0x7721('0x17')],routingClient)[_0x7721('0x9')](respondWithResult(_0x53ebb1,null))[_0x7721('0xe')](handleError(_0x53ebb1,null));};exports[_0x7721('0x56')]=function(_0x53adb1,_0x29ac64){return respondWithRpcPromise(_0x7721('0x57'),_0x53adb1[_0x7721('0x17')],routingClient)['then'](respondWithResult(_0x29ac64,null))['catch'](handleError(_0x29ac64,null));};exports[_0x7721('0x58')]=function(_0x752564,_0x423040){return respondWithRpcPromise(_0x7721('0x59'),_0x752564[_0x7721('0x17')],routingClient)['then'](respondWithResult(_0x423040,null))['catch'](handleError(_0x423040,null));};exports[_0x7721('0x5a')]=function(_0x1bd97e,_0x68de4){return respondWithRpcPromise(_0x7721('0x59'),_0x1bd97e[_0x7721('0x17')],routingClient)[_0x7721('0x9')](function(_0x34187f){if(_0x1bd97e['query'][_0x7721('0x5b')]!==undefined){var _0x413185=_(_0x34187f[_0x7721('0x5c')])['filter']([_0x1bd97e[_0x7721('0x17')][_0x7721('0x5b')],_0x1bd97e[_0x7721('0x1b')]['id']])[_0x7721('0x5d')]('queue_id')['uniq']()[_0x7721('0x5e')]();return _0x34187f[_0x7721('0x5c')][_0x7721('0x5f')](function(_0x42c849){return _0x413185[_0x7721('0x60')](_0x42c849[_0x7721('0x61')])>-0x1;});}else{return _0x34187f['rows'][_0x7721('0x5f')](function(_0x42bb5a){return _0x42bb5a[_0x7721('0x61')]===parseInt(_0x1bd97e['params']['id']);});}})[_0x7721('0x9')](respondWithResult(_0x68de4,null))[_0x7721('0xe')](handleError(_0x68de4,null));};exports[_0x7721('0x62')]=function(_0xc20188,_0x457d7f){return respondWithRpcPromise('SmsQueuesWaitingInteractions',_0xc20188[_0x7721('0x17')],routingClient)['then'](respondWithResult(_0x457d7f,null))[_0x7721('0xe')](handleError(_0x457d7f,null));};exports[_0x7721('0x63')]=function(_0x2d5433,_0x7f0598){return respondWithRpcPromise(_0x7721('0x64'),_0x2d5433[_0x7721('0x17')],routingClient)[_0x7721('0x9')](respondWithResult(_0x7f0598,null))[_0x7721('0xe')](handleError(_0x7f0598,null));};exports[_0x7721('0x65')]=function(_0x3b78f5,_0x2c74d8){return respondWithRpcPromise('FaxQueuesWaitingInteractions',_0x3b78f5[_0x7721('0x17')],routingClient)[_0x7721('0x9')](respondWithResult(_0x2c74d8,null))[_0x7721('0xe')](handleError(_0x2c74d8,null));};exports['queueNotify']=function(_0x94af20){return function(_0x26b2cc,_0x139517){var _0xc9761e,_0xcd9f0d;var _0x594059=_[_0x7721('0x66')](_0x94af20);var _0x22f15a=_0x94af20===_0x7721('0x67')?_0x7721('0x68'):_0x7721('0x69');return db[_0x594059+_0x7721('0x6a')]['findOne']({'raw':!![],'where':{'id':_0x26b2cc[_0x7721('0x1b')]['id']}})[_0x7721('0x9')](function(_0x480a03){if(_[_0x7721('0x13')](_0x480a03)){throw new Error(_0x594059+'\x20Queue\x20not\x20found');}_0xc9761e=_0x480a03;return db[_0x594059+_0x7721('0x6b')][_0x7721('0x6c')]({'where':{'id':_0x26b2cc['body'][_0x7721('0x6d')]},'include':[{'model':db[_0x594059+'Interaction'],'as':'Interaction'},{'model':db[_0x594059+_0x22f15a],'as':'Account'}]});})[_0x7721('0x9')](function(_0x20f12e){if(_[_0x7721('0x13')](_0x20f12e)){throw new Error(_0x594059+'\x20Message\x20not\x20found');}_0xcd9f0d=_0x20f12e;return _0x20f12e['update']({'read':0x0,'readAt':null,'UserId':null});})['then'](function(){var _0x355aa8={'uniqueid':_0x94af20+'.'+_0xcd9f0d['id']+'.'+_0xcd9f0d[_0x7721('0x6e')]['id'],'FromUserId':_0x26b2cc[_0x7721('0x2f')]['id'],'type':_0x7721('0x6f')};_0x355aa8[_0x594059+_0x7721('0x70')]=_0xcd9f0d['id'];_0x355aa8[_0x594059+_0x7721('0x71')]=_0xcd9f0d['Interaction']['id'];_0x355aa8[_0x7721('0x72')+_0x594059+_0x22f15a+'Id']=_0xcd9f0d[_0x7721('0x69')]['id'];_0x355aa8['To'+_0x594059+_0x7721('0x73')]=_0xc9761e['id'];return db[_0x594059+_0x7721('0x74')][_0x7721('0x75')](_0x355aa8);})[_0x7721('0x9')](function(){return respondWithRpcPromise(_0x7721('0x76'),{'channel':_0x94af20,'interaction':_0xcd9f0d[_0x7721('0x6e')],'message':_0xcd9f0d,'account':_0xcd9f0d[_0x7721('0x69')],'applications':[{'id':0x0,'priority':0x1,'app':_0x7721('0x6f'),'appdata':_0xc9761e[_0x7721('0x30')]+','+(_0xcd9f0d[_0x7721('0x69')]['queueTransferTimeout']||0x12c),'interval':'*,*,*,*'}]},routingClient);})[_0x7721('0x9')](respondWithResult(_0x139517,null))[_0x7721('0xe')](handleError(_0x139517,null));};};exports['agentNotify']=function(_0x167e05,_0x570cf4){var _0x4e3c93,_0x154b4b;if(_['isNil'](_0x167e05['body'][_0x7721('0x77')])){throw new Error(_0x7721('0x78'));}var _0x28e123=_0x167e05[_0x7721('0x2d')][_0x7721('0x77')];var _0x494c5e=_[_0x7721('0x66')](_0x28e123);var _0xcf2c06=_0x28e123===_0x7721('0x67')?_0x7721('0x68'):'Account';return db['User'][_0x7721('0x6c')]({'raw':!![],'where':{'id':_0x167e05[_0x7721('0x1b')]['id'],'role':'agent'}})[_0x7721('0x9')](function(_0x13dc8a){if(_['isNil'](_0x13dc8a)){throw new Error('Agent\x20not\x20found');}_0x4e3c93=_0x13dc8a;return db[_0x494c5e+_0x7721('0x6b')][_0x7721('0x6c')]({'where':{'id':_0x167e05[_0x7721('0x2d')][_0x7721('0x6d')]},'include':[{'model':db[_0x494c5e+_0x7721('0x6e')],'as':_0x7721('0x6e')},{'model':db[_0x494c5e+_0xcf2c06],'as':_0x7721('0x69')}]});})[_0x7721('0x9')](function(_0x59de30){if(_[_0x7721('0x13')](_0x59de30)){throw new Error(_0x494c5e+_0x7721('0x79'));}_0x154b4b=_0x59de30;return _0x59de30[_0x7721('0x7a')]({'read':0x0,'readAt':null,'UserId':null});})[_0x7721('0x9')](function(){var _0xe1c795={'uniqueid':_0x28e123+'.'+_0x154b4b['id']+'.'+_0x154b4b[_0x7721('0x6e')]['id'],'FromUserId':_0x167e05[_0x7721('0x2f')]['id'],'type':'queue','ToUserId':_0x4e3c93['id']};_0xe1c795[_0x494c5e+_0x7721('0x70')]=_0x154b4b['id'];_0xe1c795[_0x494c5e+_0x7721('0x71')]=_0x154b4b['Interaction']['id'];_0xe1c795[_0x7721('0x72')+_0x494c5e+_0xcf2c06+'Id']=_0x154b4b[_0x7721('0x69')]['id'];return db[_0x494c5e+_0x7721('0x74')][_0x7721('0x75')](_0xe1c795);})[_0x7721('0x9')](function(){return respondWithRpcPromise(_0x7721('0x76'),{'channel':_0x28e123,'interaction':_0x154b4b[_0x7721('0x6e')],'message':_0x154b4b,'account':_0x154b4b[_0x7721('0x69')],'applications':[{'id':0x0,'priority':0x1,'app':_0x7721('0x3b'),'appdata':_0x4e3c93[_0x7721('0x30')]+','+(_0x154b4b['Account'][_0x7721('0x7b')]||0x12c),'interval':_0x7721('0x7c')}]},routingClient);})[_0x7721('0x9')](respondWithResult(_0x570cf4,null))[_0x7721('0xe')](handleError(_0x570cf4,null));};
\ No newline at end of file
+var _0x81bd=['client','http','request','then','error','code','message','result','catch','status','sendStatus','stack','name','send','isNil','rows','find','voiceChannels','VoiceChannels','query','voiceChannelMixMonitor','VoiceChannelMixMonitor','merge','VoiceChannelStopMixMonitor','params','voiceQueues','VoiceQueues','showVoiceQueues','UpdateVoiceQueue','voiceQueuesPreview','voiceQueuesChannels','voiceQueuesChannel','VoiceQueuesChannel','voiceQueuesChannelHangup','VoiceQueuesChannelHangup','voiceQueuesChannelRedirect','outbound','Outbound','outboundChannels','OutboundChannels','agents','Agents','body','interaction','user','hasOwnProperty','MemberReport','findAll','INTERACTION','length','format','YYYY-MM-DD\x20HH:mm:ss','findOrCreate','interface','SIP/%s','internal','AgentCapacity','capacity','telephones','Telephones','Trunks','campaigns','Campaigns','ChatQueues','mailQueues','showMailQueues','MailQueues','mailAccounts','MailAccounts','openchannelQueues','OpenchannelQueues','smsQueues','SmsQueues','showSmsQueues','whatsappQueues','WhatsappQueues','showWhatsappQueues','faxQueues','showFaxQueues','faxAccounts','FaxAccounts','chatQueuesWaitingInteractions','ChatQueuesWaitingInteractions','mailQueuesWaitingInteractions','MailQueuesWaitingInteractions','OpenchannelQueuesWaitingInteractions','type','filter','queue_id','uniq','value','indexOf','smsQueuesWaitingInteractions','whatsappQueuesWaitingInteractions','faxQueuesWaitingInteractions','FaxQueuesWaitingInteractions','queueNotify','capitalize','Website','Account','Queue','findOne','Message','Interaction','update','queue','InteractionId','From','QueueId','TransferReport','Start','queueTransferTimeout','*,*,*,*','agentNotify','channel','Channel\x20field\x20is\x20mandatory','chat','User','agent','Agent\x20not\x20found','messageId','\x20Message\x20not\x20found','MessageId','agentTransferTimeout','bluebird','moment','lodash','util','../../mysqldb','../../config/logger','api'];(function(_0x5416b8,_0x533f63){var _0x4f6763=function(_0x5933d3){while(--_0x5933d3){_0x5416b8['push'](_0x5416b8['shift']());}};_0x4f6763(++_0x533f63);}(_0x81bd,0x7c));var _0xd81b=function(_0x2c1524,_0x311a60){_0x2c1524=_0x2c1524-0x0;var _0x4ddd51=_0x81bd[_0x2c1524];return _0x4ddd51;};'use strict';var BPromise=require(_0xd81b('0x0'));var moment=require(_0xd81b('0x1'));var _=require(_0xd81b('0x2'));var util=require(_0xd81b('0x3'));var db=require(_0xd81b('0x4'))['db'];var logger=require(_0xd81b('0x5'))(_0xd81b('0x6'));var jayson=require('jayson/promise');var amiClient=jayson[_0xd81b('0x7')][_0xd81b('0x8')]({'port':0x232a});var mailClient=jayson[_0xd81b('0x7')]['http']({'port':0x232b});var routingClient=jayson[_0xd81b('0x7')][_0xd81b('0x8')]({'port':0x232c});function respondWithRpcPromise(_0x1f3f2c,_0x562084,_0x5e14e8){return new BPromise(function(_0xa4cf97,_0x5468d5){var _0x223515=_0x5e14e8?_0x5e14e8:amiClient;return _0x223515[_0xd81b('0x9')](_0x1f3f2c,_0x562084)[_0xd81b('0xa')](function(_0x86dab6){if(_0x86dab6[_0xd81b('0xb')]){if(_0x86dab6[_0xd81b('0xb')][_0xd81b('0xc')]===0x1f4){return _0x5468d5(_0x86dab6[_0xd81b('0xb')][_0xd81b('0xd')]);}return _0xa4cf97(_0x86dab6[_0xd81b('0xb')][_0xd81b('0xd')]);}else{_0xa4cf97(_0x86dab6[_0xd81b('0xe')]);}})[_0xd81b('0xf')](function(_0x560530){_0x5468d5(_0x560530);});});}function respondWithResult(_0x21dfff,_0x57f71d){_0x57f71d=_0x57f71d||0xc8;return function(_0x3f2405){if(_0x3f2405){return _0x21dfff[_0xd81b('0x10')](_0x57f71d)['json'](_0x3f2405);}return _0x21dfff[_0xd81b('0x11')](0x194);};}function handleError(_0x47dd04,_0x13dd00){_0x13dd00=_0x13dd00||0x1f4;return function(_0x41bf7a){logger[_0xd81b('0xb')](_0x41bf7a[_0xd81b('0x12')]);if(_0x41bf7a[_0xd81b('0x13')]){delete _0x41bf7a['name'];}_0x47dd04[_0xd81b('0x10')](_0x13dd00)[_0xd81b('0x14')](_0x41bf7a);};}function findById(_0x5c2863){return function(_0x2abef4){if(!_[_0xd81b('0x15')](_0x5c2863)&&!_[_0xd81b('0x15')](_0x2abef4)&&!_[_0xd81b('0x15')](_0x2abef4[_0xd81b('0x16')])){return _[_0xd81b('0x17')](_0x2abef4[_0xd81b('0x16')],function(_0x3d4d34){return _0x3d4d34['id']==_0x5c2863;});}return null;};}exports[_0xd81b('0x18')]=function(_0x285164,_0x1ff3c6){return respondWithRpcPromise(_0xd81b('0x19'),_0x285164[_0xd81b('0x1a')])[_0xd81b('0xa')](respondWithResult(_0x1ff3c6,null))[_0xd81b('0xf')](handleError(_0x1ff3c6,null));};exports[_0xd81b('0x1b')]=function(_0x5f101a,_0x4d566e){return respondWithRpcPromise(_0xd81b('0x1c'),_[_0xd81b('0x1d')](_0x5f101a[_0xd81b('0x1a')],_0x5f101a['params']))[_0xd81b('0xa')](respondWithResult(_0x4d566e,null))[_0xd81b('0xf')](handleError(_0x4d566e,null));};exports['voiceChannelStopMixMonitor']=function(_0xcd6474,_0x13d687){return respondWithRpcPromise(_0xd81b('0x1e'),_[_0xd81b('0x1d')](_0xcd6474[_0xd81b('0x1a')],_0xcd6474[_0xd81b('0x1f')]))[_0xd81b('0xa')](respondWithResult(_0x13d687,null))[_0xd81b('0xf')](handleError(_0x13d687,null));};exports[_0xd81b('0x20')]=function(_0x212c4e,_0x2ccedf){return respondWithRpcPromise(_0xd81b('0x21'),_0x212c4e['query'])[_0xd81b('0xa')](respondWithResult(_0x2ccedf,null))[_0xd81b('0xf')](handleError(_0x2ccedf,null));};exports[_0xd81b('0x22')]=function(_0x31b9fd,_0x3266c2){return respondWithRpcPromise(_0xd81b('0x21'),_0x31b9fd[_0xd81b('0x1a')])[_0xd81b('0xa')](findById(_0x31b9fd[_0xd81b('0x1f')]['id']))['then'](respondWithResult(_0x3266c2,null))[_0xd81b('0xf')](handleError(_0x3266c2,null));};exports['updateVoiceQueue']=function(_0x5c8aee,_0xb9ff9f){return respondWithRpcPromise(_0xd81b('0x23'),_['merge'](_0x5c8aee['body'],_0x5c8aee[_0xd81b('0x1f')]))[_0xd81b('0xa')](respondWithResult(_0xb9ff9f,null))[_0xd81b('0xf')](handleError(_0xb9ff9f,null));};exports[_0xd81b('0x24')]=function(_0x1a1572,_0x4654ba){return respondWithRpcPromise('VoiceQueuesPreview',_[_0xd81b('0x1d')](_0x1a1572[_0xd81b('0x1a')],_0x1a1572['params']))['then'](respondWithResult(_0x4654ba,null))[_0xd81b('0xf')](handleError(_0x4654ba,null));};exports[_0xd81b('0x25')]=function(_0x50472a,_0x50ce25){return respondWithRpcPromise('VoiceQueuesChannels',_0x50472a[_0xd81b('0x1a')])[_0xd81b('0xa')](respondWithResult(_0x50ce25,null))[_0xd81b('0xf')](handleError(_0x50ce25,null));};exports[_0xd81b('0x26')]=function(_0xa56339,_0x12ee8f){return respondWithRpcPromise(_0xd81b('0x27'),_['merge'](_0xa56339[_0xd81b('0x1a')],_0xa56339['params']))[_0xd81b('0xa')](respondWithResult(_0x12ee8f,null))[_0xd81b('0xf')](handleError(_0x12ee8f,null));};exports[_0xd81b('0x28')]=function(_0xcd9e86,_0x36c69f){return respondWithRpcPromise(_0xd81b('0x29'),_[_0xd81b('0x1d')](_0xcd9e86[_0xd81b('0x1a')],_0xcd9e86[_0xd81b('0x1f')]))[_0xd81b('0xa')](respondWithResult(_0x36c69f,null))[_0xd81b('0xf')](handleError(_0x36c69f,null));};exports[_0xd81b('0x2a')]=function(_0x346038,_0x57bc0c){return respondWithRpcPromise('VoiceQueuesChannelRedirect',_[_0xd81b('0x1d')](_0x346038[_0xd81b('0x1a')],_0x346038[_0xd81b('0x1f')]))['then'](respondWithResult(_0x57bc0c,null))[_0xd81b('0xf')](handleError(_0x57bc0c,null));};exports[_0xd81b('0x2b')]=function(_0x5a236a,_0x46f058){return respondWithRpcPromise(_0xd81b('0x2c'),_0x5a236a['query'])[_0xd81b('0xa')](respondWithResult(_0x46f058,null))['catch'](handleError(_0x46f058,null));};exports[_0xd81b('0x2d')]=function(_0x2502d1,_0x203365){return respondWithRpcPromise(_0xd81b('0x2e'),_0x2502d1['query'])[_0xd81b('0xa')](respondWithResult(_0x203365,null))[_0xd81b('0xf')](handleError(_0x203365,null));};exports[_0xd81b('0x2f')]=function(_0x67fbe5,_0x3abd60){var _0x466e98;return respondWithRpcPromise(_0xd81b('0x30'),_0x67fbe5['query'])[_0xd81b('0xa')](function(_0x35a295){_0x466e98=_0x35a295;return respondWithRpcPromise(_0xd81b('0x30'),_0x67fbe5['query'],routingClient);})[_0xd81b('0xa')](function(_0x3a05f4){return _[_0xd81b('0x1d')]({},_0x3a05f4,_0x466e98);})[_0xd81b('0xa')](respondWithResult(_0x3abd60,null))[_0xd81b('0xf')](handleError(_0x3abd60,null));};exports['agentCapacity']=function(_0x3dfba7,_0x11d617){if(_0x3dfba7[_0xd81b('0x31')]&&_0x3dfba7[_0xd81b('0x31')][_0xd81b('0x32')]&&_0x3dfba7[_0xd81b('0x33')]&&_0x3dfba7[_0xd81b('0x33')][_0xd81b('0x13')]){for(var _0x4405a8 in _0x3dfba7[_0xd81b('0x31')][_0xd81b('0x32')]){if(_0x3dfba7['body'][_0xd81b('0x32')][_0xd81b('0x34')](_0x4405a8)){db[_0xd81b('0x35')][_0xd81b('0x36')]({'where':{'channel':_0x4405a8,'membername':_0x3dfba7[_0xd81b('0x33')][_0xd81b('0x13')],'type':_0xd81b('0x37'),'exitAt':null,'uniqueid':_0x3dfba7[_0xd81b('0x31')]['interaction'][_0x4405a8]&&_0x3dfba7['body'][_0xd81b('0x32')][_0x4405a8][_0xd81b('0x38')]?{'$notIn':_0x3dfba7[_0xd81b('0x31')][_0xd81b('0x32')][_0x4405a8]}:{'$ne':null}}})[_0xd81b('0xa')](function(_0x37031b){var _0x334bd0=moment()[_0xd81b('0x39')](_0xd81b('0x3a'));for(var _0xcfbbc2=0x0,_0x41e2e6=_0x37031b[_0xd81b('0x38')];_0xcfbbc2<_0x41e2e6;_0xcfbbc2+=0x1){_0x37031b[_0xcfbbc2]['updateAttributes']({'exitAt':_0x334bd0});}});for(var _0x27d18a=0x0;_0x27d18a<_0x3dfba7[_0xd81b('0x31')][_0xd81b('0x32')][_0x4405a8][_0xd81b('0x38')];_0x27d18a+=0x1){db[_0xd81b('0x35')][_0xd81b('0x3b')]({'where':{'channel':_0x4405a8,'membername':_0x3dfba7[_0xd81b('0x33')][_0xd81b('0x13')],'type':_0xd81b('0x37'),'uniqueid':_0x3dfba7['body'][_0xd81b('0x32')][_0x4405a8][_0x27d18a],'exitAt':null},'defaults':{'channel':_0x4405a8,'membername':_0x3dfba7[_0xd81b('0x33')][_0xd81b('0x13')],'interface':_[_0xd81b('0x15')](_0x3dfba7['user'][_0xd81b('0x3c')])?util[_0xd81b('0x39')](_0xd81b('0x3d'),_0x3dfba7[_0xd81b('0x33')][_0xd81b('0x13')]):_0x3dfba7[_0xd81b('0x33')][_0xd81b('0x3c')],'type':_0xd81b('0x37'),'enterAt':moment()[_0xd81b('0x39')]('YYYY-MM-DD\x20HH:mm:ss'),'role':'agent','internal':_0x3dfba7[_0xd81b('0x33')][_0xd81b('0x3e')],'uniqueid':_0x3dfba7[_0xd81b('0x31')][_0xd81b('0x32')][_0x4405a8][_0x27d18a]}});}}}}return respondWithRpcPromise(_0xd81b('0x3f'),{'id':_0x3dfba7[_0xd81b('0x1f')]['id'],'capacity':_0x3dfba7[_0xd81b('0x31')][_0xd81b('0x40')]},routingClient)['then'](respondWithResult(_0x11d617,null))[_0xd81b('0xf')](handleError(_0x11d617,null));};exports[_0xd81b('0x41')]=function(_0x1b523c,_0x3d171a){return respondWithRpcPromise(_0xd81b('0x42'),_0x1b523c['query'])[_0xd81b('0xa')](respondWithResult(_0x3d171a,null))[_0xd81b('0xf')](handleError(_0x3d171a,null));};exports['trunks']=function(_0x1f13c3,_0x315bd5){return respondWithRpcPromise(_0xd81b('0x43'),_0x1f13c3[_0xd81b('0x1a')])[_0xd81b('0xa')](respondWithResult(_0x315bd5,null))[_0xd81b('0xf')](handleError(_0x315bd5,null));};exports[_0xd81b('0x44')]=function(_0x22f588,_0x3ed626){return respondWithRpcPromise(_0xd81b('0x45'),_0x22f588[_0xd81b('0x1a')])['then'](respondWithResult(_0x3ed626,null))[_0xd81b('0xf')](handleError(_0x3ed626,null));};exports['chatQueues']=function(_0x1800fa,_0x7b438c){return respondWithRpcPromise(_0xd81b('0x46'),_0x1800fa[_0xd81b('0x1a')],routingClient)[_0xd81b('0xa')](respondWithResult(_0x7b438c,null))[_0xd81b('0xf')](handleError(_0x7b438c,null));};exports['showChatQueues']=function(_0x2d978d,_0xe0c9c6){return respondWithRpcPromise('ChatQueues',_0x2d978d['query'],routingClient)[_0xd81b('0xa')](findById(_0x2d978d['params']['id']))[_0xd81b('0xa')](respondWithResult(_0xe0c9c6,null))['catch'](handleError(_0xe0c9c6,null));};exports[_0xd81b('0x47')]=function(_0x315a66,_0x3d97ba){return respondWithRpcPromise('MailQueues',_0x315a66[_0xd81b('0x1a')],routingClient)[_0xd81b('0xa')](respondWithResult(_0x3d97ba,null))['catch'](handleError(_0x3d97ba,null));};exports[_0xd81b('0x48')]=function(_0x108aaf,_0x5951ec){return respondWithRpcPromise(_0xd81b('0x49'),_0x108aaf['query'],routingClient)[_0xd81b('0xa')](findById(_0x108aaf[_0xd81b('0x1f')]['id']))[_0xd81b('0xa')](respondWithResult(_0x5951ec,null))[_0xd81b('0xf')](handleError(_0x5951ec,null));};exports[_0xd81b('0x4a')]=function(_0x32eab4,_0x2f2afe){return respondWithRpcPromise(_0xd81b('0x4b'),_0x32eab4[_0xd81b('0x1a')],mailClient)[_0xd81b('0xa')](respondWithResult(_0x2f2afe,null))['catch'](handleError(_0x2f2afe,null));};exports[_0xd81b('0x4c')]=function(_0x434434,_0x385841){return respondWithRpcPromise(_0xd81b('0x4d'),_0x434434[_0xd81b('0x1a')],routingClient)[_0xd81b('0xa')](respondWithResult(_0x385841,null))[_0xd81b('0xf')](handleError(_0x385841,null));};exports['showOpenchannelQueues']=function(_0x57f0fb,_0x5de22d){return respondWithRpcPromise(_0xd81b('0x4d'),_0x57f0fb[_0xd81b('0x1a')],routingClient)[_0xd81b('0xa')](findById(_0x57f0fb[_0xd81b('0x1f')]['id']))[_0xd81b('0xa')](respondWithResult(_0x5de22d,null))[_0xd81b('0xf')](handleError(_0x5de22d,null));};exports[_0xd81b('0x4e')]=function(_0x5afecf,_0x3fcd8c){return respondWithRpcPromise(_0xd81b('0x4f'),_0x5afecf[_0xd81b('0x1a')],routingClient)[_0xd81b('0xa')](respondWithResult(_0x3fcd8c,null))[_0xd81b('0xf')](handleError(_0x3fcd8c,null));};exports[_0xd81b('0x50')]=function(_0xb5fca8,_0x4ed17d){return respondWithRpcPromise(_0xd81b('0x4f'),_0xb5fca8[_0xd81b('0x1a')],routingClient)[_0xd81b('0xa')](findById(_0xb5fca8[_0xd81b('0x1f')]['id']))[_0xd81b('0xa')](respondWithResult(_0x4ed17d,null))[_0xd81b('0xf')](handleError(_0x4ed17d,null));};exports[_0xd81b('0x51')]=function(_0x19d4f0,_0x8fa8cd){return respondWithRpcPromise(_0xd81b('0x52'),_0x19d4f0[_0xd81b('0x1a')],routingClient)[_0xd81b('0xa')](respondWithResult(_0x8fa8cd,null))['catch'](handleError(_0x8fa8cd,null));};exports[_0xd81b('0x53')]=function(_0x5358a6,_0x2e7141){return respondWithRpcPromise(_0xd81b('0x52'),_0x5358a6[_0xd81b('0x1a')],routingClient)[_0xd81b('0xa')](findById(_0x5358a6[_0xd81b('0x1f')]['id']))[_0xd81b('0xa')](respondWithResult(_0x2e7141,null))[_0xd81b('0xf')](handleError(_0x2e7141,null));};exports[_0xd81b('0x54')]=function(_0x10d6d2,_0x36fb7a){return respondWithRpcPromise('FaxQueues',_0x10d6d2[_0xd81b('0x1a')],routingClient)[_0xd81b('0xa')](respondWithResult(_0x36fb7a,null))[_0xd81b('0xf')](handleError(_0x36fb7a,null));};exports[_0xd81b('0x55')]=function(_0x7720d3,_0x5abbb4){return respondWithRpcPromise('FaxQueues',_0x7720d3[_0xd81b('0x1a')],routingClient)[_0xd81b('0xa')](findById(_0x7720d3[_0xd81b('0x1f')]['id']))[_0xd81b('0xa')](respondWithResult(_0x5abbb4,null))[_0xd81b('0xf')](handleError(_0x5abbb4,null));};exports[_0xd81b('0x56')]=function(_0xaee7e3,_0x539132){return respondWithRpcPromise(_0xd81b('0x57'),_0xaee7e3[_0xd81b('0x1a')])[_0xd81b('0xa')](respondWithResult(_0x539132,null))[_0xd81b('0xf')](handleError(_0x539132,null));};exports[_0xd81b('0x58')]=function(_0x21d039,_0x1e0da3){return respondWithRpcPromise(_0xd81b('0x59'),_0x21d039[_0xd81b('0x1a')],routingClient)['then'](respondWithResult(_0x1e0da3,null))[_0xd81b('0xf')](handleError(_0x1e0da3,null));};exports[_0xd81b('0x5a')]=function(_0x3858eb,_0x9c30e7){return respondWithRpcPromise(_0xd81b('0x5b'),_0x3858eb['query'],routingClient)[_0xd81b('0xa')](respondWithResult(_0x9c30e7,null))[_0xd81b('0xf')](handleError(_0x9c30e7,null));};exports['openchannelQueuesWaitingInteractions']=function(_0xa00645,_0x43e593){return respondWithRpcPromise('OpenchannelQueuesWaitingInteractions',_0xa00645[_0xd81b('0x1a')],routingClient)[_0xd81b('0xa')](respondWithResult(_0x43e593,null))[_0xd81b('0xf')](handleError(_0x43e593,null));};exports['openchannelQueuesIdWaitingInteractions']=function(_0x2aff4b,_0x3db4d7){return respondWithRpcPromise(_0xd81b('0x5c'),_0x2aff4b['query'],routingClient)['then'](function(_0xdd970d){if(_0x2aff4b[_0xd81b('0x1a')][_0xd81b('0x5d')]!==undefined){var _0x5d601d=_(_0xdd970d[_0xd81b('0x16')])[_0xd81b('0x5e')]([_0x2aff4b[_0xd81b('0x1a')][_0xd81b('0x5d')],_0x2aff4b['params']['id']])['map'](_0xd81b('0x5f'))[_0xd81b('0x60')]()[_0xd81b('0x61')]();return _0xdd970d[_0xd81b('0x16')]['filter'](function(_0x1b8b17){return _0x5d601d[_0xd81b('0x62')](_0x1b8b17['queue_id'])>-0x1;});}else{return _0xdd970d[_0xd81b('0x16')]['filter'](function(_0x32a8f4){return _0x32a8f4[_0xd81b('0x5f')]===parseInt(_0x2aff4b['params']['id']);});}})[_0xd81b('0xa')](respondWithResult(_0x3db4d7,null))[_0xd81b('0xf')](handleError(_0x3db4d7,null));};exports[_0xd81b('0x63')]=function(_0x2490f1,_0x2b0fe4){return respondWithRpcPromise('SmsQueuesWaitingInteractions',_0x2490f1[_0xd81b('0x1a')],routingClient)[_0xd81b('0xa')](respondWithResult(_0x2b0fe4,null))[_0xd81b('0xf')](handleError(_0x2b0fe4,null));};exports[_0xd81b('0x64')]=function(_0x1919b2,_0x2b1d96){return respondWithRpcPromise('WhatsappQueuesWaitingInteractions',_0x1919b2['query'],routingClient)[_0xd81b('0xa')](respondWithResult(_0x2b1d96,null))[_0xd81b('0xf')](handleError(_0x2b1d96,null));};exports[_0xd81b('0x65')]=function(_0x15aed5,_0x4dd8ac){return respondWithRpcPromise(_0xd81b('0x66'),_0x15aed5[_0xd81b('0x1a')],routingClient)[_0xd81b('0xa')](respondWithResult(_0x4dd8ac,null))[_0xd81b('0xf')](handleError(_0x4dd8ac,null));};exports[_0xd81b('0x67')]=function(_0x589882){return function(_0x3744bf,_0x374ac0){var _0x159b28,_0x40b468;var _0x1d596c=_[_0xd81b('0x68')](_0x589882);var _0x402eb9=_0x589882==='chat'?_0xd81b('0x69'):_0xd81b('0x6a');return db[_0x1d596c+_0xd81b('0x6b')][_0xd81b('0x6c')]({'raw':!![],'where':{'id':_0x3744bf[_0xd81b('0x1f')]['id']}})[_0xd81b('0xa')](function(_0x59bee6){if(_[_0xd81b('0x15')](_0x59bee6)){throw new Error(_0x1d596c+'\x20Queue\x20not\x20found');}_0x159b28=_0x59bee6;return db[_0x1d596c+_0xd81b('0x6d')][_0xd81b('0x6c')]({'where':{'id':_0x3744bf[_0xd81b('0x31')]['messageId']},'include':[{'model':db[_0x1d596c+_0xd81b('0x6e')],'as':_0xd81b('0x6e')},{'model':db[_0x1d596c+_0x402eb9],'as':_0xd81b('0x6a')}]});})[_0xd81b('0xa')](function(_0x254105){if(_[_0xd81b('0x15')](_0x254105)){throw new Error(_0x1d596c+'\x20Message\x20not\x20found');}_0x40b468=_0x254105;return _0x254105[_0xd81b('0x6f')]({'read':0x0,'readAt':null,'UserId':null});})['then'](function(){var _0x5f5514={'uniqueid':_0x589882+'.'+_0x40b468['id']+'.'+_0x40b468[_0xd81b('0x6e')]['id'],'FromUserId':_0x3744bf[_0xd81b('0x33')]['id'],'type':_0xd81b('0x70')};_0x5f5514[_0x1d596c+'MessageId']=_0x40b468['id'];_0x5f5514[_0x1d596c+_0xd81b('0x71')]=_0x40b468[_0xd81b('0x6e')]['id'];_0x5f5514[_0xd81b('0x72')+_0x1d596c+_0x402eb9+'Id']=_0x40b468[_0xd81b('0x6a')]['id'];_0x5f5514['To'+_0x1d596c+_0xd81b('0x73')]=_0x159b28['id'];return db[_0x1d596c+_0xd81b('0x74')]['create'](_0x5f5514);})[_0xd81b('0xa')](function(){return respondWithRpcPromise(_0xd81b('0x75'),{'channel':_0x589882,'interaction':_0x40b468[_0xd81b('0x6e')],'message':_0x40b468,'account':_0x40b468[_0xd81b('0x6a')],'applications':[{'id':0x0,'priority':0x1,'app':_0xd81b('0x70'),'appdata':_0x159b28[_0xd81b('0x13')]+','+(_0x40b468[_0xd81b('0x6a')][_0xd81b('0x76')]||0x12c),'interval':_0xd81b('0x77')}]},routingClient);})[_0xd81b('0xa')](respondWithResult(_0x374ac0,null))[_0xd81b('0xf')](handleError(_0x374ac0,null));};};exports[_0xd81b('0x78')]=function(_0x42eb62,_0x2c19fd){var _0x36d8fd,_0x5adfe4;if(_[_0xd81b('0x15')](_0x42eb62['body'][_0xd81b('0x79')])){throw new Error(_0xd81b('0x7a'));}var _0x1ca94b=_0x42eb62[_0xd81b('0x31')][_0xd81b('0x79')];var _0x115805=_['capitalize'](_0x1ca94b);var _0x3a41e6=_0x1ca94b===_0xd81b('0x7b')?_0xd81b('0x69'):_0xd81b('0x6a');return db[_0xd81b('0x7c')][_0xd81b('0x6c')]({'raw':!![],'where':{'id':_0x42eb62[_0xd81b('0x1f')]['id'],'role':_0xd81b('0x7d')}})[_0xd81b('0xa')](function(_0xfacc8f){if(_[_0xd81b('0x15')](_0xfacc8f)){throw new Error(_0xd81b('0x7e'));}_0x36d8fd=_0xfacc8f;return db[_0x115805+'Message'][_0xd81b('0x6c')]({'where':{'id':_0x42eb62[_0xd81b('0x31')][_0xd81b('0x7f')]},'include':[{'model':db[_0x115805+_0xd81b('0x6e')],'as':_0xd81b('0x6e')},{'model':db[_0x115805+_0x3a41e6],'as':'Account'}]});})[_0xd81b('0xa')](function(_0x1e61d8){if(_[_0xd81b('0x15')](_0x1e61d8)){throw new Error(_0x115805+_0xd81b('0x80'));}_0x5adfe4=_0x1e61d8;return _0x1e61d8[_0xd81b('0x6f')]({'read':0x0,'readAt':null,'UserId':null});})[_0xd81b('0xa')](function(){var _0x4e4919={'uniqueid':_0x1ca94b+'.'+_0x5adfe4['id']+'.'+_0x5adfe4[_0xd81b('0x6e')]['id'],'FromUserId':_0x42eb62['user']['id'],'type':_0xd81b('0x70'),'ToUserId':_0x36d8fd['id']};_0x4e4919[_0x115805+_0xd81b('0x81')]=_0x5adfe4['id'];_0x4e4919[_0x115805+_0xd81b('0x71')]=_0x5adfe4[_0xd81b('0x6e')]['id'];_0x4e4919['From'+_0x115805+_0x3a41e6+'Id']=_0x5adfe4[_0xd81b('0x6a')]['id'];return db[_0x115805+_0xd81b('0x74')]['create'](_0x4e4919);})[_0xd81b('0xa')](function(){return respondWithRpcPromise(_0xd81b('0x75'),{'channel':_0x1ca94b,'interaction':_0x5adfe4[_0xd81b('0x6e')],'message':_0x5adfe4,'account':_0x5adfe4[_0xd81b('0x6a')],'applications':[{'id':0x0,'priority':0x1,'app':_0xd81b('0x7d'),'appdata':_0x36d8fd['name']+','+(_0x5adfe4['Account'][_0xd81b('0x82')]||0x12c),'interval':'*,*,*,*'}]},routingClient);})[_0xd81b('0xa')](respondWithResult(_0x2c19fd,null))['catch'](handleError(_0x2c19fd,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7e8a=['get','index','/:id','show','/:id/run','run','isAuthenticated','create','put','exports','multer','path','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./schedule.controller'];(function(_0x397e5f,_0x454c8f){var _0x5302b8=function(_0x1a29ef){while(--_0x1a29ef){_0x397e5f['push'](_0x397e5f['shift']());}};_0x5302b8(++_0x454c8f);}(_0x7e8a,0x1c4));var _0xa7e8=function(_0x7e2eb0,_0x17cd58){_0x7e2eb0=_0x7e2eb0-0x0;var _0xd92de4=_0x7e8a[_0x7e2eb0];return _0xd92de4;};'use strict';var multer=require(_0xa7e8('0x0'));var util=require('util');var path=require(_0xa7e8('0x1'));var timeout=require('connect-timeout');var express=require('express');var router=express['Router']();var fs_extra=require(_0xa7e8('0x2'));var auth=require(_0xa7e8('0x3'));var interaction=require(_0xa7e8('0x4'));var config=require(_0xa7e8('0x5'));var controller=require(_0xa7e8('0x6'));router[_0xa7e8('0x7')]('/',auth['isAuthenticated'](),controller[_0xa7e8('0x8')]);router[_0xa7e8('0x7')](_0xa7e8('0x9'),auth['isAuthenticated'](),controller[_0xa7e8('0xa')]);router[_0xa7e8('0x7')](_0xa7e8('0xb'),auth['isAuthenticated'](),controller[_0xa7e8('0xc')]);router['post']('/',auth[_0xa7e8('0xd')](),controller[_0xa7e8('0xe')]);router[_0xa7e8('0xf')](_0xa7e8('0x9'),auth['isAuthenticated'](),controller['update']);router['delete'](_0xa7e8('0x9'),auth['isAuthenticated'](),controller['destroy']);module[_0xa7e8('0x10')]=router;
\ No newline at end of file
+var _0x72e9=['show','post','create','put','update','delete','destroy','exports','multer','util','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./schedule.controller','get','isAuthenticated','index','/:id'];(function(_0x16d411,_0x5e0970){var _0x20336d=function(_0x15d8aa){while(--_0x15d8aa){_0x16d411['push'](_0x16d411['shift']());}};_0x20336d(++_0x5e0970);}(_0x72e9,0xe4));var _0x972e=function(_0x5bfe65,_0x14724d){_0x5bfe65=_0x5bfe65-0x0;var _0x2c10c5=_0x72e9[_0x5bfe65];return _0x2c10c5;};'use strict';var multer=require(_0x972e('0x0'));var util=require(_0x972e('0x1'));var path=require('path');var timeout=require(_0x972e('0x2'));var express=require('express');var router=express[_0x972e('0x3')]();var fs_extra=require(_0x972e('0x4'));var auth=require(_0x972e('0x5'));var interaction=require(_0x972e('0x6'));var config=require('../../config/environment');var controller=require(_0x972e('0x7'));router[_0x972e('0x8')]('/',auth[_0x972e('0x9')](),controller[_0x972e('0xa')]);router[_0x972e('0x8')](_0x972e('0xb'),auth[_0x972e('0x9')](),controller[_0x972e('0xc')]);router[_0x972e('0x8')]('/:id/run',auth[_0x972e('0x9')](),controller['run']);router[_0x972e('0xd')]('/',auth['isAuthenticated'](),controller[_0x972e('0xe')]);router[_0x972e('0xf')](_0x972e('0xb'),auth[_0x972e('0x9')](),controller[_0x972e('0x10')]);router[_0x972e('0x11')]('/:id',auth['isAuthenticated'](),controller[_0x972e('0x12')]);module[_0x972e('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe5b7=['STRING','BOOLEAN','DATE','INTEGER','years','quarters','months','days','hours','minutes','ENUM','csv','pdf','xlsx','custom','default','TEXT','sequelize'];(function(_0x18cd5b,_0x10240b){var _0x5eaa52=function(_0x2bccad){while(--_0x2bccad){_0x18cd5b['push'](_0x18cd5b['shift']());}};_0x5eaa52(++_0x10240b);}(_0xe5b7,0x7d));var _0x7e5b=function(_0x3fc040,_0x2b7014){_0x3fc040=_0x3fc040-0x0;var _0x1e7ddc=_0xe5b7[_0x3fc040];return _0x1e7ddc;};'use strict';var Sequelize=require(_0x7e5b('0x0'));module['exports']={'name':{'type':Sequelize[_0x7e5b('0x1')],'allowNull':![]},'description':{'type':Sequelize[_0x7e5b('0x1')]},'active':{'type':Sequelize[_0x7e5b('0x2')],'allowNull':![],'defaultValue':![]},'cron':{'type':Sequelize[_0x7e5b('0x1')],'allowNull':![],'defaultValue':'0\x200\x20*\x20*\x20*'},'startAt':{'type':Sequelize[_0x7e5b('0x3')],'allowNull':![]},'endAt':{'type':Sequelize[_0x7e5b('0x3')],'allowNull':![]},'subtractNumber':{'type':Sequelize[_0x7e5b('0x4')],'allowNull':![],'defaultValue':0x1,'validate':{'min':0x1}},'subtractUnit':{'type':Sequelize['ENUM'](_0x7e5b('0x5'),_0x7e5b('0x6'),_0x7e5b('0x7'),'weeks',_0x7e5b('0x8'),_0x7e5b('0x9'),_0x7e5b('0xa')),'allowNull':![],'defaultValue':_0x7e5b('0x8')},'output':{'type':Sequelize[_0x7e5b('0xb')](_0x7e5b('0xc'),_0x7e5b('0xd'),_0x7e5b('0xe')),'allowNull':![],'defaultValue':_0x7e5b('0xc')},'type':{'type':Sequelize['ENUM'](_0x7e5b('0xf'),_0x7e5b('0x10')),'allowNull':![],'defaultValue':'custom'},'sendMail':{'type':Sequelize[_0x7e5b('0x2')],'defaultValue':![]},'email':{'type':Sequelize[_0x7e5b('0x1')]},'cc':{'type':Sequelize[_0x7e5b('0x11')]},'bcc':{'type':Sequelize['TEXT']},'sendIfEmpty':{'type':Sequelize[_0x7e5b('0x2')],'defaultValue':!![]}};
\ No newline at end of file
+var _0x05d8=['months','weeks','hours','minutes','days','ENUM','csv','pdf','xlsx','custom','default','TEXT','exports','STRING','BOOLEAN','0\x200\x20*\x20*\x20*','DATE','years','quarters'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x05d8,0x13c));var _0x805d=function(_0x32d457,_0x1a39c9){_0x32d457=_0x32d457-0x0;var _0x338386=_0x05d8[_0x32d457];return _0x338386;};'use strict';var Sequelize=require('sequelize');module[_0x805d('0x0')]={'name':{'type':Sequelize[_0x805d('0x1')],'allowNull':![]},'description':{'type':Sequelize[_0x805d('0x1')]},'active':{'type':Sequelize[_0x805d('0x2')],'allowNull':![],'defaultValue':![]},'cron':{'type':Sequelize[_0x805d('0x1')],'allowNull':![],'defaultValue':_0x805d('0x3')},'startAt':{'type':Sequelize[_0x805d('0x4')],'allowNull':![]},'endAt':{'type':Sequelize[_0x805d('0x4')],'allowNull':![]},'subtractNumber':{'type':Sequelize['INTEGER'],'allowNull':![],'defaultValue':0x1,'validate':{'min':0x1}},'subtractUnit':{'type':Sequelize['ENUM'](_0x805d('0x5'),_0x805d('0x6'),_0x805d('0x7'),_0x805d('0x8'),'days',_0x805d('0x9'),_0x805d('0xa')),'allowNull':![],'defaultValue':_0x805d('0xb')},'output':{'type':Sequelize[_0x805d('0xc')](_0x805d('0xd'),_0x805d('0xe'),_0x805d('0xf')),'allowNull':![],'defaultValue':_0x805d('0xd')},'type':{'type':Sequelize['ENUM'](_0x805d('0x10'),_0x805d('0x11')),'allowNull':![],'defaultValue':'custom'},'sendMail':{'type':Sequelize[_0x805d('0x2')],'defaultValue':![]},'email':{'type':Sequelize['STRING']},'cc':{'type':Sequelize[_0x805d('0x12')]},'bcc':{'type':Sequelize[_0x805d('0x12')]},'sendIfEmpty':{'type':Sequelize[_0x805d('0x2')],'defaultValue':!![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe9f0=['json','offset','undefined','limit','count','set','apply','reject','save','update','then','destroy','get','Scheduler','error','stack','name','index','rawAttributes','fieldName','type','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','map','VIRTUAL','merge','options','Schedule','includeAll','include','findAll','rows','catch','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','run','../../config/schedule','rimraf','fast-json-patch','moment','bluebird','util','path','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end'];(function(_0x286f48,_0x2ac09c){var _0x3484b0=function(_0x4b2141){while(--_0x4b2141){_0x286f48['push'](_0x286f48['shift']());}};_0x3484b0(++_0x2ac09c);}(_0xe9f0,0xe4));var _0x0e9f=function(_0x4b0033,_0x214194){_0x4b0033=_0x4b0033-0x0;var _0xe1b652=_0xe9f0[_0x4b0033];return _0xe1b652;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x0e9f('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x0e9f('0x1'));var rp=require('request-promise');var moment=require(_0x0e9f('0x2'));var BPromise=require(_0x0e9f('0x3'));var Mustache=require('mustache');var util=require(_0x0e9f('0x4'));var path=require(_0x0e9f('0x5'));var sox=require('sox');var csv=require(_0x0e9f('0x6'));var ejs=require(_0x0e9f('0x7'));var fs=require('fs');var fs_extra=require(_0x0e9f('0x8'));var _=require(_0x0e9f('0x9'));var squel=require('squel');var crypto=require(_0x0e9f('0xa'));var jsforce=require(_0x0e9f('0xb'));var deskjs=require(_0x0e9f('0xc'));var toCsv=require(_0x0e9f('0x6'));var querystring=require(_0x0e9f('0xd'));var Papa=require(_0x0e9f('0xe'));var Redis=require(_0x0e9f('0xf'));var authService=require(_0x0e9f('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0x0e9f('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x0e9f('0x12'))(_0x0e9f('0x13'));var utils=require(_0x0e9f('0x14'));var config=require(_0x0e9f('0x15'));var licenseUtil=require(_0x0e9f('0x16'));var db=require(_0x0e9f('0x17'))['db'];function respondWithStatusCode(_0x2e81ac,_0x50af0a){_0x50af0a=_0x50af0a||0xcc;return function(_0x9fa701){if(_0x9fa701){return _0x2e81ac[_0x0e9f('0x18')](_0x50af0a);}return _0x2e81ac[_0x0e9f('0x19')](_0x50af0a)[_0x0e9f('0x1a')]();};}function respondWithResult(_0x3754ef,_0x44274a){_0x44274a=_0x44274a||0xc8;return function(_0x5c2eb5){if(_0x5c2eb5){return _0x3754ef[_0x0e9f('0x19')](_0x44274a)[_0x0e9f('0x1b')](_0x5c2eb5);}};}function respondWithFilteredResult(_0x475a2,_0x1e6b47){return function(_0x5ae825){if(_0x5ae825){var _0x20a1ee=typeof _0x1e6b47[_0x0e9f('0x1c')]===_0x0e9f('0x1d')&&typeof _0x1e6b47[_0x0e9f('0x1e')]==='undefined';var _0x5a5d56=_0x5ae825[_0x0e9f('0x1f')];var _0x3c40df=_0x20a1ee?0x0:_0x1e6b47[_0x0e9f('0x1c')];var _0xf30106=_0x20a1ee?_0x5ae825[_0x0e9f('0x1f')]:_0x1e6b47[_0x0e9f('0x1c')]+_0x1e6b47[_0x0e9f('0x1e')];var _0x1b77da;if(_0xf30106>=_0x5a5d56){_0xf30106=_0x5a5d56;_0x1b77da=0xc8;}else{_0x1b77da=0xce;}_0x475a2[_0x0e9f('0x19')](_0x1b77da);return _0x475a2[_0x0e9f('0x20')]('Content-Range',_0x3c40df+'-'+_0xf30106+'/'+_0x5a5d56)[_0x0e9f('0x1b')](_0x5ae825);}return null;};}function patchUpdates(_0x29bf8b){return function(_0x525df7){try{jsonpatch[_0x0e9f('0x21')](_0x525df7,_0x29bf8b,!![]);}catch(_0x11f87e){return BPromise[_0x0e9f('0x22')](_0x11f87e);}return _0x525df7[_0x0e9f('0x23')]();};}function saveUpdates(_0x16bb21,_0x2fe97a){return function(_0x5a8805){if(_0x5a8805){return _0x5a8805[_0x0e9f('0x24')](_0x16bb21)[_0x0e9f('0x25')](function(_0x5b6a3c){return _0x5b6a3c;});}return null;};}function removeEntity(_0x5c9f18,_0x32aecb){return function(_0xac60a2){if(_0xac60a2){return _0xac60a2[_0x0e9f('0x26')]()[_0x0e9f('0x25')](function(){var _0x532e24=_0xac60a2[_0x0e9f('0x27')]({'plain':!![]});var _0x2b5544=_0x0e9f('0x28');return db['UserProfileResource'][_0x0e9f('0x26')]({'where':{'type':_0x2b5544,'resourceId':_0x532e24['id']}})[_0x0e9f('0x25')](function(){return _0xac60a2;});})[_0x0e9f('0x25')](function(){_0x5c9f18[_0x0e9f('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x3a62bf,_0x1f3a92){return function(_0x35f6bd){if(!_0x35f6bd){_0x3a62bf[_0x0e9f('0x18')](0x194);}return _0x35f6bd;};}function handleError(_0x1e3a09,_0x44a634){_0x44a634=_0x44a634||0x1f4;return function(_0x496b56){logger[_0x0e9f('0x29')](_0x496b56[_0x0e9f('0x2a')]);if(_0x496b56['name']){delete _0x496b56[_0x0e9f('0x2b')];}_0x1e3a09[_0x0e9f('0x19')](_0x44a634)['send'](_0x496b56);};}exports[_0x0e9f('0x2c')]=function(_0x209acf,_0x112771){var _0x2b0d8f={},_0x5aa621={},_0x439c8f={'count':0x0,'rows':[]};var _0x293fc9=_['map'](db['Schedule'][_0x0e9f('0x2d')],function(_0x139b4d){return{'name':_0x139b4d[_0x0e9f('0x2e')],'type':_0x139b4d[_0x0e9f('0x2f')]['key']};});_0x5aa621[_0x0e9f('0x30')]=_['map'](_0x293fc9,'name');_0x5aa621[_0x0e9f('0x31')]=_[_0x0e9f('0x32')](_0x209acf[_0x0e9f('0x31')]);_0x5aa621[_0x0e9f('0x33')]=_[_0x0e9f('0x34')](_0x5aa621[_0x0e9f('0x30')],_0x5aa621[_0x0e9f('0x31')]);_0x2b0d8f['attributes']=_[_0x0e9f('0x34')](_0x5aa621['model'],qs[_0x0e9f('0x35')](_0x209acf[_0x0e9f('0x31')][_0x0e9f('0x35')]));_0x2b0d8f[_0x0e9f('0x36')]=_0x2b0d8f[_0x0e9f('0x36')][_0x0e9f('0x37')]?_0x2b0d8f[_0x0e9f('0x36')]:_0x5aa621[_0x0e9f('0x30')];if(!_0x209acf[_0x0e9f('0x31')][_0x0e9f('0x38')](_0x0e9f('0x39'))){_0x2b0d8f['limit']=qs[_0x0e9f('0x1e')](_0x209acf['query']['limit']);_0x2b0d8f[_0x0e9f('0x1c')]=qs[_0x0e9f('0x1c')](_0x209acf['query'][_0x0e9f('0x1c')]);}_0x2b0d8f[_0x0e9f('0x3a')]=qs['sort'](_0x209acf[_0x0e9f('0x31')][_0x0e9f('0x3b')]);_0x2b0d8f[_0x0e9f('0x3c')]=qs['filters'](_[_0x0e9f('0x3d')](_0x209acf[_0x0e9f('0x31')],_0x5aa621[_0x0e9f('0x33')]),_0x293fc9);if(_0x209acf[_0x0e9f('0x31')][_0x0e9f('0x3e')]){_0x2b0d8f['where']=_['merge'](_0x2b0d8f[_0x0e9f('0x3c')],{'$or':_[_0x0e9f('0x3f')](_0x293fc9,function(_0x53a66b){if(_0x53a66b[_0x0e9f('0x2f')]!==_0x0e9f('0x40')){var _0x1b10bb={};_0x1b10bb[_0x53a66b[_0x0e9f('0x2b')]]={'$like':'%'+_0x209acf[_0x0e9f('0x31')]['filter']+'%'};return _0x1b10bb;}})});}_0x2b0d8f=_[_0x0e9f('0x41')]({},_0x2b0d8f,_0x209acf[_0x0e9f('0x42')]);var _0x37575e={'where':_0x2b0d8f[_0x0e9f('0x3c')]};return db[_0x0e9f('0x43')]['count'](_0x37575e)[_0x0e9f('0x25')](function(_0x1760b7){_0x439c8f['count']=_0x1760b7;if(_0x209acf['query'][_0x0e9f('0x44')]){_0x2b0d8f[_0x0e9f('0x45')]=[{'all':!![]}];}return db[_0x0e9f('0x43')][_0x0e9f('0x46')](_0x2b0d8f);})['then'](function(_0x22a0ac){_0x439c8f[_0x0e9f('0x47')]=_0x22a0ac;return _0x439c8f;})[_0x0e9f('0x25')](respondWithFilteredResult(_0x112771,_0x2b0d8f))[_0x0e9f('0x48')](handleError(_0x112771,null));};exports['show']=function(_0x4a15f5,_0x53ddc1){var _0x1f9527={'raw':![],'where':{'id':_0x4a15f5['params']['id']}},_0x2ed15b={};_0x2ed15b[_0x0e9f('0x30')]=_[_0x0e9f('0x32')](db[_0x0e9f('0x43')][_0x0e9f('0x2d')]);_0x2ed15b[_0x0e9f('0x31')]=_['keys'](_0x4a15f5[_0x0e9f('0x31')]);_0x2ed15b[_0x0e9f('0x33')]=_[_0x0e9f('0x34')](_0x2ed15b['model'],_0x2ed15b['query']);_0x1f9527['attributes']=_[_0x0e9f('0x34')](_0x2ed15b[_0x0e9f('0x30')],qs[_0x0e9f('0x35')](_0x4a15f5[_0x0e9f('0x31')][_0x0e9f('0x35')]));_0x1f9527[_0x0e9f('0x36')]=_0x1f9527['attributes'][_0x0e9f('0x37')]?_0x1f9527['attributes']:_0x2ed15b[_0x0e9f('0x30')];if(_0x4a15f5[_0x0e9f('0x31')][_0x0e9f('0x44')]){_0x1f9527[_0x0e9f('0x45')]=[{'all':!![]}];}_0x1f9527=_[_0x0e9f('0x41')]({},_0x1f9527,_0x4a15f5[_0x0e9f('0x42')]);return db['Schedule'][_0x0e9f('0x49')](_0x1f9527)[_0x0e9f('0x25')](handleEntityNotFound(_0x53ddc1,null))[_0x0e9f('0x25')](respondWithResult(_0x53ddc1,null))[_0x0e9f('0x48')](handleError(_0x53ddc1,null));};exports[_0x0e9f('0x4a')]=function(_0x2ca411,_0x9c285a){return db[_0x0e9f('0x43')]['create'](_0x2ca411[_0x0e9f('0x4b')],{})[_0x0e9f('0x25')](function(_0x3f1230){var _0x453568=_0x2ca411[_0x0e9f('0x4c')][_0x0e9f('0x27')]({'plain':!![]});if(!_0x453568)throw new Error(_0x0e9f('0x4d'));if(_0x453568[_0x0e9f('0x4e')]===_0x0e9f('0x4c')){var _0x2eaebe=_0x3f1230[_0x0e9f('0x27')]({'plain':!![]});var _0x27101f=_0x0e9f('0x28');return db[_0x0e9f('0x4f')][_0x0e9f('0x49')]({'where':{'name':_0x27101f,'userProfileId':_0x453568[_0x0e9f('0x50')]},'raw':!![]})[_0x0e9f('0x25')](function(_0x44afad){if(_0x44afad&&_0x44afad['autoAssociation']===0x0){return db['UserProfileResource'][_0x0e9f('0x4a')]({'name':_0x2eaebe['name'],'resourceId':_0x2eaebe['id'],'type':_0x44afad[_0x0e9f('0x2b')],'sectionId':_0x44afad['id']},{})[_0x0e9f('0x25')](function(){return _0x3f1230;});}else{return _0x3f1230;}})[_0x0e9f('0x48')](function(_0x21a8e6){logger[_0x0e9f('0x29')](_0x0e9f('0x51'),_0x21a8e6);throw _0x21a8e6;});}return _0x3f1230;})[_0x0e9f('0x25')](respondWithResult(_0x9c285a,0xc9))['catch'](handleError(_0x9c285a,null));};exports[_0x0e9f('0x24')]=function(_0x531182,_0x39b366){if(_0x531182[_0x0e9f('0x4b')]['id']){delete _0x531182['body']['id'];}return db[_0x0e9f('0x43')][_0x0e9f('0x49')]({'where':{'id':_0x531182[_0x0e9f('0x52')]['id']}})[_0x0e9f('0x25')](handleEntityNotFound(_0x39b366,null))[_0x0e9f('0x25')](saveUpdates(_0x531182[_0x0e9f('0x4b')],null))[_0x0e9f('0x25')](respondWithResult(_0x39b366,null))[_0x0e9f('0x48')](handleError(_0x39b366,null));};exports[_0x0e9f('0x26')]=function(_0xf16e70,_0x438b29){return db[_0x0e9f('0x43')][_0x0e9f('0x49')]({'where':{'id':_0xf16e70[_0x0e9f('0x52')]['id']}})[_0x0e9f('0x25')](handleEntityNotFound(_0x438b29,null))[_0x0e9f('0x25')](removeEntity(_0x438b29,null))['catch'](handleError(_0x438b29,null));};exports[_0x0e9f('0x53')]=function(_0x2c0b19,_0x1dd162,_0x2704e1){var _0x51967e=require(_0x0e9f('0x54'));return db[_0x0e9f('0x43')][_0x0e9f('0x49')]({'where':{'id':_0x2c0b19[_0x0e9f('0x52')]['id']},'raw':!![]})[_0x0e9f('0x25')](handleEntityNotFound(_0x1dd162,null))[_0x0e9f('0x25')](function(){_0x51967e[_0x0e9f('0x53')](_0x2c0b19[_0x0e9f('0x52')]['id']);})[_0x0e9f('0x25')](respondWithStatusCode(_0x1dd162,null))['catch'](handleError(_0x1dd162,null));};
\ No newline at end of file
+var _0xbf1a=['reject','save','update','then','destroy','get','Scheduler','UserProfileResource','error','stack','name','send','index','rawAttributes','fieldName','type','query','keys','filters','intersection','model','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','filter','map','VIRTUAL','merge','options','Schedule','includeAll','include','findAll','rows','catch','show','params','find','create','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','../../config/schedule','run','eml-format','zip-dir','fast-json-patch','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../mysqldb','sendStatus','status','json','undefined','limit','count','offset'];(function(_0x4c8232,_0x4e0dea){var _0x3cc8e5=function(_0x248561){while(--_0x248561){_0x4c8232['push'](_0x4c8232['shift']());}};_0x3cc8e5(++_0x4e0dea);}(_0xbf1a,0x1de));var _0xabf1=function(_0x3b6b0b,_0xf70e52){_0x3b6b0b=_0x3b6b0b-0x0;var _0x12ea96=_0xbf1a[_0x3b6b0b];return _0x12ea96;};'use strict';var emlformat=require(_0xabf1('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xabf1('0x1'));var jsonpatch=require(_0xabf1('0x2'));var rp=require('request-promise');var moment=require(_0xabf1('0x3'));var BPromise=require(_0xabf1('0x4'));var Mustache=require('mustache');var util=require(_0xabf1('0x5'));var path=require(_0xabf1('0x6'));var sox=require(_0xabf1('0x7'));var csv=require(_0xabf1('0x8'));var ejs=require(_0xabf1('0x9'));var fs=require('fs');var fs_extra=require(_0xabf1('0xa'));var _=require(_0xabf1('0xb'));var squel=require(_0xabf1('0xc'));var crypto=require(_0xabf1('0xd'));var jsforce=require(_0xabf1('0xe'));var deskjs=require('desk.js');var toCsv=require(_0xabf1('0x8'));var querystring=require(_0xabf1('0xf'));var Papa=require(_0xabf1('0x10'));var Redis=require(_0xabf1('0x11'));var authService=require('../../components/auth/service');var qs=require(_0xabf1('0x12'));var as=require(_0xabf1('0x13'));var hardwareService=require(_0xabf1('0x14'));var logger=require(_0xabf1('0x15'))(_0xabf1('0x16'));var utils=require(_0xabf1('0x17'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0xabf1('0x18'))['db'];function respondWithStatusCode(_0x364614,_0x33a98f){_0x33a98f=_0x33a98f||0xcc;return function(_0x2d27d4){if(_0x2d27d4){return _0x364614[_0xabf1('0x19')](_0x33a98f);}return _0x364614[_0xabf1('0x1a')](_0x33a98f)['end']();};}function respondWithResult(_0x585dbe,_0x590d21){_0x590d21=_0x590d21||0xc8;return function(_0x166cf9){if(_0x166cf9){return _0x585dbe[_0xabf1('0x1a')](_0x590d21)[_0xabf1('0x1b')](_0x166cf9);}};}function respondWithFilteredResult(_0xfacb08,_0x5e1503){return function(_0x28e7b2){if(_0x28e7b2){var _0x128fb0=typeof _0x5e1503['offset']===_0xabf1('0x1c')&&typeof _0x5e1503[_0xabf1('0x1d')]==='undefined';var _0x2905c2=_0x28e7b2[_0xabf1('0x1e')];var _0x369158=_0x128fb0?0x0:_0x5e1503[_0xabf1('0x1f')];var _0x199d3e=_0x128fb0?_0x28e7b2[_0xabf1('0x1e')]:_0x5e1503[_0xabf1('0x1f')]+_0x5e1503[_0xabf1('0x1d')];var _0x4d0dde;if(_0x199d3e>=_0x2905c2){_0x199d3e=_0x2905c2;_0x4d0dde=0xc8;}else{_0x4d0dde=0xce;}_0xfacb08[_0xabf1('0x1a')](_0x4d0dde);return _0xfacb08['set']('Content-Range',_0x369158+'-'+_0x199d3e+'/'+_0x2905c2)['json'](_0x28e7b2);}return null;};}function patchUpdates(_0xefb4df){return function(_0x50c1fe){try{jsonpatch['apply'](_0x50c1fe,_0xefb4df,!![]);}catch(_0x177000){return BPromise[_0xabf1('0x20')](_0x177000);}return _0x50c1fe[_0xabf1('0x21')]();};}function saveUpdates(_0x4d7af6,_0x22e9e3){return function(_0x37eb41){if(_0x37eb41){return _0x37eb41[_0xabf1('0x22')](_0x4d7af6)[_0xabf1('0x23')](function(_0x546c1f){return _0x546c1f;});}return null;};}function removeEntity(_0x210c35,_0x371836){return function(_0x7342b5){if(_0x7342b5){return _0x7342b5[_0xabf1('0x24')]()[_0xabf1('0x23')](function(){var _0x3fe9f9=_0x7342b5[_0xabf1('0x25')]({'plain':!![]});var _0xc849a4=_0xabf1('0x26');return db[_0xabf1('0x27')][_0xabf1('0x24')]({'where':{'type':_0xc849a4,'resourceId':_0x3fe9f9['id']}})[_0xabf1('0x23')](function(){return _0x7342b5;});})[_0xabf1('0x23')](function(){_0x210c35[_0xabf1('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5a19c2,_0x716302){return function(_0x54f8d5){if(!_0x54f8d5){_0x5a19c2['sendStatus'](0x194);}return _0x54f8d5;};}function handleError(_0x4ad3ce,_0x276015){_0x276015=_0x276015||0x1f4;return function(_0x367db1){logger[_0xabf1('0x28')](_0x367db1[_0xabf1('0x29')]);if(_0x367db1['name']){delete _0x367db1[_0xabf1('0x2a')];}_0x4ad3ce[_0xabf1('0x1a')](_0x276015)[_0xabf1('0x2b')](_0x367db1);};}exports[_0xabf1('0x2c')]=function(_0x32cdd9,_0x4b55e3){var _0x34d4ff={},_0x1e9fdf={},_0x533b3a={'count':0x0,'rows':[]};var _0x431d66=_['map'](db['Schedule'][_0xabf1('0x2d')],function(_0x305142){return{'name':_0x305142[_0xabf1('0x2e')],'type':_0x305142[_0xabf1('0x2f')]['key']};});_0x1e9fdf['model']=_['map'](_0x431d66,_0xabf1('0x2a'));_0x1e9fdf[_0xabf1('0x30')]=_[_0xabf1('0x31')](_0x32cdd9[_0xabf1('0x30')]);_0x1e9fdf[_0xabf1('0x32')]=_[_0xabf1('0x33')](_0x1e9fdf[_0xabf1('0x34')],_0x1e9fdf['query']);_0x34d4ff['attributes']=_[_0xabf1('0x33')](_0x1e9fdf['model'],qs[_0xabf1('0x35')](_0x32cdd9['query'][_0xabf1('0x35')]));_0x34d4ff['attributes']=_0x34d4ff[_0xabf1('0x36')][_0xabf1('0x37')]?_0x34d4ff[_0xabf1('0x36')]:_0x1e9fdf[_0xabf1('0x34')];if(!_0x32cdd9[_0xabf1('0x30')][_0xabf1('0x38')](_0xabf1('0x39'))){_0x34d4ff['limit']=qs['limit'](_0x32cdd9[_0xabf1('0x30')][_0xabf1('0x1d')]);_0x34d4ff['offset']=qs['offset'](_0x32cdd9[_0xabf1('0x30')][_0xabf1('0x1f')]);}_0x34d4ff[_0xabf1('0x3a')]=qs[_0xabf1('0x3b')](_0x32cdd9[_0xabf1('0x30')][_0xabf1('0x3b')]);_0x34d4ff[_0xabf1('0x3c')]=qs[_0xabf1('0x32')](_['pick'](_0x32cdd9[_0xabf1('0x30')],_0x1e9fdf['filters']),_0x431d66);if(_0x32cdd9[_0xabf1('0x30')][_0xabf1('0x3d')]){_0x34d4ff[_0xabf1('0x3c')]=_['merge'](_0x34d4ff[_0xabf1('0x3c')],{'$or':_[_0xabf1('0x3e')](_0x431d66,function(_0x3a3412){if(_0x3a3412[_0xabf1('0x2f')]!==_0xabf1('0x3f')){var _0x68d629={};_0x68d629[_0x3a3412['name']]={'$like':'%'+_0x32cdd9[_0xabf1('0x30')][_0xabf1('0x3d')]+'%'};return _0x68d629;}})});}_0x34d4ff=_[_0xabf1('0x40')]({},_0x34d4ff,_0x32cdd9[_0xabf1('0x41')]);var _0x57098d={'where':_0x34d4ff[_0xabf1('0x3c')]};return db[_0xabf1('0x42')]['count'](_0x57098d)['then'](function(_0x33f113){_0x533b3a[_0xabf1('0x1e')]=_0x33f113;if(_0x32cdd9[_0xabf1('0x30')][_0xabf1('0x43')]){_0x34d4ff[_0xabf1('0x44')]=[{'all':!![]}];}return db[_0xabf1('0x42')][_0xabf1('0x45')](_0x34d4ff);})[_0xabf1('0x23')](function(_0x2ec266){_0x533b3a[_0xabf1('0x46')]=_0x2ec266;return _0x533b3a;})['then'](respondWithFilteredResult(_0x4b55e3,_0x34d4ff))[_0xabf1('0x47')](handleError(_0x4b55e3,null));};exports[_0xabf1('0x48')]=function(_0x547348,_0xec75c9){var _0x357646={'raw':![],'where':{'id':_0x547348[_0xabf1('0x49')]['id']}},_0x28d953={};_0x28d953[_0xabf1('0x34')]=_[_0xabf1('0x31')](db['Schedule'][_0xabf1('0x2d')]);_0x28d953[_0xabf1('0x30')]=_[_0xabf1('0x31')](_0x547348[_0xabf1('0x30')]);_0x28d953[_0xabf1('0x32')]=_['intersection'](_0x28d953['model'],_0x28d953[_0xabf1('0x30')]);_0x357646[_0xabf1('0x36')]=_[_0xabf1('0x33')](_0x28d953[_0xabf1('0x34')],qs[_0xabf1('0x35')](_0x547348[_0xabf1('0x30')][_0xabf1('0x35')]));_0x357646[_0xabf1('0x36')]=_0x357646['attributes'][_0xabf1('0x37')]?_0x357646[_0xabf1('0x36')]:_0x28d953[_0xabf1('0x34')];if(_0x547348['query'][_0xabf1('0x43')]){_0x357646[_0xabf1('0x44')]=[{'all':!![]}];}_0x357646=_[_0xabf1('0x40')]({},_0x357646,_0x547348['options']);return db[_0xabf1('0x42')][_0xabf1('0x4a')](_0x357646)[_0xabf1('0x23')](handleEntityNotFound(_0xec75c9,null))[_0xabf1('0x23')](respondWithResult(_0xec75c9,null))[_0xabf1('0x47')](handleError(_0xec75c9,null));};exports[_0xabf1('0x4b')]=function(_0x17c096,_0xadc11){return db[_0xabf1('0x42')][_0xabf1('0x4b')](_0x17c096['body'],{})['then'](function(_0xafa582){var _0x52110f=_0x17c096['user'][_0xabf1('0x25')]({'plain':!![]});if(!_0x52110f)throw new Error(_0xabf1('0x4c'));if(_0x52110f[_0xabf1('0x4d')]===_0xabf1('0x4e')){var _0x5238bd=_0xafa582[_0xabf1('0x25')]({'plain':!![]});var _0x549736=_0xabf1('0x26');return db['UserProfileSection'][_0xabf1('0x4a')]({'where':{'name':_0x549736,'userProfileId':_0x52110f[_0xabf1('0x4f')]},'raw':!![]})[_0xabf1('0x23')](function(_0x3f95bb){if(_0x3f95bb&&_0x3f95bb[_0xabf1('0x50')]===0x0){return db['UserProfileResource'][_0xabf1('0x4b')]({'name':_0x5238bd['name'],'resourceId':_0x5238bd['id'],'type':_0x3f95bb[_0xabf1('0x2a')],'sectionId':_0x3f95bb['id']},{})[_0xabf1('0x23')](function(){return _0xafa582;});}else{return _0xafa582;}})[_0xabf1('0x47')](function(_0x530437){logger[_0xabf1('0x28')](_0xabf1('0x51'),_0x530437);throw _0x530437;});}return _0xafa582;})[_0xabf1('0x23')](respondWithResult(_0xadc11,0xc9))['catch'](handleError(_0xadc11,null));};exports[_0xabf1('0x22')]=function(_0x17cd75,_0xa4003){if(_0x17cd75[_0xabf1('0x52')]['id']){delete _0x17cd75['body']['id'];}return db['Schedule']['find']({'where':{'id':_0x17cd75['params']['id']}})[_0xabf1('0x23')](handleEntityNotFound(_0xa4003,null))[_0xabf1('0x23')](saveUpdates(_0x17cd75[_0xabf1('0x52')],null))[_0xabf1('0x23')](respondWithResult(_0xa4003,null))[_0xabf1('0x47')](handleError(_0xa4003,null));};exports[_0xabf1('0x24')]=function(_0x23bd25,_0x1516bb){return db[_0xabf1('0x42')][_0xabf1('0x4a')]({'where':{'id':_0x23bd25[_0xabf1('0x49')]['id']}})[_0xabf1('0x23')](handleEntityNotFound(_0x1516bb,null))['then'](removeEntity(_0x1516bb,null))['catch'](handleError(_0x1516bb,null));};exports['run']=function(_0x48a378,_0xc6db49,_0x3a618c){var _0x1c6bd6=require(_0xabf1('0x53'));return db['Schedule']['find']({'where':{'id':_0x48a378[_0xabf1('0x49')]['id']},'raw':!![]})[_0xabf1('0x23')](handleEntityNotFound(_0xc6db49,null))['then'](function(){_0x1c6bd6[_0xabf1('0x54')](_0x48a378['params']['id']);})[_0xabf1('0x23')](respondWithStatusCode(_0xc6db49,null))['catch'](handleError(_0xc6db49,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1aec=['../../config/environment','exports','define','Schedule','tools_schedules','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf'];(function(_0x4a6f4d,_0x2a7d99){var _0x45e425=function(_0x54e8b2){while(--_0x54e8b2){_0x4a6f4d['push'](_0x4a6f4d['shift']());}};_0x45e425(++_0x2a7d99);}(_0x1aec,0x1f3));var _0xc1ae=function(_0x1c9517,_0x3da8f3){_0x1c9517=_0x1c9517-0x0;var _0x3b8377=_0x1aec[_0x1c9517];return _0x3b8377;};'use strict';var _=require('lodash');var util=require(_0xc1ae('0x0'));var logger=require(_0xc1ae('0x1'))(_0xc1ae('0x2'));var moment=require(_0xc1ae('0x3'));var BPromise=require(_0xc1ae('0x4'));var rp=require(_0xc1ae('0x5'));var fs=require('fs');var path=require(_0xc1ae('0x6'));var rimraf=require(_0xc1ae('0x7'));var config=require(_0xc1ae('0x8'));var attributes=require('./schedule.attributes');module[_0xc1ae('0x9')]=function(_0x403e79,_0xcc8fc0){return _0x403e79[_0xc1ae('0xa')](_0xc1ae('0xb'),attributes,{'tableName':_0xc1ae('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x2962=['util','../../config/logger','api','moment','bluebird','path','rimraf','../../config/environment','./schedule.attributes','Schedule','tools_schedules','lodash'];(function(_0x13716d,_0x392bc4){var _0x52f001=function(_0x53f2dc){while(--_0x53f2dc){_0x13716d['push'](_0x13716d['shift']());}};_0x52f001(++_0x392bc4);}(_0x2962,0xb3));var _0x2296=function(_0x46698a,_0x8de1e4){_0x46698a=_0x46698a-0x0;var _0x356db0=_0x2962[_0x46698a];return _0x356db0;};'use strict';var _=require(_0x2296('0x0'));var util=require(_0x2296('0x1'));var logger=require(_0x2296('0x2'))(_0x2296('0x3'));var moment=require(_0x2296('0x4'));var BPromise=require(_0x2296('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x2296('0x6'));var rimraf=require(_0x2296('0x7'));var config=require(_0x2296('0x8'));var attributes=require(_0x2296('0x9'));module['exports']=function(_0x7bba33,_0x7f09cc){return _0x7bba33['define'](_0x2296('0xa'),attributes,{'tableName':_0x2296('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8d19=['result','catch','util','moment','bluebird','randomstring','../../config/utils','../../config/logger','rpc','../../config/environment','http','request','then','info','request\x20sent','debug','Schedule,\x20%s,\x20%s,\x20%s','stringify','error','code','Schedule,\x20%s,\x20%s','message'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x8d19,0x1e6));var _0x98d1=function(_0x581af1,_0x4f02c5){_0x581af1=_0x581af1-0x0;var _0x54c22e=_0x8d19[_0x581af1];return _0x54c22e;};'use strict';var _=require('lodash');var util=require(_0x98d1('0x0'));var moment=require(_0x98d1('0x1'));var BPromise=require(_0x98d1('0x2'));var rs=require(_0x98d1('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x98d1('0x4'));var logger=require(_0x98d1('0x5'))(_0x98d1('0x6'));var config=require(_0x98d1('0x7'));var jayson=require('jayson/promise');var client=jayson['client'][_0x98d1('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x756b4,_0xc5c5c4,_0x113d14){return new BPromise(function(_0x3f9e2e,_0xeed28c){return client[_0x98d1('0x9')](_0x756b4,_0x113d14)[_0x98d1('0xa')](function(_0x388e2c){logger[_0x98d1('0xb')]('Schedule,\x20%s,\x20%s',_0xc5c5c4,_0x98d1('0xc'));logger[_0x98d1('0xd')](_0x98d1('0xe'),_0xc5c5c4,'request\x20sent',JSON[_0x98d1('0xf')](_0x388e2c));if(_0x388e2c[_0x98d1('0x10')]){if(_0x388e2c[_0x98d1('0x10')][_0x98d1('0x11')]===0x1f4){logger[_0x98d1('0x10')](_0x98d1('0x12'),_0xc5c5c4,_0x388e2c['error'][_0x98d1('0x13')]);return _0xeed28c(_0x388e2c['error'][_0x98d1('0x13')]);}logger['error']('Schedule,\x20%s,\x20%s',_0xc5c5c4,_0x388e2c['error'][_0x98d1('0x13')]);return _0x3f9e2e(_0x388e2c[_0x98d1('0x10')][_0x98d1('0x13')]);}else{logger[_0x98d1('0xb')](_0x98d1('0x12'),_0xc5c5c4,'request\x20sent');_0x3f9e2e(_0x388e2c[_0x98d1('0x14')]['message']);}})[_0x98d1('0x15')](function(_0x4909ed){logger[_0x98d1('0x10')](_0x98d1('0x12'),_0xc5c5c4,_0x4909ed);_0xeed28c(_0x4909ed);});});}
\ No newline at end of file
+var _0x92ad=['stringify','error','message','info','result','catch','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','jayson/promise','request','then','Schedule,\x20%s,\x20%s','request\x20sent','debug','Schedule,\x20%s,\x20%s,\x20%s'];(function(_0x11314c,_0x2ca8d7){var _0x12cb4a=function(_0x5e7ddc){while(--_0x5e7ddc){_0x11314c['push'](_0x11314c['shift']());}};_0x12cb4a(++_0x2ca8d7);}(_0x92ad,0x6f));var _0xd92a=function(_0x44ac68,_0x28c0c2){_0x44ac68=_0x44ac68-0x0;var _0x348c97=_0x92ad[_0x44ac68];return _0x348c97;};'use strict';var _=require('lodash');var util=require(_0xd92a('0x0'));var moment=require(_0xd92a('0x1'));var BPromise=require(_0xd92a('0x2'));var rs=require(_0xd92a('0x3'));var fs=require('fs');var Redis=require(_0xd92a('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0xd92a('0x5'));var logger=require(_0xd92a('0x6'))(_0xd92a('0x7'));var config=require('../../config/environment');var jayson=require(_0xd92a('0x8'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x14b984,_0xa7f771,_0x2c0b61){return new BPromise(function(_0x5b6f93,_0x2921f2){return client[_0xd92a('0x9')](_0x14b984,_0x2c0b61)[_0xd92a('0xa')](function(_0x7e35a2){logger['info'](_0xd92a('0xb'),_0xa7f771,_0xd92a('0xc'));logger[_0xd92a('0xd')](_0xd92a('0xe'),_0xa7f771,_0xd92a('0xc'),JSON[_0xd92a('0xf')](_0x7e35a2));if(_0x7e35a2[_0xd92a('0x10')]){if(_0x7e35a2[_0xd92a('0x10')]['code']===0x1f4){logger['error'](_0xd92a('0xb'),_0xa7f771,_0x7e35a2[_0xd92a('0x10')]['message']);return _0x2921f2(_0x7e35a2[_0xd92a('0x10')]['message']);}logger[_0xd92a('0x10')](_0xd92a('0xb'),_0xa7f771,_0x7e35a2[_0xd92a('0x10')][_0xd92a('0x11')]);return _0x5b6f93(_0x7e35a2[_0xd92a('0x10')][_0xd92a('0x11')]);}else{logger[_0xd92a('0x12')]('Schedule,\x20%s,\x20%s',_0xa7f771,_0xd92a('0xc'));_0x5b6f93(_0x7e35a2[_0xd92a('0x13')][_0xd92a('0x11')]);}})[_0xd92a('0x14')](function(_0x384c74){logger[_0xd92a('0x10')](_0xd92a('0xb'),_0xa7f771,_0x384c74);_0x2921f2(_0x384c74);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xebf8=['express','Router','fs-extra','../../components/auth/service','../../config/environment','./screenRecording.controller','get','isAuthenticated','/describe','describe','/:id','show','/:id/download','download','post','update','delete','destroy','exports','multer','util','path','connect-timeout'];(function(_0x37be7e,_0x538f6d){var _0x4cacb8=function(_0x22aa33){while(--_0x22aa33){_0x37be7e['push'](_0x37be7e['shift']());}};_0x4cacb8(++_0x538f6d);}(_0xebf8,0x183));var _0x8ebf=function(_0xdbce43,_0x3fe410){_0xdbce43=_0xdbce43-0x0;var _0x311415=_0xebf8[_0xdbce43];return _0x311415;};'use strict';var multer=require(_0x8ebf('0x0'));var util=require(_0x8ebf('0x1'));var path=require(_0x8ebf('0x2'));var timeout=require(_0x8ebf('0x3'));var express=require(_0x8ebf('0x4'));var router=express[_0x8ebf('0x5')]();var fs_extra=require(_0x8ebf('0x6'));var auth=require(_0x8ebf('0x7'));var interaction=require('../../components/interaction/service');var config=require(_0x8ebf('0x8'));var controller=require(_0x8ebf('0x9'));router[_0x8ebf('0xa')]('/',auth[_0x8ebf('0xb')](),controller['index']);router[_0x8ebf('0xa')](_0x8ebf('0xc'),auth[_0x8ebf('0xb')](),controller[_0x8ebf('0xd')]);router[_0x8ebf('0xa')](_0x8ebf('0xe'),auth[_0x8ebf('0xb')](),controller[_0x8ebf('0xf')]);router['get'](_0x8ebf('0x10'),auth['isAuthenticated'](),controller[_0x8ebf('0x11')]);router[_0x8ebf('0x12')]('/',auth[_0x8ebf('0xb')](),controller['create']);router['put'](_0x8ebf('0xe'),auth['isAuthenticated'](),controller[_0x8ebf('0x13')]);router[_0x8ebf('0x14')](_0x8ebf('0xe'),auth[_0x8ebf('0xb')](),controller[_0x8ebf('0x15')]);module[_0x8ebf('0x16')]=router;
\ No newline at end of file
+var _0xf247=['Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/describe','describe','show','/:id/download','post','create','put','/:id','update','delete','destroy','path','express'];(function(_0x352e40,_0x1a352f){var _0x245864=function(_0x1d59d3){while(--_0x1d59d3){_0x352e40['push'](_0x352e40['shift']());}};_0x245864(++_0x1a352f);}(_0xf247,0xa6));var _0x7f24=function(_0xc36d01,_0x3bf1a6){_0xc36d01=_0xc36d01-0x0;var _0xecb231=_0xf247[_0xc36d01];return _0xecb231;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x7f24('0x0'));var timeout=require('connect-timeout');var express=require(_0x7f24('0x1'));var router=express[_0x7f24('0x2')]();var fs_extra=require(_0x7f24('0x3'));var auth=require(_0x7f24('0x4'));var interaction=require(_0x7f24('0x5'));var config=require(_0x7f24('0x6'));var controller=require('./screenRecording.controller');router[_0x7f24('0x7')]('/',auth[_0x7f24('0x8')](),controller[_0x7f24('0x9')]);router[_0x7f24('0x7')](_0x7f24('0xa'),auth[_0x7f24('0x8')](),controller[_0x7f24('0xb')]);router[_0x7f24('0x7')]('/:id',auth['isAuthenticated'](),controller[_0x7f24('0xc')]);router[_0x7f24('0x7')](_0x7f24('0xd'),auth[_0x7f24('0x8')](),controller['download']);router[_0x7f24('0xe')]('/',auth[_0x7f24('0x8')](),controller[_0x7f24('0xf')]);router[_0x7f24('0x10')](_0x7f24('0x11'),auth[_0x7f24('0x8')](),controller[_0x7f24('0x12')]);router[_0x7f24('0x13')]('/:id',auth[_0x7f24('0x8')](),controller[_0x7f24('0x14')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa988=['format','toString','updatedAt','sequelize','moment','path','../../config/environment','exports','getDataValue','value','extname','STRING','replace','INTEGER','setDataValue','startedAt','closedAt','DATE','MM-DD-YYYY\x20HH:mm','createdAt'];(function(_0x5aa8d4,_0x12ebd5){var _0x239670=function(_0x4ff9d9){while(--_0x4ff9d9){_0x5aa8d4['push'](_0x5aa8d4['shift']());}};_0x239670(++_0x12ebd5);}(_0xa988,0x1a7));var _0x8a98=function(_0x3ee74e,_0x1b52c3){_0x3ee74e=_0x3ee74e-0x0;var _0x46782d=_0xa988[_0x3ee74e];return _0x46782d;};'use strict';var Sequelize=require(_0x8a98('0x0'));var moment=require(_0x8a98('0x1'));var path=require(_0x8a98('0x2'));var config=require(_0x8a98('0x3'));module[_0x8a98('0x4')]={'format':{'type':Sequelize['VIRTUAL'],'get':function(){return this[_0x8a98('0x5')](_0x8a98('0x6'))?path[_0x8a98('0x7')](this[_0x8a98('0x5')](_0x8a98('0x6'))):undefined;}},'interactionid':{'type':Sequelize[_0x8a98('0x8')]},'channel':{'type':Sequelize[_0x8a98('0x8')]},'value':{'type':Sequelize[_0x8a98('0x8')],'set':function(_0x4ef481){var _0x27db7a=_0x4ef481[_0x8a98('0x9')](/\\/g,'/');this['setDataValue'](_0x8a98('0x6'),_0x27db7a);}},'rating':{'type':Sequelize[_0x8a98('0xa')],'validate':{'max':0x5,'min':0x0}},'duration':{'type':Sequelize['INTEGER'],'set':function(_0x5552b2){this[_0x8a98('0xb')](_0x8a98('0xc'),moment()['subtract'](_0x5552b2,'ms'));this[_0x8a98('0xb')](_0x8a98('0xd'),moment());this[_0x8a98('0xb')]('duration',_0x5552b2);}},'startedAt':{'type':Sequelize[_0x8a98('0xe')],'get':function(){return moment(this[_0x8a98('0x5')](_0x8a98('0xc')))['format'](_0x8a98('0xf'))['toString']();}},'closedAt':{'type':Sequelize['DATE'],'get':function(){return moment(this['getDataValue'](_0x8a98('0xd')))['format']('MM-DD-YYYY\x20HH:mm')['toString']();}},'createdAt':{'type':Sequelize[_0x8a98('0xe')],'get':function(){return moment(this['getDataValue'](_0x8a98('0x10')))[_0x8a98('0x11')](_0x8a98('0xf'))[_0x8a98('0x12')]();}},'updatedAt':{'type':Sequelize[_0x8a98('0xe')],'get':function(){return moment(this[_0x8a98('0x5')](_0x8a98('0x13')))[_0x8a98('0x11')]('MM-DD-YYYY\x20HH:mm')['toString']();}}};
\ No newline at end of file
+var _0x58c9=['format','toString','updatedAt','MM-DD-YYYY\x20HH:mm','sequelize','moment','path','../../config/environment','exports','VIRTUAL','getDataValue','value','extname','STRING','replace','setDataValue','INTEGER','startedAt','subtract','closedAt','duration','DATE'];(function(_0x28f4d3,_0x77dd8f){var _0x2293e8=function(_0x494c07){while(--_0x494c07){_0x28f4d3['push'](_0x28f4d3['shift']());}};_0x2293e8(++_0x77dd8f);}(_0x58c9,0x1bc));var _0x958c=function(_0x244622,_0x4fe2b1){_0x244622=_0x244622-0x0;var _0x5ee744=_0x58c9[_0x244622];return _0x5ee744;};'use strict';var Sequelize=require(_0x958c('0x0'));var moment=require(_0x958c('0x1'));var path=require(_0x958c('0x2'));var config=require(_0x958c('0x3'));module[_0x958c('0x4')]={'format':{'type':Sequelize[_0x958c('0x5')],'get':function(){return this[_0x958c('0x6')](_0x958c('0x7'))?path[_0x958c('0x8')](this[_0x958c('0x6')](_0x958c('0x7'))):undefined;}},'interactionid':{'type':Sequelize[_0x958c('0x9')]},'channel':{'type':Sequelize[_0x958c('0x9')]},'value':{'type':Sequelize['STRING'],'set':function(_0x158388){var _0xa44c9=_0x158388[_0x958c('0xa')](/\\/g,'/');this[_0x958c('0xb')](_0x958c('0x7'),_0xa44c9);}},'rating':{'type':Sequelize[_0x958c('0xc')],'validate':{'max':0x5,'min':0x0}},'duration':{'type':Sequelize[_0x958c('0xc')],'set':function(_0x128ef6){this[_0x958c('0xb')](_0x958c('0xd'),moment()[_0x958c('0xe')](_0x128ef6,'ms'));this['setDataValue'](_0x958c('0xf'),moment());this[_0x958c('0xb')](_0x958c('0x10'),_0x128ef6);}},'startedAt':{'type':Sequelize[_0x958c('0x11')],'get':function(){return moment(this[_0x958c('0x6')](_0x958c('0xd')))[_0x958c('0x12')]('MM-DD-YYYY\x20HH:mm')[_0x958c('0x13')]();}},'closedAt':{'type':Sequelize[_0x958c('0x11')],'get':function(){return moment(this['getDataValue'](_0x958c('0xf')))[_0x958c('0x12')]('MM-DD-YYYY\x20HH:mm')[_0x958c('0x13')]();}},'createdAt':{'type':Sequelize[_0x958c('0x11')],'get':function(){return moment(this['getDataValue']('createdAt'))[_0x958c('0x12')]('MM-DD-YYYY\x20HH:mm')['toString']();}},'updatedAt':{'type':Sequelize['DATE'],'get':function(){return moment(this[_0x958c('0x6')](_0x958c('0x14')))[_0x958c('0x12')](_0x958c('0x15'))['toString']();}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x008c=['papaparse','ioredis','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','end','status','json','offset','undefined','limit','count','save','update','then','destroy','sendStatus','send','index','ScreenRecording','rawAttributes','key','model','differenceBy','map','name','format','query','keys','filters','intersection','attributes','fields','length','nolimit','order','sort','pick','where','type','VIRTUAL','filter','merge','options','include','findAll','catch','show','params','includeAll','find','create','body','duration','createdAt','closedAt','describe','../../components/encryptor','uniqueid','value','join','root','server/files/screen_recordings','decryptFile','secrets','recording','existsSync','ValidationError','filename','download','extname','unlink','message','ScreenRecording\x20not\x20found','Not\x20found','isNil','Entity\x20not\x20found','info','cancellazione\x20fisica\x20documento\x20%s','File:\x20\x22','unlinkSync','.cypher','\x22\x20trovato\x20eseguo\x20la\x20cancellazione','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','crypto','desk.js'];(function(_0x1d1779,_0x284147){var _0x2377e9=function(_0x299f6f){while(--_0x299f6f){_0x1d1779['push'](_0x1d1779['shift']());}};_0x2377e9(++_0x284147);}(_0x008c,0x188));var _0xc008=function(_0x2ce9c3,_0x20a165){_0x2ce9c3=_0x2ce9c3-0x0;var _0x109b3a=_0x008c[_0x2ce9c3];return _0x109b3a;};'use strict';var emlformat=require(_0xc008('0x0'));var rimraf=require(_0xc008('0x1'));var zipdir=require(_0xc008('0x2'));var jsonpatch=require(_0xc008('0x3'));var rp=require(_0xc008('0x4'));var moment=require('moment');var BPromise=require(_0xc008('0x5'));var Mustache=require(_0xc008('0x6'));var util=require(_0xc008('0x7'));var path=require(_0xc008('0x8'));var sox=require(_0xc008('0x9'));var csv=require(_0xc008('0xa'));var ejs=require(_0xc008('0xb'));var fs=require('fs');var fs_extra=require(_0xc008('0xc'));var _=require(_0xc008('0xd'));var squel=require('squel');var crypto=require(_0xc008('0xe'));var jsforce=require('jsforce');var deskjs=require(_0xc008('0xf'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xc008('0x10'));var Redis=require(_0xc008('0x11'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xc008('0x12'));var logger=require(_0xc008('0x13'))('api');var utils=require(_0xc008('0x14'));var config=require(_0xc008('0x15'));var licenseUtil=require(_0xc008('0x16'));var db=require(_0xc008('0x17'))['db'];function respondWithStatusCode(_0x9ffa93,_0x1819c6){_0x1819c6=_0x1819c6||0xcc;return function(_0x69726e){if(_0x69726e){return _0x9ffa93['sendStatus'](_0x1819c6);}return _0x9ffa93['status'](_0x1819c6)[_0xc008('0x18')]();};}function respondWithResult(_0x50c1ab,_0x25e13f){_0x25e13f=_0x25e13f||0xc8;return function(_0x4584e1){if(_0x4584e1){return _0x50c1ab[_0xc008('0x19')](_0x25e13f)[_0xc008('0x1a')](_0x4584e1);}};}function respondWithFilteredResult(_0x3f0ecf,_0x5ee00b){return function(_0x5e894e){if(_0x5e894e){var _0x4bd0f4=typeof _0x5ee00b[_0xc008('0x1b')]===_0xc008('0x1c')&&typeof _0x5ee00b[_0xc008('0x1d')]===_0xc008('0x1c');var _0x4fe771=_0x5e894e['count'];var _0x540e45=_0x4bd0f4?0x0:_0x5ee00b['offset'];var _0x46042b=_0x4bd0f4?_0x5e894e[_0xc008('0x1e')]:_0x5ee00b['offset']+_0x5ee00b[_0xc008('0x1d')];var _0x5906e6;if(_0x46042b>=_0x4fe771){_0x46042b=_0x4fe771;_0x5906e6=0xc8;}else{_0x5906e6=0xce;}_0x3f0ecf['status'](_0x5906e6);return _0x3f0ecf['set']('Content-Range',_0x540e45+'-'+_0x46042b+'/'+_0x4fe771)[_0xc008('0x1a')](_0x5e894e);}return null;};}function patchUpdates(_0x4b9726){return function(_0x5560b1){try{jsonpatch['apply'](_0x5560b1,_0x4b9726,!![]);}catch(_0x4a582d){return BPromise['reject'](_0x4a582d);}return _0x5560b1[_0xc008('0x1f')]();};}function saveUpdates(_0x4777a6,_0x251db2){return function(_0x415af3){if(_0x415af3){return _0x415af3[_0xc008('0x20')](_0x4777a6)[_0xc008('0x21')](function(_0x4f43e2){return _0x4f43e2;});}return null;};}function removeEntity(_0x459fd9,_0x5c85f2){return function(_0x58a6ea){if(_0x58a6ea){return _0x58a6ea[_0xc008('0x22')]()[_0xc008('0x21')](function(){_0x459fd9[_0xc008('0x19')](0xcc)[_0xc008('0x18')]();});}};}function handleEntityNotFound(_0x5410f5,_0x48582b){return function(_0x5de1e9){if(!_0x5de1e9){_0x5410f5[_0xc008('0x23')](0x194);}return _0x5de1e9;};}function handleError(_0x15dade,_0x92c582){_0x92c582=_0x92c582||0x1f4;return function(_0x2e31c2){logger['error'](_0x2e31c2['stack']);if(_0x2e31c2['name']){delete _0x2e31c2['name'];}_0x15dade['status'](_0x92c582)[_0xc008('0x24')](_0x2e31c2);};}exports[_0xc008('0x25')]=function(_0x25eae4,_0x529961){var _0x24c14c={},_0x32390d={},_0x209591={'count':0x0,'rows':[]};var _0x2a7d4f=_['map'](db[_0xc008('0x26')][_0xc008('0x27')],function(_0x53ed35){return{'name':_0x53ed35['fieldName'],'type':_0x53ed35['type'][_0xc008('0x28')]};});_0x32390d[_0xc008('0x29')]=_[_0xc008('0x2a')](_[_0xc008('0x2b')](_0x2a7d4f,_0xc008('0x2c')),[_0xc008('0x2d')]);_0x32390d[_0xc008('0x2e')]=_[_0xc008('0x2f')](_0x25eae4[_0xc008('0x2e')]);_0x32390d[_0xc008('0x30')]=_[_0xc008('0x31')](_0x32390d[_0xc008('0x29')],_0x32390d['query']);_0x24c14c[_0xc008('0x32')]=_[_0xc008('0x31')](_0x32390d['model'],qs[_0xc008('0x33')](_0x25eae4[_0xc008('0x2e')][_0xc008('0x33')]));_0x24c14c[_0xc008('0x32')]=_0x24c14c[_0xc008('0x32')][_0xc008('0x34')]?_0x24c14c[_0xc008('0x32')]:_0x32390d[_0xc008('0x29')];if(!_0x25eae4[_0xc008('0x2e')]['hasOwnProperty'](_0xc008('0x35'))){_0x24c14c[_0xc008('0x1d')]=qs[_0xc008('0x1d')](_0x25eae4[_0xc008('0x2e')][_0xc008('0x1d')]);_0x24c14c[_0xc008('0x1b')]=qs[_0xc008('0x1b')](_0x25eae4['query'][_0xc008('0x1b')]);}_0x24c14c[_0xc008('0x36')]=qs['sort'](_0x25eae4[_0xc008('0x2e')][_0xc008('0x37')]);_0x24c14c['where']=qs[_0xc008('0x30')](_[_0xc008('0x38')](_0x25eae4[_0xc008('0x2e')],_0x32390d['filters']),_0x2a7d4f);if(_0x25eae4['query']['filter']){_0x24c14c[_0xc008('0x39')]=_['merge'](_0x24c14c[_0xc008('0x39')],{'$or':_[_0xc008('0x2b')](_0x2a7d4f,function(_0x6a4ccb){if(_0x6a4ccb[_0xc008('0x3a')]!==_0xc008('0x3b')){var _0xa381d1={};_0xa381d1[_0x6a4ccb[_0xc008('0x2c')]]={'$like':'%'+_0x25eae4[_0xc008('0x2e')][_0xc008('0x3c')]+'%'};return _0xa381d1;}})});}_0x24c14c=_[_0xc008('0x3d')]({},_0x24c14c,_0x25eae4[_0xc008('0x3e')]);var _0xdfca2e={'where':_0x24c14c[_0xc008('0x39')]};return db[_0xc008('0x26')]['count'](_0xdfca2e)[_0xc008('0x21')](function(_0x23c4db){_0x209591[_0xc008('0x1e')]=_0x23c4db;if(_0x25eae4[_0xc008('0x2e')]['includeAll']){_0x24c14c[_0xc008('0x3f')]=[{'all':!![]}];}return db[_0xc008('0x26')][_0xc008('0x40')](_0x24c14c);})[_0xc008('0x21')](function(_0x2d142d){_0x209591['rows']=_0x2d142d;return _0x209591;})[_0xc008('0x21')](respondWithFilteredResult(_0x529961,_0x24c14c))[_0xc008('0x41')](handleError(_0x529961,null));};exports[_0xc008('0x42')]=function(_0x3e9a99,_0x7279e8){var _0x4f93a4={'raw':![],'where':{'id':_0x3e9a99[_0xc008('0x43')]['id']}},_0xf4cc4b={};_0xf4cc4b[_0xc008('0x29')]=_[_0xc008('0x2f')](db['ScreenRecording'][_0xc008('0x27')]);_0xf4cc4b[_0xc008('0x2e')]=_[_0xc008('0x2f')](_0x3e9a99['query']);_0xf4cc4b[_0xc008('0x30')]=_['intersection'](_0xf4cc4b[_0xc008('0x29')],_0xf4cc4b['query']);_0x4f93a4[_0xc008('0x32')]=_[_0xc008('0x31')](_0xf4cc4b['model'],qs[_0xc008('0x33')](_0x3e9a99[_0xc008('0x2e')][_0xc008('0x33')]));_0x4f93a4['attributes']=_0x4f93a4[_0xc008('0x32')][_0xc008('0x34')]?_0x4f93a4[_0xc008('0x32')]:_0xf4cc4b[_0xc008('0x29')];if(_0x3e9a99[_0xc008('0x2e')][_0xc008('0x44')]){_0x4f93a4['include']=[{'all':!![]}];}_0x4f93a4=_['merge']({},_0x4f93a4,_0x3e9a99['options']);return db[_0xc008('0x26')][_0xc008('0x45')](_0x4f93a4)[_0xc008('0x21')](handleEntityNotFound(_0x7279e8,null))[_0xc008('0x21')](respondWithResult(_0x7279e8,null))[_0xc008('0x41')](handleError(_0x7279e8,null));};exports[_0xc008('0x46')]=function(_0x2cf641,_0x33be4f){return db['ScreenRecording']['create'](_0x2cf641['body'],{})[_0xc008('0x21')](respondWithResult(_0x33be4f,0xc9))[_0xc008('0x41')](handleError(_0x33be4f,null));};exports[_0xc008('0x20')]=function(_0x511383,_0x28bc33){if(_0x511383[_0xc008('0x47')]['id']){delete _0x511383[_0xc008('0x47')]['id'];}delete _0x511383[_0xc008('0x47')][_0xc008('0x48')];delete _0x511383[_0xc008('0x47')][_0xc008('0x49')];delete _0x511383[_0xc008('0x47')][_0xc008('0x4a')];delete _0x511383[_0xc008('0x47')]['value'];return db['ScreenRecording'][_0xc008('0x45')]({'where':{'id':_0x511383['params']['id']}})[_0xc008('0x21')](handleEntityNotFound(_0x28bc33,null))[_0xc008('0x21')](saveUpdates(_0x511383[_0xc008('0x47')],null))['then'](respondWithResult(_0x28bc33,null))[_0xc008('0x41')](handleError(_0x28bc33,null));};exports[_0xc008('0x4b')]=function(_0xee64,_0x8b9775){return db[_0xc008('0x26')]['describe']()[_0xc008('0x21')](respondWithResult(_0x8b9775,null))[_0xc008('0x41')](handleError(_0x8b9775,null));};exports['download']=function(_0x24f775,_0xfd6d1d,_0x5b5fbf){var _0x51d3dc=require(_0xc008('0x4c'));var _0xd47b74=![];var _0x20947b={};if(_0x24f775[_0xc008('0x2e')][_0xc008('0x3a')]&&_0x24f775['query']['type']===_0xc008('0x4d')){_0x20947b['uniqueid']=_0x24f775[_0xc008('0x43')]['id'];}else{_0x20947b['id']=_0x24f775[_0xc008('0x43')]['id'];}return db[_0xc008('0x26')][_0xc008('0x45')]({'where':_0x20947b,'attributes':['id',_0xc008('0x4e')],'raw':!![]})[_0xc008('0x21')](handleEntityNotFound(_0xfd6d1d,null))['then'](function(_0x2ea742){if(_0x2ea742){var _0xbd7422=path[_0xc008('0x4f')](config[_0xc008('0x50')],_0xc008('0x51'),_0x2ea742['value']);var _0x41fae3=util['format']('%s.cypher',_0xbd7422);if(fs['existsSync'](_0x41fae3)){_0xd47b74=!![];return _0x51d3dc[_0xc008('0x52')](_0x41fae3,_0xbd7422,config[_0xc008('0x53')][_0xc008('0x54')])['then'](function(){return _0x2ea742;});}return _0x2ea742;}})[_0xc008('0x21')](function(_0x2d8361){if(_0x2d8361){var _0x3dda82=path['join'](config[_0xc008('0x50')],_0xc008('0x51'),_0x2d8361[_0xc008('0x4e')]);if(!fs[_0xc008('0x55')](_0x3dda82)){throw new db['Sequelize'][(_0xc008('0x56'))]('ScreenRecording\x20not\x20found');}if(_0x2d8361[_0xc008('0x57')]){return _0xfd6d1d[_0xc008('0x58')](_0x3dda82,_0x2d8361[_0xc008('0x57')]+path[_0xc008('0x59')](_0x3dda82),function(){if(_0xd47b74){fs[_0xc008('0x5a')](_0x3dda82);}});}else{return _0xfd6d1d[_0xc008('0x58')](_0x3dda82,function(_0x4818c7){if(_0xd47b74){fs[_0xc008('0x5a')](_0x3dda82);}});}}})['catch'](function(_0x5bf4a9){if(_0x5bf4a9[_0xc008('0x5b')]===_0xc008('0x5c')){_0xfd6d1d['status'](0x194)[_0xc008('0x24')](_0xc008('0x5d'));}else{return handleError(_0xfd6d1d,null);}});};exports[_0xc008('0x22')]=function(_0x4517c0,_0x21ee6d){return db[_0xc008('0x26')][_0xc008('0x45')]({'where':{'id':_0x4517c0['params']['id']}})[_0xc008('0x21')](function(_0x462e1e){if(_[_0xc008('0x5e')](_0x462e1e)){throw new ReferenceError(_0xc008('0x5f'));}return _0x462e1e;})[_0xc008('0x21')](function(_0x167425){var _0x249898=path[_0xc008('0x4f')](config[_0xc008('0x50')],_0xc008('0x51'),_0x167425[_0xc008('0x4e')]);logger[_0xc008('0x60')](_0xc008('0x61'),_0x249898);if(!_[_0xc008('0x5e')](_0x167425['value'])&&fs[_0xc008('0x55')](_0x249898)){logger[_0xc008('0x60')](_0xc008('0x62')+_0x249898+'\x22\x20trovato\x20eseguo\x20la\x20cancellazione');fs[_0xc008('0x63')](_0x249898);}_0x249898=_0x249898+_0xc008('0x64');if(!_['isNil'](_0x167425['value'])&&fs[_0xc008('0x55')](_0x249898)){logger[_0xc008('0x60')](_0xc008('0x62')+_0x249898+_0xc008('0x65'));fs[_0xc008('0x63')](_0x249898);}return _0x167425;})[_0xc008('0x21')](function(_0x238852){if(!_0x238852)throw new InternalError();return _0x238852[_0xc008('0x22')]();})[_0xc008('0x21')](function(){_0x21ee6d[_0xc008('0x19')](0xcc)[_0xc008('0x18')]();})['catch'](handleError(_0x21ee6d,null));};
\ No newline at end of file
+var _0x3e74=['to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','end','json','undefined','limit','offset','count','status','set','Content-Range','apply','save','update','then','destroy','sendStatus','name','send','index','map','ScreenRecording','rawAttributes','fieldName','type','key','model','differenceBy','format','query','keys','filters','attributes','intersection','fields','length','order','sort','where','filter','merge','VIRTUAL','options','includeAll','include','show','params','catch','create','body','duration','createdAt','closedAt','describe','download','../../components/encryptor','uniqueid','find','value','join','root','decryptFile','secrets','server/files/screen_recordings','Sequelize','ValidationError','filename','unlink','Not\x20found','isNil','Entity\x20not\x20found','info','File:\x20\x22','\x22\x20trovato\x20eseguo\x20la\x20cancellazione','.cypher','existsSync','eml-format','zip-dir','fast-json-patch','request-promise','mustache','path','sox'];(function(_0x33b51f,_0x4307e3){var _0x16fce2=function(_0x544bdf){while(--_0x544bdf){_0x33b51f['push'](_0x33b51f['shift']());}};_0x16fce2(++_0x4307e3);}(_0x3e74,0x175));var _0x43e7=function(_0x54b4f3,_0x220f7b){_0x54b4f3=_0x54b4f3-0x0;var _0x5ca0ec=_0x3e74[_0x54b4f3];return _0x5ca0ec;};'use strict';var emlformat=require(_0x43e7('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x43e7('0x1'));var jsonpatch=require(_0x43e7('0x2'));var rp=require(_0x43e7('0x3'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x43e7('0x4'));var util=require('util');var path=require(_0x43e7('0x5'));var sox=require(_0x43e7('0x6'));var csv=require(_0x43e7('0x7'));var ejs=require(_0x43e7('0x8'));var fs=require('fs');var fs_extra=require(_0x43e7('0x9'));var _=require('lodash');var squel=require(_0x43e7('0xa'));var crypto=require(_0x43e7('0xb'));var jsforce=require(_0x43e7('0xc'));var deskjs=require(_0x43e7('0xd'));var toCsv=require(_0x43e7('0x7'));var querystring=require('querystring');var Papa=require(_0x43e7('0xe'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x43e7('0xf'));var as=require(_0x43e7('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x43e7('0x11'))('api');var utils=require(_0x43e7('0x12'));var config=require(_0x43e7('0x13'));var licenseUtil=require('../../config/license/util');var db=require(_0x43e7('0x14'))['db'];function respondWithStatusCode(_0xc960ea,_0x2718d3){_0x2718d3=_0x2718d3||0xcc;return function(_0x3bb83f){if(_0x3bb83f){return _0xc960ea['sendStatus'](_0x2718d3);}return _0xc960ea['status'](_0x2718d3)[_0x43e7('0x15')]();};}function respondWithResult(_0x21fdd3,_0x44b0bd){_0x44b0bd=_0x44b0bd||0xc8;return function(_0x51b974){if(_0x51b974){return _0x21fdd3['status'](_0x44b0bd)[_0x43e7('0x16')](_0x51b974);}};}function respondWithFilteredResult(_0x14c146,_0x203378){return function(_0x328445){if(_0x328445){var _0x4de324=typeof _0x203378['offset']===_0x43e7('0x17')&&typeof _0x203378[_0x43e7('0x18')]===_0x43e7('0x17');var _0x5d346f=_0x328445['count'];var _0x446986=_0x4de324?0x0:_0x203378[_0x43e7('0x19')];var _0x9037d3=_0x4de324?_0x328445[_0x43e7('0x1a')]:_0x203378[_0x43e7('0x19')]+_0x203378[_0x43e7('0x18')];var _0x619236;if(_0x9037d3>=_0x5d346f){_0x9037d3=_0x5d346f;_0x619236=0xc8;}else{_0x619236=0xce;}_0x14c146[_0x43e7('0x1b')](_0x619236);return _0x14c146[_0x43e7('0x1c')](_0x43e7('0x1d'),_0x446986+'-'+_0x9037d3+'/'+_0x5d346f)[_0x43e7('0x16')](_0x328445);}return null;};}function patchUpdates(_0x177ee1){return function(_0x4b5d64){try{jsonpatch[_0x43e7('0x1e')](_0x4b5d64,_0x177ee1,!![]);}catch(_0x3c6625){return BPromise['reject'](_0x3c6625);}return _0x4b5d64[_0x43e7('0x1f')]();};}function saveUpdates(_0x3e281e,_0x3945bb){return function(_0x28aacc){if(_0x28aacc){return _0x28aacc[_0x43e7('0x20')](_0x3e281e)[_0x43e7('0x21')](function(_0x54a9e7){return _0x54a9e7;});}return null;};}function removeEntity(_0x454359,_0x4eea52){return function(_0x4c9df3){if(_0x4c9df3){return _0x4c9df3[_0x43e7('0x22')]()[_0x43e7('0x21')](function(){_0x454359['status'](0xcc)[_0x43e7('0x15')]();});}};}function handleEntityNotFound(_0x4ca5cf,_0x326dab){return function(_0x5c5e67){if(!_0x5c5e67){_0x4ca5cf[_0x43e7('0x23')](0x194);}return _0x5c5e67;};}function handleError(_0x1b5f50,_0x20888b){_0x20888b=_0x20888b||0x1f4;return function(_0x405f85){logger['error'](_0x405f85['stack']);if(_0x405f85[_0x43e7('0x24')]){delete _0x405f85['name'];}_0x1b5f50[_0x43e7('0x1b')](_0x20888b)[_0x43e7('0x25')](_0x405f85);};}exports[_0x43e7('0x26')]=function(_0xb1fc63,_0x5087d7){var _0x33a1a5={},_0x4690a6={},_0x45b675={'count':0x0,'rows':[]};var _0x50f9f5=_[_0x43e7('0x27')](db[_0x43e7('0x28')][_0x43e7('0x29')],function(_0x31b2a6){return{'name':_0x31b2a6[_0x43e7('0x2a')],'type':_0x31b2a6[_0x43e7('0x2b')][_0x43e7('0x2c')]};});_0x4690a6[_0x43e7('0x2d')]=_[_0x43e7('0x2e')](_[_0x43e7('0x27')](_0x50f9f5,'name'),[_0x43e7('0x2f')]);_0x4690a6[_0x43e7('0x30')]=_[_0x43e7('0x31')](_0xb1fc63[_0x43e7('0x30')]);_0x4690a6[_0x43e7('0x32')]=_['intersection'](_0x4690a6[_0x43e7('0x2d')],_0x4690a6[_0x43e7('0x30')]);_0x33a1a5[_0x43e7('0x33')]=_[_0x43e7('0x34')](_0x4690a6['model'],qs['fields'](_0xb1fc63['query'][_0x43e7('0x35')]));_0x33a1a5[_0x43e7('0x33')]=_0x33a1a5[_0x43e7('0x33')][_0x43e7('0x36')]?_0x33a1a5[_0x43e7('0x33')]:_0x4690a6[_0x43e7('0x2d')];if(!_0xb1fc63['query']['hasOwnProperty']('nolimit')){_0x33a1a5['limit']=qs['limit'](_0xb1fc63['query']['limit']);_0x33a1a5[_0x43e7('0x19')]=qs['offset'](_0xb1fc63[_0x43e7('0x30')][_0x43e7('0x19')]);}_0x33a1a5[_0x43e7('0x37')]=qs[_0x43e7('0x38')](_0xb1fc63[_0x43e7('0x30')][_0x43e7('0x38')]);_0x33a1a5[_0x43e7('0x39')]=qs['filters'](_['pick'](_0xb1fc63['query'],_0x4690a6[_0x43e7('0x32')]),_0x50f9f5);if(_0xb1fc63[_0x43e7('0x30')][_0x43e7('0x3a')]){_0x33a1a5[_0x43e7('0x39')]=_[_0x43e7('0x3b')](_0x33a1a5[_0x43e7('0x39')],{'$or':_[_0x43e7('0x27')](_0x50f9f5,function(_0x2ffd43){if(_0x2ffd43['type']!==_0x43e7('0x3c')){var _0x2b0ffe={};_0x2b0ffe[_0x2ffd43['name']]={'$like':'%'+_0xb1fc63[_0x43e7('0x30')]['filter']+'%'};return _0x2b0ffe;}})});}_0x33a1a5=_[_0x43e7('0x3b')]({},_0x33a1a5,_0xb1fc63[_0x43e7('0x3d')]);var _0x1c6f45={'where':_0x33a1a5[_0x43e7('0x39')]};return db[_0x43e7('0x28')][_0x43e7('0x1a')](_0x1c6f45)['then'](function(_0x574a93){_0x45b675[_0x43e7('0x1a')]=_0x574a93;if(_0xb1fc63[_0x43e7('0x30')][_0x43e7('0x3e')]){_0x33a1a5[_0x43e7('0x3f')]=[{'all':!![]}];}return db[_0x43e7('0x28')]['findAll'](_0x33a1a5);})[_0x43e7('0x21')](function(_0x4227c4){_0x45b675['rows']=_0x4227c4;return _0x45b675;})[_0x43e7('0x21')](respondWithFilteredResult(_0x5087d7,_0x33a1a5))['catch'](handleError(_0x5087d7,null));};exports[_0x43e7('0x40')]=function(_0x504101,_0x3d81ae){var _0x3b4235={'raw':![],'where':{'id':_0x504101[_0x43e7('0x41')]['id']}},_0x3a5807={};_0x3a5807['model']=_['keys'](db[_0x43e7('0x28')][_0x43e7('0x29')]);_0x3a5807[_0x43e7('0x30')]=_[_0x43e7('0x31')](_0x504101['query']);_0x3a5807['filters']=_['intersection'](_0x3a5807[_0x43e7('0x2d')],_0x3a5807['query']);_0x3b4235[_0x43e7('0x33')]=_['intersection'](_0x3a5807['model'],qs[_0x43e7('0x35')](_0x504101['query'][_0x43e7('0x35')]));_0x3b4235[_0x43e7('0x33')]=_0x3b4235[_0x43e7('0x33')][_0x43e7('0x36')]?_0x3b4235['attributes']:_0x3a5807[_0x43e7('0x2d')];if(_0x504101[_0x43e7('0x30')][_0x43e7('0x3e')]){_0x3b4235[_0x43e7('0x3f')]=[{'all':!![]}];}_0x3b4235=_[_0x43e7('0x3b')]({},_0x3b4235,_0x504101[_0x43e7('0x3d')]);return db['ScreenRecording']['find'](_0x3b4235)[_0x43e7('0x21')](handleEntityNotFound(_0x3d81ae,null))[_0x43e7('0x21')](respondWithResult(_0x3d81ae,null))[_0x43e7('0x42')](handleError(_0x3d81ae,null));};exports['create']=function(_0x5c1c18,_0x56489b){return db[_0x43e7('0x28')][_0x43e7('0x43')](_0x5c1c18['body'],{})[_0x43e7('0x21')](respondWithResult(_0x56489b,0xc9))[_0x43e7('0x42')](handleError(_0x56489b,null));};exports[_0x43e7('0x20')]=function(_0x560329,_0x593155){if(_0x560329['body']['id']){delete _0x560329['body']['id'];}delete _0x560329[_0x43e7('0x44')][_0x43e7('0x45')];delete _0x560329['body'][_0x43e7('0x46')];delete _0x560329[_0x43e7('0x44')][_0x43e7('0x47')];delete _0x560329[_0x43e7('0x44')]['value'];return db[_0x43e7('0x28')]['find']({'where':{'id':_0x560329['params']['id']}})[_0x43e7('0x21')](handleEntityNotFound(_0x593155,null))[_0x43e7('0x21')](saveUpdates(_0x560329[_0x43e7('0x44')],null))[_0x43e7('0x21')](respondWithResult(_0x593155,null))[_0x43e7('0x42')](handleError(_0x593155,null));};exports[_0x43e7('0x48')]=function(_0x1cd87c,_0x256ddd){return db[_0x43e7('0x28')][_0x43e7('0x48')]()['then'](respondWithResult(_0x256ddd,null))[_0x43e7('0x42')](handleError(_0x256ddd,null));};exports[_0x43e7('0x49')]=function(_0x499c03,_0x39e3ca,_0x4e6f6d){var _0x35b799=require(_0x43e7('0x4a'));var _0x34e2ec=![];var _0x1f561f={};if(_0x499c03[_0x43e7('0x30')]['type']&&_0x499c03['query'][_0x43e7('0x2b')]===_0x43e7('0x4b')){_0x1f561f[_0x43e7('0x4b')]=_0x499c03[_0x43e7('0x41')]['id'];}else{_0x1f561f['id']=_0x499c03[_0x43e7('0x41')]['id'];}return db[_0x43e7('0x28')][_0x43e7('0x4c')]({'where':_0x1f561f,'attributes':['id',_0x43e7('0x4d')],'raw':!![]})[_0x43e7('0x21')](handleEntityNotFound(_0x39e3ca,null))[_0x43e7('0x21')](function(_0x312306){if(_0x312306){var _0x4ace49=path[_0x43e7('0x4e')](config[_0x43e7('0x4f')],'server/files/screen_recordings',_0x312306[_0x43e7('0x4d')]);var _0x220bf2=util[_0x43e7('0x2f')]('%s.cypher',_0x4ace49);if(fs['existsSync'](_0x220bf2)){_0x34e2ec=!![];return _0x35b799[_0x43e7('0x50')](_0x220bf2,_0x4ace49,config[_0x43e7('0x51')]['recording'])[_0x43e7('0x21')](function(){return _0x312306;});}return _0x312306;}})['then'](function(_0x49a6ce){if(_0x49a6ce){var _0x1fa3f6=path[_0x43e7('0x4e')](config[_0x43e7('0x4f')],_0x43e7('0x52'),_0x49a6ce[_0x43e7('0x4d')]);if(!fs['existsSync'](_0x1fa3f6)){throw new db[(_0x43e7('0x53'))][(_0x43e7('0x54'))]('ScreenRecording\x20not\x20found');}if(_0x49a6ce[_0x43e7('0x55')]){return _0x39e3ca[_0x43e7('0x49')](_0x1fa3f6,_0x49a6ce[_0x43e7('0x55')]+path['extname'](_0x1fa3f6),function(){if(_0x34e2ec){fs['unlink'](_0x1fa3f6);}});}else{return _0x39e3ca['download'](_0x1fa3f6,function(_0x2ada55){if(_0x34e2ec){fs[_0x43e7('0x56')](_0x1fa3f6);}});}}})[_0x43e7('0x42')](function(_0x3a6404){if(_0x3a6404['message']==='ScreenRecording\x20not\x20found'){_0x39e3ca[_0x43e7('0x1b')](0x194)[_0x43e7('0x25')](_0x43e7('0x57'));}else{return handleError(_0x39e3ca,null);}});};exports[_0x43e7('0x22')]=function(_0x5ea0db,_0x4438c0){return db[_0x43e7('0x28')][_0x43e7('0x4c')]({'where':{'id':_0x5ea0db[_0x43e7('0x41')]['id']}})[_0x43e7('0x21')](function(_0xd41e79){if(_[_0x43e7('0x58')](_0xd41e79)){throw new ReferenceError(_0x43e7('0x59'));}return _0xd41e79;})[_0x43e7('0x21')](function(_0x381208){var _0x252f00=path['join'](config['root'],_0x43e7('0x52'),_0x381208['value']);logger['info']('cancellazione\x20fisica\x20documento\x20%s',_0x252f00);if(!_[_0x43e7('0x58')](_0x381208[_0x43e7('0x4d')])&&fs['existsSync'](_0x252f00)){logger[_0x43e7('0x5a')](_0x43e7('0x5b')+_0x252f00+_0x43e7('0x5c'));fs['unlinkSync'](_0x252f00);}_0x252f00=_0x252f00+_0x43e7('0x5d');if(!_[_0x43e7('0x58')](_0x381208[_0x43e7('0x4d')])&&fs[_0x43e7('0x5e')](_0x252f00)){logger[_0x43e7('0x5a')](_0x43e7('0x5b')+_0x252f00+_0x43e7('0x5c'));fs['unlinkSync'](_0x252f00);}return _0x381208;})[_0x43e7('0x21')](function(_0x40d0c0){if(!_0x40d0c0)throw new InternalError();return _0x40d0c0[_0x43e7('0x22')]();})['then'](function(){_0x4438c0['status'](0xcc)[_0x43e7('0x15')]();})['catch'](handleError(_0x4438c0,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbc2e=['path','rimraf','../../config/environment','exports','define','ScreenRecording','screen_recordings','interactionid','util','../../config/logger','api','moment','request-promise'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0xbc2e,0xcb));var _0xebc2=function(_0x47887c,_0x3ea162){_0x47887c=_0x47887c-0x0;var _0x1f85a7=_0xbc2e[_0x47887c];return _0x1f85a7;};'use strict';var _=require('lodash');var util=require(_0xebc2('0x0'));var logger=require(_0xebc2('0x1'))(_0xebc2('0x2'));var moment=require(_0xebc2('0x3'));var BPromise=require('bluebird');var rp=require(_0xebc2('0x4'));var fs=require('fs');var path=require(_0xebc2('0x5'));var rimraf=require(_0xebc2('0x6'));var config=require(_0xebc2('0x7'));var attributes=require('./screenRecording.attributes');module[_0xebc2('0x8')]=function(_0x237064,_0x13162c){return _0x237064[_0xebc2('0x9')](_0xebc2('0xa'),attributes,{'tableName':_0xebc2('0xb'),'paranoid':![],'indexes':[{'name':_0xebc2('0xc'),'fields':[_0xebc2('0xc')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xd2aa=['screen_recordings','interactionid','lodash','util','../../config/logger','moment','bluebird','request-promise','path','../../config/environment','define','ScreenRecording'];(function(_0x29ce14,_0x334166){var _0x48f289=function(_0x288d11){while(--_0x288d11){_0x29ce14['push'](_0x29ce14['shift']());}};_0x48f289(++_0x334166);}(_0xd2aa,0xb6));var _0xad2a=function(_0x20b29c,_0xe22528){_0x20b29c=_0x20b29c-0x0;var _0x20d81b=_0xd2aa[_0x20b29c];return _0x20d81b;};'use strict';var _=require(_0xad2a('0x0'));var util=require(_0xad2a('0x1'));var logger=require(_0xad2a('0x2'))('api');var moment=require(_0xad2a('0x3'));var BPromise=require(_0xad2a('0x4'));var rp=require(_0xad2a('0x5'));var fs=require('fs');var path=require(_0xad2a('0x6'));var rimraf=require('rimraf');var config=require(_0xad2a('0x7'));var attributes=require('./screenRecording.attributes');module['exports']=function(_0x2a04c6,_0x1c82cb){return _0x2a04c6[_0xad2a('0x8')](_0xad2a('0x9'),attributes,{'tableName':_0xad2a('0xa'),'paranoid':![],'indexes':[{'name':'interactionid','fields':[_0xad2a('0xb')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x03b1=['info','result','catch','lodash','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','request','ScreenRecording,\x20%s,\x20%s','ScreenRecording,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message'];(function(_0x2ac772,_0x579bf6){var _0x573cc9=function(_0x15497f){while(--_0x15497f){_0x2ac772['push'](_0x2ac772['shift']());}};_0x573cc9(++_0x579bf6);}(_0x03b1,0x8f));var _0x103b=function(_0x216e06,_0x2843f4){_0x216e06=_0x216e06-0x0;var _0x81ad3a=_0x03b1[_0x216e06];return _0x81ad3a;};'use strict';var _=require(_0x103b('0x0'));var util=require('util');var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x103b('0x1'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x103b('0x2'))['db'];var utils=require(_0x103b('0x3'));var logger=require(_0x103b('0x4'))(_0x103b('0x5'));var config=require(_0x103b('0x6'));var jayson=require('jayson/promise');var client=jayson[_0x103b('0x7')][_0x103b('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x27b2eb,_0x4eae49,_0x2f0719){return new BPromise(function(_0x29115e,_0x2a6e42){return client[_0x103b('0x9')](_0x27b2eb,_0x2f0719)['then'](function(_0x5ce1a7){logger['info'](_0x103b('0xa'),_0x4eae49,'request\x20sent');logger['debug'](_0x103b('0xb'),_0x4eae49,_0x103b('0xc'),JSON[_0x103b('0xd')](_0x5ce1a7));if(_0x5ce1a7[_0x103b('0xe')]){if(_0x5ce1a7[_0x103b('0xe')][_0x103b('0xf')]===0x1f4){logger[_0x103b('0xe')](_0x103b('0xa'),_0x4eae49,_0x5ce1a7[_0x103b('0xe')][_0x103b('0x10')]);return _0x2a6e42(_0x5ce1a7[_0x103b('0xe')][_0x103b('0x10')]);}logger[_0x103b('0xe')](_0x103b('0xa'),_0x4eae49,_0x5ce1a7[_0x103b('0xe')][_0x103b('0x10')]);return _0x29115e(_0x5ce1a7[_0x103b('0xe')][_0x103b('0x10')]);}else{logger[_0x103b('0x11')](_0x103b('0xa'),_0x4eae49,'request\x20sent');_0x29115e(_0x5ce1a7[_0x103b('0x12')]['message']);}})[_0x103b('0x13')](function(_0x298bd5){logger[_0x103b('0xe')](_0x103b('0xa'),_0x4eae49,_0x298bd5);_0x2a6e42(_0x298bd5);});});}
\ No newline at end of file
+var _0x49d1=['request\x20sent','debug','ScreenRecording,\x20%s,\x20%s,\x20%s','stringify','error','code','ScreenRecording,\x20%s,\x20%s','message','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','request','then'];(function(_0x4d7c0b,_0x24316a){var _0xecbd05=function(_0x2d379e){while(--_0x2d379e){_0x4d7c0b['push'](_0x4d7c0b['shift']());}};_0xecbd05(++_0x24316a);}(_0x49d1,0xe1));var _0x149d=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x49d1[_0x321bb2];return _0x9c12ed;};'use strict';var _=require(_0x149d('0x0'));var util=require(_0x149d('0x1'));var moment=require(_0x149d('0x2'));var BPromise=require(_0x149d('0x3'));var rs=require(_0x149d('0x4'));var fs=require('fs');var Redis=require(_0x149d('0x5'));var db=require(_0x149d('0x6'))['db'];var utils=require(_0x149d('0x7'));var logger=require(_0x149d('0x8'))(_0x149d('0x9'));var config=require(_0x149d('0xa'));var jayson=require(_0x149d('0xb'));var client=jayson[_0x149d('0xc')]['http']({'port':0x232a});function respondWithRpcPromise(_0x199e93,_0x1e21b5,_0x41f99f){return new BPromise(function(_0xdd8b41,_0x2ee7fa){return client[_0x149d('0xd')](_0x199e93,_0x41f99f)[_0x149d('0xe')](function(_0x4be10e){logger['info']('ScreenRecording,\x20%s,\x20%s',_0x1e21b5,_0x149d('0xf'));logger[_0x149d('0x10')](_0x149d('0x11'),_0x1e21b5,_0x149d('0xf'),JSON[_0x149d('0x12')](_0x4be10e));if(_0x4be10e[_0x149d('0x13')]){if(_0x4be10e[_0x149d('0x13')][_0x149d('0x14')]===0x1f4){logger[_0x149d('0x13')](_0x149d('0x15'),_0x1e21b5,_0x4be10e['error'][_0x149d('0x16')]);return _0x2ee7fa(_0x4be10e[_0x149d('0x13')][_0x149d('0x16')]);}logger[_0x149d('0x13')]('ScreenRecording,\x20%s,\x20%s',_0x1e21b5,_0x4be10e[_0x149d('0x13')]['message']);return _0xdd8b41(_0x4be10e[_0x149d('0x13')]['message']);}else{logger['info']('ScreenRecording,\x20%s,\x20%s',_0x1e21b5,'request\x20sent');_0xdd8b41(_0x4be10e['result']['message']);}})[_0x149d('0x17')](function(_0x892e04){logger[_0x149d('0x13')](_0x149d('0x15'),_0x1e21b5,_0x892e04);_0x2ee7fa(_0x892e04);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa347=['/:id/preferred','getPreferred','/:id/favicon','getFavicon','diskStorage','join','root','server/files/images/logos/','format','logo','originalname','post','single','file','addLogo','%s%s','logologin','extname','/:id/logo_login','addLogoLogin','preferred','addPreferred','favicon','addFavicon','put','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/now','getDate','/:id','show','/:id/logo','getLogo','getLogoLogin','/:id/gdpr'];(function(_0x379427,_0x56b9fb){var _0xceece3=function(_0x4feeff){while(--_0x4feeff){_0x379427['push'](_0x379427['shift']());}};_0xceece3(++_0x56b9fb);}(_0xa347,0x134));var _0x7a34=function(_0x2053ea,_0x1ab2d4){_0x2053ea=_0x2053ea-0x0;var _0x2232c4=_0xa347[_0x2053ea];return _0x2232c4;};'use strict';var multer=require(_0x7a34('0x0'));var util=require(_0x7a34('0x1'));var path=require(_0x7a34('0x2'));var timeout=require(_0x7a34('0x3'));var express=require(_0x7a34('0x4'));var router=express[_0x7a34('0x5')]();var fs_extra=require(_0x7a34('0x6'));var auth=require(_0x7a34('0x7'));var interaction=require(_0x7a34('0x8'));var config=require(_0x7a34('0x9'));var controller=require('./setting.controller');router[_0x7a34('0xa')]('/',auth[_0x7a34('0xb')](),controller[_0x7a34('0xc')]);router[_0x7a34('0xa')](_0x7a34('0xd'),controller[_0x7a34('0xe')]);router['get'](_0x7a34('0xf'),controller[_0x7a34('0x10')]);router[_0x7a34('0xa')](_0x7a34('0x11'),controller[_0x7a34('0x12')]);router['get']('/:id/logo_login',controller[_0x7a34('0x13')]);router[_0x7a34('0xa')](_0x7a34('0x14'),controller['gdpr']);router['get'](_0x7a34('0x15'),controller[_0x7a34('0x16')]);router[_0x7a34('0xa')](_0x7a34('0x17'),controller[_0x7a34('0x18')]);var upload=multer({'storage':multer[_0x7a34('0x19')]({'destination':function(_0x595809,_0x29725c,_0x5aa75e){_0x5aa75e(null,path[_0x7a34('0x1a')](config[_0x7a34('0x1b')],_0x7a34('0x1c')));},'filename':function(_0x180edb,_0x31871a,_0x534053){_0x534053(null,util[_0x7a34('0x1d')]('%s%s',_0x7a34('0x1e'),path['extname'](_0x31871a[_0x7a34('0x1f')])));}})});router[_0x7a34('0x20')](_0x7a34('0x11'),upload[_0x7a34('0x21')](_0x7a34('0x22')),controller[_0x7a34('0x23')]);var upload=multer({'storage':multer['diskStorage']({'destination':function(_0x3aae2d,_0x42882c,_0x523f14){_0x523f14(null,path[_0x7a34('0x1a')](config['root'],_0x7a34('0x1c')));},'filename':function(_0x1713ae,_0xb5d1b5,_0x43ab3d){_0x43ab3d(null,util[_0x7a34('0x1d')](_0x7a34('0x24'),_0x7a34('0x25'),path[_0x7a34('0x26')](_0xb5d1b5[_0x7a34('0x1f')])));}})});router[_0x7a34('0x20')](_0x7a34('0x27'),upload[_0x7a34('0x21')](_0x7a34('0x22')),controller[_0x7a34('0x28')]);var upload=multer({'storage':multer[_0x7a34('0x19')]({'destination':function(_0x3d4a15,_0x5be660,_0x534ea3){_0x534ea3(null,path['join'](config['root'],_0x7a34('0x1c')));},'filename':function(_0x34d095,_0x5612f8,_0x2a9746){_0x2a9746(null,util[_0x7a34('0x1d')](_0x7a34('0x24'),_0x7a34('0x29'),path[_0x7a34('0x26')](_0x5612f8[_0x7a34('0x1f')])));}})});router['post'](_0x7a34('0x15'),upload[_0x7a34('0x21')](_0x7a34('0x22')),controller[_0x7a34('0x2a')]);var upload=multer({'storage':multer[_0x7a34('0x19')]({'destination':function(_0x19fad1,_0x4e3c0a,_0x2a2395){_0x2a2395(null,path[_0x7a34('0x1a')](config[_0x7a34('0x1b')],_0x7a34('0x1c')));},'filename':function(_0x1b6f7c,_0x2de66e,_0x37ebfa){_0x37ebfa(null,util['format']('%s%s',_0x7a34('0x2b'),path[_0x7a34('0x26')](_0x2de66e[_0x7a34('0x1f')])));}})});router[_0x7a34('0x20')]('/:id/favicon',upload[_0x7a34('0x21')](_0x7a34('0x22')),controller[_0x7a34('0x2c')]);router[_0x7a34('0x2d')](_0x7a34('0xf'),auth[_0x7a34('0xb')](),controller['update']);module[_0x7a34('0x2e')]=router;
\ No newline at end of file
+var _0xbf4a=['join','server/files/images/logos/','format','%s%s','originalname','single','addLogo','logologin','extname','post','file','addLogoLogin','root','preferred','addFavicon','put','exports','util','path','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','./setting.controller','isAuthenticated','get','/now','getDate','/:id','show','/:id/logo','getLogo','/:id/logo_login','getLogoLogin','/:id/gdpr','gdpr','/:id/preferred','/:id/favicon','diskStorage'];(function(_0x4fec9b,_0x2914bd){var _0x163904=function(_0x152752){while(--_0x152752){_0x4fec9b['push'](_0x4fec9b['shift']());}};_0x163904(++_0x2914bd);}(_0xbf4a,0xb1));var _0xabf4=function(_0x7a079c,_0x582ad4){_0x7a079c=_0x7a079c-0x0;var _0x2fb89f=_0xbf4a[_0x7a079c];return _0x2fb89f;};'use strict';var multer=require('multer');var util=require(_0xabf4('0x0'));var path=require(_0xabf4('0x1'));var timeout=require(_0xabf4('0x2'));var express=require(_0xabf4('0x3'));var router=express['Router']();var fs_extra=require(_0xabf4('0x4'));var auth=require(_0xabf4('0x5'));var interaction=require(_0xabf4('0x6'));var config=require('../../config/environment');var controller=require(_0xabf4('0x7'));router['get']('/',auth[_0xabf4('0x8')](),controller['index']);router[_0xabf4('0x9')](_0xabf4('0xa'),controller[_0xabf4('0xb')]);router['get'](_0xabf4('0xc'),controller[_0xabf4('0xd')]);router[_0xabf4('0x9')](_0xabf4('0xe'),controller[_0xabf4('0xf')]);router[_0xabf4('0x9')](_0xabf4('0x10'),controller[_0xabf4('0x11')]);router['get'](_0xabf4('0x12'),controller[_0xabf4('0x13')]);router[_0xabf4('0x9')](_0xabf4('0x14'),controller['getPreferred']);router[_0xabf4('0x9')](_0xabf4('0x15'),controller['getFavicon']);var upload=multer({'storage':multer[_0xabf4('0x16')]({'destination':function(_0x359019,_0x3837f3,_0x5bc744){_0x5bc744(null,path[_0xabf4('0x17')](config['root'],_0xabf4('0x18')));},'filename':function(_0x2b7382,_0x5b6d77,_0x3ec5d7){_0x3ec5d7(null,util[_0xabf4('0x19')](_0xabf4('0x1a'),'logo',path['extname'](_0x5b6d77[_0xabf4('0x1b')])));}})});router['post'](_0xabf4('0xe'),upload[_0xabf4('0x1c')]('file'),controller[_0xabf4('0x1d')]);var upload=multer({'storage':multer[_0xabf4('0x16')]({'destination':function(_0x2c9d21,_0x919d47,_0x4a1afb){_0x4a1afb(null,path[_0xabf4('0x17')](config['root'],'server/files/images/logos/'));},'filename':function(_0x46008c,_0x382cb1,_0x8f5852){_0x8f5852(null,util['format'](_0xabf4('0x1a'),_0xabf4('0x1e'),path[_0xabf4('0x1f')](_0x382cb1[_0xabf4('0x1b')])));}})});router[_0xabf4('0x20')](_0xabf4('0x10'),upload['single'](_0xabf4('0x21')),controller[_0xabf4('0x22')]);var upload=multer({'storage':multer[_0xabf4('0x16')]({'destination':function(_0x502635,_0xfadf,_0x581384){_0x581384(null,path[_0xabf4('0x17')](config[_0xabf4('0x23')],_0xabf4('0x18')));},'filename':function(_0x48e778,_0x2316a6,_0x566ae9){_0x566ae9(null,util[_0xabf4('0x19')]('%s%s',_0xabf4('0x24'),path['extname'](_0x2316a6[_0xabf4('0x1b')])));}})});router[_0xabf4('0x20')](_0xabf4('0x14'),upload[_0xabf4('0x1c')](_0xabf4('0x21')),controller['addPreferred']);var upload=multer({'storage':multer[_0xabf4('0x16')]({'destination':function(_0x5ec35f,_0x5c1f3f,_0x56aac5){_0x56aac5(null,path[_0xabf4('0x17')](config[_0xabf4('0x23')],_0xabf4('0x18')));},'filename':function(_0x5348dc,_0x171c9e,_0x363c19){_0x363c19(null,util['format']('%s%s','favicon',path[_0xabf4('0x1f')](_0x171c9e['originalname'])));}})});router[_0xabf4('0x20')](_0xabf4('0x15'),upload[_0xabf4('0x1c')](_0xabf4('0x21')),controller[_0xabf4('0x25')]);router[_0xabf4('0x26')]('/:id',auth['isAuthenticated'](),controller['update']);module[_0xabf4('0x27')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xadb5=['https://www.xcally.com/bar/phonebar/autoupdater.xml','UNSIGNED','exports','min_internal','INTEGER','min_mailbox','STRING','/var/opt/motion2/server/files/sounds/converted','BOOLEAN'];(function(_0x28b7ab,_0x16a764){var _0x56791b=function(_0x25d20d){while(--_0x25d20d){_0x28b7ab['push'](_0x28b7ab['shift']());}};_0x56791b(++_0x16a764);}(_0xadb5,0xad));var _0x5adb=function(_0x41bf2d,_0x301d4a){_0x41bf2d=_0x41bf2d-0x0;var _0x27b432=_0xadb5[_0x41bf2d];return _0x27b432;};'use strict';var Sequelize=require('sequelize');module[_0x5adb('0x0')]={'min_internal':{'type':Sequelize['INTEGER'](0xb),'unique':_0x5adb('0x1'),'defaultValue':0x3e8},'min_mailbox':{'type':Sequelize[_0x5adb('0x2')](0xb),'unique':_0x5adb('0x3'),'defaultValue':0x3e8},'agi_port':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0x11dd},'soundPath':{'type':Sequelize[_0x5adb('0x4')],'defaultValue':_0x5adb('0x5')},'logo':{'type':Sequelize[_0x5adb('0x4')]},'defaultLogo':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'loginLogo':{'type':Sequelize[_0x5adb('0x4')]},'defaultLoginLogo':{'type':Sequelize[_0x5adb('0x6')],'defaultValue':!![]},'headerWhiteLabel':{'type':Sequelize[_0x5adb('0x4')]},'defaultHeaderWhiteLabel':{'type':Sequelize[_0x5adb('0x6')],'defaultValue':!![]},'securePassword':{'type':Sequelize[_0x5adb('0x6')],'defaultValue':!![]},'firstSetup':{'type':Sequelize[_0x5adb('0x6')],'defaultValue':!![]},'stunaddr':{'type':Sequelize[_0x5adb('0x4')]},'turnaddr':{'type':Sequelize[_0x5adb('0x4')]},'turnusername':{'type':Sequelize[_0x5adb('0x4')]},'turnpassword':{'type':Sequelize[_0x5adb('0x4')]},'pageTitle':{'type':Sequelize[_0x5adb('0x4')]},'defaultPageTitle':{'type':Sequelize[_0x5adb('0x6')],'defaultValue':!![]},'callRecordingEncryption':{'type':Sequelize[_0x5adb('0x6')],'defaultValue':![]},'passwordExpiresDays':{'type':Sequelize[_0x5adb('0x2')](0xb),'defaultValue':0x5a},'phoneBarAutoUpdater':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'phoneBarAutoUpdaterUrl':{'type':Sequelize['STRING'],'defaultValue':_0x5adb('0x7')},'enableEmailPreview':{'type':Sequelize[_0x5adb('0x6')],'defaultValue':![]},'split':{'type':Sequelize[_0x5adb('0x6')],'defaultValue':!![]},'splitSizeCsv':{'type':Sequelize['INTEGER'],'defaultValue':0x1388},'splitSizePdf':{'type':Sequelize[_0x5adb('0x2')],'defaultValue':0x1388},'splitSizeXlsx':{'type':Sequelize['INTEGER'],'defaultValue':0x1388},'messagesAlignment':{'type':Sequelize[_0x5adb('0x4')],'defaultValue':'alternate'},'chatTimeout':{'type':Sequelize[_0x5adb('0x2')],'defaultValue':0x1e},'phoneBarRememberMeEnabled':{'type':Sequelize[_0x5adb('0x6')],'defaultValue':!![]},'preferred':{'type':Sequelize[_0x5adb('0x4')]},'defaultPreferred':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'rtlSupport':{'type':Sequelize[_0x5adb('0x6')],'defaultValue':![]},'defaultScreenRecordingPath':{'type':Sequelize[_0x5adb('0x4')]},'allowedLoginAttempts':{'type':Sequelize[_0x5adb('0x2')],'defaultValue':0x5},'blockDuration':{'type':Sequelize['INTEGER'],'defaultValue':0xa},'favicon':{'type':Sequelize[_0x5adb('0x4')]},'defaultFavicon':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'loginMailFrequency':{'type':Sequelize[_0x5adb('0x2')],'defaultValue':0xa,'validate':{'min':0xa}},'transcribe':{'type':Sequelize[_0x5adb('0x6')],'defaultValue':![]},'automaticTranscribe':{'type':Sequelize[_0x5adb('0x6')],'defaultValue':![]},'transcribeAccountId':{'type':Sequelize[_0x5adb('0x2')]},'transcribeRegion':{'type':Sequelize[_0x5adb('0x4')]},'sentiment':{'type':Sequelize[_0x5adb('0x6')],'defaultValue':![]},'automaticSentiment':{'type':Sequelize[_0x5adb('0x6')],'defaultValue':![]},'sentimentAccountId':{'type':Sequelize[_0x5adb('0x2')]},'sentimentRegion':{'type':Sequelize[_0x5adb('0x4')]},'language':{'type':Sequelize['STRING']},'bucket':{'type':Sequelize[_0x5adb('0x4')]},'googleSsoEnabled':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'enforcePasswordHistory':{'type':Sequelize[_0x5adb('0x6')],'defaultValue':!![]},'passwordHistoryLimit':{'type':Sequelize['INTEGER'](0x2)[_0x5adb('0x8')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x5}},'privacyPolicyEmail':{'type':Sequelize['INTEGER'](0x2)['UNSIGNED'],'defaultValue':0x0},'privacyPolicyName':{'type':Sequelize[_0x5adb('0x2')](0x2)[_0x5adb('0x8')],'defaultValue':0x0},'privacyPolicyNumber':{'type':Sequelize[_0x5adb('0x2')](0x2)[_0x5adb('0x8')],'defaultValue':0x0},'searchOnEnterKey':{'type':Sequelize[_0x5adb('0x6')],'defaultValue':!![]},'chatInteractionsReloadTimeout':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'mailInteractionsReloadTimeout':{'type':Sequelize[_0x5adb('0x2')],'defaultValue':0x0},'openchannelInteractionsReloadTimeout':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'smsInteractionsReloadTimeout':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'whatsappInteractionsReloadTimeout':{'type':Sequelize[_0x5adb('0x2')],'defaultValue':0x0},'stopRecordingOnTransfer':{'type':Sequelize[_0x5adb('0x6')],'defaultValue':![]}};
\ No newline at end of file
+var _0x0b0e=['INTEGER','min_mailbox','STRING','/var/opt/motion2/server/files/sounds/converted','BOOLEAN','alternate','UNSIGNED','sequelize'];(function(_0x1536b2,_0x595874){var _0x18d884=function(_0x3a86cb){while(--_0x3a86cb){_0x1536b2['push'](_0x1536b2['shift']());}};_0x18d884(++_0x595874);}(_0x0b0e,0x187));var _0xe0b0=function(_0x280f4a,_0x2ed8d6){_0x280f4a=_0x280f4a-0x0;var _0x1bb157=_0x0b0e[_0x280f4a];return _0x1bb157;};'use strict';var Sequelize=require(_0xe0b0('0x0'));module['exports']={'min_internal':{'type':Sequelize[_0xe0b0('0x1')](0xb),'unique':'min_internal','defaultValue':0x3e8},'min_mailbox':{'type':Sequelize[_0xe0b0('0x1')](0xb),'unique':_0xe0b0('0x2'),'defaultValue':0x3e8},'agi_port':{'type':Sequelize[_0xe0b0('0x1')](0xb),'defaultValue':0x11dd},'soundPath':{'type':Sequelize[_0xe0b0('0x3')],'defaultValue':_0xe0b0('0x4')},'logo':{'type':Sequelize[_0xe0b0('0x3')]},'defaultLogo':{'type':Sequelize[_0xe0b0('0x5')],'defaultValue':!![]},'loginLogo':{'type':Sequelize[_0xe0b0('0x3')]},'defaultLoginLogo':{'type':Sequelize[_0xe0b0('0x5')],'defaultValue':!![]},'headerWhiteLabel':{'type':Sequelize[_0xe0b0('0x3')]},'defaultHeaderWhiteLabel':{'type':Sequelize[_0xe0b0('0x5')],'defaultValue':!![]},'securePassword':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'firstSetup':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'stunaddr':{'type':Sequelize[_0xe0b0('0x3')]},'turnaddr':{'type':Sequelize[_0xe0b0('0x3')]},'turnusername':{'type':Sequelize[_0xe0b0('0x3')]},'turnpassword':{'type':Sequelize[_0xe0b0('0x3')]},'pageTitle':{'type':Sequelize['STRING']},'defaultPageTitle':{'type':Sequelize[_0xe0b0('0x5')],'defaultValue':!![]},'callRecordingEncryption':{'type':Sequelize[_0xe0b0('0x5')],'defaultValue':![]},'passwordExpiresDays':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0x5a},'phoneBarAutoUpdater':{'type':Sequelize[_0xe0b0('0x5')],'defaultValue':!![]},'phoneBarAutoUpdaterUrl':{'type':Sequelize[_0xe0b0('0x3')],'defaultValue':'https://www.xcally.com/bar/phonebar/autoupdater.xml'},'enableEmailPreview':{'type':Sequelize[_0xe0b0('0x5')],'defaultValue':![]},'split':{'type':Sequelize[_0xe0b0('0x5')],'defaultValue':!![]},'splitSizeCsv':{'type':Sequelize[_0xe0b0('0x1')],'defaultValue':0x1388},'splitSizePdf':{'type':Sequelize['INTEGER'],'defaultValue':0x1388},'splitSizeXlsx':{'type':Sequelize[_0xe0b0('0x1')],'defaultValue':0x1388},'messagesAlignment':{'type':Sequelize[_0xe0b0('0x3')],'defaultValue':_0xe0b0('0x6')},'chatTimeout':{'type':Sequelize[_0xe0b0('0x1')],'defaultValue':0x1e},'phoneBarRememberMeEnabled':{'type':Sequelize[_0xe0b0('0x5')],'defaultValue':!![]},'preferred':{'type':Sequelize['STRING']},'defaultPreferred':{'type':Sequelize[_0xe0b0('0x5')],'defaultValue':!![]},'rtlSupport':{'type':Sequelize[_0xe0b0('0x5')],'defaultValue':![]},'defaultScreenRecordingPath':{'type':Sequelize[_0xe0b0('0x3')]},'allowedLoginAttempts':{'type':Sequelize[_0xe0b0('0x1')],'defaultValue':0x5},'blockDuration':{'type':Sequelize[_0xe0b0('0x1')],'defaultValue':0xa},'favicon':{'type':Sequelize['STRING']},'defaultFavicon':{'type':Sequelize[_0xe0b0('0x5')],'defaultValue':!![]},'loginMailFrequency':{'type':Sequelize['INTEGER'],'defaultValue':0xa,'validate':{'min':0xa}},'transcribe':{'type':Sequelize[_0xe0b0('0x5')],'defaultValue':![]},'automaticTranscribe':{'type':Sequelize[_0xe0b0('0x5')],'defaultValue':![]},'transcribeAccountId':{'type':Sequelize['INTEGER']},'transcribeRegion':{'type':Sequelize[_0xe0b0('0x3')]},'sentiment':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'automaticSentiment':{'type':Sequelize[_0xe0b0('0x5')],'defaultValue':![]},'sentimentAccountId':{'type':Sequelize[_0xe0b0('0x1')]},'sentimentRegion':{'type':Sequelize['STRING']},'language':{'type':Sequelize['STRING']},'bucket':{'type':Sequelize[_0xe0b0('0x3')]},'googleSsoEnabled':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'enforcePasswordHistory':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'passwordHistoryLimit':{'type':Sequelize['INTEGER'](0x2)[_0xe0b0('0x7')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x5}},'privacyPolicyEmail':{'type':Sequelize['INTEGER'](0x2)['UNSIGNED'],'defaultValue':0x0},'privacyPolicyName':{'type':Sequelize[_0xe0b0('0x1')](0x2)['UNSIGNED'],'defaultValue':0x0},'privacyPolicyNumber':{'type':Sequelize[_0xe0b0('0x1')](0x2)['UNSIGNED'],'defaultValue':0x0},'searchOnEnterKey':{'type':Sequelize[_0xe0b0('0x5')],'defaultValue':!![]},'chatInteractionsReloadTimeout':{'type':Sequelize[_0xe0b0('0x1')],'defaultValue':0x0},'mailInteractionsReloadTimeout':{'type':Sequelize[_0xe0b0('0x1')],'defaultValue':0x0},'openchannelInteractionsReloadTimeout':{'type':Sequelize[_0xe0b0('0x1')],'defaultValue':0x0},'smsInteractionsReloadTimeout':{'type':Sequelize[_0xe0b0('0x1')],'defaultValue':0x0},'whatsappInteractionsReloadTimeout':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'stopRecordingOnTransfer':{'type':Sequelize['BOOLEAN'],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x070c=['to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','client','http','request','info','Setting,\x20%s,\x20%s','debug','stringify','code','error','message','request\x20sent','result','catch','sendStatus','status','end','limit','undefined','count','offset','set','Content-Range','json','apply','reject','save','update','then','stack','send','index','Setting','rawAttributes','fieldName','type','key','model','map','name','query','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','include','show','params','keys','options','find','body','addLogo','file','logo','filename','addLogoLogin','loginLogo','getLogo','getLicense','preferred','favicon','defaultLogo','defaultPreferred','join','root','toLower','default_logo.svg','default','upperFirst','custom','ValidationError','\x20not\x20found','download','server/files/images/logos','defaultLoginLogo','default_loginLogo.svg','Sequelize','gdpr','securePassword','getPreferred','defaultFavicon','default_preferred.png','existsSync','addFavicon','getFavicon','default_favicon.ico','getDate','utcOffset','now','format','YYYY-MM-DD\x20HH:mm:ss:SSS','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','path','sox'];(function(_0x357be4,_0x3bc32f){var _0xa8b73d=function(_0x213895){while(--_0x213895){_0x357be4['push'](_0x357be4['shift']());}};_0xa8b73d(++_0x3bc32f);}(_0x070c,0xfb));var _0xc070=function(_0x26bb37,_0x169d5a){_0x26bb37=_0x26bb37-0x0;var _0x26e7ab=_0x070c[_0x26bb37];return _0x26e7ab;};'use strict';var emlformat=require(_0xc070('0x0'));var rimraf=require(_0xc070('0x1'));var zipdir=require(_0xc070('0x2'));var jsonpatch=require(_0xc070('0x3'));var rp=require(_0xc070('0x4'));var moment=require(_0xc070('0x5'));var BPromise=require('bluebird');var Mustache=require(_0xc070('0x6'));var util=require('util');var path=require(_0xc070('0x7'));var sox=require(_0xc070('0x8'));var csv=require(_0xc070('0x9'));var ejs=require(_0xc070('0xa'));var fs=require('fs');var fs_extra=require(_0xc070('0xb'));var _=require(_0xc070('0xc'));var squel=require(_0xc070('0xd'));var crypto=require(_0xc070('0xe'));var jsforce=require(_0xc070('0xf'));var deskjs=require(_0xc070('0x10'));var toCsv=require(_0xc070('0x9'));var querystring=require(_0xc070('0x11'));var Papa=require(_0xc070('0x12'));var Redis=require(_0xc070('0x13'));var authService=require(_0xc070('0x14'));var qs=require(_0xc070('0x15'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0xc070('0x16'))(_0xc070('0x17'));var utils=require(_0xc070('0x18'));var config=require(_0xc070('0x19'));var licenseUtil=require(_0xc070('0x1a'));var db=require(_0xc070('0x1b'))['db'];var jayson=require(_0xc070('0x1c'));var client=jayson[_0xc070('0x1d')][_0xc070('0x1e')]({'port':0x232a});function respondWithRpcPromise(_0x3a5fe2,_0x5f100d,_0x21c3be,_0x2ec485){return new BPromise(function(_0x345c28,_0x2256bd){var _0x463918=_0x2ec485||client;return _0x463918[_0xc070('0x1f')](_0x3a5fe2,_0x21c3be)['then'](function(_0x3cc199){logger[_0xc070('0x20')](_0xc070('0x21'),_0x5f100d,'request\x20sent');logger[_0xc070('0x22')]('Setting,\x20%s,\x20%s,\x20%s',_0x5f100d,'request\x20sent',JSON[_0xc070('0x23')](_0x3cc199));if(_0x3cc199['error']){if(_0x3cc199['error'][_0xc070('0x24')]===0x1f4){logger[_0xc070('0x25')](_0xc070('0x21'),_0x5f100d,_0x3cc199[_0xc070('0x25')][_0xc070('0x26')]);return _0x2256bd(_0x3cc199[_0xc070('0x25')][_0xc070('0x26')]);}logger[_0xc070('0x25')](_0xc070('0x21'),_0x5f100d,_0x3cc199[_0xc070('0x25')]['message']);return _0x345c28(_0x3cc199['error'][_0xc070('0x26')]);}else{logger['info'](_0xc070('0x21'),_0x5f100d,_0xc070('0x27'));_0x345c28(_0x3cc199[_0xc070('0x28')]['message']);}})[_0xc070('0x29')](function(_0x4af087){logger[_0xc070('0x25')](_0xc070('0x21'),_0x5f100d,_0x4af087);_0x2256bd(_0x4af087);});});}function respondWithStatusCode(_0x2948c2,_0x573c1c){_0x573c1c=_0x573c1c||0xcc;return function(_0x28860f){if(_0x28860f){return _0x2948c2[_0xc070('0x2a')](_0x573c1c);}return _0x2948c2[_0xc070('0x2b')](_0x573c1c)[_0xc070('0x2c')]();};}function respondWithResult(_0x219158,_0x1d875d){_0x1d875d=_0x1d875d||0xc8;return function(_0x206c12){if(_0x206c12){return _0x219158['status'](_0x1d875d)['json'](_0x206c12);}};}function respondWithFilteredResult(_0x5fd8c,_0x431e37){return function(_0x3c6ca7){if(_0x3c6ca7){var _0x201a49=typeof _0x431e37['offset']==='undefined'&&typeof _0x431e37[_0xc070('0x2d')]===_0xc070('0x2e');var _0x182829=_0x3c6ca7[_0xc070('0x2f')];var _0x284a67=_0x201a49?0x0:_0x431e37[_0xc070('0x30')];var _0x183aeb=_0x201a49?_0x3c6ca7['count']:_0x431e37['offset']+_0x431e37[_0xc070('0x2d')];var _0x33d333;if(_0x183aeb>=_0x182829){_0x183aeb=_0x182829;_0x33d333=0xc8;}else{_0x33d333=0xce;}_0x5fd8c[_0xc070('0x2b')](_0x33d333);return _0x5fd8c[_0xc070('0x31')](_0xc070('0x32'),_0x284a67+'-'+_0x183aeb+'/'+_0x182829)[_0xc070('0x33')](_0x3c6ca7);}return null;};}function patchUpdates(_0x4dbce3){return function(_0x58a05c){try{jsonpatch[_0xc070('0x34')](_0x58a05c,_0x4dbce3,!![]);}catch(_0xd5c47f){return BPromise[_0xc070('0x35')](_0xd5c47f);}return _0x58a05c[_0xc070('0x36')]();};}function saveUpdates(_0x4fd12f,_0x27fc70){return function(_0xac3a6b){if(_0xac3a6b){return _0xac3a6b[_0xc070('0x37')](_0x4fd12f)[_0xc070('0x38')](function(_0x2947f6){return _0x2947f6;});}return null;};}function removeEntity(_0x3ae335,_0x1b4e49){return function(_0xc4bdc7){if(_0xc4bdc7){return _0xc4bdc7['destroy']()[_0xc070('0x38')](function(){_0x3ae335[_0xc070('0x2b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x53b949,_0x534d5b){return function(_0x30a478){if(!_0x30a478){_0x53b949['sendStatus'](0x194);}return _0x30a478;};}function handleError(_0x1d349b,_0x5765a4){_0x5765a4=_0x5765a4||0x1f4;return function(_0x1de096){logger[_0xc070('0x25')](_0x1de096[_0xc070('0x39')]);if(_0x1de096['name']){delete _0x1de096['name'];}_0x1d349b['status'](_0x5765a4)[_0xc070('0x3a')](_0x1de096);};}exports[_0xc070('0x3b')]=function(_0x464dfa,_0x9cc5ce){var _0x202987={},_0x353560={},_0xc139dd={'count':0x0,'rows':[]};var _0x3dae1b=_['map'](db[_0xc070('0x3c')][_0xc070('0x3d')],function(_0x4c620e){return{'name':_0x4c620e[_0xc070('0x3e')],'type':_0x4c620e[_0xc070('0x3f')][_0xc070('0x40')]};});_0x353560[_0xc070('0x41')]=_[_0xc070('0x42')](_0x3dae1b,_0xc070('0x43'));_0x353560[_0xc070('0x44')]=_['keys'](_0x464dfa[_0xc070('0x44')]);_0x353560[_0xc070('0x45')]=_[_0xc070('0x46')](_0x353560[_0xc070('0x41')],_0x353560[_0xc070('0x44')]);_0x202987['attributes']=_['intersection'](_0x353560['model'],qs[_0xc070('0x47')](_0x464dfa[_0xc070('0x44')][_0xc070('0x47')]));_0x202987[_0xc070('0x48')]=_0x202987['attributes'][_0xc070('0x49')]?_0x202987[_0xc070('0x48')]:_0x353560['model'];if(!_0x464dfa[_0xc070('0x44')][_0xc070('0x4a')](_0xc070('0x4b'))){_0x202987[_0xc070('0x2d')]=qs[_0xc070('0x2d')](_0x464dfa[_0xc070('0x44')][_0xc070('0x2d')]);_0x202987[_0xc070('0x30')]=qs[_0xc070('0x30')](_0x464dfa[_0xc070('0x44')][_0xc070('0x30')]);}_0x202987[_0xc070('0x4c')]=qs[_0xc070('0x4d')](_0x464dfa[_0xc070('0x44')][_0xc070('0x4d')]);_0x202987[_0xc070('0x4e')]=qs[_0xc070('0x45')](_[_0xc070('0x4f')](_0x464dfa[_0xc070('0x44')],_0x353560['filters']),_0x3dae1b);if(_0x464dfa[_0xc070('0x44')][_0xc070('0x50')]){_0x202987[_0xc070('0x4e')]=_[_0xc070('0x51')](_0x202987['where'],{'$or':_[_0xc070('0x42')](_0x3dae1b,function(_0x49ada3){if(_0x49ada3['type']!==_0xc070('0x52')){var _0x4465fc={};_0x4465fc[_0x49ada3['name']]={'$like':'%'+_0x464dfa[_0xc070('0x44')][_0xc070('0x50')]+'%'};return _0x4465fc;}})});}_0x202987=_['merge']({},_0x202987,_0x464dfa['options']);var _0x308932={'where':_0x202987[_0xc070('0x4e')]};return db[_0xc070('0x3c')]['count'](_0x308932)[_0xc070('0x38')](function(_0xb2c568){_0xc139dd[_0xc070('0x2f')]=_0xb2c568;if(_0x464dfa[_0xc070('0x44')]['includeAll']){_0x202987[_0xc070('0x53')]=[{'all':!![]}];}return db[_0xc070('0x3c')]['findAll'](_0x202987);})['then'](function(_0x34fd96){_0xc139dd['rows']=_0x34fd96;return _0xc139dd;})[_0xc070('0x38')](respondWithFilteredResult(_0x9cc5ce,_0x202987))[_0xc070('0x29')](handleError(_0x9cc5ce,null));};exports[_0xc070('0x54')]=function(_0x5c4f5d,_0x1ca242){var _0x3394ed={'raw':![],'where':{'id':_0x5c4f5d[_0xc070('0x55')]['id']}},_0x51376d={};_0x51376d['model']=_['keys'](db[_0xc070('0x3c')][_0xc070('0x3d')]);_0x51376d[_0xc070('0x44')]=_[_0xc070('0x56')](_0x5c4f5d['query']);_0x51376d[_0xc070('0x45')]=_[_0xc070('0x46')](_0x51376d[_0xc070('0x41')],_0x51376d[_0xc070('0x44')]);_0x3394ed[_0xc070('0x48')]=_['intersection'](_0x51376d[_0xc070('0x41')],qs[_0xc070('0x47')](_0x5c4f5d[_0xc070('0x44')][_0xc070('0x47')]));_0x3394ed[_0xc070('0x48')]=_0x3394ed[_0xc070('0x48')][_0xc070('0x49')]?_0x3394ed[_0xc070('0x48')]:_0x51376d[_0xc070('0x41')];if(_0x5c4f5d[_0xc070('0x44')]['includeAll']){_0x3394ed[_0xc070('0x53')]=[{'all':!![]}];}_0x3394ed=_[_0xc070('0x51')]({},_0x3394ed,_0x5c4f5d[_0xc070('0x57')]);return db[_0xc070('0x3c')]['find'](_0x3394ed)[_0xc070('0x38')](handleEntityNotFound(_0x1ca242,null))[_0xc070('0x38')](respondWithResult(_0x1ca242,null))[_0xc070('0x29')](handleError(_0x1ca242,null));};exports[_0xc070('0x37')]=function(_0x5787ed,_0x3e2350){if(_0x5787ed['body']['id']){delete _0x5787ed['body']['id'];}return db[_0xc070('0x3c')][_0xc070('0x58')]({'where':{'id':_0x5787ed['params']['id']}})[_0xc070('0x38')](handleEntityNotFound(_0x3e2350,null))[_0xc070('0x38')](saveUpdates(_0x5787ed[_0xc070('0x59')],null))[_0xc070('0x38')](respondWithResult(_0x3e2350,null))[_0xc070('0x29')](handleError(_0x3e2350,null));};exports[_0xc070('0x5a')]=function(_0x1bbab4,_0x4d6576,_0x598ce6){if(_0x1bbab4[_0xc070('0x5b')]&&_0x1bbab4[_0xc070('0x5b')]['filename']){_0x1bbab4[_0xc070('0x59')][_0xc070('0x5c')]=_0x1bbab4[_0xc070('0x5b')][_0xc070('0x5d')];}return db['Setting']['find']({'where':{'id':_0x1bbab4[_0xc070('0x55')]['id']}})[_0xc070('0x38')](handleEntityNotFound(_0x4d6576,null))['then'](saveUpdates(_0x1bbab4['body'],null))['then'](respondWithResult(_0x4d6576,null))[_0xc070('0x29')](handleError(_0x4d6576,null));};exports[_0xc070('0x5e')]=function(_0x3842bc,_0x419705,_0x8fde3b){if(_0x3842bc['file']&&_0x3842bc[_0xc070('0x5b')][_0xc070('0x5d')]){_0x3842bc[_0xc070('0x59')][_0xc070('0x5f')]=_0x3842bc[_0xc070('0x5b')][_0xc070('0x5d')];}return db['Setting'][_0xc070('0x58')]({'where':{'id':_0x3842bc['params']['id']}})[_0xc070('0x38')](handleEntityNotFound(_0x419705,null))[_0xc070('0x38')](saveUpdates(_0x3842bc[_0xc070('0x59')],null))[_0xc070('0x38')](respondWithResult(_0x419705,null))[_0xc070('0x29')](handleError(_0x419705,null));};var utilLicense=require(_0xc070('0x1a'));exports[_0xc070('0x60')]=function(_0x404eea,_0x3a5529,_0x1b9ec5){var _0x5c7559='server/files/images/logos';var _0x426389={'custom':![]};return utilLicense[_0xc070('0x61')]()['then'](function(_0x51a2bb){if(_0x51a2bb){_0x426389=_0x51a2bb;}return db[_0xc070('0x3c')][_0xc070('0x58')]({'where':{'id':_0x404eea['params']['id']},'attributes':[_0xc070('0x5c'),_0xc070('0x5f'),_0xc070('0x62'),_0xc070('0x63'),_0xc070('0x64'),'defaultLoginLogo',_0xc070('0x65'),'defaultFavicon'],'raw':!![]});})[_0xc070('0x38')](handleEntityNotFound(_0x3a5529,null))['then'](function(_0x4f825a){if(_0x4f825a){var _0x2ca84f=_0x4f825a['logo']&&fs['existsSync'](path[_0xc070('0x66')](config[_0xc070('0x67')],_0x5c7559,_[_0xc070('0x68')](_0x4f825a['logo'])))?path[_0xc070('0x66')](config['root'],_0x5c7559,_['toLower'](_0x4f825a[_0xc070('0x5c')])):path['join'](config[_0xc070('0x67')],_0x5c7559,_[_0xc070('0x68')](_0xc070('0x69')));var _0x5c2c36=_0xc070('0x6a')+_[_0xc070('0x6b')](_0xc070('0x5c'));if(_0x4f825a[_0x5c2c36]||!_0x426389[_0xc070('0x6c')]){_0x2ca84f=path[_0xc070('0x66')](config[_0xc070('0x67')],_0x5c7559,_['toLower'](_0xc070('0x69')));}if(!fs['existsSync'](_0x2ca84f)){throw new db['Sequelize'][(_0xc070('0x6d'))](_[_0xc070('0x6b')]('logo')+_0xc070('0x6e'));}return _0x3a5529[_0xc070('0x6f')](_0x2ca84f);}})['catch'](handleError(_0x3a5529,null));};var utilLicense=require(_0xc070('0x1a'));exports['getLogoLogin']=function(_0x392078,_0x20df32,_0x467328){var _0x5278dd=_0xc070('0x70');var _0x4794ac={'custom':![]};return utilLicense[_0xc070('0x61')]()[_0xc070('0x38')](function(_0x4a07d4){if(_0x4a07d4){_0x4794ac=_0x4a07d4;}return db[_0xc070('0x3c')][_0xc070('0x58')]({'where':{'id':_0x392078[_0xc070('0x55')]['id']},'attributes':[_0xc070('0x5c'),_0xc070('0x5f'),'preferred','favicon',_0xc070('0x64'),_0xc070('0x71'),_0xc070('0x65'),'defaultFavicon'],'raw':!![]});})['then'](handleEntityNotFound(_0x20df32,null))[_0xc070('0x38')](function(_0xf92b0b){if(_0xf92b0b){var _0x3a019a=_0xf92b0b[_0xc070('0x5f')]&&fs['existsSync'](path['join'](config[_0xc070('0x67')],_0x5278dd,_['toLower'](_0xf92b0b[_0xc070('0x5f')])))?path[_0xc070('0x66')](config['root'],_0x5278dd,_[_0xc070('0x68')](_0xf92b0b[_0xc070('0x5f')])):path[_0xc070('0x66')](config[_0xc070('0x67')],_0x5278dd,_[_0xc070('0x68')]('default_loginLogo.svg'));var _0x1eafc8=_0xc070('0x6a')+_[_0xc070('0x6b')]('loginLogo');if(_0xf92b0b[_0x1eafc8]||!_0x4794ac[_0xc070('0x6c')]){_0x3a019a=path[_0xc070('0x66')](config[_0xc070('0x67')],_0x5278dd,_[_0xc070('0x68')](_0xc070('0x72')));}if(!fs['existsSync'](_0x3a019a)){throw new db[(_0xc070('0x73'))][(_0xc070('0x6d'))](_[_0xc070('0x6b')](_0xc070('0x5f'))+_0xc070('0x6e'));}return _0x20df32[_0xc070('0x6f')](_0x3a019a);}})['catch'](handleError(_0x20df32,null));};exports[_0xc070('0x74')]=function(_0x979384,_0x2f623f){return db[_0xc070('0x3c')]['find']({'where':{'id':_0x979384[_0xc070('0x55')]['id']},'attributes':[_0xc070('0x75')]})[_0xc070('0x38')](respondWithResult(_0x2f623f,null))[_0xc070('0x29')](handleError(_0x2f623f,null));};exports['addPreferred']=function(_0x2db82d,_0x43ef44,_0x29ee5b){if(_0x2db82d[_0xc070('0x5b')]&&_0x2db82d[_0xc070('0x5b')][_0xc070('0x5d')]){_0x2db82d[_0xc070('0x59')][_0xc070('0x62')]=_0x2db82d[_0xc070('0x5b')]['filename'];}return db[_0xc070('0x3c')][_0xc070('0x58')]({'where':{'id':_0x2db82d['params']['id']}})['then'](handleEntityNotFound(_0x43ef44,null))[_0xc070('0x38')](saveUpdates(_0x2db82d[_0xc070('0x59')],null))['then'](respondWithResult(_0x43ef44,null))[_0xc070('0x29')](handleError(_0x43ef44,null));};var utilLicense=require(_0xc070('0x1a'));exports[_0xc070('0x76')]=function(_0x5cd3dd,_0x2b3bbe,_0x139059){var _0x32fd7f=_0xc070('0x70');var _0x310c1d={'custom':![]};return utilLicense[_0xc070('0x61')]()['then'](function(_0x20208c){if(_0x20208c){_0x310c1d=_0x20208c;}return db[_0xc070('0x3c')]['find']({'where':{'id':_0x5cd3dd[_0xc070('0x55')]['id']},'attributes':['logo',_0xc070('0x5f'),'preferred','favicon',_0xc070('0x64'),_0xc070('0x71'),'defaultPreferred',_0xc070('0x77')],'raw':!![]});})[_0xc070('0x38')](handleEntityNotFound(_0x2b3bbe,null))['then'](function(_0xc888ed){if(_0xc888ed){var _0xe83c63=_0xc888ed['preferred']&&fs['existsSync'](path['join'](config[_0xc070('0x67')],_0x32fd7f,_[_0xc070('0x68')](_0xc888ed[_0xc070('0x62')])))?path['join'](config[_0xc070('0x67')],_0x32fd7f,_[_0xc070('0x68')](_0xc888ed[_0xc070('0x62')])):path[_0xc070('0x66')](config[_0xc070('0x67')],_0x32fd7f,_[_0xc070('0x68')](_0xc070('0x78')));var _0x4df24d=_0xc070('0x6a')+_[_0xc070('0x6b')](_0xc070('0x62'));if(_0xc888ed[_0x4df24d]||!_0x310c1d['custom']||!_0x310c1d[_0xc070('0x62')]){_0xe83c63=path[_0xc070('0x66')](config['root'],_0x32fd7f,_[_0xc070('0x68')](_0xc070('0x78')));}if(!fs[_0xc070('0x79')](_0xe83c63)){throw new db['Sequelize'][(_0xc070('0x6d'))](_[_0xc070('0x6b')](_0xc070('0x62'))+_0xc070('0x6e'));}return _0x2b3bbe[_0xc070('0x6f')](_0xe83c63);}})['catch'](handleError(_0x2b3bbe,null));};exports[_0xc070('0x7a')]=function(_0xed5d,_0x5c6207,_0x24d22d){if(_0xed5d[_0xc070('0x5b')]&&_0xed5d[_0xc070('0x5b')]['filename']){_0xed5d[_0xc070('0x59')][_0xc070('0x63')]=_0xed5d[_0xc070('0x5b')][_0xc070('0x5d')];}return db[_0xc070('0x3c')][_0xc070('0x58')]({'where':{'id':_0xed5d[_0xc070('0x55')]['id']}})[_0xc070('0x38')](handleEntityNotFound(_0x5c6207,null))['then'](saveUpdates(_0xed5d['body'],null))[_0xc070('0x38')](respondWithResult(_0x5c6207,null))['catch'](handleError(_0x5c6207,null));};var utilLicense=require(_0xc070('0x1a'));exports[_0xc070('0x7b')]=function(_0x1ce665,_0x5a07ba,_0x3d38da){var _0x46e787=_0xc070('0x70');var _0x983d33={'custom':![]};return utilLicense[_0xc070('0x61')]()[_0xc070('0x38')](function(_0x2e0931){if(_0x2e0931){_0x983d33=_0x2e0931;}return db[_0xc070('0x3c')][_0xc070('0x58')]({'where':{'id':_0x1ce665[_0xc070('0x55')]['id']},'attributes':[_0xc070('0x5c'),_0xc070('0x5f'),_0xc070('0x62'),_0xc070('0x63'),_0xc070('0x64'),'defaultLoginLogo',_0xc070('0x65'),_0xc070('0x77')],'raw':!![]});})[_0xc070('0x38')](handleEntityNotFound(_0x5a07ba,null))['then'](function(_0x362314){if(_0x362314){var _0x260e25=_0x362314[_0xc070('0x63')]&&fs[_0xc070('0x79')](path['join'](config[_0xc070('0x67')],_0x46e787,_[_0xc070('0x68')](_0x362314[_0xc070('0x63')])))?path[_0xc070('0x66')](config[_0xc070('0x67')],_0x46e787,_[_0xc070('0x68')](_0x362314[_0xc070('0x63')])):path['join'](config[_0xc070('0x67')],_0x46e787,_[_0xc070('0x68')](_0xc070('0x7c')));var _0x4d96fb='default'+_['upperFirst'](_0xc070('0x63'));if(_0x362314[_0x4d96fb]||!_0x983d33[_0xc070('0x6c')]){_0x260e25=path[_0xc070('0x66')](config[_0xc070('0x67')],_0x46e787,_[_0xc070('0x68')](_0xc070('0x7c')));}if(!fs[_0xc070('0x79')](_0x260e25)){throw new db[(_0xc070('0x73'))][(_0xc070('0x6d'))](_[_0xc070('0x6b')](_0xc070('0x63'))+_0xc070('0x6e'));}return _0x5a07ba['download'](_0x260e25);}})['catch'](handleError(_0x5a07ba,null));};exports[_0xc070('0x7d')]=function(_0x20d56b,_0x574a82){var _0x269074={'offset':moment()[_0xc070('0x7e')]()};_0x269074[_0xc070('0x7f')]=moment()[_0xc070('0x7e')](_0x269074[_0xc070('0x30')])[_0xc070('0x80')](_0xc070('0x81'));return _0x574a82[_0xc070('0x2b')](0xc8)[_0xc070('0x3a')](_0x269074);};
\ No newline at end of file
+var _0xf541=['mustache','util','path','sox','to-csv','fs-extra','lodash','squel','desk.js','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','jayson/promise','client','http','then','info','Setting,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','sendStatus','status','end','json','limit','undefined','count','offset','set','Content-Range','apply','reject','save','stack','name','send','map','rawAttributes','fieldName','key','model','keys','query','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','type','VIRTUAL','options','include','Setting','findAll','rows','catch','show','params','includeAll','find','update','body','file','logo','addLogoLogin','filename','loginLogo','getLogo','server/files/images/logos','getLicense','preferred','favicon','defaultLogo','defaultLoginLogo','defaultPreferred','join','toLower','root','default_logo.svg','default','upperFirst','custom','existsSync','\x20not\x20found','download','../../config/license/util','getLogoLogin','defaultFavicon','default_loginLogo.svg','Sequelize','ValidationError','gdpr','securePassword','addPreferred','getPreferred','default_preferred.png','getFavicon','default_favicon.ico','getDate','utcOffset','format','YYYY-MM-DD\x20HH:mm:ss:SSS','zip-dir','request-promise','moment','bluebird'];(function(_0x2b276a,_0x34ac0c){var _0xf671c=function(_0x364461){while(--_0x364461){_0x2b276a['push'](_0x2b276a['shift']());}};_0xf671c(++_0x34ac0c);}(_0xf541,0x1f4));var _0x1f54=function(_0x3ef4f1,_0x5f0f9b){_0x3ef4f1=_0x3ef4f1-0x0;var _0x69953c=_0xf541[_0x3ef4f1];return _0x69953c;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x1f54('0x0'));var jsonpatch=require('fast-json-patch');var rp=require(_0x1f54('0x1'));var moment=require(_0x1f54('0x2'));var BPromise=require(_0x1f54('0x3'));var Mustache=require(_0x1f54('0x4'));var util=require(_0x1f54('0x5'));var path=require(_0x1f54('0x6'));var sox=require(_0x1f54('0x7'));var csv=require(_0x1f54('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x1f54('0x9'));var _=require(_0x1f54('0xa'));var squel=require(_0x1f54('0xb'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x1f54('0xc'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x1f54('0xd'));var authService=require(_0x1f54('0xe'));var qs=require(_0x1f54('0xf'));var as=require(_0x1f54('0x10'));var hardwareService=require(_0x1f54('0x11'));var logger=require(_0x1f54('0x12'))(_0x1f54('0x13'));var utils=require(_0x1f54('0x14'));var config=require(_0x1f54('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0x1f54('0x16'))['db'];var jayson=require(_0x1f54('0x17'));var client=jayson[_0x1f54('0x18')][_0x1f54('0x19')]({'port':0x232a});function respondWithRpcPromise(_0x34fc41,_0x42d306,_0x71945f,_0x52a5a4){return new BPromise(function(_0x919c89,_0xdd936e){var _0x3e018f=_0x52a5a4||client;return _0x3e018f['request'](_0x34fc41,_0x71945f)[_0x1f54('0x1a')](function(_0x387716){logger[_0x1f54('0x1b')](_0x1f54('0x1c'),_0x42d306,_0x1f54('0x1d'));logger[_0x1f54('0x1e')]('Setting,\x20%s,\x20%s,\x20%s',_0x42d306,_0x1f54('0x1d'),JSON[_0x1f54('0x1f')](_0x387716));if(_0x387716[_0x1f54('0x20')]){if(_0x387716[_0x1f54('0x20')][_0x1f54('0x21')]===0x1f4){logger[_0x1f54('0x20')](_0x1f54('0x1c'),_0x42d306,_0x387716[_0x1f54('0x20')]['message']);return _0xdd936e(_0x387716[_0x1f54('0x20')]['message']);}logger[_0x1f54('0x20')]('Setting,\x20%s,\x20%s',_0x42d306,_0x387716[_0x1f54('0x20')][_0x1f54('0x22')]);return _0x919c89(_0x387716[_0x1f54('0x20')][_0x1f54('0x22')]);}else{logger[_0x1f54('0x1b')]('Setting,\x20%s,\x20%s',_0x42d306,_0x1f54('0x1d'));_0x919c89(_0x387716[_0x1f54('0x23')][_0x1f54('0x22')]);}})['catch'](function(_0x28edf4){logger[_0x1f54('0x20')](_0x1f54('0x1c'),_0x42d306,_0x28edf4);_0xdd936e(_0x28edf4);});});}function respondWithStatusCode(_0x26622c,_0x2e57d1){_0x2e57d1=_0x2e57d1||0xcc;return function(_0x7bbf8a){if(_0x7bbf8a){return _0x26622c[_0x1f54('0x24')](_0x2e57d1);}return _0x26622c[_0x1f54('0x25')](_0x2e57d1)[_0x1f54('0x26')]();};}function respondWithResult(_0xbb4d4a,_0x457ee4){_0x457ee4=_0x457ee4||0xc8;return function(_0x5f0f7a){if(_0x5f0f7a){return _0xbb4d4a[_0x1f54('0x25')](_0x457ee4)[_0x1f54('0x27')](_0x5f0f7a);}};}function respondWithFilteredResult(_0x4bd66b,_0x2fff9c){return function(_0x2e5c9e){if(_0x2e5c9e){var _0x51bb7c=typeof _0x2fff9c['offset']==='undefined'&&typeof _0x2fff9c[_0x1f54('0x28')]===_0x1f54('0x29');var _0x1d6cec=_0x2e5c9e[_0x1f54('0x2a')];var _0x3cb236=_0x51bb7c?0x0:_0x2fff9c[_0x1f54('0x2b')];var _0x5e659f=_0x51bb7c?_0x2e5c9e[_0x1f54('0x2a')]:_0x2fff9c[_0x1f54('0x2b')]+_0x2fff9c[_0x1f54('0x28')];var _0x2e23ac;if(_0x5e659f>=_0x1d6cec){_0x5e659f=_0x1d6cec;_0x2e23ac=0xc8;}else{_0x2e23ac=0xce;}_0x4bd66b[_0x1f54('0x25')](_0x2e23ac);return _0x4bd66b[_0x1f54('0x2c')](_0x1f54('0x2d'),_0x3cb236+'-'+_0x5e659f+'/'+_0x1d6cec)[_0x1f54('0x27')](_0x2e5c9e);}return null;};}function patchUpdates(_0x59a530){return function(_0x49ac9a){try{jsonpatch[_0x1f54('0x2e')](_0x49ac9a,_0x59a530,!![]);}catch(_0x1f178a){return BPromise[_0x1f54('0x2f')](_0x1f178a);}return _0x49ac9a[_0x1f54('0x30')]();};}function saveUpdates(_0x513e63,_0x265268){return function(_0x5d8445){if(_0x5d8445){return _0x5d8445['update'](_0x513e63)['then'](function(_0x11ebca){return _0x11ebca;});}return null;};}function removeEntity(_0x4e6a5b,_0x2eacfb){return function(_0x2080b9){if(_0x2080b9){return _0x2080b9['destroy']()[_0x1f54('0x1a')](function(){_0x4e6a5b[_0x1f54('0x25')](0xcc)[_0x1f54('0x26')]();});}};}function handleEntityNotFound(_0x57969a,_0xfde893){return function(_0x3ff67f){if(!_0x3ff67f){_0x57969a['sendStatus'](0x194);}return _0x3ff67f;};}function handleError(_0x4918a9,_0x3ab040){_0x3ab040=_0x3ab040||0x1f4;return function(_0x45f808){logger['error'](_0x45f808[_0x1f54('0x31')]);if(_0x45f808[_0x1f54('0x32')]){delete _0x45f808[_0x1f54('0x32')];}_0x4918a9[_0x1f54('0x25')](_0x3ab040)[_0x1f54('0x33')](_0x45f808);};}exports['index']=function(_0x1201ac,_0x558d06){var _0x2e36b8={},_0x52aa40={},_0x39b923={'count':0x0,'rows':[]};var _0x444465=_[_0x1f54('0x34')](db['Setting'][_0x1f54('0x35')],function(_0x1beb37){return{'name':_0x1beb37[_0x1f54('0x36')],'type':_0x1beb37['type'][_0x1f54('0x37')]};});_0x52aa40[_0x1f54('0x38')]=_[_0x1f54('0x34')](_0x444465,_0x1f54('0x32'));_0x52aa40['query']=_[_0x1f54('0x39')](_0x1201ac[_0x1f54('0x3a')]);_0x52aa40[_0x1f54('0x3b')]=_['intersection'](_0x52aa40['model'],_0x52aa40['query']);_0x2e36b8[_0x1f54('0x3c')]=_[_0x1f54('0x3d')](_0x52aa40[_0x1f54('0x38')],qs['fields'](_0x1201ac[_0x1f54('0x3a')][_0x1f54('0x3e')]));_0x2e36b8[_0x1f54('0x3c')]=_0x2e36b8[_0x1f54('0x3c')][_0x1f54('0x3f')]?_0x2e36b8[_0x1f54('0x3c')]:_0x52aa40[_0x1f54('0x38')];if(!_0x1201ac[_0x1f54('0x3a')][_0x1f54('0x40')](_0x1f54('0x41'))){_0x2e36b8[_0x1f54('0x28')]=qs[_0x1f54('0x28')](_0x1201ac['query'][_0x1f54('0x28')]);_0x2e36b8[_0x1f54('0x2b')]=qs[_0x1f54('0x2b')](_0x1201ac[_0x1f54('0x3a')][_0x1f54('0x2b')]);}_0x2e36b8[_0x1f54('0x42')]=qs['sort'](_0x1201ac[_0x1f54('0x3a')][_0x1f54('0x43')]);_0x2e36b8[_0x1f54('0x44')]=qs[_0x1f54('0x3b')](_[_0x1f54('0x45')](_0x1201ac['query'],_0x52aa40[_0x1f54('0x3b')]),_0x444465);if(_0x1201ac['query'][_0x1f54('0x46')]){_0x2e36b8['where']=_[_0x1f54('0x47')](_0x2e36b8[_0x1f54('0x44')],{'$or':_['map'](_0x444465,function(_0x2acc4e){if(_0x2acc4e[_0x1f54('0x48')]!==_0x1f54('0x49')){var _0x1704d9={};_0x1704d9[_0x2acc4e['name']]={'$like':'%'+_0x1201ac[_0x1f54('0x3a')][_0x1f54('0x46')]+'%'};return _0x1704d9;}})});}_0x2e36b8=_[_0x1f54('0x47')]({},_0x2e36b8,_0x1201ac[_0x1f54('0x4a')]);var _0x844d2e={'where':_0x2e36b8[_0x1f54('0x44')]};return db['Setting'][_0x1f54('0x2a')](_0x844d2e)['then'](function(_0x13ee10){_0x39b923[_0x1f54('0x2a')]=_0x13ee10;if(_0x1201ac['query']['includeAll']){_0x2e36b8[_0x1f54('0x4b')]=[{'all':!![]}];}return db[_0x1f54('0x4c')][_0x1f54('0x4d')](_0x2e36b8);})[_0x1f54('0x1a')](function(_0x674055){_0x39b923[_0x1f54('0x4e')]=_0x674055;return _0x39b923;})[_0x1f54('0x1a')](respondWithFilteredResult(_0x558d06,_0x2e36b8))[_0x1f54('0x4f')](handleError(_0x558d06,null));};exports[_0x1f54('0x50')]=function(_0x4fa49d,_0xf6854f){var _0x1c3f44={'raw':![],'where':{'id':_0x4fa49d[_0x1f54('0x51')]['id']}},_0x476221={};_0x476221[_0x1f54('0x38')]=_[_0x1f54('0x39')](db[_0x1f54('0x4c')][_0x1f54('0x35')]);_0x476221[_0x1f54('0x3a')]=_[_0x1f54('0x39')](_0x4fa49d[_0x1f54('0x3a')]);_0x476221[_0x1f54('0x3b')]=_['intersection'](_0x476221[_0x1f54('0x38')],_0x476221[_0x1f54('0x3a')]);_0x1c3f44[_0x1f54('0x3c')]=_[_0x1f54('0x3d')](_0x476221[_0x1f54('0x38')],qs[_0x1f54('0x3e')](_0x4fa49d['query']['fields']));_0x1c3f44[_0x1f54('0x3c')]=_0x1c3f44[_0x1f54('0x3c')][_0x1f54('0x3f')]?_0x1c3f44[_0x1f54('0x3c')]:_0x476221['model'];if(_0x4fa49d['query'][_0x1f54('0x52')]){_0x1c3f44[_0x1f54('0x4b')]=[{'all':!![]}];}_0x1c3f44=_[_0x1f54('0x47')]({},_0x1c3f44,_0x4fa49d[_0x1f54('0x4a')]);return db[_0x1f54('0x4c')][_0x1f54('0x53')](_0x1c3f44)[_0x1f54('0x1a')](handleEntityNotFound(_0xf6854f,null))[_0x1f54('0x1a')](respondWithResult(_0xf6854f,null))['catch'](handleError(_0xf6854f,null));};exports[_0x1f54('0x54')]=function(_0x11b50b,_0x47384b){if(_0x11b50b['body']['id']){delete _0x11b50b[_0x1f54('0x55')]['id'];}return db['Setting'][_0x1f54('0x53')]({'where':{'id':_0x11b50b[_0x1f54('0x51')]['id']}})[_0x1f54('0x1a')](handleEntityNotFound(_0x47384b,null))[_0x1f54('0x1a')](saveUpdates(_0x11b50b[_0x1f54('0x55')],null))['then'](respondWithResult(_0x47384b,null))['catch'](handleError(_0x47384b,null));};exports['addLogo']=function(_0x193048,_0x10a5d5,_0x3aff62){if(_0x193048['file']&&_0x193048[_0x1f54('0x56')]['filename']){_0x193048[_0x1f54('0x55')][_0x1f54('0x57')]=_0x193048[_0x1f54('0x56')]['filename'];}return db[_0x1f54('0x4c')][_0x1f54('0x53')]({'where':{'id':_0x193048[_0x1f54('0x51')]['id']}})[_0x1f54('0x1a')](handleEntityNotFound(_0x10a5d5,null))[_0x1f54('0x1a')](saveUpdates(_0x193048[_0x1f54('0x55')],null))['then'](respondWithResult(_0x10a5d5,null))['catch'](handleError(_0x10a5d5,null));};exports[_0x1f54('0x58')]=function(_0x4882e9,_0x3a8c00,_0x33e666){if(_0x4882e9[_0x1f54('0x56')]&&_0x4882e9[_0x1f54('0x56')][_0x1f54('0x59')]){_0x4882e9[_0x1f54('0x55')][_0x1f54('0x5a')]=_0x4882e9['file'][_0x1f54('0x59')];}return db[_0x1f54('0x4c')]['find']({'where':{'id':_0x4882e9['params']['id']}})[_0x1f54('0x1a')](handleEntityNotFound(_0x3a8c00,null))[_0x1f54('0x1a')](saveUpdates(_0x4882e9['body'],null))[_0x1f54('0x1a')](respondWithResult(_0x3a8c00,null))[_0x1f54('0x4f')](handleError(_0x3a8c00,null));};var utilLicense=require('../../config/license/util');exports[_0x1f54('0x5b')]=function(_0x3870f9,_0x23ab3f,_0x3ee0e1){var _0x51adf4=_0x1f54('0x5c');var _0x1be1cf={'custom':![]};return utilLicense[_0x1f54('0x5d')]()['then'](function(_0x46881f){if(_0x46881f){_0x1be1cf=_0x46881f;}return db['Setting'][_0x1f54('0x53')]({'where':{'id':_0x3870f9[_0x1f54('0x51')]['id']},'attributes':['logo',_0x1f54('0x5a'),_0x1f54('0x5e'),_0x1f54('0x5f'),_0x1f54('0x60'),_0x1f54('0x61'),_0x1f54('0x62'),'defaultFavicon'],'raw':!![]});})[_0x1f54('0x1a')](handleEntityNotFound(_0x23ab3f,null))[_0x1f54('0x1a')](function(_0x51c1f0){if(_0x51c1f0){var _0x467973=_0x51c1f0[_0x1f54('0x57')]&&fs['existsSync'](path[_0x1f54('0x63')](config['root'],_0x51adf4,_[_0x1f54('0x64')](_0x51c1f0[_0x1f54('0x57')])))?path[_0x1f54('0x63')](config['root'],_0x51adf4,_[_0x1f54('0x64')](_0x51c1f0[_0x1f54('0x57')])):path[_0x1f54('0x63')](config[_0x1f54('0x65')],_0x51adf4,_['toLower'](_0x1f54('0x66')));var _0x3fbdda=_0x1f54('0x67')+_[_0x1f54('0x68')](_0x1f54('0x57'));if(_0x51c1f0[_0x3fbdda]||!_0x1be1cf[_0x1f54('0x69')]){_0x467973=path[_0x1f54('0x63')](config[_0x1f54('0x65')],_0x51adf4,_[_0x1f54('0x64')]('default_logo.svg'));}if(!fs[_0x1f54('0x6a')](_0x467973)){throw new db['Sequelize']['ValidationError'](_[_0x1f54('0x68')](_0x1f54('0x57'))+_0x1f54('0x6b'));}return _0x23ab3f[_0x1f54('0x6c')](_0x467973);}})['catch'](handleError(_0x23ab3f,null));};var utilLicense=require(_0x1f54('0x6d'));exports[_0x1f54('0x6e')]=function(_0x7973ea,_0x1ca66a,_0x3b5654){var _0x11bb50=_0x1f54('0x5c');var _0x4040f9={'custom':![]};return utilLicense['getLicense']()[_0x1f54('0x1a')](function(_0x53eec0){if(_0x53eec0){_0x4040f9=_0x53eec0;}return db[_0x1f54('0x4c')][_0x1f54('0x53')]({'where':{'id':_0x7973ea[_0x1f54('0x51')]['id']},'attributes':['logo',_0x1f54('0x5a'),_0x1f54('0x5e'),_0x1f54('0x5f'),_0x1f54('0x60'),_0x1f54('0x61'),_0x1f54('0x62'),_0x1f54('0x6f')],'raw':!![]});})['then'](handleEntityNotFound(_0x1ca66a,null))[_0x1f54('0x1a')](function(_0x24d3b3){if(_0x24d3b3){var _0x5f76ee=_0x24d3b3[_0x1f54('0x5a')]&&fs[_0x1f54('0x6a')](path[_0x1f54('0x63')](config[_0x1f54('0x65')],_0x11bb50,_[_0x1f54('0x64')](_0x24d3b3['loginLogo'])))?path[_0x1f54('0x63')](config[_0x1f54('0x65')],_0x11bb50,_[_0x1f54('0x64')](_0x24d3b3['loginLogo'])):path[_0x1f54('0x63')](config[_0x1f54('0x65')],_0x11bb50,_[_0x1f54('0x64')]('default_loginLogo.svg'));var _0x11b533=_0x1f54('0x67')+_[_0x1f54('0x68')](_0x1f54('0x5a'));if(_0x24d3b3[_0x11b533]||!_0x4040f9[_0x1f54('0x69')]){_0x5f76ee=path[_0x1f54('0x63')](config[_0x1f54('0x65')],_0x11bb50,_['toLower'](_0x1f54('0x70')));}if(!fs['existsSync'](_0x5f76ee)){throw new db[(_0x1f54('0x71'))][(_0x1f54('0x72'))](_[_0x1f54('0x68')](_0x1f54('0x5a'))+_0x1f54('0x6b'));}return _0x1ca66a['download'](_0x5f76ee);}})[_0x1f54('0x4f')](handleError(_0x1ca66a,null));};exports[_0x1f54('0x73')]=function(_0x373583,_0x2e5c1b){return db['Setting'][_0x1f54('0x53')]({'where':{'id':_0x373583['params']['id']},'attributes':[_0x1f54('0x74')]})[_0x1f54('0x1a')](respondWithResult(_0x2e5c1b,null))['catch'](handleError(_0x2e5c1b,null));};exports[_0x1f54('0x75')]=function(_0x29694a,_0x3df717,_0x3a1d9e){if(_0x29694a[_0x1f54('0x56')]&&_0x29694a[_0x1f54('0x56')]['filename']){_0x29694a[_0x1f54('0x55')][_0x1f54('0x5e')]=_0x29694a['file'][_0x1f54('0x59')];}return db[_0x1f54('0x4c')][_0x1f54('0x53')]({'where':{'id':_0x29694a[_0x1f54('0x51')]['id']}})['then'](handleEntityNotFound(_0x3df717,null))['then'](saveUpdates(_0x29694a[_0x1f54('0x55')],null))[_0x1f54('0x1a')](respondWithResult(_0x3df717,null))[_0x1f54('0x4f')](handleError(_0x3df717,null));};var utilLicense=require('../../config/license/util');exports[_0x1f54('0x76')]=function(_0x292c59,_0x224295,_0x33be97){var _0x439556=_0x1f54('0x5c');var _0x1f349b={'custom':![]};return utilLicense[_0x1f54('0x5d')]()[_0x1f54('0x1a')](function(_0x5da663){if(_0x5da663){_0x1f349b=_0x5da663;}return db['Setting'][_0x1f54('0x53')]({'where':{'id':_0x292c59[_0x1f54('0x51')]['id']},'attributes':[_0x1f54('0x57'),_0x1f54('0x5a'),_0x1f54('0x5e'),'favicon',_0x1f54('0x60'),_0x1f54('0x61'),_0x1f54('0x62'),'defaultFavicon'],'raw':!![]});})[_0x1f54('0x1a')](handleEntityNotFound(_0x224295,null))[_0x1f54('0x1a')](function(_0xdfc3b5){if(_0xdfc3b5){var _0x4cdd94=_0xdfc3b5[_0x1f54('0x5e')]&&fs[_0x1f54('0x6a')](path[_0x1f54('0x63')](config[_0x1f54('0x65')],_0x439556,_[_0x1f54('0x64')](_0xdfc3b5[_0x1f54('0x5e')])))?path[_0x1f54('0x63')](config['root'],_0x439556,_[_0x1f54('0x64')](_0xdfc3b5[_0x1f54('0x5e')])):path[_0x1f54('0x63')](config['root'],_0x439556,_[_0x1f54('0x64')](_0x1f54('0x77')));var _0xac16b3='default'+_[_0x1f54('0x68')]('preferred');if(_0xdfc3b5[_0xac16b3]||!_0x1f349b[_0x1f54('0x69')]||!_0x1f349b[_0x1f54('0x5e')]){_0x4cdd94=path[_0x1f54('0x63')](config[_0x1f54('0x65')],_0x439556,_[_0x1f54('0x64')](_0x1f54('0x77')));}if(!fs[_0x1f54('0x6a')](_0x4cdd94)){throw new db[(_0x1f54('0x71'))][(_0x1f54('0x72'))](_['upperFirst'](_0x1f54('0x5e'))+'\x20not\x20found');}return _0x224295[_0x1f54('0x6c')](_0x4cdd94);}})['catch'](handleError(_0x224295,null));};exports['addFavicon']=function(_0x1f9e5f,_0x5f0819,_0x4eac75){if(_0x1f9e5f[_0x1f54('0x56')]&&_0x1f9e5f[_0x1f54('0x56')]['filename']){_0x1f9e5f['body']['favicon']=_0x1f9e5f[_0x1f54('0x56')][_0x1f54('0x59')];}return db[_0x1f54('0x4c')][_0x1f54('0x53')]({'where':{'id':_0x1f9e5f[_0x1f54('0x51')]['id']}})[_0x1f54('0x1a')](handleEntityNotFound(_0x5f0819,null))[_0x1f54('0x1a')](saveUpdates(_0x1f9e5f[_0x1f54('0x55')],null))[_0x1f54('0x1a')](respondWithResult(_0x5f0819,null))['catch'](handleError(_0x5f0819,null));};var utilLicense=require('../../config/license/util');exports[_0x1f54('0x78')]=function(_0x208e59,_0x188281,_0x3e196c){var _0x50f1c5=_0x1f54('0x5c');var _0x442f94={'custom':![]};return utilLicense['getLicense']()[_0x1f54('0x1a')](function(_0x9225e){if(_0x9225e){_0x442f94=_0x9225e;}return db[_0x1f54('0x4c')]['find']({'where':{'id':_0x208e59[_0x1f54('0x51')]['id']},'attributes':[_0x1f54('0x57'),_0x1f54('0x5a'),_0x1f54('0x5e'),_0x1f54('0x5f'),_0x1f54('0x60'),_0x1f54('0x61'),_0x1f54('0x62'),_0x1f54('0x6f')],'raw':!![]});})['then'](handleEntityNotFound(_0x188281,null))[_0x1f54('0x1a')](function(_0x3f9aa3){if(_0x3f9aa3){var _0xcefb14=_0x3f9aa3['favicon']&&fs['existsSync'](path['join'](config['root'],_0x50f1c5,_[_0x1f54('0x64')](_0x3f9aa3['favicon'])))?path[_0x1f54('0x63')](config[_0x1f54('0x65')],_0x50f1c5,_[_0x1f54('0x64')](_0x3f9aa3['favicon'])):path['join'](config['root'],_0x50f1c5,_[_0x1f54('0x64')](_0x1f54('0x79')));var _0x508d53=_0x1f54('0x67')+_[_0x1f54('0x68')](_0x1f54('0x5f'));if(_0x3f9aa3[_0x508d53]||!_0x442f94[_0x1f54('0x69')]){_0xcefb14=path[_0x1f54('0x63')](config[_0x1f54('0x65')],_0x50f1c5,_[_0x1f54('0x64')](_0x1f54('0x79')));}if(!fs[_0x1f54('0x6a')](_0xcefb14)){throw new db[(_0x1f54('0x71'))]['ValidationError'](_[_0x1f54('0x68')](_0x1f54('0x5f'))+_0x1f54('0x6b'));}return _0x188281[_0x1f54('0x6c')](_0xcefb14);}})['catch'](handleError(_0x188281,null));};exports[_0x1f54('0x7a')]=function(_0x1c7bf3,_0x482aac){var _0x1e26e8={'offset':moment()[_0x1f54('0x7b')]()};_0x1e26e8['now']=moment()[_0x1f54('0x7b')](_0x1e26e8[_0x1f54('0x2b')])[_0x1f54('0x7c')](_0x1f54('0x7d'));return _0x482aac[_0x1f54('0x25')](0xc8)[_0x1f54('0x33')](_0x1e26e8);};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x55ca=['./setting.attributes','exports','define','settings','lodash','util','bluebird','request-promise','rimraf','../../config/environment'];(function(_0x590851,_0x496bee){var _0x3b0115=function(_0x5140cc){while(--_0x5140cc){_0x590851['push'](_0x590851['shift']());}};_0x3b0115(++_0x496bee);}(_0x55ca,0x126));var _0xa55c=function(_0x591053,_0x523072){_0x591053=_0x591053-0x0;var _0x31ab80=_0x55ca[_0x591053];return _0x31ab80;};'use strict';var _=require(_0xa55c('0x0'));var util=require(_0xa55c('0x1'));var logger=require('../../config/logger')('api');var moment=require('moment');var BPromise=require(_0xa55c('0x2'));var rp=require(_0xa55c('0x3'));var fs=require('fs');var path=require('path');var rimraf=require(_0xa55c('0x4'));var config=require(_0xa55c('0x5'));var attributes=require(_0xa55c('0x6'));module[_0xa55c('0x7')]=function(_0x3c97c8,_0x279caa){return _0x3c97c8[_0xa55c('0x8')]('Setting',attributes,{'tableName':_0xa55c('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xe14b=['bluebird','path','./setting.attributes','exports','define','Setting','settings','lodash','util','moment'];(function(_0x83a478,_0x40b595){var _0xa1f089=function(_0x7fc7c6){while(--_0x7fc7c6){_0x83a478['push'](_0x83a478['shift']());}};_0xa1f089(++_0x40b595);}(_0xe14b,0x93));var _0xbe14=function(_0x5c8339,_0x420845){_0x5c8339=_0x5c8339-0x0;var _0x2c57dc=_0xe14b[_0x5c8339];return _0x2c57dc;};'use strict';var _=require(_0xbe14('0x0'));var util=require(_0xbe14('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0xbe14('0x2'));var BPromise=require(_0xbe14('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xbe14('0x4'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0xbe14('0x5'));module[_0xbe14('0x6')]=function(_0x1fe204,_0x1ff100){return _0x1fe204[_0xbe14('0x7')](_0xbe14('0x8'),attributes,{'tableName':_0xbe14('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4d6e=['model','map','info','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','request','then','Setting,\x20%s,\x20%s','debug','Setting,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','ShowSetting','Setting','options','where','attributes','include'];(function(_0x1d70bc,_0xe32555){var _0x17e8c4=function(_0x2668a0){while(--_0x2668a0){_0x1d70bc['push'](_0x1d70bc['shift']());}};_0x17e8c4(++_0xe32555);}(_0x4d6e,0x1bd));var _0xe4d6=function(_0xe38764,_0x28ce79){_0xe38764=_0xe38764-0x0;var _0x5979cf=_0x4d6e[_0xe38764];return _0x5979cf;};'use strict';var _=require(_0xe4d6('0x0'));var util=require(_0xe4d6('0x1'));var moment=require(_0xe4d6('0x2'));var BPromise=require(_0xe4d6('0x3'));var rs=require(_0xe4d6('0x4'));var fs=require('fs');var Redis=require(_0xe4d6('0x5'));var db=require(_0xe4d6('0x6'))['db'];var utils=require(_0xe4d6('0x7'));var logger=require(_0xe4d6('0x8'))(_0xe4d6('0x9'));var config=require('../../config/environment');var jayson=require(_0xe4d6('0xa'));var client=jayson[_0xe4d6('0xb')][_0xe4d6('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x49db67,_0x1364ef,_0xf20e5b){return new BPromise(function(_0x20f20f,_0x2c9d0c){return client[_0xe4d6('0xd')](_0x49db67,_0xf20e5b)[_0xe4d6('0xe')](function(_0x52f3c6){logger['info'](_0xe4d6('0xf'),_0x1364ef,'request\x20sent');logger[_0xe4d6('0x10')](_0xe4d6('0x11'),_0x1364ef,_0xe4d6('0x12'),JSON[_0xe4d6('0x13')](_0x52f3c6));if(_0x52f3c6[_0xe4d6('0x14')]){if(_0x52f3c6[_0xe4d6('0x14')][_0xe4d6('0x15')]===0x1f4){logger['error'](_0xe4d6('0xf'),_0x1364ef,_0x52f3c6['error'][_0xe4d6('0x16')]);return _0x2c9d0c(_0x52f3c6[_0xe4d6('0x14')][_0xe4d6('0x16')]);}logger[_0xe4d6('0x14')](_0xe4d6('0xf'),_0x1364ef,_0x52f3c6[_0xe4d6('0x14')]['message']);return _0x20f20f(_0x52f3c6['error']['message']);}else{logger['info'](_0xe4d6('0xf'),_0x1364ef,_0xe4d6('0x12'));_0x20f20f(_0x52f3c6[_0xe4d6('0x17')]['message']);}})[_0xe4d6('0x18')](function(_0x21daa0){logger[_0xe4d6('0x14')](_0xe4d6('0xf'),_0x1364ef,_0x21daa0);_0x2c9d0c(_0x21daa0);});});}exports[_0xe4d6('0x19')]=function(_0x16b58d){var _0x3fe4f4=this;return new Promise(function(_0x2c7b65,_0x2059b7){return db[_0xe4d6('0x1a')]['find']({'raw':_0x16b58d['options']?_0x16b58d[_0xe4d6('0x1b')]['raw']===undefined?!![]:![]:!![],'where':_0x16b58d[_0xe4d6('0x1b')]?_0x16b58d[_0xe4d6('0x1b')][_0xe4d6('0x1c')]||null:null,'attributes':_0x16b58d[_0xe4d6('0x1b')]?_0x16b58d['options'][_0xe4d6('0x1d')]||null:null,'include':_0x16b58d[_0xe4d6('0x1b')]?_0x16b58d[_0xe4d6('0x1b')][_0xe4d6('0x1e')]?_['map'](_0x16b58d[_0xe4d6('0x1b')][_0xe4d6('0x1e')],function(_0x2218af){return{'model':db[_0x2218af[_0xe4d6('0x1f')]],'as':_0x2218af['as'],'attributes':_0x2218af[_0xe4d6('0x1d')],'include':_0x2218af['include']?_[_0xe4d6('0x20')](_0x2218af['include'],function(_0xf8fd01){return{'model':db[_0xf8fd01['model']],'as':_0xf8fd01['as'],'attributes':_0xf8fd01[_0xe4d6('0x1d')],'include':_0xf8fd01[_0xe4d6('0x1e')]?_[_0xe4d6('0x20')](_0xf8fd01[_0xe4d6('0x1e')],function(_0x52fb34){return{'model':db[_0x52fb34['model']],'as':_0x52fb34['as'],'attributes':_0x52fb34['attributes']};}):[]};}):[]};}):[]:[]})[_0xe4d6('0xe')](function(_0x153ec0){logger[_0xe4d6('0x21')](_0xe4d6('0x19'),_0x16b58d);logger[_0xe4d6('0x10')](_0xe4d6('0x19'),_0x16b58d,JSON[_0xe4d6('0x13')](_0x153ec0));_0x2c7b65(_0x153ec0);})['catch'](function(_0x4e1809){logger[_0xe4d6('0x14')]('ShowSetting',_0x4e1809[_0xe4d6('0x16')],_0x16b58d);_0x2059b7(_0x3fe4f4[_0xe4d6('0x14')](0x1f4,_0x4e1809['message']));});});};
\ No newline at end of file
+var _0x0249=['Setting,\x20%s,\x20%s','request\x20sent','debug','Setting,\x20%s,\x20%s,\x20%s','stringify','error','code','message','ShowSetting','Setting','find','options','raw','where','attributes','include','model','map','catch','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info'];(function(_0x47de33,_0x2f79b2){var _0xdbaf7d=function(_0x1c49a9){while(--_0x1c49a9){_0x47de33['push'](_0x47de33['shift']());}};_0xdbaf7d(++_0x2f79b2);}(_0x0249,0x194));var _0x9024=function(_0x54192f,_0xaf9bf7){_0x54192f=_0x54192f-0x0;var _0x9e9545=_0x0249[_0x54192f];return _0x9e9545;};'use strict';var _=require(_0x9024('0x0'));var util=require(_0x9024('0x1'));var moment=require(_0x9024('0x2'));var BPromise=require(_0x9024('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x9024('0x4'));var db=require(_0x9024('0x5'))['db'];var utils=require(_0x9024('0x6'));var logger=require(_0x9024('0x7'))(_0x9024('0x8'));var config=require(_0x9024('0x9'));var jayson=require(_0x9024('0xa'));var client=jayson[_0x9024('0xb')][_0x9024('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x294363,_0x16e5b1,_0x5d9ed5){return new BPromise(function(_0x337c32,_0x4bfbe1){return client[_0x9024('0xd')](_0x294363,_0x5d9ed5)[_0x9024('0xe')](function(_0xf0c2cd){logger[_0x9024('0xf')](_0x9024('0x10'),_0x16e5b1,_0x9024('0x11'));logger[_0x9024('0x12')](_0x9024('0x13'),_0x16e5b1,_0x9024('0x11'),JSON[_0x9024('0x14')](_0xf0c2cd));if(_0xf0c2cd[_0x9024('0x15')]){if(_0xf0c2cd['error'][_0x9024('0x16')]===0x1f4){logger[_0x9024('0x15')](_0x9024('0x10'),_0x16e5b1,_0xf0c2cd[_0x9024('0x15')][_0x9024('0x17')]);return _0x4bfbe1(_0xf0c2cd[_0x9024('0x15')][_0x9024('0x17')]);}logger[_0x9024('0x15')](_0x9024('0x10'),_0x16e5b1,_0xf0c2cd[_0x9024('0x15')][_0x9024('0x17')]);return _0x337c32(_0xf0c2cd[_0x9024('0x15')][_0x9024('0x17')]);}else{logger[_0x9024('0xf')](_0x9024('0x10'),_0x16e5b1,_0x9024('0x11'));_0x337c32(_0xf0c2cd['result'][_0x9024('0x17')]);}})['catch'](function(_0x3e847b){logger['error'](_0x9024('0x10'),_0x16e5b1,_0x3e847b);_0x4bfbe1(_0x3e847b);});});}exports[_0x9024('0x18')]=function(_0x505f02){var _0x328ff2=this;return new Promise(function(_0x39a696,_0x4e4849){return db[_0x9024('0x19')][_0x9024('0x1a')]({'raw':_0x505f02[_0x9024('0x1b')]?_0x505f02[_0x9024('0x1b')][_0x9024('0x1c')]===undefined?!![]:![]:!![],'where':_0x505f02[_0x9024('0x1b')]?_0x505f02['options'][_0x9024('0x1d')]||null:null,'attributes':_0x505f02[_0x9024('0x1b')]?_0x505f02[_0x9024('0x1b')][_0x9024('0x1e')]||null:null,'include':_0x505f02['options']?_0x505f02[_0x9024('0x1b')][_0x9024('0x1f')]?_['map'](_0x505f02[_0x9024('0x1b')][_0x9024('0x1f')],function(_0x49467f){return{'model':db[_0x49467f[_0x9024('0x20')]],'as':_0x49467f['as'],'attributes':_0x49467f[_0x9024('0x1e')],'include':_0x49467f[_0x9024('0x1f')]?_[_0x9024('0x21')](_0x49467f['include'],function(_0x223d33){return{'model':db[_0x223d33[_0x9024('0x20')]],'as':_0x223d33['as'],'attributes':_0x223d33['attributes'],'include':_0x223d33[_0x9024('0x1f')]?_[_0x9024('0x21')](_0x223d33[_0x9024('0x1f')],function(_0x1fa1b6){return{'model':db[_0x1fa1b6[_0x9024('0x20')]],'as':_0x1fa1b6['as'],'attributes':_0x1fa1b6[_0x9024('0x1e')]};}):[]};}):[]};}):[]:[]})[_0x9024('0xe')](function(_0x1ae23c){logger[_0x9024('0xf')](_0x9024('0x18'),_0x505f02);logger[_0x9024('0x12')](_0x9024('0x18'),_0x505f02,JSON[_0x9024('0x14')](_0x1ae23c));_0x39a696(_0x1ae23c);})[_0x9024('0x22')](function(_0x5f27df){logger[_0x9024('0x15')](_0x9024('0x18'),_0x5f27df['message'],_0x505f02);_0x4e4849(_0x328ff2[_0x9024('0x15')](0x1f4,_0x5f27df[_0x9024('0x17')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc4aa=['statusGet','/:id/users','getAgents','post','addDisposition','addAnswer','notify','addApplications','/:id/send','send','status','put','update','destroy','delete','removeDispositions','removeAnswers','removeAgents','exports','multer','util','path','connect-timeout','express','Router','../../config/environment','./smsAccount.controller','get','isAuthenticated','index','/describe','/:id','show','/:id/dispositions','getDispositions','/:id/canned_answers','getAnswers','/:id/applications','getApplications','/:id/interactions','getInteractions','/:id/status'];(function(_0x486d3d,_0x39c2fb){var _0x39ee60=function(_0x147eee){while(--_0x147eee){_0x486d3d['push'](_0x486d3d['shift']());}};_0x39ee60(++_0x39c2fb);}(_0xc4aa,0x1b7));var _0xac4a=function(_0x2064e5,_0x4f6fa2){_0x2064e5=_0x2064e5-0x0;var _0x21a233=_0xc4aa[_0x2064e5];return _0x21a233;};'use strict';var multer=require(_0xac4a('0x0'));var util=require(_0xac4a('0x1'));var path=require(_0xac4a('0x2'));var timeout=require(_0xac4a('0x3'));var express=require(_0xac4a('0x4'));var router=express[_0xac4a('0x5')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0xac4a('0x6'));var controller=require(_0xac4a('0x7'));router[_0xac4a('0x8')]('/',auth[_0xac4a('0x9')](),controller[_0xac4a('0xa')]);router[_0xac4a('0x8')](_0xac4a('0xb'),auth[_0xac4a('0x9')](),controller['describe']);router['get'](_0xac4a('0xc'),auth[_0xac4a('0x9')](),controller[_0xac4a('0xd')]);router['get'](_0xac4a('0xe'),auth[_0xac4a('0x9')](),controller[_0xac4a('0xf')]);router['get'](_0xac4a('0x10'),auth['isAuthenticated'](),controller[_0xac4a('0x11')]);router['get'](_0xac4a('0x12'),auth[_0xac4a('0x9')](),controller[_0xac4a('0x13')]);router['get'](_0xac4a('0x14'),auth[_0xac4a('0x9')](),controller[_0xac4a('0x15')]);router[_0xac4a('0x8')](_0xac4a('0x16'),controller[_0xac4a('0x17')]);router[_0xac4a('0x8')](_0xac4a('0x18'),auth[_0xac4a('0x9')](),controller[_0xac4a('0x19')]);router[_0xac4a('0x1a')]('/',auth[_0xac4a('0x9')](),controller['create']);router[_0xac4a('0x1a')](_0xac4a('0xe'),auth[_0xac4a('0x9')](),controller[_0xac4a('0x1b')]);router[_0xac4a('0x1a')](_0xac4a('0x10'),auth[_0xac4a('0x9')](),controller[_0xac4a('0x1c')]);router['post']('/:id/notify',controller[_0xac4a('0x1d')]);router[_0xac4a('0x1a')](_0xac4a('0x12'),auth['isAuthenticated'](),controller[_0xac4a('0x1e')]);router[_0xac4a('0x1a')](_0xac4a('0x1f'),auth[_0xac4a('0x9')](),controller[_0xac4a('0x20')]);router[_0xac4a('0x1a')](_0xac4a('0x16'),controller[_0xac4a('0x21')]);router['post'](_0xac4a('0x18'),auth[_0xac4a('0x9')](),controller['addAgents']);router[_0xac4a('0x22')](_0xac4a('0xc'),auth[_0xac4a('0x9')](),controller[_0xac4a('0x23')]);router['delete'](_0xac4a('0xc'),auth[_0xac4a('0x9')](),controller[_0xac4a('0x24')]);router[_0xac4a('0x25')](_0xac4a('0xe'),auth[_0xac4a('0x9')](),controller[_0xac4a('0x26')]);router[_0xac4a('0x25')](_0xac4a('0x10'),auth[_0xac4a('0x9')](),controller[_0xac4a('0x27')]);router[_0xac4a('0x25')](_0xac4a('0x18'),auth[_0xac4a('0x9')](),controller[_0xac4a('0x28')]);module[_0xac4a('0x29')]=router;
\ No newline at end of file
+var _0x7fbe=['Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./smsAccount.controller','get','isAuthenticated','index','/describe','describe','/:id','/:id/dispositions','getDispositions','/:id/canned_answers','getAnswers','/:id/applications','getApplications','/:id/interactions','getInteractions','/:id/status','statusGet','/:id/users','post','create','/:id/notify','notify','put','delete','removeAnswers','path','connect-timeout','express'];(function(_0x5b8ee5,_0x2cfb07){var _0x26ce3d=function(_0x455693){while(--_0x455693){_0x5b8ee5['push'](_0x5b8ee5['shift']());}};_0x26ce3d(++_0x2cfb07);}(_0x7fbe,0x1ec));var _0xe7fb=function(_0x56899b,_0x80fce){_0x56899b=_0x56899b-0x0;var _0x47d591=_0x7fbe[_0x56899b];return _0x47d591;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0xe7fb('0x0'));var timeout=require(_0xe7fb('0x1'));var express=require(_0xe7fb('0x2'));var router=express[_0xe7fb('0x3')]();var fs_extra=require(_0xe7fb('0x4'));var auth=require(_0xe7fb('0x5'));var interaction=require(_0xe7fb('0x6'));var config=require(_0xe7fb('0x7'));var controller=require(_0xe7fb('0x8'));router[_0xe7fb('0x9')]('/',auth[_0xe7fb('0xa')](),controller[_0xe7fb('0xb')]);router[_0xe7fb('0x9')](_0xe7fb('0xc'),auth['isAuthenticated'](),controller[_0xe7fb('0xd')]);router[_0xe7fb('0x9')](_0xe7fb('0xe'),auth[_0xe7fb('0xa')](),controller['show']);router['get'](_0xe7fb('0xf'),auth[_0xe7fb('0xa')](),controller[_0xe7fb('0x10')]);router[_0xe7fb('0x9')](_0xe7fb('0x11'),auth[_0xe7fb('0xa')](),controller[_0xe7fb('0x12')]);router[_0xe7fb('0x9')](_0xe7fb('0x13'),auth[_0xe7fb('0xa')](),controller[_0xe7fb('0x14')]);router[_0xe7fb('0x9')](_0xe7fb('0x15'),auth[_0xe7fb('0xa')](),controller[_0xe7fb('0x16')]);router['get'](_0xe7fb('0x17'),controller[_0xe7fb('0x18')]);router['get'](_0xe7fb('0x19'),auth[_0xe7fb('0xa')](),controller['getAgents']);router[_0xe7fb('0x1a')]('/',auth['isAuthenticated'](),controller[_0xe7fb('0x1b')]);router[_0xe7fb('0x1a')](_0xe7fb('0xf'),auth[_0xe7fb('0xa')](),controller['addDisposition']);router[_0xe7fb('0x1a')]('/:id/canned_answers',auth[_0xe7fb('0xa')](),controller['addAnswer']);router[_0xe7fb('0x1a')](_0xe7fb('0x1c'),controller[_0xe7fb('0x1d')]);router[_0xe7fb('0x1a')]('/:id/applications',auth[_0xe7fb('0xa')](),controller['addApplications']);router[_0xe7fb('0x1a')]('/:id/send',auth[_0xe7fb('0xa')](),controller['send']);router[_0xe7fb('0x1a')](_0xe7fb('0x17'),controller['status']);router[_0xe7fb('0x1a')](_0xe7fb('0x19'),auth[_0xe7fb('0xa')](),controller['addAgents']);router[_0xe7fb('0x1e')](_0xe7fb('0xe'),auth['isAuthenticated'](),controller['update']);router['delete'](_0xe7fb('0xe'),auth['isAuthenticated'](),controller['destroy']);router[_0xe7fb('0x1f')](_0xe7fb('0xf'),auth[_0xe7fb('0xa')](),controller['removeDispositions']);router[_0xe7fb('0x1f')](_0xe7fb('0x11'),auth[_0xe7fb('0xa')](),controller[_0xe7fb('0x20')]);router[_0xe7fb('0x1f')](_0xe7fb('0x19'),auth[_0xe7fb('0xa')](),controller['removeAgents']);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x35ad=['bandwidth','csc','infobip','intelepeer','BOOLEAN','TEXT','Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}','INTEGER','Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','setDataValue','mandatoryDispositionPauseId','mandatoryDisposition','randomstring','STRING','name','generate','ENUM','twilio','skebby','clicksend','plivo'];(function(_0x152aa1,_0x307718){var _0x1bc01a=function(_0xd3211e){while(--_0xd3211e){_0x152aa1['push'](_0x152aa1['shift']());}};_0x1bc01a(++_0x307718);}(_0x35ad,0x199));var _0xd35a=function(_0x4a9fb1,_0x273043){_0x4a9fb1=_0x4a9fb1-0x0;var _0x348672=_0x35ad[_0x4a9fb1];return _0x348672;};'use strict';var Sequelize=require('sequelize');var rs=require(_0xd35a('0x0'));module['exports']={'name':{'type':Sequelize[_0xd35a('0x1')],'unique':_0xd35a('0x2'),'allowNull':![]},'key':{'type':Sequelize[_0xd35a('0x1')],'allowNull':![]},'remote':{'type':Sequelize['STRING'],'allowNull':![]},'token':{'type':Sequelize[_0xd35a('0x1')],'defaultValue':function(){return rs[_0xd35a('0x3')]();}},'phone':{'type':Sequelize[_0xd35a('0x1')]},'type':{'type':Sequelize[_0xd35a('0x4')](_0xd35a('0x5'),_0xd35a('0x6'),'connectel',_0xd35a('0x7'),_0xd35a('0x8'),'clickatell',_0xd35a('0x9'),_0xd35a('0xa'),_0xd35a('0xb'),_0xd35a('0xc'))},'accountSid':{'type':Sequelize[_0xd35a('0x1')]},'authId':{'type':Sequelize[_0xd35a('0x1')]},'authToken':{'type':Sequelize[_0xd35a('0x1')]},'smsMethod':{'type':Sequelize[_0xd35a('0x4')]('SI','TI','GP')},'username':{'type':Sequelize[_0xd35a('0x1')]},'password':{'type':Sequelize[_0xd35a('0x1')]},'apiKey':{'type':Sequelize[_0xd35a('0x1')]},'applicationId':{'type':Sequelize[_0xd35a('0x1')]},'accountId':{'type':Sequelize[_0xd35a('0x1')]},'senderString':{'type':Sequelize[_0xd35a('0x1')]},'deliveryReport':{'type':Sequelize[_0xd35a('0xd')],'defaultValue':![]},'description':{'type':Sequelize['STRING']},'notificationTemplate':{'type':Sequelize[_0xd35a('0xe')],'defaultValue':function(){return _0xd35a('0xf');}},'notificationSound':{'type':Sequelize[_0xd35a('0xd')],'defaultValue':!![]},'notificationShake':{'type':Sequelize[_0xd35a('0xd')],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize[_0xd35a('0x10')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'queueTransfer':{'type':Sequelize[_0xd35a('0xd')],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize[_0xd35a('0x10')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0xd35a('0xd')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'baseUrl':{'type':Sequelize['STRING']},'mandatoryDispositionPauseId':{'type':Sequelize[_0xd35a('0x10')],'comment':_0xd35a('0x11')},'mandatoryDisposition':{'type':Sequelize['BOOLEAN'],'defaultValue':![],'comment':_0xd35a('0x12'),'set':function(_0xf7058f){if(!_0xf7058f)this[_0xd35a('0x13')](_0xd35a('0x14'),null);this['setDataValue'](_0xd35a('0x15'),_0xf7058f);}}};
\ No newline at end of file
+var _0xa366=['STRING','generate','ENUM','twilio','skebby','clicksend','clickatell','bandwidth','csc','infobip','BOOLEAN','Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}','INTEGER','Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','setDataValue','mandatoryDispositionPauseId','mandatoryDisposition','sequelize','randomstring'];(function(_0x12db0a,_0x84eb9d){var _0x209f5f=function(_0x49df2c){while(--_0x49df2c){_0x12db0a['push'](_0x12db0a['shift']());}};_0x209f5f(++_0x84eb9d);}(_0xa366,0x152));var _0x6a36=function(_0x50c255,_0x179ae4){_0x50c255=_0x50c255-0x0;var _0x532027=_0xa366[_0x50c255];return _0x532027;};'use strict';var Sequelize=require(_0x6a36('0x0'));var rs=require(_0x6a36('0x1'));module['exports']={'name':{'type':Sequelize[_0x6a36('0x2')],'unique':'name','allowNull':![]},'key':{'type':Sequelize[_0x6a36('0x2')],'allowNull':![]},'remote':{'type':Sequelize['STRING'],'allowNull':![]},'token':{'type':Sequelize[_0x6a36('0x2')],'defaultValue':function(){return rs[_0x6a36('0x3')]();}},'phone':{'type':Sequelize[_0x6a36('0x2')]},'type':{'type':Sequelize[_0x6a36('0x4')](_0x6a36('0x5'),_0x6a36('0x6'),'connectel',_0x6a36('0x7'),'plivo',_0x6a36('0x8'),_0x6a36('0x9'),_0x6a36('0xa'),_0x6a36('0xb'),'intelepeer')},'accountSid':{'type':Sequelize[_0x6a36('0x2')]},'authId':{'type':Sequelize[_0x6a36('0x2')]},'authToken':{'type':Sequelize[_0x6a36('0x2')]},'smsMethod':{'type':Sequelize['ENUM']('SI','TI','GP')},'username':{'type':Sequelize[_0x6a36('0x2')]},'password':{'type':Sequelize['STRING']},'apiKey':{'type':Sequelize['STRING']},'applicationId':{'type':Sequelize['STRING']},'accountId':{'type':Sequelize['STRING']},'senderString':{'type':Sequelize[_0x6a36('0x2')]},'deliveryReport':{'type':Sequelize[_0x6a36('0xc')],'defaultValue':![]},'description':{'type':Sequelize['STRING']},'notificationTemplate':{'type':Sequelize['TEXT'],'defaultValue':function(){return _0x6a36('0xd');}},'notificationSound':{'type':Sequelize[_0x6a36('0xc')],'defaultValue':!![]},'notificationShake':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize[_0x6a36('0xe')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'queueTransfer':{'type':Sequelize[_0x6a36('0xc')],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize[_0x6a36('0xe')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0x6a36('0xc')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize[_0x6a36('0xe')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'baseUrl':{'type':Sequelize[_0x6a36('0x2')]},'mandatoryDispositionPauseId':{'type':Sequelize[_0x6a36('0xe')],'comment':_0x6a36('0xf')},'mandatoryDisposition':{'type':Sequelize[_0x6a36('0xc')],'defaultValue':![],'comment':_0x6a36('0x10'),'set':function(_0x9ceea8){if(!_0x9ceea8)this[_0x6a36('0x11')](_0x6a36('0x12'),null);this[_0x6a36('0x11')](_0x6a36('0x13'),_0x9ceea8);}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4c00=['color','tag','body\x20is\x20mandatory\x20and\x20not\x20empty','to\x20is\x20mandatory','List','out','spread','SmsMessage','dataValues','Messages','received\x20delivery\x20report\x20from','skebby','skebby_dispatch_id','requestid','statusInt','clicksend','message_id','status_code','groupName','DELIVERED','intelepeer','redif','inspect','error_code','DELIVERED_TO_GATEWAY','message-delivered','DELIVRD','message-id','state','addAgents','emit','userSmsAccount:save','removeAgents','isArray','userSmsAccount:remove','getAgents','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','ejs','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','socket.io-emitter','./smsAccount.socket','register','jayson/promise','http','request','then','info','SmsAccount,\x20%s,\x20%s','request\x20sent','debug','error','code','message','result','catch','end','status','json','offset','undefined','limit','count','Content-Range','apply','reject','save','update','destroy','SmsAccounts','stack','name','send','index','mandatoryDispositionPause','map','SmsAccount','key','model','query','keys','filters','intersection','fields','attributes','nolimit','order','sort','where','pick','filter','merge','type','VIRTUAL','options','includeAll','include','rows','Pause','rawAttributes','length','find','create','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','params','describe','addDisposition','Disposition','getDispositions','findOne','hasOwnProperty','SmsAccountId','findAll','removeDispositions','ids','addAnswer','CannedAnswer','getAnswers','removeAnswers','sms','SmsApplication','account','orderBy','priority','Applications','CmContact','Sequelize','ValidationError','no\x20available\x20attributes','difference','createdAt','CompanyId','ListId','mobile','twilio','from','From','messageId','MessageSid','text','connectel','plivo','Text','infobip','results','csc','originatingAddress','segmentedMessage','clickatell','bandwidth','refid','isNil','includes','mapKey','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','CmList','updatedAt','DESC','omit','Contacts','contact','SmsInteraction','interaction','created','autoclose','applications','close','unmanaged','ContactId','AttachmentId','User','UserId','waitForTheAssignedAgent','*,*,*,*','Start','startRouting','receiveMessage','SmsAccount,\x20%s,\x20%s,\x20%s','entity\x20found','SmsAccount,\x20%s,\x20%s,\x20%s,\x20%s','stringify','Content-Type','text/xml','<?xml\x20version=\x221.0\x22\x20encoding=\x22UTF-8\x22?>\x0a<Response></Response>','addApplications','sequelize','bulkCreate','findAndCountAll','getApplications','getInteractions','Owner','fullname','Tag'];(function(_0x469dd6,_0x418b44){var _0x18c2c8=function(_0x6e0747){while(--_0x6e0747){_0x469dd6['push'](_0x469dd6['shift']());}};_0x18c2c8(++_0x418b44);}(_0x4c00,0x105));var _0x04c0=function(_0x47c902,_0x220fd2){_0x47c902=_0x47c902-0x0;var _0x1ad6a0=_0x4c00[_0x47c902];return _0x1ad6a0;};'use strict';var emlformat=require(_0x04c0('0x0'));var rimraf=require(_0x04c0('0x1'));var zipdir=require(_0x04c0('0x2'));var jsonpatch=require(_0x04c0('0x3'));var rp=require('request-promise');var moment=require(_0x04c0('0x4'));var BPromise=require(_0x04c0('0x5'));var Mustache=require(_0x04c0('0x6'));var util=require(_0x04c0('0x7'));var path=require(_0x04c0('0x8'));var sox=require(_0x04c0('0x9'));var csv=require('to-csv');var ejs=require(_0x04c0('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x04c0('0xb'));var squel=require('squel');var crypto=require(_0x04c0('0xc'));var jsforce=require(_0x04c0('0xd'));var deskjs=require(_0x04c0('0xe'));var toCsv=require('to-csv');var querystring=require(_0x04c0('0xf'));var Papa=require(_0x04c0('0x10'));var Redis=require(_0x04c0('0x11'));var authService=require(_0x04c0('0x12'));var qs=require(_0x04c0('0x13'));var as=require(_0x04c0('0x14'));var hardwareService=require(_0x04c0('0x15'));var logger=require('../../config/logger')('api');var utils=require(_0x04c0('0x16'));var config=require(_0x04c0('0x17'));var licenseUtil=require(_0x04c0('0x18'));var db=require(_0x04c0('0x19'))['db'];config[_0x04c0('0x1a')]=_[_0x04c0('0x1b')](config[_0x04c0('0x1a')],{'host':'localhost','port':0x18eb});var socket=require(_0x04c0('0x1c'))(new Redis(config[_0x04c0('0x1a')]));require(_0x04c0('0x1d'))[_0x04c0('0x1e')](socket);var jayson=require(_0x04c0('0x1f'));var client=jayson['client'][_0x04c0('0x20')]({'port':0x232c});function respondWithRpcPromise(_0x24b812,_0xfe6440,_0xb6958f,_0x313aea){return new BPromise(function(_0x111635,_0x21a0e9){var _0x520f24=_0x313aea||client;return _0x520f24[_0x04c0('0x21')](_0x24b812,_0xb6958f)[_0x04c0('0x22')](function(_0x11848e){logger[_0x04c0('0x23')](_0x04c0('0x24'),_0xfe6440,_0x04c0('0x25'));logger[_0x04c0('0x26')]('SmsAccount,\x20%s,\x20%s,\x20%s',_0xfe6440,_0x04c0('0x25'),JSON['stringify'](_0x11848e));if(_0x11848e[_0x04c0('0x27')]){if(_0x11848e[_0x04c0('0x27')][_0x04c0('0x28')]===0x1f4){logger[_0x04c0('0x27')](_0x04c0('0x24'),_0xfe6440,_0x11848e[_0x04c0('0x27')][_0x04c0('0x29')]);return _0x21a0e9(_0x11848e[_0x04c0('0x27')][_0x04c0('0x29')]);}logger[_0x04c0('0x27')]('SmsAccount,\x20%s,\x20%s',_0xfe6440,_0x11848e[_0x04c0('0x27')]['message']);return _0x111635(_0x11848e[_0x04c0('0x27')]['message']);}else{logger[_0x04c0('0x23')](_0x04c0('0x24'),_0xfe6440,_0x04c0('0x25'));_0x111635(_0x11848e[_0x04c0('0x2a')][_0x04c0('0x29')]);}})[_0x04c0('0x2b')](function(_0x1cb86b){logger['error'](_0x04c0('0x24'),_0xfe6440,_0x1cb86b);_0x21a0e9(_0x1cb86b);});});}function respondWithStatusCode(_0xfb4512,_0x481bca){_0x481bca=_0x481bca||0xcc;return function(_0x355b72){if(_0x355b72){return _0xfb4512['sendStatus'](_0x481bca);}return _0xfb4512['status'](_0x481bca)[_0x04c0('0x2c')]();};}function respondWithResult(_0x53dc0c,_0x3204bc){_0x3204bc=_0x3204bc||0xc8;return function(_0x3dcad8){if(_0x3dcad8){return _0x53dc0c[_0x04c0('0x2d')](_0x3204bc)[_0x04c0('0x2e')](_0x3dcad8);}};}function respondWithFilteredResult(_0x521fe6,_0x396d90){return function(_0x1db474){if(_0x1db474){var _0x35516f=typeof _0x396d90[_0x04c0('0x2f')]===_0x04c0('0x30')&&typeof _0x396d90[_0x04c0('0x31')]===_0x04c0('0x30');var _0x377787=_0x1db474[_0x04c0('0x32')];var _0x4352e8=_0x35516f?0x0:_0x396d90[_0x04c0('0x2f')];var _0x3d893b=_0x35516f?_0x1db474[_0x04c0('0x32')]:_0x396d90[_0x04c0('0x2f')]+_0x396d90[_0x04c0('0x31')];var _0xe59f23;if(_0x3d893b>=_0x377787){_0x3d893b=_0x377787;_0xe59f23=0xc8;}else{_0xe59f23=0xce;}_0x521fe6[_0x04c0('0x2d')](_0xe59f23);return _0x521fe6['set'](_0x04c0('0x33'),_0x4352e8+'-'+_0x3d893b+'/'+_0x377787)[_0x04c0('0x2e')](_0x1db474);}return null;};}function patchUpdates(_0x5b0050){return function(_0x3fa9dc){try{jsonpatch[_0x04c0('0x34')](_0x3fa9dc,_0x5b0050,!![]);}catch(_0x154aeb){return BPromise[_0x04c0('0x35')](_0x154aeb);}return _0x3fa9dc[_0x04c0('0x36')]();};}function saveUpdates(_0x2dfc3c,_0x50cad5){return function(_0x4df793){if(_0x4df793){return _0x4df793[_0x04c0('0x37')](_0x2dfc3c)[_0x04c0('0x22')](function(_0x2f07ae){return _0x2f07ae;});}return null;};}function removeEntity(_0x472f7b,_0x4c782d){return function(_0x2491e3){if(_0x2491e3){return _0x2491e3[_0x04c0('0x38')]()['then'](function(){var _0x4dd2ba=_0x2491e3['get']({'plain':!![]});var _0x5567d7=_0x04c0('0x39');return db['UserProfileResource'][_0x04c0('0x38')]({'where':{'type':_0x5567d7,'resourceId':_0x4dd2ba['id']}})['then'](function(){return _0x2491e3;});})[_0x04c0('0x22')](function(){_0x472f7b[_0x04c0('0x2d')](0xcc)[_0x04c0('0x2c')]();});}};}function handleEntityNotFound(_0x5cac3a,_0x1df013){return function(_0x1d17be){if(!_0x1d17be){_0x5cac3a['sendStatus'](0x194);}return _0x1d17be;};}function handleError(_0x80327b,_0x33132b){_0x33132b=_0x33132b||0x1f4;return function(_0x23b558){logger[_0x04c0('0x27')](_0x23b558[_0x04c0('0x3a')]);if(_0x23b558['name']){delete _0x23b558[_0x04c0('0x3b')];}_0x80327b[_0x04c0('0x2d')](_0x33132b)[_0x04c0('0x3c')](_0x23b558);};}exports[_0x04c0('0x3d')]=function(_0x370426,_0x333258){var _0x1a9be1={'include':[{'model':db['Pause'],'as':_0x04c0('0x3e')}]},_0x325f54={},_0xf71cf6={'count':0x0,'rows':[]};var _0x537518=_[_0x04c0('0x3f')](db[_0x04c0('0x40')]['rawAttributes'],function(_0x1c1573){return{'name':_0x1c1573['fieldName'],'type':_0x1c1573['type'][_0x04c0('0x41')]};});_0x325f54[_0x04c0('0x42')]=_['map'](_0x537518,_0x04c0('0x3b'));_0x325f54[_0x04c0('0x43')]=_[_0x04c0('0x44')](_0x370426[_0x04c0('0x43')]);_0x325f54[_0x04c0('0x45')]=_[_0x04c0('0x46')](_0x325f54[_0x04c0('0x42')],_0x325f54['query']);_0x1a9be1['attributes']=_['intersection'](_0x325f54['model'],qs['fields'](_0x370426[_0x04c0('0x43')][_0x04c0('0x47')]));_0x1a9be1[_0x04c0('0x48')]=_0x1a9be1[_0x04c0('0x48')]['length']?_0x1a9be1[_0x04c0('0x48')]:_0x325f54[_0x04c0('0x42')];if(!_0x370426[_0x04c0('0x43')]['hasOwnProperty'](_0x04c0('0x49'))){_0x1a9be1['limit']=qs[_0x04c0('0x31')](_0x370426[_0x04c0('0x43')][_0x04c0('0x31')]);_0x1a9be1[_0x04c0('0x2f')]=qs[_0x04c0('0x2f')](_0x370426[_0x04c0('0x43')]['offset']);}_0x1a9be1[_0x04c0('0x4a')]=qs[_0x04c0('0x4b')](_0x370426[_0x04c0('0x43')][_0x04c0('0x4b')]);_0x1a9be1[_0x04c0('0x4c')]=qs[_0x04c0('0x45')](_[_0x04c0('0x4d')](_0x370426[_0x04c0('0x43')],_0x325f54[_0x04c0('0x45')]),_0x537518);if(_0x370426[_0x04c0('0x43')][_0x04c0('0x4e')]){_0x1a9be1[_0x04c0('0x4c')]=_[_0x04c0('0x4f')](_0x1a9be1[_0x04c0('0x4c')],{'$or':_['map'](_0x537518,function(_0x22a3a8){if(_0x22a3a8[_0x04c0('0x50')]!==_0x04c0('0x51')){var _0x55186d={};_0x55186d[_0x22a3a8[_0x04c0('0x3b')]]={'$like':'%'+_0x370426['query'][_0x04c0('0x4e')]+'%'};return _0x55186d;}})});}_0x1a9be1=_[_0x04c0('0x4f')]({},_0x1a9be1,_0x370426[_0x04c0('0x52')]);var _0x2f146a={'where':_0x1a9be1[_0x04c0('0x4c')]};return db[_0x04c0('0x40')][_0x04c0('0x32')](_0x2f146a)['then'](function(_0x15d91b){_0xf71cf6[_0x04c0('0x32')]=_0x15d91b;if(_0x370426[_0x04c0('0x43')][_0x04c0('0x53')]){_0x1a9be1[_0x04c0('0x54')]=[{'all':!![]}];}return db[_0x04c0('0x40')]['findAll'](_0x1a9be1);})['then'](function(_0x2750f0){_0xf71cf6[_0x04c0('0x55')]=_0x2750f0;return _0xf71cf6;})[_0x04c0('0x22')](respondWithFilteredResult(_0x333258,_0x1a9be1))[_0x04c0('0x2b')](handleError(_0x333258,null));};exports['show']=function(_0x4bc46a,_0x2c292a){var _0x3e55b9={'raw':![],'where':{'id':_0x4bc46a['params']['id']},'include':[{'model':db[_0x04c0('0x56')],'as':'mandatoryDispositionPause'}]},_0x5abd99={};_0x5abd99[_0x04c0('0x42')]=_[_0x04c0('0x44')](db['SmsAccount'][_0x04c0('0x57')]);_0x5abd99['query']=_['keys'](_0x4bc46a[_0x04c0('0x43')]);_0x5abd99[_0x04c0('0x45')]=_[_0x04c0('0x46')](_0x5abd99[_0x04c0('0x42')],_0x5abd99[_0x04c0('0x43')]);_0x3e55b9[_0x04c0('0x48')]=_[_0x04c0('0x46')](_0x5abd99['model'],qs[_0x04c0('0x47')](_0x4bc46a[_0x04c0('0x43')][_0x04c0('0x47')]));_0x3e55b9['attributes']=_0x3e55b9[_0x04c0('0x48')][_0x04c0('0x58')]?_0x3e55b9[_0x04c0('0x48')]:_0x5abd99[_0x04c0('0x42')];if(_0x4bc46a[_0x04c0('0x43')][_0x04c0('0x53')]){_0x3e55b9[_0x04c0('0x54')]=[{'all':!![]}];}_0x3e55b9=_[_0x04c0('0x4f')]({},_0x3e55b9,_0x4bc46a[_0x04c0('0x52')]);return db[_0x04c0('0x40')][_0x04c0('0x59')](_0x3e55b9)[_0x04c0('0x22')](handleEntityNotFound(_0x2c292a,null))['then'](respondWithResult(_0x2c292a,null))[_0x04c0('0x2b')](handleError(_0x2c292a,null));};exports[_0x04c0('0x5a')]=function(_0x18c14a,_0x468590){return db[_0x04c0('0x40')][_0x04c0('0x5a')](_0x18c14a['body'],{})[_0x04c0('0x22')](function(_0x21ab6f){var _0x26b906=_0x18c14a[_0x04c0('0x5b')][_0x04c0('0x5c')]({'plain':!![]});if(!_0x26b906)throw new Error(_0x04c0('0x5d'));if(_0x26b906[_0x04c0('0x5e')]===_0x04c0('0x5b')){var _0x5bffd8=_0x21ab6f[_0x04c0('0x5c')]({'plain':!![]});var _0x38fe57=_0x04c0('0x39');return db['UserProfileSection'][_0x04c0('0x59')]({'where':{'name':_0x38fe57,'userProfileId':_0x26b906[_0x04c0('0x5f')]},'raw':!![]})[_0x04c0('0x22')](function(_0x5e6797){if(_0x5e6797&&_0x5e6797[_0x04c0('0x60')]===0x0){return db[_0x04c0('0x61')][_0x04c0('0x5a')]({'name':_0x5bffd8['name'],'resourceId':_0x5bffd8['id'],'type':_0x5e6797[_0x04c0('0x3b')],'sectionId':_0x5e6797['id']},{})[_0x04c0('0x22')](function(){return _0x21ab6f;});}else{return _0x21ab6f;}})[_0x04c0('0x2b')](function(_0x24cffa){logger[_0x04c0('0x27')](_0x04c0('0x62'),_0x24cffa);throw _0x24cffa;});}return _0x21ab6f;})[_0x04c0('0x22')](respondWithResult(_0x468590,0xc9))['catch'](handleError(_0x468590,null));};exports['update']=function(_0x9e67f7,_0x1f9bfd){if(_0x9e67f7[_0x04c0('0x63')]['id']){delete _0x9e67f7[_0x04c0('0x63')]['id'];}return db[_0x04c0('0x40')][_0x04c0('0x59')]({'where':{'id':_0x9e67f7[_0x04c0('0x64')]['id']},'include':[{'model':db[_0x04c0('0x56')],'as':_0x04c0('0x3e')}]})[_0x04c0('0x22')](handleEntityNotFound(_0x1f9bfd,null))[_0x04c0('0x22')](saveUpdates(_0x9e67f7[_0x04c0('0x63')],null))[_0x04c0('0x22')](respondWithResult(_0x1f9bfd,null))[_0x04c0('0x2b')](handleError(_0x1f9bfd,null));};exports['destroy']=function(_0x59613c,_0x19a413){return db[_0x04c0('0x40')][_0x04c0('0x59')]({'where':{'id':_0x59613c['params']['id']}})[_0x04c0('0x22')](handleEntityNotFound(_0x19a413,null))[_0x04c0('0x22')](removeEntity(_0x19a413,null))['catch'](handleError(_0x19a413,null));};exports[_0x04c0('0x65')]=function(_0x28b298,_0xf52409){return db['SmsAccount'][_0x04c0('0x65')]()[_0x04c0('0x22')](respondWithResult(_0xf52409,null))['catch'](handleError(_0xf52409,null));};exports[_0x04c0('0x66')]=function(_0x5b58bd,_0x301901,_0x45386b){if(_0x5b58bd['body']['id']){delete _0x5b58bd['body']['id'];}return db[_0x04c0('0x40')][_0x04c0('0x59')]({'where':{'id':_0x5b58bd[_0x04c0('0x64')]['id']}})[_0x04c0('0x22')](handleEntityNotFound(_0x301901,null))[_0x04c0('0x22')](function(_0x4363eb){if(_0x4363eb){_0x5b58bd[_0x04c0('0x63')]['SmsAccountId']=_0x4363eb['id'];return db[_0x04c0('0x67')][_0x04c0('0x5a')](_0x5b58bd[_0x04c0('0x63')]);}})[_0x04c0('0x22')](respondWithResult(_0x301901,null))[_0x04c0('0x2b')](handleError(_0x301901,null));};exports[_0x04c0('0x68')]=function(_0x40a726,_0x29677d,_0x212daa){var _0x2822c1={'raw':![],'where':{}};var _0x247af1={};var _0x4baeac={'count':0x0,'rows':[]};return db[_0x04c0('0x40')][_0x04c0('0x69')]({'where':{'id':_0x40a726['params']['id']}})[_0x04c0('0x22')](handleEntityNotFound(_0x29677d,null))[_0x04c0('0x22')](function(_0x16e537){if(_0x16e537){_0x247af1[_0x04c0('0x42')]=_[_0x04c0('0x44')](db[_0x04c0('0x67')][_0x04c0('0x57')]);_0x247af1[_0x04c0('0x43')]=_[_0x04c0('0x44')](_0x40a726[_0x04c0('0x43')]);_0x247af1['filters']=_[_0x04c0('0x46')](_0x247af1[_0x04c0('0x42')],_0x247af1[_0x04c0('0x43')]);_0x2822c1[_0x04c0('0x48')]=_[_0x04c0('0x46')](_0x247af1[_0x04c0('0x42')],qs[_0x04c0('0x47')](_0x40a726[_0x04c0('0x43')]['fields']));_0x2822c1[_0x04c0('0x48')]=_0x2822c1[_0x04c0('0x48')][_0x04c0('0x58')]?_0x2822c1[_0x04c0('0x48')]:_0x247af1[_0x04c0('0x42')];if(!_0x40a726[_0x04c0('0x43')][_0x04c0('0x6a')](_0x04c0('0x49'))){_0x2822c1['limit']=qs['limit'](_0x40a726[_0x04c0('0x43')]['limit']);_0x2822c1[_0x04c0('0x2f')]=qs[_0x04c0('0x2f')](_0x40a726[_0x04c0('0x43')][_0x04c0('0x2f')]);}_0x2822c1[_0x04c0('0x4a')]=qs[_0x04c0('0x4b')](_0x40a726['query'][_0x04c0('0x4b')]);_0x2822c1[_0x04c0('0x4c')]=qs[_0x04c0('0x45')](_[_0x04c0('0x4d')](_0x40a726['query'],_0x247af1['filters']));_0x2822c1[_0x04c0('0x4c')][_0x04c0('0x6b')]=_0x16e537['id'];if(_0x40a726['query'][_0x04c0('0x4e')]){_0x2822c1[_0x04c0('0x4c')]=_[_0x04c0('0x4f')](_0x2822c1[_0x04c0('0x4c')],{'$or':_[_0x04c0('0x3f')](_0x2822c1[_0x04c0('0x48')],function(_0x18a334){var _0x728e88={};_0x728e88[_0x18a334]={'$like':'%'+_0x40a726[_0x04c0('0x43')][_0x04c0('0x4e')]+'%'};return _0x728e88;})});}_0x2822c1=_['merge']({},_0x2822c1,_0x40a726[_0x04c0('0x52')]);return db['Disposition'][_0x04c0('0x32')]({'where':_0x2822c1[_0x04c0('0x4c')]})[_0x04c0('0x22')](function(_0x133634){_0x4baeac[_0x04c0('0x32')]=_0x133634;if(_0x40a726['query']['includeAll']){_0x2822c1[_0x04c0('0x54')]=[{'all':!![]}];}return db[_0x04c0('0x67')][_0x04c0('0x6c')](_0x2822c1);})[_0x04c0('0x22')](function(_0x25db5e){_0x4baeac['rows']=_0x25db5e;return _0x4baeac;});}})['then'](respondWithFilteredResult(_0x29677d,_0x2822c1))[_0x04c0('0x2b')](handleError(_0x29677d,null));};exports[_0x04c0('0x6d')]=function(_0x5af1e4,_0x13144e,_0x44954c){return db[_0x04c0('0x40')][_0x04c0('0x59')]({'where':{'id':_0x5af1e4[_0x04c0('0x64')]['id']}})[_0x04c0('0x22')](handleEntityNotFound(_0x13144e,null))['then'](function(_0x42318b){if(_0x42318b){return _0x42318b[_0x04c0('0x6d')](_0x5af1e4[_0x04c0('0x43')][_0x04c0('0x6e')]);}})[_0x04c0('0x22')](respondWithStatusCode(_0x13144e,null))[_0x04c0('0x2b')](handleError(_0x13144e,null));};exports[_0x04c0('0x6f')]=function(_0x31f81e,_0x592e9d,_0x33cada){if(_0x31f81e['body']['id']){delete _0x31f81e[_0x04c0('0x63')]['id'];}return db[_0x04c0('0x40')][_0x04c0('0x59')]({'where':{'id':_0x31f81e[_0x04c0('0x64')]['id']}})[_0x04c0('0x22')](handleEntityNotFound(_0x592e9d,null))[_0x04c0('0x22')](function(_0x57caff){if(_0x57caff){_0x31f81e['body'][_0x04c0('0x6b')]=_0x57caff['id'];return db[_0x04c0('0x70')][_0x04c0('0x5a')](_0x31f81e[_0x04c0('0x63')]);}})[_0x04c0('0x22')](respondWithResult(_0x592e9d,null))[_0x04c0('0x2b')](handleError(_0x592e9d,null));};exports[_0x04c0('0x71')]=function(_0x552ee8,_0x1d030c,_0x2a9504){var _0x45d2f0={'raw':![],'where':{}};var _0x74be27={};var _0x3c58bc={'count':0x0,'rows':[]};return db['SmsAccount'][_0x04c0('0x69')]({'where':{'id':_0x552ee8['params']['id']}})[_0x04c0('0x22')](handleEntityNotFound(_0x1d030c,null))[_0x04c0('0x22')](function(_0x27bd37){if(_0x27bd37){_0x74be27[_0x04c0('0x42')]=_['keys'](db['CannedAnswer'][_0x04c0('0x57')]);_0x74be27['query']=_[_0x04c0('0x44')](_0x552ee8[_0x04c0('0x43')]);_0x74be27[_0x04c0('0x45')]=_[_0x04c0('0x46')](_0x74be27[_0x04c0('0x42')],_0x74be27[_0x04c0('0x43')]);_0x45d2f0[_0x04c0('0x48')]=_[_0x04c0('0x46')](_0x74be27[_0x04c0('0x42')],qs[_0x04c0('0x47')](_0x552ee8[_0x04c0('0x43')][_0x04c0('0x47')]));_0x45d2f0[_0x04c0('0x48')]=_0x45d2f0['attributes'][_0x04c0('0x58')]?_0x45d2f0[_0x04c0('0x48')]:_0x74be27[_0x04c0('0x42')];if(!_0x552ee8[_0x04c0('0x43')]['hasOwnProperty'](_0x04c0('0x49'))){_0x45d2f0[_0x04c0('0x31')]=qs[_0x04c0('0x31')](_0x552ee8['query'][_0x04c0('0x31')]);_0x45d2f0['offset']=qs[_0x04c0('0x2f')](_0x552ee8[_0x04c0('0x43')][_0x04c0('0x2f')]);}_0x45d2f0[_0x04c0('0x4a')]=qs[_0x04c0('0x4b')](_0x552ee8[_0x04c0('0x43')]['sort']);_0x45d2f0[_0x04c0('0x4c')]=qs[_0x04c0('0x45')](_[_0x04c0('0x4d')](_0x552ee8['query'],_0x74be27[_0x04c0('0x45')]));_0x45d2f0[_0x04c0('0x4c')][_0x04c0('0x6b')]=_0x27bd37['id'];if(_0x552ee8[_0x04c0('0x43')][_0x04c0('0x4e')]){_0x45d2f0[_0x04c0('0x4c')]=_[_0x04c0('0x4f')](_0x45d2f0[_0x04c0('0x4c')],{'$or':_['map'](_0x45d2f0[_0x04c0('0x48')],function(_0x4b6b13){var _0x2c9a52={};_0x2c9a52[_0x4b6b13]={'$like':'%'+_0x552ee8[_0x04c0('0x43')]['filter']+'%'};return _0x2c9a52;})});}_0x45d2f0=_['merge']({},_0x45d2f0,_0x552ee8['options']);return db[_0x04c0('0x70')]['count']({'where':_0x45d2f0[_0x04c0('0x4c')]})[_0x04c0('0x22')](function(_0x15c4a5){_0x3c58bc[_0x04c0('0x32')]=_0x15c4a5;if(_0x552ee8[_0x04c0('0x43')]['includeAll']){_0x45d2f0['include']=[{'all':!![]}];}return db['CannedAnswer'][_0x04c0('0x6c')](_0x45d2f0);})[_0x04c0('0x22')](function(_0x208ed9){_0x3c58bc[_0x04c0('0x55')]=_0x208ed9;return _0x3c58bc;});}})[_0x04c0('0x22')](respondWithFilteredResult(_0x1d030c,_0x45d2f0))['catch'](handleError(_0x1d030c,null));};exports['removeAnswers']=function(_0x23b735,_0x2f6a0d,_0x1163e8){return db[_0x04c0('0x40')]['find']({'where':{'id':_0x23b735[_0x04c0('0x64')]['id']}})[_0x04c0('0x22')](handleEntityNotFound(_0x2f6a0d,null))[_0x04c0('0x22')](function(_0x2212b3){if(_0x2212b3){return _0x2212b3[_0x04c0('0x72')](_0x23b735[_0x04c0('0x43')][_0x04c0('0x6e')]);}})['then'](respondWithStatusCode(_0x2f6a0d,null))[_0x04c0('0x2b')](handleError(_0x2f6a0d,null));};exports['notify']=function(_0xb2ade,_0x48451a,_0x3b1adb){var _0x122e66={'channel':_0x04c0('0x73')};var _0x5b76ce=[];var _0x1e6740=[];var _0x463b1f={};return db[_0x04c0('0x40')][_0x04c0('0x59')]({'where':{'id':_0xb2ade[_0x04c0('0x64')]['id']},'include':[{'model':db[_0x04c0('0x74')],'as':'Applications'}]})[_0x04c0('0x22')](handleEntityNotFound(_0x48451a,null))[_0x04c0('0x22')](function(_0x4fd44b){_0x122e66[_0x04c0('0x75')]=_0x4fd44b;_0x122e66['applications']=_[_0x04c0('0x76')](_0x4fd44b['Applications'],[_0x04c0('0x77')],['asc']);if(_0x122e66[_0x04c0('0x75')][_0x04c0('0x78')]){delete _0x122e66[_0x04c0('0x75')]['Applications'];}return db[_0x04c0('0x79')][_0x04c0('0x65')]();})[_0x04c0('0x22')](function(_0x5bc17c){if(!_0x5bc17c){throw new db[(_0x04c0('0x7a'))][(_0x04c0('0x7b'))](_0x04c0('0x7c'));}_0x5b76ce=_[_0x04c0('0x7d')](_['keys'](_0x5bc17c),[_0x04c0('0x7e'),'updatedAt']);_0x1e6740=_['difference'](_[_0x04c0('0x44')](_0x5bc17c),[_0x04c0('0x7e'),'updatedAt',_0x04c0('0x7f'),_0x04c0('0x80')]);_0x122e66['body']={'mapKey':_0x04c0('0x81')};if(_0x122e66[_0x04c0('0x75')]['type']){switch(_0x122e66[_0x04c0('0x75')][_0x04c0('0x50')]){case _0x04c0('0x82'):_0x122e66['body'][_0x04c0('0x83')]=_0xb2ade[_0x04c0('0x63')][_0x04c0('0x84')];_0x122e66[_0x04c0('0x63')]['body']=_0xb2ade[_0x04c0('0x63')]['Body'];_0x122e66[_0x04c0('0x63')][_0x04c0('0x85')]=_0xb2ade[_0x04c0('0x63')][_0x04c0('0x86')];break;case'skebby':_0x122e66[_0x04c0('0x63')][_0x04c0('0x83')]='+'+_0xb2ade[_0x04c0('0x63')]['sender'];_0x122e66[_0x04c0('0x63')][_0x04c0('0x63')]=_0xb2ade[_0x04c0('0x63')][_0x04c0('0x87')];break;case _0x04c0('0x88'):_0x122e66[_0x04c0('0x63')]['from']=_0xb2ade[_0x04c0('0x63')][_0x04c0('0x83')];_0x122e66[_0x04c0('0x63')][_0x04c0('0x63')]=_0xb2ade[_0x04c0('0x63')][_0x04c0('0x29')];break;case'clicksend':_0x122e66[_0x04c0('0x63')][_0x04c0('0x83')]=_0xb2ade[_0x04c0('0x63')][_0x04c0('0x83')];_0x122e66['body'][_0x04c0('0x63')]=_0xb2ade['body'][_0x04c0('0x63')];_0x122e66['body'][_0x04c0('0x85')]=_0xb2ade[_0x04c0('0x63')]['message_id'];break;case _0x04c0('0x89'):_0x122e66[_0x04c0('0x63')]['from']=_0xb2ade[_0x04c0('0x63')][_0x04c0('0x84')];_0x122e66[_0x04c0('0x63')][_0x04c0('0x63')]=_0xb2ade[_0x04c0('0x63')][_0x04c0('0x8a')];_0x122e66[_0x04c0('0x63')][_0x04c0('0x85')]=_0xb2ade['body']['MessageUUID'];break;case _0x04c0('0x8b'):_0x122e66['body'][_0x04c0('0x83')]='+'+_0xb2ade['body'][_0x04c0('0x8c')][0x0]['from'];_0x122e66[_0x04c0('0x63')][_0x04c0('0x63')]=_0xb2ade['body'][_0x04c0('0x8c')][0x0]['text'];_0x122e66[_0x04c0('0x63')][_0x04c0('0x85')]=_0xb2ade[_0x04c0('0x63')][_0x04c0('0x8c')][0x0][_0x04c0('0x85')];break;case _0x04c0('0x8d'):_0x122e66['body'][_0x04c0('0x83')]=_0xb2ade[_0x04c0('0x63')][_0x04c0('0x8e')];_0x122e66[_0x04c0('0x63')][_0x04c0('0x63')]=_0xb2ade[_0x04c0('0x63')][_0x04c0('0x8f')]['message'];break;case _0x04c0('0x90'):_0x122e66[_0x04c0('0x63')][_0x04c0('0x83')]=_0xb2ade[_0x04c0('0x63')]['fromNumber'];_0x122e66[_0x04c0('0x63')][_0x04c0('0x63')]=_0xb2ade[_0x04c0('0x63')][_0x04c0('0x87')];_0x122e66[_0x04c0('0x63')]['messageId']=_0xb2ade[_0x04c0('0x63')]['replyMessageId'];break;case _0x04c0('0x91'):_0x122e66[_0x04c0('0x63')]['messageId']=_0xb2ade['body'][0x0][_0x04c0('0x29')]['id'];_0x122e66['body'][_0x04c0('0x83')]=_0xb2ade[_0x04c0('0x63')][0x0][_0x04c0('0x29')][_0x04c0('0x83')];_0x122e66[_0x04c0('0x63')]['body']=_0xb2ade[_0x04c0('0x63')][0x0][_0x04c0('0x29')]['text'];break;case'intelepeer':_0x122e66[_0x04c0('0x63')]['from']=_0xb2ade[_0x04c0('0x63')][_0x04c0('0x83')];_0x122e66[_0x04c0('0x63')][_0x04c0('0x63')]=_0xb2ade[_0x04c0('0x63')][_0x04c0('0x29')];_0x122e66[_0x04c0('0x63')][_0x04c0('0x85')]=_0xb2ade[_0x04c0('0x63')][_0x04c0('0x92')];break;}}if(_0x122e66[_0x04c0('0x63')]['id']){delete _0x122e66['body']['id'];}if(_[_0x04c0('0x93')](_0x122e66[_0x04c0('0x63')][_0x04c0('0x83')])){throw new db[(_0x04c0('0x7a'))][(_0x04c0('0x7b'))]('from\x20is\x20mandatory');}if(_[_0x04c0('0x93')](_0x122e66[_0x04c0('0x63')][_0x04c0('0x63')])||_0x122e66['body'][_0x04c0('0x63')]===''){throw new db[(_0x04c0('0x7a'))][(_0x04c0('0x7b'))]('body\x20is\x20mandatory\x20and\x20not\x20empty');}if(_['isNil'](_0x122e66[_0x04c0('0x63')]['mapKey'])){throw new db[(_0x04c0('0x7a'))][(_0x04c0('0x7b'))]('mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x1e6740);}if(!_[_0x04c0('0x94')](_0x1e6740,_0x122e66[_0x04c0('0x63')][_0x04c0('0x95')])){throw new db['Sequelize']['ValidationError'](_0x04c0('0x96')+_0x1e6740);}_0x463b1f[_0x122e66[_0x04c0('0x63')]['mapKey']]=_0x122e66[_0x04c0('0x63')][_0x04c0('0x83')];return db[_0x04c0('0x97')][_0x04c0('0x59')]({'where':{'id':_0x122e66[_0x04c0('0x75')][_0x04c0('0x80')]},'include':[{'model':db[_0x04c0('0x79')],'as':'Contacts','where':_0x463b1f,'limit':0x1,'order':[[_0x04c0('0x98'),_0x04c0('0x99')]]}]});})[_0x04c0('0x22')](handleEntityNotFound(_0x48451a,null))[_0x04c0('0x22')](function(_0xabba89){if(_0xabba89){_0x122e66['list']=_[_0x04c0('0x9a')](_0xabba89,['Contacts']);if(_0xabba89['Contacts'][_0x04c0('0x58')]){return _0xabba89[_0x04c0('0x9b')][0x0];}var _0x1c7ee1=_[_0x04c0('0x1b')](_0x122e66['body'],{'firstName':_0x122e66[_0x04c0('0x63')][_0x04c0('0x83')],'ListId':_0xabba89['id']});_0x1c7ee1[_0x122e66['body'][_0x04c0('0x95')]]=_0x122e66[_0x04c0('0x63')][_0x04c0('0x83')];return db[_0x04c0('0x79')][_0x04c0('0x5a')](_0x1c7ee1,{'fields':_0x5b76ce,'raw':!![]});}})[_0x04c0('0x22')](handleEntityNotFound(_0x48451a,null))[_0x04c0('0x22')](function(_0x9db720){if(_0x9db720){_0x122e66[_0x04c0('0x9c')]=_0x9db720;var _0x22d145={'ContactId':_0x9db720['id'],'phone':_0x122e66[_0x04c0('0x63')][_0x04c0('0x83')],'SmsAccountId':_0xb2ade[_0x04c0('0x64')]['id']};var _0x5990b8={'ContactId':_0x9db720['id'],'SmsAccountId':_0xb2ade['params']['id'],'closed':![]};return db[_0x04c0('0x9d')][_0x04c0('0x59')]({'where':_0x5990b8})[_0x04c0('0x22')](function(_0x1630b2){if(_0x1630b2){return[_0x1630b2,![]];}return db['SmsInteraction'][_0x04c0('0x5a')](_0x22d145)['then'](function(_0x3fa027){return[_0x3fa027,!![]];});});}})['spread'](function(_0x30286c,_0x56a955){_0x122e66[_0x04c0('0x9e')]=_0x30286c['get']({'plain':!![]});_0x122e66['interaction'][_0x04c0('0x9f')]=![];if(_0x56a955){if(_0x122e66[_0x04c0('0x75')][_0x04c0('0xa0')]){_0x122e66['applications']['push']({'id':0x0,'priority':_0x122e66[_0x04c0('0xa1')][_0x04c0('0x58')]+0x1,'app':_0x04c0('0xa2'),'appdata':_0x04c0('0xa3'),'interval':'*,*,*,*'});}_0x122e66[_0x04c0('0x9e')][_0x04c0('0x9f')]=!![];}return db['SmsMessage'][_0x04c0('0x5a')]({'phone':_0x122e66[_0x04c0('0x63')][_0x04c0('0x83')],'messageId':_0x122e66['body'][_0x04c0('0x85')],'body':_0x122e66[_0x04c0('0x63')][_0x04c0('0x63')],'SmsAccountId':_0xb2ade['params']['id'],'SmsInteractionId':_0x30286c['id'],'direction':'in','ContactId':_0x30286c[_0x04c0('0xa4')],'AttachmentId':_0x122e66[_0x04c0('0x63')][_0x04c0('0xa5')]});})['then'](function(_0x5ad813){_0x122e66[_0x04c0('0x29')]=_0x5ad813;if(_0x122e66[_0x04c0('0x9e')]['UserId']){return db[_0x04c0('0xa6')][_0x04c0('0x59')]({'attributes':['id',_0x04c0('0x3b')],'where':{'id':_0x122e66[_0x04c0('0x9e')][_0x04c0('0xa7')]}})['then'](function(_0x424f2c){if(_0x424f2c){_0x122e66[_0x04c0('0xa1')]['unshift']({'id':0x0,'priority':0x0,'app':'agent','appdata':_0x424f2c['name']+','+(_0x122e66[_0x04c0('0x75')][_0x04c0('0xa8')]||0xa),'interval':_0x04c0('0xa9')});}return respondWithRpcPromise(_0x04c0('0xaa'),_0x04c0('0xab'),_0x122e66);});}return respondWithRpcPromise(_0x04c0('0xaa'),'startRouting',_0x122e66);})[_0x04c0('0x22')](function(_0x5e216d){if(_0x5e216d){var _0x2a9aac=0xc8;var _0x316d02=_0x04c0('0xac');logger[_0x04c0('0x23')](_0x04c0('0xad'),_0x316d02,_0x2a9aac,_0x04c0('0xae'));logger[_0x04c0('0x26')](_0x04c0('0xaf'),_0x316d02,_0x2a9aac,_0x04c0('0xae'),JSON[_0x04c0('0xb0')](_0x5e216d));if(_0x122e66[_0x04c0('0x75')]['type']===_0x04c0('0x82')){return _0x48451a['status'](_0x2a9aac)['set'](_0x04c0('0xb1'),_0x04c0('0xb2'))[_0x04c0('0x3c')](_0x04c0('0xb3'));}else{return _0x48451a[_0x04c0('0x2d')](_0x2a9aac)[_0x04c0('0x2e')](_0x5e216d);}}})[_0x04c0('0x2b')](handleError(_0x48451a,null));};exports[_0x04c0('0xb4')]=function(_0x5e9705,_0x4f1351,_0x3a0631){return db[_0x04c0('0x40')][_0x04c0('0x69')]({'where':{'id':_0x5e9705[_0x04c0('0x64')]['id']}})[_0x04c0('0x22')](handleEntityNotFound(_0x4f1351,null))['then'](function(_0x33a8be){if(_0x33a8be){return db[_0x04c0('0xb5')]['transaction'](function(_0x112e73){return db[_0x04c0('0x74')][_0x04c0('0x38')]({'where':{'SmsAccountId':_0x5e9705[_0x04c0('0x64')]['id']},'transaction':_0x112e73})[_0x04c0('0x22')](function(_0x5290d3){var _0x1f4cdb=_[_0x04c0('0x3f')](_0x5e9705[_0x04c0('0x63')],function(_0x3ff51e){_0x3ff51e[_0x04c0('0x6b')]=_0x5e9705[_0x04c0('0x64')]['id'];return _0x3ff51e;});return db[_0x04c0('0x74')][_0x04c0('0xb6')](_0x1f4cdb,{'transaction':_0x112e73});});})[_0x04c0('0x22')](function(){return db[_0x04c0('0x74')][_0x04c0('0xb7')]({'where':{'SmsAccountId':_0x5e9705['params']['id']},'order':'priority'});});}})[_0x04c0('0x22')](respondWithResult(_0x4f1351,null))['catch'](handleError(_0x4f1351,null));};exports['getApplications']=function(_0xbe5d80,_0x527f17,_0x1e4976){var _0x2cf993={};var _0x3ce1da={};var _0x2cbe69;var _0x469bc6;return db[_0x04c0('0x40')][_0x04c0('0x69')]({'where':{'id':_0xbe5d80['params']['id']}})['then'](handleEntityNotFound(_0x527f17,null))['then'](function(_0x499da3){if(_0x499da3){_0x2cbe69=_0x499da3;_0x3ce1da['model']=_[_0x04c0('0x44')](db[_0x04c0('0x74')][_0x04c0('0x57')]);_0x3ce1da[_0x04c0('0x43')]=_[_0x04c0('0x44')](_0xbe5d80['query']);_0x3ce1da[_0x04c0('0x45')]=_[_0x04c0('0x46')](_0x3ce1da['model'],_0x3ce1da['query']);_0x2cf993[_0x04c0('0x48')]=_['intersection'](_0x3ce1da[_0x04c0('0x42')],qs[_0x04c0('0x47')](_0xbe5d80[_0x04c0('0x43')]['fields']));_0x2cf993['attributes']=_0x2cf993['attributes'][_0x04c0('0x58')]?_0x2cf993['attributes']:_0x3ce1da['model'];_0x2cf993['order']=qs[_0x04c0('0x4b')](_0xbe5d80[_0x04c0('0x43')][_0x04c0('0x4b')]);_0x2cf993[_0x04c0('0x4c')]=qs['filters'](_[_0x04c0('0x4d')](_0xbe5d80['query'],_0x3ce1da[_0x04c0('0x45')]));if(_0xbe5d80['query'][_0x04c0('0x4e')]){_0x2cf993[_0x04c0('0x4c')]=_['merge'](_0x2cf993[_0x04c0('0x4c')],{'$or':_[_0x04c0('0x3f')](_0x2cf993[_0x04c0('0x48')],function(_0x3e73b2){var _0x277513={};_0x277513[_0x3e73b2]={'$like':'%'+_0xbe5d80['query'][_0x04c0('0x4e')]+'%'};return _0x277513;})});}_0x2cf993=_[_0x04c0('0x4f')]({},_0x2cf993,_0xbe5d80[_0x04c0('0x52')]);return _0x2cbe69[_0x04c0('0xb8')](_0x2cf993);}})[_0x04c0('0x22')](function(_0x47316a){if(_0x47316a){_0x469bc6=_0x47316a[_0x04c0('0x58')];if(!_0xbe5d80[_0x04c0('0x43')][_0x04c0('0x6a')](_0x04c0('0x49'))){_0x2cf993['limit']=qs[_0x04c0('0x31')](_0xbe5d80[_0x04c0('0x43')][_0x04c0('0x31')]);_0x2cf993['offset']=qs['offset'](_0xbe5d80['query'][_0x04c0('0x2f')]);}return _0x2cbe69[_0x04c0('0xb8')](_0x2cf993);}})[_0x04c0('0x22')](function(_0x1ae07d){if(_0x1ae07d){return _0x1ae07d?{'count':_0x469bc6,'rows':_0x1ae07d}:null;}})[_0x04c0('0x22')](respondWithResult(_0x527f17,null))['catch'](handleError(_0x527f17,null));};exports[_0x04c0('0xb9')]=function(_0x97cdbd,_0x178fdd,_0x585a3f){var _0x1eb604={'raw':![],'where':{}};var _0x4f2b41={};var _0x4eb224={'count':0x0,'rows':[]};return db[_0x04c0('0x40')]['findOne']({'where':{'id':_0x97cdbd[_0x04c0('0x64')]['id']}})['then'](handleEntityNotFound(_0x178fdd,null))['then'](function(_0x430cac){if(_0x430cac){_0x4f2b41['model']=_['keys'](db[_0x04c0('0x9d')]['rawAttributes']);_0x4f2b41[_0x04c0('0x43')]=_['keys'](_0x97cdbd[_0x04c0('0x43')]);_0x4f2b41['filters']=_[_0x04c0('0x46')](_0x4f2b41[_0x04c0('0x42')],_0x4f2b41[_0x04c0('0x43')]);_0x1eb604[_0x04c0('0x48')]=_[_0x04c0('0x46')](_0x4f2b41['model'],qs[_0x04c0('0x47')](_0x97cdbd[_0x04c0('0x43')][_0x04c0('0x47')]));_0x1eb604[_0x04c0('0x48')]=_0x1eb604[_0x04c0('0x48')][_0x04c0('0x58')]?_0x1eb604[_0x04c0('0x48')]:_0x4f2b41['model'];if(!_0x97cdbd[_0x04c0('0x43')][_0x04c0('0x6a')](_0x04c0('0x49'))){_0x1eb604['limit']=qs[_0x04c0('0x31')](_0x97cdbd[_0x04c0('0x43')]['limit']);_0x1eb604[_0x04c0('0x2f')]=qs[_0x04c0('0x2f')](_0x97cdbd[_0x04c0('0x43')]['offset']);}_0x1eb604[_0x04c0('0x4a')]=qs[_0x04c0('0x4b')](_0x97cdbd[_0x04c0('0x43')][_0x04c0('0x4b')]);_0x1eb604[_0x04c0('0x4c')]=qs[_0x04c0('0x45')](_['pick'](_0x97cdbd[_0x04c0('0x43')],_0x4f2b41[_0x04c0('0x45')]));_0x1eb604['where']['SmsAccountId']=_0x430cac['id'];if(_0x97cdbd[_0x04c0('0x43')][_0x04c0('0x4e')]){_0x1eb604[_0x04c0('0x4c')]=_[_0x04c0('0x4f')](_0x1eb604['where'],{'$or':_[_0x04c0('0x3f')](_0x1eb604[_0x04c0('0x48')],function(_0xf0030){var _0x376b99={};_0x376b99[_0xf0030]={'$like':'%'+_0x97cdbd['query'][_0x04c0('0x4e')]+'%'};return _0x376b99;})});}_0x1eb604=_[_0x04c0('0x4f')]({},_0x1eb604,_0x97cdbd[_0x04c0('0x52')]);return db[_0x04c0('0x9d')]['count']({'where':_0x1eb604[_0x04c0('0x4c')]})[_0x04c0('0x22')](function(_0x11218b){_0x4eb224[_0x04c0('0x32')]=_0x11218b;if(_0x97cdbd[_0x04c0('0x43')]['includeAll']){_0x1eb604[_0x04c0('0x54')]=[{'model':db['CmContact'],'as':'Contact','required':![]},{'model':db[_0x04c0('0xa6')],'as':_0x04c0('0xba'),'attributes':[_0x04c0('0x3b'),_0x04c0('0xbb'),'internal'],'required':![]},{'model':db[_0x04c0('0xbc')],'as':'Tags','attributes':['id',_0x04c0('0x3b'),_0x04c0('0xbd')],'where':_0x97cdbd[_0x04c0('0x43')]['tag']?{'id':_0x97cdbd[_0x04c0('0x43')][_0x04c0('0xbe')]}:undefined,'required':_0x97cdbd[_0x04c0('0x43')][_0x04c0('0xbe')]?!![]:![]}];}return db[_0x04c0('0x9d')][_0x04c0('0x6c')](_0x1eb604);})[_0x04c0('0x22')](function(_0x2c5cb9){_0x4eb224[_0x04c0('0x55')]=_0x2c5cb9;return _0x4eb224;});}})[_0x04c0('0x22')](respondWithFilteredResult(_0x178fdd,_0x1eb604))[_0x04c0('0x2b')](handleError(_0x178fdd,null));};exports[_0x04c0('0x3c')]=function(_0x53497a,_0x3e9dcf,_0x591fde){var _0x2439f9,_0x26c197,_0x45e437;if(_[_0x04c0('0x93')](_0x53497a[_0x04c0('0x63')][_0x04c0('0x63')])||_0x53497a[_0x04c0('0x63')][_0x04c0('0x63')]===''){throw new db[(_0x04c0('0x7a'))][(_0x04c0('0x7b'))](_0x04c0('0xbf'));}if(_[_0x04c0('0x93')](_0x53497a[_0x04c0('0x63')]['to'])){throw new db[(_0x04c0('0x7a'))]['ValidationError'](_0x04c0('0xc0'));}_0x2439f9=_0x53497a['body']['to'];return db[_0x04c0('0x40')][_0x04c0('0x59')]({'where':{'id':_0x53497a[_0x04c0('0x64')]['id']},'include':[{'model':db['CmList'],'as':_0x04c0('0xc1'),'include':[{'model':db['CmContact'],'as':_0x04c0('0x9b'),'where':{'mobile':_0x2439f9},'limit':0x1,'order':[['updatedAt',_0x04c0('0x99')]]}]}]})['then'](handleEntityNotFound(_0x3e9dcf,null))[_0x04c0('0x22')](function(_0x15648a){if(_0x15648a&&_0x15648a[_0x04c0('0xc1')]){_0x26c197=_0x15648a[_0x04c0('0x5c')]({'plain':!![]});if(_0x26c197[_0x04c0('0xc1')]&&_0x26c197[_0x04c0('0xc1')]['Contacts'][_0x04c0('0x58')]){return _0x26c197[_0x04c0('0xc1')][_0x04c0('0x9b')][0x0];}return db[_0x04c0('0x79')][_0x04c0('0x5a')](_[_0x04c0('0x1b')](_0x53497a[_0x04c0('0x63')],{'firstName':_0x2439f9,'mobile':_0x2439f9,'phone':_0x2439f9,'ListId':_0x26c197[_0x04c0('0x80')]}));}})[_0x04c0('0x22')](handleEntityNotFound(_0x3e9dcf,null))[_0x04c0('0x22')](function(_0x52e7de){if(_0x52e7de){_0x45e437=_0x52e7de;return db[_0x04c0('0x9d')][_0x04c0('0x59')]({'where':{'ContactId':_0x45e437['id'],'closed':![],'SmsAccountId':_0x26c197['id']}})[_0x04c0('0x22')](function(_0x43925e){if(_0x43925e){return[_0x43925e,![]];}return db[_0x04c0('0x9d')][_0x04c0('0x5a')]({'UserId':_0x53497a[_0x04c0('0x5b')]['id'],'ContactId':_0x45e437['id'],'SmsAccountId':_0x26c197['id'],'phone':_0x2439f9,'firstMsgDirection':_0x04c0('0xc2'),'Messages':[_[_0x04c0('0x4f')](_0x53497a[_0x04c0('0x63')],{'read':![],'body':_0x53497a[_0x04c0('0x63')][_0x04c0('0x63')],'phone':_0x2439f9,'SmsAccountId':_0x26c197['id'],'UserId':_0x53497a[_0x04c0('0x5b')]['id'],'ContactId':_0x45e437['id']})]},{'include':[{'model':db['SmsMessage'],'as':'Messages'}]})[_0x04c0('0x22')](function(_0x2b6418){return[_0x2b6418,!![]];});});}})[_0x04c0('0xc3')](function(_0x206ed6,_0x52f4eb){if(_0x52f4eb){return _0x206ed6;}return db[_0x04c0('0xc4')]['create'](_[_0x04c0('0x4f')](_0x53497a[_0x04c0('0x63')],{'read':![],'body':_0x53497a['body'][_0x04c0('0x63')],'phone':_0x2439f9,'SmsAccountId':_0x26c197['id'],'SmsInteractionId':_0x206ed6['id'],'UserId':_0x53497a[_0x04c0('0x5b')]['id'],'ContactId':_0x45e437['id']}))[_0x04c0('0x22')](function(_0x5ec4e8){_0x206ed6[_0x04c0('0xc5')]['Messages']=[];_0x206ed6[_0x04c0('0xc5')][_0x04c0('0xc6')]['push'](_0x5ec4e8[_0x04c0('0xc5')]);return _0x206ed6;});})['then'](respondWithResult(_0x3e9dcf,null))[_0x04c0('0x2b')](handleError(_0x3e9dcf,null));};exports['status']=function(_0x167e5a,_0x23ebac,_0x1cb7f7){if(_0x167e5a[_0x04c0('0x63')]['id']){delete _0x167e5a['body']['id'];}var _0x1d2d8d,_0x50e3b7,_0x525cab;return db[_0x04c0('0x40')]['find']({'where':{'id':_0x167e5a[_0x04c0('0x64')]['id']}})[_0x04c0('0x22')](handleEntityNotFound(_0x23ebac,null))['then'](function(_0xc0ae10){if(_0xc0ae10){_0x525cab=_0xc0ae10;logger['debug']('SmsAccount,\x20%s,\x20%s,\x20%s',_0x04c0('0x2d'),_0x04c0('0xc7'),_0xc0ae10[_0x04c0('0x50')],util['inspect'](_0x167e5a[_0x04c0('0x63')],{'showHidden':![],'depth':null}));switch(_0xc0ae10['type']){case _0x04c0('0xc8'):if(_0x167e5a[_0x04c0('0x63')][_0x04c0('0xc9')]&&_0x167e5a[_0x04c0('0x63')][_0x04c0('0x2d')]){_0x50e3b7=_0x167e5a[_0x04c0('0x63')][_0x04c0('0x2d')];return db['SmsMessage']['find']({'where':{'messageId':_0x167e5a[_0x04c0('0x63')][_0x04c0('0xc9')]}});}break;case'connectel':if(_0x167e5a[_0x04c0('0x63')][_0x04c0('0xca')]&&_0x167e5a[_0x04c0('0x63')][_0x04c0('0xcb')]){_0x50e3b7=_0x167e5a[_0x04c0('0x63')][_0x04c0('0xcb')];return db[_0x04c0('0xc4')][_0x04c0('0x59')]({'where':{'messageId':_0x167e5a[_0x04c0('0x63')][_0x04c0('0xca')]}});}break;case _0x04c0('0xcc'):if(_0x167e5a['body'][_0x04c0('0xcd')]&&_0x167e5a[_0x04c0('0x63')][_0x04c0('0xce')]){_0x50e3b7=_0x167e5a[_0x04c0('0x63')][_0x04c0('0xce')];return db[_0x04c0('0xc4')][_0x04c0('0x59')]({'where':{'messageId':_0x167e5a[_0x04c0('0x63')][_0x04c0('0xcd')]}});}break;case _0x04c0('0x8b'):var _0x3eb00e=_0x167e5a[_0x04c0('0x63')][_0x04c0('0x8c')][0x0];if(_0x3eb00e['messageId']&&_0x3eb00e['status'][_0x04c0('0xcf')]===_0x04c0('0xd0')){_0x50e3b7=_0x3eb00e[_0x04c0('0x2d')][_0x04c0('0xcf')];return db[_0x04c0('0xc4')][_0x04c0('0x59')]({'where':{'messageId':_0x3eb00e[_0x04c0('0x85')]}});}break;case _0x04c0('0x90'):if(_0x167e5a[_0x04c0('0x63')][_0x04c0('0x85')]&&_0x167e5a[_0x04c0('0x63')][_0x04c0('0x2d')]){_0x50e3b7=_0x167e5a[_0x04c0('0x63')][_0x04c0('0x2d')];return db[_0x04c0('0xc4')][_0x04c0('0x59')]({'where':{'messageId':_0x167e5a[_0x04c0('0x63')][_0x04c0('0x85')]}});}break;case _0x04c0('0x91'):if(_0x167e5a['body'][0x0]['message']['id']){_0x50e3b7=_0x167e5a[_0x04c0('0x63')][0x0]['type'];return db['SmsMessage'][_0x04c0('0x59')]({'where':{'messageId':_0x167e5a[_0x04c0('0x63')][0x0]['message']['id']}});}break;case _0x04c0('0xd1'):if(_0x167e5a[_0x04c0('0x63')][_0x04c0('0xd2')]&&_0x167e5a[_0x04c0('0x63')][_0x04c0('0x2d')]){_0x50e3b7=_0x167e5a[_0x04c0('0x63')][_0x04c0('0x2d')];return db['SmsMessage'][_0x04c0('0x59')]({'where':{'messageId':_0x167e5a[_0x04c0('0x63')][_0x04c0('0xd2')]}});}break;}}})[_0x04c0('0x22')](handleEntityNotFound(_0x23ebac,null))['then'](function(_0x22fe6b){if(_0x22fe6b){_0x1d2d8d=_0x22fe6b;switch(_0x525cab[_0x04c0('0x50')]){case _0x04c0('0xc8'):if(_0x50e3b7===_0x04c0('0xd0')){return _0x1d2d8d[_0x04c0('0x37')]({'read':!![]});}else{logger['error'](_0x04c0('0xad'),_0x04c0('0x2d'),'skebby',util[_0x04c0('0xd3')](_0x167e5a['body'],{'showHidden':![],'depth':null}));}break;case'connectel':if(_0x50e3b7==='1'){return _0x1d2d8d[_0x04c0('0x37')]({'read':!![]});}else{logger[_0x04c0('0x27')]('SmsAccount,\x20%s,\x20%s,\x20%s',_0x04c0('0x2d'),_0x04c0('0xc8'),util[_0x04c0('0xd3')](_0x167e5a['body'],{'showHidden':![],'depth':null}));}break;case _0x04c0('0xcc'):if(!_0x167e5a['body'][_0x04c0('0xd4')]&&_0x50e3b7>=0xc8&&_0x50e3b7<=0xce){return _0x1d2d8d[_0x04c0('0x37')]({'read':!![]});}else{logger['error']('SmsAccount,\x20%s,\x20%s,\x20%s',_0x04c0('0x2d'),_0x04c0('0xcc'),util[_0x04c0('0xd3')](_0x167e5a[_0x04c0('0x63')],{'showHidden':![],'depth':null}));}break;case _0x04c0('0x8b'):var _0x1a98bf=_0x167e5a[_0x04c0('0x63')]['results'][0x0];if(_0x1a98bf['status'][_0x04c0('0xcf')]==='DELIVERED'){return _0x1d2d8d[_0x04c0('0x37')]({'read':!![]});}else{logger[_0x04c0('0x27')](_0x04c0('0xad'),_0x04c0('0x2d'),_0x04c0('0x8b'),util[_0x04c0('0xd3')](_0x167e5a[_0x04c0('0x63')],{'showHidden':![],'depth':null}));}break;case _0x04c0('0x90'):if(_0x50e3b7==_0x04c0('0xd5')||_0x50e3b7=='RECEIVED_BY_RECIPIENT'){return _0x1d2d8d[_0x04c0('0x37')]({'read':!![]});}else{logger[_0x04c0('0x27')](_0x04c0('0xad'),_0x04c0('0x2d'),_0x04c0('0x90'),util[_0x04c0('0xd3')](_0x167e5a[_0x04c0('0x63')],{'showHidden':![],'depth':null}));}break;case _0x04c0('0x91'):if(_0x50e3b7==_0x04c0('0xd6')){return _0x1d2d8d[_0x04c0('0x37')]({'read':!![]});}else{logger[_0x04c0('0x27')](_0x04c0('0xad'),_0x04c0('0x2d'),_0x04c0('0x91'),util[_0x04c0('0xd3')](_0x167e5a[_0x04c0('0x63')],{'showHidden':![],'depth':null}));}break;case _0x04c0('0xd1'):if(_0x50e3b7===_0x04c0('0xd7')||_0x50e3b7==='ACCEPTD'){return _0x1d2d8d['update']({'read':!![]});}else{logger[_0x04c0('0x27')](_0x04c0('0xad'),_0x04c0('0x2d'),_0x04c0('0xd1'),util['inspect'](_0x167e5a[_0x04c0('0x63')],{'showHidden':![],'depth':null}));}break;}return _0x1d2d8d;}})[_0x04c0('0x22')](respondWithResult(_0x23ebac,null))['catch'](handleError(_0x23ebac,null));};exports['statusGet']=function(_0x59bfb6,_0x328c5f,_0x2f7c67){var _0x5a9607,_0x387123,_0x43f3d8;return db[_0x04c0('0x40')][_0x04c0('0x59')]({'where':{'id':_0x59bfb6[_0x04c0('0x64')]['id']}})[_0x04c0('0x22')](handleEntityNotFound(_0x328c5f,null))[_0x04c0('0x22')](function(_0x461895){if(_0x461895){_0x43f3d8=_0x461895;logger['debug'](_0x04c0('0xad'),'status',_0x04c0('0xc7'),_0x461895[_0x04c0('0x50')],util[_0x04c0('0xd3')](_0x59bfb6[_0x04c0('0x43')],{'showHidden':![],'depth':null}));switch(_0x461895[_0x04c0('0x50')]){case _0x04c0('0x8d'):if(_0x59bfb6['query'][_0x04c0('0xd8')]&&_0x59bfb6[_0x04c0('0x43')][_0x04c0('0xd9')]){_0x387123=_0x59bfb6[_0x04c0('0x43')][_0x04c0('0xd9')];return db[_0x04c0('0xc4')][_0x04c0('0x59')]({'where':{'messageId':_0x59bfb6[_0x04c0('0x43')][_0x04c0('0xd8')]}});}break;}}})[_0x04c0('0x22')](handleEntityNotFound(_0x328c5f,null))[_0x04c0('0x22')](function(_0xa6ef26){if(_0xa6ef26){_0x5a9607=_0xa6ef26;switch(_0x43f3d8[_0x04c0('0x50')]){case _0x04c0('0x8d'):if(_0x387123==='2'||_0x387123==='6'){return _0x5a9607[_0x04c0('0x37')]({'read':!![]});}else{logger[_0x04c0('0x27')](_0x04c0('0xad'),'status',_0x04c0('0x8d'),util[_0x04c0('0xd3')](_0x59bfb6[_0x04c0('0x43')],{'showHidden':![],'depth':null}));};break;}return _0x5a9607;}})[_0x04c0('0x22')](respondWithResult(_0x328c5f,null))[_0x04c0('0x2b')](handleError(_0x328c5f,null));};exports[_0x04c0('0xda')]=function(_0x1d47e7,_0x2917a9,_0x517b11){return db[_0x04c0('0x40')]['find']({'where':{'id':_0x1d47e7['params']['id']}})[_0x04c0('0x22')](handleEntityNotFound(_0x2917a9,null))[_0x04c0('0x22')](function(_0x246c44){if(_0x246c44){return _0x246c44[_0x04c0('0xda')](_0x1d47e7[_0x04c0('0x63')][_0x04c0('0x6e')],_['omit'](_0x1d47e7['body'],[_0x04c0('0x6e'),'id'])||{})[_0x04c0('0xc3')](function(_0x112b83){for(var _0x5a632a=0x0;_0x5a632a<_0x1d47e7[_0x04c0('0x63')][_0x04c0('0x6e')][_0x04c0('0x58')];_0x5a632a+=0x1){socket[_0x04c0('0xdb')](_0x04c0('0xdc'),{'UserId':Number(_0x1d47e7['body']['ids'][_0x5a632a]),'SmsAccountId':Number(_0x1d47e7[_0x04c0('0x64')]['id'])});}return _0x112b83;});}})[_0x04c0('0x22')](respondWithResult(_0x2917a9,null))['catch'](handleError(_0x2917a9,null));};exports[_0x04c0('0xdd')]=function(_0xf71708,_0x35c647,_0x217294){return db[_0x04c0('0x40')][_0x04c0('0x59')]({'where':{'id':_0xf71708[_0x04c0('0x64')]['id']}})[_0x04c0('0x22')](handleEntityNotFound(_0x35c647,null))[_0x04c0('0x22')](function(_0x3ecde8){if(_0x3ecde8){return _0x3ecde8['removeAgents'](_0xf71708[_0x04c0('0x43')][_0x04c0('0x6e')])[_0x04c0('0x22')](function(){if(_[_0x04c0('0xde')](_0xf71708[_0x04c0('0x43')][_0x04c0('0x6e')])){for(var _0xe88bdb=0x0;_0xe88bdb<_0xf71708['query']['ids'][_0x04c0('0x58')];_0xe88bdb+=0x1){socket['emit'](_0x04c0('0xdf'),{'UserId':Number(_0xf71708[_0x04c0('0x43')][_0x04c0('0x6e')][_0xe88bdb]),'SmsAccountId':Number(_0xf71708['params']['id'])});}}else{socket[_0x04c0('0xdb')](_0x04c0('0xdf'),{'UserId':Number(_0xf71708['query'][_0x04c0('0x6e')]),'SmsAccountId':Number(_0xf71708[_0x04c0('0x64')]['id'])});}});}})['then'](respondWithStatusCode(_0x35c647,null))[_0x04c0('0x2b')](handleError(_0x35c647,null));};exports['getAgents']=function(_0x36facb,_0x34bec6,_0x52c4ff){var _0x3e7b60={};var _0x4331a5={};var _0x3a8baf;var _0x20a152;return db[_0x04c0('0x40')][_0x04c0('0x69')]({'where':{'id':_0x36facb[_0x04c0('0x64')]['id']}})[_0x04c0('0x22')](handleEntityNotFound(_0x34bec6,null))[_0x04c0('0x22')](function(_0x415361){if(_0x415361){_0x3a8baf=_0x415361;_0x4331a5[_0x04c0('0x42')]=_[_0x04c0('0x44')](db[_0x04c0('0xa6')][_0x04c0('0x57')]);_0x4331a5[_0x04c0('0x43')]=_[_0x04c0('0x44')](_0x36facb[_0x04c0('0x43')]);_0x4331a5['filters']=_['intersection'](_0x4331a5[_0x04c0('0x42')],_0x4331a5[_0x04c0('0x43')]);_0x3e7b60['attributes']=_['intersection'](_0x4331a5[_0x04c0('0x42')],qs[_0x04c0('0x47')](_0x36facb[_0x04c0('0x43')][_0x04c0('0x47')]));_0x3e7b60[_0x04c0('0x48')]=_0x3e7b60[_0x04c0('0x48')]['length']?_0x3e7b60[_0x04c0('0x48')]:_0x4331a5[_0x04c0('0x42')];_0x3e7b60[_0x04c0('0x4a')]=qs[_0x04c0('0x4b')](_0x36facb[_0x04c0('0x43')][_0x04c0('0x4b')]);_0x3e7b60[_0x04c0('0x4c')]=qs['filters'](_[_0x04c0('0x4d')](_0x36facb[_0x04c0('0x43')],_0x4331a5[_0x04c0('0x45')]));if(_0x36facb['query'][_0x04c0('0x4e')]){_0x3e7b60[_0x04c0('0x4c')]=_['merge'](_0x3e7b60['where'],{'$or':_[_0x04c0('0x3f')](_0x3e7b60[_0x04c0('0x48')],function(_0x4bb228){var _0xdd30c5={};_0xdd30c5[_0x4bb228]={'$like':'%'+_0x36facb[_0x04c0('0x43')][_0x04c0('0x4e')]+'%'};return _0xdd30c5;})});}_0x3e7b60=_[_0x04c0('0x4f')]({},_0x3e7b60,_0x36facb[_0x04c0('0x52')]);return _0x3a8baf['getAgents'](_0x3e7b60);}})['then'](function(_0x33fbec){if(_0x33fbec){_0x20a152=_0x33fbec[_0x04c0('0x58')];if(!_0x36facb[_0x04c0('0x43')][_0x04c0('0x6a')](_0x04c0('0x49'))){_0x3e7b60[_0x04c0('0x31')]=qs[_0x04c0('0x31')](_0x36facb[_0x04c0('0x43')][_0x04c0('0x31')]);_0x3e7b60['offset']=qs[_0x04c0('0x2f')](_0x36facb[_0x04c0('0x43')][_0x04c0('0x2f')]);}return _0x3a8baf[_0x04c0('0xe0')](_0x3e7b60);}})[_0x04c0('0x22')](function(_0x4fdae7){if(_0x4fdae7){return _0x4fdae7?{'count':_0x20a152,'rows':_0x4fdae7}:null;}})['then'](respondWithResult(_0x34bec6,null))[_0x04c0('0x2b')](handleError(_0x34bec6,null));};
\ No newline at end of file
+var _0x46ab=['removeAnswers','notify','SmsApplication','account','applications','orderBy','priority','Applications','CmContact','ValidationError','no\x20available\x20attributes','difference','createdAt','updatedAt','CompanyId','ListId','mobile','twilio','from','From','Body','messageId','MessageSid','sender','text','connectel','clicksend','message_id','plivo','Text','MessageUUID','infobip','results','csc','originatingAddress','segmentedMessage','fromNumber','replyMessageId','intelepeer','refid','isNil','Sequelize','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','CmList','DESC','list','omit','Contacts','SmsInteraction','spread','interaction','created','autoclose','push','close','unmanaged','*,*,*,*','SmsMessage','UserId','User','agent','waitForTheAssignedAgent','Start','startRouting','receiveMessage','entity\x20found','SmsAccount,\x20%s,\x20%s,\x20%s,\x20%s','text/xml','addApplications','sequelize','transaction','bulkCreate','findAndCountAll','getApplications','Contact','fullname','internal','Tag','Tags','color','tag','body\x20is\x20mandatory\x20and\x20not\x20empty','to\x20is\x20mandatory','List','out','Messages','dataValues','inspect','skebby','skebby_dispatch_id','statusInt','requestid','status_code','groupName','DELIVERED','clickatell','redif','error_code','DELIVERED_TO_GATEWAY','RECEIVED_BY_RECIPIENT','bandwidth','message-delivered','DELIVRD','ACCEPTD','received\x20delivery\x20report\x20from','message-id','state','addAgents','emit','userSmsAccount:save','removeAgents','userSmsAccount:remove','getAgents','eml-format','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','ejs','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','./smsAccount.socket','register','client','http','request','then','info','SmsAccount,\x20%s,\x20%s','request\x20sent','debug','SmsAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','destroy','get','UserProfileResource','stack','name','send','index','Pause','map','SmsAccount','rawAttributes','type','key','model','keys','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','sort','where','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','show','params','mandatoryDispositionPause','length','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','SmsAccounts','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','describe','SmsAccountId','Disposition','getDispositions','order','pick','removeDispositions','ids','CannedAnswer','findOne'];(function(_0x3d4f6a,_0x347e08){var _0x29bdf8=function(_0x244155){while(--_0x244155){_0x3d4f6a['push'](_0x3d4f6a['shift']());}};_0x29bdf8(++_0x347e08);}(_0x46ab,0x15b));var _0xb46a=function(_0x350444,_0xd49b4e){_0x350444=_0x350444-0x0;var _0x29c4b9=_0x46ab[_0x350444];return _0x29c4b9;};'use strict';var emlformat=require(_0xb46a('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xb46a('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xb46a('0x2'));var moment=require(_0xb46a('0x3'));var BPromise=require(_0xb46a('0x4'));var Mustache=require(_0xb46a('0x5'));var util=require(_0xb46a('0x6'));var path=require(_0xb46a('0x7'));var sox=require(_0xb46a('0x8'));var csv=require('to-csv');var ejs=require(_0xb46a('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xb46a('0xa'));var squel=require(_0xb46a('0xb'));var crypto=require(_0xb46a('0xc'));var jsforce=require(_0xb46a('0xd'));var deskjs=require(_0xb46a('0xe'));var toCsv=require(_0xb46a('0xf'));var querystring=require(_0xb46a('0x10'));var Papa=require(_0xb46a('0x11'));var Redis=require(_0xb46a('0x12'));var authService=require(_0xb46a('0x13'));var qs=require(_0xb46a('0x14'));var as=require(_0xb46a('0x15'));var hardwareService=require(_0xb46a('0x16'));var logger=require('../../config/logger')(_0xb46a('0x17'));var utils=require(_0xb46a('0x18'));var config=require(_0xb46a('0x19'));var licenseUtil=require(_0xb46a('0x1a'));var db=require(_0xb46a('0x1b'))['db'];config[_0xb46a('0x1c')]=_[_0xb46a('0x1d')](config[_0xb46a('0x1c')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xb46a('0x1c')]));require(_0xb46a('0x1e'))[_0xb46a('0x1f')](socket);var jayson=require('jayson/promise');var client=jayson[_0xb46a('0x20')][_0xb46a('0x21')]({'port':0x232c});function respondWithRpcPromise(_0x6f971a,_0x173de9,_0x54b78b,_0x5b9493){return new BPromise(function(_0x2f5135,_0x7972a8){var _0x43ceae=_0x5b9493||client;return _0x43ceae[_0xb46a('0x22')](_0x6f971a,_0x54b78b)[_0xb46a('0x23')](function(_0x9c6746){logger[_0xb46a('0x24')](_0xb46a('0x25'),_0x173de9,_0xb46a('0x26'));logger[_0xb46a('0x27')](_0xb46a('0x28'),_0x173de9,_0xb46a('0x26'),JSON[_0xb46a('0x29')](_0x9c6746));if(_0x9c6746[_0xb46a('0x2a')]){if(_0x9c6746[_0xb46a('0x2a')][_0xb46a('0x2b')]===0x1f4){logger[_0xb46a('0x2a')](_0xb46a('0x25'),_0x173de9,_0x9c6746['error'][_0xb46a('0x2c')]);return _0x7972a8(_0x9c6746[_0xb46a('0x2a')]['message']);}logger['error'](_0xb46a('0x25'),_0x173de9,_0x9c6746[_0xb46a('0x2a')][_0xb46a('0x2c')]);return _0x2f5135(_0x9c6746[_0xb46a('0x2a')][_0xb46a('0x2c')]);}else{logger[_0xb46a('0x24')](_0xb46a('0x25'),_0x173de9,'request\x20sent');_0x2f5135(_0x9c6746[_0xb46a('0x2d')][_0xb46a('0x2c')]);}})[_0xb46a('0x2e')](function(_0x38c230){logger[_0xb46a('0x2a')](_0xb46a('0x25'),_0x173de9,_0x38c230);_0x7972a8(_0x38c230);});});}function respondWithStatusCode(_0x591aae,_0x2464be){_0x2464be=_0x2464be||0xcc;return function(_0x208ac1){if(_0x208ac1){return _0x591aae[_0xb46a('0x2f')](_0x2464be);}return _0x591aae[_0xb46a('0x30')](_0x2464be)[_0xb46a('0x31')]();};}function respondWithResult(_0x5691ea,_0x106033){_0x106033=_0x106033||0xc8;return function(_0x6af8cb){if(_0x6af8cb){return _0x5691ea[_0xb46a('0x30')](_0x106033)[_0xb46a('0x32')](_0x6af8cb);}};}function respondWithFilteredResult(_0x3dfdcc,_0x1ddd17){return function(_0x2602d1){if(_0x2602d1){var _0x52db10=typeof _0x1ddd17[_0xb46a('0x33')]===_0xb46a('0x34')&&typeof _0x1ddd17[_0xb46a('0x35')]===_0xb46a('0x34');var _0x46d091=_0x2602d1[_0xb46a('0x36')];var _0x401c2e=_0x52db10?0x0:_0x1ddd17['offset'];var _0x1439f3=_0x52db10?_0x2602d1['count']:_0x1ddd17['offset']+_0x1ddd17['limit'];var _0x48340f;if(_0x1439f3>=_0x46d091){_0x1439f3=_0x46d091;_0x48340f=0xc8;}else{_0x48340f=0xce;}_0x3dfdcc[_0xb46a('0x30')](_0x48340f);return _0x3dfdcc[_0xb46a('0x37')](_0xb46a('0x38'),_0x401c2e+'-'+_0x1439f3+'/'+_0x46d091)[_0xb46a('0x32')](_0x2602d1);}return null;};}function patchUpdates(_0x3253de){return function(_0x365d1b){try{jsonpatch[_0xb46a('0x39')](_0x365d1b,_0x3253de,!![]);}catch(_0x3c3879){return BPromise[_0xb46a('0x3a')](_0x3c3879);}return _0x365d1b[_0xb46a('0x3b')]();};}function saveUpdates(_0x1a9047,_0x23efcf){return function(_0x21a5d5){if(_0x21a5d5){return _0x21a5d5['update'](_0x1a9047)[_0xb46a('0x23')](function(_0x534f03){return _0x534f03;});}return null;};}function removeEntity(_0x26a576,_0x246ed4){return function(_0x2a9466){if(_0x2a9466){return _0x2a9466[_0xb46a('0x3c')]()[_0xb46a('0x23')](function(){var _0x41258a=_0x2a9466[_0xb46a('0x3d')]({'plain':!![]});var _0x341705='SmsAccounts';return db[_0xb46a('0x3e')][_0xb46a('0x3c')]({'where':{'type':_0x341705,'resourceId':_0x41258a['id']}})['then'](function(){return _0x2a9466;});})[_0xb46a('0x23')](function(){_0x26a576[_0xb46a('0x30')](0xcc)['end']();});}};}function handleEntityNotFound(_0x14db67,_0x34838a){return function(_0xc780f2){if(!_0xc780f2){_0x14db67[_0xb46a('0x2f')](0x194);}return _0xc780f2;};}function handleError(_0x3e82b9,_0x249716){_0x249716=_0x249716||0x1f4;return function(_0x88460a){logger[_0xb46a('0x2a')](_0x88460a[_0xb46a('0x3f')]);if(_0x88460a['name']){delete _0x88460a[_0xb46a('0x40')];}_0x3e82b9[_0xb46a('0x30')](_0x249716)[_0xb46a('0x41')](_0x88460a);};}exports[_0xb46a('0x42')]=function(_0x25f1ea,_0x77506){var _0x117c69={'include':[{'model':db[_0xb46a('0x43')],'as':'mandatoryDispositionPause'}]},_0x1b6b5c={},_0x742bb6={'count':0x0,'rows':[]};var _0x287059=_[_0xb46a('0x44')](db[_0xb46a('0x45')][_0xb46a('0x46')],function(_0x547ef6){return{'name':_0x547ef6['fieldName'],'type':_0x547ef6[_0xb46a('0x47')][_0xb46a('0x48')]};});_0x1b6b5c[_0xb46a('0x49')]=_[_0xb46a('0x44')](_0x287059,_0xb46a('0x40'));_0x1b6b5c['query']=_[_0xb46a('0x4a')](_0x25f1ea[_0xb46a('0x4b')]);_0x1b6b5c[_0xb46a('0x4c')]=_[_0xb46a('0x4d')](_0x1b6b5c[_0xb46a('0x49')],_0x1b6b5c[_0xb46a('0x4b')]);_0x117c69[_0xb46a('0x4e')]=_['intersection'](_0x1b6b5c[_0xb46a('0x49')],qs[_0xb46a('0x4f')](_0x25f1ea[_0xb46a('0x4b')][_0xb46a('0x4f')]));_0x117c69[_0xb46a('0x4e')]=_0x117c69[_0xb46a('0x4e')]['length']?_0x117c69['attributes']:_0x1b6b5c[_0xb46a('0x49')];if(!_0x25f1ea['query'][_0xb46a('0x50')](_0xb46a('0x51'))){_0x117c69[_0xb46a('0x35')]=qs['limit'](_0x25f1ea[_0xb46a('0x4b')]['limit']);_0x117c69['offset']=qs[_0xb46a('0x33')](_0x25f1ea[_0xb46a('0x4b')][_0xb46a('0x33')]);}_0x117c69['order']=qs[_0xb46a('0x52')](_0x25f1ea[_0xb46a('0x4b')][_0xb46a('0x52')]);_0x117c69[_0xb46a('0x53')]=qs[_0xb46a('0x4c')](_['pick'](_0x25f1ea[_0xb46a('0x4b')],_0x1b6b5c[_0xb46a('0x4c')]),_0x287059);if(_0x25f1ea[_0xb46a('0x4b')][_0xb46a('0x54')]){_0x117c69['where']=_[_0xb46a('0x55')](_0x117c69['where'],{'$or':_[_0xb46a('0x44')](_0x287059,function(_0x383877){if(_0x383877[_0xb46a('0x47')]!==_0xb46a('0x56')){var _0x433138={};_0x433138[_0x383877['name']]={'$like':'%'+_0x25f1ea['query'][_0xb46a('0x54')]+'%'};return _0x433138;}})});}_0x117c69=_[_0xb46a('0x55')]({},_0x117c69,_0x25f1ea[_0xb46a('0x57')]);var _0x4c2385={'where':_0x117c69[_0xb46a('0x53')]};return db[_0xb46a('0x45')][_0xb46a('0x36')](_0x4c2385)[_0xb46a('0x23')](function(_0x5c1aac){_0x742bb6[_0xb46a('0x36')]=_0x5c1aac;if(_0x25f1ea[_0xb46a('0x4b')][_0xb46a('0x58')]){_0x117c69[_0xb46a('0x59')]=[{'all':!![]}];}return db[_0xb46a('0x45')][_0xb46a('0x5a')](_0x117c69);})[_0xb46a('0x23')](function(_0x3645cc){_0x742bb6[_0xb46a('0x5b')]=_0x3645cc;return _0x742bb6;})[_0xb46a('0x23')](respondWithFilteredResult(_0x77506,_0x117c69))[_0xb46a('0x2e')](handleError(_0x77506,null));};exports[_0xb46a('0x5c')]=function(_0x461824,_0x17d448){var _0x33d5cb={'raw':![],'where':{'id':_0x461824[_0xb46a('0x5d')]['id']},'include':[{'model':db[_0xb46a('0x43')],'as':_0xb46a('0x5e')}]},_0xa86b4e={};_0xa86b4e['model']=_[_0xb46a('0x4a')](db['SmsAccount'][_0xb46a('0x46')]);_0xa86b4e[_0xb46a('0x4b')]=_[_0xb46a('0x4a')](_0x461824[_0xb46a('0x4b')]);_0xa86b4e['filters']=_[_0xb46a('0x4d')](_0xa86b4e[_0xb46a('0x49')],_0xa86b4e[_0xb46a('0x4b')]);_0x33d5cb[_0xb46a('0x4e')]=_[_0xb46a('0x4d')](_0xa86b4e[_0xb46a('0x49')],qs[_0xb46a('0x4f')](_0x461824['query'][_0xb46a('0x4f')]));_0x33d5cb[_0xb46a('0x4e')]=_0x33d5cb[_0xb46a('0x4e')][_0xb46a('0x5f')]?_0x33d5cb[_0xb46a('0x4e')]:_0xa86b4e[_0xb46a('0x49')];if(_0x461824[_0xb46a('0x4b')][_0xb46a('0x58')]){_0x33d5cb[_0xb46a('0x59')]=[{'all':!![]}];}_0x33d5cb=_['merge']({},_0x33d5cb,_0x461824[_0xb46a('0x57')]);return db[_0xb46a('0x45')][_0xb46a('0x60')](_0x33d5cb)[_0xb46a('0x23')](handleEntityNotFound(_0x17d448,null))[_0xb46a('0x23')](respondWithResult(_0x17d448,null))[_0xb46a('0x2e')](handleError(_0x17d448,null));};exports[_0xb46a('0x61')]=function(_0x535ffa,_0x18e21a){return db[_0xb46a('0x45')][_0xb46a('0x61')](_0x535ffa[_0xb46a('0x62')],{})[_0xb46a('0x23')](function(_0x935f36){var _0x51f1b0=_0x535ffa[_0xb46a('0x63')][_0xb46a('0x3d')]({'plain':!![]});if(!_0x51f1b0)throw new Error(_0xb46a('0x64'));if(_0x51f1b0[_0xb46a('0x65')]===_0xb46a('0x63')){var _0x1054d6=_0x935f36[_0xb46a('0x3d')]({'plain':!![]});var _0x33fb29=_0xb46a('0x66');return db[_0xb46a('0x67')][_0xb46a('0x60')]({'where':{'name':_0x33fb29,'userProfileId':_0x51f1b0[_0xb46a('0x68')]},'raw':!![]})[_0xb46a('0x23')](function(_0x1e48b1){if(_0x1e48b1&&_0x1e48b1['autoAssociation']===0x0){return db[_0xb46a('0x3e')][_0xb46a('0x61')]({'name':_0x1054d6[_0xb46a('0x40')],'resourceId':_0x1054d6['id'],'type':_0x1e48b1[_0xb46a('0x40')],'sectionId':_0x1e48b1['id']},{})['then'](function(){return _0x935f36;});}else{return _0x935f36;}})[_0xb46a('0x2e')](function(_0x513260){logger[_0xb46a('0x2a')](_0xb46a('0x69'),_0x513260);throw _0x513260;});}return _0x935f36;})[_0xb46a('0x23')](respondWithResult(_0x18e21a,0xc9))[_0xb46a('0x2e')](handleError(_0x18e21a,null));};exports[_0xb46a('0x6a')]=function(_0x3bbd73,_0x61b4b8){if(_0x3bbd73[_0xb46a('0x62')]['id']){delete _0x3bbd73[_0xb46a('0x62')]['id'];}return db['SmsAccount'][_0xb46a('0x60')]({'where':{'id':_0x3bbd73['params']['id']},'include':[{'model':db['Pause'],'as':_0xb46a('0x5e')}]})[_0xb46a('0x23')](handleEntityNotFound(_0x61b4b8,null))[_0xb46a('0x23')](saveUpdates(_0x3bbd73['body'],null))['then'](respondWithResult(_0x61b4b8,null))['catch'](handleError(_0x61b4b8,null));};exports[_0xb46a('0x3c')]=function(_0x57edad,_0x347ae3){return db['SmsAccount']['find']({'where':{'id':_0x57edad[_0xb46a('0x5d')]['id']}})['then'](handleEntityNotFound(_0x347ae3,null))[_0xb46a('0x23')](removeEntity(_0x347ae3,null))[_0xb46a('0x2e')](handleError(_0x347ae3,null));};exports[_0xb46a('0x6b')]=function(_0x120916,_0x146486){return db[_0xb46a('0x45')][_0xb46a('0x6b')]()[_0xb46a('0x23')](respondWithResult(_0x146486,null))[_0xb46a('0x2e')](handleError(_0x146486,null));};exports['addDisposition']=function(_0x3f522d,_0x3d8c38,_0x1d817a){if(_0x3f522d[_0xb46a('0x62')]['id']){delete _0x3f522d[_0xb46a('0x62')]['id'];}return db[_0xb46a('0x45')]['find']({'where':{'id':_0x3f522d['params']['id']}})[_0xb46a('0x23')](handleEntityNotFound(_0x3d8c38,null))[_0xb46a('0x23')](function(_0x585ed7){if(_0x585ed7){_0x3f522d[_0xb46a('0x62')][_0xb46a('0x6c')]=_0x585ed7['id'];return db[_0xb46a('0x6d')][_0xb46a('0x61')](_0x3f522d[_0xb46a('0x62')]);}})['then'](respondWithResult(_0x3d8c38,null))[_0xb46a('0x2e')](handleError(_0x3d8c38,null));};exports[_0xb46a('0x6e')]=function(_0xab5e50,_0x4f26e1,_0x38059f){var _0x5c5bd0={'raw':![],'where':{}};var _0x1ff27a={};var _0x3c16ba={'count':0x0,'rows':[]};return db['SmsAccount']['findOne']({'where':{'id':_0xab5e50[_0xb46a('0x5d')]['id']}})['then'](handleEntityNotFound(_0x4f26e1,null))[_0xb46a('0x23')](function(_0xdd1758){if(_0xdd1758){_0x1ff27a[_0xb46a('0x49')]=_[_0xb46a('0x4a')](db[_0xb46a('0x6d')]['rawAttributes']);_0x1ff27a[_0xb46a('0x4b')]=_[_0xb46a('0x4a')](_0xab5e50[_0xb46a('0x4b')]);_0x1ff27a[_0xb46a('0x4c')]=_['intersection'](_0x1ff27a['model'],_0x1ff27a[_0xb46a('0x4b')]);_0x5c5bd0['attributes']=_[_0xb46a('0x4d')](_0x1ff27a[_0xb46a('0x49')],qs[_0xb46a('0x4f')](_0xab5e50[_0xb46a('0x4b')]['fields']));_0x5c5bd0[_0xb46a('0x4e')]=_0x5c5bd0[_0xb46a('0x4e')]['length']?_0x5c5bd0[_0xb46a('0x4e')]:_0x1ff27a[_0xb46a('0x49')];if(!_0xab5e50[_0xb46a('0x4b')]['hasOwnProperty']('nolimit')){_0x5c5bd0[_0xb46a('0x35')]=qs[_0xb46a('0x35')](_0xab5e50[_0xb46a('0x4b')][_0xb46a('0x35')]);_0x5c5bd0[_0xb46a('0x33')]=qs['offset'](_0xab5e50[_0xb46a('0x4b')][_0xb46a('0x33')]);}_0x5c5bd0[_0xb46a('0x6f')]=qs[_0xb46a('0x52')](_0xab5e50[_0xb46a('0x4b')][_0xb46a('0x52')]);_0x5c5bd0[_0xb46a('0x53')]=qs[_0xb46a('0x4c')](_[_0xb46a('0x70')](_0xab5e50[_0xb46a('0x4b')],_0x1ff27a[_0xb46a('0x4c')]));_0x5c5bd0[_0xb46a('0x53')]['SmsAccountId']=_0xdd1758['id'];if(_0xab5e50[_0xb46a('0x4b')]['filter']){_0x5c5bd0[_0xb46a('0x53')]=_[_0xb46a('0x55')](_0x5c5bd0[_0xb46a('0x53')],{'$or':_[_0xb46a('0x44')](_0x5c5bd0[_0xb46a('0x4e')],function(_0x34a0aa){var _0x498797={};_0x498797[_0x34a0aa]={'$like':'%'+_0xab5e50[_0xb46a('0x4b')][_0xb46a('0x54')]+'%'};return _0x498797;})});}_0x5c5bd0=_[_0xb46a('0x55')]({},_0x5c5bd0,_0xab5e50['options']);return db[_0xb46a('0x6d')]['count']({'where':_0x5c5bd0[_0xb46a('0x53')]})['then'](function(_0x46080a){_0x3c16ba[_0xb46a('0x36')]=_0x46080a;if(_0xab5e50[_0xb46a('0x4b')][_0xb46a('0x58')]){_0x5c5bd0[_0xb46a('0x59')]=[{'all':!![]}];}return db['Disposition'][_0xb46a('0x5a')](_0x5c5bd0);})[_0xb46a('0x23')](function(_0x16a523){_0x3c16ba[_0xb46a('0x5b')]=_0x16a523;return _0x3c16ba;});}})['then'](respondWithFilteredResult(_0x4f26e1,_0x5c5bd0))['catch'](handleError(_0x4f26e1,null));};exports['removeDispositions']=function(_0x300378,_0x593d4c,_0x2716c1){return db[_0xb46a('0x45')][_0xb46a('0x60')]({'where':{'id':_0x300378[_0xb46a('0x5d')]['id']}})[_0xb46a('0x23')](handleEntityNotFound(_0x593d4c,null))[_0xb46a('0x23')](function(_0x3f6dbc){if(_0x3f6dbc){return _0x3f6dbc[_0xb46a('0x71')](_0x300378[_0xb46a('0x4b')][_0xb46a('0x72')]);}})[_0xb46a('0x23')](respondWithStatusCode(_0x593d4c,null))[_0xb46a('0x2e')](handleError(_0x593d4c,null));};exports['addAnswer']=function(_0x220bd3,_0x256b6f,_0x12755e){if(_0x220bd3['body']['id']){delete _0x220bd3[_0xb46a('0x62')]['id'];}return db['SmsAccount']['find']({'where':{'id':_0x220bd3[_0xb46a('0x5d')]['id']}})[_0xb46a('0x23')](handleEntityNotFound(_0x256b6f,null))[_0xb46a('0x23')](function(_0x1c6249){if(_0x1c6249){_0x220bd3[_0xb46a('0x62')]['SmsAccountId']=_0x1c6249['id'];return db[_0xb46a('0x73')][_0xb46a('0x61')](_0x220bd3[_0xb46a('0x62')]);}})[_0xb46a('0x23')](respondWithResult(_0x256b6f,null))[_0xb46a('0x2e')](handleError(_0x256b6f,null));};exports['getAnswers']=function(_0xa3e626,_0x387f06,_0x31b274){var _0x2aba17={'raw':![],'where':{}};var _0xead1ea={};var _0x3452ad={'count':0x0,'rows':[]};return db['SmsAccount'][_0xb46a('0x74')]({'where':{'id':_0xa3e626[_0xb46a('0x5d')]['id']}})[_0xb46a('0x23')](handleEntityNotFound(_0x387f06,null))[_0xb46a('0x23')](function(_0x3bbf37){if(_0x3bbf37){_0xead1ea[_0xb46a('0x49')]=_[_0xb46a('0x4a')](db[_0xb46a('0x73')]['rawAttributes']);_0xead1ea[_0xb46a('0x4b')]=_[_0xb46a('0x4a')](_0xa3e626[_0xb46a('0x4b')]);_0xead1ea[_0xb46a('0x4c')]=_[_0xb46a('0x4d')](_0xead1ea['model'],_0xead1ea[_0xb46a('0x4b')]);_0x2aba17[_0xb46a('0x4e')]=_[_0xb46a('0x4d')](_0xead1ea[_0xb46a('0x49')],qs[_0xb46a('0x4f')](_0xa3e626[_0xb46a('0x4b')][_0xb46a('0x4f')]));_0x2aba17[_0xb46a('0x4e')]=_0x2aba17[_0xb46a('0x4e')]['length']?_0x2aba17['attributes']:_0xead1ea['model'];if(!_0xa3e626[_0xb46a('0x4b')][_0xb46a('0x50')](_0xb46a('0x51'))){_0x2aba17['limit']=qs[_0xb46a('0x35')](_0xa3e626['query'][_0xb46a('0x35')]);_0x2aba17[_0xb46a('0x33')]=qs['offset'](_0xa3e626['query']['offset']);}_0x2aba17[_0xb46a('0x6f')]=qs['sort'](_0xa3e626[_0xb46a('0x4b')][_0xb46a('0x52')]);_0x2aba17['where']=qs[_0xb46a('0x4c')](_[_0xb46a('0x70')](_0xa3e626['query'],_0xead1ea[_0xb46a('0x4c')]));_0x2aba17[_0xb46a('0x53')][_0xb46a('0x6c')]=_0x3bbf37['id'];if(_0xa3e626[_0xb46a('0x4b')][_0xb46a('0x54')]){_0x2aba17[_0xb46a('0x53')]=_[_0xb46a('0x55')](_0x2aba17['where'],{'$or':_[_0xb46a('0x44')](_0x2aba17['attributes'],function(_0x2efa27){var _0xbb7419={};_0xbb7419[_0x2efa27]={'$like':'%'+_0xa3e626[_0xb46a('0x4b')][_0xb46a('0x54')]+'%'};return _0xbb7419;})});}_0x2aba17=_[_0xb46a('0x55')]({},_0x2aba17,_0xa3e626['options']);return db[_0xb46a('0x73')][_0xb46a('0x36')]({'where':_0x2aba17['where']})[_0xb46a('0x23')](function(_0x1c5b18){_0x3452ad[_0xb46a('0x36')]=_0x1c5b18;if(_0xa3e626['query']['includeAll']){_0x2aba17['include']=[{'all':!![]}];}return db['CannedAnswer']['findAll'](_0x2aba17);})[_0xb46a('0x23')](function(_0xe6ee19){_0x3452ad[_0xb46a('0x5b')]=_0xe6ee19;return _0x3452ad;});}})[_0xb46a('0x23')](respondWithFilteredResult(_0x387f06,_0x2aba17))[_0xb46a('0x2e')](handleError(_0x387f06,null));};exports[_0xb46a('0x75')]=function(_0x38622f,_0x1620bd,_0x1a1fe7){return db['SmsAccount']['find']({'where':{'id':_0x38622f[_0xb46a('0x5d')]['id']}})[_0xb46a('0x23')](handleEntityNotFound(_0x1620bd,null))[_0xb46a('0x23')](function(_0x14b09d){if(_0x14b09d){return _0x14b09d[_0xb46a('0x75')](_0x38622f['query'][_0xb46a('0x72')]);}})[_0xb46a('0x23')](respondWithStatusCode(_0x1620bd,null))[_0xb46a('0x2e')](handleError(_0x1620bd,null));};exports[_0xb46a('0x76')]=function(_0x324b89,_0x4d904a,_0x2feaa2){var _0x521b00={'channel':'sms'};var _0x23182f=[];var _0x4af12c=[];var _0x4d2c8d={};return db[_0xb46a('0x45')][_0xb46a('0x60')]({'where':{'id':_0x324b89[_0xb46a('0x5d')]['id']},'include':[{'model':db[_0xb46a('0x77')],'as':'Applications'}]})[_0xb46a('0x23')](handleEntityNotFound(_0x4d904a,null))['then'](function(_0x10e290){_0x521b00[_0xb46a('0x78')]=_0x10e290;_0x521b00[_0xb46a('0x79')]=_[_0xb46a('0x7a')](_0x10e290['Applications'],[_0xb46a('0x7b')],['asc']);if(_0x521b00[_0xb46a('0x78')][_0xb46a('0x7c')]){delete _0x521b00[_0xb46a('0x78')][_0xb46a('0x7c')];}return db[_0xb46a('0x7d')]['describe']();})[_0xb46a('0x23')](function(_0x21b8b1){if(!_0x21b8b1){throw new db['Sequelize'][(_0xb46a('0x7e'))](_0xb46a('0x7f'));}_0x23182f=_[_0xb46a('0x80')](_[_0xb46a('0x4a')](_0x21b8b1),[_0xb46a('0x81'),_0xb46a('0x82')]);_0x4af12c=_['difference'](_[_0xb46a('0x4a')](_0x21b8b1),[_0xb46a('0x81'),_0xb46a('0x82'),_0xb46a('0x83'),_0xb46a('0x84')]);_0x521b00[_0xb46a('0x62')]={'mapKey':_0xb46a('0x85')};if(_0x521b00[_0xb46a('0x78')][_0xb46a('0x47')]){switch(_0x521b00[_0xb46a('0x78')]['type']){case _0xb46a('0x86'):_0x521b00[_0xb46a('0x62')][_0xb46a('0x87')]=_0x324b89[_0xb46a('0x62')][_0xb46a('0x88')];_0x521b00[_0xb46a('0x62')]['body']=_0x324b89['body'][_0xb46a('0x89')];_0x521b00['body'][_0xb46a('0x8a')]=_0x324b89['body'][_0xb46a('0x8b')];break;case'skebby':_0x521b00['body'][_0xb46a('0x87')]='+'+_0x324b89[_0xb46a('0x62')][_0xb46a('0x8c')];_0x521b00['body'][_0xb46a('0x62')]=_0x324b89['body'][_0xb46a('0x8d')];break;case _0xb46a('0x8e'):_0x521b00['body'][_0xb46a('0x87')]=_0x324b89[_0xb46a('0x62')]['from'];_0x521b00[_0xb46a('0x62')]['body']=_0x324b89[_0xb46a('0x62')][_0xb46a('0x2c')];break;case _0xb46a('0x8f'):_0x521b00[_0xb46a('0x62')]['from']=_0x324b89[_0xb46a('0x62')][_0xb46a('0x87')];_0x521b00['body']['body']=_0x324b89[_0xb46a('0x62')][_0xb46a('0x62')];_0x521b00['body'][_0xb46a('0x8a')]=_0x324b89[_0xb46a('0x62')][_0xb46a('0x90')];break;case _0xb46a('0x91'):_0x521b00['body']['from']=_0x324b89['body'][_0xb46a('0x88')];_0x521b00[_0xb46a('0x62')][_0xb46a('0x62')]=_0x324b89[_0xb46a('0x62')][_0xb46a('0x92')];_0x521b00[_0xb46a('0x62')][_0xb46a('0x8a')]=_0x324b89[_0xb46a('0x62')][_0xb46a('0x93')];break;case _0xb46a('0x94'):_0x521b00[_0xb46a('0x62')][_0xb46a('0x87')]='+'+_0x324b89[_0xb46a('0x62')][_0xb46a('0x95')][0x0]['from'];_0x521b00[_0xb46a('0x62')][_0xb46a('0x62')]=_0x324b89[_0xb46a('0x62')][_0xb46a('0x95')][0x0][_0xb46a('0x8d')];_0x521b00[_0xb46a('0x62')]['messageId']=_0x324b89['body'][_0xb46a('0x95')][0x0][_0xb46a('0x8a')];break;case _0xb46a('0x96'):_0x521b00[_0xb46a('0x62')][_0xb46a('0x87')]=_0x324b89[_0xb46a('0x62')][_0xb46a('0x97')];_0x521b00['body'][_0xb46a('0x62')]=_0x324b89[_0xb46a('0x62')][_0xb46a('0x98')]['message'];break;case'clickatell':_0x521b00[_0xb46a('0x62')][_0xb46a('0x87')]=_0x324b89[_0xb46a('0x62')][_0xb46a('0x99')];_0x521b00[_0xb46a('0x62')][_0xb46a('0x62')]=_0x324b89[_0xb46a('0x62')]['text'];_0x521b00[_0xb46a('0x62')]['messageId']=_0x324b89['body'][_0xb46a('0x9a')];break;case'bandwidth':_0x521b00[_0xb46a('0x62')][_0xb46a('0x8a')]=_0x324b89[_0xb46a('0x62')][0x0][_0xb46a('0x2c')]['id'];_0x521b00['body'][_0xb46a('0x87')]=_0x324b89[_0xb46a('0x62')][0x0][_0xb46a('0x2c')][_0xb46a('0x87')];_0x521b00['body'][_0xb46a('0x62')]=_0x324b89[_0xb46a('0x62')][0x0][_0xb46a('0x2c')][_0xb46a('0x8d')];break;case _0xb46a('0x9b'):_0x521b00[_0xb46a('0x62')]['from']=_0x324b89['body'][_0xb46a('0x87')];_0x521b00[_0xb46a('0x62')][_0xb46a('0x62')]=_0x324b89[_0xb46a('0x62')][_0xb46a('0x2c')];_0x521b00[_0xb46a('0x62')]['messageId']=_0x324b89[_0xb46a('0x62')][_0xb46a('0x9c')];break;}}if(_0x521b00[_0xb46a('0x62')]['id']){delete _0x521b00[_0xb46a('0x62')]['id'];}if(_[_0xb46a('0x9d')](_0x521b00[_0xb46a('0x62')][_0xb46a('0x87')])){throw new db[(_0xb46a('0x9e'))][(_0xb46a('0x7e'))]('from\x20is\x20mandatory');}if(_[_0xb46a('0x9d')](_0x521b00['body'][_0xb46a('0x62')])||_0x521b00[_0xb46a('0x62')][_0xb46a('0x62')]===''){throw new db[(_0xb46a('0x9e'))][(_0xb46a('0x7e'))]('body\x20is\x20mandatory\x20and\x20not\x20empty');}if(_[_0xb46a('0x9d')](_0x521b00['body'][_0xb46a('0x9f')])){throw new db['Sequelize'][(_0xb46a('0x7e'))](_0xb46a('0xa0')+_0x4af12c);}if(!_['includes'](_0x4af12c,_0x521b00[_0xb46a('0x62')]['mapKey'])){throw new db[(_0xb46a('0x9e'))][(_0xb46a('0x7e'))](_0xb46a('0xa1')+_0x4af12c);}_0x4d2c8d[_0x521b00[_0xb46a('0x62')][_0xb46a('0x9f')]]=_0x521b00[_0xb46a('0x62')]['from'];return db[_0xb46a('0xa2')][_0xb46a('0x60')]({'where':{'id':_0x521b00[_0xb46a('0x78')][_0xb46a('0x84')]},'include':[{'model':db['CmContact'],'as':'Contacts','where':_0x4d2c8d,'limit':0x1,'order':[[_0xb46a('0x82'),_0xb46a('0xa3')]]}]});})[_0xb46a('0x23')](handleEntityNotFound(_0x4d904a,null))[_0xb46a('0x23')](function(_0x1dced8){if(_0x1dced8){_0x521b00[_0xb46a('0xa4')]=_[_0xb46a('0xa5')](_0x1dced8,['Contacts']);if(_0x1dced8[_0xb46a('0xa6')][_0xb46a('0x5f')]){return _0x1dced8[_0xb46a('0xa6')][0x0];}var _0x2dc80d=_[_0xb46a('0x1d')](_0x521b00[_0xb46a('0x62')],{'firstName':_0x521b00['body'][_0xb46a('0x87')],'ListId':_0x1dced8['id']});_0x2dc80d[_0x521b00[_0xb46a('0x62')][_0xb46a('0x9f')]]=_0x521b00[_0xb46a('0x62')][_0xb46a('0x87')];return db['CmContact'][_0xb46a('0x61')](_0x2dc80d,{'fields':_0x23182f,'raw':!![]});}})[_0xb46a('0x23')](handleEntityNotFound(_0x4d904a,null))[_0xb46a('0x23')](function(_0x227fce){if(_0x227fce){_0x521b00['contact']=_0x227fce;var _0xc11d32={'ContactId':_0x227fce['id'],'phone':_0x521b00['body'][_0xb46a('0x87')],'SmsAccountId':_0x324b89[_0xb46a('0x5d')]['id']};var _0x1d6684={'ContactId':_0x227fce['id'],'SmsAccountId':_0x324b89[_0xb46a('0x5d')]['id'],'closed':![]};return db[_0xb46a('0xa7')]['find']({'where':_0x1d6684})['then'](function(_0x467ab2){if(_0x467ab2){return[_0x467ab2,![]];}return db[_0xb46a('0xa7')][_0xb46a('0x61')](_0xc11d32)[_0xb46a('0x23')](function(_0x51d06a){return[_0x51d06a,!![]];});});}})[_0xb46a('0xa8')](function(_0x4dcdbe,_0x53d21c){_0x521b00[_0xb46a('0xa9')]=_0x4dcdbe[_0xb46a('0x3d')]({'plain':!![]});_0x521b00[_0xb46a('0xa9')][_0xb46a('0xaa')]=![];if(_0x53d21c){if(_0x521b00['account'][_0xb46a('0xab')]){_0x521b00[_0xb46a('0x79')][_0xb46a('0xac')]({'id':0x0,'priority':_0x521b00['applications']['length']+0x1,'app':_0xb46a('0xad'),'appdata':_0xb46a('0xae'),'interval':_0xb46a('0xaf')});}_0x521b00[_0xb46a('0xa9')][_0xb46a('0xaa')]=!![];}return db[_0xb46a('0xb0')][_0xb46a('0x61')]({'phone':_0x521b00['body']['from'],'messageId':_0x521b00[_0xb46a('0x62')]['messageId'],'body':_0x521b00[_0xb46a('0x62')]['body'],'SmsAccountId':_0x324b89[_0xb46a('0x5d')]['id'],'SmsInteractionId':_0x4dcdbe['id'],'direction':'in','ContactId':_0x4dcdbe['ContactId'],'AttachmentId':_0x521b00[_0xb46a('0x62')]['AttachmentId']});})[_0xb46a('0x23')](function(_0x21aa79){_0x521b00[_0xb46a('0x2c')]=_0x21aa79;if(_0x521b00['interaction'][_0xb46a('0xb1')]){return db[_0xb46a('0xb2')][_0xb46a('0x60')]({'attributes':['id',_0xb46a('0x40')],'where':{'id':_0x521b00[_0xb46a('0xa9')][_0xb46a('0xb1')]}})[_0xb46a('0x23')](function(_0x23eabb){if(_0x23eabb){_0x521b00[_0xb46a('0x79')]['unshift']({'id':0x0,'priority':0x0,'app':_0xb46a('0xb3'),'appdata':_0x23eabb[_0xb46a('0x40')]+','+(_0x521b00[_0xb46a('0x78')][_0xb46a('0xb4')]||0xa),'interval':_0xb46a('0xaf')});}return respondWithRpcPromise(_0xb46a('0xb5'),'startRouting',_0x521b00);});}return respondWithRpcPromise(_0xb46a('0xb5'),_0xb46a('0xb6'),_0x521b00);})[_0xb46a('0x23')](function(_0x2f5305){if(_0x2f5305){var _0x47b5c1=0xc8;var _0x139f30=_0xb46a('0xb7');logger[_0xb46a('0x24')](_0xb46a('0x28'),_0x139f30,_0x47b5c1,_0xb46a('0xb8'));logger[_0xb46a('0x27')](_0xb46a('0xb9'),_0x139f30,_0x47b5c1,_0xb46a('0xb8'),JSON['stringify'](_0x2f5305));if(_0x521b00[_0xb46a('0x78')][_0xb46a('0x47')]==='twilio'){return _0x4d904a[_0xb46a('0x30')](_0x47b5c1)[_0xb46a('0x37')]('Content-Type',_0xb46a('0xba'))[_0xb46a('0x41')]('<?xml\x20version=\x221.0\x22\x20encoding=\x22UTF-8\x22?>\x0a<Response></Response>');}else{return _0x4d904a['status'](_0x47b5c1)[_0xb46a('0x32')](_0x2f5305);}}})['catch'](handleError(_0x4d904a,null));};exports[_0xb46a('0xbb')]=function(_0x59f663,_0x7be7c2,_0x4cfa23){return db['SmsAccount'][_0xb46a('0x74')]({'where':{'id':_0x59f663[_0xb46a('0x5d')]['id']}})[_0xb46a('0x23')](handleEntityNotFound(_0x7be7c2,null))[_0xb46a('0x23')](function(_0x64d24b){if(_0x64d24b){return db[_0xb46a('0xbc')][_0xb46a('0xbd')](function(_0xf2b0c2){return db[_0xb46a('0x77')][_0xb46a('0x3c')]({'where':{'SmsAccountId':_0x59f663['params']['id']},'transaction':_0xf2b0c2})[_0xb46a('0x23')](function(_0x4c8736){var _0x5ecd46=_['map'](_0x59f663[_0xb46a('0x62')],function(_0x3f8ae0){_0x3f8ae0[_0xb46a('0x6c')]=_0x59f663['params']['id'];return _0x3f8ae0;});return db[_0xb46a('0x77')][_0xb46a('0xbe')](_0x5ecd46,{'transaction':_0xf2b0c2});});})[_0xb46a('0x23')](function(){return db[_0xb46a('0x77')][_0xb46a('0xbf')]({'where':{'SmsAccountId':_0x59f663[_0xb46a('0x5d')]['id']},'order':_0xb46a('0x7b')});});}})['then'](respondWithResult(_0x7be7c2,null))[_0xb46a('0x2e')](handleError(_0x7be7c2,null));};exports[_0xb46a('0xc0')]=function(_0xad7417,_0x557e72,_0x564ec6){var _0x2279a1={};var _0x27cb33={};var _0x41d1df;var _0x3cfab5;return db[_0xb46a('0x45')][_0xb46a('0x74')]({'where':{'id':_0xad7417[_0xb46a('0x5d')]['id']}})[_0xb46a('0x23')](handleEntityNotFound(_0x557e72,null))[_0xb46a('0x23')](function(_0x345e7a){if(_0x345e7a){_0x41d1df=_0x345e7a;_0x27cb33['model']=_[_0xb46a('0x4a')](db[_0xb46a('0x77')][_0xb46a('0x46')]);_0x27cb33['query']=_[_0xb46a('0x4a')](_0xad7417[_0xb46a('0x4b')]);_0x27cb33['filters']=_[_0xb46a('0x4d')](_0x27cb33[_0xb46a('0x49')],_0x27cb33[_0xb46a('0x4b')]);_0x2279a1[_0xb46a('0x4e')]=_[_0xb46a('0x4d')](_0x27cb33[_0xb46a('0x49')],qs[_0xb46a('0x4f')](_0xad7417['query'][_0xb46a('0x4f')]));_0x2279a1[_0xb46a('0x4e')]=_0x2279a1['attributes'][_0xb46a('0x5f')]?_0x2279a1[_0xb46a('0x4e')]:_0x27cb33[_0xb46a('0x49')];_0x2279a1['order']=qs[_0xb46a('0x52')](_0xad7417[_0xb46a('0x4b')]['sort']);_0x2279a1[_0xb46a('0x53')]=qs[_0xb46a('0x4c')](_[_0xb46a('0x70')](_0xad7417['query'],_0x27cb33['filters']));if(_0xad7417['query'][_0xb46a('0x54')]){_0x2279a1[_0xb46a('0x53')]=_[_0xb46a('0x55')](_0x2279a1[_0xb46a('0x53')],{'$or':_['map'](_0x2279a1[_0xb46a('0x4e')],function(_0x45c20e){var _0x3097a4={};_0x3097a4[_0x45c20e]={'$like':'%'+_0xad7417[_0xb46a('0x4b')]['filter']+'%'};return _0x3097a4;})});}_0x2279a1=_[_0xb46a('0x55')]({},_0x2279a1,_0xad7417[_0xb46a('0x57')]);return _0x41d1df[_0xb46a('0xc0')](_0x2279a1);}})[_0xb46a('0x23')](function(_0x4b6e2a){if(_0x4b6e2a){_0x3cfab5=_0x4b6e2a[_0xb46a('0x5f')];if(!_0xad7417[_0xb46a('0x4b')][_0xb46a('0x50')]('nolimit')){_0x2279a1['limit']=qs['limit'](_0xad7417[_0xb46a('0x4b')]['limit']);_0x2279a1[_0xb46a('0x33')]=qs[_0xb46a('0x33')](_0xad7417[_0xb46a('0x4b')][_0xb46a('0x33')]);}return _0x41d1df[_0xb46a('0xc0')](_0x2279a1);}})['then'](function(_0x31ba90){if(_0x31ba90){return _0x31ba90?{'count':_0x3cfab5,'rows':_0x31ba90}:null;}})['then'](respondWithResult(_0x557e72,null))[_0xb46a('0x2e')](handleError(_0x557e72,null));};exports['getInteractions']=function(_0x2f8ed6,_0x381c8a,_0x383d8c){var _0x32c974={'raw':![],'where':{}};var _0x11bb2f={};var _0x409cec={'count':0x0,'rows':[]};return db['SmsAccount'][_0xb46a('0x74')]({'where':{'id':_0x2f8ed6[_0xb46a('0x5d')]['id']}})[_0xb46a('0x23')](handleEntityNotFound(_0x381c8a,null))[_0xb46a('0x23')](function(_0x519b64){if(_0x519b64){_0x11bb2f[_0xb46a('0x49')]=_[_0xb46a('0x4a')](db['SmsInteraction'][_0xb46a('0x46')]);_0x11bb2f[_0xb46a('0x4b')]=_['keys'](_0x2f8ed6[_0xb46a('0x4b')]);_0x11bb2f[_0xb46a('0x4c')]=_[_0xb46a('0x4d')](_0x11bb2f[_0xb46a('0x49')],_0x11bb2f[_0xb46a('0x4b')]);_0x32c974['attributes']=_['intersection'](_0x11bb2f[_0xb46a('0x49')],qs[_0xb46a('0x4f')](_0x2f8ed6[_0xb46a('0x4b')]['fields']));_0x32c974[_0xb46a('0x4e')]=_0x32c974[_0xb46a('0x4e')][_0xb46a('0x5f')]?_0x32c974[_0xb46a('0x4e')]:_0x11bb2f[_0xb46a('0x49')];if(!_0x2f8ed6[_0xb46a('0x4b')][_0xb46a('0x50')](_0xb46a('0x51'))){_0x32c974[_0xb46a('0x35')]=qs[_0xb46a('0x35')](_0x2f8ed6[_0xb46a('0x4b')]['limit']);_0x32c974[_0xb46a('0x33')]=qs[_0xb46a('0x33')](_0x2f8ed6[_0xb46a('0x4b')][_0xb46a('0x33')]);}_0x32c974[_0xb46a('0x6f')]=qs[_0xb46a('0x52')](_0x2f8ed6[_0xb46a('0x4b')][_0xb46a('0x52')]);_0x32c974['where']=qs[_0xb46a('0x4c')](_[_0xb46a('0x70')](_0x2f8ed6[_0xb46a('0x4b')],_0x11bb2f[_0xb46a('0x4c')]));_0x32c974['where'][_0xb46a('0x6c')]=_0x519b64['id'];if(_0x2f8ed6[_0xb46a('0x4b')]['filter']){_0x32c974[_0xb46a('0x53')]=_[_0xb46a('0x55')](_0x32c974[_0xb46a('0x53')],{'$or':_[_0xb46a('0x44')](_0x32c974['attributes'],function(_0x26e54e){var _0x4cbf05={};_0x4cbf05[_0x26e54e]={'$like':'%'+_0x2f8ed6[_0xb46a('0x4b')][_0xb46a('0x54')]+'%'};return _0x4cbf05;})});}_0x32c974=_[_0xb46a('0x55')]({},_0x32c974,_0x2f8ed6[_0xb46a('0x57')]);return db[_0xb46a('0xa7')][_0xb46a('0x36')]({'where':_0x32c974[_0xb46a('0x53')]})['then'](function(_0xb087b2){_0x409cec[_0xb46a('0x36')]=_0xb087b2;if(_0x2f8ed6['query']['includeAll']){_0x32c974[_0xb46a('0x59')]=[{'model':db[_0xb46a('0x7d')],'as':_0xb46a('0xc1'),'required':![]},{'model':db[_0xb46a('0xb2')],'as':'Owner','attributes':[_0xb46a('0x40'),_0xb46a('0xc2'),_0xb46a('0xc3')],'required':![]},{'model':db[_0xb46a('0xc4')],'as':_0xb46a('0xc5'),'attributes':['id',_0xb46a('0x40'),_0xb46a('0xc6')],'where':_0x2f8ed6[_0xb46a('0x4b')]['tag']?{'id':_0x2f8ed6['query'][_0xb46a('0xc7')]}:undefined,'required':_0x2f8ed6[_0xb46a('0x4b')]['tag']?!![]:![]}];}return db[_0xb46a('0xa7')][_0xb46a('0x5a')](_0x32c974);})[_0xb46a('0x23')](function(_0x141349){_0x409cec['rows']=_0x141349;return _0x409cec;});}})['then'](respondWithFilteredResult(_0x381c8a,_0x32c974))[_0xb46a('0x2e')](handleError(_0x381c8a,null));};exports[_0xb46a('0x41')]=function(_0x5e3ce8,_0x54847e,_0x2c9332){var _0x4035e7,_0x2a5f40,_0xd7ec87;if(_[_0xb46a('0x9d')](_0x5e3ce8[_0xb46a('0x62')][_0xb46a('0x62')])||_0x5e3ce8[_0xb46a('0x62')][_0xb46a('0x62')]===''){throw new db['Sequelize'][(_0xb46a('0x7e'))](_0xb46a('0xc8'));}if(_[_0xb46a('0x9d')](_0x5e3ce8[_0xb46a('0x62')]['to'])){throw new db[(_0xb46a('0x9e'))][(_0xb46a('0x7e'))](_0xb46a('0xc9'));}_0x4035e7=_0x5e3ce8['body']['to'];return db['SmsAccount']['find']({'where':{'id':_0x5e3ce8[_0xb46a('0x5d')]['id']},'include':[{'model':db[_0xb46a('0xa2')],'as':_0xb46a('0xca'),'include':[{'model':db[_0xb46a('0x7d')],'as':_0xb46a('0xa6'),'where':{'mobile':_0x4035e7},'limit':0x1,'order':[[_0xb46a('0x82'),_0xb46a('0xa3')]]}]}]})[_0xb46a('0x23')](handleEntityNotFound(_0x54847e,null))[_0xb46a('0x23')](function(_0x38975a){if(_0x38975a&&_0x38975a[_0xb46a('0xca')]){_0x2a5f40=_0x38975a[_0xb46a('0x3d')]({'plain':!![]});if(_0x2a5f40['List']&&_0x2a5f40[_0xb46a('0xca')][_0xb46a('0xa6')]['length']){return _0x2a5f40[_0xb46a('0xca')][_0xb46a('0xa6')][0x0];}return db['CmContact'][_0xb46a('0x61')](_[_0xb46a('0x1d')](_0x5e3ce8[_0xb46a('0x62')],{'firstName':_0x4035e7,'mobile':_0x4035e7,'phone':_0x4035e7,'ListId':_0x2a5f40[_0xb46a('0x84')]}));}})[_0xb46a('0x23')](handleEntityNotFound(_0x54847e,null))['then'](function(_0x13a900){if(_0x13a900){_0xd7ec87=_0x13a900;return db['SmsInteraction']['find']({'where':{'ContactId':_0xd7ec87['id'],'closed':![],'SmsAccountId':_0x2a5f40['id']}})[_0xb46a('0x23')](function(_0x5a0e9d){if(_0x5a0e9d){return[_0x5a0e9d,![]];}return db[_0xb46a('0xa7')][_0xb46a('0x61')]({'UserId':_0x5e3ce8[_0xb46a('0x63')]['id'],'ContactId':_0xd7ec87['id'],'SmsAccountId':_0x2a5f40['id'],'phone':_0x4035e7,'firstMsgDirection':_0xb46a('0xcb'),'Messages':[_[_0xb46a('0x55')](_0x5e3ce8['body'],{'read':![],'body':_0x5e3ce8['body'][_0xb46a('0x62')],'phone':_0x4035e7,'SmsAccountId':_0x2a5f40['id'],'UserId':_0x5e3ce8[_0xb46a('0x63')]['id'],'ContactId':_0xd7ec87['id']})]},{'include':[{'model':db['SmsMessage'],'as':_0xb46a('0xcc')}]})[_0xb46a('0x23')](function(_0x5871a3){return[_0x5871a3,!![]];});});}})[_0xb46a('0xa8')](function(_0x275e13,_0x3001c0){if(_0x3001c0){return _0x275e13;}return db[_0xb46a('0xb0')]['create'](_['merge'](_0x5e3ce8['body'],{'read':![],'body':_0x5e3ce8[_0xb46a('0x62')]['body'],'phone':_0x4035e7,'SmsAccountId':_0x2a5f40['id'],'SmsInteractionId':_0x275e13['id'],'UserId':_0x5e3ce8['user']['id'],'ContactId':_0xd7ec87['id']}))['then'](function(_0x33d01b){_0x275e13[_0xb46a('0xcd')][_0xb46a('0xcc')]=[];_0x275e13[_0xb46a('0xcd')][_0xb46a('0xcc')][_0xb46a('0xac')](_0x33d01b[_0xb46a('0xcd')]);return _0x275e13;});})[_0xb46a('0x23')](respondWithResult(_0x54847e,null))['catch'](handleError(_0x54847e,null));};exports['status']=function(_0x4a404b,_0x51c938,_0x120cb2){if(_0x4a404b[_0xb46a('0x62')]['id']){delete _0x4a404b[_0xb46a('0x62')]['id'];}var _0x34c511,_0x4cc52a,_0x5bfdb3;return db['SmsAccount'][_0xb46a('0x60')]({'where':{'id':_0x4a404b[_0xb46a('0x5d')]['id']}})[_0xb46a('0x23')](handleEntityNotFound(_0x51c938,null))[_0xb46a('0x23')](function(_0x38e17e){if(_0x38e17e){_0x5bfdb3=_0x38e17e;logger[_0xb46a('0x27')]('SmsAccount,\x20%s,\x20%s,\x20%s',_0xb46a('0x30'),'received\x20delivery\x20report\x20from',_0x38e17e[_0xb46a('0x47')],util[_0xb46a('0xce')](_0x4a404b[_0xb46a('0x62')],{'showHidden':![],'depth':null}));switch(_0x38e17e['type']){case _0xb46a('0xcf'):if(_0x4a404b['body']['skebby_dispatch_id']&&_0x4a404b[_0xb46a('0x62')][_0xb46a('0x30')]){_0x4cc52a=_0x4a404b['body'][_0xb46a('0x30')];return db[_0xb46a('0xb0')][_0xb46a('0x60')]({'where':{'messageId':_0x4a404b[_0xb46a('0x62')][_0xb46a('0xd0')]}});}break;case'connectel':if(_0x4a404b['body']['requestid']&&_0x4a404b['body']['statusInt']){_0x4cc52a=_0x4a404b[_0xb46a('0x62')][_0xb46a('0xd1')];return db[_0xb46a('0xb0')][_0xb46a('0x60')]({'where':{'messageId':_0x4a404b[_0xb46a('0x62')][_0xb46a('0xd2')]}});}break;case'clicksend':if(_0x4a404b[_0xb46a('0x62')][_0xb46a('0x90')]&&_0x4a404b[_0xb46a('0x62')]['status_code']){_0x4cc52a=_0x4a404b[_0xb46a('0x62')][_0xb46a('0xd3')];return db['SmsMessage'][_0xb46a('0x60')]({'where':{'messageId':_0x4a404b[_0xb46a('0x62')][_0xb46a('0x90')]}});}break;case'infobip':var _0x38915a=_0x4a404b['body'][_0xb46a('0x95')][0x0];if(_0x38915a[_0xb46a('0x8a')]&&_0x38915a[_0xb46a('0x30')][_0xb46a('0xd4')]===_0xb46a('0xd5')){_0x4cc52a=_0x38915a[_0xb46a('0x30')][_0xb46a('0xd4')];return db[_0xb46a('0xb0')]['find']({'where':{'messageId':_0x38915a['messageId']}});}break;case _0xb46a('0xd6'):if(_0x4a404b['body']['messageId']&&_0x4a404b[_0xb46a('0x62')][_0xb46a('0x30')]){_0x4cc52a=_0x4a404b['body'][_0xb46a('0x30')];return db['SmsMessage'][_0xb46a('0x60')]({'where':{'messageId':_0x4a404b[_0xb46a('0x62')][_0xb46a('0x8a')]}});}break;case'bandwidth':if(_0x4a404b[_0xb46a('0x62')][0x0][_0xb46a('0x2c')]['id']){_0x4cc52a=_0x4a404b[_0xb46a('0x62')][0x0][_0xb46a('0x47')];return db[_0xb46a('0xb0')][_0xb46a('0x60')]({'where':{'messageId':_0x4a404b[_0xb46a('0x62')][0x0][_0xb46a('0x2c')]['id']}});}break;case'intelepeer':if(_0x4a404b[_0xb46a('0x62')]['redif']&&_0x4a404b[_0xb46a('0x62')][_0xb46a('0x30')]){_0x4cc52a=_0x4a404b[_0xb46a('0x62')][_0xb46a('0x30')];return db[_0xb46a('0xb0')][_0xb46a('0x60')]({'where':{'messageId':_0x4a404b[_0xb46a('0x62')][_0xb46a('0xd7')]}});}break;}}})[_0xb46a('0x23')](handleEntityNotFound(_0x51c938,null))[_0xb46a('0x23')](function(_0x1c2789){if(_0x1c2789){_0x34c511=_0x1c2789;switch(_0x5bfdb3[_0xb46a('0x47')]){case _0xb46a('0xcf'):if(_0x4cc52a==='DELIVERED'){return _0x34c511[_0xb46a('0x6a')]({'read':!![]});}else{logger[_0xb46a('0x2a')](_0xb46a('0x28'),_0xb46a('0x30'),_0xb46a('0xcf'),util['inspect'](_0x4a404b[_0xb46a('0x62')],{'showHidden':![],'depth':null}));}break;case'connectel':if(_0x4cc52a==='1'){return _0x34c511[_0xb46a('0x6a')]({'read':!![]});}else{logger[_0xb46a('0x2a')](_0xb46a('0x28'),_0xb46a('0x30'),_0xb46a('0xcf'),util['inspect'](_0x4a404b[_0xb46a('0x62')],{'showHidden':![],'depth':null}));}break;case _0xb46a('0x8f'):if(!_0x4a404b['body'][_0xb46a('0xd8')]&&_0x4cc52a>=0xc8&&_0x4cc52a<=0xce){return _0x34c511['update']({'read':!![]});}else{logger[_0xb46a('0x2a')](_0xb46a('0x28'),_0xb46a('0x30'),_0xb46a('0x8f'),util[_0xb46a('0xce')](_0x4a404b[_0xb46a('0x62')],{'showHidden':![],'depth':null}));}break;case _0xb46a('0x94'):var _0x4d2fee=_0x4a404b[_0xb46a('0x62')]['results'][0x0];if(_0x4d2fee['status'][_0xb46a('0xd4')]===_0xb46a('0xd5')){return _0x34c511['update']({'read':!![]});}else{logger[_0xb46a('0x2a')](_0xb46a('0x28'),'status',_0xb46a('0x94'),util[_0xb46a('0xce')](_0x4a404b[_0xb46a('0x62')],{'showHidden':![],'depth':null}));}break;case _0xb46a('0xd6'):if(_0x4cc52a==_0xb46a('0xd9')||_0x4cc52a==_0xb46a('0xda')){return _0x34c511[_0xb46a('0x6a')]({'read':!![]});}else{logger[_0xb46a('0x2a')](_0xb46a('0x28'),_0xb46a('0x30'),_0xb46a('0xd6'),util[_0xb46a('0xce')](_0x4a404b[_0xb46a('0x62')],{'showHidden':![],'depth':null}));}break;case _0xb46a('0xdb'):if(_0x4cc52a==_0xb46a('0xdc')){return _0x34c511[_0xb46a('0x6a')]({'read':!![]});}else{logger['error'](_0xb46a('0x28'),_0xb46a('0x30'),'bandwidth',util['inspect'](_0x4a404b[_0xb46a('0x62')],{'showHidden':![],'depth':null}));}break;case'intelepeer':if(_0x4cc52a===_0xb46a('0xdd')||_0x4cc52a===_0xb46a('0xde')){return _0x34c511[_0xb46a('0x6a')]({'read':!![]});}else{logger[_0xb46a('0x2a')](_0xb46a('0x28'),'status','intelepeer',util[_0xb46a('0xce')](_0x4a404b[_0xb46a('0x62')],{'showHidden':![],'depth':null}));}break;}return _0x34c511;}})[_0xb46a('0x23')](respondWithResult(_0x51c938,null))[_0xb46a('0x2e')](handleError(_0x51c938,null));};exports['statusGet']=function(_0xa888fa,_0x88798b,_0x52f76f){var _0x2acc99,_0x4aa823,_0x1b1108;return db[_0xb46a('0x45')][_0xb46a('0x60')]({'where':{'id':_0xa888fa[_0xb46a('0x5d')]['id']}})[_0xb46a('0x23')](handleEntityNotFound(_0x88798b,null))[_0xb46a('0x23')](function(_0x1aac43){if(_0x1aac43){_0x1b1108=_0x1aac43;logger[_0xb46a('0x27')]('SmsAccount,\x20%s,\x20%s,\x20%s',_0xb46a('0x30'),_0xb46a('0xdf'),_0x1aac43['type'],util[_0xb46a('0xce')](_0xa888fa[_0xb46a('0x4b')],{'showHidden':![],'depth':null}));switch(_0x1aac43[_0xb46a('0x47')]){case _0xb46a('0x96'):if(_0xa888fa[_0xb46a('0x4b')][_0xb46a('0xe0')]&&_0xa888fa[_0xb46a('0x4b')][_0xb46a('0xe1')]){_0x4aa823=_0xa888fa['query'][_0xb46a('0xe1')];return db['SmsMessage'][_0xb46a('0x60')]({'where':{'messageId':_0xa888fa[_0xb46a('0x4b')][_0xb46a('0xe0')]}});}break;}}})[_0xb46a('0x23')](handleEntityNotFound(_0x88798b,null))[_0xb46a('0x23')](function(_0x4b25af){if(_0x4b25af){_0x2acc99=_0x4b25af;switch(_0x1b1108['type']){case _0xb46a('0x96'):if(_0x4aa823==='2'||_0x4aa823==='6'){return _0x2acc99[_0xb46a('0x6a')]({'read':!![]});}else{logger[_0xb46a('0x2a')]('SmsAccount,\x20%s,\x20%s,\x20%s',_0xb46a('0x30'),_0xb46a('0x96'),util[_0xb46a('0xce')](_0xa888fa['query'],{'showHidden':![],'depth':null}));};break;}return _0x2acc99;}})[_0xb46a('0x23')](respondWithResult(_0x88798b,null))['catch'](handleError(_0x88798b,null));};exports['addAgents']=function(_0x37e844,_0x1320a4,_0x1b683a){return db[_0xb46a('0x45')][_0xb46a('0x60')]({'where':{'id':_0x37e844['params']['id']}})[_0xb46a('0x23')](handleEntityNotFound(_0x1320a4,null))[_0xb46a('0x23')](function(_0x3f9570){if(_0x3f9570){return _0x3f9570[_0xb46a('0xe2')](_0x37e844[_0xb46a('0x62')]['ids'],_[_0xb46a('0xa5')](_0x37e844[_0xb46a('0x62')],['ids','id'])||{})[_0xb46a('0xa8')](function(_0x2e5eac){for(var _0x2da421=0x0;_0x2da421<_0x37e844[_0xb46a('0x62')][_0xb46a('0x72')][_0xb46a('0x5f')];_0x2da421+=0x1){socket[_0xb46a('0xe3')](_0xb46a('0xe4'),{'UserId':Number(_0x37e844[_0xb46a('0x62')][_0xb46a('0x72')][_0x2da421]),'SmsAccountId':Number(_0x37e844['params']['id'])});}return _0x2e5eac;});}})[_0xb46a('0x23')](respondWithResult(_0x1320a4,null))[_0xb46a('0x2e')](handleError(_0x1320a4,null));};exports[_0xb46a('0xe5')]=function(_0x2422bc,_0x7e8341,_0x1e325f){return db[_0xb46a('0x45')][_0xb46a('0x60')]({'where':{'id':_0x2422bc[_0xb46a('0x5d')]['id']}})[_0xb46a('0x23')](handleEntityNotFound(_0x7e8341,null))[_0xb46a('0x23')](function(_0x31f39a){if(_0x31f39a){return _0x31f39a[_0xb46a('0xe5')](_0x2422bc[_0xb46a('0x4b')]['ids'])[_0xb46a('0x23')](function(){if(_['isArray'](_0x2422bc['query'][_0xb46a('0x72')])){for(var _0xd62590=0x0;_0xd62590<_0x2422bc[_0xb46a('0x4b')][_0xb46a('0x72')][_0xb46a('0x5f')];_0xd62590+=0x1){socket[_0xb46a('0xe3')]('userSmsAccount:remove',{'UserId':Number(_0x2422bc['query'][_0xb46a('0x72')][_0xd62590]),'SmsAccountId':Number(_0x2422bc[_0xb46a('0x5d')]['id'])});}}else{socket[_0xb46a('0xe3')](_0xb46a('0xe6'),{'UserId':Number(_0x2422bc[_0xb46a('0x4b')][_0xb46a('0x72')]),'SmsAccountId':Number(_0x2422bc[_0xb46a('0x5d')]['id'])});}});}})[_0xb46a('0x23')](respondWithStatusCode(_0x7e8341,null))[_0xb46a('0x2e')](handleError(_0x7e8341,null));};exports['getAgents']=function(_0x55ba75,_0x46775b,_0x15b542){var _0x2de3c7={};var _0x59fa0c={};var _0x4da222;var _0xc07235;return db[_0xb46a('0x45')][_0xb46a('0x74')]({'where':{'id':_0x55ba75['params']['id']}})[_0xb46a('0x23')](handleEntityNotFound(_0x46775b,null))['then'](function(_0x3233d9){if(_0x3233d9){_0x4da222=_0x3233d9;_0x59fa0c[_0xb46a('0x49')]=_[_0xb46a('0x4a')](db[_0xb46a('0xb2')]['rawAttributes']);_0x59fa0c[_0xb46a('0x4b')]=_['keys'](_0x55ba75[_0xb46a('0x4b')]);_0x59fa0c[_0xb46a('0x4c')]=_[_0xb46a('0x4d')](_0x59fa0c[_0xb46a('0x49')],_0x59fa0c[_0xb46a('0x4b')]);_0x2de3c7[_0xb46a('0x4e')]=_['intersection'](_0x59fa0c[_0xb46a('0x49')],qs[_0xb46a('0x4f')](_0x55ba75['query'][_0xb46a('0x4f')]));_0x2de3c7[_0xb46a('0x4e')]=_0x2de3c7['attributes'][_0xb46a('0x5f')]?_0x2de3c7[_0xb46a('0x4e')]:_0x59fa0c['model'];_0x2de3c7['order']=qs[_0xb46a('0x52')](_0x55ba75[_0xb46a('0x4b')]['sort']);_0x2de3c7[_0xb46a('0x53')]=qs[_0xb46a('0x4c')](_[_0xb46a('0x70')](_0x55ba75['query'],_0x59fa0c['filters']));if(_0x55ba75[_0xb46a('0x4b')]['filter']){_0x2de3c7[_0xb46a('0x53')]=_[_0xb46a('0x55')](_0x2de3c7['where'],{'$or':_[_0xb46a('0x44')](_0x2de3c7['attributes'],function(_0x4958c9){var _0x5b8e04={};_0x5b8e04[_0x4958c9]={'$like':'%'+_0x55ba75[_0xb46a('0x4b')][_0xb46a('0x54')]+'%'};return _0x5b8e04;})});}_0x2de3c7=_[_0xb46a('0x55')]({},_0x2de3c7,_0x55ba75['options']);return _0x4da222[_0xb46a('0xe7')](_0x2de3c7);}})['then'](function(_0x1bd408){if(_0x1bd408){_0xc07235=_0x1bd408['length'];if(!_0x55ba75['query'][_0xb46a('0x50')](_0xb46a('0x51'))){_0x2de3c7['limit']=qs[_0xb46a('0x35')](_0x55ba75[_0xb46a('0x4b')][_0xb46a('0x35')]);_0x2de3c7['offset']=qs[_0xb46a('0x33')](_0x55ba75['query']['offset']);}return _0x4da222['getAgents'](_0x2de3c7);}})[_0xb46a('0x23')](function(_0x16aca3){if(_0x16aca3){return _0x16aca3?{'count':_0xc07235,'rows':_0x16aca3}:null;}})[_0xb46a('0x23')](respondWithResult(_0x46775b,null))[_0xb46a('0x2e')](handleError(_0x46775b,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6b4e=['hasOwnProperty','hook','exports','events','SmsAccount','setMaxListeners','save','update','remove','emit'];(function(_0x44714c,_0x2ac454){var _0x57d4d5=function(_0x5aca44){while(--_0x5aca44){_0x44714c['push'](_0x44714c['shift']());}};_0x57d4d5(++_0x2ac454);}(_0x6b4e,0x1d9));var _0xe6b4=function(_0x46bcc5,_0x5efcc8){_0x46bcc5=_0x46bcc5-0x0;var _0x4d5e9a=_0x6b4e[_0x46bcc5];return _0x4d5e9a;};'use strict';var EventEmitter=require(_0xe6b4('0x0'));var SmsAccount=require('../../mysqldb')['db'][_0xe6b4('0x1')];var SmsAccountEvents=new EventEmitter();SmsAccountEvents[_0xe6b4('0x2')](0x0);var events={'afterCreate':_0xe6b4('0x3'),'afterUpdate':_0xe6b4('0x4'),'afterDestroy':_0xe6b4('0x5')};function emitEvent(_0x1c4a1d){return function(_0x43e795,_0x16444c,_0x269090){SmsAccountEvents[_0xe6b4('0x6')](_0x1c4a1d+':'+_0x43e795['id'],_0x43e795);SmsAccountEvents['emit'](_0x1c4a1d,_0x43e795);_0x269090(null);};}for(var e in events){if(events[_0xe6b4('0x7')](e)){var event=events[e];SmsAccount[_0xe6b4('0x8')](e,emitEvent(event));}}module[_0xe6b4('0x9')]=SmsAccountEvents;
\ No newline at end of file
+var _0xbb41=['../../mysqldb','SmsAccount','save','remove','emit','hasOwnProperty','exports','events'];(function(_0x67f95e,_0x3ca797){var _0x538f5a=function(_0xc919e9){while(--_0xc919e9){_0x67f95e['push'](_0x67f95e['shift']());}};_0x538f5a(++_0x3ca797);}(_0xbb41,0x157));var _0x1bb4=function(_0x2d8863,_0x114140){_0x2d8863=_0x2d8863-0x0;var _0x1e333d=_0xbb41[_0x2d8863];return _0x1e333d;};'use strict';var EventEmitter=require(_0x1bb4('0x0'));var SmsAccount=require(_0x1bb4('0x1'))['db'][_0x1bb4('0x2')];var SmsAccountEvents=new EventEmitter();SmsAccountEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x1bb4('0x3'),'afterUpdate':'update','afterDestroy':_0x1bb4('0x4')};function emitEvent(_0x3096b5){return function(_0x1df670,_0x4db3b7,_0x2c3b96){SmsAccountEvents['emit'](_0x3096b5+':'+_0x1df670['id'],_0x1df670);SmsAccountEvents[_0x1bb4('0x5')](_0x3096b5,_0x1df670);_0x2c3b96(null);};}for(var e in events){if(events[_0x1bb4('0x6')](e)){var event=events[e];SmsAccount['hook'](e,emitEvent(event));}}module[_0x1bb4('0x7')]=SmsAccountEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2eda=['../../config/environment','./smsAccount.attributes','exports','define','SmsAccount','sms_accounts','api','moment','bluebird','request-promise','path','rimraf'];(function(_0x5447fd,_0x52a6b5){var _0x15b28a=function(_0x370d4f){while(--_0x370d4f){_0x5447fd['push'](_0x5447fd['shift']());}};_0x15b28a(++_0x52a6b5);}(_0x2eda,0x7e));var _0xa2ed=function(_0x165caa,_0x4d5834){_0x165caa=_0x165caa-0x0;var _0xad2a72=_0x2eda[_0x165caa];return _0xad2a72;};'use strict';var _=require('lodash');var util=require('util');var logger=require('../../config/logger')(_0xa2ed('0x0'));var moment=require(_0xa2ed('0x1'));var BPromise=require(_0xa2ed('0x2'));var rp=require(_0xa2ed('0x3'));var fs=require('fs');var path=require(_0xa2ed('0x4'));var rimraf=require(_0xa2ed('0x5'));var config=require(_0xa2ed('0x6'));var attributes=require(_0xa2ed('0x7'));module[_0xa2ed('0x8')]=function(_0x5d4084,_0x53eefe){return _0x5d4084[_0xa2ed('0x9')](_0xa2ed('0xa'),attributes,{'tableName':_0xa2ed('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x8441=['request-promise','rimraf','../../config/environment','./smsAccount.attributes','exports','define','SmsAccount','sms_accounts','lodash','../../config/logger','api','moment'];(function(_0x460997,_0x34ab71){var _0x238646=function(_0x47d283){while(--_0x47d283){_0x460997['push'](_0x460997['shift']());}};_0x238646(++_0x34ab71);}(_0x8441,0x1c4));var _0x1844=function(_0x5262e6,_0x429836){_0x5262e6=_0x5262e6-0x0;var _0x529acc=_0x8441[_0x5262e6];return _0x529acc;};'use strict';var _=require(_0x1844('0x0'));var util=require('util');var logger=require(_0x1844('0x1'))(_0x1844('0x2'));var moment=require(_0x1844('0x3'));var BPromise=require('bluebird');var rp=require(_0x1844('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x1844('0x5'));var config=require(_0x1844('0x6'));var attributes=require(_0x1844('0x7'));module[_0x1844('0x8')]=function(_0x5b1300,_0x50cc98){return _0x5b1300[_0x1844('0x9')](_0x1844('0xa'),attributes,{'tableName':_0x1844('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa1a4=['SmsAccount,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','catch','SmsAccount','find','options','raw','where','include','map','model','attributes','then','ShowSmsAccount','lodash','moment','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','client','http','defaults','redis','register','request','info','SmsAccount,\x20%s,\x20%s','debug'];(function(_0xfae23b,_0x2be4ba){var _0x200640=function(_0x4ae258){while(--_0x4ae258){_0xfae23b['push'](_0xfae23b['shift']());}};_0x200640(++_0x2be4ba);}(_0xa1a4,0x1d9));var _0x4a1a=function(_0x4565bf,_0x5ad9d6){_0x4565bf=_0x4565bf-0x0;var _0x5610ba=_0xa1a4[_0x4565bf];return _0x5610ba;};'use strict';var _=require(_0x4a1a('0x0'));var util=require('util');var moment=require(_0x4a1a('0x1'));var BPromise=require('bluebird');var rs=require(_0x4a1a('0x2'));var fs=require('fs');var Redis=require(_0x4a1a('0x3'));var db=require(_0x4a1a('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0x4a1a('0x5'))(_0x4a1a('0x6'));var config=require(_0x4a1a('0x7'));var jayson=require('jayson/promise');var client=jayson[_0x4a1a('0x8')][_0x4a1a('0x9')]({'port':0x232a});config['redis']=_[_0x4a1a('0xa')](config[_0x4a1a('0xb')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x4a1a('0xb')]));require('./smsAccount.socket')[_0x4a1a('0xc')](socket);function respondWithRpcPromise(_0x5b6b03,_0xafdaa8,_0x2f50dd){return new BPromise(function(_0x5d85e6,_0x2e2176){return client[_0x4a1a('0xd')](_0x5b6b03,_0x2f50dd)['then'](function(_0x54f36b){logger[_0x4a1a('0xe')](_0x4a1a('0xf'),_0xafdaa8,'request\x20sent');logger[_0x4a1a('0x10')](_0x4a1a('0x11'),_0xafdaa8,_0x4a1a('0x12'),JSON[_0x4a1a('0x13')](_0x54f36b));if(_0x54f36b[_0x4a1a('0x14')]){if(_0x54f36b['error'][_0x4a1a('0x15')]===0x1f4){logger['error'](_0x4a1a('0xf'),_0xafdaa8,_0x54f36b[_0x4a1a('0x14')]['message']);return _0x2e2176(_0x54f36b[_0x4a1a('0x14')][_0x4a1a('0x16')]);}logger[_0x4a1a('0x14')](_0x4a1a('0xf'),_0xafdaa8,_0x54f36b[_0x4a1a('0x14')][_0x4a1a('0x16')]);return _0x5d85e6(_0x54f36b['error'][_0x4a1a('0x16')]);}else{logger['info'](_0x4a1a('0xf'),_0xafdaa8,'request\x20sent');_0x5d85e6(_0x54f36b['result']['message']);}})[_0x4a1a('0x17')](function(_0xfba2a3){logger[_0x4a1a('0x14')](_0x4a1a('0xf'),_0xafdaa8,_0xfba2a3);_0x2e2176(_0xfba2a3);});});}exports['ShowSmsAccount']=function(_0x5a8619){var _0x364a9a=this;return new Promise(function(_0x394c49,_0x3875af){return db[_0x4a1a('0x18')][_0x4a1a('0x19')]({'raw':_0x5a8619[_0x4a1a('0x1a')]?_0x5a8619[_0x4a1a('0x1a')][_0x4a1a('0x1b')]===undefined?!![]:![]:!![],'where':_0x5a8619[_0x4a1a('0x1a')]?_0x5a8619[_0x4a1a('0x1a')][_0x4a1a('0x1c')]||null:null,'attributes':_0x5a8619[_0x4a1a('0x1a')]?_0x5a8619[_0x4a1a('0x1a')]['attributes']||null:null,'include':_0x5a8619['options']?_0x5a8619[_0x4a1a('0x1a')][_0x4a1a('0x1d')]?_[_0x4a1a('0x1e')](_0x5a8619[_0x4a1a('0x1a')][_0x4a1a('0x1d')],function(_0x552b4e){return{'model':db[_0x552b4e[_0x4a1a('0x1f')]],'as':_0x552b4e['as'],'attributes':_0x552b4e['attributes'],'include':_0x552b4e[_0x4a1a('0x1d')]?_[_0x4a1a('0x1e')](_0x552b4e[_0x4a1a('0x1d')],function(_0x53a4c5){return{'model':db[_0x53a4c5[_0x4a1a('0x1f')]],'as':_0x53a4c5['as'],'attributes':_0x53a4c5['attributes'],'include':_0x53a4c5[_0x4a1a('0x1d')]?_[_0x4a1a('0x1e')](_0x53a4c5[_0x4a1a('0x1d')],function(_0x1cf5a5){return{'model':db[_0x1cf5a5[_0x4a1a('0x1f')]],'as':_0x1cf5a5['as'],'attributes':_0x1cf5a5[_0x4a1a('0x20')]};}):[]};}):[]};}):[]:[]})[_0x4a1a('0x21')](function(_0x5c0fd3){logger[_0x4a1a('0xe')](_0x4a1a('0x22'),_0x5a8619);logger[_0x4a1a('0x10')](_0x4a1a('0x22'),_0x5a8619,JSON[_0x4a1a('0x13')](_0x5c0fd3));_0x394c49(_0x5c0fd3);})[_0x4a1a('0x17')](function(_0x4f1588){logger['error'](_0x4a1a('0x22'),_0x4f1588['message'],_0x5a8619);_0x3875af(_0x364a9a['error'](0x1f4,_0x4f1588[_0x4a1a('0x16')]));});});};
\ No newline at end of file
+var _0x0ba7=['../../mysqldb','../../config/logger','../../config/environment','client','http','defaults','socket.io-emitter','redis','register','request','info','SmsAccount,\x20%s,\x20%s','request\x20sent','debug','SmsAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','ShowSmsAccount','find','options','raw','attributes','include','map','model','then','util','moment','bluebird','randomstring'];(function(_0x1cfa0d,_0x4391f2){var _0xe33279=function(_0x3ce7c1){while(--_0x3ce7c1){_0x1cfa0d['push'](_0x1cfa0d['shift']());}};_0xe33279(++_0x4391f2);}(_0x0ba7,0x10c));var _0x70ba=function(_0x523798,_0x194c39){_0x523798=_0x523798-0x0;var _0x54b958=_0x0ba7[_0x523798];return _0x54b958;};'use strict';var _=require('lodash');var util=require(_0x70ba('0x0'));var moment=require(_0x70ba('0x1'));var BPromise=require(_0x70ba('0x2'));var rs=require(_0x70ba('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x70ba('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0x70ba('0x5'))('rpc');var config=require(_0x70ba('0x6'));var jayson=require('jayson/promise');var client=jayson[_0x70ba('0x7')][_0x70ba('0x8')]({'port':0x232a});config['redis']=_[_0x70ba('0x9')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x70ba('0xa'))(new Redis(config[_0x70ba('0xb')]));require('./smsAccount.socket')[_0x70ba('0xc')](socket);function respondWithRpcPromise(_0x103a9e,_0x4d82c4,_0x253fe7){return new BPromise(function(_0x577727,_0x2c73e6){return client[_0x70ba('0xd')](_0x103a9e,_0x253fe7)['then'](function(_0x1b8309){logger[_0x70ba('0xe')](_0x70ba('0xf'),_0x4d82c4,_0x70ba('0x10'));logger[_0x70ba('0x11')](_0x70ba('0x12'),_0x4d82c4,_0x70ba('0x10'),JSON[_0x70ba('0x13')](_0x1b8309));if(_0x1b8309[_0x70ba('0x14')]){if(_0x1b8309[_0x70ba('0x14')][_0x70ba('0x15')]===0x1f4){logger[_0x70ba('0x14')](_0x70ba('0xf'),_0x4d82c4,_0x1b8309['error'][_0x70ba('0x16')]);return _0x2c73e6(_0x1b8309[_0x70ba('0x14')][_0x70ba('0x16')]);}logger[_0x70ba('0x14')](_0x70ba('0xf'),_0x4d82c4,_0x1b8309[_0x70ba('0x14')][_0x70ba('0x16')]);return _0x577727(_0x1b8309[_0x70ba('0x14')][_0x70ba('0x16')]);}else{logger['info'](_0x70ba('0xf'),_0x4d82c4,_0x70ba('0x10'));_0x577727(_0x1b8309[_0x70ba('0x17')][_0x70ba('0x16')]);}})[_0x70ba('0x18')](function(_0xca4353){logger[_0x70ba('0x14')](_0x70ba('0xf'),_0x4d82c4,_0xca4353);_0x2c73e6(_0xca4353);});});}exports[_0x70ba('0x19')]=function(_0x5c518c){var _0x518602=this;return new Promise(function(_0x53b7be,_0x217f82){return db['SmsAccount'][_0x70ba('0x1a')]({'raw':_0x5c518c['options']?_0x5c518c[_0x70ba('0x1b')][_0x70ba('0x1c')]===undefined?!![]:![]:!![],'where':_0x5c518c[_0x70ba('0x1b')]?_0x5c518c[_0x70ba('0x1b')]['where']||null:null,'attributes':_0x5c518c[_0x70ba('0x1b')]?_0x5c518c['options'][_0x70ba('0x1d')]||null:null,'include':_0x5c518c['options']?_0x5c518c['options'][_0x70ba('0x1e')]?_[_0x70ba('0x1f')](_0x5c518c[_0x70ba('0x1b')][_0x70ba('0x1e')],function(_0x1598a7){return{'model':db[_0x1598a7[_0x70ba('0x20')]],'as':_0x1598a7['as'],'attributes':_0x1598a7[_0x70ba('0x1d')],'include':_0x1598a7['include']?_[_0x70ba('0x1f')](_0x1598a7['include'],function(_0x1c0d08){return{'model':db[_0x1c0d08[_0x70ba('0x20')]],'as':_0x1c0d08['as'],'attributes':_0x1c0d08[_0x70ba('0x1d')],'include':_0x1c0d08[_0x70ba('0x1e')]?_[_0x70ba('0x1f')](_0x1c0d08[_0x70ba('0x1e')],function(_0x5c766d){return{'model':db[_0x5c766d[_0x70ba('0x20')]],'as':_0x5c766d['as'],'attributes':_0x5c766d[_0x70ba('0x1d')]};}):[]};}):[]};}):[]:[]})[_0x70ba('0x21')](function(_0x556490){logger[_0x70ba('0xe')]('ShowSmsAccount',_0x5c518c);logger[_0x70ba('0x11')](_0x70ba('0x19'),_0x5c518c,JSON[_0x70ba('0x13')](_0x556490));_0x53b7be(_0x556490);})[_0x70ba('0x18')](function(_0x3b4159){logger[_0x70ba('0x14')]('ShowSmsAccount',_0x3b4159['message'],_0x5c518c);_0x217f82(_0x518602[_0x70ba('0x14')](0x1f4,_0x3b4159['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['register','length','smsAccount:','./smsAccount.events','save','remove','emit','removeListener'];(function(_0x42cae2,_0x284ef8){var _0x5f256f=function(_0x41abc8){while(--_0x41abc8){_0x42cae2['push'](_0x42cae2['shift']());}};_0x5f256f(++_0x284ef8);}(_0xa9e0,0x123));var _0x0a9e=function(_0x173d7e,_0x3242fd){_0x173d7e=_0x173d7e-0x0;var _0x2220d6=_0xa9e0[_0x173d7e];return _0x2220d6;};'use strict';var SmsAccountEvents=require(_0x0a9e('0x0'));var events=[_0x0a9e('0x1'),_0x0a9e('0x2'),'update'];function createListener(_0x550fbc,_0x18d5c9){return function(_0x4ce2f1){_0x18d5c9[_0x0a9e('0x3')](_0x550fbc,_0x4ce2f1);};}function removeListener(_0x432180,_0x2ab90b){return function(){SmsAccountEvents[_0x0a9e('0x4')](_0x432180,_0x2ab90b);};}exports[_0x0a9e('0x5')]=function(_0x57b080){for(var _0x219af0=0x0,_0x441e3a=events[_0x0a9e('0x6')];_0x219af0<_0x441e3a;_0x219af0++){var _0x5f41ea=events[_0x219af0];var _0x503809=createListener(_0x0a9e('0x7')+_0x5f41ea,_0x57b080);SmsAccountEvents['on'](_0x5f41ea,_0x503809);}};
\ No newline at end of file
+var _0xa9e0=['register','length','smsAccount:','./smsAccount.events','save','remove','emit','removeListener'];(function(_0x40a045,_0x516f0e){var _0x1a687c=function(_0x48c9fe){while(--_0x48c9fe){_0x40a045['push'](_0x40a045['shift']());}};_0x1a687c(++_0x516f0e);}(_0xa9e0,0x123));var _0x0a9e=function(_0xbb091,_0x3fe7ee){_0xbb091=_0xbb091-0x0;var _0x467a04=_0xa9e0[_0xbb091];return _0x467a04;};'use strict';var SmsAccountEvents=require(_0x0a9e('0x0'));var events=[_0x0a9e('0x1'),_0x0a9e('0x2'),'update'];function createListener(_0x550fbc,_0x18d5c9){return function(_0x4ce2f1){_0x18d5c9[_0x0a9e('0x3')](_0x550fbc,_0x4ce2f1);};}function removeListener(_0x432180,_0x2ab90b){return function(){SmsAccountEvents[_0x0a9e('0x4')](_0x432180,_0x2ab90b);};}exports[_0x0a9e('0x5')]=function(_0x57b080){for(var _0x219af0=0x0,_0x441e3a=events[_0x0a9e('0x6')];_0x219af0<_0x441e3a;_0x219af0++){var _0x5f41ea=events[_0x219af0];var _0x503809=createListener(_0x0a9e('0x7')+_0x5f41ea,_0x57b080);SmsAccountEvents['on'](_0x5f41ea,_0x503809);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7217=['Router','fs-extra','../../config/environment','./smsApplication.controller','get','isAuthenticated','index','/:id','show','post','create','put','delete','destroy','exports','multer','path','connect-timeout','express'];(function(_0x5736fe,_0x2ce1b8){var _0x20d02a=function(_0x34cbfa){while(--_0x34cbfa){_0x5736fe['push'](_0x5736fe['shift']());}};_0x20d02a(++_0x2ce1b8);}(_0x7217,0x19e));var _0x7721=function(_0x4fc9e6,_0xc51915){_0x4fc9e6=_0x4fc9e6-0x0;var _0x551d28=_0x7217[_0x4fc9e6];return _0x551d28;};'use strict';var multer=require(_0x7721('0x0'));var util=require('util');var path=require(_0x7721('0x1'));var timeout=require(_0x7721('0x2'));var express=require(_0x7721('0x3'));var router=express[_0x7721('0x4')]();var fs_extra=require(_0x7721('0x5'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x7721('0x6'));var controller=require(_0x7721('0x7'));router[_0x7721('0x8')]('/',auth[_0x7721('0x9')](),controller[_0x7721('0xa')]);router[_0x7721('0x8')](_0x7721('0xb'),auth[_0x7721('0x9')](),controller[_0x7721('0xc')]);router[_0x7721('0xd')]('/',auth[_0x7721('0x9')](),controller[_0x7721('0xe')]);router[_0x7721('0xf')](_0x7721('0xb'),auth[_0x7721('0x9')](),controller['update']);router[_0x7721('0x10')](_0x7721('0xb'),auth[_0x7721('0x9')](),controller[_0x7721('0x11')]);module[_0x7721('0x12')]=router;
\ No newline at end of file
+var _0x7217=['Router','fs-extra','../../config/environment','./smsApplication.controller','get','isAuthenticated','index','/:id','show','post','create','put','delete','destroy','exports','multer','path','connect-timeout','express'];(function(_0x14f849,_0x4d13e5){var _0xcef4c4=function(_0x5e4fbc){while(--_0x5e4fbc){_0x14f849['push'](_0x14f849['shift']());}};_0xcef4c4(++_0x4d13e5);}(_0x7217,0x19e));var _0x7721=function(_0x139a3c,_0x4fc883){_0x139a3c=_0x139a3c-0x0;var _0x2b375b=_0x7217[_0x139a3c];return _0x2b375b;};'use strict';var multer=require(_0x7721('0x0'));var util=require('util');var path=require(_0x7721('0x1'));var timeout=require(_0x7721('0x2'));var express=require(_0x7721('0x3'));var router=express[_0x7721('0x4')]();var fs_extra=require(_0x7721('0x5'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x7721('0x6'));var controller=require(_0x7721('0x7'));router[_0x7721('0x8')]('/',auth[_0x7721('0x9')](),controller[_0x7721('0xa')]);router[_0x7721('0x8')](_0x7721('0xb'),auth[_0x7721('0x9')](),controller[_0x7721('0xc')]);router[_0x7721('0xd')]('/',auth[_0x7721('0x9')](),controller[_0x7721('0xe')]);router[_0x7721('0xf')](_0x7721('0xb'),auth[_0x7721('0x9')](),controller['update']);router[_0x7721('0x10')](_0x7721('0xb'),auth[_0x7721('0x9')](),controller[_0x7721('0x11')]);module[_0x7721('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa2d2=['STRING','noop','TEXT','*,*,*,*','sequelize','INTEGER'];(function(_0x4bc314,_0x20a3dd){var _0xfc7d8c=function(_0x5b7ea6){while(--_0x5b7ea6){_0x4bc314['push'](_0x4bc314['shift']());}};_0xfc7d8c(++_0x20a3dd);}(_0xa2d2,0x1de));var _0x2a2d=function(_0x72a45c,_0x1dc5f2){_0x72a45c=_0x72a45c-0x0;var _0x5c5ec9=_0xa2d2[_0x72a45c];return _0x5c5ec9;};'use strict';var Sequelize=require(_0x2a2d('0x0'));module['exports']={'priority':{'type':Sequelize[_0x2a2d('0x1')],'allowNull':![]},'app':{'type':Sequelize[_0x2a2d('0x2')],'allowNull':![],'defaultValue':_0x2a2d('0x3')},'appdata':{'type':Sequelize[_0x2a2d('0x4')]()},'description':{'type':Sequelize[_0x2a2d('0x2')]},'interval':{'type':Sequelize[_0x2a2d('0x2')],'defaultValue':_0x2a2d('0x5')}};
\ No newline at end of file
+var _0xed30=['TEXT','STRING','sequelize','exports','INTEGER','noop'];(function(_0x5190f1,_0xa09e2b){var _0x346e96=function(_0x3c8b8d){while(--_0x3c8b8d){_0x5190f1['push'](_0x5190f1['shift']());}};_0x346e96(++_0xa09e2b);}(_0xed30,0x1e8));var _0x0ed3=function(_0x3632c9,_0xce728d){_0x3632c9=_0x3632c9-0x0;var _0x2d7e2c=_0xed30[_0x3632c9];return _0x2d7e2c;};'use strict';var Sequelize=require(_0x0ed3('0x0'));module[_0x0ed3('0x1')]={'priority':{'type':Sequelize[_0x0ed3('0x2')],'allowNull':![]},'app':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0x0ed3('0x3')},'appdata':{'type':Sequelize[_0x0ed3('0x4')]()},'description':{'type':Sequelize[_0x0ed3('0x5')]},'interval':{'type':Sequelize[_0x0ed3('0x5')],'defaultValue':'*,*,*,*'}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2077=['type','model','query','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','findAll','params','keys','includeAll','catch','create','body','update','find','eml-format','rimraf','zip-dir','request-promise','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','json','apply','save','then','destroy','error','stack','name','send','map','SmsApplication','rawAttributes','fieldName'];(function(_0x499390,_0x3e4232){var _0x10556b=function(_0x1db37a){while(--_0x1db37a){_0x499390['push'](_0x499390['shift']());}};_0x10556b(++_0x3e4232);}(_0x2077,0x142));var _0x7207=function(_0xbcc9ef,_0x25ac76){_0xbcc9ef=_0xbcc9ef-0x0;var _0x508627=_0x2077[_0xbcc9ef];return _0x508627;};'use strict';var emlformat=require(_0x7207('0x0'));var rimraf=require(_0x7207('0x1'));var zipdir=require(_0x7207('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x7207('0x3'));var moment=require('moment');var BPromise=require(_0x7207('0x4'));var Mustache=require(_0x7207('0x5'));var util=require(_0x7207('0x6'));var path=require('path');var sox=require(_0x7207('0x7'));var csv=require(_0x7207('0x8'));var ejs=require(_0x7207('0x9'));var fs=require('fs');var fs_extra=require(_0x7207('0xa'));var _=require(_0x7207('0xb'));var squel=require('squel');var crypto=require(_0x7207('0xc'));var jsforce=require(_0x7207('0xd'));var deskjs=require(_0x7207('0xe'));var toCsv=require(_0x7207('0x8'));var querystring=require(_0x7207('0xf'));var Papa=require(_0x7207('0x10'));var Redis=require(_0x7207('0x11'));var authService=require(_0x7207('0x12'));var qs=require(_0x7207('0x13'));var as=require(_0x7207('0x14'));var hardwareService=require(_0x7207('0x15'));var logger=require('../../config/logger')(_0x7207('0x16'));var utils=require(_0x7207('0x17'));var config=require(_0x7207('0x18'));var licenseUtil=require(_0x7207('0x19'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x17edcf,_0x23aa74){_0x23aa74=_0x23aa74||0xcc;return function(_0x260f32){if(_0x260f32){return _0x17edcf[_0x7207('0x1a')](_0x23aa74);}return _0x17edcf[_0x7207('0x1b')](_0x23aa74)[_0x7207('0x1c')]();};}function respondWithResult(_0x458e2e,_0x19a0d0){_0x19a0d0=_0x19a0d0||0xc8;return function(_0x5938fd){if(_0x5938fd){return _0x458e2e[_0x7207('0x1b')](_0x19a0d0)['json'](_0x5938fd);}};}function respondWithFilteredResult(_0x8f546a,_0x409c38){return function(_0x399e07){if(_0x399e07){var _0x26a662=typeof _0x409c38[_0x7207('0x1d')]===_0x7207('0x1e')&&typeof _0x409c38[_0x7207('0x1f')]===_0x7207('0x1e');var _0x1b23be=_0x399e07[_0x7207('0x20')];var _0x67a7d3=_0x26a662?0x0:_0x409c38[_0x7207('0x1d')];var _0x5ec21e=_0x26a662?_0x399e07['count']:_0x409c38['offset']+_0x409c38[_0x7207('0x1f')];var _0x10f4c9;if(_0x5ec21e>=_0x1b23be){_0x5ec21e=_0x1b23be;_0x10f4c9=0xc8;}else{_0x10f4c9=0xce;}_0x8f546a[_0x7207('0x1b')](_0x10f4c9);return _0x8f546a[_0x7207('0x21')](_0x7207('0x22'),_0x67a7d3+'-'+_0x5ec21e+'/'+_0x1b23be)[_0x7207('0x23')](_0x399e07);}return null;};}function patchUpdates(_0x54a2fa){return function(_0x43a4f1){try{jsonpatch[_0x7207('0x24')](_0x43a4f1,_0x54a2fa,!![]);}catch(_0x2d829d){return BPromise['reject'](_0x2d829d);}return _0x43a4f1[_0x7207('0x25')]();};}function saveUpdates(_0x280261,_0x368ead){return function(_0x556597){if(_0x556597){return _0x556597['update'](_0x280261)[_0x7207('0x26')](function(_0x1c89b8){return _0x1c89b8;});}return null;};}function removeEntity(_0x356f23,_0x30140d){return function(_0x31cd35){if(_0x31cd35){return _0x31cd35[_0x7207('0x27')]()[_0x7207('0x26')](function(){_0x356f23[_0x7207('0x1b')](0xcc)[_0x7207('0x1c')]();});}};}function handleEntityNotFound(_0xc534b4,_0x5b1872){return function(_0x33522c){if(!_0x33522c){_0xc534b4[_0x7207('0x1a')](0x194);}return _0x33522c;};}function handleError(_0x1a5082,_0x375f42){_0x375f42=_0x375f42||0x1f4;return function(_0x32ff4c){logger[_0x7207('0x28')](_0x32ff4c[_0x7207('0x29')]);if(_0x32ff4c[_0x7207('0x2a')]){delete _0x32ff4c['name'];}_0x1a5082[_0x7207('0x1b')](_0x375f42)[_0x7207('0x2b')](_0x32ff4c);};}exports['index']=function(_0x257a7d,_0x44d8f2){var _0x413027={},_0x2331da={},_0x1e1528={'count':0x0,'rows':[]};var _0x52b23c=_[_0x7207('0x2c')](db[_0x7207('0x2d')][_0x7207('0x2e')],function(_0x3c7778){return{'name':_0x3c7778[_0x7207('0x2f')],'type':_0x3c7778[_0x7207('0x30')]['key']};});_0x2331da[_0x7207('0x31')]=_[_0x7207('0x2c')](_0x52b23c,_0x7207('0x2a'));_0x2331da['query']=_['keys'](_0x257a7d[_0x7207('0x32')]);_0x2331da[_0x7207('0x33')]=_['intersection'](_0x2331da[_0x7207('0x31')],_0x2331da[_0x7207('0x32')]);_0x413027[_0x7207('0x34')]=_[_0x7207('0x35')](_0x2331da['model'],qs[_0x7207('0x36')](_0x257a7d[_0x7207('0x32')][_0x7207('0x36')]));_0x413027[_0x7207('0x34')]=_0x413027[_0x7207('0x34')][_0x7207('0x37')]?_0x413027['attributes']:_0x2331da[_0x7207('0x31')];if(!_0x257a7d['query'][_0x7207('0x38')](_0x7207('0x39'))){_0x413027[_0x7207('0x1f')]=qs[_0x7207('0x1f')](_0x257a7d['query']['limit']);_0x413027[_0x7207('0x1d')]=qs[_0x7207('0x1d')](_0x257a7d[_0x7207('0x32')][_0x7207('0x1d')]);}_0x413027['order']=qs[_0x7207('0x3a')](_0x257a7d[_0x7207('0x32')]['sort']);_0x413027[_0x7207('0x3b')]=qs[_0x7207('0x33')](_[_0x7207('0x3c')](_0x257a7d[_0x7207('0x32')],_0x2331da[_0x7207('0x33')]),_0x52b23c);if(_0x257a7d[_0x7207('0x32')][_0x7207('0x3d')]){_0x413027[_0x7207('0x3b')]=_[_0x7207('0x3e')](_0x413027['where'],{'$or':_[_0x7207('0x2c')](_0x52b23c,function(_0x37bcbf){if(_0x37bcbf[_0x7207('0x30')]!==_0x7207('0x3f')){var _0x10702c={};_0x10702c[_0x37bcbf['name']]={'$like':'%'+_0x257a7d[_0x7207('0x32')][_0x7207('0x3d')]+'%'};return _0x10702c;}})});}_0x413027=_['merge']({},_0x413027,_0x257a7d[_0x7207('0x40')]);var _0x1ad701={'where':_0x413027[_0x7207('0x3b')]};return db[_0x7207('0x2d')][_0x7207('0x20')](_0x1ad701)[_0x7207('0x26')](function(_0xfdd7a0){_0x1e1528['count']=_0xfdd7a0;if(_0x257a7d['query']['includeAll']){_0x413027['include']=[{'all':!![]}];}return db[_0x7207('0x2d')][_0x7207('0x41')](_0x413027);})[_0x7207('0x26')](function(_0x2445ad){_0x1e1528['rows']=_0x2445ad;return _0x1e1528;})[_0x7207('0x26')](respondWithFilteredResult(_0x44d8f2,_0x413027))['catch'](handleError(_0x44d8f2,null));};exports['show']=function(_0xc8e6c8,_0x321d48){var _0x3a0ce7={'raw':!![],'where':{'id':_0xc8e6c8[_0x7207('0x42')]['id']}},_0x441343={};_0x441343[_0x7207('0x31')]=_[_0x7207('0x43')](db[_0x7207('0x2d')][_0x7207('0x2e')]);_0x441343[_0x7207('0x32')]=_[_0x7207('0x43')](_0xc8e6c8[_0x7207('0x32')]);_0x441343[_0x7207('0x33')]=_['intersection'](_0x441343['model'],_0x441343[_0x7207('0x32')]);_0x3a0ce7['attributes']=_[_0x7207('0x35')](_0x441343[_0x7207('0x31')],qs[_0x7207('0x36')](_0xc8e6c8['query'][_0x7207('0x36')]));_0x3a0ce7[_0x7207('0x34')]=_0x3a0ce7[_0x7207('0x34')][_0x7207('0x37')]?_0x3a0ce7[_0x7207('0x34')]:_0x441343[_0x7207('0x31')];if(_0xc8e6c8['query'][_0x7207('0x44')]){_0x3a0ce7['include']=[{'all':!![]}];}_0x3a0ce7=_[_0x7207('0x3e')]({},_0x3a0ce7,_0xc8e6c8['options']);return db[_0x7207('0x2d')]['find'](_0x3a0ce7)[_0x7207('0x26')](handleEntityNotFound(_0x321d48,null))[_0x7207('0x26')](respondWithResult(_0x321d48,null))[_0x7207('0x45')](handleError(_0x321d48,null));};exports[_0x7207('0x46')]=function(_0x2ffcea,_0x4bc828){return db[_0x7207('0x2d')]['create'](_0x2ffcea[_0x7207('0x47')],{})[_0x7207('0x26')](respondWithResult(_0x4bc828,0xc9))[_0x7207('0x45')](handleError(_0x4bc828,null));};exports[_0x7207('0x48')]=function(_0xccf2da,_0x2d6ea9){if(_0xccf2da['body']['id']){delete _0xccf2da['body']['id'];}return db[_0x7207('0x2d')][_0x7207('0x49')]({'where':{'id':_0xccf2da[_0x7207('0x42')]['id']}})[_0x7207('0x26')](handleEntityNotFound(_0x2d6ea9,null))[_0x7207('0x26')](saveUpdates(_0xccf2da['body'],null))[_0x7207('0x26')](respondWithResult(_0x2d6ea9,null))[_0x7207('0x45')](handleError(_0x2d6ea9,null));};exports[_0x7207('0x27')]=function(_0x2d5298,_0x522c02){return db['SmsApplication'][_0x7207('0x49')]({'where':{'id':_0x2d5298[_0x7207('0x42')]['id']}})[_0x7207('0x26')](handleEntityNotFound(_0x522c02,null))[_0x7207('0x26')](removeEntity(_0x522c02,null))[_0x7207('0x45')](handleError(_0x522c02,null));};
\ No newline at end of file
+var _0x78f9=['Content-Range','reject','save','update','then','destroy','stack','name','send','index','map','SmsApplication','rawAttributes','fieldName','type','key','keys','query','filters','intersection','model','attributes','fields','hasOwnProperty','nolimit','order','sort','where','merge','VIRTUAL','filter','options','includeAll','include','rows','show','params','length','find','catch','create','body','eml-format','fast-json-patch','request-promise','moment','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x78f9,0x108));var _0x978f=function(_0x31cb5f,_0x2df766){_0x31cb5f=_0x31cb5f-0x0;var _0x586042=_0x78f9[_0x31cb5f];return _0x586042;};'use strict';var emlformat=require(_0x978f('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x978f('0x1'));var rp=require(_0x978f('0x2'));var moment=require(_0x978f('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x978f('0x4'));var util=require(_0x978f('0x5'));var path=require('path');var sox=require(_0x978f('0x6'));var csv=require(_0x978f('0x7'));var ejs=require(_0x978f('0x8'));var fs=require('fs');var fs_extra=require(_0x978f('0x9'));var _=require(_0x978f('0xa'));var squel=require(_0x978f('0xb'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x978f('0xc'));var toCsv=require(_0x978f('0x7'));var querystring=require(_0x978f('0xd'));var Papa=require(_0x978f('0xe'));var Redis=require(_0x978f('0xf'));var authService=require('../../components/auth/service');var qs=require(_0x978f('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x978f('0x11'));var logger=require(_0x978f('0x12'))(_0x978f('0x13'));var utils=require('../../config/utils');var config=require(_0x978f('0x14'));var licenseUtil=require(_0x978f('0x15'));var db=require(_0x978f('0x16'))['db'];function respondWithStatusCode(_0x5e8dd5,_0x3a0997){_0x3a0997=_0x3a0997||0xcc;return function(_0x4826df){if(_0x4826df){return _0x5e8dd5[_0x978f('0x17')](_0x3a0997);}return _0x5e8dd5[_0x978f('0x18')](_0x3a0997)[_0x978f('0x19')]();};}function respondWithResult(_0x15a827,_0x197ff5){_0x197ff5=_0x197ff5||0xc8;return function(_0x3de7ef){if(_0x3de7ef){return _0x15a827['status'](_0x197ff5)[_0x978f('0x1a')](_0x3de7ef);}};}function respondWithFilteredResult(_0x2d923a,_0x591a46){return function(_0x46de3b){if(_0x46de3b){var _0x5a6186=typeof _0x591a46[_0x978f('0x1b')]===_0x978f('0x1c')&&typeof _0x591a46[_0x978f('0x1d')]===_0x978f('0x1c');var _0x58e5c2=_0x46de3b[_0x978f('0x1e')];var _0x460cc1=_0x5a6186?0x0:_0x591a46[_0x978f('0x1b')];var _0x5b6070=_0x5a6186?_0x46de3b[_0x978f('0x1e')]:_0x591a46[_0x978f('0x1b')]+_0x591a46[_0x978f('0x1d')];var _0x14e3d2;if(_0x5b6070>=_0x58e5c2){_0x5b6070=_0x58e5c2;_0x14e3d2=0xc8;}else{_0x14e3d2=0xce;}_0x2d923a[_0x978f('0x18')](_0x14e3d2);return _0x2d923a[_0x978f('0x1f')](_0x978f('0x20'),_0x460cc1+'-'+_0x5b6070+'/'+_0x58e5c2)[_0x978f('0x1a')](_0x46de3b);}return null;};}function patchUpdates(_0x2e4388){return function(_0x478e26){try{jsonpatch['apply'](_0x478e26,_0x2e4388,!![]);}catch(_0x5a550b){return BPromise[_0x978f('0x21')](_0x5a550b);}return _0x478e26[_0x978f('0x22')]();};}function saveUpdates(_0x3382ec,_0x4a06e1){return function(_0x3ff40b){if(_0x3ff40b){return _0x3ff40b[_0x978f('0x23')](_0x3382ec)[_0x978f('0x24')](function(_0x396930){return _0x396930;});}return null;};}function removeEntity(_0x528552,_0x3b8a44){return function(_0x4c23da){if(_0x4c23da){return _0x4c23da[_0x978f('0x25')]()['then'](function(){_0x528552[_0x978f('0x18')](0xcc)[_0x978f('0x19')]();});}};}function handleEntityNotFound(_0x10e54d,_0x374cea){return function(_0x17706a){if(!_0x17706a){_0x10e54d[_0x978f('0x17')](0x194);}return _0x17706a;};}function handleError(_0x2317de,_0x930953){_0x930953=_0x930953||0x1f4;return function(_0x307724){logger['error'](_0x307724[_0x978f('0x26')]);if(_0x307724[_0x978f('0x27')]){delete _0x307724[_0x978f('0x27')];}_0x2317de[_0x978f('0x18')](_0x930953)[_0x978f('0x28')](_0x307724);};}exports[_0x978f('0x29')]=function(_0x129b2a,_0x43dadb){var _0x582db0={},_0x55c401={},_0x595956={'count':0x0,'rows':[]};var _0x2f39ab=_[_0x978f('0x2a')](db[_0x978f('0x2b')][_0x978f('0x2c')],function(_0x123b70){return{'name':_0x123b70[_0x978f('0x2d')],'type':_0x123b70[_0x978f('0x2e')][_0x978f('0x2f')]};});_0x55c401['model']=_[_0x978f('0x2a')](_0x2f39ab,'name');_0x55c401['query']=_[_0x978f('0x30')](_0x129b2a[_0x978f('0x31')]);_0x55c401[_0x978f('0x32')]=_[_0x978f('0x33')](_0x55c401[_0x978f('0x34')],_0x55c401[_0x978f('0x31')]);_0x582db0[_0x978f('0x35')]=_[_0x978f('0x33')](_0x55c401[_0x978f('0x34')],qs['fields'](_0x129b2a[_0x978f('0x31')][_0x978f('0x36')]));_0x582db0[_0x978f('0x35')]=_0x582db0[_0x978f('0x35')]['length']?_0x582db0[_0x978f('0x35')]:_0x55c401[_0x978f('0x34')];if(!_0x129b2a[_0x978f('0x31')][_0x978f('0x37')](_0x978f('0x38'))){_0x582db0['limit']=qs[_0x978f('0x1d')](_0x129b2a[_0x978f('0x31')][_0x978f('0x1d')]);_0x582db0[_0x978f('0x1b')]=qs['offset'](_0x129b2a[_0x978f('0x31')][_0x978f('0x1b')]);}_0x582db0[_0x978f('0x39')]=qs[_0x978f('0x3a')](_0x129b2a[_0x978f('0x31')][_0x978f('0x3a')]);_0x582db0[_0x978f('0x3b')]=qs[_0x978f('0x32')](_['pick'](_0x129b2a[_0x978f('0x31')],_0x55c401[_0x978f('0x32')]),_0x2f39ab);if(_0x129b2a['query']['filter']){_0x582db0['where']=_[_0x978f('0x3c')](_0x582db0[_0x978f('0x3b')],{'$or':_[_0x978f('0x2a')](_0x2f39ab,function(_0x4a91be){if(_0x4a91be['type']!==_0x978f('0x3d')){var _0x5cd782={};_0x5cd782[_0x4a91be[_0x978f('0x27')]]={'$like':'%'+_0x129b2a[_0x978f('0x31')][_0x978f('0x3e')]+'%'};return _0x5cd782;}})});}_0x582db0=_['merge']({},_0x582db0,_0x129b2a[_0x978f('0x3f')]);var _0x234ba7={'where':_0x582db0['where']};return db['SmsApplication'][_0x978f('0x1e')](_0x234ba7)['then'](function(_0x43868f){_0x595956[_0x978f('0x1e')]=_0x43868f;if(_0x129b2a[_0x978f('0x31')][_0x978f('0x40')]){_0x582db0[_0x978f('0x41')]=[{'all':!![]}];}return db[_0x978f('0x2b')]['findAll'](_0x582db0);})['then'](function(_0x5c91d6){_0x595956[_0x978f('0x42')]=_0x5c91d6;return _0x595956;})[_0x978f('0x24')](respondWithFilteredResult(_0x43dadb,_0x582db0))['catch'](handleError(_0x43dadb,null));};exports[_0x978f('0x43')]=function(_0x6152c3,_0x58f8ec){var _0x284272={'raw':!![],'where':{'id':_0x6152c3[_0x978f('0x44')]['id']}},_0x386fe4={};_0x386fe4['model']=_['keys'](db[_0x978f('0x2b')]['rawAttributes']);_0x386fe4[_0x978f('0x31')]=_[_0x978f('0x30')](_0x6152c3[_0x978f('0x31')]);_0x386fe4[_0x978f('0x32')]=_['intersection'](_0x386fe4[_0x978f('0x34')],_0x386fe4[_0x978f('0x31')]);_0x284272[_0x978f('0x35')]=_[_0x978f('0x33')](_0x386fe4[_0x978f('0x34')],qs[_0x978f('0x36')](_0x6152c3['query']['fields']));_0x284272[_0x978f('0x35')]=_0x284272[_0x978f('0x35')][_0x978f('0x45')]?_0x284272['attributes']:_0x386fe4[_0x978f('0x34')];if(_0x6152c3[_0x978f('0x31')][_0x978f('0x40')]){_0x284272['include']=[{'all':!![]}];}_0x284272=_[_0x978f('0x3c')]({},_0x284272,_0x6152c3[_0x978f('0x3f')]);return db['SmsApplication'][_0x978f('0x46')](_0x284272)[_0x978f('0x24')](handleEntityNotFound(_0x58f8ec,null))[_0x978f('0x24')](respondWithResult(_0x58f8ec,null))[_0x978f('0x47')](handleError(_0x58f8ec,null));};exports[_0x978f('0x48')]=function(_0x2c7005,_0x4470e7){return db[_0x978f('0x2b')]['create'](_0x2c7005['body'],{})[_0x978f('0x24')](respondWithResult(_0x4470e7,0xc9))[_0x978f('0x47')](handleError(_0x4470e7,null));};exports['update']=function(_0x19bad8,_0x4b513d){if(_0x19bad8[_0x978f('0x49')]['id']){delete _0x19bad8[_0x978f('0x49')]['id'];}return db[_0x978f('0x2b')][_0x978f('0x46')]({'where':{'id':_0x19bad8[_0x978f('0x44')]['id']}})[_0x978f('0x24')](handleEntityNotFound(_0x4b513d,null))[_0x978f('0x24')](saveUpdates(_0x19bad8[_0x978f('0x49')],null))[_0x978f('0x24')](respondWithResult(_0x4b513d,null))[_0x978f('0x47')](handleError(_0x4b513d,null));};exports[_0x978f('0x25')]=function(_0x200f58,_0x2202b1){return db[_0x978f('0x2b')][_0x978f('0x46')]({'where':{'id':_0x200f58['params']['id']}})['then'](handleEntityNotFound(_0x2202b1,null))[_0x978f('0x24')](removeEntity(_0x2202b1,null))[_0x978f('0x47')](handleError(_0x2202b1,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa20a=['./smsApplication.attributes','exports','define','SmsApplication','sms_applications','utf8mb4','utf8mb4_unicode_ci','lodash','util','../../config/logger','api','moment','request-promise','path','rimraf','../../config/environment'];(function(_0x50ae86,_0x41ded2){var _0x397b64=function(_0x55f18a){while(--_0x55f18a){_0x50ae86['push'](_0x50ae86['shift']());}};_0x397b64(++_0x41ded2);}(_0xa20a,0x167));var _0xaa20=function(_0x40a045,_0x516f0e){_0x40a045=_0x40a045-0x0;var _0x1a687c=_0xa20a[_0x40a045];return _0x1a687c;};'use strict';var _=require(_0xaa20('0x0'));var util=require(_0xaa20('0x1'));var logger=require(_0xaa20('0x2'))(_0xaa20('0x3'));var moment=require(_0xaa20('0x4'));var BPromise=require('bluebird');var rp=require(_0xaa20('0x5'));var fs=require('fs');var path=require(_0xaa20('0x6'));var rimraf=require(_0xaa20('0x7'));var config=require(_0xaa20('0x8'));var attributes=require(_0xaa20('0x9'));module[_0xaa20('0xa')]=function(_0x502f17,_0x1a7e3c){return _0x502f17[_0xaa20('0xb')](_0xaa20('0xc'),attributes,{'tableName':_0xaa20('0xd'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0xaa20('0xe'),'collate':_0xaa20('0xf')});};
\ No newline at end of file
+var _0x15c4=['./smsApplication.attributes','exports','define','SmsApplication','utf8mb4','lodash','util','../../config/logger','bluebird','request-promise','path','rimraf'];(function(_0x21a9d9,_0x4d5ac8){var _0x46adce=function(_0xfdd336){while(--_0xfdd336){_0x21a9d9['push'](_0x21a9d9['shift']());}};_0x46adce(++_0x4d5ac8);}(_0x15c4,0x10d));var _0x415c=function(_0x268bd4,_0x1f29dc){_0x268bd4=_0x268bd4-0x0;var _0x57ecb2=_0x15c4[_0x268bd4];return _0x57ecb2;};'use strict';var _=require(_0x415c('0x0'));var util=require(_0x415c('0x1'));var logger=require(_0x415c('0x2'))('api');var moment=require('moment');var BPromise=require(_0x415c('0x3'));var rp=require(_0x415c('0x4'));var fs=require('fs');var path=require(_0x415c('0x5'));var rimraf=require(_0x415c('0x6'));var config=require('../../config/environment');var attributes=require(_0x415c('0x7'));module[_0x415c('0x8')]=function(_0x1b0650,_0x11be5b){return _0x1b0650[_0x415c('0x9')](_0x415c('0xa'),attributes,{'tableName':'sms_applications','paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x415c('0xb'),'collate':'utf8mb4_unicode_ci'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7916=['result','catch','lodash','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','client','http','then','SmsApplication,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','info'];(function(_0x3433eb,_0x50b0a2){var _0x1d9527=function(_0x21bf7e){while(--_0x21bf7e){_0x3433eb['push'](_0x3433eb['shift']());}};_0x1d9527(++_0x50b0a2);}(_0x7916,0x128));var _0x6791=function(_0x5610b7,_0x5095be){_0x5610b7=_0x5610b7-0x0;var _0x1c0eef=_0x7916[_0x5610b7];return _0x1c0eef;};'use strict';var _=require(_0x6791('0x0'));var util=require('util');var moment=require(_0x6791('0x1'));var BPromise=require(_0x6791('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x6791('0x3'));var db=require(_0x6791('0x4'))['db'];var utils=require(_0x6791('0x5'));var logger=require(_0x6791('0x6'))('rpc');var config=require(_0x6791('0x7'));var jayson=require('jayson/promise');var client=jayson[_0x6791('0x8')][_0x6791('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x5ad8c0,_0x8b85ff,_0x5d2118){return new BPromise(function(_0x2b240c,_0x50c563){return client['request'](_0x5ad8c0,_0x5d2118)[_0x6791('0xa')](function(_0x198a64){logger['info'](_0x6791('0xb'),_0x8b85ff,_0x6791('0xc'));logger[_0x6791('0xd')]('SmsApplication,\x20%s,\x20%s,\x20%s',_0x8b85ff,_0x6791('0xc'),JSON[_0x6791('0xe')](_0x198a64));if(_0x198a64[_0x6791('0xf')]){if(_0x198a64[_0x6791('0xf')][_0x6791('0x10')]===0x1f4){logger[_0x6791('0xf')](_0x6791('0xb'),_0x8b85ff,_0x198a64[_0x6791('0xf')][_0x6791('0x11')]);return _0x50c563(_0x198a64[_0x6791('0xf')][_0x6791('0x11')]);}logger['error']('SmsApplication,\x20%s,\x20%s',_0x8b85ff,_0x198a64[_0x6791('0xf')]['message']);return _0x2b240c(_0x198a64[_0x6791('0xf')]['message']);}else{logger[_0x6791('0x12')](_0x6791('0xb'),_0x8b85ff,'request\x20sent');_0x2b240c(_0x198a64[_0x6791('0x13')]['message']);}})[_0x6791('0x14')](function(_0x150d1f){logger['error'](_0x6791('0xb'),_0x8b85ff,_0x150d1f);_0x50c563(_0x150d1f);});});}
\ No newline at end of file
+var _0x881e=['stringify','error','code','message','result','catch','moment','bluebird','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','then','info','SmsApplication,\x20%s,\x20%s','debug','request\x20sent'];(function(_0x4527a7,_0x8ba51b){var _0x5efeb0=function(_0x1355a1){while(--_0x1355a1){_0x4527a7['push'](_0x4527a7['shift']());}};_0x5efeb0(++_0x8ba51b);}(_0x881e,0x146));var _0xe881=function(_0x506454,_0x29ea0a){_0x506454=_0x506454-0x0;var _0x2f4d66=_0x881e[_0x506454];return _0x2f4d66;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0xe881('0x0'));var BPromise=require(_0xe881('0x1'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xe881('0x2'));var db=require('../../mysqldb')['db'];var utils=require(_0xe881('0x3'));var logger=require(_0xe881('0x4'))(_0xe881('0x5'));var config=require(_0xe881('0x6'));var jayson=require('jayson/promise');var client=jayson[_0xe881('0x7')][_0xe881('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x561c1c,_0x3f6894,_0x2413dc){return new BPromise(function(_0xe16d23,_0x547217){return client['request'](_0x561c1c,_0x2413dc)[_0xe881('0x9')](function(_0x26e29e){logger[_0xe881('0xa')](_0xe881('0xb'),_0x3f6894,'request\x20sent');logger[_0xe881('0xc')]('SmsApplication,\x20%s,\x20%s,\x20%s',_0x3f6894,_0xe881('0xd'),JSON[_0xe881('0xe')](_0x26e29e));if(_0x26e29e[_0xe881('0xf')]){if(_0x26e29e[_0xe881('0xf')][_0xe881('0x10')]===0x1f4){logger[_0xe881('0xf')](_0xe881('0xb'),_0x3f6894,_0x26e29e['error'][_0xe881('0x11')]);return _0x547217(_0x26e29e[_0xe881('0xf')][_0xe881('0x11')]);}logger['error'](_0xe881('0xb'),_0x3f6894,_0x26e29e['error'][_0xe881('0x11')]);return _0xe16d23(_0x26e29e[_0xe881('0xf')][_0xe881('0x11')]);}else{logger[_0xe881('0xa')]('SmsApplication,\x20%s,\x20%s',_0x3f6894,_0xe881('0xd'));_0xe16d23(_0x26e29e[_0xe881('0x12')][_0xe881('0x11')]);}})[_0xe881('0x13')](function(_0x59b441){logger[_0xe881('0xf')](_0xe881('0xb'),_0x3f6894,_0x59b441);_0x547217(_0x59b441);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x80ed=['delete','smsinteraction:destroy','destroy','/:id/tags','removeTags','multer','path','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/describe','describe','/:id','show','/:id/messages','/:id/download','download','post','create','tracked','sms','smsinteraction:addtags','addTags','smsinteraction:update','update'];(function(_0x552fce,_0x3f24bc){var _0x3e27a2=function(_0xc91154){while(--_0xc91154){_0x552fce['push'](_0x552fce['shift']());}};_0x3e27a2(++_0x3f24bc);}(_0x80ed,0x11c));var _0xd80e=function(_0x266300,_0x54e9bf){_0x266300=_0x266300-0x0;var _0x1ba61d=_0x80ed[_0x266300];return _0x1ba61d;};'use strict';var multer=require(_0xd80e('0x0'));var util=require('util');var path=require(_0xd80e('0x1'));var timeout=require(_0xd80e('0x2'));var express=require(_0xd80e('0x3'));var router=express['Router']();var fs_extra=require(_0xd80e('0x4'));var auth=require(_0xd80e('0x5'));var interaction=require(_0xd80e('0x6'));var config=require(_0xd80e('0x7'));var controller=require('./smsInteraction.controller');router[_0xd80e('0x8')]('/',auth[_0xd80e('0x9')](),controller[_0xd80e('0xa')]);router['get'](_0xd80e('0xb'),auth[_0xd80e('0x9')](),controller[_0xd80e('0xc')]);router[_0xd80e('0x8')](_0xd80e('0xd'),auth[_0xd80e('0x9')](),controller[_0xd80e('0xe')]);router[_0xd80e('0x8')](_0xd80e('0xf'),auth[_0xd80e('0x9')](),controller['getMessages']);router[_0xd80e('0x8')](_0xd80e('0x10'),auth[_0xd80e('0x9')](),controller[_0xd80e('0x11')]);router[_0xd80e('0x12')]('/',auth[_0xd80e('0x9')](),controller[_0xd80e('0x13')]);router[_0xd80e('0x12')](_0xd80e('0xf'),auth['isAuthenticated'](),controller['addMessage']);router['post']('/:id/tags',auth[_0xd80e('0x9')](),interaction[_0xd80e('0x14')](_0xd80e('0x15'),_0xd80e('0x16')),controller[_0xd80e('0x17')]);router['put'](_0xd80e('0xd'),auth[_0xd80e('0x9')](),interaction[_0xd80e('0x14')](_0xd80e('0x15'),_0xd80e('0x18')),controller[_0xd80e('0x19')]);router[_0xd80e('0x1a')](_0xd80e('0xd'),auth['isAuthenticated'](),interaction[_0xd80e('0x14')](_0xd80e('0x15'),_0xd80e('0x1b')),controller[_0xd80e('0x1c')]);router['delete'](_0xd80e('0x1d'),auth[_0xd80e('0x9')](),controller[_0xd80e('0x1e')]);module['exports']=router;
\ No newline at end of file
+var _0x9348=['addMessage','/:id/tags','sms','smsinteraction:addtags','addTags','put','/:id','tracked','update','delete','smsinteraction:destroy','removeTags','exports','multer','util','path','connect-timeout','express','fs-extra','../../components/auth/service','../../config/environment','./smsInteraction.controller','get','isAuthenticated','index','describe','/:id/messages','getMessages','/:id/download','download','post','create'];(function(_0x5a27e8,_0x492a2f){var _0x4e38f7=function(_0x2a4048){while(--_0x2a4048){_0x5a27e8['push'](_0x5a27e8['shift']());}};_0x4e38f7(++_0x492a2f);}(_0x9348,0x10d));var _0x8934=function(_0x26d187,_0x2b734d){_0x26d187=_0x26d187-0x0;var _0x5d44bb=_0x9348[_0x26d187];return _0x5d44bb;};'use strict';var multer=require(_0x8934('0x0'));var util=require(_0x8934('0x1'));var path=require(_0x8934('0x2'));var timeout=require(_0x8934('0x3'));var express=require(_0x8934('0x4'));var router=express['Router']();var fs_extra=require(_0x8934('0x5'));var auth=require(_0x8934('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0x8934('0x7'));var controller=require(_0x8934('0x8'));router[_0x8934('0x9')]('/',auth[_0x8934('0xa')](),controller[_0x8934('0xb')]);router[_0x8934('0x9')]('/describe',auth[_0x8934('0xa')](),controller[_0x8934('0xc')]);router[_0x8934('0x9')]('/:id',auth['isAuthenticated'](),controller['show']);router['get'](_0x8934('0xd'),auth['isAuthenticated'](),controller[_0x8934('0xe')]);router[_0x8934('0x9')](_0x8934('0xf'),auth[_0x8934('0xa')](),controller[_0x8934('0x10')]);router[_0x8934('0x11')]('/',auth[_0x8934('0xa')](),controller[_0x8934('0x12')]);router['post'](_0x8934('0xd'),auth[_0x8934('0xa')](),controller[_0x8934('0x13')]);router[_0x8934('0x11')](_0x8934('0x14'),auth[_0x8934('0xa')](),interaction['tracked'](_0x8934('0x15'),_0x8934('0x16')),controller[_0x8934('0x17')]);router[_0x8934('0x18')](_0x8934('0x19'),auth[_0x8934('0xa')](),interaction[_0x8934('0x1a')](_0x8934('0x15'),'smsinteraction:update'),controller[_0x8934('0x1b')]);router[_0x8934('0x1c')](_0x8934('0x19'),auth['isAuthenticated'](),interaction['tracked']('sms',_0x8934('0x1d')),controller['destroy']);router[_0x8934('0x1c')](_0x8934('0x14'),auth[_0x8934('0xa')](),controller[_0x8934('0x1e')]);module[_0x8934('0x1f')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9a5a=['DATE','STRING','ENUM','out','sequelize','moment','exports','BOOLEAN'];(function(_0x3b5250,_0x7a0b2c){var _0xc844a1=function(_0x2fbc98){while(--_0x2fbc98){_0x3b5250['push'](_0x3b5250['shift']());}};_0xc844a1(++_0x7a0b2c);}(_0x9a5a,0x194));var _0xa9a5=function(_0x56dfdd,_0x13d9b8){_0x56dfdd=_0x56dfdd-0x0;var _0x5cc8ec=_0x9a5a[_0x56dfdd];return _0x5cc8ec;};'use strict';var Sequelize=require(_0xa9a5('0x0'));var moment=require(_0xa9a5('0x1'));module[_0xa9a5('0x2')]={'closed':{'type':Sequelize[_0xa9a5('0x3')],'defaultValue':![]},'closedAt':{'type':Sequelize[_0xa9a5('0x4')]},'disposition':{'type':Sequelize['STRING']},'secondDisposition':{'type':Sequelize[_0xa9a5('0x5')]},'thirdDisposition':{'type':Sequelize[_0xa9a5('0x5')]},'note':{'type':Sequelize[_0xa9a5('0x5')]},'phone':{'type':Sequelize[_0xa9a5('0x5')]},'read1stAt':{'type':Sequelize[_0xa9a5('0x4')]},'firstMsgDirection':{'type':Sequelize[_0xa9a5('0x6')]('in','out'),'defaultValue':'in','allowNull':![]},'lastMsgAt':{'type':Sequelize[_0xa9a5('0x4')]},'lastMsgDirection':{'type':Sequelize[_0xa9a5('0x6')]('in',_0xa9a5('0x7')),'defaultValue':'in','allowNull':![]},'autoreplyExecuted':{'type':Sequelize[_0xa9a5('0x3')],'defaultValue':![]}};
\ No newline at end of file
+var _0x14f5=['moment','BOOLEAN','DATE','STRING','ENUM','out'];(function(_0x270c0f,_0x52e0e3){var _0x33de26=function(_0x7a4fd6){while(--_0x7a4fd6){_0x270c0f['push'](_0x270c0f['shift']());}};_0x33de26(++_0x52e0e3);}(_0x14f5,0xae));var _0x514f=function(_0x1d0343,_0x472470){_0x1d0343=_0x1d0343-0x0;var _0xeba613=_0x14f5[_0x1d0343];return _0xeba613;};'use strict';var Sequelize=require('sequelize');var moment=require(_0x514f('0x0'));module['exports']={'closed':{'type':Sequelize[_0x514f('0x1')],'defaultValue':![]},'closedAt':{'type':Sequelize[_0x514f('0x2')]},'disposition':{'type':Sequelize[_0x514f('0x3')]},'secondDisposition':{'type':Sequelize['STRING']},'thirdDisposition':{'type':Sequelize[_0x514f('0x3')]},'note':{'type':Sequelize[_0x514f('0x3')]},'phone':{'type':Sequelize['STRING']},'read1stAt':{'type':Sequelize[_0x514f('0x2')]},'firstMsgDirection':{'type':Sequelize[_0x514f('0x4')]('in',_0x514f('0x5')),'defaultValue':'in','allowNull':![]},'lastMsgAt':{'type':Sequelize[_0x514f('0x2')]},'lastMsgDirection':{'type':Sequelize[_0x514f('0x4')]('in',_0x514f('0x5')),'defaultValue':'in','allowNull':![]},'autoreplyExecuted':{'type':Sequelize[_0x514f('0x1')],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc69f=['field','color','ui.SmsInteractionId','from','user_has_sms_interactions','left_join','users','cm_contacts','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','o.id\x20=\x20i.UserId','sms_accounts','a.id\x20=\x20i.SmsAccountId','sms_messages','me.SmsInteractionId\x20=\x20i.id','sms_interaction_has_tags','it.SmsInteractionId\x20=\x20i.id','tools_tags','expr','search','sqlOperator','conditions','length','find','unreadMessages','value','having','`\x20>\x200','$substring','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','ContactId','buildExpression','start','Tag','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','operator','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','text','body','some','isEmpty','SmsAccountId','i.SmsAccountId\x20IN\x20?','parse','$gte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20=\x20?','read','`unreadMessages`\x20=\x200','tag','filter','replace','i.id\x20LIKE\x20?','i.phone\x20LIKE\x20?','MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?','i.id','Sequelize','QueryTypes','SELECT','clone','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','contactName','t.id\x20IN\x20?','i.SmsAccountId\x20IS\x20NOT\x20NULL','user','role','getSmsAccounts','i.SmsAccountId\x20IS\x20NULL','agent','toString','sequelize','merge','a.key','Account.key','a.mandatoryDisposition','CASE\x20WHEN\x20(c.firstName\x20IS\x20NOT\x20NULL\x20AND\x20c.firstName\x20<>\x20\x27\x27)\x20OR\x20(c.lastName\x20IS\x20NOT\x20NULL\x20AND\x20c.lastName\x20<>\x20\x27\x27)\x20THEN\x20CONCAT(IFNULL(c.firstName,\x20\x27\x27),\x20\x27\x20\x27,\x20IFNULL(c.lastName,\x20\x27\x27))\x20ELSE\x20\x27Unknown\x27\x20END','i.*','Contact.firstName','c.lastName','Contact.lastName','c.email','Contact.email','Contact.phone','c.fax','Contact.fax','o.fullname','Owner.fullname','o.internal','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.SmsInteractionId\x20IN\x20?','groupBy','SmsInteractionId','all','rows','show','rawAttributes','include','options','catch','params','describe','SmsMessage','addMessage','ids','omit','getMessages','pick','format','YYYY-MM-DD\x20HH:mm:ss','includeAll','findAll','addTags','emit','smsInteractionTags:save','removeTags','download','join','server','files','tmp','attachments','transcript-%d-%s.zip','User','Contact','firstName','lastName','createdAt','direction','SmsAccount','Owner','get','Sms','N.A.','closed','closedAt','disposition','Messages','out','System','secret','renderFile','root','views','downloadInteraction.ejs','transcript-','.pdf','createPdfFromHTML','log','err','unlinkSync','eml-format','rimraf','zip-dir','fast-json-patch','bluebird','mustache','util','path','sox','crypto','jsforce','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../components/export/pdf','../../config/license/hardware','api','../../config/environment','redis','localhost','socket.io-emitter','./smsInteraction.socket','register','status','end','json','offset','limit','undefined','count','set','apply','reject','save','update','then','destroy','sendStatus','stack','name','send','Users','map','fullname','TagIds','split','forEach','Tags','push','index','SmsInteraction','type','model','query','keys','filters','intersection','fields','attributes','hasOwnProperty','nolimit','order','sort','where','select'];(function(_0x4ddc7e,_0xcb9b8){var _0xfbf0ec=function(_0x32b673){while(--_0x32b673){_0x4ddc7e['push'](_0x4ddc7e['shift']());}};_0xfbf0ec(++_0xcb9b8);}(_0xc69f,0x179));var _0xfc69=function(_0x6c993a,_0x5ea3ab){_0x6c993a=_0x6c993a-0x0;var _0x27f547=_0xc69f[_0x6c993a];return _0x27f547;};'use strict';var emlformat=require(_0xfc69('0x0'));var rimraf=require(_0xfc69('0x1'));var zipdir=require(_0xfc69('0x2'));var jsonpatch=require(_0xfc69('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xfc69('0x4'));var Mustache=require(_0xfc69('0x5'));var util=require(_0xfc69('0x6'));var path=require(_0xfc69('0x7'));var sox=require(_0xfc69('0x8'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require('squel');var crypto=require(_0xfc69('0x9'));var jsforce=require(_0xfc69('0xa'));var deskjs=require('desk.js');var toCsv=require(_0xfc69('0xb'));var querystring=require(_0xfc69('0xc'));var Papa=require(_0xfc69('0xd'));var Redis=require(_0xfc69('0xe'));var authService=require(_0xfc69('0xf'));var qs=require(_0xfc69('0x10'));var as=require(_0xfc69('0x11'));var pdf=require(_0xfc69('0x12'));var hardwareService=require(_0xfc69('0x13'));var logger=require('../../config/logger')(_0xfc69('0x14'));var utils=require('../../config/utils');var config=require(_0xfc69('0x15'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];config[_0xfc69('0x16')]=_['defaults'](config['redis'],{'host':_0xfc69('0x17'),'port':0x18eb});var socket=require(_0xfc69('0x18'))(new Redis(config[_0xfc69('0x16')]));require(_0xfc69('0x19'))[_0xfc69('0x1a')](socket);function respondWithStatusCode(_0x37b2ac,_0x789a4f){_0x789a4f=_0x789a4f||0xcc;return function(_0x23424f){if(_0x23424f){return _0x37b2ac['sendStatus'](_0x789a4f);}return _0x37b2ac[_0xfc69('0x1b')](_0x789a4f)[_0xfc69('0x1c')]();};}function respondWithResult(_0x5d94d4,_0x50642a){_0x50642a=_0x50642a||0xc8;return function(_0xbc43c3){if(_0xbc43c3){return _0x5d94d4[_0xfc69('0x1b')](_0x50642a)[_0xfc69('0x1d')](_0xbc43c3);}};}function respondWithFilteredResult(_0xc60651,_0x5c3d13){return function(_0x2285f5){if(_0x2285f5){var _0x343429=typeof _0x5c3d13[_0xfc69('0x1e')]==='undefined'&&typeof _0x5c3d13[_0xfc69('0x1f')]===_0xfc69('0x20');var _0x4ce135=_0x2285f5[_0xfc69('0x21')];var _0x2d574c=_0x343429?0x0:_0x5c3d13[_0xfc69('0x1e')];var _0x49713f=_0x343429?_0x2285f5[_0xfc69('0x21')]:_0x5c3d13['offset']+_0x5c3d13[_0xfc69('0x1f')];var _0x3912a3;if(_0x49713f>=_0x4ce135){_0x49713f=_0x4ce135;_0x3912a3=0xc8;}else{_0x3912a3=0xce;}_0xc60651[_0xfc69('0x1b')](_0x3912a3);return _0xc60651[_0xfc69('0x22')]('Content-Range',_0x2d574c+'-'+_0x49713f+'/'+_0x4ce135)[_0xfc69('0x1d')](_0x2285f5);}return null;};}function patchUpdates(_0x505f50){return function(_0x520f48){try{jsonpatch[_0xfc69('0x23')](_0x520f48,_0x505f50,!![]);}catch(_0x503d40){return BPromise[_0xfc69('0x24')](_0x503d40);}return _0x520f48[_0xfc69('0x25')]();};}function saveUpdates(_0x436287,_0x482ea9){return function(_0x43eb61){if(_0x43eb61){return _0x43eb61[_0xfc69('0x26')](_0x436287)[_0xfc69('0x27')](function(_0x3c0b3e){return _0x3c0b3e;});}return null;};}function removeEntity(_0x279b28,_0x45aabe){return function(_0x13f50e){if(_0x13f50e){return _0x13f50e[_0xfc69('0x28')]()[_0xfc69('0x27')](function(){_0x279b28['status'](0xcc)[_0xfc69('0x1c')]();});}};}function handleEntityNotFound(_0x545c16,_0xf4c7cb){return function(_0xe892e1){if(!_0xe892e1){_0x545c16[_0xfc69('0x29')](0x194);}return _0xe892e1;};}function handleError(_0x44938f,_0x25799e){_0x25799e=_0x25799e||0x1f4;return function(_0x38c6f1){logger['error'](_0x38c6f1[_0xfc69('0x2a')]);if(_0x38c6f1[_0xfc69('0x2b')]){delete _0x38c6f1['name'];}_0x44938f['status'](_0x25799e)[_0xfc69('0x2c')](_0x38c6f1);};}function getInteractionUsers(_0x311909,_0x1092bb){return new BPromise(function(_0x2d732f,_0x5d749e){try{if(_0x1092bb[_0x311909['id']]){_0x311909[_0xfc69('0x2d')]=_[_0xfc69('0x2e')](_0x1092bb[_0x311909['id']],function(_0x509616){return{'id':_0x509616['id'],'fullname':_0x509616[_0xfc69('0x2f')]};});}}catch(_0x2efbc8){_0x5d749e(_0x2efbc8);}_0x2d732f(_0x311909);});}function getInteractionTags(_0x574a81,_0x431059){return new BPromise(function(_0x45e40d,_0x27e952){try{if(_0x574a81[_0xfc69('0x30')]){_0x574a81['Tags']=[];_0x574a81[_0xfc69('0x30')][_0xfc69('0x31')](',')[_0xfc69('0x32')](function(_0x18d3a3){_0x574a81[_0xfc69('0x33')][_0xfc69('0x34')](_0x431059[_0x18d3a3]);});}delete _0x574a81[_0xfc69('0x30')];}catch(_0x4e6286){_0x27e952(_0x4e6286);}_0x45e40d(_0x574a81);});}function updateSmsInteraction(_0x10e05c,_0x389b9a,_0x309182){return new BPromise(function(_0x31b6e2,_0x15c7fb){return getInteractionUsers(_0x10e05c,_0x309182)[_0xfc69('0x27')](function(_0x2680e7){return getInteractionTags(_0x2680e7,_0x389b9a);})[_0xfc69('0x27')](function(_0x1679d4){_0x31b6e2(_0x1679d4);})['catch'](function(_0x503566){_0x15c7fb(_0x503566);});});}exports[_0xfc69('0x35')]=function(_0x124775,_0x134ac1){var _0x90c1b7={},_0x1ebecf={},_0x47ce9c={'count':0x0,'rows':[]};var _0x2229d1=_[_0xfc69('0x2e')](db[_0xfc69('0x36')]['rawAttributes'],function(_0x5eed53){return{'name':_0x5eed53['fieldName'],'type':_0x5eed53[_0xfc69('0x37')]['key']};});_0x1ebecf[_0xfc69('0x38')]=_[_0xfc69('0x2e')](_0x2229d1,_0xfc69('0x2b'));_0x1ebecf[_0xfc69('0x39')]=_[_0xfc69('0x3a')](_0x124775[_0xfc69('0x39')]);_0x1ebecf[_0xfc69('0x3b')]=_['intersection'](_0x1ebecf['model'],_0x1ebecf[_0xfc69('0x39')]);_0x90c1b7['attributes']=_[_0xfc69('0x3c')](_0x1ebecf[_0xfc69('0x38')],qs['fields'](_0x124775[_0xfc69('0x39')][_0xfc69('0x3d')]));_0x90c1b7[_0xfc69('0x3e')]=_0x90c1b7[_0xfc69('0x3e')]['length']?_0x90c1b7[_0xfc69('0x3e')]:_0x1ebecf[_0xfc69('0x38')];if(!_0x124775[_0xfc69('0x39')][_0xfc69('0x3f')](_0xfc69('0x40'))){_0x90c1b7[_0xfc69('0x1f')]=qs[_0xfc69('0x1f')](_0x124775[_0xfc69('0x39')]['limit']);_0x90c1b7[_0xfc69('0x1e')]=qs[_0xfc69('0x1e')](_0x124775['query']['offset']);}_0x90c1b7[_0xfc69('0x41')]=qs[_0xfc69('0x42')](_0x124775[_0xfc69('0x39')]['sort']);_0x90c1b7[_0xfc69('0x43')]=qs[_0xfc69('0x3b')](_['pick'](_0x124775[_0xfc69('0x39')],_0x1ebecf['filters']),_0x2229d1);var _0x112e21=[];var _0x5965cc=squel[_0xfc69('0x44')]()[_0xfc69('0x45')]('id')[_0xfc69('0x45')](_0xfc69('0x2b'))[_0xfc69('0x45')](_0xfc69('0x46'))['from']('tools_tags');var _0x2f0914=squel['select']()[_0xfc69('0x45')]('u.id')[_0xfc69('0x45')]('u.fullname')[_0xfc69('0x45')](_0xfc69('0x47'))[_0xfc69('0x48')](_0xfc69('0x49'),'ui')[_0xfc69('0x4a')](_0xfc69('0x4b'),'u','u.id\x20=\x20ui.UserId');var _0x48f120=squel[_0xfc69('0x44')]()[_0xfc69('0x48')]('sms_interactions','i')[_0xfc69('0x4a')](_0xfc69('0x4c'),'c',_0xfc69('0x4d'))[_0xfc69('0x4a')](_0xfc69('0x4b'),'o',_0xfc69('0x4e'))[_0xfc69('0x4a')](_0xfc69('0x4f'),'a',_0xfc69('0x50'))[_0xfc69('0x4a')](_0xfc69('0x51'),'me',_0xfc69('0x52'))[_0xfc69('0x4a')](_0xfc69('0x53'),'it',_0xfc69('0x54'))[_0xfc69('0x4a')](_0xfc69('0x55'),'t','t.id\x20=\x20it.TagId');var _0x2f18fd=squel[_0xfc69('0x56')]();var _0x4d3592=[];var _0x960a23=squel[_0xfc69('0x56')]();var _0x32e5db;if(_0x124775[_0xfc69('0x39')][_0xfc69('0x57')]){_0x32e5db=as['parseSearch'](_0x124775[_0xfc69('0x39')][_0xfc69('0x57')]);var _0x3cc073=_0x32e5db[_0xfc69('0x58')];for(var _0x299f42=0x0;_0x299f42<_0x32e5db[_0xfc69('0x59')][_0xfc69('0x5a')];_0x299f42++){var _0x3d40ed=_0x32e5db[_0xfc69('0x59')][_0x299f42];var _0x40f112='i';var _0xabb0e9=_[_0xfc69('0x5b')](_0x2229d1,['name',_0x3d40ed[_0xfc69('0x45')]]);if(!_0xabb0e9){switch(_0x3d40ed[_0xfc69('0x45')]){case _0xfc69('0x5c'):if(_0x3d40ed[_0xfc69('0x5d')]==0x1){_0x48f120[_0xfc69('0x5e')]('`'+_0x3d40ed['field']+'`\x20=\x200');}else{_0x48f120['having']('`'+_0x3d40ed[_0xfc69('0x45')]+_0xfc69('0x5f'));}break;case'Contact':if(_0x3d40ed['operator']===_0xfc69('0x60')){if(_0x3d40ed[_0xfc69('0x5d')]['split']('\x20')[_0xfc69('0x5a')]>0x1){_0x2f18fd[_0x3cc073](_0xfc69('0x61'),qs[_0xfc69('0x62')](_0x3d40ed[_0xfc69('0x5d')]),null);}else{var _0x310f84='%'+_0x3d40ed[_0xfc69('0x5d')]+'%';_0x2f18fd[_0x3cc073]('c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?',_0x310f84,_0x310f84,_0x310f84);}}else{_0xabb0e9=_[_0xfc69('0x5b')](_0x2229d1,['name',_0xfc69('0x63')]);_0x3d40ed[_0xfc69('0x45')]=_0xfc69('0x63');_0x2912d0=as[_0xfc69('0x64')](_0x40f112,_0xabb0e9[_0xfc69('0x37')],_0x3d40ed);_0x2f18fd[_0x3cc073](_0x2912d0['text'],_0x2912d0[_0xfc69('0x5d')][_0xfc69('0x65')],_0x2912d0[_0xfc69('0x5d')]['end']);}break;case _0xfc69('0x66'):var _0x1e3a65=_0x3d40ed[_0xfc69('0x5d')][_0xfc69('0x31')](',')['map'](function(_0x577dbb){return Number(_0x577dbb);});_0x1e3a65[_0xfc69('0x32')](function(_0x10955a){_0x960a23['or'](_0xfc69('0x67'),'%,'+_0x10955a+',%');});_0x4d3592=_['union'](_0x4d3592,_0x1e3a65);break;case'User':if(_0x3d40ed[_0xfc69('0x68')]===_0xfc69('0x60')){_0x2f18fd[_0x3cc073](_0xfc69('0x69'),'%'+_0x3d40ed[_0xfc69('0x5d')]+'%',null);}else{_0xabb0e9=_[_0xfc69('0x5b')](_0x2229d1,['name',_0xfc69('0x6a')]);_0x3d40ed[_0xfc69('0x45')]=_0xfc69('0x6a');_0x2912d0=as[_0xfc69('0x64')](_0x40f112,_0xabb0e9[_0xfc69('0x37')],_0x3d40ed);_0x2f18fd[_0x3cc073](_0x2912d0[_0xfc69('0x6b')],_0x2912d0[_0xfc69('0x5d')][_0xfc69('0x65')],_0x2912d0['value'][_0xfc69('0x1c')]);}break;case _0xfc69('0x6c'):_0x2912d0=as[_0xfc69('0x64')]('me',null,_0x3d40ed);_0x2f18fd[_0x3cc073](_0x2912d0[_0xfc69('0x6b')],_0x2912d0[_0xfc69('0x5d')][_0xfc69('0x65')],_0x2912d0[_0xfc69('0x5d')]['end']);break;}}else{var _0x2912d0=as[_0xfc69('0x64')](_0x40f112,_0xabb0e9['type'],_0x3d40ed);_0x2f18fd[_0x3cc073](_0x2912d0[_0xfc69('0x6b')],_0x2912d0[_0xfc69('0x5d')][_0xfc69('0x65')],_0x2912d0[_0xfc69('0x5d')][_0xfc69('0x1c')]);}}}else{var _0x35d609=_(_0x124775[_0xfc69('0x39')])[_0xfc69('0x3a')]()[_0xfc69('0x2e')](function(_0xa1ec09){return _[_0xfc69('0x6d')](_0x2229d1,['name',_0xa1ec09])?_0xa1ec09:undefined;})['compact']()['value']();if(!_[_0xfc69('0x6e')](_0x35d609)){_0x35d609[_0xfc69('0x32')](function(_0xe0fc8f){if(_0xe0fc8f===_0xfc69('0x6f')){_0x48f120[_0xfc69('0x43')](_0xfc69('0x70'),[]['concat'](_0x124775['query'][_0xe0fc8f]));}else if(_0xe0fc8f==='createdAt'){var _0x428a2a=JSON[_0xfc69('0x71')](_0x124775[_0xfc69('0x39')][_0xe0fc8f])[_0xfc69('0x72')];var _0x29d716=JSON['parse'](_0x124775[_0xfc69('0x39')][_0xe0fc8f])['$lte'];_0x48f120[_0xfc69('0x43')](_0xfc69('0x73'),_0x428a2a,_0x29d716);}else{if(_0x124775['query'][_0xe0fc8f]===_0xfc69('0x74')){_0x48f120[_0xfc69('0x43')]('i.'+_0xe0fc8f+'\x20IS\x20NULL');}else{_0x48f120['where']('i.'+_0xe0fc8f+_0xfc69('0x75'),_0x124775[_0xfc69('0x39')][_0xe0fc8f]);}}});}if(_0x124775[_0xfc69('0x39')][_0xfc69('0x76')]){if(_0x124775[_0xfc69('0x39')]['read']==0x1){_0x48f120[_0xfc69('0x5e')](_0xfc69('0x77'));}else{_0x48f120['having']('`unreadMessages`\x20>\x200');}}if(_0x124775[_0xfc69('0x39')][_0xfc69('0x78')]){_0x4d3592=_['isArray'](_0x124775[_0xfc69('0x39')][_0xfc69('0x78')])?_0x124775['query'][_0xfc69('0x78')]:new Array(_0x124775[_0xfc69('0x39')][_0xfc69('0x78')]);_0x4d3592['forEach'](function(_0xd2bdf6){_0x960a23['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0xd2bdf6+',%');});}if(_0x124775[_0xfc69('0x39')][_0xfc69('0x79')]){var _0x1feea6=_0x124775[_0xfc69('0x39')][_0xfc69('0x79')][_0xfc69('0x7a')]('\x5c','\x5c\x5c')[_0xfc69('0x7a')](/'/g,'\x27\x27');if(qs['isNumeric'](_0x1feea6)){_0x2f18fd['or'](_0xfc69('0x7b'),_0x1feea6+'%')['or'](_0xfc69('0x7c'),_0x1feea6+'%');}else{_0x2f18fd['or'](_0xfc69('0x7d'),qs['getFullTextValue'](_0x1feea6))['or'](_0xfc69('0x7e'),_0x1feea6+'%');}}}_0x48f120[_0xfc69('0x43')](_0x2f18fd);_0x48f120['group'](_0xfc69('0x7f'));var _0x23701a={'type':db[_0xfc69('0x80')][_0xfc69('0x81')][_0xfc69('0x82')],'raw':!![]};var _0x3be313=_0x48f120[_0xfc69('0x83')]();_0x3be313[_0xfc69('0x45')](_0xfc69('0x7f'));_0x3be313[_0xfc69('0x45')](_0xfc69('0x84'),_0xfc69('0x5c'));if(_0x90c1b7['order']){_0x90c1b7[_0xfc69('0x41')][_0xfc69('0x32')](function(_0x53c014){var _0x24b2eb=_0x53c014[0x0]===_0xfc69('0x85')?_0x53c014[0x0]:'i.'+_0x53c014[0x0];_0x48f120[_0xfc69('0x41')](_0x24b2eb,_0x53c014[0x1]==='DESC'?![]:!![]);});}if(!_['isEmpty'](_0x4d3592)){_0x48f120['having'](_0x960a23);_0x3be313['where'](_0xfc69('0x86'),_0x4d3592);}BPromise['resolve']()[_0xfc69('0x27')](function(){if(!_0x32e5db){if(_0x124775[_0xfc69('0x39')][_0xfc69('0x6f')])return;_0x3be313['where'](_0xfc69('0x87'));_0x48f120[_0xfc69('0x43')](_0xfc69('0x87'));return;}if(_0x124775[_0xfc69('0x88')][_0xfc69('0x89')]!=='agent')return;return _0x124775['user'][_0xfc69('0x8a')]({'attributes':['id'],'raw':!![]})[_0xfc69('0x27')](function(_0x3bf781){if(_[_0xfc69('0x6e')](_0x3bf781)){_0x3be313[_0xfc69('0x43')](_0xfc69('0x8b'));_0x48f120[_0xfc69('0x43')]('i.SmsAccountId\x20IS\x20NULL');}else{_0x3be313[_0xfc69('0x43')]('i.SmsAccountId\x20IN\x20?',_[_0xfc69('0x2e')](_0x3bf781,'id'));_0x48f120[_0xfc69('0x43')](_0xfc69('0x70'),_[_0xfc69('0x2e')](_0x3bf781,'id'));}});})[_0xfc69('0x27')](function(){if(_0x124775[_0xfc69('0x88')]['role']===_0xfc69('0x8c')&&!_0x32e5db&&!_0x124775[_0xfc69('0x39')][_0xfc69('0x6f')])return[];return db['sequelize'][_0xfc69('0x39')](_0x3be313[_0xfc69('0x8d')](),_0x23701a);})[_0xfc69('0x27')](function(_0x43b20a){_0x47ce9c['count']=_0x43b20a[_0xfc69('0x5a')];if(_0x47ce9c['count']===0x0)return[];return db[_0xfc69('0x8e')]['query'](_0x5965cc[_0xfc69('0x8d')](),_0x23701a)[_0xfc69('0x27')](function(_0x313540){_0x112e21=_['keyBy'](_0x313540,'id');_0x23701a=_[_0xfc69('0x8f')](_0x23701a,{'model':db[_0xfc69('0x36')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x124775[_0xfc69('0x39')][_0xfc69('0x3d')]){_0x90c1b7[_0xfc69('0x3e')][_0xfc69('0x32')](function(_0xa62dde){_0x48f120[_0xfc69('0x45')]('i.'+_0xa62dde);});}else{_0x48f120[_0xfc69('0x45')]('SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)',_0xfc69('0x5c'));_0x48f120[_0xfc69('0x45')](_0xfc69('0x90'),_0xfc69('0x91'));_0x48f120[_0xfc69('0x45')](_0xfc69('0x92'),'Account.mandatoryDisposition');_0x48f120[_0xfc69('0x45')](_0xfc69('0x93'),_0xfc69('0x85'));_0x48f120[_0xfc69('0x45')](_0xfc69('0x94'));_0x48f120[_0xfc69('0x45')]('c.firstName',_0xfc69('0x95'));_0x48f120[_0xfc69('0x45')](_0xfc69('0x96'),_0xfc69('0x97'));_0x48f120[_0xfc69('0x45')](_0xfc69('0x98'),_0xfc69('0x99'));_0x48f120['field']('c.phone',_0xfc69('0x9a'));_0x48f120[_0xfc69('0x45')]('c.mobile','Contact.mobile');_0x48f120[_0xfc69('0x45')](_0xfc69('0x9b'),_0xfc69('0x9c'));_0x48f120[_0xfc69('0x45')](_0xfc69('0x9d'),_0xfc69('0x9e'));_0x48f120[_0xfc69('0x45')](_0xfc69('0x9f'),_0xfc69('0xa0'));_0x48f120[_0xfc69('0x45')](_0xfc69('0xa1'),'TagIds');}if(_0x90c1b7[_0xfc69('0x1f')])_0x48f120[_0xfc69('0x1f')](_0x90c1b7['limit']);if(_0x90c1b7['offset'])_0x48f120[_0xfc69('0x1e')](_0x90c1b7['offset']);return db[_0xfc69('0x8e')][_0xfc69('0x39')](_0x48f120[_0xfc69('0x8d')](),_0x23701a);})[_0xfc69('0x27')](function(_0x3837be){if(_0x3837be[_0xfc69('0x5a')]>0x0)_0x2f0914[_0xfc69('0x43')](_0xfc69('0xa2'),_[_0xfc69('0x2e')](_0x3837be,'id'));return db[_0xfc69('0x8e')][_0xfc69('0x39')](_0x2f0914['toString'](),_0x23701a)[_0xfc69('0x27')](function(_0x1ee36c){var _0x22c32b=_[_0xfc69('0xa3')](_0x1ee36c,_0xfc69('0xa4'));var _0x18f645=[];_0x3837be[_0xfc69('0x32')](function(_0x80356e){_0x18f645['push'](updateSmsInteraction(_0x80356e,_0x112e21,_0x22c32b));});return BPromise[_0xfc69('0xa5')](_0x18f645);});});})[_0xfc69('0x27')](function(_0x54b4fe){_0x47ce9c[_0xfc69('0xa6')]=_0x54b4fe;return _0x47ce9c;})[_0xfc69('0x27')](respondWithFilteredResult(_0x134ac1,_0x90c1b7))['catch'](handleError(_0x134ac1,null));};exports[_0xfc69('0xa7')]=function(_0x1b5dc9,_0x330a79){var _0x5ead54={'raw':![],'where':{'id':_0x1b5dc9['params']['id']}},_0x4f1ff2={};_0x4f1ff2[_0xfc69('0x38')]=_[_0xfc69('0x3a')](db[_0xfc69('0x36')][_0xfc69('0xa8')]);_0x4f1ff2['query']=_[_0xfc69('0x3a')](_0x1b5dc9[_0xfc69('0x39')]);_0x4f1ff2[_0xfc69('0x3b')]=_['intersection'](_0x4f1ff2['model'],_0x4f1ff2[_0xfc69('0x39')]);_0x5ead54[_0xfc69('0x3e')]=_[_0xfc69('0x3c')](_0x4f1ff2[_0xfc69('0x38')],qs[_0xfc69('0x3d')](_0x1b5dc9[_0xfc69('0x39')][_0xfc69('0x3d')]));_0x5ead54[_0xfc69('0x3e')]=_0x5ead54[_0xfc69('0x3e')]['length']?_0x5ead54[_0xfc69('0x3e')]:_0x4f1ff2[_0xfc69('0x38')];if(_0x1b5dc9[_0xfc69('0x39')]['includeAll']){_0x5ead54[_0xfc69('0xa9')]=[{'all':!![]}];}_0x5ead54=_[_0xfc69('0x8f')]({},_0x5ead54,_0x1b5dc9[_0xfc69('0xaa')]);return db[_0xfc69('0x36')][_0xfc69('0x5b')](_0x5ead54)[_0xfc69('0x27')](handleEntityNotFound(_0x330a79,null))[_0xfc69('0x27')](respondWithResult(_0x330a79,null))['catch'](handleError(_0x330a79,null));};exports['create']=function(_0x3530eb,_0x506d8c){return db[_0xfc69('0x36')]['create'](_0x3530eb[_0xfc69('0x6c')],{})[_0xfc69('0x27')](respondWithResult(_0x506d8c,0xc9))[_0xfc69('0xab')](handleError(_0x506d8c,null));};exports['update']=function(_0x4d7482,_0x4a2f46){if(_0x4d7482['body']['id']){delete _0x4d7482[_0xfc69('0x6c')]['id'];}return db[_0xfc69('0x36')][_0xfc69('0x5b')]({'where':{'id':_0x4d7482[_0xfc69('0xac')]['id']}})[_0xfc69('0x27')](handleEntityNotFound(_0x4a2f46,null))[_0xfc69('0x27')](saveUpdates(_0x4d7482['body'],null))['then'](respondWithResult(_0x4a2f46,null))['catch'](handleError(_0x4a2f46,null));};exports[_0xfc69('0x28')]=function(_0x19f411,_0x2a75f5){return db[_0xfc69('0x36')][_0xfc69('0x5b')]({'where':{'id':_0x19f411[_0xfc69('0xac')]['id']}})[_0xfc69('0x27')](handleEntityNotFound(_0x2a75f5,null))['then'](removeEntity(_0x2a75f5,null))[_0xfc69('0xab')](handleError(_0x2a75f5,null));};exports[_0xfc69('0xad')]=function(_0x2b1815,_0x1e2012){return db['SmsInteraction'][_0xfc69('0xad')]()[_0xfc69('0x27')](respondWithResult(_0x1e2012,null))[_0xfc69('0xab')](handleError(_0x1e2012,null));};exports['addMessage']=function(_0x5f7b70,_0x267c02,_0xa86178){return db[_0xfc69('0xae')]['find']({'where':{'id':_0x5f7b70[_0xfc69('0xac')]['id']}})[_0xfc69('0x27')](handleEntityNotFound(_0x267c02,null))[_0xfc69('0x27')](function(_0x25ab92){if(_0x25ab92){return _0x25ab92[_0xfc69('0xaf')](_0x5f7b70[_0xfc69('0x6c')][_0xfc69('0xb0')],_[_0xfc69('0xb1')](_0x5f7b70[_0xfc69('0x6c')],['ids','id'])||{});}})[_0xfc69('0x27')](respondWithResult(_0x267c02,null))[_0xfc69('0xab')](handleError(_0x267c02,null));};exports[_0xfc69('0xb2')]=function(_0x59c82,_0x41d1ea,_0x5254f1){var _0x158fd9={'raw':![],'where':{}};var _0x4f68b4={};var _0x4d1f19={'count':0x0,'rows':[]};return db[_0xfc69('0x36')]['findOne']({'where':{'id':_0x59c82[_0xfc69('0xac')]['id']}})[_0xfc69('0x27')](handleEntityNotFound(_0x41d1ea,null))[_0xfc69('0x27')](function(_0x21b353){if(_0x21b353){_0x4f68b4[_0xfc69('0x38')]=_[_0xfc69('0x3a')](db[_0xfc69('0xae')]['rawAttributes']);_0x4f68b4['query']=_['keys'](_0x59c82[_0xfc69('0x39')]);_0x4f68b4[_0xfc69('0x3b')]=_['intersection'](_0x4f68b4['model'],_0x4f68b4[_0xfc69('0x39')]);_0x158fd9[_0xfc69('0x3e')]=_[_0xfc69('0x3c')](_0x4f68b4[_0xfc69('0x38')],qs[_0xfc69('0x3d')](_0x59c82[_0xfc69('0x39')][_0xfc69('0x3d')]));_0x158fd9[_0xfc69('0x3e')]=_0x158fd9['attributes'][_0xfc69('0x5a')]?_0x158fd9[_0xfc69('0x3e')]:_0x4f68b4[_0xfc69('0x38')];if(!_0x59c82[_0xfc69('0x39')][_0xfc69('0x3f')](_0xfc69('0x40'))){_0x158fd9[_0xfc69('0x1f')]=qs[_0xfc69('0x1f')](_0x59c82[_0xfc69('0x39')][_0xfc69('0x1f')]);_0x158fd9['offset']=qs[_0xfc69('0x1e')](_0x59c82[_0xfc69('0x39')][_0xfc69('0x1e')]);}_0x158fd9[_0xfc69('0x41')]=qs[_0xfc69('0x42')](_0x59c82[_0xfc69('0x39')]['sort']);_0x158fd9['where']=qs['filters'](_[_0xfc69('0xb3')](_0x59c82[_0xfc69('0x39')],_0x4f68b4['filters']));_0x158fd9[_0xfc69('0x43')][_0xfc69('0xa4')]=_0x21b353['id'];if(_0x59c82[_0xfc69('0x39')]['filter']){_0x158fd9[_0xfc69('0x43')]=_[_0xfc69('0x8f')](_0x158fd9['where'],{'$or':_[_0xfc69('0x2e')](_0x158fd9[_0xfc69('0x3e')],function(_0x43ece4){var _0x18eb8e={};_0x18eb8e[_0x43ece4]={'$like':'%'+_0x59c82[_0xfc69('0x39')][_0xfc69('0x79')]+'%'};return _0x18eb8e;})});}if(_0x59c82['query']['$gte']){var _0x5d6f65=_0x59c82[_0xfc69('0x39')][_0xfc69('0x72')][_0xfc69('0x31')](',');var _0x5754ac={};_0x5754ac[_0x5d6f65[0x0]]={'$gte':moment(_0x5d6f65[0x1])[_0xfc69('0xb4')](_0xfc69('0xb5'))};_0x158fd9[_0xfc69('0x43')]=_[_0xfc69('0x8f')](_0x158fd9[_0xfc69('0x43')],_0x5754ac);}_0x158fd9=_[_0xfc69('0x8f')]({},_0x158fd9,_0x59c82['options']);return db[_0xfc69('0xae')]['count']({'where':_0x158fd9[_0xfc69('0x43')]})[_0xfc69('0x27')](function(_0x90c80e){_0x4d1f19[_0xfc69('0x21')]=_0x90c80e;if(_0x59c82[_0xfc69('0x39')][_0xfc69('0xb6')]){_0x158fd9['include']=[{'all':!![]}];}return db[_0xfc69('0xae')][_0xfc69('0xb7')](_0x158fd9);})[_0xfc69('0x27')](function(_0x2be069){_0x4d1f19[_0xfc69('0xa6')]=_0x2be069;return _0x4d1f19;});}})[_0xfc69('0x27')](respondWithFilteredResult(_0x41d1ea,_0x158fd9))[_0xfc69('0xab')](handleError(_0x41d1ea,null));};exports[_0xfc69('0xb8')]=function(_0x26f819,_0x316322,_0x13d3ac){return db[_0xfc69('0x36')]['find']({'where':{'id':_0x26f819[_0xfc69('0xac')]['id']}})['then'](handleEntityNotFound(_0x316322,null))['then'](function(_0x4cb43e){if(_0x4cb43e){return _0x4cb43e['setTags'](_0x26f819['body'][_0xfc69('0xb0')],_['omit'](_0x26f819['body'],[_0xfc69('0xb0'),'id'])||{})['spread'](function(){return db['Tag'][_0xfc69('0xb7')]({'attributes':['id','name','color'],'where':{'id':_0x26f819[_0xfc69('0x6c')]['ids']}});})[_0xfc69('0x27')](function(_0x2ba7f4){socket[_0xfc69('0xb9')](_0xfc69('0xba'),{'id':Number(_0x26f819[_0xfc69('0xac')]['id']),'tags':_0x2ba7f4||[]});return{'id':Number(_0x26f819[_0xfc69('0xac')]['id']),'tags':_0x2ba7f4||[]};});}})[_0xfc69('0x27')](respondWithResult(_0x316322,null))[_0xfc69('0xab')](handleError(_0x316322,null));};exports[_0xfc69('0xbb')]=function(_0x4c78f4,_0x1df5c0,_0x167fc8){return db[_0xfc69('0x36')][_0xfc69('0x5b')]({'where':{'id':_0x4c78f4[_0xfc69('0xac')]['id']}})[_0xfc69('0x27')](handleEntityNotFound(_0x1df5c0,null))[_0xfc69('0x27')](function(_0x3a6229){if(_0x3a6229){return _0x3a6229[_0xfc69('0xbb')](_0x4c78f4[_0xfc69('0x39')]['ids']);}})['then'](respondWithStatusCode(_0x1df5c0,null))[_0xfc69('0xab')](handleError(_0x1df5c0,null));};exports[_0xfc69('0xbc')]=function(_0x231be8,_0xe3eef6){var _0x2b10ec=moment()['unix']()[_0xfc69('0x8d')]();var _0x305aad=path[_0xfc69('0xbd')](config['root'],_0xfc69('0xbe'),_0xfc69('0xbf'),_0xfc69('0xc0'));var _0x1fbc10=path[_0xfc69('0xbd')](config['root'],_0xfc69('0xbe'),_0xfc69('0xbf'),_0xfc69('0xc1'));var _0x78d43a=path['join'](_0x305aad,_0x2b10ec);var _0x3af189=util[_0xfc69('0xb4')](_0xfc69('0xc2'),_0x231be8['params']['id'],_0x2b10ec);var _0x2fdd45=path['join'](_0x305aad,_0x3af189);var _0x5535b1=[];_0x5535b1['push']({'model':db[_0xfc69('0xc3')],'as':_0xfc69('0xc3'),'attributes':['id',_0xfc69('0x2f')],'raw':!![]});_0x5535b1[_0xfc69('0x34')]({'model':db['CmContact'],'as':_0xfc69('0xc4'),'attributes':['id',_0xfc69('0xc5'),_0xfc69('0xc6')],'raw':!![]});var _0x11a444=[{'model':db[_0xfc69('0xae')],'as':'Messages','attributes':['id',_0xfc69('0x6c'),_0xfc69('0xc7'),_0xfc69('0xc8'),'secret',_0xfc69('0x76')],'include':_0x5535b1}];_0x11a444[_0xfc69('0x34')]({'model':db[_0xfc69('0xc9')],'as':'Account','attributes':['id',_0xfc69('0x2b')]});_0x11a444[_0xfc69('0x34')]({'model':db[_0xfc69('0xc3')],'as':_0xfc69('0xca'),'attributes':['id',_0xfc69('0x2f')]});return db['SmsInteraction'][_0xfc69('0x5b')]({'where':{'id':_0x231be8['params']['id']},'include':_0x11a444})[_0xfc69('0x27')](handleEntityNotFound(_0xe3eef6,null))[_0xfc69('0x27')](function(_0x6b1ebe){if(_0x6b1ebe){var _0x458871=_0x6b1ebe[_0xfc69('0xcb')]({'plain':!![]});fs['mkdirSync'](_0x78d43a);var _0x2ef8c0={'channel':_0xfc69('0xcc'),'account':_0x458871['Account'][_0xfc69('0x2b')],'agent':_0x458871[_0xfc69('0xca')]?_0x458871[_0xfc69('0xca')][_0xfc69('0x2f')]:_0xfc69('0xcd'),'createdAt':moment(_0x458871[_0xfc69('0xc7')])[_0xfc69('0xb4')](_0xfc69('0xb5'))['toString'](),'closedAt':_0x458871[_0xfc69('0xce')]?moment(_0x458871[_0xfc69('0xcf')])['format']('YYYY-MM-DD\x20HH:mm:ss')[_0xfc69('0x8d')]():'','disposition':_0x458871[_0xfc69('0xd0')],'messages':_(_0x458871[_0xfc69('0xd1')])['filter']({'secret':![]})[_0xfc69('0x2e')](function(_0x16a8d2){return{'date':moment(_0x16a8d2[_0xfc69('0xc7')])[_0xfc69('0xb4')]('YYYY-MM-DD\x20HH:mm:ss')[_0xfc69('0x8d')](),'sender':_0x16a8d2['direction']===_0xfc69('0xd2')?_0x16a8d2[_0xfc69('0xc3')]?_0x16a8d2[_0xfc69('0xc3')][_0xfc69('0x2f')]:_0xfc69('0xd3'):_0x16a8d2[_0xfc69('0xc4')][_0xfc69('0xc5')]+(_0x16a8d2[_0xfc69('0xc4')][_0xfc69('0xc6')]?'\x20'+_0x16a8d2[_0xfc69('0xc4')][_0xfc69('0xc6')]:''),'body':_0x16a8d2[_0xfc69('0x6c')],'direction':_0x16a8d2['direction']==='out'?'A':'C','secret':_0x16a8d2[_0xfc69('0xd4')],'read':_0x16a8d2['read']};})[_0xfc69('0x5d')]()};return ejs[_0xfc69('0xd5')](path['join'](config[_0xfc69('0xd6')],'server',_0xfc69('0xd7'),_0xfc69('0xd8')),{'interaction':_0x2ef8c0})['then'](function(_0x167645){var _0x561ae2=path[_0xfc69('0xbd')](_0x78d43a,_0xfc69('0xd9')+_0x458871['id']+'-'+_0x2b10ec+_0xfc69('0xda'));var _0x4c2731={'path':_0x561ae2,'channel':_0xfc69('0xcc'),'interactionId':_0x458871['id']};return pdf[_0xfc69('0xdb')](_0x167645,_0x4c2731);})[_0xfc69('0x27')](function(){return new BPromise(function(_0x2387ea,_0x28b464){zipdir(_0x78d43a,{'saveTo':_0x2fdd45},function(_0x1fa226,_0x4c1e32){if(_0x1fa226)return _0x28b464(_0x1fa226);return _0x2387ea(_0x4c1e32);});})[_0xfc69('0x27')](function(){return new BPromise(function(_0x15c797,_0x2565c3){rimraf(_0x78d43a,function(_0x59ba5d){if(_0x59ba5d)_0x2565c3(_0x59ba5d);return _0x15c797();});});})[_0xfc69('0x27')](function(){return _0xe3eef6[_0xfc69('0xbc')](_0x2fdd45,_0x3af189,function(_0xf3a9e0){if(_0xf3a9e0){console[_0xfc69('0xdc')](_0xfc69('0xdd'),_0xf3a9e0);}else{fs[_0xfc69('0xde')](_0x2fdd45);}});});});}else{return _0xe3eef6[_0xfc69('0x29')](0xc8);}})[_0xfc69('0xab')](handleError(_0xe3eef6,null));};
\ No newline at end of file
+var _0xcf2f=['to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/export/pdf','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','redis','defaults','localhost','./smsInteraction.socket','register','sendStatus','status','offset','undefined','limit','count','set','Content-Range','apply','reject','update','then','end','error','name','send','map','fullname','TagIds','Tags','forEach','push','index','SmsInteraction','rawAttributes','fieldName','type','key','model','query','keys','attributes','intersection','length','hasOwnProperty','sort','where','filters','pick','select','field','tools_tags','u.id','u.fullname','ui.SmsInteractionId','user_has_sms_interactions','left_join','users','u.id\x20=\x20ui.UserId','from','sms_interactions','cm_contacts','sms_messages','me.SmsInteractionId\x20=\x20i.id','sms_interaction_has_tags','expr','parseSearch','search','sqlOperator','conditions','find','unreadMessages','value','having','`\x20>\x200','Contact','operator','$substring','split','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','ContactId','buildExpression','text','start','Tag','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','User','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','body','some','compact','isEmpty','SmsAccountId','concat','parse','$gte','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20IS\x20NULL','\x20=\x20?','read','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','tag','filter','replace','i.id\x20LIKE\x20?','i.phone\x20LIKE\x20?','MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?','group','i.id','Sequelize','QueryTypes','clone','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','order','contactName','DESC','resolve','i.SmsAccountId\x20IS\x20NOT\x20NULL','user','getSmsAccounts','i.SmsAccountId\x20IS\x20NULL','role','agent','sequelize','toString','merge','fields','a.key','Account.key','a.mandatoryDisposition','CASE\x20WHEN\x20(c.firstName\x20IS\x20NOT\x20NULL\x20AND\x20c.firstName\x20<>\x20\x27\x27)\x20OR\x20(c.lastName\x20IS\x20NOT\x20NULL\x20AND\x20c.lastName\x20<>\x20\x27\x27)\x20THEN\x20CONCAT(IFNULL(c.firstName,\x20\x27\x27),\x20\x27\x20\x27,\x20IFNULL(c.lastName,\x20\x27\x27))\x20ELSE\x20\x27Unknown\x27\x20END','i.*','c.firstName','Contact.firstName','c.lastName','Contact.lastName','c.email','Contact.email','c.phone','Contact.phone','c.mobile','Contact.mobile','c.fax','o.fullname','o.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.SmsInteractionId\x20IN\x20?','groupBy','all','catch','params','includeAll','create','describe','addMessage','ids','omit','getMessages','SmsMessage','SmsInteractionId','format','YYYY-MM-DD\x20HH:mm:ss','options','include','findAll','rows','addTags','setTags','spread','color','emit','smsInteractionTags:save','removeTags','download','unix','join','server','attachments','transcript-%d-%s.zip','CmContact','firstName','createdAt','secret','SmsAccount','Sms','Account','Owner','N.A.','closed','disposition','Messages','direction','out','lastName','renderFile','root','views','downloadInteraction.ejs','transcript-','.pdf','createPdfFromHTML','log','err','unlinkSync','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','path','sox'];(function(_0x2cedfa,_0x1310c5){var _0x4bfabc=function(_0x5ec444){while(--_0x5ec444){_0x2cedfa['push'](_0x2cedfa['shift']());}};_0x4bfabc(++_0x1310c5);}(_0xcf2f,0x1c6));var _0xfcf2=function(_0x588d8a,_0x4946d2){_0x588d8a=_0x588d8a-0x0;var _0x18251f=_0xcf2f[_0x588d8a];return _0x18251f;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xfcf2('0x0'));var zipdir=require(_0xfcf2('0x1'));var jsonpatch=require(_0xfcf2('0x2'));var rp=require(_0xfcf2('0x3'));var moment=require('moment');var BPromise=require(_0xfcf2('0x4'));var Mustache=require(_0xfcf2('0x5'));var util=require('util');var path=require(_0xfcf2('0x6'));var sox=require(_0xfcf2('0x7'));var csv=require(_0xfcf2('0x8'));var ejs=require(_0xfcf2('0x9'));var fs=require('fs');var fs_extra=require(_0xfcf2('0xa'));var _=require(_0xfcf2('0xb'));var squel=require('squel');var crypto=require(_0xfcf2('0xc'));var jsforce=require(_0xfcf2('0xd'));var deskjs=require(_0xfcf2('0xe'));var toCsv=require(_0xfcf2('0x8'));var querystring=require(_0xfcf2('0xf'));var Papa=require(_0xfcf2('0x10'));var Redis=require(_0xfcf2('0x11'));var authService=require(_0xfcf2('0x12'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var pdf=require(_0xfcf2('0x13'));var hardwareService=require(_0xfcf2('0x14'));var logger=require(_0xfcf2('0x15'))(_0xfcf2('0x16'));var utils=require('../../config/utils');var config=require(_0xfcf2('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0xfcf2('0x18'))['db'];config[_0xfcf2('0x19')]=_[_0xfcf2('0x1a')](config[_0xfcf2('0x19')],{'host':_0xfcf2('0x1b'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0xfcf2('0x1c'))[_0xfcf2('0x1d')](socket);function respondWithStatusCode(_0x408db0,_0x50a415){_0x50a415=_0x50a415||0xcc;return function(_0xa3c21){if(_0xa3c21){return _0x408db0[_0xfcf2('0x1e')](_0x50a415);}return _0x408db0[_0xfcf2('0x1f')](_0x50a415)['end']();};}function respondWithResult(_0x4877c1,_0x22f995){_0x22f995=_0x22f995||0xc8;return function(_0x2bfb03){if(_0x2bfb03){return _0x4877c1[_0xfcf2('0x1f')](_0x22f995)['json'](_0x2bfb03);}};}function respondWithFilteredResult(_0x2983db,_0x4dac7f){return function(_0x55104f){if(_0x55104f){var _0x232062=typeof _0x4dac7f[_0xfcf2('0x20')]===_0xfcf2('0x21')&&typeof _0x4dac7f[_0xfcf2('0x22')]===_0xfcf2('0x21');var _0x1ba32f=_0x55104f[_0xfcf2('0x23')];var _0x4b2fac=_0x232062?0x0:_0x4dac7f[_0xfcf2('0x20')];var _0x3d2527=_0x232062?_0x55104f['count']:_0x4dac7f['offset']+_0x4dac7f[_0xfcf2('0x22')];var _0x2a750b;if(_0x3d2527>=_0x1ba32f){_0x3d2527=_0x1ba32f;_0x2a750b=0xc8;}else{_0x2a750b=0xce;}_0x2983db[_0xfcf2('0x1f')](_0x2a750b);return _0x2983db[_0xfcf2('0x24')](_0xfcf2('0x25'),_0x4b2fac+'-'+_0x3d2527+'/'+_0x1ba32f)['json'](_0x55104f);}return null;};}function patchUpdates(_0x3c8b92){return function(_0x70affe){try{jsonpatch[_0xfcf2('0x26')](_0x70affe,_0x3c8b92,!![]);}catch(_0xffc991){return BPromise[_0xfcf2('0x27')](_0xffc991);}return _0x70affe['save']();};}function saveUpdates(_0x595ccc,_0x283691){return function(_0x5ce0eb){if(_0x5ce0eb){return _0x5ce0eb[_0xfcf2('0x28')](_0x595ccc)[_0xfcf2('0x29')](function(_0x2a4b9c){return _0x2a4b9c;});}return null;};}function removeEntity(_0x3e3a97,_0x361c95){return function(_0x56da13){if(_0x56da13){return _0x56da13['destroy']()[_0xfcf2('0x29')](function(){_0x3e3a97[_0xfcf2('0x1f')](0xcc)[_0xfcf2('0x2a')]();});}};}function handleEntityNotFound(_0x2976b3,_0x3686f4){return function(_0x2cd19d){if(!_0x2cd19d){_0x2976b3[_0xfcf2('0x1e')](0x194);}return _0x2cd19d;};}function handleError(_0x5272c5,_0x27f6a3){_0x27f6a3=_0x27f6a3||0x1f4;return function(_0x25e075){logger[_0xfcf2('0x2b')](_0x25e075['stack']);if(_0x25e075['name']){delete _0x25e075[_0xfcf2('0x2c')];}_0x5272c5['status'](_0x27f6a3)[_0xfcf2('0x2d')](_0x25e075);};}function getInteractionUsers(_0x5ccb4f,_0x59f4eb){return new BPromise(function(_0x1460ab,_0xac3c39){try{if(_0x59f4eb[_0x5ccb4f['id']]){_0x5ccb4f['Users']=_[_0xfcf2('0x2e')](_0x59f4eb[_0x5ccb4f['id']],function(_0x1f2f59){return{'id':_0x1f2f59['id'],'fullname':_0x1f2f59[_0xfcf2('0x2f')]};});}}catch(_0x264903){_0xac3c39(_0x264903);}_0x1460ab(_0x5ccb4f);});}function getInteractionTags(_0x99947c,_0x5d9e2){return new BPromise(function(_0xfab281,_0x3c7878){try{if(_0x99947c[_0xfcf2('0x30')]){_0x99947c[_0xfcf2('0x31')]=[];_0x99947c[_0xfcf2('0x30')]['split'](',')[_0xfcf2('0x32')](function(_0x5108c9){_0x99947c['Tags'][_0xfcf2('0x33')](_0x5d9e2[_0x5108c9]);});}delete _0x99947c[_0xfcf2('0x30')];}catch(_0x4af080){_0x3c7878(_0x4af080);}_0xfab281(_0x99947c);});}function updateSmsInteraction(_0x5b7da6,_0x487762,_0x490599){return new BPromise(function(_0x95f95,_0x2c29c4){return getInteractionUsers(_0x5b7da6,_0x490599)[_0xfcf2('0x29')](function(_0x5a0487){return getInteractionTags(_0x5a0487,_0x487762);})[_0xfcf2('0x29')](function(_0x9b717c){_0x95f95(_0x9b717c);})['catch'](function(_0x3b4a5f){_0x2c29c4(_0x3b4a5f);});});}exports[_0xfcf2('0x34')]=function(_0x114750,_0x206102){var _0x172d73={},_0x90803c={},_0x377b25={'count':0x0,'rows':[]};var _0x432a25=_[_0xfcf2('0x2e')](db[_0xfcf2('0x35')][_0xfcf2('0x36')],function(_0xaa5a9d){return{'name':_0xaa5a9d[_0xfcf2('0x37')],'type':_0xaa5a9d[_0xfcf2('0x38')][_0xfcf2('0x39')]};});_0x90803c[_0xfcf2('0x3a')]=_[_0xfcf2('0x2e')](_0x432a25,_0xfcf2('0x2c'));_0x90803c[_0xfcf2('0x3b')]=_[_0xfcf2('0x3c')](_0x114750[_0xfcf2('0x3b')]);_0x90803c['filters']=_['intersection'](_0x90803c[_0xfcf2('0x3a')],_0x90803c['query']);_0x172d73[_0xfcf2('0x3d')]=_[_0xfcf2('0x3e')](_0x90803c[_0xfcf2('0x3a')],qs['fields'](_0x114750[_0xfcf2('0x3b')]['fields']));_0x172d73[_0xfcf2('0x3d')]=_0x172d73['attributes'][_0xfcf2('0x3f')]?_0x172d73[_0xfcf2('0x3d')]:_0x90803c[_0xfcf2('0x3a')];if(!_0x114750[_0xfcf2('0x3b')][_0xfcf2('0x40')]('nolimit')){_0x172d73[_0xfcf2('0x22')]=qs[_0xfcf2('0x22')](_0x114750[_0xfcf2('0x3b')]['limit']);_0x172d73[_0xfcf2('0x20')]=qs[_0xfcf2('0x20')](_0x114750[_0xfcf2('0x3b')]['offset']);}_0x172d73['order']=qs[_0xfcf2('0x41')](_0x114750['query'][_0xfcf2('0x41')]);_0x172d73[_0xfcf2('0x42')]=qs[_0xfcf2('0x43')](_[_0xfcf2('0x44')](_0x114750['query'],_0x90803c[_0xfcf2('0x43')]),_0x432a25);var _0x548323=[];var _0x17a5e1=squel[_0xfcf2('0x45')]()[_0xfcf2('0x46')]('id')[_0xfcf2('0x46')](_0xfcf2('0x2c'))['field']('color')['from'](_0xfcf2('0x47'));var _0xf79019=squel['select']()[_0xfcf2('0x46')](_0xfcf2('0x48'))[_0xfcf2('0x46')](_0xfcf2('0x49'))[_0xfcf2('0x46')](_0xfcf2('0x4a'))['from'](_0xfcf2('0x4b'),'ui')[_0xfcf2('0x4c')](_0xfcf2('0x4d'),'u',_0xfcf2('0x4e'));var _0x33dfc3=squel[_0xfcf2('0x45')]()[_0xfcf2('0x4f')](_0xfcf2('0x50'),'i')[_0xfcf2('0x4c')](_0xfcf2('0x51'),'c','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL')[_0xfcf2('0x4c')](_0xfcf2('0x4d'),'o','o.id\x20=\x20i.UserId')[_0xfcf2('0x4c')]('sms_accounts','a','a.id\x20=\x20i.SmsAccountId')['left_join'](_0xfcf2('0x52'),'me',_0xfcf2('0x53'))[_0xfcf2('0x4c')](_0xfcf2('0x54'),'it','it.SmsInteractionId\x20=\x20i.id')['left_join']('tools_tags','t','t.id\x20=\x20it.TagId');var _0x5592c1=squel[_0xfcf2('0x55')]();var _0x111537=[];var _0x54abe3=squel[_0xfcf2('0x55')]();var _0x37ba9b;if(_0x114750[_0xfcf2('0x3b')]['search']){_0x37ba9b=as[_0xfcf2('0x56')](_0x114750[_0xfcf2('0x3b')][_0xfcf2('0x57')]);var _0x28a1c5=_0x37ba9b[_0xfcf2('0x58')];for(var _0x5dd735=0x0;_0x5dd735<_0x37ba9b[_0xfcf2('0x59')][_0xfcf2('0x3f')];_0x5dd735++){var _0x3981bb=_0x37ba9b['conditions'][_0x5dd735];var _0x36b857='i';var _0x5193c7=_[_0xfcf2('0x5a')](_0x432a25,[_0xfcf2('0x2c'),_0x3981bb['field']]);if(!_0x5193c7){switch(_0x3981bb[_0xfcf2('0x46')]){case _0xfcf2('0x5b'):if(_0x3981bb[_0xfcf2('0x5c')]==0x1){_0x33dfc3[_0xfcf2('0x5d')]('`'+_0x3981bb['field']+'`\x20=\x200');}else{_0x33dfc3[_0xfcf2('0x5d')]('`'+_0x3981bb['field']+_0xfcf2('0x5e'));}break;case _0xfcf2('0x5f'):if(_0x3981bb[_0xfcf2('0x60')]===_0xfcf2('0x61')){if(_0x3981bb[_0xfcf2('0x5c')][_0xfcf2('0x62')]('\x20')[_0xfcf2('0x3f')]>0x1){_0x5592c1[_0x28a1c5](_0xfcf2('0x63'),qs[_0xfcf2('0x64')](_0x3981bb[_0xfcf2('0x5c')]),null);}else{var _0x2d5c98='%'+_0x3981bb['value']+'%';_0x5592c1[_0x28a1c5]('c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?',_0x2d5c98,_0x2d5c98,_0x2d5c98);}}else{_0x5193c7=_[_0xfcf2('0x5a')](_0x432a25,[_0xfcf2('0x2c'),_0xfcf2('0x65')]);_0x3981bb[_0xfcf2('0x46')]=_0xfcf2('0x65');_0x1157d2=as[_0xfcf2('0x66')](_0x36b857,_0x5193c7[_0xfcf2('0x38')],_0x3981bb);_0x5592c1[_0x28a1c5](_0x1157d2[_0xfcf2('0x67')],_0x1157d2['value'][_0xfcf2('0x68')],_0x1157d2[_0xfcf2('0x5c')][_0xfcf2('0x2a')]);}break;case _0xfcf2('0x69'):var _0x278dfc=_0x3981bb[_0xfcf2('0x5c')][_0xfcf2('0x62')](',')[_0xfcf2('0x2e')](function(_0x4c86f0){return Number(_0x4c86f0);});_0x278dfc[_0xfcf2('0x32')](function(_0x8962cb){_0x54abe3['or'](_0xfcf2('0x6a'),'%,'+_0x8962cb+',%');});_0x111537=_[_0xfcf2('0x6b')](_0x111537,_0x278dfc);break;case _0xfcf2('0x6c'):if(_0x3981bb[_0xfcf2('0x60')]===_0xfcf2('0x61')){_0x5592c1[_0x28a1c5](_0xfcf2('0x6d'),'%'+_0x3981bb[_0xfcf2('0x5c')]+'%',null);}else{_0x5193c7=_[_0xfcf2('0x5a')](_0x432a25,[_0xfcf2('0x2c'),'UserId']);_0x3981bb['field']=_0xfcf2('0x6e');_0x1157d2=as[_0xfcf2('0x66')](_0x36b857,_0x5193c7[_0xfcf2('0x38')],_0x3981bb);_0x5592c1[_0x28a1c5](_0x1157d2[_0xfcf2('0x67')],_0x1157d2[_0xfcf2('0x5c')][_0xfcf2('0x68')],_0x1157d2[_0xfcf2('0x5c')]['end']);}break;case _0xfcf2('0x6f'):_0x1157d2=as[_0xfcf2('0x66')]('me',null,_0x3981bb);_0x5592c1[_0x28a1c5](_0x1157d2[_0xfcf2('0x67')],_0x1157d2[_0xfcf2('0x5c')][_0xfcf2('0x68')],_0x1157d2[_0xfcf2('0x5c')]['end']);break;}}else{var _0x1157d2=as['buildExpression'](_0x36b857,_0x5193c7[_0xfcf2('0x38')],_0x3981bb);_0x5592c1[_0x28a1c5](_0x1157d2[_0xfcf2('0x67')],_0x1157d2['value'][_0xfcf2('0x68')],_0x1157d2[_0xfcf2('0x5c')]['end']);}}}else{var _0x1334fd=_(_0x114750[_0xfcf2('0x3b')])[_0xfcf2('0x3c')]()['map'](function(_0x261224){return _[_0xfcf2('0x70')](_0x432a25,[_0xfcf2('0x2c'),_0x261224])?_0x261224:undefined;})[_0xfcf2('0x71')]()[_0xfcf2('0x5c')]();if(!_[_0xfcf2('0x72')](_0x1334fd)){_0x1334fd['forEach'](function(_0x3bfaf3){if(_0x3bfaf3===_0xfcf2('0x73')){_0x33dfc3[_0xfcf2('0x42')]('i.SmsAccountId\x20IN\x20?',[][_0xfcf2('0x74')](_0x114750[_0xfcf2('0x3b')][_0x3bfaf3]));}else if(_0x3bfaf3==='createdAt'){var _0x14ec7e=JSON[_0xfcf2('0x75')](_0x114750[_0xfcf2('0x3b')][_0x3bfaf3])[_0xfcf2('0x76')];var _0x53cf0a=JSON['parse'](_0x114750[_0xfcf2('0x3b')][_0x3bfaf3])[_0xfcf2('0x77')];_0x33dfc3[_0xfcf2('0x42')](_0xfcf2('0x78'),_0x14ec7e,_0x53cf0a);}else{if(_0x114750[_0xfcf2('0x3b')][_0x3bfaf3]===_0xfcf2('0x79')){_0x33dfc3[_0xfcf2('0x42')]('i.'+_0x3bfaf3+_0xfcf2('0x7a'));}else{_0x33dfc3['where']('i.'+_0x3bfaf3+_0xfcf2('0x7b'),_0x114750[_0xfcf2('0x3b')][_0x3bfaf3]);}}});}if(_0x114750['query'][_0xfcf2('0x7c')]){if(_0x114750['query']['read']==0x1){_0x33dfc3[_0xfcf2('0x5d')](_0xfcf2('0x7d'));}else{_0x33dfc3[_0xfcf2('0x5d')](_0xfcf2('0x7e'));}}if(_0x114750[_0xfcf2('0x3b')][_0xfcf2('0x7f')]){_0x111537=_['isArray'](_0x114750[_0xfcf2('0x3b')][_0xfcf2('0x7f')])?_0x114750[_0xfcf2('0x3b')][_0xfcf2('0x7f')]:new Array(_0x114750[_0xfcf2('0x3b')][_0xfcf2('0x7f')]);_0x111537[_0xfcf2('0x32')](function(_0x280b2c){_0x54abe3['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x280b2c+',%');});}if(_0x114750[_0xfcf2('0x3b')]['filter']){var _0xb28b89=_0x114750[_0xfcf2('0x3b')][_0xfcf2('0x80')][_0xfcf2('0x81')]('\x5c','\x5c\x5c')[_0xfcf2('0x81')](/'/g,'\x27\x27');if(qs['isNumeric'](_0xb28b89)){_0x5592c1['or'](_0xfcf2('0x82'),_0xb28b89+'%')['or'](_0xfcf2('0x83'),_0xb28b89+'%');}else{_0x5592c1['or'](_0xfcf2('0x84'),qs[_0xfcf2('0x64')](_0xb28b89))['or'](_0xfcf2('0x85'),_0xb28b89+'%');}}}_0x33dfc3[_0xfcf2('0x42')](_0x5592c1);_0x33dfc3[_0xfcf2('0x86')](_0xfcf2('0x87'));var _0x4a272a={'type':db[_0xfcf2('0x88')][_0xfcf2('0x89')]['SELECT'],'raw':!![]};var _0x3d5000=_0x33dfc3[_0xfcf2('0x8a')]();_0x3d5000[_0xfcf2('0x46')](_0xfcf2('0x87'));_0x3d5000[_0xfcf2('0x46')](_0xfcf2('0x8b'),'unreadMessages');if(_0x172d73[_0xfcf2('0x8c')]){_0x172d73[_0xfcf2('0x8c')][_0xfcf2('0x32')](function(_0x3b2f6a){var _0x1a25b4=_0x3b2f6a[0x0]===_0xfcf2('0x8d')?_0x3b2f6a[0x0]:'i.'+_0x3b2f6a[0x0];_0x33dfc3[_0xfcf2('0x8c')](_0x1a25b4,_0x3b2f6a[0x1]===_0xfcf2('0x8e')?![]:!![]);});}if(!_['isEmpty'](_0x111537)){_0x33dfc3[_0xfcf2('0x5d')](_0x54abe3);_0x3d5000['where']('t.id\x20IN\x20?',_0x111537);}BPromise[_0xfcf2('0x8f')]()[_0xfcf2('0x29')](function(){if(!_0x37ba9b){if(_0x114750[_0xfcf2('0x3b')][_0xfcf2('0x73')])return;_0x3d5000[_0xfcf2('0x42')](_0xfcf2('0x90'));_0x33dfc3[_0xfcf2('0x42')](_0xfcf2('0x90'));return;}if(_0x114750[_0xfcf2('0x91')]['role']!=='agent')return;return _0x114750[_0xfcf2('0x91')][_0xfcf2('0x92')]({'attributes':['id'],'raw':!![]})[_0xfcf2('0x29')](function(_0x51f523){if(_[_0xfcf2('0x72')](_0x51f523)){_0x3d5000[_0xfcf2('0x42')](_0xfcf2('0x93'));_0x33dfc3[_0xfcf2('0x42')](_0xfcf2('0x93'));}else{_0x3d5000[_0xfcf2('0x42')]('i.SmsAccountId\x20IN\x20?',_[_0xfcf2('0x2e')](_0x51f523,'id'));_0x33dfc3[_0xfcf2('0x42')]('i.SmsAccountId\x20IN\x20?',_[_0xfcf2('0x2e')](_0x51f523,'id'));}});})[_0xfcf2('0x29')](function(){if(_0x114750['user'][_0xfcf2('0x94')]===_0xfcf2('0x95')&&!_0x37ba9b&&!_0x114750[_0xfcf2('0x3b')][_0xfcf2('0x73')])return[];return db[_0xfcf2('0x96')]['query'](_0x3d5000[_0xfcf2('0x97')](),_0x4a272a);})[_0xfcf2('0x29')](function(_0x398ee6){_0x377b25[_0xfcf2('0x23')]=_0x398ee6['length'];if(_0x377b25[_0xfcf2('0x23')]===0x0)return[];return db[_0xfcf2('0x96')][_0xfcf2('0x3b')](_0x17a5e1[_0xfcf2('0x97')](),_0x4a272a)[_0xfcf2('0x29')](function(_0x38ed86){_0x548323=_['keyBy'](_0x38ed86,'id');_0x4a272a=_[_0xfcf2('0x98')](_0x4a272a,{'model':db[_0xfcf2('0x35')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x114750[_0xfcf2('0x3b')][_0xfcf2('0x99')]){_0x172d73['attributes'][_0xfcf2('0x32')](function(_0x17b3a9){_0x33dfc3[_0xfcf2('0x46')]('i.'+_0x17b3a9);});}else{_0x33dfc3[_0xfcf2('0x46')](_0xfcf2('0x8b'),_0xfcf2('0x5b'));_0x33dfc3[_0xfcf2('0x46')](_0xfcf2('0x9a'),_0xfcf2('0x9b'));_0x33dfc3[_0xfcf2('0x46')](_0xfcf2('0x9c'),'Account.mandatoryDisposition');_0x33dfc3[_0xfcf2('0x46')](_0xfcf2('0x9d'),_0xfcf2('0x8d'));_0x33dfc3[_0xfcf2('0x46')](_0xfcf2('0x9e'));_0x33dfc3[_0xfcf2('0x46')](_0xfcf2('0x9f'),_0xfcf2('0xa0'));_0x33dfc3[_0xfcf2('0x46')](_0xfcf2('0xa1'),_0xfcf2('0xa2'));_0x33dfc3[_0xfcf2('0x46')](_0xfcf2('0xa3'),_0xfcf2('0xa4'));_0x33dfc3[_0xfcf2('0x46')](_0xfcf2('0xa5'),_0xfcf2('0xa6'));_0x33dfc3['field'](_0xfcf2('0xa7'),_0xfcf2('0xa8'));_0x33dfc3[_0xfcf2('0x46')](_0xfcf2('0xa9'),'Contact.fax');_0x33dfc3[_0xfcf2('0x46')](_0xfcf2('0xaa'),'Owner.fullname');_0x33dfc3[_0xfcf2('0x46')](_0xfcf2('0xab'),'Owner.internal');_0x33dfc3[_0xfcf2('0x46')](_0xfcf2('0xac'),'TagIds');}if(_0x172d73[_0xfcf2('0x22')])_0x33dfc3[_0xfcf2('0x22')](_0x172d73[_0xfcf2('0x22')]);if(_0x172d73[_0xfcf2('0x20')])_0x33dfc3[_0xfcf2('0x20')](_0x172d73[_0xfcf2('0x20')]);return db['sequelize'][_0xfcf2('0x3b')](_0x33dfc3[_0xfcf2('0x97')](),_0x4a272a);})[_0xfcf2('0x29')](function(_0x10798c){if(_0x10798c[_0xfcf2('0x3f')]>0x0)_0xf79019[_0xfcf2('0x42')](_0xfcf2('0xad'),_[_0xfcf2('0x2e')](_0x10798c,'id'));return db[_0xfcf2('0x96')][_0xfcf2('0x3b')](_0xf79019[_0xfcf2('0x97')](),_0x4a272a)[_0xfcf2('0x29')](function(_0x3e2988){var _0x4718ab=_[_0xfcf2('0xae')](_0x3e2988,'SmsInteractionId');var _0x8fa098=[];_0x10798c[_0xfcf2('0x32')](function(_0x46e471){_0x8fa098[_0xfcf2('0x33')](updateSmsInteraction(_0x46e471,_0x548323,_0x4718ab));});return BPromise[_0xfcf2('0xaf')](_0x8fa098);});});})[_0xfcf2('0x29')](function(_0xc0b63b){_0x377b25['rows']=_0xc0b63b;return _0x377b25;})[_0xfcf2('0x29')](respondWithFilteredResult(_0x206102,_0x172d73))[_0xfcf2('0xb0')](handleError(_0x206102,null));};exports['show']=function(_0x6734b4,_0x2bc52d){var _0x183dd7={'raw':![],'where':{'id':_0x6734b4[_0xfcf2('0xb1')]['id']}},_0x3972f4={};_0x3972f4['model']=_[_0xfcf2('0x3c')](db[_0xfcf2('0x35')]['rawAttributes']);_0x3972f4[_0xfcf2('0x3b')]=_[_0xfcf2('0x3c')](_0x6734b4['query']);_0x3972f4['filters']=_[_0xfcf2('0x3e')](_0x3972f4[_0xfcf2('0x3a')],_0x3972f4[_0xfcf2('0x3b')]);_0x183dd7['attributes']=_['intersection'](_0x3972f4['model'],qs[_0xfcf2('0x99')](_0x6734b4[_0xfcf2('0x3b')]['fields']));_0x183dd7[_0xfcf2('0x3d')]=_0x183dd7['attributes']['length']?_0x183dd7['attributes']:_0x3972f4[_0xfcf2('0x3a')];if(_0x6734b4[_0xfcf2('0x3b')][_0xfcf2('0xb2')]){_0x183dd7['include']=[{'all':!![]}];}_0x183dd7=_[_0xfcf2('0x98')]({},_0x183dd7,_0x6734b4['options']);return db[_0xfcf2('0x35')][_0xfcf2('0x5a')](_0x183dd7)['then'](handleEntityNotFound(_0x2bc52d,null))[_0xfcf2('0x29')](respondWithResult(_0x2bc52d,null))[_0xfcf2('0xb0')](handleError(_0x2bc52d,null));};exports[_0xfcf2('0xb3')]=function(_0x54354c,_0x101118){return db[_0xfcf2('0x35')][_0xfcf2('0xb3')](_0x54354c[_0xfcf2('0x6f')],{})[_0xfcf2('0x29')](respondWithResult(_0x101118,0xc9))[_0xfcf2('0xb0')](handleError(_0x101118,null));};exports['update']=function(_0x2262b2,_0x389e2c){if(_0x2262b2['body']['id']){delete _0x2262b2[_0xfcf2('0x6f')]['id'];}return db[_0xfcf2('0x35')]['find']({'where':{'id':_0x2262b2[_0xfcf2('0xb1')]['id']}})['then'](handleEntityNotFound(_0x389e2c,null))[_0xfcf2('0x29')](saveUpdates(_0x2262b2[_0xfcf2('0x6f')],null))[_0xfcf2('0x29')](respondWithResult(_0x389e2c,null))[_0xfcf2('0xb0')](handleError(_0x389e2c,null));};exports['destroy']=function(_0x11a273,_0x109555){return db[_0xfcf2('0x35')][_0xfcf2('0x5a')]({'where':{'id':_0x11a273[_0xfcf2('0xb1')]['id']}})[_0xfcf2('0x29')](handleEntityNotFound(_0x109555,null))['then'](removeEntity(_0x109555,null))[_0xfcf2('0xb0')](handleError(_0x109555,null));};exports[_0xfcf2('0xb4')]=function(_0x21a326,_0xef992e){return db[_0xfcf2('0x35')][_0xfcf2('0xb4')]()[_0xfcf2('0x29')](respondWithResult(_0xef992e,null))[_0xfcf2('0xb0')](handleError(_0xef992e,null));};exports[_0xfcf2('0xb5')]=function(_0x460c6f,_0x48df49,_0x402958){return db['SmsMessage'][_0xfcf2('0x5a')]({'where':{'id':_0x460c6f[_0xfcf2('0xb1')]['id']}})['then'](handleEntityNotFound(_0x48df49,null))[_0xfcf2('0x29')](function(_0x3feb18){if(_0x3feb18){return _0x3feb18['addMessage'](_0x460c6f[_0xfcf2('0x6f')][_0xfcf2('0xb6')],_[_0xfcf2('0xb7')](_0x460c6f[_0xfcf2('0x6f')],['ids','id'])||{});}})[_0xfcf2('0x29')](respondWithResult(_0x48df49,null))[_0xfcf2('0xb0')](handleError(_0x48df49,null));};exports[_0xfcf2('0xb8')]=function(_0x4c166c,_0x28901e,_0x4f3017){var _0x23cb59={'raw':![],'where':{}};var _0x12a8e3={};var _0x33440d={'count':0x0,'rows':[]};return db[_0xfcf2('0x35')]['findOne']({'where':{'id':_0x4c166c[_0xfcf2('0xb1')]['id']}})[_0xfcf2('0x29')](handleEntityNotFound(_0x28901e,null))[_0xfcf2('0x29')](function(_0x20ecc9){if(_0x20ecc9){_0x12a8e3[_0xfcf2('0x3a')]=_[_0xfcf2('0x3c')](db[_0xfcf2('0xb9')]['rawAttributes']);_0x12a8e3[_0xfcf2('0x3b')]=_[_0xfcf2('0x3c')](_0x4c166c[_0xfcf2('0x3b')]);_0x12a8e3[_0xfcf2('0x43')]=_['intersection'](_0x12a8e3['model'],_0x12a8e3[_0xfcf2('0x3b')]);_0x23cb59[_0xfcf2('0x3d')]=_['intersection'](_0x12a8e3[_0xfcf2('0x3a')],qs['fields'](_0x4c166c[_0xfcf2('0x3b')][_0xfcf2('0x99')]));_0x23cb59[_0xfcf2('0x3d')]=_0x23cb59[_0xfcf2('0x3d')]['length']?_0x23cb59['attributes']:_0x12a8e3[_0xfcf2('0x3a')];if(!_0x4c166c[_0xfcf2('0x3b')][_0xfcf2('0x40')]('nolimit')){_0x23cb59[_0xfcf2('0x22')]=qs[_0xfcf2('0x22')](_0x4c166c[_0xfcf2('0x3b')][_0xfcf2('0x22')]);_0x23cb59[_0xfcf2('0x20')]=qs[_0xfcf2('0x20')](_0x4c166c[_0xfcf2('0x3b')][_0xfcf2('0x20')]);}_0x23cb59[_0xfcf2('0x8c')]=qs[_0xfcf2('0x41')](_0x4c166c['query']['sort']);_0x23cb59['where']=qs[_0xfcf2('0x43')](_[_0xfcf2('0x44')](_0x4c166c['query'],_0x12a8e3[_0xfcf2('0x43')]));_0x23cb59[_0xfcf2('0x42')][_0xfcf2('0xba')]=_0x20ecc9['id'];if(_0x4c166c[_0xfcf2('0x3b')][_0xfcf2('0x80')]){_0x23cb59[_0xfcf2('0x42')]=_[_0xfcf2('0x98')](_0x23cb59[_0xfcf2('0x42')],{'$or':_[_0xfcf2('0x2e')](_0x23cb59['attributes'],function(_0x59dd29){var _0x35a6f2={};_0x35a6f2[_0x59dd29]={'$like':'%'+_0x4c166c['query']['filter']+'%'};return _0x35a6f2;})});}if(_0x4c166c[_0xfcf2('0x3b')][_0xfcf2('0x76')]){var _0x54204f=_0x4c166c['query'][_0xfcf2('0x76')][_0xfcf2('0x62')](',');var _0x22f5d8={};_0x22f5d8[_0x54204f[0x0]]={'$gte':moment(_0x54204f[0x1])[_0xfcf2('0xbb')](_0xfcf2('0xbc'))};_0x23cb59['where']=_[_0xfcf2('0x98')](_0x23cb59[_0xfcf2('0x42')],_0x22f5d8);}_0x23cb59=_['merge']({},_0x23cb59,_0x4c166c[_0xfcf2('0xbd')]);return db[_0xfcf2('0xb9')]['count']({'where':_0x23cb59[_0xfcf2('0x42')]})[_0xfcf2('0x29')](function(_0x38b9b1){_0x33440d[_0xfcf2('0x23')]=_0x38b9b1;if(_0x4c166c['query'][_0xfcf2('0xb2')]){_0x23cb59[_0xfcf2('0xbe')]=[{'all':!![]}];}return db[_0xfcf2('0xb9')][_0xfcf2('0xbf')](_0x23cb59);})[_0xfcf2('0x29')](function(_0x2af8b3){_0x33440d[_0xfcf2('0xc0')]=_0x2af8b3;return _0x33440d;});}})[_0xfcf2('0x29')](respondWithFilteredResult(_0x28901e,_0x23cb59))[_0xfcf2('0xb0')](handleError(_0x28901e,null));};exports[_0xfcf2('0xc1')]=function(_0x4f6c2a,_0x27d3f0,_0x3b5fbe){return db[_0xfcf2('0x35')][_0xfcf2('0x5a')]({'where':{'id':_0x4f6c2a[_0xfcf2('0xb1')]['id']}})['then'](handleEntityNotFound(_0x27d3f0,null))[_0xfcf2('0x29')](function(_0x2bfdb8){if(_0x2bfdb8){return _0x2bfdb8[_0xfcf2('0xc2')](_0x4f6c2a[_0xfcf2('0x6f')][_0xfcf2('0xb6')],_[_0xfcf2('0xb7')](_0x4f6c2a[_0xfcf2('0x6f')],[_0xfcf2('0xb6'),'id'])||{})[_0xfcf2('0xc3')](function(){return db['Tag'][_0xfcf2('0xbf')]({'attributes':['id',_0xfcf2('0x2c'),_0xfcf2('0xc4')],'where':{'id':_0x4f6c2a['body'][_0xfcf2('0xb6')]}});})[_0xfcf2('0x29')](function(_0x2692b7){socket[_0xfcf2('0xc5')](_0xfcf2('0xc6'),{'id':Number(_0x4f6c2a[_0xfcf2('0xb1')]['id']),'tags':_0x2692b7||[]});return{'id':Number(_0x4f6c2a['params']['id']),'tags':_0x2692b7||[]};});}})[_0xfcf2('0x29')](respondWithResult(_0x27d3f0,null))[_0xfcf2('0xb0')](handleError(_0x27d3f0,null));};exports['removeTags']=function(_0x25a4a3,_0x248302,_0x15324d){return db['SmsInteraction'][_0xfcf2('0x5a')]({'where':{'id':_0x25a4a3['params']['id']}})[_0xfcf2('0x29')](handleEntityNotFound(_0x248302,null))[_0xfcf2('0x29')](function(_0x887d34){if(_0x887d34){return _0x887d34[_0xfcf2('0xc7')](_0x25a4a3[_0xfcf2('0x3b')][_0xfcf2('0xb6')]);}})[_0xfcf2('0x29')](respondWithStatusCode(_0x248302,null))['catch'](handleError(_0x248302,null));};exports[_0xfcf2('0xc8')]=function(_0xcab361,_0x214552){var _0x345cc9=moment()[_0xfcf2('0xc9')]()['toString']();var _0x34f9cd=path[_0xfcf2('0xca')](config['root'],_0xfcf2('0xcb'),'files','tmp');var _0x2af2dd=path[_0xfcf2('0xca')](config['root'],'server','files',_0xfcf2('0xcc'));var _0x437340=path[_0xfcf2('0xca')](_0x34f9cd,_0x345cc9);var _0x23a0c9=util['format'](_0xfcf2('0xcd'),_0xcab361[_0xfcf2('0xb1')]['id'],_0x345cc9);var _0xa28381=path[_0xfcf2('0xca')](_0x34f9cd,_0x23a0c9);var _0x162804=[];_0x162804['push']({'model':db['User'],'as':_0xfcf2('0x6c'),'attributes':['id',_0xfcf2('0x2f')],'raw':!![]});_0x162804['push']({'model':db[_0xfcf2('0xce')],'as':'Contact','attributes':['id',_0xfcf2('0xcf'),'lastName'],'raw':!![]});var _0x1483aa=[{'model':db[_0xfcf2('0xb9')],'as':'Messages','attributes':['id',_0xfcf2('0x6f'),_0xfcf2('0xd0'),'direction',_0xfcf2('0xd1'),_0xfcf2('0x7c')],'include':_0x162804}];_0x1483aa['push']({'model':db[_0xfcf2('0xd2')],'as':'Account','attributes':['id',_0xfcf2('0x2c')]});_0x1483aa[_0xfcf2('0x33')]({'model':db[_0xfcf2('0x6c')],'as':'Owner','attributes':['id',_0xfcf2('0x2f')]});return db[_0xfcf2('0x35')]['find']({'where':{'id':_0xcab361[_0xfcf2('0xb1')]['id']},'include':_0x1483aa})[_0xfcf2('0x29')](handleEntityNotFound(_0x214552,null))[_0xfcf2('0x29')](function(_0x9e413e){if(_0x9e413e){var _0x581592=_0x9e413e['get']({'plain':!![]});fs['mkdirSync'](_0x437340);var _0x73cf81={'channel':_0xfcf2('0xd3'),'account':_0x581592[_0xfcf2('0xd4')][_0xfcf2('0x2c')],'agent':_0x581592[_0xfcf2('0xd5')]?_0x581592[_0xfcf2('0xd5')][_0xfcf2('0x2f')]:_0xfcf2('0xd6'),'createdAt':moment(_0x581592[_0xfcf2('0xd0')])[_0xfcf2('0xbb')](_0xfcf2('0xbc'))[_0xfcf2('0x97')](),'closedAt':_0x581592[_0xfcf2('0xd7')]?moment(_0x581592['closedAt'])[_0xfcf2('0xbb')]('YYYY-MM-DD\x20HH:mm:ss')[_0xfcf2('0x97')]():'','disposition':_0x581592[_0xfcf2('0xd8')],'messages':_(_0x581592[_0xfcf2('0xd9')])['filter']({'secret':![]})[_0xfcf2('0x2e')](function(_0x31b794){return{'date':moment(_0x31b794[_0xfcf2('0xd0')])[_0xfcf2('0xbb')](_0xfcf2('0xbc'))[_0xfcf2('0x97')](),'sender':_0x31b794[_0xfcf2('0xda')]===_0xfcf2('0xdb')?_0x31b794[_0xfcf2('0x6c')]?_0x31b794[_0xfcf2('0x6c')][_0xfcf2('0x2f')]:'System':_0x31b794['Contact'][_0xfcf2('0xcf')]+(_0x31b794[_0xfcf2('0x5f')][_0xfcf2('0xdc')]?'\x20'+_0x31b794[_0xfcf2('0x5f')][_0xfcf2('0xdc')]:''),'body':_0x31b794[_0xfcf2('0x6f')],'direction':_0x31b794[_0xfcf2('0xda')]===_0xfcf2('0xdb')?'A':'C','secret':_0x31b794[_0xfcf2('0xd1')],'read':_0x31b794[_0xfcf2('0x7c')]};})[_0xfcf2('0x5c')]()};return ejs[_0xfcf2('0xdd')](path['join'](config[_0xfcf2('0xde')],_0xfcf2('0xcb'),_0xfcf2('0xdf'),_0xfcf2('0xe0')),{'interaction':_0x73cf81})[_0xfcf2('0x29')](function(_0x5cdc8c){var _0x486886=path['join'](_0x437340,_0xfcf2('0xe1')+_0x581592['id']+'-'+_0x345cc9+_0xfcf2('0xe2'));var _0x471b9d={'path':_0x486886,'channel':_0xfcf2('0xd3'),'interactionId':_0x581592['id']};return pdf[_0xfcf2('0xe3')](_0x5cdc8c,_0x471b9d);})['then'](function(){return new BPromise(function(_0x3832e2,_0x229cd9){zipdir(_0x437340,{'saveTo':_0xa28381},function(_0x33d67b,_0x5eac74){if(_0x33d67b)return _0x229cd9(_0x33d67b);return _0x3832e2(_0x5eac74);});})[_0xfcf2('0x29')](function(){return new BPromise(function(_0x515bb8,_0x9e746){rimraf(_0x437340,function(_0x9a8a01){if(_0x9a8a01)_0x9e746(_0x9a8a01);return _0x515bb8();});});})[_0xfcf2('0x29')](function(){return _0x214552[_0xfcf2('0xc8')](_0xa28381,_0x23a0c9,function(_0x72c71b){if(_0x72c71b){console[_0xfcf2('0xe4')](_0xfcf2('0xe5'),_0x72c71b);}else{fs[_0xfcf2('0xe6')](_0xa28381);}});});});}else{return _0x214552[_0xfcf2('0x1e')](0xc8);}})[_0xfcf2('0xb0')](handleError(_0x214552,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4888=['../../mysqldb','SmsInteraction','SmsMessage','setMaxListeners','save','update','getUsers','then','findAll','setDataValue','unreadMessages','length','emit','catch','hasOwnProperty','hook','exports'];(function(_0x53371d,_0x5b86c3){var _0x5e4f4b=function(_0x522e5c){while(--_0x522e5c){_0x53371d['push'](_0x53371d['shift']());}};_0x5e4f4b(++_0x5b86c3);}(_0x4888,0x198));var _0x8488=function(_0x474f47,_0x2303b7){_0x474f47=_0x474f47-0x0;var _0x21bfe6=_0x4888[_0x474f47];return _0x21bfe6;};'use strict';var EventEmitter=require('events');var SmsInteraction=require(_0x8488('0x0'))['db'][_0x8488('0x1')];var SmsMessage=require(_0x8488('0x0'))['db'][_0x8488('0x2')];var SmsInteractionEvents=new EventEmitter();SmsInteractionEvents[_0x8488('0x3')](0x0);var events={'afterCreate':_0x8488('0x4'),'afterUpdate':_0x8488('0x5'),'afterDestroy':'remove'};function emitEvent(_0x267093){return function(_0xf45c3f,_0x1a97f4,_0x421292){_0xf45c3f[_0x8488('0x6')]({'attributes':['id'],'raw':!![]})[_0x8488('0x7')](function(_0x5250a1){_0xf45c3f['setDataValue']('Users',_0x5250a1['map'](function(_0x151528){return{'id':_0x151528['id']};}));return SmsMessage[_0x8488('0x8')]({'where':{'SmsInteractionId':_0xf45c3f['id'],'direction':'in','read':![]},'raw':!![]});})['then'](function(_0x19c994){_0xf45c3f[_0x8488('0x9')](_0x8488('0xa'),_0x19c994[_0x8488('0xb')]);SmsInteractionEvents['emit'](_0x267093+':'+_0xf45c3f['id'],_0xf45c3f);SmsInteractionEvents[_0x8488('0xc')](_0x267093,_0xf45c3f);_0x421292(null);})[_0x8488('0xd')](_0x421292(null));};}for(var e in events){if(events[_0x8488('0xe')](e)){var event=events[e];SmsInteraction[_0x8488('0xf')](e,emitEvent(event));}}module[_0x8488('0x10')]=SmsInteractionEvents;
\ No newline at end of file
+var _0x1893=['SmsInteraction','../../mysqldb','SmsMessage','setMaxListeners','save','update','remove','getUsers','then','setDataValue','Users','unreadMessages','length','emit','catch','hasOwnProperty','hook','exports'];(function(_0x3d9fd4,_0x1f2542){var _0x53e0a7=function(_0x2f6a5f){while(--_0x2f6a5f){_0x3d9fd4['push'](_0x3d9fd4['shift']());}};_0x53e0a7(++_0x1f2542);}(_0x1893,0xa2));var _0x3189=function(_0x520c24,_0x3fb9af){_0x520c24=_0x520c24-0x0;var _0x377104=_0x1893[_0x520c24];return _0x377104;};'use strict';var EventEmitter=require('events');var SmsInteraction=require('../../mysqldb')['db'][_0x3189('0x0')];var SmsMessage=require(_0x3189('0x1'))['db'][_0x3189('0x2')];var SmsInteractionEvents=new EventEmitter();SmsInteractionEvents[_0x3189('0x3')](0x0);var events={'afterCreate':_0x3189('0x4'),'afterUpdate':_0x3189('0x5'),'afterDestroy':_0x3189('0x6')};function emitEvent(_0x5371db){return function(_0x27445,_0x4faebf,_0x2333e6){_0x27445[_0x3189('0x7')]({'attributes':['id'],'raw':!![]})[_0x3189('0x8')](function(_0x118970){_0x27445[_0x3189('0x9')](_0x3189('0xa'),_0x118970['map'](function(_0x1d5f6a){return{'id':_0x1d5f6a['id']};}));return SmsMessage['findAll']({'where':{'SmsInteractionId':_0x27445['id'],'direction':'in','read':![]},'raw':!![]});})[_0x3189('0x8')](function(_0x4ac683){_0x27445[_0x3189('0x9')](_0x3189('0xb'),_0x4ac683[_0x3189('0xc')]);SmsInteractionEvents[_0x3189('0xd')](_0x5371db+':'+_0x27445['id'],_0x27445);SmsInteractionEvents['emit'](_0x5371db,_0x27445);_0x2333e6(null);})[_0x3189('0xe')](_0x2333e6(null));};}for(var e in events){if(events[_0x3189('0xf')](e)){var event=events[e];SmsInteraction[_0x3189('0x10')](e,emitEvent(event));}}module[_0x3189('0x11')]=SmsInteractionEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb154=['SmsInteraction','sms_interactions','changed','closed','closedAt','format','YYYY-MM-DD\x20HH:mm:ss','lodash','util','api','moment','bluebird','request-promise','path','../../config/environment','./smsInteraction.attributes','define'];(function(_0x278319,_0x266d41){var _0x5e4b28=function(_0x124b0d){while(--_0x124b0d){_0x278319['push'](_0x278319['shift']());}};_0x5e4b28(++_0x266d41);}(_0xb154,0x1c1));var _0x4b15=function(_0x5e48c7,_0xa195e8){_0x5e48c7=_0x5e48c7-0x0;var _0x4b1285=_0xb154[_0x5e48c7];return _0x4b1285;};'use strict';var _=require(_0x4b15('0x0'));var util=require(_0x4b15('0x1'));var logger=require('../../config/logger')(_0x4b15('0x2'));var moment=require(_0x4b15('0x3'));var BPromise=require(_0x4b15('0x4'));var rp=require(_0x4b15('0x5'));var fs=require('fs');var path=require(_0x4b15('0x6'));var rimraf=require('rimraf');var config=require(_0x4b15('0x7'));var attributes=require(_0x4b15('0x8'));module['exports']=function(_0x4c7bd7,_0xef1df4){return _0x4c7bd7[_0x4b15('0x9')](_0x4b15('0xa'),attributes,{'tableName':_0x4b15('0xb'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeUpdate':function(_0x1441bf,_0x168840,_0x405e32){if(_0x1441bf[_0x4b15('0xc')](_0x4b15('0xd'))){_0x1441bf[_0x4b15('0xe')]=moment()[_0x4b15('0xf')](_0x4b15('0x10'));}_0x405e32(null,_0x1441bf);}}});};
\ No newline at end of file
+var _0x5e56=['request-promise','path','rimraf','../../config/environment','./smsInteraction.attributes','exports','SmsInteraction','sms_interactions','closedAt','YYYY-MM-DD\x20HH:mm:ss','lodash','util','api','bluebird'];(function(_0x41ba7c,_0x21b2bb){var _0xb1bf6a=function(_0x879cc7){while(--_0x879cc7){_0x41ba7c['push'](_0x41ba7c['shift']());}};_0xb1bf6a(++_0x21b2bb);}(_0x5e56,0x130));var _0x65e5=function(_0x32a1b3,_0x3e22c5){_0x32a1b3=_0x32a1b3-0x0;var _0x5bfd8a=_0x5e56[_0x32a1b3];return _0x5bfd8a;};'use strict';var _=require(_0x65e5('0x0'));var util=require(_0x65e5('0x1'));var logger=require('../../config/logger')(_0x65e5('0x2'));var moment=require('moment');var BPromise=require(_0x65e5('0x3'));var rp=require(_0x65e5('0x4'));var fs=require('fs');var path=require(_0x65e5('0x5'));var rimraf=require(_0x65e5('0x6'));var config=require(_0x65e5('0x7'));var attributes=require(_0x65e5('0x8'));module[_0x65e5('0x9')]=function(_0x3d7039,_0x39b464){return _0x3d7039['define'](_0x65e5('0xa'),attributes,{'tableName':_0x65e5('0xb'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeUpdate':function(_0x3b5608,_0x447987,_0x87dab0){if(_0x3b5608['changed']('closed')){_0x3b5608[_0x65e5('0xc')]=moment()['format'](_0x65e5('0xd'));}_0x87dab0(null,_0x3b5608);}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xca74=['./smsInteraction.socket','register','request','then','SmsInteraction,\x20%s,\x20%s','request\x20sent','debug','SmsInteraction,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','SmsInteraction','update','body','options','raw','where','attributes','limit','UpdateSmsInteraction','AddTagsToSmsInteraction','find','ids','omit','AddTags','lodash','util','moment','randomstring','ioredis','../../config/utils','rpc','jayson/promise','defaults','redis','localhost','socket.io-emitter'];(function(_0x1be52a,_0x5ec0b7){var _0x535ec4=function(_0x1e6b65){while(--_0x1e6b65){_0x1be52a['push'](_0x1be52a['shift']());}};_0x535ec4(++_0x5ec0b7);}(_0xca74,0xea));var _0x4ca7=function(_0x22fc1d,_0x5b8ee1){_0x22fc1d=_0x22fc1d-0x0;var _0x29e032=_0xca74[_0x22fc1d];return _0x29e032;};'use strict';var _=require(_0x4ca7('0x0'));var util=require(_0x4ca7('0x1'));var moment=require(_0x4ca7('0x2'));var BPromise=require('bluebird');var rs=require(_0x4ca7('0x3'));var fs=require('fs');var Redis=require(_0x4ca7('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x4ca7('0x5'));var logger=require('../../config/logger')(_0x4ca7('0x6'));var config=require('../../config/environment');var jayson=require(_0x4ca7('0x7'));var client=jayson['client']['http']({'port':0x232a});config['redis']=_[_0x4ca7('0x8')](config[_0x4ca7('0x9')],{'host':_0x4ca7('0xa'),'port':0x18eb});var socket=require(_0x4ca7('0xb'))(new Redis(config['redis']));require(_0x4ca7('0xc'))[_0x4ca7('0xd')](socket);function respondWithRpcPromise(_0x4f3e76,_0x2c527c,_0x3b9540){return new BPromise(function(_0x42db0d,_0x5642fc){return client[_0x4ca7('0xe')](_0x4f3e76,_0x3b9540)[_0x4ca7('0xf')](function(_0x59d3ed){logger['info'](_0x4ca7('0x10'),_0x2c527c,_0x4ca7('0x11'));logger[_0x4ca7('0x12')](_0x4ca7('0x13'),_0x2c527c,_0x4ca7('0x11'),JSON[_0x4ca7('0x14')](_0x59d3ed));if(_0x59d3ed[_0x4ca7('0x15')]){if(_0x59d3ed[_0x4ca7('0x15')][_0x4ca7('0x16')]===0x1f4){logger[_0x4ca7('0x15')]('SmsInteraction,\x20%s,\x20%s',_0x2c527c,_0x59d3ed[_0x4ca7('0x15')]['message']);return _0x5642fc(_0x59d3ed[_0x4ca7('0x15')][_0x4ca7('0x17')]);}logger[_0x4ca7('0x15')](_0x4ca7('0x10'),_0x2c527c,_0x59d3ed[_0x4ca7('0x15')][_0x4ca7('0x17')]);return _0x42db0d(_0x59d3ed[_0x4ca7('0x15')]['message']);}else{logger[_0x4ca7('0x18')](_0x4ca7('0x10'),_0x2c527c,'request\x20sent');_0x42db0d(_0x59d3ed[_0x4ca7('0x19')][_0x4ca7('0x17')]);}})[_0x4ca7('0x1a')](function(_0x3d299d){logger['error'](_0x4ca7('0x10'),_0x2c527c,_0x3d299d);_0x5642fc(_0x3d299d);});});}exports['UpdateSmsInteraction']=function(_0x345903){var _0x20511c=this;return new Promise(function(_0x4e475e,_0x49f1dc){return db[_0x4ca7('0x1b')][_0x4ca7('0x1c')](_0x345903[_0x4ca7('0x1d')],{'raw':_0x345903['options']?_0x345903[_0x4ca7('0x1e')][_0x4ca7('0x1f')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x345903[_0x4ca7('0x1e')]?_0x345903[_0x4ca7('0x1e')][_0x4ca7('0x20')]||null:null,'attributes':_0x345903[_0x4ca7('0x1e')]?_0x345903[_0x4ca7('0x1e')][_0x4ca7('0x21')]||null:null,'limit':_0x345903[_0x4ca7('0x1e')]?_0x345903[_0x4ca7('0x1e')][_0x4ca7('0x22')]||null:null})[_0x4ca7('0xf')](function(_0x2583f6){logger[_0x4ca7('0x18')]('UpdateSmsInteraction',_0x345903);logger[_0x4ca7('0x12')](_0x4ca7('0x23'),_0x345903,JSON[_0x4ca7('0x14')](_0x2583f6));_0x4e475e(_0x2583f6);})[_0x4ca7('0x1a')](function(_0x486d4c){logger[_0x4ca7('0x15')](_0x4ca7('0x23'),_0x486d4c['message'],_0x345903);_0x49f1dc(_0x20511c[_0x4ca7('0x15')](0x1f4,_0x486d4c['message']));});});};exports[_0x4ca7('0x24')]=function(_0x388910){return new Promise(function(_0x1df61d,_0x15c9e8){return db[_0x4ca7('0x1b')][_0x4ca7('0x25')]({'where':_0x388910[_0x4ca7('0x1e')]?_0x388910[_0x4ca7('0x1e')]['where']||null:null})[_0x4ca7('0xf')](function(_0x1b07d0){if(_0x1b07d0){return _0x1b07d0['addTags'](_0x388910[_0x4ca7('0x1d')][_0x4ca7('0x26')],_[_0x4ca7('0x27')](_0x388910[_0x4ca7('0x1d')],[_0x4ca7('0x26'),'id'])||{});}})['spread'](function(_0x457def){logger[_0x4ca7('0x18')](_0x4ca7('0x28'),_0x388910);logger[_0x4ca7('0x12')]('AddTags',_0x388910,JSON[_0x4ca7('0x14')](_0x457def));_0x1df61d(_0x457def);})[_0x4ca7('0x1a')](function(_0x41a256){logger[_0x4ca7('0x15')](_0x4ca7('0x28'),_0x41a256[_0x4ca7('0x17')],_0x388910);_0x15c9e8(_this[_0x4ca7('0x15')](0x1f4,_0x41a256[_0x4ca7('0x17')]));});});};
\ No newline at end of file
+var _0xb48e=['register','request','info','SmsInteraction,\x20%s,\x20%s','request\x20sent','debug','error','code','message','result','catch','UpdateSmsInteraction','SmsInteraction','update','body','options','raw','where','attributes','limit','then','stringify','addTags','ids','omit','AddTags','lodash','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','redis','defaults','localhost','socket.io-emitter','./smsInteraction.socket'];(function(_0x49804a,_0x109d1e){var _0x57bae5=function(_0x3d053e){while(--_0x3d053e){_0x49804a['push'](_0x49804a['shift']());}};_0x57bae5(++_0x109d1e);}(_0xb48e,0x70));var _0xeb48=function(_0x792972,_0x541bd2){_0x792972=_0x792972-0x0;var _0x9aa56e=_0xb48e[_0x792972];return _0x9aa56e;};'use strict';var _=require(_0xeb48('0x0'));var util=require(_0xeb48('0x1'));var moment=require(_0xeb48('0x2'));var BPromise=require(_0xeb48('0x3'));var rs=require(_0xeb48('0x4'));var fs=require('fs');var Redis=require(_0xeb48('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0xeb48('0x6'));var logger=require(_0xeb48('0x7'))(_0xeb48('0x8'));var config=require(_0xeb48('0x9'));var jayson=require(_0xeb48('0xa'));var client=jayson['client'][_0xeb48('0xb')]({'port':0x232a});config[_0xeb48('0xc')]=_[_0xeb48('0xd')](config[_0xeb48('0xc')],{'host':_0xeb48('0xe'),'port':0x18eb});var socket=require(_0xeb48('0xf'))(new Redis(config['redis']));require(_0xeb48('0x10'))[_0xeb48('0x11')](socket);function respondWithRpcPromise(_0x3c3683,_0xcd8bdb,_0x22016a){return new BPromise(function(_0x37d9c9,_0x3c0ef3){return client[_0xeb48('0x12')](_0x3c3683,_0x22016a)['then'](function(_0x3d3e6a){logger[_0xeb48('0x13')](_0xeb48('0x14'),_0xcd8bdb,_0xeb48('0x15'));logger[_0xeb48('0x16')]('SmsInteraction,\x20%s,\x20%s,\x20%s',_0xcd8bdb,_0xeb48('0x15'),JSON['stringify'](_0x3d3e6a));if(_0x3d3e6a['error']){if(_0x3d3e6a[_0xeb48('0x17')][_0xeb48('0x18')]===0x1f4){logger[_0xeb48('0x17')](_0xeb48('0x14'),_0xcd8bdb,_0x3d3e6a[_0xeb48('0x17')][_0xeb48('0x19')]);return _0x3c0ef3(_0x3d3e6a[_0xeb48('0x17')][_0xeb48('0x19')]);}logger[_0xeb48('0x17')]('SmsInteraction,\x20%s,\x20%s',_0xcd8bdb,_0x3d3e6a['error'][_0xeb48('0x19')]);return _0x37d9c9(_0x3d3e6a[_0xeb48('0x17')][_0xeb48('0x19')]);}else{logger['info']('SmsInteraction,\x20%s,\x20%s',_0xcd8bdb,_0xeb48('0x15'));_0x37d9c9(_0x3d3e6a[_0xeb48('0x1a')]['message']);}})[_0xeb48('0x1b')](function(_0x25b713){logger['error'](_0xeb48('0x14'),_0xcd8bdb,_0x25b713);_0x3c0ef3(_0x25b713);});});}exports[_0xeb48('0x1c')]=function(_0x200bdd){var _0x3e48d1=this;return new Promise(function(_0x26340e,_0x4ae08e){return db[_0xeb48('0x1d')][_0xeb48('0x1e')](_0x200bdd[_0xeb48('0x1f')],{'raw':_0x200bdd[_0xeb48('0x20')]?_0x200bdd[_0xeb48('0x20')][_0xeb48('0x21')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x200bdd[_0xeb48('0x20')]?_0x200bdd[_0xeb48('0x20')][_0xeb48('0x22')]||null:null,'attributes':_0x200bdd['options']?_0x200bdd[_0xeb48('0x20')][_0xeb48('0x23')]||null:null,'limit':_0x200bdd[_0xeb48('0x20')]?_0x200bdd[_0xeb48('0x20')][_0xeb48('0x24')]||null:null})[_0xeb48('0x25')](function(_0x1fb007){logger['info']('UpdateSmsInteraction',_0x200bdd);logger['debug'](_0xeb48('0x1c'),_0x200bdd,JSON[_0xeb48('0x26')](_0x1fb007));_0x26340e(_0x1fb007);})[_0xeb48('0x1b')](function(_0x50a8ff){logger['error'](_0xeb48('0x1c'),_0x50a8ff[_0xeb48('0x19')],_0x200bdd);_0x4ae08e(_0x3e48d1['error'](0x1f4,_0x50a8ff[_0xeb48('0x19')]));});});};exports['AddTagsToSmsInteraction']=function(_0x3acf4e){return new Promise(function(_0x197199,_0x94bf62){return db[_0xeb48('0x1d')]['find']({'where':_0x3acf4e['options']?_0x3acf4e[_0xeb48('0x20')][_0xeb48('0x22')]||null:null})[_0xeb48('0x25')](function(_0x2f4e28){if(_0x2f4e28){return _0x2f4e28[_0xeb48('0x27')](_0x3acf4e['body'][_0xeb48('0x28')],_[_0xeb48('0x29')](_0x3acf4e['body'],[_0xeb48('0x28'),'id'])||{});}})['spread'](function(_0xe6ca43){logger['info']('AddTags',_0x3acf4e);logger[_0xeb48('0x16')]('AddTags',_0x3acf4e,JSON['stringify'](_0xe6ca43));_0x197199(_0xe6ca43);})[_0xeb48('0x1b')](function(_0x404344){logger[_0xeb48('0x17')](_0xeb48('0x2a'),_0x404344[_0xeb48('0x19')],_0x3acf4e);_0x94bf62(_this['error'](0x1f4,_0x404344[_0xeb48('0x19')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x81c8=['update','smsInteraction:','save','remove'];(function(_0x4db75d,_0x111380){var _0x596539=function(_0x2408c5){while(--_0x2408c5){_0x4db75d['push'](_0x4db75d['shift']());}};_0x596539(++_0x111380);}(_0x81c8,0x7e));var _0x881c=function(_0x336bd1,_0x51aae8){_0x336bd1=_0x336bd1-0x0;var _0x477429=_0x81c8[_0x336bd1];return _0x477429;};'use strict';var SmsInteractionEvents=require('./smsInteraction.events');var events=[_0x881c('0x0'),_0x881c('0x1'),_0x881c('0x2')];function createListener(_0x35ecec,_0x12276c){return function(_0x9b9e86){_0x12276c['emit'](_0x35ecec,_0x9b9e86);};}function removeListener(_0x2ccbce,_0x37a6df){return function(){SmsInteractionEvents['removeListener'](_0x2ccbce,_0x37a6df);};}exports['register']=function(_0x3c26e8){for(var _0x3e6c3a=0x0,_0x46c49c=events['length'];_0x3e6c3a<_0x46c49c;_0x3e6c3a++){var _0x1648e4=events[_0x3e6c3a];var _0x4c988c=createListener(_0x881c('0x3')+_0x1648e4,_0x3c26e8);SmsInteractionEvents['on'](_0x1648e4,_0x4c988c);}};
\ No newline at end of file
+var _0x36e8=['emit','register','smsInteraction:','remove','update'];(function(_0x56e805,_0x429591){var _0x582d0f=function(_0x5163da){while(--_0x5163da){_0x56e805['push'](_0x56e805['shift']());}};_0x582d0f(++_0x429591);}(_0x36e8,0x116));var _0x836e=function(_0x5c1c03,_0x1046df){_0x5c1c03=_0x5c1c03-0x0;var _0x44f62f=_0x36e8[_0x5c1c03];return _0x44f62f;};'use strict';var SmsInteractionEvents=require('./smsInteraction.events');var events=['save',_0x836e('0x0'),_0x836e('0x1')];function createListener(_0x164d43,_0x15f8da){return function(_0x23037a){_0x15f8da[_0x836e('0x2')](_0x164d43,_0x23037a);};}function removeListener(_0x380e78,_0x5ce202){return function(){SmsInteractionEvents['removeListener'](_0x380e78,_0x5ce202);};}exports[_0x836e('0x3')]=function(_0x44719c){for(var _0x17fbc0=0x0,_0x304fef=events['length'];_0x17fbc0<_0x304fef;_0x17fbc0++){var _0x6dc0b1=events[_0x17fbc0];var _0x2311e5=createListener(_0x836e('0x4')+_0x6dc0b1,_0x44719c);SmsInteractionEvents['on'](_0x6dc0b1,_0x2311e5);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2b4a=['/describe','describe','/:id','show','post','sms','create','/:id/status','status','put','update','/:id/accept','accept','/:id/reject','reject','delete','destroy','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../config/environment','./smsMessage.controller','get','isAuthenticated'];(function(_0x535150,_0x572644){var _0x2788e3=function(_0xae7270){while(--_0xae7270){_0x535150['push'](_0x535150['shift']());}};_0x2788e3(++_0x572644);}(_0x2b4a,0x13e));var _0xa2b4=function(_0x1f9f37,_0x18776e){_0x1f9f37=_0x1f9f37-0x0;var _0x21c080=_0x2b4a[_0x1f9f37];return _0x21c080;};'use strict';var multer=require(_0xa2b4('0x0'));var util=require(_0xa2b4('0x1'));var path=require(_0xa2b4('0x2'));var timeout=require(_0xa2b4('0x3'));var express=require(_0xa2b4('0x4'));var router=express[_0xa2b4('0x5')]();var fs_extra=require(_0xa2b4('0x6'));var auth=require(_0xa2b4('0x7'));var interaction=require('../../components/interaction/service');var config=require(_0xa2b4('0x8'));var controller=require(_0xa2b4('0x9'));router[_0xa2b4('0xa')]('/',auth[_0xa2b4('0xb')](),controller['index']);router[_0xa2b4('0xa')](_0xa2b4('0xc'),auth['isAuthenticated'](),controller[_0xa2b4('0xd')]);router[_0xa2b4('0xa')](_0xa2b4('0xe'),auth[_0xa2b4('0xb')](),controller[_0xa2b4('0xf')]);router[_0xa2b4('0x10')]('/',auth['isAuthenticated'](),interaction['tracked'](_0xa2b4('0x11'),'smsmessage:create'),controller[_0xa2b4('0x12')]);router[_0xa2b4('0x10')](_0xa2b4('0x13'),controller[_0xa2b4('0x14')]);router[_0xa2b4('0x15')](_0xa2b4('0xe'),auth[_0xa2b4('0xb')](),controller[_0xa2b4('0x16')]);router[_0xa2b4('0x15')](_0xa2b4('0x17'),auth[_0xa2b4('0xb')](),controller[_0xa2b4('0x18')]);router[_0xa2b4('0x15')](_0xa2b4('0x19'),auth['isAuthenticated'](),controller[_0xa2b4('0x1a')]);router[_0xa2b4('0x1b')](_0xa2b4('0xe'),auth[_0xa2b4('0xb')](),controller[_0xa2b4('0x1c')]);module[_0xa2b4('0x1d')]=router;
\ No newline at end of file
+var _0xbcc2=['Router','../../components/interaction/service','../../config/environment','./smsMessage.controller','get','index','/describe','isAuthenticated','describe','/:id','show','post','sms','smsmessage:create','/:id/status','status','put','/:id/accept','accept','reject','destroy','exports','multer','path','express'];(function(_0x13edeb,_0x3e3306){var _0x18a64e=function(_0x5112db){while(--_0x5112db){_0x13edeb['push'](_0x13edeb['shift']());}};_0x18a64e(++_0x3e3306);}(_0xbcc2,0x93));var _0x2bcc=function(_0xbcb1dd,_0x535bc6){_0xbcb1dd=_0xbcb1dd-0x0;var _0xcc3d07=_0xbcc2[_0xbcb1dd];return _0xcc3d07;};'use strict';var multer=require(_0x2bcc('0x0'));var util=require('util');var path=require(_0x2bcc('0x1'));var timeout=require('connect-timeout');var express=require(_0x2bcc('0x2'));var router=express[_0x2bcc('0x3')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0x2bcc('0x4'));var config=require(_0x2bcc('0x5'));var controller=require(_0x2bcc('0x6'));router[_0x2bcc('0x7')]('/',auth['isAuthenticated'](),controller[_0x2bcc('0x8')]);router[_0x2bcc('0x7')](_0x2bcc('0x9'),auth[_0x2bcc('0xa')](),controller[_0x2bcc('0xb')]);router['get'](_0x2bcc('0xc'),auth[_0x2bcc('0xa')](),controller[_0x2bcc('0xd')]);router[_0x2bcc('0xe')]('/',auth[_0x2bcc('0xa')](),interaction['tracked'](_0x2bcc('0xf'),_0x2bcc('0x10')),controller['create']);router['post'](_0x2bcc('0x11'),controller[_0x2bcc('0x12')]);router[_0x2bcc('0x13')]('/:id',auth[_0x2bcc('0xa')](),controller['update']);router[_0x2bcc('0x13')](_0x2bcc('0x14'),auth[_0x2bcc('0xa')](),controller[_0x2bcc('0x15')]);router['put']('/:id/reject',auth[_0x2bcc('0xa')](),controller[_0x2bcc('0x16')]);router['delete'](_0x2bcc('0xc'),auth[_0x2bcc('0xa')](),controller[_0x2bcc('0x17')]);module[_0x2bcc('0x18')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe636=['BOOLEAN','ENUM','out','STRING','TEXT','sequelize','exports','medium'];(function(_0x754f7f,_0x5a0753){var _0x20d21b=function(_0x36594e){while(--_0x36594e){_0x754f7f['push'](_0x754f7f['shift']());}};_0x20d21b(++_0x5a0753);}(_0xe636,0x16d));var _0x6e63=function(_0x174ef5,_0x256e8e){_0x174ef5=_0x174ef5-0x0;var _0x1cc379=_0xe636[_0x174ef5];return _0x1cc379;};'use strict';var Sequelize=require(_0x6e63('0x0'));module[_0x6e63('0x1')]={'body':{'type':Sequelize['TEXT'](_0x6e63('0x2')),'allowNull':![]},'read':{'type':Sequelize[_0x6e63('0x3')],'defaultValue':![]},'direction':{'type':Sequelize[_0x6e63('0x4')]('in',_0x6e63('0x5')),'defaultValue':_0x6e63('0x5'),'allowNull':![]},'messageId':{'type':Sequelize['STRING'](0xbe)},'phone':{'type':Sequelize['STRING']},'readAt':{'type':Sequelize['DATE']},'secret':{'type':Sequelize[_0x6e63('0x3')],'defaultValue':![]},'providerName':{'type':Sequelize[_0x6e63('0x6')]},'providerResponse':{'type':Sequelize[_0x6e63('0x7')]}};
\ No newline at end of file
+var _0x80ea=['medium','BOOLEAN','ENUM','out','STRING','DATE','sequelize','exports','TEXT'];(function(_0x7a1589,_0x58e8d2){var _0x570127=function(_0x4e588c){while(--_0x4e588c){_0x7a1589['push'](_0x7a1589['shift']());}};_0x570127(++_0x58e8d2);}(_0x80ea,0x15c));var _0xa80e=function(_0xdcbc08,_0x354c59){_0xdcbc08=_0xdcbc08-0x0;var _0x468da5=_0x80ea[_0xdcbc08];return _0x468da5;};'use strict';var Sequelize=require(_0xa80e('0x0'));module[_0xa80e('0x1')]={'body':{'type':Sequelize[_0xa80e('0x2')](_0xa80e('0x3')),'allowNull':![]},'read':{'type':Sequelize[_0xa80e('0x4')],'defaultValue':![]},'direction':{'type':Sequelize[_0xa80e('0x5')]('in',_0xa80e('0x6')),'defaultValue':_0xa80e('0x6'),'allowNull':![]},'messageId':{'type':Sequelize[_0xa80e('0x7')](0xbe)},'phone':{'type':Sequelize[_0xa80e('0x7')]},'readAt':{'type':Sequelize[_0xa80e('0x8')]},'secret':{'type':Sequelize[_0xa80e('0x4')],'defaultValue':![]},'providerName':{'type':Sequelize[_0xa80e('0x7')]},'providerResponse':{'type':Sequelize[_0xa80e('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x605a=['to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','./smsMessage.socket','register','jayson/promise','client','http','request','then','info','SmsMessage,\x20%s,\x20%s','debug','SmsMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','apply','reject','save','update','stack','name','send','index','map','SmsMessage','fieldName','key','model','query','keys','filters','attributes','intersection','fields','length','nolimit','order','sort','filter','where','type','VIRTUAL','options','include','rows','show','params','includeAll','find','create','body','describe','sms','read','readAt','format','YYYY-MM-DD\x20HH:mm:ss','UserId','agent','SmsInteractionId','interaction','get','[SMSMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','user','role','null','acceptMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','ContactId','sequelize','SELECT','User','fullname','email','internal','manual','interface','SIP/%s','motionChannel','channel','event','accept','EventManager','acceptmessage','sms-interactions','[SMSMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','RejectMessage','Sequelize','QueryTypes','contact','rejectmessage','SmsAccount','SmsAccountId','inspect','twilio','MessageSid','messageId','plivo','MessageUUID','indexOf','sent','delivered','Status','SmsAccount,\x20%s,\x20%s,\x20%s','plivio','infobip','results','groupName','DELIVERED','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox'];(function(_0xd95a4f,_0x5b2faf){var _0x913026=function(_0x4e9711){while(--_0x4e9711){_0xd95a4f['push'](_0xd95a4f['shift']());}};_0x913026(++_0x5b2faf);}(_0x605a,0x126));var _0xa605=function(_0x463f57,_0x39139c){_0x463f57=_0x463f57-0x0;var _0x531291=_0x605a[_0x463f57];return _0x531291;};'use strict';var emlformat=require(_0xa605('0x0'));var rimraf=require(_0xa605('0x1'));var zipdir=require(_0xa605('0x2'));var jsonpatch=require(_0xa605('0x3'));var rp=require(_0xa605('0x4'));var moment=require(_0xa605('0x5'));var BPromise=require(_0xa605('0x6'));var Mustache=require('mustache');var util=require(_0xa605('0x7'));var path=require(_0xa605('0x8'));var sox=require(_0xa605('0x9'));var csv=require(_0xa605('0xa'));var ejs=require(_0xa605('0xb'));var fs=require('fs');var fs_extra=require(_0xa605('0xc'));var _=require(_0xa605('0xd'));var squel=require(_0xa605('0xe'));var crypto=require('crypto');var jsforce=require(_0xa605('0xf'));var deskjs=require(_0xa605('0x10'));var toCsv=require(_0xa605('0xa'));var querystring=require(_0xa605('0x11'));var Papa=require(_0xa605('0x12'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0xa605('0x13'));var as=require(_0xa605('0x14'));var hardwareService=require(_0xa605('0x15'));var logger=require(_0xa605('0x16'))(_0xa605('0x17'));var utils=require(_0xa605('0x18'));var config=require(_0xa605('0x19'));var licenseUtil=require(_0xa605('0x1a'));var db=require(_0xa605('0x1b'))['db'];config[_0xa605('0x1c')]=_['defaults'](config['redis'],{'host':_0xa605('0x1d'),'port':0x18eb});var socket=require(_0xa605('0x1e'))(new Redis(config[_0xa605('0x1c')]));require(_0xa605('0x1f'))[_0xa605('0x20')](socket);var jayson=require(_0xa605('0x21'));var client=jayson[_0xa605('0x22')][_0xa605('0x23')]({'port':0x232c});var client9002=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x1103e6,_0x24a6a3,_0x471c80,_0x364d8a){return new BPromise(function(_0x22af74,_0x33adfb){var _0x244c59=_0x364d8a||client;return _0x244c59[_0xa605('0x24')](_0x1103e6,_0x471c80)[_0xa605('0x25')](function(_0x47dd15){logger[_0xa605('0x26')](_0xa605('0x27'),_0x24a6a3,'request\x20sent');logger[_0xa605('0x28')](_0xa605('0x29'),_0x24a6a3,'request\x20sent',JSON[_0xa605('0x2a')](_0x47dd15));if(_0x47dd15['error']){if(_0x47dd15[_0xa605('0x2b')][_0xa605('0x2c')]===0x1f4){logger['error']('SmsMessage,\x20%s,\x20%s',_0x24a6a3,_0x47dd15[_0xa605('0x2b')][_0xa605('0x2d')]);return _0x33adfb(_0x47dd15[_0xa605('0x2b')]['message']);}logger['error'](_0xa605('0x27'),_0x24a6a3,_0x47dd15['error'][_0xa605('0x2d')]);return _0x22af74(_0x47dd15[_0xa605('0x2b')][_0xa605('0x2d')]);}else{logger['info']('SmsMessage,\x20%s,\x20%s',_0x24a6a3,'request\x20sent');_0x22af74(_0x47dd15[_0xa605('0x2e')]['message']);}})[_0xa605('0x2f')](function(_0x55f5d7){logger[_0xa605('0x2b')]('SmsMessage,\x20%s,\x20%s',_0x24a6a3,_0x55f5d7);_0x33adfb(_0x55f5d7);});});}function respondWithStatusCode(_0x415a88,_0x30746e){_0x30746e=_0x30746e||0xcc;return function(_0x2362af){if(_0x2362af){return _0x415a88[_0xa605('0x30')](_0x30746e);}return _0x415a88[_0xa605('0x31')](_0x30746e)[_0xa605('0x32')]();};}function respondWithResult(_0x1a6718,_0x5be0df){_0x5be0df=_0x5be0df||0xc8;return function(_0x415c6a){if(_0x415c6a){return _0x1a6718[_0xa605('0x31')](_0x5be0df)[_0xa605('0x33')](_0x415c6a);}};}function respondWithFilteredResult(_0x3e0c84,_0xdb1ee4){return function(_0x379438){if(_0x379438){var _0x3a897f=typeof _0xdb1ee4[_0xa605('0x34')]==='undefined'&&typeof _0xdb1ee4['limit']===_0xa605('0x35');var _0x90192f=_0x379438[_0xa605('0x36')];var _0x23cd6f=_0x3a897f?0x0:_0xdb1ee4[_0xa605('0x34')];var _0x307956=_0x3a897f?_0x379438[_0xa605('0x36')]:_0xdb1ee4[_0xa605('0x34')]+_0xdb1ee4[_0xa605('0x37')];var _0x44c20d;if(_0x307956>=_0x90192f){_0x307956=_0x90192f;_0x44c20d=0xc8;}else{_0x44c20d=0xce;}_0x3e0c84[_0xa605('0x31')](_0x44c20d);return _0x3e0c84[_0xa605('0x38')](_0xa605('0x39'),_0x23cd6f+'-'+_0x307956+'/'+_0x90192f)[_0xa605('0x33')](_0x379438);}return null;};}function patchUpdates(_0x338261){return function(_0x2d5fb3){try{jsonpatch[_0xa605('0x3a')](_0x2d5fb3,_0x338261,!![]);}catch(_0x429ec7){return BPromise[_0xa605('0x3b')](_0x429ec7);}return _0x2d5fb3[_0xa605('0x3c')]();};}function saveUpdates(_0x432ad6,_0x3cb842){return function(_0x45c212){if(_0x45c212){return _0x45c212[_0xa605('0x3d')](_0x432ad6)[_0xa605('0x25')](function(_0x3cb5a4){return _0x3cb5a4;});}return null;};}function removeEntity(_0x1b6fe9,_0x31b35b){return function(_0x35d002){if(_0x35d002){return _0x35d002['destroy']()[_0xa605('0x25')](function(){_0x1b6fe9[_0xa605('0x31')](0xcc)[_0xa605('0x32')]();});}};}function handleEntityNotFound(_0x5313e7,_0x5bf482){return function(_0x354ded){if(!_0x354ded){_0x5313e7[_0xa605('0x30')](0x194);}return _0x354ded;};}function handleError(_0x307c1d,_0xebb5e5){_0xebb5e5=_0xebb5e5||0x1f4;return function(_0x3f41a6){logger[_0xa605('0x2b')](_0x3f41a6[_0xa605('0x3e')]);if(_0x3f41a6[_0xa605('0x3f')]){delete _0x3f41a6[_0xa605('0x3f')];}_0x307c1d['status'](_0xebb5e5)[_0xa605('0x40')](_0x3f41a6);};}exports[_0xa605('0x41')]=function(_0x25d9bb,_0x30efe0){var _0xc896a={},_0xe95662={},_0x2c7225={'count':0x0,'rows':[]};var _0x46fdfc=_[_0xa605('0x42')](db[_0xa605('0x43')]['rawAttributes'],function(_0x5d8681){return{'name':_0x5d8681[_0xa605('0x44')],'type':_0x5d8681['type'][_0xa605('0x45')]};});_0xe95662[_0xa605('0x46')]=_['map'](_0x46fdfc,'name');_0xe95662[_0xa605('0x47')]=_[_0xa605('0x48')](_0x25d9bb[_0xa605('0x47')]);_0xe95662[_0xa605('0x49')]=_['intersection'](_0xe95662[_0xa605('0x46')],_0xe95662[_0xa605('0x47')]);_0xc896a[_0xa605('0x4a')]=_[_0xa605('0x4b')](_0xe95662[_0xa605('0x46')],qs[_0xa605('0x4c')](_0x25d9bb[_0xa605('0x47')][_0xa605('0x4c')]));_0xc896a['attributes']=_0xc896a[_0xa605('0x4a')][_0xa605('0x4d')]?_0xc896a[_0xa605('0x4a')]:_0xe95662[_0xa605('0x46')];if(!_0x25d9bb[_0xa605('0x47')]['hasOwnProperty'](_0xa605('0x4e'))){_0xc896a['limit']=qs['limit'](_0x25d9bb[_0xa605('0x47')][_0xa605('0x37')]);_0xc896a[_0xa605('0x34')]=qs['offset'](_0x25d9bb['query'][_0xa605('0x34')]);}_0xc896a[_0xa605('0x4f')]=qs[_0xa605('0x50')](_0x25d9bb['query'][_0xa605('0x50')]);_0xc896a['where']=qs[_0xa605('0x49')](_['pick'](_0x25d9bb[_0xa605('0x47')],_0xe95662[_0xa605('0x49')]),_0x46fdfc);if(_0x25d9bb[_0xa605('0x47')][_0xa605('0x51')]){_0xc896a[_0xa605('0x52')]=_['merge'](_0xc896a[_0xa605('0x52')],{'$or':_['map'](_0x46fdfc,function(_0x118d41){if(_0x118d41[_0xa605('0x53')]!==_0xa605('0x54')){var _0x5c9be2={};_0x5c9be2[_0x118d41['name']]={'$like':'%'+_0x25d9bb['query']['filter']+'%'};return _0x5c9be2;}})});}_0xc896a=_['merge']({},_0xc896a,_0x25d9bb[_0xa605('0x55')]);var _0x5cafdf={'where':_0xc896a['where']};return db['SmsMessage'][_0xa605('0x36')](_0x5cafdf)[_0xa605('0x25')](function(_0x2ce9df){_0x2c7225['count']=_0x2ce9df;if(_0x25d9bb[_0xa605('0x47')]['includeAll']){_0xc896a[_0xa605('0x56')]=[{'all':!![]}];}return db['SmsMessage']['findAll'](_0xc896a);})[_0xa605('0x25')](function(_0x15862f){_0x2c7225[_0xa605('0x57')]=_0x15862f;return _0x2c7225;})[_0xa605('0x25')](respondWithFilteredResult(_0x30efe0,_0xc896a))[_0xa605('0x2f')](handleError(_0x30efe0,null));};exports[_0xa605('0x58')]=function(_0x49fe8d,_0x18864c){var _0x26b6f1={'raw':!![],'where':{'id':_0x49fe8d[_0xa605('0x59')]['id']}},_0x3bf0ee={};_0x3bf0ee[_0xa605('0x46')]=_[_0xa605('0x48')](db['SmsMessage']['rawAttributes']);_0x3bf0ee[_0xa605('0x47')]=_[_0xa605('0x48')](_0x49fe8d['query']);_0x3bf0ee[_0xa605('0x49')]=_[_0xa605('0x4b')](_0x3bf0ee['model'],_0x3bf0ee[_0xa605('0x47')]);_0x26b6f1[_0xa605('0x4a')]=_[_0xa605('0x4b')](_0x3bf0ee['model'],qs[_0xa605('0x4c')](_0x49fe8d[_0xa605('0x47')][_0xa605('0x4c')]));_0x26b6f1[_0xa605('0x4a')]=_0x26b6f1[_0xa605('0x4a')][_0xa605('0x4d')]?_0x26b6f1['attributes']:_0x3bf0ee['model'];if(_0x49fe8d[_0xa605('0x47')][_0xa605('0x5a')]){_0x26b6f1['include']=[{'all':!![]}];}_0x26b6f1=_['merge']({},_0x26b6f1,_0x49fe8d['options']);return db['SmsMessage'][_0xa605('0x5b')](_0x26b6f1)[_0xa605('0x25')](handleEntityNotFound(_0x18864c,null))[_0xa605('0x25')](respondWithResult(_0x18864c,null))[_0xa605('0x2f')](handleError(_0x18864c,null));};exports[_0xa605('0x5c')]=function(_0x49f2fa,_0x47e88c){return db[_0xa605('0x43')][_0xa605('0x5c')](_0x49f2fa[_0xa605('0x5d')],{})['then'](respondWithResult(_0x47e88c,0xc9))[_0xa605('0x2f')](handleError(_0x47e88c,null));};exports[_0xa605('0x3d')]=function(_0x29a695,_0x31f372){if(_0x29a695[_0xa605('0x5d')]['id']){delete _0x29a695[_0xa605('0x5d')]['id'];}return db[_0xa605('0x43')][_0xa605('0x5b')]({'where':{'id':_0x29a695[_0xa605('0x59')]['id']}})['then'](handleEntityNotFound(_0x31f372,null))[_0xa605('0x25')](saveUpdates(_0x29a695['body'],null))[_0xa605('0x25')](respondWithResult(_0x31f372,null))[_0xa605('0x2f')](handleError(_0x31f372,null));};exports['destroy']=function(_0x585b59,_0x15fd46){return db[_0xa605('0x43')][_0xa605('0x5b')]({'where':{'id':_0x585b59[_0xa605('0x59')]['id']}})['then'](handleEntityNotFound(_0x15fd46,null))['then'](removeEntity(_0x15fd46,null))[_0xa605('0x2f')](handleError(_0x15fd46,null));};exports[_0xa605('0x5e')]=function(_0x3d23b6,_0x3aa8cb){return db[_0xa605('0x43')]['describe']()['then'](respondWithResult(_0x3aa8cb,null))[_0xa605('0x2f')](handleError(_0x3aa8cb,null));};var interaction_log=require(_0xa605('0x16'))('sms-interactions');exports['accept']=function(_0x27504d,_0x2b2f3c,_0x23bf3a){var _0x181dc1={'agent':{},'channel':_0xa605('0x5f')};if(_0x27504d[_0xa605('0x5d')]['id']){delete _0x27504d[_0xa605('0x5d')]['id'];}_0x27504d['body'][_0xa605('0x60')]=!![];_0x27504d[_0xa605('0x5d')][_0xa605('0x61')]=moment()[_0xa605('0x62')](_0xa605('0x63'));_0x27504d[_0xa605('0x5d')][_0xa605('0x64')]=_0x27504d[_0xa605('0x5d')][_0xa605('0x64')]||_0x27504d['user']['id'];_0x181dc1[_0xa605('0x65')]['id']=_0x27504d[_0xa605('0x5d')][_0xa605('0x64')];return db[_0xa605('0x43')]['find']({'where':{'id':_0x27504d['params']['id'],'UserId':null}})[_0xa605('0x25')](handleEntityNotFound(_0x2b2f3c,null))['then'](saveUpdates(_0x27504d[_0xa605('0x5d')],null))[_0xa605('0x25')](function(_0x4a6ce8){if(_0x4a6ce8){_0x181dc1[_0xa605('0x2d')]=_0x4a6ce8['get']({'plain':!![]});return db['SmsInteraction'][_0xa605('0x5b')]({'where':{'id':_0x4a6ce8[_0xa605('0x66')]}});}return null;})[_0xa605('0x25')](handleEntityNotFound(_0x2b2f3c,null))[_0xa605('0x25')](function(_0x16370b){if(_0x16370b){return _0x16370b['update']({'UserId':_0x27504d[_0xa605('0x5d')][_0xa605('0x64')],'read1stAt':_['isNil'](_0x16370b['read1stAt'])?moment()[_0xa605('0x62')](_0xa605('0x63')):undefined});}return null;})[_0xa605('0x25')](function(_0x36b697){if(_0x36b697){_0x181dc1[_0xa605('0x67')]=_0x36b697[_0xa605('0x68')]({'plain':!![]});interaction_log[_0xa605('0x26')](_0xa605('0x69'),_0x27504d['user']['id'],_0x27504d[_0xa605('0x6a')]['name'],_0x27504d[_0xa605('0x6a')][_0xa605('0x6b')],_0x181dc1['interaction']['id'],_0x27504d[_0xa605('0x5d')]?JSON[_0xa605('0x2a')](_0x27504d[_0xa605('0x5d')]):_0xa605('0x6c'));return respondWithRpcPromise('AcceptMessage',_0xa605('0x6d'),_0x181dc1);}return null;})[_0xa605('0x25')](function(_0x34acb4){var _0x33c3ef=_0xa605('0x6e')+_0x34acb4[_0xa605('0x2d')][_0xa605('0x6f')];return db[_0xa605('0x70')][_0xa605('0x47')](_0x33c3ef,{'type':db['Sequelize']['QueryTypes'][_0xa605('0x71')],'raw':!![]})[_0xa605('0x25')](function(_0x28ce23){return _0x28ce23;});})[_0xa605('0x25')](function(_0x527b66){if(_0x527b66){_0x181dc1[_0xa605('0x2d')]['contact']=_0x527b66[0x0];if(!_0x27504d[_0xa605('0x5d')][_0xa605('0x64')])return;return db[_0xa605('0x72')]['find']({'where':{'id':_0x27504d[_0xa605('0x5d')]['UserId'],'role':'agent'},'attributes':['id','name',_0xa605('0x73'),_0xa605('0x74'),_0xa605('0x75')],'raw':!![]});}return null;})[_0xa605('0x25')](function(_0x499cdd){if(!_0x499cdd)return null;_0x181dc1[_0xa605('0x2d')][_0xa605('0x65')]=_0x499cdd;return _0x181dc1;})[_0xa605('0x25')](function(_0x4ba867){if(_0x4ba867){if(_0x27504d[_0xa605('0x5d')][_0xa605('0x76')]){_0x181dc1[_0xa605('0x2d')][_0xa605('0x77')]=util['format'](_0xa605('0x78'),_0x27504d[_0xa605('0x6a')][_0xa605('0x3f')]);_0x181dc1['message']['channel']=_0x181dc1['channel'];_0x181dc1[_0xa605('0x2d')][_0xa605('0x79')]=_0x181dc1[_0xa605('0x7a')];_0x181dc1[_0xa605('0x2d')][_0xa605('0x7b')]=_0xa605('0x7c');return respondWithRpcPromise(_0xa605('0x7d'),_0xa605('0x7d'),{'event':_0xa605('0x7e'),'message':_0x181dc1['message']},client9002)[_0xa605('0x25')](function(){return _0x181dc1;});}return _0x181dc1;}return null;})[_0xa605('0x25')](respondWithResult(_0x2b2f3c,null))[_0xa605('0x2f')](handleError(_0x2b2f3c,null));};var interaction_log=require('../../config/logger')(_0xa605('0x7f'));exports[_0xa605('0x3b')]=function(_0x4ff86b,_0xaab346,_0x28d4e5){var _0x1a862f={'agent':{},'channel':'sms'};if(_0x4ff86b[_0xa605('0x5d')]['id']){delete _0x4ff86b['body']['id'];}_0x4ff86b[_0xa605('0x5d')][_0xa605('0x64')]=_0x4ff86b[_0xa605('0x5d')][_0xa605('0x64')]||_0x4ff86b[_0xa605('0x6a')]['id'];_0x1a862f[_0xa605('0x65')]['id']=_0x4ff86b[_0xa605('0x5d')][_0xa605('0x64')];return db[_0xa605('0x43')][_0xa605('0x5b')]({'where':{'id':_0x4ff86b[_0xa605('0x59')]['id'],'UserId':null}})['then'](handleEntityNotFound(_0xaab346,null))[_0xa605('0x25')](function(_0x148ecd){if(_0x148ecd){_0x1a862f[_0xa605('0x2d')]=_0x148ecd['get']({'plain':!![]});return db['SmsInteraction'][_0xa605('0x5b')]({'where':{'id':_0x148ecd[_0xa605('0x66')]}});}return null;})[_0xa605('0x25')](handleEntityNotFound(_0xaab346,null))['then'](function(_0x21c8b5){if(_0x21c8b5){_0x1a862f['interaction']=_0x21c8b5[_0xa605('0x68')]({'plain':!![]});interaction_log['info'](_0xa605('0x80'),_0x4ff86b[_0xa605('0x6a')]['id'],_0x4ff86b[_0xa605('0x6a')][_0xa605('0x3f')],_0x4ff86b[_0xa605('0x6a')][_0xa605('0x6b')],_0x1a862f[_0xa605('0x67')]['id'],_0x4ff86b[_0xa605('0x5d')]?JSON[_0xa605('0x2a')](_0x4ff86b[_0xa605('0x5d')]):_0xa605('0x6c'));return respondWithRpcPromise(_0xa605('0x81'),'rejectMessage',_0x1a862f);}return null;})[_0xa605('0x25')](function(_0x5cb3b5){var _0x156b38=_0xa605('0x6e')+_0x5cb3b5[_0xa605('0x2d')][_0xa605('0x6f')];return db[_0xa605('0x70')][_0xa605('0x47')](_0x156b38,{'type':db[_0xa605('0x82')][_0xa605('0x83')]['SELECT'],'raw':!![]})[_0xa605('0x25')](function(_0x53f5c0){return _0x53f5c0;});})[_0xa605('0x25')](function(_0x1f77a1){if(_0x1f77a1){_0x1a862f['message'][_0xa605('0x84')]=_0x1f77a1[0x0];if(!_0x4ff86b[_0xa605('0x5d')][_0xa605('0x64')])return;return db[_0xa605('0x72')]['find']({'where':{'id':_0x4ff86b[_0xa605('0x5d')][_0xa605('0x64')],'role':_0xa605('0x65')},'attributes':['id',_0xa605('0x3f'),_0xa605('0x73'),_0xa605('0x74'),_0xa605('0x75')],'raw':!![]});}return null;})[_0xa605('0x25')](function(_0x26a780){if(!_0x26a780)return null;_0x1a862f['message'][_0xa605('0x65')]=_0x26a780;return _0x1a862f;})['then'](function(_0x4d3400){if(_0x4d3400){_0x4d3400[_0xa605('0x2d')][_0xa605('0x77')]=util[_0xa605('0x62')](_0xa605('0x78'),_0x4ff86b[_0xa605('0x6a')][_0xa605('0x3f')]);_0x4d3400[_0xa605('0x2d')][_0xa605('0x7a')]=_0x1a862f[_0xa605('0x7a')];_0x4d3400['message'][_0xa605('0x79')]=_0x1a862f[_0xa605('0x7a')];_0x4d3400[_0xa605('0x2d')][_0xa605('0x7b')]=_0xa605('0x3b');respondWithRpcPromise(_0xa605('0x7d'),_0xa605('0x7d'),{'event':_0xa605('0x85'),'message':_0x4d3400[_0xa605('0x2d')]},client9002);return _0x1a862f;}return null;})[_0xa605('0x25')](respondWithResult(_0xaab346,null))[_0xa605('0x2f')](handleError(_0xaab346,null));};exports[_0xa605('0x31')]=function(_0x1842b7,_0x4818a0,_0x34806c){if(_0x1842b7[_0xa605('0x5d')]['id']){delete _0x1842b7[_0xa605('0x5d')]['id'];}var _0x2162d7;return db[_0xa605('0x43')]['find']({'where':{'id':_0x1842b7[_0xa605('0x59')]['id']}})['then'](handleEntityNotFound(_0x4818a0,null))[_0xa605('0x25')](function(_0x503889){if(_0x503889){_0x2162d7=_0x503889;return db[_0xa605('0x86')][_0xa605('0x5b')]({'where':{'id':_0x503889[_0xa605('0x87')]}});}})[_0xa605('0x25')](handleEntityNotFound(_0x4818a0,null))[_0xa605('0x25')](function(_0x41e8b9){if(_0x41e8b9){logger['debug'](_0xa605('0x29'),_0xa605('0x31'),'received\x20delivery\x20report\x20from',_0x41e8b9['type'],util[_0xa605('0x88')](_0x1842b7[_0xa605('0x5d')],{'showHidden':![],'depth':null}));switch(_0x41e8b9['type']){case _0xa605('0x89'):if(_0x1842b7[_0xa605('0x5d')][_0xa605('0x8a')]&&_0x1842b7[_0xa605('0x5d')][_0xa605('0x8a')]===_0x2162d7[_0xa605('0x8b')]){return _0x2162d7['update']({'read':!![]});}else{logger[_0xa605('0x2b')]('SmsAccount,\x20%s,\x20%s,\x20%s',_0xa605('0x31'),_0xa605('0x89'),util[_0xa605('0x88')](_0x1842b7[_0xa605('0x5d')],{'showHidden':![],'depth':null}));}break;case _0xa605('0x8c'):if(_0x1842b7[_0xa605('0x5d')][_0xa605('0x8d')]&&_0x1842b7[_0xa605('0x5d')][_0xa605('0x8d')]===_0x2162d7[_0xa605('0x8b')]&&_[_0xa605('0x8e')]([_0xa605('0x8f'),_0xa605('0x90')],_0x1842b7[_0xa605('0x5d')][_0xa605('0x91')])>=0x0){return _0x2162d7[_0xa605('0x3d')]({'read':!![]});}else{logger[_0xa605('0x2b')](_0xa605('0x92'),_0xa605('0x31'),_0xa605('0x93'),util[_0xa605('0x88')](_0x1842b7[_0xa605('0x5d')],{'showHidden':![],'depth':null}));}break;case _0xa605('0x94'):var _0x90b2c7=_0x1842b7[_0xa605('0x5d')][_0xa605('0x95')][0x0];if(_0x90b2c7['status'][_0xa605('0x96')]===_0xa605('0x97')){return _0x2162d7[_0xa605('0x3d')]({'read':!![]});}else{logger[_0xa605('0x2b')]('SmsAccount,\x20%s,\x20%s,\x20%s','status',_0xa605('0x94'),util['inspect'](_0x1842b7[_0xa605('0x5d')],{'showHidden':![],'depth':null}));}break;}return _0x2162d7;}})['then'](respondWithResult(_0x4818a0,null))[_0xa605('0x2f')](handleError(_0x4818a0,null));};
\ No newline at end of file
+var _0x1135=['request-promise','moment','mustache','util','path','sox','to-csv','ejs','lodash','crypto','jsforce','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../mysqldb','defaults','localhost','socket.io-emitter','./smsMessage.socket','register','jayson/promise','client','http','request','then','info','request\x20sent','debug','SmsMessage,\x20%s,\x20%s,\x20%s','stringify','error','SmsMessage,\x20%s,\x20%s','message','catch','sendStatus','end','status','json','offset','limit','undefined','count','set','Content-Range','apply','update','destroy','name','send','index','map','SmsMessage','rawAttributes','fieldName','type','model','query','keys','filters','intersection','attributes','fields','length','nolimit','sort','where','pick','merge','VIRTUAL','filter','options','include','findAll','rows','show','includeAll','find','create','body','describe','sms-interactions','accept','sms','read','readAt','format','YYYY-MM-DD\x20HH:mm:ss','UserId','user','agent','params','get','SmsInteraction','SmsInteractionId','isNil','interaction','[SMSMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','null','AcceptMessage','acceptMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','ContactId','Sequelize','SELECT','contact','User','fullname','email','internal','manual','interface','SIP/%s','channel','EventManager','acceptmessage','reject','[SMSMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','RejectMessage','rejectMessage','sequelize','QueryTypes','rejectmessage','SmsAccountId','received\x20delivery\x20report\x20from','twilio','MessageSid','messageId','inspect','plivo','MessageUUID','indexOf','sent','delivered','Status','SmsAccount,\x20%s,\x20%s,\x20%s','plivio','results','groupName','DELIVERED','infobip','eml-format','rimraf','fast-json-patch'];(function(_0x47c5bf,_0x45977e){var _0x11b779=function(_0x1bd585){while(--_0x1bd585){_0x47c5bf['push'](_0x47c5bf['shift']());}};_0x11b779(++_0x45977e);}(_0x1135,0x93));var _0x5113=function(_0x2cdc44,_0x5c9b71){_0x2cdc44=_0x2cdc44-0x0;var _0x112c72=_0x1135[_0x2cdc44];return _0x112c72;};'use strict';var emlformat=require(_0x5113('0x0'));var rimraf=require(_0x5113('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x5113('0x2'));var rp=require(_0x5113('0x3'));var moment=require(_0x5113('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x5113('0x5'));var util=require(_0x5113('0x6'));var path=require(_0x5113('0x7'));var sox=require(_0x5113('0x8'));var csv=require(_0x5113('0x9'));var ejs=require(_0x5113('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x5113('0xb'));var squel=require('squel');var crypto=require(_0x5113('0xc'));var jsforce=require(_0x5113('0xd'));var deskjs=require('desk.js');var toCsv=require(_0x5113('0x9'));var querystring=require(_0x5113('0xe'));var Papa=require(_0x5113('0xf'));var Redis=require('ioredis');var authService=require(_0x5113('0x10'));var qs=require(_0x5113('0x11'));var as=require(_0x5113('0x12'));var hardwareService=require(_0x5113('0x13'));var logger=require(_0x5113('0x14'))(_0x5113('0x15'));var utils=require(_0x5113('0x16'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x5113('0x17'))['db'];config['redis']=_[_0x5113('0x18')](config['redis'],{'host':_0x5113('0x19'),'port':0x18eb});var socket=require(_0x5113('0x1a'))(new Redis(config['redis']));require(_0x5113('0x1b'))[_0x5113('0x1c')](socket);var jayson=require(_0x5113('0x1d'));var client=jayson[_0x5113('0x1e')][_0x5113('0x1f')]({'port':0x232c});var client9002=jayson[_0x5113('0x1e')][_0x5113('0x1f')]({'port':0x232a});function respondWithRpcPromise(_0x40eeb8,_0x57d4db,_0xfa80e3,_0x1bbd0d){return new BPromise(function(_0x33afee,_0x12fa31){var _0x3a701f=_0x1bbd0d||client;return _0x3a701f[_0x5113('0x20')](_0x40eeb8,_0xfa80e3)[_0x5113('0x21')](function(_0x560054){logger[_0x5113('0x22')]('SmsMessage,\x20%s,\x20%s',_0x57d4db,_0x5113('0x23'));logger[_0x5113('0x24')](_0x5113('0x25'),_0x57d4db,_0x5113('0x23'),JSON[_0x5113('0x26')](_0x560054));if(_0x560054[_0x5113('0x27')]){if(_0x560054[_0x5113('0x27')]['code']===0x1f4){logger[_0x5113('0x27')](_0x5113('0x28'),_0x57d4db,_0x560054[_0x5113('0x27')][_0x5113('0x29')]);return _0x12fa31(_0x560054[_0x5113('0x27')][_0x5113('0x29')]);}logger['error'](_0x5113('0x28'),_0x57d4db,_0x560054['error'][_0x5113('0x29')]);return _0x33afee(_0x560054[_0x5113('0x27')][_0x5113('0x29')]);}else{logger[_0x5113('0x22')]('SmsMessage,\x20%s,\x20%s',_0x57d4db,_0x5113('0x23'));_0x33afee(_0x560054['result']['message']);}})[_0x5113('0x2a')](function(_0xe17a12){logger['error'](_0x5113('0x28'),_0x57d4db,_0xe17a12);_0x12fa31(_0xe17a12);});});}function respondWithStatusCode(_0x2cac49,_0x41439f){_0x41439f=_0x41439f||0xcc;return function(_0x256dff){if(_0x256dff){return _0x2cac49[_0x5113('0x2b')](_0x41439f);}return _0x2cac49['status'](_0x41439f)[_0x5113('0x2c')]();};}function respondWithResult(_0x25ded7,_0x19e53a){_0x19e53a=_0x19e53a||0xc8;return function(_0x20dcd){if(_0x20dcd){return _0x25ded7[_0x5113('0x2d')](_0x19e53a)[_0x5113('0x2e')](_0x20dcd);}};}function respondWithFilteredResult(_0xdde6a3,_0x2e1f18){return function(_0x985956){if(_0x985956){var _0x15100e=typeof _0x2e1f18[_0x5113('0x2f')]==='undefined'&&typeof _0x2e1f18[_0x5113('0x30')]===_0x5113('0x31');var _0x1047fc=_0x985956[_0x5113('0x32')];var _0x51e1ea=_0x15100e?0x0:_0x2e1f18[_0x5113('0x2f')];var _0x42faa5=_0x15100e?_0x985956[_0x5113('0x32')]:_0x2e1f18[_0x5113('0x2f')]+_0x2e1f18['limit'];var _0x35198f;if(_0x42faa5>=_0x1047fc){_0x42faa5=_0x1047fc;_0x35198f=0xc8;}else{_0x35198f=0xce;}_0xdde6a3[_0x5113('0x2d')](_0x35198f);return _0xdde6a3[_0x5113('0x33')](_0x5113('0x34'),_0x51e1ea+'-'+_0x42faa5+'/'+_0x1047fc)[_0x5113('0x2e')](_0x985956);}return null;};}function patchUpdates(_0x59fae2){return function(_0x1a9ff6){try{jsonpatch[_0x5113('0x35')](_0x1a9ff6,_0x59fae2,!![]);}catch(_0x37ce64){return BPromise['reject'](_0x37ce64);}return _0x1a9ff6['save']();};}function saveUpdates(_0x4968c3,_0x2a462d){return function(_0x41e8dd){if(_0x41e8dd){return _0x41e8dd[_0x5113('0x36')](_0x4968c3)['then'](function(_0x2eedc6){return _0x2eedc6;});}return null;};}function removeEntity(_0x486c19,_0x577757){return function(_0x2b1919){if(_0x2b1919){return _0x2b1919[_0x5113('0x37')]()[_0x5113('0x21')](function(){_0x486c19[_0x5113('0x2d')](0xcc)[_0x5113('0x2c')]();});}};}function handleEntityNotFound(_0x343ef8,_0x2c015b){return function(_0x4031dd){if(!_0x4031dd){_0x343ef8[_0x5113('0x2b')](0x194);}return _0x4031dd;};}function handleError(_0xc6c7e0,_0x577d84){_0x577d84=_0x577d84||0x1f4;return function(_0x2cb211){logger[_0x5113('0x27')](_0x2cb211['stack']);if(_0x2cb211[_0x5113('0x38')]){delete _0x2cb211[_0x5113('0x38')];}_0xc6c7e0[_0x5113('0x2d')](_0x577d84)[_0x5113('0x39')](_0x2cb211);};}exports[_0x5113('0x3a')]=function(_0x17842f,_0x5ac407){var _0x492c65={},_0x437b32={},_0x1a26b9={'count':0x0,'rows':[]};var _0x1516e2=_[_0x5113('0x3b')](db[_0x5113('0x3c')][_0x5113('0x3d')],function(_0x4f1b6a){return{'name':_0x4f1b6a[_0x5113('0x3e')],'type':_0x4f1b6a[_0x5113('0x3f')]['key']};});_0x437b32[_0x5113('0x40')]=_['map'](_0x1516e2,_0x5113('0x38'));_0x437b32[_0x5113('0x41')]=_[_0x5113('0x42')](_0x17842f[_0x5113('0x41')]);_0x437b32[_0x5113('0x43')]=_[_0x5113('0x44')](_0x437b32['model'],_0x437b32[_0x5113('0x41')]);_0x492c65[_0x5113('0x45')]=_['intersection'](_0x437b32[_0x5113('0x40')],qs[_0x5113('0x46')](_0x17842f[_0x5113('0x41')]['fields']));_0x492c65[_0x5113('0x45')]=_0x492c65[_0x5113('0x45')][_0x5113('0x47')]?_0x492c65[_0x5113('0x45')]:_0x437b32['model'];if(!_0x17842f[_0x5113('0x41')]['hasOwnProperty'](_0x5113('0x48'))){_0x492c65['limit']=qs[_0x5113('0x30')](_0x17842f[_0x5113('0x41')][_0x5113('0x30')]);_0x492c65[_0x5113('0x2f')]=qs[_0x5113('0x2f')](_0x17842f['query']['offset']);}_0x492c65['order']=qs[_0x5113('0x49')](_0x17842f[_0x5113('0x41')][_0x5113('0x49')]);_0x492c65[_0x5113('0x4a')]=qs['filters'](_[_0x5113('0x4b')](_0x17842f[_0x5113('0x41')],_0x437b32[_0x5113('0x43')]),_0x1516e2);if(_0x17842f[_0x5113('0x41')]['filter']){_0x492c65[_0x5113('0x4a')]=_[_0x5113('0x4c')](_0x492c65[_0x5113('0x4a')],{'$or':_['map'](_0x1516e2,function(_0x392955){if(_0x392955[_0x5113('0x3f')]!==_0x5113('0x4d')){var _0x3c5131={};_0x3c5131[_0x392955[_0x5113('0x38')]]={'$like':'%'+_0x17842f[_0x5113('0x41')][_0x5113('0x4e')]+'%'};return _0x3c5131;}})});}_0x492c65=_[_0x5113('0x4c')]({},_0x492c65,_0x17842f[_0x5113('0x4f')]);var _0x1daab7={'where':_0x492c65['where']};return db[_0x5113('0x3c')][_0x5113('0x32')](_0x1daab7)[_0x5113('0x21')](function(_0x2c1e9e){_0x1a26b9[_0x5113('0x32')]=_0x2c1e9e;if(_0x17842f['query']['includeAll']){_0x492c65[_0x5113('0x50')]=[{'all':!![]}];}return db['SmsMessage'][_0x5113('0x51')](_0x492c65);})[_0x5113('0x21')](function(_0x17620e){_0x1a26b9[_0x5113('0x52')]=_0x17620e;return _0x1a26b9;})[_0x5113('0x21')](respondWithFilteredResult(_0x5ac407,_0x492c65))[_0x5113('0x2a')](handleError(_0x5ac407,null));};exports[_0x5113('0x53')]=function(_0xe3c676,_0x5cd36e){var _0x1ef681={'raw':!![],'where':{'id':_0xe3c676['params']['id']}},_0x5363ec={};_0x5363ec['model']=_[_0x5113('0x42')](db[_0x5113('0x3c')][_0x5113('0x3d')]);_0x5363ec['query']=_['keys'](_0xe3c676[_0x5113('0x41')]);_0x5363ec[_0x5113('0x43')]=_[_0x5113('0x44')](_0x5363ec[_0x5113('0x40')],_0x5363ec[_0x5113('0x41')]);_0x1ef681[_0x5113('0x45')]=_[_0x5113('0x44')](_0x5363ec[_0x5113('0x40')],qs['fields'](_0xe3c676[_0x5113('0x41')][_0x5113('0x46')]));_0x1ef681[_0x5113('0x45')]=_0x1ef681[_0x5113('0x45')]['length']?_0x1ef681[_0x5113('0x45')]:_0x5363ec[_0x5113('0x40')];if(_0xe3c676[_0x5113('0x41')][_0x5113('0x54')]){_0x1ef681[_0x5113('0x50')]=[{'all':!![]}];}_0x1ef681=_['merge']({},_0x1ef681,_0xe3c676[_0x5113('0x4f')]);return db['SmsMessage'][_0x5113('0x55')](_0x1ef681)['then'](handleEntityNotFound(_0x5cd36e,null))[_0x5113('0x21')](respondWithResult(_0x5cd36e,null))[_0x5113('0x2a')](handleError(_0x5cd36e,null));};exports['create']=function(_0x18aab0,_0x3ca132){return db['SmsMessage'][_0x5113('0x56')](_0x18aab0[_0x5113('0x57')],{})[_0x5113('0x21')](respondWithResult(_0x3ca132,0xc9))[_0x5113('0x2a')](handleError(_0x3ca132,null));};exports['update']=function(_0x326baa,_0x1c29e3){if(_0x326baa[_0x5113('0x57')]['id']){delete _0x326baa[_0x5113('0x57')]['id'];}return db[_0x5113('0x3c')][_0x5113('0x55')]({'where':{'id':_0x326baa['params']['id']}})['then'](handleEntityNotFound(_0x1c29e3,null))[_0x5113('0x21')](saveUpdates(_0x326baa[_0x5113('0x57')],null))[_0x5113('0x21')](respondWithResult(_0x1c29e3,null))[_0x5113('0x2a')](handleError(_0x1c29e3,null));};exports['destroy']=function(_0x4039b7,_0x531cad){return db[_0x5113('0x3c')][_0x5113('0x55')]({'where':{'id':_0x4039b7['params']['id']}})[_0x5113('0x21')](handleEntityNotFound(_0x531cad,null))['then'](removeEntity(_0x531cad,null))[_0x5113('0x2a')](handleError(_0x531cad,null));};exports[_0x5113('0x58')]=function(_0x1055ac,_0x273f29){return db[_0x5113('0x3c')][_0x5113('0x58')]()[_0x5113('0x21')](respondWithResult(_0x273f29,null))[_0x5113('0x2a')](handleError(_0x273f29,null));};var interaction_log=require('../../config/logger')(_0x5113('0x59'));exports[_0x5113('0x5a')]=function(_0x2627b5,_0x362f9a,_0x57c416){var _0x5bbbbc={'agent':{},'channel':_0x5113('0x5b')};if(_0x2627b5[_0x5113('0x57')]['id']){delete _0x2627b5['body']['id'];}_0x2627b5['body'][_0x5113('0x5c')]=!![];_0x2627b5['body'][_0x5113('0x5d')]=moment()[_0x5113('0x5e')](_0x5113('0x5f'));_0x2627b5[_0x5113('0x57')][_0x5113('0x60')]=_0x2627b5['body']['UserId']||_0x2627b5[_0x5113('0x61')]['id'];_0x5bbbbc[_0x5113('0x62')]['id']=_0x2627b5[_0x5113('0x57')][_0x5113('0x60')];return db[_0x5113('0x3c')]['find']({'where':{'id':_0x2627b5[_0x5113('0x63')]['id'],'UserId':null}})[_0x5113('0x21')](handleEntityNotFound(_0x362f9a,null))[_0x5113('0x21')](saveUpdates(_0x2627b5['body'],null))['then'](function(_0x38b46c){if(_0x38b46c){_0x5bbbbc[_0x5113('0x29')]=_0x38b46c[_0x5113('0x64')]({'plain':!![]});return db[_0x5113('0x65')]['find']({'where':{'id':_0x38b46c[_0x5113('0x66')]}});}return null;})['then'](handleEntityNotFound(_0x362f9a,null))[_0x5113('0x21')](function(_0x20fe88){if(_0x20fe88){return _0x20fe88[_0x5113('0x36')]({'UserId':_0x2627b5['body'][_0x5113('0x60')],'read1stAt':_[_0x5113('0x67')](_0x20fe88['read1stAt'])?moment()[_0x5113('0x5e')](_0x5113('0x5f')):undefined});}return null;})[_0x5113('0x21')](function(_0x4a87ad){if(_0x4a87ad){_0x5bbbbc[_0x5113('0x68')]=_0x4a87ad[_0x5113('0x64')]({'plain':!![]});interaction_log[_0x5113('0x22')](_0x5113('0x69'),_0x2627b5[_0x5113('0x61')]['id'],_0x2627b5[_0x5113('0x61')][_0x5113('0x38')],_0x2627b5[_0x5113('0x61')]['role'],_0x5bbbbc[_0x5113('0x68')]['id'],_0x2627b5[_0x5113('0x57')]?JSON[_0x5113('0x26')](_0x2627b5['body']):_0x5113('0x6a'));return respondWithRpcPromise(_0x5113('0x6b'),_0x5113('0x6c'),_0x5bbbbc);}return null;})[_0x5113('0x21')](function(_0x2626ff){var _0x48e926=_0x5113('0x6d')+_0x2626ff[_0x5113('0x29')][_0x5113('0x6e')];return db['sequelize'][_0x5113('0x41')](_0x48e926,{'type':db[_0x5113('0x6f')]['QueryTypes'][_0x5113('0x70')],'raw':!![]})[_0x5113('0x21')](function(_0x45fed8){return _0x45fed8;});})[_0x5113('0x21')](function(_0x521676){if(_0x521676){_0x5bbbbc[_0x5113('0x29')][_0x5113('0x71')]=_0x521676[0x0];if(!_0x2627b5['body'][_0x5113('0x60')])return;return db[_0x5113('0x72')][_0x5113('0x55')]({'where':{'id':_0x2627b5[_0x5113('0x57')]['UserId'],'role':'agent'},'attributes':['id',_0x5113('0x38'),_0x5113('0x73'),_0x5113('0x74'),_0x5113('0x75')],'raw':!![]});}return null;})[_0x5113('0x21')](function(_0x516db4){if(!_0x516db4)return null;_0x5bbbbc[_0x5113('0x29')][_0x5113('0x62')]=_0x516db4;return _0x5bbbbc;})['then'](function(_0x1fab2f){if(_0x1fab2f){if(_0x2627b5[_0x5113('0x57')][_0x5113('0x76')]){_0x5bbbbc[_0x5113('0x29')][_0x5113('0x77')]=util[_0x5113('0x5e')](_0x5113('0x78'),_0x2627b5[_0x5113('0x61')]['name']);_0x5bbbbc[_0x5113('0x29')][_0x5113('0x79')]=_0x5bbbbc['channel'];_0x5bbbbc[_0x5113('0x29')]['event']=_0x5113('0x5a');return respondWithRpcPromise(_0x5113('0x7a'),'EventManager',{'event':_0x5113('0x7b'),'message':_0x5bbbbc[_0x5113('0x29')]},client9002)[_0x5113('0x21')](function(){return _0x5bbbbc;});}return _0x5bbbbc;}return null;})[_0x5113('0x21')](respondWithResult(_0x362f9a,null))[_0x5113('0x2a')](handleError(_0x362f9a,null));};var interaction_log=require(_0x5113('0x14'))(_0x5113('0x59'));exports[_0x5113('0x7c')]=function(_0x2469cc,_0x2df7c4,_0x56bcb1){var _0x1bd697={'agent':{},'channel':'sms'};if(_0x2469cc[_0x5113('0x57')]['id']){delete _0x2469cc[_0x5113('0x57')]['id'];}_0x2469cc['body'][_0x5113('0x60')]=_0x2469cc[_0x5113('0x57')][_0x5113('0x60')]||_0x2469cc['user']['id'];_0x1bd697[_0x5113('0x62')]['id']=_0x2469cc['body'][_0x5113('0x60')];return db[_0x5113('0x3c')][_0x5113('0x55')]({'where':{'id':_0x2469cc[_0x5113('0x63')]['id'],'UserId':null}})['then'](handleEntityNotFound(_0x2df7c4,null))[_0x5113('0x21')](function(_0x3f0a81){if(_0x3f0a81){_0x1bd697[_0x5113('0x29')]=_0x3f0a81['get']({'plain':!![]});return db[_0x5113('0x65')][_0x5113('0x55')]({'where':{'id':_0x3f0a81[_0x5113('0x66')]}});}return null;})[_0x5113('0x21')](handleEntityNotFound(_0x2df7c4,null))[_0x5113('0x21')](function(_0xce2eb7){if(_0xce2eb7){_0x1bd697[_0x5113('0x68')]=_0xce2eb7[_0x5113('0x64')]({'plain':!![]});interaction_log[_0x5113('0x22')](_0x5113('0x7d'),_0x2469cc[_0x5113('0x61')]['id'],_0x2469cc[_0x5113('0x61')][_0x5113('0x38')],_0x2469cc[_0x5113('0x61')][_0x5113('0x7e')],_0x1bd697[_0x5113('0x68')]['id'],_0x2469cc[_0x5113('0x57')]?JSON[_0x5113('0x26')](_0x2469cc['body']):_0x5113('0x6a'));return respondWithRpcPromise(_0x5113('0x7f'),_0x5113('0x80'),_0x1bd697);}return null;})[_0x5113('0x21')](function(_0x1b8a15){var _0x48ae1e=_0x5113('0x6d')+_0x1b8a15['message'][_0x5113('0x6e')];return db[_0x5113('0x81')][_0x5113('0x41')](_0x48ae1e,{'type':db[_0x5113('0x6f')][_0x5113('0x82')][_0x5113('0x70')],'raw':!![]})[_0x5113('0x21')](function(_0x47258e){return _0x47258e;});})[_0x5113('0x21')](function(_0x69b7de){if(_0x69b7de){_0x1bd697['message'][_0x5113('0x71')]=_0x69b7de[0x0];if(!_0x2469cc[_0x5113('0x57')][_0x5113('0x60')])return;return db[_0x5113('0x72')][_0x5113('0x55')]({'where':{'id':_0x2469cc['body']['UserId'],'role':_0x5113('0x62')},'attributes':['id',_0x5113('0x38'),_0x5113('0x73'),'email',_0x5113('0x75')],'raw':!![]});}return null;})[_0x5113('0x21')](function(_0x19e3e2){if(!_0x19e3e2)return null;_0x1bd697[_0x5113('0x29')]['agent']=_0x19e3e2;return _0x1bd697;})[_0x5113('0x21')](function(_0x3beeb5){if(_0x3beeb5){_0x3beeb5['message']['interface']=util[_0x5113('0x5e')]('SIP/%s',_0x2469cc[_0x5113('0x61')][_0x5113('0x38')]);_0x3beeb5[_0x5113('0x29')][_0x5113('0x79')]=_0x1bd697[_0x5113('0x79')];_0x3beeb5['message']['event']=_0x5113('0x7c');respondWithRpcPromise('EventManager',_0x5113('0x7a'),{'event':_0x5113('0x83'),'message':_0x3beeb5['message']},client9002);return _0x1bd697;}return null;})[_0x5113('0x21')](respondWithResult(_0x2df7c4,null))['catch'](handleError(_0x2df7c4,null));};exports['status']=function(_0x463402,_0x228e75,_0x301d63){if(_0x463402['body']['id']){delete _0x463402[_0x5113('0x57')]['id'];}var _0x2e693b;return db[_0x5113('0x3c')]['find']({'where':{'id':_0x463402['params']['id']}})['then'](handleEntityNotFound(_0x228e75,null))[_0x5113('0x21')](function(_0xd4974){if(_0xd4974){_0x2e693b=_0xd4974;return db['SmsAccount'][_0x5113('0x55')]({'where':{'id':_0xd4974[_0x5113('0x84')]}});}})[_0x5113('0x21')](handleEntityNotFound(_0x228e75,null))[_0x5113('0x21')](function(_0x1db11a){if(_0x1db11a){logger[_0x5113('0x24')](_0x5113('0x25'),_0x5113('0x2d'),_0x5113('0x85'),_0x1db11a['type'],util['inspect'](_0x463402[_0x5113('0x57')],{'showHidden':![],'depth':null}));switch(_0x1db11a[_0x5113('0x3f')]){case _0x5113('0x86'):if(_0x463402[_0x5113('0x57')][_0x5113('0x87')]&&_0x463402['body']['MessageSid']===_0x2e693b[_0x5113('0x88')]){return _0x2e693b[_0x5113('0x36')]({'read':!![]});}else{logger[_0x5113('0x27')]('SmsAccount,\x20%s,\x20%s,\x20%s',_0x5113('0x2d'),_0x5113('0x86'),util[_0x5113('0x89')](_0x463402[_0x5113('0x57')],{'showHidden':![],'depth':null}));}break;case _0x5113('0x8a'):if(_0x463402['body'][_0x5113('0x8b')]&&_0x463402[_0x5113('0x57')][_0x5113('0x8b')]===_0x2e693b[_0x5113('0x88')]&&_[_0x5113('0x8c')]([_0x5113('0x8d'),_0x5113('0x8e')],_0x463402[_0x5113('0x57')][_0x5113('0x8f')])>=0x0){return _0x2e693b[_0x5113('0x36')]({'read':!![]});}else{logger[_0x5113('0x27')](_0x5113('0x90'),'status',_0x5113('0x91'),util['inspect'](_0x463402[_0x5113('0x57')],{'showHidden':![],'depth':null}));}break;case'infobip':var _0x44972b=_0x463402[_0x5113('0x57')][_0x5113('0x92')][0x0];if(_0x44972b[_0x5113('0x2d')][_0x5113('0x93')]===_0x5113('0x94')){return _0x2e693b['update']({'read':!![]});}else{logger[_0x5113('0x27')](_0x5113('0x90'),_0x5113('0x2d'),_0x5113('0x95'),util[_0x5113('0x89')](_0x463402['body'],{'showHidden':![],'depth':null}));}break;}return _0x2e693b;}})['then'](respondWithResult(_0x228e75,null))[_0x5113('0x2a')](handleError(_0x228e75,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe19c=['exports','events','../../mysqldb','SmsMessage','setMaxListeners','save','update','emit','hasOwnProperty'];(function(_0x446fbc,_0x239a91){var _0x3e5d6f=function(_0x1e6e7b){while(--_0x1e6e7b){_0x446fbc['push'](_0x446fbc['shift']());}};_0x3e5d6f(++_0x239a91);}(_0xe19c,0x6d));var _0xce19=function(_0x17a28b,_0x5d1465){_0x17a28b=_0x17a28b-0x0;var _0x9cbb5a=_0xe19c[_0x17a28b];return _0x9cbb5a;};'use strict';var EventEmitter=require(_0xce19('0x0'));var SmsMessage=require(_0xce19('0x1'))['db'][_0xce19('0x2')];var SmsMessageEvents=new EventEmitter();SmsMessageEvents[_0xce19('0x3')](0x0);var events={'afterCreate':_0xce19('0x4'),'afterUpdate':_0xce19('0x5'),'afterDestroy':'remove'};function emitEvent(_0x2ab03f){return function(_0x486b11,_0xb0286b,_0x5e8c25){SmsMessageEvents['emit'](_0x2ab03f+':'+_0x486b11['id'],_0x486b11);SmsMessageEvents[_0xce19('0x6')](_0x2ab03f,_0x486b11);_0x5e8c25(null);};}for(var e in events){if(events[_0xce19('0x7')](e)){var event=events[e];SmsMessage['hook'](e,emitEvent(event));}}module[_0xce19('0x8')]=SmsMessageEvents;
\ No newline at end of file
+var _0x5b7b=['emit','hasOwnProperty','hook','exports','events','../../mysqldb','setMaxListeners','save','update'];(function(_0x41c4c4,_0x5ee3a1){var _0x17e891=function(_0x5acaec){while(--_0x5acaec){_0x41c4c4['push'](_0x41c4c4['shift']());}};_0x17e891(++_0x5ee3a1);}(_0x5b7b,0x112));var _0xb5b7=function(_0x5a7dd3,_0x26b7cf){_0x5a7dd3=_0x5a7dd3-0x0;var _0x2f4d07=_0x5b7b[_0x5a7dd3];return _0x2f4d07;};'use strict';var EventEmitter=require(_0xb5b7('0x0'));var SmsMessage=require(_0xb5b7('0x1'))['db']['SmsMessage'];var SmsMessageEvents=new EventEmitter();SmsMessageEvents[_0xb5b7('0x2')](0x0);var events={'afterCreate':_0xb5b7('0x3'),'afterUpdate':_0xb5b7('0x4'),'afterDestroy':'remove'};function emitEvent(_0x4a3ddc){return function(_0x2e1738,_0x41e777,_0x36986b){SmsMessageEvents[_0xb5b7('0x5')](_0x4a3ddc+':'+_0x2e1738['id'],_0x2e1738);SmsMessageEvents[_0xb5b7('0x5')](_0x4a3ddc,_0x2e1738);_0x36986b(null);};}for(var e in events){if(events[_0xb5b7('0x6')](e)){var event=events[e];SmsMessage[_0xb5b7('0x7')](e,emitEvent(event));}}module[_0xb5b7('0x8')]=SmsMessageEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2746=['password','smsMethod','sender','username','&password=','GET','sms','POST','user_key','session_key','total_sent','internal_order_id','deliveryReport','read','SmsMessage,\x20%s,\x20%s,\x20%s','Missing\x20parameters:\x20username,\x20password','connectel','senderString','requestid','Missing\x20parameters:\x20authToken','format','%s:%s','https://rest.clicksend.com/v3/sms/send','Basic\x20%s','toString','base64','data','head','message_id','clickSend','plivo','authId','message_uuid','baseUrl','/auth/1/session','application/json','IBSSO\x20','infobip','Missing\x20parameters:\x20base_url','csc','crypto','apiKey','login','timestamp','length','md5','/external/get/send.php?','keys','id_sms','Missing\x20parameters:\x20apiKey','clickatell','UTF-8','apiMessageId','https://messaging.bandwidth.com/api/v2/users/','accountId','/messages','applicationId','bandwidth','https://api.intelepeer.com/_rest/v4/app/sms/send','Bearer\x20','code','message','https://api.intelepeer.com/_rest/v4/app/sms/mdr','refid','status','intelepeer','Token\x20not\x20received','finally','utf8mb4','utf8mb4_unicode_ci','../../config/logger','api','moment','bluebird','request-promise','path','./smsMessage.attributes','exports','define','SmsMessage','sms_messages','messageId','body','models','get','direction','toLowerCase','secret','UserId','SmsInteraction','findOne','then','update','createdAt','catch','error','out','SmsAccount','find','twilio','accountSid','authToken','messages','create','phone','remote','/api/sms/messages/','/status?token=','token','sid','afterCreate','inspect','skebby','https://api.skebby.it/API/v1.0/REST/'];(function(_0x40fe9b,_0x32c044){var _0x4847ad=function(_0x27c0dc){while(--_0x27c0dc){_0x40fe9b['push'](_0x40fe9b['shift']());}};_0x4847ad(++_0x32c044);}(_0x2746,0x19c));var _0x6274=function(_0xf3436f,_0x2c70c1){_0xf3436f=_0xf3436f-0x0;var _0x333638=_0x2746[_0xf3436f];return _0x333638;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x6274('0x0'))(_0x6274('0x1'));var moment=require(_0x6274('0x2'));var BPromise=require(_0x6274('0x3'));var rp=require(_0x6274('0x4'));var fs=require('fs');var path=require(_0x6274('0x5'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0x6274('0x6'));module[_0x6274('0x7')]=function(_0x1978ff,_0x534aee){return _0x1978ff[_0x6274('0x8')](_0x6274('0x9'),attributes,{'tableName':_0x6274('0xa'),'paranoid':![],'indexes':[{'name':_0x6274('0xb'),'fields':[_0x6274('0xb')]},{'name':'fti_sms_messages','fields':[_0x6274('0xc')],'type':'FULLTEXT'}],'timestamps':!![],'hooks':{'afterCreate':function(_0x218189,_0x11b702,_0x226681){var _0x371a51=_0x1978ff[_0x6274('0xd')];var _0x1eef9a=_0x218189[_0x6274('0xe')]({'plain':!![]});if(_0x1eef9a[_0x6274('0xf')][_0x6274('0x10')]()==='in'||_0x1eef9a['direction']['toLowerCase']()==='out'&&!_0x1eef9a[_0x6274('0x11')]&&!_['isNil'](_0x1eef9a[_0x6274('0x12')])){_0x371a51[_0x6274('0x13')][_0x6274('0x14')]({'where':{'id':_0x1eef9a['SmsInteractionId']}})[_0x6274('0x15')](function(_0x488b60){if(_0x488b60){_0x488b60[_0x6274('0x16')]({'lastMsgAt':_0x1eef9a[_0x6274('0x17')],'lastMsgDirection':_0x1eef9a['direction']['toLowerCase']()});}})[_0x6274('0x18')](function(_0x1d0dc4){console[_0x6274('0x19')](_0x1d0dc4);});}if(_0x1eef9a[_0x6274('0xf')]===_0x6274('0x1a')&&!_0x1eef9a['secret']){var _0x3219d1;_0x371a51[_0x6274('0x1b')][_0x6274('0x1c')]({'where':{'id':_0x1eef9a['SmsAccountId']},'raw':!![]})['then'](function(_0x43593c){_0x3219d1=_0x43593c;if(_0x3219d1&&_0x3219d1['type']){switch(_0x3219d1['type']){case _0x6274('0x1d'):var _0x4e7442=require(_0x6274('0x1d'));if(_0x3219d1[_0x6274('0x1e')]&&_0x3219d1['authToken']&&_0x3219d1['phone']){var _0x3e0248=new _0x4e7442(_0x3219d1[_0x6274('0x1e')],_0x3219d1[_0x6274('0x1f')]);_0x3e0248[_0x6274('0x20')][_0x6274('0x21')]({'body':_0x1eef9a[_0x6274('0xc')],'to':_0x1eef9a[_0x6274('0x22')],'from':_0x3219d1[_0x6274('0x22')],'statusCallback':_0x3219d1[_0x6274('0x23')]+_0x6274('0x24')+_0x1eef9a['id']+_0x6274('0x25')+_0x3219d1[_0x6274('0x26')]})[_0x6274('0x15')](function(_0xa0c8bd){if(_0xa0c8bd[_0x6274('0x27')]){return _0x218189[_0x6274('0x16')]({'messageId':_0xa0c8bd[_0x6274('0x27')]});}})[_0x6274('0x18')](function(_0x5228a1){logger[_0x6274('0x19')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0x6274('0x28'),'twilio',util[_0x6274('0x29')](_0x5228a1,{'showHidden':![],'depth':null}));});}else{logger[_0x6274('0x19')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0x6274('0x28'),'twilio','Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken');}break;case _0x6274('0x2a'):var _0x375641=_0x6274('0x2b');if(_0x3219d1['username']&&_0x3219d1[_0x6274('0x2c')]){var _0x49df2e={'recipient':[_0x1eef9a['phone']],'message':_0x1eef9a['body'],'message_type':_0x3219d1[_0x6274('0x2d')]};if(_0x3219d1[_0x6274('0x2d')]&&_0x3219d1[_0x6274('0x2d')]!=='SI'){_0x49df2e[_0x6274('0x2e')]=_0x3219d1[_0x6274('0x22')];}var _0x868ff9={'url':_0x375641+'login?username='+_0x3219d1[_0x6274('0x2f')]+_0x6274('0x30')+_0x3219d1[_0x6274('0x2c')],'method':_0x6274('0x31')};rp(_0x868ff9)[_0x6274('0x15')](function(_0x232b1f){var _0x3211d0=_0x232b1f['split'](';');var _0x4cd1a7={'user_key':_0x3211d0[0x0],'session_key':_0x3211d0[0x1]};_0x868ff9={'url':_0x375641+_0x6274('0x32'),'method':_0x6274('0x33'),'headers':{'user_key':_0x4cd1a7[_0x6274('0x34')],'Session_key':_0x4cd1a7[_0x6274('0x35')]},'json':!![],'body':_0x49df2e};return rp(_0x868ff9);})[_0x6274('0x15')](function(_0x2a5811){if(_0x2a5811[_0x6274('0x36')]>=0x1){var _0x3c2365={'messageId':_0x2a5811[_0x6274('0x37')]};if(_0x3219d1[_0x6274('0x2d')]!=='GP'||!_0x3219d1[_0x6274('0x38')]){_0x3c2365[_0x6274('0x39')]=!![];}return _0x218189['update'](_0x3c2365);}else{return logger[_0x6274('0x19')](_0x6274('0x3a'),_0x6274('0x28'),_0x6274('0x2a'),util[_0x6274('0x29')](_0x2a5811,{'showHidden':![],'depth':null}));}})[_0x6274('0x18')](function(_0x518397){return logger['error']('SmsMessage,\x20%s,\x20%s,\x20%s',_0x6274('0x28'),_0x6274('0x2a'),util[_0x6274('0x29')](_0x518397,{'showHidden':![],'depth':null}));});}else{logger[_0x6274('0x19')](_0x6274('0x3a'),_0x6274('0x28'),_0x6274('0x2a'),_0x6274('0x3b'));}break;case _0x6274('0x3c'):if(_0x3219d1[_0x6274('0x1f')]){var _0x1b5671={'recipient':_0x1eef9a[_0x6274('0x22')],'message':_0x1eef9a[_0x6274('0xc')],'sender':_0x3219d1[_0x6274('0x3d')]||_0x3219d1[_0x6274('0x22')],'authorization':_0x3219d1[_0x6274('0x1f')]};var _0x11b702={'method':_0x6274('0x33'),'uri':'https://smsapi.connectel.se/api/v2/send/','body':_0x1b5671,'json':!![]};rp(_0x11b702)[_0x6274('0x15')](function(_0x3737ee){var _0x417a4c={'messageId':_0x3737ee[_0x6274('0x3e')]};if(!_0x3219d1[_0x6274('0x38')]){_0x417a4c[_0x6274('0x39')]=!![];}return _0x218189[_0x6274('0x16')](_0x417a4c);})[_0x6274('0x18')](function(_0x562301){logger['error'](_0x6274('0x3a'),_0x6274('0x28'),_0x6274('0x3c'),util[_0x6274('0x29')](_0x562301,{'showHidden':![],'depth':null}));});}else{logger[_0x6274('0x19')](_0x6274('0x3a'),'afterCreate','connectel',_0x6274('0x3f'));}break;case'clicksend':if(_0x3219d1['username']&&_0x3219d1['password']){var _0x1b5671={'messages':[{'source':'xCALLY\x20Motion','to':_0x1eef9a[_0x6274('0x22')],'body':_0x1eef9a[_0x6274('0xc')],'from':_0x3219d1[_0x6274('0x3d')]||_0x3219d1[_0x6274('0x22')]}]};var _0x83cbc2=util[_0x6274('0x40')](_0x6274('0x41'),_0x3219d1[_0x6274('0x2f')],_0x3219d1['password']);var _0x11b702={'method':_0x6274('0x33'),'uri':_0x6274('0x42'),'body':_0x1b5671,'headers':{'Authorization':util[_0x6274('0x40')](_0x6274('0x43'),new Buffer(_0x83cbc2)[_0x6274('0x44')](_0x6274('0x45')))},'json':!![]};rp(_0x11b702)[_0x6274('0x15')](function(_0x4bc8ef){if(_0x4bc8ef['http_code']>=0xc8&&_0x4bc8ef['http_code']<=0xce){if(_0x4bc8ef[_0x6274('0x46')]&&_0x4bc8ef[_0x6274('0x46')]['queued_count']>0x0){var _0x27f597=_[_0x6274('0x47')](_0x4bc8ef['data'][_0x6274('0x20')]);var _0xbb458a={'messageId':_0x27f597[_0x6274('0x48')]};if(!_0x3219d1[_0x6274('0x38')]){_0xbb458a['read']=!![];}return _0x218189[_0x6274('0x16')](_0xbb458a);}else{logger[_0x6274('0x19')](_0x6274('0x3a'),_0x6274('0x28'),'clickSend',util[_0x6274('0x29')](_0x4bc8ef,{'showHidden':![],'depth':null}));}}else{logger[_0x6274('0x19')]('SmsMessage,\x20%s,\x20%s,\x20%s','afterCreate',_0x6274('0x49'),util[_0x6274('0x29')](_0x4bc8ef,{'showHidden':![],'depth':null}));}})[_0x6274('0x18')](function(_0x1d27fc){logger[_0x6274('0x19')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0x6274('0x28'),_0x6274('0x49'),util['inspect'](_0x1d27fc,{'showHidden':![],'depth':null}));});}else{logger[_0x6274('0x19')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0x6274('0x28'),'clickSend',_0x6274('0x3b'));}break;case _0x6274('0x4a'):if(_0x3219d1['authId']&&_0x3219d1[_0x6274('0x1f')]){var _0x1b5671={'dst':_0x1eef9a['phone'],'text':_0x1eef9a['body'],'src':_0x3219d1['senderString']||_0x3219d1[_0x6274('0x22')],'url':_0x3219d1['remote']+'/api/sms/messages/'+_0x1eef9a['id']+_0x6274('0x25')+_0x3219d1[_0x6274('0x26')]};var _0x83cbc2=util[_0x6274('0x40')](_0x6274('0x41'),_0x3219d1[_0x6274('0x4b')],_0x3219d1[_0x6274('0x1f')]);var _0x11b702={'method':_0x6274('0x33'),'uri':util[_0x6274('0x40')]('https://api.plivo.com/v1/Account/%s/Message/',_0x3219d1['authId']),'body':_0x1b5671,'headers':{'Authorization':util[_0x6274('0x40')](_0x6274('0x43'),new Buffer(_0x83cbc2)[_0x6274('0x44')](_0x6274('0x45')))},'json':!![]};rp(_0x11b702)[_0x6274('0x15')](function(_0x137a90){var _0x12c731={'messageId':_0x137a90[_0x6274('0x4c')][0x0]};return _0x218189[_0x6274('0x16')](_0x12c731);})['catch'](function(_0x159e51){logger[_0x6274('0x19')](_0x6274('0x3a'),_0x6274('0x28'),_0x6274('0x4a'),util[_0x6274('0x29')](_0x159e51,{'showHidden':![],'depth':null}));});}else{logger[_0x6274('0x19')](_0x6274('0x3a'),'afterCreate',_0x6274('0x4a'),'Missing\x20parameters:\x20authId,\x20authToken');}break;case'infobip':if(_0x3219d1[_0x6274('0x2f')]&&_0x3219d1[_0x6274('0x2c')]){if(_0x3219d1[_0x6274('0x4d')]){var _0x22a76f={'method':'POST','uri':_0x3219d1['baseUrl']+_0x6274('0x4e'),'body':{'username':_0x3219d1[_0x6274('0x2f')],'password':_0x3219d1['password']},'json':!![]};return rp(_0x22a76f)[_0x6274('0x15')](function(_0x26e3a7){var _0x28e7bc={'method':_0x6274('0x33'),'uri':_0x3219d1[_0x6274('0x4d')]+'/sms/2/text/advanced','body':{'messages':[{'from':_0x3219d1[_0x6274('0x22')],'destinations':[{'to':_0x1eef9a[_0x6274('0x22')]}],'text':_0x1eef9a[_0x6274('0xc')],'notifyUrl':_0x3219d1[_0x6274('0x23')]+_0x6274('0x24')+_0x1eef9a['id']+'/status?token='+_0x3219d1['token'],'notifyContentType':_0x6274('0x4f'),'callbackData':_0x3219d1[_0x6274('0x22')]+';'+_0x1eef9a[_0x6274('0xc')]}]},'headers':{'Authorization':_0x6274('0x50')+_0x26e3a7['token']},'json':!![]};return rp(_0x28e7bc)['then'](function(_0x276b39){if(_0x276b39[_0x6274('0x20')]){var _0x1ef230={'messageId':_0x276b39[_0x6274('0x20')][0x0][_0x6274('0xb')]};if(!_0x3219d1[_0x6274('0x38')]){_0x1ef230[_0x6274('0x39')]=!![];}return _0x218189[_0x6274('0x16')](_0x1ef230);}else{return logger[_0x6274('0x19')](_0x6274('0x3a'),_0x6274('0x28'),_0x6274('0x51'),util[_0x6274('0x29')](_0x276b39,{'showHidden':![],'depth':null}));}});})[_0x6274('0x18')](function(_0x35c33f){return logger[_0x6274('0x19')](_0x6274('0x3a'),_0x6274('0x28'),_0x6274('0x51'),util[_0x6274('0x29')](_0x35c33f,{'showHidden':![],'depth':null}));});}else{logger[_0x6274('0x19')](_0x6274('0x3a'),_0x6274('0x28'),_0x6274('0x51'),_0x6274('0x52'));}}else{logger[_0x6274('0x19')](_0x6274('0x3a'),_0x6274('0x28'),'infobip',_0x6274('0x3b'));}break;case _0x6274('0x53'):var _0x232c55=require(_0x6274('0x54'));if(_0x3219d1[_0x6274('0x55')]){var _0x3a04f0={};_0x3a04f0[_0x6274('0x56')]=_0x3219d1[_0x6274('0x2f')];_0x3a04f0[_0x6274('0x22')]=_0x1eef9a[_0x6274('0x22')];_0x3a04f0[_0x6274('0x2e')]=_0x3219d1[_0x6274('0x22')];_0x3a04f0['text']=_0x1eef9a[_0x6274('0xc')];_0x3a04f0[_0x6274('0x57')]=+new Date();var _0xe4bf5a='';var _0x44ec97='';var _0x1ae76c=Object['keys'](_0x3a04f0);_0x1ae76c['sort']();for(var _0x58399c=0x0;_0x58399c<_0x1ae76c[_0x6274('0x58')];_0x58399c++){if(_0xe4bf5a!=''){_0xe4bf5a+='&';}_0xe4bf5a+=_0x1ae76c[_0x58399c]+'='+encodeURIComponent(_0x3a04f0[_0x1ae76c[_0x58399c]]);_0x44ec97+=_0x3a04f0[_0x1ae76c[_0x58399c]];}_0x44ec97+=_0x3219d1[_0x6274('0x55')];_0x44ec97=_0x232c55['createHash'](_0x6274('0x59'))['update'](_0x44ec97)['digest']('hex');if(_0xe4bf5a!==''){_0xe4bf5a+='&';}_0xe4bf5a+='signature='+_0x44ec97;var _0x868ff9={'method':_0x6274('0x31'),'uri':_0x3219d1[_0x6274('0x4d')]+_0x6274('0x5a')+_0xe4bf5a,'json':!![]};return rp(_0x868ff9)[_0x6274('0x15')](function(_0x670171){var _0x37b6aa=Object[_0x6274('0x5b')](_0x670171);if(_0x670171[_0x37b6aa[0x0]]['error']&&parseInt(_0x670171[_0x37b6aa[0x0]][_0x6274('0x19')])===0x0){var _0x11728c={'messageId':_0x670171[_0x37b6aa[0x0]][_0x6274('0x5c')]};if(!_0x3219d1[_0x6274('0x38')]){_0x11728c[_0x6274('0x39')]=!![];}return _0x218189[_0x6274('0x16')](_0x11728c);}else{return logger[_0x6274('0x19')](_0x6274('0x3a'),'afterCreate',_0x6274('0x53'),util['inspect'](_0x670171[_0x6274('0x19')],{'showHidden':![],'depth':null}));}})[_0x6274('0x18')](function(_0x36ea65){return logger[_0x6274('0x19')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0x6274('0x28'),_0x6274('0x53'),util['inspect'](_0x36ea65,{'showHidden':![],'depth':null}));});}else{logger['error']('SmsMessage,\x20%s,\x20%s,\x20%s',_0x6274('0x28'),'csc',_0x6274('0x5d'));}break;case _0x6274('0x5e'):if(_0x3219d1[_0x6274('0x55')]){var _0x1ea13a={'method':'POST','uri':'https://platform.clickatell.com/messages','headers':{'Authorization':_0x3219d1['apiKey']},'body':{'content':_0x1eef9a[_0x6274('0xc')],'to':[_0x1eef9a[_0x6274('0x22')]],'from':_0x3219d1[_0x6274('0x22')],'binary':![],'clientMessageId':'uuid','charset':_0x6274('0x5f')},'json':!![]};rp(_0x1ea13a)['then'](function(_0x19470d){if(!_0x19470d[_0x6274('0x19')]){var _0x8b3f88={'messageId':_0x19470d['messages'][0x0][_0x6274('0x60')]};if(!_0x3219d1[_0x6274('0x38')]){_0x8b3f88[_0x6274('0x39')]=!![];}return _0x218189[_0x6274('0x16')](_0x8b3f88);}else{return logger[_0x6274('0x19')](_0x6274('0x3a'),_0x6274('0x28'),_0x6274('0x5e'),util['inspect'](_0x19470d[_0x6274('0x19')],{'showHidden':![],'depth':null}));}})['catch'](function(_0x39cc11){return logger['error'](_0x6274('0x3a'),_0x6274('0x28'),_0x6274('0x5e'),util[_0x6274('0x29')](_0x39cc11,{'showHidden':![],'depth':null}));});}else{logger['error'](_0x6274('0x3a'),'afterCreate',_0x6274('0x5e'),_0x6274('0x5d'));}break;case'bandwidth':if(_0x3219d1['username']&&_0x3219d1[_0x6274('0x2c')]){var _0x83cbc2=util[_0x6274('0x40')](_0x6274('0x41'),_0x3219d1[_0x6274('0x2f')],_0x3219d1[_0x6274('0x2c')]);var _0x11b702={'method':'POST','uri':_0x6274('0x61')+_0x3219d1[_0x6274('0x62')]+_0x6274('0x63'),'body':{'to':[_0x1eef9a['phone']],'text':_0x1eef9a[_0x6274('0xc')],'from':_0x3219d1[_0x6274('0x22')],'applicationId':_0x3219d1[_0x6274('0x64')]},'headers':{'Authorization':util[_0x6274('0x40')]('Basic\x20%s',new Buffer(_0x83cbc2)[_0x6274('0x44')](_0x6274('0x45')))},'json':!![]};rp(_0x11b702)[_0x6274('0x15')](function(_0x3109f6){if(_0x3109f6['id']){var _0x2896dd={'messageId':_0x3109f6['id']};return _0x218189[_0x6274('0x16')](_0x2896dd);}else{logger[_0x6274('0x19')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0x6274('0x28'),_0x6274('0x65'),util[_0x6274('0x29')](_0x3109f6,{'showHidden':![],'depth':null}));}})[_0x6274('0x18')](function(_0x48a801){logger[_0x6274('0x19')](_0x6274('0x3a'),'afterCreate',_0x6274('0x65'),util[_0x6274('0x29')](_0x48a801,{'showHidden':![],'depth':null}));});}else{logger['error'](_0x6274('0x3a'),_0x6274('0x28'),_0x6274('0x65'),_0x6274('0x3b'));}break;case'intelepeer':if(_0x3219d1[_0x6274('0x55')]){var _0x159ce2={};var _0x868ff9={'method':_0x6274('0x33'),'uri':_0x6274('0x66'),'headers':{'Authorization':_0x6274('0x67')+_0x3219d1['apiKey'],'Content-Type':'application/json'},'body':{'from':_0x3219d1[_0x6274('0x22')],'to':_0x1eef9a[_0x6274('0x22')],'text':_0x1eef9a['body']},'json':!![]};return rp(_0x868ff9)['then'](function(_0xcb0c9c){if(_0xcb0c9c[_0x6274('0x68')]==0xca){_0x159ce2[_0x6274('0x69')]=_0xcb0c9c;var _0x26d53f={'method':_0x6274('0x33'),'uri':_0x6274('0x6a'),'headers':{'Authorization':'Bearer\x20'+_0x3219d1[_0x6274('0x55')],'Content-Type':_0x6274('0x4f')},'body':{'refid':_0x159ce2[_0x6274('0x69')][_0x6274('0x6b')]},'json':!![]};return rp(_0x26d53f)['then'](function(_0x181f75){_0x159ce2[_0x6274('0x6c')]=_0x181f75;var _0x4d9842={'messageId':_0x159ce2[_0x6274('0x69')]['refid'],'read':!![]};return _0x218189[_0x6274('0x16')](_0x4d9842);});}else{return logger[_0x6274('0x19')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0x6274('0x28'),_0x6274('0x6d'),util[_0x6274('0x29')](_0xcb0c9c,{'showHidden':![],'depth':null}));}})[_0x6274('0x18')](function(_0x10af1a){return logger[_0x6274('0x19')](_0x6274('0x3a'),_0x6274('0x28'),_0x6274('0x6d'),util['inspect'](_0x10af1a,{'showHidden':![],'depth':null}));});}else{return logger[_0x6274('0x19')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0x6274('0x28'),_0x6274('0x6d'),_0x6274('0x6e'));}break;}}})[_0x6274('0x6f')](function(){_0x226681();});}else{_0x226681();}}},'charset':_0x6274('0x70'),'collate':_0x6274('0x71')});};
\ No newline at end of file
+var _0xa1fd=['https://rest.clicksend.com/v3/sms/send','Basic\x20%s','toString','base64','http_code','data','queued_count','message_id','clickSend','remote','authId','message_uuid','plivo','Missing\x20parameters:\x20authId,\x20authToken','infobip','baseUrl','/sms/2/text/advanced','/status?token=','IBSSO\x20','Missing\x20parameters:\x20base_url','csc','crypto','apiKey','login','text','timestamp','keys','sort','length','createHash','md5','digest','hex','signature=','GET','/external/get/send.php?','id_sms','Missing\x20parameters:\x20apiKey','clickatell','https://platform.clickatell.com/messages','uuid','UTF-8','bandwidth','https://messaging.bandwidth.com/api/v2/users/','accountId','/messages','intelepeer','https://api.intelepeer.com/_rest/v4/app/sms/send','Bearer\x20','application/json','message','https://api.intelepeer.com/_rest/v4/app/sms/mdr','refid','status','finally','utf8mb4','utf8mb4_unicode_ci','lodash','util','../../config/logger','api','bluebird','request-promise','path','rimraf','../../config/environment','exports','SmsMessage','sms_messages','messageId','fti_sms_messages','body','FULLTEXT','models','get','direction','toLowerCase','out','secret','isNil','SmsInteraction','findOne','SmsInteractionId','then','update','catch','SmsAccount','find','type','twilio','accountSid','authToken','phone','messages','create','/api/sms/messages/','token','sid','error','SmsMessage,\x20%s,\x20%s,\x20%s','inspect','Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken','username','smsMethod','sender','login?username=','&password=','split','sms','POST','user_key','total_sent','internal_order_id','deliveryReport','afterCreate','skebby','Missing\x20parameters:\x20username,\x20password','connectel','senderString','https://smsapi.connectel.se/api/v2/send/','requestid','read','Missing\x20parameters:\x20authToken','clicksend','xCALLY\x20Motion','format','%s:%s','password'];(function(_0x5c120c,_0x36d71c){var _0x3b8ffe=function(_0x2521a8){while(--_0x2521a8){_0x5c120c['push'](_0x5c120c['shift']());}};_0x3b8ffe(++_0x36d71c);}(_0xa1fd,0x1b9));var _0xda1f=function(_0x7d0149,_0x1b6d23){_0x7d0149=_0x7d0149-0x0;var _0xaabd78=_0xa1fd[_0x7d0149];return _0xaabd78;};'use strict';var _=require(_0xda1f('0x0'));var util=require(_0xda1f('0x1'));var logger=require(_0xda1f('0x2'))(_0xda1f('0x3'));var moment=require('moment');var BPromise=require(_0xda1f('0x4'));var rp=require(_0xda1f('0x5'));var fs=require('fs');var path=require(_0xda1f('0x6'));var rimraf=require(_0xda1f('0x7'));var config=require(_0xda1f('0x8'));var attributes=require('./smsMessage.attributes');module[_0xda1f('0x9')]=function(_0x3b9463,_0x362dee){return _0x3b9463['define'](_0xda1f('0xa'),attributes,{'tableName':_0xda1f('0xb'),'paranoid':![],'indexes':[{'name':_0xda1f('0xc'),'fields':[_0xda1f('0xc')]},{'name':_0xda1f('0xd'),'fields':[_0xda1f('0xe')],'type':_0xda1f('0xf')}],'timestamps':!![],'hooks':{'afterCreate':function(_0xf3bced,_0x13467c,_0x5a190f){var _0x174cd9=_0x3b9463[_0xda1f('0x10')];var _0x20ab8b=_0xf3bced[_0xda1f('0x11')]({'plain':!![]});if(_0x20ab8b['direction']['toLowerCase']()==='in'||_0x20ab8b[_0xda1f('0x12')][_0xda1f('0x13')]()===_0xda1f('0x14')&&!_0x20ab8b[_0xda1f('0x15')]&&!_[_0xda1f('0x16')](_0x20ab8b['UserId'])){_0x174cd9[_0xda1f('0x17')][_0xda1f('0x18')]({'where':{'id':_0x20ab8b[_0xda1f('0x19')]}})[_0xda1f('0x1a')](function(_0x2138d0){if(_0x2138d0){_0x2138d0[_0xda1f('0x1b')]({'lastMsgAt':_0x20ab8b['createdAt'],'lastMsgDirection':_0x20ab8b[_0xda1f('0x12')][_0xda1f('0x13')]()});}})[_0xda1f('0x1c')](function(_0x4081d0){console['error'](_0x4081d0);});}if(_0x20ab8b['direction']===_0xda1f('0x14')&&!_0x20ab8b['secret']){var _0x3424a1;_0x174cd9[_0xda1f('0x1d')][_0xda1f('0x1e')]({'where':{'id':_0x20ab8b['SmsAccountId']},'raw':!![]})[_0xda1f('0x1a')](function(_0xe18a0a){_0x3424a1=_0xe18a0a;if(_0x3424a1&&_0x3424a1['type']){switch(_0x3424a1[_0xda1f('0x1f')]){case _0xda1f('0x20'):var _0x5a790c=require(_0xda1f('0x20'));if(_0x3424a1[_0xda1f('0x21')]&&_0x3424a1[_0xda1f('0x22')]&&_0x3424a1[_0xda1f('0x23')]){var _0x3955b8=new _0x5a790c(_0x3424a1[_0xda1f('0x21')],_0x3424a1[_0xda1f('0x22')]);_0x3955b8[_0xda1f('0x24')][_0xda1f('0x25')]({'body':_0x20ab8b[_0xda1f('0xe')],'to':_0x20ab8b[_0xda1f('0x23')],'from':_0x3424a1[_0xda1f('0x23')],'statusCallback':_0x3424a1['remote']+_0xda1f('0x26')+_0x20ab8b['id']+'/status?token='+_0x3424a1[_0xda1f('0x27')]})['then'](function(_0x2a1b64){if(_0x2a1b64[_0xda1f('0x28')]){return _0xf3bced['update']({'messageId':_0x2a1b64[_0xda1f('0x28')]});}})[_0xda1f('0x1c')](function(_0x3231c8){logger[_0xda1f('0x29')](_0xda1f('0x2a'),'afterCreate',_0xda1f('0x20'),util[_0xda1f('0x2b')](_0x3231c8,{'showHidden':![],'depth':null}));});}else{logger[_0xda1f('0x29')](_0xda1f('0x2a'),'afterCreate',_0xda1f('0x20'),_0xda1f('0x2c'));}break;case'skebby':var _0x3f8d05='https://api.skebby.it/API/v1.0/REST/';if(_0x3424a1[_0xda1f('0x2d')]&&_0x3424a1['password']){var _0x5ba749={'recipient':[_0x20ab8b[_0xda1f('0x23')]],'message':_0x20ab8b['body'],'message_type':_0x3424a1['smsMethod']};if(_0x3424a1[_0xda1f('0x2e')]&&_0x3424a1[_0xda1f('0x2e')]!=='SI'){_0x5ba749[_0xda1f('0x2f')]=_0x3424a1['phone'];}var _0x16d78b={'url':_0x3f8d05+_0xda1f('0x30')+_0x3424a1['username']+_0xda1f('0x31')+_0x3424a1['password'],'method':'GET'};rp(_0x16d78b)['then'](function(_0x90a7a3){var _0x7f3b78=_0x90a7a3[_0xda1f('0x32')](';');var _0x5b0366={'user_key':_0x7f3b78[0x0],'session_key':_0x7f3b78[0x1]};_0x16d78b={'url':_0x3f8d05+_0xda1f('0x33'),'method':_0xda1f('0x34'),'headers':{'user_key':_0x5b0366[_0xda1f('0x35')],'Session_key':_0x5b0366['session_key']},'json':!![],'body':_0x5ba749};return rp(_0x16d78b);})[_0xda1f('0x1a')](function(_0x53cbaa){if(_0x53cbaa[_0xda1f('0x36')]>=0x1){var _0x24d2ae={'messageId':_0x53cbaa[_0xda1f('0x37')]};if(_0x3424a1[_0xda1f('0x2e')]!=='GP'||!_0x3424a1[_0xda1f('0x38')]){_0x24d2ae['read']=!![];}return _0xf3bced[_0xda1f('0x1b')](_0x24d2ae);}else{return logger[_0xda1f('0x29')](_0xda1f('0x2a'),_0xda1f('0x39'),'skebby',util[_0xda1f('0x2b')](_0x53cbaa,{'showHidden':![],'depth':null}));}})[_0xda1f('0x1c')](function(_0x26d4ee){return logger[_0xda1f('0x29')](_0xda1f('0x2a'),'afterCreate',_0xda1f('0x3a'),util[_0xda1f('0x2b')](_0x26d4ee,{'showHidden':![],'depth':null}));});}else{logger[_0xda1f('0x29')](_0xda1f('0x2a'),_0xda1f('0x39'),'skebby',_0xda1f('0x3b'));}break;case _0xda1f('0x3c'):if(_0x3424a1[_0xda1f('0x22')]){var _0x253e1b={'recipient':_0x20ab8b[_0xda1f('0x23')],'message':_0x20ab8b['body'],'sender':_0x3424a1[_0xda1f('0x3d')]||_0x3424a1[_0xda1f('0x23')],'authorization':_0x3424a1[_0xda1f('0x22')]};var _0x13467c={'method':_0xda1f('0x34'),'uri':_0xda1f('0x3e'),'body':_0x253e1b,'json':!![]};rp(_0x13467c)[_0xda1f('0x1a')](function(_0x396b5e){var _0x558861={'messageId':_0x396b5e[_0xda1f('0x3f')]};if(!_0x3424a1[_0xda1f('0x38')]){_0x558861[_0xda1f('0x40')]=!![];}return _0xf3bced[_0xda1f('0x1b')](_0x558861);})[_0xda1f('0x1c')](function(_0x35f783){logger[_0xda1f('0x29')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0xda1f('0x39'),_0xda1f('0x3c'),util[_0xda1f('0x2b')](_0x35f783,{'showHidden':![],'depth':null}));});}else{logger[_0xda1f('0x29')](_0xda1f('0x2a'),_0xda1f('0x39'),_0xda1f('0x3c'),_0xda1f('0x41'));}break;case _0xda1f('0x42'):if(_0x3424a1['username']&&_0x3424a1['password']){var _0x253e1b={'messages':[{'source':_0xda1f('0x43'),'to':_0x20ab8b[_0xda1f('0x23')],'body':_0x20ab8b[_0xda1f('0xe')],'from':_0x3424a1['senderString']||_0x3424a1[_0xda1f('0x23')]}]};var _0xca645d=util[_0xda1f('0x44')](_0xda1f('0x45'),_0x3424a1[_0xda1f('0x2d')],_0x3424a1[_0xda1f('0x46')]);var _0x13467c={'method':_0xda1f('0x34'),'uri':_0xda1f('0x47'),'body':_0x253e1b,'headers':{'Authorization':util[_0xda1f('0x44')](_0xda1f('0x48'),new Buffer(_0xca645d)[_0xda1f('0x49')](_0xda1f('0x4a')))},'json':!![]};rp(_0x13467c)[_0xda1f('0x1a')](function(_0x2e4155){if(_0x2e4155['http_code']>=0xc8&&_0x2e4155[_0xda1f('0x4b')]<=0xce){if(_0x2e4155['data']&&_0x2e4155[_0xda1f('0x4c')][_0xda1f('0x4d')]>0x0){var _0x2de858=_['head'](_0x2e4155[_0xda1f('0x4c')][_0xda1f('0x24')]);var _0x1b325a={'messageId':_0x2de858[_0xda1f('0x4e')]};if(!_0x3424a1['deliveryReport']){_0x1b325a[_0xda1f('0x40')]=!![];}return _0xf3bced['update'](_0x1b325a);}else{logger[_0xda1f('0x29')](_0xda1f('0x2a'),_0xda1f('0x39'),_0xda1f('0x4f'),util[_0xda1f('0x2b')](_0x2e4155,{'showHidden':![],'depth':null}));}}else{logger[_0xda1f('0x29')](_0xda1f('0x2a'),_0xda1f('0x39'),_0xda1f('0x4f'),util[_0xda1f('0x2b')](_0x2e4155,{'showHidden':![],'depth':null}));}})[_0xda1f('0x1c')](function(_0xc14263){logger[_0xda1f('0x29')](_0xda1f('0x2a'),_0xda1f('0x39'),'clickSend',util[_0xda1f('0x2b')](_0xc14263,{'showHidden':![],'depth':null}));});}else{logger[_0xda1f('0x29')](_0xda1f('0x2a'),_0xda1f('0x39'),_0xda1f('0x4f'),_0xda1f('0x3b'));}break;case'plivo':if(_0x3424a1['authId']&&_0x3424a1[_0xda1f('0x22')]){var _0x253e1b={'dst':_0x20ab8b[_0xda1f('0x23')],'text':_0x20ab8b[_0xda1f('0xe')],'src':_0x3424a1[_0xda1f('0x3d')]||_0x3424a1[_0xda1f('0x23')],'url':_0x3424a1[_0xda1f('0x50')]+_0xda1f('0x26')+_0x20ab8b['id']+'/status?token='+_0x3424a1[_0xda1f('0x27')]};var _0xca645d=util['format']('%s:%s',_0x3424a1[_0xda1f('0x51')],_0x3424a1[_0xda1f('0x22')]);var _0x13467c={'method':_0xda1f('0x34'),'uri':util[_0xda1f('0x44')]('https://api.plivo.com/v1/Account/%s/Message/',_0x3424a1[_0xda1f('0x51')]),'body':_0x253e1b,'headers':{'Authorization':util[_0xda1f('0x44')]('Basic\x20%s',new Buffer(_0xca645d)[_0xda1f('0x49')]('base64'))},'json':!![]};rp(_0x13467c)[_0xda1f('0x1a')](function(_0x2f62b7){var _0x462a53={'messageId':_0x2f62b7[_0xda1f('0x52')][0x0]};return _0xf3bced[_0xda1f('0x1b')](_0x462a53);})[_0xda1f('0x1c')](function(_0x419d91){logger[_0xda1f('0x29')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0xda1f('0x39'),_0xda1f('0x53'),util[_0xda1f('0x2b')](_0x419d91,{'showHidden':![],'depth':null}));});}else{logger[_0xda1f('0x29')](_0xda1f('0x2a'),_0xda1f('0x39'),_0xda1f('0x53'),_0xda1f('0x54'));}break;case _0xda1f('0x55'):if(_0x3424a1[_0xda1f('0x2d')]&&_0x3424a1['password']){if(_0x3424a1[_0xda1f('0x56')]){var _0xa8fe59={'method':_0xda1f('0x34'),'uri':_0x3424a1[_0xda1f('0x56')]+'/auth/1/session','body':{'username':_0x3424a1['username'],'password':_0x3424a1['password']},'json':!![]};return rp(_0xa8fe59)[_0xda1f('0x1a')](function(_0x4877df){var _0x2de863={'method':'POST','uri':_0x3424a1[_0xda1f('0x56')]+_0xda1f('0x57'),'body':{'messages':[{'from':_0x3424a1[_0xda1f('0x23')],'destinations':[{'to':_0x20ab8b[_0xda1f('0x23')]}],'text':_0x20ab8b[_0xda1f('0xe')],'notifyUrl':_0x3424a1[_0xda1f('0x50')]+_0xda1f('0x26')+_0x20ab8b['id']+_0xda1f('0x58')+_0x3424a1[_0xda1f('0x27')],'notifyContentType':'application/json','callbackData':_0x3424a1['phone']+';'+_0x20ab8b[_0xda1f('0xe')]}]},'headers':{'Authorization':_0xda1f('0x59')+_0x4877df[_0xda1f('0x27')]},'json':!![]};return rp(_0x2de863)['then'](function(_0x3c5c52){if(_0x3c5c52[_0xda1f('0x24')]){var _0x59a304={'messageId':_0x3c5c52[_0xda1f('0x24')][0x0][_0xda1f('0xc')]};if(!_0x3424a1[_0xda1f('0x38')]){_0x59a304[_0xda1f('0x40')]=!![];}return _0xf3bced[_0xda1f('0x1b')](_0x59a304);}else{return logger[_0xda1f('0x29')](_0xda1f('0x2a'),'afterCreate','infobip',util[_0xda1f('0x2b')](_0x3c5c52,{'showHidden':![],'depth':null}));}});})[_0xda1f('0x1c')](function(_0x3a1956){return logger['error']('SmsMessage,\x20%s,\x20%s,\x20%s',_0xda1f('0x39'),_0xda1f('0x55'),util['inspect'](_0x3a1956,{'showHidden':![],'depth':null}));});}else{logger[_0xda1f('0x29')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0xda1f('0x39'),_0xda1f('0x55'),_0xda1f('0x5a'));}}else{logger['error']('SmsMessage,\x20%s,\x20%s,\x20%s',_0xda1f('0x39'),'infobip',_0xda1f('0x3b'));}break;case _0xda1f('0x5b'):var _0x4450a2=require(_0xda1f('0x5c'));if(_0x3424a1[_0xda1f('0x5d')]){var _0x206a4a={};_0x206a4a[_0xda1f('0x5e')]=_0x3424a1['username'];_0x206a4a[_0xda1f('0x23')]=_0x20ab8b[_0xda1f('0x23')];_0x206a4a[_0xda1f('0x2f')]=_0x3424a1[_0xda1f('0x23')];_0x206a4a[_0xda1f('0x5f')]=_0x20ab8b[_0xda1f('0xe')];_0x206a4a[_0xda1f('0x60')]=+new Date();var _0x205a9a='';var _0x5e1faa='';var _0x502a88=Object[_0xda1f('0x61')](_0x206a4a);_0x502a88[_0xda1f('0x62')]();for(var _0x3d313f=0x0;_0x3d313f<_0x502a88[_0xda1f('0x63')];_0x3d313f++){if(_0x205a9a!=''){_0x205a9a+='&';}_0x205a9a+=_0x502a88[_0x3d313f]+'='+encodeURIComponent(_0x206a4a[_0x502a88[_0x3d313f]]);_0x5e1faa+=_0x206a4a[_0x502a88[_0x3d313f]];}_0x5e1faa+=_0x3424a1[_0xda1f('0x5d')];_0x5e1faa=_0x4450a2[_0xda1f('0x64')](_0xda1f('0x65'))[_0xda1f('0x1b')](_0x5e1faa)[_0xda1f('0x66')](_0xda1f('0x67'));if(_0x205a9a!==''){_0x205a9a+='&';}_0x205a9a+=_0xda1f('0x68')+_0x5e1faa;var _0x16d78b={'method':_0xda1f('0x69'),'uri':_0x3424a1['baseUrl']+_0xda1f('0x6a')+_0x205a9a,'json':!![]};return rp(_0x16d78b)['then'](function(_0x24a608){var _0x192ef4=Object[_0xda1f('0x61')](_0x24a608);if(_0x24a608[_0x192ef4[0x0]][_0xda1f('0x29')]&&parseInt(_0x24a608[_0x192ef4[0x0]][_0xda1f('0x29')])===0x0){var _0x41d544={'messageId':_0x24a608[_0x192ef4[0x0]][_0xda1f('0x6b')]};if(!_0x3424a1[_0xda1f('0x38')]){_0x41d544['read']=!![];}return _0xf3bced[_0xda1f('0x1b')](_0x41d544);}else{return logger['error'](_0xda1f('0x2a'),_0xda1f('0x39'),'csc',util['inspect'](_0x24a608['error'],{'showHidden':![],'depth':null}));}})['catch'](function(_0x5b1559){return logger[_0xda1f('0x29')](_0xda1f('0x2a'),'afterCreate',_0xda1f('0x5b'),util['inspect'](_0x5b1559,{'showHidden':![],'depth':null}));});}else{logger[_0xda1f('0x29')](_0xda1f('0x2a'),_0xda1f('0x39'),_0xda1f('0x5b'),_0xda1f('0x6c'));}break;case _0xda1f('0x6d'):if(_0x3424a1[_0xda1f('0x5d')]){var _0xb8a105={'method':'POST','uri':_0xda1f('0x6e'),'headers':{'Authorization':_0x3424a1[_0xda1f('0x5d')]},'body':{'content':_0x20ab8b[_0xda1f('0xe')],'to':[_0x20ab8b[_0xda1f('0x23')]],'from':_0x3424a1[_0xda1f('0x23')],'binary':![],'clientMessageId':_0xda1f('0x6f'),'charset':_0xda1f('0x70')},'json':!![]};rp(_0xb8a105)['then'](function(_0x4cc6c3){if(!_0x4cc6c3[_0xda1f('0x29')]){var _0x2653c5={'messageId':_0x4cc6c3[_0xda1f('0x24')][0x0]['apiMessageId']};if(!_0x3424a1[_0xda1f('0x38')]){_0x2653c5['read']=!![];}return _0xf3bced[_0xda1f('0x1b')](_0x2653c5);}else{return logger[_0xda1f('0x29')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0xda1f('0x39'),_0xda1f('0x6d'),util[_0xda1f('0x2b')](_0x4cc6c3[_0xda1f('0x29')],{'showHidden':![],'depth':null}));}})['catch'](function(_0x55f9a6){return logger[_0xda1f('0x29')](_0xda1f('0x2a'),_0xda1f('0x39'),_0xda1f('0x6d'),util[_0xda1f('0x2b')](_0x55f9a6,{'showHidden':![],'depth':null}));});}else{logger[_0xda1f('0x29')](_0xda1f('0x2a'),_0xda1f('0x39'),_0xda1f('0x6d'),_0xda1f('0x6c'));}break;case _0xda1f('0x71'):if(_0x3424a1[_0xda1f('0x2d')]&&_0x3424a1[_0xda1f('0x46')]){var _0xca645d=util['format'](_0xda1f('0x45'),_0x3424a1[_0xda1f('0x2d')],_0x3424a1[_0xda1f('0x46')]);var _0x13467c={'method':_0xda1f('0x34'),'uri':_0xda1f('0x72')+_0x3424a1[_0xda1f('0x73')]+_0xda1f('0x74'),'body':{'to':[_0x20ab8b[_0xda1f('0x23')]],'text':_0x20ab8b[_0xda1f('0xe')],'from':_0x3424a1[_0xda1f('0x23')],'applicationId':_0x3424a1['applicationId']},'headers':{'Authorization':util[_0xda1f('0x44')](_0xda1f('0x48'),new Buffer(_0xca645d)[_0xda1f('0x49')](_0xda1f('0x4a')))},'json':!![]};rp(_0x13467c)[_0xda1f('0x1a')](function(_0x5184b2){if(_0x5184b2['id']){var _0x4e28e5={'messageId':_0x5184b2['id']};return _0xf3bced[_0xda1f('0x1b')](_0x4e28e5);}else{logger[_0xda1f('0x29')](_0xda1f('0x2a'),_0xda1f('0x39'),_0xda1f('0x71'),util['inspect'](_0x5184b2,{'showHidden':![],'depth':null}));}})['catch'](function(_0x26b926){logger['error'](_0xda1f('0x2a'),_0xda1f('0x39'),_0xda1f('0x71'),util[_0xda1f('0x2b')](_0x26b926,{'showHidden':![],'depth':null}));});}else{logger[_0xda1f('0x29')](_0xda1f('0x2a'),_0xda1f('0x39'),_0xda1f('0x71'),_0xda1f('0x3b'));}break;case _0xda1f('0x75'):if(_0x3424a1[_0xda1f('0x5d')]){var _0x3db1d7={};var _0x16d78b={'method':_0xda1f('0x34'),'uri':_0xda1f('0x76'),'headers':{'Authorization':_0xda1f('0x77')+_0x3424a1[_0xda1f('0x5d')],'Content-Type':_0xda1f('0x78')},'body':{'from':_0x3424a1['phone'],'to':_0x20ab8b[_0xda1f('0x23')],'text':_0x20ab8b[_0xda1f('0xe')]},'json':!![]};return rp(_0x16d78b)[_0xda1f('0x1a')](function(_0x534cc2){if(_0x534cc2['code']==0xca){_0x3db1d7[_0xda1f('0x79')]=_0x534cc2;var _0x5b5f56={'method':_0xda1f('0x34'),'uri':_0xda1f('0x7a'),'headers':{'Authorization':_0xda1f('0x77')+_0x3424a1[_0xda1f('0x5d')],'Content-Type':'application/json'},'body':{'refid':_0x3db1d7['message'][_0xda1f('0x7b')]},'json':!![]};return rp(_0x5b5f56)[_0xda1f('0x1a')](function(_0x3e1e46){_0x3db1d7[_0xda1f('0x7c')]=_0x3e1e46;var _0x1cae1f={'messageId':_0x3db1d7[_0xda1f('0x79')][_0xda1f('0x7b')],'read':!![]};return _0xf3bced[_0xda1f('0x1b')](_0x1cae1f);});}else{return logger['error'](_0xda1f('0x2a'),'afterCreate',_0xda1f('0x75'),util[_0xda1f('0x2b')](_0x534cc2,{'showHidden':![],'depth':null}));}})[_0xda1f('0x1c')](function(_0x58771e){return logger[_0xda1f('0x29')]('SmsMessage,\x20%s,\x20%s,\x20%s','afterCreate','intelepeer',util[_0xda1f('0x2b')](_0x58771e,{'showHidden':![],'depth':null}));});}else{return logger[_0xda1f('0x29')](_0xda1f('0x2a'),'afterCreate',_0xda1f('0x75'),'Token\x20not\x20received');}break;}}})[_0xda1f('0x7d')](function(){_0x5a190f();});}else{_0x5a190f();}}},'charset':_0xda1f('0x7e'),'collate':_0xda1f('0x7f')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa318=['http','redis','defaults','socket.io-emitter','./smsMessage.socket','request','SmsMessage,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','catch','CreateSmsMessage','create','options','then','info','debug','lodash','util','moment','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client'];(function(_0x4b6507,_0x5518b5){var _0x2001ec=function(_0x330ddf){while(--_0x330ddf){_0x4b6507['push'](_0x4b6507['shift']());}};_0x2001ec(++_0x5518b5);}(_0xa318,0xe5));var _0x8a31=function(_0x316a0f,_0x3c4088){_0x316a0f=_0x316a0f-0x0;var _0x582cbe=_0xa318[_0x316a0f];return _0x582cbe;};'use strict';var _=require(_0x8a31('0x0'));var util=require(_0x8a31('0x1'));var moment=require(_0x8a31('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x8a31('0x3'));var db=require(_0x8a31('0x4'))['db'];var utils=require(_0x8a31('0x5'));var logger=require(_0x8a31('0x6'))(_0x8a31('0x7'));var config=require(_0x8a31('0x8'));var jayson=require(_0x8a31('0x9'));var client=jayson[_0x8a31('0xa')][_0x8a31('0xb')]({'port':0x232a});config[_0x8a31('0xc')]=_[_0x8a31('0xd')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x8a31('0xe'))(new Redis(config['redis']));require(_0x8a31('0xf'))['register'](socket);function respondWithRpcPromise(_0x16c1ba,_0xfafbc3,_0xd040e4){return new BPromise(function(_0x5b3de5,_0x289fc5){return client[_0x8a31('0x10')](_0x16c1ba,_0xd040e4)['then'](function(_0x3b468d){logger['info'](_0x8a31('0x11'),_0xfafbc3,'request\x20sent');logger['debug']('SmsMessage,\x20%s,\x20%s,\x20%s',_0xfafbc3,_0x8a31('0x12'),JSON[_0x8a31('0x13')](_0x3b468d));if(_0x3b468d[_0x8a31('0x14')]){if(_0x3b468d['error'][_0x8a31('0x15')]===0x1f4){logger[_0x8a31('0x14')](_0x8a31('0x11'),_0xfafbc3,_0x3b468d[_0x8a31('0x14')]['message']);return _0x289fc5(_0x3b468d[_0x8a31('0x14')][_0x8a31('0x16')]);}logger[_0x8a31('0x14')](_0x8a31('0x11'),_0xfafbc3,_0x3b468d[_0x8a31('0x14')][_0x8a31('0x16')]);return _0x5b3de5(_0x3b468d[_0x8a31('0x14')][_0x8a31('0x16')]);}else{logger['info'](_0x8a31('0x11'),_0xfafbc3,_0x8a31('0x12'));_0x5b3de5(_0x3b468d['result']['message']);}})[_0x8a31('0x17')](function(_0x25fc4a){logger['error'](_0x8a31('0x11'),_0xfafbc3,_0x25fc4a);_0x289fc5(_0x25fc4a);});});}exports[_0x8a31('0x18')]=function(_0x29c470){var _0x28cb62=this;return new Promise(function(_0x48e0c4,_0x11ba57){return db['SmsMessage'][_0x8a31('0x19')](_0x29c470['body'],{'raw':_0x29c470[_0x8a31('0x1a')]?_0x29c470[_0x8a31('0x1a')]['raw']===undefined?!![]:![]:!![]})[_0x8a31('0x1b')](function(_0xe2067d){logger[_0x8a31('0x1c')](_0x8a31('0x18'),_0x29c470);logger[_0x8a31('0x1d')](_0x8a31('0x18'),_0x29c470,JSON[_0x8a31('0x13')](_0xe2067d));_0x48e0c4(_0xe2067d);})[_0x8a31('0x17')](function(_0x315d87){logger[_0x8a31('0x14')]('CreateSmsMessage',_0x315d87[_0x8a31('0x16')],_0x29c470);_0x11ba57(_0x28cb62[_0x8a31('0x14')](0x1f4,_0x315d87[_0x8a31('0x16')]));});});};
\ No newline at end of file
+var _0xf0a2=['message','catch','SmsMessage','raw','CreateSmsMessage','stringify','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','redis','defaults','localhost','socket.io-emitter','./smsMessage.socket','then','info','request\x20sent','debug','SmsMessage,\x20%s,\x20%s,\x20%s','error','SmsMessage,\x20%s,\x20%s'];(function(_0x2d364e,_0x301c5e){var _0x1b9312=function(_0x1b05bb){while(--_0x1b05bb){_0x2d364e['push'](_0x2d364e['shift']());}};_0x1b9312(++_0x301c5e);}(_0xf0a2,0x92));var _0x2f0a=function(_0x55fdc4,_0x2771db){_0x55fdc4=_0x55fdc4-0x0;var _0x5f404a=_0xf0a2[_0x55fdc4];return _0x5f404a;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x2f0a('0x0'));var BPromise=require(_0x2f0a('0x1'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x2f0a('0x2'));var db=require(_0x2f0a('0x3'))['db'];var utils=require(_0x2f0a('0x4'));var logger=require(_0x2f0a('0x5'))(_0x2f0a('0x6'));var config=require(_0x2f0a('0x7'));var jayson=require('jayson/promise');var client=jayson[_0x2f0a('0x8')][_0x2f0a('0x9')]({'port':0x232a});config[_0x2f0a('0xa')]=_[_0x2f0a('0xb')](config[_0x2f0a('0xa')],{'host':_0x2f0a('0xc'),'port':0x18eb});var socket=require(_0x2f0a('0xd'))(new Redis(config[_0x2f0a('0xa')]));require(_0x2f0a('0xe'))['register'](socket);function respondWithRpcPromise(_0x1cba74,_0x4eef71,_0x11bc82){return new BPromise(function(_0x44ca01,_0x2f552e){return client['request'](_0x1cba74,_0x11bc82)[_0x2f0a('0xf')](function(_0xf9539d){logger[_0x2f0a('0x10')]('SmsMessage,\x20%s,\x20%s',_0x4eef71,_0x2f0a('0x11'));logger[_0x2f0a('0x12')](_0x2f0a('0x13'),_0x4eef71,'request\x20sent',JSON['stringify'](_0xf9539d));if(_0xf9539d[_0x2f0a('0x14')]){if(_0xf9539d['error']['code']===0x1f4){logger[_0x2f0a('0x14')](_0x2f0a('0x15'),_0x4eef71,_0xf9539d[_0x2f0a('0x14')][_0x2f0a('0x16')]);return _0x2f552e(_0xf9539d[_0x2f0a('0x14')][_0x2f0a('0x16')]);}logger[_0x2f0a('0x14')](_0x2f0a('0x15'),_0x4eef71,_0xf9539d['error'][_0x2f0a('0x16')]);return _0x44ca01(_0xf9539d[_0x2f0a('0x14')][_0x2f0a('0x16')]);}else{logger[_0x2f0a('0x10')](_0x2f0a('0x15'),_0x4eef71,'request\x20sent');_0x44ca01(_0xf9539d['result'][_0x2f0a('0x16')]);}})[_0x2f0a('0x17')](function(_0x5f99b6){logger['error'](_0x2f0a('0x15'),_0x4eef71,_0x5f99b6);_0x2f552e(_0x5f99b6);});});}exports['CreateSmsMessage']=function(_0x65b972){var _0x39444b=this;return new Promise(function(_0x1214ff,_0x57cbcc){return db[_0x2f0a('0x18')]['create'](_0x65b972['body'],{'raw':_0x65b972['options']?_0x65b972['options'][_0x2f0a('0x19')]===undefined?!![]:![]:!![]})[_0x2f0a('0xf')](function(_0x55ef33){logger[_0x2f0a('0x10')](_0x2f0a('0x1a'),_0x65b972);logger[_0x2f0a('0x12')]('CreateSmsMessage',_0x65b972,JSON[_0x2f0a('0x1b')](_0x55ef33));_0x1214ff(_0x55ef33);})[_0x2f0a('0x17')](function(_0x51ab81){logger[_0x2f0a('0x14')](_0x2f0a('0x1a'),_0x51ab81[_0x2f0a('0x16')],_0x65b972);_0x57cbcc(_0x39444b['error'](0x1f4,_0x51ab81[_0x2f0a('0x16')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x00c4=['register','length','./smsMessage.events','save','emit','removeListener'];(function(_0x13c413,_0x59021f){var _0x1e4c39=function(_0x13231d){while(--_0x13231d){_0x13c413['push'](_0x13c413['shift']());}};_0x1e4c39(++_0x59021f);}(_0x00c4,0x19a));var _0x400c=function(_0x3e45b1,_0x62c209){_0x3e45b1=_0x3e45b1-0x0;var _0x1ef1bf=_0x00c4[_0x3e45b1];return _0x1ef1bf;};'use strict';var SmsMessageEvents=require(_0x400c('0x0'));var events=[_0x400c('0x1'),'remove','update'];function createListener(_0x2c723f,_0x15970a){return function(_0x3ef0ab){_0x15970a[_0x400c('0x2')](_0x2c723f,_0x3ef0ab);};}function removeListener(_0x2f115d,_0x325e75){return function(){SmsMessageEvents[_0x400c('0x3')](_0x2f115d,_0x325e75);};}exports[_0x400c('0x4')]=function(_0x29a98c){for(var _0x3276f9=0x0,_0x216788=events[_0x400c('0x5')];_0x3276f9<_0x216788;_0x3276f9++){var _0x3a6a18=events[_0x3276f9];var _0x4f0852=createListener('smsMessage:'+_0x3a6a18,_0x29a98c);SmsMessageEvents['on'](_0x3a6a18,_0x4f0852);}};
\ No newline at end of file
+var _0xe738=['register','length','smsMessage:','./smsMessage.events','save','emit','removeListener'];(function(_0x27462a,_0x297f08){var _0x7bbf6b=function(_0x19589d){while(--_0x19589d){_0x27462a['push'](_0x27462a['shift']());}};_0x7bbf6b(++_0x297f08);}(_0xe738,0x1f4));var _0x8e73=function(_0x1969a7,_0x5a133a){_0x1969a7=_0x1969a7-0x0;var _0x3d665f=_0xe738[_0x1969a7];return _0x3d665f;};'use strict';var SmsMessageEvents=require(_0x8e73('0x0'));var events=[_0x8e73('0x1'),'remove','update'];function createListener(_0x3fb73b,_0x508c02){return function(_0x1b3d3b){_0x508c02[_0x8e73('0x2')](_0x3fb73b,_0x1b3d3b);};}function removeListener(_0x3df4a6,_0x5c191a){return function(){SmsMessageEvents[_0x8e73('0x3')](_0x3df4a6,_0x5c191a);};}exports[_0x8e73('0x4')]=function(_0x466a09){for(var _0x333d95=0x0,_0x39ea3d=events[_0x8e73('0x5')];_0x333d95<_0x39ea3d;_0x333d95++){var _0x461b43=events[_0x333d95];var _0x3e75ee=createListener(_0x8e73('0x6')+_0x461b43,_0x466a09);SmsMessageEvents['on'](_0x461b43,_0x3e75ee);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4fca=['/:id/teams','getTeams','/:id/users','getAgents','create','post','addTeams','addAgents','put','update','delete','destroy','removeAgents','exports','util','path','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./smsQueue.controller','get','isAuthenticated','index','/describe','/:id'];(function(_0x764874,_0x3ed544){var _0x29f9d5=function(_0x152dad){while(--_0x152dad){_0x764874['push'](_0x764874['shift']());}};_0x29f9d5(++_0x3ed544);}(_0x4fca,0x76));var _0xa4fc=function(_0x1e4ab1,_0x489327){_0x1e4ab1=_0x1e4ab1-0x0;var _0x4f3be9=_0x4fca[_0x1e4ab1];return _0x4f3be9;};'use strict';var multer=require('multer');var util=require(_0xa4fc('0x0'));var path=require(_0xa4fc('0x1'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0xa4fc('0x2')]();var fs_extra=require('fs-extra');var auth=require(_0xa4fc('0x3'));var interaction=require(_0xa4fc('0x4'));var config=require(_0xa4fc('0x5'));var controller=require(_0xa4fc('0x6'));router[_0xa4fc('0x7')]('/',auth[_0xa4fc('0x8')](),controller[_0xa4fc('0x9')]);router[_0xa4fc('0x7')](_0xa4fc('0xa'),auth[_0xa4fc('0x8')](),controller['describe']);router[_0xa4fc('0x7')](_0xa4fc('0xb'),auth[_0xa4fc('0x8')](),controller['show']);router[_0xa4fc('0x7')]('/:id/members',auth[_0xa4fc('0x8')](),controller['getMembers']);router[_0xa4fc('0x7')](_0xa4fc('0xc'),auth['isAuthenticated'](),controller[_0xa4fc('0xd')]);router[_0xa4fc('0x7')](_0xa4fc('0xe'),auth[_0xa4fc('0x8')](),controller[_0xa4fc('0xf')]);router['post']('/',auth[_0xa4fc('0x8')](),controller[_0xa4fc('0x10')]);router[_0xa4fc('0x11')](_0xa4fc('0xc'),auth[_0xa4fc('0x8')](),controller[_0xa4fc('0x12')]);router[_0xa4fc('0x11')](_0xa4fc('0xe'),auth[_0xa4fc('0x8')](),controller[_0xa4fc('0x13')]);router[_0xa4fc('0x14')]('/:id',auth[_0xa4fc('0x8')](),controller[_0xa4fc('0x15')]);router[_0xa4fc('0x16')](_0xa4fc('0xb'),auth[_0xa4fc('0x8')](),controller[_0xa4fc('0x17')]);router[_0xa4fc('0x16')](_0xa4fc('0xc'),auth['isAuthenticated'](),controller['removeTeams']);router[_0xa4fc('0x16')](_0xa4fc('0xe'),auth[_0xa4fc('0x8')](),controller[_0xa4fc('0x18')]);module[_0xa4fc('0x19')]=router;
\ No newline at end of file
+var _0x902f=['/:id','/:id/members','/:id/teams','getTeams','create','post','addTeams','/:id/users','put','update','delete','removeTeams','exports','multer','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./smsQueue.controller','isAuthenticated','index','get','/describe','describe'];(function(_0x30508d,_0x15fee6){var _0x5ba9b7=function(_0x4a35d3){while(--_0x4a35d3){_0x30508d['push'](_0x30508d['shift']());}};_0x5ba9b7(++_0x15fee6);}(_0x902f,0x16c));var _0xf902=function(_0x4576de,_0x2f8141){_0x4576de=_0x4576de-0x0;var _0x3c04a7=_0x902f[_0x4576de];return _0x3c04a7;};'use strict';var multer=require(_0xf902('0x0'));var util=require('util');var path=require(_0xf902('0x1'));var timeout=require(_0xf902('0x2'));var express=require(_0xf902('0x3'));var router=express[_0xf902('0x4')]();var fs_extra=require(_0xf902('0x5'));var auth=require(_0xf902('0x6'));var interaction=require(_0xf902('0x7'));var config=require('../../config/environment');var controller=require(_0xf902('0x8'));router['get']('/',auth[_0xf902('0x9')](),controller[_0xf902('0xa')]);router[_0xf902('0xb')](_0xf902('0xc'),auth[_0xf902('0x9')](),controller[_0xf902('0xd')]);router['get'](_0xf902('0xe'),auth[_0xf902('0x9')](),controller['show']);router['get'](_0xf902('0xf'),auth[_0xf902('0x9')](),controller['getMembers']);router['get'](_0xf902('0x10'),auth['isAuthenticated'](),controller[_0xf902('0x11')]);router['get']('/:id/users',auth[_0xf902('0x9')](),controller['getAgents']);router['post']('/',auth['isAuthenticated'](),controller[_0xf902('0x12')]);router[_0xf902('0x13')](_0xf902('0x10'),auth['isAuthenticated'](),controller[_0xf902('0x14')]);router[_0xf902('0x13')](_0xf902('0x15'),auth[_0xf902('0x9')](),controller['addAgents']);router[_0xf902('0x16')](_0xf902('0xe'),auth[_0xf902('0x9')](),controller[_0xf902('0x17')]);router[_0xf902('0x18')](_0xf902('0xe'),auth[_0xf902('0x9')](),controller['destroy']);router[_0xf902('0x18')](_0xf902('0x10'),auth[_0xf902('0x9')](),controller[_0xf902('0x19')]);router[_0xf902('0x18')](_0xf902('0x15'),auth[_0xf902('0x9')](),controller['removeAgents']);module[_0xf902('0x1a')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa1c8=['exports','STRING','name','INTEGER','ENUM','rrmemory','beepall','sequelize'];(function(_0x902455,_0xe9df75){var _0x58aafe=function(_0x288f81){while(--_0x288f81){_0x902455['push'](_0x902455['shift']());}};_0x58aafe(++_0xe9df75);}(_0xa1c8,0xdf));var _0x8a1c=function(_0x35885a,_0x42fed7){_0x35885a=_0x35885a-0x0;var _0xe86249=_0xa1c8[_0x35885a];return _0xe86249;};'use strict';var Sequelize=require(_0x8a1c('0x0'));module[_0x8a1c('0x1')]={'name':{'type':Sequelize[_0x8a1c('0x2')],'unique':_0x8a1c('0x3'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize[_0x8a1c('0x2')]},'timeout':{'type':Sequelize[_0x8a1c('0x4')],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0x8a1c('0x5')](_0x8a1c('0x6'),_0x8a1c('0x7'),'roundrobin')}};
\ No newline at end of file
+var _0x1436=['sequelize','STRING','name','INTEGER','ENUM','rrmemory','beepall','roundrobin'];(function(_0x421257,_0x4b98a4){var _0x4a3604=function(_0x4ec164){while(--_0x4ec164){_0x421257['push'](_0x421257['shift']());}};_0x4a3604(++_0x4b98a4);}(_0x1436,0x78));var _0x6143=function(_0x42cae2,_0x284ef8){_0x42cae2=_0x42cae2-0x0;var _0x5f256f=_0x1436[_0x42cae2];return _0x5f256f;};'use strict';var Sequelize=require(_0x6143('0x0'));module['exports']={'name':{'type':Sequelize[_0x6143('0x1')],'unique':_0x6143('0x2'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize['STRING']},'timeout':{'type':Sequelize[_0x6143('0x3')],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0x6143('0x4')](_0x6143('0x5'),_0x6143('0x6'),_0x6143('0x7'))}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1c63=['order','sort','where','pick','filter','merge','options','includeAll','include','findAll','rows','catch','show','params','length','create','body','user','get','SmsQueues','UserProfileSection','find','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','getMembers','findOne','UserSmsQueue','hasOwnProperty','SmsQueueId','UserId','agent','smsPause','updatedAt','createdAt','format','%s/%s','SIP','getTeams','Team','ids','User','Agents','online','voicePause','interface','flatMap','sequelize','transaction','findOrCreate','forEach','emit','userSmsQueue:save','removeTeams','select','field','tq.TeamId','from','team_has_sms_queues','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','clone','ut.UserId\x20=\x20?','push','QueryTypes','every','TeamId','includes','all','union','compact','value','isEmpty','userSmsQueue:remove','addAgents','omit','removeAgents','isArray','getAgents','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../config/license/util','redis','defaults','localhost','socket.io-emitter','register','sendStatus','json','offset','undefined','limit','count','status','Content-Range','apply','reject','destroy','then','end','error','stack','name','index','SmsQueue','rawAttributes','fieldName','type','key','model','map','query','keys','filters','intersection','attributes','fields','nolimit'];(function(_0x109810,_0x16ff77){var _0x5779c4=function(_0x7173a8){while(--_0x7173a8){_0x109810['push'](_0x109810['shift']());}};_0x5779c4(++_0x16ff77);}(_0x1c63,0xdc));var _0x31c6=function(_0x4b87dc,_0x65bfba){_0x4b87dc=_0x4b87dc-0x0;var _0x4c3b12=_0x1c63[_0x4b87dc];return _0x4c3b12;};'use strict';var emlformat=require(_0x31c6('0x0'));var rimraf=require(_0x31c6('0x1'));var zipdir=require(_0x31c6('0x2'));var jsonpatch=require(_0x31c6('0x3'));var rp=require('request-promise');var moment=require(_0x31c6('0x4'));var BPromise=require(_0x31c6('0x5'));var Mustache=require(_0x31c6('0x6'));var util=require('util');var path=require(_0x31c6('0x7'));var sox=require(_0x31c6('0x8'));var csv=require(_0x31c6('0x9'));var ejs=require(_0x31c6('0xa'));var fs=require('fs');var fs_extra=require(_0x31c6('0xb'));var _=require('lodash');var squel=require('squel');var crypto=require(_0x31c6('0xc'));var jsforce=require(_0x31c6('0xd'));var deskjs=require(_0x31c6('0xe'));var toCsv=require(_0x31c6('0x9'));var querystring=require(_0x31c6('0xf'));var Papa=require('papaparse');var Redis=require(_0x31c6('0x10'));var authService=require(_0x31c6('0x11'));var qs=require(_0x31c6('0x12'));var as=require(_0x31c6('0x13'));var hardwareService=require(_0x31c6('0x14'));var logger=require('../../config/logger')(_0x31c6('0x15'));var utils=require('../../config/utils');var config=require(_0x31c6('0x16'));var licenseUtil=require(_0x31c6('0x17'));var db=require('../../mysqldb')['db'];config[_0x31c6('0x18')]=_[_0x31c6('0x19')](config[_0x31c6('0x18')],{'host':_0x31c6('0x1a'),'port':0x18eb});var socket=require(_0x31c6('0x1b'))(new Redis(config[_0x31c6('0x18')]));require('./smsQueue.socket')[_0x31c6('0x1c')](socket);function respondWithStatusCode(_0x3995cc,_0x42c611){_0x42c611=_0x42c611||0xcc;return function(_0x28dbc9){if(_0x28dbc9){return _0x3995cc[_0x31c6('0x1d')](_0x42c611);}return _0x3995cc['status'](_0x42c611)['end']();};}function respondWithResult(_0x497264,_0x527b48){_0x527b48=_0x527b48||0xc8;return function(_0x3766df){if(_0x3766df){return _0x497264['status'](_0x527b48)[_0x31c6('0x1e')](_0x3766df);}};}function respondWithFilteredResult(_0x2a4780,_0x43b5cb){return function(_0xf352af){if(_0xf352af){var _0x20f9a2=typeof _0x43b5cb[_0x31c6('0x1f')]===_0x31c6('0x20')&&typeof _0x43b5cb[_0x31c6('0x21')]==='undefined';var _0x593d2b=_0xf352af['count'];var _0x9f02ae=_0x20f9a2?0x0:_0x43b5cb[_0x31c6('0x1f')];var _0x58dce5=_0x20f9a2?_0xf352af[_0x31c6('0x22')]:_0x43b5cb['offset']+_0x43b5cb['limit'];var _0x4070f6;if(_0x58dce5>=_0x593d2b){_0x58dce5=_0x593d2b;_0x4070f6=0xc8;}else{_0x4070f6=0xce;}_0x2a4780[_0x31c6('0x23')](_0x4070f6);return _0x2a4780['set'](_0x31c6('0x24'),_0x9f02ae+'-'+_0x58dce5+'/'+_0x593d2b)[_0x31c6('0x1e')](_0xf352af);}return null;};}function patchUpdates(_0x392723){return function(_0x4632f6){try{jsonpatch[_0x31c6('0x25')](_0x4632f6,_0x392723,!![]);}catch(_0x509bed){return BPromise[_0x31c6('0x26')](_0x509bed);}return _0x4632f6['save']();};}function saveUpdates(_0x8773d4,_0x178973){return function(_0x5cc043){if(_0x5cc043){return _0x5cc043['update'](_0x8773d4)['then'](function(_0x412a8a){return _0x412a8a;});}return null;};}function removeEntity(_0x250ab1,_0x551291){return function(_0x8a608b){if(_0x8a608b){return _0x8a608b[_0x31c6('0x27')]()[_0x31c6('0x28')](function(){var _0x2fb5f3=_0x8a608b['get']({'plain':!![]});var _0x542209='SmsQueues';return db['UserProfileResource'][_0x31c6('0x27')]({'where':{'type':_0x542209,'resourceId':_0x2fb5f3['id']}})['then'](function(){return _0x8a608b;});})['then'](function(){_0x250ab1[_0x31c6('0x23')](0xcc)[_0x31c6('0x29')]();});}};}function handleEntityNotFound(_0x5e3ed0,_0x41100c){return function(_0x47a0cd){if(!_0x47a0cd){_0x5e3ed0[_0x31c6('0x1d')](0x194);}return _0x47a0cd;};}function handleError(_0x3443d8,_0x58089d){_0x58089d=_0x58089d||0x1f4;return function(_0x1d114e){logger[_0x31c6('0x2a')](_0x1d114e[_0x31c6('0x2b')]);if(_0x1d114e[_0x31c6('0x2c')]){delete _0x1d114e[_0x31c6('0x2c')];}_0x3443d8[_0x31c6('0x23')](_0x58089d)['send'](_0x1d114e);};}exports[_0x31c6('0x2d')]=function(_0x41c4bb,_0x49fda2){var _0x3cdf2c={},_0x2fe1fb={},_0x5a0f56={'count':0x0,'rows':[]};var _0x4d9d78=_['map'](db[_0x31c6('0x2e')][_0x31c6('0x2f')],function(_0x4fc40b){return{'name':_0x4fc40b[_0x31c6('0x30')],'type':_0x4fc40b[_0x31c6('0x31')][_0x31c6('0x32')]};});_0x2fe1fb[_0x31c6('0x33')]=_[_0x31c6('0x34')](_0x4d9d78,'name');_0x2fe1fb[_0x31c6('0x35')]=_[_0x31c6('0x36')](_0x41c4bb[_0x31c6('0x35')]);_0x2fe1fb[_0x31c6('0x37')]=_[_0x31c6('0x38')](_0x2fe1fb[_0x31c6('0x33')],_0x2fe1fb[_0x31c6('0x35')]);_0x3cdf2c[_0x31c6('0x39')]=_[_0x31c6('0x38')](_0x2fe1fb['model'],qs[_0x31c6('0x3a')](_0x41c4bb[_0x31c6('0x35')]['fields']));_0x3cdf2c[_0x31c6('0x39')]=_0x3cdf2c[_0x31c6('0x39')]['length']?_0x3cdf2c[_0x31c6('0x39')]:_0x2fe1fb[_0x31c6('0x33')];if(!_0x41c4bb[_0x31c6('0x35')]['hasOwnProperty'](_0x31c6('0x3b'))){_0x3cdf2c['limit']=qs[_0x31c6('0x21')](_0x41c4bb[_0x31c6('0x35')][_0x31c6('0x21')]);_0x3cdf2c['offset']=qs[_0x31c6('0x1f')](_0x41c4bb[_0x31c6('0x35')][_0x31c6('0x1f')]);}_0x3cdf2c[_0x31c6('0x3c')]=qs['sort'](_0x41c4bb['query'][_0x31c6('0x3d')]);_0x3cdf2c[_0x31c6('0x3e')]=qs[_0x31c6('0x37')](_[_0x31c6('0x3f')](_0x41c4bb[_0x31c6('0x35')],_0x2fe1fb[_0x31c6('0x37')]),_0x4d9d78);if(_0x41c4bb[_0x31c6('0x35')][_0x31c6('0x40')]){_0x3cdf2c[_0x31c6('0x3e')]=_[_0x31c6('0x41')](_0x3cdf2c['where'],{'$or':_[_0x31c6('0x34')](_0x4d9d78,function(_0xda4ebd){if(_0xda4ebd['type']!=='VIRTUAL'){var _0x45b0f3={};_0x45b0f3[_0xda4ebd[_0x31c6('0x2c')]]={'$like':'%'+_0x41c4bb[_0x31c6('0x35')][_0x31c6('0x40')]+'%'};return _0x45b0f3;}})});}_0x3cdf2c=_[_0x31c6('0x41')]({},_0x3cdf2c,_0x41c4bb[_0x31c6('0x42')]);var _0x5c7591={'where':_0x3cdf2c['where']};return db[_0x31c6('0x2e')]['count'](_0x5c7591)[_0x31c6('0x28')](function(_0x1f0b73){_0x5a0f56['count']=_0x1f0b73;if(_0x41c4bb[_0x31c6('0x35')][_0x31c6('0x43')]){_0x3cdf2c[_0x31c6('0x44')]=[{'all':!![]}];}return db[_0x31c6('0x2e')][_0x31c6('0x45')](_0x3cdf2c);})[_0x31c6('0x28')](function(_0x562ddb){_0x5a0f56[_0x31c6('0x46')]=_0x562ddb;return _0x5a0f56;})[_0x31c6('0x28')](respondWithFilteredResult(_0x49fda2,_0x3cdf2c))[_0x31c6('0x47')](handleError(_0x49fda2,null));};exports[_0x31c6('0x48')]=function(_0x2c5d69,_0x573dc9){var _0x33a346={'raw':!![],'where':{'id':_0x2c5d69[_0x31c6('0x49')]['id']}},_0x9ef17b={};_0x9ef17b[_0x31c6('0x33')]=_['keys'](db[_0x31c6('0x2e')]['rawAttributes']);_0x9ef17b[_0x31c6('0x35')]=_[_0x31c6('0x36')](_0x2c5d69[_0x31c6('0x35')]);_0x9ef17b[_0x31c6('0x37')]=_[_0x31c6('0x38')](_0x9ef17b['model'],_0x9ef17b[_0x31c6('0x35')]);_0x33a346[_0x31c6('0x39')]=_[_0x31c6('0x38')](_0x9ef17b[_0x31c6('0x33')],qs[_0x31c6('0x3a')](_0x2c5d69[_0x31c6('0x35')]['fields']));_0x33a346[_0x31c6('0x39')]=_0x33a346['attributes'][_0x31c6('0x4a')]?_0x33a346['attributes']:_0x9ef17b['model'];if(_0x2c5d69[_0x31c6('0x35')][_0x31c6('0x43')]){_0x33a346['include']=[{'all':!![]}];}_0x33a346=_[_0x31c6('0x41')]({},_0x33a346,_0x2c5d69[_0x31c6('0x42')]);return db[_0x31c6('0x2e')]['find'](_0x33a346)['then'](handleEntityNotFound(_0x573dc9,null))[_0x31c6('0x28')](respondWithResult(_0x573dc9,null))[_0x31c6('0x47')](handleError(_0x573dc9,null));};exports[_0x31c6('0x4b')]=function(_0x344192,_0xbb1229){return db[_0x31c6('0x2e')][_0x31c6('0x4b')](_0x344192[_0x31c6('0x4c')],{})[_0x31c6('0x28')](function(_0x10f5b1){var _0x173bcc=_0x344192[_0x31c6('0x4d')]['get']({'plain':!![]});if(!_0x173bcc)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x173bcc['role']===_0x31c6('0x4d')){var _0x19e155=_0x10f5b1[_0x31c6('0x4e')]({'plain':!![]});var _0x433a63=_0x31c6('0x4f');return db[_0x31c6('0x50')][_0x31c6('0x51')]({'where':{'name':_0x433a63,'userProfileId':_0x173bcc['userProfileId']},'raw':!![]})['then'](function(_0x6a00fe){if(_0x6a00fe&&_0x6a00fe[_0x31c6('0x52')]===0x0){return db[_0x31c6('0x53')][_0x31c6('0x4b')]({'name':_0x19e155['name'],'resourceId':_0x19e155['id'],'type':_0x6a00fe[_0x31c6('0x2c')],'sectionId':_0x6a00fe['id']},{})[_0x31c6('0x28')](function(){return _0x10f5b1;});}else{return _0x10f5b1;}})['catch'](function(_0x4eabd8){logger['error'](_0x31c6('0x54'),_0x4eabd8);throw _0x4eabd8;});}return _0x10f5b1;})[_0x31c6('0x28')](respondWithResult(_0xbb1229,0xc9))[_0x31c6('0x47')](handleError(_0xbb1229,null));};exports[_0x31c6('0x55')]=function(_0x4c2040,_0x494723){if(_0x4c2040[_0x31c6('0x4c')]['id']){delete _0x4c2040[_0x31c6('0x4c')]['id'];}return db['SmsQueue']['find']({'where':{'id':_0x4c2040[_0x31c6('0x49')]['id']}})['then'](handleEntityNotFound(_0x494723,null))[_0x31c6('0x28')](saveUpdates(_0x4c2040[_0x31c6('0x4c')],null))[_0x31c6('0x28')](respondWithResult(_0x494723,null))['catch'](handleError(_0x494723,null));};exports['destroy']=function(_0x5d71b8,_0x542e50){return db[_0x31c6('0x2e')]['find']({'where':{'id':_0x5d71b8[_0x31c6('0x49')]['id']}})[_0x31c6('0x28')](handleEntityNotFound(_0x542e50,null))[_0x31c6('0x28')](removeEntity(_0x542e50,null))[_0x31c6('0x47')](handleError(_0x542e50,null));};exports['describe']=function(_0x1941b3,_0x4bc617){return db[_0x31c6('0x2e')]['describe']()[_0x31c6('0x28')](respondWithResult(_0x4bc617,null))[_0x31c6('0x47')](handleError(_0x4bc617,null));};exports[_0x31c6('0x56')]=function(_0x517db1,_0x378c12,_0x1229cb){var _0x739588={'raw':!![],'where':{}},_0x386bab={},_0x97c1d2;return db['SmsQueue'][_0x31c6('0x57')]({'where':{'id':_0x517db1[_0x31c6('0x49')]['id']}})['then'](handleEntityNotFound(_0x378c12,null))['then'](function(_0x3a0bcb){if(_0x3a0bcb){_0x97c1d2=_0x3a0bcb[_0x31c6('0x4e')]({'plain':!![]});_0x386bab['model']=_['keys'](db[_0x31c6('0x58')]['rawAttributes']);_0x386bab[_0x31c6('0x35')]=_[_0x31c6('0x36')](_0x517db1[_0x31c6('0x35')]);_0x386bab[_0x31c6('0x37')]=_[_0x31c6('0x38')](_0x386bab[_0x31c6('0x33')],_0x386bab[_0x31c6('0x35')]);_0x739588[_0x31c6('0x39')]=_[_0x31c6('0x38')](_0x386bab['model'],qs[_0x31c6('0x3a')](_0x517db1[_0x31c6('0x35')]['fields']));_0x739588[_0x31c6('0x39')]=_0x739588[_0x31c6('0x39')][_0x31c6('0x4a')]?_0x739588[_0x31c6('0x39')]:_0x386bab[_0x31c6('0x33')];if(!_0x517db1[_0x31c6('0x35')][_0x31c6('0x59')](_0x31c6('0x3b'))){_0x739588['limit']=qs[_0x31c6('0x21')](_0x517db1[_0x31c6('0x35')][_0x31c6('0x21')]);_0x739588[_0x31c6('0x1f')]=qs[_0x31c6('0x1f')](_0x517db1[_0x31c6('0x35')]['offset']);}_0x739588[_0x31c6('0x3c')]=qs[_0x31c6('0x3d')](_0x517db1['query'][_0x31c6('0x3d')]);_0x739588[_0x31c6('0x3e')]=qs[_0x31c6('0x37')](_['pick'](_0x517db1[_0x31c6('0x35')],_0x386bab[_0x31c6('0x37')]));_0x739588['where'][_0x31c6('0x5a')]=_0x3a0bcb['id'];if(_0x517db1[_0x31c6('0x35')]['filter']){_0x739588[_0x31c6('0x3e')]=_[_0x31c6('0x41')](_0x739588[_0x31c6('0x3e')],{'$or':_[_0x31c6('0x34')](_0x739588[_0x31c6('0x39')],function(_0x56f017){var _0xa9d97d={};_0xa9d97d[_0x56f017]={'$like':'%'+_0x517db1[_0x31c6('0x35')]['filter']+'%'};return _0xa9d97d;})});}_0x739588=_['merge']({},_0x739588,_0x517db1['options']);return db[_0x31c6('0x58')][_0x31c6('0x45')](_0x739588);}})[_0x31c6('0x28')](function(_0x55d404){if(_0x55d404){return db['User']['findAndCountAll']({'where':{'id':_['map'](_0x55d404,_0x31c6('0x5b')),'role':_0x31c6('0x5c')},'attributes':['id',_0x31c6('0x2c'),_0x31c6('0x5d'),_0x31c6('0x5e'),_0x31c6('0x5f')]});}})['then'](function(_0x12becb){if(_0x12becb){return{'count':_0x12becb[_0x31c6('0x22')],'rows':_[_0x31c6('0x34')](_0x12becb[_0x31c6('0x46')],function(_0x31d73b){return{'membername':_0x31d73b[_0x31c6('0x2c')],'UserId':_0x31d73b['id'],'queue_name':_0x97c1d2['name'],'SmsQueueId':_0x97c1d2['id'],'interface':util[_0x31c6('0x60')](_0x31c6('0x61'),_0x31c6('0x62'),_0x31d73b['name']),'penalty':0x0,'paused':_0x31d73b[_0x31c6('0x5d')],'createdAt':_0x31d73b['createdAt'],'updatedAt':_0x31d73b[_0x31c6('0x5e')]};})};}else{return{'count':0x0,'rows':[]};}})[_0x31c6('0x28')](respondWithFilteredResult(_0x378c12,_0x739588))['catch'](handleError(_0x378c12,null));};exports[_0x31c6('0x63')]=function(_0x5749e8,_0x5130f5,_0x59d255){var _0x47efe7={};var _0x4c0faa={};var _0x37b220;var _0x3d93c3;return db['SmsQueue'][_0x31c6('0x57')]({'where':{'id':_0x5749e8[_0x31c6('0x49')]['id']}})['then'](handleEntityNotFound(_0x5130f5,null))['then'](function(_0x2e97d5){if(_0x2e97d5){_0x37b220=_0x2e97d5;_0x4c0faa[_0x31c6('0x33')]=_[_0x31c6('0x36')](db[_0x31c6('0x64')][_0x31c6('0x2f')]);_0x4c0faa[_0x31c6('0x35')]=_[_0x31c6('0x36')](_0x5749e8[_0x31c6('0x35')]);_0x4c0faa['filters']=_[_0x31c6('0x38')](_0x4c0faa['model'],_0x4c0faa[_0x31c6('0x35')]);_0x47efe7[_0x31c6('0x39')]=_[_0x31c6('0x38')](_0x4c0faa[_0x31c6('0x33')],qs[_0x31c6('0x3a')](_0x5749e8['query']['fields']));_0x47efe7[_0x31c6('0x39')]=_0x47efe7['attributes'][_0x31c6('0x4a')]?_0x47efe7[_0x31c6('0x39')]:_0x4c0faa[_0x31c6('0x33')];_0x47efe7['order']=qs[_0x31c6('0x3d')](_0x5749e8[_0x31c6('0x35')][_0x31c6('0x3d')]);_0x47efe7[_0x31c6('0x3e')]=qs[_0x31c6('0x37')](_[_0x31c6('0x3f')](_0x5749e8[_0x31c6('0x35')],_0x4c0faa[_0x31c6('0x37')]));if(_0x5749e8[_0x31c6('0x35')][_0x31c6('0x40')]){_0x47efe7[_0x31c6('0x3e')]=_[_0x31c6('0x41')](_0x47efe7['where'],{'$or':_[_0x31c6('0x34')](_0x47efe7[_0x31c6('0x39')],function(_0x4a6472){var _0x328eee={};_0x328eee[_0x4a6472]={'$like':'%'+_0x5749e8['query'][_0x31c6('0x40')]+'%'};return _0x328eee;})});}_0x47efe7=_[_0x31c6('0x41')]({},_0x47efe7,_0x5749e8[_0x31c6('0x42')]);return _0x37b220[_0x31c6('0x63')](_0x47efe7);}})[_0x31c6('0x28')](function(_0x3b6aa8){if(_0x3b6aa8){_0x3d93c3=_0x3b6aa8[_0x31c6('0x4a')];if(!_0x5749e8[_0x31c6('0x35')][_0x31c6('0x59')](_0x31c6('0x3b'))){_0x47efe7[_0x31c6('0x21')]=qs[_0x31c6('0x21')](_0x5749e8[_0x31c6('0x35')][_0x31c6('0x21')]);_0x47efe7['offset']=qs[_0x31c6('0x1f')](_0x5749e8[_0x31c6('0x35')][_0x31c6('0x1f')]);}return _0x37b220[_0x31c6('0x63')](_0x47efe7);}})['then'](function(_0x25d232){if(_0x25d232){return _0x25d232?{'count':_0x3d93c3,'rows':_0x25d232}:null;}})[_0x31c6('0x28')](respondWithResult(_0x5130f5,null))[_0x31c6('0x47')](handleError(_0x5130f5,null));};exports['addTeams']=function(_0x2f1756,_0x26a9dd,_0x2620e7){var _0x4a7339=_0x2f1756[_0x31c6('0x4c')][_0x31c6('0x65')];return db[_0x31c6('0x64')][_0x31c6('0x45')]({'where':{'id':_0x4a7339},'attributes':['id'],'include':[{'model':db[_0x31c6('0x66')],'as':_0x31c6('0x67'),'attributes':['id',_0x31c6('0x2c'),_0x31c6('0x68'),_0x31c6('0x69'),_0x31c6('0x6a')],'raw':!![]}]})['then'](function(_0x321d29){if(_0x321d29){var _0x4cfbe8=_[_0x31c6('0x6b')](_0x321d29,function(_0x57e52d){var _0x2ce3db=_0x57e52d[_0x31c6('0x4e')]({'plain':!![]});return _0x2ce3db['Agents'];});return db[_0x31c6('0x2e')][_0x31c6('0x51')]({'where':{'id':_0x2f1756[_0x31c6('0x49')]['id']}})['then'](function(_0x1d81a6){return db[_0x31c6('0x6c')][_0x31c6('0x6d')](function(_0x4c705f){return _0x1d81a6['addTeams'](_0x4a7339,{'transaction':_0x4c705f})[_0x31c6('0x28')](function(){return BPromise['each'](_0x4cfbe8,function(_0x2d5751){return db[_0x31c6('0x58')][_0x31c6('0x6e')]({'where':{'UserId':_0x2d5751['id'],'SmsQueueId':_0x2f1756[_0x31c6('0x49')]['id']},'transaction':_0x4c705f});});})[_0x31c6('0x28')](function(){_0x4cfbe8[_0x31c6('0x6f')](function(_0x28f922){socket[_0x31c6('0x70')](_0x31c6('0x71'),{'UserId':_0x28f922['id'],'SmsQueueId':_0x1d81a6['id']});});});});});}})[_0x31c6('0x28')](respondWithStatusCode(_0x26a9dd,null))[_0x31c6('0x47')](handleError(_0x26a9dd,null));};exports[_0x31c6('0x72')]=function(_0x2a59d3,_0x150cee,_0x40e8b1){return db['Team'][_0x31c6('0x45')]({'where':{'id':_0x2a59d3['query']['ids']},'attributes':['id'],'include':[{'model':db[_0x31c6('0x66')],'as':_0x31c6('0x67'),'attributes':['id'],'raw':!![]}]})['then'](handleEntityNotFound(_0x150cee,null))[_0x31c6('0x28')](function(_0x22c68c){var _0x353f29=_[_0x31c6('0x34')](_0x22c68c,'id');var _0x10d9cd=[];var _0x434200=[];var _0x28144b=squel[_0x31c6('0x73')]();_0x28144b[_0x31c6('0x74')](_0x31c6('0x75'))[_0x31c6('0x76')](_0x31c6('0x77'),'tq')['join'](_0x31c6('0x78'),'ut',_0x31c6('0x79'))[_0x31c6('0x3e')]('SmsQueueId\x20=\x20?',_0x2a59d3[_0x31c6('0x49')]['id']);for(var _0x7f47e=0x0;_0x7f47e<_0x22c68c[_0x31c6('0x4a')];_0x7f47e+=0x1){let _0x5236af=_0x22c68c[_0x7f47e];for(var _0x43c36d=0x0;_0x43c36d<_0x5236af[_0x31c6('0x67')][_0x31c6('0x4a')];_0x43c36d+=0x1){let _0x5728ce=_0x5236af[_0x31c6('0x67')][_0x43c36d];var _0x323107=_0x28144b[_0x31c6('0x7a')]();_0x323107['where'](_0x31c6('0x7b'),_0x5728ce['id']);_0x434200[_0x31c6('0x7c')](db[_0x31c6('0x6c')]['query'](_0x323107['toString'](),{'type':db[_0x31c6('0x6c')][_0x31c6('0x7d')]['SELECT']})['then'](function(_0xee4de8){if(_0xee4de8[_0x31c6('0x4a')]===0x1){return _0x5728ce['id'];}else{var _0x4da80d=_[_0x31c6('0x7e')](_['map'](_0xee4de8,_0x31c6('0x7f')),function(_0x4ca707){return _[_0x31c6('0x80')](_0x353f29,_0x4ca707);});if(_0x4da80d){return _0x5728ce['id'];}}}));}}return BPromise[_0x31c6('0x81')](_0x434200)[_0x31c6('0x28')](function(_0x184408){_0x10d9cd=_(_0x10d9cd)[_0x31c6('0x82')](_0x184408)[_0x31c6('0x83')]()[_0x31c6('0x84')]();return db['SmsQueue'][_0x31c6('0x51')]({'where':{'id':_0x2a59d3[_0x31c6('0x49')]['id']}})[_0x31c6('0x28')](function(_0x1024e1){return db[_0x31c6('0x6c')][_0x31c6('0x6d')](function(_0x7c86b0){return _0x1024e1[_0x31c6('0x72')](_0x2a59d3[_0x31c6('0x35')][_0x31c6('0x65')],{'transaction':_0x7c86b0})[_0x31c6('0x28')](function(){if(!_[_0x31c6('0x85')](_0x10d9cd)){return _0x1024e1['removeAgents'](_0x10d9cd,{'transaction':_0x7c86b0});}})[_0x31c6('0x28')](function(){_0x10d9cd[_0x31c6('0x6f')](function(_0x3e96bb){socket[_0x31c6('0x70')](_0x31c6('0x86'),{'UserId':_0x3e96bb,'SmsQueueId':_0x1024e1['id']});});});});});});})['then'](respondWithStatusCode(_0x150cee,null))[_0x31c6('0x47')](handleError(_0x150cee,null));};exports[_0x31c6('0x87')]=function(_0x1852b4,_0x1ebb80,_0x260e36){return db[_0x31c6('0x2e')][_0x31c6('0x51')]({'where':{'id':_0x1852b4['params']['id']}})['then'](handleEntityNotFound(_0x1ebb80,null))[_0x31c6('0x28')](function(_0x29a017){if(_0x29a017){return _0x29a017['addAgents'](_0x1852b4[_0x31c6('0x4c')][_0x31c6('0x65')],_[_0x31c6('0x88')](_0x1852b4[_0x31c6('0x4c')],['ids','id'])||{})['spread'](function(_0x3f04ca){for(var _0x3cd527=0x0;_0x3cd527<_0x1852b4[_0x31c6('0x4c')]['ids']['length'];_0x3cd527+=0x1){socket[_0x31c6('0x70')](_0x31c6('0x71'),{'UserId':Number(_0x1852b4[_0x31c6('0x4c')][_0x31c6('0x65')][_0x3cd527]),'SmsQueueId':Number(_0x1852b4[_0x31c6('0x49')]['id'])});}return _0x3f04ca;});}})[_0x31c6('0x28')](respondWithResult(_0x1ebb80,null))[_0x31c6('0x47')](handleError(_0x1ebb80,null));};exports[_0x31c6('0x89')]=function(_0x283f11,_0x1fd44f,_0x17a785){return db['SmsQueue'][_0x31c6('0x51')]({'where':{'id':_0x283f11['params']['id']}})[_0x31c6('0x28')](handleEntityNotFound(_0x1fd44f,null))[_0x31c6('0x28')](function(_0x320135){if(_0x320135){return _0x320135['removeAgents'](_0x283f11[_0x31c6('0x35')][_0x31c6('0x65')])[_0x31c6('0x28')](function(){if(_[_0x31c6('0x8a')](_0x283f11['query'][_0x31c6('0x65')])){for(var _0x1d257a=0x0;_0x1d257a<_0x283f11[_0x31c6('0x35')]['ids'][_0x31c6('0x4a')];_0x1d257a+=0x1){socket['emit'](_0x31c6('0x86'),{'UserId':Number(_0x283f11[_0x31c6('0x35')][_0x31c6('0x65')][_0x1d257a]),'SmsQueueId':Number(_0x283f11[_0x31c6('0x49')]['id'])});}}else{socket[_0x31c6('0x70')]('userSmsQueue:remove',{'UserId':Number(_0x283f11[_0x31c6('0x35')][_0x31c6('0x65')]),'SmsQueueId':Number(_0x283f11['params']['id'])});}});}})[_0x31c6('0x28')](respondWithStatusCode(_0x1fd44f,null))['catch'](handleError(_0x1fd44f,null));};exports[_0x31c6('0x8b')]=function(_0x5b5212,_0x235ca8,_0x4bcd3c){var _0x216dab={};var _0x49a053={};var _0x535ea8;var _0x3962bf;return db['SmsQueue']['findOne']({'where':{'id':_0x5b5212[_0x31c6('0x49')]['id']}})['then'](handleEntityNotFound(_0x235ca8,null))[_0x31c6('0x28')](function(_0x8d7b78){if(_0x8d7b78){_0x535ea8=_0x8d7b78;_0x49a053[_0x31c6('0x33')]=_[_0x31c6('0x36')](db[_0x31c6('0x66')][_0x31c6('0x2f')]);_0x49a053[_0x31c6('0x35')]=_[_0x31c6('0x36')](_0x5b5212[_0x31c6('0x35')]);_0x49a053[_0x31c6('0x37')]=_[_0x31c6('0x38')](_0x49a053['model'],_0x49a053[_0x31c6('0x35')]);_0x216dab[_0x31c6('0x39')]=_['intersection'](_0x49a053[_0x31c6('0x33')],qs['fields'](_0x5b5212[_0x31c6('0x35')][_0x31c6('0x3a')]));_0x216dab[_0x31c6('0x39')]=_0x216dab['attributes']['length']?_0x216dab[_0x31c6('0x39')]:_0x49a053[_0x31c6('0x33')];_0x216dab[_0x31c6('0x3c')]=qs['sort'](_0x5b5212[_0x31c6('0x35')][_0x31c6('0x3d')]);_0x216dab[_0x31c6('0x3e')]=qs['filters'](_[_0x31c6('0x3f')](_0x5b5212[_0x31c6('0x35')],_0x49a053[_0x31c6('0x37')]));if(_0x5b5212[_0x31c6('0x35')][_0x31c6('0x40')]){_0x216dab[_0x31c6('0x3e')]=_['merge'](_0x216dab[_0x31c6('0x3e')],{'$or':_['map'](_0x216dab[_0x31c6('0x39')],function(_0xdeeeb6){var _0x2156c7={};_0x2156c7[_0xdeeeb6]={'$like':'%'+_0x5b5212[_0x31c6('0x35')][_0x31c6('0x40')]+'%'};return _0x2156c7;})});}_0x216dab=_[_0x31c6('0x41')]({},_0x216dab,_0x5b5212[_0x31c6('0x42')]);return _0x535ea8['getAgents'](_0x216dab);}})[_0x31c6('0x28')](function(_0x451c55){if(_0x451c55){_0x3962bf=_0x451c55[_0x31c6('0x4a')];if(!_0x5b5212[_0x31c6('0x35')][_0x31c6('0x59')](_0x31c6('0x3b'))){_0x216dab[_0x31c6('0x21')]=qs['limit'](_0x5b5212[_0x31c6('0x35')]['limit']);_0x216dab[_0x31c6('0x1f')]=qs['offset'](_0x5b5212[_0x31c6('0x35')]['offset']);}return _0x535ea8[_0x31c6('0x8b')](_0x216dab);}})['then'](function(_0x233115){if(_0x233115){return _0x233115?{'count':_0x3962bf,'rows':_0x233115}:null;}})[_0x31c6('0x28')](respondWithResult(_0x235ca8,null))[_0x31c6('0x47')](handleError(_0x235ca8,null));};
\ No newline at end of file
+var _0x4d54=['length','find','catch','create','role','user','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','describe','findOne','order','SmsQueueId','options','UserSmsQueue','findAndCountAll','UserId','agent','smsPause','createdAt','format','%s/%s','SIP','updatedAt','getTeams','Team','pick','addTeams','ids','Agents','interface','sequelize','transaction','each','findOrCreate','userSmsQueue:save','removeTeams','tq.TeamId','from','user_has_teams','SmsQueueId\x20=\x20?','ut.UserId\x20=\x20?','push','toString','QueryTypes','every','TeamId','includes','union','compact','value','isEmpty','addAgents','omit','spread','removeAgents','isArray','emit','userSmsQueue:remove','getAgents','eml-format','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','ejs','lodash','squel','crypto','jsforce','to-csv','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','end','status','offset','undefined','count','limit','set','Content-Range','json','apply','reject','save','update','then','get','SmsQueues','UserProfileResource','destroy','stack','name','map','SmsQueue','rawAttributes','type','key','model','query','keys','filters','attributes','intersection','fields','hasOwnProperty','nolimit','sort','where','filter','merge','VIRTUAL','includeAll','include','findAll','rows','show','params'];(function(_0x59f31e,_0x1fd672){var _0x1258af=function(_0x4d947e){while(--_0x4d947e){_0x59f31e['push'](_0x59f31e['shift']());}};_0x1258af(++_0x1fd672);}(_0x4d54,0xc1));var _0x44d5=function(_0x40a045,_0x516f0e){_0x40a045=_0x40a045-0x0;var _0x1a687c=_0x4d54[_0x40a045];return _0x1a687c;};'use strict';var emlformat=require(_0x44d5('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x44d5('0x1'));var jsonpatch=require(_0x44d5('0x2'));var rp=require(_0x44d5('0x3'));var moment=require(_0x44d5('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x44d5('0x5'));var util=require(_0x44d5('0x6'));var path=require(_0x44d5('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x44d5('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x44d5('0x9'));var squel=require(_0x44d5('0xa'));var crypto=require(_0x44d5('0xb'));var jsforce=require(_0x44d5('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x44d5('0xd'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x44d5('0xe'));var qs=require(_0x44d5('0xf'));var as=require(_0x44d5('0x10'));var hardwareService=require(_0x44d5('0x11'));var logger=require(_0x44d5('0x12'))(_0x44d5('0x13'));var utils=require(_0x44d5('0x14'));var config=require(_0x44d5('0x15'));var licenseUtil=require(_0x44d5('0x16'));var db=require(_0x44d5('0x17'))['db'];config['redis']=_['defaults'](config[_0x44d5('0x18')],{'host':_0x44d5('0x19'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x44d5('0x18')]));require('./smsQueue.socket')['register'](socket);function respondWithStatusCode(_0x35f93d,_0x1d4fe0){_0x1d4fe0=_0x1d4fe0||0xcc;return function(_0x5409be){if(_0x5409be){return _0x35f93d['sendStatus'](_0x1d4fe0);}return _0x35f93d['status'](_0x1d4fe0)[_0x44d5('0x1a')]();};}function respondWithResult(_0x15545d,_0x2fa7a9){_0x2fa7a9=_0x2fa7a9||0xc8;return function(_0x233c2c){if(_0x233c2c){return _0x15545d[_0x44d5('0x1b')](_0x2fa7a9)['json'](_0x233c2c);}};}function respondWithFilteredResult(_0x115a7c,_0x5da25a){return function(_0x1e3868){if(_0x1e3868){var _0x649676=typeof _0x5da25a[_0x44d5('0x1c')]===_0x44d5('0x1d')&&typeof _0x5da25a['limit']===_0x44d5('0x1d');var _0x5ac353=_0x1e3868[_0x44d5('0x1e')];var _0x29b8d2=_0x649676?0x0:_0x5da25a['offset'];var _0x471302=_0x649676?_0x1e3868[_0x44d5('0x1e')]:_0x5da25a[_0x44d5('0x1c')]+_0x5da25a[_0x44d5('0x1f')];var _0xe39f0c;if(_0x471302>=_0x5ac353){_0x471302=_0x5ac353;_0xe39f0c=0xc8;}else{_0xe39f0c=0xce;}_0x115a7c[_0x44d5('0x1b')](_0xe39f0c);return _0x115a7c[_0x44d5('0x20')](_0x44d5('0x21'),_0x29b8d2+'-'+_0x471302+'/'+_0x5ac353)[_0x44d5('0x22')](_0x1e3868);}return null;};}function patchUpdates(_0x10aeca){return function(_0x467b70){try{jsonpatch[_0x44d5('0x23')](_0x467b70,_0x10aeca,!![]);}catch(_0x481585){return BPromise[_0x44d5('0x24')](_0x481585);}return _0x467b70[_0x44d5('0x25')]();};}function saveUpdates(_0x25afa1,_0x20005b){return function(_0x2f0642){if(_0x2f0642){return _0x2f0642[_0x44d5('0x26')](_0x25afa1)[_0x44d5('0x27')](function(_0x555da7){return _0x555da7;});}return null;};}function removeEntity(_0x3434ea,_0x588bf6){return function(_0x55ff8b){if(_0x55ff8b){return _0x55ff8b['destroy']()[_0x44d5('0x27')](function(){var _0x1a37ca=_0x55ff8b[_0x44d5('0x28')]({'plain':!![]});var _0x2a7c0d=_0x44d5('0x29');return db[_0x44d5('0x2a')][_0x44d5('0x2b')]({'where':{'type':_0x2a7c0d,'resourceId':_0x1a37ca['id']}})[_0x44d5('0x27')](function(){return _0x55ff8b;});})[_0x44d5('0x27')](function(){_0x3434ea[_0x44d5('0x1b')](0xcc)[_0x44d5('0x1a')]();});}};}function handleEntityNotFound(_0x4eb9c1,_0x4b9431){return function(_0x2107ff){if(!_0x2107ff){_0x4eb9c1['sendStatus'](0x194);}return _0x2107ff;};}function handleError(_0x8b4c45,_0x49446d){_0x49446d=_0x49446d||0x1f4;return function(_0x311c9d){logger['error'](_0x311c9d[_0x44d5('0x2c')]);if(_0x311c9d['name']){delete _0x311c9d[_0x44d5('0x2d')];}_0x8b4c45['status'](_0x49446d)['send'](_0x311c9d);};}exports['index']=function(_0x331021,_0x232777){var _0x8b4877={},_0x443402={},_0x23bd92={'count':0x0,'rows':[]};var _0x27d5dc=_[_0x44d5('0x2e')](db[_0x44d5('0x2f')][_0x44d5('0x30')],function(_0x203f50){return{'name':_0x203f50['fieldName'],'type':_0x203f50[_0x44d5('0x31')][_0x44d5('0x32')]};});_0x443402[_0x44d5('0x33')]=_[_0x44d5('0x2e')](_0x27d5dc,'name');_0x443402[_0x44d5('0x34')]=_[_0x44d5('0x35')](_0x331021[_0x44d5('0x34')]);_0x443402[_0x44d5('0x36')]=_['intersection'](_0x443402[_0x44d5('0x33')],_0x443402[_0x44d5('0x34')]);_0x8b4877[_0x44d5('0x37')]=_[_0x44d5('0x38')](_0x443402[_0x44d5('0x33')],qs[_0x44d5('0x39')](_0x331021[_0x44d5('0x34')][_0x44d5('0x39')]));_0x8b4877[_0x44d5('0x37')]=_0x8b4877['attributes']['length']?_0x8b4877['attributes']:_0x443402['model'];if(!_0x331021[_0x44d5('0x34')][_0x44d5('0x3a')](_0x44d5('0x3b'))){_0x8b4877['limit']=qs['limit'](_0x331021[_0x44d5('0x34')][_0x44d5('0x1f')]);_0x8b4877[_0x44d5('0x1c')]=qs['offset'](_0x331021[_0x44d5('0x34')][_0x44d5('0x1c')]);}_0x8b4877['order']=qs[_0x44d5('0x3c')](_0x331021[_0x44d5('0x34')]['sort']);_0x8b4877[_0x44d5('0x3d')]=qs['filters'](_['pick'](_0x331021[_0x44d5('0x34')],_0x443402[_0x44d5('0x36')]),_0x27d5dc);if(_0x331021['query'][_0x44d5('0x3e')]){_0x8b4877[_0x44d5('0x3d')]=_[_0x44d5('0x3f')](_0x8b4877[_0x44d5('0x3d')],{'$or':_[_0x44d5('0x2e')](_0x27d5dc,function(_0xb902d6){if(_0xb902d6[_0x44d5('0x31')]!==_0x44d5('0x40')){var _0xcf2967={};_0xcf2967[_0xb902d6[_0x44d5('0x2d')]]={'$like':'%'+_0x331021[_0x44d5('0x34')][_0x44d5('0x3e')]+'%'};return _0xcf2967;}})});}_0x8b4877=_[_0x44d5('0x3f')]({},_0x8b4877,_0x331021['options']);var _0x22be9c={'where':_0x8b4877[_0x44d5('0x3d')]};return db[_0x44d5('0x2f')][_0x44d5('0x1e')](_0x22be9c)[_0x44d5('0x27')](function(_0x5744a8){_0x23bd92['count']=_0x5744a8;if(_0x331021[_0x44d5('0x34')][_0x44d5('0x41')]){_0x8b4877[_0x44d5('0x42')]=[{'all':!![]}];}return db['SmsQueue'][_0x44d5('0x43')](_0x8b4877);})[_0x44d5('0x27')](function(_0x4f1d87){_0x23bd92[_0x44d5('0x44')]=_0x4f1d87;return _0x23bd92;})['then'](respondWithFilteredResult(_0x232777,_0x8b4877))['catch'](handleError(_0x232777,null));};exports[_0x44d5('0x45')]=function(_0x2aa61c,_0xc679ad){var _0x305321={'raw':!![],'where':{'id':_0x2aa61c[_0x44d5('0x46')]['id']}},_0x1d0784={};_0x1d0784[_0x44d5('0x33')]=_[_0x44d5('0x35')](db[_0x44d5('0x2f')][_0x44d5('0x30')]);_0x1d0784[_0x44d5('0x34')]=_['keys'](_0x2aa61c[_0x44d5('0x34')]);_0x1d0784['filters']=_['intersection'](_0x1d0784[_0x44d5('0x33')],_0x1d0784['query']);_0x305321['attributes']=_[_0x44d5('0x38')](_0x1d0784['model'],qs[_0x44d5('0x39')](_0x2aa61c[_0x44d5('0x34')][_0x44d5('0x39')]));_0x305321[_0x44d5('0x37')]=_0x305321['attributes'][_0x44d5('0x47')]?_0x305321[_0x44d5('0x37')]:_0x1d0784[_0x44d5('0x33')];if(_0x2aa61c[_0x44d5('0x34')][_0x44d5('0x41')]){_0x305321[_0x44d5('0x42')]=[{'all':!![]}];}_0x305321=_[_0x44d5('0x3f')]({},_0x305321,_0x2aa61c['options']);return db[_0x44d5('0x2f')][_0x44d5('0x48')](_0x305321)[_0x44d5('0x27')](handleEntityNotFound(_0xc679ad,null))[_0x44d5('0x27')](respondWithResult(_0xc679ad,null))[_0x44d5('0x49')](handleError(_0xc679ad,null));};exports[_0x44d5('0x4a')]=function(_0x164e6d,_0x5e0607){return db['SmsQueue']['create'](_0x164e6d['body'],{})['then'](function(_0x22c43f){var _0x5dd818=_0x164e6d['user']['get']({'plain':!![]});if(!_0x5dd818)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x5dd818[_0x44d5('0x4b')]===_0x44d5('0x4c')){var _0x14262f=_0x22c43f[_0x44d5('0x28')]({'plain':!![]});var _0x29c9b9='SmsQueues';return db[_0x44d5('0x4d')][_0x44d5('0x48')]({'where':{'name':_0x29c9b9,'userProfileId':_0x5dd818[_0x44d5('0x4e')]},'raw':!![]})[_0x44d5('0x27')](function(_0x13b9c9){if(_0x13b9c9&&_0x13b9c9['autoAssociation']===0x0){return db[_0x44d5('0x2a')][_0x44d5('0x4a')]({'name':_0x14262f['name'],'resourceId':_0x14262f['id'],'type':_0x13b9c9[_0x44d5('0x2d')],'sectionId':_0x13b9c9['id']},{})[_0x44d5('0x27')](function(){return _0x22c43f;});}else{return _0x22c43f;}})[_0x44d5('0x49')](function(_0x547faa){logger['error'](_0x44d5('0x4f'),_0x547faa);throw _0x547faa;});}return _0x22c43f;})['then'](respondWithResult(_0x5e0607,0xc9))[_0x44d5('0x49')](handleError(_0x5e0607,null));};exports[_0x44d5('0x26')]=function(_0x68463e,_0x2cc5b8){if(_0x68463e[_0x44d5('0x50')]['id']){delete _0x68463e[_0x44d5('0x50')]['id'];}return db[_0x44d5('0x2f')][_0x44d5('0x48')]({'where':{'id':_0x68463e[_0x44d5('0x46')]['id']}})['then'](handleEntityNotFound(_0x2cc5b8,null))[_0x44d5('0x27')](saveUpdates(_0x68463e[_0x44d5('0x50')],null))[_0x44d5('0x27')](respondWithResult(_0x2cc5b8,null))[_0x44d5('0x49')](handleError(_0x2cc5b8,null));};exports['destroy']=function(_0x2e9a33,_0x2dc15d){return db[_0x44d5('0x2f')][_0x44d5('0x48')]({'where':{'id':_0x2e9a33[_0x44d5('0x46')]['id']}})[_0x44d5('0x27')](handleEntityNotFound(_0x2dc15d,null))[_0x44d5('0x27')](removeEntity(_0x2dc15d,null))[_0x44d5('0x49')](handleError(_0x2dc15d,null));};exports[_0x44d5('0x51')]=function(_0x31a551,_0x58b267){return db[_0x44d5('0x2f')][_0x44d5('0x51')]()[_0x44d5('0x27')](respondWithResult(_0x58b267,null))['catch'](handleError(_0x58b267,null));};exports['getMembers']=function(_0x10af4a,_0x39417a,_0x1f6cd1){var _0x570617={'raw':!![],'where':{}},_0x16f7ca={},_0x103f59;return db['SmsQueue'][_0x44d5('0x52')]({'where':{'id':_0x10af4a[_0x44d5('0x46')]['id']}})['then'](handleEntityNotFound(_0x39417a,null))[_0x44d5('0x27')](function(_0x482c9f){if(_0x482c9f){_0x103f59=_0x482c9f[_0x44d5('0x28')]({'plain':!![]});_0x16f7ca[_0x44d5('0x33')]=_[_0x44d5('0x35')](db['UserSmsQueue']['rawAttributes']);_0x16f7ca[_0x44d5('0x34')]=_[_0x44d5('0x35')](_0x10af4a[_0x44d5('0x34')]);_0x16f7ca[_0x44d5('0x36')]=_[_0x44d5('0x38')](_0x16f7ca[_0x44d5('0x33')],_0x16f7ca[_0x44d5('0x34')]);_0x570617[_0x44d5('0x37')]=_[_0x44d5('0x38')](_0x16f7ca[_0x44d5('0x33')],qs['fields'](_0x10af4a[_0x44d5('0x34')][_0x44d5('0x39')]));_0x570617[_0x44d5('0x37')]=_0x570617['attributes'][_0x44d5('0x47')]?_0x570617[_0x44d5('0x37')]:_0x16f7ca[_0x44d5('0x33')];if(!_0x10af4a['query'][_0x44d5('0x3a')](_0x44d5('0x3b'))){_0x570617[_0x44d5('0x1f')]=qs[_0x44d5('0x1f')](_0x10af4a[_0x44d5('0x34')][_0x44d5('0x1f')]);_0x570617[_0x44d5('0x1c')]=qs[_0x44d5('0x1c')](_0x10af4a['query']['offset']);}_0x570617[_0x44d5('0x53')]=qs[_0x44d5('0x3c')](_0x10af4a[_0x44d5('0x34')]['sort']);_0x570617['where']=qs[_0x44d5('0x36')](_['pick'](_0x10af4a['query'],_0x16f7ca[_0x44d5('0x36')]));_0x570617['where'][_0x44d5('0x54')]=_0x482c9f['id'];if(_0x10af4a[_0x44d5('0x34')][_0x44d5('0x3e')]){_0x570617[_0x44d5('0x3d')]=_[_0x44d5('0x3f')](_0x570617[_0x44d5('0x3d')],{'$or':_[_0x44d5('0x2e')](_0x570617[_0x44d5('0x37')],function(_0x29940d){var _0x16ef11={};_0x16ef11[_0x29940d]={'$like':'%'+_0x10af4a[_0x44d5('0x34')][_0x44d5('0x3e')]+'%'};return _0x16ef11;})});}_0x570617=_[_0x44d5('0x3f')]({},_0x570617,_0x10af4a[_0x44d5('0x55')]);return db[_0x44d5('0x56')]['findAll'](_0x570617);}})[_0x44d5('0x27')](function(_0x540659){if(_0x540659){return db['User'][_0x44d5('0x57')]({'where':{'id':_[_0x44d5('0x2e')](_0x540659,_0x44d5('0x58')),'role':_0x44d5('0x59')},'attributes':['id','name',_0x44d5('0x5a'),'updatedAt',_0x44d5('0x5b')]});}})[_0x44d5('0x27')](function(_0x2bb826){if(_0x2bb826){return{'count':_0x2bb826[_0x44d5('0x1e')],'rows':_[_0x44d5('0x2e')](_0x2bb826[_0x44d5('0x44')],function(_0x5b867c){return{'membername':_0x5b867c[_0x44d5('0x2d')],'UserId':_0x5b867c['id'],'queue_name':_0x103f59[_0x44d5('0x2d')],'SmsQueueId':_0x103f59['id'],'interface':util[_0x44d5('0x5c')](_0x44d5('0x5d'),_0x44d5('0x5e'),_0x5b867c['name']),'penalty':0x0,'paused':_0x5b867c[_0x44d5('0x5a')],'createdAt':_0x5b867c[_0x44d5('0x5b')],'updatedAt':_0x5b867c[_0x44d5('0x5f')]};})};}else{return{'count':0x0,'rows':[]};}})[_0x44d5('0x27')](respondWithFilteredResult(_0x39417a,_0x570617))[_0x44d5('0x49')](handleError(_0x39417a,null));};exports[_0x44d5('0x60')]=function(_0xd35e40,_0xb8aa65,_0xa9e165){var _0x3520b7={};var _0x579d71={};var _0x465e01;var _0x118595;return db[_0x44d5('0x2f')][_0x44d5('0x52')]({'where':{'id':_0xd35e40[_0x44d5('0x46')]['id']}})[_0x44d5('0x27')](handleEntityNotFound(_0xb8aa65,null))[_0x44d5('0x27')](function(_0x39d248){if(_0x39d248){_0x465e01=_0x39d248;_0x579d71[_0x44d5('0x33')]=_[_0x44d5('0x35')](db[_0x44d5('0x61')][_0x44d5('0x30')]);_0x579d71[_0x44d5('0x34')]=_[_0x44d5('0x35')](_0xd35e40[_0x44d5('0x34')]);_0x579d71['filters']=_[_0x44d5('0x38')](_0x579d71[_0x44d5('0x33')],_0x579d71['query']);_0x3520b7[_0x44d5('0x37')]=_[_0x44d5('0x38')](_0x579d71[_0x44d5('0x33')],qs[_0x44d5('0x39')](_0xd35e40[_0x44d5('0x34')]['fields']));_0x3520b7[_0x44d5('0x37')]=_0x3520b7[_0x44d5('0x37')]['length']?_0x3520b7[_0x44d5('0x37')]:_0x579d71[_0x44d5('0x33')];_0x3520b7[_0x44d5('0x53')]=qs[_0x44d5('0x3c')](_0xd35e40[_0x44d5('0x34')][_0x44d5('0x3c')]);_0x3520b7[_0x44d5('0x3d')]=qs[_0x44d5('0x36')](_[_0x44d5('0x62')](_0xd35e40['query'],_0x579d71[_0x44d5('0x36')]));if(_0xd35e40[_0x44d5('0x34')][_0x44d5('0x3e')]){_0x3520b7[_0x44d5('0x3d')]=_[_0x44d5('0x3f')](_0x3520b7[_0x44d5('0x3d')],{'$or':_[_0x44d5('0x2e')](_0x3520b7[_0x44d5('0x37')],function(_0x159014){var _0x5a5132={};_0x5a5132[_0x159014]={'$like':'%'+_0xd35e40[_0x44d5('0x34')][_0x44d5('0x3e')]+'%'};return _0x5a5132;})});}_0x3520b7=_[_0x44d5('0x3f')]({},_0x3520b7,_0xd35e40[_0x44d5('0x55')]);return _0x465e01['getTeams'](_0x3520b7);}})[_0x44d5('0x27')](function(_0x118da0){if(_0x118da0){_0x118595=_0x118da0[_0x44d5('0x47')];if(!_0xd35e40[_0x44d5('0x34')]['hasOwnProperty']('nolimit')){_0x3520b7[_0x44d5('0x1f')]=qs[_0x44d5('0x1f')](_0xd35e40[_0x44d5('0x34')][_0x44d5('0x1f')]);_0x3520b7[_0x44d5('0x1c')]=qs['offset'](_0xd35e40[_0x44d5('0x34')]['offset']);}return _0x465e01['getTeams'](_0x3520b7);}})['then'](function(_0x534c77){if(_0x534c77){return _0x534c77?{'count':_0x118595,'rows':_0x534c77}:null;}})[_0x44d5('0x27')](respondWithResult(_0xb8aa65,null))[_0x44d5('0x49')](handleError(_0xb8aa65,null));};exports[_0x44d5('0x63')]=function(_0x4d3515,_0x5e9b63,_0x4eb346){var _0x261655=_0x4d3515[_0x44d5('0x50')][_0x44d5('0x64')];return db[_0x44d5('0x61')][_0x44d5('0x43')]({'where':{'id':_0x261655},'attributes':['id'],'include':[{'model':db['User'],'as':_0x44d5('0x65'),'attributes':['id',_0x44d5('0x2d'),'online','voicePause',_0x44d5('0x66')],'raw':!![]}]})['then'](function(_0x2a223c){if(_0x2a223c){var _0x5f524f=_['flatMap'](_0x2a223c,function(_0x7acafe){var _0x51cc07=_0x7acafe[_0x44d5('0x28')]({'plain':!![]});return _0x51cc07['Agents'];});return db[_0x44d5('0x2f')][_0x44d5('0x48')]({'where':{'id':_0x4d3515[_0x44d5('0x46')]['id']}})[_0x44d5('0x27')](function(_0x20b321){return db[_0x44d5('0x67')][_0x44d5('0x68')](function(_0x5ab163){return _0x20b321['addTeams'](_0x261655,{'transaction':_0x5ab163})['then'](function(){return BPromise[_0x44d5('0x69')](_0x5f524f,function(_0x394607){return db[_0x44d5('0x56')][_0x44d5('0x6a')]({'where':{'UserId':_0x394607['id'],'SmsQueueId':_0x4d3515['params']['id']},'transaction':_0x5ab163});});})[_0x44d5('0x27')](function(){_0x5f524f['forEach'](function(_0x22b025){socket['emit'](_0x44d5('0x6b'),{'UserId':_0x22b025['id'],'SmsQueueId':_0x20b321['id']});});});});});}})[_0x44d5('0x27')](respondWithStatusCode(_0x5e9b63,null))[_0x44d5('0x49')](handleError(_0x5e9b63,null));};exports[_0x44d5('0x6c')]=function(_0xd47b5d,_0x7f0147,_0x1ca436){return db[_0x44d5('0x61')]['findAll']({'where':{'id':_0xd47b5d[_0x44d5('0x34')][_0x44d5('0x64')]},'attributes':['id'],'include':[{'model':db['User'],'as':_0x44d5('0x65'),'attributes':['id'],'raw':!![]}]})[_0x44d5('0x27')](handleEntityNotFound(_0x7f0147,null))[_0x44d5('0x27')](function(_0x18f3ca){var _0x2d2fcf=_[_0x44d5('0x2e')](_0x18f3ca,'id');var _0x2dde23=[];var _0x369de3=[];var _0x5cf751=squel['select']();_0x5cf751['field'](_0x44d5('0x6d'))[_0x44d5('0x6e')]('team_has_sms_queues','tq')['join'](_0x44d5('0x6f'),'ut','ut.TeamId\x20=\x20tq.TeamId')['where'](_0x44d5('0x70'),_0xd47b5d[_0x44d5('0x46')]['id']);for(var _0x3eadf9=0x0;_0x3eadf9<_0x18f3ca[_0x44d5('0x47')];_0x3eadf9+=0x1){let _0x36fafe=_0x18f3ca[_0x3eadf9];for(var _0x37546c=0x0;_0x37546c<_0x36fafe[_0x44d5('0x65')][_0x44d5('0x47')];_0x37546c+=0x1){let _0x1e47c6=_0x36fafe['Agents'][_0x37546c];var _0xff3ab1=_0x5cf751['clone']();_0xff3ab1[_0x44d5('0x3d')](_0x44d5('0x71'),_0x1e47c6['id']);_0x369de3[_0x44d5('0x72')](db[_0x44d5('0x67')]['query'](_0xff3ab1[_0x44d5('0x73')](),{'type':db[_0x44d5('0x67')][_0x44d5('0x74')]['SELECT']})['then'](function(_0x43685d){if(_0x43685d[_0x44d5('0x47')]===0x1){return _0x1e47c6['id'];}else{var _0xdf901c=_[_0x44d5('0x75')](_[_0x44d5('0x2e')](_0x43685d,_0x44d5('0x76')),function(_0x1dee77){return _[_0x44d5('0x77')](_0x2d2fcf,_0x1dee77);});if(_0xdf901c){return _0x1e47c6['id'];}}}));}}return BPromise['all'](_0x369de3)['then'](function(_0x4255e9){_0x2dde23=_(_0x2dde23)[_0x44d5('0x78')](_0x4255e9)[_0x44d5('0x79')]()[_0x44d5('0x7a')]();return db['SmsQueue'][_0x44d5('0x48')]({'where':{'id':_0xd47b5d['params']['id']}})[_0x44d5('0x27')](function(_0x8d72b8){return db[_0x44d5('0x67')]['transaction'](function(_0x6bb8b1){return _0x8d72b8[_0x44d5('0x6c')](_0xd47b5d[_0x44d5('0x34')][_0x44d5('0x64')],{'transaction':_0x6bb8b1})['then'](function(){if(!_[_0x44d5('0x7b')](_0x2dde23)){return _0x8d72b8['removeAgents'](_0x2dde23,{'transaction':_0x6bb8b1});}})['then'](function(){_0x2dde23['forEach'](function(_0x58bac7){socket['emit']('userSmsQueue:remove',{'UserId':_0x58bac7,'SmsQueueId':_0x8d72b8['id']});});});});});});})[_0x44d5('0x27')](respondWithStatusCode(_0x7f0147,null))[_0x44d5('0x49')](handleError(_0x7f0147,null));};exports['addAgents']=function(_0x290afa,_0x19c666,_0x39a963){return db[_0x44d5('0x2f')][_0x44d5('0x48')]({'where':{'id':_0x290afa[_0x44d5('0x46')]['id']}})[_0x44d5('0x27')](handleEntityNotFound(_0x19c666,null))[_0x44d5('0x27')](function(_0x4fea33){if(_0x4fea33){return _0x4fea33[_0x44d5('0x7c')](_0x290afa[_0x44d5('0x50')][_0x44d5('0x64')],_[_0x44d5('0x7d')](_0x290afa[_0x44d5('0x50')],[_0x44d5('0x64'),'id'])||{})[_0x44d5('0x7e')](function(_0x4524f8){for(var _0x1fa3bf=0x0;_0x1fa3bf<_0x290afa[_0x44d5('0x50')][_0x44d5('0x64')][_0x44d5('0x47')];_0x1fa3bf+=0x1){socket['emit'](_0x44d5('0x6b'),{'UserId':Number(_0x290afa[_0x44d5('0x50')][_0x44d5('0x64')][_0x1fa3bf]),'SmsQueueId':Number(_0x290afa[_0x44d5('0x46')]['id'])});}return _0x4524f8;});}})[_0x44d5('0x27')](respondWithResult(_0x19c666,null))['catch'](handleError(_0x19c666,null));};exports[_0x44d5('0x7f')]=function(_0x2f9d3d,_0x444e9c,_0x33ba22){return db[_0x44d5('0x2f')][_0x44d5('0x48')]({'where':{'id':_0x2f9d3d[_0x44d5('0x46')]['id']}})[_0x44d5('0x27')](handleEntityNotFound(_0x444e9c,null))[_0x44d5('0x27')](function(_0x2b6edf){if(_0x2b6edf){return _0x2b6edf[_0x44d5('0x7f')](_0x2f9d3d[_0x44d5('0x34')][_0x44d5('0x64')])[_0x44d5('0x27')](function(){if(_[_0x44d5('0x80')](_0x2f9d3d[_0x44d5('0x34')][_0x44d5('0x64')])){for(var _0x4e29e9=0x0;_0x4e29e9<_0x2f9d3d[_0x44d5('0x34')]['ids'][_0x44d5('0x47')];_0x4e29e9+=0x1){socket[_0x44d5('0x81')](_0x44d5('0x82'),{'UserId':Number(_0x2f9d3d[_0x44d5('0x34')][_0x44d5('0x64')][_0x4e29e9]),'SmsQueueId':Number(_0x2f9d3d[_0x44d5('0x46')]['id'])});}}else{socket[_0x44d5('0x81')]('userSmsQueue:remove',{'UserId':Number(_0x2f9d3d[_0x44d5('0x34')][_0x44d5('0x64')]),'SmsQueueId':Number(_0x2f9d3d[_0x44d5('0x46')]['id'])});}});}})[_0x44d5('0x27')](respondWithStatusCode(_0x444e9c,null))[_0x44d5('0x49')](handleError(_0x444e9c,null));};exports['getAgents']=function(_0x47cdec,_0x59894d,_0x434107){var _0x30d120={};var _0x327011={};var _0x1d8870;var _0x411dbc;return db[_0x44d5('0x2f')][_0x44d5('0x52')]({'where':{'id':_0x47cdec[_0x44d5('0x46')]['id']}})['then'](handleEntityNotFound(_0x59894d,null))[_0x44d5('0x27')](function(_0x5f2ec8){if(_0x5f2ec8){_0x1d8870=_0x5f2ec8;_0x327011[_0x44d5('0x33')]=_['keys'](db['User'][_0x44d5('0x30')]);_0x327011['query']=_[_0x44d5('0x35')](_0x47cdec[_0x44d5('0x34')]);_0x327011[_0x44d5('0x36')]=_['intersection'](_0x327011[_0x44d5('0x33')],_0x327011[_0x44d5('0x34')]);_0x30d120[_0x44d5('0x37')]=_[_0x44d5('0x38')](_0x327011['model'],qs['fields'](_0x47cdec[_0x44d5('0x34')][_0x44d5('0x39')]));_0x30d120['attributes']=_0x30d120['attributes'][_0x44d5('0x47')]?_0x30d120[_0x44d5('0x37')]:_0x327011[_0x44d5('0x33')];_0x30d120['order']=qs[_0x44d5('0x3c')](_0x47cdec['query'][_0x44d5('0x3c')]);_0x30d120[_0x44d5('0x3d')]=qs[_0x44d5('0x36')](_[_0x44d5('0x62')](_0x47cdec['query'],_0x327011[_0x44d5('0x36')]));if(_0x47cdec['query'][_0x44d5('0x3e')]){_0x30d120[_0x44d5('0x3d')]=_['merge'](_0x30d120['where'],{'$or':_[_0x44d5('0x2e')](_0x30d120[_0x44d5('0x37')],function(_0x1615f1){var _0x3b7955={};_0x3b7955[_0x1615f1]={'$like':'%'+_0x47cdec[_0x44d5('0x34')][_0x44d5('0x3e')]+'%'};return _0x3b7955;})});}_0x30d120=_[_0x44d5('0x3f')]({},_0x30d120,_0x47cdec['options']);return _0x1d8870['getAgents'](_0x30d120);}})[_0x44d5('0x27')](function(_0x5a4db3){if(_0x5a4db3){_0x411dbc=_0x5a4db3['length'];if(!_0x47cdec[_0x44d5('0x34')][_0x44d5('0x3a')](_0x44d5('0x3b'))){_0x30d120[_0x44d5('0x1f')]=qs['limit'](_0x47cdec[_0x44d5('0x34')][_0x44d5('0x1f')]);_0x30d120['offset']=qs[_0x44d5('0x1c')](_0x47cdec[_0x44d5('0x34')][_0x44d5('0x1c')]);}return _0x1d8870[_0x44d5('0x83')](_0x30d120);}})[_0x44d5('0x27')](function(_0x3221b5){if(_0x3221b5){return _0x3221b5?{'count':_0x411dbc,'rows':_0x3221b5}:null;}})['then'](respondWithResult(_0x59894d,null))[_0x44d5('0x49')](handleError(_0x59894d,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3deb=['update','remove','emit','hasOwnProperty','hook','events','../../mysqldb','SmsQueue','save'];(function(_0x4b3358,_0x5cda77){var _0x1ea011=function(_0x1a17ea){while(--_0x1a17ea){_0x4b3358['push'](_0x4b3358['shift']());}};_0x1ea011(++_0x5cda77);}(_0x3deb,0xc2));var _0xb3de=function(_0x1d1779,_0x284147){_0x1d1779=_0x1d1779-0x0;var _0x2377e9=_0x3deb[_0x1d1779];return _0x2377e9;};'use strict';var EventEmitter=require(_0xb3de('0x0'));var SmsQueue=require(_0xb3de('0x1'))['db'][_0xb3de('0x2')];var SmsQueueEvents=new EventEmitter();SmsQueueEvents['setMaxListeners'](0x0);var events={'afterCreate':_0xb3de('0x3'),'afterUpdate':_0xb3de('0x4'),'afterDestroy':_0xb3de('0x5')};function emitEvent(_0x1f6037){return function(_0x517470,_0x8cd485,_0xc546e8){SmsQueueEvents[_0xb3de('0x6')](_0x1f6037+':'+_0x517470['id'],_0x517470);SmsQueueEvents[_0xb3de('0x6')](_0x1f6037,_0x517470);_0xc546e8(null);};}for(var e in events){if(events[_0xb3de('0x7')](e)){var event=events[e];SmsQueue[_0xb3de('0x8')](e,emitEvent(event));}}module['exports']=SmsQueueEvents;
\ No newline at end of file
+var _0x2065=['SmsQueue','save','update','emit','hook','exports'];(function(_0x47a307,_0x3dfddd){var _0x499192=function(_0x51ae13){while(--_0x51ae13){_0x47a307['push'](_0x47a307['shift']());}};_0x499192(++_0x3dfddd);}(_0x2065,0x18c));var _0x5206=function(_0x4e3744,_0x14198b){_0x4e3744=_0x4e3744-0x0;var _0x2a9f3c=_0x2065[_0x4e3744];return _0x2a9f3c;};'use strict';var EventEmitter=require('events');var SmsQueue=require('../../mysqldb')['db'][_0x5206('0x0')];var SmsQueueEvents=new EventEmitter();SmsQueueEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x5206('0x1'),'afterUpdate':_0x5206('0x2'),'afterDestroy':'remove'};function emitEvent(_0xfb05b6){return function(_0x237797,_0x321baf,_0x3efda8){SmsQueueEvents[_0x5206('0x3')](_0xfb05b6+':'+_0x237797['id'],_0x237797);SmsQueueEvents['emit'](_0xfb05b6,_0x237797);_0x3efda8(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];SmsQueue[_0x5206('0x4')](e,emitEvent(event));}}module[_0x5206('0x5')]=SmsQueueEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6e5e=['../../config/environment','exports','SmsQueue','sms_queues','lodash','util','../../config/logger','api','moment','bluebird','path','rimraf'];(function(_0xcd0523,_0x5ec059){var _0x36c81c=function(_0x5ca6aa){while(--_0x5ca6aa){_0xcd0523['push'](_0xcd0523['shift']());}};_0x36c81c(++_0x5ec059);}(_0x6e5e,0x1c0));var _0xe6e5=function(_0x361fa9,_0x14e44c){_0x361fa9=_0x361fa9-0x0;var _0x20563a=_0x6e5e[_0x361fa9];return _0x20563a;};'use strict';var _=require(_0xe6e5('0x0'));var util=require(_0xe6e5('0x1'));var logger=require(_0xe6e5('0x2'))(_0xe6e5('0x3'));var moment=require(_0xe6e5('0x4'));var BPromise=require(_0xe6e5('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xe6e5('0x6'));var rimraf=require(_0xe6e5('0x7'));var config=require(_0xe6e5('0x8'));var attributes=require('./smsQueue.attributes');module[_0xe6e5('0x9')]=function(_0x28a448,_0x330efc){return _0x28a448['define'](_0xe6e5('0xa'),attributes,{'tableName':_0xe6e5('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x63f5=['SmsQueue','lodash','util','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./smsQueue.attributes','exports','define'];(function(_0x4d6133,_0x448652){var _0x466292=function(_0x279b06){while(--_0x279b06){_0x4d6133['push'](_0x4d6133['shift']());}};_0x466292(++_0x448652);}(_0x63f5,0x1ef));var _0x563f=function(_0x1b8e60,_0x21b885){_0x1b8e60=_0x1b8e60-0x0;var _0x363363=_0x63f5[_0x1b8e60];return _0x363363;};'use strict';var _=require(_0x563f('0x0'));var util=require(_0x563f('0x1'));var logger=require('../../config/logger')(_0x563f('0x2'));var moment=require(_0x563f('0x3'));var BPromise=require(_0x563f('0x4'));var rp=require(_0x563f('0x5'));var fs=require('fs');var path=require(_0x563f('0x6'));var rimraf=require(_0x563f('0x7'));var config=require(_0x563f('0x8'));var attributes=require(_0x563f('0x9'));module[_0x563f('0xa')]=function(_0x214bf9,_0x148093){return _0x214bf9[_0x563f('0xb')](_0x563f('0xc'),attributes,{'tableName':'sms_queues','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x03e7=['ShowSmsQueue','find','raw','info','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','http','redis','defaults','localhost','socket.io-emitter','./smsQueue.socket','register','request','then','debug','SmsQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','SmsQueue,\x20%s,\x20%s','message','request\x20sent','catch','GetSmsQueue','SmsQueue','findAll','options','where','attributes','limit','include','model','map'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x03e7,0x1d2));var _0x703e=function(_0x3a8a65,_0x19a8b2){_0x3a8a65=_0x3a8a65-0x0;var _0x564fe3=_0x03e7[_0x3a8a65];return _0x564fe3;};'use strict';var _=require(_0x703e('0x0'));var util=require(_0x703e('0x1'));var moment=require(_0x703e('0x2'));var BPromise=require(_0x703e('0x3'));var rs=require(_0x703e('0x4'));var fs=require('fs');var Redis=require(_0x703e('0x5'));var db=require(_0x703e('0x6'))['db'];var utils=require(_0x703e('0x7'));var logger=require(_0x703e('0x8'))(_0x703e('0x9'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson['client'][_0x703e('0xa')]({'port':0x232a});config[_0x703e('0xb')]=_[_0x703e('0xc')](config[_0x703e('0xb')],{'host':_0x703e('0xd'),'port':0x18eb});var socket=require(_0x703e('0xe'))(new Redis(config[_0x703e('0xb')]));require(_0x703e('0xf'))[_0x703e('0x10')](socket);function respondWithRpcPromise(_0xef1a39,_0x5c539d,_0x41aac5){return new BPromise(function(_0x4fb09e,_0x3e708e){return client[_0x703e('0x11')](_0xef1a39,_0x41aac5)[_0x703e('0x12')](function(_0x4a6071){logger['info']('SmsQueue,\x20%s,\x20%s',_0x5c539d,'request\x20sent');logger[_0x703e('0x13')](_0x703e('0x14'),_0x5c539d,'request\x20sent',JSON[_0x703e('0x15')](_0x4a6071));if(_0x4a6071[_0x703e('0x16')]){if(_0x4a6071[_0x703e('0x16')][_0x703e('0x17')]===0x1f4){logger[_0x703e('0x16')](_0x703e('0x18'),_0x5c539d,_0x4a6071[_0x703e('0x16')][_0x703e('0x19')]);return _0x3e708e(_0x4a6071[_0x703e('0x16')][_0x703e('0x19')]);}logger['error'](_0x703e('0x18'),_0x5c539d,_0x4a6071[_0x703e('0x16')][_0x703e('0x19')]);return _0x4fb09e(_0x4a6071[_0x703e('0x16')][_0x703e('0x19')]);}else{logger['info']('SmsQueue,\x20%s,\x20%s',_0x5c539d,_0x703e('0x1a'));_0x4fb09e(_0x4a6071['result']['message']);}})[_0x703e('0x1b')](function(_0xb442cb){logger[_0x703e('0x16')](_0x703e('0x18'),_0x5c539d,_0xb442cb);_0x3e708e(_0xb442cb);});});}exports[_0x703e('0x1c')]=function(_0x475283){var _0x41371d=this;return new Promise(function(_0x72a542,_0x45e2cc){return db[_0x703e('0x1d')][_0x703e('0x1e')]({'raw':_0x475283[_0x703e('0x1f')]?_0x475283[_0x703e('0x1f')]['raw']===undefined?!![]:![]:!![],'where':_0x475283[_0x703e('0x1f')]?_0x475283[_0x703e('0x1f')][_0x703e('0x20')]||null:null,'attributes':_0x475283[_0x703e('0x1f')]?_0x475283[_0x703e('0x1f')][_0x703e('0x21')]||null:null,'limit':_0x475283[_0x703e('0x1f')]?_0x475283[_0x703e('0x1f')][_0x703e('0x22')]||null:null,'include':_0x475283[_0x703e('0x1f')]?_0x475283[_0x703e('0x1f')][_0x703e('0x23')]?_['map'](_0x475283['options'][_0x703e('0x23')],function(_0x217edf){return{'model':db[_0x217edf[_0x703e('0x24')]],'as':_0x217edf['as'],'attributes':_0x217edf[_0x703e('0x21')],'include':_0x217edf[_0x703e('0x23')]?_[_0x703e('0x25')](_0x217edf[_0x703e('0x23')],function(_0x3d6ed8){return{'model':db[_0x3d6ed8[_0x703e('0x24')]],'as':_0x3d6ed8['as'],'attributes':_0x3d6ed8[_0x703e('0x21')],'include':_0x3d6ed8[_0x703e('0x23')]?_[_0x703e('0x25')](_0x3d6ed8[_0x703e('0x23')],function(_0x33656d){return{'model':db[_0x33656d[_0x703e('0x24')]],'as':_0x33656d['as'],'attributes':_0x33656d[_0x703e('0x21')]};}):[]};}):[]};}):[]:[]})[_0x703e('0x12')](function(_0x42ec7b){logger['info'](_0x703e('0x1c'),_0x475283);logger[_0x703e('0x13')]('GetSmsQueue',_0x475283,JSON[_0x703e('0x15')](_0x42ec7b));_0x72a542(_0x42ec7b);})[_0x703e('0x1b')](function(_0xaf9573){logger[_0x703e('0x16')](_0x703e('0x1c'),_0xaf9573[_0x703e('0x19')],_0x475283);_0x45e2cc(_0x41371d[_0x703e('0x16')](0x1f4,_0xaf9573['message']));});});};exports[_0x703e('0x26')]=function(_0x35e43a){var _0x3e8964=this;return new Promise(function(_0x277089,_0x565062){return db[_0x703e('0x1d')][_0x703e('0x27')]({'raw':_0x35e43a[_0x703e('0x1f')]?_0x35e43a[_0x703e('0x1f')][_0x703e('0x28')]===undefined?!![]:![]:!![],'where':_0x35e43a[_0x703e('0x1f')]?_0x35e43a['options']['where']||null:null,'attributes':_0x35e43a[_0x703e('0x1f')]?_0x35e43a['options'][_0x703e('0x21')]||null:null,'include':_0x35e43a[_0x703e('0x1f')]?_0x35e43a[_0x703e('0x1f')][_0x703e('0x23')]?_[_0x703e('0x25')](_0x35e43a['options'][_0x703e('0x23')],function(_0xfed26d){return{'model':db[_0xfed26d['model']],'as':_0xfed26d['as'],'attributes':_0xfed26d[_0x703e('0x21')],'include':_0xfed26d[_0x703e('0x23')]?_['map'](_0xfed26d[_0x703e('0x23')],function(_0x558bf6){return{'model':db[_0x558bf6[_0x703e('0x24')]],'as':_0x558bf6['as'],'attributes':_0x558bf6[_0x703e('0x21')],'include':_0x558bf6[_0x703e('0x23')]?_[_0x703e('0x25')](_0x558bf6[_0x703e('0x23')],function(_0x289d64){return{'model':db[_0x289d64[_0x703e('0x24')]],'as':_0x289d64['as'],'attributes':_0x289d64[_0x703e('0x21')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x3e14a5){logger[_0x703e('0x29')](_0x703e('0x26'),_0x35e43a);logger[_0x703e('0x13')](_0x703e('0x26'),_0x35e43a,JSON[_0x703e('0x15')](_0x3e14a5));_0x277089(_0x3e14a5);})[_0x703e('0x1b')](function(_0x4a1939){logger['error'](_0x703e('0x26'),_0x4a1939['message'],_0x35e43a);_0x565062(_0x3e8964[_0x703e('0x16')](0x1f4,_0x4a1939['message']));});});};
\ No newline at end of file
+var _0xdd2d=['../../config/logger','rpc','jayson/promise','client','http','redis','localhost','./smsQueue.socket','request','info','SmsQueue,\x20%s,\x20%s','request\x20sent','debug','SmsQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','GetSmsQueue','findAll','options','raw','attributes','limit','include','map','model','then','SmsQueue','find','where','ShowSmsQueue','lodash','util','randomstring','../../mysqldb'];(function(_0x55ba0a,_0x516fca){var _0x748863=function(_0x820c02){while(--_0x820c02){_0x55ba0a['push'](_0x55ba0a['shift']());}};_0x748863(++_0x516fca);}(_0xdd2d,0x16e));var _0xddd2=function(_0x3a7adb,_0x380f46){_0x3a7adb=_0x3a7adb-0x0;var _0x2e79b1=_0xdd2d[_0x3a7adb];return _0x2e79b1;};'use strict';var _=require(_0xddd2('0x0'));var util=require(_0xddd2('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0xddd2('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xddd2('0x3'))['db'];var utils=require('../../config/utils');var logger=require(_0xddd2('0x4'))(_0xddd2('0x5'));var config=require('../../config/environment');var jayson=require(_0xddd2('0x6'));var client=jayson[_0xddd2('0x7')][_0xddd2('0x8')]({'port':0x232a});config[_0xddd2('0x9')]=_['defaults'](config[_0xddd2('0x9')],{'host':_0xddd2('0xa'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xddd2('0x9')]));require(_0xddd2('0xb'))['register'](socket);function respondWithRpcPromise(_0x1415ca,_0x5e518c,_0x548dce){return new BPromise(function(_0x1910bf,_0x414070){return client[_0xddd2('0xc')](_0x1415ca,_0x548dce)['then'](function(_0x2faba5){logger[_0xddd2('0xd')](_0xddd2('0xe'),_0x5e518c,_0xddd2('0xf'));logger[_0xddd2('0x10')](_0xddd2('0x11'),_0x5e518c,'request\x20sent',JSON[_0xddd2('0x12')](_0x2faba5));if(_0x2faba5[_0xddd2('0x13')]){if(_0x2faba5['error'][_0xddd2('0x14')]===0x1f4){logger[_0xddd2('0x13')](_0xddd2('0xe'),_0x5e518c,_0x2faba5['error'][_0xddd2('0x15')]);return _0x414070(_0x2faba5[_0xddd2('0x13')]['message']);}logger[_0xddd2('0x13')](_0xddd2('0xe'),_0x5e518c,_0x2faba5[_0xddd2('0x13')]['message']);return _0x1910bf(_0x2faba5[_0xddd2('0x13')][_0xddd2('0x15')]);}else{logger[_0xddd2('0xd')]('SmsQueue,\x20%s,\x20%s',_0x5e518c,_0xddd2('0xf'));_0x1910bf(_0x2faba5['result']['message']);}})[_0xddd2('0x16')](function(_0x2b5ee1){logger[_0xddd2('0x13')](_0xddd2('0xe'),_0x5e518c,_0x2b5ee1);_0x414070(_0x2b5ee1);});});}exports[_0xddd2('0x17')]=function(_0x4ae76f){var _0x529a4e=this;return new Promise(function(_0x40cbf6,_0x5037a5){return db['SmsQueue'][_0xddd2('0x18')]({'raw':_0x4ae76f[_0xddd2('0x19')]?_0x4ae76f[_0xddd2('0x19')][_0xddd2('0x1a')]===undefined?!![]:![]:!![],'where':_0x4ae76f[_0xddd2('0x19')]?_0x4ae76f[_0xddd2('0x19')]['where']||null:null,'attributes':_0x4ae76f['options']?_0x4ae76f['options'][_0xddd2('0x1b')]||null:null,'limit':_0x4ae76f[_0xddd2('0x19')]?_0x4ae76f[_0xddd2('0x19')][_0xddd2('0x1c')]||null:null,'include':_0x4ae76f[_0xddd2('0x19')]?_0x4ae76f[_0xddd2('0x19')][_0xddd2('0x1d')]?_[_0xddd2('0x1e')](_0x4ae76f[_0xddd2('0x19')][_0xddd2('0x1d')],function(_0x3a5118){return{'model':db[_0x3a5118[_0xddd2('0x1f')]],'as':_0x3a5118['as'],'attributes':_0x3a5118[_0xddd2('0x1b')],'include':_0x3a5118[_0xddd2('0x1d')]?_[_0xddd2('0x1e')](_0x3a5118['include'],function(_0x44799f){return{'model':db[_0x44799f[_0xddd2('0x1f')]],'as':_0x44799f['as'],'attributes':_0x44799f[_0xddd2('0x1b')],'include':_0x44799f['include']?_[_0xddd2('0x1e')](_0x44799f[_0xddd2('0x1d')],function(_0x86e057){return{'model':db[_0x86e057[_0xddd2('0x1f')]],'as':_0x86e057['as'],'attributes':_0x86e057[_0xddd2('0x1b')]};}):[]};}):[]};}):[]:[]})[_0xddd2('0x20')](function(_0x5c41ec){logger[_0xddd2('0xd')](_0xddd2('0x17'),_0x4ae76f);logger['debug'](_0xddd2('0x17'),_0x4ae76f,JSON[_0xddd2('0x12')](_0x5c41ec));_0x40cbf6(_0x5c41ec);})[_0xddd2('0x16')](function(_0x275fca){logger[_0xddd2('0x13')]('GetSmsQueue',_0x275fca[_0xddd2('0x15')],_0x4ae76f);_0x5037a5(_0x529a4e[_0xddd2('0x13')](0x1f4,_0x275fca[_0xddd2('0x15')]));});});};exports['ShowSmsQueue']=function(_0x457f22){var _0x4db602=this;return new Promise(function(_0x1f0230,_0x497251){return db[_0xddd2('0x21')][_0xddd2('0x22')]({'raw':_0x457f22['options']?_0x457f22['options']['raw']===undefined?!![]:![]:!![],'where':_0x457f22[_0xddd2('0x19')]?_0x457f22[_0xddd2('0x19')][_0xddd2('0x23')]||null:null,'attributes':_0x457f22[_0xddd2('0x19')]?_0x457f22['options'][_0xddd2('0x1b')]||null:null,'include':_0x457f22[_0xddd2('0x19')]?_0x457f22[_0xddd2('0x19')][_0xddd2('0x1d')]?_[_0xddd2('0x1e')](_0x457f22[_0xddd2('0x19')][_0xddd2('0x1d')],function(_0x2846bb){return{'model':db[_0x2846bb[_0xddd2('0x1f')]],'as':_0x2846bb['as'],'attributes':_0x2846bb[_0xddd2('0x1b')],'include':_0x2846bb[_0xddd2('0x1d')]?_['map'](_0x2846bb[_0xddd2('0x1d')],function(_0xc09e63){return{'model':db[_0xc09e63[_0xddd2('0x1f')]],'as':_0xc09e63['as'],'attributes':_0xc09e63[_0xddd2('0x1b')],'include':_0xc09e63[_0xddd2('0x1d')]?_[_0xddd2('0x1e')](_0xc09e63[_0xddd2('0x1d')],function(_0x241c71){return{'model':db[_0x241c71['model']],'as':_0x241c71['as'],'attributes':_0x241c71[_0xddd2('0x1b')]};}):[]};}):[]};}):[]:[]})[_0xddd2('0x20')](function(_0x72baaf){logger[_0xddd2('0xd')](_0xddd2('0x24'),_0x457f22);logger[_0xddd2('0x10')](_0xddd2('0x24'),_0x457f22,JSON[_0xddd2('0x12')](_0x72baaf));_0x1f0230(_0x72baaf);})[_0xddd2('0x16')](function(_0x33c101){logger[_0xddd2('0x13')]('ShowSmsQueue',_0x33c101[_0xddd2('0x15')],_0x457f22);_0x497251(_0x4db602[_0xddd2('0x13')](0x1f4,_0x33c101[_0xddd2('0x15')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe9ec=['./smsQueue.events','save','remove','update','register','smsQueue:'];(function(_0x7690a0,_0x544db6){var _0x4d5a83=function(_0x4abf48){while(--_0x4abf48){_0x7690a0['push'](_0x7690a0['shift']());}};_0x4d5a83(++_0x544db6);}(_0xe9ec,0x72));var _0xce9e=function(_0x122ef9,_0x451d2a){_0x122ef9=_0x122ef9-0x0;var _0x42fba0=_0xe9ec[_0x122ef9];return _0x42fba0;};'use strict';var SmsQueueEvents=require(_0xce9e('0x0'));var events=[_0xce9e('0x1'),_0xce9e('0x2'),_0xce9e('0x3')];function createListener(_0x5deca2,_0x3100b4){return function(_0xda8519){_0x3100b4['emit'](_0x5deca2,_0xda8519);};}function removeListener(_0x3948de,_0x47d139){return function(){SmsQueueEvents['removeListener'](_0x3948de,_0x47d139);};}exports[_0xce9e('0x4')]=function(_0x1dd222){for(var _0x374703=0x0,_0xfe9381=events['length'];_0x374703<_0xfe9381;_0x374703++){var _0x411ba9=events[_0x374703];var _0x5e0844=createListener(_0xce9e('0x5')+_0x411ba9,_0x1dd222);SmsQueueEvents['on'](_0x411ba9,_0x5e0844);}};
\ No newline at end of file
+var _0xc177=['save','remove','update','removeListener','register','length','smsQueue:','./smsQueue.events'];(function(_0x1fb193,_0x2ed4e5){var _0x338ad8=function(_0x94b5b5){while(--_0x94b5b5){_0x1fb193['push'](_0x1fb193['shift']());}};_0x338ad8(++_0x2ed4e5);}(_0xc177,0x197));var _0x7c17=function(_0x3a87c6,_0x113074){_0x3a87c6=_0x3a87c6-0x0;var _0x405e88=_0xc177[_0x3a87c6];return _0x405e88;};'use strict';var SmsQueueEvents=require(_0x7c17('0x0'));var events=[_0x7c17('0x1'),_0x7c17('0x2'),_0x7c17('0x3')];function createListener(_0xbe65e,_0x3e25ef){return function(_0x5cb4b2){_0x3e25ef['emit'](_0xbe65e,_0x5cb4b2);};}function removeListener(_0x344dc2,_0x2ad682){return function(){SmsQueueEvents[_0x7c17('0x4')](_0x344dc2,_0x2ad682);};}exports[_0x7c17('0x5')]=function(_0x4a6561){for(var _0x612c32=0x0,_0x52d827=events[_0x7c17('0x6')];_0x612c32<_0x52d827;_0x612c32++){var _0x52191b=events[_0x612c32];var _0x424c18=createListener(_0x7c17('0x7')+_0x52191b,_0x4a6561);SmsQueueEvents['on'](_0x52191b,_0x424c18);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8ccc=['isAuthenticated','/describe','describe','/:id','show','post','create','update','delete','exports','multer','connect-timeout','fs-extra','../../components/interaction/service','../../config/environment','./smsQueueReport.controller','get'];(function(_0x584d2a,_0x225d3e){var _0x48a185=function(_0xe0822a){while(--_0xe0822a){_0x584d2a['push'](_0x584d2a['shift']());}};_0x48a185(++_0x225d3e);}(_0x8ccc,0x16f));var _0xc8cc=function(_0x50d82f,_0x447eb1){_0x50d82f=_0x50d82f-0x0;var _0x30044b=_0x8ccc[_0x50d82f];return _0x30044b;};'use strict';var multer=require(_0xc8cc('0x0'));var util=require('util');var path=require('path');var timeout=require(_0xc8cc('0x1'));var express=require('express');var router=express['Router']();var fs_extra=require(_0xc8cc('0x2'));var auth=require('../../components/auth/service');var interaction=require(_0xc8cc('0x3'));var config=require(_0xc8cc('0x4'));var controller=require(_0xc8cc('0x5'));router[_0xc8cc('0x6')]('/',auth[_0xc8cc('0x7')](),controller['index']);router['get'](_0xc8cc('0x8'),auth[_0xc8cc('0x7')](),controller[_0xc8cc('0x9')]);router[_0xc8cc('0x6')](_0xc8cc('0xa'),auth[_0xc8cc('0x7')](),controller[_0xc8cc('0xb')]);router[_0xc8cc('0xc')]('/',auth[_0xc8cc('0x7')](),controller[_0xc8cc('0xd')]);router['put'](_0xc8cc('0xa'),auth['isAuthenticated'](),controller[_0xc8cc('0xe')]);router[_0xc8cc('0xf')](_0xc8cc('0xa'),auth[_0xc8cc('0x7')](),controller['destroy']);module[_0xc8cc('0x10')]=router;
\ No newline at end of file
+var _0x5e8d=['/describe','describe','show','post','create','/:id','delete','destroy','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','get','isAuthenticated','index'];(function(_0x4bd67a,_0x4f9725){var _0x2be5fb=function(_0x33e132){while(--_0x33e132){_0x4bd67a['push'](_0x4bd67a['shift']());}};_0x2be5fb(++_0x4f9725);}(_0x5e8d,0x11a));var _0xd5e8=function(_0x46fa18,_0xd379cb){_0x46fa18=_0x46fa18-0x0;var _0x5e9075=_0x5e8d[_0x46fa18];return _0x5e9075;};'use strict';var multer=require(_0xd5e8('0x0'));var util=require(_0xd5e8('0x1'));var path=require(_0xd5e8('0x2'));var timeout=require(_0xd5e8('0x3'));var express=require(_0xd5e8('0x4'));var router=express[_0xd5e8('0x5')]();var fs_extra=require(_0xd5e8('0x6'));var auth=require('../../components/auth/service');var interaction=require(_0xd5e8('0x7'));var config=require(_0xd5e8('0x8'));var controller=require('./smsQueueReport.controller');router[_0xd5e8('0x9')]('/',auth[_0xd5e8('0xa')](),controller[_0xd5e8('0xb')]);router['get'](_0xd5e8('0xc'),auth[_0xd5e8('0xa')](),controller[_0xd5e8('0xd')]);router[_0xd5e8('0x9')]('/:id',auth['isAuthenticated'](),controller[_0xd5e8('0xe')]);router[_0xd5e8('0xf')]('/',auth[_0xd5e8('0xa')](),controller[_0xd5e8('0x10')]);router['put'](_0xd5e8('0x11'),auth[_0xd5e8('0xa')](),controller['update']);router[_0xd5e8('0x12')](_0xd5e8('0x11'),auth[_0xd5e8('0xa')](),controller[_0xd5e8('0x13')]);module[_0xd5e8('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1c76=['STRING','DATE','sequelize','exports'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x1c76,0x11a));var _0x61c7=function(_0x59e2f8,_0x4fb359){_0x59e2f8=_0x59e2f8-0x0;var _0x4d9a29=_0x1c76[_0x59e2f8];return _0x4d9a29;};'use strict';var moment=require('moment');var Sequelize=require(_0x61c7('0x0'));module[_0x61c7('0x1')]={'uniqueid':{'type':Sequelize[_0x61c7('0x2')],'allowNull':![]},'from':{'type':Sequelize[_0x61c7('0x2')]},'joinAt':{'type':Sequelize[_0x61c7('0x3')]},'leaveAt':{'type':Sequelize[_0x61c7('0x3')]},'acceptAt':{'type':Sequelize[_0x61c7('0x3')]},'exitAt':{'type':Sequelize['DATE']},'reason':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0x839e=['exports','STRING','DATE','moment'];(function(_0x1da09b,_0x1804bd){var _0x1fa032=function(_0x123423){while(--_0x123423){_0x1da09b['push'](_0x1da09b['shift']());}};_0x1fa032(++_0x1804bd);}(_0x839e,0x117));var _0xe839=function(_0x16b561,_0x5a914f){_0x16b561=_0x16b561-0x0;var _0x22599f=_0x839e[_0x16b561];return _0x22599f;};'use strict';var moment=require(_0xe839('0x0'));var Sequelize=require('sequelize');module[_0xe839('0x1')]={'uniqueid':{'type':Sequelize['STRING'],'allowNull':![]},'from':{'type':Sequelize[_0xe839('0x2')]},'joinAt':{'type':Sequelize[_0xe839('0x3')]},'leaveAt':{'type':Sequelize[_0xe839('0x3')]},'acceptAt':{'type':Sequelize[_0xe839('0x3')]},'exitAt':{'type':Sequelize[_0xe839('0x3')]},'reason':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x04e2=['include','rows','catch','show','rawAttributes','includeAll','options','create','body','find','params','destroy','describe','eml-format','rimraf','zip-dir','moment','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','count','limit','Content-Range','apply','reject','save','then','end','error','name','index','SmsQueueReport','fieldName','type','key','model','map','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','VIRTUAL','merge'];(function(_0x1ad68e,_0x16562f){var _0x82d21e=function(_0x755572){while(--_0x755572){_0x1ad68e['push'](_0x1ad68e['shift']());}};_0x82d21e(++_0x16562f);}(_0x04e2,0x17f));var _0x204e=function(_0x2e32db,_0x11b6dd){_0x2e32db=_0x2e32db-0x0;var _0x1575e5=_0x04e2[_0x2e32db];return _0x1575e5;};'use strict';var emlformat=require(_0x204e('0x0'));var rimraf=require(_0x204e('0x1'));var zipdir=require(_0x204e('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x204e('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x204e('0x4'));var util=require(_0x204e('0x5'));var path=require(_0x204e('0x6'));var sox=require(_0x204e('0x7'));var csv=require(_0x204e('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x204e('0x9'));var _=require(_0x204e('0xa'));var squel=require(_0x204e('0xb'));var crypto=require(_0x204e('0xc'));var jsforce=require(_0x204e('0xd'));var deskjs=require(_0x204e('0xe'));var toCsv=require(_0x204e('0x8'));var querystring=require(_0x204e('0xf'));var Papa=require(_0x204e('0x10'));var Redis=require(_0x204e('0x11'));var authService=require(_0x204e('0x12'));var qs=require(_0x204e('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x204e('0x14'));var logger=require('../../config/logger')(_0x204e('0x15'));var utils=require('../../config/utils');var config=require(_0x204e('0x16'));var licenseUtil=require(_0x204e('0x17'));var db=require(_0x204e('0x18'))['db'];function respondWithStatusCode(_0x46a4e2,_0x49bdca){_0x49bdca=_0x49bdca||0xcc;return function(_0x9cba70){if(_0x9cba70){return _0x46a4e2[_0x204e('0x19')](_0x49bdca);}return _0x46a4e2[_0x204e('0x1a')](_0x49bdca)['end']();};}function respondWithResult(_0x4f81cb,_0x523c7e){_0x523c7e=_0x523c7e||0xc8;return function(_0x1a195b){if(_0x1a195b){return _0x4f81cb['status'](_0x523c7e)[_0x204e('0x1b')](_0x1a195b);}};}function respondWithFilteredResult(_0x18b982,_0xe97c8f){return function(_0x241e39){if(_0x241e39){var _0x4337b7=typeof _0xe97c8f[_0x204e('0x1c')]===_0x204e('0x1d')&&typeof _0xe97c8f['limit']===_0x204e('0x1d');var _0x499f8e=_0x241e39[_0x204e('0x1e')];var _0x23db73=_0x4337b7?0x0:_0xe97c8f[_0x204e('0x1c')];var _0x463ed1=_0x4337b7?_0x241e39['count']:_0xe97c8f[_0x204e('0x1c')]+_0xe97c8f[_0x204e('0x1f')];var _0x38ee42;if(_0x463ed1>=_0x499f8e){_0x463ed1=_0x499f8e;_0x38ee42=0xc8;}else{_0x38ee42=0xce;}_0x18b982['status'](_0x38ee42);return _0x18b982['set'](_0x204e('0x20'),_0x23db73+'-'+_0x463ed1+'/'+_0x499f8e)[_0x204e('0x1b')](_0x241e39);}return null;};}function patchUpdates(_0x31e4f1){return function(_0x28b76d){try{jsonpatch[_0x204e('0x21')](_0x28b76d,_0x31e4f1,!![]);}catch(_0x4545ce){return BPromise[_0x204e('0x22')](_0x4545ce);}return _0x28b76d[_0x204e('0x23')]();};}function saveUpdates(_0x5cf8a9,_0x44ce2f){return function(_0x6f847b){if(_0x6f847b){return _0x6f847b['update'](_0x5cf8a9)[_0x204e('0x24')](function(_0x4a1be9){return _0x4a1be9;});}return null;};}function removeEntity(_0x5143a6,_0x48cc31){return function(_0x11bf6f){if(_0x11bf6f){return _0x11bf6f['destroy']()[_0x204e('0x24')](function(){_0x5143a6[_0x204e('0x1a')](0xcc)[_0x204e('0x25')]();});}};}function handleEntityNotFound(_0x15c171,_0x4e1270){return function(_0x5bc2da){if(!_0x5bc2da){_0x15c171['sendStatus'](0x194);}return _0x5bc2da;};}function handleError(_0x523539,_0x27aba7){_0x27aba7=_0x27aba7||0x1f4;return function(_0xee5648){logger[_0x204e('0x26')](_0xee5648['stack']);if(_0xee5648[_0x204e('0x27')]){delete _0xee5648[_0x204e('0x27')];}_0x523539[_0x204e('0x1a')](_0x27aba7)['send'](_0xee5648);};}exports[_0x204e('0x28')]=function(_0x564e12,_0x490f4c){var _0x105b71={},_0x2f38f4={},_0x5b9bbf={'count':0x0,'rows':[]};var _0x3a3056=_['map'](db[_0x204e('0x29')]['rawAttributes'],function(_0x264f25){return{'name':_0x264f25[_0x204e('0x2a')],'type':_0x264f25[_0x204e('0x2b')][_0x204e('0x2c')]};});_0x2f38f4[_0x204e('0x2d')]=_[_0x204e('0x2e')](_0x3a3056,_0x204e('0x27'));_0x2f38f4[_0x204e('0x2f')]=_[_0x204e('0x30')](_0x564e12[_0x204e('0x2f')]);_0x2f38f4['filters']=_[_0x204e('0x31')](_0x2f38f4['model'],_0x2f38f4[_0x204e('0x2f')]);_0x105b71[_0x204e('0x32')]=_[_0x204e('0x31')](_0x2f38f4['model'],qs[_0x204e('0x33')](_0x564e12[_0x204e('0x2f')]['fields']));_0x105b71['attributes']=_0x105b71[_0x204e('0x32')][_0x204e('0x34')]?_0x105b71['attributes']:_0x2f38f4['model'];if(!_0x564e12[_0x204e('0x2f')][_0x204e('0x35')](_0x204e('0x36'))){_0x105b71[_0x204e('0x1f')]=qs[_0x204e('0x1f')](_0x564e12[_0x204e('0x2f')][_0x204e('0x1f')]);_0x105b71['offset']=qs[_0x204e('0x1c')](_0x564e12[_0x204e('0x2f')][_0x204e('0x1c')]);}_0x105b71[_0x204e('0x37')]=qs[_0x204e('0x38')](_0x564e12['query'][_0x204e('0x38')]);_0x105b71[_0x204e('0x39')]=qs[_0x204e('0x3a')](_['pick'](_0x564e12['query'],_0x2f38f4[_0x204e('0x3a')]),_0x3a3056);if(_0x564e12[_0x204e('0x2f')]['filter']){_0x105b71['where']=_['merge'](_0x105b71['where'],{'$or':_[_0x204e('0x2e')](_0x3a3056,function(_0x389841){if(_0x389841[_0x204e('0x2b')]!==_0x204e('0x3b')){var _0x2897c2={};_0x2897c2[_0x389841[_0x204e('0x27')]]={'$like':'%'+_0x564e12[_0x204e('0x2f')]['filter']+'%'};return _0x2897c2;}})});}_0x105b71=_[_0x204e('0x3c')]({},_0x105b71,_0x564e12['options']);var _0x477ca8={'where':_0x105b71[_0x204e('0x39')]};return db[_0x204e('0x29')][_0x204e('0x1e')](_0x477ca8)[_0x204e('0x24')](function(_0x2fe580){_0x5b9bbf[_0x204e('0x1e')]=_0x2fe580;if(_0x564e12[_0x204e('0x2f')]['includeAll']){_0x105b71[_0x204e('0x3d')]=[{'all':!![]}];}return db['SmsQueueReport']['findAll'](_0x105b71);})[_0x204e('0x24')](function(_0x32df73){_0x5b9bbf[_0x204e('0x3e')]=_0x32df73;return _0x5b9bbf;})[_0x204e('0x24')](respondWithFilteredResult(_0x490f4c,_0x105b71))[_0x204e('0x3f')](handleError(_0x490f4c,null));};exports[_0x204e('0x40')]=function(_0x254e05,_0x337956){var _0x3eb78c={'raw':!![],'where':{'id':_0x254e05['params']['id']}},_0xdd8e01={};_0xdd8e01[_0x204e('0x2d')]=_['keys'](db['SmsQueueReport'][_0x204e('0x41')]);_0xdd8e01[_0x204e('0x2f')]=_[_0x204e('0x30')](_0x254e05[_0x204e('0x2f')]);_0xdd8e01['filters']=_[_0x204e('0x31')](_0xdd8e01[_0x204e('0x2d')],_0xdd8e01[_0x204e('0x2f')]);_0x3eb78c[_0x204e('0x32')]=_[_0x204e('0x31')](_0xdd8e01[_0x204e('0x2d')],qs[_0x204e('0x33')](_0x254e05[_0x204e('0x2f')][_0x204e('0x33')]));_0x3eb78c[_0x204e('0x32')]=_0x3eb78c[_0x204e('0x32')][_0x204e('0x34')]?_0x3eb78c[_0x204e('0x32')]:_0xdd8e01['model'];if(_0x254e05[_0x204e('0x2f')][_0x204e('0x42')]){_0x3eb78c[_0x204e('0x3d')]=[{'all':!![]}];}_0x3eb78c=_[_0x204e('0x3c')]({},_0x3eb78c,_0x254e05[_0x204e('0x43')]);return db[_0x204e('0x29')]['find'](_0x3eb78c)[_0x204e('0x24')](handleEntityNotFound(_0x337956,null))[_0x204e('0x24')](respondWithResult(_0x337956,null))['catch'](handleError(_0x337956,null));};exports[_0x204e('0x44')]=function(_0x467d97,_0x439b50){return db[_0x204e('0x29')][_0x204e('0x44')](_0x467d97[_0x204e('0x45')],{})[_0x204e('0x24')](respondWithResult(_0x439b50,0xc9))['catch'](handleError(_0x439b50,null));};exports['update']=function(_0x2d5a25,_0x55bf7b){if(_0x2d5a25[_0x204e('0x45')]['id']){delete _0x2d5a25[_0x204e('0x45')]['id'];}return db[_0x204e('0x29')][_0x204e('0x46')]({'where':{'id':_0x2d5a25[_0x204e('0x47')]['id']}})[_0x204e('0x24')](handleEntityNotFound(_0x55bf7b,null))[_0x204e('0x24')](saveUpdates(_0x2d5a25[_0x204e('0x45')],null))[_0x204e('0x24')](respondWithResult(_0x55bf7b,null))[_0x204e('0x3f')](handleError(_0x55bf7b,null));};exports[_0x204e('0x48')]=function(_0x333707,_0x564d97){return db[_0x204e('0x29')]['find']({'where':{'id':_0x333707[_0x204e('0x47')]['id']}})[_0x204e('0x24')](handleEntityNotFound(_0x564d97,null))[_0x204e('0x24')](removeEntity(_0x564d97,null))[_0x204e('0x3f')](handleError(_0x564d97,null));};exports[_0x204e('0x49')]=function(_0x247235,_0x14b8bd){return db[_0x204e('0x29')]['describe']()[_0x204e('0x24')](respondWithResult(_0x14b8bd,null))[_0x204e('0x3f')](handleError(_0x14b8bd,null));};
\ No newline at end of file
+var _0x5d7b=['rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','to-csv','ejs','fs-extra','lodash','squel','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/license/util','sendStatus','status','end','offset','undefined','limit','count','apply','reject','save','update','then','destroy','stack','name','index','rawAttributes','fieldName','type','key','model','map','query','keys','intersection','attributes','fields','length','sort','where','pick','filters','filter','merge','options','SmsQueueReport','includeAll','findAll','catch','show','params','include','find','create','body','describe','eml-format'];(function(_0x3a2096,_0x515896){var _0x4d6b41=function(_0x10a6f7){while(--_0x10a6f7){_0x3a2096['push'](_0x3a2096['shift']());}};_0x4d6b41(++_0x515896);}(_0x5d7b,0x1e2));var _0xb5d7=function(_0x3a8a93,_0x91d782){_0x3a8a93=_0x3a8a93-0x0;var _0x223d43=_0x5d7b[_0x3a8a93];return _0x223d43;};'use strict';var emlformat=require(_0xb5d7('0x0'));var rimraf=require(_0xb5d7('0x1'));var zipdir=require(_0xb5d7('0x2'));var jsonpatch=require(_0xb5d7('0x3'));var rp=require(_0xb5d7('0x4'));var moment=require(_0xb5d7('0x5'));var BPromise=require(_0xb5d7('0x6'));var Mustache=require(_0xb5d7('0x7'));var util=require('util');var path=require(_0xb5d7('0x8'));var sox=require('sox');var csv=require(_0xb5d7('0x9'));var ejs=require(_0xb5d7('0xa'));var fs=require('fs');var fs_extra=require(_0xb5d7('0xb'));var _=require(_0xb5d7('0xc'));var squel=require(_0xb5d7('0xd'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xb5d7('0xe'));var toCsv=require(_0xb5d7('0x9'));var querystring=require(_0xb5d7('0xf'));var Papa=require(_0xb5d7('0x10'));var Redis=require('ioredis');var authService=require(_0xb5d7('0x11'));var qs=require(_0xb5d7('0x12'));var as=require(_0xb5d7('0x13'));var hardwareService=require(_0xb5d7('0x14'));var logger=require('../../config/logger')(_0xb5d7('0x15'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0xb5d7('0x16'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x567729,_0x44c07c){_0x44c07c=_0x44c07c||0xcc;return function(_0x5582c8){if(_0x5582c8){return _0x567729[_0xb5d7('0x17')](_0x44c07c);}return _0x567729[_0xb5d7('0x18')](_0x44c07c)[_0xb5d7('0x19')]();};}function respondWithResult(_0x5c8889,_0x575374){_0x575374=_0x575374||0xc8;return function(_0x28234f){if(_0x28234f){return _0x5c8889[_0xb5d7('0x18')](_0x575374)['json'](_0x28234f);}};}function respondWithFilteredResult(_0x446497,_0x1dc57a){return function(_0x1a6064){if(_0x1a6064){var _0x25bc06=typeof _0x1dc57a[_0xb5d7('0x1a')]===_0xb5d7('0x1b')&&typeof _0x1dc57a[_0xb5d7('0x1c')]==='undefined';var _0x342167=_0x1a6064['count'];var _0x27debc=_0x25bc06?0x0:_0x1dc57a['offset'];var _0x435e1e=_0x25bc06?_0x1a6064[_0xb5d7('0x1d')]:_0x1dc57a[_0xb5d7('0x1a')]+_0x1dc57a[_0xb5d7('0x1c')];var _0x1d03d0;if(_0x435e1e>=_0x342167){_0x435e1e=_0x342167;_0x1d03d0=0xc8;}else{_0x1d03d0=0xce;}_0x446497[_0xb5d7('0x18')](_0x1d03d0);return _0x446497['set']('Content-Range',_0x27debc+'-'+_0x435e1e+'/'+_0x342167)['json'](_0x1a6064);}return null;};}function patchUpdates(_0x62887f){return function(_0x24bba8){try{jsonpatch[_0xb5d7('0x1e')](_0x24bba8,_0x62887f,!![]);}catch(_0x4fc989){return BPromise[_0xb5d7('0x1f')](_0x4fc989);}return _0x24bba8[_0xb5d7('0x20')]();};}function saveUpdates(_0x326f30,_0x4c450d){return function(_0x46bb0d){if(_0x46bb0d){return _0x46bb0d[_0xb5d7('0x21')](_0x326f30)[_0xb5d7('0x22')](function(_0x2d494d){return _0x2d494d;});}return null;};}function removeEntity(_0x4c586b,_0x44e566){return function(_0x2653b1){if(_0x2653b1){return _0x2653b1[_0xb5d7('0x23')]()[_0xb5d7('0x22')](function(){_0x4c586b[_0xb5d7('0x18')](0xcc)[_0xb5d7('0x19')]();});}};}function handleEntityNotFound(_0x3a9a22,_0x4ed7aa){return function(_0x5402f5){if(!_0x5402f5){_0x3a9a22[_0xb5d7('0x17')](0x194);}return _0x5402f5;};}function handleError(_0x50a709,_0x1b0913){_0x1b0913=_0x1b0913||0x1f4;return function(_0x2e0dbd){logger['error'](_0x2e0dbd[_0xb5d7('0x24')]);if(_0x2e0dbd[_0xb5d7('0x25')]){delete _0x2e0dbd['name'];}_0x50a709['status'](_0x1b0913)['send'](_0x2e0dbd);};}exports[_0xb5d7('0x26')]=function(_0x4311dc,_0x529282){var _0x4a1eb9={},_0x30761c={},_0x768d91={'count':0x0,'rows':[]};var _0x518517=_['map'](db['SmsQueueReport'][_0xb5d7('0x27')],function(_0xe00339){return{'name':_0xe00339[_0xb5d7('0x28')],'type':_0xe00339[_0xb5d7('0x29')][_0xb5d7('0x2a')]};});_0x30761c[_0xb5d7('0x2b')]=_[_0xb5d7('0x2c')](_0x518517,_0xb5d7('0x25'));_0x30761c[_0xb5d7('0x2d')]=_[_0xb5d7('0x2e')](_0x4311dc[_0xb5d7('0x2d')]);_0x30761c['filters']=_[_0xb5d7('0x2f')](_0x30761c[_0xb5d7('0x2b')],_0x30761c[_0xb5d7('0x2d')]);_0x4a1eb9[_0xb5d7('0x30')]=_[_0xb5d7('0x2f')](_0x30761c[_0xb5d7('0x2b')],qs[_0xb5d7('0x31')](_0x4311dc[_0xb5d7('0x2d')]['fields']));_0x4a1eb9[_0xb5d7('0x30')]=_0x4a1eb9['attributes'][_0xb5d7('0x32')]?_0x4a1eb9[_0xb5d7('0x30')]:_0x30761c['model'];if(!_0x4311dc[_0xb5d7('0x2d')]['hasOwnProperty']('nolimit')){_0x4a1eb9[_0xb5d7('0x1c')]=qs['limit'](_0x4311dc[_0xb5d7('0x2d')][_0xb5d7('0x1c')]);_0x4a1eb9[_0xb5d7('0x1a')]=qs[_0xb5d7('0x1a')](_0x4311dc[_0xb5d7('0x2d')][_0xb5d7('0x1a')]);}_0x4a1eb9['order']=qs[_0xb5d7('0x33')](_0x4311dc[_0xb5d7('0x2d')][_0xb5d7('0x33')]);_0x4a1eb9[_0xb5d7('0x34')]=qs['filters'](_[_0xb5d7('0x35')](_0x4311dc[_0xb5d7('0x2d')],_0x30761c[_0xb5d7('0x36')]),_0x518517);if(_0x4311dc[_0xb5d7('0x2d')][_0xb5d7('0x37')]){_0x4a1eb9[_0xb5d7('0x34')]=_['merge'](_0x4a1eb9['where'],{'$or':_[_0xb5d7('0x2c')](_0x518517,function(_0x7777c6){if(_0x7777c6[_0xb5d7('0x29')]!=='VIRTUAL'){var _0x298a63={};_0x298a63[_0x7777c6[_0xb5d7('0x25')]]={'$like':'%'+_0x4311dc[_0xb5d7('0x2d')]['filter']+'%'};return _0x298a63;}})});}_0x4a1eb9=_[_0xb5d7('0x38')]({},_0x4a1eb9,_0x4311dc[_0xb5d7('0x39')]);var _0x4d80d7={'where':_0x4a1eb9[_0xb5d7('0x34')]};return db[_0xb5d7('0x3a')][_0xb5d7('0x1d')](_0x4d80d7)[_0xb5d7('0x22')](function(_0xd37c75){_0x768d91[_0xb5d7('0x1d')]=_0xd37c75;if(_0x4311dc['query'][_0xb5d7('0x3b')]){_0x4a1eb9['include']=[{'all':!![]}];}return db['SmsQueueReport'][_0xb5d7('0x3c')](_0x4a1eb9);})['then'](function(_0x3df1c8){_0x768d91['rows']=_0x3df1c8;return _0x768d91;})[_0xb5d7('0x22')](respondWithFilteredResult(_0x529282,_0x4a1eb9))[_0xb5d7('0x3d')](handleError(_0x529282,null));};exports[_0xb5d7('0x3e')]=function(_0x56557d,_0x11bd20){var _0x213df7={'raw':!![],'where':{'id':_0x56557d[_0xb5d7('0x3f')]['id']}},_0x556267={};_0x556267['model']=_[_0xb5d7('0x2e')](db[_0xb5d7('0x3a')][_0xb5d7('0x27')]);_0x556267[_0xb5d7('0x2d')]=_['keys'](_0x56557d[_0xb5d7('0x2d')]);_0x556267[_0xb5d7('0x36')]=_[_0xb5d7('0x2f')](_0x556267[_0xb5d7('0x2b')],_0x556267[_0xb5d7('0x2d')]);_0x213df7[_0xb5d7('0x30')]=_[_0xb5d7('0x2f')](_0x556267['model'],qs[_0xb5d7('0x31')](_0x56557d['query']['fields']));_0x213df7[_0xb5d7('0x30')]=_0x213df7[_0xb5d7('0x30')][_0xb5d7('0x32')]?_0x213df7[_0xb5d7('0x30')]:_0x556267[_0xb5d7('0x2b')];if(_0x56557d[_0xb5d7('0x2d')][_0xb5d7('0x3b')]){_0x213df7[_0xb5d7('0x40')]=[{'all':!![]}];}_0x213df7=_[_0xb5d7('0x38')]({},_0x213df7,_0x56557d[_0xb5d7('0x39')]);return db['SmsQueueReport'][_0xb5d7('0x41')](_0x213df7)[_0xb5d7('0x22')](handleEntityNotFound(_0x11bd20,null))[_0xb5d7('0x22')](respondWithResult(_0x11bd20,null))[_0xb5d7('0x3d')](handleError(_0x11bd20,null));};exports['create']=function(_0x14a3e2,_0x45f0c1){return db[_0xb5d7('0x3a')][_0xb5d7('0x42')](_0x14a3e2[_0xb5d7('0x43')],{})['then'](respondWithResult(_0x45f0c1,0xc9))[_0xb5d7('0x3d')](handleError(_0x45f0c1,null));};exports[_0xb5d7('0x21')]=function(_0x154735,_0x18fc77){if(_0x154735[_0xb5d7('0x43')]['id']){delete _0x154735['body']['id'];}return db['SmsQueueReport']['find']({'where':{'id':_0x154735[_0xb5d7('0x3f')]['id']}})[_0xb5d7('0x22')](handleEntityNotFound(_0x18fc77,null))[_0xb5d7('0x22')](saveUpdates(_0x154735['body'],null))[_0xb5d7('0x22')](respondWithResult(_0x18fc77,null))[_0xb5d7('0x3d')](handleError(_0x18fc77,null));};exports[_0xb5d7('0x23')]=function(_0xd1a27,_0xc8c1bd){return db['SmsQueueReport'][_0xb5d7('0x41')]({'where':{'id':_0xd1a27[_0xb5d7('0x3f')]['id']}})[_0xb5d7('0x22')](handleEntityNotFound(_0xc8c1bd,null))[_0xb5d7('0x22')](removeEntity(_0xc8c1bd,null))['catch'](handleError(_0xc8c1bd,null));};exports[_0xb5d7('0x44')]=function(_0x4662fc,_0x57a210){return db['SmsQueueReport']['describe']()['then'](respondWithResult(_0x57a210,null))[_0xb5d7('0x3d')](handleError(_0x57a210,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbaf0=['define','SmsQueueReport','report_sms_queue','uniqueid','util','../../config/logger','api','moment','bluebird','request-promise','rimraf','../../config/environment','./smsQueueReport.attributes','exports'];(function(_0x4d443e,_0x4ac26c){var _0x468e82=function(_0x357c49){while(--_0x357c49){_0x4d443e['push'](_0x4d443e['shift']());}};_0x468e82(++_0x4ac26c);}(_0xbaf0,0x12a));var _0x0baf=function(_0x2b4411,_0x2625ed){_0x2b4411=_0x2b4411-0x0;var _0x8e41ef=_0xbaf0[_0x2b4411];return _0x8e41ef;};'use strict';var _=require('lodash');var util=require(_0x0baf('0x0'));var logger=require(_0x0baf('0x1'))(_0x0baf('0x2'));var moment=require(_0x0baf('0x3'));var BPromise=require(_0x0baf('0x4'));var rp=require(_0x0baf('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0x0baf('0x6'));var config=require(_0x0baf('0x7'));var attributes=require(_0x0baf('0x8'));module[_0x0baf('0x9')]=function(_0xe4c3c4,_0x335e24){return _0xe4c3c4[_0x0baf('0xa')](_0x0baf('0xb'),attributes,{'tableName':_0x0baf('0xc'),'paranoid':![],'indexes':[{'name':'uniqueid','fields':[_0x0baf('0xd')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xa9e0=['define','SmsQueueReport','uniqueid','lodash','util','../../config/logger','bluebird','path','rimraf','../../config/environment','./smsQueueReport.attributes','exports'];(function(_0x19950b,_0x53d0d7){var _0x3c6b41=function(_0x3924ad){while(--_0x3924ad){_0x19950b['push'](_0x19950b['shift']());}};_0x3c6b41(++_0x53d0d7);}(_0xa9e0,0x123));var _0x0a9e=function(_0x36dfbd,_0x5bfe2d){_0x36dfbd=_0x36dfbd-0x0;var _0x4ecad9=_0xa9e0[_0x36dfbd];return _0x4ecad9;};'use strict';var _=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var logger=require(_0x0a9e('0x2'))('api');var moment=require('moment');var BPromise=require(_0x0a9e('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x0a9e('0x4'));var rimraf=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));var attributes=require(_0x0a9e('0x7'));module[_0x0a9e('0x8')]=function(_0x57b080,_0x219af0){return _0x57b080[_0x0a9e('0x9')](_0x0a9e('0xa'),attributes,{'tableName':'report_sms_queue','paranoid':![],'indexes':[{'name':'uniqueid','fields':[_0x0a9e('0xb')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5275=['SmsQueueReport','create','body','options','UpdateSmsQueueReport','update','raw','where','attributes','limit','lodash','util','moment','bluebird','randomstring','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','then','request\x20sent','debug','stringify','error','code','SmsQueueReport,\x20%s,\x20%s','message','info','result','catch','CreateSmsQueueReport'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x5275,0x1e6));var _0x5527=function(_0x3ced9d,_0x18daa5){_0x3ced9d=_0x3ced9d-0x0;var _0xa06cbb=_0x5275[_0x3ced9d];return _0xa06cbb;};'use strict';var _=require(_0x5527('0x0'));var util=require(_0x5527('0x1'));var moment=require(_0x5527('0x2'));var BPromise=require(_0x5527('0x3'));var rs=require(_0x5527('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x5527('0x5'));var logger=require(_0x5527('0x6'))(_0x5527('0x7'));var config=require(_0x5527('0x8'));var jayson=require(_0x5527('0x9'));var client=jayson[_0x5527('0xa')][_0x5527('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x275532,_0xd3e822,_0x217dbb){return new BPromise(function(_0x2bf611,_0xe2bfa0){return client['request'](_0x275532,_0x217dbb)[_0x5527('0xc')](function(_0x3b6bf0){logger['info']('SmsQueueReport,\x20%s,\x20%s',_0xd3e822,_0x5527('0xd'));logger[_0x5527('0xe')]('SmsQueueReport,\x20%s,\x20%s,\x20%s',_0xd3e822,_0x5527('0xd'),JSON[_0x5527('0xf')](_0x3b6bf0));if(_0x3b6bf0[_0x5527('0x10')]){if(_0x3b6bf0['error'][_0x5527('0x11')]===0x1f4){logger['error'](_0x5527('0x12'),_0xd3e822,_0x3b6bf0[_0x5527('0x10')][_0x5527('0x13')]);return _0xe2bfa0(_0x3b6bf0[_0x5527('0x10')][_0x5527('0x13')]);}logger[_0x5527('0x10')](_0x5527('0x12'),_0xd3e822,_0x3b6bf0[_0x5527('0x10')][_0x5527('0x13')]);return _0x2bf611(_0x3b6bf0['error'][_0x5527('0x13')]);}else{logger[_0x5527('0x14')](_0x5527('0x12'),_0xd3e822,_0x5527('0xd'));_0x2bf611(_0x3b6bf0[_0x5527('0x15')][_0x5527('0x13')]);}})[_0x5527('0x16')](function(_0x4f920b){logger[_0x5527('0x10')](_0x5527('0x12'),_0xd3e822,_0x4f920b);_0xe2bfa0(_0x4f920b);});});}exports[_0x5527('0x17')]=function(_0x124db0){var _0x169c9a=this;return new Promise(function(_0x4e52fd,_0x3bb214){return db[_0x5527('0x18')][_0x5527('0x19')](_0x124db0[_0x5527('0x1a')],{'raw':_0x124db0['options']?_0x124db0[_0x5527('0x1b')]['raw']===undefined?!![]:![]:!![]})[_0x5527('0xc')](function(_0x132177){logger[_0x5527('0x14')]('CreateSmsQueueReport',_0x124db0);logger[_0x5527('0xe')]('CreateSmsQueueReport',_0x124db0,JSON[_0x5527('0xf')](_0x132177));_0x4e52fd(_0x132177);})[_0x5527('0x16')](function(_0x36aad1){logger[_0x5527('0x10')](_0x5527('0x17'),_0x36aad1[_0x5527('0x13')],_0x124db0);_0x3bb214(_0x169c9a[_0x5527('0x10')](0x1f4,_0x36aad1[_0x5527('0x13')]));});});};exports[_0x5527('0x1c')]=function(_0x2ed2a2){var _0x36cedd=this;return new Promise(function(_0x4c35e9,_0x4ff8a2){return db[_0x5527('0x18')][_0x5527('0x1d')](_0x2ed2a2[_0x5527('0x1a')],{'raw':_0x2ed2a2[_0x5527('0x1b')]?_0x2ed2a2['options'][_0x5527('0x1e')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x2ed2a2['options']?_0x2ed2a2[_0x5527('0x1b')][_0x5527('0x1f')]||null:null,'attributes':_0x2ed2a2[_0x5527('0x1b')]?_0x2ed2a2[_0x5527('0x1b')][_0x5527('0x20')]||null:null,'limit':_0x2ed2a2['options']?_0x2ed2a2[_0x5527('0x1b')][_0x5527('0x21')]||null:null})[_0x5527('0xc')](function(_0x29a927){logger[_0x5527('0x14')](_0x5527('0x1c'),_0x2ed2a2);logger['debug'](_0x5527('0x1c'),_0x2ed2a2,JSON[_0x5527('0xf')](_0x29a927));_0x4c35e9(_0x29a927);})[_0x5527('0x16')](function(_0x23c448){logger[_0x5527('0x10')](_0x5527('0x1c'),_0x23c448['message'],_0x2ed2a2);_0x4ff8a2(_0x36cedd[_0x5527('0x10')](0x1f4,_0x23c448[_0x5527('0x13')]));});});};
\ No newline at end of file
+var _0xaf05=['moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','request','then','info','request\x20sent','debug','SmsQueueReport,\x20%s,\x20%s,\x20%s','error','code','message','SmsQueueReport,\x20%s,\x20%s','catch','CreateSmsQueueReport','SmsQueueReport','options','raw','stringify','UpdateSmsQueueReport','update','where','attributes','limit','util'];(function(_0x20a089,_0x44878b){var _0x3305d8=function(_0x4e297e){while(--_0x4e297e){_0x20a089['push'](_0x20a089['shift']());}};_0x3305d8(++_0x44878b);}(_0xaf05,0x7f));var _0x5af0=function(_0x567e0a,_0x4b7dc2){_0x567e0a=_0x567e0a-0x0;var _0x5cb916=_0xaf05[_0x567e0a];return _0x5cb916;};'use strict';var _=require('lodash');var util=require(_0x5af0('0x0'));var moment=require(_0x5af0('0x1'));var BPromise=require(_0x5af0('0x2'));var rs=require(_0x5af0('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x5af0('0x4'))['db'];var utils=require(_0x5af0('0x5'));var logger=require(_0x5af0('0x6'))(_0x5af0('0x7'));var config=require(_0x5af0('0x8'));var jayson=require(_0x5af0('0x9'));var client=jayson['client'][_0x5af0('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x437f99,_0x32be83,_0x276fdc){return new BPromise(function(_0x903dbc,_0x561568){return client[_0x5af0('0xb')](_0x437f99,_0x276fdc)[_0x5af0('0xc')](function(_0x2aee85){logger[_0x5af0('0xd')]('SmsQueueReport,\x20%s,\x20%s',_0x32be83,_0x5af0('0xe'));logger[_0x5af0('0xf')](_0x5af0('0x10'),_0x32be83,_0x5af0('0xe'),JSON['stringify'](_0x2aee85));if(_0x2aee85[_0x5af0('0x11')]){if(_0x2aee85[_0x5af0('0x11')][_0x5af0('0x12')]===0x1f4){logger[_0x5af0('0x11')]('SmsQueueReport,\x20%s,\x20%s',_0x32be83,_0x2aee85[_0x5af0('0x11')][_0x5af0('0x13')]);return _0x561568(_0x2aee85[_0x5af0('0x11')]['message']);}logger[_0x5af0('0x11')]('SmsQueueReport,\x20%s,\x20%s',_0x32be83,_0x2aee85[_0x5af0('0x11')][_0x5af0('0x13')]);return _0x903dbc(_0x2aee85[_0x5af0('0x11')][_0x5af0('0x13')]);}else{logger[_0x5af0('0xd')](_0x5af0('0x14'),_0x32be83,_0x5af0('0xe'));_0x903dbc(_0x2aee85['result'][_0x5af0('0x13')]);}})[_0x5af0('0x15')](function(_0x1e0264){logger['error'](_0x5af0('0x14'),_0x32be83,_0x1e0264);_0x561568(_0x1e0264);});});}exports[_0x5af0('0x16')]=function(_0x747c7){var _0x3896ac=this;return new Promise(function(_0x280a0f,_0x28fe5c){return db[_0x5af0('0x17')]['create'](_0x747c7['body'],{'raw':_0x747c7[_0x5af0('0x18')]?_0x747c7['options'][_0x5af0('0x19')]===undefined?!![]:![]:!![]})[_0x5af0('0xc')](function(_0x58296e){logger['info'](_0x5af0('0x16'),_0x747c7);logger['debug'](_0x5af0('0x16'),_0x747c7,JSON[_0x5af0('0x1a')](_0x58296e));_0x280a0f(_0x58296e);})[_0x5af0('0x15')](function(_0xad652e){logger['error'](_0x5af0('0x16'),_0xad652e[_0x5af0('0x13')],_0x747c7);_0x28fe5c(_0x3896ac[_0x5af0('0x11')](0x1f4,_0xad652e[_0x5af0('0x13')]));});});};exports[_0x5af0('0x1b')]=function(_0x4f7645){var _0x552da2=this;return new Promise(function(_0x4cb169,_0x555b0){return db['SmsQueueReport'][_0x5af0('0x1c')](_0x4f7645['body'],{'raw':_0x4f7645['options']?_0x4f7645[_0x5af0('0x18')][_0x5af0('0x19')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x4f7645[_0x5af0('0x18')]?_0x4f7645['options'][_0x5af0('0x1d')]||null:null,'attributes':_0x4f7645['options']?_0x4f7645['options'][_0x5af0('0x1e')]||null:null,'limit':_0x4f7645[_0x5af0('0x18')]?_0x4f7645[_0x5af0('0x18')][_0x5af0('0x1f')]||null:null})[_0x5af0('0xc')](function(_0x4b7498){logger[_0x5af0('0xd')](_0x5af0('0x1b'),_0x4f7645);logger[_0x5af0('0xf')](_0x5af0('0x1b'),_0x4f7645,JSON[_0x5af0('0x1a')](_0x4b7498));_0x4cb169(_0x4b7498);})['catch'](function(_0x57ba81){logger['error'](_0x5af0('0x1b'),_0x57ba81[_0x5af0('0x13')],_0x4f7645);_0x555b0(_0x552da2[_0x5af0('0x11')](0x1f4,_0x57ba81[_0x5af0('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x90b5=['/describe','describe','/:id','show','post','put','update','destroy','exports','multer','path','connect-timeout','express','Router','../../components/interaction/service','../../config/environment','get','isAuthenticated','index'];(function(_0x2f309c,_0x47ecab){var _0x2967b1=function(_0xc54884){while(--_0xc54884){_0x2f309c['push'](_0x2f309c['shift']());}};_0x2967b1(++_0x47ecab);}(_0x90b5,0x139));var _0x590b=function(_0x5143ed,_0x25b2e2){_0x5143ed=_0x5143ed-0x0;var _0x5dc173=_0x90b5[_0x5143ed];return _0x5dc173;};'use strict';var multer=require(_0x590b('0x0'));var util=require('util');var path=require(_0x590b('0x1'));var timeout=require(_0x590b('0x2'));var express=require(_0x590b('0x3'));var router=express[_0x590b('0x4')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0x590b('0x5'));var config=require(_0x590b('0x6'));var controller=require('./smsTransferReport.controller');router[_0x590b('0x7')]('/',auth[_0x590b('0x8')](),controller[_0x590b('0x9')]);router['get'](_0x590b('0xa'),auth[_0x590b('0x8')](),controller[_0x590b('0xb')]);router[_0x590b('0x7')](_0x590b('0xc'),auth[_0x590b('0x8')](),controller[_0x590b('0xd')]);router[_0x590b('0xe')]('/',auth[_0x590b('0x8')](),controller['create']);router[_0x590b('0xf')](_0x590b('0xc'),auth['isAuthenticated'](),controller[_0x590b('0x10')]);router['delete'](_0x590b('0xc'),auth[_0x590b('0x8')](),controller[_0x590b('0x11')]);module[_0x590b('0x12')]=router;
\ No newline at end of file
+var _0x6b8f=['destroy','exports','util','connect-timeout','fs-extra','../../components/auth/service','../../config/environment','./smsTransferReport.controller','get','index','/describe','isAuthenticated','/:id','show','post','create','put'];(function(_0xc298ad,_0xea4dc2){var _0x11b2e6=function(_0xe2314f){while(--_0xe2314f){_0xc298ad['push'](_0xc298ad['shift']());}};_0x11b2e6(++_0xea4dc2);}(_0x6b8f,0x1bc));var _0xf6b8=function(_0xb3182d,_0x40f44a){_0xb3182d=_0xb3182d-0x0;var _0x2692e1=_0x6b8f[_0xb3182d];return _0x2692e1;};'use strict';var multer=require('multer');var util=require(_0xf6b8('0x0'));var path=require('path');var timeout=require(_0xf6b8('0x1'));var express=require('express');var router=express['Router']();var fs_extra=require(_0xf6b8('0x2'));var auth=require(_0xf6b8('0x3'));var interaction=require('../../components/interaction/service');var config=require(_0xf6b8('0x4'));var controller=require(_0xf6b8('0x5'));router[_0xf6b8('0x6')]('/',auth['isAuthenticated'](),controller[_0xf6b8('0x7')]);router[_0xf6b8('0x6')](_0xf6b8('0x8'),auth[_0xf6b8('0x9')](),controller['describe']);router['get'](_0xf6b8('0xa'),auth['isAuthenticated'](),controller[_0xf6b8('0xb')]);router[_0xf6b8('0xc')]('/',auth[_0xf6b8('0x9')](),controller[_0xf6b8('0xd')]);router[_0xf6b8('0xe')](_0xf6b8('0xa'),auth['isAuthenticated'](),controller['update']);router['delete'](_0xf6b8('0xa'),auth[_0xf6b8('0x9')](),controller[_0xf6b8('0xf')]);module[_0xf6b8('0x10')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x34e8=['queue','DATE','NOW','moment','sequelize','exports','STRING','account','agent'];(function(_0x3a2e4b,_0x1fc1f7){var _0x3697d9=function(_0x45a4fa){while(--_0x45a4fa){_0x3a2e4b['push'](_0x3a2e4b['shift']());}};_0x3697d9(++_0x1fc1f7);}(_0x34e8,0x12c));var _0x834e=function(_0x40ee1b,_0x1ef16b){_0x40ee1b=_0x40ee1b-0x0;var _0x794885=_0x34e8[_0x40ee1b];return _0x794885;};'use strict';var moment=require(_0x834e('0x0'));var Sequelize=require(_0x834e('0x1'));module[_0x834e('0x2')]={'uniqueid':{'type':Sequelize[_0x834e('0x3')],'allowNull':![]},'type':{'type':Sequelize['ENUM'](_0x834e('0x4'),_0x834e('0x5'),_0x834e('0x6')),'allowNull':![],'defaultValue':_0x834e('0x6')},'transferredAt':{'type':Sequelize[_0x834e('0x7')],'allowNull':![],'defaultValue':Sequelize[_0x834e('0x8')]}};
\ No newline at end of file
+var _0x70e0=['NOW','moment','sequelize','exports','account','agent','queue'];(function(_0x2c519a,_0x21dca3){var _0x50529d=function(_0x14f13c){while(--_0x14f13c){_0x2c519a['push'](_0x2c519a['shift']());}};_0x50529d(++_0x21dca3);}(_0x70e0,0x17b));var _0x070e=function(_0x494f77,_0x1ee6ff){_0x494f77=_0x494f77-0x0;var _0x2eafde=_0x70e0[_0x494f77];return _0x2eafde;};'use strict';var moment=require(_0x070e('0x0'));var Sequelize=require(_0x070e('0x1'));module[_0x070e('0x2')]={'uniqueid':{'type':Sequelize['STRING'],'allowNull':![]},'type':{'type':Sequelize['ENUM'](_0x070e('0x3'),_0x070e('0x4'),_0x070e('0x5')),'allowNull':![],'defaultValue':_0x070e('0x5')},'transferredAt':{'type':Sequelize['DATE'],'allowNull':![],'defaultValue':Sequelize[_0x070e('0x6')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa899=['end','status','offset','undefined','limit','count','set','Content-Range','apply','reject','update','then','destroy','error','name','index','SmsTransferReport','fieldName','type','key','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','filters','pick','filter','map','merge','includeAll','include','findAll','params','rawAttributes','options','catch','create','body','find','describe','eml-format','rimraf','moment','bluebird','mustache','util','fs-extra','lodash','squel','jsforce','desk.js','to-csv','querystring','papaparse','../../components/parsers/qs','../../config/logger','../../config/utils','sendStatus'];(function(_0x3915e4,_0xa5cf47){var _0x4622e3=function(_0x543978){while(--_0x543978){_0x3915e4['push'](_0x3915e4['shift']());}};_0x4622e3(++_0xa5cf47);}(_0xa899,0x1b5));var _0x9a89=function(_0x578275,_0xe7ae46){_0x578275=_0x578275-0x0;var _0xf78041=_0xa899[_0x578275];return _0xf78041;};'use strict';var emlformat=require(_0x9a89('0x0'));var rimraf=require(_0x9a89('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x9a89('0x2'));var BPromise=require(_0x9a89('0x3'));var Mustache=require(_0x9a89('0x4'));var util=require(_0x9a89('0x5'));var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x9a89('0x6'));var _=require(_0x9a89('0x7'));var squel=require(_0x9a89('0x8'));var crypto=require('crypto');var jsforce=require(_0x9a89('0x9'));var deskjs=require(_0x9a89('0xa'));var toCsv=require(_0x9a89('0xb'));var querystring=require(_0x9a89('0xc'));var Papa=require(_0x9a89('0xd'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x9a89('0xe'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x9a89('0xf'))('api');var utils=require(_0x9a89('0x10'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x31b089,_0x2a1bb4){_0x2a1bb4=_0x2a1bb4||0xcc;return function(_0xabc279){if(_0xabc279){return _0x31b089[_0x9a89('0x11')](_0x2a1bb4);}return _0x31b089['status'](_0x2a1bb4)[_0x9a89('0x12')]();};}function respondWithResult(_0x35d391,_0x4211ca){_0x4211ca=_0x4211ca||0xc8;return function(_0x3a91b6){if(_0x3a91b6){return _0x35d391[_0x9a89('0x13')](_0x4211ca)['json'](_0x3a91b6);}};}function respondWithFilteredResult(_0x514c9c,_0x10a21e){return function(_0x5b3379){if(_0x5b3379){var _0x5a0f6f=typeof _0x10a21e[_0x9a89('0x14')]===_0x9a89('0x15')&&typeof _0x10a21e[_0x9a89('0x16')]==='undefined';var _0x492981=_0x5b3379[_0x9a89('0x17')];var _0x5c5fdd=_0x5a0f6f?0x0:_0x10a21e[_0x9a89('0x14')];var _0x23c0d2=_0x5a0f6f?_0x5b3379[_0x9a89('0x17')]:_0x10a21e[_0x9a89('0x14')]+_0x10a21e['limit'];var _0x1452cf;if(_0x23c0d2>=_0x492981){_0x23c0d2=_0x492981;_0x1452cf=0xc8;}else{_0x1452cf=0xce;}_0x514c9c[_0x9a89('0x13')](_0x1452cf);return _0x514c9c[_0x9a89('0x18')](_0x9a89('0x19'),_0x5c5fdd+'-'+_0x23c0d2+'/'+_0x492981)['json'](_0x5b3379);}return null;};}function patchUpdates(_0x362c4e){return function(_0x24f289){try{jsonpatch[_0x9a89('0x1a')](_0x24f289,_0x362c4e,!![]);}catch(_0x303ca2){return BPromise[_0x9a89('0x1b')](_0x303ca2);}return _0x24f289['save']();};}function saveUpdates(_0x91796c,_0x3f0f2b){return function(_0x11f227){if(_0x11f227){return _0x11f227[_0x9a89('0x1c')](_0x91796c)[_0x9a89('0x1d')](function(_0x7dec8e){return _0x7dec8e;});}return null;};}function removeEntity(_0x5e23d3,_0x6465c6){return function(_0x38df42){if(_0x38df42){return _0x38df42[_0x9a89('0x1e')]()['then'](function(){_0x5e23d3['status'](0xcc)[_0x9a89('0x12')]();});}};}function handleEntityNotFound(_0x399a1f,_0xb660f4){return function(_0x10668a){if(!_0x10668a){_0x399a1f['sendStatus'](0x194);}return _0x10668a;};}function handleError(_0x47d79b,_0x412fb5){_0x412fb5=_0x412fb5||0x1f4;return function(_0xa147a7){logger[_0x9a89('0x1f')](_0xa147a7['stack']);if(_0xa147a7[_0x9a89('0x20')]){delete _0xa147a7[_0x9a89('0x20')];}_0x47d79b[_0x9a89('0x13')](_0x412fb5)['send'](_0xa147a7);};}exports[_0x9a89('0x21')]=function(_0x2d955b,_0x5d1b3f){var _0x5a4f67={},_0x56bc00={},_0xeb7447={'count':0x0,'rows':[]};var _0x670bd8=_['map'](db[_0x9a89('0x22')]['rawAttributes'],function(_0x22a548){return{'name':_0x22a548[_0x9a89('0x23')],'type':_0x22a548[_0x9a89('0x24')][_0x9a89('0x25')]};});_0x56bc00[_0x9a89('0x26')]=_['map'](_0x670bd8,_0x9a89('0x20'));_0x56bc00[_0x9a89('0x27')]=_[_0x9a89('0x28')](_0x2d955b[_0x9a89('0x27')]);_0x56bc00['filters']=_[_0x9a89('0x29')](_0x56bc00[_0x9a89('0x26')],_0x56bc00[_0x9a89('0x27')]);_0x5a4f67[_0x9a89('0x2a')]=_[_0x9a89('0x29')](_0x56bc00[_0x9a89('0x26')],qs[_0x9a89('0x2b')](_0x2d955b[_0x9a89('0x27')][_0x9a89('0x2b')]));_0x5a4f67[_0x9a89('0x2a')]=_0x5a4f67[_0x9a89('0x2a')][_0x9a89('0x2c')]?_0x5a4f67[_0x9a89('0x2a')]:_0x56bc00[_0x9a89('0x26')];if(!_0x2d955b[_0x9a89('0x27')][_0x9a89('0x2d')](_0x9a89('0x2e'))){_0x5a4f67[_0x9a89('0x16')]=qs[_0x9a89('0x16')](_0x2d955b[_0x9a89('0x27')][_0x9a89('0x16')]);_0x5a4f67[_0x9a89('0x14')]=qs[_0x9a89('0x14')](_0x2d955b['query']['offset']);}_0x5a4f67['order']=qs[_0x9a89('0x2f')](_0x2d955b['query'][_0x9a89('0x2f')]);_0x5a4f67[_0x9a89('0x30')]=qs[_0x9a89('0x31')](_[_0x9a89('0x32')](_0x2d955b[_0x9a89('0x27')],_0x56bc00['filters']),_0x670bd8);if(_0x2d955b[_0x9a89('0x27')][_0x9a89('0x33')]){_0x5a4f67[_0x9a89('0x30')]=_['merge'](_0x5a4f67['where'],{'$or':_[_0x9a89('0x34')](_0x670bd8,function(_0x3c0231){if(_0x3c0231[_0x9a89('0x24')]!=='VIRTUAL'){var _0x3c4428={};_0x3c4428[_0x3c0231[_0x9a89('0x20')]]={'$like':'%'+_0x2d955b[_0x9a89('0x27')][_0x9a89('0x33')]+'%'};return _0x3c4428;}})});}_0x5a4f67=_[_0x9a89('0x35')]({},_0x5a4f67,_0x2d955b['options']);var _0x32a079={'where':_0x5a4f67['where']};return db['SmsTransferReport'][_0x9a89('0x17')](_0x32a079)[_0x9a89('0x1d')](function(_0x1c7e75){_0xeb7447[_0x9a89('0x17')]=_0x1c7e75;if(_0x2d955b[_0x9a89('0x27')][_0x9a89('0x36')]){_0x5a4f67[_0x9a89('0x37')]=[{'all':!![]}];}return db[_0x9a89('0x22')][_0x9a89('0x38')](_0x5a4f67);})['then'](function(_0x28b989){_0xeb7447['rows']=_0x28b989;return _0xeb7447;})[_0x9a89('0x1d')](respondWithFilteredResult(_0x5d1b3f,_0x5a4f67))['catch'](handleError(_0x5d1b3f,null));};exports['show']=function(_0x471d6b,_0x29388a){var _0xf3189c={'raw':!![],'where':{'id':_0x471d6b[_0x9a89('0x39')]['id']}},_0x410a5c={};_0x410a5c['model']=_[_0x9a89('0x28')](db[_0x9a89('0x22')][_0x9a89('0x3a')]);_0x410a5c['query']=_['keys'](_0x471d6b[_0x9a89('0x27')]);_0x410a5c['filters']=_['intersection'](_0x410a5c[_0x9a89('0x26')],_0x410a5c['query']);_0xf3189c[_0x9a89('0x2a')]=_[_0x9a89('0x29')](_0x410a5c[_0x9a89('0x26')],qs[_0x9a89('0x2b')](_0x471d6b[_0x9a89('0x27')][_0x9a89('0x2b')]));_0xf3189c[_0x9a89('0x2a')]=_0xf3189c[_0x9a89('0x2a')][_0x9a89('0x2c')]?_0xf3189c['attributes']:_0x410a5c[_0x9a89('0x26')];if(_0x471d6b[_0x9a89('0x27')]['includeAll']){_0xf3189c[_0x9a89('0x37')]=[{'all':!![]}];}_0xf3189c=_[_0x9a89('0x35')]({},_0xf3189c,_0x471d6b[_0x9a89('0x3b')]);return db['SmsTransferReport']['find'](_0xf3189c)['then'](handleEntityNotFound(_0x29388a,null))[_0x9a89('0x1d')](respondWithResult(_0x29388a,null))[_0x9a89('0x3c')](handleError(_0x29388a,null));};exports[_0x9a89('0x3d')]=function(_0x224307,_0xe5b26){return db['SmsTransferReport'][_0x9a89('0x3d')](_0x224307[_0x9a89('0x3e')],{})['then'](respondWithResult(_0xe5b26,0xc9))['catch'](handleError(_0xe5b26,null));};exports['update']=function(_0x4d8eff,_0x36ecf4){if(_0x4d8eff[_0x9a89('0x3e')]['id']){delete _0x4d8eff[_0x9a89('0x3e')]['id'];}return db[_0x9a89('0x22')]['find']({'where':{'id':_0x4d8eff[_0x9a89('0x39')]['id']}})[_0x9a89('0x1d')](handleEntityNotFound(_0x36ecf4,null))['then'](saveUpdates(_0x4d8eff[_0x9a89('0x3e')],null))[_0x9a89('0x1d')](respondWithResult(_0x36ecf4,null))[_0x9a89('0x3c')](handleError(_0x36ecf4,null));};exports[_0x9a89('0x1e')]=function(_0xe3466d,_0x28ca6c){return db[_0x9a89('0x22')][_0x9a89('0x3f')]({'where':{'id':_0xe3466d[_0x9a89('0x39')]['id']}})['then'](handleEntityNotFound(_0x28ca6c,null))[_0x9a89('0x1d')](removeEntity(_0x28ca6c,null))[_0x9a89('0x3c')](handleError(_0x28ca6c,null));};exports[_0x9a89('0x40')]=function(_0x19031a,_0xa24845){return db[_0x9a89('0x22')][_0x9a89('0x40')]()['then'](respondWithResult(_0xa24845,null))[_0x9a89('0x3c')](handleError(_0xa24845,null));};
\ No newline at end of file
+var _0xefd9=['../../config/license/util','sendStatus','status','end','json','undefined','count','offset','limit','set','Content-Range','apply','reject','update','then','destroy','error','stack','name','send','index','map','SmsTransferReport','fieldName','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','type','options','include','findAll','rows','catch','show','params','rawAttributes','includeAll','find','create','body','rimraf','zip-dir','request-promise','bluebird','util','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment'];(function(_0x1aa3bd,_0x54996f){var _0x11ebd7=function(_0x317912){while(--_0x317912){_0x1aa3bd['push'](_0x1aa3bd['shift']());}};_0x11ebd7(++_0x54996f);}(_0xefd9,0x1a2));var _0x9efd=function(_0x2d99c2,_0x3afcfd){_0x2d99c2=_0x2d99c2-0x0;var _0x207ebf=_0xefd9[_0x2d99c2];return _0x207ebf;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x9efd('0x0'));var zipdir=require(_0x9efd('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x9efd('0x2'));var moment=require('moment');var BPromise=require(_0x9efd('0x3'));var Mustache=require('mustache');var util=require(_0x9efd('0x4'));var path=require('path');var sox=require('sox');var csv=require(_0x9efd('0x5'));var ejs=require(_0x9efd('0x6'));var fs=require('fs');var fs_extra=require(_0x9efd('0x7'));var _=require(_0x9efd('0x8'));var squel=require(_0x9efd('0x9'));var crypto=require(_0x9efd('0xa'));var jsforce=require('jsforce');var deskjs=require(_0x9efd('0xb'));var toCsv=require(_0x9efd('0x5'));var querystring=require(_0x9efd('0xc'));var Papa=require(_0x9efd('0xd'));var Redis=require('ioredis');var authService=require(_0x9efd('0xe'));var qs=require(_0x9efd('0xf'));var as=require(_0x9efd('0x10'));var hardwareService=require(_0x9efd('0x11'));var logger=require('../../config/logger')(_0x9efd('0x12'));var utils=require('../../config/utils');var config=require(_0x9efd('0x13'));var licenseUtil=require(_0x9efd('0x14'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x1ca621,_0x1bdead){_0x1bdead=_0x1bdead||0xcc;return function(_0x342d50){if(_0x342d50){return _0x1ca621[_0x9efd('0x15')](_0x1bdead);}return _0x1ca621[_0x9efd('0x16')](_0x1bdead)[_0x9efd('0x17')]();};}function respondWithResult(_0x599bf1,_0x26c3a3){_0x26c3a3=_0x26c3a3||0xc8;return function(_0x41d90e){if(_0x41d90e){return _0x599bf1[_0x9efd('0x16')](_0x26c3a3)[_0x9efd('0x18')](_0x41d90e);}};}function respondWithFilteredResult(_0x3effcc,_0x358405){return function(_0x1c0033){if(_0x1c0033){var _0x50a4d3=typeof _0x358405['offset']===_0x9efd('0x19')&&typeof _0x358405['limit']==='undefined';var _0xd5addf=_0x1c0033['count'];var _0x5f1dea=_0x50a4d3?0x0:_0x358405['offset'];var _0x2c3459=_0x50a4d3?_0x1c0033[_0x9efd('0x1a')]:_0x358405[_0x9efd('0x1b')]+_0x358405[_0x9efd('0x1c')];var _0x47d013;if(_0x2c3459>=_0xd5addf){_0x2c3459=_0xd5addf;_0x47d013=0xc8;}else{_0x47d013=0xce;}_0x3effcc['status'](_0x47d013);return _0x3effcc[_0x9efd('0x1d')](_0x9efd('0x1e'),_0x5f1dea+'-'+_0x2c3459+'/'+_0xd5addf)[_0x9efd('0x18')](_0x1c0033);}return null;};}function patchUpdates(_0x8fb5ec){return function(_0x514344){try{jsonpatch[_0x9efd('0x1f')](_0x514344,_0x8fb5ec,!![]);}catch(_0x574581){return BPromise[_0x9efd('0x20')](_0x574581);}return _0x514344['save']();};}function saveUpdates(_0x27999b,_0x38ea71){return function(_0x3d7fe2){if(_0x3d7fe2){return _0x3d7fe2[_0x9efd('0x21')](_0x27999b)[_0x9efd('0x22')](function(_0x4c9a51){return _0x4c9a51;});}return null;};}function removeEntity(_0x3691f6,_0x3095e7){return function(_0x6080bc){if(_0x6080bc){return _0x6080bc[_0x9efd('0x23')]()[_0x9efd('0x22')](function(){_0x3691f6['status'](0xcc)[_0x9efd('0x17')]();});}};}function handleEntityNotFound(_0x3b2285,_0x400cca){return function(_0x13ab8c){if(!_0x13ab8c){_0x3b2285['sendStatus'](0x194);}return _0x13ab8c;};}function handleError(_0x1ca41d,_0x58f4df){_0x58f4df=_0x58f4df||0x1f4;return function(_0x411101){logger[_0x9efd('0x24')](_0x411101[_0x9efd('0x25')]);if(_0x411101['name']){delete _0x411101[_0x9efd('0x26')];}_0x1ca41d[_0x9efd('0x16')](_0x58f4df)[_0x9efd('0x27')](_0x411101);};}exports[_0x9efd('0x28')]=function(_0x2ae1c4,_0x2cf109){var _0x564afb={},_0x28c721={},_0x2f88bc={'count':0x0,'rows':[]};var _0x242e19=_[_0x9efd('0x29')](db[_0x9efd('0x2a')]['rawAttributes'],function(_0x4a6417){return{'name':_0x4a6417[_0x9efd('0x2b')],'type':_0x4a6417['type'][_0x9efd('0x2c')]};});_0x28c721[_0x9efd('0x2d')]=_[_0x9efd('0x29')](_0x242e19,_0x9efd('0x26'));_0x28c721[_0x9efd('0x2e')]=_[_0x9efd('0x2f')](_0x2ae1c4['query']);_0x28c721[_0x9efd('0x30')]=_[_0x9efd('0x31')](_0x28c721[_0x9efd('0x2d')],_0x28c721[_0x9efd('0x2e')]);_0x564afb['attributes']=_[_0x9efd('0x31')](_0x28c721['model'],qs[_0x9efd('0x32')](_0x2ae1c4[_0x9efd('0x2e')][_0x9efd('0x32')]));_0x564afb[_0x9efd('0x33')]=_0x564afb['attributes'][_0x9efd('0x34')]?_0x564afb[_0x9efd('0x33')]:_0x28c721[_0x9efd('0x2d')];if(!_0x2ae1c4['query'][_0x9efd('0x35')](_0x9efd('0x36'))){_0x564afb['limit']=qs['limit'](_0x2ae1c4[_0x9efd('0x2e')]['limit']);_0x564afb[_0x9efd('0x1b')]=qs[_0x9efd('0x1b')](_0x2ae1c4[_0x9efd('0x2e')]['offset']);}_0x564afb['order']=qs[_0x9efd('0x37')](_0x2ae1c4[_0x9efd('0x2e')][_0x9efd('0x37')]);_0x564afb[_0x9efd('0x38')]=qs['filters'](_[_0x9efd('0x39')](_0x2ae1c4[_0x9efd('0x2e')],_0x28c721['filters']),_0x242e19);if(_0x2ae1c4[_0x9efd('0x2e')][_0x9efd('0x3a')]){_0x564afb[_0x9efd('0x38')]=_[_0x9efd('0x3b')](_0x564afb[_0x9efd('0x38')],{'$or':_[_0x9efd('0x29')](_0x242e19,function(_0x3d3347){if(_0x3d3347[_0x9efd('0x3c')]!=='VIRTUAL'){var _0x5c1812={};_0x5c1812[_0x3d3347[_0x9efd('0x26')]]={'$like':'%'+_0x2ae1c4[_0x9efd('0x2e')][_0x9efd('0x3a')]+'%'};return _0x5c1812;}})});}_0x564afb=_[_0x9efd('0x3b')]({},_0x564afb,_0x2ae1c4[_0x9efd('0x3d')]);var _0x1ea82a={'where':_0x564afb['where']};return db['SmsTransferReport'][_0x9efd('0x1a')](_0x1ea82a)[_0x9efd('0x22')](function(_0x5e8acf){_0x2f88bc['count']=_0x5e8acf;if(_0x2ae1c4[_0x9efd('0x2e')]['includeAll']){_0x564afb[_0x9efd('0x3e')]=[{'all':!![]}];}return db['SmsTransferReport'][_0x9efd('0x3f')](_0x564afb);})[_0x9efd('0x22')](function(_0x52fcb1){_0x2f88bc[_0x9efd('0x40')]=_0x52fcb1;return _0x2f88bc;})['then'](respondWithFilteredResult(_0x2cf109,_0x564afb))[_0x9efd('0x41')](handleError(_0x2cf109,null));};exports[_0x9efd('0x42')]=function(_0x35b05f,_0x1a8645){var _0x2792a2={'raw':!![],'where':{'id':_0x35b05f[_0x9efd('0x43')]['id']}},_0x2e33b6={};_0x2e33b6[_0x9efd('0x2d')]=_[_0x9efd('0x2f')](db[_0x9efd('0x2a')][_0x9efd('0x44')]);_0x2e33b6[_0x9efd('0x2e')]=_[_0x9efd('0x2f')](_0x35b05f['query']);_0x2e33b6[_0x9efd('0x30')]=_[_0x9efd('0x31')](_0x2e33b6[_0x9efd('0x2d')],_0x2e33b6['query']);_0x2792a2['attributes']=_['intersection'](_0x2e33b6[_0x9efd('0x2d')],qs['fields'](_0x35b05f[_0x9efd('0x2e')][_0x9efd('0x32')]));_0x2792a2['attributes']=_0x2792a2['attributes'][_0x9efd('0x34')]?_0x2792a2[_0x9efd('0x33')]:_0x2e33b6['model'];if(_0x35b05f[_0x9efd('0x2e')][_0x9efd('0x45')]){_0x2792a2[_0x9efd('0x3e')]=[{'all':!![]}];}_0x2792a2=_['merge']({},_0x2792a2,_0x35b05f[_0x9efd('0x3d')]);return db[_0x9efd('0x2a')][_0x9efd('0x46')](_0x2792a2)[_0x9efd('0x22')](handleEntityNotFound(_0x1a8645,null))['then'](respondWithResult(_0x1a8645,null))[_0x9efd('0x41')](handleError(_0x1a8645,null));};exports[_0x9efd('0x47')]=function(_0x4e949d,_0x44059d){return db[_0x9efd('0x2a')]['create'](_0x4e949d['body'],{})[_0x9efd('0x22')](respondWithResult(_0x44059d,0xc9))[_0x9efd('0x41')](handleError(_0x44059d,null));};exports[_0x9efd('0x21')]=function(_0x32a5d0,_0x356712){if(_0x32a5d0[_0x9efd('0x48')]['id']){delete _0x32a5d0[_0x9efd('0x48')]['id'];}return db[_0x9efd('0x2a')][_0x9efd('0x46')]({'where':{'id':_0x32a5d0['params']['id']}})[_0x9efd('0x22')](handleEntityNotFound(_0x356712,null))[_0x9efd('0x22')](saveUpdates(_0x32a5d0[_0x9efd('0x48')],null))[_0x9efd('0x22')](respondWithResult(_0x356712,null))[_0x9efd('0x41')](handleError(_0x356712,null));};exports['destroy']=function(_0x2efe21,_0x470c79){return db[_0x9efd('0x2a')][_0x9efd('0x46')]({'where':{'id':_0x2efe21[_0x9efd('0x43')]['id']}})[_0x9efd('0x22')](handleEntityNotFound(_0x470c79,null))[_0x9efd('0x22')](removeEntity(_0x470c79,null))[_0x9efd('0x41')](handleError(_0x470c79,null));};exports['describe']=function(_0x5e5a9f,_0x2d4ccb){return db['SmsTransferReport']['describe']()[_0x9efd('0x22')](respondWithResult(_0x2d4ccb,null))[_0x9efd('0x41')](handleError(_0x2d4ccb,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb71d=['path','rimraf','../../config/environment','define','uniqueid','lodash','util','../../config/logger','api','moment','bluebird'];(function(_0x1ad4d4,_0x43613c){var _0x5456e3=function(_0x1722a7){while(--_0x1722a7){_0x1ad4d4['push'](_0x1ad4d4['shift']());}};_0x5456e3(++_0x43613c);}(_0xb71d,0xc0));var _0xdb71=function(_0x42cae2,_0x284ef8){_0x42cae2=_0x42cae2-0x0;var _0x5f256f=_0xb71d[_0x42cae2];return _0x5f256f;};'use strict';var _=require(_0xdb71('0x0'));var util=require(_0xdb71('0x1'));var logger=require(_0xdb71('0x2'))(_0xdb71('0x3'));var moment=require(_0xdb71('0x4'));var BPromise=require(_0xdb71('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xdb71('0x6'));var rimraf=require(_0xdb71('0x7'));var config=require(_0xdb71('0x8'));var attributes=require('./smsTransferReport.attributes');module['exports']=function(_0x3bd587,_0x4dff0d){return _0x3bd587[_0xdb71('0x9')]('SmsTransferReport',attributes,{'tableName':'report_sms_transfer','paranoid':![],'indexes':[{'name':_0xdb71('0xa'),'fields':['uniqueid']}],'timestamps':!![]});};
\ No newline at end of file
+var _0x0810=['api','moment','path','./smsTransferReport.attributes','report_sms_transfer','lodash','util','../../config/logger'];(function(_0x1f7996,_0x299a14){var _0x584609=function(_0x14c34a){while(--_0x14c34a){_0x1f7996['push'](_0x1f7996['shift']());}};_0x584609(++_0x299a14);}(_0x0810,0x95));var _0x0081=function(_0x32574c,_0x623301){_0x32574c=_0x32574c-0x0;var _0x324117=_0x0810[_0x32574c];return _0x324117;};'use strict';var _=require(_0x0081('0x0'));var util=require(_0x0081('0x1'));var logger=require(_0x0081('0x2'))(_0x0081('0x3'));var moment=require(_0x0081('0x4'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0x0081('0x5'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0x0081('0x6'));module['exports']=function(_0x30c217,_0x5e90a5){return _0x30c217['define']('SmsTransferReport',attributes,{'tableName':_0x0081('0x7'),'paranoid':![],'indexes':[{'name':'uniqueid','fields':['uniqueid']}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x60c2=['stringify','error','code','message','catch','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','request','then','info','SmsTransferReport,\x20%s,\x20%s','request\x20sent','debug'];(function(_0x3c4f31,_0x3a20da){var _0x39f732=function(_0x2262bf){while(--_0x2262bf){_0x3c4f31['push'](_0x3c4f31['shift']());}};_0x39f732(++_0x3a20da);}(_0x60c2,0x8f));var _0x260c=function(_0xa464c9,_0x7c86d8){_0xa464c9=_0xa464c9-0x0;var _0x3d73c4=_0x60c2[_0xa464c9];return _0x3d73c4;};'use strict';var _=require('lodash');var util=require(_0x260c('0x0'));var moment=require(_0x260c('0x1'));var BPromise=require(_0x260c('0x2'));var rs=require(_0x260c('0x3'));var fs=require('fs');var Redis=require(_0x260c('0x4'));var db=require(_0x260c('0x5'))['db'];var utils=require(_0x260c('0x6'));var logger=require(_0x260c('0x7'))(_0x260c('0x8'));var config=require(_0x260c('0x9'));var jayson=require(_0x260c('0xa'));var client=jayson[_0x260c('0xb')]['http']({'port':0x232a});function respondWithRpcPromise(_0x14fab2,_0x2c2cd8,_0x3b432d){return new BPromise(function(_0xf22c37,_0x4b2992){return client[_0x260c('0xc')](_0x14fab2,_0x3b432d)[_0x260c('0xd')](function(_0x8378bb){logger[_0x260c('0xe')](_0x260c('0xf'),_0x2c2cd8,_0x260c('0x10'));logger[_0x260c('0x11')]('SmsTransferReport,\x20%s,\x20%s,\x20%s',_0x2c2cd8,_0x260c('0x10'),JSON[_0x260c('0x12')](_0x8378bb));if(_0x8378bb[_0x260c('0x13')]){if(_0x8378bb['error'][_0x260c('0x14')]===0x1f4){logger[_0x260c('0x13')](_0x260c('0xf'),_0x2c2cd8,_0x8378bb['error'][_0x260c('0x15')]);return _0x4b2992(_0x8378bb[_0x260c('0x13')][_0x260c('0x15')]);}logger[_0x260c('0x13')](_0x260c('0xf'),_0x2c2cd8,_0x8378bb['error'][_0x260c('0x15')]);return _0xf22c37(_0x8378bb['error'][_0x260c('0x15')]);}else{logger[_0x260c('0xe')]('SmsTransferReport,\x20%s,\x20%s',_0x2c2cd8,_0x260c('0x10'));_0xf22c37(_0x8378bb['result'][_0x260c('0x15')]);}})[_0x260c('0x16')](function(_0x411970){logger[_0x260c('0x13')](_0x260c('0xf'),_0x2c2cd8,_0x411970);_0x4b2992(_0x411970);});});}
\ No newline at end of file
+var _0xef39=['ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','request','then','info','SmsTransferReport,\x20%s,\x20%s','request\x20sent','debug','SmsTransferReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','util','moment','bluebird','randomstring'];(function(_0x1bb154,_0x1361b1){var _0x4dc7a3=function(_0x3e816c){while(--_0x3e816c){_0x1bb154['push'](_0x1bb154['shift']());}};_0x4dc7a3(++_0x1361b1);}(_0xef39,0x92));var _0x9ef3=function(_0xe5a6a5,_0x230d00){_0xe5a6a5=_0xe5a6a5-0x0;var _0x4c33fd=_0xef39[_0xe5a6a5];return _0x4c33fd;};'use strict';var _=require('lodash');var util=require(_0x9ef3('0x0'));var moment=require(_0x9ef3('0x1'));var BPromise=require(_0x9ef3('0x2'));var rs=require(_0x9ef3('0x3'));var fs=require('fs');var Redis=require(_0x9ef3('0x4'));var db=require(_0x9ef3('0x5'))['db'];var utils=require(_0x9ef3('0x6'));var logger=require(_0x9ef3('0x7'))(_0x9ef3('0x8'));var config=require(_0x9ef3('0x9'));var jayson=require(_0x9ef3('0xa'));var client=jayson[_0x9ef3('0xb')]['http']({'port':0x232a});function respondWithRpcPromise(_0x1b8488,_0x1f7ab7,_0x290ffd){return new BPromise(function(_0x27cfaa,_0x370330){return client[_0x9ef3('0xc')](_0x1b8488,_0x290ffd)[_0x9ef3('0xd')](function(_0x15ae4c){logger[_0x9ef3('0xe')](_0x9ef3('0xf'),_0x1f7ab7,_0x9ef3('0x10'));logger[_0x9ef3('0x11')](_0x9ef3('0x12'),_0x1f7ab7,'request\x20sent',JSON[_0x9ef3('0x13')](_0x15ae4c));if(_0x15ae4c[_0x9ef3('0x14')]){if(_0x15ae4c[_0x9ef3('0x14')][_0x9ef3('0x15')]===0x1f4){logger[_0x9ef3('0x14')](_0x9ef3('0xf'),_0x1f7ab7,_0x15ae4c['error'][_0x9ef3('0x16')]);return _0x370330(_0x15ae4c[_0x9ef3('0x14')][_0x9ef3('0x16')]);}logger['error'](_0x9ef3('0xf'),_0x1f7ab7,_0x15ae4c[_0x9ef3('0x14')]['message']);return _0x27cfaa(_0x15ae4c[_0x9ef3('0x14')][_0x9ef3('0x16')]);}else{logger[_0x9ef3('0xe')](_0x9ef3('0xf'),_0x1f7ab7,_0x9ef3('0x10'));_0x27cfaa(_0x15ae4c[_0x9ef3('0x17')]['message']);}})[_0x9ef3('0x18')](function(_0x355dbb){logger[_0x9ef3('0x14')]('SmsTransferReport,\x20%s,\x20%s',_0x1f7ab7,_0x355dbb);_0x370330(_0x355dbb);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8d5f=['fs-extra','../../components/auth/service','get','isAuthenticated','/:id','show','/:id/download','download','diskStorage','join','originalname','replace','format','%s-%s%s','extname','now','post','single','file','create','update','delete','exports','util','connect-timeout','express'];(function(_0x27b3d4,_0xb8a9ec){var _0x162043=function(_0x4f1df6){while(--_0x4f1df6){_0x27b3d4['push'](_0x27b3d4['shift']());}};_0x162043(++_0xb8a9ec);}(_0x8d5f,0xe7));var _0xf8d5=function(_0x2ff762,_0x342c0b){_0x2ff762=_0x2ff762-0x0;var _0x158b02=_0x8d5f[_0x2ff762];return _0x158b02;};'use strict';var multer=require('multer');var util=require(_0xf8d5('0x0'));var path=require('path');var timeout=require(_0xf8d5('0x1'));var express=require(_0xf8d5('0x2'));var router=express['Router']();var fs_extra=require(_0xf8d5('0x3'));var auth=require(_0xf8d5('0x4'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require('./sound.controller');router[_0xf8d5('0x5')]('/',auth[_0xf8d5('0x6')](),controller['index']);router[_0xf8d5('0x5')](_0xf8d5('0x7'),auth[_0xf8d5('0x6')](),controller[_0xf8d5('0x8')]);router[_0xf8d5('0x5')](_0xf8d5('0x9'),auth[_0xf8d5('0x6')](),controller[_0xf8d5('0xa')]);var upload=multer({'storage':multer[_0xf8d5('0xb')]({'destination':function(_0x231fef,_0x4b0f0a,_0x463dc8){_0x463dc8(null,path[_0xf8d5('0xc')](config['root'],'server/files/sounds/original/'));},'filename':function(_0x566ff5,_0x2c0511,_0x2ae764){_0x2c0511['originalname']=_0x2c0511[_0xf8d5('0xd')][_0xf8d5('0xe')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');_0x2ae764(null,util[_0xf8d5('0xf')](_0xf8d5('0x10'),path['basename'](_0x2c0511[_0xf8d5('0xd')],path[_0xf8d5('0x11')](_0x2c0511[_0xf8d5('0xd')])),Date[_0xf8d5('0x12')](),path[_0xf8d5('0x11')](_0x2c0511[_0xf8d5('0xd')])));}})});router[_0xf8d5('0x13')]('/',upload[_0xf8d5('0x14')](_0xf8d5('0x15')),controller[_0xf8d5('0x16')]);router['put'](_0xf8d5('0x7'),auth['isAuthenticated'](),controller[_0xf8d5('0x17')]);router[_0xf8d5('0x18')](_0xf8d5('0x7'),auth[_0xf8d5('0x6')](),controller[_0xf8d5('0x18')]);module[_0xf8d5('0x19')]=router;
\ No newline at end of file
+var _0x1d49=['%s-%s%s','basename','extname','now','post','file','put','update','delete','exports','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./sound.controller','get','isAuthenticated','/:id','show','/:id/download','download','diskStorage','join','root','server/files/sounds/original/','originalname','replace'];(function(_0x1e829d,_0x263e13){var _0x527b99=function(_0x42b6d8){while(--_0x42b6d8){_0x1e829d['push'](_0x1e829d['shift']());}};_0x527b99(++_0x263e13);}(_0x1d49,0x1da));var _0x91d4=function(_0x3ab51d,_0x2fa01d){_0x3ab51d=_0x3ab51d-0x0;var _0x29a04e=_0x1d49[_0x3ab51d];return _0x29a04e;};'use strict';var multer=require('multer');var util=require('util');var path=require('path');var timeout=require(_0x91d4('0x0'));var express=require(_0x91d4('0x1'));var router=express[_0x91d4('0x2')]();var fs_extra=require('fs-extra');var auth=require(_0x91d4('0x3'));var interaction=require(_0x91d4('0x4'));var config=require(_0x91d4('0x5'));var controller=require(_0x91d4('0x6'));router[_0x91d4('0x7')]('/',auth[_0x91d4('0x8')](),controller['index']);router[_0x91d4('0x7')](_0x91d4('0x9'),auth[_0x91d4('0x8')](),controller[_0x91d4('0xa')]);router[_0x91d4('0x7')](_0x91d4('0xb'),auth[_0x91d4('0x8')](),controller[_0x91d4('0xc')]);var upload=multer({'storage':multer[_0x91d4('0xd')]({'destination':function(_0x272b5a,_0x238cea,_0x23cbcf){_0x23cbcf(null,path[_0x91d4('0xe')](config[_0x91d4('0xf')],_0x91d4('0x10')));},'filename':function(_0x1dc800,_0x377ff9,_0x17068e){_0x377ff9[_0x91d4('0x11')]=_0x377ff9[_0x91d4('0x11')][_0x91d4('0x12')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');_0x17068e(null,util['format'](_0x91d4('0x13'),path[_0x91d4('0x14')](_0x377ff9[_0x91d4('0x11')],path[_0x91d4('0x15')](_0x377ff9['originalname'])),Date[_0x91d4('0x16')](),path[_0x91d4('0x15')](_0x377ff9[_0x91d4('0x11')])));}})});router[_0x91d4('0x17')]('/',upload['single'](_0x91d4('0x18')),controller['create']);router[_0x91d4('0x19')]('/:id',auth[_0x91d4('0x8')](),controller[_0x91d4('0x1a')]);router[_0x91d4('0x1b')](_0x91d4('0x9'),auth[_0x91d4('0x8')](),controller['delete']);module[_0x91d4('0x1c')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd389=['FLOAT','BIGINT','INTEGER','exports','name','STRING'];(function(_0x82dc2c,_0x183cca){var _0x13b857=function(_0x300a00){while(--_0x300a00){_0x82dc2c['push'](_0x82dc2c['shift']());}};_0x13b857(++_0x183cca);}(_0xd389,0xe1));var _0x9d38=function(_0x47f5b2,_0x321bc9){_0x47f5b2=_0x47f5b2-0x0;var _0x260496=_0xd389[_0x47f5b2];return _0x260496;};'use strict';var Sequelize=require('sequelize');module[_0x9d38('0x0')]={'name':{'type':Sequelize['STRING'],'unique':_0x9d38('0x1'),'allowNull':![]},'save_name':{'type':Sequelize[_0x9d38('0x2')]},'display_name':{'type':Sequelize[_0x9d38('0x2')],'defaultValue':''},'description':{'type':Sequelize[_0x9d38('0x2')]},'original_format':{'type':Sequelize[_0x9d38('0x2')]},'original_duration':{'type':Sequelize[_0x9d38('0x3')]},'original_sampleCount':{'type':Sequelize[_0x9d38('0x4')]},'original_channelCount':{'type':Sequelize[_0x9d38('0x5')]},'original_bitRate':{'type':Sequelize[_0x9d38('0x4')]},'original_sampleRate':{'type':Sequelize[_0x9d38('0x5')]},'converted_format':{'type':Sequelize[_0x9d38('0x2')]},'converted_duration':{'type':Sequelize[_0x9d38('0x3')]},'converted_sampleCount':{'type':Sequelize['BIGINT']},'converted_channelCount':{'type':Sequelize[_0x9d38('0x5')]},'converted_bitRate':{'type':Sequelize[_0x9d38('0x4')]},'converted_sampleRate':{'type':Sequelize[_0x9d38('0x5')]}};
\ No newline at end of file
+var _0xbddc=['INTEGER','sequelize','name','STRING','FLOAT','BIGINT'];(function(_0x2ed88f,_0x5bc5ae){var _0x17ca96=function(_0x2be0dc){while(--_0x2be0dc){_0x2ed88f['push'](_0x2ed88f['shift']());}};_0x17ca96(++_0x5bc5ae);}(_0xbddc,0xfd));var _0xcbdd=function(_0x2eda1b,_0x278682){_0x2eda1b=_0x2eda1b-0x0;var _0x539c52=_0xbddc[_0x2eda1b];return _0x539c52;};'use strict';var Sequelize=require(_0xcbdd('0x0'));module['exports']={'name':{'type':Sequelize['STRING'],'unique':_0xcbdd('0x1'),'allowNull':![]},'save_name':{'type':Sequelize['STRING']},'display_name':{'type':Sequelize[_0xcbdd('0x2')],'defaultValue':''},'description':{'type':Sequelize[_0xcbdd('0x2')]},'original_format':{'type':Sequelize[_0xcbdd('0x2')]},'original_duration':{'type':Sequelize[_0xcbdd('0x3')]},'original_sampleCount':{'type':Sequelize[_0xcbdd('0x4')]},'original_channelCount':{'type':Sequelize[_0xcbdd('0x5')]},'original_bitRate':{'type':Sequelize[_0xcbdd('0x4')]},'original_sampleRate':{'type':Sequelize[_0xcbdd('0x5')]},'converted_format':{'type':Sequelize[_0xcbdd('0x2')]},'converted_duration':{'type':Sequelize[_0xcbdd('0x3')]},'converted_sampleCount':{'type':Sequelize[_0xcbdd('0x4')]},'converted_channelCount':{'type':Sequelize[_0xcbdd('0x5')]},'converted_bitRate':{'type':Sequelize[_0xcbdd('0x4')]},'converted_sampleRate':{'type':Sequelize[_0xcbdd('0x5')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4b03=['rows','catch','params','find','download','save_name','join','root','server/files/sounds/converted','converted_format','Sound\x20not\x20found','format','create','basename','file','originalname','extname','filename','substring','wav','server/files/sounds/original','%s.%s','info','Sound\x20upload\x20destination:\x20%s','chmodSync','0777','error','src','original_duration','duration','original_sampleCount','sampleCount','channelCount','original_bitRate','bitRate','original_sampleRate','sampleRate','dest','converted_channelCount','converted_bitRate','converted_sampleRate','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','delete','original_format','unlinkSync','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','ioredis','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','limit','undefined','count','set','Content-Range','apply','reject','save','update','then','destroy','get','Sounds','UserProfileResource','stack','name','send','map','rawAttributes','fieldName','model','query','keys','attributes','intersection','fields','length','nolimit','sort','filters','pick','filter','where','merge','type','VIRTUAL','options','Sound','includeAll','include','findAll'];(function(_0x2b4411,_0x2625ed){var _0x8e41ef=function(_0x2aa8c1){while(--_0x2aa8c1){_0x2b4411['push'](_0x2b4411['shift']());}};_0x8e41ef(++_0x2625ed);}(_0x4b03,0xad));var _0x34b0=function(_0x43b2bb,_0x1828c8){_0x43b2bb=_0x43b2bb-0x0;var _0x36dc2c=_0x4b03[_0x43b2bb];return _0x36dc2c;};'use strict';var emlformat=require(_0x34b0('0x0'));var rimraf=require(_0x34b0('0x1'));var zipdir=require(_0x34b0('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x34b0('0x3'));var moment=require(_0x34b0('0x4'));var BPromise=require(_0x34b0('0x5'));var Mustache=require('mustache');var util=require(_0x34b0('0x6'));var path=require('path');var sox=require(_0x34b0('0x7'));var csv=require(_0x34b0('0x8'));var ejs=require(_0x34b0('0x9'));var fs=require('fs');var fs_extra=require(_0x34b0('0xa'));var _=require(_0x34b0('0xb'));var squel=require(_0x34b0('0xc'));var crypto=require(_0x34b0('0xd'));var jsforce=require(_0x34b0('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x34b0('0x8'));var querystring=require(_0x34b0('0xf'));var Papa=require('papaparse');var Redis=require(_0x34b0('0x10'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x34b0('0x11'))(_0x34b0('0x12'));var utils=require(_0x34b0('0x13'));var config=require(_0x34b0('0x14'));var licenseUtil=require(_0x34b0('0x15'));var db=require(_0x34b0('0x16'))['db'];function respondWithStatusCode(_0x17e0cb,_0x125945){_0x125945=_0x125945||0xcc;return function(_0x164ca4){if(_0x164ca4){return _0x17e0cb[_0x34b0('0x17')](_0x125945);}return _0x17e0cb[_0x34b0('0x18')](_0x125945)[_0x34b0('0x19')]();};}function respondWithResult(_0x3ee6dc,_0x149347){_0x149347=_0x149347||0xc8;return function(_0x4aa9ee){if(_0x4aa9ee){return _0x3ee6dc[_0x34b0('0x18')](_0x149347)[_0x34b0('0x1a')](_0x4aa9ee);}};}function respondWithFilteredResult(_0x51022e,_0x7e1405){return function(_0x369d0b){if(_0x369d0b){var _0x1f17b3=typeof _0x7e1405[_0x34b0('0x1b')]==='undefined'&&typeof _0x7e1405[_0x34b0('0x1c')]===_0x34b0('0x1d');var _0x2d2b45=_0x369d0b[_0x34b0('0x1e')];var _0x302805=_0x1f17b3?0x0:_0x7e1405['offset'];var _0x10079a=_0x1f17b3?_0x369d0b[_0x34b0('0x1e')]:_0x7e1405['offset']+_0x7e1405[_0x34b0('0x1c')];var _0x2ff3b7;if(_0x10079a>=_0x2d2b45){_0x10079a=_0x2d2b45;_0x2ff3b7=0xc8;}else{_0x2ff3b7=0xce;}_0x51022e['status'](_0x2ff3b7);return _0x51022e[_0x34b0('0x1f')](_0x34b0('0x20'),_0x302805+'-'+_0x10079a+'/'+_0x2d2b45)[_0x34b0('0x1a')](_0x369d0b);}return null;};}function patchUpdates(_0x23744d){return function(_0x158592){try{jsonpatch[_0x34b0('0x21')](_0x158592,_0x23744d,!![]);}catch(_0x3346ec){return BPromise[_0x34b0('0x22')](_0x3346ec);}return _0x158592[_0x34b0('0x23')]();};}function saveUpdates(_0x367146,_0x17d298){return function(_0x3dbc77){if(_0x3dbc77){return _0x3dbc77[_0x34b0('0x24')](_0x367146)[_0x34b0('0x25')](function(_0x18a522){return _0x18a522;});}return null;};}function removeEntity(_0x348faf,_0x117f83){return function(_0xbfd511){if(_0xbfd511){return _0xbfd511[_0x34b0('0x26')]()['then'](function(){var _0x3bf545=_0xbfd511[_0x34b0('0x27')]({'plain':!![]});var _0x979cd5=_0x34b0('0x28');return db[_0x34b0('0x29')][_0x34b0('0x26')]({'where':{'type':_0x979cd5,'resourceId':_0x3bf545['id']}})[_0x34b0('0x25')](function(){return _0xbfd511;});})[_0x34b0('0x25')](function(){_0x348faf['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x1a30f3,_0x2f8ce5){return function(_0x399e53){if(!_0x399e53){_0x1a30f3[_0x34b0('0x17')](0x194);}return _0x399e53;};}function handleError(_0x87ce71,_0x3e0d9b){_0x3e0d9b=_0x3e0d9b||0x1f4;return function(_0x123c7b){logger['error'](_0x123c7b[_0x34b0('0x2a')]);if(_0x123c7b[_0x34b0('0x2b')]){delete _0x123c7b[_0x34b0('0x2b')];}_0x87ce71[_0x34b0('0x18')](_0x3e0d9b)[_0x34b0('0x2c')](_0x123c7b);};}exports['index']=function(_0x1b5701,_0x5bf2d5){var _0x25745c={},_0x23aec2={},_0x57a561={'count':0x0,'rows':[]};var _0x33a012=_[_0x34b0('0x2d')](db['Sound'][_0x34b0('0x2e')],function(_0x44cce9){return{'name':_0x44cce9[_0x34b0('0x2f')],'type':_0x44cce9['type']['key']};});_0x23aec2[_0x34b0('0x30')]=_[_0x34b0('0x2d')](_0x33a012,_0x34b0('0x2b'));_0x23aec2[_0x34b0('0x31')]=_[_0x34b0('0x32')](_0x1b5701['query']);_0x23aec2['filters']=_['intersection'](_0x23aec2[_0x34b0('0x30')],_0x23aec2[_0x34b0('0x31')]);_0x25745c[_0x34b0('0x33')]=_[_0x34b0('0x34')](_0x23aec2[_0x34b0('0x30')],qs['fields'](_0x1b5701[_0x34b0('0x31')][_0x34b0('0x35')]));_0x25745c[_0x34b0('0x33')]=_0x25745c[_0x34b0('0x33')][_0x34b0('0x36')]?_0x25745c[_0x34b0('0x33')]:_0x23aec2[_0x34b0('0x30')];if(!_0x1b5701[_0x34b0('0x31')]['hasOwnProperty'](_0x34b0('0x37'))){_0x25745c[_0x34b0('0x1c')]=qs[_0x34b0('0x1c')](_0x1b5701[_0x34b0('0x31')][_0x34b0('0x1c')]);_0x25745c[_0x34b0('0x1b')]=qs[_0x34b0('0x1b')](_0x1b5701[_0x34b0('0x31')][_0x34b0('0x1b')]);}_0x25745c['order']=qs['sort'](_0x1b5701[_0x34b0('0x31')][_0x34b0('0x38')]);_0x25745c['where']=qs[_0x34b0('0x39')](_[_0x34b0('0x3a')](_0x1b5701[_0x34b0('0x31')],_0x23aec2[_0x34b0('0x39')]),_0x33a012);if(_0x1b5701[_0x34b0('0x31')][_0x34b0('0x3b')]){_0x25745c[_0x34b0('0x3c')]=_[_0x34b0('0x3d')](_0x25745c[_0x34b0('0x3c')],{'$or':_[_0x34b0('0x2d')](_0x33a012,function(_0x11809a){if(_0x11809a[_0x34b0('0x3e')]!==_0x34b0('0x3f')){var _0x49052d={};_0x49052d[_0x11809a[_0x34b0('0x2b')]]={'$like':'%'+_0x1b5701[_0x34b0('0x31')][_0x34b0('0x3b')]+'%'};return _0x49052d;}})});}_0x25745c=_[_0x34b0('0x3d')]({},_0x25745c,_0x1b5701[_0x34b0('0x40')]);var _0x1d6ce8={'where':_0x25745c[_0x34b0('0x3c')]};return db[_0x34b0('0x41')]['count'](_0x1d6ce8)[_0x34b0('0x25')](function(_0x5bd291){_0x57a561[_0x34b0('0x1e')]=_0x5bd291;if(_0x1b5701[_0x34b0('0x31')][_0x34b0('0x42')]){_0x25745c[_0x34b0('0x43')]=[{'all':!![]}];}return db['Sound'][_0x34b0('0x44')](_0x25745c);})[_0x34b0('0x25')](function(_0xf53c37){_0x57a561[_0x34b0('0x45')]=_0xf53c37;return _0x57a561;})[_0x34b0('0x25')](respondWithFilteredResult(_0x5bf2d5,_0x25745c))[_0x34b0('0x46')](handleError(_0x5bf2d5,null));};exports['show']=function(_0x3fc72b,_0x561158){var _0x520501={'raw':!![],'where':{'id':_0x3fc72b[_0x34b0('0x47')]['id']}},_0x5ec09b={};_0x5ec09b[_0x34b0('0x30')]=_[_0x34b0('0x32')](db[_0x34b0('0x41')][_0x34b0('0x2e')]);_0x5ec09b[_0x34b0('0x31')]=_[_0x34b0('0x32')](_0x3fc72b[_0x34b0('0x31')]);_0x5ec09b['filters']=_[_0x34b0('0x34')](_0x5ec09b[_0x34b0('0x30')],_0x5ec09b['query']);_0x520501[_0x34b0('0x33')]=_[_0x34b0('0x34')](_0x5ec09b[_0x34b0('0x30')],qs[_0x34b0('0x35')](_0x3fc72b['query'][_0x34b0('0x35')]));_0x520501[_0x34b0('0x33')]=_0x520501[_0x34b0('0x33')][_0x34b0('0x36')]?_0x520501[_0x34b0('0x33')]:_0x5ec09b[_0x34b0('0x30')];if(_0x3fc72b['query'][_0x34b0('0x42')]){_0x520501[_0x34b0('0x43')]=[{'all':!![]}];}_0x520501=_['merge']({},_0x520501,_0x3fc72b[_0x34b0('0x40')]);return db[_0x34b0('0x41')][_0x34b0('0x48')](_0x520501)[_0x34b0('0x25')](handleEntityNotFound(_0x561158,null))[_0x34b0('0x25')](respondWithResult(_0x561158,null))[_0x34b0('0x46')](handleError(_0x561158,null));};exports[_0x34b0('0x49')]=function(_0x77b54c,_0x5958ef,_0x4fa039){return db[_0x34b0('0x41')][_0x34b0('0x48')]({'where':{'id':_0x77b54c[_0x34b0('0x47')]['id']},'attributes':[_0x34b0('0x2b'),_0x34b0('0x4a'),'converted_format'],'raw':!![]})[_0x34b0('0x25')](handleEntityNotFound(_0x5958ef,null))[_0x34b0('0x25')](function(_0xe5763d){if(_0xe5763d){if(!fs['existsSync'](path[_0x34b0('0x4b')](config[_0x34b0('0x4c')],_0x34b0('0x4d'),_0xe5763d['save_name']+'.'+_0xe5763d[_0x34b0('0x4e')]))){throw new db['Sequelize']['ValidationError'](_0x34b0('0x4f'));}return _0x5958ef['download'](path[_0x34b0('0x4b')](config[_0x34b0('0x4c')],'server/files/sounds/converted',util['format']('%s.%s',_0xe5763d[_0x34b0('0x4a')],_0xe5763d[_0x34b0('0x4e')])),util[_0x34b0('0x50')]('%s.%s',_0xe5763d[_0x34b0('0x2b')],_0xe5763d[_0x34b0('0x4e')]));}return null;})['catch'](handleError(_0x5958ef,null));};exports[_0x34b0('0x51')]=function(_0x3f6d05,_0x2395a2,_0x384e4c){var _0xae395={'name':path[_0x34b0('0x52')](_0x3f6d05[_0x34b0('0x53')][_0x34b0('0x54')],path[_0x34b0('0x55')](_0x3f6d05[_0x34b0('0x53')][_0x34b0('0x54')])),'save_name':path[_0x34b0('0x52')](_0x3f6d05[_0x34b0('0x53')][_0x34b0('0x56')],path[_0x34b0('0x55')](_0x3f6d05['file'][_0x34b0('0x56')])),'original_format':path[_0x34b0('0x55')](_0x3f6d05[_0x34b0('0x53')][_0x34b0('0x54')])[_0x34b0('0x57')](0x1),'converted_format':_0x34b0('0x58')};var _0x5cdbdd=path[_0x34b0('0x4b')](config[_0x34b0('0x4c')],_0x34b0('0x59'),_0x3f6d05[_0x34b0('0x53')][_0x34b0('0x56')]);var _0x997806=path[_0x34b0('0x4b')](config[_0x34b0('0x4c')],'server/files/sounds/converted',util[_0x34b0('0x50')](_0x34b0('0x5a'),path[_0x34b0('0x52')](_0x3f6d05[_0x34b0('0x53')][_0x34b0('0x56')],path[_0x34b0('0x55')](_0x3f6d05[_0x34b0('0x53')][_0x34b0('0x56')])),_0xae395['converted_format']));logger[_0x34b0('0x5b')]('Sound\x20upload\x20filepath:\x20%s',_0x5cdbdd);logger[_0x34b0('0x5b')](_0x34b0('0x5c'),_0x997806);try{fs[_0x34b0('0x5d')](_0x5cdbdd,parseInt(_0x34b0('0x5e'),0x8));var _0xed7085=sox['transcode'](_0x5cdbdd,_0x997806,{'sampleRate':0x1f40,'format':'wav','channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0xed7085['on'](_0x34b0('0x5f'),function(_0x5dcc5a){fs['unlinkSync'](_0x5cdbdd);_0x2395a2['status'](0x1f4)[_0x34b0('0x2c')](_0x5dcc5a);});_0xed7085['on'](_0x34b0('0x60'),function(_0x3954f8){_0xae395[_0x34b0('0x61')]=isNaN(_0x3954f8[_0x34b0('0x62')])?null:_0x3954f8[_0x34b0('0x62')]*0x3e8;_0xae395[_0x34b0('0x63')]=isNaN(_0x3954f8[_0x34b0('0x64')])?null:_0x3954f8[_0x34b0('0x64')];_0xae395['original_channelCount']=isNaN(_0x3954f8[_0x34b0('0x65')])?null:_0x3954f8[_0x34b0('0x65')];_0xae395[_0x34b0('0x66')]=isNaN(_0x3954f8['bitRate'])?null:_0x3954f8[_0x34b0('0x67')];_0xae395[_0x34b0('0x68')]=isNaN(_0x3954f8[_0x34b0('0x69')])?null:_0x3954f8[_0x34b0('0x69')];});_0xed7085['on'](_0x34b0('0x6a'),function(_0x54afdf){_0xae395['converted_duration']=isNaN(_0x54afdf[_0x34b0('0x62')])?null:_0x54afdf[_0x34b0('0x62')]*0x3e8;_0xae395['converted_sampleCount']=isNaN(_0x54afdf['sampleCount'])?null:_0x54afdf['sampleCount'];_0xae395[_0x34b0('0x6b')]=isNaN(_0x54afdf['channelCount'])?null:_0x54afdf['channelCount'];_0xae395[_0x34b0('0x6c')]=isNaN(_0x54afdf[_0x34b0('0x67')])?null:_0x54afdf[_0x34b0('0x67')];_0xae395[_0x34b0('0x6d')]=isNaN(_0x54afdf[_0x34b0('0x69')])?null:_0x54afdf[_0x34b0('0x69')];});_0xed7085['on']('end',function(){fs[_0x34b0('0x5d')](_0x997806,parseInt(_0x34b0('0x5e'),0x8));return db[_0x34b0('0x41')]['create'](_0xae395)[_0x34b0('0x25')](function(_0x56ba04){var _0x2d385b={'role':_0x3f6d05[_0x34b0('0x6e')]['role'],'userProfileId':_0x3f6d05['body']['userProfileId']};if(!_0x2d385b)throw new Error(_0x34b0('0x6f'));if(_0x2d385b[_0x34b0('0x70')]===_0x34b0('0x71')){var _0x4fbc79=_0x56ba04[_0x34b0('0x27')]({'plain':!![]});return db[_0x34b0('0x72')][_0x34b0('0x48')]({'where':{'name':'Sounds','userProfileId':_0x2d385b[_0x34b0('0x73')]},'raw':!![]})['then'](function(_0x312cef){if(_0x312cef&&_0x312cef[_0x34b0('0x74')]===0x0){return db[_0x34b0('0x29')][_0x34b0('0x51')]({'name':_0x4fbc79[_0x34b0('0x2b')],'resourceId':_0x4fbc79['id'],'type':_0x312cef[_0x34b0('0x2b')],'sectionId':_0x312cef['id']},{})[_0x34b0('0x25')](function(){return _0x56ba04;});}else{return _0x56ba04;}})['catch'](function(_0x238b8a){logger['error'](_0x34b0('0x75'),_0x238b8a);throw _0x238b8a;});}return _0x56ba04;})['then'](respondWithResult(_0x2395a2,null))[_0x34b0('0x46')](handleError(_0x2395a2,null));});_0xed7085['start']();}catch(_0x3d10e0){_0x2395a2[_0x34b0('0x18')](0x1f4)[_0x34b0('0x2c')](_0x3d10e0);}};exports[_0x34b0('0x24')]=function(_0x48cc98,_0x188879,_0x4afca7){return db['Sound'][_0x34b0('0x48')]({'where':{'id':_0x48cc98[_0x34b0('0x47')]['id']}})['then'](handleEntityNotFound(_0x188879,null))['then'](saveUpdates(_['pick'](_0x48cc98[_0x34b0('0x6e')],['name','description']),null))[_0x34b0('0x25')](respondWithResult(_0x188879,null))[_0x34b0('0x46')](handleError(_0x188879,null));};exports[_0x34b0('0x76')]=function(_0x3773c4,_0x496a46,_0x1b427e){return db[_0x34b0('0x41')][_0x34b0('0x48')]({'where':{'id':_0x3773c4[_0x34b0('0x47')]['id']}})[_0x34b0('0x25')](function(_0x5b6f82){if(_0x5b6f82){return _0x5b6f82[_0x34b0('0x26')]();}})['then'](function(_0x3900be){var _0x1fc605=path['join'](config['root'],_0x34b0('0x59'),util[_0x34b0('0x50')](_0x34b0('0x5a'),_0x3900be['save_name'],_0x3900be[_0x34b0('0x77')]));var _0x35bbbb=path[_0x34b0('0x4b')](config[_0x34b0('0x4c')],_0x34b0('0x4d'),util[_0x34b0('0x50')]('%s.%s',_0x3900be[_0x34b0('0x4a')],_0x3900be['converted_format']));fs[_0x34b0('0x78')](_0x1fc605);fs[_0x34b0('0x78')](_0x35bbbb);return _0x3900be;})[_0x34b0('0x25')](function(_0xd1d8ba){if(_0xd1d8ba){return _0x496a46[_0x34b0('0x18')](0xcc)[_0x34b0('0x19')]();}})[_0x34b0('0x25')](handleEntityNotFound(_0x496a46,null))[_0x34b0('0x46')](handleError(_0x496a46,null));};
\ No newline at end of file
+var _0x3efd=['filter','merge','VIRTUAL','options','includeAll','include','findAll','catch','params','fields','length','download','find','converted_format','existsSync','join','server/files/sounds/converted','save_name','Sequelize','Sound\x20not\x20found','format','%s.%s','file','originalname','extname','basename','filename','substring','wav','server/files/sounds/original','root','Sound\x20upload\x20filepath:\x20%s','info','Sound\x20upload\x20destination:\x20%s','chmodSync','0777','src','duration','original_sampleCount','sampleCount','original_channelCount','channelCount','original_bitRate','bitRate','sampleRate','dest','converted_duration','converted_sampleCount','converted_bitRate','converted_sampleRate','create','body','role','userProfileId','user','UserProfileSection','autoAssociation','update','description','delete','original_format','unlinkSync','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','path','sox','to-csv','ejs','lodash','squel','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','offset','undefined','count','limit','json','apply','reject','save','then','get','Sounds','UserProfileResource','destroy','end','name','send','index','map','Sound','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','hasOwnProperty','nolimit','order','sort','where','pick'];(function(_0x116fad,_0x3c4227){var _0x2fc98f=function(_0x5189f0){while(--_0x5189f0){_0x116fad['push'](_0x116fad['shift']());}};_0x2fc98f(++_0x3c4227);}(_0x3efd,0x132));var _0xd3ef=function(_0x44f361,_0x8b2505){_0x44f361=_0x44f361-0x0;var _0x1fa735=_0x3efd[_0x44f361];return _0x1fa735;};'use strict';var emlformat=require(_0xd3ef('0x0'));var rimraf=require(_0xd3ef('0x1'));var zipdir=require(_0xd3ef('0x2'));var jsonpatch=require(_0xd3ef('0x3'));var rp=require('request-promise');var moment=require(_0xd3ef('0x4'));var BPromise=require(_0xd3ef('0x5'));var Mustache=require('mustache');var util=require('util');var path=require(_0xd3ef('0x6'));var sox=require(_0xd3ef('0x7'));var csv=require(_0xd3ef('0x8'));var ejs=require(_0xd3ef('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xd3ef('0xa'));var squel=require(_0xd3ef('0xb'));var crypto=require('crypto');var jsforce=require(_0xd3ef('0xc'));var deskjs=require(_0xd3ef('0xd'));var toCsv=require(_0xd3ef('0x8'));var querystring=require(_0xd3ef('0xe'));var Papa=require(_0xd3ef('0xf'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0xd3ef('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xd3ef('0x11'));var logger=require(_0xd3ef('0x12'))(_0xd3ef('0x13'));var utils=require(_0xd3ef('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0xd3ef('0x15'));var db=require(_0xd3ef('0x16'))['db'];function respondWithStatusCode(_0x1a6689,_0x317482){_0x317482=_0x317482||0xcc;return function(_0x39e925){if(_0x39e925){return _0x1a6689[_0xd3ef('0x17')](_0x317482);}return _0x1a6689[_0xd3ef('0x18')](_0x317482)['end']();};}function respondWithResult(_0x400d3c,_0x318b13){_0x318b13=_0x318b13||0xc8;return function(_0x2c741f){if(_0x2c741f){return _0x400d3c['status'](_0x318b13)['json'](_0x2c741f);}};}function respondWithFilteredResult(_0x2aa976,_0x4aad38){return function(_0xa3de59){if(_0xa3de59){var _0x808f7b=typeof _0x4aad38[_0xd3ef('0x19')]===_0xd3ef('0x1a')&&typeof _0x4aad38['limit']===_0xd3ef('0x1a');var _0x518937=_0xa3de59[_0xd3ef('0x1b')];var _0x4e995a=_0x808f7b?0x0:_0x4aad38['offset'];var _0x1ae0b6=_0x808f7b?_0xa3de59['count']:_0x4aad38[_0xd3ef('0x19')]+_0x4aad38[_0xd3ef('0x1c')];var _0x3d1091;if(_0x1ae0b6>=_0x518937){_0x1ae0b6=_0x518937;_0x3d1091=0xc8;}else{_0x3d1091=0xce;}_0x2aa976[_0xd3ef('0x18')](_0x3d1091);return _0x2aa976['set']('Content-Range',_0x4e995a+'-'+_0x1ae0b6+'/'+_0x518937)[_0xd3ef('0x1d')](_0xa3de59);}return null;};}function patchUpdates(_0x2ba8d0){return function(_0x18b15b){try{jsonpatch[_0xd3ef('0x1e')](_0x18b15b,_0x2ba8d0,!![]);}catch(_0x23176d){return BPromise[_0xd3ef('0x1f')](_0x23176d);}return _0x18b15b[_0xd3ef('0x20')]();};}function saveUpdates(_0x1a9276,_0x6691da){return function(_0x2fc9c1){if(_0x2fc9c1){return _0x2fc9c1['update'](_0x1a9276)[_0xd3ef('0x21')](function(_0x599f88){return _0x599f88;});}return null;};}function removeEntity(_0x25ce6f,_0x6e455e){return function(_0x3851e5){if(_0x3851e5){return _0x3851e5['destroy']()[_0xd3ef('0x21')](function(){var _0x1bfbc8=_0x3851e5[_0xd3ef('0x22')]({'plain':!![]});var _0x459962=_0xd3ef('0x23');return db[_0xd3ef('0x24')][_0xd3ef('0x25')]({'where':{'type':_0x459962,'resourceId':_0x1bfbc8['id']}})[_0xd3ef('0x21')](function(){return _0x3851e5;});})[_0xd3ef('0x21')](function(){_0x25ce6f[_0xd3ef('0x18')](0xcc)[_0xd3ef('0x26')]();});}};}function handleEntityNotFound(_0xd5b4a4,_0x135a3e){return function(_0x1c4671){if(!_0x1c4671){_0xd5b4a4['sendStatus'](0x194);}return _0x1c4671;};}function handleError(_0x5345c9,_0xd2cafa){_0xd2cafa=_0xd2cafa||0x1f4;return function(_0x476d0b){logger['error'](_0x476d0b['stack']);if(_0x476d0b[_0xd3ef('0x27')]){delete _0x476d0b['name'];}_0x5345c9[_0xd3ef('0x18')](_0xd2cafa)[_0xd3ef('0x28')](_0x476d0b);};}exports[_0xd3ef('0x29')]=function(_0x40d988,_0x4a1a65){var _0x4f4c4e={},_0x24a8e8={},_0x3f2e65={'count':0x0,'rows':[]};var _0x14fa38=_[_0xd3ef('0x2a')](db[_0xd3ef('0x2b')][_0xd3ef('0x2c')],function(_0x41e3e7){return{'name':_0x41e3e7[_0xd3ef('0x2d')],'type':_0x41e3e7[_0xd3ef('0x2e')][_0xd3ef('0x2f')]};});_0x24a8e8[_0xd3ef('0x30')]=_[_0xd3ef('0x2a')](_0x14fa38,_0xd3ef('0x27'));_0x24a8e8[_0xd3ef('0x31')]=_[_0xd3ef('0x32')](_0x40d988[_0xd3ef('0x31')]);_0x24a8e8[_0xd3ef('0x33')]=_[_0xd3ef('0x34')](_0x24a8e8[_0xd3ef('0x30')],_0x24a8e8[_0xd3ef('0x31')]);_0x4f4c4e[_0xd3ef('0x35')]=_[_0xd3ef('0x34')](_0x24a8e8[_0xd3ef('0x30')],qs['fields'](_0x40d988[_0xd3ef('0x31')]['fields']));_0x4f4c4e['attributes']=_0x4f4c4e[_0xd3ef('0x35')]['length']?_0x4f4c4e[_0xd3ef('0x35')]:_0x24a8e8[_0xd3ef('0x30')];if(!_0x40d988[_0xd3ef('0x31')][_0xd3ef('0x36')](_0xd3ef('0x37'))){_0x4f4c4e['limit']=qs['limit'](_0x40d988[_0xd3ef('0x31')][_0xd3ef('0x1c')]);_0x4f4c4e[_0xd3ef('0x19')]=qs[_0xd3ef('0x19')](_0x40d988[_0xd3ef('0x31')]['offset']);}_0x4f4c4e[_0xd3ef('0x38')]=qs['sort'](_0x40d988[_0xd3ef('0x31')][_0xd3ef('0x39')]);_0x4f4c4e[_0xd3ef('0x3a')]=qs[_0xd3ef('0x33')](_[_0xd3ef('0x3b')](_0x40d988['query'],_0x24a8e8['filters']),_0x14fa38);if(_0x40d988[_0xd3ef('0x31')][_0xd3ef('0x3c')]){_0x4f4c4e['where']=_[_0xd3ef('0x3d')](_0x4f4c4e[_0xd3ef('0x3a')],{'$or':_['map'](_0x14fa38,function(_0x5d8849){if(_0x5d8849[_0xd3ef('0x2e')]!==_0xd3ef('0x3e')){var _0x440ebc={};_0x440ebc[_0x5d8849[_0xd3ef('0x27')]]={'$like':'%'+_0x40d988[_0xd3ef('0x31')][_0xd3ef('0x3c')]+'%'};return _0x440ebc;}})});}_0x4f4c4e=_[_0xd3ef('0x3d')]({},_0x4f4c4e,_0x40d988[_0xd3ef('0x3f')]);var _0x39ce63={'where':_0x4f4c4e[_0xd3ef('0x3a')]};return db['Sound'][_0xd3ef('0x1b')](_0x39ce63)['then'](function(_0x1a1eee){_0x3f2e65['count']=_0x1a1eee;if(_0x40d988[_0xd3ef('0x31')][_0xd3ef('0x40')]){_0x4f4c4e[_0xd3ef('0x41')]=[{'all':!![]}];}return db[_0xd3ef('0x2b')][_0xd3ef('0x42')](_0x4f4c4e);})['then'](function(_0x561baf){_0x3f2e65['rows']=_0x561baf;return _0x3f2e65;})['then'](respondWithFilteredResult(_0x4a1a65,_0x4f4c4e))[_0xd3ef('0x43')](handleError(_0x4a1a65,null));};exports['show']=function(_0x2bc74d,_0x178031){var _0x5609eb={'raw':!![],'where':{'id':_0x2bc74d[_0xd3ef('0x44')]['id']}},_0x587cd7={};_0x587cd7[_0xd3ef('0x30')]=_['keys'](db['Sound']['rawAttributes']);_0x587cd7[_0xd3ef('0x31')]=_['keys'](_0x2bc74d[_0xd3ef('0x31')]);_0x587cd7[_0xd3ef('0x33')]=_['intersection'](_0x587cd7[_0xd3ef('0x30')],_0x587cd7[_0xd3ef('0x31')]);_0x5609eb['attributes']=_[_0xd3ef('0x34')](_0x587cd7['model'],qs[_0xd3ef('0x45')](_0x2bc74d[_0xd3ef('0x31')][_0xd3ef('0x45')]));_0x5609eb[_0xd3ef('0x35')]=_0x5609eb[_0xd3ef('0x35')][_0xd3ef('0x46')]?_0x5609eb[_0xd3ef('0x35')]:_0x587cd7[_0xd3ef('0x30')];if(_0x2bc74d[_0xd3ef('0x31')]['includeAll']){_0x5609eb[_0xd3ef('0x41')]=[{'all':!![]}];}_0x5609eb=_[_0xd3ef('0x3d')]({},_0x5609eb,_0x2bc74d[_0xd3ef('0x3f')]);return db[_0xd3ef('0x2b')]['find'](_0x5609eb)[_0xd3ef('0x21')](handleEntityNotFound(_0x178031,null))[_0xd3ef('0x21')](respondWithResult(_0x178031,null))[_0xd3ef('0x43')](handleError(_0x178031,null));};exports[_0xd3ef('0x47')]=function(_0x2c2058,_0x22dae8,_0x401071){return db[_0xd3ef('0x2b')][_0xd3ef('0x48')]({'where':{'id':_0x2c2058[_0xd3ef('0x44')]['id']},'attributes':[_0xd3ef('0x27'),'save_name',_0xd3ef('0x49')],'raw':!![]})[_0xd3ef('0x21')](handleEntityNotFound(_0x22dae8,null))[_0xd3ef('0x21')](function(_0x191531){if(_0x191531){if(!fs[_0xd3ef('0x4a')](path[_0xd3ef('0x4b')](config['root'],_0xd3ef('0x4c'),_0x191531[_0xd3ef('0x4d')]+'.'+_0x191531['converted_format']))){throw new db[(_0xd3ef('0x4e'))]['ValidationError'](_0xd3ef('0x4f'));}return _0x22dae8[_0xd3ef('0x47')](path[_0xd3ef('0x4b')](config['root'],_0xd3ef('0x4c'),util[_0xd3ef('0x50')](_0xd3ef('0x51'),_0x191531[_0xd3ef('0x4d')],_0x191531[_0xd3ef('0x49')])),util[_0xd3ef('0x50')](_0xd3ef('0x51'),_0x191531[_0xd3ef('0x27')],_0x191531[_0xd3ef('0x49')]));}return null;})[_0xd3ef('0x43')](handleError(_0x22dae8,null));};exports['create']=function(_0x247233,_0x52bc16,_0x5b884d){var _0x2839cc={'name':path['basename'](_0x247233[_0xd3ef('0x52')][_0xd3ef('0x53')],path[_0xd3ef('0x54')](_0x247233[_0xd3ef('0x52')]['originalname'])),'save_name':path[_0xd3ef('0x55')](_0x247233[_0xd3ef('0x52')][_0xd3ef('0x56')],path['extname'](_0x247233[_0xd3ef('0x52')]['filename'])),'original_format':path[_0xd3ef('0x54')](_0x247233[_0xd3ef('0x52')][_0xd3ef('0x53')])[_0xd3ef('0x57')](0x1),'converted_format':_0xd3ef('0x58')};var _0x476d3b=path[_0xd3ef('0x4b')](config['root'],_0xd3ef('0x59'),_0x247233[_0xd3ef('0x52')]['filename']);var _0x177b0d=path[_0xd3ef('0x4b')](config[_0xd3ef('0x5a')],'server/files/sounds/converted',util['format']('%s.%s',path[_0xd3ef('0x55')](_0x247233[_0xd3ef('0x52')][_0xd3ef('0x56')],path[_0xd3ef('0x54')](_0x247233[_0xd3ef('0x52')][_0xd3ef('0x56')])),_0x2839cc[_0xd3ef('0x49')]));logger['info'](_0xd3ef('0x5b'),_0x476d3b);logger[_0xd3ef('0x5c')](_0xd3ef('0x5d'),_0x177b0d);try{fs[_0xd3ef('0x5e')](_0x476d3b,parseInt(_0xd3ef('0x5f'),0x8));var _0x57fa10=sox['transcode'](_0x476d3b,_0x177b0d,{'sampleRate':0x1f40,'format':'wav','channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x57fa10['on']('error',function(_0x44f876){fs['unlinkSync'](_0x476d3b);_0x52bc16[_0xd3ef('0x18')](0x1f4)['send'](_0x44f876);});_0x57fa10['on'](_0xd3ef('0x60'),function(_0x5e4224){_0x2839cc['original_duration']=isNaN(_0x5e4224[_0xd3ef('0x61')])?null:_0x5e4224[_0xd3ef('0x61')]*0x3e8;_0x2839cc[_0xd3ef('0x62')]=isNaN(_0x5e4224[_0xd3ef('0x63')])?null:_0x5e4224['sampleCount'];_0x2839cc[_0xd3ef('0x64')]=isNaN(_0x5e4224[_0xd3ef('0x65')])?null:_0x5e4224[_0xd3ef('0x65')];_0x2839cc[_0xd3ef('0x66')]=isNaN(_0x5e4224[_0xd3ef('0x67')])?null:_0x5e4224[_0xd3ef('0x67')];_0x2839cc['original_sampleRate']=isNaN(_0x5e4224[_0xd3ef('0x68')])?null:_0x5e4224[_0xd3ef('0x68')];});_0x57fa10['on'](_0xd3ef('0x69'),function(_0x373413){_0x2839cc[_0xd3ef('0x6a')]=isNaN(_0x373413[_0xd3ef('0x61')])?null:_0x373413[_0xd3ef('0x61')]*0x3e8;_0x2839cc[_0xd3ef('0x6b')]=isNaN(_0x373413[_0xd3ef('0x63')])?null:_0x373413['sampleCount'];_0x2839cc['converted_channelCount']=isNaN(_0x373413[_0xd3ef('0x65')])?null:_0x373413[_0xd3ef('0x65')];_0x2839cc[_0xd3ef('0x6c')]=isNaN(_0x373413['bitRate'])?null:_0x373413[_0xd3ef('0x67')];_0x2839cc[_0xd3ef('0x6d')]=isNaN(_0x373413[_0xd3ef('0x68')])?null:_0x373413[_0xd3ef('0x68')];});_0x57fa10['on'](_0xd3ef('0x26'),function(){fs['chmodSync'](_0x177b0d,parseInt('0777',0x8));return db[_0xd3ef('0x2b')][_0xd3ef('0x6e')](_0x2839cc)[_0xd3ef('0x21')](function(_0x245258){var _0x1c8fa8={'role':_0x247233[_0xd3ef('0x6f')][_0xd3ef('0x70')],'userProfileId':_0x247233['body'][_0xd3ef('0x71')]};if(!_0x1c8fa8)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x1c8fa8['role']===_0xd3ef('0x72')){var _0x56d5a5=_0x245258[_0xd3ef('0x22')]({'plain':!![]});return db[_0xd3ef('0x73')][_0xd3ef('0x48')]({'where':{'name':'Sounds','userProfileId':_0x1c8fa8[_0xd3ef('0x71')]},'raw':!![]})['then'](function(_0x49ac4d){if(_0x49ac4d&&_0x49ac4d[_0xd3ef('0x74')]===0x0){return db[_0xd3ef('0x24')]['create']({'name':_0x56d5a5[_0xd3ef('0x27')],'resourceId':_0x56d5a5['id'],'type':_0x49ac4d['name'],'sectionId':_0x49ac4d['id']},{})[_0xd3ef('0x21')](function(){return _0x245258;});}else{return _0x245258;}})['catch'](function(_0x47c49d){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x47c49d);throw _0x47c49d;});}return _0x245258;})[_0xd3ef('0x21')](respondWithResult(_0x52bc16,null))[_0xd3ef('0x43')](handleError(_0x52bc16,null));});_0x57fa10['start']();}catch(_0xd53011){_0x52bc16[_0xd3ef('0x18')](0x1f4)[_0xd3ef('0x28')](_0xd53011);}};exports[_0xd3ef('0x75')]=function(_0x1e4211,_0x56484a,_0x3d7216){return db[_0xd3ef('0x2b')]['find']({'where':{'id':_0x1e4211[_0xd3ef('0x44')]['id']}})[_0xd3ef('0x21')](handleEntityNotFound(_0x56484a,null))[_0xd3ef('0x21')](saveUpdates(_['pick'](_0x1e4211['body'],[_0xd3ef('0x27'),_0xd3ef('0x76')]),null))[_0xd3ef('0x21')](respondWithResult(_0x56484a,null))['catch'](handleError(_0x56484a,null));};exports[_0xd3ef('0x77')]=function(_0x2310d7,_0x1891f1,_0x23fc4d){return db[_0xd3ef('0x2b')][_0xd3ef('0x48')]({'where':{'id':_0x2310d7[_0xd3ef('0x44')]['id']}})['then'](function(_0x15d1f2){if(_0x15d1f2){return _0x15d1f2[_0xd3ef('0x25')]();}})['then'](function(_0x2c7acd){var _0x57be8a=path[_0xd3ef('0x4b')](config['root'],_0xd3ef('0x59'),util[_0xd3ef('0x50')](_0xd3ef('0x51'),_0x2c7acd[_0xd3ef('0x4d')],_0x2c7acd[_0xd3ef('0x78')]));var _0x4dbc43=path[_0xd3ef('0x4b')](config[_0xd3ef('0x5a')],_0xd3ef('0x4c'),util['format']('%s.%s',_0x2c7acd[_0xd3ef('0x4d')],_0x2c7acd['converted_format']));fs[_0xd3ef('0x79')](_0x57be8a);fs['unlinkSync'](_0x4dbc43);return _0x2c7acd;})[_0xd3ef('0x21')](function(_0x17ade7){if(_0x17ade7){return _0x1891f1[_0xd3ef('0x18')](0xcc)[_0xd3ef('0x26')]();}})[_0xd3ef('0x21')](handleEntityNotFound(_0x1891f1,null))[_0xd3ef('0x43')](handleError(_0x1891f1,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5889=['define','Sound','tools_sounds','lodash','util','../../config/logger','bluebird','request-promise','path','rimraf','../../config/environment','./sound.attributes','exports'];(function(_0x451ad7,_0x4d26e2){var _0x21665b=function(_0x3fd581){while(--_0x3fd581){_0x451ad7['push'](_0x451ad7['shift']());}};_0x21665b(++_0x4d26e2);}(_0x5889,0x196));var _0x9588=function(_0x347d36,_0x10e804){_0x347d36=_0x347d36-0x0;var _0x9289cc=_0x5889[_0x347d36];return _0x9289cc;};'use strict';var _=require(_0x9588('0x0'));var util=require(_0x9588('0x1'));var logger=require(_0x9588('0x2'))('api');var moment=require('moment');var BPromise=require(_0x9588('0x3'));var rp=require(_0x9588('0x4'));var fs=require('fs');var path=require(_0x9588('0x5'));var rimraf=require(_0x9588('0x6'));var config=require(_0x9588('0x7'));var attributes=require(_0x9588('0x8'));module[_0x9588('0x9')]=function(_0x522089,_0x250d65){return _0x522089[_0x9588('0xa')](_0x9588('0xb'),attributes,{'tableName':_0x9588('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xa18e=['request-promise','path','rimraf','../../config/environment','exports','define','tools_sounds','../../config/logger','bluebird'];(function(_0xb23fa0,_0x226a2f){var _0x15bdca=function(_0x2625bb){while(--_0x2625bb){_0xb23fa0['push'](_0xb23fa0['shift']());}};_0x15bdca(++_0x226a2f);}(_0xa18e,0x19c));var _0xea18=function(_0x4a9fb1,_0x273043){_0x4a9fb1=_0x4a9fb1-0x0;var _0x348672=_0xa18e[_0x4a9fb1];return _0x348672;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0xea18('0x0'))('api');var moment=require('moment');var BPromise=require(_0xea18('0x1'));var rp=require(_0xea18('0x2'));var fs=require('fs');var path=require(_0xea18('0x3'));var rimraf=require(_0xea18('0x4'));var config=require(_0xea18('0x5'));var attributes=require('./sound.attributes');module[_0xea18('0x6')]=function(_0xaba738,_0x4361fc){return _0xaba738[_0xea18('0x7')]('Sound',attributes,{'tableName':_0xea18('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe5f5=['raw','where','map','include','model','attributes','info','debug','util','moment','bluebird','randomstring','../../config/utils','rpc','../../config/environment','jayson/promise','client','http','request','Sound,\x20%s,\x20%s','request\x20sent','Sound,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','ShowSound','Sound','options'];(function(_0x712d97,_0x53bb9b){var _0x2025e6=function(_0x2b45e3){while(--_0x2b45e3){_0x712d97['push'](_0x712d97['shift']());}};_0x2025e6(++_0x53bb9b);}(_0xe5f5,0x170));var _0x5e5f=function(_0x325cec,_0x2afc87){_0x325cec=_0x325cec-0x0;var _0x852361=_0xe5f5[_0x325cec];return _0x852361;};'use strict';var _=require('lodash');var util=require(_0x5e5f('0x0'));var moment=require(_0x5e5f('0x1'));var BPromise=require(_0x5e5f('0x2'));var rs=require(_0x5e5f('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x5e5f('0x4'));var logger=require('../../config/logger')(_0x5e5f('0x5'));var config=require(_0x5e5f('0x6'));var jayson=require(_0x5e5f('0x7'));var client=jayson[_0x5e5f('0x8')][_0x5e5f('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x469c32,_0x3347cd,_0xf8a5f0){return new BPromise(function(_0x373ada,_0x5f1f14){return client[_0x5e5f('0xa')](_0x469c32,_0xf8a5f0)['then'](function(_0x45191f){logger['info'](_0x5e5f('0xb'),_0x3347cd,_0x5e5f('0xc'));logger['debug'](_0x5e5f('0xd'),_0x3347cd,_0x5e5f('0xc'),JSON[_0x5e5f('0xe')](_0x45191f));if(_0x45191f[_0x5e5f('0xf')]){if(_0x45191f[_0x5e5f('0xf')][_0x5e5f('0x10')]===0x1f4){logger[_0x5e5f('0xf')](_0x5e5f('0xb'),_0x3347cd,_0x45191f['error']['message']);return _0x5f1f14(_0x45191f[_0x5e5f('0xf')][_0x5e5f('0x11')]);}logger[_0x5e5f('0xf')](_0x5e5f('0xb'),_0x3347cd,_0x45191f[_0x5e5f('0xf')][_0x5e5f('0x11')]);return _0x373ada(_0x45191f[_0x5e5f('0xf')]['message']);}else{logger['info']('Sound,\x20%s,\x20%s',_0x3347cd,_0x5e5f('0xc'));_0x373ada(_0x45191f['result'][_0x5e5f('0x11')]);}})[_0x5e5f('0x12')](function(_0x421c67){logger[_0x5e5f('0xf')](_0x5e5f('0xb'),_0x3347cd,_0x421c67);_0x5f1f14(_0x421c67);});});}exports[_0x5e5f('0x13')]=function(_0x2dea18){var _0x376979=this;return new Promise(function(_0x1884bf,_0x50176c){return db[_0x5e5f('0x14')]['find']({'raw':_0x2dea18['options']?_0x2dea18[_0x5e5f('0x15')][_0x5e5f('0x16')]===undefined?!![]:![]:!![],'where':_0x2dea18[_0x5e5f('0x15')]?_0x2dea18[_0x5e5f('0x15')][_0x5e5f('0x17')]||null:null,'attributes':_0x2dea18[_0x5e5f('0x15')]?_0x2dea18['options']['attributes']||null:null,'include':_0x2dea18[_0x5e5f('0x15')]?_0x2dea18[_0x5e5f('0x15')]['include']?_[_0x5e5f('0x18')](_0x2dea18[_0x5e5f('0x15')][_0x5e5f('0x19')],function(_0x35bac2){return{'model':db[_0x35bac2[_0x5e5f('0x1a')]],'as':_0x35bac2['as'],'attributes':_0x35bac2[_0x5e5f('0x1b')],'include':_0x35bac2['include']?_[_0x5e5f('0x18')](_0x35bac2[_0x5e5f('0x19')],function(_0x342e73){return{'model':db[_0x342e73['model']],'as':_0x342e73['as'],'attributes':_0x342e73['attributes'],'include':_0x342e73[_0x5e5f('0x19')]?_[_0x5e5f('0x18')](_0x342e73[_0x5e5f('0x19')],function(_0x40f009){return{'model':db[_0x40f009[_0x5e5f('0x1a')]],'as':_0x40f009['as'],'attributes':_0x40f009['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x43df7d){logger[_0x5e5f('0x1c')](_0x5e5f('0x13'),_0x2dea18);logger[_0x5e5f('0x1d')]('ShowSound',_0x2dea18,JSON['stringify'](_0x43df7d));_0x1884bf(_0x43df7d);})[_0x5e5f('0x12')](function(_0x3407ed){logger[_0x5e5f('0xf')](_0x5e5f('0x13'),_0x3407ed[_0x5e5f('0x11')],_0x2dea18);_0x50176c(_0x376979['error'](0x1f4,_0x3407ed[_0x5e5f('0x11')]));});});};
\ No newline at end of file
+var _0xbc7b=['http','request','then','info','debug','error','code','message','Sound,\x20%s,\x20%s','request\x20sent','result','catch','ShowSound','Sound','find','options','raw','attributes','include','map','model','stringify','lodash','util','moment','randomstring','ioredis','../../config/logger','rpc','../../config/environment','jayson/promise','client'];(function(_0x45755c,_0x593d41){var _0x50f807=function(_0x546e0e){while(--_0x546e0e){_0x45755c['push'](_0x45755c['shift']());}};_0x50f807(++_0x593d41);}(_0xbc7b,0x156));var _0xbbc7=function(_0x4cb39c,_0x94a929){_0x4cb39c=_0x4cb39c-0x0;var _0x58e618=_0xbc7b[_0x4cb39c];return _0x58e618;};'use strict';var _=require(_0xbbc7('0x0'));var util=require(_0xbbc7('0x1'));var moment=require(_0xbbc7('0x2'));var BPromise=require('bluebird');var rs=require(_0xbbc7('0x3'));var fs=require('fs');var Redis=require(_0xbbc7('0x4'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0xbbc7('0x5'))(_0xbbc7('0x6'));var config=require(_0xbbc7('0x7'));var jayson=require(_0xbbc7('0x8'));var client=jayson[_0xbbc7('0x9')][_0xbbc7('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x13d236,_0x4b9304,_0x245d7d){return new BPromise(function(_0x490432,_0x10da9c){return client[_0xbbc7('0xb')](_0x13d236,_0x245d7d)[_0xbbc7('0xc')](function(_0x5f5707){logger[_0xbbc7('0xd')]('Sound,\x20%s,\x20%s',_0x4b9304,'request\x20sent');logger[_0xbbc7('0xe')]('Sound,\x20%s,\x20%s,\x20%s',_0x4b9304,'request\x20sent',JSON['stringify'](_0x5f5707));if(_0x5f5707['error']){if(_0x5f5707[_0xbbc7('0xf')][_0xbbc7('0x10')]===0x1f4){logger[_0xbbc7('0xf')]('Sound,\x20%s,\x20%s',_0x4b9304,_0x5f5707[_0xbbc7('0xf')]['message']);return _0x10da9c(_0x5f5707[_0xbbc7('0xf')][_0xbbc7('0x11')]);}logger[_0xbbc7('0xf')](_0xbbc7('0x12'),_0x4b9304,_0x5f5707['error'][_0xbbc7('0x11')]);return _0x490432(_0x5f5707[_0xbbc7('0xf')][_0xbbc7('0x11')]);}else{logger[_0xbbc7('0xd')](_0xbbc7('0x12'),_0x4b9304,_0xbbc7('0x13'));_0x490432(_0x5f5707[_0xbbc7('0x14')][_0xbbc7('0x11')]);}})[_0xbbc7('0x15')](function(_0x39832d){logger[_0xbbc7('0xf')](_0xbbc7('0x12'),_0x4b9304,_0x39832d);_0x10da9c(_0x39832d);});});}exports[_0xbbc7('0x16')]=function(_0x5bf269){var _0x4c2a36=this;return new Promise(function(_0x3b4ceb,_0x248672){return db[_0xbbc7('0x17')][_0xbbc7('0x18')]({'raw':_0x5bf269[_0xbbc7('0x19')]?_0x5bf269[_0xbbc7('0x19')][_0xbbc7('0x1a')]===undefined?!![]:![]:!![],'where':_0x5bf269[_0xbbc7('0x19')]?_0x5bf269[_0xbbc7('0x19')]['where']||null:null,'attributes':_0x5bf269[_0xbbc7('0x19')]?_0x5bf269[_0xbbc7('0x19')][_0xbbc7('0x1b')]||null:null,'include':_0x5bf269[_0xbbc7('0x19')]?_0x5bf269['options'][_0xbbc7('0x1c')]?_[_0xbbc7('0x1d')](_0x5bf269[_0xbbc7('0x19')][_0xbbc7('0x1c')],function(_0x5a6a05){return{'model':db[_0x5a6a05[_0xbbc7('0x1e')]],'as':_0x5a6a05['as'],'attributes':_0x5a6a05[_0xbbc7('0x1b')],'include':_0x5a6a05[_0xbbc7('0x1c')]?_[_0xbbc7('0x1d')](_0x5a6a05[_0xbbc7('0x1c')],function(_0x25b8a7){return{'model':db[_0x25b8a7[_0xbbc7('0x1e')]],'as':_0x25b8a7['as'],'attributes':_0x25b8a7[_0xbbc7('0x1b')],'include':_0x25b8a7[_0xbbc7('0x1c')]?_[_0xbbc7('0x1d')](_0x25b8a7[_0xbbc7('0x1c')],function(_0x2c6f91){return{'model':db[_0x2c6f91[_0xbbc7('0x1e')]],'as':_0x2c6f91['as'],'attributes':_0x2c6f91[_0xbbc7('0x1b')]};}):[]};}):[]};}):[]:[]})[_0xbbc7('0xc')](function(_0x4840c0){logger['info'](_0xbbc7('0x16'),_0x5bf269);logger[_0xbbc7('0xe')]('ShowSound',_0x5bf269,JSON[_0xbbc7('0x1f')](_0x4840c0));_0x3b4ceb(_0x4840c0);})[_0xbbc7('0x15')](function(_0x3170e4){logger[_0xbbc7('0xf')](_0xbbc7('0x16'),_0x3170e4['message'],_0x5bf269);_0x248672(_0x4c2a36[_0xbbc7('0xf')](0x1f4,_0x3170e4[_0xbbc7('0x11')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4fc2=['show','post','create','update','delete','destroy','exports','multer','util','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../config/environment','./squareMessage.controller','isAuthenticated','index','/:id'];(function(_0x2f037f,_0x2958c5){var _0x2d1573=function(_0x34146e){while(--_0x34146e){_0x2f037f['push'](_0x2f037f['shift']());}};_0x2d1573(++_0x2958c5);}(_0x4fc2,0x111));var _0x24fc=function(_0x4f88fd,_0x4a54d9){_0x4f88fd=_0x4f88fd-0x0;var _0x2b02ae=_0x4fc2[_0x4f88fd];return _0x2b02ae;};'use strict';var multer=require(_0x24fc('0x0'));var util=require(_0x24fc('0x1'));var path=require(_0x24fc('0x2'));var timeout=require(_0x24fc('0x3'));var express=require('express');var router=express[_0x24fc('0x4')]();var fs_extra=require(_0x24fc('0x5'));var auth=require(_0x24fc('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0x24fc('0x7'));var controller=require(_0x24fc('0x8'));router['get']('/',auth[_0x24fc('0x9')](),controller[_0x24fc('0xa')]);router['get'](_0x24fc('0xb'),auth[_0x24fc('0x9')](),controller[_0x24fc('0xc')]);router[_0x24fc('0xd')]('/',auth[_0x24fc('0x9')](),controller[_0x24fc('0xe')]);router['put'](_0x24fc('0xb'),auth[_0x24fc('0x9')](),controller[_0x24fc('0xf')]);router[_0x24fc('0x10')](_0x24fc('0xb'),auth[_0x24fc('0x9')](),controller[_0x24fc('0x11')]);module[_0x24fc('0x12')]=router;
\ No newline at end of file
+var _0xda3f=['../../config/environment','get','isAuthenticated','/:id','show','post','create','put','update','delete','destroy','exports','util','path','fs-extra','../../components/interaction/service'];(function(_0x27f569,_0x11892a){var _0x3774c4=function(_0x287aca){while(--_0x287aca){_0x27f569['push'](_0x27f569['shift']());}};_0x3774c4(++_0x11892a);}(_0xda3f,0xec));var _0xfda3=function(_0x29980f,_0x5e42cd){_0x29980f=_0x29980f-0x0;var _0x36b4ca=_0xda3f[_0x29980f];return _0x36b4ca;};'use strict';var multer=require('multer');var util=require(_0xfda3('0x0'));var path=require(_0xfda3('0x1'));var timeout=require('connect-timeout');var express=require('express');var router=express['Router']();var fs_extra=require(_0xfda3('0x2'));var auth=require('../../components/auth/service');var interaction=require(_0xfda3('0x3'));var config=require(_0xfda3('0x4'));var controller=require('./squareMessage.controller');router[_0xfda3('0x5')]('/',auth[_0xfda3('0x6')](),controller['index']);router['get'](_0xfda3('0x7'),auth[_0xfda3('0x6')](),controller[_0xfda3('0x8')]);router[_0xfda3('0x9')]('/',auth[_0xfda3('0x6')](),controller[_0xfda3('0xa')]);router[_0xfda3('0xb')](_0xfda3('0x7'),auth[_0xfda3('0x6')](),controller[_0xfda3('0xc')]);router[_0xfda3('0xd')](_0xfda3('0x7'),auth['isAuthenticated'](),controller[_0xfda3('0xe')]);module[_0xfda3('0xf')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x938c=['STRING','TEXT','medium','ENUM','out','sequelize'];(function(_0x3d5f84,_0x569548){var _0x1981b8=function(_0x3bf9f3){while(--_0x3bf9f3){_0x3d5f84['push'](_0x3d5f84['shift']());}};_0x1981b8(++_0x569548);}(_0x938c,0x89));var _0xc938=function(_0x564a9c,_0x136e0d){_0x564a9c=_0x564a9c-0x0;var _0x1739ed=_0x938c[_0x564a9c];return _0x1739ed;};'use strict';var Sequelize=require(_0xc938('0x0'));module['exports']={'uniqueid':{'type':Sequelize[_0xc938('0x1')]},'body':{'type':Sequelize[_0xc938('0x2')](_0xc938('0x3')),'allowNull':![]},'direction':{'type':Sequelize[_0xc938('0x4')]('in',_0xc938('0x5')),'defaultValue':'out','allowNull':![]},'providerName':{'type':Sequelize[_0xc938('0x1')]},'providerResponse':{'type':Sequelize[_0xc938('0x2')]}};
\ No newline at end of file
+var _0xc48d=['STRING','TEXT','medium','ENUM','out','exports'];(function(_0x46aff0,_0x122890){var _0x9d78cf=function(_0x3f14cb){while(--_0x3f14cb){_0x46aff0['push'](_0x46aff0['shift']());}};_0x9d78cf(++_0x122890);}(_0xc48d,0x161));var _0xdc48=function(_0x173d7e,_0x3242fd){_0x173d7e=_0x173d7e-0x0;var _0x2220d6=_0xc48d[_0x173d7e];return _0x2220d6;};'use strict';var Sequelize=require('sequelize');module[_0xdc48('0x0')]={'uniqueid':{'type':Sequelize[_0xdc48('0x1')]},'body':{'type':Sequelize[_0xdc48('0x2')](_0xdc48('0x3')),'allowNull':![]},'direction':{'type':Sequelize[_0xdc48('0x4')]('in',_0xdc48('0x5')),'defaultValue':_0xdc48('0x5'),'allowNull':![]},'providerName':{'type':Sequelize[_0xdc48('0x1')]},'providerResponse':{'type':Sequelize[_0xdc48('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe06d=['params','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/license/util','../../mysqldb','sendStatus','status','end','undefined','limit','count','offset','Content-Range','json','apply','reject','save','update','then','destroy','error','name','send','index','SquareMessage','fieldName','type','model','map','query','keys','filters','intersection','fields','attributes','hasOwnProperty','nolimit','order','where','pick','merge','VIRTUAL','filter','options','include','findAll','rows','catch','show','length','includeAll','create','body','find'];(function(_0x3b4ee1,_0x5d4cd0){var _0x4031ef=function(_0x542515){while(--_0x542515){_0x3b4ee1['push'](_0x3b4ee1['shift']());}};_0x4031ef(++_0x5d4cd0);}(_0xe06d,0x12d));var _0xde06=function(_0x50fdb1,_0x305e92){_0x50fdb1=_0x50fdb1-0x0;var _0x2cdf87=_0xe06d[_0x50fdb1];return _0x2cdf87;};'use strict';var emlformat=require(_0xde06('0x0'));var rimraf=require(_0xde06('0x1'));var zipdir=require(_0xde06('0x2'));var jsonpatch=require(_0xde06('0x3'));var rp=require(_0xde06('0x4'));var moment=require('moment');var BPromise=require(_0xde06('0x5'));var Mustache=require(_0xde06('0x6'));var util=require(_0xde06('0x7'));var path=require('path');var sox=require(_0xde06('0x8'));var csv=require(_0xde06('0x9'));var ejs=require(_0xde06('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xde06('0xb'));var squel=require(_0xde06('0xc'));var crypto=require(_0xde06('0xd'));var jsforce=require(_0xde06('0xe'));var deskjs=require(_0xde06('0xf'));var toCsv=require(_0xde06('0x9'));var querystring=require(_0xde06('0x10'));var Papa=require(_0xde06('0x11'));var Redis=require(_0xde06('0x12'));var authService=require(_0xde06('0x13'));var qs=require('../../components/parsers/qs');var as=require(_0xde06('0x14'));var hardwareService=require(_0xde06('0x15'));var logger=require('../../config/logger')(_0xde06('0x16'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0xde06('0x17'));var db=require(_0xde06('0x18'))['db'];function respondWithStatusCode(_0x471a54,_0x96a58b){_0x96a58b=_0x96a58b||0xcc;return function(_0x2501de){if(_0x2501de){return _0x471a54[_0xde06('0x19')](_0x96a58b);}return _0x471a54[_0xde06('0x1a')](_0x96a58b)[_0xde06('0x1b')]();};}function respondWithResult(_0x31f7c5,_0x274aca){_0x274aca=_0x274aca||0xc8;return function(_0x47eaf7){if(_0x47eaf7){return _0x31f7c5[_0xde06('0x1a')](_0x274aca)['json'](_0x47eaf7);}};}function respondWithFilteredResult(_0x5a0b31,_0x311ebe){return function(_0x3bd27d){if(_0x3bd27d){var _0x4f0d8d=typeof _0x311ebe['offset']===_0xde06('0x1c')&&typeof _0x311ebe[_0xde06('0x1d')]===_0xde06('0x1c');var _0x2131b6=_0x3bd27d[_0xde06('0x1e')];var _0x96a553=_0x4f0d8d?0x0:_0x311ebe[_0xde06('0x1f')];var _0x1eb7a1=_0x4f0d8d?_0x3bd27d[_0xde06('0x1e')]:_0x311ebe[_0xde06('0x1f')]+_0x311ebe[_0xde06('0x1d')];var _0xf9eba4;if(_0x1eb7a1>=_0x2131b6){_0x1eb7a1=_0x2131b6;_0xf9eba4=0xc8;}else{_0xf9eba4=0xce;}_0x5a0b31[_0xde06('0x1a')](_0xf9eba4);return _0x5a0b31['set'](_0xde06('0x20'),_0x96a553+'-'+_0x1eb7a1+'/'+_0x2131b6)[_0xde06('0x21')](_0x3bd27d);}return null;};}function patchUpdates(_0x3691ba){return function(_0x3bf2f3){try{jsonpatch[_0xde06('0x22')](_0x3bf2f3,_0x3691ba,!![]);}catch(_0x41936e){return BPromise[_0xde06('0x23')](_0x41936e);}return _0x3bf2f3[_0xde06('0x24')]();};}function saveUpdates(_0x357766,_0x48c03c){return function(_0x49a621){if(_0x49a621){return _0x49a621[_0xde06('0x25')](_0x357766)[_0xde06('0x26')](function(_0x289586){return _0x289586;});}return null;};}function removeEntity(_0x568874,_0x333421){return function(_0x3f08e5){if(_0x3f08e5){return _0x3f08e5[_0xde06('0x27')]()[_0xde06('0x26')](function(){_0x568874['status'](0xcc)[_0xde06('0x1b')]();});}};}function handleEntityNotFound(_0x1530d1,_0x2a1e59){return function(_0x334619){if(!_0x334619){_0x1530d1['sendStatus'](0x194);}return _0x334619;};}function handleError(_0xb190f5,_0x186664){_0x186664=_0x186664||0x1f4;return function(_0x128a87){logger[_0xde06('0x28')](_0x128a87['stack']);if(_0x128a87[_0xde06('0x29')]){delete _0x128a87['name'];}_0xb190f5[_0xde06('0x1a')](_0x186664)[_0xde06('0x2a')](_0x128a87);};}exports[_0xde06('0x2b')]=function(_0xf01962,_0x328e05){var _0xaa004c={},_0x4b34bf={},_0x4a3757={'count':0x0,'rows':[]};var _0x2f757f=_['map'](db[_0xde06('0x2c')]['rawAttributes'],function(_0x4e2684){return{'name':_0x4e2684[_0xde06('0x2d')],'type':_0x4e2684[_0xde06('0x2e')]['key']};});_0x4b34bf[_0xde06('0x2f')]=_[_0xde06('0x30')](_0x2f757f,_0xde06('0x29'));_0x4b34bf[_0xde06('0x31')]=_[_0xde06('0x32')](_0xf01962[_0xde06('0x31')]);_0x4b34bf[_0xde06('0x33')]=_[_0xde06('0x34')](_0x4b34bf[_0xde06('0x2f')],_0x4b34bf['query']);_0xaa004c['attributes']=_[_0xde06('0x34')](_0x4b34bf[_0xde06('0x2f')],qs[_0xde06('0x35')](_0xf01962[_0xde06('0x31')][_0xde06('0x35')]));_0xaa004c['attributes']=_0xaa004c[_0xde06('0x36')]['length']?_0xaa004c[_0xde06('0x36')]:_0x4b34bf[_0xde06('0x2f')];if(!_0xf01962['query'][_0xde06('0x37')](_0xde06('0x38'))){_0xaa004c[_0xde06('0x1d')]=qs[_0xde06('0x1d')](_0xf01962[_0xde06('0x31')][_0xde06('0x1d')]);_0xaa004c[_0xde06('0x1f')]=qs[_0xde06('0x1f')](_0xf01962[_0xde06('0x31')][_0xde06('0x1f')]);}_0xaa004c[_0xde06('0x39')]=qs['sort'](_0xf01962['query']['sort']);_0xaa004c[_0xde06('0x3a')]=qs[_0xde06('0x33')](_[_0xde06('0x3b')](_0xf01962[_0xde06('0x31')],_0x4b34bf['filters']),_0x2f757f);if(_0xf01962[_0xde06('0x31')]['filter']){_0xaa004c[_0xde06('0x3a')]=_[_0xde06('0x3c')](_0xaa004c[_0xde06('0x3a')],{'$or':_['map'](_0x2f757f,function(_0x205e9e){if(_0x205e9e[_0xde06('0x2e')]!==_0xde06('0x3d')){var _0x1d075d={};_0x1d075d[_0x205e9e['name']]={'$like':'%'+_0xf01962[_0xde06('0x31')][_0xde06('0x3e')]+'%'};return _0x1d075d;}})});}_0xaa004c=_[_0xde06('0x3c')]({},_0xaa004c,_0xf01962[_0xde06('0x3f')]);var _0x418323={'where':_0xaa004c['where']};return db[_0xde06('0x2c')][_0xde06('0x1e')](_0x418323)[_0xde06('0x26')](function(_0x507aab){_0x4a3757['count']=_0x507aab;if(_0xf01962['query']['includeAll']){_0xaa004c[_0xde06('0x40')]=[{'all':!![]}];}return db[_0xde06('0x2c')][_0xde06('0x41')](_0xaa004c);})[_0xde06('0x26')](function(_0x5355b6){_0x4a3757[_0xde06('0x42')]=_0x5355b6;return _0x4a3757;})[_0xde06('0x26')](respondWithFilteredResult(_0x328e05,_0xaa004c))[_0xde06('0x43')](handleError(_0x328e05,null));};exports[_0xde06('0x44')]=function(_0x4f338e,_0x146118){var _0x20bbff={'raw':!![],'where':{'id':_0x4f338e['params']['id']}},_0x4d9a27={};_0x4d9a27[_0xde06('0x2f')]=_[_0xde06('0x32')](db[_0xde06('0x2c')]['rawAttributes']);_0x4d9a27[_0xde06('0x31')]=_[_0xde06('0x32')](_0x4f338e[_0xde06('0x31')]);_0x4d9a27[_0xde06('0x33')]=_['intersection'](_0x4d9a27[_0xde06('0x2f')],_0x4d9a27[_0xde06('0x31')]);_0x20bbff[_0xde06('0x36')]=_['intersection'](_0x4d9a27[_0xde06('0x2f')],qs[_0xde06('0x35')](_0x4f338e[_0xde06('0x31')][_0xde06('0x35')]));_0x20bbff['attributes']=_0x20bbff[_0xde06('0x36')][_0xde06('0x45')]?_0x20bbff[_0xde06('0x36')]:_0x4d9a27[_0xde06('0x2f')];if(_0x4f338e[_0xde06('0x31')][_0xde06('0x46')]){_0x20bbff[_0xde06('0x40')]=[{'all':!![]}];}_0x20bbff=_[_0xde06('0x3c')]({},_0x20bbff,_0x4f338e[_0xde06('0x3f')]);return db[_0xde06('0x2c')]['find'](_0x20bbff)['then'](handleEntityNotFound(_0x146118,null))[_0xde06('0x26')](respondWithResult(_0x146118,null))[_0xde06('0x43')](handleError(_0x146118,null));};exports[_0xde06('0x47')]=function(_0x1b4655,_0x46b677){return db[_0xde06('0x2c')][_0xde06('0x47')](_0x1b4655[_0xde06('0x48')],{})[_0xde06('0x26')](respondWithResult(_0x46b677,0xc9))[_0xde06('0x43')](handleError(_0x46b677,null));};exports[_0xde06('0x25')]=function(_0x42775b,_0x2aaea2){if(_0x42775b[_0xde06('0x48')]['id']){delete _0x42775b[_0xde06('0x48')]['id'];}return db[_0xde06('0x2c')][_0xde06('0x49')]({'where':{'id':_0x42775b['params']['id']}})[_0xde06('0x26')](handleEntityNotFound(_0x2aaea2,null))[_0xde06('0x26')](saveUpdates(_0x42775b[_0xde06('0x48')],null))[_0xde06('0x26')](respondWithResult(_0x2aaea2,null))['catch'](handleError(_0x2aaea2,null));};exports[_0xde06('0x27')]=function(_0x154e05,_0x252923){return db[_0xde06('0x2c')][_0xde06('0x49')]({'where':{'id':_0x154e05[_0xde06('0x4a')]['id']}})[_0xde06('0x26')](handleEntityNotFound(_0x252923,null))[_0xde06('0x26')](removeEntity(_0x252923,null))['catch'](handleError(_0x252923,null));};
\ No newline at end of file
+var _0x60e0=['limit','order','sort','pick','where','merge','VIRTUAL','filter','options','SquareMessage','then','includeAll','include','catch','show','params','create','body','find','eml-format','fast-json-patch','moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','crypto','jsforce','desk.js','querystring','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','end','json','offset','undefined','status','Content-Range','apply','reject','save','update','destroy','error','stack','name','send','index','map','rawAttributes','fieldName','type','key','query','keys','filters','intersection','model','fields','attributes','length','nolimit'];(function(_0x5f3f88,_0x562baf){var _0xd08119=function(_0x42dbf7){while(--_0x42dbf7){_0x5f3f88['push'](_0x5f3f88['shift']());}};_0xd08119(++_0x562baf);}(_0x60e0,0x176));var _0x060e=function(_0x4823f4,_0x74020b){_0x4823f4=_0x4823f4-0x0;var _0x45f00e=_0x60e0[_0x4823f4];return _0x45f00e;};'use strict';var emlformat=require(_0x060e('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x060e('0x1'));var rp=require('request-promise');var moment=require(_0x060e('0x2'));var BPromise=require(_0x060e('0x3'));var Mustache=require(_0x060e('0x4'));var util=require(_0x060e('0x5'));var path=require(_0x060e('0x6'));var sox=require('sox');var csv=require(_0x060e('0x7'));var ejs=require(_0x060e('0x8'));var fs=require('fs');var fs_extra=require(_0x060e('0x9'));var _=require('lodash');var squel=require('squel');var crypto=require(_0x060e('0xa'));var jsforce=require(_0x060e('0xb'));var deskjs=require(_0x060e('0xc'));var toCsv=require(_0x060e('0x7'));var querystring=require(_0x060e('0xd'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x060e('0xe'));var as=require(_0x060e('0xf'));var hardwareService=require(_0x060e('0x10'));var logger=require('../../config/logger')(_0x060e('0x11'));var utils=require(_0x060e('0x12'));var config=require(_0x060e('0x13'));var licenseUtil=require(_0x060e('0x14'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x7046f6,_0x5ddef9){_0x5ddef9=_0x5ddef9||0xcc;return function(_0x3a6f7f){if(_0x3a6f7f){return _0x7046f6[_0x060e('0x15')](_0x5ddef9);}return _0x7046f6['status'](_0x5ddef9)[_0x060e('0x16')]();};}function respondWithResult(_0x163130,_0x37455c){_0x37455c=_0x37455c||0xc8;return function(_0x495977){if(_0x495977){return _0x163130['status'](_0x37455c)[_0x060e('0x17')](_0x495977);}};}function respondWithFilteredResult(_0xe909cc,_0x2c95f7){return function(_0x366b87){if(_0x366b87){var _0x5f4611=typeof _0x2c95f7[_0x060e('0x18')]==='undefined'&&typeof _0x2c95f7['limit']===_0x060e('0x19');var _0x2d3ecf=_0x366b87['count'];var _0x5eb8e1=_0x5f4611?0x0:_0x2c95f7[_0x060e('0x18')];var _0x56a406=_0x5f4611?_0x366b87['count']:_0x2c95f7['offset']+_0x2c95f7['limit'];var _0x30afb0;if(_0x56a406>=_0x2d3ecf){_0x56a406=_0x2d3ecf;_0x30afb0=0xc8;}else{_0x30afb0=0xce;}_0xe909cc[_0x060e('0x1a')](_0x30afb0);return _0xe909cc['set'](_0x060e('0x1b'),_0x5eb8e1+'-'+_0x56a406+'/'+_0x2d3ecf)[_0x060e('0x17')](_0x366b87);}return null;};}function patchUpdates(_0x48f050){return function(_0x318156){try{jsonpatch[_0x060e('0x1c')](_0x318156,_0x48f050,!![]);}catch(_0x1c8250){return BPromise[_0x060e('0x1d')](_0x1c8250);}return _0x318156[_0x060e('0x1e')]();};}function saveUpdates(_0x4e74b9,_0x47d257){return function(_0x5a4d39){if(_0x5a4d39){return _0x5a4d39[_0x060e('0x1f')](_0x4e74b9)['then'](function(_0x55f245){return _0x55f245;});}return null;};}function removeEntity(_0x56783c,_0x3518a9){return function(_0x34f1f0){if(_0x34f1f0){return _0x34f1f0[_0x060e('0x20')]()['then'](function(){_0x56783c['status'](0xcc)[_0x060e('0x16')]();});}};}function handleEntityNotFound(_0x42e391,_0x323bf1){return function(_0x3319b1){if(!_0x3319b1){_0x42e391[_0x060e('0x15')](0x194);}return _0x3319b1;};}function handleError(_0x5ab4cd,_0x3649cb){_0x3649cb=_0x3649cb||0x1f4;return function(_0x23a90b){logger[_0x060e('0x21')](_0x23a90b[_0x060e('0x22')]);if(_0x23a90b['name']){delete _0x23a90b[_0x060e('0x23')];}_0x5ab4cd[_0x060e('0x1a')](_0x3649cb)[_0x060e('0x24')](_0x23a90b);};}exports[_0x060e('0x25')]=function(_0x2721e9,_0x5d857b){var _0x3aa8c5={},_0x4d8550={},_0x44d856={'count':0x0,'rows':[]};var _0x2d4bbc=_[_0x060e('0x26')](db['SquareMessage'][_0x060e('0x27')],function(_0x573432){return{'name':_0x573432[_0x060e('0x28')],'type':_0x573432[_0x060e('0x29')][_0x060e('0x2a')]};});_0x4d8550['model']=_['map'](_0x2d4bbc,_0x060e('0x23'));_0x4d8550[_0x060e('0x2b')]=_[_0x060e('0x2c')](_0x2721e9[_0x060e('0x2b')]);_0x4d8550[_0x060e('0x2d')]=_['intersection'](_0x4d8550['model'],_0x4d8550['query']);_0x3aa8c5['attributes']=_[_0x060e('0x2e')](_0x4d8550[_0x060e('0x2f')],qs['fields'](_0x2721e9[_0x060e('0x2b')][_0x060e('0x30')]));_0x3aa8c5[_0x060e('0x31')]=_0x3aa8c5['attributes'][_0x060e('0x32')]?_0x3aa8c5[_0x060e('0x31')]:_0x4d8550[_0x060e('0x2f')];if(!_0x2721e9['query']['hasOwnProperty'](_0x060e('0x33'))){_0x3aa8c5[_0x060e('0x34')]=qs[_0x060e('0x34')](_0x2721e9[_0x060e('0x2b')][_0x060e('0x34')]);_0x3aa8c5[_0x060e('0x18')]=qs[_0x060e('0x18')](_0x2721e9[_0x060e('0x2b')][_0x060e('0x18')]);}_0x3aa8c5[_0x060e('0x35')]=qs[_0x060e('0x36')](_0x2721e9['query'][_0x060e('0x36')]);_0x3aa8c5['where']=qs[_0x060e('0x2d')](_[_0x060e('0x37')](_0x2721e9[_0x060e('0x2b')],_0x4d8550[_0x060e('0x2d')]),_0x2d4bbc);if(_0x2721e9[_0x060e('0x2b')]['filter']){_0x3aa8c5[_0x060e('0x38')]=_[_0x060e('0x39')](_0x3aa8c5[_0x060e('0x38')],{'$or':_[_0x060e('0x26')](_0x2d4bbc,function(_0x36ef10){if(_0x36ef10['type']!==_0x060e('0x3a')){var _0x5de8c8={};_0x5de8c8[_0x36ef10[_0x060e('0x23')]]={'$like':'%'+_0x2721e9[_0x060e('0x2b')][_0x060e('0x3b')]+'%'};return _0x5de8c8;}})});}_0x3aa8c5=_[_0x060e('0x39')]({},_0x3aa8c5,_0x2721e9[_0x060e('0x3c')]);var _0x4c800f={'where':_0x3aa8c5[_0x060e('0x38')]};return db[_0x060e('0x3d')]['count'](_0x4c800f)[_0x060e('0x3e')](function(_0x235208){_0x44d856['count']=_0x235208;if(_0x2721e9['query'][_0x060e('0x3f')]){_0x3aa8c5[_0x060e('0x40')]=[{'all':!![]}];}return db[_0x060e('0x3d')]['findAll'](_0x3aa8c5);})[_0x060e('0x3e')](function(_0xea30a2){_0x44d856['rows']=_0xea30a2;return _0x44d856;})['then'](respondWithFilteredResult(_0x5d857b,_0x3aa8c5))[_0x060e('0x41')](handleError(_0x5d857b,null));};exports[_0x060e('0x42')]=function(_0xc907b3,_0x12bf15){var _0x5a1da9={'raw':!![],'where':{'id':_0xc907b3[_0x060e('0x43')]['id']}},_0x5a2779={};_0x5a2779[_0x060e('0x2f')]=_[_0x060e('0x2c')](db[_0x060e('0x3d')][_0x060e('0x27')]);_0x5a2779[_0x060e('0x2b')]=_['keys'](_0xc907b3[_0x060e('0x2b')]);_0x5a2779[_0x060e('0x2d')]=_[_0x060e('0x2e')](_0x5a2779['model'],_0x5a2779['query']);_0x5a1da9[_0x060e('0x31')]=_['intersection'](_0x5a2779['model'],qs[_0x060e('0x30')](_0xc907b3[_0x060e('0x2b')][_0x060e('0x30')]));_0x5a1da9[_0x060e('0x31')]=_0x5a1da9[_0x060e('0x31')][_0x060e('0x32')]?_0x5a1da9[_0x060e('0x31')]:_0x5a2779[_0x060e('0x2f')];if(_0xc907b3[_0x060e('0x2b')]['includeAll']){_0x5a1da9[_0x060e('0x40')]=[{'all':!![]}];}_0x5a1da9=_[_0x060e('0x39')]({},_0x5a1da9,_0xc907b3[_0x060e('0x3c')]);return db[_0x060e('0x3d')]['find'](_0x5a1da9)[_0x060e('0x3e')](handleEntityNotFound(_0x12bf15,null))['then'](respondWithResult(_0x12bf15,null))[_0x060e('0x41')](handleError(_0x12bf15,null));};exports[_0x060e('0x44')]=function(_0xe87cc7,_0x613991){return db[_0x060e('0x3d')][_0x060e('0x44')](_0xe87cc7[_0x060e('0x45')],{})[_0x060e('0x3e')](respondWithResult(_0x613991,0xc9))['catch'](handleError(_0x613991,null));};exports[_0x060e('0x1f')]=function(_0x40b40c,_0x33a7e1){if(_0x40b40c[_0x060e('0x45')]['id']){delete _0x40b40c[_0x060e('0x45')]['id'];}return db[_0x060e('0x3d')][_0x060e('0x46')]({'where':{'id':_0x40b40c[_0x060e('0x43')]['id']}})[_0x060e('0x3e')](handleEntityNotFound(_0x33a7e1,null))['then'](saveUpdates(_0x40b40c[_0x060e('0x45')],null))[_0x060e('0x3e')](respondWithResult(_0x33a7e1,null))['catch'](handleError(_0x33a7e1,null));};exports[_0x060e('0x20')]=function(_0xc051de,_0x1c3928){return db[_0x060e('0x3d')]['find']({'where':{'id':_0xc051de[_0x060e('0x43')]['id']}})[_0x060e('0x3e')](handleEntityNotFound(_0x1c3928,null))[_0x060e('0x3e')](removeEntity(_0x1c3928,null))['catch'](handleError(_0x1c3928,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1d48=['SquareMessage','square_messages','lodash','../../config/logger','api','moment','bluebird','request-promise','rimraf','../../config/environment'];(function(_0x231ede,_0x4856bb){var _0x3fdd8a=function(_0x4e622c){while(--_0x4e622c){_0x231ede['push'](_0x231ede['shift']());}};_0x3fdd8a(++_0x4856bb);}(_0x1d48,0xb6));var _0x81d4=function(_0x2027f9,_0x518259){_0x2027f9=_0x2027f9-0x0;var _0x510a8d=_0x1d48[_0x2027f9];return _0x510a8d;};'use strict';var _=require(_0x81d4('0x0'));var util=require('util');var logger=require(_0x81d4('0x1'))(_0x81d4('0x2'));var moment=require(_0x81d4('0x3'));var BPromise=require(_0x81d4('0x4'));var rp=require(_0x81d4('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0x81d4('0x6'));var config=require(_0x81d4('0x7'));var attributes=require('./squareMessage.attributes');module['exports']=function(_0x31e5a7,_0xe5553f){return _0x31e5a7['define'](_0x81d4('0x8'),attributes,{'tableName':_0x81d4('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x8255=['./squareMessage.attributes','exports','define','SquareMessage','square_messages','lodash','util','../../config/logger','api','moment','request-promise','path','rimraf'];(function(_0xd79fee,_0x5e743a){var _0xd89c20=function(_0x501e9a){while(--_0x501e9a){_0xd79fee['push'](_0xd79fee['shift']());}};_0xd89c20(++_0x5e743a);}(_0x8255,0x198));var _0x5825=function(_0x11277a,_0x4a58bb){_0x11277a=_0x11277a-0x0;var _0x23ad15=_0x8255[_0x11277a];return _0x23ad15;};'use strict';var _=require(_0x5825('0x0'));var util=require(_0x5825('0x1'));var logger=require(_0x5825('0x2'))(_0x5825('0x3'));var moment=require(_0x5825('0x4'));var BPromise=require('bluebird');var rp=require(_0x5825('0x5'));var fs=require('fs');var path=require(_0x5825('0x6'));var rimraf=require(_0x5825('0x7'));var config=require('../../config/environment');var attributes=require(_0x5825('0x8'));module[_0x5825('0x9')]=function(_0x2e020b,_0x342937){return _0x2e020b[_0x5825('0xa')](_0x5825('0xb'),attributes,{'tableName':_0x5825('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe91f=['SquareMessage','create','body','options','raw','CreateSquareMessage','stringify','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','http','request','info','request\x20sent','debug','SquareMessage,\x20%s,\x20%s,\x20%s','error','code','SquareMessage,\x20%s,\x20%s','message','result','catch'];(function(_0x425d72,_0x23137a){var _0x26f110=function(_0x1683cd){while(--_0x1683cd){_0x425d72['push'](_0x425d72['shift']());}};_0x26f110(++_0x23137a);}(_0xe91f,0xe0));var _0xfe91=function(_0x327246,_0x45b546){_0x327246=_0x327246-0x0;var _0x470d3a=_0xe91f[_0x327246];return _0x470d3a;};'use strict';var _=require(_0xfe91('0x0'));var util=require(_0xfe91('0x1'));var moment=require(_0xfe91('0x2'));var BPromise=require(_0xfe91('0x3'));var rs=require(_0xfe91('0x4'));var fs=require('fs');var Redis=require(_0xfe91('0x5'));var db=require(_0xfe91('0x6'))['db'];var utils=require(_0xfe91('0x7'));var logger=require('../../config/logger')(_0xfe91('0x8'));var config=require(_0xfe91('0x9'));var jayson=require(_0xfe91('0xa'));var client=jayson[_0xfe91('0xb')][_0xfe91('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x4aa1f1,_0x2071e1,_0x3c0764){return new BPromise(function(_0x249cf6,_0x438cf3){return client[_0xfe91('0xd')](_0x4aa1f1,_0x3c0764)['then'](function(_0x3df7d9){logger[_0xfe91('0xe')]('SquareMessage,\x20%s,\x20%s',_0x2071e1,_0xfe91('0xf'));logger[_0xfe91('0x10')](_0xfe91('0x11'),_0x2071e1,_0xfe91('0xf'),JSON['stringify'](_0x3df7d9));if(_0x3df7d9[_0xfe91('0x12')]){if(_0x3df7d9[_0xfe91('0x12')][_0xfe91('0x13')]===0x1f4){logger['error'](_0xfe91('0x14'),_0x2071e1,_0x3df7d9[_0xfe91('0x12')][_0xfe91('0x15')]);return _0x438cf3(_0x3df7d9[_0xfe91('0x12')][_0xfe91('0x15')]);}logger[_0xfe91('0x12')]('SquareMessage,\x20%s,\x20%s',_0x2071e1,_0x3df7d9['error'][_0xfe91('0x15')]);return _0x249cf6(_0x3df7d9['error'][_0xfe91('0x15')]);}else{logger[_0xfe91('0xe')]('SquareMessage,\x20%s,\x20%s',_0x2071e1,_0xfe91('0xf'));_0x249cf6(_0x3df7d9[_0xfe91('0x16')][_0xfe91('0x15')]);}})[_0xfe91('0x17')](function(_0x17ec60){logger[_0xfe91('0x12')](_0xfe91('0x14'),_0x2071e1,_0x17ec60);_0x438cf3(_0x17ec60);});});}exports['CreateSquareMessage']=function(_0x751210){var _0xb081f6=this;return new Promise(function(_0x30e557,_0x4ec9f8){return db[_0xfe91('0x18')][_0xfe91('0x19')](_0x751210[_0xfe91('0x1a')],{'raw':_0x751210[_0xfe91('0x1b')]?_0x751210['options'][_0xfe91('0x1c')]===undefined?!![]:![]:!![]})['then'](function(_0x531797){logger[_0xfe91('0xe')](_0xfe91('0x1d'),_0x751210);logger[_0xfe91('0x10')](_0xfe91('0x1d'),_0x751210,JSON[_0xfe91('0x1e')](_0x531797));_0x30e557(_0x531797);})[_0xfe91('0x17')](function(_0x43439e){logger[_0xfe91('0x12')](_0xfe91('0x1d'),_0x43439e[_0xfe91('0x15')],_0x751210);_0x4ec9f8(_0xb081f6['error'](0x1f4,_0x43439e['message']));});});};
\ No newline at end of file
+var _0x0c75=['bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','http','request','then','info','SquareMessage,\x20%s,\x20%s','debug','request\x20sent','stringify','error','code','message','result','catch','SquareMessage','create','body','options','raw','CreateSquareMessage','moment'];(function(_0x502c7d,_0x2f1285){var _0x30b7ed=function(_0x2d92f3){while(--_0x2d92f3){_0x502c7d['push'](_0x502c7d['shift']());}};_0x30b7ed(++_0x2f1285);}(_0x0c75,0x103));var _0x50c7=function(_0x2641f9,_0x26715f){_0x2641f9=_0x2641f9-0x0;var _0x585741=_0x0c75[_0x2641f9];return _0x585741;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x50c7('0x0'));var BPromise=require(_0x50c7('0x1'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x50c7('0x2'));var db=require(_0x50c7('0x3'))['db'];var utils=require(_0x50c7('0x4'));var logger=require(_0x50c7('0x5'))(_0x50c7('0x6'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson['client'][_0x50c7('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x5dc208,_0x273861,_0x43c8ed){return new BPromise(function(_0x108272,_0x545ca0){return client[_0x50c7('0x8')](_0x5dc208,_0x43c8ed)[_0x50c7('0x9')](function(_0x52fcfd){logger[_0x50c7('0xa')](_0x50c7('0xb'),_0x273861,'request\x20sent');logger[_0x50c7('0xc')]('SquareMessage,\x20%s,\x20%s,\x20%s',_0x273861,_0x50c7('0xd'),JSON[_0x50c7('0xe')](_0x52fcfd));if(_0x52fcfd[_0x50c7('0xf')]){if(_0x52fcfd['error'][_0x50c7('0x10')]===0x1f4){logger[_0x50c7('0xf')](_0x50c7('0xb'),_0x273861,_0x52fcfd[_0x50c7('0xf')][_0x50c7('0x11')]);return _0x545ca0(_0x52fcfd[_0x50c7('0xf')][_0x50c7('0x11')]);}logger[_0x50c7('0xf')]('SquareMessage,\x20%s,\x20%s',_0x273861,_0x52fcfd[_0x50c7('0xf')][_0x50c7('0x11')]);return _0x108272(_0x52fcfd['error'][_0x50c7('0x11')]);}else{logger[_0x50c7('0xa')](_0x50c7('0xb'),_0x273861,_0x50c7('0xd'));_0x108272(_0x52fcfd[_0x50c7('0x12')][_0x50c7('0x11')]);}})[_0x50c7('0x13')](function(_0x10972d){logger['error'](_0x50c7('0xb'),_0x273861,_0x10972d);_0x545ca0(_0x10972d);});});}exports['CreateSquareMessage']=function(_0x46f653){var _0x12c9fc=this;return new Promise(function(_0x1d4b54,_0x4bbc4e){return db[_0x50c7('0x14')][_0x50c7('0x15')](_0x46f653[_0x50c7('0x16')],{'raw':_0x46f653[_0x50c7('0x17')]?_0x46f653['options'][_0x50c7('0x18')]===undefined?!![]:![]:!![]})[_0x50c7('0x9')](function(_0x2c8db8){logger[_0x50c7('0xa')]('CreateSquareMessage',_0x46f653);logger[_0x50c7('0xc')]('CreateSquareMessage',_0x46f653,JSON[_0x50c7('0xe')](_0x2c8db8));_0x1d4b54(_0x2c8db8);})[_0x50c7('0x13')](function(_0x2f953b){logger[_0x50c7('0xf')](_0x50c7('0x19'),_0x2f953b[_0x50c7('0x11')],_0x46f653);_0x4bbc4e(_0x12c9fc[_0x50c7('0xf')](0x1f4,_0x2f953b[_0x50c7('0x11')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9a3=['multer','util','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','isAuthenticated','index','get','/:id','show','/:id/test','15s','post','create','put','update','delete','destroy','exports'];(function(_0x2461e4,_0x5a72fd){var _0x3f40b6=function(_0x5342ea){while(--_0x5342ea){_0x2461e4['push'](_0x2461e4['shift']());}};_0x3f40b6(++_0x5a72fd);}(_0xa9a3,0x12b));var _0x3a9a=function(_0x3c59fc,_0x10dbd2){_0x3c59fc=_0x3c59fc-0x0;var _0x2b78d4=_0xa9a3[_0x3c59fc];return _0x2b78d4;};'use strict';var multer=require(_0x3a9a('0x0'));var util=require(_0x3a9a('0x1'));var path=require(_0x3a9a('0x2'));var timeout=require(_0x3a9a('0x3'));var express=require('express');var router=express[_0x3a9a('0x4')]();var fs_extra=require(_0x3a9a('0x5'));var auth=require(_0x3a9a('0x6'));var interaction=require(_0x3a9a('0x7'));var config=require(_0x3a9a('0x8'));var controller=require('./squareOdbc.controller');router['get']('/',auth[_0x3a9a('0x9')](),controller[_0x3a9a('0xa')]);router[_0x3a9a('0xb')](_0x3a9a('0xc'),auth[_0x3a9a('0x9')](),controller[_0x3a9a('0xd')]);router[_0x3a9a('0xb')](_0x3a9a('0xe'),auth[_0x3a9a('0x9')](),timeout(_0x3a9a('0xf')),controller['test']);router[_0x3a9a('0x10')]('/',auth[_0x3a9a('0x9')](),controller[_0x3a9a('0x11')]);router[_0x3a9a('0x12')](_0x3a9a('0xc'),auth[_0x3a9a('0x9')](),controller[_0x3a9a('0x13')]);router[_0x3a9a('0x14')](_0x3a9a('0xc'),auth['isAuthenticated'](),controller[_0x3a9a('0x15')]);module[_0x3a9a('0x16')]=router;
\ No newline at end of file
+var _0x78c2=['create','put','destroy','exports','util','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./squareOdbc.controller','get','isAuthenticated','index','/:id','/:id/test','15s','test','post'];(function(_0x5ba805,_0x21de19){var _0x1e2c92=function(_0x20554f){while(--_0x20554f){_0x5ba805['push'](_0x5ba805['shift']());}};_0x1e2c92(++_0x21de19);}(_0x78c2,0x1e7));var _0x278c=function(_0x52a1fd,_0x2afde8){_0x52a1fd=_0x52a1fd-0x0;var _0x485e86=_0x78c2[_0x52a1fd];return _0x485e86;};'use strict';var multer=require('multer');var util=require(_0x278c('0x0'));var path=require('path');var timeout=require(_0x278c('0x1'));var express=require(_0x278c('0x2'));var router=express[_0x278c('0x3')]();var fs_extra=require(_0x278c('0x4'));var auth=require(_0x278c('0x5'));var interaction=require(_0x278c('0x6'));var config=require(_0x278c('0x7'));var controller=require(_0x278c('0x8'));router[_0x278c('0x9')]('/',auth[_0x278c('0xa')](),controller[_0x278c('0xb')]);router['get'](_0x278c('0xc'),auth[_0x278c('0xa')](),controller['show']);router[_0x278c('0x9')](_0x278c('0xd'),auth[_0x278c('0xa')](),timeout(_0x278c('0xe')),controller[_0x278c('0xf')]);router[_0x278c('0x10')]('/',auth[_0x278c('0xa')](),controller[_0x278c('0x11')]);router[_0x278c('0x12')](_0x278c('0xc'),auth['isAuthenticated'](),controller['update']);router['delete'](_0x278c('0xc'),auth[_0x278c('0xa')](),controller[_0x278c('0x13')]);module[_0x278c('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc1ba=['STRING','name','sequelize'];(function(_0xcb9748,_0x48bea4){var _0x265c5e=function(_0x38af4a){while(--_0x38af4a){_0xcb9748['push'](_0xcb9748['shift']());}};_0x265c5e(++_0x48bea4);}(_0xc1ba,0x65));var _0xac1b=function(_0x5774e1,_0xfa392e){_0x5774e1=_0x5774e1-0x0;var _0x7543ea=_0xc1ba[_0x5774e1];return _0x7543ea;};'use strict';var Sequelize=require(_0xac1b('0x0'));module['exports']={'name':{'type':Sequelize[_0xac1b('0x1')],'unique':_0xac1b('0x2'),'allowNull':![]},'dsn':{'type':Sequelize[_0xac1b('0x1')]},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0x7c2f=['name','STRING'];(function(_0x487496,_0x249683){var _0x539dc8=function(_0x2c38e1){while(--_0x2c38e1){_0x487496['push'](_0x487496['shift']());}};_0x539dc8(++_0x249683);}(_0x7c2f,0x12d));var _0xf7c2=function(_0x21d7e7,_0x3b1252){_0x21d7e7=_0x21d7e7-0x0;var _0x3a195f=_0x7c2f[_0x21d7e7];return _0x3a195f;};'use strict';var Sequelize=require('sequelize');module['exports']={'name':{'type':Sequelize[_0xf7c2('0x0')],'unique':_0xf7c2('0x1'),'allowNull':![]},'dsn':{'type':Sequelize[_0xf7c2('0x0')]},'description':{'type':Sequelize[_0xf7c2('0x0')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa008=['moment','sox','to-csv','ejs','squel','desk.js','querystring','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','apply','save','update','then','destroy','UserProfileResource','error','name','send','index','map','SquareOdbc','fieldName','type','model','keys','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','sort','where','merge','VIRTUAL','filter','includeAll','findAll','rows','show','params','rawAttributes','length','include','find','catch','create','body','get','role','user','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','test','dsn','openSync','eml-format','rimraf','zip-dir','fast-json-patch'];(function(_0x4b7895,_0x3c4f5d){var _0x264180=function(_0xe0e861){while(--_0xe0e861){_0x4b7895['push'](_0x4b7895['shift']());}};_0x264180(++_0x3c4f5d);}(_0xa008,0x1be));var _0x8a00=function(_0x2f96ad,_0x567608){_0x2f96ad=_0x2f96ad-0x0;var _0x5da7ec=_0xa008[_0x2f96ad];return _0x5da7ec;};'use strict';var emlformat=require(_0x8a00('0x0'));var rimraf=require(_0x8a00('0x1'));var zipdir=require(_0x8a00('0x2'));var jsonpatch=require(_0x8a00('0x3'));var rp=require('request-promise');var moment=require(_0x8a00('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require('path');var sox=require(_0x8a00('0x5'));var csv=require(_0x8a00('0x6'));var ejs=require(_0x8a00('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x8a00('0x8'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x8a00('0x9'));var toCsv=require('to-csv');var querystring=require(_0x8a00('0xa'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x8a00('0xb'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x8a00('0xc'));var utils=require(_0x8a00('0xd'));var config=require(_0x8a00('0xe'));var licenseUtil=require('../../config/license/util');var db=require(_0x8a00('0xf'))['db'];function respondWithStatusCode(_0x551438,_0x4ba69d){_0x4ba69d=_0x4ba69d||0xcc;return function(_0x3f71f){if(_0x3f71f){return _0x551438[_0x8a00('0x10')](_0x4ba69d);}return _0x551438[_0x8a00('0x11')](_0x4ba69d)[_0x8a00('0x12')]();};}function respondWithResult(_0x4e9ba6,_0xd2073c){_0xd2073c=_0xd2073c||0xc8;return function(_0x51b5a4){if(_0x51b5a4){return _0x4e9ba6[_0x8a00('0x11')](_0xd2073c)[_0x8a00('0x13')](_0x51b5a4);}};}function respondWithFilteredResult(_0x4b4cdc,_0x273ef5){return function(_0x1544ee){if(_0x1544ee){var _0x5632d6=typeof _0x273ef5[_0x8a00('0x14')]===_0x8a00('0x15')&&typeof _0x273ef5['limit']===_0x8a00('0x15');var _0x468a69=_0x1544ee[_0x8a00('0x16')];var _0x30f636=_0x5632d6?0x0:_0x273ef5['offset'];var _0x503158=_0x5632d6?_0x1544ee['count']:_0x273ef5[_0x8a00('0x14')]+_0x273ef5[_0x8a00('0x17')];var _0x35d506;if(_0x503158>=_0x468a69){_0x503158=_0x468a69;_0x35d506=0xc8;}else{_0x35d506=0xce;}_0x4b4cdc[_0x8a00('0x11')](_0x35d506);return _0x4b4cdc[_0x8a00('0x18')](_0x8a00('0x19'),_0x30f636+'-'+_0x503158+'/'+_0x468a69)[_0x8a00('0x13')](_0x1544ee);}return null;};}function patchUpdates(_0x24743c){return function(_0xdde785){try{jsonpatch[_0x8a00('0x1a')](_0xdde785,_0x24743c,!![]);}catch(_0x5764f3){return BPromise['reject'](_0x5764f3);}return _0xdde785[_0x8a00('0x1b')]();};}function saveUpdates(_0x15b9d1,_0x7cc71d){return function(_0x4308c5){if(_0x4308c5){return _0x4308c5[_0x8a00('0x1c')](_0x15b9d1)[_0x8a00('0x1d')](function(_0x21a7d1){return _0x21a7d1;});}return null;};}function removeEntity(_0x58b188,_0x1e2fe8){return function(_0x1a6745){if(_0x1a6745){return _0x1a6745[_0x8a00('0x1e')]()[_0x8a00('0x1d')](function(){var _0x4ca6aa=_0x1a6745['get']({'plain':!![]});var _0x8c2a10='ODBC';return db[_0x8a00('0x1f')]['destroy']({'where':{'type':_0x8c2a10,'resourceId':_0x4ca6aa['id']}})[_0x8a00('0x1d')](function(){return _0x1a6745;});})[_0x8a00('0x1d')](function(){_0x58b188[_0x8a00('0x11')](0xcc)[_0x8a00('0x12')]();});}};}function handleEntityNotFound(_0x1d6c7e,_0x16ca00){return function(_0xdfc1d7){if(!_0xdfc1d7){_0x1d6c7e[_0x8a00('0x10')](0x194);}return _0xdfc1d7;};}function handleError(_0x188ba8,_0x43582d){_0x43582d=_0x43582d||0x1f4;return function(_0x19212e){logger[_0x8a00('0x20')](_0x19212e['stack']);if(_0x19212e[_0x8a00('0x21')]){delete _0x19212e['name'];}_0x188ba8[_0x8a00('0x11')](_0x43582d)[_0x8a00('0x22')](_0x19212e);};}exports[_0x8a00('0x23')]=function(_0x4f94bd,_0x525572){var _0x316e59={},_0x6c64ad={},_0x58c02f={'count':0x0,'rows':[]};var _0x499852=_[_0x8a00('0x24')](db[_0x8a00('0x25')]['rawAttributes'],function(_0x212cad){return{'name':_0x212cad[_0x8a00('0x26')],'type':_0x212cad[_0x8a00('0x27')]['key']};});_0x6c64ad[_0x8a00('0x28')]=_[_0x8a00('0x24')](_0x499852,_0x8a00('0x21'));_0x6c64ad['query']=_[_0x8a00('0x29')](_0x4f94bd[_0x8a00('0x2a')]);_0x6c64ad[_0x8a00('0x2b')]=_[_0x8a00('0x2c')](_0x6c64ad[_0x8a00('0x28')],_0x6c64ad['query']);_0x316e59[_0x8a00('0x2d')]=_['intersection'](_0x6c64ad[_0x8a00('0x28')],qs[_0x8a00('0x2e')](_0x4f94bd['query'][_0x8a00('0x2e')]));_0x316e59[_0x8a00('0x2d')]=_0x316e59[_0x8a00('0x2d')]['length']?_0x316e59['attributes']:_0x6c64ad[_0x8a00('0x28')];if(!_0x4f94bd[_0x8a00('0x2a')][_0x8a00('0x2f')](_0x8a00('0x30'))){_0x316e59[_0x8a00('0x17')]=qs[_0x8a00('0x17')](_0x4f94bd['query'][_0x8a00('0x17')]);_0x316e59['offset']=qs[_0x8a00('0x14')](_0x4f94bd[_0x8a00('0x2a')][_0x8a00('0x14')]);}_0x316e59['order']=qs[_0x8a00('0x31')](_0x4f94bd[_0x8a00('0x2a')][_0x8a00('0x31')]);_0x316e59[_0x8a00('0x32')]=qs['filters'](_['pick'](_0x4f94bd['query'],_0x6c64ad['filters']),_0x499852);if(_0x4f94bd[_0x8a00('0x2a')]['filter']){_0x316e59['where']=_[_0x8a00('0x33')](_0x316e59['where'],{'$or':_[_0x8a00('0x24')](_0x499852,function(_0x294c17){if(_0x294c17[_0x8a00('0x27')]!==_0x8a00('0x34')){var _0x16dd29={};_0x16dd29[_0x294c17[_0x8a00('0x21')]]={'$like':'%'+_0x4f94bd[_0x8a00('0x2a')][_0x8a00('0x35')]+'%'};return _0x16dd29;}})});}_0x316e59=_[_0x8a00('0x33')]({},_0x316e59,_0x4f94bd['options']);var _0x563cd8={'where':_0x316e59[_0x8a00('0x32')]};return db['SquareOdbc'][_0x8a00('0x16')](_0x563cd8)['then'](function(_0x48980c){_0x58c02f['count']=_0x48980c;if(_0x4f94bd['query'][_0x8a00('0x36')]){_0x316e59['include']=[{'all':!![]}];}return db[_0x8a00('0x25')][_0x8a00('0x37')](_0x316e59);})[_0x8a00('0x1d')](function(_0x370a36){_0x58c02f[_0x8a00('0x38')]=_0x370a36;return _0x58c02f;})['then'](respondWithFilteredResult(_0x525572,_0x316e59))['catch'](handleError(_0x525572,null));};exports[_0x8a00('0x39')]=function(_0x46c848,_0x12bd17){var _0x5de359={'raw':!![],'where':{'id':_0x46c848[_0x8a00('0x3a')]['id']}},_0x156c41={};_0x156c41['model']=_[_0x8a00('0x29')](db['SquareOdbc'][_0x8a00('0x3b')]);_0x156c41['query']=_['keys'](_0x46c848[_0x8a00('0x2a')]);_0x156c41[_0x8a00('0x2b')]=_[_0x8a00('0x2c')](_0x156c41['model'],_0x156c41['query']);_0x5de359[_0x8a00('0x2d')]=_[_0x8a00('0x2c')](_0x156c41[_0x8a00('0x28')],qs['fields'](_0x46c848[_0x8a00('0x2a')][_0x8a00('0x2e')]));_0x5de359[_0x8a00('0x2d')]=_0x5de359[_0x8a00('0x2d')][_0x8a00('0x3c')]?_0x5de359[_0x8a00('0x2d')]:_0x156c41[_0x8a00('0x28')];if(_0x46c848[_0x8a00('0x2a')][_0x8a00('0x36')]){_0x5de359[_0x8a00('0x3d')]=[{'all':!![]}];}_0x5de359=_[_0x8a00('0x33')]({},_0x5de359,_0x46c848['options']);return db[_0x8a00('0x25')][_0x8a00('0x3e')](_0x5de359)['then'](handleEntityNotFound(_0x12bd17,null))[_0x8a00('0x1d')](respondWithResult(_0x12bd17,null))[_0x8a00('0x3f')](handleError(_0x12bd17,null));};exports['create']=function(_0x1c9ee7,_0x2de40a){return db[_0x8a00('0x25')][_0x8a00('0x40')](_0x1c9ee7[_0x8a00('0x41')],{})[_0x8a00('0x1d')](function(_0x188d7d){var _0x18de48=_0x1c9ee7['user'][_0x8a00('0x42')]({'plain':!![]});if(!_0x18de48)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x18de48[_0x8a00('0x43')]===_0x8a00('0x44')){var _0x426f45=_0x188d7d[_0x8a00('0x42')]({'plain':!![]});var _0x26a7c0='ODBC';return db[_0x8a00('0x45')][_0x8a00('0x3e')]({'where':{'name':_0x26a7c0,'userProfileId':_0x18de48[_0x8a00('0x46')]},'raw':!![]})[_0x8a00('0x1d')](function(_0x44c8a0){if(_0x44c8a0&&_0x44c8a0['autoAssociation']===0x0){return db[_0x8a00('0x1f')][_0x8a00('0x40')]({'name':_0x426f45['name'],'resourceId':_0x426f45['id'],'type':_0x44c8a0[_0x8a00('0x21')],'sectionId':_0x44c8a0['id']},{})[_0x8a00('0x1d')](function(){return _0x188d7d;});}else{return _0x188d7d;}})[_0x8a00('0x3f')](function(_0x2e6e76){logger['error'](_0x8a00('0x47'),_0x2e6e76);throw _0x2e6e76;});}return _0x188d7d;})['then'](respondWithResult(_0x2de40a,0xc9))[_0x8a00('0x3f')](handleError(_0x2de40a,null));};exports['update']=function(_0x3b7c10,_0x5125f2){if(_0x3b7c10[_0x8a00('0x41')]['id']){delete _0x3b7c10['body']['id'];}return db[_0x8a00('0x25')]['find']({'where':{'id':_0x3b7c10[_0x8a00('0x3a')]['id']}})[_0x8a00('0x1d')](handleEntityNotFound(_0x5125f2,null))[_0x8a00('0x1d')](saveUpdates(_0x3b7c10[_0x8a00('0x41')],null))[_0x8a00('0x1d')](respondWithResult(_0x5125f2,null))[_0x8a00('0x3f')](handleError(_0x5125f2,null));};exports[_0x8a00('0x1e')]=function(_0x37f73c,_0xd3729b){return db[_0x8a00('0x25')][_0x8a00('0x3e')]({'where':{'id':_0x37f73c[_0x8a00('0x3a')]['id']}})['then'](handleEntityNotFound(_0xd3729b,null))[_0x8a00('0x1d')](removeEntity(_0xd3729b,null))[_0x8a00('0x3f')](handleError(_0xd3729b,null));};exports[_0x8a00('0x48')]=function(_0x56d74f,_0x504f35,_0x24a4ed){var _0x4b5774;return db['SquareOdbc'][_0x8a00('0x3e')]({'where':{'id':_0x56d74f[_0x8a00('0x3a')]['id']},'attributes':['id',_0x8a00('0x49')]})[_0x8a00('0x1d')](handleEntityNotFound(_0x504f35,null))[_0x8a00('0x1d')](function(_0x504eb7){if(_0x504eb7){var _0x517786=require('odbc')();_0x517786[_0x8a00('0x4a')](_0x504eb7['dsn']);_0x517786['closeSync']();return _0x504eb7;}})[_0x8a00('0x1d')](respondWithResult(_0x504f35,null))[_0x8a00('0x3f')](handleError(_0x504f35,null));};
\ No newline at end of file
+var _0xdd9c=['index','map','SquareOdbc','rawAttributes','key','keys','query','filters','intersection','model','attributes','fields','order','sort','pick','where','merge','type','VIRTUAL','options','includeAll','include','findAll','rows','show','catch','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','find','userProfileId','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','test','dsn','odbc','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','util','path','to-csv','ejs','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','count','limit','set','Content-Range','apply','reject','update','then','destroy','get','ODBC','UserProfileResource','end','name','send'];(function(_0x3f2a08,_0x4fef73){var _0x150164=function(_0x5a2dfa){while(--_0x5a2dfa){_0x3f2a08['push'](_0x3f2a08['shift']());}};_0x150164(++_0x4fef73);}(_0xdd9c,0x178));var _0xcdd9=function(_0x4de5d8,_0x1b4378){_0x4de5d8=_0x4de5d8-0x0;var _0x5bb299=_0xdd9c[_0x4de5d8];return _0x5bb299;};'use strict';var emlformat=require(_0xcdd9('0x0'));var rimraf=require(_0xcdd9('0x1'));var zipdir=require(_0xcdd9('0x2'));var jsonpatch=require(_0xcdd9('0x3'));var rp=require(_0xcdd9('0x4'));var moment=require('moment');var BPromise=require(_0xcdd9('0x5'));var Mustache=require('mustache');var util=require(_0xcdd9('0x6'));var path=require(_0xcdd9('0x7'));var sox=require('sox');var csv=require(_0xcdd9('0x8'));var ejs=require(_0xcdd9('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0xcdd9('0xa'));var crypto=require(_0xcdd9('0xb'));var jsforce=require(_0xcdd9('0xc'));var deskjs=require(_0xcdd9('0xd'));var toCsv=require('to-csv');var querystring=require(_0xcdd9('0xe'));var Papa=require(_0xcdd9('0xf'));var Redis=require(_0xcdd9('0x10'));var authService=require('../../components/auth/service');var qs=require(_0xcdd9('0x11'));var as=require(_0xcdd9('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xcdd9('0x13'))(_0xcdd9('0x14'));var utils=require('../../config/utils');var config=require(_0xcdd9('0x15'));var licenseUtil=require(_0xcdd9('0x16'));var db=require(_0xcdd9('0x17'))['db'];function respondWithStatusCode(_0x49b252,_0xa8c1d5){_0xa8c1d5=_0xa8c1d5||0xcc;return function(_0x307d12){if(_0x307d12){return _0x49b252[_0xcdd9('0x18')](_0xa8c1d5);}return _0x49b252[_0xcdd9('0x19')](_0xa8c1d5)['end']();};}function respondWithResult(_0x222998,_0x5b35a5){_0x5b35a5=_0x5b35a5||0xc8;return function(_0x12b065){if(_0x12b065){return _0x222998[_0xcdd9('0x19')](_0x5b35a5)[_0xcdd9('0x1a')](_0x12b065);}};}function respondWithFilteredResult(_0x29dbbc,_0x595267){return function(_0x1299a7){if(_0x1299a7){var _0x392abd=typeof _0x595267[_0xcdd9('0x1b')]==='undefined'&&typeof _0x595267['limit']===_0xcdd9('0x1c');var _0xa4d288=_0x1299a7[_0xcdd9('0x1d')];var _0x4773d9=_0x392abd?0x0:_0x595267[_0xcdd9('0x1b')];var _0x134fea=_0x392abd?_0x1299a7[_0xcdd9('0x1d')]:_0x595267[_0xcdd9('0x1b')]+_0x595267[_0xcdd9('0x1e')];var _0x55c26f;if(_0x134fea>=_0xa4d288){_0x134fea=_0xa4d288;_0x55c26f=0xc8;}else{_0x55c26f=0xce;}_0x29dbbc[_0xcdd9('0x19')](_0x55c26f);return _0x29dbbc[_0xcdd9('0x1f')](_0xcdd9('0x20'),_0x4773d9+'-'+_0x134fea+'/'+_0xa4d288)[_0xcdd9('0x1a')](_0x1299a7);}return null;};}function patchUpdates(_0x166296){return function(_0x42a5e1){try{jsonpatch[_0xcdd9('0x21')](_0x42a5e1,_0x166296,!![]);}catch(_0x3ca4b6){return BPromise[_0xcdd9('0x22')](_0x3ca4b6);}return _0x42a5e1['save']();};}function saveUpdates(_0x1b25af,_0x23f577){return function(_0x8a76e5){if(_0x8a76e5){return _0x8a76e5[_0xcdd9('0x23')](_0x1b25af)[_0xcdd9('0x24')](function(_0x3f0ad4){return _0x3f0ad4;});}return null;};}function removeEntity(_0x37254f,_0x4e251b){return function(_0xbd6f2f){if(_0xbd6f2f){return _0xbd6f2f[_0xcdd9('0x25')]()[_0xcdd9('0x24')](function(){var _0x5e2800=_0xbd6f2f[_0xcdd9('0x26')]({'plain':!![]});var _0x2a302e=_0xcdd9('0x27');return db[_0xcdd9('0x28')][_0xcdd9('0x25')]({'where':{'type':_0x2a302e,'resourceId':_0x5e2800['id']}})[_0xcdd9('0x24')](function(){return _0xbd6f2f;});})['then'](function(){_0x37254f['status'](0xcc)[_0xcdd9('0x29')]();});}};}function handleEntityNotFound(_0x16bee1,_0x2efb9d){return function(_0x175f22){if(!_0x175f22){_0x16bee1[_0xcdd9('0x18')](0x194);}return _0x175f22;};}function handleError(_0x2b314a,_0x279733){_0x279733=_0x279733||0x1f4;return function(_0x2c553b){logger['error'](_0x2c553b['stack']);if(_0x2c553b[_0xcdd9('0x2a')]){delete _0x2c553b[_0xcdd9('0x2a')];}_0x2b314a[_0xcdd9('0x19')](_0x279733)[_0xcdd9('0x2b')](_0x2c553b);};}exports[_0xcdd9('0x2c')]=function(_0x5e976f,_0x407b37){var _0x10926b={},_0x327838={},_0x1b5d94={'count':0x0,'rows':[]};var _0x190ad8=_[_0xcdd9('0x2d')](db[_0xcdd9('0x2e')][_0xcdd9('0x2f')],function(_0x18e58d){return{'name':_0x18e58d['fieldName'],'type':_0x18e58d['type'][_0xcdd9('0x30')]};});_0x327838['model']=_['map'](_0x190ad8,_0xcdd9('0x2a'));_0x327838['query']=_[_0xcdd9('0x31')](_0x5e976f[_0xcdd9('0x32')]);_0x327838[_0xcdd9('0x33')]=_[_0xcdd9('0x34')](_0x327838[_0xcdd9('0x35')],_0x327838[_0xcdd9('0x32')]);_0x10926b[_0xcdd9('0x36')]=_['intersection'](_0x327838[_0xcdd9('0x35')],qs[_0xcdd9('0x37')](_0x5e976f['query'][_0xcdd9('0x37')]));_0x10926b[_0xcdd9('0x36')]=_0x10926b['attributes']['length']?_0x10926b[_0xcdd9('0x36')]:_0x327838[_0xcdd9('0x35')];if(!_0x5e976f[_0xcdd9('0x32')]['hasOwnProperty']('nolimit')){_0x10926b['limit']=qs[_0xcdd9('0x1e')](_0x5e976f[_0xcdd9('0x32')]['limit']);_0x10926b['offset']=qs[_0xcdd9('0x1b')](_0x5e976f[_0xcdd9('0x32')][_0xcdd9('0x1b')]);}_0x10926b[_0xcdd9('0x38')]=qs[_0xcdd9('0x39')](_0x5e976f['query'][_0xcdd9('0x39')]);_0x10926b['where']=qs['filters'](_[_0xcdd9('0x3a')](_0x5e976f[_0xcdd9('0x32')],_0x327838['filters']),_0x190ad8);if(_0x5e976f[_0xcdd9('0x32')]['filter']){_0x10926b[_0xcdd9('0x3b')]=_[_0xcdd9('0x3c')](_0x10926b[_0xcdd9('0x3b')],{'$or':_[_0xcdd9('0x2d')](_0x190ad8,function(_0x208726){if(_0x208726[_0xcdd9('0x3d')]!==_0xcdd9('0x3e')){var _0x479442={};_0x479442[_0x208726[_0xcdd9('0x2a')]]={'$like':'%'+_0x5e976f['query']['filter']+'%'};return _0x479442;}})});}_0x10926b=_[_0xcdd9('0x3c')]({},_0x10926b,_0x5e976f[_0xcdd9('0x3f')]);var _0x1b2443={'where':_0x10926b['where']};return db['SquareOdbc']['count'](_0x1b2443)['then'](function(_0x4e392e){_0x1b5d94['count']=_0x4e392e;if(_0x5e976f['query'][_0xcdd9('0x40')]){_0x10926b[_0xcdd9('0x41')]=[{'all':!![]}];}return db[_0xcdd9('0x2e')][_0xcdd9('0x42')](_0x10926b);})['then'](function(_0x40c8f4){_0x1b5d94[_0xcdd9('0x43')]=_0x40c8f4;return _0x1b5d94;})[_0xcdd9('0x24')](respondWithFilteredResult(_0x407b37,_0x10926b))['catch'](handleError(_0x407b37,null));};exports[_0xcdd9('0x44')]=function(_0x3cf066,_0x4aa2b7){var _0x6fcc54={'raw':!![],'where':{'id':_0x3cf066['params']['id']}},_0x5b9973={};_0x5b9973[_0xcdd9('0x35')]=_[_0xcdd9('0x31')](db[_0xcdd9('0x2e')][_0xcdd9('0x2f')]);_0x5b9973['query']=_[_0xcdd9('0x31')](_0x3cf066[_0xcdd9('0x32')]);_0x5b9973[_0xcdd9('0x33')]=_[_0xcdd9('0x34')](_0x5b9973[_0xcdd9('0x35')],_0x5b9973[_0xcdd9('0x32')]);_0x6fcc54['attributes']=_[_0xcdd9('0x34')](_0x5b9973['model'],qs[_0xcdd9('0x37')](_0x3cf066[_0xcdd9('0x32')]['fields']));_0x6fcc54[_0xcdd9('0x36')]=_0x6fcc54['attributes']['length']?_0x6fcc54['attributes']:_0x5b9973[_0xcdd9('0x35')];if(_0x3cf066[_0xcdd9('0x32')][_0xcdd9('0x40')]){_0x6fcc54[_0xcdd9('0x41')]=[{'all':!![]}];}_0x6fcc54=_[_0xcdd9('0x3c')]({},_0x6fcc54,_0x3cf066[_0xcdd9('0x3f')]);return db[_0xcdd9('0x2e')]['find'](_0x6fcc54)[_0xcdd9('0x24')](handleEntityNotFound(_0x4aa2b7,null))[_0xcdd9('0x24')](respondWithResult(_0x4aa2b7,null))[_0xcdd9('0x45')](handleError(_0x4aa2b7,null));};exports[_0xcdd9('0x46')]=function(_0x44a4ef,_0x597dd9){return db[_0xcdd9('0x2e')]['create'](_0x44a4ef[_0xcdd9('0x47')],{})[_0xcdd9('0x24')](function(_0x12e24a){var _0x148dd8=_0x44a4ef[_0xcdd9('0x48')][_0xcdd9('0x26')]({'plain':!![]});if(!_0x148dd8)throw new Error(_0xcdd9('0x49'));if(_0x148dd8[_0xcdd9('0x4a')]===_0xcdd9('0x48')){var _0x122597=_0x12e24a[_0xcdd9('0x26')]({'plain':!![]});var _0x502b56=_0xcdd9('0x27');return db[_0xcdd9('0x4b')][_0xcdd9('0x4c')]({'where':{'name':_0x502b56,'userProfileId':_0x148dd8[_0xcdd9('0x4d')]},'raw':!![]})['then'](function(_0x358b5a){if(_0x358b5a&&_0x358b5a['autoAssociation']===0x0){return db[_0xcdd9('0x28')][_0xcdd9('0x46')]({'name':_0x122597[_0xcdd9('0x2a')],'resourceId':_0x122597['id'],'type':_0x358b5a[_0xcdd9('0x2a')],'sectionId':_0x358b5a['id']},{})['then'](function(){return _0x12e24a;});}else{return _0x12e24a;}})[_0xcdd9('0x45')](function(_0x5113b2){logger[_0xcdd9('0x4e')](_0xcdd9('0x4f'),_0x5113b2);throw _0x5113b2;});}return _0x12e24a;})[_0xcdd9('0x24')](respondWithResult(_0x597dd9,0xc9))[_0xcdd9('0x45')](handleError(_0x597dd9,null));};exports[_0xcdd9('0x23')]=function(_0x184694,_0x326fed){if(_0x184694['body']['id']){delete _0x184694[_0xcdd9('0x47')]['id'];}return db[_0xcdd9('0x2e')][_0xcdd9('0x4c')]({'where':{'id':_0x184694[_0xcdd9('0x50')]['id']}})['then'](handleEntityNotFound(_0x326fed,null))[_0xcdd9('0x24')](saveUpdates(_0x184694[_0xcdd9('0x47')],null))[_0xcdd9('0x24')](respondWithResult(_0x326fed,null))[_0xcdd9('0x45')](handleError(_0x326fed,null));};exports[_0xcdd9('0x25')]=function(_0x376b49,_0x2ac890){return db[_0xcdd9('0x2e')][_0xcdd9('0x4c')]({'where':{'id':_0x376b49[_0xcdd9('0x50')]['id']}})[_0xcdd9('0x24')](handleEntityNotFound(_0x2ac890,null))[_0xcdd9('0x24')](removeEntity(_0x2ac890,null))['catch'](handleError(_0x2ac890,null));};exports[_0xcdd9('0x51')]=function(_0x149578,_0x3aef41,_0x270c74){var _0x570d24;return db[_0xcdd9('0x2e')][_0xcdd9('0x4c')]({'where':{'id':_0x149578[_0xcdd9('0x50')]['id']},'attributes':['id',_0xcdd9('0x52')]})[_0xcdd9('0x24')](handleEntityNotFound(_0x3aef41,null))[_0xcdd9('0x24')](function(_0x6e45d0){if(_0x6e45d0){var _0x1020f1=require(_0xcdd9('0x53'))();_0x1020f1['openSync'](_0x6e45d0[_0xcdd9('0x52')]);_0x1020f1['closeSync']();return _0x6e45d0;}})['then'](respondWithResult(_0x3aef41,null))[_0xcdd9('0x45')](handleError(_0x3aef41,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0f45=['api','moment','bluebird','path','rimraf','../../config/environment','./squareOdbc.attributes','exports','define','square_odbc','lodash','util','../../config/logger'];(function(_0x4a9fb1,_0x273043){var _0x348672=function(_0x142b69){while(--_0x142b69){_0x4a9fb1['push'](_0x4a9fb1['shift']());}};_0x348672(++_0x273043);}(_0x0f45,0x1c4));var _0x50f4=function(_0x46698a,_0x8de1e4){_0x46698a=_0x46698a-0x0;var _0x356db0=_0x0f45[_0x46698a];return _0x356db0;};'use strict';var _=require(_0x50f4('0x0'));var util=require(_0x50f4('0x1'));var logger=require(_0x50f4('0x2'))(_0x50f4('0x3'));var moment=require(_0x50f4('0x4'));var BPromise=require(_0x50f4('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x50f4('0x6'));var rimraf=require(_0x50f4('0x7'));var config=require(_0x50f4('0x8'));var attributes=require(_0x50f4('0x9'));module[_0x50f4('0xa')]=function(_0x130794,_0x3874ae){return _0x130794[_0x50f4('0xb')]('SquareOdbc',attributes,{'tableName':_0x50f4('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x4385=['../../config/environment','./squareOdbc.attributes','exports','define','../../config/logger','api','bluebird','request-promise','path','rimraf'];(function(_0x3947c9,_0x4d6c97){var _0x2e7871=function(_0x1236cc){while(--_0x1236cc){_0x3947c9['push'](_0x3947c9['shift']());}};_0x2e7871(++_0x4d6c97);}(_0x4385,0x144));var _0x5438=function(_0x1e717a,_0x2b8071){_0x1e717a=_0x1e717a-0x0;var _0x345dec=_0x4385[_0x1e717a];return _0x345dec;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x5438('0x0'))(_0x5438('0x1'));var moment=require('moment');var BPromise=require(_0x5438('0x2'));var rp=require(_0x5438('0x3'));var fs=require('fs');var path=require(_0x5438('0x4'));var rimraf=require(_0x5438('0x5'));var config=require(_0x5438('0x6'));var attributes=require(_0x5438('0x7'));module[_0x5438('0x8')]=function(_0x5d998e,_0x1f4353){return _0x5d998e[_0x5438('0x9')]('SquareOdbc',attributes,{'tableName':'square_odbc','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4ca1=['randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','http','request','then','request\x20sent','SquareOdbc,\x20%s,\x20%s,\x20%s','stringify','error','message','SquareOdbc,\x20%s,\x20%s','info','result','catch','ShowSquareOdbc','find','options','raw','where','attributes','map','include','model','debug','util','moment','bluebird'];(function(_0x4989ca,_0x20cc42){var _0x47bae2=function(_0x3fb147){while(--_0x3fb147){_0x4989ca['push'](_0x4989ca['shift']());}};_0x47bae2(++_0x20cc42);}(_0x4ca1,0x11d));var _0x14ca=function(_0x87d3ec,_0x387888){_0x87d3ec=_0x87d3ec-0x0;var _0x5f3f6f=_0x4ca1[_0x87d3ec];return _0x5f3f6f;};'use strict';var _=require('lodash');var util=require(_0x14ca('0x0'));var moment=require(_0x14ca('0x1'));var BPromise=require(_0x14ca('0x2'));var rs=require(_0x14ca('0x3'));var fs=require('fs');var Redis=require(_0x14ca('0x4'));var db=require(_0x14ca('0x5'))['db'];var utils=require(_0x14ca('0x6'));var logger=require('../../config/logger')(_0x14ca('0x7'));var config=require(_0x14ca('0x8'));var jayson=require(_0x14ca('0x9'));var client=jayson['client'][_0x14ca('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x33ec19,_0x229f1a,_0x785d97){return new BPromise(function(_0x1f3ee,_0x2b2c25){return client[_0x14ca('0xb')](_0x33ec19,_0x785d97)[_0x14ca('0xc')](function(_0x1fba44){logger['info']('SquareOdbc,\x20%s,\x20%s',_0x229f1a,_0x14ca('0xd'));logger['debug'](_0x14ca('0xe'),_0x229f1a,_0x14ca('0xd'),JSON[_0x14ca('0xf')](_0x1fba44));if(_0x1fba44[_0x14ca('0x10')]){if(_0x1fba44['error']['code']===0x1f4){logger['error']('SquareOdbc,\x20%s,\x20%s',_0x229f1a,_0x1fba44[_0x14ca('0x10')][_0x14ca('0x11')]);return _0x2b2c25(_0x1fba44[_0x14ca('0x10')][_0x14ca('0x11')]);}logger['error'](_0x14ca('0x12'),_0x229f1a,_0x1fba44['error']['message']);return _0x1f3ee(_0x1fba44[_0x14ca('0x10')][_0x14ca('0x11')]);}else{logger[_0x14ca('0x13')]('SquareOdbc,\x20%s,\x20%s',_0x229f1a,_0x14ca('0xd'));_0x1f3ee(_0x1fba44[_0x14ca('0x14')][_0x14ca('0x11')]);}})[_0x14ca('0x15')](function(_0x2da490){logger[_0x14ca('0x10')](_0x14ca('0x12'),_0x229f1a,_0x2da490);_0x2b2c25(_0x2da490);});});}exports[_0x14ca('0x16')]=function(_0x2b2dc2){var _0x4706b6=this;return new Promise(function(_0x486256,_0x3ba316){return db['SquareOdbc'][_0x14ca('0x17')]({'raw':_0x2b2dc2[_0x14ca('0x18')]?_0x2b2dc2['options'][_0x14ca('0x19')]===undefined?!![]:![]:!![],'where':_0x2b2dc2[_0x14ca('0x18')]?_0x2b2dc2[_0x14ca('0x18')][_0x14ca('0x1a')]||null:null,'attributes':_0x2b2dc2['options']?_0x2b2dc2[_0x14ca('0x18')][_0x14ca('0x1b')]||null:null,'include':_0x2b2dc2[_0x14ca('0x18')]?_0x2b2dc2[_0x14ca('0x18')]['include']?_[_0x14ca('0x1c')](_0x2b2dc2[_0x14ca('0x18')][_0x14ca('0x1d')],function(_0x30d7d3){return{'model':db[_0x30d7d3['model']],'as':_0x30d7d3['as'],'attributes':_0x30d7d3['attributes'],'include':_0x30d7d3[_0x14ca('0x1d')]?_['map'](_0x30d7d3[_0x14ca('0x1d')],function(_0xc1b3f){return{'model':db[_0xc1b3f[_0x14ca('0x1e')]],'as':_0xc1b3f['as'],'attributes':_0xc1b3f[_0x14ca('0x1b')],'include':_0xc1b3f[_0x14ca('0x1d')]?_['map'](_0xc1b3f[_0x14ca('0x1d')],function(_0x4e6dac){return{'model':db[_0x4e6dac[_0x14ca('0x1e')]],'as':_0x4e6dac['as'],'attributes':_0x4e6dac[_0x14ca('0x1b')]};}):[]};}):[]};}):[]:[]})[_0x14ca('0xc')](function(_0x9bacd3){logger[_0x14ca('0x13')]('ShowSquareOdbc',_0x2b2dc2);logger[_0x14ca('0x1f')](_0x14ca('0x16'),_0x2b2dc2,JSON[_0x14ca('0xf')](_0x9bacd3));_0x486256(_0x9bacd3);})[_0x14ca('0x15')](function(_0x4bff69){logger[_0x14ca('0x10')](_0x14ca('0x16'),_0x4bff69['message'],_0x2b2dc2);_0x3ba316(_0x4706b6['error'](0x1f4,_0x4bff69[_0x14ca('0x11')]));});});};
\ No newline at end of file
+var _0x1a04=['util','moment','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','SquareOdbc,\x20%s,\x20%s','request\x20sent','SquareOdbc,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','ShowSquareOdbc','find','options','raw','where','attributes','map','include','model','debug','lodash'];(function(_0x22c397,_0xea9cec){var _0x1cc9f6=function(_0x29c764){while(--_0x29c764){_0x22c397['push'](_0x22c397['shift']());}};_0x1cc9f6(++_0xea9cec);}(_0x1a04,0x131));var _0x41a0=function(_0x37e2f5,_0x54e1b0){_0x37e2f5=_0x37e2f5-0x0;var _0x505c8a=_0x1a04[_0x37e2f5];return _0x505c8a;};'use strict';var _=require(_0x41a0('0x0'));var util=require(_0x41a0('0x1'));var moment=require(_0x41a0('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x41a0('0x3'));var db=require(_0x41a0('0x4'))['db'];var utils=require(_0x41a0('0x5'));var logger=require(_0x41a0('0x6'))(_0x41a0('0x7'));var config=require(_0x41a0('0x8'));var jayson=require(_0x41a0('0x9'));var client=jayson[_0x41a0('0xa')][_0x41a0('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x5153f8,_0x2c4df3,_0x532e7e){return new BPromise(function(_0x568b49,_0x384bb6){return client[_0x41a0('0xc')](_0x5153f8,_0x532e7e)[_0x41a0('0xd')](function(_0x35fdec){logger[_0x41a0('0xe')](_0x41a0('0xf'),_0x2c4df3,_0x41a0('0x10'));logger['debug'](_0x41a0('0x11'),_0x2c4df3,_0x41a0('0x10'),JSON[_0x41a0('0x12')](_0x35fdec));if(_0x35fdec[_0x41a0('0x13')]){if(_0x35fdec[_0x41a0('0x13')][_0x41a0('0x14')]===0x1f4){logger[_0x41a0('0x13')](_0x41a0('0xf'),_0x2c4df3,_0x35fdec['error'][_0x41a0('0x15')]);return _0x384bb6(_0x35fdec[_0x41a0('0x13')]['message']);}logger['error']('SquareOdbc,\x20%s,\x20%s',_0x2c4df3,_0x35fdec[_0x41a0('0x13')]['message']);return _0x568b49(_0x35fdec[_0x41a0('0x13')][_0x41a0('0x15')]);}else{logger['info'](_0x41a0('0xf'),_0x2c4df3,'request\x20sent');_0x568b49(_0x35fdec[_0x41a0('0x16')]['message']);}})[_0x41a0('0x17')](function(_0x3c4539){logger['error'](_0x41a0('0xf'),_0x2c4df3,_0x3c4539);_0x384bb6(_0x3c4539);});});}exports[_0x41a0('0x18')]=function(_0x33c80c){var _0x245a59=this;return new Promise(function(_0x2aca5b,_0x306a3f){return db['SquareOdbc'][_0x41a0('0x19')]({'raw':_0x33c80c[_0x41a0('0x1a')]?_0x33c80c[_0x41a0('0x1a')][_0x41a0('0x1b')]===undefined?!![]:![]:!![],'where':_0x33c80c[_0x41a0('0x1a')]?_0x33c80c[_0x41a0('0x1a')][_0x41a0('0x1c')]||null:null,'attributes':_0x33c80c[_0x41a0('0x1a')]?_0x33c80c['options'][_0x41a0('0x1d')]||null:null,'include':_0x33c80c[_0x41a0('0x1a')]?_0x33c80c[_0x41a0('0x1a')]['include']?_[_0x41a0('0x1e')](_0x33c80c[_0x41a0('0x1a')][_0x41a0('0x1f')],function(_0x5793a3){return{'model':db[_0x5793a3[_0x41a0('0x20')]],'as':_0x5793a3['as'],'attributes':_0x5793a3[_0x41a0('0x1d')],'include':_0x5793a3['include']?_['map'](_0x5793a3['include'],function(_0x77dc7){return{'model':db[_0x77dc7[_0x41a0('0x20')]],'as':_0x77dc7['as'],'attributes':_0x77dc7[_0x41a0('0x1d')],'include':_0x77dc7[_0x41a0('0x1f')]?_['map'](_0x77dc7[_0x41a0('0x1f')],function(_0xfbe46d){return{'model':db[_0xfbe46d[_0x41a0('0x20')]],'as':_0xfbe46d['as'],'attributes':_0xfbe46d['attributes']};}):[]};}):[]};}):[]:[]})[_0x41a0('0xd')](function(_0x5b5bce){logger[_0x41a0('0xe')](_0x41a0('0x18'),_0x33c80c);logger[_0x41a0('0x21')](_0x41a0('0x18'),_0x33c80c,JSON[_0x41a0('0x12')](_0x5b5bce));_0x2aca5b(_0x5b5bce);})[_0x41a0('0x17')](function(_0x56c66c){logger[_0x41a0('0x13')]('ShowSquareOdbc',_0x56c66c[_0x41a0('0x15')],_0x33c80c);_0x306a3f(_0x245a59[_0x41a0('0x13')](0x1f4,_0x56c66c[_0x41a0('0x15')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1d91=['Router','fs-extra','../../components/auth/service','../../config/environment','./squareProject.controller','get','/:id','isAuthenticated','show','/:id/users','getUsers','post','addUsers','put','delete','destroy','multer','util','path','express'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x1d91,0x150));var _0x11d9=function(_0x22d4a0,_0x2d557a){_0x22d4a0=_0x22d4a0-0x0;var _0x1d3a5e=_0x1d91[_0x22d4a0];return _0x1d3a5e;};'use strict';var multer=require(_0x11d9('0x0'));var util=require(_0x11d9('0x1'));var path=require(_0x11d9('0x2'));var timeout=require('connect-timeout');var express=require(_0x11d9('0x3'));var router=express[_0x11d9('0x4')]();var fs_extra=require(_0x11d9('0x5'));var auth=require(_0x11d9('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0x11d9('0x7'));var controller=require(_0x11d9('0x8'));router[_0x11d9('0x9')]('/',auth['isAuthenticated'](),controller['index']);router['get'](_0x11d9('0xa'),auth[_0x11d9('0xb')](),controller[_0x11d9('0xc')]);router[_0x11d9('0x9')](_0x11d9('0xd'),auth['isAuthenticated'](),controller[_0x11d9('0xe')]);router['post']('/',auth[_0x11d9('0xb')](),controller['create']);router[_0x11d9('0xf')](_0x11d9('0xd'),auth[_0x11d9('0xb')](),controller[_0x11d9('0x10')]);router[_0x11d9('0x11')]('/:id',auth[_0x11d9('0xb')](),controller['update']);router[_0x11d9('0x12')](_0x11d9('0xa'),auth['isAuthenticated'](),controller[_0x11d9('0x13')]);router[_0x11d9('0x12')](_0x11d9('0xd'),auth[_0x11d9('0xb')](),controller['removeUsers']);module['exports']=router;
\ No newline at end of file
+var _0x6b06=['delete','destroy','removeUsers','exports','multer','util','path','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./squareProject.controller','get','index','isAuthenticated','show','/:id/users','getUsers','post','create','addUsers','update'];(function(_0x336903,_0x1bfbc6){var _0x5e5bc9=function(_0x29a2ef){while(--_0x29a2ef){_0x336903['push'](_0x336903['shift']());}};_0x5e5bc9(++_0x1bfbc6);}(_0x6b06,0x1e4));var _0x66b0=function(_0x401205,_0x6604b){_0x401205=_0x401205-0x0;var _0xb2c28e=_0x6b06[_0x401205];return _0xb2c28e;};'use strict';var multer=require(_0x66b0('0x0'));var util=require(_0x66b0('0x1'));var path=require(_0x66b0('0x2'));var timeout=require('connect-timeout');var express=require(_0x66b0('0x3'));var router=express[_0x66b0('0x4')]();var fs_extra=require(_0x66b0('0x5'));var auth=require(_0x66b0('0x6'));var interaction=require(_0x66b0('0x7'));var config=require(_0x66b0('0x8'));var controller=require(_0x66b0('0x9'));router[_0x66b0('0xa')]('/',auth['isAuthenticated'](),controller[_0x66b0('0xb')]);router[_0x66b0('0xa')]('/:id',auth[_0x66b0('0xc')](),controller[_0x66b0('0xd')]);router['get'](_0x66b0('0xe'),auth[_0x66b0('0xc')](),controller[_0x66b0('0xf')]);router[_0x66b0('0x10')]('/',auth[_0x66b0('0xc')](),controller[_0x66b0('0x11')]);router['post']('/:id/users',auth[_0x66b0('0xc')](),controller[_0x66b0('0x12')]);router['put']('/:id',auth[_0x66b0('0xc')](),controller[_0x66b0('0x13')]);router[_0x66b0('0x14')]('/:id',auth[_0x66b0('0xc')](),controller[_0x66b0('0x15')]);router[_0x66b0('0x14')]('/:id/users',auth[_0x66b0('0xc')](),controller[_0x66b0('0x16')]);module[_0x66b0('0x17')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9c4b=['long','getDataValue','preproduction','toString','utf8','DATE','STRING','name','TEXT'];(function(_0xc398b8,_0x3ae32e){var _0x2b183a=function(_0x53ffd7){while(--_0x53ffd7){_0xc398b8['push'](_0xc398b8['shift']());}};_0x2b183a(++_0x3ae32e);}(_0x9c4b,0x14a));var _0xb9c4=function(_0x13a5e2,_0x4e2d46){_0x13a5e2=_0x13a5e2-0x0;var _0x42c586=_0x9c4b[_0x13a5e2];return _0x42c586;};'use strict';var Sequelize=require('sequelize');module['exports']={'name':{'type':Sequelize[_0xb9c4('0x0')],'unique':_0xb9c4('0x1'),'allowNull':![]},'description':{'type':Sequelize[_0xb9c4('0x0')]},'notes':{'type':Sequelize[_0xb9c4('0x2')]},'preproduction':{'type':Sequelize['BLOB'](_0xb9c4('0x3')),'get':function(){if(this[_0xb9c4('0x4')](_0xb9c4('0x5'))){return this[_0xb9c4('0x4')](_0xb9c4('0x5'))[_0xb9c4('0x6')]('utf8');}}},'production':{'type':Sequelize['BLOB'](_0xb9c4('0x3')),'get':function(){if(this[_0xb9c4('0x4')]('production')){return this['getDataValue']('production')[_0xb9c4('0x6')](_0xb9c4('0x7'));}}},'savedAt':{'type':Sequelize[_0xb9c4('0x8')]},'publishedAt':{'type':Sequelize[_0xb9c4('0x8')]}};
\ No newline at end of file
+var _0x2eeb=['long','getDataValue','preproduction','toString','production','utf8','DATE','sequelize','exports','name','STRING'];(function(_0x2c1e7a,_0x155f86){var _0xcacb4f=function(_0x2b2eb3){while(--_0x2b2eb3){_0x2c1e7a['push'](_0x2c1e7a['shift']());}};_0xcacb4f(++_0x155f86);}(_0x2eeb,0x80));var _0xb2ee=function(_0x394d88,_0x18fc88){_0x394d88=_0x394d88-0x0;var _0x38f3b9=_0x2eeb[_0x394d88];return _0x38f3b9;};'use strict';var Sequelize=require(_0xb2ee('0x0'));module[_0xb2ee('0x1')]={'name':{'type':Sequelize['STRING'],'unique':_0xb2ee('0x2'),'allowNull':![]},'description':{'type':Sequelize[_0xb2ee('0x3')]},'notes':{'type':Sequelize['TEXT']},'preproduction':{'type':Sequelize['BLOB'](_0xb2ee('0x4')),'get':function(){if(this[_0xb2ee('0x5')](_0xb2ee('0x6'))){return this[_0xb2ee('0x5')](_0xb2ee('0x6'))[_0xb2ee('0x7')]('utf8');}}},'production':{'type':Sequelize['BLOB'](_0xb2ee('0x4')),'get':function(){if(this[_0xb2ee('0x5')](_0xb2ee('0x8'))){return this['getDataValue']('production')[_0xb2ee('0x7')](_0xb2ee('0x9'));}}},'savedAt':{'type':Sequelize[_0xb2ee('0xa')]},'publishedAt':{'type':Sequelize[_0xb2ee('0xa')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc496=['Content-Range','apply','reject','update','then','destroy','get','SquareProjects','UserProfileResource','end','error','stack','name','send','index','map','SquareProject','rawAttributes','fieldName','type','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','filters','pick','filter','merge','VIRTUAL','options','includeAll','findAll','rows','show','params','include','find','catch','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','addUsers','ids','omit','removeUsers','isArray','emit','userSquareProject:remove','getUsers','nolimit','eml-format','rimraf','zip-dir','fast-json-patch','bluebird','util','path','to-csv','ejs','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/license/util','../../mysqldb','redis','socket.io-emitter','./squareProject.socket','register','sendStatus','status','json','undefined','limit','count','offset','set'];(function(_0x4c8f16,_0x183b7c){var _0x579088=function(_0xccbfc2){while(--_0xccbfc2){_0x4c8f16['push'](_0x4c8f16['shift']());}};_0x579088(++_0x183b7c);}(_0xc496,0x1c2));var _0x6c49=function(_0x363b81,_0x81e6ca){_0x363b81=_0x363b81-0x0;var _0x1d92fb=_0xc496[_0x363b81];return _0x1d92fb;};'use strict';var emlformat=require(_0x6c49('0x0'));var rimraf=require(_0x6c49('0x1'));var zipdir=require(_0x6c49('0x2'));var jsonpatch=require(_0x6c49('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x6c49('0x4'));var Mustache=require('mustache');var util=require(_0x6c49('0x5'));var path=require(_0x6c49('0x6'));var sox=require('sox');var csv=require(_0x6c49('0x7'));var ejs=require(_0x6c49('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x6c49('0x9'));var squel=require(_0x6c49('0xa'));var crypto=require(_0x6c49('0xb'));var jsforce=require(_0x6c49('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x6c49('0x7'));var querystring=require(_0x6c49('0xd'));var Papa=require(_0x6c49('0xe'));var Redis=require(_0x6c49('0xf'));var authService=require(_0x6c49('0x10'));var qs=require(_0x6c49('0x11'));var as=require(_0x6c49('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x6c49('0x13'))(_0x6c49('0x14'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x6c49('0x15'));var db=require(_0x6c49('0x16'))['db'];config[_0x6c49('0x17')]=_['defaults'](config[_0x6c49('0x17')],{'host':'localhost','port':0x18eb});var socket=require(_0x6c49('0x18'))(new Redis(config[_0x6c49('0x17')]));require(_0x6c49('0x19'))[_0x6c49('0x1a')](socket);function respondWithStatusCode(_0x2f7dd9,_0x5e1f9f){_0x5e1f9f=_0x5e1f9f||0xcc;return function(_0x40432f){if(_0x40432f){return _0x2f7dd9[_0x6c49('0x1b')](_0x5e1f9f);}return _0x2f7dd9[_0x6c49('0x1c')](_0x5e1f9f)['end']();};}function respondWithResult(_0x4b08f9,_0x4104f2){_0x4104f2=_0x4104f2||0xc8;return function(_0x2d59b1){if(_0x2d59b1){return _0x4b08f9[_0x6c49('0x1c')](_0x4104f2)[_0x6c49('0x1d')](_0x2d59b1);}};}function respondWithFilteredResult(_0x4966a7,_0x53b686){return function(_0x579652){if(_0x579652){var _0x24999e=typeof _0x53b686['offset']===_0x6c49('0x1e')&&typeof _0x53b686[_0x6c49('0x1f')]===_0x6c49('0x1e');var _0x258627=_0x579652[_0x6c49('0x20')];var _0x23f330=_0x24999e?0x0:_0x53b686[_0x6c49('0x21')];var _0x1ce8ab=_0x24999e?_0x579652[_0x6c49('0x20')]:_0x53b686[_0x6c49('0x21')]+_0x53b686[_0x6c49('0x1f')];var _0x5aa283;if(_0x1ce8ab>=_0x258627){_0x1ce8ab=_0x258627;_0x5aa283=0xc8;}else{_0x5aa283=0xce;}_0x4966a7[_0x6c49('0x1c')](_0x5aa283);return _0x4966a7[_0x6c49('0x22')](_0x6c49('0x23'),_0x23f330+'-'+_0x1ce8ab+'/'+_0x258627)['json'](_0x579652);}return null;};}function patchUpdates(_0x3b631a){return function(_0x292876){try{jsonpatch[_0x6c49('0x24')](_0x292876,_0x3b631a,!![]);}catch(_0x59298d){return BPromise[_0x6c49('0x25')](_0x59298d);}return _0x292876['save']();};}function saveUpdates(_0x1f065e,_0xa312b9){return function(_0x32f651){if(_0x32f651){return _0x32f651[_0x6c49('0x26')](_0x1f065e)[_0x6c49('0x27')](function(_0x2bb6c4){return _0x2bb6c4;});}return null;};}function removeEntity(_0x356262,_0x3aa9f1){return function(_0x64f277){if(_0x64f277){return _0x64f277[_0x6c49('0x28')]()[_0x6c49('0x27')](function(){var _0x12426f=_0x64f277[_0x6c49('0x29')]({'plain':!![]});var _0x2217ca=_0x6c49('0x2a');return db[_0x6c49('0x2b')][_0x6c49('0x28')]({'where':{'type':_0x2217ca,'resourceId':_0x12426f['id']}})[_0x6c49('0x27')](function(){return _0x64f277;});})[_0x6c49('0x27')](function(){_0x356262[_0x6c49('0x1c')](0xcc)[_0x6c49('0x2c')]();});}};}function handleEntityNotFound(_0x197401,_0xa3012b){return function(_0x5d3537){if(!_0x5d3537){_0x197401[_0x6c49('0x1b')](0x194);}return _0x5d3537;};}function handleError(_0x56d6ca,_0x29ab81){_0x29ab81=_0x29ab81||0x1f4;return function(_0x37c97e){logger[_0x6c49('0x2d')](_0x37c97e[_0x6c49('0x2e')]);if(_0x37c97e[_0x6c49('0x2f')]){delete _0x37c97e['name'];}_0x56d6ca[_0x6c49('0x1c')](_0x29ab81)[_0x6c49('0x30')](_0x37c97e);};}exports[_0x6c49('0x31')]=function(_0x388e1d,_0x4e0095){var _0x38431c={},_0x5d6dad={},_0x2a9971={'count':0x0,'rows':[]};var _0x3442fb=_[_0x6c49('0x32')](db[_0x6c49('0x33')][_0x6c49('0x34')],function(_0x377149){return{'name':_0x377149[_0x6c49('0x35')],'type':_0x377149[_0x6c49('0x36')]['key']};});_0x5d6dad[_0x6c49('0x37')]=_['map'](_0x3442fb,_0x6c49('0x2f'));_0x5d6dad[_0x6c49('0x38')]=_[_0x6c49('0x39')](_0x388e1d[_0x6c49('0x38')]);_0x5d6dad['filters']=_[_0x6c49('0x3a')](_0x5d6dad[_0x6c49('0x37')],_0x5d6dad[_0x6c49('0x38')]);_0x38431c[_0x6c49('0x3b')]=_[_0x6c49('0x3a')](_0x5d6dad[_0x6c49('0x37')],qs[_0x6c49('0x3c')](_0x388e1d[_0x6c49('0x38')][_0x6c49('0x3c')]));_0x38431c[_0x6c49('0x3b')]=_0x38431c[_0x6c49('0x3b')][_0x6c49('0x3d')]?_0x38431c[_0x6c49('0x3b')]:_0x5d6dad[_0x6c49('0x37')];if(!_0x388e1d[_0x6c49('0x38')][_0x6c49('0x3e')]('nolimit')){_0x38431c[_0x6c49('0x1f')]=qs[_0x6c49('0x1f')](_0x388e1d['query'][_0x6c49('0x1f')]);_0x38431c[_0x6c49('0x21')]=qs[_0x6c49('0x21')](_0x388e1d[_0x6c49('0x38')]['offset']);}_0x38431c[_0x6c49('0x3f')]=qs[_0x6c49('0x40')](_0x388e1d[_0x6c49('0x38')][_0x6c49('0x40')]);_0x38431c[_0x6c49('0x41')]=qs[_0x6c49('0x42')](_[_0x6c49('0x43')](_0x388e1d['query'],_0x5d6dad[_0x6c49('0x42')]),_0x3442fb);if(_0x388e1d[_0x6c49('0x38')][_0x6c49('0x44')]){_0x38431c['where']=_[_0x6c49('0x45')](_0x38431c[_0x6c49('0x41')],{'$or':_[_0x6c49('0x32')](_0x3442fb,function(_0x10ef50){if(_0x10ef50[_0x6c49('0x36')]!==_0x6c49('0x46')){var _0x4bfac3={};_0x4bfac3[_0x10ef50[_0x6c49('0x2f')]]={'$like':'%'+_0x388e1d[_0x6c49('0x38')][_0x6c49('0x44')]+'%'};return _0x4bfac3;}})});}_0x38431c=_[_0x6c49('0x45')]({},_0x38431c,_0x388e1d[_0x6c49('0x47')]);var _0x434235={'where':_0x38431c[_0x6c49('0x41')]};return db[_0x6c49('0x33')][_0x6c49('0x20')](_0x434235)[_0x6c49('0x27')](function(_0x589b59){_0x2a9971['count']=_0x589b59;if(_0x388e1d[_0x6c49('0x38')][_0x6c49('0x48')]){_0x38431c['include']=[{'all':!![]}];}return db[_0x6c49('0x33')][_0x6c49('0x49')](_0x38431c);})[_0x6c49('0x27')](function(_0x4eefc1){_0x2a9971[_0x6c49('0x4a')]=_0x4eefc1;return _0x2a9971;})['then'](respondWithFilteredResult(_0x4e0095,_0x38431c))['catch'](handleError(_0x4e0095,null));};exports[_0x6c49('0x4b')]=function(_0x314584,_0x38d446){var _0x47086a={'raw':![],'where':{'id':_0x314584[_0x6c49('0x4c')]['id']}},_0x5bcb31={};_0x5bcb31[_0x6c49('0x37')]=_[_0x6c49('0x39')](db[_0x6c49('0x33')][_0x6c49('0x34')]);_0x5bcb31[_0x6c49('0x38')]=_[_0x6c49('0x39')](_0x314584[_0x6c49('0x38')]);_0x5bcb31['filters']=_[_0x6c49('0x3a')](_0x5bcb31[_0x6c49('0x37')],_0x5bcb31[_0x6c49('0x38')]);_0x47086a[_0x6c49('0x3b')]=_[_0x6c49('0x3a')](_0x5bcb31[_0x6c49('0x37')],qs['fields'](_0x314584[_0x6c49('0x38')][_0x6c49('0x3c')]));_0x47086a['attributes']=_0x47086a['attributes'][_0x6c49('0x3d')]?_0x47086a[_0x6c49('0x3b')]:_0x5bcb31[_0x6c49('0x37')];if(_0x314584[_0x6c49('0x38')]['includeAll']){_0x47086a[_0x6c49('0x4d')]=[{'all':!![]}];}_0x47086a=_[_0x6c49('0x45')]({},_0x47086a,_0x314584[_0x6c49('0x47')]);return db[_0x6c49('0x33')][_0x6c49('0x4e')](_0x47086a)['then'](handleEntityNotFound(_0x38d446,null))[_0x6c49('0x27')](respondWithResult(_0x38d446,null))[_0x6c49('0x4f')](handleError(_0x38d446,null));};exports[_0x6c49('0x50')]=function(_0x3d4d77,_0x175cc1){return db['SquareProject']['create'](_0x3d4d77[_0x6c49('0x51')],{})[_0x6c49('0x27')](function(_0x19bf5c){var _0x146fc5=_0x3d4d77[_0x6c49('0x52')][_0x6c49('0x29')]({'plain':!![]});if(!_0x146fc5)throw new Error(_0x6c49('0x53'));if(_0x146fc5['role']===_0x6c49('0x52')){var _0x1a6dc4=_0x19bf5c['get']({'plain':!![]});var _0x1f9b02=_0x6c49('0x2a');return db[_0x6c49('0x54')]['find']({'where':{'name':_0x1f9b02,'userProfileId':_0x146fc5[_0x6c49('0x55')]},'raw':!![]})[_0x6c49('0x27')](function(_0x2a36fb){if(_0x2a36fb&&_0x2a36fb[_0x6c49('0x56')]===0x0){return db[_0x6c49('0x2b')][_0x6c49('0x50')]({'name':_0x1a6dc4[_0x6c49('0x2f')],'resourceId':_0x1a6dc4['id'],'type':_0x2a36fb['name'],'sectionId':_0x2a36fb['id']},{})['then'](function(){return _0x19bf5c;});}else{return _0x19bf5c;}})[_0x6c49('0x4f')](function(_0x464685){logger[_0x6c49('0x2d')](_0x6c49('0x57'),_0x464685);throw _0x464685;});}return _0x19bf5c;})[_0x6c49('0x27')](respondWithResult(_0x175cc1,0xc9))['catch'](handleError(_0x175cc1,null));};exports['update']=function(_0x469d80,_0x4418a2){if(_0x469d80[_0x6c49('0x51')]['id']){delete _0x469d80[_0x6c49('0x51')]['id'];}return db[_0x6c49('0x33')][_0x6c49('0x4e')]({'where':{'id':_0x469d80[_0x6c49('0x4c')]['id']}})[_0x6c49('0x27')](handleEntityNotFound(_0x4418a2,null))[_0x6c49('0x27')](saveUpdates(_0x469d80[_0x6c49('0x51')],null))[_0x6c49('0x27')](respondWithResult(_0x4418a2,null))['catch'](handleError(_0x4418a2,null));};exports['destroy']=function(_0x334da4,_0x15bb20){return db[_0x6c49('0x33')]['find']({'where':{'id':_0x334da4[_0x6c49('0x4c')]['id']}})['then'](handleEntityNotFound(_0x15bb20,null))[_0x6c49('0x27')](removeEntity(_0x15bb20,null))[_0x6c49('0x4f')](handleError(_0x15bb20,null));};exports[_0x6c49('0x58')]=function(_0x83faa0,_0x54c6af,_0x173385){return db[_0x6c49('0x33')]['find']({'where':{'id':_0x83faa0[_0x6c49('0x4c')]['id']}})[_0x6c49('0x27')](handleEntityNotFound(_0x54c6af,null))[_0x6c49('0x27')](function(_0x7a20cc){if(_0x7a20cc){return _0x7a20cc[_0x6c49('0x58')](_0x83faa0[_0x6c49('0x51')][_0x6c49('0x59')],_[_0x6c49('0x5a')](_0x83faa0[_0x6c49('0x51')],[_0x6c49('0x59'),'id'])||{});}})[_0x6c49('0x27')](respondWithResult(_0x54c6af,null))[_0x6c49('0x4f')](handleError(_0x54c6af,null));};exports['removeUsers']=function(_0x2e23d5,_0x20c0f3,_0x15562a){return db[_0x6c49('0x33')][_0x6c49('0x4e')]({'where':{'id':_0x2e23d5[_0x6c49('0x4c')]['id']}})['then'](handleEntityNotFound(_0x20c0f3,null))[_0x6c49('0x27')](function(_0x417c04){if(_0x417c04){return _0x417c04[_0x6c49('0x5b')](_0x2e23d5[_0x6c49('0x38')][_0x6c49('0x59')])['then'](function(){if(_[_0x6c49('0x5c')](_0x2e23d5[_0x6c49('0x38')][_0x6c49('0x59')])){for(var _0xe37dbf=0x0;_0xe37dbf<_0x2e23d5['query'][_0x6c49('0x59')][_0x6c49('0x3d')];_0xe37dbf+=0x1){socket[_0x6c49('0x5d')](_0x6c49('0x5e'),{'UserId':Number(_0x2e23d5[_0x6c49('0x38')]['ids'][_0xe37dbf]),'SquareProjectId':Number(_0x2e23d5[_0x6c49('0x4c')]['id'])});}}else{socket[_0x6c49('0x5d')](_0x6c49('0x5e'),{'UserId':Number(_0x2e23d5[_0x6c49('0x38')][_0x6c49('0x59')]),'SquareProjectId':Number(_0x2e23d5[_0x6c49('0x4c')]['id'])});}});}})['then'](respondWithStatusCode(_0x20c0f3,null))[_0x6c49('0x4f')](handleError(_0x20c0f3,null));};exports['getUsers']=function(_0x2cd9d6,_0x208bc4,_0x3a2289){var _0x92918e={};var _0x5d8013={};var _0x347af9;var _0x5f5d2f;return db[_0x6c49('0x33')]['findOne']({'where':{'id':_0x2cd9d6['params']['id']}})[_0x6c49('0x27')](handleEntityNotFound(_0x208bc4,null))['then'](function(_0x579a51){if(_0x579a51){_0x347af9=_0x579a51;_0x5d8013[_0x6c49('0x37')]=_[_0x6c49('0x39')](db['User'][_0x6c49('0x34')]);_0x5d8013['query']=_['keys'](_0x2cd9d6[_0x6c49('0x38')]);_0x5d8013['filters']=_[_0x6c49('0x3a')](_0x5d8013[_0x6c49('0x37')],_0x5d8013[_0x6c49('0x38')]);_0x92918e[_0x6c49('0x3b')]=_[_0x6c49('0x3a')](_0x5d8013[_0x6c49('0x37')],qs[_0x6c49('0x3c')](_0x2cd9d6[_0x6c49('0x38')][_0x6c49('0x3c')]));_0x92918e[_0x6c49('0x3b')]=_0x92918e[_0x6c49('0x3b')][_0x6c49('0x3d')]?_0x92918e['attributes']:_0x5d8013[_0x6c49('0x37')];_0x92918e[_0x6c49('0x3f')]=qs['sort'](_0x2cd9d6[_0x6c49('0x38')][_0x6c49('0x40')]);_0x92918e[_0x6c49('0x41')]=qs[_0x6c49('0x42')](_['pick'](_0x2cd9d6[_0x6c49('0x38')],_0x5d8013[_0x6c49('0x42')]));if(_0x2cd9d6[_0x6c49('0x38')]['filter']){_0x92918e[_0x6c49('0x41')]=_[_0x6c49('0x45')](_0x92918e[_0x6c49('0x41')],{'$or':_[_0x6c49('0x32')](_0x92918e[_0x6c49('0x3b')],function(_0x53be80){var _0x405575={};_0x405575[_0x53be80]={'$like':'%'+_0x2cd9d6[_0x6c49('0x38')]['filter']+'%'};return _0x405575;})});}_0x92918e=_['merge']({},_0x92918e,_0x2cd9d6[_0x6c49('0x47')]);return _0x347af9[_0x6c49('0x5f')](_0x92918e);}})[_0x6c49('0x27')](function(_0x46d2b0){if(_0x46d2b0){_0x5f5d2f=_0x46d2b0[_0x6c49('0x3d')];if(!_0x2cd9d6[_0x6c49('0x38')][_0x6c49('0x3e')](_0x6c49('0x60'))){_0x92918e[_0x6c49('0x1f')]=qs[_0x6c49('0x1f')](_0x2cd9d6[_0x6c49('0x38')]['limit']);_0x92918e[_0x6c49('0x21')]=qs[_0x6c49('0x21')](_0x2cd9d6[_0x6c49('0x38')][_0x6c49('0x21')]);}return _0x347af9['getUsers'](_0x92918e);}})['then'](function(_0x1d0fb0){if(_0x1d0fb0){return _0x1d0fb0?{'count':_0x5f5d2f,'rows':_0x1d0fb0}:null;}})['then'](respondWithResult(_0x208bc4,null))['catch'](handleError(_0x208bc4,null));};
\ No newline at end of file
+var _0x7378=['index','map','SquareProject','rawAttributes','fieldName','type','model','name','query','keys','intersection','attributes','fields','hasOwnProperty','nolimit','sort','where','filters','filter','merge','VIRTUAL','includeAll','include','rows','params','length','options','catch','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','find','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','addUsers','ids','omit','removeUsers','isArray','userSquareProject:remove','User','pick','getUsers','eml-format','rimraf','fast-json-patch','request-promise','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/environment','../../mysqldb','redis','socket.io-emitter','./squareProject.socket','register','sendStatus','status','end','json','offset','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','SquareProjects','UserProfileResource','error'];(function(_0x5ad771,_0x34186f){var _0x5b5dce=function(_0x5ad0fb){while(--_0x5ad0fb){_0x5ad771['push'](_0x5ad771['shift']());}};_0x5b5dce(++_0x34186f);}(_0x7378,0x8d));var _0x8737=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x7378[_0x14add3];return _0x4a174f;};'use strict';var emlformat=require(_0x8737('0x0'));var rimraf=require(_0x8737('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x8737('0x2'));var rp=require(_0x8737('0x3'));var moment=require('moment');var BPromise=require(_0x8737('0x4'));var Mustache=require(_0x8737('0x5'));var util=require('util');var path=require(_0x8737('0x6'));var sox=require(_0x8737('0x7'));var csv=require(_0x8737('0x8'));var ejs=require(_0x8737('0x9'));var fs=require('fs');var fs_extra=require(_0x8737('0xa'));var _=require(_0x8737('0xb'));var squel=require(_0x8737('0xc'));var crypto=require(_0x8737('0xd'));var jsforce=require(_0x8737('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x8737('0x8'));var querystring=require(_0x8737('0xf'));var Papa=require('papaparse');var Redis=require(_0x8737('0x10'));var authService=require(_0x8737('0x11'));var qs=require(_0x8737('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x8737('0x13'));var logger=require(_0x8737('0x14'))('api');var utils=require('../../config/utils');var config=require(_0x8737('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0x8737('0x16'))['db'];config[_0x8737('0x17')]=_['defaults'](config[_0x8737('0x17')],{'host':'localhost','port':0x18eb});var socket=require(_0x8737('0x18'))(new Redis(config[_0x8737('0x17')]));require(_0x8737('0x19'))[_0x8737('0x1a')](socket);function respondWithStatusCode(_0x197e93,_0x4d46eb){_0x4d46eb=_0x4d46eb||0xcc;return function(_0x3fcd84){if(_0x3fcd84){return _0x197e93[_0x8737('0x1b')](_0x4d46eb);}return _0x197e93[_0x8737('0x1c')](_0x4d46eb)[_0x8737('0x1d')]();};}function respondWithResult(_0x46638a,_0x49f9ac){_0x49f9ac=_0x49f9ac||0xc8;return function(_0x54c266){if(_0x54c266){return _0x46638a['status'](_0x49f9ac)[_0x8737('0x1e')](_0x54c266);}};}function respondWithFilteredResult(_0x5a14c6,_0x29c690){return function(_0x1bfbbf){if(_0x1bfbbf){var _0x54aee0=typeof _0x29c690[_0x8737('0x1f')]==='undefined'&&typeof _0x29c690[_0x8737('0x20')]==='undefined';var _0x2619b8=_0x1bfbbf[_0x8737('0x21')];var _0x1ac431=_0x54aee0?0x0:_0x29c690['offset'];var _0x46aef6=_0x54aee0?_0x1bfbbf[_0x8737('0x21')]:_0x29c690[_0x8737('0x1f')]+_0x29c690['limit'];var _0xbaca5e;if(_0x46aef6>=_0x2619b8){_0x46aef6=_0x2619b8;_0xbaca5e=0xc8;}else{_0xbaca5e=0xce;}_0x5a14c6[_0x8737('0x1c')](_0xbaca5e);return _0x5a14c6[_0x8737('0x22')](_0x8737('0x23'),_0x1ac431+'-'+_0x46aef6+'/'+_0x2619b8)[_0x8737('0x1e')](_0x1bfbbf);}return null;};}function patchUpdates(_0x268c6f){return function(_0x223e57){try{jsonpatch[_0x8737('0x24')](_0x223e57,_0x268c6f,!![]);}catch(_0x5d56f4){return BPromise[_0x8737('0x25')](_0x5d56f4);}return _0x223e57[_0x8737('0x26')]();};}function saveUpdates(_0x589c50,_0x1d7e83){return function(_0x518336){if(_0x518336){return _0x518336[_0x8737('0x27')](_0x589c50)[_0x8737('0x28')](function(_0x357f12){return _0x357f12;});}return null;};}function removeEntity(_0x370e7a,_0x599cfe){return function(_0x303438){if(_0x303438){return _0x303438[_0x8737('0x29')]()[_0x8737('0x28')](function(){var _0x19c594=_0x303438['get']({'plain':!![]});var _0x5dc0a7=_0x8737('0x2a');return db[_0x8737('0x2b')]['destroy']({'where':{'type':_0x5dc0a7,'resourceId':_0x19c594['id']}})['then'](function(){return _0x303438;});})[_0x8737('0x28')](function(){_0x370e7a['status'](0xcc)[_0x8737('0x1d')]();});}};}function handleEntityNotFound(_0x3adff3,_0x3d7a9f){return function(_0x39c79d){if(!_0x39c79d){_0x3adff3[_0x8737('0x1b')](0x194);}return _0x39c79d;};}function handleError(_0x412a79,_0x6e7a60){_0x6e7a60=_0x6e7a60||0x1f4;return function(_0x1f32d6){logger[_0x8737('0x2c')](_0x1f32d6['stack']);if(_0x1f32d6['name']){delete _0x1f32d6['name'];}_0x412a79[_0x8737('0x1c')](_0x6e7a60)['send'](_0x1f32d6);};}exports[_0x8737('0x2d')]=function(_0x1b45d1,_0xa75d66){var _0x497079={},_0x2d62bc={},_0x48c641={'count':0x0,'rows':[]};var _0x16af00=_[_0x8737('0x2e')](db[_0x8737('0x2f')][_0x8737('0x30')],function(_0x3b5c58){return{'name':_0x3b5c58[_0x8737('0x31')],'type':_0x3b5c58[_0x8737('0x32')]['key']};});_0x2d62bc[_0x8737('0x33')]=_['map'](_0x16af00,_0x8737('0x34'));_0x2d62bc[_0x8737('0x35')]=_[_0x8737('0x36')](_0x1b45d1[_0x8737('0x35')]);_0x2d62bc['filters']=_[_0x8737('0x37')](_0x2d62bc[_0x8737('0x33')],_0x2d62bc[_0x8737('0x35')]);_0x497079[_0x8737('0x38')]=_[_0x8737('0x37')](_0x2d62bc[_0x8737('0x33')],qs[_0x8737('0x39')](_0x1b45d1[_0x8737('0x35')][_0x8737('0x39')]));_0x497079[_0x8737('0x38')]=_0x497079[_0x8737('0x38')]['length']?_0x497079[_0x8737('0x38')]:_0x2d62bc[_0x8737('0x33')];if(!_0x1b45d1[_0x8737('0x35')][_0x8737('0x3a')](_0x8737('0x3b'))){_0x497079[_0x8737('0x20')]=qs['limit'](_0x1b45d1[_0x8737('0x35')][_0x8737('0x20')]);_0x497079[_0x8737('0x1f')]=qs['offset'](_0x1b45d1['query']['offset']);}_0x497079['order']=qs[_0x8737('0x3c')](_0x1b45d1[_0x8737('0x35')][_0x8737('0x3c')]);_0x497079[_0x8737('0x3d')]=qs[_0x8737('0x3e')](_['pick'](_0x1b45d1[_0x8737('0x35')],_0x2d62bc[_0x8737('0x3e')]),_0x16af00);if(_0x1b45d1[_0x8737('0x35')][_0x8737('0x3f')]){_0x497079[_0x8737('0x3d')]=_[_0x8737('0x40')](_0x497079['where'],{'$or':_[_0x8737('0x2e')](_0x16af00,function(_0x3b4b0e){if(_0x3b4b0e[_0x8737('0x32')]!==_0x8737('0x41')){var _0x6cce19={};_0x6cce19[_0x3b4b0e[_0x8737('0x34')]]={'$like':'%'+_0x1b45d1['query'][_0x8737('0x3f')]+'%'};return _0x6cce19;}})});}_0x497079=_[_0x8737('0x40')]({},_0x497079,_0x1b45d1['options']);var _0x4cfc27={'where':_0x497079['where']};return db[_0x8737('0x2f')][_0x8737('0x21')](_0x4cfc27)[_0x8737('0x28')](function(_0x17d25d){_0x48c641[_0x8737('0x21')]=_0x17d25d;if(_0x1b45d1[_0x8737('0x35')][_0x8737('0x42')]){_0x497079[_0x8737('0x43')]=[{'all':!![]}];}return db['SquareProject']['findAll'](_0x497079);})[_0x8737('0x28')](function(_0x3ea8f3){_0x48c641[_0x8737('0x44')]=_0x3ea8f3;return _0x48c641;})[_0x8737('0x28')](respondWithFilteredResult(_0xa75d66,_0x497079))['catch'](handleError(_0xa75d66,null));};exports['show']=function(_0x2532cd,_0x562ef8){var _0x40dabc={'raw':![],'where':{'id':_0x2532cd[_0x8737('0x45')]['id']}},_0x5124e8={};_0x5124e8[_0x8737('0x33')]=_[_0x8737('0x36')](db['SquareProject']['rawAttributes']);_0x5124e8['query']=_[_0x8737('0x36')](_0x2532cd[_0x8737('0x35')]);_0x5124e8[_0x8737('0x3e')]=_[_0x8737('0x37')](_0x5124e8['model'],_0x5124e8[_0x8737('0x35')]);_0x40dabc['attributes']=_[_0x8737('0x37')](_0x5124e8[_0x8737('0x33')],qs[_0x8737('0x39')](_0x2532cd[_0x8737('0x35')][_0x8737('0x39')]));_0x40dabc['attributes']=_0x40dabc[_0x8737('0x38')][_0x8737('0x46')]?_0x40dabc[_0x8737('0x38')]:_0x5124e8[_0x8737('0x33')];if(_0x2532cd[_0x8737('0x35')]['includeAll']){_0x40dabc[_0x8737('0x43')]=[{'all':!![]}];}_0x40dabc=_[_0x8737('0x40')]({},_0x40dabc,_0x2532cd[_0x8737('0x47')]);return db[_0x8737('0x2f')]['find'](_0x40dabc)[_0x8737('0x28')](handleEntityNotFound(_0x562ef8,null))[_0x8737('0x28')](respondWithResult(_0x562ef8,null))[_0x8737('0x48')](handleError(_0x562ef8,null));};exports[_0x8737('0x49')]=function(_0x22ca4b,_0x3031ba){return db['SquareProject']['create'](_0x22ca4b[_0x8737('0x4a')],{})[_0x8737('0x28')](function(_0x49c8fb){var _0x5d42cf=_0x22ca4b[_0x8737('0x4b')][_0x8737('0x4c')]({'plain':!![]});if(!_0x5d42cf)throw new Error(_0x8737('0x4d'));if(_0x5d42cf[_0x8737('0x4e')]===_0x8737('0x4b')){var _0x4033fa=_0x49c8fb[_0x8737('0x4c')]({'plain':!![]});var _0x4968f1=_0x8737('0x2a');return db[_0x8737('0x4f')][_0x8737('0x50')]({'where':{'name':_0x4968f1,'userProfileId':_0x5d42cf[_0x8737('0x51')]},'raw':!![]})[_0x8737('0x28')](function(_0x2f229f){if(_0x2f229f&&_0x2f229f[_0x8737('0x52')]===0x0){return db[_0x8737('0x2b')][_0x8737('0x49')]({'name':_0x4033fa[_0x8737('0x34')],'resourceId':_0x4033fa['id'],'type':_0x2f229f['name'],'sectionId':_0x2f229f['id']},{})[_0x8737('0x28')](function(){return _0x49c8fb;});}else{return _0x49c8fb;}})[_0x8737('0x48')](function(_0x163ebf){logger[_0x8737('0x2c')](_0x8737('0x53'),_0x163ebf);throw _0x163ebf;});}return _0x49c8fb;})['then'](respondWithResult(_0x3031ba,0xc9))['catch'](handleError(_0x3031ba,null));};exports[_0x8737('0x27')]=function(_0x29de0d,_0x87457d){if(_0x29de0d[_0x8737('0x4a')]['id']){delete _0x29de0d[_0x8737('0x4a')]['id'];}return db[_0x8737('0x2f')]['find']({'where':{'id':_0x29de0d[_0x8737('0x45')]['id']}})[_0x8737('0x28')](handleEntityNotFound(_0x87457d,null))['then'](saveUpdates(_0x29de0d[_0x8737('0x4a')],null))[_0x8737('0x28')](respondWithResult(_0x87457d,null))[_0x8737('0x48')](handleError(_0x87457d,null));};exports[_0x8737('0x29')]=function(_0xf45929,_0x1e4463){return db[_0x8737('0x2f')][_0x8737('0x50')]({'where':{'id':_0xf45929[_0x8737('0x45')]['id']}})[_0x8737('0x28')](handleEntityNotFound(_0x1e4463,null))[_0x8737('0x28')](removeEntity(_0x1e4463,null))[_0x8737('0x48')](handleError(_0x1e4463,null));};exports[_0x8737('0x54')]=function(_0x4bb04c,_0x4457cc,_0x481bd0){return db[_0x8737('0x2f')][_0x8737('0x50')]({'where':{'id':_0x4bb04c[_0x8737('0x45')]['id']}})[_0x8737('0x28')](handleEntityNotFound(_0x4457cc,null))[_0x8737('0x28')](function(_0x1aa65e){if(_0x1aa65e){return _0x1aa65e['addUsers'](_0x4bb04c[_0x8737('0x4a')][_0x8737('0x55')],_[_0x8737('0x56')](_0x4bb04c['body'],[_0x8737('0x55'),'id'])||{});}})[_0x8737('0x28')](respondWithResult(_0x4457cc,null))[_0x8737('0x48')](handleError(_0x4457cc,null));};exports['removeUsers']=function(_0x133e9b,_0x1cb311,_0x3528c3){return db[_0x8737('0x2f')][_0x8737('0x50')]({'where':{'id':_0x133e9b[_0x8737('0x45')]['id']}})[_0x8737('0x28')](handleEntityNotFound(_0x1cb311,null))[_0x8737('0x28')](function(_0x46a7d2){if(_0x46a7d2){return _0x46a7d2[_0x8737('0x57')](_0x133e9b['query'][_0x8737('0x55')])['then'](function(){if(_[_0x8737('0x58')](_0x133e9b[_0x8737('0x35')][_0x8737('0x55')])){for(var _0x5e3722=0x0;_0x5e3722<_0x133e9b['query']['ids']['length'];_0x5e3722+=0x1){socket['emit']('userSquareProject:remove',{'UserId':Number(_0x133e9b[_0x8737('0x35')]['ids'][_0x5e3722]),'SquareProjectId':Number(_0x133e9b[_0x8737('0x45')]['id'])});}}else{socket['emit'](_0x8737('0x59'),{'UserId':Number(_0x133e9b[_0x8737('0x35')][_0x8737('0x55')]),'SquareProjectId':Number(_0x133e9b['params']['id'])});}});}})['then'](respondWithStatusCode(_0x1cb311,null))[_0x8737('0x48')](handleError(_0x1cb311,null));};exports['getUsers']=function(_0x1ab57f,_0x2a8b10,_0x554aa8){var _0x285dca={};var _0xb2652a={};var _0x4d520a;var _0x57fa8a;return db[_0x8737('0x2f')]['findOne']({'where':{'id':_0x1ab57f['params']['id']}})[_0x8737('0x28')](handleEntityNotFound(_0x2a8b10,null))[_0x8737('0x28')](function(_0x12a7e8){if(_0x12a7e8){_0x4d520a=_0x12a7e8;_0xb2652a[_0x8737('0x33')]=_[_0x8737('0x36')](db[_0x8737('0x5a')][_0x8737('0x30')]);_0xb2652a['query']=_[_0x8737('0x36')](_0x1ab57f[_0x8737('0x35')]);_0xb2652a['filters']=_[_0x8737('0x37')](_0xb2652a[_0x8737('0x33')],_0xb2652a['query']);_0x285dca[_0x8737('0x38')]=_['intersection'](_0xb2652a[_0x8737('0x33')],qs[_0x8737('0x39')](_0x1ab57f['query'][_0x8737('0x39')]));_0x285dca[_0x8737('0x38')]=_0x285dca[_0x8737('0x38')][_0x8737('0x46')]?_0x285dca[_0x8737('0x38')]:_0xb2652a[_0x8737('0x33')];_0x285dca['order']=qs[_0x8737('0x3c')](_0x1ab57f[_0x8737('0x35')][_0x8737('0x3c')]);_0x285dca['where']=qs[_0x8737('0x3e')](_[_0x8737('0x5b')](_0x1ab57f[_0x8737('0x35')],_0xb2652a['filters']));if(_0x1ab57f[_0x8737('0x35')][_0x8737('0x3f')]){_0x285dca[_0x8737('0x3d')]=_[_0x8737('0x40')](_0x285dca[_0x8737('0x3d')],{'$or':_[_0x8737('0x2e')](_0x285dca[_0x8737('0x38')],function(_0x206c2c){var _0x1e9b42={};_0x1e9b42[_0x206c2c]={'$like':'%'+_0x1ab57f[_0x8737('0x35')]['filter']+'%'};return _0x1e9b42;})});}_0x285dca=_[_0x8737('0x40')]({},_0x285dca,_0x1ab57f['options']);return _0x4d520a[_0x8737('0x5c')](_0x285dca);}})[_0x8737('0x28')](function(_0x2a5842){if(_0x2a5842){_0x57fa8a=_0x2a5842[_0x8737('0x46')];if(!_0x1ab57f[_0x8737('0x35')][_0x8737('0x3a')]('nolimit')){_0x285dca[_0x8737('0x20')]=qs[_0x8737('0x20')](_0x1ab57f[_0x8737('0x35')][_0x8737('0x20')]);_0x285dca[_0x8737('0x1f')]=qs[_0x8737('0x1f')](_0x1ab57f[_0x8737('0x35')][_0x8737('0x1f')]);}return _0x4d520a['getUsers'](_0x285dca);}})[_0x8737('0x28')](function(_0x5b1e0b){if(_0x5b1e0b){return _0x5b1e0b?{'count':_0x57fa8a,'rows':_0x5b1e0b}:null;}})[_0x8737('0x28')](respondWithResult(_0x2a8b10,null))[_0x8737('0x48')](handleError(_0x2a8b10,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5ebb=['events','SquareProject','setMaxListeners','save','update','remove','emit','hasOwnProperty','hook','exports'];(function(_0x4d9825,_0x5abdbc){var _0x204124=function(_0x2b6948){while(--_0x2b6948){_0x4d9825['push'](_0x4d9825['shift']());}};_0x204124(++_0x5abdbc);}(_0x5ebb,0x140));var _0xb5eb=function(_0x264de4,_0x41f555){_0x264de4=_0x264de4-0x0;var _0x4e004e=_0x5ebb[_0x264de4];return _0x4e004e;};'use strict';var EventEmitter=require(_0xb5eb('0x0'));var SquareProject=require('../../mysqldb')['db'][_0xb5eb('0x1')];var SquareProjectEvents=new EventEmitter();SquareProjectEvents[_0xb5eb('0x2')](0x0);var events={'afterCreate':_0xb5eb('0x3'),'afterUpdate':_0xb5eb('0x4'),'afterDestroy':_0xb5eb('0x5')};function emitEvent(_0x1629c1){return function(_0x3a3c6a,_0x39be1d,_0x3f21ed){SquareProjectEvents[_0xb5eb('0x6')](_0x1629c1+':'+_0x3a3c6a['id'],_0x3a3c6a);SquareProjectEvents[_0xb5eb('0x6')](_0x1629c1,_0x3a3c6a);_0x3f21ed(null);};}for(var e in events){if(events[_0xb5eb('0x7')](e)){var event=events[e];SquareProject[_0xb5eb('0x8')](e,emitEvent(event));}}module[_0xb5eb('0x9')]=SquareProjectEvents;
\ No newline at end of file
+var _0xd675=['update','emit','hasOwnProperty','hook','exports','events','../../mysqldb','setMaxListeners'];(function(_0x32e325,_0x3bd34c){var _0x448774=function(_0x33314c){while(--_0x33314c){_0x32e325['push'](_0x32e325['shift']());}};_0x448774(++_0x3bd34c);}(_0xd675,0x1d5));var _0x5d67=function(_0x174a72,_0x46034c){_0x174a72=_0x174a72-0x0;var _0x32cecd=_0xd675[_0x174a72];return _0x32cecd;};'use strict';var EventEmitter=require(_0x5d67('0x0'));var SquareProject=require(_0x5d67('0x1'))['db']['SquareProject'];var SquareProjectEvents=new EventEmitter();SquareProjectEvents[_0x5d67('0x2')](0x0);var events={'afterCreate':'save','afterUpdate':_0x5d67('0x3'),'afterDestroy':'remove'};function emitEvent(_0x3e28a4){return function(_0x337a2e,_0x126d8d,_0x326856){SquareProjectEvents[_0x5d67('0x4')](_0x3e28a4+':'+_0x337a2e['id'],_0x337a2e);SquareProjectEvents[_0x5d67('0x4')](_0x3e28a4,_0x337a2e);_0x326856(null);};}for(var e in events){if(events[_0x5d67('0x5')](e)){var event=events[e];SquareProject[_0x5d67('0x6')](e,emitEvent(event));}}module[_0x5d67('0x7')]=SquareProjectEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb3ab=['../../config/logger','api','moment','rimraf','../../config/environment','exports','define','SquareProject','changed','savedAt','YYYY-MM-DD\x20HH:mm:ss','production','format','lodash','util'];(function(_0x31929f,_0x16d825){var _0xb9aba8=function(_0x430f0f){while(--_0x430f0f){_0x31929f['push'](_0x31929f['shift']());}};_0xb9aba8(++_0x16d825);}(_0xb3ab,0x166));var _0xbb3a=function(_0x46a38b,_0x16ffb5){_0x46a38b=_0x46a38b-0x0;var _0x346e75=_0xb3ab[_0x46a38b];return _0x346e75;};'use strict';var _=require(_0xbb3a('0x0'));var util=require(_0xbb3a('0x1'));var logger=require(_0xbb3a('0x2'))(_0xbb3a('0x3'));var moment=require(_0xbb3a('0x4'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0xbb3a('0x5'));var config=require(_0xbb3a('0x6'));var attributes=require('./squareProject.attributes');module[_0xbb3a('0x7')]=function(_0x304a88,_0x4b042d){return _0x304a88[_0xbb3a('0x8')](_0xbb3a('0x9'),attributes,{'tableName':'square_projects','paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeUpdate':function(_0x50968a,_0x1bd84f,_0x22325d){if(_0x50968a[_0xbb3a('0xa')]('preproduction')){_0x50968a[_0xbb3a('0xb')]=moment()['format'](_0xbb3a('0xc'));}if(_0x50968a['changed'](_0xbb3a('0xd'))){_0x50968a['publishedAt']=moment()[_0xbb3a('0xe')](_0xbb3a('0xc'));}_0x22325d(null,_0x50968a);}}});};
\ No newline at end of file
+var _0x967c=['SquareProject','square_projects','changed','preproduction','savedAt','YYYY-MM-DD\x20HH:mm:ss','production','publishedAt','format','lodash','util','../../config/logger','api','moment','request-promise','path','rimraf','./squareProject.attributes','exports'];(function(_0x3648f8,_0x2f0d50){var _0x3f3c59=function(_0x5a1531){while(--_0x5a1531){_0x3648f8['push'](_0x3648f8['shift']());}};_0x3f3c59(++_0x2f0d50);}(_0x967c,0x185));var _0xc967=function(_0x158b26,_0x1e9510){_0x158b26=_0x158b26-0x0;var _0x257a95=_0x967c[_0x158b26];return _0x257a95;};'use strict';var _=require(_0xc967('0x0'));var util=require(_0xc967('0x1'));var logger=require(_0xc967('0x2'))(_0xc967('0x3'));var moment=require(_0xc967('0x4'));var BPromise=require('bluebird');var rp=require(_0xc967('0x5'));var fs=require('fs');var path=require(_0xc967('0x6'));var rimraf=require(_0xc967('0x7'));var config=require('../../config/environment');var attributes=require(_0xc967('0x8'));module[_0xc967('0x9')]=function(_0x1054c3,_0x591aee){return _0x1054c3['define'](_0xc967('0xa'),attributes,{'tableName':_0xc967('0xb'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeUpdate':function(_0x3084b2,_0x3ae9fd,_0x44a2ba){if(_0x3084b2[_0xc967('0xc')](_0xc967('0xd'))){_0x3084b2[_0xc967('0xe')]=moment()['format'](_0xc967('0xf'));}if(_0x3084b2['changed'](_0xc967('0x10'))){_0x3084b2[_0xc967('0x11')]=moment()[_0xc967('0x12')](_0xc967('0xf'));}_0x44a2ba(null,_0x3084b2);}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7786=['ShowSquareProject','options','raw','attributes','include','map','model','debug','lodash','util','bluebird','randomstring','../../mysqldb','../../config/utils','rpc','../../config/environment','client','http','redis','defaults','localhost','socket.io-emitter','./squareProject.socket','register','request','info','SquareProject,\x20%s,\x20%s','request\x20sent','SquareProject,\x20%s,\x20%s,\x20%s','stringify','error','message','catch'];(function(_0x31827b,_0x4b721e){var _0x23bfe3=function(_0x3f895b){while(--_0x3f895b){_0x31827b['push'](_0x31827b['shift']());}};_0x23bfe3(++_0x4b721e);}(_0x7786,0x8c));var _0x6778=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x7786[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0x6778('0x0'));var util=require(_0x6778('0x1'));var moment=require('moment');var BPromise=require(_0x6778('0x2'));var rs=require(_0x6778('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x6778('0x4'))['db'];var utils=require(_0x6778('0x5'));var logger=require('../../config/logger')(_0x6778('0x6'));var config=require(_0x6778('0x7'));var jayson=require('jayson/promise');var client=jayson[_0x6778('0x8')][_0x6778('0x9')]({'port':0x232a});config[_0x6778('0xa')]=_[_0x6778('0xb')](config['redis'],{'host':_0x6778('0xc'),'port':0x18eb});var socket=require(_0x6778('0xd'))(new Redis(config[_0x6778('0xa')]));require(_0x6778('0xe'))[_0x6778('0xf')](socket);function respondWithRpcPromise(_0x4aa5cc,_0x890514,_0x41b998){return new BPromise(function(_0x4ea462,_0x4716ee){return client[_0x6778('0x10')](_0x4aa5cc,_0x41b998)['then'](function(_0x4780bc){logger[_0x6778('0x11')](_0x6778('0x12'),_0x890514,_0x6778('0x13'));logger['debug'](_0x6778('0x14'),_0x890514,_0x6778('0x13'),JSON[_0x6778('0x15')](_0x4780bc));if(_0x4780bc[_0x6778('0x16')]){if(_0x4780bc[_0x6778('0x16')]['code']===0x1f4){logger[_0x6778('0x16')](_0x6778('0x12'),_0x890514,_0x4780bc['error'][_0x6778('0x17')]);return _0x4716ee(_0x4780bc[_0x6778('0x16')][_0x6778('0x17')]);}logger[_0x6778('0x16')](_0x6778('0x12'),_0x890514,_0x4780bc['error'][_0x6778('0x17')]);return _0x4ea462(_0x4780bc[_0x6778('0x16')][_0x6778('0x17')]);}else{logger[_0x6778('0x11')](_0x6778('0x12'),_0x890514,_0x6778('0x13'));_0x4ea462(_0x4780bc['result']['message']);}})[_0x6778('0x18')](function(_0x4a06dc){logger[_0x6778('0x16')](_0x6778('0x12'),_0x890514,_0x4a06dc);_0x4716ee(_0x4a06dc);});});}exports[_0x6778('0x19')]=function(_0x41bedb){var _0xb4970b=this;return new Promise(function(_0x46a2b9,_0x1a298e){return db['SquareProject']['find']({'raw':_0x41bedb[_0x6778('0x1a')]?_0x41bedb[_0x6778('0x1a')][_0x6778('0x1b')]===undefined?!![]:![]:!![],'where':_0x41bedb[_0x6778('0x1a')]?_0x41bedb['options']['where']||null:null,'attributes':_0x41bedb[_0x6778('0x1a')]?_0x41bedb['options'][_0x6778('0x1c')]||null:null,'include':_0x41bedb[_0x6778('0x1a')]?_0x41bedb[_0x6778('0x1a')][_0x6778('0x1d')]?_[_0x6778('0x1e')](_0x41bedb[_0x6778('0x1a')]['include'],function(_0x3ff270){return{'model':db[_0x3ff270[_0x6778('0x1f')]],'as':_0x3ff270['as'],'attributes':_0x3ff270['attributes'],'include':_0x3ff270[_0x6778('0x1d')]?_[_0x6778('0x1e')](_0x3ff270['include'],function(_0x2ef50c){return{'model':db[_0x2ef50c[_0x6778('0x1f')]],'as':_0x2ef50c['as'],'attributes':_0x2ef50c[_0x6778('0x1c')],'include':_0x2ef50c[_0x6778('0x1d')]?_['map'](_0x2ef50c[_0x6778('0x1d')],function(_0x3a344b){return{'model':db[_0x3a344b[_0x6778('0x1f')]],'as':_0x3a344b['as'],'attributes':_0x3a344b[_0x6778('0x1c')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x3b6157){logger[_0x6778('0x11')](_0x6778('0x19'),_0x41bedb);logger[_0x6778('0x20')]('ShowSquareProject',_0x41bedb,JSON['stringify'](_0x3b6157));_0x46a2b9(_0x3b6157);})[_0x6778('0x18')](function(_0x2d1c20){logger['error']('ShowSquareProject',_0x2d1c20[_0x6778('0x17')],_0x41bedb);_0x1a298e(_0xb4970b[_0x6778('0x16')](0x1f4,_0x2d1c20[_0x6778('0x17')]));});});};
\ No newline at end of file
+var _0x3f7c=['util','moment','randomstring','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','./squareProject.socket','register','request','then','info','SquareProject,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','catch','find','options','raw','where','attributes','include','model','map','ShowSquareProject','lodash'];(function(_0x1db831,_0x42b7b5){var _0x39ba56=function(_0x2c2dd3){while(--_0x2c2dd3){_0x1db831['push'](_0x1db831['shift']());}};_0x39ba56(++_0x42b7b5);}(_0x3f7c,0x1e0));var _0xc3f7=function(_0x3890b1,_0x1bd704){_0x3890b1=_0x3890b1-0x0;var _0x4e45bd=_0x3f7c[_0x3890b1];return _0x4e45bd;};'use strict';var _=require(_0xc3f7('0x0'));var util=require(_0xc3f7('0x1'));var moment=require(_0xc3f7('0x2'));var BPromise=require('bluebird');var rs=require(_0xc3f7('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xc3f7('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0xc3f7('0x5'))(_0xc3f7('0x6'));var config=require(_0xc3f7('0x7'));var jayson=require(_0xc3f7('0x8'));var client=jayson[_0xc3f7('0x9')][_0xc3f7('0xa')]({'port':0x232a});config[_0xc3f7('0xb')]=_[_0xc3f7('0xc')](config[_0xc3f7('0xb')],{'host':_0xc3f7('0xd'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xc3f7('0xb')]));require(_0xc3f7('0xe'))[_0xc3f7('0xf')](socket);function respondWithRpcPromise(_0x1227cc,_0x371452,_0x4fad9f){return new BPromise(function(_0x56e3a2,_0x253b99){return client[_0xc3f7('0x10')](_0x1227cc,_0x4fad9f)[_0xc3f7('0x11')](function(_0x5054ce){logger[_0xc3f7('0x12')](_0xc3f7('0x13'),_0x371452,_0xc3f7('0x14'));logger[_0xc3f7('0x15')]('SquareProject,\x20%s,\x20%s,\x20%s',_0x371452,_0xc3f7('0x14'),JSON[_0xc3f7('0x16')](_0x5054ce));if(_0x5054ce[_0xc3f7('0x17')]){if(_0x5054ce[_0xc3f7('0x17')][_0xc3f7('0x18')]===0x1f4){logger[_0xc3f7('0x17')](_0xc3f7('0x13'),_0x371452,_0x5054ce[_0xc3f7('0x17')]['message']);return _0x253b99(_0x5054ce[_0xc3f7('0x17')][_0xc3f7('0x19')]);}logger['error'](_0xc3f7('0x13'),_0x371452,_0x5054ce[_0xc3f7('0x17')][_0xc3f7('0x19')]);return _0x56e3a2(_0x5054ce['error'][_0xc3f7('0x19')]);}else{logger[_0xc3f7('0x12')](_0xc3f7('0x13'),_0x371452,_0xc3f7('0x14'));_0x56e3a2(_0x5054ce[_0xc3f7('0x1a')][_0xc3f7('0x19')]);}})[_0xc3f7('0x1b')](function(_0x735378){logger[_0xc3f7('0x17')]('SquareProject,\x20%s,\x20%s',_0x371452,_0x735378);_0x253b99(_0x735378);});});}exports['ShowSquareProject']=function(_0x3e16bc){var _0x5df630=this;return new Promise(function(_0x5c70d1,_0x18933a){return db['SquareProject'][_0xc3f7('0x1c')]({'raw':_0x3e16bc['options']?_0x3e16bc[_0xc3f7('0x1d')][_0xc3f7('0x1e')]===undefined?!![]:![]:!![],'where':_0x3e16bc[_0xc3f7('0x1d')]?_0x3e16bc[_0xc3f7('0x1d')][_0xc3f7('0x1f')]||null:null,'attributes':_0x3e16bc[_0xc3f7('0x1d')]?_0x3e16bc[_0xc3f7('0x1d')][_0xc3f7('0x20')]||null:null,'include':_0x3e16bc[_0xc3f7('0x1d')]?_0x3e16bc[_0xc3f7('0x1d')][_0xc3f7('0x21')]?_['map'](_0x3e16bc[_0xc3f7('0x1d')]['include'],function(_0x576c44){return{'model':db[_0x576c44[_0xc3f7('0x22')]],'as':_0x576c44['as'],'attributes':_0x576c44[_0xc3f7('0x20')],'include':_0x576c44['include']?_[_0xc3f7('0x23')](_0x576c44[_0xc3f7('0x21')],function(_0x26aa91){return{'model':db[_0x26aa91['model']],'as':_0x26aa91['as'],'attributes':_0x26aa91[_0xc3f7('0x20')],'include':_0x26aa91[_0xc3f7('0x21')]?_[_0xc3f7('0x23')](_0x26aa91[_0xc3f7('0x21')],function(_0x2eaf86){return{'model':db[_0x2eaf86[_0xc3f7('0x22')]],'as':_0x2eaf86['as'],'attributes':_0x2eaf86[_0xc3f7('0x20')]};}):[]};}):[]};}):[]:[]})[_0xc3f7('0x11')](function(_0x529934){logger[_0xc3f7('0x12')](_0xc3f7('0x24'),_0x3e16bc);logger[_0xc3f7('0x15')]('ShowSquareProject',_0x3e16bc,JSON['stringify'](_0x529934));_0x5c70d1(_0x529934);})[_0xc3f7('0x1b')](function(_0x4b7d55){logger['error'](_0xc3f7('0x24'),_0x4b7d55[_0xc3f7('0x19')],_0x3e16bc);_0x18933a(_0x5df630[_0xc3f7('0x17')](0x1f4,_0x4b7d55['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdaa4=['remove','update','emit','removeListener','register','length','squareProject:','save'];(function(_0x28ebe1,_0x1dc95c){var _0x2f0e23=function(_0x602003){while(--_0x602003){_0x28ebe1['push'](_0x28ebe1['shift']());}};_0x2f0e23(++_0x1dc95c);}(_0xdaa4,0x147));var _0x4daa=function(_0x2e4eea,_0x5db9bf){_0x2e4eea=_0x2e4eea-0x0;var _0x3e5788=_0xdaa4[_0x2e4eea];return _0x3e5788;};'use strict';var SquareProjectEvents=require('./squareProject.events');var events=[_0x4daa('0x0'),_0x4daa('0x1'),_0x4daa('0x2')];function createListener(_0x295fc1,_0xc544a2){return function(_0x10e2a3){_0xc544a2[_0x4daa('0x3')](_0x295fc1,_0x10e2a3);};}function removeListener(_0x202536,_0x536e9a){return function(){SquareProjectEvents[_0x4daa('0x4')](_0x202536,_0x536e9a);};}exports[_0x4daa('0x5')]=function(_0x5ab046){for(var _0x307258=0x0,_0x3b1800=events[_0x4daa('0x6')];_0x307258<_0x3b1800;_0x307258++){var _0x38f6ad=events[_0x307258];var _0x289681=createListener(_0x4daa('0x7')+_0x38f6ad,_0x5ab046);SquareProjectEvents['on'](_0x38f6ad,_0x289681);}};
\ No newline at end of file
+var _0xe830=['length','./squareProject.events','save','remove','removeListener','register'];(function(_0x1fdb40,_0x51351c){var _0x281f93=function(_0x35eebe){while(--_0x35eebe){_0x1fdb40['push'](_0x1fdb40['shift']());}};_0x281f93(++_0x51351c);}(_0xe830,0xf1));var _0x0e83=function(_0x28c05b,_0x330b63){_0x28c05b=_0x28c05b-0x0;var _0x10ecb3=_0xe830[_0x28c05b];return _0x10ecb3;};'use strict';var SquareProjectEvents=require(_0x0e83('0x0'));var events=[_0x0e83('0x1'),_0x0e83('0x2'),'update'];function createListener(_0x27718b,_0x4e55eb){return function(_0x8ea23){_0x4e55eb['emit'](_0x27718b,_0x8ea23);};}function removeListener(_0xc6c7d6,_0x3140c6){return function(){SquareProjectEvents[_0x0e83('0x3')](_0xc6c7d6,_0x3140c6);};}exports[_0x0e83('0x4')]=function(_0x372b21){for(var _0x89210b=0x0,_0x6cfb7d=events[_0x0e83('0x5')];_0x89210b<_0x6cfb7d;_0x89210b++){var _0x1797d3=events[_0x89210b];var _0xd53956=createListener('squareProject:'+_0x1797d3,_0x372b21);SquareProjectEvents['on'](_0x1797d3,_0xd53956);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1cb9=['update','delete','destroy','exports','multer','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','./squareRecording.controller','get','isAuthenticated','index','/:id','show','/:id/download','download','post','create','put'];(function(_0x552a86,_0x1da141){var _0x3e1e0e=function(_0x3b0c47){while(--_0x3b0c47){_0x552a86['push'](_0x552a86['shift']());}};_0x3e1e0e(++_0x1da141);}(_0x1cb9,0x14e));var _0x91cb=function(_0x5a15f1,_0x2688f7){_0x5a15f1=_0x5a15f1-0x0;var _0x3c18e6=_0x1cb9[_0x5a15f1];return _0x3c18e6;};'use strict';var multer=require(_0x91cb('0x0'));var util=require('util');var path=require(_0x91cb('0x1'));var timeout=require(_0x91cb('0x2'));var express=require(_0x91cb('0x3'));var router=express[_0x91cb('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0x91cb('0x5'));var interaction=require(_0x91cb('0x6'));var config=require('../../config/environment');var controller=require(_0x91cb('0x7'));router[_0x91cb('0x8')]('/',auth[_0x91cb('0x9')](),controller[_0x91cb('0xa')]);router[_0x91cb('0x8')](_0x91cb('0xb'),auth['isAuthenticated'](),controller[_0x91cb('0xc')]);router['get'](_0x91cb('0xd'),auth['isAuthenticated'](),controller[_0x91cb('0xe')]);router[_0x91cb('0xf')]('/',auth[_0x91cb('0x9')](),controller[_0x91cb('0x10')]);router[_0x91cb('0x11')](_0x91cb('0xb'),auth[_0x91cb('0x9')](),controller[_0x91cb('0x12')]);router[_0x91cb('0x13')](_0x91cb('0xb'),auth['isAuthenticated'](),controller[_0x91cb('0x14')]);module[_0x91cb('0x15')]=router;
\ No newline at end of file
+var _0x0295=['isAuthenticated','index','post','create','put','/:id','update','delete','destroy','exports','multer','connect-timeout','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./squareRecording.controller','get'];(function(_0x476bf4,_0x2a3755){var _0x788ffe=function(_0x13fa11){while(--_0x13fa11){_0x476bf4['push'](_0x476bf4['shift']());}};_0x788ffe(++_0x2a3755);}(_0x0295,0x1f0));var _0x5029=function(_0x5f3562,_0x212f41){_0x5f3562=_0x5f3562-0x0;var _0x1b39b4=_0x0295[_0x5f3562];return _0x1b39b4;};'use strict';var multer=require(_0x5029('0x0'));var util=require('util');var path=require('path');var timeout=require(_0x5029('0x1'));var express=require('express');var router=express['Router']();var fs_extra=require(_0x5029('0x2'));var auth=require(_0x5029('0x3'));var interaction=require(_0x5029('0x4'));var config=require(_0x5029('0x5'));var controller=require(_0x5029('0x6'));router[_0x5029('0x7')]('/',auth[_0x5029('0x8')](),controller[_0x5029('0x9')]);router[_0x5029('0x7')]('/:id',auth['isAuthenticated'](),controller['show']);router[_0x5029('0x7')]('/:id/download',auth[_0x5029('0x8')](),controller['download']);router[_0x5029('0xa')]('/',auth['isAuthenticated'](),controller[_0x5029('0xb')]);router[_0x5029('0xc')](_0x5029('0xd'),auth['isAuthenticated'](),controller[_0x5029('0xe')]);router[_0x5029('0xf')](_0x5029('0xd'),auth['isAuthenticated'](),controller[_0x5029('0x10')]);module[_0x5029('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdbf5=['lastIndexOf','exports','STRING','VIRTUAL','savePath'];(function(_0x1fad26,_0x5ed1c8){var _0x202613=function(_0x1a7a76){while(--_0x1a7a76){_0x1fad26['push'](_0x1fad26['shift']());}};_0x202613(++_0x5ed1c8);}(_0xdbf5,0x18c));var _0x5dbf=function(_0x32a17d,_0x5cee6e){_0x32a17d=_0x32a17d-0x0;var _0x157097=_0xdbf5[_0x32a17d];return _0x157097;};'use strict';var Sequelize=require('sequelize');module[_0x5dbf('0x0')]={'uniqueid':{'type':Sequelize['STRING']},'callerid':{'type':Sequelize['STRING']},'calleridname':{'type':Sequelize[_0x5dbf('0x1')]},'context':{'type':Sequelize[_0x5dbf('0x1')]},'extension':{'type':Sequelize[_0x5dbf('0x1')]},'priority':{'type':Sequelize[_0x5dbf('0x1')]},'accountcode':{'type':Sequelize[_0x5dbf('0x1')]},'dnid':{'type':Sequelize[_0x5dbf('0x1')]},'projectName':{'type':Sequelize[_0x5dbf('0x1')]},'saveName':{'type':Sequelize[_0x5dbf('0x1')]},'filename':{'type':Sequelize[_0x5dbf('0x1')]},'savePath':{'type':Sequelize[_0x5dbf('0x1')]},'format':{'type':Sequelize[_0x5dbf('0x2')],'get':function(){var _0x88128e='';var _0x93e657=this['getDataValue'](_0x5dbf('0x3'));if(_0x93e657){_0x88128e=_0x93e657['substring'](_0x93e657[_0x5dbf('0x4')]('.'));}return _0x88128e;}}};
\ No newline at end of file
+var _0xed1f=['lastIndexOf','sequelize','exports','STRING','VIRTUAL','getDataValue','substring'];(function(_0x1998bb,_0x1f1da1){var _0x4ae4c9=function(_0x4741e8){while(--_0x4741e8){_0x1998bb['push'](_0x1998bb['shift']());}};_0x4ae4c9(++_0x1f1da1);}(_0xed1f,0x6a));var _0xfed1=function(_0x3fba9f,_0x3b7b9b){_0x3fba9f=_0x3fba9f-0x0;var _0x192cf1=_0xed1f[_0x3fba9f];return _0x192cf1;};'use strict';var Sequelize=require(_0xfed1('0x0'));module[_0xfed1('0x1')]={'uniqueid':{'type':Sequelize[_0xfed1('0x2')]},'callerid':{'type':Sequelize[_0xfed1('0x2')]},'calleridname':{'type':Sequelize[_0xfed1('0x2')]},'context':{'type':Sequelize[_0xfed1('0x2')]},'extension':{'type':Sequelize[_0xfed1('0x2')]},'priority':{'type':Sequelize[_0xfed1('0x2')]},'accountcode':{'type':Sequelize[_0xfed1('0x2')]},'dnid':{'type':Sequelize[_0xfed1('0x2')]},'projectName':{'type':Sequelize[_0xfed1('0x2')]},'saveName':{'type':Sequelize[_0xfed1('0x2')]},'filename':{'type':Sequelize[_0xfed1('0x2')]},'savePath':{'type':Sequelize[_0xfed1('0x2')]},'format':{'type':Sequelize[_0xfed1('0x3')],'get':function(){var _0x612b38='';var _0x2a6082=this[_0xfed1('0x4')]('savePath');if(_0x2a6082){_0x612b38=_0x2a6082[_0xfed1('0x5')](_0x2a6082[_0xfed1('0x6')]('.'));}return _0x612b38;}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb513=['apply','reject','save','update','then','destroy','end','error','stack','name','send','index','SquareRecording','rawAttributes','fieldName','key','model','map','keys','query','filters','intersection','fields','attributes','length','nolimit','order','sort','where','pick','filter','includeAll','include','rows','show','params','options','find','catch','body','download','../../components/encryptor','type','uniqueid','savePath','filename','format','decryptFile','existsSync','Sequelize','SquareRecording\x20not\x20found','extname','unlink','info','cancellazione\x20fisica\x20documento\x20%s','isNil','File:\x20\x22','\x22\x20trovato\x20eseguo\x20la\x20cancellazione','.cypher','unlinkSync','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','ejs','lodash','squel','crypto','jsforce','desk.js','to-csv','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','limit','count','set'];(function(_0x375099,_0x16e152){var _0x2f1d54=function(_0x37a778){while(--_0x37a778){_0x375099['push'](_0x375099['shift']());}};_0x2f1d54(++_0x16e152);}(_0xb513,0x150));var _0x3b51=function(_0x1d930e,_0x20d8b8){_0x1d930e=_0x1d930e-0x0;var _0x5bbd66=_0xb513[_0x1d930e];return _0x5bbd66;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x3b51('0x0'));var zipdir=require(_0x3b51('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x3b51('0x2'));var moment=require(_0x3b51('0x3'));var BPromise=require(_0x3b51('0x4'));var Mustache=require(_0x3b51('0x5'));var util=require(_0x3b51('0x6'));var path=require(_0x3b51('0x7'));var sox=require(_0x3b51('0x8'));var csv=require('to-csv');var ejs=require(_0x3b51('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x3b51('0xa'));var squel=require(_0x3b51('0xb'));var crypto=require(_0x3b51('0xc'));var jsforce=require(_0x3b51('0xd'));var deskjs=require(_0x3b51('0xe'));var toCsv=require(_0x3b51('0xf'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x3b51('0x10'));var qs=require(_0x3b51('0x11'));var as=require(_0x3b51('0x12'));var hardwareService=require(_0x3b51('0x13'));var logger=require(_0x3b51('0x14'))(_0x3b51('0x15'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x3b51('0x16'));var db=require(_0x3b51('0x17'))['db'];function respondWithStatusCode(_0x8bbc0c,_0x49a79b){_0x49a79b=_0x49a79b||0xcc;return function(_0xd45158){if(_0xd45158){return _0x8bbc0c[_0x3b51('0x18')](_0x49a79b);}return _0x8bbc0c[_0x3b51('0x19')](_0x49a79b)['end']();};}function respondWithResult(_0x2d86e1,_0x4256b2){_0x4256b2=_0x4256b2||0xc8;return function(_0x56d78c){if(_0x56d78c){return _0x2d86e1[_0x3b51('0x19')](_0x4256b2)[_0x3b51('0x1a')](_0x56d78c);}};}function respondWithFilteredResult(_0x2f9240,_0x4a4b6f){return function(_0x54cf04){if(_0x54cf04){var _0x5b8b3b=typeof _0x4a4b6f[_0x3b51('0x1b')]===_0x3b51('0x1c')&&typeof _0x4a4b6f[_0x3b51('0x1d')]===_0x3b51('0x1c');var _0x5402eb=_0x54cf04[_0x3b51('0x1e')];var _0xb8acb0=_0x5b8b3b?0x0:_0x4a4b6f[_0x3b51('0x1b')];var _0x450fa6=_0x5b8b3b?_0x54cf04['count']:_0x4a4b6f[_0x3b51('0x1b')]+_0x4a4b6f[_0x3b51('0x1d')];var _0x2c3e33;if(_0x450fa6>=_0x5402eb){_0x450fa6=_0x5402eb;_0x2c3e33=0xc8;}else{_0x2c3e33=0xce;}_0x2f9240[_0x3b51('0x19')](_0x2c3e33);return _0x2f9240[_0x3b51('0x1f')]('Content-Range',_0xb8acb0+'-'+_0x450fa6+'/'+_0x5402eb)[_0x3b51('0x1a')](_0x54cf04);}return null;};}function patchUpdates(_0x2918d1){return function(_0x84299d){try{jsonpatch[_0x3b51('0x20')](_0x84299d,_0x2918d1,!![]);}catch(_0x113d60){return BPromise[_0x3b51('0x21')](_0x113d60);}return _0x84299d[_0x3b51('0x22')]();};}function saveUpdates(_0x39e91b,_0x215a94){return function(_0x715110){if(_0x715110){return _0x715110[_0x3b51('0x23')](_0x39e91b)[_0x3b51('0x24')](function(_0x2ab1e2){return _0x2ab1e2;});}return null;};}function removeEntity(_0x3968f9,_0x258a5a){return function(_0x2737a0){if(_0x2737a0){return _0x2737a0[_0x3b51('0x25')]()[_0x3b51('0x24')](function(){_0x3968f9['status'](0xcc)[_0x3b51('0x26')]();});}};}function handleEntityNotFound(_0x3ad8db,_0x48ff6b){return function(_0x5264c8){if(!_0x5264c8){_0x3ad8db['sendStatus'](0x194);}return _0x5264c8;};}function handleError(_0x45e31d,_0x4a9ff3){_0x4a9ff3=_0x4a9ff3||0x1f4;return function(_0x3fbe36){logger[_0x3b51('0x27')](_0x3fbe36[_0x3b51('0x28')]);if(_0x3fbe36[_0x3b51('0x29')]){delete _0x3fbe36[_0x3b51('0x29')];}_0x45e31d[_0x3b51('0x19')](_0x4a9ff3)[_0x3b51('0x2a')](_0x3fbe36);};}exports[_0x3b51('0x2b')]=function(_0x36f801,_0x473a41){var _0x3778df={},_0x443843={},_0x346767={'count':0x0,'rows':[]};var _0x5b9c3d=_['map'](db[_0x3b51('0x2c')][_0x3b51('0x2d')],function(_0x546414){return{'name':_0x546414[_0x3b51('0x2e')],'type':_0x546414['type'][_0x3b51('0x2f')]};});_0x443843[_0x3b51('0x30')]=_[_0x3b51('0x31')](_0x5b9c3d,_0x3b51('0x29'));_0x443843['query']=_[_0x3b51('0x32')](_0x36f801[_0x3b51('0x33')]);_0x443843[_0x3b51('0x34')]=_[_0x3b51('0x35')](_0x443843[_0x3b51('0x30')],_0x443843[_0x3b51('0x33')]);_0x3778df['attributes']=_[_0x3b51('0x35')](_0x443843['model'],qs[_0x3b51('0x36')](_0x36f801[_0x3b51('0x33')]['fields']));_0x3778df[_0x3b51('0x37')]=_0x3778df['attributes'][_0x3b51('0x38')]?_0x3778df[_0x3b51('0x37')]:_0x443843['model'];if(!_0x36f801[_0x3b51('0x33')]['hasOwnProperty'](_0x3b51('0x39'))){_0x3778df[_0x3b51('0x1d')]=qs['limit'](_0x36f801[_0x3b51('0x33')]['limit']);_0x3778df[_0x3b51('0x1b')]=qs[_0x3b51('0x1b')](_0x36f801[_0x3b51('0x33')]['offset']);}_0x3778df[_0x3b51('0x3a')]=qs[_0x3b51('0x3b')](_0x36f801[_0x3b51('0x33')][_0x3b51('0x3b')]);_0x3778df[_0x3b51('0x3c')]=qs[_0x3b51('0x34')](_[_0x3b51('0x3d')](_0x36f801[_0x3b51('0x33')],_0x443843[_0x3b51('0x34')]),_0x5b9c3d);if(_0x36f801[_0x3b51('0x33')][_0x3b51('0x3e')]){_0x3778df[_0x3b51('0x3c')]=_['merge'](_0x3778df[_0x3b51('0x3c')],{'$or':_['map'](_0x5b9c3d,function(_0x580e37){if(_0x580e37['type']!=='VIRTUAL'){var _0x296b0f={};_0x296b0f[_0x580e37[_0x3b51('0x29')]]={'$like':'%'+_0x36f801['query']['filter']+'%'};return _0x296b0f;}})});}_0x3778df=_['merge']({},_0x3778df,_0x36f801['options']);var _0x165a7e={'where':_0x3778df[_0x3b51('0x3c')]};return db[_0x3b51('0x2c')][_0x3b51('0x1e')](_0x165a7e)[_0x3b51('0x24')](function(_0x51c70f){_0x346767['count']=_0x51c70f;if(_0x36f801[_0x3b51('0x33')][_0x3b51('0x3f')]){_0x3778df[_0x3b51('0x40')]=[{'all':!![]}];}return db['SquareRecording']['findAll'](_0x3778df);})[_0x3b51('0x24')](function(_0x2359f8){_0x346767[_0x3b51('0x41')]=_0x2359f8;return _0x346767;})[_0x3b51('0x24')](respondWithFilteredResult(_0x473a41,_0x3778df))['catch'](handleError(_0x473a41,null));};exports[_0x3b51('0x42')]=function(_0x306766,_0x59c4e7){var _0x10ce87={'raw':!![],'where':{'id':_0x306766[_0x3b51('0x43')]['id']}},_0x5ea6a1={};_0x5ea6a1[_0x3b51('0x30')]=_[_0x3b51('0x32')](db[_0x3b51('0x2c')][_0x3b51('0x2d')]);_0x5ea6a1['query']=_[_0x3b51('0x32')](_0x306766[_0x3b51('0x33')]);_0x5ea6a1[_0x3b51('0x34')]=_[_0x3b51('0x35')](_0x5ea6a1['model'],_0x5ea6a1[_0x3b51('0x33')]);_0x10ce87[_0x3b51('0x37')]=_[_0x3b51('0x35')](_0x5ea6a1[_0x3b51('0x30')],qs[_0x3b51('0x36')](_0x306766[_0x3b51('0x33')][_0x3b51('0x36')]));_0x10ce87[_0x3b51('0x37')]=_0x10ce87['attributes'][_0x3b51('0x38')]?_0x10ce87[_0x3b51('0x37')]:_0x5ea6a1['model'];if(_0x306766[_0x3b51('0x33')][_0x3b51('0x3f')]){_0x10ce87['include']=[{'all':!![]}];}_0x10ce87=_['merge']({},_0x10ce87,_0x306766[_0x3b51('0x44')]);return db[_0x3b51('0x2c')][_0x3b51('0x45')](_0x10ce87)[_0x3b51('0x24')](handleEntityNotFound(_0x59c4e7,null))[_0x3b51('0x24')](respondWithResult(_0x59c4e7,null))[_0x3b51('0x46')](handleError(_0x59c4e7,null));};exports['create']=function(_0x2ac9af,_0x40a4a0){return db[_0x3b51('0x2c')]['create'](_0x2ac9af['body'],{})[_0x3b51('0x24')](respondWithResult(_0x40a4a0,0xc9))[_0x3b51('0x46')](handleError(_0x40a4a0,null));};exports['update']=function(_0x1f67d9,_0x57ba4c){if(_0x1f67d9[_0x3b51('0x47')]['id']){delete _0x1f67d9[_0x3b51('0x47')]['id'];}return db[_0x3b51('0x2c')][_0x3b51('0x45')]({'where':{'id':_0x1f67d9[_0x3b51('0x43')]['id']}})['then'](handleEntityNotFound(_0x57ba4c,null))[_0x3b51('0x24')](saveUpdates(_0x1f67d9[_0x3b51('0x47')],null))['then'](respondWithResult(_0x57ba4c,null))[_0x3b51('0x46')](handleError(_0x57ba4c,null));};exports[_0x3b51('0x48')]=function(_0x1ee3b9,_0x24350c,_0x2e2bda){var _0x278364=require(_0x3b51('0x49'));var _0x150b8b=![];var _0x33c3a1={};if(_0x1ee3b9[_0x3b51('0x33')][_0x3b51('0x4a')]&&_0x1ee3b9[_0x3b51('0x33')][_0x3b51('0x4a')]==='uniqueid'){_0x33c3a1[_0x3b51('0x4b')]=_0x1ee3b9[_0x3b51('0x43')]['id'];}else{_0x33c3a1['id']=_0x1ee3b9[_0x3b51('0x43')]['id'];}return db[_0x3b51('0x2c')][_0x3b51('0x45')]({'where':_0x33c3a1,'attributes':['id',_0x3b51('0x4c'),_0x3b51('0x4d')],'raw':!![]})[_0x3b51('0x24')](handleEntityNotFound(_0x24350c,null))[_0x3b51('0x24')](function(_0x9eb35e){if(_0x9eb35e){var _0x4baa64=_0x9eb35e[_0x3b51('0x4c')];var _0x1c1775=util[_0x3b51('0x4e')]('%s.cypher',_0x4baa64);if(fs['existsSync'](_0x1c1775)){_0x150b8b=!![];return _0x278364[_0x3b51('0x4f')](_0x1c1775,_0x4baa64,config['secrets']['recording'])['then'](function(){return _0x9eb35e;});}return _0x9eb35e;}})[_0x3b51('0x24')](function(_0x1ba142){if(_0x1ba142){var _0x22da48=_0x1ba142[_0x3b51('0x4c')];if(!fs[_0x3b51('0x50')](_0x22da48)){throw new db[(_0x3b51('0x51'))]['ValidationError'](_0x3b51('0x52'));}if(_0x1ba142[_0x3b51('0x4d')]){return _0x24350c[_0x3b51('0x48')](_0x22da48,_0x1ba142[_0x3b51('0x4d')]+path[_0x3b51('0x53')](_0x22da48),function(){if(_0x150b8b){fs[_0x3b51('0x54')](_0x22da48);}});}else{return _0x24350c[_0x3b51('0x48')](_0x22da48,function(_0x3f399b){if(_0x150b8b){fs[_0x3b51('0x54')](_0x22da48);}});}}})[_0x3b51('0x46')](function(_0x7f2aff){if(_0x7f2aff['message']===_0x3b51('0x52')){_0x24350c[_0x3b51('0x19')](0x194)[_0x3b51('0x2a')]('Not\x20found');}else{return handleError(_0x24350c,null);}});};exports[_0x3b51('0x25')]=function(_0x541a0e,_0x3981b0){return db['SquareRecording'][_0x3b51('0x45')]({'where':{'id':_0x541a0e['params']['id']}})[_0x3b51('0x24')](function(_0x1540db){if(_['isNil'](_0x1540db)){throw new ReferenceError('Entity\x20not\x20found');}return _0x1540db;})[_0x3b51('0x24')](function(_0x1c9614){var _0x16adc4=_0x1c9614[_0x3b51('0x4c')];logger[_0x3b51('0x55')](_0x3b51('0x56'),_0x16adc4);if(!_[_0x3b51('0x57')](_0x1c9614[_0x3b51('0x4c')])&&fs[_0x3b51('0x50')](_0x16adc4)){logger[_0x3b51('0x55')](_0x3b51('0x58')+_0x16adc4+_0x3b51('0x59'));fs['unlinkSync'](_0x16adc4);}_0x16adc4=_0x16adc4+_0x3b51('0x5a');if(!_[_0x3b51('0x57')](_0x1c9614[_0x3b51('0x4c')])&&fs[_0x3b51('0x50')](_0x16adc4)){logger[_0x3b51('0x55')](_0x3b51('0x58')+_0x16adc4+_0x3b51('0x59'));fs[_0x3b51('0x5b')](_0x16adc4);}return _0x1c9614;})[_0x3b51('0x24')](function(_0x3d6875){if(!_0x3d6875)throw new InternalError();return _0x3d6875[_0x3b51('0x25')]();})[_0x3b51('0x24')](function(){_0x3981b0[_0x3b51('0x19')](0xcc)[_0x3b51('0x26')]();})[_0x3b51('0x46')](handleError(_0x3981b0,null));};
\ No newline at end of file
+var _0x68fb=['filename','%s.cypher','decryptFile','secrets','recording','savePath','existsSync','Sequelize','ValidationError','SquareRecording\x20not\x20found','extname','unlink','message','Not\x20found','isNil','Entity\x20not\x20found','info','cancellazione\x20fisica\x20documento\x20%s','File:\x20\x22','.cypher','\x22\x20trovato\x20eseguo\x20la\x20cancellazione','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','offset','undefined','count','limit','set','Content-Range','json','apply','reject','then','destroy','error','stack','name','send','index','map','SquareRecording','rawAttributes','fieldName','type','key','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filter','VIRTUAL','merge','options','includeAll','include','findAll','catch','show','params','keys','create','body','update','find','download','../../components/encryptor','uniqueid'];(function(_0x58cc40,_0x183602){var _0x19f72b=function(_0x26cc96){while(--_0x26cc96){_0x58cc40['push'](_0x58cc40['shift']());}};_0x19f72b(++_0x183602);}(_0x68fb,0xe7));var _0xb68f=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x68fb[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0xb68f('0x0'));var rimraf=require(_0xb68f('0x1'));var zipdir=require(_0xb68f('0x2'));var jsonpatch=require(_0xb68f('0x3'));var rp=require('request-promise');var moment=require(_0xb68f('0x4'));var BPromise=require(_0xb68f('0x5'));var Mustache=require(_0xb68f('0x6'));var util=require(_0xb68f('0x7'));var path=require('path');var sox=require(_0xb68f('0x8'));var csv=require(_0xb68f('0x9'));var ejs=require(_0xb68f('0xa'));var fs=require('fs');var fs_extra=require(_0xb68f('0xb'));var _=require(_0xb68f('0xc'));var squel=require(_0xb68f('0xd'));var crypto=require(_0xb68f('0xe'));var jsforce=require(_0xb68f('0xf'));var deskjs=require(_0xb68f('0x10'));var toCsv=require(_0xb68f('0x9'));var querystring=require(_0xb68f('0x11'));var Papa=require(_0xb68f('0x12'));var Redis=require(_0xb68f('0x13'));var authService=require(_0xb68f('0x14'));var qs=require(_0xb68f('0x15'));var as=require(_0xb68f('0x16'));var hardwareService=require(_0xb68f('0x17'));var logger=require(_0xb68f('0x18'))(_0xb68f('0x19'));var utils=require(_0xb68f('0x1a'));var config=require(_0xb68f('0x1b'));var licenseUtil=require(_0xb68f('0x1c'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x1c0609,_0x2a2f8a){_0x2a2f8a=_0x2a2f8a||0xcc;return function(_0x5a0580){if(_0x5a0580){return _0x1c0609[_0xb68f('0x1d')](_0x2a2f8a);}return _0x1c0609[_0xb68f('0x1e')](_0x2a2f8a)[_0xb68f('0x1f')]();};}function respondWithResult(_0x188fb7,_0x5f5597){_0x5f5597=_0x5f5597||0xc8;return function(_0x422925){if(_0x422925){return _0x188fb7[_0xb68f('0x1e')](_0x5f5597)['json'](_0x422925);}};}function respondWithFilteredResult(_0x3f90a6,_0x1e6a93){return function(_0x437316){if(_0x437316){var _0x207ddd=typeof _0x1e6a93[_0xb68f('0x20')]==='undefined'&&typeof _0x1e6a93['limit']===_0xb68f('0x21');var _0x25fa6d=_0x437316[_0xb68f('0x22')];var _0x2a0a64=_0x207ddd?0x0:_0x1e6a93['offset'];var _0x255935=_0x207ddd?_0x437316[_0xb68f('0x22')]:_0x1e6a93[_0xb68f('0x20')]+_0x1e6a93[_0xb68f('0x23')];var _0x478d26;if(_0x255935>=_0x25fa6d){_0x255935=_0x25fa6d;_0x478d26=0xc8;}else{_0x478d26=0xce;}_0x3f90a6[_0xb68f('0x1e')](_0x478d26);return _0x3f90a6[_0xb68f('0x24')](_0xb68f('0x25'),_0x2a0a64+'-'+_0x255935+'/'+_0x25fa6d)[_0xb68f('0x26')](_0x437316);}return null;};}function patchUpdates(_0x50a268){return function(_0xb45309){try{jsonpatch[_0xb68f('0x27')](_0xb45309,_0x50a268,!![]);}catch(_0x43b993){return BPromise[_0xb68f('0x28')](_0x43b993);}return _0xb45309['save']();};}function saveUpdates(_0x488abf,_0x4a38d6){return function(_0x9be7b1){if(_0x9be7b1){return _0x9be7b1['update'](_0x488abf)[_0xb68f('0x29')](function(_0x93f8e5){return _0x93f8e5;});}return null;};}function removeEntity(_0x40794d,_0x2cd66e){return function(_0x30a14a){if(_0x30a14a){return _0x30a14a[_0xb68f('0x2a')]()[_0xb68f('0x29')](function(){_0x40794d['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x21ccd2,_0x511c75){return function(_0xc8b6d6){if(!_0xc8b6d6){_0x21ccd2['sendStatus'](0x194);}return _0xc8b6d6;};}function handleError(_0x3c5aa9,_0x3b4435){_0x3b4435=_0x3b4435||0x1f4;return function(_0x2c5d31){logger[_0xb68f('0x2b')](_0x2c5d31[_0xb68f('0x2c')]);if(_0x2c5d31[_0xb68f('0x2d')]){delete _0x2c5d31[_0xb68f('0x2d')];}_0x3c5aa9[_0xb68f('0x1e')](_0x3b4435)[_0xb68f('0x2e')](_0x2c5d31);};}exports[_0xb68f('0x2f')]=function(_0x5b468b,_0x43e32f){var _0x3f86da={},_0xbe1d18={},_0xdae2a3={'count':0x0,'rows':[]};var _0x1c4643=_[_0xb68f('0x30')](db[_0xb68f('0x31')][_0xb68f('0x32')],function(_0x1df17f){return{'name':_0x1df17f[_0xb68f('0x33')],'type':_0x1df17f[_0xb68f('0x34')][_0xb68f('0x35')]};});_0xbe1d18['model']=_[_0xb68f('0x30')](_0x1c4643,_0xb68f('0x2d'));_0xbe1d18[_0xb68f('0x36')]=_['keys'](_0x5b468b[_0xb68f('0x36')]);_0xbe1d18[_0xb68f('0x37')]=_[_0xb68f('0x38')](_0xbe1d18[_0xb68f('0x39')],_0xbe1d18[_0xb68f('0x36')]);_0x3f86da[_0xb68f('0x3a')]=_[_0xb68f('0x38')](_0xbe1d18[_0xb68f('0x39')],qs[_0xb68f('0x3b')](_0x5b468b[_0xb68f('0x36')]['fields']));_0x3f86da[_0xb68f('0x3a')]=_0x3f86da[_0xb68f('0x3a')][_0xb68f('0x3c')]?_0x3f86da[_0xb68f('0x3a')]:_0xbe1d18[_0xb68f('0x39')];if(!_0x5b468b['query'][_0xb68f('0x3d')](_0xb68f('0x3e'))){_0x3f86da[_0xb68f('0x23')]=qs[_0xb68f('0x23')](_0x5b468b[_0xb68f('0x36')]['limit']);_0x3f86da[_0xb68f('0x20')]=qs[_0xb68f('0x20')](_0x5b468b[_0xb68f('0x36')][_0xb68f('0x20')]);}_0x3f86da[_0xb68f('0x3f')]=qs[_0xb68f('0x40')](_0x5b468b[_0xb68f('0x36')][_0xb68f('0x40')]);_0x3f86da[_0xb68f('0x41')]=qs[_0xb68f('0x37')](_['pick'](_0x5b468b['query'],_0xbe1d18[_0xb68f('0x37')]),_0x1c4643);if(_0x5b468b[_0xb68f('0x36')][_0xb68f('0x42')]){_0x3f86da[_0xb68f('0x41')]=_['merge'](_0x3f86da[_0xb68f('0x41')],{'$or':_['map'](_0x1c4643,function(_0x274a09){if(_0x274a09['type']!==_0xb68f('0x43')){var _0x41b764={};_0x41b764[_0x274a09[_0xb68f('0x2d')]]={'$like':'%'+_0x5b468b[_0xb68f('0x36')][_0xb68f('0x42')]+'%'};return _0x41b764;}})});}_0x3f86da=_[_0xb68f('0x44')]({},_0x3f86da,_0x5b468b[_0xb68f('0x45')]);var _0x37666b={'where':_0x3f86da['where']};return db[_0xb68f('0x31')][_0xb68f('0x22')](_0x37666b)[_0xb68f('0x29')](function(_0x9d56bc){_0xdae2a3[_0xb68f('0x22')]=_0x9d56bc;if(_0x5b468b[_0xb68f('0x36')][_0xb68f('0x46')]){_0x3f86da[_0xb68f('0x47')]=[{'all':!![]}];}return db[_0xb68f('0x31')][_0xb68f('0x48')](_0x3f86da);})[_0xb68f('0x29')](function(_0x68bba4){_0xdae2a3['rows']=_0x68bba4;return _0xdae2a3;})[_0xb68f('0x29')](respondWithFilteredResult(_0x43e32f,_0x3f86da))[_0xb68f('0x49')](handleError(_0x43e32f,null));};exports[_0xb68f('0x4a')]=function(_0x1961b2,_0xa2bde2){var _0xbcd27f={'raw':!![],'where':{'id':_0x1961b2[_0xb68f('0x4b')]['id']}},_0x105f87={};_0x105f87[_0xb68f('0x39')]=_[_0xb68f('0x4c')](db[_0xb68f('0x31')]['rawAttributes']);_0x105f87[_0xb68f('0x36')]=_[_0xb68f('0x4c')](_0x1961b2['query']);_0x105f87[_0xb68f('0x37')]=_[_0xb68f('0x38')](_0x105f87[_0xb68f('0x39')],_0x105f87[_0xb68f('0x36')]);_0xbcd27f[_0xb68f('0x3a')]=_['intersection'](_0x105f87[_0xb68f('0x39')],qs[_0xb68f('0x3b')](_0x1961b2[_0xb68f('0x36')][_0xb68f('0x3b')]));_0xbcd27f['attributes']=_0xbcd27f[_0xb68f('0x3a')][_0xb68f('0x3c')]?_0xbcd27f['attributes']:_0x105f87['model'];if(_0x1961b2['query'][_0xb68f('0x46')]){_0xbcd27f[_0xb68f('0x47')]=[{'all':!![]}];}_0xbcd27f=_[_0xb68f('0x44')]({},_0xbcd27f,_0x1961b2[_0xb68f('0x45')]);return db[_0xb68f('0x31')]['find'](_0xbcd27f)[_0xb68f('0x29')](handleEntityNotFound(_0xa2bde2,null))['then'](respondWithResult(_0xa2bde2,null))[_0xb68f('0x49')](handleError(_0xa2bde2,null));};exports[_0xb68f('0x4d')]=function(_0x15491e,_0x54ac04){return db['SquareRecording']['create'](_0x15491e[_0xb68f('0x4e')],{})['then'](respondWithResult(_0x54ac04,0xc9))[_0xb68f('0x49')](handleError(_0x54ac04,null));};exports[_0xb68f('0x4f')]=function(_0x5242e3,_0x351d78){if(_0x5242e3['body']['id']){delete _0x5242e3[_0xb68f('0x4e')]['id'];}return db[_0xb68f('0x31')][_0xb68f('0x50')]({'where':{'id':_0x5242e3[_0xb68f('0x4b')]['id']}})[_0xb68f('0x29')](handleEntityNotFound(_0x351d78,null))[_0xb68f('0x29')](saveUpdates(_0x5242e3[_0xb68f('0x4e')],null))['then'](respondWithResult(_0x351d78,null))[_0xb68f('0x49')](handleError(_0x351d78,null));};exports[_0xb68f('0x51')]=function(_0x4a0ebe,_0x3f6683,_0x535482){var _0x2544e7=require(_0xb68f('0x52'));var _0x107e33=![];var _0x41c63b={};if(_0x4a0ebe['query'][_0xb68f('0x34')]&&_0x4a0ebe[_0xb68f('0x36')][_0xb68f('0x34')]===_0xb68f('0x53')){_0x41c63b[_0xb68f('0x53')]=_0x4a0ebe['params']['id'];}else{_0x41c63b['id']=_0x4a0ebe[_0xb68f('0x4b')]['id'];}return db[_0xb68f('0x31')]['find']({'where':_0x41c63b,'attributes':['id','savePath',_0xb68f('0x54')],'raw':!![]})[_0xb68f('0x29')](handleEntityNotFound(_0x3f6683,null))[_0xb68f('0x29')](function(_0x1995a2){if(_0x1995a2){var _0x3e4f52=_0x1995a2['savePath'];var _0xa775fa=util['format'](_0xb68f('0x55'),_0x3e4f52);if(fs['existsSync'](_0xa775fa)){_0x107e33=!![];return _0x2544e7[_0xb68f('0x56')](_0xa775fa,_0x3e4f52,config[_0xb68f('0x57')][_0xb68f('0x58')])['then'](function(){return _0x1995a2;});}return _0x1995a2;}})[_0xb68f('0x29')](function(_0x6b23b7){if(_0x6b23b7){var _0x5000a5=_0x6b23b7[_0xb68f('0x59')];if(!fs[_0xb68f('0x5a')](_0x5000a5)){throw new db[(_0xb68f('0x5b'))][(_0xb68f('0x5c'))](_0xb68f('0x5d'));}if(_0x6b23b7['filename']){return _0x3f6683['download'](_0x5000a5,_0x6b23b7[_0xb68f('0x54')]+path[_0xb68f('0x5e')](_0x5000a5),function(){if(_0x107e33){fs['unlink'](_0x5000a5);}});}else{return _0x3f6683[_0xb68f('0x51')](_0x5000a5,function(_0x2f1cd3){if(_0x107e33){fs[_0xb68f('0x5f')](_0x5000a5);}});}}})[_0xb68f('0x49')](function(_0x55902f){if(_0x55902f[_0xb68f('0x60')]===_0xb68f('0x5d')){_0x3f6683[_0xb68f('0x1e')](0x194)[_0xb68f('0x2e')](_0xb68f('0x61'));}else{return handleError(_0x3f6683,null);}});};exports[_0xb68f('0x2a')]=function(_0x142fd5,_0xba1a4a){return db[_0xb68f('0x31')][_0xb68f('0x50')]({'where':{'id':_0x142fd5[_0xb68f('0x4b')]['id']}})[_0xb68f('0x29')](function(_0x3d981e){if(_[_0xb68f('0x62')](_0x3d981e)){throw new ReferenceError(_0xb68f('0x63'));}return _0x3d981e;})['then'](function(_0x14048c){var _0x1a12f6=_0x14048c[_0xb68f('0x59')];logger[_0xb68f('0x64')](_0xb68f('0x65'),_0x1a12f6);if(!_[_0xb68f('0x62')](_0x14048c[_0xb68f('0x59')])&&fs[_0xb68f('0x5a')](_0x1a12f6)){logger[_0xb68f('0x64')](_0xb68f('0x66')+_0x1a12f6+'\x22\x20trovato\x20eseguo\x20la\x20cancellazione');fs['unlinkSync'](_0x1a12f6);}_0x1a12f6=_0x1a12f6+_0xb68f('0x67');if(!_['isNil'](_0x14048c['savePath'])&&fs[_0xb68f('0x5a')](_0x1a12f6)){logger[_0xb68f('0x64')](_0xb68f('0x66')+_0x1a12f6+_0xb68f('0x68'));fs['unlinkSync'](_0x1a12f6);}return _0x14048c;})[_0xb68f('0x29')](function(_0x2755bc){if(!_0x2755bc)throw new InternalError();return _0x2755bc[_0xb68f('0x2a')]();})[_0xb68f('0x29')](function(){_0xba1a4a[_0xb68f('0x1e')](0xcc)[_0xb68f('0x1f')]();})[_0xb68f('0x49')](handleError(_0xba1a4a,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1d11=['lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./squareRecording.attributes','define','SquareRecording'];(function(_0x5a9c0c,_0x4ec485){var _0x53c77d=function(_0x1cf384){while(--_0x1cf384){_0x5a9c0c['push'](_0x5a9c0c['shift']());}};_0x53c77d(++_0x4ec485);}(_0x1d11,0xb6));var _0x11d1=function(_0x46ea1b,_0x48ec3a){_0x46ea1b=_0x46ea1b-0x0;var _0x5c5532=_0x1d11[_0x46ea1b];return _0x5c5532;};'use strict';var _=require(_0x11d1('0x0'));var util=require(_0x11d1('0x1'));var logger=require(_0x11d1('0x2'))(_0x11d1('0x3'));var moment=require(_0x11d1('0x4'));var BPromise=require(_0x11d1('0x5'));var rp=require(_0x11d1('0x6'));var fs=require('fs');var path=require(_0x11d1('0x7'));var rimraf=require(_0x11d1('0x8'));var config=require(_0x11d1('0x9'));var attributes=require(_0x11d1('0xa'));module['exports']=function(_0x32d808,_0x4a9622){return _0x32d808[_0x11d1('0xb')](_0x11d1('0xc'),attributes,{'tableName':'square_recordings','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xe056=['../../config/environment','define','SquareRecording','../../config/logger','api','moment','request-promise','rimraf'];(function(_0x18056a,_0x3a3d6c){var _0x4c47dd=function(_0x5a57ff){while(--_0x5a57ff){_0x18056a['push'](_0x18056a['shift']());}};_0x4c47dd(++_0x3a3d6c);}(_0xe056,0xdb));var _0x6e05=function(_0x54d52,_0x2473ba){_0x54d52=_0x54d52-0x0;var _0x968345=_0xe056[_0x54d52];return _0x968345;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x6e05('0x0'))(_0x6e05('0x1'));var moment=require(_0x6e05('0x2'));var BPromise=require('bluebird');var rp=require(_0x6e05('0x3'));var fs=require('fs');var path=require('path');var rimraf=require(_0x6e05('0x4'));var config=require(_0x6e05('0x5'));var attributes=require('./squareRecording.attributes');module['exports']=function(_0x51e5dd,_0x19837b){return _0x51e5dd[_0x6e05('0x6')](_0x6e05('0x7'),attributes,{'tableName':'square_recordings','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6da8=['bluebird','randomstring','../../mysqldb','../../config/logger','rpc','client','http','request','then','request\x20sent','debug','SquareRecording,\x20%s,\x20%s,\x20%s','error','code','SquareRecording,\x20%s,\x20%s','message','info','result','catch','SquareRecording','create','body','options','raw','CreateSquareRecording','stringify','lodash','util','moment'];(function(_0x534c8f,_0x500079){var _0x5a57f5=function(_0x38ec0a){while(--_0x38ec0a){_0x534c8f['push'](_0x534c8f['shift']());}};_0x5a57f5(++_0x500079);}(_0x6da8,0x11f));var _0x86da=function(_0x380d53,_0x453fa0){_0x380d53=_0x380d53-0x0;var _0x49d517=_0x6da8[_0x380d53];return _0x49d517;};'use strict';var _=require(_0x86da('0x0'));var util=require(_0x86da('0x1'));var moment=require(_0x86da('0x2'));var BPromise=require(_0x86da('0x3'));var rs=require(_0x86da('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x86da('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0x86da('0x6'))(_0x86da('0x7'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0x86da('0x8')][_0x86da('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x56497c,_0x1a8bfb,_0x210f79){return new BPromise(function(_0x152214,_0x38fe7e){return client[_0x86da('0xa')](_0x56497c,_0x210f79)[_0x86da('0xb')](function(_0x5aba7c){logger['info']('SquareRecording,\x20%s,\x20%s',_0x1a8bfb,_0x86da('0xc'));logger[_0x86da('0xd')](_0x86da('0xe'),_0x1a8bfb,_0x86da('0xc'),JSON['stringify'](_0x5aba7c));if(_0x5aba7c[_0x86da('0xf')]){if(_0x5aba7c[_0x86da('0xf')][_0x86da('0x10')]===0x1f4){logger['error'](_0x86da('0x11'),_0x1a8bfb,_0x5aba7c[_0x86da('0xf')][_0x86da('0x12')]);return _0x38fe7e(_0x5aba7c[_0x86da('0xf')][_0x86da('0x12')]);}logger[_0x86da('0xf')](_0x86da('0x11'),_0x1a8bfb,_0x5aba7c[_0x86da('0xf')][_0x86da('0x12')]);return _0x152214(_0x5aba7c[_0x86da('0xf')][_0x86da('0x12')]);}else{logger[_0x86da('0x13')]('SquareRecording,\x20%s,\x20%s',_0x1a8bfb,_0x86da('0xc'));_0x152214(_0x5aba7c[_0x86da('0x14')]['message']);}})[_0x86da('0x15')](function(_0x16752c){logger[_0x86da('0xf')]('SquareRecording,\x20%s,\x20%s',_0x1a8bfb,_0x16752c);_0x38fe7e(_0x16752c);});});}exports['CreateSquareRecording']=function(_0x59132c){var _0x43c71a=this;return new Promise(function(_0x9b8fda,_0x20e31f){return db[_0x86da('0x16')][_0x86da('0x17')](_0x59132c[_0x86da('0x18')],{'raw':_0x59132c[_0x86da('0x19')]?_0x59132c[_0x86da('0x19')][_0x86da('0x1a')]===undefined?!![]:![]:!![]})[_0x86da('0xb')](function(_0xc0248e){logger[_0x86da('0x13')](_0x86da('0x1b'),_0x59132c);logger[_0x86da('0xd')](_0x86da('0x1b'),_0x59132c,JSON[_0x86da('0x1c')](_0xc0248e));_0x9b8fda(_0xc0248e);})[_0x86da('0x15')](function(_0x1fd540){logger[_0x86da('0xf')](_0x86da('0x1b'),_0x1fd540[_0x86da('0x12')],_0x59132c);_0x20e31f(_0x43c71a[_0x86da('0xf')](0x1f4,_0x1fd540[_0x86da('0x12')]));});});};
\ No newline at end of file
+var _0x5fbd=['bluebird','randomstring','ioredis','../../mysqldb','rpc','jayson/promise','http','then','info','request\x20sent','SquareRecording,\x20%s,\x20%s,\x20%s','error','code','SquareRecording,\x20%s,\x20%s','message','result','catch','CreateSquareRecording','SquareRecording','create','body','options','raw','debug','lodash','util','moment'];(function(_0x5c33e8,_0x4c6bdf){var _0x2fa8a8=function(_0x3ca2af){while(--_0x3ca2af){_0x5c33e8['push'](_0x5c33e8['shift']());}};_0x2fa8a8(++_0x4c6bdf);}(_0x5fbd,0x192));var _0xd5fb=function(_0x33715,_0x506e28){_0x33715=_0x33715-0x0;var _0x29bf1e=_0x5fbd[_0x33715];return _0x29bf1e;};'use strict';var _=require(_0xd5fb('0x0'));var util=require(_0xd5fb('0x1'));var moment=require(_0xd5fb('0x2'));var BPromise=require(_0xd5fb('0x3'));var rs=require(_0xd5fb('0x4'));var fs=require('fs');var Redis=require(_0xd5fb('0x5'));var db=require(_0xd5fb('0x6'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0xd5fb('0x7'));var config=require('../../config/environment');var jayson=require(_0xd5fb('0x8'));var client=jayson['client'][_0xd5fb('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x29a95b,_0x35fd72,_0x14177){return new BPromise(function(_0x1ceb5e,_0x3b3c24){return client['request'](_0x29a95b,_0x14177)[_0xd5fb('0xa')](function(_0xa0e18b){logger[_0xd5fb('0xb')]('SquareRecording,\x20%s,\x20%s',_0x35fd72,_0xd5fb('0xc'));logger['debug'](_0xd5fb('0xd'),_0x35fd72,_0xd5fb('0xc'),JSON['stringify'](_0xa0e18b));if(_0xa0e18b[_0xd5fb('0xe')]){if(_0xa0e18b[_0xd5fb('0xe')][_0xd5fb('0xf')]===0x1f4){logger[_0xd5fb('0xe')](_0xd5fb('0x10'),_0x35fd72,_0xa0e18b[_0xd5fb('0xe')][_0xd5fb('0x11')]);return _0x3b3c24(_0xa0e18b[_0xd5fb('0xe')][_0xd5fb('0x11')]);}logger[_0xd5fb('0xe')]('SquareRecording,\x20%s,\x20%s',_0x35fd72,_0xa0e18b[_0xd5fb('0xe')][_0xd5fb('0x11')]);return _0x1ceb5e(_0xa0e18b['error'][_0xd5fb('0x11')]);}else{logger[_0xd5fb('0xb')](_0xd5fb('0x10'),_0x35fd72,_0xd5fb('0xc'));_0x1ceb5e(_0xa0e18b[_0xd5fb('0x12')][_0xd5fb('0x11')]);}})[_0xd5fb('0x13')](function(_0x36f90b){logger[_0xd5fb('0xe')](_0xd5fb('0x10'),_0x35fd72,_0x36f90b);_0x3b3c24(_0x36f90b);});});}exports[_0xd5fb('0x14')]=function(_0x3f2f2d){var _0x530455=this;return new Promise(function(_0x323f15,_0x4bb600){return db[_0xd5fb('0x15')][_0xd5fb('0x16')](_0x3f2f2d[_0xd5fb('0x17')],{'raw':_0x3f2f2d[_0xd5fb('0x18')]?_0x3f2f2d[_0xd5fb('0x18')][_0xd5fb('0x19')]===undefined?!![]:![]:!![]})['then'](function(_0x435783){logger['info']('CreateSquareRecording',_0x3f2f2d);logger[_0xd5fb('0x1a')](_0xd5fb('0x14'),_0x3f2f2d,JSON['stringify'](_0x435783));_0x323f15(_0x435783);})['catch'](function(_0x4ba030){logger[_0xd5fb('0xe')]('CreateSquareRecording',_0x4ba030['message'],_0x3f2f2d);_0x4bb600(_0x530455[_0xd5fb('0xe')](0x1f4,_0x4ba030[_0xd5fb('0x11')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe706=['/describe','describe','/:id','show','post','create','put','destroy','exports','multer','util','path','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./squareReport.controller','get','isAuthenticated','index'];(function(_0x2534a6,_0x1ac6d6){var _0x517d99=function(_0x4258ca){while(--_0x4258ca){_0x2534a6['push'](_0x2534a6['shift']());}};_0x517d99(++_0x1ac6d6);}(_0xe706,0xa3));var _0x6e70=function(_0x461935,_0xeaeb6e){_0x461935=_0x461935-0x0;var _0x1f809f=_0xe706[_0x461935];return _0x1f809f;};'use strict';var multer=require(_0x6e70('0x0'));var util=require(_0x6e70('0x1'));var path=require(_0x6e70('0x2'));var timeout=require('connect-timeout');var express=require(_0x6e70('0x3'));var router=express[_0x6e70('0x4')]();var fs_extra=require(_0x6e70('0x5'));var auth=require(_0x6e70('0x6'));var interaction=require(_0x6e70('0x7'));var config=require(_0x6e70('0x8'));var controller=require(_0x6e70('0x9'));router[_0x6e70('0xa')]('/',auth[_0x6e70('0xb')](),controller[_0x6e70('0xc')]);router[_0x6e70('0xa')](_0x6e70('0xd'),auth[_0x6e70('0xb')](),controller[_0x6e70('0xe')]);router[_0x6e70('0xa')](_0x6e70('0xf'),auth[_0x6e70('0xb')](),controller[_0x6e70('0x10')]);router[_0x6e70('0x11')]('/',auth[_0x6e70('0xb')](),controller[_0x6e70('0x12')]);router[_0x6e70('0x13')](_0x6e70('0xf'),auth[_0x6e70('0xb')](),controller['update']);router['delete'](_0x6e70('0xf'),auth[_0x6e70('0xb')](),controller[_0x6e70('0x14')]);module[_0x6e70('0x15')]=router;
\ No newline at end of file
+var _0xbaf0=['/:id','update','delete','exports','util','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','./squareReport.controller','get','isAuthenticated','index','/describe','show','post','create','put'];(function(_0x3f61b1,_0x29dd87){var _0x2097cb=function(_0x63b0d3){while(--_0x63b0d3){_0x3f61b1['push'](_0x3f61b1['shift']());}};_0x2097cb(++_0x29dd87);}(_0xbaf0,0x12a));var _0x0baf=function(_0x5b644e,_0x2e5e07){_0x5b644e=_0x5b644e-0x0;var _0x49c6bf=_0xbaf0[_0x5b644e];return _0x49c6bf;};'use strict';var multer=require('multer');var util=require(_0x0baf('0x0'));var path=require(_0x0baf('0x1'));var timeout=require(_0x0baf('0x2'));var express=require(_0x0baf('0x3'));var router=express[_0x0baf('0x4')]();var fs_extra=require(_0x0baf('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x0baf('0x6'));var config=require(_0x0baf('0x7'));var controller=require(_0x0baf('0x8'));router[_0x0baf('0x9')]('/',auth[_0x0baf('0xa')](),controller[_0x0baf('0xb')]);router[_0x0baf('0x9')](_0x0baf('0xc'),auth[_0x0baf('0xa')](),controller['describe']);router[_0x0baf('0x9')]('/:id',auth[_0x0baf('0xa')](),controller[_0x0baf('0xd')]);router[_0x0baf('0xe')]('/',auth[_0x0baf('0xa')](),controller[_0x0baf('0xf')]);router[_0x0baf('0x10')](_0x0baf('0x11'),auth[_0x0baf('0xa')](),controller[_0x0baf('0x12')]);router[_0x0baf('0x13')](_0x0baf('0x11'),auth['isAuthenticated'](),controller['destroy']);module[_0x0baf('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5254=['STRING','DATE','BOOLEAN','sequelize','exports'];(function(_0x4a9fb1,_0x273043){var _0x348672=function(_0x142b69){while(--_0x142b69){_0x4a9fb1['push'](_0x4a9fb1['shift']());}};_0x348672(++_0x273043);}(_0x5254,0xe4));var _0x4525=function(_0x54daa2,_0x48ca14){_0x54daa2=_0x54daa2-0x0;var _0x4a43d0=_0x5254[_0x54daa2];return _0x4a43d0;};'use strict';var Sequelize=require(_0x4525('0x0'));module[_0x4525('0x1')]={'network':{'type':Sequelize[_0x4525('0x2')]},'network_script':{'type':Sequelize[_0x4525('0x2')]},'request':{'type':Sequelize['STRING']},'channel':{'type':Sequelize[_0x4525('0x2')]},'language':{'type':Sequelize[_0x4525('0x2')]},'type':{'type':Sequelize[_0x4525('0x2')]},'uniqueid':{'type':Sequelize[_0x4525('0x2')]},'version':{'type':Sequelize['STRING']},'callerid':{'type':Sequelize['STRING']},'calleridname':{'type':Sequelize['STRING']},'callingpres':{'type':Sequelize[_0x4525('0x2')]},'callingani2':{'type':Sequelize[_0x4525('0x2')]},'callington':{'type':Sequelize['STRING']},'callingtns':{'type':Sequelize['STRING']},'dnid':{'type':Sequelize[_0x4525('0x2')]},'rdnis':{'type':Sequelize[_0x4525('0x2')]},'context':{'type':Sequelize['STRING']},'extension':{'type':Sequelize[_0x4525('0x2')]},'priority':{'type':Sequelize[_0x4525('0x2')]},'enhanced':{'type':Sequelize[_0x4525('0x2')]},'accountcode':{'type':Sequelize['STRING']},'threadid':{'type':Sequelize['STRING']},'project_name':{'type':Sequelize[_0x4525('0x2')]},'joinAt':{'type':Sequelize[_0x4525('0x3')]},'leaveAt':{'type':Sequelize[_0x4525('0x3')]},'bot':{'type':Sequelize[_0x4525('0x4')],'defaultValue':![]}};
\ No newline at end of file
+var _0x91fe=['exports','STRING','DATE','BOOLEAN'];(function(_0x54d4fe,_0x55e869){var _0x1ab5bb=function(_0x5b1af2){while(--_0x5b1af2){_0x54d4fe['push'](_0x54d4fe['shift']());}};_0x1ab5bb(++_0x55e869);}(_0x91fe,0xf8));var _0xe91f=function(_0x4a1692,_0x30b2bd){_0x4a1692=_0x4a1692-0x0;var _0xf8ca59=_0x91fe[_0x4a1692];return _0xf8ca59;};'use strict';var Sequelize=require('sequelize');module[_0xe91f('0x0')]={'network':{'type':Sequelize['STRING']},'network_script':{'type':Sequelize['STRING']},'request':{'type':Sequelize[_0xe91f('0x1')]},'channel':{'type':Sequelize[_0xe91f('0x1')]},'language':{'type':Sequelize[_0xe91f('0x1')]},'type':{'type':Sequelize[_0xe91f('0x1')]},'uniqueid':{'type':Sequelize[_0xe91f('0x1')]},'version':{'type':Sequelize['STRING']},'callerid':{'type':Sequelize[_0xe91f('0x1')]},'calleridname':{'type':Sequelize[_0xe91f('0x1')]},'callingpres':{'type':Sequelize['STRING']},'callingani2':{'type':Sequelize[_0xe91f('0x1')]},'callington':{'type':Sequelize[_0xe91f('0x1')]},'callingtns':{'type':Sequelize[_0xe91f('0x1')]},'dnid':{'type':Sequelize[_0xe91f('0x1')]},'rdnis':{'type':Sequelize[_0xe91f('0x1')]},'context':{'type':Sequelize[_0xe91f('0x1')]},'extension':{'type':Sequelize['STRING']},'priority':{'type':Sequelize['STRING']},'enhanced':{'type':Sequelize[_0xe91f('0x1')]},'accountcode':{'type':Sequelize['STRING']},'threadid':{'type':Sequelize[_0xe91f('0x1')]},'project_name':{'type':Sequelize[_0xe91f('0x1')]},'joinAt':{'type':Sequelize[_0xe91f('0x2')]},'leaveAt':{'type':Sequelize[_0xe91f('0x2')]},'bot':{'type':Sequelize[_0xe91f('0x3')],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcad5=['ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','limit','undefined','count','json','apply','save','update','then','destroy','stack','name','index','map','SquareReport','rawAttributes','fieldName','type','key','model','query','keys','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','merge','options','includeAll','findAll','rows','catch','show','params','include','create','body','find','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse'];(function(_0x106555,_0x504a05){var _0x1bff75=function(_0x558681){while(--_0x558681){_0x106555['push'](_0x106555['shift']());}};_0x1bff75(++_0x504a05);}(_0xcad5,0x86));var _0x5cad=function(_0x509695,_0x21d107){_0x509695=_0x509695-0x0;var _0x5e39bb=_0xcad5[_0x509695];return _0x5e39bb;};'use strict';var emlformat=require(_0x5cad('0x0'));var rimraf=require(_0x5cad('0x1'));var zipdir=require(_0x5cad('0x2'));var jsonpatch=require(_0x5cad('0x3'));var rp=require(_0x5cad('0x4'));var moment=require(_0x5cad('0x5'));var BPromise=require(_0x5cad('0x6'));var Mustache=require(_0x5cad('0x7'));var util=require(_0x5cad('0x8'));var path=require(_0x5cad('0x9'));var sox=require(_0x5cad('0xa'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x5cad('0xb'));var _=require(_0x5cad('0xc'));var squel=require(_0x5cad('0xd'));var crypto=require('crypto');var jsforce=require(_0x5cad('0xe'));var deskjs=require(_0x5cad('0xf'));var toCsv=require('to-csv');var querystring=require(_0x5cad('0x10'));var Papa=require(_0x5cad('0x11'));var Redis=require(_0x5cad('0x12'));var authService=require(_0x5cad('0x13'));var qs=require('../../components/parsers/qs');var as=require(_0x5cad('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x5cad('0x15'))(_0x5cad('0x16'));var utils=require(_0x5cad('0x17'));var config=require('../../config/environment');var licenseUtil=require(_0x5cad('0x18'));var db=require(_0x5cad('0x19'))['db'];function respondWithStatusCode(_0x306f00,_0x1274c0){_0x1274c0=_0x1274c0||0xcc;return function(_0x1323c2){if(_0x1323c2){return _0x306f00[_0x5cad('0x1a')](_0x1274c0);}return _0x306f00[_0x5cad('0x1b')](_0x1274c0)[_0x5cad('0x1c')]();};}function respondWithResult(_0x5759e0,_0x17b4b6){_0x17b4b6=_0x17b4b6||0xc8;return function(_0x1e9ec5){if(_0x1e9ec5){return _0x5759e0[_0x5cad('0x1b')](_0x17b4b6)['json'](_0x1e9ec5);}};}function respondWithFilteredResult(_0x1456ec,_0x51ddcf){return function(_0x1f16ed){if(_0x1f16ed){var _0x4c7cda=typeof _0x51ddcf[_0x5cad('0x1d')]==='undefined'&&typeof _0x51ddcf[_0x5cad('0x1e')]===_0x5cad('0x1f');var _0x166558=_0x1f16ed[_0x5cad('0x20')];var _0x37c7ce=_0x4c7cda?0x0:_0x51ddcf[_0x5cad('0x1d')];var _0x4d9f1b=_0x4c7cda?_0x1f16ed[_0x5cad('0x20')]:_0x51ddcf[_0x5cad('0x1d')]+_0x51ddcf['limit'];var _0x55d7e9;if(_0x4d9f1b>=_0x166558){_0x4d9f1b=_0x166558;_0x55d7e9=0xc8;}else{_0x55d7e9=0xce;}_0x1456ec[_0x5cad('0x1b')](_0x55d7e9);return _0x1456ec['set']('Content-Range',_0x37c7ce+'-'+_0x4d9f1b+'/'+_0x166558)[_0x5cad('0x21')](_0x1f16ed);}return null;};}function patchUpdates(_0x1f6fd6){return function(_0x120b1c){try{jsonpatch[_0x5cad('0x22')](_0x120b1c,_0x1f6fd6,!![]);}catch(_0x1dc22b){return BPromise['reject'](_0x1dc22b);}return _0x120b1c[_0x5cad('0x23')]();};}function saveUpdates(_0x1618c2,_0x445599){return function(_0x59a033){if(_0x59a033){return _0x59a033[_0x5cad('0x24')](_0x1618c2)[_0x5cad('0x25')](function(_0x1e1646){return _0x1e1646;});}return null;};}function removeEntity(_0x2ecea8,_0x252e58){return function(_0x442e3a){if(_0x442e3a){return _0x442e3a[_0x5cad('0x26')]()[_0x5cad('0x25')](function(){_0x2ecea8[_0x5cad('0x1b')](0xcc)[_0x5cad('0x1c')]();});}};}function handleEntityNotFound(_0x55a52e,_0x59c502){return function(_0x2b03b4){if(!_0x2b03b4){_0x55a52e[_0x5cad('0x1a')](0x194);}return _0x2b03b4;};}function handleError(_0x540476,_0x795e61){_0x795e61=_0x795e61||0x1f4;return function(_0x1ec6e2){logger['error'](_0x1ec6e2[_0x5cad('0x27')]);if(_0x1ec6e2[_0x5cad('0x28')]){delete _0x1ec6e2[_0x5cad('0x28')];}_0x540476[_0x5cad('0x1b')](_0x795e61)['send'](_0x1ec6e2);};}exports[_0x5cad('0x29')]=function(_0xcaf286,_0x383912){var _0x3ca89c={},_0x13694d={},_0xc64ddf={'count':0x0,'rows':[]};var _0x5ea8f0=_[_0x5cad('0x2a')](db[_0x5cad('0x2b')][_0x5cad('0x2c')],function(_0x460f41){return{'name':_0x460f41[_0x5cad('0x2d')],'type':_0x460f41[_0x5cad('0x2e')][_0x5cad('0x2f')]};});_0x13694d[_0x5cad('0x30')]=_[_0x5cad('0x2a')](_0x5ea8f0,_0x5cad('0x28'));_0x13694d[_0x5cad('0x31')]=_[_0x5cad('0x32')](_0xcaf286['query']);_0x13694d['filters']=_[_0x5cad('0x33')](_0x13694d[_0x5cad('0x30')],_0x13694d['query']);_0x3ca89c['attributes']=_['intersection'](_0x13694d[_0x5cad('0x30')],qs['fields'](_0xcaf286[_0x5cad('0x31')][_0x5cad('0x34')]));_0x3ca89c[_0x5cad('0x35')]=_0x3ca89c[_0x5cad('0x35')][_0x5cad('0x36')]?_0x3ca89c[_0x5cad('0x35')]:_0x13694d['model'];if(!_0xcaf286['query'][_0x5cad('0x37')](_0x5cad('0x38'))){_0x3ca89c[_0x5cad('0x1e')]=qs[_0x5cad('0x1e')](_0xcaf286[_0x5cad('0x31')]['limit']);_0x3ca89c['offset']=qs[_0x5cad('0x1d')](_0xcaf286[_0x5cad('0x31')][_0x5cad('0x1d')]);}_0x3ca89c[_0x5cad('0x39')]=qs[_0x5cad('0x3a')](_0xcaf286[_0x5cad('0x31')][_0x5cad('0x3a')]);_0x3ca89c[_0x5cad('0x3b')]=qs[_0x5cad('0x3c')](_[_0x5cad('0x3d')](_0xcaf286[_0x5cad('0x31')],_0x13694d[_0x5cad('0x3c')]),_0x5ea8f0);if(_0xcaf286[_0x5cad('0x31')][_0x5cad('0x3e')]){_0x3ca89c[_0x5cad('0x3b')]=_[_0x5cad('0x3f')](_0x3ca89c[_0x5cad('0x3b')],{'$or':_['map'](_0x5ea8f0,function(_0x421638){if(_0x421638[_0x5cad('0x2e')]!=='VIRTUAL'){var _0x1822c8={};_0x1822c8[_0x421638['name']]={'$like':'%'+_0xcaf286[_0x5cad('0x31')][_0x5cad('0x3e')]+'%'};return _0x1822c8;}})});}_0x3ca89c=_[_0x5cad('0x3f')]({},_0x3ca89c,_0xcaf286[_0x5cad('0x40')]);var _0x2a8f7a={'where':_0x3ca89c['where']};return db[_0x5cad('0x2b')][_0x5cad('0x20')](_0x2a8f7a)[_0x5cad('0x25')](function(_0x4938d2){_0xc64ddf['count']=_0x4938d2;if(_0xcaf286[_0x5cad('0x31')][_0x5cad('0x41')]){_0x3ca89c['include']=[{'all':!![]}];}return db[_0x5cad('0x2b')][_0x5cad('0x42')](_0x3ca89c);})[_0x5cad('0x25')](function(_0x103ed8){_0xc64ddf[_0x5cad('0x43')]=_0x103ed8;return _0xc64ddf;})[_0x5cad('0x25')](respondWithFilteredResult(_0x383912,_0x3ca89c))[_0x5cad('0x44')](handleError(_0x383912,null));};exports[_0x5cad('0x45')]=function(_0x43964a,_0x500ae5){var _0x4db503={'raw':!![],'where':{'id':_0x43964a[_0x5cad('0x46')]['id']}},_0x272ea3={};_0x272ea3[_0x5cad('0x30')]=_[_0x5cad('0x32')](db[_0x5cad('0x2b')]['rawAttributes']);_0x272ea3[_0x5cad('0x31')]=_[_0x5cad('0x32')](_0x43964a[_0x5cad('0x31')]);_0x272ea3[_0x5cad('0x3c')]=_['intersection'](_0x272ea3[_0x5cad('0x30')],_0x272ea3[_0x5cad('0x31')]);_0x4db503[_0x5cad('0x35')]=_[_0x5cad('0x33')](_0x272ea3[_0x5cad('0x30')],qs[_0x5cad('0x34')](_0x43964a[_0x5cad('0x31')][_0x5cad('0x34')]));_0x4db503['attributes']=_0x4db503['attributes'][_0x5cad('0x36')]?_0x4db503['attributes']:_0x272ea3[_0x5cad('0x30')];if(_0x43964a['query'][_0x5cad('0x41')]){_0x4db503[_0x5cad('0x47')]=[{'all':!![]}];}_0x4db503=_[_0x5cad('0x3f')]({},_0x4db503,_0x43964a[_0x5cad('0x40')]);return db[_0x5cad('0x2b')]['find'](_0x4db503)['then'](handleEntityNotFound(_0x500ae5,null))[_0x5cad('0x25')](respondWithResult(_0x500ae5,null))[_0x5cad('0x44')](handleError(_0x500ae5,null));};exports[_0x5cad('0x48')]=function(_0x19c5b6,_0x2c7eda){return db[_0x5cad('0x2b')][_0x5cad('0x48')](_0x19c5b6[_0x5cad('0x49')],{})[_0x5cad('0x25')](respondWithResult(_0x2c7eda,0xc9))[_0x5cad('0x44')](handleError(_0x2c7eda,null));};exports[_0x5cad('0x24')]=function(_0x50aa56,_0x35cf14){if(_0x50aa56['body']['id']){delete _0x50aa56['body']['id'];}return db[_0x5cad('0x2b')][_0x5cad('0x4a')]({'where':{'id':_0x50aa56[_0x5cad('0x46')]['id']}})['then'](handleEntityNotFound(_0x35cf14,null))[_0x5cad('0x25')](saveUpdates(_0x50aa56[_0x5cad('0x49')],null))[_0x5cad('0x25')](respondWithResult(_0x35cf14,null))[_0x5cad('0x44')](handleError(_0x35cf14,null));};exports[_0x5cad('0x26')]=function(_0x4ef241,_0x3d20c4){return db['SquareReport'][_0x5cad('0x4a')]({'where':{'id':_0x4ef241[_0x5cad('0x46')]['id']}})[_0x5cad('0x25')](handleEntityNotFound(_0x3d20c4,null))[_0x5cad('0x25')](removeEntity(_0x3d20c4,null))['catch'](handleError(_0x3d20c4,null));};exports[_0x5cad('0x4b')]=function(_0x31b690,_0x39b0cd){return db[_0x5cad('0x2b')][_0x5cad('0x4b')]()[_0x5cad('0x25')](respondWithResult(_0x39b0cd,null))[_0x5cad('0x44')](handleError(_0x39b0cd,null));};
\ No newline at end of file
+var _0x95c8=['limit','count','offset','Content-Range','json','apply','reject','save','update','then','error','stack','name','send','index','map','rawAttributes','type','key','model','keys','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','SquareReport','includeAll','include','findAll','rows','catch','show','params','length','find','create','body','describe','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','sox','to-csv','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status'];(function(_0x452450,_0x40b419){var _0x448b19=function(_0x5467b0){while(--_0x5467b0){_0x452450['push'](_0x452450['shift']());}};_0x448b19(++_0x40b419);}(_0x95c8,0x80));var _0x895c=function(_0x37af75,_0x12150b){_0x37af75=_0x37af75-0x0;var _0x5e30b1=_0x95c8[_0x37af75];return _0x5e30b1;};'use strict';var emlformat=require(_0x895c('0x0'));var rimraf=require(_0x895c('0x1'));var zipdir=require(_0x895c('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x895c('0x3'));var moment=require(_0x895c('0x4'));var BPromise=require(_0x895c('0x5'));var Mustache=require(_0x895c('0x6'));var util=require(_0x895c('0x7'));var path=require('path');var sox=require(_0x895c('0x8'));var csv=require(_0x895c('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x895c('0xa'));var squel=require(_0x895c('0xb'));var crypto=require(_0x895c('0xc'));var jsforce=require(_0x895c('0xd'));var deskjs=require(_0x895c('0xe'));var toCsv=require(_0x895c('0x9'));var querystring=require(_0x895c('0xf'));var Papa=require(_0x895c('0x10'));var Redis=require(_0x895c('0x11'));var authService=require(_0x895c('0x12'));var qs=require(_0x895c('0x13'));var as=require(_0x895c('0x14'));var hardwareService=require(_0x895c('0x15'));var logger=require(_0x895c('0x16'))(_0x895c('0x17'));var utils=require(_0x895c('0x18'));var config=require(_0x895c('0x19'));var licenseUtil=require(_0x895c('0x1a'));var db=require(_0x895c('0x1b'))['db'];function respondWithStatusCode(_0x552bb2,_0x191e8e){_0x191e8e=_0x191e8e||0xcc;return function(_0x15e3a6){if(_0x15e3a6){return _0x552bb2[_0x895c('0x1c')](_0x191e8e);}return _0x552bb2[_0x895c('0x1d')](_0x191e8e)['end']();};}function respondWithResult(_0xd35380,_0xe26195){_0xe26195=_0xe26195||0xc8;return function(_0x32006b){if(_0x32006b){return _0xd35380[_0x895c('0x1d')](_0xe26195)['json'](_0x32006b);}};}function respondWithFilteredResult(_0x20e581,_0x2a5292){return function(_0x3b13e1){if(_0x3b13e1){var _0xb72604=typeof _0x2a5292['offset']==='undefined'&&typeof _0x2a5292[_0x895c('0x1e')]==='undefined';var _0x4dfb3f=_0x3b13e1[_0x895c('0x1f')];var _0x2fabbd=_0xb72604?0x0:_0x2a5292[_0x895c('0x20')];var _0xb2e029=_0xb72604?_0x3b13e1[_0x895c('0x1f')]:_0x2a5292[_0x895c('0x20')]+_0x2a5292[_0x895c('0x1e')];var _0x42ea44;if(_0xb2e029>=_0x4dfb3f){_0xb2e029=_0x4dfb3f;_0x42ea44=0xc8;}else{_0x42ea44=0xce;}_0x20e581[_0x895c('0x1d')](_0x42ea44);return _0x20e581['set'](_0x895c('0x21'),_0x2fabbd+'-'+_0xb2e029+'/'+_0x4dfb3f)[_0x895c('0x22')](_0x3b13e1);}return null;};}function patchUpdates(_0x1e4ed2){return function(_0x41e87d){try{jsonpatch[_0x895c('0x23')](_0x41e87d,_0x1e4ed2,!![]);}catch(_0x3ecb97){return BPromise[_0x895c('0x24')](_0x3ecb97);}return _0x41e87d[_0x895c('0x25')]();};}function saveUpdates(_0x222759,_0x589f26){return function(_0x17fe95){if(_0x17fe95){return _0x17fe95[_0x895c('0x26')](_0x222759)[_0x895c('0x27')](function(_0x5051cf){return _0x5051cf;});}return null;};}function removeEntity(_0x5c8741,_0x46e54d){return function(_0x2cc4ec){if(_0x2cc4ec){return _0x2cc4ec['destroy']()[_0x895c('0x27')](function(){_0x5c8741[_0x895c('0x1d')](0xcc)['end']();});}};}function handleEntityNotFound(_0x30903a,_0x4686d5){return function(_0x5c6454){if(!_0x5c6454){_0x30903a[_0x895c('0x1c')](0x194);}return _0x5c6454;};}function handleError(_0x5cd245,_0x12bbb6){_0x12bbb6=_0x12bbb6||0x1f4;return function(_0x5346f1){logger[_0x895c('0x28')](_0x5346f1[_0x895c('0x29')]);if(_0x5346f1[_0x895c('0x2a')]){delete _0x5346f1['name'];}_0x5cd245[_0x895c('0x1d')](_0x12bbb6)[_0x895c('0x2b')](_0x5346f1);};}exports[_0x895c('0x2c')]=function(_0x4a8425,_0x322ca2){var _0x53f010={},_0x3cb0a8={},_0x48795b={'count':0x0,'rows':[]};var _0x9129e9=_[_0x895c('0x2d')](db['SquareReport'][_0x895c('0x2e')],function(_0x35a99c){return{'name':_0x35a99c['fieldName'],'type':_0x35a99c[_0x895c('0x2f')][_0x895c('0x30')]};});_0x3cb0a8[_0x895c('0x31')]=_[_0x895c('0x2d')](_0x9129e9,'name');_0x3cb0a8['query']=_[_0x895c('0x32')](_0x4a8425[_0x895c('0x33')]);_0x3cb0a8[_0x895c('0x34')]=_[_0x895c('0x35')](_0x3cb0a8['model'],_0x3cb0a8[_0x895c('0x33')]);_0x53f010[_0x895c('0x36')]=_[_0x895c('0x35')](_0x3cb0a8[_0x895c('0x31')],qs['fields'](_0x4a8425['query'][_0x895c('0x37')]));_0x53f010[_0x895c('0x36')]=_0x53f010['attributes']['length']?_0x53f010['attributes']:_0x3cb0a8[_0x895c('0x31')];if(!_0x4a8425[_0x895c('0x33')][_0x895c('0x38')](_0x895c('0x39'))){_0x53f010[_0x895c('0x1e')]=qs['limit'](_0x4a8425[_0x895c('0x33')]['limit']);_0x53f010[_0x895c('0x20')]=qs[_0x895c('0x20')](_0x4a8425[_0x895c('0x33')][_0x895c('0x20')]);}_0x53f010[_0x895c('0x3a')]=qs[_0x895c('0x3b')](_0x4a8425['query']['sort']);_0x53f010[_0x895c('0x3c')]=qs[_0x895c('0x34')](_[_0x895c('0x3d')](_0x4a8425[_0x895c('0x33')],_0x3cb0a8['filters']),_0x9129e9);if(_0x4a8425['query'][_0x895c('0x3e')]){_0x53f010[_0x895c('0x3c')]=_[_0x895c('0x3f')](_0x53f010['where'],{'$or':_[_0x895c('0x2d')](_0x9129e9,function(_0x52c771){if(_0x52c771[_0x895c('0x2f')]!==_0x895c('0x40')){var _0x14a790={};_0x14a790[_0x52c771['name']]={'$like':'%'+_0x4a8425[_0x895c('0x33')][_0x895c('0x3e')]+'%'};return _0x14a790;}})});}_0x53f010=_[_0x895c('0x3f')]({},_0x53f010,_0x4a8425[_0x895c('0x41')]);var _0x336a95={'where':_0x53f010[_0x895c('0x3c')]};return db[_0x895c('0x42')]['count'](_0x336a95)[_0x895c('0x27')](function(_0x41b4b6){_0x48795b[_0x895c('0x1f')]=_0x41b4b6;if(_0x4a8425[_0x895c('0x33')][_0x895c('0x43')]){_0x53f010[_0x895c('0x44')]=[{'all':!![]}];}return db[_0x895c('0x42')][_0x895c('0x45')](_0x53f010);})[_0x895c('0x27')](function(_0x23eae1){_0x48795b[_0x895c('0x46')]=_0x23eae1;return _0x48795b;})[_0x895c('0x27')](respondWithFilteredResult(_0x322ca2,_0x53f010))[_0x895c('0x47')](handleError(_0x322ca2,null));};exports[_0x895c('0x48')]=function(_0x32f042,_0x5654c3){var _0x3ef075={'raw':!![],'where':{'id':_0x32f042[_0x895c('0x49')]['id']}},_0x4d91b3={};_0x4d91b3[_0x895c('0x31')]=_['keys'](db[_0x895c('0x42')][_0x895c('0x2e')]);_0x4d91b3[_0x895c('0x33')]=_['keys'](_0x32f042['query']);_0x4d91b3[_0x895c('0x34')]=_[_0x895c('0x35')](_0x4d91b3[_0x895c('0x31')],_0x4d91b3[_0x895c('0x33')]);_0x3ef075[_0x895c('0x36')]=_['intersection'](_0x4d91b3[_0x895c('0x31')],qs[_0x895c('0x37')](_0x32f042[_0x895c('0x33')][_0x895c('0x37')]));_0x3ef075['attributes']=_0x3ef075['attributes'][_0x895c('0x4a')]?_0x3ef075['attributes']:_0x4d91b3['model'];if(_0x32f042['query'][_0x895c('0x43')]){_0x3ef075[_0x895c('0x44')]=[{'all':!![]}];}_0x3ef075=_[_0x895c('0x3f')]({},_0x3ef075,_0x32f042['options']);return db[_0x895c('0x42')][_0x895c('0x4b')](_0x3ef075)['then'](handleEntityNotFound(_0x5654c3,null))[_0x895c('0x27')](respondWithResult(_0x5654c3,null))[_0x895c('0x47')](handleError(_0x5654c3,null));};exports[_0x895c('0x4c')]=function(_0x300045,_0x5d9323){return db[_0x895c('0x42')][_0x895c('0x4c')](_0x300045['body'],{})[_0x895c('0x27')](respondWithResult(_0x5d9323,0xc9))['catch'](handleError(_0x5d9323,null));};exports[_0x895c('0x26')]=function(_0x3e3dc3,_0x5f2b0c){if(_0x3e3dc3[_0x895c('0x4d')]['id']){delete _0x3e3dc3['body']['id'];}return db[_0x895c('0x42')][_0x895c('0x4b')]({'where':{'id':_0x3e3dc3[_0x895c('0x49')]['id']}})[_0x895c('0x27')](handleEntityNotFound(_0x5f2b0c,null))['then'](saveUpdates(_0x3e3dc3['body'],null))[_0x895c('0x27')](respondWithResult(_0x5f2b0c,null))[_0x895c('0x47')](handleError(_0x5f2b0c,null));};exports['destroy']=function(_0x5e321a,_0x566cf1){return db['SquareReport']['find']({'where':{'id':_0x5e321a['params']['id']}})[_0x895c('0x27')](handleEntityNotFound(_0x566cf1,null))['then'](removeEntity(_0x566cf1,null))[_0x895c('0x47')](handleError(_0x566cf1,null));};exports[_0x895c('0x4e')]=function(_0x507b4c,_0x9f09e1){return db['SquareReport'][_0x895c('0x4e')]()['then'](respondWithResult(_0x9f09e1,null))[_0x895c('0x47')](handleError(_0x9f09e1,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x11f5=['SquareReport','report_square','uid_pname','uniqueid','project_name','leaveAt','lodash','util','../../config/logger','api','moment','bluebird','path','rimraf','../../config/environment','./squareReport.attributes','exports','define'];(function(_0x232be7,_0x36a8d1){var _0x3acf9a=function(_0xad0969){while(--_0xad0969){_0x232be7['push'](_0x232be7['shift']());}};_0x3acf9a(++_0x36a8d1);}(_0x11f5,0x180));var _0x511f=function(_0x4a5232,_0x33288d){_0x4a5232=_0x4a5232-0x0;var _0x14a5ab=_0x11f5[_0x4a5232];return _0x14a5ab;};'use strict';var _=require(_0x511f('0x0'));var util=require(_0x511f('0x1'));var logger=require(_0x511f('0x2'))(_0x511f('0x3'));var moment=require(_0x511f('0x4'));var BPromise=require(_0x511f('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x511f('0x6'));var rimraf=require(_0x511f('0x7'));var config=require(_0x511f('0x8'));var attributes=require(_0x511f('0x9'));module[_0x511f('0xa')]=function(_0x22ad70,_0x79af82){return _0x22ad70[_0x511f('0xb')](_0x511f('0xc'),attributes,{'tableName':_0x511f('0xd'),'paranoid':![],'indexes':[{'name':_0x511f('0xe'),'fields':[_0x511f('0xf'),_0x511f('0x10')]},{'name':_0x511f('0x11'),'fields':['leaveAt']}],'timestamps':!![]});};
\ No newline at end of file
+var _0xae9f=['moment','request-promise','rimraf','exports','define','SquareReport','uid_pname','uniqueid','project_name','leaveAt','lodash','util','../../config/logger','api'];(function(_0x23dc2e,_0x501165){var _0x23efb4=function(_0x2cbf4a){while(--_0x2cbf4a){_0x23dc2e['push'](_0x23dc2e['shift']());}};_0x23efb4(++_0x501165);}(_0xae9f,0x114));var _0xfae9=function(_0x331f1b,_0x47ff19){_0x331f1b=_0x331f1b-0x0;var _0x50bc14=_0xae9f[_0x331f1b];return _0x50bc14;};'use strict';var _=require(_0xfae9('0x0'));var util=require(_0xfae9('0x1'));var logger=require(_0xfae9('0x2'))(_0xfae9('0x3'));var moment=require(_0xfae9('0x4'));var BPromise=require('bluebird');var rp=require(_0xfae9('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0xfae9('0x6'));var config=require('../../config/environment');var attributes=require('./squareReport.attributes');module[_0xfae9('0x7')]=function(_0x589798,_0x55ba5d){return _0x589798[_0xfae9('0x8')](_0xfae9('0x9'),attributes,{'tableName':'report_square','paranoid':![],'indexes':[{'name':_0xfae9('0xa'),'fields':[_0xfae9('0xb'),_0xfae9('0xc')]},{'name':_0xfae9('0xd'),'fields':[_0xfae9('0xd')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xeee5=['util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','http','then','info','SquareReport,\x20%s,\x20%s','stringify','error','code','message','SquareReport','body','raw','debug','CreateSquareReport','catch','UpdateSquareReport','update','options','where','limit','lodash'];(function(_0x1cc060,_0x1afbdc){var _0x5c7e10=function(_0x15e8d6){while(--_0x15e8d6){_0x1cc060['push'](_0x1cc060['shift']());}};_0x5c7e10(++_0x1afbdc);}(_0xeee5,0x6f));var _0x5eee=function(_0x510c01,_0x5ca5c0){_0x510c01=_0x510c01-0x0;var _0x515f9f=_0xeee5[_0x510c01];return _0x515f9f;};'use strict';var _=require(_0x5eee('0x0'));var util=require(_0x5eee('0x1'));var moment=require(_0x5eee('0x2'));var BPromise=require(_0x5eee('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x5eee('0x4'));var db=require(_0x5eee('0x5'))['db'];var utils=require(_0x5eee('0x6'));var logger=require('../../config/logger')(_0x5eee('0x7'));var config=require(_0x5eee('0x8'));var jayson=require('jayson/promise');var client=jayson['client'][_0x5eee('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x524b1e,_0x50dc56,_0x11d37d){return new BPromise(function(_0x2164f2,_0x2ac625){return client['request'](_0x524b1e,_0x11d37d)[_0x5eee('0xa')](function(_0x291a09){logger[_0x5eee('0xb')](_0x5eee('0xc'),_0x50dc56,'request\x20sent');logger['debug']('SquareReport,\x20%s,\x20%s,\x20%s',_0x50dc56,'request\x20sent',JSON[_0x5eee('0xd')](_0x291a09));if(_0x291a09[_0x5eee('0xe')]){if(_0x291a09[_0x5eee('0xe')][_0x5eee('0xf')]===0x1f4){logger[_0x5eee('0xe')](_0x5eee('0xc'),_0x50dc56,_0x291a09[_0x5eee('0xe')][_0x5eee('0x10')]);return _0x2ac625(_0x291a09[_0x5eee('0xe')][_0x5eee('0x10')]);}logger[_0x5eee('0xe')](_0x5eee('0xc'),_0x50dc56,_0x291a09['error']['message']);return _0x2164f2(_0x291a09[_0x5eee('0xe')][_0x5eee('0x10')]);}else{logger['info'](_0x5eee('0xc'),_0x50dc56,'request\x20sent');_0x2164f2(_0x291a09['result'][_0x5eee('0x10')]);}})['catch'](function(_0x3d3424){logger['error'](_0x5eee('0xc'),_0x50dc56,_0x3d3424);_0x2ac625(_0x3d3424);});});}exports['CreateSquareReport']=function(_0x9d4970){var _0x4f0010=this;return new Promise(function(_0x34c548,_0x1fe153){return db[_0x5eee('0x11')]['create'](_0x9d4970[_0x5eee('0x12')],{'raw':_0x9d4970['options']?_0x9d4970['options'][_0x5eee('0x13')]===undefined?!![]:![]:!![]})[_0x5eee('0xa')](function(_0x253b8d){logger[_0x5eee('0xb')]('CreateSquareReport',_0x9d4970);logger[_0x5eee('0x14')](_0x5eee('0x15'),_0x9d4970,JSON['stringify'](_0x253b8d));_0x34c548(_0x253b8d);})[_0x5eee('0x16')](function(_0x4dd402){logger[_0x5eee('0xe')](_0x5eee('0x15'),_0x4dd402[_0x5eee('0x10')],_0x9d4970);_0x1fe153(_0x4f0010['error'](0x1f4,_0x4dd402[_0x5eee('0x10')]));});});};exports[_0x5eee('0x17')]=function(_0x5a3032){var _0x3fb108=this;return new Promise(function(_0x3102fb,_0x3d7126){return db[_0x5eee('0x11')][_0x5eee('0x18')](_0x5a3032[_0x5eee('0x12')],{'raw':_0x5a3032['options']?_0x5a3032[_0x5eee('0x19')][_0x5eee('0x13')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x5a3032[_0x5eee('0x19')]?_0x5a3032[_0x5eee('0x19')][_0x5eee('0x1a')]||null:null,'attributes':_0x5a3032[_0x5eee('0x19')]?_0x5a3032[_0x5eee('0x19')]['attributes']||null:null,'limit':_0x5a3032[_0x5eee('0x19')]?_0x5a3032[_0x5eee('0x19')][_0x5eee('0x1b')]||null:null})[_0x5eee('0xa')](function(_0x343ab7){logger['info'](_0x5eee('0x17'),_0x5a3032);logger[_0x5eee('0x14')](_0x5eee('0x17'),_0x5a3032,JSON[_0x5eee('0xd')](_0x343ab7));_0x3102fb(_0x343ab7);})['catch'](function(_0x487c22){logger['error'](_0x5eee('0x17'),_0x487c22[_0x5eee('0x10')],_0x5a3032);_0x3d7126(_0x3fb108[_0x5eee('0xe')](0x1f4,_0x487c22[_0x5eee('0x10')]));});});};
\ No newline at end of file
+var _0xff66=['body','options','raw','CreateSquareReport','UpdateSquareReport','update','where','catch','lodash','bluebird','randomstring','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','then','info','request\x20sent','debug','SquareReport,\x20%s,\x20%s,\x20%s','stringify','error','message','SquareReport,\x20%s,\x20%s','result','SquareReport','create'];(function(_0x221153,_0x59738b){var _0x43938d=function(_0x241bec){while(--_0x241bec){_0x221153['push'](_0x221153['shift']());}};_0x43938d(++_0x59738b);}(_0xff66,0x1ac));var _0x6ff6=function(_0x2d4421,_0x15a84f){_0x2d4421=_0x2d4421-0x0;var _0x2d3b01=_0xff66[_0x2d4421];return _0x2d3b01;};'use strict';var _=require(_0x6ff6('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0x6ff6('0x1'));var rs=require(_0x6ff6('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x6ff6('0x3'))['db'];var utils=require(_0x6ff6('0x4'));var logger=require('../../config/logger')(_0x6ff6('0x5'));var config=require(_0x6ff6('0x6'));var jayson=require(_0x6ff6('0x7'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x3c31d3,_0x4db195,_0x361cc2){return new BPromise(function(_0x4801c2,_0x1fff68){return client['request'](_0x3c31d3,_0x361cc2)[_0x6ff6('0x8')](function(_0x397344){logger[_0x6ff6('0x9')]('SquareReport,\x20%s,\x20%s',_0x4db195,_0x6ff6('0xa'));logger[_0x6ff6('0xb')](_0x6ff6('0xc'),_0x4db195,'request\x20sent',JSON[_0x6ff6('0xd')](_0x397344));if(_0x397344[_0x6ff6('0xe')]){if(_0x397344[_0x6ff6('0xe')]['code']===0x1f4){logger[_0x6ff6('0xe')]('SquareReport,\x20%s,\x20%s',_0x4db195,_0x397344['error'][_0x6ff6('0xf')]);return _0x1fff68(_0x397344[_0x6ff6('0xe')][_0x6ff6('0xf')]);}logger[_0x6ff6('0xe')](_0x6ff6('0x10'),_0x4db195,_0x397344['error']['message']);return _0x4801c2(_0x397344[_0x6ff6('0xe')][_0x6ff6('0xf')]);}else{logger[_0x6ff6('0x9')](_0x6ff6('0x10'),_0x4db195,'request\x20sent');_0x4801c2(_0x397344[_0x6ff6('0x11')][_0x6ff6('0xf')]);}})['catch'](function(_0xc6084f){logger['error'](_0x6ff6('0x10'),_0x4db195,_0xc6084f);_0x1fff68(_0xc6084f);});});}exports['CreateSquareReport']=function(_0x353ee3){var _0x864ef8=this;return new Promise(function(_0x4f2dcb,_0x4b3c70){return db[_0x6ff6('0x12')][_0x6ff6('0x13')](_0x353ee3[_0x6ff6('0x14')],{'raw':_0x353ee3[_0x6ff6('0x15')]?_0x353ee3[_0x6ff6('0x15')][_0x6ff6('0x16')]===undefined?!![]:![]:!![]})[_0x6ff6('0x8')](function(_0xfebe34){logger[_0x6ff6('0x9')](_0x6ff6('0x17'),_0x353ee3);logger[_0x6ff6('0xb')](_0x6ff6('0x17'),_0x353ee3,JSON[_0x6ff6('0xd')](_0xfebe34));_0x4f2dcb(_0xfebe34);})['catch'](function(_0x400ba5){logger['error'](_0x6ff6('0x17'),_0x400ba5[_0x6ff6('0xf')],_0x353ee3);_0x4b3c70(_0x864ef8[_0x6ff6('0xe')](0x1f4,_0x400ba5['message']));});});};exports[_0x6ff6('0x18')]=function(_0x11d4da){var _0x178ac2=this;return new Promise(function(_0x5c470f,_0x4ab8f6){return db[_0x6ff6('0x12')][_0x6ff6('0x19')](_0x11d4da['body'],{'raw':_0x11d4da['options']?_0x11d4da[_0x6ff6('0x15')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x11d4da[_0x6ff6('0x15')]?_0x11d4da[_0x6ff6('0x15')][_0x6ff6('0x1a')]||null:null,'attributes':_0x11d4da[_0x6ff6('0x15')]?_0x11d4da[_0x6ff6('0x15')]['attributes']||null:null,'limit':_0x11d4da['options']?_0x11d4da[_0x6ff6('0x15')]['limit']||null:null})[_0x6ff6('0x8')](function(_0x44b03c){logger[_0x6ff6('0x9')]('UpdateSquareReport',_0x11d4da);logger[_0x6ff6('0xb')](_0x6ff6('0x18'),_0x11d4da,JSON[_0x6ff6('0xd')](_0x44b03c));_0x5c470f(_0x44b03c);})[_0x6ff6('0x1b')](function(_0x25fa4d){logger[_0x6ff6('0xe')](_0x6ff6('0x18'),_0x25fa4d[_0x6ff6('0xf')],_0x11d4da);_0x4ab8f6(_0x178ac2[_0x6ff6('0xe')](0x1f4,_0x25fa4d['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4d6d=['delete','destroy','multer','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./squareReportDetail.controller','get','isAuthenticated','index','/describe','describe','show','create','put','/:id','update'];(function(_0x3c6a2f,_0x398815){var _0x5a90e3=function(_0x25eada){while(--_0x25eada){_0x3c6a2f['push'](_0x3c6a2f['shift']());}};_0x5a90e3(++_0x398815);}(_0x4d6d,0xfe));var _0xd4d6=function(_0x2c723d,_0x4e2bbd){_0x2c723d=_0x2c723d-0x0;var _0x1ddced=_0x4d6d[_0x2c723d];return _0x1ddced;};'use strict';var multer=require(_0xd4d6('0x0'));var util=require('util');var path=require(_0xd4d6('0x1'));var timeout=require(_0xd4d6('0x2'));var express=require('express');var router=express[_0xd4d6('0x3')]();var fs_extra=require(_0xd4d6('0x4'));var auth=require(_0xd4d6('0x5'));var interaction=require(_0xd4d6('0x6'));var config=require(_0xd4d6('0x7'));var controller=require(_0xd4d6('0x8'));router[_0xd4d6('0x9')]('/',auth[_0xd4d6('0xa')](),controller[_0xd4d6('0xb')]);router[_0xd4d6('0x9')](_0xd4d6('0xc'),auth['isAuthenticated'](),controller[_0xd4d6('0xd')]);router['get']('/:id',auth[_0xd4d6('0xa')](),controller[_0xd4d6('0xe')]);router['post']('/',auth[_0xd4d6('0xa')](),controller[_0xd4d6('0xf')]);router[_0xd4d6('0x10')](_0xd4d6('0x11'),auth[_0xd4d6('0xa')](),controller[_0xd4d6('0x12')]);router[_0xd4d6('0x13')]('/:id',auth[_0xd4d6('0xa')](),controller[_0xd4d6('0x14')]);module['exports']=router;
\ No newline at end of file
+var _0xa16b=['put','update','/:id','destroy','exports','multer','util','path','connect-timeout','express','../../components/interaction/service','../../config/environment','./squareReportDetail.controller','get','isAuthenticated','index','describe','show','post'];(function(_0x29bd5d,_0xb12096){var _0x14f0e2=function(_0x2c732c){while(--_0x2c732c){_0x29bd5d['push'](_0x29bd5d['shift']());}};_0x14f0e2(++_0xb12096);}(_0xa16b,0x10f));var _0xba16=function(_0x313dd3,_0x4afd33){_0x313dd3=_0x313dd3-0x0;var _0x2ad984=_0xa16b[_0x313dd3];return _0x2ad984;};'use strict';var multer=require(_0xba16('0x0'));var util=require(_0xba16('0x1'));var path=require(_0xba16('0x2'));var timeout=require(_0xba16('0x3'));var express=require(_0xba16('0x4'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0xba16('0x5'));var config=require(_0xba16('0x6'));var controller=require(_0xba16('0x7'));router[_0xba16('0x8')]('/',auth[_0xba16('0x9')](),controller[_0xba16('0xa')]);router['get']('/describe',auth[_0xba16('0x9')](),controller[_0xba16('0xb')]);router[_0xba16('0x8')]('/:id',auth['isAuthenticated'](),controller[_0xba16('0xc')]);router[_0xba16('0xd')]('/',auth[_0xba16('0x9')](),controller['create']);router[_0xba16('0xe')]('/:id',auth[_0xba16('0x9')](),controller[_0xba16('0xf')]);router['delete'](_0xba16('0x10'),auth[_0xba16('0x9')](),controller[_0xba16('0x11')]);module[_0xba16('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x78e9=['STRING','TEXT','sequelize','exports'];(function(_0x42d1f8,_0x22e529){var _0x40d234=function(_0xd59b57){while(--_0xd59b57){_0x42d1f8['push'](_0x42d1f8['shift']());}};_0x40d234(++_0x22e529);}(_0x78e9,0x1aa));var _0x978e=function(_0x1c3abd,_0x2730ec){_0x1c3abd=_0x1c3abd-0x0;var _0x551272=_0x78e9[_0x1c3abd];return _0x551272;};'use strict';var Sequelize=require(_0x978e('0x0'));module[_0x978e('0x1')]={'uniqueid':{'type':Sequelize[_0x978e('0x2')]},'node':{'type':Sequelize[_0x978e('0x2')]},'application':{'type':Sequelize[_0x978e('0x2')]},'data':{'type':Sequelize[_0x978e('0x3')]},'project_name':{'type':Sequelize[_0x978e('0x2')]},'callerid':{'type':Sequelize[_0x978e('0x2')]}};
\ No newline at end of file
+var _0x81ff=['sequelize','exports','STRING'];(function(_0x4a235f,_0x1facaa){var _0x34d802=function(_0x52ffb4){while(--_0x52ffb4){_0x4a235f['push'](_0x4a235f['shift']());}};_0x34d802(++_0x1facaa);}(_0x81ff,0x1bf));var _0xf81f=function(_0x47aefd,_0x51cfb8){_0x47aefd=_0x47aefd-0x0;var _0xdf4bba=_0x81ff[_0x47aefd];return _0xdf4bba;};'use strict';var Sequelize=require(_0xf81f('0x0'));module[_0xf81f('0x1')]={'uniqueid':{'type':Sequelize[_0xf81f('0x2')]},'node':{'type':Sequelize['STRING']},'application':{'type':Sequelize[_0xf81f('0x2')]},'data':{'type':Sequelize['TEXT']},'project_name':{'type':Sequelize[_0xf81f('0x2')]},'callerid':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6f69=['create','body','params','describe','eml-format','rimraf','zip-dir','request-promise','mustache','util','sox','ejs','fs-extra','lodash','to-csv','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','reject','save','update','destroy','then','error','stack','name','send','map','rawAttributes','type','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','filter','merge','VIRTUAL','options','SquareDetailsReport','includeAll','include','catch','show','keys','find'];(function(_0x26deed,_0xb1b062){var _0x399378=function(_0x182c7d){while(--_0x182c7d){_0x26deed['push'](_0x26deed['shift']());}};_0x399378(++_0xb1b062);}(_0x6f69,0x1e0));var _0x96f6=function(_0x580cd6,_0x984f0d){_0x580cd6=_0x580cd6-0x0;var _0x4ee9ca=_0x6f69[_0x580cd6];return _0x4ee9ca;};'use strict';var emlformat=require(_0x96f6('0x0'));var rimraf=require(_0x96f6('0x1'));var zipdir=require(_0x96f6('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x96f6('0x3'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x96f6('0x4'));var util=require(_0x96f6('0x5'));var path=require('path');var sox=require(_0x96f6('0x6'));var csv=require('to-csv');var ejs=require(_0x96f6('0x7'));var fs=require('fs');var fs_extra=require(_0x96f6('0x8'));var _=require(_0x96f6('0x9'));var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x96f6('0xa'));var querystring=require(_0x96f6('0xb'));var Papa=require(_0x96f6('0xc'));var Redis=require(_0x96f6('0xd'));var authService=require('../../components/auth/service');var qs=require(_0x96f6('0xe'));var as=require(_0x96f6('0xf'));var hardwareService=require(_0x96f6('0x10'));var logger=require('../../config/logger')(_0x96f6('0x11'));var utils=require(_0x96f6('0x12'));var config=require(_0x96f6('0x13'));var licenseUtil=require('../../config/license/util');var db=require(_0x96f6('0x14'))['db'];function respondWithStatusCode(_0x3cb16e,_0x5ea211){_0x5ea211=_0x5ea211||0xcc;return function(_0x429b73){if(_0x429b73){return _0x3cb16e[_0x96f6('0x15')](_0x5ea211);}return _0x3cb16e[_0x96f6('0x16')](_0x5ea211)[_0x96f6('0x17')]();};}function respondWithResult(_0x5005d2,_0x32cad1){_0x32cad1=_0x32cad1||0xc8;return function(_0x23a715){if(_0x23a715){return _0x5005d2['status'](_0x32cad1)[_0x96f6('0x18')](_0x23a715);}};}function respondWithFilteredResult(_0x682584,_0x3ef6da){return function(_0x3fbce4){if(_0x3fbce4){var _0x40e5fb=typeof _0x3ef6da[_0x96f6('0x19')]===_0x96f6('0x1a')&&typeof _0x3ef6da[_0x96f6('0x1b')]===_0x96f6('0x1a');var _0x476483=_0x3fbce4[_0x96f6('0x1c')];var _0x440612=_0x40e5fb?0x0:_0x3ef6da['offset'];var _0x3fc940=_0x40e5fb?_0x3fbce4[_0x96f6('0x1c')]:_0x3ef6da[_0x96f6('0x19')]+_0x3ef6da[_0x96f6('0x1b')];var _0x47e1f9;if(_0x3fc940>=_0x476483){_0x3fc940=_0x476483;_0x47e1f9=0xc8;}else{_0x47e1f9=0xce;}_0x682584[_0x96f6('0x16')](_0x47e1f9);return _0x682584[_0x96f6('0x1d')]('Content-Range',_0x440612+'-'+_0x3fc940+'/'+_0x476483)[_0x96f6('0x18')](_0x3fbce4);}return null;};}function patchUpdates(_0x1da931){return function(_0x2bbf51){try{jsonpatch['apply'](_0x2bbf51,_0x1da931,!![]);}catch(_0x574cbd){return BPromise[_0x96f6('0x1e')](_0x574cbd);}return _0x2bbf51[_0x96f6('0x1f')]();};}function saveUpdates(_0x164e30,_0x48edc1){return function(_0xd31ec5){if(_0xd31ec5){return _0xd31ec5[_0x96f6('0x20')](_0x164e30)['then'](function(_0x2dbb5d){return _0x2dbb5d;});}return null;};}function removeEntity(_0x4fba88,_0x4bcdd0){return function(_0x28166e){if(_0x28166e){return _0x28166e[_0x96f6('0x21')]()[_0x96f6('0x22')](function(){_0x4fba88[_0x96f6('0x16')](0xcc)[_0x96f6('0x17')]();});}};}function handleEntityNotFound(_0x1294bc,_0x478f12){return function(_0x4050a5){if(!_0x4050a5){_0x1294bc[_0x96f6('0x15')](0x194);}return _0x4050a5;};}function handleError(_0x57cba5,_0x4ab1ac){_0x4ab1ac=_0x4ab1ac||0x1f4;return function(_0x5eba24){logger[_0x96f6('0x23')](_0x5eba24[_0x96f6('0x24')]);if(_0x5eba24[_0x96f6('0x25')]){delete _0x5eba24['name'];}_0x57cba5['status'](_0x4ab1ac)[_0x96f6('0x26')](_0x5eba24);};}exports['index']=function(_0x40f5ee,_0x2b6061){var _0x58b19c={},_0x153d0a={},_0xdac583={'count':0x0,'rows':[]};var _0x5f0a45=_[_0x96f6('0x27')](db['SquareDetailsReport'][_0x96f6('0x28')],function(_0x13e873){return{'name':_0x13e873['fieldName'],'type':_0x13e873[_0x96f6('0x29')]['key']};});_0x153d0a[_0x96f6('0x2a')]=_['map'](_0x5f0a45,_0x96f6('0x25'));_0x153d0a[_0x96f6('0x2b')]=_['keys'](_0x40f5ee[_0x96f6('0x2b')]);_0x153d0a[_0x96f6('0x2c')]=_[_0x96f6('0x2d')](_0x153d0a[_0x96f6('0x2a')],_0x153d0a['query']);_0x58b19c[_0x96f6('0x2e')]=_[_0x96f6('0x2d')](_0x153d0a[_0x96f6('0x2a')],qs[_0x96f6('0x2f')](_0x40f5ee[_0x96f6('0x2b')][_0x96f6('0x2f')]));_0x58b19c[_0x96f6('0x2e')]=_0x58b19c[_0x96f6('0x2e')][_0x96f6('0x30')]?_0x58b19c[_0x96f6('0x2e')]:_0x153d0a[_0x96f6('0x2a')];if(!_0x40f5ee[_0x96f6('0x2b')][_0x96f6('0x31')](_0x96f6('0x32'))){_0x58b19c['limit']=qs[_0x96f6('0x1b')](_0x40f5ee[_0x96f6('0x2b')]['limit']);_0x58b19c[_0x96f6('0x19')]=qs[_0x96f6('0x19')](_0x40f5ee[_0x96f6('0x2b')][_0x96f6('0x19')]);}_0x58b19c['order']=qs[_0x96f6('0x33')](_0x40f5ee[_0x96f6('0x2b')][_0x96f6('0x33')]);_0x58b19c[_0x96f6('0x34')]=qs[_0x96f6('0x2c')](_['pick'](_0x40f5ee[_0x96f6('0x2b')],_0x153d0a[_0x96f6('0x2c')]),_0x5f0a45);if(_0x40f5ee[_0x96f6('0x2b')][_0x96f6('0x35')]){_0x58b19c[_0x96f6('0x34')]=_[_0x96f6('0x36')](_0x58b19c[_0x96f6('0x34')],{'$or':_[_0x96f6('0x27')](_0x5f0a45,function(_0x368889){if(_0x368889[_0x96f6('0x29')]!==_0x96f6('0x37')){var _0xb53d3d={};_0xb53d3d[_0x368889[_0x96f6('0x25')]]={'$like':'%'+_0x40f5ee[_0x96f6('0x2b')]['filter']+'%'};return _0xb53d3d;}})});}_0x58b19c=_[_0x96f6('0x36')]({},_0x58b19c,_0x40f5ee[_0x96f6('0x38')]);var _0x455521={'where':_0x58b19c[_0x96f6('0x34')]};return db[_0x96f6('0x39')][_0x96f6('0x1c')](_0x455521)[_0x96f6('0x22')](function(_0x5dd287){_0xdac583[_0x96f6('0x1c')]=_0x5dd287;if(_0x40f5ee['query'][_0x96f6('0x3a')]){_0x58b19c[_0x96f6('0x3b')]=[{'all':!![]}];}return db[_0x96f6('0x39')]['findAll'](_0x58b19c);})[_0x96f6('0x22')](function(_0x3b662f){_0xdac583['rows']=_0x3b662f;return _0xdac583;})['then'](respondWithFilteredResult(_0x2b6061,_0x58b19c))[_0x96f6('0x3c')](handleError(_0x2b6061,null));};exports[_0x96f6('0x3d')]=function(_0x5dce85,_0x3fcb7b){var _0x1f2c3b={'raw':!![],'where':{'id':_0x5dce85['params']['id']}},_0x52a3c5={};_0x52a3c5[_0x96f6('0x2a')]=_[_0x96f6('0x3e')](db['SquareDetailsReport']['rawAttributes']);_0x52a3c5['query']=_[_0x96f6('0x3e')](_0x5dce85[_0x96f6('0x2b')]);_0x52a3c5['filters']=_[_0x96f6('0x2d')](_0x52a3c5[_0x96f6('0x2a')],_0x52a3c5[_0x96f6('0x2b')]);_0x1f2c3b[_0x96f6('0x2e')]=_[_0x96f6('0x2d')](_0x52a3c5[_0x96f6('0x2a')],qs[_0x96f6('0x2f')](_0x5dce85[_0x96f6('0x2b')][_0x96f6('0x2f')]));_0x1f2c3b[_0x96f6('0x2e')]=_0x1f2c3b[_0x96f6('0x2e')][_0x96f6('0x30')]?_0x1f2c3b[_0x96f6('0x2e')]:_0x52a3c5['model'];if(_0x5dce85[_0x96f6('0x2b')][_0x96f6('0x3a')]){_0x1f2c3b[_0x96f6('0x3b')]=[{'all':!![]}];}_0x1f2c3b=_[_0x96f6('0x36')]({},_0x1f2c3b,_0x5dce85[_0x96f6('0x38')]);return db[_0x96f6('0x39')][_0x96f6('0x3f')](_0x1f2c3b)[_0x96f6('0x22')](handleEntityNotFound(_0x3fcb7b,null))[_0x96f6('0x22')](respondWithResult(_0x3fcb7b,null))[_0x96f6('0x3c')](handleError(_0x3fcb7b,null));};exports[_0x96f6('0x40')]=function(_0x377786,_0x11aeff){return db['SquareDetailsReport'][_0x96f6('0x40')](_0x377786[_0x96f6('0x41')],{})[_0x96f6('0x22')](respondWithResult(_0x11aeff,0xc9))[_0x96f6('0x3c')](handleError(_0x11aeff,null));};exports[_0x96f6('0x20')]=function(_0x255864,_0x573f5f){if(_0x255864['body']['id']){delete _0x255864[_0x96f6('0x41')]['id'];}return db['SquareDetailsReport']['find']({'where':{'id':_0x255864['params']['id']}})[_0x96f6('0x22')](handleEntityNotFound(_0x573f5f,null))['then'](saveUpdates(_0x255864['body'],null))[_0x96f6('0x22')](respondWithResult(_0x573f5f,null))[_0x96f6('0x3c')](handleError(_0x573f5f,null));};exports['destroy']=function(_0x19e81c,_0x35cfac){return db[_0x96f6('0x39')][_0x96f6('0x3f')]({'where':{'id':_0x19e81c[_0x96f6('0x42')]['id']}})[_0x96f6('0x22')](handleEntityNotFound(_0x35cfac,null))[_0x96f6('0x22')](removeEntity(_0x35cfac,null))[_0x96f6('0x3c')](handleError(_0x35cfac,null));};exports[_0x96f6('0x43')]=function(_0x2c6d27,_0x4493f2){return db['SquareDetailsReport'][_0x96f6('0x43')]()[_0x96f6('0x22')](respondWithResult(_0x4493f2,null))['catch'](handleError(_0x4493f2,null));};
\ No newline at end of file
+var _0xe002=['../../config/environment','../../config/license/util','status','end','json','undefined','limit','offset','Content-Range','apply','reject','save','then','destroy','error','stack','name','send','index','map','SquareDetailsReport','fieldName','type','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','count','includeAll','findAll','catch','show','params','rawAttributes','filters','include','find','body','update','describe','rimraf','zip-dir','fast-json-patch','mustache','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger'];(function(_0x3b380d,_0x4bf247){var _0x54502b=function(_0x35d207){while(--_0x35d207){_0x3b380d['push'](_0x3b380d['shift']());}};_0x54502b(++_0x4bf247);}(_0xe002,0x192));var _0x2e00=function(_0x4bcf38,_0x3c12be){_0x4bcf38=_0x4bcf38-0x0;var _0x4a89be=_0xe002[_0x4bcf38];return _0x4a89be;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x2e00('0x0'));var zipdir=require(_0x2e00('0x1'));var jsonpatch=require(_0x2e00('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x2e00('0x3'));var util=require('util');var path=require('path');var sox=require(_0x2e00('0x4'));var csv=require(_0x2e00('0x5'));var ejs=require(_0x2e00('0x6'));var fs=require('fs');var fs_extra=require(_0x2e00('0x7'));var _=require(_0x2e00('0x8'));var squel=require(_0x2e00('0x9'));var crypto=require(_0x2e00('0xa'));var jsforce=require('jsforce');var deskjs=require(_0x2e00('0xb'));var toCsv=require(_0x2e00('0x5'));var querystring=require(_0x2e00('0xc'));var Papa=require(_0x2e00('0xd'));var Redis=require(_0x2e00('0xe'));var authService=require('../../components/auth/service');var qs=require(_0x2e00('0xf'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x2e00('0x10'));var logger=require(_0x2e00('0x11'))('api');var utils=require('../../config/utils');var config=require(_0x2e00('0x12'));var licenseUtil=require(_0x2e00('0x13'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x355827,_0x5445b7){_0x5445b7=_0x5445b7||0xcc;return function(_0x315117){if(_0x315117){return _0x355827['sendStatus'](_0x5445b7);}return _0x355827[_0x2e00('0x14')](_0x5445b7)[_0x2e00('0x15')]();};}function respondWithResult(_0x5842e4,_0x1c230e){_0x1c230e=_0x1c230e||0xc8;return function(_0x4e2a11){if(_0x4e2a11){return _0x5842e4['status'](_0x1c230e)[_0x2e00('0x16')](_0x4e2a11);}};}function respondWithFilteredResult(_0xf1f672,_0x27e94a){return function(_0xfd5003){if(_0xfd5003){var _0x40c273=typeof _0x27e94a['offset']===_0x2e00('0x17')&&typeof _0x27e94a[_0x2e00('0x18')]===_0x2e00('0x17');var _0x3cbf9a=_0xfd5003['count'];var _0x3fc9b9=_0x40c273?0x0:_0x27e94a[_0x2e00('0x19')];var _0x2cf6f2=_0x40c273?_0xfd5003['count']:_0x27e94a['offset']+_0x27e94a[_0x2e00('0x18')];var _0xc1a4ed;if(_0x2cf6f2>=_0x3cbf9a){_0x2cf6f2=_0x3cbf9a;_0xc1a4ed=0xc8;}else{_0xc1a4ed=0xce;}_0xf1f672[_0x2e00('0x14')](_0xc1a4ed);return _0xf1f672['set'](_0x2e00('0x1a'),_0x3fc9b9+'-'+_0x2cf6f2+'/'+_0x3cbf9a)[_0x2e00('0x16')](_0xfd5003);}return null;};}function patchUpdates(_0xa52a0e){return function(_0x3724e9){try{jsonpatch[_0x2e00('0x1b')](_0x3724e9,_0xa52a0e,!![]);}catch(_0x1d698d){return BPromise[_0x2e00('0x1c')](_0x1d698d);}return _0x3724e9[_0x2e00('0x1d')]();};}function saveUpdates(_0x314358,_0x9330d8){return function(_0x58578a){if(_0x58578a){return _0x58578a['update'](_0x314358)[_0x2e00('0x1e')](function(_0x5bf722){return _0x5bf722;});}return null;};}function removeEntity(_0x593516,_0x55a540){return function(_0x97206c){if(_0x97206c){return _0x97206c[_0x2e00('0x1f')]()[_0x2e00('0x1e')](function(){_0x593516[_0x2e00('0x14')](0xcc)[_0x2e00('0x15')]();});}};}function handleEntityNotFound(_0xe7d6df,_0x52c604){return function(_0x171549){if(!_0x171549){_0xe7d6df['sendStatus'](0x194);}return _0x171549;};}function handleError(_0x16cb32,_0x2110df){_0x2110df=_0x2110df||0x1f4;return function(_0x4eba24){logger[_0x2e00('0x20')](_0x4eba24[_0x2e00('0x21')]);if(_0x4eba24[_0x2e00('0x22')]){delete _0x4eba24[_0x2e00('0x22')];}_0x16cb32[_0x2e00('0x14')](_0x2110df)[_0x2e00('0x23')](_0x4eba24);};}exports[_0x2e00('0x24')]=function(_0x16c4e3,_0x3c8177){var _0x5b0a64={},_0x1ad4aa={},_0x18c247={'count':0x0,'rows':[]};var _0x556c48=_[_0x2e00('0x25')](db[_0x2e00('0x26')]['rawAttributes'],function(_0x535025){return{'name':_0x535025[_0x2e00('0x27')],'type':_0x535025[_0x2e00('0x28')]['key']};});_0x1ad4aa[_0x2e00('0x29')]=_['map'](_0x556c48,'name');_0x1ad4aa[_0x2e00('0x2a')]=_[_0x2e00('0x2b')](_0x16c4e3[_0x2e00('0x2a')]);_0x1ad4aa['filters']=_[_0x2e00('0x2c')](_0x1ad4aa['model'],_0x1ad4aa['query']);_0x5b0a64[_0x2e00('0x2d')]=_[_0x2e00('0x2c')](_0x1ad4aa[_0x2e00('0x29')],qs[_0x2e00('0x2e')](_0x16c4e3[_0x2e00('0x2a')][_0x2e00('0x2e')]));_0x5b0a64['attributes']=_0x5b0a64[_0x2e00('0x2d')][_0x2e00('0x2f')]?_0x5b0a64[_0x2e00('0x2d')]:_0x1ad4aa[_0x2e00('0x29')];if(!_0x16c4e3[_0x2e00('0x2a')][_0x2e00('0x30')](_0x2e00('0x31'))){_0x5b0a64[_0x2e00('0x18')]=qs[_0x2e00('0x18')](_0x16c4e3['query'][_0x2e00('0x18')]);_0x5b0a64['offset']=qs[_0x2e00('0x19')](_0x16c4e3['query'][_0x2e00('0x19')]);}_0x5b0a64['order']=qs['sort'](_0x16c4e3[_0x2e00('0x2a')][_0x2e00('0x32')]);_0x5b0a64[_0x2e00('0x33')]=qs['filters'](_[_0x2e00('0x34')](_0x16c4e3[_0x2e00('0x2a')],_0x1ad4aa['filters']),_0x556c48);if(_0x16c4e3['query'][_0x2e00('0x35')]){_0x5b0a64[_0x2e00('0x33')]=_[_0x2e00('0x36')](_0x5b0a64[_0x2e00('0x33')],{'$or':_[_0x2e00('0x25')](_0x556c48,function(_0x5d1c5d){if(_0x5d1c5d[_0x2e00('0x28')]!==_0x2e00('0x37')){var _0x56d8cc={};_0x56d8cc[_0x5d1c5d[_0x2e00('0x22')]]={'$like':'%'+_0x16c4e3[_0x2e00('0x2a')][_0x2e00('0x35')]+'%'};return _0x56d8cc;}})});}_0x5b0a64=_[_0x2e00('0x36')]({},_0x5b0a64,_0x16c4e3[_0x2e00('0x38')]);var _0x45e3b9={'where':_0x5b0a64['where']};return db[_0x2e00('0x26')][_0x2e00('0x39')](_0x45e3b9)[_0x2e00('0x1e')](function(_0xf64be2){_0x18c247[_0x2e00('0x39')]=_0xf64be2;if(_0x16c4e3[_0x2e00('0x2a')][_0x2e00('0x3a')]){_0x5b0a64['include']=[{'all':!![]}];}return db['SquareDetailsReport'][_0x2e00('0x3b')](_0x5b0a64);})['then'](function(_0x17d85b){_0x18c247['rows']=_0x17d85b;return _0x18c247;})[_0x2e00('0x1e')](respondWithFilteredResult(_0x3c8177,_0x5b0a64))[_0x2e00('0x3c')](handleError(_0x3c8177,null));};exports[_0x2e00('0x3d')]=function(_0x2b6c0c,_0x4c210e){var _0x1c82fb={'raw':!![],'where':{'id':_0x2b6c0c[_0x2e00('0x3e')]['id']}},_0x3bee04={};_0x3bee04[_0x2e00('0x29')]=_[_0x2e00('0x2b')](db[_0x2e00('0x26')][_0x2e00('0x3f')]);_0x3bee04['query']=_[_0x2e00('0x2b')](_0x2b6c0c[_0x2e00('0x2a')]);_0x3bee04[_0x2e00('0x40')]=_[_0x2e00('0x2c')](_0x3bee04[_0x2e00('0x29')],_0x3bee04[_0x2e00('0x2a')]);_0x1c82fb[_0x2e00('0x2d')]=_[_0x2e00('0x2c')](_0x3bee04[_0x2e00('0x29')],qs[_0x2e00('0x2e')](_0x2b6c0c[_0x2e00('0x2a')][_0x2e00('0x2e')]));_0x1c82fb[_0x2e00('0x2d')]=_0x1c82fb['attributes'][_0x2e00('0x2f')]?_0x1c82fb['attributes']:_0x3bee04['model'];if(_0x2b6c0c[_0x2e00('0x2a')]['includeAll']){_0x1c82fb[_0x2e00('0x41')]=[{'all':!![]}];}_0x1c82fb=_[_0x2e00('0x36')]({},_0x1c82fb,_0x2b6c0c[_0x2e00('0x38')]);return db['SquareDetailsReport'][_0x2e00('0x42')](_0x1c82fb)[_0x2e00('0x1e')](handleEntityNotFound(_0x4c210e,null))[_0x2e00('0x1e')](respondWithResult(_0x4c210e,null))[_0x2e00('0x3c')](handleError(_0x4c210e,null));};exports['create']=function(_0x2040fa,_0x596bf7){return db['SquareDetailsReport']['create'](_0x2040fa[_0x2e00('0x43')],{})['then'](respondWithResult(_0x596bf7,0xc9))[_0x2e00('0x3c')](handleError(_0x596bf7,null));};exports[_0x2e00('0x44')]=function(_0x418309,_0x198497){if(_0x418309[_0x2e00('0x43')]['id']){delete _0x418309['body']['id'];}return db[_0x2e00('0x26')][_0x2e00('0x42')]({'where':{'id':_0x418309[_0x2e00('0x3e')]['id']}})[_0x2e00('0x1e')](handleEntityNotFound(_0x198497,null))[_0x2e00('0x1e')](saveUpdates(_0x418309['body'],null))[_0x2e00('0x1e')](respondWithResult(_0x198497,null))[_0x2e00('0x3c')](handleError(_0x198497,null));};exports[_0x2e00('0x1f')]=function(_0x5ec96d,_0x5c8431){return db[_0x2e00('0x26')][_0x2e00('0x42')]({'where':{'id':_0x5ec96d[_0x2e00('0x3e')]['id']}})['then'](handleEntityNotFound(_0x5c8431,null))[_0x2e00('0x1e')](removeEntity(_0x5c8431,null))['catch'](handleError(_0x5c8431,null));};exports[_0x2e00('0x45')]=function(_0x51189d,_0x42e562){return db['SquareDetailsReport'][_0x2e00('0x45')]()[_0x2e00('0x1e')](respondWithResult(_0x42e562,null))[_0x2e00('0x3c')](handleError(_0x42e562,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x820c=['lodash','../../config/logger','bluebird','path','rimraf','../../config/environment','exports','define','SquareDetailsReport','report_square_details'];(function(_0x30e557,_0xe0fa02){var _0x11be4c=function(_0x56e38a){while(--_0x56e38a){_0x30e557['push'](_0x30e557['shift']());}};_0x11be4c(++_0xe0fa02);}(_0x820c,0x8c));var _0xc820=function(_0x19a5da,_0x283df9){_0x19a5da=_0x19a5da-0x0;var _0x140de5=_0x820c[_0x19a5da];return _0x140de5;};'use strict';var _=require(_0xc820('0x0'));var util=require('util');var logger=require(_0xc820('0x1'))('api');var moment=require('moment');var BPromise=require(_0xc820('0x2'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xc820('0x3'));var rimraf=require(_0xc820('0x4'));var config=require(_0xc820('0x5'));var attributes=require('./squareReportDetail.attributes');module[_0xc820('0x6')]=function(_0x1a954e,_0x498e8d){return _0x1a954e[_0xc820('0x7')](_0xc820('0x8'),attributes,{'tableName':_0xc820('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x5beb=['exports','define','SquareDetailsReport','lodash','util','request-promise','path','rimraf','../../config/environment','./squareReportDetail.attributes'];(function(_0x438d6c,_0x2443c8){var _0x18ea5f=function(_0x7a4709){while(--_0x7a4709){_0x438d6c['push'](_0x438d6c['shift']());}};_0x18ea5f(++_0x2443c8);}(_0x5beb,0x71));var _0xb5be=function(_0x36ca13,_0x229e19){_0x36ca13=_0x36ca13-0x0;var _0x30ce6d=_0x5beb[_0x36ca13];return _0x30ce6d;};'use strict';var _=require(_0xb5be('0x0'));var util=require(_0xb5be('0x1'));var logger=require('../../config/logger')('api');var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0xb5be('0x2'));var fs=require('fs');var path=require(_0xb5be('0x3'));var rimraf=require(_0xb5be('0x4'));var config=require(_0xb5be('0x5'));var attributes=require(_0xb5be('0x6'));module[_0xb5be('0x7')]=function(_0xc6d00f,_0xf856e4){return _0xc6d00f[_0xb5be('0x8')](_0xb5be('0x9'),attributes,{'tableName':'report_square_details','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4227=['body','options','lodash','bluebird','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','http','request','then','SquareDetailsReport,\x20%s,\x20%s','debug','SquareDetailsReport,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','info','result','catch','CreateSquareDetailsReport','SquareDetailsReport'];(function(_0x28a06,_0x553992){var _0x6a3fbc=function(_0x319ecc){while(--_0x319ecc){_0x28a06['push'](_0x28a06['shift']());}};_0x6a3fbc(++_0x553992);}(_0x4227,0x89));var _0x7422=function(_0x48829a,_0x3eb43f){_0x48829a=_0x48829a-0x0;var _0xcce25=_0x4227[_0x48829a];return _0xcce25;};'use strict';var _=require(_0x7422('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0x7422('0x1'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x7422('0x2'));var db=require(_0x7422('0x3'))['db'];var utils=require(_0x7422('0x4'));var logger=require('../../config/logger')(_0x7422('0x5'));var config=require(_0x7422('0x6'));var jayson=require(_0x7422('0x7'));var client=jayson[_0x7422('0x8')][_0x7422('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x2b3432,_0xe99299,_0x45ca1a){return new BPromise(function(_0x12965e,_0x599d78){return client[_0x7422('0xa')](_0x2b3432,_0x45ca1a)[_0x7422('0xb')](function(_0x25de34){logger['info'](_0x7422('0xc'),_0xe99299,'request\x20sent');logger[_0x7422('0xd')](_0x7422('0xe'),_0xe99299,_0x7422('0xf'),JSON[_0x7422('0x10')](_0x25de34));if(_0x25de34[_0x7422('0x11')]){if(_0x25de34['error'][_0x7422('0x12')]===0x1f4){logger[_0x7422('0x11')]('SquareDetailsReport,\x20%s,\x20%s',_0xe99299,_0x25de34[_0x7422('0x11')][_0x7422('0x13')]);return _0x599d78(_0x25de34['error'][_0x7422('0x13')]);}logger[_0x7422('0x11')]('SquareDetailsReport,\x20%s,\x20%s',_0xe99299,_0x25de34['error'][_0x7422('0x13')]);return _0x12965e(_0x25de34['error'][_0x7422('0x13')]);}else{logger[_0x7422('0x14')]('SquareDetailsReport,\x20%s,\x20%s',_0xe99299,_0x7422('0xf'));_0x12965e(_0x25de34[_0x7422('0x15')][_0x7422('0x13')]);}})[_0x7422('0x16')](function(_0x2946ca){logger[_0x7422('0x11')]('SquareDetailsReport,\x20%s,\x20%s',_0xe99299,_0x2946ca);_0x599d78(_0x2946ca);});});}exports[_0x7422('0x17')]=function(_0xa7ff41){var _0x493f59=this;return new Promise(function(_0x30656d,_0x57b8bf){return db[_0x7422('0x18')]['create'](_0xa7ff41[_0x7422('0x19')],{'raw':_0xa7ff41[_0x7422('0x1a')]?_0xa7ff41[_0x7422('0x1a')]['raw']===undefined?!![]:![]:!![]})[_0x7422('0xb')](function(_0xacaad1){logger[_0x7422('0x14')](_0x7422('0x17'),_0xa7ff41);logger['debug']('CreateSquareDetailsReport',_0xa7ff41,JSON[_0x7422('0x10')](_0xacaad1));_0x30656d(_0xacaad1);})[_0x7422('0x16')](function(_0x20c1e3){logger[_0x7422('0x11')](_0x7422('0x17'),_0x20c1e3[_0x7422('0x13')],_0xa7ff41);_0x57b8bf(_0x493f59[_0x7422('0x11')](0x1f4,_0x20c1e3['message']));});});};
\ No newline at end of file
+var _0xb03e=['bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','request','info','SquareDetailsReport,\x20%s,\x20%s','debug','request\x20sent','stringify','error','code','message','result','catch','CreateSquareDetailsReport','SquareDetailsReport','create','body','options','then','util','moment'];(function(_0x3fb66d,_0x579f2d){var _0x5789f4=function(_0xcc996){while(--_0xcc996){_0x3fb66d['push'](_0x3fb66d['shift']());}};_0x5789f4(++_0x579f2d);}(_0xb03e,0x1eb));var _0xeb03=function(_0x5ba1df,_0x1f26c3){_0x5ba1df=_0x5ba1df-0x0;var _0x35654a=_0xb03e[_0x5ba1df];return _0x35654a;};'use strict';var _=require('lodash');var util=require(_0xeb03('0x0'));var moment=require(_0xeb03('0x1'));var BPromise=require(_0xeb03('0x2'));var rs=require(_0xeb03('0x3'));var fs=require('fs');var Redis=require(_0xeb03('0x4'));var db=require(_0xeb03('0x5'))['db'];var utils=require(_0xeb03('0x6'));var logger=require(_0xeb03('0x7'))(_0xeb03('0x8'));var config=require(_0xeb03('0x9'));var jayson=require(_0xeb03('0xa'));var client=jayson[_0xeb03('0xb')]['http']({'port':0x232a});function respondWithRpcPromise(_0x3b58a2,_0x3d3322,_0x3a6e31){return new BPromise(function(_0x246c6e,_0x3f2c74){return client[_0xeb03('0xc')](_0x3b58a2,_0x3a6e31)['then'](function(_0x403b77){logger[_0xeb03('0xd')](_0xeb03('0xe'),_0x3d3322,'request\x20sent');logger[_0xeb03('0xf')]('SquareDetailsReport,\x20%s,\x20%s,\x20%s',_0x3d3322,_0xeb03('0x10'),JSON[_0xeb03('0x11')](_0x403b77));if(_0x403b77[_0xeb03('0x12')]){if(_0x403b77[_0xeb03('0x12')][_0xeb03('0x13')]===0x1f4){logger[_0xeb03('0x12')](_0xeb03('0xe'),_0x3d3322,_0x403b77[_0xeb03('0x12')][_0xeb03('0x14')]);return _0x3f2c74(_0x403b77[_0xeb03('0x12')][_0xeb03('0x14')]);}logger[_0xeb03('0x12')]('SquareDetailsReport,\x20%s,\x20%s',_0x3d3322,_0x403b77[_0xeb03('0x12')][_0xeb03('0x14')]);return _0x246c6e(_0x403b77[_0xeb03('0x12')][_0xeb03('0x14')]);}else{logger['info'](_0xeb03('0xe'),_0x3d3322,_0xeb03('0x10'));_0x246c6e(_0x403b77[_0xeb03('0x15')]['message']);}})[_0xeb03('0x16')](function(_0x46dd1b){logger[_0xeb03('0x12')](_0xeb03('0xe'),_0x3d3322,_0x46dd1b);_0x3f2c74(_0x46dd1b);});});}exports[_0xeb03('0x17')]=function(_0x1b4cbd){var _0x167a33=this;return new Promise(function(_0x8d6725,_0x177f9c){return db[_0xeb03('0x18')][_0xeb03('0x19')](_0x1b4cbd[_0xeb03('0x1a')],{'raw':_0x1b4cbd[_0xeb03('0x1b')]?_0x1b4cbd[_0xeb03('0x1b')]['raw']===undefined?!![]:![]:!![]})[_0xeb03('0x1c')](function(_0x3855dd){logger[_0xeb03('0xd')](_0xeb03('0x17'),_0x1b4cbd);logger[_0xeb03('0xf')](_0xeb03('0x17'),_0x1b4cbd,JSON[_0xeb03('0x11')](_0x3855dd));_0x8d6725(_0x3855dd);})[_0xeb03('0x16')](function(_0x3c3d09){logger['error'](_0xeb03('0x17'),_0x3c3d09[_0xeb03('0x14')],_0x1b4cbd);_0x177f9c(_0x167a33[_0xeb03('0x12')](0x1f4,_0x3c3d09[_0xeb03('0x14')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa2ea=['get','index','/process/:pid/kill','killProcess','express','Router','../../components/auth/service','./system.controller'];(function(_0x15dbca,_0x1d7c3c){var _0x326533=function(_0x507ee2){while(--_0x507ee2){_0x15dbca['push'](_0x15dbca['shift']());}};_0x326533(++_0x1d7c3c);}(_0xa2ea,0x15c));var _0xaa2e=function(_0x934425,_0x5af72f){_0x934425=_0x934425-0x0;var _0x31d596=_0xa2ea[_0x934425];return _0x31d596;};'use strict';var express=require(_0xaa2e('0x0'));var router=express[_0xaa2e('0x1')]();var auth=require(_0xaa2e('0x2'));var controller=require(_0xaa2e('0x3'));router[_0xaa2e('0x4')]('/',auth['isAuthenticated'](),controller[_0xaa2e('0x5')]);router['get'](_0xaa2e('0x6'),auth['isAuthenticated'](),controller[_0xaa2e('0x7')]);module['exports']=router;
\ No newline at end of file
+var _0x2163=['killProcess','exports','express','Router','../../components/auth/service','./system.controller','get','isAuthenticated','/process/:pid/kill'];(function(_0x3a887d,_0x439f75){var _0x280152=function(_0x3dd026){while(--_0x3dd026){_0x3a887d['push'](_0x3a887d['shift']());}};_0x280152(++_0x439f75);}(_0x2163,0xd1));var _0x3216=function(_0x5c51d7,_0x45a85d){_0x5c51d7=_0x5c51d7-0x0;var _0xf3b7e5=_0x2163[_0x5c51d7];return _0xf3b7e5;};'use strict';var express=require(_0x3216('0x0'));var router=express[_0x3216('0x1')]();var auth=require(_0x3216('0x2'));var controller=require(_0x3216('0x3'));router[_0x3216('0x4')]('/',auth[_0x3216('0x5')](),controller['index']);router['get'](_0x3216('0x6'),auth[_0x3216('0x5')](),controller[_0x3216('0x7')]);module[_0x3216('0x8')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfd4d=['catch','systeminformation','child_process','exec','../../config/logger','api','util','lodash','<%-\x20name\x20%>,\x20%s,\x20%s,\x20%s','inspect','status','then','json','components/import/cm','format','ps\x20-p\x20%s\x20-ww\x20-o\x20args','params','pid','split','length','indexOf','kill','Process\x20with\x20pid\x20%s\x20killed\x20correctly'];(function(_0x186855,_0x604373){var _0x114ba4=function(_0x1e34e8){while(--_0x1e34e8){_0x186855['push'](_0x186855['shift']());}};_0x114ba4(++_0x604373);}(_0xfd4d,0x19f));var _0xdfd4=function(_0x52bb53,_0x2b0445){_0x52bb53=_0x52bb53-0x0;var _0x349304=_0xfd4d[_0x52bb53];return _0x349304;};'use strict';var info=require(_0xdfd4('0x0'));var exec=require(_0xdfd4('0x1'))[_0xdfd4('0x2')];var logger=require(_0xdfd4('0x3'))(_0xdfd4('0x4'));var util=require(_0xdfd4('0x5'));var BPromise=require('bluebird');var _=require(_0xdfd4('0x6'));function handleError(_0x5da104,_0x192a54,_0xe9348){_0x192a54=_0x192a54||0x1f4;return function(_0x5513d2){logger['error'](_0xdfd4('0x7'),_0xe9348,_0x192a54,util[_0xdfd4('0x8')](_0x5513d2,{'showHidden':![],'depth':null}));delete _0x5513d2['name'];_0x5da104[_0xdfd4('0x9')](_0x192a54)['send'](_0x5513d2);};}exports['index']=function(_0x357749,_0x349616){return info['getAllData']()[_0xdfd4('0xa')](function(_0x1738df){return _0x349616[_0xdfd4('0x9')](0xc8)[_0xdfd4('0xb')](_0x1738df);})['catch'](function(_0x35587a){return _0x349616[_0xdfd4('0x9')](0x1f4)['json'](_0x35587a);});};exports['killProcess']=function(_0xbcd01d,_0x80a877){var _0x371212=[_0xdfd4('0xc')];return new BPromise(function(_0x5529ca,_0x4fd60f){return exec(util[_0xdfd4('0xd')](_0xdfd4('0xe'),_0xbcd01d[_0xdfd4('0xf')][_0xdfd4('0x10')]),function(_0x3cae7f,_0x3f1d3b,_0x13805f){if(_0x3cae7f){return _0x4fd60f(_0x3cae7f);}return _0x5529ca(_0x3f1d3b);});})[_0xdfd4('0xa')](function(_0x34e9c9){var _0x4e16d8=![];var _0x33cc34=_0x34e9c9[_0xdfd4('0x11')](/\n/);for(var _0x58b914=0x0,_0x44aaf0=_0x371212[_0xdfd4('0x12')];_0x58b914<_0x44aaf0,_0x4e16d8===![];_0x58b914+=0x1){if(_0x34e9c9[_0xdfd4('0x13')](_0x371212[_0x58b914])>=0x0){_0x4e16d8=!![];}}if(!_0x4e16d8){throw new Error(util[_0xdfd4('0xd')]('Process\x20with\x20pid\x20%s\x20not\x20found!',_0xbcd01d[_0xdfd4('0xf')][_0xdfd4('0x10')]));}process[_0xdfd4('0x14')](_0xbcd01d['params'][_0xdfd4('0x10')],'SIGINT');return _0x80a877[_0xdfd4('0x9')](0xc8)[_0xdfd4('0xb')]({'message':util[_0xdfd4('0xd')](_0xdfd4('0x15'),_0xbcd01d['params'][_0xdfd4('0x10')])});})[_0xdfd4('0x16')](handleError(_0x80a877,null,'killProcess'));};
\ No newline at end of file
+var _0x3bd7=['index','getAllData','then','status','json','catch','killProcess','components/import/cm','params','pid','split','length','indexOf','format','Process\x20with\x20pid\x20%s\x20not\x20found!','SIGINT','systeminformation','child_process','exec','../../config/logger','api','error','inspect','name','send'];(function(_0x288491,_0x26348c){var _0x58e787=function(_0x2504f9){while(--_0x2504f9){_0x288491['push'](_0x288491['shift']());}};_0x58e787(++_0x26348c);}(_0x3bd7,0xa6));var _0x73bd=function(_0x19aa84,_0x549537){_0x19aa84=_0x19aa84-0x0;var _0x536146=_0x3bd7[_0x19aa84];return _0x536146;};'use strict';var info=require(_0x73bd('0x0'));var exec=require(_0x73bd('0x1'))[_0x73bd('0x2')];var logger=require(_0x73bd('0x3'))(_0x73bd('0x4'));var util=require('util');var BPromise=require('bluebird');var _=require('lodash');function handleError(_0x25f3b0,_0x439c1f,_0x4834ce){_0x439c1f=_0x439c1f||0x1f4;return function(_0x2a258d){logger[_0x73bd('0x5')]('<%-\x20name\x20%>,\x20%s,\x20%s,\x20%s',_0x4834ce,_0x439c1f,util[_0x73bd('0x6')](_0x2a258d,{'showHidden':![],'depth':null}));delete _0x2a258d[_0x73bd('0x7')];_0x25f3b0['status'](_0x439c1f)[_0x73bd('0x8')](_0x2a258d);};}exports[_0x73bd('0x9')]=function(_0x1f4df2,_0x25045b){return info[_0x73bd('0xa')]()[_0x73bd('0xb')](function(_0x153612){return _0x25045b[_0x73bd('0xc')](0xc8)[_0x73bd('0xd')](_0x153612);})[_0x73bd('0xe')](function(_0x1f88e9){return _0x25045b[_0x73bd('0xc')](0x1f4)[_0x73bd('0xd')](_0x1f88e9);});};exports[_0x73bd('0xf')]=function(_0x1e1459,_0x59492d){var _0x490d9f=[_0x73bd('0x10')];return new BPromise(function(_0x2f9332,_0x1860fc){return exec(util['format']('ps\x20-p\x20%s\x20-ww\x20-o\x20args',_0x1e1459[_0x73bd('0x11')][_0x73bd('0x12')]),function(_0x3467b0,_0x53c3e7,_0x4c909d){if(_0x3467b0){return _0x1860fc(_0x3467b0);}return _0x2f9332(_0x53c3e7);});})[_0x73bd('0xb')](function(_0x130f54){var _0xe98d60=![];var _0x59af22=_0x130f54[_0x73bd('0x13')](/\n/);for(var _0x35f9de=0x0,_0x228c1f=_0x490d9f[_0x73bd('0x14')];_0x35f9de<_0x228c1f,_0xe98d60===![];_0x35f9de+=0x1){if(_0x130f54[_0x73bd('0x15')](_0x490d9f[_0x35f9de])>=0x0){_0xe98d60=!![];}}if(!_0xe98d60){throw new Error(util[_0x73bd('0x16')](_0x73bd('0x17'),_0x1e1459['params'][_0x73bd('0x12')]));}process['kill'](_0x1e1459[_0x73bd('0x11')]['pid'],_0x73bd('0x18'));return _0x59492d[_0x73bd('0xc')](0xc8)[_0x73bd('0xd')]({'message':util[_0x73bd('0x16')]('Process\x20with\x20pid\x20%s\x20killed\x20correctly',_0x1e1459['params']['pid'])});})[_0x73bd('0xe')](handleError(_0x59492d,null,_0x73bd('0xf')));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x80e0=['fs-extra','../../components/auth/service','../../components/interaction/service','./tag.controller','get','isAuthenticated','post','create','put','/:id','update','destroy','exports','path','connect-timeout','express'];(function(_0x501510,_0x61caa9){var _0x1e6ee5=function(_0x32845b){while(--_0x32845b){_0x501510['push'](_0x501510['shift']());}};_0x1e6ee5(++_0x61caa9);}(_0x80e0,0x9d));var _0x080e=function(_0xde1f01,_0x3e2455){_0xde1f01=_0xde1f01-0x0;var _0x3ee182=_0x80e0[_0xde1f01];return _0x3ee182;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x080e('0x0'));var timeout=require(_0x080e('0x1'));var express=require(_0x080e('0x2'));var router=express['Router']();var fs_extra=require(_0x080e('0x3'));var auth=require(_0x080e('0x4'));var interaction=require(_0x080e('0x5'));var config=require('../../config/environment');var controller=require(_0x080e('0x6'));router[_0x080e('0x7')]('/',auth[_0x080e('0x8')](),controller['index']);router['get']('/:id',auth[_0x080e('0x8')](),controller['show']);router[_0x080e('0x9')]('/',auth['isAuthenticated'](),controller[_0x080e('0xa')]);router[_0x080e('0xb')](_0x080e('0xc'),auth[_0x080e('0x8')](),controller[_0x080e('0xd')]);router['delete']('/:id',auth[_0x080e('0x8')](),controller[_0x080e('0xe')]);module[_0x080e('0xf')]=router;
\ No newline at end of file
+var _0xc217=['show','create','put','/:id','update','delete','exports','multer','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','./tag.controller','get','isAuthenticated','index'];(function(_0x23e2bb,_0xd82b6d){var _0x2dd8ed=function(_0x4af0ce){while(--_0x4af0ce){_0x23e2bb['push'](_0x23e2bb['shift']());}};_0x2dd8ed(++_0xd82b6d);}(_0xc217,0x15d));var _0x7c21=function(_0x9c8b4a,_0x2387ff){_0x9c8b4a=_0x9c8b4a-0x0;var _0x198bef=_0xc217[_0x9c8b4a];return _0x198bef;};'use strict';var multer=require(_0x7c21('0x0'));var util=require('util');var path=require(_0x7c21('0x1'));var timeout=require(_0x7c21('0x2'));var express=require(_0x7c21('0x3'));var router=express[_0x7c21('0x4')]();var fs_extra=require(_0x7c21('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x7c21('0x6'));var config=require(_0x7c21('0x7'));var controller=require(_0x7c21('0x8'));router[_0x7c21('0x9')]('/',auth[_0x7c21('0xa')](),controller[_0x7c21('0xb')]);router[_0x7c21('0x9')]('/:id',auth[_0x7c21('0xa')](),controller[_0x7c21('0xc')]);router['post']('/',auth[_0x7c21('0xa')](),controller[_0x7c21('0xd')]);router[_0x7c21('0xe')](_0x7c21('0xf'),auth[_0x7c21('0xa')](),controller[_0x7c21('0x10')]);router[_0x7c21('0x11')]('/:id',auth[_0x7c21('0xa')](),controller['destroy']);module[_0x7c21('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9b00=['sequelize','exports','STRING','#0091EA'];(function(_0x5a776b,_0x46f785){var _0xbbef59=function(_0x38313e){while(--_0x38313e){_0x5a776b['push'](_0x5a776b['shift']());}};_0xbbef59(++_0x46f785);}(_0x9b00,0xcc));var _0x09b0=function(_0x3e5086,_0x48f4a2){_0x3e5086=_0x3e5086-0x0;var _0xfeb102=_0x9b00[_0x3e5086];return _0xfeb102;};'use strict';var Sequelize=require(_0x09b0('0x0'));module[_0x09b0('0x1')]={'name':{'type':Sequelize[_0x09b0('0x2')],'unique':'name','allowNull':![],'validate':{'is':/[A-Za-z0-9._\\+*!-]+/,'notEmpty':!![]}},'color':{'type':Sequelize[_0x09b0('0x2')],'defaultValue':_0x09b0('0x3')},'description':{'type':Sequelize[_0x09b0('0x2')]}};
\ No newline at end of file
+var _0x0a6b=['sequelize','STRING','name','#0091EA'];(function(_0xe2b013,_0x5790ce){var _0x37e2cc=function(_0x146231){while(--_0x146231){_0xe2b013['push'](_0xe2b013['shift']());}};_0x37e2cc(++_0x5790ce);}(_0x0a6b,0x120));var _0xb0a6=function(_0x583a56,_0x1b429e){_0x583a56=_0x583a56-0x0;var _0x12819a=_0x0a6b[_0x583a56];return _0x12819a;};'use strict';var Sequelize=require(_0xb0a6('0x0'));module['exports']={'name':{'type':Sequelize[_0xb0a6('0x1')],'unique':_0xb0a6('0x2'),'allowNull':![],'validate':{'is':/[A-Za-z0-9._\\+*!-]+/,'notEmpty':!![]}},'color':{'type':Sequelize[_0xb0a6('0x1')],'defaultValue':_0xb0a6('0x3')},'description':{'type':Sequelize[_0xb0a6('0x1')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfd28=['include','findAll','catch','show','rawAttributes','find','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','rimraf','zip-dir','request-promise','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','jsforce','desk.js','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','json','undefined','count','offset','limit','Content-Range','apply','save','then','destroy','get','Tags','UserProfileResource','error','stack','name','send','map','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','Tag','includeAll'];(function(_0x2bbb40,_0x3b70c8){var _0x108088=function(_0x15a27c){while(--_0x15a27c){_0x2bbb40['push'](_0x2bbb40['shift']());}};_0x108088(++_0x3b70c8);}(_0xfd28,0x148));var _0x8fd2=function(_0xcfeff4,_0x3f2e19){_0xcfeff4=_0xcfeff4-0x0;var _0xb2fadc=_0xfd28[_0xcfeff4];return _0xb2fadc;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x8fd2('0x0'));var zipdir=require(_0x8fd2('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x8fd2('0x2'));var moment=require('moment');var BPromise=require(_0x8fd2('0x3'));var Mustache=require(_0x8fd2('0x4'));var util=require(_0x8fd2('0x5'));var path=require('path');var sox=require(_0x8fd2('0x6'));var csv=require(_0x8fd2('0x7'));var ejs=require(_0x8fd2('0x8'));var fs=require('fs');var fs_extra=require(_0x8fd2('0x9'));var _=require(_0x8fd2('0xa'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x8fd2('0xb'));var deskjs=require(_0x8fd2('0xc'));var toCsv=require(_0x8fd2('0x7'));var querystring=require('querystring');var Papa=require(_0x8fd2('0xd'));var Redis=require('ioredis');var authService=require(_0x8fd2('0xe'));var qs=require('../../components/parsers/qs');var as=require(_0x8fd2('0xf'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x8fd2('0x10'))('api');var utils=require(_0x8fd2('0x11'));var config=require('../../config/environment');var licenseUtil=require(_0x8fd2('0x12'));var db=require(_0x8fd2('0x13'))['db'];function respondWithStatusCode(_0xfd78d,_0xa6d7ca){_0xa6d7ca=_0xa6d7ca||0xcc;return function(_0x17ad4c){if(_0x17ad4c){return _0xfd78d[_0x8fd2('0x14')](_0xa6d7ca);}return _0xfd78d[_0x8fd2('0x15')](_0xa6d7ca)[_0x8fd2('0x16')]();};}function respondWithResult(_0x2b152c,_0x2b4611){_0x2b4611=_0x2b4611||0xc8;return function(_0x118329){if(_0x118329){return _0x2b152c[_0x8fd2('0x15')](_0x2b4611)[_0x8fd2('0x17')](_0x118329);}};}function respondWithFilteredResult(_0x40712c,_0xa65b4){return function(_0x596639){if(_0x596639){var _0x20daca=typeof _0xa65b4['offset']==='undefined'&&typeof _0xa65b4['limit']===_0x8fd2('0x18');var _0x530866=_0x596639[_0x8fd2('0x19')];var _0x12e8a3=_0x20daca?0x0:_0xa65b4['offset'];var _0xabbeb4=_0x20daca?_0x596639[_0x8fd2('0x19')]:_0xa65b4[_0x8fd2('0x1a')]+_0xa65b4[_0x8fd2('0x1b')];var _0x14641a;if(_0xabbeb4>=_0x530866){_0xabbeb4=_0x530866;_0x14641a=0xc8;}else{_0x14641a=0xce;}_0x40712c['status'](_0x14641a);return _0x40712c['set'](_0x8fd2('0x1c'),_0x12e8a3+'-'+_0xabbeb4+'/'+_0x530866)['json'](_0x596639);}return null;};}function patchUpdates(_0x3c03de){return function(_0x490b39){try{jsonpatch[_0x8fd2('0x1d')](_0x490b39,_0x3c03de,!![]);}catch(_0x50f410){return BPromise['reject'](_0x50f410);}return _0x490b39[_0x8fd2('0x1e')]();};}function saveUpdates(_0x4c2be8,_0xd3981f){return function(_0x44ee7a){if(_0x44ee7a){return _0x44ee7a['update'](_0x4c2be8)[_0x8fd2('0x1f')](function(_0x2a9c3c){return _0x2a9c3c;});}return null;};}function removeEntity(_0x120285,_0x490ea5){return function(_0x299c1c){if(_0x299c1c){return _0x299c1c[_0x8fd2('0x20')]()[_0x8fd2('0x1f')](function(){var _0x4742cf=_0x299c1c[_0x8fd2('0x21')]({'plain':!![]});var _0x25db4e=_0x8fd2('0x22');return db[_0x8fd2('0x23')][_0x8fd2('0x20')]({'where':{'type':_0x25db4e,'resourceId':_0x4742cf['id']}})[_0x8fd2('0x1f')](function(){return _0x299c1c;});})[_0x8fd2('0x1f')](function(){_0x120285[_0x8fd2('0x15')](0xcc)[_0x8fd2('0x16')]();});}};}function handleEntityNotFound(_0x512e5a,_0x4c6af7){return function(_0x345bc3){if(!_0x345bc3){_0x512e5a[_0x8fd2('0x14')](0x194);}return _0x345bc3;};}function handleError(_0x288bcd,_0x56f294){_0x56f294=_0x56f294||0x1f4;return function(_0x2f26ae){logger[_0x8fd2('0x24')](_0x2f26ae[_0x8fd2('0x25')]);if(_0x2f26ae[_0x8fd2('0x26')]){delete _0x2f26ae[_0x8fd2('0x26')];}_0x288bcd[_0x8fd2('0x15')](_0x56f294)[_0x8fd2('0x27')](_0x2f26ae);};}exports['index']=function(_0xe76676,_0x13c9b9){var _0x818f61={},_0x446c7a={},_0x313902={'count':0x0,'rows':[]};var _0x3ea575=_[_0x8fd2('0x28')](db['Tag']['rawAttributes'],function(_0x5144ba){return{'name':_0x5144ba[_0x8fd2('0x29')],'type':_0x5144ba[_0x8fd2('0x2a')][_0x8fd2('0x2b')]};});_0x446c7a[_0x8fd2('0x2c')]=_['map'](_0x3ea575,'name');_0x446c7a[_0x8fd2('0x2d')]=_[_0x8fd2('0x2e')](_0xe76676[_0x8fd2('0x2d')]);_0x446c7a[_0x8fd2('0x2f')]=_[_0x8fd2('0x30')](_0x446c7a['model'],_0x446c7a[_0x8fd2('0x2d')]);_0x818f61['attributes']=_[_0x8fd2('0x30')](_0x446c7a['model'],qs[_0x8fd2('0x31')](_0xe76676['query'][_0x8fd2('0x31')]));_0x818f61[_0x8fd2('0x32')]=_0x818f61[_0x8fd2('0x32')]['length']?_0x818f61[_0x8fd2('0x32')]:_0x446c7a['model'];if(!_0xe76676[_0x8fd2('0x2d')][_0x8fd2('0x33')](_0x8fd2('0x34'))){_0x818f61['limit']=qs[_0x8fd2('0x1b')](_0xe76676[_0x8fd2('0x2d')][_0x8fd2('0x1b')]);_0x818f61['offset']=qs[_0x8fd2('0x1a')](_0xe76676[_0x8fd2('0x2d')][_0x8fd2('0x1a')]);}_0x818f61['order']=qs[_0x8fd2('0x35')](_0xe76676[_0x8fd2('0x2d')]['sort']);_0x818f61[_0x8fd2('0x36')]=qs[_0x8fd2('0x2f')](_[_0x8fd2('0x37')](_0xe76676[_0x8fd2('0x2d')],_0x446c7a[_0x8fd2('0x2f')]),_0x3ea575);if(_0xe76676[_0x8fd2('0x2d')][_0x8fd2('0x38')]){_0x818f61['where']=_[_0x8fd2('0x39')](_0x818f61['where'],{'$or':_['map'](_0x3ea575,function(_0x38fff9){if(_0x38fff9[_0x8fd2('0x2a')]!==_0x8fd2('0x3a')){var _0x2edcfd={};_0x2edcfd[_0x38fff9[_0x8fd2('0x26')]]={'$like':'%'+_0xe76676[_0x8fd2('0x2d')]['filter']+'%'};return _0x2edcfd;}})});}_0x818f61=_['merge']({},_0x818f61,_0xe76676[_0x8fd2('0x3b')]);var _0x4aff57={'where':_0x818f61['where']};return db[_0x8fd2('0x3c')][_0x8fd2('0x19')](_0x4aff57)[_0x8fd2('0x1f')](function(_0x28f927){_0x313902['count']=_0x28f927;if(_0xe76676[_0x8fd2('0x2d')][_0x8fd2('0x3d')]){_0x818f61[_0x8fd2('0x3e')]=[{'all':!![]}];}return db[_0x8fd2('0x3c')][_0x8fd2('0x3f')](_0x818f61);})[_0x8fd2('0x1f')](function(_0xb1938a){_0x313902['rows']=_0xb1938a;return _0x313902;})[_0x8fd2('0x1f')](respondWithFilteredResult(_0x13c9b9,_0x818f61))[_0x8fd2('0x40')](handleError(_0x13c9b9,null));};exports[_0x8fd2('0x41')]=function(_0x70404e,_0xde7e1){var _0x12b014={'raw':!![],'where':{'id':_0x70404e['params']['id']}},_0x40a572={};_0x40a572[_0x8fd2('0x2c')]=_[_0x8fd2('0x2e')](db[_0x8fd2('0x3c')][_0x8fd2('0x42')]);_0x40a572[_0x8fd2('0x2d')]=_[_0x8fd2('0x2e')](_0x70404e[_0x8fd2('0x2d')]);_0x40a572['filters']=_[_0x8fd2('0x30')](_0x40a572['model'],_0x40a572[_0x8fd2('0x2d')]);_0x12b014['attributes']=_[_0x8fd2('0x30')](_0x40a572[_0x8fd2('0x2c')],qs[_0x8fd2('0x31')](_0x70404e['query'][_0x8fd2('0x31')]));_0x12b014[_0x8fd2('0x32')]=_0x12b014[_0x8fd2('0x32')]['length']?_0x12b014[_0x8fd2('0x32')]:_0x40a572['model'];if(_0x70404e[_0x8fd2('0x2d')][_0x8fd2('0x3d')]){_0x12b014[_0x8fd2('0x3e')]=[{'all':!![]}];}_0x12b014=_[_0x8fd2('0x39')]({},_0x12b014,_0x70404e[_0x8fd2('0x3b')]);return db[_0x8fd2('0x3c')][_0x8fd2('0x43')](_0x12b014)[_0x8fd2('0x1f')](handleEntityNotFound(_0xde7e1,null))[_0x8fd2('0x1f')](respondWithResult(_0xde7e1,null))[_0x8fd2('0x40')](handleError(_0xde7e1,null));};exports[_0x8fd2('0x44')]=function(_0x34f3a2,_0xd3d8cb){return db[_0x8fd2('0x3c')][_0x8fd2('0x44')](_0x34f3a2[_0x8fd2('0x45')],{})[_0x8fd2('0x1f')](function(_0x2a2c69){var _0x2fdbe5=_0x34f3a2['user']['get']({'plain':!![]});if(!_0x2fdbe5)throw new Error(_0x8fd2('0x46'));if(_0x2fdbe5[_0x8fd2('0x47')]===_0x8fd2('0x48')){var _0x5d79c3=_0x2a2c69['get']({'plain':!![]});var _0x177f04='Tags';return db[_0x8fd2('0x49')][_0x8fd2('0x43')]({'where':{'name':_0x177f04,'userProfileId':_0x2fdbe5[_0x8fd2('0x4a')]},'raw':!![]})['then'](function(_0x2251d9){if(_0x2251d9&&_0x2251d9[_0x8fd2('0x4b')]===0x0){return db['UserProfileResource'][_0x8fd2('0x44')]({'name':_0x5d79c3[_0x8fd2('0x26')],'resourceId':_0x5d79c3['id'],'type':_0x2251d9[_0x8fd2('0x26')],'sectionId':_0x2251d9['id']},{})['then'](function(){return _0x2a2c69;});}else{return _0x2a2c69;}})[_0x8fd2('0x40')](function(_0x14cdc2){logger[_0x8fd2('0x24')](_0x8fd2('0x4c'),_0x14cdc2);throw _0x14cdc2;});}return _0x2a2c69;})[_0x8fd2('0x1f')](respondWithResult(_0xd3d8cb,0xc9))[_0x8fd2('0x40')](handleError(_0xd3d8cb,null));};exports['update']=function(_0x4d5340,_0x46a1a1){if(_0x4d5340[_0x8fd2('0x45')]['id']){delete _0x4d5340['body']['id'];}return db[_0x8fd2('0x3c')]['find']({'where':{'id':_0x4d5340['params']['id']}})[_0x8fd2('0x1f')](handleEntityNotFound(_0x46a1a1,null))[_0x8fd2('0x1f')](saveUpdates(_0x4d5340[_0x8fd2('0x45')],null))[_0x8fd2('0x1f')](respondWithResult(_0x46a1a1,null))[_0x8fd2('0x40')](handleError(_0x46a1a1,null));};exports[_0x8fd2('0x20')]=function(_0x52c912,_0x2f4759){return db[_0x8fd2('0x3c')][_0x8fd2('0x43')]({'where':{'id':_0x52c912[_0x8fd2('0x4d')]['id']}})[_0x8fd2('0x1f')](handleEntityNotFound(_0x2f4759,null))['then'](removeEntity(_0x2f4759,null))['catch'](handleError(_0x2f4759,null));};
\ No newline at end of file
+var _0x98e5=['status','json','offset','limit','undefined','count','set','Content-Range','apply','reject','save','update','destroy','then','get','Tags','UserProfileResource','end','sendStatus','error','stack','name','index','map','Tag','rawAttributes','fieldName','key','model','query','keys','filters','intersection','attributes','fields','length','sort','pick','filter','where','merge','type','VIRTUAL','options','includeAll','include','rows','catch','show','params','create','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','find','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','fast-json-patch','request-promise','bluebird','mustache','path','ejs','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb'];(function(_0x110e48,_0x27d841){var _0xda3b70=function(_0x2dbc8f){while(--_0x2dbc8f){_0x110e48['push'](_0x110e48['shift']());}};_0xda3b70(++_0x27d841);}(_0x98e5,0x8a));var _0x598e=function(_0x4947d7,_0x270f05){_0x4947d7=_0x4947d7-0x0;var _0x4b6e94=_0x98e5[_0x4947d7];return _0x4b6e94;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x598e('0x0'));var rp=require(_0x598e('0x1'));var moment=require('moment');var BPromise=require(_0x598e('0x2'));var Mustache=require(_0x598e('0x3'));var util=require('util');var path=require(_0x598e('0x4'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x598e('0x5'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x598e('0x6'));var squel=require(_0x598e('0x7'));var crypto=require(_0x598e('0x8'));var jsforce=require(_0x598e('0x9'));var deskjs=require(_0x598e('0xa'));var toCsv=require(_0x598e('0xb'));var querystring=require(_0x598e('0xc'));var Papa=require(_0x598e('0xd'));var Redis=require(_0x598e('0xe'));var authService=require(_0x598e('0xf'));var qs=require(_0x598e('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x598e('0x11'));var logger=require(_0x598e('0x12'))('api');var utils=require(_0x598e('0x13'));var config=require('../../config/environment');var licenseUtil=require(_0x598e('0x14'));var db=require(_0x598e('0x15'))['db'];function respondWithStatusCode(_0x2e3614,_0xd29d12){_0xd29d12=_0xd29d12||0xcc;return function(_0x3811b2){if(_0x3811b2){return _0x2e3614['sendStatus'](_0xd29d12);}return _0x2e3614[_0x598e('0x16')](_0xd29d12)['end']();};}function respondWithResult(_0x1c3f37,_0x51d7f0){_0x51d7f0=_0x51d7f0||0xc8;return function(_0x4e253a){if(_0x4e253a){return _0x1c3f37[_0x598e('0x16')](_0x51d7f0)[_0x598e('0x17')](_0x4e253a);}};}function respondWithFilteredResult(_0x3d6571,_0x38868b){return function(_0x34c672){if(_0x34c672){var _0x93ba6c=typeof _0x38868b[_0x598e('0x18')]==='undefined'&&typeof _0x38868b[_0x598e('0x19')]===_0x598e('0x1a');var _0x3521bc=_0x34c672[_0x598e('0x1b')];var _0x50ffbb=_0x93ba6c?0x0:_0x38868b[_0x598e('0x18')];var _0x2ecb1e=_0x93ba6c?_0x34c672[_0x598e('0x1b')]:_0x38868b[_0x598e('0x18')]+_0x38868b[_0x598e('0x19')];var _0x1c1085;if(_0x2ecb1e>=_0x3521bc){_0x2ecb1e=_0x3521bc;_0x1c1085=0xc8;}else{_0x1c1085=0xce;}_0x3d6571[_0x598e('0x16')](_0x1c1085);return _0x3d6571[_0x598e('0x1c')](_0x598e('0x1d'),_0x50ffbb+'-'+_0x2ecb1e+'/'+_0x3521bc)[_0x598e('0x17')](_0x34c672);}return null;};}function patchUpdates(_0x17e5f1){return function(_0x2a1a65){try{jsonpatch[_0x598e('0x1e')](_0x2a1a65,_0x17e5f1,!![]);}catch(_0x20c1bb){return BPromise[_0x598e('0x1f')](_0x20c1bb);}return _0x2a1a65[_0x598e('0x20')]();};}function saveUpdates(_0x233f16,_0x5b9c3){return function(_0x4a483b){if(_0x4a483b){return _0x4a483b[_0x598e('0x21')](_0x233f16)['then'](function(_0xdec363){return _0xdec363;});}return null;};}function removeEntity(_0x3cea88,_0x5df3ba){return function(_0x45e7ee){if(_0x45e7ee){return _0x45e7ee[_0x598e('0x22')]()[_0x598e('0x23')](function(){var _0xc83fcf=_0x45e7ee[_0x598e('0x24')]({'plain':!![]});var _0x3e434e=_0x598e('0x25');return db[_0x598e('0x26')][_0x598e('0x22')]({'where':{'type':_0x3e434e,'resourceId':_0xc83fcf['id']}})[_0x598e('0x23')](function(){return _0x45e7ee;});})[_0x598e('0x23')](function(){_0x3cea88['status'](0xcc)[_0x598e('0x27')]();});}};}function handleEntityNotFound(_0x534d83,_0x475d3a){return function(_0x25e095){if(!_0x25e095){_0x534d83[_0x598e('0x28')](0x194);}return _0x25e095;};}function handleError(_0x49a760,_0x1a49d9){_0x1a49d9=_0x1a49d9||0x1f4;return function(_0xc81d68){logger[_0x598e('0x29')](_0xc81d68[_0x598e('0x2a')]);if(_0xc81d68[_0x598e('0x2b')]){delete _0xc81d68['name'];}_0x49a760['status'](_0x1a49d9)['send'](_0xc81d68);};}exports[_0x598e('0x2c')]=function(_0x34a3b3,_0x2ee4a5){var _0x45eb1f={},_0x1fcdec={},_0x349fe9={'count':0x0,'rows':[]};var _0x4e6742=_[_0x598e('0x2d')](db[_0x598e('0x2e')][_0x598e('0x2f')],function(_0x1e5b3f){return{'name':_0x1e5b3f[_0x598e('0x30')],'type':_0x1e5b3f['type'][_0x598e('0x31')]};});_0x1fcdec[_0x598e('0x32')]=_[_0x598e('0x2d')](_0x4e6742,'name');_0x1fcdec[_0x598e('0x33')]=_[_0x598e('0x34')](_0x34a3b3['query']);_0x1fcdec[_0x598e('0x35')]=_[_0x598e('0x36')](_0x1fcdec[_0x598e('0x32')],_0x1fcdec[_0x598e('0x33')]);_0x45eb1f[_0x598e('0x37')]=_[_0x598e('0x36')](_0x1fcdec['model'],qs[_0x598e('0x38')](_0x34a3b3[_0x598e('0x33')][_0x598e('0x38')]));_0x45eb1f['attributes']=_0x45eb1f['attributes'][_0x598e('0x39')]?_0x45eb1f['attributes']:_0x1fcdec[_0x598e('0x32')];if(!_0x34a3b3[_0x598e('0x33')]['hasOwnProperty']('nolimit')){_0x45eb1f[_0x598e('0x19')]=qs['limit'](_0x34a3b3[_0x598e('0x33')][_0x598e('0x19')]);_0x45eb1f[_0x598e('0x18')]=qs['offset'](_0x34a3b3[_0x598e('0x33')]['offset']);}_0x45eb1f['order']=qs[_0x598e('0x3a')](_0x34a3b3[_0x598e('0x33')]['sort']);_0x45eb1f['where']=qs[_0x598e('0x35')](_[_0x598e('0x3b')](_0x34a3b3['query'],_0x1fcdec[_0x598e('0x35')]),_0x4e6742);if(_0x34a3b3[_0x598e('0x33')][_0x598e('0x3c')]){_0x45eb1f[_0x598e('0x3d')]=_[_0x598e('0x3e')](_0x45eb1f[_0x598e('0x3d')],{'$or':_[_0x598e('0x2d')](_0x4e6742,function(_0x54b8e0){if(_0x54b8e0[_0x598e('0x3f')]!==_0x598e('0x40')){var _0x2873ee={};_0x2873ee[_0x54b8e0[_0x598e('0x2b')]]={'$like':'%'+_0x34a3b3[_0x598e('0x33')][_0x598e('0x3c')]+'%'};return _0x2873ee;}})});}_0x45eb1f=_[_0x598e('0x3e')]({},_0x45eb1f,_0x34a3b3[_0x598e('0x41')]);var _0x399efd={'where':_0x45eb1f[_0x598e('0x3d')]};return db[_0x598e('0x2e')][_0x598e('0x1b')](_0x399efd)[_0x598e('0x23')](function(_0x5633c9){_0x349fe9['count']=_0x5633c9;if(_0x34a3b3[_0x598e('0x33')][_0x598e('0x42')]){_0x45eb1f[_0x598e('0x43')]=[{'all':!![]}];}return db[_0x598e('0x2e')]['findAll'](_0x45eb1f);})[_0x598e('0x23')](function(_0x22f24b){_0x349fe9[_0x598e('0x44')]=_0x22f24b;return _0x349fe9;})['then'](respondWithFilteredResult(_0x2ee4a5,_0x45eb1f))[_0x598e('0x45')](handleError(_0x2ee4a5,null));};exports[_0x598e('0x46')]=function(_0x1b36c7,_0x226204){var _0x1c62c6={'raw':!![],'where':{'id':_0x1b36c7[_0x598e('0x47')]['id']}},_0x19eef9={};_0x19eef9[_0x598e('0x32')]=_[_0x598e('0x34')](db[_0x598e('0x2e')][_0x598e('0x2f')]);_0x19eef9['query']=_['keys'](_0x1b36c7['query']);_0x19eef9[_0x598e('0x35')]=_[_0x598e('0x36')](_0x19eef9[_0x598e('0x32')],_0x19eef9['query']);_0x1c62c6[_0x598e('0x37')]=_[_0x598e('0x36')](_0x19eef9[_0x598e('0x32')],qs['fields'](_0x1b36c7[_0x598e('0x33')][_0x598e('0x38')]));_0x1c62c6[_0x598e('0x37')]=_0x1c62c6['attributes'][_0x598e('0x39')]?_0x1c62c6[_0x598e('0x37')]:_0x19eef9[_0x598e('0x32')];if(_0x1b36c7[_0x598e('0x33')][_0x598e('0x42')]){_0x1c62c6[_0x598e('0x43')]=[{'all':!![]}];}_0x1c62c6=_['merge']({},_0x1c62c6,_0x1b36c7[_0x598e('0x41')]);return db[_0x598e('0x2e')]['find'](_0x1c62c6)[_0x598e('0x23')](handleEntityNotFound(_0x226204,null))[_0x598e('0x23')](respondWithResult(_0x226204,null))[_0x598e('0x45')](handleError(_0x226204,null));};exports['create']=function(_0x59e67b,_0x57b11a){return db[_0x598e('0x2e')][_0x598e('0x48')](_0x59e67b['body'],{})['then'](function(_0x3d094f){var _0x1aa0c3=_0x59e67b['user']['get']({'plain':!![]});if(!_0x1aa0c3)throw new Error(_0x598e('0x49'));if(_0x1aa0c3[_0x598e('0x4a')]===_0x598e('0x4b')){var _0x34a43d=_0x3d094f['get']({'plain':!![]});var _0x514318=_0x598e('0x25');return db['UserProfileSection'][_0x598e('0x4c')]({'where':{'name':_0x514318,'userProfileId':_0x1aa0c3['userProfileId']},'raw':!![]})[_0x598e('0x23')](function(_0x2f7641){if(_0x2f7641&&_0x2f7641[_0x598e('0x4d')]===0x0){return db[_0x598e('0x26')][_0x598e('0x48')]({'name':_0x34a43d[_0x598e('0x2b')],'resourceId':_0x34a43d['id'],'type':_0x2f7641[_0x598e('0x2b')],'sectionId':_0x2f7641['id']},{})['then'](function(){return _0x3d094f;});}else{return _0x3d094f;}})[_0x598e('0x45')](function(_0x170ee8){logger[_0x598e('0x29')](_0x598e('0x4e'),_0x170ee8);throw _0x170ee8;});}return _0x3d094f;})['then'](respondWithResult(_0x57b11a,0xc9))[_0x598e('0x45')](handleError(_0x57b11a,null));};exports[_0x598e('0x21')]=function(_0x33268c,_0x4668aa){if(_0x33268c[_0x598e('0x4f')]['id']){delete _0x33268c[_0x598e('0x4f')]['id'];}return db[_0x598e('0x2e')]['find']({'where':{'id':_0x33268c[_0x598e('0x47')]['id']}})[_0x598e('0x23')](handleEntityNotFound(_0x4668aa,null))[_0x598e('0x23')](saveUpdates(_0x33268c[_0x598e('0x4f')],null))['then'](respondWithResult(_0x4668aa,null))[_0x598e('0x45')](handleError(_0x4668aa,null));};exports['destroy']=function(_0x529eeb,_0x41dd04){return db[_0x598e('0x2e')][_0x598e('0x4c')]({'where':{'id':_0x529eeb[_0x598e('0x47')]['id']}})[_0x598e('0x23')](handleEntityNotFound(_0x41dd04,null))[_0x598e('0x23')](removeEntity(_0x41dd04,null))[_0x598e('0x45')](handleError(_0x41dd04,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9990=['../../config/logger','api','moment','bluebird','request-promise','path','rimraf','./tag.attributes','exports','define','Tag','tools_tags','util'];(function(_0x9388c8,_0x2cdf84){var _0x6f1d3a=function(_0x6a3073){while(--_0x6a3073){_0x9388c8['push'](_0x9388c8['shift']());}};_0x6f1d3a(++_0x2cdf84);}(_0x9990,0xf6));var _0x0999=function(_0x36fe1e,_0x175199){_0x36fe1e=_0x36fe1e-0x0;var _0x3368ef=_0x9990[_0x36fe1e];return _0x3368ef;};'use strict';var _=require('lodash');var util=require(_0x0999('0x0'));var logger=require(_0x0999('0x1'))(_0x0999('0x2'));var moment=require(_0x0999('0x3'));var BPromise=require(_0x0999('0x4'));var rp=require(_0x0999('0x5'));var fs=require('fs');var path=require(_0x0999('0x6'));var rimraf=require(_0x0999('0x7'));var config=require('../../config/environment');var attributes=require(_0x0999('0x8'));module[_0x0999('0x9')]=function(_0x45d3e0,_0x4c606f){return _0x45d3e0[_0x0999('0xa')](_0x0999('0xb'),attributes,{'tableName':_0x0999('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x6a16=['rimraf','../../config/environment','./tag.attributes','exports','tools_tags','api','moment','bluebird','path'];(function(_0x34933a,_0x327378){var _0x36abb4=function(_0x2d6814){while(--_0x2d6814){_0x34933a['push'](_0x34933a['shift']());}};_0x36abb4(++_0x327378);}(_0x6a16,0x113));var _0x66a1=function(_0x3f8cf6,_0x154026){_0x3f8cf6=_0x3f8cf6-0x0;var _0x2c3cc2=_0x6a16[_0x3f8cf6];return _0x2c3cc2;};'use strict';var _=require('lodash');var util=require('util');var logger=require('../../config/logger')(_0x66a1('0x0'));var moment=require(_0x66a1('0x1'));var BPromise=require(_0x66a1('0x2'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x66a1('0x3'));var rimraf=require(_0x66a1('0x4'));var config=require(_0x66a1('0x5'));var attributes=require(_0x66a1('0x6'));module[_0x66a1('0x7')]=function(_0x4cb89d,_0x499804){return _0x4cb89d['define']('Tag',attributes,{'tableName':_0x66a1('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf72b=['../../config/environment','jayson/promise','client','request','Tag,\x20%s,\x20%s','request\x20sent','Tag,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','lodash','moment','randomstring','ioredis','../../config/utils','../../config/logger','rpc'];(function(_0x3d510a,_0x4675ea){var _0x13f6bd=function(_0xbbc6b7){while(--_0xbbc6b7){_0x3d510a['push'](_0x3d510a['shift']());}};_0x13f6bd(++_0x4675ea);}(_0xf72b,0x1d9));var _0xbf72=function(_0x1534f8,_0x149716){_0x1534f8=_0x1534f8-0x0;var _0x43f8e3=_0xf72b[_0x1534f8];return _0x43f8e3;};'use strict';var _=require(_0xbf72('0x0'));var util=require('util');var moment=require(_0xbf72('0x1'));var BPromise=require('bluebird');var rs=require(_0xbf72('0x2'));var fs=require('fs');var Redis=require(_0xbf72('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0xbf72('0x4'));var logger=require(_0xbf72('0x5'))(_0xbf72('0x6'));var config=require(_0xbf72('0x7'));var jayson=require(_0xbf72('0x8'));var client=jayson[_0xbf72('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x41c11d,_0xc0842b,_0x119807){return new BPromise(function(_0xd0402c,_0xdd6177){return client[_0xbf72('0xa')](_0x41c11d,_0x119807)['then'](function(_0x455891){logger['info'](_0xbf72('0xb'),_0xc0842b,_0xbf72('0xc'));logger['debug'](_0xbf72('0xd'),_0xc0842b,_0xbf72('0xc'),JSON[_0xbf72('0xe')](_0x455891));if(_0x455891[_0xbf72('0xf')]){if(_0x455891[_0xbf72('0xf')][_0xbf72('0x10')]===0x1f4){logger[_0xbf72('0xf')](_0xbf72('0xb'),_0xc0842b,_0x455891['error'][_0xbf72('0x11')]);return _0xdd6177(_0x455891[_0xbf72('0xf')][_0xbf72('0x11')]);}logger['error'](_0xbf72('0xb'),_0xc0842b,_0x455891['error']['message']);return _0xd0402c(_0x455891['error'][_0xbf72('0x11')]);}else{logger[_0xbf72('0x12')](_0xbf72('0xb'),_0xc0842b,_0xbf72('0xc'));_0xd0402c(_0x455891[_0xbf72('0x13')][_0xbf72('0x11')]);}})['catch'](function(_0x266ce2){logger[_0xbf72('0xf')](_0xbf72('0xb'),_0xc0842b,_0x266ce2);_0xdd6177(_0x266ce2);});});}
\ No newline at end of file
+var _0x99e9=['../../mysqldb','../../config/utils','../../config/logger','../../config/environment','client','http','request','then','info','Tag,\x20%s,\x20%s','request\x20sent','debug','Tag,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','util','moment','bluebird','randomstring'];(function(_0x6c77b1,_0x4399eb){var _0x1cee86=function(_0xf4f50){while(--_0xf4f50){_0x6c77b1['push'](_0x6c77b1['shift']());}};_0x1cee86(++_0x4399eb);}(_0x99e9,0xb4));var _0x999e=function(_0x1034bb,_0x4e20b3){_0x1034bb=_0x1034bb-0x0;var _0x453fdb=_0x99e9[_0x1034bb];return _0x453fdb;};'use strict';var _=require('lodash');var util=require(_0x999e('0x0'));var moment=require(_0x999e('0x1'));var BPromise=require(_0x999e('0x2'));var rs=require(_0x999e('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x999e('0x4'))['db'];var utils=require(_0x999e('0x5'));var logger=require(_0x999e('0x6'))('rpc');var config=require(_0x999e('0x7'));var jayson=require('jayson/promise');var client=jayson[_0x999e('0x8')][_0x999e('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x100330,_0x18f337,_0x5c1c17){return new BPromise(function(_0x46aeae,_0x38a692){return client[_0x999e('0xa')](_0x100330,_0x5c1c17)[_0x999e('0xb')](function(_0x2c38cf){logger[_0x999e('0xc')](_0x999e('0xd'),_0x18f337,_0x999e('0xe'));logger[_0x999e('0xf')](_0x999e('0x10'),_0x18f337,_0x999e('0xe'),JSON[_0x999e('0x11')](_0x2c38cf));if(_0x2c38cf[_0x999e('0x12')]){if(_0x2c38cf[_0x999e('0x12')][_0x999e('0x13')]===0x1f4){logger[_0x999e('0x12')](_0x999e('0xd'),_0x18f337,_0x2c38cf['error'][_0x999e('0x14')]);return _0x38a692(_0x2c38cf['error'][_0x999e('0x14')]);}logger[_0x999e('0x12')](_0x999e('0xd'),_0x18f337,_0x2c38cf['error'][_0x999e('0x14')]);return _0x46aeae(_0x2c38cf['error'][_0x999e('0x14')]);}else{logger['info']('Tag,\x20%s,\x20%s',_0x18f337,_0x999e('0xe'));_0x46aeae(_0x2c38cf[_0x999e('0x15')][_0x999e('0x14')]);}})[_0x999e('0x16')](function(_0x1e9bff){logger[_0x999e('0x12')]('Tag,\x20%s,\x20%s',_0x18f337,_0x1e9bff);_0x38a692(_0x1e9bff);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./team.controller','get','index','/:id','getQueues','/:id/users','isAuthenticated','getAgents','post','addQueues','addAgents','update','delete','removeAgents','multer','util','path'];(function(_0x19950b,_0x53d0d7){var _0x3c6b41=function(_0x3924ad){while(--_0x3924ad){_0x19950b['push'](_0x19950b['shift']());}};_0x3c6b41(++_0x53d0d7);}(_0xa9e0,0x123));var _0x0a9e=function(_0x187ee1,_0x3fd1e6){_0x187ee1=_0x187ee1-0x0;var _0x388160=_0xa9e0[_0x187ee1];return _0x388160;};'use strict';var multer=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var path=require(_0x0a9e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x0a9e('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x0a9e('0x4'));var interaction=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));var controller=require(_0x0a9e('0x7'));router[_0x0a9e('0x8')]('/',auth['isAuthenticated'](),controller[_0x0a9e('0x9')]);router[_0x0a9e('0x8')](_0x0a9e('0xa'),auth['isAuthenticated'](),controller['show']);router[_0x0a9e('0x8')]('/:id/queues',auth['isAuthenticated'](),controller[_0x0a9e('0xb')]);router[_0x0a9e('0x8')](_0x0a9e('0xc'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0xe')]);router[_0x0a9e('0xf')]('/',auth['isAuthenticated'](),controller['create']);router['post']('/:id/queues',auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x10')]);router[_0x0a9e('0xf')](_0x0a9e('0xc'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x11')]);router['put'](_0x0a9e('0xa'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x12')]);router[_0x0a9e('0x13')](_0x0a9e('0xa'),auth[_0x0a9e('0xd')](),controller['destroy']);router[_0x0a9e('0x13')]('/:id/queues',auth[_0x0a9e('0xd')](),controller['removeQueues']);router[_0x0a9e('0x13')](_0x0a9e('0xc'),auth['isAuthenticated'](),controller[_0x0a9e('0x14')]);module['exports']=router;
\ No newline at end of file
+var _0xa9e0=['Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./team.controller','get','index','/:id','getQueues','/:id/users','isAuthenticated','getAgents','post','addQueues','addAgents','update','delete','removeAgents','multer','util','path'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0xa9e0,0x123));var _0x0a9e=function(_0x13ea00,_0x12f610){_0x13ea00=_0x13ea00-0x0;var _0x1f7347=_0xa9e0[_0x13ea00];return _0x1f7347;};'use strict';var multer=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var path=require(_0x0a9e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x0a9e('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x0a9e('0x4'));var interaction=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));var controller=require(_0x0a9e('0x7'));router[_0x0a9e('0x8')]('/',auth['isAuthenticated'](),controller[_0x0a9e('0x9')]);router[_0x0a9e('0x8')](_0x0a9e('0xa'),auth['isAuthenticated'](),controller['show']);router[_0x0a9e('0x8')]('/:id/queues',auth['isAuthenticated'](),controller[_0x0a9e('0xb')]);router[_0x0a9e('0x8')](_0x0a9e('0xc'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0xe')]);router[_0x0a9e('0xf')]('/',auth['isAuthenticated'](),controller['create']);router['post']('/:id/queues',auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x10')]);router[_0x0a9e('0xf')](_0x0a9e('0xc'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x11')]);router['put'](_0x0a9e('0xa'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x12')]);router[_0x0a9e('0x13')](_0x0a9e('0xa'),auth[_0x0a9e('0xd')](),controller['destroy']);router[_0x0a9e('0x13')]('/:id/queues',auth[_0x0a9e('0xd')](),controller['removeQueues']);router[_0x0a9e('0x13')](_0x0a9e('0xc'),auth['isAuthenticated'](),controller[_0x0a9e('0x14')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd8b0=['exports','sequelize'];(function(_0x542980,_0x20dc2c){var _0x3a936c=function(_0xe1ee9e){while(--_0xe1ee9e){_0x542980['push'](_0x542980['shift']());}};_0x3a936c(++_0x20dc2c);}(_0xd8b0,0xad));var _0x0d8b=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xd8b0[_0x20a584];return _0x4b41a8;};'use strict';var Sequelize=require(_0x0d8b('0x0'));module[_0x0d8b('0x1')]={'name':{'type':Sequelize['STRING'],'allowNull':![],'unique':'name'},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0xd8b0=['exports','sequelize'];(function(_0x382aff,_0x115172){var _0x28a3e5=function(_0x3580cc){while(--_0x3580cc){_0x382aff['push'](_0x382aff['shift']());}};_0x28a3e5(++_0x115172);}(_0xd8b0,0xad));var _0x0d8b=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xd8b0[_0x20a584];return _0x4b41a8;};'use strict';var Sequelize=require(_0x0d8b('0x0'));module[_0x0d8b('0x1')]={'name':{'type':Sequelize['STRING'],'allowNull':![],'unique':'name'},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb83f=['eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','./team.socket','end','status','json','offset','undefined','limit','count','Content-Range','save','then','sendStatus','error','stack','name','index','map','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','includeAll','Team','rows','params','include','find','catch','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','transaction','SELECT\x20UserId\x20FROM\x20user_has_teams\x20WHERE\x20TeamId\x20=\x20','sequelize','Sequelize','QueryTypes','SELECT','UserId','SELECT\x20VoiceQueueId\x20FROM\x20team_has_voice_queues\x20WHERE\x20TeamId\x20=\x20','VoiceQueueId','UserVoiceQueue','destroy','MailQueueId','UserMailQueue','SELECT\x20SmsQueueId\x20FROM\x20team_has_sms_queues\x20WHERE\x20TeamId\x20=\x20','SmsQueueId','SELECT\x20ChatQueueId\x20FROM\x20team_has_chat_queues\x20WHERE\x20TeamId\x20=\x20','ChatQueueId','UserChatQueue','FaxQueueId','UserFaxQueue','SELECT\x20OpenchannelQueueId\x20FROM\x20team_has_openchannel_queues\x20WHERE\x20TeamId\x20=\x20','OpenchannelQueueId','UserOpenchannelQueue','SELECT\x20WhatsappQueueId\x20FROM\x20team_has_whatsapp_queues\x20WHERE\x20TeamId\x20=\x20','WhatsappQueueId','UserWhatsappQueue','TeamVoicePrefix','UserVoicePrefix','VoicePrefixId','Teams','send','getQueues','findOne','channel','isValidChannel','ValidationError','capitalize','toLowerCase','Queue','options','Queues','addQueues','Unknown\x20channel','add','ids','removeQueues','remove','addAgents','isArray','Sms','Fax','Whatsapp','through','penalty','Voice','defaults','TeamVoiceQueue','User','findOrCreate','findAll','voicePause','upsert','isNil','interface','format','SIP/%s','all','spread','removeAgents','Mail','Openchannel','emit','QueueId','UserVoiceQueueRt','getAgents'];(function(_0x116d87,_0x5cc18f){var _0x1a98c6=function(_0x16ca31){while(--_0x16ca31){_0x116d87['push'](_0x116d87['shift']());}};_0x1a98c6(++_0x5cc18f);}(_0xb83f,0x144));var _0xfb83=function(_0xb0f7c3,_0x4eae95){_0xb0f7c3=_0xb0f7c3-0x0;var _0x28ea68=_0xb83f[_0xb0f7c3];return _0x28ea68;};'use strict';var emlformat=require(_0xfb83('0x0'));var rimraf=require(_0xfb83('0x1'));var zipdir=require(_0xfb83('0x2'));var jsonpatch=require(_0xfb83('0x3'));var rp=require('request-promise');var moment=require(_0xfb83('0x4'));var BPromise=require(_0xfb83('0x5'));var Mustache=require(_0xfb83('0x6'));var util=require('util');var path=require(_0xfb83('0x7'));var sox=require(_0xfb83('0x8'));var csv=require(_0xfb83('0x9'));var ejs=require(_0xfb83('0xa'));var fs=require('fs');var fs_extra=require(_0xfb83('0xb'));var _=require(_0xfb83('0xc'));var squel=require('squel');var crypto=require(_0xfb83('0xd'));var jsforce=require(_0xfb83('0xe'));var deskjs=require(_0xfb83('0xf'));var toCsv=require(_0xfb83('0x9'));var querystring=require(_0xfb83('0x10'));var Papa=require(_0xfb83('0x11'));var Redis=require(_0xfb83('0x12'));var authService=require(_0xfb83('0x13'));var qs=require(_0xfb83('0x14'));var as=require(_0xfb83('0x15'));var hardwareService=require(_0xfb83('0x16'));var logger=require(_0xfb83('0x17'))(_0xfb83('0x18'));var utils=require(_0xfb83('0x19'));var config=require(_0xfb83('0x1a'));var licenseUtil=require(_0xfb83('0x1b'));var db=require(_0xfb83('0x1c'))['db'];config[_0xfb83('0x1d')]=_['defaults'](config[_0xfb83('0x1d')],{'host':_0xfb83('0x1e'),'port':0x18eb});var socket=require(_0xfb83('0x1f'))(new Redis(config[_0xfb83('0x1d')]));require(_0xfb83('0x20'))['register'](socket);function respondWithStatusCode(_0x263fc8,_0x4c51ab){_0x4c51ab=_0x4c51ab||0xcc;return function(_0x31f309){if(_0x31f309){return _0x263fc8['sendStatus'](_0x4c51ab);}return _0x263fc8['status'](_0x4c51ab)[_0xfb83('0x21')]();};}function respondWithResult(_0x4eca0e,_0x138356){_0x138356=_0x138356||0xc8;return function(_0x37ed83){if(_0x37ed83){return _0x4eca0e[_0xfb83('0x22')](_0x138356)[_0xfb83('0x23')](_0x37ed83);}};}function respondWithFilteredResult(_0x54ab58,_0xe78e23){return function(_0xeb4b9d){if(_0xeb4b9d){var _0x58ade9=typeof _0xe78e23[_0xfb83('0x24')]===_0xfb83('0x25')&&typeof _0xe78e23[_0xfb83('0x26')]===_0xfb83('0x25');var _0xe2ee10=_0xeb4b9d['count'];var _0x14db3b=_0x58ade9?0x0:_0xe78e23[_0xfb83('0x24')];var _0x216c84=_0x58ade9?_0xeb4b9d[_0xfb83('0x27')]:_0xe78e23[_0xfb83('0x24')]+_0xe78e23['limit'];var _0x2918e6;if(_0x216c84>=_0xe2ee10){_0x216c84=_0xe2ee10;_0x2918e6=0xc8;}else{_0x2918e6=0xce;}_0x54ab58[_0xfb83('0x22')](_0x2918e6);return _0x54ab58['set'](_0xfb83('0x28'),_0x14db3b+'-'+_0x216c84+'/'+_0xe2ee10)['json'](_0xeb4b9d);}return null;};}function patchUpdates(_0x402af3){return function(_0x5793aa){try{jsonpatch['apply'](_0x5793aa,_0x402af3,!![]);}catch(_0x567d1a){return BPromise['reject'](_0x567d1a);}return _0x5793aa[_0xfb83('0x29')]();};}function saveUpdates(_0x12b398,_0x457723){return function(_0x1f503c){if(_0x1f503c){return _0x1f503c['update'](_0x12b398)[_0xfb83('0x2a')](function(_0x52c18c){return _0x52c18c;});}return null;};}function handleEntityNotFound(_0x1b07e6,_0x2ecb94){return function(_0x59271c){if(!_0x59271c){_0x1b07e6[_0xfb83('0x2b')](0x194);}return _0x59271c;};}function handleError(_0x114ebb,_0x5ec36c){_0x5ec36c=_0x5ec36c||0x1f4;return function(_0x902439){logger[_0xfb83('0x2c')](_0x902439[_0xfb83('0x2d')]);if(_0x902439[_0xfb83('0x2e')]){delete _0x902439[_0xfb83('0x2e')];}_0x114ebb[_0xfb83('0x22')](_0x5ec36c)['send'](_0x902439);};}exports[_0xfb83('0x2f')]=function(_0x316657,_0x4ccb55){var _0x502bb8={},_0x3f8da6={},_0x231b9b={'count':0x0,'rows':[]};var _0x46ba51=_[_0xfb83('0x30')](db['Team'][_0xfb83('0x31')],function(_0x3fe323){return{'name':_0x3fe323[_0xfb83('0x32')],'type':_0x3fe323[_0xfb83('0x33')][_0xfb83('0x34')]};});_0x3f8da6[_0xfb83('0x35')]=_[_0xfb83('0x30')](_0x46ba51,_0xfb83('0x2e'));_0x3f8da6[_0xfb83('0x36')]=_[_0xfb83('0x37')](_0x316657['query']);_0x3f8da6[_0xfb83('0x38')]=_[_0xfb83('0x39')](_0x3f8da6['model'],_0x3f8da6[_0xfb83('0x36')]);_0x502bb8[_0xfb83('0x3a')]=_['intersection'](_0x3f8da6[_0xfb83('0x35')],qs[_0xfb83('0x3b')](_0x316657['query'][_0xfb83('0x3b')]));_0x502bb8[_0xfb83('0x3a')]=_0x502bb8[_0xfb83('0x3a')][_0xfb83('0x3c')]?_0x502bb8[_0xfb83('0x3a')]:_0x3f8da6[_0xfb83('0x35')];if(!_0x316657[_0xfb83('0x36')][_0xfb83('0x3d')](_0xfb83('0x3e'))){_0x502bb8[_0xfb83('0x26')]=qs[_0xfb83('0x26')](_0x316657['query']['limit']);_0x502bb8[_0xfb83('0x24')]=qs[_0xfb83('0x24')](_0x316657[_0xfb83('0x36')]['offset']);}_0x502bb8[_0xfb83('0x3f')]=qs[_0xfb83('0x40')](_0x316657[_0xfb83('0x36')]['sort']);_0x502bb8[_0xfb83('0x41')]=qs[_0xfb83('0x38')](_[_0xfb83('0x42')](_0x316657['query'],_0x3f8da6[_0xfb83('0x38')]),_0x46ba51);if(_0x316657['query'][_0xfb83('0x43')]){_0x502bb8[_0xfb83('0x41')]=_[_0xfb83('0x44')](_0x502bb8[_0xfb83('0x41')],{'$or':_['map'](_0x46ba51,function(_0x35cfda){if(_0x35cfda[_0xfb83('0x33')]!==_0xfb83('0x45')){var _0x17660e={};_0x17660e[_0x35cfda[_0xfb83('0x2e')]]={'$like':'%'+_0x316657['query'][_0xfb83('0x43')]+'%'};return _0x17660e;}})});}_0x502bb8=_[_0xfb83('0x44')]({},_0x502bb8,_0x316657['options']);var _0x2ac90a={'where':_0x502bb8[_0xfb83('0x41')]};return db['Team'][_0xfb83('0x27')](_0x2ac90a)[_0xfb83('0x2a')](function(_0x299041){_0x231b9b[_0xfb83('0x27')]=_0x299041;if(_0x316657[_0xfb83('0x36')][_0xfb83('0x46')]){_0x502bb8['include']=[{'all':!![]}];}return db[_0xfb83('0x47')]['findAll'](_0x502bb8);})[_0xfb83('0x2a')](function(_0x2ccaf5){_0x231b9b[_0xfb83('0x48')]=_0x2ccaf5;return _0x231b9b;})['then'](respondWithFilteredResult(_0x4ccb55,_0x502bb8))['catch'](handleError(_0x4ccb55,null));};exports['show']=function(_0x5945a6,_0x110f9a){var _0x52f96b={'raw':![],'where':{'id':_0x5945a6[_0xfb83('0x49')]['id']}},_0x11b2bf={};_0x11b2bf[_0xfb83('0x35')]=_[_0xfb83('0x37')](db[_0xfb83('0x47')][_0xfb83('0x31')]);_0x11b2bf[_0xfb83('0x36')]=_['keys'](_0x5945a6[_0xfb83('0x36')]);_0x11b2bf[_0xfb83('0x38')]=_[_0xfb83('0x39')](_0x11b2bf[_0xfb83('0x35')],_0x11b2bf[_0xfb83('0x36')]);_0x52f96b[_0xfb83('0x3a')]=_[_0xfb83('0x39')](_0x11b2bf[_0xfb83('0x35')],qs[_0xfb83('0x3b')](_0x5945a6[_0xfb83('0x36')][_0xfb83('0x3b')]));_0x52f96b[_0xfb83('0x3a')]=_0x52f96b[_0xfb83('0x3a')]['length']?_0x52f96b[_0xfb83('0x3a')]:_0x11b2bf['model'];if(_0x5945a6['query']['includeAll']){_0x52f96b[_0xfb83('0x4a')]=[{'all':!![]}];}_0x52f96b=_[_0xfb83('0x44')]({},_0x52f96b,_0x5945a6['options']);return db[_0xfb83('0x47')][_0xfb83('0x4b')](_0x52f96b)['then'](handleEntityNotFound(_0x110f9a,null))[_0xfb83('0x2a')](respondWithResult(_0x110f9a,null))[_0xfb83('0x4c')](handleError(_0x110f9a,null));};exports[_0xfb83('0x4d')]=function(_0x5b31ed,_0x116656){return db[_0xfb83('0x47')]['create'](_0x5b31ed[_0xfb83('0x4e')],{})[_0xfb83('0x2a')](function(_0x30ae13){var _0x288744=_0x5b31ed[_0xfb83('0x4f')][_0xfb83('0x50')]({'plain':!![]});if(!_0x288744)throw new Error(_0xfb83('0x51'));if(_0x288744[_0xfb83('0x52')]==='user'){var _0x3c5d77=_0x30ae13[_0xfb83('0x50')]({'plain':!![]});var _0x12d532='Teams';return db['UserProfileSection'][_0xfb83('0x4b')]({'where':{'name':_0x12d532,'userProfileId':_0x288744[_0xfb83('0x53')]},'raw':!![]})[_0xfb83('0x2a')](function(_0x2f54cb){if(_0x2f54cb&&_0x2f54cb[_0xfb83('0x54')]===0x0){return db[_0xfb83('0x55')][_0xfb83('0x4d')]({'name':_0x3c5d77[_0xfb83('0x2e')],'resourceId':_0x3c5d77['id'],'type':_0x2f54cb[_0xfb83('0x2e')],'sectionId':_0x2f54cb['id']},{})[_0xfb83('0x2a')](function(){return _0x30ae13;});}else{return _0x30ae13;}})['catch'](function(_0x4b8135){logger[_0xfb83('0x2c')](_0xfb83('0x56'),_0x4b8135);throw _0x4b8135;});}return _0x30ae13;})[_0xfb83('0x2a')](respondWithResult(_0x116656,0xc9))[_0xfb83('0x4c')](handleError(_0x116656,null));};exports['update']=function(_0x4c5f95,_0x3cdf59){if(_0x4c5f95[_0xfb83('0x4e')]['id']){delete _0x4c5f95[_0xfb83('0x4e')]['id'];}return db[_0xfb83('0x47')]['find']({'where':{'id':_0x4c5f95[_0xfb83('0x49')]['id']}})[_0xfb83('0x2a')](handleEntityNotFound(_0x3cdf59,null))[_0xfb83('0x2a')](saveUpdates(_0x4c5f95[_0xfb83('0x4e')],null))[_0xfb83('0x2a')](respondWithResult(_0x3cdf59,null))[_0xfb83('0x4c')](handleError(_0x3cdf59,null));};exports['destroy']=function(_0x25d2cc,_0x474109){var _0x302e9f=_0x25d2cc[_0xfb83('0x49')]['id'];var _0xddf02b=[];return db['sequelize'][_0xfb83('0x57')](function(_0x567932){var _0x32ef7d=_0xfb83('0x58')+_0x302e9f;return db[_0xfb83('0x59')][_0xfb83('0x36')](_0x32ef7d,{'type':db[_0xfb83('0x5a')][_0xfb83('0x5b')][_0xfb83('0x5c')],'raw':!![],'transaction':_0x567932})[_0xfb83('0x2a')](function(_0x2a56ee){_0xddf02b=_[_0xfb83('0x30')](_0x2a56ee,function(_0x25ac42){return Number(_0x25ac42[_0xfb83('0x5d')]);});})[_0xfb83('0x2a')](function(){var _0x402cf4=_0xfb83('0x5e')+_0x302e9f;return db[_0xfb83('0x59')][_0xfb83('0x36')](_0x402cf4,{'type':db[_0xfb83('0x5a')]['QueryTypes'][_0xfb83('0x5c')],'raw':!![],'transaction':_0x567932});})[_0xfb83('0x2a')](function(_0x409d4e){var _0x1ae5a4=_[_0xfb83('0x30')](_0x409d4e,function(_0x342a06){return Number(_0x342a06[_0xfb83('0x5f')]);});return db[_0xfb83('0x60')][_0xfb83('0x61')]({'where':{'UserId':{'$in':_0xddf02b},'VoiceQueueId':{'$in':_0x1ae5a4}},'transaction':_0x567932});})[_0xfb83('0x2a')](function(){var _0x376edf='SELECT\x20MailQueueId\x20FROM\x20team_has_mail_queues\x20WHERE\x20TeamId\x20=\x20'+_0x302e9f;return db[_0xfb83('0x59')][_0xfb83('0x36')](_0x376edf,{'type':db[_0xfb83('0x5a')]['QueryTypes']['SELECT'],'raw':!![],'transaction':_0x567932});})['then'](function(_0x57f8f5){var _0x4d3256=_[_0xfb83('0x30')](_0x57f8f5,function(_0x152336){return Number(_0x152336[_0xfb83('0x62')]);});return db[_0xfb83('0x63')][_0xfb83('0x61')]({'where':{'UserId':{'$in':_0xddf02b},'MailQueueId':{'$in':_0x4d3256}},'transaction':_0x567932});})[_0xfb83('0x2a')](function(){var _0x4affab=_0xfb83('0x64')+_0x302e9f;return db[_0xfb83('0x59')][_0xfb83('0x36')](_0x4affab,{'type':db[_0xfb83('0x5a')][_0xfb83('0x5b')][_0xfb83('0x5c')],'raw':!![],'transaction':_0x567932});})[_0xfb83('0x2a')](function(_0x3d779f){var _0x225736=_['map'](_0x3d779f,function(_0x455c39){return Number(_0x455c39[_0xfb83('0x65')]);});return db['UserSmsQueue']['destroy']({'where':{'UserId':{'$in':_0xddf02b},'SmsQueueId':{'$in':_0x225736}},'transaction':_0x567932});})[_0xfb83('0x2a')](function(){var _0x3090de=_0xfb83('0x66')+_0x302e9f;return db[_0xfb83('0x59')][_0xfb83('0x36')](_0x3090de,{'type':db[_0xfb83('0x5a')][_0xfb83('0x5b')][_0xfb83('0x5c')],'raw':!![],'transaction':_0x567932});})['then'](function(_0x391ec9){var _0x28d8a8=_['map'](_0x391ec9,function(_0x3ec7d8){return Number(_0x3ec7d8[_0xfb83('0x67')]);});return db[_0xfb83('0x68')][_0xfb83('0x61')]({'where':{'UserId':{'$in':_0xddf02b},'ChatQueueId':{'$in':_0x28d8a8}},'transaction':_0x567932});})[_0xfb83('0x2a')](function(){var _0x277e63='SELECT\x20FaxQueueId\x20FROM\x20team_has_fax_queues\x20WHERE\x20TeamId\x20=\x20'+_0x302e9f;return db['sequelize'][_0xfb83('0x36')](_0x277e63,{'type':db[_0xfb83('0x5a')][_0xfb83('0x5b')][_0xfb83('0x5c')],'raw':!![],'transaction':_0x567932});})[_0xfb83('0x2a')](function(_0x2fc357){var _0x50190f=_[_0xfb83('0x30')](_0x2fc357,function(_0x44d7c4){return Number(_0x44d7c4[_0xfb83('0x69')]);});return db[_0xfb83('0x6a')][_0xfb83('0x61')]({'where':{'UserId':{'$in':_0xddf02b},'FaxQueueId':{'$in':_0x50190f}},'transaction':_0x567932});})[_0xfb83('0x2a')](function(){var _0x52ac2f=_0xfb83('0x6b')+_0x302e9f;return db[_0xfb83('0x59')]['query'](_0x52ac2f,{'type':db[_0xfb83('0x5a')][_0xfb83('0x5b')][_0xfb83('0x5c')],'raw':!![],'transaction':_0x567932});})[_0xfb83('0x2a')](function(_0x15f38f){var _0x1bcf40=_['map'](_0x15f38f,function(_0x256e4c){return Number(_0x256e4c[_0xfb83('0x6c')]);});return db[_0xfb83('0x6d')]['destroy']({'where':{'UserId':{'$in':_0xddf02b},'OpenchannelQueueId':{'$in':_0x1bcf40}},'transaction':_0x567932});})[_0xfb83('0x2a')](function(){var _0x22cc01=_0xfb83('0x6e')+_0x302e9f;return db[_0xfb83('0x59')][_0xfb83('0x36')](_0x22cc01,{'type':db[_0xfb83('0x5a')]['QueryTypes']['SELECT'],'raw':!![],'transaction':_0x567932});})['then'](function(_0x4aae75){var _0x39fc36=_['map'](_0x4aae75,function(_0x59bae9){return Number(_0x59bae9[_0xfb83('0x6f')]);});return db[_0xfb83('0x70')][_0xfb83('0x61')]({'where':{'UserId':{'$in':_0xddf02b},'WhatsappQueueId':{'$in':_0x39fc36}},'transaction':_0x567932});})[_0xfb83('0x2a')](function(){return db[_0xfb83('0x71')][_0xfb83('0x4b')]({'where':{'TeamId':_0x302e9f}});})[_0xfb83('0x2a')](function(_0x58102e){if(_0x58102e===null){return;}return db[_0xfb83('0x72')][_0xfb83('0x61')]({'where':{'UserId':{'$in':_0xddf02b},'VoicePrefixId':_0x58102e[_0xfb83('0x73')]},'transaction':_0x567932});})[_0xfb83('0x2a')](function(){return db['Team']['destroy']({'where':{'id':_0x302e9f},'cascade':!![],'transaction':_0x567932});})['then'](function(_0x1455a2){if(_0x1455a2===0x0){_0x474109[_0xfb83('0x2b')](0x194);}else{return db[_0xfb83('0x55')]['destroy']({'where':{'type':_0xfb83('0x74'),'resourceId':_0x302e9f},'cascade':!![],'transaction':_0x567932})[_0xfb83('0x2a')](function(){_0x474109[_0xfb83('0x22')](0xcc)['end']();});}})[_0xfb83('0x4c')](function(_0x4e4fe7){_0x474109[_0xfb83('0x22')](0x1f4)[_0xfb83('0x75')](_0x4e4fe7);});});};exports[_0xfb83('0x76')]=function(_0x37b9bd,_0x3feee7,_0xb3cdfb){return db[_0xfb83('0x47')][_0xfb83('0x77')]({'where':{'id':_0x37b9bd[_0xfb83('0x49')]['id']}})[_0xfb83('0x2a')](handleEntityNotFound(_0x3feee7,null))['then'](function(_0x2c8511){if(!_0x37b9bd[_0xfb83('0x36')][_0xfb83('0x78')]||!utils[_0xfb83('0x79')](_0x37b9bd['query'][_0xfb83('0x78')])){throw new db[(_0xfb83('0x5a'))][(_0xfb83('0x7a'))]('Unknown\x20channel');}var _0x52661c={};var _0xf54cba={};_0xf54cba[_0xfb83('0x35')]=_[_0xfb83('0x37')](db[_[_0xfb83('0x7b')](_0x37b9bd[_0xfb83('0x36')]['channel'][_0xfb83('0x7c')]())+_0xfb83('0x7d')][_0xfb83('0x31')]);_0xf54cba[_0xfb83('0x36')]=_[_0xfb83('0x37')](_0x37b9bd[_0xfb83('0x36')]);_0xf54cba[_0xfb83('0x38')]=_['intersection'](_0xf54cba[_0xfb83('0x35')],_0xf54cba[_0xfb83('0x36')]);_0x52661c[_0xfb83('0x3a')]=_['intersection'](_0xf54cba[_0xfb83('0x35')],qs[_0xfb83('0x3b')](_0x37b9bd[_0xfb83('0x36')][_0xfb83('0x3b')]));_0x52661c[_0xfb83('0x3a')]=_0x52661c['attributes'][_0xfb83('0x3c')]?_0x52661c['attributes']:_0xf54cba[_0xfb83('0x35')];_0x52661c[_0xfb83('0x26')]=qs['limit'](_0x37b9bd[_0xfb83('0x36')][_0xfb83('0x26')]);_0x52661c[_0xfb83('0x24')]=qs[_0xfb83('0x24')](_0x37b9bd[_0xfb83('0x36')][_0xfb83('0x24')]);_0x52661c[_0xfb83('0x3f')]=qs[_0xfb83('0x40')](_0x37b9bd['query']['sort']);_0x52661c[_0xfb83('0x41')]=qs[_0xfb83('0x38')](_[_0xfb83('0x42')](_0x37b9bd[_0xfb83('0x36')],_0xf54cba[_0xfb83('0x38')]));_0x52661c=_[_0xfb83('0x44')]({},_0x52661c,_0x37b9bd[_0xfb83('0x7e')]);return _0x2c8511['get'+_[_0xfb83('0x7b')](_0x37b9bd[_0xfb83('0x36')][_0xfb83('0x78')][_0xfb83('0x7c')]())+_0xfb83('0x7f')](_0x52661c);})[_0xfb83('0x2a')](respondWithResult(_0x3feee7,null))['catch'](handleError(_0x3feee7,null));};exports[_0xfb83('0x80')]=function(_0x24b401,_0xf8978b,_0xdc9963){return db['Team'][_0xfb83('0x77')]({'where':{'id':_0x24b401['params']['id']}})['then'](function(_0x294100){if(_0x294100){if(!_0x24b401[_0xfb83('0x4e')]['channel']||!utils[_0xfb83('0x79')](_0x24b401[_0xfb83('0x4e')][_0xfb83('0x78')])){throw new db[(_0xfb83('0x5a'))][(_0xfb83('0x7a'))](_0xfb83('0x81'));}return _0x294100[_0xfb83('0x82')+_['capitalize'](_0x24b401[_0xfb83('0x4e')]['channel']['toLowerCase']())+'Queues'](_0x24b401[_0xfb83('0x4e')][_0xfb83('0x83')]);}return null;})[_0xfb83('0x2a')](handleEntityNotFound(_0xf8978b,null))[_0xfb83('0x2a')](respondWithStatusCode(_0xf8978b,null))['catch'](handleError(_0xf8978b,null));};exports[_0xfb83('0x84')]=function(_0x44c219,_0x5bc1c8,_0x2ce1aa){return db['Team'][_0xfb83('0x77')]({'where':{'id':_0x44c219['params']['id']}})['then'](function(_0x1230ea){if(_0x1230ea){if(!_0x44c219[_0xfb83('0x36')][_0xfb83('0x78')]||!utils[_0xfb83('0x79')](_0x44c219['query'][_0xfb83('0x78')])){throw new db['Sequelize']['ValidationError'](_0xfb83('0x81'));}return _0x1230ea[_0xfb83('0x85')+_[_0xfb83('0x7b')](_0x44c219[_0xfb83('0x36')][_0xfb83('0x78')][_0xfb83('0x7c')]())+'Queues'](_0x44c219['query'][_0xfb83('0x83')]);}return null;})[_0xfb83('0x2a')](handleEntityNotFound(_0x5bc1c8,null))[_0xfb83('0x2a')](respondWithStatusCode(_0x5bc1c8,null))[_0xfb83('0x4c')](handleError(_0x5bc1c8,null));};exports[_0xfb83('0x86')]=function(_0x2cabee,_0x1f55aa){var _0x1baa77=_[_0xfb83('0x87')](_0x2cabee[_0xfb83('0x4e')]['ids'])?_0x2cabee[_0xfb83('0x4e')][_0xfb83('0x83')]:[_0x2cabee[_0xfb83('0x4e')][_0xfb83('0x83')]];var _0x218334=_0x2cabee[_0xfb83('0x49')]['id'];return db['Team']['find']({'where':{'id':_0x218334}})['then'](handleEntityNotFound(_0x1f55aa,null))[_0xfb83('0x2a')](function(_0x5a1bb9){if(_0x5a1bb9){var _0x25cd5e=['Voice','Chat','Mail',_0xfb83('0x88'),_0xfb83('0x89'),'Openchannel',_0xfb83('0x8a')];return db['sequelize'][_0xfb83('0x57')](function(_0x483f1b){var _0x1f59b8=_[_0xfb83('0x30')](_0x25cd5e,function(_0x3ddf44){var _0x504898={'attributes':['id',_0xfb83('0x2e')]};if(_0x3ddf44==='Voice'){_0x504898[_0xfb83('0x8b')]={'attributes':[_0xfb83('0x8c')]};}return _0x5a1bb9['get'+_0x3ddf44+_0xfb83('0x7f')](_0x504898)[_0xfb83('0x2a')](function(_0xac219){var _0x140129=_['map'](_0xac219,function(_0xbbc0a1){var _0x5e2399=_[_0xfb83('0x30')](_0x1baa77,function(_0x2cd66c){var _0x57573c={'where':{'UserId':_0x2cd66c,[_0x3ddf44+'QueueId']:_0xbbc0a1['id']},'transaction':_0x483f1b};if(_0x3ddf44===_0xfb83('0x8d')){_0x57573c[_0xfb83('0x8e')]={'penalty':_0xbbc0a1[_0xfb83('0x8f')][_0xfb83('0x8c')]};}return db[_0xfb83('0x90')+_0x3ddf44+_0xfb83('0x7d')][_0xfb83('0x91')](_0x57573c)[_0xfb83('0x2a')](function(){socket['emit'](_0xfb83('0x4f')+_0x3ddf44+'Queue:save',{'UserId':_0x2cd66c,[_0x3ddf44+'QueueId']:_0xbbc0a1['id']});if(_0x3ddf44!=='Voice'){return;}return db['User'][_0xfb83('0x92')]({'where':{'id':_0x1baa77,'online':0x1},'attributes':['id',_0xfb83('0x2e'),'online',_0xfb83('0x93'),'interface'],'raw':!![]})['then'](function(_0x4dc6f0){var _0x353a7b=_['map'](_0x4dc6f0,function(_0x4a03e2){return db['UserVoiceQueueRt'][_0xfb83('0x94')]({'membername':_0x4a03e2[_0xfb83('0x2e')],'UserId':_0x4a03e2['id'],'queue_name':_0xbbc0a1[_0xfb83('0x2e')],'VoiceQueueId':_0xbbc0a1['id'],'interface':_[_0xfb83('0x95')](_0x4a03e2[_0xfb83('0x96')])?util[_0xfb83('0x97')](_0xfb83('0x98'),_0x4a03e2[_0xfb83('0x2e')]):_0x4a03e2[_0xfb83('0x96')],'paused':_0x4a03e2['voicePause']||![],'penalty':_0xbbc0a1[_0xfb83('0x8f')][_0xfb83('0x8c')]},{'transaction':_0x483f1b});});return Promise[_0xfb83('0x99')](_0x353a7b);});});});return Promise[_0xfb83('0x99')](_0x5e2399);});return Promise['all'](_0x140129);})[_0xfb83('0x2a')](function(){return db['TeamVoicePrefix'][_0xfb83('0x77')]({'where':{'teamId':_0x218334}})[_0xfb83('0x2a')](function(_0x445900){if(_0x445900){var _0x5cea49=_['map'](_0x1baa77,function(_0x213d6b){db[_0xfb83('0x72')][_0xfb83('0x94')]({'UserId':_0x213d6b,'VoicePrefixId':_0x445900['VoicePrefixId']});});return Promise[_0xfb83('0x99')](_0x5cea49);}});});});return Promise[_0xfb83('0x99')](_0x1f59b8)['then'](function(){return _0x5a1bb9[_0xfb83('0x86')](_0x1baa77,{'transaction':_0x483f1b})[_0xfb83('0x9a')](function(_0x11a9b1){return _0x11a9b1;});});});}})[_0xfb83('0x2a')](respondWithResult(_0x1f55aa,null))[_0xfb83('0x4c')](handleError(_0x1f55aa,null));};exports[_0xfb83('0x9b')]=function(_0x52a421,_0x402ca4){var _0x11ec5c=_['isArray'](_0x52a421['query'][_0xfb83('0x83')])?_0x52a421[_0xfb83('0x36')][_0xfb83('0x83')]:[_0x52a421[_0xfb83('0x36')][_0xfb83('0x83')]];var _0x56b6be=_0x52a421[_0xfb83('0x49')]['id'];return db[_0xfb83('0x47')][_0xfb83('0x4b')]({'where':{'id':_0x56b6be}})[_0xfb83('0x2a')](handleEntityNotFound(_0x402ca4,null))[_0xfb83('0x2a')](function(_0x1767fc){if(_0x1767fc){var _0x20c76d=[_0xfb83('0x8d'),'Chat',_0xfb83('0x9c'),_0xfb83('0x88'),_0xfb83('0x89'),_0xfb83('0x9d'),_0xfb83('0x8a')];return db[_0xfb83('0x59')][_0xfb83('0x57')](function(_0x464b04){var _0x16e624=_[_0xfb83('0x30')](_0x20c76d,function(_0x384231){var _0x2aac42={'attributes':['id',_0xfb83('0x2e')]};return _0x1767fc['get'+_0x384231+_0xfb83('0x7f')](_0x2aac42)[_0xfb83('0x2a')](function(_0x14d138){var _0x415978=_[_0xfb83('0x30')](_0x14d138,function(_0xc22263){return _0xc22263['removeAgents'](_0x11ec5c,{'transaction':_0x464b04})['then'](function(){var _0x2b7bc0=_[_0xfb83('0x30')](_0x11ec5c,function(_0x2b0e50){socket[_0xfb83('0x9e')](_0xfb83('0x4f')+_0x384231+'Queue:remove',{'UserId':Number(_0x2b0e50),[_0x384231+_0xfb83('0x9f')]:_0xc22263['id']});if(_0x384231!=='Voice'){return;}return db[_0xfb83('0xa0')][_0xfb83('0x61')]({'where':{'VoiceQueueId':_0xc22263['id'],'UserId':_0x2b0e50},'transaction':_0x464b04});});return Promise[_0xfb83('0x99')](_0x2b7bc0);});});return Promise[_0xfb83('0x99')](_0x415978);});});return Promise[_0xfb83('0x99')](_0x16e624)[_0xfb83('0x2a')](function(){return _0x1767fc[_0xfb83('0x9b')](_0x11ec5c,{'transaction':_0x464b04});})[_0xfb83('0x2a')](function(){return db[_0xfb83('0x71')]['findOne']({'where':{'teamId':_0x56b6be}})[_0xfb83('0x2a')](function(_0x5d0591){if(_0x5d0591){var _0x39a579=_[_0xfb83('0x30')](_0x11ec5c,function(_0x543c38){db['UserVoicePrefix'][_0xfb83('0x61')]({'where':{'UserId':_0x543c38,'VoicePrefixId':_0x5d0591[_0xfb83('0x73')]}});});return Promise[_0xfb83('0x99')](_0x39a579);}});});});}})[_0xfb83('0x2a')](respondWithStatusCode(_0x402ca4,null))[_0xfb83('0x4c')](handleError(_0x402ca4,null));};exports[_0xfb83('0xa1')]=function(_0xe3fdfc,_0x3b75bc,_0x4943b8){var _0xf494c1={};var _0x2bc5a2={};var _0x30491b;var _0x1ea8a1;return db[_0xfb83('0x47')][_0xfb83('0x77')]({'where':{'id':_0xe3fdfc[_0xfb83('0x49')]['id']}})[_0xfb83('0x2a')](handleEntityNotFound(_0x3b75bc,null))[_0xfb83('0x2a')](function(_0x253100){if(_0x253100){_0x30491b=_0x253100;_0x2bc5a2[_0xfb83('0x35')]=_[_0xfb83('0x37')](db[_0xfb83('0x90')]['rawAttributes']);_0x2bc5a2[_0xfb83('0x36')]=_[_0xfb83('0x37')](_0xe3fdfc[_0xfb83('0x36')]);_0x2bc5a2['filters']=_[_0xfb83('0x39')](_0x2bc5a2['model'],_0x2bc5a2[_0xfb83('0x36')]);_0xf494c1[_0xfb83('0x3a')]=_['intersection'](_0x2bc5a2[_0xfb83('0x35')],qs[_0xfb83('0x3b')](_0xe3fdfc[_0xfb83('0x36')][_0xfb83('0x3b')]));_0xf494c1[_0xfb83('0x3a')]=_0xf494c1[_0xfb83('0x3a')][_0xfb83('0x3c')]?_0xf494c1['attributes']:_0x2bc5a2[_0xfb83('0x35')];_0xf494c1['order']=qs[_0xfb83('0x40')](_0xe3fdfc['query'][_0xfb83('0x40')]);_0xf494c1[_0xfb83('0x41')]=qs[_0xfb83('0x38')](_[_0xfb83('0x42')](_0xe3fdfc[_0xfb83('0x36')],_0x2bc5a2[_0xfb83('0x38')]));if(_0xe3fdfc[_0xfb83('0x36')][_0xfb83('0x43')]){_0xf494c1[_0xfb83('0x41')]=_[_0xfb83('0x44')](_0xf494c1[_0xfb83('0x41')],{'$or':_[_0xfb83('0x30')](_0xf494c1[_0xfb83('0x3a')],function(_0xb80c32){var _0x50f435={};_0x50f435[_0xb80c32]={'$like':'%'+_0xe3fdfc[_0xfb83('0x36')][_0xfb83('0x43')]+'%'};return _0x50f435;})});}_0xf494c1=_['merge']({},_0xf494c1,_0xe3fdfc['options']);return _0x30491b[_0xfb83('0xa1')](_0xf494c1);}})[_0xfb83('0x2a')](function(_0x42fe6d){if(_0x42fe6d){_0x1ea8a1=_0x42fe6d[_0xfb83('0x3c')];if(!_0xe3fdfc[_0xfb83('0x36')][_0xfb83('0x3d')](_0xfb83('0x3e'))){_0xf494c1[_0xfb83('0x26')]=qs[_0xfb83('0x26')](_0xe3fdfc[_0xfb83('0x36')][_0xfb83('0x26')]);_0xf494c1[_0xfb83('0x24')]=qs[_0xfb83('0x24')](_0xe3fdfc['query'][_0xfb83('0x24')]);}return _0x30491b[_0xfb83('0xa1')](_0xf494c1);}})[_0xfb83('0x2a')](function(_0x39529c){if(_0x39529c){return _0x39529c?{'count':_0x1ea8a1,'rows':_0x39529c}:null;}})[_0xfb83('0x2a')](respondWithResult(_0x3b75bc,null))['catch'](handleError(_0x3b75bc,null));};
\ No newline at end of file
+var _0xaa83=['json','limit','undefined','offset','count','Content-Range','save','update','destroy','then','get','Teams','UserProfileResource','stack','name','send','index','Team','fieldName','type','model','map','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','rawAttributes','find','create','body','user','UserProfileSection','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','getQueues','channel','isValidChannel','Sequelize','ValidationError','Unknown\x20channel','capitalize','toLowerCase','Queue','Queues','findOne','add','ids','removeQueues','addAgents','Voice','Chat','Mail','Sms','Fax','Whatsapp','sequelize','transaction','through','penalty','QueueId','TeamVoiceQueue','User','findOrCreate','emit','Queue:save','voicePause','interface','UserVoiceQueueRt','upsert','isNil','format','SIP/%s','all','Openchannel','parse','Queue:remove','removeAgents','getAgents','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','fs-extra','squel','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','redis','defaults','localhost','socket.io-emitter','./team.socket','register','sendStatus','status','end'];(function(_0x77d310,_0x2b2fe7){var _0x2cdce4=function(_0xbaa481){while(--_0xbaa481){_0x77d310['push'](_0x77d310['shift']());}};_0x2cdce4(++_0x2b2fe7);}(_0xaa83,0x16a));var _0x3aa8=function(_0x4defeb,_0x127aeb){_0x4defeb=_0x4defeb-0x0;var _0x2cde95=_0xaa83[_0x4defeb];return _0x2cde95;};'use strict';var emlformat=require(_0x3aa8('0x0'));var rimraf=require(_0x3aa8('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x3aa8('0x2'));var rp=require(_0x3aa8('0x3'));var moment=require(_0x3aa8('0x4'));var BPromise=require(_0x3aa8('0x5'));var Mustache=require(_0x3aa8('0x6'));var util=require(_0x3aa8('0x7'));var path=require(_0x3aa8('0x8'));var sox=require(_0x3aa8('0x9'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x3aa8('0xa'));var _=require('lodash');var squel=require(_0x3aa8('0xb'));var crypto=require('crypto');var jsforce=require(_0x3aa8('0xc'));var deskjs=require(_0x3aa8('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x3aa8('0xe'));var Redis=require(_0x3aa8('0xf'));var authService=require(_0x3aa8('0x10'));var qs=require(_0x3aa8('0x11'));var as=require(_0x3aa8('0x12'));var hardwareService=require(_0x3aa8('0x13'));var logger=require(_0x3aa8('0x14'))('api');var utils=require(_0x3aa8('0x15'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];config[_0x3aa8('0x16')]=_[_0x3aa8('0x17')](config[_0x3aa8('0x16')],{'host':_0x3aa8('0x18'),'port':0x18eb});var socket=require(_0x3aa8('0x19'))(new Redis(config[_0x3aa8('0x16')]));require(_0x3aa8('0x1a'))[_0x3aa8('0x1b')](socket);function respondWithStatusCode(_0xa225,_0x5a3b60){_0x5a3b60=_0x5a3b60||0xcc;return function(_0x5b4148){if(_0x5b4148){return _0xa225[_0x3aa8('0x1c')](_0x5a3b60);}return _0xa225[_0x3aa8('0x1d')](_0x5a3b60)[_0x3aa8('0x1e')]();};}function respondWithResult(_0x3b9354,_0x5ce838){_0x5ce838=_0x5ce838||0xc8;return function(_0x2a69cb){if(_0x2a69cb){return _0x3b9354['status'](_0x5ce838)[_0x3aa8('0x1f')](_0x2a69cb);}};}function respondWithFilteredResult(_0x524254,_0xb318de){return function(_0x2c18fe){if(_0x2c18fe){var _0x595506=typeof _0xb318de['offset']==='undefined'&&typeof _0xb318de[_0x3aa8('0x20')]===_0x3aa8('0x21');var _0x4583b7=_0x2c18fe['count'];var _0x48ba51=_0x595506?0x0:_0xb318de[_0x3aa8('0x22')];var _0x694788=_0x595506?_0x2c18fe[_0x3aa8('0x23')]:_0xb318de[_0x3aa8('0x22')]+_0xb318de['limit'];var _0x30e3bd;if(_0x694788>=_0x4583b7){_0x694788=_0x4583b7;_0x30e3bd=0xc8;}else{_0x30e3bd=0xce;}_0x524254[_0x3aa8('0x1d')](_0x30e3bd);return _0x524254['set'](_0x3aa8('0x24'),_0x48ba51+'-'+_0x694788+'/'+_0x4583b7)[_0x3aa8('0x1f')](_0x2c18fe);}return null;};}function patchUpdates(_0x15b116){return function(_0x1d6cee){try{jsonpatch['apply'](_0x1d6cee,_0x15b116,!![]);}catch(_0x34e431){return BPromise['reject'](_0x34e431);}return _0x1d6cee[_0x3aa8('0x25')]();};}function saveUpdates(_0x1d87b8,_0xa59b19){return function(_0x499f5b){if(_0x499f5b){return _0x499f5b[_0x3aa8('0x26')](_0x1d87b8)['then'](function(_0x1eac03){return _0x1eac03;});}return null;};}function removeEntity(_0x2f06f6,_0x48cc96){return function(_0x31724b){if(_0x31724b){return _0x31724b[_0x3aa8('0x27')]()[_0x3aa8('0x28')](function(){var _0x343533=_0x31724b[_0x3aa8('0x29')]({'plain':!![]});var _0x463822=_0x3aa8('0x2a');return db[_0x3aa8('0x2b')][_0x3aa8('0x27')]({'where':{'type':_0x463822,'resourceId':_0x343533['id']}})[_0x3aa8('0x28')](function(){return _0x31724b;});})[_0x3aa8('0x28')](function(){_0x2f06f6[_0x3aa8('0x1d')](0xcc)[_0x3aa8('0x1e')]();});}};}function handleEntityNotFound(_0x1a30f4,_0x3cd221){return function(_0x4a7504){if(!_0x4a7504){_0x1a30f4[_0x3aa8('0x1c')](0x194);}return _0x4a7504;};}function handleError(_0x378d8b,_0x27995a){_0x27995a=_0x27995a||0x1f4;return function(_0x4264a4){logger['error'](_0x4264a4[_0x3aa8('0x2c')]);if(_0x4264a4['name']){delete _0x4264a4[_0x3aa8('0x2d')];}_0x378d8b[_0x3aa8('0x1d')](_0x27995a)[_0x3aa8('0x2e')](_0x4264a4);};}exports[_0x3aa8('0x2f')]=function(_0x448caa,_0x13674d){var _0x31ce1e={},_0x46b095={},_0x4cfc83={'count':0x0,'rows':[]};var _0x553e7b=_['map'](db[_0x3aa8('0x30')]['rawAttributes'],function(_0x5295ee){return{'name':_0x5295ee[_0x3aa8('0x31')],'type':_0x5295ee[_0x3aa8('0x32')]['key']};});_0x46b095[_0x3aa8('0x33')]=_[_0x3aa8('0x34')](_0x553e7b,_0x3aa8('0x2d'));_0x46b095[_0x3aa8('0x35')]=_[_0x3aa8('0x36')](_0x448caa[_0x3aa8('0x35')]);_0x46b095[_0x3aa8('0x37')]=_['intersection'](_0x46b095[_0x3aa8('0x33')],_0x46b095[_0x3aa8('0x35')]);_0x31ce1e[_0x3aa8('0x38')]=_[_0x3aa8('0x39')](_0x46b095[_0x3aa8('0x33')],qs[_0x3aa8('0x3a')](_0x448caa[_0x3aa8('0x35')][_0x3aa8('0x3a')]));_0x31ce1e[_0x3aa8('0x38')]=_0x31ce1e[_0x3aa8('0x38')][_0x3aa8('0x3b')]?_0x31ce1e[_0x3aa8('0x38')]:_0x46b095[_0x3aa8('0x33')];if(!_0x448caa[_0x3aa8('0x35')][_0x3aa8('0x3c')](_0x3aa8('0x3d'))){_0x31ce1e['limit']=qs['limit'](_0x448caa['query'][_0x3aa8('0x20')]);_0x31ce1e[_0x3aa8('0x22')]=qs[_0x3aa8('0x22')](_0x448caa['query'][_0x3aa8('0x22')]);}_0x31ce1e[_0x3aa8('0x3e')]=qs[_0x3aa8('0x3f')](_0x448caa[_0x3aa8('0x35')][_0x3aa8('0x3f')]);_0x31ce1e['where']=qs[_0x3aa8('0x37')](_[_0x3aa8('0x40')](_0x448caa[_0x3aa8('0x35')],_0x46b095['filters']),_0x553e7b);if(_0x448caa['query'][_0x3aa8('0x41')]){_0x31ce1e[_0x3aa8('0x42')]=_[_0x3aa8('0x43')](_0x31ce1e[_0x3aa8('0x42')],{'$or':_['map'](_0x553e7b,function(_0x2f75e8){if(_0x2f75e8[_0x3aa8('0x32')]!==_0x3aa8('0x44')){var _0x576aeb={};_0x576aeb[_0x2f75e8[_0x3aa8('0x2d')]]={'$like':'%'+_0x448caa['query']['filter']+'%'};return _0x576aeb;}})});}_0x31ce1e=_[_0x3aa8('0x43')]({},_0x31ce1e,_0x448caa[_0x3aa8('0x45')]);var _0x558266={'where':_0x31ce1e['where']};return db['Team']['count'](_0x558266)['then'](function(_0x44473b){_0x4cfc83[_0x3aa8('0x23')]=_0x44473b;if(_0x448caa[_0x3aa8('0x35')][_0x3aa8('0x46')]){_0x31ce1e[_0x3aa8('0x47')]=[{'all':!![]}];}return db[_0x3aa8('0x30')][_0x3aa8('0x48')](_0x31ce1e);})[_0x3aa8('0x28')](function(_0x212730){_0x4cfc83[_0x3aa8('0x49')]=_0x212730;return _0x4cfc83;})[_0x3aa8('0x28')](respondWithFilteredResult(_0x13674d,_0x31ce1e))[_0x3aa8('0x4a')](handleError(_0x13674d,null));};exports[_0x3aa8('0x4b')]=function(_0x4aa222,_0x4614a6){var _0xe9c1db={'raw':![],'where':{'id':_0x4aa222[_0x3aa8('0x4c')]['id']}},_0x53b775={};_0x53b775[_0x3aa8('0x33')]=_['keys'](db[_0x3aa8('0x30')][_0x3aa8('0x4d')]);_0x53b775[_0x3aa8('0x35')]=_[_0x3aa8('0x36')](_0x4aa222['query']);_0x53b775['filters']=_[_0x3aa8('0x39')](_0x53b775['model'],_0x53b775[_0x3aa8('0x35')]);_0xe9c1db[_0x3aa8('0x38')]=_[_0x3aa8('0x39')](_0x53b775[_0x3aa8('0x33')],qs[_0x3aa8('0x3a')](_0x4aa222[_0x3aa8('0x35')][_0x3aa8('0x3a')]));_0xe9c1db[_0x3aa8('0x38')]=_0xe9c1db[_0x3aa8('0x38')][_0x3aa8('0x3b')]?_0xe9c1db[_0x3aa8('0x38')]:_0x53b775['model'];if(_0x4aa222[_0x3aa8('0x35')][_0x3aa8('0x46')]){_0xe9c1db[_0x3aa8('0x47')]=[{'all':!![]}];}_0xe9c1db=_['merge']({},_0xe9c1db,_0x4aa222[_0x3aa8('0x45')]);return db['Team'][_0x3aa8('0x4e')](_0xe9c1db)[_0x3aa8('0x28')](handleEntityNotFound(_0x4614a6,null))[_0x3aa8('0x28')](respondWithResult(_0x4614a6,null))[_0x3aa8('0x4a')](handleError(_0x4614a6,null));};exports[_0x3aa8('0x4f')]=function(_0x3bf033,_0x2e51b4){return db['Team'][_0x3aa8('0x4f')](_0x3bf033[_0x3aa8('0x50')],{})['then'](function(_0x4ba41b){var _0x57936b=_0x3bf033[_0x3aa8('0x51')][_0x3aa8('0x29')]({'plain':!![]});if(!_0x57936b)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x57936b['role']===_0x3aa8('0x51')){var _0x3658d3=_0x4ba41b[_0x3aa8('0x29')]({'plain':!![]});var _0xecec5d=_0x3aa8('0x2a');return db[_0x3aa8('0x52')][_0x3aa8('0x4e')]({'where':{'name':_0xecec5d,'userProfileId':_0x57936b[_0x3aa8('0x53')]},'raw':!![]})[_0x3aa8('0x28')](function(_0x569637){if(_0x569637&&_0x569637[_0x3aa8('0x54')]===0x0){return db[_0x3aa8('0x2b')]['create']({'name':_0x3658d3[_0x3aa8('0x2d')],'resourceId':_0x3658d3['id'],'type':_0x569637[_0x3aa8('0x2d')],'sectionId':_0x569637['id']},{})['then'](function(){return _0x4ba41b;});}else{return _0x4ba41b;}})[_0x3aa8('0x4a')](function(_0x51a92e){logger[_0x3aa8('0x55')](_0x3aa8('0x56'),_0x51a92e);throw _0x51a92e;});}return _0x4ba41b;})[_0x3aa8('0x28')](respondWithResult(_0x2e51b4,0xc9))[_0x3aa8('0x4a')](handleError(_0x2e51b4,null));};exports[_0x3aa8('0x26')]=function(_0x40169c,_0x50f357){if(_0x40169c['body']['id']){delete _0x40169c['body']['id'];}return db[_0x3aa8('0x30')][_0x3aa8('0x4e')]({'where':{'id':_0x40169c[_0x3aa8('0x4c')]['id']}})[_0x3aa8('0x28')](handleEntityNotFound(_0x50f357,null))['then'](saveUpdates(_0x40169c[_0x3aa8('0x50')],null))[_0x3aa8('0x28')](respondWithResult(_0x50f357,null))['catch'](handleError(_0x50f357,null));};exports[_0x3aa8('0x27')]=function(_0x2f7e38,_0x3b9242){return db[_0x3aa8('0x30')][_0x3aa8('0x4e')]({'where':{'id':_0x2f7e38[_0x3aa8('0x4c')]['id']}})[_0x3aa8('0x28')](handleEntityNotFound(_0x3b9242,null))[_0x3aa8('0x28')](removeEntity(_0x3b9242,null))[_0x3aa8('0x4a')](handleError(_0x3b9242,null));};exports[_0x3aa8('0x57')]=function(_0x3eab6c,_0x4f68ef,_0xa09163){return db[_0x3aa8('0x30')]['findOne']({'where':{'id':_0x3eab6c['params']['id']}})[_0x3aa8('0x28')](handleEntityNotFound(_0x4f68ef,null))[_0x3aa8('0x28')](function(_0x516ba2){if(!_0x3eab6c[_0x3aa8('0x35')][_0x3aa8('0x58')]||!utils[_0x3aa8('0x59')](_0x3eab6c[_0x3aa8('0x35')][_0x3aa8('0x58')])){throw new db[(_0x3aa8('0x5a'))][(_0x3aa8('0x5b'))](_0x3aa8('0x5c'));}var _0x4add4e={};var _0x174f78={};_0x174f78[_0x3aa8('0x33')]=_[_0x3aa8('0x36')](db[_[_0x3aa8('0x5d')](_0x3eab6c[_0x3aa8('0x35')]['channel'][_0x3aa8('0x5e')]())+_0x3aa8('0x5f')][_0x3aa8('0x4d')]);_0x174f78['query']=_[_0x3aa8('0x36')](_0x3eab6c['query']);_0x174f78[_0x3aa8('0x37')]=_[_0x3aa8('0x39')](_0x174f78[_0x3aa8('0x33')],_0x174f78['query']);_0x4add4e[_0x3aa8('0x38')]=_[_0x3aa8('0x39')](_0x174f78[_0x3aa8('0x33')],qs[_0x3aa8('0x3a')](_0x3eab6c['query'][_0x3aa8('0x3a')]));_0x4add4e[_0x3aa8('0x38')]=_0x4add4e[_0x3aa8('0x38')]['length']?_0x4add4e[_0x3aa8('0x38')]:_0x174f78[_0x3aa8('0x33')];_0x4add4e[_0x3aa8('0x20')]=qs[_0x3aa8('0x20')](_0x3eab6c['query'][_0x3aa8('0x20')]);_0x4add4e[_0x3aa8('0x22')]=qs[_0x3aa8('0x22')](_0x3eab6c['query'][_0x3aa8('0x22')]);_0x4add4e['order']=qs['sort'](_0x3eab6c['query'][_0x3aa8('0x3f')]);_0x4add4e[_0x3aa8('0x42')]=qs[_0x3aa8('0x37')](_[_0x3aa8('0x40')](_0x3eab6c[_0x3aa8('0x35')],_0x174f78[_0x3aa8('0x37')]));_0x4add4e=_['merge']({},_0x4add4e,_0x3eab6c['options']);return _0x516ba2[_0x3aa8('0x29')+_[_0x3aa8('0x5d')](_0x3eab6c['query']['channel'][_0x3aa8('0x5e')]())+_0x3aa8('0x60')](_0x4add4e);})['then'](respondWithResult(_0x4f68ef,null))[_0x3aa8('0x4a')](handleError(_0x4f68ef,null));};exports['addQueues']=function(_0x3c8c2c,_0xb82619,_0xb20140){return db['Team'][_0x3aa8('0x61')]({'where':{'id':_0x3c8c2c['params']['id']}})[_0x3aa8('0x28')](function(_0x30f4af){if(_0x30f4af){if(!_0x3c8c2c[_0x3aa8('0x50')]['channel']||!utils[_0x3aa8('0x59')](_0x3c8c2c[_0x3aa8('0x50')][_0x3aa8('0x58')])){throw new db[(_0x3aa8('0x5a'))][(_0x3aa8('0x5b'))]('Unknown\x20channel');}return _0x30f4af[_0x3aa8('0x62')+_[_0x3aa8('0x5d')](_0x3c8c2c[_0x3aa8('0x50')][_0x3aa8('0x58')]['toLowerCase']())+'Queues'](_0x3c8c2c[_0x3aa8('0x50')][_0x3aa8('0x63')]);}return null;})[_0x3aa8('0x28')](handleEntityNotFound(_0xb82619,null))['then'](respondWithStatusCode(_0xb82619,null))[_0x3aa8('0x4a')](handleError(_0xb82619,null));};exports[_0x3aa8('0x64')]=function(_0x410bdf,_0xc0d797,_0x4aa0a9){return db[_0x3aa8('0x30')][_0x3aa8('0x61')]({'where':{'id':_0x410bdf[_0x3aa8('0x4c')]['id']}})[_0x3aa8('0x28')](function(_0x5a5e01){if(_0x5a5e01){if(!_0x410bdf[_0x3aa8('0x35')][_0x3aa8('0x58')]||!utils['isValidChannel'](_0x410bdf[_0x3aa8('0x35')][_0x3aa8('0x58')])){throw new db[(_0x3aa8('0x5a'))][(_0x3aa8('0x5b'))](_0x3aa8('0x5c'));}return _0x5a5e01['remove'+_['capitalize'](_0x410bdf[_0x3aa8('0x35')][_0x3aa8('0x58')][_0x3aa8('0x5e')]())+'Queues'](_0x410bdf[_0x3aa8('0x35')][_0x3aa8('0x63')]);}return null;})[_0x3aa8('0x28')](handleEntityNotFound(_0xc0d797,null))[_0x3aa8('0x28')](respondWithStatusCode(_0xc0d797,null))[_0x3aa8('0x4a')](handleError(_0xc0d797,null));};exports[_0x3aa8('0x65')]=function(_0x300109,_0x356bda){return db['Team'][_0x3aa8('0x4e')]({'where':{'id':_0x300109[_0x3aa8('0x4c')]['id']}})[_0x3aa8('0x28')](handleEntityNotFound(_0x356bda,null))[_0x3aa8('0x28')](function(_0x59ed8d){if(_0x59ed8d){var _0x23a604=[_0x3aa8('0x66'),_0x3aa8('0x67'),_0x3aa8('0x68'),_0x3aa8('0x69'),_0x3aa8('0x6a'),'Openchannel',_0x3aa8('0x6b')];return db[_0x3aa8('0x6c')][_0x3aa8('0x6d')](function(_0x3a8249){var _0x4a910c=_[_0x3aa8('0x34')](_0x23a604,function(_0xf63d5f){var _0x55f7f4={'attributes':['id',_0x3aa8('0x2d')]};if(_0xf63d5f===_0x3aa8('0x66')){_0x55f7f4[_0x3aa8('0x6e')]={'attributes':[_0x3aa8('0x6f')]};}return _0x59ed8d[_0x3aa8('0x29')+_0xf63d5f+_0x3aa8('0x60')](_0x55f7f4)['then'](function(_0x42729c){var _0x7c4875=_['map'](_0x42729c,function(_0x53d622){var _0x50b66a=_[_0x3aa8('0x34')](_0x300109['body']['ids'],function(_0x42c8bf){var _0x46adea={'where':{'UserId':_0x42c8bf,[_0xf63d5f+_0x3aa8('0x70')]:_0x53d622['id']},'transaction':_0x3a8249};if(_0xf63d5f==='Voice'){_0x46adea[_0x3aa8('0x17')]={'penalty':_0x53d622[_0x3aa8('0x71')]['penalty']};}return db[_0x3aa8('0x72')+_0xf63d5f+_0x3aa8('0x5f')][_0x3aa8('0x73')](_0x46adea)[_0x3aa8('0x28')](function(){socket[_0x3aa8('0x74')](_0x3aa8('0x51')+_0xf63d5f+_0x3aa8('0x75'),{'UserId':_0x42c8bf,[_0xf63d5f+_0x3aa8('0x70')]:_0x53d622['id']});if(_0xf63d5f!==_0x3aa8('0x66'))return;return db['User'][_0x3aa8('0x48')]({'where':{'id':_0x300109[_0x3aa8('0x50')][_0x3aa8('0x63')],'online':0x1},'attributes':['id','name','online',_0x3aa8('0x76'),_0x3aa8('0x77')],'raw':!![]})[_0x3aa8('0x28')](function(_0x440bb4){var _0x2610ce=_[_0x3aa8('0x34')](_0x440bb4,function(_0x193af1){return db[_0x3aa8('0x78')][_0x3aa8('0x79')]({'membername':_0x193af1[_0x3aa8('0x2d')],'UserId':_0x193af1['id'],'queue_name':_0x53d622[_0x3aa8('0x2d')],'VoiceQueueId':_0x53d622['id'],'interface':_[_0x3aa8('0x7a')](_0x193af1['interface'])?util[_0x3aa8('0x7b')](_0x3aa8('0x7c'),_0x193af1[_0x3aa8('0x2d')]):_0x193af1[_0x3aa8('0x77')],'paused':_0x193af1[_0x3aa8('0x76')]||![],'penalty':_0x53d622[_0x3aa8('0x71')]['penalty']},{'transaction':_0x3a8249});});return Promise['all'](_0x2610ce);});});});return Promise[_0x3aa8('0x7d')](_0x50b66a);});return Promise[_0x3aa8('0x7d')](_0x7c4875);});});return Promise[_0x3aa8('0x7d')](_0x4a910c)[_0x3aa8('0x28')](function(){return _0x59ed8d[_0x3aa8('0x65')](_0x300109['body'][_0x3aa8('0x63')],{'transaction':_0x3a8249})['spread'](function(_0x52dc60){return _0x52dc60;});});});}})[_0x3aa8('0x28')](respondWithResult(_0x356bda,null))[_0x3aa8('0x4a')](handleError(_0x356bda,null));};exports['removeAgents']=function(_0x4de2ad,_0xf5ab5){return db[_0x3aa8('0x30')][_0x3aa8('0x4e')]({'where':{'id':_0x4de2ad[_0x3aa8('0x4c')]['id']}})[_0x3aa8('0x28')](handleEntityNotFound(_0xf5ab5,null))[_0x3aa8('0x28')](function(_0x5d24f9){if(_0x5d24f9){var _0x55be1b=['Voice',_0x3aa8('0x67'),'Mail',_0x3aa8('0x69'),'Fax',_0x3aa8('0x7e'),_0x3aa8('0x6b')];return db[_0x3aa8('0x6c')]['transaction'](function(_0x1638be){var _0x358433=_[_0x3aa8('0x34')](_0x55be1b,function(_0x170839){var _0xb2a0b0={'attributes':['id',_0x3aa8('0x2d')]};return _0x5d24f9[_0x3aa8('0x29')+_0x170839+_0x3aa8('0x60')](_0xb2a0b0)[_0x3aa8('0x28')](function(_0x44511d){var _0x59aa40=_['map'](_0x44511d,function(_0x230967){return _0x230967['removeAgents'](_0x4de2ad[_0x3aa8('0x35')]['ids'],{'transaction':_0x1638be})[_0x3aa8('0x28')](function(){var _0x13c38c=JSON[_0x3aa8('0x7f')]('['+_0x4de2ad[_0x3aa8('0x35')]['ids']+']');var _0x3e293b=_[_0x3aa8('0x34')](_0x13c38c,function(_0x24a4b0){socket['emit'](_0x3aa8('0x51')+_0x170839+_0x3aa8('0x80'),{'UserId':Number(_0x24a4b0),[_0x170839+_0x3aa8('0x70')]:_0x230967['id']});if(_0x170839!=='Voice')return;return db[_0x3aa8('0x78')][_0x3aa8('0x27')]({'where':{'VoiceQueueId':_0x230967['id'],'UserId':_0x24a4b0},'transaction':_0x1638be});});return Promise[_0x3aa8('0x7d')](_0x3e293b);});});return Promise[_0x3aa8('0x7d')](_0x59aa40);});});return Promise[_0x3aa8('0x7d')](_0x358433)['then'](function(){return _0x5d24f9[_0x3aa8('0x81')](_0x4de2ad[_0x3aa8('0x35')][_0x3aa8('0x63')],{'transaction':_0x1638be});});});}})[_0x3aa8('0x28')](respondWithStatusCode(_0xf5ab5,null))[_0x3aa8('0x4a')](handleError(_0xf5ab5,null));};exports['getAgents']=function(_0x5db0d0,_0xafa5c,_0x2089fd){var _0x140e8a={};var _0x2e3134={};var _0x51557d;var _0x56cd1d;return db[_0x3aa8('0x30')]['findOne']({'where':{'id':_0x5db0d0[_0x3aa8('0x4c')]['id']}})[_0x3aa8('0x28')](handleEntityNotFound(_0xafa5c,null))[_0x3aa8('0x28')](function(_0x1f9514){if(_0x1f9514){_0x51557d=_0x1f9514;_0x2e3134[_0x3aa8('0x33')]=_[_0x3aa8('0x36')](db[_0x3aa8('0x72')][_0x3aa8('0x4d')]);_0x2e3134['query']=_[_0x3aa8('0x36')](_0x5db0d0[_0x3aa8('0x35')]);_0x2e3134[_0x3aa8('0x37')]=_['intersection'](_0x2e3134[_0x3aa8('0x33')],_0x2e3134['query']);_0x140e8a['attributes']=_[_0x3aa8('0x39')](_0x2e3134[_0x3aa8('0x33')],qs[_0x3aa8('0x3a')](_0x5db0d0[_0x3aa8('0x35')][_0x3aa8('0x3a')]));_0x140e8a[_0x3aa8('0x38')]=_0x140e8a[_0x3aa8('0x38')][_0x3aa8('0x3b')]?_0x140e8a[_0x3aa8('0x38')]:_0x2e3134['model'];_0x140e8a['order']=qs[_0x3aa8('0x3f')](_0x5db0d0[_0x3aa8('0x35')][_0x3aa8('0x3f')]);_0x140e8a[_0x3aa8('0x42')]=qs[_0x3aa8('0x37')](_[_0x3aa8('0x40')](_0x5db0d0['query'],_0x2e3134[_0x3aa8('0x37')]));if(_0x5db0d0['query'][_0x3aa8('0x41')]){_0x140e8a[_0x3aa8('0x42')]=_[_0x3aa8('0x43')](_0x140e8a['where'],{'$or':_[_0x3aa8('0x34')](_0x140e8a[_0x3aa8('0x38')],function(_0x5c13c0){var _0x110c42={};_0x110c42[_0x5c13c0]={'$like':'%'+_0x5db0d0['query']['filter']+'%'};return _0x110c42;})});}_0x140e8a=_[_0x3aa8('0x43')]({},_0x140e8a,_0x5db0d0['options']);return _0x51557d[_0x3aa8('0x82')](_0x140e8a);}})[_0x3aa8('0x28')](function(_0x1d3428){if(_0x1d3428){_0x56cd1d=_0x1d3428[_0x3aa8('0x3b')];if(!_0x5db0d0[_0x3aa8('0x35')]['hasOwnProperty']('nolimit')){_0x140e8a[_0x3aa8('0x20')]=qs[_0x3aa8('0x20')](_0x5db0d0[_0x3aa8('0x35')]['limit']);_0x140e8a[_0x3aa8('0x22')]=qs[_0x3aa8('0x22')](_0x5db0d0[_0x3aa8('0x35')]['offset']);}return _0x51557d['getAgents'](_0x140e8a);}})[_0x3aa8('0x28')](function(_0x55e475){if(_0x55e475){return _0x55e475?{'count':_0x56cd1d,'rows':_0x55e475}:null;}})[_0x3aa8('0x28')](respondWithResult(_0xafa5c,null))[_0x3aa8('0x4a')](handleError(_0xafa5c,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x195e=['exports','events','../../mysqldb','Team','setMaxListeners','save','update','remove','emit','hook'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x195e,0xfb));var _0xe195=function(_0x579cd9,_0x4f39ea){_0x579cd9=_0x579cd9-0x0;var _0x3074f3=_0x195e[_0x579cd9];return _0x3074f3;};'use strict';var EventEmitter=require(_0xe195('0x0'));var Team=require(_0xe195('0x1'))['db'][_0xe195('0x2')];var TeamEvents=new EventEmitter();TeamEvents[_0xe195('0x3')](0x0);var events={'afterCreate':_0xe195('0x4'),'afterUpdate':_0xe195('0x5'),'afterDestroy':_0xe195('0x6')};function emitEvent(_0x4064fd){return function(_0x2243e9,_0x30011c,_0x31f6c9){TeamEvents[_0xe195('0x7')](_0x4064fd+':'+_0x2243e9['id'],_0x2243e9);TeamEvents[_0xe195('0x7')](_0x4064fd,_0x2243e9);_0x31f6c9(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];Team[_0xe195('0x8')](e,emitEvent(event));}}module[_0xe195('0x9')]=TeamEvents;
\ No newline at end of file
+var _0xb699=['hasOwnProperty','hook','exports','../../mysqldb','Team','setMaxListeners','remove','emit'];(function(_0xf44a0,_0x3cfaa1){var _0x4032c5=function(_0x5432a3){while(--_0x5432a3){_0xf44a0['push'](_0xf44a0['shift']());}};_0x4032c5(++_0x3cfaa1);}(_0xb699,0x173));var _0x9b69=function(_0x1fda8f,_0x132b07){_0x1fda8f=_0x1fda8f-0x0;var _0xddd26=_0xb699[_0x1fda8f];return _0xddd26;};'use strict';var EventEmitter=require('events');var Team=require(_0x9b69('0x0'))['db'][_0x9b69('0x1')];var TeamEvents=new EventEmitter();TeamEvents[_0x9b69('0x2')](0x0);var events={'afterCreate':'save','afterUpdate':'update','afterDestroy':_0x9b69('0x3')};function emitEvent(_0x30a5a4){return function(_0x5204b3,_0x539a08,_0x2bdf88){TeamEvents[_0x9b69('0x4')](_0x30a5a4+':'+_0x5204b3['id'],_0x5204b3);TeamEvents[_0x9b69('0x4')](_0x30a5a4,_0x5204b3);_0x2bdf88(null);};}for(var e in events){if(events[_0x9b69('0x5')](e)){var event=events[e];Team[_0x9b69('0x6')](e,emitEvent(event));}}module[_0x9b69('0x7')]=TeamEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3765=['moment','request-promise','rimraf','../../config/environment','exports','lodash','../../config/logger','api'];(function(_0x4f6a11,_0xa5a4b1){var _0x1757c5=function(_0x3dd747){while(--_0x3dd747){_0x4f6a11['push'](_0x4f6a11['shift']());}};_0x1757c5(++_0xa5a4b1);}(_0x3765,0x12d));var _0x5376=function(_0x35f630,_0x54f852){_0x35f630=_0x35f630-0x0;var _0x35864a=_0x3765[_0x35f630];return _0x35864a;};'use strict';var _=require(_0x5376('0x0'));var util=require('util');var logger=require(_0x5376('0x1'))(_0x5376('0x2'));var moment=require(_0x5376('0x3'));var BPromise=require('bluebird');var rp=require(_0x5376('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x5376('0x5'));var config=require(_0x5376('0x6'));var attributes=require('./team.attributes');module[_0x5376('0x7')]=function(_0x5795be,_0x567a2d){return _0x5795be['define']('Team',attributes,{'tableName':'teams','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xe96c=['../../config/environment','./team.attributes','exports','Team','teams','lodash','util','../../config/logger','api','moment','path','rimraf'];(function(_0x53aa0d,_0xab270a){var _0x58ea1c=function(_0x376986){while(--_0x376986){_0x53aa0d['push'](_0x53aa0d['shift']());}};_0x58ea1c(++_0xab270a);}(_0xe96c,0x95));var _0xce96=function(_0x3683bd,_0x23a18c){_0x3683bd=_0x3683bd-0x0;var _0x355d8c=_0xe96c[_0x3683bd];return _0x355d8c;};'use strict';var _=require(_0xce96('0x0'));var util=require(_0xce96('0x1'));var logger=require(_0xce96('0x2'))(_0xce96('0x3'));var moment=require(_0xce96('0x4'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0xce96('0x5'));var rimraf=require(_0xce96('0x6'));var config=require(_0xce96('0x7'));var attributes=require(_0xce96('0x8'));module[_0xce96('0x9')]=function(_0x3fec57,_0xffd74e){return _0x3fec57['define'](_0xce96('0xa'),attributes,{'tableName':_0xce96('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2168=['lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','defaults','localhost','redis','register','then','Team,\x20%s,\x20%s','stringify','error','code','message','request\x20sent','result','catch'];(function(_0x2cbc9a,_0x249ff2){var _0x9ee0c8=function(_0x292f56){while(--_0x292f56){_0x2cbc9a['push'](_0x2cbc9a['shift']());}};_0x9ee0c8(++_0x249ff2);}(_0x2168,0x12c));var _0x8216=function(_0x59ea93,_0x104bed){_0x59ea93=_0x59ea93-0x0;var _0xc68901=_0x2168[_0x59ea93];return _0xc68901;};'use strict';var _=require(_0x8216('0x0'));var util=require(_0x8216('0x1'));var moment=require(_0x8216('0x2'));var BPromise=require(_0x8216('0x3'));var rs=require(_0x8216('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x8216('0x5'))['db'];var utils=require(_0x8216('0x6'));var logger=require(_0x8216('0x7'))(_0x8216('0x8'));var config=require(_0x8216('0x9'));var jayson=require('jayson/promise');var client=jayson[_0x8216('0xa')][_0x8216('0xb')]({'port':0x232a});config['redis']=_[_0x8216('0xc')](config['redis'],{'host':_0x8216('0xd'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x8216('0xe')]));require('./team.socket')[_0x8216('0xf')](socket);function respondWithRpcPromise(_0x34d5e1,_0x54edcc,_0x372117){return new BPromise(function(_0x4499e9,_0x5dc28e){return client['request'](_0x34d5e1,_0x372117)[_0x8216('0x10')](function(_0x36aaf1){logger['info'](_0x8216('0x11'),_0x54edcc,'request\x20sent');logger['debug']('Team,\x20%s,\x20%s,\x20%s',_0x54edcc,'request\x20sent',JSON[_0x8216('0x12')](_0x36aaf1));if(_0x36aaf1[_0x8216('0x13')]){if(_0x36aaf1[_0x8216('0x13')][_0x8216('0x14')]===0x1f4){logger[_0x8216('0x13')](_0x8216('0x11'),_0x54edcc,_0x36aaf1[_0x8216('0x13')][_0x8216('0x15')]);return _0x5dc28e(_0x36aaf1[_0x8216('0x13')]['message']);}logger[_0x8216('0x13')](_0x8216('0x11'),_0x54edcc,_0x36aaf1['error'][_0x8216('0x15')]);return _0x4499e9(_0x36aaf1[_0x8216('0x13')][_0x8216('0x15')]);}else{logger['info']('Team,\x20%s,\x20%s',_0x54edcc,_0x8216('0x16'));_0x4499e9(_0x36aaf1[_0x8216('0x17')]['message']);}})[_0x8216('0x18')](function(_0x52821e){logger[_0x8216('0x13')](_0x8216('0x11'),_0x54edcc,_0x52821e);_0x5dc28e(_0x52821e);});});}
\ No newline at end of file
+var _0x5870=['moment','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','http','redis','defaults','localhost','register','then','info','Team,\x20%s,\x20%s','request\x20sent','debug','Team,\x20%s,\x20%s,\x20%s','error','message','result','catch','lodash','util'];(function(_0x246d05,_0x2af448){var _0x1218e4=function(_0x530ec3){while(--_0x530ec3){_0x246d05['push'](_0x246d05['shift']());}};_0x1218e4(++_0x2af448);}(_0x5870,0x88));var _0x0587=function(_0x1beef3,_0x57c4b8){_0x1beef3=_0x1beef3-0x0;var _0x5af964=_0x5870[_0x1beef3];return _0x5af964;};'use strict';var _=require(_0x0587('0x0'));var util=require(_0x0587('0x1'));var moment=require(_0x0587('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x0587('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x0587('0x4'));var logger=require(_0x0587('0x5'))(_0x0587('0x6'));var config=require(_0x0587('0x7'));var jayson=require('jayson/promise');var client=jayson['client'][_0x0587('0x8')]({'port':0x232a});config[_0x0587('0x9')]=_[_0x0587('0xa')](config[_0x0587('0x9')],{'host':_0x0587('0xb'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x0587('0x9')]));require('./team.socket')[_0x0587('0xc')](socket);function respondWithRpcPromise(_0x10d9f4,_0x10b397,_0x718d0){return new BPromise(function(_0x13122f,_0x354a0e){return client['request'](_0x10d9f4,_0x718d0)[_0x0587('0xd')](function(_0x3563f0){logger[_0x0587('0xe')](_0x0587('0xf'),_0x10b397,_0x0587('0x10'));logger[_0x0587('0x11')](_0x0587('0x12'),_0x10b397,'request\x20sent',JSON['stringify'](_0x3563f0));if(_0x3563f0[_0x0587('0x13')]){if(_0x3563f0[_0x0587('0x13')]['code']===0x1f4){logger[_0x0587('0x13')](_0x0587('0xf'),_0x10b397,_0x3563f0[_0x0587('0x13')]['message']);return _0x354a0e(_0x3563f0[_0x0587('0x13')]['message']);}logger[_0x0587('0x13')]('Team,\x20%s,\x20%s',_0x10b397,_0x3563f0[_0x0587('0x13')][_0x0587('0x14')]);return _0x13122f(_0x3563f0[_0x0587('0x13')][_0x0587('0x14')]);}else{logger[_0x0587('0xe')](_0x0587('0xf'),_0x10b397,_0x0587('0x10'));_0x13122f(_0x3563f0[_0x0587('0x15')]['message']);}})[_0x0587('0x16')](function(_0x11909e){logger['error'](_0x0587('0xf'),_0x10b397,_0x11909e);_0x354a0e(_0x11909e);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbdd4=['update','emit','removeListener','register','remove'];(function(_0x4d57c0,_0x5b41a0){var _0x2543a1=function(_0x52a15a){while(--_0x52a15a){_0x4d57c0['push'](_0x4d57c0['shift']());}};_0x2543a1(++_0x5b41a0);}(_0xbdd4,0x14e));var _0x4bdd=function(_0x4d07cc,_0x587613){_0x4d07cc=_0x4d07cc-0x0;var _0x42de3b=_0xbdd4[_0x4d07cc];return _0x42de3b;};'use strict';var TeamEvents=require('./team.events');var events=['save',_0x4bdd('0x0'),_0x4bdd('0x1')];function createListener(_0x4eb082,_0x4c482d){return function(_0x1f2395){_0x4c482d[_0x4bdd('0x2')](_0x4eb082,_0x1f2395);};}function removeListener(_0x53f8f9,_0x10dc26){return function(){TeamEvents[_0x4bdd('0x3')](_0x53f8f9,_0x10dc26);};}exports[_0x4bdd('0x4')]=function(_0x494b9d){for(var _0x19a31a=0x0,_0x5096be=events['length'];_0x19a31a<_0x5096be;_0x19a31a++){var _0x49f6c1=events[_0x19a31a];var _0xa7889f=createListener('team:'+_0x49f6c1,_0x494b9d);TeamEvents['on'](_0x49f6c1,_0xa7889f);}};
\ No newline at end of file
+var _0x5cba=['save','remove','removeListener','register','length','team:','./team.events'];(function(_0x4737fe,_0x4913bf){var _0x3a7b94=function(_0x497571){while(--_0x497571){_0x4737fe['push'](_0x4737fe['shift']());}};_0x3a7b94(++_0x4913bf);}(_0x5cba,0x1cd));var _0xa5cb=function(_0x46698a,_0x8de1e4){_0x46698a=_0x46698a-0x0;var _0x356db0=_0x5cba[_0x46698a];return _0x356db0;};'use strict';var TeamEvents=require(_0xa5cb('0x0'));var events=[_0xa5cb('0x1'),_0xa5cb('0x2'),'update'];function createListener(_0x401b35,_0x10afd7){return function(_0x2170fb){_0x10afd7['emit'](_0x401b35,_0x2170fb);};}function removeListener(_0x56d0a7,_0xda24c){return function(){TeamEvents[_0xa5cb('0x3')](_0x56d0a7,_0xda24c);};}exports[_0xa5cb('0x4')]=function(_0x50d450){for(var _0x162446=0x0,_0xce273d=events[_0xa5cb('0x5')];_0x162446<_0xce273d;_0x162446++){var _0x359c49=events[_0x162446];var _0x73b227=createListener(_0xa5cb('0x6')+_0x359c49,_0x50d450);TeamEvents['on'](_0x359c49,_0x73b227);}};
\ No newline at end of file
+++ /dev/null
-// *************************************************************************
-// * *
-// * xCALLY Motion - The Omnichannel Contact Center *
-// * Copyright (c) Xenialab s.r.l. All Rights Reserved *
-// * *
-// *************************************************************************
-// * *
-// * Email: info@xcally.com *
-// * Website: https://www.xcally.com *
-// * *
-// *************************************************************************
-// * *
-// * The SOFTWARE PRODUCT is protected by copyright laws and international *
-// * copyright treaties, as well as other intellectual property laws and *
-// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
-// * *
-// *************************************************************************
-var _0xafa8=['INTEGER','exports'];(function(_0x88e543,_0x1b273d){var _0x522dea=function(_0x424db6){while(--_0x424db6){_0x88e543['push'](_0x88e543['shift']());}};_0x522dea(++_0x1b273d);}(_0xafa8,0x135));var _0x8afa=function(_0x54d4fe,_0x55e869){_0x54d4fe=_0x54d4fe-0x0;var _0x1ab5bb=_0xafa8[_0x54d4fe];return _0x1ab5bb;};'use strict';var Sequelize=require('sequelize');module[_0x8afa('0x0')]={'TeamId':{'type':Sequelize[_0x8afa('0x1')]},'VoicePrefixId':{'type':Sequelize[_0x8afa('0x1')]}};
\ No newline at end of file
+++ /dev/null
-// *************************************************************************
-// * *
-// * xCALLY Motion - The Omnichannel Contact Center *
-// * Copyright (c) Xenialab s.r.l. All Rights Reserved *
-// * *
-// *************************************************************************
-// * *
-// * Email: info@xcally.com *
-// * Website: https://www.xcally.com *
-// * *
-// *************************************************************************
-// * *
-// * The SOFTWARE PRODUCT is protected by copyright laws and international *
-// * copyright treaties, as well as other intellectual property laws and *
-// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
-// * *
-// *************************************************************************
-var _0x0901=['moment','bluebird','rimraf','../../config/environment','./teamVoicePrefix.attributes','exports','TeamVoicePrefix','team_has_voice_prefixes','lodash','util','../../config/logger','api'];(function(_0x30defd,_0x357daf){var _0x243c5d=function(_0x2eaf3b){while(--_0x2eaf3b){_0x30defd['push'](_0x30defd['shift']());}};_0x243c5d(++_0x357daf);}(_0x0901,0x134));var _0x1090=function(_0x126de4,_0x1048d3){_0x126de4=_0x126de4-0x0;var _0x5711f1=_0x0901[_0x126de4];return _0x5711f1;};'use strict';var _=require(_0x1090('0x0'));var util=require(_0x1090('0x1'));var logger=require(_0x1090('0x2'))(_0x1090('0x3'));var moment=require(_0x1090('0x4'));var BPromise=require(_0x1090('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0x1090('0x6'));var config=require(_0x1090('0x7'));var attributes=require(_0x1090('0x8'));module[_0x1090('0x9')]=function(_0x9a1121,_0x395921){return _0x9a1121['define'](_0x1090('0xa'),attributes,{'tableName':_0x1090('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe706=['../../components/interaction/service','../../config/environment','exports','multer','util','path','express','Router','fs-extra','../../components/auth/service'];(function(_0x56e245,_0x39959c){var _0x501579=function(_0x5e359e){while(--_0x5e359e){_0x56e245['push'](_0x56e245['shift']());}};_0x501579(++_0x39959c);}(_0xe706,0xa3));var _0x6e70=function(_0x5474b4,_0x5027aa){_0x5474b4=_0x5474b4-0x0;var _0x33a0b5=_0xe706[_0x5474b4];return _0x33a0b5;};'use strict';var multer=require(_0x6e70('0x0'));var util=require(_0x6e70('0x1'));var path=require(_0x6e70('0x2'));var timeout=require('connect-timeout');var express=require(_0x6e70('0x3'));var router=express[_0x6e70('0x4')]();var fs_extra=require(_0x6e70('0x5'));var auth=require(_0x6e70('0x6'));var interaction=require(_0x6e70('0x7'));var config=require(_0x6e70('0x8'));module[_0x6e70('0x9')]=router;
\ No newline at end of file
+var _0xcb91=['express','Router','../../components/auth/service','../../components/interaction/service','exports','path','connect-timeout'];(function(_0x282ee0,_0x39e9d5){var _0xd53a6d=function(_0x20d718){while(--_0x20d718){_0x282ee0['push'](_0x282ee0['shift']());}};_0xd53a6d(++_0x39e9d5);}(_0xcb91,0x1a9));var _0x1cb9=function(_0x4849f6,_0x104836){_0x4849f6=_0x4849f6-0x0;var _0x1a3dcd=_0xcb91[_0x4849f6];return _0x1a3dcd;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x1cb9('0x0'));var timeout=require(_0x1cb9('0x1'));var express=require(_0x1cb9('0x2'));var router=express[_0x1cb9('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x1cb9('0x4'));var interaction=require(_0x1cb9('0x5'));var config=require('../../config/environment');module[_0x1cb9('0x6')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3286=['sequelize','INTEGER'];(function(_0x313c96,_0x3cee6e){var _0x522f53=function(_0x8961e){while(--_0x8961e){_0x313c96['push'](_0x313c96['shift']());}};_0x522f53(++_0x3cee6e);}(_0x3286,0x1da));var _0x6328=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x3286[_0x3dd15e];return _0x231fd0;};'use strict';var Sequelize=require(_0x6328('0x0'));module['exports']={'penalty':{'type':Sequelize[_0x6328('0x1')],'defaultValue':0x0}};
\ No newline at end of file
+var _0xe2c2=['exports','INTEGER','sequelize'];(function(_0x5a90ca,_0x425ba1){var _0x5e8677=function(_0x5cc9ba){while(--_0x5cc9ba){_0x5a90ca['push'](_0x5a90ca['shift']());}};_0x5e8677(++_0x425ba1);}(_0xe2c2,0xa1));var _0x2e2c=function(_0x1ebe47,_0x1f6468){_0x1ebe47=_0x1ebe47-0x0;var _0x110c96=_0xe2c2[_0x1ebe47];return _0x110c96;};'use strict';var Sequelize=require(_0x2e2c('0x0'));module[_0x2e2c('0x1')]={'penalty':{'type':Sequelize[_0x2e2c('0x2')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc79f=['lodash','util','../../config/logger','api','moment','request-promise','path','rimraf','../../config/environment','./teamVoiceQueue.attributes','exports','define','team_has_voice_queues'];(function(_0x19950b,_0x53d0d7){var _0x3c6b41=function(_0x3924ad){while(--_0x3924ad){_0x19950b['push'](_0x19950b['shift']());}};_0x3c6b41(++_0x53d0d7);}(_0xc79f,0x82));var _0xfc79=function(_0x3e7cdb,_0x4119ea){_0x3e7cdb=_0x3e7cdb-0x0;var _0x24a0d3=_0xc79f[_0x3e7cdb];return _0x24a0d3;};'use strict';var _=require(_0xfc79('0x0'));var util=require(_0xfc79('0x1'));var logger=require(_0xfc79('0x2'))(_0xfc79('0x3'));var moment=require(_0xfc79('0x4'));var BPromise=require('bluebird');var rp=require(_0xfc79('0x5'));var fs=require('fs');var path=require(_0xfc79('0x6'));var rimraf=require(_0xfc79('0x7'));var config=require(_0xfc79('0x8'));var attributes=require(_0xfc79('0x9'));module[_0xfc79('0xa')]=function(_0x660769,_0x1ba054){return _0x660769[_0xfc79('0xb')]('TeamVoiceQueue',attributes,{'tableName':_0xfc79('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xf3cc=['../../config/environment','./teamVoiceQueue.attributes','define','TeamVoiceQueue','team_has_voice_queues','lodash','util','../../config/logger','api','bluebird','request-promise','path'];(function(_0x39e8aa,_0x4574ea){var _0x455808=function(_0x1fbbe7){while(--_0x1fbbe7){_0x39e8aa['push'](_0x39e8aa['shift']());}};_0x455808(++_0x4574ea);}(_0xf3cc,0x10d));var _0xcf3c=function(_0x54a57e,_0x3a8ff9){_0x54a57e=_0x54a57e-0x0;var _0x56dc7f=_0xf3cc[_0x54a57e];return _0x56dc7f;};'use strict';var _=require(_0xcf3c('0x0'));var util=require(_0xcf3c('0x1'));var logger=require(_0xcf3c('0x2'))(_0xcf3c('0x3'));var moment=require('moment');var BPromise=require(_0xcf3c('0x4'));var rp=require(_0xcf3c('0x5'));var fs=require('fs');var path=require(_0xcf3c('0x6'));var rimraf=require('rimraf');var config=require(_0xcf3c('0x7'));var attributes=require(_0xcf3c('0x8'));module['exports']=function(_0x41f804,_0x2b5cae){return _0x41f804[_0xcf3c('0x9')](_0xcf3c('0xa'),attributes,{'tableName':_0xcf3c('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x14ac=['http','request','TeamVoiceQueue,\x20%s,\x20%s','debug','TeamVoiceQueue,\x20%s,\x20%s,\x20%s','error','code','message','result','util','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client'];(function(_0x590ef3,_0x3b2dd2){var _0x4502be=function(_0x2c8011){while(--_0x2c8011){_0x590ef3['push'](_0x590ef3['shift']());}};_0x4502be(++_0x3b2dd2);}(_0x14ac,0x13b));var _0xc14a=function(_0xa3400,_0x3a980a){_0xa3400=_0xa3400-0x0;var _0x33dba2=_0x14ac[_0xa3400];return _0x33dba2;};'use strict';var _=require('lodash');var util=require(_0xc14a('0x0'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0xc14a('0x1'));var fs=require('fs');var Redis=require(_0xc14a('0x2'));var db=require(_0xc14a('0x3'))['db'];var utils=require(_0xc14a('0x4'));var logger=require(_0xc14a('0x5'))(_0xc14a('0x6'));var config=require(_0xc14a('0x7'));var jayson=require('jayson/promise');var client=jayson[_0xc14a('0x8')][_0xc14a('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x17a7d5,_0x42d5cf,_0x16ad35){return new BPromise(function(_0x357cd7,_0x4b164e){return client[_0xc14a('0xa')](_0x17a7d5,_0x16ad35)['then'](function(_0x5c8738){logger['info'](_0xc14a('0xb'),_0x42d5cf,'request\x20sent');logger[_0xc14a('0xc')](_0xc14a('0xd'),_0x42d5cf,'request\x20sent',JSON['stringify'](_0x5c8738));if(_0x5c8738[_0xc14a('0xe')]){if(_0x5c8738[_0xc14a('0xe')][_0xc14a('0xf')]===0x1f4){logger['error'](_0xc14a('0xb'),_0x42d5cf,_0x5c8738[_0xc14a('0xe')][_0xc14a('0x10')]);return _0x4b164e(_0x5c8738[_0xc14a('0xe')][_0xc14a('0x10')]);}logger['error'](_0xc14a('0xb'),_0x42d5cf,_0x5c8738['error'][_0xc14a('0x10')]);return _0x357cd7(_0x5c8738[_0xc14a('0xe')]['message']);}else{logger['info'](_0xc14a('0xb'),_0x42d5cf,'request\x20sent');_0x357cd7(_0x5c8738[_0xc14a('0x11')][_0xc14a('0x10')]);}})['catch'](function(_0x55b0d6){logger[_0xc14a('0xe')](_0xc14a('0xb'),_0x42d5cf,_0x55b0d6);_0x4b164e(_0x55b0d6);});});}
\ No newline at end of file
+var _0x97da=['../../config/utils','../../config/logger','rpc','http','request','info','request\x20sent','debug','TeamVoiceQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','TeamVoiceQueue,\x20%s,\x20%s','message','result','catch','lodash','moment','bluebird','ioredis'];(function(_0x1d47c3,_0x856818){var _0x220130=function(_0x1dddd6){while(--_0x1dddd6){_0x1d47c3['push'](_0x1d47c3['shift']());}};_0x220130(++_0x856818);}(_0x97da,0x164));var _0xa97d=function(_0x32e658,_0x3598c1){_0x32e658=_0x32e658-0x0;var _0x3d671a=_0x97da[_0x32e658];return _0x3d671a;};'use strict';var _=require(_0xa97d('0x0'));var util=require('util');var moment=require(_0xa97d('0x1'));var BPromise=require(_0xa97d('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xa97d('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0xa97d('0x4'));var logger=require(_0xa97d('0x5'))(_0xa97d('0x6'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson['client'][_0xa97d('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x3cff27,_0x34446c,_0x3ecd45){return new BPromise(function(_0x36a463,_0x352267){return client[_0xa97d('0x8')](_0x3cff27,_0x3ecd45)['then'](function(_0x178e3b){logger[_0xa97d('0x9')]('TeamVoiceQueue,\x20%s,\x20%s',_0x34446c,_0xa97d('0xa'));logger[_0xa97d('0xb')](_0xa97d('0xc'),_0x34446c,_0xa97d('0xa'),JSON[_0xa97d('0xd')](_0x178e3b));if(_0x178e3b['error']){if(_0x178e3b[_0xa97d('0xe')][_0xa97d('0xf')]===0x1f4){logger[_0xa97d('0xe')](_0xa97d('0x10'),_0x34446c,_0x178e3b['error'][_0xa97d('0x11')]);return _0x352267(_0x178e3b[_0xa97d('0xe')]['message']);}logger['error'](_0xa97d('0x10'),_0x34446c,_0x178e3b['error'][_0xa97d('0x11')]);return _0x36a463(_0x178e3b[_0xa97d('0xe')][_0xa97d('0x11')]);}else{logger[_0xa97d('0x9')](_0xa97d('0x10'),_0x34446c,_0xa97d('0xa'));_0x36a463(_0x178e3b[_0xa97d('0x12')][_0xa97d('0x11')]);}})[_0xa97d('0x13')](function(_0x4f73f3){logger[_0xa97d('0xe')](_0xa97d('0x10'),_0x34446c,_0x4f73f3);_0x352267(_0x4f73f3);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x404d=['Router','fs-extra','../../components/auth/service','../../components/interaction/service','./template.controller','get','index','show','post','put','/:id','isAuthenticated','update','destroy','multer','util','path','connect-timeout','express'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x404d,0x1e9));var _0xd404=function(_0x11dcef,_0x25a423){_0x11dcef=_0x11dcef-0x0;var _0x165993=_0x404d[_0x11dcef];return _0x165993;};'use strict';var multer=require(_0xd404('0x0'));var util=require(_0xd404('0x1'));var path=require(_0xd404('0x2'));var timeout=require(_0xd404('0x3'));var express=require(_0xd404('0x4'));var router=express[_0xd404('0x5')]();var fs_extra=require(_0xd404('0x6'));var auth=require(_0xd404('0x7'));var interaction=require(_0xd404('0x8'));var config=require('../../config/environment');var controller=require(_0xd404('0x9'));router[_0xd404('0xa')]('/',auth['isAuthenticated'](),controller[_0xd404('0xb')]);router[_0xd404('0xa')]('/:id',auth['isAuthenticated'](),controller[_0xd404('0xc')]);router[_0xd404('0xd')]('/',auth['isAuthenticated'](),controller['create']);router[_0xd404('0xe')](_0xd404('0xf'),auth[_0xd404('0x10')](),controller[_0xd404('0x11')]);router['delete']('/:id',auth[_0xd404('0x10')](),controller[_0xd404('0x12')]);module['exports']=router;
\ No newline at end of file
+var _0xdf94=['create','put','update','delete','exports','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./template.controller','get','isAuthenticated','index','/:id','show','post'];(function(_0x2641f9,_0x26715f){var _0x585741=function(_0x2d1462){while(--_0x2d1462){_0x2641f9['push'](_0x2641f9['shift']());}};_0x585741(++_0x26715f);}(_0xdf94,0xad));var _0x4df9=function(_0x4fa425,_0x1ab234){_0x4fa425=_0x4fa425-0x0;var _0x27a72f=_0xdf94[_0x4fa425];return _0x27a72f;};'use strict';var multer=require('multer');var util=require(_0x4df9('0x0'));var path=require(_0x4df9('0x1'));var timeout=require(_0x4df9('0x2'));var express=require(_0x4df9('0x3'));var router=express[_0x4df9('0x4')]();var fs_extra=require(_0x4df9('0x5'));var auth=require(_0x4df9('0x6'));var interaction=require(_0x4df9('0x7'));var config=require(_0x4df9('0x8'));var controller=require(_0x4df9('0x9'));router[_0x4df9('0xa')]('/',auth[_0x4df9('0xb')](),controller[_0x4df9('0xc')]);router[_0x4df9('0xa')](_0x4df9('0xd'),auth[_0x4df9('0xb')](),controller[_0x4df9('0xe')]);router[_0x4df9('0xf')]('/',auth['isAuthenticated'](),controller[_0x4df9('0x10')]);router[_0x4df9('0x11')](_0x4df9('0xd'),auth[_0x4df9('0xb')](),controller[_0x4df9('0x12')]);router[_0x4df9('0x13')](_0x4df9('0xd'),auth['isAuthenticated'](),controller['destroy']);module[_0x4df9('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x47c4=['TEXT','exports','STRING'];(function(_0x4b6f9c,_0x50f561){var _0x41264e=function(_0x1062db){while(--_0x1062db){_0x4b6f9c['push'](_0x4b6f9c['shift']());}};_0x41264e(++_0x50f561);}(_0x47c4,0x1e1));var _0x447c=function(_0x4e26b8,_0x1a3c12){_0x4e26b8=_0x4e26b8-0x0;var _0x10a6f0=_0x47c4[_0x4e26b8];return _0x10a6f0;};'use strict';var Sequelize=require('sequelize');module[_0x447c('0x0')]={'name':{'type':Sequelize[_0x447c('0x1')]},'description':{'type':Sequelize[_0x447c('0x1')]},'html':{'type':Sequelize[_0x447c('0x2')]}};
\ No newline at end of file
+var _0xcc8f=['exports','STRING','TEXT','sequelize'];(function(_0xe3198e,_0x48b02a){var _0x36cb1c=function(_0x21ed07){while(--_0x21ed07){_0xe3198e['push'](_0xe3198e['shift']());}};_0x36cb1c(++_0x48b02a);}(_0xcc8f,0x1a3));var _0xfcc8=function(_0x4504e0,_0x1f0283){_0x4504e0=_0x4504e0-0x0;var _0x4b4676=_0xcc8f[_0x4504e0];return _0x4b4676;};'use strict';var Sequelize=require(_0xfcc8('0x0'));module[_0xfcc8('0x1')]={'name':{'type':Sequelize[_0xfcc8('0x2')]},'description':{'type':Sequelize[_0xfcc8('0x2')]},'html':{'type':Sequelize[_0xfcc8('0x3')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xebea=['end','json','undefined','limit','count','offset','set','Content-Range','reject','save','update','then','get','Templates','UserProfileResource','error','stack','name','index','map','Template','rawAttributes','fieldName','type','model','query','keys','filters','attributes','intersection','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','options','include','findAll','rows','catch','show','params','length','includeAll','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','find','destroy','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','squel','crypto','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status'];(function(_0x42167f,_0x36c277){var _0x20f119=function(_0x1f79f3){while(--_0x1f79f3){_0x42167f['push'](_0x42167f['shift']());}};_0x20f119(++_0x36c277);}(_0xebea,0xe4));var _0xaebe=function(_0x53030b,_0x43f3da){_0x53030b=_0x53030b-0x0;var _0x2bee3d=_0xebea[_0x53030b];return _0x2bee3d;};'use strict';var emlformat=require(_0xaebe('0x0'));var rimraf=require(_0xaebe('0x1'));var zipdir=require(_0xaebe('0x2'));var jsonpatch=require(_0xaebe('0x3'));var rp=require(_0xaebe('0x4'));var moment=require(_0xaebe('0x5'));var BPromise=require(_0xaebe('0x6'));var Mustache=require(_0xaebe('0x7'));var util=require('util');var path=require(_0xaebe('0x8'));var sox=require(_0xaebe('0x9'));var csv=require(_0xaebe('0xa'));var ejs=require(_0xaebe('0xb'));var fs=require('fs');var fs_extra=require(_0xaebe('0xc'));var _=require('lodash');var squel=require(_0xaebe('0xd'));var crypto=require(_0xaebe('0xe'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xaebe('0xa'));var querystring=require(_0xaebe('0xf'));var Papa=require(_0xaebe('0x10'));var Redis=require(_0xaebe('0x11'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0xaebe('0x12'));var hardwareService=require(_0xaebe('0x13'));var logger=require(_0xaebe('0x14'))(_0xaebe('0x15'));var utils=require('../../config/utils');var config=require(_0xaebe('0x16'));var licenseUtil=require(_0xaebe('0x17'));var db=require(_0xaebe('0x18'))['db'];function respondWithStatusCode(_0xd9532e,_0x356652){_0x356652=_0x356652||0xcc;return function(_0x164c91){if(_0x164c91){return _0xd9532e[_0xaebe('0x19')](_0x356652);}return _0xd9532e[_0xaebe('0x1a')](_0x356652)[_0xaebe('0x1b')]();};}function respondWithResult(_0x1250bd,_0x37424b){_0x37424b=_0x37424b||0xc8;return function(_0x5830db){if(_0x5830db){return _0x1250bd[_0xaebe('0x1a')](_0x37424b)[_0xaebe('0x1c')](_0x5830db);}};}function respondWithFilteredResult(_0xd2e1b9,_0x59f08f){return function(_0x1ed90b){if(_0x1ed90b){var _0x4cff79=typeof _0x59f08f['offset']===_0xaebe('0x1d')&&typeof _0x59f08f[_0xaebe('0x1e')]===_0xaebe('0x1d');var _0x3737ea=_0x1ed90b[_0xaebe('0x1f')];var _0x52de68=_0x4cff79?0x0:_0x59f08f[_0xaebe('0x20')];var _0x2f812f=_0x4cff79?_0x1ed90b['count']:_0x59f08f['offset']+_0x59f08f[_0xaebe('0x1e')];var _0x330287;if(_0x2f812f>=_0x3737ea){_0x2f812f=_0x3737ea;_0x330287=0xc8;}else{_0x330287=0xce;}_0xd2e1b9[_0xaebe('0x1a')](_0x330287);return _0xd2e1b9[_0xaebe('0x21')](_0xaebe('0x22'),_0x52de68+'-'+_0x2f812f+'/'+_0x3737ea)[_0xaebe('0x1c')](_0x1ed90b);}return null;};}function patchUpdates(_0x1b2072){return function(_0x2c4bba){try{jsonpatch['apply'](_0x2c4bba,_0x1b2072,!![]);}catch(_0x4bf909){return BPromise[_0xaebe('0x23')](_0x4bf909);}return _0x2c4bba[_0xaebe('0x24')]();};}function saveUpdates(_0x42bb91,_0x3050a1){return function(_0xf2123e){if(_0xf2123e){return _0xf2123e[_0xaebe('0x25')](_0x42bb91)[_0xaebe('0x26')](function(_0x29d6bb){return _0x29d6bb;});}return null;};}function removeEntity(_0x519f32,_0x150643){return function(_0x5dd93d){if(_0x5dd93d){return _0x5dd93d['destroy']()['then'](function(){var _0x2a8607=_0x5dd93d[_0xaebe('0x27')]({'plain':!![]});var _0x24ac74=_0xaebe('0x28');return db[_0xaebe('0x29')]['destroy']({'where':{'type':_0x24ac74,'resourceId':_0x2a8607['id']}})[_0xaebe('0x26')](function(){return _0x5dd93d;});})['then'](function(){_0x519f32[_0xaebe('0x1a')](0xcc)[_0xaebe('0x1b')]();});}};}function handleEntityNotFound(_0xfbbeb8,_0x2c6b20){return function(_0x68fba3){if(!_0x68fba3){_0xfbbeb8[_0xaebe('0x19')](0x194);}return _0x68fba3;};}function handleError(_0x22ff05,_0x619a08){_0x619a08=_0x619a08||0x1f4;return function(_0x15f823){logger[_0xaebe('0x2a')](_0x15f823[_0xaebe('0x2b')]);if(_0x15f823[_0xaebe('0x2c')]){delete _0x15f823['name'];}_0x22ff05['status'](_0x619a08)['send'](_0x15f823);};}exports[_0xaebe('0x2d')]=function(_0x51f328,_0x1b5339){var _0x6d152d={},_0x2c6b78={},_0x4ccc6c={'count':0x0,'rows':[]};var _0x23f75a=_[_0xaebe('0x2e')](db[_0xaebe('0x2f')][_0xaebe('0x30')],function(_0x132dfb){return{'name':_0x132dfb[_0xaebe('0x31')],'type':_0x132dfb[_0xaebe('0x32')]['key']};});_0x2c6b78[_0xaebe('0x33')]=_['map'](_0x23f75a,_0xaebe('0x2c'));_0x2c6b78[_0xaebe('0x34')]=_[_0xaebe('0x35')](_0x51f328[_0xaebe('0x34')]);_0x2c6b78[_0xaebe('0x36')]=_['intersection'](_0x2c6b78[_0xaebe('0x33')],_0x2c6b78[_0xaebe('0x34')]);_0x6d152d[_0xaebe('0x37')]=_[_0xaebe('0x38')](_0x2c6b78['model'],qs['fields'](_0x51f328[_0xaebe('0x34')][_0xaebe('0x39')]));_0x6d152d['attributes']=_0x6d152d[_0xaebe('0x37')]['length']?_0x6d152d[_0xaebe('0x37')]:_0x2c6b78[_0xaebe('0x33')];if(!_0x51f328[_0xaebe('0x34')][_0xaebe('0x3a')](_0xaebe('0x3b'))){_0x6d152d[_0xaebe('0x1e')]=qs['limit'](_0x51f328['query'][_0xaebe('0x1e')]);_0x6d152d[_0xaebe('0x20')]=qs['offset'](_0x51f328[_0xaebe('0x34')][_0xaebe('0x20')]);}_0x6d152d[_0xaebe('0x3c')]=qs[_0xaebe('0x3d')](_0x51f328[_0xaebe('0x34')][_0xaebe('0x3d')]);_0x6d152d[_0xaebe('0x3e')]=qs[_0xaebe('0x36')](_[_0xaebe('0x3f')](_0x51f328['query'],_0x2c6b78[_0xaebe('0x36')]),_0x23f75a);if(_0x51f328[_0xaebe('0x34')][_0xaebe('0x40')]){_0x6d152d[_0xaebe('0x3e')]=_[_0xaebe('0x41')](_0x6d152d[_0xaebe('0x3e')],{'$or':_[_0xaebe('0x2e')](_0x23f75a,function(_0x5f0ea8){if(_0x5f0ea8['type']!=='VIRTUAL'){var _0x33e2b1={};_0x33e2b1[_0x5f0ea8[_0xaebe('0x2c')]]={'$like':'%'+_0x51f328[_0xaebe('0x34')][_0xaebe('0x40')]+'%'};return _0x33e2b1;}})});}_0x6d152d=_[_0xaebe('0x41')]({},_0x6d152d,_0x51f328[_0xaebe('0x42')]);var _0x237eb3={'where':_0x6d152d[_0xaebe('0x3e')]};return db['Template']['count'](_0x237eb3)[_0xaebe('0x26')](function(_0x476dec){_0x4ccc6c[_0xaebe('0x1f')]=_0x476dec;if(_0x51f328['query']['includeAll']){_0x6d152d[_0xaebe('0x43')]=[{'all':!![]}];}return db[_0xaebe('0x2f')][_0xaebe('0x44')](_0x6d152d);})[_0xaebe('0x26')](function(_0xd17cb3){_0x4ccc6c[_0xaebe('0x45')]=_0xd17cb3;return _0x4ccc6c;})[_0xaebe('0x26')](respondWithFilteredResult(_0x1b5339,_0x6d152d))[_0xaebe('0x46')](handleError(_0x1b5339,null));};exports[_0xaebe('0x47')]=function(_0x24f31f,_0x5f27cc){var _0x53de98={'raw':!![],'where':{'id':_0x24f31f[_0xaebe('0x48')]['id']}},_0x399a4a={};_0x399a4a[_0xaebe('0x33')]=_[_0xaebe('0x35')](db[_0xaebe('0x2f')]['rawAttributes']);_0x399a4a[_0xaebe('0x34')]=_[_0xaebe('0x35')](_0x24f31f[_0xaebe('0x34')]);_0x399a4a[_0xaebe('0x36')]=_[_0xaebe('0x38')](_0x399a4a['model'],_0x399a4a['query']);_0x53de98[_0xaebe('0x37')]=_['intersection'](_0x399a4a[_0xaebe('0x33')],qs['fields'](_0x24f31f[_0xaebe('0x34')]['fields']));_0x53de98[_0xaebe('0x37')]=_0x53de98['attributes'][_0xaebe('0x49')]?_0x53de98[_0xaebe('0x37')]:_0x399a4a[_0xaebe('0x33')];if(_0x24f31f[_0xaebe('0x34')][_0xaebe('0x4a')]){_0x53de98[_0xaebe('0x43')]=[{'all':!![]}];}_0x53de98=_[_0xaebe('0x41')]({},_0x53de98,_0x24f31f['options']);return db[_0xaebe('0x2f')]['find'](_0x53de98)['then'](handleEntityNotFound(_0x5f27cc,null))['then'](respondWithResult(_0x5f27cc,null))[_0xaebe('0x46')](handleError(_0x5f27cc,null));};exports[_0xaebe('0x4b')]=function(_0x8836fc,_0x58693a){return db[_0xaebe('0x2f')]['create'](_0x8836fc[_0xaebe('0x4c')],{})['then'](function(_0x521d31){var _0x52b330=_0x8836fc[_0xaebe('0x4d')]['get']({'plain':!![]});if(!_0x52b330)throw new Error(_0xaebe('0x4e'));if(_0x52b330['role']===_0xaebe('0x4d')){var _0x7c97fd=_0x521d31[_0xaebe('0x27')]({'plain':!![]});var _0x5666c0='Templates';return db[_0xaebe('0x4f')]['find']({'where':{'name':_0x5666c0,'userProfileId':_0x52b330[_0xaebe('0x50')]},'raw':!![]})[_0xaebe('0x26')](function(_0x4a6988){if(_0x4a6988&&_0x4a6988[_0xaebe('0x51')]===0x0){return db['UserProfileResource'][_0xaebe('0x4b')]({'name':_0x7c97fd[_0xaebe('0x2c')],'resourceId':_0x7c97fd['id'],'type':_0x4a6988[_0xaebe('0x2c')],'sectionId':_0x4a6988['id']},{})[_0xaebe('0x26')](function(){return _0x521d31;});}else{return _0x521d31;}})[_0xaebe('0x46')](function(_0x1aa632){logger[_0xaebe('0x2a')](_0xaebe('0x52'),_0x1aa632);throw _0x1aa632;});}return _0x521d31;})['then'](respondWithResult(_0x58693a,0xc9))[_0xaebe('0x46')](handleError(_0x58693a,null));};exports[_0xaebe('0x25')]=function(_0x33e5ea,_0x5e4e69){if(_0x33e5ea[_0xaebe('0x4c')]['id']){delete _0x33e5ea[_0xaebe('0x4c')]['id'];}return db[_0xaebe('0x2f')][_0xaebe('0x53')]({'where':{'id':_0x33e5ea[_0xaebe('0x48')]['id']}})[_0xaebe('0x26')](handleEntityNotFound(_0x5e4e69,null))[_0xaebe('0x26')](saveUpdates(_0x33e5ea['body'],null))['then'](respondWithResult(_0x5e4e69,null))['catch'](handleError(_0x5e4e69,null));};exports[_0xaebe('0x54')]=function(_0x4003cb,_0x405998){return db[_0xaebe('0x2f')][_0xaebe('0x53')]({'where':{'id':_0x4003cb[_0xaebe('0x48')]['id']}})[_0xaebe('0x26')](handleEntityNotFound(_0x405998,null))['then'](removeEntity(_0x405998,null))['catch'](handleError(_0x405998,null));};
\ No newline at end of file
+var _0xc1c2=['rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','offset','count','limit','set','Content-Range','json','reject','save','update','then','destroy','Templates','end','stack','name','send','Template','rawAttributes','fieldName','type','model','map','filters','intersection','query','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','options','findAll','rows','catch','show','params','keys','fields','includeAll','include','find','user','get','role','autoAssociation','UserProfileResource','create','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','eml-format'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xc1c2,0x14f));var _0x2c1c=function(_0x1cf974,_0x1a4a09){_0x1cf974=_0x1cf974-0x0;var _0x16f0d2=_0xc1c2[_0x1cf974];return _0x16f0d2;};'use strict';var emlformat=require(_0x2c1c('0x0'));var rimraf=require(_0x2c1c('0x1'));var zipdir=require(_0x2c1c('0x2'));var jsonpatch=require(_0x2c1c('0x3'));var rp=require(_0x2c1c('0x4'));var moment=require(_0x2c1c('0x5'));var BPromise=require(_0x2c1c('0x6'));var Mustache=require('mustache');var util=require(_0x2c1c('0x7'));var path=require(_0x2c1c('0x8'));var sox=require(_0x2c1c('0x9'));var csv=require(_0x2c1c('0xa'));var ejs=require(_0x2c1c('0xb'));var fs=require('fs');var fs_extra=require(_0x2c1c('0xc'));var _=require('lodash');var squel=require(_0x2c1c('0xd'));var crypto=require(_0x2c1c('0xe'));var jsforce=require(_0x2c1c('0xf'));var deskjs=require(_0x2c1c('0x10'));var toCsv=require(_0x2c1c('0xa'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x2c1c('0x11'));var authService=require(_0x2c1c('0x12'));var qs=require(_0x2c1c('0x13'));var as=require(_0x2c1c('0x14'));var hardwareService=require(_0x2c1c('0x15'));var logger=require('../../config/logger')(_0x2c1c('0x16'));var utils=require(_0x2c1c('0x17'));var config=require(_0x2c1c('0x18'));var licenseUtil=require(_0x2c1c('0x19'));var db=require(_0x2c1c('0x1a'))['db'];function respondWithStatusCode(_0x266f66,_0x2c205f){_0x2c205f=_0x2c205f||0xcc;return function(_0x1d6e60){if(_0x1d6e60){return _0x266f66[_0x2c1c('0x1b')](_0x2c205f);}return _0x266f66['status'](_0x2c205f)['end']();};}function respondWithResult(_0x59fb7c,_0xc63f36){_0xc63f36=_0xc63f36||0xc8;return function(_0x5b5242){if(_0x5b5242){return _0x59fb7c[_0x2c1c('0x1c')](_0xc63f36)['json'](_0x5b5242);}};}function respondWithFilteredResult(_0x38d12f,_0x24f239){return function(_0x2eaaf1){if(_0x2eaaf1){var _0x33f48b=typeof _0x24f239[_0x2c1c('0x1d')]==='undefined'&&typeof _0x24f239['limit']==='undefined';var _0x25c555=_0x2eaaf1[_0x2c1c('0x1e')];var _0x3173a8=_0x33f48b?0x0:_0x24f239[_0x2c1c('0x1d')];var _0xa1d535=_0x33f48b?_0x2eaaf1[_0x2c1c('0x1e')]:_0x24f239[_0x2c1c('0x1d')]+_0x24f239[_0x2c1c('0x1f')];var _0x5eb55a;if(_0xa1d535>=_0x25c555){_0xa1d535=_0x25c555;_0x5eb55a=0xc8;}else{_0x5eb55a=0xce;}_0x38d12f['status'](_0x5eb55a);return _0x38d12f[_0x2c1c('0x20')](_0x2c1c('0x21'),_0x3173a8+'-'+_0xa1d535+'/'+_0x25c555)[_0x2c1c('0x22')](_0x2eaaf1);}return null;};}function patchUpdates(_0x3dfd45){return function(_0x57c1d1){try{jsonpatch['apply'](_0x57c1d1,_0x3dfd45,!![]);}catch(_0xec648f){return BPromise[_0x2c1c('0x23')](_0xec648f);}return _0x57c1d1[_0x2c1c('0x24')]();};}function saveUpdates(_0x193d17,_0x550448){return function(_0x287497){if(_0x287497){return _0x287497[_0x2c1c('0x25')](_0x193d17)[_0x2c1c('0x26')](function(_0x1fdfa5){return _0x1fdfa5;});}return null;};}function removeEntity(_0x147012,_0x1a3547){return function(_0x2ded89){if(_0x2ded89){return _0x2ded89[_0x2c1c('0x27')]()['then'](function(){var _0x2a7dd2=_0x2ded89['get']({'plain':!![]});var _0x2ec4a6=_0x2c1c('0x28');return db['UserProfileResource'][_0x2c1c('0x27')]({'where':{'type':_0x2ec4a6,'resourceId':_0x2a7dd2['id']}})[_0x2c1c('0x26')](function(){return _0x2ded89;});})['then'](function(){_0x147012['status'](0xcc)[_0x2c1c('0x29')]();});}};}function handleEntityNotFound(_0xa05d6c,_0x1a5118){return function(_0x35239b){if(!_0x35239b){_0xa05d6c[_0x2c1c('0x1b')](0x194);}return _0x35239b;};}function handleError(_0x1d6bb7,_0xe8fd10){_0xe8fd10=_0xe8fd10||0x1f4;return function(_0x32af27){logger['error'](_0x32af27[_0x2c1c('0x2a')]);if(_0x32af27[_0x2c1c('0x2b')]){delete _0x32af27[_0x2c1c('0x2b')];}_0x1d6bb7[_0x2c1c('0x1c')](_0xe8fd10)[_0x2c1c('0x2c')](_0x32af27);};}exports['index']=function(_0x221d75,_0x149be2){var _0x4aa417={},_0x451463={},_0x4000ec={'count':0x0,'rows':[]};var _0x41614c=_['map'](db[_0x2c1c('0x2d')][_0x2c1c('0x2e')],function(_0x34d223){return{'name':_0x34d223[_0x2c1c('0x2f')],'type':_0x34d223[_0x2c1c('0x30')]['key']};});_0x451463[_0x2c1c('0x31')]=_[_0x2c1c('0x32')](_0x41614c,_0x2c1c('0x2b'));_0x451463['query']=_['keys'](_0x221d75['query']);_0x451463[_0x2c1c('0x33')]=_[_0x2c1c('0x34')](_0x451463[_0x2c1c('0x31')],_0x451463[_0x2c1c('0x35')]);_0x4aa417[_0x2c1c('0x36')]=_[_0x2c1c('0x34')](_0x451463[_0x2c1c('0x31')],qs['fields'](_0x221d75[_0x2c1c('0x35')]['fields']));_0x4aa417[_0x2c1c('0x36')]=_0x4aa417['attributes'][_0x2c1c('0x37')]?_0x4aa417[_0x2c1c('0x36')]:_0x451463[_0x2c1c('0x31')];if(!_0x221d75[_0x2c1c('0x35')][_0x2c1c('0x38')](_0x2c1c('0x39'))){_0x4aa417[_0x2c1c('0x1f')]=qs['limit'](_0x221d75[_0x2c1c('0x35')][_0x2c1c('0x1f')]);_0x4aa417[_0x2c1c('0x1d')]=qs[_0x2c1c('0x1d')](_0x221d75[_0x2c1c('0x35')][_0x2c1c('0x1d')]);}_0x4aa417[_0x2c1c('0x3a')]=qs[_0x2c1c('0x3b')](_0x221d75[_0x2c1c('0x35')][_0x2c1c('0x3b')]);_0x4aa417[_0x2c1c('0x3c')]=qs[_0x2c1c('0x33')](_[_0x2c1c('0x3d')](_0x221d75['query'],_0x451463[_0x2c1c('0x33')]),_0x41614c);if(_0x221d75[_0x2c1c('0x35')][_0x2c1c('0x3e')]){_0x4aa417[_0x2c1c('0x3c')]=_[_0x2c1c('0x3f')](_0x4aa417[_0x2c1c('0x3c')],{'$or':_[_0x2c1c('0x32')](_0x41614c,function(_0x226d6f){if(_0x226d6f['type']!=='VIRTUAL'){var _0x50bb74={};_0x50bb74[_0x226d6f[_0x2c1c('0x2b')]]={'$like':'%'+_0x221d75[_0x2c1c('0x35')][_0x2c1c('0x3e')]+'%'};return _0x50bb74;}})});}_0x4aa417=_[_0x2c1c('0x3f')]({},_0x4aa417,_0x221d75[_0x2c1c('0x40')]);var _0x560ca9={'where':_0x4aa417[_0x2c1c('0x3c')]};return db[_0x2c1c('0x2d')][_0x2c1c('0x1e')](_0x560ca9)[_0x2c1c('0x26')](function(_0x4bec6c){_0x4000ec[_0x2c1c('0x1e')]=_0x4bec6c;if(_0x221d75[_0x2c1c('0x35')]['includeAll']){_0x4aa417['include']=[{'all':!![]}];}return db[_0x2c1c('0x2d')][_0x2c1c('0x41')](_0x4aa417);})['then'](function(_0x511059){_0x4000ec[_0x2c1c('0x42')]=_0x511059;return _0x4000ec;})[_0x2c1c('0x26')](respondWithFilteredResult(_0x149be2,_0x4aa417))[_0x2c1c('0x43')](handleError(_0x149be2,null));};exports[_0x2c1c('0x44')]=function(_0x3b53b9,_0x270cb6){var _0x392378={'raw':!![],'where':{'id':_0x3b53b9[_0x2c1c('0x45')]['id']}},_0x12a118={};_0x12a118[_0x2c1c('0x31')]=_[_0x2c1c('0x46')](db[_0x2c1c('0x2d')][_0x2c1c('0x2e')]);_0x12a118[_0x2c1c('0x35')]=_[_0x2c1c('0x46')](_0x3b53b9[_0x2c1c('0x35')]);_0x12a118[_0x2c1c('0x33')]=_[_0x2c1c('0x34')](_0x12a118['model'],_0x12a118[_0x2c1c('0x35')]);_0x392378[_0x2c1c('0x36')]=_['intersection'](_0x12a118['model'],qs[_0x2c1c('0x47')](_0x3b53b9[_0x2c1c('0x35')]['fields']));_0x392378[_0x2c1c('0x36')]=_0x392378['attributes'][_0x2c1c('0x37')]?_0x392378['attributes']:_0x12a118[_0x2c1c('0x31')];if(_0x3b53b9[_0x2c1c('0x35')][_0x2c1c('0x48')]){_0x392378[_0x2c1c('0x49')]=[{'all':!![]}];}_0x392378=_[_0x2c1c('0x3f')]({},_0x392378,_0x3b53b9[_0x2c1c('0x40')]);return db[_0x2c1c('0x2d')][_0x2c1c('0x4a')](_0x392378)[_0x2c1c('0x26')](handleEntityNotFound(_0x270cb6,null))[_0x2c1c('0x26')](respondWithResult(_0x270cb6,null))[_0x2c1c('0x43')](handleError(_0x270cb6,null));};exports['create']=function(_0x4ec672,_0xb1e800){return db[_0x2c1c('0x2d')]['create'](_0x4ec672['body'],{})[_0x2c1c('0x26')](function(_0x2ebc68){var _0x15faa4=_0x4ec672[_0x2c1c('0x4b')][_0x2c1c('0x4c')]({'plain':!![]});if(!_0x15faa4)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x15faa4[_0x2c1c('0x4d')]===_0x2c1c('0x4b')){var _0x3f0a7=_0x2ebc68[_0x2c1c('0x4c')]({'plain':!![]});var _0x47b7a0='Templates';return db['UserProfileSection'][_0x2c1c('0x4a')]({'where':{'name':_0x47b7a0,'userProfileId':_0x15faa4['userProfileId']},'raw':!![]})[_0x2c1c('0x26')](function(_0x3ec552){if(_0x3ec552&&_0x3ec552[_0x2c1c('0x4e')]===0x0){return db[_0x2c1c('0x4f')][_0x2c1c('0x50')]({'name':_0x3f0a7[_0x2c1c('0x2b')],'resourceId':_0x3f0a7['id'],'type':_0x3ec552[_0x2c1c('0x2b')],'sectionId':_0x3ec552['id']},{})['then'](function(){return _0x2ebc68;});}else{return _0x2ebc68;}})['catch'](function(_0x359f01){logger[_0x2c1c('0x51')](_0x2c1c('0x52'),_0x359f01);throw _0x359f01;});}return _0x2ebc68;})[_0x2c1c('0x26')](respondWithResult(_0xb1e800,0xc9))[_0x2c1c('0x43')](handleError(_0xb1e800,null));};exports['update']=function(_0xd44ed7,_0x515840){if(_0xd44ed7[_0x2c1c('0x53')]['id']){delete _0xd44ed7['body']['id'];}return db[_0x2c1c('0x2d')][_0x2c1c('0x4a')]({'where':{'id':_0xd44ed7['params']['id']}})[_0x2c1c('0x26')](handleEntityNotFound(_0x515840,null))[_0x2c1c('0x26')](saveUpdates(_0xd44ed7[_0x2c1c('0x53')],null))['then'](respondWithResult(_0x515840,null))[_0x2c1c('0x43')](handleError(_0x515840,null));};exports[_0x2c1c('0x27')]=function(_0x141659,_0xbc24bc){return db[_0x2c1c('0x2d')][_0x2c1c('0x4a')]({'where':{'id':_0x141659[_0x2c1c('0x45')]['id']}})[_0x2c1c('0x26')](handleEntityNotFound(_0xbc24bc,null))[_0x2c1c('0x26')](removeEntity(_0xbc24bc,null))['catch'](handleError(_0xbc24bc,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd821=['../../config/environment','exports','define','tools_templates','util','api','path','rimraf'];(function(_0x4ced31,_0x3387c1){var _0x1923b5=function(_0x4d6dfd){while(--_0x4d6dfd){_0x4ced31['push'](_0x4ced31['shift']());}};_0x1923b5(++_0x3387c1);}(_0xd821,0x1f4));var _0x1d82=function(_0x1f3e6b,_0x130459){_0x1f3e6b=_0x1f3e6b-0x0;var _0x5d29bc=_0xd821[_0x1f3e6b];return _0x5d29bc;};'use strict';var _=require('lodash');var util=require(_0x1d82('0x0'));var logger=require('../../config/logger')(_0x1d82('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0x1d82('0x2'));var rimraf=require(_0x1d82('0x3'));var config=require(_0x1d82('0x4'));var attributes=require('./template.attributes');module[_0x1d82('0x5')]=function(_0x5c43d7,_0x2bad40){return _0x5c43d7[_0x1d82('0x6')]('Template',attributes,{'tableName':_0x1d82('0x7'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x1a9e=['util','../../config/logger','api','bluebird','request-promise','path','rimraf','./template.attributes','exports','Template','tools_templates','lodash'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x1a9e,0xe3));var _0xe1a9=function(_0x1c1fb2,_0x30fc24){_0x1c1fb2=_0x1c1fb2-0x0;var _0xf0a074=_0x1a9e[_0x1c1fb2];return _0xf0a074;};'use strict';var _=require(_0xe1a9('0x0'));var util=require(_0xe1a9('0x1'));var logger=require(_0xe1a9('0x2'))(_0xe1a9('0x3'));var moment=require('moment');var BPromise=require(_0xe1a9('0x4'));var rp=require(_0xe1a9('0x5'));var fs=require('fs');var path=require(_0xe1a9('0x6'));var rimraf=require(_0xe1a9('0x7'));var config=require('../../config/environment');var attributes=require(_0xe1a9('0x8'));module[_0xe1a9('0x9')]=function(_0x3ca3f4,_0x78b059){return _0x3ca3f4['define'](_0xe1a9('0xa'),attributes,{'tableName':_0xe1a9('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4c6b=['stringify','error','code','Template,\x20%s,\x20%s','message','info','result','catch','GetTemplate','Template','options','raw','where','attributes','include','model','map','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','then','request\x20sent','debug','Template,\x20%s,\x20%s,\x20%s'];(function(_0x131fea,_0x45cf53){var _0x4583b4=function(_0x132aec){while(--_0x132aec){_0x131fea['push'](_0x131fea['shift']());}};_0x4583b4(++_0x45cf53);}(_0x4c6b,0x111));var _0xb4c6=function(_0x3511d3,_0x4107ae){_0x3511d3=_0x3511d3-0x0;var _0x5d6321=_0x4c6b[_0x3511d3];return _0x5d6321;};'use strict';var _=require('lodash');var util=require(_0xb4c6('0x0'));var moment=require(_0xb4c6('0x1'));var BPromise=require(_0xb4c6('0x2'));var rs=require(_0xb4c6('0x3'));var fs=require('fs');var Redis=require(_0xb4c6('0x4'));var db=require(_0xb4c6('0x5'))['db'];var utils=require(_0xb4c6('0x6'));var logger=require(_0xb4c6('0x7'))(_0xb4c6('0x8'));var config=require(_0xb4c6('0x9'));var jayson=require('jayson/promise');var client=jayson[_0xb4c6('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0x348e72,_0x5e883b,_0x45dfaf){return new BPromise(function(_0x5e58cc,_0x2ef6e2){return client['request'](_0x348e72,_0x45dfaf)[_0xb4c6('0xb')](function(_0x34f668){logger['info']('Template,\x20%s,\x20%s',_0x5e883b,_0xb4c6('0xc'));logger[_0xb4c6('0xd')](_0xb4c6('0xe'),_0x5e883b,_0xb4c6('0xc'),JSON[_0xb4c6('0xf')](_0x34f668));if(_0x34f668[_0xb4c6('0x10')]){if(_0x34f668[_0xb4c6('0x10')][_0xb4c6('0x11')]===0x1f4){logger[_0xb4c6('0x10')](_0xb4c6('0x12'),_0x5e883b,_0x34f668[_0xb4c6('0x10')][_0xb4c6('0x13')]);return _0x2ef6e2(_0x34f668[_0xb4c6('0x10')][_0xb4c6('0x13')]);}logger['error'](_0xb4c6('0x12'),_0x5e883b,_0x34f668[_0xb4c6('0x10')][_0xb4c6('0x13')]);return _0x5e58cc(_0x34f668['error']['message']);}else{logger[_0xb4c6('0x14')]('Template,\x20%s,\x20%s',_0x5e883b,'request\x20sent');_0x5e58cc(_0x34f668[_0xb4c6('0x15')]['message']);}})[_0xb4c6('0x16')](function(_0x44f684){logger['error']('Template,\x20%s,\x20%s',_0x5e883b,_0x44f684);_0x2ef6e2(_0x44f684);});});}exports[_0xb4c6('0x17')]=function(_0x14f7a9){var _0x395fa3=this;return new Promise(function(_0x40d4d0,_0x391b2e){return db[_0xb4c6('0x18')]['findAll']({'raw':_0x14f7a9[_0xb4c6('0x19')]?_0x14f7a9[_0xb4c6('0x19')][_0xb4c6('0x1a')]===undefined?!![]:![]:!![],'where':_0x14f7a9[_0xb4c6('0x19')]?_0x14f7a9['options'][_0xb4c6('0x1b')]||null:null,'attributes':_0x14f7a9[_0xb4c6('0x19')]?_0x14f7a9[_0xb4c6('0x19')][_0xb4c6('0x1c')]||null:null,'limit':_0x14f7a9['options']?_0x14f7a9[_0xb4c6('0x19')]['limit']||null:null,'include':_0x14f7a9[_0xb4c6('0x19')]?_0x14f7a9[_0xb4c6('0x19')][_0xb4c6('0x1d')]?_['map'](_0x14f7a9[_0xb4c6('0x19')][_0xb4c6('0x1d')],function(_0x255337){return{'model':db[_0x255337[_0xb4c6('0x1e')]],'as':_0x255337['as'],'attributes':_0x255337['attributes'],'include':_0x255337['include']?_[_0xb4c6('0x1f')](_0x255337[_0xb4c6('0x1d')],function(_0x394dd7){return{'model':db[_0x394dd7['model']],'as':_0x394dd7['as'],'attributes':_0x394dd7['attributes'],'include':_0x394dd7[_0xb4c6('0x1d')]?_[_0xb4c6('0x1f')](_0x394dd7[_0xb4c6('0x1d')],function(_0x551721){return{'model':db[_0x551721[_0xb4c6('0x1e')]],'as':_0x551721['as'],'attributes':_0x551721[_0xb4c6('0x1c')]};}):[]};}):[]};}):[]:[]})[_0xb4c6('0xb')](function(_0x86d51f){logger[_0xb4c6('0x14')]('GetTemplate',_0x14f7a9);logger[_0xb4c6('0xd')](_0xb4c6('0x17'),_0x14f7a9,JSON[_0xb4c6('0xf')](_0x86d51f));_0x40d4d0(_0x86d51f);})[_0xb4c6('0x16')](function(_0x16fa2a){logger[_0xb4c6('0x10')](_0xb4c6('0x17'),_0x16fa2a[_0xb4c6('0x13')],_0x14f7a9);_0x391b2e(_0x395fa3[_0xb4c6('0x10')](0x1f4,_0x16fa2a[_0xb4c6('0x13')]));});});};
\ No newline at end of file
+var _0xd291=['catch','findAll','options','raw','where','attributes','limit','include','map','model','GetTemplate','lodash','util','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','Template,\x20%s,\x20%s','request\x20sent','debug','Template,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result'];(function(_0x19e35c,_0x29cd1e){var _0x3e1fe8=function(_0x17258b){while(--_0x17258b){_0x19e35c['push'](_0x19e35c['shift']());}};_0x3e1fe8(++_0x29cd1e);}(_0xd291,0x1af));var _0x1d29=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0xd291[_0x14add3];return _0x4a174f;};'use strict';var _=require(_0x1d29('0x0'));var util=require(_0x1d29('0x1'));var moment=require('moment');var BPromise=require(_0x1d29('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x1d29('0x3'));var db=require(_0x1d29('0x4'))['db'];var utils=require(_0x1d29('0x5'));var logger=require(_0x1d29('0x6'))(_0x1d29('0x7'));var config=require(_0x1d29('0x8'));var jayson=require(_0x1d29('0x9'));var client=jayson[_0x1d29('0xa')][_0x1d29('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x24123f,_0x530254,_0x5856ad){return new BPromise(function(_0x1ca0b6,_0x25ef3d){return client[_0x1d29('0xc')](_0x24123f,_0x5856ad)[_0x1d29('0xd')](function(_0x1c023c){logger['info'](_0x1d29('0xe'),_0x530254,_0x1d29('0xf'));logger[_0x1d29('0x10')](_0x1d29('0x11'),_0x530254,_0x1d29('0xf'),JSON[_0x1d29('0x12')](_0x1c023c));if(_0x1c023c[_0x1d29('0x13')]){if(_0x1c023c[_0x1d29('0x13')][_0x1d29('0x14')]===0x1f4){logger[_0x1d29('0x13')](_0x1d29('0xe'),_0x530254,_0x1c023c[_0x1d29('0x13')][_0x1d29('0x15')]);return _0x25ef3d(_0x1c023c[_0x1d29('0x13')][_0x1d29('0x15')]);}logger[_0x1d29('0x13')](_0x1d29('0xe'),_0x530254,_0x1c023c['error'][_0x1d29('0x15')]);return _0x1ca0b6(_0x1c023c[_0x1d29('0x13')][_0x1d29('0x15')]);}else{logger[_0x1d29('0x16')]('Template,\x20%s,\x20%s',_0x530254,_0x1d29('0xf'));_0x1ca0b6(_0x1c023c[_0x1d29('0x17')][_0x1d29('0x15')]);}})[_0x1d29('0x18')](function(_0x31bec5){logger['error'](_0x1d29('0xe'),_0x530254,_0x31bec5);_0x25ef3d(_0x31bec5);});});}exports['GetTemplate']=function(_0x512fc2){var _0x525554=this;return new Promise(function(_0x4abaa2,_0x603f48){return db['Template'][_0x1d29('0x19')]({'raw':_0x512fc2[_0x1d29('0x1a')]?_0x512fc2[_0x1d29('0x1a')][_0x1d29('0x1b')]===undefined?!![]:![]:!![],'where':_0x512fc2['options']?_0x512fc2[_0x1d29('0x1a')][_0x1d29('0x1c')]||null:null,'attributes':_0x512fc2[_0x1d29('0x1a')]?_0x512fc2[_0x1d29('0x1a')][_0x1d29('0x1d')]||null:null,'limit':_0x512fc2[_0x1d29('0x1a')]?_0x512fc2[_0x1d29('0x1a')][_0x1d29('0x1e')]||null:null,'include':_0x512fc2['options']?_0x512fc2[_0x1d29('0x1a')][_0x1d29('0x1f')]?_[_0x1d29('0x20')](_0x512fc2[_0x1d29('0x1a')]['include'],function(_0x474bda){return{'model':db[_0x474bda['model']],'as':_0x474bda['as'],'attributes':_0x474bda[_0x1d29('0x1d')],'include':_0x474bda['include']?_[_0x1d29('0x20')](_0x474bda['include'],function(_0x494886){return{'model':db[_0x494886[_0x1d29('0x21')]],'as':_0x494886['as'],'attributes':_0x494886[_0x1d29('0x1d')],'include':_0x494886['include']?_[_0x1d29('0x20')](_0x494886[_0x1d29('0x1f')],function(_0x47f2a9){return{'model':db[_0x47f2a9[_0x1d29('0x21')]],'as':_0x47f2a9['as'],'attributes':_0x47f2a9[_0x1d29('0x1d')]};}):[]};}):[]};}):[]:[]})[_0x1d29('0xd')](function(_0x37365d){logger[_0x1d29('0x16')](_0x1d29('0x22'),_0x512fc2);logger[_0x1d29('0x10')](_0x1d29('0x22'),_0x512fc2,JSON[_0x1d29('0x12')](_0x37365d));_0x4abaa2(_0x37365d);})['catch'](function(_0x2259cf){logger[_0x1d29('0x13')]('GetTemplate',_0x2259cf[_0x1d29('0x15')],_0x512fc2);_0x603f48(_0x525554[_0x1d29('0x13')](0x1f4,_0x2259cf[_0x1d29('0x15')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4892=['/:id/actions','create','/:id/all_conditions','addAllCondition','post','addAnyCondition','addAction','put','update','delete','exports','multer','util','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','/:id','show','/:id/any_conditions'];(function(_0xe729e6,_0x5a1666){var _0x2cf56a=function(_0x2de98c){while(--_0x2de98c){_0xe729e6['push'](_0xe729e6['shift']());}};_0x2cf56a(++_0x5a1666);}(_0x4892,0x1cd));var _0x2489=function(_0x2c2630,_0x10de54){_0x2c2630=_0x2c2630-0x0;var _0xbe89cf=_0x4892[_0x2c2630];return _0xbe89cf;};'use strict';var multer=require(_0x2489('0x0'));var util=require(_0x2489('0x1'));var path=require('path');var timeout=require(_0x2489('0x2'));var express=require(_0x2489('0x3'));var router=express[_0x2489('0x4')]();var fs_extra=require(_0x2489('0x5'));var auth=require(_0x2489('0x6'));var interaction=require(_0x2489('0x7'));var config=require(_0x2489('0x8'));var controller=require('./trigger.controller');router[_0x2489('0x9')]('/',auth[_0x2489('0xa')](),controller['index']);router[_0x2489('0x9')](_0x2489('0xb'),auth[_0x2489('0xa')](),controller[_0x2489('0xc')]);router[_0x2489('0x9')]('/:id/all_conditions',auth[_0x2489('0xa')](),controller['getAllConditions']);router['get'](_0x2489('0xd'),auth[_0x2489('0xa')](),controller['getAnyConditions']);router[_0x2489('0x9')](_0x2489('0xe'),auth[_0x2489('0xa')](),controller['getActions']);router['post']('/',auth[_0x2489('0xa')](),controller[_0x2489('0xf')]);router['post'](_0x2489('0x10'),auth['isAuthenticated'](),controller[_0x2489('0x11')]);router[_0x2489('0x12')](_0x2489('0xd'),auth['isAuthenticated'](),controller[_0x2489('0x13')]);router[_0x2489('0x12')]('/:id/actions',auth[_0x2489('0xa')](),controller[_0x2489('0x14')]);router[_0x2489('0x15')]('/:id',auth[_0x2489('0xa')](),controller[_0x2489('0x16')]);router[_0x2489('0x17')](_0x2489('0xb'),auth[_0x2489('0xa')](),controller['destroy']);module[_0x2489('0x18')]=router;
\ No newline at end of file
+var _0xac0c=['addAnyCondition','addAction','put','delete','exports','util','express','Router','fs-extra','../../components/interaction/service','get','isAuthenticated','index','/:id','show','/:id/all_conditions','getAllConditions','/:id/any_conditions','getAnyConditions','/:id/actions','getActions','post','create'];(function(_0x4803d9,_0x1c8142){var _0x2d2f0f=function(_0x53b959){while(--_0x53b959){_0x4803d9['push'](_0x4803d9['shift']());}};_0x2d2f0f(++_0x1c8142);}(_0xac0c,0xd4));var _0xcac0=function(_0x461eaa,_0x5b9604){_0x461eaa=_0x461eaa-0x0;var _0x3f2756=_0xac0c[_0x461eaa];return _0x3f2756;};'use strict';var multer=require('multer');var util=require(_0xcac0('0x0'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0xcac0('0x1'));var router=express[_0xcac0('0x2')]();var fs_extra=require(_0xcac0('0x3'));var auth=require('../../components/auth/service');var interaction=require(_0xcac0('0x4'));var config=require('../../config/environment');var controller=require('./trigger.controller');router[_0xcac0('0x5')]('/',auth[_0xcac0('0x6')](),controller[_0xcac0('0x7')]);router[_0xcac0('0x5')](_0xcac0('0x8'),auth[_0xcac0('0x6')](),controller[_0xcac0('0x9')]);router[_0xcac0('0x5')](_0xcac0('0xa'),auth['isAuthenticated'](),controller[_0xcac0('0xb')]);router[_0xcac0('0x5')](_0xcac0('0xc'),auth[_0xcac0('0x6')](),controller[_0xcac0('0xd')]);router[_0xcac0('0x5')](_0xcac0('0xe'),auth[_0xcac0('0x6')](),controller[_0xcac0('0xf')]);router[_0xcac0('0x10')]('/',auth[_0xcac0('0x6')](),controller[_0xcac0('0x11')]);router[_0xcac0('0x10')]('/:id/all_conditions',auth[_0xcac0('0x6')](),controller['addAllCondition']);router['post']('/:id/any_conditions',auth[_0xcac0('0x6')](),controller[_0xcac0('0x12')]);router[_0xcac0('0x10')]('/:id/actions',auth[_0xcac0('0x6')](),controller[_0xcac0('0x13')]);router[_0xcac0('0x14')](_0xcac0('0x8'),auth[_0xcac0('0x6')](),controller['update']);router[_0xcac0('0x15')]('/:id',auth['isAuthenticated'](),controller['destroy']);module[_0xcac0('0x16')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8193=['sequelize','exports','STRING'];(function(_0x1e50ce,_0x330023){var _0x5af6a2=function(_0x113c4a){while(--_0x113c4a){_0x1e50ce['push'](_0x1e50ce['shift']());}};_0x5af6a2(++_0x330023);}(_0x8193,0x135));var _0x3819=function(_0x51d7b7,_0x3132fe){_0x51d7b7=_0x51d7b7-0x0;var _0x3dcd18=_0x8193[_0x51d7b7];return _0x3dcd18;};'use strict';var Sequelize=require(_0x3819('0x0'));module[_0x3819('0x1')]={'name':{'type':Sequelize[_0x3819('0x2')]},'channel':{'type':Sequelize[_0x3819('0x2')]},'description':{'type':Sequelize['STRING']},'status':{'type':Sequelize['BOOLEAN'],'defaultValue':![]}};
\ No newline at end of file
+var _0x53d8=['BOOLEAN','exports','STRING'];(function(_0x2a6809,_0x44edde){var _0x11c371=function(_0x1a4888){while(--_0x1a4888){_0x2a6809['push'](_0x2a6809['shift']());}};_0x11c371(++_0x44edde);}(_0x53d8,0x100));var _0x853d=function(_0x79029,_0x5cc182){_0x79029=_0x79029-0x0;var _0x32dbb9=_0x53d8[_0x79029];return _0x32dbb9;};'use strict';var Sequelize=require('sequelize');module[_0x853d('0x0')]={'name':{'type':Sequelize['STRING']},'channel':{'type':Sequelize[_0x853d('0x1')]},'description':{'type':Sequelize['STRING']},'status':{'type':Sequelize[_0x853d('0x2')],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2517=['include','findAll','rows','catch','show','includeAll','options','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Triggers','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','params','addAllCondition','addAnyCondition','TriggerAnyId','Condition','getAllConditions','findOne','order','getAnyConditions','addAction','TriggerId','Action','getActions','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','sox','to-csv','ejs','lodash','crypto','jsforce','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','sendStatus','status','end','offset','undefined','limit','set','Content-Range','json','apply','reject','save','update','get','destroy','then','error','name','index','map','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','Trigger','count'];(function(_0x585972,_0x200c05){var _0x5ab684=function(_0x46578e){while(--_0x46578e){_0x585972['push'](_0x585972['shift']());}};_0x5ab684(++_0x200c05);}(_0x2517,0xdb));var _0x7251=function(_0xe17300,_0x229ac8){_0xe17300=_0xe17300-0x0;var _0x59c4be=_0x2517[_0xe17300];return _0x59c4be;};'use strict';var emlformat=require(_0x7251('0x0'));var rimraf=require(_0x7251('0x1'));var zipdir=require(_0x7251('0x2'));var jsonpatch=require(_0x7251('0x3'));var rp=require(_0x7251('0x4'));var moment=require(_0x7251('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x7251('0x6'));var util=require(_0x7251('0x7'));var path=require('path');var sox=require(_0x7251('0x8'));var csv=require(_0x7251('0x9'));var ejs=require(_0x7251('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x7251('0xb'));var squel=require('squel');var crypto=require(_0x7251('0xc'));var jsforce=require(_0x7251('0xd'));var deskjs=require('desk.js');var toCsv=require(_0x7251('0x9'));var querystring=require('querystring');var Papa=require(_0x7251('0xe'));var Redis=require(_0x7251('0xf'));var authService=require(_0x7251('0x10'));var qs=require(_0x7251('0x11'));var as=require(_0x7251('0x12'));var hardwareService=require(_0x7251('0x13'));var logger=require(_0x7251('0x14'))(_0x7251('0x15'));var utils=require('../../config/utils');var config=require(_0x7251('0x16'));var licenseUtil=require(_0x7251('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x3c5615,_0x215687){_0x215687=_0x215687||0xcc;return function(_0x4edd8c){if(_0x4edd8c){return _0x3c5615[_0x7251('0x18')](_0x215687);}return _0x3c5615[_0x7251('0x19')](_0x215687)[_0x7251('0x1a')]();};}function respondWithResult(_0x59d60d,_0x340596){_0x340596=_0x340596||0xc8;return function(_0x43cd9e){if(_0x43cd9e){return _0x59d60d[_0x7251('0x19')](_0x340596)['json'](_0x43cd9e);}};}function respondWithFilteredResult(_0x51dce7,_0x3bf348){return function(_0x2d3176){if(_0x2d3176){var _0x3626f9=typeof _0x3bf348[_0x7251('0x1b')]===_0x7251('0x1c')&&typeof _0x3bf348[_0x7251('0x1d')]===_0x7251('0x1c');var _0x4512ab=_0x2d3176['count'];var _0x5ee7e6=_0x3626f9?0x0:_0x3bf348[_0x7251('0x1b')];var _0x3d2f58=_0x3626f9?_0x2d3176['count']:_0x3bf348[_0x7251('0x1b')]+_0x3bf348[_0x7251('0x1d')];var _0x271495;if(_0x3d2f58>=_0x4512ab){_0x3d2f58=_0x4512ab;_0x271495=0xc8;}else{_0x271495=0xce;}_0x51dce7[_0x7251('0x19')](_0x271495);return _0x51dce7[_0x7251('0x1e')](_0x7251('0x1f'),_0x5ee7e6+'-'+_0x3d2f58+'/'+_0x4512ab)[_0x7251('0x20')](_0x2d3176);}return null;};}function patchUpdates(_0x1be5b0){return function(_0x229025){try{jsonpatch[_0x7251('0x21')](_0x229025,_0x1be5b0,!![]);}catch(_0xfbf92a){return BPromise[_0x7251('0x22')](_0xfbf92a);}return _0x229025[_0x7251('0x23')]();};}function saveUpdates(_0x5dcbdd,_0x68d1cd){return function(_0x38dc5c){if(_0x38dc5c){return _0x38dc5c[_0x7251('0x24')](_0x5dcbdd)['then'](function(_0x5166fb){return _0x5166fb;});}return null;};}function removeEntity(_0x3f0fa1,_0x2e9bc3){return function(_0x44b06d){if(_0x44b06d){return _0x44b06d['destroy']()['then'](function(){var _0x415f35=_0x44b06d[_0x7251('0x25')]({'plain':!![]});var _0x125ebe='Triggers';return db['UserProfileResource'][_0x7251('0x26')]({'where':{'type':_0x125ebe,'resourceId':_0x415f35['id']}})['then'](function(){return _0x44b06d;});})[_0x7251('0x27')](function(){_0x3f0fa1['status'](0xcc)[_0x7251('0x1a')]();});}};}function handleEntityNotFound(_0x16045c,_0x57048e){return function(_0x5aa2e9){if(!_0x5aa2e9){_0x16045c[_0x7251('0x18')](0x194);}return _0x5aa2e9;};}function handleError(_0x152833,_0x5de653){_0x5de653=_0x5de653||0x1f4;return function(_0x519d24){logger[_0x7251('0x28')](_0x519d24['stack']);if(_0x519d24['name']){delete _0x519d24[_0x7251('0x29')];}_0x152833[_0x7251('0x19')](_0x5de653)['send'](_0x519d24);};}exports[_0x7251('0x2a')]=function(_0xc40f64,_0x45c535){var _0x3971f1={},_0x8d186b={},_0x549553={'count':0x0,'rows':[]};var _0x2918fd=_[_0x7251('0x2b')](db['Trigger'][_0x7251('0x2c')],function(_0x2d02f7){return{'name':_0x2d02f7[_0x7251('0x2d')],'type':_0x2d02f7[_0x7251('0x2e')][_0x7251('0x2f')]};});_0x8d186b[_0x7251('0x30')]=_['map'](_0x2918fd,_0x7251('0x29'));_0x8d186b[_0x7251('0x31')]=_[_0x7251('0x32')](_0xc40f64[_0x7251('0x31')]);_0x8d186b[_0x7251('0x33')]=_[_0x7251('0x34')](_0x8d186b[_0x7251('0x30')],_0x8d186b[_0x7251('0x31')]);_0x3971f1[_0x7251('0x35')]=_[_0x7251('0x34')](_0x8d186b[_0x7251('0x30')],qs[_0x7251('0x36')](_0xc40f64['query'][_0x7251('0x36')]));_0x3971f1[_0x7251('0x35')]=_0x3971f1[_0x7251('0x35')][_0x7251('0x37')]?_0x3971f1[_0x7251('0x35')]:_0x8d186b[_0x7251('0x30')];if(!_0xc40f64['query'][_0x7251('0x38')](_0x7251('0x39'))){_0x3971f1['limit']=qs[_0x7251('0x1d')](_0xc40f64['query'][_0x7251('0x1d')]);_0x3971f1['offset']=qs[_0x7251('0x1b')](_0xc40f64[_0x7251('0x31')][_0x7251('0x1b')]);}_0x3971f1['order']=qs['sort'](_0xc40f64[_0x7251('0x31')][_0x7251('0x3a')]);_0x3971f1[_0x7251('0x3b')]=qs[_0x7251('0x33')](_[_0x7251('0x3c')](_0xc40f64[_0x7251('0x31')],_0x8d186b[_0x7251('0x33')]),_0x2918fd);if(_0xc40f64[_0x7251('0x31')][_0x7251('0x3d')]){_0x3971f1[_0x7251('0x3b')]=_[_0x7251('0x3e')](_0x3971f1['where'],{'$or':_['map'](_0x2918fd,function(_0x228022){if(_0x228022['type']!==_0x7251('0x3f')){var _0x58c731={};_0x58c731[_0x228022[_0x7251('0x29')]]={'$like':'%'+_0xc40f64[_0x7251('0x31')][_0x7251('0x3d')]+'%'};return _0x58c731;}})});}_0x3971f1=_['merge']({},_0x3971f1,_0xc40f64['options']);var _0x5d9255={'where':_0x3971f1[_0x7251('0x3b')]};return db[_0x7251('0x40')]['count'](_0x5d9255)[_0x7251('0x27')](function(_0xd1e7){_0x549553[_0x7251('0x41')]=_0xd1e7;if(_0xc40f64[_0x7251('0x31')]['includeAll']){_0x3971f1[_0x7251('0x42')]=[{'all':!![]}];}return db[_0x7251('0x40')][_0x7251('0x43')](_0x3971f1);})[_0x7251('0x27')](function(_0x24454b){_0x549553[_0x7251('0x44')]=_0x24454b;return _0x549553;})[_0x7251('0x27')](respondWithFilteredResult(_0x45c535,_0x3971f1))[_0x7251('0x45')](handleError(_0x45c535,null));};exports[_0x7251('0x46')]=function(_0x8d5308,_0x5460e0){var _0x18f3ad={'raw':![],'where':{'id':_0x8d5308['params']['id']}},_0x1055aa={};_0x1055aa[_0x7251('0x30')]=_[_0x7251('0x32')](db[_0x7251('0x40')]['rawAttributes']);_0x1055aa['query']=_[_0x7251('0x32')](_0x8d5308[_0x7251('0x31')]);_0x1055aa[_0x7251('0x33')]=_[_0x7251('0x34')](_0x1055aa[_0x7251('0x30')],_0x1055aa['query']);_0x18f3ad[_0x7251('0x35')]=_[_0x7251('0x34')](_0x1055aa['model'],qs[_0x7251('0x36')](_0x8d5308[_0x7251('0x31')][_0x7251('0x36')]));_0x18f3ad['attributes']=_0x18f3ad[_0x7251('0x35')][_0x7251('0x37')]?_0x18f3ad[_0x7251('0x35')]:_0x1055aa[_0x7251('0x30')];if(_0x8d5308['query'][_0x7251('0x47')]){_0x18f3ad[_0x7251('0x42')]=[{'all':!![]}];}_0x18f3ad=_['merge']({},_0x18f3ad,_0x8d5308[_0x7251('0x48')]);return db[_0x7251('0x40')][_0x7251('0x49')](_0x18f3ad)['then'](handleEntityNotFound(_0x5460e0,null))['then'](respondWithResult(_0x5460e0,null))[_0x7251('0x45')](handleError(_0x5460e0,null));};exports[_0x7251('0x4a')]=function(_0x23181e,_0x23f3e1){return db[_0x7251('0x40')][_0x7251('0x4a')](_0x23181e['body'],{})[_0x7251('0x27')](function(_0x4001ff){var _0x5b6883=_0x23181e[_0x7251('0x4b')][_0x7251('0x25')]({'plain':!![]});if(!_0x5b6883)throw new Error(_0x7251('0x4c'));if(_0x5b6883[_0x7251('0x4d')]===_0x7251('0x4b')){var _0x12a7dc=_0x4001ff[_0x7251('0x25')]({'plain':!![]});var _0x150d7d=_0x7251('0x4e');return db['UserProfileSection'][_0x7251('0x49')]({'where':{'name':_0x150d7d,'userProfileId':_0x5b6883['userProfileId']},'raw':!![]})['then'](function(_0x2b7708){if(_0x2b7708&&_0x2b7708[_0x7251('0x4f')]===0x0){return db['UserProfileResource'][_0x7251('0x4a')]({'name':_0x12a7dc[_0x7251('0x29')],'resourceId':_0x12a7dc['id'],'type':_0x2b7708[_0x7251('0x29')],'sectionId':_0x2b7708['id']},{})[_0x7251('0x27')](function(){return _0x4001ff;});}else{return _0x4001ff;}})[_0x7251('0x45')](function(_0x14565f){logger[_0x7251('0x28')](_0x7251('0x50'),_0x14565f);throw _0x14565f;});}return _0x4001ff;})['then'](respondWithResult(_0x23f3e1,0xc9))[_0x7251('0x45')](handleError(_0x23f3e1,null));};exports[_0x7251('0x24')]=function(_0x4eea02,_0x3e26e4){if(_0x4eea02['body']['id']){delete _0x4eea02[_0x7251('0x51')]['id'];}return db[_0x7251('0x40')][_0x7251('0x49')]({'where':{'id':_0x4eea02[_0x7251('0x52')]['id']}})[_0x7251('0x27')](handleEntityNotFound(_0x3e26e4,null))[_0x7251('0x27')](saveUpdates(_0x4eea02['body'],null))[_0x7251('0x27')](respondWithResult(_0x3e26e4,null))['catch'](handleError(_0x3e26e4,null));};exports['destroy']=function(_0xa0f0b8,_0x2130d1){return db['Trigger'][_0x7251('0x49')]({'where':{'id':_0xa0f0b8['params']['id']}})['then'](handleEntityNotFound(_0x2130d1,null))[_0x7251('0x27')](removeEntity(_0x2130d1,null))[_0x7251('0x45')](handleError(_0x2130d1,null));};exports[_0x7251('0x53')]=function(_0x7bd561,_0x1157b6,_0x49fe38){if(_0x7bd561['body']['id']){delete _0x7bd561[_0x7251('0x51')]['id'];}return db[_0x7251('0x40')]['find']({'where':{'id':_0x7bd561[_0x7251('0x52')]['id']}})[_0x7251('0x27')](handleEntityNotFound(_0x1157b6,null))['then'](function(_0x3c7604){if(_0x3c7604){_0x7bd561[_0x7251('0x51')]['TriggerAllId']=_0x3c7604['id'];return db['Condition']['create'](_0x7bd561['body']);}})[_0x7251('0x27')](respondWithResult(_0x1157b6,null))[_0x7251('0x45')](handleError(_0x1157b6,null));};exports[_0x7251('0x54')]=function(_0x370d8c,_0x31c513,_0x15ac30){if(_0x370d8c['body']['id']){delete _0x370d8c[_0x7251('0x51')]['id'];}return db[_0x7251('0x40')]['find']({'where':{'id':_0x370d8c[_0x7251('0x52')]['id']}})['then'](handleEntityNotFound(_0x31c513,null))[_0x7251('0x27')](function(_0x30ab12){if(_0x30ab12){_0x370d8c[_0x7251('0x51')][_0x7251('0x55')]=_0x30ab12['id'];return db[_0x7251('0x56')][_0x7251('0x4a')](_0x370d8c[_0x7251('0x51')]);}})[_0x7251('0x27')](respondWithResult(_0x31c513,null))[_0x7251('0x45')](handleError(_0x31c513,null));};exports[_0x7251('0x57')]=function(_0x9a3601,_0x22afba,_0x484c1b){var _0x2f3a35={};var _0x43fa4f={};var _0x47cad3;var _0x1ab17a;return db['Trigger'][_0x7251('0x58')]({'where':{'id':_0x9a3601[_0x7251('0x52')]['id']}})['then'](handleEntityNotFound(_0x22afba,null))[_0x7251('0x27')](function(_0x1e85a6){if(_0x1e85a6){_0x47cad3=_0x1e85a6;_0x43fa4f[_0x7251('0x30')]=_[_0x7251('0x32')](db['Condition'][_0x7251('0x2c')]);_0x43fa4f[_0x7251('0x31')]=_[_0x7251('0x32')](_0x9a3601[_0x7251('0x31')]);_0x43fa4f[_0x7251('0x33')]=_[_0x7251('0x34')](_0x43fa4f[_0x7251('0x30')],_0x43fa4f[_0x7251('0x31')]);_0x2f3a35[_0x7251('0x35')]=_[_0x7251('0x34')](_0x43fa4f[_0x7251('0x30')],qs[_0x7251('0x36')](_0x9a3601[_0x7251('0x31')][_0x7251('0x36')]));_0x2f3a35['attributes']=_0x2f3a35[_0x7251('0x35')][_0x7251('0x37')]?_0x2f3a35['attributes']:_0x43fa4f[_0x7251('0x30')];_0x2f3a35[_0x7251('0x59')]=qs[_0x7251('0x3a')](_0x9a3601[_0x7251('0x31')]['sort']);_0x2f3a35[_0x7251('0x3b')]=qs[_0x7251('0x33')](_[_0x7251('0x3c')](_0x9a3601[_0x7251('0x31')],_0x43fa4f[_0x7251('0x33')]));if(_0x9a3601['query'][_0x7251('0x3d')]){_0x2f3a35[_0x7251('0x3b')]=_[_0x7251('0x3e')](_0x2f3a35[_0x7251('0x3b')],{'$or':_[_0x7251('0x2b')](_0x2f3a35[_0x7251('0x35')],function(_0x120b98){var _0x2109b8={};_0x2109b8[_0x120b98]={'$like':'%'+_0x9a3601['query']['filter']+'%'};return _0x2109b8;})});}_0x2f3a35=_[_0x7251('0x3e')]({},_0x2f3a35,_0x9a3601['options']);return _0x47cad3['getAllConditions'](_0x2f3a35);}})[_0x7251('0x27')](function(_0x298e59){if(_0x298e59){_0x1ab17a=_0x298e59['length'];if(!_0x9a3601[_0x7251('0x31')][_0x7251('0x38')](_0x7251('0x39'))){_0x2f3a35[_0x7251('0x1d')]=qs['limit'](_0x9a3601[_0x7251('0x31')][_0x7251('0x1d')]);_0x2f3a35['offset']=qs[_0x7251('0x1b')](_0x9a3601['query']['offset']);}return _0x47cad3[_0x7251('0x57')](_0x2f3a35);}})[_0x7251('0x27')](function(_0x32de74){if(_0x32de74){return _0x32de74?{'count':_0x1ab17a,'rows':_0x32de74}:null;}})[_0x7251('0x27')](respondWithResult(_0x22afba,null))[_0x7251('0x45')](handleError(_0x22afba,null));};exports[_0x7251('0x5a')]=function(_0x47cb04,_0x55ef48,_0x149e61){var _0x3c96c8={};var _0x5eb5f6={};var _0x61ad72;var _0x3e01c7;return db['Trigger'][_0x7251('0x58')]({'where':{'id':_0x47cb04['params']['id']}})[_0x7251('0x27')](handleEntityNotFound(_0x55ef48,null))[_0x7251('0x27')](function(_0x32b58b){if(_0x32b58b){_0x61ad72=_0x32b58b;_0x5eb5f6[_0x7251('0x30')]=_['keys'](db[_0x7251('0x56')][_0x7251('0x2c')]);_0x5eb5f6['query']=_[_0x7251('0x32')](_0x47cb04[_0x7251('0x31')]);_0x5eb5f6[_0x7251('0x33')]=_[_0x7251('0x34')](_0x5eb5f6[_0x7251('0x30')],_0x5eb5f6[_0x7251('0x31')]);_0x3c96c8[_0x7251('0x35')]=_['intersection'](_0x5eb5f6[_0x7251('0x30')],qs[_0x7251('0x36')](_0x47cb04[_0x7251('0x31')][_0x7251('0x36')]));_0x3c96c8['attributes']=_0x3c96c8[_0x7251('0x35')][_0x7251('0x37')]?_0x3c96c8[_0x7251('0x35')]:_0x5eb5f6[_0x7251('0x30')];_0x3c96c8[_0x7251('0x59')]=qs[_0x7251('0x3a')](_0x47cb04[_0x7251('0x31')][_0x7251('0x3a')]);_0x3c96c8[_0x7251('0x3b')]=qs[_0x7251('0x33')](_[_0x7251('0x3c')](_0x47cb04[_0x7251('0x31')],_0x5eb5f6[_0x7251('0x33')]));if(_0x47cb04['query'][_0x7251('0x3d')]){_0x3c96c8[_0x7251('0x3b')]=_[_0x7251('0x3e')](_0x3c96c8[_0x7251('0x3b')],{'$or':_['map'](_0x3c96c8[_0x7251('0x35')],function(_0x509584){var _0x1e6e94={};_0x1e6e94[_0x509584]={'$like':'%'+_0x47cb04[_0x7251('0x31')]['filter']+'%'};return _0x1e6e94;})});}_0x3c96c8=_[_0x7251('0x3e')]({},_0x3c96c8,_0x47cb04[_0x7251('0x48')]);return _0x61ad72[_0x7251('0x5a')](_0x3c96c8);}})[_0x7251('0x27')](function(_0x52f747){if(_0x52f747){_0x3e01c7=_0x52f747[_0x7251('0x37')];if(!_0x47cb04[_0x7251('0x31')][_0x7251('0x38')]('nolimit')){_0x3c96c8[_0x7251('0x1d')]=qs[_0x7251('0x1d')](_0x47cb04['query'][_0x7251('0x1d')]);_0x3c96c8['offset']=qs['offset'](_0x47cb04['query'][_0x7251('0x1b')]);}return _0x61ad72[_0x7251('0x5a')](_0x3c96c8);}})[_0x7251('0x27')](function(_0x5ab012){if(_0x5ab012){return _0x5ab012?{'count':_0x3e01c7,'rows':_0x5ab012}:null;}})[_0x7251('0x27')](respondWithResult(_0x55ef48,null))[_0x7251('0x45')](handleError(_0x55ef48,null));};exports[_0x7251('0x5b')]=function(_0x1e3770,_0x5405bf,_0xc68bd0){if(_0x1e3770[_0x7251('0x51')]['id']){delete _0x1e3770[_0x7251('0x51')]['id'];}return db[_0x7251('0x40')][_0x7251('0x49')]({'where':{'id':_0x1e3770['params']['id']}})[_0x7251('0x27')](handleEntityNotFound(_0x5405bf,null))[_0x7251('0x27')](function(_0x139c01){if(_0x139c01){_0x1e3770[_0x7251('0x51')][_0x7251('0x5c')]=_0x139c01['id'];return db[_0x7251('0x5d')]['create'](_0x1e3770['body']);}})[_0x7251('0x27')](respondWithResult(_0x5405bf,null))['catch'](handleError(_0x5405bf,null));};exports[_0x7251('0x5e')]=function(_0x212863,_0x4a1024,_0x1e2e49){var _0x5f01b3={};var _0x31747d={};var _0x1624c9;var _0x49764a;return db[_0x7251('0x40')][_0x7251('0x58')]({'where':{'id':_0x212863[_0x7251('0x52')]['id']}})[_0x7251('0x27')](handleEntityNotFound(_0x4a1024,null))[_0x7251('0x27')](function(_0x16209d){if(_0x16209d){_0x1624c9=_0x16209d;_0x31747d[_0x7251('0x30')]=_[_0x7251('0x32')](db[_0x7251('0x5d')][_0x7251('0x2c')]);_0x31747d[_0x7251('0x31')]=_[_0x7251('0x32')](_0x212863[_0x7251('0x31')]);_0x31747d[_0x7251('0x33')]=_['intersection'](_0x31747d[_0x7251('0x30')],_0x31747d[_0x7251('0x31')]);_0x5f01b3[_0x7251('0x35')]=_[_0x7251('0x34')](_0x31747d[_0x7251('0x30')],qs[_0x7251('0x36')](_0x212863[_0x7251('0x31')][_0x7251('0x36')]));_0x5f01b3['attributes']=_0x5f01b3[_0x7251('0x35')][_0x7251('0x37')]?_0x5f01b3['attributes']:_0x31747d[_0x7251('0x30')];_0x5f01b3[_0x7251('0x59')]=qs[_0x7251('0x3a')](_0x212863[_0x7251('0x31')][_0x7251('0x3a')]);_0x5f01b3[_0x7251('0x3b')]=qs[_0x7251('0x33')](_[_0x7251('0x3c')](_0x212863[_0x7251('0x31')],_0x31747d[_0x7251('0x33')]));if(_0x212863[_0x7251('0x31')][_0x7251('0x3d')]){_0x5f01b3[_0x7251('0x3b')]=_['merge'](_0x5f01b3[_0x7251('0x3b')],{'$or':_[_0x7251('0x2b')](_0x5f01b3[_0x7251('0x35')],function(_0x597b4c){var _0x55298f={};_0x55298f[_0x597b4c]={'$like':'%'+_0x212863[_0x7251('0x31')][_0x7251('0x3d')]+'%'};return _0x55298f;})});}_0x5f01b3=_['merge']({},_0x5f01b3,_0x212863[_0x7251('0x48')]);return _0x1624c9['getActions'](_0x5f01b3);}})['then'](function(_0x449144){if(_0x449144){_0x49764a=_0x449144[_0x7251('0x37')];if(!_0x212863[_0x7251('0x31')]['hasOwnProperty'](_0x7251('0x39'))){_0x5f01b3[_0x7251('0x1d')]=qs['limit'](_0x212863[_0x7251('0x31')][_0x7251('0x1d')]);_0x5f01b3[_0x7251('0x1b')]=qs[_0x7251('0x1b')](_0x212863[_0x7251('0x31')][_0x7251('0x1b')]);}return _0x1624c9[_0x7251('0x5e')](_0x5f01b3);}})[_0x7251('0x27')](function(_0xdf2605){if(_0xdf2605){return _0xdf2605?{'count':_0x49764a,'rows':_0xdf2605}:null;}})[_0x7251('0x27')](respondWithResult(_0x4a1024,null))[_0x7251('0x45')](handleError(_0x4a1024,null));};
\ No newline at end of file
+var _0x6357=['fieldName','type','query','keys','filters','intersection','model','attributes','fields','limit','order','sort','pick','filter','where','VIRTUAL','merge','options','includeAll','findAll','rows','catch','show','params','length','include','create','body','user','role','Triggers','UserProfileSection','find','userProfileId','autoAssociation','UserProfileResource','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','addAllCondition','TriggerAllId','Condition','addAnyCondition','getAllConditions','nolimit','getAnyConditions','hasOwnProperty','addAction','TriggerId','Action','getActions','findOne','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','squel','crypto','desk.js','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','offset','undefined','count','set','Content-Range','reject','save','update','then','destroy','get','name','send','map','Trigger','rawAttributes'];(function(_0x20fb40,_0x37e7f){var _0x595b48=function(_0x3dc818){while(--_0x3dc818){_0x20fb40['push'](_0x20fb40['shift']());}};_0x595b48(++_0x37e7f);}(_0x6357,0x14d));var _0x7635=function(_0x19288f,_0x593b58){_0x19288f=_0x19288f-0x0;var _0x280b73=_0x6357[_0x19288f];return _0x280b73;};'use strict';var emlformat=require(_0x7635('0x0'));var rimraf=require(_0x7635('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x7635('0x2'));var rp=require(_0x7635('0x3'));var moment=require(_0x7635('0x4'));var BPromise=require(_0x7635('0x5'));var Mustache=require(_0x7635('0x6'));var util=require(_0x7635('0x7'));var path=require('path');var sox=require(_0x7635('0x8'));var csv=require(_0x7635('0x9'));var ejs=require(_0x7635('0xa'));var fs=require('fs');var fs_extra=require(_0x7635('0xb'));var _=require('lodash');var squel=require(_0x7635('0xc'));var crypto=require(_0x7635('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x7635('0xe'));var toCsv=require(_0x7635('0x9'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x7635('0xf'));var authService=require('../../components/auth/service');var qs=require(_0x7635('0x10'));var as=require(_0x7635('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x7635('0x12'))(_0x7635('0x13'));var utils=require(_0x7635('0x14'));var config=require(_0x7635('0x15'));var licenseUtil=require(_0x7635('0x16'));var db=require(_0x7635('0x17'))['db'];function respondWithStatusCode(_0x253654,_0xb3fab0){_0xb3fab0=_0xb3fab0||0xcc;return function(_0x226fbb){if(_0x226fbb){return _0x253654[_0x7635('0x18')](_0xb3fab0);}return _0x253654['status'](_0xb3fab0)[_0x7635('0x19')]();};}function respondWithResult(_0x153b7f,_0x4c7586){_0x4c7586=_0x4c7586||0xc8;return function(_0x2e413f){if(_0x2e413f){return _0x153b7f[_0x7635('0x1a')](_0x4c7586)['json'](_0x2e413f);}};}function respondWithFilteredResult(_0x19925e,_0x18fff5){return function(_0x1bbc5b){if(_0x1bbc5b){var _0xd59fb6=typeof _0x18fff5[_0x7635('0x1b')]===_0x7635('0x1c')&&typeof _0x18fff5['limit']===_0x7635('0x1c');var _0x42894a=_0x1bbc5b['count'];var _0x3d6c3a=_0xd59fb6?0x0:_0x18fff5['offset'];var _0x1108aa=_0xd59fb6?_0x1bbc5b[_0x7635('0x1d')]:_0x18fff5[_0x7635('0x1b')]+_0x18fff5['limit'];var _0x55d3f9;if(_0x1108aa>=_0x42894a){_0x1108aa=_0x42894a;_0x55d3f9=0xc8;}else{_0x55d3f9=0xce;}_0x19925e[_0x7635('0x1a')](_0x55d3f9);return _0x19925e[_0x7635('0x1e')](_0x7635('0x1f'),_0x3d6c3a+'-'+_0x1108aa+'/'+_0x42894a)['json'](_0x1bbc5b);}return null;};}function patchUpdates(_0x2a9810){return function(_0x3b047f){try{jsonpatch['apply'](_0x3b047f,_0x2a9810,!![]);}catch(_0x9edd){return BPromise[_0x7635('0x20')](_0x9edd);}return _0x3b047f[_0x7635('0x21')]();};}function saveUpdates(_0xb4d745,_0x427cbd){return function(_0x46ab0f){if(_0x46ab0f){return _0x46ab0f[_0x7635('0x22')](_0xb4d745)[_0x7635('0x23')](function(_0x111372){return _0x111372;});}return null;};}function removeEntity(_0x423230,_0x19504f){return function(_0x20a0d8){if(_0x20a0d8){return _0x20a0d8[_0x7635('0x24')]()['then'](function(){var _0x5e2052=_0x20a0d8[_0x7635('0x25')]({'plain':!![]});var _0x3e007f='Triggers';return db['UserProfileResource'][_0x7635('0x24')]({'where':{'type':_0x3e007f,'resourceId':_0x5e2052['id']}})['then'](function(){return _0x20a0d8;});})['then'](function(){_0x423230[_0x7635('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x2be12a,_0x2554cb){return function(_0x164a1e){if(!_0x164a1e){_0x2be12a[_0x7635('0x18')](0x194);}return _0x164a1e;};}function handleError(_0xf8b615,_0x3ab450){_0x3ab450=_0x3ab450||0x1f4;return function(_0x598759){logger['error'](_0x598759['stack']);if(_0x598759['name']){delete _0x598759[_0x7635('0x26')];}_0xf8b615['status'](_0x3ab450)[_0x7635('0x27')](_0x598759);};}exports['index']=function(_0x3803fb,_0x2a9085){var _0x24adb4={},_0x2f6bd7={},_0x243250={'count':0x0,'rows':[]};var _0x21624f=_[_0x7635('0x28')](db[_0x7635('0x29')][_0x7635('0x2a')],function(_0x248186){return{'name':_0x248186[_0x7635('0x2b')],'type':_0x248186[_0x7635('0x2c')]['key']};});_0x2f6bd7['model']=_[_0x7635('0x28')](_0x21624f,'name');_0x2f6bd7[_0x7635('0x2d')]=_[_0x7635('0x2e')](_0x3803fb['query']);_0x2f6bd7[_0x7635('0x2f')]=_[_0x7635('0x30')](_0x2f6bd7[_0x7635('0x31')],_0x2f6bd7['query']);_0x24adb4[_0x7635('0x32')]=_[_0x7635('0x30')](_0x2f6bd7['model'],qs[_0x7635('0x33')](_0x3803fb[_0x7635('0x2d')]['fields']));_0x24adb4[_0x7635('0x32')]=_0x24adb4[_0x7635('0x32')]['length']?_0x24adb4[_0x7635('0x32')]:_0x2f6bd7[_0x7635('0x31')];if(!_0x3803fb[_0x7635('0x2d')]['hasOwnProperty']('nolimit')){_0x24adb4[_0x7635('0x34')]=qs[_0x7635('0x34')](_0x3803fb['query'][_0x7635('0x34')]);_0x24adb4[_0x7635('0x1b')]=qs[_0x7635('0x1b')](_0x3803fb[_0x7635('0x2d')][_0x7635('0x1b')]);}_0x24adb4[_0x7635('0x35')]=qs[_0x7635('0x36')](_0x3803fb[_0x7635('0x2d')][_0x7635('0x36')]);_0x24adb4['where']=qs[_0x7635('0x2f')](_[_0x7635('0x37')](_0x3803fb[_0x7635('0x2d')],_0x2f6bd7[_0x7635('0x2f')]),_0x21624f);if(_0x3803fb[_0x7635('0x2d')][_0x7635('0x38')]){_0x24adb4[_0x7635('0x39')]=_['merge'](_0x24adb4[_0x7635('0x39')],{'$or':_[_0x7635('0x28')](_0x21624f,function(_0x100864){if(_0x100864[_0x7635('0x2c')]!==_0x7635('0x3a')){var _0x528a0d={};_0x528a0d[_0x100864['name']]={'$like':'%'+_0x3803fb[_0x7635('0x2d')]['filter']+'%'};return _0x528a0d;}})});}_0x24adb4=_[_0x7635('0x3b')]({},_0x24adb4,_0x3803fb[_0x7635('0x3c')]);var _0x140c9e={'where':_0x24adb4[_0x7635('0x39')]};return db[_0x7635('0x29')]['count'](_0x140c9e)[_0x7635('0x23')](function(_0x2f09db){_0x243250['count']=_0x2f09db;if(_0x3803fb[_0x7635('0x2d')][_0x7635('0x3d')]){_0x24adb4['include']=[{'all':!![]}];}return db[_0x7635('0x29')][_0x7635('0x3e')](_0x24adb4);})['then'](function(_0xf8e1ff){_0x243250[_0x7635('0x3f')]=_0xf8e1ff;return _0x243250;})[_0x7635('0x23')](respondWithFilteredResult(_0x2a9085,_0x24adb4))[_0x7635('0x40')](handleError(_0x2a9085,null));};exports[_0x7635('0x41')]=function(_0x255eb1,_0x1c98c9){var _0x4f3b81={'raw':![],'where':{'id':_0x255eb1[_0x7635('0x42')]['id']}},_0x3764f4={};_0x3764f4[_0x7635('0x31')]=_[_0x7635('0x2e')](db[_0x7635('0x29')][_0x7635('0x2a')]);_0x3764f4[_0x7635('0x2d')]=_[_0x7635('0x2e')](_0x255eb1['query']);_0x3764f4[_0x7635('0x2f')]=_['intersection'](_0x3764f4['model'],_0x3764f4['query']);_0x4f3b81[_0x7635('0x32')]=_['intersection'](_0x3764f4[_0x7635('0x31')],qs[_0x7635('0x33')](_0x255eb1[_0x7635('0x2d')][_0x7635('0x33')]));_0x4f3b81[_0x7635('0x32')]=_0x4f3b81['attributes'][_0x7635('0x43')]?_0x4f3b81[_0x7635('0x32')]:_0x3764f4['model'];if(_0x255eb1['query'][_0x7635('0x3d')]){_0x4f3b81[_0x7635('0x44')]=[{'all':!![]}];}_0x4f3b81=_[_0x7635('0x3b')]({},_0x4f3b81,_0x255eb1[_0x7635('0x3c')]);return db[_0x7635('0x29')]['find'](_0x4f3b81)[_0x7635('0x23')](handleEntityNotFound(_0x1c98c9,null))['then'](respondWithResult(_0x1c98c9,null))[_0x7635('0x40')](handleError(_0x1c98c9,null));};exports[_0x7635('0x45')]=function(_0xeb110c,_0x437c79){return db['Trigger'][_0x7635('0x45')](_0xeb110c[_0x7635('0x46')],{})[_0x7635('0x23')](function(_0x5e24ee){var _0x3902dd=_0xeb110c[_0x7635('0x47')][_0x7635('0x25')]({'plain':!![]});if(!_0x3902dd)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x3902dd[_0x7635('0x48')]==='user'){var _0x3ae218=_0x5e24ee[_0x7635('0x25')]({'plain':!![]});var _0x5d4e70=_0x7635('0x49');return db[_0x7635('0x4a')][_0x7635('0x4b')]({'where':{'name':_0x5d4e70,'userProfileId':_0x3902dd[_0x7635('0x4c')]},'raw':!![]})[_0x7635('0x23')](function(_0xac65ca){if(_0xac65ca&&_0xac65ca[_0x7635('0x4d')]===0x0){return db[_0x7635('0x4e')][_0x7635('0x45')]({'name':_0x3ae218[_0x7635('0x26')],'resourceId':_0x3ae218['id'],'type':_0xac65ca[_0x7635('0x26')],'sectionId':_0xac65ca['id']},{})[_0x7635('0x23')](function(){return _0x5e24ee;});}else{return _0x5e24ee;}})['catch'](function(_0x2257e4){logger[_0x7635('0x4f')](_0x7635('0x50'),_0x2257e4);throw _0x2257e4;});}return _0x5e24ee;})[_0x7635('0x23')](respondWithResult(_0x437c79,0xc9))[_0x7635('0x40')](handleError(_0x437c79,null));};exports[_0x7635('0x22')]=function(_0x23c245,_0x4631e1){if(_0x23c245[_0x7635('0x46')]['id']){delete _0x23c245[_0x7635('0x46')]['id'];}return db[_0x7635('0x29')]['find']({'where':{'id':_0x23c245[_0x7635('0x42')]['id']}})[_0x7635('0x23')](handleEntityNotFound(_0x4631e1,null))[_0x7635('0x23')](saveUpdates(_0x23c245[_0x7635('0x46')],null))[_0x7635('0x23')](respondWithResult(_0x4631e1,null))[_0x7635('0x40')](handleError(_0x4631e1,null));};exports[_0x7635('0x24')]=function(_0x335e56,_0x186218){return db['Trigger'][_0x7635('0x4b')]({'where':{'id':_0x335e56[_0x7635('0x42')]['id']}})['then'](handleEntityNotFound(_0x186218,null))['then'](removeEntity(_0x186218,null))[_0x7635('0x40')](handleError(_0x186218,null));};exports[_0x7635('0x51')]=function(_0x535e1,_0x1447da,_0x50f941){if(_0x535e1['body']['id']){delete _0x535e1[_0x7635('0x46')]['id'];}return db[_0x7635('0x29')]['find']({'where':{'id':_0x535e1[_0x7635('0x42')]['id']}})[_0x7635('0x23')](handleEntityNotFound(_0x1447da,null))[_0x7635('0x23')](function(_0x2db1ab){if(_0x2db1ab){_0x535e1[_0x7635('0x46')][_0x7635('0x52')]=_0x2db1ab['id'];return db[_0x7635('0x53')][_0x7635('0x45')](_0x535e1[_0x7635('0x46')]);}})[_0x7635('0x23')](respondWithResult(_0x1447da,null))[_0x7635('0x40')](handleError(_0x1447da,null));};exports[_0x7635('0x54')]=function(_0x1a10b6,_0x478767,_0x25cf21){if(_0x1a10b6[_0x7635('0x46')]['id']){delete _0x1a10b6[_0x7635('0x46')]['id'];}return db['Trigger'][_0x7635('0x4b')]({'where':{'id':_0x1a10b6[_0x7635('0x42')]['id']}})[_0x7635('0x23')](handleEntityNotFound(_0x478767,null))[_0x7635('0x23')](function(_0x1b652e){if(_0x1b652e){_0x1a10b6[_0x7635('0x46')]['TriggerAnyId']=_0x1b652e['id'];return db[_0x7635('0x53')]['create'](_0x1a10b6[_0x7635('0x46')]);}})[_0x7635('0x23')](respondWithResult(_0x478767,null))[_0x7635('0x40')](handleError(_0x478767,null));};exports[_0x7635('0x55')]=function(_0x554949,_0x259004,_0x1cff05){var _0x5199df={};var _0x42e8a7={};var _0x2c44dd;var _0x3f4890;return db[_0x7635('0x29')]['findOne']({'where':{'id':_0x554949[_0x7635('0x42')]['id']}})[_0x7635('0x23')](handleEntityNotFound(_0x259004,null))[_0x7635('0x23')](function(_0x1006f7){if(_0x1006f7){_0x2c44dd=_0x1006f7;_0x42e8a7['model']=_[_0x7635('0x2e')](db[_0x7635('0x53')][_0x7635('0x2a')]);_0x42e8a7[_0x7635('0x2d')]=_[_0x7635('0x2e')](_0x554949[_0x7635('0x2d')]);_0x42e8a7[_0x7635('0x2f')]=_[_0x7635('0x30')](_0x42e8a7['model'],_0x42e8a7[_0x7635('0x2d')]);_0x5199df['attributes']=_[_0x7635('0x30')](_0x42e8a7[_0x7635('0x31')],qs[_0x7635('0x33')](_0x554949[_0x7635('0x2d')][_0x7635('0x33')]));_0x5199df[_0x7635('0x32')]=_0x5199df[_0x7635('0x32')][_0x7635('0x43')]?_0x5199df[_0x7635('0x32')]:_0x42e8a7[_0x7635('0x31')];_0x5199df['order']=qs['sort'](_0x554949[_0x7635('0x2d')][_0x7635('0x36')]);_0x5199df[_0x7635('0x39')]=qs[_0x7635('0x2f')](_[_0x7635('0x37')](_0x554949[_0x7635('0x2d')],_0x42e8a7[_0x7635('0x2f')]));if(_0x554949[_0x7635('0x2d')][_0x7635('0x38')]){_0x5199df[_0x7635('0x39')]=_['merge'](_0x5199df['where'],{'$or':_['map'](_0x5199df[_0x7635('0x32')],function(_0x3f9951){var _0x78d947={};_0x78d947[_0x3f9951]={'$like':'%'+_0x554949[_0x7635('0x2d')][_0x7635('0x38')]+'%'};return _0x78d947;})});}_0x5199df=_[_0x7635('0x3b')]({},_0x5199df,_0x554949[_0x7635('0x3c')]);return _0x2c44dd[_0x7635('0x55')](_0x5199df);}})[_0x7635('0x23')](function(_0x1f449d){if(_0x1f449d){_0x3f4890=_0x1f449d['length'];if(!_0x554949[_0x7635('0x2d')]['hasOwnProperty'](_0x7635('0x56'))){_0x5199df[_0x7635('0x34')]=qs[_0x7635('0x34')](_0x554949[_0x7635('0x2d')][_0x7635('0x34')]);_0x5199df[_0x7635('0x1b')]=qs[_0x7635('0x1b')](_0x554949[_0x7635('0x2d')][_0x7635('0x1b')]);}return _0x2c44dd[_0x7635('0x55')](_0x5199df);}})[_0x7635('0x23')](function(_0x1c08fa){if(_0x1c08fa){return _0x1c08fa?{'count':_0x3f4890,'rows':_0x1c08fa}:null;}})[_0x7635('0x23')](respondWithResult(_0x259004,null))[_0x7635('0x40')](handleError(_0x259004,null));};exports['getAnyConditions']=function(_0x43194a,_0x5c1391,_0x4675d4){var _0x9a116a={};var _0x28dd41={};var _0x17e5aa;var _0x3c8b3c;return db[_0x7635('0x29')]['findOne']({'where':{'id':_0x43194a['params']['id']}})[_0x7635('0x23')](handleEntityNotFound(_0x5c1391,null))['then'](function(_0x5404e4){if(_0x5404e4){_0x17e5aa=_0x5404e4;_0x28dd41[_0x7635('0x31')]=_[_0x7635('0x2e')](db[_0x7635('0x53')][_0x7635('0x2a')]);_0x28dd41['query']=_[_0x7635('0x2e')](_0x43194a[_0x7635('0x2d')]);_0x28dd41[_0x7635('0x2f')]=_[_0x7635('0x30')](_0x28dd41[_0x7635('0x31')],_0x28dd41['query']);_0x9a116a[_0x7635('0x32')]=_[_0x7635('0x30')](_0x28dd41['model'],qs['fields'](_0x43194a[_0x7635('0x2d')][_0x7635('0x33')]));_0x9a116a[_0x7635('0x32')]=_0x9a116a[_0x7635('0x32')]['length']?_0x9a116a[_0x7635('0x32')]:_0x28dd41['model'];_0x9a116a['order']=qs['sort'](_0x43194a[_0x7635('0x2d')][_0x7635('0x36')]);_0x9a116a[_0x7635('0x39')]=qs[_0x7635('0x2f')](_['pick'](_0x43194a[_0x7635('0x2d')],_0x28dd41['filters']));if(_0x43194a[_0x7635('0x2d')][_0x7635('0x38')]){_0x9a116a[_0x7635('0x39')]=_[_0x7635('0x3b')](_0x9a116a['where'],{'$or':_[_0x7635('0x28')](_0x9a116a[_0x7635('0x32')],function(_0x16b0c5){var _0x3e6458={};_0x3e6458[_0x16b0c5]={'$like':'%'+_0x43194a[_0x7635('0x2d')][_0x7635('0x38')]+'%'};return _0x3e6458;})});}_0x9a116a=_['merge']({},_0x9a116a,_0x43194a['options']);return _0x17e5aa[_0x7635('0x57')](_0x9a116a);}})[_0x7635('0x23')](function(_0x9a7ebe){if(_0x9a7ebe){_0x3c8b3c=_0x9a7ebe[_0x7635('0x43')];if(!_0x43194a[_0x7635('0x2d')][_0x7635('0x58')](_0x7635('0x56'))){_0x9a116a[_0x7635('0x34')]=qs['limit'](_0x43194a[_0x7635('0x2d')]['limit']);_0x9a116a[_0x7635('0x1b')]=qs[_0x7635('0x1b')](_0x43194a[_0x7635('0x2d')][_0x7635('0x1b')]);}return _0x17e5aa[_0x7635('0x57')](_0x9a116a);}})[_0x7635('0x23')](function(_0x681acb){if(_0x681acb){return _0x681acb?{'count':_0x3c8b3c,'rows':_0x681acb}:null;}})[_0x7635('0x23')](respondWithResult(_0x5c1391,null))[_0x7635('0x40')](handleError(_0x5c1391,null));};exports[_0x7635('0x59')]=function(_0x115560,_0xc2b6b9,_0x2bb04b){if(_0x115560[_0x7635('0x46')]['id']){delete _0x115560['body']['id'];}return db[_0x7635('0x29')][_0x7635('0x4b')]({'where':{'id':_0x115560[_0x7635('0x42')]['id']}})['then'](handleEntityNotFound(_0xc2b6b9,null))['then'](function(_0x1ec6eb){if(_0x1ec6eb){_0x115560[_0x7635('0x46')][_0x7635('0x5a')]=_0x1ec6eb['id'];return db[_0x7635('0x5b')][_0x7635('0x45')](_0x115560[_0x7635('0x46')]);}})[_0x7635('0x23')](respondWithResult(_0xc2b6b9,null))[_0x7635('0x40')](handleError(_0xc2b6b9,null));};exports[_0x7635('0x5c')]=function(_0xcf47ac,_0x972927,_0x59ec0a){var _0xe78b6d={};var _0x23417e={};var _0x3a2c1c;var _0x39c28c;return db['Trigger'][_0x7635('0x5d')]({'where':{'id':_0xcf47ac[_0x7635('0x42')]['id']}})['then'](handleEntityNotFound(_0x972927,null))[_0x7635('0x23')](function(_0x417847){if(_0x417847){_0x3a2c1c=_0x417847;_0x23417e['model']=_[_0x7635('0x2e')](db[_0x7635('0x5b')][_0x7635('0x2a')]);_0x23417e[_0x7635('0x2d')]=_[_0x7635('0x2e')](_0xcf47ac[_0x7635('0x2d')]);_0x23417e[_0x7635('0x2f')]=_[_0x7635('0x30')](_0x23417e[_0x7635('0x31')],_0x23417e['query']);_0xe78b6d[_0x7635('0x32')]=_[_0x7635('0x30')](_0x23417e[_0x7635('0x31')],qs[_0x7635('0x33')](_0xcf47ac[_0x7635('0x2d')]['fields']));_0xe78b6d[_0x7635('0x32')]=_0xe78b6d[_0x7635('0x32')][_0x7635('0x43')]?_0xe78b6d['attributes']:_0x23417e[_0x7635('0x31')];_0xe78b6d[_0x7635('0x35')]=qs['sort'](_0xcf47ac[_0x7635('0x2d')][_0x7635('0x36')]);_0xe78b6d[_0x7635('0x39')]=qs['filters'](_[_0x7635('0x37')](_0xcf47ac['query'],_0x23417e['filters']));if(_0xcf47ac[_0x7635('0x2d')][_0x7635('0x38')]){_0xe78b6d[_0x7635('0x39')]=_[_0x7635('0x3b')](_0xe78b6d[_0x7635('0x39')],{'$or':_[_0x7635('0x28')](_0xe78b6d[_0x7635('0x32')],function(_0x5cdbc2){var _0x46ea7d={};_0x46ea7d[_0x5cdbc2]={'$like':'%'+_0xcf47ac[_0x7635('0x2d')]['filter']+'%'};return _0x46ea7d;})});}_0xe78b6d=_['merge']({},_0xe78b6d,_0xcf47ac[_0x7635('0x3c')]);return _0x3a2c1c[_0x7635('0x5c')](_0xe78b6d);}})[_0x7635('0x23')](function(_0x278ec3){if(_0x278ec3){_0x39c28c=_0x278ec3[_0x7635('0x43')];if(!_0xcf47ac[_0x7635('0x2d')][_0x7635('0x58')]('nolimit')){_0xe78b6d[_0x7635('0x34')]=qs[_0x7635('0x34')](_0xcf47ac[_0x7635('0x2d')][_0x7635('0x34')]);_0xe78b6d[_0x7635('0x1b')]=qs[_0x7635('0x1b')](_0xcf47ac[_0x7635('0x2d')][_0x7635('0x1b')]);}return _0x3a2c1c[_0x7635('0x5c')](_0xe78b6d);}})[_0x7635('0x23')](function(_0x30ea02){if(_0x30ea02){return _0x30ea02?{'count':_0x39c28c,'rows':_0x30ea02}:null;}})[_0x7635('0x23')](respondWithResult(_0x972927,null))[_0x7635('0x40')](handleError(_0x972927,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf675=['Trigger','tools_triggers','lodash','util','../../config/logger','moment','request-promise','path','rimraf','./trigger.attributes','exports'];(function(_0x4df919,_0x1ba6f5){var _0x4a5642=function(_0x3068cc){while(--_0x3068cc){_0x4df919['push'](_0x4df919['shift']());}};_0x4a5642(++_0x1ba6f5);}(_0xf675,0x199));var _0x5f67=function(_0x2d8f6c,_0x44db4c){_0x2d8f6c=_0x2d8f6c-0x0;var _0x3a00f6=_0xf675[_0x2d8f6c];return _0x3a00f6;};'use strict';var _=require(_0x5f67('0x0'));var util=require(_0x5f67('0x1'));var logger=require(_0x5f67('0x2'))('api');var moment=require(_0x5f67('0x3'));var BPromise=require('bluebird');var rp=require(_0x5f67('0x4'));var fs=require('fs');var path=require(_0x5f67('0x5'));var rimraf=require(_0x5f67('0x6'));var config=require('../../config/environment');var attributes=require(_0x5f67('0x7'));module[_0x5f67('0x8')]=function(_0x2919cc,_0xd4b727){return _0x2919cc['define'](_0x5f67('0x9'),attributes,{'tableName':_0x5f67('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x4a81=['../../config/logger','api','request-promise','rimraf','../../config/environment','define','tools_triggers','lodash','util'];(function(_0x1e4360,_0x930b9b){var _0x31e6b4=function(_0x49dd8e){while(--_0x49dd8e){_0x1e4360['push'](_0x1e4360['shift']());}};_0x31e6b4(++_0x930b9b);}(_0x4a81,0x1b7));var _0x14a8=function(_0x1bfca5,_0xe47f30){_0x1bfca5=_0x1bfca5-0x0;var _0x37dd8f=_0x4a81[_0x1bfca5];return _0x37dd8f;};'use strict';var _=require(_0x14a8('0x0'));var util=require(_0x14a8('0x1'));var logger=require(_0x14a8('0x2'))(_0x14a8('0x3'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0x14a8('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x14a8('0x5'));var config=require(_0x14a8('0x6'));var attributes=require('./trigger.attributes');module['exports']=function(_0x2cd6d2,_0x4aa19e){return _0x2cd6d2[_0x14a8('0x7')]('Trigger',attributes,{'tableName':_0x14a8('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe0a3=['../../mysqldb','../../config/utils','../../config/logger','jayson/promise','client','http','request','then','info','Trigger,\x20%s,\x20%s','request\x20sent','debug','Trigger,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','GetTrigger','Trigger','options','raw','where','include','map','model','attributes','ShowTrigger','lodash','util','moment','randomstring','ioredis'];(function(_0x571845,_0x2ca758){var _0x35e88e=function(_0xbca866){while(--_0xbca866){_0x571845['push'](_0x571845['shift']());}};_0x35e88e(++_0x2ca758);}(_0xe0a3,0x187));var _0x3e0a=function(_0x1b5a5a,_0x1c3b75){_0x1b5a5a=_0x1b5a5a-0x0;var _0x42b32d=_0xe0a3[_0x1b5a5a];return _0x42b32d;};'use strict';var _=require(_0x3e0a('0x0'));var util=require(_0x3e0a('0x1'));var moment=require(_0x3e0a('0x2'));var BPromise=require('bluebird');var rs=require(_0x3e0a('0x3'));var fs=require('fs');var Redis=require(_0x3e0a('0x4'));var db=require(_0x3e0a('0x5'))['db'];var utils=require(_0x3e0a('0x6'));var logger=require(_0x3e0a('0x7'))('rpc');var config=require('../../config/environment');var jayson=require(_0x3e0a('0x8'));var client=jayson[_0x3e0a('0x9')][_0x3e0a('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x586bab,_0x53c13a,_0x105fdc){return new BPromise(function(_0xbccfd4,_0x520603){return client[_0x3e0a('0xb')](_0x586bab,_0x105fdc)[_0x3e0a('0xc')](function(_0x329e81){logger[_0x3e0a('0xd')](_0x3e0a('0xe'),_0x53c13a,_0x3e0a('0xf'));logger[_0x3e0a('0x10')](_0x3e0a('0x11'),_0x53c13a,_0x3e0a('0xf'),JSON[_0x3e0a('0x12')](_0x329e81));if(_0x329e81[_0x3e0a('0x13')]){if(_0x329e81['error'][_0x3e0a('0x14')]===0x1f4){logger[_0x3e0a('0x13')](_0x3e0a('0xe'),_0x53c13a,_0x329e81[_0x3e0a('0x13')][_0x3e0a('0x15')]);return _0x520603(_0x329e81[_0x3e0a('0x13')][_0x3e0a('0x15')]);}logger[_0x3e0a('0x13')](_0x3e0a('0xe'),_0x53c13a,_0x329e81[_0x3e0a('0x13')]['message']);return _0xbccfd4(_0x329e81[_0x3e0a('0x13')][_0x3e0a('0x15')]);}else{logger[_0x3e0a('0xd')](_0x3e0a('0xe'),_0x53c13a,_0x3e0a('0xf'));_0xbccfd4(_0x329e81['result'][_0x3e0a('0x15')]);}})[_0x3e0a('0x16')](function(_0xa39a8d){logger['error'](_0x3e0a('0xe'),_0x53c13a,_0xa39a8d);_0x520603(_0xa39a8d);});});}exports[_0x3e0a('0x17')]=function(_0x3754cb){var _0x46a71e=this;return new Promise(function(_0x30310a,_0x103f3a){return db[_0x3e0a('0x18')]['findAll']({'raw':_0x3754cb[_0x3e0a('0x19')]?_0x3754cb[_0x3e0a('0x19')][_0x3e0a('0x1a')]===undefined?!![]:![]:!![],'where':_0x3754cb['options']?_0x3754cb['options'][_0x3e0a('0x1b')]||null:null,'attributes':_0x3754cb[_0x3e0a('0x19')]?_0x3754cb[_0x3e0a('0x19')]['attributes']||null:null,'limit':_0x3754cb[_0x3e0a('0x19')]?_0x3754cb[_0x3e0a('0x19')]['limit']||null:null,'include':_0x3754cb[_0x3e0a('0x19')]?_0x3754cb[_0x3e0a('0x19')][_0x3e0a('0x1c')]?_[_0x3e0a('0x1d')](_0x3754cb[_0x3e0a('0x19')][_0x3e0a('0x1c')],function(_0x57fab8){return{'model':db[_0x57fab8[_0x3e0a('0x1e')]],'as':_0x57fab8['as'],'attributes':_0x57fab8['attributes'],'include':_0x57fab8[_0x3e0a('0x1c')]?_['map'](_0x57fab8['include'],function(_0x44a06a){return{'model':db[_0x44a06a[_0x3e0a('0x1e')]],'as':_0x44a06a['as'],'attributes':_0x44a06a[_0x3e0a('0x1f')],'include':_0x44a06a[_0x3e0a('0x1c')]?_[_0x3e0a('0x1d')](_0x44a06a[_0x3e0a('0x1c')],function(_0x54dc5e){return{'model':db[_0x54dc5e[_0x3e0a('0x1e')]],'as':_0x54dc5e['as'],'attributes':_0x54dc5e[_0x3e0a('0x1f')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x2aefe2){logger[_0x3e0a('0xd')](_0x3e0a('0x17'),_0x3754cb);logger['debug']('GetTrigger',_0x3754cb,JSON[_0x3e0a('0x12')](_0x2aefe2));_0x30310a(_0x2aefe2);})[_0x3e0a('0x16')](function(_0x1feb32){logger['error'](_0x3e0a('0x17'),_0x1feb32[_0x3e0a('0x15')],_0x3754cb);_0x103f3a(_0x46a71e['error'](0x1f4,_0x1feb32[_0x3e0a('0x15')]));});});};exports['ShowTrigger']=function(_0x635cf){var _0x17204f=this;return new Promise(function(_0x1a8ae3,_0xa4d5b7){return db['Trigger']['find']({'raw':_0x635cf[_0x3e0a('0x19')]?_0x635cf['options'][_0x3e0a('0x1a')]===undefined?!![]:![]:!![],'where':_0x635cf[_0x3e0a('0x19')]?_0x635cf[_0x3e0a('0x19')][_0x3e0a('0x1b')]||null:null,'attributes':_0x635cf[_0x3e0a('0x19')]?_0x635cf[_0x3e0a('0x19')]['attributes']||null:null,'include':_0x635cf['options']?_0x635cf[_0x3e0a('0x19')]['include']?_[_0x3e0a('0x1d')](_0x635cf[_0x3e0a('0x19')][_0x3e0a('0x1c')],function(_0x3ff993){return{'model':db[_0x3ff993['model']],'as':_0x3ff993['as'],'attributes':_0x3ff993[_0x3e0a('0x1f')],'include':_0x3ff993['include']?_['map'](_0x3ff993['include'],function(_0x183cb5){return{'model':db[_0x183cb5[_0x3e0a('0x1e')]],'as':_0x183cb5['as'],'attributes':_0x183cb5[_0x3e0a('0x1f')],'include':_0x183cb5[_0x3e0a('0x1c')]?_['map'](_0x183cb5['include'],function(_0x414a8d){return{'model':db[_0x414a8d['model']],'as':_0x414a8d['as'],'attributes':_0x414a8d[_0x3e0a('0x1f')]};}):[]};}):[]};}):[]:[]})[_0x3e0a('0xc')](function(_0x262827){logger[_0x3e0a('0xd')]('ShowTrigger',_0x635cf);logger['debug']('ShowTrigger',_0x635cf,JSON[_0x3e0a('0x12')](_0x262827));_0x1a8ae3(_0x262827);})[_0x3e0a('0x16')](function(_0x3b92c8){logger[_0x3e0a('0x13')](_0x3e0a('0x20'),_0x3b92c8['message'],_0x635cf);_0xa4d5b7(_0x17204f[_0x3e0a('0x13')](0x1f4,_0x3b92c8['message']));});});};
\ No newline at end of file
+var _0xe38e=['findAll','options','where','attributes','limit','include','map','model','then','ShowTrigger','find','raw','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','http','request','Trigger,\x20%s,\x20%s','request\x20sent','debug','Trigger,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','catch','GetTrigger','Trigger'];(function(_0x6bd820,_0x2160dc){var _0x51aee9=function(_0x480bf6){while(--_0x480bf6){_0x6bd820['push'](_0x6bd820['shift']());}};_0x51aee9(++_0x2160dc);}(_0xe38e,0x1e0));var _0xee38=function(_0x92171a,_0x1d6dc0){_0x92171a=_0x92171a-0x0;var _0x4d4c91=_0xe38e[_0x92171a];return _0x4d4c91;};'use strict';var _=require(_0xee38('0x0'));var util=require('util');var moment=require(_0xee38('0x1'));var BPromise=require(_0xee38('0x2'));var rs=require(_0xee38('0x3'));var fs=require('fs');var Redis=require(_0xee38('0x4'));var db=require(_0xee38('0x5'))['db'];var utils=require(_0xee38('0x6'));var logger=require(_0xee38('0x7'))('rpc');var config=require(_0xee38('0x8'));var jayson=require(_0xee38('0x9'));var client=jayson['client'][_0xee38('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x10bd47,_0x5266fc,_0x247011){return new BPromise(function(_0x529145,_0x173318){return client[_0xee38('0xb')](_0x10bd47,_0x247011)['then'](function(_0x2e9c9c){logger['info'](_0xee38('0xc'),_0x5266fc,_0xee38('0xd'));logger[_0xee38('0xe')](_0xee38('0xf'),_0x5266fc,_0xee38('0xd'),JSON[_0xee38('0x10')](_0x2e9c9c));if(_0x2e9c9c['error']){if(_0x2e9c9c[_0xee38('0x11')][_0xee38('0x12')]===0x1f4){logger[_0xee38('0x11')](_0xee38('0xc'),_0x5266fc,_0x2e9c9c[_0xee38('0x11')][_0xee38('0x13')]);return _0x173318(_0x2e9c9c[_0xee38('0x11')][_0xee38('0x13')]);}logger[_0xee38('0x11')](_0xee38('0xc'),_0x5266fc,_0x2e9c9c[_0xee38('0x11')][_0xee38('0x13')]);return _0x529145(_0x2e9c9c['error']['message']);}else{logger[_0xee38('0x14')](_0xee38('0xc'),_0x5266fc,_0xee38('0xd'));_0x529145(_0x2e9c9c['result']['message']);}})[_0xee38('0x15')](function(_0x1c6a28){logger[_0xee38('0x11')](_0xee38('0xc'),_0x5266fc,_0x1c6a28);_0x173318(_0x1c6a28);});});}exports[_0xee38('0x16')]=function(_0x4707e7){var _0x137974=this;return new Promise(function(_0x40afb0,_0x5b2b04){return db[_0xee38('0x17')][_0xee38('0x18')]({'raw':_0x4707e7[_0xee38('0x19')]?_0x4707e7['options']['raw']===undefined?!![]:![]:!![],'where':_0x4707e7['options']?_0x4707e7[_0xee38('0x19')][_0xee38('0x1a')]||null:null,'attributes':_0x4707e7['options']?_0x4707e7[_0xee38('0x19')][_0xee38('0x1b')]||null:null,'limit':_0x4707e7[_0xee38('0x19')]?_0x4707e7[_0xee38('0x19')][_0xee38('0x1c')]||null:null,'include':_0x4707e7[_0xee38('0x19')]?_0x4707e7['options'][_0xee38('0x1d')]?_[_0xee38('0x1e')](_0x4707e7['options'][_0xee38('0x1d')],function(_0x44ad4d){return{'model':db[_0x44ad4d[_0xee38('0x1f')]],'as':_0x44ad4d['as'],'attributes':_0x44ad4d[_0xee38('0x1b')],'include':_0x44ad4d[_0xee38('0x1d')]?_[_0xee38('0x1e')](_0x44ad4d['include'],function(_0x8de0d2){return{'model':db[_0x8de0d2[_0xee38('0x1f')]],'as':_0x8de0d2['as'],'attributes':_0x8de0d2[_0xee38('0x1b')],'include':_0x8de0d2[_0xee38('0x1d')]?_[_0xee38('0x1e')](_0x8de0d2[_0xee38('0x1d')],function(_0x4f712c){return{'model':db[_0x4f712c['model']],'as':_0x4f712c['as'],'attributes':_0x4f712c[_0xee38('0x1b')]};}):[]};}):[]};}):[]:[]})[_0xee38('0x20')](function(_0x4398e6){logger[_0xee38('0x14')](_0xee38('0x16'),_0x4707e7);logger[_0xee38('0xe')](_0xee38('0x16'),_0x4707e7,JSON[_0xee38('0x10')](_0x4398e6));_0x40afb0(_0x4398e6);})['catch'](function(_0x27ca35){logger['error'](_0xee38('0x16'),_0x27ca35['message'],_0x4707e7);_0x5b2b04(_0x137974[_0xee38('0x11')](0x1f4,_0x27ca35[_0xee38('0x13')]));});});};exports[_0xee38('0x21')]=function(_0x27fbe4){var _0x7e7e42=this;return new Promise(function(_0x127a01,_0x3fb7ca){return db[_0xee38('0x17')][_0xee38('0x22')]({'raw':_0x27fbe4[_0xee38('0x19')]?_0x27fbe4[_0xee38('0x19')][_0xee38('0x23')]===undefined?!![]:![]:!![],'where':_0x27fbe4[_0xee38('0x19')]?_0x27fbe4[_0xee38('0x19')][_0xee38('0x1a')]||null:null,'attributes':_0x27fbe4[_0xee38('0x19')]?_0x27fbe4['options'][_0xee38('0x1b')]||null:null,'include':_0x27fbe4[_0xee38('0x19')]?_0x27fbe4[_0xee38('0x19')][_0xee38('0x1d')]?_[_0xee38('0x1e')](_0x27fbe4[_0xee38('0x19')][_0xee38('0x1d')],function(_0x3fb394){return{'model':db[_0x3fb394[_0xee38('0x1f')]],'as':_0x3fb394['as'],'attributes':_0x3fb394['attributes'],'include':_0x3fb394[_0xee38('0x1d')]?_['map'](_0x3fb394['include'],function(_0x6a41ed){return{'model':db[_0x6a41ed[_0xee38('0x1f')]],'as':_0x6a41ed['as'],'attributes':_0x6a41ed['attributes'],'include':_0x6a41ed[_0xee38('0x1d')]?_[_0xee38('0x1e')](_0x6a41ed[_0xee38('0x1d')],function(_0xdfd088){return{'model':db[_0xdfd088[_0xee38('0x1f')]],'as':_0xdfd088['as'],'attributes':_0xdfd088[_0xee38('0x1b')]};}):[]};}):[]};}):[]:[]})[_0xee38('0x20')](function(_0x56a163){logger[_0xee38('0x14')](_0xee38('0x21'),_0x27fbe4);logger[_0xee38('0xe')](_0xee38('0x21'),_0x27fbe4,JSON[_0xee38('0x10')](_0x56a163));_0x127a01(_0x56a163);})[_0xee38('0x15')](function(_0x13c2b0){logger[_0xee38('0x11')]('ShowTrigger',_0x13c2b0[_0xee38('0x13')],_0x27fbe4);_0x3fb7ca(_0x7e7e42['error'](0x1f4,_0x13c2b0[_0xee38('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2de6=['util','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','./trunk.controller','get','index','isAuthenticated','post','/:id/clone','clone','create','put','/:id','delete','exports','multer'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x2de6,0x14f));var _0x62de=function(_0x43e6e3,_0x5a9435){_0x43e6e3=_0x43e6e3-0x0;var _0x5d2888=_0x2de6[_0x43e6e3];return _0x5d2888;};'use strict';var multer=require(_0x62de('0x0'));var util=require(_0x62de('0x1'));var path=require(_0x62de('0x2'));var timeout=require(_0x62de('0x3'));var express=require(_0x62de('0x4'));var router=express[_0x62de('0x5')]();var fs_extra=require(_0x62de('0x6'));var auth=require('../../components/auth/service');var interaction=require(_0x62de('0x7'));var config=require(_0x62de('0x8'));var controller=require(_0x62de('0x9'));router[_0x62de('0xa')]('/',auth['isAuthenticated'](),controller[_0x62de('0xb')]);router['get']('/:id',auth[_0x62de('0xc')](),controller['show']);router[_0x62de('0xd')](_0x62de('0xe'),auth[_0x62de('0xc')](),controller[_0x62de('0xf')]);router[_0x62de('0xd')]('/',auth['isAuthenticated'](),controller[_0x62de('0x10')]);router[_0x62de('0x11')](_0x62de('0x12'),auth[_0x62de('0xc')](),controller['update']);router[_0x62de('0x13')](_0x62de('0x12'),auth[_0x62de('0xc')](),controller['destroy']);module[_0x62de('0x14')]=router;
\ No newline at end of file
+var _0x0ed2=['../../components/interaction/service','./trunk.controller','get','isAuthenticated','/:id','show','post','clone','put','update','delete','destroy','exports','multer','util','connect-timeout','express','fs-extra'];(function(_0x2c91e9,_0x2fb965){var _0x13f0ff=function(_0xb39edf){while(--_0xb39edf){_0x2c91e9['push'](_0x2c91e9['shift']());}};_0x13f0ff(++_0x2fb965);}(_0x0ed2,0x1e1));var _0x20ed=function(_0x219313,_0x1ef10b){_0x219313=_0x219313-0x0;var _0x4613ec=_0x0ed2[_0x219313];return _0x4613ec;};'use strict';var multer=require(_0x20ed('0x0'));var util=require(_0x20ed('0x1'));var path=require('path');var timeout=require(_0x20ed('0x2'));var express=require(_0x20ed('0x3'));var router=express['Router']();var fs_extra=require(_0x20ed('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0x20ed('0x5'));var config=require('../../config/environment');var controller=require(_0x20ed('0x6'));router[_0x20ed('0x7')]('/',auth[_0x20ed('0x8')](),controller['index']);router[_0x20ed('0x7')](_0x20ed('0x9'),auth[_0x20ed('0x8')](),controller[_0x20ed('0xa')]);router[_0x20ed('0xb')]('/:id/clone',auth[_0x20ed('0x8')](),controller[_0x20ed('0xc')]);router['post']('/',auth[_0x20ed('0x8')](),controller['create']);router[_0x20ed('0xd')](_0x20ed('0x9'),auth['isAuthenticated'](),controller[_0x20ed('0xe')]);router[_0x20ed('0xf')]('/:id',auth[_0x20ed('0x8')](),controller[_0x20ed('0x10')]);module[_0x20ed('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfde5=['nat','join','getDataValue','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22force_rport\x22,\x20\x22comedia\x22]','all','ulaw;alaw;gsm','allow','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22ulaw\x22,\x20\x22alaw\x22,\x20\x22alaw\x22]','port,invite','insecure','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22port\x22,\x20\x22invite\x22]','INTEGER','\x22\x22\x20<>','always','accept','refuse','originate','uac','uas','pai','fingerprint','active','actpass','dynamic','update,nonat','BOOLEAN','sequelize','STRING','name','ENUM','user','peer','friend','from-voip-provider','ALLOWED_NOT_SCREENED','ALLOWED_PASSED_SCREEN','ALLOWED_FAILED_SCREEN','ALLOWED','PROHIB_NOT_SCREENED','PROHIB_FAILED_SCREEN','PROHIB','udp','setDataValue','transport','split','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22udp\x22,\x20\x22tcp\x22]','rfc2833','info','shortinfo','inband','yes','nonat','update','outgoing','force_rport,comedia'];(function(_0x9729d7,_0x1b79a8){var _0x3c4ac6=function(_0x401ba6){while(--_0x401ba6){_0x9729d7['push'](_0x9729d7['shift']());}};_0x3c4ac6(++_0x1b79a8);}(_0xfde5,0x19b));var _0x5fde=function(_0x2e9e29,_0x2e25d3){_0x2e9e29=_0x2e9e29-0x0;var _0x52679c=_0xfde5[_0x2e9e29];return _0x52679c;};'use strict';var Sequelize=require(_0x5fde('0x0'));module['exports']={'name':{'type':Sequelize[_0x5fde('0x1')],'allowNull':![],'unique':_0x5fde('0x2'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'type':{'type':Sequelize[_0x5fde('0x3')]('friend',_0x5fde('0x4'),_0x5fde('0x5')),'allowNull':![],'defaultValue':_0x5fde('0x6')},'context':{'type':Sequelize[_0x5fde('0x1')],'allowNull':![],'defaultValue':_0x5fde('0x7')},'callingpres':{'type':Sequelize[_0x5fde('0x3')](_0x5fde('0x8'),_0x5fde('0x9'),_0x5fde('0xa'),_0x5fde('0xb'),_0x5fde('0xc'),'PROHIB_PASSED_SCREEN',_0x5fde('0xd'),_0x5fde('0xe'))},'deny':{'type':Sequelize[_0x5fde('0x1')]},'permit':{'type':Sequelize[_0x5fde('0x1')]},'secret':{'type':Sequelize[_0x5fde('0x1')]},'md5secret':{'type':Sequelize['STRING']},'remotesecret':{'type':Sequelize[_0x5fde('0x1')]},'transport':{'type':Sequelize[_0x5fde('0x1')],'defaultValue':_0x5fde('0xf'),'set':function(_0x55ed68){this[_0x5fde('0x10')](_0x5fde('0x11'),_0x55ed68?_0x55ed68['join'](','):null);},'get':function(){return this['getDataValue'](_0x5fde('0x11'))?this['getDataValue']('transport')[_0x5fde('0x12')](','):null;},'comment':_0x5fde('0x13')},'dtmfmode':{'type':Sequelize[_0x5fde('0x3')](_0x5fde('0x14'),_0x5fde('0x15'),_0x5fde('0x16'),_0x5fde('0x17'),'auto'),'defaultValue':_0x5fde('0x14')},'directmedia':{'type':Sequelize['ENUM'](_0x5fde('0x18'),'no',_0x5fde('0x19'),_0x5fde('0x1a'),_0x5fde('0x1b')),'defaultValue':'no'},'directrtpsetup':{'type':Sequelize[_0x5fde('0x3')]('yes','no'),'defaultValue':'no'},'directmediapermit':{'type':Sequelize['STRING']},'directmediadeny':{'type':Sequelize[_0x5fde('0x1')]},'nat':{'type':Sequelize[_0x5fde('0x1')],'defaultValue':_0x5fde('0x1c'),'set':function(_0x5a240b){this[_0x5fde('0x10')](_0x5fde('0x1d'),_0x5a240b?_0x5a240b[_0x5fde('0x1e')](','):null);},'get':function(){return this[_0x5fde('0x1f')](_0x5fde('0x1d'))?this[_0x5fde('0x1f')](_0x5fde('0x1d'))[_0x5fde('0x12')](','):null;},'comment':_0x5fde('0x20')},'callgroup':{'type':Sequelize['STRING']},'namedcallgroup':{'type':Sequelize[_0x5fde('0x1')]},'pickupgroup':{'type':Sequelize['STRING']},'namedpickupgroup':{'type':Sequelize['STRING']},'language':{'type':Sequelize[_0x5fde('0x1')],'defaultValue':'en'},'tonezone':{'type':Sequelize[_0x5fde('0x1')],'allowNull':!![]},'disallow':{'type':Sequelize[_0x5fde('0x1')],'defaultValue':_0x5fde('0x21')},'allow':{'type':Sequelize[_0x5fde('0x1')],'allowNull':![],'defaultValue':_0x5fde('0x22'),'set':function(_0x5a5ab9){this[_0x5fde('0x10')](_0x5fde('0x23'),_0x5a5ab9?_0x5a5ab9[_0x5fde('0x1e')](';'):'ulaw;alaw;gsm');},'get':function(){return this['getDataValue'](_0x5fde('0x23'))?this[_0x5fde('0x1f')](_0x5fde('0x23'))[_0x5fde('0x12')](';'):null;},'comment':_0x5fde('0x24')},'autoframing':{'type':Sequelize[_0x5fde('0x3')]('yes','no')},'insecure':{'type':Sequelize[_0x5fde('0x1')],'defaultValue':_0x5fde('0x25'),'set':function(_0x38d679){this[_0x5fde('0x10')](_0x5fde('0x26'),_0x38d679?_0x38d679[_0x5fde('0x1e')](','):null);},'get':function(){return this['getDataValue'](_0x5fde('0x26'))?this[_0x5fde('0x1f')](_0x5fde('0x26'))[_0x5fde('0x12')](','):null;},'comment':_0x5fde('0x27')},'trustrpid':{'type':Sequelize[_0x5fde('0x3')]('yes','no'),'defaultValue':'no'},'trust_id_outbound':{'type':Sequelize[_0x5fde('0x3')]('yes','no'),'defaultValue':'no'},'progressinband':{'type':Sequelize['ENUM'](_0x5fde('0x18'),'no','never')},'promiscredir':{'type':Sequelize[_0x5fde('0x3')](_0x5fde('0x18'),'no')},'useclientcode':{'type':Sequelize['ENUM']('yes','no')},'accountcode':{'type':Sequelize[_0x5fde('0x28')](0xb)},'setvar':{'type':Sequelize[_0x5fde('0x1')]},'callerid':{'type':Sequelize[_0x5fde('0x1')],'defaultValue':_0x5fde('0x29')},'amaflags':{'type':Sequelize[_0x5fde('0x1')]},'callcounter':{'type':Sequelize[_0x5fde('0x3')](_0x5fde('0x18'),'no'),'defaultValue':'yes'},'busylevel':{'type':Sequelize['INTEGER'](0xb)},'allowoverlap':{'type':Sequelize[_0x5fde('0x3')](_0x5fde('0x18'),'no')},'allowsubscribe':{'type':Sequelize[_0x5fde('0x3')](_0x5fde('0x18'),'no')},'allowtransfer':{'type':Sequelize[_0x5fde('0x3')](_0x5fde('0x18'),'no')},'ignoresdpversion':{'type':Sequelize[_0x5fde('0x3')](_0x5fde('0x18'),'no')},'subscribecontext':{'type':Sequelize['STRING']},'template':{'type':Sequelize[_0x5fde('0x1')]},'videosupport':{'type':Sequelize[_0x5fde('0x3')](_0x5fde('0x18'),'no',_0x5fde('0x2a')),'defaultValue':'no'},'maxcallbitrate':{'type':Sequelize['INTEGER'](0xb)},'rfc2833compensate':{'type':Sequelize[_0x5fde('0x3')](_0x5fde('0x18'),'no')},'mailbox':{'type':Sequelize[_0x5fde('0x1')]},'session_timers':{'type':Sequelize[_0x5fde('0x3')](_0x5fde('0x2b'),_0x5fde('0x2c'),_0x5fde('0x2d'))},'session_expires':{'type':Sequelize[_0x5fde('0x28')](0xb)},'session_minse':{'type':Sequelize[_0x5fde('0x28')](0xb)},'session_refresher':{'type':Sequelize[_0x5fde('0x3')](_0x5fde('0x2e'),_0x5fde('0x2f')),'defaultValue':'uas'},'t38pt_usertpsource':{'type':Sequelize['STRING']},'regexten':{'type':Sequelize['STRING']},'fromdomain':{'type':Sequelize[_0x5fde('0x1')]},'fromuser':{'type':Sequelize[_0x5fde('0x1')]},'port':{'type':Sequelize['INTEGER'](0x5)},'qualify':{'type':Sequelize[_0x5fde('0x3')](_0x5fde('0x18'),'no'),'defaultValue':'yes'},'keepalive':{'type':Sequelize['INTEGER'](0xb)},'defaultip':{'type':Sequelize['STRING']},'defaultuser':{'type':Sequelize[_0x5fde('0x1')]},'rtptimeout':{'type':Sequelize[_0x5fde('0x28')](0xb)},'rtpholdtimeout':{'type':Sequelize[_0x5fde('0x28')](0xb)},'rtpkeepalive':{'type':Sequelize[_0x5fde('0x28')](0xb)},'sendrpid':{'type':Sequelize['ENUM'](_0x5fde('0x18'),'no',_0x5fde('0x30')),'defaultValue':'no'},'outboundproxy':{'type':Sequelize[_0x5fde('0x1')]},'callbackextension':{'type':Sequelize[_0x5fde('0x1')]},'timert1':{'type':Sequelize[_0x5fde('0x28')](0xb)},'timerb':{'type':Sequelize[_0x5fde('0x28')](0xb)},'qualifyfreq':{'type':Sequelize[_0x5fde('0x28')](0xb)},'contactpermit':{'type':Sequelize[_0x5fde('0x1')]},'contactdeny':{'type':Sequelize[_0x5fde('0x1')]},'contactacl':{'type':Sequelize['STRING']},'unsolicited_mailbox':{'type':Sequelize[_0x5fde('0x1')]},'use_q850_reason':{'type':Sequelize['STRING']},'maxforwards':{'type':Sequelize[_0x5fde('0x28')](0xb)},'encryption':{'type':Sequelize[_0x5fde('0x3')](_0x5fde('0x18'),'no'),'defaultValue':'no'},'avpf':{'type':Sequelize[_0x5fde('0x3')](_0x5fde('0x18'),'no')},'force_avp':{'type':Sequelize[_0x5fde('0x3')](_0x5fde('0x18'),'no')},'icesupport':{'type':Sequelize[_0x5fde('0x3')]('yes','no')},'dtlsenable':{'type':Sequelize[_0x5fde('0x3')](_0x5fde('0x18'),'no')},'dtlsverify':{'type':Sequelize[_0x5fde('0x3')](_0x5fde('0x18'),'no',_0x5fde('0x31'),'certificate')},'dtlsrekey':{'type':Sequelize[_0x5fde('0x28')](0xb)},'dtlscertfile':{'type':Sequelize[_0x5fde('0x1')]},'dtlsprivatekey':{'type':Sequelize[_0x5fde('0x1')]},'dtlscipher':{'type':Sequelize[_0x5fde('0x1')]},'dtlscafile':{'type':Sequelize['STRING']},'dtlscapath':{'type':Sequelize['STRING']},'dtlssetup':{'type':Sequelize[_0x5fde('0x3')](_0x5fde('0x32'),'passive',_0x5fde('0x33')),'allowNull':!![]},'dtlsfingerprint':{'type':Sequelize[_0x5fde('0x1')]},'usereqphone':{'type':Sequelize[_0x5fde('0x3')](_0x5fde('0x18'),'no'),'defaultValue':'no'},'recordonfeature':{'type':Sequelize[_0x5fde('0x1')]},'recordofffeature':{'type':Sequelize['STRING']},'call_limit':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0x3e8},'registertrying':{'type':Sequelize[_0x5fde('0x3')](_0x5fde('0x18'),'no')},'subscribemwi':{'type':Sequelize['ENUM'](_0x5fde('0x18'),'no')},'vmexten':{'type':Sequelize['STRING']},'mohinterpret':{'type':Sequelize['STRING']},'mohsuggest':{'type':Sequelize[_0x5fde('0x1')]},'parkinglot':{'type':Sequelize[_0x5fde('0x1')]},'description':{'type':Sequelize[_0x5fde('0x1')]},'host':{'type':Sequelize[_0x5fde('0x1')],'defaultValue':_0x5fde('0x34')},'canreinvite':{'type':Sequelize[_0x5fde('0x3')](_0x5fde('0x18'),'no',_0x5fde('0x19'),_0x5fde('0x1a'),_0x5fde('0x35')),'defaultValue':'no'},'registry':{'type':Sequelize[_0x5fde('0x1')]},'otherFields':{'type':Sequelize['STRING']},'active':{'type':Sequelize[_0x5fde('0x36')],'allowNull':![],'defaultValue':!![]},'t38pt_udptl':{'type':Sequelize['STRING'],'defaultValue':'no'}};
\ No newline at end of file
+var _0xa586=['user','peer','friend','from-voip-provider','ALLOWED_NOT_SCREENED','ALLOWED_FAILED_SCREEN','ALLOWED','PROHIB_NOT_SCREENED','PROHIB_PASSED_SCREEN','PROHIB_FAILED_SCREEN','udp','setDataValue','transport','getDataValue','split','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22udp\x22,\x20\x22tcp\x22]','rfc2833','info','shortinfo','yes','nonat','outgoing','force_rport,comedia','nat','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22force_rport\x22,\x20\x22comedia\x22]','all','ulaw;alaw;gsm','allow','join','port,invite','insecure','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22port\x22,\x20\x22invite\x22]','never','INTEGER','\x22\x22\x20<>','always','refuse','uac','uas','fingerprint','active','passive','actpass','dynamic','update,nonat','BOOLEAN','sequelize','exports','STRING','name','ENUM'];(function(_0x41cff5,_0x1ca091){var _0x3704ce=function(_0x5422ed){while(--_0x5422ed){_0x41cff5['push'](_0x41cff5['shift']());}};_0x3704ce(++_0x1ca091);}(_0xa586,0x160));var _0x6a58=function(_0x34eb31,_0x8f0f70){_0x34eb31=_0x34eb31-0x0;var _0x254994=_0xa586[_0x34eb31];return _0x254994;};'use strict';var Sequelize=require(_0x6a58('0x0'));module[_0x6a58('0x1')]={'name':{'type':Sequelize[_0x6a58('0x2')],'allowNull':![],'unique':_0x6a58('0x3'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'type':{'type':Sequelize[_0x6a58('0x4')]('friend',_0x6a58('0x5'),_0x6a58('0x6')),'allowNull':![],'defaultValue':_0x6a58('0x7')},'context':{'type':Sequelize[_0x6a58('0x2')],'allowNull':![],'defaultValue':_0x6a58('0x8')},'callingpres':{'type':Sequelize['ENUM'](_0x6a58('0x9'),'ALLOWED_PASSED_SCREEN',_0x6a58('0xa'),_0x6a58('0xb'),_0x6a58('0xc'),_0x6a58('0xd'),_0x6a58('0xe'),'PROHIB')},'deny':{'type':Sequelize[_0x6a58('0x2')]},'permit':{'type':Sequelize[_0x6a58('0x2')]},'secret':{'type':Sequelize[_0x6a58('0x2')]},'md5secret':{'type':Sequelize['STRING']},'remotesecret':{'type':Sequelize['STRING']},'transport':{'type':Sequelize[_0x6a58('0x2')],'defaultValue':_0x6a58('0xf'),'set':function(_0x16d414){this[_0x6a58('0x10')](_0x6a58('0x11'),_0x16d414?_0x16d414['join'](','):null);},'get':function(){return this['getDataValue'](_0x6a58('0x11'))?this[_0x6a58('0x12')](_0x6a58('0x11'))[_0x6a58('0x13')](','):null;},'comment':_0x6a58('0x14')},'dtmfmode':{'type':Sequelize[_0x6a58('0x4')](_0x6a58('0x15'),_0x6a58('0x16'),_0x6a58('0x17'),'inband','auto'),'defaultValue':_0x6a58('0x15')},'directmedia':{'type':Sequelize[_0x6a58('0x4')](_0x6a58('0x18'),'no',_0x6a58('0x19'),'update',_0x6a58('0x1a')),'defaultValue':'no'},'directrtpsetup':{'type':Sequelize[_0x6a58('0x4')](_0x6a58('0x18'),'no'),'defaultValue':'no'},'directmediapermit':{'type':Sequelize['STRING']},'directmediadeny':{'type':Sequelize[_0x6a58('0x2')]},'nat':{'type':Sequelize[_0x6a58('0x2')],'defaultValue':_0x6a58('0x1b'),'set':function(_0x5bc4c8){this['setDataValue']('nat',_0x5bc4c8?_0x5bc4c8['join'](','):null);},'get':function(){return this[_0x6a58('0x12')](_0x6a58('0x1c'))?this[_0x6a58('0x12')](_0x6a58('0x1c'))[_0x6a58('0x13')](','):null;},'comment':_0x6a58('0x1d')},'callgroup':{'type':Sequelize[_0x6a58('0x2')]},'namedcallgroup':{'type':Sequelize['STRING']},'pickupgroup':{'type':Sequelize[_0x6a58('0x2')]},'namedpickupgroup':{'type':Sequelize[_0x6a58('0x2')]},'language':{'type':Sequelize['STRING'],'defaultValue':'en'},'tonezone':{'type':Sequelize['STRING'],'allowNull':!![]},'disallow':{'type':Sequelize[_0x6a58('0x2')],'defaultValue':_0x6a58('0x1e')},'allow':{'type':Sequelize[_0x6a58('0x2')],'allowNull':![],'defaultValue':_0x6a58('0x1f'),'set':function(_0x725da6){this[_0x6a58('0x10')](_0x6a58('0x20'),_0x725da6?_0x725da6[_0x6a58('0x21')](';'):_0x6a58('0x1f'));},'get':function(){return this['getDataValue'](_0x6a58('0x20'))?this[_0x6a58('0x12')](_0x6a58('0x20'))[_0x6a58('0x13')](';'):null;},'comment':'String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22ulaw\x22,\x20\x22alaw\x22,\x20\x22alaw\x22]'},'autoframing':{'type':Sequelize[_0x6a58('0x4')](_0x6a58('0x18'),'no')},'insecure':{'type':Sequelize['STRING'],'defaultValue':_0x6a58('0x22'),'set':function(_0x38e946){this[_0x6a58('0x10')](_0x6a58('0x23'),_0x38e946?_0x38e946['join'](','):null);},'get':function(){return this[_0x6a58('0x12')](_0x6a58('0x23'))?this['getDataValue'](_0x6a58('0x23'))[_0x6a58('0x13')](','):null;},'comment':_0x6a58('0x24')},'trustrpid':{'type':Sequelize[_0x6a58('0x4')](_0x6a58('0x18'),'no'),'defaultValue':'no'},'trust_id_outbound':{'type':Sequelize[_0x6a58('0x4')](_0x6a58('0x18'),'no'),'defaultValue':'no'},'progressinband':{'type':Sequelize[_0x6a58('0x4')](_0x6a58('0x18'),'no',_0x6a58('0x25'))},'promiscredir':{'type':Sequelize['ENUM'](_0x6a58('0x18'),'no')},'useclientcode':{'type':Sequelize[_0x6a58('0x4')](_0x6a58('0x18'),'no')},'accountcode':{'type':Sequelize[_0x6a58('0x26')](0xb)},'setvar':{'type':Sequelize[_0x6a58('0x2')]},'callerid':{'type':Sequelize[_0x6a58('0x2')],'defaultValue':_0x6a58('0x27')},'amaflags':{'type':Sequelize[_0x6a58('0x2')]},'callcounter':{'type':Sequelize[_0x6a58('0x4')](_0x6a58('0x18'),'no'),'defaultValue':'yes'},'busylevel':{'type':Sequelize[_0x6a58('0x26')](0xb)},'allowoverlap':{'type':Sequelize[_0x6a58('0x4')](_0x6a58('0x18'),'no')},'allowsubscribe':{'type':Sequelize['ENUM'](_0x6a58('0x18'),'no')},'allowtransfer':{'type':Sequelize[_0x6a58('0x4')]('yes','no')},'ignoresdpversion':{'type':Sequelize[_0x6a58('0x4')](_0x6a58('0x18'),'no')},'subscribecontext':{'type':Sequelize[_0x6a58('0x2')]},'template':{'type':Sequelize['STRING']},'videosupport':{'type':Sequelize['ENUM']('yes','no',_0x6a58('0x28')),'defaultValue':'no'},'maxcallbitrate':{'type':Sequelize[_0x6a58('0x26')](0xb)},'rfc2833compensate':{'type':Sequelize[_0x6a58('0x4')](_0x6a58('0x18'),'no')},'mailbox':{'type':Sequelize['STRING']},'session_timers':{'type':Sequelize[_0x6a58('0x4')]('accept',_0x6a58('0x29'),'originate')},'session_expires':{'type':Sequelize[_0x6a58('0x26')](0xb)},'session_minse':{'type':Sequelize[_0x6a58('0x26')](0xb)},'session_refresher':{'type':Sequelize[_0x6a58('0x4')](_0x6a58('0x2a'),_0x6a58('0x2b')),'defaultValue':'uas'},'t38pt_usertpsource':{'type':Sequelize[_0x6a58('0x2')]},'regexten':{'type':Sequelize[_0x6a58('0x2')]},'fromdomain':{'type':Sequelize[_0x6a58('0x2')]},'fromuser':{'type':Sequelize[_0x6a58('0x2')]},'port':{'type':Sequelize[_0x6a58('0x26')](0x5)},'qualify':{'type':Sequelize['ENUM']('yes','no'),'defaultValue':'yes'},'keepalive':{'type':Sequelize[_0x6a58('0x26')](0xb)},'defaultip':{'type':Sequelize[_0x6a58('0x2')]},'defaultuser':{'type':Sequelize[_0x6a58('0x2')]},'rtptimeout':{'type':Sequelize[_0x6a58('0x26')](0xb)},'rtpholdtimeout':{'type':Sequelize['INTEGER'](0xb)},'rtpkeepalive':{'type':Sequelize[_0x6a58('0x26')](0xb)},'sendrpid':{'type':Sequelize[_0x6a58('0x4')](_0x6a58('0x18'),'no','pai'),'defaultValue':'no'},'outboundproxy':{'type':Sequelize[_0x6a58('0x2')]},'callbackextension':{'type':Sequelize[_0x6a58('0x2')]},'timert1':{'type':Sequelize['INTEGER'](0xb)},'timerb':{'type':Sequelize[_0x6a58('0x26')](0xb)},'qualifyfreq':{'type':Sequelize[_0x6a58('0x26')](0xb)},'contactpermit':{'type':Sequelize[_0x6a58('0x2')]},'contactdeny':{'type':Sequelize[_0x6a58('0x2')]},'contactacl':{'type':Sequelize[_0x6a58('0x2')]},'unsolicited_mailbox':{'type':Sequelize[_0x6a58('0x2')]},'use_q850_reason':{'type':Sequelize[_0x6a58('0x2')]},'maxforwards':{'type':Sequelize['INTEGER'](0xb)},'encryption':{'type':Sequelize[_0x6a58('0x4')](_0x6a58('0x18'),'no'),'defaultValue':'no'},'avpf':{'type':Sequelize[_0x6a58('0x4')](_0x6a58('0x18'),'no')},'force_avp':{'type':Sequelize[_0x6a58('0x4')](_0x6a58('0x18'),'no')},'icesupport':{'type':Sequelize[_0x6a58('0x4')](_0x6a58('0x18'),'no')},'dtlsenable':{'type':Sequelize[_0x6a58('0x4')]('yes','no')},'dtlsverify':{'type':Sequelize[_0x6a58('0x4')](_0x6a58('0x18'),'no',_0x6a58('0x2c'),'certificate')},'dtlsrekey':{'type':Sequelize[_0x6a58('0x26')](0xb)},'dtlscertfile':{'type':Sequelize['STRING']},'dtlsprivatekey':{'type':Sequelize[_0x6a58('0x2')]},'dtlscipher':{'type':Sequelize[_0x6a58('0x2')]},'dtlscafile':{'type':Sequelize['STRING']},'dtlscapath':{'type':Sequelize[_0x6a58('0x2')]},'dtlssetup':{'type':Sequelize['ENUM'](_0x6a58('0x2d'),_0x6a58('0x2e'),_0x6a58('0x2f')),'allowNull':!![]},'dtlsfingerprint':{'type':Sequelize[_0x6a58('0x2')]},'usereqphone':{'type':Sequelize['ENUM'](_0x6a58('0x18'),'no'),'defaultValue':'no'},'recordonfeature':{'type':Sequelize['STRING']},'recordofffeature':{'type':Sequelize['STRING']},'call_limit':{'type':Sequelize[_0x6a58('0x26')](0xb),'defaultValue':0x3e8},'registertrying':{'type':Sequelize['ENUM']('yes','no')},'subscribemwi':{'type':Sequelize[_0x6a58('0x4')](_0x6a58('0x18'),'no')},'vmexten':{'type':Sequelize['STRING']},'mohinterpret':{'type':Sequelize[_0x6a58('0x2')]},'mohsuggest':{'type':Sequelize[_0x6a58('0x2')]},'parkinglot':{'type':Sequelize[_0x6a58('0x2')]},'description':{'type':Sequelize[_0x6a58('0x2')]},'host':{'type':Sequelize[_0x6a58('0x2')],'defaultValue':_0x6a58('0x30')},'canreinvite':{'type':Sequelize[_0x6a58('0x4')](_0x6a58('0x18'),'no','nonat','update',_0x6a58('0x31')),'defaultValue':'no'},'registry':{'type':Sequelize[_0x6a58('0x2')]},'otherFields':{'type':Sequelize[_0x6a58('0x2')]},'active':{'type':Sequelize[_0x6a58('0x32')],'allowNull':![],'defaultValue':!![]},'t38pt_udptl':{'type':Sequelize[_0x6a58('0x2')],'defaultValue':'no'}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x425d=['readFileSync','root','server/files/templates/registry.ejs','render','writeFileSync','/etc/asterisk/sip_xcally_registers.conf','Reload','chan_sip.so','UserProfileSection','userProfileId','/etc/asterisk/sip_xcally_trunks.conf','destroy','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','client','http','request','then','info','request\x20sent','debug','Trunk,\x20%s,\x20%s,\x20%s','error','code','message','Trunk,\x20%s,\x20%s','result','catch','status','end','json','undefined','limit','count','offset','set','Content-Range','apply','reject','save','update','get','Trunks','UserProfileResource','stack','name','send','index','map','Trunk','rawAttributes','key','model','query','keys','intersection','fields','attributes','length','hasOwnProperty','nolimit','where','pick','filters','filter','merge','type','VIRTUAL','options','includeAll','include','findAll','rows','show','params','clone','find','omit','updatedAt','body','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','join','server/files/templates/trunk.ejs','utf8'];(function(_0x155152,_0x2447a5){var _0x20c068=function(_0x4a5619){while(--_0x4a5619){_0x155152['push'](_0x155152['shift']());}};_0x20c068(++_0x2447a5);}(_0x425d,0x1e0));var _0xd425=function(_0x528fd5,_0x116c22){_0x528fd5=_0x528fd5-0x0;var _0x43f1f8=_0x425d[_0x528fd5];return _0x43f1f8;};'use strict';var emlformat=require(_0xd425('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xd425('0x1'));var jsonpatch=require(_0xd425('0x2'));var rp=require(_0xd425('0x3'));var moment=require(_0xd425('0x4'));var BPromise=require(_0xd425('0x5'));var Mustache=require(_0xd425('0x6'));var util=require(_0xd425('0x7'));var path=require('path');var sox=require(_0xd425('0x8'));var csv=require(_0xd425('0x9'));var ejs=require(_0xd425('0xa'));var fs=require('fs');var fs_extra=require(_0xd425('0xb'));var _=require(_0xd425('0xc'));var squel=require(_0xd425('0xd'));var crypto=require('crypto');var jsforce=require(_0xd425('0xe'));var deskjs=require(_0xd425('0xf'));var toCsv=require(_0xd425('0x9'));var querystring=require(_0xd425('0x10'));var Papa=require(_0xd425('0x11'));var Redis=require(_0xd425('0x12'));var authService=require(_0xd425('0x13'));var qs=require(_0xd425('0x14'));var as=require(_0xd425('0x15'));var hardwareService=require(_0xd425('0x16'));var logger=require(_0xd425('0x17'))(_0xd425('0x18'));var utils=require(_0xd425('0x19'));var config=require(_0xd425('0x1a'));var licenseUtil=require(_0xd425('0x1b'));var db=require(_0xd425('0x1c'))['db'];var jayson=require(_0xd425('0x1d'));var client=jayson[_0xd425('0x1e')][_0xd425('0x1f')]({'port':0x232a});function respondWithRpcPromise(_0x18eafb,_0x51263f,_0x27318c,_0x17a498){return new BPromise(function(_0x336dc3,_0x5d3d60){var _0x309263=_0x17a498||client;return _0x309263[_0xd425('0x20')](_0x18eafb,_0x27318c)[_0xd425('0x21')](function(_0x41f34d){logger[_0xd425('0x22')]('Trunk,\x20%s,\x20%s',_0x51263f,_0xd425('0x23'));logger[_0xd425('0x24')](_0xd425('0x25'),_0x51263f,_0xd425('0x23'),JSON['stringify'](_0x41f34d));if(_0x41f34d[_0xd425('0x26')]){if(_0x41f34d[_0xd425('0x26')][_0xd425('0x27')]===0x1f4){logger[_0xd425('0x26')]('Trunk,\x20%s,\x20%s',_0x51263f,_0x41f34d['error']['message']);return _0x5d3d60(_0x41f34d['error'][_0xd425('0x28')]);}logger[_0xd425('0x26')](_0xd425('0x29'),_0x51263f,_0x41f34d['error'][_0xd425('0x28')]);return _0x336dc3(_0x41f34d[_0xd425('0x26')]['message']);}else{logger[_0xd425('0x22')](_0xd425('0x29'),_0x51263f,_0xd425('0x23'));_0x336dc3(_0x41f34d[_0xd425('0x2a')][_0xd425('0x28')]);}})[_0xd425('0x2b')](function(_0x2480a0){logger[_0xd425('0x26')](_0xd425('0x29'),_0x51263f,_0x2480a0);_0x5d3d60(_0x2480a0);});});}function respondWithStatusCode(_0x2b030b,_0x151ad9){_0x151ad9=_0x151ad9||0xcc;return function(_0x40e84b){if(_0x40e84b){return _0x2b030b['sendStatus'](_0x151ad9);}return _0x2b030b[_0xd425('0x2c')](_0x151ad9)[_0xd425('0x2d')]();};}function respondWithResult(_0x398985,_0x1908a5){_0x1908a5=_0x1908a5||0xc8;return function(_0x2afcdb){if(_0x2afcdb){return _0x398985[_0xd425('0x2c')](_0x1908a5)[_0xd425('0x2e')](_0x2afcdb);}};}function respondWithFilteredResult(_0x577e4b,_0x12f951){return function(_0x177de2){if(_0x177de2){var _0x1d8861=typeof _0x12f951['offset']===_0xd425('0x2f')&&typeof _0x12f951[_0xd425('0x30')]===_0xd425('0x2f');var _0x999fb9=_0x177de2[_0xd425('0x31')];var _0x185d7e=_0x1d8861?0x0:_0x12f951[_0xd425('0x32')];var _0x37b63c=_0x1d8861?_0x177de2[_0xd425('0x31')]:_0x12f951[_0xd425('0x32')]+_0x12f951['limit'];var _0x471e3e;if(_0x37b63c>=_0x999fb9){_0x37b63c=_0x999fb9;_0x471e3e=0xc8;}else{_0x471e3e=0xce;}_0x577e4b[_0xd425('0x2c')](_0x471e3e);return _0x577e4b[_0xd425('0x33')](_0xd425('0x34'),_0x185d7e+'-'+_0x37b63c+'/'+_0x999fb9)[_0xd425('0x2e')](_0x177de2);}return null;};}function patchUpdates(_0x1abf33){return function(_0x47405f){try{jsonpatch[_0xd425('0x35')](_0x47405f,_0x1abf33,!![]);}catch(_0x3ec51b){return BPromise[_0xd425('0x36')](_0x3ec51b);}return _0x47405f[_0xd425('0x37')]();};}function saveUpdates(_0x5f3dab,_0x316493){return function(_0x2a2a9b){if(_0x2a2a9b){return _0x2a2a9b[_0xd425('0x38')](_0x5f3dab)[_0xd425('0x21')](function(_0x28870f){return _0x28870f;});}return null;};}function removeEntity(_0x4eddbc,_0x4aa168){return function(_0x3badcc){if(_0x3badcc){return _0x3badcc['destroy']()['then'](function(){var _0x51669d=_0x3badcc[_0xd425('0x39')]({'plain':!![]});var _0xfb0c8=_0xd425('0x3a');return db[_0xd425('0x3b')]['destroy']({'where':{'type':_0xfb0c8,'resourceId':_0x51669d['id']}})[_0xd425('0x21')](function(){return _0x3badcc;});})[_0xd425('0x21')](function(){_0x4eddbc[_0xd425('0x2c')](0xcc)[_0xd425('0x2d')]();});}};}function handleEntityNotFound(_0x27b9e2,_0x1e12f2){return function(_0x35bbec){if(!_0x35bbec){_0x27b9e2['sendStatus'](0x194);}return _0x35bbec;};}function handleError(_0x363fb0,_0x59b3d3){_0x59b3d3=_0x59b3d3||0x1f4;return function(_0x22df81){logger[_0xd425('0x26')](_0x22df81[_0xd425('0x3c')]);if(_0x22df81['name']){delete _0x22df81[_0xd425('0x3d')];}_0x363fb0[_0xd425('0x2c')](_0x59b3d3)[_0xd425('0x3e')](_0x22df81);};}exports[_0xd425('0x3f')]=function(_0x58f36d,_0x1d38fa){var _0x3cf540={},_0x59e326={},_0x5d310e={'count':0x0,'rows':[]};var _0x48fc85=_[_0xd425('0x40')](db[_0xd425('0x41')][_0xd425('0x42')],function(_0x588688){return{'name':_0x588688['fieldName'],'type':_0x588688['type'][_0xd425('0x43')]};});_0x59e326[_0xd425('0x44')]=_[_0xd425('0x40')](_0x48fc85,_0xd425('0x3d'));_0x59e326[_0xd425('0x45')]=_[_0xd425('0x46')](_0x58f36d[_0xd425('0x45')]);_0x59e326['filters']=_[_0xd425('0x47')](_0x59e326[_0xd425('0x44')],_0x59e326[_0xd425('0x45')]);_0x3cf540['attributes']=_[_0xd425('0x47')](_0x59e326[_0xd425('0x44')],qs[_0xd425('0x48')](_0x58f36d['query'][_0xd425('0x48')]));_0x3cf540[_0xd425('0x49')]=_0x3cf540[_0xd425('0x49')][_0xd425('0x4a')]?_0x3cf540['attributes']:_0x59e326[_0xd425('0x44')];if(!_0x58f36d[_0xd425('0x45')][_0xd425('0x4b')](_0xd425('0x4c'))){_0x3cf540[_0xd425('0x30')]=qs[_0xd425('0x30')](_0x58f36d[_0xd425('0x45')]['limit']);_0x3cf540[_0xd425('0x32')]=qs[_0xd425('0x32')](_0x58f36d['query'][_0xd425('0x32')]);}_0x3cf540['order']=qs['sort'](_0x58f36d[_0xd425('0x45')]['sort']);_0x3cf540[_0xd425('0x4d')]=qs['filters'](_[_0xd425('0x4e')](_0x58f36d[_0xd425('0x45')],_0x59e326[_0xd425('0x4f')]),_0x48fc85);if(_0x58f36d[_0xd425('0x45')][_0xd425('0x50')]){_0x3cf540['where']=_[_0xd425('0x51')](_0x3cf540['where'],{'$or':_[_0xd425('0x40')](_0x48fc85,function(_0x55a15d){if(_0x55a15d[_0xd425('0x52')]!==_0xd425('0x53')){var _0x3fd2ce={};_0x3fd2ce[_0x55a15d[_0xd425('0x3d')]]={'$like':'%'+_0x58f36d[_0xd425('0x45')]['filter']+'%'};return _0x3fd2ce;}})});}_0x3cf540=_[_0xd425('0x51')]({},_0x3cf540,_0x58f36d[_0xd425('0x54')]);var _0x35e77b={'where':_0x3cf540[_0xd425('0x4d')]};return db[_0xd425('0x41')]['count'](_0x35e77b)[_0xd425('0x21')](function(_0x177704){_0x5d310e[_0xd425('0x31')]=_0x177704;if(_0x58f36d[_0xd425('0x45')][_0xd425('0x55')]){_0x3cf540[_0xd425('0x56')]=[{'all':!![]}];}return db['Trunk'][_0xd425('0x57')](_0x3cf540);})[_0xd425('0x21')](function(_0x5bfac6){_0x5d310e[_0xd425('0x58')]=_0x5bfac6;return _0x5d310e;})[_0xd425('0x21')](respondWithFilteredResult(_0x1d38fa,_0x3cf540))[_0xd425('0x2b')](handleError(_0x1d38fa,null));};exports[_0xd425('0x59')]=function(_0x5c0219,_0x54f1d){var _0x2b8882={'raw':![],'where':{'id':_0x5c0219[_0xd425('0x5a')]['id']}},_0x4552cd={};_0x4552cd[_0xd425('0x44')]=_['keys'](db['Trunk'][_0xd425('0x42')]);_0x4552cd['query']=_[_0xd425('0x46')](_0x5c0219[_0xd425('0x45')]);_0x4552cd['filters']=_[_0xd425('0x47')](_0x4552cd['model'],_0x4552cd['query']);_0x2b8882[_0xd425('0x49')]=_[_0xd425('0x47')](_0x4552cd[_0xd425('0x44')],qs[_0xd425('0x48')](_0x5c0219[_0xd425('0x45')][_0xd425('0x48')]));_0x2b8882[_0xd425('0x49')]=_0x2b8882[_0xd425('0x49')]['length']?_0x2b8882[_0xd425('0x49')]:_0x4552cd[_0xd425('0x44')];if(_0x5c0219[_0xd425('0x45')][_0xd425('0x55')]){_0x2b8882[_0xd425('0x56')]=[{'all':!![]}];}_0x2b8882=_[_0xd425('0x51')]({},_0x2b8882,_0x5c0219[_0xd425('0x54')]);return db[_0xd425('0x41')]['find'](_0x2b8882)['then'](handleEntityNotFound(_0x54f1d,null))['then'](respondWithResult(_0x54f1d,null))[_0xd425('0x2b')](handleError(_0x54f1d,null));};exports[_0xd425('0x5b')]=function(_0x3dec61,_0x3c6b49){var _0x59c286={'where':{'id':_0x3dec61['params']['id']}},_0x4fedc0={};_0x4fedc0['model']=_[_0xd425('0x46')](db[_0xd425('0x41')]['rawAttributes']);_0x59c286[_0xd425('0x49')]=_[_0xd425('0x47')](_0x4fedc0[_0xd425('0x44')],qs['fields'](_0x3dec61['query'][_0xd425('0x48')]));_0x59c286['attributes']=_0x59c286['attributes']['length']?_0x59c286[_0xd425('0x49')]:_0x4fedc0[_0xd425('0x44')];if(_0x3dec61[_0xd425('0x45')]['includeAll']){_0x59c286[_0xd425('0x56')]=[{'all':!![]}];}_0x59c286=_['merge']({},_0x59c286,_0x3dec61[_0xd425('0x54')]);return db[_0xd425('0x41')][_0xd425('0x5c')](_0x59c286)[_0xd425('0x21')](handleEntityNotFound(_0x3c6b49,null))[_0xd425('0x21')](function(_0xd261a){if(_0xd261a){var _0xa21f7c=_0xd261a[_0xd425('0x39')]({'plain':!![]});_0xa21f7c=qs[_0xd425('0x5d')](_0xa21f7c,['id','createdAt',_0xd425('0x5e')]);_0x3dec61[_0xd425('0x5f')]=_[_0xd425('0x5d')](_0x3dec61[_0xd425('0x5f')],['id','createdAt','updatedAt']);return db[_0xd425('0x41')][_0xd425('0x60')](_[_0xd425('0x51')](_0xa21f7c,_0x3dec61[_0xd425('0x5f')]),{'include':_0x3dec61[_0xd425('0x45')][_0xd425('0x55')]?[{'all':!![]}]:undefined})[_0xd425('0x21')](function(_0x44782a){var _0x1fcde4=_0x3dec61[_0xd425('0x61')][_0xd425('0x39')]({'plain':!![]});if(!_0x1fcde4)throw new Error(_0xd425('0x62'));if(_0x1fcde4[_0xd425('0x63')]===_0xd425('0x61')){var _0x5e72db=_0x44782a[_0xd425('0x39')]({'plain':!![]});var _0x343cc1=_0xd425('0x3a');return db['UserProfileSection']['find']({'where':{'name':_0x343cc1,'userProfileId':_0x1fcde4['userProfileId']},'raw':!![]})[_0xd425('0x21')](function(_0x34d065){if(_0x34d065&&_0x34d065[_0xd425('0x64')]===0x0){return db['UserProfileResource'][_0xd425('0x60')]({'name':_0x5e72db['name'],'resourceId':_0x5e72db['id'],'type':_0x34d065[_0xd425('0x3d')],'sectionId':_0x34d065['id']},{})[_0xd425('0x21')](function(){return _0x44782a;});}else{return _0x44782a;}})[_0xd425('0x2b')](function(_0x5113fc){logger[_0xd425('0x26')](_0xd425('0x65'),_0x5113fc);throw _0x5113fc;});}return _0x44782a;});}})[_0xd425('0x21')](respondWithResult(_0x3c6b49,0xc9))[_0xd425('0x2b')](handleError(_0x3c6b49,null));};exports[_0xd425('0x60')]=function(_0x43b1a9,_0x38a762,_0x44db7f){var _0xcb1a64;return db[_0xd425('0x41')][_0xd425('0x60')](_0x43b1a9[_0xd425('0x5f')],{'raw':!![]})[_0xd425('0x21')](function(_0x285d54){_0xcb1a64=_0x285d54;return db[_0xd425('0x41')][_0xd425('0x57')]({'raw':!![]});})[_0xd425('0x21')](function(_0x25cae6){var _0x541218=fs['readFileSync'](path[_0xd425('0x66')](config['root'],_0xd425('0x67')),_0xd425('0x68'));var _0xb407bb=fs[_0xd425('0x69')](path['join'](config[_0xd425('0x6a')],_0xd425('0x6b')),_0xd425('0x68'));var _0x689332=ejs[_0xd425('0x6c')](_0x541218,{'trunks':_0x25cae6||[]});fs[_0xd425('0x6d')]('/etc/asterisk/sip_xcally_trunks.conf',_0x689332);if(_0xcb1a64['registry']){var _0x3ccffe=ejs[_0xd425('0x6c')](_0xb407bb,{'trunks':_0x25cae6||[]});fs['writeFileSync'](_0xd425('0x6e'),_0x3ccffe);}})['then'](function(){return respondWithRpcPromise(_0xd425('0x6f'),_0xd425('0x60'),{'module':_0xd425('0x70')});})[_0xd425('0x21')](function(){var _0x376134=_0x43b1a9[_0xd425('0x61')][_0xd425('0x39')]({'plain':!![]});if(!_0x376134)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x376134[_0xd425('0x63')]===_0xd425('0x61')){var _0x24af3=_0xcb1a64[_0xd425('0x39')]({'plain':!![]});return db[_0xd425('0x71')]['find']({'where':{'name':_0xd425('0x3a'),'userProfileId':_0x376134[_0xd425('0x72')]},'raw':!![]})['then'](function(_0x2bb36f){if(_0x2bb36f&&_0x2bb36f[_0xd425('0x64')]===0x0){return db['UserProfileResource'][_0xd425('0x60')]({'name':_0x24af3[_0xd425('0x3d')],'resourceId':_0x24af3['id'],'type':_0x2bb36f[_0xd425('0x3d')],'sectionId':_0x2bb36f['id']},{})[_0xd425('0x21')](function(){return _0xcb1a64;});}else{return _0xcb1a64;}})[_0xd425('0x2b')](function(_0x572f23){logger[_0xd425('0x26')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x572f23);throw _0x572f23;});}return _0xcb1a64;})[_0xd425('0x21')](respondWithResult(_0x38a762,0xc9))[_0xd425('0x2b')](handleError(_0x38a762,null));};exports['update']=function(_0x2bf8e6,_0xcf7b51,_0x66d87b){var _0x1fc64d;return db['Trunk']['find']({'where':{'id':_0x2bf8e6[_0xd425('0x5a')]['id']}})[_0xd425('0x21')](handleEntityNotFound(_0xcf7b51,null))[_0xd425('0x21')](saveUpdates(_0x2bf8e6['body'],null))[_0xd425('0x21')](function(_0xb1479e){if(_0xb1479e){_0x1fc64d=_0xb1479e;return db['Trunk'][_0xd425('0x57')]({'raw':!![]});}})['then'](function(_0x998ad1){if(_0x998ad1){var _0x46346c=fs[_0xd425('0x69')](path[_0xd425('0x66')](config['root'],'server/files/templates/trunk.ejs'),_0xd425('0x68'));var _0x413a65=fs['readFileSync'](path[_0xd425('0x66')](config[_0xd425('0x6a')],'server/files/templates/registry.ejs'),_0xd425('0x68'));var _0x369f8b=ejs[_0xd425('0x6c')](_0x46346c,{'trunks':_0x998ad1||[]});fs[_0xd425('0x6d')](_0xd425('0x73'),_0x369f8b);var _0xf251e6=ejs[_0xd425('0x6c')](_0x413a65,{'trunks':_0x998ad1||[]});fs['writeFileSync']('/etc/asterisk/sip_xcally_registers.conf',_0xf251e6);return respondWithRpcPromise(_0xd425('0x6f'),'update',{'module':_0xd425('0x70')});}return null;})[_0xd425('0x21')](function(_0x58cad5){if(_0x58cad5){return _0x1fc64d;}})[_0xd425('0x21')](respondWithResult(_0xcf7b51,null))[_0xd425('0x2b')](handleError(_0xcf7b51,null));};exports['destroy']=function(_0x592c40,_0x750685,_0x242ed8){var _0x16eac6;return db[_0xd425('0x41')][_0xd425('0x5c')]({'where':{'id':_0x592c40[_0xd425('0x5a')]['id']}})[_0xd425('0x21')](handleEntityNotFound(_0x750685,null))[_0xd425('0x21')](removeEntity(_0x750685,null))['then'](function(){return db[_0xd425('0x41')][_0xd425('0x57')]({'raw':!![]});})['then'](function(_0x2bbcf3){var _0x1d386c=fs[_0xd425('0x69')](path[_0xd425('0x66')](config[_0xd425('0x6a')],_0xd425('0x67')),_0xd425('0x68'));var _0x2c3995=fs[_0xd425('0x69')](path[_0xd425('0x66')](config[_0xd425('0x6a')],'server/files/templates/registry.ejs'),_0xd425('0x68'));var _0x498e81=ejs['render'](_0x1d386c,{'trunks':_0x2bbcf3});var _0x2c8d63=ejs['render'](_0x2c3995,{'trunks':_0x2bbcf3});fs[_0xd425('0x6d')](_0xd425('0x73'),_0x498e81);fs[_0xd425('0x6d')](_0xd425('0x6e'),_0x2c8d63);return respondWithRpcPromise(_0xd425('0x6f'),_0xd425('0x74'),{'module':_0xd425('0x70')});})['catch'](handleError(_0x750685,null));};
\ No newline at end of file
+var _0xe5b3=['then','info','debug','Trunk,\x20%s,\x20%s,\x20%s','stringify','error','code','message','Trunk,\x20%s,\x20%s','request\x20sent','result','status','end','json','undefined','count','offset','limit','set','Content-Range','apply','reject','save','destroy','get','Trunks','UserProfileResource','stack','name','index','map','Trunk','rawAttributes','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','show','params','catch','clone','find','omit','createdAt','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','userProfileId','autoAssociation','create','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','readFileSync','join','root','server/files/templates/trunk.ejs','utf8','server/files/templates/registry.ejs','render','writeFileSync','/etc/asterisk/sip_xcally_trunks.conf','Reload','chan_sip.so','/etc/asterisk/sip_xcally_registers.conf','update','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','crypto','jsforce','desk.js','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','client','http','request'];(function(_0xdd9a5f,_0x3ced93){var _0x3464b7=function(_0x35b534){while(--_0x35b534){_0xdd9a5f['push'](_0xdd9a5f['shift']());}};_0x3464b7(++_0x3ced93);}(_0xe5b3,0x133));var _0x3e5b=function(_0x5b7e27,_0x36fb5a){_0x5b7e27=_0x5b7e27-0x0;var _0xbfe91f=_0xe5b3[_0x5b7e27];return _0xbfe91f;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x3e5b('0x0'));var zipdir=require(_0x3e5b('0x1'));var jsonpatch=require(_0x3e5b('0x2'));var rp=require(_0x3e5b('0x3'));var moment=require(_0x3e5b('0x4'));var BPromise=require(_0x3e5b('0x5'));var Mustache=require(_0x3e5b('0x6'));var util=require(_0x3e5b('0x7'));var path=require(_0x3e5b('0x8'));var sox=require(_0x3e5b('0x9'));var csv=require(_0x3e5b('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x3e5b('0xb'));var _=require(_0x3e5b('0xc'));var squel=require('squel');var crypto=require(_0x3e5b('0xd'));var jsforce=require(_0x3e5b('0xe'));var deskjs=require(_0x3e5b('0xf'));var toCsv=require(_0x3e5b('0xa'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x3e5b('0x10'));var authService=require(_0x3e5b('0x11'));var qs=require(_0x3e5b('0x12'));var as=require(_0x3e5b('0x13'));var hardwareService=require(_0x3e5b('0x14'));var logger=require('../../config/logger')(_0x3e5b('0x15'));var utils=require('../../config/utils');var config=require(_0x3e5b('0x16'));var licenseUtil=require(_0x3e5b('0x17'));var db=require(_0x3e5b('0x18'))['db'];var jayson=require(_0x3e5b('0x19'));var client=jayson[_0x3e5b('0x1a')][_0x3e5b('0x1b')]({'port':0x232a});function respondWithRpcPromise(_0x405e70,_0x560010,_0x39a2a1,_0x5f2f9c){return new BPromise(function(_0x51a188,_0x4d71a3){var _0x3754e3=_0x5f2f9c||client;return _0x3754e3[_0x3e5b('0x1c')](_0x405e70,_0x39a2a1)[_0x3e5b('0x1d')](function(_0x4fb471){logger[_0x3e5b('0x1e')]('Trunk,\x20%s,\x20%s',_0x560010,'request\x20sent');logger[_0x3e5b('0x1f')](_0x3e5b('0x20'),_0x560010,'request\x20sent',JSON[_0x3e5b('0x21')](_0x4fb471));if(_0x4fb471[_0x3e5b('0x22')]){if(_0x4fb471['error'][_0x3e5b('0x23')]===0x1f4){logger[_0x3e5b('0x22')]('Trunk,\x20%s,\x20%s',_0x560010,_0x4fb471['error'][_0x3e5b('0x24')]);return _0x4d71a3(_0x4fb471[_0x3e5b('0x22')][_0x3e5b('0x24')]);}logger[_0x3e5b('0x22')](_0x3e5b('0x25'),_0x560010,_0x4fb471[_0x3e5b('0x22')][_0x3e5b('0x24')]);return _0x51a188(_0x4fb471[_0x3e5b('0x22')][_0x3e5b('0x24')]);}else{logger[_0x3e5b('0x1e')](_0x3e5b('0x25'),_0x560010,_0x3e5b('0x26'));_0x51a188(_0x4fb471[_0x3e5b('0x27')][_0x3e5b('0x24')]);}})['catch'](function(_0x433f9c){logger[_0x3e5b('0x22')](_0x3e5b('0x25'),_0x560010,_0x433f9c);_0x4d71a3(_0x433f9c);});});}function respondWithStatusCode(_0x150674,_0x50039b){_0x50039b=_0x50039b||0xcc;return function(_0x1eb80f){if(_0x1eb80f){return _0x150674['sendStatus'](_0x50039b);}return _0x150674[_0x3e5b('0x28')](_0x50039b)[_0x3e5b('0x29')]();};}function respondWithResult(_0x4d5e61,_0x41b684){_0x41b684=_0x41b684||0xc8;return function(_0x2f6368){if(_0x2f6368){return _0x4d5e61[_0x3e5b('0x28')](_0x41b684)[_0x3e5b('0x2a')](_0x2f6368);}};}function respondWithFilteredResult(_0x3bb749,_0x26c7f2){return function(_0x160e87){if(_0x160e87){var _0x2ddf57=typeof _0x26c7f2['offset']===_0x3e5b('0x2b')&&typeof _0x26c7f2['limit']===_0x3e5b('0x2b');var _0x4fd64b=_0x160e87[_0x3e5b('0x2c')];var _0x1f6473=_0x2ddf57?0x0:_0x26c7f2[_0x3e5b('0x2d')];var _0x475b39=_0x2ddf57?_0x160e87[_0x3e5b('0x2c')]:_0x26c7f2[_0x3e5b('0x2d')]+_0x26c7f2[_0x3e5b('0x2e')];var _0x9c2123;if(_0x475b39>=_0x4fd64b){_0x475b39=_0x4fd64b;_0x9c2123=0xc8;}else{_0x9c2123=0xce;}_0x3bb749[_0x3e5b('0x28')](_0x9c2123);return _0x3bb749[_0x3e5b('0x2f')](_0x3e5b('0x30'),_0x1f6473+'-'+_0x475b39+'/'+_0x4fd64b)['json'](_0x160e87);}return null;};}function patchUpdates(_0x21bc10){return function(_0x1882aa){try{jsonpatch[_0x3e5b('0x31')](_0x1882aa,_0x21bc10,!![]);}catch(_0x2a14eb){return BPromise[_0x3e5b('0x32')](_0x2a14eb);}return _0x1882aa[_0x3e5b('0x33')]();};}function saveUpdates(_0x345927,_0x4c4e01){return function(_0x33f089){if(_0x33f089){return _0x33f089['update'](_0x345927)['then'](function(_0x32c6b0){return _0x32c6b0;});}return null;};}function removeEntity(_0x78d68a,_0x51ea0d){return function(_0x40e37d){if(_0x40e37d){return _0x40e37d[_0x3e5b('0x34')]()[_0x3e5b('0x1d')](function(){var _0x33e356=_0x40e37d[_0x3e5b('0x35')]({'plain':!![]});var _0x26f842=_0x3e5b('0x36');return db[_0x3e5b('0x37')][_0x3e5b('0x34')]({'where':{'type':_0x26f842,'resourceId':_0x33e356['id']}})[_0x3e5b('0x1d')](function(){return _0x40e37d;});})[_0x3e5b('0x1d')](function(){_0x78d68a[_0x3e5b('0x28')](0xcc)['end']();});}};}function handleEntityNotFound(_0x141b7e,_0xec45c5){return function(_0x53caa2){if(!_0x53caa2){_0x141b7e['sendStatus'](0x194);}return _0x53caa2;};}function handleError(_0x471196,_0x56d7ef){_0x56d7ef=_0x56d7ef||0x1f4;return function(_0x2939da){logger[_0x3e5b('0x22')](_0x2939da[_0x3e5b('0x38')]);if(_0x2939da[_0x3e5b('0x39')]){delete _0x2939da['name'];}_0x471196[_0x3e5b('0x28')](_0x56d7ef)['send'](_0x2939da);};}exports[_0x3e5b('0x3a')]=function(_0x5ec841,_0x47f7c8){var _0x48f414={},_0x10c202={},_0x174ebf={'count':0x0,'rows':[]};var _0x2eaa30=_[_0x3e5b('0x3b')](db[_0x3e5b('0x3c')][_0x3e5b('0x3d')],function(_0x5466ac){return{'name':_0x5466ac['fieldName'],'type':_0x5466ac['type']['key']};});_0x10c202['model']=_['map'](_0x2eaa30,'name');_0x10c202[_0x3e5b('0x3e')]=_[_0x3e5b('0x3f')](_0x5ec841[_0x3e5b('0x3e')]);_0x10c202[_0x3e5b('0x40')]=_[_0x3e5b('0x41')](_0x10c202[_0x3e5b('0x42')],_0x10c202[_0x3e5b('0x3e')]);_0x48f414[_0x3e5b('0x43')]=_[_0x3e5b('0x41')](_0x10c202[_0x3e5b('0x42')],qs[_0x3e5b('0x44')](_0x5ec841['query'][_0x3e5b('0x44')]));_0x48f414[_0x3e5b('0x43')]=_0x48f414[_0x3e5b('0x43')][_0x3e5b('0x45')]?_0x48f414[_0x3e5b('0x43')]:_0x10c202[_0x3e5b('0x42')];if(!_0x5ec841[_0x3e5b('0x3e')][_0x3e5b('0x46')](_0x3e5b('0x47'))){_0x48f414[_0x3e5b('0x2e')]=qs[_0x3e5b('0x2e')](_0x5ec841['query']['limit']);_0x48f414['offset']=qs['offset'](_0x5ec841[_0x3e5b('0x3e')][_0x3e5b('0x2d')]);}_0x48f414[_0x3e5b('0x48')]=qs[_0x3e5b('0x49')](_0x5ec841[_0x3e5b('0x3e')][_0x3e5b('0x49')]);_0x48f414[_0x3e5b('0x4a')]=qs[_0x3e5b('0x40')](_[_0x3e5b('0x4b')](_0x5ec841[_0x3e5b('0x3e')],_0x10c202['filters']),_0x2eaa30);if(_0x5ec841[_0x3e5b('0x3e')][_0x3e5b('0x4c')]){_0x48f414[_0x3e5b('0x4a')]=_[_0x3e5b('0x4d')](_0x48f414[_0x3e5b('0x4a')],{'$or':_['map'](_0x2eaa30,function(_0x588ee7){if(_0x588ee7['type']!==_0x3e5b('0x4e')){var _0x20af6a={};_0x20af6a[_0x588ee7[_0x3e5b('0x39')]]={'$like':'%'+_0x5ec841['query']['filter']+'%'};return _0x20af6a;}})});}_0x48f414=_[_0x3e5b('0x4d')]({},_0x48f414,_0x5ec841[_0x3e5b('0x4f')]);var _0x123947={'where':_0x48f414['where']};return db['Trunk'][_0x3e5b('0x2c')](_0x123947)['then'](function(_0x14b62a){_0x174ebf[_0x3e5b('0x2c')]=_0x14b62a;if(_0x5ec841[_0x3e5b('0x3e')][_0x3e5b('0x50')]){_0x48f414[_0x3e5b('0x51')]=[{'all':!![]}];}return db[_0x3e5b('0x3c')][_0x3e5b('0x52')](_0x48f414);})[_0x3e5b('0x1d')](function(_0x339852){_0x174ebf['rows']=_0x339852;return _0x174ebf;})[_0x3e5b('0x1d')](respondWithFilteredResult(_0x47f7c8,_0x48f414))['catch'](handleError(_0x47f7c8,null));};exports[_0x3e5b('0x53')]=function(_0x2e7047,_0x26e11e){var _0x3d51fa={'raw':![],'where':{'id':_0x2e7047[_0x3e5b('0x54')]['id']}},_0x291e4d={};_0x291e4d[_0x3e5b('0x42')]=_[_0x3e5b('0x3f')](db[_0x3e5b('0x3c')][_0x3e5b('0x3d')]);_0x291e4d[_0x3e5b('0x3e')]=_[_0x3e5b('0x3f')](_0x2e7047[_0x3e5b('0x3e')]);_0x291e4d['filters']=_[_0x3e5b('0x41')](_0x291e4d[_0x3e5b('0x42')],_0x291e4d[_0x3e5b('0x3e')]);_0x3d51fa[_0x3e5b('0x43')]=_[_0x3e5b('0x41')](_0x291e4d[_0x3e5b('0x42')],qs['fields'](_0x2e7047[_0x3e5b('0x3e')][_0x3e5b('0x44')]));_0x3d51fa[_0x3e5b('0x43')]=_0x3d51fa[_0x3e5b('0x43')][_0x3e5b('0x45')]?_0x3d51fa[_0x3e5b('0x43')]:_0x291e4d[_0x3e5b('0x42')];if(_0x2e7047[_0x3e5b('0x3e')]['includeAll']){_0x3d51fa[_0x3e5b('0x51')]=[{'all':!![]}];}_0x3d51fa=_['merge']({},_0x3d51fa,_0x2e7047['options']);return db[_0x3e5b('0x3c')]['find'](_0x3d51fa)[_0x3e5b('0x1d')](handleEntityNotFound(_0x26e11e,null))[_0x3e5b('0x1d')](respondWithResult(_0x26e11e,null))[_0x3e5b('0x55')](handleError(_0x26e11e,null));};exports[_0x3e5b('0x56')]=function(_0x4a492b,_0x5ddeee){var _0x545712={'where':{'id':_0x4a492b[_0x3e5b('0x54')]['id']}},_0x581b94={};_0x581b94[_0x3e5b('0x42')]=_[_0x3e5b('0x3f')](db[_0x3e5b('0x3c')][_0x3e5b('0x3d')]);_0x545712['attributes']=_['intersection'](_0x581b94[_0x3e5b('0x42')],qs[_0x3e5b('0x44')](_0x4a492b[_0x3e5b('0x3e')][_0x3e5b('0x44')]));_0x545712[_0x3e5b('0x43')]=_0x545712['attributes']['length']?_0x545712['attributes']:_0x581b94['model'];if(_0x4a492b[_0x3e5b('0x3e')][_0x3e5b('0x50')]){_0x545712[_0x3e5b('0x51')]=[{'all':!![]}];}_0x545712=_[_0x3e5b('0x4d')]({},_0x545712,_0x4a492b[_0x3e5b('0x4f')]);return db[_0x3e5b('0x3c')][_0x3e5b('0x57')](_0x545712)[_0x3e5b('0x1d')](handleEntityNotFound(_0x5ddeee,null))['then'](function(_0x285db6){if(_0x285db6){var _0x29897b=_0x285db6[_0x3e5b('0x35')]({'plain':!![]});_0x29897b=qs[_0x3e5b('0x58')](_0x29897b,['id',_0x3e5b('0x59'),'updatedAt']);_0x4a492b[_0x3e5b('0x5a')]=_['omit'](_0x4a492b[_0x3e5b('0x5a')],['id',_0x3e5b('0x59'),'updatedAt']);return db['Trunk']['create'](_[_0x3e5b('0x4d')](_0x29897b,_0x4a492b['body']),{'include':_0x4a492b[_0x3e5b('0x3e')][_0x3e5b('0x50')]?[{'all':!![]}]:undefined})[_0x3e5b('0x1d')](function(_0x40197c){var _0x14f187=_0x4a492b['user']['get']({'plain':!![]});if(!_0x14f187)throw new Error(_0x3e5b('0x5b'));if(_0x14f187[_0x3e5b('0x5c')]===_0x3e5b('0x5d')){var _0x4dfb45=_0x40197c[_0x3e5b('0x35')]({'plain':!![]});var _0x3c5293=_0x3e5b('0x36');return db[_0x3e5b('0x5e')][_0x3e5b('0x57')]({'where':{'name':_0x3c5293,'userProfileId':_0x14f187[_0x3e5b('0x5f')]},'raw':!![]})[_0x3e5b('0x1d')](function(_0x4a1ce3){if(_0x4a1ce3&&_0x4a1ce3[_0x3e5b('0x60')]===0x0){return db[_0x3e5b('0x37')][_0x3e5b('0x61')]({'name':_0x4dfb45[_0x3e5b('0x39')],'resourceId':_0x4dfb45['id'],'type':_0x4a1ce3[_0x3e5b('0x39')],'sectionId':_0x4a1ce3['id']},{})[_0x3e5b('0x1d')](function(){return _0x40197c;});}else{return _0x40197c;}})[_0x3e5b('0x55')](function(_0x2411c3){logger[_0x3e5b('0x22')](_0x3e5b('0x62'),_0x2411c3);throw _0x2411c3;});}return _0x40197c;});}})['then'](respondWithResult(_0x5ddeee,0xc9))[_0x3e5b('0x55')](handleError(_0x5ddeee,null));};exports[_0x3e5b('0x61')]=function(_0x5af305,_0x177144,_0x31ef31){var _0x561c78;return db['Trunk']['create'](_0x5af305[_0x3e5b('0x5a')],{'raw':!![]})[_0x3e5b('0x1d')](function(_0x498e6d){_0x561c78=_0x498e6d;return db[_0x3e5b('0x3c')][_0x3e5b('0x52')]({'raw':!![]});})['then'](function(_0x3d3bf2){var _0x17f60f=fs[_0x3e5b('0x63')](path[_0x3e5b('0x64')](config[_0x3e5b('0x65')],_0x3e5b('0x66')),_0x3e5b('0x67'));var _0x410c7a=fs[_0x3e5b('0x63')](path['join'](config[_0x3e5b('0x65')],_0x3e5b('0x68')),_0x3e5b('0x67'));var _0x40103e=ejs[_0x3e5b('0x69')](_0x17f60f,{'trunks':_0x3d3bf2||[]});fs[_0x3e5b('0x6a')](_0x3e5b('0x6b'),_0x40103e);if(_0x561c78['registry']){var _0x590f0c=ejs[_0x3e5b('0x69')](_0x410c7a,{'trunks':_0x3d3bf2||[]});fs[_0x3e5b('0x6a')]('/etc/asterisk/sip_xcally_registers.conf',_0x590f0c);}})[_0x3e5b('0x1d')](function(){return respondWithRpcPromise(_0x3e5b('0x6c'),_0x3e5b('0x61'),{'module':_0x3e5b('0x6d')});})[_0x3e5b('0x1d')](function(){var _0x9deb09=_0x5af305[_0x3e5b('0x5d')]['get']({'plain':!![]});if(!_0x9deb09)throw new Error(_0x3e5b('0x5b'));if(_0x9deb09[_0x3e5b('0x5c')]==='user'){var _0x577747=_0x561c78['get']({'plain':!![]});return db[_0x3e5b('0x5e')][_0x3e5b('0x57')]({'where':{'name':_0x3e5b('0x36'),'userProfileId':_0x9deb09[_0x3e5b('0x5f')]},'raw':!![]})[_0x3e5b('0x1d')](function(_0x1ba550){if(_0x1ba550&&_0x1ba550['autoAssociation']===0x0){return db[_0x3e5b('0x37')][_0x3e5b('0x61')]({'name':_0x577747['name'],'resourceId':_0x577747['id'],'type':_0x1ba550[_0x3e5b('0x39')],'sectionId':_0x1ba550['id']},{})['then'](function(){return _0x561c78;});}else{return _0x561c78;}})['catch'](function(_0x211e73){logger[_0x3e5b('0x22')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x211e73);throw _0x211e73;});}return _0x561c78;})[_0x3e5b('0x1d')](respondWithResult(_0x177144,0xc9))[_0x3e5b('0x55')](handleError(_0x177144,null));};exports['update']=function(_0x2e36af,_0x185640,_0x14baa9){var _0x1425eb;return db[_0x3e5b('0x3c')][_0x3e5b('0x57')]({'where':{'id':_0x2e36af['params']['id']}})['then'](handleEntityNotFound(_0x185640,null))[_0x3e5b('0x1d')](saveUpdates(_0x2e36af['body'],null))['then'](function(_0x25d3d8){if(_0x25d3d8){_0x1425eb=_0x25d3d8;return db[_0x3e5b('0x3c')][_0x3e5b('0x52')]({'raw':!![]});}})['then'](function(_0x2e5fa3){if(_0x2e5fa3){var _0x4b8d19=fs[_0x3e5b('0x63')](path['join'](config[_0x3e5b('0x65')],_0x3e5b('0x66')),_0x3e5b('0x67'));var _0xdf2677=fs['readFileSync'](path[_0x3e5b('0x64')](config['root'],_0x3e5b('0x68')),_0x3e5b('0x67'));var _0x58ccf3=ejs[_0x3e5b('0x69')](_0x4b8d19,{'trunks':_0x2e5fa3||[]});fs[_0x3e5b('0x6a')](_0x3e5b('0x6b'),_0x58ccf3);var _0x5ad011=ejs[_0x3e5b('0x69')](_0xdf2677,{'trunks':_0x2e5fa3||[]});fs[_0x3e5b('0x6a')](_0x3e5b('0x6e'),_0x5ad011);return respondWithRpcPromise('Reload',_0x3e5b('0x6f'),{'module':_0x3e5b('0x6d')});}return null;})['then'](function(_0xd9d941){if(_0xd9d941){return _0x1425eb;}})[_0x3e5b('0x1d')](respondWithResult(_0x185640,null))[_0x3e5b('0x55')](handleError(_0x185640,null));};exports['destroy']=function(_0x3b3306,_0x30e079,_0x352f7e){var _0x1d7c05;return db['Trunk'][_0x3e5b('0x57')]({'where':{'id':_0x3b3306['params']['id']}})[_0x3e5b('0x1d')](handleEntityNotFound(_0x30e079,null))['then'](removeEntity(_0x30e079,null))[_0x3e5b('0x1d')](function(){return db[_0x3e5b('0x3c')]['findAll']({'raw':!![]});})[_0x3e5b('0x1d')](function(_0x2299b9){var _0x56ff9d=fs[_0x3e5b('0x63')](path[_0x3e5b('0x64')](config[_0x3e5b('0x65')],_0x3e5b('0x66')),'utf8');var _0x53328b=fs[_0x3e5b('0x63')](path[_0x3e5b('0x64')](config[_0x3e5b('0x65')],_0x3e5b('0x68')),_0x3e5b('0x67'));var _0x3d1193=ejs['render'](_0x56ff9d,{'trunks':_0x2299b9});var _0x5d6aae=ejs[_0x3e5b('0x69')](_0x53328b,{'trunks':_0x2299b9});fs[_0x3e5b('0x6a')](_0x3e5b('0x6b'),_0x3d1193);fs[_0x3e5b('0x6a')](_0x3e5b('0x6e'),_0x5d6aae);return respondWithRpcPromise(_0x3e5b('0x6c'),_0x3e5b('0x34'),{'module':_0x3e5b('0x6d')});})['catch'](handleError(_0x30e079,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xccfe=['../../config/environment','./trunk.attributes','exports','Trunk','tools_trunks','util','api','moment','bluebird','rimraf'];(function(_0x306013,_0x4859ff){var _0x27b2b8=function(_0x348701){while(--_0x348701){_0x306013['push'](_0x306013['shift']());}};_0x27b2b8(++_0x4859ff);}(_0xccfe,0xaf));var _0xeccf=function(_0x4a6a4c,_0x1649a6){_0x4a6a4c=_0x4a6a4c-0x0;var _0x368eaa=_0xccfe[_0x4a6a4c];return _0x368eaa;};'use strict';var _=require('lodash');var util=require(_0xeccf('0x0'));var logger=require('../../config/logger')(_0xeccf('0x1'));var moment=require(_0xeccf('0x2'));var BPromise=require(_0xeccf('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0xeccf('0x4'));var config=require(_0xeccf('0x5'));var attributes=require(_0xeccf('0x6'));module[_0xeccf('0x7')]=function(_0x5e3129,_0x3828b7){return _0x5e3129['define'](_0xeccf('0x8'),attributes,{'tableName':_0xeccf('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xf03a=['define','Trunk','tools_trunks','lodash','util','api','moment','request-promise','path','../../config/environment','exports'];(function(_0x5548f9,_0x527467){var _0x59e640=function(_0x27bc2a){while(--_0x27bc2a){_0x5548f9['push'](_0x5548f9['shift']());}};_0x59e640(++_0x527467);}(_0xf03a,0x18f));var _0xaf03=function(_0x362763,_0x392351){_0x362763=_0x362763-0x0;var _0x53d26c=_0xf03a[_0x362763];return _0x53d26c;};'use strict';var _=require(_0xaf03('0x0'));var util=require(_0xaf03('0x1'));var logger=require('../../config/logger')(_0xaf03('0x2'));var moment=require(_0xaf03('0x3'));var BPromise=require('bluebird');var rp=require(_0xaf03('0x4'));var fs=require('fs');var path=require(_0xaf03('0x5'));var rimraf=require('rimraf');var config=require(_0xaf03('0x6'));var attributes=require('./trunk.attributes');module[_0xaf03('0x7')]=function(_0x1747bb,_0x3b35d5){return _0x1747bb[_0xaf03('0x8')](_0xaf03('0x9'),attributes,{'tableName':_0xaf03('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf1a6=['code','message','result','catch','GetTrunk','Trunk','findAll','options','raw','where','attributes','limit','include','map','model','ShowTrunk','find','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','Trunk,\x20%s,\x20%s','request\x20sent','debug','Trunk,\x20%s,\x20%s,\x20%s','stringify','error'];(function(_0x39b3a9,_0x2dad1d){var _0x81ab07=function(_0x2af7e8){while(--_0x2af7e8){_0x39b3a9['push'](_0x39b3a9['shift']());}};_0x81ab07(++_0x2dad1d);}(_0xf1a6,0x122));var _0x6f1a=function(_0x1d2c54,_0x3fa65e){_0x1d2c54=_0x1d2c54-0x0;var _0x21cbc2=_0xf1a6[_0x1d2c54];return _0x21cbc2;};'use strict';var _=require(_0x6f1a('0x0'));var util=require(_0x6f1a('0x1'));var moment=require(_0x6f1a('0x2'));var BPromise=require('bluebird');var rs=require(_0x6f1a('0x3'));var fs=require('fs');var Redis=require(_0x6f1a('0x4'));var db=require(_0x6f1a('0x5'))['db'];var utils=require(_0x6f1a('0x6'));var logger=require(_0x6f1a('0x7'))(_0x6f1a('0x8'));var config=require(_0x6f1a('0x9'));var jayson=require(_0x6f1a('0xa'));var client=jayson[_0x6f1a('0xb')][_0x6f1a('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x1607d8,_0x55d44c,_0x5b18ed){return new BPromise(function(_0x34c4ca,_0x555171){return client[_0x6f1a('0xd')](_0x1607d8,_0x5b18ed)[_0x6f1a('0xe')](function(_0x427474){logger[_0x6f1a('0xf')](_0x6f1a('0x10'),_0x55d44c,_0x6f1a('0x11'));logger[_0x6f1a('0x12')](_0x6f1a('0x13'),_0x55d44c,_0x6f1a('0x11'),JSON[_0x6f1a('0x14')](_0x427474));if(_0x427474[_0x6f1a('0x15')]){if(_0x427474['error'][_0x6f1a('0x16')]===0x1f4){logger[_0x6f1a('0x15')](_0x6f1a('0x10'),_0x55d44c,_0x427474['error'][_0x6f1a('0x17')]);return _0x555171(_0x427474['error'][_0x6f1a('0x17')]);}logger[_0x6f1a('0x15')](_0x6f1a('0x10'),_0x55d44c,_0x427474['error'][_0x6f1a('0x17')]);return _0x34c4ca(_0x427474[_0x6f1a('0x15')][_0x6f1a('0x17')]);}else{logger[_0x6f1a('0xf')](_0x6f1a('0x10'),_0x55d44c,_0x6f1a('0x11'));_0x34c4ca(_0x427474[_0x6f1a('0x18')][_0x6f1a('0x17')]);}})[_0x6f1a('0x19')](function(_0x3d972a){logger[_0x6f1a('0x15')](_0x6f1a('0x10'),_0x55d44c,_0x3d972a);_0x555171(_0x3d972a);});});}exports[_0x6f1a('0x1a')]=function(_0x3417ff){var _0x5ad1c3=this;return new Promise(function(_0xca3845,_0x1e8a72){return db[_0x6f1a('0x1b')][_0x6f1a('0x1c')]({'raw':_0x3417ff[_0x6f1a('0x1d')]?_0x3417ff[_0x6f1a('0x1d')][_0x6f1a('0x1e')]===undefined?!![]:![]:!![],'where':_0x3417ff['options']?_0x3417ff[_0x6f1a('0x1d')][_0x6f1a('0x1f')]||null:null,'attributes':_0x3417ff[_0x6f1a('0x1d')]?_0x3417ff['options'][_0x6f1a('0x20')]||null:null,'limit':_0x3417ff[_0x6f1a('0x1d')]?_0x3417ff[_0x6f1a('0x1d')][_0x6f1a('0x21')]||null:null,'include':_0x3417ff[_0x6f1a('0x1d')]?_0x3417ff[_0x6f1a('0x1d')][_0x6f1a('0x22')]?_[_0x6f1a('0x23')](_0x3417ff[_0x6f1a('0x1d')][_0x6f1a('0x22')],function(_0x610835){return{'model':db[_0x610835[_0x6f1a('0x24')]],'as':_0x610835['as'],'attributes':_0x610835[_0x6f1a('0x20')],'include':_0x610835['include']?_[_0x6f1a('0x23')](_0x610835[_0x6f1a('0x22')],function(_0x4374e8){return{'model':db[_0x4374e8[_0x6f1a('0x24')]],'as':_0x4374e8['as'],'attributes':_0x4374e8[_0x6f1a('0x20')],'include':_0x4374e8[_0x6f1a('0x22')]?_['map'](_0x4374e8[_0x6f1a('0x22')],function(_0x52efdf){return{'model':db[_0x52efdf[_0x6f1a('0x24')]],'as':_0x52efdf['as'],'attributes':_0x52efdf[_0x6f1a('0x20')]};}):[]};}):[]};}):[]:[]})[_0x6f1a('0xe')](function(_0x593b27){logger[_0x6f1a('0xf')](_0x6f1a('0x1a'),_0x3417ff);logger['debug']('GetTrunk',_0x3417ff,JSON[_0x6f1a('0x14')](_0x593b27));_0xca3845(_0x593b27);})['catch'](function(_0xdbc184){logger[_0x6f1a('0x15')](_0x6f1a('0x1a'),_0xdbc184[_0x6f1a('0x17')],_0x3417ff);_0x1e8a72(_0x5ad1c3['error'](0x1f4,_0xdbc184[_0x6f1a('0x17')]));});});};exports[_0x6f1a('0x25')]=function(_0x3654d0){var _0x5d4f07=this;return new Promise(function(_0x111c91,_0xd727b4){return db[_0x6f1a('0x1b')][_0x6f1a('0x26')]({'raw':_0x3654d0[_0x6f1a('0x1d')]?_0x3654d0[_0x6f1a('0x1d')][_0x6f1a('0x1e')]===undefined?!![]:![]:!![],'where':_0x3654d0['options']?_0x3654d0[_0x6f1a('0x1d')]['where']||null:null,'attributes':_0x3654d0[_0x6f1a('0x1d')]?_0x3654d0[_0x6f1a('0x1d')][_0x6f1a('0x20')]||null:null,'include':_0x3654d0['options']?_0x3654d0['options'][_0x6f1a('0x22')]?_[_0x6f1a('0x23')](_0x3654d0['options']['include'],function(_0x48e41b){return{'model':db[_0x48e41b[_0x6f1a('0x24')]],'as':_0x48e41b['as'],'attributes':_0x48e41b['attributes'],'include':_0x48e41b[_0x6f1a('0x22')]?_['map'](_0x48e41b['include'],function(_0x555e73){return{'model':db[_0x555e73[_0x6f1a('0x24')]],'as':_0x555e73['as'],'attributes':_0x555e73[_0x6f1a('0x20')],'include':_0x555e73[_0x6f1a('0x22')]?_[_0x6f1a('0x23')](_0x555e73[_0x6f1a('0x22')],function(_0x38d817){return{'model':db[_0x38d817[_0x6f1a('0x24')]],'as':_0x38d817['as'],'attributes':_0x38d817[_0x6f1a('0x20')]};}):[]};}):[]};}):[]:[]})[_0x6f1a('0xe')](function(_0x4b735a){logger[_0x6f1a('0xf')](_0x6f1a('0x25'),_0x3654d0);logger[_0x6f1a('0x12')](_0x6f1a('0x25'),_0x3654d0,JSON[_0x6f1a('0x14')](_0x4b735a));_0x111c91(_0x4b735a);})[_0x6f1a('0x19')](function(_0x1a06e3){logger[_0x6f1a('0x15')](_0x6f1a('0x25'),_0x1a06e3['message'],_0x3654d0);_0xd727b4(_0x5d4f07[_0x6f1a('0x15')](0x1f4,_0x1a06e3[_0x6f1a('0x17')]));});});};
\ No newline at end of file
+var _0x05c0=['message','info','Trunk,\x20%s,\x20%s','catch','GetTrunk','findAll','options','raw','where','attributes','include','model','map','stringify','Trunk','find','then','ShowTrunk','moment','bluebird','randomstring','ioredis','../../config/logger','rpc','jayson/promise','client','http','request','debug','Trunk,\x20%s,\x20%s,\x20%s','request\x20sent','error','code'];(function(_0x12b215,_0x30e755){var _0x2f5ccb=function(_0x1575ea){while(--_0x1575ea){_0x12b215['push'](_0x12b215['shift']());}};_0x2f5ccb(++_0x30e755);}(_0x05c0,0x13b));var _0x005c=function(_0x58453b,_0xc85ed9){_0x58453b=_0x58453b-0x0;var _0x517ec3=_0x05c0[_0x58453b];return _0x517ec3;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x005c('0x0'));var BPromise=require(_0x005c('0x1'));var rs=require(_0x005c('0x2'));var fs=require('fs');var Redis=require(_0x005c('0x3'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x005c('0x4'))(_0x005c('0x5'));var config=require('../../config/environment');var jayson=require(_0x005c('0x6'));var client=jayson[_0x005c('0x7')][_0x005c('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x1eb407,_0x2796c9,_0x378d7c){return new BPromise(function(_0x1add13,_0x8f5021){return client[_0x005c('0x9')](_0x1eb407,_0x378d7c)['then'](function(_0x474aa5){logger['info']('Trunk,\x20%s,\x20%s',_0x2796c9,'request\x20sent');logger[_0x005c('0xa')](_0x005c('0xb'),_0x2796c9,_0x005c('0xc'),JSON['stringify'](_0x474aa5));if(_0x474aa5[_0x005c('0xd')]){if(_0x474aa5[_0x005c('0xd')][_0x005c('0xe')]===0x1f4){logger[_0x005c('0xd')]('Trunk,\x20%s,\x20%s',_0x2796c9,_0x474aa5['error'][_0x005c('0xf')]);return _0x8f5021(_0x474aa5['error'][_0x005c('0xf')]);}logger[_0x005c('0xd')]('Trunk,\x20%s,\x20%s',_0x2796c9,_0x474aa5[_0x005c('0xd')][_0x005c('0xf')]);return _0x1add13(_0x474aa5[_0x005c('0xd')][_0x005c('0xf')]);}else{logger[_0x005c('0x10')](_0x005c('0x11'),_0x2796c9,_0x005c('0xc'));_0x1add13(_0x474aa5['result'][_0x005c('0xf')]);}})[_0x005c('0x12')](function(_0x496f95){logger[_0x005c('0xd')]('Trunk,\x20%s,\x20%s',_0x2796c9,_0x496f95);_0x8f5021(_0x496f95);});});}exports[_0x005c('0x13')]=function(_0x46376f){var _0x340aa6=this;return new Promise(function(_0x1b6c1c,_0x5a63fb){return db['Trunk'][_0x005c('0x14')]({'raw':_0x46376f[_0x005c('0x15')]?_0x46376f['options'][_0x005c('0x16')]===undefined?!![]:![]:!![],'where':_0x46376f['options']?_0x46376f[_0x005c('0x15')][_0x005c('0x17')]||null:null,'attributes':_0x46376f[_0x005c('0x15')]?_0x46376f[_0x005c('0x15')][_0x005c('0x18')]||null:null,'limit':_0x46376f[_0x005c('0x15')]?_0x46376f[_0x005c('0x15')]['limit']||null:null,'include':_0x46376f[_0x005c('0x15')]?_0x46376f[_0x005c('0x15')][_0x005c('0x19')]?_['map'](_0x46376f[_0x005c('0x15')][_0x005c('0x19')],function(_0x265c79){return{'model':db[_0x265c79[_0x005c('0x1a')]],'as':_0x265c79['as'],'attributes':_0x265c79[_0x005c('0x18')],'include':_0x265c79[_0x005c('0x19')]?_[_0x005c('0x1b')](_0x265c79[_0x005c('0x19')],function(_0x52b315){return{'model':db[_0x52b315[_0x005c('0x1a')]],'as':_0x52b315['as'],'attributes':_0x52b315[_0x005c('0x18')],'include':_0x52b315[_0x005c('0x19')]?_[_0x005c('0x1b')](_0x52b315[_0x005c('0x19')],function(_0x50d8a8){return{'model':db[_0x50d8a8['model']],'as':_0x50d8a8['as'],'attributes':_0x50d8a8['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x3b2107){logger['info']('GetTrunk',_0x46376f);logger[_0x005c('0xa')](_0x005c('0x13'),_0x46376f,JSON[_0x005c('0x1c')](_0x3b2107));_0x1b6c1c(_0x3b2107);})[_0x005c('0x12')](function(_0x3bb609){logger['error'](_0x005c('0x13'),_0x3bb609[_0x005c('0xf')],_0x46376f);_0x5a63fb(_0x340aa6['error'](0x1f4,_0x3bb609['message']));});});};exports['ShowTrunk']=function(_0x52133c){var _0x238300=this;return new Promise(function(_0x4077b7,_0x162c75){return db[_0x005c('0x1d')][_0x005c('0x1e')]({'raw':_0x52133c[_0x005c('0x15')]?_0x52133c['options'][_0x005c('0x16')]===undefined?!![]:![]:!![],'where':_0x52133c[_0x005c('0x15')]?_0x52133c[_0x005c('0x15')][_0x005c('0x17')]||null:null,'attributes':_0x52133c['options']?_0x52133c[_0x005c('0x15')]['attributes']||null:null,'include':_0x52133c[_0x005c('0x15')]?_0x52133c[_0x005c('0x15')][_0x005c('0x19')]?_[_0x005c('0x1b')](_0x52133c['options'][_0x005c('0x19')],function(_0x576b67){return{'model':db[_0x576b67[_0x005c('0x1a')]],'as':_0x576b67['as'],'attributes':_0x576b67[_0x005c('0x18')],'include':_0x576b67[_0x005c('0x19')]?_[_0x005c('0x1b')](_0x576b67['include'],function(_0x895686){return{'model':db[_0x895686[_0x005c('0x1a')]],'as':_0x895686['as'],'attributes':_0x895686[_0x005c('0x18')],'include':_0x895686['include']?_[_0x005c('0x1b')](_0x895686[_0x005c('0x19')],function(_0x324932){return{'model':db[_0x324932['model']],'as':_0x324932['as'],'attributes':_0x324932[_0x005c('0x18')]};}):[]};}):[]};}):[]:[]})[_0x005c('0x1f')](function(_0x30043f){logger['info']('ShowTrunk',_0x52133c);logger[_0x005c('0xa')]('ShowTrunk',_0x52133c,JSON[_0x005c('0x1c')](_0x30043f));_0x4077b7(_0x30043f);})[_0x005c('0x12')](function(_0x8b98ed){logger['error'](_0x005c('0x20'),_0x8b98ed[_0x005c('0xf')],_0x52133c);_0x162c75(_0x238300[_0x005c('0xd')](0x1f4,_0x8b98ed[_0x005c('0xf')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5983=['put','/:id/password','changePassword','removeQueues','delete','removeTeams','destroy','removeMailInteractions','removeSmsInteractions','removeOpenchannelInteractions','/:id/whatsapp_interactions','removeWhatsappInteractions','removeOpenchannelAccounts','removeSmsAccounts','removeChatWebsites','removeWhatsappAccounts','/:id/api_key','removeApiKey','multer','util','path','connect-timeout','express','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/describe','describe','/whoami','whoami','getPresence','/:id','show','/:id/avatar','getAvatar','/:id/open_tabs','getOpenTabs','/:id/queues','getQueues','/:id/queues_rt','getVoiceQueuesRt','/:id/groups','getGroups','/:id/recordings','getRecordings','getChatInteractions','/:id/openchannel/interactions','/:id/mail/interactions','getMailInteractions','/:id/sms/interactions','/:id/fax/interactions','getFaxInteractions','/:id/whatsapp/interactions','getWhatsappInteractions','/:id/teams','getTeams','/:id/lists','/:id/agents','getAgents','/:id/prefixes','getFaxAccounts','/:id/mail_accounts','/:id/openchannel_accounts','getOpenchannelAccounts','/:id/sms_accounts','getSmsAccounts','/:id/chat_websites','getChatWebsites','getWhatsappAccounts','/:id/square_projects','/:id/scheduled_calls','getApiKey','/:id/contacts','addContacts','create','post','/create_many','bulkCreate','addQueues','diskStorage','join','server/files/images/','format','%s-%s','addAvatar','/:id/login','/:id/logout','logout','pause','/:id/unpause','unpause','addTeams','/:id/chat_interactions','/:id/mail_interactions','addMailInteractions','/:id/fax_interactions','addFaxInteractions','/:id/sms_interactions','addSmsInteractions','/:id/openchannel_interactions','addOpenchannelInteractions','addWhatsappInteractions','/:id/fax_accounts','addFaxAccounts','addMailAccounts','addOpenchannelAccounts','addChatWebsites','/:id/whatsapp_accounts','addWhatsappAccounts','addSquareProjects','createApiKey'];(function(_0x2cda75,_0x151437){var _0x45b7e5=function(_0x1f6265){while(--_0x1f6265){_0x2cda75['push'](_0x2cda75['shift']());}};_0x45b7e5(++_0x151437);}(_0x5983,0x83));var _0x3598=function(_0xd0ee8c,_0x29087d){_0xd0ee8c=_0xd0ee8c-0x0;var _0xdcf0e1=_0x5983[_0xd0ee8c];return _0xdcf0e1;};'use strict';var multer=require(_0x3598('0x0'));var util=require(_0x3598('0x1'));var path=require(_0x3598('0x2'));var timeout=require(_0x3598('0x3'));var express=require(_0x3598('0x4'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0x3598('0x5'));var config=require(_0x3598('0x6'));var controller=require('./user.controller');router[_0x3598('0x7')]('/',auth[_0x3598('0x8')](),controller[_0x3598('0x9')]);router[_0x3598('0x7')](_0x3598('0xa'),auth[_0x3598('0x8')](),controller[_0x3598('0xb')]);router[_0x3598('0x7')](_0x3598('0xc'),auth[_0x3598('0x8')](),controller[_0x3598('0xd')]);router['get']('/presence',auth[_0x3598('0x8')](),controller[_0x3598('0xe')]);router['get'](_0x3598('0xf'),auth[_0x3598('0x8')](),controller[_0x3598('0x10')]);router[_0x3598('0x7')](_0x3598('0x11'),controller[_0x3598('0x12')]);router[_0x3598('0x7')](_0x3598('0x13'),auth[_0x3598('0x8')](),controller[_0x3598('0x14')]);router[_0x3598('0x7')]('/:id/contacts',auth[_0x3598('0x8')](),controller['getContacts']);router['get'](_0x3598('0x15'),auth[_0x3598('0x8')](),controller[_0x3598('0x16')]);router[_0x3598('0x7')](_0x3598('0x17'),auth[_0x3598('0x8')](),controller[_0x3598('0x18')]);router[_0x3598('0x7')](_0x3598('0x19'),auth['isAuthenticated'](),controller[_0x3598('0x1a')]);router['get'](_0x3598('0x1b'),auth['isAuthenticated'](),controller[_0x3598('0x1c')]);router[_0x3598('0x7')]('/:id/screen_recordings',auth['isAuthenticated'](),controller['getScreenRecordings']);router[_0x3598('0x7')]('/:id/chat/interactions',auth[_0x3598('0x8')](),controller[_0x3598('0x1d')]);router[_0x3598('0x7')](_0x3598('0x1e'),auth[_0x3598('0x8')](),controller['getOpenchannelInteractions']);router['get'](_0x3598('0x1f'),auth[_0x3598('0x8')](),controller[_0x3598('0x20')]);router[_0x3598('0x7')](_0x3598('0x21'),auth[_0x3598('0x8')](),controller['getSmsInteractions']);router['get'](_0x3598('0x22'),auth[_0x3598('0x8')](),controller[_0x3598('0x23')]);router[_0x3598('0x7')](_0x3598('0x24'),auth[_0x3598('0x8')](),controller[_0x3598('0x25')]);router[_0x3598('0x7')](_0x3598('0x26'),auth[_0x3598('0x8')](),controller[_0x3598('0x27')]);router['get'](_0x3598('0x28'),auth[_0x3598('0x8')](),controller['getLists']);router['get'](_0x3598('0x29'),auth[_0x3598('0x8')](),controller[_0x3598('0x2a')]);router[_0x3598('0x7')](_0x3598('0x2b'),auth['isAuthenticated'](),controller['getVoicePrefixes']);router['get']('/:id/fax_accounts',auth[_0x3598('0x8')](),controller[_0x3598('0x2c')]);router[_0x3598('0x7')](_0x3598('0x2d'),auth[_0x3598('0x8')](),controller['getMailAccounts']);router[_0x3598('0x7')](_0x3598('0x2e'),auth['isAuthenticated'](),controller[_0x3598('0x2f')]);router[_0x3598('0x7')](_0x3598('0x30'),auth[_0x3598('0x8')](),controller[_0x3598('0x31')]);router['get'](_0x3598('0x32'),auth['isAuthenticated'](),controller[_0x3598('0x33')]);router['get']('/:id/whatsapp_accounts',auth['isAuthenticated'](),controller[_0x3598('0x34')]);router[_0x3598('0x7')](_0x3598('0x35'),auth['isAuthenticated'](),controller['getSquareProjects']);router['get'](_0x3598('0x36'),auth[_0x3598('0x8')](),controller['getScheduledCalls']);router[_0x3598('0x7')]('/:id/api_key',auth[_0x3598('0x8')](),controller[_0x3598('0x37')]);router['post'](_0x3598('0x38'),auth['isAuthenticated'](),controller[_0x3598('0x39')]);router['post']('/',auth['isAuthenticated'](),controller[_0x3598('0x3a')]);router[_0x3598('0x3b')](_0x3598('0x3c'),auth[_0x3598('0x8')](),controller[_0x3598('0x3d')]);router[_0x3598('0x3b')](_0x3598('0x15'),auth[_0x3598('0x8')](),controller[_0x3598('0x3e')]);var upload=multer({'storage':multer[_0x3598('0x3f')]({'destination':function(_0x44d257,_0xe1a2cb,_0x5450d1){_0x5450d1(null,path[_0x3598('0x40')](config['root'],_0x3598('0x41')));},'filename':function(_0x343424,_0x5a0d22,_0xd4a0fa){_0xd4a0fa(null,util[_0x3598('0x42')](_0x3598('0x43'),Date['now'](),_0x5a0d22['originalname']));}})});router[_0x3598('0x3b')]('/:id/avatar',upload['single']('file'),controller[_0x3598('0x44')]);router[_0x3598('0x3b')](_0x3598('0x45'),auth[_0x3598('0x8')](),controller['login']);router[_0x3598('0x3b')](_0x3598('0x46'),auth[_0x3598('0x8')](),controller[_0x3598('0x47')]);router[_0x3598('0x3b')]('/:id/pause',auth[_0x3598('0x8')](),controller[_0x3598('0x48')]);router[_0x3598('0x3b')](_0x3598('0x49'),auth[_0x3598('0x8')](),controller[_0x3598('0x4a')]);router[_0x3598('0x3b')](_0x3598('0x26'),auth['isAuthenticated'](),controller[_0x3598('0x4b')]);router['post'](_0x3598('0x4c'),auth[_0x3598('0x8')](),controller['addChatInteractions']);router[_0x3598('0x3b')](_0x3598('0x4d'),auth[_0x3598('0x8')](),controller[_0x3598('0x4e')]);router['post'](_0x3598('0x4f'),auth[_0x3598('0x8')](),controller[_0x3598('0x50')]);router['post'](_0x3598('0x51'),auth[_0x3598('0x8')](),controller[_0x3598('0x52')]);router['post'](_0x3598('0x53'),auth[_0x3598('0x8')](),controller[_0x3598('0x54')]);router['post']('/:id/whatsapp_interactions',auth[_0x3598('0x8')](),controller[_0x3598('0x55')]);router[_0x3598('0x3b')](_0x3598('0x56'),auth[_0x3598('0x8')](),controller[_0x3598('0x57')]);router[_0x3598('0x3b')](_0x3598('0x2d'),auth[_0x3598('0x8')](),controller[_0x3598('0x58')]);router[_0x3598('0x3b')](_0x3598('0x2e'),auth[_0x3598('0x8')](),controller[_0x3598('0x59')]);router['post'](_0x3598('0x30'),auth[_0x3598('0x8')](),controller['addSmsAccounts']);router['post'](_0x3598('0x32'),auth['isAuthenticated'](),controller[_0x3598('0x5a')]);router[_0x3598('0x3b')](_0x3598('0x5b'),auth[_0x3598('0x8')](),controller[_0x3598('0x5c')]);router['post'](_0x3598('0x35'),auth[_0x3598('0x8')](),controller[_0x3598('0x5d')]);router[_0x3598('0x3b')]('/:id/api_key',auth[_0x3598('0x8')](),controller[_0x3598('0x5e')]);router['put'](_0x3598('0xf'),auth[_0x3598('0x8')](),controller['update']);router[_0x3598('0x5f')](_0x3598('0x60'),auth[_0x3598('0x8')](),controller[_0x3598('0x61')]);router['delete'](_0x3598('0x15'),auth[_0x3598('0x8')](),controller[_0x3598('0x62')]);router[_0x3598('0x63')](_0x3598('0x26'),auth['isAuthenticated'](),controller[_0x3598('0x64')]);router[_0x3598('0x63')](_0x3598('0xf'),auth[_0x3598('0x8')](),controller[_0x3598('0x65')]);router['delete']('/:id/chat_interactions',auth[_0x3598('0x8')](),controller['removeChatInteractions']);router[_0x3598('0x63')](_0x3598('0x4d'),auth[_0x3598('0x8')](),controller[_0x3598('0x66')]);router[_0x3598('0x63')]('/:id/fax_interactions',auth[_0x3598('0x8')](),controller['removeFaxInteractions']);router['delete'](_0x3598('0x51'),auth[_0x3598('0x8')](),controller[_0x3598('0x67')]);router['delete']('/:id/openchannel_interactions',auth['isAuthenticated'](),controller[_0x3598('0x68')]);router[_0x3598('0x63')](_0x3598('0x69'),auth['isAuthenticated'](),controller[_0x3598('0x6a')]);router['delete']('/:id/fax_accounts',auth[_0x3598('0x8')](),controller['removeFaxAccounts']);router[_0x3598('0x63')](_0x3598('0x2d'),auth[_0x3598('0x8')](),controller['removeMailAccounts']);router[_0x3598('0x63')]('/:id/openchannel_accounts',auth[_0x3598('0x8')](),controller[_0x3598('0x6b')]);router[_0x3598('0x63')]('/:id/sms_accounts',auth['isAuthenticated'](),controller[_0x3598('0x6c')]);router[_0x3598('0x63')](_0x3598('0x32'),auth[_0x3598('0x8')](),controller[_0x3598('0x6d')]);router[_0x3598('0x63')](_0x3598('0x5b'),auth[_0x3598('0x8')](),controller[_0x3598('0x6e')]);router['delete'](_0x3598('0x35'),auth[_0x3598('0x8')](),controller['removeSquareProjects']);router[_0x3598('0x63')](_0x3598('0x6f'),auth[_0x3598('0x8')](),controller[_0x3598('0x70')]);module['exports']=router;
\ No newline at end of file
+var _0x4113=['/:id/whatsapp_interactions','addWhatsappInteractions','/:id/fax_accounts','addFaxAccounts','/:id/mail_accounts','addMailAccounts','addChatWebsites','addWhatsappAccounts','addSquareProjects','createApiKey','put','update','/:id/password','changePassword','delete','removeQueues','destroy','removeMailInteractions','removeFaxInteractions','removeWhatsappInteractions','removeFaxAccounts','removeMailAccounts','removeSmsAccounts','removeChatWebsites','removeWhatsappAccounts','removeSquareProjects','exports','multer','util','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./user.controller','get','isAuthenticated','index','/describe','describe','/whoami','whoami','getPresence','/:id','/:id/contacts','getContacts','/:id/queues','getQueues','/:id/queues_rt','getVoiceQueuesRt','/:id/recordings','getRecordings','getScreenRecordings','/:id/chat/interactions','/:id/openchannel/interactions','getOpenchannelInteractions','/:id/mail/interactions','getMailInteractions','/:id/sms/interactions','getSmsInteractions','/:id/fax/interactions','getWhatsappInteractions','/:id/teams','/:id/lists','getLists','getAgents','/:id/prefixes','getVoicePrefixes','getFaxAccounts','getMailAccounts','/:id/openchannel_accounts','getOpenchannelAccounts','/:id/sms_accounts','/:id/chat_websites','getChatWebsites','/:id/whatsapp_accounts','getWhatsappAccounts','/:id/square_projects','getScheduledCalls','/:id/api_key','getApiKey','post','create','diskStorage','join','root','server/files/images/','format','%s-%s','now','single','file','addAvatar','/:id/login','/:id/logout','logout','/:id/unpause','unpause','/:id/mail_interactions','/:id/fax_interactions','addFaxInteractions','/:id/sms_interactions','addSmsInteractions','/:id/openchannel_interactions','addOpenchannelInteractions'];(function(_0x49c7bd,_0x1432db){var _0x1ba37d=function(_0x30f525){while(--_0x30f525){_0x49c7bd['push'](_0x49c7bd['shift']());}};_0x1ba37d(++_0x1432db);}(_0x4113,0x1bf));var _0x3411=function(_0xf2dc59,_0x5364dc){_0xf2dc59=_0xf2dc59-0x0;var _0x3a5d7a=_0x4113[_0xf2dc59];return _0x3a5d7a;};'use strict';var multer=require(_0x3411('0x0'));var util=require(_0x3411('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0x3411('0x2'));var router=express['Router']();var fs_extra=require(_0x3411('0x3'));var auth=require(_0x3411('0x4'));var interaction=require(_0x3411('0x5'));var config=require(_0x3411('0x6'));var controller=require(_0x3411('0x7'));router[_0x3411('0x8')]('/',auth[_0x3411('0x9')](),controller[_0x3411('0xa')]);router[_0x3411('0x8')](_0x3411('0xb'),auth['isAuthenticated'](),controller[_0x3411('0xc')]);router[_0x3411('0x8')](_0x3411('0xd'),auth[_0x3411('0x9')](),controller[_0x3411('0xe')]);router[_0x3411('0x8')]('/presence',auth[_0x3411('0x9')](),controller[_0x3411('0xf')]);router[_0x3411('0x8')](_0x3411('0x10'),auth[_0x3411('0x9')](),controller['show']);router[_0x3411('0x8')]('/:id/avatar',controller['getAvatar']);router[_0x3411('0x8')]('/:id/open_tabs',auth[_0x3411('0x9')](),controller['getOpenTabs']);router['get'](_0x3411('0x11'),auth[_0x3411('0x9')](),controller[_0x3411('0x12')]);router[_0x3411('0x8')](_0x3411('0x13'),auth[_0x3411('0x9')](),controller[_0x3411('0x14')]);router[_0x3411('0x8')](_0x3411('0x15'),auth['isAuthenticated'](),controller[_0x3411('0x16')]);router['get']('/:id/groups',auth[_0x3411('0x9')](),controller['getGroups']);router[_0x3411('0x8')](_0x3411('0x17'),auth[_0x3411('0x9')](),controller[_0x3411('0x18')]);router['get']('/:id/screen_recordings',auth[_0x3411('0x9')](),controller[_0x3411('0x19')]);router[_0x3411('0x8')](_0x3411('0x1a'),auth[_0x3411('0x9')](),controller['getChatInteractions']);router[_0x3411('0x8')](_0x3411('0x1b'),auth['isAuthenticated'](),controller[_0x3411('0x1c')]);router['get'](_0x3411('0x1d'),auth[_0x3411('0x9')](),controller[_0x3411('0x1e')]);router[_0x3411('0x8')](_0x3411('0x1f'),auth['isAuthenticated'](),controller[_0x3411('0x20')]);router['get'](_0x3411('0x21'),auth[_0x3411('0x9')](),controller['getFaxInteractions']);router[_0x3411('0x8')]('/:id/whatsapp/interactions',auth[_0x3411('0x9')](),controller[_0x3411('0x22')]);router[_0x3411('0x8')](_0x3411('0x23'),auth[_0x3411('0x9')](),controller['getTeams']);router[_0x3411('0x8')](_0x3411('0x24'),auth[_0x3411('0x9')](),controller[_0x3411('0x25')]);router[_0x3411('0x8')]('/:id/agents',auth[_0x3411('0x9')](),controller[_0x3411('0x26')]);router[_0x3411('0x8')](_0x3411('0x27'),auth['isAuthenticated'](),controller[_0x3411('0x28')]);router[_0x3411('0x8')]('/:id/fax_accounts',auth[_0x3411('0x9')](),controller[_0x3411('0x29')]);router['get']('/:id/mail_accounts',auth[_0x3411('0x9')](),controller[_0x3411('0x2a')]);router[_0x3411('0x8')](_0x3411('0x2b'),auth[_0x3411('0x9')](),controller[_0x3411('0x2c')]);router['get'](_0x3411('0x2d'),auth[_0x3411('0x9')](),controller['getSmsAccounts']);router[_0x3411('0x8')](_0x3411('0x2e'),auth[_0x3411('0x9')](),controller[_0x3411('0x2f')]);router[_0x3411('0x8')](_0x3411('0x30'),auth[_0x3411('0x9')](),controller[_0x3411('0x31')]);router[_0x3411('0x8')](_0x3411('0x32'),auth['isAuthenticated'](),controller['getSquareProjects']);router[_0x3411('0x8')]('/:id/scheduled_calls',auth[_0x3411('0x9')](),controller[_0x3411('0x33')]);router[_0x3411('0x8')](_0x3411('0x34'),auth['isAuthenticated'](),controller[_0x3411('0x35')]);router[_0x3411('0x36')](_0x3411('0x11'),auth[_0x3411('0x9')](),controller['addContacts']);router[_0x3411('0x36')]('/',auth[_0x3411('0x9')](),controller[_0x3411('0x37')]);router[_0x3411('0x36')]('/create_many',auth[_0x3411('0x9')](),controller['bulkCreate']);router['post'](_0x3411('0x13'),auth[_0x3411('0x9')](),controller['addQueues']);var upload=multer({'storage':multer[_0x3411('0x38')]({'destination':function(_0x1a48ab,_0x3fb9fd,_0x42e193){_0x42e193(null,path[_0x3411('0x39')](config[_0x3411('0x3a')],_0x3411('0x3b')));},'filename':function(_0x53daa1,_0x5e70d9,_0x54993c){_0x54993c(null,util[_0x3411('0x3c')](_0x3411('0x3d'),Date[_0x3411('0x3e')](),_0x5e70d9['originalname']));}})});router[_0x3411('0x36')]('/:id/avatar',upload[_0x3411('0x3f')](_0x3411('0x40')),controller[_0x3411('0x41')]);router[_0x3411('0x36')](_0x3411('0x42'),auth[_0x3411('0x9')](),controller['login']);router[_0x3411('0x36')](_0x3411('0x43'),auth[_0x3411('0x9')](),controller[_0x3411('0x44')]);router[_0x3411('0x36')]('/:id/pause',auth[_0x3411('0x9')](),controller['pause']);router[_0x3411('0x36')](_0x3411('0x45'),auth['isAuthenticated'](),controller[_0x3411('0x46')]);router[_0x3411('0x36')](_0x3411('0x23'),auth[_0x3411('0x9')](),controller['addTeams']);router[_0x3411('0x36')]('/:id/chat_interactions',auth[_0x3411('0x9')](),controller['addChatInteractions']);router[_0x3411('0x36')](_0x3411('0x47'),auth[_0x3411('0x9')](),controller['addMailInteractions']);router[_0x3411('0x36')](_0x3411('0x48'),auth[_0x3411('0x9')](),controller[_0x3411('0x49')]);router[_0x3411('0x36')](_0x3411('0x4a'),auth[_0x3411('0x9')](),controller[_0x3411('0x4b')]);router['post'](_0x3411('0x4c'),auth[_0x3411('0x9')](),controller[_0x3411('0x4d')]);router['post'](_0x3411('0x4e'),auth[_0x3411('0x9')](),controller[_0x3411('0x4f')]);router['post'](_0x3411('0x50'),auth[_0x3411('0x9')](),controller[_0x3411('0x51')]);router[_0x3411('0x36')](_0x3411('0x52'),auth[_0x3411('0x9')](),controller[_0x3411('0x53')]);router['post'](_0x3411('0x2b'),auth[_0x3411('0x9')](),controller['addOpenchannelAccounts']);router[_0x3411('0x36')](_0x3411('0x2d'),auth[_0x3411('0x9')](),controller['addSmsAccounts']);router[_0x3411('0x36')](_0x3411('0x2e'),auth[_0x3411('0x9')](),controller[_0x3411('0x54')]);router[_0x3411('0x36')](_0x3411('0x30'),auth[_0x3411('0x9')](),controller[_0x3411('0x55')]);router['post'](_0x3411('0x32'),auth[_0x3411('0x9')](),controller[_0x3411('0x56')]);router[_0x3411('0x36')](_0x3411('0x34'),auth[_0x3411('0x9')](),controller[_0x3411('0x57')]);router[_0x3411('0x58')](_0x3411('0x10'),auth[_0x3411('0x9')](),controller[_0x3411('0x59')]);router[_0x3411('0x58')](_0x3411('0x5a'),auth[_0x3411('0x9')](),controller[_0x3411('0x5b')]);router[_0x3411('0x5c')](_0x3411('0x13'),auth[_0x3411('0x9')](),controller[_0x3411('0x5d')]);router['delete']('/:id/teams',auth['isAuthenticated'](),controller['removeTeams']);router[_0x3411('0x5c')]('/:id',auth[_0x3411('0x9')](),controller[_0x3411('0x5e')]);router['delete']('/:id/chat_interactions',auth[_0x3411('0x9')](),controller['removeChatInteractions']);router[_0x3411('0x5c')](_0x3411('0x47'),auth['isAuthenticated'](),controller[_0x3411('0x5f')]);router[_0x3411('0x5c')](_0x3411('0x48'),auth['isAuthenticated'](),controller[_0x3411('0x60')]);router['delete']('/:id/sms_interactions',auth[_0x3411('0x9')](),controller['removeSmsInteractions']);router['delete'](_0x3411('0x4c'),auth['isAuthenticated'](),controller['removeOpenchannelInteractions']);router['delete'](_0x3411('0x4e'),auth[_0x3411('0x9')](),controller[_0x3411('0x61')]);router[_0x3411('0x5c')](_0x3411('0x50'),auth[_0x3411('0x9')](),controller[_0x3411('0x62')]);router[_0x3411('0x5c')](_0x3411('0x52'),auth[_0x3411('0x9')](),controller[_0x3411('0x63')]);router[_0x3411('0x5c')](_0x3411('0x2b'),auth['isAuthenticated'](),controller['removeOpenchannelAccounts']);router['delete'](_0x3411('0x2d'),auth['isAuthenticated'](),controller[_0x3411('0x64')]);router['delete'](_0x3411('0x2e'),auth[_0x3411('0x9')](),controller[_0x3411('0x65')]);router['delete'](_0x3411('0x30'),auth[_0x3411('0x9')](),controller[_0x3411('0x66')]);router['delete'](_0x3411('0x32'),auth['isAuthenticated'](),controller[_0x3411('0x67')]);router[_0x3411('0x5c')](_0x3411('0x34'),auth[_0x3411('0x9')](),controller['removeApiKey']);module[_0x3411('0x68')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9432=['lodash','exports','name','setDataValue','defaultuser','The\x20name\x20of\x20the\x20user','STRING','fullname','callerid','\x22%s\x22\x20<%s>','getDataValue','internal','email','toLowerCase','ENUM','admin','user','agent','telephone','local','INTEGER','accountcode','DATE','BOOLEAN','DEFAULT\x20PAUSE','dynamic','friend','peer','from-sip','ALLOWED_NOT_SCREENED','ALLOWED_PASSED_SCREEN','ALLOWED_FAILED_SCREEN','ALLOWED','PROHIB_NOT_SCREENED','PROHIB_PASSED_SCREEN','PROHIB_FAILED_SCREEN','PROHIB','udp','transport','split','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22udp\x22,\x20\x22tcp\x22]','rfc2833','info','shortinfo','inband','auto','yes','nonat','update','outgoing','nat','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22force_rport\x22,\x20\x22comedia\x22]','all','ulaw;alaw;gsm','allow','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22ulaw\x22,\x20\x22alaw\x22,\x20\x22gsm\x22]','insecure','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22port\x22,\x20\x22invite\x22]','never','\x22\x22\x20<>','accept','refuse','originate','uac','uas','fingerprint','certificate','active','passive','update,nonat','TEXT','showWebBar','get','isArray','encryption','force_avp','icesupport','dtlsverify','rtcp_mux','wss','dtlssetup','actpass','dtlscertfile','/etc/pki/tls/certs/motion.crt','dtlsprivatekey','permissions','join','map','VIRTUAL','phoneBarEnableScreenRecordingByAgent','false','screenrecording','blocked','blockedAt','loginAttempts','sequelize','moment'];(function(_0x458db7,_0x118cfc){var _0xb5dbe=function(_0x425988){while(--_0x425988){_0x458db7['push'](_0x458db7['shift']());}};_0xb5dbe(++_0x118cfc);}(_0x9432,0x1e3));var _0x2943=function(_0x4f146a,_0x424082){_0x4f146a=_0x4f146a-0x0;var _0x311428=_0x9432[_0x4f146a];return _0x311428;};'use strict';var Sequelize=require(_0x2943('0x0'));var moment=require(_0x2943('0x1'));var util=require('util');var _=require(_0x2943('0x2'));module[_0x2943('0x3')]={'name':{'type':Sequelize['STRING'],'allowNull':![],'unique':_0x2943('0x4'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i},'set':function(_0x571144){this['setDataValue'](_0x2943('0x4'),_0x571144);this[_0x2943('0x5')](_0x2943('0x6'),_0x571144);},'comment':_0x2943('0x7')},'fullname':{'type':Sequelize[_0x2943('0x8')],'allowNull':![],'set':function(_0x56f65f){this[_0x2943('0x5')](_0x2943('0x9'),_0x56f65f);this[_0x2943('0x5')](_0x2943('0xa'),util['format'](_0x2943('0xb'),_0x56f65f,this[_0x2943('0xc')](_0x2943('0xd'))));}},'alias':{'type':Sequelize['STRING']},'email':{'type':Sequelize[_0x2943('0x8')],'allowNull':![],'unique':'email','validate':{'isEmail':!![]},'set':function(_0x3e7866){if(_0x3e7866){this[_0x2943('0x5')](_0x2943('0xe'),_0x3e7866[_0x2943('0xf')]());}}},'role':{'type':Sequelize[_0x2943('0x10')](_0x2943('0x11'),_0x2943('0x12'),_0x2943('0x13'),_0x2943('0x14')),'allowNull':![]},'password':{'type':Sequelize[_0x2943('0x8')],'allowNull':![],'validate':{'notEmpty':!![]}},'provider':{'type':Sequelize[_0x2943('0x8')],'defaultValue':_0x2943('0x15')},'internal':{'type':Sequelize[_0x2943('0x16')](0xb),'allowNull':![],'unique':'internal','set':function(_0x306eae){this[_0x2943('0x5')](_0x2943('0xd'),_0x306eae);this[_0x2943('0x5')](_0x2943('0x17'),_0x306eae);this[_0x2943('0x5')](_0x2943('0xa'),util['format']('\x22%s\x22\x20<%s>',this[_0x2943('0xc')]('fullname'),_0x306eae));}},'salt':{'type':Sequelize['STRING']},'phone':{'type':Sequelize[_0x2943('0x8')]},'mobile':{'type':Sequelize['STRING']},'address':{'type':Sequelize[_0x2943('0x8')]},'zipcode':{'type':Sequelize['STRING']},'userpic':{'type':Sequelize[_0x2943('0x8')]},'city':{'type':Sequelize[_0x2943('0x8')]},'country':{'type':Sequelize[_0x2943('0x8')]},'online':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'lastLoginAt':{'type':Sequelize[_0x2943('0x18')]},'voicePause':{'type':Sequelize[_0x2943('0x19')],'defaultValue':![]},'chatPause':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'mailPause':{'type':Sequelize[_0x2943('0x19')],'defaultValue':![]},'faxPause':{'type':Sequelize[_0x2943('0x19')],'defaultValue':![]},'smsPause':{'type':Sequelize[_0x2943('0x19')],'defaultValue':![]},'whatsappPause':{'type':Sequelize[_0x2943('0x19')],'defaultValue':![]},'openchannelPause':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'pauseType':{'type':Sequelize[_0x2943('0x8')],'defaultValue':_0x2943('0x1a')},'lastPauseAt':{'type':Sequelize['DATE']},'chatCapacity':{'type':Sequelize[_0x2943('0x16')],'defaultValue':0x0},'mailCapacity':{'type':Sequelize[_0x2943('0x16')],'defaultValue':0x0},'faxCapacity':{'type':Sequelize[_0x2943('0x16')],'defaultValue':0x0},'smsCapacity':{'type':Sequelize[_0x2943('0x16')],'defaultValue':0x0},'whatsappCapacity':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'openchannelCapacity':{'type':Sequelize[_0x2943('0x16')],'defaultValue':0x0},'phoneBarAutoAnswer':{'type':Sequelize[_0x2943('0x19')],'defaultValue':![]},'phoneBarEnableSettings':{'type':Sequelize[_0x2943('0x19')],'defaultValue':!![]},'phoneBarListenPort':{'type':Sequelize[_0x2943('0x16')](0x5),'defaultValue':0x1428},'phoneBarExpires':{'type':Sequelize['INTEGER'](0x5),'defaultValue':0x78},'phoneBarRemoteControl':{'type':Sequelize[_0x2943('0x19')],'defaultValue':![]},'phoneBarRemoteControlPort':{'type':Sequelize['INTEGER'],'defaultValue':0x26a0},'phoneBarEnableRecording':{'type':Sequelize[_0x2943('0x19')],'defaultValue':![]},'phoneBarRingInUse':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'chanspy':{'type':Sequelize[_0x2943('0x19')],'defaultValue':![]},'description':{'type':Sequelize[_0x2943('0x8')],'allowNull':!![]},'host':{'type':Sequelize[_0x2943('0x8')],'allowNull':!![],'defaultValue':_0x2943('0x1b')},'ipaddr':{'type':Sequelize[_0x2943('0x8')],'allowNull':!![]},'port':{'type':Sequelize['INTEGER'](0x5),'allowNull':!![]},'regseconds':{'type':Sequelize[_0x2943('0x16')](0xb),'allowNull':!![]},'fullcontact':{'type':Sequelize[_0x2943('0x8')],'allowNull':!![]},'regserver':{'type':Sequelize[_0x2943('0x8')],'allowNull':!![]},'useragent':{'type':Sequelize['STRING'],'allowNull':!![]},'lastms':{'type':Sequelize[_0x2943('0x16')](0xb),'allowNull':!![]},'type':{'type':Sequelize[_0x2943('0x10')](_0x2943('0x1c'),_0x2943('0x12'),_0x2943('0x1d')),'allowNull':!![],'defaultValue':_0x2943('0x1c')},'context':{'type':Sequelize[_0x2943('0x8')],'allowNull':!![],'defaultValue':_0x2943('0x1e')},'callingpres':{'type':Sequelize['ENUM'](_0x2943('0x1f'),_0x2943('0x20'),_0x2943('0x21'),_0x2943('0x22'),_0x2943('0x23'),_0x2943('0x24'),_0x2943('0x25'),_0x2943('0x26')),'allowNull':!![]},'deny':{'type':Sequelize['STRING'],'allowNull':!![]},'permit':{'type':Sequelize[_0x2943('0x8')],'allowNull':!![]},'secret':{'type':Sequelize[_0x2943('0x8')],'allowNull':!![]},'md5secret':{'type':Sequelize[_0x2943('0x8')],'allowNull':!![]},'remotesecret':{'type':Sequelize[_0x2943('0x8')],'allowNull':!![]},'transport':{'type':Sequelize[_0x2943('0x8')],'allowNull':!![],'defaultValue':_0x2943('0x27'),'set':function(_0x47fe7f){this['setDataValue']('transport',_0x47fe7f?_0x47fe7f['join'](','):null);},'get':function(){return this[_0x2943('0xc')](_0x2943('0x28'))?this[_0x2943('0xc')]('transport')[_0x2943('0x29')](','):null;},'comment':_0x2943('0x2a')},'dtmfmode':{'type':Sequelize[_0x2943('0x10')](_0x2943('0x2b'),_0x2943('0x2c'),_0x2943('0x2d'),_0x2943('0x2e'),_0x2943('0x2f')),'allowNull':!![],'defaultValue':_0x2943('0x2b')},'directmedia':{'type':Sequelize[_0x2943('0x10')](_0x2943('0x30'),'no',_0x2943('0x31'),_0x2943('0x32'),_0x2943('0x33')),'allowNull':!![],'defaultValue':'no'},'directrtpsetup':{'type':Sequelize[_0x2943('0x10')](_0x2943('0x30'),'no'),'allowNull':!![],'defaultValue':'no'},'directmediapermit':{'type':Sequelize[_0x2943('0x8')],'allowNull':!![]},'directmediadeny':{'type':Sequelize[_0x2943('0x8')],'allowNull':!![]},'nat':{'type':Sequelize[_0x2943('0x8')],'allowNull':!![],'defaultValue':'force_rport,comedia','set':function(_0x555ba7){this['setDataValue']('nat',_0x555ba7?_0x555ba7['join'](','):null);},'get':function(){return this[_0x2943('0xc')](_0x2943('0x34'))?this['getDataValue'](_0x2943('0x34'))[_0x2943('0x29')](','):null;},'comment':_0x2943('0x35')},'callgroup':{'type':Sequelize['STRING']},'namedcallgroup':{'type':Sequelize[_0x2943('0x8')]},'pickupgroup':{'type':Sequelize['STRING']},'namedpickupgroup':{'type':Sequelize[_0x2943('0x8')]},'language':{'type':Sequelize['STRING'],'defaultValue':'en'},'tonezone':{'type':Sequelize['STRING']},'disallow':{'type':Sequelize[_0x2943('0x8')],'allowNull':![],'defaultValue':_0x2943('0x36')},'allow':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0x2943('0x37'),'set':function(_0x218f03){this[_0x2943('0x5')]('allow',_0x218f03?_0x218f03['join'](';'):'ulaw;alaw;gsm');},'get':function(){return this[_0x2943('0xc')]('allow')?this[_0x2943('0xc')](_0x2943('0x38'))[_0x2943('0x29')](';'):null;},'comment':_0x2943('0x39')},'autoframing':{'type':Sequelize[_0x2943('0x10')](_0x2943('0x30'),'no'),'allowNull':!![]},'insecure':{'type':Sequelize[_0x2943('0x8')],'allowNull':!![],'set':function(_0x233b7d){this[_0x2943('0x5')](_0x2943('0x3a'),_0x233b7d?_0x233b7d['join'](','):null);},'get':function(){return this['getDataValue'](_0x2943('0x3a'))?this[_0x2943('0xc')]('insecure')[_0x2943('0x29')](','):null;},'comment':_0x2943('0x3b')},'trustrpid':{'type':Sequelize[_0x2943('0x10')](_0x2943('0x30'),'no'),'allowNull':!![],'defaultValue':'no'},'trust_id_outbound':{'type':Sequelize[_0x2943('0x10')](_0x2943('0x30'),'no'),'allowNull':!![],'defaultValue':'no'},'progressinband':{'type':Sequelize[_0x2943('0x10')](_0x2943('0x30'),'no',_0x2943('0x3c')),'allowNull':!![]},'promiscredir':{'type':Sequelize[_0x2943('0x10')](_0x2943('0x30'),'no'),'allowNull':!![]},'useclientcode':{'type':Sequelize[_0x2943('0x10')](_0x2943('0x30'),'no'),'allowNull':!![]},'accountcode':{'type':Sequelize[_0x2943('0x16')](0xb),'allowNull':!![]},'setvar':{'type':Sequelize[_0x2943('0x8')],'allowNull':!![]},'callerid':{'type':Sequelize[_0x2943('0x8')],'allowNull':!![],'defaultValue':_0x2943('0x3d')},'amaflags':{'type':Sequelize[_0x2943('0x8')],'allowNull':!![]},'callcounter':{'type':Sequelize[_0x2943('0x10')](_0x2943('0x30'),'no'),'allowNull':!![],'defaultValue':_0x2943('0x30')},'busylevel':{'type':Sequelize[_0x2943('0x16')](0xb),'allowNull':!![]},'allowoverlap':{'type':Sequelize[_0x2943('0x10')](_0x2943('0x30'),'no'),'allowNull':!![]},'allowsubscribe':{'type':Sequelize['ENUM'](_0x2943('0x30'),'no'),'allowNull':!![]},'allowtransfer':{'type':Sequelize[_0x2943('0x10')](_0x2943('0x30'),'no'),'allowNull':!![]},'ignoresdpversion':{'type':Sequelize[_0x2943('0x10')](_0x2943('0x30'),'no'),'allowNull':!![]},'subscribecontext':{'type':Sequelize[_0x2943('0x8')],'allowNull':!![]},'template':{'type':Sequelize['STRING'],'allowNull':!![]},'videosupport':{'type':Sequelize[_0x2943('0x10')]('yes','no','always'),'allowNull':!![],'defaultValue':'no'},'maxcallbitrate':{'type':Sequelize[_0x2943('0x16')](0xb),'allowNull':!![]},'rfc2833compensate':{'type':Sequelize[_0x2943('0x10')](_0x2943('0x30'),'no'),'allowNull':!![]},'mailbox':{'type':Sequelize[_0x2943('0x8')],'allowNull':!![]},'session_timers':{'type':Sequelize[_0x2943('0x10')](_0x2943('0x3e'),_0x2943('0x3f'),_0x2943('0x40')),'allowNull':!![]},'session_expires':{'type':Sequelize[_0x2943('0x16')](0xb),'allowNull':!![]},'session_minse':{'type':Sequelize[_0x2943('0x16')](0xb),'allowNull':!![]},'session_refresher':{'type':Sequelize['ENUM'](_0x2943('0x41'),_0x2943('0x42')),'allowNull':!![],'defaultValue':_0x2943('0x42')},'t38pt_usertpsource':{'type':Sequelize[_0x2943('0x8')],'allowNull':!![]},'regexten':{'type':Sequelize[_0x2943('0x8')],'allowNull':!![]},'fromdomain':{'type':Sequelize[_0x2943('0x8')],'allowNull':!![]},'fromuser':{'type':Sequelize[_0x2943('0x8')],'allowNull':!![]},'qualify':{'type':Sequelize['ENUM'](_0x2943('0x30'),'no'),'allowNull':!![],'defaultValue':_0x2943('0x30')},'keepalive':{'type':Sequelize[_0x2943('0x16')](0xb),'allowNull':!![]},'defaultip':{'type':Sequelize['STRING'],'allowNull':!![]},'defaultuser':{'type':Sequelize['STRING'],'allowNull':!![]},'rtptimeout':{'type':Sequelize[_0x2943('0x16')](0xb),'allowNull':!![]},'rtpholdtimeout':{'type':Sequelize[_0x2943('0x16')](0xb),'allowNull':!![]},'rtpkeepalive':{'type':Sequelize[_0x2943('0x16')](0xb),'allowNull':!![]},'sendrpid':{'type':Sequelize['ENUM'](_0x2943('0x30'),'no'),'allowNull':!![],'defaultValue':'no'},'outboundproxy':{'type':Sequelize['STRING'],'allowNull':!![]},'callbackextension':{'type':Sequelize[_0x2943('0x8')],'allowNull':!![]},'timert1':{'type':Sequelize[_0x2943('0x16')](0xb),'allowNull':!![]},'timerb':{'type':Sequelize['INTEGER'](0xb),'allowNull':!![]},'qualifyfreq':{'type':Sequelize['INTEGER'](0xb),'allowNull':!![]},'contactpermit':{'type':Sequelize['STRING'],'allowNull':!![]},'contactdeny':{'type':Sequelize['STRING'],'allowNull':!![]},'contactacl':{'type':Sequelize['STRING'],'allowNull':!![]},'unsolicited_mailbox':{'type':Sequelize[_0x2943('0x8')],'allowNull':!![]},'use_q850_reason':{'type':Sequelize['STRING'],'allowNull':!![]},'maxforwards':{'type':Sequelize[_0x2943('0x16')](0xb),'allowNull':!![]},'encryption':{'type':Sequelize[_0x2943('0x10')](_0x2943('0x30'),'no'),'allowNull':!![],'defaultValue':'no'},'avpf':{'type':Sequelize[_0x2943('0x10')](_0x2943('0x30'),'no'),'allowNull':!![]},'force_avp':{'type':Sequelize[_0x2943('0x10')](_0x2943('0x30'),'no'),'allowNull':!![]},'icesupport':{'type':Sequelize['ENUM'](_0x2943('0x30'),'no'),'allowNull':!![]},'dtlsenable':{'type':Sequelize['ENUM'](_0x2943('0x30'),'no'),'allowNull':!![]},'dtlsverify':{'type':Sequelize['ENUM']('yes','no',_0x2943('0x43'),_0x2943('0x44')),'allowNull':!![]},'dtlsrekey':{'type':Sequelize[_0x2943('0x16')](0xb),'allowNull':!![]},'dtlscertfile':{'type':Sequelize[_0x2943('0x8')],'allowNull':!![]},'dtlsprivatekey':{'type':Sequelize['STRING'],'allowNull':!![]},'dtlscipher':{'type':Sequelize[_0x2943('0x8')],'allowNull':!![]},'dtlscafile':{'type':Sequelize[_0x2943('0x8')],'allowNull':!![]},'dtlscapath':{'type':Sequelize[_0x2943('0x8')],'allowNull':!![]},'dtlssetup':{'type':Sequelize[_0x2943('0x10')](_0x2943('0x45'),_0x2943('0x46'),'actpass'),'allowNull':!![]},'dtlsfingerprint':{'type':Sequelize[_0x2943('0x8')],'allowNull':!![]},'usereqphone':{'type':Sequelize['ENUM']('yes','no'),'allowNull':!![],'defaultValue':'no'},'recordonfeature':{'type':Sequelize['STRING'],'allowNull':!![]},'recordofffeature':{'type':Sequelize['STRING'],'allowNull':!![]},'call_limit':{'type':Sequelize['INTEGER'](0xb),'allowNull':!![],'defaultValue':0xa},'registertrying':{'type':Sequelize[_0x2943('0x10')](_0x2943('0x30'),'no'),'allowNull':!![]},'subscribemwi':{'type':Sequelize[_0x2943('0x10')]('yes','no'),'allowNull':!![]},'vmexten':{'type':Sequelize[_0x2943('0x8')],'allowNull':!![]},'mohinterpret':{'type':Sequelize[_0x2943('0x8')],'allowNull':!![]},'mohsuggest':{'type':Sequelize['STRING'],'allowNull':!![]},'parkinglot':{'type':Sequelize[_0x2943('0x8')],'allowNull':!![]},'canreinvite':{'type':Sequelize[_0x2943('0x10')](_0x2943('0x30'),'no','nonat','update',_0x2943('0x47')),'allowNull':!![],'defaultValue':'no'},'loginInPause':{'type':Sequelize[_0x2943('0x19')],'defaultValue':![]},'resetPasswordToken':{'type':Sequelize['STRING']},'resetPasswordExpires':{'type':Sequelize[_0x2943('0x18')]},'passwordResetAt':{'type':Sequelize[_0x2943('0x18')],'defaultValue':null},'previousPasswords':{'type':Sequelize[_0x2943('0x48')]},'showWebBar':{'type':Sequelize[_0x2943('0x16')],'defaultValue':0x0,'set':function(_0x1acdf1){this[_0x2943('0x5')](_0x2943('0x49'),_0x1acdf1);var _0x516480=this[_0x2943('0x4a')]({'plain':!![]});switch(_0x1acdf1){case 0x0:case 0x1:var _0x1b4679=_0x516480[_0x2943('0x28')]?_[_0x2943('0x4b')](_0x516480[_0x2943('0x28')])?_0x516480[_0x2943('0x28')]['join']():_0x516480[_0x2943('0x28')]:_0x2943('0x27');if(_0x1b4679==='wss'){_0x1b4679=_0x2943('0x27');}this[_0x2943('0x5')](_0x2943('0x28'),_0x1b4679);this[_0x2943('0x5')](_0x2943('0x4c'),'no');this[_0x2943('0x5')]('avpf',null);this[_0x2943('0x5')](_0x2943('0x4d'),null);this['setDataValue'](_0x2943('0x4e'),null);this[_0x2943('0x5')]('dtlsenable',null);this[_0x2943('0x5')](_0x2943('0x4f'),null);this['setDataValue']('dtlssetup',null);this[_0x2943('0x5')]('dtlscertfile',null);this[_0x2943('0x5')]('dtlsprivatekey',null);this[_0x2943('0x5')](_0x2943('0x50'),'no');break;case 0x2:this[_0x2943('0x5')](_0x2943('0x28'),_0x2943('0x51'));this[_0x2943('0x5')]('encryption',_0x2943('0x30'));this[_0x2943('0x5')]('avpf',_0x2943('0x30'));this['setDataValue'](_0x2943('0x4d'),_0x2943('0x30'));this['setDataValue'](_0x2943('0x4e'),_0x2943('0x30'));this[_0x2943('0x5')]('dtlsenable',_0x2943('0x30'));this[_0x2943('0x5')](_0x2943('0x4f'),'no');this[_0x2943('0x5')](_0x2943('0x52'),_0x2943('0x53'));this[_0x2943('0x5')](_0x2943('0x54'),_0x516480[_0x2943('0x54')]||_0x2943('0x55'));this[_0x2943('0x5')](_0x2943('0x56'),_0x516480[_0x2943('0x56')]||'/etc/pki/tls/private/motion.key');this[_0x2943('0x5')](_0x2943('0x50'),_0x2943('0x30'));break;default:}}},'permissions':{'type':Sequelize[_0x2943('0x48')],'set':function(_0x31fea3){this['setDataValue'](_0x2943('0x57'),_0x31fea3?_0x31fea3[_0x2943('0x58')](','):[]);},'get':function(){return this[_0x2943('0xc')](_0x2943('0x57'))?_[_0x2943('0x59')](this[_0x2943('0xc')](_0x2943('0x57'))[_0x2943('0x29')](','),function(_0xd360){return parseInt(_0xd360,0xa);}):[];}},'phoneBarUnconditionalNumber':{'type':Sequelize[_0x2943('0x8')]},'phoneBarNoReplyNumber':{'type':Sequelize['STRING']},'phoneBarBusyNumber':{'type':Sequelize[_0x2943('0x8')]},'phoneBarUnconditional':{'type':Sequelize[_0x2943('0x19')],'defaultValue':![]},'phoneBarNoReply':{'type':Sequelize[_0x2943('0x19')],'defaultValue':![]},'phoneBarBusy':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'phoneBarDnd':{'type':Sequelize[_0x2943('0x19')],'defaultValue':!![]},'phoneBarUnansweredCallBadge':{'type':Sequelize[_0x2943('0x19')],'defaultValue':!![]},'phoneBarEnableDtmfTone':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'phoneBarAutoAnswerDelay':{'type':Sequelize[_0x2943('0x16')],'defaultValue':0x0},'extensionMonitor':{'type':Sequelize[_0x2943('0x8')],'defaultValue':''},'crudPermissions':{'type':Sequelize[_0x2943('0x16')],'defaultValue':0x0},'rtcp_mux':{'type':Sequelize[_0x2943('0x10')](_0x2943('0x30'),'no'),'defaultValue':'no'},'allowmessenger':{'type':Sequelize[_0x2943('0x19')],'defaultValue':!![]},'phoneBarOutboundProxy':{'type':Sequelize[_0x2943('0x8')]},'phoneBarEnableJaws':{'type':Sequelize[_0x2943('0x19')],'defaultValue':![]},'phoneBarEnableScreenRecordingByAgent':{'type':Sequelize[_0x2943('0x19')],'defaultValue':![]},'phoneBarEnableVideoRecording':{'type':Sequelize[_0x2943('0x5a')],'get':function(){return this['getDataValue'](_0x2943('0x5b'))?this[_0x2943('0xc')](_0x2943('0x5b')):![];}},'phoneBarEnableAutomaticScreenRecording':{'type':Sequelize[_0x2943('0x19')],'defaultValue':![]},'phoneBarPrefixRequired':{'type':Sequelize[_0x2943('0x19')],'defaultValue':![]},'hotdesk':{'type':Sequelize[_0x2943('0x19')],'defaultValue':![]},'interface':{'type':Sequelize['STRING'],'defaultValue':null},'privacyEnabled':{'type':Sequelize[_0x2943('0x19')],'defaultValue':![]},'apiKeyNonce':{'type':Sequelize[_0x2943('0x8')],'allowNull':!![]},'apiKeyIat':{'type':Sequelize[_0x2943('0x8')],'allowNull':!![]},'screenrecording':{'type':Sequelize[_0x2943('0x19')],'defaultValue':![],'set':function(_0x1e5d3b){if(typeof _0x1e5d3b==='string'){var _0x3000be=_0x1e5d3b==='1'?!![]:_0x1e5d3b==='0'?![]:_0x1e5d3b==='true'?!![]:_0x1e5d3b===_0x2943('0x5c')?![]:![];this[_0x2943('0x5')](_0x2943('0x5d'),_0x3000be);}else{this[_0x2943('0x5')](_0x2943('0x5d'),_0x1e5d3b);}}},'blocked':{'type':Sequelize[_0x2943('0x19')],'defaultValue':![],'set':function(_0x25097c){this['setDataValue'](_0x2943('0x5e'),_0x25097c);if(_0x25097c===!![]){this[_0x2943('0x5')](_0x2943('0x5f'),moment());this['setDataValue'](_0x2943('0x60'),0x0);}else{this['setDataValue'](_0x2943('0x5f'),null);}}},'blockedAt':{'type':Sequelize['DATE'],'defaultValue':null},'loginAttempts':{'type':Sequelize[_0x2943('0x16')],'defaultValue':0x0},'disabled':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'settingsEnabled':{'type':Sequelize[_0x2943('0x19')],'defaultValue':!![]},'wssPort':{'type':Sequelize[_0x2943('0x16')](0x5)['UNSIGNED'],'defaultValue':0x1f99},'downloadAttachments':{'type':Sequelize[_0x2943('0x19')],'defaultValue':!![]},'downloadOmnichannelInteractions':{'type':Sequelize[_0x2943('0x19')],'defaultValue':!![]},'downloadVoiceRecordings':{'type':Sequelize[_0x2943('0x19')],'defaultValue':!![]}};
\ No newline at end of file
+var _0xe14b=['shortinfo','inband','auto','update','force_rport,comedia','nat','all','ulaw;alaw;gsm','allow','split','yes','insecure','\x22\x22\x20<>','always','accept','refuse','uac','uas','fingerprint','certificate','active','passive','actpass','nonat','update,nonat','TEXT','showWebBar','get','isArray','udp','wss','encryption','avpf','force_avp','icesupport','dtlsenable','dtlsverify','dtlssetup','dtlscertfile','dtlsprivatekey','rtcp_mux','/etc/pki/tls/certs/motion.crt','/etc/pki/tls/private/motion.key','permissions','map','VIRTUAL','phoneBarEnableScreenRecordingByAgent','string','true','screenrecording','blocked','blockedAt','loginAttempts','UNSIGNED','sequelize','moment','exports','STRING','setDataValue','defaultuser','The\x20name\x20of\x20the\x20user','fullname','\x22%s\x22\x20<%s>','getDataValue','internal','toLowerCase','ENUM','admin','user','agent','telephone','local','INTEGER','accountcode','callerid','format','BOOLEAN','DATE','dynamic','peer','friend','from-sip','ALLOWED_NOT_SCREENED','ALLOWED_PASSED_SCREEN','ALLOWED_FAILED_SCREEN','ALLOWED','PROHIB_NOT_SCREENED','PROHIB_PASSED_SCREEN','PROHIB_FAILED_SCREEN','PROHIB','join','transport','rfc2833'];(function(_0x10ed54,_0x2f5328){var _0x5ca84e=function(_0x153d26){while(--_0x153d26){_0x10ed54['push'](_0x10ed54['shift']());}};_0x5ca84e(++_0x2f5328);}(_0xe14b,0x93));var _0xbe14=function(_0x474ec6,_0xe8f7a2){_0x474ec6=_0x474ec6-0x0;var _0x2eb009=_0xe14b[_0x474ec6];return _0x2eb009;};'use strict';var Sequelize=require(_0xbe14('0x0'));var moment=require(_0xbe14('0x1'));var util=require('util');var _=require('lodash');module[_0xbe14('0x2')]={'name':{'type':Sequelize[_0xbe14('0x3')],'allowNull':![],'unique':'name','validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i},'set':function(_0x7d3665){this['setDataValue']('name',_0x7d3665);this[_0xbe14('0x4')](_0xbe14('0x5'),_0x7d3665);},'comment':_0xbe14('0x6')},'fullname':{'type':Sequelize[_0xbe14('0x3')],'allowNull':![],'set':function(_0x1d9ade){this[_0xbe14('0x4')](_0xbe14('0x7'),_0x1d9ade);this['setDataValue']('callerid',util['format'](_0xbe14('0x8'),_0x1d9ade,this[_0xbe14('0x9')](_0xbe14('0xa'))));}},'alias':{'type':Sequelize[_0xbe14('0x3')]},'email':{'type':Sequelize['STRING'],'allowNull':![],'unique':'email','validate':{'isEmail':!![]},'set':function(_0x113243){if(_0x113243){this[_0xbe14('0x4')]('email',_0x113243[_0xbe14('0xb')]());}}},'role':{'type':Sequelize[_0xbe14('0xc')](_0xbe14('0xd'),_0xbe14('0xe'),_0xbe14('0xf'),_0xbe14('0x10')),'allowNull':![]},'password':{'type':Sequelize[_0xbe14('0x3')],'allowNull':![],'validate':{'notEmpty':!![]}},'provider':{'type':Sequelize[_0xbe14('0x3')],'defaultValue':_0xbe14('0x11')},'internal':{'type':Sequelize[_0xbe14('0x12')](0xb),'allowNull':![],'unique':_0xbe14('0xa'),'set':function(_0x33fd54){this[_0xbe14('0x4')]('internal',_0x33fd54);this['setDataValue'](_0xbe14('0x13'),_0x33fd54);this[_0xbe14('0x4')](_0xbe14('0x14'),util[_0xbe14('0x15')]('\x22%s\x22\x20<%s>',this[_0xbe14('0x9')](_0xbe14('0x7')),_0x33fd54));}},'salt':{'type':Sequelize[_0xbe14('0x3')]},'phone':{'type':Sequelize[_0xbe14('0x3')]},'mobile':{'type':Sequelize[_0xbe14('0x3')]},'address':{'type':Sequelize[_0xbe14('0x3')]},'zipcode':{'type':Sequelize[_0xbe14('0x3')]},'userpic':{'type':Sequelize['STRING']},'city':{'type':Sequelize[_0xbe14('0x3')]},'country':{'type':Sequelize[_0xbe14('0x3')]},'online':{'type':Sequelize[_0xbe14('0x16')],'defaultValue':![]},'lastLoginAt':{'type':Sequelize[_0xbe14('0x17')]},'voicePause':{'type':Sequelize[_0xbe14('0x16')],'defaultValue':![]},'chatPause':{'type':Sequelize[_0xbe14('0x16')],'defaultValue':![]},'mailPause':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'faxPause':{'type':Sequelize[_0xbe14('0x16')],'defaultValue':![]},'smsPause':{'type':Sequelize[_0xbe14('0x16')],'defaultValue':![]},'whatsappPause':{'type':Sequelize[_0xbe14('0x16')],'defaultValue':![]},'openchannelPause':{'type':Sequelize[_0xbe14('0x16')],'defaultValue':![]},'pauseType':{'type':Sequelize[_0xbe14('0x3')],'defaultValue':'DEFAULT\x20PAUSE'},'lastPauseAt':{'type':Sequelize[_0xbe14('0x17')]},'chatCapacity':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'mailCapacity':{'type':Sequelize[_0xbe14('0x12')],'defaultValue':0x0},'faxCapacity':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'smsCapacity':{'type':Sequelize[_0xbe14('0x12')],'defaultValue':0x0},'whatsappCapacity':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'openchannelCapacity':{'type':Sequelize[_0xbe14('0x12')],'defaultValue':0x0},'phoneBarAutoAnswer':{'type':Sequelize[_0xbe14('0x16')],'defaultValue':![]},'phoneBarEnableSettings':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'phoneBarListenPort':{'type':Sequelize[_0xbe14('0x12')](0x5),'defaultValue':0x1428},'phoneBarExpires':{'type':Sequelize['INTEGER'](0x5),'defaultValue':0x78},'phoneBarRemoteControl':{'type':Sequelize[_0xbe14('0x16')],'defaultValue':![]},'phoneBarRemoteControlPort':{'type':Sequelize['INTEGER'],'defaultValue':0x26a0},'phoneBarEnableRecording':{'type':Sequelize[_0xbe14('0x16')],'defaultValue':![]},'phoneBarRingInUse':{'type':Sequelize[_0xbe14('0x16')],'defaultValue':![]},'chanspy':{'type':Sequelize[_0xbe14('0x16')],'defaultValue':![]},'description':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![]},'host':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![],'defaultValue':_0xbe14('0x18')},'ipaddr':{'type':Sequelize['STRING'],'allowNull':!![]},'port':{'type':Sequelize[_0xbe14('0x12')](0x5),'allowNull':!![]},'regseconds':{'type':Sequelize[_0xbe14('0x12')](0xb),'allowNull':!![]},'fullcontact':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![]},'regserver':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![]},'useragent':{'type':Sequelize['STRING'],'allowNull':!![]},'lastms':{'type':Sequelize[_0xbe14('0x12')](0xb),'allowNull':!![]},'type':{'type':Sequelize[_0xbe14('0xc')]('friend',_0xbe14('0xe'),_0xbe14('0x19')),'allowNull':!![],'defaultValue':_0xbe14('0x1a')},'context':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![],'defaultValue':_0xbe14('0x1b')},'callingpres':{'type':Sequelize[_0xbe14('0xc')](_0xbe14('0x1c'),_0xbe14('0x1d'),_0xbe14('0x1e'),_0xbe14('0x1f'),_0xbe14('0x20'),_0xbe14('0x21'),_0xbe14('0x22'),_0xbe14('0x23')),'allowNull':!![]},'deny':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![]},'permit':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![]},'secret':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![]},'md5secret':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![]},'remotesecret':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![]},'transport':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![],'defaultValue':'udp','set':function(_0x2e33e1){this['setDataValue']('transport',_0x2e33e1?_0x2e33e1[_0xbe14('0x24')](','):null);},'get':function(){return this['getDataValue'](_0xbe14('0x25'))?this[_0xbe14('0x9')]('transport')['split'](','):null;},'comment':'String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22udp\x22,\x20\x22tcp\x22]'},'dtmfmode':{'type':Sequelize[_0xbe14('0xc')](_0xbe14('0x26'),'info',_0xbe14('0x27'),_0xbe14('0x28'),_0xbe14('0x29')),'allowNull':!![],'defaultValue':_0xbe14('0x26')},'directmedia':{'type':Sequelize[_0xbe14('0xc')]('yes','no','nonat',_0xbe14('0x2a'),'outgoing'),'allowNull':!![],'defaultValue':'no'},'directrtpsetup':{'type':Sequelize['ENUM']('yes','no'),'allowNull':!![],'defaultValue':'no'},'directmediapermit':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![]},'directmediadeny':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![]},'nat':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![],'defaultValue':_0xbe14('0x2b'),'set':function(_0x172e79){this[_0xbe14('0x4')](_0xbe14('0x2c'),_0x172e79?_0x172e79[_0xbe14('0x24')](','):null);},'get':function(){return this[_0xbe14('0x9')](_0xbe14('0x2c'))?this[_0xbe14('0x9')](_0xbe14('0x2c'))['split'](','):null;},'comment':'String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22force_rport\x22,\x20\x22comedia\x22]'},'callgroup':{'type':Sequelize[_0xbe14('0x3')]},'namedcallgroup':{'type':Sequelize[_0xbe14('0x3')]},'pickupgroup':{'type':Sequelize[_0xbe14('0x3')]},'namedpickupgroup':{'type':Sequelize['STRING']},'language':{'type':Sequelize[_0xbe14('0x3')],'defaultValue':'en'},'tonezone':{'type':Sequelize[_0xbe14('0x3')]},'disallow':{'type':Sequelize[_0xbe14('0x3')],'allowNull':![],'defaultValue':_0xbe14('0x2d')},'allow':{'type':Sequelize[_0xbe14('0x3')],'allowNull':![],'defaultValue':_0xbe14('0x2e'),'set':function(_0x19fa30){this[_0xbe14('0x4')](_0xbe14('0x2f'),_0x19fa30?_0x19fa30['join'](';'):_0xbe14('0x2e'));},'get':function(){return this[_0xbe14('0x9')](_0xbe14('0x2f'))?this[_0xbe14('0x9')](_0xbe14('0x2f'))[_0xbe14('0x30')](';'):null;},'comment':'String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22ulaw\x22,\x20\x22alaw\x22,\x20\x22gsm\x22]'},'autoframing':{'type':Sequelize[_0xbe14('0xc')](_0xbe14('0x31'),'no'),'allowNull':!![]},'insecure':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![],'set':function(_0x36263c){this['setDataValue']('insecure',_0x36263c?_0x36263c[_0xbe14('0x24')](','):null);},'get':function(){return this[_0xbe14('0x9')](_0xbe14('0x32'))?this['getDataValue']('insecure')[_0xbe14('0x30')](','):null;},'comment':'String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22port\x22,\x20\x22invite\x22]'},'trustrpid':{'type':Sequelize['ENUM'](_0xbe14('0x31'),'no'),'allowNull':!![],'defaultValue':'no'},'trust_id_outbound':{'type':Sequelize[_0xbe14('0xc')](_0xbe14('0x31'),'no'),'allowNull':!![],'defaultValue':'no'},'progressinband':{'type':Sequelize['ENUM']('yes','no','never'),'allowNull':!![]},'promiscredir':{'type':Sequelize[_0xbe14('0xc')](_0xbe14('0x31'),'no'),'allowNull':!![]},'useclientcode':{'type':Sequelize[_0xbe14('0xc')]('yes','no'),'allowNull':!![]},'accountcode':{'type':Sequelize[_0xbe14('0x12')](0xb),'allowNull':!![]},'setvar':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![]},'callerid':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![],'defaultValue':_0xbe14('0x33')},'amaflags':{'type':Sequelize['STRING'],'allowNull':!![]},'callcounter':{'type':Sequelize['ENUM'](_0xbe14('0x31'),'no'),'allowNull':!![],'defaultValue':_0xbe14('0x31')},'busylevel':{'type':Sequelize[_0xbe14('0x12')](0xb),'allowNull':!![]},'allowoverlap':{'type':Sequelize[_0xbe14('0xc')](_0xbe14('0x31'),'no'),'allowNull':!![]},'allowsubscribe':{'type':Sequelize['ENUM']('yes','no'),'allowNull':!![]},'allowtransfer':{'type':Sequelize[_0xbe14('0xc')](_0xbe14('0x31'),'no'),'allowNull':!![]},'ignoresdpversion':{'type':Sequelize[_0xbe14('0xc')](_0xbe14('0x31'),'no'),'allowNull':!![]},'subscribecontext':{'type':Sequelize['STRING'],'allowNull':!![]},'template':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![]},'videosupport':{'type':Sequelize[_0xbe14('0xc')]('yes','no',_0xbe14('0x34')),'allowNull':!![],'defaultValue':'no'},'maxcallbitrate':{'type':Sequelize[_0xbe14('0x12')](0xb),'allowNull':!![]},'rfc2833compensate':{'type':Sequelize[_0xbe14('0xc')](_0xbe14('0x31'),'no'),'allowNull':!![]},'mailbox':{'type':Sequelize['STRING'],'allowNull':!![]},'session_timers':{'type':Sequelize['ENUM'](_0xbe14('0x35'),_0xbe14('0x36'),'originate'),'allowNull':!![]},'session_expires':{'type':Sequelize['INTEGER'](0xb),'allowNull':!![]},'session_minse':{'type':Sequelize[_0xbe14('0x12')](0xb),'allowNull':!![]},'session_refresher':{'type':Sequelize[_0xbe14('0xc')](_0xbe14('0x37'),_0xbe14('0x38')),'allowNull':!![],'defaultValue':_0xbe14('0x38')},'t38pt_usertpsource':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![]},'regexten':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![]},'fromdomain':{'type':Sequelize['STRING'],'allowNull':!![]},'fromuser':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![]},'qualify':{'type':Sequelize[_0xbe14('0xc')](_0xbe14('0x31'),'no'),'allowNull':!![],'defaultValue':_0xbe14('0x31')},'keepalive':{'type':Sequelize[_0xbe14('0x12')](0xb),'allowNull':!![]},'defaultip':{'type':Sequelize['STRING'],'allowNull':!![]},'defaultuser':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![]},'rtptimeout':{'type':Sequelize[_0xbe14('0x12')](0xb),'allowNull':!![]},'rtpholdtimeout':{'type':Sequelize[_0xbe14('0x12')](0xb),'allowNull':!![]},'rtpkeepalive':{'type':Sequelize[_0xbe14('0x12')](0xb),'allowNull':!![]},'sendrpid':{'type':Sequelize[_0xbe14('0xc')](_0xbe14('0x31'),'no'),'allowNull':!![],'defaultValue':'no'},'outboundproxy':{'type':Sequelize['STRING'],'allowNull':!![]},'callbackextension':{'type':Sequelize['STRING'],'allowNull':!![]},'timert1':{'type':Sequelize[_0xbe14('0x12')](0xb),'allowNull':!![]},'timerb':{'type':Sequelize[_0xbe14('0x12')](0xb),'allowNull':!![]},'qualifyfreq':{'type':Sequelize[_0xbe14('0x12')](0xb),'allowNull':!![]},'contactpermit':{'type':Sequelize['STRING'],'allowNull':!![]},'contactdeny':{'type':Sequelize['STRING'],'allowNull':!![]},'contactacl':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![]},'unsolicited_mailbox':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![]},'use_q850_reason':{'type':Sequelize['STRING'],'allowNull':!![]},'maxforwards':{'type':Sequelize[_0xbe14('0x12')](0xb),'allowNull':!![]},'encryption':{'type':Sequelize[_0xbe14('0xc')]('yes','no'),'allowNull':!![],'defaultValue':'no'},'avpf':{'type':Sequelize[_0xbe14('0xc')]('yes','no'),'allowNull':!![]},'force_avp':{'type':Sequelize[_0xbe14('0xc')](_0xbe14('0x31'),'no'),'allowNull':!![]},'icesupport':{'type':Sequelize[_0xbe14('0xc')]('yes','no'),'allowNull':!![]},'dtlsenable':{'type':Sequelize[_0xbe14('0xc')](_0xbe14('0x31'),'no'),'allowNull':!![]},'dtlsverify':{'type':Sequelize['ENUM'](_0xbe14('0x31'),'no',_0xbe14('0x39'),_0xbe14('0x3a')),'allowNull':!![]},'dtlsrekey':{'type':Sequelize[_0xbe14('0x12')](0xb),'allowNull':!![]},'dtlscertfile':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![]},'dtlsprivatekey':{'type':Sequelize['STRING'],'allowNull':!![]},'dtlscipher':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![]},'dtlscafile':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![]},'dtlscapath':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![]},'dtlssetup':{'type':Sequelize[_0xbe14('0xc')](_0xbe14('0x3b'),_0xbe14('0x3c'),_0xbe14('0x3d')),'allowNull':!![]},'dtlsfingerprint':{'type':Sequelize['STRING'],'allowNull':!![]},'usereqphone':{'type':Sequelize[_0xbe14('0xc')](_0xbe14('0x31'),'no'),'allowNull':!![],'defaultValue':'no'},'recordonfeature':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![]},'recordofffeature':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![]},'call_limit':{'type':Sequelize[_0xbe14('0x12')](0xb),'allowNull':!![],'defaultValue':0xa},'registertrying':{'type':Sequelize[_0xbe14('0xc')](_0xbe14('0x31'),'no'),'allowNull':!![]},'subscribemwi':{'type':Sequelize[_0xbe14('0xc')](_0xbe14('0x31'),'no'),'allowNull':!![]},'vmexten':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![]},'mohinterpret':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![]},'mohsuggest':{'type':Sequelize['STRING'],'allowNull':!![]},'parkinglot':{'type':Sequelize['STRING'],'allowNull':!![]},'canreinvite':{'type':Sequelize['ENUM'](_0xbe14('0x31'),'no',_0xbe14('0x3e'),_0xbe14('0x2a'),_0xbe14('0x3f')),'allowNull':!![],'defaultValue':'no'},'loginInPause':{'type':Sequelize[_0xbe14('0x16')],'defaultValue':![]},'resetPasswordToken':{'type':Sequelize[_0xbe14('0x3')]},'resetPasswordExpires':{'type':Sequelize[_0xbe14('0x17')]},'passwordResetAt':{'type':Sequelize[_0xbe14('0x17')],'defaultValue':null},'previousPasswords':{'type':Sequelize[_0xbe14('0x40')]},'showWebBar':{'type':Sequelize[_0xbe14('0x12')],'defaultValue':0x0,'set':function(_0x603816){this[_0xbe14('0x4')](_0xbe14('0x41'),_0x603816);var _0xeb915b=this[_0xbe14('0x42')]({'plain':!![]});switch(_0x603816){case 0x0:case 0x1:var _0xcef8e3=_0xeb915b[_0xbe14('0x25')]?_[_0xbe14('0x43')](_0xeb915b[_0xbe14('0x25')])?_0xeb915b[_0xbe14('0x25')]['join']():_0xeb915b[_0xbe14('0x25')]:_0xbe14('0x44');if(_0xcef8e3===_0xbe14('0x45')){_0xcef8e3=_0xbe14('0x44');}this[_0xbe14('0x4')](_0xbe14('0x25'),_0xcef8e3);this[_0xbe14('0x4')](_0xbe14('0x46'),'no');this[_0xbe14('0x4')](_0xbe14('0x47'),null);this['setDataValue'](_0xbe14('0x48'),null);this[_0xbe14('0x4')](_0xbe14('0x49'),null);this[_0xbe14('0x4')](_0xbe14('0x4a'),null);this['setDataValue'](_0xbe14('0x4b'),null);this[_0xbe14('0x4')](_0xbe14('0x4c'),null);this[_0xbe14('0x4')](_0xbe14('0x4d'),null);this['setDataValue'](_0xbe14('0x4e'),null);this[_0xbe14('0x4')](_0xbe14('0x4f'),'no');break;case 0x2:this[_0xbe14('0x4')](_0xbe14('0x25'),_0xbe14('0x45'));this[_0xbe14('0x4')](_0xbe14('0x46'),'yes');this[_0xbe14('0x4')](_0xbe14('0x47'),_0xbe14('0x31'));this[_0xbe14('0x4')](_0xbe14('0x48'),_0xbe14('0x31'));this[_0xbe14('0x4')]('icesupport','yes');this[_0xbe14('0x4')](_0xbe14('0x4a'),_0xbe14('0x31'));this[_0xbe14('0x4')](_0xbe14('0x4b'),'no');this[_0xbe14('0x4')](_0xbe14('0x4c'),_0xbe14('0x3d'));this['setDataValue']('dtlscertfile',_0xeb915b[_0xbe14('0x4d')]||_0xbe14('0x50'));this[_0xbe14('0x4')]('dtlsprivatekey',_0xeb915b[_0xbe14('0x4e')]||_0xbe14('0x51'));this[_0xbe14('0x4')](_0xbe14('0x4f'),_0xbe14('0x31'));break;default:}}},'permissions':{'type':Sequelize[_0xbe14('0x40')],'set':function(_0x12e23a){this['setDataValue'](_0xbe14('0x52'),_0x12e23a?_0x12e23a[_0xbe14('0x24')](','):[]);},'get':function(){return this[_0xbe14('0x9')](_0xbe14('0x52'))?_[_0xbe14('0x53')](this[_0xbe14('0x9')](_0xbe14('0x52'))['split'](','),function(_0x3952c7){return parseInt(_0x3952c7,0xa);}):[];}},'phoneBarUnconditionalNumber':{'type':Sequelize[_0xbe14('0x3')]},'phoneBarNoReplyNumber':{'type':Sequelize[_0xbe14('0x3')]},'phoneBarBusyNumber':{'type':Sequelize[_0xbe14('0x3')]},'phoneBarUnconditional':{'type':Sequelize[_0xbe14('0x16')],'defaultValue':![]},'phoneBarNoReply':{'type':Sequelize[_0xbe14('0x16')],'defaultValue':![]},'phoneBarBusy':{'type':Sequelize[_0xbe14('0x16')],'defaultValue':![]},'phoneBarDnd':{'type':Sequelize[_0xbe14('0x16')],'defaultValue':!![]},'phoneBarUnansweredCallBadge':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'phoneBarEnableDtmfTone':{'type':Sequelize[_0xbe14('0x16')],'defaultValue':![]},'phoneBarAutoAnswerDelay':{'type':Sequelize[_0xbe14('0x12')],'defaultValue':0x0},'extensionMonitor':{'type':Sequelize[_0xbe14('0x3')],'defaultValue':''},'crudPermissions':{'type':Sequelize[_0xbe14('0x12')],'defaultValue':0x0},'rtcp_mux':{'type':Sequelize[_0xbe14('0xc')](_0xbe14('0x31'),'no'),'defaultValue':'no'},'allowmessenger':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'phoneBarOutboundProxy':{'type':Sequelize[_0xbe14('0x3')]},'phoneBarEnableJaws':{'type':Sequelize[_0xbe14('0x16')],'defaultValue':![]},'phoneBarEnableScreenRecordingByAgent':{'type':Sequelize[_0xbe14('0x16')],'defaultValue':![]},'phoneBarEnableVideoRecording':{'type':Sequelize[_0xbe14('0x54')],'get':function(){return this['getDataValue'](_0xbe14('0x55'))?this[_0xbe14('0x9')](_0xbe14('0x55')):![];}},'phoneBarEnableAutomaticScreenRecording':{'type':Sequelize[_0xbe14('0x16')],'defaultValue':![]},'phoneBarPrefixRequired':{'type':Sequelize[_0xbe14('0x16')],'defaultValue':![]},'hotdesk':{'type':Sequelize[_0xbe14('0x16')],'defaultValue':![]},'interface':{'type':Sequelize[_0xbe14('0x3')],'defaultValue':null},'privacyEnabled':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'apiKeyNonce':{'type':Sequelize[_0xbe14('0x3')],'allowNull':!![]},'apiKeyIat':{'type':Sequelize['STRING'],'allowNull':!![]},'screenrecording':{'type':Sequelize[_0xbe14('0x16')],'defaultValue':![],'set':function(_0x5d85d3){if(typeof _0x5d85d3===_0xbe14('0x56')){var _0x21837c=_0x5d85d3==='1'?!![]:_0x5d85d3==='0'?![]:_0x5d85d3===_0xbe14('0x57')?!![]:_0x5d85d3==='false'?![]:![];this[_0xbe14('0x4')](_0xbe14('0x58'),_0x21837c);}else{this[_0xbe14('0x4')]('screenrecording',_0x5d85d3);}}},'blocked':{'type':Sequelize[_0xbe14('0x16')],'defaultValue':![],'set':function(_0x590277){this[_0xbe14('0x4')](_0xbe14('0x59'),_0x590277);if(_0x590277===!![]){this['setDataValue'](_0xbe14('0x5a'),moment());this[_0xbe14('0x4')](_0xbe14('0x5b'),0x0);}else{this[_0xbe14('0x4')](_0xbe14('0x5a'),null);}}},'blockedAt':{'type':Sequelize[_0xbe14('0x17')],'defaultValue':null},'loginAttempts':{'type':Sequelize[_0xbe14('0x12')],'defaultValue':0x0},'disabled':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'settingsEnabled':{'type':Sequelize[_0xbe14('0x16')],'defaultValue':!![]},'wssPort':{'type':Sequelize[_0xbe14('0x12')](0x5)[_0xbe14('0x5c')],'defaultValue':0x1f99},'downloadAttachments':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'downloadOmnichannelInteractions':{'type':Sequelize[_0xbe14('0x16')],'defaultValue':!![]},'downloadVoiceRecordings':{'type':Sequelize[_0xbe14('0x16')],'defaultValue':!![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc4aa=['dialActive','getApiKey','retrieveApiKey','token','You\x20don\x27t\x20have\x20sufficient\x20privileges\x20to\x20access\x20this\x20resource.','createApiKey','generateApiKey','iat','nonce','apiKeyIat','API\x20key\x20not\x20available','whoami','Unable\x20to\x20retrieve\x20the\x20current\x20user','resolve','queues','isEmpty','teams','col','toString','desc','substring','uniqBy','orderBy','Unable\x20to\x20retrieve\x20RPC\x20agents\x20(AMI)','result','offline','pause','unknown','unavailable','ringing','voiceStatus','busy','slice','charAt','field','ui.','InteractionId','OpenTabs','moment','bluebird','util','path','lodash','squel','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','socket.io-emitter','register','redis','defaults','localhost','client','http','request','info','User,\x20%s,\x20%s','request\x20sent','debug','User,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','status','end','json','offset','undefined','limit','count','set','Content-Range','get','role','admin','user','agent','telephone','filter','ignore','map','value','includes','find','name','destroy','then','sendStatus','stack','send','index','User','rawAttributes','fieldName','password','salt','getOptions','where','include','attributes','push','findAll','rows','openTabs','true','chat','dataValues','sms','fax','mail','show','params','differenceBy','keys','query','filters','intersection','model','fields','length','includeAll','merge','openchannel','whatsapp','all','update','body','describe','addContacts','ids','omit','internal','findById','securePassword','validatePasswordPattern','max','isNil','min_internal','sequelize','select\x20(select\x20IFNULL(max(internal)+1,1)\x20from\x20users\x20where\x20internal\x20<\x20md.internal)\x20as\x20\x27from\x27,\x20md.internal\x20-\x201\x20as\x20\x27to\x27\x20from\x20users\x20md\x20where\x20md.internal\x20!=\x201\x20and\x20not\x20exists\x20(select\x201\x20from\x20users\x20md2\x20where\x20md2.internal\x20=\x20md.internal\x20-\x201)','QueryTypes','SELECT','from','mailbox','VoiceMail','fullname','permissions','102','110','105','108','109','100','115','Unauthorized','Unauthorized.\x20You\x20must\x20be\x20an\x20administrator\x20in\x20order\x20to\x20create\x20an\x20user','Unauthorized.\x20You\x20must\x20be\x20an\x20administrator\x20in\x20order\x20to\x20create\x20another\x20administrator','settingsEnabled','userProfileId','create','UserProfileSection','Telephones','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','bulkCreate','some','Unauthorized.\x20You\x20must\x20be\x20an\x20administrator\x20in\x20order\x20to\x20create\x20an\x20administrator','checkUserLimits','Agents','autoAssociation','compact','UserProfileResource','changePassword','Sequelize','ValidationError','Invalid\x20body\x20format.\x20Use\x20oldPassword\x20and\x20newPassword','oldPassword','Wrong\x20credentials','newPassword','New\x20password\x20must\x20be\x20different\x20from\x20old\x20password','Invalid\x20body\x20format.\x20Use\x20newPassword','Setting','findOne','passwordHistoryLimit','enforcePasswordHistory','previousPasswords','validatePasswordHistory','updatePasswordsHistory','channel','online','loginInPause','voicePause','interface','isValidChannel','Unknown\x20channel','add','capitalize','toLowerCase','Queues','penalty','spread','emit','VoiceQueue','format','each','upsert','remove','isArray','QueueId','Queue:remove','voice','UserVoiceQueueRt','addAvatar','userpic','file','getAvatar','join','root','server/files/images/logos/default_profile.png','download','existsSync','server/files/images/','getOpenTabs','ChatOpenTabs','FaxOpenTabs','FAX','createdAt','OpenchannelOpenTabs','OPENCHANNEL','MailOpenTabs','MAIL','SmsOpenTabs','SMS','WhatsappOpenTabs','getContacts','CmContact','order','sort','pick','options','hasOwnProperty','List','Tag','Tags','tag','nolimit','getQueues','Queue','getVoiceQueuesRt','getGroups','ChatGroup','getRecordings','VoiceRecording','ScreenRecording','UserId','getChatInteractions','ChatInteraction','getOpenchannelInteractions','getMailInteractions','MailInteraction','getSmsInteractions','SmsInteraction','getFaxInteractions','getWhatsappInteractions','WhatsappInteraction','login','phone','SIP/%s','intrf','user:%s','x-forwarded-for','remoteAddress','socket','connection','User\x20not\x20found\x20or\x20not\x20allowed\x20to\x20perform\x20login\x20method','getVoiceQueues','UserVoiceQueue.penalty','MemberReport','forEach','YYYY-MM-DD\x20HH:mm:ss','getChannels','LOGIN','device','PAUSE','LOGININPAUSE','isMiddleware','logout','QueuePause','updateAttributes','DEFAULT\x20PAUSE','unpause','mailPause','faxPause','openchannelPause','smsPause','whatsapppause','lastPauseAt','manual','%s%s','Pause','Team','getTeams','addTeams','setDataValue','Voice','Chat','getMailQueues','Mail','getSmsQueues','Sms','Whatsapp','getOpenchannelQueues','flatten','addAgent','getDataValue','Queue:save','TeamVoicePrefix','UserVoicePrefix','getWhatsappQueues','getFaxQueues','Fax','Openchannel','transaction','VoicePrefixId','getLists','CmList','getAgents','values','You\x20can\x27t\x20delete\x20yourself','addChatInteractions','user_has_chat_interactions:save','removeChatInteractions','user_has_chat_interactions:remove','user_has_mail_interactions:save','removeMailInteractions','user_has_mail_interactions:remove','addFaxInteractions','user_has_fax_interactions:save','removeFaxInteractions','user_has_fax_interactions:remove','addSmsInteractions','removeSmsInteractions','user_has_sms_interactions:remove','addOpenchannelInteractions','user_has_openchannel_interactions:save','removeOpenchannelInteractions','addWhatsappInteractions','user_has_whatsapp_interactions:save','removeWhatsappInteractions','getVoicePrefixes','VoicePrefix','getFaxAccounts','addFaxAccounts','removeFaxAccounts','MailAccount','getMailAccounts','addMailAccounts','removeMailAccounts','getOpenchannelAccounts','OpenchannelAccount','addOpenchannelAccounts','removeOpenchannelAccounts','getSmsAccounts','SmsAccount','addSmsAccounts','removeSmsAccounts','getChatWebsites','ChatWebsite','addChatWebsites','removeChatWebsites','getWhatsappAccounts','WhatsappAccount','addWhatsappAccounts','removeWhatsappAccounts','getSquareProjects','SquareProject','addSquareProjects','removeSquareProjects','CmHopper','concat','$and','$or','$gt','$gte','$lt','$lte','$ne','$eq','$between','$notBetween','$in','$notIn','$like','$overlap','$any','lastName'];(function(_0x2f60c0,_0x3a700f){var _0x168af7=function(_0x21c149){while(--_0x21c149){_0x2f60c0['push'](_0x2f60c0['shift']());}};_0x168af7(++_0x3a700f);}(_0xc4aa,0x1b7));var _0xac4a=function(_0x4ff09b,_0x53f67d){_0x4ff09b=_0x4ff09b-0x0;var _0x3f5c2e=_0xc4aa[_0x4ff09b];return _0x3f5c2e;};'use strict';var moment=require(_0xac4a('0x0'));var BPromise=require(_0xac4a('0x1'));var util=require(_0xac4a('0x2'));var path=require(_0xac4a('0x3'));var fs=require('fs');var _=require(_0xac4a('0x4'));var squel=require(_0xac4a('0x5'));var jayson=require('jayson/promise');var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0xac4a('0x6'));var logger=require(_0xac4a('0x7'))(_0xac4a('0x8'));var utils=require(_0xac4a('0x9'));var config=require(_0xac4a('0xa'));var licenseUtil=require(_0xac4a('0xb'));var db=require(_0xac4a('0xc'))['db'];var socket=require(_0xac4a('0xd'))(new Redis(config['redis']));require('./user.socket')[_0xac4a('0xe')](socket);config[_0xac4a('0xf')]=_[_0xac4a('0x10')](config['redis'],{'host':_0xac4a('0x11'),'port':0x18eb});var client=jayson[_0xac4a('0x12')][_0xac4a('0x13')]({'port':0x232a});var values;function respondWithRpcPromise(_0x4d4acc,_0x30135d,_0x488e3c,_0x2f062c){return new BPromise(function(_0x4855b6,_0x333ca5){var _0x2a0776=_0x2f062c||client;return _0x2a0776[_0xac4a('0x14')](_0x4d4acc,_0x488e3c)['then'](function(_0x21a79){logger[_0xac4a('0x15')](_0xac4a('0x16'),_0x30135d,_0xac4a('0x17'));logger[_0xac4a('0x18')](_0xac4a('0x19'),_0x30135d,_0xac4a('0x17'),JSON[_0xac4a('0x1a')](_0x21a79));if(_0x21a79[_0xac4a('0x1b')]){if(_0x21a79[_0xac4a('0x1b')][_0xac4a('0x1c')]===0x1f4){logger[_0xac4a('0x1b')]('User,\x20%s,\x20%s',_0x30135d,_0x21a79[_0xac4a('0x1b')][_0xac4a('0x1d')]);return _0x333ca5(_0x21a79[_0xac4a('0x1b')][_0xac4a('0x1d')]);}logger[_0xac4a('0x1b')](_0xac4a('0x16'),_0x30135d,_0x21a79[_0xac4a('0x1b')][_0xac4a('0x1d')]);return _0x4855b6(_0x21a79['error']['message']);}else{logger[_0xac4a('0x15')](_0xac4a('0x16'),_0x30135d,_0xac4a('0x17'));_0x4855b6(_0x21a79['result'][_0xac4a('0x1d')]);}})[_0xac4a('0x1e')](function(_0x3752e4){logger[_0xac4a('0x1b')](_0xac4a('0x16'),_0x30135d,_0x3752e4);_0x333ca5(_0x3752e4);});});}function respondWithStatusCode(_0x3e829c,_0xe38996){_0xe38996=_0xe38996||0xcc;return function(_0x3ca790){if(_0x3ca790){return _0x3e829c['sendStatus'](_0xe38996);}return _0x3e829c[_0xac4a('0x1f')](_0xe38996)[_0xac4a('0x20')]();};}function respondWithResult(_0x599787,_0x3d7ce0){_0x3d7ce0=_0x3d7ce0||0xc8;return function(_0x4169c0){if(_0x4169c0){return _0x599787[_0xac4a('0x1f')](_0x3d7ce0)[_0xac4a('0x21')](_0x4169c0);}};}function respondWithFilteredResult(_0x4d2d6c,_0x1b7998){return function(_0x2503d8){if(_0x2503d8){var _0x15435c=typeof _0x1b7998[_0xac4a('0x22')]===_0xac4a('0x23')&&typeof _0x1b7998[_0xac4a('0x24')]===_0xac4a('0x23');var _0x36054a=_0x2503d8[_0xac4a('0x25')];var _0x3bc318=_0x15435c?0x0:_0x1b7998[_0xac4a('0x22')];var _0x215a31=_0x15435c?_0x2503d8[_0xac4a('0x25')]:_0x1b7998[_0xac4a('0x22')]+_0x1b7998[_0xac4a('0x24')];var _0x20202c;if(_0x215a31>=_0x36054a){_0x215a31=_0x36054a;_0x20202c=0xc8;}else{_0x20202c=0xce;}_0x4d2d6c['status'](_0x20202c);return _0x4d2d6c[_0xac4a('0x26')](_0xac4a('0x27'),_0x3bc318+'-'+_0x215a31+'/'+_0x36054a)[_0xac4a('0x21')](_0x2503d8);}return null;};}function saveUpdates(_0x2772fe){return function(_0x116700){if(_0x116700){return _0x116700['update'](_0x2772fe)['then'](function(_0xdb7e){return _0xdb7e;});}return null;};}function removeEntity(_0x7a948b){return function(_0x1f12d5){if(_0x1f12d5){return _0x1f12d5['destroy']()['then'](function(){var _0x355755=_0x1f12d5[_0xac4a('0x28')]({'plain':!![]});if(_0x355755[_0xac4a('0x29')]===_0xac4a('0x2a'))return;var _0x17118e=[{'name':'Users','value':_0xac4a('0x2b'),'ignore':!![]},{'name':'Agents','value':_0xac4a('0x2c'),'ignore':![]},{'name':'Telephones','value':_0xac4a('0x2d'),'ignore':![]}];var _0xfbe355=_(_0x17118e)[_0xac4a('0x2e')](_0xac4a('0x2f'))[_0xac4a('0x30')](_0xac4a('0x31'))[_0xac4a('0x31')]();if(_[_0xac4a('0x32')](_0xfbe355,_0x355755[_0xac4a('0x29')])){return;}var _0xfd7c16=_[_0xac4a('0x33')](_0x17118e,[_0xac4a('0x31'),_0x355755[_0xac4a('0x29')]])[_0xac4a('0x34')];return db['UserProfileResource'][_0xac4a('0x35')]({'where':{'type':_0xfd7c16,'resourceId':_0x355755['id']}})[_0xac4a('0x36')](function(){return _0x1f12d5;});})['then'](function(){_0x7a948b[_0xac4a('0x1f')](0xcc)[_0xac4a('0x20')]();});}};}function handleEntityNotFound(_0x565164){return function(_0x58804b){if(!_0x58804b){_0x565164[_0xac4a('0x37')](0x194);}return _0x58804b;};}function handleError(_0x1ba096,_0x1b42b6){_0x1b42b6=_0x1b42b6||0x1f4;return function(_0x3de9e2){logger['error'](_0x3de9e2[_0xac4a('0x38')]);if(_0x3de9e2[_0xac4a('0x34')]){delete _0x3de9e2['name'];}_0x1ba096[_0xac4a('0x1f')](_0x1b42b6)[_0xac4a('0x39')](_0x3de9e2);};}exports[_0xac4a('0x3a')]=function(_0x5f0eb8,_0x121328){var _0x357f06={},_0x1b5427={'count':0x0,'rows':[]};var _0x4e0445=_(db[_0xac4a('0x3b')][_0xac4a('0x3c')])['map'](function(_0x59bebf){return{'name':_0x59bebf[_0xac4a('0x3d')],'type':_0x59bebf['type']['key']};})['filter'](function(_0x4fee3a){return!_[_0xac4a('0x32')]([_0xac4a('0x3e'),_0xac4a('0x3f')],_0x4fee3a[_0xac4a('0x34')]);})[_0xac4a('0x31')]();_0x357f06=qs[_0xac4a('0x40')](_0x4e0445,_0x5f0eb8);var _0x4220e2={'where':_0x357f06[_0xac4a('0x41')]};return db[_0xac4a('0x3b')][_0xac4a('0x25')](_0x4220e2)[_0xac4a('0x36')](function(_0x1c2a87){_0x1b5427['count']=_0x1c2a87;if(_0x5f0eb8['query']['includeAll']){_0x357f06[_0xac4a('0x42')]=[{'all':!![]}];}if(!_[_0xac4a('0x32')](_0x357f06[_0xac4a('0x43')],'id')){_0x357f06[_0xac4a('0x43')][_0xac4a('0x44')]('id');}return db[_0xac4a('0x3b')][_0xac4a('0x45')](_0x357f06);})[_0xac4a('0x36')](function(_0x3e9973){_0x1b5427[_0xac4a('0x46')]=_0x3e9973;if(_0x5f0eb8['query'][_0xac4a('0x47')]===_0xac4a('0x48')){var _0x3d9595=[];for(var _0x3f24a1=0x0;_0x3f24a1<_0x1b5427[_0xac4a('0x46')]['length'];_0x3f24a1++){_0x3d9595[_0xac4a('0x44')](get_open_tabs(_0xac4a('0x49'),_0x1b5427['rows'][_0x3f24a1][_0xac4a('0x4a')]));_0x3d9595['push'](get_open_tabs(_0xac4a('0x4b'),_0x1b5427[_0xac4a('0x46')][_0x3f24a1][_0xac4a('0x4a')]));_0x3d9595[_0xac4a('0x44')](get_open_tabs(_0xac4a('0x4c'),_0x1b5427[_0xac4a('0x46')][_0x3f24a1][_0xac4a('0x4a')]));_0x3d9595[_0xac4a('0x44')](get_open_tabs(_0xac4a('0x4d'),_0x1b5427[_0xac4a('0x46')][_0x3f24a1][_0xac4a('0x4a')]));_0x3d9595[_0xac4a('0x44')](get_open_tabs('openchannel',_0x1b5427[_0xac4a('0x46')][_0x3f24a1][_0xac4a('0x4a')]));_0x3d9595[_0xac4a('0x44')](get_open_tabs('whatsapp',_0x1b5427[_0xac4a('0x46')][_0x3f24a1][_0xac4a('0x4a')]));}return BPromise['all'](_0x3d9595)[_0xac4a('0x36')](function(_0x5a7f6e){return _0x1b5427;});}else{return _0x1b5427;}})[_0xac4a('0x36')](respondWithFilteredResult(_0x121328,_0x357f06))[_0xac4a('0x1e')](handleError(_0x121328,null));};exports[_0xac4a('0x4e')]=function(_0x5e3581,_0x588374){var _0x42fd9d={'raw':![],'where':{'id':_0x5e3581[_0xac4a('0x4f')]['id']}},_0x4aaeff={};_0x4aaeff['model']=_[_0xac4a('0x50')](_['keys'](db[_0xac4a('0x3b')][_0xac4a('0x3c')]),[_0xac4a('0x3e'),_0xac4a('0x3f')]);_0x4aaeff['query']=_[_0xac4a('0x51')](_0x5e3581[_0xac4a('0x52')]);_0x4aaeff[_0xac4a('0x53')]=_[_0xac4a('0x54')](_0x4aaeff[_0xac4a('0x55')],_0x4aaeff[_0xac4a('0x52')]);_0x42fd9d[_0xac4a('0x43')]=_['intersection'](_0x4aaeff[_0xac4a('0x55')],qs[_0xac4a('0x56')](_0x5e3581['query'][_0xac4a('0x56')]));_0x42fd9d[_0xac4a('0x43')]=_0x42fd9d[_0xac4a('0x43')][_0xac4a('0x57')]?_0x42fd9d['attributes']:_0x4aaeff[_0xac4a('0x55')];if(_0x5e3581[_0xac4a('0x52')][_0xac4a('0x58')]){_0x42fd9d[_0xac4a('0x42')]=[{'all':!![]}];}_0x42fd9d=_[_0xac4a('0x59')]({},_0x42fd9d,_0x5e3581['options']);if(!_[_0xac4a('0x32')](_0x42fd9d['attributes'],'id')){_0x42fd9d[_0xac4a('0x43')][_0xac4a('0x44')]('id');}return db['User']['find'](_0x42fd9d)[_0xac4a('0x36')](handleEntityNotFound(_0x588374,null))[_0xac4a('0x36')](function(_0x4d448f){var _0x18d29c=[];values=_0x4d448f;if(_0x5e3581[_0xac4a('0x52')][_0xac4a('0x47')]===_0xac4a('0x48')){_0x18d29c['push'](get_open_tabs(_0xac4a('0x49'),_0x4d448f[_0xac4a('0x4a')]));_0x18d29c[_0xac4a('0x44')](get_open_tabs(_0xac4a('0x4b'),_0x4d448f[_0xac4a('0x4a')]));_0x18d29c[_0xac4a('0x44')](get_open_tabs(_0xac4a('0x5a'),_0x4d448f['dataValues']));_0x18d29c[_0xac4a('0x44')](get_open_tabs(_0xac4a('0x5b'),_0x4d448f[_0xac4a('0x4a')]));_0x18d29c[_0xac4a('0x44')](get_open_tabs(_0xac4a('0x4c'),_0x4d448f[_0xac4a('0x4a')]));_0x18d29c[_0xac4a('0x44')](get_open_tabs(_0xac4a('0x4d'),_0x4d448f[_0xac4a('0x4a')]));return BPromise[_0xac4a('0x5c')](_0x18d29c);}else{return values;}})[_0xac4a('0x36')](function(_0x38dd4f){return values;})[_0xac4a('0x36')](respondWithResult(_0x588374,null))[_0xac4a('0x1e')](handleError(_0x588374,null));};exports[_0xac4a('0x5d')]=function(_0x11c753,_0x492aae){if(_0x11c753[_0xac4a('0x5e')]['id']){delete _0x11c753['body']['id'];}delete _0x11c753[_0xac4a('0x5e')]['role'];return db[_0xac4a('0x3b')]['find']({'where':{'id':_0x11c753[_0xac4a('0x4f')]['id']}})['then'](handleEntityNotFound(_0x492aae,null))['then'](saveUpdates(_0x11c753[_0xac4a('0x5e')],null))[_0xac4a('0x36')](respondWithResult(_0x492aae,null))[_0xac4a('0x1e')](handleError(_0x492aae,null));};exports[_0xac4a('0x5f')]=function(_0x2f9940,_0xb7b884){return db['User'][_0xac4a('0x5f')]()['then'](respondWithResult(_0xb7b884,null))[_0xac4a('0x1e')](handleError(_0xb7b884,null));};exports['addContacts']=function(_0x347880,_0x19ce2c){return db[_0xac4a('0x3b')][_0xac4a('0x33')]({'where':{'id':_0x347880[_0xac4a('0x4f')]['id']}})[_0xac4a('0x36')](handleEntityNotFound(_0x19ce2c,null))[_0xac4a('0x36')](function(_0xe3e375){if(_0xe3e375){return _0xe3e375[_0xac4a('0x60')](_0x347880[_0xac4a('0x5e')][_0xac4a('0x61')],_[_0xac4a('0x62')](_0x347880[_0xac4a('0x5e')],[_0xac4a('0x61'),'id'])||{});}})[_0xac4a('0x36')](respondWithResult(_0x19ce2c,null))[_0xac4a('0x1e')](handleError(_0x19ce2c,null));};function validateUser(_0x38cb4f){return new BPromise(function(_0x4a0156,_0xa90d71){if(_0x38cb4f[_0xac4a('0x63')])return _0x4a0156(_0x38cb4f);return db['Setting'][_0xac4a('0x64')](0x1)[_0xac4a('0x36')](function(_0x2d24c7){if(_0x2d24c7[_0xac4a('0x65')])authService[_0xac4a('0x66')](_0x38cb4f['password']);db['User'][_0xac4a('0x67')](_0xac4a('0x63'))[_0xac4a('0x36')](function(_0x148288){if(_[_0xac4a('0x68')](_0x148288)){_0x38cb4f[_0xac4a('0x63')]=_0x2d24c7[_0xac4a('0x69')]||0x1;return;}if(_[_0xac4a('0x68')](_0x2d24c7[_0xac4a('0x69')])||_0x2d24c7[_0xac4a('0x69')]===_0x148288){_0x38cb4f[_0xac4a('0x63')]=_0x148288+0x1;return;}if(_0x2d24c7['min_internal']>_0x148288){_0x38cb4f['internal']=_0x2d24c7[_0xac4a('0x69')];return;}return db[_0xac4a('0x6a')][_0xac4a('0x52')](_0xac4a('0x6b'),{'type':db[_0xac4a('0x6a')][_0xac4a('0x6c')][_0xac4a('0x6d')]})[_0xac4a('0x36')](function(_0x453d62){if(_0x453d62&&_0x453d62[_0xac4a('0x57')]){for(var _0xb09b89=0x0,_0xb12cc5=_0x453d62['length'];_0xb09b89<_0xb12cc5&&_[_0xac4a('0x68')](_0x38cb4f[_0xac4a('0x63')]);_0xb09b89++){if(_0x2d24c7[_0xac4a('0x69')]<=_0x453d62[_0xb09b89][_0xac4a('0x6e')]){_0x38cb4f['internal']=_0x453d62[_0xb09b89][_0xac4a('0x6e')];}else if(_0x2d24c7['min_internal']>_0x453d62[_0xb09b89][_0xac4a('0x6e')]&&_0x2d24c7[_0xac4a('0x69')]<=_0x453d62[_0xb09b89]['to']){_0x38cb4f['internal']=_0x2d24c7['min_internal'];}}}if(_[_0xac4a('0x68')](_0x38cb4f[_0xac4a('0x63')])){_0x38cb4f[_0xac4a('0x63')]=_0x148288+0x1;}return _0x4a0156(_0x38cb4f);});});})['catch'](function(_0x3a0cf8){_0xa90d71(_0x3a0cf8);});});}function updateUser(_0x4d067d){return new BPromise(function(_0x114b11,_0x4a88c7){try{if(_0x4d067d['voicemail']){_0x4d067d[_0xac4a('0x6f')]=_0x4d067d['internal'];_0x4d067d[_0xac4a('0x70')]={'mailbox':_0x4d067d['internal'],'password':_0x4d067d[_0xac4a('0x3e')],'fullname':_0x4d067d[_0xac4a('0x71')],'email':_0x4d067d['email']};}if(_0x4d067d[_0xac4a('0x29')]==='agent'){if(!_0x4d067d[_0xac4a('0x72')])_0x4d067d[_0xac4a('0x72')]=['101',_0xac4a('0x73'),'103','113',_0xac4a('0x74'),'104',_0xac4a('0x75'),'106','107',_0xac4a('0x76'),_0xac4a('0x77'),_0xac4a('0x78'),'111','114',_0xac4a('0x79')];}_0x114b11(_0x4d067d);}catch(_0x9c0fa1){_0x4a88c7(_0x9c0fa1);}});}exports['create']=function(_0x4e93f5,_0x3824a2){if(_0x4e93f5[_0xac4a('0x2b')][_0xac4a('0x29')]===_0xac4a('0x2c'))throw new Error(_0xac4a('0x7a'));if(_0x4e93f5[_0xac4a('0x5e')][_0xac4a('0x29')]===_0xac4a('0x2b')&&_0x4e93f5[_0xac4a('0x2b')]['role']!==_0xac4a('0x2a')){throw new Error(_0xac4a('0x7b'));}if(_0x4e93f5[_0xac4a('0x5e')]['role']===_0xac4a('0x2a')&&_0x4e93f5[_0xac4a('0x2b')][_0xac4a('0x29')]!==_0xac4a('0x2a')){throw new Error(_0xac4a('0x7c'));}return licenseUtil['checkUserLimits']([_0x4e93f5[_0xac4a('0x5e')]])[_0xac4a('0x36')](function(){return validateUser(_0x4e93f5[_0xac4a('0x5e')]);})[_0xac4a('0x36')](function(_0x72c90c){return updateUser(_0x72c90c)[_0xac4a('0x36')](function(_0xd7bdd6){if(_0xd7bdd6['role']===_0xac4a('0x2a')){_0xd7bdd6[_0xac4a('0x7d')]=_0x4e93f5[_0xac4a('0x2b')][_0xac4a('0x7d')];delete _0xd7bdd6[_0xac4a('0x7e')];}return _0xd7bdd6;});})[_0xac4a('0x36')](function(_0x547eec){return db[_0xac4a('0x3b')][_0xac4a('0x7f')](_0x547eec,{'include':[{'model':db[_0xac4a('0x70')],'as':_0xac4a('0x70')}]});})['then'](function(_0x21a384){if(_0x4e93f5['body'][_0xac4a('0x29')]===_0xac4a('0x2b'))return _0x21a384;if(_0x4e93f5['user']['role']!==_0xac4a('0x2b'))return _0x21a384;return db[_0xac4a('0x80')][_0xac4a('0x33')]({'where':{'name':_0x21a384['role']===_0xac4a('0x2c')?'Agents':_0xac4a('0x81'),'userProfileId':_0x4e93f5[_0xac4a('0x2b')][_0xac4a('0x7e')]},'raw':!![]})[_0xac4a('0x36')](function(_0x2e2c92){if(!_0x2e2c92||_0x2e2c92['autoAssociation']!=0x0)return _0x21a384;return db['UserProfileResource'][_0xac4a('0x7f')]({'name':_0x21a384[_0xac4a('0x34')],'resourceId':_0x21a384['id'],'type':_0x2e2c92[_0xac4a('0x34')],'sectionId':_0x2e2c92['id']},{})[_0xac4a('0x36')](function(){return _0x21a384;});})[_0xac4a('0x1e')](function(_0x3c5bbc){logger[_0xac4a('0x1b')](_0xac4a('0x82'),_0x3c5bbc);throw _0x3c5bbc;});})['then'](respondWithResult(_0x3824a2,0xc9))['catch'](handleError(_0x3824a2,null));};exports[_0xac4a('0x83')]=function(_0x31cc9a,_0x247eee){var _0x950e60=_0x31cc9a[_0xac4a('0x5e')];var _0x2ea4a4=[];if(_0x31cc9a[_0xac4a('0x2b')][_0xac4a('0x29')]==='agent')throw new Error('Unauthorized');if(_[_0xac4a('0x84')](_0x950e60,[_0xac4a('0x29'),_0xac4a('0x2b')])&&_0x31cc9a[_0xac4a('0x2b')][_0xac4a('0x29')]!==_0xac4a('0x2a')){throw new Error(_0xac4a('0x7b'));}if(_['some'](_0x950e60,[_0xac4a('0x29'),_0xac4a('0x2a')])&&_0x31cc9a[_0xac4a('0x2b')]['role']!==_0xac4a('0x2a')){throw new Error(_0xac4a('0x85'));}return licenseUtil[_0xac4a('0x86')](_0x950e60)[_0xac4a('0x36')](function(){return validateUser(_0x950e60[0x0]);})[_0xac4a('0x36')](function(){for(var _0x27d023=0x1;_0x27d023<_0x950e60[_0xac4a('0x57')];_0x27d023++){var _0x2ef42a=_0x950e60[_0x27d023-0x1][_0xac4a('0x63')];if(!_0x950e60[_0x27d023]['internal'])_0x950e60[_0x27d023][_0xac4a('0x63')]=_0x2ef42a+0x1;_0x2ea4a4['push'](validateUser(_0x950e60[_0x27d023]));}return BPromise[_0xac4a('0x5c')](_0x2ea4a4);})[_0xac4a('0x36')](function(){_0x2ea4a4=[];for(var _0x3184b3=0x0;_0x3184b3<_0x950e60[_0xac4a('0x57')];_0x3184b3++){_0x2ea4a4[_0xac4a('0x44')](updateUser(_0x950e60[_0x3184b3]));}return BPromise[_0xac4a('0x5c')](_0x2ea4a4);})[_0xac4a('0x36')](function(){return BPromise['each'](_0x950e60,function(_0x2b883a){return db[_0xac4a('0x3b')][_0xac4a('0x7f')](_0x2b883a,{'include':[{'model':db[_0xac4a('0x70')],'as':_0xac4a('0x70')}]})['then'](function(_0x1b37d9){_0x2b883a['id']=_0x1b37d9['id'];return _0x2b883a;});});})[_0xac4a('0x36')](function(_0x4f2b19){if(_0x31cc9a['body'][_0xac4a('0x29')]===_0xac4a('0x2b'))return _0x4f2b19;if(_0x31cc9a['user'][_0xac4a('0x29')]!==_0xac4a('0x2b'))return _0x4f2b19;var _0x6afaba=_[_0xac4a('0x84')](_0x4f2b19,function(_0x31df2d){return _0x31df2d[_0xac4a('0x29')]==='agent'||_0x31df2d[_0xac4a('0x29')]===_0xac4a('0x2d');});if(!_0x6afaba)return _0x4f2b19;return db[_0xac4a('0x80')]['findAll']({'where':{'name':{'$or':[_0xac4a('0x87'),_0xac4a('0x81')]},'userProfileId':_0x31cc9a[_0xac4a('0x2b')][_0xac4a('0x7e')]},'raw':!![]})[_0xac4a('0x36')](function(_0x23d635){if(_['isEmpty'](_0x23d635)||!_[_0xac4a('0x84')](_0x23d635,[_0xac4a('0x88'),0x0]))return _0x4f2b19;_0x2ea4a4=[];var _0x5ab83b=_(_0x23d635)[_0xac4a('0x30')](function(_0x55054a){if(_0x55054a[_0xac4a('0x88')]===0x1)return;return _0x55054a[_0xac4a('0x34')]==='Agents'?_0xac4a('0x2c'):'telephone';})[_0xac4a('0x89')]()['value']();for(var _0x3c601e=0x0;_0x3c601e<_0x4f2b19[_0xac4a('0x57')];_0x3c601e++){if(!_[_0xac4a('0x32')](_0x5ab83b,_0x4f2b19[_0x3c601e][_0xac4a('0x29')]))return;var _0xc38492=_0x4f2b19[_0x3c601e][_0xac4a('0x29')]===_0xac4a('0x2c')?_0xac4a('0x87'):_0xac4a('0x81');_0x2ea4a4[_0xac4a('0x44')](db[_0xac4a('0x8a')][_0xac4a('0x7f')]({'name':_0x4f2b19[_0x3c601e][_0xac4a('0x34')],'resourceId':_0x4f2b19[_0x3c601e]['id'],'type':_0xc38492,'sectionId':_[_0xac4a('0x33')](_0x23d635,['name',_0xc38492])['id']},{}));}return BPromise[_0xac4a('0x5c')](_0x2ea4a4);});})[_0xac4a('0x36')](respondWithResult(_0x247eee,0xc9))['catch'](handleError(_0x247eee,null));};exports[_0xac4a('0x8b')]=function(_0x31d190,_0x1b10ad){if(_0x31d190[_0xac4a('0x5e')]['id']){delete _0x31d190[_0xac4a('0x5e')]['id'];}return db['User'][_0xac4a('0x33')]({'where':{'id':_0x31d190['params']['id']}})[_0xac4a('0x36')](function(_0x28ae76){if(!_0x28ae76)return null;if(_0x28ae76['id']===_0x31d190[_0xac4a('0x2b')]['id']){if(!_0x31d190[_0xac4a('0x5e')]['oldPassword']||!_0x31d190[_0xac4a('0x5e')]['newPassword']){throw new db[(_0xac4a('0x8c'))][(_0xac4a('0x8d'))](_0xac4a('0x8e'));}if(!_0x28ae76['authenticate'](_0x31d190[_0xac4a('0x5e')][_0xac4a('0x8f')])){throw new db[(_0xac4a('0x8c'))]['ValidationError'](_0xac4a('0x90'));}if(_0x31d190[_0xac4a('0x5e')][_0xac4a('0x8f')]===_0x31d190[_0xac4a('0x5e')][_0xac4a('0x91')]){throw new db[(_0xac4a('0x8c'))][(_0xac4a('0x8d'))](_0xac4a('0x92'));}}else if(_0x31d190['user'][_0xac4a('0x29')]==='admin'){if(!_0x31d190['body']['newPassword']){throw new db['Sequelize']['ValidationError'](_0xac4a('0x93'));}}else if(_0x31d190[_0xac4a('0x2b')][_0xac4a('0x29')]===_0xac4a('0x2b')){if(!_0x31d190[_0xac4a('0x5e')]['newPassword']){throw new db[(_0xac4a('0x8c'))][(_0xac4a('0x8d'))](_0xac4a('0x93'));}if(_0x28ae76[_0xac4a('0x29')]!==_0xac4a('0x2c')){throw new db[(_0xac4a('0x8c'))][(_0xac4a('0x8d'))](_0xac4a('0x7a'));}}else{throw new db['Sequelize'][(_0xac4a('0x8d'))](_0xac4a('0x7a'));}return _0x28ae76;})[_0xac4a('0x36')](handleEntityNotFound(_0x1b10ad,null))[_0xac4a('0x36')](function(_0x303d5d){return db[_0xac4a('0x94')][_0xac4a('0x95')]({'attributes':['id','securePassword','enforcePasswordHistory',_0xac4a('0x96')]})[_0xac4a('0x36')](function(_0x51993a){if(_0x51993a[_0xac4a('0x65')])authService[_0xac4a('0x66')](_0x31d190['body']['newPassword']);if(!_0x51993a[_0xac4a('0x97')]||!_0x303d5d[_0xac4a('0x98')])return _0x303d5d;authService[_0xac4a('0x99')](_0x31d190[_0xac4a('0x5e')][_0xac4a('0x91')],_0x303d5d['previousPasswords'],_0x51993a[_0xac4a('0x96')]);return _0x303d5d;})['then'](saveUpdates({'password':_0x31d190['body']['newPassword'],'passwordResetAt':_0x31d190[_0xac4a('0x2b')]['id']==_0x31d190[_0xac4a('0x4f')]['id']?moment():null,'previousPasswords':authService[_0xac4a('0x9a')](_0x31d190[_0xac4a('0x5e')][_0xac4a('0x91')],_0x303d5d[_0xac4a('0x98')])},null));})[_0xac4a('0x36')](respondWithResult(_0x1b10ad,null))[_0xac4a('0x1e')](handleError(_0x1b10ad,null));};exports['addQueues']=function(_0x5e1662,_0x53bcbc){var _0x3305a5=_0x5e1662[_0xac4a('0x5e')][_0xac4a('0x9b')];return db[_0xac4a('0x3b')][_0xac4a('0x33')]({'where':{'id':_0x5e1662[_0xac4a('0x4f')]['id']},'attributes':['id',_0xac4a('0x34'),_0xac4a('0x29'),_0xac4a('0x9c'),_0xac4a('0x9d'),_0xac4a('0x9e'),_0xac4a('0x9f')]})[_0xac4a('0x36')](handleEntityNotFound(_0x53bcbc,null))[_0xac4a('0x36')](function(_0x356a6b){if(_0x356a6b){if(!utils[_0xac4a('0xa0')](_0x3305a5)){throw new db[(_0xac4a('0x8c'))][(_0xac4a('0x8d'))](_0xac4a('0xa1'));}return _0x356a6b[_0xac4a('0xa2')+_[_0xac4a('0xa3')](_0x3305a5[_0xac4a('0xa4')]())+_0xac4a('0xa5')](_0x5e1662['body'][_0xac4a('0x61')],{'penalty':_0x5e1662[_0xac4a('0x5e')][_0xac4a('0xa6')]||0x0})[_0xac4a('0xa7')](function(_0x237312){for(var _0x31afd2=0x0;_0x31afd2<_0x5e1662[_0xac4a('0x5e')][_0xac4a('0x61')]['length'];_0x31afd2+=0x1){var _0x5127ea={'UserId':Number(_0x5e1662[_0xac4a('0x4f')]['id'])};_0x5127ea[_[_0xac4a('0xa3')](_0x3305a5[_0xac4a('0xa4')]())+'QueueId']=Number(_0x5e1662['body']['ids'][_0x31afd2]);socket[_0xac4a('0xa8')]('user'+_[_0xac4a('0xa3')](_0x3305a5[_0xac4a('0xa4')]())+'Queue:save',_0x5127ea);}return _0x237312;})[_0xac4a('0x36')](function(){if(_0x3305a5==='voice'){return db[_0xac4a('0xa9')][_0xac4a('0x45')]({'where':{'id':_0x5e1662[_0xac4a('0x5e')][_0xac4a('0x61')]||[]},'raw':!![],'attributes':['id',_0xac4a('0x34')]});}})[_0xac4a('0x36')](function(_0x5e0602){var _0x25bf23=_0x356a6b[_0xac4a('0x28')]({'plain':!![]});var _0x2c03a1=[];if(_0x3305a5==='voice'&&_0x25bf23[_0xac4a('0x29')]===_0xac4a('0x2c')&&_0x25bf23[_0xac4a('0x9c')]){for(var _0x247856=0x0;_0x247856<_0x5e0602['length'];_0x247856+=0x1){_0x2c03a1[_0xac4a('0x44')]({'membername':_0x25bf23[_0xac4a('0x34')],'UserId':_0x25bf23['id'],'queue_name':_0x5e0602[_0x247856][_0xac4a('0x34')],'VoiceQueueId':_0x5e0602[_0x247856]['id'],'interface':_[_0xac4a('0x68')](_0x25bf23[_0xac4a('0x9f')])?util[_0xac4a('0xaa')]('SIP/%s',_0x25bf23['name']):_0x25bf23[_0xac4a('0x9f')],'paused':_0x25bf23[_0xac4a('0x9e')]||![],'penalty':_0x5e1662[_0xac4a('0x5e')][_0xac4a('0xa6')]||0x0});}return BPromise[_0xac4a('0xab')](_0x2c03a1,function(_0x1a12a2){return db['UserVoiceQueueRt'][_0xac4a('0xac')](_0x1a12a2);});}return _0x356a6b;});}})['then'](respondWithStatusCode(_0x53bcbc,null))[_0xac4a('0x1e')](handleError(_0x53bcbc,null));};exports['removeQueues']=function(_0xa1df14,_0x13b938){var _0x15f35a;return db[_0xac4a('0x3b')]['find']({'where':{'id':_0xa1df14[_0xac4a('0x4f')]['id']},'attributes':['id',_0xac4a('0x34'),_0xac4a('0x29')]})[_0xac4a('0x36')](handleEntityNotFound(_0x13b938,null))[_0xac4a('0x36')](function(_0x520001){if(_0x520001){_0x15f35a=_0x520001;if(!_0xa1df14[_0xac4a('0x52')][_0xac4a('0x9b')]||!utils[_0xac4a('0xa0')](_0xa1df14[_0xac4a('0x52')][_0xac4a('0x9b')])){throw new db['Sequelize'][(_0xac4a('0x8d'))](_0xac4a('0xa1'));}return _0x520001[_0xac4a('0xad')+_[_0xac4a('0xa3')](_0xa1df14[_0xac4a('0x52')]['channel']['toLowerCase']())+'Queues'](_0xa1df14['query'][_0xac4a('0x61')]);}})[_0xac4a('0x36')](function(_0x17f815){if(_[_0xac4a('0xae')](_0xa1df14[_0xac4a('0x52')]['ids'])){for(var _0x293d49=0x0;_0x293d49<_0xa1df14[_0xac4a('0x52')]['ids'][_0xac4a('0x57')];_0x293d49+=0x1){var _0x11faad={'UserId':Number(_0xa1df14[_0xac4a('0x4f')]['id'])};_0x11faad[_['capitalize'](_0xa1df14[_0xac4a('0x52')][_0xac4a('0x9b')][_0xac4a('0xa4')]())+_0xac4a('0xaf')]=Number(_0xa1df14[_0xac4a('0x52')][_0xac4a('0x61')][_0x293d49]);socket[_0xac4a('0xa8')](_0xac4a('0x2b')+_[_0xac4a('0xa3')](_0xa1df14['query'][_0xac4a('0x9b')][_0xac4a('0xa4')]())+'Queue:remove',_0x11faad);}}else{var _0x11faad={'UserId':Number(_0xa1df14['params']['id'])};_0x11faad[_[_0xac4a('0xa3')](_0xa1df14[_0xac4a('0x52')]['channel'][_0xac4a('0xa4')]())+_0xac4a('0xaf')]=Number(_0xa1df14[_0xac4a('0x52')][_0xac4a('0x61')]);socket[_0xac4a('0xa8')](_0xac4a('0x2b')+_[_0xac4a('0xa3')](_0xa1df14[_0xac4a('0x52')]['channel']['toLowerCase']())+_0xac4a('0xb0'),_0x11faad);}return _0x17f815;})['then'](function(){if(_0xa1df14['query'][_0xac4a('0x9b')]===_0xac4a('0xb1')){return db[_0xac4a('0xb2')]['destroy']({'where':{'UserId':_0xa1df14[_0xac4a('0x4f')]['id'],'VoiceQueueId':_0xa1df14[_0xac4a('0x52')]['ids']},'individualHooks':!![]})['then'](function(){return _0x15f35a;});}return _0x15f35a;})[_0xac4a('0x36')](respondWithStatusCode(_0x13b938,null))[_0xac4a('0x1e')](handleError(_0x13b938,null));};exports[_0xac4a('0xb3')]=function(_0x368546,_0x4fadd1){_0x368546[_0xac4a('0x5e')][_0xac4a('0xb4')]=_0x368546[_0xac4a('0xb5')]['filename'];return db[_0xac4a('0x3b')][_0xac4a('0x33')]({'where':{'id':_0x368546[_0xac4a('0x4f')]['id']}})[_0xac4a('0x36')](handleEntityNotFound(_0x4fadd1,null))[_0xac4a('0x36')](saveUpdates(_0x368546['body'],null))['then'](respondWithResult(_0x4fadd1,null))[_0xac4a('0x1e')](handleError(_0x4fadd1,null));};exports[_0xac4a('0xb6')]=function(_0x1774e5,_0x110e16){var _0x14ca03=path[_0xac4a('0xb7')](config[_0xac4a('0xb8')],_0xac4a('0xb9'));return db[_0xac4a('0x3b')][_0xac4a('0x33')]({'where':{'id':_0x1774e5[_0xac4a('0x4f')]['id']},'attributes':['id',_0xac4a('0xb4')],'raw':!![]})[_0xac4a('0x36')](handleEntityNotFound(_0x110e16,null))['then'](function(_0x3ef9b2){if(_0x3ef9b2){if(_['isNil'](_0x3ef9b2['userpic'])){return _0x110e16[_0xac4a('0xba')](_0x14ca03);}else{if(!fs[_0xac4a('0xbb')](path[_0xac4a('0xb7')](config[_0xac4a('0xb8')],_0xac4a('0xbc'),_0x3ef9b2[_0xac4a('0xb4')]))){return _0x110e16[_0xac4a('0xba')](_0x14ca03);}return _0x110e16[_0xac4a('0xba')](path[_0xac4a('0xb7')](config['root'],_0xac4a('0xbc'),_0x3ef9b2[_0xac4a('0xb4')]));}}})[_0xac4a('0x1e')](handleError(_0x110e16,null));};exports[_0xac4a('0xbd')]=function(_0x5c0bb8,_0x5b1934){return db[_0xac4a('0x3b')][_0xac4a('0x33')]({'where':{'id':_0x5c0bb8[_0xac4a('0x4f')]['id']},'attributes':['id']})[_0xac4a('0x36')](handleEntityNotFound(_0x5b1934,null))[_0xac4a('0x36')](function(_0x254de8){var _0x1c7ea7=[];values=_0x254de8[_0xac4a('0x4a')];_0x1c7ea7[_0xac4a('0x44')](get_open_tabs('chat',_0x254de8[_0xac4a('0x4a')]));_0x1c7ea7[_0xac4a('0x44')](get_open_tabs(_0xac4a('0x4b'),_0x254de8[_0xac4a('0x4a')]));_0x1c7ea7[_0xac4a('0x44')](get_open_tabs(_0xac4a('0x5a'),_0x254de8['dataValues']));_0x1c7ea7['push'](get_open_tabs('whatsapp',_0x254de8[_0xac4a('0x4a')]));_0x1c7ea7[_0xac4a('0x44')](get_open_tabs('fax',_0x254de8['dataValues']));_0x1c7ea7[_0xac4a('0x44')](get_open_tabs('mail',_0x254de8[_0xac4a('0x4a')]));return BPromise['all'](_0x1c7ea7);})[_0xac4a('0x36')](function(_0x2abd82){var _0x1888c3=[];if(_0x2abd82){for(var _0x27e640=0x0;_0x27e640<values[_0xac4a('0xbe')][_0xac4a('0x57')];_0x27e640++){var _0x2303b7=values[_0xac4a('0xbe')][_0x27e640];_0x1888c3[_0xac4a('0x44')]({'channel':'CHAT','id':_0x2303b7['id'],'createdAt':_0x2303b7['createdAt']});}for(var _0x27e640=0x0;_0x27e640<values[_0xac4a('0xbf')][_0xac4a('0x57')];_0x27e640++){var _0x2303b7=values[_0xac4a('0xbf')][_0x27e640];_0x1888c3[_0xac4a('0x44')]({'channel':_0xac4a('0xc0'),'id':_0x2303b7['id'],'createdAt':_0x2303b7[_0xac4a('0xc1')]});}for(var _0x27e640=0x0;_0x27e640<values[_0xac4a('0xc2')][_0xac4a('0x57')];_0x27e640++){var _0x2303b7=values[_0xac4a('0xc2')][_0x27e640];_0x1888c3[_0xac4a('0x44')]({'channel':_0xac4a('0xc3'),'id':_0x2303b7['id'],'createdAt':_0x2303b7[_0xac4a('0xc1')]});}for(var _0x27e640=0x0;_0x27e640<values['MailOpenTabs'][_0xac4a('0x57')];_0x27e640++){var _0x2303b7=values[_0xac4a('0xc4')][_0x27e640];_0x1888c3[_0xac4a('0x44')]({'channel':_0xac4a('0xc5'),'id':_0x2303b7['id'],'createdAt':_0x2303b7[_0xac4a('0xc1')]});}for(var _0x27e640=0x0;_0x27e640<values[_0xac4a('0xc6')][_0xac4a('0x57')];_0x27e640++){var _0x2303b7=values[_0xac4a('0xc6')][_0x27e640];_0x1888c3['push']({'channel':_0xac4a('0xc7'),'id':_0x2303b7['id'],'createdAt':_0x2303b7[_0xac4a('0xc1')]});}for(var _0x27e640=0x0;_0x27e640<values[_0xac4a('0xc8')][_0xac4a('0x57')];_0x27e640++){var _0x2303b7=values[_0xac4a('0xc8')][_0x27e640];_0x1888c3[_0xac4a('0x44')]({'channel':'WHATSAPP','id':_0x2303b7['id'],'createdAt':_0x2303b7[_0xac4a('0xc1')]});}var _0x489208={'count':_0x1888c3[_0xac4a('0x57')],'rows':_0x1888c3};return _0x489208;}else return null;})[_0xac4a('0x36')](respondWithResult(_0x5b1934,null))['catch'](handleError(_0x5b1934,null));};exports[_0xac4a('0xc9')]=function(_0x21ddef,_0x38ecd8){var _0x53ce1f={};var _0x55ea84={};var _0x40c49b;var _0x494c3f;return db[_0xac4a('0x3b')]['findOne']({'where':{'id':_0x21ddef['params']['id']}})[_0xac4a('0x36')](handleEntityNotFound(_0x38ecd8,null))[_0xac4a('0x36')](function(_0xa80dfb){if(_0xa80dfb){_0x40c49b=_0xa80dfb;_0x55ea84['model']=_[_0xac4a('0x51')](db[_0xac4a('0xca')]['rawAttributes']);_0x55ea84[_0xac4a('0x52')]=_[_0xac4a('0x51')](_0x21ddef['query']);_0x55ea84[_0xac4a('0x53')]=_[_0xac4a('0x54')](_0x55ea84[_0xac4a('0x55')],_0x55ea84[_0xac4a('0x52')]);_0x53ce1f[_0xac4a('0x43')]=_[_0xac4a('0x54')](_0x55ea84[_0xac4a('0x55')],qs[_0xac4a('0x56')](_0x21ddef['query'][_0xac4a('0x56')]));_0x53ce1f['attributes']=_0x53ce1f[_0xac4a('0x43')][_0xac4a('0x57')]?_0x53ce1f[_0xac4a('0x43')]:_0x55ea84[_0xac4a('0x55')];_0x53ce1f[_0xac4a('0xcb')]=qs[_0xac4a('0xcc')](_0x21ddef['query'][_0xac4a('0xcc')]);_0x53ce1f[_0xac4a('0x41')]=qs[_0xac4a('0x53')](_[_0xac4a('0xcd')](_0x21ddef[_0xac4a('0x52')],_0x55ea84[_0xac4a('0x53')]));if(_0x21ddef[_0xac4a('0x52')][_0xac4a('0x2e')]){_0x53ce1f['where']=_[_0xac4a('0x59')](_0x53ce1f['where'],{'$or':_[_0xac4a('0x30')](_0x53ce1f[_0xac4a('0x43')],function(_0x234fb8){var _0x184b79={};_0x184b79[_0x234fb8]={'$like':'%'+_0x21ddef['query']['filter']+'%'};return _0x184b79;})});}_0x53ce1f=_[_0xac4a('0x59')]({},_0x53ce1f,_0x21ddef[_0xac4a('0xce')]);return _0x40c49b[_0xac4a('0xc9')](_0x53ce1f);}})[_0xac4a('0x36')](function(_0x105061){if(_0x105061){_0x494c3f=_0x105061[_0xac4a('0x57')];if(_0x21ddef['query'][_0xac4a('0xcf')](_0xac4a('0x58'))){_0x53ce1f[_0xac4a('0x42')]=[{'model':db['CmList'],'as':_0xac4a('0xd0'),'required':![]},{'model':db[_0xac4a('0xd1')],'as':_0xac4a('0xd2'),'attributes':['id','name','color'],'where':_0x21ddef[_0xac4a('0x52')][_0xac4a('0xd3')]?{'id':_0x21ddef[_0xac4a('0x52')][_0xac4a('0xd3')]}:undefined,'required':_0x21ddef[_0xac4a('0x52')][_0xac4a('0xd3')]?!![]:![]}];}if(!_0x21ddef[_0xac4a('0x52')][_0xac4a('0xcf')](_0xac4a('0xd4'))){_0x53ce1f['limit']=qs['limit'](_0x21ddef[_0xac4a('0x52')][_0xac4a('0x24')]);_0x53ce1f[_0xac4a('0x22')]=qs['offset'](_0x21ddef[_0xac4a('0x52')][_0xac4a('0x22')]);}return _0x40c49b[_0xac4a('0xc9')](_0x53ce1f);}})['then'](function(_0x589ba9){if(_0x589ba9){return _0x589ba9?{'count':_0x494c3f,'rows':_0x589ba9}:null;}})[_0xac4a('0x36')](respondWithResult(_0x38ecd8,null))['catch'](handleError(_0x38ecd8,null));};exports[_0xac4a('0xd5')]=function(_0x10da11,_0x5a9872){var _0x149121;var _0x1f55b9;var _0x4cc6b7={};var _0xb7cbe2;return db[_0xac4a('0x3b')][_0xac4a('0x95')]({'where':{'id':_0x10da11[_0xac4a('0x4f')]['id']},'attributes':['id',_0xac4a('0x34'),_0xac4a('0x29')]})[_0xac4a('0x36')](handleEntityNotFound(_0x5a9872,null))[_0xac4a('0x36')](function(_0x1137df){if(!utils['isValidChannel'](_0x10da11[_0xac4a('0x52')][_0xac4a('0x9b')])){throw new db['Sequelize']['ValidationError']('Unknown\x20channel');}_0x149121=_0x1137df;var _0x12fec5={};_0x12fec5[_0xac4a('0x55')]=_[_0xac4a('0x51')](db[_[_0xac4a('0xa3')](_0x10da11[_0xac4a('0x52')][_0xac4a('0x9b')])+_0xac4a('0xd6')][_0xac4a('0x3c')]);_0x12fec5['query']=_['keys'](_0x10da11['query']);_0x12fec5[_0xac4a('0x53')]=_['intersection'](_0x12fec5['model'],_0x12fec5[_0xac4a('0x52')]);_0x4cc6b7['attributes']=_['intersection'](_0x12fec5['model'],qs[_0xac4a('0x56')](_0x10da11[_0xac4a('0x52')][_0xac4a('0x56')]));_0x4cc6b7[_0xac4a('0x43')]=_0x4cc6b7[_0xac4a('0x43')][_0xac4a('0x57')]?_0x4cc6b7[_0xac4a('0x43')]:_0x12fec5[_0xac4a('0x55')];_0x4cc6b7[_0xac4a('0xcb')]=qs[_0xac4a('0xcc')](_0x10da11[_0xac4a('0x52')][_0xac4a('0xcc')]);_0x4cc6b7[_0xac4a('0x41')]=qs['filters'](_[_0xac4a('0xcd')](_0x10da11['query'],_0x12fec5[_0xac4a('0x53')]));if(_0x10da11[_0xac4a('0x52')][_0xac4a('0x2e')]){_0x4cc6b7[_0xac4a('0x41')]=_[_0xac4a('0x59')](_0x4cc6b7[_0xac4a('0x41')],{'$or':_['map'](_0x4cc6b7[_0xac4a('0x43')],function(_0x1f532b){var _0x1c3ba5={};_0x1c3ba5[_0x1f532b]={'$like':'%'+_0x10da11['query'][_0xac4a('0x2e')]+'%'};return _0x1c3ba5;})});}_0x4cc6b7=_['merge']({},_0x4cc6b7,_0x10da11[_0xac4a('0xce')]);switch(_0x149121[_0xac4a('0x29')]){case _0xac4a('0x2a'):return db[_['capitalize'](_0x10da11[_0xac4a('0x52')][_0xac4a('0x9b')])+'Queue'][_0xac4a('0x45')](_0x4cc6b7);case _0xac4a('0x2b'):case'agent':return _0x149121[_0xac4a('0x28')+_['capitalize'](_0x10da11[_0xac4a('0x52')][_0xac4a('0x9b')])+'Queues'](_0x4cc6b7);default:throw new db['Sequelize']['ValidationError']('Unknown\x20role');}})[_0xac4a('0x36')](function(_0x566369){_0xb7cbe2=_0x566369[_0xac4a('0x57')];if(!_0x10da11[_0xac4a('0x52')][_0xac4a('0xcf')]('nolimit')){_0x4cc6b7[_0xac4a('0x24')]=qs[_0xac4a('0x24')](_0x10da11[_0xac4a('0x52')]['limit']);_0x4cc6b7[_0xac4a('0x22')]=qs['offset'](_0x10da11[_0xac4a('0x52')][_0xac4a('0x22')]);}switch(_0x149121['role']){case _0xac4a('0x2a'):return db[_[_0xac4a('0xa3')](_0x10da11[_0xac4a('0x52')][_0xac4a('0x9b')])+'Queue'][_0xac4a('0x45')](_0x4cc6b7);case _0xac4a('0x2b'):case _0xac4a('0x2c'):return _0x149121[_0xac4a('0x28')+_[_0xac4a('0xa3')](_0x10da11[_0xac4a('0x52')][_0xac4a('0x9b')])+'Queues'](_0x4cc6b7);}})['then'](function(_0x5d1bc7){return{'count':_0xb7cbe2,'rows':_0x5d1bc7};})[_0xac4a('0x36')](respondWithResult(_0x5a9872,null))[_0xac4a('0x1e')](handleError(_0x5a9872,null));};exports['getVoiceQueuesRt']=function(_0x23a394,_0x10198d){var _0x4097e8={};var _0xfe4e8f={};var _0x5e4c0c;var _0x1babcd;return db['User'][_0xac4a('0x95')]({'where':{'id':_0x23a394[_0xac4a('0x4f')]['id']}})['then'](handleEntityNotFound(_0x10198d,null))[_0xac4a('0x36')](function(_0x4b9541){if(_0x4b9541){_0x5e4c0c=_0x4b9541;_0xfe4e8f['model']=_['keys'](db[_0xac4a('0xb2')][_0xac4a('0x3c')]);_0xfe4e8f['query']=_[_0xac4a('0x51')](_0x23a394[_0xac4a('0x52')]);_0xfe4e8f[_0xac4a('0x53')]=_[_0xac4a('0x54')](_0xfe4e8f[_0xac4a('0x55')],_0xfe4e8f[_0xac4a('0x52')]);_0x4097e8[_0xac4a('0x43')]=_[_0xac4a('0x54')](_0xfe4e8f[_0xac4a('0x55')],qs[_0xac4a('0x56')](_0x23a394[_0xac4a('0x52')][_0xac4a('0x56')]));_0x4097e8['attributes']=_0x4097e8['attributes'][_0xac4a('0x57')]?_0x4097e8[_0xac4a('0x43')]:_0xfe4e8f[_0xac4a('0x55')];_0x4097e8[_0xac4a('0xcb')]=qs[_0xac4a('0xcc')](_0x23a394['query'][_0xac4a('0xcc')]);_0x4097e8['where']=qs['filters'](_['pick'](_0x23a394['query'],_0xfe4e8f[_0xac4a('0x53')]));if(_0x23a394[_0xac4a('0x52')]['filter']){_0x4097e8[_0xac4a('0x41')]=_['merge'](_0x4097e8[_0xac4a('0x41')],{'$or':_[_0xac4a('0x30')](_0x4097e8[_0xac4a('0x43')],function(_0x50b125){var _0x3a49fb={};_0x3a49fb[_0x50b125]={'$like':'%'+_0x23a394[_0xac4a('0x52')]['filter']+'%'};return _0x3a49fb;})});}_0x4097e8=_[_0xac4a('0x59')]({},_0x4097e8,_0x23a394[_0xac4a('0xce')]);return _0x5e4c0c['getVoiceQueuesRt'](_0x4097e8);}})[_0xac4a('0x36')](function(_0x5096fd){if(_0x5096fd){_0x1babcd=_0x5096fd[_0xac4a('0x57')];if(!_0x23a394[_0xac4a('0x52')][_0xac4a('0xcf')](_0xac4a('0xd4'))){_0x4097e8['limit']=qs[_0xac4a('0x24')](_0x23a394[_0xac4a('0x52')][_0xac4a('0x24')]);_0x4097e8[_0xac4a('0x22')]=qs['offset'](_0x23a394[_0xac4a('0x52')]['offset']);}return _0x5e4c0c[_0xac4a('0xd7')](_0x4097e8);}})[_0xac4a('0x36')](function(_0xaae5c3){if(_0xaae5c3){return _0xaae5c3?{'count':_0x1babcd,'rows':_0xaae5c3}:null;}})[_0xac4a('0x36')](respondWithResult(_0x10198d,null))[_0xac4a('0x1e')](handleError(_0x10198d,null));};exports[_0xac4a('0xd8')]=function(_0x24d50b,_0xba4962){var _0x4efa4b={};var _0x4bd4cd={};var _0x2e7afc;var _0x33fddd;return db[_0xac4a('0x3b')][_0xac4a('0x95')]({'where':{'id':_0x24d50b['params']['id']}})[_0xac4a('0x36')](handleEntityNotFound(_0xba4962,null))[_0xac4a('0x36')](function(_0x7c60ab){if(_0x7c60ab){_0x2e7afc=_0x7c60ab;_0x4bd4cd[_0xac4a('0x55')]=_[_0xac4a('0x51')](db[_0xac4a('0xd9')][_0xac4a('0x3c')]);_0x4bd4cd[_0xac4a('0x52')]=_[_0xac4a('0x51')](_0x24d50b['query']);_0x4bd4cd[_0xac4a('0x53')]=_['intersection'](_0x4bd4cd[_0xac4a('0x55')],_0x4bd4cd[_0xac4a('0x52')]);_0x4efa4b[_0xac4a('0x43')]=_[_0xac4a('0x54')](_0x4bd4cd[_0xac4a('0x55')],qs[_0xac4a('0x56')](_0x24d50b[_0xac4a('0x52')]['fields']));_0x4efa4b[_0xac4a('0x43')]=_0x4efa4b[_0xac4a('0x43')]['length']?_0x4efa4b[_0xac4a('0x43')]:_0x4bd4cd[_0xac4a('0x55')];_0x4efa4b[_0xac4a('0xcb')]=qs[_0xac4a('0xcc')](_0x24d50b[_0xac4a('0x52')]['sort']);_0x4efa4b[_0xac4a('0x41')]=qs[_0xac4a('0x53')](_[_0xac4a('0xcd')](_0x24d50b[_0xac4a('0x52')],_0x4bd4cd['filters']));if(_0x24d50b['query'][_0xac4a('0x2e')]){_0x4efa4b['where']=_[_0xac4a('0x59')](_0x4efa4b[_0xac4a('0x41')],{'$or':_[_0xac4a('0x30')](_0x4efa4b[_0xac4a('0x43')],function(_0x2852c7){var _0x74693={};_0x74693[_0x2852c7]={'$like':'%'+_0x24d50b[_0xac4a('0x52')][_0xac4a('0x2e')]+'%'};return _0x74693;})});}_0x4efa4b=_[_0xac4a('0x59')]({},_0x4efa4b,_0x24d50b[_0xac4a('0xce')]);return _0x2e7afc[_0xac4a('0xd8')](_0x4efa4b);}})['then'](function(_0x495d4e){if(_0x495d4e){_0x33fddd=_0x495d4e[_0xac4a('0x57')];if(!_0x24d50b[_0xac4a('0x52')][_0xac4a('0xcf')]('nolimit')){_0x4efa4b['limit']=qs[_0xac4a('0x24')](_0x24d50b[_0xac4a('0x52')]['limit']);_0x4efa4b[_0xac4a('0x22')]=qs[_0xac4a('0x22')](_0x24d50b['query'][_0xac4a('0x22')]);}return _0x2e7afc[_0xac4a('0xd8')](_0x4efa4b);}})['then'](function(_0x4c05df){if(_0x4c05df){return _0x4c05df?{'count':_0x33fddd,'rows':_0x4c05df}:null;}})['then'](respondWithResult(_0xba4962,null))[_0xac4a('0x1e')](handleError(_0xba4962,null));};exports[_0xac4a('0xda')]=function(_0x35c58e,_0x58bf1d){var _0x1b57d9={'raw':!![],'where':{}};var _0x186cdc={};var _0x5b6efe={'count':0x0,'rows':[]};return db['User'][_0xac4a('0x95')]({'where':{'id':_0x35c58e[_0xac4a('0x4f')]['id']}})[_0xac4a('0x36')](handleEntityNotFound(_0x58bf1d,null))['then'](function(_0x1eb063){if(_0x1eb063){_0x186cdc[_0xac4a('0x55')]=_[_0xac4a('0x51')](db[_0xac4a('0xdb')][_0xac4a('0x3c')]);_0x186cdc[_0xac4a('0x52')]=_[_0xac4a('0x51')](_0x35c58e[_0xac4a('0x52')]);_0x186cdc[_0xac4a('0x53')]=_[_0xac4a('0x54')](_0x186cdc[_0xac4a('0x55')],_0x186cdc['query']);_0x1b57d9['attributes']=_['intersection'](_0x186cdc[_0xac4a('0x55')],qs[_0xac4a('0x56')](_0x35c58e[_0xac4a('0x52')][_0xac4a('0x56')]));_0x1b57d9[_0xac4a('0x43')]=_0x1b57d9['attributes'][_0xac4a('0x57')]?_0x1b57d9['attributes']:_0x186cdc[_0xac4a('0x55')];if(!_0x35c58e[_0xac4a('0x52')]['hasOwnProperty'](_0xac4a('0xd4'))){_0x1b57d9['limit']=qs[_0xac4a('0x24')](_0x35c58e[_0xac4a('0x52')][_0xac4a('0x24')]);_0x1b57d9[_0xac4a('0x22')]=qs['offset'](_0x35c58e[_0xac4a('0x52')][_0xac4a('0x22')]);}_0x1b57d9['order']=qs[_0xac4a('0xcc')](_0x35c58e['query'][_0xac4a('0xcc')]);_0x1b57d9[_0xac4a('0x41')]=qs[_0xac4a('0x53')](_['pick'](_0x35c58e[_0xac4a('0x52')],_0x186cdc[_0xac4a('0x53')]));_0x1b57d9[_0xac4a('0x41')]['UserId']=_0x1eb063['id'];if(_0x35c58e[_0xac4a('0x52')]['filter']){_0x1b57d9[_0xac4a('0x41')]=_[_0xac4a('0x59')](_0x1b57d9[_0xac4a('0x41')],{'$or':_[_0xac4a('0x30')](_0x1b57d9[_0xac4a('0x43')],function(_0x1b2719){var _0x2e433e={};_0x2e433e[_0x1b2719]={'$like':'%'+_0x35c58e[_0xac4a('0x52')]['filter']+'%'};return _0x2e433e;})});}_0x1b57d9=_[_0xac4a('0x59')]({},_0x1b57d9,_0x35c58e[_0xac4a('0xce')]);return db[_0xac4a('0xdb')]['count']({'where':_0x1b57d9[_0xac4a('0x41')]})['then'](function(_0x2487bd){_0x5b6efe[_0xac4a('0x25')]=_0x2487bd;if(_0x35c58e[_0xac4a('0x52')][_0xac4a('0x58')]){_0x1b57d9[_0xac4a('0x42')]=[{'all':!![]}];}return db[_0xac4a('0xdb')]['findAll'](_0x1b57d9);})[_0xac4a('0x36')](function(_0x396aa9){_0x5b6efe[_0xac4a('0x46')]=_0x396aa9;return _0x5b6efe;});}})[_0xac4a('0x36')](respondWithFilteredResult(_0x58bf1d,_0x1b57d9))[_0xac4a('0x1e')](handleError(_0x58bf1d,null));};exports['getScreenRecordings']=function(_0x2cd0ba,_0x5c0793){var _0x23b095={'raw':!![],'where':{}};var _0x3eef4e={};var _0x548ce0={'count':0x0,'rows':[]};return db[_0xac4a('0x3b')]['findOne']({'where':{'id':_0x2cd0ba[_0xac4a('0x4f')]['id']}})['then'](handleEntityNotFound(_0x5c0793,null))[_0xac4a('0x36')](function(_0x26f36a){if(_0x26f36a){_0x3eef4e[_0xac4a('0x55')]=_[_0xac4a('0x51')](db[_0xac4a('0xdc')][_0xac4a('0x3c')]);_0x3eef4e['query']=_[_0xac4a('0x51')](_0x2cd0ba['query']);_0x3eef4e[_0xac4a('0x53')]=_[_0xac4a('0x54')](_0x3eef4e[_0xac4a('0x55')],_0x3eef4e[_0xac4a('0x52')]);_0x23b095[_0xac4a('0x43')]=_[_0xac4a('0x54')](_0x3eef4e[_0xac4a('0x55')],qs[_0xac4a('0x56')](_0x2cd0ba[_0xac4a('0x52')][_0xac4a('0x56')]));_0x23b095[_0xac4a('0x43')]=_0x23b095[_0xac4a('0x43')][_0xac4a('0x57')]?_0x23b095[_0xac4a('0x43')]:_0x3eef4e[_0xac4a('0x55')];if(!_0x2cd0ba[_0xac4a('0x52')]['hasOwnProperty'](_0xac4a('0xd4'))){_0x23b095[_0xac4a('0x24')]=qs['limit'](_0x2cd0ba[_0xac4a('0x52')]['limit']);_0x23b095[_0xac4a('0x22')]=qs[_0xac4a('0x22')](_0x2cd0ba[_0xac4a('0x52')][_0xac4a('0x22')]);}_0x23b095[_0xac4a('0xcb')]=qs[_0xac4a('0xcc')](_0x2cd0ba['query']['sort']);_0x23b095[_0xac4a('0x41')]=qs['filters'](_[_0xac4a('0xcd')](_0x2cd0ba[_0xac4a('0x52')],_0x3eef4e[_0xac4a('0x53')]));_0x23b095[_0xac4a('0x41')][_0xac4a('0xdd')]=_0x26f36a['id'];if(_0x2cd0ba[_0xac4a('0x52')][_0xac4a('0x2e')]){_0x23b095['where']=_[_0xac4a('0x59')](_0x23b095['where'],{'$or':_[_0xac4a('0x30')](_0x23b095['attributes'],function(_0x50d3df){var _0x137fe0={};_0x137fe0[_0x50d3df]={'$like':'%'+_0x2cd0ba[_0xac4a('0x52')][_0xac4a('0x2e')]+'%'};return _0x137fe0;})});}_0x23b095=_[_0xac4a('0x59')]({},_0x23b095,_0x2cd0ba['options']);return db[_0xac4a('0xdc')][_0xac4a('0x25')]({'where':_0x23b095['where']})[_0xac4a('0x36')](function(_0x33dd86){_0x548ce0[_0xac4a('0x25')]=_0x33dd86;if(_0x2cd0ba[_0xac4a('0x52')][_0xac4a('0x58')]){_0x23b095[_0xac4a('0x42')]=[{'all':!![]}];}return db['ScreenRecording']['findAll'](_0x23b095);})[_0xac4a('0x36')](function(_0x578112){_0x548ce0[_0xac4a('0x46')]=_0x578112;return _0x548ce0;});}})['then'](respondWithFilteredResult(_0x5c0793,_0x23b095))[_0xac4a('0x1e')](handleError(_0x5c0793,null));};exports[_0xac4a('0xde')]=function(_0x5cb6ed,_0x22df94){var _0x57876f={};var _0x4dca33={};var _0x9e2cba;var _0x11d24a;return db[_0xac4a('0x3b')][_0xac4a('0x95')]({'where':{'id':_0x5cb6ed[_0xac4a('0x4f')]['id']}})['then'](handleEntityNotFound(_0x22df94,null))[_0xac4a('0x36')](function(_0x5c73fd){if(_0x5c73fd){_0x9e2cba=_0x5c73fd;_0x4dca33[_0xac4a('0x55')]=_[_0xac4a('0x51')](db[_0xac4a('0xdf')][_0xac4a('0x3c')]);_0x4dca33[_0xac4a('0x52')]=_[_0xac4a('0x51')](_0x5cb6ed[_0xac4a('0x52')]);_0x4dca33[_0xac4a('0x53')]=_['intersection'](_0x4dca33[_0xac4a('0x55')],_0x4dca33[_0xac4a('0x52')]);_0x57876f[_0xac4a('0x43')]=_[_0xac4a('0x54')](_0x4dca33[_0xac4a('0x55')],qs[_0xac4a('0x56')](_0x5cb6ed[_0xac4a('0x52')][_0xac4a('0x56')]));_0x57876f[_0xac4a('0x43')]=_0x57876f[_0xac4a('0x43')][_0xac4a('0x57')]?_0x57876f[_0xac4a('0x43')]:_0x4dca33[_0xac4a('0x55')];_0x57876f[_0xac4a('0xcb')]=qs['sort'](_0x5cb6ed[_0xac4a('0x52')][_0xac4a('0xcc')]);_0x57876f[_0xac4a('0x41')]=qs[_0xac4a('0x53')](_['pick'](_0x5cb6ed[_0xac4a('0x52')],_0x4dca33['filters']));if(_0x5cb6ed[_0xac4a('0x52')][_0xac4a('0x2e')]){_0x57876f[_0xac4a('0x41')]=_[_0xac4a('0x59')](_0x57876f[_0xac4a('0x41')],{'$or':_[_0xac4a('0x30')](_0x57876f[_0xac4a('0x43')],function(_0x2a0700){var _0x5cfce3={};_0x5cfce3[_0x2a0700]={'$like':'%'+_0x5cb6ed['query']['filter']+'%'};return _0x5cfce3;})});}_0x57876f=_[_0xac4a('0x59')]({},_0x57876f,_0x5cb6ed['options']);return _0x9e2cba[_0xac4a('0xde')](_0x57876f);}})['then'](function(_0x42df7b){if(_0x42df7b){_0x11d24a=_0x42df7b['length'];if(!_0x5cb6ed[_0xac4a('0x52')][_0xac4a('0xcf')](_0xac4a('0xd4'))){_0x57876f['limit']=qs[_0xac4a('0x24')](_0x5cb6ed[_0xac4a('0x52')]['limit']);_0x57876f[_0xac4a('0x22')]=qs[_0xac4a('0x22')](_0x5cb6ed['query']['offset']);}return _0x9e2cba[_0xac4a('0xde')](_0x57876f);}})[_0xac4a('0x36')](function(_0x540e98){if(_0x540e98){return _0x540e98?{'count':_0x11d24a,'rows':_0x540e98}:null;}})[_0xac4a('0x36')](respondWithResult(_0x22df94,null))[_0xac4a('0x1e')](handleError(_0x22df94,null));};exports[_0xac4a('0xe0')]=function(_0x168f4b,_0x10fbce){var _0x3708b3={};var _0x41f08e={};var _0x4ea092;var _0x2c6aa1;return db['User'][_0xac4a('0x95')]({'where':{'id':_0x168f4b[_0xac4a('0x4f')]['id']}})[_0xac4a('0x36')](handleEntityNotFound(_0x10fbce,null))[_0xac4a('0x36')](function(_0x393409){if(_0x393409){_0x4ea092=_0x393409;_0x41f08e[_0xac4a('0x55')]=_[_0xac4a('0x51')](db['OpenchannelInteraction'][_0xac4a('0x3c')]);_0x41f08e[_0xac4a('0x52')]=_['keys'](_0x168f4b[_0xac4a('0x52')]);_0x41f08e[_0xac4a('0x53')]=_[_0xac4a('0x54')](_0x41f08e[_0xac4a('0x55')],_0x41f08e[_0xac4a('0x52')]);_0x3708b3[_0xac4a('0x43')]=_[_0xac4a('0x54')](_0x41f08e['model'],qs[_0xac4a('0x56')](_0x168f4b['query'][_0xac4a('0x56')]));_0x3708b3[_0xac4a('0x43')]=_0x3708b3[_0xac4a('0x43')]['length']?_0x3708b3[_0xac4a('0x43')]:_0x41f08e['model'];_0x3708b3[_0xac4a('0xcb')]=qs[_0xac4a('0xcc')](_0x168f4b[_0xac4a('0x52')][_0xac4a('0xcc')]);_0x3708b3[_0xac4a('0x41')]=qs[_0xac4a('0x53')](_[_0xac4a('0xcd')](_0x168f4b[_0xac4a('0x52')],_0x41f08e[_0xac4a('0x53')]));if(_0x168f4b[_0xac4a('0x52')][_0xac4a('0x2e')]){_0x3708b3[_0xac4a('0x41')]=_[_0xac4a('0x59')](_0x3708b3['where'],{'$or':_[_0xac4a('0x30')](_0x3708b3[_0xac4a('0x43')],function(_0x218f41){var _0x277c11={};_0x277c11[_0x218f41]={'$like':'%'+_0x168f4b['query'][_0xac4a('0x2e')]+'%'};return _0x277c11;})});}_0x3708b3=_['merge']({},_0x3708b3,_0x168f4b[_0xac4a('0xce')]);return _0x4ea092[_0xac4a('0xe0')](_0x3708b3);}})[_0xac4a('0x36')](function(_0x1d1410){if(_0x1d1410){_0x2c6aa1=_0x1d1410[_0xac4a('0x57')];if(!_0x168f4b[_0xac4a('0x52')][_0xac4a('0xcf')](_0xac4a('0xd4'))){_0x3708b3['limit']=qs[_0xac4a('0x24')](_0x168f4b[_0xac4a('0x52')]['limit']);_0x3708b3['offset']=qs['offset'](_0x168f4b[_0xac4a('0x52')]['offset']);}return _0x4ea092[_0xac4a('0xe0')](_0x3708b3);}})['then'](function(_0x401ff3){if(_0x401ff3){return _0x401ff3?{'count':_0x2c6aa1,'rows':_0x401ff3}:null;}})[_0xac4a('0x36')](respondWithResult(_0x10fbce,null))[_0xac4a('0x1e')](handleError(_0x10fbce,null));};exports[_0xac4a('0xe1')]=function(_0x25911e,_0x405ca7){var _0x292110={'raw':!![],'where':{}};var _0x2e107e={};var _0xc381f0={'count':0x0,'rows':[]};return db[_0xac4a('0x3b')][_0xac4a('0x95')]({'where':{'id':_0x25911e[_0xac4a('0x4f')]['id']}})[_0xac4a('0x36')](handleEntityNotFound(_0x405ca7,null))['then'](function(_0x274785){if(_0x274785){_0x2e107e[_0xac4a('0x55')]=_[_0xac4a('0x51')](db[_0xac4a('0xe2')][_0xac4a('0x3c')]);_0x2e107e[_0xac4a('0x52')]=_[_0xac4a('0x51')](_0x25911e['query']);_0x2e107e[_0xac4a('0x53')]=_[_0xac4a('0x54')](_0x2e107e[_0xac4a('0x55')],_0x2e107e[_0xac4a('0x52')]);_0x292110['attributes']=_[_0xac4a('0x54')](_0x2e107e[_0xac4a('0x55')],qs['fields'](_0x25911e[_0xac4a('0x52')]['fields']));_0x292110[_0xac4a('0x43')]=_0x292110[_0xac4a('0x43')][_0xac4a('0x57')]?_0x292110['attributes']:_0x2e107e[_0xac4a('0x55')];if(!_0x25911e[_0xac4a('0x52')][_0xac4a('0xcf')](_0xac4a('0xd4'))){_0x292110[_0xac4a('0x24')]=qs['limit'](_0x25911e[_0xac4a('0x52')][_0xac4a('0x24')]);_0x292110['offset']=qs[_0xac4a('0x22')](_0x25911e[_0xac4a('0x52')][_0xac4a('0x22')]);}_0x292110[_0xac4a('0xcb')]=qs['sort'](_0x25911e[_0xac4a('0x52')][_0xac4a('0xcc')]);_0x292110['where']=qs['filters'](_[_0xac4a('0xcd')](_0x25911e[_0xac4a('0x52')],_0x2e107e[_0xac4a('0x53')]));_0x292110[_0xac4a('0x41')][_0xac4a('0xdd')]=_0x274785['id'];if(_0x25911e['query'][_0xac4a('0x2e')]){_0x292110['where']=_[_0xac4a('0x59')](_0x292110[_0xac4a('0x41')],{'$or':_[_0xac4a('0x30')](_0x292110[_0xac4a('0x43')],function(_0x1e69d0){var _0x2eb65a={};_0x2eb65a[_0x1e69d0]={'$like':'%'+_0x25911e['query']['filter']+'%'};return _0x2eb65a;})});}_0x292110=_[_0xac4a('0x59')]({},_0x292110,_0x25911e['options']);return db[_0xac4a('0xe2')][_0xac4a('0x25')]({'where':_0x292110[_0xac4a('0x41')]})[_0xac4a('0x36')](function(_0x4875de){_0xc381f0[_0xac4a('0x25')]=_0x4875de;if(_0x25911e[_0xac4a('0x52')]['includeAll']){_0x292110[_0xac4a('0x42')]=[{'all':!![]}];}return db[_0xac4a('0xe2')][_0xac4a('0x45')](_0x292110);})[_0xac4a('0x36')](function(_0x2895ae){_0xc381f0[_0xac4a('0x46')]=_0x2895ae;return _0xc381f0;});}})['then'](respondWithFilteredResult(_0x405ca7,_0x292110))[_0xac4a('0x1e')](handleError(_0x405ca7,null));};exports[_0xac4a('0xe3')]=function(_0x471cbb,_0x2ade25){var _0x5a1855={};var _0x659e61={};var _0x405ce7;var _0x6e82e;return db[_0xac4a('0x3b')][_0xac4a('0x95')]({'where':{'id':_0x471cbb[_0xac4a('0x4f')]['id']}})[_0xac4a('0x36')](handleEntityNotFound(_0x2ade25,null))[_0xac4a('0x36')](function(_0x40b005){if(_0x40b005){_0x405ce7=_0x40b005;_0x659e61[_0xac4a('0x55')]=_[_0xac4a('0x51')](db[_0xac4a('0xe4')][_0xac4a('0x3c')]);_0x659e61['query']=_[_0xac4a('0x51')](_0x471cbb[_0xac4a('0x52')]);_0x659e61[_0xac4a('0x53')]=_[_0xac4a('0x54')](_0x659e61[_0xac4a('0x55')],_0x659e61[_0xac4a('0x52')]);_0x5a1855[_0xac4a('0x43')]=_[_0xac4a('0x54')](_0x659e61['model'],qs[_0xac4a('0x56')](_0x471cbb[_0xac4a('0x52')]['fields']));_0x5a1855[_0xac4a('0x43')]=_0x5a1855[_0xac4a('0x43')][_0xac4a('0x57')]?_0x5a1855[_0xac4a('0x43')]:_0x659e61[_0xac4a('0x55')];_0x5a1855[_0xac4a('0xcb')]=qs[_0xac4a('0xcc')](_0x471cbb[_0xac4a('0x52')][_0xac4a('0xcc')]);_0x5a1855[_0xac4a('0x41')]=qs[_0xac4a('0x53')](_[_0xac4a('0xcd')](_0x471cbb[_0xac4a('0x52')],_0x659e61[_0xac4a('0x53')]));if(_0x471cbb[_0xac4a('0x52')][_0xac4a('0x2e')]){_0x5a1855['where']=_[_0xac4a('0x59')](_0x5a1855[_0xac4a('0x41')],{'$or':_[_0xac4a('0x30')](_0x5a1855['attributes'],function(_0x3732b3){var _0x5197c1={};_0x5197c1[_0x3732b3]={'$like':'%'+_0x471cbb['query'][_0xac4a('0x2e')]+'%'};return _0x5197c1;})});}_0x5a1855=_[_0xac4a('0x59')]({},_0x5a1855,_0x471cbb[_0xac4a('0xce')]);return _0x405ce7[_0xac4a('0xe3')](_0x5a1855);}})[_0xac4a('0x36')](function(_0x3a9f10){if(_0x3a9f10){_0x6e82e=_0x3a9f10['length'];if(!_0x471cbb[_0xac4a('0x52')][_0xac4a('0xcf')](_0xac4a('0xd4'))){_0x5a1855['limit']=qs[_0xac4a('0x24')](_0x471cbb['query']['limit']);_0x5a1855[_0xac4a('0x22')]=qs[_0xac4a('0x22')](_0x471cbb['query'][_0xac4a('0x22')]);}return _0x405ce7[_0xac4a('0xe3')](_0x5a1855);}})[_0xac4a('0x36')](function(_0x384050){if(_0x384050){return _0x384050?{'count':_0x6e82e,'rows':_0x384050}:null;}})[_0xac4a('0x36')](respondWithResult(_0x2ade25,null))['catch'](handleError(_0x2ade25,null));};exports[_0xac4a('0xe5')]=function(_0x215812,_0x41ccf0){var _0x324121={};var _0x1de629={};var _0x570843;var _0x2c999d;return db[_0xac4a('0x3b')][_0xac4a('0x95')]({'where':{'id':_0x215812[_0xac4a('0x4f')]['id']}})[_0xac4a('0x36')](handleEntityNotFound(_0x41ccf0,null))['then'](function(_0x499f8f){if(_0x499f8f){_0x570843=_0x499f8f;_0x1de629[_0xac4a('0x55')]=_[_0xac4a('0x51')](db['FaxInteraction']['rawAttributes']);_0x1de629[_0xac4a('0x52')]=_[_0xac4a('0x51')](_0x215812[_0xac4a('0x52')]);_0x1de629['filters']=_[_0xac4a('0x54')](_0x1de629['model'],_0x1de629['query']);_0x324121[_0xac4a('0x43')]=_['intersection'](_0x1de629[_0xac4a('0x55')],qs['fields'](_0x215812[_0xac4a('0x52')][_0xac4a('0x56')]));_0x324121[_0xac4a('0x43')]=_0x324121['attributes'][_0xac4a('0x57')]?_0x324121[_0xac4a('0x43')]:_0x1de629[_0xac4a('0x55')];_0x324121['order']=qs[_0xac4a('0xcc')](_0x215812[_0xac4a('0x52')][_0xac4a('0xcc')]);_0x324121[_0xac4a('0x41')]=qs['filters'](_[_0xac4a('0xcd')](_0x215812['query'],_0x1de629[_0xac4a('0x53')]));if(_0x215812['query']['filter']){_0x324121[_0xac4a('0x41')]=_['merge'](_0x324121['where'],{'$or':_[_0xac4a('0x30')](_0x324121[_0xac4a('0x43')],function(_0x5bb24f){var _0x379ad7={};_0x379ad7[_0x5bb24f]={'$like':'%'+_0x215812[_0xac4a('0x52')][_0xac4a('0x2e')]+'%'};return _0x379ad7;})});}_0x324121=_[_0xac4a('0x59')]({},_0x324121,_0x215812[_0xac4a('0xce')]);return _0x570843[_0xac4a('0xe5')](_0x324121);}})['then'](function(_0x541098){if(_0x541098){_0x2c999d=_0x541098[_0xac4a('0x57')];if(!_0x215812[_0xac4a('0x52')][_0xac4a('0xcf')]('nolimit')){_0x324121[_0xac4a('0x24')]=qs[_0xac4a('0x24')](_0x215812[_0xac4a('0x52')][_0xac4a('0x24')]);_0x324121[_0xac4a('0x22')]=qs[_0xac4a('0x22')](_0x215812[_0xac4a('0x52')]['offset']);}return _0x570843['getFaxInteractions'](_0x324121);}})['then'](function(_0x26ae42){if(_0x26ae42){return _0x26ae42?{'count':_0x2c999d,'rows':_0x26ae42}:null;}})[_0xac4a('0x36')](respondWithResult(_0x41ccf0,null))[_0xac4a('0x1e')](handleError(_0x41ccf0,null));};exports[_0xac4a('0xe6')]=function(_0x4b12c8,_0x357814){var _0x24d8b0={};var _0x2775e2={};var _0x481a63;var _0x41ae8f;return db[_0xac4a('0x3b')][_0xac4a('0x95')]({'where':{'id':_0x4b12c8[_0xac4a('0x4f')]['id']}})[_0xac4a('0x36')](handleEntityNotFound(_0x357814,null))[_0xac4a('0x36')](function(_0xa5416f){if(_0xa5416f){_0x481a63=_0xa5416f;_0x2775e2['model']=_[_0xac4a('0x51')](db[_0xac4a('0xe7')][_0xac4a('0x3c')]);_0x2775e2[_0xac4a('0x52')]=_[_0xac4a('0x51')](_0x4b12c8[_0xac4a('0x52')]);_0x2775e2[_0xac4a('0x53')]=_[_0xac4a('0x54')](_0x2775e2[_0xac4a('0x55')],_0x2775e2[_0xac4a('0x52')]);_0x24d8b0[_0xac4a('0x43')]=_[_0xac4a('0x54')](_0x2775e2[_0xac4a('0x55')],qs[_0xac4a('0x56')](_0x4b12c8[_0xac4a('0x52')][_0xac4a('0x56')]));_0x24d8b0['attributes']=_0x24d8b0[_0xac4a('0x43')]['length']?_0x24d8b0['attributes']:_0x2775e2[_0xac4a('0x55')];_0x24d8b0['order']=qs[_0xac4a('0xcc')](_0x4b12c8['query']['sort']);_0x24d8b0['where']=qs[_0xac4a('0x53')](_[_0xac4a('0xcd')](_0x4b12c8[_0xac4a('0x52')],_0x2775e2['filters']));if(_0x4b12c8[_0xac4a('0x52')][_0xac4a('0x2e')]){_0x24d8b0['where']=_[_0xac4a('0x59')](_0x24d8b0['where'],{'$or':_[_0xac4a('0x30')](_0x24d8b0[_0xac4a('0x43')],function(_0x532ba0){var _0x3fa8a8={};_0x3fa8a8[_0x532ba0]={'$like':'%'+_0x4b12c8['query'][_0xac4a('0x2e')]+'%'};return _0x3fa8a8;})});}_0x24d8b0=_[_0xac4a('0x59')]({},_0x24d8b0,_0x4b12c8[_0xac4a('0xce')]);return _0x481a63[_0xac4a('0xe6')](_0x24d8b0);}})[_0xac4a('0x36')](function(_0x509459){if(_0x509459){_0x41ae8f=_0x509459[_0xac4a('0x57')];if(!_0x4b12c8[_0xac4a('0x52')][_0xac4a('0xcf')](_0xac4a('0xd4'))){_0x24d8b0[_0xac4a('0x24')]=qs[_0xac4a('0x24')](_0x4b12c8[_0xac4a('0x52')][_0xac4a('0x24')]);_0x24d8b0['offset']=qs[_0xac4a('0x22')](_0x4b12c8[_0xac4a('0x52')][_0xac4a('0x22')]);}return _0x481a63['getWhatsappInteractions'](_0x24d8b0);}})[_0xac4a('0x36')](function(_0x326ab4){if(_0x326ab4){return _0x326ab4?{'count':_0x41ae8f,'rows':_0x326ab4}:null;}})[_0xac4a('0x36')](respondWithResult(_0x357814,null))['catch'](handleError(_0x357814,null));};exports[_0xac4a('0xe8')]=function(_0xc0771,_0x529c7c,_0x45e354){var _0xa674d;var _0x29b319;var _0x3a248d;var _0x3da3df=!_[_0xac4a('0x68')](_0xc0771[_0xac4a('0x4f')]['id'])?_0xc0771['params']['id']:!_['isNil'](_0xc0771['user']['id'])?_0xc0771[_0xac4a('0x2b')]['id']:null;return db[_0xac4a('0x3b')][_0xac4a('0x33')]({'where':{'id':_0x3da3df,'role':{'$or':['admin',_0xac4a('0x2b'),'agent']}},'attributes':['id',_0xac4a('0x34'),_0xac4a('0xe9'),'mobile',_0xac4a('0x29'),_0xac4a('0x63'),_0xac4a('0x9d')]})[_0xac4a('0x36')](function(_0x4facb){if(_0x4facb){if(_0x4facb[_0xac4a('0x29')]===_0xac4a('0x2c')){_0xa674d=_0x4facb;if(_0xc0771[_0xac4a('0x5e')]['interface']){_0x3a248d=util[_0xac4a('0xaa')]('LOCAL/%s@from-sip/n',_0xa674d[_0xc0771['body'][_0xac4a('0x9f')]]);}else if(_0xc0771['body']['intrf']){_0x3a248d=util[_0xac4a('0xaa')](_0xac4a('0xea'),_0xc0771['body'][_0xac4a('0xeb')]);}else{_0x3a248d=util[_0xac4a('0xaa')]('SIP/%s',_0xa674d[_0xac4a('0x34')]);}socket['to'](util[_0xac4a('0xaa')](_0xac4a('0xec'),_0xa674d['name']))[_0xac4a('0xa8')]('user:forcelogout',{'user':{'id':_0xa674d['id'],'name':_0xa674d[_0xac4a('0x34')]},'ip':_0xc0771['headers'][_0xac4a('0xed')]||_0xc0771['connection'][_0xac4a('0xee')]||_0xc0771[_0xac4a('0xef')][_0xac4a('0xee')]||_0xc0771[_0xac4a('0xf0')][_0xac4a('0xef')][_0xac4a('0xee')]});return db[_0xac4a('0xb2')]['destroy']({'where':{'membername':_0xa674d[_0xac4a('0x34')]},'individualHooks':!![]});}}else{throw new db[(_0xac4a('0x8c'))]['ValidationError'](_0xac4a('0xf1'));}})[_0xac4a('0x36')](function(){if(_0xa674d){return _0xa674d[_0xac4a('0xf2')]({'raw':!![]});}})['then'](function(_0x23bd18){if(_0xa674d){var _0x575fff=[];if(_0x23bd18){_0x29b319=_0x23bd18;if(_0x29b319[_0xac4a('0x57')]){for(var _0xb02b7c=0x0;_0xb02b7c<_0x29b319['length'];_0xb02b7c++){_0x575fff['push']({'membername':_0xa674d['name'],'UserId':_0xa674d['id'],'queue_name':_0x29b319[_0xb02b7c][_0xac4a('0x34')],'VoiceQueueId':_0x29b319[_0xb02b7c]['id'],'interface':_0x3a248d,'paused':_0xa674d[_0xac4a('0x9d')]||![],'penalty':_0x29b319[_0xb02b7c][_0xac4a('0xf3')]||0x0});}return BPromise[_0xac4a('0xab')](_0x575fff,function(_0x1f9022){return db[_0xac4a('0xb2')][_0xac4a('0xac')](_0x1f9022);});}}}})['then'](function(){if(_0xa674d){return db[_0xac4a('0xf4')][_0xac4a('0x45')]({'where':{'membername':_0xa674d[_0xac4a('0x34')],'exitAt':null}});}})[_0xac4a('0x36')](function(_0x38d7ac){if(_0xa674d){var _0x444a18=[];_0x38d7ac[_0xac4a('0xf5')](function(_0x18932e){_0x444a18[_0xac4a('0x44')](_0x18932e[_0xac4a('0x5d')]({'exitAt':moment()[_0xac4a('0xaa')](_0xac4a('0xf6'))}));});return BPromise[_0xac4a('0x5c')](_0x444a18);}})[_0xac4a('0x36')](function(){if(_0xa674d){var _0x45d2d1=[];var _0x93fe5d=[];var _0x2f83fd=utils[_0xac4a('0xf7')]();var _0x260170={'membername':_0xa674d['name'],'interface':_0x3a248d,'enterAt':moment()[_0xac4a('0xaa')](_0xac4a('0xf6')),'role':_0xa674d[_0xac4a('0x29')],'internal':_0xa674d[_0xac4a('0x63')]};_0x2f83fd[_0xac4a('0xf5')](function(_0x124a01){_0x45d2d1[_0xac4a('0x44')](_[_0xac4a('0x59')]({'channel':_0x124a01,'type':_0xac4a('0xf8'),'data1':_0xc0771[_0xac4a('0x5e')][_0xac4a('0xf9')],'data2':_0x3a248d},_0x260170));if(_0xa674d[_0xac4a('0x9d')]){_0x93fe5d[_0xac4a('0x44')](_[_0xac4a('0x59')]({'channel':_0x124a01,'type':_0xac4a('0xfa'),'data1':_0xac4a('0xfb')},_0x260170));}});return db[_0xac4a('0xf4')]['bulkCreate'](_0x45d2d1['concat'](_0x93fe5d),{'individualHooks':!![]});}})[_0xac4a('0x36')](function(){if(_0xa674d){return _0xa674d[_0xac4a('0x5d')]({'online':!![],'lastLoginAt':moment()[_0xac4a('0xaa')](_0xac4a('0xf6')),'voicePause':_0xa674d[_0xac4a('0x9d')]||![],'mailPause':_0xa674d['loginInPause']||![],'chatPause':_0xa674d['loginInPause']||![],'faxPause':_0xa674d[_0xac4a('0x9d')]||![],'smsPause':_0xa674d[_0xac4a('0x9d')]||![],'openchannelPause':_0xa674d[_0xac4a('0x9d')]||![],'whatsappPause':_0xa674d['loginInPause']||![],'pauseType':_0xa674d[_0xac4a('0x9d')]?'LOGININPAUSE':null,'interface':_0x3a248d,'lastPauseAt':moment()[_0xac4a('0xaa')](_0xac4a('0xf6'))});}})[_0xac4a('0x36')](function(_0xacdad9){if(_0xc0771[_0xac4a('0xfc')]){return _0x45e354();}else{return BPromise['resolve'](_0xacdad9)[_0xac4a('0x36')](respondWithResult(_0x529c7c,null));}})[_0xac4a('0x1e')](handleError(_0x529c7c,null));};exports[_0xac4a('0xfd')]=function(_0x5b8753,_0x3e9e25){var _0x942c1b;return db[_0xac4a('0x3b')][_0xac4a('0x33')]({'where':{'id':_0x5b8753[_0xac4a('0x4f')]['id'],'role':_0xac4a('0x2c')},'attributes':['id','name',_0xac4a('0x29')]})[_0xac4a('0x36')](handleEntityNotFound(_0x3e9e25,null))['then'](function(_0x9cc601){if(_0x9cc601){_0x942c1b=_0x9cc601;return db[_0xac4a('0xb2')][_0xac4a('0x35')]({'where':{'membername':_0x942c1b[_0xac4a('0x34')]},'individualHooks':!![]});}})['then'](function(){return db[_0xac4a('0xf4')]['findAll']({'where':{'membername':_0x942c1b[_0xac4a('0x34')],'exitAt':null}});})[_0xac4a('0x36')](function(_0x33b4c1){var _0x5f384b=[];_0x33b4c1[_0xac4a('0xf5')](function(_0xbf640a){_0x5f384b[_0xac4a('0x44')](_0xbf640a[_0xac4a('0x5d')]({'exitAt':moment()[_0xac4a('0xaa')]('YYYY-MM-DD\x20HH:mm:ss')}));});return BPromise['all'](_0x5f384b);})[_0xac4a('0x36')](function(){return _0x942c1b[_0xac4a('0x5d')]({'online':![],'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![],'whatsappPause':![],'interface':null});})[_0xac4a('0x36')](respondWithResult(_0x3e9e25,null))[_0xac4a('0x1e')](handleError(_0x3e9e25,null));};exports['pause']=function(_0x217df7,_0x25431f){var _0x5d2a47;return db[_0xac4a('0xb2')][_0xac4a('0x5d')]({'paused':0x1},{'where':{'UserId':_0x217df7[_0xac4a('0x4f')]['id']},'individualHooks':!![]})[_0xac4a('0x36')](function(){return db[_0xac4a('0x3b')][_0xac4a('0x33')]({'where':{'id':_0x217df7['params']['id'],'role':_0xac4a('0x2c')},'attributes':['id',_0xac4a('0x34'),_0xac4a('0x29'),_0xac4a('0x63'),_0xac4a('0x9f')]});})[_0xac4a('0x36')](handleEntityNotFound(_0x25431f,null))[_0xac4a('0x36')](function(_0x485206){if(_0x485206){_0x5d2a47=_0x485206;return respondWithRpcPromise(_0xac4a('0xfe'),'pause',{'id':_0x5d2a47['id'],'name':_0x5d2a47[_0xac4a('0x34')],'pause':!![]});}})[_0xac4a('0x36')](function(){if(_0x5d2a47){return db[_0xac4a('0xf4')][_0xac4a('0x45')]({'where':{'membername':_0x5d2a47[_0xac4a('0x34')],'type':_0xac4a('0xfa'),'exitAt':null}});}})['then'](function(_0x1d8901){if(_0x1d8901[_0xac4a('0x57')]){var _0x270cda=moment()['format'](_0xac4a('0xf6'));for(var _0x4a03f6=0x0,_0x3447fe=_0x1d8901[_0xac4a('0x57')];_0x4a03f6<_0x3447fe;_0x4a03f6++){_0x1d8901[_0x4a03f6][_0xac4a('0xff')]({'exitAt':_0x270cda});}}})[_0xac4a('0x36')](function(){var _0x156682=[];var _0x39ddce=utils[_0xac4a('0xf7')]();_0x39ddce[_0xac4a('0xf5')](function(_0xef624c){_0x156682[_0xac4a('0x44')]({'channel':_0xef624c,'membername':_0x5d2a47[_0xac4a('0x34')],'interface':_[_0xac4a('0x68')](_0x5d2a47[_0xac4a('0x9f')])?util[_0xac4a('0xaa')](_0xac4a('0xea'),_0x5d2a47['name']):_0x5d2a47[_0xac4a('0x9f')],'type':'PAUSE','enterAt':moment()['format'](_0xac4a('0xf6')),'data1':_0x217df7[_0xac4a('0x5e')]['type']||_0xac4a('0x100'),'role':_0x5d2a47[_0xac4a('0x29')],'internal':_0x5d2a47[_0xac4a('0x63')]});});return db[_0xac4a('0xf4')][_0xac4a('0x83')](_0x156682,{'individualHooks':!![]});})[_0xac4a('0x36')](function(){return _0x5d2a47[_0xac4a('0x5d')]({'voicePause':!![],'mailPause':!![],'chatPause':!![],'faxPause':!![],'smsPause':!![],'whatsappPause':!![],'openchannelPause':!![],'pauseType':_0x217df7[_0xac4a('0x5e')]['type']||'DEFAULT\x20PAUSE','lastPauseAt':moment()['format'](_0xac4a('0xf6'))});})['then'](respondWithResult(_0x25431f,null))['catch'](handleError(_0x25431f,null));};exports[_0xac4a('0x101')]=function(_0x4bc8cd,_0x459833){var _0x2f6d72;return db['User'][_0xac4a('0x33')]({'where':{'id':_0x4bc8cd[_0xac4a('0x4f')]['id']},'attributes':['id',_0xac4a('0x34'),_0xac4a('0x29'),_0xac4a('0x9e'),_0xac4a('0x102'),'chatPause',_0xac4a('0x103'),_0xac4a('0x104'),_0xac4a('0x105'),_0xac4a('0x106'),'pauseType',_0xac4a('0x107')]})[_0xac4a('0x36')](handleEntityNotFound(_0x459833,null))['then'](function(_0xc3ab07){if(_0xc3ab07){_0x2f6d72=_0xc3ab07;if(_0x4bc8cd[_0xac4a('0x5e')][_0xac4a('0x9b')]&&!utils[_0xac4a('0xa0')](_0x4bc8cd[_0xac4a('0x5e')][_0xac4a('0x9b')])){throw new db[(_0xac4a('0x8c'))][(_0xac4a('0x8d'))](_0xac4a('0xa1'));}switch(_0x4bc8cd[_0xac4a('0x5e')]['channel']){case _0xac4a('0xb1'):return respondWithRpcPromise('QueuePause',_0xac4a('0x101'),{'id':_0x2f6d72['id'],'name':_0x2f6d72[_0xac4a('0x34')],'pause':![]})[_0xac4a('0x36')](function(){return db['UserVoiceQueueRt']['update']({'paused':0x0},{'where':{'UserId':_0x2f6d72['id']},'individualHooks':!![]});})[_0xac4a('0x36')](function(){return db[_0xac4a('0xf4')][_0xac4a('0x33')]({'where':{'channel':_0x4bc8cd[_0xac4a('0x5e')][_0xac4a('0x9b')],'membername':_0x2f6d72[_0xac4a('0x34')],'type':'PAUSE','exitAt':null}});})[_0xac4a('0x36')](function(_0x8acfff){if(_0x8acfff){return _0x8acfff[_0xac4a('0x5d')]({'exitAt':moment()[_0xac4a('0xaa')](_0xac4a('0xf6')),'data2':_0xac4a('0x108')},{'individualHooks':!![]});}return null;})[_0xac4a('0x36')](function(){return _0x2f6d72[_0xac4a('0x5d')]({'voicePause':![]});});case'mail':case _0xac4a('0x49'):case _0xac4a('0x4c'):case _0xac4a('0x4b'):case _0xac4a('0x5b'):case _0xac4a('0x5a'):return db[_0xac4a('0xf4')][_0xac4a('0x33')]({'where':{'channel':_0x4bc8cd['body'][_0xac4a('0x9b')],'membername':_0x2f6d72[_0xac4a('0x34')],'type':_0xac4a('0xfa'),'exitAt':null}})['then'](function(_0x1d1c30){if(_0x1d1c30){return _0x1d1c30['update']({'exitAt':moment()[_0xac4a('0xaa')](_0xac4a('0xf6')),'data2':'manual'},{'individualHooks':!![]});}return null;})[_0xac4a('0x36')](function(){var _0x2c1ac7={};_[_0xac4a('0x26')](_0x2c1ac7,util[_0xac4a('0xaa')](_0xac4a('0x109'),_0x4bc8cd['body'][_0xac4a('0x9b')],_0xac4a('0x10a')),![]);return _0x2f6d72['update'](_0x2c1ac7);});default:return respondWithRpcPromise('QueuePause',_0xac4a('0x101'),{'id':_0x2f6d72['id'],'name':_0x2f6d72[_0xac4a('0x34')],'pause':![]})[_0xac4a('0x36')](function(){return db[_0xac4a('0xb2')][_0xac4a('0x5d')]({'paused':0x0},{'where':{'UserId':_0x2f6d72['id']}});})['then'](function(){return db['MemberReport'][_0xac4a('0x45')]({'where':{'membername':_0x2f6d72[_0xac4a('0x34')],'type':_0xac4a('0xfa'),'exitAt':null}});})[_0xac4a('0x36')](function(_0x4449cf){var _0x24d41f=[];_0x4449cf[_0xac4a('0xf5')](function(_0x4df0ca){_0x24d41f[_0xac4a('0x44')](_0x4df0ca[_0xac4a('0x5d')]({'exitAt':moment()['format'](_0xac4a('0xf6')),'data2':_0xac4a('0x108')}));});return BPromise[_0xac4a('0x5c')](_0x24d41f);})[_0xac4a('0x36')](function(){return _0x2f6d72['update']({'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'whatsappPause':![],'openchannelPause':![]});});}}})[_0xac4a('0x36')](respondWithResult(_0x459833,null))[_0xac4a('0x1e')](handleError(_0x459833,null));};exports['getTeams']=function(_0x14fe4c,_0xb85972){var _0xbbd484={};var _0xe7077={};var _0x57c0ac;var _0x38d38a;return db[_0xac4a('0x3b')][_0xac4a('0x95')]({'where':{'id':_0x14fe4c['params']['id']}})['then'](handleEntityNotFound(_0xb85972,null))['then'](function(_0x40643e){if(_0x40643e){_0x57c0ac=_0x40643e;_0xe7077[_0xac4a('0x55')]=_['keys'](db[_0xac4a('0x10b')][_0xac4a('0x3c')]);_0xe7077[_0xac4a('0x52')]=_['keys'](_0x14fe4c[_0xac4a('0x52')]);_0xe7077[_0xac4a('0x53')]=_[_0xac4a('0x54')](_0xe7077[_0xac4a('0x55')],_0xe7077[_0xac4a('0x52')]);_0xbbd484[_0xac4a('0x43')]=_[_0xac4a('0x54')](_0xe7077['model'],qs[_0xac4a('0x56')](_0x14fe4c[_0xac4a('0x52')][_0xac4a('0x56')]));_0xbbd484[_0xac4a('0x43')]=_0xbbd484[_0xac4a('0x43')][_0xac4a('0x57')]?_0xbbd484[_0xac4a('0x43')]:_0xe7077[_0xac4a('0x55')];_0xbbd484[_0xac4a('0xcb')]=qs['sort'](_0x14fe4c[_0xac4a('0x52')][_0xac4a('0xcc')]);_0xbbd484[_0xac4a('0x41')]=qs[_0xac4a('0x53')](_[_0xac4a('0xcd')](_0x14fe4c[_0xac4a('0x52')],_0xe7077['filters']));if(_0x14fe4c[_0xac4a('0x52')][_0xac4a('0x2e')]){_0xbbd484[_0xac4a('0x41')]=_[_0xac4a('0x59')](_0xbbd484[_0xac4a('0x41')],{'$or':_[_0xac4a('0x30')](_0xbbd484['attributes'],function(_0x386e10){var _0x478c51={};_0x478c51[_0x386e10]={'$like':'%'+_0x14fe4c[_0xac4a('0x52')]['filter']+'%'};return _0x478c51;})});}_0xbbd484=_['merge']({},_0xbbd484,_0x14fe4c[_0xac4a('0xce')]);return _0x57c0ac[_0xac4a('0x10c')](_0xbbd484);}})[_0xac4a('0x36')](function(_0x53b308){if(_0x53b308){_0x38d38a=_0x53b308[_0xac4a('0x57')];if(!_0x14fe4c[_0xac4a('0x52')][_0xac4a('0xcf')](_0xac4a('0xd4'))){_0xbbd484[_0xac4a('0x24')]=qs['limit'](_0x14fe4c[_0xac4a('0x52')][_0xac4a('0x24')]);_0xbbd484[_0xac4a('0x22')]=qs[_0xac4a('0x22')](_0x14fe4c[_0xac4a('0x52')][_0xac4a('0x22')]);}return _0x57c0ac[_0xac4a('0x10c')](_0xbbd484);}})['then'](function(_0x54dc21){if(_0x54dc21){return _0x54dc21?{'count':_0x38d38a,'rows':_0x54dc21}:null;}})['then'](respondWithResult(_0xb85972,null))[_0xac4a('0x1e')](handleError(_0xb85972,null));};exports[_0xac4a('0x10d')]=function(_0x395b96,_0x45de07){return db[_0xac4a('0x3b')][_0xac4a('0x33')]({'where':{'id':_0x395b96['params']['id']}})[_0xac4a('0x36')](handleEntityNotFound(_0x45de07,null))[_0xac4a('0x36')](function(_0x3901f0){if(_0x3901f0){var _0x464750=_0x3901f0[_0xac4a('0x28')]({'plain':!![]});return _0x3901f0['addTeams'](_0x395b96['body'][_0xac4a('0x61')],_[_0xac4a('0x62')](_0x395b96[_0xac4a('0x5e')],[_0xac4a('0x61'),'id'])||{})['then'](function(){for(var _0x5b4f5b=0x0;_0x5b4f5b<_0x395b96['body'][_0xac4a('0x61')][_0xac4a('0x57')];_0x5b4f5b++){var _0x5ab6ab=[];var _0x1356f2={};db['Team'][_0xac4a('0x95')]({'where':{'id':_0x395b96['body'][_0xac4a('0x61')][_0x5b4f5b]}})[_0xac4a('0x36')](function(_0xd90c8e){_0x1356f2=_0xd90c8e[_0xac4a('0x4a')];_0x5ab6ab[_0xac4a('0x44')](_0xd90c8e[_0xac4a('0xf2')]()[_0xac4a('0x36')](function(_0x35c707){for(var _0x236c8f=0x0;_0x236c8f<_0x35c707[_0xac4a('0x57')];_0x236c8f++){_0x35c707[_0x236c8f][_0xac4a('0x10e')](_0xac4a('0x9b'),_0xac4a('0x10f'));}return _0x35c707;}));_0x5ab6ab[_0xac4a('0x44')](_0xd90c8e['getChatQueues']()[_0xac4a('0x36')](function(_0x33ff7b){for(var _0x4c847a=0x0;_0x4c847a<_0x33ff7b[_0xac4a('0x57')];_0x4c847a++){_0x33ff7b[_0x4c847a][_0xac4a('0x10e')](_0xac4a('0x9b'),_0xac4a('0x110'));}return _0x33ff7b;}));_0x5ab6ab['push'](_0xd90c8e[_0xac4a('0x111')]()[_0xac4a('0x36')](function(_0x21e793){for(var _0x30eade=0x0;_0x30eade<_0x21e793[_0xac4a('0x57')];_0x30eade++){_0x21e793[_0x30eade][_0xac4a('0x10e')](_0xac4a('0x9b'),_0xac4a('0x112'));}return _0x21e793;}));_0x5ab6ab[_0xac4a('0x44')](_0xd90c8e[_0xac4a('0x113')]()[_0xac4a('0x36')](function(_0x2ed2cd){for(var _0x13e051=0x0;_0x13e051<_0x2ed2cd[_0xac4a('0x57')];_0x13e051++){_0x2ed2cd[_0x13e051][_0xac4a('0x10e')](_0xac4a('0x9b'),_0xac4a('0x114'));}return _0x2ed2cd;}));_0x5ab6ab[_0xac4a('0x44')](_0xd90c8e['getWhatsappQueues']()[_0xac4a('0x36')](function(_0x39b520){for(var _0x35d205=0x0;_0x35d205<_0x39b520[_0xac4a('0x57')];_0x35d205++){_0x39b520[_0x35d205][_0xac4a('0x10e')]('channel',_0xac4a('0x115'));}return _0x39b520;}));_0x5ab6ab[_0xac4a('0x44')](_0xd90c8e['getFaxQueues']()[_0xac4a('0x36')](function(_0x360b73){for(var _0x4e324c=0x0;_0x4e324c<_0x360b73[_0xac4a('0x57')];_0x4e324c++){_0x360b73[_0x4e324c][_0xac4a('0x10e')](_0xac4a('0x9b'),'Fax');}return _0x360b73;}));_0x5ab6ab['push'](_0xd90c8e[_0xac4a('0x116')]()[_0xac4a('0x36')](function(_0x4ab883){for(var _0x577904=0x0;_0x577904<_0x4ab883[_0xac4a('0x57')];_0x577904++){_0x4ab883[_0x577904][_0xac4a('0x10e')](_0xac4a('0x9b'),'Openchannel');}return _0x4ab883;}));return BPromise[_0xac4a('0x5c')](_0x5ab6ab);})[_0xac4a('0x36')](function(_0x233df7){var _0x24818c=_[_0xac4a('0x117')](_0x233df7);_0x5ab6ab=[];return db[_0xac4a('0x6a')]['transaction'](function(_0x3c37d5){for(var _0x19b891=0x0;_0x19b891<_0x24818c['length'];_0x19b891++){_0x5ab6ab[_0xac4a('0x44')](_0x24818c[_0x19b891][_0xac4a('0x118')](_0x464750['id']),{'transaction':_0x3c37d5});}return BPromise[_0xac4a('0x5c')](_0x5ab6ab)[_0xac4a('0x36')](function(){if(_0x464750[_0xac4a('0x9c')]){return BPromise[_0xac4a('0xab')](_['filter'](_0x24818c,function(_0x1113d7){return _0x1113d7[_0xac4a('0x119')]('channel')===_0xac4a('0x10f');}),function(_0x3bdb3a){return db[_0xac4a('0xb2')][_0xac4a('0xac')]({'membername':_0x464750[_0xac4a('0x34')],'UserId':_0x464750['id'],'queue_name':_0x3bdb3a['name'],'VoiceQueueId':_0x3bdb3a['id'],'interface':_['isNil'](_0x464750['interface'])?util[_0xac4a('0xaa')](_0xac4a('0xea'),_0x464750[_0xac4a('0x34')]):_0x464750[_0xac4a('0x9f')],'paused':_0x464750[_0xac4a('0x9e')]||![],'penalty':_0x464750[_0xac4a('0xa6')]},{'transaction':_0x3c37d5});});}else{return;}})['then'](function(){for(var _0x3f1dd9=0x0;_0x3f1dd9<_0x24818c[_0xac4a('0x57')];_0x3f1dd9++){var _0x202941=_0x24818c[_0x3f1dd9]['getDataValue']('channel');var _0x155ad2=_0x202941+_0xac4a('0xaf');socket[_0xac4a('0xa8')](_0xac4a('0x2b')+_0x202941+_0xac4a('0x11a'),{'UserId':_0x464750['id'],['queueField']:_0x24818c[_0x3f1dd9]['id']});}});});})[_0xac4a('0x36')](function(){db[_0xac4a('0x11b')]['findOne']({'where':{'teamId':_0x1356f2['id']}})[_0xac4a('0x36')](function(_0x5acc3b){if(_0x5acc3b){db[_0xac4a('0x11c')][_0xac4a('0x7f')]({'UserId':_0x395b96[_0xac4a('0x4f')]['id'],'VoicePrefixId':_0x5acc3b['VoicePrefixId']});}});});}});}})['then'](respondWithStatusCode(_0x45de07,null))[_0xac4a('0x1e')](handleError(_0x45de07,null));};exports['removeTeams']=function(_0x284cba,_0x3fb376){return db[_0xac4a('0x3b')][_0xac4a('0x95')]({'where':{'id':_0x284cba[_0xac4a('0x4f')]['id']}})[_0xac4a('0x36')](handleEntityNotFound(_0x3fb376,null))[_0xac4a('0x36')](function(_0x1ceb21){if(_0x1ceb21){var _0x1b2143=_0x1ceb21[_0xac4a('0x28')]({'plain':!![]});var _0x2f5b94=_0x284cba[_0xac4a('0x52')]['ids'];return _0x1ceb21['removeTeams'](_0x2f5b94)['then'](function(){for(var _0x26ea09=0x0;_0x26ea09<_0x2f5b94['length'];_0x26ea09++){var _0x23665a=[];var _0x29b8ce={};db[_0xac4a('0x10b')][_0xac4a('0x95')]({'where':{'id':_0x2f5b94[_0x26ea09]}})['then'](function(_0x4e10a8){_0x29b8ce=_0x4e10a8[_0xac4a('0x4a')];_0x23665a['push'](_0x4e10a8['getVoiceQueues']()[_0xac4a('0x36')](function(_0x2d41a7){for(var _0x3a1693=0x0;_0x3a1693<_0x2d41a7[_0xac4a('0x57')];_0x3a1693++){_0x2d41a7[_0x3a1693][_0xac4a('0x10e')](_0xac4a('0x9b'),_0xac4a('0x10f'));}return _0x2d41a7;}));_0x23665a['push'](_0x4e10a8['getChatQueues']()[_0xac4a('0x36')](function(_0x56ab23){for(var _0x29f19b=0x0;_0x29f19b<_0x56ab23[_0xac4a('0x57')];_0x29f19b++){_0x56ab23[_0x29f19b][_0xac4a('0x10e')](_0xac4a('0x9b'),_0xac4a('0x110'));}return _0x56ab23;}));_0x23665a[_0xac4a('0x44')](_0x4e10a8['getMailQueues']()[_0xac4a('0x36')](function(_0x21d0b5){for(var _0x414d20=0x0;_0x414d20<_0x21d0b5[_0xac4a('0x57')];_0x414d20++){_0x21d0b5[_0x414d20][_0xac4a('0x10e')](_0xac4a('0x9b'),_0xac4a('0x112'));}return _0x21d0b5;}));_0x23665a[_0xac4a('0x44')](_0x4e10a8[_0xac4a('0x113')]()[_0xac4a('0x36')](function(_0x599223){for(var _0x17657a=0x0;_0x17657a<_0x599223[_0xac4a('0x57')];_0x17657a++){_0x599223[_0x17657a][_0xac4a('0x10e')](_0xac4a('0x9b'),'Sms');}return _0x599223;}));_0x23665a[_0xac4a('0x44')](_0x4e10a8[_0xac4a('0x11d')]()[_0xac4a('0x36')](function(_0x1d1bf4){for(var _0x4caa1b=0x0;_0x4caa1b<_0x1d1bf4[_0xac4a('0x57')];_0x4caa1b++){_0x1d1bf4[_0x4caa1b][_0xac4a('0x10e')]('channel',_0xac4a('0x115'));}return _0x1d1bf4;}));_0x23665a['push'](_0x4e10a8[_0xac4a('0x11e')]()[_0xac4a('0x36')](function(_0x59e742){for(var _0x477fef=0x0;_0x477fef<_0x59e742[_0xac4a('0x57')];_0x477fef++){_0x59e742[_0x477fef][_0xac4a('0x10e')](_0xac4a('0x9b'),_0xac4a('0x11f'));}return _0x59e742;}));_0x23665a[_0xac4a('0x44')](_0x4e10a8['getOpenchannelQueues']()['then'](function(_0x3fcc44){for(var _0x5d5f66=0x0;_0x5d5f66<_0x3fcc44[_0xac4a('0x57')];_0x5d5f66++){_0x3fcc44[_0x5d5f66][_0xac4a('0x10e')](_0xac4a('0x9b'),_0xac4a('0x120'));}return _0x3fcc44;}));return BPromise['all'](_0x23665a);})['then'](function(_0x227c45){var _0x4b640b=_[_0xac4a('0x117')](_0x227c45);_0x23665a=[];return db[_0xac4a('0x6a')][_0xac4a('0x121')](function(_0x5795f2){for(var _0x15d0e5=0x0;_0x15d0e5<_0x4b640b[_0xac4a('0x57')];_0x15d0e5++){_0x23665a[_0xac4a('0x44')](_0x4b640b[_0x15d0e5]['removeAgent'](_0x1b2143['id']),{'transaction':_0x5795f2});}return BPromise[_0xac4a('0x5c')](_0x23665a)[_0xac4a('0x36')](function(){if(_0x1b2143[_0xac4a('0x9c')]){return BPromise[_0xac4a('0xab')](_[_0xac4a('0x2e')](_0x4b640b,function(_0x23b0f7){return _0x23b0f7[_0xac4a('0x119')]('channel')==='Voice';}),function(_0x43b1b7){return db[_0xac4a('0xb2')][_0xac4a('0x35')]({'where':{'VoiceQueueId':_0x43b1b7['id'],'UserId':_0x1b2143['id']},'transaction':_0x5795f2});});}else{return;}})[_0xac4a('0x36')](function(){db['TeamVoicePrefix']['findOne']({'where':{'teamId':_0x29b8ce['id']}})['then'](function(_0x53a31e){if(_0x53a31e){return db[_0xac4a('0x11c')][_0xac4a('0x35')]({'where':{'UserId':_0x1b2143['id'],'VoicePrefixId':_0x53a31e[_0xac4a('0x4a')][_0xac4a('0x122')]}});}});})['then'](function(){for(var _0x5bbe29=0x0;_0x5bbe29<_0x4b640b[_0xac4a('0x57')];_0x5bbe29++){var _0x23f369=_0x4b640b[_0x5bbe29][_0xac4a('0x119')]('channel');var _0x294895=_0x23f369+_0xac4a('0xaf');socket['emit'](_0xac4a('0x2b')+_0x23f369+'Queue:remove',{'UserId':_0x1b2143['id'],['queueField']:_0x4b640b[_0x5bbe29]['id']});}});});});}});}})[_0xac4a('0x36')](respondWithStatusCode(_0x3fb376,null))[_0xac4a('0x1e')](handleError(_0x3fb376,null));};exports[_0xac4a('0x123')]=function(_0x1eae11,_0x36a414){var _0x25a33e={};var _0x25dc7c={};var _0x148e35;var _0x2ddecc;return db[_0xac4a('0x3b')]['findOne']({'where':{'id':_0x1eae11[_0xac4a('0x4f')]['id']}})[_0xac4a('0x36')](handleEntityNotFound(_0x36a414,null))['then'](function(_0x534a2e){if(_0x534a2e){_0x148e35=_0x534a2e;_0x25dc7c[_0xac4a('0x55')]=_[_0xac4a('0x51')](db[_0xac4a('0x124')][_0xac4a('0x3c')]);_0x25dc7c[_0xac4a('0x52')]=_[_0xac4a('0x51')](_0x1eae11[_0xac4a('0x52')]);_0x25dc7c[_0xac4a('0x53')]=_['intersection'](_0x25dc7c[_0xac4a('0x55')],_0x25dc7c[_0xac4a('0x52')]);_0x25a33e[_0xac4a('0x43')]=_[_0xac4a('0x54')](_0x25dc7c[_0xac4a('0x55')],qs[_0xac4a('0x56')](_0x1eae11[_0xac4a('0x52')]['fields']));_0x25a33e[_0xac4a('0x43')]=_0x25a33e[_0xac4a('0x43')]['length']?_0x25a33e[_0xac4a('0x43')]:_0x25dc7c[_0xac4a('0x55')];_0x25a33e[_0xac4a('0xcb')]=qs['sort'](_0x1eae11[_0xac4a('0x52')][_0xac4a('0xcc')]);_0x25a33e[_0xac4a('0x41')]=qs[_0xac4a('0x53')](_[_0xac4a('0xcd')](_0x1eae11[_0xac4a('0x52')],_0x25dc7c[_0xac4a('0x53')]));if(_0x1eae11[_0xac4a('0x52')][_0xac4a('0x2e')]){_0x25a33e[_0xac4a('0x41')]=_[_0xac4a('0x59')](_0x25a33e[_0xac4a('0x41')],{'$or':_[_0xac4a('0x30')](_0x25a33e[_0xac4a('0x43')],function(_0x4b515f){var _0x2fe220={};_0x2fe220[_0x4b515f]={'$like':'%'+_0x1eae11['query'][_0xac4a('0x2e')]+'%'};return _0x2fe220;})});}_0x25a33e=_[_0xac4a('0x59')]({},_0x25a33e,_0x1eae11[_0xac4a('0xce')]);return _0x148e35['getLists'](_0x25a33e);}})[_0xac4a('0x36')](function(_0xfa96a6){if(_0xfa96a6){_0x2ddecc=_0xfa96a6['length'];if(!_0x1eae11[_0xac4a('0x52')][_0xac4a('0xcf')](_0xac4a('0xd4'))){_0x25a33e['limit']=qs['limit'](_0x1eae11['query'][_0xac4a('0x24')]);_0x25a33e[_0xac4a('0x22')]=qs['offset'](_0x1eae11[_0xac4a('0x52')]['offset']);}return _0x148e35[_0xac4a('0x123')](_0x25a33e);}})[_0xac4a('0x36')](function(_0x3ea923){if(_0x3ea923){return _0x3ea923?{'count':_0x2ddecc,'rows':_0x3ea923}:null;}})[_0xac4a('0x36')](respondWithResult(_0x36a414,null))[_0xac4a('0x1e')](handleError(_0x36a414,null));};exports[_0xac4a('0x125')]=function(_0x473b6c,_0x3228dc){var _0x203c8b={};var _0x3a01a1={};var _0x50dcdd;var _0x330437;return db[_0xac4a('0x3b')][_0xac4a('0x95')]({'where':{'id':_0x473b6c[_0xac4a('0x4f')]['id']}})[_0xac4a('0x36')](handleEntityNotFound(_0x3228dc,null))[_0xac4a('0x36')](function(_0x56b20e){if(_0x56b20e){_0x50dcdd=_0x56b20e;_0x3a01a1['model']=_['keys'](db[_0xac4a('0x3b')][_0xac4a('0x3c')]);_0x3a01a1[_0xac4a('0x52')]=_[_0xac4a('0x51')](_0x473b6c[_0xac4a('0x52')]);_0x3a01a1[_0xac4a('0x53')]=_[_0xac4a('0x54')](_0x3a01a1[_0xac4a('0x55')],_0x3a01a1['query']);_0x203c8b[_0xac4a('0x43')]=_[_0xac4a('0x54')](_0x3a01a1[_0xac4a('0x55')],qs[_0xac4a('0x56')](_0x473b6c[_0xac4a('0x52')][_0xac4a('0x56')]));_0x203c8b[_0xac4a('0x43')]=_0x203c8b[_0xac4a('0x43')][_0xac4a('0x57')]?_0x203c8b[_0xac4a('0x43')]:_0x3a01a1[_0xac4a('0x55')];_0x203c8b[_0xac4a('0xcb')]=qs[_0xac4a('0xcc')](_0x473b6c[_0xac4a('0x52')]['sort']);_0x203c8b[_0xac4a('0x41')]=qs[_0xac4a('0x53')](_[_0xac4a('0xcd')](_0x473b6c[_0xac4a('0x52')],_0x3a01a1[_0xac4a('0x53')]));if(_0x473b6c[_0xac4a('0x52')][_0xac4a('0x2e')]){_0x203c8b[_0xac4a('0x41')]=_[_0xac4a('0x59')](_0x203c8b['where'],{'$or':_[_0xac4a('0x30')](_0x203c8b[_0xac4a('0x43')],function(_0x1aeb19){var _0x45bb74={};_0x45bb74[_0x1aeb19]={'$like':'%'+_0x473b6c[_0xac4a('0x52')]['filter']+'%'};return _0x45bb74;})});}_0x203c8b['model']=db[_0xac4a('0x3b')];_0x203c8b['as']=_0xac4a('0x87');_0x203c8b=_['merge']({},_0x203c8b,_0x473b6c[_0xac4a('0xce')]);return _0x50dcdd[_0xac4a('0xf2')]({'include':[_0x203c8b]});}})[_0xac4a('0x36')](function(_0xcaac80){if(_0xcaac80){var _0x1e51c3={},_0xa25b84=[],_0x52139a=0x0;for(var _0x568d6c=0x0;_0x568d6c<_0xcaac80[_0xac4a('0x57')];_0x568d6c+=0x1){for(var _0x567c4e=0x0,_0x3426fb;_0x567c4e<_0xcaac80[_0x568d6c][_0xac4a('0x87')][_0xac4a('0x57')];_0x567c4e+=0x1){_0x3426fb=_0xcaac80[_0x568d6c]['Agents'][_0x567c4e][_0xac4a('0x28')]({'plain':!![]});_0x1e51c3[_0x3426fb['id']]=_0x3426fb;}}_0x1e51c3=_[_0xac4a('0x126')](_0x1e51c3);for(var _0x388f37=qs['offset'](_0x473b6c[_0xac4a('0x52')][_0xac4a('0x22')]);_0x388f37<_0x1e51c3[_0xac4a('0x57')]&&_0xa25b84[_0xac4a('0x57')]<qs[_0xac4a('0x24')](_0x473b6c['query'][_0xac4a('0x24')]);_0x388f37+=0x1){if(_0x1e51c3[_0x388f37]){_0xa25b84[_0xac4a('0x44')](_0x1e51c3[_0x388f37]);}}return{'count':_0x1e51c3['length'],'rows':_0xa25b84};}})['then'](respondWithResult(_0x3228dc,null))[_0xac4a('0x1e')](handleError(_0x3228dc,null));};exports[_0xac4a('0x35')]=function(_0x24e920,_0x331539){if(_0x24e920['user']['id']==_0x24e920[_0xac4a('0x4f')]['id']){return _0x331539['status'](0x1f4)[_0xac4a('0x39')]({'message':_0xac4a('0x127')});}return db[_0xac4a('0x3b')][_0xac4a('0x33')]({'where':{'id':_0x24e920['params']['id']}})[_0xac4a('0x36')](handleEntityNotFound(_0x331539,null))[_0xac4a('0x36')](removeEntity(_0x331539,null))[_0xac4a('0x1e')](handleError(_0x331539,null));};exports[_0xac4a('0x128')]=function(_0x481dc5,_0x571bf9){return db[_0xac4a('0x3b')][_0xac4a('0x33')]({'where':{'id':_0x481dc5[_0xac4a('0x4f')]['id']}})[_0xac4a('0x36')](handleEntityNotFound(_0x571bf9,null))[_0xac4a('0x36')](function(_0x1d1021){if(_0x1d1021){return _0x1d1021['addChatInteractions'](_0x481dc5[_0xac4a('0x5e')][_0xac4a('0x61')],_[_0xac4a('0x62')](_0x481dc5['body'],[_0xac4a('0x61'),'id'])||{})['spread'](function(){for(var _0x5d78e5=0x0;_0x5d78e5<_0x481dc5['body'][_0xac4a('0x61')][_0xac4a('0x57')];_0x5d78e5+=0x1){socket['emit'](_0xac4a('0x129'),{'ChatInteractionId':Number(_0x481dc5[_0xac4a('0x5e')]['ids'][_0x5d78e5]),'UserId':Number(_0x481dc5['params']['id'])});}return _0x481dc5['body'][_0xac4a('0x61')];});}})['then'](respondWithResult(_0x571bf9,null))[_0xac4a('0x1e')](handleError(_0x571bf9,null));};exports[_0xac4a('0x12a')]=function(_0x1c4be0,_0x5dfcb5){return db[_0xac4a('0x3b')][_0xac4a('0x33')]({'where':{'id':_0x1c4be0[_0xac4a('0x4f')]['id']}})[_0xac4a('0x36')](handleEntityNotFound(_0x5dfcb5,null))[_0xac4a('0x36')](function(_0x342e3d){if(_0x342e3d){return _0x342e3d[_0xac4a('0x12a')](_0x1c4be0[_0xac4a('0x52')][_0xac4a('0x61')])[_0xac4a('0x36')](function(){if(_[_0xac4a('0xae')](_0x1c4be0[_0xac4a('0x52')][_0xac4a('0x61')])){for(var _0xfd029b=0x0;_0xfd029b<_0x1c4be0['query'][_0xac4a('0x61')][_0xac4a('0x57')];_0xfd029b+=0x1){socket[_0xac4a('0xa8')](_0xac4a('0x12b'),{'ChatInteractionId':Number(_0x1c4be0['query']['ids'][_0xfd029b]),'UserId':Number(_0x1c4be0[_0xac4a('0x4f')]['id'])});}}else{socket[_0xac4a('0xa8')](_0xac4a('0x12b'),{'ChatInteractionId':Number(_0x1c4be0[_0xac4a('0x52')][_0xac4a('0x61')]),'UserId':Number(_0x1c4be0[_0xac4a('0x4f')]['id'])});}});}})[_0xac4a('0x36')](respondWithStatusCode(_0x5dfcb5,null))['catch'](handleError(_0x5dfcb5,null));};exports['addMailInteractions']=function(_0x4e064e,_0x4083be){return db[_0xac4a('0x3b')][_0xac4a('0x33')]({'where':{'id':_0x4e064e[_0xac4a('0x4f')]['id']}})[_0xac4a('0x36')](handleEntityNotFound(_0x4083be,null))[_0xac4a('0x36')](function(_0x59fcc6){if(_0x59fcc6){return _0x59fcc6['addMailInteractions'](_0x4e064e[_0xac4a('0x5e')][_0xac4a('0x61')],_[_0xac4a('0x62')](_0x4e064e[_0xac4a('0x5e')],['ids','id'])||{})['spread'](function(){for(var _0x2dab8a=0x0;_0x2dab8a<_0x4e064e[_0xac4a('0x5e')][_0xac4a('0x61')][_0xac4a('0x57')];_0x2dab8a+=0x1){socket[_0xac4a('0xa8')](_0xac4a('0x12c'),{'MailInteractionId':Number(_0x4e064e[_0xac4a('0x5e')][_0xac4a('0x61')][_0x2dab8a]),'UserId':Number(_0x4e064e[_0xac4a('0x4f')]['id'])});}return _0x4e064e['body'][_0xac4a('0x61')];});}})['then'](respondWithResult(_0x4083be,null))[_0xac4a('0x1e')](handleError(_0x4083be,null));};exports[_0xac4a('0x12d')]=function(_0x1d1ad2,_0x592b19){return db['User']['find']({'where':{'id':_0x1d1ad2[_0xac4a('0x4f')]['id']}})['then'](handleEntityNotFound(_0x592b19,null))[_0xac4a('0x36')](function(_0x217412){if(_0x217412){return _0x217412['removeMailInteractions'](_0x1d1ad2[_0xac4a('0x52')]['ids'])[_0xac4a('0x36')](function(){if(_[_0xac4a('0xae')](_0x1d1ad2[_0xac4a('0x52')]['ids'])){for(var _0x518696=0x0;_0x518696<_0x1d1ad2[_0xac4a('0x52')][_0xac4a('0x61')][_0xac4a('0x57')];_0x518696+=0x1){socket['emit'](_0xac4a('0x12e'),{'MailInteractionId':Number(_0x1d1ad2[_0xac4a('0x52')][_0xac4a('0x61')][_0x518696]),'UserId':Number(_0x1d1ad2['params']['id'])});}}else{socket['emit'](_0xac4a('0x12e'),{'MailInteractionId':Number(_0x1d1ad2['query'][_0xac4a('0x61')]),'UserId':Number(_0x1d1ad2['params']['id'])});}});}})[_0xac4a('0x36')](respondWithStatusCode(_0x592b19,null))[_0xac4a('0x1e')](handleError(_0x592b19,null));};exports[_0xac4a('0x12f')]=function(_0x422ced,_0x199ee3){return db[_0xac4a('0x3b')]['find']({'where':{'id':_0x422ced[_0xac4a('0x4f')]['id']}})['then'](handleEntityNotFound(_0x199ee3,null))['then'](function(_0x452e81){if(_0x452e81){return _0x452e81[_0xac4a('0x12f')](_0x422ced[_0xac4a('0x5e')][_0xac4a('0x61')],_[_0xac4a('0x62')](_0x422ced[_0xac4a('0x5e')],[_0xac4a('0x61'),'id'])||{})[_0xac4a('0xa7')](function(){for(var _0x1ed730=0x0;_0x1ed730<_0x422ced[_0xac4a('0x5e')][_0xac4a('0x61')][_0xac4a('0x57')];_0x1ed730+=0x1){socket['emit'](_0xac4a('0x130'),{'FaxInteractionId':Number(_0x422ced[_0xac4a('0x5e')][_0xac4a('0x61')][_0x1ed730]),'UserId':Number(_0x422ced[_0xac4a('0x4f')]['id'])});}return _0x422ced[_0xac4a('0x5e')][_0xac4a('0x61')];});}})[_0xac4a('0x36')](respondWithResult(_0x199ee3,null))[_0xac4a('0x1e')](handleError(_0x199ee3,null));};exports[_0xac4a('0x131')]=function(_0xcd20c6,_0x16b874){return db['User'][_0xac4a('0x33')]({'where':{'id':_0xcd20c6[_0xac4a('0x4f')]['id']}})[_0xac4a('0x36')](handleEntityNotFound(_0x16b874,null))[_0xac4a('0x36')](function(_0x51df3e){if(_0x51df3e){return _0x51df3e[_0xac4a('0x131')](_0xcd20c6[_0xac4a('0x52')]['ids'])[_0xac4a('0x36')](function(){if(_[_0xac4a('0xae')](_0xcd20c6[_0xac4a('0x52')][_0xac4a('0x61')])){for(var _0x38dee5=0x0;_0x38dee5<_0xcd20c6['query'][_0xac4a('0x61')][_0xac4a('0x57')];_0x38dee5+=0x1){socket['emit'](_0xac4a('0x132'),{'FaxInteractionId':Number(_0xcd20c6[_0xac4a('0x52')]['ids'][_0x38dee5]),'UserId':Number(_0xcd20c6[_0xac4a('0x4f')]['id'])});}}else{socket['emit'](_0xac4a('0x132'),{'FaxInteractionId':Number(_0xcd20c6[_0xac4a('0x52')][_0xac4a('0x61')]),'UserId':Number(_0xcd20c6[_0xac4a('0x4f')]['id'])});}});}})[_0xac4a('0x36')](respondWithStatusCode(_0x16b874,null))[_0xac4a('0x1e')](handleError(_0x16b874,null));};exports[_0xac4a('0x133')]=function(_0x11835c,_0x5da578){return db[_0xac4a('0x3b')]['find']({'where':{'id':_0x11835c[_0xac4a('0x4f')]['id']}})['then'](handleEntityNotFound(_0x5da578,null))[_0xac4a('0x36')](function(_0x127d83){if(_0x127d83){return _0x127d83[_0xac4a('0x133')](_0x11835c[_0xac4a('0x5e')]['ids'],_[_0xac4a('0x62')](_0x11835c[_0xac4a('0x5e')],[_0xac4a('0x61'),'id'])||{})[_0xac4a('0xa7')](function(){for(var _0x9e4b02=0x0;_0x9e4b02<_0x11835c['body']['ids'][_0xac4a('0x57')];_0x9e4b02+=0x1){socket[_0xac4a('0xa8')]('user_has_sms_interactions:save',{'SmsInteractionId':Number(_0x11835c[_0xac4a('0x5e')][_0xac4a('0x61')][_0x9e4b02]),'UserId':Number(_0x11835c[_0xac4a('0x4f')]['id'])});}return _0x11835c['body'][_0xac4a('0x61')];});}})[_0xac4a('0x36')](respondWithResult(_0x5da578,null))['catch'](handleError(_0x5da578,null));};exports[_0xac4a('0x134')]=function(_0x399b9e,_0x29f1fe){return db['User']['find']({'where':{'id':_0x399b9e[_0xac4a('0x4f')]['id']}})[_0xac4a('0x36')](handleEntityNotFound(_0x29f1fe,null))[_0xac4a('0x36')](function(_0x8b8246){if(_0x8b8246){return _0x8b8246['removeSmsInteractions'](_0x399b9e['query']['ids'])[_0xac4a('0x36')](function(){if(_[_0xac4a('0xae')](_0x399b9e['query']['ids'])){for(var _0x346bc0=0x0;_0x346bc0<_0x399b9e['query'][_0xac4a('0x61')][_0xac4a('0x57')];_0x346bc0+=0x1){socket[_0xac4a('0xa8')](_0xac4a('0x135'),{'SmsInteractionId':Number(_0x399b9e['query'][_0xac4a('0x61')][_0x346bc0]),'UserId':Number(_0x399b9e[_0xac4a('0x4f')]['id'])});}}else{socket[_0xac4a('0xa8')]('user_has_sms_interactions:remove',{'SmsInteractionId':Number(_0x399b9e['query'][_0xac4a('0x61')]),'UserId':Number(_0x399b9e[_0xac4a('0x4f')]['id'])});}});}})['then'](respondWithStatusCode(_0x29f1fe,null))['catch'](handleError(_0x29f1fe,null));};exports[_0xac4a('0x136')]=function(_0x1f3eda,_0x3c743a){return db['User'][_0xac4a('0x33')]({'where':{'id':_0x1f3eda['params']['id']}})[_0xac4a('0x36')](handleEntityNotFound(_0x3c743a,null))[_0xac4a('0x36')](function(_0x2359a0){if(_0x2359a0){return _0x2359a0[_0xac4a('0x136')](_0x1f3eda[_0xac4a('0x5e')][_0xac4a('0x61')],_[_0xac4a('0x62')](_0x1f3eda[_0xac4a('0x5e')],[_0xac4a('0x61'),'id'])||{})[_0xac4a('0xa7')](function(){for(var _0x341656=0x0;_0x341656<_0x1f3eda['body'][_0xac4a('0x61')][_0xac4a('0x57')];_0x341656+=0x1){socket[_0xac4a('0xa8')](_0xac4a('0x137'),{'OpenchannelInteractionId':Number(_0x1f3eda[_0xac4a('0x5e')][_0xac4a('0x61')][_0x341656]),'UserId':Number(_0x1f3eda[_0xac4a('0x4f')]['id'])});}return _0x1f3eda['body']['ids'];});}})[_0xac4a('0x36')](respondWithResult(_0x3c743a,null))[_0xac4a('0x1e')](handleError(_0x3c743a,null));};exports[_0xac4a('0x138')]=function(_0x413ad7,_0x1cc60b){return db['User'][_0xac4a('0x33')]({'where':{'id':_0x413ad7['params']['id']}})[_0xac4a('0x36')](handleEntityNotFound(_0x1cc60b,null))[_0xac4a('0x36')](function(_0xbc5553){if(_0xbc5553){return _0xbc5553[_0xac4a('0x138')](_0x413ad7[_0xac4a('0x52')][_0xac4a('0x61')])[_0xac4a('0x36')](function(){if(_[_0xac4a('0xae')](_0x413ad7[_0xac4a('0x52')][_0xac4a('0x61')])){for(var _0x5cc39b=0x0;_0x5cc39b<_0x413ad7[_0xac4a('0x52')][_0xac4a('0x61')][_0xac4a('0x57')];_0x5cc39b+=0x1){socket[_0xac4a('0xa8')]('user_has_openchannel_interactions:remove',{'OpenchannelInteractionId':Number(_0x413ad7[_0xac4a('0x52')]['ids'][_0x5cc39b]),'UserId':Number(_0x413ad7[_0xac4a('0x4f')]['id'])});}}else{socket[_0xac4a('0xa8')]('user_has_openchannel_interactions:remove',{'OpenchannelInteractionId':Number(_0x413ad7[_0xac4a('0x52')][_0xac4a('0x61')]),'UserId':Number(_0x413ad7[_0xac4a('0x4f')]['id'])});}});}})[_0xac4a('0x36')](respondWithStatusCode(_0x1cc60b,null))[_0xac4a('0x1e')](handleError(_0x1cc60b,null));};exports[_0xac4a('0x139')]=function(_0x2615da,_0x46fae2){return db[_0xac4a('0x3b')][_0xac4a('0x33')]({'where':{'id':_0x2615da['params']['id']}})[_0xac4a('0x36')](handleEntityNotFound(_0x46fae2,null))[_0xac4a('0x36')](function(_0x406a4b){if(_0x406a4b){return _0x406a4b[_0xac4a('0x139')](_0x2615da[_0xac4a('0x5e')][_0xac4a('0x61')],_[_0xac4a('0x62')](_0x2615da[_0xac4a('0x5e')],[_0xac4a('0x61'),'id'])||{})[_0xac4a('0xa7')](function(){for(var _0x3f946a=0x0;_0x3f946a<_0x2615da[_0xac4a('0x5e')][_0xac4a('0x61')]['length'];_0x3f946a+=0x1){socket[_0xac4a('0xa8')](_0xac4a('0x13a'),{'WhatsappInteractionId':Number(_0x2615da[_0xac4a('0x5e')][_0xac4a('0x61')][_0x3f946a]),'UserId':Number(_0x2615da['params']['id'])});}return _0x2615da[_0xac4a('0x5e')][_0xac4a('0x61')];});}})[_0xac4a('0x36')](respondWithResult(_0x46fae2,null))['catch'](handleError(_0x46fae2,null));};exports['removeWhatsappInteractions']=function(_0x49c645,_0x3df3f5){return db['User'][_0xac4a('0x33')]({'where':{'id':_0x49c645['params']['id']}})[_0xac4a('0x36')](handleEntityNotFound(_0x3df3f5,null))[_0xac4a('0x36')](function(_0x875558){if(_0x875558){return _0x875558[_0xac4a('0x13b')](_0x49c645[_0xac4a('0x52')][_0xac4a('0x61')]);}})[_0xac4a('0x36')](respondWithStatusCode(_0x3df3f5,null))['catch'](handleError(_0x3df3f5,null));};exports[_0xac4a('0x13c')]=function(_0x58d820,_0x1e2ad7){var _0x5721c7={};var _0x34e838={};var _0x22df93;var _0x44eaa6;return db['User'][_0xac4a('0x95')]({'where':{'id':_0x58d820[_0xac4a('0x4f')]['id']}})['then'](handleEntityNotFound(_0x1e2ad7,null))[_0xac4a('0x36')](function(_0x43f1db){if(_0x43f1db){_0x22df93=_0x43f1db;_0x34e838['model']=_[_0xac4a('0x51')](db[_0xac4a('0x13d')][_0xac4a('0x3c')]);_0x34e838[_0xac4a('0x52')]=_[_0xac4a('0x51')](_0x58d820[_0xac4a('0x52')]);_0x34e838['filters']=_[_0xac4a('0x54')](_0x34e838['model'],_0x34e838[_0xac4a('0x52')]);_0x5721c7[_0xac4a('0x43')]=_[_0xac4a('0x54')](_0x34e838['model'],qs['fields'](_0x58d820[_0xac4a('0x52')][_0xac4a('0x56')]));_0x5721c7[_0xac4a('0x43')]=_0x5721c7[_0xac4a('0x43')]['length']?_0x5721c7[_0xac4a('0x43')]:_0x34e838[_0xac4a('0x55')];_0x5721c7[_0xac4a('0xcb')]=qs[_0xac4a('0xcc')](_0x58d820[_0xac4a('0x52')][_0xac4a('0xcc')]);_0x5721c7[_0xac4a('0x41')]=qs['filters'](_[_0xac4a('0xcd')](_0x58d820[_0xac4a('0x52')],_0x34e838['filters']));if(_0x58d820['query'][_0xac4a('0x2e')]){_0x5721c7[_0xac4a('0x41')]=_[_0xac4a('0x59')](_0x5721c7[_0xac4a('0x41')],{'$or':_[_0xac4a('0x30')](_0x5721c7[_0xac4a('0x43')],function(_0x3ff4cf){var _0x504299={};_0x504299[_0x3ff4cf]={'$like':'%'+_0x58d820[_0xac4a('0x52')][_0xac4a('0x2e')]+'%'};return _0x504299;})});}_0x5721c7=_[_0xac4a('0x59')]({},_0x5721c7,_0x58d820[_0xac4a('0xce')]);return _0x22df93['getVoicePrefixes'](_0x5721c7);}})['then'](function(_0x19ab74){if(_0x19ab74){_0x44eaa6=_0x19ab74[_0xac4a('0x57')];if(!_0x58d820[_0xac4a('0x52')]['hasOwnProperty']('nolimit')){_0x5721c7[_0xac4a('0x24')]=qs['limit'](_0x58d820['query']['limit']);_0x5721c7[_0xac4a('0x22')]=qs['offset'](_0x58d820['query'][_0xac4a('0x22')]);}return _0x22df93[_0xac4a('0x13c')](_0x5721c7);}})[_0xac4a('0x36')](function(_0x12d390){if(_0x12d390){return _0x12d390?{'count':_0x44eaa6,'rows':_0x12d390}:null;}})[_0xac4a('0x36')](respondWithResult(_0x1e2ad7,null))['catch'](handleError(_0x1e2ad7,null));};exports[_0xac4a('0x13e')]=function(_0x1a0a62,_0x2afcd4){var _0x53bbb6={};var _0x3f98d5={};var _0x1eb021;var _0x4a3893;return db['User']['findOne']({'where':{'id':_0x1a0a62['params']['id']}})[_0xac4a('0x36')](handleEntityNotFound(_0x2afcd4,null))['then'](function(_0x23b821){if(_0x23b821){_0x1eb021=_0x23b821;_0x3f98d5['model']=_[_0xac4a('0x51')](db['FaxAccount'][_0xac4a('0x3c')]);_0x3f98d5[_0xac4a('0x52')]=_['keys'](_0x1a0a62[_0xac4a('0x52')]);_0x3f98d5[_0xac4a('0x53')]=_['intersection'](_0x3f98d5[_0xac4a('0x55')],_0x3f98d5[_0xac4a('0x52')]);_0x53bbb6[_0xac4a('0x43')]=_[_0xac4a('0x54')](_0x3f98d5[_0xac4a('0x55')],qs[_0xac4a('0x56')](_0x1a0a62['query'][_0xac4a('0x56')]));_0x53bbb6[_0xac4a('0x43')]=_0x53bbb6[_0xac4a('0x43')]['length']?_0x53bbb6[_0xac4a('0x43')]:_0x3f98d5[_0xac4a('0x55')];_0x53bbb6['order']=qs[_0xac4a('0xcc')](_0x1a0a62[_0xac4a('0x52')]['sort']);_0x53bbb6[_0xac4a('0x41')]=qs[_0xac4a('0x53')](_[_0xac4a('0xcd')](_0x1a0a62['query'],_0x3f98d5[_0xac4a('0x53')]));if(_0x1a0a62[_0xac4a('0x52')][_0xac4a('0x2e')]){_0x53bbb6['where']=_['merge'](_0x53bbb6[_0xac4a('0x41')],{'$or':_[_0xac4a('0x30')](_0x53bbb6[_0xac4a('0x43')],function(_0x217110){var _0x3a0fb2={};_0x3a0fb2[_0x217110]={'$like':'%'+_0x1a0a62[_0xac4a('0x52')]['filter']+'%'};return _0x3a0fb2;})});}_0x53bbb6=_[_0xac4a('0x59')]({},_0x53bbb6,_0x1a0a62[_0xac4a('0xce')]);return _0x1eb021[_0xac4a('0x13e')](_0x53bbb6);}})[_0xac4a('0x36')](function(_0x540369){if(_0x540369){_0x4a3893=_0x540369['length'];if(!_0x1a0a62['query']['hasOwnProperty']('nolimit')){_0x53bbb6[_0xac4a('0x24')]=qs[_0xac4a('0x24')](_0x1a0a62['query'][_0xac4a('0x24')]);_0x53bbb6[_0xac4a('0x22')]=qs[_0xac4a('0x22')](_0x1a0a62[_0xac4a('0x52')][_0xac4a('0x22')]);}return _0x1eb021[_0xac4a('0x13e')](_0x53bbb6);}})[_0xac4a('0x36')](function(_0x4713b9){if(_0x4713b9){return _0x4713b9?{'count':_0x4a3893,'rows':_0x4713b9}:null;}})[_0xac4a('0x36')](respondWithResult(_0x2afcd4,null))[_0xac4a('0x1e')](handleError(_0x2afcd4,null));};exports[_0xac4a('0x13f')]=function(_0x388fd3,_0x43b011){return db[_0xac4a('0x3b')][_0xac4a('0x33')]({'where':{'id':_0x388fd3['params']['id']}})[_0xac4a('0x36')](handleEntityNotFound(_0x43b011,null))[_0xac4a('0x36')](function(_0x3c3496){if(_0x3c3496){return _0x3c3496[_0xac4a('0x13f')](_0x388fd3['body'][_0xac4a('0x61')],_[_0xac4a('0x62')](_0x388fd3[_0xac4a('0x5e')],['ids','id'])||{});}})[_0xac4a('0x36')](respondWithResult(_0x43b011,null))[_0xac4a('0x1e')](handleError(_0x43b011,null));};exports[_0xac4a('0x140')]=function(_0x5ac813,_0x347f26){return db[_0xac4a('0x3b')][_0xac4a('0x33')]({'where':{'id':_0x5ac813[_0xac4a('0x4f')]['id']}})[_0xac4a('0x36')](handleEntityNotFound(_0x347f26,null))[_0xac4a('0x36')](function(_0x243a1c){if(_0x243a1c){return _0x243a1c['removeFaxAccounts'](_0x5ac813[_0xac4a('0x52')][_0xac4a('0x61')]);}})['then'](respondWithStatusCode(_0x347f26,null))[_0xac4a('0x1e')](handleError(_0x347f26,null));};exports['getMailAccounts']=function(_0x166cd1,_0x31a21e){var _0x397203={};var _0x119030={};var _0x552b5f;var _0xd3e39f;return db[_0xac4a('0x3b')][_0xac4a('0x95')]({'where':{'id':_0x166cd1[_0xac4a('0x4f')]['id']}})['then'](handleEntityNotFound(_0x31a21e,null))[_0xac4a('0x36')](function(_0x297ffa){if(_0x297ffa){_0x552b5f=_0x297ffa;_0x119030[_0xac4a('0x55')]=_[_0xac4a('0x51')](db[_0xac4a('0x141')][_0xac4a('0x3c')]);_0x119030[_0xac4a('0x52')]=_[_0xac4a('0x51')](_0x166cd1[_0xac4a('0x52')]);_0x119030[_0xac4a('0x53')]=_[_0xac4a('0x54')](_0x119030[_0xac4a('0x55')],_0x119030['query']);_0x397203[_0xac4a('0x43')]=_[_0xac4a('0x54')](_0x119030[_0xac4a('0x55')],qs[_0xac4a('0x56')](_0x166cd1[_0xac4a('0x52')][_0xac4a('0x56')]));_0x397203[_0xac4a('0x43')]=_0x397203[_0xac4a('0x43')][_0xac4a('0x57')]?_0x397203[_0xac4a('0x43')]:_0x119030[_0xac4a('0x55')];_0x397203[_0xac4a('0xcb')]=qs[_0xac4a('0xcc')](_0x166cd1[_0xac4a('0x52')][_0xac4a('0xcc')]);_0x397203[_0xac4a('0x41')]=qs[_0xac4a('0x53')](_['pick'](_0x166cd1[_0xac4a('0x52')],_0x119030['filters']));if(_0x166cd1[_0xac4a('0x52')][_0xac4a('0x2e')]){_0x397203[_0xac4a('0x41')]=_[_0xac4a('0x59')](_0x397203[_0xac4a('0x41')],{'$or':_['map'](_0x397203['attributes'],function(_0x1c306e){var _0x5d85d3={};_0x5d85d3[_0x1c306e]={'$like':'%'+_0x166cd1[_0xac4a('0x52')][_0xac4a('0x2e')]+'%'};return _0x5d85d3;})});}_0x397203=_['merge']({},_0x397203,_0x166cd1['options']);return _0x552b5f['getMailAccounts'](_0x397203);}})[_0xac4a('0x36')](function(_0xdd132c){if(_0xdd132c){_0xd3e39f=_0xdd132c[_0xac4a('0x57')];if(!_0x166cd1['query'][_0xac4a('0xcf')](_0xac4a('0xd4'))){_0x397203[_0xac4a('0x24')]=qs[_0xac4a('0x24')](_0x166cd1[_0xac4a('0x52')][_0xac4a('0x24')]);_0x397203['offset']=qs[_0xac4a('0x22')](_0x166cd1['query']['offset']);}return _0x552b5f[_0xac4a('0x142')](_0x397203);}})[_0xac4a('0x36')](function(_0x3d1654){if(_0x3d1654){return _0x3d1654?{'count':_0xd3e39f,'rows':_0x3d1654}:null;}})[_0xac4a('0x36')](respondWithResult(_0x31a21e,null))['catch'](handleError(_0x31a21e,null));};exports[_0xac4a('0x143')]=function(_0x274d06,_0x2e7f78){return db['User'][_0xac4a('0x33')]({'where':{'id':_0x274d06[_0xac4a('0x4f')]['id']}})[_0xac4a('0x36')](handleEntityNotFound(_0x2e7f78,null))[_0xac4a('0x36')](function(_0x375a32){if(_0x375a32){return _0x375a32['addMailAccounts'](_0x274d06['body'][_0xac4a('0x61')],_[_0xac4a('0x62')](_0x274d06['body'],[_0xac4a('0x61'),'id'])||{});}})[_0xac4a('0x36')](respondWithResult(_0x2e7f78,null))['catch'](handleError(_0x2e7f78,null));};exports['removeMailAccounts']=function(_0x519905,_0x6fe841){return db[_0xac4a('0x3b')][_0xac4a('0x33')]({'where':{'id':_0x519905[_0xac4a('0x4f')]['id']}})[_0xac4a('0x36')](handleEntityNotFound(_0x6fe841,null))[_0xac4a('0x36')](function(_0x22e91c){if(_0x22e91c){return _0x22e91c[_0xac4a('0x144')](_0x519905[_0xac4a('0x52')][_0xac4a('0x61')]);}})[_0xac4a('0x36')](respondWithStatusCode(_0x6fe841,null))['catch'](handleError(_0x6fe841,null));};exports[_0xac4a('0x145')]=function(_0x13f3ca,_0xb7a74a){var _0x342003={};var _0x50aaee={};var _0x5ee2ac;var _0x5594dd;return db['User']['findOne']({'where':{'id':_0x13f3ca['params']['id']}})[_0xac4a('0x36')](handleEntityNotFound(_0xb7a74a,null))[_0xac4a('0x36')](function(_0x42d60b){if(_0x42d60b){_0x5ee2ac=_0x42d60b;_0x50aaee[_0xac4a('0x55')]=_[_0xac4a('0x51')](db[_0xac4a('0x146')][_0xac4a('0x3c')]);_0x50aaee['query']=_[_0xac4a('0x51')](_0x13f3ca['query']);_0x50aaee[_0xac4a('0x53')]=_['intersection'](_0x50aaee['model'],_0x50aaee[_0xac4a('0x52')]);_0x342003[_0xac4a('0x43')]=_['intersection'](_0x50aaee[_0xac4a('0x55')],qs['fields'](_0x13f3ca[_0xac4a('0x52')][_0xac4a('0x56')]));_0x342003[_0xac4a('0x43')]=_0x342003[_0xac4a('0x43')][_0xac4a('0x57')]?_0x342003[_0xac4a('0x43')]:_0x50aaee[_0xac4a('0x55')];_0x342003['order']=qs[_0xac4a('0xcc')](_0x13f3ca[_0xac4a('0x52')][_0xac4a('0xcc')]);_0x342003[_0xac4a('0x41')]=qs['filters'](_[_0xac4a('0xcd')](_0x13f3ca[_0xac4a('0x52')],_0x50aaee[_0xac4a('0x53')]));if(_0x13f3ca['query'][_0xac4a('0x2e')]){_0x342003[_0xac4a('0x41')]=_[_0xac4a('0x59')](_0x342003['where'],{'$or':_['map'](_0x342003[_0xac4a('0x43')],function(_0x7ee1d7){var _0xa9742={};_0xa9742[_0x7ee1d7]={'$like':'%'+_0x13f3ca[_0xac4a('0x52')]['filter']+'%'};return _0xa9742;})});}_0x342003=_[_0xac4a('0x59')]({},_0x342003,_0x13f3ca[_0xac4a('0xce')]);return _0x5ee2ac[_0xac4a('0x145')](_0x342003);}})[_0xac4a('0x36')](function(_0x46be11){if(_0x46be11){_0x5594dd=_0x46be11[_0xac4a('0x57')];if(!_0x13f3ca[_0xac4a('0x52')]['hasOwnProperty']('nolimit')){_0x342003['limit']=qs[_0xac4a('0x24')](_0x13f3ca[_0xac4a('0x52')][_0xac4a('0x24')]);_0x342003[_0xac4a('0x22')]=qs[_0xac4a('0x22')](_0x13f3ca['query'][_0xac4a('0x22')]);}return _0x5ee2ac[_0xac4a('0x145')](_0x342003);}})[_0xac4a('0x36')](function(_0x4e640a){if(_0x4e640a){return _0x4e640a?{'count':_0x5594dd,'rows':_0x4e640a}:null;}})['then'](respondWithResult(_0xb7a74a,null))['catch'](handleError(_0xb7a74a,null));};exports[_0xac4a('0x147')]=function(_0x3ae56d,_0x3b7229){return db[_0xac4a('0x3b')][_0xac4a('0x33')]({'where':{'id':_0x3ae56d[_0xac4a('0x4f')]['id']}})['then'](handleEntityNotFound(_0x3b7229,null))[_0xac4a('0x36')](function(_0x4f3248){if(_0x4f3248){return _0x4f3248[_0xac4a('0x147')](_0x3ae56d[_0xac4a('0x5e')]['ids'],_[_0xac4a('0x62')](_0x3ae56d['body'],[_0xac4a('0x61'),'id'])||{});}})[_0xac4a('0x36')](respondWithResult(_0x3b7229,null))[_0xac4a('0x1e')](handleError(_0x3b7229,null));};exports['removeOpenchannelAccounts']=function(_0x6ee86a,_0x4487be){return db['User'][_0xac4a('0x33')]({'where':{'id':_0x6ee86a['params']['id']}})[_0xac4a('0x36')](handleEntityNotFound(_0x4487be,null))[_0xac4a('0x36')](function(_0x1a4c04){if(_0x1a4c04){return _0x1a4c04[_0xac4a('0x148')](_0x6ee86a[_0xac4a('0x52')]['ids']);}})[_0xac4a('0x36')](respondWithStatusCode(_0x4487be,null))['catch'](handleError(_0x4487be,null));};exports[_0xac4a('0x149')]=function(_0x448fbe,_0x56ebac){var _0x2642ad={};var _0x4eb1df={};var _0x1b2ccc;var _0x289566;return db[_0xac4a('0x3b')][_0xac4a('0x95')]({'where':{'id':_0x448fbe[_0xac4a('0x4f')]['id']}})[_0xac4a('0x36')](handleEntityNotFound(_0x56ebac,null))[_0xac4a('0x36')](function(_0x2e67b8){if(_0x2e67b8){_0x1b2ccc=_0x2e67b8;_0x4eb1df['model']=_[_0xac4a('0x51')](db[_0xac4a('0x14a')][_0xac4a('0x3c')]);_0x4eb1df['query']=_[_0xac4a('0x51')](_0x448fbe[_0xac4a('0x52')]);_0x4eb1df[_0xac4a('0x53')]=_[_0xac4a('0x54')](_0x4eb1df[_0xac4a('0x55')],_0x4eb1df[_0xac4a('0x52')]);_0x2642ad['attributes']=_[_0xac4a('0x54')](_0x4eb1df[_0xac4a('0x55')],qs[_0xac4a('0x56')](_0x448fbe['query'][_0xac4a('0x56')]));_0x2642ad[_0xac4a('0x43')]=_0x2642ad['attributes'][_0xac4a('0x57')]?_0x2642ad[_0xac4a('0x43')]:_0x4eb1df[_0xac4a('0x55')];_0x2642ad[_0xac4a('0xcb')]=qs[_0xac4a('0xcc')](_0x448fbe[_0xac4a('0x52')][_0xac4a('0xcc')]);_0x2642ad[_0xac4a('0x41')]=qs[_0xac4a('0x53')](_['pick'](_0x448fbe[_0xac4a('0x52')],_0x4eb1df[_0xac4a('0x53')]));if(_0x448fbe[_0xac4a('0x52')]['filter']){_0x2642ad[_0xac4a('0x41')]=_['merge'](_0x2642ad[_0xac4a('0x41')],{'$or':_[_0xac4a('0x30')](_0x2642ad[_0xac4a('0x43')],function(_0x18b400){var _0x23f2d6={};_0x23f2d6[_0x18b400]={'$like':'%'+_0x448fbe[_0xac4a('0x52')][_0xac4a('0x2e')]+'%'};return _0x23f2d6;})});}_0x2642ad=_[_0xac4a('0x59')]({},_0x2642ad,_0x448fbe['options']);return _0x1b2ccc[_0xac4a('0x149')](_0x2642ad);}})[_0xac4a('0x36')](function(_0x4e163a){if(_0x4e163a){_0x289566=_0x4e163a['length'];if(!_0x448fbe['query'][_0xac4a('0xcf')](_0xac4a('0xd4'))){_0x2642ad[_0xac4a('0x24')]=qs[_0xac4a('0x24')](_0x448fbe['query'][_0xac4a('0x24')]);_0x2642ad[_0xac4a('0x22')]=qs['offset'](_0x448fbe[_0xac4a('0x52')][_0xac4a('0x22')]);}return _0x1b2ccc[_0xac4a('0x149')](_0x2642ad);}})[_0xac4a('0x36')](function(_0x172db0){if(_0x172db0){return _0x172db0?{'count':_0x289566,'rows':_0x172db0}:null;}})[_0xac4a('0x36')](respondWithResult(_0x56ebac,null))[_0xac4a('0x1e')](handleError(_0x56ebac,null));};exports[_0xac4a('0x14b')]=function(_0xc063fa,_0x537960){return db[_0xac4a('0x3b')]['find']({'where':{'id':_0xc063fa[_0xac4a('0x4f')]['id']}})['then'](handleEntityNotFound(_0x537960,null))[_0xac4a('0x36')](function(_0xf5d245){if(_0xf5d245){return _0xf5d245['addSmsAccounts'](_0xc063fa[_0xac4a('0x5e')][_0xac4a('0x61')],_[_0xac4a('0x62')](_0xc063fa['body'],[_0xac4a('0x61'),'id'])||{});}})['then'](respondWithResult(_0x537960,null))[_0xac4a('0x1e')](handleError(_0x537960,null));};exports[_0xac4a('0x14c')]=function(_0x2cae56,_0x2335ee){return db[_0xac4a('0x3b')]['find']({'where':{'id':_0x2cae56[_0xac4a('0x4f')]['id']}})[_0xac4a('0x36')](handleEntityNotFound(_0x2335ee,null))[_0xac4a('0x36')](function(_0x2f6e17){if(_0x2f6e17){return _0x2f6e17[_0xac4a('0x14c')](_0x2cae56['query'][_0xac4a('0x61')]);}})[_0xac4a('0x36')](respondWithStatusCode(_0x2335ee,null))[_0xac4a('0x1e')](handleError(_0x2335ee,null));};exports[_0xac4a('0x14d')]=function(_0x383b33,_0x39811d){var _0x4ed3b2={};var _0x15a1a2={};var _0x5b8bee;var _0x34e00d;return db['User'][_0xac4a('0x95')]({'where':{'id':_0x383b33['params']['id']}})['then'](handleEntityNotFound(_0x39811d,null))['then'](function(_0x20f25d){if(_0x20f25d){_0x5b8bee=_0x20f25d;_0x15a1a2[_0xac4a('0x55')]=_['keys'](db[_0xac4a('0x14e')][_0xac4a('0x3c')]);_0x15a1a2[_0xac4a('0x52')]=_[_0xac4a('0x51')](_0x383b33['query']);_0x15a1a2[_0xac4a('0x53')]=_['intersection'](_0x15a1a2['model'],_0x15a1a2[_0xac4a('0x52')]);_0x4ed3b2[_0xac4a('0x43')]=_[_0xac4a('0x54')](_0x15a1a2['model'],qs[_0xac4a('0x56')](_0x383b33[_0xac4a('0x52')][_0xac4a('0x56')]));_0x4ed3b2[_0xac4a('0x43')]=_0x4ed3b2[_0xac4a('0x43')][_0xac4a('0x57')]?_0x4ed3b2[_0xac4a('0x43')]:_0x15a1a2[_0xac4a('0x55')];_0x4ed3b2[_0xac4a('0xcb')]=qs[_0xac4a('0xcc')](_0x383b33['query']['sort']);_0x4ed3b2[_0xac4a('0x41')]=qs[_0xac4a('0x53')](_[_0xac4a('0xcd')](_0x383b33['query'],_0x15a1a2[_0xac4a('0x53')]));if(_0x383b33[_0xac4a('0x52')]['filter']){_0x4ed3b2[_0xac4a('0x41')]=_['merge'](_0x4ed3b2[_0xac4a('0x41')],{'$or':_[_0xac4a('0x30')](_0x4ed3b2[_0xac4a('0x43')],function(_0x398379){var _0x480bc7={};_0x480bc7[_0x398379]={'$like':'%'+_0x383b33[_0xac4a('0x52')][_0xac4a('0x2e')]+'%'};return _0x480bc7;})});}_0x4ed3b2=_[_0xac4a('0x59')]({},_0x4ed3b2,_0x383b33[_0xac4a('0xce')]);return _0x5b8bee[_0xac4a('0x14d')](_0x4ed3b2);}})[_0xac4a('0x36')](function(_0x59d40d){if(_0x59d40d){_0x34e00d=_0x59d40d[_0xac4a('0x57')];if(!_0x383b33['query'][_0xac4a('0xcf')](_0xac4a('0xd4'))){_0x4ed3b2[_0xac4a('0x24')]=qs['limit'](_0x383b33['query'][_0xac4a('0x24')]);_0x4ed3b2[_0xac4a('0x22')]=qs[_0xac4a('0x22')](_0x383b33['query'][_0xac4a('0x22')]);}return _0x5b8bee[_0xac4a('0x14d')](_0x4ed3b2);}})[_0xac4a('0x36')](function(_0x420e69){if(_0x420e69){return _0x420e69?{'count':_0x34e00d,'rows':_0x420e69}:null;}})[_0xac4a('0x36')](respondWithResult(_0x39811d,null))['catch'](handleError(_0x39811d,null));};exports[_0xac4a('0x14f')]=function(_0x3cf003,_0x5652e0){return db['User'][_0xac4a('0x33')]({'where':{'id':_0x3cf003[_0xac4a('0x4f')]['id']}})[_0xac4a('0x36')](handleEntityNotFound(_0x5652e0,null))[_0xac4a('0x36')](function(_0x209d8e){if(_0x209d8e){return _0x209d8e[_0xac4a('0x14f')](_0x3cf003[_0xac4a('0x5e')][_0xac4a('0x61')],_['omit'](_0x3cf003[_0xac4a('0x5e')],[_0xac4a('0x61'),'id'])||{});}})[_0xac4a('0x36')](respondWithResult(_0x5652e0,null))['catch'](handleError(_0x5652e0,null));};exports[_0xac4a('0x150')]=function(_0x1c3c47,_0x21f9ca){return db[_0xac4a('0x3b')][_0xac4a('0x33')]({'where':{'id':_0x1c3c47[_0xac4a('0x4f')]['id']}})['then'](handleEntityNotFound(_0x21f9ca,null))[_0xac4a('0x36')](function(_0x41569e){if(_0x41569e){return _0x41569e[_0xac4a('0x150')](_0x1c3c47[_0xac4a('0x52')][_0xac4a('0x61')]);}})[_0xac4a('0x36')](respondWithStatusCode(_0x21f9ca,null))['catch'](handleError(_0x21f9ca,null));};exports[_0xac4a('0x151')]=function(_0x2ac340,_0x1e9316){var _0x159ba8={};var _0x58ca47={};var _0x15dbe0;var _0x147f8f;return db[_0xac4a('0x3b')][_0xac4a('0x95')]({'where':{'id':_0x2ac340[_0xac4a('0x4f')]['id']}})[_0xac4a('0x36')](handleEntityNotFound(_0x1e9316,null))[_0xac4a('0x36')](function(_0x2e5332){if(_0x2e5332){_0x15dbe0=_0x2e5332;_0x58ca47[_0xac4a('0x55')]=_[_0xac4a('0x51')](db[_0xac4a('0x152')][_0xac4a('0x3c')]);_0x58ca47[_0xac4a('0x52')]=_[_0xac4a('0x51')](_0x2ac340['query']);_0x58ca47[_0xac4a('0x53')]=_[_0xac4a('0x54')](_0x58ca47[_0xac4a('0x55')],_0x58ca47[_0xac4a('0x52')]);_0x159ba8[_0xac4a('0x43')]=_[_0xac4a('0x54')](_0x58ca47[_0xac4a('0x55')],qs['fields'](_0x2ac340[_0xac4a('0x52')][_0xac4a('0x56')]));_0x159ba8[_0xac4a('0x43')]=_0x159ba8[_0xac4a('0x43')][_0xac4a('0x57')]?_0x159ba8[_0xac4a('0x43')]:_0x58ca47[_0xac4a('0x55')];_0x159ba8[_0xac4a('0xcb')]=qs[_0xac4a('0xcc')](_0x2ac340[_0xac4a('0x52')][_0xac4a('0xcc')]);_0x159ba8[_0xac4a('0x41')]=qs['filters'](_[_0xac4a('0xcd')](_0x2ac340[_0xac4a('0x52')],_0x58ca47[_0xac4a('0x53')]));if(_0x2ac340[_0xac4a('0x52')][_0xac4a('0x2e')]){_0x159ba8['where']=_['merge'](_0x159ba8[_0xac4a('0x41')],{'$or':_[_0xac4a('0x30')](_0x159ba8['attributes'],function(_0x36374f){var _0x30fb11={};_0x30fb11[_0x36374f]={'$like':'%'+_0x2ac340[_0xac4a('0x52')][_0xac4a('0x2e')]+'%'};return _0x30fb11;})});}_0x159ba8=_[_0xac4a('0x59')]({},_0x159ba8,_0x2ac340[_0xac4a('0xce')]);return _0x15dbe0[_0xac4a('0x151')](_0x159ba8);}})[_0xac4a('0x36')](function(_0x228d2d){if(_0x228d2d){_0x147f8f=_0x228d2d['length'];if(!_0x2ac340[_0xac4a('0x52')][_0xac4a('0xcf')](_0xac4a('0xd4'))){_0x159ba8['limit']=qs[_0xac4a('0x24')](_0x2ac340[_0xac4a('0x52')][_0xac4a('0x24')]);_0x159ba8[_0xac4a('0x22')]=qs[_0xac4a('0x22')](_0x2ac340[_0xac4a('0x52')][_0xac4a('0x22')]);}return _0x15dbe0['getWhatsappAccounts'](_0x159ba8);}})[_0xac4a('0x36')](function(_0x728e30){if(_0x728e30){return _0x728e30?{'count':_0x147f8f,'rows':_0x728e30}:null;}})[_0xac4a('0x36')](respondWithResult(_0x1e9316,null))[_0xac4a('0x1e')](handleError(_0x1e9316,null));};exports['addWhatsappAccounts']=function(_0x57954c,_0x14dd8e){return db[_0xac4a('0x3b')][_0xac4a('0x33')]({'where':{'id':_0x57954c[_0xac4a('0x4f')]['id']}})[_0xac4a('0x36')](handleEntityNotFound(_0x14dd8e,null))[_0xac4a('0x36')](function(_0x50ff57){if(_0x50ff57){return _0x50ff57[_0xac4a('0x153')](_0x57954c['body']['ids'],_[_0xac4a('0x62')](_0x57954c[_0xac4a('0x5e')],[_0xac4a('0x61'),'id'])||{});}})['then'](respondWithResult(_0x14dd8e,null))[_0xac4a('0x1e')](handleError(_0x14dd8e,null));};exports[_0xac4a('0x154')]=function(_0x6513fc,_0x1e2273){return db[_0xac4a('0x3b')]['find']({'where':{'id':_0x6513fc['params']['id']}})[_0xac4a('0x36')](handleEntityNotFound(_0x1e2273,null))['then'](function(_0x2c686c){if(_0x2c686c){return _0x2c686c[_0xac4a('0x154')](_0x6513fc[_0xac4a('0x52')][_0xac4a('0x61')]);}})[_0xac4a('0x36')](respondWithStatusCode(_0x1e2273,null))[_0xac4a('0x1e')](handleError(_0x1e2273,null));};exports[_0xac4a('0x155')]=function(_0x223283,_0x24ee44){var _0x4e893b={};var _0x2f70e9={};var _0x403cf4;var _0x114614;return db[_0xac4a('0x3b')][_0xac4a('0x95')]({'where':{'id':_0x223283[_0xac4a('0x4f')]['id']}})['then'](handleEntityNotFound(_0x24ee44,null))['then'](function(_0x10d8c4){if(_0x10d8c4){_0x403cf4=_0x10d8c4;_0x2f70e9[_0xac4a('0x55')]=_[_0xac4a('0x51')](db[_0xac4a('0x156')][_0xac4a('0x3c')]);_0x2f70e9['query']=_[_0xac4a('0x51')](_0x223283['query']);_0x2f70e9[_0xac4a('0x53')]=_[_0xac4a('0x54')](_0x2f70e9['model'],_0x2f70e9[_0xac4a('0x52')]);_0x4e893b['attributes']=_[_0xac4a('0x54')](_0x2f70e9[_0xac4a('0x55')],qs['fields'](_0x223283[_0xac4a('0x52')][_0xac4a('0x56')]));_0x4e893b['attributes']=_0x4e893b[_0xac4a('0x43')][_0xac4a('0x57')]?_0x4e893b[_0xac4a('0x43')]:_0x2f70e9[_0xac4a('0x55')];_0x4e893b[_0xac4a('0xcb')]=qs['sort'](_0x223283['query'][_0xac4a('0xcc')]);_0x4e893b['where']=qs[_0xac4a('0x53')](_[_0xac4a('0xcd')](_0x223283[_0xac4a('0x52')],_0x2f70e9['filters']));if(_0x223283[_0xac4a('0x52')][_0xac4a('0x2e')]){_0x4e893b['where']=_['merge'](_0x4e893b[_0xac4a('0x41')],{'$or':_['map'](_0x4e893b[_0xac4a('0x43')],function(_0x5c53a6){var _0x2a8d3f={};_0x2a8d3f[_0x5c53a6]={'$like':'%'+_0x223283[_0xac4a('0x52')]['filter']+'%'};return _0x2a8d3f;})});}_0x4e893b=_[_0xac4a('0x59')]({},_0x4e893b,_0x223283[_0xac4a('0xce')]);return _0x403cf4[_0xac4a('0x155')](_0x4e893b);}})[_0xac4a('0x36')](function(_0x38cb8e){if(_0x38cb8e){_0x114614=_0x38cb8e[_0xac4a('0x57')];if(!_0x223283[_0xac4a('0x52')]['hasOwnProperty'](_0xac4a('0xd4'))){_0x4e893b[_0xac4a('0x24')]=qs['limit'](_0x223283[_0xac4a('0x52')]['limit']);_0x4e893b[_0xac4a('0x22')]=qs[_0xac4a('0x22')](_0x223283[_0xac4a('0x52')]['offset']);}return _0x403cf4[_0xac4a('0x155')](_0x4e893b);}})[_0xac4a('0x36')](function(_0x261b52){if(_0x261b52){return _0x261b52?{'count':_0x114614,'rows':_0x261b52}:null;}})[_0xac4a('0x36')](respondWithResult(_0x24ee44,null))[_0xac4a('0x1e')](handleError(_0x24ee44,null));};exports[_0xac4a('0x157')]=function(_0x405968,_0x37257f){return db['User'][_0xac4a('0x33')]({'where':{'id':_0x405968[_0xac4a('0x4f')]['id']}})[_0xac4a('0x36')](handleEntityNotFound(_0x37257f,null))[_0xac4a('0x36')](function(_0x325f32){if(_0x325f32){return _0x325f32[_0xac4a('0x157')](_0x405968[_0xac4a('0x5e')]['ids'],_[_0xac4a('0x62')](_0x405968[_0xac4a('0x5e')],['ids','id'])||{});}})[_0xac4a('0x36')](respondWithResult(_0x37257f,null))[_0xac4a('0x1e')](handleError(_0x37257f,null));};exports[_0xac4a('0x158')]=function(_0x20f20e,_0x26a10c){return db[_0xac4a('0x3b')][_0xac4a('0x33')]({'where':{'id':_0x20f20e['params']['id']}})[_0xac4a('0x36')](handleEntityNotFound(_0x26a10c,null))[_0xac4a('0x36')](function(_0x4c6cb7){if(_0x4c6cb7){return _0x4c6cb7[_0xac4a('0x158')](_0x20f20e[_0xac4a('0x52')]['ids']);}})['then'](respondWithStatusCode(_0x26a10c,null))[_0xac4a('0x1e')](handleError(_0x26a10c,null));};exports['getScheduledCalls']=function(_0x30ccd8,_0x3536a6){var _0x4af765={},_0x59d674={},_0x13ccf8={'count':0x0,'rows':[]};var _0x42d5cd=db[_0xac4a('0x159')]['rawAttributes'];_0x59d674[_0xac4a('0x55')]=_[_0xac4a('0x51')](_0x42d5cd);_0x59d674[_0xac4a('0x52')]=_[_0xac4a('0x51')](_0x30ccd8[_0xac4a('0x52')]);_0x59d674[_0xac4a('0x53')]=_[_0xac4a('0x54')](_0x59d674[_0xac4a('0x55')],_0x59d674[_0xac4a('0x52')]);_0x59d674[_0xac4a('0x53')]=_[_0xac4a('0x15a')](_0x59d674['filters'],[_0xac4a('0x15b'),_0xac4a('0x15c'),_0xac4a('0x15d'),_0xac4a('0x15e'),_0xac4a('0x15f'),_0xac4a('0x160'),_0xac4a('0x161'),_0xac4a('0x162'),'$not',_0xac4a('0x163'),_0xac4a('0x164'),_0xac4a('0x165'),_0xac4a('0x166'),_0xac4a('0x167'),'$notLike','$iLike','$notILike',_0xac4a('0x167'),_0xac4a('0x168'),'$contains','$contained',_0xac4a('0x169')]);_0x4af765[_0xac4a('0x43')]=_['intersection'](_0x59d674['model'],qs[_0xac4a('0x56')](_0x30ccd8['query'][_0xac4a('0x56')]));_0x4af765[_0xac4a('0x43')]=_0x4af765[_0xac4a('0x43')][_0xac4a('0x57')]?_0x4af765[_0xac4a('0x43')]:_0x59d674[_0xac4a('0x55')];if(!_0x30ccd8['query'][_0xac4a('0xcf')](_0xac4a('0xd4'))){_0x4af765[_0xac4a('0x24')]=qs['limit'](_0x30ccd8[_0xac4a('0x52')][_0xac4a('0x24')]);_0x4af765['offset']=qs['offset'](_0x30ccd8[_0xac4a('0x52')][_0xac4a('0x22')]);}_0x4af765[_0xac4a('0xcb')]=qs[_0xac4a('0xcc')](_0x30ccd8['query'][_0xac4a('0xcc')]);_0x4af765[_0xac4a('0x41')]=qs[_0xac4a('0x53')](_['pick'](_0x30ccd8['query'],_0x59d674[_0xac4a('0x53')]));if(_0x30ccd8['query'][_0xac4a('0x2e')]){_0x4af765[_0xac4a('0x41')]=_[_0xac4a('0x59')](_0x4af765[_0xac4a('0x41')],{'$or':_['map'](_0x4af765[_0xac4a('0x43')],function(_0x5d64e2){var _0x133882={};_0x133882[_0x5d64e2]={'$like':'%'+_0x30ccd8[_0xac4a('0x52')][_0xac4a('0x2e')]+'%'};return _0x133882;})});}_0x4af765[_0xac4a('0x41')]={'$and':[_0x4af765['where'],{'$or':[{'UserId':_0x30ccd8[_0xac4a('0x4f')]['id']},{'OwnerId':_0x30ccd8[_0xac4a('0x4f')]['id']}]}]};_0x4af765=_[_0xac4a('0x59')]({},_0x4af765,_0x30ccd8[_0xac4a('0xce')]);var _0x36dbef={'where':_0x4af765['where']};return db['CmHopper'][_0xac4a('0x25')](_0x36dbef)[_0xac4a('0x36')](function(_0x95e7a6){_0x13ccf8[_0xac4a('0x25')]=_0x95e7a6;if(_0x30ccd8['query'][_0xac4a('0x58')]){_0x4af765[_0xac4a('0x42')]=[{'attributes':['id','firstName',_0xac4a('0x16a'),'phone'],'model':db[_0xac4a('0xca')],'as':'Contact'},{'attributes':['id',_0xac4a('0x34'),_0xac4a('0x16b')],'model':db[_0xac4a('0xa9')],'as':_0xac4a('0xd6')}];}return db[_0xac4a('0x159')]['findAll'](_0x4af765);})[_0xac4a('0x36')](function(_0x230c33){_0x13ccf8[_0xac4a('0x46')]=_0x230c33;return _0x13ccf8;})[_0xac4a('0x36')](respondWithFilteredResult(_0x3536a6,_0x4af765))[_0xac4a('0x1e')](handleError(_0x3536a6,null));};exports[_0xac4a('0x16c')]=function(_0x1d40ba,_0x4345f0){if(!_[_0xac4a('0x68')](_0x1d40ba[_0xac4a('0x2b')]['id'])&&(_0x1d40ba[_0xac4a('0x2b')]['role']==_0xac4a('0x2a')||_0x1d40ba[_0xac4a('0x2b')][_0xac4a('0x29')]==_0xac4a('0x2b'))){return db['User']['findOne']({'where':{'id':_0x1d40ba[_0xac4a('0x4f')]['id']},'raw':!![]})[_0xac4a('0x36')](function(_0x41e661){return authService[_0xac4a('0x16d')](_0x41e661);})[_0xac4a('0x36')](function(_0x1ba78b){if(_0x1ba78b){return _0x4345f0[_0xac4a('0x1f')](0xc8)['json']({'api_key':_0x1ba78b[_0xac4a('0x16e')]});}else{return _0x4345f0[_0xac4a('0x1f')](0xcc)[_0xac4a('0x21')]({'message':'No\x20API\x20access\x20key\x20found!'});}})['catch'](handleError(_0x4345f0,0x193));}else{return _0x4345f0['status'](0x191)['json']({'message':_0xac4a('0x16f')});}};exports[_0xac4a('0x170')]=function(_0x30eac4,_0xda9734){if(!_[_0xac4a('0x68')](_0x30eac4['user']['id'])&&(_0x30eac4[_0xac4a('0x2b')][_0xac4a('0x29')]==_0xac4a('0x2a')||_0x30eac4[_0xac4a('0x2b')][_0xac4a('0x29')]==_0xac4a('0x2b'))){return db[_0xac4a('0x3b')][_0xac4a('0x33')]({'where':{'id':_0x30eac4[_0xac4a('0x4f')]['id']}})[_0xac4a('0x36')](function(_0x361666){return authService[_0xac4a('0x171')](_0x361666);})['then'](function(_0x225a46){return db[_0xac4a('0x3b')][_0xac4a('0x5d')]({'apiKeyIat':_0x225a46[_0xac4a('0x172')],'apiKeyNonce':_0x225a46[_0xac4a('0x173')]},{'where':{'id':_0x30eac4[_0xac4a('0x4f')]['id']}})[_0xac4a('0x36')](function(){return _0xda9734['status'](0xc8)[_0xac4a('0x21')]({'api_key':_0x225a46[_0xac4a('0x16e')]});});})['catch'](handleError(_0xda9734,0x193));}else{return _0xda9734[_0xac4a('0x1f')](0x191)[_0xac4a('0x21')]({'message':_0xac4a('0x16f')});}};exports['removeApiKey']=function(_0x8e5c45,_0x3dca47){if(!_[_0xac4a('0x68')](_0x8e5c45[_0xac4a('0x2b')]['id'])&&(_0x8e5c45[_0xac4a('0x2b')][_0xac4a('0x29')]==_0xac4a('0x2a')||_0x8e5c45['user'][_0xac4a('0x29')]==_0xac4a('0x2b'))){return db[_0xac4a('0x3b')][_0xac4a('0x33')]({'where':{'id':_0x8e5c45['params']['id']}})[_0xac4a('0x36')](handleEntityNotFound(_0x3dca47,null))[_0xac4a('0x36')](function(_0x124e53){if(_0x124e53&&_0x124e53['apiKeyNonce']&&_0x124e53[_0xac4a('0x174')])return _0x124e53;else throw{'message':_0xac4a('0x175')};})[_0xac4a('0x36')](function(_0x507470){return db['User'][_0xac4a('0x5d')]({'apiKeyNonce':null,'apiKeyIat':null},{'where':{'id':_0x8e5c45[_0xac4a('0x4f')]['id']}});})[_0xac4a('0x36')](respondWithStatusCode(_0x3dca47,0xc8))[_0xac4a('0x1e')](handleError(_0x3dca47,0x193));}else{return _0x3dca47[_0xac4a('0x1f')](0x191)[_0xac4a('0x21')]({'message':_0xac4a('0x16f')});}};exports[_0xac4a('0x176')]=function(_0xfa50d6,_0xd6b9cc){var _0x2364f7=_0xfa50d6[_0xac4a('0x2b')]['get']({'plain':!![]});if(!_0x2364f7){return _0xd6b9cc['status'](0x191)[_0xac4a('0x39')](_0xac4a('0x177'));}else{return _0xd6b9cc[_0xac4a('0x1f')](0xc8)['json'](_0x2364f7);}};exports['getPresence']=function(_0x35dfd0,_0x57bba0){var _0x13b8a9={'offset':0x0},_0x1088c0={'count':0x0,'rows':[]};Promise[_0xac4a('0x178')]()['then'](function(){if(!_0x35dfd0[_0xac4a('0x52')][_0xac4a('0x2e')]&&!_0x35dfd0[_0xac4a('0x52')]['teams']&&!_0x35dfd0['query'][_0xac4a('0x179')])return[];return Promise[_0xac4a('0x178')]()[_0xac4a('0x36')](function(){var _0xc04c3b=[];if(!_[_0xac4a('0x17a')](_0x35dfd0[_0xac4a('0x52')]['teams'])){_0xc04c3b['push'](db[_0xac4a('0x10b')][_0xac4a('0x45')]({'attributes':['id','name'],'where':{'id':_0x35dfd0[_0xac4a('0x52')][_0xac4a('0x17b')]}}));}if(!_[_0xac4a('0x17a')](_0x35dfd0[_0xac4a('0x52')]['queues'])){_0xc04c3b['push'](db[_0xac4a('0xa9')][_0xac4a('0x45')]({'attributes':['id','name'],'type':'inbound','where':{'id':_0x35dfd0[_0xac4a('0x52')]['queues']}}));}return Promise[_0xac4a('0x5c')](_0xc04c3b);})[_0xac4a('0x36')](function(_0x10ebf3){var _0x5ec64c=_[_0xac4a('0x117')](_0x10ebf3)[_0xac4a('0x30')](function(_0x30c6f7){return _0x30c6f7[_0xac4a('0x125')]({'attributes':['id',_0xac4a('0x34'),_0xac4a('0x63'),_0xac4a('0x9c')],'raw':!![]});});return Promise[_0xac4a('0x5c')](_0x5ec64c);})['then'](function(_0x36e82d){var _0x2675b0=_[_0xac4a('0x117')](_0x36e82d);if(!_0x35dfd0[_0xac4a('0x52')][_0xac4a('0x2e')])return _0x2675b0;if(_[_0xac4a('0x17a')](_0x2675b0)){return db[_0xac4a('0x3b')]['findAll']({'attributes':['id','name',_0xac4a('0x63'),'online'],'where':{'role':_0xac4a('0x2c'),'$or':[db[_0xac4a('0x6a')][_0xac4a('0x41')](db[_0xac4a('0x6a')]['fn']('lower',db[_0xac4a('0x6a')][_0xac4a('0x17c')](_0xac4a('0x34'))),{'$like':'%'+_0x35dfd0[_0xac4a('0x52')][_0xac4a('0x2e')][_0xac4a('0xa4')]()+'%'}),{'internal':{'$like':'%'+_0x35dfd0[_0xac4a('0x52')][_0xac4a('0x2e')]+'%'}}]},'raw':!![]});}else{return _(_0x2675b0)['flatten']()[_0xac4a('0x2e')](function(_0x55f102){return _0x55f102['name']['toLowerCase']()[_0xac4a('0x32')](_0x35dfd0[_0xac4a('0x52')][_0xac4a('0x2e')]['toLowerCase']())||_0x55f102['internal'][_0xac4a('0x17d')]()[_0xac4a('0x32')](_0x35dfd0[_0xac4a('0x52')]['filter']);})[_0xac4a('0x31')]();}})[_0xac4a('0x36')](function(_0x202afd){var _0x491a2f=_0xac4a('0x34');var _0x10f7bf='asc';if(_0x35dfd0['query'][_0xac4a('0xcc')]){var _0x10f7bf=_0x35dfd0['query'][_0xac4a('0xcc')][0x0]==='-'?_0xac4a('0x17e'):'asc';var _0x491a2f=_0x10f7bf==='asc'?_0x35dfd0[_0xac4a('0x52')]['sort']:_0x35dfd0[_0xac4a('0x52')][_0xac4a('0xcc')][_0xac4a('0x17f')](0x1);}return _(_0x202afd)[_0xac4a('0x180')]('id')[_0xac4a('0x181')]([function(_0x4b109c){return _0x491a2f==='name'?_0x4b109c[_0x491a2f]['toLowerCase']():_0x4b109c[_0x491a2f];}],[_0x10f7bf])['map'](function(_0x19dde9){return _[_0xac4a('0xcd')](_0x19dde9,['id',_0xac4a('0x34'),'internal','online']);})[_0xac4a('0x31')]();})[_0xac4a('0x36')](function(_0x37721b){return client[_0xac4a('0x14')]('Agents',_0x35dfd0)[_0xac4a('0x36')](function(_0x1c77f2){if(_0x1c77f2[_0xac4a('0x1b')])throw new Error(_0xac4a('0x182'));var _0x1bd963=_0x1c77f2[_0xac4a('0x183')];var _0x12b847=jayson['client']['http']({'port':0x232c});return _0x12b847[_0xac4a('0x14')](_0xac4a('0x87'),_0x35dfd0)[_0xac4a('0x36')](function(_0x5605ac){if(_0x5605ac[_0xac4a('0x1b')])throw new Error('Unable\x20to\x20retrieve\x20RPC\x20agents\x20(Routing)');var _0x206817=_0x5605ac[_0xac4a('0x183')];return _[_0xac4a('0x59')]({},_0x206817,_0x1bd963);});})[_0xac4a('0x36')](function(_0x461cf8){return _[_0xac4a('0x30')](_0x37721b,function(_0x21b463){var _0xe01d23=_[_0xac4a('0x33')](_0x461cf8[_0xac4a('0x46')],['id',_0x21b463['id']]);if(!_0xe01d23||!_0x21b463[_0xac4a('0x9c')]){_0x21b463[_0xac4a('0x1f')]=_0xac4a('0x184');}else if(_0xe01d23['voicePause']){_0x21b463[_0xac4a('0x1f')]=_0xac4a('0x185');}else{_0x21b463[_0xac4a('0x1f')]=_['includes'](['idle',_0xac4a('0x186'),_0xac4a('0x187'),_0xac4a('0x188'),null,undefined],_0xe01d23[_0xac4a('0x189')])?_0xac4a('0x9c'):_0xac4a('0x18a');}return _0x21b463;});});});})[_0xac4a('0x36')](function(_0xc6382f){if(!_0x35dfd0[_0xac4a('0x52')][_0xac4a('0xcf')](_0xac4a('0xd4'))){_0x13b8a9['limit']=qs[_0xac4a('0x24')](_0x35dfd0[_0xac4a('0x52')]['limit']||0xa);_0x13b8a9[_0xac4a('0x22')]=qs['offset'](_0x35dfd0[_0xac4a('0x52')][_0xac4a('0x22')]);}_0x1088c0[_0xac4a('0x25')]=_0xc6382f[_0xac4a('0x57')];_0x1088c0[_0xac4a('0x46')]=_0x13b8a9[_0xac4a('0x24')]?_0xc6382f[_0xac4a('0x18b')](_0x13b8a9[_0xac4a('0x22')],_0x13b8a9[_0xac4a('0x22')]+_0x13b8a9[_0xac4a('0x24')]):_0xc6382f;return _0x1088c0;})[_0xac4a('0x36')](respondWithFilteredResult(_0x57bba0,_0x13b8a9))[_0xac4a('0x1e')](handleError(_0x57bba0,null));};function get_open_tabs(_0xbd5b13,_0x5db1da){var _0xd7003=_0xbd5b13[_0xac4a('0x18c')](0x0)['toUpperCase']()+_0xbd5b13[_0xac4a('0x18b')](0x1);var _0x2b1926={'type':db[_0xac4a('0x8c')][_0xac4a('0x6c')]['SELECT'],'raw':!![]};return new BPromise(function(_0x262c5d,_0x27d848){var _0x573aae=squel['select']()[_0xac4a('0x18d')](_0xac4a('0x18e')+_0xd7003+_0xac4a('0x18f'),'id')[_0xac4a('0x18d')]('ui.createdAt')[_0xac4a('0x6e')]('user_has_'+_0xbd5b13+'_interactions','ui')[_0xac4a('0x41')]('ui.UserId\x20=\x20?',_0x5db1da['id']);return db[_0xac4a('0x6a')]['query'](_0x573aae[_0xac4a('0x17d')](),_0x2b1926)[_0xac4a('0x36')](function(_0x24b44f){_0x5db1da[_0xd7003+_0xac4a('0x190')]=_0x24b44f;_0x262c5d(_0x24b44f);})[_0xac4a('0x1e')](function(_0x2a5286){_0x27d848(_0x2a5286);});});};
\ No newline at end of file
+var _0x4af8=['$notILike','$contains','firstName','lastName','Contact','VoiceQueue','getApiKey','retrieveApiKey','token','No\x20API\x20access\x20key\x20found!','You\x20don\x27t\x20have\x20sufficient\x20privileges\x20to\x20access\x20this\x20resource.','generateApiKey','iat','nonce','apiKeyIat','API\x20key\x20not\x20available','whoami','Unable\x20to\x20retrieve\x20the\x20current\x20user','queues','teams','lower','toString','asc','substring','uniqBy','orderBy','request','Unable\x20to\x20retrieve\x20RPC\x20agents\x20(AMI)','offline','idle','unavailable','ringing','voiceStatus','slice','charAt','toUpperCase','field','ui.','InteractionId','ui.createdAt','user_has_','OpenTabs','lodash','squel','jayson/promise','ioredis','../../components/parsers/qs','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','socket.io-emitter','register','redis','client','http','then','info','User,\x20%s,\x20%s','debug','request\x20sent','stringify','error','code','message','result','catch','sendStatus','end','json','offset','undefined','limit','count','status','Content-Range','update','destroy','get','role','admin','Users','user','agent','Telephones','filter','map','value','includes','find','name','UserProfileResource','send','index','User','fieldName','type','password','getOptions','where','query','include','attributes','push','findAll','rows','openTabs','true','chat','dataValues','sms','fax','mail','whatsapp','all','show','params','model','differenceBy','keys','rawAttributes','filters','intersection','fields','merge','options','body','describe','addContacts','ids','Setting','findById','securePassword','max','internal','isNil','min_internal','sequelize','SELECT','length','from','voicemail','mailbox','fullname','email','permissions','102','103','113','110','105','106','107','108','100','114','create','Unauthorized.\x20You\x20must\x20be\x20an\x20administrator\x20in\x20order\x20to\x20create\x20an\x20user','Unauthorized.\x20You\x20must\x20be\x20an\x20administrator\x20in\x20order\x20to\x20create\x20another\x20administrator','checkUserLimits','settingsEnabled','userProfileId','VoiceMail','UserProfileSection','Agents','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','Unauthorized','some','isEmpty','telephone','changePassword','oldPassword','newPassword','Sequelize','ValidationError','Invalid\x20body\x20format.\x20Use\x20oldPassword\x20and\x20newPassword','authenticate','Wrong\x20credentials','New\x20password\x20must\x20be\x20different\x20from\x20old\x20password','Invalid\x20body\x20format.\x20Use\x20newPassword','findOne','enforcePasswordHistory','passwordHistoryLimit','validatePasswordPattern','validatePasswordHistory','previousPasswords','addQueues','online','loginInPause','voicePause','interface','isValidChannel','Unknown\x20channel','capitalize','toLowerCase','QueueId','emit','voice','format','SIP/%s','UserVoiceQueueRt','upsert','channel','remove','Queues','addAvatar','userpic','file','join','server/files/images/logos/default_profile.png','download','existsSync','root','server/files/images/','getOpenTabs','openchannel','ChatOpenTabs','CHAT','createdAt','FaxOpenTabs','OpenchannelOpenTabs','OPENCHANNEL','MailOpenTabs','SmsOpenTabs','WhatsappOpenTabs','WHATSAPP','CmContact','sort','pick','getContacts','hasOwnProperty','includeAll','CmList','List','color','tag','nolimit','getQueues','Queue','order','Unknown\x20role','getVoiceQueuesRt','getGroups','ChatGroup','getRecordings','VoiceRecording','getScreenRecordings','ScreenRecording','getChatInteractions','ChatInteraction','getOpenchannelInteractions','OpenchannelInteraction','getMailInteractions','MailInteraction','SmsInteraction','getSmsInteractions','getFaxInteractions','FaxInteraction','getWhatsappInteractions','WhatsappInteraction','phone','LOCAL/%s@from-sip/n','intrf','user:%s','user:forcelogout','headers','x-forwarded-for','socket','remoteAddress','getVoiceQueues','UserVoiceQueue.penalty','each','MemberReport','forEach','YYYY-MM-DD\x20HH:mm:ss','LOGIN','device','PAUSE','bulkCreate','LOGININPAUSE','isMiddleware','resolve','logout','pause','QueuePause','updateAttributes','getChannels','DEFAULT\x20PAUSE','unpause','mailPause','chatPause','smsPause','pauseType','lastPauseAt','manual','set','%s%s','getTeams','addTeams','omit','Team','setDataValue','Voice','getChatQueues','Chat','Mail','getSmsQueues','getFaxQueues','Fax','getOpenchannelQueues','Openchannel','transaction','addAgent','getDataValue','Queue:save','Sms','getWhatsappQueues','Whatsapp','flatten','removeAgent','getLists','getAgents','addChatInteractions','spread','user_has_chat_interactions:save','removeChatInteractions','isArray','user_has_chat_interactions:remove','addMailInteractions','user_has_mail_interactions:save','removeMailInteractions','user_has_mail_interactions:remove','addFaxInteractions','user_has_fax_interactions:save','removeFaxInteractions','user_has_fax_interactions:remove','addSmsInteractions','removeSmsInteractions','user_has_sms_interactions:remove','addOpenchannelInteractions','user_has_openchannel_interactions:save','removeOpenchannelInteractions','user_has_openchannel_interactions:remove','addWhatsappInteractions','user_has_whatsapp_interactions:save','getVoicePrefixes','getFaxAccounts','addFaxAccounts','removeFaxAccounts','getMailAccounts','MailAccount','addMailAccounts','removeMailAccounts','getOpenchannelAccounts','removeOpenchannelAccounts','getSmsAccounts','SmsAccount','addSmsAccounts','removeSmsAccounts','getChatWebsites','ChatWebsite','addChatWebsites','removeChatWebsites','getWhatsappAccounts','WhatsappAccount','addWhatsappAccounts','removeWhatsappAccounts','SquareProject','getSquareProjects','addSquareProjects','removeSquareProjects','getScheduledCalls','CmHopper','concat','$or','$gt','$gte','$lte','$ne','$not','$between','$notBetween','$in','$notIn','$like','$notLike'];(function(_0x1df34d,_0x245995){var _0x2d7dbe=function(_0x10b14a){while(--_0x10b14a){_0x1df34d['push'](_0x1df34d['shift']());}};_0x2d7dbe(++_0x245995);}(_0x4af8,0x1ad));var _0x84af=function(_0x397e5f,_0x454c8f){_0x397e5f=_0x397e5f-0x0;var _0x5302b8=_0x4af8[_0x397e5f];return _0x5302b8;};'use strict';var moment=require('moment');var BPromise=require('bluebird');var util=require('util');var path=require('path');var fs=require('fs');var _=require(_0x84af('0x0'));var squel=require(_0x84af('0x1'));var jayson=require(_0x84af('0x2'));var Redis=require(_0x84af('0x3'));var authService=require('../../components/auth/service');var qs=require(_0x84af('0x4'));var logger=require(_0x84af('0x5'))('api');var utils=require(_0x84af('0x6'));var config=require(_0x84af('0x7'));var licenseUtil=require('../../config/license/util');var db=require(_0x84af('0x8'))['db'];var socket=require(_0x84af('0x9'))(new Redis(config['redis']));require('./user.socket')[_0x84af('0xa')](socket);config[_0x84af('0xb')]=_['defaults'](config[_0x84af('0xb')],{'host':'localhost','port':0x18eb});var client=jayson[_0x84af('0xc')][_0x84af('0xd')]({'port':0x232a});var values;function respondWithRpcPromise(_0x34aa9e,_0x55ac29,_0x4b3925,_0x31f283){return new BPromise(function(_0x4df0e5,_0x2a0d60){var _0xe60937=_0x31f283||client;return _0xe60937['request'](_0x34aa9e,_0x4b3925)[_0x84af('0xe')](function(_0x499c7e){logger[_0x84af('0xf')](_0x84af('0x10'),_0x55ac29,'request\x20sent');logger[_0x84af('0x11')]('User,\x20%s,\x20%s,\x20%s',_0x55ac29,_0x84af('0x12'),JSON[_0x84af('0x13')](_0x499c7e));if(_0x499c7e['error']){if(_0x499c7e[_0x84af('0x14')][_0x84af('0x15')]===0x1f4){logger['error'](_0x84af('0x10'),_0x55ac29,_0x499c7e['error'][_0x84af('0x16')]);return _0x2a0d60(_0x499c7e[_0x84af('0x14')]['message']);}logger['error'](_0x84af('0x10'),_0x55ac29,_0x499c7e[_0x84af('0x14')][_0x84af('0x16')]);return _0x4df0e5(_0x499c7e['error']['message']);}else{logger[_0x84af('0xf')](_0x84af('0x10'),_0x55ac29,_0x84af('0x12'));_0x4df0e5(_0x499c7e[_0x84af('0x17')][_0x84af('0x16')]);}})[_0x84af('0x18')](function(_0x44e19b){logger[_0x84af('0x14')](_0x84af('0x10'),_0x55ac29,_0x44e19b);_0x2a0d60(_0x44e19b);});});}function respondWithStatusCode(_0x52b819,_0x3daf8f){_0x3daf8f=_0x3daf8f||0xcc;return function(_0x12d0a3){if(_0x12d0a3){return _0x52b819[_0x84af('0x19')](_0x3daf8f);}return _0x52b819['status'](_0x3daf8f)[_0x84af('0x1a')]();};}function respondWithResult(_0xaea1ea,_0x14f54d){_0x14f54d=_0x14f54d||0xc8;return function(_0x5af3ce){if(_0x5af3ce){return _0xaea1ea['status'](_0x14f54d)[_0x84af('0x1b')](_0x5af3ce);}};}function respondWithFilteredResult(_0x2a73ff,_0xf72093){return function(_0x24aa07){if(_0x24aa07){var _0x21823e=typeof _0xf72093[_0x84af('0x1c')]===_0x84af('0x1d')&&typeof _0xf72093[_0x84af('0x1e')]===_0x84af('0x1d');var _0x33ec65=_0x24aa07[_0x84af('0x1f')];var _0x52ec78=_0x21823e?0x0:_0xf72093[_0x84af('0x1c')];var _0x418b7c=_0x21823e?_0x24aa07[_0x84af('0x1f')]:_0xf72093[_0x84af('0x1c')]+_0xf72093[_0x84af('0x1e')];var _0x881a95;if(_0x418b7c>=_0x33ec65){_0x418b7c=_0x33ec65;_0x881a95=0xc8;}else{_0x881a95=0xce;}_0x2a73ff[_0x84af('0x20')](_0x881a95);return _0x2a73ff['set'](_0x84af('0x21'),_0x52ec78+'-'+_0x418b7c+'/'+_0x33ec65)[_0x84af('0x1b')](_0x24aa07);}return null;};}function saveUpdates(_0x59417e){return function(_0x3d92d3){if(_0x3d92d3){return _0x3d92d3[_0x84af('0x22')](_0x59417e)[_0x84af('0xe')](function(_0x42fb39){return _0x42fb39;});}return null;};}function removeEntity(_0x5e124a){return function(_0x4fcf97){if(_0x4fcf97){return _0x4fcf97[_0x84af('0x23')]()[_0x84af('0xe')](function(){var _0x238d03=_0x4fcf97[_0x84af('0x24')]({'plain':!![]});if(_0x238d03[_0x84af('0x25')]===_0x84af('0x26'))return;var _0x47bdda=[{'name':_0x84af('0x27'),'value':_0x84af('0x28'),'ignore':!![]},{'name':'Agents','value':_0x84af('0x29'),'ignore':![]},{'name':_0x84af('0x2a'),'value':'telephone','ignore':![]}];var _0x4e5948=_(_0x47bdda)[_0x84af('0x2b')]('ignore')[_0x84af('0x2c')](_0x84af('0x2d'))['value']();if(_[_0x84af('0x2e')](_0x4e5948,_0x238d03[_0x84af('0x25')])){return;}var _0x3d10d0=_[_0x84af('0x2f')](_0x47bdda,[_0x84af('0x2d'),_0x238d03[_0x84af('0x25')]])[_0x84af('0x30')];return db[_0x84af('0x31')][_0x84af('0x23')]({'where':{'type':_0x3d10d0,'resourceId':_0x238d03['id']}})[_0x84af('0xe')](function(){return _0x4fcf97;});})['then'](function(){_0x5e124a[_0x84af('0x20')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4939d8){return function(_0xea9e91){if(!_0xea9e91){_0x4939d8['sendStatus'](0x194);}return _0xea9e91;};}function handleError(_0x5109bc,_0xc8c77c){_0xc8c77c=_0xc8c77c||0x1f4;return function(_0x284826){logger[_0x84af('0x14')](_0x284826['stack']);if(_0x284826[_0x84af('0x30')]){delete _0x284826[_0x84af('0x30')];}_0x5109bc['status'](_0xc8c77c)[_0x84af('0x32')](_0x284826);};}exports[_0x84af('0x33')]=function(_0x4b7dab,_0x4f88a7){var _0x43c7d2={},_0x48b1f5={'count':0x0,'rows':[]};var _0x2dca64=_(db[_0x84af('0x34')]['rawAttributes'])['map'](function(_0x34e43e){return{'name':_0x34e43e[_0x84af('0x35')],'type':_0x34e43e[_0x84af('0x36')]['key']};})[_0x84af('0x2b')](function(_0x514b2d){return!_['includes']([_0x84af('0x37'),'salt'],_0x514b2d[_0x84af('0x30')]);})[_0x84af('0x2d')]();_0x43c7d2=qs[_0x84af('0x38')](_0x2dca64,_0x4b7dab);var _0x50ed9b={'where':_0x43c7d2[_0x84af('0x39')]};return db[_0x84af('0x34')]['count'](_0x50ed9b)[_0x84af('0xe')](function(_0x355150){_0x48b1f5[_0x84af('0x1f')]=_0x355150;if(_0x4b7dab[_0x84af('0x3a')]['includeAll']){_0x43c7d2[_0x84af('0x3b')]=[{'all':!![]}];}if(!_[_0x84af('0x2e')](_0x43c7d2['attributes'],'id')){_0x43c7d2[_0x84af('0x3c')][_0x84af('0x3d')]('id');}return db[_0x84af('0x34')][_0x84af('0x3e')](_0x43c7d2);})['then'](function(_0x351da0){_0x48b1f5[_0x84af('0x3f')]=_0x351da0;if(_0x4b7dab[_0x84af('0x3a')][_0x84af('0x40')]===_0x84af('0x41')){var _0x23daf7=[];for(var _0x5a87f0=0x0;_0x5a87f0<_0x48b1f5[_0x84af('0x3f')]['length'];_0x5a87f0++){_0x23daf7[_0x84af('0x3d')](get_open_tabs(_0x84af('0x42'),_0x48b1f5['rows'][_0x5a87f0][_0x84af('0x43')]));_0x23daf7[_0x84af('0x3d')](get_open_tabs(_0x84af('0x44'),_0x48b1f5[_0x84af('0x3f')][_0x5a87f0][_0x84af('0x43')]));_0x23daf7[_0x84af('0x3d')](get_open_tabs(_0x84af('0x45'),_0x48b1f5[_0x84af('0x3f')][_0x5a87f0][_0x84af('0x43')]));_0x23daf7[_0x84af('0x3d')](get_open_tabs(_0x84af('0x46'),_0x48b1f5['rows'][_0x5a87f0]['dataValues']));_0x23daf7[_0x84af('0x3d')](get_open_tabs('openchannel',_0x48b1f5['rows'][_0x5a87f0]['dataValues']));_0x23daf7[_0x84af('0x3d')](get_open_tabs(_0x84af('0x47'),_0x48b1f5[_0x84af('0x3f')][_0x5a87f0][_0x84af('0x43')]));}return BPromise[_0x84af('0x48')](_0x23daf7)[_0x84af('0xe')](function(_0x18aa31){return _0x48b1f5;});}else{return _0x48b1f5;}})['then'](respondWithFilteredResult(_0x4f88a7,_0x43c7d2))[_0x84af('0x18')](handleError(_0x4f88a7,null));};exports[_0x84af('0x49')]=function(_0x4adcb7,_0xf83cec){var _0x2a0725={'raw':![],'where':{'id':_0x4adcb7[_0x84af('0x4a')]['id']}},_0x58d824={};_0x58d824[_0x84af('0x4b')]=_[_0x84af('0x4c')](_[_0x84af('0x4d')](db[_0x84af('0x34')][_0x84af('0x4e')]),[_0x84af('0x37'),'salt']);_0x58d824[_0x84af('0x3a')]=_['keys'](_0x4adcb7[_0x84af('0x3a')]);_0x58d824[_0x84af('0x4f')]=_[_0x84af('0x50')](_0x58d824[_0x84af('0x4b')],_0x58d824[_0x84af('0x3a')]);_0x2a0725[_0x84af('0x3c')]=_['intersection'](_0x58d824[_0x84af('0x4b')],qs[_0x84af('0x51')](_0x4adcb7[_0x84af('0x3a')][_0x84af('0x51')]));_0x2a0725[_0x84af('0x3c')]=_0x2a0725[_0x84af('0x3c')]['length']?_0x2a0725[_0x84af('0x3c')]:_0x58d824['model'];if(_0x4adcb7[_0x84af('0x3a')]['includeAll']){_0x2a0725['include']=[{'all':!![]}];}_0x2a0725=_[_0x84af('0x52')]({},_0x2a0725,_0x4adcb7[_0x84af('0x53')]);if(!_[_0x84af('0x2e')](_0x2a0725[_0x84af('0x3c')],'id')){_0x2a0725[_0x84af('0x3c')][_0x84af('0x3d')]('id');}return db[_0x84af('0x34')][_0x84af('0x2f')](_0x2a0725)[_0x84af('0xe')](handleEntityNotFound(_0xf83cec,null))[_0x84af('0xe')](function(_0x3bf724){var _0x41aad6=[];values=_0x3bf724;if(_0x4adcb7[_0x84af('0x3a')][_0x84af('0x40')]===_0x84af('0x41')){_0x41aad6[_0x84af('0x3d')](get_open_tabs(_0x84af('0x42'),_0x3bf724[_0x84af('0x43')]));_0x41aad6[_0x84af('0x3d')](get_open_tabs(_0x84af('0x44'),_0x3bf724[_0x84af('0x43')]));_0x41aad6[_0x84af('0x3d')](get_open_tabs('openchannel',_0x3bf724[_0x84af('0x43')]));_0x41aad6[_0x84af('0x3d')](get_open_tabs('whatsapp',_0x3bf724[_0x84af('0x43')]));_0x41aad6['push'](get_open_tabs('fax',_0x3bf724[_0x84af('0x43')]));_0x41aad6[_0x84af('0x3d')](get_open_tabs('mail',_0x3bf724[_0x84af('0x43')]));return BPromise[_0x84af('0x48')](_0x41aad6);}else{return values;}})[_0x84af('0xe')](function(_0x26fd44){return values;})[_0x84af('0xe')](respondWithResult(_0xf83cec,null))[_0x84af('0x18')](handleError(_0xf83cec,null));};exports['update']=function(_0x1e4b4b,_0x273da1){if(_0x1e4b4b[_0x84af('0x54')]['id']){delete _0x1e4b4b[_0x84af('0x54')]['id'];}delete _0x1e4b4b[_0x84af('0x54')][_0x84af('0x25')];return db[_0x84af('0x34')]['find']({'where':{'id':_0x1e4b4b[_0x84af('0x4a')]['id']}})['then'](handleEntityNotFound(_0x273da1,null))[_0x84af('0xe')](saveUpdates(_0x1e4b4b['body'],null))[_0x84af('0xe')](respondWithResult(_0x273da1,null))[_0x84af('0x18')](handleError(_0x273da1,null));};exports['describe']=function(_0x5db63f,_0x3587d9){return db['User'][_0x84af('0x55')]()['then'](respondWithResult(_0x3587d9,null))['catch'](handleError(_0x3587d9,null));};exports['addContacts']=function(_0x4651db,_0x180f18){return db[_0x84af('0x34')][_0x84af('0x2f')]({'where':{'id':_0x4651db['params']['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x180f18,null))[_0x84af('0xe')](function(_0xf03b15){if(_0xf03b15){return _0xf03b15[_0x84af('0x56')](_0x4651db['body']['ids'],_['omit'](_0x4651db['body'],[_0x84af('0x57'),'id'])||{});}})['then'](respondWithResult(_0x180f18,null))[_0x84af('0x18')](handleError(_0x180f18,null));};function validateUser(_0x519803){return new BPromise(function(_0x2a43b8,_0x139c9f){if(_0x519803['internal'])return _0x2a43b8(_0x519803);return db[_0x84af('0x58')][_0x84af('0x59')](0x1)['then'](function(_0x2788cb){if(_0x2788cb[_0x84af('0x5a')])authService['validatePasswordPattern'](_0x519803[_0x84af('0x37')]);db[_0x84af('0x34')][_0x84af('0x5b')](_0x84af('0x5c'))[_0x84af('0xe')](function(_0x124abc){if(_[_0x84af('0x5d')](_0x124abc)){_0x519803['internal']=_0x2788cb[_0x84af('0x5e')]||0x1;return;}if(_[_0x84af('0x5d')](_0x2788cb['min_internal'])||_0x2788cb['min_internal']===_0x124abc){_0x519803[_0x84af('0x5c')]=_0x124abc+0x1;return;}if(_0x2788cb[_0x84af('0x5e')]>_0x124abc){_0x519803[_0x84af('0x5c')]=_0x2788cb[_0x84af('0x5e')];return;}return db[_0x84af('0x5f')][_0x84af('0x3a')]('select\x20(select\x20IFNULL(max(internal)+1,1)\x20from\x20users\x20where\x20internal\x20<\x20md.internal)\x20as\x20\x27from\x27,\x20md.internal\x20-\x201\x20as\x20\x27to\x27\x20from\x20users\x20md\x20where\x20md.internal\x20!=\x201\x20and\x20not\x20exists\x20(select\x201\x20from\x20users\x20md2\x20where\x20md2.internal\x20=\x20md.internal\x20-\x201)',{'type':db[_0x84af('0x5f')]['QueryTypes'][_0x84af('0x60')]})[_0x84af('0xe')](function(_0xec5628){if(_0xec5628&&_0xec5628[_0x84af('0x61')]){for(var _0x50825b=0x0,_0x9107d1=_0xec5628['length'];_0x50825b<_0x9107d1&&_[_0x84af('0x5d')](_0x519803[_0x84af('0x5c')]);_0x50825b++){if(_0x2788cb[_0x84af('0x5e')]<=_0xec5628[_0x50825b][_0x84af('0x62')]){_0x519803[_0x84af('0x5c')]=_0xec5628[_0x50825b][_0x84af('0x62')];}else if(_0x2788cb[_0x84af('0x5e')]>_0xec5628[_0x50825b]['from']&&_0x2788cb[_0x84af('0x5e')]<=_0xec5628[_0x50825b]['to']){_0x519803[_0x84af('0x5c')]=_0x2788cb['min_internal'];}}}if(_[_0x84af('0x5d')](_0x519803[_0x84af('0x5c')])){_0x519803[_0x84af('0x5c')]=_0x124abc+0x1;}return _0x2a43b8(_0x519803);});});})[_0x84af('0x18')](function(_0x25e3d7){_0x139c9f(_0x25e3d7);});});}function updateUser(_0xecacb5){return new BPromise(function(_0x173589,_0x4daa7b){try{if(_0xecacb5[_0x84af('0x63')]){_0xecacb5[_0x84af('0x64')]=_0xecacb5[_0x84af('0x5c')];_0xecacb5['VoiceMail']={'mailbox':_0xecacb5[_0x84af('0x5c')],'password':_0xecacb5[_0x84af('0x37')],'fullname':_0xecacb5[_0x84af('0x65')],'email':_0xecacb5[_0x84af('0x66')]};}if(_0xecacb5['role']===_0x84af('0x29')){if(!_0xecacb5['permissions'])_0xecacb5[_0x84af('0x67')]=['101',_0x84af('0x68'),_0x84af('0x69'),_0x84af('0x6a'),_0x84af('0x6b'),'104',_0x84af('0x6c'),_0x84af('0x6d'),_0x84af('0x6e'),_0x84af('0x6f'),'109',_0x84af('0x70'),'111',_0x84af('0x71'),'115'];}_0x173589(_0xecacb5);}catch(_0x27d3b9){_0x4daa7b(_0x27d3b9);}});}exports[_0x84af('0x72')]=function(_0x53368a,_0xad60f4){if(_0x53368a['user']['role']===_0x84af('0x29'))throw new Error('Unauthorized');if(_0x53368a['body'][_0x84af('0x25')]===_0x84af('0x28')&&_0x53368a[_0x84af('0x28')][_0x84af('0x25')]!==_0x84af('0x26')){throw new Error(_0x84af('0x73'));}if(_0x53368a['body'][_0x84af('0x25')]===_0x84af('0x26')&&_0x53368a[_0x84af('0x28')][_0x84af('0x25')]!==_0x84af('0x26')){throw new Error(_0x84af('0x74'));}return licenseUtil[_0x84af('0x75')]([_0x53368a['body']])['then'](function(){return validateUser(_0x53368a[_0x84af('0x54')]);})[_0x84af('0xe')](function(_0x552068){return updateUser(_0x552068)['then'](function(_0x3bb56c){if(_0x3bb56c[_0x84af('0x25')]===_0x84af('0x26')){_0x3bb56c[_0x84af('0x76')]=_0x53368a[_0x84af('0x28')]['settingsEnabled'];delete _0x3bb56c[_0x84af('0x77')];}return _0x3bb56c;});})[_0x84af('0xe')](function(_0x44505f){return db[_0x84af('0x34')][_0x84af('0x72')](_0x44505f,{'include':[{'model':db[_0x84af('0x78')],'as':'VoiceMail'}]});})[_0x84af('0xe')](function(_0x16f62e){if(_0x53368a[_0x84af('0x54')][_0x84af('0x25')]===_0x84af('0x28'))return _0x16f62e;if(_0x53368a[_0x84af('0x28')][_0x84af('0x25')]!==_0x84af('0x28'))return _0x16f62e;return db[_0x84af('0x79')][_0x84af('0x2f')]({'where':{'name':_0x16f62e[_0x84af('0x25')]===_0x84af('0x29')?_0x84af('0x7a'):_0x84af('0x2a'),'userProfileId':_0x53368a[_0x84af('0x28')][_0x84af('0x77')]},'raw':!![]})[_0x84af('0xe')](function(_0x1d5344){if(!_0x1d5344||_0x1d5344[_0x84af('0x7b')]!=0x0)return _0x16f62e;return db[_0x84af('0x31')][_0x84af('0x72')]({'name':_0x16f62e[_0x84af('0x30')],'resourceId':_0x16f62e['id'],'type':_0x1d5344[_0x84af('0x30')],'sectionId':_0x1d5344['id']},{})[_0x84af('0xe')](function(){return _0x16f62e;});})['catch'](function(_0x29add9){logger[_0x84af('0x14')](_0x84af('0x7c'),_0x29add9);throw _0x29add9;});})[_0x84af('0xe')](respondWithResult(_0xad60f4,0xc9))[_0x84af('0x18')](handleError(_0xad60f4,null));};exports['bulkCreate']=function(_0x48a8f5,_0x1675f3){var _0x1202a8=_0x48a8f5[_0x84af('0x54')];var _0x249cdc=[];if(_0x48a8f5[_0x84af('0x28')]['role']===_0x84af('0x29'))throw new Error(_0x84af('0x7d'));if(_[_0x84af('0x7e')](_0x1202a8,[_0x84af('0x25'),_0x84af('0x28')])&&_0x48a8f5[_0x84af('0x28')][_0x84af('0x25')]!==_0x84af('0x26')){throw new Error('Unauthorized.\x20You\x20must\x20be\x20an\x20administrator\x20in\x20order\x20to\x20create\x20an\x20user');}if(_[_0x84af('0x7e')](_0x1202a8,[_0x84af('0x25'),_0x84af('0x26')])&&_0x48a8f5[_0x84af('0x28')][_0x84af('0x25')]!==_0x84af('0x26')){throw new Error('Unauthorized.\x20You\x20must\x20be\x20an\x20administrator\x20in\x20order\x20to\x20create\x20an\x20administrator');}return licenseUtil['checkUserLimits'](_0x1202a8)[_0x84af('0xe')](function(){return validateUser(_0x1202a8[0x0]);})[_0x84af('0xe')](function(){for(var _0x39789c=0x1;_0x39789c<_0x1202a8[_0x84af('0x61')];_0x39789c++){var _0x1a62ff=_0x1202a8[_0x39789c-0x1][_0x84af('0x5c')];if(!_0x1202a8[_0x39789c][_0x84af('0x5c')])_0x1202a8[_0x39789c][_0x84af('0x5c')]=_0x1a62ff+0x1;_0x249cdc[_0x84af('0x3d')](validateUser(_0x1202a8[_0x39789c]));}return BPromise['all'](_0x249cdc);})[_0x84af('0xe')](function(){_0x249cdc=[];for(var _0xdb0d38=0x0;_0xdb0d38<_0x1202a8['length'];_0xdb0d38++){_0x249cdc[_0x84af('0x3d')](updateUser(_0x1202a8[_0xdb0d38]));}return BPromise[_0x84af('0x48')](_0x249cdc);})[_0x84af('0xe')](function(){return BPromise['each'](_0x1202a8,function(_0x13a4b7){return db[_0x84af('0x34')][_0x84af('0x72')](_0x13a4b7,{'include':[{'model':db[_0x84af('0x78')],'as':_0x84af('0x78')}]})[_0x84af('0xe')](function(_0x5d0781){_0x13a4b7['id']=_0x5d0781['id'];return _0x13a4b7;});});})['then'](function(_0xce6304){if(_0x48a8f5[_0x84af('0x54')][_0x84af('0x25')]===_0x84af('0x28'))return _0xce6304;if(_0x48a8f5[_0x84af('0x28')][_0x84af('0x25')]!=='user')return _0xce6304;var _0x3b947d=_[_0x84af('0x7e')](_0xce6304,function(_0x2e92be){return _0x2e92be[_0x84af('0x25')]==='agent'||_0x2e92be['role']==='telephone';});if(!_0x3b947d)return _0xce6304;return db[_0x84af('0x79')][_0x84af('0x3e')]({'where':{'name':{'$or':[_0x84af('0x7a'),_0x84af('0x2a')]},'userProfileId':_0x48a8f5[_0x84af('0x28')][_0x84af('0x77')]},'raw':!![]})[_0x84af('0xe')](function(_0x3c4fd0){if(_[_0x84af('0x7f')](_0x3c4fd0)||!_['some'](_0x3c4fd0,[_0x84af('0x7b'),0x0]))return _0xce6304;_0x249cdc=[];var _0x569b1c=_(_0x3c4fd0)['map'](function(_0x1a3043){if(_0x1a3043['autoAssociation']===0x1)return;return _0x1a3043[_0x84af('0x30')]===_0x84af('0x7a')?'agent':_0x84af('0x80');})['compact']()[_0x84af('0x2d')]();for(var _0x5303d=0x0;_0x5303d<_0xce6304[_0x84af('0x61')];_0x5303d++){if(!_[_0x84af('0x2e')](_0x569b1c,_0xce6304[_0x5303d]['role']))return;var _0x51ef30=_0xce6304[_0x5303d][_0x84af('0x25')]==='agent'?_0x84af('0x7a'):_0x84af('0x2a');_0x249cdc[_0x84af('0x3d')](db['UserProfileResource'][_0x84af('0x72')]({'name':_0xce6304[_0x5303d]['name'],'resourceId':_0xce6304[_0x5303d]['id'],'type':_0x51ef30,'sectionId':_['find'](_0x3c4fd0,[_0x84af('0x30'),_0x51ef30])['id']},{}));}return BPromise[_0x84af('0x48')](_0x249cdc);});})[_0x84af('0xe')](respondWithResult(_0x1675f3,0xc9))[_0x84af('0x18')](handleError(_0x1675f3,null));};exports[_0x84af('0x81')]=function(_0x25038e,_0xca68b){if(_0x25038e[_0x84af('0x54')]['id']){delete _0x25038e[_0x84af('0x54')]['id'];}return db[_0x84af('0x34')][_0x84af('0x2f')]({'where':{'id':_0x25038e[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](function(_0x24f837){if(!_0x24f837)return null;if(_0x24f837['id']===_0x25038e[_0x84af('0x28')]['id']){if(!_0x25038e['body'][_0x84af('0x82')]||!_0x25038e[_0x84af('0x54')][_0x84af('0x83')]){throw new db[(_0x84af('0x84'))][(_0x84af('0x85'))](_0x84af('0x86'));}if(!_0x24f837[_0x84af('0x87')](_0x25038e[_0x84af('0x54')][_0x84af('0x82')])){throw new db[(_0x84af('0x84'))]['ValidationError'](_0x84af('0x88'));}if(_0x25038e[_0x84af('0x54')][_0x84af('0x82')]===_0x25038e[_0x84af('0x54')][_0x84af('0x83')]){throw new db[(_0x84af('0x84'))][(_0x84af('0x85'))](_0x84af('0x89'));}}else if(_0x25038e[_0x84af('0x28')]['role']===_0x84af('0x26')){if(!_0x25038e[_0x84af('0x54')][_0x84af('0x83')]){throw new db[(_0x84af('0x84'))][(_0x84af('0x85'))](_0x84af('0x8a'));}}else if(_0x25038e[_0x84af('0x28')][_0x84af('0x25')]==='user'){if(!_0x25038e[_0x84af('0x54')]['newPassword']){throw new db[(_0x84af('0x84'))]['ValidationError'](_0x84af('0x8a'));}if(_0x24f837[_0x84af('0x25')]!==_0x84af('0x29')){throw new db['Sequelize']['ValidationError'](_0x84af('0x7d'));}}else{throw new db[(_0x84af('0x84'))][(_0x84af('0x85'))](_0x84af('0x7d'));}return _0x24f837;})[_0x84af('0xe')](handleEntityNotFound(_0xca68b,null))[_0x84af('0xe')](function(_0x30d49a){return db[_0x84af('0x58')][_0x84af('0x8b')]({'attributes':['id','securePassword',_0x84af('0x8c'),_0x84af('0x8d')]})[_0x84af('0xe')](function(_0x229587){if(_0x229587[_0x84af('0x5a')])authService[_0x84af('0x8e')](_0x25038e[_0x84af('0x54')][_0x84af('0x83')]);if(!_0x229587[_0x84af('0x8c')]||!_0x30d49a['previousPasswords'])return _0x30d49a;authService[_0x84af('0x8f')](_0x25038e['body'][_0x84af('0x83')],_0x30d49a[_0x84af('0x90')],_0x229587[_0x84af('0x8d')]);return _0x30d49a;})[_0x84af('0xe')](saveUpdates({'password':_0x25038e[_0x84af('0x54')][_0x84af('0x83')],'passwordResetAt':_0x25038e[_0x84af('0x28')]['id']==_0x25038e[_0x84af('0x4a')]['id']?moment():null,'previousPasswords':authService['updatePasswordsHistory'](_0x25038e[_0x84af('0x54')][_0x84af('0x83')],_0x30d49a[_0x84af('0x90')])},null));})[_0x84af('0xe')](respondWithResult(_0xca68b,null))[_0x84af('0x18')](handleError(_0xca68b,null));};exports[_0x84af('0x91')]=function(_0x187d54,_0x576589){var _0x1a3f7e=_0x187d54[_0x84af('0x54')]['channel'];return db['User'][_0x84af('0x2f')]({'where':{'id':_0x187d54[_0x84af('0x4a')]['id']},'attributes':['id',_0x84af('0x30'),'role',_0x84af('0x92'),_0x84af('0x93'),_0x84af('0x94'),_0x84af('0x95')]})[_0x84af('0xe')](handleEntityNotFound(_0x576589,null))[_0x84af('0xe')](function(_0x10a83d){if(_0x10a83d){if(!utils[_0x84af('0x96')](_0x1a3f7e)){throw new db[(_0x84af('0x84'))][(_0x84af('0x85'))](_0x84af('0x97'));}return _0x10a83d['add'+_[_0x84af('0x98')](_0x1a3f7e[_0x84af('0x99')]())+'Queues'](_0x187d54[_0x84af('0x54')][_0x84af('0x57')],{'penalty':_0x187d54[_0x84af('0x54')]['penalty']||0x0})['spread'](function(_0x27e09f){for(var _0x4f1f77=0x0;_0x4f1f77<_0x187d54[_0x84af('0x54')][_0x84af('0x57')][_0x84af('0x61')];_0x4f1f77+=0x1){var _0x2db283={'UserId':Number(_0x187d54[_0x84af('0x4a')]['id'])};_0x2db283[_[_0x84af('0x98')](_0x1a3f7e[_0x84af('0x99')]())+_0x84af('0x9a')]=Number(_0x187d54[_0x84af('0x54')][_0x84af('0x57')][_0x4f1f77]);socket[_0x84af('0x9b')](_0x84af('0x28')+_[_0x84af('0x98')](_0x1a3f7e[_0x84af('0x99')]())+'Queue:save',_0x2db283);}return _0x27e09f;})[_0x84af('0xe')](function(){if(_0x1a3f7e===_0x84af('0x9c')){return db['VoiceQueue'][_0x84af('0x3e')]({'where':{'id':_0x187d54[_0x84af('0x54')]['ids']||[]},'raw':!![],'attributes':['id',_0x84af('0x30')]});}})['then'](function(_0x43a0fc){var _0x20ca7c=_0x10a83d['get']({'plain':!![]});var _0x12903c=[];if(_0x1a3f7e===_0x84af('0x9c')&&_0x20ca7c[_0x84af('0x25')]===_0x84af('0x29')&&_0x20ca7c[_0x84af('0x92')]){for(var _0x575746=0x0;_0x575746<_0x43a0fc['length'];_0x575746+=0x1){_0x12903c[_0x84af('0x3d')]({'membername':_0x20ca7c[_0x84af('0x30')],'UserId':_0x20ca7c['id'],'queue_name':_0x43a0fc[_0x575746][_0x84af('0x30')],'VoiceQueueId':_0x43a0fc[_0x575746]['id'],'interface':_[_0x84af('0x5d')](_0x20ca7c[_0x84af('0x95')])?util[_0x84af('0x9d')](_0x84af('0x9e'),_0x20ca7c['name']):_0x20ca7c[_0x84af('0x95')],'paused':_0x20ca7c['voicePause']||![],'penalty':_0x187d54[_0x84af('0x54')]['penalty']||0x0});}return BPromise['each'](_0x12903c,function(_0x28e5da){return db[_0x84af('0x9f')][_0x84af('0xa0')](_0x28e5da);});}return _0x10a83d;});}})[_0x84af('0xe')](respondWithStatusCode(_0x576589,null))[_0x84af('0x18')](handleError(_0x576589,null));};exports['removeQueues']=function(_0x11d60b,_0x73596){var _0x3cdcfb;return db[_0x84af('0x34')][_0x84af('0x2f')]({'where':{'id':_0x11d60b[_0x84af('0x4a')]['id']},'attributes':['id','name',_0x84af('0x25')]})[_0x84af('0xe')](handleEntityNotFound(_0x73596,null))[_0x84af('0xe')](function(_0x350c47){if(_0x350c47){_0x3cdcfb=_0x350c47;if(!_0x11d60b[_0x84af('0x3a')][_0x84af('0xa1')]||!utils[_0x84af('0x96')](_0x11d60b[_0x84af('0x3a')][_0x84af('0xa1')])){throw new db[(_0x84af('0x84'))][(_0x84af('0x85'))](_0x84af('0x97'));}return _0x350c47[_0x84af('0xa2')+_[_0x84af('0x98')](_0x11d60b[_0x84af('0x3a')][_0x84af('0xa1')][_0x84af('0x99')]())+_0x84af('0xa3')](_0x11d60b[_0x84af('0x3a')][_0x84af('0x57')]);}})[_0x84af('0xe')](function(_0x16c294){if(_['isArray'](_0x11d60b[_0x84af('0x3a')]['ids'])){for(var _0x3c21eb=0x0;_0x3c21eb<_0x11d60b[_0x84af('0x3a')][_0x84af('0x57')][_0x84af('0x61')];_0x3c21eb+=0x1){var _0x2dfd87={'UserId':Number(_0x11d60b['params']['id'])};_0x2dfd87[_[_0x84af('0x98')](_0x11d60b['query'][_0x84af('0xa1')][_0x84af('0x99')]())+'QueueId']=Number(_0x11d60b[_0x84af('0x3a')]['ids'][_0x3c21eb]);socket[_0x84af('0x9b')](_0x84af('0x28')+_[_0x84af('0x98')](_0x11d60b[_0x84af('0x3a')][_0x84af('0xa1')][_0x84af('0x99')]())+'Queue:remove',_0x2dfd87);}}else{var _0x2dfd87={'UserId':Number(_0x11d60b[_0x84af('0x4a')]['id'])};_0x2dfd87[_[_0x84af('0x98')](_0x11d60b[_0x84af('0x3a')]['channel'][_0x84af('0x99')]())+_0x84af('0x9a')]=Number(_0x11d60b[_0x84af('0x3a')][_0x84af('0x57')]);socket[_0x84af('0x9b')]('user'+_['capitalize'](_0x11d60b[_0x84af('0x3a')][_0x84af('0xa1')][_0x84af('0x99')]())+'Queue:remove',_0x2dfd87);}return _0x16c294;})[_0x84af('0xe')](function(){if(_0x11d60b['query'][_0x84af('0xa1')]===_0x84af('0x9c')){return db['UserVoiceQueueRt'][_0x84af('0x23')]({'where':{'UserId':_0x11d60b[_0x84af('0x4a')]['id'],'VoiceQueueId':_0x11d60b[_0x84af('0x3a')]['ids']},'individualHooks':!![]})[_0x84af('0xe')](function(){return _0x3cdcfb;});}return _0x3cdcfb;})[_0x84af('0xe')](respondWithStatusCode(_0x73596,null))[_0x84af('0x18')](handleError(_0x73596,null));};exports[_0x84af('0xa4')]=function(_0x8273f3,_0x288249){_0x8273f3[_0x84af('0x54')][_0x84af('0xa5')]=_0x8273f3[_0x84af('0xa6')]['filename'];return db[_0x84af('0x34')]['find']({'where':{'id':_0x8273f3[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x288249,null))[_0x84af('0xe')](saveUpdates(_0x8273f3[_0x84af('0x54')],null))[_0x84af('0xe')](respondWithResult(_0x288249,null))['catch'](handleError(_0x288249,null));};exports['getAvatar']=function(_0x4ac968,_0x49d056){var _0x4a0e38=path[_0x84af('0xa7')](config['root'],_0x84af('0xa8'));return db['User'][_0x84af('0x2f')]({'where':{'id':_0x4ac968[_0x84af('0x4a')]['id']},'attributes':['id',_0x84af('0xa5')],'raw':!![]})['then'](handleEntityNotFound(_0x49d056,null))[_0x84af('0xe')](function(_0xe14c62){if(_0xe14c62){if(_[_0x84af('0x5d')](_0xe14c62[_0x84af('0xa5')])){return _0x49d056[_0x84af('0xa9')](_0x4a0e38);}else{if(!fs[_0x84af('0xaa')](path[_0x84af('0xa7')](config[_0x84af('0xab')],_0x84af('0xac'),_0xe14c62[_0x84af('0xa5')]))){return _0x49d056[_0x84af('0xa9')](_0x4a0e38);}return _0x49d056[_0x84af('0xa9')](path[_0x84af('0xa7')](config[_0x84af('0xab')],_0x84af('0xac'),_0xe14c62[_0x84af('0xa5')]));}}})['catch'](handleError(_0x49d056,null));};exports[_0x84af('0xad')]=function(_0x506652,_0x399c30){return db[_0x84af('0x34')][_0x84af('0x2f')]({'where':{'id':_0x506652[_0x84af('0x4a')]['id']},'attributes':['id']})['then'](handleEntityNotFound(_0x399c30,null))[_0x84af('0xe')](function(_0x29d19f){var _0x571b1b=[];values=_0x29d19f['dataValues'];_0x571b1b[_0x84af('0x3d')](get_open_tabs(_0x84af('0x42'),_0x29d19f[_0x84af('0x43')]));_0x571b1b[_0x84af('0x3d')](get_open_tabs(_0x84af('0x44'),_0x29d19f[_0x84af('0x43')]));_0x571b1b[_0x84af('0x3d')](get_open_tabs(_0x84af('0xae'),_0x29d19f[_0x84af('0x43')]));_0x571b1b[_0x84af('0x3d')](get_open_tabs(_0x84af('0x47'),_0x29d19f[_0x84af('0x43')]));_0x571b1b[_0x84af('0x3d')](get_open_tabs('fax',_0x29d19f[_0x84af('0x43')]));_0x571b1b[_0x84af('0x3d')](get_open_tabs(_0x84af('0x46'),_0x29d19f[_0x84af('0x43')]));return BPromise[_0x84af('0x48')](_0x571b1b);})['then'](function(_0x14700d){var _0x20d99f=[];if(_0x14700d){for(var _0x2cedd3=0x0;_0x2cedd3<values[_0x84af('0xaf')][_0x84af('0x61')];_0x2cedd3++){var _0xf3beb0=values[_0x84af('0xaf')][_0x2cedd3];_0x20d99f[_0x84af('0x3d')]({'channel':_0x84af('0xb0'),'id':_0xf3beb0['id'],'createdAt':_0xf3beb0[_0x84af('0xb1')]});}for(var _0x2cedd3=0x0;_0x2cedd3<values[_0x84af('0xb2')][_0x84af('0x61')];_0x2cedd3++){var _0xf3beb0=values['FaxOpenTabs'][_0x2cedd3];_0x20d99f[_0x84af('0x3d')]({'channel':'FAX','id':_0xf3beb0['id'],'createdAt':_0xf3beb0['createdAt']});}for(var _0x2cedd3=0x0;_0x2cedd3<values[_0x84af('0xb3')][_0x84af('0x61')];_0x2cedd3++){var _0xf3beb0=values[_0x84af('0xb3')][_0x2cedd3];_0x20d99f[_0x84af('0x3d')]({'channel':_0x84af('0xb4'),'id':_0xf3beb0['id'],'createdAt':_0xf3beb0[_0x84af('0xb1')]});}for(var _0x2cedd3=0x0;_0x2cedd3<values['MailOpenTabs'][_0x84af('0x61')];_0x2cedd3++){var _0xf3beb0=values[_0x84af('0xb5')][_0x2cedd3];_0x20d99f[_0x84af('0x3d')]({'channel':'MAIL','id':_0xf3beb0['id'],'createdAt':_0xf3beb0[_0x84af('0xb1')]});}for(var _0x2cedd3=0x0;_0x2cedd3<values[_0x84af('0xb6')][_0x84af('0x61')];_0x2cedd3++){var _0xf3beb0=values[_0x84af('0xb6')][_0x2cedd3];_0x20d99f[_0x84af('0x3d')]({'channel':'SMS','id':_0xf3beb0['id'],'createdAt':_0xf3beb0[_0x84af('0xb1')]});}for(var _0x2cedd3=0x0;_0x2cedd3<values[_0x84af('0xb7')]['length'];_0x2cedd3++){var _0xf3beb0=values[_0x84af('0xb7')][_0x2cedd3];_0x20d99f[_0x84af('0x3d')]({'channel':_0x84af('0xb8'),'id':_0xf3beb0['id'],'createdAt':_0xf3beb0['createdAt']});}var _0x2f5b7a={'count':_0x20d99f[_0x84af('0x61')],'rows':_0x20d99f};return _0x2f5b7a;}else return null;})[_0x84af('0xe')](respondWithResult(_0x399c30,null))[_0x84af('0x18')](handleError(_0x399c30,null));};exports['getContacts']=function(_0x33bc1e,_0x133668){var _0x24bbdb={};var _0x16162e={};var _0x5e1ba2;var _0x2f013a;return db['User'][_0x84af('0x8b')]({'where':{'id':_0x33bc1e[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x133668,null))[_0x84af('0xe')](function(_0x9b1132){if(_0x9b1132){_0x5e1ba2=_0x9b1132;_0x16162e[_0x84af('0x4b')]=_[_0x84af('0x4d')](db[_0x84af('0xb9')][_0x84af('0x4e')]);_0x16162e[_0x84af('0x3a')]=_[_0x84af('0x4d')](_0x33bc1e[_0x84af('0x3a')]);_0x16162e['filters']=_[_0x84af('0x50')](_0x16162e['model'],_0x16162e['query']);_0x24bbdb[_0x84af('0x3c')]=_['intersection'](_0x16162e[_0x84af('0x4b')],qs[_0x84af('0x51')](_0x33bc1e[_0x84af('0x3a')][_0x84af('0x51')]));_0x24bbdb[_0x84af('0x3c')]=_0x24bbdb[_0x84af('0x3c')][_0x84af('0x61')]?_0x24bbdb[_0x84af('0x3c')]:_0x16162e[_0x84af('0x4b')];_0x24bbdb['order']=qs[_0x84af('0xba')](_0x33bc1e[_0x84af('0x3a')][_0x84af('0xba')]);_0x24bbdb[_0x84af('0x39')]=qs[_0x84af('0x4f')](_[_0x84af('0xbb')](_0x33bc1e[_0x84af('0x3a')],_0x16162e['filters']));if(_0x33bc1e[_0x84af('0x3a')][_0x84af('0x2b')]){_0x24bbdb[_0x84af('0x39')]=_['merge'](_0x24bbdb[_0x84af('0x39')],{'$or':_[_0x84af('0x2c')](_0x24bbdb[_0x84af('0x3c')],function(_0x2d4ecd){var _0x37cede={};_0x37cede[_0x2d4ecd]={'$like':'%'+_0x33bc1e[_0x84af('0x3a')]['filter']+'%'};return _0x37cede;})});}_0x24bbdb=_[_0x84af('0x52')]({},_0x24bbdb,_0x33bc1e[_0x84af('0x53')]);return _0x5e1ba2[_0x84af('0xbc')](_0x24bbdb);}})[_0x84af('0xe')](function(_0x10b35e){if(_0x10b35e){_0x2f013a=_0x10b35e[_0x84af('0x61')];if(_0x33bc1e[_0x84af('0x3a')][_0x84af('0xbd')](_0x84af('0xbe'))){_0x24bbdb[_0x84af('0x3b')]=[{'model':db[_0x84af('0xbf')],'as':_0x84af('0xc0'),'required':![]},{'model':db['Tag'],'as':'Tags','attributes':['id',_0x84af('0x30'),_0x84af('0xc1')],'where':_0x33bc1e['query']['tag']?{'id':_0x33bc1e[_0x84af('0x3a')]['tag']}:undefined,'required':_0x33bc1e[_0x84af('0x3a')][_0x84af('0xc2')]?!![]:![]}];}if(!_0x33bc1e[_0x84af('0x3a')][_0x84af('0xbd')](_0x84af('0xc3'))){_0x24bbdb[_0x84af('0x1e')]=qs[_0x84af('0x1e')](_0x33bc1e['query']['limit']);_0x24bbdb['offset']=qs[_0x84af('0x1c')](_0x33bc1e['query'][_0x84af('0x1c')]);}return _0x5e1ba2[_0x84af('0xbc')](_0x24bbdb);}})[_0x84af('0xe')](function(_0x180d3c){if(_0x180d3c){return _0x180d3c?{'count':_0x2f013a,'rows':_0x180d3c}:null;}})[_0x84af('0xe')](respondWithResult(_0x133668,null))[_0x84af('0x18')](handleError(_0x133668,null));};exports[_0x84af('0xc4')]=function(_0x3dea8b,_0x33450d){var _0x319f88;var _0x29ed11;var _0x28dfad={};var _0x5f0a56;return db[_0x84af('0x34')][_0x84af('0x8b')]({'where':{'id':_0x3dea8b[_0x84af('0x4a')]['id']},'attributes':['id','name',_0x84af('0x25')]})[_0x84af('0xe')](handleEntityNotFound(_0x33450d,null))[_0x84af('0xe')](function(_0x8c287c){if(!utils[_0x84af('0x96')](_0x3dea8b[_0x84af('0x3a')]['channel'])){throw new db['Sequelize'][(_0x84af('0x85'))](_0x84af('0x97'));}_0x319f88=_0x8c287c;var _0x1cf533={};_0x1cf533[_0x84af('0x4b')]=_[_0x84af('0x4d')](db[_[_0x84af('0x98')](_0x3dea8b[_0x84af('0x3a')][_0x84af('0xa1')])+_0x84af('0xc5')][_0x84af('0x4e')]);_0x1cf533[_0x84af('0x3a')]=_[_0x84af('0x4d')](_0x3dea8b[_0x84af('0x3a')]);_0x1cf533['filters']=_[_0x84af('0x50')](_0x1cf533[_0x84af('0x4b')],_0x1cf533['query']);_0x28dfad[_0x84af('0x3c')]=_['intersection'](_0x1cf533[_0x84af('0x4b')],qs[_0x84af('0x51')](_0x3dea8b[_0x84af('0x3a')][_0x84af('0x51')]));_0x28dfad[_0x84af('0x3c')]=_0x28dfad[_0x84af('0x3c')][_0x84af('0x61')]?_0x28dfad[_0x84af('0x3c')]:_0x1cf533[_0x84af('0x4b')];_0x28dfad[_0x84af('0xc6')]=qs[_0x84af('0xba')](_0x3dea8b['query'][_0x84af('0xba')]);_0x28dfad[_0x84af('0x39')]=qs[_0x84af('0x4f')](_[_0x84af('0xbb')](_0x3dea8b[_0x84af('0x3a')],_0x1cf533[_0x84af('0x4f')]));if(_0x3dea8b['query']['filter']){_0x28dfad[_0x84af('0x39')]=_[_0x84af('0x52')](_0x28dfad['where'],{'$or':_[_0x84af('0x2c')](_0x28dfad[_0x84af('0x3c')],function(_0x13cf2d){var _0xa0f07b={};_0xa0f07b[_0x13cf2d]={'$like':'%'+_0x3dea8b[_0x84af('0x3a')][_0x84af('0x2b')]+'%'};return _0xa0f07b;})});}_0x28dfad=_[_0x84af('0x52')]({},_0x28dfad,_0x3dea8b['options']);switch(_0x319f88[_0x84af('0x25')]){case _0x84af('0x26'):return db[_[_0x84af('0x98')](_0x3dea8b[_0x84af('0x3a')]['channel'])+_0x84af('0xc5')][_0x84af('0x3e')](_0x28dfad);case _0x84af('0x28'):case _0x84af('0x29'):return _0x319f88[_0x84af('0x24')+_[_0x84af('0x98')](_0x3dea8b['query'][_0x84af('0xa1')])+'Queues'](_0x28dfad);default:throw new db[(_0x84af('0x84'))][(_0x84af('0x85'))](_0x84af('0xc7'));}})[_0x84af('0xe')](function(_0x4780ee){_0x5f0a56=_0x4780ee[_0x84af('0x61')];if(!_0x3dea8b[_0x84af('0x3a')][_0x84af('0xbd')]('nolimit')){_0x28dfad['limit']=qs[_0x84af('0x1e')](_0x3dea8b[_0x84af('0x3a')][_0x84af('0x1e')]);_0x28dfad[_0x84af('0x1c')]=qs[_0x84af('0x1c')](_0x3dea8b['query']['offset']);}switch(_0x319f88['role']){case _0x84af('0x26'):return db[_['capitalize'](_0x3dea8b[_0x84af('0x3a')][_0x84af('0xa1')])+_0x84af('0xc5')][_0x84af('0x3e')](_0x28dfad);case _0x84af('0x28'):case _0x84af('0x29'):return _0x319f88[_0x84af('0x24')+_[_0x84af('0x98')](_0x3dea8b[_0x84af('0x3a')][_0x84af('0xa1')])+_0x84af('0xa3')](_0x28dfad);}})[_0x84af('0xe')](function(_0x15a3cc){return{'count':_0x5f0a56,'rows':_0x15a3cc};})[_0x84af('0xe')](respondWithResult(_0x33450d,null))[_0x84af('0x18')](handleError(_0x33450d,null));};exports[_0x84af('0xc8')]=function(_0x1d08bc,_0x13285d){var _0x4b90ea={};var _0x3f6c66={};var _0x5aadaf;var _0x1f0d93;return db[_0x84af('0x34')][_0x84af('0x8b')]({'where':{'id':_0x1d08bc[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x13285d,null))['then'](function(_0x2729ab){if(_0x2729ab){_0x5aadaf=_0x2729ab;_0x3f6c66[_0x84af('0x4b')]=_['keys'](db['UserVoiceQueueRt'][_0x84af('0x4e')]);_0x3f6c66[_0x84af('0x3a')]=_[_0x84af('0x4d')](_0x1d08bc[_0x84af('0x3a')]);_0x3f6c66['filters']=_[_0x84af('0x50')](_0x3f6c66[_0x84af('0x4b')],_0x3f6c66[_0x84af('0x3a')]);_0x4b90ea[_0x84af('0x3c')]=_[_0x84af('0x50')](_0x3f6c66[_0x84af('0x4b')],qs[_0x84af('0x51')](_0x1d08bc[_0x84af('0x3a')]['fields']));_0x4b90ea[_0x84af('0x3c')]=_0x4b90ea[_0x84af('0x3c')][_0x84af('0x61')]?_0x4b90ea['attributes']:_0x3f6c66[_0x84af('0x4b')];_0x4b90ea[_0x84af('0xc6')]=qs[_0x84af('0xba')](_0x1d08bc['query']['sort']);_0x4b90ea[_0x84af('0x39')]=qs[_0x84af('0x4f')](_[_0x84af('0xbb')](_0x1d08bc[_0x84af('0x3a')],_0x3f6c66[_0x84af('0x4f')]));if(_0x1d08bc[_0x84af('0x3a')][_0x84af('0x2b')]){_0x4b90ea['where']=_[_0x84af('0x52')](_0x4b90ea['where'],{'$or':_[_0x84af('0x2c')](_0x4b90ea[_0x84af('0x3c')],function(_0x3aebaa){var _0x9fa6db={};_0x9fa6db[_0x3aebaa]={'$like':'%'+_0x1d08bc[_0x84af('0x3a')][_0x84af('0x2b')]+'%'};return _0x9fa6db;})});}_0x4b90ea=_['merge']({},_0x4b90ea,_0x1d08bc['options']);return _0x5aadaf[_0x84af('0xc8')](_0x4b90ea);}})[_0x84af('0xe')](function(_0x33cab1){if(_0x33cab1){_0x1f0d93=_0x33cab1[_0x84af('0x61')];if(!_0x1d08bc[_0x84af('0x3a')]['hasOwnProperty']('nolimit')){_0x4b90ea[_0x84af('0x1e')]=qs[_0x84af('0x1e')](_0x1d08bc[_0x84af('0x3a')][_0x84af('0x1e')]);_0x4b90ea[_0x84af('0x1c')]=qs[_0x84af('0x1c')](_0x1d08bc[_0x84af('0x3a')][_0x84af('0x1c')]);}return _0x5aadaf[_0x84af('0xc8')](_0x4b90ea);}})[_0x84af('0xe')](function(_0x25574b){if(_0x25574b){return _0x25574b?{'count':_0x1f0d93,'rows':_0x25574b}:null;}})[_0x84af('0xe')](respondWithResult(_0x13285d,null))['catch'](handleError(_0x13285d,null));};exports[_0x84af('0xc9')]=function(_0x5289ac,_0x471861){var _0x2742f9={};var _0x4640de={};var _0x415aae;var _0x5bd8f4;return db[_0x84af('0x34')][_0x84af('0x8b')]({'where':{'id':_0x5289ac[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x471861,null))[_0x84af('0xe')](function(_0x18e055){if(_0x18e055){_0x415aae=_0x18e055;_0x4640de[_0x84af('0x4b')]=_['keys'](db[_0x84af('0xca')]['rawAttributes']);_0x4640de[_0x84af('0x3a')]=_['keys'](_0x5289ac['query']);_0x4640de[_0x84af('0x4f')]=_[_0x84af('0x50')](_0x4640de[_0x84af('0x4b')],_0x4640de[_0x84af('0x3a')]);_0x2742f9[_0x84af('0x3c')]=_[_0x84af('0x50')](_0x4640de[_0x84af('0x4b')],qs['fields'](_0x5289ac[_0x84af('0x3a')][_0x84af('0x51')]));_0x2742f9[_0x84af('0x3c')]=_0x2742f9[_0x84af('0x3c')]['length']?_0x2742f9[_0x84af('0x3c')]:_0x4640de[_0x84af('0x4b')];_0x2742f9['order']=qs[_0x84af('0xba')](_0x5289ac[_0x84af('0x3a')]['sort']);_0x2742f9[_0x84af('0x39')]=qs[_0x84af('0x4f')](_[_0x84af('0xbb')](_0x5289ac[_0x84af('0x3a')],_0x4640de[_0x84af('0x4f')]));if(_0x5289ac['query'][_0x84af('0x2b')]){_0x2742f9['where']=_[_0x84af('0x52')](_0x2742f9[_0x84af('0x39')],{'$or':_[_0x84af('0x2c')](_0x2742f9[_0x84af('0x3c')],function(_0x2c1884){var _0x460140={};_0x460140[_0x2c1884]={'$like':'%'+_0x5289ac[_0x84af('0x3a')][_0x84af('0x2b')]+'%'};return _0x460140;})});}_0x2742f9=_[_0x84af('0x52')]({},_0x2742f9,_0x5289ac[_0x84af('0x53')]);return _0x415aae[_0x84af('0xc9')](_0x2742f9);}})[_0x84af('0xe')](function(_0x27297e){if(_0x27297e){_0x5bd8f4=_0x27297e[_0x84af('0x61')];if(!_0x5289ac[_0x84af('0x3a')][_0x84af('0xbd')](_0x84af('0xc3'))){_0x2742f9[_0x84af('0x1e')]=qs[_0x84af('0x1e')](_0x5289ac[_0x84af('0x3a')][_0x84af('0x1e')]);_0x2742f9[_0x84af('0x1c')]=qs[_0x84af('0x1c')](_0x5289ac[_0x84af('0x3a')][_0x84af('0x1c')]);}return _0x415aae[_0x84af('0xc9')](_0x2742f9);}})['then'](function(_0x598ca7){if(_0x598ca7){return _0x598ca7?{'count':_0x5bd8f4,'rows':_0x598ca7}:null;}})[_0x84af('0xe')](respondWithResult(_0x471861,null))['catch'](handleError(_0x471861,null));};exports[_0x84af('0xcb')]=function(_0x3483f2,_0x6f7e14){var _0x35f30c={'raw':!![],'where':{}};var _0x3ed788={};var _0x2e053e={'count':0x0,'rows':[]};return db[_0x84af('0x34')]['findOne']({'where':{'id':_0x3483f2[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x6f7e14,null))['then'](function(_0x58d47a){if(_0x58d47a){_0x3ed788[_0x84af('0x4b')]=_[_0x84af('0x4d')](db['VoiceRecording'][_0x84af('0x4e')]);_0x3ed788['query']=_[_0x84af('0x4d')](_0x3483f2[_0x84af('0x3a')]);_0x3ed788[_0x84af('0x4f')]=_[_0x84af('0x50')](_0x3ed788['model'],_0x3ed788[_0x84af('0x3a')]);_0x35f30c[_0x84af('0x3c')]=_['intersection'](_0x3ed788[_0x84af('0x4b')],qs['fields'](_0x3483f2[_0x84af('0x3a')][_0x84af('0x51')]));_0x35f30c[_0x84af('0x3c')]=_0x35f30c[_0x84af('0x3c')][_0x84af('0x61')]?_0x35f30c['attributes']:_0x3ed788[_0x84af('0x4b')];if(!_0x3483f2['query'][_0x84af('0xbd')]('nolimit')){_0x35f30c['limit']=qs['limit'](_0x3483f2[_0x84af('0x3a')][_0x84af('0x1e')]);_0x35f30c[_0x84af('0x1c')]=qs[_0x84af('0x1c')](_0x3483f2['query'][_0x84af('0x1c')]);}_0x35f30c['order']=qs[_0x84af('0xba')](_0x3483f2[_0x84af('0x3a')][_0x84af('0xba')]);_0x35f30c['where']=qs[_0x84af('0x4f')](_[_0x84af('0xbb')](_0x3483f2[_0x84af('0x3a')],_0x3ed788[_0x84af('0x4f')]));_0x35f30c['where']['UserId']=_0x58d47a['id'];if(_0x3483f2[_0x84af('0x3a')][_0x84af('0x2b')]){_0x35f30c[_0x84af('0x39')]=_[_0x84af('0x52')](_0x35f30c[_0x84af('0x39')],{'$or':_['map'](_0x35f30c[_0x84af('0x3c')],function(_0x2cceda){var _0x437794={};_0x437794[_0x2cceda]={'$like':'%'+_0x3483f2[_0x84af('0x3a')]['filter']+'%'};return _0x437794;})});}_0x35f30c=_[_0x84af('0x52')]({},_0x35f30c,_0x3483f2[_0x84af('0x53')]);return db[_0x84af('0xcc')][_0x84af('0x1f')]({'where':_0x35f30c[_0x84af('0x39')]})[_0x84af('0xe')](function(_0x328690){_0x2e053e[_0x84af('0x1f')]=_0x328690;if(_0x3483f2[_0x84af('0x3a')][_0x84af('0xbe')]){_0x35f30c[_0x84af('0x3b')]=[{'all':!![]}];}return db['VoiceRecording'][_0x84af('0x3e')](_0x35f30c);})[_0x84af('0xe')](function(_0x16b25b){_0x2e053e[_0x84af('0x3f')]=_0x16b25b;return _0x2e053e;});}})[_0x84af('0xe')](respondWithFilteredResult(_0x6f7e14,_0x35f30c))[_0x84af('0x18')](handleError(_0x6f7e14,null));};exports[_0x84af('0xcd')]=function(_0x80d721,_0x3d0b43){var _0x498e44={'raw':!![],'where':{}};var _0x9e21bd={};var _0x1640a0={'count':0x0,'rows':[]};return db[_0x84af('0x34')][_0x84af('0x8b')]({'where':{'id':_0x80d721[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x3d0b43,null))[_0x84af('0xe')](function(_0x54a1ef){if(_0x54a1ef){_0x9e21bd[_0x84af('0x4b')]=_[_0x84af('0x4d')](db['ScreenRecording']['rawAttributes']);_0x9e21bd[_0x84af('0x3a')]=_[_0x84af('0x4d')](_0x80d721[_0x84af('0x3a')]);_0x9e21bd[_0x84af('0x4f')]=_[_0x84af('0x50')](_0x9e21bd[_0x84af('0x4b')],_0x9e21bd[_0x84af('0x3a')]);_0x498e44[_0x84af('0x3c')]=_['intersection'](_0x9e21bd['model'],qs[_0x84af('0x51')](_0x80d721[_0x84af('0x3a')]['fields']));_0x498e44[_0x84af('0x3c')]=_0x498e44[_0x84af('0x3c')][_0x84af('0x61')]?_0x498e44['attributes']:_0x9e21bd['model'];if(!_0x80d721[_0x84af('0x3a')][_0x84af('0xbd')](_0x84af('0xc3'))){_0x498e44[_0x84af('0x1e')]=qs[_0x84af('0x1e')](_0x80d721[_0x84af('0x3a')][_0x84af('0x1e')]);_0x498e44['offset']=qs[_0x84af('0x1c')](_0x80d721[_0x84af('0x3a')][_0x84af('0x1c')]);}_0x498e44[_0x84af('0xc6')]=qs['sort'](_0x80d721[_0x84af('0x3a')][_0x84af('0xba')]);_0x498e44[_0x84af('0x39')]=qs['filters'](_[_0x84af('0xbb')](_0x80d721['query'],_0x9e21bd[_0x84af('0x4f')]));_0x498e44[_0x84af('0x39')]['UserId']=_0x54a1ef['id'];if(_0x80d721[_0x84af('0x3a')]['filter']){_0x498e44[_0x84af('0x39')]=_[_0x84af('0x52')](_0x498e44['where'],{'$or':_[_0x84af('0x2c')](_0x498e44['attributes'],function(_0x4881b1){var _0x1c9a6e={};_0x1c9a6e[_0x4881b1]={'$like':'%'+_0x80d721[_0x84af('0x3a')][_0x84af('0x2b')]+'%'};return _0x1c9a6e;})});}_0x498e44=_[_0x84af('0x52')]({},_0x498e44,_0x80d721[_0x84af('0x53')]);return db[_0x84af('0xce')][_0x84af('0x1f')]({'where':_0x498e44[_0x84af('0x39')]})[_0x84af('0xe')](function(_0x496d02){_0x1640a0[_0x84af('0x1f')]=_0x496d02;if(_0x80d721[_0x84af('0x3a')]['includeAll']){_0x498e44[_0x84af('0x3b')]=[{'all':!![]}];}return db[_0x84af('0xce')][_0x84af('0x3e')](_0x498e44);})['then'](function(_0x1ed146){_0x1640a0[_0x84af('0x3f')]=_0x1ed146;return _0x1640a0;});}})['then'](respondWithFilteredResult(_0x3d0b43,_0x498e44))[_0x84af('0x18')](handleError(_0x3d0b43,null));};exports[_0x84af('0xcf')]=function(_0x42ba54,_0xe5fc95){var _0x5e34be={};var _0x22bd7c={};var _0x546fce;var _0x25403a;return db[_0x84af('0x34')]['findOne']({'where':{'id':_0x42ba54[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0xe5fc95,null))['then'](function(_0x4f9a15){if(_0x4f9a15){_0x546fce=_0x4f9a15;_0x22bd7c[_0x84af('0x4b')]=_[_0x84af('0x4d')](db[_0x84af('0xd0')][_0x84af('0x4e')]);_0x22bd7c[_0x84af('0x3a')]=_[_0x84af('0x4d')](_0x42ba54[_0x84af('0x3a')]);_0x22bd7c[_0x84af('0x4f')]=_[_0x84af('0x50')](_0x22bd7c[_0x84af('0x4b')],_0x22bd7c[_0x84af('0x3a')]);_0x5e34be['attributes']=_[_0x84af('0x50')](_0x22bd7c[_0x84af('0x4b')],qs['fields'](_0x42ba54[_0x84af('0x3a')][_0x84af('0x51')]));_0x5e34be['attributes']=_0x5e34be['attributes'][_0x84af('0x61')]?_0x5e34be[_0x84af('0x3c')]:_0x22bd7c[_0x84af('0x4b')];_0x5e34be[_0x84af('0xc6')]=qs[_0x84af('0xba')](_0x42ba54['query'][_0x84af('0xba')]);_0x5e34be['where']=qs['filters'](_['pick'](_0x42ba54[_0x84af('0x3a')],_0x22bd7c[_0x84af('0x4f')]));if(_0x42ba54[_0x84af('0x3a')][_0x84af('0x2b')]){_0x5e34be[_0x84af('0x39')]=_[_0x84af('0x52')](_0x5e34be[_0x84af('0x39')],{'$or':_[_0x84af('0x2c')](_0x5e34be[_0x84af('0x3c')],function(_0x53c7f4){var _0x1f224f={};_0x1f224f[_0x53c7f4]={'$like':'%'+_0x42ba54[_0x84af('0x3a')][_0x84af('0x2b')]+'%'};return _0x1f224f;})});}_0x5e34be=_['merge']({},_0x5e34be,_0x42ba54['options']);return _0x546fce['getChatInteractions'](_0x5e34be);}})[_0x84af('0xe')](function(_0x5bc6c2){if(_0x5bc6c2){_0x25403a=_0x5bc6c2[_0x84af('0x61')];if(!_0x42ba54['query'][_0x84af('0xbd')]('nolimit')){_0x5e34be[_0x84af('0x1e')]=qs[_0x84af('0x1e')](_0x42ba54[_0x84af('0x3a')][_0x84af('0x1e')]);_0x5e34be['offset']=qs['offset'](_0x42ba54[_0x84af('0x3a')][_0x84af('0x1c')]);}return _0x546fce[_0x84af('0xcf')](_0x5e34be);}})[_0x84af('0xe')](function(_0x490c1c){if(_0x490c1c){return _0x490c1c?{'count':_0x25403a,'rows':_0x490c1c}:null;}})[_0x84af('0xe')](respondWithResult(_0xe5fc95,null))[_0x84af('0x18')](handleError(_0xe5fc95,null));};exports[_0x84af('0xd1')]=function(_0xa437e4,_0x2b24c1){var _0x42dd51={};var _0x234ec6={};var _0x3235cb;var _0x23119b;return db[_0x84af('0x34')][_0x84af('0x8b')]({'where':{'id':_0xa437e4[_0x84af('0x4a')]['id']}})['then'](handleEntityNotFound(_0x2b24c1,null))[_0x84af('0xe')](function(_0x1aecd2){if(_0x1aecd2){_0x3235cb=_0x1aecd2;_0x234ec6['model']=_[_0x84af('0x4d')](db[_0x84af('0xd2')][_0x84af('0x4e')]);_0x234ec6[_0x84af('0x3a')]=_['keys'](_0xa437e4[_0x84af('0x3a')]);_0x234ec6[_0x84af('0x4f')]=_[_0x84af('0x50')](_0x234ec6[_0x84af('0x4b')],_0x234ec6[_0x84af('0x3a')]);_0x42dd51[_0x84af('0x3c')]=_[_0x84af('0x50')](_0x234ec6[_0x84af('0x4b')],qs['fields'](_0xa437e4[_0x84af('0x3a')][_0x84af('0x51')]));_0x42dd51['attributes']=_0x42dd51[_0x84af('0x3c')][_0x84af('0x61')]?_0x42dd51[_0x84af('0x3c')]:_0x234ec6['model'];_0x42dd51[_0x84af('0xc6')]=qs[_0x84af('0xba')](_0xa437e4[_0x84af('0x3a')]['sort']);_0x42dd51['where']=qs[_0x84af('0x4f')](_[_0x84af('0xbb')](_0xa437e4[_0x84af('0x3a')],_0x234ec6[_0x84af('0x4f')]));if(_0xa437e4['query'][_0x84af('0x2b')]){_0x42dd51[_0x84af('0x39')]=_[_0x84af('0x52')](_0x42dd51['where'],{'$or':_[_0x84af('0x2c')](_0x42dd51['attributes'],function(_0x44db87){var _0x2a3777={};_0x2a3777[_0x44db87]={'$like':'%'+_0xa437e4[_0x84af('0x3a')][_0x84af('0x2b')]+'%'};return _0x2a3777;})});}_0x42dd51=_[_0x84af('0x52')]({},_0x42dd51,_0xa437e4['options']);return _0x3235cb[_0x84af('0xd1')](_0x42dd51);}})['then'](function(_0x4b5e07){if(_0x4b5e07){_0x23119b=_0x4b5e07[_0x84af('0x61')];if(!_0xa437e4[_0x84af('0x3a')]['hasOwnProperty']('nolimit')){_0x42dd51[_0x84af('0x1e')]=qs[_0x84af('0x1e')](_0xa437e4['query'][_0x84af('0x1e')]);_0x42dd51['offset']=qs['offset'](_0xa437e4['query'][_0x84af('0x1c')]);}return _0x3235cb[_0x84af('0xd1')](_0x42dd51);}})[_0x84af('0xe')](function(_0x18dc82){if(_0x18dc82){return _0x18dc82?{'count':_0x23119b,'rows':_0x18dc82}:null;}})[_0x84af('0xe')](respondWithResult(_0x2b24c1,null))[_0x84af('0x18')](handleError(_0x2b24c1,null));};exports[_0x84af('0xd3')]=function(_0x4bb501,_0x4c6c14){var _0x15fde9={'raw':!![],'where':{}};var _0xbbbb27={};var _0x47e882={'count':0x0,'rows':[]};return db[_0x84af('0x34')][_0x84af('0x8b')]({'where':{'id':_0x4bb501[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x4c6c14,null))[_0x84af('0xe')](function(_0xfdb3dd){if(_0xfdb3dd){_0xbbbb27[_0x84af('0x4b')]=_[_0x84af('0x4d')](db[_0x84af('0xd4')][_0x84af('0x4e')]);_0xbbbb27[_0x84af('0x3a')]=_[_0x84af('0x4d')](_0x4bb501[_0x84af('0x3a')]);_0xbbbb27[_0x84af('0x4f')]=_['intersection'](_0xbbbb27[_0x84af('0x4b')],_0xbbbb27[_0x84af('0x3a')]);_0x15fde9['attributes']=_['intersection'](_0xbbbb27[_0x84af('0x4b')],qs['fields'](_0x4bb501[_0x84af('0x3a')][_0x84af('0x51')]));_0x15fde9[_0x84af('0x3c')]=_0x15fde9[_0x84af('0x3c')][_0x84af('0x61')]?_0x15fde9['attributes']:_0xbbbb27[_0x84af('0x4b')];if(!_0x4bb501[_0x84af('0x3a')]['hasOwnProperty'](_0x84af('0xc3'))){_0x15fde9[_0x84af('0x1e')]=qs[_0x84af('0x1e')](_0x4bb501[_0x84af('0x3a')]['limit']);_0x15fde9[_0x84af('0x1c')]=qs[_0x84af('0x1c')](_0x4bb501[_0x84af('0x3a')][_0x84af('0x1c')]);}_0x15fde9[_0x84af('0xc6')]=qs[_0x84af('0xba')](_0x4bb501['query']['sort']);_0x15fde9[_0x84af('0x39')]=qs['filters'](_[_0x84af('0xbb')](_0x4bb501[_0x84af('0x3a')],_0xbbbb27[_0x84af('0x4f')]));_0x15fde9['where']['UserId']=_0xfdb3dd['id'];if(_0x4bb501[_0x84af('0x3a')][_0x84af('0x2b')]){_0x15fde9[_0x84af('0x39')]=_[_0x84af('0x52')](_0x15fde9['where'],{'$or':_[_0x84af('0x2c')](_0x15fde9[_0x84af('0x3c')],function(_0x468561){var _0x4a6d69={};_0x4a6d69[_0x468561]={'$like':'%'+_0x4bb501[_0x84af('0x3a')][_0x84af('0x2b')]+'%'};return _0x4a6d69;})});}_0x15fde9=_['merge']({},_0x15fde9,_0x4bb501[_0x84af('0x53')]);return db[_0x84af('0xd4')][_0x84af('0x1f')]({'where':_0x15fde9[_0x84af('0x39')]})[_0x84af('0xe')](function(_0x334287){_0x47e882[_0x84af('0x1f')]=_0x334287;if(_0x4bb501[_0x84af('0x3a')][_0x84af('0xbe')]){_0x15fde9['include']=[{'all':!![]}];}return db[_0x84af('0xd4')][_0x84af('0x3e')](_0x15fde9);})[_0x84af('0xe')](function(_0x1cb54d){_0x47e882[_0x84af('0x3f')]=_0x1cb54d;return _0x47e882;});}})[_0x84af('0xe')](respondWithFilteredResult(_0x4c6c14,_0x15fde9))[_0x84af('0x18')](handleError(_0x4c6c14,null));};exports['getSmsInteractions']=function(_0x247dae,_0x1205bf){var _0x376e60={};var _0x21c4de={};var _0x57d0be;var _0x39e4ae;return db[_0x84af('0x34')][_0x84af('0x8b')]({'where':{'id':_0x247dae[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x1205bf,null))[_0x84af('0xe')](function(_0x209695){if(_0x209695){_0x57d0be=_0x209695;_0x21c4de[_0x84af('0x4b')]=_[_0x84af('0x4d')](db[_0x84af('0xd5')]['rawAttributes']);_0x21c4de['query']=_['keys'](_0x247dae[_0x84af('0x3a')]);_0x21c4de['filters']=_['intersection'](_0x21c4de[_0x84af('0x4b')],_0x21c4de['query']);_0x376e60[_0x84af('0x3c')]=_['intersection'](_0x21c4de[_0x84af('0x4b')],qs[_0x84af('0x51')](_0x247dae['query'][_0x84af('0x51')]));_0x376e60[_0x84af('0x3c')]=_0x376e60['attributes'][_0x84af('0x61')]?_0x376e60[_0x84af('0x3c')]:_0x21c4de['model'];_0x376e60[_0x84af('0xc6')]=qs[_0x84af('0xba')](_0x247dae[_0x84af('0x3a')][_0x84af('0xba')]);_0x376e60[_0x84af('0x39')]=qs[_0x84af('0x4f')](_[_0x84af('0xbb')](_0x247dae[_0x84af('0x3a')],_0x21c4de[_0x84af('0x4f')]));if(_0x247dae['query'][_0x84af('0x2b')]){_0x376e60[_0x84af('0x39')]=_[_0x84af('0x52')](_0x376e60[_0x84af('0x39')],{'$or':_[_0x84af('0x2c')](_0x376e60['attributes'],function(_0x5cfab2){var _0x38faf2={};_0x38faf2[_0x5cfab2]={'$like':'%'+_0x247dae[_0x84af('0x3a')][_0x84af('0x2b')]+'%'};return _0x38faf2;})});}_0x376e60=_['merge']({},_0x376e60,_0x247dae['options']);return _0x57d0be[_0x84af('0xd6')](_0x376e60);}})[_0x84af('0xe')](function(_0x58f77a){if(_0x58f77a){_0x39e4ae=_0x58f77a['length'];if(!_0x247dae[_0x84af('0x3a')][_0x84af('0xbd')](_0x84af('0xc3'))){_0x376e60[_0x84af('0x1e')]=qs['limit'](_0x247dae[_0x84af('0x3a')]['limit']);_0x376e60[_0x84af('0x1c')]=qs[_0x84af('0x1c')](_0x247dae['query'][_0x84af('0x1c')]);}return _0x57d0be[_0x84af('0xd6')](_0x376e60);}})[_0x84af('0xe')](function(_0xc79917){if(_0xc79917){return _0xc79917?{'count':_0x39e4ae,'rows':_0xc79917}:null;}})['then'](respondWithResult(_0x1205bf,null))[_0x84af('0x18')](handleError(_0x1205bf,null));};exports[_0x84af('0xd7')]=function(_0x3d7299,_0x2a2d5a){var _0x3e9b98={};var _0x3c7f00={};var _0x1a4267;var _0x125971;return db[_0x84af('0x34')][_0x84af('0x8b')]({'where':{'id':_0x3d7299[_0x84af('0x4a')]['id']}})['then'](handleEntityNotFound(_0x2a2d5a,null))['then'](function(_0x5ae249){if(_0x5ae249){_0x1a4267=_0x5ae249;_0x3c7f00[_0x84af('0x4b')]=_['keys'](db[_0x84af('0xd8')][_0x84af('0x4e')]);_0x3c7f00[_0x84af('0x3a')]=_['keys'](_0x3d7299[_0x84af('0x3a')]);_0x3c7f00[_0x84af('0x4f')]=_[_0x84af('0x50')](_0x3c7f00[_0x84af('0x4b')],_0x3c7f00[_0x84af('0x3a')]);_0x3e9b98['attributes']=_[_0x84af('0x50')](_0x3c7f00[_0x84af('0x4b')],qs[_0x84af('0x51')](_0x3d7299[_0x84af('0x3a')][_0x84af('0x51')]));_0x3e9b98[_0x84af('0x3c')]=_0x3e9b98[_0x84af('0x3c')][_0x84af('0x61')]?_0x3e9b98[_0x84af('0x3c')]:_0x3c7f00[_0x84af('0x4b')];_0x3e9b98[_0x84af('0xc6')]=qs[_0x84af('0xba')](_0x3d7299[_0x84af('0x3a')][_0x84af('0xba')]);_0x3e9b98[_0x84af('0x39')]=qs[_0x84af('0x4f')](_[_0x84af('0xbb')](_0x3d7299[_0x84af('0x3a')],_0x3c7f00[_0x84af('0x4f')]));if(_0x3d7299[_0x84af('0x3a')][_0x84af('0x2b')]){_0x3e9b98['where']=_[_0x84af('0x52')](_0x3e9b98['where'],{'$or':_[_0x84af('0x2c')](_0x3e9b98[_0x84af('0x3c')],function(_0x53d44e){var _0x552181={};_0x552181[_0x53d44e]={'$like':'%'+_0x3d7299[_0x84af('0x3a')][_0x84af('0x2b')]+'%'};return _0x552181;})});}_0x3e9b98=_[_0x84af('0x52')]({},_0x3e9b98,_0x3d7299['options']);return _0x1a4267[_0x84af('0xd7')](_0x3e9b98);}})['then'](function(_0x2ad7ec){if(_0x2ad7ec){_0x125971=_0x2ad7ec['length'];if(!_0x3d7299[_0x84af('0x3a')]['hasOwnProperty'](_0x84af('0xc3'))){_0x3e9b98[_0x84af('0x1e')]=qs[_0x84af('0x1e')](_0x3d7299[_0x84af('0x3a')][_0x84af('0x1e')]);_0x3e9b98['offset']=qs[_0x84af('0x1c')](_0x3d7299['query']['offset']);}return _0x1a4267[_0x84af('0xd7')](_0x3e9b98);}})[_0x84af('0xe')](function(_0x4cd591){if(_0x4cd591){return _0x4cd591?{'count':_0x125971,'rows':_0x4cd591}:null;}})[_0x84af('0xe')](respondWithResult(_0x2a2d5a,null))['catch'](handleError(_0x2a2d5a,null));};exports[_0x84af('0xd9')]=function(_0x430efe,_0x4e7eb3){var _0x17eee2={};var _0xf0552c={};var _0x545db8;var _0x3df6ae;return db[_0x84af('0x34')][_0x84af('0x8b')]({'where':{'id':_0x430efe[_0x84af('0x4a')]['id']}})['then'](handleEntityNotFound(_0x4e7eb3,null))[_0x84af('0xe')](function(_0x317507){if(_0x317507){_0x545db8=_0x317507;_0xf0552c[_0x84af('0x4b')]=_[_0x84af('0x4d')](db[_0x84af('0xda')]['rawAttributes']);_0xf0552c[_0x84af('0x3a')]=_[_0x84af('0x4d')](_0x430efe[_0x84af('0x3a')]);_0xf0552c[_0x84af('0x4f')]=_[_0x84af('0x50')](_0xf0552c['model'],_0xf0552c[_0x84af('0x3a')]);_0x17eee2[_0x84af('0x3c')]=_['intersection'](_0xf0552c[_0x84af('0x4b')],qs[_0x84af('0x51')](_0x430efe[_0x84af('0x3a')]['fields']));_0x17eee2[_0x84af('0x3c')]=_0x17eee2['attributes'][_0x84af('0x61')]?_0x17eee2['attributes']:_0xf0552c[_0x84af('0x4b')];_0x17eee2[_0x84af('0xc6')]=qs[_0x84af('0xba')](_0x430efe[_0x84af('0x3a')][_0x84af('0xba')]);_0x17eee2[_0x84af('0x39')]=qs['filters'](_[_0x84af('0xbb')](_0x430efe[_0x84af('0x3a')],_0xf0552c[_0x84af('0x4f')]));if(_0x430efe[_0x84af('0x3a')][_0x84af('0x2b')]){_0x17eee2[_0x84af('0x39')]=_[_0x84af('0x52')](_0x17eee2[_0x84af('0x39')],{'$or':_[_0x84af('0x2c')](_0x17eee2[_0x84af('0x3c')],function(_0x4beae8){var _0x5c4253={};_0x5c4253[_0x4beae8]={'$like':'%'+_0x430efe[_0x84af('0x3a')][_0x84af('0x2b')]+'%'};return _0x5c4253;})});}_0x17eee2=_['merge']({},_0x17eee2,_0x430efe['options']);return _0x545db8['getWhatsappInteractions'](_0x17eee2);}})['then'](function(_0x58006c){if(_0x58006c){_0x3df6ae=_0x58006c[_0x84af('0x61')];if(!_0x430efe[_0x84af('0x3a')][_0x84af('0xbd')](_0x84af('0xc3'))){_0x17eee2[_0x84af('0x1e')]=qs[_0x84af('0x1e')](_0x430efe[_0x84af('0x3a')]['limit']);_0x17eee2['offset']=qs['offset'](_0x430efe[_0x84af('0x3a')]['offset']);}return _0x545db8[_0x84af('0xd9')](_0x17eee2);}})[_0x84af('0xe')](function(_0x5175e6){if(_0x5175e6){return _0x5175e6?{'count':_0x3df6ae,'rows':_0x5175e6}:null;}})[_0x84af('0xe')](respondWithResult(_0x4e7eb3,null))[_0x84af('0x18')](handleError(_0x4e7eb3,null));};exports['login']=function(_0x234b6f,_0x5dccbb,_0x47082d){var _0xc3f51c;var _0x3bf3ca;var _0x59a05b;var _0x54925c=!_[_0x84af('0x5d')](_0x234b6f['params']['id'])?_0x234b6f[_0x84af('0x4a')]['id']:!_['isNil'](_0x234b6f[_0x84af('0x28')]['id'])?_0x234b6f[_0x84af('0x28')]['id']:null;return db['User'][_0x84af('0x2f')]({'where':{'id':_0x54925c,'role':{'$or':['admin',_0x84af('0x28'),_0x84af('0x29')]}},'attributes':['id',_0x84af('0x30'),_0x84af('0xdb'),'mobile',_0x84af('0x25'),_0x84af('0x5c'),_0x84af('0x93')]})[_0x84af('0xe')](function(_0x1957ba){if(_0x1957ba){if(_0x1957ba[_0x84af('0x25')]===_0x84af('0x29')){_0xc3f51c=_0x1957ba;if(_0x234b6f[_0x84af('0x54')][_0x84af('0x95')]){_0x59a05b=util['format'](_0x84af('0xdc'),_0xc3f51c[_0x234b6f[_0x84af('0x54')][_0x84af('0x95')]]);}else if(_0x234b6f[_0x84af('0x54')][_0x84af('0xdd')]){_0x59a05b=util[_0x84af('0x9d')]('SIP/%s',_0x234b6f[_0x84af('0x54')]['intrf']);}else{_0x59a05b=util[_0x84af('0x9d')](_0x84af('0x9e'),_0xc3f51c['name']);}socket['to'](util[_0x84af('0x9d')](_0x84af('0xde'),_0xc3f51c[_0x84af('0x30')]))[_0x84af('0x9b')](_0x84af('0xdf'),{'user':{'id':_0xc3f51c['id'],'name':_0xc3f51c[_0x84af('0x30')]},'ip':_0x234b6f[_0x84af('0xe0')][_0x84af('0xe1')]||_0x234b6f['connection']['remoteAddress']||_0x234b6f[_0x84af('0xe2')]['remoteAddress']||_0x234b6f['connection'][_0x84af('0xe2')][_0x84af('0xe3')]});return db[_0x84af('0x9f')][_0x84af('0x23')]({'where':{'membername':_0xc3f51c[_0x84af('0x30')]},'individualHooks':!![]});}}else{throw new db[(_0x84af('0x84'))][(_0x84af('0x85'))]('User\x20not\x20found\x20or\x20not\x20allowed\x20to\x20perform\x20login\x20method');}})[_0x84af('0xe')](function(){if(_0xc3f51c){return _0xc3f51c[_0x84af('0xe4')]({'raw':!![]});}})[_0x84af('0xe')](function(_0x2d26d5){if(_0xc3f51c){var _0xf04387=[];if(_0x2d26d5){_0x3bf3ca=_0x2d26d5;if(_0x3bf3ca['length']){for(var _0x377f48=0x0;_0x377f48<_0x3bf3ca[_0x84af('0x61')];_0x377f48++){_0xf04387['push']({'membername':_0xc3f51c[_0x84af('0x30')],'UserId':_0xc3f51c['id'],'queue_name':_0x3bf3ca[_0x377f48][_0x84af('0x30')],'VoiceQueueId':_0x3bf3ca[_0x377f48]['id'],'interface':_0x59a05b,'paused':_0xc3f51c[_0x84af('0x93')]||![],'penalty':_0x3bf3ca[_0x377f48][_0x84af('0xe5')]||0x0});}return BPromise[_0x84af('0xe6')](_0xf04387,function(_0x538467){return db[_0x84af('0x9f')][_0x84af('0xa0')](_0x538467);});}}}})['then'](function(){if(_0xc3f51c){return db[_0x84af('0xe7')]['findAll']({'where':{'membername':_0xc3f51c[_0x84af('0x30')],'exitAt':null}});}})['then'](function(_0xf17afc){if(_0xc3f51c){var _0x4fdbed=[];_0xf17afc[_0x84af('0xe8')](function(_0x4dfb43){_0x4fdbed[_0x84af('0x3d')](_0x4dfb43[_0x84af('0x22')]({'exitAt':moment()[_0x84af('0x9d')](_0x84af('0xe9'))}));});return BPromise[_0x84af('0x48')](_0x4fdbed);}})[_0x84af('0xe')](function(){if(_0xc3f51c){var _0x9493d6=[];var _0x25ffaa=[];var _0x36ecce=utils['getChannels']();var _0x380b30={'membername':_0xc3f51c[_0x84af('0x30')],'interface':_0x59a05b,'enterAt':moment()['format'](_0x84af('0xe9')),'role':_0xc3f51c[_0x84af('0x25')],'internal':_0xc3f51c['internal']};_0x36ecce[_0x84af('0xe8')](function(_0x57facb){_0x9493d6[_0x84af('0x3d')](_[_0x84af('0x52')]({'channel':_0x57facb,'type':_0x84af('0xea'),'data1':_0x234b6f['body'][_0x84af('0xeb')],'data2':_0x59a05b},_0x380b30));if(_0xc3f51c['loginInPause']){_0x25ffaa[_0x84af('0x3d')](_[_0x84af('0x52')]({'channel':_0x57facb,'type':_0x84af('0xec'),'data1':'LOGININPAUSE'},_0x380b30));}});return db[_0x84af('0xe7')][_0x84af('0xed')](_0x9493d6['concat'](_0x25ffaa),{'individualHooks':!![]});}})['then'](function(){if(_0xc3f51c){return _0xc3f51c[_0x84af('0x22')]({'online':!![],'lastLoginAt':moment()['format'](_0x84af('0xe9')),'voicePause':_0xc3f51c[_0x84af('0x93')]||![],'mailPause':_0xc3f51c[_0x84af('0x93')]||![],'chatPause':_0xc3f51c[_0x84af('0x93')]||![],'faxPause':_0xc3f51c[_0x84af('0x93')]||![],'smsPause':_0xc3f51c[_0x84af('0x93')]||![],'openchannelPause':_0xc3f51c[_0x84af('0x93')]||![],'whatsappPause':_0xc3f51c[_0x84af('0x93')]||![],'pauseType':_0xc3f51c[_0x84af('0x93')]?_0x84af('0xee'):null,'interface':_0x59a05b,'lastPauseAt':moment()[_0x84af('0x9d')](_0x84af('0xe9'))});}})[_0x84af('0xe')](function(_0x112904){if(_0x234b6f[_0x84af('0xef')]){return _0x47082d();}else{return BPromise[_0x84af('0xf0')](_0x112904)[_0x84af('0xe')](respondWithResult(_0x5dccbb,null));}})[_0x84af('0x18')](handleError(_0x5dccbb,null));};exports[_0x84af('0xf1')]=function(_0x37d7af,_0x1d9833){var _0x5a09b9;return db['User'][_0x84af('0x2f')]({'where':{'id':_0x37d7af[_0x84af('0x4a')]['id'],'role':'agent'},'attributes':['id',_0x84af('0x30'),_0x84af('0x25')]})[_0x84af('0xe')](handleEntityNotFound(_0x1d9833,null))['then'](function(_0x12442d){if(_0x12442d){_0x5a09b9=_0x12442d;return db[_0x84af('0x9f')][_0x84af('0x23')]({'where':{'membername':_0x5a09b9[_0x84af('0x30')]},'individualHooks':!![]});}})['then'](function(){return db[_0x84af('0xe7')][_0x84af('0x3e')]({'where':{'membername':_0x5a09b9['name'],'exitAt':null}});})[_0x84af('0xe')](function(_0x4b466a){var _0x261722=[];_0x4b466a[_0x84af('0xe8')](function(_0x591737){_0x261722['push'](_0x591737[_0x84af('0x22')]({'exitAt':moment()[_0x84af('0x9d')](_0x84af('0xe9'))}));});return BPromise[_0x84af('0x48')](_0x261722);})[_0x84af('0xe')](function(){return _0x5a09b9[_0x84af('0x22')]({'online':![],'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![],'whatsappPause':![],'interface':null});})[_0x84af('0xe')](respondWithResult(_0x1d9833,null))[_0x84af('0x18')](handleError(_0x1d9833,null));};exports[_0x84af('0xf2')]=function(_0x2dd9c3,_0x145f08){var _0x49c416;return db['UserVoiceQueueRt'][_0x84af('0x22')]({'paused':0x1},{'where':{'UserId':_0x2dd9c3[_0x84af('0x4a')]['id']},'individualHooks':!![]})[_0x84af('0xe')](function(){return db[_0x84af('0x34')][_0x84af('0x2f')]({'where':{'id':_0x2dd9c3[_0x84af('0x4a')]['id'],'role':'agent'},'attributes':['id',_0x84af('0x30'),_0x84af('0x25'),_0x84af('0x5c'),_0x84af('0x95')]});})[_0x84af('0xe')](handleEntityNotFound(_0x145f08,null))[_0x84af('0xe')](function(_0x483e62){if(_0x483e62){_0x49c416=_0x483e62;return respondWithRpcPromise(_0x84af('0xf3'),'pause',{'id':_0x49c416['id'],'name':_0x49c416['name'],'pause':!![]});}})[_0x84af('0xe')](function(){if(_0x49c416){return db[_0x84af('0xe7')][_0x84af('0x3e')]({'where':{'membername':_0x49c416[_0x84af('0x30')],'type':_0x84af('0xec'),'exitAt':null}});}})['then'](function(_0x59c777){if(_0x59c777[_0x84af('0x61')]){var _0x5bb3e5=moment()['format'](_0x84af('0xe9'));for(var _0x44de60=0x0,_0x56b43f=_0x59c777[_0x84af('0x61')];_0x44de60<_0x56b43f;_0x44de60++){_0x59c777[_0x44de60][_0x84af('0xf4')]({'exitAt':_0x5bb3e5});}}})[_0x84af('0xe')](function(){var _0x36d850=[];var _0x1975f5=utils[_0x84af('0xf5')]();_0x1975f5['forEach'](function(_0x37d8b9){_0x36d850['push']({'channel':_0x37d8b9,'membername':_0x49c416[_0x84af('0x30')],'interface':_['isNil'](_0x49c416[_0x84af('0x95')])?util[_0x84af('0x9d')](_0x84af('0x9e'),_0x49c416[_0x84af('0x30')]):_0x49c416[_0x84af('0x95')],'type':_0x84af('0xec'),'enterAt':moment()[_0x84af('0x9d')](_0x84af('0xe9')),'data1':_0x2dd9c3[_0x84af('0x54')][_0x84af('0x36')]||_0x84af('0xf6'),'role':_0x49c416[_0x84af('0x25')],'internal':_0x49c416['internal']});});return db['MemberReport'][_0x84af('0xed')](_0x36d850,{'individualHooks':!![]});})['then'](function(){return _0x49c416['update']({'voicePause':!![],'mailPause':!![],'chatPause':!![],'faxPause':!![],'smsPause':!![],'whatsappPause':!![],'openchannelPause':!![],'pauseType':_0x2dd9c3[_0x84af('0x54')][_0x84af('0x36')]||_0x84af('0xf6'),'lastPauseAt':moment()[_0x84af('0x9d')](_0x84af('0xe9'))});})['then'](respondWithResult(_0x145f08,null))[_0x84af('0x18')](handleError(_0x145f08,null));};exports[_0x84af('0xf7')]=function(_0x57e446,_0x2a446f){var _0x2473e5;return db[_0x84af('0x34')][_0x84af('0x2f')]({'where':{'id':_0x57e446['params']['id']},'attributes':['id',_0x84af('0x30'),_0x84af('0x25'),_0x84af('0x94'),_0x84af('0xf8'),_0x84af('0xf9'),'faxPause','openchannelPause',_0x84af('0xfa'),'whatsapppause',_0x84af('0xfb'),_0x84af('0xfc')]})[_0x84af('0xe')](handleEntityNotFound(_0x2a446f,null))[_0x84af('0xe')](function(_0x344aa8){if(_0x344aa8){_0x2473e5=_0x344aa8;if(_0x57e446['body']['channel']&&!utils[_0x84af('0x96')](_0x57e446['body'][_0x84af('0xa1')])){throw new db[(_0x84af('0x84'))]['ValidationError']('Unknown\x20channel');}switch(_0x57e446['body'][_0x84af('0xa1')]){case _0x84af('0x9c'):return respondWithRpcPromise(_0x84af('0xf3'),_0x84af('0xf7'),{'id':_0x2473e5['id'],'name':_0x2473e5[_0x84af('0x30')],'pause':![]})[_0x84af('0xe')](function(){return db[_0x84af('0x9f')][_0x84af('0x22')]({'paused':0x0},{'where':{'UserId':_0x2473e5['id']},'individualHooks':!![]});})[_0x84af('0xe')](function(){return db[_0x84af('0xe7')][_0x84af('0x2f')]({'where':{'channel':_0x57e446['body'][_0x84af('0xa1')],'membername':_0x2473e5[_0x84af('0x30')],'type':_0x84af('0xec'),'exitAt':null}});})[_0x84af('0xe')](function(_0x3497b4){if(_0x3497b4){return _0x3497b4[_0x84af('0x22')]({'exitAt':moment()[_0x84af('0x9d')](_0x84af('0xe9')),'data2':_0x84af('0xfd')},{'individualHooks':!![]});}return null;})[_0x84af('0xe')](function(){return _0x2473e5[_0x84af('0x22')]({'voicePause':![]});});case _0x84af('0x46'):case _0x84af('0x42'):case _0x84af('0x45'):case _0x84af('0x44'):case _0x84af('0x47'):case _0x84af('0xae'):return db[_0x84af('0xe7')]['find']({'where':{'channel':_0x57e446[_0x84af('0x54')][_0x84af('0xa1')],'membername':_0x2473e5[_0x84af('0x30')],'type':_0x84af('0xec'),'exitAt':null}})['then'](function(_0x5d52ae){if(_0x5d52ae){return _0x5d52ae['update']({'exitAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'data2':'manual'},{'individualHooks':!![]});}return null;})[_0x84af('0xe')](function(){var _0xb30184={};_[_0x84af('0xfe')](_0xb30184,util[_0x84af('0x9d')](_0x84af('0xff'),_0x57e446['body'][_0x84af('0xa1')],'Pause'),![]);return _0x2473e5['update'](_0xb30184);});default:return respondWithRpcPromise(_0x84af('0xf3'),'unpause',{'id':_0x2473e5['id'],'name':_0x2473e5[_0x84af('0x30')],'pause':![]})['then'](function(){return db[_0x84af('0x9f')][_0x84af('0x22')]({'paused':0x0},{'where':{'UserId':_0x2473e5['id']}});})[_0x84af('0xe')](function(){return db[_0x84af('0xe7')]['findAll']({'where':{'membername':_0x2473e5[_0x84af('0x30')],'type':_0x84af('0xec'),'exitAt':null}});})['then'](function(_0x3bafdd){var _0x3df6e6=[];_0x3bafdd[_0x84af('0xe8')](function(_0x3ba4f8){_0x3df6e6[_0x84af('0x3d')](_0x3ba4f8[_0x84af('0x22')]({'exitAt':moment()[_0x84af('0x9d')](_0x84af('0xe9')),'data2':_0x84af('0xfd')}));});return BPromise[_0x84af('0x48')](_0x3df6e6);})['then'](function(){return _0x2473e5['update']({'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'whatsappPause':![],'openchannelPause':![]});});}}})['then'](respondWithResult(_0x2a446f,null))[_0x84af('0x18')](handleError(_0x2a446f,null));};exports[_0x84af('0x100')]=function(_0xd64845,_0x1c12ea){var _0x387ba5={};var _0x2fabd9={};var _0x16d39b;var _0x2b1500;return db[_0x84af('0x34')][_0x84af('0x8b')]({'where':{'id':_0xd64845['params']['id']}})['then'](handleEntityNotFound(_0x1c12ea,null))[_0x84af('0xe')](function(_0x467a92){if(_0x467a92){_0x16d39b=_0x467a92;_0x2fabd9[_0x84af('0x4b')]=_[_0x84af('0x4d')](db['Team'][_0x84af('0x4e')]);_0x2fabd9[_0x84af('0x3a')]=_['keys'](_0xd64845[_0x84af('0x3a')]);_0x2fabd9['filters']=_[_0x84af('0x50')](_0x2fabd9['model'],_0x2fabd9[_0x84af('0x3a')]);_0x387ba5['attributes']=_[_0x84af('0x50')](_0x2fabd9[_0x84af('0x4b')],qs[_0x84af('0x51')](_0xd64845['query'][_0x84af('0x51')]));_0x387ba5[_0x84af('0x3c')]=_0x387ba5[_0x84af('0x3c')][_0x84af('0x61')]?_0x387ba5[_0x84af('0x3c')]:_0x2fabd9['model'];_0x387ba5[_0x84af('0xc6')]=qs[_0x84af('0xba')](_0xd64845[_0x84af('0x3a')][_0x84af('0xba')]);_0x387ba5[_0x84af('0x39')]=qs[_0x84af('0x4f')](_[_0x84af('0xbb')](_0xd64845[_0x84af('0x3a')],_0x2fabd9[_0x84af('0x4f')]));if(_0xd64845[_0x84af('0x3a')]['filter']){_0x387ba5[_0x84af('0x39')]=_[_0x84af('0x52')](_0x387ba5['where'],{'$or':_[_0x84af('0x2c')](_0x387ba5[_0x84af('0x3c')],function(_0x724f28){var _0x2dfd55={};_0x2dfd55[_0x724f28]={'$like':'%'+_0xd64845[_0x84af('0x3a')][_0x84af('0x2b')]+'%'};return _0x2dfd55;})});}_0x387ba5=_['merge']({},_0x387ba5,_0xd64845[_0x84af('0x53')]);return _0x16d39b[_0x84af('0x100')](_0x387ba5);}})[_0x84af('0xe')](function(_0x2d5c53){if(_0x2d5c53){_0x2b1500=_0x2d5c53['length'];if(!_0xd64845['query']['hasOwnProperty']('nolimit')){_0x387ba5[_0x84af('0x1e')]=qs[_0x84af('0x1e')](_0xd64845[_0x84af('0x3a')][_0x84af('0x1e')]);_0x387ba5['offset']=qs[_0x84af('0x1c')](_0xd64845[_0x84af('0x3a')]['offset']);}return _0x16d39b[_0x84af('0x100')](_0x387ba5);}})['then'](function(_0x1d877a){if(_0x1d877a){return _0x1d877a?{'count':_0x2b1500,'rows':_0x1d877a}:null;}})['then'](respondWithResult(_0x1c12ea,null))[_0x84af('0x18')](handleError(_0x1c12ea,null));};exports[_0x84af('0x101')]=function(_0x72f287,_0x5ec438){return db[_0x84af('0x34')][_0x84af('0x2f')]({'where':{'id':_0x72f287[_0x84af('0x4a')]['id']}})['then'](handleEntityNotFound(_0x5ec438,null))[_0x84af('0xe')](function(_0x1fb597){if(_0x1fb597){var _0x334abb=_0x1fb597[_0x84af('0x24')]({'plain':!![]});return _0x1fb597[_0x84af('0x101')](_0x72f287['body'][_0x84af('0x57')],_[_0x84af('0x102')](_0x72f287[_0x84af('0x54')],[_0x84af('0x57'),'id'])||{})['then'](function(){for(var _0x35f5c1=0x0;_0x35f5c1<_0x72f287['body'][_0x84af('0x57')][_0x84af('0x61')];_0x35f5c1++){var _0x28c319=[];db[_0x84af('0x103')][_0x84af('0x8b')]({'where':{'id':_0x72f287[_0x84af('0x54')][_0x84af('0x57')][_0x35f5c1]}})['then'](function(_0x5d2eeb){_0x28c319[_0x84af('0x3d')](_0x5d2eeb[_0x84af('0xe4')]()[_0x84af('0xe')](function(_0x12ae83){for(var _0x21d8d2=0x0;_0x21d8d2<_0x12ae83[_0x84af('0x61')];_0x21d8d2++){_0x12ae83[_0x21d8d2][_0x84af('0x104')](_0x84af('0xa1'),_0x84af('0x105'));}return _0x12ae83;}));_0x28c319['push'](_0x5d2eeb[_0x84af('0x106')]()[_0x84af('0xe')](function(_0x48dd0d){for(var _0x29d8ef=0x0;_0x29d8ef<_0x48dd0d['length'];_0x29d8ef++){_0x48dd0d[_0x29d8ef][_0x84af('0x104')](_0x84af('0xa1'),_0x84af('0x107'));}return _0x48dd0d;}));_0x28c319[_0x84af('0x3d')](_0x5d2eeb['getMailQueues']()[_0x84af('0xe')](function(_0x1d73cb){for(var _0x50392f=0x0;_0x50392f<_0x1d73cb[_0x84af('0x61')];_0x50392f++){_0x1d73cb[_0x50392f][_0x84af('0x104')](_0x84af('0xa1'),_0x84af('0x108'));}return _0x1d73cb;}));_0x28c319['push'](_0x5d2eeb[_0x84af('0x109')]()[_0x84af('0xe')](function(_0x1fb9a8){for(var _0xf4f4ed=0x0;_0xf4f4ed<_0x1fb9a8[_0x84af('0x61')];_0xf4f4ed++){_0x1fb9a8[_0xf4f4ed][_0x84af('0x104')](_0x84af('0xa1'),'Sms');}return _0x1fb9a8;}));_0x28c319[_0x84af('0x3d')](_0x5d2eeb['getWhatsappQueues']()[_0x84af('0xe')](function(_0x144d34){for(var _0xd2280f=0x0;_0xd2280f<_0x144d34[_0x84af('0x61')];_0xd2280f++){_0x144d34[_0xd2280f][_0x84af('0x104')](_0x84af('0xa1'),'Whatsapp');}return _0x144d34;}));_0x28c319[_0x84af('0x3d')](_0x5d2eeb[_0x84af('0x10a')]()[_0x84af('0xe')](function(_0x439228){for(var _0x61cdab=0x0;_0x61cdab<_0x439228[_0x84af('0x61')];_0x61cdab++){_0x439228[_0x61cdab][_0x84af('0x104')](_0x84af('0xa1'),_0x84af('0x10b'));}return _0x439228;}));_0x28c319[_0x84af('0x3d')](_0x5d2eeb[_0x84af('0x10c')]()['then'](function(_0x37720e){for(var _0x359db5=0x0;_0x359db5<_0x37720e[_0x84af('0x61')];_0x359db5++){_0x37720e[_0x359db5][_0x84af('0x104')](_0x84af('0xa1'),_0x84af('0x10d'));}return _0x37720e;}));return BPromise['all'](_0x28c319);})['then'](function(_0x5438b4){var _0x3fa0b9=_['flatten'](_0x5438b4);_0x28c319=[];return db[_0x84af('0x5f')][_0x84af('0x10e')](function(_0x41abad){for(var _0xb893e8=0x0;_0xb893e8<_0x3fa0b9['length'];_0xb893e8++){_0x28c319[_0x84af('0x3d')](_0x3fa0b9[_0xb893e8][_0x84af('0x10f')](_0x334abb['id']),{'transaction':_0x41abad});}return BPromise[_0x84af('0x48')](_0x28c319)[_0x84af('0xe')](function(){if(_0x334abb[_0x84af('0x92')]){return BPromise[_0x84af('0xe6')](_[_0x84af('0x2b')](_0x3fa0b9,function(_0x5c9a22){return _0x5c9a22['getDataValue'](_0x84af('0xa1'))===_0x84af('0x105');}),function(_0x598b23){return db[_0x84af('0x9f')]['upsert']({'membername':_0x334abb[_0x84af('0x30')],'UserId':_0x334abb['id'],'queue_name':_0x598b23[_0x84af('0x30')],'VoiceQueueId':_0x598b23['id'],'interface':_[_0x84af('0x5d')](_0x334abb[_0x84af('0x95')])?util[_0x84af('0x9d')](_0x84af('0x9e'),_0x334abb[_0x84af('0x30')]):_0x334abb[_0x84af('0x95')],'paused':_0x334abb[_0x84af('0x94')]||![],'penalty':_0x334abb['penalty']},{'transaction':_0x41abad});});}else{return;}})['then'](function(){for(var _0x10fa66=0x0;_0x10fa66<_0x3fa0b9[_0x84af('0x61')];_0x10fa66++){var _0x562dcc=_0x3fa0b9[_0x10fa66][_0x84af('0x110')](_0x84af('0xa1'));var _0x4f4ae8=_0x562dcc+_0x84af('0x9a');socket[_0x84af('0x9b')](_0x84af('0x28')+_0x562dcc+_0x84af('0x111'),{'UserId':_0x334abb['id'],['queueField']:_0x3fa0b9[_0x10fa66]['id']});}});});});}});}})['then'](respondWithStatusCode(_0x5ec438,null))[_0x84af('0x18')](handleError(_0x5ec438,null));};exports['removeTeams']=function(_0x5cfdcd,_0x1fc965){return db[_0x84af('0x34')][_0x84af('0x8b')]({'where':{'id':_0x5cfdcd[_0x84af('0x4a')]['id']}})['then'](handleEntityNotFound(_0x1fc965,null))['then'](function(_0x4f7395){if(_0x4f7395){var _0x577504=_0x4f7395[_0x84af('0x24')]({'plain':!![]});var _0x14df58=_0x5cfdcd[_0x84af('0x3a')][_0x84af('0x57')];return _0x4f7395['removeTeams'](_0x14df58)['then'](function(){for(var _0x11ee67=0x0;_0x11ee67<_0x14df58[_0x84af('0x61')];_0x11ee67++){var _0x14de29=[];db[_0x84af('0x103')][_0x84af('0x8b')]({'where':{'id':_0x14df58[_0x11ee67]}})[_0x84af('0xe')](function(_0x192ff6){_0x14de29[_0x84af('0x3d')](_0x192ff6[_0x84af('0xe4')]()['then'](function(_0x5025d7){for(var _0x1f4d64=0x0;_0x1f4d64<_0x5025d7[_0x84af('0x61')];_0x1f4d64++){_0x5025d7[_0x1f4d64][_0x84af('0x104')](_0x84af('0xa1'),_0x84af('0x105'));}return _0x5025d7;}));_0x14de29[_0x84af('0x3d')](_0x192ff6[_0x84af('0x106')]()[_0x84af('0xe')](function(_0x594cdf){for(var _0x419d36=0x0;_0x419d36<_0x594cdf[_0x84af('0x61')];_0x419d36++){_0x594cdf[_0x419d36][_0x84af('0x104')]('channel',_0x84af('0x107'));}return _0x594cdf;}));_0x14de29['push'](_0x192ff6['getMailQueues']()[_0x84af('0xe')](function(_0x4b190b){for(var _0x35daa1=0x0;_0x35daa1<_0x4b190b[_0x84af('0x61')];_0x35daa1++){_0x4b190b[_0x35daa1][_0x84af('0x104')](_0x84af('0xa1'),_0x84af('0x108'));}return _0x4b190b;}));_0x14de29[_0x84af('0x3d')](_0x192ff6[_0x84af('0x109')]()[_0x84af('0xe')](function(_0x17e0d3){for(var _0x1d1517=0x0;_0x1d1517<_0x17e0d3[_0x84af('0x61')];_0x1d1517++){_0x17e0d3[_0x1d1517][_0x84af('0x104')](_0x84af('0xa1'),_0x84af('0x112'));}return _0x17e0d3;}));_0x14de29['push'](_0x192ff6[_0x84af('0x113')]()[_0x84af('0xe')](function(_0x1e6189){for(var _0x35f928=0x0;_0x35f928<_0x1e6189[_0x84af('0x61')];_0x35f928++){_0x1e6189[_0x35f928]['setDataValue'](_0x84af('0xa1'),_0x84af('0x114'));}return _0x1e6189;}));_0x14de29[_0x84af('0x3d')](_0x192ff6['getFaxQueues']()[_0x84af('0xe')](function(_0x29ea14){for(var _0x212e30=0x0;_0x212e30<_0x29ea14[_0x84af('0x61')];_0x212e30++){_0x29ea14[_0x212e30]['setDataValue'](_0x84af('0xa1'),_0x84af('0x10b'));}return _0x29ea14;}));_0x14de29[_0x84af('0x3d')](_0x192ff6['getOpenchannelQueues']()['then'](function(_0x4aa4b5){for(var _0x40bd9b=0x0;_0x40bd9b<_0x4aa4b5[_0x84af('0x61')];_0x40bd9b++){_0x4aa4b5[_0x40bd9b][_0x84af('0x104')](_0x84af('0xa1'),_0x84af('0x10d'));}return _0x4aa4b5;}));return BPromise[_0x84af('0x48')](_0x14de29);})[_0x84af('0xe')](function(_0x246376){var _0x127823=_[_0x84af('0x115')](_0x246376);_0x14de29=[];return db[_0x84af('0x5f')][_0x84af('0x10e')](function(_0x3f6089){for(var _0x171474=0x0;_0x171474<_0x127823['length'];_0x171474++){_0x14de29['push'](_0x127823[_0x171474][_0x84af('0x116')](_0x577504['id']),{'transaction':_0x3f6089});}return BPromise['all'](_0x14de29)['then'](function(){if(_0x577504[_0x84af('0x92')]){return BPromise[_0x84af('0xe6')](_['filter'](_0x127823,function(_0x443c83){return _0x443c83[_0x84af('0x110')](_0x84af('0xa1'))===_0x84af('0x105');}),function(_0x463d85){return db['UserVoiceQueueRt'][_0x84af('0x23')]({'where':{'VoiceQueueId':_0x463d85['id'],'UserId':_0x577504['id']},'transaction':_0x3f6089});});}else{return;}})['then'](function(){for(var _0xe7fb3e=0x0;_0xe7fb3e<_0x127823[_0x84af('0x61')];_0xe7fb3e++){var _0x354385=_0x127823[_0xe7fb3e][_0x84af('0x110')](_0x84af('0xa1'));var _0xababb7=_0x354385+_0x84af('0x9a');socket[_0x84af('0x9b')]('user'+_0x354385+'Queue:remove',{'UserId':_0x577504['id'],['queueField']:_0x127823[_0xe7fb3e]['id']});}});});});}});}})[_0x84af('0xe')](respondWithStatusCode(_0x1fc965,null))[_0x84af('0x18')](handleError(_0x1fc965,null));};exports[_0x84af('0x117')]=function(_0x57f2c3,_0x5ce69a){var _0x19960a={};var _0x1348d5={};var _0x4b95e2;var _0x15e85a;return db[_0x84af('0x34')]['findOne']({'where':{'id':_0x57f2c3['params']['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x5ce69a,null))['then'](function(_0x32d5b6){if(_0x32d5b6){_0x4b95e2=_0x32d5b6;_0x1348d5['model']=_[_0x84af('0x4d')](db[_0x84af('0xbf')]['rawAttributes']);_0x1348d5['query']=_['keys'](_0x57f2c3['query']);_0x1348d5[_0x84af('0x4f')]=_[_0x84af('0x50')](_0x1348d5[_0x84af('0x4b')],_0x1348d5[_0x84af('0x3a')]);_0x19960a[_0x84af('0x3c')]=_[_0x84af('0x50')](_0x1348d5['model'],qs[_0x84af('0x51')](_0x57f2c3[_0x84af('0x3a')][_0x84af('0x51')]));_0x19960a['attributes']=_0x19960a[_0x84af('0x3c')][_0x84af('0x61')]?_0x19960a[_0x84af('0x3c')]:_0x1348d5[_0x84af('0x4b')];_0x19960a[_0x84af('0xc6')]=qs[_0x84af('0xba')](_0x57f2c3['query'][_0x84af('0xba')]);_0x19960a['where']=qs[_0x84af('0x4f')](_[_0x84af('0xbb')](_0x57f2c3[_0x84af('0x3a')],_0x1348d5[_0x84af('0x4f')]));if(_0x57f2c3[_0x84af('0x3a')]['filter']){_0x19960a['where']=_[_0x84af('0x52')](_0x19960a[_0x84af('0x39')],{'$or':_[_0x84af('0x2c')](_0x19960a['attributes'],function(_0x36b41b){var _0x203ebe={};_0x203ebe[_0x36b41b]={'$like':'%'+_0x57f2c3['query'][_0x84af('0x2b')]+'%'};return _0x203ebe;})});}_0x19960a=_[_0x84af('0x52')]({},_0x19960a,_0x57f2c3['options']);return _0x4b95e2[_0x84af('0x117')](_0x19960a);}})['then'](function(_0xf09b0){if(_0xf09b0){_0x15e85a=_0xf09b0['length'];if(!_0x57f2c3[_0x84af('0x3a')][_0x84af('0xbd')]('nolimit')){_0x19960a['limit']=qs[_0x84af('0x1e')](_0x57f2c3[_0x84af('0x3a')][_0x84af('0x1e')]);_0x19960a[_0x84af('0x1c')]=qs[_0x84af('0x1c')](_0x57f2c3[_0x84af('0x3a')][_0x84af('0x1c')]);}return _0x4b95e2[_0x84af('0x117')](_0x19960a);}})[_0x84af('0xe')](function(_0x41beb8){if(_0x41beb8){return _0x41beb8?{'count':_0x15e85a,'rows':_0x41beb8}:null;}})['then'](respondWithResult(_0x5ce69a,null))[_0x84af('0x18')](handleError(_0x5ce69a,null));};exports[_0x84af('0x118')]=function(_0x349382,_0x183c82){var _0x2fc3ba={};var _0x341e2c={};var _0x205940;var _0x2752df;return db[_0x84af('0x34')][_0x84af('0x8b')]({'where':{'id':_0x349382[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x183c82,null))['then'](function(_0xde08dd){if(_0xde08dd){_0x205940=_0xde08dd;_0x341e2c[_0x84af('0x4b')]=_[_0x84af('0x4d')](db[_0x84af('0x34')][_0x84af('0x4e')]);_0x341e2c[_0x84af('0x3a')]=_['keys'](_0x349382[_0x84af('0x3a')]);_0x341e2c[_0x84af('0x4f')]=_[_0x84af('0x50')](_0x341e2c['model'],_0x341e2c['query']);_0x2fc3ba['attributes']=_[_0x84af('0x50')](_0x341e2c[_0x84af('0x4b')],qs['fields'](_0x349382['query'][_0x84af('0x51')]));_0x2fc3ba[_0x84af('0x3c')]=_0x2fc3ba[_0x84af('0x3c')][_0x84af('0x61')]?_0x2fc3ba[_0x84af('0x3c')]:_0x341e2c[_0x84af('0x4b')];_0x2fc3ba[_0x84af('0xc6')]=qs[_0x84af('0xba')](_0x349382['query'][_0x84af('0xba')]);_0x2fc3ba[_0x84af('0x39')]=qs[_0x84af('0x4f')](_[_0x84af('0xbb')](_0x349382[_0x84af('0x3a')],_0x341e2c['filters']));if(_0x349382[_0x84af('0x3a')][_0x84af('0x2b')]){_0x2fc3ba[_0x84af('0x39')]=_[_0x84af('0x52')](_0x2fc3ba['where'],{'$or':_[_0x84af('0x2c')](_0x2fc3ba[_0x84af('0x3c')],function(_0x617b12){var _0xd2eab7={};_0xd2eab7[_0x617b12]={'$like':'%'+_0x349382[_0x84af('0x3a')][_0x84af('0x2b')]+'%'};return _0xd2eab7;})});}_0x2fc3ba[_0x84af('0x4b')]=db[_0x84af('0x34')];_0x2fc3ba['as']='Agents';_0x2fc3ba=_[_0x84af('0x52')]({},_0x2fc3ba,_0x349382['options']);return _0x205940[_0x84af('0xe4')]({'include':[_0x2fc3ba]});}})[_0x84af('0xe')](function(_0x594dac){if(_0x594dac){var _0x4a11c7={},_0x46e655=[],_0xb9964d=0x0;for(var _0x57b67f=0x0;_0x57b67f<_0x594dac[_0x84af('0x61')];_0x57b67f+=0x1){for(var _0x1e079c=0x0,_0x10ea77;_0x1e079c<_0x594dac[_0x57b67f][_0x84af('0x7a')][_0x84af('0x61')];_0x1e079c+=0x1){_0x10ea77=_0x594dac[_0x57b67f][_0x84af('0x7a')][_0x1e079c][_0x84af('0x24')]({'plain':!![]});_0x4a11c7[_0x10ea77['id']]=_0x10ea77;}}_0x4a11c7=_['values'](_0x4a11c7);for(var _0x2e5d0c=qs[_0x84af('0x1c')](_0x349382[_0x84af('0x3a')][_0x84af('0x1c')]);_0x2e5d0c<_0x4a11c7['length']&&_0x46e655[_0x84af('0x61')]<qs['limit'](_0x349382[_0x84af('0x3a')][_0x84af('0x1e')]);_0x2e5d0c+=0x1){if(_0x4a11c7[_0x2e5d0c]){_0x46e655['push'](_0x4a11c7[_0x2e5d0c]);}}return{'count':_0x4a11c7['length'],'rows':_0x46e655};}})['then'](respondWithResult(_0x183c82,null))['catch'](handleError(_0x183c82,null));};exports[_0x84af('0x23')]=function(_0x2deaa0,_0x5914e5){if(_0x2deaa0[_0x84af('0x28')]['id']==_0x2deaa0[_0x84af('0x4a')]['id']){return _0x5914e5[_0x84af('0x20')](0x1f4)['send']({'message':'You\x20can\x27t\x20delete\x20yourself'});}return db[_0x84af('0x34')][_0x84af('0x2f')]({'where':{'id':_0x2deaa0[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x5914e5,null))[_0x84af('0xe')](removeEntity(_0x5914e5,null))[_0x84af('0x18')](handleError(_0x5914e5,null));};exports[_0x84af('0x119')]=function(_0x1feba5,_0x42c28c){return db['User']['find']({'where':{'id':_0x1feba5[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x42c28c,null))[_0x84af('0xe')](function(_0x3d54a8){if(_0x3d54a8){return _0x3d54a8[_0x84af('0x119')](_0x1feba5[_0x84af('0x54')]['ids'],_[_0x84af('0x102')](_0x1feba5[_0x84af('0x54')],['ids','id'])||{})[_0x84af('0x11a')](function(){for(var _0x54586b=0x0;_0x54586b<_0x1feba5['body']['ids'][_0x84af('0x61')];_0x54586b+=0x1){socket[_0x84af('0x9b')](_0x84af('0x11b'),{'ChatInteractionId':Number(_0x1feba5[_0x84af('0x54')][_0x84af('0x57')][_0x54586b]),'UserId':Number(_0x1feba5[_0x84af('0x4a')]['id'])});}return _0x1feba5[_0x84af('0x54')][_0x84af('0x57')];});}})[_0x84af('0xe')](respondWithResult(_0x42c28c,null))[_0x84af('0x18')](handleError(_0x42c28c,null));};exports[_0x84af('0x11c')]=function(_0x2f2190,_0x535202){return db[_0x84af('0x34')][_0x84af('0x2f')]({'where':{'id':_0x2f2190[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x535202,null))[_0x84af('0xe')](function(_0x84d869){if(_0x84d869){return _0x84d869[_0x84af('0x11c')](_0x2f2190[_0x84af('0x3a')][_0x84af('0x57')])[_0x84af('0xe')](function(){if(_[_0x84af('0x11d')](_0x2f2190['query']['ids'])){for(var _0x5b403c=0x0;_0x5b403c<_0x2f2190[_0x84af('0x3a')]['ids']['length'];_0x5b403c+=0x1){socket['emit']('user_has_chat_interactions:remove',{'ChatInteractionId':Number(_0x2f2190[_0x84af('0x3a')][_0x84af('0x57')][_0x5b403c]),'UserId':Number(_0x2f2190[_0x84af('0x4a')]['id'])});}}else{socket['emit'](_0x84af('0x11e'),{'ChatInteractionId':Number(_0x2f2190[_0x84af('0x3a')][_0x84af('0x57')]),'UserId':Number(_0x2f2190[_0x84af('0x4a')]['id'])});}});}})[_0x84af('0xe')](respondWithStatusCode(_0x535202,null))[_0x84af('0x18')](handleError(_0x535202,null));};exports[_0x84af('0x11f')]=function(_0x24bc81,_0x524d79){return db[_0x84af('0x34')][_0x84af('0x2f')]({'where':{'id':_0x24bc81[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x524d79,null))[_0x84af('0xe')](function(_0x5165d8){if(_0x5165d8){return _0x5165d8['addMailInteractions'](_0x24bc81[_0x84af('0x54')][_0x84af('0x57')],_[_0x84af('0x102')](_0x24bc81[_0x84af('0x54')],[_0x84af('0x57'),'id'])||{})[_0x84af('0x11a')](function(){for(var _0xdf923a=0x0;_0xdf923a<_0x24bc81[_0x84af('0x54')][_0x84af('0x57')]['length'];_0xdf923a+=0x1){socket['emit'](_0x84af('0x120'),{'MailInteractionId':Number(_0x24bc81[_0x84af('0x54')][_0x84af('0x57')][_0xdf923a]),'UserId':Number(_0x24bc81[_0x84af('0x4a')]['id'])});}return _0x24bc81[_0x84af('0x54')][_0x84af('0x57')];});}})[_0x84af('0xe')](respondWithResult(_0x524d79,null))[_0x84af('0x18')](handleError(_0x524d79,null));};exports[_0x84af('0x121')]=function(_0x257262,_0xb9aba5){return db['User'][_0x84af('0x2f')]({'where':{'id':_0x257262[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0xb9aba5,null))['then'](function(_0x3446c8){if(_0x3446c8){return _0x3446c8[_0x84af('0x121')](_0x257262[_0x84af('0x3a')]['ids'])[_0x84af('0xe')](function(){if(_[_0x84af('0x11d')](_0x257262[_0x84af('0x3a')][_0x84af('0x57')])){for(var _0x21db0f=0x0;_0x21db0f<_0x257262[_0x84af('0x3a')][_0x84af('0x57')][_0x84af('0x61')];_0x21db0f+=0x1){socket['emit'](_0x84af('0x122'),{'MailInteractionId':Number(_0x257262[_0x84af('0x3a')][_0x84af('0x57')][_0x21db0f]),'UserId':Number(_0x257262[_0x84af('0x4a')]['id'])});}}else{socket[_0x84af('0x9b')](_0x84af('0x122'),{'MailInteractionId':Number(_0x257262[_0x84af('0x3a')]['ids']),'UserId':Number(_0x257262[_0x84af('0x4a')]['id'])});}});}})[_0x84af('0xe')](respondWithStatusCode(_0xb9aba5,null))[_0x84af('0x18')](handleError(_0xb9aba5,null));};exports[_0x84af('0x123')]=function(_0x25b172,_0x3a316f){return db[_0x84af('0x34')][_0x84af('0x2f')]({'where':{'id':_0x25b172[_0x84af('0x4a')]['id']}})['then'](handleEntityNotFound(_0x3a316f,null))[_0x84af('0xe')](function(_0x13cb78){if(_0x13cb78){return _0x13cb78[_0x84af('0x123')](_0x25b172['body'][_0x84af('0x57')],_[_0x84af('0x102')](_0x25b172[_0x84af('0x54')],[_0x84af('0x57'),'id'])||{})[_0x84af('0x11a')](function(){for(var _0x47b48e=0x0;_0x47b48e<_0x25b172[_0x84af('0x54')][_0x84af('0x57')][_0x84af('0x61')];_0x47b48e+=0x1){socket[_0x84af('0x9b')](_0x84af('0x124'),{'FaxInteractionId':Number(_0x25b172[_0x84af('0x54')][_0x84af('0x57')][_0x47b48e]),'UserId':Number(_0x25b172[_0x84af('0x4a')]['id'])});}return _0x25b172[_0x84af('0x54')]['ids'];});}})[_0x84af('0xe')](respondWithResult(_0x3a316f,null))[_0x84af('0x18')](handleError(_0x3a316f,null));};exports['removeFaxInteractions']=function(_0x2c42b3,_0x3f5440){return db[_0x84af('0x34')][_0x84af('0x2f')]({'where':{'id':_0x2c42b3[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x3f5440,null))[_0x84af('0xe')](function(_0x376145){if(_0x376145){return _0x376145[_0x84af('0x125')](_0x2c42b3[_0x84af('0x3a')][_0x84af('0x57')])['then'](function(){if(_[_0x84af('0x11d')](_0x2c42b3[_0x84af('0x3a')][_0x84af('0x57')])){for(var _0x1701ac=0x0;_0x1701ac<_0x2c42b3[_0x84af('0x3a')]['ids'][_0x84af('0x61')];_0x1701ac+=0x1){socket['emit'](_0x84af('0x126'),{'FaxInteractionId':Number(_0x2c42b3[_0x84af('0x3a')][_0x84af('0x57')][_0x1701ac]),'UserId':Number(_0x2c42b3['params']['id'])});}}else{socket[_0x84af('0x9b')](_0x84af('0x126'),{'FaxInteractionId':Number(_0x2c42b3[_0x84af('0x3a')][_0x84af('0x57')]),'UserId':Number(_0x2c42b3['params']['id'])});}});}})[_0x84af('0xe')](respondWithStatusCode(_0x3f5440,null))[_0x84af('0x18')](handleError(_0x3f5440,null));};exports[_0x84af('0x127')]=function(_0x4c7e1e,_0x3fadd1){return db['User'][_0x84af('0x2f')]({'where':{'id':_0x4c7e1e[_0x84af('0x4a')]['id']}})['then'](handleEntityNotFound(_0x3fadd1,null))[_0x84af('0xe')](function(_0x591643){if(_0x591643){return _0x591643['addSmsInteractions'](_0x4c7e1e['body']['ids'],_['omit'](_0x4c7e1e[_0x84af('0x54')],[_0x84af('0x57'),'id'])||{})[_0x84af('0x11a')](function(){for(var _0x47cb4b=0x0;_0x47cb4b<_0x4c7e1e[_0x84af('0x54')][_0x84af('0x57')][_0x84af('0x61')];_0x47cb4b+=0x1){socket[_0x84af('0x9b')]('user_has_sms_interactions:save',{'SmsInteractionId':Number(_0x4c7e1e[_0x84af('0x54')][_0x84af('0x57')][_0x47cb4b]),'UserId':Number(_0x4c7e1e['params']['id'])});}return _0x4c7e1e[_0x84af('0x54')]['ids'];});}})[_0x84af('0xe')](respondWithResult(_0x3fadd1,null))[_0x84af('0x18')](handleError(_0x3fadd1,null));};exports['removeSmsInteractions']=function(_0x18e064,_0x2dfcbf){return db[_0x84af('0x34')]['find']({'where':{'id':_0x18e064[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x2dfcbf,null))['then'](function(_0x4336bf){if(_0x4336bf){return _0x4336bf[_0x84af('0x128')](_0x18e064['query'][_0x84af('0x57')])[_0x84af('0xe')](function(){if(_[_0x84af('0x11d')](_0x18e064['query'][_0x84af('0x57')])){for(var _0x249141=0x0;_0x249141<_0x18e064[_0x84af('0x3a')][_0x84af('0x57')][_0x84af('0x61')];_0x249141+=0x1){socket['emit'](_0x84af('0x129'),{'SmsInteractionId':Number(_0x18e064[_0x84af('0x3a')][_0x84af('0x57')][_0x249141]),'UserId':Number(_0x18e064[_0x84af('0x4a')]['id'])});}}else{socket[_0x84af('0x9b')](_0x84af('0x129'),{'SmsInteractionId':Number(_0x18e064[_0x84af('0x3a')]['ids']),'UserId':Number(_0x18e064[_0x84af('0x4a')]['id'])});}});}})[_0x84af('0xe')](respondWithStatusCode(_0x2dfcbf,null))[_0x84af('0x18')](handleError(_0x2dfcbf,null));};exports[_0x84af('0x12a')]=function(_0x4e7022,_0x4447c7){return db[_0x84af('0x34')][_0x84af('0x2f')]({'where':{'id':_0x4e7022[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x4447c7,null))[_0x84af('0xe')](function(_0x328565){if(_0x328565){return _0x328565[_0x84af('0x12a')](_0x4e7022[_0x84af('0x54')][_0x84af('0x57')],_[_0x84af('0x102')](_0x4e7022[_0x84af('0x54')],[_0x84af('0x57'),'id'])||{})['spread'](function(){for(var _0x21e44b=0x0;_0x21e44b<_0x4e7022[_0x84af('0x54')]['ids'][_0x84af('0x61')];_0x21e44b+=0x1){socket[_0x84af('0x9b')](_0x84af('0x12b'),{'OpenchannelInteractionId':Number(_0x4e7022['body']['ids'][_0x21e44b]),'UserId':Number(_0x4e7022['params']['id'])});}return _0x4e7022['body'][_0x84af('0x57')];});}})[_0x84af('0xe')](respondWithResult(_0x4447c7,null))[_0x84af('0x18')](handleError(_0x4447c7,null));};exports['removeOpenchannelInteractions']=function(_0x4cdab2,_0x42e2e8){return db['User'][_0x84af('0x2f')]({'where':{'id':_0x4cdab2[_0x84af('0x4a')]['id']}})['then'](handleEntityNotFound(_0x42e2e8,null))[_0x84af('0xe')](function(_0x2cec8a){if(_0x2cec8a){return _0x2cec8a[_0x84af('0x12c')](_0x4cdab2[_0x84af('0x3a')]['ids'])['then'](function(){if(_[_0x84af('0x11d')](_0x4cdab2[_0x84af('0x3a')][_0x84af('0x57')])){for(var _0x34d93f=0x0;_0x34d93f<_0x4cdab2[_0x84af('0x3a')][_0x84af('0x57')][_0x84af('0x61')];_0x34d93f+=0x1){socket[_0x84af('0x9b')](_0x84af('0x12d'),{'OpenchannelInteractionId':Number(_0x4cdab2[_0x84af('0x3a')][_0x84af('0x57')][_0x34d93f]),'UserId':Number(_0x4cdab2[_0x84af('0x4a')]['id'])});}}else{socket[_0x84af('0x9b')]('user_has_openchannel_interactions:remove',{'OpenchannelInteractionId':Number(_0x4cdab2[_0x84af('0x3a')]['ids']),'UserId':Number(_0x4cdab2[_0x84af('0x4a')]['id'])});}});}})['then'](respondWithStatusCode(_0x42e2e8,null))[_0x84af('0x18')](handleError(_0x42e2e8,null));};exports['addWhatsappInteractions']=function(_0x463269,_0x14e645){return db['User'][_0x84af('0x2f')]({'where':{'id':_0x463269['params']['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x14e645,null))['then'](function(_0x2c61df){if(_0x2c61df){return _0x2c61df[_0x84af('0x12e')](_0x463269[_0x84af('0x54')][_0x84af('0x57')],_[_0x84af('0x102')](_0x463269[_0x84af('0x54')],[_0x84af('0x57'),'id'])||{})['spread'](function(){for(var _0x5e0247=0x0;_0x5e0247<_0x463269['body'][_0x84af('0x57')][_0x84af('0x61')];_0x5e0247+=0x1){socket[_0x84af('0x9b')](_0x84af('0x12f'),{'WhatsappInteractionId':Number(_0x463269[_0x84af('0x54')][_0x84af('0x57')][_0x5e0247]),'UserId':Number(_0x463269[_0x84af('0x4a')]['id'])});}return _0x463269[_0x84af('0x54')][_0x84af('0x57')];});}})[_0x84af('0xe')](respondWithResult(_0x14e645,null))[_0x84af('0x18')](handleError(_0x14e645,null));};exports['removeWhatsappInteractions']=function(_0x5d9998,_0x57070b){return db[_0x84af('0x34')][_0x84af('0x2f')]({'where':{'id':_0x5d9998[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x57070b,null))[_0x84af('0xe')](function(_0x457fa0){if(_0x457fa0){return _0x457fa0['removeWhatsappInteractions'](_0x5d9998[_0x84af('0x3a')][_0x84af('0x57')]);}})['then'](respondWithStatusCode(_0x57070b,null))[_0x84af('0x18')](handleError(_0x57070b,null));};exports[_0x84af('0x130')]=function(_0xb0c451,_0x177d54){var _0x31025e={};var _0x5aa7c9={};var _0x10bda6;var _0x5f4dec;return db[_0x84af('0x34')][_0x84af('0x8b')]({'where':{'id':_0xb0c451[_0x84af('0x4a')]['id']}})['then'](handleEntityNotFound(_0x177d54,null))[_0x84af('0xe')](function(_0x37e5e7){if(_0x37e5e7){_0x10bda6=_0x37e5e7;_0x5aa7c9['model']=_[_0x84af('0x4d')](db['VoicePrefix'][_0x84af('0x4e')]);_0x5aa7c9['query']=_[_0x84af('0x4d')](_0xb0c451['query']);_0x5aa7c9[_0x84af('0x4f')]=_[_0x84af('0x50')](_0x5aa7c9[_0x84af('0x4b')],_0x5aa7c9[_0x84af('0x3a')]);_0x31025e[_0x84af('0x3c')]=_[_0x84af('0x50')](_0x5aa7c9[_0x84af('0x4b')],qs[_0x84af('0x51')](_0xb0c451[_0x84af('0x3a')][_0x84af('0x51')]));_0x31025e[_0x84af('0x3c')]=_0x31025e[_0x84af('0x3c')]['length']?_0x31025e[_0x84af('0x3c')]:_0x5aa7c9[_0x84af('0x4b')];_0x31025e[_0x84af('0xc6')]=qs[_0x84af('0xba')](_0xb0c451[_0x84af('0x3a')][_0x84af('0xba')]);_0x31025e['where']=qs['filters'](_['pick'](_0xb0c451[_0x84af('0x3a')],_0x5aa7c9[_0x84af('0x4f')]));if(_0xb0c451[_0x84af('0x3a')][_0x84af('0x2b')]){_0x31025e[_0x84af('0x39')]=_['merge'](_0x31025e[_0x84af('0x39')],{'$or':_[_0x84af('0x2c')](_0x31025e[_0x84af('0x3c')],function(_0x4724ef){var _0x24dbb3={};_0x24dbb3[_0x4724ef]={'$like':'%'+_0xb0c451[_0x84af('0x3a')][_0x84af('0x2b')]+'%'};return _0x24dbb3;})});}_0x31025e=_['merge']({},_0x31025e,_0xb0c451['options']);return _0x10bda6[_0x84af('0x130')](_0x31025e);}})['then'](function(_0x2caebb){if(_0x2caebb){_0x5f4dec=_0x2caebb[_0x84af('0x61')];if(!_0xb0c451['query']['hasOwnProperty'](_0x84af('0xc3'))){_0x31025e['limit']=qs[_0x84af('0x1e')](_0xb0c451[_0x84af('0x3a')][_0x84af('0x1e')]);_0x31025e['offset']=qs[_0x84af('0x1c')](_0xb0c451[_0x84af('0x3a')][_0x84af('0x1c')]);}return _0x10bda6[_0x84af('0x130')](_0x31025e);}})[_0x84af('0xe')](function(_0x56fdf7){if(_0x56fdf7){return _0x56fdf7?{'count':_0x5f4dec,'rows':_0x56fdf7}:null;}})[_0x84af('0xe')](respondWithResult(_0x177d54,null))[_0x84af('0x18')](handleError(_0x177d54,null));};exports[_0x84af('0x131')]=function(_0x1a2d58,_0x1ac7d8){var _0x41bc39={};var _0x19f85f={};var _0x80ecc8;var _0x56ae77;return db[_0x84af('0x34')][_0x84af('0x8b')]({'where':{'id':_0x1a2d58[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x1ac7d8,null))[_0x84af('0xe')](function(_0x580228){if(_0x580228){_0x80ecc8=_0x580228;_0x19f85f['model']=_['keys'](db['FaxAccount'][_0x84af('0x4e')]);_0x19f85f[_0x84af('0x3a')]=_[_0x84af('0x4d')](_0x1a2d58[_0x84af('0x3a')]);_0x19f85f['filters']=_[_0x84af('0x50')](_0x19f85f[_0x84af('0x4b')],_0x19f85f[_0x84af('0x3a')]);_0x41bc39['attributes']=_[_0x84af('0x50')](_0x19f85f[_0x84af('0x4b')],qs[_0x84af('0x51')](_0x1a2d58[_0x84af('0x3a')]['fields']));_0x41bc39[_0x84af('0x3c')]=_0x41bc39[_0x84af('0x3c')][_0x84af('0x61')]?_0x41bc39[_0x84af('0x3c')]:_0x19f85f[_0x84af('0x4b')];_0x41bc39[_0x84af('0xc6')]=qs[_0x84af('0xba')](_0x1a2d58[_0x84af('0x3a')][_0x84af('0xba')]);_0x41bc39['where']=qs[_0x84af('0x4f')](_['pick'](_0x1a2d58[_0x84af('0x3a')],_0x19f85f[_0x84af('0x4f')]));if(_0x1a2d58[_0x84af('0x3a')]['filter']){_0x41bc39['where']=_[_0x84af('0x52')](_0x41bc39[_0x84af('0x39')],{'$or':_[_0x84af('0x2c')](_0x41bc39[_0x84af('0x3c')],function(_0x65cd99){var _0x21e62a={};_0x21e62a[_0x65cd99]={'$like':'%'+_0x1a2d58[_0x84af('0x3a')][_0x84af('0x2b')]+'%'};return _0x21e62a;})});}_0x41bc39=_[_0x84af('0x52')]({},_0x41bc39,_0x1a2d58[_0x84af('0x53')]);return _0x80ecc8['getFaxAccounts'](_0x41bc39);}})['then'](function(_0x36677e){if(_0x36677e){_0x56ae77=_0x36677e[_0x84af('0x61')];if(!_0x1a2d58[_0x84af('0x3a')][_0x84af('0xbd')]('nolimit')){_0x41bc39[_0x84af('0x1e')]=qs[_0x84af('0x1e')](_0x1a2d58['query'][_0x84af('0x1e')]);_0x41bc39[_0x84af('0x1c')]=qs[_0x84af('0x1c')](_0x1a2d58[_0x84af('0x3a')][_0x84af('0x1c')]);}return _0x80ecc8[_0x84af('0x131')](_0x41bc39);}})['then'](function(_0x38ca18){if(_0x38ca18){return _0x38ca18?{'count':_0x56ae77,'rows':_0x38ca18}:null;}})[_0x84af('0xe')](respondWithResult(_0x1ac7d8,null))[_0x84af('0x18')](handleError(_0x1ac7d8,null));};exports[_0x84af('0x132')]=function(_0x9edc40,_0x10cbd6){return db[_0x84af('0x34')][_0x84af('0x2f')]({'where':{'id':_0x9edc40[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x10cbd6,null))[_0x84af('0xe')](function(_0x205d6c){if(_0x205d6c){return _0x205d6c[_0x84af('0x132')](_0x9edc40[_0x84af('0x54')][_0x84af('0x57')],_[_0x84af('0x102')](_0x9edc40[_0x84af('0x54')],[_0x84af('0x57'),'id'])||{});}})[_0x84af('0xe')](respondWithResult(_0x10cbd6,null))[_0x84af('0x18')](handleError(_0x10cbd6,null));};exports[_0x84af('0x133')]=function(_0x55a4d0,_0x84cded){return db[_0x84af('0x34')][_0x84af('0x2f')]({'where':{'id':_0x55a4d0[_0x84af('0x4a')]['id']}})['then'](handleEntityNotFound(_0x84cded,null))['then'](function(_0x49abe6){if(_0x49abe6){return _0x49abe6[_0x84af('0x133')](_0x55a4d0[_0x84af('0x3a')][_0x84af('0x57')]);}})[_0x84af('0xe')](respondWithStatusCode(_0x84cded,null))[_0x84af('0x18')](handleError(_0x84cded,null));};exports[_0x84af('0x134')]=function(_0x2b42d8,_0x213ffe){var _0x2c2a03={};var _0x4f757f={};var _0x3c4f53;var _0x32587a;return db[_0x84af('0x34')]['findOne']({'where':{'id':_0x2b42d8[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x213ffe,null))[_0x84af('0xe')](function(_0x13dccf){if(_0x13dccf){_0x3c4f53=_0x13dccf;_0x4f757f[_0x84af('0x4b')]=_[_0x84af('0x4d')](db[_0x84af('0x135')][_0x84af('0x4e')]);_0x4f757f['query']=_[_0x84af('0x4d')](_0x2b42d8[_0x84af('0x3a')]);_0x4f757f[_0x84af('0x4f')]=_[_0x84af('0x50')](_0x4f757f[_0x84af('0x4b')],_0x4f757f['query']);_0x2c2a03[_0x84af('0x3c')]=_[_0x84af('0x50')](_0x4f757f[_0x84af('0x4b')],qs[_0x84af('0x51')](_0x2b42d8['query'][_0x84af('0x51')]));_0x2c2a03[_0x84af('0x3c')]=_0x2c2a03[_0x84af('0x3c')][_0x84af('0x61')]?_0x2c2a03['attributes']:_0x4f757f[_0x84af('0x4b')];_0x2c2a03['order']=qs[_0x84af('0xba')](_0x2b42d8[_0x84af('0x3a')][_0x84af('0xba')]);_0x2c2a03[_0x84af('0x39')]=qs[_0x84af('0x4f')](_['pick'](_0x2b42d8[_0x84af('0x3a')],_0x4f757f[_0x84af('0x4f')]));if(_0x2b42d8['query'][_0x84af('0x2b')]){_0x2c2a03[_0x84af('0x39')]=_[_0x84af('0x52')](_0x2c2a03[_0x84af('0x39')],{'$or':_[_0x84af('0x2c')](_0x2c2a03[_0x84af('0x3c')],function(_0x27e30c){var _0x5ac9dd={};_0x5ac9dd[_0x27e30c]={'$like':'%'+_0x2b42d8[_0x84af('0x3a')]['filter']+'%'};return _0x5ac9dd;})});}_0x2c2a03=_[_0x84af('0x52')]({},_0x2c2a03,_0x2b42d8[_0x84af('0x53')]);return _0x3c4f53[_0x84af('0x134')](_0x2c2a03);}})[_0x84af('0xe')](function(_0x4abc65){if(_0x4abc65){_0x32587a=_0x4abc65[_0x84af('0x61')];if(!_0x2b42d8[_0x84af('0x3a')]['hasOwnProperty']('nolimit')){_0x2c2a03[_0x84af('0x1e')]=qs['limit'](_0x2b42d8['query']['limit']);_0x2c2a03[_0x84af('0x1c')]=qs[_0x84af('0x1c')](_0x2b42d8[_0x84af('0x3a')][_0x84af('0x1c')]);}return _0x3c4f53[_0x84af('0x134')](_0x2c2a03);}})['then'](function(_0xbd3f){if(_0xbd3f){return _0xbd3f?{'count':_0x32587a,'rows':_0xbd3f}:null;}})['then'](respondWithResult(_0x213ffe,null))[_0x84af('0x18')](handleError(_0x213ffe,null));};exports[_0x84af('0x136')]=function(_0x16e2a6,_0x1e26e4){return db[_0x84af('0x34')][_0x84af('0x2f')]({'where':{'id':_0x16e2a6['params']['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x1e26e4,null))[_0x84af('0xe')](function(_0x32429a){if(_0x32429a){return _0x32429a[_0x84af('0x136')](_0x16e2a6['body'][_0x84af('0x57')],_[_0x84af('0x102')](_0x16e2a6[_0x84af('0x54')],[_0x84af('0x57'),'id'])||{});}})[_0x84af('0xe')](respondWithResult(_0x1e26e4,null))[_0x84af('0x18')](handleError(_0x1e26e4,null));};exports['removeMailAccounts']=function(_0x1c6472,_0xea572b){return db['User'][_0x84af('0x2f')]({'where':{'id':_0x1c6472[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0xea572b,null))['then'](function(_0xb40138){if(_0xb40138){return _0xb40138[_0x84af('0x137')](_0x1c6472[_0x84af('0x3a')][_0x84af('0x57')]);}})['then'](respondWithStatusCode(_0xea572b,null))[_0x84af('0x18')](handleError(_0xea572b,null));};exports[_0x84af('0x138')]=function(_0x55138c,_0x2bcf8f){var _0x3913aa={};var _0x38b185={};var _0x3634c4;var _0x36f54b;return db[_0x84af('0x34')][_0x84af('0x8b')]({'where':{'id':_0x55138c[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x2bcf8f,null))[_0x84af('0xe')](function(_0x32e341){if(_0x32e341){_0x3634c4=_0x32e341;_0x38b185['model']=_[_0x84af('0x4d')](db['OpenchannelAccount'][_0x84af('0x4e')]);_0x38b185[_0x84af('0x3a')]=_[_0x84af('0x4d')](_0x55138c[_0x84af('0x3a')]);_0x38b185[_0x84af('0x4f')]=_[_0x84af('0x50')](_0x38b185[_0x84af('0x4b')],_0x38b185['query']);_0x3913aa[_0x84af('0x3c')]=_[_0x84af('0x50')](_0x38b185[_0x84af('0x4b')],qs[_0x84af('0x51')](_0x55138c[_0x84af('0x3a')]['fields']));_0x3913aa['attributes']=_0x3913aa['attributes'][_0x84af('0x61')]?_0x3913aa['attributes']:_0x38b185[_0x84af('0x4b')];_0x3913aa[_0x84af('0xc6')]=qs['sort'](_0x55138c[_0x84af('0x3a')][_0x84af('0xba')]);_0x3913aa[_0x84af('0x39')]=qs['filters'](_[_0x84af('0xbb')](_0x55138c[_0x84af('0x3a')],_0x38b185['filters']));if(_0x55138c['query'][_0x84af('0x2b')]){_0x3913aa[_0x84af('0x39')]=_[_0x84af('0x52')](_0x3913aa[_0x84af('0x39')],{'$or':_[_0x84af('0x2c')](_0x3913aa['attributes'],function(_0x23f622){var _0x5d7495={};_0x5d7495[_0x23f622]={'$like':'%'+_0x55138c[_0x84af('0x3a')][_0x84af('0x2b')]+'%'};return _0x5d7495;})});}_0x3913aa=_[_0x84af('0x52')]({},_0x3913aa,_0x55138c[_0x84af('0x53')]);return _0x3634c4[_0x84af('0x138')](_0x3913aa);}})[_0x84af('0xe')](function(_0x3461dc){if(_0x3461dc){_0x36f54b=_0x3461dc[_0x84af('0x61')];if(!_0x55138c['query'][_0x84af('0xbd')](_0x84af('0xc3'))){_0x3913aa[_0x84af('0x1e')]=qs[_0x84af('0x1e')](_0x55138c[_0x84af('0x3a')]['limit']);_0x3913aa['offset']=qs['offset'](_0x55138c[_0x84af('0x3a')][_0x84af('0x1c')]);}return _0x3634c4[_0x84af('0x138')](_0x3913aa);}})['then'](function(_0x2b993d){if(_0x2b993d){return _0x2b993d?{'count':_0x36f54b,'rows':_0x2b993d}:null;}})['then'](respondWithResult(_0x2bcf8f,null))[_0x84af('0x18')](handleError(_0x2bcf8f,null));};exports['addOpenchannelAccounts']=function(_0x425d24,_0x29624b){return db[_0x84af('0x34')][_0x84af('0x2f')]({'where':{'id':_0x425d24[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x29624b,null))[_0x84af('0xe')](function(_0x35c3e5){if(_0x35c3e5){return _0x35c3e5['addOpenchannelAccounts'](_0x425d24[_0x84af('0x54')][_0x84af('0x57')],_[_0x84af('0x102')](_0x425d24['body'],[_0x84af('0x57'),'id'])||{});}})['then'](respondWithResult(_0x29624b,null))[_0x84af('0x18')](handleError(_0x29624b,null));};exports[_0x84af('0x139')]=function(_0x2ea460,_0xb6ab16){return db[_0x84af('0x34')][_0x84af('0x2f')]({'where':{'id':_0x2ea460[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0xb6ab16,null))[_0x84af('0xe')](function(_0x3340ab){if(_0x3340ab){return _0x3340ab[_0x84af('0x139')](_0x2ea460['query'][_0x84af('0x57')]);}})['then'](respondWithStatusCode(_0xb6ab16,null))[_0x84af('0x18')](handleError(_0xb6ab16,null));};exports[_0x84af('0x13a')]=function(_0x3d5945,_0xe0263c){var _0x2fd10d={};var _0x496aa5={};var _0x5d8958;var _0x1fcf08;return db[_0x84af('0x34')][_0x84af('0x8b')]({'where':{'id':_0x3d5945['params']['id']}})[_0x84af('0xe')](handleEntityNotFound(_0xe0263c,null))[_0x84af('0xe')](function(_0x4aa981){if(_0x4aa981){_0x5d8958=_0x4aa981;_0x496aa5[_0x84af('0x4b')]=_[_0x84af('0x4d')](db[_0x84af('0x13b')][_0x84af('0x4e')]);_0x496aa5['query']=_[_0x84af('0x4d')](_0x3d5945['query']);_0x496aa5['filters']=_[_0x84af('0x50')](_0x496aa5[_0x84af('0x4b')],_0x496aa5[_0x84af('0x3a')]);_0x2fd10d[_0x84af('0x3c')]=_[_0x84af('0x50')](_0x496aa5['model'],qs[_0x84af('0x51')](_0x3d5945[_0x84af('0x3a')]['fields']));_0x2fd10d[_0x84af('0x3c')]=_0x2fd10d[_0x84af('0x3c')][_0x84af('0x61')]?_0x2fd10d[_0x84af('0x3c')]:_0x496aa5[_0x84af('0x4b')];_0x2fd10d[_0x84af('0xc6')]=qs['sort'](_0x3d5945[_0x84af('0x3a')][_0x84af('0xba')]);_0x2fd10d[_0x84af('0x39')]=qs['filters'](_['pick'](_0x3d5945[_0x84af('0x3a')],_0x496aa5['filters']));if(_0x3d5945[_0x84af('0x3a')][_0x84af('0x2b')]){_0x2fd10d[_0x84af('0x39')]=_[_0x84af('0x52')](_0x2fd10d[_0x84af('0x39')],{'$or':_[_0x84af('0x2c')](_0x2fd10d[_0x84af('0x3c')],function(_0x4d63da){var _0x1af3d7={};_0x1af3d7[_0x4d63da]={'$like':'%'+_0x3d5945['query'][_0x84af('0x2b')]+'%'};return _0x1af3d7;})});}_0x2fd10d=_[_0x84af('0x52')]({},_0x2fd10d,_0x3d5945[_0x84af('0x53')]);return _0x5d8958['getSmsAccounts'](_0x2fd10d);}})[_0x84af('0xe')](function(_0x4cd829){if(_0x4cd829){_0x1fcf08=_0x4cd829[_0x84af('0x61')];if(!_0x3d5945['query'][_0x84af('0xbd')]('nolimit')){_0x2fd10d[_0x84af('0x1e')]=qs[_0x84af('0x1e')](_0x3d5945[_0x84af('0x3a')]['limit']);_0x2fd10d[_0x84af('0x1c')]=qs[_0x84af('0x1c')](_0x3d5945[_0x84af('0x3a')]['offset']);}return _0x5d8958['getSmsAccounts'](_0x2fd10d);}})[_0x84af('0xe')](function(_0x520c57){if(_0x520c57){return _0x520c57?{'count':_0x1fcf08,'rows':_0x520c57}:null;}})[_0x84af('0xe')](respondWithResult(_0xe0263c,null))[_0x84af('0x18')](handleError(_0xe0263c,null));};exports[_0x84af('0x13c')]=function(_0x97a8de,_0x30cd74){return db[_0x84af('0x34')][_0x84af('0x2f')]({'where':{'id':_0x97a8de[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x30cd74,null))[_0x84af('0xe')](function(_0x1fb520){if(_0x1fb520){return _0x1fb520[_0x84af('0x13c')](_0x97a8de[_0x84af('0x54')][_0x84af('0x57')],_['omit'](_0x97a8de[_0x84af('0x54')],[_0x84af('0x57'),'id'])||{});}})['then'](respondWithResult(_0x30cd74,null))[_0x84af('0x18')](handleError(_0x30cd74,null));};exports[_0x84af('0x13d')]=function(_0x53b759,_0x5c3b54){return db['User'][_0x84af('0x2f')]({'where':{'id':_0x53b759['params']['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x5c3b54,null))[_0x84af('0xe')](function(_0x251850){if(_0x251850){return _0x251850['removeSmsAccounts'](_0x53b759[_0x84af('0x3a')][_0x84af('0x57')]);}})['then'](respondWithStatusCode(_0x5c3b54,null))[_0x84af('0x18')](handleError(_0x5c3b54,null));};exports[_0x84af('0x13e')]=function(_0x339e32,_0x22f2d4){var _0x30c1a5={};var _0x5eff86={};var _0x2daad8;var _0x190552;return db['User'][_0x84af('0x8b')]({'where':{'id':_0x339e32[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x22f2d4,null))[_0x84af('0xe')](function(_0x5b1440){if(_0x5b1440){_0x2daad8=_0x5b1440;_0x5eff86[_0x84af('0x4b')]=_[_0x84af('0x4d')](db[_0x84af('0x13f')][_0x84af('0x4e')]);_0x5eff86[_0x84af('0x3a')]=_['keys'](_0x339e32[_0x84af('0x3a')]);_0x5eff86[_0x84af('0x4f')]=_[_0x84af('0x50')](_0x5eff86['model'],_0x5eff86[_0x84af('0x3a')]);_0x30c1a5['attributes']=_[_0x84af('0x50')](_0x5eff86[_0x84af('0x4b')],qs['fields'](_0x339e32[_0x84af('0x3a')][_0x84af('0x51')]));_0x30c1a5['attributes']=_0x30c1a5[_0x84af('0x3c')][_0x84af('0x61')]?_0x30c1a5[_0x84af('0x3c')]:_0x5eff86[_0x84af('0x4b')];_0x30c1a5[_0x84af('0xc6')]=qs[_0x84af('0xba')](_0x339e32[_0x84af('0x3a')][_0x84af('0xba')]);_0x30c1a5['where']=qs[_0x84af('0x4f')](_[_0x84af('0xbb')](_0x339e32[_0x84af('0x3a')],_0x5eff86[_0x84af('0x4f')]));if(_0x339e32[_0x84af('0x3a')][_0x84af('0x2b')]){_0x30c1a5[_0x84af('0x39')]=_['merge'](_0x30c1a5[_0x84af('0x39')],{'$or':_[_0x84af('0x2c')](_0x30c1a5[_0x84af('0x3c')],function(_0x554943){var _0x30ab39={};_0x30ab39[_0x554943]={'$like':'%'+_0x339e32[_0x84af('0x3a')][_0x84af('0x2b')]+'%'};return _0x30ab39;})});}_0x30c1a5=_[_0x84af('0x52')]({},_0x30c1a5,_0x339e32[_0x84af('0x53')]);return _0x2daad8[_0x84af('0x13e')](_0x30c1a5);}})[_0x84af('0xe')](function(_0x3142ad){if(_0x3142ad){_0x190552=_0x3142ad[_0x84af('0x61')];if(!_0x339e32[_0x84af('0x3a')][_0x84af('0xbd')](_0x84af('0xc3'))){_0x30c1a5[_0x84af('0x1e')]=qs[_0x84af('0x1e')](_0x339e32['query'][_0x84af('0x1e')]);_0x30c1a5[_0x84af('0x1c')]=qs['offset'](_0x339e32[_0x84af('0x3a')][_0x84af('0x1c')]);}return _0x2daad8[_0x84af('0x13e')](_0x30c1a5);}})[_0x84af('0xe')](function(_0x355522){if(_0x355522){return _0x355522?{'count':_0x190552,'rows':_0x355522}:null;}})[_0x84af('0xe')](respondWithResult(_0x22f2d4,null))['catch'](handleError(_0x22f2d4,null));};exports[_0x84af('0x140')]=function(_0x201f14,_0x1c83a8){return db['User'][_0x84af('0x2f')]({'where':{'id':_0x201f14[_0x84af('0x4a')]['id']}})['then'](handleEntityNotFound(_0x1c83a8,null))[_0x84af('0xe')](function(_0x361336){if(_0x361336){return _0x361336['addChatWebsites'](_0x201f14[_0x84af('0x54')][_0x84af('0x57')],_['omit'](_0x201f14[_0x84af('0x54')],[_0x84af('0x57'),'id'])||{});}})[_0x84af('0xe')](respondWithResult(_0x1c83a8,null))[_0x84af('0x18')](handleError(_0x1c83a8,null));};exports['removeChatWebsites']=function(_0x38737c,_0x5a7bf3){return db[_0x84af('0x34')][_0x84af('0x2f')]({'where':{'id':_0x38737c['params']['id']}})['then'](handleEntityNotFound(_0x5a7bf3,null))[_0x84af('0xe')](function(_0x4d4ad7){if(_0x4d4ad7){return _0x4d4ad7[_0x84af('0x141')](_0x38737c[_0x84af('0x3a')][_0x84af('0x57')]);}})[_0x84af('0xe')](respondWithStatusCode(_0x5a7bf3,null))['catch'](handleError(_0x5a7bf3,null));};exports[_0x84af('0x142')]=function(_0x49af33,_0x4971c1){var _0x22c181={};var _0x972a3b={};var _0x1b9a4e;var _0x4eb5c4;return db[_0x84af('0x34')][_0x84af('0x8b')]({'where':{'id':_0x49af33[_0x84af('0x4a')]['id']}})['then'](handleEntityNotFound(_0x4971c1,null))[_0x84af('0xe')](function(_0x542429){if(_0x542429){_0x1b9a4e=_0x542429;_0x972a3b[_0x84af('0x4b')]=_['keys'](db[_0x84af('0x143')][_0x84af('0x4e')]);_0x972a3b[_0x84af('0x3a')]=_['keys'](_0x49af33[_0x84af('0x3a')]);_0x972a3b[_0x84af('0x4f')]=_[_0x84af('0x50')](_0x972a3b[_0x84af('0x4b')],_0x972a3b[_0x84af('0x3a')]);_0x22c181[_0x84af('0x3c')]=_['intersection'](_0x972a3b[_0x84af('0x4b')],qs['fields'](_0x49af33['query'][_0x84af('0x51')]));_0x22c181[_0x84af('0x3c')]=_0x22c181[_0x84af('0x3c')][_0x84af('0x61')]?_0x22c181[_0x84af('0x3c')]:_0x972a3b[_0x84af('0x4b')];_0x22c181['order']=qs[_0x84af('0xba')](_0x49af33[_0x84af('0x3a')][_0x84af('0xba')]);_0x22c181[_0x84af('0x39')]=qs[_0x84af('0x4f')](_[_0x84af('0xbb')](_0x49af33[_0x84af('0x3a')],_0x972a3b[_0x84af('0x4f')]));if(_0x49af33['query'][_0x84af('0x2b')]){_0x22c181[_0x84af('0x39')]=_['merge'](_0x22c181[_0x84af('0x39')],{'$or':_[_0x84af('0x2c')](_0x22c181[_0x84af('0x3c')],function(_0x132bf0){var _0x4840ab={};_0x4840ab[_0x132bf0]={'$like':'%'+_0x49af33[_0x84af('0x3a')]['filter']+'%'};return _0x4840ab;})});}_0x22c181=_[_0x84af('0x52')]({},_0x22c181,_0x49af33[_0x84af('0x53')]);return _0x1b9a4e[_0x84af('0x142')](_0x22c181);}})[_0x84af('0xe')](function(_0x516ff0){if(_0x516ff0){_0x4eb5c4=_0x516ff0[_0x84af('0x61')];if(!_0x49af33['query'][_0x84af('0xbd')](_0x84af('0xc3'))){_0x22c181[_0x84af('0x1e')]=qs[_0x84af('0x1e')](_0x49af33['query'][_0x84af('0x1e')]);_0x22c181['offset']=qs['offset'](_0x49af33[_0x84af('0x3a')][_0x84af('0x1c')]);}return _0x1b9a4e[_0x84af('0x142')](_0x22c181);}})[_0x84af('0xe')](function(_0x304f27){if(_0x304f27){return _0x304f27?{'count':_0x4eb5c4,'rows':_0x304f27}:null;}})[_0x84af('0xe')](respondWithResult(_0x4971c1,null))['catch'](handleError(_0x4971c1,null));};exports[_0x84af('0x144')]=function(_0x360950,_0x2bcdfe){return db[_0x84af('0x34')][_0x84af('0x2f')]({'where':{'id':_0x360950[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x2bcdfe,null))[_0x84af('0xe')](function(_0x1c9250){if(_0x1c9250){return _0x1c9250[_0x84af('0x144')](_0x360950[_0x84af('0x54')]['ids'],_['omit'](_0x360950[_0x84af('0x54')],[_0x84af('0x57'),'id'])||{});}})[_0x84af('0xe')](respondWithResult(_0x2bcdfe,null))[_0x84af('0x18')](handleError(_0x2bcdfe,null));};exports['removeWhatsappAccounts']=function(_0x4acd25,_0x2b0c1e){return db['User'][_0x84af('0x2f')]({'where':{'id':_0x4acd25['params']['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x2b0c1e,null))['then'](function(_0x54d4e9){if(_0x54d4e9){return _0x54d4e9[_0x84af('0x145')](_0x4acd25[_0x84af('0x3a')][_0x84af('0x57')]);}})[_0x84af('0xe')](respondWithStatusCode(_0x2b0c1e,null))['catch'](handleError(_0x2b0c1e,null));};exports['getSquareProjects']=function(_0x3e5ac9,_0x1472fe){var _0x347d7f={};var _0x41bfca={};var _0x56bba3;var _0x46af30;return db[_0x84af('0x34')][_0x84af('0x8b')]({'where':{'id':_0x3e5ac9[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x1472fe,null))['then'](function(_0x1dc84a){if(_0x1dc84a){_0x56bba3=_0x1dc84a;_0x41bfca[_0x84af('0x4b')]=_[_0x84af('0x4d')](db[_0x84af('0x146')][_0x84af('0x4e')]);_0x41bfca[_0x84af('0x3a')]=_[_0x84af('0x4d')](_0x3e5ac9['query']);_0x41bfca[_0x84af('0x4f')]=_[_0x84af('0x50')](_0x41bfca[_0x84af('0x4b')],_0x41bfca[_0x84af('0x3a')]);_0x347d7f[_0x84af('0x3c')]=_[_0x84af('0x50')](_0x41bfca[_0x84af('0x4b')],qs[_0x84af('0x51')](_0x3e5ac9['query']['fields']));_0x347d7f[_0x84af('0x3c')]=_0x347d7f[_0x84af('0x3c')][_0x84af('0x61')]?_0x347d7f[_0x84af('0x3c')]:_0x41bfca['model'];_0x347d7f['order']=qs[_0x84af('0xba')](_0x3e5ac9[_0x84af('0x3a')][_0x84af('0xba')]);_0x347d7f['where']=qs[_0x84af('0x4f')](_[_0x84af('0xbb')](_0x3e5ac9[_0x84af('0x3a')],_0x41bfca[_0x84af('0x4f')]));if(_0x3e5ac9[_0x84af('0x3a')][_0x84af('0x2b')]){_0x347d7f[_0x84af('0x39')]=_[_0x84af('0x52')](_0x347d7f['where'],{'$or':_[_0x84af('0x2c')](_0x347d7f[_0x84af('0x3c')],function(_0x305808){var _0x6205ba={};_0x6205ba[_0x305808]={'$like':'%'+_0x3e5ac9['query']['filter']+'%'};return _0x6205ba;})});}_0x347d7f=_[_0x84af('0x52')]({},_0x347d7f,_0x3e5ac9[_0x84af('0x53')]);return _0x56bba3[_0x84af('0x147')](_0x347d7f);}})[_0x84af('0xe')](function(_0x2a0f75){if(_0x2a0f75){_0x46af30=_0x2a0f75[_0x84af('0x61')];if(!_0x3e5ac9[_0x84af('0x3a')]['hasOwnProperty'](_0x84af('0xc3'))){_0x347d7f['limit']=qs[_0x84af('0x1e')](_0x3e5ac9[_0x84af('0x3a')]['limit']);_0x347d7f[_0x84af('0x1c')]=qs[_0x84af('0x1c')](_0x3e5ac9[_0x84af('0x3a')][_0x84af('0x1c')]);}return _0x56bba3[_0x84af('0x147')](_0x347d7f);}})[_0x84af('0xe')](function(_0x4e1b57){if(_0x4e1b57){return _0x4e1b57?{'count':_0x46af30,'rows':_0x4e1b57}:null;}})[_0x84af('0xe')](respondWithResult(_0x1472fe,null))['catch'](handleError(_0x1472fe,null));};exports['addSquareProjects']=function(_0x5cd4e5,_0x215ecc){return db[_0x84af('0x34')][_0x84af('0x2f')]({'where':{'id':_0x5cd4e5[_0x84af('0x4a')]['id']}})['then'](handleEntityNotFound(_0x215ecc,null))[_0x84af('0xe')](function(_0x413639){if(_0x413639){return _0x413639[_0x84af('0x148')](_0x5cd4e5[_0x84af('0x54')][_0x84af('0x57')],_[_0x84af('0x102')](_0x5cd4e5[_0x84af('0x54')],[_0x84af('0x57'),'id'])||{});}})[_0x84af('0xe')](respondWithResult(_0x215ecc,null))[_0x84af('0x18')](handleError(_0x215ecc,null));};exports[_0x84af('0x149')]=function(_0x37e4f9,_0x149031){return db[_0x84af('0x34')][_0x84af('0x2f')]({'where':{'id':_0x37e4f9[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x149031,null))[_0x84af('0xe')](function(_0x3da599){if(_0x3da599){return _0x3da599[_0x84af('0x149')](_0x37e4f9[_0x84af('0x3a')][_0x84af('0x57')]);}})[_0x84af('0xe')](respondWithStatusCode(_0x149031,null))[_0x84af('0x18')](handleError(_0x149031,null));};exports[_0x84af('0x14a')]=function(_0xcaff8a,_0xdd2738){var _0x4e2c85={},_0x106cd6={},_0x4f073a={'count':0x0,'rows':[]};var _0x21438d=db[_0x84af('0x14b')]['rawAttributes'];_0x106cd6[_0x84af('0x4b')]=_['keys'](_0x21438d);_0x106cd6[_0x84af('0x3a')]=_[_0x84af('0x4d')](_0xcaff8a[_0x84af('0x3a')]);_0x106cd6['filters']=_[_0x84af('0x50')](_0x106cd6[_0x84af('0x4b')],_0x106cd6['query']);_0x106cd6['filters']=_[_0x84af('0x14c')](_0x106cd6[_0x84af('0x4f')],['$and',_0x84af('0x14d'),_0x84af('0x14e'),_0x84af('0x14f'),'$lt',_0x84af('0x150'),_0x84af('0x151'),'$eq',_0x84af('0x152'),_0x84af('0x153'),_0x84af('0x154'),_0x84af('0x155'),_0x84af('0x156'),_0x84af('0x157'),_0x84af('0x158'),'$iLike',_0x84af('0x159'),_0x84af('0x157'),'$overlap',_0x84af('0x15a'),'$contained','$any']);_0x4e2c85[_0x84af('0x3c')]=_[_0x84af('0x50')](_0x106cd6[_0x84af('0x4b')],qs[_0x84af('0x51')](_0xcaff8a['query']['fields']));_0x4e2c85[_0x84af('0x3c')]=_0x4e2c85[_0x84af('0x3c')][_0x84af('0x61')]?_0x4e2c85['attributes']:_0x106cd6['model'];if(!_0xcaff8a['query'][_0x84af('0xbd')](_0x84af('0xc3'))){_0x4e2c85[_0x84af('0x1e')]=qs[_0x84af('0x1e')](_0xcaff8a[_0x84af('0x3a')]['limit']);_0x4e2c85[_0x84af('0x1c')]=qs[_0x84af('0x1c')](_0xcaff8a[_0x84af('0x3a')][_0x84af('0x1c')]);}_0x4e2c85[_0x84af('0xc6')]=qs['sort'](_0xcaff8a['query'][_0x84af('0xba')]);_0x4e2c85[_0x84af('0x39')]=qs['filters'](_['pick'](_0xcaff8a[_0x84af('0x3a')],_0x106cd6[_0x84af('0x4f')]));if(_0xcaff8a[_0x84af('0x3a')][_0x84af('0x2b')]){_0x4e2c85[_0x84af('0x39')]=_[_0x84af('0x52')](_0x4e2c85[_0x84af('0x39')],{'$or':_[_0x84af('0x2c')](_0x4e2c85[_0x84af('0x3c')],function(_0x36e888){var _0x485046={};_0x485046[_0x36e888]={'$like':'%'+_0xcaff8a[_0x84af('0x3a')][_0x84af('0x2b')]+'%'};return _0x485046;})});}_0x4e2c85[_0x84af('0x39')]={'$and':[_0x4e2c85[_0x84af('0x39')],{'$or':[{'UserId':_0xcaff8a[_0x84af('0x4a')]['id']},{'OwnerId':_0xcaff8a[_0x84af('0x4a')]['id']}]}]};_0x4e2c85=_[_0x84af('0x52')]({},_0x4e2c85,_0xcaff8a[_0x84af('0x53')]);var _0x118e68={'where':_0x4e2c85[_0x84af('0x39')]};return db[_0x84af('0x14b')]['count'](_0x118e68)['then'](function(_0x3e5451){_0x4f073a[_0x84af('0x1f')]=_0x3e5451;if(_0xcaff8a[_0x84af('0x3a')]['includeAll']){_0x4e2c85[_0x84af('0x3b')]=[{'attributes':['id',_0x84af('0x15b'),_0x84af('0x15c'),'phone'],'model':db['CmContact'],'as':_0x84af('0x15d')},{'attributes':['id',_0x84af('0x30'),'dialActive'],'model':db[_0x84af('0x15e')],'as':_0x84af('0xc5')}];}return db[_0x84af('0x14b')][_0x84af('0x3e')](_0x4e2c85);})['then'](function(_0x12e7fd){_0x4f073a[_0x84af('0x3f')]=_0x12e7fd;return _0x4f073a;})[_0x84af('0xe')](respondWithFilteredResult(_0xdd2738,_0x4e2c85))[_0x84af('0x18')](handleError(_0xdd2738,null));};exports[_0x84af('0x15f')]=function(_0x5ba985,_0x2d7376){if(!_[_0x84af('0x5d')](_0x5ba985[_0x84af('0x28')]['id'])&&(_0x5ba985[_0x84af('0x28')]['role']==_0x84af('0x26')||_0x5ba985[_0x84af('0x28')]['role']==_0x84af('0x28'))){return db[_0x84af('0x34')]['findOne']({'where':{'id':_0x5ba985[_0x84af('0x4a')]['id']},'raw':!![]})['then'](function(_0x581e18){return authService[_0x84af('0x160')](_0x581e18);})[_0x84af('0xe')](function(_0x587ae2){if(_0x587ae2){return _0x2d7376[_0x84af('0x20')](0xc8)['json']({'api_key':_0x587ae2[_0x84af('0x161')]});}else{return _0x2d7376[_0x84af('0x20')](0xcc)[_0x84af('0x1b')]({'message':_0x84af('0x162')});}})[_0x84af('0x18')](handleError(_0x2d7376,0x193));}else{return _0x2d7376[_0x84af('0x20')](0x191)[_0x84af('0x1b')]({'message':_0x84af('0x163')});}};exports['createApiKey']=function(_0x6b77a3,_0x5b5b07){if(!_[_0x84af('0x5d')](_0x6b77a3[_0x84af('0x28')]['id'])&&(_0x6b77a3[_0x84af('0x28')][_0x84af('0x25')]==_0x84af('0x26')||_0x6b77a3[_0x84af('0x28')][_0x84af('0x25')]==_0x84af('0x28'))){return db[_0x84af('0x34')]['find']({'where':{'id':_0x6b77a3[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](function(_0x5fb0c1){return authService[_0x84af('0x164')](_0x5fb0c1);})[_0x84af('0xe')](function(_0x3ba296){return db[_0x84af('0x34')][_0x84af('0x22')]({'apiKeyIat':_0x3ba296[_0x84af('0x165')],'apiKeyNonce':_0x3ba296[_0x84af('0x166')]},{'where':{'id':_0x6b77a3[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](function(){return _0x5b5b07['status'](0xc8)['json']({'api_key':_0x3ba296['token']});});})[_0x84af('0x18')](handleError(_0x5b5b07,0x193));}else{return _0x5b5b07[_0x84af('0x20')](0x191)[_0x84af('0x1b')]({'message':_0x84af('0x163')});}};exports['removeApiKey']=function(_0x382709,_0x49bcb6){if(!_[_0x84af('0x5d')](_0x382709[_0x84af('0x28')]['id'])&&(_0x382709[_0x84af('0x28')][_0x84af('0x25')]==_0x84af('0x26')||_0x382709[_0x84af('0x28')][_0x84af('0x25')]=='user')){return db[_0x84af('0x34')][_0x84af('0x2f')]({'where':{'id':_0x382709[_0x84af('0x4a')]['id']}})[_0x84af('0xe')](handleEntityNotFound(_0x49bcb6,null))['then'](function(_0x266f3c){if(_0x266f3c&&_0x266f3c['apiKeyNonce']&&_0x266f3c[_0x84af('0x167')])return _0x266f3c;else throw{'message':_0x84af('0x168')};})[_0x84af('0xe')](function(_0x30ee5c){return db[_0x84af('0x34')][_0x84af('0x22')]({'apiKeyNonce':null,'apiKeyIat':null},{'where':{'id':_0x382709['params']['id']}});})[_0x84af('0xe')](respondWithStatusCode(_0x49bcb6,0xc8))[_0x84af('0x18')](handleError(_0x49bcb6,0x193));}else{return _0x49bcb6[_0x84af('0x20')](0x191)['json']({'message':_0x84af('0x163')});}};exports[_0x84af('0x169')]=function(_0x5a6e6f,_0x5573d3){var _0x415579=_0x5a6e6f[_0x84af('0x28')][_0x84af('0x24')]({'plain':!![]});if(!_0x415579){return _0x5573d3['status'](0x191)[_0x84af('0x32')](_0x84af('0x16a'));}else{return _0x5573d3['status'](0xc8)[_0x84af('0x1b')](_0x415579);}};exports['getPresence']=function(_0x540700,_0x3c60a2){var _0x28a8ba={'offset':0x0},_0x1edce1={'count':0x0,'rows':[]};Promise['resolve']()[_0x84af('0xe')](function(){if(!_0x540700['query']['filter']&&!_0x540700[_0x84af('0x3a')]['teams']&&!_0x540700[_0x84af('0x3a')][_0x84af('0x16b')])return[];return Promise[_0x84af('0xf0')]()[_0x84af('0xe')](function(){var _0x3ab58d=[];if(!_[_0x84af('0x7f')](_0x540700[_0x84af('0x3a')][_0x84af('0x16c')])){_0x3ab58d[_0x84af('0x3d')](db[_0x84af('0x103')]['findAll']({'attributes':['id',_0x84af('0x30')],'where':{'id':_0x540700['query'][_0x84af('0x16c')]}}));}if(!_[_0x84af('0x7f')](_0x540700['query'][_0x84af('0x16b')])){_0x3ab58d[_0x84af('0x3d')](db[_0x84af('0x15e')]['findAll']({'attributes':['id',_0x84af('0x30')],'type':'inbound','where':{'id':_0x540700[_0x84af('0x3a')][_0x84af('0x16b')]}}));}return Promise['all'](_0x3ab58d);})[_0x84af('0xe')](function(_0x3c202e){var _0xa2b3be=_[_0x84af('0x115')](_0x3c202e)[_0x84af('0x2c')](function(_0x441696){return _0x441696[_0x84af('0x118')]({'attributes':['id','name',_0x84af('0x5c'),_0x84af('0x92')],'raw':!![]});});return Promise[_0x84af('0x48')](_0xa2b3be);})[_0x84af('0xe')](function(_0xdf733){var _0x12d7f7=_[_0x84af('0x115')](_0xdf733);if(!_0x540700[_0x84af('0x3a')][_0x84af('0x2b')])return _0x12d7f7;if(_[_0x84af('0x7f')](_0x12d7f7)){return db['User']['findAll']({'attributes':['id',_0x84af('0x30'),'internal',_0x84af('0x92')],'where':{'role':_0x84af('0x29'),'$or':[db[_0x84af('0x5f')][_0x84af('0x39')](db[_0x84af('0x5f')]['fn'](_0x84af('0x16d'),db['sequelize']['col'](_0x84af('0x30'))),{'$like':'%'+_0x540700[_0x84af('0x3a')][_0x84af('0x2b')][_0x84af('0x99')]()+'%'}),{'internal':{'$like':'%'+_0x540700[_0x84af('0x3a')]['filter']+'%'}}]},'raw':!![]});}else{return _(_0x12d7f7)[_0x84af('0x115')]()[_0x84af('0x2b')](function(_0x21660b){return _0x21660b[_0x84af('0x30')][_0x84af('0x99')]()[_0x84af('0x2e')](_0x540700[_0x84af('0x3a')]['filter']['toLowerCase']())||_0x21660b[_0x84af('0x5c')][_0x84af('0x16e')]()[_0x84af('0x2e')](_0x540700[_0x84af('0x3a')]['filter']);})['value']();}})[_0x84af('0xe')](function(_0x383e72){var _0x169eb0='name';var _0x4776c4='asc';if(_0x540700[_0x84af('0x3a')][_0x84af('0xba')]){var _0x4776c4=_0x540700['query']['sort'][0x0]==='-'?'desc':_0x84af('0x16f');var _0x169eb0=_0x4776c4===_0x84af('0x16f')?_0x540700[_0x84af('0x3a')][_0x84af('0xba')]:_0x540700[_0x84af('0x3a')][_0x84af('0xba')][_0x84af('0x170')](0x1);}return _(_0x383e72)[_0x84af('0x171')]('id')[_0x84af('0x172')]([function(_0xe8c4eb){return _0x169eb0==='name'?_0xe8c4eb[_0x169eb0]['toLowerCase']():_0xe8c4eb[_0x169eb0];}],[_0x4776c4])['map'](function(_0x3d91c6){return _[_0x84af('0xbb')](_0x3d91c6,['id',_0x84af('0x30'),_0x84af('0x5c'),_0x84af('0x92')]);})[_0x84af('0x2d')]();})['then'](function(_0x31abd2){return client[_0x84af('0x173')](_0x84af('0x7a'),_0x540700)[_0x84af('0xe')](function(_0x92ccad){if(_0x92ccad['error'])throw new Error(_0x84af('0x174'));var _0x5bb4f2=_0x92ccad[_0x84af('0x17')];var _0x2e6c48=jayson['client'][_0x84af('0xd')]({'port':0x232c});return _0x2e6c48[_0x84af('0x173')](_0x84af('0x7a'),_0x540700)[_0x84af('0xe')](function(_0x3260d1){if(_0x3260d1[_0x84af('0x14')])throw new Error('Unable\x20to\x20retrieve\x20RPC\x20agents\x20(Routing)');var _0x5d9029=_0x3260d1[_0x84af('0x17')];return _[_0x84af('0x52')]({},_0x5d9029,_0x5bb4f2);});})[_0x84af('0xe')](function(_0x3e5547){return _['map'](_0x31abd2,function(_0x475852){var _0x46965f=_[_0x84af('0x2f')](_0x3e5547[_0x84af('0x3f')],['id',_0x475852['id']]);if(!_0x46965f||!_0x475852['online']){_0x475852[_0x84af('0x20')]=_0x84af('0x175');}else if(_0x46965f['voicePause']){_0x475852[_0x84af('0x20')]=_0x84af('0xf2');}else{_0x475852['status']=_[_0x84af('0x2e')]([_0x84af('0x176'),'unknown',_0x84af('0x177'),_0x84af('0x178'),null,undefined],_0x46965f[_0x84af('0x179')])?'online':'busy';}return _0x475852;});});});})['then'](function(_0x56742a){if(!_0x540700[_0x84af('0x3a')][_0x84af('0xbd')](_0x84af('0xc3'))){_0x28a8ba[_0x84af('0x1e')]=qs['limit'](_0x540700['query'][_0x84af('0x1e')]||0xa);_0x28a8ba[_0x84af('0x1c')]=qs[_0x84af('0x1c')](_0x540700['query'][_0x84af('0x1c')]);}_0x1edce1[_0x84af('0x1f')]=_0x56742a[_0x84af('0x61')];_0x1edce1['rows']=_0x28a8ba[_0x84af('0x1e')]?_0x56742a[_0x84af('0x17a')](_0x28a8ba['offset'],_0x28a8ba[_0x84af('0x1c')]+_0x28a8ba[_0x84af('0x1e')]):_0x56742a;return _0x1edce1;})['then'](respondWithFilteredResult(_0x3c60a2,_0x28a8ba))[_0x84af('0x18')](handleError(_0x3c60a2,null));};function get_open_tabs(_0x3c12d1,_0x5f5063){var _0x4659d0=_0x3c12d1[_0x84af('0x17b')](0x0)[_0x84af('0x17c')]()+_0x3c12d1[_0x84af('0x17a')](0x1);var _0x23a45f={'type':db['Sequelize']['QueryTypes'][_0x84af('0x60')],'raw':!![]};return new BPromise(function(_0x22b7f9,_0x397170){var _0x28a5ab=squel['select']()[_0x84af('0x17d')](_0x84af('0x17e')+_0x4659d0+_0x84af('0x17f'),'id')['field'](_0x84af('0x180'))['from'](_0x84af('0x181')+_0x3c12d1+'_interactions','ui')[_0x84af('0x39')]('ui.UserId\x20=\x20?',_0x5f5063['id']);return db[_0x84af('0x5f')]['query'](_0x28a5ab[_0x84af('0x16e')](),_0x23a45f)[_0x84af('0xe')](function(_0x48564e){_0x5f5063[_0x4659d0+_0x84af('0x182')]=_0x48564e;_0x22b7f9(_0x48564e);})[_0x84af('0x18')](function(_0x179721){_0x397170(_0x179721);});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5361=['setMaxListeners','save','remove','emit','hasOwnProperty','hook','exports','events','../../mysqldb','User'];(function(_0x31ade7,_0x4a2dab){var _0x1b20ad=function(_0x46b0fc){while(--_0x46b0fc){_0x31ade7['push'](_0x31ade7['shift']());}};_0x1b20ad(++_0x4a2dab);}(_0x5361,0x6b));var _0x1536=function(_0x3070dc,_0x40cf11){_0x3070dc=_0x3070dc-0x0;var _0x431489=_0x5361[_0x3070dc];return _0x431489;};'use strict';var EventEmitter=require(_0x1536('0x0'));var User=require(_0x1536('0x1'))['db'][_0x1536('0x2')];var UserEvents=new EventEmitter();UserEvents[_0x1536('0x3')](0x0);var events={'afterCreate':_0x1536('0x4'),'afterUpdate':'update','afterDestroy':_0x1536('0x5')};function emitEvent(_0x32447f){return function(_0x49f41b,_0x26fd77,_0x85a119){UserEvents[_0x1536('0x6')](_0x32447f+':'+_0x49f41b['id'],_0x49f41b);UserEvents[_0x1536('0x6')](_0x32447f,_0x49f41b);_0x85a119(null);};}for(var e in events){if(events[_0x1536('0x7')](e)){var event=events[e];User[_0x1536('0x8')](e,emitEvent(event));}}module[_0x1536('0x9')]=UserEvents;
\ No newline at end of file
+var _0x1ebd=['events','../../mysqldb','User','save','update','remove','emit','hasOwnProperty','exports'];(function(_0x3640dd,_0xb59290){var _0x1e83c4=function(_0x281e9c){while(--_0x281e9c){_0x3640dd['push'](_0x3640dd['shift']());}};_0x1e83c4(++_0xb59290);}(_0x1ebd,0x90));var _0xd1eb=function(_0x3dab66,_0x39b5c1){_0x3dab66=_0x3dab66-0x0;var _0x2ccaa5=_0x1ebd[_0x3dab66];return _0x2ccaa5;};'use strict';var EventEmitter=require(_0xd1eb('0x0'));var User=require(_0xd1eb('0x1'))['db'][_0xd1eb('0x2')];var UserEvents=new EventEmitter();UserEvents['setMaxListeners'](0x0);var events={'afterCreate':_0xd1eb('0x3'),'afterUpdate':_0xd1eb('0x4'),'afterDestroy':_0xd1eb('0x5')};function emitEvent(_0x5a58c9){return function(_0xc4cd70,_0x11af25,_0x2b320){UserEvents[_0xd1eb('0x6')](_0x5a58c9+':'+_0xc4cd70['id'],_0xc4cd70);UserEvents[_0xd1eb('0x6')](_0x5a58c9,_0xc4cd70);_0x2b320(null);};}for(var e in events){if(events[_0xd1eb('0x7')](e)){var event=events[e];User['hook'](e,emitEvent(event));}}module[_0xd1eb('0x8')]=UserEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x75d7=['bluebird','crypto','util','md5','lodash','length','from-sip','system','format','%s%s','prefix','push','merge','CDR(type)=%s','chanspy','record','MixMonitor','${UNIQUEID}.%s,a','recordingFormat','auth','Authenticate','password','ChanSpy','name','options','join','StopMixMonitor','wav','WAV','gsm','Set','extensionMonitor','includes','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','Dial','SIP/%s,,tTxXU(xcally-mixmonitor-context)','SIP/%s,,tTxX','Hangup','priority','defaults','VoiceChanSpy','findAll','concat','catch','exports','models','define','User','users','utf8','userProfileId','resolve','UserProfile','find','then','changed','privacyEnabled','updateMd5Password','updatePassword','internal','VoiceExtension','bulkCreate','context','destroy','encryptPassword','function','Missing\x20Callback','toString','base64','salt','sha1','pbkdf2','provider','Invalid\x20password','makeSalt','md5secret',':asterisk:'];(function(_0x480bc8,_0x1fac40){var _0x28c245=function(_0x22a049){while(--_0x22a049){_0x480bc8['push'](_0x480bc8['shift']());}};_0x28c245(++_0x1fac40);}(_0x75d7,0x9a));var _0x775d=function(_0x4b4f24,_0x5654a8){_0x4b4f24=_0x4b4f24-0x0;var _0x1c13d4=_0x75d7[_0x4b4f24];return _0x1c13d4;};'use strict';var BPromise=require(_0x775d('0x0'));var crypto=require(_0x775d('0x1'));var util=require(_0x775d('0x2'));var md5=require(_0x775d('0x3'));var _=require(_0x775d('0x4'));var attributes=require('./user.attributes');var authTypes=['google'];var validatePresenceOf=function(_0x3663f4){return _0x3663f4&&_0x3663f4[_0x775d('0x5')];};var getChanSpyApplications=function(_0x512be8,_0x52f145,_0x5a3f30){var _0x5896a9={'context':_0x512be8['context']||_0x775d('0x6'),'type':_0x775d('0x7'),'isApp':![],'UserId':_0x512be8['id']};var _0x286a74=[];for(var _0x3c1414=0x0,_0x111e78=0x1;_0x3c1414<_0x5a3f30[_0x775d('0x5')];_0x3c1414++,_0x111e78=0x1){var _0x51d27e={'exten':util[_0x775d('0x8')](_0x775d('0x9'),_0x5a3f30[_0x3c1414][_0x775d('0xa')],_0x52f145),'ChanSpyId':_0x5a3f30[_0x3c1414]['id']};_0x286a74[_0x775d('0xb')](_[_0x775d('0xc')]({'app':'Set','appdata':util[_0x775d('0x8')](_0x775d('0xd'),_0x775d('0xe')),'priority':_0x111e78++},_0x5896a9,_0x51d27e));if(_0x5a3f30[_0x3c1414][_0x775d('0xf')]){_0x286a74['push'](_['merge']({'app':_0x775d('0x10'),'appdata':util[_0x775d('0x8')](_0x775d('0x11'),_0x5a3f30[_0x3c1414][_0x775d('0x12')]),'priority':_0x111e78++},_0x5896a9,_0x51d27e));}if(_0x5a3f30[_0x3c1414][_0x775d('0x13')]){_0x286a74['push'](_['merge']({'app':_0x775d('0x14'),'appdata':_0x5a3f30[_0x3c1414][_0x775d('0x15')],'priority':_0x111e78++},_0x5896a9,_0x51d27e));}_0x286a74['push'](_[_0x775d('0xc')]({'app':_0x775d('0x16'),'appdata':util['format']('SIP/%s,%s',_0x512be8[_0x775d('0x17')],_0x5a3f30[_0x3c1414][_0x775d('0x18')]?_0x5a3f30[_0x3c1414][_0x775d('0x18')][_0x775d('0x19')](''):''),'priority':_0x111e78++},_0x5896a9,_0x51d27e));if(_0x5a3f30[_0x3c1414][_0x775d('0xf')]){_0x286a74[_0x775d('0xb')](_[_0x775d('0xc')]({'app':_0x775d('0x1a'),'priority':_0x111e78++},_0x5896a9,_0x51d27e));}}return _0x286a74;};var getUserApplications=function(_0x2a143b,_0x219019){var _0x2e147c=[_0x775d('0x1b'),_0x775d('0x1c'),_0x775d('0x1d')];var _0xb95fc5={'context':_0x2a143b['context']||_0x775d('0x6'),'exten':_0x219019,'type':_0x775d('0x7'),'isApp':![],'UserId':_0x2a143b['id']};var _0x566385=[{'app':_0x775d('0x1e'),'appdata':'CDR(type)=internal'}];if(_0x2a143b[_0x775d('0x1f')]&&_[_0x775d('0x20')](_0x2e147c,_0x2a143b[_0x775d('0x1f')])){_0x566385[_0x775d('0xb')]({'app':_0x775d('0x1e'),'appdata':_0x775d('0x21')});_0x566385['push']({'app':_0x775d('0x1e'),'appdata':util[_0x775d('0x8')]('_XCALLY_MIXMONITOR_FORMAT=%s',_0x2a143b[_0x775d('0x1f')])});_0x566385[_0x775d('0xb')]({'app':_0x775d('0x22'),'appdata':util['format'](_0x775d('0x23'),_0x2a143b[_0x775d('0x17')])});}else{_0x566385[_0x775d('0xb')]({'app':'Dial','appdata':util['format'](_0x775d('0x24'),_0x2a143b[_0x775d('0x17')])});}_0x566385[_0x775d('0xb')]({'app':_0x775d('0x25')});for(var _0x51b7a7=0x0;_0x51b7a7<_0x566385['length'];_0x51b7a7++){_0x566385[_0x51b7a7][_0x775d('0x26')]=_0x51b7a7+0x1;_0x566385[_0x51b7a7]=_[_0x775d('0x27')](_0x566385[_0x51b7a7],_0xb95fc5);}return _0x566385;};var getChanSpyPromise=function(_0x1612df,_0x52753e){return new BPromise(function(_0x23abcd,_0xf8588c){return _0x1612df[_0x775d('0x28')][_0x775d('0x29')]()['then'](function(_0x1ec857){if(_0x1ec857){var _0x143708=getChanSpyApplications(_0x52753e,_0x52753e['internal'],_0x1ec857);if(_0x52753e['internal']!=_0x52753e['name']){_0x143708=_0x143708[_0x775d('0x2a')](getChanSpyApplications(_0x52753e,_0x52753e[_0x775d('0x17')],_0x1ec857));}return _0x23abcd(_0x143708);}return _0x23abcd([]);})[_0x775d('0x2b')](function(_0x189ac1){_0xf8588c(_0x189ac1);});});};module[_0x775d('0x2c')]=function(_0x2b6df6,_0x3feedf){var _0x5e5d18=_0x2b6df6[_0x775d('0x2d')];return _0x2b6df6[_0x775d('0x2e')](_0x775d('0x2f'),attributes,{'tableName':_0x775d('0x30'),'charset':_0x775d('0x31'),'collate':'utf8_bin','hooks':{'beforeCreate':function(_0x4cbab9,_0x3aaf25,_0x5d1a01){var _0x21e46f=typeof _0x4cbab9[_0x775d('0x32')]==='undefined'?BPromise[_0x775d('0x33')](null):_0x5e5d18[_0x775d('0x34')][_0x775d('0x35')]({'where':{'id':_0x4cbab9[_0x775d('0x32')]}});_0x21e46f[_0x775d('0x36')](function(_0x1bf4b0){if(_0x1bf4b0){_0x4cbab9['privacyEnabled']=_0x1bf4b0['privacyEnabled'];}})['then'](function(){_0x4cbab9['updateMd5Password']();_0x4cbab9['updatePassword'](_0x5d1a01);})[_0x775d('0x2b')](function(_0x29c09f){_0x5d1a01(_0x29c09f);});},'beforeUpdate':function(_0x758581,_0x348d0c,_0x4a6e09){Promise[_0x775d('0x33')]()[_0x775d('0x36')](function(){if(_0x758581[_0x775d('0x37')](_0x775d('0x32'))===![])return;return _0x5e5d18[_0x775d('0x34')][_0x775d('0x35')]({'where':{'id':_0x758581[_0x775d('0x32')]}})[_0x775d('0x36')](function(_0x1eff1c){if(_0x1eff1c)_0x758581[_0x775d('0x38')]=_0x1eff1c[_0x775d('0x38')];return;});})[_0x775d('0x36')](function(){if(_0x758581[_0x775d('0x37')](_0x775d('0x15'))){_0x758581[_0x775d('0x39')]();return _0x758581[_0x775d('0x3a')](_0x4a6e09);}_0x4a6e09();})[_0x775d('0x2b')](function(_0x319be9){_0x4a6e09(_0x319be9);});},'afterCreate':function(_0x1e1f8c,_0x1fda99,_0xc16f61){var _0x20b72a=getUserApplications(_0x1e1f8c,_0x1e1f8c[_0x775d('0x3b')]);if(_0x1e1f8c[_0x775d('0x3b')]!=_0x1e1f8c[_0x775d('0x17')]){_0x20b72a=_0x20b72a[_0x775d('0x2a')](getUserApplications(_0x1e1f8c,_0x1e1f8c[_0x775d('0x17')]));}return _0x5e5d18[_0x775d('0x3c')][_0x775d('0x3d')](_0x20b72a)[_0x775d('0x36')](function(){if(_0x1e1f8c[_0x775d('0xe')]){return getChanSpyPromise(_0x5e5d18,_0x1e1f8c);}})[_0x775d('0x36')](function(_0x431f13){if(_0x431f13&&_0x431f13[_0x775d('0x5')]){return _0x5e5d18[_0x775d('0x3c')]['bulkCreate'](_0x431f13);}})[_0x775d('0x36')](function(){_0xc16f61();})[_0x775d('0x2b')](function(_0x4acab7){_0xc16f61(_0x4acab7);});},'afterUpdate':function(_0x5b3ef3,_0x3f5d4d,_0x47fbca){return BPromise[_0x775d('0x33')]()[_0x775d('0x36')](function(){if(_0x5b3ef3[_0x775d('0x37')](_0x775d('0xe'))||_0x5b3ef3[_0x775d('0x37')](_0x775d('0x3e'))){return _0x5e5d18[_0x775d('0x3c')][_0x775d('0x3f')]({'where':{'UserId':_0x5b3ef3['id'],'type':_0x775d('0x7'),'ChanSpyId':{'$ne':null}}})[_0x775d('0x36')](function(){if(_0x5b3ef3[_0x775d('0xe')]){return getChanSpyPromise(_0x5e5d18,_0x5b3ef3)['then'](function(_0x4f7cdd){if(_0x4f7cdd&&_0x4f7cdd['length']){return _0x5e5d18['VoiceExtension'][_0x775d('0x3d')](_0x4f7cdd);}});}});}})[_0x775d('0x36')](function(){if(_0x5b3ef3[_0x775d('0x37')]('extensionMonitor')||_0x5b3ef3['changed'](_0x775d('0x3e'))){return _0x5e5d18[_0x775d('0x3c')]['destroy']({'where':{'UserId':_0x5b3ef3['id'],'type':_0x775d('0x7'),'ChanSpyId':null}})[_0x775d('0x36')](function(){var _0x266e6c=getUserApplications(_0x5b3ef3,_0x5b3ef3[_0x775d('0x3b')]);if(_0x5b3ef3[_0x775d('0x3b')]!=_0x5b3ef3[_0x775d('0x17')]){_0x266e6c=_0x266e6c[_0x775d('0x2a')](getUserApplications(_0x5b3ef3,_0x5b3ef3[_0x775d('0x17')]));}return _0x5e5d18[_0x775d('0x3c')][_0x775d('0x3d')](_0x266e6c);});}})[_0x775d('0x36')](function(){_0x47fbca();})[_0x775d('0x2b')](function(_0x4df254){_0x47fbca(_0x4df254);});},'afterDestroy':function(_0x19f567,_0x513c5e){return _0x5e5d18['VoiceExtension']['destroy']({'where':{'UserId':_0x19f567['id'],'type':'system'}});}},'instanceMethods':{'authenticate':function(_0x4b9cb0,_0x2a3695){if(!_0x2a3695){return this[_0x775d('0x15')]===this[_0x775d('0x40')](_0x4b9cb0);}var _0x4fe9cc=this;this[_0x775d('0x40')](_0x4b9cb0,function(_0x34add5,_0x41aac8){if(_0x34add5){_0x2a3695(_0x34add5);}if(_0x4fe9cc[_0x775d('0x15')]===_0x41aac8){_0x2a3695(null,!![]);}else{_0x2a3695(null,![]);}});},'makeSalt':function(_0x4ec0d2,_0x43c570){var _0x3f02ba=0x10;if(typeof arguments[0x0]===_0x775d('0x41')){_0x43c570=arguments[0x0];_0x4ec0d2=_0x3f02ba;}else if(typeof arguments[0x1]===_0x775d('0x41')){_0x43c570=arguments[0x1];}else{throw new Error(_0x775d('0x42'));}if(!_0x4ec0d2){_0x4ec0d2=_0x3f02ba;}return crypto['randomBytes'](_0x4ec0d2,function(_0x44a652,_0x6d6afc){if(_0x44a652){_0x43c570(_0x44a652);}return _0x43c570(null,_0x6d6afc[_0x775d('0x43')](_0x775d('0x44')));});},'encryptPassword':function(_0x117f85,_0x4036be){if(!_0x117f85||!this[_0x775d('0x45')]){return _0x4036be?_0x4036be(null):null;}var _0x578765=0x2710;var _0xaca4ab=0x40;var _0x394cd5=new Buffer(this[_0x775d('0x45')],_0x775d('0x44'));if(!_0x4036be){return crypto['pbkdf2Sync'](_0x117f85,_0x394cd5,_0x578765,_0xaca4ab,_0x775d('0x46'))['toString']('base64');}return crypto[_0x775d('0x47')](_0x117f85,_0x394cd5,_0x578765,_0xaca4ab,_0x775d('0x46'),function(_0x388355,_0x24faf8){if(_0x388355){_0x4036be(_0x388355);}return _0x4036be(null,_0x24faf8[_0x775d('0x43')](_0x775d('0x44')));});},'updatePassword':function(_0x1f0923){if(!this['password']){return _0x1f0923(null);}if(!validatePresenceOf(this[_0x775d('0x15')])&&authTypes['indexOf'](this[_0x775d('0x48')])===-0x1){_0x1f0923(new Error(_0x775d('0x49')));}var _0x36d49=this;this[_0x775d('0x4a')](function(_0x24793e,_0x4500d0){if(_0x24793e){return _0x1f0923(_0x24793e);}_0x36d49[_0x775d('0x45')]=_0x4500d0;_0x36d49[_0x775d('0x40')](_0x36d49['password'],function(_0x39667d,_0x4ef75f){if(_0x39667d){_0x1f0923(_0x39667d);}_0x36d49[_0x775d('0x15')]=_0x4ef75f;_0x1f0923(null);});});},'updateMd5Password':function(){this[_0x775d('0x4b')]=md5(this[_0x775d('0x17')]+_0x775d('0x4c')+this[_0x775d('0x15')]);return this[_0x775d('0x4b')];}}});};
\ No newline at end of file
+var _0x6b36=['utf8','utf8_bin','UserProfile','find','userProfileId','privacyEnabled','updateMd5Password','catch','resolve','changed','updatePassword','VoiceExtension','bulkCreate','destroy','encryptPassword','function','Missing\x20Callback','base64','salt','pbkdf2Sync','pbkdf2','sha1','toString','indexOf','md5secret',':asterisk:','bluebird','crypto','md5','lodash','./user.attributes','google','length','context','from-sip','system','format','%s%s','prefix','Set','chanspy','record','push','merge','MixMonitor','${UNIQUEID}.%s,a','recordingFormat','password','ChanSpy','SIP/%s,%s','name','options','StopMixMonitor','wav','gsm','CDR(type)=internal','extensionMonitor','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','SIP/%s,,tTxXU(xcally-mixmonitor-context)','SIP/%s,,tTxX','VoiceChanSpy','findAll','then','internal','concat','exports','models','define','User','users'];(function(_0x2072f4,_0x1f2f7e){var _0x330448=function(_0x27be6a){while(--_0x27be6a){_0x2072f4['push'](_0x2072f4['shift']());}};_0x330448(++_0x1f2f7e);}(_0x6b36,0xa6));var _0x66b3=function(_0x245a1a,_0x1c8bed){_0x245a1a=_0x245a1a-0x0;var _0x4c0615=_0x6b36[_0x245a1a];return _0x4c0615;};'use strict';var BPromise=require(_0x66b3('0x0'));var crypto=require(_0x66b3('0x1'));var util=require('util');var md5=require(_0x66b3('0x2'));var _=require(_0x66b3('0x3'));var attributes=require(_0x66b3('0x4'));var authTypes=[_0x66b3('0x5')];var validatePresenceOf=function(_0xdd6624){return _0xdd6624&&_0xdd6624[_0x66b3('0x6')];};var getChanSpyApplications=function(_0x7287b9,_0x122ffb,_0x14778c){var _0x1b9108={'context':_0x7287b9[_0x66b3('0x7')]||_0x66b3('0x8'),'type':_0x66b3('0x9'),'isApp':![],'UserId':_0x7287b9['id']};var _0x1cd50e=[];for(var _0x57d0eb=0x0,_0x50967c=0x1;_0x57d0eb<_0x14778c[_0x66b3('0x6')];_0x57d0eb++,_0x50967c=0x1){var _0x5c3ecd={'exten':util[_0x66b3('0xa')](_0x66b3('0xb'),_0x14778c[_0x57d0eb][_0x66b3('0xc')],_0x122ffb),'ChanSpyId':_0x14778c[_0x57d0eb]['id']};_0x1cd50e['push'](_['merge']({'app':_0x66b3('0xd'),'appdata':util[_0x66b3('0xa')]('CDR(type)=%s',_0x66b3('0xe')),'priority':_0x50967c++},_0x1b9108,_0x5c3ecd));if(_0x14778c[_0x57d0eb][_0x66b3('0xf')]){_0x1cd50e[_0x66b3('0x10')](_[_0x66b3('0x11')]({'app':_0x66b3('0x12'),'appdata':util[_0x66b3('0xa')](_0x66b3('0x13'),_0x14778c[_0x57d0eb][_0x66b3('0x14')]),'priority':_0x50967c++},_0x1b9108,_0x5c3ecd));}if(_0x14778c[_0x57d0eb]['auth']){_0x1cd50e[_0x66b3('0x10')](_[_0x66b3('0x11')]({'app':'Authenticate','appdata':_0x14778c[_0x57d0eb][_0x66b3('0x15')],'priority':_0x50967c++},_0x1b9108,_0x5c3ecd));}_0x1cd50e[_0x66b3('0x10')](_[_0x66b3('0x11')]({'app':_0x66b3('0x16'),'appdata':util[_0x66b3('0xa')](_0x66b3('0x17'),_0x7287b9[_0x66b3('0x18')],_0x14778c[_0x57d0eb][_0x66b3('0x19')]?_0x14778c[_0x57d0eb][_0x66b3('0x19')]['join'](''):''),'priority':_0x50967c++},_0x1b9108,_0x5c3ecd));if(_0x14778c[_0x57d0eb][_0x66b3('0xf')]){_0x1cd50e['push'](_[_0x66b3('0x11')]({'app':_0x66b3('0x1a'),'priority':_0x50967c++},_0x1b9108,_0x5c3ecd));}}return _0x1cd50e;};var getUserApplications=function(_0x24f20f,_0x11b521){var _0x4097f8=[_0x66b3('0x1b'),'WAV',_0x66b3('0x1c')];var _0x1e18b9={'context':_0x24f20f[_0x66b3('0x7')]||_0x66b3('0x8'),'exten':_0x11b521,'type':_0x66b3('0x9'),'isApp':![],'UserId':_0x24f20f['id']};var _0x443ce7=[{'app':'Set','appdata':_0x66b3('0x1d')}];if(_0x24f20f['extensionMonitor']&&_['includes'](_0x4097f8,_0x24f20f[_0x66b3('0x1e')])){_0x443ce7[_0x66b3('0x10')]({'app':'Set','appdata':_0x66b3('0x1f')});_0x443ce7[_0x66b3('0x10')]({'app':_0x66b3('0xd'),'appdata':util[_0x66b3('0xa')]('_XCALLY_MIXMONITOR_FORMAT=%s',_0x24f20f[_0x66b3('0x1e')])});_0x443ce7[_0x66b3('0x10')]({'app':'Dial','appdata':util[_0x66b3('0xa')](_0x66b3('0x20'),_0x24f20f['name'])});}else{_0x443ce7[_0x66b3('0x10')]({'app':'Dial','appdata':util['format'](_0x66b3('0x21'),_0x24f20f[_0x66b3('0x18')])});}_0x443ce7['push']({'app':'Hangup'});for(var _0x1e559a=0x0;_0x1e559a<_0x443ce7[_0x66b3('0x6')];_0x1e559a++){_0x443ce7[_0x1e559a]['priority']=_0x1e559a+0x1;_0x443ce7[_0x1e559a]=_['defaults'](_0x443ce7[_0x1e559a],_0x1e18b9);}return _0x443ce7;};var getChanSpyPromise=function(_0x450407,_0x4ff424){return new BPromise(function(_0xbe29e,_0x241464){return _0x450407[_0x66b3('0x22')][_0x66b3('0x23')]()[_0x66b3('0x24')](function(_0x32d552){if(_0x32d552){var _0x4dcf46=getChanSpyApplications(_0x4ff424,_0x4ff424['internal'],_0x32d552);if(_0x4ff424[_0x66b3('0x25')]!=_0x4ff424[_0x66b3('0x18')]){_0x4dcf46=_0x4dcf46[_0x66b3('0x26')](getChanSpyApplications(_0x4ff424,_0x4ff424[_0x66b3('0x18')],_0x32d552));}return _0xbe29e(_0x4dcf46);}return _0xbe29e([]);})['catch'](function(_0x4bfaf7){_0x241464(_0x4bfaf7);});});};module[_0x66b3('0x27')]=function(_0x3a1add,_0x503cad){var _0xbc3a1f=_0x3a1add[_0x66b3('0x28')];return _0x3a1add[_0x66b3('0x29')](_0x66b3('0x2a'),attributes,{'tableName':_0x66b3('0x2b'),'charset':_0x66b3('0x2c'),'collate':_0x66b3('0x2d'),'hooks':{'beforeCreate':function(_0x187b35,_0x39001c,_0x21b11f){var _0x4d515d=typeof _0x187b35['userProfileId']==='undefined'?BPromise['resolve'](null):_0xbc3a1f[_0x66b3('0x2e')][_0x66b3('0x2f')]({'where':{'id':_0x187b35[_0x66b3('0x30')]}});_0x4d515d[_0x66b3('0x24')](function(_0x224bc8){if(_0x224bc8){_0x187b35[_0x66b3('0x31')]=_0x224bc8[_0x66b3('0x31')];}})[_0x66b3('0x24')](function(){_0x187b35[_0x66b3('0x32')]();_0x187b35['updatePassword'](_0x21b11f);})[_0x66b3('0x33')](function(_0x541c83){_0x21b11f(_0x541c83);});},'beforeUpdate':function(_0x5a581b,_0x58df28,_0x13a21c){Promise[_0x66b3('0x34')]()['then'](function(){if(_0x5a581b[_0x66b3('0x35')](_0x66b3('0x30'))===![])return;return _0xbc3a1f[_0x66b3('0x2e')][_0x66b3('0x2f')]({'where':{'id':_0x5a581b[_0x66b3('0x30')]}})[_0x66b3('0x24')](function(_0x5c9f48){if(_0x5c9f48)_0x5a581b[_0x66b3('0x31')]=_0x5c9f48[_0x66b3('0x31')];return;});})[_0x66b3('0x24')](function(){if(_0x5a581b[_0x66b3('0x35')](_0x66b3('0x15'))){_0x5a581b[_0x66b3('0x32')]();return _0x5a581b[_0x66b3('0x36')](_0x13a21c);}_0x13a21c();})[_0x66b3('0x33')](function(_0x2d2931){_0x13a21c(_0x2d2931);});},'afterCreate':function(_0x2d0b45,_0x16e39c,_0x53165e){var _0x12072c=getUserApplications(_0x2d0b45,_0x2d0b45[_0x66b3('0x25')]);if(_0x2d0b45[_0x66b3('0x25')]!=_0x2d0b45[_0x66b3('0x18')]){_0x12072c=_0x12072c[_0x66b3('0x26')](getUserApplications(_0x2d0b45,_0x2d0b45[_0x66b3('0x18')]));}return _0xbc3a1f[_0x66b3('0x37')][_0x66b3('0x38')](_0x12072c)[_0x66b3('0x24')](function(){if(_0x2d0b45[_0x66b3('0xe')]){return getChanSpyPromise(_0xbc3a1f,_0x2d0b45);}})['then'](function(_0x52b1d3){if(_0x52b1d3&&_0x52b1d3[_0x66b3('0x6')]){return _0xbc3a1f[_0x66b3('0x37')]['bulkCreate'](_0x52b1d3);}})[_0x66b3('0x24')](function(){_0x53165e();})[_0x66b3('0x33')](function(_0x1b0253){_0x53165e(_0x1b0253);});},'afterUpdate':function(_0x227b1a,_0x57d3fe,_0x5e8538){return BPromise['resolve']()[_0x66b3('0x24')](function(){if(_0x227b1a[_0x66b3('0x35')](_0x66b3('0xe'))||_0x227b1a['changed'](_0x66b3('0x7'))){return _0xbc3a1f[_0x66b3('0x37')]['destroy']({'where':{'UserId':_0x227b1a['id'],'type':_0x66b3('0x9'),'ChanSpyId':{'$ne':null}}})[_0x66b3('0x24')](function(){if(_0x227b1a[_0x66b3('0xe')]){return getChanSpyPromise(_0xbc3a1f,_0x227b1a)[_0x66b3('0x24')](function(_0x208e1a){if(_0x208e1a&&_0x208e1a[_0x66b3('0x6')]){return _0xbc3a1f[_0x66b3('0x37')][_0x66b3('0x38')](_0x208e1a);}});}});}})[_0x66b3('0x24')](function(){if(_0x227b1a[_0x66b3('0x35')](_0x66b3('0x1e'))||_0x227b1a['changed'](_0x66b3('0x7'))){return _0xbc3a1f['VoiceExtension'][_0x66b3('0x39')]({'where':{'UserId':_0x227b1a['id'],'type':_0x66b3('0x9'),'ChanSpyId':null}})['then'](function(){var _0xb0da3f=getUserApplications(_0x227b1a,_0x227b1a[_0x66b3('0x25')]);if(_0x227b1a['internal']!=_0x227b1a[_0x66b3('0x18')]){_0xb0da3f=_0xb0da3f[_0x66b3('0x26')](getUserApplications(_0x227b1a,_0x227b1a['name']));}return _0xbc3a1f[_0x66b3('0x37')][_0x66b3('0x38')](_0xb0da3f);});}})[_0x66b3('0x24')](function(){_0x5e8538();})[_0x66b3('0x33')](function(_0x38b9e6){_0x5e8538(_0x38b9e6);});},'afterDestroy':function(_0x165111,_0x21d5ee){return _0xbc3a1f[_0x66b3('0x37')][_0x66b3('0x39')]({'where':{'UserId':_0x165111['id'],'type':_0x66b3('0x9')}});}},'instanceMethods':{'authenticate':function(_0x21c374,_0x178d9a){if(!_0x178d9a){return this['password']===this['encryptPassword'](_0x21c374);}var _0x78dee4=this;this[_0x66b3('0x3a')](_0x21c374,function(_0x2d9dbd,_0xacc915){if(_0x2d9dbd){_0x178d9a(_0x2d9dbd);}if(_0x78dee4['password']===_0xacc915){_0x178d9a(null,!![]);}else{_0x178d9a(null,![]);}});},'makeSalt':function(_0x27fde4,_0x237f3e){var _0x45e7dc=0x10;if(typeof arguments[0x0]===_0x66b3('0x3b')){_0x237f3e=arguments[0x0];_0x27fde4=_0x45e7dc;}else if(typeof arguments[0x1]===_0x66b3('0x3b')){_0x237f3e=arguments[0x1];}else{throw new Error(_0x66b3('0x3c'));}if(!_0x27fde4){_0x27fde4=_0x45e7dc;}return crypto['randomBytes'](_0x27fde4,function(_0x3fcac6,_0x431bfe){if(_0x3fcac6){_0x237f3e(_0x3fcac6);}return _0x237f3e(null,_0x431bfe['toString'](_0x66b3('0x3d')));});},'encryptPassword':function(_0x2252e4,_0xb384a8){if(!_0x2252e4||!this['salt']){return _0xb384a8?_0xb384a8(null):null;}var _0x230ce2=0x2710;var _0x5007b8=0x40;var _0xee628f=new Buffer(this[_0x66b3('0x3e')],_0x66b3('0x3d'));if(!_0xb384a8){return crypto[_0x66b3('0x3f')](_0x2252e4,_0xee628f,_0x230ce2,_0x5007b8,'sha1')['toString']('base64');}return crypto[_0x66b3('0x40')](_0x2252e4,_0xee628f,_0x230ce2,_0x5007b8,_0x66b3('0x41'),function(_0x4d1532,_0x551e43){if(_0x4d1532){_0xb384a8(_0x4d1532);}return _0xb384a8(null,_0x551e43[_0x66b3('0x42')]('base64'));});},'updatePassword':function(_0x5bd890){if(!this[_0x66b3('0x15')]){return _0x5bd890(null);}if(!validatePresenceOf(this[_0x66b3('0x15')])&&authTypes[_0x66b3('0x43')](this['provider'])===-0x1){_0x5bd890(new Error('Invalid\x20password'));}var _0x1333fd=this;this['makeSalt'](function(_0x26b7ab,_0x38dea9){if(_0x26b7ab){return _0x5bd890(_0x26b7ab);}_0x1333fd[_0x66b3('0x3e')]=_0x38dea9;_0x1333fd['encryptPassword'](_0x1333fd[_0x66b3('0x15')],function(_0x5ac811,_0xa62932){if(_0x5ac811){_0x5bd890(_0x5ac811);}_0x1333fd[_0x66b3('0x15')]=_0xa62932;_0x5bd890(null);});});},'updateMd5Password':function(){this[_0x66b3('0x44')]=md5(this['name']+_0x66b3('0x45')+this['password']);return this['md5secret'];}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb6b6=['YYYY-MM-DD\x20HH:mm:ss','updateAttributes','getChannels','forEach','isNil','format','SIP/%s','body','DEFAULT\x20PAUSE','uniqueid','bulkCreate','type','UnpauseUser','findOne','channel','isValidChannel','UserVoiceQueueRt','find','fax','sms','whatsapp','PAUSE','system','set','Pause','push','all','LogoutUser','destroy','LoginUser','mobile','phone','loginInPause','count','agent','../../config/license/util','getLicense','agents','Maximum\x20login\x20has\x20been\x20reached','upsert','UserVoiceQueue.penalty','LOGIN','callysquare','LOGININPAUSE','concat','lodash','util','bluebird','randomstring','../../config/logger','rpc','../../config/environment','client','redis','localhost','socket.io-emitter','./user.socket','request','info','User,\x20%s,\x20%s','request\x20sent','stringify','error','message','result','GetUser','User','options','raw','where','limit','map','include','model','attributes','then','debug','catch','ShowUser','role','internal','interface','update','MemberReport','findAll','name','length'];(function(_0x14b5af,_0x5c6711){var _0x123289=function(_0x4ac6dd){while(--_0x4ac6dd){_0x14b5af['push'](_0x14b5af['shift']());}};_0x123289(++_0x5c6711);}(_0xb6b6,0x84));var _0x6b6b=function(_0x4a9fb1,_0x273043){_0x4a9fb1=_0x4a9fb1-0x0;var _0x348672=_0xb6b6[_0x4a9fb1];return _0x348672;};'use strict';var _=require(_0x6b6b('0x0'));var util=require(_0x6b6b('0x1'));var moment=require('moment');var BPromise=require(_0x6b6b('0x2'));var rs=require(_0x6b6b('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x6b6b('0x4'))(_0x6b6b('0x5'));var config=require(_0x6b6b('0x6'));var jayson=require('jayson/promise');var client=jayson[_0x6b6b('0x7')]['http']({'port':0x232a});config[_0x6b6b('0x8')]=_['defaults'](config['redis'],{'host':_0x6b6b('0x9'),'port':0x18eb});var socket=require(_0x6b6b('0xa'))(new Redis(config[_0x6b6b('0x8')]));require(_0x6b6b('0xb'))['register'](socket);function respondWithRpcPromise(_0x4e248a,_0x3d0b87,_0xc3e4e7){return new BPromise(function(_0x26b8e0,_0x5ad5c0){return client[_0x6b6b('0xc')](_0x4e248a,_0xc3e4e7)['then'](function(_0x30f48d){logger[_0x6b6b('0xd')](_0x6b6b('0xe'),_0x3d0b87,_0x6b6b('0xf'));logger['debug']('User,\x20%s,\x20%s,\x20%s',_0x3d0b87,'request\x20sent',JSON[_0x6b6b('0x10')](_0x30f48d));if(_0x30f48d[_0x6b6b('0x11')]){if(_0x30f48d['error']['code']===0x1f4){logger[_0x6b6b('0x11')]('User,\x20%s,\x20%s',_0x3d0b87,_0x30f48d['error'][_0x6b6b('0x12')]);return _0x5ad5c0(_0x30f48d[_0x6b6b('0x11')][_0x6b6b('0x12')]);}logger[_0x6b6b('0x11')]('User,\x20%s,\x20%s',_0x3d0b87,_0x30f48d['error']['message']);return _0x26b8e0(_0x30f48d[_0x6b6b('0x11')][_0x6b6b('0x12')]);}else{logger[_0x6b6b('0xd')]('User,\x20%s,\x20%s',_0x3d0b87,_0x6b6b('0xf'));_0x26b8e0(_0x30f48d[_0x6b6b('0x13')][_0x6b6b('0x12')]);}})['catch'](function(_0x5dc6e7){logger[_0x6b6b('0x11')](_0x6b6b('0xe'),_0x3d0b87,_0x5dc6e7);_0x5ad5c0(_0x5dc6e7);});});}exports[_0x6b6b('0x14')]=function(_0x4014c3){var _0x1df559=this;return new Promise(function(_0x28e1c9,_0xaac2c4){return db[_0x6b6b('0x15')]['findAll']({'raw':_0x4014c3[_0x6b6b('0x16')]?_0x4014c3['options'][_0x6b6b('0x17')]===undefined?!![]:![]:!![],'where':_0x4014c3['options']?_0x4014c3[_0x6b6b('0x16')][_0x6b6b('0x18')]||null:null,'attributes':_0x4014c3['options']?_0x4014c3[_0x6b6b('0x16')]['attributes']||null:null,'limit':_0x4014c3[_0x6b6b('0x16')]?_0x4014c3['options'][_0x6b6b('0x19')]||null:null,'include':_0x4014c3[_0x6b6b('0x16')]?_0x4014c3['options']['include']?_[_0x6b6b('0x1a')](_0x4014c3[_0x6b6b('0x16')][_0x6b6b('0x1b')],function(_0x26a2c4){return{'model':db[_0x26a2c4[_0x6b6b('0x1c')]],'as':_0x26a2c4['as'],'attributes':_0x26a2c4[_0x6b6b('0x1d')],'include':_0x26a2c4[_0x6b6b('0x1b')]?_[_0x6b6b('0x1a')](_0x26a2c4['include'],function(_0x522110){return{'model':db[_0x522110[_0x6b6b('0x1c')]],'as':_0x522110['as'],'attributes':_0x522110[_0x6b6b('0x1d')],'include':_0x522110[_0x6b6b('0x1b')]?_['map'](_0x522110[_0x6b6b('0x1b')],function(_0x482afd){return{'model':db[_0x482afd[_0x6b6b('0x1c')]],'as':_0x482afd['as'],'attributes':_0x482afd['attributes']};}):[]};}):[]};}):[]:[]})[_0x6b6b('0x1e')](function(_0x303689){logger[_0x6b6b('0xd')](_0x6b6b('0x14'),_0x4014c3);logger[_0x6b6b('0x1f')](_0x6b6b('0x14'),_0x4014c3,JSON['stringify'](_0x303689));_0x28e1c9(_0x303689);})[_0x6b6b('0x20')](function(_0x31c7d8){logger['error'](_0x6b6b('0x14'),_0x31c7d8[_0x6b6b('0x12')],_0x4014c3);_0xaac2c4(_0x1df559[_0x6b6b('0x11')](0x1f4,_0x31c7d8['message']));});});};exports['ShowUser']=function(_0x21af92){var _0x51755c=this;return new Promise(function(_0x3b93a9,_0x3327d9){return db[_0x6b6b('0x15')]['find']({'raw':_0x21af92[_0x6b6b('0x16')]?_0x21af92[_0x6b6b('0x16')]['raw']===undefined?!![]:![]:!![],'where':_0x21af92[_0x6b6b('0x16')]?_0x21af92[_0x6b6b('0x16')][_0x6b6b('0x18')]||null:null,'attributes':_0x21af92[_0x6b6b('0x16')]?_0x21af92['options']['attributes']||null:null,'include':_0x21af92[_0x6b6b('0x16')]?_0x21af92[_0x6b6b('0x16')]['include']?_[_0x6b6b('0x1a')](_0x21af92[_0x6b6b('0x16')][_0x6b6b('0x1b')],function(_0x2e12de){return{'model':db[_0x2e12de['model']],'as':_0x2e12de['as'],'attributes':_0x2e12de[_0x6b6b('0x1d')],'include':_0x2e12de[_0x6b6b('0x1b')]?_[_0x6b6b('0x1a')](_0x2e12de['include'],function(_0x4f55a7){return{'model':db[_0x4f55a7[_0x6b6b('0x1c')]],'as':_0x4f55a7['as'],'attributes':_0x4f55a7[_0x6b6b('0x1d')],'include':_0x4f55a7[_0x6b6b('0x1b')]?_[_0x6b6b('0x1a')](_0x4f55a7[_0x6b6b('0x1b')],function(_0x21cf3a){return{'model':db[_0x21cf3a['model']],'as':_0x21cf3a['as'],'attributes':_0x21cf3a['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x2e1242){logger[_0x6b6b('0xd')](_0x6b6b('0x21'),_0x21af92);logger[_0x6b6b('0x1f')](_0x6b6b('0x21'),_0x21af92,JSON['stringify'](_0x2e1242));_0x3b93a9(_0x2e1242);})[_0x6b6b('0x20')](function(_0x461217){logger['error']('ShowUser',_0x461217[_0x6b6b('0x12')],_0x21af92);_0x3327d9(_0x51755c[_0x6b6b('0x11')](0x1f4,_0x461217[_0x6b6b('0x12')]));});});};exports['PauseUser']=function(_0xfd2b5d){var _0x3e2464=this;return new Promise(function(_0xc4faf7,_0x5672df){var _0x25a22f;return db[_0x6b6b('0x15')]['find']({'where':_0xfd2b5d['options'][_0x6b6b('0x18')]||{},'attributes':['id','name',_0x6b6b('0x22'),_0x6b6b('0x23'),_0x6b6b('0x24')]})[_0x6b6b('0x1e')](function(_0x5500a6){if(_0x5500a6){_0x25a22f=_0x5500a6;return db['UserVoiceQueueRt'][_0x6b6b('0x25')]({'paused':0x1},{'where':{'UserId':_0x25a22f['id']},'individualHooks':!![]});}})[_0x6b6b('0x1e')](function(){if(_0x25a22f){return db[_0x6b6b('0x26')][_0x6b6b('0x27')]({'where':{'membername':_0x25a22f[_0x6b6b('0x28')],'type':'PAUSE','exitAt':null}});}})['then'](function(_0x543b15){if(_0x25a22f){if(_0x543b15&&_0x543b15[_0x6b6b('0x29')]){var _0x353d05=moment()['format'](_0x6b6b('0x2a'));for(var _0x166b3a=0x0,_0x54c217=_0x543b15[_0x6b6b('0x29')];_0x166b3a<_0x54c217;_0x166b3a++){_0x543b15[_0x166b3a][_0x6b6b('0x2b')]({'exitAt':_0x353d05});}}}})[_0x6b6b('0x1e')](function(){if(_0x25a22f){var _0x210414=[];var _0x4f847b=utils[_0x6b6b('0x2c')]();_0x4f847b[_0x6b6b('0x2d')](function(_0x479f0f){_0x210414['push']({'channel':_0x479f0f,'membername':_0x25a22f['name'],'interface':_[_0x6b6b('0x2e')](_0x25a22f[_0x6b6b('0x24')])?util[_0x6b6b('0x2f')](_0x6b6b('0x30'),_0x25a22f[_0x6b6b('0x28')]):_0x25a22f[_0x6b6b('0x24')],'type':'PAUSE','enterAt':moment()[_0x6b6b('0x2f')]('YYYY-MM-DD\x20HH:mm:ss'),'data1':_0xfd2b5d[_0x6b6b('0x31')]['type']||_0x6b6b('0x32'),'role':_0x25a22f[_0x6b6b('0x22')],'internal':_0x25a22f[_0x6b6b('0x23')],'uniqueid':_0xfd2b5d['body'][_0x6b6b('0x33')]||null});});return db['MemberReport'][_0x6b6b('0x34')](_0x210414,{'individualHooks':!![]});}})[_0x6b6b('0x1e')](function(){if(_0x25a22f){return _0x25a22f['update']({'voicePause':!![],'mailPause':!![],'chatPause':!![],'faxPause':!![],'smsPause':!![],'openchannelPause':!![],'whatsappPause':!![],'pauseType':_0xfd2b5d[_0x6b6b('0x31')][_0x6b6b('0x35')]||_0x6b6b('0x32'),'lastPauseAt':moment()[_0x6b6b('0x2f')](_0x6b6b('0x2a'))});}})['then'](function(_0xd11f48){_0xc4faf7(_0xd11f48);})['catch'](function(_0x1a6c1b){_0x5672df(_0x3e2464['error'](0x1f4,_0x1a6c1b[_0x6b6b('0x12')]));});});};exports[_0x6b6b('0x36')]=function(_0x2a2da3){var _0x42065a=this;return new Promise(function(_0x4e8d9f,_0x55739a){var _0x44fbd9;return db['User'][_0x6b6b('0x37')]({'where':_0x2a2da3['options'][_0x6b6b('0x18')]||{},'attributes':['id','name']})['then'](function(_0x2eaad4){if(_0x2eaad4){_0x44fbd9=_0x2eaad4;if(_0x2a2da3['body'][_0x6b6b('0x38')]&&!utils[_0x6b6b('0x39')](_0x2a2da3[_0x6b6b('0x31')][_0x6b6b('0x38')])){throw new Error('Unknown\x20channel');}switch(_0x2a2da3[_0x6b6b('0x31')][_0x6b6b('0x38')]){case'voice':return db[_0x6b6b('0x3a')][_0x6b6b('0x25')]({'paused':0x0},{'where':{'UserId':_0x44fbd9['id']}})[_0x6b6b('0x1e')](function(){return db[_0x6b6b('0x26')][_0x6b6b('0x3b')]({'where':{'channel':_0x2a2da3[_0x6b6b('0x31')][_0x6b6b('0x38')],'membername':_0x44fbd9[_0x6b6b('0x28')],'type':'PAUSE','exitAt':null}});})[_0x6b6b('0x1e')](function(_0x5ba338){if(_0x5ba338){return _0x5ba338[_0x6b6b('0x25')]({'exitAt':moment()[_0x6b6b('0x2f')]('YYYY-MM-DD\x20HH:mm:ss'),'data2':'system'},{'individualHooks':!![]});}return null;})[_0x6b6b('0x1e')](function(){return _0x44fbd9['update']({'voicePause':![]});});case'mail':case'chat':case _0x6b6b('0x3c'):case _0x6b6b('0x3d'):case'openchannel':case _0x6b6b('0x3e'):return db[_0x6b6b('0x26')]['find']({'where':{'channel':_0x2a2da3[_0x6b6b('0x31')][_0x6b6b('0x38')],'membername':_0x44fbd9[_0x6b6b('0x28')],'type':_0x6b6b('0x3f'),'exitAt':null}})[_0x6b6b('0x1e')](function(_0x2431ff){return _0x2431ff[_0x6b6b('0x25')]({'exitAt':moment()[_0x6b6b('0x2f')](_0x6b6b('0x2a')),'data2':_0x6b6b('0x40')},{'individualHooks':!![]});})[_0x6b6b('0x1e')](function(){var _0x3b390e={};_[_0x6b6b('0x41')](_0x3b390e,util[_0x6b6b('0x2f')]('%s%s',_0x2a2da3[_0x6b6b('0x31')]['channel'],_0x6b6b('0x42')),![]);return _0x44fbd9[_0x6b6b('0x25')](_0x3b390e);});default:return db[_0x6b6b('0x3a')][_0x6b6b('0x25')]({'paused':0x0},{'where':{'UserId':_0x44fbd9['id']}})[_0x6b6b('0x1e')](function(){return db[_0x6b6b('0x26')][_0x6b6b('0x27')]({'where':{'membername':_0x44fbd9[_0x6b6b('0x28')],'type':_0x6b6b('0x3f'),'exitAt':null}});})['then'](function(_0xb26f14){var _0x4b61b0=[];_0xb26f14[_0x6b6b('0x2d')](function(_0x20ec14){_0x4b61b0[_0x6b6b('0x43')](_0x20ec14['update']({'exitAt':moment()[_0x6b6b('0x2f')](_0x6b6b('0x2a')),'data2':'system'}));});return BPromise[_0x6b6b('0x44')](_0x4b61b0);})['then'](function(){return _0x44fbd9[_0x6b6b('0x25')]({'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![],'whatsappPause':![]});});}}})[_0x6b6b('0x1e')](function(_0x4654f0){_0x4e8d9f(_0x4654f0);})[_0x6b6b('0x20')](function(_0x5a0e00){_0x55739a(_0x42065a[_0x6b6b('0x11')](0x1f4,_0x5a0e00[_0x6b6b('0x12')]));});});};exports[_0x6b6b('0x45')]=function(_0x323ad6){var _0x44c8ae=this;return new Promise(function(_0x437e9d,_0x45f2ab){var _0x43163f;return db['User'][_0x6b6b('0x37')]({'where':_0x323ad6[_0x6b6b('0x16')][_0x6b6b('0x18')]||{},'attributes':['id','name']})[_0x6b6b('0x1e')](function(_0x79c0d5){if(_0x79c0d5){_0x43163f=_0x79c0d5;return db[_0x6b6b('0x3a')][_0x6b6b('0x46')]({'where':{'membername':_0x43163f[_0x6b6b('0x28')]},'individualHooks':!![]});}})[_0x6b6b('0x1e')](function(){if(_0x43163f){return db['MemberReport'][_0x6b6b('0x27')]({'where':{'membername':_0x43163f['name'],'exitAt':null}});}})[_0x6b6b('0x1e')](function(_0x355fe6){if(_0x43163f){if(_0x355fe6&&_0x355fe6[_0x6b6b('0x29')]){var _0x472f35=[];_0x355fe6[_0x6b6b('0x2d')](function(_0x349fd8){_0x472f35['push'](_0x349fd8[_0x6b6b('0x25')]({'exitAt':moment()[_0x6b6b('0x2f')](_0x6b6b('0x2a'))}));});return BPromise[_0x6b6b('0x44')](_0x472f35);}}})['then'](function(){if(_0x43163f){return _0x43163f[_0x6b6b('0x25')]({'online':![],'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![]});}})[_0x6b6b('0x1e')](function(_0x4bc5e4){_0x437e9d(_0x4bc5e4);})[_0x6b6b('0x20')](function(_0x4ee5f9){_0x45f2ab(_0x44c8ae[_0x6b6b('0x11')](0x1f4,_0x4ee5f9[_0x6b6b('0x12')]));});});};exports[_0x6b6b('0x47')]=function(_0x192fd7){var _0x474e27=this;return new Promise(function(_0x30ade6,_0x29f337){var _0x386267;var _0xe64304;var _0x3ce64e;var _0x587aad;return db['User'][_0x6b6b('0x37')]({'where':_0x192fd7[_0x6b6b('0x16')]['where']||{},'attributes':['id',_0x6b6b('0x28'),_0x6b6b('0x22'),_0x6b6b('0x48'),_0x6b6b('0x49'),'internal',_0x6b6b('0x4a'),_0x6b6b('0x24')]})[_0x6b6b('0x1e')](function(_0x2b5064){if(_0x2b5064){_0x386267=_0x2b5064;_0x587aad=_0x192fd7[_0x6b6b('0x31')]['interface']?_0x192fd7['body'][_0x6b6b('0x24')]:util[_0x6b6b('0x2f')]('SIP/%s',_0x386267[_0x6b6b('0x28')]);return db[_0x6b6b('0x15')][_0x6b6b('0x4b')]({'where':{'role':_0x6b6b('0x4c'),'online':!![],'id':{'$ne':_0x386267['id']}}});}})[_0x6b6b('0x1e')](function(_0x187b01){if(_0x187b01){_0x3ce64e=_0x187b01;return require(_0x6b6b('0x4d'))[_0x6b6b('0x4e')]();}})[_0x6b6b('0x1e')](function(_0xc5c6d4){if(_0xc5c6d4&&_0xc5c6d4[_0x6b6b('0x4f')]&&_0x3ce64e>=_0xc5c6d4[_0x6b6b('0x4f')]){throw new Error(_0x6b6b('0x50'));}})[_0x6b6b('0x1e')](function(){if(_0x386267){return db[_0x6b6b('0x3a')][_0x6b6b('0x46')]({'where':{'membername':_0x386267['name']},'individualHooks':!![]});}})['then'](function(){if(_0x386267){return _0x386267['getVoiceQueues']({'raw':!![]});}})[_0x6b6b('0x1e')](function(_0x54fd94){if(_0x386267){if(_0x54fd94){var _0x264c9f=[];_0xe64304=_0x54fd94;if(_0xe64304[_0x6b6b('0x29')]){for(var _0x26a055=0x0;_0x26a055<_0xe64304[_0x6b6b('0x29')];_0x26a055++){_0x264c9f[_0x6b6b('0x43')](db[_0x6b6b('0x3a')][_0x6b6b('0x51')]({'membername':_0x386267[_0x6b6b('0x28')],'UserId':_0x386267['id'],'queue_name':_0xe64304[_0x26a055][_0x6b6b('0x28')],'VoiceQueueId':_0xe64304[_0x26a055]['id'],'interface':_0x587aad,'paused':_0x386267[_0x6b6b('0x4a')]||![],'penalty':_0xe64304[_0x26a055][_0x6b6b('0x52')]||0x0}));}return BPromise[_0x6b6b('0x44')](_0x264c9f);}}}})[_0x6b6b('0x1e')](function(){if(_0x386267){return db[_0x6b6b('0x26')][_0x6b6b('0x27')]({'where':{'membername':_0x386267[_0x6b6b('0x28')],'exitAt':null}});}})[_0x6b6b('0x1e')](function(_0x39596a){if(_0x386267){if(_0x39596a&&_0x39596a[_0x6b6b('0x29')]){var _0x414923=[];_0x39596a['forEach'](function(_0x215bdb){_0x414923[_0x6b6b('0x43')](_0x215bdb[_0x6b6b('0x25')]({'exitAt':moment()[_0x6b6b('0x2f')](_0x6b6b('0x2a'))}));});return BPromise[_0x6b6b('0x44')](_0x414923);}}})[_0x6b6b('0x1e')](function(_0x3decda){if(_0x386267){var _0x83508d=[];var _0x190f56=[];var _0x3a1969=utils['getChannels']();var _0x5cb44f={'membername':_0x386267['name'],'interface':_0x587aad,'enterAt':moment()[_0x6b6b('0x2f')](_0x6b6b('0x2a')),'role':_0x386267[_0x6b6b('0x22')],'internal':_0x386267[_0x6b6b('0x23')]};_0x3a1969[_0x6b6b('0x2d')](function(_0x474b14){_0x83508d[_0x6b6b('0x43')](_['merge']({'channel':_0x474b14,'type':_0x6b6b('0x53'),'data1':_0x6b6b('0x54'),'data2':_0x587aad},_0x5cb44f));if(_0x386267['loginInPause']){_0x190f56[_0x6b6b('0x43')](_['merge']({'channel':_0x474b14,'type':_0x6b6b('0x3f'),'data1':_0x6b6b('0x55')},_0x5cb44f));}});return db['MemberReport']['bulkCreate'](_0x83508d[_0x6b6b('0x56')](_0x190f56),{'individualHooks':!![]});}})[_0x6b6b('0x1e')](function(){if(_0x386267){return _0x386267[_0x6b6b('0x25')]({'online':!![],'lastLoginAt':moment()[_0x6b6b('0x2f')](_0x6b6b('0x2a')),'voicePause':_0x386267[_0x6b6b('0x4a')]||![],'mailPause':_0x386267['loginInPause']||![],'chatPause':_0x386267['loginInPause']||![],'faxPause':_0x386267[_0x6b6b('0x4a')]||![],'smsPause':_0x386267[_0x6b6b('0x4a')]||![],'openchannelPause':_0x386267[_0x6b6b('0x4a')]||![],'pauseType':_0x386267[_0x6b6b('0x4a')]?_0x6b6b('0x55'):null,'lastPauseAt':moment()[_0x6b6b('0x2f')](_0x6b6b('0x2a')),'interface':_0x587aad});}})[_0x6b6b('0x1e')](function(_0x47fbd4){_0x30ade6(_0x47fbd4);})[_0x6b6b('0x20')](function(_0x35e3f9){_0x29f337(_0x474e27[_0x6b6b('0x11')](0x1f4,_0x35e3f9[_0x6b6b('0x12')]));});});};
\ No newline at end of file
+var _0x7dc1=['whatsapp','set','%s%s','Pause','LogoutUser','destroy','all','mobile','loginInPause','SIP/%s','count','agent','../../config/license/util','getLicense','agents','Maximum\x20login\x20has\x20been\x20reached','upsert','UserVoiceQueue.penalty','merge','LOGIN','callysquare','LOGININPAUSE','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','localhost','./user.socket','register','then','info','User,\x20%s,\x20%s','request\x20sent','User,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','GetUser','User','findAll','options','raw','where','attributes','limit','include','map','model','debug','find','ShowUser','PauseUser','name','role','internal','update','MemberReport','PAUSE','length','format','YYYY-MM-DD\x20HH:mm:ss','updateAttributes','getChannels','forEach','push','isNil','interface','body','bulkCreate','UnpauseUser','findOne','isValidChannel','channel','Unknown\x20channel','voice','UserVoiceQueueRt','system','mail','chat','fax','sms'];(function(_0x35a9fd,_0x540c82){var _0x26242e=function(_0x581b0f){while(--_0x581b0f){_0x35a9fd['push'](_0x35a9fd['shift']());}};_0x26242e(++_0x540c82);}(_0x7dc1,0x12a));var _0x17dc=function(_0x1c5bd7,_0x3d554f){_0x1c5bd7=_0x1c5bd7-0x0;var _0xbe5453=_0x7dc1[_0x1c5bd7];return _0xbe5453;};'use strict';var _=require(_0x17dc('0x0'));var util=require(_0x17dc('0x1'));var moment=require('moment');var BPromise=require(_0x17dc('0x2'));var rs=require(_0x17dc('0x3'));var fs=require('fs');var Redis=require(_0x17dc('0x4'));var db=require(_0x17dc('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0x17dc('0x6'))(_0x17dc('0x7'));var config=require(_0x17dc('0x8'));var jayson=require(_0x17dc('0x9'));var client=jayson[_0x17dc('0xa')][_0x17dc('0xb')]({'port':0x232a});config[_0x17dc('0xc')]=_['defaults'](config[_0x17dc('0xc')],{'host':_0x17dc('0xd'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x17dc('0xc')]));require(_0x17dc('0xe'))[_0x17dc('0xf')](socket);function respondWithRpcPromise(_0x26c527,_0x16fc1e,_0xdccae8){return new BPromise(function(_0x594541,_0x9c7d6d){return client['request'](_0x26c527,_0xdccae8)[_0x17dc('0x10')](function(_0x1ce8d7){logger[_0x17dc('0x11')](_0x17dc('0x12'),_0x16fc1e,_0x17dc('0x13'));logger['debug'](_0x17dc('0x14'),_0x16fc1e,_0x17dc('0x13'),JSON[_0x17dc('0x15')](_0x1ce8d7));if(_0x1ce8d7[_0x17dc('0x16')]){if(_0x1ce8d7[_0x17dc('0x16')]['code']===0x1f4){logger[_0x17dc('0x16')](_0x17dc('0x12'),_0x16fc1e,_0x1ce8d7[_0x17dc('0x16')][_0x17dc('0x17')]);return _0x9c7d6d(_0x1ce8d7['error']['message']);}logger[_0x17dc('0x16')]('User,\x20%s,\x20%s',_0x16fc1e,_0x1ce8d7['error'][_0x17dc('0x17')]);return _0x594541(_0x1ce8d7[_0x17dc('0x16')][_0x17dc('0x17')]);}else{logger['info']('User,\x20%s,\x20%s',_0x16fc1e,'request\x20sent');_0x594541(_0x1ce8d7[_0x17dc('0x18')][_0x17dc('0x17')]);}})[_0x17dc('0x19')](function(_0x1240d1){logger[_0x17dc('0x16')](_0x17dc('0x12'),_0x16fc1e,_0x1240d1);_0x9c7d6d(_0x1240d1);});});}exports[_0x17dc('0x1a')]=function(_0x1e979a){var _0x30ac55=this;return new Promise(function(_0x551501,_0x5a8dca){return db[_0x17dc('0x1b')][_0x17dc('0x1c')]({'raw':_0x1e979a[_0x17dc('0x1d')]?_0x1e979a['options'][_0x17dc('0x1e')]===undefined?!![]:![]:!![],'where':_0x1e979a[_0x17dc('0x1d')]?_0x1e979a[_0x17dc('0x1d')][_0x17dc('0x1f')]||null:null,'attributes':_0x1e979a[_0x17dc('0x1d')]?_0x1e979a[_0x17dc('0x1d')][_0x17dc('0x20')]||null:null,'limit':_0x1e979a['options']?_0x1e979a[_0x17dc('0x1d')][_0x17dc('0x21')]||null:null,'include':_0x1e979a[_0x17dc('0x1d')]?_0x1e979a[_0x17dc('0x1d')][_0x17dc('0x22')]?_[_0x17dc('0x23')](_0x1e979a[_0x17dc('0x1d')][_0x17dc('0x22')],function(_0x450a7c){return{'model':db[_0x450a7c[_0x17dc('0x24')]],'as':_0x450a7c['as'],'attributes':_0x450a7c[_0x17dc('0x20')],'include':_0x450a7c[_0x17dc('0x22')]?_['map'](_0x450a7c['include'],function(_0x2a1e12){return{'model':db[_0x2a1e12['model']],'as':_0x2a1e12['as'],'attributes':_0x2a1e12[_0x17dc('0x20')],'include':_0x2a1e12[_0x17dc('0x22')]?_[_0x17dc('0x23')](_0x2a1e12[_0x17dc('0x22')],function(_0x18c31c){return{'model':db[_0x18c31c['model']],'as':_0x18c31c['as'],'attributes':_0x18c31c[_0x17dc('0x20')]};}):[]};}):[]};}):[]:[]})[_0x17dc('0x10')](function(_0x13d4de){logger[_0x17dc('0x11')](_0x17dc('0x1a'),_0x1e979a);logger[_0x17dc('0x25')](_0x17dc('0x1a'),_0x1e979a,JSON['stringify'](_0x13d4de));_0x551501(_0x13d4de);})['catch'](function(_0x320507){logger[_0x17dc('0x16')](_0x17dc('0x1a'),_0x320507[_0x17dc('0x17')],_0x1e979a);_0x5a8dca(_0x30ac55[_0x17dc('0x16')](0x1f4,_0x320507[_0x17dc('0x17')]));});});};exports['ShowUser']=function(_0x4a0d67){var _0x3fc155=this;return new Promise(function(_0x5468fa,_0x46a405){return db['User'][_0x17dc('0x26')]({'raw':_0x4a0d67['options']?_0x4a0d67[_0x17dc('0x1d')][_0x17dc('0x1e')]===undefined?!![]:![]:!![],'where':_0x4a0d67[_0x17dc('0x1d')]?_0x4a0d67[_0x17dc('0x1d')][_0x17dc('0x1f')]||null:null,'attributes':_0x4a0d67[_0x17dc('0x1d')]?_0x4a0d67[_0x17dc('0x1d')][_0x17dc('0x20')]||null:null,'include':_0x4a0d67[_0x17dc('0x1d')]?_0x4a0d67[_0x17dc('0x1d')][_0x17dc('0x22')]?_[_0x17dc('0x23')](_0x4a0d67['options'][_0x17dc('0x22')],function(_0xdbac77){return{'model':db[_0xdbac77['model']],'as':_0xdbac77['as'],'attributes':_0xdbac77[_0x17dc('0x20')],'include':_0xdbac77[_0x17dc('0x22')]?_[_0x17dc('0x23')](_0xdbac77[_0x17dc('0x22')],function(_0x41f534){return{'model':db[_0x41f534[_0x17dc('0x24')]],'as':_0x41f534['as'],'attributes':_0x41f534[_0x17dc('0x20')],'include':_0x41f534['include']?_[_0x17dc('0x23')](_0x41f534[_0x17dc('0x22')],function(_0x214fd7){return{'model':db[_0x214fd7[_0x17dc('0x24')]],'as':_0x214fd7['as'],'attributes':_0x214fd7[_0x17dc('0x20')]};}):[]};}):[]};}):[]:[]})[_0x17dc('0x10')](function(_0x1c87ef){logger[_0x17dc('0x11')]('ShowUser',_0x4a0d67);logger['debug'](_0x17dc('0x27'),_0x4a0d67,JSON['stringify'](_0x1c87ef));_0x5468fa(_0x1c87ef);})['catch'](function(_0x2c9481){logger[_0x17dc('0x16')](_0x17dc('0x27'),_0x2c9481[_0x17dc('0x17')],_0x4a0d67);_0x46a405(_0x3fc155[_0x17dc('0x16')](0x1f4,_0x2c9481[_0x17dc('0x17')]));});});};exports[_0x17dc('0x28')]=function(_0x472a52){var _0x1d1b13=this;return new Promise(function(_0x50c85e,_0x375cfb){var _0x4d4084;return db[_0x17dc('0x1b')][_0x17dc('0x26')]({'where':_0x472a52[_0x17dc('0x1d')][_0x17dc('0x1f')]||{},'attributes':['id',_0x17dc('0x29'),_0x17dc('0x2a'),_0x17dc('0x2b'),'interface']})[_0x17dc('0x10')](function(_0x5e530c){if(_0x5e530c){_0x4d4084=_0x5e530c;return db['UserVoiceQueueRt'][_0x17dc('0x2c')]({'paused':0x1},{'where':{'UserId':_0x4d4084['id']},'individualHooks':!![]});}})['then'](function(){if(_0x4d4084){return db[_0x17dc('0x2d')][_0x17dc('0x1c')]({'where':{'membername':_0x4d4084['name'],'type':_0x17dc('0x2e'),'exitAt':null}});}})[_0x17dc('0x10')](function(_0x17ac83){if(_0x4d4084){if(_0x17ac83&&_0x17ac83[_0x17dc('0x2f')]){var _0x4db744=moment()[_0x17dc('0x30')](_0x17dc('0x31'));for(var _0x554335=0x0,_0x364ad9=_0x17ac83[_0x17dc('0x2f')];_0x554335<_0x364ad9;_0x554335++){_0x17ac83[_0x554335][_0x17dc('0x32')]({'exitAt':_0x4db744});}}}})['then'](function(){if(_0x4d4084){var _0x1dca6c=[];var _0x3cea59=utils[_0x17dc('0x33')]();_0x3cea59[_0x17dc('0x34')](function(_0x2c4e7f){_0x1dca6c[_0x17dc('0x35')]({'channel':_0x2c4e7f,'membername':_0x4d4084['name'],'interface':_[_0x17dc('0x36')](_0x4d4084[_0x17dc('0x37')])?util[_0x17dc('0x30')]('SIP/%s',_0x4d4084['name']):_0x4d4084[_0x17dc('0x37')],'type':_0x17dc('0x2e'),'enterAt':moment()[_0x17dc('0x30')]('YYYY-MM-DD\x20HH:mm:ss'),'data1':_0x472a52[_0x17dc('0x38')]['type']||'DEFAULT\x20PAUSE','role':_0x4d4084['role'],'internal':_0x4d4084['internal'],'uniqueid':_0x472a52[_0x17dc('0x38')]['uniqueid']||null});});return db[_0x17dc('0x2d')][_0x17dc('0x39')](_0x1dca6c,{'individualHooks':!![]});}})[_0x17dc('0x10')](function(){if(_0x4d4084){return _0x4d4084['update']({'voicePause':!![],'mailPause':!![],'chatPause':!![],'faxPause':!![],'smsPause':!![],'openchannelPause':!![],'whatsappPause':!![],'pauseType':_0x472a52[_0x17dc('0x38')]['type']||'DEFAULT\x20PAUSE','lastPauseAt':moment()[_0x17dc('0x30')]('YYYY-MM-DD\x20HH:mm:ss')});}})[_0x17dc('0x10')](function(_0x32c0a3){_0x50c85e(_0x32c0a3);})['catch'](function(_0x404992){_0x375cfb(_0x1d1b13[_0x17dc('0x16')](0x1f4,_0x404992[_0x17dc('0x17')]));});});};exports[_0x17dc('0x3a')]=function(_0xea2535){var _0x901b=this;return new Promise(function(_0x1dbee5,_0x2d54fe){var _0x5b3677;return db['User'][_0x17dc('0x3b')]({'where':_0xea2535[_0x17dc('0x1d')][_0x17dc('0x1f')]||{},'attributes':['id','name']})[_0x17dc('0x10')](function(_0x3d8364){if(_0x3d8364){_0x5b3677=_0x3d8364;if(_0xea2535[_0x17dc('0x38')]['channel']&&!utils[_0x17dc('0x3c')](_0xea2535[_0x17dc('0x38')][_0x17dc('0x3d')])){throw new Error(_0x17dc('0x3e'));}switch(_0xea2535[_0x17dc('0x38')][_0x17dc('0x3d')]){case _0x17dc('0x3f'):return db[_0x17dc('0x40')]['update']({'paused':0x0},{'where':{'UserId':_0x5b3677['id']}})['then'](function(){return db['MemberReport'][_0x17dc('0x26')]({'where':{'channel':_0xea2535['body']['channel'],'membername':_0x5b3677['name'],'type':'PAUSE','exitAt':null}});})[_0x17dc('0x10')](function(_0x1b2220){if(_0x1b2220){return _0x1b2220[_0x17dc('0x2c')]({'exitAt':moment()['format'](_0x17dc('0x31')),'data2':_0x17dc('0x41')},{'individualHooks':!![]});}return null;})[_0x17dc('0x10')](function(){return _0x5b3677[_0x17dc('0x2c')]({'voicePause':![]});});case _0x17dc('0x42'):case _0x17dc('0x43'):case _0x17dc('0x44'):case _0x17dc('0x45'):case'openchannel':case _0x17dc('0x46'):return db[_0x17dc('0x2d')][_0x17dc('0x26')]({'where':{'channel':_0xea2535[_0x17dc('0x38')][_0x17dc('0x3d')],'membername':_0x5b3677[_0x17dc('0x29')],'type':_0x17dc('0x2e'),'exitAt':null}})[_0x17dc('0x10')](function(_0x3eaf91){return _0x3eaf91[_0x17dc('0x2c')]({'exitAt':moment()['format'](_0x17dc('0x31')),'data2':_0x17dc('0x41')},{'individualHooks':!![]});})[_0x17dc('0x10')](function(){var _0x57a4c1={};_[_0x17dc('0x47')](_0x57a4c1,util[_0x17dc('0x30')](_0x17dc('0x48'),_0xea2535['body'][_0x17dc('0x3d')],_0x17dc('0x49')),![]);return _0x5b3677['update'](_0x57a4c1);});default:return db[_0x17dc('0x40')]['update']({'paused':0x0},{'where':{'UserId':_0x5b3677['id']}})[_0x17dc('0x10')](function(){return db[_0x17dc('0x2d')]['findAll']({'where':{'membername':_0x5b3677[_0x17dc('0x29')],'type':_0x17dc('0x2e'),'exitAt':null}});})['then'](function(_0x2a2408){var _0x1a17ae=[];_0x2a2408[_0x17dc('0x34')](function(_0x4d1925){_0x1a17ae['push'](_0x4d1925[_0x17dc('0x2c')]({'exitAt':moment()[_0x17dc('0x30')](_0x17dc('0x31')),'data2':_0x17dc('0x41')}));});return BPromise['all'](_0x1a17ae);})[_0x17dc('0x10')](function(){return _0x5b3677[_0x17dc('0x2c')]({'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![],'whatsappPause':![]});});}}})[_0x17dc('0x10')](function(_0x295e2d){_0x1dbee5(_0x295e2d);})[_0x17dc('0x19')](function(_0x188257){_0x2d54fe(_0x901b[_0x17dc('0x16')](0x1f4,_0x188257[_0x17dc('0x17')]));});});};exports[_0x17dc('0x4a')]=function(_0xcc1cc3){var _0x2202e1=this;return new Promise(function(_0x49943b,_0x25da57){var _0x23c096;return db[_0x17dc('0x1b')][_0x17dc('0x3b')]({'where':_0xcc1cc3[_0x17dc('0x1d')][_0x17dc('0x1f')]||{},'attributes':['id',_0x17dc('0x29')]})[_0x17dc('0x10')](function(_0x1dc99f){if(_0x1dc99f){_0x23c096=_0x1dc99f;return db['UserVoiceQueueRt'][_0x17dc('0x4b')]({'where':{'membername':_0x23c096[_0x17dc('0x29')]},'individualHooks':!![]});}})[_0x17dc('0x10')](function(){if(_0x23c096){return db['MemberReport'][_0x17dc('0x1c')]({'where':{'membername':_0x23c096[_0x17dc('0x29')],'exitAt':null}});}})[_0x17dc('0x10')](function(_0x3cd0ca){if(_0x23c096){if(_0x3cd0ca&&_0x3cd0ca[_0x17dc('0x2f')]){var _0x1e5d25=[];_0x3cd0ca[_0x17dc('0x34')](function(_0x2111ee){_0x1e5d25[_0x17dc('0x35')](_0x2111ee['update']({'exitAt':moment()['format'](_0x17dc('0x31'))}));});return BPromise[_0x17dc('0x4c')](_0x1e5d25);}}})['then'](function(){if(_0x23c096){return _0x23c096['update']({'online':![],'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![]});}})['then'](function(_0x2dc5e2){_0x49943b(_0x2dc5e2);})[_0x17dc('0x19')](function(_0x2f8448){_0x25da57(_0x2202e1['error'](0x1f4,_0x2f8448[_0x17dc('0x17')]));});});};exports['LoginUser']=function(_0x4de8d9){var _0xcee5f4=this;return new Promise(function(_0x529bdd,_0x2b94cb){var _0x30f1c5;var _0xe1fc10;var _0x297969;var _0x354f75;return db[_0x17dc('0x1b')][_0x17dc('0x3b')]({'where':_0x4de8d9[_0x17dc('0x1d')][_0x17dc('0x1f')]||{},'attributes':['id','name','role',_0x17dc('0x4d'),'phone',_0x17dc('0x2b'),_0x17dc('0x4e'),_0x17dc('0x37')]})[_0x17dc('0x10')](function(_0xe226d2){if(_0xe226d2){_0x30f1c5=_0xe226d2;_0x354f75=_0x4de8d9[_0x17dc('0x38')][_0x17dc('0x37')]?_0x4de8d9[_0x17dc('0x38')][_0x17dc('0x37')]:util[_0x17dc('0x30')](_0x17dc('0x4f'),_0x30f1c5['name']);return db[_0x17dc('0x1b')][_0x17dc('0x50')]({'where':{'role':_0x17dc('0x51'),'online':!![],'id':{'$ne':_0x30f1c5['id']}}});}})[_0x17dc('0x10')](function(_0x3cadf0){if(_0x3cadf0){_0x297969=_0x3cadf0;return require(_0x17dc('0x52'))[_0x17dc('0x53')]();}})[_0x17dc('0x10')](function(_0x2e30e7){if(_0x2e30e7&&_0x2e30e7[_0x17dc('0x54')]&&_0x297969>=_0x2e30e7['agents']){throw new Error(_0x17dc('0x55'));}})['then'](function(){if(_0x30f1c5){return db['UserVoiceQueueRt'][_0x17dc('0x4b')]({'where':{'membername':_0x30f1c5[_0x17dc('0x29')]},'individualHooks':!![]});}})[_0x17dc('0x10')](function(){if(_0x30f1c5){return _0x30f1c5['getVoiceQueues']({'raw':!![]});}})[_0x17dc('0x10')](function(_0x2249cc){if(_0x30f1c5){if(_0x2249cc){var _0x59c59e=[];_0xe1fc10=_0x2249cc;if(_0xe1fc10[_0x17dc('0x2f')]){for(var _0x3d51af=0x0;_0x3d51af<_0xe1fc10[_0x17dc('0x2f')];_0x3d51af++){_0x59c59e[_0x17dc('0x35')](db['UserVoiceQueueRt'][_0x17dc('0x56')]({'membername':_0x30f1c5[_0x17dc('0x29')],'UserId':_0x30f1c5['id'],'queue_name':_0xe1fc10[_0x3d51af][_0x17dc('0x29')],'VoiceQueueId':_0xe1fc10[_0x3d51af]['id'],'interface':_0x354f75,'paused':_0x30f1c5[_0x17dc('0x4e')]||![],'penalty':_0xe1fc10[_0x3d51af][_0x17dc('0x57')]||0x0}));}return BPromise['all'](_0x59c59e);}}}})[_0x17dc('0x10')](function(){if(_0x30f1c5){return db[_0x17dc('0x2d')]['findAll']({'where':{'membername':_0x30f1c5[_0x17dc('0x29')],'exitAt':null}});}})['then'](function(_0x241700){if(_0x30f1c5){if(_0x241700&&_0x241700['length']){var _0x462e9a=[];_0x241700[_0x17dc('0x34')](function(_0x536b1f){_0x462e9a[_0x17dc('0x35')](_0x536b1f[_0x17dc('0x2c')]({'exitAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss')}));});return BPromise[_0x17dc('0x4c')](_0x462e9a);}}})[_0x17dc('0x10')](function(_0x1aa965){if(_0x30f1c5){var _0x29d520=[];var _0x54127a=[];var _0x40600d=utils[_0x17dc('0x33')]();var _0x206f41={'membername':_0x30f1c5[_0x17dc('0x29')],'interface':_0x354f75,'enterAt':moment()[_0x17dc('0x30')](_0x17dc('0x31')),'role':_0x30f1c5[_0x17dc('0x2a')],'internal':_0x30f1c5[_0x17dc('0x2b')]};_0x40600d[_0x17dc('0x34')](function(_0xc339e9){_0x29d520['push'](_[_0x17dc('0x58')]({'channel':_0xc339e9,'type':_0x17dc('0x59'),'data1':_0x17dc('0x5a'),'data2':_0x354f75},_0x206f41));if(_0x30f1c5[_0x17dc('0x4e')]){_0x54127a['push'](_[_0x17dc('0x58')]({'channel':_0xc339e9,'type':_0x17dc('0x2e'),'data1':_0x17dc('0x5b')},_0x206f41));}});return db[_0x17dc('0x2d')][_0x17dc('0x39')](_0x29d520['concat'](_0x54127a),{'individualHooks':!![]});}})[_0x17dc('0x10')](function(){if(_0x30f1c5){return _0x30f1c5[_0x17dc('0x2c')]({'online':!![],'lastLoginAt':moment()['format'](_0x17dc('0x31')),'voicePause':_0x30f1c5[_0x17dc('0x4e')]||![],'mailPause':_0x30f1c5[_0x17dc('0x4e')]||![],'chatPause':_0x30f1c5[_0x17dc('0x4e')]||![],'faxPause':_0x30f1c5[_0x17dc('0x4e')]||![],'smsPause':_0x30f1c5['loginInPause']||![],'openchannelPause':_0x30f1c5[_0x17dc('0x4e')]||![],'pauseType':_0x30f1c5['loginInPause']?_0x17dc('0x5b'):null,'lastPauseAt':moment()[_0x17dc('0x30')](_0x17dc('0x31')),'interface':_0x354f75});}})[_0x17dc('0x10')](function(_0x26779c){_0x529bdd(_0x26779c);})[_0x17dc('0x19')](function(_0x591c34){_0x2b94cb(_0xcee5f4[_0x17dc('0x16')](0x1f4,_0x591c34[_0x17dc('0x17')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0d2b=['update','emit','length','./user.events'];(function(_0x42cae2,_0x284ef8){var _0x5f256f=function(_0x41abc8){while(--_0x41abc8){_0x42cae2['push'](_0x42cae2['shift']());}};_0x5f256f(++_0x284ef8);}(_0x0d2b,0x7b));var _0xb0d2=function(_0x55a747,_0x50c122){_0x55a747=_0x55a747-0x0;var _0x2136b3=_0x0d2b[_0x55a747];return _0x2136b3;};'use strict';var UserEvents=require(_0xb0d2('0x0'));var events=['save','remove',_0xb0d2('0x1')];function createListener(_0x231997,_0x1d4858){return function(_0x5c1cf4){_0x1d4858[_0xb0d2('0x2')](_0x231997,_0x5c1cf4);};}function removeListener(_0x18fc86,_0x41724f){return function(){UserEvents['removeListener'](_0x18fc86,_0x41724f);};}exports['register']=function(_0x278107){for(var _0x366e44=0x0,_0x599e42=events[_0xb0d2('0x3')];_0x366e44<_0x599e42;_0x366e44++){var _0x1970bb=events[_0x366e44];var _0x118970=createListener('user:'+_0x1970bb,_0x278107);UserEvents['on'](_0x1970bb,_0x118970);}};
\ No newline at end of file
+var _0xa276=['update','emit','removeListener','length','user:','./user.events','save','remove'];(function(_0x4050e6,_0x283dc5){var _0x17099f=function(_0x1ca577){while(--_0x1ca577){_0x4050e6['push'](_0x4050e6['shift']());}};_0x17099f(++_0x283dc5);}(_0xa276,0xd5));var _0x6a27=function(_0x8cb8d,_0x114804){_0x8cb8d=_0x8cb8d-0x0;var _0x432282=_0xa276[_0x8cb8d];return _0x432282;};'use strict';var UserEvents=require(_0x6a27('0x0'));var events=[_0x6a27('0x1'),_0x6a27('0x2'),_0x6a27('0x3')];function createListener(_0x56410d,_0xe0f966){return function(_0xcc39d6){_0xe0f966[_0x6a27('0x4')](_0x56410d,_0xcc39d6);};}function removeListener(_0x2f2b9f,_0x26ecbc){return function(){UserEvents[_0x6a27('0x5')](_0x2f2b9f,_0x26ecbc);};}exports['register']=function(_0x54faaa){for(var _0x340965=0x0,_0x9aefa0=events[_0x6a27('0x6')];_0x340965<_0x9aefa0;_0x340965++){var _0x2e62ff=events[_0x340965];var _0x2c1ca7=createListener(_0x6a27('0x7')+_0x2e62ff,_0x54faaa);UserEvents['on'](_0x2e62ff,_0x2c1ca7);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9c44=['express','Router','fs-extra','../../components/auth/service','exports','path','connect-timeout'];(function(_0x69188b,_0x550923){var _0x3320f4=function(_0x27d05b){while(--_0x27d05b){_0x69188b['push'](_0x69188b['shift']());}};_0x3320f4(++_0x550923);}(_0x9c44,0x178));var _0x49c4=function(_0x24061a,_0x1c9f4d){_0x24061a=_0x24061a-0x0;var _0x82054e=_0x9c44[_0x24061a];return _0x82054e;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x49c4('0x0'));var timeout=require(_0x49c4('0x1'));var express=require(_0x49c4('0x2'));var router=express[_0x49c4('0x3')]();var fs_extra=require(_0x49c4('0x4'));var auth=require(_0x49c4('0x5'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');module[_0x49c4('0x6')]=router;
\ No newline at end of file
+var _0x0713=['../../config/environment','exports','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service'];(function(_0x21c339,_0x3fd949){var _0xe136b7=function(_0x59e177){while(--_0x59e177){_0x21c339['push'](_0x21c339['shift']());}};_0xe136b7(++_0x3fd949);}(_0x0713,0x1ba));var _0x3071=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x0713[_0x3dd15e];return _0x231fd0;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x3071('0x0'));var timeout=require(_0x3071('0x1'));var express=require(_0x3071('0x2'));var router=express[_0x3071('0x3')]();var fs_extra=require(_0x3071('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0x3071('0x5'));var config=require(_0x3071('0x6'));module[_0x3071('0x7')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4250=['exports','INTEGER','sequelize'];(function(_0x155d88,_0x338c6e){var _0x51c423=function(_0x19d430){while(--_0x19d430){_0x155d88['push'](_0x155d88['shift']());}};_0x51c423(++_0x338c6e);}(_0x4250,0x146));var _0x0425=function(_0x4e9628,_0x250573){_0x4e9628=_0x4e9628-0x0;var _0x27bc8c=_0x4250[_0x4e9628];return _0x27bc8c;};'use strict';var Sequelize=require(_0x0425('0x0'));module[_0x0425('0x1')]={'penalty':{'type':Sequelize[_0x0425('0x2')],'defaultValue':0x0}};
\ No newline at end of file
+'use strict';var Sequelize=require('sequelize');module['exports']={'penalty':{'type':Sequelize['INTEGER'],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd557=['user_has_chat_queues','lodash','../../config/logger','api','moment','bluebird','request-promise','../../config/environment','./userChatQueue.attributes','exports','UserChatQueue'];(function(_0x2a2166,_0x3a077f){var _0x3bcf50=function(_0x3f0300){while(--_0x3f0300){_0x2a2166['push'](_0x2a2166['shift']());}};_0x3bcf50(++_0x3a077f);}(_0xd557,0x198));var _0x7d55=function(_0x1a3cab,_0x539a92){_0x1a3cab=_0x1a3cab-0x0;var _0x5a4d8f=_0xd557[_0x1a3cab];return _0x5a4d8f;};'use strict';var _=require(_0x7d55('0x0'));var util=require('util');var logger=require(_0x7d55('0x1'))(_0x7d55('0x2'));var moment=require(_0x7d55('0x3'));var BPromise=require(_0x7d55('0x4'));var rp=require(_0x7d55('0x5'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0x7d55('0x6'));var attributes=require(_0x7d55('0x7'));module[_0x7d55('0x8')]=function(_0x373858,_0x371e6e){return _0x373858['define'](_0x7d55('0x9'),attributes,{'tableName':_0x7d55('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x107a=['request-promise','path','rimraf','../../config/environment','./userChatQueue.attributes','exports','define','UserChatQueue','api','moment','bluebird'];(function(_0x57873c,_0x1d9fe0){var _0x54b2e9=function(_0x308528){while(--_0x308528){_0x57873c['push'](_0x57873c['shift']());}};_0x54b2e9(++_0x1d9fe0);}(_0x107a,0x1cb));var _0xa107=function(_0x406379,_0xc64564){_0x406379=_0x406379-0x0;var _0xa2dde7=_0x107a[_0x406379];return _0xa2dde7;};'use strict';var _=require('lodash');var util=require('util');var logger=require('../../config/logger')(_0xa107('0x0'));var moment=require(_0xa107('0x1'));var BPromise=require(_0xa107('0x2'));var rp=require(_0xa107('0x3'));var fs=require('fs');var path=require(_0xa107('0x4'));var rimraf=require(_0xa107('0x5'));var config=require(_0xa107('0x6'));var attributes=require(_0xa107('0x7'));module[_0xa107('0x8')]=function(_0x2fd235,_0x4353cd){return _0x2fd235[_0xa107('0x9')](_0xa107('0xa'),attributes,{'tableName':'user_has_chat_queues','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3a09=['request\x20sent','debug','UserChatQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','lodash','util','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','http','request','then','UserChatQueue,\x20%s,\x20%s'];(function(_0x1fa7d1,_0x36ba36){var _0xb6eb34=function(_0x10132d){while(--_0x10132d){_0x1fa7d1['push'](_0x1fa7d1['shift']());}};_0xb6eb34(++_0x36ba36);}(_0x3a09,0x7d));var _0x93a0=function(_0x43abb8,_0x32eab1){_0x43abb8=_0x43abb8-0x0;var _0x3395b7=_0x3a09[_0x43abb8];return _0x3395b7;};'use strict';var _=require(_0x93a0('0x0'));var util=require(_0x93a0('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x93a0('0x2'));var fs=require('fs');var Redis=require(_0x93a0('0x3'));var db=require(_0x93a0('0x4'))['db'];var utils=require(_0x93a0('0x5'));var logger=require(_0x93a0('0x6'))(_0x93a0('0x7'));var config=require('../../config/environment');var jayson=require(_0x93a0('0x8'));var client=jayson['client'][_0x93a0('0x9')]({'port':0x232a});function respondWithRpcPromise(_0xa1dfe4,_0x7a7a64,_0x446bdf){return new BPromise(function(_0x56ed8d,_0xc707ee){return client[_0x93a0('0xa')](_0xa1dfe4,_0x446bdf)[_0x93a0('0xb')](function(_0x3ba3ce){logger['info'](_0x93a0('0xc'),_0x7a7a64,_0x93a0('0xd'));logger[_0x93a0('0xe')](_0x93a0('0xf'),_0x7a7a64,_0x93a0('0xd'),JSON[_0x93a0('0x10')](_0x3ba3ce));if(_0x3ba3ce[_0x93a0('0x11')]){if(_0x3ba3ce[_0x93a0('0x11')][_0x93a0('0x12')]===0x1f4){logger['error'](_0x93a0('0xc'),_0x7a7a64,_0x3ba3ce[_0x93a0('0x11')][_0x93a0('0x13')]);return _0xc707ee(_0x3ba3ce['error']['message']);}logger[_0x93a0('0x11')](_0x93a0('0xc'),_0x7a7a64,_0x3ba3ce[_0x93a0('0x11')][_0x93a0('0x13')]);return _0x56ed8d(_0x3ba3ce[_0x93a0('0x11')]['message']);}else{logger[_0x93a0('0x14')](_0x93a0('0xc'),_0x7a7a64,_0x93a0('0xd'));_0x56ed8d(_0x3ba3ce[_0x93a0('0x15')]['message']);}})[_0x93a0('0x16')](function(_0x157d96){logger['error'](_0x93a0('0xc'),_0x7a7a64,_0x157d96);_0xc707ee(_0x157d96);});});}
\ No newline at end of file
+var _0xfbbe=['stringify','error','code','message','result','catch','lodash','moment','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','then','info','UserChatQueue,\x20%s,\x20%s','request\x20sent','UserChatQueue,\x20%s,\x20%s,\x20%s'];(function(_0x580454,_0x52b6ed){var _0x1fe9ed=function(_0x2e9499){while(--_0x2e9499){_0x580454['push'](_0x580454['shift']());}};_0x1fe9ed(++_0x52b6ed);}(_0xfbbe,0xa6));var _0xefbb=function(_0x4ff09b,_0x53f67d){_0x4ff09b=_0x4ff09b-0x0;var _0x3f5c2e=_0xfbbe[_0x4ff09b];return _0x3f5c2e;};'use strict';var _=require(_0xefbb('0x0'));var util=require('util');var moment=require(_0xefbb('0x1'));var BPromise=require('bluebird');var rs=require(_0xefbb('0x2'));var fs=require('fs');var Redis=require(_0xefbb('0x3'));var db=require(_0xefbb('0x4'))['db'];var utils=require(_0xefbb('0x5'));var logger=require('../../config/logger')(_0xefbb('0x6'));var config=require(_0xefbb('0x7'));var jayson=require(_0xefbb('0x8'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x416cc3,_0x568160,_0x25159a){return new BPromise(function(_0x1157a8,_0x4a37b6){return client['request'](_0x416cc3,_0x25159a)[_0xefbb('0x9')](function(_0x283860){logger[_0xefbb('0xa')](_0xefbb('0xb'),_0x568160,_0xefbb('0xc'));logger['debug'](_0xefbb('0xd'),_0x568160,'request\x20sent',JSON[_0xefbb('0xe')](_0x283860));if(_0x283860['error']){if(_0x283860[_0xefbb('0xf')][_0xefbb('0x10')]===0x1f4){logger[_0xefbb('0xf')]('UserChatQueue,\x20%s,\x20%s',_0x568160,_0x283860['error'][_0xefbb('0x11')]);return _0x4a37b6(_0x283860[_0xefbb('0xf')][_0xefbb('0x11')]);}logger[_0xefbb('0xf')](_0xefbb('0xb'),_0x568160,_0x283860[_0xefbb('0xf')]['message']);return _0x1157a8(_0x283860[_0xefbb('0xf')][_0xefbb('0x11')]);}else{logger[_0xefbb('0xa')](_0xefbb('0xb'),_0x568160,_0xefbb('0xc'));_0x1157a8(_0x283860[_0xefbb('0x12')]['message']);}})[_0xefbb('0x13')](function(_0x55c41b){logger[_0xefbb('0xf')]('UserChatQueue,\x20%s,\x20%s',_0x568160,_0x55c41b);_0x4a37b6(_0x55c41b);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x70e0=['../../components/auth/service','../../components/interaction/service','exports','multer','util','path','Router','fs-extra'];(function(_0x48e441,_0x4b9e45){var _0x2408b4=function(_0x21acf4){while(--_0x21acf4){_0x48e441['push'](_0x48e441['shift']());}};_0x2408b4(++_0x4b9e45);}(_0x70e0,0x17b));var _0x070e=function(_0x17f8af,_0x30914e){_0x17f8af=_0x17f8af-0x0;var _0x350671=_0x70e0[_0x17f8af];return _0x350671;};'use strict';var multer=require(_0x070e('0x0'));var util=require(_0x070e('0x1'));var path=require(_0x070e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x070e('0x3')]();var fs_extra=require(_0x070e('0x4'));var auth=require(_0x070e('0x5'));var interaction=require(_0x070e('0x6'));var config=require('../../config/environment');module[_0x070e('0x7')]=router;
\ No newline at end of file
+var _0xcb91=['express','Router','../../components/auth/service','../../components/interaction/service','exports','path','connect-timeout'];(function(_0x21f96a,_0x46c129){var _0x541b40=function(_0x18b53d){while(--_0x18b53d){_0x21f96a['push'](_0x21f96a['shift']());}};_0x541b40(++_0x46c129);}(_0xcb91,0x1a9));var _0x1cb9=function(_0x5678b5,_0x1c4aa8){_0x5678b5=_0x5678b5-0x0;var _0x4c09a5=_0xcb91[_0x5678b5];return _0x4c09a5;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x1cb9('0x0'));var timeout=require(_0x1cb9('0x1'));var express=require(_0x1cb9('0x2'));var router=express[_0x1cb9('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x1cb9('0x4'));var interaction=require(_0x1cb9('0x5'));var config=require('../../config/environment');module[_0x1cb9('0x6')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5e71=['INTEGER','sequelize','exports'];(function(_0x3034e1,_0x1939b6){var _0x2e7308=function(_0x272dfa){while(--_0x272dfa){_0x3034e1['push'](_0x3034e1['shift']());}};_0x2e7308(++_0x1939b6);}(_0x5e71,0x109));var _0x15e7=function(_0x3a63a6,_0x1f4f36){_0x3a63a6=_0x3a63a6-0x0;var _0x134dc8=_0x5e71[_0x3a63a6];return _0x134dc8;};'use strict';var Sequelize=require(_0x15e7('0x0'));module[_0x15e7('0x1')]={'penalty':{'type':Sequelize[_0x15e7('0x2')],'defaultValue':0x0},'assigned':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'queue':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0x1180=['INTEGER','exports'];(function(_0xb12993,_0x5dc5ff){var _0x53b167=function(_0x3e5f27){while(--_0x3e5f27){_0xb12993['push'](_0xb12993['shift']());}};_0x53b167(++_0x5dc5ff);}(_0x1180,0x133));var _0x0118=function(_0x542108,_0x321e6d){_0x542108=_0x542108-0x0;var _0x5c88b9=_0x1180[_0x542108];return _0x5c88b9;};'use strict';var Sequelize=require('sequelize');module[_0x0118('0x0')]={'penalty':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'assigned':{'type':Sequelize[_0x0118('0x1')],'defaultValue':0x0},'queue':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7911=['UserFaxQueue','user_has_fax_queues','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./userFaxQueue.attributes','exports','define'];(function(_0x27d71a,_0x1ae3cb){var _0x2f4e22=function(_0x35b7b1){while(--_0x35b7b1){_0x27d71a['push'](_0x27d71a['shift']());}};_0x2f4e22(++_0x1ae3cb);}(_0x7911,0x1f1));var _0x1791=function(_0x31cb5f,_0x2df766){_0x31cb5f=_0x31cb5f-0x0;var _0x586042=_0x7911[_0x31cb5f];return _0x586042;};'use strict';var _=require(_0x1791('0x0'));var util=require(_0x1791('0x1'));var logger=require(_0x1791('0x2'))(_0x1791('0x3'));var moment=require(_0x1791('0x4'));var BPromise=require(_0x1791('0x5'));var rp=require(_0x1791('0x6'));var fs=require('fs');var path=require(_0x1791('0x7'));var rimraf=require(_0x1791('0x8'));var config=require(_0x1791('0x9'));var attributes=require(_0x1791('0xa'));module[_0x1791('0xb')]=function(_0x3e72c2,_0x254e95){return _0x3e72c2[_0x1791('0xc')](_0x1791('0xd'),attributes,{'tableName':_0x1791('0xe'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x045f=['api','moment','request-promise','path','rimraf','./userFaxQueue.attributes','define','user_has_fax_queues','util','../../config/logger'];(function(_0x53d2bd,_0x51aec9){var _0x410f4a=function(_0x31a20c){while(--_0x31a20c){_0x53d2bd['push'](_0x53d2bd['shift']());}};_0x410f4a(++_0x51aec9);}(_0x045f,0xd0));var _0xf045=function(_0x2880bb,_0x37ccf5){_0x2880bb=_0x2880bb-0x0;var _0x357881=_0x045f[_0x2880bb];return _0x357881;};'use strict';var _=require('lodash');var util=require(_0xf045('0x0'));var logger=require(_0xf045('0x1'))(_0xf045('0x2'));var moment=require(_0xf045('0x3'));var BPromise=require('bluebird');var rp=require(_0xf045('0x4'));var fs=require('fs');var path=require(_0xf045('0x5'));var rimraf=require(_0xf045('0x6'));var config=require('../../config/environment');var attributes=require(_0xf045('0x7'));module['exports']=function(_0x1c07a8,_0x21321e){return _0x1c07a8[_0xf045('0x8')]('UserFaxQueue',attributes,{'tableName':_0xf045('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xee5e=['error','code','message','request\x20sent','result','catch','lodash','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','UserFaxQueue,\x20%s,\x20%s','debug','UserFaxQueue,\x20%s,\x20%s,\x20%s','stringify'];(function(_0x5f4c25,_0xff5011){var _0x67b8db=function(_0x2c33cd){while(--_0x2c33cd){_0x5f4c25['push'](_0x5f4c25['shift']());}};_0x67b8db(++_0xff5011);}(_0xee5e,0xf6));var _0xeee5=function(_0xb1a60f,_0xd75f9){_0xb1a60f=_0xb1a60f-0x0;var _0xd04b77=_0xee5e[_0xb1a60f];return _0xd04b77;};'use strict';var _=require(_0xeee5('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0xeee5('0x1'));var rs=require(_0xeee5('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xeee5('0x3'))['db'];var utils=require(_0xeee5('0x4'));var logger=require(_0xeee5('0x5'))(_0xeee5('0x6'));var config=require(_0xeee5('0x7'));var jayson=require(_0xeee5('0x8'));var client=jayson[_0xeee5('0x9')][_0xeee5('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x3143ac,_0x580882,_0x494b16){return new BPromise(function(_0xe82d98,_0xa03876){return client[_0xeee5('0xb')](_0x3143ac,_0x494b16)[_0xeee5('0xc')](function(_0x24af05){logger[_0xeee5('0xd')](_0xeee5('0xe'),_0x580882,'request\x20sent');logger[_0xeee5('0xf')](_0xeee5('0x10'),_0x580882,'request\x20sent',JSON[_0xeee5('0x11')](_0x24af05));if(_0x24af05[_0xeee5('0x12')]){if(_0x24af05['error'][_0xeee5('0x13')]===0x1f4){logger[_0xeee5('0x12')]('UserFaxQueue,\x20%s,\x20%s',_0x580882,_0x24af05['error'][_0xeee5('0x14')]);return _0xa03876(_0x24af05[_0xeee5('0x12')][_0xeee5('0x14')]);}logger[_0xeee5('0x12')](_0xeee5('0xe'),_0x580882,_0x24af05[_0xeee5('0x12')][_0xeee5('0x14')]);return _0xe82d98(_0x24af05[_0xeee5('0x12')][_0xeee5('0x14')]);}else{logger['info'](_0xeee5('0xe'),_0x580882,_0xeee5('0x15'));_0xe82d98(_0x24af05[_0xeee5('0x16')][_0xeee5('0x14')]);}})[_0xeee5('0x17')](function(_0x49a46c){logger['error'](_0xeee5('0xe'),_0x580882,_0x49a46c);_0xa03876(_0x49a46c);});});}
\ No newline at end of file
+var _0x21e9=['request','info','UserFaxQueue,\x20%s,\x20%s','request\x20sent','UserFaxQueue,\x20%s,\x20%s,\x20%s','stringify','error','message','result','lodash','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client'];(function(_0x21fb77,_0x4d1611){var _0x9814f7=function(_0x2f9092){while(--_0x2f9092){_0x21fb77['push'](_0x21fb77['shift']());}};_0x9814f7(++_0x4d1611);}(_0x21e9,0x1a7));var _0x921e=function(_0x5b644e,_0x2e5e07){_0x5b644e=_0x5b644e-0x0;var _0x49c6bf=_0x21e9[_0x5b644e];return _0x49c6bf;};'use strict';var _=require(_0x921e('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0x921e('0x1'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x921e('0x2'));var db=require(_0x921e('0x3'))['db'];var utils=require(_0x921e('0x4'));var logger=require(_0x921e('0x5'))(_0x921e('0x6'));var config=require(_0x921e('0x7'));var jayson=require('jayson/promise');var client=jayson[_0x921e('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x134566,_0x502aca,_0x5cc26c){return new BPromise(function(_0x48757d,_0x4cb4d8){return client[_0x921e('0x9')](_0x134566,_0x5cc26c)['then'](function(_0xb8d395){logger[_0x921e('0xa')](_0x921e('0xb'),_0x502aca,_0x921e('0xc'));logger['debug'](_0x921e('0xd'),_0x502aca,_0x921e('0xc'),JSON[_0x921e('0xe')](_0xb8d395));if(_0xb8d395[_0x921e('0xf')]){if(_0xb8d395['error']['code']===0x1f4){logger['error'](_0x921e('0xb'),_0x502aca,_0xb8d395[_0x921e('0xf')][_0x921e('0x10')]);return _0x4cb4d8(_0xb8d395['error'][_0x921e('0x10')]);}logger[_0x921e('0xf')]('UserFaxQueue,\x20%s,\x20%s',_0x502aca,_0xb8d395['error'][_0x921e('0x10')]);return _0x48757d(_0xb8d395[_0x921e('0xf')][_0x921e('0x10')]);}else{logger[_0x921e('0xa')]('UserFaxQueue,\x20%s,\x20%s',_0x502aca,'request\x20sent');_0x48757d(_0xb8d395[_0x921e('0x11')][_0x921e('0x10')]);}})['catch'](function(_0x518a00){logger['error'](_0x921e('0xb'),_0x502aca,_0x518a00);_0x4cb4d8(_0x518a00);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe706=['../../components/interaction/service','../../config/environment','exports','multer','util','path','express','Router','fs-extra','../../components/auth/service'];(function(_0x5c525b,_0x147be2){var _0x1727f8=function(_0x59bef1){while(--_0x59bef1){_0x5c525b['push'](_0x5c525b['shift']());}};_0x1727f8(++_0x147be2);}(_0xe706,0xa3));var _0x6e70=function(_0x4c6b93,_0x19880d){_0x4c6b93=_0x4c6b93-0x0;var _0x119770=_0xe706[_0x4c6b93];return _0x119770;};'use strict';var multer=require(_0x6e70('0x0'));var util=require(_0x6e70('0x1'));var path=require(_0x6e70('0x2'));var timeout=require('connect-timeout');var express=require(_0x6e70('0x3'));var router=express[_0x6e70('0x4')]();var fs_extra=require(_0x6e70('0x5'));var auth=require(_0x6e70('0x6'));var interaction=require(_0x6e70('0x7'));var config=require(_0x6e70('0x8'));module[_0x6e70('0x9')]=router;
\ No newline at end of file
+var _0xcb91=['express','Router','../../components/auth/service','../../components/interaction/service','exports','path','connect-timeout'];(function(_0xcdec84,_0x10a9ac){var _0x28f670=function(_0x4b03a5){while(--_0x4b03a5){_0xcdec84['push'](_0xcdec84['shift']());}};_0x28f670(++_0x10a9ac);}(_0xcb91,0x1a9));var _0x1cb9=function(_0x1aed80,_0x3ca6f6){_0x1aed80=_0x1aed80-0x0;var _0x43961e=_0xcb91[_0x1aed80];return _0x43961e;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x1cb9('0x0'));var timeout=require(_0x1cb9('0x1'));var express=require(_0x1cb9('0x2'));var router=express[_0x1cb9('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x1cb9('0x4'));var interaction=require(_0x1cb9('0x5'));var config=require('../../config/environment');module[_0x1cb9('0x6')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8fef=['INTEGER','sequelize','exports'];(function(_0x46d0c9,_0x526bfa){var _0x174506=function(_0x654bc6){while(--_0x654bc6){_0x46d0c9['push'](_0x46d0c9['shift']());}};_0x174506(++_0x526bfa);}(_0x8fef,0x1e4));var _0xf8fe=function(_0x2634de,_0x143b28){_0x2634de=_0x2634de-0x0;var _0x922ed5=_0x8fef[_0x2634de];return _0x922ed5;};'use strict';var Sequelize=require(_0xf8fe('0x0'));module[_0xf8fe('0x1')]={'penalty':{'type':Sequelize[_0xf8fe('0x2')],'defaultValue':0x0}};
\ No newline at end of file
+var _0xc3bd=['exports','INTEGER','sequelize'];(function(_0x306ad0,_0x220d37){var _0x6f2ee2=function(_0x5b155d){while(--_0x5b155d){_0x306ad0['push'](_0x306ad0['shift']());}};_0x6f2ee2(++_0x220d37);}(_0xc3bd,0x1e2));var _0xdc3b=function(_0x400e4c,_0x298a99){_0x400e4c=_0x400e4c-0x0;var _0x56e944=_0xc3bd[_0x400e4c];return _0x56e944;};'use strict';var Sequelize=require(_0xdc3b('0x0'));module[_0xdc3b('0x1')]={'penalty':{'type':Sequelize[_0xdc3b('0x2')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb130=['util','../../config/logger','moment','bluebird','request-promise','./userMailQueue.attributes','exports','define','UserMailQueue','user_has_mail_queues','lodash'];(function(_0x304b67,_0x31cb39){var _0x493afb=function(_0x21dce3){while(--_0x21dce3){_0x304b67['push'](_0x304b67['shift']());}};_0x493afb(++_0x31cb39);}(_0xb130,0x1b7));var _0x0b13=function(_0x384447,_0x41669a){_0x384447=_0x384447-0x0;var _0x3810db=_0xb130[_0x384447];return _0x3810db;};'use strict';var _=require(_0x0b13('0x0'));var util=require(_0x0b13('0x1'));var logger=require(_0x0b13('0x2'))('api');var moment=require(_0x0b13('0x3'));var BPromise=require(_0x0b13('0x4'));var rp=require(_0x0b13('0x5'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0x0b13('0x6'));module[_0x0b13('0x7')]=function(_0x3f8376,_0x207d92){return _0x3f8376[_0x0b13('0x8')](_0x0b13('0x9'),attributes,{'tableName':_0x0b13('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xd3c4=['path','../../config/environment','./userMailQueue.attributes','define','UserMailQueue','user_has_mail_queues','lodash','util','../../config/logger','api','moment','bluebird'];(function(_0x4562bb,_0x5a8f8d){var _0x110188=function(_0x48aa24){while(--_0x48aa24){_0x4562bb['push'](_0x4562bb['shift']());}};_0x110188(++_0x5a8f8d);}(_0xd3c4,0xea));var _0x4d3c=function(_0x5b5040,_0x57bf3c){_0x5b5040=_0x5b5040-0x0;var _0x56d51c=_0xd3c4[_0x5b5040];return _0x56d51c;};'use strict';var _=require(_0x4d3c('0x0'));var util=require(_0x4d3c('0x1'));var logger=require(_0x4d3c('0x2'))(_0x4d3c('0x3'));var moment=require(_0x4d3c('0x4'));var BPromise=require(_0x4d3c('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x4d3c('0x6'));var rimraf=require('rimraf');var config=require(_0x4d3c('0x7'));var attributes=require(_0x4d3c('0x8'));module['exports']=function(_0xc409cf,_0x30ef12){return _0xc409cf[_0x4d3c('0x9')](_0x4d3c('0xa'),attributes,{'tableName':_0x4d3c('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x008c=['../../config/logger','rpc','../../config/environment','jayson/promise','client','http','info','UserMailQueue,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','UserMailQueue,\x20%s,\x20%s','message','catch','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils'];(function(_0x122ef9,_0x451d2a){var _0x42fba0=function(_0x17c9d3){while(--_0x17c9d3){_0x122ef9['push'](_0x122ef9['shift']());}};_0x42fba0(++_0x451d2a);}(_0x008c,0x188));var _0xc008=function(_0x4f08dd,_0x3784ec){_0x4f08dd=_0x4f08dd-0x0;var _0x3017ee=_0x008c[_0x4f08dd];return _0x3017ee;};'use strict';var _=require(_0xc008('0x0'));var util=require(_0xc008('0x1'));var moment=require(_0xc008('0x2'));var BPromise=require(_0xc008('0x3'));var rs=require(_0xc008('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xc008('0x5'))['db'];var utils=require(_0xc008('0x6'));var logger=require(_0xc008('0x7'))(_0xc008('0x8'));var config=require(_0xc008('0x9'));var jayson=require(_0xc008('0xa'));var client=jayson[_0xc008('0xb')][_0xc008('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x9c8cb2,_0x4af530,_0x428fa9){return new BPromise(function(_0x5aa09b,_0x30be38){return client['request'](_0x9c8cb2,_0x428fa9)['then'](function(_0x27830d){logger[_0xc008('0xd')]('UserMailQueue,\x20%s,\x20%s',_0x4af530,'request\x20sent');logger['debug'](_0xc008('0xe'),_0x4af530,_0xc008('0xf'),JSON['stringify'](_0x27830d));if(_0x27830d[_0xc008('0x10')]){if(_0x27830d[_0xc008('0x10')][_0xc008('0x11')]===0x1f4){logger[_0xc008('0x10')](_0xc008('0x12'),_0x4af530,_0x27830d[_0xc008('0x10')][_0xc008('0x13')]);return _0x30be38(_0x27830d['error']['message']);}logger[_0xc008('0x10')]('UserMailQueue,\x20%s,\x20%s',_0x4af530,_0x27830d[_0xc008('0x10')][_0xc008('0x13')]);return _0x5aa09b(_0x27830d[_0xc008('0x10')][_0xc008('0x13')]);}else{logger[_0xc008('0xd')]('UserMailQueue,\x20%s,\x20%s',_0x4af530,'request\x20sent');_0x5aa09b(_0x27830d['result'][_0xc008('0x13')]);}})[_0xc008('0x14')](function(_0x3cafe3){logger[_0xc008('0x10')]('UserMailQueue,\x20%s,\x20%s',_0x4af530,_0x3cafe3);_0x30be38(_0x3cafe3);});});}
\ No newline at end of file
+var _0xa41a=['rpc','../../config/environment','client','http','request','then','info','UserMailQueue,\x20%s,\x20%s','request\x20sent','debug','UserMailQueue,\x20%s,\x20%s,\x20%s','error','message','result','catch','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger'];(function(_0x13c59b,_0x1b99ca){var _0x12fb85=function(_0x1f3a32){while(--_0x1f3a32){_0x13c59b['push'](_0x13c59b['shift']());}};_0x12fb85(++_0x1b99ca);}(_0xa41a,0x6b));var _0xaa41=function(_0x268ba7,_0x26c6a2){_0x268ba7=_0x268ba7-0x0;var _0x25524f=_0xa41a[_0x268ba7];return _0x25524f;};'use strict';var _=require(_0xaa41('0x0'));var util=require(_0xaa41('0x1'));var moment=require('moment');var BPromise=require(_0xaa41('0x2'));var rs=require(_0xaa41('0x3'));var fs=require('fs');var Redis=require(_0xaa41('0x4'));var db=require(_0xaa41('0x5'))['db'];var utils=require(_0xaa41('0x6'));var logger=require(_0xaa41('0x7'))(_0xaa41('0x8'));var config=require(_0xaa41('0x9'));var jayson=require('jayson/promise');var client=jayson[_0xaa41('0xa')][_0xaa41('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x54bc5a,_0x5b1fff,_0x179545){return new BPromise(function(_0x202cce,_0x588ab4){return client[_0xaa41('0xc')](_0x54bc5a,_0x179545)[_0xaa41('0xd')](function(_0x409dab){logger[_0xaa41('0xe')](_0xaa41('0xf'),_0x5b1fff,_0xaa41('0x10'));logger[_0xaa41('0x11')](_0xaa41('0x12'),_0x5b1fff,_0xaa41('0x10'),JSON['stringify'](_0x409dab));if(_0x409dab[_0xaa41('0x13')]){if(_0x409dab[_0xaa41('0x13')]['code']===0x1f4){logger['error'](_0xaa41('0xf'),_0x5b1fff,_0x409dab['error'][_0xaa41('0x14')]);return _0x588ab4(_0x409dab[_0xaa41('0x13')][_0xaa41('0x14')]);}logger[_0xaa41('0x13')](_0xaa41('0xf'),_0x5b1fff,_0x409dab['error'][_0xaa41('0x14')]);return _0x202cce(_0x409dab[_0xaa41('0x13')][_0xaa41('0x14')]);}else{logger[_0xaa41('0xe')](_0xaa41('0xf'),_0x5b1fff,_0xaa41('0x10'));_0x202cce(_0x409dab[_0xaa41('0x15')]['message']);}})[_0xaa41('0x16')](function(_0x16b930){logger[_0xaa41('0x13')](_0xaa41('0xf'),_0x5b1fff,_0x16b930);_0x588ab4(_0x16b930);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8091=['../../config/environment','./userNotification.controller','sendUserNotification','exports','multer','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service'];(function(_0x2b216a,_0x5ebea4){var _0x39ab62=function(_0x37b9bd){while(--_0x37b9bd){_0x2b216a['push'](_0x2b216a['shift']());}};_0x39ab62(++_0x5ebea4);}(_0x8091,0x1cc));var _0x1809=function(_0x2891e0,_0x485a49){_0x2891e0=_0x2891e0-0x0;var _0x145141=_0x8091[_0x2891e0];return _0x145141;};'use strict';var multer=require(_0x1809('0x0'));var util=require('util');var path=require(_0x1809('0x1'));var timeout=require(_0x1809('0x2'));var express=require(_0x1809('0x3'));var router=express[_0x1809('0x4')]();var fs_extra=require(_0x1809('0x5'));var auth=require(_0x1809('0x6'));var interaction=require(_0x1809('0x7'));var config=require(_0x1809('0x8'));var controller=require(_0x1809('0x9'));router['post']('/',auth['isAuthenticated'](),controller[_0x1809('0xa')]);module[_0x1809('0xb')]=router;
\ No newline at end of file
+var _0xe28c=['exports','multer','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./userNotification.controller','isAuthenticated','sendUserNotification'];(function(_0x1f50a2,_0x387c1a){var _0x33a8c0=function(_0x17d201){while(--_0x17d201){_0x1f50a2['push'](_0x1f50a2['shift']());}};_0x33a8c0(++_0x387c1a);}(_0xe28c,0x115));var _0xce28=function(_0x3ba938,_0x27414d){_0x3ba938=_0x3ba938-0x0;var _0x2aabff=_0xe28c[_0x3ba938];return _0x2aabff;};'use strict';var multer=require(_0xce28('0x0'));var util=require('util');var path=require(_0xce28('0x1'));var timeout=require(_0xce28('0x2'));var express=require(_0xce28('0x3'));var router=express[_0xce28('0x4')]();var fs_extra=require(_0xce28('0x5'));var auth=require(_0xce28('0x6'));var interaction=require(_0xce28('0x7'));var config=require('../../config/environment');var controller=require(_0xce28('0x8'));router['post']('/',auth[_0xce28('0x9')](),controller[_0xce28('0xa')]);module[_0xce28('0xb')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4fb7=['STRING','sequelize','TEXT'];(function(_0x432682,_0x253044){var _0x463d05=function(_0xa73403){while(--_0xa73403){_0x432682['push'](_0x432682['shift']());}};_0x463d05(++_0x253044);}(_0x4fb7,0x9d));var _0x74fb=function(_0xb3dbde,_0x1c17b1){_0xb3dbde=_0xb3dbde-0x0;var _0x555ebf=_0x4fb7[_0xb3dbde];return _0x555ebf;};'use strict';var Sequelize=require(_0x74fb('0x0'));module['exports']={'body':{'type':Sequelize[_0x74fb('0x1')]},'senderName':{'type':Sequelize[_0x74fb('0x2')]},'recipientsId':{'type':Sequelize[_0x74fb('0x1')]},'recipientsDescription':{'type':Sequelize[_0x74fb('0x2')]},'beep':{'type':Sequelize['BOOLEAN']}};
\ No newline at end of file
+var _0xa64c=['STRING','sequelize','exports','TEXT'];(function(_0x2beca1,_0x10a40c){var _0x3ad206=function(_0x57469e){while(--_0x57469e){_0x2beca1['push'](_0x2beca1['shift']());}};_0x3ad206(++_0x10a40c);}(_0xa64c,0x1a5));var _0xca64=function(_0x3d9e16,_0x4372d0){_0x3d9e16=_0x3d9e16-0x0;var _0x367bab=_0xa64c[_0x3d9e16];return _0x367bab;};'use strict';var Sequelize=require(_0xca64('0x0'));module[_0xca64('0x1')]={'body':{'type':Sequelize[_0xca64('0x2')]},'senderName':{'type':Sequelize[_0xca64('0x3')]},'recipientsId':{'type':Sequelize[_0xca64('0x2')]},'recipientsDescription':{'type':Sequelize[_0xca64('0x3')]},'beep':{'type':Sequelize['BOOLEAN']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x00d3=['hasOwnProperty','ValidationError','Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27','TemplateId','view','Sequelize','Missing\x20\x27view\x27\x20parameter','recipients','error','Invalid\x20\x27recipients\x27\x20object','chatqueue','mailqueue','openchannelqueue','smsqueue','voicequeue','whatsappqueue','team','user','some','includes','model','Invalid\x20model\x20in\x20\x27recipients\x27\x20object','senderName','fullname','recipientsDescription','isEmpty','beep','SenderId','recipientsId','sortBy','join','sequelize','UserNotification','create','forEach','recipient','userNotification:send','Template','findOne','html','Invalid\x20\x27TemplateId\x27\x20parameter','catch','startCase','toLowerCase','User','union','ids','queue','Queue','flatten','getAgents','map','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./userNotification.socket','register','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','reject','save','then','stack','name','send','body','text'];(function(_0x3ba924,_0x3b99f0){var _0x4cc1df=function(_0x15bf28){while(--_0x15bf28){_0x3ba924['push'](_0x3ba924['shift']());}};_0x4cc1df(++_0x3b99f0);}(_0x00d3,0x9a));var _0x300d=function(_0x167cc1,_0x56ef5a){_0x167cc1=_0x167cc1-0x0;var _0x10bc4b=_0x00d3[_0x167cc1];return _0x10bc4b;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x300d('0x0'));var zipdir=require(_0x300d('0x1'));var jsonpatch=require(_0x300d('0x2'));var rp=require(_0x300d('0x3'));var moment=require(_0x300d('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x300d('0x5'));var util=require(_0x300d('0x6'));var path=require(_0x300d('0x7'));var sox=require(_0x300d('0x8'));var csv=require(_0x300d('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x300d('0xa'));var squel=require(_0x300d('0xb'));var crypto=require(_0x300d('0xc'));var jsforce=require(_0x300d('0xd'));var deskjs=require(_0x300d('0xe'));var toCsv=require(_0x300d('0x9'));var querystring=require('querystring');var Papa=require(_0x300d('0xf'));var Redis=require(_0x300d('0x10'));var authService=require(_0x300d('0x11'));var qs=require(_0x300d('0x12'));var as=require(_0x300d('0x13'));var hardwareService=require(_0x300d('0x14'));var logger=require(_0x300d('0x15'))(_0x300d('0x16'));var utils=require('../../config/utils');var config=require(_0x300d('0x17'));var licenseUtil=require(_0x300d('0x18'));var db=require(_0x300d('0x19'))['db'];config[_0x300d('0x1a')]=_[_0x300d('0x1b')](config[_0x300d('0x1a')],{'host':_0x300d('0x1c'),'port':0x18eb});var socket=require(_0x300d('0x1d'))(new Redis(config[_0x300d('0x1a')]));require(_0x300d('0x1e'))[_0x300d('0x1f')](socket);function respondWithStatusCode(_0x1bf93f,_0x109edf){_0x109edf=_0x109edf||0xcc;return function(_0x3dba18){if(_0x3dba18){return _0x1bf93f[_0x300d('0x20')](_0x109edf);}return _0x1bf93f[_0x300d('0x21')](_0x109edf)[_0x300d('0x22')]();};}function respondWithResult(_0x2ae9d9,_0x6e7cf0){_0x6e7cf0=_0x6e7cf0||0xc8;return function(_0x40bb9e){if(_0x40bb9e){return _0x2ae9d9[_0x300d('0x21')](_0x6e7cf0)[_0x300d('0x23')](_0x40bb9e);}};}function respondWithFilteredResult(_0x4a66e4,_0x5eb9a3){return function(_0x584fb6){if(_0x584fb6){var _0x4d9bc5=typeof _0x5eb9a3[_0x300d('0x24')]===_0x300d('0x25')&&typeof _0x5eb9a3['limit']==='undefined';var _0x7f37=_0x584fb6['count'];var _0x4779b0=_0x4d9bc5?0x0:_0x5eb9a3['offset'];var _0x237867=_0x4d9bc5?_0x584fb6[_0x300d('0x26')]:_0x5eb9a3[_0x300d('0x24')]+_0x5eb9a3[_0x300d('0x27')];var _0x5902b6;if(_0x237867>=_0x7f37){_0x237867=_0x7f37;_0x5902b6=0xc8;}else{_0x5902b6=0xce;}_0x4a66e4[_0x300d('0x21')](_0x5902b6);return _0x4a66e4[_0x300d('0x28')](_0x300d('0x29'),_0x4779b0+'-'+_0x237867+'/'+_0x7f37)[_0x300d('0x23')](_0x584fb6);}return null;};}function patchUpdates(_0x318096){return function(_0x4cb96b){try{jsonpatch['apply'](_0x4cb96b,_0x318096,!![]);}catch(_0x1a625d){return BPromise[_0x300d('0x2a')](_0x1a625d);}return _0x4cb96b[_0x300d('0x2b')]();};}function saveUpdates(_0x13316c,_0x3132f3){return function(_0x5e85d4){if(_0x5e85d4){return _0x5e85d4['update'](_0x13316c)['then'](function(_0xda3985){return _0xda3985;});}return null;};}function removeEntity(_0x5a65b8,_0x5b6c97){return function(_0x390d39){if(_0x390d39){return _0x390d39['destroy']()[_0x300d('0x2c')](function(){_0x5a65b8[_0x300d('0x21')](0xcc)[_0x300d('0x22')]();});}};}function handleEntityNotFound(_0x1d7e80,_0xd5eaf){return function(_0x33e5e1){if(!_0x33e5e1){_0x1d7e80[_0x300d('0x20')](0x194);}return _0x33e5e1;};}function handleError(_0xc34e3,_0x4ebe03){_0x4ebe03=_0x4ebe03||0x1f4;return function(_0x8d9c4c){logger['error'](_0x8d9c4c[_0x300d('0x2d')]);if(_0x8d9c4c[_0x300d('0x2e')]){delete _0x8d9c4c['name'];}_0xc34e3[_0x300d('0x21')](_0x4ebe03)[_0x300d('0x2f')](_0x8d9c4c);};}exports['sendUserNotification']=function(_0x251f72,_0x204382,_0x1556b4){if(!_0x251f72[_0x300d('0x30')]['hasOwnProperty'](_0x300d('0x31'))&&!_0x251f72[_0x300d('0x30')][_0x300d('0x32')]('TemplateId')){throw new db['Sequelize'][(_0x300d('0x33'))](_0x300d('0x34'));}else{if(_0x251f72['body'][_0x300d('0x32')](_0x300d('0x35'))&&!_0x251f72[_0x300d('0x30')][_0x300d('0x32')](_0x300d('0x36'))){throw new db[(_0x300d('0x37'))]['ValidationError'](_0x300d('0x38'));}if(!_0x251f72['body'][_0x300d('0x32')](_0x300d('0x39'))){throw new db[(_0x300d('0x37'))][(_0x300d('0x33'))]('Missing\x20\x27recipients\x27\x20parameter');}else{try{var _0x14dfa6=JSON['parse'](_0x251f72['body'][_0x300d('0x39')]);}catch(_0x4ea4d3){logger[_0x300d('0x3a')](_0x4ea4d3);throw new db[(_0x300d('0x37'))][(_0x300d('0x33'))](_0x300d('0x3b'));}var _0x4b5d64=[_0x300d('0x3c'),'faxqueue',_0x300d('0x3d'),_0x300d('0x3e'),_0x300d('0x3f'),_0x300d('0x40'),_0x300d('0x41'),_0x300d('0x42'),_0x300d('0x43')];if(_[_0x300d('0x44')](_0x14dfa6,function(_0x423bd8){return!_[_0x300d('0x45')](_0x4b5d64,_0x423bd8[_0x300d('0x46')]['toLowerCase']());})){throw new db[(_0x300d('0x37'))][(_0x300d('0x33'))](_0x300d('0x47'));}}}var _0x509a3b={};_0x509a3b[_0x300d('0x48')]=_0x251f72[_0x300d('0x30')][_0x300d('0x32')](_0x300d('0x48'))?_0x251f72[_0x300d('0x30')][_0x300d('0x48')]:_0x251f72['user'][_0x300d('0x49')];_0x509a3b[_0x300d('0x4a')]=_[_0x300d('0x4b')](_0x251f72[_0x300d('0x30')][_0x300d('0x4a')])?null:_0x251f72[_0x300d('0x30')][_0x300d('0x4a')];_0x509a3b[_0x300d('0x4c')]=_0x251f72[_0x300d('0x30')][_0x300d('0x4c')]||![];_0x509a3b[_0x300d('0x4d')]=_0x251f72['user']['id'];return getContent(_0x251f72[_0x300d('0x30')])[_0x300d('0x2c')](function(_0x41814b){_0x509a3b[_0x300d('0x30')]=_0x41814b;return getRecipients(_0x14dfa6);})[_0x300d('0x2c')](function(_0x52b941){_0x509a3b[_0x300d('0x4e')]=_[_0x300d('0x4f')](_0x52b941)[_0x300d('0x50')](',');return db[_0x300d('0x51')]['transaction'](function(_0x529055){return db[_0x300d('0x52')][_0x300d('0x53')](_0x509a3b,{'raw':!![],'transaction':_0x529055})[_0x300d('0x2c')](function(_0x3bedc0){var _0x21caa1={'sender':_0x509a3b[_0x300d('0x48')],'description':_0x509a3b[_0x300d('0x4a')],'content':_0x509a3b['body'],'beep':_0x509a3b[_0x300d('0x4c')]};_0x52b941[_0x300d('0x54')](function(_0x1cf87){_0x21caa1[_0x300d('0x55')]=_0x1cf87;socket['emit'](_0x300d('0x56'),_0x21caa1);});return _0x3bedc0;});});})[_0x300d('0x2c')](respondWithResult(_0x204382,0xc9))['catch'](handleError(_0x204382,null));};function getContent(_0x1d4017){return new BPromise(function(_0x1295e0,_0x5638ad){if(_0x1d4017[_0x300d('0x31')]){_0x1295e0(_0x1d4017[_0x300d('0x31')]);return;}return db[_0x300d('0x57')][_0x300d('0x58')]({'attributes':[_0x300d('0x59')],'where':{'id':_0x1d4017[_0x300d('0x35')]},'raw':!![]})[_0x300d('0x2c')](function(_0x2898db){if(!_0x2898db)throw new db[(_0x300d('0x37'))][(_0x300d('0x33'))](_0x300d('0x5a'));var _0x4dac99=Mustache['render'](_0x2898db[_0x300d('0x59')],_0x1d4017[_0x300d('0x36')]);_0x1295e0(_0x4dac99);})[_0x300d('0x5b')](function(_0x5bd7c6){_0x5638ad(_0x5bd7c6);});});}function getRecipients(_0x4f8491){return new BPromise(function(_0x4607d4,_0x4c146d){var _0x41cf94=[];var _0x52e6d2=[];_0x4f8491[_0x300d('0x54')](function(_0x4a3481){var _0x507fc8=_[_0x300d('0x5c')](_0x4a3481['model'][_0x300d('0x5d')]());if(_0x507fc8===_0x300d('0x5e')){_0x41cf94=_[_0x300d('0x5f')](_0x41cf94,_0x4a3481[_0x300d('0x60')]);}else{if(_[_0x300d('0x45')](_0x507fc8,_0x300d('0x61')))_0x507fc8=_0x507fc8['replace']('queue',_0x300d('0x62'));_0x4a3481['ids']['forEach'](function(_0x43ff85){_0x52e6d2['push'](getAgents(_0x507fc8,_0x43ff85));});}});return BPromise['all'](_0x52e6d2)[_0x300d('0x2c')](function(_0x5e8669){_0x41cf94=_[_0x300d('0x5f')](_0x41cf94,_[_0x300d('0x63')](_0x5e8669));_0x4607d4(_0x41cf94);})[_0x300d('0x5b')](function(_0x139c76){_0x4c146d(_0x139c76);});});}function getAgents(_0x19ded9,_0x40e138){return new BPromise(function(_0x4328d4,_0x3845de){return db[_0x19ded9][_0x300d('0x58')]({'where':{'id':_0x40e138}})[_0x300d('0x2c')](function(_0x10a53f){return _0x10a53f[_0x300d('0x64')]({'attributes':['id'],'raw':!![]})[_0x300d('0x2c')](function(_0x4f7fa6){var _0x38ad2f=_[_0x300d('0x65')](_0x4f7fa6,'id');_0x4328d4(_0x38ad2f);});})['catch'](function(_0x2198f3){_0x3845de(_0x2198f3);});});}
\ No newline at end of file
+var _0xbba6=['fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','socket.io-emitter','./userNotification.socket','register','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','apply','reject','save','update','destroy','then','error','name','send','body','hasOwnProperty','text','TemplateId','Sequelize','ValidationError','view','Missing\x20\x27view\x27\x20parameter','parse','recipients','Invalid\x20\x27recipients\x27\x20object','chatqueue','faxqueue','mailqueue','openchannelqueue','smsqueue','whatsappqueue','model','toLowerCase','Invalid\x20model\x20in\x20\x27recipients\x27\x20object','senderName','user','recipientsDescription','isEmpty','beep','recipientsId','sortBy','sequelize','transaction','UserNotification','forEach','userNotification:send','findOne','html','Invalid\x20\x27TemplateId\x27\x20parameter','startCase','ids','includes','queue','replace','Queue','push','union','flatten','getAgents','map','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','util','path','sox','to-csv'];(function(_0x33cb5f,_0x333504){var _0x39502a=function(_0x198a7e){while(--_0x198a7e){_0x33cb5f['push'](_0x33cb5f['shift']());}};_0x39502a(++_0x333504);}(_0xbba6,0xb6));var _0x6bba=function(_0x4e6b7d,_0x2420ea){_0x4e6b7d=_0x4e6b7d-0x0;var _0x59db61=_0xbba6[_0x4e6b7d];return _0x59db61;};'use strict';var emlformat=require(_0x6bba('0x0'));var rimraf=require(_0x6bba('0x1'));var zipdir=require(_0x6bba('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x6bba('0x3'));var moment=require(_0x6bba('0x4'));var BPromise=require(_0x6bba('0x5'));var Mustache=require('mustache');var util=require(_0x6bba('0x6'));var path=require(_0x6bba('0x7'));var sox=require(_0x6bba('0x8'));var csv=require(_0x6bba('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x6bba('0xa'));var _=require(_0x6bba('0xb'));var squel=require('squel');var crypto=require(_0x6bba('0xc'));var jsforce=require(_0x6bba('0xd'));var deskjs=require(_0x6bba('0xe'));var toCsv=require(_0x6bba('0x9'));var querystring=require(_0x6bba('0xf'));var Papa=require(_0x6bba('0x10'));var Redis=require(_0x6bba('0x11'));var authService=require(_0x6bba('0x12'));var qs=require(_0x6bba('0x13'));var as=require(_0x6bba('0x14'));var hardwareService=require(_0x6bba('0x15'));var logger=require('../../config/logger')(_0x6bba('0x16'));var utils=require(_0x6bba('0x17'));var config=require(_0x6bba('0x18'));var licenseUtil=require('../../config/license/util');var db=require(_0x6bba('0x19'))['db'];config[_0x6bba('0x1a')]=_[_0x6bba('0x1b')](config[_0x6bba('0x1a')],{'host':'localhost','port':0x18eb});var socket=require(_0x6bba('0x1c'))(new Redis(config[_0x6bba('0x1a')]));require(_0x6bba('0x1d'))[_0x6bba('0x1e')](socket);function respondWithStatusCode(_0x27fca1,_0x58bb7f){_0x58bb7f=_0x58bb7f||0xcc;return function(_0x50f84b){if(_0x50f84b){return _0x27fca1[_0x6bba('0x1f')](_0x58bb7f);}return _0x27fca1[_0x6bba('0x20')](_0x58bb7f)[_0x6bba('0x21')]();};}function respondWithResult(_0x79a5b7,_0x4068b8){_0x4068b8=_0x4068b8||0xc8;return function(_0x5c4b1d){if(_0x5c4b1d){return _0x79a5b7['status'](_0x4068b8)[_0x6bba('0x22')](_0x5c4b1d);}};}function respondWithFilteredResult(_0x309e6c,_0x118e5c){return function(_0x5326dd){if(_0x5326dd){var _0x4fae84=typeof _0x118e5c[_0x6bba('0x23')]===_0x6bba('0x24')&&typeof _0x118e5c['limit']===_0x6bba('0x24');var _0x113742=_0x5326dd[_0x6bba('0x25')];var _0x2171fd=_0x4fae84?0x0:_0x118e5c[_0x6bba('0x23')];var _0x4458d8=_0x4fae84?_0x5326dd[_0x6bba('0x25')]:_0x118e5c[_0x6bba('0x23')]+_0x118e5c[_0x6bba('0x26')];var _0xcfecf7;if(_0x4458d8>=_0x113742){_0x4458d8=_0x113742;_0xcfecf7=0xc8;}else{_0xcfecf7=0xce;}_0x309e6c['status'](_0xcfecf7);return _0x309e6c[_0x6bba('0x27')](_0x6bba('0x28'),_0x2171fd+'-'+_0x4458d8+'/'+_0x113742)[_0x6bba('0x22')](_0x5326dd);}return null;};}function patchUpdates(_0x1ad9fd){return function(_0x4b1d5d){try{jsonpatch[_0x6bba('0x29')](_0x4b1d5d,_0x1ad9fd,!![]);}catch(_0x50baf8){return BPromise[_0x6bba('0x2a')](_0x50baf8);}return _0x4b1d5d[_0x6bba('0x2b')]();};}function saveUpdates(_0x145dec,_0x3ee07f){return function(_0x3f456e){if(_0x3f456e){return _0x3f456e[_0x6bba('0x2c')](_0x145dec)['then'](function(_0x108baa){return _0x108baa;});}return null;};}function removeEntity(_0x11d53f,_0x1b5fc0){return function(_0x318af6){if(_0x318af6){return _0x318af6[_0x6bba('0x2d')]()[_0x6bba('0x2e')](function(){_0x11d53f['status'](0xcc)[_0x6bba('0x21')]();});}};}function handleEntityNotFound(_0x28f4d6,_0x3b3a49){return function(_0x464d8a){if(!_0x464d8a){_0x28f4d6[_0x6bba('0x1f')](0x194);}return _0x464d8a;};}function handleError(_0x1198af,_0x3fc82f){_0x3fc82f=_0x3fc82f||0x1f4;return function(_0x289748){logger[_0x6bba('0x2f')](_0x289748['stack']);if(_0x289748[_0x6bba('0x30')]){delete _0x289748[_0x6bba('0x30')];}_0x1198af[_0x6bba('0x20')](_0x3fc82f)[_0x6bba('0x31')](_0x289748);};}exports['sendUserNotification']=function(_0x3bdd7b,_0x3e6484,_0x2060ab){if(!_0x3bdd7b[_0x6bba('0x32')][_0x6bba('0x33')](_0x6bba('0x34'))&&!_0x3bdd7b[_0x6bba('0x32')][_0x6bba('0x33')](_0x6bba('0x35'))){throw new db[(_0x6bba('0x36'))][(_0x6bba('0x37'))]('Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27');}else{if(_0x3bdd7b[_0x6bba('0x32')][_0x6bba('0x33')]('TemplateId')&&!_0x3bdd7b['body'][_0x6bba('0x33')](_0x6bba('0x38'))){throw new db[(_0x6bba('0x36'))][(_0x6bba('0x37'))](_0x6bba('0x39'));}if(!_0x3bdd7b[_0x6bba('0x32')][_0x6bba('0x33')]('recipients')){throw new db['Sequelize'][(_0x6bba('0x37'))]('Missing\x20\x27recipients\x27\x20parameter');}else{try{var _0x3ccbc4=JSON[_0x6bba('0x3a')](_0x3bdd7b[_0x6bba('0x32')][_0x6bba('0x3b')]);}catch(_0x30fa51){logger[_0x6bba('0x2f')](_0x30fa51);throw new db['Sequelize'][(_0x6bba('0x37'))](_0x6bba('0x3c'));}var _0x5f033e=[_0x6bba('0x3d'),_0x6bba('0x3e'),_0x6bba('0x3f'),_0x6bba('0x40'),_0x6bba('0x41'),'voicequeue',_0x6bba('0x42'),'team','user'];if(_['some'](_0x3ccbc4,function(_0x265a1d){return!_['includes'](_0x5f033e,_0x265a1d[_0x6bba('0x43')][_0x6bba('0x44')]());})){throw new db[(_0x6bba('0x36'))][(_0x6bba('0x37'))](_0x6bba('0x45'));}}}var _0x1cbd15={};_0x1cbd15[_0x6bba('0x46')]=_0x3bdd7b[_0x6bba('0x32')]['hasOwnProperty'](_0x6bba('0x46'))?_0x3bdd7b[_0x6bba('0x32')][_0x6bba('0x46')]:_0x3bdd7b[_0x6bba('0x47')]['fullname'];_0x1cbd15[_0x6bba('0x48')]=_[_0x6bba('0x49')](_0x3bdd7b[_0x6bba('0x32')][_0x6bba('0x48')])?null:_0x3bdd7b[_0x6bba('0x32')][_0x6bba('0x48')];_0x1cbd15[_0x6bba('0x4a')]=_0x3bdd7b[_0x6bba('0x32')][_0x6bba('0x4a')]||![];_0x1cbd15['SenderId']=_0x3bdd7b[_0x6bba('0x47')]['id'];return getContent(_0x3bdd7b[_0x6bba('0x32')])[_0x6bba('0x2e')](function(_0x425989){_0x1cbd15[_0x6bba('0x32')]=_0x425989;return getRecipients(_0x3ccbc4);})[_0x6bba('0x2e')](function(_0x126692){_0x1cbd15[_0x6bba('0x4b')]=_[_0x6bba('0x4c')](_0x126692)['join'](',');return db[_0x6bba('0x4d')][_0x6bba('0x4e')](function(_0x2423f1){return db[_0x6bba('0x4f')]['create'](_0x1cbd15,{'raw':!![],'transaction':_0x2423f1})['then'](function(_0x432a7a){var _0x210d16={'sender':_0x1cbd15[_0x6bba('0x46')],'description':_0x1cbd15[_0x6bba('0x48')],'content':_0x1cbd15[_0x6bba('0x32')],'beep':_0x1cbd15[_0x6bba('0x4a')]};_0x126692[_0x6bba('0x50')](function(_0x50a916){_0x210d16['recipient']=_0x50a916;socket['emit'](_0x6bba('0x51'),_0x210d16);});return _0x432a7a;});});})['then'](respondWithResult(_0x3e6484,0xc9))['catch'](handleError(_0x3e6484,null));};function getContent(_0x220ddb){return new BPromise(function(_0xfa1950,_0x55368e){if(_0x220ddb[_0x6bba('0x34')]){_0xfa1950(_0x220ddb[_0x6bba('0x34')]);return;}return db['Template'][_0x6bba('0x52')]({'attributes':[_0x6bba('0x53')],'where':{'id':_0x220ddb[_0x6bba('0x35')]},'raw':!![]})[_0x6bba('0x2e')](function(_0x445249){if(!_0x445249)throw new db['Sequelize'][(_0x6bba('0x37'))](_0x6bba('0x54'));var _0x3e8697=Mustache['render'](_0x445249[_0x6bba('0x53')],_0x220ddb[_0x6bba('0x38')]);_0xfa1950(_0x3e8697);})['catch'](function(_0x5e87c3){_0x55368e(_0x5e87c3);});});}function getRecipients(_0xe2ff7f){return new BPromise(function(_0x5b4cf5,_0x1055e3){var _0x44ccf2=[];var _0x30137f=[];_0xe2ff7f[_0x6bba('0x50')](function(_0x28a666){var _0xd2dd60=_[_0x6bba('0x55')](_0x28a666[_0x6bba('0x43')][_0x6bba('0x44')]());if(_0xd2dd60==='User'){_0x44ccf2=_['union'](_0x44ccf2,_0x28a666[_0x6bba('0x56')]);}else{if(_[_0x6bba('0x57')](_0xd2dd60,_0x6bba('0x58')))_0xd2dd60=_0xd2dd60[_0x6bba('0x59')]('queue',_0x6bba('0x5a'));_0x28a666[_0x6bba('0x56')][_0x6bba('0x50')](function(_0x2c5353){_0x30137f[_0x6bba('0x5b')](getAgents(_0xd2dd60,_0x2c5353));});}});return BPromise['all'](_0x30137f)[_0x6bba('0x2e')](function(_0xcbb81a){_0x44ccf2=_[_0x6bba('0x5c')](_0x44ccf2,_[_0x6bba('0x5d')](_0xcbb81a));_0x5b4cf5(_0x44ccf2);})['catch'](function(_0x311440){_0x1055e3(_0x311440);});});}function getAgents(_0x3fa2b0,_0x1f0dcf){return new BPromise(function(_0x2f007e,_0x140dfb){return db[_0x3fa2b0][_0x6bba('0x52')]({'where':{'id':_0x1f0dcf}})[_0x6bba('0x2e')](function(_0x241f03){return _0x241f03[_0x6bba('0x5e')]({'attributes':['id'],'raw':!![]})['then'](function(_0x26b447){var _0x40f07f=_[_0x6bba('0x5f')](_0x26b447,'id');_0x2f007e(_0x40f07f);});})['catch'](function(_0x1f6b42){_0x140dfb(_0x1f6b42);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc688=['emit','hasOwnProperty','hook','exports','events','../../mysqldb','UserNotification','setMaxListeners','save','remove'];(function(_0x4a1efa,_0x6e7052){var _0x2b5d62=function(_0x22b9d6){while(--_0x22b9d6){_0x4a1efa['push'](_0x4a1efa['shift']());}};_0x2b5d62(++_0x6e7052);}(_0xc688,0x144));var _0x8c68=function(_0x3691de,_0x5b8253){_0x3691de=_0x3691de-0x0;var _0xb9b9f3=_0xc688[_0x3691de];return _0xb9b9f3;};'use strict';var EventEmitter=require(_0x8c68('0x0'));var UserNotification=require(_0x8c68('0x1'))['db'][_0x8c68('0x2')];var UserNotificationEvents=new EventEmitter();UserNotificationEvents[_0x8c68('0x3')](0x0);var events={'afterCreate':_0x8c68('0x4'),'afterUpdate':'update','afterDestroy':_0x8c68('0x5')};function emitEvent(_0x27b3af){return function(_0x1420c5,_0x39cbe9,_0x2f3ab9){UserNotificationEvents[_0x8c68('0x6')](_0x27b3af+':'+_0x1420c5['id'],_0x1420c5);UserNotificationEvents[_0x8c68('0x6')](_0x27b3af,_0x1420c5);_0x2f3ab9(null);};}for(var e in events){if(events[_0x8c68('0x7')](e)){var event=events[e];UserNotification[_0x8c68('0x8')](e,emitEvent(event));}}module[_0x8c68('0x9')]=UserNotificationEvents;
\ No newline at end of file
+var _0x5060=['emit','exports','events','UserNotification','setMaxListeners','save'];(function(_0x1040e4,_0x4b4c60){var _0x55da2f=function(_0x44d308){while(--_0x44d308){_0x1040e4['push'](_0x1040e4['shift']());}};_0x55da2f(++_0x4b4c60);}(_0x5060,0x122));var _0x0506=function(_0x486ec6,_0xdaacda){_0x486ec6=_0x486ec6-0x0;var _0x417267=_0x5060[_0x486ec6];return _0x417267;};'use strict';var EventEmitter=require(_0x0506('0x0'));var UserNotification=require('../../mysqldb')['db'][_0x0506('0x1')];var UserNotificationEvents=new EventEmitter();UserNotificationEvents[_0x0506('0x2')](0x0);var events={'afterCreate':_0x0506('0x3'),'afterUpdate':'update','afterDestroy':'remove'};function emitEvent(_0x5a7993){return function(_0x387622,_0x3974b0,_0x200c5c){UserNotificationEvents['emit'](_0x5a7993+':'+_0x387622['id'],_0x387622);UserNotificationEvents[_0x0506('0x4')](_0x5a7993,_0x387622);_0x200c5c(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];UserNotification['hook'](e,emitEvent(event));}}module[_0x0506('0x5')]=UserNotificationEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc395=['userNotifications','utf8mb4','utf8mb4_unicode_ci','../../config/logger','moment','bluebird','path','rimraf','./userNotification.attributes','exports','define','UserNotification'];(function(_0x1b3c30,_0xe3f388){var _0x1ca1b4=function(_0x21694a){while(--_0x21694a){_0x1b3c30['push'](_0x1b3c30['shift']());}};_0x1ca1b4(++_0xe3f388);}(_0xc395,0x16b));var _0x5c39=function(_0x465a0c,_0x19d4d5){_0x465a0c=_0x465a0c-0x0;var _0x1e202e=_0xc395[_0x465a0c];return _0x1e202e;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x5c39('0x0'))('api');var moment=require(_0x5c39('0x1'));var BPromise=require(_0x5c39('0x2'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x5c39('0x3'));var rimraf=require(_0x5c39('0x4'));var config=require('../../config/environment');var attributes=require(_0x5c39('0x5'));module[_0x5c39('0x6')]=function(_0x478516,_0x2c77fe){return _0x478516[_0x5c39('0x7')](_0x5c39('0x8'),attributes,{'tableName':_0x5c39('0x9'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x5c39('0xa'),'collate':_0x5c39('0xb')});};
\ No newline at end of file
+var _0x8b8a=['moment','bluebird','request-promise','path','rimraf','../../config/environment','./userNotification.attributes','define','userNotifications','utf8mb4','utf8mb4_unicode_ci','lodash','util','../../config/logger','api'];(function(_0x239193,_0x1585ef){var _0x4f51c3=function(_0x8eba2c){while(--_0x8eba2c){_0x239193['push'](_0x239193['shift']());}};_0x4f51c3(++_0x1585ef);}(_0x8b8a,0xb0));var _0xa8b8=function(_0x11c9bd,_0x433241){_0x11c9bd=_0x11c9bd-0x0;var _0xcf348c=_0x8b8a[_0x11c9bd];return _0xcf348c;};'use strict';var _=require(_0xa8b8('0x0'));var util=require(_0xa8b8('0x1'));var logger=require(_0xa8b8('0x2'))(_0xa8b8('0x3'));var moment=require(_0xa8b8('0x4'));var BPromise=require(_0xa8b8('0x5'));var rp=require(_0xa8b8('0x6'));var fs=require('fs');var path=require(_0xa8b8('0x7'));var rimraf=require(_0xa8b8('0x8'));var config=require(_0xa8b8('0x9'));var attributes=require(_0xa8b8('0xa'));module['exports']=function(_0x3a09ce,_0xe773b5){return _0x3a09ce[_0xa8b8('0xb')]('UserNotification',attributes,{'tableName':_0xa8b8('0xc'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0xa8b8('0xd'),'collate':_0xa8b8('0xe')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdb4c=['UserNotification,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','redis','defaults','localhost','socket.io-emitter','./userNotification.socket','register','request','then','UserNotification,\x20%s,\x20%s','request\x20sent','debug'];(function(_0x5ec544,_0x31a0c5){var _0x15d14e=function(_0x2435bf){while(--_0x2435bf){_0x5ec544['push'](_0x5ec544['shift']());}};_0x15d14e(++_0x31a0c5);}(_0xdb4c,0x116));var _0xcdb4=function(_0xd15d59,_0x323192){_0xd15d59=_0xd15d59-0x0;var _0x1dec06=_0xdb4c[_0xd15d59];return _0x1dec06;};'use strict';var _=require(_0xcdb4('0x0'));var util=require(_0xcdb4('0x1'));var moment=require(_0xcdb4('0x2'));var BPromise=require(_0xcdb4('0x3'));var rs=require(_0xcdb4('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xcdb4('0x5'))['db'];var utils=require(_0xcdb4('0x6'));var logger=require(_0xcdb4('0x7'))('rpc');var config=require(_0xcdb4('0x8'));var jayson=require(_0xcdb4('0x9'));var client=jayson[_0xcdb4('0xa')]['http']({'port':0x232a});config[_0xcdb4('0xb')]=_[_0xcdb4('0xc')](config[_0xcdb4('0xb')],{'host':_0xcdb4('0xd'),'port':0x18eb});var socket=require(_0xcdb4('0xe'))(new Redis(config['redis']));require(_0xcdb4('0xf'))[_0xcdb4('0x10')](socket);function respondWithRpcPromise(_0x3333b5,_0x37ba0e,_0x4d7c1c){return new BPromise(function(_0x146203,_0x3c76d9){return client[_0xcdb4('0x11')](_0x3333b5,_0x4d7c1c)[_0xcdb4('0x12')](function(_0x16ba94){logger['info'](_0xcdb4('0x13'),_0x37ba0e,_0xcdb4('0x14'));logger[_0xcdb4('0x15')](_0xcdb4('0x16'),_0x37ba0e,_0xcdb4('0x14'),JSON[_0xcdb4('0x17')](_0x16ba94));if(_0x16ba94[_0xcdb4('0x18')]){if(_0x16ba94[_0xcdb4('0x18')][_0xcdb4('0x19')]===0x1f4){logger[_0xcdb4('0x18')]('UserNotification,\x20%s,\x20%s',_0x37ba0e,_0x16ba94[_0xcdb4('0x18')][_0xcdb4('0x1a')]);return _0x3c76d9(_0x16ba94[_0xcdb4('0x18')]['message']);}logger[_0xcdb4('0x18')](_0xcdb4('0x13'),_0x37ba0e,_0x16ba94['error'][_0xcdb4('0x1a')]);return _0x146203(_0x16ba94['error'][_0xcdb4('0x1a')]);}else{logger[_0xcdb4('0x1b')](_0xcdb4('0x13'),_0x37ba0e,'request\x20sent');_0x146203(_0x16ba94[_0xcdb4('0x1c')]['message']);}})[_0xcdb4('0x1d')](function(_0x408c3a){logger[_0xcdb4('0x18')](_0xcdb4('0x13'),_0x37ba0e,_0x408c3a);_0x3c76d9(_0x408c3a);});});}
\ No newline at end of file
+var _0x2da8=['client','http','redis','defaults','localhost','socket.io-emitter','./userNotification.socket','request','then','info','UserNotification,\x20%s,\x20%s','request\x20sent','UserNotification,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise'];(function(_0x406c99,_0x17dadb){var _0x165e75=function(_0x29b8ee){while(--_0x29b8ee){_0x406c99['push'](_0x406c99['shift']());}};_0x165e75(++_0x17dadb);}(_0x2da8,0xc7));var _0x82da=function(_0x42cae2,_0x284ef8){_0x42cae2=_0x42cae2-0x0;var _0x5f256f=_0x2da8[_0x42cae2];return _0x5f256f;};'use strict';var _=require(_0x82da('0x0'));var util=require(_0x82da('0x1'));var moment=require('moment');var BPromise=require(_0x82da('0x2'));var rs=require(_0x82da('0x3'));var fs=require('fs');var Redis=require(_0x82da('0x4'));var db=require(_0x82da('0x5'))['db'];var utils=require(_0x82da('0x6'));var logger=require(_0x82da('0x7'))(_0x82da('0x8'));var config=require(_0x82da('0x9'));var jayson=require(_0x82da('0xa'));var client=jayson[_0x82da('0xb')][_0x82da('0xc')]({'port':0x232a});config[_0x82da('0xd')]=_[_0x82da('0xe')](config[_0x82da('0xd')],{'host':_0x82da('0xf'),'port':0x18eb});var socket=require(_0x82da('0x10'))(new Redis(config[_0x82da('0xd')]));require(_0x82da('0x11'))['register'](socket);function respondWithRpcPromise(_0xa56881,_0x42b322,_0x49fa85){return new BPromise(function(_0x42c8a3,_0x4f6195){return client[_0x82da('0x12')](_0xa56881,_0x49fa85)[_0x82da('0x13')](function(_0x385fac){logger[_0x82da('0x14')](_0x82da('0x15'),_0x42b322,_0x82da('0x16'));logger['debug'](_0x82da('0x17'),_0x42b322,_0x82da('0x16'),JSON[_0x82da('0x18')](_0x385fac));if(_0x385fac[_0x82da('0x19')]){if(_0x385fac['error'][_0x82da('0x1a')]===0x1f4){logger['error']('UserNotification,\x20%s,\x20%s',_0x42b322,_0x385fac[_0x82da('0x19')][_0x82da('0x1b')]);return _0x4f6195(_0x385fac['error']['message']);}logger[_0x82da('0x19')](_0x82da('0x15'),_0x42b322,_0x385fac[_0x82da('0x19')][_0x82da('0x1b')]);return _0x42c8a3(_0x385fac['error'][_0x82da('0x1b')]);}else{logger[_0x82da('0x14')](_0x82da('0x15'),_0x42b322,_0x82da('0x16'));_0x42c8a3(_0x385fac[_0x82da('0x1c')][_0x82da('0x1b')]);}})[_0x82da('0x1d')](function(_0x16de5e){logger['error']('UserNotification,\x20%s,\x20%s',_0x42b322,_0x16de5e);_0x4f6195(_0x16de5e);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3eaf=['userNotification:','save','update','register','length'];(function(_0x2da3ff,_0x534fd4){var _0x482ff2=function(_0x421913){while(--_0x421913){_0x2da3ff['push'](_0x2da3ff['shift']());}};_0x482ff2(++_0x534fd4);}(_0x3eaf,0x88));var _0xf3ea=function(_0x2751bf,_0x3ab262){_0x2751bf=_0x2751bf-0x0;var _0x2be3f6=_0x3eaf[_0x2751bf];return _0x2be3f6;};'use strict';var UserNotificationEvents=require('./userNotification.events');var events=[_0xf3ea('0x0'),'remove',_0xf3ea('0x1')];function createListener(_0x9a8836,_0x5c0657){return function(_0x5ab929){_0x5c0657['emit'](_0x9a8836,_0x5ab929);};}function removeListener(_0x246f79,_0x1c68b2){return function(){UserNotificationEvents['removeListener'](_0x246f79,_0x1c68b2);};}exports[_0xf3ea('0x2')]=function(_0x488c91){for(var _0x14d5a4=0x0,_0x567d6a=events[_0xf3ea('0x3')];_0x14d5a4<_0x567d6a;_0x14d5a4++){var _0x446b69=events[_0x14d5a4];var _0x54c1fe=createListener(_0xf3ea('0x4')+_0x446b69,_0x488c91);UserNotificationEvents['on'](_0x446b69,_0x54c1fe);}};
\ No newline at end of file
+var _0x0971=['update','emit','removeListener','register','save','remove'];(function(_0x75ce5b,_0x3b582f){var _0x22195e=function(_0x166668){while(--_0x166668){_0x75ce5b['push'](_0x75ce5b['shift']());}};_0x22195e(++_0x3b582f);}(_0x0971,0x10c));var _0x1097=function(_0x555069,_0x23d66a){_0x555069=_0x555069-0x0;var _0x100af7=_0x0971[_0x555069];return _0x100af7;};'use strict';var UserNotificationEvents=require('./userNotification.events');var events=[_0x1097('0x0'),_0x1097('0x1'),_0x1097('0x2')];function createListener(_0x1c3c3c,_0x32ae79){return function(_0x57372f){_0x32ae79[_0x1097('0x3')](_0x1c3c3c,_0x57372f);};}function removeListener(_0x47bedb,_0x35c9da){return function(){UserNotificationEvents[_0x1097('0x4')](_0x47bedb,_0x35c9da);};}exports[_0x1097('0x5')]=function(_0x2ff395){for(var _0x3a80d6=0x0,_0x150f67=events['length'];_0x3a80d6<_0x150f67;_0x3a80d6++){var _0x309bbd=events[_0x3a80d6];var _0x1370af=createListener('userNotification:'+_0x309bbd,_0x2ff395);UserNotificationEvents['on'](_0x309bbd,_0x1370af);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xedd9=['util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','exports'];(function(_0x5b2d44,_0x1eb8e0){var _0x3ad3d6=function(_0x8dd773){while(--_0x8dd773){_0x5b2d44['push'](_0x5b2d44['shift']());}};_0x3ad3d6(++_0x1eb8e0);}(_0xedd9,0xfc));var _0x9edd=function(_0x392320,_0x428048){_0x392320=_0x392320-0x0;var _0x1fa64d=_0xedd9[_0x392320];return _0x1fa64d;};'use strict';var multer=require('multer');var util=require(_0x9edd('0x0'));var path=require(_0x9edd('0x1'));var timeout=require(_0x9edd('0x2'));var express=require(_0x9edd('0x3'));var router=express[_0x9edd('0x4')]();var fs_extra=require(_0x9edd('0x5'));var auth=require(_0x9edd('0x6'));var interaction=require(_0x9edd('0x7'));var config=require('../../config/environment');module[_0x9edd('0x8')]=router;
\ No newline at end of file
+var _0xd8b0=['Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','multer','util'];(function(_0x34404c,_0x49b8d1){var _0x46d1f2=function(_0x2cb37b){while(--_0x2cb37b){_0x34404c['push'](_0x34404c['shift']());}};_0x46d1f2(++_0x49b8d1);}(_0xd8b0,0xad));var _0x0d8b=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xd8b0[_0x20a584];return _0x4b41a8;};'use strict';var multer=require(_0x0d8b('0x0'));var util=require(_0x0d8b('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require('express');var router=express[_0x0d8b('0x2')]();var fs_extra=require(_0x0d8b('0x3'));var auth=require(_0x0d8b('0x4'));var interaction=require(_0x0d8b('0x5'));var config=require(_0x0d8b('0x6'));module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4a44=['sequelize','INTEGER'];(function(_0x5980c2,_0x114eba){var _0x28b8be=function(_0xb9a2){while(--_0xb9a2){_0x5980c2['push'](_0x5980c2['shift']());}};_0x28b8be(++_0x114eba);}(_0x4a44,0x1ee));var _0x44a4=function(_0xa464c9,_0x7c86d8){_0xa464c9=_0xa464c9-0x0;var _0x3d73c4=_0x4a44[_0xa464c9];return _0x3d73c4;};'use strict';var Sequelize=require(_0x44a4('0x0'));module['exports']={'penalty':{'type':Sequelize[_0x44a4('0x1')],'defaultValue':0x0}};
\ No newline at end of file
+var _0xc7ec=['INTEGER','exports'];(function(_0x29f491,_0x1c37c1){var _0x132d07=function(_0x9c1d76){while(--_0x9c1d76){_0x29f491['push'](_0x29f491['shift']());}};_0x132d07(++_0x1c37c1);}(_0xc7ec,0xff));var _0xcc7e=function(_0x2d579f,_0x370e5d){_0x2d579f=_0x2d579f-0x0;var _0x1145da=_0xc7ec[_0x2d579f];return _0x1145da;};'use strict';var Sequelize=require('sequelize');module[_0xcc7e('0x0')]={'penalty':{'type':Sequelize[_0xcc7e('0x1')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x21c7=['moment','bluebird','request-promise','rimraf','../../config/environment','./userOpenchannelQueue.attributes','exports','define','user_has_openchannel_queues','lodash','../../config/logger','api'];(function(_0x15cf89,_0x2cda28){var _0x5a6893=function(_0x1d5203){while(--_0x1d5203){_0x15cf89['push'](_0x15cf89['shift']());}};_0x5a6893(++_0x2cda28);}(_0x21c7,0x129));var _0x721c=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x21c7[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0x721c('0x0'));var util=require('util');var logger=require(_0x721c('0x1'))(_0x721c('0x2'));var moment=require(_0x721c('0x3'));var BPromise=require(_0x721c('0x4'));var rp=require(_0x721c('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0x721c('0x6'));var config=require(_0x721c('0x7'));var attributes=require(_0x721c('0x8'));module[_0x721c('0x9')]=function(_0x23da90,_0x2ae736){return _0x23da90[_0x721c('0xa')]('UserOpenchannelQueue',attributes,{'tableName':_0x721c('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xa25c=['UserOpenchannelQueue','user_has_openchannel_queues','util','../../config/logger','api','moment','request-promise','../../config/environment','./userOpenchannelQueue.attributes','exports'];(function(_0x34d1a3,_0x402ed9){var _0x4da0d7=function(_0x552f80){while(--_0x552f80){_0x34d1a3['push'](_0x34d1a3['shift']());}};_0x4da0d7(++_0x402ed9);}(_0xa25c,0x1a6));var _0xca25=function(_0x3c3920,_0x286666){_0x3c3920=_0x3c3920-0x0;var _0x3a6ddb=_0xa25c[_0x3c3920];return _0x3a6ddb;};'use strict';var _=require('lodash');var util=require(_0xca25('0x0'));var logger=require(_0xca25('0x1'))(_0xca25('0x2'));var moment=require(_0xca25('0x3'));var BPromise=require('bluebird');var rp=require(_0xca25('0x4'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0xca25('0x5'));var attributes=require(_0xca25('0x6'));module[_0xca25('0x7')]=function(_0xd22efd,_0x3cb32c){return _0xd22efd['define'](_0xca25('0x8'),attributes,{'tableName':_0xca25('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe5a8=['result','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','then','info','UserOpenchannelQueue,\x20%s,\x20%s','request\x20sent','debug','UserOpenchannelQueue,\x20%s,\x20%s,\x20%s','error','code','message'];(function(_0x5d6cdc,_0x13e911){var _0x59cc8a=function(_0xab4572){while(--_0xab4572){_0x5d6cdc['push'](_0x5d6cdc['shift']());}};_0x59cc8a(++_0x13e911);}(_0xe5a8,0x8b));var _0x8e5a=function(_0x1bb787,_0x2cea6c){_0x1bb787=_0x1bb787-0x0;var _0x3cbe34=_0xe5a8[_0x1bb787];return _0x3cbe34;};'use strict';var _=require('lodash');var util=require(_0x8e5a('0x0'));var moment=require(_0x8e5a('0x1'));var BPromise=require(_0x8e5a('0x2'));var rs=require(_0x8e5a('0x3'));var fs=require('fs');var Redis=require(_0x8e5a('0x4'));var db=require(_0x8e5a('0x5'))['db'];var utils=require(_0x8e5a('0x6'));var logger=require(_0x8e5a('0x7'))(_0x8e5a('0x8'));var config=require(_0x8e5a('0x9'));var jayson=require(_0x8e5a('0xa'));var client=jayson[_0x8e5a('0xb')][_0x8e5a('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x4b667c,_0x11ccd9,_0x7635b8){return new BPromise(function(_0x1f2eff,_0x3510af){return client['request'](_0x4b667c,_0x7635b8)[_0x8e5a('0xd')](function(_0x462473){logger[_0x8e5a('0xe')](_0x8e5a('0xf'),_0x11ccd9,_0x8e5a('0x10'));logger[_0x8e5a('0x11')](_0x8e5a('0x12'),_0x11ccd9,_0x8e5a('0x10'),JSON['stringify'](_0x462473));if(_0x462473[_0x8e5a('0x13')]){if(_0x462473[_0x8e5a('0x13')][_0x8e5a('0x14')]===0x1f4){logger[_0x8e5a('0x13')](_0x8e5a('0xf'),_0x11ccd9,_0x462473[_0x8e5a('0x13')][_0x8e5a('0x15')]);return _0x3510af(_0x462473[_0x8e5a('0x13')]['message']);}logger['error']('UserOpenchannelQueue,\x20%s,\x20%s',_0x11ccd9,_0x462473[_0x8e5a('0x13')][_0x8e5a('0x15')]);return _0x1f2eff(_0x462473['error'][_0x8e5a('0x15')]);}else{logger[_0x8e5a('0xe')]('UserOpenchannelQueue,\x20%s,\x20%s',_0x11ccd9,_0x8e5a('0x10'));_0x1f2eff(_0x462473[_0x8e5a('0x16')][_0x8e5a('0x15')]);}})['catch'](function(_0xfbe1d8){logger[_0x8e5a('0x13')](_0x8e5a('0xf'),_0x11ccd9,_0xfbe1d8);_0x3510af(_0xfbe1d8);});});}
\ No newline at end of file
+var _0x6402=['UserOpenchannelQueue,\x20%s,\x20%s','message','result','lodash','util','bluebird','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','request\x20sent','debug','UserOpenchannelQueue,\x20%s,\x20%s,\x20%s','stringify','error','code'];(function(_0x24237f,_0x4cf32c){var _0x48298e=function(_0x3f7511){while(--_0x3f7511){_0x24237f['push'](_0x24237f['shift']());}};_0x48298e(++_0x4cf32c);}(_0x6402,0x1d1));var _0x2640=function(_0x14d9ad,_0x4b60c0){_0x14d9ad=_0x14d9ad-0x0;var _0x3089c8=_0x6402[_0x14d9ad];return _0x3089c8;};'use strict';var _=require(_0x2640('0x0'));var util=require(_0x2640('0x1'));var moment=require('moment');var BPromise=require(_0x2640('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x2640('0x3'));var logger=require(_0x2640('0x4'))(_0x2640('0x5'));var config=require(_0x2640('0x6'));var jayson=require(_0x2640('0x7'));var client=jayson[_0x2640('0x8')][_0x2640('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x1a7252,_0x69c0db,_0x57cf67){return new BPromise(function(_0x24ab13,_0x2df15f){return client[_0x2640('0xa')](_0x1a7252,_0x57cf67)[_0x2640('0xb')](function(_0x5e863e){logger[_0x2640('0xc')]('UserOpenchannelQueue,\x20%s,\x20%s',_0x69c0db,_0x2640('0xd'));logger[_0x2640('0xe')](_0x2640('0xf'),_0x69c0db,_0x2640('0xd'),JSON[_0x2640('0x10')](_0x5e863e));if(_0x5e863e[_0x2640('0x11')]){if(_0x5e863e[_0x2640('0x11')][_0x2640('0x12')]===0x1f4){logger[_0x2640('0x11')](_0x2640('0x13'),_0x69c0db,_0x5e863e[_0x2640('0x11')]['message']);return _0x2df15f(_0x5e863e[_0x2640('0x11')][_0x2640('0x14')]);}logger[_0x2640('0x11')](_0x2640('0x13'),_0x69c0db,_0x5e863e[_0x2640('0x11')][_0x2640('0x14')]);return _0x24ab13(_0x5e863e[_0x2640('0x11')][_0x2640('0x14')]);}else{logger[_0x2640('0xc')](_0x2640('0x13'),_0x69c0db,'request\x20sent');_0x24ab13(_0x5e863e[_0x2640('0x15')][_0x2640('0x14')]);}})['catch'](function(_0x2c6ea8){logger[_0x2640('0x11')]('UserOpenchannelQueue,\x20%s,\x20%s',_0x69c0db,_0x2c6ea8);_0x2df15f(_0x2c6ea8);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5cae=['express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./userProfile.controller','get','isAuthenticated','/describe','/:id','show','/:id/sections','/:id/resources','getResources','post','create','clone','addSections','addResources','put','update','destroy','delete','removeSections','removeResources','exports','multer','util','path'];(function(_0x48c177,_0x528d3e){var _0x5e3b76=function(_0x4cbf7c){while(--_0x4cbf7c){_0x48c177['push'](_0x48c177['shift']());}};_0x5e3b76(++_0x528d3e);}(_0x5cae,0xb1));var _0xe5ca=function(_0x5a3785,_0x2de636){_0x5a3785=_0x5a3785-0x0;var _0x4d058a=_0x5cae[_0x5a3785];return _0x4d058a;};'use strict';var multer=require(_0xe5ca('0x0'));var util=require(_0xe5ca('0x1'));var path=require(_0xe5ca('0x2'));var timeout=require('connect-timeout');var express=require(_0xe5ca('0x3'));var router=express[_0xe5ca('0x4')]();var fs_extra=require(_0xe5ca('0x5'));var auth=require(_0xe5ca('0x6'));var interaction=require(_0xe5ca('0x7'));var config=require(_0xe5ca('0x8'));var controller=require(_0xe5ca('0x9'));router[_0xe5ca('0xa')]('/',auth[_0xe5ca('0xb')](),controller['index']);router['get'](_0xe5ca('0xc'),auth[_0xe5ca('0xb')](),controller['describe']);router['get'](_0xe5ca('0xd'),auth[_0xe5ca('0xb')](),controller[_0xe5ca('0xe')]);router[_0xe5ca('0xa')](_0xe5ca('0xf'),auth['isAuthenticated'](),controller['getSections']);router[_0xe5ca('0xa')](_0xe5ca('0x10'),auth['isAuthenticated'](),controller[_0xe5ca('0x11')]);router[_0xe5ca('0x12')]('/',auth['isAuthenticated'](),controller[_0xe5ca('0x13')]);router[_0xe5ca('0x12')]('/:id/clone',auth[_0xe5ca('0xb')](),controller[_0xe5ca('0x14')]);router[_0xe5ca('0x12')](_0xe5ca('0xf'),auth[_0xe5ca('0xb')](),controller[_0xe5ca('0x15')]);router[_0xe5ca('0x12')](_0xe5ca('0x10'),auth[_0xe5ca('0xb')](),controller[_0xe5ca('0x16')]);router[_0xe5ca('0x17')](_0xe5ca('0xd'),auth[_0xe5ca('0xb')](),controller[_0xe5ca('0x18')]);router['delete'](_0xe5ca('0xd'),auth[_0xe5ca('0xb')](),controller[_0xe5ca('0x19')]);router[_0xe5ca('0x1a')](_0xe5ca('0xf'),auth[_0xe5ca('0xb')](),controller[_0xe5ca('0x1b')]);router[_0xe5ca('0x1a')](_0xe5ca('0x10'),auth[_0xe5ca('0xb')](),controller[_0xe5ca('0x1c')]);module[_0xe5ca('0x1d')]=router;
\ No newline at end of file
+var _0x0d4e=['clone','addSections','addResources','update','destroy','delete','removeResources','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./userProfile.controller','get','isAuthenticated','index','describe','/:id','show','/:id/sections','getSections','/:id/resources','post','create','/:id/clone'];(function(_0x55eaaa,_0x408490){var _0x20972e=function(_0x2da9c5){while(--_0x2da9c5){_0x55eaaa['push'](_0x55eaaa['shift']());}};_0x20972e(++_0x408490);}(_0x0d4e,0x1ca));var _0xe0d4=function(_0x4565bf,_0x5ad9d6){_0x4565bf=_0x4565bf-0x0;var _0x5610ba=_0x0d4e[_0x4565bf];return _0x5610ba;};'use strict';var multer=require(_0xe0d4('0x0'));var util=require(_0xe0d4('0x1'));var path=require(_0xe0d4('0x2'));var timeout=require(_0xe0d4('0x3'));var express=require(_0xe0d4('0x4'));var router=express[_0xe0d4('0x5')]();var fs_extra=require(_0xe0d4('0x6'));var auth=require(_0xe0d4('0x7'));var interaction=require(_0xe0d4('0x8'));var config=require('../../config/environment');var controller=require(_0xe0d4('0x9'));router[_0xe0d4('0xa')]('/',auth[_0xe0d4('0xb')](),controller[_0xe0d4('0xc')]);router['get']('/describe',auth[_0xe0d4('0xb')](),controller[_0xe0d4('0xd')]);router[_0xe0d4('0xa')](_0xe0d4('0xe'),auth[_0xe0d4('0xb')](),controller[_0xe0d4('0xf')]);router[_0xe0d4('0xa')](_0xe0d4('0x10'),auth[_0xe0d4('0xb')](),controller[_0xe0d4('0x11')]);router[_0xe0d4('0xa')](_0xe0d4('0x12'),auth[_0xe0d4('0xb')](),controller['getResources']);router[_0xe0d4('0x13')]('/',auth[_0xe0d4('0xb')](),controller[_0xe0d4('0x14')]);router[_0xe0d4('0x13')](_0xe0d4('0x15'),auth[_0xe0d4('0xb')](),controller[_0xe0d4('0x16')]);router[_0xe0d4('0x13')](_0xe0d4('0x10'),auth[_0xe0d4('0xb')](),controller[_0xe0d4('0x17')]);router[_0xe0d4('0x13')](_0xe0d4('0x12'),auth[_0xe0d4('0xb')](),controller[_0xe0d4('0x18')]);router['put'](_0xe0d4('0xe'),auth[_0xe0d4('0xb')](),controller[_0xe0d4('0x19')]);router['delete']('/:id',auth[_0xe0d4('0xb')](),controller[_0xe0d4('0x1a')]);router[_0xe0d4('0x1b')](_0xe0d4('0x10'),auth[_0xe0d4('0xb')](),controller['removeSections']);router[_0xe0d4('0x1b')](_0xe0d4('0x12'),auth[_0xe0d4('0xb')](),controller[_0xe0d4('0x1c')]);module[_0xe0d4('0x1d')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc784=['BOOLEAN','sequelize','exports','join','getDataValue','crudPermissions','split','STRING'];(function(_0x455c6c,_0x1e78b7){var _0x488242=function(_0x3e8fb0){while(--_0x3e8fb0){_0x455c6c['push'](_0x455c6c['shift']());}};_0x488242(++_0x1e78b7);}(_0xc784,0x1c1));var _0x4c78=function(_0x306448,_0x37de6a){_0x306448=_0x306448-0x0;var _0x2c66a5=_0xc784[_0x306448];return _0x2c66a5;};'use strict';var Sequelize=require(_0x4c78('0x0'));module[_0x4c78('0x1')]={'name':{'type':Sequelize['STRING'],'allowNull':![],'unique':'name'},'crudPermissions':{'type':Sequelize['STRING'],'set':function(_0x4ca45c){this['setDataValue']('crudPermissions',_0x4ca45c?_0x4ca45c[_0x4c78('0x2')](''):[]);},'get':function(){return this[_0x4c78('0x3')](_0x4c78('0x4'))?this[_0x4c78('0x3')]('crudPermissions')[_0x4c78('0x5')](''):[];},'allowNull':![],'defaultValue':'r'},'description':{'type':Sequelize[_0x4c78('0x6')],'allowNull':!![]},'privacyEnabled':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'downloadAttachments':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'downloadCallySquareRecordings':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'downloadContactManagerLists':{'type':Sequelize[_0x4c78('0x7')],'defaultValue':!![]},'downloadJscriptySessions':{'type':Sequelize[_0x4c78('0x7')],'defaultValue':!![]},'downloadOmnichannelInteractions':{'type':Sequelize[_0x4c78('0x7')],'defaultValue':!![]},'downloadScreenRecordings':{'type':Sequelize[_0x4c78('0x7')],'defaultValue':!![]},'downloadVoiceRecordings':{'type':Sequelize[_0x4c78('0x7')],'defaultValue':!![]}};
\ No newline at end of file
+var _0x7ec1=['BOOLEAN','sequelize','exports','name','setDataValue','getDataValue','crudPermissions','split'];(function(_0x20534c,_0xe46275){var _0x1925cc=function(_0xd3ef7b){while(--_0xd3ef7b){_0x20534c['push'](_0x20534c['shift']());}};_0x1925cc(++_0xe46275);}(_0x7ec1,0x119));var _0x17ec=function(_0x7519aa,_0x507337){_0x7519aa=_0x7519aa-0x0;var _0xe0f828=_0x7ec1[_0x7519aa];return _0xe0f828;};'use strict';var Sequelize=require(_0x17ec('0x0'));module[_0x17ec('0x1')]={'name':{'type':Sequelize['STRING'],'allowNull':![],'unique':_0x17ec('0x2')},'crudPermissions':{'type':Sequelize['STRING'],'set':function(_0x2edea9){this[_0x17ec('0x3')]('crudPermissions',_0x2edea9?_0x2edea9['join'](''):[]);},'get':function(){return this[_0x17ec('0x4')](_0x17ec('0x5'))?this['getDataValue']('crudPermissions')[_0x17ec('0x6')](''):[];},'allowNull':![],'defaultValue':'r'},'description':{'type':Sequelize['STRING'],'allowNull':!![]},'privacyEnabled':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'downloadAttachments':{'type':Sequelize[_0x17ec('0x7')],'defaultValue':!![]},'downloadCallySquareRecordings':{'type':Sequelize[_0x17ec('0x7')],'defaultValue':!![]},'downloadContactManagerLists':{'type':Sequelize[_0x17ec('0x7')],'defaultValue':!![]},'downloadJscriptySessions':{'type':Sequelize[_0x17ec('0x7')],'defaultValue':!![]},'downloadOmnichannelInteractions':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'downloadScreenRecordings':{'type':Sequelize[_0x17ec('0x7')],'defaultValue':!![]},'downloadVoiceRecordings':{'type':Sequelize[_0x17ec('0x7')],'defaultValue':!![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xadb5=['key','keys','query','filters','model','fields','attributes','length','hasOwnProperty','limit','order','sort','where','merge','filter','options','includeAll','include','findAll','rows','show','params','intersection','find','create','clone','get','omit','updatedAt','body','createdAt','sequelize','UserProfileSection','each','autoAssociation','UserProfileResource','catch','userProfileId','Resources','describe','addSections','transaction','sectionId','push','removeSections','getSections','enabled','includes','subsections','findOne','Dashboard','forEach','resourceId','Plugin','bulkCreate','removeResources','ids','getResources','section','Missing\x20section\x20parameter','nolimit','No\x20User\x20Profile\x20found\x20for\x20id\x20','rimraf','fast-json-patch','request-promise','moment','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/license/util','redis','localhost','socket.io-emitter','./userProfile.socket','register','status','end','json','undefined','offset','count','Content-Range','apply','reject','update','then','destroy','sendStatus','name','send','index','map','UserProfile','rawAttributes','fieldName'];(function(_0x2c1dcd,_0x350452){var _0x158ce5=function(_0x5c1c57){while(--_0x5c1c57){_0x2c1dcd['push'](_0x2c1dcd['shift']());}};_0x158ce5(++_0x350452);}(_0xadb5,0xad));var _0x5adb=function(_0x1ff11a,_0x40a8fa){_0x1ff11a=_0x1ff11a-0x0;var _0x2f2027=_0xadb5[_0x1ff11a];return _0x2f2027;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x5adb('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x5adb('0x1'));var rp=require(_0x5adb('0x2'));var moment=require(_0x5adb('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x5adb('0x4'));var util=require(_0x5adb('0x5'));var path=require(_0x5adb('0x6'));var sox=require('sox');var csv=require(_0x5adb('0x7'));var ejs=require(_0x5adb('0x8'));var fs=require('fs');var fs_extra=require(_0x5adb('0x9'));var _=require(_0x5adb('0xa'));var squel=require(_0x5adb('0xb'));var crypto=require(_0x5adb('0xc'));var jsforce=require(_0x5adb('0xd'));var deskjs=require(_0x5adb('0xe'));var toCsv=require(_0x5adb('0x7'));var querystring=require(_0x5adb('0xf'));var Papa=require(_0x5adb('0x10'));var Redis=require(_0x5adb('0x11'));var authService=require(_0x5adb('0x12'));var qs=require(_0x5adb('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x5adb('0x14'))(_0x5adb('0x15'));var utils=require(_0x5adb('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x5adb('0x17'));var db=require('../../mysqldb')['db'];config[_0x5adb('0x18')]=_['defaults'](config[_0x5adb('0x18')],{'host':_0x5adb('0x19'),'port':0x18eb});var socket=require(_0x5adb('0x1a'))(new Redis(config['redis']));require(_0x5adb('0x1b'))[_0x5adb('0x1c')](socket);function respondWithStatusCode(_0xf82f72,_0x5263ec){_0x5263ec=_0x5263ec||0xcc;return function(_0x2312de){if(_0x2312de){return _0xf82f72['sendStatus'](_0x5263ec);}return _0xf82f72[_0x5adb('0x1d')](_0x5263ec)[_0x5adb('0x1e')]();};}function respondWithResult(_0x30614e,_0x304784){_0x304784=_0x304784||0xc8;return function(_0x1c0f97){if(_0x1c0f97){return _0x30614e[_0x5adb('0x1d')](_0x304784)[_0x5adb('0x1f')](_0x1c0f97);}};}function respondWithFilteredResult(_0x42f4c6,_0xb953a6){return function(_0x529b65){if(_0x529b65){var _0x3fff62=typeof _0xb953a6['offset']===_0x5adb('0x20')&&typeof _0xb953a6['limit']===_0x5adb('0x20');var _0x50e84f=_0x529b65['count'];var _0x1fbaa5=_0x3fff62?0x0:_0xb953a6[_0x5adb('0x21')];var _0x438671=_0x3fff62?_0x529b65[_0x5adb('0x22')]:_0xb953a6[_0x5adb('0x21')]+_0xb953a6['limit'];var _0x3255b3;if(_0x438671>=_0x50e84f){_0x438671=_0x50e84f;_0x3255b3=0xc8;}else{_0x3255b3=0xce;}_0x42f4c6['status'](_0x3255b3);return _0x42f4c6['set'](_0x5adb('0x23'),_0x1fbaa5+'-'+_0x438671+'/'+_0x50e84f)[_0x5adb('0x1f')](_0x529b65);}return null;};}function patchUpdates(_0x1a38d3){return function(_0x1a8014){try{jsonpatch[_0x5adb('0x24')](_0x1a8014,_0x1a38d3,!![]);}catch(_0x413911){return BPromise[_0x5adb('0x25')](_0x413911);}return _0x1a8014['save']();};}function saveUpdates(_0x4b1957,_0x373cc3){return function(_0x3220cd){if(_0x3220cd){return _0x3220cd[_0x5adb('0x26')](_0x4b1957)[_0x5adb('0x27')](function(_0x49f203){return _0x49f203;});}return null;};}function removeEntity(_0x2fee18,_0x2e1e63){return function(_0x5aed76){if(_0x5aed76){return _0x5aed76[_0x5adb('0x28')]()[_0x5adb('0x27')](function(){_0x2fee18[_0x5adb('0x1d')](0xcc)['end']();});}};}function handleEntityNotFound(_0x13ad1d,_0xbe21b1){return function(_0x3a4fca){if(!_0x3a4fca){_0x13ad1d[_0x5adb('0x29')](0x194);}return _0x3a4fca;};}function handleError(_0x36459b,_0x1c06c4){_0x1c06c4=_0x1c06c4||0x1f4;return function(_0x4a5d46){logger['error'](_0x4a5d46['stack']);if(_0x4a5d46[_0x5adb('0x2a')]){delete _0x4a5d46[_0x5adb('0x2a')];}_0x36459b[_0x5adb('0x1d')](_0x1c06c4)[_0x5adb('0x2b')](_0x4a5d46);};}exports[_0x5adb('0x2c')]=function(_0x4de310,_0x11ec2a){var _0x34b793={},_0x372da1={},_0x3b1fed={'count':0x0,'rows':[]};var _0x450169=_[_0x5adb('0x2d')](db[_0x5adb('0x2e')][_0x5adb('0x2f')],function(_0x138bf6){return{'name':_0x138bf6[_0x5adb('0x30')],'type':_0x138bf6['type'][_0x5adb('0x31')]};});_0x372da1['model']=_[_0x5adb('0x2d')](_0x450169,_0x5adb('0x2a'));_0x372da1['query']=_[_0x5adb('0x32')](_0x4de310[_0x5adb('0x33')]);_0x372da1[_0x5adb('0x34')]=_['intersection'](_0x372da1[_0x5adb('0x35')],_0x372da1[_0x5adb('0x33')]);_0x34b793['attributes']=_['intersection'](_0x372da1[_0x5adb('0x35')],qs['fields'](_0x4de310[_0x5adb('0x33')][_0x5adb('0x36')]));_0x34b793[_0x5adb('0x37')]=_0x34b793[_0x5adb('0x37')][_0x5adb('0x38')]?_0x34b793['attributes']:_0x372da1[_0x5adb('0x35')];if(!_0x4de310[_0x5adb('0x33')][_0x5adb('0x39')]('nolimit')){_0x34b793['limit']=qs[_0x5adb('0x3a')](_0x4de310[_0x5adb('0x33')]['limit']);_0x34b793[_0x5adb('0x21')]=qs['offset'](_0x4de310[_0x5adb('0x33')]['offset']);}_0x34b793[_0x5adb('0x3b')]=qs['sort'](_0x4de310[_0x5adb('0x33')][_0x5adb('0x3c')]);_0x34b793['where']=qs[_0x5adb('0x34')](_['pick'](_0x4de310[_0x5adb('0x33')],_0x372da1[_0x5adb('0x34')]),_0x450169);if(_0x4de310[_0x5adb('0x33')]['filter']){_0x34b793[_0x5adb('0x3d')]=_[_0x5adb('0x3e')](_0x34b793[_0x5adb('0x3d')],{'$or':_[_0x5adb('0x2d')](_0x450169,function(_0x22aa95){if(_0x22aa95['type']!=='VIRTUAL'){var _0x4f491a={};_0x4f491a[_0x22aa95['name']]={'$like':'%'+_0x4de310[_0x5adb('0x33')][_0x5adb('0x3f')]+'%'};return _0x4f491a;}})});}_0x34b793=_[_0x5adb('0x3e')]({},_0x34b793,_0x4de310[_0x5adb('0x40')]);var _0x130e18={'where':_0x34b793[_0x5adb('0x3d')]};return db[_0x5adb('0x2e')][_0x5adb('0x22')](_0x130e18)['then'](function(_0x53f2c6){_0x3b1fed[_0x5adb('0x22')]=_0x53f2c6;if(_0x4de310['query'][_0x5adb('0x41')]){_0x34b793[_0x5adb('0x42')]=[{'all':!![]}];}return db[_0x5adb('0x2e')][_0x5adb('0x43')](_0x34b793);})[_0x5adb('0x27')](function(_0x522ee5){_0x3b1fed[_0x5adb('0x44')]=_0x522ee5;return _0x3b1fed;})[_0x5adb('0x27')](respondWithFilteredResult(_0x11ec2a,_0x34b793))['catch'](handleError(_0x11ec2a,null));};exports[_0x5adb('0x45')]=function(_0x1a256c,_0x5833c8){var _0x120497={'raw':![],'where':{'id':_0x1a256c[_0x5adb('0x46')]['id']}},_0x407a4c={};_0x407a4c[_0x5adb('0x35')]=_[_0x5adb('0x32')](db[_0x5adb('0x2e')][_0x5adb('0x2f')]);_0x407a4c['query']=_['keys'](_0x1a256c[_0x5adb('0x33')]);_0x407a4c[_0x5adb('0x34')]=_[_0x5adb('0x47')](_0x407a4c[_0x5adb('0x35')],_0x407a4c['query']);_0x120497['attributes']=_[_0x5adb('0x47')](_0x407a4c[_0x5adb('0x35')],qs[_0x5adb('0x36')](_0x1a256c[_0x5adb('0x33')][_0x5adb('0x36')]));_0x120497['attributes']=_0x120497[_0x5adb('0x37')][_0x5adb('0x38')]?_0x120497['attributes']:_0x407a4c[_0x5adb('0x35')];if(_0x1a256c[_0x5adb('0x33')][_0x5adb('0x41')]){_0x120497[_0x5adb('0x42')]=[{'all':!![]}];}_0x120497=_[_0x5adb('0x3e')]({},_0x120497,_0x1a256c[_0x5adb('0x40')]);return db[_0x5adb('0x2e')][_0x5adb('0x48')](_0x120497)['then'](handleEntityNotFound(_0x5833c8,null))[_0x5adb('0x27')](respondWithResult(_0x5833c8,null))['catch'](handleError(_0x5833c8,null));};exports['create']=function(_0x5015ee,_0x3cd211){return db[_0x5adb('0x2e')][_0x5adb('0x49')](_0x5015ee['body'],{})[_0x5adb('0x27')](respondWithResult(_0x3cd211,0xc9))['catch'](handleError(_0x3cd211,null));};exports[_0x5adb('0x4a')]=function(_0x2c3f21,_0x3f9dc7){var _0x541537={'where':{'id':_0x2c3f21['params']['id']}},_0x27ddc4={};_0x27ddc4[_0x5adb('0x35')]=_[_0x5adb('0x32')](db['UserProfile'][_0x5adb('0x2f')]);_0x541537[_0x5adb('0x37')]=_[_0x5adb('0x47')](_0x27ddc4[_0x5adb('0x35')],qs[_0x5adb('0x36')](_0x2c3f21['query'][_0x5adb('0x36')]));_0x541537[_0x5adb('0x37')]=_0x541537[_0x5adb('0x37')][_0x5adb('0x38')]?_0x541537['attributes']:_0x27ddc4[_0x5adb('0x35')];if(_0x2c3f21[_0x5adb('0x33')][_0x5adb('0x41')]){_0x541537['include']=[{'all':!![]}];}_0x541537=_[_0x5adb('0x3e')]({},_0x541537,_0x2c3f21[_0x5adb('0x40')]);return db[_0x5adb('0x2e')][_0x5adb('0x48')](_0x541537)['then'](handleEntityNotFound(_0x3f9dc7,null))[_0x5adb('0x27')](function(_0x91775c){if(_0x91775c){var _0x28b291=_0x91775c[_0x5adb('0x4b')]({'plain':!![]});_0x28b291=qs[_0x5adb('0x4c')](_0x28b291,['id','createdAt',_0x5adb('0x4d'),'crudPermissions']);_0x2c3f21[_0x5adb('0x4e')]=_['omit'](_0x2c3f21[_0x5adb('0x4e')],['id',_0x5adb('0x4f'),_0x5adb('0x4d')]);return db[_0x5adb('0x50')]['transaction'](function(_0x18f95c){return db[_0x5adb('0x2e')][_0x5adb('0x49')](_['merge'](_0x28b291,_0x2c3f21['body']),{'include':_0x2c3f21['query'][_0x5adb('0x41')]?[{'all':!![]}]:undefined,'transaction':_0x18f95c})[_0x5adb('0x27')](function(_0xa5ecc0){var _0x12a146=_0xa5ecc0[_0x5adb('0x4b')]({'plain':!![]});return db[_0x5adb('0x51')][_0x5adb('0x43')]({'where':{'userProfileId':_0x2c3f21[_0x5adb('0x46')]['id']},'raw':!![]})[_0x5adb('0x27')](function(_0x380d76){if(_0x380d76){return BPromise[_0x5adb('0x52')](_0x380d76,function(_0x1df439){return new BPromise(function(_0x2c2357,_0x511746){if(_0x1df439['autoAssociation']===null||_0x1df439[_0x5adb('0x53')]===0x1)_0x2c2357(null);return db[_0x5adb('0x54')][_0x5adb('0x43')]({'where':{'sectionId':_0x1df439['id']},'raw':!![]})[_0x5adb('0x27')](function(_0x5d7a9f){var _0xfba0d5=_[_0x5adb('0x2d')](_0x5d7a9f,function(_0x5d2d2f){return qs[_0x5adb('0x4c')](_0x5d2d2f,['id',_0x5adb('0x4f'),_0x5adb('0x4d'),'sectionId']);});_0x2c2357(_0xfba0d5);})[_0x5adb('0x55')](function(_0x409357){_0x511746(_0x409357);});})[_0x5adb('0x27')](function(_0x30c92c){var _0x330290=qs[_0x5adb('0x4c')](_0x1df439,['id','createdAt',_0x5adb('0x4d')]);_0x330290[_0x5adb('0x56')]=_0x12a146['id'];if(_0x30c92c)_0x330290[_0x5adb('0x57')]=_0x30c92c;return _0x330290;})['then'](function(_0xcd71d2){return db[_0x5adb('0x51')][_0x5adb('0x49')](_0xcd71d2,{'include':[{'model':db['UserProfileResource'],'as':_0x5adb('0x57')}],'raw':!![],'transaction':_0x18f95c});});})['then'](function(){return _0x12a146;});}});});});}})[_0x5adb('0x27')](respondWithResult(_0x3f9dc7,0xc9))[_0x5adb('0x55')](handleError(_0x3f9dc7,null));};exports[_0x5adb('0x26')]=function(_0x57f0a4,_0x192b1f){if(_0x57f0a4[_0x5adb('0x4e')]['id']){delete _0x57f0a4['body']['id'];}return db[_0x5adb('0x2e')][_0x5adb('0x48')]({'where':{'id':_0x57f0a4[_0x5adb('0x46')]['id']}})[_0x5adb('0x27')](handleEntityNotFound(_0x192b1f,null))['then'](saveUpdates(_0x57f0a4[_0x5adb('0x4e')],null))[_0x5adb('0x27')](respondWithResult(_0x192b1f,null))[_0x5adb('0x55')](handleError(_0x192b1f,null));};exports[_0x5adb('0x28')]=function(_0x5b7556,_0x53a4bc){return db[_0x5adb('0x2e')]['find']({'where':{'id':_0x5b7556['params']['id']}})['then'](handleEntityNotFound(_0x53a4bc,null))[_0x5adb('0x27')](removeEntity(_0x53a4bc,null))[_0x5adb('0x55')](handleError(_0x53a4bc,null));};exports['describe']=function(_0x395350,_0x91e023){return db[_0x5adb('0x2e')][_0x5adb('0x58')]()[_0x5adb('0x27')](respondWithResult(_0x91e023,null))[_0x5adb('0x55')](handleError(_0x91e023,null));};exports[_0x5adb('0x59')]=function(_0x1ffcd3,_0x5240c1){var _0x4b9e80=_0x1ffcd3['body'];return db[_0x5adb('0x2e')][_0x5adb('0x48')]({'where':{'id':_0x1ffcd3[_0x5adb('0x46')]['id']}})[_0x5adb('0x27')](handleEntityNotFound(_0x5240c1,null))[_0x5adb('0x27')](function(_0x2f6ef7){if(_0x2f6ef7){return db[_0x5adb('0x50')][_0x5adb('0x5a')](function(_0x58455b){return db['UserProfileSection'][_0x5adb('0x28')]({'where':{'userProfileId':_0x1ffcd3[_0x5adb('0x46')]['id'],'sectionId':_[_0x5adb('0x2d')](_0x4b9e80,function(_0x3d78e3){return _0x3d78e3[_0x5adb('0x5b')];})},'transaction':_0x58455b})[_0x5adb('0x27')](function(){var _0x40140f=_[_0x5adb('0x2d')](_0x4b9e80,function(_0x338aee){_0x338aee[_0x5adb('0x56')]=_0x1ffcd3['params']['id'];return _0x338aee;});var _0xedde86=[];return BPromise[_0x5adb('0x52')](_0x40140f,function(_0x25ac26){return db['UserProfileSection'][_0x5adb('0x49')](_0x25ac26,{'include':[{'model':db[_0x5adb('0x54')],'as':'Resources'}],'raw':!![],'transaction':_0x58455b})[_0x5adb('0x27')](function(_0x494526){_0xedde86[_0x5adb('0x5c')](_0x494526[_0x5adb('0x4b')]({'plain':!![]}));});})['then'](function(){return _0xedde86;});});});}})[_0x5adb('0x27')](function(_0x1ceb72){return _0x1ceb72;})[_0x5adb('0x27')](respondWithResult(_0x5240c1,null))[_0x5adb('0x55')](handleError(_0x5240c1,null));};exports[_0x5adb('0x5d')]=function(_0x10f54a,_0x3cee6c){var _0xad8e0c;return db['UserProfile'][_0x5adb('0x48')]({'where':{'id':_0x10f54a[_0x5adb('0x46')]['id']},'attributes':['id',_0x5adb('0x2a')]})['then'](handleEntityNotFound(_0x3cee6c,null))['then'](function(_0x9eb9b6){if(_0x9eb9b6){_0xad8e0c=_0x9eb9b6;return db['UserProfileSection'][_0x5adb('0x28')]({'where':{'userProfileId':_0x10f54a[_0x5adb('0x46')]['id'],'sectionId':_0x10f54a[_0x5adb('0x33')]['ids']}});}})[_0x5adb('0x27')](function(){return _0xad8e0c;})[_0x5adb('0x27')](respondWithStatusCode(_0x3cee6c,null))[_0x5adb('0x55')](handleError(_0x3cee6c,null));};exports[_0x5adb('0x5e')]=function(_0x3ed654,_0x56b914){var _0x2a3084=[];var _0x4755fb=[];return db[_0x5adb('0x51')][_0x5adb('0x43')]({'where':{'userProfileId':_0x3ed654['params']['id']},'raw':!![]})[_0x5adb('0x27')](function(_0x17194f){_0x2a3084=_[_0x5adb('0x3f')](_0x17194f,function(_0x1e9cd1){return _0x1e9cd1[_0x5adb('0x5f')]===0x1||_[_0x5adb('0x60')]([0x3eb,0x709],_0x1e9cd1[_0x5adb('0x5b')]);});if(!_['isEmpty'](_0x2a3084)){return _[_0x5adb('0x2d')](_0x2a3084,function(_0x453031){return _0x453031['sectionId'];});}else{return;}})[_0x5adb('0x27')](function(_0x2f8468){if(_0x2f8468)_0x4755fb=_0x2f8468;if(_['includes'](_0x4755fb,0x64)){var _0x462fa0=_['find'](_0x2a3084,{'sectionId':0x64});return hasDefaultDashboard(_0x462fa0)[_0x5adb('0x27')](function(_0x268df2){return _['map'](_0x2a3084,function(_0x167432){if(_0x167432['sectionId']===0x64){_0x167432[_0x5adb('0x61')]=_0x268df2;}return _0x167432;});});}else{return;}})[_0x5adb('0x27')](function(_0x36ba02){if(_0x36ba02)_0x2a3084=_0x36ba02;if(_[_0x5adb('0x60')](_0x4755fb,0x3eb)){var _0x159b20=_['find'](_0x2a3084,{'sectionId':0x3eb});return getCustomDashboards(_0x159b20)[_0x5adb('0x27')](function(_0x337577){return _[_0x5adb('0x2d')](_0x2a3084,function(_0x1c8988){if(_0x159b20['enabled']){if(_0x1c8988['sectionId']===0x3eb){_0x1c8988[_0x5adb('0x61')]=_0x337577;}}else{if(_0x1c8988[_0x5adb('0x5b')]===0x64){_0x1c8988[_0x5adb('0x61')]=_0x337577;}}return _0x1c8988;});});}else{return;}})[_0x5adb('0x27')](function(_0x277668){if(_0x277668)_0x2a3084=_0x277668;if(_[_0x5adb('0x60')](_0x4755fb,0x709)){var _0x31f5b2=_['find'](_0x2a3084,{'sectionId':0x709});return getPlugins(_0x31f5b2)[_0x5adb('0x27')](function(_0x14bada){if(_0x31f5b2[_0x5adb('0x5f')]){return _[_0x5adb('0x2d')](_0x2a3084,function(_0x55a9e8){if(_0x55a9e8[_0x5adb('0x5b')]===0x709){_0x55a9e8[_0x5adb('0x61')]=_0x14bada;}return _0x55a9e8;});}else{var _0x243016={'sectionId':0x76c,'enabled':0x1,'subsections':_0x14bada};var _0x73e76a=_[_0x5adb('0x2d')](_0x2a3084);_0x73e76a[_0x5adb('0x5c')](_0x243016);return _0x73e76a;}});}else{return;}})[_0x5adb('0x27')](function(_0x2d1b65){if(_0x2d1b65)_0x2a3084=_0x2d1b65;return _[_0x5adb('0x3f')](_0x2a3084,['enabled',0x1]);})[_0x5adb('0x27')](respondWithResult(_0x56b914,null))[_0x5adb('0x55')](handleError(_0x56b914,null));};function hasDefaultDashboard(_0x5c55ee){var _0x44d50f=[0x65];return new BPromise(function(_0x290a7b,_0x2b8915){try{if(_0x5c55ee[_0x5adb('0x53')]){_0x290a7b(_0x44d50f);}else{return db[_0x5adb('0x54')][_0x5adb('0x62')]({'where':{'sectionId':_0x5c55ee['id']},'raw':!![]})[_0x5adb('0x27')](function(_0x350bb1){_0x350bb1?_0x290a7b(_0x44d50f):_0x290a7b();});}}catch(_0x57f557){_0x2b8915(_0x57f557);}});}function getCustomDashboards(_0x11d9ce){var _0x2386c0=[];return new BPromise(function(_0x4ed4b1,_0x30b98c){try{if(_0x11d9ce[_0x5adb('0x53')]){return db[_0x5adb('0x63')]['findAll']({'raw':!![]})['then'](function(_0x2d7a9f){_0x2d7a9f[_0x5adb('0x64')](function(_0x3f5596){_0x2386c0['push'](_0x3f5596['id']+0x1869f);});_0x4ed4b1(_0x2386c0);});}else{return db[_0x5adb('0x54')][_0x5adb('0x43')]({'where':{'sectionId':_0x11d9ce['id']},'raw':!![]})[_0x5adb('0x27')](function(_0x1284d9){_0x1284d9[_0x5adb('0x64')](function(_0x743986){_0x2386c0[_0x5adb('0x5c')](_0x743986[_0x5adb('0x65')]+0x1869f);});_0x4ed4b1(_0x2386c0);});}}catch(_0x28bd33){_0x30b98c(_0x28bd33);}});}function getPlugins(_0x3e8a17){var _0x423b80=[];return new BPromise(function(_0x1509e0,_0x487b33){try{if(_0x3e8a17['autoAssociation']){return db[_0x5adb('0x66')][_0x5adb('0x43')]({'raw':!![]})['then'](function(_0x3f6975){_0x3f6975[_0x5adb('0x64')](function(_0x38acde){_0x423b80[_0x5adb('0x5c')](_0x38acde['id']+0x15b38);});_0x1509e0(_0x423b80);});}else{return db[_0x5adb('0x54')][_0x5adb('0x43')]({'where':{'sectionId':_0x3e8a17['id']},'raw':!![]})[_0x5adb('0x27')](function(_0x327ac6){_0x327ac6[_0x5adb('0x64')](function(_0x5374cc){_0x423b80[_0x5adb('0x5c')](_0x5374cc[_0x5adb('0x65')]+0x15b38);});_0x1509e0(_0x423b80);});}}catch(_0x273785){_0x487b33(_0x273785);}});}exports['addResources']=function(_0x312a90,_0x284f79){return db[_0x5adb('0x2e')][_0x5adb('0x48')]({'where':{'id':_0x312a90[_0x5adb('0x46')]['id']}})[_0x5adb('0x27')](handleEntityNotFound(_0x284f79,null))['then'](function(_0x13a4aa){if(_0x13a4aa){return db[_0x5adb('0x50')][_0x5adb('0x5a')](function(_0x1e5532){return db[_0x5adb('0x51')][_0x5adb('0x43')]({'where':{'userProfileId':_0x312a90[_0x5adb('0x46')]['id']},'attributes':['id'],'raw':!![]})[_0x5adb('0x27')](function(_0x24664c){if(_0x24664c){return db[_0x5adb('0x51')]['destroy']({'where':{'userProfileId':_0x312a90[_0x5adb('0x46')]['id'],'id':_['map'](_0x24664c,function(_0x3343fc){return _0x3343fc['id'];})},'transaction':_0x1e5532});}})[_0x5adb('0x27')](function(_0xb32438){var _0x193a29=_[_0x5adb('0x2d')](_0x312a90['body'],function(_0x5b0fe2){_0x5b0fe2[_0x5adb('0x56')]=_0x312a90[_0x5adb('0x46')]['id'];return _0x5b0fe2;});return db[_0x5adb('0x51')][_0x5adb('0x67')](_0x193a29,{'raw':!![],'transaction':_0x1e5532});})[_0x5adb('0x27')](function(_0x162b9a){var _0x55dfac=_['filter'](_[_0x5adb('0x2d')](_0x162b9a,function(_0xd5b95d){return _0xd5b95d[_0x5adb('0x4b')]({'plain':!![]});}),{'includeAll':![]});if(_0x55dfac){return db['UserProfileSection']['findAll']({'where':{'userProfileId':_0x312a90[_0x5adb('0x46')]['id'],'sectionId':_['map'](_0x55dfac,function(_0x448d4f){return _0x448d4f[_0x5adb('0x5b')];})},'attributes':['id','sectionId'],'raw':!![]})['then'](function(_0x43b91c){var _0x4bb198=_['map'](_0x312a90[_0x5adb('0x4e')],function(_0x1537a9){_0x1537a9[_0x5adb('0x56')]=_0x312a90[_0x5adb('0x46')]['id'];return _0x1537a9;});return db[_0x5adb('0x54')][_0x5adb('0x67')](_0x4bb198,{'raw':!![],'transaction':_0x1e5532});});}})[_0x5adb('0x55')](handleError(_0x284f79,null));});}})[_0x5adb('0x27')](function(_0x9e318b){var _0x31b696=_[_0x5adb('0x2d')](_0x9e318b,function(_0x1196f5){return _0x1196f5[_0x5adb('0x4b')]({'plain':!![]});});})['then'](respondWithResult(_0x284f79,null))[_0x5adb('0x55')](handleError(_0x284f79,null));};exports['removeResources']=function(_0x409910,_0x4c7163,_0x280f30){return db[_0x5adb('0x2e')][_0x5adb('0x48')]({'where':{'id':_0x409910[_0x5adb('0x46')]['id']}})[_0x5adb('0x27')](handleEntityNotFound(_0x4c7163,null))[_0x5adb('0x27')](function(_0x2ebfad){if(_0x2ebfad){return _0x2ebfad[_0x5adb('0x68')](_0x409910[_0x5adb('0x33')][_0x5adb('0x69')]);}})['then'](respondWithStatusCode(_0x4c7163,null))[_0x5adb('0x55')](handleError(_0x4c7163,null));};exports[_0x5adb('0x6a')]=function(_0x21d4ff,_0x8cf8c7){var _0x1da6bc={};if(!_0x21d4ff[_0x5adb('0x33')][_0x5adb('0x6b')])throw new Error(_0x5adb('0x6c'));if(!_0x21d4ff['query'][_0x5adb('0x39')](_0x5adb('0x6d'))){_0x1da6bc[_0x5adb('0x3a')]=qs['limit'](_0x21d4ff[_0x5adb('0x33')]['limit']);_0x1da6bc[_0x5adb('0x21')]=qs['offset'](_0x21d4ff['query'][_0x5adb('0x21')]);}return db[_0x5adb('0x2e')][_0x5adb('0x48')]({'where':{'id':_0x21d4ff[_0x5adb('0x46')]['id']}})[_0x5adb('0x27')](function(_0xcd014e){if(!_0xcd014e)throw new Error(_0x5adb('0x6e')+_0x21d4ff[_0x5adb('0x46')]['id']);return db[_0x5adb('0x2e')][_0x5adb('0x6a')](_0x21d4ff);})[_0x5adb('0x27')](respondWithFilteredResult(_0x8cf8c7,_0x1da6bc))[_0x5adb('0x55')](handleError(_0x8cf8c7,null));};
\ No newline at end of file
+var _0xf643=['fieldName','type','model','keys','filters','query','attributes','intersection','fields','length','hasOwnProperty','order','sort','where','merge','map','filter','UserProfile','includeAll','findAll','rows','catch','params','include','options','find','create','body','clone','get','omit','createdAt','crudPermissions','transaction','each','autoAssociation','UserProfileResource','updatedAt','userProfileId','Resources','UserProfileSection','update','describe','addSections','push','removeSections','getSections','includes','sectionId','isEmpty','enabled','subsections','findOne','forEach','resourceId','Plugin','sequelize','bulkCreate','ids','getResources','section','Missing\x20section\x20parameter','nolimit','No\x20User\x20Profile\x20found\x20for\x20id\x20','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./userProfile.socket','sendStatus','end','status','json','offset','limit','count','set','reject','save','then','destroy','error','stack','name','rawAttributes'];(function(_0x53a9e9,_0x276ce3){var _0x4f2c2f=function(_0x3dd5ca){while(--_0x3dd5ca){_0x53a9e9['push'](_0x53a9e9['shift']());}};_0x4f2c2f(++_0x276ce3);}(_0xf643,0x122));var _0x3f64=function(_0x19ad58,_0x3195e0){_0x19ad58=_0x19ad58-0x0;var _0x3a7382=_0xf643[_0x19ad58];return _0x3a7382;};'use strict';var emlformat=require(_0x3f64('0x0'));var rimraf=require(_0x3f64('0x1'));var zipdir=require(_0x3f64('0x2'));var jsonpatch=require(_0x3f64('0x3'));var rp=require('request-promise');var moment=require(_0x3f64('0x4'));var BPromise=require(_0x3f64('0x5'));var Mustache=require('mustache');var util=require(_0x3f64('0x6'));var path=require(_0x3f64('0x7'));var sox=require(_0x3f64('0x8'));var csv=require(_0x3f64('0x9'));var ejs=require(_0x3f64('0xa'));var fs=require('fs');var fs_extra=require(_0x3f64('0xb'));var _=require(_0x3f64('0xc'));var squel=require(_0x3f64('0xd'));var crypto=require(_0x3f64('0xe'));var jsforce=require(_0x3f64('0xf'));var deskjs=require(_0x3f64('0x10'));var toCsv=require(_0x3f64('0x9'));var querystring=require(_0x3f64('0x11'));var Papa=require(_0x3f64('0x12'));var Redis=require(_0x3f64('0x13'));var authService=require('../../components/auth/service');var qs=require(_0x3f64('0x14'));var as=require(_0x3f64('0x15'));var hardwareService=require(_0x3f64('0x16'));var logger=require('../../config/logger')(_0x3f64('0x17'));var utils=require(_0x3f64('0x18'));var config=require(_0x3f64('0x19'));var licenseUtil=require(_0x3f64('0x1a'));var db=require(_0x3f64('0x1b'))['db'];config[_0x3f64('0x1c')]=_[_0x3f64('0x1d')](config[_0x3f64('0x1c')],{'host':_0x3f64('0x1e'),'port':0x18eb});var socket=require(_0x3f64('0x1f'))(new Redis(config[_0x3f64('0x1c')]));require(_0x3f64('0x20'))['register'](socket);function respondWithStatusCode(_0x84d3a9,_0x1af45b){_0x1af45b=_0x1af45b||0xcc;return function(_0x3fb0bd){if(_0x3fb0bd){return _0x84d3a9[_0x3f64('0x21')](_0x1af45b);}return _0x84d3a9['status'](_0x1af45b)[_0x3f64('0x22')]();};}function respondWithResult(_0x1c17bb,_0x2650a1){_0x2650a1=_0x2650a1||0xc8;return function(_0x3e9c46){if(_0x3e9c46){return _0x1c17bb[_0x3f64('0x23')](_0x2650a1)[_0x3f64('0x24')](_0x3e9c46);}};}function respondWithFilteredResult(_0x3d5196,_0x5ac514){return function(_0xbcf1aa){if(_0xbcf1aa){var _0x7bca32=typeof _0x5ac514[_0x3f64('0x25')]==='undefined'&&typeof _0x5ac514[_0x3f64('0x26')]==='undefined';var _0x5177e2=_0xbcf1aa[_0x3f64('0x27')];var _0x38cea3=_0x7bca32?0x0:_0x5ac514[_0x3f64('0x25')];var _0x5b5d10=_0x7bca32?_0xbcf1aa[_0x3f64('0x27')]:_0x5ac514[_0x3f64('0x25')]+_0x5ac514[_0x3f64('0x26')];var _0x5f5507;if(_0x5b5d10>=_0x5177e2){_0x5b5d10=_0x5177e2;_0x5f5507=0xc8;}else{_0x5f5507=0xce;}_0x3d5196[_0x3f64('0x23')](_0x5f5507);return _0x3d5196[_0x3f64('0x28')]('Content-Range',_0x38cea3+'-'+_0x5b5d10+'/'+_0x5177e2)[_0x3f64('0x24')](_0xbcf1aa);}return null;};}function patchUpdates(_0x3faf46){return function(_0x53cd96){try{jsonpatch['apply'](_0x53cd96,_0x3faf46,!![]);}catch(_0x5b1628){return BPromise[_0x3f64('0x29')](_0x5b1628);}return _0x53cd96[_0x3f64('0x2a')]();};}function saveUpdates(_0x336b98,_0x1b49fe){return function(_0x112906){if(_0x112906){return _0x112906['update'](_0x336b98)[_0x3f64('0x2b')](function(_0x4702a3){return _0x4702a3;});}return null;};}function removeEntity(_0x151f1e,_0x142fe5){return function(_0x383780){if(_0x383780){return _0x383780[_0x3f64('0x2c')]()[_0x3f64('0x2b')](function(){_0x151f1e[_0x3f64('0x23')](0xcc)['end']();});}};}function handleEntityNotFound(_0x8d8f36,_0x4cb5e7){return function(_0x473b46){if(!_0x473b46){_0x8d8f36[_0x3f64('0x21')](0x194);}return _0x473b46;};}function handleError(_0x43f349,_0x2fac90){_0x2fac90=_0x2fac90||0x1f4;return function(_0x191a2d){logger[_0x3f64('0x2d')](_0x191a2d[_0x3f64('0x2e')]);if(_0x191a2d[_0x3f64('0x2f')]){delete _0x191a2d[_0x3f64('0x2f')];}_0x43f349[_0x3f64('0x23')](_0x2fac90)['send'](_0x191a2d);};}exports['index']=function(_0x25ec96,_0x5a03a8){var _0x34e8cc={},_0x4253d2={},_0x211da2={'count':0x0,'rows':[]};var _0x3df209=_['map'](db['UserProfile'][_0x3f64('0x30')],function(_0x21ced6){return{'name':_0x21ced6[_0x3f64('0x31')],'type':_0x21ced6[_0x3f64('0x32')]['key']};});_0x4253d2[_0x3f64('0x33')]=_['map'](_0x3df209,'name');_0x4253d2['query']=_[_0x3f64('0x34')](_0x25ec96['query']);_0x4253d2[_0x3f64('0x35')]=_['intersection'](_0x4253d2[_0x3f64('0x33')],_0x4253d2[_0x3f64('0x36')]);_0x34e8cc[_0x3f64('0x37')]=_[_0x3f64('0x38')](_0x4253d2['model'],qs[_0x3f64('0x39')](_0x25ec96[_0x3f64('0x36')][_0x3f64('0x39')]));_0x34e8cc['attributes']=_0x34e8cc['attributes'][_0x3f64('0x3a')]?_0x34e8cc['attributes']:_0x4253d2[_0x3f64('0x33')];if(!_0x25ec96[_0x3f64('0x36')][_0x3f64('0x3b')]('nolimit')){_0x34e8cc[_0x3f64('0x26')]=qs[_0x3f64('0x26')](_0x25ec96[_0x3f64('0x36')][_0x3f64('0x26')]);_0x34e8cc[_0x3f64('0x25')]=qs[_0x3f64('0x25')](_0x25ec96[_0x3f64('0x36')][_0x3f64('0x25')]);}_0x34e8cc[_0x3f64('0x3c')]=qs[_0x3f64('0x3d')](_0x25ec96[_0x3f64('0x36')][_0x3f64('0x3d')]);_0x34e8cc[_0x3f64('0x3e')]=qs[_0x3f64('0x35')](_['pick'](_0x25ec96[_0x3f64('0x36')],_0x4253d2[_0x3f64('0x35')]),_0x3df209);if(_0x25ec96[_0x3f64('0x36')]['filter']){_0x34e8cc[_0x3f64('0x3e')]=_[_0x3f64('0x3f')](_0x34e8cc[_0x3f64('0x3e')],{'$or':_[_0x3f64('0x40')](_0x3df209,function(_0x2f15a7){if(_0x2f15a7[_0x3f64('0x32')]!=='VIRTUAL'){var _0x46ac3b={};_0x46ac3b[_0x2f15a7['name']]={'$like':'%'+_0x25ec96[_0x3f64('0x36')][_0x3f64('0x41')]+'%'};return _0x46ac3b;}})});}_0x34e8cc=_[_0x3f64('0x3f')]({},_0x34e8cc,_0x25ec96['options']);var _0x4462fa={'where':_0x34e8cc[_0x3f64('0x3e')]};return db[_0x3f64('0x42')][_0x3f64('0x27')](_0x4462fa)['then'](function(_0x70ba90){_0x211da2[_0x3f64('0x27')]=_0x70ba90;if(_0x25ec96[_0x3f64('0x36')][_0x3f64('0x43')]){_0x34e8cc['include']=[{'all':!![]}];}return db['UserProfile'][_0x3f64('0x44')](_0x34e8cc);})[_0x3f64('0x2b')](function(_0x4f3ddd){_0x211da2[_0x3f64('0x45')]=_0x4f3ddd;return _0x211da2;})[_0x3f64('0x2b')](respondWithFilteredResult(_0x5a03a8,_0x34e8cc))[_0x3f64('0x46')](handleError(_0x5a03a8,null));};exports['show']=function(_0x115a30,_0x1949ef){var _0x48989a={'raw':![],'where':{'id':_0x115a30[_0x3f64('0x47')]['id']}},_0x1fb71b={};_0x1fb71b[_0x3f64('0x33')]=_[_0x3f64('0x34')](db[_0x3f64('0x42')][_0x3f64('0x30')]);_0x1fb71b[_0x3f64('0x36')]=_[_0x3f64('0x34')](_0x115a30[_0x3f64('0x36')]);_0x1fb71b[_0x3f64('0x35')]=_[_0x3f64('0x38')](_0x1fb71b[_0x3f64('0x33')],_0x1fb71b[_0x3f64('0x36')]);_0x48989a['attributes']=_['intersection'](_0x1fb71b[_0x3f64('0x33')],qs[_0x3f64('0x39')](_0x115a30[_0x3f64('0x36')][_0x3f64('0x39')]));_0x48989a['attributes']=_0x48989a[_0x3f64('0x37')][_0x3f64('0x3a')]?_0x48989a[_0x3f64('0x37')]:_0x1fb71b[_0x3f64('0x33')];if(_0x115a30[_0x3f64('0x36')][_0x3f64('0x43')]){_0x48989a[_0x3f64('0x48')]=[{'all':!![]}];}_0x48989a=_[_0x3f64('0x3f')]({},_0x48989a,_0x115a30[_0x3f64('0x49')]);return db['UserProfile'][_0x3f64('0x4a')](_0x48989a)[_0x3f64('0x2b')](handleEntityNotFound(_0x1949ef,null))[_0x3f64('0x2b')](respondWithResult(_0x1949ef,null))[_0x3f64('0x46')](handleError(_0x1949ef,null));};exports['create']=function(_0x397256,_0x15c946){return db['UserProfile'][_0x3f64('0x4b')](_0x397256[_0x3f64('0x4c')],{})[_0x3f64('0x2b')](respondWithResult(_0x15c946,0xc9))[_0x3f64('0x46')](handleError(_0x15c946,null));};exports[_0x3f64('0x4d')]=function(_0x500ae4,_0x491a04){var _0x7dfd7e={'where':{'id':_0x500ae4[_0x3f64('0x47')]['id']}},_0x481bfa={};_0x481bfa[_0x3f64('0x33')]=_[_0x3f64('0x34')](db['UserProfile'][_0x3f64('0x30')]);_0x7dfd7e[_0x3f64('0x37')]=_[_0x3f64('0x38')](_0x481bfa[_0x3f64('0x33')],qs['fields'](_0x500ae4[_0x3f64('0x36')]['fields']));_0x7dfd7e['attributes']=_0x7dfd7e[_0x3f64('0x37')][_0x3f64('0x3a')]?_0x7dfd7e[_0x3f64('0x37')]:_0x481bfa[_0x3f64('0x33')];if(_0x500ae4['query'][_0x3f64('0x43')]){_0x7dfd7e['include']=[{'all':!![]}];}_0x7dfd7e=_[_0x3f64('0x3f')]({},_0x7dfd7e,_0x500ae4['options']);return db['UserProfile'][_0x3f64('0x4a')](_0x7dfd7e)[_0x3f64('0x2b')](handleEntityNotFound(_0x491a04,null))[_0x3f64('0x2b')](function(_0x2cedca){if(_0x2cedca){var _0x1dfce6=_0x2cedca[_0x3f64('0x4e')]({'plain':!![]});_0x1dfce6=qs[_0x3f64('0x4f')](_0x1dfce6,['id',_0x3f64('0x50'),'updatedAt',_0x3f64('0x51')]);_0x500ae4[_0x3f64('0x4c')]=_[_0x3f64('0x4f')](_0x500ae4[_0x3f64('0x4c')],['id',_0x3f64('0x50'),'updatedAt']);return db['sequelize'][_0x3f64('0x52')](function(_0x1f5004){return db[_0x3f64('0x42')][_0x3f64('0x4b')](_['merge'](_0x1dfce6,_0x500ae4[_0x3f64('0x4c')]),{'include':_0x500ae4[_0x3f64('0x36')][_0x3f64('0x43')]?[{'all':!![]}]:undefined,'transaction':_0x1f5004})[_0x3f64('0x2b')](function(_0x1c40aa){var _0x579a56=_0x1c40aa[_0x3f64('0x4e')]({'plain':!![]});return db['UserProfileSection'][_0x3f64('0x44')]({'where':{'userProfileId':_0x500ae4[_0x3f64('0x47')]['id']},'raw':!![]})[_0x3f64('0x2b')](function(_0x5addb2){if(_0x5addb2){return BPromise[_0x3f64('0x53')](_0x5addb2,function(_0x16bf10){return new BPromise(function(_0x2e8e3c,_0x50d4aa){if(_0x16bf10[_0x3f64('0x54')]===null||_0x16bf10[_0x3f64('0x54')]===0x1)_0x2e8e3c(null);return db[_0x3f64('0x55')]['findAll']({'where':{'sectionId':_0x16bf10['id']},'raw':!![]})[_0x3f64('0x2b')](function(_0x421cb7){var _0x47bd9e=_[_0x3f64('0x40')](_0x421cb7,function(_0x2ea0fb){return qs[_0x3f64('0x4f')](_0x2ea0fb,['id','createdAt',_0x3f64('0x56'),'sectionId']);});_0x2e8e3c(_0x47bd9e);})['catch'](function(_0x34323d){_0x50d4aa(_0x34323d);});})[_0x3f64('0x2b')](function(_0x14b5cc){var _0x10eb25=qs[_0x3f64('0x4f')](_0x16bf10,['id',_0x3f64('0x50'),_0x3f64('0x56')]);_0x10eb25[_0x3f64('0x57')]=_0x579a56['id'];if(_0x14b5cc)_0x10eb25[_0x3f64('0x58')]=_0x14b5cc;return _0x10eb25;})['then'](function(_0x585be2){return db[_0x3f64('0x59')][_0x3f64('0x4b')](_0x585be2,{'include':[{'model':db['UserProfileResource'],'as':_0x3f64('0x58')}],'raw':!![],'transaction':_0x1f5004});});})['then'](function(){return _0x579a56;});}});});});}})[_0x3f64('0x2b')](respondWithResult(_0x491a04,0xc9))[_0x3f64('0x46')](handleError(_0x491a04,null));};exports[_0x3f64('0x5a')]=function(_0x356da9,_0x246c80){if(_0x356da9[_0x3f64('0x4c')]['id']){delete _0x356da9[_0x3f64('0x4c')]['id'];}return db['UserProfile'][_0x3f64('0x4a')]({'where':{'id':_0x356da9[_0x3f64('0x47')]['id']}})[_0x3f64('0x2b')](handleEntityNotFound(_0x246c80,null))[_0x3f64('0x2b')](saveUpdates(_0x356da9[_0x3f64('0x4c')],null))[_0x3f64('0x2b')](respondWithResult(_0x246c80,null))['catch'](handleError(_0x246c80,null));};exports['destroy']=function(_0x904840,_0x807c60){return db[_0x3f64('0x42')]['find']({'where':{'id':_0x904840[_0x3f64('0x47')]['id']}})[_0x3f64('0x2b')](handleEntityNotFound(_0x807c60,null))[_0x3f64('0x2b')](removeEntity(_0x807c60,null))[_0x3f64('0x46')](handleError(_0x807c60,null));};exports[_0x3f64('0x5b')]=function(_0x5af1ee,_0x128bc5){return db[_0x3f64('0x42')]['describe']()[_0x3f64('0x2b')](respondWithResult(_0x128bc5,null))[_0x3f64('0x46')](handleError(_0x128bc5,null));};exports[_0x3f64('0x5c')]=function(_0x52aa7a,_0x11efc3){var _0x5608a5=_0x52aa7a[_0x3f64('0x4c')];return db[_0x3f64('0x42')][_0x3f64('0x4a')]({'where':{'id':_0x52aa7a[_0x3f64('0x47')]['id']}})[_0x3f64('0x2b')](handleEntityNotFound(_0x11efc3,null))[_0x3f64('0x2b')](function(_0x2266d9){if(_0x2266d9){return db['sequelize']['transaction'](function(_0x50d3cf){return db[_0x3f64('0x59')][_0x3f64('0x2c')]({'where':{'userProfileId':_0x52aa7a[_0x3f64('0x47')]['id'],'sectionId':_[_0x3f64('0x40')](_0x5608a5,function(_0x39c8c2){return _0x39c8c2['sectionId'];})},'transaction':_0x50d3cf})[_0x3f64('0x2b')](function(){var _0x2314fb=_[_0x3f64('0x40')](_0x5608a5,function(_0x142442){_0x142442['userProfileId']=_0x52aa7a[_0x3f64('0x47')]['id'];return _0x142442;});var _0x2447cd=[];return BPromise[_0x3f64('0x53')](_0x2314fb,function(_0x539e90){return db[_0x3f64('0x59')][_0x3f64('0x4b')](_0x539e90,{'include':[{'model':db[_0x3f64('0x55')],'as':_0x3f64('0x58')}],'raw':!![],'transaction':_0x50d3cf})[_0x3f64('0x2b')](function(_0x1d6611){_0x2447cd[_0x3f64('0x5d')](_0x1d6611[_0x3f64('0x4e')]({'plain':!![]}));});})['then'](function(){return _0x2447cd;});});});}})['then'](function(_0x134e00){return _0x134e00;})[_0x3f64('0x2b')](respondWithResult(_0x11efc3,null))['catch'](handleError(_0x11efc3,null));};exports[_0x3f64('0x5e')]=function(_0x221df2,_0x366d55){var _0x4a0274;return db[_0x3f64('0x42')][_0x3f64('0x4a')]({'where':{'id':_0x221df2[_0x3f64('0x47')]['id']},'attributes':['id',_0x3f64('0x2f')]})[_0x3f64('0x2b')](handleEntityNotFound(_0x366d55,null))[_0x3f64('0x2b')](function(_0xc4f59f){if(_0xc4f59f){_0x4a0274=_0xc4f59f;return db[_0x3f64('0x59')][_0x3f64('0x2c')]({'where':{'userProfileId':_0x221df2[_0x3f64('0x47')]['id'],'sectionId':_0x221df2['query']['ids']}});}})['then'](function(){return _0x4a0274;})['then'](respondWithStatusCode(_0x366d55,null))[_0x3f64('0x46')](handleError(_0x366d55,null));};exports[_0x3f64('0x5f')]=function(_0x4821c7,_0x2dc3f4){var _0x2dea16=[];var _0xd369e6=[];return db[_0x3f64('0x59')]['findAll']({'where':{'userProfileId':_0x4821c7['params']['id']},'raw':!![]})[_0x3f64('0x2b')](function(_0x5375ac){_0x2dea16=_[_0x3f64('0x41')](_0x5375ac,function(_0x5870d4){return _0x5870d4['enabled']===0x1||_[_0x3f64('0x60')]([0x3eb,0x709],_0x5870d4[_0x3f64('0x61')]);});if(!_[_0x3f64('0x62')](_0x2dea16)){return _[_0x3f64('0x40')](_0x2dea16,function(_0x1c94d8){return _0x1c94d8['sectionId'];});}else{return;}})[_0x3f64('0x2b')](function(_0x3aa76b){if(_0x3aa76b)_0xd369e6=_0x3aa76b;if(_[_0x3f64('0x60')](_0xd369e6,0x64)){var _0x2814e1=_[_0x3f64('0x4a')](_0x2dea16,{'sectionId':0x64});return hasDefaultDashboard(_0x2814e1)[_0x3f64('0x2b')](function(_0x377cd5){return _[_0x3f64('0x40')](_0x2dea16,function(_0x278f81){if(_0x278f81[_0x3f64('0x61')]===0x64){_0x278f81['subsections']=_0x377cd5;}return _0x278f81;});});}else{return;}})['then'](function(_0x2ee21d){if(_0x2ee21d)_0x2dea16=_0x2ee21d;if(_[_0x3f64('0x60')](_0xd369e6,0x3eb)){var _0x5a7fd5=_['find'](_0x2dea16,{'sectionId':0x3eb});return getCustomDashboards(_0x5a7fd5)[_0x3f64('0x2b')](function(_0x439e65){return _[_0x3f64('0x40')](_0x2dea16,function(_0x1d29e3){if(_0x5a7fd5[_0x3f64('0x63')]){if(_0x1d29e3['sectionId']===0x3eb){_0x1d29e3[_0x3f64('0x64')]=_0x439e65;}}else{if(_0x1d29e3[_0x3f64('0x61')]===0x64){_0x1d29e3[_0x3f64('0x64')]=_0x439e65;}}return _0x1d29e3;});});}else{return;}})['then'](function(_0x5f405c){if(_0x5f405c)_0x2dea16=_0x5f405c;if(_['includes'](_0xd369e6,0x709)){var _0x3c8439=_['find'](_0x2dea16,{'sectionId':0x709});return getPlugins(_0x3c8439)['then'](function(_0x5003e5){if(_0x3c8439[_0x3f64('0x63')]){return _[_0x3f64('0x40')](_0x2dea16,function(_0x2eae86){if(_0x2eae86[_0x3f64('0x61')]===0x709){_0x2eae86['subsections']=_0x5003e5;}return _0x2eae86;});}else{var _0x48daaa={'sectionId':0x76c,'enabled':0x1,'subsections':_0x5003e5};var _0x2a2553=_['map'](_0x2dea16);_0x2a2553['push'](_0x48daaa);return _0x2a2553;}});}else{return;}})[_0x3f64('0x2b')](function(_0x551438){if(_0x551438)_0x2dea16=_0x551438;return _[_0x3f64('0x41')](_0x2dea16,[_0x3f64('0x63'),0x1]);})[_0x3f64('0x2b')](respondWithResult(_0x2dc3f4,null))[_0x3f64('0x46')](handleError(_0x2dc3f4,null));};function hasDefaultDashboard(_0xd02fb9){var _0x42608f=[0x65];return new BPromise(function(_0x2b5c3a,_0x5d8b44){try{if(_0xd02fb9[_0x3f64('0x54')]){_0x2b5c3a(_0x42608f);}else{return db[_0x3f64('0x55')][_0x3f64('0x65')]({'where':{'sectionId':_0xd02fb9['id']},'raw':!![]})[_0x3f64('0x2b')](function(_0x319d6b){_0x319d6b?_0x2b5c3a(_0x42608f):_0x2b5c3a();});}}catch(_0x48978d){_0x5d8b44(_0x48978d);}});}function getCustomDashboards(_0x55c84c){var _0x3d6758=[];return new BPromise(function(_0x5eee1b,_0x56deb6){try{if(_0x55c84c[_0x3f64('0x54')]){return db['Dashboard'][_0x3f64('0x44')]({'raw':!![]})[_0x3f64('0x2b')](function(_0x29f9e9){_0x29f9e9[_0x3f64('0x66')](function(_0x573fae){_0x3d6758[_0x3f64('0x5d')](_0x573fae['id']+0x1869f);});_0x5eee1b(_0x3d6758);});}else{return db[_0x3f64('0x55')][_0x3f64('0x44')]({'where':{'sectionId':_0x55c84c['id']},'raw':!![]})[_0x3f64('0x2b')](function(_0x234189){_0x234189[_0x3f64('0x66')](function(_0x45f376){_0x3d6758['push'](_0x45f376[_0x3f64('0x67')]+0x1869f);});_0x5eee1b(_0x3d6758);});}}catch(_0x5af0d8){_0x56deb6(_0x5af0d8);}});}function getPlugins(_0x36ef85){var _0x17aab8=[];return new BPromise(function(_0x547ee1,_0x4c94a8){try{if(_0x36ef85[_0x3f64('0x54')]){return db[_0x3f64('0x68')][_0x3f64('0x44')]({'raw':!![]})[_0x3f64('0x2b')](function(_0xf2faa9){_0xf2faa9['forEach'](function(_0x370825){_0x17aab8[_0x3f64('0x5d')](_0x370825['id']+0x15b38);});_0x547ee1(_0x17aab8);});}else{return db[_0x3f64('0x55')][_0x3f64('0x44')]({'where':{'sectionId':_0x36ef85['id']},'raw':!![]})[_0x3f64('0x2b')](function(_0x2430e7){_0x2430e7['forEach'](function(_0xa23c27){_0x17aab8[_0x3f64('0x5d')](_0xa23c27[_0x3f64('0x67')]+0x15b38);});_0x547ee1(_0x17aab8);});}}catch(_0x2580a7){_0x4c94a8(_0x2580a7);}});}exports['addResources']=function(_0x113f4a,_0x1a1d22){return db[_0x3f64('0x42')][_0x3f64('0x4a')]({'where':{'id':_0x113f4a[_0x3f64('0x47')]['id']}})[_0x3f64('0x2b')](handleEntityNotFound(_0x1a1d22,null))['then'](function(_0x33cbb4){if(_0x33cbb4){return db[_0x3f64('0x69')][_0x3f64('0x52')](function(_0x546ac2){return db[_0x3f64('0x59')][_0x3f64('0x44')]({'where':{'userProfileId':_0x113f4a['params']['id']},'attributes':['id'],'raw':!![]})[_0x3f64('0x2b')](function(_0x41c690){if(_0x41c690){return db[_0x3f64('0x59')]['destroy']({'where':{'userProfileId':_0x113f4a[_0x3f64('0x47')]['id'],'id':_[_0x3f64('0x40')](_0x41c690,function(_0x573871){return _0x573871['id'];})},'transaction':_0x546ac2});}})[_0x3f64('0x2b')](function(_0x38a87e){var _0x418d33=_[_0x3f64('0x40')](_0x113f4a[_0x3f64('0x4c')],function(_0x3c27a9){_0x3c27a9['userProfileId']=_0x113f4a['params']['id'];return _0x3c27a9;});return db[_0x3f64('0x59')][_0x3f64('0x6a')](_0x418d33,{'raw':!![],'transaction':_0x546ac2});})[_0x3f64('0x2b')](function(_0x58b0fc){var _0x23a926=_['filter'](_[_0x3f64('0x40')](_0x58b0fc,function(_0x511ed5){return _0x511ed5[_0x3f64('0x4e')]({'plain':!![]});}),{'includeAll':![]});if(_0x23a926){return db['UserProfileSection']['findAll']({'where':{'userProfileId':_0x113f4a[_0x3f64('0x47')]['id'],'sectionId':_['map'](_0x23a926,function(_0x51fd67){return _0x51fd67[_0x3f64('0x61')];})},'attributes':['id',_0x3f64('0x61')],'raw':!![]})[_0x3f64('0x2b')](function(_0x66bea8){var _0x475bd2=_[_0x3f64('0x40')](_0x113f4a[_0x3f64('0x4c')],function(_0x114391){_0x114391[_0x3f64('0x57')]=_0x113f4a['params']['id'];return _0x114391;});return db[_0x3f64('0x55')]['bulkCreate'](_0x475bd2,{'raw':!![],'transaction':_0x546ac2});});}})[_0x3f64('0x46')](handleError(_0x1a1d22,null));});}})[_0x3f64('0x2b')](function(_0x64a16b){var _0x30b4ac=_[_0x3f64('0x40')](_0x64a16b,function(_0x26a0cf){return _0x26a0cf[_0x3f64('0x4e')]({'plain':!![]});});})[_0x3f64('0x2b')](respondWithResult(_0x1a1d22,null))[_0x3f64('0x46')](handleError(_0x1a1d22,null));};exports['removeResources']=function(_0x2bb3ef,_0x17aa8e,_0xfd260d){return db[_0x3f64('0x42')][_0x3f64('0x4a')]({'where':{'id':_0x2bb3ef[_0x3f64('0x47')]['id']}})[_0x3f64('0x2b')](handleEntityNotFound(_0x17aa8e,null))['then'](function(_0xb3d6a8){if(_0xb3d6a8){return _0xb3d6a8['removeResources'](_0x2bb3ef[_0x3f64('0x36')][_0x3f64('0x6b')]);}})[_0x3f64('0x2b')](respondWithStatusCode(_0x17aa8e,null))[_0x3f64('0x46')](handleError(_0x17aa8e,null));};exports[_0x3f64('0x6c')]=function(_0x4677d3,_0x44a62c){var _0x59301b={};if(!_0x4677d3[_0x3f64('0x36')][_0x3f64('0x6d')])throw new Error(_0x3f64('0x6e'));if(!_0x4677d3[_0x3f64('0x36')][_0x3f64('0x3b')](_0x3f64('0x6f'))){_0x59301b[_0x3f64('0x26')]=qs[_0x3f64('0x26')](_0x4677d3[_0x3f64('0x36')]['limit']);_0x59301b[_0x3f64('0x25')]=qs['offset'](_0x4677d3[_0x3f64('0x36')][_0x3f64('0x25')]);}return db[_0x3f64('0x42')]['find']({'where':{'id':_0x4677d3['params']['id']}})[_0x3f64('0x2b')](function(_0x5eb816){if(!_0x5eb816)throw new Error(_0x3f64('0x70')+_0x4677d3[_0x3f64('0x47')]['id']);return db[_0x3f64('0x42')]['getResources'](_0x4677d3);})[_0x3f64('0x2b')](respondWithFilteredResult(_0x44a62c,_0x59301b))[_0x3f64('0x46')](handleError(_0x44a62c,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xac6a=['emit','hasOwnProperty','hook','exports','events','../../mysqldb','UserProfile','setMaxListeners','save','remove'];(function(_0x11afd1,_0x4d62ff){var _0x5e8b34=function(_0x77b8b7){while(--_0x77b8b7){_0x11afd1['push'](_0x11afd1['shift']());}};_0x5e8b34(++_0x4d62ff);}(_0xac6a,0xc2));var _0xaac6=function(_0x35619f,_0xbefb1f){_0x35619f=_0x35619f-0x0;var _0x514689=_0xac6a[_0x35619f];return _0x514689;};'use strict';var EventEmitter=require(_0xaac6('0x0'));var UserProfile=require(_0xaac6('0x1'))['db'][_0xaac6('0x2')];var UserProfileEvents=new EventEmitter();UserProfileEvents[_0xaac6('0x3')](0x0);var events={'afterCreate':_0xaac6('0x4'),'afterUpdate':'update','afterDestroy':_0xaac6('0x5')};function emitEvent(_0x4c0cf4){return function(_0x9dc043,_0x1a0d76,_0x44259b){UserProfileEvents[_0xaac6('0x6')](_0x4c0cf4+':'+_0x9dc043['id'],_0x9dc043);UserProfileEvents[_0xaac6('0x6')](_0x4c0cf4,_0x9dc043);_0x44259b(null);};}for(var e in events){if(events[_0xaac6('0x7')](e)){var event=events[e];UserProfile[_0xaac6('0x8')](e,emitEvent(event));}}module[_0xaac6('0x9')]=UserProfileEvents;
\ No newline at end of file
+var _0xdf55=['remove','emit','hasOwnProperty','hook','exports','events','../../mysqldb','setMaxListeners','save'];(function(_0x527a50,_0x11ce4a){var _0x41ad65=function(_0x44da90){while(--_0x44da90){_0x527a50['push'](_0x527a50['shift']());}};_0x41ad65(++_0x11ce4a);}(_0xdf55,0x83));var _0x5df5=function(_0x1f5236,_0xea7afc){_0x1f5236=_0x1f5236-0x0;var _0x2efe18=_0xdf55[_0x1f5236];return _0x2efe18;};'use strict';var EventEmitter=require(_0x5df5('0x0'));var UserProfile=require(_0x5df5('0x1'))['db']['UserProfile'];var UserProfileEvents=new EventEmitter();UserProfileEvents[_0x5df5('0x2')](0x0);var events={'afterCreate':_0x5df5('0x3'),'afterUpdate':'update','afterDestroy':_0x5df5('0x4')};function emitEvent(_0x773e15){return function(_0x381a4c,_0x521007,_0x289af4){UserProfileEvents[_0x5df5('0x5')](_0x773e15+':'+_0x381a4c['id'],_0x381a4c);UserProfileEvents[_0x5df5('0x5')](_0x773e15,_0x381a4c);_0x289af4(null);};}for(var e in events){if(events[_0x5df5('0x6')](e)){var event=events[e];UserProfile[_0x5df5('0x7')](e,emitEvent(event));}}module[_0x5df5('0x8')]=UserProfileEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x66fa=['sugarcrmaccounts','SugarcrmAccount','deskaccounts','DeskAccount','zohoaccounts','ZohoAccount','vtigeraccounts','cannedanswers','dispositions','Disposition','customdashboards','intervals','Interval','Pause','scheduler','Schedule','sounds','tags','Tag','templates','Template','Trigger','trunks','Trunk','variables','plugins','Plugin','extractedreports','Reports','reportId','AnalyticMetric','charAt','toUpperCase','Sequelize','QueryTypes','SELECT','select','ui.','InteractionId','from','user_has_','_interactions','ui.UserId\x20=\x20?','sequelize','query','toString','OpenTabs','UserProfile','user_profiles','mergeResources','Invalid\x20section\x20\x27','isEmpty','length','UserProfileSection','find','params','all','union','ignore','push','autoAssociation','model','keys','filters','intersection','attributes','fields','nolimit','limit','offset','order','sort','where','pick','merge','key','VIRTUAL','foreignKey','options','includeAll','reportType','default','custom','CustomReports','rows','count','include','color','tag','openTabs','chat','dataValues','sms','mail','openchannel','whatsapp','lodash','./userProfile.attributes','squel','exports','models','filter','field','value','then','associatedResources','findAll','map','name','catch','resolve','UserProfileResource','AnalyticExtractedReport','resourceId','type','toLowerCase','squareprojects','odbc','SquareOdbc','squarerecordings','childModel','parentSections','SquareProjects','projectName','projects','JscriptyProject','contacts','CmContact','Lists','ListId','lists','companies','globalcustomfields','chatqueues','ChatQueue','chatwebsites','faxqueues','FaxQueue','faxaccounts','inboundroutes','internalroutes','VoiceExtension','contexts','VoiceContext','voicemails','VoiceMail','voicerecordings','membername','User','role','agent','Telephones','VoiceQueues','queue','inbound','QueueCampaigns','VoiceQueue','VoiceChanSpy','VoicePrefix','ivrcampaigns','Campaign','mailqueues','MailQueue','mailaccounts','MailAccount','mailsubstatuses','MailSubstatus','OpenchannelQueue','smsqueues','smsaccounts','SmsAccount','whatsappaccounts','WhatsappAccount','teams','Team','voicequeues','telephones','Users','user','Agents','ZendeskAccount','salesforceaccounts','FreshdeskAccount'];(function(_0x489981,_0x2b793a){var _0x17a975=function(_0x4a6615){while(--_0x4a6615){_0x489981['push'](_0x489981['shift']());}};_0x17a975(++_0x2b793a);}(_0x66fa,0x117));var _0xa66f=function(_0x522d56,_0x493107){_0x522d56=_0x522d56-0x0;var _0x3ee9a6=_0x66fa[_0x522d56];return _0x3ee9a6;};'use strict';var _=require(_0xa66f('0x0'));var attributes=require(_0xa66f('0x1'));var qs=require('../../components/parsers/qs');var squel=require(_0xa66f('0x2'));module[_0xa66f('0x3')]=function(_0x234f2d){var _0x12a38f=_0x234f2d[_0xa66f('0x4')];function _0x2a2abf(_0x3f4904,_0x5ebea5){return new Promise(function(_0x4fd9d0,_0x2239d3){if(!_0x5ebea5)return _0x4fd9d0(null);var _0x20a150=_0x5ebea5[_0xa66f('0x5')]?{[_0x5ebea5[_0xa66f('0x5')][_0xa66f('0x6')]]:_0x5ebea5['filter'][_0xa66f('0x7')]}:undefined;return _0x12a38f[_0x3f4904]['findAll']({'where':_0x20a150,'raw':!![]})[_0xa66f('0x8')](function(_0x597c7c){_0x5ebea5[_0xa66f('0x9')]=_['map'](_0x597c7c,'id');_0x4fd9d0(_0x5ebea5);})['catch'](function(_0x55e6dc){_0x2239d3(_0x55e6dc);});});}function _0x1e1997(_0x825868,_0x4979c6){return new Promise(function(_0x14d31e,_0x4cd893){var _0x28634d=_0x825868['filter']?{[_0x825868[_0xa66f('0x5')][_0xa66f('0x6')]]:_0x825868[_0xa66f('0x5')]['value']}:undefined;return _0x12a38f[_0x825868['model']][_0xa66f('0xa')]({'where':_0x28634d,'raw':!![]})['then'](function(_0x528427){_0x4979c6['associatedResources']=_[_0xa66f('0xb')](_0x528427,function(_0x452c37){return _0x452c37[_0xa66f('0xc')];});_0x14d31e(_0x4979c6);})[_0xa66f('0xd')](function(_0xd348f9){_0x4cd893(_0xd348f9);});});}function _0x567d4f(_0x5510dc,_0x19b5ac,_0x32d338){if(!_0x19b5ac)return Promise[_0xa66f('0xe')](null);return new Promise(function(_0x403f4d,_0x5c67f5){return _0x12a38f[_0xa66f('0xf')]['findAll']({'where':{'sectionId':_0x19b5ac['id']},'raw':!![]})['then'](function(_0x2f9da2){if(_0x5510dc[_0xa66f('0x6')]&&_0x5510dc[_0xa66f('0x6')]!=='id'){_0x19b5ac[_0xa66f('0x9')]=_[_0xa66f('0xb')](_0x2f9da2,function(_0x408bc7){return _0x408bc7[_0x5510dc[_0xa66f('0x6')]];});}else{if(_0x32d338===_0xa66f('0x10')){_0x19b5ac[_0xa66f('0x9')]=_[_0xa66f('0xb')](_0x2f9da2,function(_0x235b61){return{'id':_0x235b61[_0xa66f('0x11')],'type':_0x235b61[_0xa66f('0x12')]};});}else{_0x19b5ac[_0xa66f('0x9')]=_[_0xa66f('0xb')](_0x2f9da2,function(_0x5cd613){return _0x5cd613[_0xa66f('0x11')];});}}_0x403f4d(_0x19b5ac);})[_0xa66f('0xd')](function(_0x40ee00){_0x5c67f5(_0x40ee00);});});}function _0x37ee13(_0x5cbd82,_0x337602){var _0x473822={'parentSections':[]};switch(_0x5cbd82[_0xa66f('0x13')]()){case _0xa66f('0x14'):_0x473822['childModel']='SquareProject';break;case _0xa66f('0x15'):_0x473822['childModel']=_0xa66f('0x16');break;case _0xa66f('0x17'):_0x473822[_0xa66f('0x18')]='SquareRecording';_0x473822[_0xa66f('0x19')]=[{'name':_0xa66f('0x1a'),'field':_0xa66f('0xc'),'foreignKey':_0xa66f('0x1b')}];break;case _0xa66f('0x1c'):_0x473822[_0xa66f('0x18')]=_0xa66f('0x1d');break;case _0xa66f('0x1e'):_0x473822[_0xa66f('0x18')]=_0xa66f('0x1f');_0x473822[_0xa66f('0x19')]=[{'name':_0xa66f('0x20'),'field':'id','foreignKey':_0xa66f('0x21')}];break;case _0xa66f('0x22'):_0x473822['childModel']='CmList';break;case _0xa66f('0x23'):_0x473822[_0xa66f('0x18')]='CmCompany';break;case _0xa66f('0x24'):_0x473822[_0xa66f('0x18')]='CmCustomField';break;case _0xa66f('0x25'):_0x473822[_0xa66f('0x18')]=_0xa66f('0x26');break;case _0xa66f('0x27'):_0x473822[_0xa66f('0x18')]='ChatWebsite';break;case _0xa66f('0x28'):_0x473822['childModel']=_0xa66f('0x29');break;case _0xa66f('0x2a'):_0x473822[_0xa66f('0x18')]='FaxAccount';break;case _0xa66f('0x2b'):case _0xa66f('0x2c'):case'outboundroutes':_0x473822[_0xa66f('0x18')]=_0xa66f('0x2d');break;case _0xa66f('0x2e'):_0x473822[_0xa66f('0x18')]=_0xa66f('0x2f');break;case _0xa66f('0x30'):_0x473822[_0xa66f('0x18')]=_0xa66f('0x31');break;case _0xa66f('0x32'):_0x473822[_0xa66f('0x18')]='VoiceRecording';_0x473822[_0xa66f('0x19')]=[{'name':'Agents','field':_0xa66f('0xc'),'foreignKey':_0xa66f('0x33'),'model':_0xa66f('0x34'),'filter':{'field':_0xa66f('0x35'),'value':[_0xa66f('0x36')]}},{'name':_0xa66f('0x37'),'field':_0xa66f('0xc'),'foreignKey':_0xa66f('0x33'),'model':'User','filter':{'field':_0xa66f('0x35'),'value':['telephone']}},{'name':_0xa66f('0x38'),'field':_0xa66f('0xc'),'foreignKey':_0xa66f('0x39'),'model':'VoiceQueue','filter':{'field':'type','value':[_0xa66f('0x3a')]}},{'name':_0xa66f('0x3b'),'field':_0xa66f('0xc'),'foreignKey':_0xa66f('0x39'),'model':_0xa66f('0x3c'),'filter':{'field':'type','value':['outbound']}}];break;case'musiconholds':_0x473822[_0xa66f('0x18')]='VoiceMusicOnHold';break;case'chanspies':_0x473822['childModel']=_0xa66f('0x3d');break;case'voiceprefixes':_0x473822[_0xa66f('0x18')]=_0xa66f('0x3e');break;case _0xa66f('0x3f'):_0x473822[_0xa66f('0x18')]=_0xa66f('0x40');break;case _0xa66f('0x41'):_0x473822[_0xa66f('0x18')]=_0xa66f('0x42');break;case _0xa66f('0x43'):_0x473822[_0xa66f('0x18')]=_0xa66f('0x44');break;case _0xa66f('0x45'):_0x473822[_0xa66f('0x18')]=_0xa66f('0x46');break;case'openchannelqueues':_0x473822[_0xa66f('0x18')]=_0xa66f('0x47');break;case'openchannelaccounts':_0x473822[_0xa66f('0x18')]='OpenchannelAccount';break;case _0xa66f('0x48'):_0x473822[_0xa66f('0x18')]='SmsQueue';break;case _0xa66f('0x49'):_0x473822[_0xa66f('0x18')]=_0xa66f('0x4a');break;case'whatsappqueues':_0x473822[_0xa66f('0x18')]='WhatsappQueue';break;case _0xa66f('0x4b'):_0x473822[_0xa66f('0x18')]=_0xa66f('0x4c');break;case _0xa66f('0x4d'):_0x473822[_0xa66f('0x18')]=_0xa66f('0x4e');break;case _0xa66f('0x4f'):case'queuecampaigns':_0x473822[_0xa66f('0x18')]=_0xa66f('0x3c');if(_0x337602){_0x473822[_0xa66f('0x19')]=[{'name':_0xa66f('0x38')},{'name':_0xa66f('0x3b')}];}break;case'users':case'agents':case _0xa66f('0x50'):_0x473822[_0xa66f('0x18')]=_0xa66f('0x34');if(_0x337602){_0x473822[_0xa66f('0x19')]=[{'name':_0xa66f('0x51'),'filter':{'field':_0xa66f('0x35'),'value':['admin',_0xa66f('0x52')]},'ignore':!![]},{'name':_0xa66f('0x53')},{'name':_0xa66f('0x37')}];}break;case'zendeskaccounts':_0x473822['childModel']=_0xa66f('0x54');break;case _0xa66f('0x55'):_0x473822[_0xa66f('0x18')]='SalesforceAccount';break;case'freshdeskaccounts':_0x473822['childModel']=_0xa66f('0x56');break;case _0xa66f('0x57'):_0x473822[_0xa66f('0x18')]=_0xa66f('0x58');break;case _0xa66f('0x59'):_0x473822[_0xa66f('0x18')]=_0xa66f('0x5a');break;case _0xa66f('0x5b'):_0x473822['childModel']=_0xa66f('0x5c');break;case _0xa66f('0x5d'):_0x473822[_0xa66f('0x18')]=_0xa66f('0x34');break;case _0xa66f('0x5e'):_0x473822[_0xa66f('0x18')]='CannedAnswer';break;case _0xa66f('0x5f'):_0x473822[_0xa66f('0x18')]=_0xa66f('0x60');break;case _0xa66f('0x61'):_0x473822[_0xa66f('0x18')]='Dashboard';break;case _0xa66f('0x62'):_0x473822['childModel']=_0xa66f('0x63');break;case'pauses':_0x473822['childModel']=_0xa66f('0x64');break;case _0xa66f('0x65'):_0x473822[_0xa66f('0x18')]=_0xa66f('0x66');break;case _0xa66f('0x67'):_0x473822[_0xa66f('0x18')]='Sound';break;case _0xa66f('0x68'):_0x473822[_0xa66f('0x18')]=_0xa66f('0x69');break;case _0xa66f('0x6a'):_0x473822['childModel']=_0xa66f('0x6b');break;case'triggers':_0x473822[_0xa66f('0x18')]=_0xa66f('0x6c');break;case _0xa66f('0x6d'):_0x473822[_0xa66f('0x18')]=_0xa66f('0x6e');break;case _0xa66f('0x6f'):_0x473822[_0xa66f('0x18')]='Variable';break;case _0xa66f('0x70'):_0x473822[_0xa66f('0x18')]=_0xa66f('0x71');break;case _0xa66f('0x72'):_0x473822[_0xa66f('0x18')]=_0xa66f('0x10');_0x473822[_0xa66f('0x19')]=[{'name':_0xa66f('0x73'),'field':'id','foreignKey':_0xa66f('0x74')}];break;case'metrics':_0x473822['childModel']=_0xa66f('0x75');break;}return _0x473822;}function _0x8c7bdc(_0x31ffea,_0xf5cdf8){var _0x2f1f1e=_0x31ffea[_0xa66f('0x76')](0x0)[_0xa66f('0x77')]()+_0x31ffea['slice'](0x1);var _0x1709eb={'type':_0x12a38f[_0xa66f('0x78')][_0xa66f('0x79')][_0xa66f('0x7a')],'raw':!![]};return new Promise(function(_0x53d22a,_0x29f216){var _0x242100=squel[_0xa66f('0x7b')]()[_0xa66f('0x6')](_0xa66f('0x7c')+_0x2f1f1e+_0xa66f('0x7d'),'id')['field']('ui.createdAt')[_0xa66f('0x7e')](_0xa66f('0x7f')+_0x31ffea+_0xa66f('0x80'),'ui')['where'](_0xa66f('0x81'),_0xf5cdf8['id']);return _0x12a38f[_0xa66f('0x82')][_0xa66f('0x83')](_0x242100[_0xa66f('0x84')](),_0x1709eb)[_0xa66f('0x8')](function(_0x465758){_0xf5cdf8[_0x2f1f1e+_0xa66f('0x85')]=_0x465758;_0x53d22a(_0x465758);})[_0xa66f('0xd')](function(_0x3b8428){_0x29f216(_0x3b8428);});});}return _0x234f2d['define'](_0xa66f('0x86'),attributes,{'tableName':_0xa66f('0x87'),'paranoid':![],'indexes':[],'timestamps':!![],'classMethods':{'getResources':function(_0x235e4f){var _0x172c42={'raw':![],'where':{}};var _0x4565f5={};var _0x148ad1={'count':0x0,'rows':[]};var _0x41ffa7=_0x235e4f[_0xa66f('0x83')]['section'];var _0x52f22d=_0x235e4f[_0xa66f('0x83')][_0xa66f('0x88')]||![];var _0x2540ad=_0x37ee13(_0x41ffa7,_0x52f22d);if(!_0x2540ad[_0xa66f('0x18')])throw new Error(_0xa66f('0x89')+_0x41ffa7+'\x27');var _0x508e73=[{'name':_0x41ffa7}];if(!_[_0xa66f('0x8a')](_0x2540ad['parentSections']))_0x508e73=_0x2540ad[_0xa66f('0x19')];var _0x66dbf4=[];for(var _0x450e1d=0x0;_0x450e1d<_0x508e73[_0xa66f('0x8b')];_0x450e1d++){_0x66dbf4['push'](_0x12a38f[_0xa66f('0x8c')][_0xa66f('0x8d')]({'where':{'userProfileId':_0x235e4f[_0xa66f('0x8e')]['id'],'name':_0x508e73[_0x450e1d][_0xa66f('0xc')]},'raw':!![]}));}return Promise[_0xa66f('0x8f')](_0x66dbf4)[_0xa66f('0x8')](function(_0xe06d44){var _0x2bdb18=_[_0xa66f('0x5')](_0xe06d44,function(_0x36b92f){return _0x36b92f?_0x36b92f:undefined;});var _0x290323=_[_0xa66f('0x5')](_0x508e73,['ignore',!![]]);var _0x1854d3=_[_0xa66f('0x8a')](_0x2bdb18)&&_[_0xa66f('0x8a')](_0x290323)?null:_[_0xa66f('0x90')](_0x290323,_0x2bdb18);if(!_0x1854d3)return null;var _0x178434=[];for(var _0x325916=0x0;_0x325916<_0x1854d3[_0xa66f('0x8b')];_0x325916++){var _0x68bd43=_['find'](_0x508e73,function(_0x5173f0){return _0x1854d3[_0x325916]?_0x5173f0[_0xa66f('0xc')]===_0x1854d3[_0x325916][_0xa66f('0xc')]:null;});if(_0x68bd43){if(_0x1854d3[_0x325916][_0xa66f('0x91')]){_0x178434[_0xa66f('0x92')](_0x2a2abf(_0x2540ad[_0xa66f('0x18')],_0x1854d3[_0x325916]));}else{if(!_0x1854d3[_0x325916][_0xa66f('0x93')]){_0x178434[_0xa66f('0x92')](_0x567d4f(_0x68bd43,_0x1854d3[_0x325916],_0x2540ad['childModel']));}else{if(_0x68bd43['model']){_0x178434[_0xa66f('0x92')](_0x1e1997(_0x68bd43,_0x1854d3[_0x325916]));}}}}}return Promise[_0xa66f('0x8f')](_0x178434);})[_0xa66f('0x8')](function(_0x5b03a4){var _0x53b01b=_0x5b03a4;var _0x2dc550=null;if(_0x53b01b){_0x2dc550=_0x53b01b[_0xa66f('0x8b')]===0x1?_0x53b01b[0x0]:null;}if(!_0x2dc550&&!_0x53b01b)return _0x148ad1;var _0x4293dc=_0x12a38f[_0x2540ad[_0xa66f('0x18')]]['rawAttributes'];_0x4565f5[_0xa66f('0x94')]=_[_0xa66f('0x95')](_0x4293dc);_0x4565f5[_0xa66f('0x83')]=_[_0xa66f('0x95')](_0x235e4f[_0xa66f('0x83')]);_0x4565f5[_0xa66f('0x96')]=_[_0xa66f('0x97')](_0x4565f5[_0xa66f('0x94')],_0x4565f5['query']);_0x172c42[_0xa66f('0x98')]=_[_0xa66f('0x97')](_0x4565f5['model'],qs['fields'](_0x235e4f[_0xa66f('0x83')][_0xa66f('0x99')]));_0x172c42['attributes']=_0x172c42[_0xa66f('0x98')]['length']?_0x172c42[_0xa66f('0x98')]:_0x4565f5['model'];if(!_0x235e4f['query']['hasOwnProperty'](_0xa66f('0x9a'))){_0x172c42[_0xa66f('0x9b')]=qs[_0xa66f('0x9b')](_0x235e4f[_0xa66f('0x83')][_0xa66f('0x9b')]);_0x172c42[_0xa66f('0x9c')]=qs[_0xa66f('0x9c')](_0x235e4f[_0xa66f('0x83')][_0xa66f('0x9c')]);}_0x172c42[_0xa66f('0x9d')]=qs[_0xa66f('0x9e')](_0x235e4f[_0xa66f('0x83')][_0xa66f('0x9e')]);_0x172c42[_0xa66f('0x9f')]=qs[_0xa66f('0x96')](_[_0xa66f('0xa0')](_0x235e4f['query'],_0x4565f5[_0xa66f('0x96')]));if(_0x235e4f['query'][_0xa66f('0x5')]){_0x172c42['where']=_[_0xa66f('0xa1')](_0x172c42[_0xa66f('0x9f')],{'$or':_[_0xa66f('0xb')](_0x4293dc,function(_0x5ecc98){if(_0x5ecc98['type'][_0xa66f('0xa2')]!==_0xa66f('0xa3')){var _0x38b869={};_0x38b869[_0x5ecc98[_0xa66f('0x6')]]={'$like':'%'+_0x235e4f[_0xa66f('0x83')][_0xa66f('0x5')]+'%'};return _0x38b869;}})});}var _0x30bcda=[];var _0x578bff=null;var _0x4013b9={};if(_0x2dc550){_0x578bff=_[_0xa66f('0x8d')](_0x508e73,[_0xa66f('0xc'),_0x2dc550[_0xa66f('0xc')]]);if(_0x578bff[_0xa66f('0x6')]){_0x4013b9={};if(_0x2540ad[_0xa66f('0x18')]===_0xa66f('0x10')){_0x4013b9[_0x578bff[_0xa66f('0xa4')]]=_[_0xa66f('0xb')](_0x2dc550[_0xa66f('0x9')],'id');}else{_0x4013b9[_0x578bff[_0xa66f('0xa4')]]=_0x2dc550[_0xa66f('0x9')];}_0x30bcda[_0xa66f('0x92')](_0x4013b9);}else{_0x172c42['where']['id']=_0x2dc550[_0xa66f('0x9')];}}else{for(var _0x722786=0x0;_0x722786<_0x53b01b[_0xa66f('0x8b')];_0x722786++){_0x578bff=_[_0xa66f('0x8d')](_0x508e73,[_0xa66f('0xc'),_0x53b01b[_0x722786][_0xa66f('0xc')]]);if(_0x578bff[_0xa66f('0x6')]){_0x4013b9={};_0x4013b9[_0x578bff[_0xa66f('0xa4')]]=_0x53b01b[_0x722786][_0xa66f('0x9')];_0x30bcda['push'](_0x4013b9);}else{if(!_0x172c42[_0xa66f('0x9f')]['id'])_0x172c42['where']['id']=[];_0x53b01b[_0x722786][_0xa66f('0x9')]['forEach'](function(_0x25d203){_0x172c42['where']['id'][_0xa66f('0x92')](_0x25d203);});}}}if(!_['isEmpty'](_0x30bcda)){_0x172c42[_0xa66f('0x9f')]=_[_0xa66f('0xa1')](_0x172c42[_0xa66f('0x9f')],{'$and':{'$or':_0x30bcda}});}_0x172c42=_[_0xa66f('0xa1')]({},_0x172c42,_0x235e4f[_0xa66f('0xa5')]);if(_0x2dc550&&!_0x2dc550[_0xa66f('0x93')]&&_0x2540ad['childModel']===_0xa66f('0x10')){if(_0x235e4f[_0xa66f('0x83')][_0xa66f('0xa6')]){_0x172c42['include']=[{'all':!![]}];}return _0x12a38f[_0x2540ad[_0xa66f('0x18')]][_0xa66f('0xa')](_0x172c42)['then'](function(_0x1e8510){var _0x473ebd=[];_0x1e8510['forEach'](function(_0x57f0b7){var _0x125bf4;switch(_0x57f0b7[_0xa66f('0xa7')]){case _0xa66f('0xa8'):_0x125bf4=_[_0xa66f('0x8d')](_0x2dc550[_0xa66f('0x9')],function(_0x495a04){return _0x495a04['id']===_0x57f0b7[_0xa66f('0x74')]&&_0x495a04[_0xa66f('0x12')]==='DefaultReports';});break;case _0xa66f('0xa9'):_0x125bf4=_[_0xa66f('0x8d')](_0x2dc550['associatedResources'],function(_0x453847){return _0x453847['id']===_0x57f0b7[_0xa66f('0x74')]&&_0x453847[_0xa66f('0x12')]===_0xa66f('0xaa');});break;}if(_0x125bf4)_0x473ebd[_0xa66f('0x92')](_0x57f0b7);});_0x148ad1['count']=_0x473ebd[_0xa66f('0x8b')];_0x148ad1[_0xa66f('0xab')]=_0x473ebd;return _0x148ad1;});}else{return _0x12a38f[_0x2540ad[_0xa66f('0x18')]][_0xa66f('0xac')]({'where':_0x172c42[_0xa66f('0x9f')]})[_0xa66f('0x8')](function(_0x4e318d){_0x148ad1[_0xa66f('0xac')]=_0x4e318d;if(_0x235e4f[_0xa66f('0x83')][_0xa66f('0xa6')]){if(_0x2540ad[_0xa66f('0x18')]===_0xa66f('0x1f')){_0x172c42[_0xa66f('0xad')]=[{'model':_0x12a38f[_0xa66f('0x69')],'as':'Tags','attributes':['id','name',_0xa66f('0xae')],'required':_0x235e4f['query'][_0xa66f('0xaf')]?!![]:![]},{'model':_0x12a38f[_0xa66f('0x69')],'as':'ThroughTags','attributes':['id',_0xa66f('0xc'),_0xa66f('0xae')],'through':_0x235e4f[_0xa66f('0x83')]['tag']?{'attributes':[],'where':{'TagId':_0x235e4f['query'][_0xa66f('0xaf')]||undefined}}:{},'required':_0x235e4f['query'][_0xa66f('0xaf')]?!![]:![]}];}else{_0x172c42[_0xa66f('0xad')]=[{'all':!![]}];}}return _0x12a38f[_0x2540ad[_0xa66f('0x18')]]['findAll'](_0x172c42);})[_0xa66f('0x8')](function(_0x4cefa7){_0x148ad1[_0xa66f('0xab')]=_0x4cefa7;if(_0x41ffa7===_0xa66f('0x53')&&_0x235e4f[_0xa66f('0x83')][_0xa66f('0xb0')]==='true'){var _0x20a5bc=[];for(var _0x3ac90f=0x0;_0x3ac90f<_0x148ad1[_0xa66f('0xab')][_0xa66f('0x8b')];_0x3ac90f++){_0x20a5bc[_0xa66f('0x92')](_0x8c7bdc(_0xa66f('0xb1'),_0x148ad1['rows'][_0x3ac90f][_0xa66f('0xb2')]));_0x20a5bc[_0xa66f('0x92')](_0x8c7bdc(_0xa66f('0xb3'),_0x148ad1[_0xa66f('0xab')][_0x3ac90f][_0xa66f('0xb2')]));_0x20a5bc['push'](_0x8c7bdc('fax',_0x148ad1[_0xa66f('0xab')][_0x3ac90f][_0xa66f('0xb2')]));_0x20a5bc[_0xa66f('0x92')](_0x8c7bdc(_0xa66f('0xb4'),_0x148ad1[_0xa66f('0xab')][_0x3ac90f][_0xa66f('0xb2')]));_0x20a5bc[_0xa66f('0x92')](_0x8c7bdc(_0xa66f('0xb5'),_0x148ad1[_0xa66f('0xab')][_0x3ac90f][_0xa66f('0xb2')]));_0x20a5bc[_0xa66f('0x92')](_0x8c7bdc(_0xa66f('0xb6'),_0x148ad1['rows'][_0x3ac90f][_0xa66f('0xb2')]));}return Promise[_0xa66f('0x8f')](_0x20a5bc)['then'](function(){return _0x148ad1;});}return _0x148ad1;});}});}}});};
\ No newline at end of file
+var _0x1261=['FaxQueue','faxaccounts','inboundroutes','internalroutes','outboundroutes','contexts','VoiceContext','voicemails','voicerecordings','VoiceRecording','membername','User','agent','Telephones','role','telephone','VoiceQueues','VoiceQueue','inbound','QueueCampaigns','queue','outbound','musiconholds','VoiceMusicOnHold','chanspies','VoiceChanSpy','VoicePrefix','ivrcampaigns','Campaign','MailQueue','mailaccounts','MailAccount','mailsubstatuses','OpenchannelQueue','OpenchannelAccount','smsqueues','SmsAccount','whatsappqueues','WhatsappQueue','teams','Team','queuecampaigns','users','telephones','Users','admin','Agents','ZendeskAccount','SalesforceAccount','FreshdeskAccount','sugarcrmaccounts','SugarcrmAccount','deskaccounts','DeskAccount','zohoaccounts','ZohoAccount','vtigeraccounts','CannedAnswer','Disposition','customdashboards','intervals','Interval','pauses','Pause','scheduler','Sound','tags','Tag','templates','Template','triggers','Trigger','trunks','Trunk','variables','Variable','plugins','Plugin','reportId','metrics','AnalyticMetric','charAt','toUpperCase','slice','Sequelize','QueryTypes','SELECT','select','ui.','ui.createdAt','user_has_','where','ui.UserId\x20=\x20?','query','toString','OpenTabs','define','UserProfile','user_profiles','section','mergeResources','isEmpty','length','push','UserProfileSection','params','all','ignore','find','autoAssociation','rawAttributes','filters','intersection','attributes','fields','hasOwnProperty','nolimit','limit','offset','order','sort','pick','merge','key','VIRTUAL','foreignKey','options','includeAll','include','forEach','reportType','default','custom','count','Tags','tag','ThroughTags','color','rows','true','chat','dataValues','sms','fax','whatsapp','./userProfile.attributes','../../components/parsers/qs','squel','exports','models','filter','field','value','findAll','then','associatedResources','map','catch','model','name','AnalyticExtractedReport','type','squareprojects','childModel','SquareProject','odbc','SquareOdbc','squarerecordings','parentSections','SquareProjects','JscriptyProject','CmContact','Lists','lists','CmList','CmCustomField','chatqueues','chatwebsites','faxqueues'];(function(_0xbfcc82,_0x173126){var _0x4bf066=function(_0x5791ad){while(--_0x5791ad){_0xbfcc82['push'](_0xbfcc82['shift']());}};_0x4bf066(++_0x173126);}(_0x1261,0x144));var _0x1126=function(_0x24431a,_0x52459a){_0x24431a=_0x24431a-0x0;var _0x454ec7=_0x1261[_0x24431a];return _0x454ec7;};'use strict';var _=require('lodash');var attributes=require(_0x1126('0x0'));var qs=require(_0x1126('0x1'));var squel=require(_0x1126('0x2'));module[_0x1126('0x3')]=function(_0x39b786){var _0x350f3a=_0x39b786[_0x1126('0x4')];function _0x4245ca(_0x21a480,_0x75a851){return new Promise(function(_0x5a2189,_0x5c68c8){if(!_0x75a851)return _0x5a2189(null);var _0x40ba58=_0x75a851[_0x1126('0x5')]?{[_0x75a851['filter'][_0x1126('0x6')]]:_0x75a851[_0x1126('0x5')][_0x1126('0x7')]}:undefined;return _0x350f3a[_0x21a480][_0x1126('0x8')]({'where':_0x40ba58,'raw':!![]})[_0x1126('0x9')](function(_0x59cfa1){_0x75a851[_0x1126('0xa')]=_[_0x1126('0xb')](_0x59cfa1,'id');_0x5a2189(_0x75a851);})[_0x1126('0xc')](function(_0x5e72e2){_0x5c68c8(_0x5e72e2);});});}function _0x34571c(_0x5d581b,_0x52ef15){return new Promise(function(_0x15c071,_0x561b93){var _0x15e89b=_0x5d581b[_0x1126('0x5')]?{[_0x5d581b[_0x1126('0x5')][_0x1126('0x6')]]:_0x5d581b[_0x1126('0x5')][_0x1126('0x7')]}:undefined;return _0x350f3a[_0x5d581b[_0x1126('0xd')]][_0x1126('0x8')]({'where':_0x15e89b,'raw':!![]})[_0x1126('0x9')](function(_0x53a8f0){_0x52ef15['associatedResources']=_[_0x1126('0xb')](_0x53a8f0,function(_0x154e20){return _0x154e20[_0x1126('0xe')];});_0x15c071(_0x52ef15);})['catch'](function(_0x45149c){_0x561b93(_0x45149c);});});}function _0x4794a7(_0x35fe9f,_0x42f379,_0x257b5f){if(!_0x42f379)return Promise['resolve'](null);return new Promise(function(_0x245cd7,_0x1695f6){return _0x350f3a['UserProfileResource']['findAll']({'where':{'sectionId':_0x42f379['id']},'raw':!![]})[_0x1126('0x9')](function(_0x2b2487){if(_0x35fe9f['field']&&_0x35fe9f['field']!=='id'){_0x42f379[_0x1126('0xa')]=_['map'](_0x2b2487,function(_0x22ed37){return _0x22ed37[_0x35fe9f[_0x1126('0x6')]];});}else{if(_0x257b5f===_0x1126('0xf')){_0x42f379['associatedResources']=_[_0x1126('0xb')](_0x2b2487,function(_0x49d209){return{'id':_0x49d209['resourceId'],'type':_0x49d209[_0x1126('0x10')]};});}else{_0x42f379[_0x1126('0xa')]=_[_0x1126('0xb')](_0x2b2487,function(_0x36d254){return _0x36d254['resourceId'];});}}_0x245cd7(_0x42f379);})[_0x1126('0xc')](function(_0x477e6a){_0x1695f6(_0x477e6a);});});}function _0x48a08d(_0x2175fa,_0x59cd8e){var _0x529dd9={'parentSections':[]};switch(_0x2175fa['toLowerCase']()){case _0x1126('0x11'):_0x529dd9[_0x1126('0x12')]=_0x1126('0x13');break;case _0x1126('0x14'):_0x529dd9[_0x1126('0x12')]=_0x1126('0x15');break;case _0x1126('0x16'):_0x529dd9[_0x1126('0x12')]='SquareRecording';_0x529dd9[_0x1126('0x17')]=[{'name':_0x1126('0x18'),'field':_0x1126('0xe'),'foreignKey':'projectName'}];break;case'projects':_0x529dd9[_0x1126('0x12')]=_0x1126('0x19');break;case'contacts':_0x529dd9[_0x1126('0x12')]=_0x1126('0x1a');_0x529dd9['parentSections']=[{'name':_0x1126('0x1b'),'field':'id','foreignKey':'ListId'}];break;case _0x1126('0x1c'):_0x529dd9['childModel']=_0x1126('0x1d');break;case'companies':_0x529dd9[_0x1126('0x12')]='CmCompany';break;case'globalcustomfields':_0x529dd9['childModel']=_0x1126('0x1e');break;case _0x1126('0x1f'):_0x529dd9[_0x1126('0x12')]='ChatQueue';break;case _0x1126('0x20'):_0x529dd9[_0x1126('0x12')]='ChatWebsite';break;case _0x1126('0x21'):_0x529dd9[_0x1126('0x12')]=_0x1126('0x22');break;case _0x1126('0x23'):_0x529dd9['childModel']='FaxAccount';break;case _0x1126('0x24'):case _0x1126('0x25'):case _0x1126('0x26'):_0x529dd9[_0x1126('0x12')]='VoiceExtension';break;case _0x1126('0x27'):_0x529dd9[_0x1126('0x12')]=_0x1126('0x28');break;case _0x1126('0x29'):_0x529dd9[_0x1126('0x12')]='VoiceMail';break;case _0x1126('0x2a'):_0x529dd9[_0x1126('0x12')]=_0x1126('0x2b');_0x529dd9[_0x1126('0x17')]=[{'name':'Agents','field':'name','foreignKey':_0x1126('0x2c'),'model':_0x1126('0x2d'),'filter':{'field':'role','value':[_0x1126('0x2e')]}},{'name':_0x1126('0x2f'),'field':_0x1126('0xe'),'foreignKey':'membername','model':'User','filter':{'field':_0x1126('0x30'),'value':[_0x1126('0x31')]}},{'name':_0x1126('0x32'),'field':_0x1126('0xe'),'foreignKey':'queue','model':_0x1126('0x33'),'filter':{'field':'type','value':[_0x1126('0x34')]}},{'name':_0x1126('0x35'),'field':_0x1126('0xe'),'foreignKey':_0x1126('0x36'),'model':_0x1126('0x33'),'filter':{'field':'type','value':[_0x1126('0x37')]}}];break;case _0x1126('0x38'):_0x529dd9[_0x1126('0x12')]=_0x1126('0x39');break;case _0x1126('0x3a'):_0x529dd9[_0x1126('0x12')]=_0x1126('0x3b');break;case'voiceprefixes':_0x529dd9[_0x1126('0x12')]=_0x1126('0x3c');break;case _0x1126('0x3d'):_0x529dd9[_0x1126('0x12')]=_0x1126('0x3e');break;case'mailqueues':_0x529dd9['childModel']=_0x1126('0x3f');break;case _0x1126('0x40'):_0x529dd9[_0x1126('0x12')]=_0x1126('0x41');break;case _0x1126('0x42'):_0x529dd9[_0x1126('0x12')]='MailSubstatus';break;case'openchannelqueues':_0x529dd9['childModel']=_0x1126('0x43');break;case'openchannelaccounts':_0x529dd9[_0x1126('0x12')]=_0x1126('0x44');break;case _0x1126('0x45'):_0x529dd9[_0x1126('0x12')]='SmsQueue';break;case'smsaccounts':_0x529dd9[_0x1126('0x12')]=_0x1126('0x46');break;case _0x1126('0x47'):_0x529dd9['childModel']=_0x1126('0x48');break;case'whatsappaccounts':_0x529dd9[_0x1126('0x12')]='WhatsappAccount';break;case _0x1126('0x49'):_0x529dd9[_0x1126('0x12')]=_0x1126('0x4a');break;case'voicequeues':case _0x1126('0x4b'):_0x529dd9[_0x1126('0x12')]=_0x1126('0x33');if(_0x59cd8e){_0x529dd9['parentSections']=[{'name':'VoiceQueues'},{'name':'QueueCampaigns'}];}break;case _0x1126('0x4c'):case'agents':case _0x1126('0x4d'):_0x529dd9['childModel']=_0x1126('0x2d');if(_0x59cd8e){_0x529dd9[_0x1126('0x17')]=[{'name':_0x1126('0x4e'),'filter':{'field':_0x1126('0x30'),'value':[_0x1126('0x4f'),'user']},'ignore':!![]},{'name':_0x1126('0x50')},{'name':_0x1126('0x2f')}];}break;case'zendeskaccounts':_0x529dd9[_0x1126('0x12')]=_0x1126('0x51');break;case'salesforceaccounts':_0x529dd9[_0x1126('0x12')]=_0x1126('0x52');break;case'freshdeskaccounts':_0x529dd9[_0x1126('0x12')]=_0x1126('0x53');break;case _0x1126('0x54'):_0x529dd9['childModel']=_0x1126('0x55');break;case _0x1126('0x56'):_0x529dd9[_0x1126('0x12')]=_0x1126('0x57');break;case _0x1126('0x58'):_0x529dd9[_0x1126('0x12')]=_0x1126('0x59');break;case _0x1126('0x5a'):_0x529dd9['childModel']=_0x1126('0x2d');break;case'cannedanswers':_0x529dd9[_0x1126('0x12')]=_0x1126('0x5b');break;case'dispositions':_0x529dd9['childModel']=_0x1126('0x5c');break;case _0x1126('0x5d'):_0x529dd9[_0x1126('0x12')]='Dashboard';break;case _0x1126('0x5e'):_0x529dd9[_0x1126('0x12')]=_0x1126('0x5f');break;case _0x1126('0x60'):_0x529dd9['childModel']=_0x1126('0x61');break;case _0x1126('0x62'):_0x529dd9['childModel']='Schedule';break;case'sounds':_0x529dd9['childModel']=_0x1126('0x63');break;case _0x1126('0x64'):_0x529dd9['childModel']=_0x1126('0x65');break;case _0x1126('0x66'):_0x529dd9[_0x1126('0x12')]=_0x1126('0x67');break;case _0x1126('0x68'):_0x529dd9['childModel']=_0x1126('0x69');break;case _0x1126('0x6a'):_0x529dd9['childModel']=_0x1126('0x6b');break;case _0x1126('0x6c'):_0x529dd9[_0x1126('0x12')]=_0x1126('0x6d');break;case _0x1126('0x6e'):_0x529dd9['childModel']=_0x1126('0x6f');break;case'extractedreports':_0x529dd9[_0x1126('0x12')]=_0x1126('0xf');_0x529dd9[_0x1126('0x17')]=[{'name':'Reports','field':'id','foreignKey':_0x1126('0x70')}];break;case _0x1126('0x71'):_0x529dd9['childModel']=_0x1126('0x72');break;}return _0x529dd9;}function _0x25038f(_0x9bad53,_0x5a5340){var _0x2fe6dc=_0x9bad53[_0x1126('0x73')](0x0)[_0x1126('0x74')]()+_0x9bad53[_0x1126('0x75')](0x1);var _0x128c94={'type':_0x350f3a[_0x1126('0x76')][_0x1126('0x77')][_0x1126('0x78')],'raw':!![]};return new Promise(function(_0x47e53d,_0x2b23e3){var _0x2db45e=squel[_0x1126('0x79')]()[_0x1126('0x6')](_0x1126('0x7a')+_0x2fe6dc+'InteractionId','id')[_0x1126('0x6')](_0x1126('0x7b'))['from'](_0x1126('0x7c')+_0x9bad53+'_interactions','ui')[_0x1126('0x7d')](_0x1126('0x7e'),_0x5a5340['id']);return _0x350f3a['sequelize'][_0x1126('0x7f')](_0x2db45e[_0x1126('0x80')](),_0x128c94)[_0x1126('0x9')](function(_0x592960){_0x5a5340[_0x2fe6dc+_0x1126('0x81')]=_0x592960;_0x47e53d(_0x592960);})['catch'](function(_0x558b6e){_0x2b23e3(_0x558b6e);});});}return _0x39b786[_0x1126('0x82')](_0x1126('0x83'),attributes,{'tableName':_0x1126('0x84'),'paranoid':![],'indexes':[],'timestamps':!![],'classMethods':{'getResources':function(_0x1230e9){var _0x3a76ec={'raw':![],'where':{}};var _0x1b4ebf={};var _0x1a0e26={'count':0x0,'rows':[]};var _0x5036d4=_0x1230e9[_0x1126('0x7f')][_0x1126('0x85')];var _0x116867=_0x1230e9[_0x1126('0x7f')][_0x1126('0x86')]||![];var _0x3cd788=_0x48a08d(_0x5036d4,_0x116867);if(!_0x3cd788['childModel'])throw new Error('Invalid\x20section\x20\x27'+_0x5036d4+'\x27');var _0x16a343=[{'name':_0x5036d4}];if(!_[_0x1126('0x87')](_0x3cd788['parentSections']))_0x16a343=_0x3cd788['parentSections'];var _0x5e9260=[];for(var _0x51a28d=0x0;_0x51a28d<_0x16a343[_0x1126('0x88')];_0x51a28d++){_0x5e9260[_0x1126('0x89')](_0x350f3a[_0x1126('0x8a')]['find']({'where':{'userProfileId':_0x1230e9[_0x1126('0x8b')]['id'],'name':_0x16a343[_0x51a28d][_0x1126('0xe')]},'raw':!![]}));}return Promise[_0x1126('0x8c')](_0x5e9260)[_0x1126('0x9')](function(_0x22d403){var _0x3f007b=_[_0x1126('0x5')](_0x22d403,function(_0x49a0a3){return _0x49a0a3?_0x49a0a3:undefined;});var _0x339aa6=_[_0x1126('0x5')](_0x16a343,[_0x1126('0x8d'),!![]]);var _0xd8171c=_[_0x1126('0x87')](_0x3f007b)&&_['isEmpty'](_0x339aa6)?null:_['union'](_0x339aa6,_0x3f007b);if(!_0xd8171c)return null;var _0x15cf3d=[];for(var _0x2643d7=0x0;_0x2643d7<_0xd8171c['length'];_0x2643d7++){var _0x3bf25d=_[_0x1126('0x8e')](_0x16a343,function(_0x366675){return _0xd8171c[_0x2643d7]?_0x366675[_0x1126('0xe')]===_0xd8171c[_0x2643d7][_0x1126('0xe')]:null;});if(_0x3bf25d){if(_0xd8171c[_0x2643d7][_0x1126('0x8d')]){_0x15cf3d[_0x1126('0x89')](_0x4245ca(_0x3cd788[_0x1126('0x12')],_0xd8171c[_0x2643d7]));}else{if(!_0xd8171c[_0x2643d7][_0x1126('0x8f')]){_0x15cf3d[_0x1126('0x89')](_0x4794a7(_0x3bf25d,_0xd8171c[_0x2643d7],_0x3cd788[_0x1126('0x12')]));}else{if(_0x3bf25d[_0x1126('0xd')]){_0x15cf3d[_0x1126('0x89')](_0x34571c(_0x3bf25d,_0xd8171c[_0x2643d7]));}}}}}return Promise['all'](_0x15cf3d);})[_0x1126('0x9')](function(_0x274343){var _0x2b61ae=_0x274343;var _0x53ea9a=null;if(_0x2b61ae){_0x53ea9a=_0x2b61ae['length']===0x1?_0x2b61ae[0x0]:null;}if(!_0x53ea9a&&!_0x2b61ae)return _0x1a0e26;var _0xe22fd2=_0x350f3a[_0x3cd788[_0x1126('0x12')]][_0x1126('0x90')];_0x1b4ebf[_0x1126('0xd')]=_['keys'](_0xe22fd2);_0x1b4ebf['query']=_['keys'](_0x1230e9[_0x1126('0x7f')]);_0x1b4ebf[_0x1126('0x91')]=_[_0x1126('0x92')](_0x1b4ebf[_0x1126('0xd')],_0x1b4ebf['query']);_0x3a76ec[_0x1126('0x93')]=_['intersection'](_0x1b4ebf[_0x1126('0xd')],qs[_0x1126('0x94')](_0x1230e9[_0x1126('0x7f')][_0x1126('0x94')]));_0x3a76ec[_0x1126('0x93')]=_0x3a76ec[_0x1126('0x93')][_0x1126('0x88')]?_0x3a76ec['attributes']:_0x1b4ebf[_0x1126('0xd')];if(!_0x1230e9['query'][_0x1126('0x95')](_0x1126('0x96'))){_0x3a76ec['limit']=qs[_0x1126('0x97')](_0x1230e9[_0x1126('0x7f')]['limit']);_0x3a76ec[_0x1126('0x98')]=qs[_0x1126('0x98')](_0x1230e9['query']['offset']);}_0x3a76ec[_0x1126('0x99')]=qs[_0x1126('0x9a')](_0x1230e9[_0x1126('0x7f')]['sort']);_0x3a76ec['where']=qs['filters'](_[_0x1126('0x9b')](_0x1230e9['query'],_0x1b4ebf['filters']));if(_0x1230e9[_0x1126('0x7f')]['filter']){_0x3a76ec[_0x1126('0x7d')]=_[_0x1126('0x9c')](_0x3a76ec['where'],{'$or':_[_0x1126('0xb')](_0xe22fd2,function(_0x375728){if(_0x375728[_0x1126('0x10')][_0x1126('0x9d')]!==_0x1126('0x9e')){var _0x5e9872={};_0x5e9872[_0x375728[_0x1126('0x6')]]={'$like':'%'+_0x1230e9[_0x1126('0x7f')]['filter']+'%'};return _0x5e9872;}})});}var _0xd182b1=[];var _0x2d6fcf=null;var _0x2c0908={};if(_0x53ea9a){_0x2d6fcf=_[_0x1126('0x8e')](_0x16a343,[_0x1126('0xe'),_0x53ea9a[_0x1126('0xe')]]);if(_0x2d6fcf[_0x1126('0x6')]){_0x2c0908={};if(_0x3cd788[_0x1126('0x12')]===_0x1126('0xf')){_0x2c0908[_0x2d6fcf[_0x1126('0x9f')]]=_[_0x1126('0xb')](_0x53ea9a[_0x1126('0xa')],'id');}else{_0x2c0908[_0x2d6fcf[_0x1126('0x9f')]]=_0x53ea9a[_0x1126('0xa')];}_0xd182b1[_0x1126('0x89')](_0x2c0908);}else{_0x3a76ec[_0x1126('0x7d')]['id']=_0x53ea9a['associatedResources'];}}else{for(var _0x31cfb5=0x0;_0x31cfb5<_0x2b61ae[_0x1126('0x88')];_0x31cfb5++){_0x2d6fcf=_[_0x1126('0x8e')](_0x16a343,[_0x1126('0xe'),_0x2b61ae[_0x31cfb5][_0x1126('0xe')]]);if(_0x2d6fcf['field']){_0x2c0908={};_0x2c0908[_0x2d6fcf[_0x1126('0x9f')]]=_0x2b61ae[_0x31cfb5]['associatedResources'];_0xd182b1['push'](_0x2c0908);}else{if(!_0x3a76ec[_0x1126('0x7d')]['id'])_0x3a76ec[_0x1126('0x7d')]['id']=[];_0x2b61ae[_0x31cfb5]['associatedResources']['forEach'](function(_0xaada05){_0x3a76ec[_0x1126('0x7d')]['id'][_0x1126('0x89')](_0xaada05);});}}}if(!_[_0x1126('0x87')](_0xd182b1)){_0x3a76ec[_0x1126('0x7d')]=_[_0x1126('0x9c')](_0x3a76ec[_0x1126('0x7d')],{'$and':{'$or':_0xd182b1}});}_0x3a76ec=_[_0x1126('0x9c')]({},_0x3a76ec,_0x1230e9[_0x1126('0xa0')]);if(_0x53ea9a&&!_0x53ea9a['autoAssociation']&&_0x3cd788[_0x1126('0x12')]===_0x1126('0xf')){if(_0x1230e9[_0x1126('0x7f')][_0x1126('0xa1')]){_0x3a76ec[_0x1126('0xa2')]=[{'all':!![]}];}return _0x350f3a[_0x3cd788[_0x1126('0x12')]]['findAll'](_0x3a76ec)[_0x1126('0x9')](function(_0x2cc4c8){var _0x194b3c=[];_0x2cc4c8[_0x1126('0xa3')](function(_0x12cdc6){var _0x1796eb;switch(_0x12cdc6[_0x1126('0xa4')]){case _0x1126('0xa5'):_0x1796eb=_[_0x1126('0x8e')](_0x53ea9a[_0x1126('0xa')],function(_0x5d6edb){return _0x5d6edb['id']===_0x12cdc6['reportId']&&_0x5d6edb[_0x1126('0x10')]==='DefaultReports';});break;case _0x1126('0xa6'):_0x1796eb=_['find'](_0x53ea9a[_0x1126('0xa')],function(_0x5059d3){return _0x5059d3['id']===_0x12cdc6[_0x1126('0x70')]&&_0x5059d3['type']==='CustomReports';});break;}if(_0x1796eb)_0x194b3c['push'](_0x12cdc6);});_0x1a0e26[_0x1126('0xa7')]=_0x194b3c[_0x1126('0x88')];_0x1a0e26['rows']=_0x194b3c;return _0x1a0e26;});}else{return _0x350f3a[_0x3cd788['childModel']][_0x1126('0xa7')]({'where':_0x3a76ec[_0x1126('0x7d')]})[_0x1126('0x9')](function(_0x5dfb8f){_0x1a0e26['count']=_0x5dfb8f;if(_0x1230e9[_0x1126('0x7f')]['includeAll']){if(_0x3cd788[_0x1126('0x12')]===_0x1126('0x1a')){_0x3a76ec[_0x1126('0xa2')]=[{'model':_0x350f3a[_0x1126('0x65')],'as':_0x1126('0xa8'),'attributes':['id','name','color'],'required':_0x1230e9[_0x1126('0x7f')][_0x1126('0xa9')]?!![]:![]},{'model':_0x350f3a[_0x1126('0x65')],'as':_0x1126('0xaa'),'attributes':['id',_0x1126('0xe'),_0x1126('0xab')],'through':_0x1230e9[_0x1126('0x7f')][_0x1126('0xa9')]?{'attributes':[],'where':{'TagId':_0x1230e9[_0x1126('0x7f')][_0x1126('0xa9')]||undefined}}:{},'required':_0x1230e9[_0x1126('0x7f')]['tag']?!![]:![]}];}else{_0x3a76ec[_0x1126('0xa2')]=[{'all':!![]}];}}return _0x350f3a[_0x3cd788['childModel']][_0x1126('0x8')](_0x3a76ec);})['then'](function(_0x4256e6){_0x1a0e26[_0x1126('0xac')]=_0x4256e6;if(_0x5036d4===_0x1126('0x50')&&_0x1230e9[_0x1126('0x7f')]['openTabs']===_0x1126('0xad')){var _0x834360=[];for(var _0x4b5d46=0x0;_0x4b5d46<_0x1a0e26['rows'][_0x1126('0x88')];_0x4b5d46++){_0x834360[_0x1126('0x89')](_0x25038f(_0x1126('0xae'),_0x1a0e26['rows'][_0x4b5d46][_0x1126('0xaf')]));_0x834360['push'](_0x25038f(_0x1126('0xb0'),_0x1a0e26[_0x1126('0xac')][_0x4b5d46]['dataValues']));_0x834360[_0x1126('0x89')](_0x25038f(_0x1126('0xb1'),_0x1a0e26[_0x1126('0xac')][_0x4b5d46][_0x1126('0xaf')]));_0x834360[_0x1126('0x89')](_0x25038f('mail',_0x1a0e26[_0x1126('0xac')][_0x4b5d46][_0x1126('0xaf')]));_0x834360[_0x1126('0x89')](_0x25038f('openchannel',_0x1a0e26['rows'][_0x4b5d46]['dataValues']));_0x834360[_0x1126('0x89')](_0x25038f(_0x1126('0xb2'),_0x1a0e26[_0x1126('0xac')][_0x4b5d46][_0x1126('0xaf')]));}return Promise['all'](_0x834360)[_0x1126('0x9')](function(){return _0x1a0e26;});}return _0x1a0e26;});}});}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6fad=['code','message','catch','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/logger','../../config/environment','client','http','redis','defaults','localhost','socket.io-emitter','./userProfile.socket','info','UserProfile,\x20%s,\x20%s','debug','UserProfile,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error'];(function(_0x5d258e,_0x4141f5){var _0x5eac06=function(_0x199b51){while(--_0x199b51){_0x5d258e['push'](_0x5d258e['shift']());}};_0x5eac06(++_0x4141f5);}(_0x6fad,0x17a));var _0xd6fa=function(_0x4c2468,_0x59bc81){_0x4c2468=_0x4c2468-0x0;var _0x27626a=_0x6fad[_0x4c2468];return _0x27626a;};'use strict';var _=require(_0xd6fa('0x0'));var util=require(_0xd6fa('0x1'));var moment=require(_0xd6fa('0x2'));var BPromise=require(_0xd6fa('0x3'));var rs=require(_0xd6fa('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xd6fa('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0xd6fa('0x6'))('rpc');var config=require(_0xd6fa('0x7'));var jayson=require('jayson/promise');var client=jayson[_0xd6fa('0x8')][_0xd6fa('0x9')]({'port':0x232a});config[_0xd6fa('0xa')]=_[_0xd6fa('0xb')](config[_0xd6fa('0xa')],{'host':_0xd6fa('0xc'),'port':0x18eb});var socket=require(_0xd6fa('0xd'))(new Redis(config['redis']));require(_0xd6fa('0xe'))['register'](socket);function respondWithRpcPromise(_0x1f7672,_0x23cb2b,_0x41a335){return new BPromise(function(_0x1cc80c,_0x31286a){return client['request'](_0x1f7672,_0x41a335)['then'](function(_0x28f2e6){logger[_0xd6fa('0xf')](_0xd6fa('0x10'),_0x23cb2b,'request\x20sent');logger[_0xd6fa('0x11')](_0xd6fa('0x12'),_0x23cb2b,_0xd6fa('0x13'),JSON[_0xd6fa('0x14')](_0x28f2e6));if(_0x28f2e6[_0xd6fa('0x15')]){if(_0x28f2e6[_0xd6fa('0x15')][_0xd6fa('0x16')]===0x1f4){logger['error'](_0xd6fa('0x10'),_0x23cb2b,_0x28f2e6['error']['message']);return _0x31286a(_0x28f2e6[_0xd6fa('0x15')][_0xd6fa('0x17')]);}logger['error'](_0xd6fa('0x10'),_0x23cb2b,_0x28f2e6[_0xd6fa('0x15')]['message']);return _0x1cc80c(_0x28f2e6[_0xd6fa('0x15')][_0xd6fa('0x17')]);}else{logger[_0xd6fa('0xf')]('UserProfile,\x20%s,\x20%s',_0x23cb2b,_0xd6fa('0x13'));_0x1cc80c(_0x28f2e6['result'][_0xd6fa('0x17')]);}})[_0xd6fa('0x18')](function(_0x6a8922){logger[_0xd6fa('0x15')](_0xd6fa('0x10'),_0x23cb2b,_0x6a8922);_0x31286a(_0x6a8922);});});}
\ No newline at end of file
+var _0xfba8=['error','code','message','request\x20sent','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','client','http','redis','defaults','localhost','socket.io-emitter','./userProfile.socket','request','then','info','UserProfile,\x20%s,\x20%s','UserProfile,\x20%s,\x20%s,\x20%s','stringify'];(function(_0x4cc474,_0x46e635){var _0x27c99a=function(_0x184a48){while(--_0x184a48){_0x4cc474['push'](_0x4cc474['shift']());}};_0x27c99a(++_0x46e635);}(_0xfba8,0x1d6));var _0x8fba=function(_0x251308,_0x5eab0d){_0x251308=_0x251308-0x0;var _0x1017ab=_0xfba8[_0x251308];return _0x1017ab;};'use strict';var _=require(_0x8fba('0x0'));var util=require(_0x8fba('0x1'));var moment=require(_0x8fba('0x2'));var BPromise=require(_0x8fba('0x3'));var rs=require(_0x8fba('0x4'));var fs=require('fs');var Redis=require(_0x8fba('0x5'));var db=require(_0x8fba('0x6'))['db'];var utils=require(_0x8fba('0x7'));var logger=require(_0x8fba('0x8'))('rpc');var config=require(_0x8fba('0x9'));var jayson=require('jayson/promise');var client=jayson[_0x8fba('0xa')][_0x8fba('0xb')]({'port':0x232a});config[_0x8fba('0xc')]=_[_0x8fba('0xd')](config[_0x8fba('0xc')],{'host':_0x8fba('0xe'),'port':0x18eb});var socket=require(_0x8fba('0xf'))(new Redis(config['redis']));require(_0x8fba('0x10'))['register'](socket);function respondWithRpcPromise(_0x352eda,_0x228103,_0x3816fc){return new BPromise(function(_0x139921,_0x47dda0){return client[_0x8fba('0x11')](_0x352eda,_0x3816fc)[_0x8fba('0x12')](function(_0x526513){logger[_0x8fba('0x13')](_0x8fba('0x14'),_0x228103,'request\x20sent');logger['debug'](_0x8fba('0x15'),_0x228103,'request\x20sent',JSON[_0x8fba('0x16')](_0x526513));if(_0x526513[_0x8fba('0x17')]){if(_0x526513[_0x8fba('0x17')][_0x8fba('0x18')]===0x1f4){logger[_0x8fba('0x17')](_0x8fba('0x14'),_0x228103,_0x526513['error']['message']);return _0x47dda0(_0x526513[_0x8fba('0x17')][_0x8fba('0x19')]);}logger[_0x8fba('0x17')](_0x8fba('0x14'),_0x228103,_0x526513[_0x8fba('0x17')][_0x8fba('0x19')]);return _0x139921(_0x526513['error'][_0x8fba('0x19')]);}else{logger[_0x8fba('0x13')](_0x8fba('0x14'),_0x228103,_0x8fba('0x1a'));_0x139921(_0x526513[_0x8fba('0x1b')][_0x8fba('0x19')]);}})[_0x8fba('0x1c')](function(_0x1e9cf9){logger['error'](_0x8fba('0x14'),_0x228103,_0x1e9cf9);_0x47dda0(_0x1e9cf9);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3bfd=['update','emit','removeListener','register','length','userProfile:','./userProfile.events','save','remove'];(function(_0x266bec,_0x49cc86){var _0x148aa=function(_0x3918bc){while(--_0x3918bc){_0x266bec['push'](_0x266bec['shift']());}};_0x148aa(++_0x49cc86);}(_0x3bfd,0xde));var _0xd3bf=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x3bfd[_0x3dd15e];return _0x231fd0;};'use strict';var UserProfileEvents=require(_0xd3bf('0x0'));var events=[_0xd3bf('0x1'),_0xd3bf('0x2'),_0xd3bf('0x3')];function createListener(_0x49faee,_0x509e7c){return function(_0x288fc6){_0x509e7c[_0xd3bf('0x4')](_0x49faee,_0x288fc6);};}function removeListener(_0x2144cc,_0x17d565){return function(){UserProfileEvents[_0xd3bf('0x5')](_0x2144cc,_0x17d565);};}exports[_0xd3bf('0x6')]=function(_0x3c4855){for(var _0x3fbd45=0x0,_0x4a89a3=events[_0xd3bf('0x7')];_0x3fbd45<_0x4a89a3;_0x3fbd45++){var _0x5deaf9=events[_0x3fbd45];var _0x41da76=createListener(_0xd3bf('0x8')+_0x5deaf9,_0x3c4855);UserProfileEvents['on'](_0x5deaf9,_0x41da76);}};
\ No newline at end of file
+var _0x0a72=['emit','removeListener','length','userProfile:','update'];(function(_0x2361a8,_0x389b91){var _0x50a261=function(_0x499241){while(--_0x499241){_0x2361a8['push'](_0x2361a8['shift']());}};_0x50a261(++_0x389b91);}(_0x0a72,0xea));var _0x20a7=function(_0x501510,_0x61caa9){_0x501510=_0x501510-0x0;var _0x1e6ee5=_0x0a72[_0x501510];return _0x1e6ee5;};'use strict';var UserProfileEvents=require('./userProfile.events');var events=['save','remove',_0x20a7('0x0')];function createListener(_0x336c06,_0x8ae54a){return function(_0x492c62){_0x8ae54a[_0x20a7('0x1')](_0x336c06,_0x492c62);};}function removeListener(_0x4171bf,_0x6e6058){return function(){UserProfileEvents[_0x20a7('0x2')](_0x4171bf,_0x6e6058);};}exports['register']=function(_0x1ebec9){for(var _0x4b4eb9=0x0,_0x5db46f=events[_0x20a7('0x3')];_0x4b4eb9<_0x5db46f;_0x4b4eb9++){var _0xe3dbe6=events[_0x4b4eb9];var _0x176c45=createListener(_0x20a7('0x4')+_0xe3dbe6,_0x1ebec9);UserProfileEvents['on'](_0xe3dbe6,_0x176c45);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7c6d=['Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','index','get','/describe','isAuthenticated','/:id','post','create','put','update','delete','destroy','exports','util','path','connect-timeout','express'];(function(_0x4fae39,_0x20183b){var _0x3b86d0=function(_0x436a03){while(--_0x436a03){_0x4fae39['push'](_0x4fae39['shift']());}};_0x3b86d0(++_0x20183b);}(_0x7c6d,0x1ca));var _0xd7c6=function(_0xc0a3d3,_0x2c8d00){_0xc0a3d3=_0xc0a3d3-0x0;var _0x3386e8=_0x7c6d[_0xc0a3d3];return _0x3386e8;};'use strict';var multer=require('multer');var util=require(_0xd7c6('0x0'));var path=require(_0xd7c6('0x1'));var timeout=require(_0xd7c6('0x2'));var express=require(_0xd7c6('0x3'));var router=express[_0xd7c6('0x4')]();var fs_extra=require(_0xd7c6('0x5'));var auth=require(_0xd7c6('0x6'));var interaction=require(_0xd7c6('0x7'));var config=require(_0xd7c6('0x8'));var controller=require('./userProfileResource.controller');router['get']('/',auth['isAuthenticated'](),controller[_0xd7c6('0x9')]);router[_0xd7c6('0xa')](_0xd7c6('0xb'),auth[_0xd7c6('0xc')](),controller['describe']);router['get'](_0xd7c6('0xd'),auth['isAuthenticated'](),controller['show']);router[_0xd7c6('0xe')]('/',auth[_0xd7c6('0xc')](),controller[_0xd7c6('0xf')]);router[_0xd7c6('0x10')](_0xd7c6('0xd'),auth[_0xd7c6('0xc')](),controller[_0xd7c6('0x11')]);router[_0xd7c6('0x12')](_0xd7c6('0xd'),auth[_0xd7c6('0xc')](),controller[_0xd7c6('0x13')]);module[_0xd7c6('0x14')]=router;
\ No newline at end of file
+var _0x5282=['destroy','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./userProfileResource.controller','index','get','isAuthenticated','describe','/:id','show','post','create','put'];(function(_0x3cd067,_0x28233f){var _0xc52724=function(_0x3534a3){while(--_0x3534a3){_0x3cd067['push'](_0x3cd067['shift']());}};_0xc52724(++_0x28233f);}(_0x5282,0x9c));var _0x2528=function(_0x478c8a,_0x9afc92){_0x478c8a=_0x478c8a-0x0;var _0x3b6b3e=_0x5282[_0x478c8a];return _0x3b6b3e;};'use strict';var multer=require(_0x2528('0x0'));var util=require(_0x2528('0x1'));var path=require(_0x2528('0x2'));var timeout=require(_0x2528('0x3'));var express=require(_0x2528('0x4'));var router=express[_0x2528('0x5')]();var fs_extra=require(_0x2528('0x6'));var auth=require(_0x2528('0x7'));var interaction=require(_0x2528('0x8'));var config=require(_0x2528('0x9'));var controller=require(_0x2528('0xa'));router['get']('/',auth['isAuthenticated'](),controller[_0x2528('0xb')]);router[_0x2528('0xc')]('/describe',auth[_0x2528('0xd')](),controller[_0x2528('0xe')]);router[_0x2528('0xc')](_0x2528('0xf'),auth[_0x2528('0xd')](),controller[_0x2528('0x10')]);router[_0x2528('0x11')]('/',auth[_0x2528('0xd')](),controller[_0x2528('0x12')]);router[_0x2528('0x13')](_0x2528('0xf'),auth[_0x2528('0xd')](),controller['update']);router['delete'](_0x2528('0xf'),auth[_0x2528('0xd')](),controller[_0x2528('0x14')]);module[_0x2528('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf78f=['sequelize','STRING','INTEGER'];(function(_0x3b2369,_0x4c68b9){var _0x5a1367=function(_0x58ddcf){while(--_0x58ddcf){_0x3b2369['push'](_0x3b2369['shift']());}};_0x5a1367(++_0x4c68b9);}(_0xf78f,0x105));var _0xff78=function(_0x1d0057,_0x404757){_0x1d0057=_0x1d0057-0x0;var _0x102c37=_0xf78f[_0x1d0057];return _0x102c37;};'use strict';var Sequelize=require(_0xff78('0x0'));module['exports']={'name':{'type':Sequelize[_0xff78('0x1')],'allowNull':![]},'resourceId':{'type':Sequelize[_0xff78('0x2')],'allowNull':![]},'type':{'type':Sequelize[_0xff78('0x1')],'allowNull':![]}};
\ No newline at end of file
+var _0x364b=['sequelize','STRING'];(function(_0x119b96,_0x587acd){var _0x516cbf=function(_0x5d4b36){while(--_0x5d4b36){_0x119b96['push'](_0x119b96['shift']());}};_0x516cbf(++_0x587acd);}(_0x364b,0x1ae));var _0xb364=function(_0x1d2d04,_0x231c57){_0x1d2d04=_0x1d2d04-0x0;var _0x3d405f=_0x364b[_0x1d2d04];return _0x3d405f;};'use strict';var Sequelize=require(_0xb364('0x0'));module['exports']={'name':{'type':Sequelize['STRING'],'allowNull':![]},'resourceId':{'type':Sequelize['INTEGER'],'allowNull':![]},'type':{'type':Sequelize[_0xb364('0x1')],'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc6ac=['filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','findAll','rows','show','params','includeAll','include','find','catch','create','body','update','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','json','limit','undefined','count','offset','set','Content-Range','apply','reject','save','then','destroy','end','error','name','send','UserProfileResource','rawAttributes','fieldName','type','key','map','query','keys'];(function(_0x1d7037,_0x57dd95){var _0x4d6568=function(_0x5c64c5){while(--_0x5c64c5){_0x1d7037['push'](_0x1d7037['shift']());}};_0x4d6568(++_0x57dd95);}(_0xc6ac,0x15b));var _0xcc6a=function(_0x15551d,_0x38d941){_0x15551d=_0x15551d-0x0;var _0x66baa8=_0xc6ac[_0x15551d];return _0x66baa8;};'use strict';var emlformat=require(_0xcc6a('0x0'));var rimraf=require(_0xcc6a('0x1'));var zipdir=require(_0xcc6a('0x2'));var jsonpatch=require(_0xcc6a('0x3'));var rp=require(_0xcc6a('0x4'));var moment=require(_0xcc6a('0x5'));var BPromise=require(_0xcc6a('0x6'));var Mustache=require(_0xcc6a('0x7'));var util=require(_0xcc6a('0x8'));var path=require(_0xcc6a('0x9'));var sox=require(_0xcc6a('0xa'));var csv=require(_0xcc6a('0xb'));var ejs=require(_0xcc6a('0xc'));var fs=require('fs');var fs_extra=require(_0xcc6a('0xd'));var _=require('lodash');var squel=require(_0xcc6a('0xe'));var crypto=require(_0xcc6a('0xf'));var jsforce=require(_0xcc6a('0x10'));var deskjs=require('desk.js');var toCsv=require(_0xcc6a('0xb'));var querystring=require(_0xcc6a('0x11'));var Papa=require(_0xcc6a('0x12'));var Redis=require(_0xcc6a('0x13'));var authService=require(_0xcc6a('0x14'));var qs=require('../../components/parsers/qs');var as=require(_0xcc6a('0x15'));var hardwareService=require(_0xcc6a('0x16'));var logger=require(_0xcc6a('0x17'))('api');var utils=require(_0xcc6a('0x18'));var config=require(_0xcc6a('0x19'));var licenseUtil=require(_0xcc6a('0x1a'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x59ce6d,_0xf0f6d5){_0xf0f6d5=_0xf0f6d5||0xcc;return function(_0x211444){if(_0x211444){return _0x59ce6d[_0xcc6a('0x1b')](_0xf0f6d5);}return _0x59ce6d['status'](_0xf0f6d5)['end']();};}function respondWithResult(_0x369dc1,_0xcb9e2e){_0xcb9e2e=_0xcb9e2e||0xc8;return function(_0x43710d){if(_0x43710d){return _0x369dc1[_0xcc6a('0x1c')](_0xcb9e2e)[_0xcc6a('0x1d')](_0x43710d);}};}function respondWithFilteredResult(_0x337ec5,_0x4133fa){return function(_0x403b18){if(_0x403b18){var _0x56ffb0=typeof _0x4133fa['offset']==='undefined'&&typeof _0x4133fa[_0xcc6a('0x1e')]===_0xcc6a('0x1f');var _0x307f2a=_0x403b18[_0xcc6a('0x20')];var _0x33079c=_0x56ffb0?0x0:_0x4133fa[_0xcc6a('0x21')];var _0x2d9585=_0x56ffb0?_0x403b18[_0xcc6a('0x20')]:_0x4133fa[_0xcc6a('0x21')]+_0x4133fa[_0xcc6a('0x1e')];var _0x1d20a3;if(_0x2d9585>=_0x307f2a){_0x2d9585=_0x307f2a;_0x1d20a3=0xc8;}else{_0x1d20a3=0xce;}_0x337ec5['status'](_0x1d20a3);return _0x337ec5[_0xcc6a('0x22')](_0xcc6a('0x23'),_0x33079c+'-'+_0x2d9585+'/'+_0x307f2a)[_0xcc6a('0x1d')](_0x403b18);}return null;};}function patchUpdates(_0x368a6e){return function(_0x1495d8){try{jsonpatch[_0xcc6a('0x24')](_0x1495d8,_0x368a6e,!![]);}catch(_0x36c80f){return BPromise[_0xcc6a('0x25')](_0x36c80f);}return _0x1495d8[_0xcc6a('0x26')]();};}function saveUpdates(_0x19d32c,_0x329d17){return function(_0x845088){if(_0x845088){return _0x845088['update'](_0x19d32c)[_0xcc6a('0x27')](function(_0x3a081e){return _0x3a081e;});}return null;};}function removeEntity(_0x38f812,_0x581aae){return function(_0x10016a){if(_0x10016a){return _0x10016a[_0xcc6a('0x28')]()[_0xcc6a('0x27')](function(){_0x38f812[_0xcc6a('0x1c')](0xcc)[_0xcc6a('0x29')]();});}};}function handleEntityNotFound(_0x5fc697,_0x50abc1){return function(_0x26def8){if(!_0x26def8){_0x5fc697[_0xcc6a('0x1b')](0x194);}return _0x26def8;};}function handleError(_0x3514f3,_0x5f27e5){_0x5f27e5=_0x5f27e5||0x1f4;return function(_0x3afb3a){logger[_0xcc6a('0x2a')](_0x3afb3a['stack']);if(_0x3afb3a[_0xcc6a('0x2b')]){delete _0x3afb3a[_0xcc6a('0x2b')];}_0x3514f3[_0xcc6a('0x1c')](_0x5f27e5)[_0xcc6a('0x2c')](_0x3afb3a);};}exports['index']=function(_0x194aab,_0x3cf14c){var _0x2c6d88={},_0x4f176b={},_0x2590a2={'count':0x0,'rows':[]};var _0x5308d4=_['map'](db[_0xcc6a('0x2d')][_0xcc6a('0x2e')],function(_0x3aa315){return{'name':_0x3aa315[_0xcc6a('0x2f')],'type':_0x3aa315[_0xcc6a('0x30')][_0xcc6a('0x31')]};});_0x4f176b['model']=_[_0xcc6a('0x32')](_0x5308d4,_0xcc6a('0x2b'));_0x4f176b[_0xcc6a('0x33')]=_[_0xcc6a('0x34')](_0x194aab[_0xcc6a('0x33')]);_0x4f176b[_0xcc6a('0x35')]=_[_0xcc6a('0x36')](_0x4f176b[_0xcc6a('0x37')],_0x4f176b['query']);_0x2c6d88[_0xcc6a('0x38')]=_[_0xcc6a('0x36')](_0x4f176b[_0xcc6a('0x37')],qs[_0xcc6a('0x39')](_0x194aab[_0xcc6a('0x33')][_0xcc6a('0x39')]));_0x2c6d88[_0xcc6a('0x38')]=_0x2c6d88['attributes'][_0xcc6a('0x3a')]?_0x2c6d88['attributes']:_0x4f176b['model'];if(!_0x194aab['query'][_0xcc6a('0x3b')](_0xcc6a('0x3c'))){_0x2c6d88[_0xcc6a('0x1e')]=qs[_0xcc6a('0x1e')](_0x194aab[_0xcc6a('0x33')]['limit']);_0x2c6d88['offset']=qs[_0xcc6a('0x21')](_0x194aab[_0xcc6a('0x33')][_0xcc6a('0x21')]);}_0x2c6d88['order']=qs[_0xcc6a('0x3d')](_0x194aab[_0xcc6a('0x33')][_0xcc6a('0x3d')]);_0x2c6d88[_0xcc6a('0x3e')]=qs[_0xcc6a('0x35')](_[_0xcc6a('0x3f')](_0x194aab[_0xcc6a('0x33')],_0x4f176b[_0xcc6a('0x35')]),_0x5308d4);if(_0x194aab[_0xcc6a('0x33')][_0xcc6a('0x40')]){_0x2c6d88[_0xcc6a('0x3e')]=_[_0xcc6a('0x41')](_0x2c6d88[_0xcc6a('0x3e')],{'$or':_[_0xcc6a('0x32')](_0x5308d4,function(_0x262a1e){if(_0x262a1e[_0xcc6a('0x30')]!==_0xcc6a('0x42')){var _0x386cbc={};_0x386cbc[_0x262a1e['name']]={'$like':'%'+_0x194aab['query'][_0xcc6a('0x40')]+'%'};return _0x386cbc;}})});}_0x2c6d88=_[_0xcc6a('0x41')]({},_0x2c6d88,_0x194aab[_0xcc6a('0x43')]);var _0x1fd8e1={'where':_0x2c6d88[_0xcc6a('0x3e')]};return db[_0xcc6a('0x2d')][_0xcc6a('0x20')](_0x1fd8e1)[_0xcc6a('0x27')](function(_0x49b65c){_0x2590a2['count']=_0x49b65c;if(_0x194aab[_0xcc6a('0x33')]['includeAll']){_0x2c6d88['include']=[{'all':!![]}];}return db['UserProfileResource'][_0xcc6a('0x44')](_0x2c6d88);})[_0xcc6a('0x27')](function(_0xb42897){_0x2590a2[_0xcc6a('0x45')]=_0xb42897;return _0x2590a2;})[_0xcc6a('0x27')](respondWithFilteredResult(_0x3cf14c,_0x2c6d88))['catch'](handleError(_0x3cf14c,null));};exports[_0xcc6a('0x46')]=function(_0xfbb079,_0x17e5a0){var _0x2f966f={'raw':![],'where':{'id':_0xfbb079[_0xcc6a('0x47')]['id']}},_0x14ca90={};_0x14ca90['model']=_[_0xcc6a('0x34')](db[_0xcc6a('0x2d')][_0xcc6a('0x2e')]);_0x14ca90[_0xcc6a('0x33')]=_['keys'](_0xfbb079[_0xcc6a('0x33')]);_0x14ca90['filters']=_[_0xcc6a('0x36')](_0x14ca90[_0xcc6a('0x37')],_0x14ca90[_0xcc6a('0x33')]);_0x2f966f['attributes']=_[_0xcc6a('0x36')](_0x14ca90[_0xcc6a('0x37')],qs[_0xcc6a('0x39')](_0xfbb079['query']['fields']));_0x2f966f[_0xcc6a('0x38')]=_0x2f966f[_0xcc6a('0x38')][_0xcc6a('0x3a')]?_0x2f966f[_0xcc6a('0x38')]:_0x14ca90[_0xcc6a('0x37')];if(_0xfbb079['query'][_0xcc6a('0x48')]){_0x2f966f[_0xcc6a('0x49')]=[{'all':!![]}];}_0x2f966f=_['merge']({},_0x2f966f,_0xfbb079[_0xcc6a('0x43')]);return db[_0xcc6a('0x2d')][_0xcc6a('0x4a')](_0x2f966f)[_0xcc6a('0x27')](handleEntityNotFound(_0x17e5a0,null))[_0xcc6a('0x27')](respondWithResult(_0x17e5a0,null))[_0xcc6a('0x4b')](handleError(_0x17e5a0,null));};exports['create']=function(_0x4e1a0b,_0x47c999){return db[_0xcc6a('0x2d')][_0xcc6a('0x4c')](_0x4e1a0b[_0xcc6a('0x4d')],{})[_0xcc6a('0x27')](respondWithResult(_0x47c999,0xc9))['catch'](handleError(_0x47c999,null));};exports[_0xcc6a('0x4e')]=function(_0x5e7bab,_0x3aa7dd){if(_0x5e7bab[_0xcc6a('0x4d')]['id']){delete _0x5e7bab[_0xcc6a('0x4d')]['id'];}return db[_0xcc6a('0x2d')][_0xcc6a('0x4a')]({'where':{'id':_0x5e7bab[_0xcc6a('0x47')]['id']}})['then'](handleEntityNotFound(_0x3aa7dd,null))[_0xcc6a('0x27')](saveUpdates(_0x5e7bab[_0xcc6a('0x4d')],null))[_0xcc6a('0x27')](respondWithResult(_0x3aa7dd,null))[_0xcc6a('0x4b')](handleError(_0x3aa7dd,null));};exports[_0xcc6a('0x28')]=function(_0x362bf6,_0x431684){return db[_0xcc6a('0x2d')][_0xcc6a('0x4a')]({'where':{'id':_0x362bf6[_0xcc6a('0x47')]['id']}})['then'](handleEntityNotFound(_0x431684,null))[_0xcc6a('0x27')](removeEntity(_0x431684,null))[_0xcc6a('0x4b')](handleError(_0x431684,null));};exports[_0xcc6a('0x4f')]=function(_0x34531d,_0x14f5e5){return db[_0xcc6a('0x2d')]['describe']()['then'](respondWithResult(_0x14f5e5,null))[_0xcc6a('0x4b')](handleError(_0x14f5e5,null));};
\ No newline at end of file
+var _0xdb28=['index','UserProfileResource','fieldName','type','key','map','query','keys','model','fields','attributes','length','nolimit','order','sort','filters','filter','where','VIRTUAL','merge','options','includeAll','findAll','rows','catch','show','params','rawAttributes','intersection','include','find','create','body','describe','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','to-csv','ejs','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','count','limit','set','apply','save','update','then','sendStatus','error','stack','name','send'];(function(_0x2e9ded,_0x235e2b){var _0xc88a61=function(_0x1baa4b){while(--_0x1baa4b){_0x2e9ded['push'](_0x2e9ded['shift']());}};_0xc88a61(++_0x235e2b);}(_0xdb28,0x106));var _0x8db2=function(_0x3fe174,_0x3b0c5d){_0x3fe174=_0x3fe174-0x0;var _0x5f3784=_0xdb28[_0x3fe174];return _0x5f3784;};'use strict';var emlformat=require(_0x8db2('0x0'));var rimraf=require(_0x8db2('0x1'));var zipdir=require(_0x8db2('0x2'));var jsonpatch=require(_0x8db2('0x3'));var rp=require('request-promise');var moment=require(_0x8db2('0x4'));var BPromise=require(_0x8db2('0x5'));var Mustache=require(_0x8db2('0x6'));var util=require(_0x8db2('0x7'));var path=require(_0x8db2('0x8'));var sox=require('sox');var csv=require(_0x8db2('0x9'));var ejs=require(_0x8db2('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x8db2('0xb'));var crypto=require(_0x8db2('0xc'));var jsforce=require(_0x8db2('0xd'));var deskjs=require(_0x8db2('0xe'));var toCsv=require(_0x8db2('0x9'));var querystring=require(_0x8db2('0xf'));var Papa=require(_0x8db2('0x10'));var Redis=require('ioredis');var authService=require(_0x8db2('0x11'));var qs=require(_0x8db2('0x12'));var as=require(_0x8db2('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x8db2('0x14'))(_0x8db2('0x15'));var utils=require('../../config/utils');var config=require(_0x8db2('0x16'));var licenseUtil=require(_0x8db2('0x17'));var db=require(_0x8db2('0x18'))['db'];function respondWithStatusCode(_0x204f49,_0x37d017){_0x37d017=_0x37d017||0xcc;return function(_0x559fb1){if(_0x559fb1){return _0x204f49['sendStatus'](_0x37d017);}return _0x204f49[_0x8db2('0x19')](_0x37d017)[_0x8db2('0x1a')]();};}function respondWithResult(_0x350d61,_0x1d6a15){_0x1d6a15=_0x1d6a15||0xc8;return function(_0x227355){if(_0x227355){return _0x350d61[_0x8db2('0x19')](_0x1d6a15)[_0x8db2('0x1b')](_0x227355);}};}function respondWithFilteredResult(_0x3c96a7,_0x131252){return function(_0x16c8c2){if(_0x16c8c2){var _0x5489a9=typeof _0x131252[_0x8db2('0x1c')]===_0x8db2('0x1d')&&typeof _0x131252['limit']===_0x8db2('0x1d');var _0x44957d=_0x16c8c2[_0x8db2('0x1e')];var _0x3fddc2=_0x5489a9?0x0:_0x131252[_0x8db2('0x1c')];var _0x46ce14=_0x5489a9?_0x16c8c2['count']:_0x131252['offset']+_0x131252[_0x8db2('0x1f')];var _0x104e33;if(_0x46ce14>=_0x44957d){_0x46ce14=_0x44957d;_0x104e33=0xc8;}else{_0x104e33=0xce;}_0x3c96a7[_0x8db2('0x19')](_0x104e33);return _0x3c96a7[_0x8db2('0x20')]('Content-Range',_0x3fddc2+'-'+_0x46ce14+'/'+_0x44957d)[_0x8db2('0x1b')](_0x16c8c2);}return null;};}function patchUpdates(_0x36a9ff){return function(_0x260940){try{jsonpatch[_0x8db2('0x21')](_0x260940,_0x36a9ff,!![]);}catch(_0x3dbe8e){return BPromise['reject'](_0x3dbe8e);}return _0x260940[_0x8db2('0x22')]();};}function saveUpdates(_0x3e30e6,_0x18f69c){return function(_0x125be2){if(_0x125be2){return _0x125be2[_0x8db2('0x23')](_0x3e30e6)[_0x8db2('0x24')](function(_0x796ec1){return _0x796ec1;});}return null;};}function removeEntity(_0x5c6614,_0x256202){return function(_0x4f6516){if(_0x4f6516){return _0x4f6516['destroy']()['then'](function(){_0x5c6614['status'](0xcc)[_0x8db2('0x1a')]();});}};}function handleEntityNotFound(_0x29b5cd,_0x3be281){return function(_0x2baed0){if(!_0x2baed0){_0x29b5cd[_0x8db2('0x25')](0x194);}return _0x2baed0;};}function handleError(_0x8d4f54,_0x58cd9d){_0x58cd9d=_0x58cd9d||0x1f4;return function(_0x3544ba){logger[_0x8db2('0x26')](_0x3544ba[_0x8db2('0x27')]);if(_0x3544ba[_0x8db2('0x28')]){delete _0x3544ba['name'];}_0x8d4f54[_0x8db2('0x19')](_0x58cd9d)[_0x8db2('0x29')](_0x3544ba);};}exports[_0x8db2('0x2a')]=function(_0x1687ed,_0xbe5ece){var _0x21bae5={},_0xa54ea3={},_0x3124d5={'count':0x0,'rows':[]};var _0xbc5366=_['map'](db[_0x8db2('0x2b')]['rawAttributes'],function(_0x59cb77){return{'name':_0x59cb77[_0x8db2('0x2c')],'type':_0x59cb77[_0x8db2('0x2d')][_0x8db2('0x2e')]};});_0xa54ea3['model']=_[_0x8db2('0x2f')](_0xbc5366,'name');_0xa54ea3[_0x8db2('0x30')]=_[_0x8db2('0x31')](_0x1687ed[_0x8db2('0x30')]);_0xa54ea3['filters']=_['intersection'](_0xa54ea3[_0x8db2('0x32')],_0xa54ea3[_0x8db2('0x30')]);_0x21bae5['attributes']=_['intersection'](_0xa54ea3[_0x8db2('0x32')],qs[_0x8db2('0x33')](_0x1687ed[_0x8db2('0x30')][_0x8db2('0x33')]));_0x21bae5[_0x8db2('0x34')]=_0x21bae5[_0x8db2('0x34')][_0x8db2('0x35')]?_0x21bae5[_0x8db2('0x34')]:_0xa54ea3[_0x8db2('0x32')];if(!_0x1687ed[_0x8db2('0x30')]['hasOwnProperty'](_0x8db2('0x36'))){_0x21bae5[_0x8db2('0x1f')]=qs['limit'](_0x1687ed[_0x8db2('0x30')][_0x8db2('0x1f')]);_0x21bae5['offset']=qs['offset'](_0x1687ed[_0x8db2('0x30')]['offset']);}_0x21bae5[_0x8db2('0x37')]=qs[_0x8db2('0x38')](_0x1687ed[_0x8db2('0x30')][_0x8db2('0x38')]);_0x21bae5['where']=qs[_0x8db2('0x39')](_['pick'](_0x1687ed[_0x8db2('0x30')],_0xa54ea3[_0x8db2('0x39')]),_0xbc5366);if(_0x1687ed[_0x8db2('0x30')][_0x8db2('0x3a')]){_0x21bae5['where']=_['merge'](_0x21bae5[_0x8db2('0x3b')],{'$or':_[_0x8db2('0x2f')](_0xbc5366,function(_0x5dc2b4){if(_0x5dc2b4[_0x8db2('0x2d')]!==_0x8db2('0x3c')){var _0x656dd2={};_0x656dd2[_0x5dc2b4['name']]={'$like':'%'+_0x1687ed[_0x8db2('0x30')][_0x8db2('0x3a')]+'%'};return _0x656dd2;}})});}_0x21bae5=_[_0x8db2('0x3d')]({},_0x21bae5,_0x1687ed[_0x8db2('0x3e')]);var _0x2e6f0c={'where':_0x21bae5[_0x8db2('0x3b')]};return db[_0x8db2('0x2b')][_0x8db2('0x1e')](_0x2e6f0c)[_0x8db2('0x24')](function(_0x63c561){_0x3124d5[_0x8db2('0x1e')]=_0x63c561;if(_0x1687ed[_0x8db2('0x30')][_0x8db2('0x3f')]){_0x21bae5['include']=[{'all':!![]}];}return db[_0x8db2('0x2b')][_0x8db2('0x40')](_0x21bae5);})['then'](function(_0x49a7ae){_0x3124d5[_0x8db2('0x41')]=_0x49a7ae;return _0x3124d5;})['then'](respondWithFilteredResult(_0xbe5ece,_0x21bae5))[_0x8db2('0x42')](handleError(_0xbe5ece,null));};exports[_0x8db2('0x43')]=function(_0x313130,_0x307783){var _0xb4fe2c={'raw':![],'where':{'id':_0x313130[_0x8db2('0x44')]['id']}},_0x30d606={};_0x30d606['model']=_[_0x8db2('0x31')](db[_0x8db2('0x2b')][_0x8db2('0x45')]);_0x30d606[_0x8db2('0x30')]=_['keys'](_0x313130[_0x8db2('0x30')]);_0x30d606[_0x8db2('0x39')]=_[_0x8db2('0x46')](_0x30d606[_0x8db2('0x32')],_0x30d606['query']);_0xb4fe2c[_0x8db2('0x34')]=_['intersection'](_0x30d606[_0x8db2('0x32')],qs[_0x8db2('0x33')](_0x313130[_0x8db2('0x30')]['fields']));_0xb4fe2c['attributes']=_0xb4fe2c[_0x8db2('0x34')]['length']?_0xb4fe2c[_0x8db2('0x34')]:_0x30d606[_0x8db2('0x32')];if(_0x313130[_0x8db2('0x30')][_0x8db2('0x3f')]){_0xb4fe2c[_0x8db2('0x47')]=[{'all':!![]}];}_0xb4fe2c=_[_0x8db2('0x3d')]({},_0xb4fe2c,_0x313130[_0x8db2('0x3e')]);return db[_0x8db2('0x2b')][_0x8db2('0x48')](_0xb4fe2c)[_0x8db2('0x24')](handleEntityNotFound(_0x307783,null))[_0x8db2('0x24')](respondWithResult(_0x307783,null))[_0x8db2('0x42')](handleError(_0x307783,null));};exports['create']=function(_0x449109,_0x2ada52){return db[_0x8db2('0x2b')][_0x8db2('0x49')](_0x449109['body'],{})['then'](respondWithResult(_0x2ada52,0xc9))[_0x8db2('0x42')](handleError(_0x2ada52,null));};exports[_0x8db2('0x23')]=function(_0x164020,_0x4c66e5){if(_0x164020['body']['id']){delete _0x164020['body']['id'];}return db[_0x8db2('0x2b')][_0x8db2('0x48')]({'where':{'id':_0x164020[_0x8db2('0x44')]['id']}})[_0x8db2('0x24')](handleEntityNotFound(_0x4c66e5,null))[_0x8db2('0x24')](saveUpdates(_0x164020[_0x8db2('0x4a')],null))[_0x8db2('0x24')](respondWithResult(_0x4c66e5,null))['catch'](handleError(_0x4c66e5,null));};exports['destroy']=function(_0x3d29bc,_0x18c6ef){return db[_0x8db2('0x2b')][_0x8db2('0x48')]({'where':{'id':_0x3d29bc[_0x8db2('0x44')]['id']}})[_0x8db2('0x24')](handleEntityNotFound(_0x18c6ef,null))[_0x8db2('0x24')](removeEntity(_0x18c6ef,null))[_0x8db2('0x42')](handleError(_0x18c6ef,null));};exports[_0x8db2('0x4b')]=function(_0x426ae0,_0x3bc632){return db[_0x8db2('0x2b')][_0x8db2('0x4b')]()[_0x8db2('0x24')](respondWithResult(_0x3bc632,null))[_0x8db2('0x42')](handleError(_0x3bc632,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x24b0=['../../config/environment','define','UserProfileResource','compositeIndex','resourceId','sectionId','../../config/logger','moment','bluebird','request-promise','path'];(function(_0x4ca815,_0x1e8850){var _0x405abc=function(_0x562d4b){while(--_0x562d4b){_0x4ca815['push'](_0x4ca815['shift']());}};_0x405abc(++_0x1e8850);}(_0x24b0,0x1c9));var _0x024b=function(_0x187660,_0x21ca73){_0x187660=_0x187660-0x0;var _0x382a17=_0x24b0[_0x187660];return _0x382a17;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x024b('0x0'))('api');var moment=require(_0x024b('0x1'));var BPromise=require(_0x024b('0x2'));var rp=require(_0x024b('0x3'));var fs=require('fs');var path=require(_0x024b('0x4'));var rimraf=require('rimraf');var config=require(_0x024b('0x5'));var attributes=require('./userProfileResource.attributes');module['exports']=function(_0x371052,_0x42ee31){return _0x371052[_0x024b('0x6')](_0x024b('0x7'),attributes,{'tableName':'user_profile_has_resources','paranoid':![],'indexes':[{'name':_0x024b('0x8'),'fields':[_0x024b('0x9'),_0x024b('0xa')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x615d=['rimraf','../../config/environment','./userProfileResource.attributes','exports','define','user_profile_has_resources','compositeIndex','resourceId','lodash','../../config/logger','api','moment'];(function(_0x4858cc,_0x234db5){var _0x2d1300=function(_0x5929d0){while(--_0x5929d0){_0x4858cc['push'](_0x4858cc['shift']());}};_0x2d1300(++_0x234db5);}(_0x615d,0xc8));var _0xd615=function(_0x9b9c46,_0x3997a8){_0x9b9c46=_0x9b9c46-0x0;var _0x47ee52=_0x615d[_0x9b9c46];return _0x47ee52;};'use strict';var _=require(_0xd615('0x0'));var util=require('util');var logger=require(_0xd615('0x1'))(_0xd615('0x2'));var moment=require(_0xd615('0x3'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0xd615('0x4'));var config=require(_0xd615('0x5'));var attributes=require(_0xd615('0x6'));module[_0xd615('0x7')]=function(_0x1aa4b8,_0x38d5d){return _0x1aa4b8[_0xd615('0x8')]('UserProfileResource',attributes,{'tableName':_0xd615('0x9'),'paranoid':![],'indexes':[{'name':_0xd615('0xa'),'fields':[_0xd615('0xb'),'sectionId']}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0705=['catch','lodash','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','UserProfileResource,\x20%s,\x20%s','debug','UserProfileResource,\x20%s,\x20%s,\x20%s','stringify','error','code','message','request\x20sent','result'];(function(_0xd356e2,_0x36426d){var _0x121109=function(_0x21690b){while(--_0x21690b){_0xd356e2['push'](_0xd356e2['shift']());}};_0x121109(++_0x36426d);}(_0x0705,0x1dc));var _0x5070=function(_0x7cf8eb,_0x5a470e){_0x7cf8eb=_0x7cf8eb-0x0;var _0x24e417=_0x0705[_0x7cf8eb];return _0x24e417;};'use strict';var _=require(_0x5070('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0x5070('0x1'));var rs=require(_0x5070('0x2'));var fs=require('fs');var Redis=require(_0x5070('0x3'));var db=require(_0x5070('0x4'))['db'];var utils=require(_0x5070('0x5'));var logger=require(_0x5070('0x6'))(_0x5070('0x7'));var config=require(_0x5070('0x8'));var jayson=require(_0x5070('0x9'));var client=jayson[_0x5070('0xa')][_0x5070('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x16bd78,_0x2d445d,_0x1991f7){return new BPromise(function(_0x1af5f3,_0x5f29fc){return client[_0x5070('0xc')](_0x16bd78,_0x1991f7)[_0x5070('0xd')](function(_0x5ac34c){logger[_0x5070('0xe')](_0x5070('0xf'),_0x2d445d,'request\x20sent');logger[_0x5070('0x10')](_0x5070('0x11'),_0x2d445d,'request\x20sent',JSON[_0x5070('0x12')](_0x5ac34c));if(_0x5ac34c['error']){if(_0x5ac34c[_0x5070('0x13')][_0x5070('0x14')]===0x1f4){logger['error']('UserProfileResource,\x20%s,\x20%s',_0x2d445d,_0x5ac34c[_0x5070('0x13')]['message']);return _0x5f29fc(_0x5ac34c['error']['message']);}logger[_0x5070('0x13')]('UserProfileResource,\x20%s,\x20%s',_0x2d445d,_0x5ac34c[_0x5070('0x13')][_0x5070('0x15')]);return _0x1af5f3(_0x5ac34c[_0x5070('0x13')][_0x5070('0x15')]);}else{logger[_0x5070('0xe')](_0x5070('0xf'),_0x2d445d,_0x5070('0x16'));_0x1af5f3(_0x5ac34c[_0x5070('0x17')][_0x5070('0x15')]);}})[_0x5070('0x18')](function(_0x1639af){logger[_0x5070('0x13')](_0x5070('0xf'),_0x2d445d,_0x1639af);_0x5f29fc(_0x1639af);});});}
\ No newline at end of file
+var _0xf0ba=['request\x20sent','debug','UserProfileResource,\x20%s,\x20%s,\x20%s','stringify','error','code','message','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','UserProfileResource,\x20%s,\x20%s'];(function(_0x47c53e,_0x35f7f3){var _0x306afd=function(_0x599636){while(--_0x599636){_0x47c53e['push'](_0x47c53e['shift']());}};_0x306afd(++_0x35f7f3);}(_0xf0ba,0x7a));var _0xaf0b=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xf0ba[_0x20a584];return _0x4b41a8;};'use strict';var _=require(_0xaf0b('0x0'));var util=require(_0xaf0b('0x1'));var moment=require(_0xaf0b('0x2'));var BPromise=require(_0xaf0b('0x3'));var rs=require(_0xaf0b('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xaf0b('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0xaf0b('0x6'))(_0xaf0b('0x7'));var config=require(_0xaf0b('0x8'));var jayson=require(_0xaf0b('0x9'));var client=jayson[_0xaf0b('0xa')][_0xaf0b('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x284ed6,_0x37f348,_0x2693f6){return new BPromise(function(_0x44540f,_0x3f1ae4){return client[_0xaf0b('0xc')](_0x284ed6,_0x2693f6)[_0xaf0b('0xd')](function(_0x1e6284){logger[_0xaf0b('0xe')](_0xaf0b('0xf'),_0x37f348,_0xaf0b('0x10'));logger[_0xaf0b('0x11')](_0xaf0b('0x12'),_0x37f348,'request\x20sent',JSON[_0xaf0b('0x13')](_0x1e6284));if(_0x1e6284['error']){if(_0x1e6284[_0xaf0b('0x14')][_0xaf0b('0x15')]===0x1f4){logger['error'](_0xaf0b('0xf'),_0x37f348,_0x1e6284[_0xaf0b('0x14')][_0xaf0b('0x16')]);return _0x3f1ae4(_0x1e6284[_0xaf0b('0x14')][_0xaf0b('0x16')]);}logger[_0xaf0b('0x14')]('UserProfileResource,\x20%s,\x20%s',_0x37f348,_0x1e6284['error']['message']);return _0x44540f(_0x1e6284['error'][_0xaf0b('0x16')]);}else{logger[_0xaf0b('0xe')](_0xaf0b('0xf'),_0x37f348,_0xaf0b('0x10'));_0x44540f(_0x1e6284['result'][_0xaf0b('0x16')]);}})['catch'](function(_0x4a3cf3){logger[_0xaf0b('0x14')](_0xaf0b('0xf'),_0x37f348,_0x4a3cf3);_0x3f1ae4(_0x4a3cf3);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb741=['fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./userProfileSection.controller','get','isAuthenticated','index','/describe','post','/:id','update','delete','exports','multer','util','path','connect-timeout','express'];(function(_0x454e96,_0x3e5256){var _0x2d5630=function(_0x5b5793){while(--_0x5b5793){_0x454e96['push'](_0x454e96['shift']());}};_0x2d5630(++_0x3e5256);}(_0xb741,0xa6));var _0x1b74=function(_0x3478a1,_0x49b336){_0x3478a1=_0x3478a1-0x0;var _0x1f085a=_0xb741[_0x3478a1];return _0x1f085a;};'use strict';var multer=require(_0x1b74('0x0'));var util=require(_0x1b74('0x1'));var path=require(_0x1b74('0x2'));var timeout=require(_0x1b74('0x3'));var express=require(_0x1b74('0x4'));var router=express['Router']();var fs_extra=require(_0x1b74('0x5'));var auth=require(_0x1b74('0x6'));var interaction=require(_0x1b74('0x7'));var config=require(_0x1b74('0x8'));var controller=require(_0x1b74('0x9'));router[_0x1b74('0xa')]('/',auth[_0x1b74('0xb')](),controller[_0x1b74('0xc')]);router['get'](_0x1b74('0xd'),auth[_0x1b74('0xb')](),controller['describe']);router[_0x1b74('0xa')]('/:id',auth['isAuthenticated'](),controller['show']);router[_0x1b74('0xe')]('/',auth[_0x1b74('0xb')](),controller['create']);router['put'](_0x1b74('0xf'),auth[_0x1b74('0xb')](),controller[_0x1b74('0x10')]);router[_0x1b74('0x11')](_0x1b74('0xf'),auth[_0x1b74('0xb')](),controller['destroy']);module[_0x1b74('0x12')]=router;
\ No newline at end of file
+var _0x18a1=['/describe','describe','create','/:id','update','delete','destroy','exports','multer','util','path','connect-timeout','express','fs-extra','../../components/auth/service','../../config/environment','./userProfileSection.controller','get','isAuthenticated','index'];(function(_0x32660b,_0x4019e7){var _0x5db00e=function(_0x5d5581){while(--_0x5d5581){_0x32660b['push'](_0x32660b['shift']());}};_0x5db00e(++_0x4019e7);}(_0x18a1,0x148));var _0x118a=function(_0x5aa705,_0xbebe0b){_0x5aa705=_0x5aa705-0x0;var _0x533cd4=_0x18a1[_0x5aa705];return _0x533cd4;};'use strict';var multer=require(_0x118a('0x0'));var util=require(_0x118a('0x1'));var path=require(_0x118a('0x2'));var timeout=require(_0x118a('0x3'));var express=require(_0x118a('0x4'));var router=express['Router']();var fs_extra=require(_0x118a('0x5'));var auth=require(_0x118a('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0x118a('0x7'));var controller=require(_0x118a('0x8'));router[_0x118a('0x9')]('/',auth[_0x118a('0xa')](),controller[_0x118a('0xb')]);router[_0x118a('0x9')](_0x118a('0xc'),auth['isAuthenticated'](),controller[_0x118a('0xd')]);router[_0x118a('0x9')]('/:id',auth[_0x118a('0xa')](),controller['show']);router['post']('/',auth['isAuthenticated'](),controller[_0x118a('0xe')]);router['put'](_0x118a('0xf'),auth['isAuthenticated'](),controller[_0x118a('0x10')]);router[_0x118a('0x11')](_0x118a('0xf'),auth[_0x118a('0xa')](),controller[_0x118a('0x12')]);module[_0x118a('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9348=['exports','STRING','INTEGER','BOOLEAN','setDataValue','crudPermissions','join','getDataValue','split','sequelize'];(function(_0x3a7a34,_0x3da3d2){var _0x3cb01d=function(_0x41dd61){while(--_0x41dd61){_0x3a7a34['push'](_0x3a7a34['shift']());}};_0x3cb01d(++_0x3da3d2);}(_0x9348,0x10d));var _0x8934=function(_0x343fcd,_0x3584ed){_0x343fcd=_0x343fcd-0x0;var _0xfeb398=_0x9348[_0x343fcd];return _0xfeb398;};'use strict';var Sequelize=require(_0x8934('0x0'));module[_0x8934('0x1')]={'name':{'type':Sequelize[_0x8934('0x2')],'allowNull':![]},'category':{'type':Sequelize[_0x8934('0x2')],'allowNull':![]},'sectionId':{'type':Sequelize[_0x8934('0x3')],'allowNull':![]},'enabled':{'type':Sequelize['BOOLEAN'],'defaultValue':null},'autoAssociation':{'type':Sequelize[_0x8934('0x4')],'defaultValue':null},'crudPermissions':{'type':Sequelize[_0x8934('0x2')],'set':function(_0x5f34d7){this[_0x8934('0x5')](_0x8934('0x6'),_0x5f34d7?_0x5f34d7[_0x8934('0x7')](''):[]);},'get':function(){return this[_0x8934('0x8')](_0x8934('0x6'))?this[_0x8934('0x8')]('crudPermissions')[_0x8934('0x9')](''):[];}}};
\ No newline at end of file
+var _0x5eb8=['STRING','INTEGER','BOOLEAN','setDataValue','crudPermissions','join','getDataValue','split'];(function(_0x34f24c,_0x1a7fdb){var _0x82df82=function(_0x378d41){while(--_0x378d41){_0x34f24c['push'](_0x34f24c['shift']());}};_0x82df82(++_0x1a7fdb);}(_0x5eb8,0xb0));var _0x85eb=function(_0x2bfe52,_0x43946e){_0x2bfe52=_0x2bfe52-0x0;var _0x1cf649=_0x5eb8[_0x2bfe52];return _0x1cf649;};'use strict';var Sequelize=require('sequelize');module['exports']={'name':{'type':Sequelize[_0x85eb('0x0')],'allowNull':![]},'category':{'type':Sequelize[_0x85eb('0x0')],'allowNull':![]},'sectionId':{'type':Sequelize[_0x85eb('0x1')],'allowNull':![]},'enabled':{'type':Sequelize[_0x85eb('0x2')],'defaultValue':null},'autoAssociation':{'type':Sequelize[_0x85eb('0x2')],'defaultValue':null},'crudPermissions':{'type':Sequelize[_0x85eb('0x0')],'set':function(_0x13b1df){this[_0x85eb('0x3')](_0x85eb('0x4'),_0x13b1df?_0x13b1df[_0x85eb('0x5')](''):[]);},'get':function(){return this[_0x85eb('0x6')](_0x85eb('0x4'))?this['getDataValue'](_0x85eb('0x4'))[_0x85eb('0x7')](''):[];}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x85d7=['where','VIRTUAL','filter','options','UserProfileSection','include','findAll','rows','show','params','length','includeAll','find','create','body','catch','destroy','describe','rimraf','zip-dir','fast-json-patch','moment','mustache','util','path','sox','to-csv','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','undefined','limit','count','set','apply','save','update','then','error','stack','name','send','index','map','rawAttributes','fieldName','type','query','keys','filters','intersection','attributes','model','fields','order','sort','pick','merge'];(function(_0x511ee4,_0x40ddc5){var _0x4280ed=function(_0x453e2f){while(--_0x453e2f){_0x511ee4['push'](_0x511ee4['shift']());}};_0x4280ed(++_0x40ddc5);}(_0x85d7,0x1d4));var _0x785d=function(_0x58dc03,_0x1c0b28){_0x58dc03=_0x58dc03-0x0;var _0x2f14bb=_0x85d7[_0x58dc03];return _0x2f14bb;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x785d('0x0'));var zipdir=require(_0x785d('0x1'));var jsonpatch=require(_0x785d('0x2'));var rp=require('request-promise');var moment=require(_0x785d('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x785d('0x4'));var util=require(_0x785d('0x5'));var path=require(_0x785d('0x6'));var sox=require(_0x785d('0x7'));var csv=require(_0x785d('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x785d('0x9'));var _=require(_0x785d('0xa'));var squel=require('squel');var crypto=require(_0x785d('0xb'));var jsforce=require(_0x785d('0xc'));var deskjs=require(_0x785d('0xd'));var toCsv=require(_0x785d('0x8'));var querystring=require(_0x785d('0xe'));var Papa=require(_0x785d('0xf'));var Redis=require(_0x785d('0x10'));var authService=require(_0x785d('0x11'));var qs=require(_0x785d('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x785d('0x13'));var logger=require('../../config/logger')(_0x785d('0x14'));var utils=require('../../config/utils');var config=require(_0x785d('0x15'));var licenseUtil=require(_0x785d('0x16'));var db=require(_0x785d('0x17'))['db'];function respondWithStatusCode(_0x10279f,_0x1548f6){_0x1548f6=_0x1548f6||0xcc;return function(_0x59afc3){if(_0x59afc3){return _0x10279f[_0x785d('0x18')](_0x1548f6);}return _0x10279f['status'](_0x1548f6)[_0x785d('0x19')]();};}function respondWithResult(_0x34134d,_0xbeb039){_0xbeb039=_0xbeb039||0xc8;return function(_0x43f87e){if(_0x43f87e){return _0x34134d[_0x785d('0x1a')](_0xbeb039)[_0x785d('0x1b')](_0x43f87e);}};}function respondWithFilteredResult(_0x1589dc,_0x92388e){return function(_0x47be66){if(_0x47be66){var _0xcab680=typeof _0x92388e[_0x785d('0x1c')]===_0x785d('0x1d')&&typeof _0x92388e[_0x785d('0x1e')]===_0x785d('0x1d');var _0x484ca1=_0x47be66[_0x785d('0x1f')];var _0x22d749=_0xcab680?0x0:_0x92388e[_0x785d('0x1c')];var _0x3355df=_0xcab680?_0x47be66[_0x785d('0x1f')]:_0x92388e[_0x785d('0x1c')]+_0x92388e[_0x785d('0x1e')];var _0x19bdde;if(_0x3355df>=_0x484ca1){_0x3355df=_0x484ca1;_0x19bdde=0xc8;}else{_0x19bdde=0xce;}_0x1589dc[_0x785d('0x1a')](_0x19bdde);return _0x1589dc[_0x785d('0x20')]('Content-Range',_0x22d749+'-'+_0x3355df+'/'+_0x484ca1)[_0x785d('0x1b')](_0x47be66);}return null;};}function patchUpdates(_0x273820){return function(_0x3e60e5){try{jsonpatch[_0x785d('0x21')](_0x3e60e5,_0x273820,!![]);}catch(_0x24f39b){return BPromise['reject'](_0x24f39b);}return _0x3e60e5[_0x785d('0x22')]();};}function saveUpdates(_0x38b4d0,_0x40e244){return function(_0x2545bd){if(_0x2545bd){return _0x2545bd[_0x785d('0x23')](_0x38b4d0)[_0x785d('0x24')](function(_0x1a62c8){return _0x1a62c8;});}return null;};}function removeEntity(_0x2bac53,_0xa3c97b){return function(_0x1fe2c8){if(_0x1fe2c8){return _0x1fe2c8['destroy']()[_0x785d('0x24')](function(){_0x2bac53[_0x785d('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4d78ed,_0x2f28fa){return function(_0xfa47e6){if(!_0xfa47e6){_0x4d78ed[_0x785d('0x18')](0x194);}return _0xfa47e6;};}function handleError(_0x84845a,_0x622e5e){_0x622e5e=_0x622e5e||0x1f4;return function(_0x54a945){logger[_0x785d('0x25')](_0x54a945[_0x785d('0x26')]);if(_0x54a945['name']){delete _0x54a945[_0x785d('0x27')];}_0x84845a[_0x785d('0x1a')](_0x622e5e)[_0x785d('0x28')](_0x54a945);};}exports[_0x785d('0x29')]=function(_0x3a10a2,_0x5ea564){var _0x67bd29={},_0x294821={},_0x1b2a77={'count':0x0,'rows':[]};var _0x207739=_[_0x785d('0x2a')](db['UserProfileSection'][_0x785d('0x2b')],function(_0x21a22a){return{'name':_0x21a22a[_0x785d('0x2c')],'type':_0x21a22a[_0x785d('0x2d')]['key']};});_0x294821['model']=_[_0x785d('0x2a')](_0x207739,_0x785d('0x27'));_0x294821[_0x785d('0x2e')]=_[_0x785d('0x2f')](_0x3a10a2[_0x785d('0x2e')]);_0x294821[_0x785d('0x30')]=_[_0x785d('0x31')](_0x294821['model'],_0x294821[_0x785d('0x2e')]);_0x67bd29[_0x785d('0x32')]=_[_0x785d('0x31')](_0x294821[_0x785d('0x33')],qs[_0x785d('0x34')](_0x3a10a2['query'][_0x785d('0x34')]));_0x67bd29['attributes']=_0x67bd29[_0x785d('0x32')]['length']?_0x67bd29[_0x785d('0x32')]:_0x294821['model'];if(!_0x3a10a2['query']['hasOwnProperty']('nolimit')){_0x67bd29[_0x785d('0x1e')]=qs[_0x785d('0x1e')](_0x3a10a2[_0x785d('0x2e')][_0x785d('0x1e')]);_0x67bd29[_0x785d('0x1c')]=qs[_0x785d('0x1c')](_0x3a10a2[_0x785d('0x2e')][_0x785d('0x1c')]);}_0x67bd29[_0x785d('0x35')]=qs['sort'](_0x3a10a2[_0x785d('0x2e')][_0x785d('0x36')]);_0x67bd29['where']=qs[_0x785d('0x30')](_[_0x785d('0x37')](_0x3a10a2[_0x785d('0x2e')],_0x294821[_0x785d('0x30')]),_0x207739);if(_0x3a10a2[_0x785d('0x2e')]['filter']){_0x67bd29['where']=_[_0x785d('0x38')](_0x67bd29[_0x785d('0x39')],{'$or':_[_0x785d('0x2a')](_0x207739,function(_0x171988){if(_0x171988[_0x785d('0x2d')]!==_0x785d('0x3a')){var _0x4ce70d={};_0x4ce70d[_0x171988['name']]={'$like':'%'+_0x3a10a2[_0x785d('0x2e')][_0x785d('0x3b')]+'%'};return _0x4ce70d;}})});}_0x67bd29=_[_0x785d('0x38')]({},_0x67bd29,_0x3a10a2[_0x785d('0x3c')]);var _0x435c3d={'where':_0x67bd29[_0x785d('0x39')]};return db[_0x785d('0x3d')]['count'](_0x435c3d)['then'](function(_0x2f925a){_0x1b2a77[_0x785d('0x1f')]=_0x2f925a;if(_0x3a10a2[_0x785d('0x2e')]['includeAll']){_0x67bd29[_0x785d('0x3e')]=[{'all':!![]}];}return db[_0x785d('0x3d')][_0x785d('0x3f')](_0x67bd29);})['then'](function(_0x4706b4){_0x1b2a77[_0x785d('0x40')]=_0x4706b4;return _0x1b2a77;})[_0x785d('0x24')](respondWithFilteredResult(_0x5ea564,_0x67bd29))['catch'](handleError(_0x5ea564,null));};exports[_0x785d('0x41')]=function(_0x3da0d9,_0x11c297){var _0x187d93={'raw':![],'where':{'id':_0x3da0d9[_0x785d('0x42')]['id']}},_0x26df53={};_0x26df53['model']=_[_0x785d('0x2f')](db[_0x785d('0x3d')][_0x785d('0x2b')]);_0x26df53[_0x785d('0x2e')]=_[_0x785d('0x2f')](_0x3da0d9[_0x785d('0x2e')]);_0x26df53[_0x785d('0x30')]=_[_0x785d('0x31')](_0x26df53['model'],_0x26df53[_0x785d('0x2e')]);_0x187d93[_0x785d('0x32')]=_[_0x785d('0x31')](_0x26df53[_0x785d('0x33')],qs['fields'](_0x3da0d9[_0x785d('0x2e')][_0x785d('0x34')]));_0x187d93[_0x785d('0x32')]=_0x187d93['attributes'][_0x785d('0x43')]?_0x187d93[_0x785d('0x32')]:_0x26df53[_0x785d('0x33')];if(_0x3da0d9[_0x785d('0x2e')][_0x785d('0x44')]){_0x187d93['include']=[{'all':!![]}];}_0x187d93=_[_0x785d('0x38')]({},_0x187d93,_0x3da0d9['options']);return db[_0x785d('0x3d')][_0x785d('0x45')](_0x187d93)[_0x785d('0x24')](handleEntityNotFound(_0x11c297,null))['then'](respondWithResult(_0x11c297,null))['catch'](handleError(_0x11c297,null));};exports[_0x785d('0x46')]=function(_0x207064,_0x35e4fa){return db[_0x785d('0x3d')][_0x785d('0x46')](_0x207064[_0x785d('0x47')],{})['then'](respondWithResult(_0x35e4fa,0xc9))[_0x785d('0x48')](handleError(_0x35e4fa,null));};exports[_0x785d('0x23')]=function(_0x25dfd8,_0x4742ea){if(_0x25dfd8[_0x785d('0x47')]['id']){delete _0x25dfd8[_0x785d('0x47')]['id'];}return db[_0x785d('0x3d')]['find']({'where':{'id':_0x25dfd8[_0x785d('0x42')]['id']}})['then'](handleEntityNotFound(_0x4742ea,null))['then'](saveUpdates(_0x25dfd8[_0x785d('0x47')],null))[_0x785d('0x24')](respondWithResult(_0x4742ea,null))[_0x785d('0x48')](handleError(_0x4742ea,null));};exports[_0x785d('0x49')]=function(_0x108beb,_0x13a7fd){return db[_0x785d('0x3d')]['find']({'where':{'id':_0x108beb['params']['id']}})['then'](handleEntityNotFound(_0x13a7fd,null))[_0x785d('0x24')](removeEntity(_0x13a7fd,null))[_0x785d('0x48')](handleError(_0x13a7fd,null));};exports[_0x785d('0x4a')]=function(_0x5a8d7e,_0x40fc6b){return db[_0x785d('0x3d')][_0x785d('0x4a')]()[_0x785d('0x24')](respondWithResult(_0x40fc6b,null))[_0x785d('0x48')](handleError(_0x40fc6b,null));};
\ No newline at end of file
+var _0x5cd6=['rows','catch','show','keys','fields','find','create','body','params','describe','eml-format','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','to-csv','ejs','fs-extra','squel','crypto','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','end','status','json','offset','undefined','count','limit','set','Content-Range','apply','save','then','destroy','stack','name','map','UserProfileSection','rawAttributes','fieldName','type','key','model','query','intersection','length','attributes','hasOwnProperty','nolimit','order','sort','where','pick','filters','merge','VIRTUAL','filter','options','includeAll','include','findAll'];(function(_0x33e132,_0xed44c){var _0x4af974=function(_0x99f25){while(--_0x99f25){_0x33e132['push'](_0x33e132['shift']());}};_0x4af974(++_0xed44c);}(_0x5cd6,0x9e));var _0x65cd=function(_0x1a8f86,_0x5ed9c4){_0x1a8f86=_0x1a8f86-0x0;var _0x20d876=_0x5cd6[_0x1a8f86];return _0x20d876;};'use strict';var emlformat=require(_0x65cd('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x65cd('0x1'));var jsonpatch=require(_0x65cd('0x2'));var rp=require(_0x65cd('0x3'));var moment=require('moment');var BPromise=require(_0x65cd('0x4'));var Mustache=require(_0x65cd('0x5'));var util=require(_0x65cd('0x6'));var path=require(_0x65cd('0x7'));var sox=require('sox');var csv=require(_0x65cd('0x8'));var ejs=require(_0x65cd('0x9'));var fs=require('fs');var fs_extra=require(_0x65cd('0xa'));var _=require('lodash');var squel=require(_0x65cd('0xb'));var crypto=require(_0x65cd('0xc'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x65cd('0x8'));var querystring=require(_0x65cd('0xd'));var Papa=require(_0x65cd('0xe'));var Redis=require(_0x65cd('0xf'));var authService=require('../../components/auth/service');var qs=require(_0x65cd('0x10'));var as=require(_0x65cd('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x65cd('0x12'))(_0x65cd('0x13'));var utils=require(_0x65cd('0x14'));var config=require(_0x65cd('0x15'));var licenseUtil=require(_0x65cd('0x16'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x26fc66,_0x1dd86a){_0x1dd86a=_0x1dd86a||0xcc;return function(_0xddc90c){if(_0xddc90c){return _0x26fc66[_0x65cd('0x17')](_0x1dd86a);}return _0x26fc66['status'](_0x1dd86a)[_0x65cd('0x18')]();};}function respondWithResult(_0x30bfda,_0xe29102){_0xe29102=_0xe29102||0xc8;return function(_0xd3a811){if(_0xd3a811){return _0x30bfda[_0x65cd('0x19')](_0xe29102)[_0x65cd('0x1a')](_0xd3a811);}};}function respondWithFilteredResult(_0x94538d,_0x850a4c){return function(_0x16c5c0){if(_0x16c5c0){var _0x2028a5=typeof _0x850a4c[_0x65cd('0x1b')]===_0x65cd('0x1c')&&typeof _0x850a4c['limit']===_0x65cd('0x1c');var _0x544fe4=_0x16c5c0[_0x65cd('0x1d')];var _0x5c1ce1=_0x2028a5?0x0:_0x850a4c[_0x65cd('0x1b')];var _0x24701c=_0x2028a5?_0x16c5c0['count']:_0x850a4c[_0x65cd('0x1b')]+_0x850a4c[_0x65cd('0x1e')];var _0x11e3b2;if(_0x24701c>=_0x544fe4){_0x24701c=_0x544fe4;_0x11e3b2=0xc8;}else{_0x11e3b2=0xce;}_0x94538d[_0x65cd('0x19')](_0x11e3b2);return _0x94538d[_0x65cd('0x1f')](_0x65cd('0x20'),_0x5c1ce1+'-'+_0x24701c+'/'+_0x544fe4)[_0x65cd('0x1a')](_0x16c5c0);}return null;};}function patchUpdates(_0x26d09c){return function(_0x1b58f5){try{jsonpatch[_0x65cd('0x21')](_0x1b58f5,_0x26d09c,!![]);}catch(_0x120529){return BPromise['reject'](_0x120529);}return _0x1b58f5[_0x65cd('0x22')]();};}function saveUpdates(_0x4eb6d9,_0x1b842c){return function(_0x508e0b){if(_0x508e0b){return _0x508e0b['update'](_0x4eb6d9)[_0x65cd('0x23')](function(_0x21426a){return _0x21426a;});}return null;};}function removeEntity(_0x7d44fd,_0x5009ca){return function(_0x3f168c){if(_0x3f168c){return _0x3f168c[_0x65cd('0x24')]()['then'](function(){_0x7d44fd['status'](0xcc)[_0x65cd('0x18')]();});}};}function handleEntityNotFound(_0xb98dc7,_0x1eaae7){return function(_0xb34e6e){if(!_0xb34e6e){_0xb98dc7[_0x65cd('0x17')](0x194);}return _0xb34e6e;};}function handleError(_0x5b7e5f,_0x570847){_0x570847=_0x570847||0x1f4;return function(_0x2b16c5){logger['error'](_0x2b16c5[_0x65cd('0x25')]);if(_0x2b16c5[_0x65cd('0x26')]){delete _0x2b16c5[_0x65cd('0x26')];}_0x5b7e5f[_0x65cd('0x19')](_0x570847)['send'](_0x2b16c5);};}exports['index']=function(_0x53734f,_0x42cfee){var _0x1a71f2={},_0x1ebef6={},_0x299d2d={'count':0x0,'rows':[]};var _0x198c58=_[_0x65cd('0x27')](db[_0x65cd('0x28')][_0x65cd('0x29')],function(_0x4c0c83){return{'name':_0x4c0c83[_0x65cd('0x2a')],'type':_0x4c0c83[_0x65cd('0x2b')][_0x65cd('0x2c')]};});_0x1ebef6[_0x65cd('0x2d')]=_[_0x65cd('0x27')](_0x198c58,_0x65cd('0x26'));_0x1ebef6[_0x65cd('0x2e')]=_['keys'](_0x53734f[_0x65cd('0x2e')]);_0x1ebef6['filters']=_[_0x65cd('0x2f')](_0x1ebef6['model'],_0x1ebef6[_0x65cd('0x2e')]);_0x1a71f2['attributes']=_[_0x65cd('0x2f')](_0x1ebef6[_0x65cd('0x2d')],qs['fields'](_0x53734f[_0x65cd('0x2e')]['fields']));_0x1a71f2['attributes']=_0x1a71f2['attributes'][_0x65cd('0x30')]?_0x1a71f2[_0x65cd('0x31')]:_0x1ebef6[_0x65cd('0x2d')];if(!_0x53734f[_0x65cd('0x2e')][_0x65cd('0x32')](_0x65cd('0x33'))){_0x1a71f2[_0x65cd('0x1e')]=qs['limit'](_0x53734f[_0x65cd('0x2e')]['limit']);_0x1a71f2[_0x65cd('0x1b')]=qs['offset'](_0x53734f[_0x65cd('0x2e')][_0x65cd('0x1b')]);}_0x1a71f2[_0x65cd('0x34')]=qs[_0x65cd('0x35')](_0x53734f['query'][_0x65cd('0x35')]);_0x1a71f2[_0x65cd('0x36')]=qs['filters'](_[_0x65cd('0x37')](_0x53734f[_0x65cd('0x2e')],_0x1ebef6[_0x65cd('0x38')]),_0x198c58);if(_0x53734f[_0x65cd('0x2e')]['filter']){_0x1a71f2[_0x65cd('0x36')]=_[_0x65cd('0x39')](_0x1a71f2[_0x65cd('0x36')],{'$or':_['map'](_0x198c58,function(_0x376a88){if(_0x376a88[_0x65cd('0x2b')]!==_0x65cd('0x3a')){var _0x10c373={};_0x10c373[_0x376a88[_0x65cd('0x26')]]={'$like':'%'+_0x53734f[_0x65cd('0x2e')][_0x65cd('0x3b')]+'%'};return _0x10c373;}})});}_0x1a71f2=_[_0x65cd('0x39')]({},_0x1a71f2,_0x53734f[_0x65cd('0x3c')]);var _0x33e217={'where':_0x1a71f2['where']};return db[_0x65cd('0x28')][_0x65cd('0x1d')](_0x33e217)[_0x65cd('0x23')](function(_0x3ff516){_0x299d2d[_0x65cd('0x1d')]=_0x3ff516;if(_0x53734f[_0x65cd('0x2e')][_0x65cd('0x3d')]){_0x1a71f2[_0x65cd('0x3e')]=[{'all':!![]}];}return db[_0x65cd('0x28')][_0x65cd('0x3f')](_0x1a71f2);})[_0x65cd('0x23')](function(_0x4693bc){_0x299d2d[_0x65cd('0x40')]=_0x4693bc;return _0x299d2d;})[_0x65cd('0x23')](respondWithFilteredResult(_0x42cfee,_0x1a71f2))[_0x65cd('0x41')](handleError(_0x42cfee,null));};exports[_0x65cd('0x42')]=function(_0x301a74,_0xf8b5a8){var _0x2df5b7={'raw':![],'where':{'id':_0x301a74['params']['id']}},_0x5ec400={};_0x5ec400[_0x65cd('0x2d')]=_[_0x65cd('0x43')](db['UserProfileSection'][_0x65cd('0x29')]);_0x5ec400[_0x65cd('0x2e')]=_[_0x65cd('0x43')](_0x301a74[_0x65cd('0x2e')]);_0x5ec400[_0x65cd('0x38')]=_[_0x65cd('0x2f')](_0x5ec400[_0x65cd('0x2d')],_0x5ec400[_0x65cd('0x2e')]);_0x2df5b7[_0x65cd('0x31')]=_[_0x65cd('0x2f')](_0x5ec400[_0x65cd('0x2d')],qs['fields'](_0x301a74[_0x65cd('0x2e')][_0x65cd('0x44')]));_0x2df5b7[_0x65cd('0x31')]=_0x2df5b7['attributes'][_0x65cd('0x30')]?_0x2df5b7[_0x65cd('0x31')]:_0x5ec400['model'];if(_0x301a74[_0x65cd('0x2e')][_0x65cd('0x3d')]){_0x2df5b7['include']=[{'all':!![]}];}_0x2df5b7=_[_0x65cd('0x39')]({},_0x2df5b7,_0x301a74[_0x65cd('0x3c')]);return db['UserProfileSection'][_0x65cd('0x45')](_0x2df5b7)['then'](handleEntityNotFound(_0xf8b5a8,null))[_0x65cd('0x23')](respondWithResult(_0xf8b5a8,null))['catch'](handleError(_0xf8b5a8,null));};exports['create']=function(_0x4b71ce,_0x267e6d){return db[_0x65cd('0x28')][_0x65cd('0x46')](_0x4b71ce[_0x65cd('0x47')],{})[_0x65cd('0x23')](respondWithResult(_0x267e6d,0xc9))[_0x65cd('0x41')](handleError(_0x267e6d,null));};exports['update']=function(_0x1a3b6e,_0xfadde5){if(_0x1a3b6e[_0x65cd('0x47')]['id']){delete _0x1a3b6e['body']['id'];}return db['UserProfileSection'][_0x65cd('0x45')]({'where':{'id':_0x1a3b6e[_0x65cd('0x48')]['id']}})[_0x65cd('0x23')](handleEntityNotFound(_0xfadde5,null))[_0x65cd('0x23')](saveUpdates(_0x1a3b6e[_0x65cd('0x47')],null))['then'](respondWithResult(_0xfadde5,null))['catch'](handleError(_0xfadde5,null));};exports[_0x65cd('0x24')]=function(_0x47cb0a,_0x3b0b74){return db['UserProfileSection'][_0x65cd('0x45')]({'where':{'id':_0x47cb0a[_0x65cd('0x48')]['id']}})['then'](handleEntityNotFound(_0x3b0b74,null))[_0x65cd('0x23')](removeEntity(_0x3b0b74,null))[_0x65cd('0x41')](handleError(_0x3b0b74,null));};exports['describe']=function(_0x28ddcc,_0x2745df){return db[_0x65cd('0x28')][_0x65cd('0x49')]()[_0x65cd('0x23')](respondWithResult(_0x2745df,null))['catch'](handleError(_0x2745df,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc99e=['bluebird','request-promise','path','../../config/environment','./userProfileSection.attributes','define','UserProfileSection','user_profile_has_sections','compositeIndex','../../config/logger','moment'];(function(_0x1012e3,_0x152690){var _0x2d9c74=function(_0x40afe3){while(--_0x40afe3){_0x1012e3['push'](_0x1012e3['shift']());}};_0x2d9c74(++_0x152690);}(_0xc99e,0xc4));var _0xec99=function(_0x385803,_0xf36b8d){_0x385803=_0x385803-0x0;var _0x308bca=_0xc99e[_0x385803];return _0x308bca;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0xec99('0x0'))('api');var moment=require(_0xec99('0x1'));var BPromise=require(_0xec99('0x2'));var rp=require(_0xec99('0x3'));var fs=require('fs');var path=require(_0xec99('0x4'));var rimraf=require('rimraf');var config=require(_0xec99('0x5'));var attributes=require(_0xec99('0x6'));module['exports']=function(_0x295f4b,_0x5aa581){return _0x295f4b[_0xec99('0x7')](_0xec99('0x8'),attributes,{'tableName':_0xec99('0x9'),'paranoid':![],'indexes':[{'name':_0xec99('0xa'),'fields':['sectionId','userProfileId']}],'timestamps':!![]});};
\ No newline at end of file
+var _0xd56c=['sectionId','userProfileId','lodash','util','../../config/logger','moment','path','rimraf','../../config/environment','./userProfileSection.attributes','exports','UserProfileSection','user_profile_has_sections','compositeIndex'];(function(_0x13e79b,_0x4473fe){var _0x46f951=function(_0x14df19){while(--_0x14df19){_0x13e79b['push'](_0x13e79b['shift']());}};_0x46f951(++_0x4473fe);}(_0xd56c,0xb8));var _0xcd56=function(_0xaafdd5,_0x4a4511){_0xaafdd5=_0xaafdd5-0x0;var _0x2aeb78=_0xd56c[_0xaafdd5];return _0x2aeb78;};'use strict';var _=require(_0xcd56('0x0'));var util=require(_0xcd56('0x1'));var logger=require(_0xcd56('0x2'))('api');var moment=require(_0xcd56('0x3'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0xcd56('0x4'));var rimraf=require(_0xcd56('0x5'));var config=require(_0xcd56('0x6'));var attributes=require(_0xcd56('0x7'));module[_0xcd56('0x8')]=function(_0x5c6f73,_0x4ad3f9){return _0x5c6f73['define'](_0xcd56('0x9'),attributes,{'tableName':_0xcd56('0xa'),'paranoid':![],'indexes':[{'name':_0xcd56('0xb'),'fields':[_0xcd56('0xc'),_0xcd56('0xd')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7284=['request','then','info','UserProfileSection,\x20%s,\x20%s','request\x20sent','debug','UserProfileSection,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment'];(function(_0x5927ba,_0x34792d){var _0x1975d6=function(_0x8ba690){while(--_0x8ba690){_0x5927ba['push'](_0x5927ba['shift']());}};_0x1975d6(++_0x34792d);}(_0x7284,0x9f));var _0x4728=function(_0x1ab8b3,_0x3fce91){_0x1ab8b3=_0x1ab8b3-0x0;var _0x377df9=_0x7284[_0x1ab8b3];return _0x377df9;};'use strict';var _=require('lodash');var util=require(_0x4728('0x0'));var moment=require(_0x4728('0x1'));var BPromise=require(_0x4728('0x2'));var rs=require(_0x4728('0x3'));var fs=require('fs');var Redis=require(_0x4728('0x4'));var db=require(_0x4728('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0x4728('0x6'))(_0x4728('0x7'));var config=require(_0x4728('0x8'));var jayson=require('jayson/promise');var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x9e5185,_0x3965a4,_0x5221c6){return new BPromise(function(_0x43a220,_0x4e1dcc){return client[_0x4728('0x9')](_0x9e5185,_0x5221c6)[_0x4728('0xa')](function(_0x4ae0b6){logger[_0x4728('0xb')](_0x4728('0xc'),_0x3965a4,_0x4728('0xd'));logger[_0x4728('0xe')](_0x4728('0xf'),_0x3965a4,_0x4728('0xd'),JSON[_0x4728('0x10')](_0x4ae0b6));if(_0x4ae0b6['error']){if(_0x4ae0b6[_0x4728('0x11')][_0x4728('0x12')]===0x1f4){logger[_0x4728('0x11')](_0x4728('0xc'),_0x3965a4,_0x4ae0b6[_0x4728('0x11')][_0x4728('0x13')]);return _0x4e1dcc(_0x4ae0b6['error'][_0x4728('0x13')]);}logger['error'](_0x4728('0xc'),_0x3965a4,_0x4ae0b6[_0x4728('0x11')][_0x4728('0x13')]);return _0x43a220(_0x4ae0b6[_0x4728('0x11')][_0x4728('0x13')]);}else{logger[_0x4728('0xb')](_0x4728('0xc'),_0x3965a4,_0x4728('0xd'));_0x43a220(_0x4ae0b6[_0x4728('0x14')][_0x4728('0x13')]);}})['catch'](function(_0x51c988){logger['error'](_0x4728('0xc'),_0x3965a4,_0x51c988);_0x4e1dcc(_0x51c988);});});}
\ No newline at end of file
+var _0x7cde=['error','code','message','result','catch','lodash','moment','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','then','info','UserProfileSection,\x20%s,\x20%s','UserProfileSection,\x20%s,\x20%s,\x20%s','request\x20sent','stringify'];(function(_0x851e0c,_0x5d17d3){var _0x56f112=function(_0x17ecd7){while(--_0x17ecd7){_0x851e0c['push'](_0x851e0c['shift']());}};_0x56f112(++_0x5d17d3);}(_0x7cde,0x16a));var _0xe7cd=function(_0x3d2235,_0x247067){_0x3d2235=_0x3d2235-0x0;var _0x2a7938=_0x7cde[_0x3d2235];return _0x2a7938;};'use strict';var _=require(_0xe7cd('0x0'));var util=require('util');var moment=require(_0xe7cd('0x1'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xe7cd('0x2'));var db=require('../../mysqldb')['db'];var utils=require(_0xe7cd('0x3'));var logger=require(_0xe7cd('0x4'))(_0xe7cd('0x5'));var config=require(_0xe7cd('0x6'));var jayson=require(_0xe7cd('0x7'));var client=jayson[_0xe7cd('0x8')][_0xe7cd('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x202078,_0x16e79d,_0x27f595){return new BPromise(function(_0x17f57f,_0x5a8b58){return client['request'](_0x202078,_0x27f595)[_0xe7cd('0xa')](function(_0x3d4a75){logger[_0xe7cd('0xb')](_0xe7cd('0xc'),_0x16e79d,'request\x20sent');logger['debug'](_0xe7cd('0xd'),_0x16e79d,_0xe7cd('0xe'),JSON[_0xe7cd('0xf')](_0x3d4a75));if(_0x3d4a75[_0xe7cd('0x10')]){if(_0x3d4a75[_0xe7cd('0x10')][_0xe7cd('0x11')]===0x1f4){logger['error'](_0xe7cd('0xc'),_0x16e79d,_0x3d4a75['error'][_0xe7cd('0x12')]);return _0x5a8b58(_0x3d4a75['error'][_0xe7cd('0x12')]);}logger[_0xe7cd('0x10')](_0xe7cd('0xc'),_0x16e79d,_0x3d4a75[_0xe7cd('0x10')][_0xe7cd('0x12')]);return _0x17f57f(_0x3d4a75['error'][_0xe7cd('0x12')]);}else{logger[_0xe7cd('0xb')](_0xe7cd('0xc'),_0x16e79d,'request\x20sent');_0x17f57f(_0x3d4a75[_0xe7cd('0x13')]['message']);}})[_0xe7cd('0x14')](function(_0x40f242){logger[_0xe7cd('0x10')](_0xe7cd('0xc'),_0x16e79d,_0x40f242);_0x5a8b58(_0x40f242);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcb91=['express','Router','../../components/auth/service','../../components/interaction/service','exports','path','connect-timeout'];(function(_0x1c1e7c,_0x1dd5f1){var _0xa63a7b=function(_0x5d5040){while(--_0x5d5040){_0x1c1e7c['push'](_0x1c1e7c['shift']());}};_0xa63a7b(++_0x1dd5f1);}(_0xcb91,0x1a9));var _0x1cb9=function(_0x2f0057,_0x448b27){_0x2f0057=_0x2f0057-0x0;var _0x17f2c3=_0xcb91[_0x2f0057];return _0x17f2c3;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x1cb9('0x0'));var timeout=require(_0x1cb9('0x1'));var express=require(_0x1cb9('0x2'));var router=express[_0x1cb9('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x1cb9('0x4'));var interaction=require(_0x1cb9('0x5'));var config=require('../../config/environment');module[_0x1cb9('0x6')]=router;
\ No newline at end of file
+var _0x70e0=['../../components/auth/service','../../components/interaction/service','exports','multer','util','path','Router','fs-extra'];(function(_0x389636,_0x2717b4){var _0x4c013e=function(_0x5a0df2){while(--_0x5a0df2){_0x389636['push'](_0x389636['shift']());}};_0x4c013e(++_0x2717b4);}(_0x70e0,0x17b));var _0x070e=function(_0x2fafd8,_0xfd7f63){_0x2fafd8=_0x2fafd8-0x0;var _0x48c557=_0x70e0[_0x2fafd8];return _0x48c557;};'use strict';var multer=require(_0x070e('0x0'));var util=require(_0x070e('0x1'));var path=require(_0x070e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x070e('0x3')]();var fs_extra=require(_0x070e('0x4'));var auth=require(_0x070e('0x5'));var interaction=require(_0x070e('0x6'));var config=require('../../config/environment');module[_0x070e('0x7')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x164f=['exports','INTEGER'];(function(_0xb5e63b,_0x3de88f){var _0x184f50=function(_0x235c28){while(--_0x235c28){_0xb5e63b['push'](_0xb5e63b['shift']());}};_0x184f50(++_0x3de88f);}(_0x164f,0x186));var _0xf164=function(_0x36435f,_0x3398ba){_0x36435f=_0x36435f-0x0;var _0x1ada4f=_0x164f[_0x36435f];return _0x1ada4f;};'use strict';var Sequelize=require('sequelize');module[_0xf164('0x0')]={'penalty':{'type':Sequelize[_0xf164('0x1')],'defaultValue':0x0}};
\ No newline at end of file
+var _0x2599=['exports','sequelize'];(function(_0x4fc9e6,_0xc51915){var _0x551d28=function(_0x1a603b){while(--_0x1a603b){_0x4fc9e6['push'](_0x4fc9e6['shift']());}};_0x551d28(++_0xc51915);}(_0x2599,0x117));var _0x9259=function(_0xfbcb3,_0x559e9a){_0xfbcb3=_0xfbcb3-0x0;var _0x5d8dc0=_0x2599[_0xfbcb3];return _0x5d8dc0;};'use strict';var Sequelize=require(_0x9259('0x0'));module[_0x9259('0x1')]={'penalty':{'type':Sequelize['INTEGER'],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x27a0=['define','UserSmsQueue','util','../../config/logger','api','moment','bluebird','./userSmsQueue.attributes','exports'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x27a0,0xbf));var _0x027a=function(_0x6d2351,_0xdbf457){_0x6d2351=_0x6d2351-0x0;var _0x1b3e00=_0x27a0[_0x6d2351];return _0x1b3e00;};'use strict';var _=require('lodash');var util=require(_0x027a('0x0'));var logger=require(_0x027a('0x1'))(_0x027a('0x2'));var moment=require(_0x027a('0x3'));var BPromise=require(_0x027a('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0x027a('0x5'));module[_0x027a('0x6')]=function(_0x137b09,_0x639bec){return _0x137b09[_0x027a('0x7')](_0x027a('0x8'),attributes,{'tableName':'user_has_sms_queues','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x9582=['bluebird','path','rimraf','../../config/environment','./userSmsQueue.attributes','exports','define','UserSmsQueue','user_has_sms_queues','lodash','util','../../config/logger','api','moment'];(function(_0x5e9a4a,_0x3958ec){var _0x4e0b2c=function(_0x4b8ea9){while(--_0x4b8ea9){_0x5e9a4a['push'](_0x5e9a4a['shift']());}};_0x4e0b2c(++_0x3958ec);}(_0x9582,0x95));var _0x2958=function(_0x3a186f,_0x148945){_0x3a186f=_0x3a186f-0x0;var _0x4a3bc1=_0x9582[_0x3a186f];return _0x4a3bc1;};'use strict';var _=require(_0x2958('0x0'));var util=require(_0x2958('0x1'));var logger=require(_0x2958('0x2'))(_0x2958('0x3'));var moment=require(_0x2958('0x4'));var BPromise=require(_0x2958('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x2958('0x6'));var rimraf=require(_0x2958('0x7'));var config=require(_0x2958('0x8'));var attributes=require(_0x2958('0x9'));module[_0x2958('0xa')]=function(_0xbde128,_0x88ffaa){return _0xbde128[_0x2958('0xb')](_0x2958('0xc'),attributes,{'tableName':_0x2958('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x340c=['catch','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','request','then','info','UserSmsQueue,\x20%s,\x20%s','request\x20sent','UserSmsQueue,\x20%s,\x20%s,\x20%s','stringify','error','message','result'];(function(_0x5beb32,_0x1112f4){var _0x28b56c=function(_0x3ff3f9){while(--_0x3ff3f9){_0x5beb32['push'](_0x5beb32['shift']());}};_0x28b56c(++_0x1112f4);}(_0x340c,0xb9));var _0xc340=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x340c[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0xc340('0x0'));var util=require('util');var moment=require(_0xc340('0x1'));var BPromise=require(_0xc340('0x2'));var rs=require(_0xc340('0x3'));var fs=require('fs');var Redis=require(_0xc340('0x4'));var db=require(_0xc340('0x5'))['db'];var utils=require(_0xc340('0x6'));var logger=require(_0xc340('0x7'))(_0xc340('0x8'));var config=require(_0xc340('0x9'));var jayson=require('jayson/promise');var client=jayson[_0xc340('0xa')][_0xc340('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x166720,_0x34cf48,_0x411da9){return new BPromise(function(_0x19a0d7,_0x15245d){return client[_0xc340('0xc')](_0x166720,_0x411da9)[_0xc340('0xd')](function(_0x53edb4){logger[_0xc340('0xe')](_0xc340('0xf'),_0x34cf48,_0xc340('0x10'));logger['debug'](_0xc340('0x11'),_0x34cf48,_0xc340('0x10'),JSON[_0xc340('0x12')](_0x53edb4));if(_0x53edb4['error']){if(_0x53edb4[_0xc340('0x13')]['code']===0x1f4){logger[_0xc340('0x13')](_0xc340('0xf'),_0x34cf48,_0x53edb4[_0xc340('0x13')][_0xc340('0x14')]);return _0x15245d(_0x53edb4[_0xc340('0x13')][_0xc340('0x14')]);}logger[_0xc340('0x13')](_0xc340('0xf'),_0x34cf48,_0x53edb4[_0xc340('0x13')][_0xc340('0x14')]);return _0x19a0d7(_0x53edb4[_0xc340('0x13')][_0xc340('0x14')]);}else{logger[_0xc340('0xe')]('UserSmsQueue,\x20%s,\x20%s',_0x34cf48,_0xc340('0x10'));_0x19a0d7(_0x53edb4[_0xc340('0x15')][_0xc340('0x14')]);}})[_0xc340('0x16')](function(_0x302ead){logger['error'](_0xc340('0xf'),_0x34cf48,_0x302ead);_0x15245d(_0x302ead);});});}
\ No newline at end of file
+var _0x7265=['UserSmsQueue,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','info','result','catch','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','client','http','then','UserSmsQueue,\x20%s,\x20%s','debug'];(function(_0x5a907f,_0x59b500){var _0x1032a7=function(_0x3c41ac){while(--_0x3c41ac){_0x5a907f['push'](_0x5a907f['shift']());}};_0x1032a7(++_0x59b500);}(_0x7265,0xef));var _0x5726=function(_0x52c251,_0x368c89){_0x52c251=_0x52c251-0x0;var _0x53bc10=_0x7265[_0x52c251];return _0x53bc10;};'use strict';var _=require(_0x5726('0x0'));var util=require(_0x5726('0x1'));var moment=require('moment');var BPromise=require(_0x5726('0x2'));var rs=require(_0x5726('0x3'));var fs=require('fs');var Redis=require(_0x5726('0x4'));var db=require(_0x5726('0x5'))['db'];var utils=require(_0x5726('0x6'));var logger=require(_0x5726('0x7'))('rpc');var config=require(_0x5726('0x8'));var jayson=require('jayson/promise');var client=jayson[_0x5726('0x9')][_0x5726('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x1c8b1e,_0x2f5dbc,_0x551398){return new BPromise(function(_0x26fd46,_0x290610){return client['request'](_0x1c8b1e,_0x551398)[_0x5726('0xb')](function(_0x5753eb){logger['info'](_0x5726('0xc'),_0x2f5dbc,'request\x20sent');logger[_0x5726('0xd')](_0x5726('0xe'),_0x2f5dbc,_0x5726('0xf'),JSON[_0x5726('0x10')](_0x5753eb));if(_0x5753eb[_0x5726('0x11')]){if(_0x5753eb['error'][_0x5726('0x12')]===0x1f4){logger[_0x5726('0x11')](_0x5726('0xc'),_0x2f5dbc,_0x5753eb[_0x5726('0x11')][_0x5726('0x13')]);return _0x290610(_0x5753eb[_0x5726('0x11')][_0x5726('0x13')]);}logger['error']('UserSmsQueue,\x20%s,\x20%s',_0x2f5dbc,_0x5753eb[_0x5726('0x11')][_0x5726('0x13')]);return _0x26fd46(_0x5753eb[_0x5726('0x11')][_0x5726('0x13')]);}else{logger[_0x5726('0x14')]('UserSmsQueue,\x20%s,\x20%s',_0x2f5dbc,'request\x20sent');_0x26fd46(_0x5753eb[_0x5726('0x15')][_0x5726('0x13')]);}})[_0x5726('0x16')](function(_0x3d6d74){logger[_0x5726('0x11')]('UserSmsQueue,\x20%s,\x20%s',_0x2f5dbc,_0x3d6d74);_0x290610(_0x3d6d74);});});}
\ No newline at end of file
+++ /dev/null
-// *************************************************************************
-// * *
-// * xCALLY Motion - The Omnichannel Contact Center *
-// * Copyright (c) Xenialab s.r.l. All Rights Reserved *
-// * *
-// *************************************************************************
-// * *
-// * Email: info@xcally.com *
-// * Website: https://www.xcally.com *
-// * *
-// *************************************************************************
-// * *
-// * The SOFTWARE PRODUCT is protected by copyright laws and international *
-// * copyright treaties, as well as other intellectual property laws and *
-// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
-// * *
-// *************************************************************************
-var _0x5636=['INTEGER','sequelize','exports'];(function(_0x58b98b,_0x4cda65){var _0x488af6=function(_0x1a37c6){while(--_0x1a37c6){_0x58b98b['push'](_0x58b98b['shift']());}};_0x488af6(++_0x4cda65);}(_0x5636,0x11b));var _0x6563=function(_0xa5db7d,_0x3e3cee){_0xa5db7d=_0xa5db7d-0x0;var _0x2e2a4d=_0x5636[_0xa5db7d];return _0x2e2a4d;};'use strict';var Sequelize=require(_0x6563('0x0'));module[_0x6563('0x1')]={'UserId':{'type':Sequelize[_0x6563('0x2')]},'VoicePrefixId':{'type':Sequelize[_0x6563('0x2')]}};
\ No newline at end of file
+++ /dev/null
-// *************************************************************************
-// * *
-// * xCALLY Motion - The Omnichannel Contact Center *
-// * Copyright (c) Xenialab s.r.l. All Rights Reserved *
-// * *
-// *************************************************************************
-// * *
-// * Email: info@xcally.com *
-// * Website: https://www.xcally.com *
-// * *
-// *************************************************************************
-// * *
-// * The SOFTWARE PRODUCT is protected by copyright laws and international *
-// * copyright treaties, as well as other intellectual property laws and *
-// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
-// * *
-// *************************************************************************
-var _0xa9e0=['../../config/environment','./userVoicePrefix.attributes','exports','define','UserVoicePrefix','lodash','util','../../config/logger','bluebird','path','rimraf'];(function(_0xc95197,_0x3e58da){var _0x5161f6=function(_0x123fcd){while(--_0x123fcd){_0xc95197['push'](_0xc95197['shift']());}};_0x5161f6(++_0x3e58da);}(_0xa9e0,0x123));var _0x0a9e=function(_0x9aada2,_0xd2d349){_0x9aada2=_0x9aada2-0x0;var _0x196dff=_0xa9e0[_0x9aada2];return _0x196dff;};'use strict';var _=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var logger=require(_0x0a9e('0x2'))('api');var moment=require('moment');var BPromise=require(_0x0a9e('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x0a9e('0x4'));var rimraf=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));var attributes=require(_0x0a9e('0x7'));module[_0x0a9e('0x8')]=function(_0x57b080,_0x219af0){return _0x57b080[_0x0a9e('0x9')](_0x0a9e('0xa'),attributes,{'tableName':'user_has_voice_prefixes','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0713=['../../config/environment','exports','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service'];(function(_0x577333,_0x85b2a7){var _0x208b88=function(_0x530b12){while(--_0x530b12){_0x577333['push'](_0x577333['shift']());}};_0x208b88(++_0x85b2a7);}(_0x0713,0x1ba));var _0x3071=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x0713[_0x3dd15e];return _0x231fd0;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x3071('0x0'));var timeout=require(_0x3071('0x1'));var express=require(_0x3071('0x2'));var router=express[_0x3071('0x3')]();var fs_extra=require(_0x3071('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0x3071('0x5'));var config=require(_0x3071('0x6'));module[_0x3071('0x7')]=router;
\ No newline at end of file
+var _0xa9e0=['../../components/interaction/service','../../config/environment','exports','multer','util','path','Router','../../components/auth/service'];(function(_0x5e8b25,_0x4403c4){var _0x262c8b=function(_0x28b542){while(--_0x28b542){_0x5e8b25['push'](_0x5e8b25['shift']());}};_0x262c8b(++_0x4403c4);}(_0xa9e0,0x123));var _0x0a9e=function(_0xa1e3e3,_0x29fe0e){_0xa1e3e3=_0xa1e3e3-0x0;var _0xc980e9=_0xa9e0[_0xa1e3e3];return _0xc980e9;};'use strict';var multer=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var path=require(_0x0a9e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x0a9e('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x0a9e('0x4'));var interaction=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));module[_0x0a9e('0x7')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcd98=['INTEGER','sequelize','exports'];(function(_0x57b54c,_0x54ce0d){var _0x59cc19=function(_0xa33bc6){while(--_0xa33bc6){_0x57b54c['push'](_0x57b54c['shift']());}};_0x59cc19(++_0x54ce0d);}(_0xcd98,0x1cc));var _0x8cd9=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xcd98[_0x3dd15e];return _0x231fd0;};'use strict';var Sequelize=require(_0x8cd9('0x0'));module[_0x8cd9('0x1')]={'penalty':{'type':Sequelize[_0x8cd9('0x2')],'defaultValue':0x0}};
\ No newline at end of file
+var _0x244e=['INTEGER','sequelize'];(function(_0x59ee6f,_0x450239){var _0x4c0979=function(_0x565e92){while(--_0x565e92){_0x59ee6f['push'](_0x59ee6f['shift']());}};_0x4c0979(++_0x450239);}(_0x244e,0x1e9));var _0xe244=function(_0x129b64,_0xe7e804){_0x129b64=_0x129b64-0x0;var _0x338821=_0x244e[_0x129b64];return _0x338821;};'use strict';var Sequelize=require(_0xe244('0x0'));module['exports']={'penalty':{'type':Sequelize[_0xe244('0x1')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x672e=['rimraf','./userVoiceQueue.attributes','exports','UserVoiceQueue','user_has_voice_queues','lodash','util','../../config/logger','moment','bluebird','request-promise','path'];(function(_0x3e0fa4,_0x292a53){var _0xb7dc73=function(_0x5ea825){while(--_0x5ea825){_0x3e0fa4['push'](_0x3e0fa4['shift']());}};_0xb7dc73(++_0x292a53);}(_0x672e,0x1f1));var _0xe672=function(_0x31e63f,_0x512a84){_0x31e63f=_0x31e63f-0x0;var _0x453876=_0x672e[_0x31e63f];return _0x453876;};'use strict';var _=require(_0xe672('0x0'));var util=require(_0xe672('0x1'));var logger=require(_0xe672('0x2'))('api');var moment=require(_0xe672('0x3'));var BPromise=require(_0xe672('0x4'));var rp=require(_0xe672('0x5'));var fs=require('fs');var path=require(_0xe672('0x6'));var rimraf=require(_0xe672('0x7'));var config=require('../../config/environment');var attributes=require(_0xe672('0x8'));module[_0xe672('0x9')]=function(_0x396cbc,_0x3f46a7){return _0x396cbc['define'](_0xe672('0xa'),attributes,{'tableName':_0xe672('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x4e14=['UserVoiceQueue','user_has_voice_queues','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','../../config/environment','./userVoiceQueue.attributes','exports','define'];(function(_0x1db584,_0x4ade9c){var _0xf40db5=function(_0x1c0dd0){while(--_0x1c0dd0){_0x1db584['push'](_0x1db584['shift']());}};_0xf40db5(++_0x4ade9c);}(_0x4e14,0x10c));var _0x44e1=function(_0x413feb,_0x10477f){_0x413feb=_0x413feb-0x0;var _0x40ee88=_0x4e14[_0x413feb];return _0x40ee88;};'use strict';var _=require(_0x44e1('0x0'));var util=require(_0x44e1('0x1'));var logger=require(_0x44e1('0x2'))(_0x44e1('0x3'));var moment=require(_0x44e1('0x4'));var BPromise=require(_0x44e1('0x5'));var rp=require(_0x44e1('0x6'));var fs=require('fs');var path=require(_0x44e1('0x7'));var rimraf=require('rimraf');var config=require(_0x44e1('0x8'));var attributes=require(_0x44e1('0x9'));module[_0x44e1('0xa')]=function(_0x50f330,_0x4bb1fd){return _0x50f330[_0x44e1('0xb')](_0x44e1('0xc'),attributes,{'tableName':_0x44e1('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaebe=['../../mysqldb','../../config/environment','client','http','request','then','UserVoiceQueue,\x20%s,\x20%s','request\x20sent','UserVoiceQueue,\x20%s,\x20%s,\x20%s','stringify','error','message','info','result','catch','lodash','moment','bluebird','randomstring','ioredis'];(function(_0x9c2427,_0x17c865){var _0x51984f=function(_0x177af6){while(--_0x177af6){_0x9c2427['push'](_0x9c2427['shift']());}};_0x51984f(++_0x17c865);}(_0xaebe,0xaf));var _0xeaeb=function(_0x5f09c5,_0x2bfca0){_0x5f09c5=_0x5f09c5-0x0;var _0x426ad9=_0xaebe[_0x5f09c5];return _0x426ad9;};'use strict';var _=require(_0xeaeb('0x0'));var util=require('util');var moment=require(_0xeaeb('0x1'));var BPromise=require(_0xeaeb('0x2'));var rs=require(_0xeaeb('0x3'));var fs=require('fs');var Redis=require(_0xeaeb('0x4'));var db=require(_0xeaeb('0x5'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')('rpc');var config=require(_0xeaeb('0x6'));var jayson=require('jayson/promise');var client=jayson[_0xeaeb('0x7')][_0xeaeb('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x5c6e2c,_0x4dc2,_0x1c7335){return new BPromise(function(_0x2dbfc3,_0x33f637){return client[_0xeaeb('0x9')](_0x5c6e2c,_0x1c7335)[_0xeaeb('0xa')](function(_0x1db3a9){logger['info'](_0xeaeb('0xb'),_0x4dc2,_0xeaeb('0xc'));logger['debug'](_0xeaeb('0xd'),_0x4dc2,'request\x20sent',JSON[_0xeaeb('0xe')](_0x1db3a9));if(_0x1db3a9[_0xeaeb('0xf')]){if(_0x1db3a9[_0xeaeb('0xf')]['code']===0x1f4){logger[_0xeaeb('0xf')]('UserVoiceQueue,\x20%s,\x20%s',_0x4dc2,_0x1db3a9[_0xeaeb('0xf')][_0xeaeb('0x10')]);return _0x33f637(_0x1db3a9['error'][_0xeaeb('0x10')]);}logger[_0xeaeb('0xf')]('UserVoiceQueue,\x20%s,\x20%s',_0x4dc2,_0x1db3a9[_0xeaeb('0xf')][_0xeaeb('0x10')]);return _0x2dbfc3(_0x1db3a9[_0xeaeb('0xf')]['message']);}else{logger[_0xeaeb('0x11')](_0xeaeb('0xb'),_0x4dc2,_0xeaeb('0xc'));_0x2dbfc3(_0x1db3a9[_0xeaeb('0x12')]['message']);}})[_0xeaeb('0x13')](function(_0xb7bf66){logger[_0xeaeb('0xf')](_0xeaeb('0xb'),_0x4dc2,_0xb7bf66);_0x33f637(_0xb7bf66);});});}
\ No newline at end of file
+var _0x4210=['debug','UserVoiceQueue,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','result','catch','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','http','request','info','UserVoiceQueue,\x20%s,\x20%s'];(function(_0x50f6fb,_0x26af32){var _0x5c87f1=function(_0x3e4307){while(--_0x3e4307){_0x50f6fb['push'](_0x50f6fb['shift']());}};_0x5c87f1(++_0x26af32);}(_0x4210,0x64));var _0x0421=function(_0x2d2a99,_0x167a42){_0x2d2a99=_0x2d2a99-0x0;var _0x17d11a=_0x4210[_0x2d2a99];return _0x17d11a;};'use strict';var _=require(_0x0421('0x0'));var util=require(_0x0421('0x1'));var moment=require('moment');var BPromise=require(_0x0421('0x2'));var rs=require(_0x0421('0x3'));var fs=require('fs');var Redis=require(_0x0421('0x4'));var db=require(_0x0421('0x5'))['db'];var utils=require(_0x0421('0x6'));var logger=require('../../config/logger')(_0x0421('0x7'));var config=require(_0x0421('0x8'));var jayson=require(_0x0421('0x9'));var client=jayson[_0x0421('0xa')][_0x0421('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x10c154,_0x1c7dfb,_0xf42fb2){return new BPromise(function(_0x4c27d2,_0x5178d9){return client[_0x0421('0xc')](_0x10c154,_0xf42fb2)['then'](function(_0x32fb87){logger[_0x0421('0xd')](_0x0421('0xe'),_0x1c7dfb,'request\x20sent');logger[_0x0421('0xf')](_0x0421('0x10'),_0x1c7dfb,_0x0421('0x11'),JSON[_0x0421('0x12')](_0x32fb87));if(_0x32fb87[_0x0421('0x13')]){if(_0x32fb87[_0x0421('0x13')]['code']===0x1f4){logger['error']('UserVoiceQueue,\x20%s,\x20%s',_0x1c7dfb,_0x32fb87[_0x0421('0x13')][_0x0421('0x14')]);return _0x5178d9(_0x32fb87[_0x0421('0x13')][_0x0421('0x14')]);}logger[_0x0421('0x13')]('UserVoiceQueue,\x20%s,\x20%s',_0x1c7dfb,_0x32fb87[_0x0421('0x13')][_0x0421('0x14')]);return _0x4c27d2(_0x32fb87[_0x0421('0x13')][_0x0421('0x14')]);}else{logger[_0x0421('0xd')]('UserVoiceQueue,\x20%s,\x20%s',_0x1c7dfb,_0x0421('0x11'));_0x4c27d2(_0x32fb87[_0x0421('0x15')][_0x0421('0x14')]);}})[_0x0421('0x16')](function(_0x50ac25){logger['error']('UserVoiceQueue,\x20%s,\x20%s',_0x1c7dfb,_0x50ac25);_0x5178d9(_0x50ac25);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe706=['../../components/interaction/service','../../config/environment','exports','multer','util','path','express','Router','fs-extra','../../components/auth/service'];(function(_0x3c7771,_0x2ff214){var _0xc4ca06=function(_0x169b00){while(--_0x169b00){_0x3c7771['push'](_0x3c7771['shift']());}};_0xc4ca06(++_0x2ff214);}(_0xe706,0xa3));var _0x6e70=function(_0x470170,_0x454483){_0x470170=_0x470170-0x0;var _0x2cc1cc=_0xe706[_0x470170];return _0x2cc1cc;};'use strict';var multer=require(_0x6e70('0x0'));var util=require(_0x6e70('0x1'));var path=require(_0x6e70('0x2'));var timeout=require('connect-timeout');var express=require(_0x6e70('0x3'));var router=express[_0x6e70('0x4')]();var fs_extra=require(_0x6e70('0x5'));var auth=require(_0x6e70('0x6'));var interaction=require(_0x6e70('0x7'));var config=require(_0x6e70('0x8'));module[_0x6e70('0x9')]=router;
\ No newline at end of file
+var _0x0713=['../../config/environment','exports','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service'];(function(_0x1a0808,_0x5e690f){var _0x29a25c=function(_0x213ffb){while(--_0x213ffb){_0x1a0808['push'](_0x1a0808['shift']());}};_0x29a25c(++_0x5e690f);}(_0x0713,0x1ba));var _0x3071=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x0713[_0x3dd15e];return _0x231fd0;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x3071('0x0'));var timeout=require(_0x3071('0x1'));var express=require(_0x3071('0x2'));var router=express[_0x3071('0x3')]();var fs_extra=require(_0x3071('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0x3071('0x5'));var config=require(_0x3071('0x6'));module[_0x3071('0x7')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaef9=['Required\x20by\x20Asterisk','STRING','queue_interface','INTEGER'];(function(_0xaa0309,_0x1c8008){var _0x5de7ce=function(_0x3aa6ae){while(--_0x3aa6ae){_0xaa0309['push'](_0xaa0309['shift']());}};_0x5de7ce(++_0x1c8008);}(_0xaef9,0x13b));var _0x9aef=function(_0x36047d,_0x1eddc3){_0x36047d=_0x36047d-0x0;var _0x5000fe=_0xaef9[_0x36047d];return _0x5000fe;};'use strict';var Sequelize=require('sequelize');module['exports']={'uniqueid':{'type':Sequelize[_0x9aef('0x0')],'primaryKey':!![],'autoIncrement':!![],'comment':_0x9aef('0x1')},'membername':{'type':Sequelize[_0x9aef('0x2')],'allowNull':![],'comment':_0x9aef('0x1')},'UserId':{'type':Sequelize[_0x9aef('0x0')],'allowNull':![]},'queue_name':{'type':Sequelize[_0x9aef('0x2')],'allowNull':![],'unique':_0x9aef('0x3'),'comment':'Required\x20by\x20Asterisk'},'VoiceQueueId':{'type':Sequelize['INTEGER'],'allowNull':![]},'interface':{'type':Sequelize['STRING'],'allowNull':![],'unique':_0x9aef('0x3'),'comment':_0x9aef('0x1')},'penalty':{'type':Sequelize[_0x9aef('0x0')](0xb),'defaultValue':0x0,'comment':_0x9aef('0x1')},'paused':{'type':Sequelize[_0x9aef('0x0')](0xb),'defaultValue':0x0,'comment':'Required\x20by\x20Asterisk'}};
\ No newline at end of file
+var _0xd9d9=['exports','INTEGER','Required\x20by\x20Asterisk','STRING','queue_interface'];(function(_0x492267,_0x4f71d5){var _0x1d250f=function(_0x670dc7){while(--_0x670dc7){_0x492267['push'](_0x492267['shift']());}};_0x1d250f(++_0x4f71d5);}(_0xd9d9,0x11d));var _0x9d9d=function(_0x23a132,_0x396da3){_0x23a132=_0x23a132-0x0;var _0x203d80=_0xd9d9[_0x23a132];return _0x203d80;};'use strict';var Sequelize=require('sequelize');module[_0x9d9d('0x0')]={'uniqueid':{'type':Sequelize[_0x9d9d('0x1')],'primaryKey':!![],'autoIncrement':!![],'comment':_0x9d9d('0x2')},'membername':{'type':Sequelize[_0x9d9d('0x3')],'allowNull':![],'comment':_0x9d9d('0x2')},'UserId':{'type':Sequelize[_0x9d9d('0x1')],'allowNull':![]},'queue_name':{'type':Sequelize[_0x9d9d('0x3')],'allowNull':![],'unique':_0x9d9d('0x4'),'comment':'Required\x20by\x20Asterisk'},'VoiceQueueId':{'type':Sequelize['INTEGER'],'allowNull':![]},'interface':{'type':Sequelize[_0x9d9d('0x3')],'allowNull':![],'unique':'queue_interface','comment':_0x9d9d('0x2')},'penalty':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0x0,'comment':_0x9d9d('0x2')},'paused':{'type':Sequelize[_0x9d9d('0x1')](0xb),'defaultValue':0x0,'comment':_0x9d9d('0x2')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcdb5=['remove','emit','hasOwnProperty','hook','exports','events','../../mysqldb','UserVoiceQueueRt','setMaxListeners','save','update'];(function(_0x4f9b18,_0x2cb5ca){var _0x29f20c=function(_0x268b3d){while(--_0x268b3d){_0x4f9b18['push'](_0x4f9b18['shift']());}};_0x29f20c(++_0x2cb5ca);}(_0xcdb5,0x7e));var _0x5cdb=function(_0x5d88be,_0x5a9a0d){_0x5d88be=_0x5d88be-0x0;var _0x27b2e7=_0xcdb5[_0x5d88be];return _0x27b2e7;};'use strict';var EventEmitter=require(_0x5cdb('0x0'));var UserVoiceQueueRt=require(_0x5cdb('0x1'))['db'][_0x5cdb('0x2')];var UserVoiceQueueRtEvents=new EventEmitter();UserVoiceQueueRtEvents[_0x5cdb('0x3')](0x0);var events={'afterCreate':_0x5cdb('0x4'),'afterUpdate':_0x5cdb('0x5'),'afterDestroy':_0x5cdb('0x6')};function emitEvent(_0x528726){return function(_0x40c31f,_0x3f34f5,_0x21ca15){UserVoiceQueueRtEvents[_0x5cdb('0x7')](_0x528726+':'+_0x40c31f['id'],_0x40c31f);UserVoiceQueueRtEvents[_0x5cdb('0x7')](_0x528726,_0x40c31f);_0x21ca15(null);};}for(var e in events){if(events[_0x5cdb('0x8')](e)){var event=events[e];UserVoiceQueueRt[_0x5cdb('0x9')](e,emitEvent(event));}}module[_0x5cdb('0xa')]=UserVoiceQueueRtEvents;
\ No newline at end of file
+var _0xb75c=['emit','hasOwnProperty','hook','events','save','update'];(function(_0x494f4d,_0x2807fa){var _0x3e7dfc=function(_0x14f2d2){while(--_0x14f2d2){_0x494f4d['push'](_0x494f4d['shift']());}};_0x3e7dfc(++_0x2807fa);}(_0xb75c,0xe1));var _0xcb75=function(_0x3740a4,_0x2fe37a){_0x3740a4=_0x3740a4-0x0;var _0x3dd54d=_0xb75c[_0x3740a4];return _0x3dd54d;};'use strict';var EventEmitter=require(_0xcb75('0x0'));var UserVoiceQueueRt=require('../../mysqldb')['db']['UserVoiceQueueRt'];var UserVoiceQueueRtEvents=new EventEmitter();UserVoiceQueueRtEvents['setMaxListeners'](0x0);var events={'afterCreate':_0xcb75('0x1'),'afterUpdate':_0xcb75('0x2'),'afterDestroy':'remove'};function emitEvent(_0x4dd2ba){return function(_0x313126,_0x1a9061,_0x18edcc){UserVoiceQueueRtEvents[_0xcb75('0x3')](_0x4dd2ba+':'+_0x313126['id'],_0x313126);UserVoiceQueueRtEvents[_0xcb75('0x3')](_0x4dd2ba,_0x313126);_0x18edcc(null);};}for(var e in events){if(events[_0xcb75('0x4')](e)){var event=events[e];UserVoiceQueueRt[_0xcb75('0x5')](e,emitEvent(event));}}module['exports']=UserVoiceQueueRtEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xae3f=['./userVoiceQueueRt.attributes','exports','UserVoiceQueueRt','user_has_voice_queues_rt','lodash','../../config/logger','api','moment','bluebird','request-promise','path','../../config/environment'];(function(_0x53be8d,_0x2cb53f){var _0x396d2c=function(_0x389878){while(--_0x389878){_0x53be8d['push'](_0x53be8d['shift']());}};_0x396d2c(++_0x2cb53f);}(_0xae3f,0x88));var _0xfae3=function(_0x59d89e,_0x55edf5){_0x59d89e=_0x59d89e-0x0;var _0x554e93=_0xae3f[_0x59d89e];return _0x554e93;};'use strict';var _=require(_0xfae3('0x0'));var util=require('util');var logger=require(_0xfae3('0x1'))(_0xfae3('0x2'));var moment=require(_0xfae3('0x3'));var BPromise=require(_0xfae3('0x4'));var rp=require(_0xfae3('0x5'));var fs=require('fs');var path=require(_0xfae3('0x6'));var rimraf=require('rimraf');var config=require(_0xfae3('0x7'));var attributes=require(_0xfae3('0x8'));module[_0xfae3('0x9')]=function(_0x2ab6a9,_0x52f25e){return _0x2ab6a9['define'](_0xfae3('0xa'),attributes,{'tableName':_0xfae3('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x12e4=['define','UserVoiceQueueRt','user_has_voice_queues_rt','lodash','util','api','moment','bluebird','request-promise','rimraf','../../config/environment','./userVoiceQueueRt.attributes','exports'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x12e4,0xac));var _0x412e=function(_0x5ab11b,_0x19fbdd){_0x5ab11b=_0x5ab11b-0x0;var _0x56c4e3=_0x12e4[_0x5ab11b];return _0x56c4e3;};'use strict';var _=require(_0x412e('0x0'));var util=require(_0x412e('0x1'));var logger=require('../../config/logger')(_0x412e('0x2'));var moment=require(_0x412e('0x3'));var BPromise=require(_0x412e('0x4'));var rp=require(_0x412e('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0x412e('0x6'));var config=require(_0x412e('0x7'));var attributes=require(_0x412e('0x8'));module[_0x412e('0x9')]=function(_0x3da81c,_0x1691bd){return _0x3da81c[_0x412e('0xa')](_0x412e('0xb'),attributes,{'tableName':_0x412e('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xba8a=['code','message','result','catch','GetVoiceQueueRtPauses','UserVoiceQueueRt','findAll','options','raw','sequelize','COUNT','literal','debug','lodash','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','./userVoiceQueueRt.socket','request','then','info','UserVoiceQueueRt,\x20%s,\x20%s','request\x20sent','stringify','error'];(function(_0x132ca7,_0x5d744d){var _0x3a3cb9=function(_0x71de96){while(--_0x71de96){_0x132ca7['push'](_0x132ca7['shift']());}};_0x3a3cb9(++_0x5d744d);}(_0xba8a,0xf1));var _0xaba8=function(_0x3dd92b,_0x4d1139){_0x3dd92b=_0x3dd92b-0x0;var _0x5e1d23=_0xba8a[_0x3dd92b];return _0x5e1d23;};'use strict';var _=require(_0xaba8('0x0'));var util=require(_0xaba8('0x1'));var moment=require(_0xaba8('0x2'));var BPromise=require(_0xaba8('0x3'));var rs=require(_0xaba8('0x4'));var fs=require('fs');var Redis=require(_0xaba8('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0xaba8('0x6'));var logger=require(_0xaba8('0x7'))(_0xaba8('0x8'));var config=require(_0xaba8('0x9'));var jayson=require(_0xaba8('0xa'));var client=jayson[_0xaba8('0xb')][_0xaba8('0xc')]({'port':0x232a});config[_0xaba8('0xd')]=_[_0xaba8('0xe')](config['redis'],{'host':_0xaba8('0xf'),'port':0x18eb});var socket=require(_0xaba8('0x10'))(new Redis(config[_0xaba8('0xd')]));require(_0xaba8('0x11'))['register'](socket);function respondWithRpcPromise(_0x2a539c,_0x46b549,_0x463c0b){return new BPromise(function(_0x26ead9,_0x3a65a5){return client[_0xaba8('0x12')](_0x2a539c,_0x463c0b)[_0xaba8('0x13')](function(_0x25441d){logger[_0xaba8('0x14')](_0xaba8('0x15'),_0x46b549,_0xaba8('0x16'));logger['debug']('UserVoiceQueueRt,\x20%s,\x20%s,\x20%s',_0x46b549,'request\x20sent',JSON[_0xaba8('0x17')](_0x25441d));if(_0x25441d[_0xaba8('0x18')]){if(_0x25441d[_0xaba8('0x18')][_0xaba8('0x19')]===0x1f4){logger['error'](_0xaba8('0x15'),_0x46b549,_0x25441d['error'][_0xaba8('0x1a')]);return _0x3a65a5(_0x25441d[_0xaba8('0x18')][_0xaba8('0x1a')]);}logger[_0xaba8('0x18')]('UserVoiceQueueRt,\x20%s,\x20%s',_0x46b549,_0x25441d[_0xaba8('0x18')][_0xaba8('0x1a')]);return _0x26ead9(_0x25441d[_0xaba8('0x18')]['message']);}else{logger[_0xaba8('0x14')]('UserVoiceQueueRt,\x20%s,\x20%s',_0x46b549,_0xaba8('0x16'));_0x26ead9(_0x25441d[_0xaba8('0x1b')]['message']);}})[_0xaba8('0x1c')](function(_0x1c48cb){logger[_0xaba8('0x18')](_0xaba8('0x15'),_0x46b549,_0x1c48cb);_0x3a65a5(_0x1c48cb);});});}exports[_0xaba8('0x1d')]=function(_0x4b4207){var _0x504f15=this;return new Promise(function(_0x29cb87,_0x418172){return db[_0xaba8('0x1e')][_0xaba8('0x1f')]({'raw':_0x4b4207[_0xaba8('0x20')]?_0x4b4207[_0xaba8('0x20')][_0xaba8('0x21')]===undefined?!![]:![]:!![],'where':_0x4b4207[_0xaba8('0x20')]?_0x4b4207[_0xaba8('0x20')]['where']||null:null,'attributes':[[db[_0xaba8('0x22')]['fn'](_0xaba8('0x23'),db[_0xaba8('0x22')]['fn']('IF',db[_0xaba8('0x22')][_0xaba8('0x24')]('`paused`\x20=\x201,\x201,\x20null'))),'outboundQueuePauses']]})[_0xaba8('0x13')](function(_0x1c9c3d){logger[_0xaba8('0x14')](_0xaba8('0x1d'),_0x4b4207);logger[_0xaba8('0x25')](_0xaba8('0x1d'),_0x4b4207,JSON[_0xaba8('0x17')](_0x1c9c3d));_0x29cb87(_0x1c9c3d);})[_0xaba8('0x1c')](function(_0x483afc){logger['error'](_0xaba8('0x1d'),_0x483afc['message'],_0x4b4207);_0x418172(_0x504f15['error'](0x1f4,_0x483afc[_0xaba8('0x1a')]));});});};
\ No newline at end of file
+var _0x6b77=['message','result','GetVoiceQueueRtPauses','findAll','options','raw','where','sequelize','`paused`\x20=\x201,\x201,\x20null','outboundQueuePauses','info','catch','util','moment','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','defaults','redis','localhost','./userVoiceQueueRt.socket','register','then','UserVoiceQueueRt,\x20%s,\x20%s','request\x20sent','debug','stringify','error'];(function(_0x294d9a,_0x3b43d0){var _0x48f15f=function(_0x1cdfa2){while(--_0x1cdfa2){_0x294d9a['push'](_0x294d9a['shift']());}};_0x48f15f(++_0x3b43d0);}(_0x6b77,0x6f));var _0x76b7=function(_0x227ff6,_0xdf0020){_0x227ff6=_0x227ff6-0x0;var _0x2c5f91=_0x6b77[_0x227ff6];return _0x2c5f91;};'use strict';var _=require('lodash');var util=require(_0x76b7('0x0'));var moment=require(_0x76b7('0x1'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x76b7('0x2'));var db=require(_0x76b7('0x3'))['db'];var utils=require(_0x76b7('0x4'));var logger=require(_0x76b7('0x5'))('rpc');var config=require(_0x76b7('0x6'));var jayson=require(_0x76b7('0x7'));var client=jayson[_0x76b7('0x8')][_0x76b7('0x9')]({'port':0x232a});config['redis']=_[_0x76b7('0xa')](config[_0x76b7('0xb')],{'host':_0x76b7('0xc'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x76b7('0xb')]));require(_0x76b7('0xd'))[_0x76b7('0xe')](socket);function respondWithRpcPromise(_0x54f810,_0x2d9d09,_0x200f78){return new BPromise(function(_0x10f337,_0x2876e0){return client['request'](_0x54f810,_0x200f78)[_0x76b7('0xf')](function(_0xb87487){logger['info'](_0x76b7('0x10'),_0x2d9d09,_0x76b7('0x11'));logger[_0x76b7('0x12')]('UserVoiceQueueRt,\x20%s,\x20%s,\x20%s',_0x2d9d09,_0x76b7('0x11'),JSON[_0x76b7('0x13')](_0xb87487));if(_0xb87487[_0x76b7('0x14')]){if(_0xb87487[_0x76b7('0x14')]['code']===0x1f4){logger['error']('UserVoiceQueueRt,\x20%s,\x20%s',_0x2d9d09,_0xb87487[_0x76b7('0x14')][_0x76b7('0x15')]);return _0x2876e0(_0xb87487['error']['message']);}logger['error'](_0x76b7('0x10'),_0x2d9d09,_0xb87487[_0x76b7('0x14')][_0x76b7('0x15')]);return _0x10f337(_0xb87487[_0x76b7('0x14')]['message']);}else{logger['info'](_0x76b7('0x10'),_0x2d9d09,_0x76b7('0x11'));_0x10f337(_0xb87487[_0x76b7('0x16')][_0x76b7('0x15')]);}})['catch'](function(_0x2e31a0){logger[_0x76b7('0x14')](_0x76b7('0x10'),_0x2d9d09,_0x2e31a0);_0x2876e0(_0x2e31a0);});});}exports[_0x76b7('0x17')]=function(_0x476cd3){var _0x5e18bd=this;return new Promise(function(_0x5b8f04,_0x22bf88){return db['UserVoiceQueueRt'][_0x76b7('0x18')]({'raw':_0x476cd3[_0x76b7('0x19')]?_0x476cd3['options'][_0x76b7('0x1a')]===undefined?!![]:![]:!![],'where':_0x476cd3[_0x76b7('0x19')]?_0x476cd3['options'][_0x76b7('0x1b')]||null:null,'attributes':[[db[_0x76b7('0x1c')]['fn']('COUNT',db['sequelize']['fn']('IF',db[_0x76b7('0x1c')]['literal'](_0x76b7('0x1d')))),_0x76b7('0x1e')]]})['then'](function(_0x5240ef){logger[_0x76b7('0x1f')](_0x76b7('0x17'),_0x476cd3);logger['debug']('GetVoiceQueueRtPauses',_0x476cd3,JSON[_0x76b7('0x13')](_0x5240ef));_0x5b8f04(_0x5240ef);})[_0x76b7('0x20')](function(_0x58d7fa){logger[_0x76b7('0x14')](_0x76b7('0x17'),_0x58d7fa[_0x76b7('0x15')],_0x476cd3);_0x22bf88(_0x5e18bd['error'](0x1f4,_0x58d7fa[_0x76b7('0x15')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6b8f=['save','update','emit','removeListener','register','length'];(function(_0x5f0876,_0x5160c3){var _0x43c1b2=function(_0x5479c1){while(--_0x5479c1){_0x5f0876['push'](_0x5f0876['shift']());}};_0x43c1b2(++_0x5160c3);}(_0x6b8f,0x1bc));var _0xf6b8=function(_0x2cc34b,_0x271b47){_0x2cc34b=_0x2cc34b-0x0;var _0x14c913=_0x6b8f[_0x2cc34b];return _0x14c913;};'use strict';var UserVoiceQueueRtEvents=require('./userVoiceQueueRt.events');var events=[_0xf6b8('0x0'),'remove',_0xf6b8('0x1')];function createListener(_0x4e006e,_0x5443a1){return function(_0x362c27){_0x5443a1[_0xf6b8('0x2')](_0x4e006e,_0x362c27);};}function removeListener(_0x4d0ee5,_0x2b5ca9){return function(){UserVoiceQueueRtEvents[_0xf6b8('0x3')](_0x4d0ee5,_0x2b5ca9);};}exports[_0xf6b8('0x4')]=function(_0x549eac){for(var _0x2d035e=0x0,_0x79c66d=events[_0xf6b8('0x5')];_0x2d035e<_0x79c66d;_0x2d035e++){var _0x3c3430=events[_0x2d035e];var _0x557910=createListener('userVoiceQueueRt:'+_0x3c3430,_0x549eac);UserVoiceQueueRtEvents['on'](_0x3c3430,_0x557910);}};
\ No newline at end of file
+var _0x7ad3=['./userVoiceQueueRt.events','save','remove','update','length','userVoiceQueueRt:'];(function(_0x1eec60,_0x4f4b84){var _0x15c4ce=function(_0x5b5443){while(--_0x5b5443){_0x1eec60['push'](_0x1eec60['shift']());}};_0x15c4ce(++_0x4f4b84);}(_0x7ad3,0x108));var _0x37ad=function(_0x576170,_0x1712ae){_0x576170=_0x576170-0x0;var _0x397c70=_0x7ad3[_0x576170];return _0x397c70;};'use strict';var UserVoiceQueueRtEvents=require(_0x37ad('0x0'));var events=[_0x37ad('0x1'),_0x37ad('0x2'),_0x37ad('0x3')];function createListener(_0x59b2ad,_0x30c8cf){return function(_0x4e59f0){_0x30c8cf['emit'](_0x59b2ad,_0x4e59f0);};}function removeListener(_0x1853b6,_0x57ce4c){return function(){UserVoiceQueueRtEvents['removeListener'](_0x1853b6,_0x57ce4c);};}exports['register']=function(_0x341527){for(var _0x9cb624=0x0,_0x39d395=events[_0x37ad('0x4')];_0x9cb624<_0x39d395;_0x9cb624++){var _0xd8b0fe=events[_0x9cb624];var _0x2b361a=createListener(_0x37ad('0x5')+_0xd8b0fe,_0x341527);UserVoiceQueueRtEvents['on'](_0xd8b0fe,_0x2b361a);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe706=['../../components/interaction/service','../../config/environment','exports','multer','util','path','express','Router','fs-extra','../../components/auth/service'];(function(_0x225065,_0x7efe2){var _0x5ccbac=function(_0x416a23){while(--_0x416a23){_0x225065['push'](_0x225065['shift']());}};_0x5ccbac(++_0x7efe2);}(_0xe706,0xa3));var _0x6e70=function(_0x150a49,_0x47b070){_0x150a49=_0x150a49-0x0;var _0xe8c345=_0xe706[_0x150a49];return _0xe8c345;};'use strict';var multer=require(_0x6e70('0x0'));var util=require(_0x6e70('0x1'));var path=require(_0x6e70('0x2'));var timeout=require('connect-timeout');var express=require(_0x6e70('0x3'));var router=express[_0x6e70('0x4')]();var fs_extra=require(_0x6e70('0x5'));var auth=require(_0x6e70('0x6'));var interaction=require(_0x6e70('0x7'));var config=require(_0x6e70('0x8'));module[_0x6e70('0x9')]=router;
\ No newline at end of file
+var _0xa9e0=['../../components/interaction/service','../../config/environment','exports','multer','util','path','Router','../../components/auth/service'];(function(_0x420d8d,_0x78b67f){var _0x4865d7=function(_0x2965df){while(--_0x2965df){_0x420d8d['push'](_0x420d8d['shift']());}};_0x4865d7(++_0x78b67f);}(_0xa9e0,0x123));var _0x0a9e=function(_0x4154a6,_0x2c0b8e){_0x4154a6=_0x4154a6-0x0;var _0x3b2786=_0xa9e0[_0x4154a6];return _0x3b2786;};'use strict';var multer=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var path=require(_0x0a9e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x0a9e('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x0a9e('0x4'));var interaction=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));module[_0x0a9e('0x7')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9787=['exports','INTEGER','sequelize'];(function(_0x52ac28,_0x4b92b5){var _0x1dfa82=function(_0x1cd4ce){while(--_0x1cd4ce){_0x52ac28['push'](_0x52ac28['shift']());}};_0x1dfa82(++_0x4b92b5);}(_0x9787,0x122));var _0x7978=function(_0x30f87a,_0x2cce5a){_0x30f87a=_0x30f87a-0x0;var _0x3a8efc=_0x9787[_0x30f87a];return _0x3a8efc;};'use strict';var Sequelize=require(_0x7978('0x0'));module[_0x7978('0x1')]={'penalty':{'type':Sequelize[_0x7978('0x2')],'defaultValue':0x0}};
\ No newline at end of file
+var _0xe091=['sequelize','exports'];(function(_0x1c97b8,_0x55253e){var _0x19d232=function(_0x346502){while(--_0x346502){_0x1c97b8['push'](_0x1c97b8['shift']());}};_0x19d232(++_0x55253e);}(_0xe091,0x1de));var _0x1e09=function(_0x487261,_0x4432b6){_0x487261=_0x487261-0x0;var _0x5663c5=_0xe091[_0x487261];return _0x5663c5;};'use strict';var Sequelize=require(_0x1e09('0x0'));module[_0x1e09('0x1')]={'penalty':{'type':Sequelize['INTEGER'],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x27da=['api','moment','path','../../config/environment','exports','UserWhatsappQueue','lodash','util'];(function(_0x372056,_0x389c31){var _0x127aa2=function(_0x3900a5){while(--_0x3900a5){_0x372056['push'](_0x372056['shift']());}};_0x127aa2(++_0x389c31);}(_0x27da,0x116));var _0xa27d=function(_0x34ef7e,_0x21399f){_0x34ef7e=_0x34ef7e-0x0;var _0x26164c=_0x27da[_0x34ef7e];return _0x26164c;};'use strict';var _=require(_0xa27d('0x0'));var util=require(_0xa27d('0x1'));var logger=require('../../config/logger')(_0xa27d('0x2'));var moment=require(_0xa27d('0x3'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0xa27d('0x4'));var rimraf=require('rimraf');var config=require(_0xa27d('0x5'));var attributes=require('./userWhatsappQueue.attributes');module[_0xa27d('0x6')]=function(_0x5509ac,_0x1824e1){return _0x5509ac['define'](_0xa27d('0x7'),attributes,{'tableName':'user_has_whatsapp_queues','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x921e=['util','../../config/logger','api','moment','bluebird','path','rimraf','./userWhatsappQueue.attributes','exports','define','UserWhatsappQueue','user_has_whatsapp_queues'];(function(_0x574c15,_0x3f55c6){var _0x15a35d=function(_0x2d8ed6){while(--_0x2d8ed6){_0x574c15['push'](_0x574c15['shift']());}};_0x15a35d(++_0x3f55c6);}(_0x921e,0xa8));var _0xe921=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x921e[_0x321bb2];return _0x9c12ed;};'use strict';var _=require('lodash');var util=require(_0xe921('0x0'));var logger=require(_0xe921('0x1'))(_0xe921('0x2'));var moment=require(_0xe921('0x3'));var BPromise=require(_0xe921('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xe921('0x5'));var rimraf=require(_0xe921('0x6'));var config=require('../../config/environment');var attributes=require(_0xe921('0x7'));module[_0xe921('0x8')]=function(_0x1a75f4,_0x348756){return _0x1a75f4[_0xe921('0x9')](_0xe921('0xa'),attributes,{'tableName':_0xe921('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdb7b=['stringify','error','code','message','lodash','randomstring','../../config/logger','rpc','../../config/environment','jayson/promise','http','then','info','UserWhatsappQueue,\x20%s,\x20%s','request\x20sent','debug'];(function(_0x7def10,_0x8941f6){var _0x41f434=function(_0x2055dc){while(--_0x2055dc){_0x7def10['push'](_0x7def10['shift']());}};_0x41f434(++_0x8941f6);}(_0xdb7b,0xb4));var _0xbdb7=function(_0xb9c7ba,_0x4b2cd2){_0xb9c7ba=_0xb9c7ba-0x0;var _0xfb3eca=_0xdb7b[_0xb9c7ba];return _0xfb3eca;};'use strict';var _=require(_0xbdb7('0x0'));var util=require('util');var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0xbdb7('0x1'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0xbdb7('0x2'))(_0xbdb7('0x3'));var config=require(_0xbdb7('0x4'));var jayson=require(_0xbdb7('0x5'));var client=jayson['client'][_0xbdb7('0x6')]({'port':0x232a});function respondWithRpcPromise(_0x2c2378,_0x5d5e36,_0x247874){return new BPromise(function(_0x4f3050,_0x24af1d){return client['request'](_0x2c2378,_0x247874)[_0xbdb7('0x7')](function(_0x3bf0d9){logger[_0xbdb7('0x8')](_0xbdb7('0x9'),_0x5d5e36,_0xbdb7('0xa'));logger[_0xbdb7('0xb')]('UserWhatsappQueue,\x20%s,\x20%s,\x20%s',_0x5d5e36,_0xbdb7('0xa'),JSON[_0xbdb7('0xc')](_0x3bf0d9));if(_0x3bf0d9[_0xbdb7('0xd')]){if(_0x3bf0d9[_0xbdb7('0xd')][_0xbdb7('0xe')]===0x1f4){logger[_0xbdb7('0xd')](_0xbdb7('0x9'),_0x5d5e36,_0x3bf0d9[_0xbdb7('0xd')][_0xbdb7('0xf')]);return _0x24af1d(_0x3bf0d9[_0xbdb7('0xd')][_0xbdb7('0xf')]);}logger[_0xbdb7('0xd')](_0xbdb7('0x9'),_0x5d5e36,_0x3bf0d9[_0xbdb7('0xd')][_0xbdb7('0xf')]);return _0x4f3050(_0x3bf0d9[_0xbdb7('0xd')][_0xbdb7('0xf')]);}else{logger[_0xbdb7('0x8')](_0xbdb7('0x9'),_0x5d5e36,_0xbdb7('0xa'));_0x4f3050(_0x3bf0d9['result'][_0xbdb7('0xf')]);}})['catch'](function(_0x30d70a){logger[_0xbdb7('0xd')]('UserWhatsappQueue,\x20%s,\x20%s',_0x5d5e36,_0x30d70a);_0x24af1d(_0x30d70a);});});}
\ No newline at end of file
+var _0x5153=['info','UserWhatsappQueue,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','catch','util','moment','bluebird','randomstring','../../config/utils','../../config/logger','rpc','../../config/environment','client','request'];(function(_0x256422,_0x367394){var _0x55dddc=function(_0x1594bc){while(--_0x1594bc){_0x256422['push'](_0x256422['shift']());}};_0x55dddc(++_0x367394);}(_0x5153,0x1d1));var _0x3515=function(_0x34cbaf,_0x686a54){_0x34cbaf=_0x34cbaf-0x0;var _0x3f4aec=_0x5153[_0x34cbaf];return _0x3f4aec;};'use strict';var _=require('lodash');var util=require(_0x3515('0x0'));var moment=require(_0x3515('0x1'));var BPromise=require(_0x3515('0x2'));var rs=require(_0x3515('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x3515('0x4'));var logger=require(_0x3515('0x5'))(_0x3515('0x6'));var config=require(_0x3515('0x7'));var jayson=require('jayson/promise');var client=jayson[_0x3515('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x5854c2,_0x5ceb78,_0x4b9049){return new BPromise(function(_0x371882,_0x5014de){return client[_0x3515('0x9')](_0x5854c2,_0x4b9049)['then'](function(_0x5325c5){logger[_0x3515('0xa')](_0x3515('0xb'),_0x5ceb78,_0x3515('0xc'));logger[_0x3515('0xd')]('UserWhatsappQueue,\x20%s,\x20%s,\x20%s',_0x5ceb78,_0x3515('0xc'),JSON[_0x3515('0xe')](_0x5325c5));if(_0x5325c5['error']){if(_0x5325c5[_0x3515('0xf')][_0x3515('0x10')]===0x1f4){logger[_0x3515('0xf')](_0x3515('0xb'),_0x5ceb78,_0x5325c5[_0x3515('0xf')][_0x3515('0x11')]);return _0x5014de(_0x5325c5['error'][_0x3515('0x11')]);}logger[_0x3515('0xf')]('UserWhatsappQueue,\x20%s,\x20%s',_0x5ceb78,_0x5325c5['error'][_0x3515('0x11')]);return _0x371882(_0x5325c5[_0x3515('0xf')][_0x3515('0x11')]);}else{logger[_0x3515('0xa')](_0x3515('0xb'),_0x5ceb78,_0x3515('0xc'));_0x371882(_0x5325c5['result'][_0x3515('0x11')]);}})[_0x3515('0x12')](function(_0x111f9c){logger[_0x3515('0xf')](_0x3515('0xb'),_0x5ceb78,_0x111f9c);_0x5014de(_0x111f9c);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xadb8=['path','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./variable.controller','isAuthenticated','index','get','/:id','show','post','destroy','exports'];(function(_0x3b8dae,_0x34f020){var _0x36e826=function(_0x7f62c6){while(--_0x7f62c6){_0x3b8dae['push'](_0x3b8dae['shift']());}};_0x36e826(++_0x34f020);}(_0xadb8,0x1d0));var _0x8adb=function(_0x180ac2,_0x219d65){_0x180ac2=_0x180ac2-0x0;var _0xfcaede=_0xadb8[_0x180ac2];return _0xfcaede;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x8adb('0x0'));var timeout=require('connect-timeout');var express=require(_0x8adb('0x1'));var router=express[_0x8adb('0x2')]();var fs_extra=require(_0x8adb('0x3'));var auth=require(_0x8adb('0x4'));var interaction=require(_0x8adb('0x5'));var config=require(_0x8adb('0x6'));var controller=require(_0x8adb('0x7'));router['get']('/',auth[_0x8adb('0x8')](),controller[_0x8adb('0x9')]);router[_0x8adb('0xa')](_0x8adb('0xb'),auth[_0x8adb('0x8')](),controller[_0x8adb('0xc')]);router[_0x8adb('0xd')]('/',auth['isAuthenticated'](),controller['create']);router['put'](_0x8adb('0xb'),auth['isAuthenticated'](),controller['update']);router['delete'](_0x8adb('0xb'),auth[_0x8adb('0x8')](),controller[_0x8adb('0xe')]);module[_0x8adb('0xf')]=router;
\ No newline at end of file
+var _0xd493=['update','delete','destroy','multer','path','connect-timeout','Router','../../components/interaction/service','../../config/environment','isAuthenticated','index','get','/:id','show','post','create','put'];(function(_0x599798,_0x2cbe80){var _0x592116=function(_0x572d13){while(--_0x572d13){_0x599798['push'](_0x599798['shift']());}};_0x592116(++_0x2cbe80);}(_0xd493,0x1bd));var _0x3d49=function(_0x409ba2,_0x479e82){_0x409ba2=_0x409ba2-0x0;var _0x445a93=_0xd493[_0x409ba2];return _0x445a93;};'use strict';var multer=require(_0x3d49('0x0'));var util=require('util');var path=require(_0x3d49('0x1'));var timeout=require(_0x3d49('0x2'));var express=require('express');var router=express[_0x3d49('0x3')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0x3d49('0x4'));var config=require(_0x3d49('0x5'));var controller=require('./variable.controller');router['get']('/',auth[_0x3d49('0x6')](),controller[_0x3d49('0x7')]);router[_0x3d49('0x8')](_0x3d49('0x9'),auth['isAuthenticated'](),controller[_0x3d49('0xa')]);router[_0x3d49('0xb')]('/',auth[_0x3d49('0x6')](),controller[_0x3d49('0xc')]);router[_0x3d49('0xd')](_0x3d49('0x9'),auth[_0x3d49('0x6')](),controller[_0x3d49('0xe')]);router[_0x3d49('0xf')](_0x3d49('0x9'),auth['isAuthenticated'](),controller[_0x3d49('0x10')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xad7c=['sequelize','exports','STRING','name'];(function(_0x4b369d,_0x265eb8){var _0x571a98=function(_0x56341a){while(--_0x56341a){_0x4b369d['push'](_0x4b369d['shift']());}};_0x571a98(++_0x265eb8);}(_0xad7c,0x8c));var _0xcad7=function(_0x133dcc,_0x56e3ac){_0x133dcc=_0x133dcc-0x0;var _0xf8263a=_0xad7c[_0x133dcc];return _0xf8263a;};'use strict';var Sequelize=require(_0xcad7('0x0'));module[_0xcad7('0x1')]={'name':{'type':Sequelize[_0xcad7('0x2')],'unique':_0xcad7('0x3'),'allowNull':![],'validate':{'notEmpty':!![]}},'description':{'type':Sequelize[_0xcad7('0x2')]}};
\ No newline at end of file
+var _0x008c=['sequelize','exports','STRING','name'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x008c,0x188));var _0xc008=function(_0x4495b6,_0x1660d5){_0x4495b6=_0x4495b6-0x0;var _0x2ff893=_0x008c[_0x4495b6];return _0x2ff893;};'use strict';var Sequelize=require(_0xc008('0x0'));module[_0xc008('0x1')]={'name':{'type':Sequelize[_0xc008('0x2')],'unique':_0xc008('0x3'),'allowNull':![],'validate':{'notEmpty':!![]}},'description':{'type':Sequelize[_0xc008('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x06c6=['keys','include','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','find','userProfileId','autoAssociation','UserProfileResource','update','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','path','sox','to-csv','ejs','lodash','squel','crypto','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','undefined','limit','count','offset','set','json','apply','reject','save','destroy','Variables','then','end','error','name','index','map','Variable','rawAttributes','fieldName','key','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','merge','type','VIRTUAL','filter','options','includeAll','rows','catch','show','params'];(function(_0x59c506,_0x3f8d6c){var _0x2f3fbf=function(_0x278f9c){while(--_0x278f9c){_0x59c506['push'](_0x59c506['shift']());}};_0x2f3fbf(++_0x3f8d6c);}(_0x06c6,0x159));var _0x606c=function(_0xe9afaa,_0x91cbae){_0xe9afaa=_0xe9afaa-0x0;var _0x417b7=_0x06c6[_0xe9afaa];return _0x417b7;};'use strict';var emlformat=require(_0x606c('0x0'));var rimraf=require(_0x606c('0x1'));var zipdir=require(_0x606c('0x2'));var jsonpatch=require(_0x606c('0x3'));var rp=require(_0x606c('0x4'));var moment=require(_0x606c('0x5'));var BPromise=require(_0x606c('0x6'));var Mustache=require('mustache');var util=require('util');var path=require(_0x606c('0x7'));var sox=require(_0x606c('0x8'));var csv=require(_0x606c('0x9'));var ejs=require(_0x606c('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x606c('0xb'));var squel=require(_0x606c('0xc'));var crypto=require(_0x606c('0xd'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x606c('0x9'));var querystring=require(_0x606c('0xe'));var Papa=require(_0x606c('0xf'));var Redis=require('ioredis');var authService=require(_0x606c('0x10'));var qs=require(_0x606c('0x11'));var as=require(_0x606c('0x12'));var hardwareService=require(_0x606c('0x13'));var logger=require(_0x606c('0x14'))(_0x606c('0x15'));var utils=require('../../config/utils');var config=require(_0x606c('0x16'));var licenseUtil=require(_0x606c('0x17'));var db=require(_0x606c('0x18'))['db'];function respondWithStatusCode(_0x51cff4,_0x4f7ba9){_0x4f7ba9=_0x4f7ba9||0xcc;return function(_0x510e3d){if(_0x510e3d){return _0x51cff4[_0x606c('0x19')](_0x4f7ba9);}return _0x51cff4[_0x606c('0x1a')](_0x4f7ba9)['end']();};}function respondWithResult(_0x3fb8c4,_0x559046){_0x559046=_0x559046||0xc8;return function(_0x482719){if(_0x482719){return _0x3fb8c4[_0x606c('0x1a')](_0x559046)['json'](_0x482719);}};}function respondWithFilteredResult(_0x44c837,_0x527787){return function(_0x2ebd86){if(_0x2ebd86){var _0x2493ed=typeof _0x527787['offset']===_0x606c('0x1b')&&typeof _0x527787[_0x606c('0x1c')]===_0x606c('0x1b');var _0x140f7d=_0x2ebd86[_0x606c('0x1d')];var _0x536470=_0x2493ed?0x0:_0x527787[_0x606c('0x1e')];var _0x15ee7e=_0x2493ed?_0x2ebd86[_0x606c('0x1d')]:_0x527787[_0x606c('0x1e')]+_0x527787['limit'];var _0x38d968;if(_0x15ee7e>=_0x140f7d){_0x15ee7e=_0x140f7d;_0x38d968=0xc8;}else{_0x38d968=0xce;}_0x44c837['status'](_0x38d968);return _0x44c837[_0x606c('0x1f')]('Content-Range',_0x536470+'-'+_0x15ee7e+'/'+_0x140f7d)[_0x606c('0x20')](_0x2ebd86);}return null;};}function patchUpdates(_0xfbf22c){return function(_0x2ccabc){try{jsonpatch[_0x606c('0x21')](_0x2ccabc,_0xfbf22c,!![]);}catch(_0x5f2119){return BPromise[_0x606c('0x22')](_0x5f2119);}return _0x2ccabc[_0x606c('0x23')]();};}function saveUpdates(_0x5ed978,_0xe8751b){return function(_0x430da0){if(_0x430da0){return _0x430da0['update'](_0x5ed978)['then'](function(_0x594f78){return _0x594f78;});}return null;};}function removeEntity(_0x2dc006,_0x5d8994){return function(_0x3a26f0){if(_0x3a26f0){return _0x3a26f0[_0x606c('0x24')]()['then'](function(){var _0x3d3f1f=_0x3a26f0['get']({'plain':!![]});var _0x5667ed=_0x606c('0x25');return db['UserProfileResource'][_0x606c('0x24')]({'where':{'type':_0x5667ed,'resourceId':_0x3d3f1f['id']}})[_0x606c('0x26')](function(){return _0x3a26f0;});})[_0x606c('0x26')](function(){_0x2dc006[_0x606c('0x1a')](0xcc)[_0x606c('0x27')]();});}};}function handleEntityNotFound(_0x42c6a4,_0x449103){return function(_0x2942ed){if(!_0x2942ed){_0x42c6a4[_0x606c('0x19')](0x194);}return _0x2942ed;};}function handleError(_0x2ee1ae,_0x4db2ff){_0x4db2ff=_0x4db2ff||0x1f4;return function(_0x518c26){logger[_0x606c('0x28')](_0x518c26['stack']);if(_0x518c26[_0x606c('0x29')]){delete _0x518c26[_0x606c('0x29')];}_0x2ee1ae[_0x606c('0x1a')](_0x4db2ff)['send'](_0x518c26);};}exports[_0x606c('0x2a')]=function(_0x2d70de,_0x1e6505){var _0x339d53={},_0x5488fd={},_0x4dc7e6={'count':0x0,'rows':[]};var _0x545a8d=_[_0x606c('0x2b')](db[_0x606c('0x2c')][_0x606c('0x2d')],function(_0x4511c5){return{'name':_0x4511c5[_0x606c('0x2e')],'type':_0x4511c5['type'][_0x606c('0x2f')]};});_0x5488fd[_0x606c('0x30')]=_[_0x606c('0x2b')](_0x545a8d,_0x606c('0x29'));_0x5488fd['query']=_['keys'](_0x2d70de[_0x606c('0x31')]);_0x5488fd[_0x606c('0x32')]=_[_0x606c('0x33')](_0x5488fd[_0x606c('0x30')],_0x5488fd[_0x606c('0x31')]);_0x339d53[_0x606c('0x34')]=_[_0x606c('0x33')](_0x5488fd['model'],qs['fields'](_0x2d70de[_0x606c('0x31')][_0x606c('0x35')]));_0x339d53[_0x606c('0x34')]=_0x339d53[_0x606c('0x34')][_0x606c('0x36')]?_0x339d53[_0x606c('0x34')]:_0x5488fd[_0x606c('0x30')];if(!_0x2d70de[_0x606c('0x31')][_0x606c('0x37')]('nolimit')){_0x339d53[_0x606c('0x1c')]=qs['limit'](_0x2d70de[_0x606c('0x31')][_0x606c('0x1c')]);_0x339d53[_0x606c('0x1e')]=qs['offset'](_0x2d70de[_0x606c('0x31')][_0x606c('0x1e')]);}_0x339d53[_0x606c('0x38')]=qs[_0x606c('0x39')](_0x2d70de['query'][_0x606c('0x39')]);_0x339d53[_0x606c('0x3a')]=qs[_0x606c('0x32')](_[_0x606c('0x3b')](_0x2d70de[_0x606c('0x31')],_0x5488fd[_0x606c('0x32')]),_0x545a8d);if(_0x2d70de['query']['filter']){_0x339d53[_0x606c('0x3a')]=_[_0x606c('0x3c')](_0x339d53['where'],{'$or':_[_0x606c('0x2b')](_0x545a8d,function(_0x1092c8){if(_0x1092c8[_0x606c('0x3d')]!==_0x606c('0x3e')){var _0x3aaa3e={};_0x3aaa3e[_0x1092c8[_0x606c('0x29')]]={'$like':'%'+_0x2d70de[_0x606c('0x31')][_0x606c('0x3f')]+'%'};return _0x3aaa3e;}})});}_0x339d53=_[_0x606c('0x3c')]({},_0x339d53,_0x2d70de[_0x606c('0x40')]);var _0x3f1eb9={'where':_0x339d53[_0x606c('0x3a')]};return db[_0x606c('0x2c')][_0x606c('0x1d')](_0x3f1eb9)[_0x606c('0x26')](function(_0x533afd){_0x4dc7e6[_0x606c('0x1d')]=_0x533afd;if(_0x2d70de[_0x606c('0x31')][_0x606c('0x41')]){_0x339d53['include']=[{'all':!![]}];}return db[_0x606c('0x2c')]['findAll'](_0x339d53);})[_0x606c('0x26')](function(_0x21366e){_0x4dc7e6[_0x606c('0x42')]=_0x21366e;return _0x4dc7e6;})[_0x606c('0x26')](respondWithFilteredResult(_0x1e6505,_0x339d53))[_0x606c('0x43')](handleError(_0x1e6505,null));};exports[_0x606c('0x44')]=function(_0x194689,_0x3bb7d8){var _0x1a379d={'raw':!![],'where':{'id':_0x194689[_0x606c('0x45')]['id']}},_0x2b97ae={};_0x2b97ae['model']=_['keys'](db['Variable']['rawAttributes']);_0x2b97ae[_0x606c('0x31')]=_[_0x606c('0x46')](_0x194689[_0x606c('0x31')]);_0x2b97ae[_0x606c('0x32')]=_[_0x606c('0x33')](_0x2b97ae[_0x606c('0x30')],_0x2b97ae[_0x606c('0x31')]);_0x1a379d['attributes']=_[_0x606c('0x33')](_0x2b97ae['model'],qs['fields'](_0x194689[_0x606c('0x31')][_0x606c('0x35')]));_0x1a379d[_0x606c('0x34')]=_0x1a379d[_0x606c('0x34')]['length']?_0x1a379d[_0x606c('0x34')]:_0x2b97ae[_0x606c('0x30')];if(_0x194689[_0x606c('0x31')][_0x606c('0x41')]){_0x1a379d[_0x606c('0x47')]=[{'all':!![]}];}_0x1a379d=_[_0x606c('0x3c')]({},_0x1a379d,_0x194689[_0x606c('0x40')]);return db[_0x606c('0x2c')]['find'](_0x1a379d)['then'](handleEntityNotFound(_0x3bb7d8,null))['then'](respondWithResult(_0x3bb7d8,null))['catch'](handleError(_0x3bb7d8,null));};exports['create']=function(_0x8a923a,_0x305f11){return db[_0x606c('0x2c')][_0x606c('0x48')](_0x8a923a[_0x606c('0x49')],{})[_0x606c('0x26')](function(_0x31265f){var _0x4e08ae=_0x8a923a[_0x606c('0x4a')][_0x606c('0x4b')]({'plain':!![]});if(!_0x4e08ae)throw new Error(_0x606c('0x4c'));if(_0x4e08ae['role']===_0x606c('0x4a')){var _0x52baba=_0x31265f['get']({'plain':!![]});var _0x3b30c3=_0x606c('0x25');return db[_0x606c('0x4d')][_0x606c('0x4e')]({'where':{'name':_0x3b30c3,'userProfileId':_0x4e08ae[_0x606c('0x4f')]},'raw':!![]})[_0x606c('0x26')](function(_0x30dd8e){if(_0x30dd8e&&_0x30dd8e[_0x606c('0x50')]===0x0){return db[_0x606c('0x51')]['create']({'name':_0x52baba['name'],'resourceId':_0x52baba['id'],'type':_0x30dd8e[_0x606c('0x29')],'sectionId':_0x30dd8e['id']},{})[_0x606c('0x26')](function(){return _0x31265f;});}else{return _0x31265f;}})[_0x606c('0x43')](function(_0x4a2cba){logger[_0x606c('0x28')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x4a2cba);throw _0x4a2cba;});}return _0x31265f;})['then'](respondWithResult(_0x305f11,0xc9))[_0x606c('0x43')](handleError(_0x305f11,null));};exports[_0x606c('0x52')]=function(_0xf9a4f6,_0x388773){if(_0xf9a4f6['body']['id']){delete _0xf9a4f6[_0x606c('0x49')]['id'];}return db['Variable'][_0x606c('0x4e')]({'where':{'id':_0xf9a4f6['params']['id']}})['then'](handleEntityNotFound(_0x388773,null))[_0x606c('0x26')](saveUpdates(_0xf9a4f6[_0x606c('0x49')],null))[_0x606c('0x26')](respondWithResult(_0x388773,null))[_0x606c('0x43')](handleError(_0x388773,null));};exports[_0x606c('0x24')]=function(_0x37c5e6,_0x45cbf1){return db[_0x606c('0x2c')][_0x606c('0x4e')]({'where':{'id':_0x37c5e6[_0x606c('0x45')]['id']}})['then'](handleEntityNotFound(_0x45cbf1,null))[_0x606c('0x26')](removeEntity(_0x45cbf1,null))['catch'](handleError(_0x45cbf1,null));};
\ No newline at end of file
+var _0xa826=['intersection','attributes','fields','length','limit','sort','where','pick','filter','merge','VIRTUAL','rows','show','params','includeAll','include','options','catch','create','body','user','role','Variables','UserProfileSection','find','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','rimraf','request-promise','mustache','path','sox','lodash','crypto','jsforce','to-csv','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','json','offset','undefined','count','status','set','Content-Range','apply','reject','save','update','then','destroy','get','UserProfileResource','name','send','index','map','Variable','rawAttributes','fieldName','type','key','model','query','filters'];(function(_0x432c68,_0x527b0f){var _0x5b0cf0=function(_0x1dd8c9){while(--_0x1dd8c9){_0x432c68['push'](_0x432c68['shift']());}};_0x5b0cf0(++_0x527b0f);}(_0xa826,0xfd));var _0x6a82=function(_0x2dafbe,_0x5d04de){_0x2dafbe=_0x2dafbe-0x0;var _0x58a45a=_0xa826[_0x2dafbe];return _0x58a45a;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x6a82('0x0'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x6a82('0x1'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x6a82('0x2'));var util=require('util');var path=require(_0x6a82('0x3'));var sox=require(_0x6a82('0x4'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x6a82('0x5'));var squel=require('squel');var crypto=require(_0x6a82('0x6'));var jsforce=require(_0x6a82('0x7'));var deskjs=require('desk.js');var toCsv=require(_0x6a82('0x8'));var querystring=require('querystring');var Papa=require(_0x6a82('0x9'));var Redis=require('ioredis');var authService=require(_0x6a82('0xa'));var qs=require(_0x6a82('0xb'));var as=require(_0x6a82('0xc'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x6a82('0xd'))('api');var utils=require(_0x6a82('0xe'));var config=require(_0x6a82('0xf'));var licenseUtil=require(_0x6a82('0x10'));var db=require(_0x6a82('0x11'))['db'];function respondWithStatusCode(_0x14cbe4,_0xb9a9e7){_0xb9a9e7=_0xb9a9e7||0xcc;return function(_0x1c397a){if(_0x1c397a){return _0x14cbe4[_0x6a82('0x12')](_0xb9a9e7);}return _0x14cbe4['status'](_0xb9a9e7)[_0x6a82('0x13')]();};}function respondWithResult(_0x23a2c3,_0x3794a6){_0x3794a6=_0x3794a6||0xc8;return function(_0x4dbeb5){if(_0x4dbeb5){return _0x23a2c3['status'](_0x3794a6)[_0x6a82('0x14')](_0x4dbeb5);}};}function respondWithFilteredResult(_0x3e82ad,_0x39ccd9){return function(_0x58d22d){if(_0x58d22d){var _0x25d831=typeof _0x39ccd9[_0x6a82('0x15')]===_0x6a82('0x16')&&typeof _0x39ccd9['limit']===_0x6a82('0x16');var _0x334323=_0x58d22d[_0x6a82('0x17')];var _0x55974d=_0x25d831?0x0:_0x39ccd9['offset'];var _0x1cadf8=_0x25d831?_0x58d22d[_0x6a82('0x17')]:_0x39ccd9[_0x6a82('0x15')]+_0x39ccd9['limit'];var _0x302ea4;if(_0x1cadf8>=_0x334323){_0x1cadf8=_0x334323;_0x302ea4=0xc8;}else{_0x302ea4=0xce;}_0x3e82ad[_0x6a82('0x18')](_0x302ea4);return _0x3e82ad[_0x6a82('0x19')](_0x6a82('0x1a'),_0x55974d+'-'+_0x1cadf8+'/'+_0x334323)[_0x6a82('0x14')](_0x58d22d);}return null;};}function patchUpdates(_0x4a1536){return function(_0x4f529c){try{jsonpatch[_0x6a82('0x1b')](_0x4f529c,_0x4a1536,!![]);}catch(_0x31ec73){return BPromise[_0x6a82('0x1c')](_0x31ec73);}return _0x4f529c[_0x6a82('0x1d')]();};}function saveUpdates(_0x4794b3,_0x37959e){return function(_0x4d9924){if(_0x4d9924){return _0x4d9924[_0x6a82('0x1e')](_0x4794b3)[_0x6a82('0x1f')](function(_0x2a7ee4){return _0x2a7ee4;});}return null;};}function removeEntity(_0x4e991c,_0x2535b0){return function(_0x457e67){if(_0x457e67){return _0x457e67[_0x6a82('0x20')]()['then'](function(){var _0x460380=_0x457e67[_0x6a82('0x21')]({'plain':!![]});var _0x2ec64a='Variables';return db[_0x6a82('0x22')][_0x6a82('0x20')]({'where':{'type':_0x2ec64a,'resourceId':_0x460380['id']}})[_0x6a82('0x1f')](function(){return _0x457e67;});})[_0x6a82('0x1f')](function(){_0x4e991c[_0x6a82('0x18')](0xcc)[_0x6a82('0x13')]();});}};}function handleEntityNotFound(_0x47a844,_0x558429){return function(_0x421090){if(!_0x421090){_0x47a844[_0x6a82('0x12')](0x194);}return _0x421090;};}function handleError(_0x3d90ea,_0x2b2772){_0x2b2772=_0x2b2772||0x1f4;return function(_0x216bc8){logger['error'](_0x216bc8['stack']);if(_0x216bc8[_0x6a82('0x23')]){delete _0x216bc8['name'];}_0x3d90ea[_0x6a82('0x18')](_0x2b2772)[_0x6a82('0x24')](_0x216bc8);};}exports[_0x6a82('0x25')]=function(_0x5ee966,_0x5d2694){var _0x5aad8e={},_0x159933={},_0x550d9c={'count':0x0,'rows':[]};var _0x3243fd=_[_0x6a82('0x26')](db[_0x6a82('0x27')][_0x6a82('0x28')],function(_0x1f9a03){return{'name':_0x1f9a03[_0x6a82('0x29')],'type':_0x1f9a03[_0x6a82('0x2a')][_0x6a82('0x2b')]};});_0x159933[_0x6a82('0x2c')]=_[_0x6a82('0x26')](_0x3243fd,_0x6a82('0x23'));_0x159933[_0x6a82('0x2d')]=_['keys'](_0x5ee966[_0x6a82('0x2d')]);_0x159933[_0x6a82('0x2e')]=_[_0x6a82('0x2f')](_0x159933[_0x6a82('0x2c')],_0x159933[_0x6a82('0x2d')]);_0x5aad8e[_0x6a82('0x30')]=_[_0x6a82('0x2f')](_0x159933[_0x6a82('0x2c')],qs[_0x6a82('0x31')](_0x5ee966[_0x6a82('0x2d')][_0x6a82('0x31')]));_0x5aad8e['attributes']=_0x5aad8e['attributes'][_0x6a82('0x32')]?_0x5aad8e[_0x6a82('0x30')]:_0x159933[_0x6a82('0x2c')];if(!_0x5ee966[_0x6a82('0x2d')]['hasOwnProperty']('nolimit')){_0x5aad8e[_0x6a82('0x33')]=qs[_0x6a82('0x33')](_0x5ee966[_0x6a82('0x2d')]['limit']);_0x5aad8e['offset']=qs[_0x6a82('0x15')](_0x5ee966[_0x6a82('0x2d')]['offset']);}_0x5aad8e['order']=qs[_0x6a82('0x34')](_0x5ee966[_0x6a82('0x2d')]['sort']);_0x5aad8e[_0x6a82('0x35')]=qs[_0x6a82('0x2e')](_[_0x6a82('0x36')](_0x5ee966[_0x6a82('0x2d')],_0x159933[_0x6a82('0x2e')]),_0x3243fd);if(_0x5ee966['query'][_0x6a82('0x37')]){_0x5aad8e['where']=_[_0x6a82('0x38')](_0x5aad8e[_0x6a82('0x35')],{'$or':_[_0x6a82('0x26')](_0x3243fd,function(_0x50c5a4){if(_0x50c5a4[_0x6a82('0x2a')]!==_0x6a82('0x39')){var _0x5ea899={};_0x5ea899[_0x50c5a4['name']]={'$like':'%'+_0x5ee966[_0x6a82('0x2d')][_0x6a82('0x37')]+'%'};return _0x5ea899;}})});}_0x5aad8e=_[_0x6a82('0x38')]({},_0x5aad8e,_0x5ee966['options']);var _0x27bbd8={'where':_0x5aad8e[_0x6a82('0x35')]};return db[_0x6a82('0x27')]['count'](_0x27bbd8)[_0x6a82('0x1f')](function(_0x5120c6){_0x550d9c[_0x6a82('0x17')]=_0x5120c6;if(_0x5ee966[_0x6a82('0x2d')]['includeAll']){_0x5aad8e['include']=[{'all':!![]}];}return db['Variable']['findAll'](_0x5aad8e);})[_0x6a82('0x1f')](function(_0x452de3){_0x550d9c[_0x6a82('0x3a')]=_0x452de3;return _0x550d9c;})[_0x6a82('0x1f')](respondWithFilteredResult(_0x5d2694,_0x5aad8e))['catch'](handleError(_0x5d2694,null));};exports[_0x6a82('0x3b')]=function(_0x1c1165,_0x3f5748){var _0x3bea04={'raw':!![],'where':{'id':_0x1c1165[_0x6a82('0x3c')]['id']}},_0x5aae75={};_0x5aae75[_0x6a82('0x2c')]=_['keys'](db[_0x6a82('0x27')][_0x6a82('0x28')]);_0x5aae75['query']=_['keys'](_0x1c1165['query']);_0x5aae75[_0x6a82('0x2e')]=_[_0x6a82('0x2f')](_0x5aae75['model'],_0x5aae75['query']);_0x3bea04[_0x6a82('0x30')]=_[_0x6a82('0x2f')](_0x5aae75[_0x6a82('0x2c')],qs['fields'](_0x1c1165[_0x6a82('0x2d')][_0x6a82('0x31')]));_0x3bea04[_0x6a82('0x30')]=_0x3bea04[_0x6a82('0x30')][_0x6a82('0x32')]?_0x3bea04[_0x6a82('0x30')]:_0x5aae75[_0x6a82('0x2c')];if(_0x1c1165[_0x6a82('0x2d')][_0x6a82('0x3d')]){_0x3bea04[_0x6a82('0x3e')]=[{'all':!![]}];}_0x3bea04=_[_0x6a82('0x38')]({},_0x3bea04,_0x1c1165[_0x6a82('0x3f')]);return db[_0x6a82('0x27')]['find'](_0x3bea04)['then'](handleEntityNotFound(_0x3f5748,null))[_0x6a82('0x1f')](respondWithResult(_0x3f5748,null))[_0x6a82('0x40')](handleError(_0x3f5748,null));};exports['create']=function(_0x2978b9,_0x5a76d8){return db[_0x6a82('0x27')][_0x6a82('0x41')](_0x2978b9[_0x6a82('0x42')],{})[_0x6a82('0x1f')](function(_0x46fbdd){var _0x2e787c=_0x2978b9[_0x6a82('0x43')]['get']({'plain':!![]});if(!_0x2e787c)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x2e787c[_0x6a82('0x44')]===_0x6a82('0x43')){var _0x1261c3=_0x46fbdd['get']({'plain':!![]});var _0x19b7b1=_0x6a82('0x45');return db[_0x6a82('0x46')][_0x6a82('0x47')]({'where':{'name':_0x19b7b1,'userProfileId':_0x2e787c['userProfileId']},'raw':!![]})[_0x6a82('0x1f')](function(_0x5dd924){if(_0x5dd924&&_0x5dd924[_0x6a82('0x48')]===0x0){return db[_0x6a82('0x22')]['create']({'name':_0x1261c3[_0x6a82('0x23')],'resourceId':_0x1261c3['id'],'type':_0x5dd924['name'],'sectionId':_0x5dd924['id']},{})[_0x6a82('0x1f')](function(){return _0x46fbdd;});}else{return _0x46fbdd;}})[_0x6a82('0x40')](function(_0xd8ce72){logger[_0x6a82('0x49')](_0x6a82('0x4a'),_0xd8ce72);throw _0xd8ce72;});}return _0x46fbdd;})[_0x6a82('0x1f')](respondWithResult(_0x5a76d8,0xc9))[_0x6a82('0x40')](handleError(_0x5a76d8,null));};exports[_0x6a82('0x1e')]=function(_0x5607a5,_0x431a95){if(_0x5607a5[_0x6a82('0x42')]['id']){delete _0x5607a5[_0x6a82('0x42')]['id'];}return db[_0x6a82('0x27')][_0x6a82('0x47')]({'where':{'id':_0x5607a5[_0x6a82('0x3c')]['id']}})[_0x6a82('0x1f')](handleEntityNotFound(_0x431a95,null))[_0x6a82('0x1f')](saveUpdates(_0x5607a5[_0x6a82('0x42')],null))[_0x6a82('0x1f')](respondWithResult(_0x431a95,null))[_0x6a82('0x40')](handleError(_0x431a95,null));};exports[_0x6a82('0x20')]=function(_0x3f7919,_0x57bd19){return db[_0x6a82('0x27')]['find']({'where':{'id':_0x3f7919[_0x6a82('0x3c')]['id']}})[_0x6a82('0x1f')](handleEntityNotFound(_0x57bd19,null))['then'](removeEntity(_0x57bd19,null))[_0x6a82('0x40')](handleError(_0x57bd19,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa03b=['bluebird','request-promise','rimraf','../../config/environment','define','Variable','tools_variables','lodash','../../config/logger','api'];(function(_0x2dc375,_0x24b1d6){var _0x4e9fed=function(_0x7f55d6){while(--_0x7f55d6){_0x2dc375['push'](_0x2dc375['shift']());}};_0x4e9fed(++_0x24b1d6);}(_0xa03b,0x16f));var _0xba03=function(_0x366e99,_0x15d82d){_0x366e99=_0x366e99-0x0;var _0x180bbe=_0xa03b[_0x366e99];return _0x180bbe;};'use strict';var _=require(_0xba03('0x0'));var util=require('util');var logger=require(_0xba03('0x1'))(_0xba03('0x2'));var moment=require('moment');var BPromise=require(_0xba03('0x3'));var rp=require(_0xba03('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0xba03('0x5'));var config=require(_0xba03('0x6'));var attributes=require('./variable.attributes');module['exports']=function(_0x2f02d0,_0x58faf9){return _0x2f02d0[_0xba03('0x7')](_0xba03('0x8'),attributes,{'tableName':_0xba03('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x4890=['moment','bluebird','path','rimraf','../../config/environment','./variable.attributes','tools_variables','lodash','util','api'];(function(_0xaf223f,_0x38582d){var _0x2a0bd9=function(_0x3bf545){while(--_0x3bf545){_0xaf223f['push'](_0xaf223f['shift']());}};_0x2a0bd9(++_0x38582d);}(_0x4890,0xb1));var _0x0489=function(_0x58dc25,_0x49b9d5){_0x58dc25=_0x58dc25-0x0;var _0x21b0a7=_0x4890[_0x58dc25];return _0x21b0a7;};'use strict';var _=require(_0x0489('0x0'));var util=require(_0x0489('0x1'));var logger=require('../../config/logger')(_0x0489('0x2'));var moment=require(_0x0489('0x3'));var BPromise=require(_0x0489('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x0489('0x5'));var rimraf=require(_0x0489('0x6'));var config=require(_0x0489('0x7'));var attributes=require(_0x0489('0x8'));module['exports']=function(_0x5738c2,_0xe9ee1e){return _0x5738c2['define']('Variable',attributes,{'tableName':_0x0489('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x55ca=['options','where','attributes','include','map','model','lodash','util','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','Variable,\x20%s,\x20%s','request\x20sent','debug','Variable,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','ShowVariable','Variable','find'];(function(_0x24abec,_0x30ff71){var _0x132716=function(_0x124d3f){while(--_0x124d3f){_0x24abec['push'](_0x24abec['shift']());}};_0x132716(++_0x30ff71);}(_0x55ca,0x126));var _0xa55c=function(_0x24487f,_0x9b3ea0){_0x24487f=_0x24487f-0x0;var _0x456456=_0x55ca[_0x24487f];return _0x456456;};'use strict';var _=require(_0xa55c('0x0'));var util=require(_0xa55c('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xa55c('0x2'));var db=require(_0xa55c('0x3'))['db'];var utils=require('../../config/utils');var logger=require(_0xa55c('0x4'))(_0xa55c('0x5'));var config=require(_0xa55c('0x6'));var jayson=require(_0xa55c('0x7'));var client=jayson[_0xa55c('0x8')][_0xa55c('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x36b623,_0x4d0624,_0x2121fd){return new BPromise(function(_0x2537f0,_0x57e069){return client[_0xa55c('0xa')](_0x36b623,_0x2121fd)[_0xa55c('0xb')](function(_0x52a3bc){logger['info'](_0xa55c('0xc'),_0x4d0624,_0xa55c('0xd'));logger[_0xa55c('0xe')](_0xa55c('0xf'),_0x4d0624,_0xa55c('0xd'),JSON[_0xa55c('0x10')](_0x52a3bc));if(_0x52a3bc[_0xa55c('0x11')]){if(_0x52a3bc[_0xa55c('0x11')][_0xa55c('0x12')]===0x1f4){logger[_0xa55c('0x11')]('Variable,\x20%s,\x20%s',_0x4d0624,_0x52a3bc['error'][_0xa55c('0x13')]);return _0x57e069(_0x52a3bc['error']['message']);}logger['error'](_0xa55c('0xc'),_0x4d0624,_0x52a3bc[_0xa55c('0x11')][_0xa55c('0x13')]);return _0x2537f0(_0x52a3bc[_0xa55c('0x11')][_0xa55c('0x13')]);}else{logger[_0xa55c('0x14')]('Variable,\x20%s,\x20%s',_0x4d0624,_0xa55c('0xd'));_0x2537f0(_0x52a3bc[_0xa55c('0x15')][_0xa55c('0x13')]);}})[_0xa55c('0x16')](function(_0x1c4cfd){logger[_0xa55c('0x11')](_0xa55c('0xc'),_0x4d0624,_0x1c4cfd);_0x57e069(_0x1c4cfd);});});}exports[_0xa55c('0x17')]=function(_0x24783b){var _0x4cee3c=this;return new Promise(function(_0x3d4c9e,_0x104a99){return db[_0xa55c('0x18')][_0xa55c('0x19')]({'raw':_0x24783b[_0xa55c('0x1a')]?_0x24783b[_0xa55c('0x1a')]['raw']===undefined?!![]:![]:!![],'where':_0x24783b['options']?_0x24783b[_0xa55c('0x1a')][_0xa55c('0x1b')]||null:null,'attributes':_0x24783b[_0xa55c('0x1a')]?_0x24783b['options'][_0xa55c('0x1c')]||null:null,'include':_0x24783b[_0xa55c('0x1a')]?_0x24783b['options'][_0xa55c('0x1d')]?_[_0xa55c('0x1e')](_0x24783b[_0xa55c('0x1a')][_0xa55c('0x1d')],function(_0x234372){return{'model':db[_0x234372['model']],'as':_0x234372['as'],'attributes':_0x234372[_0xa55c('0x1c')],'include':_0x234372['include']?_['map'](_0x234372['include'],function(_0x19ae88){return{'model':db[_0x19ae88['model']],'as':_0x19ae88['as'],'attributes':_0x19ae88[_0xa55c('0x1c')],'include':_0x19ae88[_0xa55c('0x1d')]?_[_0xa55c('0x1e')](_0x19ae88[_0xa55c('0x1d')],function(_0x2313a9){return{'model':db[_0x2313a9[_0xa55c('0x1f')]],'as':_0x2313a9['as'],'attributes':_0x2313a9[_0xa55c('0x1c')]};}):[]};}):[]};}):[]:[]})[_0xa55c('0xb')](function(_0x192df2){logger[_0xa55c('0x14')](_0xa55c('0x17'),_0x24783b);logger['debug'](_0xa55c('0x17'),_0x24783b,JSON[_0xa55c('0x10')](_0x192df2));_0x3d4c9e(_0x192df2);})[_0xa55c('0x16')](function(_0x906caa){logger['error'](_0xa55c('0x17'),_0x906caa[_0xa55c('0x13')],_0x24783b);_0x104a99(_0x4cee3c[_0xa55c('0x11')](0x1f4,_0x906caa[_0xa55c('0x13')]));});});};
\ No newline at end of file
+var _0x5fc3=['info','request\x20sent','debug','stringify','error','code','message','Variable,\x20%s,\x20%s','result','catch','ShowVariable','find','options','where','attributes','include','map','model','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','request','then'];(function(_0x15a2cb,_0x571a10){var _0x26d3f6=function(_0x2e313f){while(--_0x2e313f){_0x15a2cb['push'](_0x15a2cb['shift']());}};_0x26d3f6(++_0x571a10);}(_0x5fc3,0xa8));var _0x35fc=function(_0x4b1032,_0x36952e){_0x4b1032=_0x4b1032-0x0;var _0x5a1d55=_0x5fc3[_0x4b1032];return _0x5a1d55;};'use strict';var _=require(_0x35fc('0x0'));var util=require(_0x35fc('0x1'));var moment=require('moment');var BPromise=require(_0x35fc('0x2'));var rs=require(_0x35fc('0x3'));var fs=require('fs');var Redis=require(_0x35fc('0x4'));var db=require(_0x35fc('0x5'))['db'];var utils=require(_0x35fc('0x6'));var logger=require('../../config/logger')(_0x35fc('0x7'));var config=require(_0x35fc('0x8'));var jayson=require(_0x35fc('0x9'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x19a0d1,_0x508b32,_0x16e153){return new BPromise(function(_0x27524f,_0xc72d93){return client[_0x35fc('0xa')](_0x19a0d1,_0x16e153)[_0x35fc('0xb')](function(_0xf9d3a6){logger[_0x35fc('0xc')]('Variable,\x20%s,\x20%s',_0x508b32,_0x35fc('0xd'));logger[_0x35fc('0xe')]('Variable,\x20%s,\x20%s,\x20%s',_0x508b32,_0x35fc('0xd'),JSON[_0x35fc('0xf')](_0xf9d3a6));if(_0xf9d3a6['error']){if(_0xf9d3a6[_0x35fc('0x10')][_0x35fc('0x11')]===0x1f4){logger['error']('Variable,\x20%s,\x20%s',_0x508b32,_0xf9d3a6[_0x35fc('0x10')]['message']);return _0xc72d93(_0xf9d3a6[_0x35fc('0x10')][_0x35fc('0x12')]);}logger[_0x35fc('0x10')](_0x35fc('0x13'),_0x508b32,_0xf9d3a6[_0x35fc('0x10')]['message']);return _0x27524f(_0xf9d3a6['error']['message']);}else{logger['info'](_0x35fc('0x13'),_0x508b32,_0x35fc('0xd'));_0x27524f(_0xf9d3a6[_0x35fc('0x14')][_0x35fc('0x12')]);}})[_0x35fc('0x15')](function(_0x1121fa){logger['error'](_0x35fc('0x13'),_0x508b32,_0x1121fa);_0xc72d93(_0x1121fa);});});}exports[_0x35fc('0x16')]=function(_0x553677){var _0x41e165=this;return new Promise(function(_0x363e47,_0x2e513b){return db['Variable'][_0x35fc('0x17')]({'raw':_0x553677[_0x35fc('0x18')]?_0x553677[_0x35fc('0x18')]['raw']===undefined?!![]:![]:!![],'where':_0x553677[_0x35fc('0x18')]?_0x553677[_0x35fc('0x18')][_0x35fc('0x19')]||null:null,'attributes':_0x553677[_0x35fc('0x18')]?_0x553677[_0x35fc('0x18')][_0x35fc('0x1a')]||null:null,'include':_0x553677[_0x35fc('0x18')]?_0x553677[_0x35fc('0x18')][_0x35fc('0x1b')]?_[_0x35fc('0x1c')](_0x553677['options'][_0x35fc('0x1b')],function(_0xd5399f){return{'model':db[_0xd5399f[_0x35fc('0x1d')]],'as':_0xd5399f['as'],'attributes':_0xd5399f[_0x35fc('0x1a')],'include':_0xd5399f[_0x35fc('0x1b')]?_['map'](_0xd5399f[_0x35fc('0x1b')],function(_0x4c587a){return{'model':db[_0x4c587a['model']],'as':_0x4c587a['as'],'attributes':_0x4c587a[_0x35fc('0x1a')],'include':_0x4c587a[_0x35fc('0x1b')]?_[_0x35fc('0x1c')](_0x4c587a['include'],function(_0x4086e9){return{'model':db[_0x4086e9['model']],'as':_0x4086e9['as'],'attributes':_0x4086e9[_0x35fc('0x1a')]};}):[]};}):[]};}):[]:[]})[_0x35fc('0xb')](function(_0x5cb986){logger['info'](_0x35fc('0x16'),_0x553677);logger['debug'](_0x35fc('0x16'),_0x553677,JSON[_0x35fc('0xf')](_0x5cb986));_0x363e47(_0x5cb986);})['catch'](function(_0x26b7cb){logger[_0x35fc('0x10')](_0x35fc('0x16'),_0x26b7cb[_0x35fc('0x12')],_0x553677);_0x2e513b(_0x41e165[_0x35fc('0x10')](0x1f4,_0x26b7cb[_0x35fc('0x12')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8c01=['fetch','/reset','canUpdate','/pull','pull','/migrations','migrations','exports','Router','get','index','isAuthenticated'];(function(_0x1abb3f,_0x3fca05){var _0x1181ca=function(_0x2e558e){while(--_0x2e558e){_0x1abb3f['push'](_0x1abb3f['shift']());}};_0x1181ca(++_0x3fca05);}(_0x8c01,0x1dc));var _0x18c0=function(_0x38ed42,_0x3d9a37){_0x38ed42=_0x38ed42-0x0;var _0x474931=_0x8c01[_0x38ed42];return _0x474931;};'use strict';var express=require('express');var router=express[_0x18c0('0x0')]();var auth=require('../../components/auth/service');var controller=require('./version.controller');router[_0x18c0('0x1')]('/',controller[_0x18c0('0x2')]);router['get']('/fetch',auth[_0x18c0('0x3')](),auth['canUpdate'](),controller[_0x18c0('0x4')]);router['get'](_0x18c0('0x5'),auth[_0x18c0('0x3')](),auth[_0x18c0('0x6')](),controller['reset']);router[_0x18c0('0x1')](_0x18c0('0x7'),auth[_0x18c0('0x3')](),auth[_0x18c0('0x6')](),controller[_0x18c0('0x8')]);router[_0x18c0('0x1')]('/restart',auth[_0x18c0('0x3')](),controller['restart']);router[_0x18c0('0x1')](_0x18c0('0x9'),controller[_0x18c0('0xa')]);module[_0x18c0('0xb')]=router;
\ No newline at end of file
+var _0x967e=['canUpdate','fetch','/reset','reset','/pull','pull','/restart','/migrations','migrations','Router','../../components/auth/service','./version.controller','get','/fetch','isAuthenticated'];(function(_0xafbc6a,_0x147cc2){var _0x34e0d4=function(_0x92177){while(--_0x92177){_0xafbc6a['push'](_0xafbc6a['shift']());}};_0x34e0d4(++_0x147cc2);}(_0x967e,0x1cb));var _0xe967=function(_0x3b2ca3,_0x712d27){_0x3b2ca3=_0x3b2ca3-0x0;var _0xaea45c=_0x967e[_0x3b2ca3];return _0xaea45c;};'use strict';var express=require('express');var router=express[_0xe967('0x0')]();var auth=require(_0xe967('0x1'));var controller=require(_0xe967('0x2'));router[_0xe967('0x3')]('/',controller['index']);router[_0xe967('0x3')](_0xe967('0x4'),auth[_0xe967('0x5')](),auth[_0xe967('0x6')](),controller[_0xe967('0x7')]);router[_0xe967('0x3')](_0xe967('0x8'),auth[_0xe967('0x5')](),auth[_0xe967('0x6')](),controller[_0xe967('0x9')]);router[_0xe967('0x3')](_0xe967('0xa'),auth[_0xe967('0x5')](),auth[_0xe967('0x6')](),controller[_0xe967('0xb')]);router[_0xe967('0x3')](_0xe967('0xc'),auth[_0xe967('0x5')](),controller['restart']);router[_0xe967('0x3')](_0xe967('0xd'),controller[_0xe967('0xe')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x521e=['constructor','server','.js','Database\x20migrated\x20successfully\x20from\x20version\x20','\x20to\x20','UniqueConstraintError','Database\x20already\x20up-to-date','umzug','path','lodash','pkginfo','compare-versions','child_process','../../config/environment','../../config/pm2','../../config/logger','simple-git','index','exports','version','query','latest','fetch','2.0.0','status','json','origin','master','info','reset','--hard','FETCH_HEAD','git\x20reset\x20--hard\x20FETCH_HEAD','npm\x20install\x20--production','error','restart','motion2','then','pm2\x20restart\x20motion\x20%s','Your\x20system\x20has\x20been\x20restart\x20successfully','catch','migrations','join','root','replace','sort','sequelize','Migration','getQueryInterface'];(function(_0x32e2eb,_0x3347b7){var _0x2418ce=function(_0x13ed52){while(--_0x13ed52){_0x32e2eb['push'](_0x32e2eb['shift']());}};_0x2418ce(++_0x3347b7);}(_0x521e,0x15e));var _0xe521=function(_0x222d56,_0x58a386){_0x222d56=_0x222d56-0x0;var _0x4a3c36=_0x521e[_0x222d56];return _0x4a3c36;};'use strict';var Umzug=require(_0xe521('0x0'));var path=require(_0xe521('0x1'));var fs=require('fs');var _=require(_0xe521('0x2'));var pkginfo=require(_0xe521('0x3'))(module,'version');var compareVersions=require(_0xe521('0x4'));var exec=require(_0xe521('0x5'))['exec'];var db=require('../../mysqldb')['db'];var config=require(_0xe521('0x6'));var pm2=require(_0xe521('0x7'));var logger=require(_0xe521('0x8'))('update');var git=require(_0xe521('0x9'))(config['root']);exports[_0xe521('0xa')]=function(_0x3f98a1,_0x5212d0){var _0x1759a7={'current':module[_0xe521('0xb')][_0xe521('0xc')],'phonebar':0x2};if(_0x3f98a1['query']&&_0x3f98a1[_0xe521('0xd')][_0xe521('0xe')]){return git[_0xe521('0xf')]()['tags'](function(_0x3fe3e3,_0x3f643e){_0x1759a7[_0xe521('0xe')]=(_0x3fe3e3?module[_0xe521('0xb')][_0xe521('0xc')]:_0x3f643e['latest'])||_0xe521('0x10');return _0x5212d0[_0xe521('0x11')](0xc8)[_0xe521('0x12')](_0x1759a7);});}else{return _0x5212d0[_0xe521('0x11')](0xc8)[_0xe521('0x12')](_0x1759a7);}};exports[_0xe521('0xf')]=function(_0x3dc41f,_0x4c6f25){return git[_0xe521('0xf')]([_0xe521('0x13'),_0xe521('0x14')],function(_0x76a81e){if(_0x76a81e){logger['error'](_0x76a81e);return _0x4c6f25[_0xe521('0x11')](0x1f4)['json'](_0x76a81e);}logger[_0xe521('0x15')]('git\x20fetch');return _0x4c6f25[_0xe521('0x11')](0xc8)[_0xe521('0x12')]({'output':'git\x20fetch\x20origin\x20master'});});};exports['reset']=function(_0x59bbfc,_0x49dbd8){return git[_0xe521('0x16')]([_0xe521('0x17'),_0xe521('0x18')],function(_0x8375f6){if(_0x8375f6){logger['error'](_0x8375f6);return _0x49dbd8[_0xe521('0x11')](0x1f4)[_0xe521('0x12')](_0x8375f6);}logger[_0xe521('0x15')](_0xe521('0x19'));return _0x49dbd8[_0xe521('0x11')](0xc8)[_0xe521('0x12')]({'output':'git\x20reset\x20--hard'});});};exports['pull']=function(_0x51495e,_0x8b8c52){exec(_0xe521('0x1a'),function(_0x3a2e29,_0x1313d6,_0x52890e){logger[_0xe521('0x15')](_0x1313d6);logger[_0xe521('0x15')](_0x52890e);if(_0x3a2e29){logger[_0xe521('0x1b')](_0x3a2e29);return _0x8b8c52[_0xe521('0x11')](0x1f4)[_0xe521('0x12')](_0x3a2e29);}return _0x8b8c52[_0xe521('0x11')](0xc8)[_0xe521('0x12')]({'output':_0x1313d6});});};exports[_0xe521('0x1c')]=function(_0x569a02,_0x329f66){return pm2[_0xe521('0x1c')](_0xe521('0x1d'))[_0xe521('0x1e')](function(_0x1c3c23){logger[_0xe521('0x15')](_0xe521('0x1f'),_0x1c3c23);return _0x329f66[_0xe521('0x11')](0xc8)[_0xe521('0x12')]({'output':_0xe521('0x20')});})[_0xe521('0x21')](function(_0x330534){logger[_0xe521('0x1b')](_0x330534);return _0x329f66[_0xe521('0x11')](0x1f4)[_0xe521('0x12')](_0x330534);});};exports[_0xe521('0x22')]=function(_0x363b46,_0x2812a1){var _0x4a069b=fs['readdirSync'](path[_0xe521('0x23')](config[_0xe521('0x24')],'server',_0xe521('0x22')));var _0xe66ab=[];for(var _0x2e70ea=0x0;_0x2e70ea<_0x4a069b['length'];_0x2e70ea++){var _0x15f256=_0x4a069b[_0x2e70ea][_0xe521('0x25')]('.js','');if(compareVersions(module[_0xe521('0xb')][_0xe521('0xc')],_0x15f256)===-0x1){_0xe66ab['push'](_0x15f256);}}if(_0xe66ab['length']){var _0x2d2873=_0xe66ab[_0xe521('0x26')](compareVersions);var _0x51e9d1=new Umzug({'storage':_0xe521('0x27'),'storageOptions':{'model':db['Migration'],'modelName':_0xe521('0x28'),'columnName':_0xe521('0xc')},'migrations':{'params':[db[_0xe521('0x27')][_0xe521('0x29')](),db[_0xe521('0x27')][_0xe521('0x2a')],function(){throw new Error('Migration\x20tried\x20to\x20use\x20old\x20style\x20\x22done\x22\x20callback.\x20Please\x20upgrade\x20to\x20\x22umzug\x22\x20and\x20return\x20a\x20promise\x20instead.');}],'path':path[_0xe521('0x23')](config['root'],_0xe521('0x2b'),_0xe521('0x22')),'pattern':/\.js$/}});_0x51e9d1['up']({'migrations':_['map'](_0x2d2873,function(_0x6bda59){return _0x6bda59+_0xe521('0x2c');})})[_0xe521('0x1e')](function(){return _0x2812a1[_0xe521('0x11')](0xc8)['json']({'output':_0xe521('0x2d')+module[_0xe521('0xb')][_0xe521('0xc')]+_0xe521('0x2e')+_['last'](_0x2d2873),'migrations':_[_0xe521('0x23')](_0x2d2873)});})[_0xe521('0x21')](function(_0x523fcf){if(_0x523fcf instanceof db[_0xe521('0x27')][_0xe521('0x2f')]){return _0x2812a1['status'](0xc8)[_0xe521('0x12')]({'output':_0xe521('0x30')});}else{return _0x2812a1[_0xe521('0x11')](0x1f4)[_0xe521('0x12')](_0x523fcf);}});}else{return _0x2812a1[_0xe521('0x11')](0xc8)[_0xe521('0x12')]({'output':_0xe521('0x30')});}};
\ No newline at end of file
+var _0xe47a=['2.0.0','status','json','origin','master','error','info','git\x20fetch','reset','--hard','FETCH_HEAD','git\x20reset\x20--hard\x20FETCH_HEAD','git\x20reset\x20--hard','pull','restart','motion2','then','pm2\x20restart\x20motion\x20%s','Your\x20system\x20has\x20been\x20restart\x20successfully','migrations','readdirSync','length','replace','push','sort','sequelize','Migration','join','server','.js','Database\x20migrated\x20successfully\x20from\x20version\x20','last','UniqueConstraintError','Database\x20already\x20up-to-date','umzug','path','lodash','version','compare-versions','child_process','exec','../../mysqldb','../../config/logger','simple-git','root','index','exports','fetch','tags','latest'];(function(_0x23db15,_0xfda5f9){var _0x213f2c=function(_0x525fd7){while(--_0x525fd7){_0x23db15['push'](_0x23db15['shift']());}};_0x213f2c(++_0xfda5f9);}(_0xe47a,0x180));var _0xae47=function(_0x167cc1,_0x56ef5a){_0x167cc1=_0x167cc1-0x0;var _0x10bc4b=_0xe47a[_0x167cc1];return _0x10bc4b;};'use strict';var Umzug=require(_0xae47('0x0'));var path=require(_0xae47('0x1'));var fs=require('fs');var _=require(_0xae47('0x2'));var pkginfo=require('pkginfo')(module,_0xae47('0x3'));var compareVersions=require(_0xae47('0x4'));var exec=require(_0xae47('0x5'))[_0xae47('0x6')];var db=require(_0xae47('0x7'))['db'];var config=require('../../config/environment');var pm2=require('../../config/pm2');var logger=require(_0xae47('0x8'))('update');var git=require(_0xae47('0x9'))(config[_0xae47('0xa')]);exports[_0xae47('0xb')]=function(_0x32661a,_0x1467a0){var _0x432d57={'current':module[_0xae47('0xc')][_0xae47('0x3')],'phonebar':0x2};if(_0x32661a['query']&&_0x32661a['query']['latest']){return git[_0xae47('0xd')]()[_0xae47('0xe')](function(_0x19a769,_0x404f24){_0x432d57[_0xae47('0xf')]=(_0x19a769?module[_0xae47('0xc')][_0xae47('0x3')]:_0x404f24[_0xae47('0xf')])||_0xae47('0x10');return _0x1467a0[_0xae47('0x11')](0xc8)['json'](_0x432d57);});}else{return _0x1467a0[_0xae47('0x11')](0xc8)[_0xae47('0x12')](_0x432d57);}};exports[_0xae47('0xd')]=function(_0x518849,_0x5b68d8){return git[_0xae47('0xd')]([_0xae47('0x13'),_0xae47('0x14')],function(_0x2336d6){if(_0x2336d6){logger[_0xae47('0x15')](_0x2336d6);return _0x5b68d8['status'](0x1f4)['json'](_0x2336d6);}logger[_0xae47('0x16')](_0xae47('0x17'));return _0x5b68d8[_0xae47('0x11')](0xc8)[_0xae47('0x12')]({'output':'git\x20fetch\x20origin\x20master'});});};exports[_0xae47('0x18')]=function(_0x32e9ef,_0x5ed1c0){return git['reset']([_0xae47('0x19'),_0xae47('0x1a')],function(_0x48e5f3){if(_0x48e5f3){logger[_0xae47('0x15')](_0x48e5f3);return _0x5ed1c0[_0xae47('0x11')](0x1f4)[_0xae47('0x12')](_0x48e5f3);}logger[_0xae47('0x16')](_0xae47('0x1b'));return _0x5ed1c0['status'](0xc8)[_0xae47('0x12')]({'output':_0xae47('0x1c')});});};exports[_0xae47('0x1d')]=function(_0x3c0559,_0xee908c){exec('npm\x20install\x20--production',function(_0x31d27f,_0x4ced40,_0x169fb7){logger['info'](_0x4ced40);logger[_0xae47('0x16')](_0x169fb7);if(_0x31d27f){logger['error'](_0x31d27f);return _0xee908c[_0xae47('0x11')](0x1f4)[_0xae47('0x12')](_0x31d27f);}return _0xee908c[_0xae47('0x11')](0xc8)[_0xae47('0x12')]({'output':_0x4ced40});});};exports[_0xae47('0x1e')]=function(_0x47558c,_0x914c9f){return pm2['restart'](_0xae47('0x1f'))[_0xae47('0x20')](function(_0x154925){logger['info'](_0xae47('0x21'),_0x154925);return _0x914c9f[_0xae47('0x11')](0xc8)[_0xae47('0x12')]({'output':_0xae47('0x22')});})['catch'](function(_0x4304c6){logger[_0xae47('0x15')](_0x4304c6);return _0x914c9f[_0xae47('0x11')](0x1f4)[_0xae47('0x12')](_0x4304c6);});};exports[_0xae47('0x23')]=function(_0x4406c5,_0x32dcd8){var _0x457136=fs[_0xae47('0x24')](path['join'](config['root'],'server',_0xae47('0x23')));var _0x31bea2=[];for(var _0x481fbc=0x0;_0x481fbc<_0x457136[_0xae47('0x25')];_0x481fbc++){var _0x300d5b=_0x457136[_0x481fbc][_0xae47('0x26')]('.js','');if(compareVersions(module[_0xae47('0xc')]['version'],_0x300d5b)===-0x1){_0x31bea2[_0xae47('0x27')](_0x300d5b);}}if(_0x31bea2['length']){var _0x23c305=_0x31bea2[_0xae47('0x28')](compareVersions);var _0x4e1fb4=new Umzug({'storage':_0xae47('0x29'),'storageOptions':{'model':db[_0xae47('0x2a')],'modelName':_0xae47('0x2a'),'columnName':_0xae47('0x3')},'migrations':{'params':[db[_0xae47('0x29')]['getQueryInterface'](),db['sequelize']['constructor'],function(){throw new Error('Migration\x20tried\x20to\x20use\x20old\x20style\x20\x22done\x22\x20callback.\x20Please\x20upgrade\x20to\x20\x22umzug\x22\x20and\x20return\x20a\x20promise\x20instead.');}],'path':path[_0xae47('0x2b')](config['root'],_0xae47('0x2c'),_0xae47('0x23')),'pattern':/\.js$/}});_0x4e1fb4['up']({'migrations':_['map'](_0x23c305,function(_0x3cc8ae){return _0x3cc8ae+_0xae47('0x2d');})})[_0xae47('0x20')](function(){return _0x32dcd8[_0xae47('0x11')](0xc8)[_0xae47('0x12')]({'output':_0xae47('0x2e')+module[_0xae47('0xc')]['version']+'\x20to\x20'+_[_0xae47('0x2f')](_0x23c305),'migrations':_[_0xae47('0x2b')](_0x23c305)});})['catch'](function(_0xa00825){if(_0xa00825 instanceof db[_0xae47('0x29')][_0xae47('0x30')]){return _0x32dcd8[_0xae47('0x11')](0xc8)[_0xae47('0x12')]({'output':'Database\x20already\x20up-to-date'});}else{return _0x32dcd8['status'](0x1f4)[_0xae47('0x12')](_0xa00825);}});}else{return _0x32dcd8[_0xae47('0x11')](0xc8)['json']({'output':_0xae47('0x31')});}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xeec6=['index','/describe','describe','show','post','create','put','/:id','delete','destroy','exports','util','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service','./voiceAgentReport.controller','get','isAuthenticated'];(function(_0x35de8a,_0x7acd4b){var _0x9c759d=function(_0x1fc3d3){while(--_0x1fc3d3){_0x35de8a['push'](_0x35de8a['shift']());}};_0x9c759d(++_0x7acd4b);}(_0xeec6,0x1ee));var _0x6eec=function(_0xf46bd9,_0x322826){_0xf46bd9=_0xf46bd9-0x0;var _0x2763c3=_0xeec6[_0xf46bd9];return _0x2763c3;};'use strict';var multer=require('multer');var util=require(_0x6eec('0x0'));var path=require(_0x6eec('0x1'));var timeout=require(_0x6eec('0x2'));var express=require(_0x6eec('0x3'));var router=express[_0x6eec('0x4')]();var fs_extra=require(_0x6eec('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x6eec('0x6'));var config=require('../../config/environment');var controller=require(_0x6eec('0x7'));router[_0x6eec('0x8')]('/',auth[_0x6eec('0x9')](),controller[_0x6eec('0xa')]);router[_0x6eec('0x8')](_0x6eec('0xb'),auth[_0x6eec('0x9')](),controller[_0x6eec('0xc')]);router[_0x6eec('0x8')]('/:id',auth['isAuthenticated'](),controller[_0x6eec('0xd')]);router[_0x6eec('0xe')]('/',auth[_0x6eec('0x9')](),controller[_0x6eec('0xf')]);router[_0x6eec('0x10')](_0x6eec('0x11'),auth[_0x6eec('0x9')](),controller['update']);router[_0x6eec('0x12')](_0x6eec('0x11'),auth[_0x6eec('0x9')](),controller[_0x6eec('0x13')]);module[_0x6eec('0x14')]=router;
\ No newline at end of file
+var _0xfe09=['show','post','create','put','/:id','update','delete','destroy','exports','multer','util','path','express','Router','fs-extra','../../components/auth/service','../../config/environment','./voiceAgentReport.controller','get','isAuthenticated','index','/describe'];(function(_0x7c5254,_0xa36574){var _0x155b5f=function(_0x1aa96c){while(--_0x1aa96c){_0x7c5254['push'](_0x7c5254['shift']());}};_0x155b5f(++_0xa36574);}(_0xfe09,0x195));var _0x9fe0=function(_0x795bf9,_0x57c247){_0x795bf9=_0x795bf9-0x0;var _0x95ccaf=_0xfe09[_0x795bf9];return _0x95ccaf;};'use strict';var multer=require(_0x9fe0('0x0'));var util=require(_0x9fe0('0x1'));var path=require(_0x9fe0('0x2'));var timeout=require('connect-timeout');var express=require(_0x9fe0('0x3'));var router=express[_0x9fe0('0x4')]();var fs_extra=require(_0x9fe0('0x5'));var auth=require(_0x9fe0('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0x9fe0('0x7'));var controller=require(_0x9fe0('0x8'));router[_0x9fe0('0x9')]('/',auth[_0x9fe0('0xa')](),controller[_0x9fe0('0xb')]);router[_0x9fe0('0x9')](_0x9fe0('0xc'),auth[_0x9fe0('0xa')](),controller['describe']);router[_0x9fe0('0x9')]('/:id',auth['isAuthenticated'](),controller[_0x9fe0('0xd')]);router[_0x9fe0('0xe')]('/',auth[_0x9fe0('0xa')](),controller[_0x9fe0('0xf')]);router[_0x9fe0('0x10')](_0x9fe0('0x11'),auth['isAuthenticated'](),controller[_0x9fe0('0x12')]);router[_0x9fe0('0x13')](_0x9fe0('0x11'),auth[_0x9fe0('0xa')](),controller[_0x9fe0('0x14')]);module[_0x9fe0('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdd6e=['DATE','BOOLEAN','INTEGER','FORWARD,\x20BLIND,\x20ATTENDED','sequelize','exports','STRING'];(function(_0x308408,_0x37d440){var _0x9dc073=function(_0x29f0c9){while(--_0x29f0c9){_0x308408['push'](_0x308408['shift']());}};_0x9dc073(++_0x37d440);}(_0xdd6e,0xa5));var _0xedd6=function(_0x1cf2b5,_0x45d1a9){_0x1cf2b5=_0x1cf2b5-0x0;var _0x1059bb=_0xdd6e[_0x1cf2b5];return _0x1059bb;};'use strict';var Sequelize=require(_0xedd6('0x0'));module[_0xedd6('0x1')]={'type':{'type':Sequelize[_0xedd6('0x2')]},'uniqueid':{'type':Sequelize[_0xedd6('0x2')]},'calleridnum':{'type':Sequelize['STRING']},'calleridname':{'type':Sequelize[_0xedd6('0x2')]},'queue':{'type':Sequelize[_0xedd6('0x2')]},'interface':{'type':Sequelize[_0xedd6('0x2')]},'membername':{'type':Sequelize[_0xedd6('0x2')]},'agentcalledAt':{'type':Sequelize['DATE']},'agentconnectAt':{'type':Sequelize['DATE']},'agentcompleteAt':{'type':Sequelize['DATE']},'agentringnoanswerAt':{'type':Sequelize[_0xedd6('0x3')]},'agentdumpAt':{'type':Sequelize[_0xedd6('0x3')]},'holdtime':{'type':Sequelize['INTEGER']},'agentcomplete':{'type':Sequelize[_0xedd6('0x4')],'defaultValue':![]},'agentringnoanswer':{'type':Sequelize[_0xedd6('0x4')],'defaultValue':![]},'agentdump':{'type':Sequelize[_0xedd6('0x4')],'defaultValue':![]},'talktime':{'type':Sequelize[_0xedd6('0x5')]},'agentacw':{'type':Sequelize[_0xedd6('0x4')],'defaultValue':![]},'acwtime':{'type':Sequelize['INTEGER']},'reason':{'type':Sequelize['STRING']},'lastevent':{'type':Sequelize[_0xedd6('0x2')]},'channel':{'type':Sequelize[_0xedd6('0x2')]},'channelstate':{'type':Sequelize['INTEGER']},'channelstatedesc':{'type':Sequelize[_0xedd6('0x2')]},'connectedlinenum':{'type':Sequelize[_0xedd6('0x2')]},'connectedlinename':{'type':Sequelize[_0xedd6('0x2')]},'language':{'type':Sequelize[_0xedd6('0x2')]},'accountcode':{'type':Sequelize['STRING']},'context':{'type':Sequelize[_0xedd6('0x2')]},'exten':{'type':Sequelize['STRING']},'priority':{'type':Sequelize[_0xedd6('0x2')]},'destchannel':{'type':Sequelize[_0xedd6('0x2')]},'destchannelstate':{'type':Sequelize[_0xedd6('0x5')]},'destchannelstatedesc':{'type':Sequelize[_0xedd6('0x2')]},'destcalleridnum':{'type':Sequelize['STRING']},'destcalleridname':{'type':Sequelize[_0xedd6('0x2')]},'destconnectedlinenum':{'type':Sequelize[_0xedd6('0x2')]},'destconnectedlinename':{'type':Sequelize[_0xedd6('0x2')]},'destlanguage':{'type':Sequelize[_0xedd6('0x2')]},'destaccountcode':{'type':Sequelize[_0xedd6('0x2')]},'destcontext':{'type':Sequelize[_0xedd6('0x2')]},'destexten':{'type':Sequelize[_0xedd6('0x2')]},'destpriority':{'type':Sequelize[_0xedd6('0x2')]},'destuniqueid':{'type':Sequelize[_0xedd6('0x2')]},'answeredelsewheredestinationuniqueid':{'type':Sequelize[_0xedd6('0x2')]},'answeredelsewheremembername':{'type':Sequelize[_0xedd6('0x2')]},'transfer':{'type':Sequelize[_0xedd6('0x4')],'defaultValue':![]},'transfertype':{'type':Sequelize['STRING'],'comment':_0xedd6('0x6')},'transferexten':{'type':Sequelize[_0xedd6('0x2')]},'transferuniqueid':{'type':Sequelize[_0xedd6('0x2')]},'agententerreason':{'type':Sequelize[_0xedd6('0x5')],'defaultValue':0x0}};
\ No newline at end of file
+var _0xa062=['STRING','DATE','INTEGER','BOOLEAN','FORWARD,\x20BLIND,\x20ATTENDED','sequelize','exports'];(function(_0x310ba8,_0x2d0bfc){var _0x5c8b6a=function(_0x91c2d){while(--_0x91c2d){_0x310ba8['push'](_0x310ba8['shift']());}};_0x5c8b6a(++_0x2d0bfc);}(_0xa062,0x101));var _0x2a06=function(_0x1195fa,_0x811ca8){_0x1195fa=_0x1195fa-0x0;var _0x4a9f37=_0xa062[_0x1195fa];return _0x4a9f37;};'use strict';var Sequelize=require(_0x2a06('0x0'));module[_0x2a06('0x1')]={'type':{'type':Sequelize[_0x2a06('0x2')]},'uniqueid':{'type':Sequelize['STRING']},'calleridnum':{'type':Sequelize[_0x2a06('0x2')]},'calleridname':{'type':Sequelize[_0x2a06('0x2')]},'queue':{'type':Sequelize[_0x2a06('0x2')]},'interface':{'type':Sequelize[_0x2a06('0x2')]},'membername':{'type':Sequelize['STRING']},'agentcalledAt':{'type':Sequelize[_0x2a06('0x3')]},'agentconnectAt':{'type':Sequelize['DATE']},'agentcompleteAt':{'type':Sequelize['DATE']},'agentringnoanswerAt':{'type':Sequelize[_0x2a06('0x3')]},'agentdumpAt':{'type':Sequelize[_0x2a06('0x3')]},'holdtime':{'type':Sequelize[_0x2a06('0x4')]},'agentcomplete':{'type':Sequelize[_0x2a06('0x5')],'defaultValue':![]},'agentringnoanswer':{'type':Sequelize[_0x2a06('0x5')],'defaultValue':![]},'agentdump':{'type':Sequelize[_0x2a06('0x5')],'defaultValue':![]},'talktime':{'type':Sequelize['INTEGER']},'agentacw':{'type':Sequelize[_0x2a06('0x5')],'defaultValue':![]},'acwtime':{'type':Sequelize[_0x2a06('0x4')]},'reason':{'type':Sequelize['STRING']},'lastevent':{'type':Sequelize[_0x2a06('0x2')]},'channel':{'type':Sequelize[_0x2a06('0x2')]},'channelstate':{'type':Sequelize[_0x2a06('0x4')]},'channelstatedesc':{'type':Sequelize['STRING']},'connectedlinenum':{'type':Sequelize['STRING']},'connectedlinename':{'type':Sequelize['STRING']},'language':{'type':Sequelize['STRING']},'accountcode':{'type':Sequelize[_0x2a06('0x2')]},'context':{'type':Sequelize[_0x2a06('0x2')]},'exten':{'type':Sequelize['STRING']},'priority':{'type':Sequelize[_0x2a06('0x2')]},'destchannel':{'type':Sequelize[_0x2a06('0x2')]},'destchannelstate':{'type':Sequelize[_0x2a06('0x4')]},'destchannelstatedesc':{'type':Sequelize[_0x2a06('0x2')]},'destcalleridnum':{'type':Sequelize[_0x2a06('0x2')]},'destcalleridname':{'type':Sequelize[_0x2a06('0x2')]},'destconnectedlinenum':{'type':Sequelize[_0x2a06('0x2')]},'destconnectedlinename':{'type':Sequelize['STRING']},'destlanguage':{'type':Sequelize['STRING']},'destaccountcode':{'type':Sequelize[_0x2a06('0x2')]},'destcontext':{'type':Sequelize[_0x2a06('0x2')]},'destexten':{'type':Sequelize['STRING']},'destpriority':{'type':Sequelize[_0x2a06('0x2')]},'destuniqueid':{'type':Sequelize[_0x2a06('0x2')]},'answeredelsewheredestinationuniqueid':{'type':Sequelize[_0x2a06('0x2')]},'answeredelsewheremembername':{'type':Sequelize[_0x2a06('0x2')]},'transfer':{'type':Sequelize[_0x2a06('0x5')],'defaultValue':![]},'transfertype':{'type':Sequelize[_0x2a06('0x2')],'comment':_0x2a06('0x6')},'transferexten':{'type':Sequelize[_0x2a06('0x2')]},'transferuniqueid':{'type':Sequelize[_0x2a06('0x2')]},'agententerreason':{'type':Sequelize[_0x2a06('0x4')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['type','options','includeAll','include','findAll','catch','show','params','find','body','describe','eml-format','rimraf','zip-dir','moment','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/license/util','../../mysqldb','sendStatus','end','status','json','undefined','limit','offset','count','set','Content-Range','apply','save','update','then','destroy','stack','name','send','index','VoiceAgentReport','rawAttributes','fieldName','key','model','map','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','sort','where','filter','merge'];(function(_0x4ae6ef,_0xc2af80){var _0x3cbb4e=function(_0x569ad5){while(--_0x569ad5){_0x4ae6ef['push'](_0x4ae6ef['shift']());}};_0x3cbb4e(++_0xc2af80);}(_0xa9e0,0x123));var _0x0a9e=function(_0x5b644e,_0x2e5e07){_0x5b644e=_0x5b644e-0x0;var _0x49c6bf=_0xa9e0[_0x5b644e];return _0x49c6bf;};'use strict';var emlformat=require(_0x0a9e('0x0'));var rimraf=require(_0x0a9e('0x1'));var zipdir=require(_0x0a9e('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x0a9e('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x0a9e('0x4'));var util=require(_0x0a9e('0x5'));var path=require(_0x0a9e('0x6'));var sox=require(_0x0a9e('0x7'));var csv=require(_0x0a9e('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x0a9e('0x9'));var _=require(_0x0a9e('0xa'));var squel=require(_0x0a9e('0xb'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x0a9e('0xc'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x0a9e('0xd'));var Redis=require(_0x0a9e('0xe'));var authService=require(_0x0a9e('0xf'));var qs=require(_0x0a9e('0x10'));var as=require(_0x0a9e('0x11'));var hardwareService=require(_0x0a9e('0x12'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x0a9e('0x13'));var db=require(_0x0a9e('0x14'))['db'];function respondWithStatusCode(_0xd5b662,_0x26d672){_0x26d672=_0x26d672||0xcc;return function(_0x32d742){if(_0x32d742){return _0xd5b662[_0x0a9e('0x15')](_0x26d672);}return _0xd5b662['status'](_0x26d672)[_0x0a9e('0x16')]();};}function respondWithResult(_0x239b12,_0x2b4227){_0x2b4227=_0x2b4227||0xc8;return function(_0x281129){if(_0x281129){return _0x239b12[_0x0a9e('0x17')](_0x2b4227)[_0x0a9e('0x18')](_0x281129);}};}function respondWithFilteredResult(_0x52a03d,_0x22dccb){return function(_0x5d0880){if(_0x5d0880){var _0x1985b6=typeof _0x22dccb['offset']===_0x0a9e('0x19')&&typeof _0x22dccb[_0x0a9e('0x1a')]==='undefined';var _0x225616=_0x5d0880['count'];var _0x459eb1=_0x1985b6?0x0:_0x22dccb[_0x0a9e('0x1b')];var _0x106033=_0x1985b6?_0x5d0880[_0x0a9e('0x1c')]:_0x22dccb[_0x0a9e('0x1b')]+_0x22dccb[_0x0a9e('0x1a')];var _0x530eb7;if(_0x106033>=_0x225616){_0x106033=_0x225616;_0x530eb7=0xc8;}else{_0x530eb7=0xce;}_0x52a03d[_0x0a9e('0x17')](_0x530eb7);return _0x52a03d[_0x0a9e('0x1d')](_0x0a9e('0x1e'),_0x459eb1+'-'+_0x106033+'/'+_0x225616)[_0x0a9e('0x18')](_0x5d0880);}return null;};}function patchUpdates(_0x105080){return function(_0x4bb1e3){try{jsonpatch[_0x0a9e('0x1f')](_0x4bb1e3,_0x105080,!![]);}catch(_0x155cce){return BPromise['reject'](_0x155cce);}return _0x4bb1e3[_0x0a9e('0x20')]();};}function saveUpdates(_0x5a09ef,_0x588269){return function(_0x3a02e1){if(_0x3a02e1){return _0x3a02e1[_0x0a9e('0x21')](_0x5a09ef)[_0x0a9e('0x22')](function(_0x30bae6){return _0x30bae6;});}return null;};}function removeEntity(_0x4abc77,_0xfb6e48){return function(_0x2fb0e4){if(_0x2fb0e4){return _0x2fb0e4[_0x0a9e('0x23')]()[_0x0a9e('0x22')](function(){_0x4abc77[_0x0a9e('0x17')](0xcc)[_0x0a9e('0x16')]();});}};}function handleEntityNotFound(_0x16b1ca,_0x5ea472){return function(_0x59181e){if(!_0x59181e){_0x16b1ca[_0x0a9e('0x15')](0x194);}return _0x59181e;};}function handleError(_0x3a8e58,_0x40c424){_0x40c424=_0x40c424||0x1f4;return function(_0x33161b){logger['error'](_0x33161b[_0x0a9e('0x24')]);if(_0x33161b['name']){delete _0x33161b[_0x0a9e('0x25')];}_0x3a8e58['status'](_0x40c424)[_0x0a9e('0x26')](_0x33161b);};}exports[_0x0a9e('0x27')]=function(_0x25fba9,_0x14433c){var _0x140511={},_0x1538a4={},_0x11c3b6={'count':0x0,'rows':[]};var _0x14de77=_['map'](db[_0x0a9e('0x28')][_0x0a9e('0x29')],function(_0x2b1f27){return{'name':_0x2b1f27[_0x0a9e('0x2a')],'type':_0x2b1f27['type'][_0x0a9e('0x2b')]};});_0x1538a4[_0x0a9e('0x2c')]=_[_0x0a9e('0x2d')](_0x14de77,_0x0a9e('0x25'));_0x1538a4[_0x0a9e('0x2e')]=_[_0x0a9e('0x2f')](_0x25fba9[_0x0a9e('0x2e')]);_0x1538a4[_0x0a9e('0x30')]=_[_0x0a9e('0x31')](_0x1538a4['model'],_0x1538a4[_0x0a9e('0x2e')]);_0x140511['attributes']=_[_0x0a9e('0x31')](_0x1538a4[_0x0a9e('0x2c')],qs[_0x0a9e('0x32')](_0x25fba9[_0x0a9e('0x2e')][_0x0a9e('0x32')]));_0x140511['attributes']=_0x140511[_0x0a9e('0x33')][_0x0a9e('0x34')]?_0x140511[_0x0a9e('0x33')]:_0x1538a4[_0x0a9e('0x2c')];if(!_0x25fba9[_0x0a9e('0x2e')][_0x0a9e('0x35')](_0x0a9e('0x36'))){_0x140511[_0x0a9e('0x1a')]=qs['limit'](_0x25fba9[_0x0a9e('0x2e')]['limit']);_0x140511[_0x0a9e('0x1b')]=qs[_0x0a9e('0x1b')](_0x25fba9[_0x0a9e('0x2e')][_0x0a9e('0x1b')]);}_0x140511['order']=qs[_0x0a9e('0x37')](_0x25fba9[_0x0a9e('0x2e')][_0x0a9e('0x37')]);_0x140511[_0x0a9e('0x38')]=qs['filters'](_['pick'](_0x25fba9[_0x0a9e('0x2e')],_0x1538a4['filters']),_0x14de77);if(_0x25fba9[_0x0a9e('0x2e')][_0x0a9e('0x39')]){_0x140511[_0x0a9e('0x38')]=_[_0x0a9e('0x3a')](_0x140511['where'],{'$or':_[_0x0a9e('0x2d')](_0x14de77,function(_0x3bfce8){if(_0x3bfce8[_0x0a9e('0x3b')]!=='VIRTUAL'){var _0x1dbf74={};_0x1dbf74[_0x3bfce8[_0x0a9e('0x25')]]={'$like':'%'+_0x25fba9[_0x0a9e('0x2e')]['filter']+'%'};return _0x1dbf74;}})});}_0x140511=_['merge']({},_0x140511,_0x25fba9[_0x0a9e('0x3c')]);var _0x40d766={'where':_0x140511['where']};return db[_0x0a9e('0x28')][_0x0a9e('0x1c')](_0x40d766)[_0x0a9e('0x22')](function(_0x148f55){_0x11c3b6['count']=_0x148f55;if(_0x25fba9['query'][_0x0a9e('0x3d')]){_0x140511[_0x0a9e('0x3e')]=[{'all':!![]}];}return db['VoiceAgentReport'][_0x0a9e('0x3f')](_0x140511);})[_0x0a9e('0x22')](function(_0x1459bb){_0x11c3b6['rows']=_0x1459bb;return _0x11c3b6;})[_0x0a9e('0x22')](respondWithFilteredResult(_0x14433c,_0x140511))[_0x0a9e('0x40')](handleError(_0x14433c,null));};exports[_0x0a9e('0x41')]=function(_0x43dd5b,_0x13cb1f){var _0xeaa5e5={'raw':![],'where':{'id':_0x43dd5b[_0x0a9e('0x42')]['id']}},_0x2881b3={};_0x2881b3[_0x0a9e('0x2c')]=_[_0x0a9e('0x2f')](db[_0x0a9e('0x28')][_0x0a9e('0x29')]);_0x2881b3[_0x0a9e('0x2e')]=_[_0x0a9e('0x2f')](_0x43dd5b[_0x0a9e('0x2e')]);_0x2881b3['filters']=_['intersection'](_0x2881b3[_0x0a9e('0x2c')],_0x2881b3[_0x0a9e('0x2e')]);_0xeaa5e5[_0x0a9e('0x33')]=_[_0x0a9e('0x31')](_0x2881b3[_0x0a9e('0x2c')],qs[_0x0a9e('0x32')](_0x43dd5b[_0x0a9e('0x2e')][_0x0a9e('0x32')]));_0xeaa5e5[_0x0a9e('0x33')]=_0xeaa5e5[_0x0a9e('0x33')][_0x0a9e('0x34')]?_0xeaa5e5[_0x0a9e('0x33')]:_0x2881b3['model'];if(_0x43dd5b[_0x0a9e('0x2e')][_0x0a9e('0x3d')]){_0xeaa5e5[_0x0a9e('0x3e')]=[{'all':!![]}];}_0xeaa5e5=_[_0x0a9e('0x3a')]({},_0xeaa5e5,_0x43dd5b[_0x0a9e('0x3c')]);return db[_0x0a9e('0x28')][_0x0a9e('0x43')](_0xeaa5e5)[_0x0a9e('0x22')](handleEntityNotFound(_0x13cb1f,null))['then'](respondWithResult(_0x13cb1f,null))[_0x0a9e('0x40')](handleError(_0x13cb1f,null));};exports['create']=function(_0x473dc8,_0x476688){return db[_0x0a9e('0x28')]['create'](_0x473dc8[_0x0a9e('0x44')],{})[_0x0a9e('0x22')](respondWithResult(_0x476688,0xc9))[_0x0a9e('0x40')](handleError(_0x476688,null));};exports[_0x0a9e('0x21')]=function(_0x45c845,_0x37be73){if(_0x45c845[_0x0a9e('0x44')]['id']){delete _0x45c845['body']['id'];}return db[_0x0a9e('0x28')][_0x0a9e('0x43')]({'where':{'id':_0x45c845[_0x0a9e('0x42')]['id']}})[_0x0a9e('0x22')](handleEntityNotFound(_0x37be73,null))[_0x0a9e('0x22')](saveUpdates(_0x45c845[_0x0a9e('0x44')],null))[_0x0a9e('0x22')](respondWithResult(_0x37be73,null))[_0x0a9e('0x40')](handleError(_0x37be73,null));};exports[_0x0a9e('0x23')]=function(_0x58a5c2,_0xe401a){return db[_0x0a9e('0x28')]['find']({'where':{'id':_0x58a5c2['params']['id']}})['then'](handleEntityNotFound(_0xe401a,null))[_0x0a9e('0x22')](removeEntity(_0xe401a,null))[_0x0a9e('0x40')](handleError(_0xe401a,null));};exports[_0x0a9e('0x45')]=function(_0x11545a,_0x61bb17){return db[_0x0a9e('0x28')][_0x0a9e('0x45')]()[_0x0a9e('0x22')](respondWithResult(_0x61bb17,null))['catch'](handleError(_0x61bb17,null));};
\ No newline at end of file
+var _0xa9e0=['type','options','includeAll','include','findAll','catch','show','params','find','body','describe','eml-format','rimraf','zip-dir','moment','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/license/util','../../mysqldb','sendStatus','end','status','json','undefined','limit','offset','count','set','Content-Range','apply','save','update','then','destroy','stack','name','send','index','VoiceAgentReport','rawAttributes','fieldName','key','model','map','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','sort','where','filter','merge'];(function(_0x46e363,_0x45d7e2){var _0x3fb059=function(_0x5e6274){while(--_0x5e6274){_0x46e363['push'](_0x46e363['shift']());}};_0x3fb059(++_0x45d7e2);}(_0xa9e0,0x123));var _0x0a9e=function(_0x3e112d,_0x2bb132){_0x3e112d=_0x3e112d-0x0;var _0x531c31=_0xa9e0[_0x3e112d];return _0x531c31;};'use strict';var emlformat=require(_0x0a9e('0x0'));var rimraf=require(_0x0a9e('0x1'));var zipdir=require(_0x0a9e('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x0a9e('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x0a9e('0x4'));var util=require(_0x0a9e('0x5'));var path=require(_0x0a9e('0x6'));var sox=require(_0x0a9e('0x7'));var csv=require(_0x0a9e('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x0a9e('0x9'));var _=require(_0x0a9e('0xa'));var squel=require(_0x0a9e('0xb'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x0a9e('0xc'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x0a9e('0xd'));var Redis=require(_0x0a9e('0xe'));var authService=require(_0x0a9e('0xf'));var qs=require(_0x0a9e('0x10'));var as=require(_0x0a9e('0x11'));var hardwareService=require(_0x0a9e('0x12'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x0a9e('0x13'));var db=require(_0x0a9e('0x14'))['db'];function respondWithStatusCode(_0xd5b662,_0x26d672){_0x26d672=_0x26d672||0xcc;return function(_0x32d742){if(_0x32d742){return _0xd5b662[_0x0a9e('0x15')](_0x26d672);}return _0xd5b662['status'](_0x26d672)[_0x0a9e('0x16')]();};}function respondWithResult(_0x239b12,_0x2b4227){_0x2b4227=_0x2b4227||0xc8;return function(_0x281129){if(_0x281129){return _0x239b12[_0x0a9e('0x17')](_0x2b4227)[_0x0a9e('0x18')](_0x281129);}};}function respondWithFilteredResult(_0x52a03d,_0x22dccb){return function(_0x5d0880){if(_0x5d0880){var _0x1985b6=typeof _0x22dccb['offset']===_0x0a9e('0x19')&&typeof _0x22dccb[_0x0a9e('0x1a')]==='undefined';var _0x225616=_0x5d0880['count'];var _0x459eb1=_0x1985b6?0x0:_0x22dccb[_0x0a9e('0x1b')];var _0x106033=_0x1985b6?_0x5d0880[_0x0a9e('0x1c')]:_0x22dccb[_0x0a9e('0x1b')]+_0x22dccb[_0x0a9e('0x1a')];var _0x530eb7;if(_0x106033>=_0x225616){_0x106033=_0x225616;_0x530eb7=0xc8;}else{_0x530eb7=0xce;}_0x52a03d[_0x0a9e('0x17')](_0x530eb7);return _0x52a03d[_0x0a9e('0x1d')](_0x0a9e('0x1e'),_0x459eb1+'-'+_0x106033+'/'+_0x225616)[_0x0a9e('0x18')](_0x5d0880);}return null;};}function patchUpdates(_0x105080){return function(_0x4bb1e3){try{jsonpatch[_0x0a9e('0x1f')](_0x4bb1e3,_0x105080,!![]);}catch(_0x155cce){return BPromise['reject'](_0x155cce);}return _0x4bb1e3[_0x0a9e('0x20')]();};}function saveUpdates(_0x5a09ef,_0x588269){return function(_0x3a02e1){if(_0x3a02e1){return _0x3a02e1[_0x0a9e('0x21')](_0x5a09ef)[_0x0a9e('0x22')](function(_0x30bae6){return _0x30bae6;});}return null;};}function removeEntity(_0x4abc77,_0xfb6e48){return function(_0x2fb0e4){if(_0x2fb0e4){return _0x2fb0e4[_0x0a9e('0x23')]()[_0x0a9e('0x22')](function(){_0x4abc77[_0x0a9e('0x17')](0xcc)[_0x0a9e('0x16')]();});}};}function handleEntityNotFound(_0x16b1ca,_0x5ea472){return function(_0x59181e){if(!_0x59181e){_0x16b1ca[_0x0a9e('0x15')](0x194);}return _0x59181e;};}function handleError(_0x3a8e58,_0x40c424){_0x40c424=_0x40c424||0x1f4;return function(_0x33161b){logger['error'](_0x33161b[_0x0a9e('0x24')]);if(_0x33161b['name']){delete _0x33161b[_0x0a9e('0x25')];}_0x3a8e58['status'](_0x40c424)[_0x0a9e('0x26')](_0x33161b);};}exports[_0x0a9e('0x27')]=function(_0x25fba9,_0x14433c){var _0x140511={},_0x1538a4={},_0x11c3b6={'count':0x0,'rows':[]};var _0x14de77=_['map'](db[_0x0a9e('0x28')][_0x0a9e('0x29')],function(_0x2b1f27){return{'name':_0x2b1f27[_0x0a9e('0x2a')],'type':_0x2b1f27['type'][_0x0a9e('0x2b')]};});_0x1538a4[_0x0a9e('0x2c')]=_[_0x0a9e('0x2d')](_0x14de77,_0x0a9e('0x25'));_0x1538a4[_0x0a9e('0x2e')]=_[_0x0a9e('0x2f')](_0x25fba9[_0x0a9e('0x2e')]);_0x1538a4[_0x0a9e('0x30')]=_[_0x0a9e('0x31')](_0x1538a4['model'],_0x1538a4[_0x0a9e('0x2e')]);_0x140511['attributes']=_[_0x0a9e('0x31')](_0x1538a4[_0x0a9e('0x2c')],qs[_0x0a9e('0x32')](_0x25fba9[_0x0a9e('0x2e')][_0x0a9e('0x32')]));_0x140511['attributes']=_0x140511[_0x0a9e('0x33')][_0x0a9e('0x34')]?_0x140511[_0x0a9e('0x33')]:_0x1538a4[_0x0a9e('0x2c')];if(!_0x25fba9[_0x0a9e('0x2e')][_0x0a9e('0x35')](_0x0a9e('0x36'))){_0x140511[_0x0a9e('0x1a')]=qs['limit'](_0x25fba9[_0x0a9e('0x2e')]['limit']);_0x140511[_0x0a9e('0x1b')]=qs[_0x0a9e('0x1b')](_0x25fba9[_0x0a9e('0x2e')][_0x0a9e('0x1b')]);}_0x140511['order']=qs[_0x0a9e('0x37')](_0x25fba9[_0x0a9e('0x2e')][_0x0a9e('0x37')]);_0x140511[_0x0a9e('0x38')]=qs['filters'](_['pick'](_0x25fba9[_0x0a9e('0x2e')],_0x1538a4['filters']),_0x14de77);if(_0x25fba9[_0x0a9e('0x2e')][_0x0a9e('0x39')]){_0x140511[_0x0a9e('0x38')]=_[_0x0a9e('0x3a')](_0x140511['where'],{'$or':_[_0x0a9e('0x2d')](_0x14de77,function(_0x3bfce8){if(_0x3bfce8[_0x0a9e('0x3b')]!=='VIRTUAL'){var _0x1dbf74={};_0x1dbf74[_0x3bfce8[_0x0a9e('0x25')]]={'$like':'%'+_0x25fba9[_0x0a9e('0x2e')]['filter']+'%'};return _0x1dbf74;}})});}_0x140511=_['merge']({},_0x140511,_0x25fba9[_0x0a9e('0x3c')]);var _0x40d766={'where':_0x140511['where']};return db[_0x0a9e('0x28')][_0x0a9e('0x1c')](_0x40d766)[_0x0a9e('0x22')](function(_0x148f55){_0x11c3b6['count']=_0x148f55;if(_0x25fba9['query'][_0x0a9e('0x3d')]){_0x140511[_0x0a9e('0x3e')]=[{'all':!![]}];}return db['VoiceAgentReport'][_0x0a9e('0x3f')](_0x140511);})[_0x0a9e('0x22')](function(_0x1459bb){_0x11c3b6['rows']=_0x1459bb;return _0x11c3b6;})[_0x0a9e('0x22')](respondWithFilteredResult(_0x14433c,_0x140511))[_0x0a9e('0x40')](handleError(_0x14433c,null));};exports[_0x0a9e('0x41')]=function(_0x43dd5b,_0x13cb1f){var _0xeaa5e5={'raw':![],'where':{'id':_0x43dd5b[_0x0a9e('0x42')]['id']}},_0x2881b3={};_0x2881b3[_0x0a9e('0x2c')]=_[_0x0a9e('0x2f')](db[_0x0a9e('0x28')][_0x0a9e('0x29')]);_0x2881b3[_0x0a9e('0x2e')]=_[_0x0a9e('0x2f')](_0x43dd5b[_0x0a9e('0x2e')]);_0x2881b3['filters']=_['intersection'](_0x2881b3[_0x0a9e('0x2c')],_0x2881b3[_0x0a9e('0x2e')]);_0xeaa5e5[_0x0a9e('0x33')]=_[_0x0a9e('0x31')](_0x2881b3[_0x0a9e('0x2c')],qs[_0x0a9e('0x32')](_0x43dd5b[_0x0a9e('0x2e')][_0x0a9e('0x32')]));_0xeaa5e5[_0x0a9e('0x33')]=_0xeaa5e5[_0x0a9e('0x33')][_0x0a9e('0x34')]?_0xeaa5e5[_0x0a9e('0x33')]:_0x2881b3['model'];if(_0x43dd5b[_0x0a9e('0x2e')][_0x0a9e('0x3d')]){_0xeaa5e5[_0x0a9e('0x3e')]=[{'all':!![]}];}_0xeaa5e5=_[_0x0a9e('0x3a')]({},_0xeaa5e5,_0x43dd5b[_0x0a9e('0x3c')]);return db[_0x0a9e('0x28')][_0x0a9e('0x43')](_0xeaa5e5)[_0x0a9e('0x22')](handleEntityNotFound(_0x13cb1f,null))['then'](respondWithResult(_0x13cb1f,null))[_0x0a9e('0x40')](handleError(_0x13cb1f,null));};exports['create']=function(_0x473dc8,_0x476688){return db[_0x0a9e('0x28')]['create'](_0x473dc8[_0x0a9e('0x44')],{})[_0x0a9e('0x22')](respondWithResult(_0x476688,0xc9))[_0x0a9e('0x40')](handleError(_0x476688,null));};exports[_0x0a9e('0x21')]=function(_0x45c845,_0x37be73){if(_0x45c845[_0x0a9e('0x44')]['id']){delete _0x45c845['body']['id'];}return db[_0x0a9e('0x28')][_0x0a9e('0x43')]({'where':{'id':_0x45c845[_0x0a9e('0x42')]['id']}})[_0x0a9e('0x22')](handleEntityNotFound(_0x37be73,null))[_0x0a9e('0x22')](saveUpdates(_0x45c845[_0x0a9e('0x44')],null))[_0x0a9e('0x22')](respondWithResult(_0x37be73,null))[_0x0a9e('0x40')](handleError(_0x37be73,null));};exports[_0x0a9e('0x23')]=function(_0x58a5c2,_0xe401a){return db[_0x0a9e('0x28')]['find']({'where':{'id':_0x58a5c2['params']['id']}})['then'](handleEntityNotFound(_0xe401a,null))[_0x0a9e('0x22')](removeEntity(_0xe401a,null))[_0x0a9e('0x40')](handleError(_0xe401a,null));};exports[_0x0a9e('0x45')]=function(_0x11545a,_0x61bb17){return db[_0x0a9e('0x28')][_0x0a9e('0x45')]()[_0x0a9e('0x22')](respondWithResult(_0x61bb17,null))['catch'](handleError(_0x61bb17,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x448b=['rimraf','../../config/environment','./voiceAgentReport.attributes','exports','VoiceAgentReport','report_agent','uniqueid','destuniqueid','lodash','util','../../config/logger','api','moment','bluebird','path'];(function(_0x53e6a8,_0x19ef02){var _0x294d8f=function(_0x42002f){while(--_0x42002f){_0x53e6a8['push'](_0x53e6a8['shift']());}};_0x294d8f(++_0x19ef02);}(_0x448b,0x125));var _0xb448=function(_0x56e0a5,_0x5a8fe4){_0x56e0a5=_0x56e0a5-0x0;var _0x238606=_0x448b[_0x56e0a5];return _0x238606;};'use strict';var _=require(_0xb448('0x0'));var util=require(_0xb448('0x1'));var logger=require(_0xb448('0x2'))(_0xb448('0x3'));var moment=require(_0xb448('0x4'));var BPromise=require(_0xb448('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xb448('0x6'));var rimraf=require(_0xb448('0x7'));var config=require(_0xb448('0x8'));var attributes=require(_0xb448('0x9'));module[_0xb448('0xa')]=function(_0x276466,_0x3670cb){return _0x276466['define'](_0xb448('0xb'),attributes,{'tableName':_0xb448('0xc'),'paranoid':![],'indexes':[{'fields':[_0xb448('0xd'),_0xb448('0xe')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x9a14=['../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','define','VoiceAgentReport','report_agent','destuniqueid'];(function(_0x152941,_0x278791){var _0x402f88=function(_0x2b55f9){while(--_0x2b55f9){_0x152941['push'](_0x152941['shift']());}};_0x402f88(++_0x278791);}(_0x9a14,0xa8));var _0x49a1=function(_0x1216e6,_0x1d4d31){_0x1216e6=_0x1216e6-0x0;var _0xe3b6d6=_0x9a14[_0x1216e6];return _0xe3b6d6;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x49a1('0x0'))(_0x49a1('0x1'));var moment=require(_0x49a1('0x2'));var BPromise=require(_0x49a1('0x3'));var rp=require(_0x49a1('0x4'));var fs=require('fs');var path=require(_0x49a1('0x5'));var rimraf=require(_0x49a1('0x6'));var config=require(_0x49a1('0x7'));var attributes=require('./voiceAgentReport.attributes');module['exports']=function(_0x479018,_0x5283aa){return _0x479018[_0x49a1('0x8')](_0x49a1('0x9'),attributes,{'tableName':_0x49a1('0xa'),'paranoid':![],'indexes':[{'fields':['uniqueid',_0x49a1('0xb')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xae58=['stringify','update','where','attributes','limit','UpdateVoiceAgentReport','lodash','util','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','http','request','then','info','VoiceAgentReport,\x20%s,\x20%s','request\x20sent','debug','VoiceAgentReport,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','CreateVoiceAgentReport','VoiceAgentReport','body','options','raw'];(function(_0x26f1ad,_0x494ebf){var _0x2310fb=function(_0x17eaf7){while(--_0x17eaf7){_0x26f1ad['push'](_0x26f1ad['shift']());}};_0x2310fb(++_0x494ebf);}(_0xae58,0xdf));var _0x8ae5=function(_0x3c504b,_0x437693){_0x3c504b=_0x3c504b-0x0;var _0x2e5354=_0xae58[_0x3c504b];return _0x2e5354;};'use strict';var _=require(_0x8ae5('0x0'));var util=require(_0x8ae5('0x1'));var moment=require('moment');var BPromise=require(_0x8ae5('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x8ae5('0x3'));var db=require(_0x8ae5('0x4'))['db'];var utils=require(_0x8ae5('0x5'));var logger=require(_0x8ae5('0x6'))('rpc');var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson['client'][_0x8ae5('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x49a49b,_0x596d9c,_0x239f49){return new BPromise(function(_0x41c8de,_0x73ffb8){return client[_0x8ae5('0x8')](_0x49a49b,_0x239f49)[_0x8ae5('0x9')](function(_0xf1f28b){logger[_0x8ae5('0xa')](_0x8ae5('0xb'),_0x596d9c,_0x8ae5('0xc'));logger[_0x8ae5('0xd')](_0x8ae5('0xe'),_0x596d9c,_0x8ae5('0xc'),JSON['stringify'](_0xf1f28b));if(_0xf1f28b[_0x8ae5('0xf')]){if(_0xf1f28b[_0x8ae5('0xf')][_0x8ae5('0x10')]===0x1f4){logger[_0x8ae5('0xf')](_0x8ae5('0xb'),_0x596d9c,_0xf1f28b[_0x8ae5('0xf')]['message']);return _0x73ffb8(_0xf1f28b[_0x8ae5('0xf')][_0x8ae5('0x11')]);}logger['error'](_0x8ae5('0xb'),_0x596d9c,_0xf1f28b['error'][_0x8ae5('0x11')]);return _0x41c8de(_0xf1f28b[_0x8ae5('0xf')][_0x8ae5('0x11')]);}else{logger[_0x8ae5('0xa')](_0x8ae5('0xb'),_0x596d9c,_0x8ae5('0xc'));_0x41c8de(_0xf1f28b[_0x8ae5('0x12')]['message']);}})[_0x8ae5('0x13')](function(_0xf73d84){logger[_0x8ae5('0xf')](_0x8ae5('0xb'),_0x596d9c,_0xf73d84);_0x73ffb8(_0xf73d84);});});}exports[_0x8ae5('0x14')]=function(_0x2bc793){var _0x3facc2=this;return new Promise(function(_0x566075,_0x2bda9b){return db[_0x8ae5('0x15')]['create'](_0x2bc793[_0x8ae5('0x16')],{'raw':_0x2bc793['options']?_0x2bc793[_0x8ae5('0x17')][_0x8ae5('0x18')]===undefined?!![]:![]:!![]})[_0x8ae5('0x9')](function(_0x4019ac){logger['info'](_0x8ae5('0x14'),_0x2bc793);logger[_0x8ae5('0xd')](_0x8ae5('0x14'),_0x2bc793,JSON[_0x8ae5('0x19')](_0x4019ac));_0x566075(_0x4019ac);})['catch'](function(_0x5c02a2){logger[_0x8ae5('0xf')](_0x8ae5('0x14'),_0x5c02a2['message'],_0x2bc793);_0x2bda9b(_0x3facc2[_0x8ae5('0xf')](0x1f4,_0x5c02a2['message']));});});};exports['UpdateVoiceAgentReport']=function(_0xa7b7f0){var _0x2d5b7c=this;return new Promise(function(_0xca999c,_0x157860){return db[_0x8ae5('0x15')][_0x8ae5('0x1a')](_0xa7b7f0[_0x8ae5('0x16')],{'raw':_0xa7b7f0['options']?_0xa7b7f0['options'][_0x8ae5('0x18')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0xa7b7f0[_0x8ae5('0x17')]?_0xa7b7f0[_0x8ae5('0x17')][_0x8ae5('0x1b')]||null:null,'attributes':_0xa7b7f0['options']?_0xa7b7f0[_0x8ae5('0x17')][_0x8ae5('0x1c')]||null:null,'limit':_0xa7b7f0[_0x8ae5('0x17')]?_0xa7b7f0[_0x8ae5('0x17')][_0x8ae5('0x1d')]||null:null})[_0x8ae5('0x9')](function(_0x58a02c){logger[_0x8ae5('0xa')](_0x8ae5('0x1e'),_0xa7b7f0);logger['debug'](_0x8ae5('0x1e'),_0xa7b7f0,JSON[_0x8ae5('0x19')](_0x58a02c));_0xca999c(_0x58a02c);})[_0x8ae5('0x13')](function(_0x10c969){logger[_0x8ae5('0xf')](_0x8ae5('0x1e'),_0x10c969[_0x8ae5('0x11')],_0xa7b7f0);_0x157860(_0x2d5b7c[_0x8ae5('0xf')](0x1f4,_0x10c969[_0x8ae5('0x11')]));});});};
\ No newline at end of file
+var _0xa17c=['raw','stringify','UpdateVoiceAgentReport','update','body','attributes','then','lodash','util','moment','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','info','VoiceAgentReport,\x20%s,\x20%s','request\x20sent','debug','VoiceAgentReport,\x20%s,\x20%s,\x20%s','error','message','result','catch','CreateVoiceAgentReport','VoiceAgentReport','create','options'];(function(_0x122ef9,_0x451d2a){var _0x42fba0=function(_0x17c9d3){while(--_0x17c9d3){_0x122ef9['push'](_0x122ef9['shift']());}};_0x42fba0(++_0x451d2a);}(_0xa17c,0x167));var _0xca17=function(_0x2755a2,_0x2a1197){_0x2755a2=_0x2755a2-0x0;var _0x719d22=_0xa17c[_0x2755a2];return _0x719d22;};'use strict';var _=require(_0xca17('0x0'));var util=require(_0xca17('0x1'));var moment=require(_0xca17('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0xca17('0x3'))['db'];var utils=require(_0xca17('0x4'));var logger=require(_0xca17('0x5'))(_0xca17('0x6'));var config=require(_0xca17('0x7'));var jayson=require(_0xca17('0x8'));var client=jayson[_0xca17('0x9')][_0xca17('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x3000e9,_0x12d413,_0x52a267){return new BPromise(function(_0x4fc245,_0x210a0e){return client[_0xca17('0xb')](_0x3000e9,_0x52a267)['then'](function(_0x25c4e9){logger[_0xca17('0xc')](_0xca17('0xd'),_0x12d413,_0xca17('0xe'));logger[_0xca17('0xf')](_0xca17('0x10'),_0x12d413,_0xca17('0xe'),JSON['stringify'](_0x25c4e9));if(_0x25c4e9['error']){if(_0x25c4e9[_0xca17('0x11')]['code']===0x1f4){logger['error'](_0xca17('0xd'),_0x12d413,_0x25c4e9[_0xca17('0x11')][_0xca17('0x12')]);return _0x210a0e(_0x25c4e9[_0xca17('0x11')]['message']);}logger['error'](_0xca17('0xd'),_0x12d413,_0x25c4e9['error'][_0xca17('0x12')]);return _0x4fc245(_0x25c4e9['error'][_0xca17('0x12')]);}else{logger[_0xca17('0xc')](_0xca17('0xd'),_0x12d413,_0xca17('0xe'));_0x4fc245(_0x25c4e9[_0xca17('0x13')][_0xca17('0x12')]);}})[_0xca17('0x14')](function(_0x21eb7f){logger[_0xca17('0x11')](_0xca17('0xd'),_0x12d413,_0x21eb7f);_0x210a0e(_0x21eb7f);});});}exports[_0xca17('0x15')]=function(_0x4eaa7e){var _0x455abf=this;return new Promise(function(_0x587d4b,_0x5a1b0b){return db[_0xca17('0x16')][_0xca17('0x17')](_0x4eaa7e['body'],{'raw':_0x4eaa7e[_0xca17('0x18')]?_0x4eaa7e[_0xca17('0x18')][_0xca17('0x19')]===undefined?!![]:![]:!![]})['then'](function(_0x50a3ac){logger[_0xca17('0xc')](_0xca17('0x15'),_0x4eaa7e);logger['debug'](_0xca17('0x15'),_0x4eaa7e,JSON[_0xca17('0x1a')](_0x50a3ac));_0x587d4b(_0x50a3ac);})[_0xca17('0x14')](function(_0x491636){logger[_0xca17('0x11')](_0xca17('0x15'),_0x491636[_0xca17('0x12')],_0x4eaa7e);_0x5a1b0b(_0x455abf[_0xca17('0x11')](0x1f4,_0x491636[_0xca17('0x12')]));});});};exports[_0xca17('0x1b')]=function(_0x4f46f6){var _0x5c7a8a=this;return new Promise(function(_0x466273,_0x2fec0a){return db['VoiceAgentReport'][_0xca17('0x1c')](_0x4f46f6[_0xca17('0x1d')],{'raw':_0x4f46f6[_0xca17('0x18')]?_0x4f46f6[_0xca17('0x18')][_0xca17('0x19')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x4f46f6[_0xca17('0x18')]?_0x4f46f6[_0xca17('0x18')]['where']||null:null,'attributes':_0x4f46f6[_0xca17('0x18')]?_0x4f46f6[_0xca17('0x18')][_0xca17('0x1e')]||null:null,'limit':_0x4f46f6['options']?_0x4f46f6[_0xca17('0x18')]['limit']||null:null})[_0xca17('0x1f')](function(_0x2bc17e){logger[_0xca17('0xc')](_0xca17('0x1b'),_0x4f46f6);logger[_0xca17('0xf')](_0xca17('0x1b'),_0x4f46f6,JSON[_0xca17('0x1a')](_0x2bc17e));_0x466273(_0x2bc17e);})[_0xca17('0x14')](function(_0x16efc8){logger['error'](_0xca17('0x1b'),_0x16efc8[_0xca17('0x12')],_0x4f46f6);_0x2fec0a(_0x5c7a8a[_0xca17('0x11')](0x1f4,_0x16efc8[_0xca17('0x12')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6b8f=['destroy','exports','util','connect-timeout','fs-extra','../../components/auth/service','../../config/environment','./voiceCallReport.controller','get','index','/describe','isAuthenticated','/:id','show','post','create','put'];(function(_0xd6a1c9,_0x203324){var _0x51ea29=function(_0x165a30){while(--_0x165a30){_0xd6a1c9['push'](_0xd6a1c9['shift']());}};_0x51ea29(++_0x203324);}(_0x6b8f,0x1bc));var _0xf6b8=function(_0xbce8b9,_0x4143d1){_0xbce8b9=_0xbce8b9-0x0;var _0x3ad3c9=_0x6b8f[_0xbce8b9];return _0x3ad3c9;};'use strict';var multer=require('multer');var util=require(_0xf6b8('0x0'));var path=require('path');var timeout=require(_0xf6b8('0x1'));var express=require('express');var router=express['Router']();var fs_extra=require(_0xf6b8('0x2'));var auth=require(_0xf6b8('0x3'));var interaction=require('../../components/interaction/service');var config=require(_0xf6b8('0x4'));var controller=require(_0xf6b8('0x5'));router[_0xf6b8('0x6')]('/',auth['isAuthenticated'](),controller[_0xf6b8('0x7')]);router[_0xf6b8('0x6')](_0xf6b8('0x8'),auth[_0xf6b8('0x9')](),controller['describe']);router['get'](_0xf6b8('0xa'),auth['isAuthenticated'](),controller[_0xf6b8('0xb')]);router[_0xf6b8('0xc')]('/',auth[_0xf6b8('0x9')](),controller[_0xf6b8('0xd')]);router[_0xf6b8('0xe')](_0xf6b8('0xa'),auth['isAuthenticated'](),controller['update']);router['delete'](_0xf6b8('0xa'),auth[_0xf6b8('0x9')](),controller[_0xf6b8('0xf')]);module[_0xf6b8('0x10')]=router;
\ No newline at end of file
+var _0x98a8=['multer','util','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','./voiceCallReport.controller','get','isAuthenticated','/:id','show','post','create','put','update','destroy','exports'];(function(_0x5b9ac9,_0x374422){var _0x7e6db3=function(_0x3e835b){while(--_0x3e835b){_0x5b9ac9['push'](_0x5b9ac9['shift']());}};_0x7e6db3(++_0x374422);}(_0x98a8,0x12c));var _0x898a=function(_0x39dfb7,_0x39d5ea){_0x39dfb7=_0x39dfb7-0x0;var _0x72c831=_0x98a8[_0x39dfb7];return _0x72c831;};'use strict';var multer=require(_0x898a('0x0'));var util=require(_0x898a('0x1'));var path=require(_0x898a('0x2'));var timeout=require(_0x898a('0x3'));var express=require(_0x898a('0x4'));var router=express[_0x898a('0x5')]();var fs_extra=require(_0x898a('0x6'));var auth=require('../../components/auth/service');var interaction=require(_0x898a('0x7'));var config=require(_0x898a('0x8'));var controller=require(_0x898a('0x9'));router[_0x898a('0xa')]('/',auth[_0x898a('0xb')](),controller['index']);router[_0x898a('0xa')]('/describe',auth[_0x898a('0xb')](),controller['describe']);router[_0x898a('0xa')](_0x898a('0xc'),auth[_0x898a('0xb')](),controller[_0x898a('0xd')]);router[_0x898a('0xe')]('/',auth[_0x898a('0xb')](),controller[_0x898a('0xf')]);router[_0x898a('0x10')](_0x898a('0xc'),auth['isAuthenticated'](),controller[_0x898a('0x11')]);router['delete'](_0x898a('0xc'),auth['isAuthenticated'](),controller[_0x898a('0x12')]);module[_0x898a('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x845f=['sequelize','exports','STRING','inbound','internal','outbound','inbound-fax','outbound-fax','TEXT','DATE','INTEGER'];(function(_0x1f1e31,_0x27b5c3){var _0x229b56=function(_0x16db77){while(--_0x16db77){_0x1f1e31['push'](_0x1f1e31['shift']());}};_0x229b56(++_0x27b5c3);}(_0x845f,0x1b8));var _0xf845=function(_0x5c7a85,_0x41dd19){_0x5c7a85=_0x5c7a85-0x0;var _0x35290f=_0x845f[_0x5c7a85];return _0x35290f;};'use strict';var Sequelize=require(_0xf845('0x0'));module[_0xf845('0x1')]={'uniqueid':{'type':Sequelize[_0xf845('0x2')]},'type':{'type':Sequelize['ENUM'](_0xf845('0x3'),_0xf845('0x4'),_0xf845('0x5'),_0xf845('0x6'),_0xf845('0x7'),'dialer')},'tag':{'type':Sequelize['STRING']},'accountcode':{'type':Sequelize[_0xf845('0x2')]},'source':{'type':Sequelize[_0xf845('0x2')]},'destination':{'type':Sequelize[_0xf845('0x2')]},'destinationcontext':{'type':Sequelize[_0xf845('0x2')]},'callerid':{'type':Sequelize['STRING']},'channel':{'type':Sequelize[_0xf845('0x2')]},'destinationchannel':{'type':Sequelize[_0xf845('0x2')]},'lastapplication':{'type':Sequelize[_0xf845('0x2')]},'lastdata':{'type':Sequelize[_0xf845('0x8')]},'starttime':{'type':Sequelize[_0xf845('0x9')]},'systemanswertime':{'type':Sequelize[_0xf845('0x9')]},'answertime':{'type':Sequelize[_0xf845('0x9')]},'endtime':{'type':Sequelize[_0xf845('0x9')]},'duration':{'type':Sequelize['INTEGER']},'billableseconds':{'type':Sequelize[_0xf845('0xa')]},'mohtime':{'type':Sequelize[_0xf845('0xa')],'defaultValue':0x0},'disposition':{'type':Sequelize[_0xf845('0x2')]},'amaflags':{'type':Sequelize[_0xf845('0x2')]},'userfield':{'type':Sequelize[_0xf845('0x2')]},'userDisposition':{'type':Sequelize[_0xf845('0x2')]},'userSecondDisposition':{'type':Sequelize[_0xf845('0x2')]},'userThirdDisposition':{'type':Sequelize[_0xf845('0x2')]},'note':{'type':Sequelize[_0xf845('0x2')]},'prefix':{'type':Sequelize[_0xf845('0x2')]},'routeid':{'type':Sequelize[_0xf845('0xa')]},'sipcallid':{'type':Sequelize[_0xf845('0x2')]}};
\ No newline at end of file
+var _0xd3d3=['DATE','INTEGER','STRING','ENUM','inbound-fax','outbound-fax','dialer','TEXT'];(function(_0x3a8db5,_0x31cff7){var _0x2c03cd=function(_0x47dba0){while(--_0x47dba0){_0x3a8db5['push'](_0x3a8db5['shift']());}};_0x2c03cd(++_0x31cff7);}(_0xd3d3,0x19a));var _0x3d3d=function(_0x15c421,_0x6366f7){_0x15c421=_0x15c421-0x0;var _0x5e5ed5=_0xd3d3[_0x15c421];return _0x5e5ed5;};'use strict';var Sequelize=require('sequelize');module['exports']={'uniqueid':{'type':Sequelize[_0x3d3d('0x0')]},'type':{'type':Sequelize[_0x3d3d('0x1')]('inbound','internal','outbound',_0x3d3d('0x2'),_0x3d3d('0x3'),_0x3d3d('0x4'))},'tag':{'type':Sequelize['STRING']},'accountcode':{'type':Sequelize[_0x3d3d('0x0')]},'source':{'type':Sequelize['STRING']},'destination':{'type':Sequelize[_0x3d3d('0x0')]},'destinationcontext':{'type':Sequelize[_0x3d3d('0x0')]},'callerid':{'type':Sequelize[_0x3d3d('0x0')]},'channel':{'type':Sequelize[_0x3d3d('0x0')]},'destinationchannel':{'type':Sequelize[_0x3d3d('0x0')]},'lastapplication':{'type':Sequelize[_0x3d3d('0x0')]},'lastdata':{'type':Sequelize[_0x3d3d('0x5')]},'starttime':{'type':Sequelize['DATE']},'systemanswertime':{'type':Sequelize[_0x3d3d('0x6')]},'answertime':{'type':Sequelize[_0x3d3d('0x6')]},'endtime':{'type':Sequelize['DATE']},'duration':{'type':Sequelize[_0x3d3d('0x7')]},'billableseconds':{'type':Sequelize[_0x3d3d('0x7')]},'mohtime':{'type':Sequelize[_0x3d3d('0x7')],'defaultValue':0x0},'disposition':{'type':Sequelize[_0x3d3d('0x0')]},'amaflags':{'type':Sequelize[_0x3d3d('0x0')]},'userfield':{'type':Sequelize[_0x3d3d('0x0')]},'userDisposition':{'type':Sequelize['STRING']},'userSecondDisposition':{'type':Sequelize[_0x3d3d('0x0')]},'userThirdDisposition':{'type':Sequelize['STRING']},'note':{'type':Sequelize[_0x3d3d('0x0')]},'prefix':{'type':Sequelize[_0x3d3d('0x0')]},'routeid':{'type':Sequelize[_0x3d3d('0x7')]},'sipcallid':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2ef3=['pick','filter','merge','options','VoiceCallReport','then','includeAll','include','fullname','alias','User','findAll','rows','catch','show','params','keys','find','create','destroy','describe','body','uniqueid','user','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','sox','to-csv','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','error','stack','name','send','map','rawAttributes','fieldName','type','key','model','query','filters','attributes','intersection','fields','length','hasOwnProperty','order','sort','where'];(function(_0xdd2bfa,_0x5bd304){var _0x55397e=function(_0x196f7d){while(--_0x196f7d){_0xdd2bfa['push'](_0xdd2bfa['shift']());}};_0x55397e(++_0x5bd304);}(_0x2ef3,0xba));var _0x32ef=function(_0x1aa819,_0x5ebced){_0x1aa819=_0x1aa819-0x0;var _0x1eb4c3=_0x2ef3[_0x1aa819];return _0x1eb4c3;};'use strict';var emlformat=require(_0x32ef('0x0'));var rimraf=require(_0x32ef('0x1'));var zipdir=require(_0x32ef('0x2'));var jsonpatch=require(_0x32ef('0x3'));var rp=require(_0x32ef('0x4'));var moment=require(_0x32ef('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x32ef('0x6'));var util=require(_0x32ef('0x7'));var path=require('path');var sox=require(_0x32ef('0x8'));var csv=require(_0x32ef('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x32ef('0xa'));var squel=require(_0x32ef('0xb'));var crypto=require(_0x32ef('0xc'));var jsforce=require(_0x32ef('0xd'));var deskjs=require(_0x32ef('0xe'));var toCsv=require(_0x32ef('0x9'));var querystring=require(_0x32ef('0xf'));var Papa=require(_0x32ef('0x10'));var Redis=require(_0x32ef('0x11'));var authService=require(_0x32ef('0x12'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x32ef('0x13'));var logger=require(_0x32ef('0x14'))(_0x32ef('0x15'));var utils=require(_0x32ef('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x32ef('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x1a5106,_0x49d590){_0x49d590=_0x49d590||0xcc;return function(_0x3e98df){if(_0x3e98df){return _0x1a5106[_0x32ef('0x18')](_0x49d590);}return _0x1a5106['status'](_0x49d590)['end']();};}function respondWithResult(_0x19ce1,_0x4d8009){_0x4d8009=_0x4d8009||0xc8;return function(_0x326fce){if(_0x326fce){return _0x19ce1[_0x32ef('0x19')](_0x4d8009)[_0x32ef('0x1a')](_0x326fce);}};}function respondWithFilteredResult(_0x54c7f5,_0x57aff1){return function(_0x55bf0b){if(_0x55bf0b){var _0x531e30=typeof _0x57aff1[_0x32ef('0x1b')]===_0x32ef('0x1c')&&typeof _0x57aff1[_0x32ef('0x1d')]==='undefined';var _0x5d559b=_0x55bf0b[_0x32ef('0x1e')];var _0x1a9476=_0x531e30?0x0:_0x57aff1[_0x32ef('0x1b')];var _0x57863c=_0x531e30?_0x55bf0b[_0x32ef('0x1e')]:_0x57aff1[_0x32ef('0x1b')]+_0x57aff1['limit'];var _0x304505;if(_0x57863c>=_0x5d559b){_0x57863c=_0x5d559b;_0x304505=0xc8;}else{_0x304505=0xce;}_0x54c7f5[_0x32ef('0x19')](_0x304505);return _0x54c7f5[_0x32ef('0x1f')](_0x32ef('0x20'),_0x1a9476+'-'+_0x57863c+'/'+_0x5d559b)[_0x32ef('0x1a')](_0x55bf0b);}return null;};}function patchUpdates(_0x3aec05){return function(_0x4de441){try{jsonpatch[_0x32ef('0x21')](_0x4de441,_0x3aec05,!![]);}catch(_0x5cc3ef){return BPromise[_0x32ef('0x22')](_0x5cc3ef);}return _0x4de441[_0x32ef('0x23')]();};}function saveUpdates(_0x49f2d8,_0x1af371){return function(_0x97780){if(_0x97780){return _0x97780[_0x32ef('0x24')](_0x49f2d8)['then'](function(_0x57f5e5){return _0x57f5e5;});}return null;};}function removeEntity(_0x22f2d7,_0xb30fab){return function(_0x225feb){if(_0x225feb){return _0x225feb['destroy']()['then'](function(){_0x22f2d7[_0x32ef('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x51a412,_0x278495){return function(_0x14d4b3){if(!_0x14d4b3){_0x51a412[_0x32ef('0x18')](0x194);}return _0x14d4b3;};}function handleError(_0x1dbe98,_0x15ce54){_0x15ce54=_0x15ce54||0x1f4;return function(_0x234175){logger[_0x32ef('0x25')](_0x234175[_0x32ef('0x26')]);if(_0x234175[_0x32ef('0x27')]){delete _0x234175[_0x32ef('0x27')];}_0x1dbe98[_0x32ef('0x19')](_0x15ce54)[_0x32ef('0x28')](_0x234175);};}exports['index']=function(_0xd65fde,_0x2f5d06){var _0x5a04cd={},_0x12de1a={},_0x3c569d={'count':0x0,'rows':[]};var _0x30b250=_[_0x32ef('0x29')](db['VoiceCallReport'][_0x32ef('0x2a')],function(_0x22bf86){return{'name':_0x22bf86[_0x32ef('0x2b')],'type':_0x22bf86[_0x32ef('0x2c')][_0x32ef('0x2d')]};});_0x12de1a[_0x32ef('0x2e')]=_[_0x32ef('0x29')](_0x30b250,'name');_0x12de1a[_0x32ef('0x2f')]=_['keys'](_0xd65fde[_0x32ef('0x2f')]);_0x12de1a[_0x32ef('0x30')]=_['intersection'](_0x12de1a[_0x32ef('0x2e')],_0x12de1a[_0x32ef('0x2f')]);_0x5a04cd[_0x32ef('0x31')]=_[_0x32ef('0x32')](_0x12de1a[_0x32ef('0x2e')],qs['fields'](_0xd65fde['query'][_0x32ef('0x33')]));_0x5a04cd['attributes']=_0x5a04cd[_0x32ef('0x31')][_0x32ef('0x34')]?_0x5a04cd[_0x32ef('0x31')]:_0x12de1a[_0x32ef('0x2e')];if(!_0xd65fde[_0x32ef('0x2f')][_0x32ef('0x35')]('nolimit')){_0x5a04cd['limit']=qs['limit'](_0xd65fde[_0x32ef('0x2f')][_0x32ef('0x1d')]);_0x5a04cd[_0x32ef('0x1b')]=qs['offset'](_0xd65fde['query'][_0x32ef('0x1b')]);}_0x5a04cd[_0x32ef('0x36')]=qs[_0x32ef('0x37')](_0xd65fde['query']['sort']);_0x5a04cd[_0x32ef('0x38')]=qs[_0x32ef('0x30')](_[_0x32ef('0x39')](_0xd65fde[_0x32ef('0x2f')],_0x12de1a[_0x32ef('0x30')]),_0x30b250);if(_0xd65fde[_0x32ef('0x2f')][_0x32ef('0x3a')]){_0x5a04cd[_0x32ef('0x38')]=_[_0x32ef('0x3b')](_0x5a04cd['where'],{'$or':_[_0x32ef('0x29')](_0x30b250,function(_0x36e374){if(_0x36e374[_0x32ef('0x2c')]!=='VIRTUAL'){var _0x365125={};_0x365125[_0x36e374[_0x32ef('0x27')]]={'$like':'%'+_0xd65fde[_0x32ef('0x2f')][_0x32ef('0x3a')]+'%'};return _0x365125;}})});}_0x5a04cd=_[_0x32ef('0x3b')]({},_0x5a04cd,_0xd65fde[_0x32ef('0x3c')]);var _0x256c40={'where':_0x5a04cd[_0x32ef('0x38')]};return db[_0x32ef('0x3d')][_0x32ef('0x1e')](_0x256c40)[_0x32ef('0x3e')](function(_0x4615b4){_0x3c569d['count']=_0x4615b4;if(_0xd65fde[_0x32ef('0x2f')][_0x32ef('0x3f')]){_0x5a04cd[_0x32ef('0x40')]=[{'attributes':['id',_0x32ef('0x27'),_0x32ef('0x41'),_0x32ef('0x42')],'model':db[_0x32ef('0x43')],'as':'User'}];}return db['VoiceCallReport'][_0x32ef('0x44')](_0x5a04cd);})[_0x32ef('0x3e')](function(_0x2a33dd){_0x3c569d[_0x32ef('0x45')]=_0x2a33dd;return _0x3c569d;})['then'](respondWithFilteredResult(_0x2f5d06,_0x5a04cd))[_0x32ef('0x46')](handleError(_0x2f5d06,null));};exports[_0x32ef('0x47')]=function(_0x5d2f06,_0x4744ba){var _0x4bc5bc={'raw':!![],'where':{'id':_0x5d2f06[_0x32ef('0x48')]['id']}},_0xcb3c08={};_0xcb3c08[_0x32ef('0x2e')]=_[_0x32ef('0x49')](db[_0x32ef('0x3d')][_0x32ef('0x2a')]);_0xcb3c08[_0x32ef('0x2f')]=_[_0x32ef('0x49')](_0x5d2f06[_0x32ef('0x2f')]);_0xcb3c08[_0x32ef('0x30')]=_['intersection'](_0xcb3c08[_0x32ef('0x2e')],_0xcb3c08['query']);_0x4bc5bc[_0x32ef('0x31')]=_[_0x32ef('0x32')](_0xcb3c08[_0x32ef('0x2e')],qs['fields'](_0x5d2f06[_0x32ef('0x2f')][_0x32ef('0x33')]));_0x4bc5bc[_0x32ef('0x31')]=_0x4bc5bc[_0x32ef('0x31')][_0x32ef('0x34')]?_0x4bc5bc[_0x32ef('0x31')]:_0xcb3c08[_0x32ef('0x2e')];if(_0x5d2f06['query']['includeAll']){_0x4bc5bc[_0x32ef('0x40')]=[{'all':!![]}];}_0x4bc5bc=_[_0x32ef('0x3b')]({},_0x4bc5bc,_0x5d2f06[_0x32ef('0x3c')]);return db[_0x32ef('0x3d')][_0x32ef('0x4a')](_0x4bc5bc)[_0x32ef('0x3e')](handleEntityNotFound(_0x4744ba,null))[_0x32ef('0x3e')](respondWithResult(_0x4744ba,null))[_0x32ef('0x46')](handleError(_0x4744ba,null));};exports[_0x32ef('0x4b')]=function(_0x1ebedf,_0x35a294){return db[_0x32ef('0x3d')][_0x32ef('0x4b')](_0x1ebedf['body'],{})[_0x32ef('0x3e')](respondWithResult(_0x35a294,0xc9))[_0x32ef('0x46')](handleError(_0x35a294,null));};exports[_0x32ef('0x4c')]=function(_0xd42609,_0x1cc9f3){return db[_0x32ef('0x3d')][_0x32ef('0x4a')]({'where':{'id':_0xd42609[_0x32ef('0x48')]['id']}})[_0x32ef('0x3e')](handleEntityNotFound(_0x1cc9f3,null))[_0x32ef('0x3e')](removeEntity(_0x1cc9f3,null))[_0x32ef('0x46')](handleError(_0x1cc9f3,null));};exports[_0x32ef('0x4d')]=function(_0x272377,_0x326445){return db[_0x32ef('0x3d')][_0x32ef('0x4d')]()[_0x32ef('0x3e')](respondWithResult(_0x326445,null))[_0x32ef('0x46')](handleError(_0x326445,null));};exports['update']=function(_0x515ac9,_0x179c2f){if(_0x515ac9[_0x32ef('0x4e')][_0x32ef('0x4f')]){delete _0x515ac9[_0x32ef('0x4e')][_0x32ef('0x4f')];}return db[_0x32ef('0x3d')][_0x32ef('0x4a')]({'where':{'uniqueid':_0x515ac9[_0x32ef('0x48')]['id'],'UserId':{'$or':[null,_0x515ac9[_0x32ef('0x50')]['id']]}}})[_0x32ef('0x3e')](handleEntityNotFound(_0x179c2f,null))[_0x32ef('0x3e')](saveUpdates(_0x515ac9['body'],null))[_0x32ef('0x3e')](respondWithResult(_0x179c2f,null))[_0x32ef('0x46')](handleError(_0x179c2f,null));};
\ No newline at end of file
+var _0x2032=['../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','end','status','json','offset','undefined','limit','count','set','Content-Range','apply','save','then','destroy','sendStatus','error','stack','name','send','index','map','VoiceCallReport','fieldName','type','key','query','model','attributes','intersection','fields','length','hasOwnProperty','nolimit','sort','pick','filters','filter','merge','where','options','alias','User','rows','catch','show','params','keys','rawAttributes','includeAll','include','create','body','find','describe','uniqueid','user','rimraf','zip-dir','fast-json-patch','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x2032,0xd9));var _0x2203=function(_0x8f5abc,_0x268e83){_0x8f5abc=_0x8f5abc-0x0;var _0x2c46d7=_0x2032[_0x8f5abc];return _0x2c46d7;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x2203('0x0'));var zipdir=require(_0x2203('0x1'));var jsonpatch=require(_0x2203('0x2'));var rp=require('request-promise');var moment=require(_0x2203('0x3'));var BPromise=require(_0x2203('0x4'));var Mustache=require('mustache');var util=require(_0x2203('0x5'));var path=require(_0x2203('0x6'));var sox=require(_0x2203('0x7'));var csv=require(_0x2203('0x8'));var ejs=require(_0x2203('0x9'));var fs=require('fs');var fs_extra=require(_0x2203('0xa'));var _=require(_0x2203('0xb'));var squel=require(_0x2203('0xc'));var crypto=require(_0x2203('0xd'));var jsforce=require(_0x2203('0xe'));var deskjs=require(_0x2203('0xf'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x2203('0x10'));var Redis=require('ioredis');var authService=require(_0x2203('0x11'));var qs=require(_0x2203('0x12'));var as=require(_0x2203('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x2203('0x14'))('api');var utils=require(_0x2203('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0x2203('0x16'));var db=require(_0x2203('0x17'))['db'];function respondWithStatusCode(_0x4b9376,_0x583bc7){_0x583bc7=_0x583bc7||0xcc;return function(_0x585c76){if(_0x585c76){return _0x4b9376['sendStatus'](_0x583bc7);}return _0x4b9376['status'](_0x583bc7)[_0x2203('0x18')]();};}function respondWithResult(_0x538b30,_0x592e47){_0x592e47=_0x592e47||0xc8;return function(_0x21a3af){if(_0x21a3af){return _0x538b30[_0x2203('0x19')](_0x592e47)[_0x2203('0x1a')](_0x21a3af);}};}function respondWithFilteredResult(_0x41af85,_0x226209){return function(_0x3fe0a8){if(_0x3fe0a8){var _0x2c36e6=typeof _0x226209[_0x2203('0x1b')]===_0x2203('0x1c')&&typeof _0x226209[_0x2203('0x1d')]==='undefined';var _0x280eda=_0x3fe0a8[_0x2203('0x1e')];var _0x4893ff=_0x2c36e6?0x0:_0x226209[_0x2203('0x1b')];var _0x8906e1=_0x2c36e6?_0x3fe0a8['count']:_0x226209[_0x2203('0x1b')]+_0x226209['limit'];var _0x2904ba;if(_0x8906e1>=_0x280eda){_0x8906e1=_0x280eda;_0x2904ba=0xc8;}else{_0x2904ba=0xce;}_0x41af85[_0x2203('0x19')](_0x2904ba);return _0x41af85[_0x2203('0x1f')](_0x2203('0x20'),_0x4893ff+'-'+_0x8906e1+'/'+_0x280eda)[_0x2203('0x1a')](_0x3fe0a8);}return null;};}function patchUpdates(_0x449039){return function(_0x538c23){try{jsonpatch[_0x2203('0x21')](_0x538c23,_0x449039,!![]);}catch(_0x50822b){return BPromise['reject'](_0x50822b);}return _0x538c23[_0x2203('0x22')]();};}function saveUpdates(_0x496d82,_0x3b8ef9){return function(_0x5bfe61){if(_0x5bfe61){return _0x5bfe61['update'](_0x496d82)[_0x2203('0x23')](function(_0x5e29cd){return _0x5e29cd;});}return null;};}function removeEntity(_0x5c8da9,_0x226374){return function(_0x2718f5){if(_0x2718f5){return _0x2718f5[_0x2203('0x24')]()[_0x2203('0x23')](function(){_0x5c8da9[_0x2203('0x19')](0xcc)[_0x2203('0x18')]();});}};}function handleEntityNotFound(_0x49c12,_0x250349){return function(_0x576378){if(!_0x576378){_0x49c12[_0x2203('0x25')](0x194);}return _0x576378;};}function handleError(_0x36b958,_0x39a11a){_0x39a11a=_0x39a11a||0x1f4;return function(_0x5f11bf){logger[_0x2203('0x26')](_0x5f11bf[_0x2203('0x27')]);if(_0x5f11bf['name']){delete _0x5f11bf[_0x2203('0x28')];}_0x36b958[_0x2203('0x19')](_0x39a11a)[_0x2203('0x29')](_0x5f11bf);};}exports[_0x2203('0x2a')]=function(_0x28ae02,_0x1df508){var _0x9c53f={},_0x5a95c1={},_0x34b8ba={'count':0x0,'rows':[]};var _0x616ed8=_[_0x2203('0x2b')](db[_0x2203('0x2c')]['rawAttributes'],function(_0x3a8e23){return{'name':_0x3a8e23[_0x2203('0x2d')],'type':_0x3a8e23[_0x2203('0x2e')][_0x2203('0x2f')]};});_0x5a95c1['model']=_[_0x2203('0x2b')](_0x616ed8,_0x2203('0x28'));_0x5a95c1['query']=_['keys'](_0x28ae02[_0x2203('0x30')]);_0x5a95c1['filters']=_['intersection'](_0x5a95c1[_0x2203('0x31')],_0x5a95c1[_0x2203('0x30')]);_0x9c53f[_0x2203('0x32')]=_[_0x2203('0x33')](_0x5a95c1[_0x2203('0x31')],qs['fields'](_0x28ae02[_0x2203('0x30')][_0x2203('0x34')]));_0x9c53f['attributes']=_0x9c53f[_0x2203('0x32')][_0x2203('0x35')]?_0x9c53f[_0x2203('0x32')]:_0x5a95c1[_0x2203('0x31')];if(!_0x28ae02[_0x2203('0x30')][_0x2203('0x36')](_0x2203('0x37'))){_0x9c53f[_0x2203('0x1d')]=qs[_0x2203('0x1d')](_0x28ae02['query'][_0x2203('0x1d')]);_0x9c53f[_0x2203('0x1b')]=qs['offset'](_0x28ae02['query'][_0x2203('0x1b')]);}_0x9c53f['order']=qs[_0x2203('0x38')](_0x28ae02[_0x2203('0x30')][_0x2203('0x38')]);_0x9c53f['where']=qs['filters'](_[_0x2203('0x39')](_0x28ae02['query'],_0x5a95c1[_0x2203('0x3a')]),_0x616ed8);if(_0x28ae02['query'][_0x2203('0x3b')]){_0x9c53f['where']=_[_0x2203('0x3c')](_0x9c53f[_0x2203('0x3d')],{'$or':_[_0x2203('0x2b')](_0x616ed8,function(_0x40a793){if(_0x40a793[_0x2203('0x2e')]!=='VIRTUAL'){var _0x5f1561={};_0x5f1561[_0x40a793['name']]={'$like':'%'+_0x28ae02[_0x2203('0x30')][_0x2203('0x3b')]+'%'};return _0x5f1561;}})});}_0x9c53f=_[_0x2203('0x3c')]({},_0x9c53f,_0x28ae02[_0x2203('0x3e')]);var _0x3283fb={'where':_0x9c53f[_0x2203('0x3d')]};return db[_0x2203('0x2c')]['count'](_0x3283fb)[_0x2203('0x23')](function(_0x1b12c3){_0x34b8ba[_0x2203('0x1e')]=_0x1b12c3;if(_0x28ae02[_0x2203('0x30')]['includeAll']){_0x9c53f['include']=[{'attributes':['id',_0x2203('0x28'),'fullname',_0x2203('0x3f')],'model':db[_0x2203('0x40')],'as':_0x2203('0x40')}];}return db['VoiceCallReport']['findAll'](_0x9c53f);})[_0x2203('0x23')](function(_0x3739f6){_0x34b8ba[_0x2203('0x41')]=_0x3739f6;return _0x34b8ba;})[_0x2203('0x23')](respondWithFilteredResult(_0x1df508,_0x9c53f))[_0x2203('0x42')](handleError(_0x1df508,null));};exports[_0x2203('0x43')]=function(_0x5cd573,_0x15d3b6){var _0x165a3f={'raw':!![],'where':{'id':_0x5cd573[_0x2203('0x44')]['id']}},_0x3a866c={};_0x3a866c[_0x2203('0x31')]=_[_0x2203('0x45')](db[_0x2203('0x2c')][_0x2203('0x46')]);_0x3a866c[_0x2203('0x30')]=_[_0x2203('0x45')](_0x5cd573['query']);_0x3a866c[_0x2203('0x3a')]=_[_0x2203('0x33')](_0x3a866c[_0x2203('0x31')],_0x3a866c[_0x2203('0x30')]);_0x165a3f['attributes']=_['intersection'](_0x3a866c[_0x2203('0x31')],qs['fields'](_0x5cd573[_0x2203('0x30')][_0x2203('0x34')]));_0x165a3f[_0x2203('0x32')]=_0x165a3f[_0x2203('0x32')]['length']?_0x165a3f[_0x2203('0x32')]:_0x3a866c[_0x2203('0x31')];if(_0x5cd573['query'][_0x2203('0x47')]){_0x165a3f[_0x2203('0x48')]=[{'all':!![]}];}_0x165a3f=_[_0x2203('0x3c')]({},_0x165a3f,_0x5cd573[_0x2203('0x3e')]);return db['VoiceCallReport']['find'](_0x165a3f)[_0x2203('0x23')](handleEntityNotFound(_0x15d3b6,null))['then'](respondWithResult(_0x15d3b6,null))['catch'](handleError(_0x15d3b6,null));};exports[_0x2203('0x49')]=function(_0x33b7b5,_0x1a2665){return db['VoiceCallReport']['create'](_0x33b7b5[_0x2203('0x4a')],{})[_0x2203('0x23')](respondWithResult(_0x1a2665,0xc9))[_0x2203('0x42')](handleError(_0x1a2665,null));};exports[_0x2203('0x24')]=function(_0x225b0e,_0x21fd78){return db['VoiceCallReport'][_0x2203('0x4b')]({'where':{'id':_0x225b0e['params']['id']}})[_0x2203('0x23')](handleEntityNotFound(_0x21fd78,null))[_0x2203('0x23')](removeEntity(_0x21fd78,null))[_0x2203('0x42')](handleError(_0x21fd78,null));};exports[_0x2203('0x4c')]=function(_0x58b9bb,_0x506795){return db[_0x2203('0x2c')][_0x2203('0x4c')]()[_0x2203('0x23')](respondWithResult(_0x506795,null))[_0x2203('0x42')](handleError(_0x506795,null));};exports['update']=function(_0x4de47a,_0x49999a){if(_0x4de47a[_0x2203('0x4a')][_0x2203('0x4d')]){delete _0x4de47a['body'][_0x2203('0x4d')];}return db[_0x2203('0x2c')]['find']({'where':{'uniqueid':_0x4de47a[_0x2203('0x44')]['id'],'UserId':{'$or':[null,_0x4de47a[_0x2203('0x4e')]['id']]}}})[_0x2203('0x23')](handleEntityNotFound(_0x49999a,null))[_0x2203('0x23')](saveUpdates(_0x4de47a['body'],null))[_0x2203('0x23')](respondWithResult(_0x49999a,null))['catch'](handleError(_0x49999a,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcd7c=['bluebird','request-promise','rimraf','../../config/environment','./voiceCallReport.attributes','define','report_call','uniqueid','lodash','util','api','moment'];(function(_0x3e93de,_0x14b773){var _0x122037=function(_0x2afcfa){while(--_0x2afcfa){_0x3e93de['push'](_0x3e93de['shift']());}};_0x122037(++_0x14b773);}(_0xcd7c,0x104));var _0xccd7=function(_0x203634,_0x14dfc9){_0x203634=_0x203634-0x0;var _0x3c0a7a=_0xcd7c[_0x203634];return _0x3c0a7a;};'use strict';var _=require(_0xccd7('0x0'));var util=require(_0xccd7('0x1'));var logger=require('../../config/logger')(_0xccd7('0x2'));var moment=require(_0xccd7('0x3'));var BPromise=require(_0xccd7('0x4'));var rp=require(_0xccd7('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0xccd7('0x6'));var config=require(_0xccd7('0x7'));var attributes=require(_0xccd7('0x8'));module['exports']=function(_0x1810ba,_0x1ba7f4){return _0x1810ba[_0xccd7('0x9')]('VoiceCallReport',attributes,{'tableName':_0xccd7('0xa'),'paranoid':![],'indexes':[{'fields':[_0xccd7('0xb')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x02e7=['bluebird','request-promise','path','rimraf','../../config/environment','./voiceCallReport.attributes','exports','define','VoiceCallReport','report_call','uniqueid','lodash','../../config/logger','api','moment'];(function(_0x3712db,_0x42fccb){var _0x9500ce=function(_0x30c638){while(--_0x30c638){_0x3712db['push'](_0x3712db['shift']());}};_0x9500ce(++_0x42fccb);}(_0x02e7,0x146));var _0x702e=function(_0x4ae626,_0x3854bb){_0x4ae626=_0x4ae626-0x0;var _0xad446f=_0x02e7[_0x4ae626];return _0xad446f;};'use strict';var _=require(_0x702e('0x0'));var util=require('util');var logger=require(_0x702e('0x1'))(_0x702e('0x2'));var moment=require(_0x702e('0x3'));var BPromise=require(_0x702e('0x4'));var rp=require(_0x702e('0x5'));var fs=require('fs');var path=require(_0x702e('0x6'));var rimraf=require(_0x702e('0x7'));var config=require(_0x702e('0x8'));var attributes=require(_0x702e('0x9'));module[_0x702e('0xa')]=function(_0x467ec0,_0x18343f){return _0x467ec0[_0x702e('0xb')](_0x702e('0xc'),attributes,{'tableName':_0x702e('0xd'),'paranoid':![],'indexes':[{'fields':[_0x702e('0xe')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa0f2=['http','VoiceCallReport,\x20%s,\x20%s','request\x20sent','debug','VoiceCallReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','findAll','options','raw','where','limit','include','map','model','attributes','then','catch','GetVoiceCallReport','CreateVoiceCallReport','VoiceCallReport','create','body','info','update','UpdateVoiceCallReport','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client'];(function(_0x5ab244,_0x304b74){var _0x3e67bb=function(_0x26a9d6){while(--_0x26a9d6){_0x5ab244['push'](_0x5ab244['shift']());}};_0x3e67bb(++_0x304b74);}(_0xa0f2,0x6b));var _0x2a0f=function(_0xb49e66,_0x47190c){_0xb49e66=_0xb49e66-0x0;var _0x109255=_0xa0f2[_0xb49e66];return _0x109255;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x2a0f('0x0'));var BPromise=require(_0x2a0f('0x1'));var rs=require(_0x2a0f('0x2'));var fs=require('fs');var Redis=require(_0x2a0f('0x3'));var db=require(_0x2a0f('0x4'))['db'];var utils=require(_0x2a0f('0x5'));var logger=require(_0x2a0f('0x6'))(_0x2a0f('0x7'));var config=require('../../config/environment');var jayson=require(_0x2a0f('0x8'));var client=jayson[_0x2a0f('0x9')][_0x2a0f('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x507fd0,_0x22b524,_0xc831b3){return new BPromise(function(_0x4b974f,_0x148c0f){return client['request'](_0x507fd0,_0xc831b3)['then'](function(_0x5ea415){logger['info'](_0x2a0f('0xb'),_0x22b524,_0x2a0f('0xc'));logger[_0x2a0f('0xd')](_0x2a0f('0xe'),_0x22b524,'request\x20sent',JSON[_0x2a0f('0xf')](_0x5ea415));if(_0x5ea415[_0x2a0f('0x10')]){if(_0x5ea415[_0x2a0f('0x10')][_0x2a0f('0x11')]===0x1f4){logger['error']('VoiceCallReport,\x20%s,\x20%s',_0x22b524,_0x5ea415['error'][_0x2a0f('0x12')]);return _0x148c0f(_0x5ea415[_0x2a0f('0x10')][_0x2a0f('0x12')]);}logger[_0x2a0f('0x10')](_0x2a0f('0xb'),_0x22b524,_0x5ea415['error']['message']);return _0x4b974f(_0x5ea415[_0x2a0f('0x10')][_0x2a0f('0x12')]);}else{logger['info'](_0x2a0f('0xb'),_0x22b524,_0x2a0f('0xc'));_0x4b974f(_0x5ea415[_0x2a0f('0x13')][_0x2a0f('0x12')]);}})['catch'](function(_0x526add){logger['error']('VoiceCallReport,\x20%s,\x20%s',_0x22b524,_0x526add);_0x148c0f(_0x526add);});});}exports['GetVoiceCallReport']=function(_0x47bf20){var _0xdd8248=this;return new Promise(function(_0x1f54ad,_0x3c4e3d){return db['VoiceCallReport'][_0x2a0f('0x14')]({'raw':_0x47bf20[_0x2a0f('0x15')]?_0x47bf20[_0x2a0f('0x15')][_0x2a0f('0x16')]===undefined?!![]:![]:!![],'where':_0x47bf20[_0x2a0f('0x15')]?_0x47bf20['options'][_0x2a0f('0x17')]||null:null,'attributes':_0x47bf20[_0x2a0f('0x15')]?_0x47bf20['options']['attributes']||null:null,'limit':_0x47bf20['options']?_0x47bf20['options'][_0x2a0f('0x18')]||null:null,'include':_0x47bf20['options']?_0x47bf20[_0x2a0f('0x15')][_0x2a0f('0x19')]?_[_0x2a0f('0x1a')](_0x47bf20[_0x2a0f('0x15')][_0x2a0f('0x19')],function(_0x1e2ee2){return{'model':db[_0x1e2ee2[_0x2a0f('0x1b')]],'as':_0x1e2ee2['as'],'attributes':_0x1e2ee2[_0x2a0f('0x1c')],'include':_0x1e2ee2['include']?_[_0x2a0f('0x1a')](_0x1e2ee2['include'],function(_0x19ff34){return{'model':db[_0x19ff34[_0x2a0f('0x1b')]],'as':_0x19ff34['as'],'attributes':_0x19ff34[_0x2a0f('0x1c')],'include':_0x19ff34[_0x2a0f('0x19')]?_['map'](_0x19ff34['include'],function(_0x17b2bb){return{'model':db[_0x17b2bb[_0x2a0f('0x1b')]],'as':_0x17b2bb['as'],'attributes':_0x17b2bb['attributes']};}):[]};}):[]};}):[]:[]})[_0x2a0f('0x1d')](function(_0x5cc2cc){logger['info']('GetVoiceCallReport',_0x47bf20);logger[_0x2a0f('0xd')]('GetVoiceCallReport',_0x47bf20,JSON['stringify'](_0x5cc2cc));_0x1f54ad(_0x5cc2cc);})[_0x2a0f('0x1e')](function(_0x3d72bf){logger[_0x2a0f('0x10')](_0x2a0f('0x1f'),_0x3d72bf[_0x2a0f('0x12')],_0x47bf20);_0x3c4e3d(_0xdd8248[_0x2a0f('0x10')](0x1f4,_0x3d72bf[_0x2a0f('0x12')]));});});};exports[_0x2a0f('0x20')]=function(_0x54dfb1){var _0x3d9644=this;return new Promise(function(_0x43cf7f,_0x37fd93){return db[_0x2a0f('0x21')][_0x2a0f('0x22')](_0x54dfb1[_0x2a0f('0x23')],{'raw':_0x54dfb1['options']?_0x54dfb1[_0x2a0f('0x15')]['raw']===undefined?!![]:![]:!![]})[_0x2a0f('0x1d')](function(_0x38447d){logger[_0x2a0f('0x24')](_0x2a0f('0x20'),_0x54dfb1);logger[_0x2a0f('0xd')](_0x2a0f('0x20'),_0x54dfb1,JSON[_0x2a0f('0xf')](_0x38447d));_0x43cf7f(_0x38447d);})[_0x2a0f('0x1e')](function(_0x291c7c){logger[_0x2a0f('0x10')]('CreateVoiceCallReport',_0x291c7c[_0x2a0f('0x12')],_0x54dfb1);_0x37fd93(_0x3d9644[_0x2a0f('0x10')](0x1f4,_0x291c7c['message']));});});};exports['UpdateVoiceCallReport']=function(_0x8ed381){var _0x1d6653=this;return new Promise(function(_0x9ff2de,_0xe05c09){return db[_0x2a0f('0x21')][_0x2a0f('0x25')](_0x8ed381[_0x2a0f('0x23')],{'raw':_0x8ed381['options']?_0x8ed381[_0x2a0f('0x15')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x8ed381['options']?_0x8ed381['options'][_0x2a0f('0x17')]||null:null,'attributes':_0x8ed381[_0x2a0f('0x15')]?_0x8ed381[_0x2a0f('0x15')][_0x2a0f('0x1c')]||null:null,'limit':_0x8ed381[_0x2a0f('0x15')]?_0x8ed381[_0x2a0f('0x15')]['limit']||null:null})[_0x2a0f('0x1d')](function(_0x5ba44a){logger['info'](_0x2a0f('0x26'),_0x8ed381);logger[_0x2a0f('0xd')](_0x2a0f('0x26'),_0x8ed381,JSON[_0x2a0f('0xf')](_0x5ba44a));_0x9ff2de(_0x5ba44a);})[_0x2a0f('0x1e')](function(_0x377c5b){logger[_0x2a0f('0x10')]('UpdateVoiceCallReport',_0x377c5b[_0x2a0f('0x12')],_0x8ed381);_0xe05c09(_0x1d6653[_0x2a0f('0x10')](0x1f4,_0x377c5b['message']));});});};
\ No newline at end of file
+var _0x8f86=['message','result','catch','GetVoiceCallReport','VoiceCallReport','findAll','options','raw','where','attributes','limit','include','map','model','then','CreateVoiceCallReport','create','body','UpdateVoiceCallReport','update','lodash','util','moment','bluebird','randomstring','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','request','info','request\x20sent','debug','stringify','error','code','VoiceCallReport,\x20%s,\x20%s'];(function(_0x8aa458,_0x43b30d){var _0x3b7e29=function(_0x273ad5){while(--_0x273ad5){_0x8aa458['push'](_0x8aa458['shift']());}};_0x3b7e29(++_0x43b30d);}(_0x8f86,0xfe));var _0x68f8=function(_0x4cdc0c,_0x3e204e){_0x4cdc0c=_0x4cdc0c-0x0;var _0x1f47f1=_0x8f86[_0x4cdc0c];return _0x1f47f1;};'use strict';var _=require(_0x68f8('0x0'));var util=require(_0x68f8('0x1'));var moment=require(_0x68f8('0x2'));var BPromise=require(_0x68f8('0x3'));var rs=require(_0x68f8('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x68f8('0x5'));var logger=require(_0x68f8('0x6'))(_0x68f8('0x7'));var config=require(_0x68f8('0x8'));var jayson=require('jayson/promise');var client=jayson[_0x68f8('0x9')][_0x68f8('0xa')]({'port':0x232a});function respondWithRpcPromise(_0xdf5586,_0x565d02,_0x23817f){return new BPromise(function(_0x2cb0cf,_0x3a88ff){return client[_0x68f8('0xb')](_0xdf5586,_0x23817f)['then'](function(_0x85a1a3){logger[_0x68f8('0xc')]('VoiceCallReport,\x20%s,\x20%s',_0x565d02,_0x68f8('0xd'));logger[_0x68f8('0xe')]('VoiceCallReport,\x20%s,\x20%s,\x20%s',_0x565d02,_0x68f8('0xd'),JSON[_0x68f8('0xf')](_0x85a1a3));if(_0x85a1a3[_0x68f8('0x10')]){if(_0x85a1a3['error'][_0x68f8('0x11')]===0x1f4){logger[_0x68f8('0x10')](_0x68f8('0x12'),_0x565d02,_0x85a1a3[_0x68f8('0x10')]['message']);return _0x3a88ff(_0x85a1a3[_0x68f8('0x10')][_0x68f8('0x13')]);}logger[_0x68f8('0x10')](_0x68f8('0x12'),_0x565d02,_0x85a1a3[_0x68f8('0x10')][_0x68f8('0x13')]);return _0x2cb0cf(_0x85a1a3[_0x68f8('0x10')][_0x68f8('0x13')]);}else{logger[_0x68f8('0xc')](_0x68f8('0x12'),_0x565d02,_0x68f8('0xd'));_0x2cb0cf(_0x85a1a3[_0x68f8('0x14')]['message']);}})[_0x68f8('0x15')](function(_0x30681a){logger[_0x68f8('0x10')]('VoiceCallReport,\x20%s,\x20%s',_0x565d02,_0x30681a);_0x3a88ff(_0x30681a);});});}exports[_0x68f8('0x16')]=function(_0x4d06b5){var _0x29b39c=this;return new Promise(function(_0x3a687a,_0x314f7d){return db[_0x68f8('0x17')][_0x68f8('0x18')]({'raw':_0x4d06b5[_0x68f8('0x19')]?_0x4d06b5['options'][_0x68f8('0x1a')]===undefined?!![]:![]:!![],'where':_0x4d06b5[_0x68f8('0x19')]?_0x4d06b5[_0x68f8('0x19')][_0x68f8('0x1b')]||null:null,'attributes':_0x4d06b5[_0x68f8('0x19')]?_0x4d06b5[_0x68f8('0x19')][_0x68f8('0x1c')]||null:null,'limit':_0x4d06b5[_0x68f8('0x19')]?_0x4d06b5[_0x68f8('0x19')][_0x68f8('0x1d')]||null:null,'include':_0x4d06b5[_0x68f8('0x19')]?_0x4d06b5[_0x68f8('0x19')][_0x68f8('0x1e')]?_[_0x68f8('0x1f')](_0x4d06b5['options']['include'],function(_0x524d){return{'model':db[_0x524d[_0x68f8('0x20')]],'as':_0x524d['as'],'attributes':_0x524d[_0x68f8('0x1c')],'include':_0x524d['include']?_[_0x68f8('0x1f')](_0x524d['include'],function(_0x2e48bf){return{'model':db[_0x2e48bf[_0x68f8('0x20')]],'as':_0x2e48bf['as'],'attributes':_0x2e48bf[_0x68f8('0x1c')],'include':_0x2e48bf[_0x68f8('0x1e')]?_['map'](_0x2e48bf['include'],function(_0x47e782){return{'model':db[_0x47e782['model']],'as':_0x47e782['as'],'attributes':_0x47e782['attributes']};}):[]};}):[]};}):[]:[]})[_0x68f8('0x21')](function(_0x505473){logger[_0x68f8('0xc')](_0x68f8('0x16'),_0x4d06b5);logger[_0x68f8('0xe')]('GetVoiceCallReport',_0x4d06b5,JSON['stringify'](_0x505473));_0x3a687a(_0x505473);})[_0x68f8('0x15')](function(_0x32f211){logger[_0x68f8('0x10')](_0x68f8('0x16'),_0x32f211[_0x68f8('0x13')],_0x4d06b5);_0x314f7d(_0x29b39c['error'](0x1f4,_0x32f211[_0x68f8('0x13')]));});});};exports[_0x68f8('0x22')]=function(_0x182c44){var _0x160eab=this;return new Promise(function(_0x4a3dbf,_0x59c255){return db[_0x68f8('0x17')][_0x68f8('0x23')](_0x182c44[_0x68f8('0x24')],{'raw':_0x182c44[_0x68f8('0x19')]?_0x182c44['options'][_0x68f8('0x1a')]===undefined?!![]:![]:!![]})[_0x68f8('0x21')](function(_0x1bd963){logger[_0x68f8('0xc')](_0x68f8('0x22'),_0x182c44);logger[_0x68f8('0xe')]('CreateVoiceCallReport',_0x182c44,JSON['stringify'](_0x1bd963));_0x4a3dbf(_0x1bd963);})['catch'](function(_0xc2b6ba){logger['error'](_0x68f8('0x22'),_0xc2b6ba['message'],_0x182c44);_0x59c255(_0x160eab['error'](0x1f4,_0xc2b6ba['message']));});});};exports[_0x68f8('0x25')]=function(_0xe2d7dd){var _0x450173=this;return new Promise(function(_0x187ca5,_0x3af37a){return db[_0x68f8('0x17')][_0x68f8('0x26')](_0xe2d7dd['body'],{'raw':_0xe2d7dd[_0x68f8('0x19')]?_0xe2d7dd[_0x68f8('0x19')][_0x68f8('0x1a')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0xe2d7dd[_0x68f8('0x19')]?_0xe2d7dd[_0x68f8('0x19')]['where']||null:null,'attributes':_0xe2d7dd[_0x68f8('0x19')]?_0xe2d7dd[_0x68f8('0x19')][_0x68f8('0x1c')]||null:null,'limit':_0xe2d7dd[_0x68f8('0x19')]?_0xe2d7dd[_0x68f8('0x19')][_0x68f8('0x1d')]||null:null})[_0x68f8('0x21')](function(_0x1c1f29){logger[_0x68f8('0xc')]('UpdateVoiceCallReport',_0xe2d7dd);logger[_0x68f8('0xe')](_0x68f8('0x25'),_0xe2d7dd,JSON['stringify'](_0x1c1f29));_0x187ca5(_0x1c1f29);})[_0x68f8('0x15')](function(_0x367945){logger[_0x68f8('0x10')]('UpdateVoiceCallReport',_0x367945[_0x68f8('0x13')],_0xe2d7dd);_0x3af37a(_0x450173['error'](0x1f4,_0x367945[_0x68f8('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa388=['fs-extra','../../components/auth/service','../../config/environment','./voiceChanSpy.controller','index','get','/:id','isAuthenticated','show','post','create','put','delete','destroy','multer','connect-timeout','Router'];(function(_0x1f1ed4,_0x251ff1){var _0x3fe91a=function(_0x2595cc){while(--_0x2595cc){_0x1f1ed4['push'](_0x1f1ed4['shift']());}};_0x3fe91a(++_0x251ff1);}(_0xa388,0x10d));var _0x8a38=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xa388[_0x3dd15e];return _0x231fd0;};'use strict';var multer=require(_0x8a38('0x0'));var util=require('util');var path=require('path');var timeout=require(_0x8a38('0x1'));var express=require('express');var router=express[_0x8a38('0x2')]();var fs_extra=require(_0x8a38('0x3'));var auth=require(_0x8a38('0x4'));var interaction=require('../../components/interaction/service');var config=require(_0x8a38('0x5'));var controller=require(_0x8a38('0x6'));router['get']('/',auth['isAuthenticated'](),controller[_0x8a38('0x7')]);router[_0x8a38('0x8')](_0x8a38('0x9'),auth[_0x8a38('0xa')](),controller[_0x8a38('0xb')]);router[_0x8a38('0xc')]('/',auth[_0x8a38('0xa')](),controller[_0x8a38('0xd')]);router[_0x8a38('0xe')](_0x8a38('0x9'),auth[_0x8a38('0xa')](),controller['update']);router[_0x8a38('0xf')](_0x8a38('0x9'),auth[_0x8a38('0xa')](),controller[_0x8a38('0x10')]);module['exports']=router;
\ No newline at end of file
+var _0xfb07=['create','put','update','delete','/:id','destroy','multer','util','express','Router','../../components/auth/service','./voiceChanSpy.controller','get','isAuthenticated','index','show'];(function(_0x80d530,_0x5675f6){var _0x1efb5f=function(_0x37b4b1){while(--_0x37b4b1){_0x80d530['push'](_0x80d530['shift']());}};_0x1efb5f(++_0x5675f6);}(_0xfb07,0xa6));var _0x7fb0=function(_0xe2fdd0,_0x56d29f){_0xe2fdd0=_0xe2fdd0-0x0;var _0x3316a5=_0xfb07[_0xe2fdd0];return _0x3316a5;};'use strict';var multer=require(_0x7fb0('0x0'));var util=require(_0x7fb0('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0x7fb0('0x2'));var router=express[_0x7fb0('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x7fb0('0x4'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0x7fb0('0x5'));router[_0x7fb0('0x6')]('/',auth[_0x7fb0('0x7')](),controller[_0x7fb0('0x8')]);router[_0x7fb0('0x6')]('/:id',auth[_0x7fb0('0x7')](),controller[_0x7fb0('0x9')]);router['post']('/',auth['isAuthenticated'](),controller[_0x7fb0('0xa')]);router[_0x7fb0('0xb')]('/:id',auth[_0x7fb0('0x7')](),controller[_0x7fb0('0xc')]);router[_0x7fb0('0xd')](_0x7fb0('0xe'),auth[_0x7fb0('0x7')](),controller[_0x7fb0('0xf')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc84a=['BOOLEAN','sequelize','exports','STRING','options','join','split'];(function(_0x19a28d,_0x472544){var _0x5368ff=function(_0x5311db){while(--_0x5311db){_0x19a28d['push'](_0x19a28d['shift']());}};_0x5368ff(++_0x472544);}(_0xc84a,0x14a));var _0xac84=function(_0x4b633b,_0x4ba81a){_0x4b633b=_0x4b633b-0x0;var _0x3684be=_0xc84a[_0x4b633b];return _0x3684be;};'use strict';var Sequelize=require(_0xac84('0x0'));module[_0xac84('0x1')]={'name':{'type':Sequelize[_0xac84('0x2')]},'prefix':{'type':Sequelize[_0xac84('0x2')],'unique':'name','allowNull':![]},'options':{'type':Sequelize['STRING'],'set':function(_0x2fdc86){this['setDataValue'](_0xac84('0x3'),_0x2fdc86?_0x2fdc86[_0xac84('0x4')](''):[]);},'get':function(){return this['getDataValue'](_0xac84('0x3'))?this['getDataValue'](_0xac84('0x3'))[_0xac84('0x5')](''):[];}},'auth':{'type':Sequelize[_0xac84('0x6')],'defaultValue':![]},'password':{'type':Sequelize['STRING']},'record':{'type':Sequelize[_0xac84('0x6')],'defaultValue':![]},'recordingFormat':{'type':Sequelize[_0xac84('0x2')]},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0x8c3a=['STRING','name','options','join','getDataValue','split'];(function(_0x4d8a8f,_0x2afd4c){var _0xfc4adc=function(_0xb89886){while(--_0xb89886){_0x4d8a8f['push'](_0x4d8a8f['shift']());}};_0xfc4adc(++_0x2afd4c);}(_0x8c3a,0x144));var _0xa8c3=function(_0x311250,_0x1187c4){_0x311250=_0x311250-0x0;var _0x570d7f=_0x8c3a[_0x311250];return _0x570d7f;};'use strict';var Sequelize=require('sequelize');module['exports']={'name':{'type':Sequelize[_0xa8c3('0x0')]},'prefix':{'type':Sequelize[_0xa8c3('0x0')],'unique':_0xa8c3('0x1'),'allowNull':![]},'options':{'type':Sequelize[_0xa8c3('0x0')],'set':function(_0xa14760){this['setDataValue'](_0xa8c3('0x2'),_0xa14760?_0xa14760[_0xa8c3('0x3')](''):[]);},'get':function(){return this['getDataValue'](_0xa8c3('0x2'))?this[_0xa8c3('0x4')](_0xa8c3('0x2'))[_0xa8c3('0x5')](''):[];}},'auth':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'password':{'type':Sequelize[_0xa8c3('0x0')]},'record':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'recordingFormat':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0xa8c3('0x0')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3eec=['set','Content-Range','apply','reject','save','update','then','get','ChanSpies','end','error','stack','name','send','index','map','rawAttributes','fieldName','type','key','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','where','pick','merge','VIRTUAL','filter','options','includeAll','include','findAll','rows','catch','show','params','keys','find','VoiceChanSpy','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','destroy','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','status','json','undefined','count','offset','limit'];(function(_0xbbaf03,_0x31693a){var _0x1952ba=function(_0x333606){while(--_0x333606){_0xbbaf03['push'](_0xbbaf03['shift']());}};_0x1952ba(++_0x31693a);}(_0x3eec,0x1e9));var _0xc3ee=function(_0x261d66,_0x3039ed){_0x261d66=_0x261d66-0x0;var _0x2b967c=_0x3eec[_0x261d66];return _0x2b967c;};'use strict';var emlformat=require(_0xc3ee('0x0'));var rimraf=require(_0xc3ee('0x1'));var zipdir=require(_0xc3ee('0x2'));var jsonpatch=require(_0xc3ee('0x3'));var rp=require('request-promise');var moment=require(_0xc3ee('0x4'));var BPromise=require(_0xc3ee('0x5'));var Mustache=require(_0xc3ee('0x6'));var util=require(_0xc3ee('0x7'));var path=require(_0xc3ee('0x8'));var sox=require(_0xc3ee('0x9'));var csv=require('to-csv');var ejs=require(_0xc3ee('0xa'));var fs=require('fs');var fs_extra=require(_0xc3ee('0xb'));var _=require(_0xc3ee('0xc'));var squel=require(_0xc3ee('0xd'));var crypto=require(_0xc3ee('0xe'));var jsforce=require(_0xc3ee('0xf'));var deskjs=require(_0xc3ee('0x10'));var toCsv=require(_0xc3ee('0x11'));var querystring=require(_0xc3ee('0x12'));var Papa=require(_0xc3ee('0x13'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0xc3ee('0x14'));var as=require(_0xc3ee('0x15'));var hardwareService=require(_0xc3ee('0x16'));var logger=require(_0xc3ee('0x17'))('api');var utils=require(_0xc3ee('0x18'));var config=require('../../config/environment');var licenseUtil=require(_0xc3ee('0x19'));var db=require(_0xc3ee('0x1a'))['db'];function respondWithStatusCode(_0x4beb01,_0x5f2c3a){_0x5f2c3a=_0x5f2c3a||0xcc;return function(_0x2eb82e){if(_0x2eb82e){return _0x4beb01['sendStatus'](_0x5f2c3a);}return _0x4beb01[_0xc3ee('0x1b')](_0x5f2c3a)['end']();};}function respondWithResult(_0x19feb3,_0x58ebe7){_0x58ebe7=_0x58ebe7||0xc8;return function(_0x3d669d){if(_0x3d669d){return _0x19feb3[_0xc3ee('0x1b')](_0x58ebe7)[_0xc3ee('0x1c')](_0x3d669d);}};}function respondWithFilteredResult(_0x664bad,_0x476f8f){return function(_0xf63359){if(_0xf63359){var _0x277e11=typeof _0x476f8f['offset']===_0xc3ee('0x1d')&&typeof _0x476f8f['limit']===_0xc3ee('0x1d');var _0x1bf49a=_0xf63359[_0xc3ee('0x1e')];var _0x219db0=_0x277e11?0x0:_0x476f8f[_0xc3ee('0x1f')];var _0x3acb0c=_0x277e11?_0xf63359[_0xc3ee('0x1e')]:_0x476f8f[_0xc3ee('0x1f')]+_0x476f8f[_0xc3ee('0x20')];var _0x202a9a;if(_0x3acb0c>=_0x1bf49a){_0x3acb0c=_0x1bf49a;_0x202a9a=0xc8;}else{_0x202a9a=0xce;}_0x664bad[_0xc3ee('0x1b')](_0x202a9a);return _0x664bad[_0xc3ee('0x21')](_0xc3ee('0x22'),_0x219db0+'-'+_0x3acb0c+'/'+_0x1bf49a)[_0xc3ee('0x1c')](_0xf63359);}return null;};}function patchUpdates(_0x3e7224){return function(_0x46a8c9){try{jsonpatch[_0xc3ee('0x23')](_0x46a8c9,_0x3e7224,!![]);}catch(_0x30df3a){return BPromise[_0xc3ee('0x24')](_0x30df3a);}return _0x46a8c9[_0xc3ee('0x25')]();};}function saveUpdates(_0x11778f,_0x493fea){return function(_0x4d672e){if(_0x4d672e){return _0x4d672e[_0xc3ee('0x26')](_0x11778f)[_0xc3ee('0x27')](function(_0x3b8f75){return _0x3b8f75;});}return null;};}function removeEntity(_0x464ffc,_0x28bfeb){return function(_0x238df7){if(_0x238df7){return _0x238df7['destroy']()[_0xc3ee('0x27')](function(){var _0x3f8f7b=_0x238df7[_0xc3ee('0x28')]({'plain':!![]});var _0xfd03bd=_0xc3ee('0x29');return db['UserProfileResource']['destroy']({'where':{'type':_0xfd03bd,'resourceId':_0x3f8f7b['id']}})[_0xc3ee('0x27')](function(){return _0x238df7;});})[_0xc3ee('0x27')](function(){_0x464ffc[_0xc3ee('0x1b')](0xcc)[_0xc3ee('0x2a')]();});}};}function handleEntityNotFound(_0x836fac,_0x4ecfec){return function(_0x56201a){if(!_0x56201a){_0x836fac['sendStatus'](0x194);}return _0x56201a;};}function handleError(_0x1be005,_0x2f2c29){_0x2f2c29=_0x2f2c29||0x1f4;return function(_0x44678b){logger[_0xc3ee('0x2b')](_0x44678b[_0xc3ee('0x2c')]);if(_0x44678b['name']){delete _0x44678b[_0xc3ee('0x2d')];}_0x1be005[_0xc3ee('0x1b')](_0x2f2c29)[_0xc3ee('0x2e')](_0x44678b);};}exports[_0xc3ee('0x2f')]=function(_0x1f7b3a,_0x8bbe1e){var _0x3b17f7={},_0x4da264={},_0x330b71={'count':0x0,'rows':[]};var _0x35c19a=_[_0xc3ee('0x30')](db['VoiceChanSpy'][_0xc3ee('0x31')],function(_0x240a16){return{'name':_0x240a16[_0xc3ee('0x32')],'type':_0x240a16[_0xc3ee('0x33')][_0xc3ee('0x34')]};});_0x4da264[_0xc3ee('0x35')]=_[_0xc3ee('0x30')](_0x35c19a,'name');_0x4da264[_0xc3ee('0x36')]=_['keys'](_0x1f7b3a[_0xc3ee('0x36')]);_0x4da264[_0xc3ee('0x37')]=_[_0xc3ee('0x38')](_0x4da264[_0xc3ee('0x35')],_0x4da264[_0xc3ee('0x36')]);_0x3b17f7[_0xc3ee('0x39')]=_['intersection'](_0x4da264[_0xc3ee('0x35')],qs[_0xc3ee('0x3a')](_0x1f7b3a[_0xc3ee('0x36')][_0xc3ee('0x3a')]));_0x3b17f7[_0xc3ee('0x39')]=_0x3b17f7[_0xc3ee('0x39')][_0xc3ee('0x3b')]?_0x3b17f7[_0xc3ee('0x39')]:_0x4da264[_0xc3ee('0x35')];if(!_0x1f7b3a[_0xc3ee('0x36')][_0xc3ee('0x3c')](_0xc3ee('0x3d'))){_0x3b17f7[_0xc3ee('0x20')]=qs[_0xc3ee('0x20')](_0x1f7b3a[_0xc3ee('0x36')][_0xc3ee('0x20')]);_0x3b17f7[_0xc3ee('0x1f')]=qs[_0xc3ee('0x1f')](_0x1f7b3a[_0xc3ee('0x36')][_0xc3ee('0x1f')]);}_0x3b17f7[_0xc3ee('0x3e')]=qs['sort'](_0x1f7b3a[_0xc3ee('0x36')]['sort']);_0x3b17f7[_0xc3ee('0x3f')]=qs[_0xc3ee('0x37')](_[_0xc3ee('0x40')](_0x1f7b3a[_0xc3ee('0x36')],_0x4da264[_0xc3ee('0x37')]),_0x35c19a);if(_0x1f7b3a[_0xc3ee('0x36')]['filter']){_0x3b17f7[_0xc3ee('0x3f')]=_[_0xc3ee('0x41')](_0x3b17f7[_0xc3ee('0x3f')],{'$or':_['map'](_0x35c19a,function(_0x181179){if(_0x181179[_0xc3ee('0x33')]!==_0xc3ee('0x42')){var _0x1fe17f={};_0x1fe17f[_0x181179[_0xc3ee('0x2d')]]={'$like':'%'+_0x1f7b3a[_0xc3ee('0x36')][_0xc3ee('0x43')]+'%'};return _0x1fe17f;}})});}_0x3b17f7=_[_0xc3ee('0x41')]({},_0x3b17f7,_0x1f7b3a[_0xc3ee('0x44')]);var _0x23d365={'where':_0x3b17f7[_0xc3ee('0x3f')]};return db['VoiceChanSpy'][_0xc3ee('0x1e')](_0x23d365)[_0xc3ee('0x27')](function(_0x4a89b7){_0x330b71['count']=_0x4a89b7;if(_0x1f7b3a[_0xc3ee('0x36')][_0xc3ee('0x45')]){_0x3b17f7[_0xc3ee('0x46')]=[{'all':!![]}];}return db['VoiceChanSpy'][_0xc3ee('0x47')](_0x3b17f7);})[_0xc3ee('0x27')](function(_0x112e77){_0x330b71[_0xc3ee('0x48')]=_0x112e77;return _0x330b71;})[_0xc3ee('0x27')](respondWithFilteredResult(_0x8bbe1e,_0x3b17f7))[_0xc3ee('0x49')](handleError(_0x8bbe1e,null));};exports[_0xc3ee('0x4a')]=function(_0x724c4e,_0x49b424){var _0x602d47={'raw':![],'where':{'id':_0x724c4e[_0xc3ee('0x4b')]['id']}},_0xf833d9={};_0xf833d9[_0xc3ee('0x35')]=_[_0xc3ee('0x4c')](db['VoiceChanSpy'][_0xc3ee('0x31')]);_0xf833d9['query']=_['keys'](_0x724c4e[_0xc3ee('0x36')]);_0xf833d9[_0xc3ee('0x37')]=_['intersection'](_0xf833d9[_0xc3ee('0x35')],_0xf833d9[_0xc3ee('0x36')]);_0x602d47['attributes']=_[_0xc3ee('0x38')](_0xf833d9['model'],qs[_0xc3ee('0x3a')](_0x724c4e['query'][_0xc3ee('0x3a')]));_0x602d47[_0xc3ee('0x39')]=_0x602d47['attributes']['length']?_0x602d47['attributes']:_0xf833d9[_0xc3ee('0x35')];if(_0x724c4e[_0xc3ee('0x36')][_0xc3ee('0x45')]){_0x602d47[_0xc3ee('0x46')]=[{'all':!![]}];}_0x602d47=_[_0xc3ee('0x41')]({},_0x602d47,_0x724c4e['options']);return db['VoiceChanSpy'][_0xc3ee('0x4d')](_0x602d47)[_0xc3ee('0x27')](handleEntityNotFound(_0x49b424,null))['then'](respondWithResult(_0x49b424,null))[_0xc3ee('0x49')](handleError(_0x49b424,null));};exports['create']=function(_0x60e36a,_0x5d0017){return db[_0xc3ee('0x4e')][_0xc3ee('0x4f')](_0x60e36a[_0xc3ee('0x50')],{})[_0xc3ee('0x27')](function(_0x8c8cc6){var _0x281adc=_0x60e36a[_0xc3ee('0x51')]['get']({'plain':!![]});if(!_0x281adc)throw new Error(_0xc3ee('0x52'));if(_0x281adc[_0xc3ee('0x53')]===_0xc3ee('0x51')){var _0x237aa8=_0x8c8cc6['get']({'plain':!![]});var _0xd246f2=_0xc3ee('0x29');return db[_0xc3ee('0x54')][_0xc3ee('0x4d')]({'where':{'name':_0xd246f2,'userProfileId':_0x281adc[_0xc3ee('0x55')]},'raw':!![]})[_0xc3ee('0x27')](function(_0x14df9d){if(_0x14df9d&&_0x14df9d['autoAssociation']===0x0){return db['UserProfileResource']['create']({'name':_0x237aa8['name'],'resourceId':_0x237aa8['id'],'type':_0x14df9d[_0xc3ee('0x2d')],'sectionId':_0x14df9d['id']},{})[_0xc3ee('0x27')](function(){return _0x8c8cc6;});}else{return _0x8c8cc6;}})[_0xc3ee('0x49')](function(_0x2b9ea){logger[_0xc3ee('0x2b')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x2b9ea);throw _0x2b9ea;});}return _0x8c8cc6;})['then'](respondWithResult(_0x5d0017,0xc9))[_0xc3ee('0x49')](handleError(_0x5d0017,null));};exports['update']=function(_0x1ca127,_0x28eca9){if(_0x1ca127[_0xc3ee('0x50')]['id']){delete _0x1ca127['body']['id'];}return db[_0xc3ee('0x4e')][_0xc3ee('0x4d')]({'where':{'id':_0x1ca127[_0xc3ee('0x4b')]['id']}})[_0xc3ee('0x27')](handleEntityNotFound(_0x28eca9,null))[_0xc3ee('0x27')](saveUpdates(_0x1ca127[_0xc3ee('0x50')],null))[_0xc3ee('0x27')](respondWithResult(_0x28eca9,null))[_0xc3ee('0x49')](handleError(_0x28eca9,null));};exports[_0xc3ee('0x56')]=function(_0x5d5ca5,_0x3fdc8f){return db[_0xc3ee('0x4e')][_0xc3ee('0x4d')]({'where':{'id':_0x5d5ca5[_0xc3ee('0x4b')]['id']}})[_0xc3ee('0x27')](handleEntityNotFound(_0x3fdc8f,null))[_0xc3ee('0x27')](removeEntity(_0x3fdc8f,null))[_0xc3ee('0x49')](handleError(_0x3fdc8f,null));};
\ No newline at end of file
+var _0x4d9e=['papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','json','offset','undefined','limit','count','status','Content-Range','apply','reject','save','update','then','ChanSpies','UserProfileResource','sendStatus','error','name','send','index','map','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','VIRTUAL','options','VoiceChanSpy','includeAll','include','findAll','rows','catch','params','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','destroy','eml-format','fast-json-patch','moment','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring'];(function(_0x53c4f8,_0x44ccaf){var _0x416458=function(_0x2632aa){while(--_0x2632aa){_0x53c4f8['push'](_0x53c4f8['shift']());}};_0x416458(++_0x44ccaf);}(_0x4d9e,0x18c));var _0xe4d9=function(_0x1af721,_0x35cfab){_0x1af721=_0x1af721-0x0;var _0x411ce6=_0x4d9e[_0x1af721];return _0x411ce6;};'use strict';var emlformat=require(_0xe4d9('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xe4d9('0x1'));var rp=require('request-promise');var moment=require(_0xe4d9('0x2'));var BPromise=require('bluebird');var Mustache=require(_0xe4d9('0x3'));var util=require(_0xe4d9('0x4'));var path=require('path');var sox=require(_0xe4d9('0x5'));var csv=require(_0xe4d9('0x6'));var ejs=require(_0xe4d9('0x7'));var fs=require('fs');var fs_extra=require(_0xe4d9('0x8'));var _=require(_0xe4d9('0x9'));var squel=require(_0xe4d9('0xa'));var crypto=require('crypto');var jsforce=require(_0xe4d9('0xb'));var deskjs=require(_0xe4d9('0xc'));var toCsv=require(_0xe4d9('0x6'));var querystring=require(_0xe4d9('0xd'));var Papa=require(_0xe4d9('0xe'));var Redis=require(_0xe4d9('0xf'));var authService=require('../../components/auth/service');var qs=require(_0xe4d9('0x10'));var as=require(_0xe4d9('0x11'));var hardwareService=require(_0xe4d9('0x12'));var logger=require(_0xe4d9('0x13'))(_0xe4d9('0x14'));var utils=require(_0xe4d9('0x15'));var config=require(_0xe4d9('0x16'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x580c50,_0x4e0d15){_0x4e0d15=_0x4e0d15||0xcc;return function(_0x564383){if(_0x564383){return _0x580c50['sendStatus'](_0x4e0d15);}return _0x580c50['status'](_0x4e0d15)['end']();};}function respondWithResult(_0x15c0eb,_0x3238d4){_0x3238d4=_0x3238d4||0xc8;return function(_0x3f884c){if(_0x3f884c){return _0x15c0eb['status'](_0x3238d4)[_0xe4d9('0x17')](_0x3f884c);}};}function respondWithFilteredResult(_0x3f6ce4,_0xe4f133){return function(_0x4283f7){if(_0x4283f7){var _0x58d0cf=typeof _0xe4f133[_0xe4d9('0x18')]===_0xe4d9('0x19')&&typeof _0xe4f133[_0xe4d9('0x1a')]==='undefined';var _0x4d2afd=_0x4283f7[_0xe4d9('0x1b')];var _0x112315=_0x58d0cf?0x0:_0xe4f133['offset'];var _0x2e1490=_0x58d0cf?_0x4283f7['count']:_0xe4f133[_0xe4d9('0x18')]+_0xe4f133[_0xe4d9('0x1a')];var _0x1ea096;if(_0x2e1490>=_0x4d2afd){_0x2e1490=_0x4d2afd;_0x1ea096=0xc8;}else{_0x1ea096=0xce;}_0x3f6ce4[_0xe4d9('0x1c')](_0x1ea096);return _0x3f6ce4['set'](_0xe4d9('0x1d'),_0x112315+'-'+_0x2e1490+'/'+_0x4d2afd)[_0xe4d9('0x17')](_0x4283f7);}return null;};}function patchUpdates(_0x151220){return function(_0x171224){try{jsonpatch[_0xe4d9('0x1e')](_0x171224,_0x151220,!![]);}catch(_0x1146fc){return BPromise[_0xe4d9('0x1f')](_0x1146fc);}return _0x171224[_0xe4d9('0x20')]();};}function saveUpdates(_0x562bab,_0x4fed7f){return function(_0x44f1aa){if(_0x44f1aa){return _0x44f1aa[_0xe4d9('0x21')](_0x562bab)['then'](function(_0x189dad){return _0x189dad;});}return null;};}function removeEntity(_0x50d377,_0x14f3d7){return function(_0x125320){if(_0x125320){return _0x125320['destroy']()[_0xe4d9('0x22')](function(){var _0x32e7da=_0x125320['get']({'plain':!![]});var _0xc5be1b=_0xe4d9('0x23');return db[_0xe4d9('0x24')]['destroy']({'where':{'type':_0xc5be1b,'resourceId':_0x32e7da['id']}})['then'](function(){return _0x125320;});})[_0xe4d9('0x22')](function(){_0x50d377[_0xe4d9('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5dddd2,_0x4954b5){return function(_0x529e2b){if(!_0x529e2b){_0x5dddd2[_0xe4d9('0x25')](0x194);}return _0x529e2b;};}function handleError(_0x48d481,_0x40ffd0){_0x40ffd0=_0x40ffd0||0x1f4;return function(_0x1f3d90){logger[_0xe4d9('0x26')](_0x1f3d90['stack']);if(_0x1f3d90[_0xe4d9('0x27')]){delete _0x1f3d90[_0xe4d9('0x27')];}_0x48d481[_0xe4d9('0x1c')](_0x40ffd0)[_0xe4d9('0x28')](_0x1f3d90);};}exports[_0xe4d9('0x29')]=function(_0x1904d1,_0x21b7a9){var _0x449cb8={},_0x1fb637={},_0x3e6ea7={'count':0x0,'rows':[]};var _0x519c18=_[_0xe4d9('0x2a')](db['VoiceChanSpy'][_0xe4d9('0x2b')],function(_0x349be3){return{'name':_0x349be3[_0xe4d9('0x2c')],'type':_0x349be3[_0xe4d9('0x2d')][_0xe4d9('0x2e')]};});_0x1fb637[_0xe4d9('0x2f')]=_['map'](_0x519c18,'name');_0x1fb637['query']=_[_0xe4d9('0x30')](_0x1904d1[_0xe4d9('0x31')]);_0x1fb637[_0xe4d9('0x32')]=_['intersection'](_0x1fb637['model'],_0x1fb637['query']);_0x449cb8['attributes']=_[_0xe4d9('0x33')](_0x1fb637[_0xe4d9('0x2f')],qs['fields'](_0x1904d1[_0xe4d9('0x31')][_0xe4d9('0x34')]));_0x449cb8['attributes']=_0x449cb8[_0xe4d9('0x35')][_0xe4d9('0x36')]?_0x449cb8[_0xe4d9('0x35')]:_0x1fb637[_0xe4d9('0x2f')];if(!_0x1904d1[_0xe4d9('0x31')][_0xe4d9('0x37')](_0xe4d9('0x38'))){_0x449cb8[_0xe4d9('0x1a')]=qs[_0xe4d9('0x1a')](_0x1904d1[_0xe4d9('0x31')][_0xe4d9('0x1a')]);_0x449cb8[_0xe4d9('0x18')]=qs[_0xe4d9('0x18')](_0x1904d1[_0xe4d9('0x31')]['offset']);}_0x449cb8[_0xe4d9('0x39')]=qs[_0xe4d9('0x3a')](_0x1904d1[_0xe4d9('0x31')][_0xe4d9('0x3a')]);_0x449cb8[_0xe4d9('0x3b')]=qs[_0xe4d9('0x32')](_[_0xe4d9('0x3c')](_0x1904d1[_0xe4d9('0x31')],_0x1fb637[_0xe4d9('0x32')]),_0x519c18);if(_0x1904d1['query']['filter']){_0x449cb8['where']=_[_0xe4d9('0x3d')](_0x449cb8[_0xe4d9('0x3b')],{'$or':_[_0xe4d9('0x2a')](_0x519c18,function(_0x2770a2){if(_0x2770a2[_0xe4d9('0x2d')]!==_0xe4d9('0x3e')){var _0x392cdd={};_0x392cdd[_0x2770a2['name']]={'$like':'%'+_0x1904d1['query']['filter']+'%'};return _0x392cdd;}})});}_0x449cb8=_[_0xe4d9('0x3d')]({},_0x449cb8,_0x1904d1[_0xe4d9('0x3f')]);var _0x5a908b={'where':_0x449cb8[_0xe4d9('0x3b')]};return db[_0xe4d9('0x40')][_0xe4d9('0x1b')](_0x5a908b)[_0xe4d9('0x22')](function(_0x5d0476){_0x3e6ea7[_0xe4d9('0x1b')]=_0x5d0476;if(_0x1904d1[_0xe4d9('0x31')][_0xe4d9('0x41')]){_0x449cb8[_0xe4d9('0x42')]=[{'all':!![]}];}return db[_0xe4d9('0x40')][_0xe4d9('0x43')](_0x449cb8);})[_0xe4d9('0x22')](function(_0x3e9653){_0x3e6ea7[_0xe4d9('0x44')]=_0x3e9653;return _0x3e6ea7;})[_0xe4d9('0x22')](respondWithFilteredResult(_0x21b7a9,_0x449cb8))[_0xe4d9('0x45')](handleError(_0x21b7a9,null));};exports['show']=function(_0x429be,_0x449230){var _0x4857fe={'raw':![],'where':{'id':_0x429be[_0xe4d9('0x46')]['id']}},_0x2b7e25={};_0x2b7e25['model']=_[_0xe4d9('0x30')](db[_0xe4d9('0x40')][_0xe4d9('0x2b')]);_0x2b7e25[_0xe4d9('0x31')]=_[_0xe4d9('0x30')](_0x429be[_0xe4d9('0x31')]);_0x2b7e25[_0xe4d9('0x32')]=_[_0xe4d9('0x33')](_0x2b7e25[_0xe4d9('0x2f')],_0x2b7e25[_0xe4d9('0x31')]);_0x4857fe['attributes']=_[_0xe4d9('0x33')](_0x2b7e25[_0xe4d9('0x2f')],qs[_0xe4d9('0x34')](_0x429be['query'][_0xe4d9('0x34')]));_0x4857fe[_0xe4d9('0x35')]=_0x4857fe[_0xe4d9('0x35')][_0xe4d9('0x36')]?_0x4857fe[_0xe4d9('0x35')]:_0x2b7e25[_0xe4d9('0x2f')];if(_0x429be[_0xe4d9('0x31')]['includeAll']){_0x4857fe[_0xe4d9('0x42')]=[{'all':!![]}];}_0x4857fe=_[_0xe4d9('0x3d')]({},_0x4857fe,_0x429be[_0xe4d9('0x3f')]);return db[_0xe4d9('0x40')][_0xe4d9('0x47')](_0x4857fe)[_0xe4d9('0x22')](handleEntityNotFound(_0x449230,null))['then'](respondWithResult(_0x449230,null))[_0xe4d9('0x45')](handleError(_0x449230,null));};exports[_0xe4d9('0x48')]=function(_0x87f230,_0x38468c){return db[_0xe4d9('0x40')][_0xe4d9('0x48')](_0x87f230['body'],{})[_0xe4d9('0x22')](function(_0x29e038){var _0x53e7c4=_0x87f230[_0xe4d9('0x49')]['get']({'plain':!![]});if(!_0x53e7c4)throw new Error(_0xe4d9('0x4a'));if(_0x53e7c4[_0xe4d9('0x4b')]==='user'){var _0x657961=_0x29e038['get']({'plain':!![]});var _0x27a5e4=_0xe4d9('0x23');return db[_0xe4d9('0x4c')]['find']({'where':{'name':_0x27a5e4,'userProfileId':_0x53e7c4[_0xe4d9('0x4d')]},'raw':!![]})[_0xe4d9('0x22')](function(_0x4d5ff9){if(_0x4d5ff9&&_0x4d5ff9[_0xe4d9('0x4e')]===0x0){return db[_0xe4d9('0x24')][_0xe4d9('0x48')]({'name':_0x657961[_0xe4d9('0x27')],'resourceId':_0x657961['id'],'type':_0x4d5ff9['name'],'sectionId':_0x4d5ff9['id']},{})['then'](function(){return _0x29e038;});}else{return _0x29e038;}})[_0xe4d9('0x45')](function(_0x40674d){logger[_0xe4d9('0x26')](_0xe4d9('0x4f'),_0x40674d);throw _0x40674d;});}return _0x29e038;})[_0xe4d9('0x22')](respondWithResult(_0x38468c,0xc9))[_0xe4d9('0x45')](handleError(_0x38468c,null));};exports['update']=function(_0x5a57ad,_0x2c5500){if(_0x5a57ad[_0xe4d9('0x50')]['id']){delete _0x5a57ad[_0xe4d9('0x50')]['id'];}return db[_0xe4d9('0x40')][_0xe4d9('0x47')]({'where':{'id':_0x5a57ad[_0xe4d9('0x46')]['id']}})['then'](handleEntityNotFound(_0x2c5500,null))[_0xe4d9('0x22')](saveUpdates(_0x5a57ad[_0xe4d9('0x50')],null))[_0xe4d9('0x22')](respondWithResult(_0x2c5500,null))['catch'](handleError(_0x2c5500,null));};exports[_0xe4d9('0x51')]=function(_0x2b6d70,_0x281fda){return db['VoiceChanSpy'][_0xe4d9('0x47')]({'where':{'id':_0x2b6d70['params']['id']}})[_0xe4d9('0x22')](handleEntityNotFound(_0x281fda,null))[_0xe4d9('0x22')](removeEntity(_0x281fda,null))[_0xe4d9('0x45')](handleError(_0x281fda,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x817f=['join','internal','concat','User','findAll','then','catch','exports','define','voice_chanspy','VoiceExtension','bulkCreate','length','destroy','lodash','util','bluebird','context','%s%s','prefix','merge','Set','format','CDR(type)=%s','chanspy','record','MixMonitor','${UNIQUEID}.%s,a','recordingFormat','auth','Authenticate','push','SIP/%s,%s','name','options'];(function(_0x14619d,_0x3e3b8f){var _0x1b42c1=function(_0x580572){while(--_0x580572){_0x14619d['push'](_0x14619d['shift']());}};_0x1b42c1(++_0x3e3b8f);}(_0x817f,0x1b2));var _0xf817=function(_0x2e10b1,_0x845b82){_0x2e10b1=_0x2e10b1-0x0;var _0x41de8b=_0x817f[_0x2e10b1];return _0x41de8b;};'use strict';var _=require(_0xf817('0x0'));var util=require(_0xf817('0x1'));var BPromise=require(_0xf817('0x2'));var attributes=require('./voiceChanSpy.attributes');var getUserApplications=function(_0x3e0e74,_0x1e66b6,_0x38af36){var _0x12d570=0x1;var _0x102489=[];var _0x1fa54f={'context':_0x1e66b6[_0xf817('0x3')]||'from-sip','exten':util['format'](_0xf817('0x4'),_0x3e0e74[_0xf817('0x5')],_0x38af36),'type':'system','isApp':![],'ChanSpyId':_0x3e0e74['id'],'UserId':_0x1e66b6['id']};_0x102489['push'](_[_0xf817('0x6')]({'app':_0xf817('0x7'),'appdata':util[_0xf817('0x8')](_0xf817('0x9'),_0xf817('0xa')),'priority':_0x12d570++},_0x1fa54f));if(_0x3e0e74[_0xf817('0xb')]){_0x102489['push'](_[_0xf817('0x6')]({'app':_0xf817('0xc'),'appdata':util['format'](_0xf817('0xd'),_0x3e0e74[_0xf817('0xe')]),'priority':_0x12d570++},_0x1fa54f));}if(_0x3e0e74[_0xf817('0xf')]){_0x102489['push'](_[_0xf817('0x6')]({'app':_0xf817('0x10'),'appdata':_0x3e0e74['password'],'priority':_0x12d570++},_0x1fa54f));}_0x102489[_0xf817('0x11')](_[_0xf817('0x6')]({'app':'ChanSpy','appdata':util[_0xf817('0x8')](_0xf817('0x12'),_0x1e66b6[_0xf817('0x13')],_0x3e0e74[_0xf817('0x14')]?_0x3e0e74[_0xf817('0x14')][_0xf817('0x15')](''):''),'priority':_0x12d570++},_0x1fa54f));if(_0x3e0e74[_0xf817('0xb')]){_0x102489[_0xf817('0x11')](_['merge']({'app':'StopMixMonitor','priority':_0x12d570++},_0x1fa54f));}return _0x102489;};var getChanSpyApplications=function(_0x1a3a44,_0x1ed470){var _0x5d3331=[];for(var _0x341685=0x0,_0x209353=0x1;_0x341685<_0x1ed470['length'];_0x341685++,_0x209353=0x1){_0x5d3331=_0x5d3331['concat'](getUserApplications(_0x1a3a44,_0x1ed470[_0x341685],_0x1ed470[_0x341685][_0xf817('0x16')]));if(_0x1ed470[_0x341685][_0xf817('0x16')]!=_0x1ed470[_0x341685]['name']){_0x5d3331=_0x5d3331[_0xf817('0x17')](getUserApplications(_0x1a3a44,_0x1ed470[_0x341685],_0x1ed470[_0x341685][_0xf817('0x13')]));}}return _0x5d3331;};var getChanSpyPromise=function(_0x510dc7,_0x4a7c99){return new BPromise(function(_0x3626ff,_0x2dd7a2){return _0x510dc7[_0xf817('0x18')][_0xf817('0x19')]({'attributes':['id',_0xf817('0x13'),'internal'],'where':{'role':'agent','chanspy':!![]},'raw':!![]})[_0xf817('0x1a')](function(_0x2e7d9f){if(_0x2e7d9f){return _0x3626ff(getChanSpyApplications(_0x4a7c99,_0x2e7d9f));}return _0x3626ff([]);})[_0xf817('0x1b')](function(_0x39e2c0){_0x2dd7a2(_0x39e2c0);});});};module[_0xf817('0x1c')]=function(_0x16882a,_0x4b5243){var _0x1ae5aa=_0x16882a['models'];return _0x16882a[_0xf817('0x1d')]('VoiceChanSpy',attributes,{'tableName':_0xf817('0x1e'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0x4891f7,_0x801d24,_0x4dc97e){return getChanSpyPromise(_0x1ae5aa,_0x4891f7)[_0xf817('0x1a')](function(_0xb7d6a3){if(_0xb7d6a3&&_0xb7d6a3['length']){return _0x1ae5aa[_0xf817('0x1f')][_0xf817('0x20')](_0xb7d6a3);}})[_0xf817('0x1a')](function(){_0x4dc97e();})[_0xf817('0x1b')](function(_0x4304de){_0x4dc97e(_0x4304de);});},'afterUpdate':function(_0x515fd1,_0x1f8127,_0x3b545c){return _0x1ae5aa[_0xf817('0x1f')]['destroy']({'where':{'ChanSpyId':_0x515fd1['id']}})[_0xf817('0x1a')](function(){return getChanSpyPromise(_0x1ae5aa,_0x515fd1);})[_0xf817('0x1a')](function(_0x45c068){if(_0x45c068&&_0x45c068[_0xf817('0x21')]){return _0x1ae5aa['VoiceExtension'][_0xf817('0x20')](_0x45c068);}})[_0xf817('0x1a')](function(){_0x3b545c();})[_0xf817('0x1b')](function(_0xe2df06){_0x3b545c(_0xe2df06);});},'afterDestroy':function(_0x533f15,_0x226366,_0x192d43){return _0x1ae5aa[_0xf817('0x1f')][_0xf817('0x22')]({'where':{'ChanSpyId':_0x533f15['id']}})[_0xf817('0x1a')](function(){_0x192d43();})[_0xf817('0x1b')](function(_0x58c101){_0x192d43(_0x58c101);});}}});};
\ No newline at end of file
+var _0x10e6=['push','merge','Set','CDR(type)=%s','chanspy','record','${UNIQUEID}.%s,a','recordingFormat','auth','Authenticate','password','ChanSpy','SIP/%s,%s','join','length','concat','name','findAll','internal','agent','then','catch','exports','models','define','voice_chanspy','VoiceExtension','destroy','bulkCreate','bluebird','./voiceChanSpy.attributes','context','format','%s%s'];(function(_0x2f2a90,_0x58d5a4){var _0x1752fc=function(_0x17e651){while(--_0x17e651){_0x2f2a90['push'](_0x2f2a90['shift']());}};_0x1752fc(++_0x58d5a4);}(_0x10e6,0x1d7));var _0x610e=function(_0x93942f,_0xb48547){_0x93942f=_0x93942f-0x0;var _0x23fcd8=_0x10e6[_0x93942f];return _0x23fcd8;};'use strict';var _=require('lodash');var util=require('util');var BPromise=require(_0x610e('0x0'));var attributes=require(_0x610e('0x1'));var getUserApplications=function(_0xf4b90,_0x9dee4,_0x8e290f){var _0x5aa5dd=0x1;var _0x209d57=[];var _0x1a1146={'context':_0x9dee4[_0x610e('0x2')]||'from-sip','exten':util[_0x610e('0x3')](_0x610e('0x4'),_0xf4b90['prefix'],_0x8e290f),'type':'system','isApp':![],'ChanSpyId':_0xf4b90['id'],'UserId':_0x9dee4['id']};_0x209d57[_0x610e('0x5')](_[_0x610e('0x6')]({'app':_0x610e('0x7'),'appdata':util[_0x610e('0x3')](_0x610e('0x8'),_0x610e('0x9')),'priority':_0x5aa5dd++},_0x1a1146));if(_0xf4b90[_0x610e('0xa')]){_0x209d57[_0x610e('0x5')](_[_0x610e('0x6')]({'app':'MixMonitor','appdata':util[_0x610e('0x3')](_0x610e('0xb'),_0xf4b90[_0x610e('0xc')]),'priority':_0x5aa5dd++},_0x1a1146));}if(_0xf4b90[_0x610e('0xd')]){_0x209d57[_0x610e('0x5')](_[_0x610e('0x6')]({'app':_0x610e('0xe'),'appdata':_0xf4b90[_0x610e('0xf')],'priority':_0x5aa5dd++},_0x1a1146));}_0x209d57[_0x610e('0x5')](_[_0x610e('0x6')]({'app':_0x610e('0x10'),'appdata':util[_0x610e('0x3')](_0x610e('0x11'),_0x9dee4['name'],_0xf4b90['options']?_0xf4b90['options'][_0x610e('0x12')](''):''),'priority':_0x5aa5dd++},_0x1a1146));if(_0xf4b90[_0x610e('0xa')]){_0x209d57[_0x610e('0x5')](_[_0x610e('0x6')]({'app':'StopMixMonitor','priority':_0x5aa5dd++},_0x1a1146));}return _0x209d57;};var getChanSpyApplications=function(_0x4dd475,_0x23bf85){var _0x30ba14=[];for(var _0x4aa906=0x0,_0x58acf4=0x1;_0x4aa906<_0x23bf85[_0x610e('0x13')];_0x4aa906++,_0x58acf4=0x1){_0x30ba14=_0x30ba14[_0x610e('0x14')](getUserApplications(_0x4dd475,_0x23bf85[_0x4aa906],_0x23bf85[_0x4aa906]['internal']));if(_0x23bf85[_0x4aa906]['internal']!=_0x23bf85[_0x4aa906][_0x610e('0x15')]){_0x30ba14=_0x30ba14[_0x610e('0x14')](getUserApplications(_0x4dd475,_0x23bf85[_0x4aa906],_0x23bf85[_0x4aa906][_0x610e('0x15')]));}}return _0x30ba14;};var getChanSpyPromise=function(_0x3e0884,_0xebcfd5){return new BPromise(function(_0x1a1644,_0x554747){return _0x3e0884['User'][_0x610e('0x16')]({'attributes':['id',_0x610e('0x15'),_0x610e('0x17')],'where':{'role':_0x610e('0x18'),'chanspy':!![]},'raw':!![]})[_0x610e('0x19')](function(_0x44c2b4){if(_0x44c2b4){return _0x1a1644(getChanSpyApplications(_0xebcfd5,_0x44c2b4));}return _0x1a1644([]);})[_0x610e('0x1a')](function(_0x507a22){_0x554747(_0x507a22);});});};module[_0x610e('0x1b')]=function(_0x55aec0,_0x4ab5ff){var _0x31723d=_0x55aec0[_0x610e('0x1c')];return _0x55aec0[_0x610e('0x1d')]('VoiceChanSpy',attributes,{'tableName':_0x610e('0x1e'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0xa65773,_0x33c2a0,_0x2490af){return getChanSpyPromise(_0x31723d,_0xa65773)[_0x610e('0x19')](function(_0x2f1e1d){if(_0x2f1e1d&&_0x2f1e1d[_0x610e('0x13')]){return _0x31723d[_0x610e('0x1f')]['bulkCreate'](_0x2f1e1d);}})[_0x610e('0x19')](function(){_0x2490af();})[_0x610e('0x1a')](function(_0x130dee){_0x2490af(_0x130dee);});},'afterUpdate':function(_0x31af35,_0x232b06,_0x28a819){return _0x31723d[_0x610e('0x1f')][_0x610e('0x20')]({'where':{'ChanSpyId':_0x31af35['id']}})[_0x610e('0x19')](function(){return getChanSpyPromise(_0x31723d,_0x31af35);})[_0x610e('0x19')](function(_0x966cc3){if(_0x966cc3&&_0x966cc3['length']){return _0x31723d[_0x610e('0x1f')][_0x610e('0x21')](_0x966cc3);}})[_0x610e('0x19')](function(){_0x28a819();})['catch'](function(_0x56ea67){_0x28a819(_0x56ea67);});},'afterDestroy':function(_0x5ef1e3,_0x23f08c,_0x4cf6b2){return _0x31723d[_0x610e('0x1f')]['destroy']({'where':{'ChanSpyId':_0x5ef1e3['id']}})['then'](function(){_0x4cf6b2();})['catch'](function(_0x3de887){_0x4cf6b2(_0x3de887);});}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xda55=['util','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','client','request','then','VoiceChanSpy,\x20%s,\x20%s','request\x20sent','debug','VoiceChanSpy,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','lodash'];(function(_0x1c3f8e,_0x2f7794){var _0x40b720=function(_0xd92bec){while(--_0xd92bec){_0x1c3f8e['push'](_0x1c3f8e['shift']());}};_0x40b720(++_0x2f7794);}(_0xda55,0x6d));var _0x5da5=function(_0x4fa665,_0x1ae12a){_0x4fa665=_0x4fa665-0x0;var _0x62ccff=_0xda55[_0x4fa665];return _0x62ccff;};'use strict';var _=require(_0x5da5('0x0'));var util=require(_0x5da5('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x5da5('0x2'));var fs=require('fs');var Redis=require(_0x5da5('0x3'));var db=require(_0x5da5('0x4'))['db'];var utils=require(_0x5da5('0x5'));var logger=require(_0x5da5('0x6'))('rpc');var config=require(_0x5da5('0x7'));var jayson=require('jayson/promise');var client=jayson[_0x5da5('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x2fd877,_0x267469,_0x71b187){return new BPromise(function(_0x46290d,_0x3debdf){return client[_0x5da5('0x9')](_0x2fd877,_0x71b187)[_0x5da5('0xa')](function(_0x302795){logger['info'](_0x5da5('0xb'),_0x267469,_0x5da5('0xc'));logger[_0x5da5('0xd')](_0x5da5('0xe'),_0x267469,_0x5da5('0xc'),JSON[_0x5da5('0xf')](_0x302795));if(_0x302795[_0x5da5('0x10')]){if(_0x302795['error'][_0x5da5('0x11')]===0x1f4){logger[_0x5da5('0x10')]('VoiceChanSpy,\x20%s,\x20%s',_0x267469,_0x302795[_0x5da5('0x10')][_0x5da5('0x12')]);return _0x3debdf(_0x302795[_0x5da5('0x10')][_0x5da5('0x12')]);}logger[_0x5da5('0x10')](_0x5da5('0xb'),_0x267469,_0x302795['error']['message']);return _0x46290d(_0x302795['error'][_0x5da5('0x12')]);}else{logger[_0x5da5('0x13')](_0x5da5('0xb'),_0x267469,_0x5da5('0xc'));_0x46290d(_0x302795[_0x5da5('0x14')][_0x5da5('0x12')]);}})[_0x5da5('0x15')](function(_0x4a952a){logger[_0x5da5('0x10')](_0x5da5('0xb'),_0x267469,_0x4a952a);_0x3debdf(_0x4a952a);});});}
\ No newline at end of file
+var _0x6324=['client','http','then','request\x20sent','debug','VoiceChanSpy,\x20%s,\x20%s,\x20%s','stringify','error','code','VoiceChanSpy,\x20%s,\x20%s','message','info','result','catch','lodash','util','moment','bluebird','ioredis','../../config/utils','rpc','jayson/promise'];(function(_0x1f291d,_0x414877){var _0x1c7cb9=function(_0x41390f){while(--_0x41390f){_0x1f291d['push'](_0x1f291d['shift']());}};_0x1c7cb9(++_0x414877);}(_0x6324,0x142));var _0x4632=function(_0x4b4dd0,_0x4b7586){_0x4b4dd0=_0x4b4dd0-0x0;var _0x42da25=_0x6324[_0x4b4dd0];return _0x42da25;};'use strict';var _=require(_0x4632('0x0'));var util=require(_0x4632('0x1'));var moment=require(_0x4632('0x2'));var BPromise=require(_0x4632('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x4632('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x4632('0x5'));var logger=require('../../config/logger')(_0x4632('0x6'));var config=require('../../config/environment');var jayson=require(_0x4632('0x7'));var client=jayson[_0x4632('0x8')][_0x4632('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x126e9a,_0x4a15b2,_0x17e860){return new BPromise(function(_0x44dd6d,_0x390a46){return client['request'](_0x126e9a,_0x17e860)[_0x4632('0xa')](function(_0x47824c){logger['info']('VoiceChanSpy,\x20%s,\x20%s',_0x4a15b2,_0x4632('0xb'));logger[_0x4632('0xc')](_0x4632('0xd'),_0x4a15b2,_0x4632('0xb'),JSON[_0x4632('0xe')](_0x47824c));if(_0x47824c[_0x4632('0xf')]){if(_0x47824c[_0x4632('0xf')][_0x4632('0x10')]===0x1f4){logger['error'](_0x4632('0x11'),_0x4a15b2,_0x47824c['error'][_0x4632('0x12')]);return _0x390a46(_0x47824c[_0x4632('0xf')][_0x4632('0x12')]);}logger[_0x4632('0xf')]('VoiceChanSpy,\x20%s,\x20%s',_0x4a15b2,_0x47824c[_0x4632('0xf')][_0x4632('0x12')]);return _0x44dd6d(_0x47824c[_0x4632('0xf')][_0x4632('0x12')]);}else{logger[_0x4632('0x13')]('VoiceChanSpy,\x20%s,\x20%s',_0x4a15b2,'request\x20sent');_0x44dd6d(_0x47824c[_0x4632('0x14')][_0x4632('0x12')]);}})[_0x4632('0x15')](function(_0x125eb9){logger['error'](_0x4632('0x11'),_0x4a15b2,_0x125eb9);_0x390a46(_0x125eb9);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4b42=['../../components/interaction/service','./voiceContext.controller','get','isAuthenticated','index','/:id','show','post','create','put','update','delete','exports','multer','util','path','connect-timeout','express','fs-extra','../../components/auth/service'];(function(_0x41c930,_0x2ee4c1){var _0x1b081f=function(_0x2845d2){while(--_0x2845d2){_0x41c930['push'](_0x41c930['shift']());}};_0x1b081f(++_0x2ee4c1);}(_0x4b42,0x1c5));var _0x24b4=function(_0x4e1f60,_0xc61d2f){_0x4e1f60=_0x4e1f60-0x0;var _0x52e930=_0x4b42[_0x4e1f60];return _0x52e930;};'use strict';var multer=require(_0x24b4('0x0'));var util=require(_0x24b4('0x1'));var path=require(_0x24b4('0x2'));var timeout=require(_0x24b4('0x3'));var express=require(_0x24b4('0x4'));var router=express['Router']();var fs_extra=require(_0x24b4('0x5'));var auth=require(_0x24b4('0x6'));var interaction=require(_0x24b4('0x7'));var config=require('../../config/environment');var controller=require(_0x24b4('0x8'));router[_0x24b4('0x9')]('/',auth[_0x24b4('0xa')](),controller[_0x24b4('0xb')]);router[_0x24b4('0x9')](_0x24b4('0xc'),auth['isAuthenticated'](),controller[_0x24b4('0xd')]);router[_0x24b4('0xe')]('/',auth[_0x24b4('0xa')](),controller[_0x24b4('0xf')]);router[_0x24b4('0x10')](_0x24b4('0xc'),auth[_0x24b4('0xa')](),controller[_0x24b4('0x11')]);router[_0x24b4('0x12')](_0x24b4('0xc'),auth['isAuthenticated'](),controller['destroy']);module[_0x24b4('0x13')]=router;
\ No newline at end of file
+var _0x7ce0=['delete','multer','path','connect-timeout','express','../../components/interaction/service','../../config/environment','./voiceContext.controller','get','index','/:id','isAuthenticated','show'];(function(_0x1de299,_0x31b70b){var _0x5684ff=function(_0x5b2ddc){while(--_0x5b2ddc){_0x1de299['push'](_0x1de299['shift']());}};_0x5684ff(++_0x31b70b);}(_0x7ce0,0xaa));var _0x07ce=function(_0x547456,_0x1de17e){_0x547456=_0x547456-0x0;var _0xc1fd7b=_0x7ce0[_0x547456];return _0xc1fd7b;};'use strict';var multer=require(_0x07ce('0x0'));var util=require('util');var path=require(_0x07ce('0x1'));var timeout=require(_0x07ce('0x2'));var express=require(_0x07ce('0x3'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0x07ce('0x4'));var config=require(_0x07ce('0x5'));var controller=require(_0x07ce('0x6'));router[_0x07ce('0x7')]('/',auth['isAuthenticated'](),controller[_0x07ce('0x8')]);router[_0x07ce('0x7')](_0x07ce('0x9'),auth[_0x07ce('0xa')](),controller[_0x07ce('0xb')]);router['post']('/',auth[_0x07ce('0xa')](),controller['create']);router['put']('/:id',auth[_0x07ce('0xa')](),controller['update']);router[_0x07ce('0xc')](_0x07ce('0x9'),auth['isAuthenticated'](),controller['destroy']);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x218a=['sequelize','exports','name','STRING'];(function(_0x489b4d,_0x4ddcbe){var _0x17f1ba=function(_0x90a305){while(--_0x90a305){_0x489b4d['push'](_0x489b4d['shift']());}};_0x17f1ba(++_0x4ddcbe);}(_0x218a,0x10c));var _0xa218=function(_0x5705e8,_0x5211a2){_0x5705e8=_0x5705e8-0x0;var _0x463ba5=_0x218a[_0x5705e8];return _0x463ba5;};'use strict';var Sequelize=require(_0xa218('0x0'));module[_0xa218('0x1')]={'name':{'type':Sequelize['STRING'],'unique':_0xa218('0x2')},'description':{'type':Sequelize[_0xa218('0x3')],'allowNull':!![]},'defaultEntry':{'type':Sequelize['BOOLEAN'],'defaultValue':0x0}};
\ No newline at end of file
+var _0xe183=['exports','STRING','name','sequelize'];(function(_0x36a57b,_0x2ca3a2){var _0x5782b6=function(_0x98a02f){while(--_0x98a02f){_0x36a57b['push'](_0x36a57b['shift']());}};_0x5782b6(++_0x2ca3a2);}(_0xe183,0x123));var _0x3e18=function(_0x13e300,_0x1bcb41){_0x13e300=_0x13e300-0x0;var _0x5a3eea=_0xe183[_0x13e300];return _0x5a3eea;};'use strict';var Sequelize=require(_0x3e18('0x0'));module[_0x3e18('0x1')]={'name':{'type':Sequelize[_0x3e18('0x2')],'unique':_0x3e18('0x3')},'description':{'type':Sequelize[_0x3e18('0x2')],'allowNull':!![]},'defaultEntry':{'type':Sequelize['BOOLEAN'],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1802=['readFileSync','join','root','server/files/templates/context.ejs','utf8','render','writeFileSync','/etc/asterisk/extensions_xcally_contexts.conf','Reload','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','Contexts','userProfileId','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','chan_sip.so','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','util','path','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','client','http','then','info','request\x20sent','debug','VoiceContext,\x20%s,\x20%s,\x20%s','stringify','error','code','VoiceContext,\x20%s,\x20%s','message','result','catch','status','end','json','offset','limit','undefined','count','set','Content-Range','reject','save','update','destroy','get','sendStatus','stack','name','send','index','map','type','model','keys','query','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','merge','options','VoiceContext','includeAll','include','findAll','rows','show','rawAttributes','find','create'];(function(_0x5492d7,_0x1cf8f9){var _0x3fc314=function(_0x1e21f9){while(--_0x1e21f9){_0x5492d7['push'](_0x5492d7['shift']());}};_0x3fc314(++_0x1cf8f9);}(_0x1802,0x1cb));var _0x2180=function(_0x2f69a0,_0x5c10f6){_0x2f69a0=_0x2f69a0-0x0;var _0x2d4486=_0x1802[_0x2f69a0];return _0x2d4486;};'use strict';var emlformat=require(_0x2180('0x0'));var rimraf=require(_0x2180('0x1'));var zipdir=require(_0x2180('0x2'));var jsonpatch=require(_0x2180('0x3'));var rp=require(_0x2180('0x4'));var moment=require(_0x2180('0x5'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x2180('0x6'));var path=require(_0x2180('0x7'));var sox=require(_0x2180('0x8'));var csv=require('to-csv');var ejs=require(_0x2180('0x9'));var fs=require('fs');var fs_extra=require(_0x2180('0xa'));var _=require(_0x2180('0xb'));var squel=require(_0x2180('0xc'));var crypto=require(_0x2180('0xd'));var jsforce=require(_0x2180('0xe'));var deskjs=require(_0x2180('0xf'));var toCsv=require(_0x2180('0x10'));var querystring=require(_0x2180('0x11'));var Papa=require(_0x2180('0x12'));var Redis=require(_0x2180('0x13'));var authService=require(_0x2180('0x14'));var qs=require(_0x2180('0x15'));var as=require(_0x2180('0x16'));var hardwareService=require(_0x2180('0x17'));var logger=require(_0x2180('0x18'))(_0x2180('0x19'));var utils=require('../../config/utils');var config=require(_0x2180('0x1a'));var licenseUtil=require(_0x2180('0x1b'));var db=require(_0x2180('0x1c'))['db'];var jayson=require(_0x2180('0x1d'));var client=jayson[_0x2180('0x1e')][_0x2180('0x1f')]({'port':0x232a});function respondWithRpcPromise(_0x30b57a,_0x5dc153,_0x18b0c1,_0x1991d0){return new BPromise(function(_0x24b37d,_0x1353ef){var _0x3ffa80=_0x1991d0||client;return _0x3ffa80['request'](_0x30b57a,_0x18b0c1)[_0x2180('0x20')](function(_0x27e255){logger[_0x2180('0x21')]('VoiceContext,\x20%s,\x20%s',_0x5dc153,_0x2180('0x22'));logger[_0x2180('0x23')](_0x2180('0x24'),_0x5dc153,_0x2180('0x22'),JSON[_0x2180('0x25')](_0x27e255));if(_0x27e255[_0x2180('0x26')]){if(_0x27e255['error'][_0x2180('0x27')]===0x1f4){logger[_0x2180('0x26')](_0x2180('0x28'),_0x5dc153,_0x27e255[_0x2180('0x26')][_0x2180('0x29')]);return _0x1353ef(_0x27e255['error']['message']);}logger[_0x2180('0x26')](_0x2180('0x28'),_0x5dc153,_0x27e255[_0x2180('0x26')]['message']);return _0x24b37d(_0x27e255[_0x2180('0x26')][_0x2180('0x29')]);}else{logger[_0x2180('0x21')](_0x2180('0x28'),_0x5dc153,_0x2180('0x22'));_0x24b37d(_0x27e255[_0x2180('0x2a')][_0x2180('0x29')]);}})[_0x2180('0x2b')](function(_0xe74c86){logger[_0x2180('0x26')](_0x2180('0x28'),_0x5dc153,_0xe74c86);_0x1353ef(_0xe74c86);});});}function respondWithStatusCode(_0x2d69e6,_0x5a1cd7){_0x5a1cd7=_0x5a1cd7||0xcc;return function(_0x16bf1e){if(_0x16bf1e){return _0x2d69e6['sendStatus'](_0x5a1cd7);}return _0x2d69e6[_0x2180('0x2c')](_0x5a1cd7)[_0x2180('0x2d')]();};}function respondWithResult(_0x79cb64,_0x3edd43){_0x3edd43=_0x3edd43||0xc8;return function(_0x13a7d4){if(_0x13a7d4){return _0x79cb64['status'](_0x3edd43)[_0x2180('0x2e')](_0x13a7d4);}};}function respondWithFilteredResult(_0x2dfc34,_0x4b3145){return function(_0x439a81){if(_0x439a81){var _0x95fc97=typeof _0x4b3145[_0x2180('0x2f')]==='undefined'&&typeof _0x4b3145[_0x2180('0x30')]===_0x2180('0x31');var _0x50f1cb=_0x439a81[_0x2180('0x32')];var _0x4595=_0x95fc97?0x0:_0x4b3145[_0x2180('0x2f')];var _0x1c6f90=_0x95fc97?_0x439a81['count']:_0x4b3145[_0x2180('0x2f')]+_0x4b3145[_0x2180('0x30')];var _0x52c6;if(_0x1c6f90>=_0x50f1cb){_0x1c6f90=_0x50f1cb;_0x52c6=0xc8;}else{_0x52c6=0xce;}_0x2dfc34[_0x2180('0x2c')](_0x52c6);return _0x2dfc34[_0x2180('0x33')](_0x2180('0x34'),_0x4595+'-'+_0x1c6f90+'/'+_0x50f1cb)['json'](_0x439a81);}return null;};}function patchUpdates(_0x4d10db){return function(_0x4a9aaa){try{jsonpatch['apply'](_0x4a9aaa,_0x4d10db,!![]);}catch(_0x140ed6){return BPromise[_0x2180('0x35')](_0x140ed6);}return _0x4a9aaa[_0x2180('0x36')]();};}function saveUpdates(_0x859d42,_0xc3f07){return function(_0x5afe1b){if(_0x5afe1b){return _0x5afe1b[_0x2180('0x37')](_0x859d42)[_0x2180('0x20')](function(_0x8ceb50){return _0x8ceb50;});}return null;};}function removeEntity(_0x161cbf,_0x2396dc){return function(_0x4f629d){if(_0x4f629d){return _0x4f629d[_0x2180('0x38')]()[_0x2180('0x20')](function(){var _0x36150b=_0x4f629d[_0x2180('0x39')]({'plain':!![]});var _0x3a45ac='Contexts';return db['UserProfileResource'][_0x2180('0x38')]({'where':{'type':_0x3a45ac,'resourceId':_0x36150b['id']}})['then'](function(){return _0x4f629d;});})[_0x2180('0x20')](function(){_0x161cbf[_0x2180('0x2c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x1fa5f5,_0x537d44){return function(_0x244761){if(!_0x244761){_0x1fa5f5[_0x2180('0x3a')](0x194);}return _0x244761;};}function handleError(_0x24a574,_0x469638){_0x469638=_0x469638||0x1f4;return function(_0xee1635){logger[_0x2180('0x26')](_0xee1635[_0x2180('0x3b')]);if(_0xee1635[_0x2180('0x3c')]){delete _0xee1635[_0x2180('0x3c')];}_0x24a574['status'](_0x469638)[_0x2180('0x3d')](_0xee1635);};}exports[_0x2180('0x3e')]=function(_0x45ea50,_0x1efd9a){var _0x5ac206={},_0x5b94df={},_0x3f8731={'count':0x0,'rows':[]};var _0x25161c=_[_0x2180('0x3f')](db['VoiceContext']['rawAttributes'],function(_0x3da604){return{'name':_0x3da604['fieldName'],'type':_0x3da604[_0x2180('0x40')]['key']};});_0x5b94df[_0x2180('0x41')]=_[_0x2180('0x3f')](_0x25161c,'name');_0x5b94df['query']=_[_0x2180('0x42')](_0x45ea50[_0x2180('0x43')]);_0x5b94df['filters']=_['intersection'](_0x5b94df[_0x2180('0x41')],_0x5b94df[_0x2180('0x43')]);_0x5ac206[_0x2180('0x44')]=_[_0x2180('0x45')](_0x5b94df[_0x2180('0x41')],qs[_0x2180('0x46')](_0x45ea50[_0x2180('0x43')][_0x2180('0x46')]));_0x5ac206[_0x2180('0x44')]=_0x5ac206[_0x2180('0x44')][_0x2180('0x47')]?_0x5ac206[_0x2180('0x44')]:_0x5b94df[_0x2180('0x41')];if(!_0x45ea50['query'][_0x2180('0x48')](_0x2180('0x49'))){_0x5ac206[_0x2180('0x30')]=qs['limit'](_0x45ea50['query']['limit']);_0x5ac206[_0x2180('0x2f')]=qs[_0x2180('0x2f')](_0x45ea50[_0x2180('0x43')][_0x2180('0x2f')]);}_0x5ac206[_0x2180('0x4a')]=qs[_0x2180('0x4b')](_0x45ea50[_0x2180('0x43')][_0x2180('0x4b')]);_0x5ac206[_0x2180('0x4c')]=qs[_0x2180('0x4d')](_[_0x2180('0x4e')](_0x45ea50[_0x2180('0x43')],_0x5b94df[_0x2180('0x4d')]),_0x25161c);if(_0x45ea50[_0x2180('0x43')][_0x2180('0x4f')]){_0x5ac206[_0x2180('0x4c')]=_[_0x2180('0x50')](_0x5ac206[_0x2180('0x4c')],{'$or':_[_0x2180('0x3f')](_0x25161c,function(_0x5218cb){if(_0x5218cb[_0x2180('0x40')]!=='VIRTUAL'){var _0x50cdb={};_0x50cdb[_0x5218cb[_0x2180('0x3c')]]={'$like':'%'+_0x45ea50[_0x2180('0x43')][_0x2180('0x4f')]+'%'};return _0x50cdb;}})});}_0x5ac206=_['merge']({},_0x5ac206,_0x45ea50[_0x2180('0x51')]);var _0x2a0668={'where':_0x5ac206['where']};return db[_0x2180('0x52')]['count'](_0x2a0668)['then'](function(_0x4840ef){_0x3f8731[_0x2180('0x32')]=_0x4840ef;if(_0x45ea50[_0x2180('0x43')][_0x2180('0x53')]){_0x5ac206[_0x2180('0x54')]=[{'all':!![]}];}return db[_0x2180('0x52')][_0x2180('0x55')](_0x5ac206);})[_0x2180('0x20')](function(_0x37ced5){_0x3f8731[_0x2180('0x56')]=_0x37ced5;return _0x3f8731;})['then'](respondWithFilteredResult(_0x1efd9a,_0x5ac206))['catch'](handleError(_0x1efd9a,null));};exports[_0x2180('0x57')]=function(_0x81b28b,_0xf452cd){var _0x503741={'raw':![],'where':{'id':_0x81b28b['params']['id']}},_0x13228d={};_0x13228d[_0x2180('0x41')]=_[_0x2180('0x42')](db[_0x2180('0x52')][_0x2180('0x58')]);_0x13228d['query']=_[_0x2180('0x42')](_0x81b28b[_0x2180('0x43')]);_0x13228d[_0x2180('0x4d')]=_['intersection'](_0x13228d['model'],_0x13228d[_0x2180('0x43')]);_0x503741[_0x2180('0x44')]=_['intersection'](_0x13228d['model'],qs[_0x2180('0x46')](_0x81b28b[_0x2180('0x43')][_0x2180('0x46')]));_0x503741['attributes']=_0x503741[_0x2180('0x44')][_0x2180('0x47')]?_0x503741[_0x2180('0x44')]:_0x13228d[_0x2180('0x41')];if(_0x81b28b['query']['includeAll']){_0x503741[_0x2180('0x54')]=[{'all':!![]}];}_0x503741=_[_0x2180('0x50')]({},_0x503741,_0x81b28b[_0x2180('0x51')]);return db[_0x2180('0x52')][_0x2180('0x59')](_0x503741)[_0x2180('0x20')](handleEntityNotFound(_0xf452cd,null))['then'](respondWithResult(_0xf452cd,null))[_0x2180('0x2b')](handleError(_0xf452cd,null));};exports[_0x2180('0x5a')]=function(_0x5c95ab,_0x23e168,_0x178ed2){var _0x31f89f;return db[_0x2180('0x52')][_0x2180('0x5a')](_0x5c95ab['body'],{'raw':!![]})[_0x2180('0x20')](function(_0x2bb4d7){_0x31f89f=_0x2bb4d7;return db[_0x2180('0x52')]['findAll']({'raw':!![]});})[_0x2180('0x20')](function(_0x2cd6f9){var _0x5d3ea3=fs[_0x2180('0x5b')](path[_0x2180('0x5c')](config[_0x2180('0x5d')],_0x2180('0x5e')),_0x2180('0x5f'));var _0x1d84e1=ejs[_0x2180('0x60')](_0x5d3ea3,{'contexts':_0x2cd6f9||[]});fs[_0x2180('0x61')](_0x2180('0x62'),_0x1d84e1);})[_0x2180('0x20')](function(){return respondWithRpcPromise(_0x2180('0x63'),_0x2180('0x5a'),{'module':'chan_sip.so'});})['then'](function(){var _0x49fe14=_0x5c95ab['user'][_0x2180('0x39')]({'plain':!![]});if(!_0x49fe14)throw new Error(_0x2180('0x64'));if(_0x49fe14[_0x2180('0x65')]===_0x2180('0x66')){var _0x5ec383=_0x31f89f['get']({'plain':!![]});return db[_0x2180('0x67')][_0x2180('0x59')]({'where':{'name':_0x2180('0x68'),'userProfileId':_0x49fe14[_0x2180('0x69')]},'raw':!![]})[_0x2180('0x20')](function(_0x55161b){if(_0x55161b&&_0x55161b['autoAssociation']===0x0){return db[_0x2180('0x6a')]['create']({'name':_0x5ec383['name'],'resourceId':_0x5ec383['id'],'type':_0x55161b[_0x2180('0x3c')],'sectionId':_0x55161b['id']},{})['then'](function(){return _0x31f89f;});}else{return _0x31f89f;}})[_0x2180('0x2b')](function(_0x4a8141){logger[_0x2180('0x26')](_0x2180('0x6b'),_0x4a8141);throw _0x4a8141;});}return _0x31f89f;})['then'](respondWithResult(_0x23e168,0xc9))[_0x2180('0x2b')](handleError(_0x23e168,null));};exports['update']=function(_0x23d67f,_0x106fea,_0x3ef48f){var _0x1ed6d3;return db['VoiceContext'][_0x2180('0x59')]({'where':{'id':_0x23d67f[_0x2180('0x6c')]['id']}})[_0x2180('0x20')](handleEntityNotFound(_0x106fea,null))[_0x2180('0x20')](saveUpdates(_0x23d67f['body'],null))[_0x2180('0x20')](function(_0x6b03c3){if(_0x6b03c3){_0x1ed6d3=_0x6b03c3;return db[_0x2180('0x52')][_0x2180('0x55')]({'raw':!![]});}})[_0x2180('0x20')](function(_0x52e23c){var _0x3ed692=fs[_0x2180('0x5b')](path[_0x2180('0x5c')](config[_0x2180('0x5d')],_0x2180('0x5e')),_0x2180('0x5f'));var _0x1c7181=ejs['render'](_0x3ed692,{'contexts':_0x52e23c||[]});fs[_0x2180('0x61')]('/etc/asterisk/extensions_xcally_contexts.conf',_0x1c7181);})['then'](function(){return respondWithRpcPromise(_0x2180('0x63'),_0x2180('0x37'),{'module':_0x2180('0x6d')});})[_0x2180('0x20')](function(){return _0x1ed6d3;})[_0x2180('0x20')](respondWithResult(_0x106fea,null))[_0x2180('0x2b')](handleError(_0x106fea,null));};exports['destroy']=function(_0x5d2591,_0xf35c95,_0x2be14e){var _0x5ed9e7;return db['VoiceContext'][_0x2180('0x59')]({'where':{'id':_0x5d2591[_0x2180('0x6c')]['id']}})['then'](handleEntityNotFound(_0xf35c95,null))[_0x2180('0x20')](removeEntity(_0xf35c95,null))['then'](function(){return db[_0x2180('0x52')][_0x2180('0x55')]({'raw':!![]});})[_0x2180('0x20')](function(_0x5c953d){var _0x48f48f=fs['readFileSync'](path[_0x2180('0x5c')](config[_0x2180('0x5d')],_0x2180('0x5e')),_0x2180('0x5f'));var _0x39a3cd=ejs[_0x2180('0x60')](_0x48f48f,{'contexts':_0x5c953d});fs['writeFileSync'](_0x2180('0x62'),_0x39a3cd);return respondWithRpcPromise(_0x2180('0x63'),_0x2180('0x38'),{'module':'chan_sip.so'});})[_0x2180('0x2b')](handleError(_0xf35c95,null));};
\ No newline at end of file
+var _0x6603=['VIRTUAL','filter','options','includeAll','include','rows','params','rawAttributes','length','create','findAll','readFileSync','join','root','server/files/templates/context.ejs','utf8','writeFileSync','/etc/asterisk/extensions_xcally_contexts.conf','Reload','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','find','Contexts','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','catch','body','chan_sip.so','render','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','client','request','then','info','VoiceContext,\x20%s,\x20%s','request\x20sent','VoiceContext,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','sendStatus','status','end','json','offset','undefined','limit','count','Content-Range','apply','reject','save','update','destroy','get','UserProfileResource','stack','name','send','map','VoiceContext','type','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','sort','pick','merge','where'];(function(_0x1908f4,_0x19b43a){var _0x1b3246=function(_0x562575){while(--_0x562575){_0x1908f4['push'](_0x1908f4['shift']());}};_0x1b3246(++_0x19b43a);}(_0x6603,0x163));var _0x3660=function(_0x11d124,_0x38436e){_0x11d124=_0x11d124-0x0;var _0x1cd888=_0x6603[_0x11d124];return _0x1cd888;};'use strict';var emlformat=require(_0x3660('0x0'));var rimraf=require(_0x3660('0x1'));var zipdir=require(_0x3660('0x2'));var jsonpatch=require(_0x3660('0x3'));var rp=require(_0x3660('0x4'));var moment=require('moment');var BPromise=require(_0x3660('0x5'));var Mustache=require(_0x3660('0x6'));var util=require(_0x3660('0x7'));var path=require(_0x3660('0x8'));var sox=require(_0x3660('0x9'));var csv=require(_0x3660('0xa'));var ejs=require(_0x3660('0xb'));var fs=require('fs');var fs_extra=require(_0x3660('0xc'));var _=require(_0x3660('0xd'));var squel=require(_0x3660('0xe'));var crypto=require(_0x3660('0xf'));var jsforce=require(_0x3660('0x10'));var deskjs=require(_0x3660('0x11'));var toCsv=require(_0x3660('0xa'));var querystring=require(_0x3660('0x12'));var Papa=require(_0x3660('0x13'));var Redis=require('ioredis');var authService=require(_0x3660('0x14'));var qs=require(_0x3660('0x15'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x3660('0x16'));var logger=require(_0x3660('0x17'))(_0x3660('0x18'));var utils=require(_0x3660('0x19'));var config=require(_0x3660('0x1a'));var licenseUtil=require(_0x3660('0x1b'));var db=require(_0x3660('0x1c'))['db'];var jayson=require(_0x3660('0x1d'));var client=jayson[_0x3660('0x1e')]['http']({'port':0x232a});function respondWithRpcPromise(_0x52e57b,_0x2569ac,_0x360c7a,_0x21e9a7){return new BPromise(function(_0x16e937,_0x5ee870){var _0x426e05=_0x21e9a7||client;return _0x426e05[_0x3660('0x1f')](_0x52e57b,_0x360c7a)[_0x3660('0x20')](function(_0x239b6e){logger[_0x3660('0x21')](_0x3660('0x22'),_0x2569ac,_0x3660('0x23'));logger['debug'](_0x3660('0x24'),_0x2569ac,_0x3660('0x23'),JSON[_0x3660('0x25')](_0x239b6e));if(_0x239b6e[_0x3660('0x26')]){if(_0x239b6e['error'][_0x3660('0x27')]===0x1f4){logger[_0x3660('0x26')]('VoiceContext,\x20%s,\x20%s',_0x2569ac,_0x239b6e[_0x3660('0x26')][_0x3660('0x28')]);return _0x5ee870(_0x239b6e[_0x3660('0x26')][_0x3660('0x28')]);}logger[_0x3660('0x26')](_0x3660('0x22'),_0x2569ac,_0x239b6e[_0x3660('0x26')][_0x3660('0x28')]);return _0x16e937(_0x239b6e[_0x3660('0x26')][_0x3660('0x28')]);}else{logger[_0x3660('0x21')](_0x3660('0x22'),_0x2569ac,_0x3660('0x23'));_0x16e937(_0x239b6e[_0x3660('0x29')][_0x3660('0x28')]);}})['catch'](function(_0x3b1be9){logger[_0x3660('0x26')](_0x3660('0x22'),_0x2569ac,_0x3b1be9);_0x5ee870(_0x3b1be9);});});}function respondWithStatusCode(_0x2afd3a,_0x21d3a9){_0x21d3a9=_0x21d3a9||0xcc;return function(_0x2db302){if(_0x2db302){return _0x2afd3a[_0x3660('0x2a')](_0x21d3a9);}return _0x2afd3a[_0x3660('0x2b')](_0x21d3a9)[_0x3660('0x2c')]();};}function respondWithResult(_0x3121ce,_0x3181d9){_0x3181d9=_0x3181d9||0xc8;return function(_0x57994e){if(_0x57994e){return _0x3121ce[_0x3660('0x2b')](_0x3181d9)[_0x3660('0x2d')](_0x57994e);}};}function respondWithFilteredResult(_0x218896,_0x51a96f){return function(_0x4395b6){if(_0x4395b6){var _0x375278=typeof _0x51a96f[_0x3660('0x2e')]===_0x3660('0x2f')&&typeof _0x51a96f[_0x3660('0x30')]===_0x3660('0x2f');var _0x1e568c=_0x4395b6[_0x3660('0x31')];var _0x588280=_0x375278?0x0:_0x51a96f[_0x3660('0x2e')];var _0x507a29=_0x375278?_0x4395b6[_0x3660('0x31')]:_0x51a96f[_0x3660('0x2e')]+_0x51a96f[_0x3660('0x30')];var _0x330954;if(_0x507a29>=_0x1e568c){_0x507a29=_0x1e568c;_0x330954=0xc8;}else{_0x330954=0xce;}_0x218896[_0x3660('0x2b')](_0x330954);return _0x218896['set'](_0x3660('0x32'),_0x588280+'-'+_0x507a29+'/'+_0x1e568c)[_0x3660('0x2d')](_0x4395b6);}return null;};}function patchUpdates(_0x3beb8b){return function(_0x85e363){try{jsonpatch[_0x3660('0x33')](_0x85e363,_0x3beb8b,!![]);}catch(_0x5d59d9){return BPromise[_0x3660('0x34')](_0x5d59d9);}return _0x85e363[_0x3660('0x35')]();};}function saveUpdates(_0x469a37,_0x3a02df){return function(_0x360ecc){if(_0x360ecc){return _0x360ecc[_0x3660('0x36')](_0x469a37)[_0x3660('0x20')](function(_0x485f17){return _0x485f17;});}return null;};}function removeEntity(_0x1495fd,_0x2e7971){return function(_0x178321){if(_0x178321){return _0x178321[_0x3660('0x37')]()[_0x3660('0x20')](function(){var _0x2d5757=_0x178321[_0x3660('0x38')]({'plain':!![]});var _0x491288='Contexts';return db[_0x3660('0x39')]['destroy']({'where':{'type':_0x491288,'resourceId':_0x2d5757['id']}})[_0x3660('0x20')](function(){return _0x178321;});})[_0x3660('0x20')](function(){_0x1495fd['status'](0xcc)[_0x3660('0x2c')]();});}};}function handleEntityNotFound(_0x4f7170,_0x316598){return function(_0x3a795e){if(!_0x3a795e){_0x4f7170[_0x3660('0x2a')](0x194);}return _0x3a795e;};}function handleError(_0x5967f5,_0x2a13e4){_0x2a13e4=_0x2a13e4||0x1f4;return function(_0x1b5d83){logger['error'](_0x1b5d83[_0x3660('0x3a')]);if(_0x1b5d83[_0x3660('0x3b')]){delete _0x1b5d83['name'];}_0x5967f5[_0x3660('0x2b')](_0x2a13e4)[_0x3660('0x3c')](_0x1b5d83);};}exports['index']=function(_0x304737,_0x5b8b80){var _0x15422a={},_0xb6ff9f={},_0x3fe0a5={'count':0x0,'rows':[]};var _0x231b73=_[_0x3660('0x3d')](db[_0x3660('0x3e')]['rawAttributes'],function(_0x4982ba){return{'name':_0x4982ba['fieldName'],'type':_0x4982ba[_0x3660('0x3f')]['key']};});_0xb6ff9f[_0x3660('0x40')]=_[_0x3660('0x3d')](_0x231b73,_0x3660('0x3b'));_0xb6ff9f[_0x3660('0x41')]=_[_0x3660('0x42')](_0x304737[_0x3660('0x41')]);_0xb6ff9f[_0x3660('0x43')]=_[_0x3660('0x44')](_0xb6ff9f[_0x3660('0x40')],_0xb6ff9f[_0x3660('0x41')]);_0x15422a[_0x3660('0x45')]=_[_0x3660('0x44')](_0xb6ff9f[_0x3660('0x40')],qs[_0x3660('0x46')](_0x304737[_0x3660('0x41')]['fields']));_0x15422a[_0x3660('0x45')]=_0x15422a[_0x3660('0x45')]['length']?_0x15422a[_0x3660('0x45')]:_0xb6ff9f['model'];if(!_0x304737['query'][_0x3660('0x47')](_0x3660('0x48'))){_0x15422a[_0x3660('0x30')]=qs[_0x3660('0x30')](_0x304737['query'][_0x3660('0x30')]);_0x15422a[_0x3660('0x2e')]=qs['offset'](_0x304737['query'][_0x3660('0x2e')]);}_0x15422a['order']=qs[_0x3660('0x49')](_0x304737[_0x3660('0x41')]['sort']);_0x15422a['where']=qs['filters'](_[_0x3660('0x4a')](_0x304737[_0x3660('0x41')],_0xb6ff9f[_0x3660('0x43')]),_0x231b73);if(_0x304737[_0x3660('0x41')]['filter']){_0x15422a['where']=_[_0x3660('0x4b')](_0x15422a[_0x3660('0x4c')],{'$or':_[_0x3660('0x3d')](_0x231b73,function(_0x263129){if(_0x263129[_0x3660('0x3f')]!==_0x3660('0x4d')){var _0x5ceade={};_0x5ceade[_0x263129[_0x3660('0x3b')]]={'$like':'%'+_0x304737[_0x3660('0x41')][_0x3660('0x4e')]+'%'};return _0x5ceade;}})});}_0x15422a=_[_0x3660('0x4b')]({},_0x15422a,_0x304737[_0x3660('0x4f')]);var _0x90a411={'where':_0x15422a[_0x3660('0x4c')]};return db[_0x3660('0x3e')][_0x3660('0x31')](_0x90a411)['then'](function(_0x23e1bf){_0x3fe0a5[_0x3660('0x31')]=_0x23e1bf;if(_0x304737[_0x3660('0x41')][_0x3660('0x50')]){_0x15422a[_0x3660('0x51')]=[{'all':!![]}];}return db[_0x3660('0x3e')]['findAll'](_0x15422a);})[_0x3660('0x20')](function(_0x15287a){_0x3fe0a5[_0x3660('0x52')]=_0x15287a;return _0x3fe0a5;})[_0x3660('0x20')](respondWithFilteredResult(_0x5b8b80,_0x15422a))['catch'](handleError(_0x5b8b80,null));};exports['show']=function(_0x2f78c9,_0x5ef0f1){var _0x24a1d0={'raw':![],'where':{'id':_0x2f78c9[_0x3660('0x53')]['id']}},_0x352978={};_0x352978[_0x3660('0x40')]=_['keys'](db[_0x3660('0x3e')][_0x3660('0x54')]);_0x352978[_0x3660('0x41')]=_['keys'](_0x2f78c9[_0x3660('0x41')]);_0x352978[_0x3660('0x43')]=_['intersection'](_0x352978[_0x3660('0x40')],_0x352978[_0x3660('0x41')]);_0x24a1d0['attributes']=_[_0x3660('0x44')](_0x352978[_0x3660('0x40')],qs[_0x3660('0x46')](_0x2f78c9['query']['fields']));_0x24a1d0[_0x3660('0x45')]=_0x24a1d0[_0x3660('0x45')][_0x3660('0x55')]?_0x24a1d0[_0x3660('0x45')]:_0x352978[_0x3660('0x40')];if(_0x2f78c9['query']['includeAll']){_0x24a1d0['include']=[{'all':!![]}];}_0x24a1d0=_[_0x3660('0x4b')]({},_0x24a1d0,_0x2f78c9[_0x3660('0x4f')]);return db[_0x3660('0x3e')]['find'](_0x24a1d0)[_0x3660('0x20')](handleEntityNotFound(_0x5ef0f1,null))['then'](respondWithResult(_0x5ef0f1,null))['catch'](handleError(_0x5ef0f1,null));};exports['create']=function(_0x432eb,_0x2a92c1,_0x4ee623){var _0x2f5705;return db[_0x3660('0x3e')][_0x3660('0x56')](_0x432eb['body'],{'raw':!![]})['then'](function(_0x87a134){_0x2f5705=_0x87a134;return db[_0x3660('0x3e')][_0x3660('0x57')]({'raw':!![]});})[_0x3660('0x20')](function(_0x298733){var _0x34e615=fs[_0x3660('0x58')](path[_0x3660('0x59')](config[_0x3660('0x5a')],_0x3660('0x5b')),_0x3660('0x5c'));var _0x165540=ejs['render'](_0x34e615,{'contexts':_0x298733||[]});fs[_0x3660('0x5d')](_0x3660('0x5e'),_0x165540);})[_0x3660('0x20')](function(){return respondWithRpcPromise(_0x3660('0x5f'),'create',{'module':'chan_sip.so'});})['then'](function(){var _0xf7101=_0x432eb['user'][_0x3660('0x38')]({'plain':!![]});if(!_0xf7101)throw new Error(_0x3660('0x60'));if(_0xf7101[_0x3660('0x61')]===_0x3660('0x62')){var _0x2ed596=_0x2f5705[_0x3660('0x38')]({'plain':!![]});return db[_0x3660('0x63')][_0x3660('0x64')]({'where':{'name':_0x3660('0x65'),'userProfileId':_0xf7101['userProfileId']},'raw':!![]})['then'](function(_0x4a04a0){if(_0x4a04a0&&_0x4a04a0[_0x3660('0x66')]===0x0){return db[_0x3660('0x39')]['create']({'name':_0x2ed596[_0x3660('0x3b')],'resourceId':_0x2ed596['id'],'type':_0x4a04a0[_0x3660('0x3b')],'sectionId':_0x4a04a0['id']},{})['then'](function(){return _0x2f5705;});}else{return _0x2f5705;}})['catch'](function(_0x5c0141){logger[_0x3660('0x26')](_0x3660('0x67'),_0x5c0141);throw _0x5c0141;});}return _0x2f5705;})['then'](respondWithResult(_0x2a92c1,0xc9))[_0x3660('0x68')](handleError(_0x2a92c1,null));};exports['update']=function(_0x503f9f,_0x38458d,_0x210e1c){var _0x3e04e6;return db[_0x3660('0x3e')]['find']({'where':{'id':_0x503f9f[_0x3660('0x53')]['id']}})[_0x3660('0x20')](handleEntityNotFound(_0x38458d,null))[_0x3660('0x20')](saveUpdates(_0x503f9f[_0x3660('0x69')],null))['then'](function(_0x36afb6){if(_0x36afb6){_0x3e04e6=_0x36afb6;return db[_0x3660('0x3e')]['findAll']({'raw':!![]});}})[_0x3660('0x20')](function(_0x2fb9c7){var _0x2cbc84=fs[_0x3660('0x58')](path[_0x3660('0x59')](config[_0x3660('0x5a')],'server/files/templates/context.ejs'),_0x3660('0x5c'));var _0x1e2f2d=ejs['render'](_0x2cbc84,{'contexts':_0x2fb9c7||[]});fs['writeFileSync'](_0x3660('0x5e'),_0x1e2f2d);})[_0x3660('0x20')](function(){return respondWithRpcPromise(_0x3660('0x5f'),_0x3660('0x36'),{'module':_0x3660('0x6a')});})[_0x3660('0x20')](function(){return _0x3e04e6;})['then'](respondWithResult(_0x38458d,null))[_0x3660('0x68')](handleError(_0x38458d,null));};exports[_0x3660('0x37')]=function(_0x28805c,_0x431e20,_0x40cd66){var _0xd39286;return db[_0x3660('0x3e')][_0x3660('0x64')]({'where':{'id':_0x28805c[_0x3660('0x53')]['id']}})[_0x3660('0x20')](handleEntityNotFound(_0x431e20,null))[_0x3660('0x20')](removeEntity(_0x431e20,null))[_0x3660('0x20')](function(){return db['VoiceContext'][_0x3660('0x57')]({'raw':!![]});})['then'](function(_0x251188){var _0x2ed619=fs[_0x3660('0x58')](path['join'](config[_0x3660('0x5a')],'server/files/templates/context.ejs'),_0x3660('0x5c'));var _0x42a993=ejs[_0x3660('0x6b')](_0x2ed619,{'contexts':_0x251188});fs[_0x3660('0x5d')](_0x3660('0x5e'),_0x42a993);return respondWithRpcPromise(_0x3660('0x5f'),_0x3660('0x37'),{'module':_0x3660('0x6a')});})[_0x3660('0x68')](handleError(_0x431e20,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x07d0=['VoiceContext','lodash','util','api','moment','request-promise','../../config/environment','./voiceContext.attributes','exports','define'];(function(_0xdc3d26,_0x507cf2){var _0x5ed14c=function(_0x134faf){while(--_0x134faf){_0xdc3d26['push'](_0xdc3d26['shift']());}};_0x5ed14c(++_0x507cf2);}(_0x07d0,0x141));var _0x007d=function(_0x1762b4,_0x33d836){_0x1762b4=_0x1762b4-0x0;var _0x29beda=_0x07d0[_0x1762b4];return _0x29beda;};'use strict';var _=require(_0x007d('0x0'));var util=require(_0x007d('0x1'));var logger=require('../../config/logger')(_0x007d('0x2'));var moment=require(_0x007d('0x3'));var BPromise=require('bluebird');var rp=require(_0x007d('0x4'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0x007d('0x5'));var attributes=require(_0x007d('0x6'));module[_0x007d('0x7')]=function(_0x5edf43,_0x1307fc){return _0x5edf43[_0x007d('0x8')](_0x007d('0x9'),attributes,{'tableName':'voice_contexts','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xfbd6=['VoiceContext','voice_contexts','lodash','util','../../config/logger','api','bluebird','path','../../config/environment','./voiceContext.attributes','exports','define'];(function(_0x227ad7,_0x40525a){var _0x261e61=function(_0x26f48b){while(--_0x26f48b){_0x227ad7['push'](_0x227ad7['shift']());}};_0x261e61(++_0x40525a);}(_0xfbd6,0x1b2));var _0x6fbd=function(_0x16d690,_0x27064f){_0x16d690=_0x16d690-0x0;var _0x155d29=_0xfbd6[_0x16d690];return _0x155d29;};'use strict';var _=require(_0x6fbd('0x0'));var util=require(_0x6fbd('0x1'));var logger=require(_0x6fbd('0x2'))(_0x6fbd('0x3'));var moment=require('moment');var BPromise=require(_0x6fbd('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x6fbd('0x5'));var rimraf=require('rimraf');var config=require(_0x6fbd('0x6'));var attributes=require(_0x6fbd('0x7'));module[_0x6fbd('0x8')]=function(_0x25e0ed,_0x5bfdc8){return _0x25e0ed[_0x6fbd('0x9')](_0x6fbd('0xa'),attributes,{'tableName':_0x6fbd('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x594d=['VoiceContext,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','message','result','lodash','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','client','request','then','info','VoiceContext,\x20%s,\x20%s','debug'];(function(_0x27af45,_0x1b57aa){var _0x18df21=function(_0x4b7679){while(--_0x4b7679){_0x27af45['push'](_0x27af45['shift']());}};_0x18df21(++_0x1b57aa);}(_0x594d,0x92));var _0xd594=function(_0x1d90ca,_0x397b12){_0x1d90ca=_0x1d90ca-0x0;var _0x245d70=_0x594d[_0x1d90ca];return _0x245d70;};'use strict';var _=require(_0xd594('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0xd594('0x1'));var rs=require(_0xd594('0x2'));var fs=require('fs');var Redis=require(_0xd594('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0xd594('0x4'));var logger=require(_0xd594('0x5'))(_0xd594('0x6'));var config=require(_0xd594('0x7'));var jayson=require('jayson/promise');var client=jayson[_0xd594('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x3b1c64,_0x446711,_0xeedad0){return new BPromise(function(_0x20325a,_0x20718a){return client[_0xd594('0x9')](_0x3b1c64,_0xeedad0)[_0xd594('0xa')](function(_0xf3043e){logger[_0xd594('0xb')](_0xd594('0xc'),_0x446711,'request\x20sent');logger[_0xd594('0xd')](_0xd594('0xe'),_0x446711,_0xd594('0xf'),JSON['stringify'](_0xf3043e));if(_0xf3043e[_0xd594('0x10')]){if(_0xf3043e[_0xd594('0x10')][_0xd594('0x11')]===0x1f4){logger[_0xd594('0x10')](_0xd594('0xc'),_0x446711,_0xf3043e[_0xd594('0x10')][_0xd594('0x12')]);return _0x20718a(_0xf3043e['error']['message']);}logger[_0xd594('0x10')](_0xd594('0xc'),_0x446711,_0xf3043e['error'][_0xd594('0x12')]);return _0x20325a(_0xf3043e['error'][_0xd594('0x12')]);}else{logger[_0xd594('0xb')](_0xd594('0xc'),_0x446711,'request\x20sent');_0x20325a(_0xf3043e[_0xd594('0x13')]['message']);}})['catch'](function(_0x2a5f17){logger[_0xd594('0x10')]('VoiceContext,\x20%s,\x20%s',_0x446711,_0x2a5f17);_0x20718a(_0x2a5f17);});});}
\ No newline at end of file
+var _0x980c=['../../config/logger','rpc','../../config/environment','client','http','info','request\x20sent','debug','VoiceContext,\x20%s,\x20%s,\x20%s','stringify','error','VoiceContext,\x20%s,\x20%s','message','result','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils'];(function(_0x58dda3,_0x222d2e){var _0x4903c7=function(_0x2b0062){while(--_0x2b0062){_0x58dda3['push'](_0x58dda3['shift']());}};_0x4903c7(++_0x222d2e);}(_0x980c,0x100));var _0xc980=function(_0x171dc8,_0x2b62ab){_0x171dc8=_0x171dc8-0x0;var _0x4f5193=_0x980c[_0x171dc8];return _0x4f5193;};'use strict';var _=require(_0xc980('0x0'));var util=require(_0xc980('0x1'));var moment=require(_0xc980('0x2'));var BPromise=require(_0xc980('0x3'));var rs=require(_0xc980('0x4'));var fs=require('fs');var Redis=require(_0xc980('0x5'));var db=require(_0xc980('0x6'))['db'];var utils=require(_0xc980('0x7'));var logger=require(_0xc980('0x8'))(_0xc980('0x9'));var config=require(_0xc980('0xa'));var jayson=require('jayson/promise');var client=jayson[_0xc980('0xb')][_0xc980('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x36d2dd,_0x3175e7,_0x389546){return new BPromise(function(_0x4523c0,_0x355bfa){return client['request'](_0x36d2dd,_0x389546)['then'](function(_0x5b99c8){logger[_0xc980('0xd')]('VoiceContext,\x20%s,\x20%s',_0x3175e7,_0xc980('0xe'));logger[_0xc980('0xf')](_0xc980('0x10'),_0x3175e7,'request\x20sent',JSON[_0xc980('0x11')](_0x5b99c8));if(_0x5b99c8[_0xc980('0x12')]){if(_0x5b99c8[_0xc980('0x12')]['code']===0x1f4){logger[_0xc980('0x12')](_0xc980('0x13'),_0x3175e7,_0x5b99c8[_0xc980('0x12')][_0xc980('0x14')]);return _0x355bfa(_0x5b99c8[_0xc980('0x12')][_0xc980('0x14')]);}logger[_0xc980('0x12')](_0xc980('0x13'),_0x3175e7,_0x5b99c8[_0xc980('0x12')][_0xc980('0x14')]);return _0x4523c0(_0x5b99c8[_0xc980('0x12')][_0xc980('0x14')]);}else{logger[_0xc980('0xd')]('VoiceContext,\x20%s,\x20%s',_0x3175e7,'request\x20sent');_0x4523c0(_0x5b99c8[_0xc980('0x15')]['message']);}})['catch'](function(_0x1d1de0){logger[_0xc980('0x12')](_0xc980('0x13'),_0x3175e7,_0x1d1de0);_0x355bfa(_0x1d1de0);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc026=['index','get','/describe','isAuthenticated','describe','/:id','show','post','create','put','update','destroy','exports','util','path','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment'];(function(_0x256361,_0x5cec9e){var _0x594950=function(_0x594503){while(--_0x594503){_0x256361['push'](_0x256361['shift']());}};_0x594950(++_0x5cec9e);}(_0xc026,0x111));var _0x6c02=function(_0x3cf070,_0x4c430e){_0x3cf070=_0x3cf070-0x0;var _0x3d835c=_0xc026[_0x3cf070];return _0x3d835c;};'use strict';var multer=require('multer');var util=require(_0x6c02('0x0'));var path=require(_0x6c02('0x1'));var timeout=require('connect-timeout');var express=require(_0x6c02('0x2'));var router=express['Router']();var fs_extra=require(_0x6c02('0x3'));var auth=require(_0x6c02('0x4'));var interaction=require(_0x6c02('0x5'));var config=require(_0x6c02('0x6'));var controller=require('./voiceDialReport.controller');router['get']('/',auth['isAuthenticated'](),controller[_0x6c02('0x7')]);router[_0x6c02('0x8')](_0x6c02('0x9'),auth[_0x6c02('0xa')](),controller[_0x6c02('0xb')]);router[_0x6c02('0x8')](_0x6c02('0xc'),auth['isAuthenticated'](),controller[_0x6c02('0xd')]);router[_0x6c02('0xe')]('/',auth[_0x6c02('0xa')](),controller[_0x6c02('0xf')]);router[_0x6c02('0x10')]('/:id',auth[_0x6c02('0xa')](),controller[_0x6c02('0x11')]);router['delete'](_0x6c02('0xc'),auth[_0x6c02('0xa')](),controller[_0x6c02('0x12')]);module[_0x6c02('0x13')]=router;
\ No newline at end of file
+var _0xe85c=['destroy','exports','multer','path','connect-timeout','express','../../components/auth/service','../../components/interaction/service','../../config/environment','index','get','/describe','isAuthenticated','describe','/:id','show','create','put','update','delete'];(function(_0x2c5009,_0x63505f){var _0x40b7f9=function(_0x3921bf){while(--_0x3921bf){_0x2c5009['push'](_0x2c5009['shift']());}};_0x40b7f9(++_0x63505f);}(_0xe85c,0x1a6));var _0xce85=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xe85c[_0x3dd15e];return _0x231fd0;};'use strict';var multer=require(_0xce85('0x0'));var util=require('util');var path=require(_0xce85('0x1'));var timeout=require(_0xce85('0x2'));var express=require(_0xce85('0x3'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0xce85('0x4'));var interaction=require(_0xce85('0x5'));var config=require(_0xce85('0x6'));var controller=require('./voiceDialReport.controller');router['get']('/',auth['isAuthenticated'](),controller[_0xce85('0x7')]);router[_0xce85('0x8')](_0xce85('0x9'),auth[_0xce85('0xa')](),controller[_0xce85('0xb')]);router[_0xce85('0x8')](_0xce85('0xc'),auth['isAuthenticated'](),controller[_0xce85('0xd')]);router['post']('/',auth[_0xce85('0xa')](),controller[_0xce85('0xe')]);router[_0xce85('0xf')](_0xce85('0xc'),auth['isAuthenticated'](),controller[_0xce85('0x10')]);router[_0xce85('0x11')](_0xce85('0xc'),auth['isAuthenticated'](),controller[_0xce85('0x12')]);module[_0xce85('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x55ca=['exports','STRING','INTEGER','DATE','sequelize'];(function(_0x44744f,_0x24b58f){var _0x9def04=function(_0x2f21fe){while(--_0x2f21fe){_0x44744f['push'](_0x44744f['shift']());}};_0x9def04(++_0x24b58f);}(_0x55ca,0x126));var _0xa55c=function(_0x525673,_0xb429c2){_0x525673=_0x525673-0x0;var _0x8f7574=_0x55ca[_0x525673];return _0x8f7574;};'use strict';var Sequelize=require(_0xa55c('0x0'));module[_0xa55c('0x1')]={'privilege':{'type':Sequelize['STRING']},'channel':{'type':Sequelize['STRING']},'channelstate':{'type':Sequelize['INTEGER']},'channelstatedesc':{'type':Sequelize[_0xa55c('0x2')]},'calleridnum':{'type':Sequelize[_0xa55c('0x2')]},'calleridname':{'type':Sequelize['STRING']},'connectedlinenum':{'type':Sequelize[_0xa55c('0x2')]},'connectedlinename':{'type':Sequelize[_0xa55c('0x2')]},'language':{'type':Sequelize[_0xa55c('0x2')]},'accountcode':{'type':Sequelize[_0xa55c('0x2')]},'context':{'type':Sequelize[_0xa55c('0x2')]},'exten':{'type':Sequelize[_0xa55c('0x2')]},'priority':{'type':Sequelize[_0xa55c('0x3')]},'uniqueid':{'type':Sequelize['STRING']},'linkedid':{'type':Sequelize[_0xa55c('0x2')]},'destchannel':{'type':Sequelize[_0xa55c('0x2')]},'destchannelstate':{'type':Sequelize['INTEGER']},'destchannelstatedesc':{'type':Sequelize[_0xa55c('0x2')]},'destcalleridnum':{'type':Sequelize[_0xa55c('0x2')]},'destcalleridname':{'type':Sequelize['STRING']},'destconnectedlinenum':{'type':Sequelize['STRING']},'destconnectedlinename':{'type':Sequelize[_0xa55c('0x2')]},'destlanguage':{'type':Sequelize[_0xa55c('0x2')]},'destaccountcode':{'type':Sequelize[_0xa55c('0x2')]},'destcontext':{'type':Sequelize[_0xa55c('0x2')]},'destexten':{'type':Sequelize[_0xa55c('0x2')]},'destpriority':{'type':Sequelize[_0xa55c('0x3')]},'destuniqueid':{'type':Sequelize[_0xa55c('0x2')]},'destlinkedid':{'type':Sequelize[_0xa55c('0x2')]},'dialstring':{'type':Sequelize[_0xa55c('0x2')]},'dialstatus':{'type':Sequelize[_0xa55c('0x2')]},'starttime':{'type':Sequelize['DATE']},'answertime':{'type':Sequelize['DATE']},'endtime':{'type':Sequelize[_0xa55c('0x4')]},'lastevent':{'type':Sequelize['STRING'],'comment':'called,connect,complete'},'routeId':{'type':Sequelize['INTEGER']},'duration':{'type':Sequelize[_0xa55c('0x3')]},'holdtime':{'type':Sequelize[_0xa55c('0x3')]},'billableseconds':{'type':Sequelize[_0xa55c('0x3')]}};
\ No newline at end of file
+var _0x8d0e=['INTEGER','DATE','called,connect,complete','sequelize','exports','STRING'];(function(_0x3a84ac,_0x3e1a0a){var _0x3a7c1f=function(_0x54db98){while(--_0x54db98){_0x3a84ac['push'](_0x3a84ac['shift']());}};_0x3a7c1f(++_0x3e1a0a);}(_0x8d0e,0x1d7));var _0xe8d0=function(_0x295ee1,_0x27495a){_0x295ee1=_0x295ee1-0x0;var _0x790e8c=_0x8d0e[_0x295ee1];return _0x790e8c;};'use strict';var Sequelize=require(_0xe8d0('0x0'));module[_0xe8d0('0x1')]={'privilege':{'type':Sequelize[_0xe8d0('0x2')]},'channel':{'type':Sequelize[_0xe8d0('0x2')]},'channelstate':{'type':Sequelize[_0xe8d0('0x3')]},'channelstatedesc':{'type':Sequelize[_0xe8d0('0x2')]},'calleridnum':{'type':Sequelize[_0xe8d0('0x2')]},'calleridname':{'type':Sequelize[_0xe8d0('0x2')]},'connectedlinenum':{'type':Sequelize[_0xe8d0('0x2')]},'connectedlinename':{'type':Sequelize['STRING']},'language':{'type':Sequelize[_0xe8d0('0x2')]},'accountcode':{'type':Sequelize['STRING']},'context':{'type':Sequelize['STRING']},'exten':{'type':Sequelize[_0xe8d0('0x2')]},'priority':{'type':Sequelize[_0xe8d0('0x3')]},'uniqueid':{'type':Sequelize[_0xe8d0('0x2')]},'linkedid':{'type':Sequelize[_0xe8d0('0x2')]},'destchannel':{'type':Sequelize[_0xe8d0('0x2')]},'destchannelstate':{'type':Sequelize[_0xe8d0('0x3')]},'destchannelstatedesc':{'type':Sequelize[_0xe8d0('0x2')]},'destcalleridnum':{'type':Sequelize[_0xe8d0('0x2')]},'destcalleridname':{'type':Sequelize['STRING']},'destconnectedlinenum':{'type':Sequelize[_0xe8d0('0x2')]},'destconnectedlinename':{'type':Sequelize[_0xe8d0('0x2')]},'destlanguage':{'type':Sequelize[_0xe8d0('0x2')]},'destaccountcode':{'type':Sequelize['STRING']},'destcontext':{'type':Sequelize['STRING']},'destexten':{'type':Sequelize[_0xe8d0('0x2')]},'destpriority':{'type':Sequelize[_0xe8d0('0x3')]},'destuniqueid':{'type':Sequelize[_0xe8d0('0x2')]},'destlinkedid':{'type':Sequelize[_0xe8d0('0x2')]},'dialstring':{'type':Sequelize[_0xe8d0('0x2')]},'dialstatus':{'type':Sequelize[_0xe8d0('0x2')]},'starttime':{'type':Sequelize['DATE']},'answertime':{'type':Sequelize[_0xe8d0('0x4')]},'endtime':{'type':Sequelize[_0xe8d0('0x4')]},'lastevent':{'type':Sequelize['STRING'],'comment':_0xe8d0('0x5')},'routeId':{'type':Sequelize['INTEGER']},'duration':{'type':Sequelize['INTEGER']},'holdtime':{'type':Sequelize[_0xe8d0('0x3')]},'billableseconds':{'type':Sequelize[_0xe8d0('0x3')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6590=['crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','status','end','json','offset','undefined','count','set','Content-Range','apply','reject','update','then','sendStatus','error','send','index','map','VoiceDialReport','key','model','name','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','limit','order','where','filter','merge','type','VIRTUAL','options','includeAll','include','rows','catch','show','find','create','body','params','destroy','describe','eml-format','zip-dir','fast-json-patch','moment','mustache','util','to-csv','ejs','fs-extra','lodash','squel'];(function(_0x6505c3,_0x2a68ef){var _0x1b3318=function(_0x422e8f){while(--_0x422e8f){_0x6505c3['push'](_0x6505c3['shift']());}};_0x1b3318(++_0x2a68ef);}(_0x6590,0x85));var _0x0659=function(_0x58e469,_0x95ee3e){_0x58e469=_0x58e469-0x0;var _0x4c01c5=_0x6590[_0x58e469];return _0x4c01c5;};'use strict';var emlformat=require(_0x0659('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x0659('0x1'));var jsonpatch=require(_0x0659('0x2'));var rp=require('request-promise');var moment=require(_0x0659('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x0659('0x4'));var util=require(_0x0659('0x5'));var path=require('path');var sox=require('sox');var csv=require(_0x0659('0x6'));var ejs=require(_0x0659('0x7'));var fs=require('fs');var fs_extra=require(_0x0659('0x8'));var _=require(_0x0659('0x9'));var squel=require(_0x0659('0xa'));var crypto=require(_0x0659('0xb'));var jsforce=require(_0x0659('0xc'));var deskjs=require(_0x0659('0xd'));var toCsv=require(_0x0659('0x6'));var querystring=require(_0x0659('0xe'));var Papa=require('papaparse');var Redis=require(_0x0659('0xf'));var authService=require(_0x0659('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0x0659('0x11'));var hardwareService=require(_0x0659('0x12'));var logger=require(_0x0659('0x13'))(_0x0659('0x14'));var utils=require(_0x0659('0x15'));var config=require(_0x0659('0x16'));var licenseUtil=require(_0x0659('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x6da4ab,_0x3bc3de){_0x3bc3de=_0x3bc3de||0xcc;return function(_0x39dec6){if(_0x39dec6){return _0x6da4ab['sendStatus'](_0x3bc3de);}return _0x6da4ab[_0x0659('0x18')](_0x3bc3de)[_0x0659('0x19')]();};}function respondWithResult(_0x41aacf,_0x411c43){_0x411c43=_0x411c43||0xc8;return function(_0x5c1db4){if(_0x5c1db4){return _0x41aacf[_0x0659('0x18')](_0x411c43)[_0x0659('0x1a')](_0x5c1db4);}};}function respondWithFilteredResult(_0x1eb9cd,_0x1637e9){return function(_0x383456){if(_0x383456){var _0x15962a=typeof _0x1637e9[_0x0659('0x1b')]==='undefined'&&typeof _0x1637e9['limit']===_0x0659('0x1c');var _0x15ed17=_0x383456['count'];var _0x48b8f2=_0x15962a?0x0:_0x1637e9['offset'];var _0x52ea06=_0x15962a?_0x383456[_0x0659('0x1d')]:_0x1637e9[_0x0659('0x1b')]+_0x1637e9['limit'];var _0x34fb02;if(_0x52ea06>=_0x15ed17){_0x52ea06=_0x15ed17;_0x34fb02=0xc8;}else{_0x34fb02=0xce;}_0x1eb9cd['status'](_0x34fb02);return _0x1eb9cd[_0x0659('0x1e')](_0x0659('0x1f'),_0x48b8f2+'-'+_0x52ea06+'/'+_0x15ed17)[_0x0659('0x1a')](_0x383456);}return null;};}function patchUpdates(_0x4f611d){return function(_0x294865){try{jsonpatch[_0x0659('0x20')](_0x294865,_0x4f611d,!![]);}catch(_0x3ea410){return BPromise[_0x0659('0x21')](_0x3ea410);}return _0x294865['save']();};}function saveUpdates(_0x2ef42f,_0x1ae705){return function(_0x58115d){if(_0x58115d){return _0x58115d[_0x0659('0x22')](_0x2ef42f)[_0x0659('0x23')](function(_0x1c5415){return _0x1c5415;});}return null;};}function removeEntity(_0x1c8e38,_0x3afbcb){return function(_0x1cd0bb){if(_0x1cd0bb){return _0x1cd0bb['destroy']()[_0x0659('0x23')](function(){_0x1c8e38[_0x0659('0x18')](0xcc)[_0x0659('0x19')]();});}};}function handleEntityNotFound(_0x5a1eb0,_0xa04d97){return function(_0xb44d3){if(!_0xb44d3){_0x5a1eb0[_0x0659('0x24')](0x194);}return _0xb44d3;};}function handleError(_0x3ae377,_0x1c4b63){_0x1c4b63=_0x1c4b63||0x1f4;return function(_0x2caab5){logger[_0x0659('0x25')](_0x2caab5['stack']);if(_0x2caab5['name']){delete _0x2caab5['name'];}_0x3ae377['status'](_0x1c4b63)[_0x0659('0x26')](_0x2caab5);};}exports[_0x0659('0x27')]=function(_0x1656f1,_0x1d80af){var _0x20d5f5={},_0x45e0d6={},_0x1a9a87={'count':0x0,'rows':[]};var _0x1cbdc8=_[_0x0659('0x28')](db[_0x0659('0x29')]['rawAttributes'],function(_0x1aee56){return{'name':_0x1aee56['fieldName'],'type':_0x1aee56['type'][_0x0659('0x2a')]};});_0x45e0d6[_0x0659('0x2b')]=_[_0x0659('0x28')](_0x1cbdc8,_0x0659('0x2c'));_0x45e0d6[_0x0659('0x2d')]=_[_0x0659('0x2e')](_0x1656f1[_0x0659('0x2d')]);_0x45e0d6[_0x0659('0x2f')]=_[_0x0659('0x30')](_0x45e0d6[_0x0659('0x2b')],_0x45e0d6['query']);_0x20d5f5['attributes']=_[_0x0659('0x30')](_0x45e0d6[_0x0659('0x2b')],qs[_0x0659('0x31')](_0x1656f1[_0x0659('0x2d')][_0x0659('0x31')]));_0x20d5f5[_0x0659('0x32')]=_0x20d5f5[_0x0659('0x32')][_0x0659('0x33')]?_0x20d5f5[_0x0659('0x32')]:_0x45e0d6['model'];if(!_0x1656f1[_0x0659('0x2d')][_0x0659('0x34')]('nolimit')){_0x20d5f5[_0x0659('0x35')]=qs['limit'](_0x1656f1[_0x0659('0x2d')]['limit']);_0x20d5f5[_0x0659('0x1b')]=qs[_0x0659('0x1b')](_0x1656f1[_0x0659('0x2d')][_0x0659('0x1b')]);}_0x20d5f5[_0x0659('0x36')]=qs['sort'](_0x1656f1['query']['sort']);_0x20d5f5[_0x0659('0x37')]=qs[_0x0659('0x2f')](_['pick'](_0x1656f1[_0x0659('0x2d')],_0x45e0d6[_0x0659('0x2f')]),_0x1cbdc8);if(_0x1656f1[_0x0659('0x2d')][_0x0659('0x38')]){_0x20d5f5[_0x0659('0x37')]=_[_0x0659('0x39')](_0x20d5f5[_0x0659('0x37')],{'$or':_[_0x0659('0x28')](_0x1cbdc8,function(_0x172975){if(_0x172975[_0x0659('0x3a')]!==_0x0659('0x3b')){var _0x14a39c={};_0x14a39c[_0x172975[_0x0659('0x2c')]]={'$like':'%'+_0x1656f1[_0x0659('0x2d')][_0x0659('0x38')]+'%'};return _0x14a39c;}})});}_0x20d5f5=_[_0x0659('0x39')]({},_0x20d5f5,_0x1656f1[_0x0659('0x3c')]);var _0x14fede={'where':_0x20d5f5[_0x0659('0x37')]};return db[_0x0659('0x29')][_0x0659('0x1d')](_0x14fede)[_0x0659('0x23')](function(_0x478e5a){_0x1a9a87[_0x0659('0x1d')]=_0x478e5a;if(_0x1656f1[_0x0659('0x2d')][_0x0659('0x3d')]){_0x20d5f5[_0x0659('0x3e')]=[{'all':!![]}];}return db['VoiceDialReport']['findAll'](_0x20d5f5);})[_0x0659('0x23')](function(_0x2fb2d0){_0x1a9a87[_0x0659('0x3f')]=_0x2fb2d0;return _0x1a9a87;})[_0x0659('0x23')](respondWithFilteredResult(_0x1d80af,_0x20d5f5))[_0x0659('0x40')](handleError(_0x1d80af,null));};exports[_0x0659('0x41')]=function(_0x1b1638,_0x72593){var _0x506959={'raw':!![],'where':{'id':_0x1b1638['params']['id']}},_0x510d2b={};_0x510d2b[_0x0659('0x2b')]=_[_0x0659('0x2e')](db[_0x0659('0x29')]['rawAttributes']);_0x510d2b['query']=_[_0x0659('0x2e')](_0x1b1638[_0x0659('0x2d')]);_0x510d2b['filters']=_[_0x0659('0x30')](_0x510d2b['model'],_0x510d2b[_0x0659('0x2d')]);_0x506959[_0x0659('0x32')]=_['intersection'](_0x510d2b[_0x0659('0x2b')],qs['fields'](_0x1b1638['query'][_0x0659('0x31')]));_0x506959['attributes']=_0x506959[_0x0659('0x32')][_0x0659('0x33')]?_0x506959[_0x0659('0x32')]:_0x510d2b['model'];if(_0x1b1638[_0x0659('0x2d')][_0x0659('0x3d')]){_0x506959[_0x0659('0x3e')]=[{'all':!![]}];}_0x506959=_[_0x0659('0x39')]({},_0x506959,_0x1b1638[_0x0659('0x3c')]);return db[_0x0659('0x29')][_0x0659('0x42')](_0x506959)['then'](handleEntityNotFound(_0x72593,null))['then'](respondWithResult(_0x72593,null))[_0x0659('0x40')](handleError(_0x72593,null));};exports[_0x0659('0x43')]=function(_0x45ab3c,_0x8202e6){return db[_0x0659('0x29')]['create'](_0x45ab3c[_0x0659('0x44')],{})[_0x0659('0x23')](respondWithResult(_0x8202e6,0xc9))[_0x0659('0x40')](handleError(_0x8202e6,null));};exports[_0x0659('0x22')]=function(_0x1c11ad,_0x40eaa3){if(_0x1c11ad['body']['id']){delete _0x1c11ad[_0x0659('0x44')]['id'];}return db[_0x0659('0x29')]['find']({'where':{'id':_0x1c11ad[_0x0659('0x45')]['id']}})[_0x0659('0x23')](handleEntityNotFound(_0x40eaa3,null))[_0x0659('0x23')](saveUpdates(_0x1c11ad[_0x0659('0x44')],null))[_0x0659('0x23')](respondWithResult(_0x40eaa3,null))['catch'](handleError(_0x40eaa3,null));};exports[_0x0659('0x46')]=function(_0x2d9389,_0x156315){return db[_0x0659('0x29')]['find']({'where':{'id':_0x2d9389['params']['id']}})[_0x0659('0x23')](handleEntityNotFound(_0x156315,null))['then'](removeEntity(_0x156315,null))[_0x0659('0x40')](handleError(_0x156315,null));};exports[_0x0659('0x47')]=function(_0x95afe7,_0xf58cc2){return db[_0x0659('0x29')]['describe']()['then'](respondWithResult(_0xf58cc2,null))[_0x0659('0x40')](handleError(_0xf58cc2,null));};
\ No newline at end of file
+var _0x20c6=['moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','undefined','count','offset','limit','status','set','Content-Range','json','reject','save','update','then','error','stack','name','send','index','map','VoiceDialReport','rawAttributes','fieldName','key','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','where','filter','type','VIRTUAL','options','findAll','rows','catch','show','includeAll','include','find','create','body','params','destroy','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise'];(function(_0x4ca288,_0x254dd8){var _0x2362c1=function(_0x5504d8){while(--_0x5504d8){_0x4ca288['push'](_0x4ca288['shift']());}};_0x2362c1(++_0x254dd8);}(_0x20c6,0x1db));var _0x620c=function(_0x37f2df,_0x3e4ade){_0x37f2df=_0x37f2df-0x0;var _0x54465c=_0x20c6[_0x37f2df];return _0x54465c;};'use strict';var emlformat=require(_0x620c('0x0'));var rimraf=require(_0x620c('0x1'));var zipdir=require(_0x620c('0x2'));var jsonpatch=require(_0x620c('0x3'));var rp=require(_0x620c('0x4'));var moment=require(_0x620c('0x5'));var BPromise=require(_0x620c('0x6'));var Mustache=require(_0x620c('0x7'));var util=require(_0x620c('0x8'));var path=require(_0x620c('0x9'));var sox=require(_0x620c('0xa'));var csv=require(_0x620c('0xb'));var ejs=require(_0x620c('0xc'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x620c('0xd'));var squel=require(_0x620c('0xe'));var crypto=require(_0x620c('0xf'));var jsforce=require(_0x620c('0x10'));var deskjs=require(_0x620c('0x11'));var toCsv=require(_0x620c('0xb'));var querystring=require(_0x620c('0x12'));var Papa=require('papaparse');var Redis=require(_0x620c('0x13'));var authService=require('../../components/auth/service');var qs=require(_0x620c('0x14'));var as=require(_0x620c('0x15'));var hardwareService=require(_0x620c('0x16'));var logger=require(_0x620c('0x17'))(_0x620c('0x18'));var utils=require('../../config/utils');var config=require(_0x620c('0x19'));var licenseUtil=require(_0x620c('0x1a'));var db=require(_0x620c('0x1b'))['db'];function respondWithStatusCode(_0x288e50,_0x1200a7){_0x1200a7=_0x1200a7||0xcc;return function(_0x592ec6){if(_0x592ec6){return _0x288e50[_0x620c('0x1c')](_0x1200a7);}return _0x288e50['status'](_0x1200a7)[_0x620c('0x1d')]();};}function respondWithResult(_0x3db641,_0x1a4b32){_0x1a4b32=_0x1a4b32||0xc8;return function(_0x3276c5){if(_0x3276c5){return _0x3db641['status'](_0x1a4b32)['json'](_0x3276c5);}};}function respondWithFilteredResult(_0x5048eb,_0x473664){return function(_0x12ea0c){if(_0x12ea0c){var _0x37730c=typeof _0x473664['offset']==='undefined'&&typeof _0x473664['limit']===_0x620c('0x1e');var _0x4a5718=_0x12ea0c[_0x620c('0x1f')];var _0xebada3=_0x37730c?0x0:_0x473664[_0x620c('0x20')];var _0x2bb8ae=_0x37730c?_0x12ea0c['count']:_0x473664[_0x620c('0x20')]+_0x473664[_0x620c('0x21')];var _0x88179e;if(_0x2bb8ae>=_0x4a5718){_0x2bb8ae=_0x4a5718;_0x88179e=0xc8;}else{_0x88179e=0xce;}_0x5048eb[_0x620c('0x22')](_0x88179e);return _0x5048eb[_0x620c('0x23')](_0x620c('0x24'),_0xebada3+'-'+_0x2bb8ae+'/'+_0x4a5718)[_0x620c('0x25')](_0x12ea0c);}return null;};}function patchUpdates(_0x56f936){return function(_0x10bccf){try{jsonpatch['apply'](_0x10bccf,_0x56f936,!![]);}catch(_0x510000){return BPromise[_0x620c('0x26')](_0x510000);}return _0x10bccf[_0x620c('0x27')]();};}function saveUpdates(_0x51b9f7,_0x5e06ca){return function(_0x45400f){if(_0x45400f){return _0x45400f[_0x620c('0x28')](_0x51b9f7)[_0x620c('0x29')](function(_0x1a7bfa){return _0x1a7bfa;});}return null;};}function removeEntity(_0x21dc6a,_0x5e8c54){return function(_0x4dab42){if(_0x4dab42){return _0x4dab42['destroy']()[_0x620c('0x29')](function(){_0x21dc6a['status'](0xcc)[_0x620c('0x1d')]();});}};}function handleEntityNotFound(_0x684f21,_0x468ade){return function(_0x56d720){if(!_0x56d720){_0x684f21[_0x620c('0x1c')](0x194);}return _0x56d720;};}function handleError(_0x25f0b8,_0x574d7e){_0x574d7e=_0x574d7e||0x1f4;return function(_0x313fd4){logger[_0x620c('0x2a')](_0x313fd4[_0x620c('0x2b')]);if(_0x313fd4[_0x620c('0x2c')]){delete _0x313fd4[_0x620c('0x2c')];}_0x25f0b8[_0x620c('0x22')](_0x574d7e)[_0x620c('0x2d')](_0x313fd4);};}exports[_0x620c('0x2e')]=function(_0x20d790,_0x380a9b){var _0x3f0d25={},_0x2a778f={},_0x23893e={'count':0x0,'rows':[]};var _0x467f49=_[_0x620c('0x2f')](db[_0x620c('0x30')][_0x620c('0x31')],function(_0x38766b){return{'name':_0x38766b[_0x620c('0x32')],'type':_0x38766b['type'][_0x620c('0x33')]};});_0x2a778f['model']=_[_0x620c('0x2f')](_0x467f49,_0x620c('0x2c'));_0x2a778f[_0x620c('0x34')]=_[_0x620c('0x35')](_0x20d790[_0x620c('0x34')]);_0x2a778f[_0x620c('0x36')]=_[_0x620c('0x37')](_0x2a778f[_0x620c('0x38')],_0x2a778f[_0x620c('0x34')]);_0x3f0d25[_0x620c('0x39')]=_[_0x620c('0x37')](_0x2a778f[_0x620c('0x38')],qs[_0x620c('0x3a')](_0x20d790[_0x620c('0x34')][_0x620c('0x3a')]));_0x3f0d25['attributes']=_0x3f0d25['attributes'][_0x620c('0x3b')]?_0x3f0d25[_0x620c('0x39')]:_0x2a778f['model'];if(!_0x20d790[_0x620c('0x34')][_0x620c('0x3c')](_0x620c('0x3d'))){_0x3f0d25[_0x620c('0x21')]=qs[_0x620c('0x21')](_0x20d790[_0x620c('0x34')][_0x620c('0x21')]);_0x3f0d25[_0x620c('0x20')]=qs[_0x620c('0x20')](_0x20d790['query']['offset']);}_0x3f0d25[_0x620c('0x3e')]=qs['sort'](_0x20d790[_0x620c('0x34')]['sort']);_0x3f0d25[_0x620c('0x3f')]=qs[_0x620c('0x36')](_['pick'](_0x20d790[_0x620c('0x34')],_0x2a778f['filters']),_0x467f49);if(_0x20d790[_0x620c('0x34')][_0x620c('0x40')]){_0x3f0d25['where']=_['merge'](_0x3f0d25[_0x620c('0x3f')],{'$or':_[_0x620c('0x2f')](_0x467f49,function(_0x3c9ed0){if(_0x3c9ed0[_0x620c('0x41')]!==_0x620c('0x42')){var _0x474405={};_0x474405[_0x3c9ed0[_0x620c('0x2c')]]={'$like':'%'+_0x20d790[_0x620c('0x34')][_0x620c('0x40')]+'%'};return _0x474405;}})});}_0x3f0d25=_['merge']({},_0x3f0d25,_0x20d790[_0x620c('0x43')]);var _0x50afeb={'where':_0x3f0d25[_0x620c('0x3f')]};return db['VoiceDialReport'][_0x620c('0x1f')](_0x50afeb)[_0x620c('0x29')](function(_0x4b46b3){_0x23893e['count']=_0x4b46b3;if(_0x20d790[_0x620c('0x34')]['includeAll']){_0x3f0d25['include']=[{'all':!![]}];}return db[_0x620c('0x30')][_0x620c('0x44')](_0x3f0d25);})[_0x620c('0x29')](function(_0x550e3f){_0x23893e[_0x620c('0x45')]=_0x550e3f;return _0x23893e;})['then'](respondWithFilteredResult(_0x380a9b,_0x3f0d25))[_0x620c('0x46')](handleError(_0x380a9b,null));};exports[_0x620c('0x47')]=function(_0xcb1969,_0x1b7e66){var _0x586475={'raw':!![],'where':{'id':_0xcb1969['params']['id']}},_0x23cb4d={};_0x23cb4d['model']=_['keys'](db[_0x620c('0x30')][_0x620c('0x31')]);_0x23cb4d[_0x620c('0x34')]=_[_0x620c('0x35')](_0xcb1969[_0x620c('0x34')]);_0x23cb4d[_0x620c('0x36')]=_[_0x620c('0x37')](_0x23cb4d[_0x620c('0x38')],_0x23cb4d['query']);_0x586475[_0x620c('0x39')]=_[_0x620c('0x37')](_0x23cb4d['model'],qs[_0x620c('0x3a')](_0xcb1969[_0x620c('0x34')][_0x620c('0x3a')]));_0x586475[_0x620c('0x39')]=_0x586475['attributes'][_0x620c('0x3b')]?_0x586475[_0x620c('0x39')]:_0x23cb4d[_0x620c('0x38')];if(_0xcb1969[_0x620c('0x34')][_0x620c('0x48')]){_0x586475[_0x620c('0x49')]=[{'all':!![]}];}_0x586475=_['merge']({},_0x586475,_0xcb1969[_0x620c('0x43')]);return db[_0x620c('0x30')][_0x620c('0x4a')](_0x586475)[_0x620c('0x29')](handleEntityNotFound(_0x1b7e66,null))['then'](respondWithResult(_0x1b7e66,null))[_0x620c('0x46')](handleError(_0x1b7e66,null));};exports['create']=function(_0x31b425,_0x1dea47){return db[_0x620c('0x30')][_0x620c('0x4b')](_0x31b425[_0x620c('0x4c')],{})[_0x620c('0x29')](respondWithResult(_0x1dea47,0xc9))[_0x620c('0x46')](handleError(_0x1dea47,null));};exports['update']=function(_0x506e82,_0x4d805f){if(_0x506e82[_0x620c('0x4c')]['id']){delete _0x506e82[_0x620c('0x4c')]['id'];}return db['VoiceDialReport'][_0x620c('0x4a')]({'where':{'id':_0x506e82[_0x620c('0x4d')]['id']}})[_0x620c('0x29')](handleEntityNotFound(_0x4d805f,null))[_0x620c('0x29')](saveUpdates(_0x506e82[_0x620c('0x4c')],null))['then'](respondWithResult(_0x4d805f,null))['catch'](handleError(_0x4d805f,null));};exports[_0x620c('0x4e')]=function(_0x50d68d,_0x56c32c){return db['VoiceDialReport'][_0x620c('0x4a')]({'where':{'id':_0x50d68d[_0x620c('0x4d')]['id']}})[_0x620c('0x29')](handleEntityNotFound(_0x56c32c,null))[_0x620c('0x29')](removeEntity(_0x56c32c,null))[_0x620c('0x46')](handleError(_0x56c32c,null));};exports['describe']=function(_0x372713,_0x2ebba0){return db[_0x620c('0x30')][_0x620c('0x4f')]()[_0x620c('0x29')](respondWithResult(_0x2ebba0,null))[_0x620c('0x46')](handleError(_0x2ebba0,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa8bf=['util','../../config/logger','api','moment','request-promise','rimraf','../../config/environment','exports','define','uniqueid','lodash'];(function(_0x29bd31,_0x2b47f4){var _0x4f8dd7=function(_0x3049f7){while(--_0x3049f7){_0x29bd31['push'](_0x29bd31['shift']());}};_0x4f8dd7(++_0x2b47f4);}(_0xa8bf,0x1c2));var _0xfa8b=function(_0x85666,_0x403be2){_0x85666=_0x85666-0x0;var _0x233527=_0xa8bf[_0x85666];return _0x233527;};'use strict';var _=require(_0xfa8b('0x0'));var util=require(_0xfa8b('0x1'));var logger=require(_0xfa8b('0x2'))(_0xfa8b('0x3'));var moment=require(_0xfa8b('0x4'));var BPromise=require('bluebird');var rp=require(_0xfa8b('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0xfa8b('0x6'));var config=require(_0xfa8b('0x7'));var attributes=require('./voiceDialReport.attributes');module[_0xfa8b('0x8')]=function(_0x2bce16,_0x1c2e78){return _0x2bce16[_0xfa8b('0x9')]('VoiceDialReport',attributes,{'tableName':'report_dial','paranoid':![],'indexes':[{'fields':[_0xfa8b('0xa')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xe6a5=['rimraf','./voiceDialReport.attributes','exports','define','VoiceDialReport','report_dial','uniqueid','api','moment','bluebird','request-promise'];(function(_0x4bb66f,_0x3cd682){var _0xf2772f=function(_0x2e3698){while(--_0x2e3698){_0x4bb66f['push'](_0x4bb66f['shift']());}};_0xf2772f(++_0x3cd682);}(_0xe6a5,0x13b));var _0x5e6a=function(_0x3ff3ca,_0x365693){_0x3ff3ca=_0x3ff3ca-0x0;var _0x2550ca=_0xe6a5[_0x3ff3ca];return _0x2550ca;};'use strict';var _=require('lodash');var util=require('util');var logger=require('../../config/logger')(_0x5e6a('0x0'));var moment=require(_0x5e6a('0x1'));var BPromise=require(_0x5e6a('0x2'));var rp=require(_0x5e6a('0x3'));var fs=require('fs');var path=require('path');var rimraf=require(_0x5e6a('0x4'));var config=require('../../config/environment');var attributes=require(_0x5e6a('0x5'));module[_0x5e6a('0x6')]=function(_0x15db90,_0x346e04){return _0x15db90[_0x5e6a('0x7')](_0x5e6a('0x8'),attributes,{'tableName':_0x5e6a('0x9'),'paranoid':![],'indexes':[{'fields':[_0x5e6a('0xa')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1d94=['limit','lodash','util','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','VoiceDialReport,\x20%s,\x20%s','request\x20sent','debug','VoiceDialReport,\x20%s,\x20%s,\x20%s','stringify','code','error','message','result','catch','CreateVoiceDialReport','VoiceDialReport','create','body','options','raw','UpdateVoiceDialReport','attributes'];(function(_0x2265da,_0xfbbd2e){var _0x430c2b=function(_0x20d671){while(--_0x20d671){_0x2265da['push'](_0x2265da['shift']());}};_0x430c2b(++_0xfbbd2e);}(_0x1d94,0x67));var _0x41d9=function(_0x2641f9,_0x26715f){_0x2641f9=_0x2641f9-0x0;var _0x585741=_0x1d94[_0x2641f9];return _0x585741;};'use strict';var _=require(_0x41d9('0x0'));var util=require(_0x41d9('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x41d9('0x2'));var fs=require('fs');var Redis=require(_0x41d9('0x3'));var db=require(_0x41d9('0x4'))['db'];var utils=require(_0x41d9('0x5'));var logger=require(_0x41d9('0x6'))(_0x41d9('0x7'));var config=require(_0x41d9('0x8'));var jayson=require(_0x41d9('0x9'));var client=jayson[_0x41d9('0xa')][_0x41d9('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x71c021,_0x586c43,_0x4937b3){return new BPromise(function(_0x31bd59,_0x19fa0a){return client[_0x41d9('0xc')](_0x71c021,_0x4937b3)[_0x41d9('0xd')](function(_0x50bded){logger[_0x41d9('0xe')](_0x41d9('0xf'),_0x586c43,_0x41d9('0x10'));logger[_0x41d9('0x11')](_0x41d9('0x12'),_0x586c43,_0x41d9('0x10'),JSON[_0x41d9('0x13')](_0x50bded));if(_0x50bded['error']){if(_0x50bded['error'][_0x41d9('0x14')]===0x1f4){logger['error'](_0x41d9('0xf'),_0x586c43,_0x50bded[_0x41d9('0x15')][_0x41d9('0x16')]);return _0x19fa0a(_0x50bded[_0x41d9('0x15')]['message']);}logger[_0x41d9('0x15')](_0x41d9('0xf'),_0x586c43,_0x50bded[_0x41d9('0x15')][_0x41d9('0x16')]);return _0x31bd59(_0x50bded[_0x41d9('0x15')][_0x41d9('0x16')]);}else{logger['info'](_0x41d9('0xf'),_0x586c43,'request\x20sent');_0x31bd59(_0x50bded[_0x41d9('0x17')][_0x41d9('0x16')]);}})[_0x41d9('0x18')](function(_0x2d1051){logger[_0x41d9('0x15')](_0x41d9('0xf'),_0x586c43,_0x2d1051);_0x19fa0a(_0x2d1051);});});}exports[_0x41d9('0x19')]=function(_0x1498db){var _0x3b8f59=this;return new Promise(function(_0x19a7cc,_0x41dba7){return db[_0x41d9('0x1a')][_0x41d9('0x1b')](_0x1498db[_0x41d9('0x1c')],{'raw':_0x1498db[_0x41d9('0x1d')]?_0x1498db['options'][_0x41d9('0x1e')]===undefined?!![]:![]:!![]})[_0x41d9('0xd')](function(_0x80d94a){logger[_0x41d9('0xe')]('CreateVoiceDialReport',_0x1498db);logger['debug'](_0x41d9('0x19'),_0x1498db,JSON['stringify'](_0x80d94a));_0x19a7cc(_0x80d94a);})[_0x41d9('0x18')](function(_0x50dbf2){logger[_0x41d9('0x15')]('CreateVoiceDialReport',_0x50dbf2[_0x41d9('0x16')],_0x1498db);_0x41dba7(_0x3b8f59['error'](0x1f4,_0x50dbf2[_0x41d9('0x16')]));});});};exports[_0x41d9('0x1f')]=function(_0x5f0f84){var _0x444ea7=this;return new Promise(function(_0x3d1ae4,_0x2e2816){return db[_0x41d9('0x1a')]['update'](_0x5f0f84[_0x41d9('0x1c')],{'raw':_0x5f0f84['options']?_0x5f0f84[_0x41d9('0x1d')][_0x41d9('0x1e')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x5f0f84[_0x41d9('0x1d')]?_0x5f0f84[_0x41d9('0x1d')]['where']||null:null,'attributes':_0x5f0f84['options']?_0x5f0f84['options'][_0x41d9('0x20')]||null:null,'limit':_0x5f0f84['options']?_0x5f0f84[_0x41d9('0x1d')][_0x41d9('0x21')]||null:null})[_0x41d9('0xd')](function(_0x562360){logger[_0x41d9('0xe')](_0x41d9('0x1f'),_0x5f0f84);logger[_0x41d9('0x11')](_0x41d9('0x1f'),_0x5f0f84,JSON[_0x41d9('0x13')](_0x562360));_0x3d1ae4(_0x562360);})['catch'](function(_0x41e16c){logger[_0x41d9('0x15')](_0x41d9('0x1f'),_0x41e16c[_0x41d9('0x16')],_0x5f0f84);_0x2e2816(_0x444ea7[_0x41d9('0x15')](0x1f4,_0x41e16c['message']));});});};
\ No newline at end of file
+var _0x7b5a=['attributes','limit','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','VoiceDialReport,\x20%s,\x20%s','request\x20sent','debug','VoiceDialReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','create','body','options','raw','CreateVoiceDialReport','UpdateVoiceDialReport','VoiceDialReport','update','where'];(function(_0x432682,_0x253044){var _0x463d05=function(_0xa73403){while(--_0xa73403){_0x432682['push'](_0x432682['shift']());}};_0x463d05(++_0x253044);}(_0x7b5a,0x10c));var _0xa7b5=function(_0x52e0ee,_0x52f7c1){_0x52e0ee=_0x52e0ee-0x0;var _0x32534c=_0x7b5a[_0x52e0ee];return _0x32534c;};'use strict';var _=require(_0xa7b5('0x0'));var util=require(_0xa7b5('0x1'));var moment=require(_0xa7b5('0x2'));var BPromise=require(_0xa7b5('0x3'));var rs=require(_0xa7b5('0x4'));var fs=require('fs');var Redis=require(_0xa7b5('0x5'));var db=require(_0xa7b5('0x6'))['db'];var utils=require(_0xa7b5('0x7'));var logger=require(_0xa7b5('0x8'))(_0xa7b5('0x9'));var config=require(_0xa7b5('0xa'));var jayson=require(_0xa7b5('0xb'));var client=jayson[_0xa7b5('0xc')][_0xa7b5('0xd')]({'port':0x232a});function respondWithRpcPromise(_0x115670,_0x2514bf,_0x1329a0){return new BPromise(function(_0x2e1933,_0x584aea){return client[_0xa7b5('0xe')](_0x115670,_0x1329a0)[_0xa7b5('0xf')](function(_0x1497f1){logger[_0xa7b5('0x10')](_0xa7b5('0x11'),_0x2514bf,_0xa7b5('0x12'));logger[_0xa7b5('0x13')](_0xa7b5('0x14'),_0x2514bf,_0xa7b5('0x12'),JSON[_0xa7b5('0x15')](_0x1497f1));if(_0x1497f1['error']){if(_0x1497f1[_0xa7b5('0x16')][_0xa7b5('0x17')]===0x1f4){logger[_0xa7b5('0x16')](_0xa7b5('0x11'),_0x2514bf,_0x1497f1[_0xa7b5('0x16')][_0xa7b5('0x18')]);return _0x584aea(_0x1497f1['error'][_0xa7b5('0x18')]);}logger[_0xa7b5('0x16')](_0xa7b5('0x11'),_0x2514bf,_0x1497f1[_0xa7b5('0x16')][_0xa7b5('0x18')]);return _0x2e1933(_0x1497f1[_0xa7b5('0x16')][_0xa7b5('0x18')]);}else{logger[_0xa7b5('0x10')](_0xa7b5('0x11'),_0x2514bf,_0xa7b5('0x12'));_0x2e1933(_0x1497f1[_0xa7b5('0x19')][_0xa7b5('0x18')]);}})[_0xa7b5('0x1a')](function(_0x5585ad){logger[_0xa7b5('0x16')]('VoiceDialReport,\x20%s,\x20%s',_0x2514bf,_0x5585ad);_0x584aea(_0x5585ad);});});}exports['CreateVoiceDialReport']=function(_0x348c1a){var _0x409fb3=this;return new Promise(function(_0x561113,_0x4f52a0){return db['VoiceDialReport'][_0xa7b5('0x1b')](_0x348c1a[_0xa7b5('0x1c')],{'raw':_0x348c1a[_0xa7b5('0x1d')]?_0x348c1a[_0xa7b5('0x1d')][_0xa7b5('0x1e')]===undefined?!![]:![]:!![]})['then'](function(_0x56a1d1){logger['info'](_0xa7b5('0x1f'),_0x348c1a);logger['debug'](_0xa7b5('0x1f'),_0x348c1a,JSON['stringify'](_0x56a1d1));_0x561113(_0x56a1d1);})[_0xa7b5('0x1a')](function(_0x337626){logger[_0xa7b5('0x16')](_0xa7b5('0x1f'),_0x337626[_0xa7b5('0x18')],_0x348c1a);_0x4f52a0(_0x409fb3[_0xa7b5('0x16')](0x1f4,_0x337626[_0xa7b5('0x18')]));});});};exports[_0xa7b5('0x20')]=function(_0x550280){var _0x1e210d=this;return new Promise(function(_0x5048fb,_0x3a28af){return db[_0xa7b5('0x21')][_0xa7b5('0x22')](_0x550280[_0xa7b5('0x1c')],{'raw':_0x550280['options']?_0x550280['options'][_0xa7b5('0x1e')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x550280[_0xa7b5('0x1d')]?_0x550280[_0xa7b5('0x1d')][_0xa7b5('0x23')]||null:null,'attributes':_0x550280[_0xa7b5('0x1d')]?_0x550280['options'][_0xa7b5('0x24')]||null:null,'limit':_0x550280[_0xa7b5('0x1d')]?_0x550280['options'][_0xa7b5('0x25')]||null:null})[_0xa7b5('0xf')](function(_0x47556e){logger[_0xa7b5('0x10')](_0xa7b5('0x20'),_0x550280);logger['debug'](_0xa7b5('0x20'),_0x550280,JSON['stringify'](_0x47556e));_0x5048fb(_0x47556e);})[_0xa7b5('0x1a')](function(_0x698378){logger['error']('UpdateVoiceDialReport',_0x698378[_0xa7b5('0x18')],_0x550280);_0x3a28af(_0x1e210d[_0xa7b5('0x16')](0x1f4,_0x698378[_0xa7b5('0x18')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfebb=['index','/:id','show','create','post','/:id/applications','addApplications','put','update','destroy','multer','util','path','express','fs-extra','../../components/auth/service','get','isAuthenticated'];(function(_0x4d3958,_0x32788e){var _0x499351=function(_0x4fbf06){while(--_0x4fbf06){_0x4d3958['push'](_0x4d3958['shift']());}};_0x499351(++_0x32788e);}(_0xfebb,0x1f0));var _0xbfeb=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xfebb[_0x3dd15e];return _0x231fd0;};'use strict';var multer=require(_0xbfeb('0x0'));var util=require(_0xbfeb('0x1'));var path=require(_0xbfeb('0x2'));var timeout=require('connect-timeout');var express=require(_0xbfeb('0x3'));var router=express['Router']();var fs_extra=require(_0xbfeb('0x4'));var auth=require(_0xbfeb('0x5'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require('./voiceExtension.controller');router[_0xbfeb('0x6')]('/',auth[_0xbfeb('0x7')](),controller[_0xbfeb('0x8')]);router['get'](_0xbfeb('0x9'),auth[_0xbfeb('0x7')](),controller[_0xbfeb('0xa')]);router['post']('/',auth[_0xbfeb('0x7')](),controller[_0xbfeb('0xb')]);router[_0xbfeb('0xc')](_0xbfeb('0xd'),auth[_0xbfeb('0x7')](),controller[_0xbfeb('0xe')]);router[_0xbfeb('0xf')](_0xbfeb('0x9'),auth[_0xbfeb('0x7')](),controller[_0xbfeb('0x10')]);router['delete']('/:id',auth[_0xbfeb('0x7')](),controller[_0xbfeb('0x11')]);module['exports']=router;
\ No newline at end of file
+var _0x1bf1=['multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./voiceExtension.controller','index','get','/:id','isAuthenticated','show','post','/:id/applications','addApplications','delete','exports'];(function(_0x576f41,_0x5678d2){var _0x51f213=function(_0x4f5298){while(--_0x4f5298){_0x576f41['push'](_0x576f41['shift']());}};_0x51f213(++_0x5678d2);}(_0x1bf1,0x1b9));var _0x11bf=function(_0x5f2368,_0x29c539){_0x5f2368=_0x5f2368-0x0;var _0x11d9a3=_0x1bf1[_0x5f2368];return _0x11d9a3;};'use strict';var multer=require(_0x11bf('0x0'));var util=require(_0x11bf('0x1'));var path=require(_0x11bf('0x2'));var timeout=require(_0x11bf('0x3'));var express=require(_0x11bf('0x4'));var router=express[_0x11bf('0x5')]();var fs_extra=require(_0x11bf('0x6'));var auth=require(_0x11bf('0x7'));var interaction=require(_0x11bf('0x8'));var config=require(_0x11bf('0x9'));var controller=require(_0x11bf('0xa'));router['get']('/',auth['isAuthenticated'](),controller[_0x11bf('0xb')]);router[_0x11bf('0xc')](_0x11bf('0xd'),auth[_0x11bf('0xe')](),controller[_0x11bf('0xf')]);router[_0x11bf('0x10')]('/',auth[_0x11bf('0xe')](),controller['create']);router['post'](_0x11bf('0x11'),auth[_0x11bf('0xe')](),controller[_0x11bf('0x12')]);router['put'](_0x11bf('0xd'),auth[_0x11bf('0xe')](),controller['update']);router[_0x11bf('0x13')]('/:id',auth['isAuthenticated'](),controller['destroy']);module[_0x11bf('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4592=['sequelize','exports','compositeIndex','STRING','NoOp','ENUM','outbound','internal','inbound-fax','outbound-fax','system','any','*,*,*,*','INTEGER','BOOLEAN','wav','VIRTUAL','getDataValue','exten'];(function(_0x4b7124,_0x206b7b){var _0x23e16d=function(_0x2cd68e){while(--_0x2cd68e){_0x4b7124['push'](_0x4b7124['shift']());}};_0x23e16d(++_0x206b7b);}(_0x4592,0x17c));var _0x2459=function(_0x1b1b9a,_0x2b2faf){_0x1b1b9a=_0x1b1b9a-0x0;var _0xe9ec65=_0x4592[_0x1b1b9a];return _0xe9ec65;};'use strict';var Sequelize=require(_0x2459('0x0'));module[_0x2459('0x1')]={'context':{'type':Sequelize['STRING'],'allowNull':![],'unique':_0x2459('0x2'),'validate':{'notEmpty':!![],'is':/[A-Za-z0-9._\+*!\-\[\]]+$/i}},'exten':{'type':Sequelize[_0x2459('0x3')],'allowNull':![],'unique':_0x2459('0x2')},'priority':{'type':Sequelize[_0x2459('0x3')],'allowNull':![],'defaultValue':'1','unique':_0x2459('0x2')},'tag':{'type':Sequelize[_0x2459('0x3')],'allowNull':![],'defaultValue':'--'},'app':{'type':Sequelize[_0x2459('0x3')],'allowNull':![],'defaultValue':_0x2459('0x4')},'appdata':{'type':Sequelize[_0x2459('0x3')](0x1000),'allowNull':!![],'defaultValue':''},'type':{'type':Sequelize[_0x2459('0x5')]('inbound',_0x2459('0x6'),_0x2459('0x7'),_0x2459('0x8'),_0x2459('0x9'),_0x2459('0xa'),_0x2459('0xb')),'allowNull':![]},'description':{'type':Sequelize[_0x2459('0x3')]},'interval':{'type':Sequelize[_0x2459('0x3')],'allowNull':![],'defaultValue':_0x2459('0xc')},'IntervalId':{'type':Sequelize[_0x2459('0xd')]},'isApp':{'type':Sequelize[_0x2459('0xe')],'allowNull':![],'defaultValue':![]},'appType':{'type':Sequelize[_0x2459('0x3')],'defaultValue':null},'callerID':{'type':Sequelize['STRING'],'allowNull':!![]},'record':{'type':Sequelize[_0x2459('0xe')],'defaultValue':![]},'cutdigits':{'type':Sequelize[_0x2459('0xd')]},'recordingFormat':{'type':Sequelize[_0x2459('0x3')],'defaultValue':_0x2459('0xf')},'answer':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'name':{'type':Sequelize[_0x2459('0x10')],'get':function(_0x50ec2b){return this[_0x2459('0x11')](_0x2459('0x12'));}},'alias':{'type':Sequelize[_0x2459('0x3')],'allowNull':!![]}};
\ No newline at end of file
+var _0xfab6=['inbound-fax','outbound-fax','system','any','BOOLEAN','INTEGER','wav','VIRTUAL','getDataValue','sequelize','exports','STRING','compositeIndex','NoOp','ENUM','inbound','outbound','internal'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xfab6,0xab));var _0x6fab=function(_0x3ab9ee,_0x4a74b8){_0x3ab9ee=_0x3ab9ee-0x0;var _0x82ee88=_0xfab6[_0x3ab9ee];return _0x82ee88;};'use strict';var Sequelize=require(_0x6fab('0x0'));module[_0x6fab('0x1')]={'context':{'type':Sequelize[_0x6fab('0x2')],'allowNull':![],'unique':_0x6fab('0x3'),'validate':{'notEmpty':!![],'is':/[A-Za-z0-9._\+*!\-\[\]]+$/i}},'exten':{'type':Sequelize[_0x6fab('0x2')],'allowNull':![],'unique':'compositeIndex'},'priority':{'type':Sequelize[_0x6fab('0x2')],'allowNull':![],'defaultValue':'1','unique':_0x6fab('0x3')},'tag':{'type':Sequelize[_0x6fab('0x2')],'allowNull':![],'defaultValue':'--'},'app':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0x6fab('0x4')},'appdata':{'type':Sequelize['STRING'](0x1000),'allowNull':!![],'defaultValue':''},'type':{'type':Sequelize[_0x6fab('0x5')](_0x6fab('0x6'),_0x6fab('0x7'),_0x6fab('0x8'),_0x6fab('0x9'),_0x6fab('0xa'),_0x6fab('0xb'),_0x6fab('0xc')),'allowNull':![]},'description':{'type':Sequelize['STRING']},'interval':{'type':Sequelize[_0x6fab('0x2')],'allowNull':![],'defaultValue':'*,*,*,*'},'IntervalId':{'type':Sequelize['INTEGER']},'isApp':{'type':Sequelize[_0x6fab('0xd')],'allowNull':![],'defaultValue':![]},'appType':{'type':Sequelize[_0x6fab('0x2')],'defaultValue':null},'callerID':{'type':Sequelize['STRING'],'allowNull':!![]},'record':{'type':Sequelize[_0x6fab('0xd')],'defaultValue':![]},'cutdigits':{'type':Sequelize[_0x6fab('0xe')]},'recordingFormat':{'type':Sequelize[_0x6fab('0x2')],'defaultValue':_0x6fab('0xf')},'answer':{'type':Sequelize[_0x6fab('0xd')],'defaultValue':!![]},'name':{'type':Sequelize[_0x6fab('0x10')],'get':function(_0x4f9755){return this[_0x6fab('0x11')]('exten');}},'alias':{'type':Sequelize[_0x6fab('0x2')],'allowNull':!![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5525=['rows','catch','show','params','rawAttributes','length','options','create','body','startsWith','exten','concat','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','inbound','InternalRoutes','internal','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','pick','context','recordingFormat','mandatoryDisposition','alias','findOne','sequelize','transaction','VoiceExtensionId','log','LOG\x20~\x20.then\x20~\x20routing','findAndCountAll','cast(priority\x20as\x20unsigned)','lodash','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./voiceExtension.socket','register','sendStatus','status','end','undefined','limit','count','offset','Content-Range','json','destroy','then','get','InboundRoutes','OutboundRoutes','outbound','ignore','map','value','includes','type','find','name','UserProfileResource','error','send','index','fieldName','model','keys','query','filters','intersection','fields','attributes','nolimit','order','sort','where','filter','merge','VIRTUAL','VoiceExtension','includeAll','include','findAll'];(function(_0x213518,_0x51e022){var _0x1baf75=function(_0x5c8444){while(--_0x5c8444){_0x213518['push'](_0x213518['shift']());}};_0x1baf75(++_0x51e022);}(_0x5525,0xda));var _0x5552=function(_0x122ef9,_0x451d2a){_0x122ef9=_0x122ef9-0x0;var _0x42fba0=_0x5525[_0x122ef9];return _0x42fba0;};'use strict';var _=require(_0x5552('0x0'));var Redis=require(_0x5552('0x1'));var qs=require(_0x5552('0x2'));var logger=require(_0x5552('0x3'))(_0x5552('0x4'));var config=require(_0x5552('0x5'));var db=require(_0x5552('0x6'))['db'];config[_0x5552('0x7')]=_[_0x5552('0x8')](config[_0x5552('0x7')],{'host':_0x5552('0x9'),'port':0x18eb});var socket=require(_0x5552('0xa'))(new Redis(config[_0x5552('0x7')]));require(_0x5552('0xb'))[_0x5552('0xc')](socket);function respondWithStatusCode(_0x539e6b,_0x30458e){_0x30458e=_0x30458e||0xcc;return function(_0x343023){if(_0x343023){return _0x539e6b[_0x5552('0xd')](_0x30458e);}return _0x539e6b[_0x5552('0xe')](_0x30458e)[_0x5552('0xf')]();};}function respondWithResult(_0x5ed0d5,_0x4705a4){_0x4705a4=_0x4705a4||0xc8;return function(_0x299709){if(_0x299709){return _0x5ed0d5[_0x5552('0xe')](_0x4705a4)['json'](_0x299709);}};}function respondWithFilteredResult(_0x72ab94,_0x1fba5d){return function(_0x354685){if(_0x354685){var _0x3e7b10=typeof _0x1fba5d['offset']===_0x5552('0x10')&&typeof _0x1fba5d[_0x5552('0x11')]==='undefined';var _0x5ab5c8=_0x354685[_0x5552('0x12')];var _0x235456=_0x3e7b10?0x0:_0x1fba5d[_0x5552('0x13')];var _0x2ee1f0=_0x3e7b10?_0x354685['count']:_0x1fba5d[_0x5552('0x13')]+_0x1fba5d['limit'];var _0x535e49;if(_0x2ee1f0>=_0x5ab5c8){_0x2ee1f0=_0x5ab5c8;_0x535e49=0xc8;}else{_0x535e49=0xce;}_0x72ab94[_0x5552('0xe')](_0x535e49);return _0x72ab94['set'](_0x5552('0x14'),_0x235456+'-'+_0x2ee1f0+'/'+_0x5ab5c8)[_0x5552('0x15')](_0x354685);}return null;};}function removeEntity(_0x589562){return function(_0x1c31f8){if(_0x1c31f8){return _0x1c31f8[_0x5552('0x16')]()[_0x5552('0x17')](function(){var _0x137a38=_0x1c31f8[_0x5552('0x18')]({'plain':!![]});var _0x3794fc=[{'name':_0x5552('0x19'),'value':'inbound','ignore':![]},{'name':_0x5552('0x1a'),'value':_0x5552('0x1b'),'ignore':![]},{'name':'InternalRoutes','value':'internal','ignore':![]}];var _0x4ea8ab=_(_0x3794fc)['filter'](_0x5552('0x1c'))[_0x5552('0x1d')](_0x5552('0x1e'))[_0x5552('0x1e')]();if(_[_0x5552('0x1f')](_0x4ea8ab,_0x137a38[_0x5552('0x20')])){return;}var _0x5cc16e=_[_0x5552('0x21')](_0x3794fc,[_0x5552('0x1e'),_0x137a38[_0x5552('0x20')]])[_0x5552('0x22')];return db[_0x5552('0x23')][_0x5552('0x16')]({'where':{'type':_0x5cc16e,'resourceId':_0x137a38['id']}})[_0x5552('0x17')](function(){return _0x1c31f8;});})[_0x5552('0x17')](function(){_0x589562[_0x5552('0xe')](0xcc)[_0x5552('0xf')]();});}};}function handleEntityNotFound(_0x73f284){return function(_0xa28a52){if(!_0xa28a52){_0x73f284[_0x5552('0xd')](0x194);}return _0xa28a52;};}function handleError(_0x515034,_0x227113){_0x227113=_0x227113||0x1f4;return function(_0x3529c7){logger[_0x5552('0x24')](_0x3529c7['stack']);if(_0x3529c7['name']){delete _0x3529c7[_0x5552('0x22')];}_0x515034[_0x5552('0xe')](_0x227113)[_0x5552('0x25')](_0x3529c7);};}exports[_0x5552('0x26')]=function(_0x41148d,_0x59ff99){var _0x4b5447={},_0xabdc2e={},_0x1a5afb={'count':0x0,'rows':[]};var _0x561aef=_['map'](db['VoiceExtension']['rawAttributes'],function(_0x5b3032){return{'name':_0x5b3032[_0x5552('0x27')],'type':_0x5b3032['type']['key']};});_0xabdc2e[_0x5552('0x28')]=_[_0x5552('0x1d')](_0x561aef,_0x5552('0x22'));_0xabdc2e['query']=_[_0x5552('0x29')](_0x41148d[_0x5552('0x2a')]);_0xabdc2e[_0x5552('0x2b')]=_[_0x5552('0x2c')](_0xabdc2e[_0x5552('0x28')],_0xabdc2e[_0x5552('0x2a')]);_0x4b5447['attributes']=_[_0x5552('0x2c')](_0xabdc2e['model'],qs[_0x5552('0x2d')](_0x41148d[_0x5552('0x2a')][_0x5552('0x2d')]));_0x4b5447['attributes']=_0x4b5447[_0x5552('0x2e')]['length']?_0x4b5447[_0x5552('0x2e')]:_0xabdc2e[_0x5552('0x28')];if(!_0x41148d[_0x5552('0x2a')]['hasOwnProperty'](_0x5552('0x2f'))){_0x4b5447[_0x5552('0x11')]=qs[_0x5552('0x11')](_0x41148d[_0x5552('0x2a')][_0x5552('0x11')]);_0x4b5447['offset']=qs[_0x5552('0x13')](_0x41148d[_0x5552('0x2a')][_0x5552('0x13')]);}_0x4b5447[_0x5552('0x30')]=qs['sort'](_0x41148d[_0x5552('0x2a')][_0x5552('0x31')]);_0x4b5447[_0x5552('0x32')]=qs['filters'](_['pick'](_0x41148d[_0x5552('0x2a')],_0xabdc2e['filters']),_0x561aef);if(_0x41148d[_0x5552('0x2a')][_0x5552('0x33')]){_0x4b5447[_0x5552('0x32')]=_[_0x5552('0x34')](_0x4b5447[_0x5552('0x32')],{'$or':_[_0x5552('0x1d')](_0x561aef,function(_0x4e0843){if(_0x4e0843[_0x5552('0x20')]!==_0x5552('0x35')){var _0x4d29a7={};_0x4d29a7[_0x4e0843[_0x5552('0x22')]]={'$like':'%'+_0x41148d[_0x5552('0x2a')][_0x5552('0x33')]+'%'};return _0x4d29a7;}})});}_0x4b5447=_['merge']({},_0x4b5447,_0x41148d['options']);var _0x4bb8d7={'where':_0x4b5447[_0x5552('0x32')]};return db[_0x5552('0x36')]['count'](_0x4bb8d7)['then'](function(_0x48647d){_0x1a5afb[_0x5552('0x12')]=_0x48647d;if(_0x41148d['query'][_0x5552('0x37')]){_0x4b5447[_0x5552('0x38')]=[{'all':!![]}];}return db[_0x5552('0x36')][_0x5552('0x39')](_0x4b5447);})[_0x5552('0x17')](function(_0x169e1d){_0x1a5afb[_0x5552('0x3a')]=_0x169e1d;return _0x1a5afb;})[_0x5552('0x17')](respondWithFilteredResult(_0x59ff99,_0x4b5447))[_0x5552('0x3b')](handleError(_0x59ff99,null));};exports[_0x5552('0x3c')]=function(_0x3ff086,_0x3c253f){var _0x48ea57={'raw':![],'where':{'id':_0x3ff086[_0x5552('0x3d')]['id']}},_0x22dd9c={};_0x22dd9c[_0x5552('0x28')]=_[_0x5552('0x29')](db[_0x5552('0x36')][_0x5552('0x3e')]);_0x22dd9c[_0x5552('0x2a')]=_[_0x5552('0x29')](_0x3ff086[_0x5552('0x2a')]);_0x22dd9c[_0x5552('0x2b')]=_[_0x5552('0x2c')](_0x22dd9c[_0x5552('0x28')],_0x22dd9c[_0x5552('0x2a')]);_0x48ea57[_0x5552('0x2e')]=_[_0x5552('0x2c')](_0x22dd9c[_0x5552('0x28')],qs[_0x5552('0x2d')](_0x3ff086[_0x5552('0x2a')]['fields']));_0x48ea57['attributes']=_0x48ea57[_0x5552('0x2e')][_0x5552('0x3f')]?_0x48ea57[_0x5552('0x2e')]:_0x22dd9c['model'];if(_0x3ff086[_0x5552('0x2a')]['includeAll']){_0x48ea57['include']=[{'all':!![]}];}_0x48ea57=_[_0x5552('0x34')]({},_0x48ea57,_0x3ff086[_0x5552('0x40')]);return db[_0x5552('0x36')]['find'](_0x48ea57)[_0x5552('0x17')](handleEntityNotFound(_0x3c253f,null))['then'](respondWithResult(_0x3c253f,null))[_0x5552('0x3b')](handleError(_0x3c253f,null));};exports[_0x5552('0x16')]=function(_0x2a1174,_0x58eaea){return db['VoiceExtension'][_0x5552('0x21')]({'where':{'id':_0x2a1174[_0x5552('0x3d')]['id']}})[_0x5552('0x17')](handleEntityNotFound(_0x58eaea,null))[_0x5552('0x17')](removeEntity(_0x58eaea,null))[_0x5552('0x3b')](handleError(_0x58eaea,null));};exports[_0x5552('0x41')]=function(_0x230e39,_0xc8bb1f){if(_0x230e39[_0x5552('0x42')][_0x5552('0x20')]===_0x5552('0x1b')&&!_[_0x5552('0x43')](_0x230e39[_0x5552('0x42')]['exten'],'_')){_0x230e39[_0x5552('0x42')][_0x5552('0x44')]='_'[_0x5552('0x45')](_0x230e39[_0x5552('0x42')]['exten']);}return db[_0x5552('0x36')][_0x5552('0x41')](_0x230e39[_0x5552('0x42')],{'raw':![]})[_0x5552('0x17')](function(_0x32641b){var _0x5a0996=_0x230e39['user'][_0x5552('0x18')]({'plain':!![]});if(!_0x5a0996)throw new Error(_0x5552('0x46'));if(_0x5a0996[_0x5552('0x47')]===_0x5552('0x48')){var _0xecc80=_0x32641b[_0x5552('0x18')]({'plain':!![]});var _0x26ad27=[{'name':'InboundRoutes','value':_0x5552('0x49')},{'name':_0x5552('0x1a'),'value':_0x5552('0x1b')},{'name':_0x5552('0x4a'),'value':_0x5552('0x4b')}];var _0x35b106=_[_0x5552('0x21')](_0x26ad27,[_0x5552('0x1e'),_0xecc80[_0x5552('0x20')]])['name'];return db[_0x5552('0x4c')][_0x5552('0x21')]({'where':{'name':_0x35b106,'userProfileId':_0x5a0996[_0x5552('0x4d')]},'raw':!![]})[_0x5552('0x17')](function(_0x5754b8){if(_0x5754b8&&_0x5754b8['autoAssociation']===0x0){return db[_0x5552('0x23')][_0x5552('0x41')]({'name':_0xecc80[_0x5552('0x22')],'resourceId':_0xecc80['id'],'type':_0x5754b8[_0x5552('0x22')],'sectionId':_0x5754b8['id']},{})['then'](function(){return _0x32641b;});}else{return _0x32641b;}})[_0x5552('0x3b')](function(_0x16a33f){logger[_0x5552('0x24')](_0x5552('0x4e'),_0x16a33f);throw _0x16a33f;});}return _0x32641b;})[_0x5552('0x17')](respondWithResult(_0xc8bb1f,0xc9))[_0x5552('0x3b')](handleError(_0xc8bb1f,null));};exports['update']=function(_0x9faa7b,_0x202513){if(_0x9faa7b['body']['id']){delete _0x9faa7b['body']['id'];}return db['VoiceExtension'][_0x5552('0x21')]({'where':{'id':_0x9faa7b[_0x5552('0x3d')]['id']}})[_0x5552('0x17')](handleEntityNotFound(_0x202513,null))['then'](function(_0x11eadc){if(_0x11eadc){return db[_0x5552('0x36')]['update'](_[_0x5552('0x4f')](_0x9faa7b[_0x5552('0x42')],[_0x5552('0x44'),_0x5552('0x50'),'description',_0x5552('0x51'),'cutdigits',_0x5552('0x52'),_0x5552('0x53')]),{'where':{'context':_0x11eadc['context'],'exten':_0x11eadc[_0x5552('0x44')]},'individualHooks':!![]})['then'](function(_0x30885b){return _0x30885b;});}return null;})[_0x5552('0x17')](respondWithStatusCode(_0x202513,null))['catch'](handleError(_0x202513,null));};exports['addApplications']=function(_0x345a73,_0x43843f){return db[_0x5552('0x36')][_0x5552('0x54')]({'where':{'id':_0x345a73[_0x5552('0x3d')]['id']}})['then'](function(_0x35ef0c){if(_0x35ef0c){return db[_0x5552('0x55')][_0x5552('0x56')](function(_0x53eeb7){return db[_0x5552('0x36')][_0x5552('0x16')]({'where':{'VoiceExtensionId':_0x345a73[_0x5552('0x3d')]['id']},'transaction':_0x53eeb7})[_0x5552('0x17')](function(){var _0x2f7542=_[_0x5552('0x1d')](_0x345a73[_0x5552('0x42')],function(_0x46e9de){_0x46e9de[_0x5552('0x57')]=_0x345a73[_0x5552('0x3d')]['id'];_0x46e9de['isApp']=!![];return _0x46e9de;});return _0x35ef0c['createRouting'](_0x2f7542);})[_0x5552('0x17')](function(_0x486fd5){console[_0x5552('0x58')](_0x5552('0x59'),_0x486fd5);return db['VoiceExtension']['bulkCreate'](_0x486fd5,{'transaction':_0x53eeb7});});})[_0x5552('0x17')](function(){return db[_0x5552('0x36')][_0x5552('0x5a')]({'where':{'isApp':!![],'VoiceExtensionId':_0x345a73['params']['id']},'order':_0x5552('0x5b')});});}})[_0x5552('0x17')](respondWithResult(_0x43843f,null))['catch'](handleError(_0x43843f,null));};
\ No newline at end of file
+var _0x1519=['fields','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','VIRTUAL','options','VoiceExtension','includeAll','findAll','rows','catch','show','keys','intersection','create','body','outbound','exten','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','OutboundRoutes','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','context','description','cutdigits','mandatoryDisposition','alias','sequelize','transaction','rewriteDial','toLowerCase','true','createRouting','bulkCreate','findAndCountAll','cast(priority\x20as\x20unsigned)','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','to-csv','ejs','fs-extra','lodash','squel','crypto','querystring','papaparse','ioredis','../../components/auth/service','../../config/logger','api','../../config/environment','../../config/license/util','redis','defaults','socket.io-emitter','./voiceExtension.socket','register','sendStatus','status','end','json','offset','undefined','count','limit','Content-Range','apply','reject','update','destroy','then','get','inbound','InternalRoutes','internal','filter','ignore','map','value','includes','type','find','name','UserProfileResource','error','send','index','rawAttributes','key','model','query','filters','attributes'];(function(_0x3d1253,_0x230512){var _0x47381b=function(_0x36471e){while(--_0x36471e){_0x3d1253['push'](_0x3d1253['shift']());}};_0x47381b(++_0x230512);}(_0x1519,0x1d5));var _0x9151=function(_0x35c088,_0x4c2fc5){_0x35c088=_0x35c088-0x0;var _0x6c36ee=_0x1519[_0x35c088];return _0x6c36ee;};'use strict';var emlformat=require(_0x9151('0x0'));var rimraf=require(_0x9151('0x1'));var zipdir=require(_0x9151('0x2'));var jsonpatch=require(_0x9151('0x3'));var rp=require('request-promise');var moment=require(_0x9151('0x4'));var BPromise=require(_0x9151('0x5'));var Mustache=require('mustache');var util=require('util');var path=require('path');var sox=require('sox');var csv=require(_0x9151('0x6'));var ejs=require(_0x9151('0x7'));var fs=require('fs');var fs_extra=require(_0x9151('0x8'));var _=require(_0x9151('0x9'));var squel=require(_0x9151('0xa'));var crypto=require(_0x9151('0xb'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x9151('0xc'));var Papa=require(_0x9151('0xd'));var Redis=require(_0x9151('0xe'));var authService=require(_0x9151('0xf'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x9151('0x10'))(_0x9151('0x11'));var utils=require('../../config/utils');var config=require(_0x9151('0x12'));var licenseUtil=require(_0x9151('0x13'));var db=require('../../mysqldb')['db'];config[_0x9151('0x14')]=_[_0x9151('0x15')](config[_0x9151('0x14')],{'host':'localhost','port':0x18eb});var socket=require(_0x9151('0x16'))(new Redis(config[_0x9151('0x14')]));require(_0x9151('0x17'))[_0x9151('0x18')](socket);function respondWithStatusCode(_0xa181a0,_0x433e75){_0x433e75=_0x433e75||0xcc;return function(_0x3c4049){if(_0x3c4049){return _0xa181a0[_0x9151('0x19')](_0x433e75);}return _0xa181a0[_0x9151('0x1a')](_0x433e75)[_0x9151('0x1b')]();};}function respondWithResult(_0x2cf3fb,_0x43f1d5){_0x43f1d5=_0x43f1d5||0xc8;return function(_0x25adb2){if(_0x25adb2){return _0x2cf3fb[_0x9151('0x1a')](_0x43f1d5)[_0x9151('0x1c')](_0x25adb2);}};}function respondWithFilteredResult(_0x222b1d,_0xdf9e10){return function(_0x6bf51){if(_0x6bf51){var _0x5de367=typeof _0xdf9e10[_0x9151('0x1d')]===_0x9151('0x1e')&&typeof _0xdf9e10['limit']===_0x9151('0x1e');var _0x20eaec=_0x6bf51[_0x9151('0x1f')];var _0x42c539=_0x5de367?0x0:_0xdf9e10[_0x9151('0x1d')];var _0x4f44d5=_0x5de367?_0x6bf51[_0x9151('0x1f')]:_0xdf9e10[_0x9151('0x1d')]+_0xdf9e10[_0x9151('0x20')];var _0x439ffd;if(_0x4f44d5>=_0x20eaec){_0x4f44d5=_0x20eaec;_0x439ffd=0xc8;}else{_0x439ffd=0xce;}_0x222b1d['status'](_0x439ffd);return _0x222b1d['set'](_0x9151('0x21'),_0x42c539+'-'+_0x4f44d5+'/'+_0x20eaec)[_0x9151('0x1c')](_0x6bf51);}return null;};}function patchUpdates(_0x53e454){return function(_0x10192f){try{jsonpatch[_0x9151('0x22')](_0x10192f,_0x53e454,!![]);}catch(_0x355739){return BPromise[_0x9151('0x23')](_0x355739);}return _0x10192f['save']();};}function saveUpdates(_0x46852d,_0x26c6b3){return function(_0x45b406){if(_0x45b406){return _0x45b406[_0x9151('0x24')](_0x46852d)['then'](function(_0xc58152){return _0xc58152;});}return null;};}function removeEntity(_0x7d539c,_0x3d1d4e){return function(_0x674fc3){if(_0x674fc3){return _0x674fc3[_0x9151('0x25')]()[_0x9151('0x26')](function(){var _0x5bf12d=_0x674fc3[_0x9151('0x27')]({'plain':!![]});var _0x17053d=[{'name':'InboundRoutes','value':_0x9151('0x28'),'ignore':![]},{'name':'OutboundRoutes','value':'outbound','ignore':![]},{'name':_0x9151('0x29'),'value':_0x9151('0x2a'),'ignore':![]}];var _0x24cba7=_(_0x17053d)[_0x9151('0x2b')](_0x9151('0x2c'))[_0x9151('0x2d')](_0x9151('0x2e'))[_0x9151('0x2e')]();if(_[_0x9151('0x2f')](_0x24cba7,_0x5bf12d[_0x9151('0x30')])){return;}var _0x2c1398=_[_0x9151('0x31')](_0x17053d,[_0x9151('0x2e'),_0x5bf12d[_0x9151('0x30')]])[_0x9151('0x32')];return db[_0x9151('0x33')][_0x9151('0x25')]({'where':{'type':_0x2c1398,'resourceId':_0x5bf12d['id']}})['then'](function(){return _0x674fc3;});})['then'](function(){_0x7d539c[_0x9151('0x1a')](0xcc)[_0x9151('0x1b')]();});}};}function handleEntityNotFound(_0x415f0f,_0x1f0e0b){return function(_0x32135c){if(!_0x32135c){_0x415f0f['sendStatus'](0x194);}return _0x32135c;};}function handleError(_0x2e2811,_0xde09b5){_0xde09b5=_0xde09b5||0x1f4;return function(_0x2f0689){logger[_0x9151('0x34')](_0x2f0689['stack']);if(_0x2f0689[_0x9151('0x32')]){delete _0x2f0689[_0x9151('0x32')];}_0x2e2811['status'](_0xde09b5)[_0x9151('0x35')](_0x2f0689);};}exports[_0x9151('0x36')]=function(_0x10f398,_0xf6c9b3){var _0x3a0673={},_0x4842ec={},_0x13bb68={'count':0x0,'rows':[]};var _0x59f70f=_[_0x9151('0x2d')](db['VoiceExtension'][_0x9151('0x37')],function(_0x15d364){return{'name':_0x15d364['fieldName'],'type':_0x15d364[_0x9151('0x30')][_0x9151('0x38')]};});_0x4842ec[_0x9151('0x39')]=_[_0x9151('0x2d')](_0x59f70f,_0x9151('0x32'));_0x4842ec[_0x9151('0x3a')]=_['keys'](_0x10f398[_0x9151('0x3a')]);_0x4842ec[_0x9151('0x3b')]=_['intersection'](_0x4842ec[_0x9151('0x39')],_0x4842ec['query']);_0x3a0673[_0x9151('0x3c')]=_['intersection'](_0x4842ec[_0x9151('0x39')],qs['fields'](_0x10f398[_0x9151('0x3a')][_0x9151('0x3d')]));_0x3a0673['attributes']=_0x3a0673[_0x9151('0x3c')][_0x9151('0x3e')]?_0x3a0673['attributes']:_0x4842ec[_0x9151('0x39')];if(!_0x10f398[_0x9151('0x3a')][_0x9151('0x3f')](_0x9151('0x40'))){_0x3a0673[_0x9151('0x20')]=qs['limit'](_0x10f398[_0x9151('0x3a')][_0x9151('0x20')]);_0x3a0673[_0x9151('0x1d')]=qs[_0x9151('0x1d')](_0x10f398[_0x9151('0x3a')][_0x9151('0x1d')]);}_0x3a0673[_0x9151('0x41')]=qs[_0x9151('0x42')](_0x10f398[_0x9151('0x3a')][_0x9151('0x42')]);_0x3a0673[_0x9151('0x43')]=qs[_0x9151('0x3b')](_[_0x9151('0x44')](_0x10f398[_0x9151('0x3a')],_0x4842ec[_0x9151('0x3b')]),_0x59f70f);if(_0x10f398[_0x9151('0x3a')][_0x9151('0x2b')]){_0x3a0673[_0x9151('0x43')]=_[_0x9151('0x45')](_0x3a0673[_0x9151('0x43')],{'$or':_[_0x9151('0x2d')](_0x59f70f,function(_0x55bec7){if(_0x55bec7[_0x9151('0x30')]!==_0x9151('0x46')){var _0x2326ba={};_0x2326ba[_0x55bec7[_0x9151('0x32')]]={'$like':'%'+_0x10f398[_0x9151('0x3a')][_0x9151('0x2b')]+'%'};return _0x2326ba;}})});}_0x3a0673=_[_0x9151('0x45')]({},_0x3a0673,_0x10f398[_0x9151('0x47')]);var _0x436991={'where':_0x3a0673[_0x9151('0x43')]};return db[_0x9151('0x48')][_0x9151('0x1f')](_0x436991)['then'](function(_0xb9ba02){_0x13bb68[_0x9151('0x1f')]=_0xb9ba02;if(_0x10f398[_0x9151('0x3a')][_0x9151('0x49')]){_0x3a0673['include']=[{'all':!![]}];}return db[_0x9151('0x48')][_0x9151('0x4a')](_0x3a0673);})[_0x9151('0x26')](function(_0x54c535){_0x13bb68[_0x9151('0x4b')]=_0x54c535;return _0x13bb68;})[_0x9151('0x26')](respondWithFilteredResult(_0xf6c9b3,_0x3a0673))[_0x9151('0x4c')](handleError(_0xf6c9b3,null));};exports[_0x9151('0x4d')]=function(_0x26e81c,_0x477846){var _0x264478={'raw':![],'where':{'id':_0x26e81c['params']['id']}},_0x2da34d={};_0x2da34d[_0x9151('0x39')]=_[_0x9151('0x4e')](db[_0x9151('0x48')][_0x9151('0x37')]);_0x2da34d[_0x9151('0x3a')]=_[_0x9151('0x4e')](_0x26e81c[_0x9151('0x3a')]);_0x2da34d[_0x9151('0x3b')]=_[_0x9151('0x4f')](_0x2da34d[_0x9151('0x39')],_0x2da34d[_0x9151('0x3a')]);_0x264478[_0x9151('0x3c')]=_[_0x9151('0x4f')](_0x2da34d[_0x9151('0x39')],qs[_0x9151('0x3d')](_0x26e81c[_0x9151('0x3a')][_0x9151('0x3d')]));_0x264478[_0x9151('0x3c')]=_0x264478['attributes'][_0x9151('0x3e')]?_0x264478[_0x9151('0x3c')]:_0x2da34d['model'];if(_0x26e81c[_0x9151('0x3a')][_0x9151('0x49')]){_0x264478['include']=[{'all':!![]}];}_0x264478=_[_0x9151('0x45')]({},_0x264478,_0x26e81c[_0x9151('0x47')]);return db[_0x9151('0x48')][_0x9151('0x31')](_0x264478)[_0x9151('0x26')](handleEntityNotFound(_0x477846,null))[_0x9151('0x26')](respondWithResult(_0x477846,null))[_0x9151('0x4c')](handleError(_0x477846,null));};exports[_0x9151('0x25')]=function(_0xb55cdb,_0x449456){return db[_0x9151('0x48')]['find']({'where':{'id':_0xb55cdb['params']['id']}})['then'](handleEntityNotFound(_0x449456,null))['then'](removeEntity(_0x449456,null))[_0x9151('0x4c')](handleError(_0x449456,null));};exports[_0x9151('0x50')]=function(_0x39d8a2,_0x30cd29){if(_0x39d8a2[_0x9151('0x51')][_0x9151('0x30')]===_0x9151('0x52')&&!_['startsWith'](_0x39d8a2[_0x9151('0x51')][_0x9151('0x53')],'_')){_0x39d8a2[_0x9151('0x51')]['exten']='_'['concat'](_0x39d8a2[_0x9151('0x51')][_0x9151('0x53')]);}return db[_0x9151('0x48')][_0x9151('0x50')](_0x39d8a2[_0x9151('0x51')],{'raw':![]})['then'](function(_0x50354a){var _0x410d38=_0x39d8a2[_0x9151('0x54')][_0x9151('0x27')]({'plain':!![]});if(!_0x410d38)throw new Error(_0x9151('0x55'));if(_0x410d38['role']===_0x9151('0x54')){var _0x23d173=_0x50354a[_0x9151('0x27')]({'plain':!![]});var _0x13dd34=[{'name':'InboundRoutes','value':_0x9151('0x28')},{'name':_0x9151('0x56'),'value':_0x9151('0x52')},{'name':_0x9151('0x29'),'value':'internal'}];var _0x1315a3=_['find'](_0x13dd34,[_0x9151('0x2e'),_0x23d173[_0x9151('0x30')]])['name'];return db[_0x9151('0x57')]['find']({'where':{'name':_0x1315a3,'userProfileId':_0x410d38[_0x9151('0x58')]},'raw':!![]})[_0x9151('0x26')](function(_0x4cceb4){if(_0x4cceb4&&_0x4cceb4[_0x9151('0x59')]===0x0){return db['UserProfileResource'][_0x9151('0x50')]({'name':_0x23d173[_0x9151('0x32')],'resourceId':_0x23d173['id'],'type':_0x4cceb4[_0x9151('0x32')],'sectionId':_0x4cceb4['id']},{})['then'](function(){return _0x50354a;});}else{return _0x50354a;}})[_0x9151('0x4c')](function(_0x1e77fb){logger[_0x9151('0x34')](_0x9151('0x5a'),_0x1e77fb);throw _0x1e77fb;});}return _0x50354a;})[_0x9151('0x26')](respondWithResult(_0x30cd29,0xc9))[_0x9151('0x4c')](handleError(_0x30cd29,null));};exports[_0x9151('0x24')]=function(_0x3a7881,_0x1cf7b2){if(_0x3a7881[_0x9151('0x51')]['id']){delete _0x3a7881[_0x9151('0x51')]['id'];}return db[_0x9151('0x48')]['find']({'where':{'id':_0x3a7881[_0x9151('0x5b')]['id']}})[_0x9151('0x26')](handleEntityNotFound(_0x1cf7b2,null))['then'](function(_0x2e6b80){if(_0x2e6b80){return db['VoiceExtension'][_0x9151('0x24')](_[_0x9151('0x44')](_0x3a7881[_0x9151('0x51')],[_0x9151('0x53'),_0x9151('0x5c'),_0x9151('0x5d'),'recordingFormat',_0x9151('0x5e'),_0x9151('0x5f'),_0x9151('0x60')]),{'where':{'context':_0x2e6b80[_0x9151('0x5c')],'exten':_0x2e6b80['exten']},'individualHooks':!![]})[_0x9151('0x26')](function(_0x2fd3af){return _0x2fd3af;});}return null;})['then'](respondWithStatusCode(_0x1cf7b2,null))[_0x9151('0x4c')](handleError(_0x1cf7b2,null));};exports['addApplications']=function(_0x10ddf8,_0x5aac34){return db[_0x9151('0x48')]['findOne']({'where':{'id':_0x10ddf8[_0x9151('0x5b')]['id']}})['then'](function(_0x5d3e99){if(_0x5d3e99){return db[_0x9151('0x61')][_0x9151('0x62')](function(_0x41bdcc){return db[_0x9151('0x48')][_0x9151('0x25')]({'where':{'VoiceExtensionId':_0x10ddf8[_0x9151('0x5b')]['id']},'transaction':_0x41bdcc})[_0x9151('0x26')](function(){var _0x4f0a06=_[_0x9151('0x2d')](_0x10ddf8[_0x9151('0x51')],function(_0x3aadcd){_0x3aadcd['VoiceExtensionId']=_0x10ddf8['params']['id'];_0x3aadcd['isApp']=!![];return _0x3aadcd;});var _0x3c1b14=_0x10ddf8[_0x9151('0x3a')][_0x9151('0x63')]&&_0x10ddf8[_0x9151('0x3a')][_0x9151('0x63')][_0x9151('0x64')]()===_0x9151('0x65')?!![]:![];return _0x5d3e99[_0x9151('0x66')](_0x4f0a06,_0x3c1b14);})[_0x9151('0x26')](function(_0x379a8d){return db[_0x9151('0x48')][_0x9151('0x67')](_0x379a8d,{'transaction':_0x41bdcc});});})['then'](function(){return db[_0x9151('0x48')][_0x9151('0x68')]({'where':{'isApp':!![],'VoiceExtensionId':_0x10ddf8[_0x9151('0x5b')]['id']},'order':_0x9151('0x69')});});}})[_0x9151('0x26')](respondWithResult(_0x5aac34,null))[_0x9151('0x4c')](handleError(_0x5aac34,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3e81=['exports','events','VoiceExtension','save','remove','emit','hasOwnProperty','hook'];(function(_0x13d07a,_0x41efc3){var _0x5ee0ee=function(_0x4ca94a){while(--_0x4ca94a){_0x13d07a['push'](_0x13d07a['shift']());}};_0x5ee0ee(++_0x41efc3);}(_0x3e81,0x169));var _0x13e8=function(_0x1964d4,_0x55603f){_0x1964d4=_0x1964d4-0x0;var _0x379874=_0x3e81[_0x1964d4];return _0x379874;};'use strict';var EventEmitter=require(_0x13e8('0x0'));var VoiceExtension=require('../../mysqldb')['db'][_0x13e8('0x1')];var VoiceExtensionEvents=new EventEmitter();VoiceExtensionEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x13e8('0x2'),'afterUpdate':'update','afterDestroy':_0x13e8('0x3')};function emitEvent(_0x5387a8){return function(_0x532dc0,_0x2f567c,_0x5d2dbe){VoiceExtensionEvents[_0x13e8('0x4')](_0x5387a8+':'+_0x532dc0['id'],_0x532dc0);VoiceExtensionEvents[_0x13e8('0x4')](_0x5387a8,_0x532dc0);_0x5d2dbe(null);};}for(var e in events){if(events[_0x13e8('0x5')](e)){var event=events[e];VoiceExtension[_0x13e8('0x6')](e,emitEvent(event));}}module[_0x13e8('0x7')]=VoiceExtensionEvents;
\ No newline at end of file
+var _0xd444=['setMaxListeners','save','remove','emit','hasOwnProperty','hook','exports','events','../../mysqldb','VoiceExtension'];(function(_0x30abff,_0x5f2c5f){var _0x4c571e=function(_0x43de9a){while(--_0x43de9a){_0x30abff['push'](_0x30abff['shift']());}};_0x4c571e(++_0x5f2c5f);}(_0xd444,0x179));var _0x4d44=function(_0x487b0c,_0x14ff74){_0x487b0c=_0x487b0c-0x0;var _0x1adbdc=_0xd444[_0x487b0c];return _0x1adbdc;};'use strict';var EventEmitter=require(_0x4d44('0x0'));var VoiceExtension=require(_0x4d44('0x1'))['db'][_0x4d44('0x2')];var VoiceExtensionEvents=new EventEmitter();VoiceExtensionEvents[_0x4d44('0x3')](0x0);var events={'afterCreate':_0x4d44('0x4'),'afterUpdate':'update','afterDestroy':_0x4d44('0x5')};function emitEvent(_0x5012da){return function(_0x3bab04,_0x5be1ed,_0x16ea87){VoiceExtensionEvents[_0x4d44('0x6')](_0x5012da+':'+_0x3bab04['id'],_0x3bab04);VoiceExtensionEvents['emit'](_0x5012da,_0x3bab04);_0x16ea87(null);};}for(var e in events){if(events[_0x4d44('0x7')](e)){var event=events[e];VoiceExtension[_0x4d44('0x8')](e,emitEvent(event));}}module[_0x4d44('0x9')]=VoiceExtensionEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2028=['indexOf','U(xcally-mixmonitor-context)','replace','join','isEmpty','Interval','findAll','interval','IntervalId','then','length','*,*,*,*','intervals','map','filter','toLowerCase','hasOwnProperty','tag','CDR(tag)=','callerID','Set(CALLERID(all)=','NoOp(No\x20number\x20available)','answer','queue','includes','app','appType','custom','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1','splice','GotoIfTime',',${EXTEN},','outboundDial','appdata','priority','last','define','VoiceExtension','voice_extensions','get','concat','Hangup','exports','models','type','Set','CDR(type)=','alias','NoOp','CDR(routeAlias)=','No\x20alias\x20set','context','exten','push','inbound','CDR(routeid)=','XCALLY-MOTION-ANSWER=0','MONITOR_OPTIONS=ab','outbound','CDR(destination)=','cutdigits','${EXTEN:','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','):Goto(','CDR(prefix)=${EXTEN:0:','XCALLY-MOTION-PROGRESS=0','outboundrouteid=','recordingFormat','none','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','_XCALLY_MIXMONITOR_FORMAT=','wav','trunk','timeout','options','url','name','split','param','prefix','phone','${EXTEN}','SIP'];(function(_0x2b4411,_0x2625ed){var _0x8e41ef=function(_0x2aa8c1){while(--_0x2aa8c1){_0x2b4411['push'](_0x2b4411['shift']());}};_0x8e41ef(++_0x2625ed);}(_0x2028,0x1e0));var _0x8202=function(_0x3ba3ab,_0x58d410){_0x3ba3ab=_0x3ba3ab-0x0;var _0x323a7f=_0x2028[_0x3ba3ab];return _0x323a7f;};'use strict';var _=require('lodash');var attributes=require('./voiceExtension.attributes');module[_0x8202('0x0')]=function(_0x4e0fc5){var _0x277061=_0x4e0fc5[_0x8202('0x1')];function _0x10f405(_0x495f0f){var _0x39beb0=0x2;var _0x59f4bb=[{'type':_0x495f0f[_0x8202('0x2')],'app':_0x8202('0x3'),'appdata':_0x8202('0x4')+_0x495f0f[_0x8202('0x2')],'context':_0x495f0f['context'],'exten':_0x495f0f['exten'],'priority':_0x39beb0++,'VoiceExtensionId':_0x495f0f['id']},{'type':_0x495f0f[_0x8202('0x2')],'app':_0x495f0f[_0x8202('0x5')]?_0x8202('0x3'):_0x8202('0x6'),'appdata':_0x495f0f['alias']?_0x8202('0x7')+_0x495f0f[_0x8202('0x5')]:_0x8202('0x8'),'context':_0x495f0f[_0x8202('0x9')],'exten':_0x495f0f[_0x8202('0xa')],'priority':_0x39beb0++,'VoiceExtensionId':_0x495f0f['id']}];if(_0x495f0f[_0x8202('0x2')]==='inbound'){_0x59f4bb[_0x8202('0xb')]({'type':_0x8202('0xc'),'app':_0x8202('0x3'),'appdata':_0x8202('0xd')+_0x495f0f['id'],'context':_0x495f0f['context'],'exten':_0x495f0f[_0x8202('0xa')],'priority':_0x39beb0++,'VoiceExtensionId':_0x495f0f['id']});}_0x59f4bb[_0x8202('0xb')]({'type':_0x495f0f['type'],'app':_0x8202('0x3'),'appdata':_0x8202('0xe'),'context':_0x495f0f['context'],'exten':_0x495f0f[_0x8202('0xa')],'priority':_0x39beb0++,'VoiceExtensionId':_0x495f0f['id']},{'type':_0x495f0f[_0x8202('0x2')],'app':'Set','appdata':'XCALLY-MOTION-PROGRESS=0','context':_0x495f0f['context'],'exten':_0x495f0f['exten'],'priority':_0x39beb0++,'VoiceExtensionId':_0x495f0f['id']},{'type':_0x495f0f[_0x8202('0x2')],'app':_0x8202('0x3'),'appdata':_0x8202('0xf'),'context':_0x495f0f[_0x8202('0x9')],'exten':_0x495f0f[_0x8202('0xa')],'priority':_0x39beb0++,'VoiceExtensionId':_0x495f0f['id']});return _0x59f4bb;}function _0xca0e7e(_0x3bf076){var _0x575510=0x2;var _0x4bac69=[{'type':_0x8202('0x10'),'app':_0x8202('0x3'),'appdata':'CDR(type)=outbound','context':_0x3bf076[_0x8202('0x9')],'exten':_0x3bf076['exten'],'priority':_0x575510++,'VoiceExtensionId':_0x3bf076['id']},{'type':_0x8202('0x10'),'app':_0x3bf076[_0x8202('0x5')]?_0x8202('0x3'):_0x8202('0x6'),'appdata':_0x3bf076[_0x8202('0x5')]?_0x8202('0x7')+_0x3bf076[_0x8202('0x5')]:_0x8202('0x8'),'context':_0x3bf076['context'],'exten':_0x3bf076[_0x8202('0xa')],'priority':_0x575510++,'VoiceExtensionId':_0x3bf076['id']},{'type':'outbound','app':'Set','appdata':_0x8202('0x11')+(_0x3bf076[_0x8202('0x12')]?_0x8202('0x13')+_0x3bf076[_0x8202('0x12')]+'}':'${EXTEN}'),'context':_0x3bf076[_0x8202('0x9')],'exten':_0x3bf076['exten'],'priority':_0x575510++,'VoiceExtensionId':_0x3bf076['id']},{'type':_0x8202('0x10'),'app':_0x8202('0x3'),'appdata':_0x8202('0xd')+_0x3bf076['id'],'context':_0x3bf076[_0x8202('0x9')],'exten':_0x3bf076[_0x8202('0xa')],'priority':_0x575510++,'VoiceExtensionId':_0x3bf076['id']},{'type':_0x8202('0x10'),'app':_0x8202('0x14'),'appdata':_0x8202('0x15')+(_0x575510+0x2)+_0x8202('0x16')+(_0x575510+0x1)+')','context':_0x3bf076[_0x8202('0x9')],'exten':_0x3bf076['exten'],'priority':_0x575510++,'VoiceExtensionId':_0x3bf076['id']},{'type':_0x8202('0x10'),'app':_0x8202('0x3'),'appdata':_0x3bf076[_0x8202('0x12')]?_0x8202('0x17')+_0x3bf076[_0x8202('0x12')]+'}':'CDR(prefix)=noprefix','context':_0x3bf076[_0x8202('0x9')],'exten':_0x3bf076[_0x8202('0xa')],'priority':_0x575510++,'VoiceExtensionId':_0x3bf076['id']},{'type':_0x8202('0x10'),'app':'Set','appdata':_0x8202('0xe'),'context':_0x3bf076[_0x8202('0x9')],'exten':_0x3bf076[_0x8202('0xa')],'priority':_0x575510++,'VoiceExtensionId':_0x3bf076['id']},{'type':_0x8202('0x10'),'app':_0x8202('0x3'),'appdata':_0x8202('0x18'),'context':_0x3bf076[_0x8202('0x9')],'exten':_0x3bf076[_0x8202('0xa')],'priority':_0x575510++,'VoiceExtensionId':_0x3bf076['id']},{'type':_0x8202('0x10'),'app':_0x8202('0x3'),'appdata':_0x8202('0xf'),'context':_0x3bf076[_0x8202('0x9')],'exten':_0x3bf076[_0x8202('0xa')],'priority':_0x575510++,'VoiceExtensionId':_0x3bf076['id']},{'type':_0x8202('0x10'),'app':_0x8202('0x3'),'appdata':_0x8202('0x19')+_0x3bf076['id'],'context':_0x3bf076[_0x8202('0x9')],'exten':_0x3bf076[_0x8202('0xa')],'priority':_0x575510++,'VoiceExtensionId':_0x3bf076['id']}];if(_0x3bf076['hasOwnProperty'](_0x8202('0x1a'))&&_0x3bf076[_0x8202('0x1a')]!==_0x8202('0x1b')){_0x4bac69[_0x8202('0xb')]({'type':_0x8202('0x10'),'app':_0x8202('0x3'),'appdata':_0x8202('0x1c'),'context':_0x3bf076['context'],'exten':_0x3bf076[_0x8202('0xa')],'priority':_0x575510++,'VoiceExtensionId':_0x3bf076['id']},{'type':_0x8202('0x10'),'app':_0x8202('0x3'),'appdata':_0x8202('0x1d')+_0x3bf076['recordingFormat']||_0x8202('0x1e'),'context':_0x3bf076[_0x8202('0x9')],'exten':_0x3bf076[_0x8202('0xa')],'priority':_0x575510++,'VoiceExtensionId':_0x3bf076['id']});}return _0x4bac69;}function _0x31d955(_0x5be03e,_0x494e34){var _0x391a49=[{'name':_0x8202('0x1f'),'param':0x0},{'name':_0x8202('0x20'),'param':0x1},{'name':_0x8202('0x21'),'param':0x2},{'name':_0x8202('0x22'),'param':0x3}];var _0x37a8d2={};var _0x502175=_0x494e34['split'](',');var _0x5cf6af=[];for(var _0x41b167=0x0;_0x41b167<_0x391a49['length'];_0x41b167++){switch(_0x391a49[_0x41b167][_0x8202('0x23')]){case'trunk':_0x37a8d2[_0x8202('0x1f')]=_0x502175[_0x391a49[_0x41b167]['param']][_0x8202('0x24')]('/')[0x1];_0x37a8d2['phone']=_0x502175[_0x391a49[_0x41b167][_0x8202('0x25')]][_0x8202('0x24')]('/')[0x2];_0x37a8d2[_0x8202('0x26')]=_0x37a8d2[_0x8202('0x27')]?_0x37a8d2[_0x8202('0x27')][_0x8202('0x24')]('$')[0x0]:undefined;_0x37a8d2[_0x8202('0x27')]=_0x5be03e[_0x8202('0x12')]?(_0x37a8d2[_0x8202('0x26')]||'')+_0x8202('0x13')+_0x5be03e[_0x8202('0x12')]+'}':(_0x37a8d2['prefix']||'')+_0x8202('0x28');_0x5cf6af[_0x391a49[_0x41b167][_0x8202('0x25')]]=[_0x8202('0x29'),_0x37a8d2[_0x8202('0x1f')],_0x37a8d2[_0x8202('0x27')]]['join']('/');break;case _0x8202('0x21'):_0x37a8d2[_0x8202('0x21')]=_0x502175[_0x391a49[_0x41b167][_0x8202('0x25')]];if(_0x5be03e['recordingFormat']!==_0x8202('0x1b')){if(_0x37a8d2[_0x8202('0x21')][_0x8202('0x2a')](_0x8202('0x2b'))<0x0){_0x37a8d2[_0x8202('0x21')]+=_0x8202('0x2b');}}else{_0x37a8d2[_0x8202('0x21')]=_0x37a8d2[_0x8202('0x21')][_0x8202('0x2c')]('U(xcally-mixmonitor-context)','');}_0x5cf6af[_0x391a49[_0x41b167]['param']]=_0x37a8d2[_0x8202('0x21')];break;default:_0x5cf6af[_0x391a49[_0x41b167][_0x8202('0x25')]]=_0x502175[_0x391a49[_0x41b167][_0x8202('0x25')]];}}return _0x5cf6af[_0x8202('0x2d')](',');}function _0x4b3781(_0x105d84,_0x5c634d,_0x3e0236){return new Promise(function(_0x2d9bcc,_0x47e5f6){var _0xdd7ef6=[];if(_[_0x8202('0x2e')](_0x5c634d))return _0x2d9bcc(_0xdd7ef6);_0x277061[_0x8202('0x2f')][_0x8202('0x30')]({'attributes':['id',_0x8202('0x31'),_0x8202('0x32')],'raw':!![]})[_0x8202('0x33')](function(_0x328718){for(var _0x3f090a=0x0,_0x103c51=0x0;_0x3f090a<_0x5c634d[_0x8202('0x34')];_0x3f090a++,_0x103c51=0x0){var _0x178752=_0x5c634d[_0x3f090a];var _0x56e394=[];var _0x238a45=[];delete _0x178752['id'];if(_0x178752['interval']!==_0x8202('0x35')){_0x178752[_0x8202('0x36')]=[_0x178752[_0x8202('0x31')]];}else{_0x178752[_0x8202('0x36')]=_0x178752['IntervalId']?_[_0x8202('0x37')](_[_0x8202('0x38')](_0x328718,{'IntervalId':_0x178752['IntervalId']}),_0x8202('0x31')):[];}_0x178752[_0x8202('0x9')]=_0x105d84[_0x8202('0x9')];_0x178752[_0x8202('0xa')]=_0x105d84[_0x8202('0xa')];if(_0x178752[_0x8202('0x2')])_0x178752[_0x8202('0x2')]=_0x178752['type'][_0x8202('0x39')]();if(_0x105d84[_0x8202('0x2')]===_0x8202('0x10')){if(_0x178752[_0x8202('0x3a')](_0x8202('0x3b'))&&_0x178752[_0x8202('0x3b')]&&_0x178752['tag']!=='--'){_0x56e394[_0x8202('0xb')]({'type':_0x178752[_0x8202('0x2')][_0x8202('0x39')](),'app':_0x8202('0x3'),'appdata':_0x8202('0x3c')+_0x178752[_0x8202('0x3b')],'context':_0x105d84[_0x8202('0x9')],'exten':_0x105d84['exten'],'priority':_0x178752[_0x8202('0x36')]['length']+_0x3e0236+_0x103c51++,'VoiceExtensionId':_0x105d84['id']});}_0x56e394['push']({'type':_0x178752[_0x8202('0x2')][_0x8202('0x39')](),'app':_0x8202('0x14'),'appdata':'$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):'+(_0x178752[_0x8202('0x3d')]?_0x8202('0x3e')+_0x178752[_0x8202('0x3d')]+')':_0x8202('0x3f')),'context':_0x105d84[_0x8202('0x9')],'exten':_0x105d84[_0x8202('0xa')],'priority':_0x178752[_0x8202('0x36')][_0x8202('0x34')]+_0x3e0236+_0x103c51++,'VoiceExtensionId':_0x105d84['id']});}else{if(_0x178752['hasOwnProperty'](_0x8202('0x40'))){if([_0x8202('0x41'),'playback'][_0x8202('0x42')](_0x178752[_0x8202('0x43')]['toLowerCase']())&&_0x178752[_0x8202('0x44')]!==_0x8202('0x45')){if(_0x178752[_0x8202('0x40')]){_0x56e394[_0x8202('0xb')]({'type':_0x178752[_0x8202('0x2')]['toLowerCase'](),'app':_0x8202('0x14'),'appdata':_0x8202('0x46'),'context':_0x105d84[_0x8202('0x9')],'exten':_0x105d84[_0x8202('0xa')],'priority':_0x178752[_0x8202('0x36')][_0x8202('0x34')]+_0x3e0236+_0x103c51++,'VoiceExtensionId':_0x105d84['id']});_0x56e394['push']({'type':_0x178752[_0x8202('0x2')]['toLowerCase'](),'app':_0x8202('0x3'),'appdata':_0x8202('0x47'),'context':_0x105d84[_0x8202('0x9')],'exten':_0x105d84[_0x8202('0xa')],'priority':_0x178752['intervals']['length']+_0x3e0236+_0x103c51++,'VoiceExtensionId':_0x105d84['id']});}else{_0x56e394[_0x8202('0xb')]({'type':_0x178752[_0x8202('0x2')][_0x8202('0x39')](),'app':_0x8202('0x14'),'appdata':_0x8202('0x48'),'context':_0x105d84['context'],'exten':_0x105d84[_0x8202('0xa')],'priority':_0x178752[_0x8202('0x36')][_0x8202('0x34')]+_0x3e0236+_0x103c51++,'VoiceExtensionId':_0x105d84['id']});_0x56e394[_0x8202('0xb')]({'type':_0x178752['type'][_0x8202('0x39')](),'app':_0x8202('0x3'),'appdata':_0x8202('0x49'),'context':_0x105d84[_0x8202('0x9')],'exten':_0x105d84[_0x8202('0xa')],'priority':_0x178752[_0x8202('0x36')][_0x8202('0x34')]+_0x3e0236+_0x103c51++,'VoiceExtensionId':_0x105d84['id']});}}}}for(var _0x5129b8=0x0;_0x5129b8<_0x178752[_0x8202('0x36')][_0x8202('0x34')];_0x5129b8++){var _0x132497=_0x3e0236+_0x178752[_0x8202('0x36')][_0x8202('0x34')];var _0x1ef264=_0x5129b8===_0x178752[_0x8202('0x36')][_0x8202('0x34')]-0x1?_0x3e0236+_0x56e394[_0x8202('0x34')]+_0x238a45[_0x8202('0x34')]+0x2:_0x3e0236+_0x5129b8+0x1;_0x56e394[_0x8202('0x4a')](_0x5129b8,0x0,{'type':_0x105d84['type'],'app':_0x8202('0x4b'),'appdata':_0x178752[_0x8202('0x36')][_0x5129b8]+'?'+_0x105d84[_0x8202('0x9')]+_0x8202('0x4c')+_0x132497+':'+_0x105d84[_0x8202('0x9')]+_0x8202('0x4c')+_0x1ef264,'exten':_0x105d84['exten'],'context':_0x105d84[_0x8202('0x9')],'priority':_0x3e0236+_0x5129b8,'VoiceExtensionId':_0x105d84['id']});}if(_0x178752[_0x8202('0x44')]===_0x8202('0x4d'))_0x178752[_0x8202('0x4e')]=_0x31d955(_0x105d84,_0x178752[_0x8202('0x4e')]);_0x178752[_0x8202('0x4f')]=_0x56e394[_0x8202('0x34')]?_[_0x8202('0x50')](_0x56e394)[_0x8202('0x4f')]+0x1:_0x3e0236;_0xdd7ef6=_['concat'](_0xdd7ef6,_0x56e394,[_0x178752],_0x238a45);_0x3e0236=_[_0x8202('0x50')](_0xdd7ef6)[_0x8202('0x4f')]+0x1;}return _0x2d9bcc(_0xdd7ef6);})['catch'](function(_0x4a4ae4){_0x47e5f6(_0x4a4ae4);});});}return _0x4e0fc5[_0x8202('0x51')](_0x8202('0x52'),attributes,{'tableName':_0x8202('0x53'),'paranoid':![],'indexes':[],'timestamps':!![],'instanceMethods':{'createRouting':function(_0x3502fb){var _0x2f7565=this[_0x8202('0x54')]({'plain':!![]});var _0x556523=_0x2f7565[_0x8202('0x2')]==='outbound'?_0xca0e7e(_0x2f7565):_0x10f405(_0x2f7565);return _0x4b3781(_0x2f7565,_0x3502fb,_[_0x8202('0x50')](_0x556523)[_0x8202('0x4f')]+0x1)[_0x8202('0x33')](function(_0x4b5da3){var _0xc5377b=_[_0x8202('0x55')](_0x556523,_0x4b5da3);_0xc5377b['push']({'type':_0x2f7565['type'],'app':_0x8202('0x56'),'exten':_0x2f7565[_0x8202('0xa')],'context':_0x2f7565['context'],'priority':_[_0x8202('0x50')](_0xc5377b)[_0x8202('0x4f')]+0x1,'VoiceExtensionId':_0x2f7565['id']});return _0xc5377b;});}}});};
\ No newline at end of file
+var _0x2c77=['${EXTEN:','${EXTEN}','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','CDR(prefix)=noprefix','MONITOR_OPTIONS=ab','outboundrouteid=','hasOwnProperty','recordingFormat','none','wav','timeout','options','url','trunk','param','phone','split','prefix','SIP','join','indexOf','U(xcally-mixmonitor-context)','replace','findAll','interval','IntervalId','then','length','*,*,*,*','intervals','toLowerCase','tag','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):','callerID','Set(CALLERID(all)=','NoOp(No\x20number\x20available)','playback','app','appType','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1','outboundDial','concat','last','priority','VoiceExtension','voice_extensions','Hangup','util','lodash','./voiceExtension.attributes','type','Set','CDR(type)=','context','exten','alias','NoOp','CDR(routeAlias)=','inbound','push','CDR(routeid)=','XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0','outbound','No\x20alias\x20set','CDR(destination)=','cutdigits'];(function(_0x378f75,_0x13a8ed){var _0x90addc=function(_0x3f4849){while(--_0x3f4849){_0x378f75['push'](_0x378f75['shift']());}};_0x90addc(++_0x13a8ed);}(_0x2c77,0x196));var _0x72c7=function(_0x5b6759,_0x11c2ee){_0x5b6759=_0x5b6759-0x0;var _0x339d49=_0x2c77[_0x5b6759];return _0x339d49;};'use strict';var util=require(_0x72c7('0x0'));var _=require(_0x72c7('0x1'));var attributes=require(_0x72c7('0x2'));module['exports']=function(_0x3df71b){var _0xcfa59c=_0x3df71b['models'];function _0x2fe903(_0x5392ad){var _0x1dba76=0x2;var _0x3fe366=[{'type':_0x5392ad[_0x72c7('0x3')],'app':_0x72c7('0x4'),'appdata':_0x72c7('0x5')+_0x5392ad[_0x72c7('0x3')],'context':_0x5392ad[_0x72c7('0x6')],'exten':_0x5392ad[_0x72c7('0x7')],'priority':_0x1dba76++,'VoiceExtensionId':_0x5392ad['id']},{'type':_0x5392ad[_0x72c7('0x3')],'app':_0x5392ad[_0x72c7('0x8')]?_0x72c7('0x4'):_0x72c7('0x9'),'appdata':_0x5392ad[_0x72c7('0x8')]?_0x72c7('0xa')+_0x5392ad[_0x72c7('0x8')]:'No\x20alias\x20set','context':_0x5392ad[_0x72c7('0x6')],'exten':_0x5392ad[_0x72c7('0x7')],'priority':_0x1dba76++,'VoiceExtensionId':_0x5392ad['id']}];if(_0x5392ad[_0x72c7('0x3')]===_0x72c7('0xb')){_0x3fe366[_0x72c7('0xc')]({'type':_0x72c7('0xb'),'app':_0x72c7('0x4'),'appdata':_0x72c7('0xd')+_0x5392ad['id'],'context':_0x5392ad[_0x72c7('0x6')],'exten':_0x5392ad['exten'],'priority':_0x1dba76++,'VoiceExtensionId':_0x5392ad['id']});}_0x3fe366[_0x72c7('0xc')]({'type':_0x5392ad['type'],'app':_0x72c7('0x4'),'appdata':_0x72c7('0xe'),'context':_0x5392ad[_0x72c7('0x6')],'exten':_0x5392ad[_0x72c7('0x7')],'priority':_0x1dba76++,'VoiceExtensionId':_0x5392ad['id']},{'type':_0x5392ad[_0x72c7('0x3')],'app':_0x72c7('0x4'),'appdata':_0x72c7('0xf'),'context':_0x5392ad['context'],'exten':_0x5392ad[_0x72c7('0x7')],'priority':_0x1dba76++,'VoiceExtensionId':_0x5392ad['id']},{'type':_0x5392ad[_0x72c7('0x3')],'app':_0x72c7('0x4'),'appdata':'MONITOR_OPTIONS=ab','context':_0x5392ad[_0x72c7('0x6')],'exten':_0x5392ad[_0x72c7('0x7')],'priority':_0x1dba76++,'VoiceExtensionId':_0x5392ad['id']});return _0x3fe366;}function _0x4636df(_0x53382d){var _0x14710f=0x2;var _0x1415d8=[{'type':_0x72c7('0x10'),'app':'Set','appdata':'CDR(type)=outbound','context':_0x53382d[_0x72c7('0x6')],'exten':_0x53382d['exten'],'priority':_0x14710f++,'VoiceExtensionId':_0x53382d['id']},{'type':_0x72c7('0x10'),'app':_0x53382d[_0x72c7('0x8')]?_0x72c7('0x4'):_0x72c7('0x9'),'appdata':_0x53382d[_0x72c7('0x8')]?_0x72c7('0xa')+_0x53382d[_0x72c7('0x8')]:_0x72c7('0x11'),'context':_0x53382d[_0x72c7('0x6')],'exten':_0x53382d[_0x72c7('0x7')],'priority':_0x14710f++,'VoiceExtensionId':_0x53382d['id']},{'type':_0x72c7('0x10'),'app':'Set','appdata':_0x72c7('0x12')+(_0x53382d[_0x72c7('0x13')]?_0x72c7('0x14')+_0x53382d[_0x72c7('0x13')]+'}':_0x72c7('0x15')),'context':_0x53382d[_0x72c7('0x6')],'exten':_0x53382d['exten'],'priority':_0x14710f++,'VoiceExtensionId':_0x53382d['id']},{'type':_0x72c7('0x10'),'app':_0x72c7('0x4'),'appdata':_0x72c7('0xd')+_0x53382d['id'],'context':_0x53382d[_0x72c7('0x6')],'exten':_0x53382d[_0x72c7('0x7')],'priority':_0x14710f++,'VoiceExtensionId':_0x53382d['id']},{'type':_0x72c7('0x10'),'app':_0x72c7('0x16'),'appdata':_0x72c7('0x17')+(_0x14710f+0x2)+'):Goto('+(_0x14710f+0x1)+')','context':_0x53382d[_0x72c7('0x6')],'exten':_0x53382d[_0x72c7('0x7')],'priority':_0x14710f++,'VoiceExtensionId':_0x53382d['id']},{'type':_0x72c7('0x10'),'app':_0x72c7('0x4'),'appdata':_0x53382d[_0x72c7('0x13')]?'CDR(prefix)=${EXTEN:0:'+_0x53382d['cutdigits']+'}':_0x72c7('0x18'),'context':_0x53382d[_0x72c7('0x6')],'exten':_0x53382d[_0x72c7('0x7')],'priority':_0x14710f++,'VoiceExtensionId':_0x53382d['id']},{'type':_0x72c7('0x10'),'app':'Set','appdata':'XCALLY-MOTION-ANSWER=0','context':_0x53382d[_0x72c7('0x6')],'exten':_0x53382d['exten'],'priority':_0x14710f++,'VoiceExtensionId':_0x53382d['id']},{'type':_0x72c7('0x10'),'app':_0x72c7('0x4'),'appdata':'XCALLY-MOTION-PROGRESS=0','context':_0x53382d[_0x72c7('0x6')],'exten':_0x53382d[_0x72c7('0x7')],'priority':_0x14710f++,'VoiceExtensionId':_0x53382d['id']},{'type':_0x72c7('0x10'),'app':_0x72c7('0x4'),'appdata':_0x72c7('0x19'),'context':_0x53382d[_0x72c7('0x6')],'exten':_0x53382d[_0x72c7('0x7')],'priority':_0x14710f++,'VoiceExtensionId':_0x53382d['id']},{'type':_0x72c7('0x10'),'app':'Set','appdata':_0x72c7('0x1a')+_0x53382d['id'],'context':_0x53382d['context'],'exten':_0x53382d['exten'],'priority':_0x14710f++,'VoiceExtensionId':_0x53382d['id']}];if(_0x53382d[_0x72c7('0x1b')](_0x72c7('0x1c'))&&_0x53382d['recordingFormat']!==_0x72c7('0x1d')){_0x1415d8[_0x72c7('0xc')]({'type':'outbound','app':'Set','appdata':'_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','context':_0x53382d[_0x72c7('0x6')],'exten':_0x53382d[_0x72c7('0x7')],'priority':_0x14710f++,'VoiceExtensionId':_0x53382d['id']},{'type':_0x72c7('0x10'),'app':_0x72c7('0x4'),'appdata':'_XCALLY_MIXMONITOR_FORMAT='+_0x53382d['recordingFormat']||_0x72c7('0x1e'),'context':_0x53382d[_0x72c7('0x6')],'exten':_0x53382d[_0x72c7('0x7')],'priority':_0x14710f++,'VoiceExtensionId':_0x53382d['id']});}return _0x1415d8;}function _0x5e372b(_0x2c373d){var _0x37cb13=[{'name':'trunk','param':0x0},{'name':_0x72c7('0x1f'),'param':0x1},{'name':_0x72c7('0x20'),'param':0x2},{'name':_0x72c7('0x21'),'param':0x3}];var _0x3c0b62={};var _0x284c21=_0x2c373d['split'](',');var _0x49ac62=[];for(var _0x2b2a7b=0x0;_0x2b2a7b<_0x37cb13['length'];_0x2b2a7b++){switch(_0x37cb13[_0x2b2a7b]['name']){case'trunk':_0x3c0b62[_0x72c7('0x22')]=_0x284c21[_0x37cb13[_0x2b2a7b][_0x72c7('0x23')]]['split']('/')[0x1];_0x3c0b62[_0x72c7('0x24')]=_0x284c21[_0x37cb13[_0x2b2a7b][_0x72c7('0x23')]][_0x72c7('0x25')]('/')[0x2];_0x3c0b62[_0x72c7('0x26')]=_0x3c0b62[_0x72c7('0x24')]?_0x3c0b62[_0x72c7('0x24')][_0x72c7('0x25')]('$')[0x0]:undefined;_0x3c0b62['phone']=route[_0x72c7('0x13')]?(_0x3c0b62[_0x72c7('0x26')]||'')+_0x72c7('0x14')+route[_0x72c7('0x13')]+'}':(_0x3c0b62['prefix']||'')+_0x72c7('0x15');_0x49ac62[_0x37cb13[_0x2b2a7b][_0x72c7('0x23')]]=[_0x72c7('0x27'),_0x3c0b62[_0x72c7('0x22')],_0x3c0b62[_0x72c7('0x24')]][_0x72c7('0x28')]('/');break;case _0x72c7('0x20'):_0x3c0b62[_0x72c7('0x20')]=_0x284c21[_0x37cb13[_0x2b2a7b][_0x72c7('0x23')]];if(route['recordingFormat']!==_0x72c7('0x1d')){if(_0x3c0b62[_0x72c7('0x20')][_0x72c7('0x29')](_0x72c7('0x2a'))<0x0){_0x3c0b62[_0x72c7('0x20')]+=_0x72c7('0x2a');}}else{_0x3c0b62[_0x72c7('0x20')]=_0x3c0b62[_0x72c7('0x20')][_0x72c7('0x2b')](_0x72c7('0x2a'),'');}_0x49ac62[_0x37cb13[_0x2b2a7b][_0x72c7('0x23')]]=_0x3c0b62[_0x72c7('0x20')];break;default:_0x49ac62[_0x37cb13[_0x2b2a7b][_0x72c7('0x23')]]=_0x284c21[_0x37cb13[_0x2b2a7b]['param']];}}return _0x49ac62[_0x72c7('0x28')](',');}function _0x161679(_0xd06c5a,_0x50bb3b,_0xcb2b56,_0x4ddd18){return new Promise(function(_0x5b381c,_0x4399c3){var _0x4829b6=[];if(_['isEmpty'](_0x50bb3b))return _0x5b381c(_0x4829b6);_0xcfa59c['Interval'][_0x72c7('0x2c')]({'attributes':['id',_0x72c7('0x2d'),_0x72c7('0x2e')],'raw':!![]})[_0x72c7('0x2f')](function(_0xd1eb5d){for(var _0x3d2b7f=0x0,_0x1aa33c=0x0;_0x3d2b7f<_0x50bb3b[_0x72c7('0x30')];_0x3d2b7f++,_0x1aa33c=0x0){var _0xbc7e1e=_0x50bb3b[_0x3d2b7f];var _0x4c36bd=[];var _0x1957e0=[];if(_0xbc7e1e[_0x72c7('0x2d')]!==_0x72c7('0x31')){_0xbc7e1e[_0x72c7('0x32')]=[_0xbc7e1e[_0x72c7('0x2d')]];}else{_0xbc7e1e[_0x72c7('0x32')]=_0xbc7e1e[_0x72c7('0x2e')]?_['map'](_['filter'](_0xd1eb5d,{'IntervalId':_0xbc7e1e[_0x72c7('0x2e')]}),_0x72c7('0x2d')):[];}_0xbc7e1e[_0x72c7('0x6')]=_0xd06c5a[_0x72c7('0x6')];_0xbc7e1e[_0x72c7('0x7')]=_0xd06c5a[_0x72c7('0x7')];if(_0xbc7e1e[_0x72c7('0x3')])_0xbc7e1e[_0x72c7('0x3')]=_0xbc7e1e[_0x72c7('0x3')][_0x72c7('0x33')]();if(_0xd06c5a[_0x72c7('0x3')]===_0x72c7('0x10')){if(_0xbc7e1e[_0x72c7('0x1b')](_0x72c7('0x34'))&&_0xbc7e1e['tag']&&_0xbc7e1e[_0x72c7('0x34')]!=='--'){_0x4c36bd[_0x72c7('0xc')]({'type':_0xbc7e1e[_0x72c7('0x3')][_0x72c7('0x33')](),'app':_0x72c7('0x4'),'appdata':'CDR(tag)='+_0xbc7e1e['tag'],'context':_0xd06c5a[_0x72c7('0x6')],'exten':_0xd06c5a[_0x72c7('0x7')],'priority':_0xbc7e1e['intervals'][_0x72c7('0x30')]+_0xcb2b56+_0x1aa33c++,'VoiceExtensionId':_0xd06c5a['id']});}_0x4c36bd[_0x72c7('0xc')]({'type':_0xbc7e1e['type']['toLowerCase'](),'app':_0x72c7('0x16'),'appdata':_0x72c7('0x35')+(_0xbc7e1e[_0x72c7('0x36')]?_0x72c7('0x37')+_0xbc7e1e[_0x72c7('0x36')]+')':_0x72c7('0x38')),'context':_0xd06c5a[_0x72c7('0x6')],'exten':_0xd06c5a[_0x72c7('0x7')],'priority':_0xbc7e1e['intervals'][_0x72c7('0x30')]+_0xcb2b56+_0x1aa33c++,'VoiceExtensionId':_0xd06c5a['id']});}else{if(_0xbc7e1e[_0x72c7('0x1b')]('answer')){if(['queue',_0x72c7('0x39')]['includes'](_0xbc7e1e[_0x72c7('0x3a')][_0x72c7('0x33')]())&&_0xbc7e1e[_0x72c7('0x3b')]!=='custom'){if(_0xbc7e1e['answer']){_0x4c36bd['push']({'type':_0xbc7e1e['type'][_0x72c7('0x33')](),'app':_0x72c7('0x16'),'appdata':_0x72c7('0x3c'),'context':_0xd06c5a[_0x72c7('0x6')],'exten':_0xd06c5a['exten'],'priority':_0xbc7e1e[_0x72c7('0x32')][_0x72c7('0x30')]+_0xcb2b56+_0x1aa33c++,'VoiceExtensionId':_0xd06c5a['id']});_0x4c36bd[_0x72c7('0xc')]({'type':_0xbc7e1e[_0x72c7('0x3')][_0x72c7('0x33')](),'app':_0x72c7('0x4'),'appdata':_0x72c7('0x3d'),'context':_0xd06c5a[_0x72c7('0x6')],'exten':_0xd06c5a['exten'],'priority':_0xbc7e1e[_0x72c7('0x32')][_0x72c7('0x30')]+_0xcb2b56+_0x1aa33c++,'VoiceExtensionId':_0xd06c5a['id']});}else{_0x4c36bd[_0x72c7('0xc')]({'type':_0xbc7e1e[_0x72c7('0x3')][_0x72c7('0x33')](),'app':_0x72c7('0x16'),'appdata':_0x72c7('0x3e'),'context':_0xd06c5a[_0x72c7('0x6')],'exten':_0xd06c5a[_0x72c7('0x7')],'priority':_0xbc7e1e['intervals']['length']+_0xcb2b56+_0x1aa33c++,'VoiceExtensionId':_0xd06c5a['id']});_0x4c36bd['push']({'type':_0xbc7e1e['type'][_0x72c7('0x33')](),'app':_0x72c7('0x4'),'appdata':_0x72c7('0x3f'),'context':_0xd06c5a[_0x72c7('0x6')],'exten':_0xd06c5a[_0x72c7('0x7')],'priority':_0xbc7e1e[_0x72c7('0x32')][_0x72c7('0x30')]+_0xcb2b56+_0x1aa33c++,'VoiceExtensionId':_0xd06c5a['id']});}}}}for(var _0x5c3bdc=0x0;_0x5c3bdc<_0xbc7e1e[_0x72c7('0x32')]['length'];_0x5c3bdc++){var _0x5693ce=_0xcb2b56+_0xbc7e1e[_0x72c7('0x32')]['length'];var _0x42e009=_0x5c3bdc===_0xbc7e1e[_0x72c7('0x32')][_0x72c7('0x30')]-0x1?_0xcb2b56+_0x4c36bd[_0x72c7('0x30')]+_0x1957e0[_0x72c7('0x30')]+0x2:_0xcb2b56+_0x5c3bdc+0x1;_0x4c36bd['splice'](_0x5c3bdc,0x0,{'type':_0xd06c5a[_0x72c7('0x3')],'app':'GotoIfTime','appdata':_0xbc7e1e[_0x72c7('0x32')][_0x5c3bdc]+'?'+_0xd06c5a[_0x72c7('0x6')]+',${EXTEN},'+_0x5693ce+':'+_0xd06c5a[_0x72c7('0x6')]+',${EXTEN},'+_0x42e009,'exten':_0xd06c5a[_0x72c7('0x7')],'context':_0xd06c5a[_0x72c7('0x6')],'priority':_0xcb2b56+_0x5c3bdc,'VoiceExtensionId':_0xd06c5a['id']});}if(_0x4ddd18&&_0xbc7e1e[_0x72c7('0x3b')]===_0x72c7('0x40'))_0xbc7e1e['appdata']=_0x5e372b(_0xbc7e1e['appdata']);_0xbc7e1e['priority']=_0x4c36bd[_0x72c7('0x30')]?_['last'](_0x4c36bd)['priority']+0x1:_0xcb2b56;_0x4829b6=_[_0x72c7('0x41')](_0x4829b6,_0x4c36bd,[_0xbc7e1e],_0x1957e0);_0xcb2b56=_[_0x72c7('0x42')](_0x4829b6)[_0x72c7('0x43')]+0x1;}return _0x5b381c(_0x4829b6);})['catch'](function(_0x2ac8f9){_0x4399c3(_0x2ac8f9);});});}return _0x3df71b['define'](_0x72c7('0x44'),attributes,{'tableName':_0x72c7('0x45'),'paranoid':![],'indexes':[],'timestamps':!![],'instanceMethods':{'createRouting':function(_0x44870f,_0x5adf62){var _0x7550c8=this;var _0x137956=_0x7550c8[_0x72c7('0x3')]===_0x72c7('0x10')?_0x4636df(_0x7550c8):_0x2fe903(_0x7550c8);return _0x161679(_0x7550c8,_0x44870f,_[_0x72c7('0x42')](_0x137956)[_0x72c7('0x43')]+0x1,_0x5adf62)['then'](function(_0x1d1913){var _0x4ebbbe=_[_0x72c7('0x41')](_0x137956,_0x1d1913);_0x4ebbbe[_0x72c7('0xc')]({'type':_0x7550c8[_0x72c7('0x3')],'app':_0x72c7('0x46'),'exten':_0x7550c8[_0x72c7('0x7')],'context':_0x7550c8[_0x72c7('0x6')],'priority':_['last'](_0x4ebbbe)['priority']+0x1,'VoiceExtensionId':_0x7550c8['id']});return _0x4ebbbe;});}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xad78=['socket.io-emitter','./voiceExtension.socket','register','request','then','info','VoiceExtension,\x20%s,\x20%s','request\x20sent','debug','VoiceExtension,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','GetVoiceExtension','findAll','raw','options','attributes','limit','include','model','map','catch','lodash','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults'];(function(_0x4ae625,_0xf396d0){var _0x31accf=function(_0x3ded6b){while(--_0x3ded6b){_0x4ae625['push'](_0x4ae625['shift']());}};_0x31accf(++_0xf396d0);}(_0xad78,0x149));var _0x8ad7=function(_0x262ba5,_0x10bb4d){_0x262ba5=_0x262ba5-0x0;var _0x5ad865=_0xad78[_0x262ba5];return _0x5ad865;};'use strict';var _=require(_0x8ad7('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0x8ad7('0x1'));var rs=require(_0x8ad7('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x8ad7('0x3'))['db'];var utils=require(_0x8ad7('0x4'));var logger=require(_0x8ad7('0x5'))(_0x8ad7('0x6'));var config=require(_0x8ad7('0x7'));var jayson=require(_0x8ad7('0x8'));var client=jayson[_0x8ad7('0x9')][_0x8ad7('0xa')]({'port':0x232a});config[_0x8ad7('0xb')]=_[_0x8ad7('0xc')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x8ad7('0xd'))(new Redis(config[_0x8ad7('0xb')]));require(_0x8ad7('0xe'))[_0x8ad7('0xf')](socket);function respondWithRpcPromise(_0x94c8cf,_0x1f7808,_0x22e528){return new BPromise(function(_0x4929ca,_0x36fad7){return client[_0x8ad7('0x10')](_0x94c8cf,_0x22e528)[_0x8ad7('0x11')](function(_0x5a51ba){logger[_0x8ad7('0x12')](_0x8ad7('0x13'),_0x1f7808,_0x8ad7('0x14'));logger[_0x8ad7('0x15')](_0x8ad7('0x16'),_0x1f7808,_0x8ad7('0x14'),JSON[_0x8ad7('0x17')](_0x5a51ba));if(_0x5a51ba[_0x8ad7('0x18')]){if(_0x5a51ba[_0x8ad7('0x18')][_0x8ad7('0x19')]===0x1f4){logger[_0x8ad7('0x18')]('VoiceExtension,\x20%s,\x20%s',_0x1f7808,_0x5a51ba['error'][_0x8ad7('0x1a')]);return _0x36fad7(_0x5a51ba['error'][_0x8ad7('0x1a')]);}logger[_0x8ad7('0x18')]('VoiceExtension,\x20%s,\x20%s',_0x1f7808,_0x5a51ba['error'][_0x8ad7('0x1a')]);return _0x4929ca(_0x5a51ba[_0x8ad7('0x18')][_0x8ad7('0x1a')]);}else{logger[_0x8ad7('0x12')](_0x8ad7('0x13'),_0x1f7808,_0x8ad7('0x14'));_0x4929ca(_0x5a51ba[_0x8ad7('0x1b')]['message']);}})['catch'](function(_0x5489e1){logger[_0x8ad7('0x18')]('VoiceExtension,\x20%s,\x20%s',_0x1f7808,_0x5489e1);_0x36fad7(_0x5489e1);});});}exports[_0x8ad7('0x1c')]=function(_0x5d9e45){var _0x41cdd7=this;return new Promise(function(_0x511d6c,_0x5db500){return db['VoiceExtension'][_0x8ad7('0x1d')]({'raw':_0x5d9e45['options']?_0x5d9e45['options'][_0x8ad7('0x1e')]===undefined?!![]:![]:!![],'where':_0x5d9e45[_0x8ad7('0x1f')]?_0x5d9e45[_0x8ad7('0x1f')]['where']||null:null,'attributes':_0x5d9e45[_0x8ad7('0x1f')]?_0x5d9e45[_0x8ad7('0x1f')][_0x8ad7('0x20')]||null:null,'limit':_0x5d9e45[_0x8ad7('0x1f')]?_0x5d9e45[_0x8ad7('0x1f')][_0x8ad7('0x21')]||null:null,'include':_0x5d9e45['options']?_0x5d9e45[_0x8ad7('0x1f')][_0x8ad7('0x22')]?_['map'](_0x5d9e45[_0x8ad7('0x1f')][_0x8ad7('0x22')],function(_0x23d7e5){return{'model':db[_0x23d7e5[_0x8ad7('0x23')]],'as':_0x23d7e5['as'],'attributes':_0x23d7e5[_0x8ad7('0x20')],'include':_0x23d7e5[_0x8ad7('0x22')]?_[_0x8ad7('0x24')](_0x23d7e5['include'],function(_0x508ac9){return{'model':db[_0x508ac9[_0x8ad7('0x23')]],'as':_0x508ac9['as'],'attributes':_0x508ac9['attributes'],'include':_0x508ac9[_0x8ad7('0x22')]?_[_0x8ad7('0x24')](_0x508ac9['include'],function(_0x27bbcb){return{'model':db[_0x27bbcb[_0x8ad7('0x23')]],'as':_0x27bbcb['as'],'attributes':_0x27bbcb[_0x8ad7('0x20')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x317c31){logger['info']('GetVoiceExtension',_0x5d9e45);logger['debug'](_0x8ad7('0x1c'),_0x5d9e45,JSON[_0x8ad7('0x17')](_0x317c31));_0x511d6c(_0x317c31);})[_0x8ad7('0x25')](function(_0x38f101){logger[_0x8ad7('0x18')](_0x8ad7('0x1c'),_0x38f101[_0x8ad7('0x1a')],_0x5d9e45);_0x5db500(_0x41cdd7[_0x8ad7('0x18')](0x1f4,_0x38f101[_0x8ad7('0x1a')]));});});};
\ No newline at end of file
+var _0xa13d=['raw','where','attributes','limit','include','map','model','lodash','moment','bluebird','ioredis','../../config/utils','../../config/logger','jayson/promise','client','redis','defaults','socket.io-emitter','./voiceExtension.socket','register','request','then','info','VoiceExtension,\x20%s,\x20%s','request\x20sent','debug','VoiceExtension,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','GetVoiceExtension','VoiceExtension','findAll','options'];(function(_0x1bb76d,_0x241409){var _0x516854=function(_0x448eae){while(--_0x448eae){_0x1bb76d['push'](_0x1bb76d['shift']());}};_0x516854(++_0x241409);}(_0xa13d,0x154));var _0xda13=function(_0x325112,_0x3646d7){_0x325112=_0x325112-0x0;var _0x3432f9=_0xa13d[_0x325112];return _0x3432f9;};'use strict';var _=require(_0xda13('0x0'));var util=require('util');var moment=require(_0xda13('0x1'));var BPromise=require(_0xda13('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xda13('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0xda13('0x4'));var logger=require(_0xda13('0x5'))('rpc');var config=require('../../config/environment');var jayson=require(_0xda13('0x6'));var client=jayson[_0xda13('0x7')]['http']({'port':0x232a});config[_0xda13('0x8')]=_[_0xda13('0x9')](config[_0xda13('0x8')],{'host':'localhost','port':0x18eb});var socket=require(_0xda13('0xa'))(new Redis(config[_0xda13('0x8')]));require(_0xda13('0xb'))[_0xda13('0xc')](socket);function respondWithRpcPromise(_0x1256f8,_0x29d821,_0xf307b6){return new BPromise(function(_0x202008,_0x139876){return client[_0xda13('0xd')](_0x1256f8,_0xf307b6)[_0xda13('0xe')](function(_0x3af482){logger[_0xda13('0xf')](_0xda13('0x10'),_0x29d821,_0xda13('0x11'));logger[_0xda13('0x12')](_0xda13('0x13'),_0x29d821,'request\x20sent',JSON[_0xda13('0x14')](_0x3af482));if(_0x3af482['error']){if(_0x3af482[_0xda13('0x15')][_0xda13('0x16')]===0x1f4){logger['error'](_0xda13('0x10'),_0x29d821,_0x3af482[_0xda13('0x15')][_0xda13('0x17')]);return _0x139876(_0x3af482[_0xda13('0x15')]['message']);}logger[_0xda13('0x15')](_0xda13('0x10'),_0x29d821,_0x3af482['error'][_0xda13('0x17')]);return _0x202008(_0x3af482['error'][_0xda13('0x17')]);}else{logger[_0xda13('0xf')](_0xda13('0x10'),_0x29d821,_0xda13('0x11'));_0x202008(_0x3af482[_0xda13('0x18')][_0xda13('0x17')]);}})[_0xda13('0x19')](function(_0x2790c8){logger['error'](_0xda13('0x10'),_0x29d821,_0x2790c8);_0x139876(_0x2790c8);});});}exports[_0xda13('0x1a')]=function(_0x19c00d){var _0x49cad2=this;return new Promise(function(_0x3ead85,_0x7a9700){return db[_0xda13('0x1b')][_0xda13('0x1c')]({'raw':_0x19c00d['options']?_0x19c00d[_0xda13('0x1d')][_0xda13('0x1e')]===undefined?!![]:![]:!![],'where':_0x19c00d[_0xda13('0x1d')]?_0x19c00d['options'][_0xda13('0x1f')]||null:null,'attributes':_0x19c00d[_0xda13('0x1d')]?_0x19c00d[_0xda13('0x1d')][_0xda13('0x20')]||null:null,'limit':_0x19c00d[_0xda13('0x1d')]?_0x19c00d[_0xda13('0x1d')][_0xda13('0x21')]||null:null,'include':_0x19c00d[_0xda13('0x1d')]?_0x19c00d['options'][_0xda13('0x22')]?_[_0xda13('0x23')](_0x19c00d[_0xda13('0x1d')][_0xda13('0x22')],function(_0x41cd49){return{'model':db[_0x41cd49['model']],'as':_0x41cd49['as'],'attributes':_0x41cd49['attributes'],'include':_0x41cd49[_0xda13('0x22')]?_['map'](_0x41cd49[_0xda13('0x22')],function(_0x386708){return{'model':db[_0x386708[_0xda13('0x24')]],'as':_0x386708['as'],'attributes':_0x386708[_0xda13('0x20')],'include':_0x386708[_0xda13('0x22')]?_[_0xda13('0x23')](_0x386708[_0xda13('0x22')],function(_0x206e00){return{'model':db[_0x206e00[_0xda13('0x24')]],'as':_0x206e00['as'],'attributes':_0x206e00['attributes']};}):[]};}):[]};}):[]:[]})[_0xda13('0xe')](function(_0x54c2f1){logger[_0xda13('0xf')](_0xda13('0x1a'),_0x19c00d);logger[_0xda13('0x12')](_0xda13('0x1a'),_0x19c00d,JSON['stringify'](_0x54c2f1));_0x3ead85(_0x54c2f1);})[_0xda13('0x19')](function(_0x383178){logger[_0xda13('0x15')](_0xda13('0x1a'),_0x383178[_0xda13('0x17')],_0x19c00d);_0x7a9700(_0x49cad2[_0xda13('0x15')](0x1f4,_0x383178[_0xda13('0x17')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x53ec=['length','voiceExtension:','./voiceExtension.events','save','remove','update','emit','removeListener'];(function(_0xaa393e,_0x3b82e5){var _0x44aa58=function(_0x145536){while(--_0x145536){_0xaa393e['push'](_0xaa393e['shift']());}};_0x44aa58(++_0x3b82e5);}(_0x53ec,0x192));var _0xc53e=function(_0x23cd5a,_0x45de7d){_0x23cd5a=_0x23cd5a-0x0;var _0x4e4719=_0x53ec[_0x23cd5a];return _0x4e4719;};'use strict';var VoiceExtensionEvents=require(_0xc53e('0x0'));var events=[_0xc53e('0x1'),_0xc53e('0x2'),_0xc53e('0x3')];function createListener(_0x1b04cc,_0xe45c6d){return function(_0x51c435){_0xe45c6d[_0xc53e('0x4')](_0x1b04cc,_0x51c435);};}function removeListener(_0x4e954a,_0x2b90f6){return function(){VoiceExtensionEvents[_0xc53e('0x5')](_0x4e954a,_0x2b90f6);};}exports['register']=function(_0x2f1414){for(var _0x4f989b=0x0,_0x41a9e8=events[_0xc53e('0x6')];_0x4f989b<_0x41a9e8;_0x4f989b++){var _0x5d3b28=events[_0x4f989b];var _0x1616ac=createListener(_0xc53e('0x7')+_0x5d3b28,_0x2f1414);VoiceExtensionEvents['on'](_0x5d3b28,_0x1616ac);}};
\ No newline at end of file
+var _0x2ef3=['update','emit','removeListener','register','length','voiceExtension:','./voiceExtension.events','save','remove'];(function(_0x564adf,_0x861a9){var _0x506f27=function(_0x1d7327){while(--_0x1d7327){_0x564adf['push'](_0x564adf['shift']());}};_0x506f27(++_0x861a9);}(_0x2ef3,0xba));var _0x32ef=function(_0x13ddff,_0x31c86f){_0x13ddff=_0x13ddff-0x0;var _0x34467f=_0x2ef3[_0x13ddff];return _0x34467f;};'use strict';var VoiceExtensionEvents=require(_0x32ef('0x0'));var events=[_0x32ef('0x1'),_0x32ef('0x2'),_0x32ef('0x3')];function createListener(_0x3944df,_0x38047b){return function(_0x48106c){_0x38047b[_0x32ef('0x4')](_0x3944df,_0x48106c);};}function removeListener(_0x38b7f3,_0x524ab6){return function(){VoiceExtensionEvents[_0x32ef('0x5')](_0x38b7f3,_0x524ab6);};}exports[_0x32ef('0x6')]=function(_0x4c8104){for(var _0x5dfa09=0x0,_0x2c0089=events[_0x32ef('0x7')];_0x5dfa09<_0x2c0089;_0x5dfa09++){var _0x367c39=events[_0x5dfa09];var _0x2fb8eb=createListener(_0x32ef('0x8')+_0x367c39,_0x4c8104);VoiceExtensionEvents['on'](_0x367c39,_0x2fb8eb);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8aad=['delete','destroy','exports','multer','util','connect-timeout','Router','fs-extra','../../config/environment','isAuthenticated','index','get','show','/:id/messages','post','create','put','/:id','update'];(function(_0x24ba6d,_0x261d91){var _0x344124=function(_0x161797){while(--_0x161797){_0x24ba6d['push'](_0x24ba6d['shift']());}};_0x344124(++_0x261d91);}(_0x8aad,0x146));var _0xd8aa=function(_0x4173f5,_0x4dee8d){_0x4173f5=_0x4173f5-0x0;var _0x4f4bff=_0x8aad[_0x4173f5];return _0x4f4bff;};'use strict';var multer=require(_0xd8aa('0x0'));var util=require(_0xd8aa('0x1'));var path=require('path');var timeout=require(_0xd8aa('0x2'));var express=require('express');var router=express[_0xd8aa('0x3')]();var fs_extra=require(_0xd8aa('0x4'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0xd8aa('0x5'));var controller=require('./voiceMail.controller');router['get']('/',auth[_0xd8aa('0x6')](),controller[_0xd8aa('0x7')]);router[_0xd8aa('0x8')]('/:id',auth[_0xd8aa('0x6')](),controller[_0xd8aa('0x9')]);router[_0xd8aa('0x8')](_0xd8aa('0xa'),auth['isAuthenticated'](),controller['getMessages']);router[_0xd8aa('0xb')]('/',auth[_0xd8aa('0x6')](),controller[_0xd8aa('0xc')]);router[_0xd8aa('0xd')](_0xd8aa('0xe'),auth['isAuthenticated'](),controller[_0xd8aa('0xf')]);router[_0xd8aa('0x10')](_0xd8aa('0xe'),auth[_0xd8aa('0x6')](),controller[_0xd8aa('0x11')]);module[_0xd8aa('0x12')]=router;
\ No newline at end of file
+var _0x4c60=['exports','multer','util','path','connect-timeout','Router','./voiceMail.controller','get','isAuthenticated','index','/:id','/:id/messages','getMessages','put','update','destroy'];(function(_0x1bbae2,_0xd2886c){var _0x222775=function(_0x30f6fc){while(--_0x30f6fc){_0x1bbae2['push'](_0x1bbae2['shift']());}};_0x222775(++_0xd2886c);}(_0x4c60,0xc1));var _0x04c6=function(_0x4adad0,_0x5840c3){_0x4adad0=_0x4adad0-0x0;var _0x57b347=_0x4c60[_0x4adad0];return _0x57b347;};'use strict';var multer=require(_0x04c6('0x0'));var util=require(_0x04c6('0x1'));var path=require(_0x04c6('0x2'));var timeout=require(_0x04c6('0x3'));var express=require('express');var router=express[_0x04c6('0x4')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0x04c6('0x5'));router[_0x04c6('0x6')]('/',auth[_0x04c6('0x7')](),controller[_0x04c6('0x8')]);router[_0x04c6('0x6')](_0x04c6('0x9'),auth[_0x04c6('0x7')](),controller['show']);router[_0x04c6('0x6')](_0x04c6('0xa'),auth[_0x04c6('0x7')](),controller[_0x04c6('0xb')]);router['post']('/',auth['isAuthenticated'](),controller['create']);router[_0x04c6('0xc')]('/:id',auth[_0x04c6('0x7')](),controller[_0x04c6('0xd')]);router['delete'](_0x04c6('0x9'),auth[_0x04c6('0x7')](),controller[_0x04c6('0xe')]);module[_0x04c6('0xf')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2044=['INTEGER','getDataValue','fullname','\x20-\x20','mailbox','sequelize','exports','STRING','from-voicemail','contest_mailbox','email','string','trim','central','yes','ENUM','TINYINT(4)'];(function(_0x5e96d2,_0x1ab6bb){var _0x2bde36=function(_0x2c10a9){while(--_0x2c10a9){_0x5e96d2['push'](_0x5e96d2['shift']());}};_0x2bde36(++_0x1ab6bb);}(_0x2044,0x1bf));var _0x4204=function(_0x461431,_0x45c3ff){_0x461431=_0x461431-0x0;var _0x4fb41d=_0x2044[_0x461431];return _0x4fb41d;};'use strict';var Sequelize=require(_0x4204('0x0'));module[_0x4204('0x1')]={'customer_id':{'type':Sequelize['STRING']},'context':{'type':Sequelize[_0x4204('0x2')],'defaultValue':_0x4204('0x3'),'unique':'contest_mailbox'},'mailbox':{'type':Sequelize[_0x4204('0x2')],'defaultValue':'','allowNull':![],'unique':_0x4204('0x4')},'password':{'type':Sequelize['STRING']},'fullname':{'type':Sequelize[_0x4204('0x2')]},'email':{'type':Sequelize['STRING'],'validate':{'isEmail':!![]},'set':function(_0x453dac){this['setDataValue'](_0x4204('0x5'),typeof _0x453dac===_0x4204('0x6')&&_0x453dac[_0x4204('0x7')]()?_0x453dac[_0x4204('0x7')]():null);}},'pager':{'type':Sequelize[_0x4204('0x2')]},'tz':{'type':Sequelize['STRING'],'defaultValue':_0x4204('0x8')},'attach':{'type':Sequelize['ENUM'](_0x4204('0x9'),'no'),'defaultValue':_0x4204('0x9'),'allowNull':![]},'saycid':{'type':Sequelize[_0x4204('0xa')](_0x4204('0x9'),'no'),'defaultValue':_0x4204('0x9'),'allowNull':![]},'dialout':{'type':Sequelize[_0x4204('0x2')]},'callback':{'type':Sequelize[_0x4204('0x2')]},'review':{'type':Sequelize['ENUM'](_0x4204('0x9'),'no'),'defaultValue':'no','allowNull':![]},'operator':{'type':Sequelize[_0x4204('0xa')](_0x4204('0x9'),'no'),'defaultValue':'no','allowNull':![]},'envelope':{'type':Sequelize[_0x4204('0xa')](_0x4204('0x9'),'no'),'defaultValue':'no','allowNull':![]},'sayduration':{'type':Sequelize[_0x4204('0xa')](_0x4204('0x9'),'no'),'defaultValue':'no','allowNull':![]},'saydurationm':{'type':_0x4204('0xb'),'defaultValue':0x1,'allowNull':![]},'sendvoicemail':{'type':Sequelize['ENUM'](_0x4204('0x9'),'no'),'defaultValue':'no','allowNull':![]},'delete':{'type':Sequelize[_0x4204('0xa')](_0x4204('0x9'),'no'),'defaultValue':'no','allowNull':![]},'nextaftercmd':{'type':Sequelize['ENUM'](_0x4204('0x9'),'no'),'defaultValue':_0x4204('0x9'),'allowNull':![]},'forcename':{'type':Sequelize[_0x4204('0xa')]('yes','no'),'defaultValue':'no','allowNull':![]},'forcegreetings':{'type':Sequelize[_0x4204('0xa')](_0x4204('0x9'),'no'),'defaultValue':'no','allowNull':![]},'hidefromdir':{'type':Sequelize[_0x4204('0xa')]('yes','no'),'defaultValue':_0x4204('0x9'),'allowNull':![]},'stamp':{'type':'TIMESTAMP'},'emailsubject':{'type':Sequelize[_0x4204('0x2')]},'emailbody':{'type':Sequelize[_0x4204('0x2')]},'maxsecs':{'type':Sequelize[_0x4204('0xc')](0xff),'defaultValue':0xb4,'allowNull':![]},'maxmsg':{'type':Sequelize[_0x4204('0xc')](0xff),'defaultValue':0x64,'allowNull':![]},'name':{'type':Sequelize['VIRTUAL'],'get':function(){return this[_0x4204('0xd')](_0x4204('0xe'))+_0x4204('0xf')+this[_0x4204('0xd')](_0x4204('0x10'));}}};
\ No newline at end of file
+var _0xf66c=['INTEGER','VIRTUAL','getDataValue','fullname','\x20-\x20','mailbox','exports','STRING','contest_mailbox','string','trim','ENUM','yes'];(function(_0x1cacbc,_0x1ea422){var _0x252031=function(_0x1101cd){while(--_0x1101cd){_0x1cacbc['push'](_0x1cacbc['shift']());}};_0x252031(++_0x1ea422);}(_0xf66c,0x7b));var _0xcf66=function(_0x3069df,_0x4a9393){_0x3069df=_0x3069df-0x0;var _0x52b7c3=_0xf66c[_0x3069df];return _0x52b7c3;};'use strict';var Sequelize=require('sequelize');module[_0xcf66('0x0')]={'customer_id':{'type':Sequelize[_0xcf66('0x1')]},'context':{'type':Sequelize[_0xcf66('0x1')],'defaultValue':'from-voicemail','unique':_0xcf66('0x2')},'mailbox':{'type':Sequelize['STRING'],'defaultValue':'','allowNull':![],'unique':'contest_mailbox'},'password':{'type':Sequelize['STRING']},'fullname':{'type':Sequelize[_0xcf66('0x1')]},'email':{'type':Sequelize[_0xcf66('0x1')],'validate':{'isEmail':!![]},'set':function(_0x3317be){this['setDataValue']('email',typeof _0x3317be===_0xcf66('0x3')&&_0x3317be[_0xcf66('0x4')]()?_0x3317be[_0xcf66('0x4')]():null);}},'pager':{'type':Sequelize[_0xcf66('0x1')]},'tz':{'type':Sequelize[_0xcf66('0x1')],'defaultValue':'central'},'attach':{'type':Sequelize[_0xcf66('0x5')]('yes','no'),'defaultValue':_0xcf66('0x6'),'allowNull':![]},'saycid':{'type':Sequelize[_0xcf66('0x5')](_0xcf66('0x6'),'no'),'defaultValue':_0xcf66('0x6'),'allowNull':![]},'dialout':{'type':Sequelize[_0xcf66('0x1')]},'callback':{'type':Sequelize['STRING']},'review':{'type':Sequelize[_0xcf66('0x5')](_0xcf66('0x6'),'no'),'defaultValue':'no','allowNull':![]},'operator':{'type':Sequelize['ENUM'](_0xcf66('0x6'),'no'),'defaultValue':'no','allowNull':![]},'envelope':{'type':Sequelize[_0xcf66('0x5')](_0xcf66('0x6'),'no'),'defaultValue':'no','allowNull':![]},'sayduration':{'type':Sequelize[_0xcf66('0x5')](_0xcf66('0x6'),'no'),'defaultValue':'no','allowNull':![]},'saydurationm':{'type':'TINYINT(4)','defaultValue':0x1,'allowNull':![]},'sendvoicemail':{'type':Sequelize[_0xcf66('0x5')]('yes','no'),'defaultValue':'no','allowNull':![]},'delete':{'type':Sequelize[_0xcf66('0x5')](_0xcf66('0x6'),'no'),'defaultValue':'no','allowNull':![]},'nextaftercmd':{'type':Sequelize['ENUM']('yes','no'),'defaultValue':_0xcf66('0x6'),'allowNull':![]},'forcename':{'type':Sequelize[_0xcf66('0x5')](_0xcf66('0x6'),'no'),'defaultValue':'no','allowNull':![]},'forcegreetings':{'type':Sequelize[_0xcf66('0x5')](_0xcf66('0x6'),'no'),'defaultValue':'no','allowNull':![]},'hidefromdir':{'type':Sequelize['ENUM']('yes','no'),'defaultValue':_0xcf66('0x6'),'allowNull':![]},'stamp':{'type':'TIMESTAMP'},'emailsubject':{'type':Sequelize[_0xcf66('0x1')]},'emailbody':{'type':Sequelize[_0xcf66('0x1')]},'maxsecs':{'type':Sequelize[_0xcf66('0x7')](0xff),'defaultValue':0xb4,'allowNull':![]},'maxmsg':{'type':Sequelize[_0xcf66('0x7')](0xff),'defaultValue':0x64,'allowNull':![]},'name':{'type':Sequelize[_0xcf66('0x8')],'get':function(){return this[_0xcf66('0x9')](_0xcf66('0xa'))+_0xcf66('0xb')+this[_0xcf66('0x9')](_0xcf66('0xc'));}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb574=['filter','merge','VoiceMail','includeAll','findAll','rows','catch','show','params','intersection','include','options','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','autoAssociation','body','length','pick','eml-format','rimraf','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','fs-extra','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../mysqldb','sendStatus','status','end','json','undefined','limit','count','offset','set','Content-Range','reject','save','update','then','destroy','get','Voicemails','error','stack','name','send','map','rawAttributes','fieldName','type','query','keys','filters','model','attributes','fields','hasOwnProperty','nolimit','order','sort','where'];(function(_0x238830,_0x545f75){var _0x5917f0=function(_0x12f821){while(--_0x12f821){_0x238830['push'](_0x238830['shift']());}};_0x5917f0(++_0x545f75);}(_0xb574,0x106));var _0x4b57=function(_0xb2fd45,_0x56de72){_0xb2fd45=_0xb2fd45-0x0;var _0x3ed913=_0xb574[_0xb2fd45];return _0x3ed913;};'use strict';var emlformat=require(_0x4b57('0x0'));var rimraf=require(_0x4b57('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x4b57('0x2'));var rp=require(_0x4b57('0x3'));var moment=require('moment');var BPromise=require(_0x4b57('0x4'));var Mustache=require(_0x4b57('0x5'));var util=require(_0x4b57('0x6'));var path=require(_0x4b57('0x7'));var sox=require(_0x4b57('0x8'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x4b57('0x9'));var _=require('lodash');var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x4b57('0xa'));var toCsv=require(_0x4b57('0xb'));var querystring=require(_0x4b57('0xc'));var Papa=require(_0x4b57('0xd'));var Redis=require(_0x4b57('0xe'));var authService=require(_0x4b57('0xf'));var qs=require(_0x4b57('0x10'));var as=require(_0x4b57('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x4b57('0x12'))(_0x4b57('0x13'));var utils=require(_0x4b57('0x14'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x4b57('0x15'))['db'];function respondWithStatusCode(_0x357c8b,_0x43d066){_0x43d066=_0x43d066||0xcc;return function(_0xf8a6fc){if(_0xf8a6fc){return _0x357c8b[_0x4b57('0x16')](_0x43d066);}return _0x357c8b[_0x4b57('0x17')](_0x43d066)[_0x4b57('0x18')]();};}function respondWithResult(_0xd5ee6d,_0x31cced){_0x31cced=_0x31cced||0xc8;return function(_0x4e15be){if(_0x4e15be){return _0xd5ee6d['status'](_0x31cced)[_0x4b57('0x19')](_0x4e15be);}};}function respondWithFilteredResult(_0x24f776,_0x10b9ff){return function(_0x58d6bd){if(_0x58d6bd){var _0x284640=typeof _0x10b9ff['offset']===_0x4b57('0x1a')&&typeof _0x10b9ff[_0x4b57('0x1b')]===_0x4b57('0x1a');var _0x10eda5=_0x58d6bd[_0x4b57('0x1c')];var _0xfb71cc=_0x284640?0x0:_0x10b9ff['offset'];var _0x1b35ff=_0x284640?_0x58d6bd[_0x4b57('0x1c')]:_0x10b9ff[_0x4b57('0x1d')]+_0x10b9ff[_0x4b57('0x1b')];var _0x4baaeb;if(_0x1b35ff>=_0x10eda5){_0x1b35ff=_0x10eda5;_0x4baaeb=0xc8;}else{_0x4baaeb=0xce;}_0x24f776[_0x4b57('0x17')](_0x4baaeb);return _0x24f776[_0x4b57('0x1e')](_0x4b57('0x1f'),_0xfb71cc+'-'+_0x1b35ff+'/'+_0x10eda5)[_0x4b57('0x19')](_0x58d6bd);}return null;};}function patchUpdates(_0xef1eae){return function(_0x4454c8){try{jsonpatch['apply'](_0x4454c8,_0xef1eae,!![]);}catch(_0x4b504b){return BPromise[_0x4b57('0x20')](_0x4b504b);}return _0x4454c8[_0x4b57('0x21')]();};}function saveUpdates(_0x567d8f,_0x380554){return function(_0x4a34b2){if(_0x4a34b2){return _0x4a34b2[_0x4b57('0x22')](_0x567d8f)[_0x4b57('0x23')](function(_0x56f017){return _0x56f017;});}return null;};}function removeEntity(_0x271361,_0x368c5f){return function(_0x4d07c9){if(_0x4d07c9){return _0x4d07c9[_0x4b57('0x24')]()[_0x4b57('0x23')](function(){var _0x25d190=_0x4d07c9[_0x4b57('0x25')]({'plain':!![]});var _0x540eff=_0x4b57('0x26');return db['UserProfileResource'][_0x4b57('0x24')]({'where':{'type':_0x540eff,'resourceId':_0x25d190['id']}})['then'](function(){return _0x4d07c9;});})[_0x4b57('0x23')](function(){_0x271361[_0x4b57('0x17')](0xcc)[_0x4b57('0x18')]();});}};}function handleEntityNotFound(_0x6584c4,_0x104f52){return function(_0x392e37){if(!_0x392e37){_0x6584c4['sendStatus'](0x194);}return _0x392e37;};}function handleError(_0x5c3c7a,_0x16d196){_0x16d196=_0x16d196||0x1f4;return function(_0x4c58e4){logger[_0x4b57('0x27')](_0x4c58e4[_0x4b57('0x28')]);if(_0x4c58e4[_0x4b57('0x29')]){delete _0x4c58e4[_0x4b57('0x29')];}_0x5c3c7a[_0x4b57('0x17')](_0x16d196)[_0x4b57('0x2a')](_0x4c58e4);};}exports['index']=function(_0xab365c,_0x2e9922){var _0x68be27={},_0x3cd331={},_0x4ccf89={'count':0x0,'rows':[]};var _0xa91ba=_[_0x4b57('0x2b')](db['VoiceMail'][_0x4b57('0x2c')],function(_0xa5b5dc){return{'name':_0xa5b5dc[_0x4b57('0x2d')],'type':_0xa5b5dc[_0x4b57('0x2e')]['key']};});_0x3cd331['model']=_['map'](_0xa91ba,_0x4b57('0x29'));_0x3cd331[_0x4b57('0x2f')]=_[_0x4b57('0x30')](_0xab365c[_0x4b57('0x2f')]);_0x3cd331[_0x4b57('0x31')]=_['intersection'](_0x3cd331[_0x4b57('0x32')],_0x3cd331[_0x4b57('0x2f')]);_0x68be27[_0x4b57('0x33')]=_['intersection'](_0x3cd331[_0x4b57('0x32')],qs[_0x4b57('0x34')](_0xab365c[_0x4b57('0x2f')]['fields']));_0x68be27[_0x4b57('0x33')]=_0x68be27[_0x4b57('0x33')]['length']?_0x68be27[_0x4b57('0x33')]:_0x3cd331[_0x4b57('0x32')];if(!_0xab365c[_0x4b57('0x2f')][_0x4b57('0x35')](_0x4b57('0x36'))){_0x68be27[_0x4b57('0x1b')]=qs['limit'](_0xab365c[_0x4b57('0x2f')][_0x4b57('0x1b')]);_0x68be27[_0x4b57('0x1d')]=qs[_0x4b57('0x1d')](_0xab365c[_0x4b57('0x2f')][_0x4b57('0x1d')]);}_0x68be27[_0x4b57('0x37')]=qs['sort'](_0xab365c['query'][_0x4b57('0x38')]);_0x68be27[_0x4b57('0x39')]=qs[_0x4b57('0x31')](_['pick'](_0xab365c[_0x4b57('0x2f')],_0x3cd331[_0x4b57('0x31')]),_0xa91ba);if(_0xab365c[_0x4b57('0x2f')][_0x4b57('0x3a')]){_0x68be27['where']=_[_0x4b57('0x3b')](_0x68be27[_0x4b57('0x39')],{'$or':_[_0x4b57('0x2b')](_0xa91ba,function(_0x2d24ab){if(_0x2d24ab['type']!=='VIRTUAL'){var _0x5d624c={};_0x5d624c[_0x2d24ab[_0x4b57('0x29')]]={'$like':'%'+_0xab365c[_0x4b57('0x2f')][_0x4b57('0x3a')]+'%'};return _0x5d624c;}})});}_0x68be27=_[_0x4b57('0x3b')]({},_0x68be27,_0xab365c['options']);var _0x445353={'where':_0x68be27[_0x4b57('0x39')]};return db[_0x4b57('0x3c')][_0x4b57('0x1c')](_0x445353)[_0x4b57('0x23')](function(_0x453129){_0x4ccf89[_0x4b57('0x1c')]=_0x453129;if(_0xab365c[_0x4b57('0x2f')][_0x4b57('0x3d')]){_0x68be27['include']=[{'all':!![]}];}return db[_0x4b57('0x3c')][_0x4b57('0x3e')](_0x68be27);})[_0x4b57('0x23')](function(_0x5b2f50){_0x4ccf89[_0x4b57('0x3f')]=_0x5b2f50;return _0x4ccf89;})['then'](respondWithFilteredResult(_0x2e9922,_0x68be27))[_0x4b57('0x40')](handleError(_0x2e9922,null));};exports[_0x4b57('0x41')]=function(_0x457273,_0x19ba66){var _0x189fd0={'raw':!![],'where':{'id':_0x457273[_0x4b57('0x42')]['id']}},_0x477352={};_0x477352[_0x4b57('0x32')]=_[_0x4b57('0x30')](db[_0x4b57('0x3c')][_0x4b57('0x2c')]);_0x477352[_0x4b57('0x2f')]=_[_0x4b57('0x30')](_0x457273['query']);_0x477352['filters']=_[_0x4b57('0x43')](_0x477352[_0x4b57('0x32')],_0x477352[_0x4b57('0x2f')]);_0x189fd0[_0x4b57('0x33')]=_['intersection'](_0x477352[_0x4b57('0x32')],qs[_0x4b57('0x34')](_0x457273['query'][_0x4b57('0x34')]));_0x189fd0['attributes']=_0x189fd0[_0x4b57('0x33')]['length']?_0x189fd0['attributes']:_0x477352[_0x4b57('0x32')];if(_0x457273[_0x4b57('0x2f')]['includeAll']){_0x189fd0[_0x4b57('0x44')]=[{'all':!![]}];}_0x189fd0=_[_0x4b57('0x3b')]({},_0x189fd0,_0x457273[_0x4b57('0x45')]);return db[_0x4b57('0x3c')][_0x4b57('0x46')](_0x189fd0)[_0x4b57('0x23')](handleEntityNotFound(_0x19ba66,null))['then'](respondWithResult(_0x19ba66,null))[_0x4b57('0x40')](handleError(_0x19ba66,null));};exports[_0x4b57('0x47')]=function(_0x4a632c,_0xd529fb){return db[_0x4b57('0x3c')][_0x4b57('0x47')](_0x4a632c['body'],{})[_0x4b57('0x23')](function(_0x5cba5f){var _0x213dca=_0x4a632c[_0x4b57('0x48')][_0x4b57('0x25')]({'plain':!![]});if(!_0x213dca)throw new Error(_0x4b57('0x49'));if(_0x213dca[_0x4b57('0x4a')]===_0x4b57('0x48')){var _0x3d1ecd=_0x5cba5f[_0x4b57('0x25')]({'plain':!![]});var _0x5ab120=_0x4b57('0x26');return db[_0x4b57('0x4b')][_0x4b57('0x46')]({'where':{'name':_0x5ab120,'userProfileId':_0x213dca['userProfileId']},'raw':!![]})[_0x4b57('0x23')](function(_0xcf72b6){if(_0xcf72b6&&_0xcf72b6[_0x4b57('0x4c')]===0x0){return db['UserProfileResource'][_0x4b57('0x47')]({'name':_0x3d1ecd[_0x4b57('0x29')],'resourceId':_0x3d1ecd['id'],'type':_0xcf72b6[_0x4b57('0x29')],'sectionId':_0xcf72b6['id']},{})[_0x4b57('0x23')](function(){return _0x5cba5f;});}else{return _0x5cba5f;}})[_0x4b57('0x40')](function(_0xb7c37c){logger[_0x4b57('0x27')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0xb7c37c);throw _0xb7c37c;});}return _0x5cba5f;})['then'](respondWithResult(_0xd529fb,0xc9))[_0x4b57('0x40')](handleError(_0xd529fb,null));};exports[_0x4b57('0x22')]=function(_0x3b4cbf,_0x2e64c2){if(_0x3b4cbf['body']['id']){delete _0x3b4cbf[_0x4b57('0x4d')]['id'];}return db[_0x4b57('0x3c')][_0x4b57('0x46')]({'where':{'id':_0x3b4cbf[_0x4b57('0x42')]['id']}})['then'](handleEntityNotFound(_0x2e64c2,null))['then'](saveUpdates(_0x3b4cbf[_0x4b57('0x4d')],null))[_0x4b57('0x23')](respondWithResult(_0x2e64c2,null))['catch'](handleError(_0x2e64c2,null));};exports['destroy']=function(_0x451737,_0x5c1082){return db[_0x4b57('0x3c')][_0x4b57('0x46')]({'where':{'id':_0x451737[_0x4b57('0x42')]['id']}})[_0x4b57('0x23')](handleEntityNotFound(_0x5c1082,null))[_0x4b57('0x23')](removeEntity(_0x5c1082,null))['catch'](handleError(_0x5c1082,null));};exports['getMessages']=function(_0x54ff9d,_0x4c241a,_0x179802){return db[_0x4b57('0x3c')]['findOne']({'where':{'id':_0x54ff9d[_0x4b57('0x42')]['id']}})[_0x4b57('0x23')](handleEntityNotFound(_0x4c241a,null))[_0x4b57('0x23')](function(_0x9ed750){var _0x64b0fd;var _0x1fcc10={},_0xf1bf63={};_0xf1bf63[_0x4b57('0x32')]=_[_0x4b57('0x30')](db['VoiceMailMessage'][_0x4b57('0x2c')]);_0xf1bf63['query']=_[_0x4b57('0x30')](_0x54ff9d[_0x4b57('0x2f')]);_0xf1bf63['filters']=_[_0x4b57('0x43')](_0xf1bf63[_0x4b57('0x32')],_0xf1bf63[_0x4b57('0x2f')]);_0x1fcc10[_0x4b57('0x33')]=_[_0x4b57('0x43')](_0xf1bf63[_0x4b57('0x32')],qs[_0x4b57('0x34')](_0x54ff9d[_0x4b57('0x2f')][_0x4b57('0x34')]));_0x1fcc10[_0x4b57('0x33')]=_0x1fcc10[_0x4b57('0x33')][_0x4b57('0x4e')]?_0x1fcc10['attributes']:_0xf1bf63[_0x4b57('0x32')];if(!_0x54ff9d[_0x4b57('0x2f')]['hasOwnProperty'](_0x4b57('0x36'))){_0x1fcc10['limit']=qs['limit'](_0x54ff9d['query'][_0x4b57('0x1b')]);_0x1fcc10['offset']=qs[_0x4b57('0x1d')](_0x54ff9d[_0x4b57('0x2f')]['offset']);}_0x1fcc10['order']=qs[_0x4b57('0x38')](_0x54ff9d[_0x4b57('0x2f')][_0x4b57('0x38')]);_0x1fcc10['where']=qs[_0x4b57('0x31')](_[_0x4b57('0x4f')](_0x54ff9d['query'],_0xf1bf63[_0x4b57('0x31')]));if(_0x54ff9d[_0x4b57('0x2f')]['filter']){_0x1fcc10[_0x4b57('0x39')]=_[_0x4b57('0x3b')](_0x1fcc10[_0x4b57('0x39')],{'$or':_[_0x4b57('0x2b')](_0x1fcc10[_0x4b57('0x33')],function(_0x5d9dd5){var _0x2112d5={};_0x2112d5[_0x5d9dd5]={'$like':'%'+_0x54ff9d['query']['filter']+'%'};return _0x2112d5;})});}_0x1fcc10[_0x4b57('0x39')]=_[_0x4b57('0x3b')](_0x1fcc10['where'],{'mailboxuser':_0x9ed750['mailbox']});_0x1fcc10=_[_0x4b57('0x3b')]({},_0x1fcc10,_0x54ff9d[_0x4b57('0x45')]);return db['VoiceMailMessage']['findAndCountAll'](_0x1fcc10)['then'](respondWithFilteredResult(_0x4c241a,_0x1fcc10));})[_0x4b57('0x40')](handleError(_0x4c241a,null));};
\ No newline at end of file
+var _0x1775=['hasOwnProperty','nolimit','limit','order','sort','where','pick','filter','merge','VIRTUAL','include','params','includeAll','find','catch','create','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','get','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','findOne','rawAttributes','mailbox','options','VoiceMailMessage','findAndCountAll','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','set','Content-Range','apply','reject','save','then','destroy','Voicemails','UserProfileResource','name','send','index','VoiceMail','fieldName','type','map','query','keys','filters','intersection','model','attributes','fields','length'];(function(_0xd601b2,_0x53cb15){var _0x3b0eec=function(_0x5abce7){while(--_0x5abce7){_0xd601b2['push'](_0xd601b2['shift']());}};_0x3b0eec(++_0x53cb15);}(_0x1775,0x1db));var _0x5177=function(_0x17d9e3,_0x1f969c){_0x17d9e3=_0x17d9e3-0x0;var _0x14192d=_0x1775[_0x17d9e3];return _0x14192d;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x5177('0x0'));var zipdir=require(_0x5177('0x1'));var jsonpatch=require(_0x5177('0x2'));var rp=require(_0x5177('0x3'));var moment=require(_0x5177('0x4'));var BPromise=require(_0x5177('0x5'));var Mustache=require(_0x5177('0x6'));var util=require(_0x5177('0x7'));var path=require(_0x5177('0x8'));var sox=require(_0x5177('0x9'));var csv=require(_0x5177('0xa'));var ejs=require(_0x5177('0xb'));var fs=require('fs');var fs_extra=require(_0x5177('0xc'));var _=require(_0x5177('0xd'));var squel=require(_0x5177('0xe'));var crypto=require(_0x5177('0xf'));var jsforce=require(_0x5177('0x10'));var deskjs=require(_0x5177('0x11'));var toCsv=require(_0x5177('0xa'));var querystring=require(_0x5177('0x12'));var Papa=require(_0x5177('0x13'));var Redis=require(_0x5177('0x14'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x5177('0x15'));var hardwareService=require(_0x5177('0x16'));var logger=require(_0x5177('0x17'))(_0x5177('0x18'));var utils=require(_0x5177('0x19'));var config=require('../../config/environment');var licenseUtil=require(_0x5177('0x1a'));var db=require(_0x5177('0x1b'))['db'];function respondWithStatusCode(_0xc613b9,_0x3c4ced){_0x3c4ced=_0x3c4ced||0xcc;return function(_0x111e99){if(_0x111e99){return _0xc613b9[_0x5177('0x1c')](_0x3c4ced);}return _0xc613b9[_0x5177('0x1d')](_0x3c4ced)[_0x5177('0x1e')]();};}function respondWithResult(_0x3e6224,_0x1eb9dd){_0x1eb9dd=_0x1eb9dd||0xc8;return function(_0x41bef4){if(_0x41bef4){return _0x3e6224[_0x5177('0x1d')](_0x1eb9dd)[_0x5177('0x1f')](_0x41bef4);}};}function respondWithFilteredResult(_0x31aff8,_0x1b32e6){return function(_0x175ca6){if(_0x175ca6){var _0x2ab5e5=typeof _0x1b32e6[_0x5177('0x20')]===_0x5177('0x21')&&typeof _0x1b32e6['limit']===_0x5177('0x21');var _0x41e687=_0x175ca6[_0x5177('0x22')];var _0x1b4102=_0x2ab5e5?0x0:_0x1b32e6['offset'];var _0x3e6944=_0x2ab5e5?_0x175ca6[_0x5177('0x22')]:_0x1b32e6[_0x5177('0x20')]+_0x1b32e6['limit'];var _0x86f5f8;if(_0x3e6944>=_0x41e687){_0x3e6944=_0x41e687;_0x86f5f8=0xc8;}else{_0x86f5f8=0xce;}_0x31aff8['status'](_0x86f5f8);return _0x31aff8[_0x5177('0x23')](_0x5177('0x24'),_0x1b4102+'-'+_0x3e6944+'/'+_0x41e687)[_0x5177('0x1f')](_0x175ca6);}return null;};}function patchUpdates(_0x27b732){return function(_0x451e5c){try{jsonpatch[_0x5177('0x25')](_0x451e5c,_0x27b732,!![]);}catch(_0x174c4f){return BPromise[_0x5177('0x26')](_0x174c4f);}return _0x451e5c[_0x5177('0x27')]();};}function saveUpdates(_0x2a95cc,_0x23dad2){return function(_0x3b0c37){if(_0x3b0c37){return _0x3b0c37['update'](_0x2a95cc)[_0x5177('0x28')](function(_0x556f96){return _0x556f96;});}return null;};}function removeEntity(_0x30b60f,_0x2c68d8){return function(_0x3b39b5){if(_0x3b39b5){return _0x3b39b5[_0x5177('0x29')]()['then'](function(){var _0x2503ef=_0x3b39b5['get']({'plain':!![]});var _0x564139=_0x5177('0x2a');return db[_0x5177('0x2b')]['destroy']({'where':{'type':_0x564139,'resourceId':_0x2503ef['id']}})[_0x5177('0x28')](function(){return _0x3b39b5;});})['then'](function(){_0x30b60f[_0x5177('0x1d')](0xcc)[_0x5177('0x1e')]();});}};}function handleEntityNotFound(_0x58846c,_0x3e021a){return function(_0x2554ec){if(!_0x2554ec){_0x58846c[_0x5177('0x1c')](0x194);}return _0x2554ec;};}function handleError(_0x7f86e,_0xe98ff1){_0xe98ff1=_0xe98ff1||0x1f4;return function(_0x1cef5d){logger['error'](_0x1cef5d['stack']);if(_0x1cef5d[_0x5177('0x2c')]){delete _0x1cef5d[_0x5177('0x2c')];}_0x7f86e[_0x5177('0x1d')](_0xe98ff1)[_0x5177('0x2d')](_0x1cef5d);};}exports[_0x5177('0x2e')]=function(_0x8134f9,_0x31eb9f){var _0x72dced={},_0x49f6f1={},_0x42e1db={'count':0x0,'rows':[]};var _0x2233a2=_['map'](db[_0x5177('0x2f')]['rawAttributes'],function(_0x172b36){return{'name':_0x172b36[_0x5177('0x30')],'type':_0x172b36[_0x5177('0x31')]['key']};});_0x49f6f1['model']=_[_0x5177('0x32')](_0x2233a2,_0x5177('0x2c'));_0x49f6f1[_0x5177('0x33')]=_[_0x5177('0x34')](_0x8134f9[_0x5177('0x33')]);_0x49f6f1[_0x5177('0x35')]=_[_0x5177('0x36')](_0x49f6f1[_0x5177('0x37')],_0x49f6f1['query']);_0x72dced[_0x5177('0x38')]=_[_0x5177('0x36')](_0x49f6f1['model'],qs[_0x5177('0x39')](_0x8134f9[_0x5177('0x33')][_0x5177('0x39')]));_0x72dced[_0x5177('0x38')]=_0x72dced[_0x5177('0x38')][_0x5177('0x3a')]?_0x72dced['attributes']:_0x49f6f1[_0x5177('0x37')];if(!_0x8134f9[_0x5177('0x33')][_0x5177('0x3b')](_0x5177('0x3c'))){_0x72dced[_0x5177('0x3d')]=qs[_0x5177('0x3d')](_0x8134f9[_0x5177('0x33')]['limit']);_0x72dced[_0x5177('0x20')]=qs[_0x5177('0x20')](_0x8134f9['query']['offset']);}_0x72dced[_0x5177('0x3e')]=qs[_0x5177('0x3f')](_0x8134f9[_0x5177('0x33')][_0x5177('0x3f')]);_0x72dced[_0x5177('0x40')]=qs[_0x5177('0x35')](_[_0x5177('0x41')](_0x8134f9[_0x5177('0x33')],_0x49f6f1[_0x5177('0x35')]),_0x2233a2);if(_0x8134f9[_0x5177('0x33')][_0x5177('0x42')]){_0x72dced[_0x5177('0x40')]=_[_0x5177('0x43')](_0x72dced['where'],{'$or':_[_0x5177('0x32')](_0x2233a2,function(_0x2a4db1){if(_0x2a4db1['type']!==_0x5177('0x44')){var _0x56f297={};_0x56f297[_0x2a4db1[_0x5177('0x2c')]]={'$like':'%'+_0x8134f9[_0x5177('0x33')][_0x5177('0x42')]+'%'};return _0x56f297;}})});}_0x72dced=_['merge']({},_0x72dced,_0x8134f9['options']);var _0x210510={'where':_0x72dced[_0x5177('0x40')]};return db[_0x5177('0x2f')][_0x5177('0x22')](_0x210510)[_0x5177('0x28')](function(_0x3e710d){_0x42e1db[_0x5177('0x22')]=_0x3e710d;if(_0x8134f9[_0x5177('0x33')]['includeAll']){_0x72dced[_0x5177('0x45')]=[{'all':!![]}];}return db['VoiceMail']['findAll'](_0x72dced);})[_0x5177('0x28')](function(_0x17dc98){_0x42e1db['rows']=_0x17dc98;return _0x42e1db;})[_0x5177('0x28')](respondWithFilteredResult(_0x31eb9f,_0x72dced))['catch'](handleError(_0x31eb9f,null));};exports['show']=function(_0x46c833,_0x1769cd){var _0x262c71={'raw':!![],'where':{'id':_0x46c833[_0x5177('0x46')]['id']}},_0x3776b8={};_0x3776b8[_0x5177('0x37')]=_[_0x5177('0x34')](db['VoiceMail']['rawAttributes']);_0x3776b8[_0x5177('0x33')]=_['keys'](_0x46c833[_0x5177('0x33')]);_0x3776b8[_0x5177('0x35')]=_[_0x5177('0x36')](_0x3776b8[_0x5177('0x37')],_0x3776b8['query']);_0x262c71[_0x5177('0x38')]=_[_0x5177('0x36')](_0x3776b8[_0x5177('0x37')],qs[_0x5177('0x39')](_0x46c833[_0x5177('0x33')][_0x5177('0x39')]));_0x262c71[_0x5177('0x38')]=_0x262c71[_0x5177('0x38')][_0x5177('0x3a')]?_0x262c71[_0x5177('0x38')]:_0x3776b8[_0x5177('0x37')];if(_0x46c833['query'][_0x5177('0x47')]){_0x262c71['include']=[{'all':!![]}];}_0x262c71=_['merge']({},_0x262c71,_0x46c833['options']);return db[_0x5177('0x2f')][_0x5177('0x48')](_0x262c71)['then'](handleEntityNotFound(_0x1769cd,null))[_0x5177('0x28')](respondWithResult(_0x1769cd,null))[_0x5177('0x49')](handleError(_0x1769cd,null));};exports[_0x5177('0x4a')]=function(_0x4891fe,_0x1d4ae4){return db['VoiceMail']['create'](_0x4891fe['body'],{})[_0x5177('0x28')](function(_0x37d5dd){var _0x1300d7=_0x4891fe['user']['get']({'plain':!![]});if(!_0x1300d7)throw new Error(_0x5177('0x4b'));if(_0x1300d7['role']===_0x5177('0x4c')){var _0x9dd7a2=_0x37d5dd[_0x5177('0x4d')]({'plain':!![]});var _0x31a6e1=_0x5177('0x2a');return db[_0x5177('0x4e')][_0x5177('0x48')]({'where':{'name':_0x31a6e1,'userProfileId':_0x1300d7[_0x5177('0x4f')]},'raw':!![]})[_0x5177('0x28')](function(_0x217aca){if(_0x217aca&&_0x217aca[_0x5177('0x50')]===0x0){return db[_0x5177('0x2b')][_0x5177('0x4a')]({'name':_0x9dd7a2['name'],'resourceId':_0x9dd7a2['id'],'type':_0x217aca['name'],'sectionId':_0x217aca['id']},{})[_0x5177('0x28')](function(){return _0x37d5dd;});}else{return _0x37d5dd;}})['catch'](function(_0x649c6f){logger['error'](_0x5177('0x51'),_0x649c6f);throw _0x649c6f;});}return _0x37d5dd;})[_0x5177('0x28')](respondWithResult(_0x1d4ae4,0xc9))[_0x5177('0x49')](handleError(_0x1d4ae4,null));};exports['update']=function(_0x5be224,_0x19884e){if(_0x5be224[_0x5177('0x52')]['id']){delete _0x5be224[_0x5177('0x52')]['id'];}return db[_0x5177('0x2f')]['find']({'where':{'id':_0x5be224['params']['id']}})[_0x5177('0x28')](handleEntityNotFound(_0x19884e,null))[_0x5177('0x28')](saveUpdates(_0x5be224[_0x5177('0x52')],null))[_0x5177('0x28')](respondWithResult(_0x19884e,null))['catch'](handleError(_0x19884e,null));};exports[_0x5177('0x29')]=function(_0x143aff,_0x3a18ad){return db['VoiceMail'][_0x5177('0x48')]({'where':{'id':_0x143aff[_0x5177('0x46')]['id']}})[_0x5177('0x28')](handleEntityNotFound(_0x3a18ad,null))['then'](removeEntity(_0x3a18ad,null))[_0x5177('0x49')](handleError(_0x3a18ad,null));};exports['getMessages']=function(_0x40dfd6,_0x39fb92,_0x3268bd){return db['VoiceMail'][_0x5177('0x53')]({'where':{'id':_0x40dfd6[_0x5177('0x46')]['id']}})[_0x5177('0x28')](handleEntityNotFound(_0x39fb92,null))[_0x5177('0x28')](function(_0xc7a59e){var _0x74589e;var _0x37380c={},_0x267599={};_0x267599['model']=_['keys'](db['VoiceMailMessage'][_0x5177('0x54')]);_0x267599[_0x5177('0x33')]=_[_0x5177('0x34')](_0x40dfd6[_0x5177('0x33')]);_0x267599[_0x5177('0x35')]=_[_0x5177('0x36')](_0x267599['model'],_0x267599['query']);_0x37380c[_0x5177('0x38')]=_[_0x5177('0x36')](_0x267599[_0x5177('0x37')],qs[_0x5177('0x39')](_0x40dfd6[_0x5177('0x33')][_0x5177('0x39')]));_0x37380c[_0x5177('0x38')]=_0x37380c[_0x5177('0x38')][_0x5177('0x3a')]?_0x37380c['attributes']:_0x267599[_0x5177('0x37')];if(!_0x40dfd6[_0x5177('0x33')]['hasOwnProperty'](_0x5177('0x3c'))){_0x37380c[_0x5177('0x3d')]=qs['limit'](_0x40dfd6[_0x5177('0x33')][_0x5177('0x3d')]);_0x37380c[_0x5177('0x20')]=qs['offset'](_0x40dfd6[_0x5177('0x33')][_0x5177('0x20')]);}_0x37380c['order']=qs['sort'](_0x40dfd6[_0x5177('0x33')]['sort']);_0x37380c[_0x5177('0x40')]=qs['filters'](_[_0x5177('0x41')](_0x40dfd6[_0x5177('0x33')],_0x267599['filters']));if(_0x40dfd6[_0x5177('0x33')][_0x5177('0x42')]){_0x37380c[_0x5177('0x40')]=_[_0x5177('0x43')](_0x37380c[_0x5177('0x40')],{'$or':_[_0x5177('0x32')](_0x37380c[_0x5177('0x38')],function(_0x58ebdd){var _0x26b733={};_0x26b733[_0x58ebdd]={'$like':'%'+_0x40dfd6['query']['filter']+'%'};return _0x26b733;})});}_0x37380c[_0x5177('0x40')]=_[_0x5177('0x43')](_0x37380c['where'],{'mailboxuser':_0xc7a59e[_0x5177('0x55')]});_0x37380c=_[_0x5177('0x43')]({},_0x37380c,_0x40dfd6[_0x5177('0x56')]);return db[_0x5177('0x57')][_0x5177('0x58')](_0x37380c)[_0x5177('0x28')](respondWithFilteredResult(_0x39fb92,_0x37380c));})[_0x5177('0x49')](handleError(_0x39fb92,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x28a2=['request-promise','../../config/environment','exports','define','VoiceMail','voice_voicemail','mailbox','context','lodash','util','../../config/logger','api','bluebird'];(function(_0x4492af,_0x47e25d){var _0x216729=function(_0x4964c8){while(--_0x4964c8){_0x4492af['push'](_0x4492af['shift']());}};_0x216729(++_0x47e25d);}(_0x28a2,0x140));var _0x228a=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x28a2[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0x228a('0x0'));var util=require(_0x228a('0x1'));var logger=require(_0x228a('0x2'))(_0x228a('0x3'));var moment=require('moment');var BPromise=require(_0x228a('0x4'));var rp=require(_0x228a('0x5'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0x228a('0x6'));var attributes=require('./voiceMail.attributes');module[_0x228a('0x7')]=function(_0x50472d,_0x1de446){return _0x50472d[_0x228a('0x8')](_0x228a('0x9'),attributes,{'tableName':_0x228a('0xa'),'paranoid':![],'indexes':[{'name':'mailbox_context','fields':[_0x228a('0xb'),_0x228a('0xc')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x597c=['voice_voicemail','mailbox_context','mailbox','context','util','api','moment','bluebird','request-promise','path','../../config/environment','./voiceMail.attributes','define','VoiceMail'];(function(_0x2333c2,_0x2da0ad){var _0x557550=function(_0x42b672){while(--_0x42b672){_0x2333c2['push'](_0x2333c2['shift']());}};_0x557550(++_0x2da0ad);}(_0x597c,0x1b6));var _0xc597=function(_0xf8b747,_0x10e2c4){_0xf8b747=_0xf8b747-0x0;var _0x2ff996=_0x597c[_0xf8b747];return _0x2ff996;};'use strict';var _=require('lodash');var util=require(_0xc597('0x0'));var logger=require('../../config/logger')(_0xc597('0x1'));var moment=require(_0xc597('0x2'));var BPromise=require(_0xc597('0x3'));var rp=require(_0xc597('0x4'));var fs=require('fs');var path=require(_0xc597('0x5'));var rimraf=require('rimraf');var config=require(_0xc597('0x6'));var attributes=require(_0xc597('0x7'));module['exports']=function(_0x21e555,_0x55bdd2){return _0x21e555[_0xc597('0x8')](_0xc597('0x9'),attributes,{'tableName':_0xc597('0xa'),'paranoid':![],'indexes':[{'name':_0xc597('0xb'),'fields':[_0xc597('0xc'),_0xc597('0xd')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd2dc=['randomstring','ioredis','../../config/logger','rpc','../../config/environment','jayson/promise','client','request','then','info','VoiceMail,\x20%s,\x20%s','debug','VoiceMail,\x20%s,\x20%s,\x20%s','request\x20sent','error','message','catch','lodash','util'];(function(_0x2bfb2b,_0x4e4421){var _0x4cb289=function(_0x56ebef){while(--_0x56ebef){_0x2bfb2b['push'](_0x2bfb2b['shift']());}};_0x4cb289(++_0x4e4421);}(_0xd2dc,0x1c6));var _0xcd2d=function(_0x41c2b8,_0x26c625){_0x41c2b8=_0x41c2b8-0x0;var _0x115aab=_0xd2dc[_0x41c2b8];return _0x115aab;};'use strict';var _=require(_0xcd2d('0x0'));var util=require(_0xcd2d('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0xcd2d('0x2'));var fs=require('fs');var Redis=require(_0xcd2d('0x3'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0xcd2d('0x4'))(_0xcd2d('0x5'));var config=require(_0xcd2d('0x6'));var jayson=require(_0xcd2d('0x7'));var client=jayson[_0xcd2d('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0xb3f690,_0x48e9a7,_0x485921){return new BPromise(function(_0x243eae,_0x166108){return client[_0xcd2d('0x9')](_0xb3f690,_0x485921)[_0xcd2d('0xa')](function(_0x2759eb){logger[_0xcd2d('0xb')](_0xcd2d('0xc'),_0x48e9a7,'request\x20sent');logger[_0xcd2d('0xd')](_0xcd2d('0xe'),_0x48e9a7,_0xcd2d('0xf'),JSON['stringify'](_0x2759eb));if(_0x2759eb[_0xcd2d('0x10')]){if(_0x2759eb[_0xcd2d('0x10')]['code']===0x1f4){logger[_0xcd2d('0x10')]('VoiceMail,\x20%s,\x20%s',_0x48e9a7,_0x2759eb[_0xcd2d('0x10')]['message']);return _0x166108(_0x2759eb[_0xcd2d('0x10')]['message']);}logger[_0xcd2d('0x10')](_0xcd2d('0xc'),_0x48e9a7,_0x2759eb[_0xcd2d('0x10')]['message']);return _0x243eae(_0x2759eb[_0xcd2d('0x10')][_0xcd2d('0x11')]);}else{logger[_0xcd2d('0xb')](_0xcd2d('0xc'),_0x48e9a7,_0xcd2d('0xf'));_0x243eae(_0x2759eb['result'][_0xcd2d('0x11')]);}})[_0xcd2d('0x12')](function(_0x55f4d4){logger[_0xcd2d('0x10')]('VoiceMail,\x20%s,\x20%s',_0x48e9a7,_0x55f4d4);_0x166108(_0x55f4d4);});});}
\ No newline at end of file
+var _0xea55=['jayson/promise','client','http','request','info','VoiceMail,\x20%s,\x20%s','debug','VoiceMail,\x20%s,\x20%s,\x20%s','stringify','error','message','request\x20sent','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc'];(function(_0x5b0b02,_0x29b273){var _0x30259f=function(_0x5249db){while(--_0x5249db){_0x5b0b02['push'](_0x5b0b02['shift']());}};_0x30259f(++_0x29b273);}(_0xea55,0x176));var _0x5ea5=function(_0x4b5e57,_0x2af7c5){_0x4b5e57=_0x4b5e57-0x0;var _0x47359f=_0xea55[_0x4b5e57];return _0x47359f;};'use strict';var _=require(_0x5ea5('0x0'));var util=require(_0x5ea5('0x1'));var moment=require(_0x5ea5('0x2'));var BPromise=require(_0x5ea5('0x3'));var rs=require(_0x5ea5('0x4'));var fs=require('fs');var Redis=require(_0x5ea5('0x5'));var db=require(_0x5ea5('0x6'))['db'];var utils=require(_0x5ea5('0x7'));var logger=require(_0x5ea5('0x8'))(_0x5ea5('0x9'));var config=require('../../config/environment');var jayson=require(_0x5ea5('0xa'));var client=jayson[_0x5ea5('0xb')][_0x5ea5('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x2f9730,_0xfb623b,_0x5e90dc){return new BPromise(function(_0x5f224d,_0xad668e){return client[_0x5ea5('0xd')](_0x2f9730,_0x5e90dc)['then'](function(_0x8daa64){logger[_0x5ea5('0xe')](_0x5ea5('0xf'),_0xfb623b,'request\x20sent');logger[_0x5ea5('0x10')](_0x5ea5('0x11'),_0xfb623b,'request\x20sent',JSON[_0x5ea5('0x12')](_0x8daa64));if(_0x8daa64[_0x5ea5('0x13')]){if(_0x8daa64[_0x5ea5('0x13')]['code']===0x1f4){logger[_0x5ea5('0x13')](_0x5ea5('0xf'),_0xfb623b,_0x8daa64[_0x5ea5('0x13')]['message']);return _0xad668e(_0x8daa64[_0x5ea5('0x13')][_0x5ea5('0x14')]);}logger[_0x5ea5('0x13')](_0x5ea5('0xf'),_0xfb623b,_0x8daa64[_0x5ea5('0x13')][_0x5ea5('0x14')]);return _0x5f224d(_0x8daa64[_0x5ea5('0x13')][_0x5ea5('0x14')]);}else{logger[_0x5ea5('0xe')](_0x5ea5('0xf'),_0xfb623b,_0x5ea5('0x15'));_0x5f224d(_0x8daa64[_0x5ea5('0x16')]['message']);}})[_0x5ea5('0x17')](function(_0xc87c3b){logger[_0x5ea5('0x13')](_0x5ea5('0xf'),_0xfb623b,_0xc87c3b);_0xad668e(_0xc87c3b);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9ab=['isAuthenticated','index','get','/:id','download','post','create','put','delete','destroy','exports','multer','util','path','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./voiceMailMessage.controller'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0xa9ab,0x170));var _0xba9a=function(_0x252acb,_0x42f804){_0x252acb=_0x252acb-0x0;var _0x5fb45a=_0xa9ab[_0x252acb];return _0x5fb45a;};'use strict';var multer=require(_0xba9a('0x0'));var util=require(_0xba9a('0x1'));var path=require(_0xba9a('0x2'));var timeout=require(_0xba9a('0x3'));var express=require(_0xba9a('0x4'));var router=express['Router']();var fs_extra=require(_0xba9a('0x5'));var auth=require(_0xba9a('0x6'));var interaction=require(_0xba9a('0x7'));var config=require(_0xba9a('0x8'));var controller=require(_0xba9a('0x9'));router['get']('/',auth[_0xba9a('0xa')](),controller[_0xba9a('0xb')]);router[_0xba9a('0xc')](_0xba9a('0xd'),auth[_0xba9a('0xa')](),controller['show']);router['get']('/:id/download',auth[_0xba9a('0xa')](),controller[_0xba9a('0xe')]);router[_0xba9a('0xf')]('/',auth[_0xba9a('0xa')](),controller[_0xba9a('0x10')]);router[_0xba9a('0x11')]('/:id',auth[_0xba9a('0xa')](),controller['update']);router[_0xba9a('0x12')](_0xba9a('0xd'),auth['isAuthenticated'](),controller[_0xba9a('0x13')]);module[_0xba9a('0x14')]=router;
\ No newline at end of file
+var _0x40dd=['util','path','connect-timeout','Router','fs-extra','../../components/auth/service','get','isAuthenticated','index','/:id','show','/:id/download','download','post','create','put','destroy','exports','multer'];(function(_0x58641f,_0x37a8f4){var _0x503f3f=function(_0x3448e6){while(--_0x3448e6){_0x58641f['push'](_0x58641f['shift']());}};_0x503f3f(++_0x37a8f4);}(_0x40dd,0x1ed));var _0xd40d=function(_0x491a7f,_0x28bb80){_0x491a7f=_0x491a7f-0x0;var _0x3d8f44=_0x40dd[_0x491a7f];return _0x3d8f44;};'use strict';var multer=require(_0xd40d('0x0'));var util=require(_0xd40d('0x1'));var path=require(_0xd40d('0x2'));var timeout=require(_0xd40d('0x3'));var express=require('express');var router=express[_0xd40d('0x4')]();var fs_extra=require(_0xd40d('0x5'));var auth=require(_0xd40d('0x6'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require('./voiceMailMessage.controller');router[_0xd40d('0x7')]('/',auth[_0xd40d('0x8')](),controller[_0xd40d('0x9')]);router['get'](_0xd40d('0xa'),auth[_0xd40d('0x8')](),controller[_0xd40d('0xb')]);router[_0xd40d('0x7')](_0xd40d('0xc'),auth[_0xd40d('0x8')](),controller[_0xd40d('0xd')]);router[_0xd40d('0xe')]('/',auth[_0xd40d('0x8')](),controller[_0xd40d('0xf')]);router[_0xd40d('0x10')](_0xd40d('0xa'),auth[_0xd40d('0x8')](),controller['update']);router['delete']('/:id',auth[_0xd40d('0x8')](),controller[_0xd40d('0x11')]);module[_0xd40d('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x70f2=['INTEGER','STRING','long','TIMESTAMP','CURRENT_TIMESTAMP\x20ON\x20UPDATE\x20CURRENT_TIMESTAMP','sequelize','VIRTUAL','getDataValue'];(function(_0x30b0ad,_0x21bd56){var _0x5d7957=function(_0x12a418){while(--_0x12a418){_0x30b0ad['push'](_0x30b0ad['shift']());}};_0x5d7957(++_0x21bd56);}(_0x70f2,0xcd));var _0x270f=function(_0x7dbd96,_0x2d72e1){_0x7dbd96=_0x7dbd96-0x0;var _0x2d64b1=_0x70f2[_0x7dbd96];return _0x2d64b1;};'use strict';var Sequelize=require(_0x270f('0x0'));module['exports']={'name':{'type':Sequelize[_0x270f('0x1')],'get':function(_0x213513){return this[_0x270f('0x2')]('id');}},'msgnum':{'type':Sequelize[_0x270f('0x3')](0xb),'defaultValue':0x0,'allowNull':![]},'dir':{'type':Sequelize[_0x270f('0x4')],'defaultValue':''},'context':{'type':Sequelize['STRING'],'defaultValue':''},'macrocontext':{'type':Sequelize[_0x270f('0x4')],'defaultValue':''},'callerid':{'type':Sequelize['STRING'],'defaultValue':''},'origtime':{'type':Sequelize['STRING'],'defaultValue':''},'duration':{'type':Sequelize['STRING'],'defaultValue':''},'mailboxuser':{'type':Sequelize['STRING'],'defaultValue':''},'mailboxcontext':{'type':Sequelize[_0x270f('0x4')],'defaultValue':''},'recording':{'type':Sequelize['BLOB'](_0x270f('0x5')),'defaultValue':null},'flag':{'type':Sequelize['STRING'],'defaultValue':''},'msg_id':{'type':Sequelize[_0x270f('0x4')],'defaultValue':''},'stamp':{'type':_0x270f('0x6'),'defaultValue':Sequelize['literal'](_0x270f('0x7'))}};
\ No newline at end of file
+var _0x135f=['long','CURRENT_TIMESTAMP\x20ON\x20UPDATE\x20CURRENT_TIMESTAMP','sequelize','exports','STRING','BLOB'];(function(_0xd09668,_0x1435b2){var _0x68726=function(_0x54a030){while(--_0x54a030){_0xd09668['push'](_0xd09668['shift']());}};_0x68726(++_0x1435b2);}(_0x135f,0x92));var _0xf135=function(_0x21bbe5,_0x5791c4){_0x21bbe5=_0x21bbe5-0x0;var _0x23246b=_0x135f[_0x21bbe5];return _0x23246b;};'use strict';var Sequelize=require(_0xf135('0x0'));module[_0xf135('0x1')]={'name':{'type':Sequelize['VIRTUAL'],'get':function(_0x1b64f3){return this['getDataValue']('id');}},'msgnum':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0x0,'allowNull':![]},'dir':{'type':Sequelize[_0xf135('0x2')],'defaultValue':''},'context':{'type':Sequelize['STRING'],'defaultValue':''},'macrocontext':{'type':Sequelize[_0xf135('0x2')],'defaultValue':''},'callerid':{'type':Sequelize[_0xf135('0x2')],'defaultValue':''},'origtime':{'type':Sequelize['STRING'],'defaultValue':''},'duration':{'type':Sequelize[_0xf135('0x2')],'defaultValue':''},'mailboxuser':{'type':Sequelize[_0xf135('0x2')],'defaultValue':''},'mailboxcontext':{'type':Sequelize['STRING'],'defaultValue':''},'recording':{'type':Sequelize[_0xf135('0x3')](_0xf135('0x4')),'defaultValue':null},'flag':{'type':Sequelize[_0xf135('0x2')],'defaultValue':''},'msg_id':{'type':Sequelize[_0xf135('0x2')],'defaultValue':''},'stamp':{'type':'TIMESTAMP','defaultValue':Sequelize['literal'](_0xf135('0x5'))}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb0b3=['options','findAll','rows','show','params','keys','includeAll','include','find','catch','body','recording','msg_id','VoiceMailMessage\x20not\x20found','attachment','attachment;\x20filename=\x22','.wav\x22','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','sendStatus','limit','count','offset','status','set','json','apply','reject','save','update','then','destroy','end','error','stack','name','send','map','VoiceMailMessage','rawAttributes','fieldName','key','model','differenceBy','query','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','filter','merge','type','VIRTUAL'];(function(_0x20c488,_0x188c7a){var _0x5a0816=function(_0x1641f3){while(--_0x1641f3){_0x20c488['push'](_0x20c488['shift']());}};_0x5a0816(++_0x188c7a);}(_0xb0b3,0x1b0));var _0x3b0b=function(_0x5d4326,_0xc32283){_0x5d4326=_0x5d4326-0x0;var _0x436c71=_0xb0b3[_0x5d4326];return _0x436c71;};'use strict';var emlformat=require(_0x3b0b('0x0'));var rimraf=require(_0x3b0b('0x1'));var zipdir=require(_0x3b0b('0x2'));var jsonpatch=require(_0x3b0b('0x3'));var rp=require(_0x3b0b('0x4'));var moment=require(_0x3b0b('0x5'));var BPromise=require(_0x3b0b('0x6'));var Mustache=require('mustache');var util=require(_0x3b0b('0x7'));var path=require(_0x3b0b('0x8'));var sox=require(_0x3b0b('0x9'));var csv=require(_0x3b0b('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x3b0b('0xb'));var squel=require(_0x3b0b('0xc'));var crypto=require('crypto');var jsforce=require(_0x3b0b('0xd'));var deskjs=require(_0x3b0b('0xe'));var toCsv=require(_0x3b0b('0xa'));var querystring=require(_0x3b0b('0xf'));var Papa=require(_0x3b0b('0x10'));var Redis=require(_0x3b0b('0x11'));var authService=require(_0x3b0b('0x12'));var qs=require(_0x3b0b('0x13'));var as=require(_0x3b0b('0x14'));var hardwareService=require(_0x3b0b('0x15'));var logger=require(_0x3b0b('0x16'))(_0x3b0b('0x17'));var utils=require(_0x3b0b('0x18'));var config=require('../../config/environment');var licenseUtil=require(_0x3b0b('0x19'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x5b305d,_0x519422){_0x519422=_0x519422||0xcc;return function(_0x5ab9da){if(_0x5ab9da){return _0x5b305d[_0x3b0b('0x1a')](_0x519422);}return _0x5b305d['status'](_0x519422)['end']();};}function respondWithResult(_0x50a6f0,_0x16c37c){_0x16c37c=_0x16c37c||0xc8;return function(_0x14259b){if(_0x14259b){return _0x50a6f0['status'](_0x16c37c)['json'](_0x14259b);}};}function respondWithFilteredResult(_0x1ea4fe,_0x12cf91){return function(_0x33a0e4){if(_0x33a0e4){var _0x4a297a=typeof _0x12cf91['offset']==='undefined'&&typeof _0x12cf91[_0x3b0b('0x1b')]==='undefined';var _0x4647f2=_0x33a0e4[_0x3b0b('0x1c')];var _0x2be38a=_0x4a297a?0x0:_0x12cf91[_0x3b0b('0x1d')];var _0x9e8934=_0x4a297a?_0x33a0e4[_0x3b0b('0x1c')]:_0x12cf91[_0x3b0b('0x1d')]+_0x12cf91['limit'];var _0x12c45f;if(_0x9e8934>=_0x4647f2){_0x9e8934=_0x4647f2;_0x12c45f=0xc8;}else{_0x12c45f=0xce;}_0x1ea4fe[_0x3b0b('0x1e')](_0x12c45f);return _0x1ea4fe[_0x3b0b('0x1f')]('Content-Range',_0x2be38a+'-'+_0x9e8934+'/'+_0x4647f2)[_0x3b0b('0x20')](_0x33a0e4);}return null;};}function patchUpdates(_0x2d1f10){return function(_0x37ee84){try{jsonpatch[_0x3b0b('0x21')](_0x37ee84,_0x2d1f10,!![]);}catch(_0x36dc40){return BPromise[_0x3b0b('0x22')](_0x36dc40);}return _0x37ee84[_0x3b0b('0x23')]();};}function saveUpdates(_0x388f69,_0x2816a7){return function(_0x4be10a){if(_0x4be10a){return _0x4be10a[_0x3b0b('0x24')](_0x388f69)[_0x3b0b('0x25')](function(_0x8cb814){return _0x8cb814;});}return null;};}function removeEntity(_0x5c4f09,_0x2de7f2){return function(_0x3ef712){if(_0x3ef712){return _0x3ef712[_0x3b0b('0x26')]()[_0x3b0b('0x25')](function(){_0x5c4f09[_0x3b0b('0x1e')](0xcc)[_0x3b0b('0x27')]();});}};}function handleEntityNotFound(_0x2eed28,_0x313ba6){return function(_0x31e77e){if(!_0x31e77e){_0x2eed28['sendStatus'](0x194);}return _0x31e77e;};}function handleError(_0x3cbcd0,_0x39ab3d){_0x39ab3d=_0x39ab3d||0x1f4;return function(_0x4962e6){logger[_0x3b0b('0x28')](_0x4962e6[_0x3b0b('0x29')]);if(_0x4962e6[_0x3b0b('0x2a')]){delete _0x4962e6[_0x3b0b('0x2a')];}_0x3cbcd0[_0x3b0b('0x1e')](_0x39ab3d)[_0x3b0b('0x2b')](_0x4962e6);};}exports['index']=function(_0x40f27b,_0x46baea){var _0x285e40={},_0x465979={},_0x4cd930={'count':0x0,'rows':[]};var _0x570637=_[_0x3b0b('0x2c')](db[_0x3b0b('0x2d')][_0x3b0b('0x2e')],function(_0x679c20){return{'name':_0x679c20[_0x3b0b('0x2f')],'type':_0x679c20['type'][_0x3b0b('0x30')]};});_0x465979[_0x3b0b('0x31')]=_[_0x3b0b('0x32')](_[_0x3b0b('0x2c')](_0x570637,_0x3b0b('0x2a')),[_0x3b0b('0x2a')]);_0x465979[_0x3b0b('0x33')]=_['keys'](_0x40f27b[_0x3b0b('0x33')]);_0x465979['filters']=_['intersection'](_0x465979['model'],_0x465979['query']);_0x285e40[_0x3b0b('0x34')]=_[_0x3b0b('0x35')](_0x465979[_0x3b0b('0x31')],qs[_0x3b0b('0x36')](_0x40f27b['query']['fields']));_0x285e40[_0x3b0b('0x34')]=_0x285e40[_0x3b0b('0x34')][_0x3b0b('0x37')]?_0x285e40[_0x3b0b('0x34')]:_0x465979[_0x3b0b('0x31')];if(!_0x40f27b[_0x3b0b('0x33')][_0x3b0b('0x38')](_0x3b0b('0x39'))){_0x285e40[_0x3b0b('0x1b')]=qs[_0x3b0b('0x1b')](_0x40f27b[_0x3b0b('0x33')]['limit']);_0x285e40['offset']=qs[_0x3b0b('0x1d')](_0x40f27b['query']['offset']);}_0x285e40[_0x3b0b('0x3a')]=qs[_0x3b0b('0x3b')](_0x40f27b[_0x3b0b('0x33')][_0x3b0b('0x3b')]);_0x285e40[_0x3b0b('0x3c')]=qs[_0x3b0b('0x3d')](_['pick'](_0x40f27b[_0x3b0b('0x33')],_0x465979[_0x3b0b('0x3d')]),_0x570637);if(_0x40f27b['query'][_0x3b0b('0x3e')]){_0x285e40[_0x3b0b('0x3c')]=_[_0x3b0b('0x3f')](_0x285e40['where'],{'$or':_[_0x3b0b('0x2c')](_0x570637,function(_0x1dc67a){if(_0x1dc67a[_0x3b0b('0x40')]!==_0x3b0b('0x41')){var _0x43f84d={};_0x43f84d[_0x1dc67a['name']]={'$like':'%'+_0x40f27b[_0x3b0b('0x33')][_0x3b0b('0x3e')]+'%'};return _0x43f84d;}})});}_0x285e40=_['merge']({},_0x285e40,_0x40f27b[_0x3b0b('0x42')]);var _0x2dccb1={'where':_0x285e40['where']};return db['VoiceMailMessage'][_0x3b0b('0x1c')](_0x2dccb1)[_0x3b0b('0x25')](function(_0x455f6e){_0x4cd930[_0x3b0b('0x1c')]=_0x455f6e;if(_0x40f27b['query']['includeAll']){_0x285e40['include']=[{'all':!![]}];}return db[_0x3b0b('0x2d')][_0x3b0b('0x43')](_0x285e40);})[_0x3b0b('0x25')](function(_0x38f355){_0x4cd930[_0x3b0b('0x44')]=_0x38f355;return _0x4cd930;})[_0x3b0b('0x25')](respondWithFilteredResult(_0x46baea,_0x285e40))['catch'](handleError(_0x46baea,null));};exports[_0x3b0b('0x45')]=function(_0xe98519,_0x17ca5b){var _0xdfb349={'raw':!![],'where':{'id':_0xe98519[_0x3b0b('0x46')]['id']}},_0x14b0af={};_0x14b0af[_0x3b0b('0x31')]=_[_0x3b0b('0x47')](db[_0x3b0b('0x2d')][_0x3b0b('0x2e')]);_0x14b0af[_0x3b0b('0x33')]=_[_0x3b0b('0x47')](_0xe98519[_0x3b0b('0x33')]);_0x14b0af[_0x3b0b('0x3d')]=_[_0x3b0b('0x35')](_0x14b0af[_0x3b0b('0x31')],_0x14b0af[_0x3b0b('0x33')]);_0xdfb349[_0x3b0b('0x34')]=_['intersection'](_0x14b0af[_0x3b0b('0x31')],qs[_0x3b0b('0x36')](_0xe98519[_0x3b0b('0x33')][_0x3b0b('0x36')]));_0xdfb349[_0x3b0b('0x34')]=_0xdfb349[_0x3b0b('0x34')]['length']?_0xdfb349['attributes']:_0x14b0af['model'];if(_0xe98519[_0x3b0b('0x33')][_0x3b0b('0x48')]){_0xdfb349[_0x3b0b('0x49')]=[{'all':!![]}];}_0xdfb349=_['merge']({},_0xdfb349,_0xe98519[_0x3b0b('0x42')]);return db['VoiceMailMessage'][_0x3b0b('0x4a')](_0xdfb349)[_0x3b0b('0x25')](handleEntityNotFound(_0x17ca5b,null))[_0x3b0b('0x25')](respondWithResult(_0x17ca5b,null))[_0x3b0b('0x4b')](handleError(_0x17ca5b,null));};exports['create']=function(_0x495358,_0x62db14){return db['VoiceMailMessage']['create'](_0x495358[_0x3b0b('0x4c')],{})[_0x3b0b('0x25')](respondWithResult(_0x62db14,0xc9))[_0x3b0b('0x4b')](handleError(_0x62db14,null));};exports[_0x3b0b('0x24')]=function(_0x2bbc3e,_0x46ed52){if(_0x2bbc3e[_0x3b0b('0x4c')]['id']){delete _0x2bbc3e[_0x3b0b('0x4c')]['id'];}return db[_0x3b0b('0x2d')][_0x3b0b('0x4a')]({'where':{'id':_0x2bbc3e['params']['id']}})[_0x3b0b('0x25')](handleEntityNotFound(_0x46ed52,null))['then'](saveUpdates(_0x2bbc3e['body'],null))['then'](respondWithResult(_0x46ed52,null))['catch'](handleError(_0x46ed52,null));};exports['destroy']=function(_0x3887ad,_0x4fe499){return db[_0x3b0b('0x2d')][_0x3b0b('0x4a')]({'where':{'id':_0x3887ad[_0x3b0b('0x46')]['id']}})[_0x3b0b('0x25')](handleEntityNotFound(_0x4fe499,null))['then'](removeEntity(_0x4fe499,null))[_0x3b0b('0x4b')](handleError(_0x4fe499,null));};exports['download']=function(_0x456d1a,_0x357d1c,_0x4949c9){return db[_0x3b0b('0x2d')][_0x3b0b('0x4a')]({'where':{'id':_0x456d1a[_0x3b0b('0x46')]['id']},'attributes':['id',_0x3b0b('0x4d'),_0x3b0b('0x4e')]})['then'](handleEntityNotFound(_0x357d1c,null))[_0x3b0b('0x25')](function(_0x2fa70b){if(_0x2fa70b){if(!_0x2fa70b['recording']){throw new db['Sequelize']['ValidationError'](_0x3b0b('0x4f'));}var _0x51db0c={'Content-Type':'audio/wav','Content-Disposition':_0x3b0b('0x50')};if(_0x2fa70b['msg_id']){_0x51db0c['Content-Disposition']=_0x3b0b('0x51')+_0x2fa70b[_0x3b0b('0x4e')]+_0x3b0b('0x52');}_0x357d1c['set'](_0x51db0c);return _0x357d1c[_0x3b0b('0x2b')](new Buffer(_0x2fa70b[_0x3b0b('0x4d')]));}})[_0x3b0b('0x4b')](handleError(_0x357d1c,null));};
\ No newline at end of file
+var _0x3754=['fields','length','hasOwnProperty','nolimit','sort','where','filters','pick','merge','type','VIRTUAL','filter','options','findAll','catch','params','keys','rawAttributes','include','find','body','download','recording','Sequelize','ValidationError','VoiceMailMessage\x20not\x20found','attachment','Content-Disposition','attachment;\x20filename=\x22','msg_id','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','squel','crypto','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','status','end','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','error','stack','name','send','index','map','VoiceMailMessage','fieldName','key','model','differenceBy','query','attributes','intersection'];(function(_0x54c6cf,_0x452c6e){var _0x450076=function(_0x501454){while(--_0x501454){_0x54c6cf['push'](_0x54c6cf['shift']());}};_0x450076(++_0x452c6e);}(_0x3754,0x166));var _0x4375=function(_0x433b3d,_0x50a7bf){_0x433b3d=_0x433b3d-0x0;var _0x4eddb7=_0x3754[_0x433b3d];return _0x4eddb7;};'use strict';var emlformat=require(_0x4375('0x0'));var rimraf=require(_0x4375('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x4375('0x2'));var rp=require(_0x4375('0x3'));var moment=require(_0x4375('0x4'));var BPromise=require(_0x4375('0x5'));var Mustache=require(_0x4375('0x6'));var util=require(_0x4375('0x7'));var path=require(_0x4375('0x8'));var sox=require(_0x4375('0x9'));var csv=require(_0x4375('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x4375('0xb'));var crypto=require(_0x4375('0xc'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x4375('0xa'));var querystring=require(_0x4375('0xd'));var Papa=require(_0x4375('0xe'));var Redis=require(_0x4375('0xf'));var authService=require(_0x4375('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0x4375('0x11'));var hardwareService=require(_0x4375('0x12'));var logger=require(_0x4375('0x13'))(_0x4375('0x14'));var utils=require('../../config/utils');var config=require(_0x4375('0x15'));var licenseUtil=require(_0x4375('0x16'));var db=require(_0x4375('0x17'))['db'];function respondWithStatusCode(_0x4d62d2,_0x75312e){_0x75312e=_0x75312e||0xcc;return function(_0x6f9155){if(_0x6f9155){return _0x4d62d2['sendStatus'](_0x75312e);}return _0x4d62d2[_0x4375('0x18')](_0x75312e)[_0x4375('0x19')]();};}function respondWithResult(_0x5bbc0f,_0x3dcb03){_0x3dcb03=_0x3dcb03||0xc8;return function(_0x1a2be6){if(_0x1a2be6){return _0x5bbc0f[_0x4375('0x18')](_0x3dcb03)['json'](_0x1a2be6);}};}function respondWithFilteredResult(_0x5296d7,_0x206092){return function(_0x2d028d){if(_0x2d028d){var _0x27b508=typeof _0x206092[_0x4375('0x1a')]===_0x4375('0x1b')&&typeof _0x206092[_0x4375('0x1c')]===_0x4375('0x1b');var _0x230230=_0x2d028d['count'];var _0x432c47=_0x27b508?0x0:_0x206092[_0x4375('0x1a')];var _0x54cb3f=_0x27b508?_0x2d028d[_0x4375('0x1d')]:_0x206092[_0x4375('0x1a')]+_0x206092[_0x4375('0x1c')];var _0x8c4c;if(_0x54cb3f>=_0x230230){_0x54cb3f=_0x230230;_0x8c4c=0xc8;}else{_0x8c4c=0xce;}_0x5296d7['status'](_0x8c4c);return _0x5296d7[_0x4375('0x1e')](_0x4375('0x1f'),_0x432c47+'-'+_0x54cb3f+'/'+_0x230230)['json'](_0x2d028d);}return null;};}function patchUpdates(_0x3a78a3){return function(_0x505dde){try{jsonpatch[_0x4375('0x20')](_0x505dde,_0x3a78a3,!![]);}catch(_0x19735e){return BPromise[_0x4375('0x21')](_0x19735e);}return _0x505dde[_0x4375('0x22')]();};}function saveUpdates(_0x472dfc,_0xb791b4){return function(_0x4bdae5){if(_0x4bdae5){return _0x4bdae5[_0x4375('0x23')](_0x472dfc)[_0x4375('0x24')](function(_0xf81e08){return _0xf81e08;});}return null;};}function removeEntity(_0x104b40,_0x42eb8f){return function(_0x2422c4){if(_0x2422c4){return _0x2422c4[_0x4375('0x25')]()[_0x4375('0x24')](function(){_0x104b40[_0x4375('0x18')](0xcc)[_0x4375('0x19')]();});}};}function handleEntityNotFound(_0x59f350,_0x11f773){return function(_0x15bcb3){if(!_0x15bcb3){_0x59f350['sendStatus'](0x194);}return _0x15bcb3;};}function handleError(_0x1e56e3,_0x14448a){_0x14448a=_0x14448a||0x1f4;return function(_0x1853d9){logger[_0x4375('0x26')](_0x1853d9[_0x4375('0x27')]);if(_0x1853d9[_0x4375('0x28')]){delete _0x1853d9[_0x4375('0x28')];}_0x1e56e3[_0x4375('0x18')](_0x14448a)[_0x4375('0x29')](_0x1853d9);};}exports[_0x4375('0x2a')]=function(_0x2fddda,_0x1add6b){var _0x551425={},_0x314695={},_0x2b59a3={'count':0x0,'rows':[]};var _0x3f35b1=_[_0x4375('0x2b')](db[_0x4375('0x2c')]['rawAttributes'],function(_0x3af904){return{'name':_0x3af904[_0x4375('0x2d')],'type':_0x3af904['type'][_0x4375('0x2e')]};});_0x314695[_0x4375('0x2f')]=_[_0x4375('0x30')](_[_0x4375('0x2b')](_0x3f35b1,'name'),['name']);_0x314695[_0x4375('0x31')]=_['keys'](_0x2fddda[_0x4375('0x31')]);_0x314695['filters']=_['intersection'](_0x314695[_0x4375('0x2f')],_0x314695[_0x4375('0x31')]);_0x551425[_0x4375('0x32')]=_[_0x4375('0x33')](_0x314695['model'],qs[_0x4375('0x34')](_0x2fddda[_0x4375('0x31')][_0x4375('0x34')]));_0x551425['attributes']=_0x551425[_0x4375('0x32')][_0x4375('0x35')]?_0x551425['attributes']:_0x314695['model'];if(!_0x2fddda['query'][_0x4375('0x36')](_0x4375('0x37'))){_0x551425[_0x4375('0x1c')]=qs[_0x4375('0x1c')](_0x2fddda[_0x4375('0x31')][_0x4375('0x1c')]);_0x551425[_0x4375('0x1a')]=qs[_0x4375('0x1a')](_0x2fddda['query']['offset']);}_0x551425['order']=qs['sort'](_0x2fddda['query'][_0x4375('0x38')]);_0x551425[_0x4375('0x39')]=qs[_0x4375('0x3a')](_[_0x4375('0x3b')](_0x2fddda[_0x4375('0x31')],_0x314695[_0x4375('0x3a')]),_0x3f35b1);if(_0x2fddda['query']['filter']){_0x551425['where']=_[_0x4375('0x3c')](_0x551425[_0x4375('0x39')],{'$or':_['map'](_0x3f35b1,function(_0x371b32){if(_0x371b32[_0x4375('0x3d')]!==_0x4375('0x3e')){var _0x1cfd2f={};_0x1cfd2f[_0x371b32[_0x4375('0x28')]]={'$like':'%'+_0x2fddda['query'][_0x4375('0x3f')]+'%'};return _0x1cfd2f;}})});}_0x551425=_['merge']({},_0x551425,_0x2fddda[_0x4375('0x40')]);var _0x95424c={'where':_0x551425[_0x4375('0x39')]};return db[_0x4375('0x2c')][_0x4375('0x1d')](_0x95424c)['then'](function(_0x4186e9){_0x2b59a3['count']=_0x4186e9;if(_0x2fddda[_0x4375('0x31')]['includeAll']){_0x551425['include']=[{'all':!![]}];}return db['VoiceMailMessage'][_0x4375('0x41')](_0x551425);})[_0x4375('0x24')](function(_0x589b10){_0x2b59a3['rows']=_0x589b10;return _0x2b59a3;})[_0x4375('0x24')](respondWithFilteredResult(_0x1add6b,_0x551425))[_0x4375('0x42')](handleError(_0x1add6b,null));};exports['show']=function(_0x54ac6f,_0x43bb2d){var _0x16c1fd={'raw':!![],'where':{'id':_0x54ac6f[_0x4375('0x43')]['id']}},_0x3bc0b3={};_0x3bc0b3[_0x4375('0x2f')]=_[_0x4375('0x44')](db[_0x4375('0x2c')][_0x4375('0x45')]);_0x3bc0b3['query']=_[_0x4375('0x44')](_0x54ac6f[_0x4375('0x31')]);_0x3bc0b3[_0x4375('0x3a')]=_[_0x4375('0x33')](_0x3bc0b3[_0x4375('0x2f')],_0x3bc0b3[_0x4375('0x31')]);_0x16c1fd[_0x4375('0x32')]=_[_0x4375('0x33')](_0x3bc0b3[_0x4375('0x2f')],qs[_0x4375('0x34')](_0x54ac6f['query'][_0x4375('0x34')]));_0x16c1fd[_0x4375('0x32')]=_0x16c1fd[_0x4375('0x32')][_0x4375('0x35')]?_0x16c1fd[_0x4375('0x32')]:_0x3bc0b3[_0x4375('0x2f')];if(_0x54ac6f[_0x4375('0x31')]['includeAll']){_0x16c1fd[_0x4375('0x46')]=[{'all':!![]}];}_0x16c1fd=_[_0x4375('0x3c')]({},_0x16c1fd,_0x54ac6f[_0x4375('0x40')]);return db[_0x4375('0x2c')][_0x4375('0x47')](_0x16c1fd)[_0x4375('0x24')](handleEntityNotFound(_0x43bb2d,null))[_0x4375('0x24')](respondWithResult(_0x43bb2d,null))['catch'](handleError(_0x43bb2d,null));};exports['create']=function(_0x2e6bc8,_0x15ecb6){return db[_0x4375('0x2c')]['create'](_0x2e6bc8[_0x4375('0x48')],{})[_0x4375('0x24')](respondWithResult(_0x15ecb6,0xc9))['catch'](handleError(_0x15ecb6,null));};exports[_0x4375('0x23')]=function(_0x4389ce,_0xfde4b7){if(_0x4389ce['body']['id']){delete _0x4389ce[_0x4375('0x48')]['id'];}return db[_0x4375('0x2c')][_0x4375('0x47')]({'where':{'id':_0x4389ce[_0x4375('0x43')]['id']}})[_0x4375('0x24')](handleEntityNotFound(_0xfde4b7,null))[_0x4375('0x24')](saveUpdates(_0x4389ce[_0x4375('0x48')],null))[_0x4375('0x24')](respondWithResult(_0xfde4b7,null))[_0x4375('0x42')](handleError(_0xfde4b7,null));};exports[_0x4375('0x25')]=function(_0x452bac,_0xae7e50){return db['VoiceMailMessage']['find']({'where':{'id':_0x452bac[_0x4375('0x43')]['id']}})[_0x4375('0x24')](handleEntityNotFound(_0xae7e50,null))[_0x4375('0x24')](removeEntity(_0xae7e50,null))[_0x4375('0x42')](handleError(_0xae7e50,null));};exports[_0x4375('0x49')]=function(_0x5b6741,_0x4a58f8,_0x23b260){return db[_0x4375('0x2c')][_0x4375('0x47')]({'where':{'id':_0x5b6741[_0x4375('0x43')]['id']},'attributes':['id',_0x4375('0x4a'),'msg_id']})['then'](handleEntityNotFound(_0x4a58f8,null))[_0x4375('0x24')](function(_0x3fc6aa){if(_0x3fc6aa){if(!_0x3fc6aa[_0x4375('0x4a')]){throw new db[(_0x4375('0x4b'))][(_0x4375('0x4c'))](_0x4375('0x4d'));}var _0x2a6bfb={'Content-Type':'audio/wav','Content-Disposition':_0x4375('0x4e')};if(_0x3fc6aa['msg_id']){_0x2a6bfb[_0x4375('0x4f')]=_0x4375('0x50')+_0x3fc6aa[_0x4375('0x51')]+'.wav\x22';}_0x4a58f8[_0x4375('0x1e')](_0x2a6bfb);return _0x4a58f8[_0x4375('0x29')](new Buffer(_0x3fc6aa[_0x4375('0x4a')]));}})[_0x4375('0x42')](handleError(_0x4a58f8,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf61c=['exports','define','VoiceMailMessage','voice_voicemail_messages','dir','lodash','api','moment','path','rimraf','../../config/environment','./voiceMailMessage.attributes'];(function(_0x2dc577,_0x4eb9d4){var _0x2dbdd6=function(_0x5425d7){while(--_0x5425d7){_0x2dc577['push'](_0x2dc577['shift']());}};_0x2dbdd6(++_0x4eb9d4);}(_0xf61c,0x89));var _0xcf61=function(_0x38961f,_0x418c50){_0x38961f=_0x38961f-0x0;var _0x2396d8=_0xf61c[_0x38961f];return _0x2396d8;};'use strict';var _=require(_0xcf61('0x0'));var util=require('util');var logger=require('../../config/logger')(_0xcf61('0x1'));var moment=require(_0xcf61('0x2'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0xcf61('0x3'));var rimraf=require(_0xcf61('0x4'));var config=require(_0xcf61('0x5'));var attributes=require(_0xcf61('0x6'));module[_0xcf61('0x7')]=function(_0x39479e,_0x1cdbb4){return _0x39479e[_0xcf61('0x8')](_0xcf61('0x9'),attributes,{'tableName':_0xcf61('0xa'),'paranoid':![],'indexes':[{'name':_0xcf61('0xb'),'fields':[_0xcf61('0xb')]}],'timestamps':![]});};
\ No newline at end of file
+var _0x82a0=['dir','lodash','util','moment','bluebird','request-promise','path','rimraf','./voiceMailMessage.attributes','exports','define','VoiceMailMessage','voice_voicemail_messages'];(function(_0x5d64f3,_0x374d1a){var _0x2e5c81=function(_0x1de19d){while(--_0x1de19d){_0x5d64f3['push'](_0x5d64f3['shift']());}};_0x2e5c81(++_0x374d1a);}(_0x82a0,0xd1));var _0x082a=function(_0x2442b9,_0x3d87e9){_0x2442b9=_0x2442b9-0x0;var _0x31b571=_0x82a0[_0x2442b9];return _0x31b571;};'use strict';var _=require(_0x082a('0x0'));var util=require(_0x082a('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0x082a('0x2'));var BPromise=require(_0x082a('0x3'));var rp=require(_0x082a('0x4'));var fs=require('fs');var path=require(_0x082a('0x5'));var rimraf=require(_0x082a('0x6'));var config=require('../../config/environment');var attributes=require(_0x082a('0x7'));module[_0x082a('0x8')]=function(_0x644d8b,_0x2f8d53){return _0x644d8b[_0x082a('0x9')](_0x082a('0xa'),attributes,{'tableName':_0x082a('0xb'),'paranoid':![],'indexes':[{'name':'dir','fields':[_0x082a('0xc')]}],'timestamps':![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0d20=['request\x20sent','VoiceMailMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','VoiceMailMessage,\x20%s,\x20%s','message','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','info'];(function(_0xd291dd,_0xab3624){var _0x3a4b16=function(_0x3c425a){while(--_0x3c425a){_0xd291dd['push'](_0xd291dd['shift']());}};_0x3a4b16(++_0xab3624);}(_0x0d20,0x1a1));var _0x00d2=function(_0x368c56,_0x1b7db9){_0x368c56=_0x368c56-0x0;var _0x4de7cc=_0x0d20[_0x368c56];return _0x4de7cc;};'use strict';var _=require(_0x00d2('0x0'));var util=require(_0x00d2('0x1'));var moment=require(_0x00d2('0x2'));var BPromise=require(_0x00d2('0x3'));var rs=require(_0x00d2('0x4'));var fs=require('fs');var Redis=require(_0x00d2('0x5'));var db=require(_0x00d2('0x6'))['db'];var utils=require(_0x00d2('0x7'));var logger=require(_0x00d2('0x8'))(_0x00d2('0x9'));var config=require(_0x00d2('0xa'));var jayson=require(_0x00d2('0xb'));var client=jayson[_0x00d2('0xc')][_0x00d2('0xd')]({'port':0x232a});function respondWithRpcPromise(_0x1b0428,_0x5ef453,_0xa1f524){return new BPromise(function(_0xb7ded8,_0x4850cd){return client['request'](_0x1b0428,_0xa1f524)['then'](function(_0x3746a8){logger[_0x00d2('0xe')]('VoiceMailMessage,\x20%s,\x20%s',_0x5ef453,_0x00d2('0xf'));logger['debug'](_0x00d2('0x10'),_0x5ef453,'request\x20sent',JSON[_0x00d2('0x11')](_0x3746a8));if(_0x3746a8['error']){if(_0x3746a8[_0x00d2('0x12')][_0x00d2('0x13')]===0x1f4){logger[_0x00d2('0x12')](_0x00d2('0x14'),_0x5ef453,_0x3746a8[_0x00d2('0x12')][_0x00d2('0x15')]);return _0x4850cd(_0x3746a8[_0x00d2('0x12')][_0x00d2('0x15')]);}logger[_0x00d2('0x12')]('VoiceMailMessage,\x20%s,\x20%s',_0x5ef453,_0x3746a8[_0x00d2('0x12')][_0x00d2('0x15')]);return _0xb7ded8(_0x3746a8[_0x00d2('0x12')][_0x00d2('0x15')]);}else{logger['info'](_0x00d2('0x14'),_0x5ef453,_0x00d2('0xf'));_0xb7ded8(_0x3746a8[_0x00d2('0x16')]['message']);}})[_0x00d2('0x17')](function(_0x2eb8e4){logger[_0x00d2('0x12')](_0x00d2('0x14'),_0x5ef453,_0x2eb8e4);_0x4850cd(_0x2eb8e4);});});}
\ No newline at end of file
+var _0x513b=['randomstring','../../config/logger','../../config/environment','jayson/promise','client','http','then','info','VoiceMailMessage,\x20%s,\x20%s','request\x20sent','debug','VoiceMailMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','lodash','util','moment','bluebird'];(function(_0x4cdf1d,_0x354903){var _0x295988=function(_0x408988){while(--_0x408988){_0x4cdf1d['push'](_0x4cdf1d['shift']());}};_0x295988(++_0x354903);}(_0x513b,0xb9));var _0xb513=function(_0x391435,_0x33e747){_0x391435=_0x391435-0x0;var _0x2f6b37=_0x513b[_0x391435];return _0x2f6b37;};'use strict';var _=require(_0xb513('0x0'));var util=require(_0xb513('0x1'));var moment=require(_0xb513('0x2'));var BPromise=require(_0xb513('0x3'));var rs=require(_0xb513('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0xb513('0x5'))('rpc');var config=require(_0xb513('0x6'));var jayson=require(_0xb513('0x7'));var client=jayson[_0xb513('0x8')][_0xb513('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x550a63,_0x127263,_0x2e3834){return new BPromise(function(_0x440e02,_0x232f79){return client['request'](_0x550a63,_0x2e3834)[_0xb513('0xa')](function(_0x5424a8){logger[_0xb513('0xb')](_0xb513('0xc'),_0x127263,_0xb513('0xd'));logger[_0xb513('0xe')](_0xb513('0xf'),_0x127263,_0xb513('0xd'),JSON[_0xb513('0x10')](_0x5424a8));if(_0x5424a8['error']){if(_0x5424a8[_0xb513('0x11')][_0xb513('0x12')]===0x1f4){logger[_0xb513('0x11')]('VoiceMailMessage,\x20%s,\x20%s',_0x127263,_0x5424a8[_0xb513('0x11')]['message']);return _0x232f79(_0x5424a8[_0xb513('0x11')][_0xb513('0x13')]);}logger[_0xb513('0x11')](_0xb513('0xc'),_0x127263,_0x5424a8['error'][_0xb513('0x13')]);return _0x440e02(_0x5424a8['error'][_0xb513('0x13')]);}else{logger['info']('VoiceMailMessage,\x20%s,\x20%s',_0x127263,_0xb513('0xd'));_0x440e02(_0x5424a8['result'][_0xb513('0x13')]);}})[_0xb513('0x14')](function(_0x636cf0){logger[_0xb513('0x11')](_0xb513('0xc'),_0x127263,_0x636cf0);_0x232f79(_0x636cf0);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2928=['/:id','update','delete','destroy','/:id/sounds/:id2','exports','util','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./voiceMusicOnHold.controller','get','isAuthenticated','index','show','getSounds','post','/:id/sounds','addSound','put'];(function(_0x112d79,_0x2a1ab3){var _0x25f72d=function(_0x1cd0bd){while(--_0x1cd0bd){_0x112d79['push'](_0x112d79['shift']());}};_0x25f72d(++_0x2a1ab3);}(_0x2928,0x90));var _0x8292=function(_0x14fad0,_0x278d75){_0x14fad0=_0x14fad0-0x0;var _0x5c665f=_0x2928[_0x14fad0];return _0x5c665f;};'use strict';var multer=require('multer');var util=require(_0x8292('0x0'));var path=require(_0x8292('0x1'));var timeout=require(_0x8292('0x2'));var express=require('express');var router=express[_0x8292('0x3')]();var fs_extra=require(_0x8292('0x4'));var auth=require(_0x8292('0x5'));var interaction=require(_0x8292('0x6'));var config=require('../../config/environment');var controller=require(_0x8292('0x7'));router[_0x8292('0x8')]('/',auth[_0x8292('0x9')](),controller[_0x8292('0xa')]);router[_0x8292('0x8')]('/:id',auth[_0x8292('0x9')](),controller[_0x8292('0xb')]);router[_0x8292('0x8')]('/:id/sounds',auth[_0x8292('0x9')](),controller[_0x8292('0xc')]);router[_0x8292('0xd')]('/',auth[_0x8292('0x9')](),controller['create']);router[_0x8292('0xd')](_0x8292('0xe'),auth[_0x8292('0x9')](),controller[_0x8292('0xf')]);router[_0x8292('0x10')](_0x8292('0x11'),auth['isAuthenticated'](),controller[_0x8292('0x12')]);router[_0x8292('0x13')](_0x8292('0x11'),auth[_0x8292('0x9')](),controller[_0x8292('0x14')]);router[_0x8292('0x13')](_0x8292('0x15'),auth['isAuthenticated'](),controller['removeSound']);module[_0x8292('0x16')]=router;
\ No newline at end of file
+var _0xabe6=['getSounds','post','create','put','update','delete','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./voiceMusicOnHold.controller','index','get','/:id','show','/:id/sounds','isAuthenticated'];(function(_0x3b8edd,_0x5f323a){var _0x21722a=function(_0x27604f){while(--_0x27604f){_0x3b8edd['push'](_0x3b8edd['shift']());}};_0x21722a(++_0x5f323a);}(_0xabe6,0x18d));var _0x6abe=function(_0x571401,_0x419282){_0x571401=_0x571401-0x0;var _0x32959d=_0xabe6[_0x571401];return _0x32959d;};'use strict';var multer=require(_0x6abe('0x0'));var util=require(_0x6abe('0x1'));var path=require(_0x6abe('0x2'));var timeout=require(_0x6abe('0x3'));var express=require(_0x6abe('0x4'));var router=express[_0x6abe('0x5')]();var fs_extra=require(_0x6abe('0x6'));var auth=require(_0x6abe('0x7'));var interaction=require(_0x6abe('0x8'));var config=require(_0x6abe('0x9'));var controller=require(_0x6abe('0xa'));router['get']('/',auth['isAuthenticated'](),controller[_0x6abe('0xb')]);router[_0x6abe('0xc')](_0x6abe('0xd'),auth['isAuthenticated'](),controller[_0x6abe('0xe')]);router[_0x6abe('0xc')](_0x6abe('0xf'),auth[_0x6abe('0x10')](),controller[_0x6abe('0x11')]);router[_0x6abe('0x12')]('/',auth['isAuthenticated'](),controller[_0x6abe('0x13')]);router[_0x6abe('0x12')]('/:id/sounds',auth['isAuthenticated'](),controller['addSound']);router[_0x6abe('0x14')]('/:id',auth[_0x6abe('0x10')](),controller[_0x6abe('0x15')]);router[_0x6abe('0x16')]('/:id',auth[_0x6abe('0x10')](),controller['destroy']);router[_0x6abe('0x16')]('/:id/sounds/:id2',auth[_0x6abe('0x10')](),controller['removeSound']);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xab0c=['BOOLEAN','sequelize','exports','name','custom','files','quietmp3','STRING','alpha','TIMESTAMP'];(function(_0x513557,_0x25a592){var _0x159c8d=function(_0x26349c){while(--_0x26349c){_0x513557['push'](_0x513557['shift']());}};_0x159c8d(++_0x25a592);}(_0xab0c,0x83));var _0xcab0=function(_0x21ed43,_0x2bd296){_0x21ed43=_0x21ed43-0x0;var _0x2017fd=_0xab0c[_0x21ed43];return _0x2017fd;};'use strict';var Sequelize=require(_0xcab0('0x0'));module[_0xcab0('0x1')]={'name':{'type':Sequelize['STRING'],'allowNull':![],'unique':_0xcab0('0x2')},'mode':{'type':Sequelize['ENUM'](_0xcab0('0x3'),_0xcab0('0x4'),'mp3nb','quietmp3nb',_0xcab0('0x5'),'mp3'),'allowNull':!![],'defaultValue':'files'},'directory':{'type':Sequelize[_0xcab0('0x6')],'allowNull':!![]},'application':{'type':Sequelize[_0xcab0('0x6')],'allowNull':!![]},'digit':{'type':Sequelize[_0xcab0('0x6')],'allowNull':!![]},'sort':{'type':Sequelize[_0xcab0('0x6')],'allowNull':!![],'defaultValue':_0xcab0('0x7')},'format':{'type':Sequelize[_0xcab0('0x6')],'allowNull':!![]},'stamp':{'type':_0xcab0('0x8')},'defaultEntry':{'type':Sequelize[_0xcab0('0x9')],'defaultValue':0x0}};
\ No newline at end of file
+var _0xe25b=['custom','files','mp3nb','mp3','alpha','exports','STRING','ENUM'];(function(_0x2a56ad,_0x2b94bf){var _0x425175=function(_0x342f20){while(--_0x342f20){_0x2a56ad['push'](_0x2a56ad['shift']());}};_0x425175(++_0x2b94bf);}(_0xe25b,0xfd));var _0xbe25=function(_0x57d074,_0x444670){_0x57d074=_0x57d074-0x0;var _0x1aa706=_0xe25b[_0x57d074];return _0x1aa706;};'use strict';var Sequelize=require('sequelize');module[_0xbe25('0x0')]={'name':{'type':Sequelize[_0xbe25('0x1')],'allowNull':![],'unique':'name'},'mode':{'type':Sequelize[_0xbe25('0x2')](_0xbe25('0x3'),_0xbe25('0x4'),_0xbe25('0x5'),'quietmp3nb','quietmp3',_0xbe25('0x6')),'allowNull':!![],'defaultValue':'files'},'directory':{'type':Sequelize['STRING'],'allowNull':!![]},'application':{'type':Sequelize['STRING'],'allowNull':!![]},'digit':{'type':Sequelize['STRING'],'allowNull':!![]},'sort':{'type':Sequelize['STRING'],'allowNull':!![],'defaultValue':_0xbe25('0x7')},'format':{'type':Sequelize[_0xbe25('0x1')],'allowNull':!![]},'stamp':{'type':'TIMESTAMP'},'defaultEntry':{'type':Sequelize['BOOLEAN'],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xefb3=['fields','length','hasOwnProperty','nolimit','sort','where','filter','merge','VIRTUAL','includeAll','include','findAll','rows','params','rawAttributes','options','catch','body','create','sequelize','transaction','files','directory','join','root','server/files/moh','0777','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','find','readdirSync','forEach','unlinkSync','rmdirSync','ValidationError','message','addSound','Sound','findOne','converted_format','createdAt','server/files/sounds/converted','%s.%s','basename','extname','save_name','format','symlinkSync','Sequelize','removeSound','id2','getSounds','pick','zip-dir','request-promise','moment','bluebird','to-csv','ejs','lodash','squel','crypto','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../config/license/util','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','get','MusicOnHolds','UserProfileResource','sendStatus','error','stack','name','send','index','map','VoiceMusicOnHold','fieldName','type','key','model','query','keys','filters','intersection','attributes'];(function(_0x268958,_0x25a6e8){var _0xa7f7fd=function(_0x49b3ae){while(--_0x49b3ae){_0x268958['push'](_0x268958['shift']());}};_0xa7f7fd(++_0x25a6e8);}(_0xefb3,0xa6));var _0x3efb=function(_0x59b7ed,_0x21283a){_0x59b7ed=_0x59b7ed-0x0;var _0x16e140=_0xefb3[_0x59b7ed];return _0x16e140;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x3efb('0x0'));var jsonpatch=require('fast-json-patch');var rp=require(_0x3efb('0x1'));var moment=require(_0x3efb('0x2'));var BPromise=require(_0x3efb('0x3'));var Mustache=require('mustache');var util=require('util');var path=require('path');var sox=require('sox');var csv=require(_0x3efb('0x4'));var ejs=require(_0x3efb('0x5'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x3efb('0x6'));var squel=require(_0x3efb('0x7'));var crypto=require(_0x3efb('0x8'));var jsforce=require('jsforce');var deskjs=require(_0x3efb('0x9'));var toCsv=require(_0x3efb('0x4'));var querystring=require(_0x3efb('0xa'));var Papa=require('papaparse');var Redis=require(_0x3efb('0xb'));var authService=require(_0x3efb('0xc'));var qs=require(_0x3efb('0xd'));var as=require(_0x3efb('0xe'));var hardwareService=require(_0x3efb('0xf'));var logger=require('../../config/logger')(_0x3efb('0x10'));var utils=require('../../config/utils');var config=require(_0x3efb('0x11'));var licenseUtil=require(_0x3efb('0x12'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x319f0,_0x281ee4){_0x281ee4=_0x281ee4||0xcc;return function(_0x27b57f){if(_0x27b57f){return _0x319f0['sendStatus'](_0x281ee4);}return _0x319f0[_0x3efb('0x13')](_0x281ee4)[_0x3efb('0x14')]();};}function respondWithResult(_0x2c9c6a,_0x14922c){_0x14922c=_0x14922c||0xc8;return function(_0x17ba54){if(_0x17ba54){return _0x2c9c6a[_0x3efb('0x13')](_0x14922c)[_0x3efb('0x15')](_0x17ba54);}};}function respondWithFilteredResult(_0x244b18,_0x1a1355){return function(_0x19549d){if(_0x19549d){var _0x444378=typeof _0x1a1355[_0x3efb('0x16')]===_0x3efb('0x17')&&typeof _0x1a1355[_0x3efb('0x18')]==='undefined';var _0x171f0e=_0x19549d[_0x3efb('0x19')];var _0x2f858b=_0x444378?0x0:_0x1a1355[_0x3efb('0x16')];var _0xdb874c=_0x444378?_0x19549d[_0x3efb('0x19')]:_0x1a1355[_0x3efb('0x16')]+_0x1a1355[_0x3efb('0x18')];var _0x1e9022;if(_0xdb874c>=_0x171f0e){_0xdb874c=_0x171f0e;_0x1e9022=0xc8;}else{_0x1e9022=0xce;}_0x244b18[_0x3efb('0x13')](_0x1e9022);return _0x244b18[_0x3efb('0x1a')](_0x3efb('0x1b'),_0x2f858b+'-'+_0xdb874c+'/'+_0x171f0e)[_0x3efb('0x15')](_0x19549d);}return null;};}function patchUpdates(_0x3f314b){return function(_0x76ba11){try{jsonpatch[_0x3efb('0x1c')](_0x76ba11,_0x3f314b,!![]);}catch(_0x52f54f){return BPromise[_0x3efb('0x1d')](_0x52f54f);}return _0x76ba11[_0x3efb('0x1e')]();};}function saveUpdates(_0x9394ac,_0x21fa48){return function(_0x24b6a9){if(_0x24b6a9){return _0x24b6a9[_0x3efb('0x1f')](_0x9394ac)[_0x3efb('0x20')](function(_0x27a6f3){return _0x27a6f3;});}return null;};}function removeEntity(_0x4df34b,_0x1ca681){return function(_0x1ae164){if(_0x1ae164){return _0x1ae164[_0x3efb('0x21')]()[_0x3efb('0x20')](function(){var _0xa2969=_0x1ae164[_0x3efb('0x22')]({'plain':!![]});var _0x186499=_0x3efb('0x23');return db[_0x3efb('0x24')][_0x3efb('0x21')]({'where':{'type':_0x186499,'resourceId':_0xa2969['id']}})['then'](function(){return _0x1ae164;});})[_0x3efb('0x20')](function(){_0x4df34b[_0x3efb('0x13')](0xcc)[_0x3efb('0x14')]();});}};}function handleEntityNotFound(_0x5410c2,_0x308a1a){return function(_0x33c6aa){if(!_0x33c6aa){_0x5410c2[_0x3efb('0x25')](0x194);}return _0x33c6aa;};}function handleError(_0x28dd10,_0x25848c){_0x25848c=_0x25848c||0x1f4;return function(_0x33f872){logger[_0x3efb('0x26')](_0x33f872[_0x3efb('0x27')]);if(_0x33f872[_0x3efb('0x28')]){delete _0x33f872[_0x3efb('0x28')];}_0x28dd10['status'](_0x25848c)[_0x3efb('0x29')](_0x33f872);};}exports[_0x3efb('0x2a')]=function(_0x37ebc9,_0x566329){var _0x4dad11={},_0x960632={},_0x4d8aff={'count':0x0,'rows':[]};var _0x65f9f4=_[_0x3efb('0x2b')](db[_0x3efb('0x2c')]['rawAttributes'],function(_0x324661){return{'name':_0x324661[_0x3efb('0x2d')],'type':_0x324661[_0x3efb('0x2e')][_0x3efb('0x2f')]};});_0x960632[_0x3efb('0x30')]=_[_0x3efb('0x2b')](_0x65f9f4,_0x3efb('0x28'));_0x960632[_0x3efb('0x31')]=_[_0x3efb('0x32')](_0x37ebc9[_0x3efb('0x31')]);_0x960632[_0x3efb('0x33')]=_[_0x3efb('0x34')](_0x960632[_0x3efb('0x30')],_0x960632[_0x3efb('0x31')]);_0x4dad11[_0x3efb('0x35')]=_[_0x3efb('0x34')](_0x960632[_0x3efb('0x30')],qs[_0x3efb('0x36')](_0x37ebc9[_0x3efb('0x31')]['fields']));_0x4dad11['attributes']=_0x4dad11['attributes'][_0x3efb('0x37')]?_0x4dad11[_0x3efb('0x35')]:_0x960632[_0x3efb('0x30')];if(!_0x37ebc9[_0x3efb('0x31')][_0x3efb('0x38')](_0x3efb('0x39'))){_0x4dad11['limit']=qs[_0x3efb('0x18')](_0x37ebc9[_0x3efb('0x31')][_0x3efb('0x18')]);_0x4dad11['offset']=qs[_0x3efb('0x16')](_0x37ebc9['query'][_0x3efb('0x16')]);}_0x4dad11['order']=qs[_0x3efb('0x3a')](_0x37ebc9[_0x3efb('0x31')][_0x3efb('0x3a')]);delete _0x37ebc9[_0x3efb('0x31')][_0x3efb('0x3a')];_0x4dad11[_0x3efb('0x3b')]=qs[_0x3efb('0x33')](_['pick'](_0x37ebc9[_0x3efb('0x31')],_0x960632[_0x3efb('0x33')]),_0x65f9f4);if(_0x37ebc9['query'][_0x3efb('0x3c')]){_0x4dad11[_0x3efb('0x3b')]=_[_0x3efb('0x3d')](_0x4dad11[_0x3efb('0x3b')],{'$or':_[_0x3efb('0x2b')](_0x65f9f4,function(_0x1ef8fa){if(_0x1ef8fa['type']!==_0x3efb('0x3e')){var _0xd603f1={};_0xd603f1[_0x1ef8fa[_0x3efb('0x28')]]={'$like':'%'+_0x37ebc9[_0x3efb('0x31')][_0x3efb('0x3c')]+'%'};return _0xd603f1;}})});}_0x4dad11=_[_0x3efb('0x3d')]({},_0x4dad11,_0x37ebc9['options']);var _0x5beceb={'where':_0x4dad11[_0x3efb('0x3b')]};return db[_0x3efb('0x2c')][_0x3efb('0x19')](_0x5beceb)[_0x3efb('0x20')](function(_0x3242bf){_0x4d8aff[_0x3efb('0x19')]=_0x3242bf;if(_0x37ebc9[_0x3efb('0x31')][_0x3efb('0x3f')]){_0x4dad11[_0x3efb('0x40')]=[{'all':!![]}];}return db[_0x3efb('0x2c')][_0x3efb('0x41')](_0x4dad11);})[_0x3efb('0x20')](function(_0x42920a){_0x4d8aff[_0x3efb('0x42')]=_0x42920a;return _0x4d8aff;})[_0x3efb('0x20')](respondWithFilteredResult(_0x566329,_0x4dad11))['catch'](handleError(_0x566329,null));};exports['show']=function(_0x45399d,_0x25f00d){var _0x7144f9={'raw':![],'where':{'id':_0x45399d[_0x3efb('0x43')]['id']}},_0x48f91c={};_0x48f91c[_0x3efb('0x30')]=_[_0x3efb('0x32')](db['VoiceMusicOnHold'][_0x3efb('0x44')]);_0x48f91c['query']=_[_0x3efb('0x32')](_0x45399d[_0x3efb('0x31')]);_0x48f91c[_0x3efb('0x33')]=_[_0x3efb('0x34')](_0x48f91c[_0x3efb('0x30')],_0x48f91c['query']);_0x7144f9[_0x3efb('0x35')]=_[_0x3efb('0x34')](_0x48f91c[_0x3efb('0x30')],qs[_0x3efb('0x36')](_0x45399d[_0x3efb('0x31')][_0x3efb('0x36')]));_0x7144f9[_0x3efb('0x35')]=_0x7144f9[_0x3efb('0x35')][_0x3efb('0x37')]?_0x7144f9[_0x3efb('0x35')]:_0x48f91c[_0x3efb('0x30')];if(_0x45399d[_0x3efb('0x31')]['includeAll']){_0x7144f9[_0x3efb('0x40')]=[{'all':!![]}];}_0x7144f9=_['merge']({},_0x7144f9,_0x45399d[_0x3efb('0x45')]);return db[_0x3efb('0x2c')]['find'](_0x7144f9)[_0x3efb('0x20')](handleEntityNotFound(_0x25f00d,null))[_0x3efb('0x20')](respondWithResult(_0x25f00d,null))[_0x3efb('0x46')](handleError(_0x25f00d,null));};exports[_0x3efb('0x1f')]=function(_0x52f878,_0x1ab9dd){if(_0x52f878[_0x3efb('0x47')]['id']){delete _0x52f878[_0x3efb('0x47')]['id'];}return db[_0x3efb('0x2c')]['find']({'where':{'id':_0x52f878[_0x3efb('0x43')]['id']}})[_0x3efb('0x20')](handleEntityNotFound(_0x1ab9dd,null))[_0x3efb('0x20')](saveUpdates(_0x52f878[_0x3efb('0x47')],null))[_0x3efb('0x20')](respondWithResult(_0x1ab9dd,null))[_0x3efb('0x46')](handleError(_0x1ab9dd,null));};exports[_0x3efb('0x48')]=function(_0x593cc2,_0x15be9b,_0x23b4e1){return db[_0x3efb('0x49')][_0x3efb('0x4a')](function(_0xbe4fee){if(_0x593cc2[_0x3efb('0x47')]['mode']===_0x3efb('0x4b')){_0x593cc2['body'][_0x3efb('0x4c')]=path[_0x3efb('0x4d')](config[_0x3efb('0x4e')],_0x3efb('0x4f'),_0x593cc2[_0x3efb('0x47')][_0x3efb('0x28')]);}return db[_0x3efb('0x2c')][_0x3efb('0x48')](_0x593cc2[_0x3efb('0x47')],{'transaction':_0xbe4fee})[_0x3efb('0x20')](function(_0x31bcfb){if(_0x593cc2[_0x3efb('0x47')]['mode']===_0x3efb('0x4b')){fs['mkdirSync'](_0x31bcfb[_0x3efb('0x4c')],parseInt(_0x3efb('0x50'),0x8));}var _0x334351=_0x593cc2[_0x3efb('0x51')][_0x3efb('0x22')]({'plain':!![]});if(!_0x334351)throw new Error(_0x3efb('0x52'));if(_0x334351['role']===_0x3efb('0x51')){var _0x46d2b5=_0x31bcfb[_0x3efb('0x22')]({'plain':!![]});return db[_0x3efb('0x53')]['find']({'where':{'name':_0x3efb('0x23'),'userProfileId':_0x334351[_0x3efb('0x54')]},'raw':!![]})[_0x3efb('0x20')](function(_0x222d11){if(_0x222d11&&_0x222d11['autoAssociation']===0x0){return db[_0x3efb('0x24')][_0x3efb('0x48')]({'name':_0x46d2b5[_0x3efb('0x28')],'resourceId':_0x46d2b5['id'],'type':_0x222d11[_0x3efb('0x28')],'sectionId':_0x222d11['id']},{})[_0x3efb('0x20')](function(){return _0x31bcfb;});}else{return _0x31bcfb;}})[_0x3efb('0x46')](function(_0x27d251){logger[_0x3efb('0x26')](_0x3efb('0x55'),_0x27d251);});}return _0x31bcfb;});})['then'](respondWithResult(_0x15be9b,0xc9))['catch'](handleError(_0x15be9b,null));};exports[_0x3efb('0x21')]=function(_0x4a0aa2,_0x30eed9,_0x1b4946){var _0x396615;return db['VoiceMusicOnHold'][_0x3efb('0x56')]({'where':{'id':_0x4a0aa2[_0x3efb('0x43')]['id']}})[_0x3efb('0x20')](function(_0x28eb94){if(_0x28eb94){return db[_0x3efb('0x49')]['transaction'](function(_0x3e3050){return _0x28eb94['destroy']({'transaction':_0x3e3050,'raw':!![]})[_0x3efb('0x20')](function(_0x2c8a47){if(_0x2c8a47[_0x3efb('0x4c')]){fs[_0x3efb('0x57')](_0x2c8a47[_0x3efb('0x4c')])[_0x3efb('0x58')](function(_0x2ac8dc){fs[_0x3efb('0x59')](path[_0x3efb('0x4d')](_0x2c8a47[_0x3efb('0x4c')],_0x2ac8dc));});fs[_0x3efb('0x5a')](_0x2c8a47['directory']);}return _0x2c8a47;});})['catch'](function(_0xdfa873){throw new db['Sequelize'][(_0x3efb('0x5b'))](_0xdfa873[_0x3efb('0x5c')]);});}})[_0x3efb('0x20')](handleEntityNotFound(_0x30eed9,null))[_0x3efb('0x20')](removeEntity(_0x30eed9,null))[_0x3efb('0x46')](handleError(_0x30eed9,null));};exports[_0x3efb('0x5d')]=function(_0x27cc91,_0x381c7d,_0x4be140){return db[_0x3efb('0x49')][_0x3efb('0x4a')](function(_0x407729){var _0x195b59;return db[_0x3efb('0x2c')]['find']({'where':{'id':_0x27cc91['params']['id']}})[_0x3efb('0x20')](function(_0x3bf7e0){if(_0x3bf7e0){_0x195b59=_0x3bf7e0;return _0x3bf7e0['addSound'](_0x27cc91['body']['id'],{'transaction':_0x407729});}})[_0x3efb('0x20')](function(_0x540ed8){if(_0x540ed8){return db[_0x3efb('0x5e')][_0x3efb('0x5f')]({'where':{'id':_0x27cc91[_0x3efb('0x47')]['id']},'attributes':['id',_0x3efb('0x28'),'save_name',_0x3efb('0x60'),_0x3efb('0x61')],'raw':!![]});}})['then'](function(_0x290e8c){if(_0x290e8c){var _0x192745=path[_0x3efb('0x4d')](config[_0x3efb('0x4e')],_0x3efb('0x62'),util['format'](_0x3efb('0x63'),path[_0x3efb('0x64')](_0x290e8c['save_name'],path[_0x3efb('0x65')](_0x290e8c[_0x3efb('0x66')])),_0x290e8c[_0x3efb('0x60')]));var _0x4429a6=path[_0x3efb('0x4d')](config[_0x3efb('0x4e')],'server/files/moh',_0x195b59[_0x3efb('0x28')],util[_0x3efb('0x67')](_0x3efb('0x63'),_0x290e8c[_0x3efb('0x28')],_0x290e8c[_0x3efb('0x60')]));fs[_0x3efb('0x68')](_0x192745,_0x4429a6);return _0x290e8c;}})['catch'](function(_0xe7530){throw new db[(_0x3efb('0x69'))]['ValidationError'](_0xe7530[_0x3efb('0x5c')]);});})[_0x3efb('0x20')](handleEntityNotFound(_0x381c7d,null))[_0x3efb('0x20')](respondWithResult(_0x381c7d,0xc9))[_0x3efb('0x46')](handleError(_0x381c7d,null));};exports[_0x3efb('0x6a')]=function(_0x9d9094,_0x3743bb,_0x145b9e){return db[_0x3efb('0x49')]['transaction'](function(_0x3d8bd9){var _0xa312d9;return db[_0x3efb('0x2c')][_0x3efb('0x5f')]({'where':{'id':_0x9d9094[_0x3efb('0x43')]['id']}})[_0x3efb('0x20')](handleEntityNotFound(_0x3743bb,null))[_0x3efb('0x20')](function(_0x421e77){if(_0x421e77){_0xa312d9=_0x421e77;return _0x421e77[_0x3efb('0x6a')](_0x9d9094[_0x3efb('0x43')][_0x3efb('0x6b')]);}})[_0x3efb('0x20')](function(_0x430622){if(_0x430622){return db['Sound'][_0x3efb('0x5f')]({'where':{'id':_0x9d9094['params']['id2']},'attributes':['id',_0x3efb('0x28'),_0x3efb('0x66'),_0x3efb('0x60'),'createdAt'],'raw':!![]});}})[_0x3efb('0x20')](function(_0xd4840e){if(_0xd4840e){fs[_0x3efb('0x59')](path[_0x3efb('0x4d')](_0xa312d9[_0x3efb('0x4c')],util[_0x3efb('0x67')](_0x3efb('0x63'),_0xd4840e[_0x3efb('0x28')],_0xd4840e['converted_format'])));return _0xd4840e;}})[_0x3efb('0x46')](function(_0x296e2f){throw new db['Sequelize'][(_0x3efb('0x5b'))](_0x296e2f['message']);});})[_0x3efb('0x20')](handleEntityNotFound(_0x3743bb,null))[_0x3efb('0x20')](respondWithStatusCode(_0x3743bb,0xcc))[_0x3efb('0x46')](handleError(_0x3743bb,null));};exports[_0x3efb('0x6c')]=function(_0x565924,_0xc6d37a,_0x18a052){var _0x2e79f7={};var _0x180dd9={};var _0x4d5042;var _0x517480;return db['VoiceMusicOnHold']['findOne']({'where':{'id':_0x565924[_0x3efb('0x43')]['id']}})['then'](handleEntityNotFound(_0xc6d37a,null))[_0x3efb('0x20')](function(_0x1d816c){if(_0x1d816c){_0x4d5042=_0x1d816c;_0x180dd9[_0x3efb('0x30')]=_[_0x3efb('0x32')](db[_0x3efb('0x5e')][_0x3efb('0x44')]);_0x180dd9['query']=_[_0x3efb('0x32')](_0x565924[_0x3efb('0x31')]);_0x180dd9['filters']=_[_0x3efb('0x34')](_0x180dd9[_0x3efb('0x30')],_0x180dd9[_0x3efb('0x31')]);_0x2e79f7['attributes']=_[_0x3efb('0x34')](_0x180dd9['model'],qs[_0x3efb('0x36')](_0x565924[_0x3efb('0x31')][_0x3efb('0x36')]));_0x2e79f7[_0x3efb('0x35')]=_0x2e79f7[_0x3efb('0x35')]['length']?_0x2e79f7[_0x3efb('0x35')]:_0x180dd9[_0x3efb('0x30')];_0x2e79f7['order']=qs['sort'](_0x565924[_0x3efb('0x31')][_0x3efb('0x3a')]);_0x2e79f7[_0x3efb('0x3b')]=qs['filters'](_[_0x3efb('0x6d')](_0x565924[_0x3efb('0x31')],_0x180dd9['filters']));if(_0x565924['query'][_0x3efb('0x3c')]){_0x2e79f7[_0x3efb('0x3b')]=_['merge'](_0x2e79f7[_0x3efb('0x3b')],{'$or':_[_0x3efb('0x2b')](_0x2e79f7[_0x3efb('0x35')],function(_0x210638){var _0x51d1f1={};_0x51d1f1[_0x210638]={'$like':'%'+_0x565924[_0x3efb('0x31')][_0x3efb('0x3c')]+'%'};return _0x51d1f1;})});}_0x2e79f7=_[_0x3efb('0x3d')]({},_0x2e79f7,_0x565924[_0x3efb('0x45')]);return _0x4d5042['getSounds'](_0x2e79f7);}})['then'](function(_0x4de960){if(_0x4de960){_0x517480=_0x4de960[_0x3efb('0x37')];if(!_0x565924['query']['hasOwnProperty'](_0x3efb('0x39'))){_0x2e79f7['limit']=qs['limit'](_0x565924[_0x3efb('0x31')]['limit']);_0x2e79f7['offset']=qs['offset'](_0x565924[_0x3efb('0x31')][_0x3efb('0x16')]);}return _0x4d5042['getSounds'](_0x2e79f7);}})[_0x3efb('0x20')](function(_0x48f096){if(_0x48f096){return _0x48f096?{'count':_0x517480,'rows':_0x48f096}:null;}})[_0x3efb('0x20')](respondWithResult(_0xc6d37a,null))['catch'](handleError(_0xc6d37a,null));};
\ No newline at end of file
+var _0x7936=['id2','getSounds','eml-format','rimraf','zip-dir','moment','bluebird','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','save','update','then','destroy','get','MusicOnHolds','UserProfileResource','stack','name','index','VoiceMusicOnHold','rawAttributes','type','key','model','keys','query','filters','intersection','attributes','length','nolimit','order','sort','where','map','VIRTUAL','filter','merge','includeAll','include','findAll','rows','catch','show','params','fields','options','find','body','create','sequelize','mode','join','root','server/files/moh','files','mkdirSync','directory','0777','user','role','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','transaction','forEach','unlinkSync','Sequelize','ValidationError','message','addSound','Sound','findOne','converted_format','createdAt','server/files/sounds/converted','format','%s.%s','save_name','extname','removeSound'];(function(_0x58d9b7,_0x51b168){var _0x47138b=function(_0x455d72){while(--_0x455d72){_0x58d9b7['push'](_0x58d9b7['shift']());}};_0x47138b(++_0x51b168);}(_0x7936,0x1be));var _0x6793=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x7936[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0x6793('0x0'));var rimraf=require(_0x6793('0x1'));var zipdir=require(_0x6793('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x6793('0x3'));var BPromise=require(_0x6793('0x4'));var Mustache=require('mustache');var util=require(_0x6793('0x5'));var path=require(_0x6793('0x6'));var sox=require(_0x6793('0x7'));var csv=require(_0x6793('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x6793('0x9'));var _=require(_0x6793('0xa'));var squel=require(_0x6793('0xb'));var crypto=require(_0x6793('0xc'));var jsforce=require(_0x6793('0xd'));var deskjs=require(_0x6793('0xe'));var toCsv=require(_0x6793('0x8'));var querystring=require(_0x6793('0xf'));var Papa=require('papaparse');var Redis=require(_0x6793('0x10'));var authService=require(_0x6793('0x11'));var qs=require(_0x6793('0x12'));var as=require(_0x6793('0x13'));var hardwareService=require(_0x6793('0x14'));var logger=require(_0x6793('0x15'))(_0x6793('0x16'));var utils=require(_0x6793('0x17'));var config=require(_0x6793('0x18'));var licenseUtil=require(_0x6793('0x19'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x2b3876,_0x142519){_0x142519=_0x142519||0xcc;return function(_0x483e00){if(_0x483e00){return _0x2b3876[_0x6793('0x1a')](_0x142519);}return _0x2b3876['status'](_0x142519)['end']();};}function respondWithResult(_0x273257,_0x3ac87f){_0x3ac87f=_0x3ac87f||0xc8;return function(_0x2f2f1d){if(_0x2f2f1d){return _0x273257[_0x6793('0x1b')](_0x3ac87f)[_0x6793('0x1c')](_0x2f2f1d);}};}function respondWithFilteredResult(_0x4221fd,_0x1b00e4){return function(_0x4a1d21){if(_0x4a1d21){var _0x646586=typeof _0x1b00e4[_0x6793('0x1d')]===_0x6793('0x1e')&&typeof _0x1b00e4[_0x6793('0x1f')]==='undefined';var _0xd1640=_0x4a1d21[_0x6793('0x20')];var _0x2a008f=_0x646586?0x0:_0x1b00e4[_0x6793('0x1d')];var _0xfd21de=_0x646586?_0x4a1d21[_0x6793('0x20')]:_0x1b00e4['offset']+_0x1b00e4[_0x6793('0x1f')];var _0x5f127d;if(_0xfd21de>=_0xd1640){_0xfd21de=_0xd1640;_0x5f127d=0xc8;}else{_0x5f127d=0xce;}_0x4221fd[_0x6793('0x1b')](_0x5f127d);return _0x4221fd[_0x6793('0x21')](_0x6793('0x22'),_0x2a008f+'-'+_0xfd21de+'/'+_0xd1640)[_0x6793('0x1c')](_0x4a1d21);}return null;};}function patchUpdates(_0x5e733e){return function(_0x2ec1e9){try{jsonpatch[_0x6793('0x23')](_0x2ec1e9,_0x5e733e,!![]);}catch(_0x5a8bd7){return BPromise['reject'](_0x5a8bd7);}return _0x2ec1e9[_0x6793('0x24')]();};}function saveUpdates(_0x167116,_0x56a6f8){return function(_0x536822){if(_0x536822){return _0x536822[_0x6793('0x25')](_0x167116)[_0x6793('0x26')](function(_0x537d7d){return _0x537d7d;});}return null;};}function removeEntity(_0x4a8cab,_0x194b59){return function(_0x2df306){if(_0x2df306){return _0x2df306[_0x6793('0x27')]()[_0x6793('0x26')](function(){var _0x25bfdf=_0x2df306[_0x6793('0x28')]({'plain':!![]});var _0x2d4015=_0x6793('0x29');return db[_0x6793('0x2a')][_0x6793('0x27')]({'where':{'type':_0x2d4015,'resourceId':_0x25bfdf['id']}})['then'](function(){return _0x2df306;});})[_0x6793('0x26')](function(){_0x4a8cab['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x3b87c1,_0x1f5e66){return function(_0xbde471){if(!_0xbde471){_0x3b87c1[_0x6793('0x1a')](0x194);}return _0xbde471;};}function handleError(_0x46166b,_0x18096a){_0x18096a=_0x18096a||0x1f4;return function(_0x946a21){logger['error'](_0x946a21[_0x6793('0x2b')]);if(_0x946a21[_0x6793('0x2c')]){delete _0x946a21[_0x6793('0x2c')];}_0x46166b[_0x6793('0x1b')](_0x18096a)['send'](_0x946a21);};}exports[_0x6793('0x2d')]=function(_0x4b05c0,_0x171f3b){var _0x506979={},_0x169ecb={},_0x482c1a={'count':0x0,'rows':[]};var _0x495d5a=_['map'](db[_0x6793('0x2e')][_0x6793('0x2f')],function(_0x5c19d8){return{'name':_0x5c19d8['fieldName'],'type':_0x5c19d8[_0x6793('0x30')][_0x6793('0x31')]};});_0x169ecb[_0x6793('0x32')]=_['map'](_0x495d5a,_0x6793('0x2c'));_0x169ecb['query']=_[_0x6793('0x33')](_0x4b05c0[_0x6793('0x34')]);_0x169ecb[_0x6793('0x35')]=_[_0x6793('0x36')](_0x169ecb[_0x6793('0x32')],_0x169ecb[_0x6793('0x34')]);_0x506979[_0x6793('0x37')]=_[_0x6793('0x36')](_0x169ecb[_0x6793('0x32')],qs['fields'](_0x4b05c0[_0x6793('0x34')]['fields']));_0x506979[_0x6793('0x37')]=_0x506979[_0x6793('0x37')][_0x6793('0x38')]?_0x506979['attributes']:_0x169ecb[_0x6793('0x32')];if(!_0x4b05c0[_0x6793('0x34')]['hasOwnProperty'](_0x6793('0x39'))){_0x506979[_0x6793('0x1f')]=qs[_0x6793('0x1f')](_0x4b05c0[_0x6793('0x34')][_0x6793('0x1f')]);_0x506979['offset']=qs[_0x6793('0x1d')](_0x4b05c0[_0x6793('0x34')][_0x6793('0x1d')]);}_0x506979[_0x6793('0x3a')]=qs[_0x6793('0x3b')](_0x4b05c0[_0x6793('0x34')][_0x6793('0x3b')]);delete _0x4b05c0[_0x6793('0x34')][_0x6793('0x3b')];_0x506979[_0x6793('0x3c')]=qs[_0x6793('0x35')](_['pick'](_0x4b05c0[_0x6793('0x34')],_0x169ecb[_0x6793('0x35')]),_0x495d5a);if(_0x4b05c0[_0x6793('0x34')]['filter']){_0x506979[_0x6793('0x3c')]=_['merge'](_0x506979[_0x6793('0x3c')],{'$or':_[_0x6793('0x3d')](_0x495d5a,function(_0x462435){if(_0x462435['type']!==_0x6793('0x3e')){var _0x1829b6={};_0x1829b6[_0x462435[_0x6793('0x2c')]]={'$like':'%'+_0x4b05c0['query'][_0x6793('0x3f')]+'%'};return _0x1829b6;}})});}_0x506979=_[_0x6793('0x40')]({},_0x506979,_0x4b05c0['options']);var _0x395de8={'where':_0x506979[_0x6793('0x3c')]};return db[_0x6793('0x2e')]['count'](_0x395de8)['then'](function(_0xdb0dba){_0x482c1a[_0x6793('0x20')]=_0xdb0dba;if(_0x4b05c0['query'][_0x6793('0x41')]){_0x506979[_0x6793('0x42')]=[{'all':!![]}];}return db[_0x6793('0x2e')][_0x6793('0x43')](_0x506979);})[_0x6793('0x26')](function(_0x3098f6){_0x482c1a[_0x6793('0x44')]=_0x3098f6;return _0x482c1a;})[_0x6793('0x26')](respondWithFilteredResult(_0x171f3b,_0x506979))[_0x6793('0x45')](handleError(_0x171f3b,null));};exports[_0x6793('0x46')]=function(_0x4eec6c,_0x2ab900){var _0x371126={'raw':![],'where':{'id':_0x4eec6c[_0x6793('0x47')]['id']}},_0x2aa15a={};_0x2aa15a[_0x6793('0x32')]=_[_0x6793('0x33')](db[_0x6793('0x2e')]['rawAttributes']);_0x2aa15a[_0x6793('0x34')]=_['keys'](_0x4eec6c[_0x6793('0x34')]);_0x2aa15a[_0x6793('0x35')]=_['intersection'](_0x2aa15a['model'],_0x2aa15a[_0x6793('0x34')]);_0x371126[_0x6793('0x37')]=_[_0x6793('0x36')](_0x2aa15a[_0x6793('0x32')],qs['fields'](_0x4eec6c[_0x6793('0x34')][_0x6793('0x48')]));_0x371126[_0x6793('0x37')]=_0x371126[_0x6793('0x37')][_0x6793('0x38')]?_0x371126[_0x6793('0x37')]:_0x2aa15a['model'];if(_0x4eec6c[_0x6793('0x34')]['includeAll']){_0x371126[_0x6793('0x42')]=[{'all':!![]}];}_0x371126=_['merge']({},_0x371126,_0x4eec6c[_0x6793('0x49')]);return db[_0x6793('0x2e')]['find'](_0x371126)[_0x6793('0x26')](handleEntityNotFound(_0x2ab900,null))[_0x6793('0x26')](respondWithResult(_0x2ab900,null))[_0x6793('0x45')](handleError(_0x2ab900,null));};exports[_0x6793('0x25')]=function(_0x4ea254,_0x4bbc1c){if(_0x4ea254['body']['id']){delete _0x4ea254['body']['id'];}return db[_0x6793('0x2e')][_0x6793('0x4a')]({'where':{'id':_0x4ea254[_0x6793('0x47')]['id']}})[_0x6793('0x26')](handleEntityNotFound(_0x4bbc1c,null))[_0x6793('0x26')](saveUpdates(_0x4ea254[_0x6793('0x4b')],null))['then'](respondWithResult(_0x4bbc1c,null))['catch'](handleError(_0x4bbc1c,null));};exports[_0x6793('0x4c')]=function(_0x2894b8,_0x5b72de,_0x37ab09){return db[_0x6793('0x4d')]['transaction'](function(_0x977dc5){if(_0x2894b8[_0x6793('0x4b')][_0x6793('0x4e')]==='files'){_0x2894b8[_0x6793('0x4b')]['directory']=path[_0x6793('0x4f')](config[_0x6793('0x50')],_0x6793('0x51'),_0x2894b8[_0x6793('0x4b')]['name']);}return db[_0x6793('0x2e')][_0x6793('0x4c')](_0x2894b8[_0x6793('0x4b')],{'transaction':_0x977dc5})[_0x6793('0x26')](function(_0x46fd9d){if(_0x2894b8['body'][_0x6793('0x4e')]===_0x6793('0x52')){fs[_0x6793('0x53')](_0x46fd9d[_0x6793('0x54')],parseInt(_0x6793('0x55'),0x8));}var _0xccbad6=_0x2894b8[_0x6793('0x56')][_0x6793('0x28')]({'plain':!![]});if(!_0xccbad6)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0xccbad6[_0x6793('0x57')]==='user'){var _0x23fa0f=_0x46fd9d[_0x6793('0x28')]({'plain':!![]});return db['UserProfileSection'][_0x6793('0x4a')]({'where':{'name':'MusicOnHolds','userProfileId':_0xccbad6[_0x6793('0x58')]},'raw':!![]})['then'](function(_0x202cb6){if(_0x202cb6&&_0x202cb6[_0x6793('0x59')]===0x0){return db[_0x6793('0x2a')][_0x6793('0x4c')]({'name':_0x23fa0f[_0x6793('0x2c')],'resourceId':_0x23fa0f['id'],'type':_0x202cb6['name'],'sectionId':_0x202cb6['id']},{})['then'](function(){return _0x46fd9d;});}else{return _0x46fd9d;}})[_0x6793('0x45')](function(_0x31c5c9){logger[_0x6793('0x5a')](_0x6793('0x5b'),_0x31c5c9);});}return _0x46fd9d;});})[_0x6793('0x26')](respondWithResult(_0x5b72de,0xc9))['catch'](handleError(_0x5b72de,null));};exports[_0x6793('0x27')]=function(_0x2c97dc,_0xf0c731,_0x4844ab){var _0x383810;return db['VoiceMusicOnHold'][_0x6793('0x4a')]({'where':{'id':_0x2c97dc[_0x6793('0x47')]['id']}})[_0x6793('0x26')](function(_0x2d7647){if(_0x2d7647){return db['sequelize'][_0x6793('0x5c')](function(_0x5eee08){return _0x2d7647[_0x6793('0x27')]({'transaction':_0x5eee08,'raw':!![]})[_0x6793('0x26')](function(_0x24502f){if(_0x24502f[_0x6793('0x54')]){fs['readdirSync'](_0x24502f['directory'])[_0x6793('0x5d')](function(_0x2eb53d){fs[_0x6793('0x5e')](path[_0x6793('0x4f')](_0x24502f[_0x6793('0x54')],_0x2eb53d));});fs['rmdirSync'](_0x24502f[_0x6793('0x54')]);}return _0x24502f;});})[_0x6793('0x45')](function(_0x50f590){throw new db[(_0x6793('0x5f'))][(_0x6793('0x60'))](_0x50f590[_0x6793('0x61')]);});}})[_0x6793('0x26')](handleEntityNotFound(_0xf0c731,null))[_0x6793('0x26')](removeEntity(_0xf0c731,null))[_0x6793('0x45')](handleError(_0xf0c731,null));};exports[_0x6793('0x62')]=function(_0x4d0d82,_0x36ce42,_0x1fda5b){return db['sequelize'][_0x6793('0x5c')](function(_0x2f31f5){var _0x4f6abc;return db[_0x6793('0x2e')][_0x6793('0x4a')]({'where':{'id':_0x4d0d82[_0x6793('0x47')]['id']}})[_0x6793('0x26')](function(_0x246b53){if(_0x246b53){_0x4f6abc=_0x246b53;return _0x246b53[_0x6793('0x62')](_0x4d0d82[_0x6793('0x4b')]['id'],{'transaction':_0x2f31f5});}})[_0x6793('0x26')](function(_0x55268f){if(_0x55268f){return db[_0x6793('0x63')][_0x6793('0x64')]({'where':{'id':_0x4d0d82[_0x6793('0x4b')]['id']},'attributes':['id',_0x6793('0x2c'),'save_name',_0x6793('0x65'),_0x6793('0x66')],'raw':!![]});}})[_0x6793('0x26')](function(_0x2b729f){if(_0x2b729f){var _0x254011=path[_0x6793('0x4f')](config[_0x6793('0x50')],_0x6793('0x67'),util[_0x6793('0x68')](_0x6793('0x69'),path['basename'](_0x2b729f[_0x6793('0x6a')],path[_0x6793('0x6b')](_0x2b729f[_0x6793('0x6a')])),_0x2b729f[_0x6793('0x65')]));var _0x3d7915=path[_0x6793('0x4f')](config[_0x6793('0x50')],_0x6793('0x51'),_0x4f6abc[_0x6793('0x2c')],util['format'](_0x6793('0x69'),_0x2b729f[_0x6793('0x2c')],_0x2b729f[_0x6793('0x65')]));fs['symlinkSync'](_0x254011,_0x3d7915);return _0x2b729f;}})[_0x6793('0x45')](function(_0x1a2cdf){throw new db['Sequelize']['ValidationError'](_0x1a2cdf[_0x6793('0x61')]);});})[_0x6793('0x26')](handleEntityNotFound(_0x36ce42,null))[_0x6793('0x26')](respondWithResult(_0x36ce42,0xc9))[_0x6793('0x45')](handleError(_0x36ce42,null));};exports[_0x6793('0x6c')]=function(_0x369d67,_0x163356,_0x5333d5){return db[_0x6793('0x4d')][_0x6793('0x5c')](function(_0x360cb2){var _0x123e0b;return db[_0x6793('0x2e')][_0x6793('0x64')]({'where':{'id':_0x369d67['params']['id']}})[_0x6793('0x26')](handleEntityNotFound(_0x163356,null))[_0x6793('0x26')](function(_0x37bfb1){if(_0x37bfb1){_0x123e0b=_0x37bfb1;return _0x37bfb1[_0x6793('0x6c')](_0x369d67[_0x6793('0x47')][_0x6793('0x6d')]);}})[_0x6793('0x26')](function(_0x5a8248){if(_0x5a8248){return db[_0x6793('0x63')]['findOne']({'where':{'id':_0x369d67['params'][_0x6793('0x6d')]},'attributes':['id',_0x6793('0x2c'),'save_name',_0x6793('0x65'),_0x6793('0x66')],'raw':!![]});}})[_0x6793('0x26')](function(_0x16d7c6){if(_0x16d7c6){fs[_0x6793('0x5e')](path[_0x6793('0x4f')](_0x123e0b[_0x6793('0x54')],util['format'](_0x6793('0x69'),_0x16d7c6[_0x6793('0x2c')],_0x16d7c6[_0x6793('0x65')])));return _0x16d7c6;}})[_0x6793('0x45')](function(_0x4e8b7b){throw new db['Sequelize']['ValidationError'](_0x4e8b7b['message']);});})[_0x6793('0x26')](handleEntityNotFound(_0x163356,null))[_0x6793('0x26')](respondWithStatusCode(_0x163356,0xcc))[_0x6793('0x45')](handleError(_0x163356,null));};exports[_0x6793('0x6e')]=function(_0x2b2772,_0x5f2f7f,_0x324d90){var _0x2540fb={};var _0x254744={};var _0x4993f0;var _0x27fbad;return db[_0x6793('0x2e')][_0x6793('0x64')]({'where':{'id':_0x2b2772[_0x6793('0x47')]['id']}})['then'](handleEntityNotFound(_0x5f2f7f,null))[_0x6793('0x26')](function(_0x54385f){if(_0x54385f){_0x4993f0=_0x54385f;_0x254744[_0x6793('0x32')]=_[_0x6793('0x33')](db[_0x6793('0x63')][_0x6793('0x2f')]);_0x254744[_0x6793('0x34')]=_[_0x6793('0x33')](_0x2b2772['query']);_0x254744[_0x6793('0x35')]=_['intersection'](_0x254744[_0x6793('0x32')],_0x254744['query']);_0x2540fb[_0x6793('0x37')]=_[_0x6793('0x36')](_0x254744[_0x6793('0x32')],qs[_0x6793('0x48')](_0x2b2772['query']['fields']));_0x2540fb[_0x6793('0x37')]=_0x2540fb[_0x6793('0x37')][_0x6793('0x38')]?_0x2540fb[_0x6793('0x37')]:_0x254744[_0x6793('0x32')];_0x2540fb['order']=qs['sort'](_0x2b2772['query']['sort']);_0x2540fb[_0x6793('0x3c')]=qs[_0x6793('0x35')](_['pick'](_0x2b2772['query'],_0x254744['filters']));if(_0x2b2772[_0x6793('0x34')][_0x6793('0x3f')]){_0x2540fb['where']=_[_0x6793('0x40')](_0x2540fb[_0x6793('0x3c')],{'$or':_[_0x6793('0x3d')](_0x2540fb['attributes'],function(_0x407be5){var _0x173856={};_0x173856[_0x407be5]={'$like':'%'+_0x2b2772[_0x6793('0x34')][_0x6793('0x3f')]+'%'};return _0x173856;})});}_0x2540fb=_[_0x6793('0x40')]({},_0x2540fb,_0x2b2772['options']);return _0x4993f0[_0x6793('0x6e')](_0x2540fb);}})['then'](function(_0x199ba0){if(_0x199ba0){_0x27fbad=_0x199ba0[_0x6793('0x38')];if(!_0x2b2772[_0x6793('0x34')]['hasOwnProperty'](_0x6793('0x39'))){_0x2540fb[_0x6793('0x1f')]=qs[_0x6793('0x1f')](_0x2b2772[_0x6793('0x34')][_0x6793('0x1f')]);_0x2540fb['offset']=qs[_0x6793('0x1d')](_0x2b2772[_0x6793('0x34')]['offset']);}return _0x4993f0[_0x6793('0x6e')](_0x2540fb);}})[_0x6793('0x26')](function(_0x37d8a7){if(_0x37d8a7){return _0x37d8a7?{'count':_0x27fbad,'rows':_0x37d8a7}:null;}})['then'](respondWithResult(_0x5f2f7f,null))['catch'](handleError(_0x5f2f7f,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3904=['define','VoiceMusicOnHold','lodash','util','../../config/logger','moment','bluebird','path','rimraf','../../config/environment','./voiceMusicOnHold.attributes'];(function(_0x2b3928,_0x1b9052){var _0xefe9fc=function(_0x13ab2b){while(--_0x13ab2b){_0x2b3928['push'](_0x2b3928['shift']());}};_0xefe9fc(++_0x1b9052);}(_0x3904,0xe9));var _0x4390=function(_0x2f3ca5,_0x3ba4ac){_0x2f3ca5=_0x2f3ca5-0x0;var _0x11cc85=_0x3904[_0x2f3ca5];return _0x11cc85;};'use strict';var _=require(_0x4390('0x0'));var util=require(_0x4390('0x1'));var logger=require(_0x4390('0x2'))('api');var moment=require(_0x4390('0x3'));var BPromise=require(_0x4390('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x4390('0x5'));var rimraf=require(_0x4390('0x6'));var config=require(_0x4390('0x7'));var attributes=require(_0x4390('0x8'));module['exports']=function(_0x4e83ad,_0x31b7ed){return _0x4e83ad[_0x4390('0x9')](_0x4390('0xa'),attributes,{'tableName':'voice_musiconhold','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x80a8=['moment','bluebird','path','../../config/environment','exports','VoiceMusicOnHold','lodash','../../config/logger'];(function(_0x2b10c6,_0x185590){var _0x3789d2=function(_0x272987){while(--_0x272987){_0x2b10c6['push'](_0x2b10c6['shift']());}};_0x3789d2(++_0x185590);}(_0x80a8,0xf6));var _0x880a=function(_0x324645,_0xdc9c60){_0x324645=_0x324645-0x0;var _0x518909=_0x80a8[_0x324645];return _0x518909;};'use strict';var _=require(_0x880a('0x0'));var util=require('util');var logger=require(_0x880a('0x1'))('api');var moment=require(_0x880a('0x2'));var BPromise=require(_0x880a('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x880a('0x4'));var rimraf=require('rimraf');var config=require(_0x880a('0x5'));var attributes=require('./voiceMusicOnHold.attributes');module[_0x880a('0x6')]=function(_0x12d77f,_0x1caf45){return _0x12d77f['define'](_0x880a('0x7'),attributes,{'tableName':'voice_musiconhold','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x34e8=['lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','request','then','info','VoiceMusicOnHold,\x20%s,\x20%s','request\x20sent','debug','VoiceMusicOnHold,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch'];(function(_0x1a0c7c,_0x4540c8){var _0x5d7ae2=function(_0x547513){while(--_0x547513){_0x1a0c7c['push'](_0x1a0c7c['shift']());}};_0x5d7ae2(++_0x4540c8);}(_0x34e8,0x12c));var _0x834e=function(_0x4a78e7,_0x204e04){_0x4a78e7=_0x4a78e7-0x0;var _0x38ddbc=_0x34e8[_0x4a78e7];return _0x38ddbc;};'use strict';var _=require(_0x834e('0x0'));var util=require(_0x834e('0x1'));var moment=require(_0x834e('0x2'));var BPromise=require(_0x834e('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x834e('0x4'));var db=require(_0x834e('0x5'))['db'];var utils=require(_0x834e('0x6'));var logger=require(_0x834e('0x7'))(_0x834e('0x8'));var config=require(_0x834e('0x9'));var jayson=require(_0x834e('0xa'));var client=jayson['client'][_0x834e('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x52056d,_0x3e16d2,_0x3cc2e3){return new BPromise(function(_0x3a3ef6,_0x2e69e2){return client[_0x834e('0xc')](_0x52056d,_0x3cc2e3)[_0x834e('0xd')](function(_0x363786){logger[_0x834e('0xe')](_0x834e('0xf'),_0x3e16d2,_0x834e('0x10'));logger[_0x834e('0x11')](_0x834e('0x12'),_0x3e16d2,_0x834e('0x10'),JSON[_0x834e('0x13')](_0x363786));if(_0x363786[_0x834e('0x14')]){if(_0x363786[_0x834e('0x14')][_0x834e('0x15')]===0x1f4){logger['error'](_0x834e('0xf'),_0x3e16d2,_0x363786[_0x834e('0x14')]['message']);return _0x2e69e2(_0x363786[_0x834e('0x14')][_0x834e('0x16')]);}logger[_0x834e('0x14')](_0x834e('0xf'),_0x3e16d2,_0x363786['error'][_0x834e('0x16')]);return _0x3a3ef6(_0x363786[_0x834e('0x14')]['message']);}else{logger[_0x834e('0xe')]('VoiceMusicOnHold,\x20%s,\x20%s',_0x3e16d2,_0x834e('0x10'));_0x3a3ef6(_0x363786[_0x834e('0x17')]['message']);}})[_0x834e('0x18')](function(_0x22106e){logger[_0x834e('0x14')]('VoiceMusicOnHold,\x20%s,\x20%s',_0x3e16d2,_0x22106e);_0x2e69e2(_0x22106e);});});}
\ No newline at end of file
+var _0x70e0=['code','VoiceMusicOnHold,\x20%s,\x20%s','message','result','catch','lodash','util','moment','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','client','request','then','info','debug','VoiceMusicOnHold,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error'];(function(_0x380fcb,_0x2e9c69){var _0x19e012=function(_0x4de3a0){while(--_0x4de3a0){_0x380fcb['push'](_0x380fcb['shift']());}};_0x19e012(++_0x2e9c69);}(_0x70e0,0x17b));var _0x070e=function(_0x3e7ba6,_0x3fdbef){_0x3e7ba6=_0x3e7ba6-0x0;var _0x1a02fc=_0x70e0[_0x3e7ba6];return _0x1a02fc;};'use strict';var _=require(_0x070e('0x0'));var util=require(_0x070e('0x1'));var moment=require(_0x070e('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x070e('0x3'));var db=require(_0x070e('0x4'))['db'];var utils=require(_0x070e('0x5'));var logger=require(_0x070e('0x6'))('rpc');var config=require(_0x070e('0x7'));var jayson=require('jayson/promise');var client=jayson[_0x070e('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x56e420,_0x5032e5,_0x35ab0c){return new BPromise(function(_0x1e11f0,_0x604664){return client[_0x070e('0x9')](_0x56e420,_0x35ab0c)[_0x070e('0xa')](function(_0x68a09e){logger[_0x070e('0xb')]('VoiceMusicOnHold,\x20%s,\x20%s',_0x5032e5,'request\x20sent');logger[_0x070e('0xc')](_0x070e('0xd'),_0x5032e5,_0x070e('0xe'),JSON[_0x070e('0xf')](_0x68a09e));if(_0x68a09e[_0x070e('0x10')]){if(_0x68a09e[_0x070e('0x10')][_0x070e('0x11')]===0x1f4){logger[_0x070e('0x10')](_0x070e('0x12'),_0x5032e5,_0x68a09e[_0x070e('0x10')][_0x070e('0x13')]);return _0x604664(_0x68a09e['error']['message']);}logger[_0x070e('0x10')]('VoiceMusicOnHold,\x20%s,\x20%s',_0x5032e5,_0x68a09e['error']['message']);return _0x1e11f0(_0x68a09e[_0x070e('0x10')][_0x070e('0x13')]);}else{logger['info']('VoiceMusicOnHold,\x20%s,\x20%s',_0x5032e5,_0x070e('0xe'));_0x1e11f0(_0x68a09e[_0x070e('0x14')][_0x070e('0x13')]);}})[_0x070e('0x15')](function(_0x5bc71e){logger['error'](_0x070e('0x12'),_0x5032e5,_0x5bc71e);_0x604664(_0x5bc71e);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4c72=['delete','removeAgents','removeTeams','exports','multer','path','connect-timeout','../../components/interaction/service','../../config/environment','get','/describe','isAuthenticated','describe','/:id','show','/:id/users','getAgents','getTeams','post','addAgents','/:id/teams','addTeams','put','update'];(function(_0x3df999,_0x34a620){var _0x3ad0e1=function(_0x58df02){while(--_0x58df02){_0x3df999['push'](_0x3df999['shift']());}};_0x3ad0e1(++_0x34a620);}(_0x4c72,0x1e4));var _0x24c7=function(_0x20b16a,_0x52050d){_0x20b16a=_0x20b16a-0x0;var _0x31285e=_0x4c72[_0x20b16a];return _0x31285e;};'use strict';var multer=require(_0x24c7('0x0'));var util=require('util');var path=require(_0x24c7('0x1'));var timeout=require(_0x24c7('0x2'));var express=require('express');var router=express['Router']();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0x24c7('0x3'));var config=require(_0x24c7('0x4'));var controller=require('./voicePrefix.controller');router[_0x24c7('0x5')]('/',auth['isAuthenticated'](),controller['index']);router[_0x24c7('0x5')](_0x24c7('0x6'),auth[_0x24c7('0x7')](),controller[_0x24c7('0x8')]);router['get'](_0x24c7('0x9'),auth[_0x24c7('0x7')](),controller[_0x24c7('0xa')]);router[_0x24c7('0x5')](_0x24c7('0xb'),auth[_0x24c7('0x7')](),controller[_0x24c7('0xc')]);router[_0x24c7('0x5')]('/:id/teams',auth[_0x24c7('0x7')](),controller[_0x24c7('0xd')]);router[_0x24c7('0xe')]('/',auth['isAuthenticated'](),controller['create']);router['post'](_0x24c7('0xb'),auth[_0x24c7('0x7')](),controller[_0x24c7('0xf')]);router['post'](_0x24c7('0x10'),auth['isAuthenticated'](),controller[_0x24c7('0x11')]);router[_0x24c7('0x12')](_0x24c7('0x9'),auth['isAuthenticated'](),controller[_0x24c7('0x13')]);router[_0x24c7('0x14')](_0x24c7('0x9'),auth[_0x24c7('0x7')](),controller['destroy']);router[_0x24c7('0x14')](_0x24c7('0xb'),auth['isAuthenticated'](),controller[_0x24c7('0x15')]);router[_0x24c7('0x14')](_0x24c7('0x10'),auth['isAuthenticated'](),controller[_0x24c7('0x16')]);module[_0x24c7('0x17')]=router;
\ No newline at end of file
+var _0x6eef=['getAgents','post','create','addAgents','put','delete','destroy','removeAgents','exports','multer','connect-timeout','express','Router','./voicePrefix.controller','isAuthenticated','index','get','/describe','describe','/:id','show','/:id/users'];(function(_0x5a95fa,_0x4a2fc9){var _0x1a61b8=function(_0x59f119){while(--_0x59f119){_0x5a95fa['push'](_0x5a95fa['shift']());}};_0x1a61b8(++_0x4a2fc9);}(_0x6eef,0x127));var _0xf6ee=function(_0x1dac7a,_0x1828ce){_0x1dac7a=_0x1dac7a-0x0;var _0x4cb363=_0x6eef[_0x1dac7a];return _0x4cb363;};'use strict';var multer=require(_0xf6ee('0x0'));var util=require('util');var path=require('path');var timeout=require(_0xf6ee('0x1'));var express=require(_0xf6ee('0x2'));var router=express[_0xf6ee('0x3')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0xf6ee('0x4'));router['get']('/',auth[_0xf6ee('0x5')](),controller[_0xf6ee('0x6')]);router[_0xf6ee('0x7')](_0xf6ee('0x8'),auth[_0xf6ee('0x5')](),controller[_0xf6ee('0x9')]);router[_0xf6ee('0x7')](_0xf6ee('0xa'),auth['isAuthenticated'](),controller[_0xf6ee('0xb')]);router[_0xf6ee('0x7')](_0xf6ee('0xc'),auth[_0xf6ee('0x5')](),controller[_0xf6ee('0xd')]);router[_0xf6ee('0xe')]('/',auth[_0xf6ee('0x5')](),controller[_0xf6ee('0xf')]);router[_0xf6ee('0xe')]('/:id/users',auth[_0xf6ee('0x5')](),controller[_0xf6ee('0x10')]);router[_0xf6ee('0x11')](_0xf6ee('0xa'),auth[_0xf6ee('0x5')](),controller['update']);router[_0xf6ee('0x12')]('/:id',auth[_0xf6ee('0x5')](),controller[_0xf6ee('0x13')]);router['delete'](_0xf6ee('0xc'),auth[_0xf6ee('0x5')](),controller[_0xf6ee('0x14')]);module[_0xf6ee('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6a7b=['sequelize','exports','STRING','VIRTUAL','system-','getDataValue','INTEGER'];(function(_0x430b03,_0x26b677){var _0x1e9c82=function(_0x37c6bf){while(--_0x37c6bf){_0x430b03['push'](_0x430b03['shift']());}};_0x1e9c82(++_0x26b677);}(_0x6a7b,0x103));var _0xb6a7=function(_0xb78f74,_0x2548d1){_0xb78f74=_0xb78f74-0x0;var _0x465eb1=_0x6a7b[_0xb78f74];return _0x465eb1;};'use strict';var Sequelize=require(_0xb6a7('0x0'));module[_0xb6a7('0x1')]={'name':{'type':Sequelize[_0xb6a7('0x2')],'allowNull':![],'unique':'name'},'prefix':{'type':Sequelize[_0xb6a7('0x3')],'get':function(_0x1c9d49){return _0xb6a7('0x4')+this[_0xb6a7('0x5')]('name')+'-';}},'description':{'type':Sequelize['STRING']},'callerIdAll':{'type':Sequelize[_0xb6a7('0x2')]},'VoiceExtensionId':{'type':Sequelize[_0xb6a7('0x6')]}};
\ No newline at end of file
+var _0x2a4d=['INTEGER','sequelize','exports','name','VIRTUAL','getDataValue','STRING'];(function(_0x4565bf,_0x5ad9d6){var _0x5610ba=function(_0x170988){while(--_0x170988){_0x4565bf['push'](_0x4565bf['shift']());}};_0x5610ba(++_0x5ad9d6);}(_0x2a4d,0x19e));var _0xd2a4=function(_0x2641f9,_0x26715f){_0x2641f9=_0x2641f9-0x0;var _0x585741=_0x2a4d[_0x2641f9];return _0x585741;};'use strict';var Sequelize=require(_0xd2a4('0x0'));module[_0xd2a4('0x1')]={'name':{'type':Sequelize['STRING'],'allowNull':![],'unique':_0xd2a4('0x2')},'prefix':{'type':Sequelize[_0xd2a4('0x3')],'get':function(_0x288b86){return'system-'+this[_0xd2a4('0x4')](_0xd2a4('0x2'))+'-';}},'description':{'type':Sequelize[_0xd2a4('0x5')]},'callerIdAll':{'type':Sequelize['STRING']},'VoiceExtensionId':{'type':Sequelize[_0xd2a4('0x6')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe1e3=['union','compact','value','isEmpty','forEach','eml-format','rimraf','fast-json-patch','bluebird','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/environment','localhost','./voicePrefix.socket','register','sendStatus','status','offset','undefined','count','limit','Content-Range','json','reject','update','then','UserProfileResource','destroy','end','name','index','rawAttributes','fieldName','type','key','model','map','keys','query','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','VIRTUAL','options','VoicePrefix','includeAll','findAll','rows','show','filters','length','merge','find','catch','params','describe','create','get','VoiceExtension','VoiceExtensionId','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','VoicePrefixes','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','context','from-sip','exten','system','description','appdata','NoOp','Voice\x20Prefix','VoicePrefixId','prefix','push','CDR(prefix)=','callerIdAll','Set','PREFIX-CALLERIDALL=','goto','${EXTEN:','charAt','body','system-','sequelize','transaction','findById','addAgents','ids','omit','spread','emit','userVoicePrefix:save','removeAgents','userVoicePrefix:remove','getAgents','User','getTeams','findOne','Team','addTeams','Agents','online','voicePause','interface','flatMap','TeamVoicePrefix','each','UserVoicePrefix','removeTeams','select','tq.TeamId','team_has_voice_prefixes','join','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','clone','ut.UserId\x20=\x20?','toString','QueryTypes','SELECT','every','includes','all'];(function(_0x5c56d8,_0x2c6245){var _0x38c39c=function(_0x1d8ad7){while(--_0x1d8ad7){_0x5c56d8['push'](_0x5c56d8['shift']());}};_0x38c39c(++_0x2c6245);}(_0xe1e3,0x1bb));var _0x3e1e=function(_0x4068f7,_0x1bcc1e){_0x4068f7=_0x4068f7-0x0;var _0x4bb14e=_0xe1e3[_0x4068f7];return _0x4bb14e;};'use strict';var emlformat=require(_0x3e1e('0x0'));var rimraf=require(_0x3e1e('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x3e1e('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x3e1e('0x3'));var Mustache=require('mustache');var util=require(_0x3e1e('0x4'));var path=require(_0x3e1e('0x5'));var sox=require(_0x3e1e('0x6'));var csv=require(_0x3e1e('0x7'));var ejs=require(_0x3e1e('0x8'));var fs=require('fs');var fs_extra=require(_0x3e1e('0x9'));var _=require('lodash');var squel=require(_0x3e1e('0xa'));var crypto=require(_0x3e1e('0xb'));var jsforce=require(_0x3e1e('0xc'));var deskjs=require(_0x3e1e('0xd'));var toCsv=require(_0x3e1e('0x7'));var querystring=require(_0x3e1e('0xe'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x3e1e('0xf'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x3e1e('0x10'));var logger=require(_0x3e1e('0x11'))(_0x3e1e('0x12'));var utils=require('../../config/utils');var config=require(_0x3e1e('0x13'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];config['redis']=_['defaults'](config['redis'],{'host':_0x3e1e('0x14'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0x3e1e('0x15'))[_0x3e1e('0x16')](socket);function respondWithStatusCode(_0x78ee54,_0x50f221){_0x50f221=_0x50f221||0xcc;return function(_0x5b34ec){if(_0x5b34ec){return _0x78ee54[_0x3e1e('0x17')](_0x50f221);}return _0x78ee54[_0x3e1e('0x18')](_0x50f221)['end']();};}function respondWithResult(_0x26cb35,_0x1f0af9){_0x1f0af9=_0x1f0af9||0xc8;return function(_0x570212){if(_0x570212){return _0x26cb35[_0x3e1e('0x18')](_0x1f0af9)['json'](_0x570212);}};}function respondWithFilteredResult(_0x23228c,_0x247daa){return function(_0x1d786c){if(_0x1d786c){var _0x39eaa7=typeof _0x247daa[_0x3e1e('0x19')]===_0x3e1e('0x1a')&&typeof _0x247daa['limit']==='undefined';var _0x4a9497=_0x1d786c[_0x3e1e('0x1b')];var _0x30acbf=_0x39eaa7?0x0:_0x247daa[_0x3e1e('0x19')];var _0x57c660=_0x39eaa7?_0x1d786c[_0x3e1e('0x1b')]:_0x247daa['offset']+_0x247daa[_0x3e1e('0x1c')];var _0x33ec1d;if(_0x57c660>=_0x4a9497){_0x57c660=_0x4a9497;_0x33ec1d=0xc8;}else{_0x33ec1d=0xce;}_0x23228c[_0x3e1e('0x18')](_0x33ec1d);return _0x23228c['set'](_0x3e1e('0x1d'),_0x30acbf+'-'+_0x57c660+'/'+_0x4a9497)[_0x3e1e('0x1e')](_0x1d786c);}return null;};}function patchUpdates(_0xefa098){return function(_0x55dc62){try{jsonpatch['apply'](_0x55dc62,_0xefa098,!![]);}catch(_0x13d7ac){return BPromise[_0x3e1e('0x1f')](_0x13d7ac);}return _0x55dc62['save']();};}function saveUpdates(_0x60e6bc,_0x56ae51){return function(_0x164b15){if(_0x164b15){return _0x164b15[_0x3e1e('0x20')](_0x60e6bc)[_0x3e1e('0x21')](function(_0x159212){return _0x159212;});}return null;};}function removeEntity(_0x43d583,_0x21c898){return function(_0x4ee2b5){if(_0x4ee2b5){return _0x4ee2b5['destroy']()[_0x3e1e('0x21')](function(){var _0x541ef1=_0x4ee2b5['get']({'plain':!![]});var _0x4be84e='VoicePrefixes';return db[_0x3e1e('0x22')][_0x3e1e('0x23')]({'where':{'type':_0x4be84e,'resourceId':_0x541ef1['id']}})['then'](function(){return _0x4ee2b5;});})[_0x3e1e('0x21')](function(){_0x43d583['status'](0xcc)[_0x3e1e('0x24')]();});}};}function handleEntityNotFound(_0x176bb4,_0x53a6ff){return function(_0x43e029){if(!_0x43e029){_0x176bb4[_0x3e1e('0x17')](0x194);}return _0x43e029;};}function handleError(_0x45ed0e,_0x4d3695){_0x4d3695=_0x4d3695||0x1f4;return function(_0xdef39){logger['error'](_0xdef39['stack']);if(_0xdef39['name']){delete _0xdef39[_0x3e1e('0x25')];}_0x45ed0e['status'](_0x4d3695)['send'](_0xdef39);};}exports[_0x3e1e('0x26')]=function(_0x468336,_0x1c57c2){var _0x233b18={},_0xc9762c={},_0x54df5a={'count':0x0,'rows':[]};var _0x5522ba=_['map'](db['VoicePrefix'][_0x3e1e('0x27')],function(_0x417419){return{'name':_0x417419[_0x3e1e('0x28')],'type':_0x417419[_0x3e1e('0x29')][_0x3e1e('0x2a')]};});_0xc9762c[_0x3e1e('0x2b')]=_[_0x3e1e('0x2c')](_0x5522ba,_0x3e1e('0x25'));_0xc9762c['query']=_[_0x3e1e('0x2d')](_0x468336[_0x3e1e('0x2e')]);_0xc9762c['filters']=_[_0x3e1e('0x2f')](_0xc9762c[_0x3e1e('0x2b')],_0xc9762c[_0x3e1e('0x2e')]);_0x233b18[_0x3e1e('0x30')]=_['intersection'](_0xc9762c['model'],qs[_0x3e1e('0x31')](_0x468336[_0x3e1e('0x2e')]['fields']));_0x233b18[_0x3e1e('0x30')]=_0x233b18[_0x3e1e('0x30')]['length']?_0x233b18[_0x3e1e('0x30')]:_0xc9762c[_0x3e1e('0x2b')];if(!_0x468336[_0x3e1e('0x2e')][_0x3e1e('0x32')](_0x3e1e('0x33'))){_0x233b18['limit']=qs[_0x3e1e('0x1c')](_0x468336[_0x3e1e('0x2e')][_0x3e1e('0x1c')]);_0x233b18[_0x3e1e('0x19')]=qs['offset'](_0x468336[_0x3e1e('0x2e')][_0x3e1e('0x19')]);}_0x233b18[_0x3e1e('0x34')]=qs[_0x3e1e('0x35')](_0x468336[_0x3e1e('0x2e')][_0x3e1e('0x35')]);_0x233b18[_0x3e1e('0x36')]=qs['filters'](_[_0x3e1e('0x37')](_0x468336['query'],_0xc9762c['filters']),_0x5522ba);if(_0x468336[_0x3e1e('0x2e')][_0x3e1e('0x38')]){_0x233b18[_0x3e1e('0x36')]=_['merge'](_0x233b18[_0x3e1e('0x36')],{'$or':_[_0x3e1e('0x2c')](_0x5522ba,function(_0x4d372a){if(_0x4d372a[_0x3e1e('0x29')]!==_0x3e1e('0x39')){var _0x4b3d0f={};_0x4b3d0f[_0x4d372a['name']]={'$like':'%'+_0x468336[_0x3e1e('0x2e')]['filter']+'%'};return _0x4b3d0f;}})});}_0x233b18=_['merge']({},_0x233b18,_0x468336[_0x3e1e('0x3a')]);var _0x3d4a8d={'where':_0x233b18[_0x3e1e('0x36')]};return db[_0x3e1e('0x3b')][_0x3e1e('0x1b')](_0x3d4a8d)['then'](function(_0x5b32ad){_0x54df5a[_0x3e1e('0x1b')]=_0x5b32ad;if(_0x468336[_0x3e1e('0x2e')][_0x3e1e('0x3c')]){_0x233b18['include']=[{'all':!![]}];}return db[_0x3e1e('0x3b')][_0x3e1e('0x3d')](_0x233b18);})[_0x3e1e('0x21')](function(_0x4ad5fd){_0x54df5a[_0x3e1e('0x3e')]=_0x4ad5fd;return _0x54df5a;})['then'](respondWithFilteredResult(_0x1c57c2,_0x233b18))['catch'](handleError(_0x1c57c2,null));};exports[_0x3e1e('0x3f')]=function(_0x9053cd,_0x2a1373){var _0x3d6627={'raw':![],'where':{'id':_0x9053cd['params']['id']}},_0x4a2cfb={};_0x4a2cfb['model']=_['keys'](db[_0x3e1e('0x3b')][_0x3e1e('0x27')]);_0x4a2cfb['query']=_['keys'](_0x9053cd[_0x3e1e('0x2e')]);_0x4a2cfb[_0x3e1e('0x40')]=_[_0x3e1e('0x2f')](_0x4a2cfb['model'],_0x4a2cfb[_0x3e1e('0x2e')]);_0x3d6627['attributes']=_[_0x3e1e('0x2f')](_0x4a2cfb[_0x3e1e('0x2b')],qs[_0x3e1e('0x31')](_0x9053cd[_0x3e1e('0x2e')][_0x3e1e('0x31')]));_0x3d6627[_0x3e1e('0x30')]=_0x3d6627['attributes'][_0x3e1e('0x41')]?_0x3d6627[_0x3e1e('0x30')]:_0x4a2cfb['model'];if(_0x9053cd[_0x3e1e('0x2e')][_0x3e1e('0x3c')]){_0x3d6627['include']=[{'all':!![]}];}_0x3d6627=_[_0x3e1e('0x42')]({},_0x3d6627,_0x9053cd[_0x3e1e('0x3a')]);return db[_0x3e1e('0x3b')][_0x3e1e('0x43')](_0x3d6627)['then'](handleEntityNotFound(_0x2a1373,null))[_0x3e1e('0x21')](respondWithResult(_0x2a1373,null))[_0x3e1e('0x44')](handleError(_0x2a1373,null));};exports[_0x3e1e('0x23')]=function(_0xb086d4,_0x4bce83){return db[_0x3e1e('0x3b')][_0x3e1e('0x43')]({'where':{'id':_0xb086d4[_0x3e1e('0x45')]['id']}})[_0x3e1e('0x21')](handleEntityNotFound(_0x4bce83,null))[_0x3e1e('0x21')](removeEntity(_0x4bce83,null))[_0x3e1e('0x44')](handleError(_0x4bce83,null));};exports[_0x3e1e('0x46')]=function(_0x238a7d,_0x5df608){return db[_0x3e1e('0x3b')]['describe']()['then'](respondWithResult(_0x5df608,null))['catch'](handleError(_0x5df608,null));};exports[_0x3e1e('0x47')]=function(_0x17641c,_0x5147a2){var _0x13b076;return db['sequelize']['transaction'](function(_0x3eaf76){return db['VoicePrefix']['create'](_0x17641c['body'],{'transaction':_0x3eaf76})[_0x3e1e('0x21')](function(_0xe577b2){_0x13b076=_0xe577b2[_0x3e1e('0x48')]({'plain':!![]});return db[_0x3e1e('0x49')][_0x3e1e('0x43')]({'where':{'id':_0x13b076[_0x3e1e('0x4a')]},'raw':!![]})[_0x3e1e('0x21')](function(_0x5b71a6){return createVoicePrefixExtensions(_0x13b076,_0x5b71a6,_0x3eaf76);});});})[_0x3e1e('0x21')](function(){var _0x5f5587=_0x17641c[_0x3e1e('0x4b')][_0x3e1e('0x48')]({'plain':!![]});if(!_0x5f5587)throw new Error(_0x3e1e('0x4c'));if(_0x5f5587['role']==='user'){var _0xba8d16=_0x13b076;return db[_0x3e1e('0x4d')]['find']({'where':{'name':_0x3e1e('0x4e'),'userProfileId':_0x5f5587['userProfileId']},'raw':!![]})['then'](function(_0x284cc7){if(_0x284cc7&&_0x284cc7[_0x3e1e('0x4f')]===0x0){return db['UserProfileResource'][_0x3e1e('0x47')]({'name':_0xba8d16['name'],'resourceId':_0xba8d16['id'],'type':_0x284cc7['name'],'sectionId':_0x284cc7['id']},{})[_0x3e1e('0x21')](function(){return _0x13b076;});}else{return _0x13b076;}})['catch'](function(_0x3ab043){logger['error'](_0x3e1e('0x50'),_0x3ab043);throw _0x3ab043;});}return _0x13b076;})['then'](respondWithResult(_0x5147a2,null))[_0x3e1e('0x44')](handleError(_0x5147a2,null));};function Extension(_0x8a4987,_0x48be40,_0x4dfc6d,_0x499abc){this[_0x3e1e('0x51')]=_0x3e1e('0x52');this[_0x3e1e('0x53')]=_0x8a4987;this['app']=_0x4dfc6d;this[_0x3e1e('0x29')]=_0x3e1e('0x54');this[_0x3e1e('0x55')]='Voice\x20Prefix\x20Extension';this['priority']=_0x48be40;this[_0x3e1e('0x56')]=_0x499abc;}function createVoicePrefixExtensions(_0x48f406,_0x3b97a2,_0x6c0364){return new BPromise(function(_0x13eefb,_0x5a76c2){var _0x2bdd35=new Extension(formatPrefixName(_0x48f406['prefix']),0x1,_0x3e1e('0x57'),_0x3e1e('0x58'));_0x2bdd35['VoicePrefixId']=_0x48f406['id'];return db[_0x3e1e('0x49')]['create'](_0x2bdd35,{'transaction':_0x6c0364})[_0x3e1e('0x21')](function(_0x574c30){var _0x4dafe9=_0x574c30['get']({'plain':!![]});var _0x31062e=_[_0x3e1e('0x2c')](addVoicePrefixExtensions(_0x48f406,_0x3b97a2),function(_0x3457a1){_0x3457a1['VoiceExtensionId']=_0x4dafe9['id'];_0x3457a1[_0x3e1e('0x59')]=_0x48f406['id'];return _0x3457a1;});return db[_0x3e1e('0x49')]['bulkCreate'](_0x31062e,{'transaction':_0x6c0364})[_0x3e1e('0x21')](function(_0x583535){if(!_0x583535){return _0x5a76c2('Extensions\x20creation\x20failed');}else{return _0x13eefb(_0x583535);}})['catch'](function(_0x182da4){return _0x5a76c2(_0x182da4);});});;});};function addVoicePrefixExtensions(_0x3e6e12,_0x384ee6){var _0x4b0944=[];var _0x35d915=formatPrefixName(_0x3e6e12[_0x3e1e('0x5a')]);_0x4b0944[_0x3e1e('0x5b')](new Extension(_0x35d915,0x2,'Set',_0x3e1e('0x5c')+_0x3e6e12[_0x3e1e('0x25')]));if(_0x3e6e12[_0x3e1e('0x5d')]){_0x4b0944[_0x3e1e('0x5b')](new Extension(_0x35d915,0x3,_0x3e1e('0x5e'),_0x3e1e('0x5f')+_0x3e6e12[_0x3e1e('0x5d')]));}else{_0x4b0944[_0x3e1e('0x5b')](new Extension(_0x35d915,0x3,'NoOp','No\x20callerid\x20available'));}_0x4b0944[_0x3e1e('0x5b')](new Extension(_0x35d915,0x4,_0x3e1e('0x60'),_0x384ee6[_0x3e1e('0x51')]+','+_0x3e1e('0x61')+(0x8+_0x3e6e12[_0x3e1e('0x25')][_0x3e1e('0x41')])+'}'+','+0x1));return _0x4b0944;}function formatPrefixName(_0x35c9c3){var _0x112a22='_';for(var _0x2b78d5=0x0;_0x2b78d5<_0x35c9c3[_0x3e1e('0x41')];_0x2b78d5++){if(_0x35c9c3[_0x3e1e('0x62')](_0x2b78d5)=='-'){_0x112a22+=_0x35c9c3[_0x3e1e('0x62')](_0x2b78d5);}else{_0x112a22+='['+_0x35c9c3['charAt'](_0x2b78d5)+']';}}_0x112a22+='.';return _0x112a22;}exports['update']=function(_0x20bc4d,_0x29ddc4,_0x477e64){var _0x1d6135=_0x20bc4d[_0x3e1e('0x63')];_0x1d6135['prefix']=_0x3e1e('0x64')+_0x1d6135[_0x3e1e('0x25')]+'-';return db[_0x3e1e('0x65')][_0x3e1e('0x66')](function(_0x522637){return db['VoicePrefix'][_0x3e1e('0x20')](_0x1d6135,{'where':{'id':_0x1d6135['id']},'transaction':_0x522637})[_0x3e1e('0x21')](function(){return db[_0x3e1e('0x49')][_0x3e1e('0x23')]({'where':{'VoicePrefixId':_0x1d6135['id']},'transaction':_0x522637})[_0x3e1e('0x21')](function(){return db[_0x3e1e('0x49')]['find']({'where':{'id':_0x1d6135[_0x3e1e('0x4a')]},'raw':!![]})[_0x3e1e('0x21')](function(_0x34f093){return createVoicePrefixExtensions(_0x1d6135,_0x34f093,_0x522637);});});});})[_0x3e1e('0x21')](function(){return db[_0x3e1e('0x3b')][_0x3e1e('0x67')](_0x1d6135['id']);})['then'](respondWithResult(_0x29ddc4,null))[_0x3e1e('0x44')](handleError(_0x29ddc4,null));};exports[_0x3e1e('0x68')]=function(_0x4b78de,_0x109407,_0x2aef1b){return db[_0x3e1e('0x3b')]['find']({'where':{'id':_0x4b78de[_0x3e1e('0x45')]['id']}})['then'](handleEntityNotFound(_0x109407,null))[_0x3e1e('0x21')](function(_0x17c054){if(_0x17c054){return _0x17c054['addAgents'](_0x4b78de[_0x3e1e('0x63')][_0x3e1e('0x69')],_[_0x3e1e('0x6a')](_0x4b78de[_0x3e1e('0x63')],['ids','id'])||{})[_0x3e1e('0x6b')](function(_0x4a7dcc){for(var _0x2d6bb0=0x0;_0x2d6bb0<_0x4b78de[_0x3e1e('0x63')][_0x3e1e('0x69')][_0x3e1e('0x41')];_0x2d6bb0+=0x1){socket[_0x3e1e('0x6c')](_0x3e1e('0x6d'),{'UserId':Number(_0x4b78de['body'][_0x3e1e('0x69')][_0x2d6bb0]),'VoicePrefixId':Number(_0x4b78de[_0x3e1e('0x45')]['id'])});}return _0x4a7dcc;});}})[_0x3e1e('0x21')](respondWithResult(_0x109407,null))[_0x3e1e('0x44')](handleError(_0x109407,null));};exports['removeAgents']=function(_0x1ddf4a,_0x11eb0a,_0x437724){return db[_0x3e1e('0x3b')]['find']({'where':{'id':_0x1ddf4a[_0x3e1e('0x45')]['id']}})[_0x3e1e('0x21')](handleEntityNotFound(_0x11eb0a,null))[_0x3e1e('0x21')](function(_0x2161a4){if(_0x2161a4){return _0x2161a4[_0x3e1e('0x6e')](_0x1ddf4a[_0x3e1e('0x2e')]['ids'])['then'](function(){if(_['isArray'](_0x1ddf4a[_0x3e1e('0x2e')]['ids'])){for(var _0x321aa4=0x0;_0x321aa4<_0x1ddf4a['query'][_0x3e1e('0x69')][_0x3e1e('0x41')];_0x321aa4+=0x1){socket[_0x3e1e('0x6c')](_0x3e1e('0x6f'),{'UserId':Number(_0x1ddf4a['query'][_0x3e1e('0x69')][_0x321aa4]),'VoicePrefixId':Number(_0x1ddf4a['params']['id'])});}}else{socket[_0x3e1e('0x6c')]('userVoicePrefix:remove',{'UserId':Number(_0x1ddf4a[_0x3e1e('0x2e')][_0x3e1e('0x69')]),'VoicePrefixId':Number(_0x1ddf4a['params']['id'])});}});}})[_0x3e1e('0x21')](respondWithStatusCode(_0x11eb0a,null))[_0x3e1e('0x44')](handleError(_0x11eb0a,null));};exports[_0x3e1e('0x70')]=function(_0x4ad5e2,_0x53ba1b,_0x185a4d){var _0x20bb6d={};var _0x120618={};var _0x4dac94;var _0x2fced0;return db['VoicePrefix']['findOne']({'where':{'id':_0x4ad5e2['params']['id']}})[_0x3e1e('0x21')](handleEntityNotFound(_0x53ba1b,null))['then'](function(_0x44c0ee){if(_0x44c0ee){_0x4dac94=_0x44c0ee;_0x120618[_0x3e1e('0x2b')]=_[_0x3e1e('0x2d')](db[_0x3e1e('0x71')][_0x3e1e('0x27')]);_0x120618[_0x3e1e('0x2e')]=_[_0x3e1e('0x2d')](_0x4ad5e2[_0x3e1e('0x2e')]);_0x120618[_0x3e1e('0x40')]=_['intersection'](_0x120618['model'],_0x120618[_0x3e1e('0x2e')]);_0x20bb6d[_0x3e1e('0x30')]=_[_0x3e1e('0x2f')](_0x120618[_0x3e1e('0x2b')],qs[_0x3e1e('0x31')](_0x4ad5e2[_0x3e1e('0x2e')][_0x3e1e('0x31')]));_0x20bb6d[_0x3e1e('0x30')]=_0x20bb6d[_0x3e1e('0x30')]['length']?_0x20bb6d[_0x3e1e('0x30')]:_0x120618[_0x3e1e('0x2b')];_0x20bb6d[_0x3e1e('0x34')]=qs[_0x3e1e('0x35')](_0x4ad5e2[_0x3e1e('0x2e')][_0x3e1e('0x35')]);_0x20bb6d[_0x3e1e('0x36')]=qs[_0x3e1e('0x40')](_[_0x3e1e('0x37')](_0x4ad5e2[_0x3e1e('0x2e')],_0x120618[_0x3e1e('0x40')]));if(_0x4ad5e2[_0x3e1e('0x2e')]['filter']){_0x20bb6d[_0x3e1e('0x36')]=_[_0x3e1e('0x42')](_0x20bb6d['where'],{'$or':_[_0x3e1e('0x2c')](_0x20bb6d[_0x3e1e('0x30')],function(_0x1b7e29){var _0x292efb={};_0x292efb[_0x1b7e29]={'$like':'%'+_0x4ad5e2['query'][_0x3e1e('0x38')]+'%'};return _0x292efb;})});}_0x20bb6d=_[_0x3e1e('0x42')]({},_0x20bb6d,_0x4ad5e2[_0x3e1e('0x3a')]);return _0x4dac94[_0x3e1e('0x70')](_0x20bb6d);}})[_0x3e1e('0x21')](function(_0x285f83){if(_0x285f83){_0x2fced0=_0x285f83[_0x3e1e('0x41')];if(!_0x4ad5e2[_0x3e1e('0x2e')]['hasOwnProperty'](_0x3e1e('0x33'))){_0x20bb6d['limit']=qs[_0x3e1e('0x1c')](_0x4ad5e2[_0x3e1e('0x2e')][_0x3e1e('0x1c')]);_0x20bb6d[_0x3e1e('0x19')]=qs['offset'](_0x4ad5e2[_0x3e1e('0x2e')]['offset']);}return _0x4dac94[_0x3e1e('0x70')](_0x20bb6d);}})['then'](function(_0x1be666){if(_0x1be666){return _0x1be666?{'count':_0x2fced0,'rows':_0x1be666}:null;}})[_0x3e1e('0x21')](respondWithResult(_0x53ba1b,null))['catch'](handleError(_0x53ba1b,null));};exports[_0x3e1e('0x72')]=function(_0x1ed174,_0x54723b,_0x3d2406){var _0x2f07d3={};var _0x3b6af5={};var _0x23c86b;var _0x38a5b0;return db[_0x3e1e('0x3b')][_0x3e1e('0x73')]({'where':{'id':_0x1ed174['params']['id']}})[_0x3e1e('0x21')](handleEntityNotFound(_0x54723b,null))[_0x3e1e('0x21')](function(_0x5c5d32){if(_0x5c5d32){_0x23c86b=_0x5c5d32;_0x3b6af5[_0x3e1e('0x2b')]=_[_0x3e1e('0x2d')](db[_0x3e1e('0x74')]['rawAttributes']);_0x3b6af5[_0x3e1e('0x2e')]=_[_0x3e1e('0x2d')](_0x1ed174[_0x3e1e('0x2e')]);_0x3b6af5['filters']=_[_0x3e1e('0x2f')](_0x3b6af5['model'],_0x3b6af5[_0x3e1e('0x2e')]);_0x2f07d3[_0x3e1e('0x30')]=_[_0x3e1e('0x2f')](_0x3b6af5[_0x3e1e('0x2b')],qs[_0x3e1e('0x31')](_0x1ed174['query'][_0x3e1e('0x31')]));_0x2f07d3[_0x3e1e('0x30')]=_0x2f07d3[_0x3e1e('0x30')][_0x3e1e('0x41')]?_0x2f07d3[_0x3e1e('0x30')]:_0x3b6af5[_0x3e1e('0x2b')];_0x2f07d3[_0x3e1e('0x34')]=qs[_0x3e1e('0x35')](_0x1ed174[_0x3e1e('0x2e')]['sort']);_0x2f07d3[_0x3e1e('0x36')]=qs[_0x3e1e('0x40')](_[_0x3e1e('0x37')](_0x1ed174[_0x3e1e('0x2e')],_0x3b6af5[_0x3e1e('0x40')]));if(_0x1ed174['query'][_0x3e1e('0x38')]){_0x2f07d3[_0x3e1e('0x36')]=_[_0x3e1e('0x42')](_0x2f07d3[_0x3e1e('0x36')],{'$or':_[_0x3e1e('0x2c')](_0x2f07d3[_0x3e1e('0x30')],function(_0x1047de){var _0xe0eeab={};_0xe0eeab[_0x1047de]={'$like':'%'+_0x1ed174[_0x3e1e('0x2e')]['filter']+'%'};return _0xe0eeab;})});}_0x2f07d3=_[_0x3e1e('0x42')]({},_0x2f07d3,_0x1ed174[_0x3e1e('0x3a')]);return _0x23c86b['getTeams'](_0x2f07d3);}})[_0x3e1e('0x21')](function(_0x537072){if(_0x537072){_0x38a5b0=_0x537072[_0x3e1e('0x41')];if(!_0x1ed174[_0x3e1e('0x2e')][_0x3e1e('0x32')](_0x3e1e('0x33'))){_0x2f07d3[_0x3e1e('0x1c')]=qs[_0x3e1e('0x1c')](_0x1ed174[_0x3e1e('0x2e')][_0x3e1e('0x1c')]);_0x2f07d3[_0x3e1e('0x19')]=qs[_0x3e1e('0x19')](_0x1ed174['query']['offset']);}return _0x23c86b[_0x3e1e('0x72')](_0x2f07d3);}})[_0x3e1e('0x21')](function(_0x548cba){if(_0x548cba){return _0x548cba?{'count':_0x38a5b0,'rows':_0x548cba}:null;}})[_0x3e1e('0x21')](respondWithResult(_0x54723b,null))[_0x3e1e('0x44')](handleError(_0x54723b,null));};exports[_0x3e1e('0x75')]=function(_0x4a33f5,_0x5a6cb2,_0x2ec5e9){var _0xbfc033=_0x4a33f5[_0x3e1e('0x63')]['ids'];var _0x3049c4;return db['Team']['findAll']({'where':{'id':_0xbfc033},'attributes':['id'],'include':[{'model':db[_0x3e1e('0x71')],'as':_0x3e1e('0x76'),'attributes':['id','name',_0x3e1e('0x77'),_0x3e1e('0x78'),_0x3e1e('0x79')],'raw':!![]}]})[_0x3e1e('0x21')](function(_0x1ca30f){if(_0x1ca30f){_0x3049c4=_0x1ca30f;var _0x285ae4=_[_0x3e1e('0x7a')](_0x1ca30f,function(_0x32c3cf){var _0x201d18=_0x32c3cf[_0x3e1e('0x48')]({'plain':!![]});return _0x201d18[_0x3e1e('0x76')];});return db['VoicePrefix']['find']({'where':{'id':_0x4a33f5[_0x3e1e('0x45')]['id']}})[_0x3e1e('0x21')](function(_0x416b06){return db[_0x3e1e('0x65')]['transaction'](function(_0x2dea8b){return _0x416b06[_0x3e1e('0x75')](_0xbfc033,{'transaction':_0x2dea8b})['then'](function(){return BPromise['each'](_0x3049c4,function(_0x34c4c8){return db[_0x3e1e('0x7b')]['upsert']({'TeamId':_0x34c4c8['id'],'VoicePrefixId':_0x4a33f5[_0x3e1e('0x45')]['id']},{'transaction':_0x2dea8b});});})[_0x3e1e('0x21')](function(){return BPromise[_0x3e1e('0x7c')](_0x285ae4,function(_0x4332db){return db[_0x3e1e('0x7d')]['findOrCreate']({'where':{'UserId':_0x4332db['id'],'VoicePrefixId':_0x4a33f5[_0x3e1e('0x45')]['id']},'transaction':_0x2dea8b});});})[_0x3e1e('0x21')](function(){_0x285ae4['forEach'](function(_0x838800){socket['emit']('userVoicePrefix:save',{'UserId':_0x838800['id'],'VoicePrefixId':_0x416b06['id']});});});});});}})[_0x3e1e('0x21')](respondWithStatusCode(_0x5a6cb2,null))[_0x3e1e('0x44')](handleError(_0x5a6cb2,null));};exports[_0x3e1e('0x7e')]=function(_0xe57be2,_0x3ad5b0,_0x5788ea){return db[_0x3e1e('0x74')][_0x3e1e('0x3d')]({'where':{'id':_0xe57be2[_0x3e1e('0x2e')][_0x3e1e('0x69')]},'attributes':['id'],'include':[{'model':db[_0x3e1e('0x71')],'as':_0x3e1e('0x76'),'attributes':['id'],'raw':!![]}]})[_0x3e1e('0x21')](handleEntityNotFound(_0x3ad5b0,null))['then'](function(_0x2511d2){var _0x2d29d7=_[_0x3e1e('0x2c')](_0x2511d2,'id');var _0x161aa2=[];var _0x61318=[];var _0x20fa70=squel[_0x3e1e('0x7f')]();_0x20fa70['field'](_0x3e1e('0x80'))['from'](_0x3e1e('0x81'),'tq')[_0x3e1e('0x82')](_0x3e1e('0x83'),'ut',_0x3e1e('0x84'))[_0x3e1e('0x36')]('VoicePrefixId\x20=\x20?',_0xe57be2[_0x3e1e('0x45')]['id']);for(var _0x463428=0x0;_0x463428<_0x2511d2[_0x3e1e('0x41')];_0x463428+=0x1){let _0x5c6ba6=_0x2511d2[_0x463428];for(var _0x37eb53=0x0;_0x37eb53<_0x5c6ba6[_0x3e1e('0x76')]['length'];_0x37eb53+=0x1){let _0x3ae731=_0x5c6ba6['Agents'][_0x37eb53];var _0x2a2e80=_0x20fa70[_0x3e1e('0x85')]();_0x2a2e80[_0x3e1e('0x36')](_0x3e1e('0x86'),_0x3ae731['id']);_0x61318['push'](db[_0x3e1e('0x65')][_0x3e1e('0x2e')](_0x2a2e80[_0x3e1e('0x87')](),{'type':db[_0x3e1e('0x65')][_0x3e1e('0x88')][_0x3e1e('0x89')]})[_0x3e1e('0x21')](function(_0x415c88){if(_0x415c88[_0x3e1e('0x41')]===0x1){return _0x3ae731['id'];}else{var _0x187048=_[_0x3e1e('0x8a')](_[_0x3e1e('0x2c')](_0x415c88,'TeamId'),function(_0x244a5d){return _[_0x3e1e('0x8b')](_0x2d29d7,_0x244a5d);});if(_0x187048){return _0x3ae731['id'];}}}));}}return BPromise[_0x3e1e('0x8c')](_0x61318)[_0x3e1e('0x21')](function(_0x4afad1){_0x161aa2=_(_0x161aa2)[_0x3e1e('0x8d')](_0x4afad1)[_0x3e1e('0x8e')]()[_0x3e1e('0x8f')]();return db[_0x3e1e('0x3b')]['find']({'where':{'id':_0xe57be2[_0x3e1e('0x45')]['id']}})[_0x3e1e('0x21')](function(_0x5ef204){return db[_0x3e1e('0x65')][_0x3e1e('0x66')](function(_0x487d3f){return _0x5ef204[_0x3e1e('0x7e')](_0xe57be2[_0x3e1e('0x2e')][_0x3e1e('0x69')],{'transaction':_0x487d3f})[_0x3e1e('0x21')](function(){if(!_[_0x3e1e('0x90')](_0x161aa2)){return _0x5ef204['removeAgents'](_0x161aa2,{'transaction':_0x487d3f});}})[_0x3e1e('0x21')](function(){_0x161aa2[_0x3e1e('0x91')](function(_0x22d774){socket['emit'](_0x3e1e('0x6f'),{'UserId':_0x22d774,'VoicePrefixId':_0x5ef204['id']});});});});});});})[_0x3e1e('0x21')](respondWithStatusCode(_0x3ad5b0,null))[_0x3e1e('0x44')](handleError(_0x3ad5b0,null));};
\ No newline at end of file
+var _0x9176=['ejs','fs-extra','lodash','crypto','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','localhost','socket.io-emitter','redis','register','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','reject','save','update','then','destroy','get','VoicePrefixes','UserProfileResource','end','error','name','VoicePrefix','rawAttributes','fieldName','type','key','model','map','query','keys','filters','intersection','fields','attributes','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','length','find','params','describe','create','sequelize','transaction','body','VoiceExtension','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','UserProfileSection','userProfileId','autoAssociation','context','from-sip','exten','app','system','description','Voice\x20Prefix\x20Extension','prefix','NoOp','Voice\x20Prefix','VoicePrefixId','VoiceExtensionId','bulkCreate','push','CDR(prefix)=','callerIdAll','PREFIX-CALLERIDALL=','No\x20callerid\x20available','goto','${EXTEN:','charAt','findById','addAgents','ids','spread','userVoicePrefix:save','removeAgents','isArray','emit','userVoicePrefix:remove','getAgents','findOne','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','sox','to-csv'];(function(_0xb0a29c,_0x202fac){var _0x1a8625=function(_0xa5a40c){while(--_0xa5a40c){_0xb0a29c['push'](_0xb0a29c['shift']());}};_0x1a8625(++_0x202fac);}(_0x9176,0x164));var _0x6917=function(_0x98ecff,_0x1796a5){_0x98ecff=_0x98ecff-0x0;var _0x4695ff=_0x9176[_0x98ecff];return _0x4695ff;};'use strict';var emlformat=require(_0x6917('0x0'));var rimraf=require(_0x6917('0x1'));var zipdir=require(_0x6917('0x2'));var jsonpatch=require(_0x6917('0x3'));var rp=require(_0x6917('0x4'));var moment=require(_0x6917('0x5'));var BPromise=require(_0x6917('0x6'));var Mustache=require(_0x6917('0x7'));var util=require('util');var path=require('path');var sox=require(_0x6917('0x8'));var csv=require(_0x6917('0x9'));var ejs=require(_0x6917('0xa'));var fs=require('fs');var fs_extra=require(_0x6917('0xb'));var _=require(_0x6917('0xc'));var squel=require('squel');var crypto=require(_0x6917('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x6917('0xe'));var toCsv=require('to-csv');var querystring=require(_0x6917('0xf'));var Papa=require(_0x6917('0x10'));var Redis=require(_0x6917('0x11'));var authService=require('../../components/auth/service');var qs=require(_0x6917('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x6917('0x13'));var logger=require(_0x6917('0x14'))(_0x6917('0x15'));var utils=require(_0x6917('0x16'));var config=require(_0x6917('0x17'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];config['redis']=_['defaults'](config['redis'],{'host':_0x6917('0x18'),'port':0x18eb});var socket=require(_0x6917('0x19'))(new Redis(config[_0x6917('0x1a')]));require('./voicePrefix.socket')[_0x6917('0x1b')](socket);function respondWithStatusCode(_0x527e54,_0x25d226){_0x25d226=_0x25d226||0xcc;return function(_0x483d59){if(_0x483d59){return _0x527e54[_0x6917('0x1c')](_0x25d226);}return _0x527e54[_0x6917('0x1d')](_0x25d226)['end']();};}function respondWithResult(_0x2862dd,_0x51e35f){_0x51e35f=_0x51e35f||0xc8;return function(_0x5926a1){if(_0x5926a1){return _0x2862dd[_0x6917('0x1d')](_0x51e35f)[_0x6917('0x1e')](_0x5926a1);}};}function respondWithFilteredResult(_0x25a0f5,_0x595f08){return function(_0x36e72e){if(_0x36e72e){var _0x4c8187=typeof _0x595f08[_0x6917('0x1f')]===_0x6917('0x20')&&typeof _0x595f08[_0x6917('0x21')]===_0x6917('0x20');var _0x48f70f=_0x36e72e[_0x6917('0x22')];var _0x39eeb9=_0x4c8187?0x0:_0x595f08[_0x6917('0x1f')];var _0x1728f4=_0x4c8187?_0x36e72e[_0x6917('0x22')]:_0x595f08[_0x6917('0x1f')]+_0x595f08[_0x6917('0x21')];var _0x587f6b;if(_0x1728f4>=_0x48f70f){_0x1728f4=_0x48f70f;_0x587f6b=0xc8;}else{_0x587f6b=0xce;}_0x25a0f5['status'](_0x587f6b);return _0x25a0f5[_0x6917('0x23')](_0x6917('0x24'),_0x39eeb9+'-'+_0x1728f4+'/'+_0x48f70f)[_0x6917('0x1e')](_0x36e72e);}return null;};}function patchUpdates(_0x5133b7){return function(_0x51ef16){try{jsonpatch['apply'](_0x51ef16,_0x5133b7,!![]);}catch(_0x2bf352){return BPromise[_0x6917('0x25')](_0x2bf352);}return _0x51ef16[_0x6917('0x26')]();};}function saveUpdates(_0x38f605,_0x2fb633){return function(_0x3e2545){if(_0x3e2545){return _0x3e2545[_0x6917('0x27')](_0x38f605)[_0x6917('0x28')](function(_0x520ef4){return _0x520ef4;});}return null;};}function removeEntity(_0x362624,_0x3f18c5){return function(_0x358d07){if(_0x358d07){return _0x358d07[_0x6917('0x29')]()[_0x6917('0x28')](function(){var _0x39ce29=_0x358d07[_0x6917('0x2a')]({'plain':!![]});var _0x4b9c77=_0x6917('0x2b');return db[_0x6917('0x2c')][_0x6917('0x29')]({'where':{'type':_0x4b9c77,'resourceId':_0x39ce29['id']}})[_0x6917('0x28')](function(){return _0x358d07;});})['then'](function(){_0x362624[_0x6917('0x1d')](0xcc)[_0x6917('0x2d')]();});}};}function handleEntityNotFound(_0x6b22e5,_0x3032f2){return function(_0x255737){if(!_0x255737){_0x6b22e5[_0x6917('0x1c')](0x194);}return _0x255737;};}function handleError(_0x237abe,_0x13ed12){_0x13ed12=_0x13ed12||0x1f4;return function(_0x1fbdd9){logger[_0x6917('0x2e')](_0x1fbdd9['stack']);if(_0x1fbdd9[_0x6917('0x2f')]){delete _0x1fbdd9['name'];}_0x237abe[_0x6917('0x1d')](_0x13ed12)['send'](_0x1fbdd9);};}exports['index']=function(_0x1bb42a,_0x3cf1f7){var _0x4419f3={},_0x471a1e={},_0xf08b9={'count':0x0,'rows':[]};var _0x17e7ad=_['map'](db[_0x6917('0x30')][_0x6917('0x31')],function(_0x368774){return{'name':_0x368774[_0x6917('0x32')],'type':_0x368774[_0x6917('0x33')][_0x6917('0x34')]};});_0x471a1e[_0x6917('0x35')]=_[_0x6917('0x36')](_0x17e7ad,_0x6917('0x2f'));_0x471a1e[_0x6917('0x37')]=_[_0x6917('0x38')](_0x1bb42a[_0x6917('0x37')]);_0x471a1e[_0x6917('0x39')]=_[_0x6917('0x3a')](_0x471a1e[_0x6917('0x35')],_0x471a1e[_0x6917('0x37')]);_0x4419f3['attributes']=_[_0x6917('0x3a')](_0x471a1e[_0x6917('0x35')],qs[_0x6917('0x3b')](_0x1bb42a[_0x6917('0x37')][_0x6917('0x3b')]));_0x4419f3[_0x6917('0x3c')]=_0x4419f3[_0x6917('0x3c')]['length']?_0x4419f3[_0x6917('0x3c')]:_0x471a1e['model'];if(!_0x1bb42a[_0x6917('0x37')][_0x6917('0x3d')](_0x6917('0x3e'))){_0x4419f3[_0x6917('0x21')]=qs[_0x6917('0x21')](_0x1bb42a['query'][_0x6917('0x21')]);_0x4419f3[_0x6917('0x1f')]=qs[_0x6917('0x1f')](_0x1bb42a['query'][_0x6917('0x1f')]);}_0x4419f3[_0x6917('0x3f')]=qs[_0x6917('0x40')](_0x1bb42a[_0x6917('0x37')][_0x6917('0x40')]);_0x4419f3[_0x6917('0x41')]=qs['filters'](_[_0x6917('0x42')](_0x1bb42a[_0x6917('0x37')],_0x471a1e[_0x6917('0x39')]),_0x17e7ad);if(_0x1bb42a[_0x6917('0x37')][_0x6917('0x43')]){_0x4419f3[_0x6917('0x41')]=_[_0x6917('0x44')](_0x4419f3[_0x6917('0x41')],{'$or':_[_0x6917('0x36')](_0x17e7ad,function(_0x3742c0){if(_0x3742c0['type']!==_0x6917('0x45')){var _0x468540={};_0x468540[_0x3742c0[_0x6917('0x2f')]]={'$like':'%'+_0x1bb42a[_0x6917('0x37')][_0x6917('0x43')]+'%'};return _0x468540;}})});}_0x4419f3=_['merge']({},_0x4419f3,_0x1bb42a[_0x6917('0x46')]);var _0x9991bd={'where':_0x4419f3[_0x6917('0x41')]};return db['VoicePrefix'][_0x6917('0x22')](_0x9991bd)['then'](function(_0x3f5b14){_0xf08b9[_0x6917('0x22')]=_0x3f5b14;if(_0x1bb42a[_0x6917('0x37')][_0x6917('0x47')]){_0x4419f3[_0x6917('0x48')]=[{'all':!![]}];}return db[_0x6917('0x30')][_0x6917('0x49')](_0x4419f3);})['then'](function(_0x5534f7){_0xf08b9[_0x6917('0x4a')]=_0x5534f7;return _0xf08b9;})[_0x6917('0x28')](respondWithFilteredResult(_0x3cf1f7,_0x4419f3))[_0x6917('0x4b')](handleError(_0x3cf1f7,null));};exports['show']=function(_0x13e0d2,_0x499704){var _0x17c3a9={'raw':![],'where':{'id':_0x13e0d2['params']['id']}},_0x4b7f9d={};_0x4b7f9d[_0x6917('0x35')]=_[_0x6917('0x38')](db[_0x6917('0x30')][_0x6917('0x31')]);_0x4b7f9d[_0x6917('0x37')]=_[_0x6917('0x38')](_0x13e0d2[_0x6917('0x37')]);_0x4b7f9d[_0x6917('0x39')]=_[_0x6917('0x3a')](_0x4b7f9d[_0x6917('0x35')],_0x4b7f9d['query']);_0x17c3a9[_0x6917('0x3c')]=_[_0x6917('0x3a')](_0x4b7f9d[_0x6917('0x35')],qs[_0x6917('0x3b')](_0x13e0d2['query'][_0x6917('0x3b')]));_0x17c3a9[_0x6917('0x3c')]=_0x17c3a9['attributes'][_0x6917('0x4c')]?_0x17c3a9[_0x6917('0x3c')]:_0x4b7f9d[_0x6917('0x35')];if(_0x13e0d2['query'][_0x6917('0x47')]){_0x17c3a9[_0x6917('0x48')]=[{'all':!![]}];}_0x17c3a9=_['merge']({},_0x17c3a9,_0x13e0d2['options']);return db[_0x6917('0x30')][_0x6917('0x4d')](_0x17c3a9)[_0x6917('0x28')](handleEntityNotFound(_0x499704,null))['then'](respondWithResult(_0x499704,null))[_0x6917('0x4b')](handleError(_0x499704,null));};exports[_0x6917('0x29')]=function(_0x337218,_0x4da089){return db[_0x6917('0x30')]['find']({'where':{'id':_0x337218[_0x6917('0x4e')]['id']}})[_0x6917('0x28')](handleEntityNotFound(_0x4da089,null))[_0x6917('0x28')](removeEntity(_0x4da089,null))[_0x6917('0x4b')](handleError(_0x4da089,null));};exports[_0x6917('0x4f')]=function(_0x4e6376,_0x4d7aa3){return db['VoicePrefix']['describe']()['then'](respondWithResult(_0x4d7aa3,null))[_0x6917('0x4b')](handleError(_0x4d7aa3,null));};exports[_0x6917('0x50')]=function(_0x137659,_0x19ec2a){var _0x322696;return db[_0x6917('0x51')][_0x6917('0x52')](function(_0x3801dc){return db['VoicePrefix'][_0x6917('0x50')](_0x137659[_0x6917('0x53')],{'transaction':_0x3801dc})['then'](function(_0x13b324){_0x322696=_0x13b324[_0x6917('0x2a')]({'plain':!![]});return db[_0x6917('0x54')][_0x6917('0x4d')]({'where':{'id':_0x322696['VoiceExtensionId']},'raw':!![]})[_0x6917('0x28')](function(_0x171803){return createVoicePrefixExtensions(_0x322696,_0x171803,_0x3801dc);});});})['then'](function(){var _0x212f04=_0x137659['user'][_0x6917('0x2a')]({'plain':!![]});if(!_0x212f04)throw new Error(_0x6917('0x55'));if(_0x212f04['role']===_0x6917('0x56')){var _0x199d1c=_0x322696;return db[_0x6917('0x57')][_0x6917('0x4d')]({'where':{'name':_0x6917('0x2b'),'userProfileId':_0x212f04[_0x6917('0x58')]},'raw':!![]})[_0x6917('0x28')](function(_0x2371d6){if(_0x2371d6&&_0x2371d6[_0x6917('0x59')]===0x0){return db['UserProfileResource'][_0x6917('0x50')]({'name':_0x199d1c[_0x6917('0x2f')],'resourceId':_0x199d1c['id'],'type':_0x2371d6['name'],'sectionId':_0x2371d6['id']},{})[_0x6917('0x28')](function(){return _0x322696;});}else{return _0x322696;}})[_0x6917('0x4b')](function(_0x4b563d){logger[_0x6917('0x2e')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x4b563d);throw _0x4b563d;});}return _0x322696;})[_0x6917('0x28')](respondWithResult(_0x19ec2a,null))[_0x6917('0x4b')](handleError(_0x19ec2a,null));};function Extension(_0x582882,_0x18860c,_0x467e4f,_0x49a335){this[_0x6917('0x5a')]=_0x6917('0x5b');this[_0x6917('0x5c')]=_0x582882;this[_0x6917('0x5d')]=_0x467e4f;this['type']=_0x6917('0x5e');this[_0x6917('0x5f')]=_0x6917('0x60');this['priority']=_0x18860c;this['appdata']=_0x49a335;}function createVoicePrefixExtensions(_0x19f6a5,_0x3da07e,_0x486d71){return new BPromise(function(_0x1a3d4e,_0x1d9a8f){var _0x3ff25d=new Extension(formatPrefixName(_0x19f6a5[_0x6917('0x61')]),0x1,_0x6917('0x62'),_0x6917('0x63'));_0x3ff25d[_0x6917('0x64')]=_0x19f6a5['id'];return db[_0x6917('0x54')][_0x6917('0x50')](_0x3ff25d,{'transaction':_0x486d71})[_0x6917('0x28')](function(_0x51f4db){var _0x38b551=_0x51f4db['get']({'plain':!![]});var _0x195afb=_[_0x6917('0x36')](addVoicePrefixExtensions(_0x19f6a5,_0x3da07e),function(_0x56f342){_0x56f342[_0x6917('0x65')]=_0x38b551['id'];_0x56f342[_0x6917('0x64')]=_0x19f6a5['id'];return _0x56f342;});return db[_0x6917('0x54')][_0x6917('0x66')](_0x195afb,{'transaction':_0x486d71})[_0x6917('0x28')](function(_0x4efa7c){if(!_0x4efa7c){return _0x1d9a8f('Extensions\x20creation\x20failed');}else{return _0x1a3d4e(_0x4efa7c);}})[_0x6917('0x4b')](function(_0xfe4f31){return _0x1d9a8f(_0xfe4f31);});});;});};function addVoicePrefixExtensions(_0x4f8621,_0x1ee375){var _0x4f506c=[];var _0xfaffb8=formatPrefixName(_0x4f8621[_0x6917('0x61')]);_0x4f506c[_0x6917('0x67')](new Extension(_0xfaffb8,0x2,'Set',_0x6917('0x68')+_0x4f8621[_0x6917('0x2f')]));if(_0x4f8621[_0x6917('0x69')]){_0x4f506c['push'](new Extension(_0xfaffb8,0x3,'Set',_0x6917('0x6a')+_0x4f8621[_0x6917('0x69')]));}else{_0x4f506c[_0x6917('0x67')](new Extension(_0xfaffb8,0x3,_0x6917('0x62'),_0x6917('0x6b')));}_0x4f506c['push'](new Extension(_0xfaffb8,0x4,_0x6917('0x6c'),_0x1ee375['context']+','+_0x6917('0x6d')+(0x8+_0x4f8621[_0x6917('0x2f')][_0x6917('0x4c')])+'}'+','+0x1));return _0x4f506c;}function formatPrefixName(_0x277c2e){var _0x2c4cc9='_';for(var _0x1aae1f=0x0;_0x1aae1f<_0x277c2e[_0x6917('0x4c')];_0x1aae1f++){if(_0x277c2e['charAt'](_0x1aae1f)=='-'){_0x2c4cc9+=_0x277c2e[_0x6917('0x6e')](_0x1aae1f);}else{_0x2c4cc9+='['+_0x277c2e[_0x6917('0x6e')](_0x1aae1f)+']';}}_0x2c4cc9+='.';return _0x2c4cc9;}exports[_0x6917('0x27')]=function(_0x362fe1,_0x5cad0d,_0x346b61){var _0x129eb6=_0x362fe1[_0x6917('0x53')];_0x129eb6['prefix']='system-'+_0x129eb6[_0x6917('0x2f')]+'-';return db['sequelize'][_0x6917('0x52')](function(_0x44a4d2){return db[_0x6917('0x30')][_0x6917('0x27')](_0x129eb6,{'where':{'id':_0x129eb6['id']},'transaction':_0x44a4d2})[_0x6917('0x28')](function(){return db[_0x6917('0x54')]['destroy']({'where':{'VoicePrefixId':_0x129eb6['id']},'transaction':_0x44a4d2})[_0x6917('0x28')](function(){return db['VoiceExtension'][_0x6917('0x4d')]({'where':{'id':_0x129eb6[_0x6917('0x65')]},'raw':!![]})[_0x6917('0x28')](function(_0x1c8735){return createVoicePrefixExtensions(_0x129eb6,_0x1c8735,_0x44a4d2);});});});})[_0x6917('0x28')](function(){return db[_0x6917('0x30')][_0x6917('0x6f')](_0x129eb6['id']);})[_0x6917('0x28')](respondWithResult(_0x5cad0d,null))[_0x6917('0x4b')](handleError(_0x5cad0d,null));};exports[_0x6917('0x70')]=function(_0x321c95,_0x557519,_0x2673f3){return db[_0x6917('0x30')][_0x6917('0x4d')]({'where':{'id':_0x321c95['params']['id']}})['then'](handleEntityNotFound(_0x557519,null))[_0x6917('0x28')](function(_0x1c13a3){if(_0x1c13a3){return _0x1c13a3[_0x6917('0x70')](_0x321c95[_0x6917('0x53')][_0x6917('0x71')],_['omit'](_0x321c95[_0x6917('0x53')],[_0x6917('0x71'),'id'])||{})[_0x6917('0x72')](function(_0x1e3e15){for(var _0x26c638=0x0;_0x26c638<_0x321c95[_0x6917('0x53')]['ids']['length'];_0x26c638+=0x1){socket['emit'](_0x6917('0x73'),{'UserId':Number(_0x321c95['body'][_0x6917('0x71')][_0x26c638]),'VoicePrefixId':Number(_0x321c95[_0x6917('0x4e')]['id'])});}return _0x1e3e15;});}})[_0x6917('0x28')](respondWithResult(_0x557519,null))[_0x6917('0x4b')](handleError(_0x557519,null));};exports['removeAgents']=function(_0x2fe3a4,_0x549341,_0x343b00){return db[_0x6917('0x30')]['find']({'where':{'id':_0x2fe3a4[_0x6917('0x4e')]['id']}})[_0x6917('0x28')](handleEntityNotFound(_0x549341,null))[_0x6917('0x28')](function(_0x4cb949){if(_0x4cb949){return _0x4cb949[_0x6917('0x74')](_0x2fe3a4[_0x6917('0x37')][_0x6917('0x71')])[_0x6917('0x28')](function(){if(_[_0x6917('0x75')](_0x2fe3a4[_0x6917('0x37')][_0x6917('0x71')])){for(var _0x514b0d=0x0;_0x514b0d<_0x2fe3a4['query']['ids']['length'];_0x514b0d+=0x1){socket[_0x6917('0x76')]('userVoicePrefix:remove',{'UserId':Number(_0x2fe3a4[_0x6917('0x37')][_0x6917('0x71')][_0x514b0d]),'VoicePrefixId':Number(_0x2fe3a4['params']['id'])});}}else{socket[_0x6917('0x76')](_0x6917('0x77'),{'UserId':Number(_0x2fe3a4['query'][_0x6917('0x71')]),'VoicePrefixId':Number(_0x2fe3a4[_0x6917('0x4e')]['id'])});}});}})[_0x6917('0x28')](respondWithStatusCode(_0x549341,null))[_0x6917('0x4b')](handleError(_0x549341,null));};exports[_0x6917('0x78')]=function(_0x5ebce3,_0x4cde76,_0x1df14d){var _0xdb3cc2={};var _0x3aeee0={};var _0x441cd1;var _0x2f0894;return db['VoicePrefix'][_0x6917('0x79')]({'where':{'id':_0x5ebce3['params']['id']}})[_0x6917('0x28')](handleEntityNotFound(_0x4cde76,null))[_0x6917('0x28')](function(_0x3340fa){if(_0x3340fa){_0x441cd1=_0x3340fa;_0x3aeee0['model']=_[_0x6917('0x38')](db['User'][_0x6917('0x31')]);_0x3aeee0[_0x6917('0x37')]=_[_0x6917('0x38')](_0x5ebce3['query']);_0x3aeee0[_0x6917('0x39')]=_[_0x6917('0x3a')](_0x3aeee0[_0x6917('0x35')],_0x3aeee0[_0x6917('0x37')]);_0xdb3cc2[_0x6917('0x3c')]=_[_0x6917('0x3a')](_0x3aeee0['model'],qs[_0x6917('0x3b')](_0x5ebce3[_0x6917('0x37')][_0x6917('0x3b')]));_0xdb3cc2[_0x6917('0x3c')]=_0xdb3cc2[_0x6917('0x3c')][_0x6917('0x4c')]?_0xdb3cc2['attributes']:_0x3aeee0[_0x6917('0x35')];_0xdb3cc2[_0x6917('0x3f')]=qs['sort'](_0x5ebce3['query']['sort']);_0xdb3cc2[_0x6917('0x41')]=qs[_0x6917('0x39')](_[_0x6917('0x42')](_0x5ebce3[_0x6917('0x37')],_0x3aeee0[_0x6917('0x39')]));if(_0x5ebce3[_0x6917('0x37')][_0x6917('0x43')]){_0xdb3cc2[_0x6917('0x41')]=_['merge'](_0xdb3cc2['where'],{'$or':_[_0x6917('0x36')](_0xdb3cc2[_0x6917('0x3c')],function(_0xd4cb4){var _0x2d0a6d={};_0x2d0a6d[_0xd4cb4]={'$like':'%'+_0x5ebce3[_0x6917('0x37')][_0x6917('0x43')]+'%'};return _0x2d0a6d;})});}_0xdb3cc2=_[_0x6917('0x44')]({},_0xdb3cc2,_0x5ebce3[_0x6917('0x46')]);return _0x441cd1[_0x6917('0x78')](_0xdb3cc2);}})[_0x6917('0x28')](function(_0x2454b8){if(_0x2454b8){_0x2f0894=_0x2454b8[_0x6917('0x4c')];if(!_0x5ebce3['query'][_0x6917('0x3d')](_0x6917('0x3e'))){_0xdb3cc2[_0x6917('0x21')]=qs[_0x6917('0x21')](_0x5ebce3[_0x6917('0x37')]['limit']);_0xdb3cc2[_0x6917('0x1f')]=qs['offset'](_0x5ebce3[_0x6917('0x37')]['offset']);}return _0x441cd1[_0x6917('0x78')](_0xdb3cc2);}})[_0x6917('0x28')](function(_0x4f5659){if(_0x4f5659){return _0x4f5659?{'count':_0x2f0894,'rows':_0x4f5659}:null;}})['then'](respondWithResult(_0x4cde76,null))[_0x6917('0x4b')](handleError(_0x4cde76,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2cf2=['setMaxListeners','save','update','remove','emit','hook','events','VoicePrefix'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x2cf2,0x17e));var _0x22cf=function(_0x6c993a,_0x5ea3ab){_0x6c993a=_0x6c993a-0x0;var _0x27f547=_0x2cf2[_0x6c993a];return _0x27f547;};'use strict';var EventEmitter=require(_0x22cf('0x0'));var VoicePrefix=require('../../mysqldb')['db'][_0x22cf('0x1')];var VoicePrefixEvents=new EventEmitter();VoicePrefixEvents[_0x22cf('0x2')](0x0);var events={'afterCreate':_0x22cf('0x3'),'afterUpdate':_0x22cf('0x4'),'afterDestroy':_0x22cf('0x5')};function emitEvent(_0x128cfa){return function(_0x377121,_0x35a927,_0x5aebc1){VoicePrefixEvents[_0x22cf('0x6')](_0x128cfa+':'+_0x377121['id'],_0x377121);VoicePrefixEvents[_0x22cf('0x6')](_0x128cfa,_0x377121);_0x5aebc1(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];VoicePrefix[_0x22cf('0x7')](e,emitEvent(event));}}module['exports']=VoicePrefixEvents;
\ No newline at end of file
+var _0x657a=['exports','events','../../mysqldb','VoicePrefix','setMaxListeners','save','update','remove','emit','hook'];(function(_0x308520,_0x1cb4d2){var _0x661170=function(_0x49a22d){while(--_0x49a22d){_0x308520['push'](_0x308520['shift']());}};_0x661170(++_0x1cb4d2);}(_0x657a,0x19b));var _0xa657=function(_0x1e93fa,_0x210f48){_0x1e93fa=_0x1e93fa-0x0;var _0xd4e1e6=_0x657a[_0x1e93fa];return _0xd4e1e6;};'use strict';var EventEmitter=require(_0xa657('0x0'));var VoicePrefix=require(_0xa657('0x1'))['db'][_0xa657('0x2')];var VoicePrefixEvents=new EventEmitter();VoicePrefixEvents[_0xa657('0x3')](0x0);var events={'afterCreate':_0xa657('0x4'),'afterUpdate':_0xa657('0x5'),'afterDestroy':_0xa657('0x6')};function emitEvent(_0x551ef1){return function(_0x4abb7c,_0x4a1713,_0x10d291){VoicePrefixEvents[_0xa657('0x7')](_0x551ef1+':'+_0x4abb7c['id'],_0x4abb7c);VoicePrefixEvents[_0xa657('0x7')](_0x551ef1,_0x4abb7c);_0x10d291(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];VoicePrefix[_0xa657('0x8')](e,emitEvent(event));}}module[_0xa657('0x9')]=VoicePrefixEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xea36=['define','VoicePrefix','voice_prefixes','util','../../config/logger','moment','bluebird','path','rimraf','exports'];(function(_0x3b27c8,_0x159e5f){var _0x42fba3=function(_0x52ec01){while(--_0x52ec01){_0x3b27c8['push'](_0x3b27c8['shift']());}};_0x42fba3(++_0x159e5f);}(_0xea36,0x85));var _0x6ea3=function(_0x298fe3,_0x47090b){_0x298fe3=_0x298fe3-0x0;var _0x24616d=_0xea36[_0x298fe3];return _0x24616d;};'use strict';var _=require('lodash');var util=require(_0x6ea3('0x0'));var logger=require(_0x6ea3('0x1'))('api');var moment=require(_0x6ea3('0x2'));var BPromise=require(_0x6ea3('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x6ea3('0x4'));var rimraf=require(_0x6ea3('0x5'));var config=require('../../config/environment');var attributes=require('./voicePrefix.attributes');module[_0x6ea3('0x6')]=function(_0x4be48a,_0x521567){return _0x4be48a[_0x6ea3('0x7')](_0x6ea3('0x8'),attributes,{'tableName':_0x6ea3('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xeb66=['voice_prefixes','lodash','../../config/logger','moment','bluebird','rimraf','../../config/environment','./voicePrefix.attributes','exports','define','VoicePrefix'];(function(_0x575898,_0x238618){var _0x2fb5e9=function(_0x5101aa){while(--_0x5101aa){_0x575898['push'](_0x575898['shift']());}};_0x2fb5e9(++_0x238618);}(_0xeb66,0x85));var _0x6eb6=function(_0x403243,_0x2448bd){_0x403243=_0x403243-0x0;var _0x294458=_0xeb66[_0x403243];return _0x294458;};'use strict';var _=require(_0x6eb6('0x0'));var util=require('util');var logger=require(_0x6eb6('0x1'))('api');var moment=require(_0x6eb6('0x2'));var BPromise=require(_0x6eb6('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0x6eb6('0x4'));var config=require(_0x6eb6('0x5'));var attributes=require(_0x6eb6('0x6'));module[_0x6eb6('0x7')]=function(_0x3bfa3c,_0x1ca278){return _0x3bfa3c[_0x6eb6('0x8')](_0x6eb6('0x9'),attributes,{'tableName':_0x6eb6('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6a83=['lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','./voicePrefix.socket','then','info','VoicePrefix,\x20%s,\x20%s','request\x20sent','debug','VoicePrefix,\x20%s,\x20%s,\x20%s','error','code','message','result','catch'];(function(_0x18ae56,_0x12380f){var _0x456406=function(_0x5b5bd8){while(--_0x5b5bd8){_0x18ae56['push'](_0x18ae56['shift']());}};_0x456406(++_0x12380f);}(_0x6a83,0xd2));var _0x36a8=function(_0x51293e,_0x4f2b03){_0x51293e=_0x51293e-0x0;var _0x21fd77=_0x6a83[_0x51293e];return _0x21fd77;};'use strict';var _=require(_0x36a8('0x0'));var util=require(_0x36a8('0x1'));var moment=require(_0x36a8('0x2'));var BPromise=require(_0x36a8('0x3'));var rs=require(_0x36a8('0x4'));var fs=require('fs');var Redis=require(_0x36a8('0x5'));var db=require(_0x36a8('0x6'))['db'];var utils=require(_0x36a8('0x7'));var logger=require(_0x36a8('0x8'))(_0x36a8('0x9'));var config=require(_0x36a8('0xa'));var jayson=require(_0x36a8('0xb'));var client=jayson[_0x36a8('0xc')][_0x36a8('0xd')]({'port':0x232a});config[_0x36a8('0xe')]=_[_0x36a8('0xf')](config[_0x36a8('0xe')],{'host':_0x36a8('0x10'),'port':0x18eb});var socket=require(_0x36a8('0x11'))(new Redis(config['redis']));require(_0x36a8('0x12'))['register'](socket);function respondWithRpcPromise(_0x345fa4,_0x29923c,_0x48b0fc){return new BPromise(function(_0x23834f,_0x1e5a57){return client['request'](_0x345fa4,_0x48b0fc)[_0x36a8('0x13')](function(_0x3c8c08){logger[_0x36a8('0x14')](_0x36a8('0x15'),_0x29923c,_0x36a8('0x16'));logger[_0x36a8('0x17')](_0x36a8('0x18'),_0x29923c,_0x36a8('0x16'),JSON['stringify'](_0x3c8c08));if(_0x3c8c08[_0x36a8('0x19')]){if(_0x3c8c08[_0x36a8('0x19')][_0x36a8('0x1a')]===0x1f4){logger[_0x36a8('0x19')]('VoicePrefix,\x20%s,\x20%s',_0x29923c,_0x3c8c08['error'][_0x36a8('0x1b')]);return _0x1e5a57(_0x3c8c08[_0x36a8('0x19')][_0x36a8('0x1b')]);}logger[_0x36a8('0x19')](_0x36a8('0x15'),_0x29923c,_0x3c8c08[_0x36a8('0x19')][_0x36a8('0x1b')]);return _0x23834f(_0x3c8c08['error'][_0x36a8('0x1b')]);}else{logger[_0x36a8('0x14')](_0x36a8('0x15'),_0x29923c,'request\x20sent');_0x23834f(_0x3c8c08[_0x36a8('0x1c')]['message']);}})[_0x36a8('0x1d')](function(_0x45889a){logger[_0x36a8('0x19')]('VoicePrefix,\x20%s,\x20%s',_0x29923c,_0x45889a);_0x1e5a57(_0x45889a);});});}
\ No newline at end of file
+var _0x5ff9=['util','bluebird','randomstring','../../config/utils','../../config/environment','jayson/promise','http','defaults','redis','socket.io-emitter','./voicePrefix.socket','register','request','then','info','VoicePrefix,\x20%s,\x20%s','request\x20sent','stringify','error','message','result','catch','lodash'];(function(_0x4a9165,_0x345ce0){var _0x4ea35d=function(_0x546c5a){while(--_0x546c5a){_0x4a9165['push'](_0x4a9165['shift']());}};_0x4ea35d(++_0x345ce0);}(_0x5ff9,0xa0));var _0x95ff=function(_0x30bbd8,_0x5b98d9){_0x30bbd8=_0x30bbd8-0x0;var _0x16448a=_0x5ff9[_0x30bbd8];return _0x16448a;};'use strict';var _=require(_0x95ff('0x0'));var util=require(_0x95ff('0x1'));var moment=require('moment');var BPromise=require(_0x95ff('0x2'));var rs=require(_0x95ff('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x95ff('0x4'));var logger=require('../../config/logger')('rpc');var config=require(_0x95ff('0x5'));var jayson=require(_0x95ff('0x6'));var client=jayson['client'][_0x95ff('0x7')]({'port':0x232a});config['redis']=_[_0x95ff('0x8')](config[_0x95ff('0x9')],{'host':'localhost','port':0x18eb});var socket=require(_0x95ff('0xa'))(new Redis(config['redis']));require(_0x95ff('0xb'))[_0x95ff('0xc')](socket);function respondWithRpcPromise(_0x4807b6,_0x17b39b,_0x1f3e2d){return new BPromise(function(_0x2a1750,_0x4f5bb9){return client[_0x95ff('0xd')](_0x4807b6,_0x1f3e2d)[_0x95ff('0xe')](function(_0x39d786){logger[_0x95ff('0xf')](_0x95ff('0x10'),_0x17b39b,_0x95ff('0x11'));logger['debug']('VoicePrefix,\x20%s,\x20%s,\x20%s',_0x17b39b,_0x95ff('0x11'),JSON[_0x95ff('0x12')](_0x39d786));if(_0x39d786[_0x95ff('0x13')]){if(_0x39d786[_0x95ff('0x13')]['code']===0x1f4){logger[_0x95ff('0x13')](_0x95ff('0x10'),_0x17b39b,_0x39d786['error'][_0x95ff('0x14')]);return _0x4f5bb9(_0x39d786[_0x95ff('0x13')]['message']);}logger['error'](_0x95ff('0x10'),_0x17b39b,_0x39d786[_0x95ff('0x13')][_0x95ff('0x14')]);return _0x2a1750(_0x39d786['error'][_0x95ff('0x14')]);}else{logger['info']('VoicePrefix,\x20%s,\x20%s',_0x17b39b,_0x95ff('0x11'));_0x2a1750(_0x39d786[_0x95ff('0x15')][_0x95ff('0x14')]);}})[_0x95ff('0x16')](function(_0x5e7132){logger[_0x95ff('0x13')](_0x95ff('0x10'),_0x17b39b,_0x5e7132);_0x4f5bb9(_0x5e7132);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x342e=['removeListener','register','./voicePrefix.events','save','remove'];(function(_0x503306,_0x356f2f){var _0x44a99d=function(_0x1a6ec4){while(--_0x1a6ec4){_0x503306['push'](_0x503306['shift']());}};_0x44a99d(++_0x356f2f);}(_0x342e,0xde));var _0xe342=function(_0x4bfac3,_0x58324d){_0x4bfac3=_0x4bfac3-0x0;var _0x15f0f2=_0x342e[_0x4bfac3];return _0x15f0f2;};'use strict';var VoicePrefixEvents=require(_0xe342('0x0'));var events=[_0xe342('0x1'),_0xe342('0x2'),'update'];function createListener(_0x5d2113,_0x15d20f){return function(_0x4070d1){_0x15d20f['emit'](_0x5d2113,_0x4070d1);};}function removeListener(_0x509778,_0x349dc1){return function(){VoicePrefixEvents[_0xe342('0x3')](_0x509778,_0x349dc1);};}exports[_0xe342('0x4')]=function(_0x590e9){for(var _0x164e21=0x0,_0x5e643a=events['length'];_0x164e21<_0x5e643a;_0x164e21++){var _0x3457ac=events[_0x164e21];var _0x36bb18=createListener('voicePrefix:'+_0x3457ac,_0x590e9);VoicePrefixEvents['on'](_0x3457ac,_0x36bb18);}};
\ No newline at end of file
+var _0x9348=['update','emit','removeListener','register','voicePrefix:','./voicePrefix.events','save','remove'];(function(_0x226761,_0x2f4bbf){var _0x2f2cd5=function(_0x2d5c10){while(--_0x2d5c10){_0x226761['push'](_0x226761['shift']());}};_0x2f2cd5(++_0x2f4bbf);}(_0x9348,0x10d));var _0x8934=function(_0x310b13,_0x3b5c6d){_0x310b13=_0x310b13-0x0;var _0xc2655d=_0x9348[_0x310b13];return _0xc2655d;};'use strict';var VoicePrefixEvents=require(_0x8934('0x0'));var events=[_0x8934('0x1'),_0x8934('0x2'),_0x8934('0x3')];function createListener(_0x46a231,_0x4a2577){return function(_0x34d032){_0x4a2577[_0x8934('0x4')](_0x46a231,_0x34d032);};}function removeListener(_0x5f34d7,_0x34f94c){return function(){VoicePrefixEvents[_0x8934('0x5')](_0x5f34d7,_0x34f94c);};}exports[_0x8934('0x6')]=function(_0x2bce03){for(var _0x4c70d7=0x0,_0x3ee9b9=events['length'];_0x4c70d7<_0x3ee9b9;_0x4c70d7++){var _0x284a62=events[_0x4c70d7];var _0x3734c5=createListener(_0x8934('0x7')+_0x284a62,_0x2bce03);VoicePrefixEvents['on'](_0x284a62,_0x3734c5);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd87e=['getBlackLists','post','create','/:id/clone','clone','/:id/teams','addTeams','addAgents','/:id/lists','addLists','addBlackLists','put','update','destroy','delete','removeTeams','removeLists','/:id/blacklists','removeBlackLists','exports','multer','util','path','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./voiceQueue.controller','get','isAuthenticated','index','/:id','getHoppers','/:id/hopper_histories','/:id/hopper_finals','getHopperFinals','/:id/hopper_black','getTeams','/:id/users','getAgents','/:id/members','getMembers','getLists'];(function(_0x5a13a9,_0xc94c54){var _0x4919df=function(_0x21ddea){while(--_0x21ddea){_0x5a13a9['push'](_0x5a13a9['shift']());}};_0x4919df(++_0xc94c54);}(_0xd87e,0x14f));var _0xed87=function(_0x3243ca,_0x47c495){_0x3243ca=_0x3243ca-0x0;var _0x3b74e7=_0xd87e[_0x3243ca];return _0x3b74e7;};'use strict';var multer=require(_0xed87('0x0'));var util=require(_0xed87('0x1'));var path=require(_0xed87('0x2'));var timeout=require(_0xed87('0x3'));var express=require(_0xed87('0x4'));var router=express['Router']();var fs_extra=require(_0xed87('0x5'));var auth=require(_0xed87('0x6'));var interaction=require(_0xed87('0x7'));var config=require(_0xed87('0x8'));var controller=require(_0xed87('0x9'));router[_0xed87('0xa')]('/',auth[_0xed87('0xb')](),controller[_0xed87('0xc')]);router[_0xed87('0xa')](_0xed87('0xd'),auth[_0xed87('0xb')](),controller['show']);router[_0xed87('0xa')]('/:id/hoppers',auth[_0xed87('0xb')](),controller[_0xed87('0xe')]);router['get'](_0xed87('0xf'),auth[_0xed87('0xb')](),controller['getHopperHistories']);router[_0xed87('0xa')](_0xed87('0x10'),auth[_0xed87('0xb')](),controller[_0xed87('0x11')]);router['get'](_0xed87('0x12'),auth[_0xed87('0xb')](),controller['getHopperBlacks']);router['get']('/:id/teams',auth[_0xed87('0xb')](),controller[_0xed87('0x13')]);router[_0xed87('0xa')](_0xed87('0x14'),auth[_0xed87('0xb')](),controller[_0xed87('0x15')]);router[_0xed87('0xa')](_0xed87('0x16'),auth[_0xed87('0xb')](),controller[_0xed87('0x17')]);router[_0xed87('0xa')]('/:id/lists',auth[_0xed87('0xb')](),controller[_0xed87('0x18')]);router[_0xed87('0xa')]('/:id/blacklists',auth[_0xed87('0xb')](),controller[_0xed87('0x19')]);router[_0xed87('0x1a')]('/',auth[_0xed87('0xb')](),controller[_0xed87('0x1b')]);router[_0xed87('0x1a')](_0xed87('0x1c'),auth[_0xed87('0xb')](),controller[_0xed87('0x1d')]);router['post'](_0xed87('0x1e'),auth[_0xed87('0xb')](),controller[_0xed87('0x1f')]);router[_0xed87('0x1a')](_0xed87('0x14'),auth[_0xed87('0xb')](),controller[_0xed87('0x20')]);router[_0xed87('0x1a')](_0xed87('0x21'),auth[_0xed87('0xb')](),controller[_0xed87('0x22')]);router[_0xed87('0x1a')]('/:id/blacklists',auth['isAuthenticated'](),controller[_0xed87('0x23')]);router[_0xed87('0x24')](_0xed87('0xd'),auth[_0xed87('0xb')](),controller[_0xed87('0x25')]);router['delete'](_0xed87('0xd'),auth[_0xed87('0xb')](),controller[_0xed87('0x26')]);router[_0xed87('0x27')](_0xed87('0x1e'),auth[_0xed87('0xb')](),controller[_0xed87('0x28')]);router[_0xed87('0x27')](_0xed87('0x14'),auth[_0xed87('0xb')](),controller['removeAgents']);router[_0xed87('0x27')](_0xed87('0x21'),auth[_0xed87('0xb')](),controller[_0xed87('0x29')]);router[_0xed87('0x27')](_0xed87('0x2a'),auth[_0xed87('0xb')](),controller[_0xed87('0x2b')]);module[_0xed87('0x2c')]=router;
\ No newline at end of file
+var _0xb7a3=['/:id/hopper_finals','getHopperFinals','/:id/hopper_black','getHopperBlacks','/:id/teams','getAgents','/:id/members','getMembers','post','create','/:id/clone','clone','/:id/users','/:id/lists','addLists','/:id/blacklists','update','delete','removeTeams','removeAgents','removeLists','removeBlackLists','exports','multer','path','express','Router','../../components/auth/service','../../components/interaction/service','./voiceQueue.controller','isAuthenticated','index','get','/:id','show','/:id/hoppers','getHoppers','/:id/hopper_histories','getHopperHistories'];(function(_0x4e1d03,_0x786f3a){var _0x362d4b=function(_0x1924d2){while(--_0x1924d2){_0x4e1d03['push'](_0x4e1d03['shift']());}};_0x362d4b(++_0x786f3a);}(_0xb7a3,0x14f));var _0x3b7a=function(_0x1aea0a,_0xe117e1){_0x1aea0a=_0x1aea0a-0x0;var _0x439123=_0xb7a3[_0x1aea0a];return _0x439123;};'use strict';var multer=require(_0x3b7a('0x0'));var util=require('util');var path=require(_0x3b7a('0x1'));var timeout=require('connect-timeout');var express=require(_0x3b7a('0x2'));var router=express[_0x3b7a('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x3b7a('0x4'));var interaction=require(_0x3b7a('0x5'));var config=require('../../config/environment');var controller=require(_0x3b7a('0x6'));router['get']('/',auth[_0x3b7a('0x7')](),controller[_0x3b7a('0x8')]);router[_0x3b7a('0x9')](_0x3b7a('0xa'),auth[_0x3b7a('0x7')](),controller[_0x3b7a('0xb')]);router['get'](_0x3b7a('0xc'),auth[_0x3b7a('0x7')](),controller[_0x3b7a('0xd')]);router[_0x3b7a('0x9')](_0x3b7a('0xe'),auth['isAuthenticated'](),controller[_0x3b7a('0xf')]);router[_0x3b7a('0x9')](_0x3b7a('0x10'),auth[_0x3b7a('0x7')](),controller[_0x3b7a('0x11')]);router[_0x3b7a('0x9')](_0x3b7a('0x12'),auth[_0x3b7a('0x7')](),controller[_0x3b7a('0x13')]);router[_0x3b7a('0x9')](_0x3b7a('0x14'),auth[_0x3b7a('0x7')](),controller['getTeams']);router['get']('/:id/users',auth[_0x3b7a('0x7')](),controller[_0x3b7a('0x15')]);router['get'](_0x3b7a('0x16'),auth[_0x3b7a('0x7')](),controller[_0x3b7a('0x17')]);router[_0x3b7a('0x9')]('/:id/lists',auth['isAuthenticated'](),controller['getLists']);router[_0x3b7a('0x9')]('/:id/blacklists',auth['isAuthenticated'](),controller['getBlackLists']);router[_0x3b7a('0x18')]('/',auth[_0x3b7a('0x7')](),controller[_0x3b7a('0x19')]);router[_0x3b7a('0x18')](_0x3b7a('0x1a'),auth[_0x3b7a('0x7')](),controller[_0x3b7a('0x1b')]);router[_0x3b7a('0x18')](_0x3b7a('0x14'),auth[_0x3b7a('0x7')](),controller['addTeams']);router[_0x3b7a('0x18')](_0x3b7a('0x1c'),auth[_0x3b7a('0x7')](),controller['addAgents']);router[_0x3b7a('0x18')](_0x3b7a('0x1d'),auth[_0x3b7a('0x7')](),controller[_0x3b7a('0x1e')]);router[_0x3b7a('0x18')](_0x3b7a('0x1f'),auth[_0x3b7a('0x7')](),controller['addBlackLists']);router['put'](_0x3b7a('0xa'),auth[_0x3b7a('0x7')](),controller[_0x3b7a('0x20')]);router['delete'](_0x3b7a('0xa'),auth[_0x3b7a('0x7')](),controller['destroy']);router[_0x3b7a('0x21')](_0x3b7a('0x14'),auth[_0x3b7a('0x7')](),controller[_0x3b7a('0x22')]);router[_0x3b7a('0x21')](_0x3b7a('0x1c'),auth[_0x3b7a('0x7')](),controller[_0x3b7a('0x23')]);router[_0x3b7a('0x21')]('/:id/lists',auth[_0x3b7a('0x7')](),controller[_0x3b7a('0x24')]);router[_0x3b7a('0x21')]('/:id/blacklists',auth[_0x3b7a('0x7')](),controller[_0x3b7a('0x25')]);module[_0x3b7a('0x26')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xeff8=['rrmemory','type','dialMethod','booked','roundrobin','predictive','power','INTEGER','yes','all','setDataValue','periodic_announce','join','getDataValue','split','joinempty','leavewhenempty','acw','wrapuptime','BOOLEAN','Active/Disactive\x20Campaign','preview','progressive','Dial\x20Method.','UNSIGNED','Max\x209999\x20member\x20in\x20queue(min:1,\x20max:9999),\x200\x20means\x20unlimited.','FLOAT','Power\x20Level:\x20Calls\x20for\x20agents\x20(min:1,\x20max:10).','agentBusyFactor','dropRate','Only\x20for\x20predictive\x20method.','Predictive\x20Optimization\x20Percentage\x20(min:\x201,\x20max:\x2095)','Interval\x20Predictive\x20Minutes\x20(min:5\x20max:30)','tTxX','https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Application_Queue','#Congestion\x20Retry\x20(min:1,\x20max:999)','Congestion\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','Busy\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#NoAnswer\x20Retry\x20(min:1,\x20max:999)','always','never','onlyIfOpen','Active/Disactive\x20AMD','#AMD\x20Initial\x20Silence','#AMD\x20Greeting','#AMD\x20After\x20Greeting\x20Silence','#AMD\x20Total\x20Analysis\x20Time','#AMD\x20Min\x20Word\x20Length','#AMD\x20Between\x20Words\x20Silence','#AMD\x20Maximum\x20Number\x20Of\x20Words','#AMD\x20Silence\x20Threshold\x20(min:0,\x20max:32767)','#AMD\x20Maximum\x20Word\x20Length','Active/Disactive\x20Recall\x20In\x20Queue','DESC','ASC','Random\x20Last\x20Digit\x20(min:1,\x20max:15)','Cut\x20Digit\x20(min:1,\x20max:15)','#NoSuchNumber\x20Retry\x20(min:1,\x20max:999)','NoSuchNumber\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','Drop\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','Abandoned\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','Machine\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#AgentReject\x20Retry\x20(min:1,\x20max:999)','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','mandatoryDispositionPauseId','mandatoryDisposition','sequelize','exports','name','ENUM','inbound','STRING','default','ringall','leastrecent','fewestcalls','random','linear','wrandom','rrordered','strategy'];(function(_0x1d5cfa,_0x57efb0){var _0x19a273=function(_0x2fe3f5){while(--_0x2fe3f5){_0x1d5cfa['push'](_0x1d5cfa['shift']());}};_0x19a273(++_0x57efb0);}(_0xeff8,0x186));var _0x8eff=function(_0x2601b4,_0x315e78){_0x2601b4=_0x2601b4-0x0;var _0x3e3661=_0xeff8[_0x2601b4];return _0x3e3661;};'use strict';var Sequelize=require(_0x8eff('0x0'));module[_0x8eff('0x1')]={'name':{'type':Sequelize['STRING'],'allowNull':![],'unique':_0x8eff('0x2'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'type':{'type':Sequelize[_0x8eff('0x3')](_0x8eff('0x4'),'outbound'),'allowNull':![],'defaultValue':_0x8eff('0x4')},'musiconhold':{'type':Sequelize[_0x8eff('0x5')],'defaultValue':_0x8eff('0x6')},'announce':{'type':Sequelize[_0x8eff('0x5')],'defaultValue':''},'strategy':{'type':Sequelize['ENUM']('rr',_0x8eff('0x7'),_0x8eff('0x8'),_0x8eff('0x9'),_0x8eff('0xa'),'rrmemory',_0x8eff('0xb'),_0x8eff('0xc'),_0x8eff('0xd')),'allowNull':![],'defaultValue':_0x8eff('0x7'),'set':function(_0x5bd403){this['setDataValue'](_0x8eff('0xe'),_0x5bd403?_0x5bd403:_0x8eff('0xf'));},'get':function(){var _0xb2117e=this['getDataValue'](_0x8eff('0x10'));var _0x369b5d=this['getDataValue'](_0x8eff('0x11'));var _0x271044=this['getDataValue']('strategy');if(_0xb2117e===_0x8eff('0x4')){return _0x271044;}if(_0x369b5d===_0x8eff('0x12')&&_0x271044===_0x8eff('0xf')||_0x369b5d===_0x8eff('0x12')&&_0x271044===_0x8eff('0x13')){return _0x271044;}if(_0x369b5d==='progressive'||_0x369b5d===_0x8eff('0x14')||_0x369b5d===_0x8eff('0x15')){return _0x271044;}return null;}},'servicelevel':{'type':Sequelize[_0x8eff('0x16')](0xb),'defaultValue':0x0},'context':{'type':Sequelize[_0x8eff('0x5')],'defaultValue':null},'penaltymemberslimit':{'type':Sequelize[_0x8eff('0x16')](0xb)},'timeout':{'type':Sequelize[_0x8eff('0x16')](0xb),'defaultValue':0xf},'retry':{'type':Sequelize[_0x8eff('0x16')](0xb),'defaultValue':0x2},'timeoutpriority':{'type':Sequelize[_0x8eff('0x5')]},'weight':{'type':Sequelize[_0x8eff('0x16')](0xb),'allowNull':!![],'defaultValue':0x0},'wrapuptime':{'type':Sequelize[_0x8eff('0x16')](0xb),'defaultValue':0x0},'autofill':{'type':Sequelize[_0x8eff('0x3')]('yes','no'),'defaultValue':_0x8eff('0x17')},'autopause':{'type':Sequelize[_0x8eff('0x3')](_0x8eff('0x17'),'no',_0x8eff('0x18')),'defaultValue':'no'},'autopausedelay':{'type':Sequelize[_0x8eff('0x16')](0xb)},'autopausebusy':{'type':Sequelize[_0x8eff('0x3')](_0x8eff('0x17'),'no'),'defaultValue':'no'},'autopauseunavail':{'type':Sequelize[_0x8eff('0x3')](_0x8eff('0x17'),'no'),'defaultValue':'no'},'maxlen':{'type':Sequelize[_0x8eff('0x16')](0xb),'defaultValue':0x0},'setinterfacevar':{'type':Sequelize[_0x8eff('0x3')](_0x8eff('0x17'),'no'),'defaultValue':'no'},'setqueueentryvar':{'type':Sequelize[_0x8eff('0x3')](_0x8eff('0x17'),'no'),'defautValue':'no'},'setqueuevar':{'type':Sequelize[_0x8eff('0x3')](_0x8eff('0x17'),'no'),'defaultValue':'no'},'eventmemberstatus':{'type':Sequelize['ENUM'](_0x8eff('0x17'),'no'),'defaultValue':'no'},'membermacro':{'type':Sequelize[_0x8eff('0x5')],'allowNull':!![]},'membergosub':{'type':Sequelize['STRING'],'allowNull':!![]},'announce_frequency':{'type':Sequelize[_0x8eff('0x16')](0xb),'defaultValue':0x0},'min_announce_frequency':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0x0},'periodic_announce_frequency':{'type':Sequelize[_0x8eff('0x16')](0xb),'defaultValue':0x0},'random_periodic_announce':{'type':Sequelize[_0x8eff('0x3')](_0x8eff('0x17'),'no'),'defaultValue':'no'},'relative_periodic_announce':{'type':Sequelize[_0x8eff('0x3')](_0x8eff('0x17'),'no'),'defaultValue':'yes'},'announce_holdtime':{'type':Sequelize[_0x8eff('0x3')](_0x8eff('0x17'),'no','once'),'defaultValue':'no'},'announce_position':{'type':Sequelize[_0x8eff('0x5')],'defaultValue':'no'},'announce_to_first_user':{'type':Sequelize[_0x8eff('0x3')](_0x8eff('0x17'),'no')},'announce_position_limit':{'type':Sequelize[_0x8eff('0x16')](0xb)},'announce_round_seconds':{'type':Sequelize[_0x8eff('0x3')]('0','5','10','15','20','30'),'defaultValue':'0'},'monitor_format':{'type':Sequelize[_0x8eff('0x5')],'defaultValue':''},'monitor_type':{'type':Sequelize[_0x8eff('0x5')]},'queue_youarenext':{'type':Sequelize[_0x8eff('0x5')],'defaultValue':null},'queue_thereare':{'type':Sequelize['STRING'],'defaultValue':null},'queue_callswaiting':{'type':Sequelize[_0x8eff('0x5')],'defaultValue':null},'queue_holdtime':{'type':Sequelize[_0x8eff('0x5')],'defaultValue':null},'queue_minute':{'type':Sequelize[_0x8eff('0x5')],'allowNull':!![],'defaultValue':null},'queue_minutes':{'type':Sequelize[_0x8eff('0x5')],'defaultValue':null},'queue_seconds':{'type':Sequelize[_0x8eff('0x5')],'defaultValue':null},'queue_thankyou':{'type':Sequelize[_0x8eff('0x5')],'defaultValue':null},'queue_reporthold':{'type':Sequelize['STRING']},'queue_quantity1':{'type':Sequelize['STRING']},'queue_quantity2':{'type':Sequelize[_0x8eff('0x5')]},'queue_periodic_announce':{'type':Sequelize[_0x8eff('0x5')]},'queue_less_than':{'type':Sequelize[_0x8eff('0x5')]},'periodic_announce':{'type':Sequelize['TEXT'],'set':function(_0x2ebf3a){this[_0x8eff('0x19')](_0x8eff('0x1a'),_0x2ebf3a?_0x2ebf3a[_0x8eff('0x1b')](','):[]);},'get':function(){return this[_0x8eff('0x1c')](_0x8eff('0x1a'))?this[_0x8eff('0x1c')](_0x8eff('0x1a'))[_0x8eff('0x1d')](','):[];}},'joinempty':{'type':Sequelize[_0x8eff('0x5')],'defaultValue':_0x8eff('0x17'),'set':function(_0x324597){this['setDataValue'](_0x8eff('0x1e'),_0x324597?_0x324597[_0x8eff('0x1b')](','):undefined);},'get':function(){return this[_0x8eff('0x1c')](_0x8eff('0x1e'))?this['getDataValue'](_0x8eff('0x1e'))[_0x8eff('0x1d')](','):undefined;}},'leavewhenempty':{'type':Sequelize['STRING'],'defaultValue':'no','set':function(_0x4e1256){this[_0x8eff('0x19')](_0x8eff('0x1f'),_0x4e1256?_0x4e1256['join'](','):undefined);},'get':function(){return this['getDataValue']('leavewhenempty')?this[_0x8eff('0x1c')]('leavewhenempty')[_0x8eff('0x1d')](','):undefined;}},'reportholdtime':{'type':Sequelize['ENUM'](_0x8eff('0x17'),'no'),'defaultValue':'no'},'ringinuse':{'type':Sequelize[_0x8eff('0x3')](_0x8eff('0x17'),'no'),'defaultValue':'no'},'memberdelay':{'type':Sequelize[_0x8eff('0x16')](0xb),'defaultValue':0x0},'timeoutrestart':{'type':Sequelize[_0x8eff('0x3')](_0x8eff('0x17'),'no'),'defaultValue':'no'},'defaultrule':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0x8eff('0x5')]},'acw':{'type':Sequelize['BOOLEAN'],'defaultValue':0x0,'set':function(_0xba48d8){this['setDataValue'](_0x8eff('0x20'),_0xba48d8);if(_0xba48d8){if(this[_0x8eff('0x1c')](_0x8eff('0x21'))<0x2){this[_0x8eff('0x19')]('wrapuptime',0x2);}}}},'acwTimeout':{'type':Sequelize[_0x8eff('0x16')](0xb),'defaultValue':0xa},'dialActive':{'type':Sequelize[_0x8eff('0x22')],'defaultValue':0x0,'comment':_0x8eff('0x23')},'dialMethod':{'type':Sequelize['ENUM'](_0x8eff('0x24'),_0x8eff('0x25'),_0x8eff('0x15'),_0x8eff('0x14'),_0x8eff('0x12')),'defaultValue':_0x8eff('0x25'),'comment':_0x8eff('0x26')},'dialLimitChannel':{'type':Sequelize[_0x8eff('0x16')](0x4)[_0x8eff('0x27')],'defaultValue':0x0,'validate':{'min':0x0,'max':0x270f},'comment':'Max\x209999\x20channels,\x200\x20means\x20unlimited.'},'dialLimitQueue':{'type':Sequelize['INTEGER'](0x4)[_0x8eff('0x27')],'defaultValue':0x0,'validate':{'min':0x0,'max':0x270f},'comment':_0x8eff('0x28')},'dialPowerLevel':{'type':Sequelize[_0x8eff('0x29')](0x2)[_0x8eff('0x27')],'defaultValue':0x1,'validate':{'min':0x1,'max':0xa},'comment':_0x8eff('0x2a')},'dialPredictiveOptimization':{'type':Sequelize[_0x8eff('0x3')](_0x8eff('0x2b'),'dropRate'),'defaultValue':_0x8eff('0x2c'),'comment':_0x8eff('0x2d')},'dialPredictiveOptimizationPercentage':{'type':Sequelize['FLOAT'](0x2)[_0x8eff('0x27')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x5f},'comment':_0x8eff('0x2e')},'dialPredictiveInterval':{'type':Sequelize[_0x8eff('0x16')](0x3)[_0x8eff('0x27')],'defaultValue':0xa,'validate':{'min':0x5,'max':0x1e},'comment':_0x8eff('0x2f')},'dialOriginateCallerIdName':{'type':Sequelize[_0x8eff('0x5')]},'dialOriginateCallerIdNumber':{'type':Sequelize[_0x8eff('0x5')]},'dialOriginateTimeout':{'type':Sequelize[_0x8eff('0x16')](0x3)[_0x8eff('0x27')],'defaultValue':0x1e,'validate':{'min':0x1,'max':0x3e7},'comment':'Originate\x20Timeout\x20Seconds\x20(min:1,\x20max:999)'},'dialQueueOptions':{'type':Sequelize[_0x8eff('0x5')],'defaultValue':_0x8eff('0x30'),'comment':_0x8eff('0x31')},'dialQueueTimeout':{'type':Sequelize[_0x8eff('0x16')](0x3)[_0x8eff('0x27')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':'Queue\x20Timeout\x20Seconds\x20(min:1,\x20max:999)'},'dialQueueProject':{'type':Sequelize[_0x8eff('0x5')],'comment':'AGI\x20queue\x20option\x20(use:\x20agi://127.0.0.1/square,<project_name>)'},'dialCongestionMaxRetry':{'type':Sequelize[_0x8eff('0x16')](0x3)[_0x8eff('0x27')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x8eff('0x32')},'dialCongestionRetryFrequency':{'type':Sequelize[_0x8eff('0x16')](0x5)['UNSIGNED'],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x8eff('0x33')},'dialBusyMaxRetry':{'type':Sequelize[_0x8eff('0x16')](0x3)[_0x8eff('0x27')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':'#Busy\x20Retry\x20(min:1,\x20max:999)'},'dialBusyRetryFrequency':{'type':Sequelize['INTEGER'](0x5)[_0x8eff('0x27')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x8eff('0x34')},'dialNoAnswerMaxRetry':{'type':Sequelize[_0x8eff('0x16')](0x3)[_0x8eff('0x27')],'defaultValue':0x3,'comment':_0x8eff('0x35')},'dialNoAnswerRetryFrequency':{'type':Sequelize['INTEGER'](0x5)[_0x8eff('0x27')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':'NoAnswer\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'},'dialGlobalMaxRetry':{'type':Sequelize[_0x8eff('0x16')](0x3)[_0x8eff('0x27')],'validate':{'min':0x1,'max':0x3e7},'defaultValue':0x4,'comment':'#Global\x20Max\x20Retry\x20(min:1,\x20max:999)'},'dialTimezone':{'type':Sequelize['STRING'],'defaultValue':null},'dialGlobalInterval':{'type':Sequelize['STRING'],'defaultValue':'07:00-22:00,*,*,*'},'dialPrefix':{'type':Sequelize['STRING'],'defaultValue':null},'dialCheckDuplicateType':{'type':Sequelize['ENUM'](_0x8eff('0x36'),_0x8eff('0x37'),_0x8eff('0x38')),'defaultValue':_0x8eff('0x36')},'dialAMDActive':{'type':Sequelize[_0x8eff('0x22')],'defaultValue':0x0,'comment':_0x8eff('0x39')},'dialAMDInitialSilence':{'type':Sequelize[_0x8eff('0x16')](0x9)[_0x8eff('0x27')],'defaultValue':0x9c4,'validate':{'min':0x0},'comment':_0x8eff('0x3a')},'dialAMDGreeting':{'type':Sequelize[_0x8eff('0x16')](0x9)['UNSIGNED'],'defaultValue':0x5dc,'validate':{'min':0x0},'comment':_0x8eff('0x3b')},'dialAMDAfterGreetingSilence':{'type':Sequelize['INTEGER'](0x9)[_0x8eff('0x27')],'defaultValue':0x320,'validate':{'min':0x0},'comment':_0x8eff('0x3c')},'dialAMDTotalAnalysisTime':{'type':Sequelize[_0x8eff('0x16')](0x9)[_0x8eff('0x27')],'defaultValue':0x1388,'validate':{'min':0x0},'comment':_0x8eff('0x3d')},'dialAMDMinWordLength':{'type':Sequelize[_0x8eff('0x16')](0x9)[_0x8eff('0x27')],'defaultValue':0x64,'validate':{'min':0x0},'comment':_0x8eff('0x3e')},'dialAMDBetweenWordsSilence':{'type':Sequelize[_0x8eff('0x16')](0x9)[_0x8eff('0x27')],'defaultValue':0x32,'validate':{'min':0x0},'comment':_0x8eff('0x3f')},'dialAMDMaximumNumberOfWords':{'type':Sequelize[_0x8eff('0x16')](0x9)['UNSIGNED'],'defaultValue':0x3,'validate':{'min':0x0},'comment':_0x8eff('0x40')},'dialAMDSilenceThreshold':{'type':Sequelize[_0x8eff('0x16')](0x5)[_0x8eff('0x27')],'validate':{'min':0x0,'max':0x7fff},'defaultValue':0x100,'comment':_0x8eff('0x41')},'dialAMDMaximumWordLength':{'type':Sequelize[_0x8eff('0x16')](0x9)[_0x8eff('0x27')],'defaultValue':0x1388,'validate':{'min':0x0},'comment':_0x8eff('0x42')},'dialRecallMeTimeout':{'type':Sequelize[_0x8eff('0x16')](0x5)[_0x8eff('0x27')],'validate':{'min':0x1},'defaultValue':0x1e,'comment':'#RecallMe\x20Timeout\x20(min:1)'},'dialRecallInQueue':{'type':Sequelize['BOOLEAN'],'defaultValue':0x0,'comment':_0x8eff('0x43')},'dialOrderByScheduledAt':{'type':Sequelize[_0x8eff('0x3')](_0x8eff('0x44'),_0x8eff('0x45')),'defaultValue':_0x8eff('0x44')},'dialQueueProject2':{'type':Sequelize[_0x8eff('0x5')],'comment':'AGI\x20queue\x20option\x20(use:\x20agi://127.0.0.1/square,<project_name>)'},'dialAgiAfterHangupClient':{'type':Sequelize[_0x8eff('0x22')],'defaultValue':![]},'dialAgiAfterHangupAgent':{'type':Sequelize[_0x8eff('0x22')],'defaultValue':![]},'dialRandomLastDigitCallerIdNumber':{'type':Sequelize[_0x8eff('0x16')](0x3)['UNSIGNED'],'validate':{'min':0x0,'max':0xf},'defaultValue':0x0,'comment':_0x8eff('0x46')},'dialCutDigit':{'type':Sequelize[_0x8eff('0x16')](0x3)[_0x8eff('0x27')],'validate':{'min':0x0,'max':0xf},'defaultValue':0x0,'comment':_0x8eff('0x47')},'dialNoSuchNumberMaxRetry':{'type':Sequelize['INTEGER'](0x3)[_0x8eff('0x27')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x8eff('0x48')},'dialNoSuchNumberRetryFrequency':{'type':Sequelize[_0x8eff('0x16')](0x5)[_0x8eff('0x27')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x8eff('0x49')},'dialDropMaxRetry':{'type':Sequelize[_0x8eff('0x16')](0x3)[_0x8eff('0x27')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':'#Drop\x20Retry\x20(min:1,\x20max:999)'},'dialDropRetryFrequency':{'type':Sequelize[_0x8eff('0x16')](0x5)[_0x8eff('0x27')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x8eff('0x4a')},'dialAbandonedMaxRetry':{'type':Sequelize[_0x8eff('0x16')](0x3)[_0x8eff('0x27')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':'#Abandoned\x20Retry\x20(min:1,\x20max:999)'},'dialAbandonedRetryFrequency':{'type':Sequelize[_0x8eff('0x16')](0x5)[_0x8eff('0x27')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x8eff('0x4b')},'dialMachineMaxRetry':{'type':Sequelize['INTEGER'](0x3)[_0x8eff('0x27')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':'#Machine\x20Retry\x20(min:1,\x20max:999)'},'dialMachineRetryFrequency':{'type':Sequelize[_0x8eff('0x16')](0x5)[_0x8eff('0x27')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x8eff('0x4c')},'dialAgentRejectMaxRetry':{'type':Sequelize[_0x8eff('0x16')](0x3)[_0x8eff('0x27')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x8eff('0x4d')},'dialAgentRejectRetryFrequency':{'type':Sequelize[_0x8eff('0x16')](0x5)['UNSIGNED'],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':'AgentReject\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'},'mandatoryDispositionPauseId':{'type':Sequelize[_0x8eff('0x16')],'allowNull':!![],'comment':'Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled'},'mandatoryDisposition':{'type':Sequelize[_0x8eff('0x22')],'defaultValue':![],'comment':_0x8eff('0x4e'),'set':function(_0x3064ae){if(!_0x3064ae)this[_0x8eff('0x19')](_0x8eff('0x4f'),null);this['setDataValue'](_0x8eff('0x50'),_0x3064ae);}},'dialPredictiveIntervalMaxThreshold':{'type':Sequelize[_0x8eff('0x16')](0x3)[_0x8eff('0x27')],'defaultValue':0x14,'validate':{'min':0x1,'max':0x64}},'dialPredictiveIntervalMinThreshold':{'type':Sequelize[_0x8eff('0x16')](0x3)[_0x8eff('0x27')],'defaultValue':0xa,'validate':{'min':0x1,'max':0x64}}};
\ No newline at end of file
+var _0x8efc=['ENUM','outbound','inbound','ringall','leastrecent','fewestcalls','random','rrmemory','wrandom','setDataValue','strategy','type','getDataValue','dialMethod','booked','roundrobin','progressive','INTEGER','yes','all','once','TEXT','periodic_announce','join','joinempty','split','leavewhenempty','BOOLEAN','wrapuptime','Active/Disactive\x20Campaign','preview','power','predictive','UNSIGNED','Max\x209999\x20channels,\x200\x20means\x20unlimited.','Max\x209999\x20member\x20in\x20queue(min:1,\x20max:9999),\x200\x20means\x20unlimited.','Power\x20Level:\x20Calls\x20for\x20agents\x20(min:1,\x20max:10).','agentBusyFactor','dropRate','Only\x20for\x20predictive\x20method.','FLOAT','Interval\x20Predictive\x20Minutes\x20(min:5\x20max:30)','Originate\x20Timeout\x20Seconds\x20(min:1,\x20max:999)','tTxX','https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Application_Queue','AGI\x20queue\x20option\x20(use:\x20agi://127.0.0.1/square,<project_name>)','#Congestion\x20Retry\x20(min:1,\x20max:999)','Congestion\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#Busy\x20Retry\x20(min:1,\x20max:999)','Busy\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#Global\x20Max\x20Retry\x20(min:1,\x20max:999)','07:00-22:00,*,*,*','onlyIfOpen','always','Active/Disactive\x20AMD','#AMD\x20Greeting','#AMD\x20After\x20Greeting\x20Silence','#AMD\x20Total\x20Analysis\x20Time','#AMD\x20Min\x20Word\x20Length','#AMD\x20Silence\x20Threshold\x20(min:0,\x20max:32767)','#AMD\x20Maximum\x20Word\x20Length','DESC','ASC','Cut\x20Digit\x20(min:1,\x20max:15)','#NoSuchNumber\x20Retry\x20(min:1,\x20max:999)','NoSuchNumber\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','Abandoned\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','Machine\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#AgentReject\x20Retry\x20(min:1,\x20max:999)','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','mandatoryDisposition','STRING'];(function(_0x470fc6,_0x13f6f7){var _0x1c2a18=function(_0x5ac869){while(--_0x5ac869){_0x470fc6['push'](_0x470fc6['shift']());}};_0x1c2a18(++_0x13f6f7);}(_0x8efc,0x8f));var _0xc8ef=function(_0x34ca5a,_0x2f14b1){_0x34ca5a=_0x34ca5a-0x0;var _0x38c2be=_0x8efc[_0x34ca5a];return _0x38c2be;};'use strict';var Sequelize=require('sequelize');module['exports']={'name':{'type':Sequelize[_0xc8ef('0x0')],'allowNull':![],'unique':'name','validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'type':{'type':Sequelize[_0xc8ef('0x1')]('inbound',_0xc8ef('0x2')),'allowNull':![],'defaultValue':_0xc8ef('0x3')},'musiconhold':{'type':Sequelize['STRING'],'defaultValue':'default'},'announce':{'type':Sequelize[_0xc8ef('0x0')],'defaultValue':''},'strategy':{'type':Sequelize['ENUM']('rr',_0xc8ef('0x4'),_0xc8ef('0x5'),_0xc8ef('0x6'),_0xc8ef('0x7'),_0xc8ef('0x8'),'linear',_0xc8ef('0x9'),'rrordered'),'allowNull':![],'defaultValue':_0xc8ef('0x4'),'set':function(_0xbdd184){this[_0xc8ef('0xa')](_0xc8ef('0xb'),_0xbdd184?_0xbdd184:'rrmemory');},'get':function(){var _0x504d31=this['getDataValue'](_0xc8ef('0xc'));var _0x20b2ef=this[_0xc8ef('0xd')](_0xc8ef('0xe'));var _0x4fceb6=this[_0xc8ef('0xd')](_0xc8ef('0xb'));if(_0x504d31===_0xc8ef('0x3')){return _0x4fceb6;}if(_0x20b2ef===_0xc8ef('0xf')&&_0x4fceb6===_0xc8ef('0x8')||_0x20b2ef===_0xc8ef('0xf')&&_0x4fceb6===_0xc8ef('0x10')){return _0x4fceb6;}if(_0x20b2ef===_0xc8ef('0x11')||_0x20b2ef==='predictive'||_0x20b2ef==='power'){return _0x4fceb6;}return null;}},'servicelevel':{'type':Sequelize[_0xc8ef('0x12')](0xb),'defaultValue':0x0},'context':{'type':Sequelize[_0xc8ef('0x0')],'defaultValue':null},'penaltymemberslimit':{'type':Sequelize[_0xc8ef('0x12')](0xb)},'timeout':{'type':Sequelize[_0xc8ef('0x12')](0xb),'defaultValue':0xf},'retry':{'type':Sequelize[_0xc8ef('0x12')](0xb),'defaultValue':0x2},'timeoutpriority':{'type':Sequelize[_0xc8ef('0x0')]},'weight':{'type':Sequelize[_0xc8ef('0x12')](0xb),'allowNull':!![],'defaultValue':0x0},'wrapuptime':{'type':Sequelize[_0xc8ef('0x12')](0xb),'defaultValue':0x0},'autofill':{'type':Sequelize['ENUM']('yes','no'),'defaultValue':_0xc8ef('0x13')},'autopause':{'type':Sequelize[_0xc8ef('0x1')](_0xc8ef('0x13'),'no',_0xc8ef('0x14')),'defaultValue':'no'},'autopausedelay':{'type':Sequelize['INTEGER'](0xb)},'autopausebusy':{'type':Sequelize['ENUM']('yes','no'),'defaultValue':'no'},'autopauseunavail':{'type':Sequelize['ENUM'](_0xc8ef('0x13'),'no'),'defaultValue':'no'},'maxlen':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0x0},'setinterfacevar':{'type':Sequelize[_0xc8ef('0x1')](_0xc8ef('0x13'),'no'),'defaultValue':'no'},'setqueueentryvar':{'type':Sequelize[_0xc8ef('0x1')]('yes','no'),'defautValue':'no'},'setqueuevar':{'type':Sequelize[_0xc8ef('0x1')](_0xc8ef('0x13'),'no'),'defaultValue':'no'},'eventmemberstatus':{'type':Sequelize[_0xc8ef('0x1')](_0xc8ef('0x13'),'no'),'defaultValue':'no'},'membermacro':{'type':Sequelize[_0xc8ef('0x0')],'allowNull':!![]},'membergosub':{'type':Sequelize[_0xc8ef('0x0')],'allowNull':!![]},'announce_frequency':{'type':Sequelize[_0xc8ef('0x12')](0xb),'defaultValue':0x0},'min_announce_frequency':{'type':Sequelize[_0xc8ef('0x12')](0xb),'defaultValue':0x0},'periodic_announce_frequency':{'type':Sequelize[_0xc8ef('0x12')](0xb),'defaultValue':0x0},'random_periodic_announce':{'type':Sequelize[_0xc8ef('0x1')](_0xc8ef('0x13'),'no'),'defaultValue':'no'},'relative_periodic_announce':{'type':Sequelize[_0xc8ef('0x1')]('yes','no'),'defaultValue':'yes'},'announce_holdtime':{'type':Sequelize[_0xc8ef('0x1')](_0xc8ef('0x13'),'no',_0xc8ef('0x15')),'defaultValue':'no'},'announce_position':{'type':Sequelize[_0xc8ef('0x0')],'defaultValue':'no'},'announce_to_first_user':{'type':Sequelize[_0xc8ef('0x1')]('yes','no')},'announce_position_limit':{'type':Sequelize['INTEGER'](0xb)},'announce_round_seconds':{'type':Sequelize[_0xc8ef('0x1')]('0','5','10','15','20','30'),'defaultValue':'0'},'monitor_format':{'type':Sequelize[_0xc8ef('0x0')],'defaultValue':''},'monitor_type':{'type':Sequelize[_0xc8ef('0x0')]},'queue_youarenext':{'type':Sequelize['STRING'],'defaultValue':null},'queue_thereare':{'type':Sequelize[_0xc8ef('0x0')],'defaultValue':null},'queue_callswaiting':{'type':Sequelize[_0xc8ef('0x0')],'defaultValue':null},'queue_holdtime':{'type':Sequelize[_0xc8ef('0x0')],'defaultValue':null},'queue_minute':{'type':Sequelize[_0xc8ef('0x0')],'allowNull':!![],'defaultValue':null},'queue_minutes':{'type':Sequelize['STRING'],'defaultValue':null},'queue_seconds':{'type':Sequelize['STRING'],'defaultValue':null},'queue_thankyou':{'type':Sequelize[_0xc8ef('0x0')],'defaultValue':null},'queue_reporthold':{'type':Sequelize[_0xc8ef('0x0')]},'queue_quantity1':{'type':Sequelize[_0xc8ef('0x0')]},'queue_quantity2':{'type':Sequelize['STRING']},'queue_periodic_announce':{'type':Sequelize[_0xc8ef('0x0')]},'queue_less_than':{'type':Sequelize[_0xc8ef('0x0')]},'periodic_announce':{'type':Sequelize[_0xc8ef('0x16')],'set':function(_0x559d77){this[_0xc8ef('0xa')](_0xc8ef('0x17'),_0x559d77?_0x559d77[_0xc8ef('0x18')](','):[]);},'get':function(){return this[_0xc8ef('0xd')](_0xc8ef('0x17'))?this['getDataValue'](_0xc8ef('0x17'))['split'](','):[];}},'joinempty':{'type':Sequelize['STRING'],'defaultValue':_0xc8ef('0x13'),'set':function(_0x594711){this[_0xc8ef('0xa')]('joinempty',_0x594711?_0x594711['join'](','):undefined);},'get':function(){return this[_0xc8ef('0xd')](_0xc8ef('0x19'))?this[_0xc8ef('0xd')](_0xc8ef('0x19'))[_0xc8ef('0x1a')](','):undefined;}},'leavewhenempty':{'type':Sequelize[_0xc8ef('0x0')],'defaultValue':'no','set':function(_0x4c7ca3){this[_0xc8ef('0xa')](_0xc8ef('0x1b'),_0x4c7ca3?_0x4c7ca3['join'](','):undefined);},'get':function(){return this[_0xc8ef('0xd')]('leavewhenempty')?this['getDataValue'](_0xc8ef('0x1b'))[_0xc8ef('0x1a')](','):undefined;}},'reportholdtime':{'type':Sequelize[_0xc8ef('0x1')](_0xc8ef('0x13'),'no'),'defaultValue':'no'},'ringinuse':{'type':Sequelize['ENUM'](_0xc8ef('0x13'),'no'),'defaultValue':'no'},'memberdelay':{'type':Sequelize[_0xc8ef('0x12')](0xb),'defaultValue':0x0},'timeoutrestart':{'type':Sequelize[_0xc8ef('0x1')](_0xc8ef('0x13'),'no'),'defaultValue':'no'},'defaultrule':{'type':Sequelize[_0xc8ef('0x0')]},'description':{'type':Sequelize[_0xc8ef('0x0')]},'acw':{'type':Sequelize[_0xc8ef('0x1c')],'defaultValue':0x0,'set':function(_0x5d32c8){this[_0xc8ef('0xa')]('acw',_0x5d32c8);if(_0x5d32c8){if(this['getDataValue'](_0xc8ef('0x1d'))<0x2){this[_0xc8ef('0xa')](_0xc8ef('0x1d'),0x2);}}}},'acwTimeout':{'type':Sequelize[_0xc8ef('0x12')](0xb),'defaultValue':0xa},'dialActive':{'type':Sequelize[_0xc8ef('0x1c')],'defaultValue':0x0,'comment':_0xc8ef('0x1e')},'dialMethod':{'type':Sequelize[_0xc8ef('0x1')](_0xc8ef('0x1f'),_0xc8ef('0x11'),_0xc8ef('0x20'),_0xc8ef('0x21'),_0xc8ef('0xf')),'defaultValue':_0xc8ef('0x11'),'comment':'Dial\x20Method.'},'dialLimitChannel':{'type':Sequelize['INTEGER'](0x4)[_0xc8ef('0x22')],'defaultValue':0x0,'validate':{'min':0x0,'max':0x270f},'comment':_0xc8ef('0x23')},'dialLimitQueue':{'type':Sequelize[_0xc8ef('0x12')](0x4)[_0xc8ef('0x22')],'defaultValue':0x0,'validate':{'min':0x0,'max':0x270f},'comment':_0xc8ef('0x24')},'dialPowerLevel':{'type':Sequelize['FLOAT'](0x2)[_0xc8ef('0x22')],'defaultValue':0x1,'validate':{'min':0x1,'max':0xa},'comment':_0xc8ef('0x25')},'dialPredictiveOptimization':{'type':Sequelize['ENUM'](_0xc8ef('0x26'),_0xc8ef('0x27')),'defaultValue':_0xc8ef('0x27'),'comment':_0xc8ef('0x28')},'dialPredictiveOptimizationPercentage':{'type':Sequelize[_0xc8ef('0x29')](0x2)[_0xc8ef('0x22')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x5f},'comment':'Predictive\x20Optimization\x20Percentage\x20(min:\x201,\x20max:\x2095)'},'dialPredictiveInterval':{'type':Sequelize['INTEGER'](0x3)[_0xc8ef('0x22')],'defaultValue':0xa,'validate':{'min':0x5,'max':0x1e},'comment':_0xc8ef('0x2a')},'dialOriginateCallerIdName':{'type':Sequelize[_0xc8ef('0x0')]},'dialOriginateCallerIdNumber':{'type':Sequelize[_0xc8ef('0x0')]},'dialOriginateTimeout':{'type':Sequelize['INTEGER'](0x3)[_0xc8ef('0x22')],'defaultValue':0x1e,'validate':{'min':0x1,'max':0x3e7},'comment':_0xc8ef('0x2b')},'dialQueueOptions':{'type':Sequelize['STRING'],'defaultValue':_0xc8ef('0x2c'),'comment':_0xc8ef('0x2d')},'dialQueueTimeout':{'type':Sequelize[_0xc8ef('0x12')](0x3)[_0xc8ef('0x22')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':'Queue\x20Timeout\x20Seconds\x20(min:1,\x20max:999)'},'dialQueueProject':{'type':Sequelize[_0xc8ef('0x0')],'comment':_0xc8ef('0x2e')},'dialCongestionMaxRetry':{'type':Sequelize[_0xc8ef('0x12')](0x3)[_0xc8ef('0x22')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0xc8ef('0x2f')},'dialCongestionRetryFrequency':{'type':Sequelize[_0xc8ef('0x12')](0x5)[_0xc8ef('0x22')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0xc8ef('0x30')},'dialBusyMaxRetry':{'type':Sequelize[_0xc8ef('0x12')](0x3)[_0xc8ef('0x22')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0xc8ef('0x31')},'dialBusyRetryFrequency':{'type':Sequelize[_0xc8ef('0x12')](0x5)[_0xc8ef('0x22')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0xc8ef('0x32')},'dialNoAnswerMaxRetry':{'type':Sequelize[_0xc8ef('0x12')](0x3)[_0xc8ef('0x22')],'defaultValue':0x3,'comment':'#NoAnswer\x20Retry\x20(min:1,\x20max:999)'},'dialNoAnswerRetryFrequency':{'type':Sequelize[_0xc8ef('0x12')](0x5)[_0xc8ef('0x22')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':'NoAnswer\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'},'dialGlobalMaxRetry':{'type':Sequelize[_0xc8ef('0x12')](0x3)['UNSIGNED'],'validate':{'min':0x1,'max':0x3e7},'defaultValue':0x4,'comment':_0xc8ef('0x33')},'dialTimezone':{'type':Sequelize['STRING'],'defaultValue':null},'dialGlobalInterval':{'type':Sequelize[_0xc8ef('0x0')],'defaultValue':_0xc8ef('0x34')},'dialPrefix':{'type':Sequelize['STRING'],'defaultValue':null},'dialCheckDuplicateType':{'type':Sequelize['ENUM']('always','never',_0xc8ef('0x35')),'defaultValue':_0xc8ef('0x36')},'dialAMDActive':{'type':Sequelize[_0xc8ef('0x1c')],'defaultValue':0x0,'comment':_0xc8ef('0x37')},'dialAMDInitialSilence':{'type':Sequelize[_0xc8ef('0x12')](0x9)['UNSIGNED'],'defaultValue':0x9c4,'validate':{'min':0x0},'comment':'#AMD\x20Initial\x20Silence'},'dialAMDGreeting':{'type':Sequelize['INTEGER'](0x9)[_0xc8ef('0x22')],'defaultValue':0x5dc,'validate':{'min':0x0},'comment':_0xc8ef('0x38')},'dialAMDAfterGreetingSilence':{'type':Sequelize[_0xc8ef('0x12')](0x9)[_0xc8ef('0x22')],'defaultValue':0x320,'validate':{'min':0x0},'comment':_0xc8ef('0x39')},'dialAMDTotalAnalysisTime':{'type':Sequelize[_0xc8ef('0x12')](0x9)['UNSIGNED'],'defaultValue':0x1388,'validate':{'min':0x0},'comment':_0xc8ef('0x3a')},'dialAMDMinWordLength':{'type':Sequelize[_0xc8ef('0x12')](0x9)['UNSIGNED'],'defaultValue':0x64,'validate':{'min':0x0},'comment':_0xc8ef('0x3b')},'dialAMDBetweenWordsSilence':{'type':Sequelize['INTEGER'](0x9)[_0xc8ef('0x22')],'defaultValue':0x32,'validate':{'min':0x0},'comment':'#AMD\x20Between\x20Words\x20Silence'},'dialAMDMaximumNumberOfWords':{'type':Sequelize['INTEGER'](0x9)[_0xc8ef('0x22')],'defaultValue':0x3,'validate':{'min':0x0},'comment':'#AMD\x20Maximum\x20Number\x20Of\x20Words'},'dialAMDSilenceThreshold':{'type':Sequelize[_0xc8ef('0x12')](0x5)[_0xc8ef('0x22')],'validate':{'min':0x0,'max':0x7fff},'defaultValue':0x100,'comment':_0xc8ef('0x3c')},'dialAMDMaximumWordLength':{'type':Sequelize[_0xc8ef('0x12')](0x9)['UNSIGNED'],'defaultValue':0x1388,'validate':{'min':0x0},'comment':_0xc8ef('0x3d')},'dialRecallMeTimeout':{'type':Sequelize[_0xc8ef('0x12')](0x5)[_0xc8ef('0x22')],'validate':{'min':0x1},'defaultValue':0x1e,'comment':'#RecallMe\x20Timeout\x20(min:1)'},'dialRecallInQueue':{'type':Sequelize[_0xc8ef('0x1c')],'defaultValue':0x0,'comment':'Active/Disactive\x20Recall\x20In\x20Queue'},'dialOrderByScheduledAt':{'type':Sequelize[_0xc8ef('0x1')](_0xc8ef('0x3e'),_0xc8ef('0x3f')),'defaultValue':_0xc8ef('0x3e')},'dialQueueProject2':{'type':Sequelize[_0xc8ef('0x0')],'comment':_0xc8ef('0x2e')},'dialAgiAfterHangupClient':{'type':Sequelize[_0xc8ef('0x1c')],'defaultValue':![]},'dialAgiAfterHangupAgent':{'type':Sequelize[_0xc8ef('0x1c')],'defaultValue':![]},'dialRandomLastDigitCallerIdNumber':{'type':Sequelize[_0xc8ef('0x12')](0x3)['UNSIGNED'],'validate':{'min':0x0,'max':0xf},'defaultValue':0x0,'comment':'Random\x20Last\x20Digit\x20(min:1,\x20max:15)'},'dialCutDigit':{'type':Sequelize[_0xc8ef('0x12')](0x3)['UNSIGNED'],'validate':{'min':0x0,'max':0xf},'defaultValue':0x0,'comment':_0xc8ef('0x40')},'dialNoSuchNumberMaxRetry':{'type':Sequelize['INTEGER'](0x3)['UNSIGNED'],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0xc8ef('0x41')},'dialNoSuchNumberRetryFrequency':{'type':Sequelize['INTEGER'](0x5)['UNSIGNED'],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0xc8ef('0x42')},'dialDropMaxRetry':{'type':Sequelize['INTEGER'](0x3)['UNSIGNED'],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':'#Drop\x20Retry\x20(min:1,\x20max:999)'},'dialDropRetryFrequency':{'type':Sequelize[_0xc8ef('0x12')](0x5)['UNSIGNED'],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':'Drop\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'},'dialAbandonedMaxRetry':{'type':Sequelize[_0xc8ef('0x12')](0x3)['UNSIGNED'],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':'#Abandoned\x20Retry\x20(min:1,\x20max:999)'},'dialAbandonedRetryFrequency':{'type':Sequelize[_0xc8ef('0x12')](0x5)[_0xc8ef('0x22')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0xc8ef('0x43')},'dialMachineMaxRetry':{'type':Sequelize[_0xc8ef('0x12')](0x3)[_0xc8ef('0x22')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':'#Machine\x20Retry\x20(min:1,\x20max:999)'},'dialMachineRetryFrequency':{'type':Sequelize['INTEGER'](0x5)[_0xc8ef('0x22')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0xc8ef('0x44')},'dialAgentRejectMaxRetry':{'type':Sequelize['INTEGER'](0x3)[_0xc8ef('0x22')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0xc8ef('0x45')},'dialAgentRejectRetryFrequency':{'type':Sequelize['INTEGER'](0x5)['UNSIGNED'],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':'AgentReject\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'},'mandatoryDispositionPauseId':{'type':Sequelize[_0xc8ef('0x12')],'allowNull':!![],'comment':'Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled'},'mandatoryDisposition':{'type':Sequelize[_0xc8ef('0x1c')],'defaultValue':![],'comment':_0xc8ef('0x46'),'set':function(_0x437c05){if(!_0x437c05)this[_0xc8ef('0xa')]('mandatoryDispositionPauseId',null);this[_0xc8ef('0xa')](_0xc8ef('0x47'),_0x437c05);}},'dialPredictiveIntervalMaxThreshold':{'type':Sequelize['INTEGER'](0x3)[_0xc8ef('0x22')],'defaultValue':0x14,'validate':{'min':0x1,'max':0x64}},'dialPredictiveIntervalMinThreshold':{'type':Sequelize[_0xc8ef('0x12')](0x3)[_0xc8ef('0x22')],'defaultValue':0xa,'validate':{'min':0x1,'max':0x64}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xebb8=['tq.TeamId','from','team_has_voice_queues','join','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','VoiceQueueId\x20=\x20?','ut.UserId\x20=\x20?','push','toString','QueryTypes','TeamId','all','union','compact','isEmpty','removeAgents','UserVoiceQueueRt','addAgents','spread','userVoiceQueue:save','online','isArray','userVoiceQueue:remove','getAgents','getMembers','getLists','addLists','dialCheckDuplicateType','insert','into','cm_hopper','fromQuery','updatedAt','phone','NOW()','scheduledAt','ContactId','CmListId','ListId','cm_contacts','deletedAt\x20IS\x20NULL','ListId\x20=\x20?','phone\x20IS\x20NOT\x20NULL','phone\x20NOT\x20IN\x20(?)','COALESCE(calleridnum,\x27\x27)','cm_hopper_final','COALESCE(phone,\x27\x27)','onlyIfOpen','removeLists','getBlackLists','CmList','addBlackLists','cm_hopper_black','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','squel','crypto','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','redis','defaults','localhost','./voiceQueue.socket','sendStatus','status','offset','undefined','count','limit','set','Content-Range','json','apply','reject','save','update','then','VoiceQueues','inbound','outbound','ignore','map','includes','type','find','name','destroy','end','error','stack','send','index','VoiceQueue','rawAttributes','fieldName','key','model','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','includeAll','findAll','rows','catch','show','params','include','options','create','body','user','get','role','QueueCampaigns','value','userProfileId','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','clone','createdAt','omit','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','autoAssociation','getHoppers','findOne','order','VoiceQueueId','CmHopper','CmHopperHistory','getHopperFinals','CmHopperFinal','getHopperBlacks','CmHopperBlack','getTeams','Team','addTeams','User','voicePause','interface','flatMap','Agents','forEach','penalty','sequelize','transaction','each','TeamVoiceQueue','UserVoiceQueue','upsert','isNil','format','SIP/%s','emit','removeTeams','ids','select','field'];(function(_0x38a7a1,_0x1edc54){var _0x23503e=function(_0x28e76e){while(--_0x28e76e){_0x38a7a1['push'](_0x38a7a1['shift']());}};_0x23503e(++_0x1edc54);}(_0xebb8,0xf4));var _0x8ebb=function(_0x542a89,_0x2e4b8a){_0x542a89=_0x542a89-0x0;var _0x267439=_0xebb8[_0x542a89];return _0x267439;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x8ebb('0x0'));var zipdir=require(_0x8ebb('0x1'));var jsonpatch=require(_0x8ebb('0x2'));var rp=require(_0x8ebb('0x3'));var moment=require(_0x8ebb('0x4'));var BPromise=require(_0x8ebb('0x5'));var Mustache=require(_0x8ebb('0x6'));var util=require(_0x8ebb('0x7'));var path=require(_0x8ebb('0x8'));var sox=require('sox');var csv=require(_0x8ebb('0x9'));var ejs=require(_0x8ebb('0xa'));var fs=require('fs');var fs_extra=require(_0x8ebb('0xb'));var _=require('lodash');var squel=require(_0x8ebb('0xc'));var crypto=require(_0x8ebb('0xd'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x8ebb('0x9'));var querystring=require(_0x8ebb('0xe'));var Papa=require(_0x8ebb('0xf'));var Redis=require(_0x8ebb('0x10'));var authService=require(_0x8ebb('0x11'));var qs=require(_0x8ebb('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x8ebb('0x13'));var logger=require(_0x8ebb('0x14'))(_0x8ebb('0x15'));var utils=require(_0x8ebb('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x8ebb('0x17'));var db=require(_0x8ebb('0x18'))['db'];config[_0x8ebb('0x19')]=_[_0x8ebb('0x1a')](config[_0x8ebb('0x19')],{'host':_0x8ebb('0x1b'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x8ebb('0x19')]));require(_0x8ebb('0x1c'))['register'](socket);function respondWithStatusCode(_0x591a4d,_0x70a057){_0x70a057=_0x70a057||0xcc;return function(_0x143044){if(_0x143044){return _0x591a4d[_0x8ebb('0x1d')](_0x70a057);}return _0x591a4d[_0x8ebb('0x1e')](_0x70a057)['end']();};}function respondWithResult(_0x444069,_0x3d00a9){_0x3d00a9=_0x3d00a9||0xc8;return function(_0x1826a8){if(_0x1826a8){return _0x444069[_0x8ebb('0x1e')](_0x3d00a9)['json'](_0x1826a8);}};}function respondWithFilteredResult(_0x4aadb3,_0x2aadb0){return function(_0x1d17a8){if(_0x1d17a8){var _0x16d392=typeof _0x2aadb0[_0x8ebb('0x1f')]===_0x8ebb('0x20')&&typeof _0x2aadb0['limit']===_0x8ebb('0x20');var _0x5952b9=_0x1d17a8[_0x8ebb('0x21')];var _0x52d93c=_0x16d392?0x0:_0x2aadb0[_0x8ebb('0x1f')];var _0x482fe5=_0x16d392?_0x1d17a8[_0x8ebb('0x21')]:_0x2aadb0['offset']+_0x2aadb0[_0x8ebb('0x22')];var _0x2337cb;if(_0x482fe5>=_0x5952b9){_0x482fe5=_0x5952b9;_0x2337cb=0xc8;}else{_0x2337cb=0xce;}_0x4aadb3[_0x8ebb('0x1e')](_0x2337cb);return _0x4aadb3[_0x8ebb('0x23')](_0x8ebb('0x24'),_0x52d93c+'-'+_0x482fe5+'/'+_0x5952b9)[_0x8ebb('0x25')](_0x1d17a8);}return null;};}function patchUpdates(_0x2b50b4){return function(_0x282a92){try{jsonpatch[_0x8ebb('0x26')](_0x282a92,_0x2b50b4,!![]);}catch(_0x477b1e){return BPromise[_0x8ebb('0x27')](_0x477b1e);}return _0x282a92[_0x8ebb('0x28')]();};}function saveUpdates(_0x6e9852,_0x25f3a4){return function(_0x472221){if(_0x472221){return _0x472221[_0x8ebb('0x29')](_0x6e9852)[_0x8ebb('0x2a')](function(_0x12b3ac){return _0x12b3ac;});}return null;};}function removeEntity(_0x509ce8,_0x1de1dc){return function(_0x1f8947){if(_0x1f8947){return _0x1f8947['destroy']()['then'](function(){var _0x55cfe8=_0x1f8947['get']({'plain':!![]});var _0x28e056=[{'name':_0x8ebb('0x2b'),'value':_0x8ebb('0x2c'),'ignore':![]},{'name':'QueueCampaigns','value':_0x8ebb('0x2d'),'ignore':![]}];var _0x268de0=_(_0x28e056)['filter'](_0x8ebb('0x2e'))[_0x8ebb('0x2f')]('value')['value']();if(_[_0x8ebb('0x30')](_0x268de0,_0x55cfe8[_0x8ebb('0x31')])){return;}var _0x1083f3=_[_0x8ebb('0x32')](_0x28e056,['value',_0x55cfe8[_0x8ebb('0x31')]])[_0x8ebb('0x33')];return db['UserProfileResource'][_0x8ebb('0x34')]({'where':{'type':_0x1083f3,'resourceId':_0x55cfe8['id']}})[_0x8ebb('0x2a')](function(){return _0x1f8947;});})[_0x8ebb('0x2a')](function(){_0x509ce8['status'](0xcc)[_0x8ebb('0x35')]();});}};}function handleEntityNotFound(_0x513cb5,_0x2336a2){return function(_0xf83f49){if(!_0xf83f49){_0x513cb5[_0x8ebb('0x1d')](0x194);}return _0xf83f49;};}function handleError(_0x1e3bea,_0x515d6c){_0x515d6c=_0x515d6c||0x1f4;return function(_0x65cdbd){logger[_0x8ebb('0x36')](_0x65cdbd[_0x8ebb('0x37')]);if(_0x65cdbd[_0x8ebb('0x33')]){delete _0x65cdbd[_0x8ebb('0x33')];}_0x1e3bea[_0x8ebb('0x1e')](_0x515d6c)[_0x8ebb('0x38')](_0x65cdbd);};}exports[_0x8ebb('0x39')]=function(_0xd62732,_0x5d1372){var _0x31397e={},_0x35dcac={},_0x32a087={'count':0x0,'rows':[]};var _0x416086=_[_0x8ebb('0x2f')](db[_0x8ebb('0x3a')][_0x8ebb('0x3b')],function(_0x4bccbd){return{'name':_0x4bccbd[_0x8ebb('0x3c')],'type':_0x4bccbd[_0x8ebb('0x31')][_0x8ebb('0x3d')]};});_0x35dcac[_0x8ebb('0x3e')]=_[_0x8ebb('0x2f')](_0x416086,_0x8ebb('0x33'));_0x35dcac[_0x8ebb('0x3f')]=_[_0x8ebb('0x40')](_0xd62732[_0x8ebb('0x3f')]);_0x35dcac[_0x8ebb('0x41')]=_['intersection'](_0x35dcac[_0x8ebb('0x3e')],_0x35dcac[_0x8ebb('0x3f')]);_0x31397e[_0x8ebb('0x42')]=_[_0x8ebb('0x43')](_0x35dcac[_0x8ebb('0x3e')],qs[_0x8ebb('0x44')](_0xd62732[_0x8ebb('0x3f')][_0x8ebb('0x44')]));_0x31397e[_0x8ebb('0x42')]=_0x31397e[_0x8ebb('0x42')][_0x8ebb('0x45')]?_0x31397e[_0x8ebb('0x42')]:_0x35dcac[_0x8ebb('0x3e')];if(!_0xd62732[_0x8ebb('0x3f')][_0x8ebb('0x46')](_0x8ebb('0x47'))){_0x31397e[_0x8ebb('0x22')]=qs[_0x8ebb('0x22')](_0xd62732[_0x8ebb('0x3f')][_0x8ebb('0x22')]);_0x31397e[_0x8ebb('0x1f')]=qs[_0x8ebb('0x1f')](_0xd62732[_0x8ebb('0x3f')]['offset']);}_0x31397e['order']=qs['sort'](_0xd62732[_0x8ebb('0x3f')][_0x8ebb('0x48')]);_0x31397e[_0x8ebb('0x49')]=qs['filters'](_[_0x8ebb('0x4a')](_0xd62732[_0x8ebb('0x3f')],_0x35dcac[_0x8ebb('0x41')]),_0x416086);if(_0xd62732['query'][_0x8ebb('0x4b')]){_0x31397e[_0x8ebb('0x49')]=_[_0x8ebb('0x4c')](_0x31397e[_0x8ebb('0x49')],{'$or':_[_0x8ebb('0x2f')](_0x416086,function(_0x5949f7){if(_0x5949f7['type']!==_0x8ebb('0x4d')){var _0x4c2b2a={};_0x4c2b2a[_0x5949f7[_0x8ebb('0x33')]]={'$like':'%'+_0xd62732['query'][_0x8ebb('0x4b')]+'%'};return _0x4c2b2a;}})});}_0x31397e=_[_0x8ebb('0x4c')]({},_0x31397e,_0xd62732['options']);var _0x7138d2={'where':_0x31397e[_0x8ebb('0x49')]};return db[_0x8ebb('0x3a')][_0x8ebb('0x21')](_0x7138d2)[_0x8ebb('0x2a')](function(_0x206c00){_0x32a087[_0x8ebb('0x21')]=_0x206c00;if(_0xd62732[_0x8ebb('0x3f')][_0x8ebb('0x4e')]){_0x31397e['include']=[{'all':!![]}];}return db[_0x8ebb('0x3a')][_0x8ebb('0x4f')](_0x31397e);})['then'](function(_0x5122aa){_0x32a087[_0x8ebb('0x50')]=_0x5122aa;return _0x32a087;})['then'](respondWithFilteredResult(_0x5d1372,_0x31397e))[_0x8ebb('0x51')](handleError(_0x5d1372,null));};exports[_0x8ebb('0x52')]=function(_0x52f49d,_0x3dc18f){var _0x53dc2b={'raw':![],'where':{'id':_0x52f49d[_0x8ebb('0x53')]['id']}},_0x499855={};_0x499855[_0x8ebb('0x3e')]=_[_0x8ebb('0x40')](db[_0x8ebb('0x3a')]['rawAttributes']);_0x499855[_0x8ebb('0x3f')]=_[_0x8ebb('0x40')](_0x52f49d[_0x8ebb('0x3f')]);_0x499855[_0x8ebb('0x41')]=_['intersection'](_0x499855[_0x8ebb('0x3e')],_0x499855['query']);_0x53dc2b[_0x8ebb('0x42')]=_['intersection'](_0x499855[_0x8ebb('0x3e')],qs['fields'](_0x52f49d['query'][_0x8ebb('0x44')]));_0x53dc2b[_0x8ebb('0x42')]=_0x53dc2b[_0x8ebb('0x42')][_0x8ebb('0x45')]?_0x53dc2b['attributes']:_0x499855[_0x8ebb('0x3e')];if(_0x52f49d[_0x8ebb('0x3f')][_0x8ebb('0x4e')]){_0x53dc2b[_0x8ebb('0x54')]=[{'all':!![]}];}_0x53dc2b=_[_0x8ebb('0x4c')]({},_0x53dc2b,_0x52f49d[_0x8ebb('0x55')]);return db[_0x8ebb('0x3a')][_0x8ebb('0x32')](_0x53dc2b)[_0x8ebb('0x2a')](handleEntityNotFound(_0x3dc18f,null))[_0x8ebb('0x2a')](respondWithResult(_0x3dc18f,null))[_0x8ebb('0x51')](handleError(_0x3dc18f,null));};exports[_0x8ebb('0x56')]=function(_0x379612,_0x470a47){return db['VoiceQueue'][_0x8ebb('0x56')](_0x379612[_0x8ebb('0x57')],{})[_0x8ebb('0x2a')](function(_0x62e159){var _0x278c4e=_0x379612[_0x8ebb('0x58')][_0x8ebb('0x59')]({'plain':!![]});if(!_0x278c4e)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x278c4e[_0x8ebb('0x5a')]===_0x8ebb('0x58')){var _0x524844=_0x62e159['get']({'plain':!![]});var _0x21da1f=[{'name':'VoiceQueues','value':_0x8ebb('0x2c')},{'name':_0x8ebb('0x5b'),'value':_0x8ebb('0x2d')}];var _0x590503=_['find'](_0x21da1f,[_0x8ebb('0x5c'),_0x524844[_0x8ebb('0x31')]])[_0x8ebb('0x33')];return db['UserProfileSection'][_0x8ebb('0x32')]({'where':{'name':_0x590503,'userProfileId':_0x278c4e[_0x8ebb('0x5d')]},'raw':!![]})[_0x8ebb('0x2a')](function(_0xdddd00){if(_0xdddd00&&_0xdddd00['autoAssociation']===0x0){return db[_0x8ebb('0x5e')][_0x8ebb('0x56')]({'name':_0x524844['name'],'resourceId':_0x524844['id'],'type':_0xdddd00['name'],'sectionId':_0xdddd00['id']},{})[_0x8ebb('0x2a')](function(){return _0x62e159;});}else{return _0x62e159;}})['catch'](function(_0x46c1c5){logger[_0x8ebb('0x36')](_0x8ebb('0x5f'),_0x46c1c5);throw _0x46c1c5;});}return _0x62e159;})['then'](respondWithResult(_0x470a47,0xc9))[_0x8ebb('0x51')](handleError(_0x470a47,null));};exports[_0x8ebb('0x60')]=function(_0x2b4ac9,_0xb7eea8){var _0x465a23={'where':{'id':_0x2b4ac9[_0x8ebb('0x53')]['id']}},_0x5aaff7={};_0x5aaff7[_0x8ebb('0x3e')]=_[_0x8ebb('0x40')](db['VoiceQueue'][_0x8ebb('0x3b')]);_0x465a23[_0x8ebb('0x42')]=_[_0x8ebb('0x43')](_0x5aaff7[_0x8ebb('0x3e')],qs[_0x8ebb('0x44')](_0x2b4ac9[_0x8ebb('0x3f')]['fields']));_0x465a23['attributes']=_0x465a23[_0x8ebb('0x42')][_0x8ebb('0x45')]?_0x465a23[_0x8ebb('0x42')]:_0x5aaff7[_0x8ebb('0x3e')];if(_0x2b4ac9['query'][_0x8ebb('0x4e')]){_0x465a23[_0x8ebb('0x54')]=[{'all':!![]}];}_0x465a23=_['merge']({},_0x465a23,_0x2b4ac9[_0x8ebb('0x55')]);return db[_0x8ebb('0x3a')][_0x8ebb('0x32')](_0x465a23)['then'](handleEntityNotFound(_0xb7eea8,null))[_0x8ebb('0x2a')](function(_0x1d9c9a){if(_0x1d9c9a){var _0x40c8a4=_0x1d9c9a[_0x8ebb('0x59')]({'plain':!![]});_0x40c8a4=qs['omit'](_0x40c8a4,['id',_0x8ebb('0x61'),'updatedAt']);_0x2b4ac9['body']=_[_0x8ebb('0x62')](_0x2b4ac9[_0x8ebb('0x57')],['id','createdAt','updatedAt']);return db[_0x8ebb('0x3a')][_0x8ebb('0x56')](_[_0x8ebb('0x4c')](_0x40c8a4,_0x2b4ac9[_0x8ebb('0x57')]),{'include':_0x2b4ac9[_0x8ebb('0x3f')]['includeAll']?[{'all':!![]}]:undefined})[_0x8ebb('0x2a')](function(_0xa26253){var _0x512260=_0x2b4ac9[_0x8ebb('0x58')][_0x8ebb('0x59')]({'plain':!![]});if(!_0x512260)throw new Error(_0x8ebb('0x63'));if(_0x512260[_0x8ebb('0x5a')]===_0x8ebb('0x58')){var _0x24140d=_0xa26253[_0x8ebb('0x59')]({'plain':!![]});var _0x3f157a=[{'name':_0x8ebb('0x2b'),'value':_0x8ebb('0x2c')},{'name':_0x8ebb('0x5b'),'value':_0x8ebb('0x2d')}];var _0x2b8156=_['find'](_0x3f157a,[_0x8ebb('0x5c'),_0x24140d[_0x8ebb('0x31')]])[_0x8ebb('0x33')];return db[_0x8ebb('0x64')][_0x8ebb('0x32')]({'where':{'name':_0x2b8156,'userProfileId':_0x512260[_0x8ebb('0x5d')]},'raw':!![]})[_0x8ebb('0x2a')](function(_0x2f331a){if(_0x2f331a&&_0x2f331a[_0x8ebb('0x65')]===0x0){return db['UserProfileResource'][_0x8ebb('0x56')]({'name':_0x24140d[_0x8ebb('0x33')],'resourceId':_0x24140d['id'],'type':_0x2f331a[_0x8ebb('0x33')],'sectionId':_0x2f331a['id']},{})[_0x8ebb('0x2a')](function(){return _0xa26253;});}else{return _0xa26253;}})[_0x8ebb('0x51')](function(_0x5a3e2a){logger[_0x8ebb('0x36')](_0x8ebb('0x5f'),_0x5a3e2a);throw _0x5a3e2a;});}return _0xa26253;});}})[_0x8ebb('0x2a')](respondWithResult(_0xb7eea8,0xc9))[_0x8ebb('0x51')](handleError(_0xb7eea8,null));};exports[_0x8ebb('0x29')]=function(_0x342b5b,_0xad543){if(_0x342b5b[_0x8ebb('0x57')]['id']){delete _0x342b5b[_0x8ebb('0x57')]['id'];}return db[_0x8ebb('0x3a')][_0x8ebb('0x32')]({'where':{'id':_0x342b5b[_0x8ebb('0x53')]['id']}})[_0x8ebb('0x2a')](handleEntityNotFound(_0xad543,null))[_0x8ebb('0x2a')](saveUpdates(_0x342b5b[_0x8ebb('0x57')],null))[_0x8ebb('0x2a')](respondWithResult(_0xad543,null))[_0x8ebb('0x51')](handleError(_0xad543,null));};exports[_0x8ebb('0x34')]=function(_0x2b207b,_0xf2a76b){return db[_0x8ebb('0x3a')][_0x8ebb('0x32')]({'where':{'id':_0x2b207b[_0x8ebb('0x53')]['id']}})['then'](handleEntityNotFound(_0xf2a76b,null))[_0x8ebb('0x2a')](removeEntity(_0xf2a76b,null))['catch'](handleError(_0xf2a76b,null));};exports[_0x8ebb('0x66')]=function(_0x3da092,_0xab55ec,_0x1b1b4f){var _0x29db9b={'raw':![],'where':{}};var _0xdfb162={};var _0x1a6ca2={'count':0x0,'rows':[]};return db[_0x8ebb('0x3a')][_0x8ebb('0x67')]({'where':{'id':_0x3da092[_0x8ebb('0x53')]['id']}})[_0x8ebb('0x2a')](handleEntityNotFound(_0xab55ec,null))[_0x8ebb('0x2a')](function(_0x850a93){if(_0x850a93){_0xdfb162[_0x8ebb('0x3e')]=_[_0x8ebb('0x40')](db['CmHopper'][_0x8ebb('0x3b')]);_0xdfb162['query']=_['keys'](_0x3da092[_0x8ebb('0x3f')]);_0xdfb162[_0x8ebb('0x41')]=_[_0x8ebb('0x43')](_0xdfb162[_0x8ebb('0x3e')],_0xdfb162[_0x8ebb('0x3f')]);_0x29db9b[_0x8ebb('0x42')]=_[_0x8ebb('0x43')](_0xdfb162[_0x8ebb('0x3e')],qs[_0x8ebb('0x44')](_0x3da092[_0x8ebb('0x3f')][_0x8ebb('0x44')]));_0x29db9b[_0x8ebb('0x42')]=_0x29db9b[_0x8ebb('0x42')][_0x8ebb('0x45')]?_0x29db9b[_0x8ebb('0x42')]:_0xdfb162[_0x8ebb('0x3e')];if(!_0x3da092[_0x8ebb('0x3f')][_0x8ebb('0x46')](_0x8ebb('0x47'))){_0x29db9b[_0x8ebb('0x22')]=qs[_0x8ebb('0x22')](_0x3da092['query']['limit']);_0x29db9b[_0x8ebb('0x1f')]=qs[_0x8ebb('0x1f')](_0x3da092[_0x8ebb('0x3f')][_0x8ebb('0x1f')]);}_0x29db9b[_0x8ebb('0x68')]=qs['sort'](_0x3da092[_0x8ebb('0x3f')][_0x8ebb('0x48')]);_0x29db9b[_0x8ebb('0x49')]=qs[_0x8ebb('0x41')](_[_0x8ebb('0x4a')](_0x3da092[_0x8ebb('0x3f')],_0xdfb162['filters']));_0x29db9b[_0x8ebb('0x49')][_0x8ebb('0x69')]=_0x850a93['id'];if(_0x3da092[_0x8ebb('0x3f')][_0x8ebb('0x4b')]){_0x29db9b[_0x8ebb('0x49')]=_[_0x8ebb('0x4c')](_0x29db9b['where'],{'$or':_['map'](_0x29db9b[_0x8ebb('0x42')],function(_0x1fd8de){var _0x2e8c5c={};_0x2e8c5c[_0x1fd8de]={'$like':'%'+_0x3da092[_0x8ebb('0x3f')][_0x8ebb('0x4b')]+'%'};return _0x2e8c5c;})});}_0x29db9b=_[_0x8ebb('0x4c')]({},_0x29db9b,_0x3da092[_0x8ebb('0x55')]);return db[_0x8ebb('0x6a')]['count']({'where':_0x29db9b[_0x8ebb('0x49')]})[_0x8ebb('0x2a')](function(_0x21cca7){_0x1a6ca2[_0x8ebb('0x21')]=_0x21cca7;if(_0x3da092[_0x8ebb('0x3f')]['includeAll']){_0x29db9b[_0x8ebb('0x54')]=[{'all':!![]}];}return db['CmHopper'][_0x8ebb('0x4f')](_0x29db9b);})['then'](function(_0x49b0f7){_0x1a6ca2[_0x8ebb('0x50')]=_0x49b0f7;return _0x1a6ca2;});}})[_0x8ebb('0x2a')](respondWithFilteredResult(_0xab55ec,_0x29db9b))[_0x8ebb('0x51')](handleError(_0xab55ec,null));};exports['getHopperHistories']=function(_0x54adb7,_0xdeea72,_0x2085f9){var _0x1249ae={'raw':!![],'where':{}};var _0x32dac7={};var _0x2119a0={'count':0x0,'rows':[]};return db[_0x8ebb('0x3a')][_0x8ebb('0x67')]({'where':{'id':_0x54adb7[_0x8ebb('0x53')]['id']}})[_0x8ebb('0x2a')](handleEntityNotFound(_0xdeea72,null))[_0x8ebb('0x2a')](function(_0xb3c99e){if(_0xb3c99e){_0x32dac7[_0x8ebb('0x3e')]=_[_0x8ebb('0x40')](db[_0x8ebb('0x6b')]['rawAttributes']);_0x32dac7[_0x8ebb('0x3f')]=_[_0x8ebb('0x40')](_0x54adb7['query']);_0x32dac7[_0x8ebb('0x41')]=_[_0x8ebb('0x43')](_0x32dac7[_0x8ebb('0x3e')],_0x32dac7[_0x8ebb('0x3f')]);_0x1249ae[_0x8ebb('0x42')]=_[_0x8ebb('0x43')](_0x32dac7[_0x8ebb('0x3e')],qs[_0x8ebb('0x44')](_0x54adb7[_0x8ebb('0x3f')][_0x8ebb('0x44')]));_0x1249ae[_0x8ebb('0x42')]=_0x1249ae[_0x8ebb('0x42')][_0x8ebb('0x45')]?_0x1249ae[_0x8ebb('0x42')]:_0x32dac7['model'];if(!_0x54adb7[_0x8ebb('0x3f')][_0x8ebb('0x46')](_0x8ebb('0x47'))){_0x1249ae[_0x8ebb('0x22')]=qs[_0x8ebb('0x22')](_0x54adb7[_0x8ebb('0x3f')][_0x8ebb('0x22')]);_0x1249ae[_0x8ebb('0x1f')]=qs[_0x8ebb('0x1f')](_0x54adb7[_0x8ebb('0x3f')][_0x8ebb('0x1f')]);}_0x1249ae[_0x8ebb('0x68')]=qs['sort'](_0x54adb7[_0x8ebb('0x3f')][_0x8ebb('0x48')]);_0x1249ae[_0x8ebb('0x49')]=qs[_0x8ebb('0x41')](_[_0x8ebb('0x4a')](_0x54adb7['query'],_0x32dac7['filters']));_0x1249ae['where'][_0x8ebb('0x69')]=_0xb3c99e['id'];if(_0x54adb7[_0x8ebb('0x3f')][_0x8ebb('0x4b')]){_0x1249ae[_0x8ebb('0x49')]=_[_0x8ebb('0x4c')](_0x1249ae[_0x8ebb('0x49')],{'$or':_[_0x8ebb('0x2f')](_0x1249ae[_0x8ebb('0x42')],function(_0x1b0756){var _0x4be090={};_0x4be090[_0x1b0756]={'$like':'%'+_0x54adb7['query'][_0x8ebb('0x4b')]+'%'};return _0x4be090;})});}_0x1249ae=_[_0x8ebb('0x4c')]({},_0x1249ae,_0x54adb7[_0x8ebb('0x55')]);return db[_0x8ebb('0x6b')][_0x8ebb('0x21')]({'where':_0x1249ae[_0x8ebb('0x49')]})[_0x8ebb('0x2a')](function(_0x29b71b){_0x2119a0['count']=_0x29b71b;if(_0x54adb7['query'][_0x8ebb('0x4e')]){_0x1249ae[_0x8ebb('0x54')]=[{'all':!![]}];}return db['CmHopperHistory'][_0x8ebb('0x4f')](_0x1249ae);})[_0x8ebb('0x2a')](function(_0x386989){_0x2119a0[_0x8ebb('0x50')]=_0x386989;return _0x2119a0;});}})['then'](respondWithFilteredResult(_0xdeea72,_0x1249ae))[_0x8ebb('0x51')](handleError(_0xdeea72,null));};exports[_0x8ebb('0x6c')]=function(_0x4139fb,_0x4136c6,_0xf69201){var _0x57c1f0={'raw':!![],'where':{}};var _0x1d10a1={};var _0x2b3429={'count':0x0,'rows':[]};return db[_0x8ebb('0x3a')]['findOne']({'where':{'id':_0x4139fb['params']['id']}})[_0x8ebb('0x2a')](handleEntityNotFound(_0x4136c6,null))[_0x8ebb('0x2a')](function(_0xa33d1c){if(_0xa33d1c){_0x1d10a1[_0x8ebb('0x3e')]=_[_0x8ebb('0x40')](db[_0x8ebb('0x6d')]['rawAttributes']);_0x1d10a1[_0x8ebb('0x3f')]=_[_0x8ebb('0x40')](_0x4139fb[_0x8ebb('0x3f')]);_0x1d10a1[_0x8ebb('0x41')]=_[_0x8ebb('0x43')](_0x1d10a1[_0x8ebb('0x3e')],_0x1d10a1[_0x8ebb('0x3f')]);_0x57c1f0[_0x8ebb('0x42')]=_[_0x8ebb('0x43')](_0x1d10a1[_0x8ebb('0x3e')],qs[_0x8ebb('0x44')](_0x4139fb[_0x8ebb('0x3f')]['fields']));_0x57c1f0[_0x8ebb('0x42')]=_0x57c1f0[_0x8ebb('0x42')]['length']?_0x57c1f0[_0x8ebb('0x42')]:_0x1d10a1['model'];if(!_0x4139fb['query']['hasOwnProperty'](_0x8ebb('0x47'))){_0x57c1f0['limit']=qs[_0x8ebb('0x22')](_0x4139fb[_0x8ebb('0x3f')][_0x8ebb('0x22')]);_0x57c1f0[_0x8ebb('0x1f')]=qs[_0x8ebb('0x1f')](_0x4139fb[_0x8ebb('0x3f')][_0x8ebb('0x1f')]);}_0x57c1f0['order']=qs[_0x8ebb('0x48')](_0x4139fb['query'][_0x8ebb('0x48')]);_0x57c1f0[_0x8ebb('0x49')]=qs[_0x8ebb('0x41')](_[_0x8ebb('0x4a')](_0x4139fb[_0x8ebb('0x3f')],_0x1d10a1[_0x8ebb('0x41')]));_0x57c1f0[_0x8ebb('0x49')][_0x8ebb('0x69')]=_0xa33d1c['id'];if(_0x4139fb[_0x8ebb('0x3f')]['filter']){_0x57c1f0[_0x8ebb('0x49')]=_['merge'](_0x57c1f0['where'],{'$or':_[_0x8ebb('0x2f')](_0x57c1f0[_0x8ebb('0x42')],function(_0x362060){var _0x387749={};_0x387749[_0x362060]={'$like':'%'+_0x4139fb[_0x8ebb('0x3f')]['filter']+'%'};return _0x387749;})});}_0x57c1f0=_[_0x8ebb('0x4c')]({},_0x57c1f0,_0x4139fb[_0x8ebb('0x55')]);return db[_0x8ebb('0x6d')][_0x8ebb('0x21')]({'where':_0x57c1f0['where']})['then'](function(_0x591114){_0x2b3429[_0x8ebb('0x21')]=_0x591114;if(_0x4139fb[_0x8ebb('0x3f')]['includeAll']){_0x57c1f0[_0x8ebb('0x54')]=[{'all':!![]}];}return db['CmHopperFinal']['findAll'](_0x57c1f0);})[_0x8ebb('0x2a')](function(_0x5bb480){_0x2b3429[_0x8ebb('0x50')]=_0x5bb480;return _0x2b3429;});}})[_0x8ebb('0x2a')](respondWithFilteredResult(_0x4136c6,_0x57c1f0))[_0x8ebb('0x51')](handleError(_0x4136c6,null));};exports[_0x8ebb('0x6e')]=function(_0xe3bc6e,_0x1dbb1f,_0x3273c4){var _0x22a1e8={'raw':!![],'where':{}};var _0x218aa2={};var _0x50567f={'count':0x0,'rows':[]};return db[_0x8ebb('0x3a')][_0x8ebb('0x67')]({'where':{'id':_0xe3bc6e[_0x8ebb('0x53')]['id']}})[_0x8ebb('0x2a')](handleEntityNotFound(_0x1dbb1f,null))[_0x8ebb('0x2a')](function(_0x10c1c4){if(_0x10c1c4){_0x218aa2[_0x8ebb('0x3e')]=_[_0x8ebb('0x40')](db[_0x8ebb('0x6f')]['rawAttributes']);_0x218aa2[_0x8ebb('0x3f')]=_['keys'](_0xe3bc6e[_0x8ebb('0x3f')]);_0x218aa2[_0x8ebb('0x41')]=_[_0x8ebb('0x43')](_0x218aa2['model'],_0x218aa2[_0x8ebb('0x3f')]);_0x22a1e8['attributes']=_[_0x8ebb('0x43')](_0x218aa2[_0x8ebb('0x3e')],qs[_0x8ebb('0x44')](_0xe3bc6e[_0x8ebb('0x3f')][_0x8ebb('0x44')]));_0x22a1e8[_0x8ebb('0x42')]=_0x22a1e8[_0x8ebb('0x42')]['length']?_0x22a1e8[_0x8ebb('0x42')]:_0x218aa2[_0x8ebb('0x3e')];if(!_0xe3bc6e['query']['hasOwnProperty'](_0x8ebb('0x47'))){_0x22a1e8['limit']=qs[_0x8ebb('0x22')](_0xe3bc6e[_0x8ebb('0x3f')]['limit']);_0x22a1e8[_0x8ebb('0x1f')]=qs[_0x8ebb('0x1f')](_0xe3bc6e[_0x8ebb('0x3f')]['offset']);}_0x22a1e8[_0x8ebb('0x68')]=qs[_0x8ebb('0x48')](_0xe3bc6e[_0x8ebb('0x3f')]['sort']);_0x22a1e8[_0x8ebb('0x49')]=qs[_0x8ebb('0x41')](_[_0x8ebb('0x4a')](_0xe3bc6e[_0x8ebb('0x3f')],_0x218aa2[_0x8ebb('0x41')]));_0x22a1e8[_0x8ebb('0x49')][_0x8ebb('0x69')]=_0x10c1c4['id'];if(_0xe3bc6e[_0x8ebb('0x3f')]['filter']){_0x22a1e8[_0x8ebb('0x49')]=_['merge'](_0x22a1e8[_0x8ebb('0x49')],{'$or':_[_0x8ebb('0x2f')](_0x22a1e8[_0x8ebb('0x42')],function(_0x48dd9f){var _0xf4a5df={};_0xf4a5df[_0x48dd9f]={'$like':'%'+_0xe3bc6e[_0x8ebb('0x3f')][_0x8ebb('0x4b')]+'%'};return _0xf4a5df;})});}_0x22a1e8=_[_0x8ebb('0x4c')]({},_0x22a1e8,_0xe3bc6e[_0x8ebb('0x55')]);return db['CmHopperBlack'][_0x8ebb('0x21')]({'where':_0x22a1e8[_0x8ebb('0x49')]})['then'](function(_0x3305cc){_0x50567f['count']=_0x3305cc;if(_0xe3bc6e[_0x8ebb('0x3f')][_0x8ebb('0x4e')]){_0x22a1e8[_0x8ebb('0x54')]=[{'all':!![]}];}return db[_0x8ebb('0x6f')][_0x8ebb('0x4f')](_0x22a1e8);})[_0x8ebb('0x2a')](function(_0x344ebc){_0x50567f[_0x8ebb('0x50')]=_0x344ebc;return _0x50567f;});}})[_0x8ebb('0x2a')](respondWithFilteredResult(_0x1dbb1f,_0x22a1e8))[_0x8ebb('0x51')](handleError(_0x1dbb1f,null));};exports[_0x8ebb('0x70')]=function(_0x4c849e,_0x1b1d95,_0x2c298e){var _0xfdb9e3={};var _0x2b7fc7={};var _0x1a628e;var _0x589634;return db[_0x8ebb('0x3a')][_0x8ebb('0x67')]({'where':{'id':_0x4c849e[_0x8ebb('0x53')]['id']}})['then'](handleEntityNotFound(_0x1b1d95,null))[_0x8ebb('0x2a')](function(_0x777bf3){if(_0x777bf3){_0x1a628e=_0x777bf3;_0x2b7fc7[_0x8ebb('0x3e')]=_['keys'](db[_0x8ebb('0x71')][_0x8ebb('0x3b')]);_0x2b7fc7[_0x8ebb('0x3f')]=_[_0x8ebb('0x40')](_0x4c849e[_0x8ebb('0x3f')]);_0x2b7fc7[_0x8ebb('0x41')]=_['intersection'](_0x2b7fc7[_0x8ebb('0x3e')],_0x2b7fc7[_0x8ebb('0x3f')]);_0xfdb9e3[_0x8ebb('0x42')]=_[_0x8ebb('0x43')](_0x2b7fc7['model'],qs[_0x8ebb('0x44')](_0x4c849e['query'][_0x8ebb('0x44')]));_0xfdb9e3[_0x8ebb('0x42')]=_0xfdb9e3['attributes']['length']?_0xfdb9e3[_0x8ebb('0x42')]:_0x2b7fc7[_0x8ebb('0x3e')];_0xfdb9e3['order']=qs[_0x8ebb('0x48')](_0x4c849e[_0x8ebb('0x3f')][_0x8ebb('0x48')]);_0xfdb9e3['where']=qs[_0x8ebb('0x41')](_[_0x8ebb('0x4a')](_0x4c849e[_0x8ebb('0x3f')],_0x2b7fc7['filters']));if(_0x4c849e[_0x8ebb('0x3f')][_0x8ebb('0x4b')]){_0xfdb9e3[_0x8ebb('0x49')]=_[_0x8ebb('0x4c')](_0xfdb9e3['where'],{'$or':_[_0x8ebb('0x2f')](_0xfdb9e3['attributes'],function(_0x41cc01){var _0x2b4d98={};_0x2b4d98[_0x41cc01]={'$like':'%'+_0x4c849e['query'][_0x8ebb('0x4b')]+'%'};return _0x2b4d98;})});}_0xfdb9e3=_[_0x8ebb('0x4c')]({},_0xfdb9e3,_0x4c849e[_0x8ebb('0x55')]);return _0x1a628e[_0x8ebb('0x70')](_0xfdb9e3);}})['then'](function(_0x5a1968){if(_0x5a1968){_0x589634=_0x5a1968[_0x8ebb('0x45')];if(!_0x4c849e[_0x8ebb('0x3f')][_0x8ebb('0x46')]('nolimit')){_0xfdb9e3['limit']=qs[_0x8ebb('0x22')](_0x4c849e['query'][_0x8ebb('0x22')]);_0xfdb9e3[_0x8ebb('0x1f')]=qs[_0x8ebb('0x1f')](_0x4c849e[_0x8ebb('0x3f')][_0x8ebb('0x1f')]);}return _0x1a628e[_0x8ebb('0x70')](_0xfdb9e3);}})[_0x8ebb('0x2a')](function(_0x3e89e5){if(_0x3e89e5){return _0x3e89e5?{'count':_0x589634,'rows':_0x3e89e5}:null;}})[_0x8ebb('0x2a')](respondWithResult(_0x1b1d95,null))[_0x8ebb('0x51')](handleError(_0x1b1d95,null));};exports[_0x8ebb('0x72')]=function(_0x34a083,_0xc534de,_0x560081){var _0x1f1cfb=_0x34a083[_0x8ebb('0x57')]['teams'];var _0x21901e=_['map'](_0x1f1cfb,'id');return db[_0x8ebb('0x71')][_0x8ebb('0x4f')]({'where':{'id':_0x21901e},'attributes':['id'],'include':[{'model':db[_0x8ebb('0x73')],'as':'Agents','attributes':['id',_0x8ebb('0x33'),'online',_0x8ebb('0x74'),_0x8ebb('0x75')],'raw':!![]}]})[_0x8ebb('0x2a')](function(_0x95850d){if(_0x95850d){var _0x29eaee=_[_0x8ebb('0x76')](_0x95850d,function(_0x2d7615){var _0x34d46d=_0x2d7615[_0x8ebb('0x59')]({'plain':!![]});_0x34d46d[_0x8ebb('0x77')][_0x8ebb('0x78')](function(_0x1948b0){_0x1948b0[_0x8ebb('0x79')]=_[_0x8ebb('0x32')](_0x1f1cfb,{'id':_0x34d46d['id']})[_0x8ebb('0x79')];});return _0x34d46d['Agents'];});return db[_0x8ebb('0x3a')][_0x8ebb('0x32')]({'where':{'id':_0x34a083[_0x8ebb('0x53')]['id']}})[_0x8ebb('0x2a')](function(_0x33c055){return db[_0x8ebb('0x7a')][_0x8ebb('0x7b')](function(_0x4bc6bf){return _0x33c055[_0x8ebb('0x72')](_0x21901e,{'transaction':_0x4bc6bf})['then'](function(){return BPromise[_0x8ebb('0x7c')](_0x1f1cfb,function(_0x15d316){return db[_0x8ebb('0x7d')]['upsert']({'TeamId':_0x15d316['id'],'VoiceQueueId':_0x34a083[_0x8ebb('0x53')]['id'],'penalty':_0x15d316[_0x8ebb('0x79')]},{'transaction':_0x4bc6bf});});})[_0x8ebb('0x2a')](function(){return BPromise[_0x8ebb('0x7c')](_0x29eaee,function(_0x47ec4c){return db[_0x8ebb('0x7e')]['findOrCreate']({'where':{'UserId':_0x47ec4c['id'],'VoiceQueueId':_0x34a083[_0x8ebb('0x53')]['id']},'defaults':{'penalty':_0x47ec4c[_0x8ebb('0x79')]},'transaction':_0x4bc6bf});});})['then'](function(){return BPromise[_0x8ebb('0x7c')](_[_0x8ebb('0x4b')](_0x29eaee,{'online':!![]}),function(_0x2463f5){return db['UserVoiceQueueRt'][_0x8ebb('0x7f')]({'membername':_0x2463f5[_0x8ebb('0x33')],'UserId':_0x2463f5['id'],'queue_name':_0x33c055[_0x8ebb('0x33')],'VoiceQueueId':_0x33c055['id'],'interface':_[_0x8ebb('0x80')](_0x2463f5['interface'])?util[_0x8ebb('0x81')](_0x8ebb('0x82'),_0x2463f5[_0x8ebb('0x33')]):_0x2463f5[_0x8ebb('0x75')],'paused':_0x2463f5[_0x8ebb('0x74')]||![],'penalty':_0x2463f5['penalty']},{'transaction':_0x4bc6bf});});})[_0x8ebb('0x2a')](function(){_0x29eaee[_0x8ebb('0x78')](function(_0x2fd9d0){socket[_0x8ebb('0x83')]('userVoiceQueue:save',{'UserId':_0x2fd9d0['id'],'VoiceQueueId':_0x33c055['id']});});});});});}})[_0x8ebb('0x2a')](respondWithStatusCode(_0xc534de,null))[_0x8ebb('0x51')](handleError(_0xc534de,null));};exports[_0x8ebb('0x84')]=function(_0x3c0348,_0xbaf89e,_0x78d30e){return db[_0x8ebb('0x71')]['findAll']({'where':{'id':_0x3c0348[_0x8ebb('0x3f')][_0x8ebb('0x85')]},'attributes':['id'],'include':[{'model':db[_0x8ebb('0x73')],'as':_0x8ebb('0x77'),'attributes':['id'],'raw':!![]}]})['then'](handleEntityNotFound(_0xbaf89e,null))['then'](function(_0x3dcd37){var _0x569d3d=_[_0x8ebb('0x2f')](_0x3dcd37,'id');var _0x578f00=[];var _0x4cd3d0=[];var _0x21056e=squel[_0x8ebb('0x86')]();_0x21056e[_0x8ebb('0x87')](_0x8ebb('0x88'))[_0x8ebb('0x89')](_0x8ebb('0x8a'),'tq')[_0x8ebb('0x8b')](_0x8ebb('0x8c'),'ut',_0x8ebb('0x8d'))[_0x8ebb('0x49')](_0x8ebb('0x8e'),_0x3c0348[_0x8ebb('0x53')]['id']);for(var _0x3dcf98=0x0;_0x3dcf98<_0x3dcd37['length'];_0x3dcf98+=0x1){let _0x2d007e=_0x3dcd37[_0x3dcf98];for(var _0x126df2=0x0;_0x126df2<_0x2d007e[_0x8ebb('0x77')][_0x8ebb('0x45')];_0x126df2+=0x1){let _0x491a5b=_0x2d007e[_0x8ebb('0x77')][_0x126df2];var _0x5e5c2e=_0x21056e['clone']();_0x5e5c2e[_0x8ebb('0x49')](_0x8ebb('0x8f'),_0x491a5b['id']);_0x4cd3d0[_0x8ebb('0x90')](db[_0x8ebb('0x7a')][_0x8ebb('0x3f')](_0x5e5c2e[_0x8ebb('0x91')](),{'type':db[_0x8ebb('0x7a')][_0x8ebb('0x92')]['SELECT']})[_0x8ebb('0x2a')](function(_0x44eff9){if(_0x44eff9[_0x8ebb('0x45')]===0x1){return _0x491a5b['id'];}else{var _0x26d8cd=_['every'](_[_0x8ebb('0x2f')](_0x44eff9,_0x8ebb('0x93')),function(_0x4e3d5f){return _[_0x8ebb('0x30')](_0x569d3d,_0x4e3d5f);});if(_0x26d8cd){return _0x491a5b['id'];}}}));}}return BPromise[_0x8ebb('0x94')](_0x4cd3d0)[_0x8ebb('0x2a')](function(_0x3bb07a){_0x578f00=_(_0x578f00)[_0x8ebb('0x95')](_0x3bb07a)[_0x8ebb('0x96')]()[_0x8ebb('0x5c')]();return db[_0x8ebb('0x3a')][_0x8ebb('0x32')]({'where':{'id':_0x3c0348['params']['id']}})['then'](function(_0x38f178){return db[_0x8ebb('0x7a')][_0x8ebb('0x7b')](function(_0xc114ac){return _0x38f178['removeTeams'](_0x3c0348[_0x8ebb('0x3f')]['ids'],{'transaction':_0xc114ac})['then'](function(){if(!_[_0x8ebb('0x97')](_0x578f00)){return _0x38f178[_0x8ebb('0x98')](_0x578f00,{'transaction':_0xc114ac})[_0x8ebb('0x2a')](function(){return db[_0x8ebb('0x99')][_0x8ebb('0x34')]({'where':{'VoiceQueueId':_0x3c0348[_0x8ebb('0x53')]['id'],'UserId':_0x578f00},'transaction':_0xc114ac});});}})[_0x8ebb('0x2a')](function(){_0x578f00[_0x8ebb('0x78')](function(_0x414815){socket['emit']('userVoiceQueue:remove',{'UserId':_0x414815,'VoiceQueueId':_0x38f178['id']});});});});});});})['then'](respondWithStatusCode(_0xbaf89e,null))[_0x8ebb('0x51')](handleError(_0xbaf89e,null));};exports[_0x8ebb('0x9a')]=function(_0x4293fb,_0x3103d1,_0x213539){var _0x4969a9,_0x10de2a;return db['VoiceQueue']['find']({'where':{'id':_0x4293fb['params']['id']}})[_0x8ebb('0x2a')](handleEntityNotFound(_0x3103d1,null))[_0x8ebb('0x2a')](function(_0x3a5fe0){if(_0x3a5fe0){_0x10de2a=_0x3a5fe0;return _0x3a5fe0['addAgents'](_0x4293fb['body']['ids'],_[_0x8ebb('0x62')](_0x4293fb[_0x8ebb('0x57')],[_0x8ebb('0x85'),'id'])||{})[_0x8ebb('0x9b')](function(_0x5d7fda){for(var _0x2c078d=0x0;_0x2c078d<_0x4293fb[_0x8ebb('0x57')][_0x8ebb('0x85')][_0x8ebb('0x45')];_0x2c078d+=0x1){socket[_0x8ebb('0x83')](_0x8ebb('0x9c'),{'UserId':Number(_0x4293fb[_0x8ebb('0x57')][_0x8ebb('0x85')][_0x2c078d]),'VoiceQueueId':Number(_0x4293fb[_0x8ebb('0x53')]['id'])});}return _0x5d7fda;});}})[_0x8ebb('0x2a')](function(_0x31a3af){_0x4969a9=_0x31a3af||[];if(_0x10de2a){return db['User'][_0x8ebb('0x4f')]({'where':{'id':_0x4293fb[_0x8ebb('0x57')][_0x8ebb('0x85')]},'attributes':['id',_0x8ebb('0x33'),_0x8ebb('0x9d'),_0x8ebb('0x74'),_0x8ebb('0x75')],'raw':!![]});}})[_0x8ebb('0x2a')](function(_0x1fda1c){if(!_['isEmpty'](_0x1fda1c)){var _0x395537=[];for(var _0x17eda3=0x0;_0x17eda3<_0x1fda1c[_0x8ebb('0x45')];_0x17eda3++){if(_0x1fda1c[_0x17eda3][_0x8ebb('0x9d')]){_0x395537['push'](db['UserVoiceQueueRt'][_0x8ebb('0x7f')]({'membername':_0x1fda1c[_0x17eda3]['name'],'UserId':_0x1fda1c[_0x17eda3]['id'],'queue_name':_0x10de2a[_0x8ebb('0x33')],'VoiceQueueId':_0x10de2a['id'],'interface':_[_0x8ebb('0x80')](_0x1fda1c[_0x17eda3][_0x8ebb('0x75')])?util[_0x8ebb('0x81')](_0x8ebb('0x82'),_0x1fda1c[_0x17eda3][_0x8ebb('0x33')]):_0x1fda1c[_0x17eda3][_0x8ebb('0x75')],'paused':_0x1fda1c[_0x17eda3][_0x8ebb('0x74')]||![],'penalty':_0x4293fb[_0x8ebb('0x57')][_0x8ebb('0x79')]||0x0}));}}return BPromise['all'](_0x395537);}})[_0x8ebb('0x2a')](function(){return _0x4969a9;})[_0x8ebb('0x2a')](respondWithResult(_0x3103d1,null))[_0x8ebb('0x51')](handleError(_0x3103d1,null));};exports['removeAgents']=function(_0x8d8cda,_0x48be75,_0x65980d){return db[_0x8ebb('0x3a')]['find']({'where':{'id':_0x8d8cda[_0x8ebb('0x53')]['id']}})['then'](handleEntityNotFound(_0x48be75,null))['then'](function(_0x2034ee){if(_0x2034ee){return _0x2034ee['removeAgents'](_0x8d8cda[_0x8ebb('0x3f')][_0x8ebb('0x85')])['then'](function(){if(_[_0x8ebb('0x9e')](_0x8d8cda['query']['ids'])){for(var _0x44a45d=0x0;_0x44a45d<_0x8d8cda[_0x8ebb('0x3f')][_0x8ebb('0x85')][_0x8ebb('0x45')];_0x44a45d+=0x1){socket[_0x8ebb('0x83')](_0x8ebb('0x9f'),{'UserId':Number(_0x8d8cda[_0x8ebb('0x3f')]['ids'][_0x44a45d]),'VoiceQueueId':Number(_0x8d8cda['params']['id'])});}}else{socket[_0x8ebb('0x83')](_0x8ebb('0x9f'),{'UserId':Number(_0x8d8cda[_0x8ebb('0x3f')][_0x8ebb('0x85')]),'VoiceQueueId':Number(_0x8d8cda[_0x8ebb('0x53')]['id'])});}});}})[_0x8ebb('0x2a')](function(_0x38a2da){return db[_0x8ebb('0x99')]['destroy']({'where':{'VoiceQueueId':_0x8d8cda['params']['id'],'UserId':_0x8d8cda['query'][_0x8ebb('0x85')]}})[_0x8ebb('0x2a')](function(){return _0x38a2da;});})['then'](respondWithStatusCode(_0x48be75,null))[_0x8ebb('0x51')](handleError(_0x48be75,null));};exports[_0x8ebb('0xa0')]=function(_0x2c1e93,_0x178ac1,_0x28a7f8){var _0x2785f9={};var _0x4af103={};var _0x302c30;var _0x4c1478;return db[_0x8ebb('0x3a')][_0x8ebb('0x67')]({'where':{'id':_0x2c1e93['params']['id']}})[_0x8ebb('0x2a')](handleEntityNotFound(_0x178ac1,null))[_0x8ebb('0x2a')](function(_0x53d6fb){if(_0x53d6fb){_0x302c30=_0x53d6fb;_0x4af103['model']=_['keys'](db['User'][_0x8ebb('0x3b')]);_0x4af103[_0x8ebb('0x3f')]=_['keys'](_0x2c1e93[_0x8ebb('0x3f')]);_0x4af103[_0x8ebb('0x41')]=_[_0x8ebb('0x43')](_0x4af103[_0x8ebb('0x3e')],_0x4af103[_0x8ebb('0x3f')]);_0x2785f9[_0x8ebb('0x42')]=_[_0x8ebb('0x43')](_0x4af103[_0x8ebb('0x3e')],qs[_0x8ebb('0x44')](_0x2c1e93[_0x8ebb('0x3f')][_0x8ebb('0x44')]));_0x2785f9[_0x8ebb('0x42')]=_0x2785f9[_0x8ebb('0x42')][_0x8ebb('0x45')]?_0x2785f9[_0x8ebb('0x42')]:_0x4af103['model'];_0x2785f9['order']=qs[_0x8ebb('0x48')](_0x2c1e93[_0x8ebb('0x3f')][_0x8ebb('0x48')]);_0x2785f9[_0x8ebb('0x49')]=qs[_0x8ebb('0x41')](_[_0x8ebb('0x4a')](_0x2c1e93['query'],_0x4af103[_0x8ebb('0x41')]));if(_0x2c1e93[_0x8ebb('0x3f')][_0x8ebb('0x4b')]){_0x2785f9[_0x8ebb('0x49')]=_[_0x8ebb('0x4c')](_0x2785f9[_0x8ebb('0x49')],{'$or':_[_0x8ebb('0x2f')](_0x2785f9['attributes'],function(_0x53d325){var _0x4a0d14={};_0x4a0d14[_0x53d325]={'$like':'%'+_0x2c1e93[_0x8ebb('0x3f')][_0x8ebb('0x4b')]+'%'};return _0x4a0d14;})});}_0x2785f9=_['merge']({},_0x2785f9,_0x2c1e93[_0x8ebb('0x55')]);return _0x302c30[_0x8ebb('0xa0')](_0x2785f9);}})[_0x8ebb('0x2a')](function(_0x547ff2){if(_0x547ff2){_0x4c1478=_0x547ff2[_0x8ebb('0x45')];if(!_0x2c1e93[_0x8ebb('0x3f')]['hasOwnProperty'](_0x8ebb('0x47'))){_0x2785f9[_0x8ebb('0x22')]=qs[_0x8ebb('0x22')](_0x2c1e93[_0x8ebb('0x3f')][_0x8ebb('0x22')]);_0x2785f9['offset']=qs[_0x8ebb('0x1f')](_0x2c1e93[_0x8ebb('0x3f')][_0x8ebb('0x1f')]);}return _0x302c30[_0x8ebb('0xa0')](_0x2785f9);}})[_0x8ebb('0x2a')](function(_0x110b01){if(_0x110b01){return _0x110b01?{'count':_0x4c1478,'rows':_0x110b01}:null;}})[_0x8ebb('0x2a')](respondWithResult(_0x178ac1,null))['catch'](handleError(_0x178ac1,null));};exports[_0x8ebb('0xa1')]=function(_0x49a53a,_0x5a24ba,_0x536bad){var _0x331a28={};var _0x4ab675={};var _0x4a7c65;var _0x543cad;return db[_0x8ebb('0x3a')][_0x8ebb('0x67')]({'where':{'id':_0x49a53a[_0x8ebb('0x53')]['id']}})[_0x8ebb('0x2a')](handleEntityNotFound(_0x5a24ba,null))[_0x8ebb('0x2a')](function(_0x1f8fcf){if(_0x1f8fcf){_0x4a7c65=_0x1f8fcf;_0x4ab675[_0x8ebb('0x3e')]=_[_0x8ebb('0x40')](db[_0x8ebb('0x99')]['rawAttributes']);_0x4ab675[_0x8ebb('0x3f')]=_[_0x8ebb('0x40')](_0x49a53a['query']);_0x4ab675[_0x8ebb('0x41')]=_['intersection'](_0x4ab675[_0x8ebb('0x3e')],_0x4ab675[_0x8ebb('0x3f')]);_0x331a28[_0x8ebb('0x42')]=_[_0x8ebb('0x43')](_0x4ab675[_0x8ebb('0x3e')],qs[_0x8ebb('0x44')](_0x49a53a[_0x8ebb('0x3f')][_0x8ebb('0x44')]));_0x331a28[_0x8ebb('0x42')]=_0x331a28['attributes'][_0x8ebb('0x45')]?_0x331a28['attributes']:_0x4ab675[_0x8ebb('0x3e')];_0x331a28[_0x8ebb('0x68')]=qs[_0x8ebb('0x48')](_0x49a53a[_0x8ebb('0x3f')]['sort']);_0x331a28[_0x8ebb('0x49')]=qs[_0x8ebb('0x41')](_[_0x8ebb('0x4a')](_0x49a53a['query'],_0x4ab675[_0x8ebb('0x41')]));if(_0x49a53a['query']['filter']){_0x331a28[_0x8ebb('0x49')]=_['merge'](_0x331a28[_0x8ebb('0x49')],{'$or':_[_0x8ebb('0x2f')](_0x331a28['attributes'],function(_0xb12a55){var _0x3c4553={};_0x3c4553[_0xb12a55]={'$like':'%'+_0x49a53a['query']['filter']+'%'};return _0x3c4553;})});}_0x331a28=_[_0x8ebb('0x4c')]({},_0x331a28,_0x49a53a['options']);return _0x4a7c65[_0x8ebb('0xa1')](_0x331a28);}})['then'](function(_0x32c467){if(_0x32c467){_0x543cad=_0x32c467[_0x8ebb('0x45')];if(!_0x49a53a[_0x8ebb('0x3f')][_0x8ebb('0x46')](_0x8ebb('0x47'))){_0x331a28[_0x8ebb('0x22')]=qs['limit'](_0x49a53a['query']['limit']);_0x331a28[_0x8ebb('0x1f')]=qs[_0x8ebb('0x1f')](_0x49a53a[_0x8ebb('0x3f')][_0x8ebb('0x1f')]);}return _0x4a7c65[_0x8ebb('0xa1')](_0x331a28);}})[_0x8ebb('0x2a')](function(_0x1c65aa){return _0x1c65aa?{'count':_0x543cad,'rows':_0x1c65aa}:null;})[_0x8ebb('0x2a')](respondWithResult(_0x5a24ba,null))[_0x8ebb('0x51')](handleError(_0x5a24ba,null));};exports[_0x8ebb('0xa2')]=function(_0xb94799,_0x3911af,_0x21704f){var _0x53ff09={};var _0x39fd16={};var _0x2a8c9e;var _0x21fa70;return db[_0x8ebb('0x3a')]['findOne']({'where':{'id':_0xb94799[_0x8ebb('0x53')]['id']}})[_0x8ebb('0x2a')](handleEntityNotFound(_0x3911af,null))[_0x8ebb('0x2a')](function(_0x22564c){if(_0x22564c){_0x2a8c9e=_0x22564c;_0x39fd16['model']=_[_0x8ebb('0x40')](db['CmList']['rawAttributes']);_0x39fd16[_0x8ebb('0x3f')]=_['keys'](_0xb94799[_0x8ebb('0x3f')]);_0x39fd16[_0x8ebb('0x41')]=_[_0x8ebb('0x43')](_0x39fd16[_0x8ebb('0x3e')],_0x39fd16[_0x8ebb('0x3f')]);_0x53ff09[_0x8ebb('0x42')]=_[_0x8ebb('0x43')](_0x39fd16[_0x8ebb('0x3e')],qs[_0x8ebb('0x44')](_0xb94799['query']['fields']));_0x53ff09[_0x8ebb('0x42')]=_0x53ff09[_0x8ebb('0x42')][_0x8ebb('0x45')]?_0x53ff09[_0x8ebb('0x42')]:_0x39fd16['model'];_0x53ff09[_0x8ebb('0x68')]=qs[_0x8ebb('0x48')](_0xb94799[_0x8ebb('0x3f')][_0x8ebb('0x48')]);_0x53ff09[_0x8ebb('0x49')]=qs[_0x8ebb('0x41')](_[_0x8ebb('0x4a')](_0xb94799[_0x8ebb('0x3f')],_0x39fd16[_0x8ebb('0x41')]));if(_0xb94799['query']['filter']){_0x53ff09[_0x8ebb('0x49')]=_['merge'](_0x53ff09[_0x8ebb('0x49')],{'$or':_['map'](_0x53ff09[_0x8ebb('0x42')],function(_0x3d57f6){var _0xb8efac={};_0xb8efac[_0x3d57f6]={'$like':'%'+_0xb94799[_0x8ebb('0x3f')][_0x8ebb('0x4b')]+'%'};return _0xb8efac;})});}_0x53ff09=_[_0x8ebb('0x4c')]({},_0x53ff09,_0xb94799[_0x8ebb('0x55')]);return _0x2a8c9e[_0x8ebb('0xa2')](_0x53ff09);}})[_0x8ebb('0x2a')](function(_0x40ca82){if(_0x40ca82){_0x21fa70=_0x40ca82[_0x8ebb('0x45')];if(!_0xb94799['query'][_0x8ebb('0x46')](_0x8ebb('0x47'))){_0x53ff09[_0x8ebb('0x22')]=qs[_0x8ebb('0x22')](_0xb94799['query'][_0x8ebb('0x22')]);_0x53ff09[_0x8ebb('0x1f')]=qs[_0x8ebb('0x1f')](_0xb94799[_0x8ebb('0x3f')][_0x8ebb('0x1f')]);}return _0x2a8c9e[_0x8ebb('0xa2')](_0x53ff09);}})[_0x8ebb('0x2a')](function(_0x583f43){if(_0x583f43){return _0x583f43?{'count':_0x21fa70,'rows':_0x583f43}:null;}})[_0x8ebb('0x2a')](respondWithResult(_0x3911af,null))[_0x8ebb('0x51')](handleError(_0x3911af,null));};exports[_0x8ebb('0xa3')]=function(_0x220119,_0x52647b,_0x59285a){var _0x16c2c7,_0x3d4199;return db[_0x8ebb('0x3a')][_0x8ebb('0x32')]({'where':{'id':_0x220119[_0x8ebb('0x53')]['id']}})['then'](handleEntityNotFound(_0x52647b,null))[_0x8ebb('0x2a')](function(_0x15a27a){if(_0x15a27a){_0x3d4199=_0x15a27a;return _0x15a27a[_0x8ebb('0xa3')](_0x220119[_0x8ebb('0x57')][_0x8ebb('0x85')],_[_0x8ebb('0x62')](_0x220119[_0x8ebb('0x57')],[_0x8ebb('0x85'),'id'])||{});}return null;})['spread'](function(_0x4a236d){var _0x481cca;_0x16c2c7=_0x4a236d||[];var _0x485531=[];if(_0x4a236d){for(var _0x4c90f8=0x0;_0x4c90f8<_0x4a236d[_0x8ebb('0x45')];_0x4c90f8+=0x1){var _0x7d096c=_0x4a236d[_0x4c90f8][_0x8ebb('0x59')]({'plain':!![]});_0x3d4199[_0x8ebb('0xa4')]=_0x220119[_0x8ebb('0x57')]['dialCheckDuplicateType']?_0x220119['body'][_0x8ebb('0xa4')]:_0x3d4199[_0x8ebb('0xa4')];switch(_0x3d4199[_0x8ebb('0xa4')]){case'always':_0x481cca=squel[_0x8ebb('0xa5')]()[_0x8ebb('0xa6')](_0x8ebb('0xa7'))[_0x8ebb('0xa8')](['phone','scheduledAt','ContactId','ListId',_0x8ebb('0x69'),'createdAt',_0x8ebb('0xa9')],squel[_0x8ebb('0x86')]()['field'](_0x8ebb('0xaa'),_0x8ebb('0xaa'))['field'](_0x8ebb('0xab'),_0x8ebb('0xac'))[_0x8ebb('0x87')]('id',_0x8ebb('0xad'))[_0x8ebb('0x87')](_0x7d096c[_0x8ebb('0xae')][_0x8ebb('0x91')](),_0x8ebb('0xaf'))[_0x8ebb('0x87')](_0x220119[_0x8ebb('0x53')]['id'][_0x8ebb('0x91')](),_0x8ebb('0x69'))[_0x8ebb('0x87')](_0x8ebb('0xab'),_0x8ebb('0x61'))['field'](_0x8ebb('0xab'),'updatedAt')[_0x8ebb('0x89')](_0x8ebb('0xb0'))[_0x8ebb('0x49')](_0x8ebb('0xb1'))[_0x8ebb('0x49')](_0x8ebb('0xb2'),_0x7d096c[_0x8ebb('0xae')][_0x8ebb('0x91')]())[_0x8ebb('0x49')](_0x8ebb('0xb3'))[_0x8ebb('0x49')](_0x8ebb('0xb4'),squel[_0x8ebb('0x86')]()['field'](_0x8ebb('0xb5'))[_0x8ebb('0x89')](_0x8ebb('0xb6'))[_0x8ebb('0x49')](_0x8ebb('0x8e'),_0x220119[_0x8ebb('0x53')]['id'][_0x8ebb('0x91')]()))[_0x8ebb('0x49')](_0x8ebb('0xb4'),squel['select']()[_0x8ebb('0x87')](_0x8ebb('0xb7'))['from'](_0x8ebb('0xa7'))[_0x8ebb('0x49')](_0x8ebb('0x8e'),_0x220119['params']['id']['toString']())))['toString']();break;case _0x8ebb('0xb8'):_0x481cca=squel['insert']()[_0x8ebb('0xa6')](_0x8ebb('0xa7'))[_0x8ebb('0xa8')](['phone',_0x8ebb('0xac'),_0x8ebb('0xad'),_0x8ebb('0xaf'),_0x8ebb('0x69'),_0x8ebb('0x61'),'updatedAt'],squel[_0x8ebb('0x86')]()[_0x8ebb('0x87')](_0x8ebb('0xaa'),_0x8ebb('0xaa'))[_0x8ebb('0x87')](_0x8ebb('0xab'),_0x8ebb('0xac'))['field']('id',_0x8ebb('0xad'))[_0x8ebb('0x87')](_0x7d096c[_0x8ebb('0xae')][_0x8ebb('0x91')](),'ListId')[_0x8ebb('0x87')](_0x220119[_0x8ebb('0x53')]['id']['toString'](),_0x8ebb('0x69'))[_0x8ebb('0x87')](_0x8ebb('0xab'),_0x8ebb('0x61'))[_0x8ebb('0x87')](_0x8ebb('0xab'),'updatedAt')[_0x8ebb('0x89')]('cm_contacts')[_0x8ebb('0x49')](_0x8ebb('0xb1'))['where'](_0x8ebb('0xb2'),_0x7d096c[_0x8ebb('0xae')][_0x8ebb('0x91')]())[_0x8ebb('0x49')](_0x8ebb('0xb3'))[_0x8ebb('0x49')](_0x8ebb('0xb4'),squel['select']()[_0x8ebb('0x87')](_0x8ebb('0xb7'))['from'](_0x8ebb('0xa7'))[_0x8ebb('0x49')](_0x8ebb('0x8e'),_0x220119[_0x8ebb('0x53')]['id'][_0x8ebb('0x91')]())))[_0x8ebb('0x91')]();break;default:_0x481cca=squel[_0x8ebb('0xa5')]()[_0x8ebb('0xa6')]('cm_hopper')[_0x8ebb('0xa8')](['phone',_0x8ebb('0xac'),'ContactId',_0x8ebb('0xaf'),_0x8ebb('0x69'),'createdAt',_0x8ebb('0xa9')],squel[_0x8ebb('0x86')]()[_0x8ebb('0x87')](_0x8ebb('0xaa'),_0x8ebb('0xaa'))[_0x8ebb('0x87')](_0x8ebb('0xab'),_0x8ebb('0xac'))[_0x8ebb('0x87')]('id',_0x8ebb('0xad'))[_0x8ebb('0x87')](_0x7d096c['CmListId'][_0x8ebb('0x91')](),_0x8ebb('0xaf'))[_0x8ebb('0x87')](_0x220119[_0x8ebb('0x53')]['id'][_0x8ebb('0x91')](),'VoiceQueueId')[_0x8ebb('0x87')](_0x8ebb('0xab'),_0x8ebb('0x61'))[_0x8ebb('0x87')](_0x8ebb('0xab'),_0x8ebb('0xa9'))[_0x8ebb('0x89')](_0x8ebb('0xb0'))['where'](_0x8ebb('0xb1'))[_0x8ebb('0x49')](_0x8ebb('0xb2'),_0x7d096c['CmListId'][_0x8ebb('0x91')]())[_0x8ebb('0x49')](_0x8ebb('0xb3')))[_0x8ebb('0x91')]();}_0x485531[_0x8ebb('0x90')](db[_0x8ebb('0x7a')]['query'](_0x481cca));}return BPromise[_0x8ebb('0x94')](_0x485531);}})['then'](function(){return _0x16c2c7;})[_0x8ebb('0x2a')](respondWithResult(_0x52647b,null))[_0x8ebb('0x51')](handleError(_0x52647b,null));};exports[_0x8ebb('0xb9')]=function(_0x967f11,_0x2fda83,_0x2e4424){return db[_0x8ebb('0x3a')][_0x8ebb('0x32')]({'where':{'id':_0x967f11[_0x8ebb('0x53')]['id']}})[_0x8ebb('0x2a')](handleEntityNotFound(_0x2fda83,null))[_0x8ebb('0x2a')](function(_0x5f50be){if(_0x5f50be){return _0x5f50be['removeLists'](_0x967f11[_0x8ebb('0x3f')][_0x8ebb('0x85')]);}})['then'](function(_0xdbeb7){if(_0xdbeb7){return db[_0x8ebb('0x6a')][_0x8ebb('0x34')]({'where':{'ListId':_0x967f11['query'][_0x8ebb('0x85')],'VoiceQueueId':_0x967f11['params']['id']}})['then'](function(){return _0xdbeb7;});}})[_0x8ebb('0x2a')](respondWithStatusCode(_0x2fda83,null))[_0x8ebb('0x51')](handleError(_0x2fda83,null));};exports[_0x8ebb('0xba')]=function(_0x599475,_0x239781,_0x1d612c){var _0x285dce={};var _0x375df7={};var _0x12d071;var _0x5e73e3;return db[_0x8ebb('0x3a')][_0x8ebb('0x67')]({'where':{'id':_0x599475[_0x8ebb('0x53')]['id']}})[_0x8ebb('0x2a')](handleEntityNotFound(_0x239781,null))['then'](function(_0x573a6d){if(_0x573a6d){_0x12d071=_0x573a6d;_0x375df7[_0x8ebb('0x3e')]=_[_0x8ebb('0x40')](db[_0x8ebb('0xbb')][_0x8ebb('0x3b')]);_0x375df7[_0x8ebb('0x3f')]=_['keys'](_0x599475[_0x8ebb('0x3f')]);_0x375df7[_0x8ebb('0x41')]=_[_0x8ebb('0x43')](_0x375df7['model'],_0x375df7[_0x8ebb('0x3f')]);_0x285dce['attributes']=_[_0x8ebb('0x43')](_0x375df7['model'],qs['fields'](_0x599475[_0x8ebb('0x3f')]['fields']));_0x285dce[_0x8ebb('0x42')]=_0x285dce[_0x8ebb('0x42')]['length']?_0x285dce[_0x8ebb('0x42')]:_0x375df7['model'];_0x285dce['order']=qs[_0x8ebb('0x48')](_0x599475[_0x8ebb('0x3f')][_0x8ebb('0x48')]);_0x285dce[_0x8ebb('0x49')]=qs[_0x8ebb('0x41')](_[_0x8ebb('0x4a')](_0x599475[_0x8ebb('0x3f')],_0x375df7[_0x8ebb('0x41')]));if(_0x599475[_0x8ebb('0x3f')][_0x8ebb('0x4b')]){_0x285dce[_0x8ebb('0x49')]=_[_0x8ebb('0x4c')](_0x285dce[_0x8ebb('0x49')],{'$or':_[_0x8ebb('0x2f')](_0x285dce['attributes'],function(_0x11679a){var _0x29965e={};_0x29965e[_0x11679a]={'$like':'%'+_0x599475[_0x8ebb('0x3f')][_0x8ebb('0x4b')]+'%'};return _0x29965e;})});}_0x285dce=_[_0x8ebb('0x4c')]({},_0x285dce,_0x599475[_0x8ebb('0x55')]);return _0x12d071[_0x8ebb('0xba')](_0x285dce);}})['then'](function(_0x481204){if(_0x481204){_0x5e73e3=_0x481204[_0x8ebb('0x45')];if(!_0x599475[_0x8ebb('0x3f')][_0x8ebb('0x46')]('nolimit')){_0x285dce[_0x8ebb('0x22')]=qs[_0x8ebb('0x22')](_0x599475[_0x8ebb('0x3f')][_0x8ebb('0x22')]);_0x285dce[_0x8ebb('0x1f')]=qs[_0x8ebb('0x1f')](_0x599475[_0x8ebb('0x3f')][_0x8ebb('0x1f')]);}return _0x12d071[_0x8ebb('0xba')](_0x285dce);}})['then'](function(_0xc927e7){if(_0xc927e7){return _0xc927e7?{'count':_0x5e73e3,'rows':_0xc927e7}:null;}})[_0x8ebb('0x2a')](respondWithResult(_0x239781,null))[_0x8ebb('0x51')](handleError(_0x239781,null));};exports[_0x8ebb('0xbc')]=function(_0x34c7ff,_0x32e0fa,_0x3eb676){var _0x7c668b,_0x208f63;return db[_0x8ebb('0x3a')][_0x8ebb('0x32')]({'where':{'id':_0x34c7ff[_0x8ebb('0x53')]['id']}})[_0x8ebb('0x2a')](handleEntityNotFound(_0x32e0fa,null))[_0x8ebb('0x2a')](function(_0xa4501f){if(_0xa4501f){_0x208f63=_0xa4501f;return _0xa4501f[_0x8ebb('0xbc')](_0x34c7ff[_0x8ebb('0x57')][_0x8ebb('0x85')],_[_0x8ebb('0x62')](_0x34c7ff['body'],[_0x8ebb('0x85'),'id'])||{});}return null;})[_0x8ebb('0x9b')](function(_0x6c86f7){var _0x21d310;_0x7c668b=_0x6c86f7||[];var _0x88a011=[];if(_0x6c86f7){for(var _0x1f1c61=0x0;_0x1f1c61<_0x6c86f7[_0x8ebb('0x45')];_0x1f1c61+=0x1){var _0x3f842a=_0x6c86f7[_0x1f1c61]['get']({'plain':!![]});_0x21d310=squel[_0x8ebb('0xa5')]()[_0x8ebb('0xa6')](_0x8ebb('0xbd'))[_0x8ebb('0xa8')](['phone','ContactId',_0x8ebb('0xaf'),'VoiceQueueId',_0x8ebb('0x61'),_0x8ebb('0xa9')],squel[_0x8ebb('0x86')]()['field'](_0x8ebb('0xaa'),'phone')[_0x8ebb('0x87')]('id',_0x8ebb('0xad'))[_0x8ebb('0x87')](_0x3f842a[_0x8ebb('0xae')][_0x8ebb('0x91')](),_0x8ebb('0xaf'))['field'](_0x34c7ff[_0x8ebb('0x53')]['id']['toString'](),_0x8ebb('0x69'))[_0x8ebb('0x87')]('NOW()','createdAt')[_0x8ebb('0x87')](_0x8ebb('0xab'),_0x8ebb('0xa9'))['from'](_0x8ebb('0xb0'))[_0x8ebb('0x49')]('deletedAt\x20IS\x20NULL')['where'](_0x8ebb('0xb2'),_0x3f842a[_0x8ebb('0xae')][_0x8ebb('0x91')]())[_0x8ebb('0x49')](_0x8ebb('0xb3')))[_0x8ebb('0x91')]();_0x88a011[_0x8ebb('0x90')](db[_0x8ebb('0x7a')][_0x8ebb('0x3f')](_0x21d310));}return BPromise['all'](_0x88a011);}})[_0x8ebb('0x2a')](function(){return _0x7c668b;})['then'](respondWithResult(_0x32e0fa,null))[_0x8ebb('0x51')](handleError(_0x32e0fa,null));};exports['removeBlackLists']=function(_0x42178d,_0x4d1db4,_0x514a15){return db[_0x8ebb('0x3a')]['find']({'where':{'id':_0x42178d[_0x8ebb('0x53')]['id']}})['then'](handleEntityNotFound(_0x4d1db4,null))['then'](function(_0x47774b){if(_0x47774b){return _0x47774b['removeBlackLists'](_0x42178d[_0x8ebb('0x3f')][_0x8ebb('0x85')]);}})[_0x8ebb('0x2a')](function(_0x4b620e){if(_0x4b620e){return db[_0x8ebb('0x6f')][_0x8ebb('0x34')]({'where':{'ListId':_0x42178d[_0x8ebb('0x3f')][_0x8ebb('0x85')],'VoiceQueueId':_0x42178d['params']['id']}})[_0x8ebb('0x2a')](function(){return _0x4b620e;});}})['then'](respondWithStatusCode(_0x4d1db4,null))[_0x8ebb('0x51')](handleError(_0x4d1db4,null));};
\ No newline at end of file
+var _0x1a49=['onlyIfOpen','fromQuery','COALESCE(phone,\x27\x27)','removeLists','getBlackLists','addBlackLists','removeBlackLists','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','fs-extra','lodash','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./voiceQueue.socket','register','end','json','offset','undefined','count','limit','set','Content-Range','reject','save','update','then','destroy','get','QueueCampaigns','outbound','filter','map','type','find','value','name','UserProfileResource','status','stack','send','VoiceQueue','fieldName','key','model','query','keys','intersection','fields','attributes','hasOwnProperty','nolimit','sort','where','filters','pick','merge','VIRTUAL','options','include','findAll','catch','show','params','length','includeAll','create','body','user','role','inbound','UserProfileSection','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','clone','rawAttributes','omit','updatedAt','createdAt','Unable\x20to\x20retrieve\x20the\x20current\x20user','VoiceQueues','findOne','order','VoiceQueueId','CmHopper','rows','getHopperHistories','CmHopperHistory','CmHopperFinal','CmHopperBlack','getTeams','addTeams','Team','User','online','interface','flatMap','Agents','forEach','penalty','sequelize','transaction','each','TeamVoiceQueue','upsert','UserVoiceQueueRt','isNil','format','voicePause','userVoiceQueue:save','ids','select','field','tq.TeamId','from','team_has_voice_queues','join','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','ut.UserId\x20=\x20?','push','toString','QueryTypes','every','includes','all','union','compact','removeTeams','isEmpty','removeAgents','emit','userVoiceQueue:remove','addAgents','spread','SIP/%s','isArray','getAgents','getMembers','getLists','CmList','addLists','dialCheckDuplicateType','always','insert','into','cm_hopper','scheduledAt','ContactId','phone','NOW()','CmListId','ListId','cm_contacts','deletedAt\x20IS\x20NULL','ListId\x20=\x20?','phone\x20IS\x20NOT\x20NULL','phone\x20NOT\x20IN\x20(?)','cm_hopper_final','VoiceQueueId\x20=\x20?'];(function(_0x32bdd4,_0x143a69){var _0x4b54d3=function(_0x5c38d6){while(--_0x5c38d6){_0x32bdd4['push'](_0x32bdd4['shift']());}};_0x4b54d3(++_0x143a69);}(_0x1a49,0x17d));var _0x91a4=function(_0x2896a6,_0x228d54){_0x2896a6=_0x2896a6-0x0;var _0x745759=_0x1a49[_0x2896a6];return _0x745759;};'use strict';var emlformat=require(_0x91a4('0x0'));var rimraf=require(_0x91a4('0x1'));var zipdir=require(_0x91a4('0x2'));var jsonpatch=require(_0x91a4('0x3'));var rp=require(_0x91a4('0x4'));var moment=require(_0x91a4('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x91a4('0x6'));var util=require(_0x91a4('0x7'));var path=require(_0x91a4('0x8'));var sox=require(_0x91a4('0x9'));var csv=require(_0x91a4('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x91a4('0xb'));var _=require(_0x91a4('0xc'));var squel=require('squel');var crypto=require(_0x91a4('0xd'));var jsforce=require(_0x91a4('0xe'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x91a4('0xf'));var Papa=require(_0x91a4('0x10'));var Redis=require(_0x91a4('0x11'));var authService=require(_0x91a4('0x12'));var qs=require(_0x91a4('0x13'));var as=require(_0x91a4('0x14'));var hardwareService=require(_0x91a4('0x15'));var logger=require('../../config/logger')(_0x91a4('0x16'));var utils=require(_0x91a4('0x17'));var config=require(_0x91a4('0x18'));var licenseUtil=require(_0x91a4('0x19'));var db=require(_0x91a4('0x1a'))['db'];config[_0x91a4('0x1b')]=_[_0x91a4('0x1c')](config[_0x91a4('0x1b')],{'host':_0x91a4('0x1d'),'port':0x18eb});var socket=require(_0x91a4('0x1e'))(new Redis(config[_0x91a4('0x1b')]));require(_0x91a4('0x1f'))[_0x91a4('0x20')](socket);function respondWithStatusCode(_0x1d9ce6,_0xaf68de){_0xaf68de=_0xaf68de||0xcc;return function(_0x5f4010){if(_0x5f4010){return _0x1d9ce6['sendStatus'](_0xaf68de);}return _0x1d9ce6['status'](_0xaf68de)[_0x91a4('0x21')]();};}function respondWithResult(_0x4f60f4,_0x35dc42){_0x35dc42=_0x35dc42||0xc8;return function(_0x209cf8){if(_0x209cf8){return _0x4f60f4['status'](_0x35dc42)[_0x91a4('0x22')](_0x209cf8);}};}function respondWithFilteredResult(_0x14bb20,_0x405a82){return function(_0x2b8d09){if(_0x2b8d09){var _0x4e53ed=typeof _0x405a82[_0x91a4('0x23')]===_0x91a4('0x24')&&typeof _0x405a82['limit']===_0x91a4('0x24');var _0x4d7187=_0x2b8d09[_0x91a4('0x25')];var _0x278a67=_0x4e53ed?0x0:_0x405a82[_0x91a4('0x23')];var _0x472ccd=_0x4e53ed?_0x2b8d09[_0x91a4('0x25')]:_0x405a82['offset']+_0x405a82[_0x91a4('0x26')];var _0x19a7cb;if(_0x472ccd>=_0x4d7187){_0x472ccd=_0x4d7187;_0x19a7cb=0xc8;}else{_0x19a7cb=0xce;}_0x14bb20['status'](_0x19a7cb);return _0x14bb20[_0x91a4('0x27')](_0x91a4('0x28'),_0x278a67+'-'+_0x472ccd+'/'+_0x4d7187)[_0x91a4('0x22')](_0x2b8d09);}return null;};}function patchUpdates(_0x171ebe){return function(_0x1971ac){try{jsonpatch['apply'](_0x1971ac,_0x171ebe,!![]);}catch(_0x51d7f2){return BPromise[_0x91a4('0x29')](_0x51d7f2);}return _0x1971ac[_0x91a4('0x2a')]();};}function saveUpdates(_0x3ab138,_0x10adf0){return function(_0x55a0a4){if(_0x55a0a4){return _0x55a0a4[_0x91a4('0x2b')](_0x3ab138)[_0x91a4('0x2c')](function(_0x417a8a){return _0x417a8a;});}return null;};}function removeEntity(_0x4e291c,_0x36ef7d){return function(_0x39d240){if(_0x39d240){return _0x39d240[_0x91a4('0x2d')]()[_0x91a4('0x2c')](function(){var _0x32c577=_0x39d240[_0x91a4('0x2e')]({'plain':!![]});var _0x5a92fd=[{'name':'VoiceQueues','value':'inbound','ignore':![]},{'name':_0x91a4('0x2f'),'value':_0x91a4('0x30'),'ignore':![]}];var _0x33aee4=_(_0x5a92fd)[_0x91a4('0x31')]('ignore')[_0x91a4('0x32')]('value')['value']();if(_['includes'](_0x33aee4,_0x32c577[_0x91a4('0x33')])){return;}var _0x2cac38=_[_0x91a4('0x34')](_0x5a92fd,[_0x91a4('0x35'),_0x32c577[_0x91a4('0x33')]])[_0x91a4('0x36')];return db[_0x91a4('0x37')][_0x91a4('0x2d')]({'where':{'type':_0x2cac38,'resourceId':_0x32c577['id']}})[_0x91a4('0x2c')](function(){return _0x39d240;});})[_0x91a4('0x2c')](function(){_0x4e291c[_0x91a4('0x38')](0xcc)[_0x91a4('0x21')]();});}};}function handleEntityNotFound(_0x4637b2,_0x285bb8){return function(_0x255ba4){if(!_0x255ba4){_0x4637b2['sendStatus'](0x194);}return _0x255ba4;};}function handleError(_0x4e7f90,_0xb8b5fa){_0xb8b5fa=_0xb8b5fa||0x1f4;return function(_0x3d8b1a){logger['error'](_0x3d8b1a[_0x91a4('0x39')]);if(_0x3d8b1a['name']){delete _0x3d8b1a['name'];}_0x4e7f90['status'](_0xb8b5fa)[_0x91a4('0x3a')](_0x3d8b1a);};}exports['index']=function(_0x2d0fb8,_0x5cfa5c){var _0x238733={},_0x47ad80={},_0x33e879={'count':0x0,'rows':[]};var _0x3dd5a5=_[_0x91a4('0x32')](db[_0x91a4('0x3b')]['rawAttributes'],function(_0x11db9d){return{'name':_0x11db9d[_0x91a4('0x3c')],'type':_0x11db9d[_0x91a4('0x33')][_0x91a4('0x3d')]};});_0x47ad80[_0x91a4('0x3e')]=_[_0x91a4('0x32')](_0x3dd5a5,_0x91a4('0x36'));_0x47ad80[_0x91a4('0x3f')]=_[_0x91a4('0x40')](_0x2d0fb8[_0x91a4('0x3f')]);_0x47ad80['filters']=_[_0x91a4('0x41')](_0x47ad80[_0x91a4('0x3e')],_0x47ad80[_0x91a4('0x3f')]);_0x238733['attributes']=_[_0x91a4('0x41')](_0x47ad80['model'],qs[_0x91a4('0x42')](_0x2d0fb8['query'][_0x91a4('0x42')]));_0x238733[_0x91a4('0x43')]=_0x238733[_0x91a4('0x43')]['length']?_0x238733['attributes']:_0x47ad80['model'];if(!_0x2d0fb8['query'][_0x91a4('0x44')](_0x91a4('0x45'))){_0x238733[_0x91a4('0x26')]=qs[_0x91a4('0x26')](_0x2d0fb8[_0x91a4('0x3f')][_0x91a4('0x26')]);_0x238733[_0x91a4('0x23')]=qs[_0x91a4('0x23')](_0x2d0fb8[_0x91a4('0x3f')][_0x91a4('0x23')]);}_0x238733['order']=qs[_0x91a4('0x46')](_0x2d0fb8[_0x91a4('0x3f')][_0x91a4('0x46')]);_0x238733[_0x91a4('0x47')]=qs[_0x91a4('0x48')](_[_0x91a4('0x49')](_0x2d0fb8[_0x91a4('0x3f')],_0x47ad80[_0x91a4('0x48')]),_0x3dd5a5);if(_0x2d0fb8[_0x91a4('0x3f')][_0x91a4('0x31')]){_0x238733[_0x91a4('0x47')]=_[_0x91a4('0x4a')](_0x238733[_0x91a4('0x47')],{'$or':_[_0x91a4('0x32')](_0x3dd5a5,function(_0x598919){if(_0x598919[_0x91a4('0x33')]!==_0x91a4('0x4b')){var _0x32cf77={};_0x32cf77[_0x598919[_0x91a4('0x36')]]={'$like':'%'+_0x2d0fb8['query'][_0x91a4('0x31')]+'%'};return _0x32cf77;}})});}_0x238733=_[_0x91a4('0x4a')]({},_0x238733,_0x2d0fb8[_0x91a4('0x4c')]);var _0x50616c={'where':_0x238733[_0x91a4('0x47')]};return db[_0x91a4('0x3b')]['count'](_0x50616c)['then'](function(_0xbff9cb){_0x33e879[_0x91a4('0x25')]=_0xbff9cb;if(_0x2d0fb8[_0x91a4('0x3f')]['includeAll']){_0x238733[_0x91a4('0x4d')]=[{'all':!![]}];}return db[_0x91a4('0x3b')][_0x91a4('0x4e')](_0x238733);})['then'](function(_0x1cd3d6){_0x33e879['rows']=_0x1cd3d6;return _0x33e879;})[_0x91a4('0x2c')](respondWithFilteredResult(_0x5cfa5c,_0x238733))[_0x91a4('0x4f')](handleError(_0x5cfa5c,null));};exports[_0x91a4('0x50')]=function(_0x5148d4,_0x541e71){var _0x4859a3={'raw':![],'where':{'id':_0x5148d4[_0x91a4('0x51')]['id']}},_0x14ba8d={};_0x14ba8d['model']=_[_0x91a4('0x40')](db[_0x91a4('0x3b')]['rawAttributes']);_0x14ba8d[_0x91a4('0x3f')]=_[_0x91a4('0x40')](_0x5148d4[_0x91a4('0x3f')]);_0x14ba8d[_0x91a4('0x48')]=_[_0x91a4('0x41')](_0x14ba8d['model'],_0x14ba8d[_0x91a4('0x3f')]);_0x4859a3['attributes']=_[_0x91a4('0x41')](_0x14ba8d['model'],qs[_0x91a4('0x42')](_0x5148d4[_0x91a4('0x3f')][_0x91a4('0x42')]));_0x4859a3[_0x91a4('0x43')]=_0x4859a3['attributes'][_0x91a4('0x52')]?_0x4859a3[_0x91a4('0x43')]:_0x14ba8d['model'];if(_0x5148d4[_0x91a4('0x3f')][_0x91a4('0x53')]){_0x4859a3[_0x91a4('0x4d')]=[{'all':!![]}];}_0x4859a3=_['merge']({},_0x4859a3,_0x5148d4['options']);return db[_0x91a4('0x3b')][_0x91a4('0x34')](_0x4859a3)[_0x91a4('0x2c')](handleEntityNotFound(_0x541e71,null))[_0x91a4('0x2c')](respondWithResult(_0x541e71,null))[_0x91a4('0x4f')](handleError(_0x541e71,null));};exports[_0x91a4('0x54')]=function(_0x1ce963,_0x51bd68){return db[_0x91a4('0x3b')]['create'](_0x1ce963[_0x91a4('0x55')],{})[_0x91a4('0x2c')](function(_0x47e733){var _0x3fc03b=_0x1ce963[_0x91a4('0x56')][_0x91a4('0x2e')]({'plain':!![]});if(!_0x3fc03b)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x3fc03b[_0x91a4('0x57')]===_0x91a4('0x56')){var _0x415390=_0x47e733[_0x91a4('0x2e')]({'plain':!![]});var _0x5c4533=[{'name':'VoiceQueues','value':_0x91a4('0x58')},{'name':_0x91a4('0x2f'),'value':_0x91a4('0x30')}];var _0x22627c=_[_0x91a4('0x34')](_0x5c4533,[_0x91a4('0x35'),_0x415390['type']])['name'];return db[_0x91a4('0x59')][_0x91a4('0x34')]({'where':{'name':_0x22627c,'userProfileId':_0x3fc03b[_0x91a4('0x5a')]},'raw':!![]})[_0x91a4('0x2c')](function(_0x2a6289){if(_0x2a6289&&_0x2a6289[_0x91a4('0x5b')]===0x0){return db['UserProfileResource'][_0x91a4('0x54')]({'name':_0x415390[_0x91a4('0x36')],'resourceId':_0x415390['id'],'type':_0x2a6289[_0x91a4('0x36')],'sectionId':_0x2a6289['id']},{})['then'](function(){return _0x47e733;});}else{return _0x47e733;}})[_0x91a4('0x4f')](function(_0x1c8810){logger[_0x91a4('0x5c')](_0x91a4('0x5d'),_0x1c8810);throw _0x1c8810;});}return _0x47e733;})[_0x91a4('0x2c')](respondWithResult(_0x51bd68,0xc9))[_0x91a4('0x4f')](handleError(_0x51bd68,null));};exports[_0x91a4('0x5e')]=function(_0x4ce5c4,_0x37f5c4){var _0x4ce097={'where':{'id':_0x4ce5c4[_0x91a4('0x51')]['id']}},_0x27c2c={};_0x27c2c[_0x91a4('0x3e')]=_['keys'](db[_0x91a4('0x3b')][_0x91a4('0x5f')]);_0x4ce097['attributes']=_[_0x91a4('0x41')](_0x27c2c[_0x91a4('0x3e')],qs[_0x91a4('0x42')](_0x4ce5c4['query'][_0x91a4('0x42')]));_0x4ce097[_0x91a4('0x43')]=_0x4ce097[_0x91a4('0x43')][_0x91a4('0x52')]?_0x4ce097[_0x91a4('0x43')]:_0x27c2c[_0x91a4('0x3e')];if(_0x4ce5c4[_0x91a4('0x3f')][_0x91a4('0x53')]){_0x4ce097[_0x91a4('0x4d')]=[{'all':!![]}];}_0x4ce097=_[_0x91a4('0x4a')]({},_0x4ce097,_0x4ce5c4['options']);return db[_0x91a4('0x3b')]['find'](_0x4ce097)[_0x91a4('0x2c')](handleEntityNotFound(_0x37f5c4,null))[_0x91a4('0x2c')](function(_0x1f06c7){if(_0x1f06c7){var _0x2199cf=_0x1f06c7[_0x91a4('0x2e')]({'plain':!![]});_0x2199cf=qs[_0x91a4('0x60')](_0x2199cf,['id','createdAt',_0x91a4('0x61')]);_0x4ce5c4['body']=_[_0x91a4('0x60')](_0x4ce5c4[_0x91a4('0x55')],['id',_0x91a4('0x62'),_0x91a4('0x61')]);return db['VoiceQueue'][_0x91a4('0x54')](_[_0x91a4('0x4a')](_0x2199cf,_0x4ce5c4[_0x91a4('0x55')]),{'include':_0x4ce5c4[_0x91a4('0x3f')][_0x91a4('0x53')]?[{'all':!![]}]:undefined})[_0x91a4('0x2c')](function(_0x17b4e7){var _0x2a7e16=_0x4ce5c4[_0x91a4('0x56')]['get']({'plain':!![]});if(!_0x2a7e16)throw new Error(_0x91a4('0x63'));if(_0x2a7e16[_0x91a4('0x57')]===_0x91a4('0x56')){var _0xf9f03c=_0x17b4e7[_0x91a4('0x2e')]({'plain':!![]});var _0x105e27=[{'name':_0x91a4('0x64'),'value':_0x91a4('0x58')},{'name':_0x91a4('0x2f'),'value':_0x91a4('0x30')}];var _0x429a94=_[_0x91a4('0x34')](_0x105e27,['value',_0xf9f03c[_0x91a4('0x33')]])[_0x91a4('0x36')];return db[_0x91a4('0x59')][_0x91a4('0x34')]({'where':{'name':_0x429a94,'userProfileId':_0x2a7e16[_0x91a4('0x5a')]},'raw':!![]})[_0x91a4('0x2c')](function(_0x24f73b){if(_0x24f73b&&_0x24f73b[_0x91a4('0x5b')]===0x0){return db[_0x91a4('0x37')][_0x91a4('0x54')]({'name':_0xf9f03c['name'],'resourceId':_0xf9f03c['id'],'type':_0x24f73b[_0x91a4('0x36')],'sectionId':_0x24f73b['id']},{})[_0x91a4('0x2c')](function(){return _0x17b4e7;});}else{return _0x17b4e7;}})['catch'](function(_0x3c5c15){logger[_0x91a4('0x5c')](_0x91a4('0x5d'),_0x3c5c15);throw _0x3c5c15;});}return _0x17b4e7;});}})[_0x91a4('0x2c')](respondWithResult(_0x37f5c4,0xc9))[_0x91a4('0x4f')](handleError(_0x37f5c4,null));};exports[_0x91a4('0x2b')]=function(_0x22a398,_0x3ec969){if(_0x22a398[_0x91a4('0x55')]['id']){delete _0x22a398[_0x91a4('0x55')]['id'];}return db['VoiceQueue'][_0x91a4('0x34')]({'where':{'id':_0x22a398['params']['id']}})[_0x91a4('0x2c')](handleEntityNotFound(_0x3ec969,null))[_0x91a4('0x2c')](saveUpdates(_0x22a398[_0x91a4('0x55')],null))[_0x91a4('0x2c')](respondWithResult(_0x3ec969,null))['catch'](handleError(_0x3ec969,null));};exports[_0x91a4('0x2d')]=function(_0x33c4f5,_0x2b34d2){return db['VoiceQueue'][_0x91a4('0x34')]({'where':{'id':_0x33c4f5[_0x91a4('0x51')]['id']}})[_0x91a4('0x2c')](handleEntityNotFound(_0x2b34d2,null))['then'](removeEntity(_0x2b34d2,null))[_0x91a4('0x4f')](handleError(_0x2b34d2,null));};exports['getHoppers']=function(_0x4b8d60,_0x21df54,_0x473217){var _0x32f4ea={'raw':![],'where':{}};var _0x22f752={};var _0x39ca4d={'count':0x0,'rows':[]};return db['VoiceQueue'][_0x91a4('0x65')]({'where':{'id':_0x4b8d60[_0x91a4('0x51')]['id']}})[_0x91a4('0x2c')](handleEntityNotFound(_0x21df54,null))['then'](function(_0x2faef3){if(_0x2faef3){_0x22f752[_0x91a4('0x3e')]=_[_0x91a4('0x40')](db['CmHopper'][_0x91a4('0x5f')]);_0x22f752['query']=_['keys'](_0x4b8d60[_0x91a4('0x3f')]);_0x22f752[_0x91a4('0x48')]=_[_0x91a4('0x41')](_0x22f752[_0x91a4('0x3e')],_0x22f752['query']);_0x32f4ea[_0x91a4('0x43')]=_[_0x91a4('0x41')](_0x22f752[_0x91a4('0x3e')],qs[_0x91a4('0x42')](_0x4b8d60['query'][_0x91a4('0x42')]));_0x32f4ea['attributes']=_0x32f4ea['attributes'][_0x91a4('0x52')]?_0x32f4ea[_0x91a4('0x43')]:_0x22f752[_0x91a4('0x3e')];if(!_0x4b8d60['query']['hasOwnProperty'](_0x91a4('0x45'))){_0x32f4ea[_0x91a4('0x26')]=qs[_0x91a4('0x26')](_0x4b8d60[_0x91a4('0x3f')][_0x91a4('0x26')]);_0x32f4ea[_0x91a4('0x23')]=qs[_0x91a4('0x23')](_0x4b8d60[_0x91a4('0x3f')][_0x91a4('0x23')]);}_0x32f4ea[_0x91a4('0x66')]=qs[_0x91a4('0x46')](_0x4b8d60[_0x91a4('0x3f')][_0x91a4('0x46')]);_0x32f4ea[_0x91a4('0x47')]=qs[_0x91a4('0x48')](_[_0x91a4('0x49')](_0x4b8d60[_0x91a4('0x3f')],_0x22f752[_0x91a4('0x48')]));_0x32f4ea['where'][_0x91a4('0x67')]=_0x2faef3['id'];if(_0x4b8d60[_0x91a4('0x3f')][_0x91a4('0x31')]){_0x32f4ea[_0x91a4('0x47')]=_[_0x91a4('0x4a')](_0x32f4ea[_0x91a4('0x47')],{'$or':_[_0x91a4('0x32')](_0x32f4ea[_0x91a4('0x43')],function(_0x2e92d1){var _0x218621={};_0x218621[_0x2e92d1]={'$like':'%'+_0x4b8d60['query'][_0x91a4('0x31')]+'%'};return _0x218621;})});}_0x32f4ea=_[_0x91a4('0x4a')]({},_0x32f4ea,_0x4b8d60['options']);return db['CmHopper'][_0x91a4('0x25')]({'where':_0x32f4ea['where']})[_0x91a4('0x2c')](function(_0x301b7a){_0x39ca4d[_0x91a4('0x25')]=_0x301b7a;if(_0x4b8d60[_0x91a4('0x3f')][_0x91a4('0x53')]){_0x32f4ea['include']=[{'all':!![]}];}return db[_0x91a4('0x68')][_0x91a4('0x4e')](_0x32f4ea);})[_0x91a4('0x2c')](function(_0x268461){_0x39ca4d[_0x91a4('0x69')]=_0x268461;return _0x39ca4d;});}})[_0x91a4('0x2c')](respondWithFilteredResult(_0x21df54,_0x32f4ea))[_0x91a4('0x4f')](handleError(_0x21df54,null));};exports[_0x91a4('0x6a')]=function(_0x4de867,_0x5e482f,_0x548d36){var _0x13db23={'raw':!![],'where':{}};var _0x39ba06={};var _0x260ba0={'count':0x0,'rows':[]};return db[_0x91a4('0x3b')][_0x91a4('0x65')]({'where':{'id':_0x4de867['params']['id']}})['then'](handleEntityNotFound(_0x5e482f,null))[_0x91a4('0x2c')](function(_0x1f1c78){if(_0x1f1c78){_0x39ba06['model']=_['keys'](db['CmHopperHistory'][_0x91a4('0x5f')]);_0x39ba06[_0x91a4('0x3f')]=_[_0x91a4('0x40')](_0x4de867[_0x91a4('0x3f')]);_0x39ba06[_0x91a4('0x48')]=_['intersection'](_0x39ba06[_0x91a4('0x3e')],_0x39ba06[_0x91a4('0x3f')]);_0x13db23['attributes']=_[_0x91a4('0x41')](_0x39ba06[_0x91a4('0x3e')],qs['fields'](_0x4de867[_0x91a4('0x3f')][_0x91a4('0x42')]));_0x13db23[_0x91a4('0x43')]=_0x13db23[_0x91a4('0x43')]['length']?_0x13db23[_0x91a4('0x43')]:_0x39ba06[_0x91a4('0x3e')];if(!_0x4de867['query'][_0x91a4('0x44')](_0x91a4('0x45'))){_0x13db23['limit']=qs[_0x91a4('0x26')](_0x4de867[_0x91a4('0x3f')]['limit']);_0x13db23['offset']=qs[_0x91a4('0x23')](_0x4de867[_0x91a4('0x3f')][_0x91a4('0x23')]);}_0x13db23[_0x91a4('0x66')]=qs[_0x91a4('0x46')](_0x4de867['query'][_0x91a4('0x46')]);_0x13db23[_0x91a4('0x47')]=qs[_0x91a4('0x48')](_[_0x91a4('0x49')](_0x4de867['query'],_0x39ba06['filters']));_0x13db23['where'][_0x91a4('0x67')]=_0x1f1c78['id'];if(_0x4de867[_0x91a4('0x3f')][_0x91a4('0x31')]){_0x13db23[_0x91a4('0x47')]=_[_0x91a4('0x4a')](_0x13db23[_0x91a4('0x47')],{'$or':_[_0x91a4('0x32')](_0x13db23[_0x91a4('0x43')],function(_0x4b8213){var _0x5f1d5e={};_0x5f1d5e[_0x4b8213]={'$like':'%'+_0x4de867[_0x91a4('0x3f')][_0x91a4('0x31')]+'%'};return _0x5f1d5e;})});}_0x13db23=_[_0x91a4('0x4a')]({},_0x13db23,_0x4de867[_0x91a4('0x4c')]);return db[_0x91a4('0x6b')][_0x91a4('0x25')]({'where':_0x13db23[_0x91a4('0x47')]})[_0x91a4('0x2c')](function(_0x47d377){_0x260ba0['count']=_0x47d377;if(_0x4de867[_0x91a4('0x3f')]['includeAll']){_0x13db23[_0x91a4('0x4d')]=[{'all':!![]}];}return db['CmHopperHistory'][_0x91a4('0x4e')](_0x13db23);})['then'](function(_0x72db8c){_0x260ba0[_0x91a4('0x69')]=_0x72db8c;return _0x260ba0;});}})[_0x91a4('0x2c')](respondWithFilteredResult(_0x5e482f,_0x13db23))[_0x91a4('0x4f')](handleError(_0x5e482f,null));};exports['getHopperFinals']=function(_0x31a83e,_0x235e3c,_0x3fa815){var _0x4835bb={'raw':!![],'where':{}};var _0x447c6b={};var _0x260cde={'count':0x0,'rows':[]};return db[_0x91a4('0x3b')][_0x91a4('0x65')]({'where':{'id':_0x31a83e[_0x91a4('0x51')]['id']}})['then'](handleEntityNotFound(_0x235e3c,null))[_0x91a4('0x2c')](function(_0x1a517a){if(_0x1a517a){_0x447c6b['model']=_[_0x91a4('0x40')](db['CmHopperFinal'][_0x91a4('0x5f')]);_0x447c6b['query']=_[_0x91a4('0x40')](_0x31a83e[_0x91a4('0x3f')]);_0x447c6b['filters']=_[_0x91a4('0x41')](_0x447c6b[_0x91a4('0x3e')],_0x447c6b[_0x91a4('0x3f')]);_0x4835bb[_0x91a4('0x43')]=_[_0x91a4('0x41')](_0x447c6b['model'],qs[_0x91a4('0x42')](_0x31a83e[_0x91a4('0x3f')][_0x91a4('0x42')]));_0x4835bb[_0x91a4('0x43')]=_0x4835bb[_0x91a4('0x43')][_0x91a4('0x52')]?_0x4835bb[_0x91a4('0x43')]:_0x447c6b['model'];if(!_0x31a83e[_0x91a4('0x3f')][_0x91a4('0x44')](_0x91a4('0x45'))){_0x4835bb['limit']=qs[_0x91a4('0x26')](_0x31a83e[_0x91a4('0x3f')][_0x91a4('0x26')]);_0x4835bb[_0x91a4('0x23')]=qs[_0x91a4('0x23')](_0x31a83e[_0x91a4('0x3f')][_0x91a4('0x23')]);}_0x4835bb[_0x91a4('0x66')]=qs[_0x91a4('0x46')](_0x31a83e[_0x91a4('0x3f')][_0x91a4('0x46')]);_0x4835bb[_0x91a4('0x47')]=qs[_0x91a4('0x48')](_[_0x91a4('0x49')](_0x31a83e[_0x91a4('0x3f')],_0x447c6b[_0x91a4('0x48')]));_0x4835bb[_0x91a4('0x47')]['VoiceQueueId']=_0x1a517a['id'];if(_0x31a83e[_0x91a4('0x3f')][_0x91a4('0x31')]){_0x4835bb['where']=_['merge'](_0x4835bb[_0x91a4('0x47')],{'$or':_[_0x91a4('0x32')](_0x4835bb[_0x91a4('0x43')],function(_0x14a821){var _0x51c6ad={};_0x51c6ad[_0x14a821]={'$like':'%'+_0x31a83e[_0x91a4('0x3f')]['filter']+'%'};return _0x51c6ad;})});}_0x4835bb=_['merge']({},_0x4835bb,_0x31a83e[_0x91a4('0x4c')]);return db['CmHopperFinal'][_0x91a4('0x25')]({'where':_0x4835bb[_0x91a4('0x47')]})[_0x91a4('0x2c')](function(_0x4a0ced){_0x260cde[_0x91a4('0x25')]=_0x4a0ced;if(_0x31a83e[_0x91a4('0x3f')][_0x91a4('0x53')]){_0x4835bb[_0x91a4('0x4d')]=[{'all':!![]}];}return db[_0x91a4('0x6c')][_0x91a4('0x4e')](_0x4835bb);})[_0x91a4('0x2c')](function(_0x184354){_0x260cde[_0x91a4('0x69')]=_0x184354;return _0x260cde;});}})[_0x91a4('0x2c')](respondWithFilteredResult(_0x235e3c,_0x4835bb))['catch'](handleError(_0x235e3c,null));};exports['getHopperBlacks']=function(_0x12fe13,_0x3767dd,_0x2a5dfa){var _0x31ea5d={'raw':!![],'where':{}};var _0x18ce39={};var _0x511cda={'count':0x0,'rows':[]};return db[_0x91a4('0x3b')][_0x91a4('0x65')]({'where':{'id':_0x12fe13[_0x91a4('0x51')]['id']}})[_0x91a4('0x2c')](handleEntityNotFound(_0x3767dd,null))[_0x91a4('0x2c')](function(_0x4819f4){if(_0x4819f4){_0x18ce39['model']=_['keys'](db[_0x91a4('0x6d')][_0x91a4('0x5f')]);_0x18ce39[_0x91a4('0x3f')]=_['keys'](_0x12fe13[_0x91a4('0x3f')]);_0x18ce39[_0x91a4('0x48')]=_[_0x91a4('0x41')](_0x18ce39['model'],_0x18ce39[_0x91a4('0x3f')]);_0x31ea5d['attributes']=_['intersection'](_0x18ce39['model'],qs[_0x91a4('0x42')](_0x12fe13[_0x91a4('0x3f')][_0x91a4('0x42')]));_0x31ea5d[_0x91a4('0x43')]=_0x31ea5d[_0x91a4('0x43')][_0x91a4('0x52')]?_0x31ea5d[_0x91a4('0x43')]:_0x18ce39[_0x91a4('0x3e')];if(!_0x12fe13[_0x91a4('0x3f')]['hasOwnProperty'](_0x91a4('0x45'))){_0x31ea5d[_0x91a4('0x26')]=qs[_0x91a4('0x26')](_0x12fe13[_0x91a4('0x3f')][_0x91a4('0x26')]);_0x31ea5d[_0x91a4('0x23')]=qs[_0x91a4('0x23')](_0x12fe13['query'][_0x91a4('0x23')]);}_0x31ea5d[_0x91a4('0x66')]=qs['sort'](_0x12fe13[_0x91a4('0x3f')][_0x91a4('0x46')]);_0x31ea5d[_0x91a4('0x47')]=qs[_0x91a4('0x48')](_[_0x91a4('0x49')](_0x12fe13[_0x91a4('0x3f')],_0x18ce39[_0x91a4('0x48')]));_0x31ea5d[_0x91a4('0x47')][_0x91a4('0x67')]=_0x4819f4['id'];if(_0x12fe13[_0x91a4('0x3f')][_0x91a4('0x31')]){_0x31ea5d[_0x91a4('0x47')]=_[_0x91a4('0x4a')](_0x31ea5d[_0x91a4('0x47')],{'$or':_[_0x91a4('0x32')](_0x31ea5d[_0x91a4('0x43')],function(_0x32f92a){var _0x1430b1={};_0x1430b1[_0x32f92a]={'$like':'%'+_0x12fe13[_0x91a4('0x3f')][_0x91a4('0x31')]+'%'};return _0x1430b1;})});}_0x31ea5d=_['merge']({},_0x31ea5d,_0x12fe13[_0x91a4('0x4c')]);return db[_0x91a4('0x6d')][_0x91a4('0x25')]({'where':_0x31ea5d[_0x91a4('0x47')]})[_0x91a4('0x2c')](function(_0x487d70){_0x511cda['count']=_0x487d70;if(_0x12fe13[_0x91a4('0x3f')]['includeAll']){_0x31ea5d[_0x91a4('0x4d')]=[{'all':!![]}];}return db[_0x91a4('0x6d')][_0x91a4('0x4e')](_0x31ea5d);})[_0x91a4('0x2c')](function(_0x34e97f){_0x511cda['rows']=_0x34e97f;return _0x511cda;});}})[_0x91a4('0x2c')](respondWithFilteredResult(_0x3767dd,_0x31ea5d))[_0x91a4('0x4f')](handleError(_0x3767dd,null));};exports['getTeams']=function(_0x59a7b7,_0xbf249d,_0x54cd8d){var _0x4beada={};var _0x31fb68={};var _0x26626e;var _0x446e42;return db[_0x91a4('0x3b')][_0x91a4('0x65')]({'where':{'id':_0x59a7b7['params']['id']}})[_0x91a4('0x2c')](handleEntityNotFound(_0xbf249d,null))['then'](function(_0x5ba106){if(_0x5ba106){_0x26626e=_0x5ba106;_0x31fb68[_0x91a4('0x3e')]=_[_0x91a4('0x40')](db['Team'][_0x91a4('0x5f')]);_0x31fb68[_0x91a4('0x3f')]=_[_0x91a4('0x40')](_0x59a7b7[_0x91a4('0x3f')]);_0x31fb68['filters']=_[_0x91a4('0x41')](_0x31fb68[_0x91a4('0x3e')],_0x31fb68[_0x91a4('0x3f')]);_0x4beada[_0x91a4('0x43')]=_[_0x91a4('0x41')](_0x31fb68['model'],qs[_0x91a4('0x42')](_0x59a7b7[_0x91a4('0x3f')][_0x91a4('0x42')]));_0x4beada[_0x91a4('0x43')]=_0x4beada[_0x91a4('0x43')][_0x91a4('0x52')]?_0x4beada[_0x91a4('0x43')]:_0x31fb68[_0x91a4('0x3e')];_0x4beada[_0x91a4('0x66')]=qs[_0x91a4('0x46')](_0x59a7b7[_0x91a4('0x3f')]['sort']);_0x4beada[_0x91a4('0x47')]=qs['filters'](_[_0x91a4('0x49')](_0x59a7b7[_0x91a4('0x3f')],_0x31fb68['filters']));if(_0x59a7b7[_0x91a4('0x3f')][_0x91a4('0x31')]){_0x4beada['where']=_[_0x91a4('0x4a')](_0x4beada[_0x91a4('0x47')],{'$or':_[_0x91a4('0x32')](_0x4beada['attributes'],function(_0x1cb442){var _0x275099={};_0x275099[_0x1cb442]={'$like':'%'+_0x59a7b7[_0x91a4('0x3f')]['filter']+'%'};return _0x275099;})});}_0x4beada=_['merge']({},_0x4beada,_0x59a7b7[_0x91a4('0x4c')]);return _0x26626e['getTeams'](_0x4beada);}})['then'](function(_0x121c26){if(_0x121c26){_0x446e42=_0x121c26['length'];if(!_0x59a7b7[_0x91a4('0x3f')][_0x91a4('0x44')]('nolimit')){_0x4beada[_0x91a4('0x26')]=qs[_0x91a4('0x26')](_0x59a7b7[_0x91a4('0x3f')][_0x91a4('0x26')]);_0x4beada[_0x91a4('0x23')]=qs[_0x91a4('0x23')](_0x59a7b7['query'][_0x91a4('0x23')]);}return _0x26626e[_0x91a4('0x6e')](_0x4beada);}})['then'](function(_0x18fd8e){if(_0x18fd8e){return _0x18fd8e?{'count':_0x446e42,'rows':_0x18fd8e}:null;}})[_0x91a4('0x2c')](respondWithResult(_0xbf249d,null))[_0x91a4('0x4f')](handleError(_0xbf249d,null));};exports[_0x91a4('0x6f')]=function(_0x3710e1,_0x56a7d4,_0x35c918){var _0x2eec0a=_0x3710e1['body']['teams'];var _0x3cbfd8=_['map'](_0x2eec0a,'id');return db[_0x91a4('0x70')]['findAll']({'where':{'id':_0x3cbfd8},'attributes':['id'],'include':[{'model':db[_0x91a4('0x71')],'as':'Agents','attributes':['id',_0x91a4('0x36'),_0x91a4('0x72'),'voicePause',_0x91a4('0x73')],'raw':!![]}]})[_0x91a4('0x2c')](function(_0x54ca92){if(_0x54ca92){var _0x45b1e3=_[_0x91a4('0x74')](_0x54ca92,function(_0x178c1c){var _0x10197e=_0x178c1c[_0x91a4('0x2e')]({'plain':!![]});_0x10197e[_0x91a4('0x75')][_0x91a4('0x76')](function(_0x847728){_0x847728['penalty']=_[_0x91a4('0x34')](_0x2eec0a,{'id':_0x10197e['id']})[_0x91a4('0x77')];});return _0x10197e[_0x91a4('0x75')];});return db[_0x91a4('0x3b')][_0x91a4('0x34')]({'where':{'id':_0x3710e1[_0x91a4('0x51')]['id']}})['then'](function(_0x458779){return db[_0x91a4('0x78')][_0x91a4('0x79')](function(_0x4c96c1){return _0x458779[_0x91a4('0x6f')](_0x3cbfd8,{'transaction':_0x4c96c1})['then'](function(){return BPromise[_0x91a4('0x7a')](_0x2eec0a,function(_0x4bc1a1){return db[_0x91a4('0x7b')][_0x91a4('0x7c')]({'TeamId':_0x4bc1a1['id'],'VoiceQueueId':_0x3710e1[_0x91a4('0x51')]['id'],'penalty':_0x4bc1a1['penalty']},{'transaction':_0x4c96c1});});})[_0x91a4('0x2c')](function(){return BPromise[_0x91a4('0x7a')](_0x45b1e3,function(_0x4484bd){return db['UserVoiceQueue']['findOrCreate']({'where':{'UserId':_0x4484bd['id'],'VoiceQueueId':_0x3710e1[_0x91a4('0x51')]['id']},'defaults':{'penalty':_0x4484bd[_0x91a4('0x77')]},'transaction':_0x4c96c1});});})[_0x91a4('0x2c')](function(){return BPromise[_0x91a4('0x7a')](_[_0x91a4('0x31')](_0x45b1e3,{'online':!![]}),function(_0x134354){return db[_0x91a4('0x7d')]['upsert']({'membername':_0x134354[_0x91a4('0x36')],'UserId':_0x134354['id'],'queue_name':_0x458779[_0x91a4('0x36')],'VoiceQueueId':_0x458779['id'],'interface':_[_0x91a4('0x7e')](_0x134354[_0x91a4('0x73')])?util[_0x91a4('0x7f')]('SIP/%s',_0x134354[_0x91a4('0x36')]):_0x134354[_0x91a4('0x73')],'paused':_0x134354[_0x91a4('0x80')]||![],'penalty':_0x134354[_0x91a4('0x77')]},{'transaction':_0x4c96c1});});})[_0x91a4('0x2c')](function(){_0x45b1e3[_0x91a4('0x76')](function(_0x2aba8f){socket['emit'](_0x91a4('0x81'),{'UserId':_0x2aba8f['id'],'VoiceQueueId':_0x458779['id']});});});});});}})[_0x91a4('0x2c')](respondWithStatusCode(_0x56a7d4,null))[_0x91a4('0x4f')](handleError(_0x56a7d4,null));};exports['removeTeams']=function(_0x10df41,_0x400949,_0x5c0e09){return db[_0x91a4('0x70')][_0x91a4('0x4e')]({'where':{'id':_0x10df41['query'][_0x91a4('0x82')]},'attributes':['id'],'include':[{'model':db['User'],'as':_0x91a4('0x75'),'attributes':['id'],'raw':!![]}]})[_0x91a4('0x2c')](handleEntityNotFound(_0x400949,null))[_0x91a4('0x2c')](function(_0x36aa33){var _0x230f2b=_[_0x91a4('0x32')](_0x36aa33,'id');var _0x192994=[];var _0x198631=[];var _0x5228ea=squel[_0x91a4('0x83')]();_0x5228ea[_0x91a4('0x84')](_0x91a4('0x85'))[_0x91a4('0x86')](_0x91a4('0x87'),'tq')[_0x91a4('0x88')](_0x91a4('0x89'),'ut',_0x91a4('0x8a'))[_0x91a4('0x47')]('VoiceQueueId\x20=\x20?',_0x10df41[_0x91a4('0x51')]['id']);for(var _0x45d985=0x0;_0x45d985<_0x36aa33['length'];_0x45d985+=0x1){let _0x58a2d5=_0x36aa33[_0x45d985];for(var _0x3a5a79=0x0;_0x3a5a79<_0x58a2d5[_0x91a4('0x75')][_0x91a4('0x52')];_0x3a5a79+=0x1){let _0x4c4700=_0x58a2d5[_0x91a4('0x75')][_0x3a5a79];var _0x34fc04=_0x5228ea[_0x91a4('0x5e')]();_0x34fc04['where'](_0x91a4('0x8b'),_0x4c4700['id']);_0x198631[_0x91a4('0x8c')](db[_0x91a4('0x78')][_0x91a4('0x3f')](_0x34fc04[_0x91a4('0x8d')](),{'type':db[_0x91a4('0x78')][_0x91a4('0x8e')]['SELECT']})[_0x91a4('0x2c')](function(_0x284aad){if(_0x284aad[_0x91a4('0x52')]===0x1){return _0x4c4700['id'];}else{var _0x167b15=_[_0x91a4('0x8f')](_[_0x91a4('0x32')](_0x284aad,'TeamId'),function(_0x13d17a){return _[_0x91a4('0x90')](_0x230f2b,_0x13d17a);});if(_0x167b15){return _0x4c4700['id'];}}}));}}return BPromise[_0x91a4('0x91')](_0x198631)[_0x91a4('0x2c')](function(_0xc4a9d2){_0x192994=_(_0x192994)[_0x91a4('0x92')](_0xc4a9d2)[_0x91a4('0x93')]()['value']();return db[_0x91a4('0x3b')][_0x91a4('0x34')]({'where':{'id':_0x10df41[_0x91a4('0x51')]['id']}})[_0x91a4('0x2c')](function(_0x23b689){return db['sequelize'][_0x91a4('0x79')](function(_0x51a2f8){return _0x23b689[_0x91a4('0x94')](_0x10df41[_0x91a4('0x3f')][_0x91a4('0x82')],{'transaction':_0x51a2f8})['then'](function(){if(!_[_0x91a4('0x95')](_0x192994)){return _0x23b689[_0x91a4('0x96')](_0x192994,{'transaction':_0x51a2f8})['then'](function(){return db[_0x91a4('0x7d')]['destroy']({'where':{'VoiceQueueId':_0x10df41[_0x91a4('0x51')]['id'],'UserId':_0x192994},'transaction':_0x51a2f8});});}})['then'](function(){_0x192994[_0x91a4('0x76')](function(_0x8ab52a){socket[_0x91a4('0x97')](_0x91a4('0x98'),{'UserId':_0x8ab52a,'VoiceQueueId':_0x23b689['id']});});});});});});})[_0x91a4('0x2c')](respondWithStatusCode(_0x400949,null))[_0x91a4('0x4f')](handleError(_0x400949,null));};exports['addAgents']=function(_0x62974e,_0x2e1d27,_0x83d2ac){var _0x51ad88,_0x334cd1;return db[_0x91a4('0x3b')][_0x91a4('0x34')]({'where':{'id':_0x62974e[_0x91a4('0x51')]['id']}})['then'](handleEntityNotFound(_0x2e1d27,null))[_0x91a4('0x2c')](function(_0x511422){if(_0x511422){_0x334cd1=_0x511422;return _0x511422[_0x91a4('0x99')](_0x62974e['body'][_0x91a4('0x82')],_[_0x91a4('0x60')](_0x62974e[_0x91a4('0x55')],[_0x91a4('0x82'),'id'])||{})[_0x91a4('0x9a')](function(_0x34a58c){for(var _0x37ce45=0x0;_0x37ce45<_0x62974e['body']['ids'][_0x91a4('0x52')];_0x37ce45+=0x1){socket[_0x91a4('0x97')](_0x91a4('0x81'),{'UserId':Number(_0x62974e[_0x91a4('0x55')][_0x91a4('0x82')][_0x37ce45]),'VoiceQueueId':Number(_0x62974e[_0x91a4('0x51')]['id'])});}return _0x34a58c;});}})[_0x91a4('0x2c')](function(_0xf3386c){_0x51ad88=_0xf3386c||[];if(_0x334cd1){return db[_0x91a4('0x71')][_0x91a4('0x4e')]({'where':{'id':_0x62974e[_0x91a4('0x55')]['ids']},'attributes':['id','name',_0x91a4('0x72'),_0x91a4('0x80'),'interface'],'raw':!![]});}})[_0x91a4('0x2c')](function(_0xe04ad6){if(!_['isEmpty'](_0xe04ad6)){var _0x1ed516=[];for(var _0x107156=0x0;_0x107156<_0xe04ad6[_0x91a4('0x52')];_0x107156++){if(_0xe04ad6[_0x107156][_0x91a4('0x72')]){_0x1ed516[_0x91a4('0x8c')](db[_0x91a4('0x7d')][_0x91a4('0x7c')]({'membername':_0xe04ad6[_0x107156][_0x91a4('0x36')],'UserId':_0xe04ad6[_0x107156]['id'],'queue_name':_0x334cd1[_0x91a4('0x36')],'VoiceQueueId':_0x334cd1['id'],'interface':_[_0x91a4('0x7e')](_0xe04ad6[_0x107156]['interface'])?util[_0x91a4('0x7f')](_0x91a4('0x9b'),_0xe04ad6[_0x107156][_0x91a4('0x36')]):_0xe04ad6[_0x107156][_0x91a4('0x73')],'paused':_0xe04ad6[_0x107156][_0x91a4('0x80')]||![],'penalty':_0x62974e[_0x91a4('0x55')]['penalty']||0x0}));}}return BPromise[_0x91a4('0x91')](_0x1ed516);}})[_0x91a4('0x2c')](function(){return _0x51ad88;})[_0x91a4('0x2c')](respondWithResult(_0x2e1d27,null))['catch'](handleError(_0x2e1d27,null));};exports['removeAgents']=function(_0x34ad11,_0x1661e7,_0x2d437b){return db[_0x91a4('0x3b')]['find']({'where':{'id':_0x34ad11['params']['id']}})['then'](handleEntityNotFound(_0x1661e7,null))[_0x91a4('0x2c')](function(_0x115689){if(_0x115689){return _0x115689['removeAgents'](_0x34ad11[_0x91a4('0x3f')][_0x91a4('0x82')])[_0x91a4('0x2c')](function(){if(_[_0x91a4('0x9c')](_0x34ad11[_0x91a4('0x3f')][_0x91a4('0x82')])){for(var _0x3ac1ed=0x0;_0x3ac1ed<_0x34ad11['query'][_0x91a4('0x82')][_0x91a4('0x52')];_0x3ac1ed+=0x1){socket[_0x91a4('0x97')]('userVoiceQueue:remove',{'UserId':Number(_0x34ad11[_0x91a4('0x3f')][_0x91a4('0x82')][_0x3ac1ed]),'VoiceQueueId':Number(_0x34ad11['params']['id'])});}}else{socket[_0x91a4('0x97')](_0x91a4('0x98'),{'UserId':Number(_0x34ad11[_0x91a4('0x3f')][_0x91a4('0x82')]),'VoiceQueueId':Number(_0x34ad11[_0x91a4('0x51')]['id'])});}});}})[_0x91a4('0x2c')](function(_0x43bc8d){return db['UserVoiceQueueRt']['destroy']({'where':{'VoiceQueueId':_0x34ad11['params']['id'],'UserId':_0x34ad11[_0x91a4('0x3f')]['ids']}})[_0x91a4('0x2c')](function(){return _0x43bc8d;});})[_0x91a4('0x2c')](respondWithStatusCode(_0x1661e7,null))[_0x91a4('0x4f')](handleError(_0x1661e7,null));};exports[_0x91a4('0x9d')]=function(_0x5b0e8e,_0x38ade5,_0x573df9){var _0x359cec={};var _0x51141d={};var _0x3b2e63;var _0x1893a0;return db[_0x91a4('0x3b')][_0x91a4('0x65')]({'where':{'id':_0x5b0e8e[_0x91a4('0x51')]['id']}})['then'](handleEntityNotFound(_0x38ade5,null))[_0x91a4('0x2c')](function(_0x2fe5d0){if(_0x2fe5d0){_0x3b2e63=_0x2fe5d0;_0x51141d[_0x91a4('0x3e')]=_[_0x91a4('0x40')](db['User'][_0x91a4('0x5f')]);_0x51141d[_0x91a4('0x3f')]=_[_0x91a4('0x40')](_0x5b0e8e['query']);_0x51141d[_0x91a4('0x48')]=_[_0x91a4('0x41')](_0x51141d[_0x91a4('0x3e')],_0x51141d[_0x91a4('0x3f')]);_0x359cec[_0x91a4('0x43')]=_[_0x91a4('0x41')](_0x51141d[_0x91a4('0x3e')],qs[_0x91a4('0x42')](_0x5b0e8e[_0x91a4('0x3f')][_0x91a4('0x42')]));_0x359cec[_0x91a4('0x43')]=_0x359cec[_0x91a4('0x43')][_0x91a4('0x52')]?_0x359cec[_0x91a4('0x43')]:_0x51141d[_0x91a4('0x3e')];_0x359cec[_0x91a4('0x66')]=qs[_0x91a4('0x46')](_0x5b0e8e[_0x91a4('0x3f')][_0x91a4('0x46')]);_0x359cec[_0x91a4('0x47')]=qs[_0x91a4('0x48')](_[_0x91a4('0x49')](_0x5b0e8e['query'],_0x51141d['filters']));if(_0x5b0e8e[_0x91a4('0x3f')][_0x91a4('0x31')]){_0x359cec['where']=_['merge'](_0x359cec[_0x91a4('0x47')],{'$or':_['map'](_0x359cec[_0x91a4('0x43')],function(_0x969b82){var _0x32fbd2={};_0x32fbd2[_0x969b82]={'$like':'%'+_0x5b0e8e[_0x91a4('0x3f')][_0x91a4('0x31')]+'%'};return _0x32fbd2;})});}_0x359cec=_[_0x91a4('0x4a')]({},_0x359cec,_0x5b0e8e[_0x91a4('0x4c')]);return _0x3b2e63[_0x91a4('0x9d')](_0x359cec);}})['then'](function(_0x2870e2){if(_0x2870e2){_0x1893a0=_0x2870e2['length'];if(!_0x5b0e8e['query'][_0x91a4('0x44')]('nolimit')){_0x359cec[_0x91a4('0x26')]=qs[_0x91a4('0x26')](_0x5b0e8e[_0x91a4('0x3f')][_0x91a4('0x26')]);_0x359cec['offset']=qs['offset'](_0x5b0e8e[_0x91a4('0x3f')]['offset']);}return _0x3b2e63[_0x91a4('0x9d')](_0x359cec);}})[_0x91a4('0x2c')](function(_0x37ee32){if(_0x37ee32){return _0x37ee32?{'count':_0x1893a0,'rows':_0x37ee32}:null;}})[_0x91a4('0x2c')](respondWithResult(_0x38ade5,null))[_0x91a4('0x4f')](handleError(_0x38ade5,null));};exports[_0x91a4('0x9e')]=function(_0x4c0fde,_0x26d43c,_0x301cc3){var _0x4904d6={};var _0x8eecae={};var _0x4b2775;var _0x46ea9d;return db['VoiceQueue'][_0x91a4('0x65')]({'where':{'id':_0x4c0fde[_0x91a4('0x51')]['id']}})[_0x91a4('0x2c')](handleEntityNotFound(_0x26d43c,null))[_0x91a4('0x2c')](function(_0x34ea29){if(_0x34ea29){_0x4b2775=_0x34ea29;_0x8eecae['model']=_[_0x91a4('0x40')](db[_0x91a4('0x7d')]['rawAttributes']);_0x8eecae[_0x91a4('0x3f')]=_[_0x91a4('0x40')](_0x4c0fde['query']);_0x8eecae[_0x91a4('0x48')]=_[_0x91a4('0x41')](_0x8eecae[_0x91a4('0x3e')],_0x8eecae[_0x91a4('0x3f')]);_0x4904d6[_0x91a4('0x43')]=_['intersection'](_0x8eecae['model'],qs[_0x91a4('0x42')](_0x4c0fde['query'][_0x91a4('0x42')]));_0x4904d6[_0x91a4('0x43')]=_0x4904d6['attributes'][_0x91a4('0x52')]?_0x4904d6['attributes']:_0x8eecae[_0x91a4('0x3e')];_0x4904d6[_0x91a4('0x66')]=qs[_0x91a4('0x46')](_0x4c0fde['query']['sort']);_0x4904d6[_0x91a4('0x47')]=qs[_0x91a4('0x48')](_['pick'](_0x4c0fde[_0x91a4('0x3f')],_0x8eecae[_0x91a4('0x48')]));if(_0x4c0fde[_0x91a4('0x3f')][_0x91a4('0x31')]){_0x4904d6[_0x91a4('0x47')]=_[_0x91a4('0x4a')](_0x4904d6[_0x91a4('0x47')],{'$or':_[_0x91a4('0x32')](_0x4904d6['attributes'],function(_0x5090aa){var _0x57a30d={};_0x57a30d[_0x5090aa]={'$like':'%'+_0x4c0fde[_0x91a4('0x3f')]['filter']+'%'};return _0x57a30d;})});}_0x4904d6=_[_0x91a4('0x4a')]({},_0x4904d6,_0x4c0fde[_0x91a4('0x4c')]);return _0x4b2775[_0x91a4('0x9e')](_0x4904d6);}})[_0x91a4('0x2c')](function(_0x5d3d50){if(_0x5d3d50){_0x46ea9d=_0x5d3d50['length'];if(!_0x4c0fde['query'][_0x91a4('0x44')](_0x91a4('0x45'))){_0x4904d6[_0x91a4('0x26')]=qs[_0x91a4('0x26')](_0x4c0fde[_0x91a4('0x3f')][_0x91a4('0x26')]);_0x4904d6[_0x91a4('0x23')]=qs[_0x91a4('0x23')](_0x4c0fde[_0x91a4('0x3f')][_0x91a4('0x23')]);}return _0x4b2775[_0x91a4('0x9e')](_0x4904d6);}})['then'](function(_0xd4936d){return _0xd4936d?{'count':_0x46ea9d,'rows':_0xd4936d}:null;})['then'](respondWithResult(_0x26d43c,null))[_0x91a4('0x4f')](handleError(_0x26d43c,null));};exports[_0x91a4('0x9f')]=function(_0x21ecb4,_0x417a43,_0x41ac1f){var _0x510756={};var _0x583fcd={};var _0x23812e;var _0x18f4d8;return db[_0x91a4('0x3b')][_0x91a4('0x65')]({'where':{'id':_0x21ecb4[_0x91a4('0x51')]['id']}})[_0x91a4('0x2c')](handleEntityNotFound(_0x417a43,null))[_0x91a4('0x2c')](function(_0x4bb9f8){if(_0x4bb9f8){_0x23812e=_0x4bb9f8;_0x583fcd[_0x91a4('0x3e')]=_['keys'](db[_0x91a4('0xa0')][_0x91a4('0x5f')]);_0x583fcd[_0x91a4('0x3f')]=_[_0x91a4('0x40')](_0x21ecb4[_0x91a4('0x3f')]);_0x583fcd['filters']=_[_0x91a4('0x41')](_0x583fcd[_0x91a4('0x3e')],_0x583fcd[_0x91a4('0x3f')]);_0x510756[_0x91a4('0x43')]=_[_0x91a4('0x41')](_0x583fcd[_0x91a4('0x3e')],qs[_0x91a4('0x42')](_0x21ecb4['query']['fields']));_0x510756[_0x91a4('0x43')]=_0x510756[_0x91a4('0x43')][_0x91a4('0x52')]?_0x510756[_0x91a4('0x43')]:_0x583fcd['model'];_0x510756[_0x91a4('0x66')]=qs['sort'](_0x21ecb4['query'][_0x91a4('0x46')]);_0x510756[_0x91a4('0x47')]=qs['filters'](_[_0x91a4('0x49')](_0x21ecb4['query'],_0x583fcd[_0x91a4('0x48')]));if(_0x21ecb4[_0x91a4('0x3f')][_0x91a4('0x31')]){_0x510756['where']=_[_0x91a4('0x4a')](_0x510756['where'],{'$or':_[_0x91a4('0x32')](_0x510756[_0x91a4('0x43')],function(_0x443373){var _0x44e33d={};_0x44e33d[_0x443373]={'$like':'%'+_0x21ecb4[_0x91a4('0x3f')][_0x91a4('0x31')]+'%'};return _0x44e33d;})});}_0x510756=_[_0x91a4('0x4a')]({},_0x510756,_0x21ecb4[_0x91a4('0x4c')]);return _0x23812e[_0x91a4('0x9f')](_0x510756);}})['then'](function(_0x147202){if(_0x147202){_0x18f4d8=_0x147202[_0x91a4('0x52')];if(!_0x21ecb4[_0x91a4('0x3f')][_0x91a4('0x44')](_0x91a4('0x45'))){_0x510756['limit']=qs[_0x91a4('0x26')](_0x21ecb4['query'][_0x91a4('0x26')]);_0x510756[_0x91a4('0x23')]=qs[_0x91a4('0x23')](_0x21ecb4[_0x91a4('0x3f')][_0x91a4('0x23')]);}return _0x23812e[_0x91a4('0x9f')](_0x510756);}})['then'](function(_0x2d14cb){if(_0x2d14cb){return _0x2d14cb?{'count':_0x18f4d8,'rows':_0x2d14cb}:null;}})[_0x91a4('0x2c')](respondWithResult(_0x417a43,null))[_0x91a4('0x4f')](handleError(_0x417a43,null));};exports[_0x91a4('0xa1')]=function(_0x25815e,_0x92b73b,_0x20c440){var _0x26aec1,_0x2fb0f6;return db[_0x91a4('0x3b')][_0x91a4('0x34')]({'where':{'id':_0x25815e['params']['id']}})[_0x91a4('0x2c')](handleEntityNotFound(_0x92b73b,null))[_0x91a4('0x2c')](function(_0x105ded){if(_0x105ded){_0x2fb0f6=_0x105ded;return _0x105ded[_0x91a4('0xa1')](_0x25815e[_0x91a4('0x55')]['ids'],_[_0x91a4('0x60')](_0x25815e[_0x91a4('0x55')],['ids','id'])||{});}return null;})['spread'](function(_0x3dbd54){var _0x18ee9a;_0x26aec1=_0x3dbd54||[];var _0x32c6ca=[];if(_0x3dbd54){for(var _0x18f3d1=0x0;_0x18f3d1<_0x3dbd54[_0x91a4('0x52')];_0x18f3d1+=0x1){var _0x16b81f=_0x3dbd54[_0x18f3d1][_0x91a4('0x2e')]({'plain':!![]});_0x2fb0f6[_0x91a4('0xa2')]=_0x25815e['body']['dialCheckDuplicateType']?_0x25815e['body'][_0x91a4('0xa2')]:_0x2fb0f6[_0x91a4('0xa2')];switch(_0x2fb0f6[_0x91a4('0xa2')]){case _0x91a4('0xa3'):_0x18ee9a=squel[_0x91a4('0xa4')]()[_0x91a4('0xa5')](_0x91a4('0xa6'))['fromQuery'](['phone',_0x91a4('0xa7'),_0x91a4('0xa8'),'ListId',_0x91a4('0x67'),_0x91a4('0x62'),_0x91a4('0x61')],squel[_0x91a4('0x83')]()['field']('phone',_0x91a4('0xa9'))['field'](_0x91a4('0xaa'),_0x91a4('0xa7'))[_0x91a4('0x84')]('id',_0x91a4('0xa8'))[_0x91a4('0x84')](_0x16b81f[_0x91a4('0xab')][_0x91a4('0x8d')](),_0x91a4('0xac'))[_0x91a4('0x84')](_0x25815e[_0x91a4('0x51')]['id'][_0x91a4('0x8d')](),_0x91a4('0x67'))[_0x91a4('0x84')](_0x91a4('0xaa'),'createdAt')['field']('NOW()',_0x91a4('0x61'))[_0x91a4('0x86')](_0x91a4('0xad'))['where'](_0x91a4('0xae'))[_0x91a4('0x47')](_0x91a4('0xaf'),_0x16b81f[_0x91a4('0xab')]['toString']())[_0x91a4('0x47')](_0x91a4('0xb0'))[_0x91a4('0x47')](_0x91a4('0xb1'),squel[_0x91a4('0x83')]()[_0x91a4('0x84')]('COALESCE(calleridnum,\x27\x27)')['from'](_0x91a4('0xb2'))['where'](_0x91a4('0xb3'),_0x25815e[_0x91a4('0x51')]['id'][_0x91a4('0x8d')]()))['where']('phone\x20NOT\x20IN\x20(?)',squel[_0x91a4('0x83')]()['field']('COALESCE(phone,\x27\x27)')['from'](_0x91a4('0xa6'))['where'](_0x91a4('0xb3'),_0x25815e[_0x91a4('0x51')]['id'][_0x91a4('0x8d')]())))[_0x91a4('0x8d')]();break;case _0x91a4('0xb4'):_0x18ee9a=squel[_0x91a4('0xa4')]()[_0x91a4('0xa5')](_0x91a4('0xa6'))[_0x91a4('0xb5')]([_0x91a4('0xa9'),_0x91a4('0xa7'),_0x91a4('0xa8'),'ListId',_0x91a4('0x67'),'createdAt',_0x91a4('0x61')],squel[_0x91a4('0x83')]()[_0x91a4('0x84')](_0x91a4('0xa9'),_0x91a4('0xa9'))[_0x91a4('0x84')](_0x91a4('0xaa'),_0x91a4('0xa7'))[_0x91a4('0x84')]('id',_0x91a4('0xa8'))['field'](_0x16b81f[_0x91a4('0xab')][_0x91a4('0x8d')](),'ListId')[_0x91a4('0x84')](_0x25815e[_0x91a4('0x51')]['id'][_0x91a4('0x8d')](),_0x91a4('0x67'))[_0x91a4('0x84')](_0x91a4('0xaa'),_0x91a4('0x62'))[_0x91a4('0x84')](_0x91a4('0xaa'),_0x91a4('0x61'))['from'](_0x91a4('0xad'))['where'](_0x91a4('0xae'))['where']('ListId\x20=\x20?',_0x16b81f[_0x91a4('0xab')][_0x91a4('0x8d')]())['where'](_0x91a4('0xb0'))[_0x91a4('0x47')](_0x91a4('0xb1'),squel['select']()[_0x91a4('0x84')](_0x91a4('0xb6'))['from'](_0x91a4('0xa6'))[_0x91a4('0x47')](_0x91a4('0xb3'),_0x25815e[_0x91a4('0x51')]['id']['toString']())))[_0x91a4('0x8d')]();break;default:_0x18ee9a=squel[_0x91a4('0xa4')]()[_0x91a4('0xa5')](_0x91a4('0xa6'))[_0x91a4('0xb5')]([_0x91a4('0xa9'),'scheduledAt',_0x91a4('0xa8'),'ListId',_0x91a4('0x67'),_0x91a4('0x62'),'updatedAt'],squel[_0x91a4('0x83')]()[_0x91a4('0x84')](_0x91a4('0xa9'),_0x91a4('0xa9'))['field']('NOW()',_0x91a4('0xa7'))[_0x91a4('0x84')]('id',_0x91a4('0xa8'))['field'](_0x16b81f[_0x91a4('0xab')][_0x91a4('0x8d')](),_0x91a4('0xac'))[_0x91a4('0x84')](_0x25815e[_0x91a4('0x51')]['id'][_0x91a4('0x8d')](),'VoiceQueueId')[_0x91a4('0x84')](_0x91a4('0xaa'),_0x91a4('0x62'))[_0x91a4('0x84')](_0x91a4('0xaa'),'updatedAt')[_0x91a4('0x86')](_0x91a4('0xad'))[_0x91a4('0x47')](_0x91a4('0xae'))[_0x91a4('0x47')](_0x91a4('0xaf'),_0x16b81f[_0x91a4('0xab')][_0x91a4('0x8d')]())['where'](_0x91a4('0xb0')))['toString']();}_0x32c6ca[_0x91a4('0x8c')](db[_0x91a4('0x78')]['query'](_0x18ee9a));}return BPromise[_0x91a4('0x91')](_0x32c6ca);}})[_0x91a4('0x2c')](function(){return _0x26aec1;})['then'](respondWithResult(_0x92b73b,null))[_0x91a4('0x4f')](handleError(_0x92b73b,null));};exports[_0x91a4('0xb7')]=function(_0x3310ad,_0x46bf79,_0x1cb9a3){return db['VoiceQueue']['find']({'where':{'id':_0x3310ad[_0x91a4('0x51')]['id']}})[_0x91a4('0x2c')](handleEntityNotFound(_0x46bf79,null))[_0x91a4('0x2c')](function(_0x1451c8){if(_0x1451c8){return _0x1451c8['removeLists'](_0x3310ad['query'][_0x91a4('0x82')]);}})[_0x91a4('0x2c')](function(_0x54cae8){if(_0x54cae8){return db[_0x91a4('0x68')][_0x91a4('0x2d')]({'where':{'ListId':_0x3310ad[_0x91a4('0x3f')][_0x91a4('0x82')],'VoiceQueueId':_0x3310ad['params']['id']}})[_0x91a4('0x2c')](function(){return _0x54cae8;});}})[_0x91a4('0x2c')](respondWithStatusCode(_0x46bf79,null))['catch'](handleError(_0x46bf79,null));};exports[_0x91a4('0xb8')]=function(_0x58c463,_0x75f9ea,_0x1667a9){var _0x561494={};var _0x1bc2ce={};var _0x22c4f3;var _0x12ed8d;return db['VoiceQueue'][_0x91a4('0x65')]({'where':{'id':_0x58c463[_0x91a4('0x51')]['id']}})['then'](handleEntityNotFound(_0x75f9ea,null))['then'](function(_0x3bfef9){if(_0x3bfef9){_0x22c4f3=_0x3bfef9;_0x1bc2ce[_0x91a4('0x3e')]=_[_0x91a4('0x40')](db[_0x91a4('0xa0')][_0x91a4('0x5f')]);_0x1bc2ce[_0x91a4('0x3f')]=_[_0x91a4('0x40')](_0x58c463[_0x91a4('0x3f')]);_0x1bc2ce['filters']=_['intersection'](_0x1bc2ce[_0x91a4('0x3e')],_0x1bc2ce[_0x91a4('0x3f')]);_0x561494[_0x91a4('0x43')]=_['intersection'](_0x1bc2ce[_0x91a4('0x3e')],qs[_0x91a4('0x42')](_0x58c463[_0x91a4('0x3f')]['fields']));_0x561494[_0x91a4('0x43')]=_0x561494[_0x91a4('0x43')]['length']?_0x561494['attributes']:_0x1bc2ce[_0x91a4('0x3e')];_0x561494[_0x91a4('0x66')]=qs['sort'](_0x58c463[_0x91a4('0x3f')][_0x91a4('0x46')]);_0x561494[_0x91a4('0x47')]=qs[_0x91a4('0x48')](_[_0x91a4('0x49')](_0x58c463[_0x91a4('0x3f')],_0x1bc2ce[_0x91a4('0x48')]));if(_0x58c463['query'][_0x91a4('0x31')]){_0x561494['where']=_[_0x91a4('0x4a')](_0x561494[_0x91a4('0x47')],{'$or':_[_0x91a4('0x32')](_0x561494[_0x91a4('0x43')],function(_0x122c8b){var _0x59fa27={};_0x59fa27[_0x122c8b]={'$like':'%'+_0x58c463[_0x91a4('0x3f')][_0x91a4('0x31')]+'%'};return _0x59fa27;})});}_0x561494=_[_0x91a4('0x4a')]({},_0x561494,_0x58c463[_0x91a4('0x4c')]);return _0x22c4f3[_0x91a4('0xb8')](_0x561494);}})[_0x91a4('0x2c')](function(_0x564a1c){if(_0x564a1c){_0x12ed8d=_0x564a1c['length'];if(!_0x58c463[_0x91a4('0x3f')][_0x91a4('0x44')]('nolimit')){_0x561494[_0x91a4('0x26')]=qs[_0x91a4('0x26')](_0x58c463['query']['limit']);_0x561494[_0x91a4('0x23')]=qs['offset'](_0x58c463[_0x91a4('0x3f')][_0x91a4('0x23')]);}return _0x22c4f3['getBlackLists'](_0x561494);}})[_0x91a4('0x2c')](function(_0x30e4bf){if(_0x30e4bf){return _0x30e4bf?{'count':_0x12ed8d,'rows':_0x30e4bf}:null;}})['then'](respondWithResult(_0x75f9ea,null))[_0x91a4('0x4f')](handleError(_0x75f9ea,null));};exports[_0x91a4('0xb9')]=function(_0x3d1fdf,_0x5aad9c,_0x3d3171){var _0x53aa9a,_0x5708c7;return db[_0x91a4('0x3b')][_0x91a4('0x34')]({'where':{'id':_0x3d1fdf[_0x91a4('0x51')]['id']}})[_0x91a4('0x2c')](handleEntityNotFound(_0x5aad9c,null))['then'](function(_0x246219){if(_0x246219){_0x5708c7=_0x246219;return _0x246219[_0x91a4('0xb9')](_0x3d1fdf[_0x91a4('0x55')][_0x91a4('0x82')],_[_0x91a4('0x60')](_0x3d1fdf[_0x91a4('0x55')],[_0x91a4('0x82'),'id'])||{});}return null;})[_0x91a4('0x9a')](function(_0x142df3){var _0x19a05a;_0x53aa9a=_0x142df3||[];var _0x15be35=[];if(_0x142df3){for(var _0x509309=0x0;_0x509309<_0x142df3[_0x91a4('0x52')];_0x509309+=0x1){var _0x42a1d3=_0x142df3[_0x509309]['get']({'plain':!![]});_0x19a05a=squel[_0x91a4('0xa4')]()['into']('cm_hopper_black')[_0x91a4('0xb5')]([_0x91a4('0xa9'),_0x91a4('0xa8'),'ListId',_0x91a4('0x67'),_0x91a4('0x62'),'updatedAt'],squel[_0x91a4('0x83')]()[_0x91a4('0x84')]('phone','phone')[_0x91a4('0x84')]('id','ContactId')[_0x91a4('0x84')](_0x42a1d3[_0x91a4('0xab')][_0x91a4('0x8d')](),_0x91a4('0xac'))[_0x91a4('0x84')](_0x3d1fdf[_0x91a4('0x51')]['id'][_0x91a4('0x8d')](),_0x91a4('0x67'))[_0x91a4('0x84')](_0x91a4('0xaa'),_0x91a4('0x62'))[_0x91a4('0x84')](_0x91a4('0xaa'),_0x91a4('0x61'))[_0x91a4('0x86')]('cm_contacts')[_0x91a4('0x47')](_0x91a4('0xae'))[_0x91a4('0x47')](_0x91a4('0xaf'),_0x42a1d3[_0x91a4('0xab')][_0x91a4('0x8d')]())['where'](_0x91a4('0xb0')))[_0x91a4('0x8d')]();_0x15be35[_0x91a4('0x8c')](db[_0x91a4('0x78')]['query'](_0x19a05a));}return BPromise[_0x91a4('0x91')](_0x15be35);}})[_0x91a4('0x2c')](function(){return _0x53aa9a;})[_0x91a4('0x2c')](respondWithResult(_0x5aad9c,null))[_0x91a4('0x4f')](handleError(_0x5aad9c,null));};exports[_0x91a4('0xba')]=function(_0x55f8af,_0x52f533,_0x595111){return db[_0x91a4('0x3b')][_0x91a4('0x34')]({'where':{'id':_0x55f8af[_0x91a4('0x51')]['id']}})[_0x91a4('0x2c')](handleEntityNotFound(_0x52f533,null))[_0x91a4('0x2c')](function(_0x39516c){if(_0x39516c){return _0x39516c[_0x91a4('0xba')](_0x55f8af['query']['ids']);}})[_0x91a4('0x2c')](function(_0x1891b9){if(_0x1891b9){return db[_0x91a4('0x6d')][_0x91a4('0x2d')]({'where':{'ListId':_0x55f8af['query'][_0x91a4('0x82')],'VoiceQueueId':_0x55f8af[_0x91a4('0x51')]['id']}})[_0x91a4('0x2c')](function(){return _0x1891b9;});}})[_0x91a4('0x2c')](respondWithStatusCode(_0x52f533,null))[_0x91a4('0x4f')](handleError(_0x52f533,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5367=['update','emit','hasOwnProperty','exports','../../mysqldb','setMaxListeners'];(function(_0x4c825d,_0x10ec2b){var _0x43de87=function(_0xcab4a3){while(--_0xcab4a3){_0x4c825d['push'](_0x4c825d['shift']());}};_0x43de87(++_0x10ec2b);}(_0x5367,0x64));var _0x7536=function(_0x3f05d1,_0x2e2bee){_0x3f05d1=_0x3f05d1-0x0;var _0x4a179b=_0x5367[_0x3f05d1];return _0x4a179b;};'use strict';var EventEmitter=require('events');var VoiceQueue=require(_0x7536('0x0'))['db']['VoiceQueue'];var VoiceQueueEvents=new EventEmitter();VoiceQueueEvents[_0x7536('0x1')](0x0);var events={'afterCreate':'save','afterUpdate':_0x7536('0x2'),'afterDestroy':'remove'};function emitEvent(_0x28e76b){return function(_0xc32f5c,_0xd4d3d,_0x386fd7){VoiceQueueEvents[_0x7536('0x3')](_0x28e76b+':'+_0xc32f5c['id'],_0xc32f5c);VoiceQueueEvents[_0x7536('0x3')](_0x28e76b,_0xc32f5c);_0x386fd7(null);};}for(var e in events){if(events[_0x7536('0x4')](e)){var event=events[e];VoiceQueue['hook'](e,emitEvent(event));}}module[_0x7536('0x5')]=VoiceQueueEvents;
\ No newline at end of file
+var _0x1fdb=['setMaxListeners','save','update','remove','emit','hasOwnProperty','hook','exports','events'];(function(_0x2bdfe6,_0x149413){var _0x594727=function(_0xc766d7){while(--_0xc766d7){_0x2bdfe6['push'](_0x2bdfe6['shift']());}};_0x594727(++_0x149413);}(_0x1fdb,0x1d3));var _0xb1fd=function(_0x2610f9,_0x1b0035){_0x2610f9=_0x2610f9-0x0;var _0x2f74ed=_0x1fdb[_0x2610f9];return _0x2f74ed;};'use strict';var EventEmitter=require(_0xb1fd('0x0'));var VoiceQueue=require('../../mysqldb')['db']['VoiceQueue'];var VoiceQueueEvents=new EventEmitter();VoiceQueueEvents[_0xb1fd('0x1')](0x0);var events={'afterCreate':_0xb1fd('0x2'),'afterUpdate':_0xb1fd('0x3'),'afterDestroy':_0xb1fd('0x4')};function emitEvent(_0x4490ea){return function(_0x29fd85,_0x4adcbf,_0x355c85){VoiceQueueEvents['emit'](_0x4490ea+':'+_0x29fd85['id'],_0x29fd85);VoiceQueueEvents[_0xb1fd('0x5')](_0x4490ea,_0x29fd85);_0x355c85(null);};}for(var e in events){if(events[_0xb1fd('0x6')](e)){var event=events[e];VoiceQueue[_0xb1fd('0x7')](e,emitEvent(event));}}module[_0xb1fd('0x8')]=VoiceQueueEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xedd9=['../../config/logger','api','moment','bluebird','request-promise','path','rimraf','./voiceQueue.attributes','exports','VoiceQueue','util'];(function(_0x8a29a7,_0x71a5bc){var _0x365de4=function(_0x3a2622){while(--_0x3a2622){_0x8a29a7['push'](_0x8a29a7['shift']());}};_0x365de4(++_0x71a5bc);}(_0xedd9,0xfc));var _0x9edd=function(_0x11b142,_0x30ce6a){_0x11b142=_0x11b142-0x0;var _0x510520=_0xedd9[_0x11b142];return _0x510520;};'use strict';var _=require('lodash');var util=require(_0x9edd('0x0'));var logger=require(_0x9edd('0x1'))(_0x9edd('0x2'));var moment=require(_0x9edd('0x3'));var BPromise=require(_0x9edd('0x4'));var rp=require(_0x9edd('0x5'));var fs=require('fs');var path=require(_0x9edd('0x6'));var rimraf=require(_0x9edd('0x7'));var config=require('../../config/environment');var attributes=require(_0x9edd('0x8'));module[_0x9edd('0x9')]=function(_0x268f9e,_0x34c1a7){return _0x268f9e['define'](_0x9edd('0xa'),attributes,{'tableName':'voice_queues','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x34e8=['voice_queues','lodash','util','../../config/logger','api','bluebird','request-promise','path','rimraf','../../config/environment','./voiceQueue.attributes','exports','VoiceQueue'];(function(_0x11d74d,_0x2c1875){var _0x4f020c=function(_0xc92c8f){while(--_0xc92c8f){_0x11d74d['push'](_0x11d74d['shift']());}};_0x4f020c(++_0x2c1875);}(_0x34e8,0x12c));var _0x834e=function(_0x45c601,_0x312ade){_0x45c601=_0x45c601-0x0;var _0x3eca35=_0x34e8[_0x45c601];return _0x3eca35;};'use strict';var _=require(_0x834e('0x0'));var util=require(_0x834e('0x1'));var logger=require(_0x834e('0x2'))(_0x834e('0x3'));var moment=require('moment');var BPromise=require(_0x834e('0x4'));var rp=require(_0x834e('0x5'));var fs=require('fs');var path=require(_0x834e('0x6'));var rimraf=require(_0x834e('0x7'));var config=require(_0x834e('0x8'));var attributes=require(_0x834e('0x9'));module[_0x834e('0xa')]=function(_0x4a2018,_0x858aa1){return _0x4a2018['define'](_0x834e('0xb'),attributes,{'tableName':_0x834e('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb8b4=['moment','bluebird','randomstring','ioredis','../../mysqldb','rpc','../../config/environment','client','http','defaults','redis','localhost','./voiceQueue.socket','register','then','info','VoiceQueue,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','GetVoiceQueue','VoiceQueue','options','where','attributes','limit','include','map','model','ShowVoiceQueue','find','raw','catch','lodash','util'];(function(_0x32dd23,_0x531778){var _0x1f611e=function(_0xf3172a){while(--_0xf3172a){_0x32dd23['push'](_0x32dd23['shift']());}};_0x1f611e(++_0x531778);}(_0xb8b4,0x17a));var _0x4b8b=function(_0x4f9e4f,_0x540a45){_0x4f9e4f=_0x4f9e4f-0x0;var _0x5c66d5=_0xb8b4[_0x4f9e4f];return _0x5c66d5;};'use strict';var _=require(_0x4b8b('0x0'));var util=require(_0x4b8b('0x1'));var moment=require(_0x4b8b('0x2'));var BPromise=require(_0x4b8b('0x3'));var rs=require(_0x4b8b('0x4'));var fs=require('fs');var Redis=require(_0x4b8b('0x5'));var db=require(_0x4b8b('0x6'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0x4b8b('0x7'));var config=require(_0x4b8b('0x8'));var jayson=require('jayson/promise');var client=jayson[_0x4b8b('0x9')][_0x4b8b('0xa')]({'port':0x232a});config['redis']=_[_0x4b8b('0xb')](config[_0x4b8b('0xc')],{'host':_0x4b8b('0xd'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x4b8b('0xc')]));require(_0x4b8b('0xe'))[_0x4b8b('0xf')](socket);function respondWithRpcPromise(_0x55d708,_0x5e6580,_0x465acb){return new BPromise(function(_0x1c743d,_0x9b0f9c){return client['request'](_0x55d708,_0x465acb)[_0x4b8b('0x10')](function(_0x3c1615){logger[_0x4b8b('0x11')](_0x4b8b('0x12'),_0x5e6580,_0x4b8b('0x13'));logger[_0x4b8b('0x14')]('VoiceQueue,\x20%s,\x20%s,\x20%s',_0x5e6580,_0x4b8b('0x13'),JSON[_0x4b8b('0x15')](_0x3c1615));if(_0x3c1615[_0x4b8b('0x16')]){if(_0x3c1615[_0x4b8b('0x16')][_0x4b8b('0x17')]===0x1f4){logger[_0x4b8b('0x16')](_0x4b8b('0x12'),_0x5e6580,_0x3c1615[_0x4b8b('0x16')][_0x4b8b('0x18')]);return _0x9b0f9c(_0x3c1615[_0x4b8b('0x16')][_0x4b8b('0x18')]);}logger['error'](_0x4b8b('0x12'),_0x5e6580,_0x3c1615[_0x4b8b('0x16')][_0x4b8b('0x18')]);return _0x1c743d(_0x3c1615[_0x4b8b('0x16')][_0x4b8b('0x18')]);}else{logger[_0x4b8b('0x11')](_0x4b8b('0x12'),_0x5e6580,_0x4b8b('0x13'));_0x1c743d(_0x3c1615['result'][_0x4b8b('0x18')]);}})['catch'](function(_0x164bee){logger[_0x4b8b('0x16')](_0x4b8b('0x12'),_0x5e6580,_0x164bee);_0x9b0f9c(_0x164bee);});});}exports[_0x4b8b('0x19')]=function(_0x3065d1){var _0x5bfaa7=this;return new Promise(function(_0x36df32,_0x50c9e4){return db[_0x4b8b('0x1a')]['findAll']({'raw':_0x3065d1['options']?_0x3065d1[_0x4b8b('0x1b')]['raw']===undefined?!![]:![]:!![],'where':_0x3065d1[_0x4b8b('0x1b')]?_0x3065d1[_0x4b8b('0x1b')][_0x4b8b('0x1c')]||null:null,'attributes':_0x3065d1[_0x4b8b('0x1b')]?_0x3065d1[_0x4b8b('0x1b')][_0x4b8b('0x1d')]||null:null,'limit':_0x3065d1['options']?_0x3065d1[_0x4b8b('0x1b')][_0x4b8b('0x1e')]||null:null,'include':_0x3065d1[_0x4b8b('0x1b')]?_0x3065d1['options'][_0x4b8b('0x1f')]?_[_0x4b8b('0x20')](_0x3065d1[_0x4b8b('0x1b')][_0x4b8b('0x1f')],function(_0x5d2b66){return{'model':db[_0x5d2b66[_0x4b8b('0x21')]],'as':_0x5d2b66['as'],'attributes':_0x5d2b66['attributes'],'include':_0x5d2b66[_0x4b8b('0x1f')]?_['map'](_0x5d2b66[_0x4b8b('0x1f')],function(_0x5527e7){return{'model':db[_0x5527e7['model']],'as':_0x5527e7['as'],'attributes':_0x5527e7[_0x4b8b('0x1d')],'include':_0x5527e7[_0x4b8b('0x1f')]?_[_0x4b8b('0x20')](_0x5527e7[_0x4b8b('0x1f')],function(_0x2c50a0){return{'model':db[_0x2c50a0[_0x4b8b('0x21')]],'as':_0x2c50a0['as'],'attributes':_0x2c50a0[_0x4b8b('0x1d')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x5cdd57){logger[_0x4b8b('0x11')](_0x4b8b('0x19'),_0x3065d1);logger['debug'](_0x4b8b('0x19'),_0x3065d1,JSON[_0x4b8b('0x15')](_0x5cdd57));_0x36df32(_0x5cdd57);})['catch'](function(_0x122cdc){logger[_0x4b8b('0x16')](_0x4b8b('0x19'),_0x122cdc[_0x4b8b('0x18')],_0x3065d1);_0x50c9e4(_0x5bfaa7[_0x4b8b('0x16')](0x1f4,_0x122cdc[_0x4b8b('0x18')]));});});};exports[_0x4b8b('0x22')]=function(_0x5e442c){var _0x2133aa=this;return new Promise(function(_0x364771,_0x45f62f){return db[_0x4b8b('0x1a')][_0x4b8b('0x23')]({'raw':_0x5e442c[_0x4b8b('0x1b')]?_0x5e442c[_0x4b8b('0x1b')][_0x4b8b('0x24')]===undefined?!![]:![]:!![],'where':_0x5e442c['options']?_0x5e442c[_0x4b8b('0x1b')][_0x4b8b('0x1c')]||null:null,'attributes':_0x5e442c[_0x4b8b('0x1b')]?_0x5e442c[_0x4b8b('0x1b')][_0x4b8b('0x1d')]||null:null,'include':_0x5e442c['options']?_0x5e442c[_0x4b8b('0x1b')]['include']?_[_0x4b8b('0x20')](_0x5e442c['options']['include'],function(_0x1f40e8){return{'model':db[_0x1f40e8[_0x4b8b('0x21')]],'as':_0x1f40e8['as'],'attributes':_0x1f40e8[_0x4b8b('0x1d')],'include':_0x1f40e8[_0x4b8b('0x1f')]?_['map'](_0x1f40e8[_0x4b8b('0x1f')],function(_0x27f172){return{'model':db[_0x27f172[_0x4b8b('0x21')]],'as':_0x27f172['as'],'attributes':_0x27f172[_0x4b8b('0x1d')],'include':_0x27f172['include']?_['map'](_0x27f172[_0x4b8b('0x1f')],function(_0x1ba738){return{'model':db[_0x1ba738[_0x4b8b('0x21')]],'as':_0x1ba738['as'],'attributes':_0x1ba738[_0x4b8b('0x1d')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x4486ad){logger[_0x4b8b('0x11')](_0x4b8b('0x22'),_0x5e442c);logger[_0x4b8b('0x14')](_0x4b8b('0x22'),_0x5e442c,JSON['stringify'](_0x4486ad));_0x364771(_0x4486ad);})[_0x4b8b('0x25')](function(_0x362971){logger['error'](_0x4b8b('0x22'),_0x362971['message'],_0x5e442c);_0x45f62f(_0x2133aa['error'](0x1f4,_0x362971['message']));});});};
\ No newline at end of file
+var _0xfa1d=['moment','randomstring','ioredis','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','defaults','redis','localhost','socket.io-emitter','./voiceQueue.socket','register','request','then','info','debug','request\x20sent','stringify','error','message','VoiceQueue,\x20%s,\x20%s','result','catch','GetVoiceQueue','VoiceQueue','findAll','raw','options','include','model','attributes','map','ShowVoiceQueue','find','util'];(function(_0x3947c9,_0x4d6c97){var _0x2e7871=function(_0x1236cc){while(--_0x1236cc){_0x3947c9['push'](_0x3947c9['shift']());}};_0x2e7871(++_0x4d6c97);}(_0xfa1d,0x1c7));var _0xdfa1=function(_0x1b745b,_0x3e2d40){_0x1b745b=_0x1b745b-0x0;var _0x120a9d=_0xfa1d[_0x1b745b];return _0x120a9d;};'use strict';var _=require('lodash');var util=require(_0xdfa1('0x0'));var moment=require(_0xdfa1('0x1'));var BPromise=require('bluebird');var rs=require(_0xdfa1('0x2'));var fs=require('fs');var Redis=require(_0xdfa1('0x3'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0xdfa1('0x4'))(_0xdfa1('0x5'));var config=require(_0xdfa1('0x6'));var jayson=require(_0xdfa1('0x7'));var client=jayson[_0xdfa1('0x8')][_0xdfa1('0x9')]({'port':0x232a});config['redis']=_[_0xdfa1('0xa')](config[_0xdfa1('0xb')],{'host':_0xdfa1('0xc'),'port':0x18eb});var socket=require(_0xdfa1('0xd'))(new Redis(config[_0xdfa1('0xb')]));require(_0xdfa1('0xe'))[_0xdfa1('0xf')](socket);function respondWithRpcPromise(_0x1b8a24,_0x511ac1,_0x45b45b){return new BPromise(function(_0x1292e7,_0x1b8fda){return client[_0xdfa1('0x10')](_0x1b8a24,_0x45b45b)[_0xdfa1('0x11')](function(_0x2c1742){logger[_0xdfa1('0x12')]('VoiceQueue,\x20%s,\x20%s',_0x511ac1,'request\x20sent');logger[_0xdfa1('0x13')]('VoiceQueue,\x20%s,\x20%s,\x20%s',_0x511ac1,_0xdfa1('0x14'),JSON[_0xdfa1('0x15')](_0x2c1742));if(_0x2c1742[_0xdfa1('0x16')]){if(_0x2c1742[_0xdfa1('0x16')]['code']===0x1f4){logger[_0xdfa1('0x16')]('VoiceQueue,\x20%s,\x20%s',_0x511ac1,_0x2c1742[_0xdfa1('0x16')][_0xdfa1('0x17')]);return _0x1b8fda(_0x2c1742['error'][_0xdfa1('0x17')]);}logger['error']('VoiceQueue,\x20%s,\x20%s',_0x511ac1,_0x2c1742[_0xdfa1('0x16')][_0xdfa1('0x17')]);return _0x1292e7(_0x2c1742[_0xdfa1('0x16')][_0xdfa1('0x17')]);}else{logger[_0xdfa1('0x12')](_0xdfa1('0x18'),_0x511ac1,_0xdfa1('0x14'));_0x1292e7(_0x2c1742[_0xdfa1('0x19')][_0xdfa1('0x17')]);}})[_0xdfa1('0x1a')](function(_0x2f3fd1){logger[_0xdfa1('0x16')]('VoiceQueue,\x20%s,\x20%s',_0x511ac1,_0x2f3fd1);_0x1b8fda(_0x2f3fd1);});});}exports[_0xdfa1('0x1b')]=function(_0x174969){var _0x47c495=this;return new Promise(function(_0x38e30d,_0x4f2e24){return db[_0xdfa1('0x1c')][_0xdfa1('0x1d')]({'raw':_0x174969['options']?_0x174969['options'][_0xdfa1('0x1e')]===undefined?!![]:![]:!![],'where':_0x174969[_0xdfa1('0x1f')]?_0x174969[_0xdfa1('0x1f')]['where']||null:null,'attributes':_0x174969[_0xdfa1('0x1f')]?_0x174969[_0xdfa1('0x1f')]['attributes']||null:null,'limit':_0x174969[_0xdfa1('0x1f')]?_0x174969[_0xdfa1('0x1f')]['limit']||null:null,'include':_0x174969[_0xdfa1('0x1f')]?_0x174969[_0xdfa1('0x1f')][_0xdfa1('0x20')]?_['map'](_0x174969['options'][_0xdfa1('0x20')],function(_0x543b08){return{'model':db[_0x543b08[_0xdfa1('0x21')]],'as':_0x543b08['as'],'attributes':_0x543b08[_0xdfa1('0x22')],'include':_0x543b08[_0xdfa1('0x20')]?_[_0xdfa1('0x23')](_0x543b08[_0xdfa1('0x20')],function(_0x2ae303){return{'model':db[_0x2ae303[_0xdfa1('0x21')]],'as':_0x2ae303['as'],'attributes':_0x2ae303[_0xdfa1('0x22')],'include':_0x2ae303[_0xdfa1('0x20')]?_[_0xdfa1('0x23')](_0x2ae303[_0xdfa1('0x20')],function(_0x45c298){return{'model':db[_0x45c298['model']],'as':_0x45c298['as'],'attributes':_0x45c298['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x2055a3){logger[_0xdfa1('0x12')](_0xdfa1('0x1b'),_0x174969);logger[_0xdfa1('0x13')]('GetVoiceQueue',_0x174969,JSON[_0xdfa1('0x15')](_0x2055a3));_0x38e30d(_0x2055a3);})[_0xdfa1('0x1a')](function(_0x4f1b59){logger[_0xdfa1('0x16')](_0xdfa1('0x1b'),_0x4f1b59[_0xdfa1('0x17')],_0x174969);_0x4f2e24(_0x47c495[_0xdfa1('0x16')](0x1f4,_0x4f1b59['message']));});});};exports[_0xdfa1('0x24')]=function(_0x164dd2){var _0x4b50fe=this;return new Promise(function(_0x23b4d4,_0x290104){return db[_0xdfa1('0x1c')][_0xdfa1('0x25')]({'raw':_0x164dd2[_0xdfa1('0x1f')]?_0x164dd2[_0xdfa1('0x1f')]['raw']===undefined?!![]:![]:!![],'where':_0x164dd2[_0xdfa1('0x1f')]?_0x164dd2[_0xdfa1('0x1f')]['where']||null:null,'attributes':_0x164dd2[_0xdfa1('0x1f')]?_0x164dd2['options'][_0xdfa1('0x22')]||null:null,'include':_0x164dd2[_0xdfa1('0x1f')]?_0x164dd2[_0xdfa1('0x1f')]['include']?_[_0xdfa1('0x23')](_0x164dd2[_0xdfa1('0x1f')]['include'],function(_0x532d75){return{'model':db[_0x532d75['model']],'as':_0x532d75['as'],'attributes':_0x532d75['attributes'],'include':_0x532d75[_0xdfa1('0x20')]?_[_0xdfa1('0x23')](_0x532d75[_0xdfa1('0x20')],function(_0x2432fc){return{'model':db[_0x2432fc[_0xdfa1('0x21')]],'as':_0x2432fc['as'],'attributes':_0x2432fc[_0xdfa1('0x22')],'include':_0x2432fc[_0xdfa1('0x20')]?_['map'](_0x2432fc['include'],function(_0x1b172d){return{'model':db[_0x1b172d[_0xdfa1('0x21')]],'as':_0x1b172d['as'],'attributes':_0x1b172d[_0xdfa1('0x22')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x3792c6){logger[_0xdfa1('0x12')](_0xdfa1('0x24'),_0x164dd2);logger[_0xdfa1('0x13')](_0xdfa1('0x24'),_0x164dd2,JSON[_0xdfa1('0x15')](_0x3792c6));_0x23b4d4(_0x3792c6);})['catch'](function(_0x3bf56d){logger['error']('ShowVoiceQueue',_0x3bf56d[_0xdfa1('0x17')],_0x164dd2);_0x290104(_0x4b50fe['error'](0x1f4,_0x3bf56d[_0xdfa1('0x17')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x46c4=['length','voiceQueue:','./voiceQueue.events','save','remove','emit','removeListener','register'];(function(_0x456fb1,_0x859a1d){var _0x4083d6=function(_0xe1d0f2){while(--_0xe1d0f2){_0x456fb1['push'](_0x456fb1['shift']());}};_0x4083d6(++_0x859a1d);}(_0x46c4,0x1b2));var _0x446c=function(_0x24db8e,_0x5d806b){_0x24db8e=_0x24db8e-0x0;var _0x43abc6=_0x46c4[_0x24db8e];return _0x43abc6;};'use strict';var VoiceQueueEvents=require(_0x446c('0x0'));var events=[_0x446c('0x1'),_0x446c('0x2'),'update'];function createListener(_0x5b8fe8,_0x195758){return function(_0x53f86c){_0x195758[_0x446c('0x3')](_0x5b8fe8,_0x53f86c);};}function removeListener(_0x28b94e,_0xcf72c7){return function(){VoiceQueueEvents[_0x446c('0x4')](_0x28b94e,_0xcf72c7);};}exports[_0x446c('0x5')]=function(_0x5648db){for(var _0x4ae6c9=0x0,_0x5592f0=events[_0x446c('0x6')];_0x4ae6c9<_0x5592f0;_0x4ae6c9++){var _0x16d411=events[_0x4ae6c9];var _0x3c8109=createListener(_0x446c('0x7')+_0x16d411,_0x5648db);VoiceQueueEvents['on'](_0x16d411,_0x3c8109);}};
\ No newline at end of file
+var _0x8441=['voiceQueue:','./voiceQueue.events','save','remove','update','emit','removeListener','register','length'];(function(_0x3dd2aa,_0x12aaff){var _0x76e71a=function(_0x522e73){while(--_0x522e73){_0x3dd2aa['push'](_0x3dd2aa['shift']());}};_0x76e71a(++_0x12aaff);}(_0x8441,0x169));var _0x1844=function(_0x3a07d7,_0x310017){_0x3a07d7=_0x3a07d7-0x0;var _0x524afb=_0x8441[_0x3a07d7];return _0x524afb;};'use strict';var VoiceQueueEvents=require(_0x1844('0x0'));var events=[_0x1844('0x1'),_0x1844('0x2'),_0x1844('0x3')];function createListener(_0x14202f,_0x4c8db5){return function(_0x507d97){_0x4c8db5[_0x1844('0x4')](_0x14202f,_0x507d97);};}function removeListener(_0x2f7892,_0x2c6293){return function(){VoiceQueueEvents[_0x1844('0x5')](_0x2f7892,_0x2c6293);};}exports[_0x1844('0x6')]=function(_0x4c3e1c){for(var _0x505575=0x0,_0x362826=events[_0x1844('0x7')];_0x505575<_0x362826;_0x505575++){var _0x4e5273=events[_0x505575];var _0x266a47=createListener(_0x1844('0x8')+_0x4e5273,_0x4c3e1c);VoiceQueueEvents['on'](_0x4e5273,_0x266a47);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2fe6=['util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./voiceQueueReport.controller','isAuthenticated','index','get','/describe','/index','getVoiceQueuesReport','/:id','show','post','create','update','exports','multer'];(function(_0x5ccae7,_0x33fb5e){var _0x4583ff=function(_0x3c1aaa){while(--_0x3c1aaa){_0x5ccae7['push'](_0x5ccae7['shift']());}};_0x4583ff(++_0x33fb5e);}(_0x2fe6,0x1cb));var _0x62fe=function(_0x22d692,_0x4e388c){_0x22d692=_0x22d692-0x0;var _0x3c15cc=_0x2fe6[_0x22d692];return _0x3c15cc;};'use strict';var multer=require(_0x62fe('0x0'));var util=require(_0x62fe('0x1'));var path=require(_0x62fe('0x2'));var timeout=require(_0x62fe('0x3'));var express=require(_0x62fe('0x4'));var router=express[_0x62fe('0x5')]();var fs_extra=require(_0x62fe('0x6'));var auth=require(_0x62fe('0x7'));var interaction=require(_0x62fe('0x8'));var config=require(_0x62fe('0x9'));var controller=require(_0x62fe('0xa'));router['get']('/',auth[_0x62fe('0xb')](),controller[_0x62fe('0xc')]);router[_0x62fe('0xd')](_0x62fe('0xe'),auth['isAuthenticated'](),controller['describe']);router[_0x62fe('0xd')](_0x62fe('0xf'),auth[_0x62fe('0xb')](),controller[_0x62fe('0x10')]);router['get'](_0x62fe('0x11'),auth[_0x62fe('0xb')](),controller[_0x62fe('0x12')]);router[_0x62fe('0x13')]('/',auth[_0x62fe('0xb')](),controller[_0x62fe('0x14')]);router['put'](_0x62fe('0x11'),auth['isAuthenticated'](),controller[_0x62fe('0x15')]);router['delete'](_0x62fe('0x11'),auth[_0x62fe('0xb')](),controller['destroy']);module[_0x62fe('0x16')]=router;
\ No newline at end of file
+var _0xd97b=['multer','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./voiceQueueReport.controller','get','index','/describe','isAuthenticated','describe','/index','getVoiceQueuesReport','show','post','create','put','update','delete','exports'];(function(_0x725b8e,_0xc22b48){var _0x43ac45=function(_0x46bb4a){while(--_0x46bb4a){_0x725b8e['push'](_0x725b8e['shift']());}};_0x43ac45(++_0xc22b48);}(_0xd97b,0x1e4));var _0xbd97=function(_0x21a936,_0xb0790c){_0x21a936=_0x21a936-0x0;var _0x5746c8=_0xd97b[_0x21a936];return _0x5746c8;};'use strict';var multer=require(_0xbd97('0x0'));var util=require('util');var path=require('path');var timeout=require('connect-timeout');var express=require(_0xbd97('0x1'));var router=express[_0xbd97('0x2')]();var fs_extra=require(_0xbd97('0x3'));var auth=require(_0xbd97('0x4'));var interaction=require(_0xbd97('0x5'));var config=require(_0xbd97('0x6'));var controller=require(_0xbd97('0x7'));router[_0xbd97('0x8')]('/',auth['isAuthenticated'](),controller[_0xbd97('0x9')]);router[_0xbd97('0x8')](_0xbd97('0xa'),auth[_0xbd97('0xb')](),controller[_0xbd97('0xc')]);router[_0xbd97('0x8')](_0xbd97('0xd'),auth[_0xbd97('0xb')](),controller[_0xbd97('0xe')]);router[_0xbd97('0x8')]('/:id',auth[_0xbd97('0xb')](),controller[_0xbd97('0xf')]);router[_0xbd97('0x10')]('/',auth[_0xbd97('0xb')](),controller[_0xbd97('0x11')]);router[_0xbd97('0x12')]('/:id',auth[_0xbd97('0xb')](),controller[_0xbd97('0x13')]);router[_0xbd97('0x14')]('/:id',auth['isAuthenticated'](),controller['destroy']);module[_0xbd97('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6f1c=['queuecallerleaveAt','holdtime','INTEGER','BOOLEAN','COMPLETEDBYCALLER,\x20COMPLETEDBYAGENT,\x20FORWARDTRANFER,\x20BLINDTRANSFER,\x20ATTENDEDTRANSFER,\x20EXITWITHKEY,\x20TIMEOUT','FORWARD,\x20BLIND,\x20ATTENDED','sequelize','moment','exports','STRING','DATE','queuecallerjoinAt','format','YYYY-MM-DD\x20HH:mm:ss','diff','setDataValue'];(function(_0x12dfac,_0x1b7456){var _0x2df79f=function(_0x28b253){while(--_0x28b253){_0x12dfac['push'](_0x12dfac['shift']());}};_0x2df79f(++_0x1b7456);}(_0x6f1c,0x1d6));var _0xc6f1=function(_0x669e58,_0x68ffdf){_0x669e58=_0x669e58-0x0;var _0x3f0834=_0x6f1c[_0x669e58];return _0x3f0834;};'use strict';var Sequelize=require(_0xc6f1('0x0'));var moment=require(_0xc6f1('0x1'));module[_0xc6f1('0x2')]={'type':{'type':Sequelize[_0xc6f1('0x3')]},'uniqueid':{'type':Sequelize[_0xc6f1('0x3')]},'calleridnum':{'type':Sequelize[_0xc6f1('0x3')]},'calleridname':{'type':Sequelize[_0xc6f1('0x3')]},'queue':{'type':Sequelize[_0xc6f1('0x3')]},'queuecallerjoinAt':{'type':Sequelize[_0xc6f1('0x4')]},'queuecallerleaveAt':{'type':Sequelize[_0xc6f1('0x4')],'set':function(_0x335341){var _0x570f8a=moment(_0x335341);var _0x315874=moment(this['getDataValue'](_0xc6f1('0x5')))[_0xc6f1('0x6')](_0xc6f1('0x7'));var _0x52f1c0=_0x570f8a[_0xc6f1('0x8')](_0x315874,'seconds');this[_0xc6f1('0x9')](_0xc6f1('0xa'),_0x335341);this['setDataValue'](_0xc6f1('0xb'),_0x52f1c0||null);}},'position':{'type':Sequelize[_0xc6f1('0xc')]},'count':{'type':Sequelize[_0xc6f1('0xc')]},'queuecallerabandon':{'type':Sequelize[_0xc6f1('0xd')],'defaultValue':![]},'queuecallerabandonAt':{'type':Sequelize[_0xc6f1('0x4')]},'queuecallercomplete':{'type':Sequelize[_0xc6f1('0xd')],'defaultValue':![]},'queuecallercompleteAt':{'type':Sequelize[_0xc6f1('0x4')]},'queuecallerexit':{'type':Sequelize[_0xc6f1('0xd')],'defaultValue':![]},'queuecallerexitAt':{'type':Sequelize[_0xc6f1('0x4')]},'queuecallerexitreason':{'type':Sequelize[_0xc6f1('0x3')],'comment':_0xc6f1('0xe')},'originalposition':{'type':Sequelize[_0xc6f1('0xc')]},'channel':{'type':Sequelize[_0xc6f1('0x3')]},'connectedlinenum':{'type':Sequelize[_0xc6f1('0x3')]},'connectedlinename':{'type':Sequelize['STRING']},'accountcode':{'type':Sequelize[_0xc6f1('0x3')]},'context':{'type':Sequelize[_0xc6f1('0x3')]},'exten':{'type':Sequelize['STRING']},'priority':{'type':Sequelize['STRING']},'holdtime':{'type':Sequelize[_0xc6f1('0xc')]},'mohtime':{'type':Sequelize[_0xc6f1('0xc')],'defaultValue':0x0},'assigned':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'lastAssignedTo':{'type':Sequelize['STRING']},'transfer':{'type':Sequelize[_0xc6f1('0xd')],'defaultValue':![]},'transfertype':{'type':Sequelize['STRING'],'comment':_0xc6f1('0xf')},'transferexten':{'type':Sequelize['STRING']},'transferuniqueid':{'type':Sequelize[_0xc6f1('0x3')]},'disposition':{'type':Sequelize[_0xc6f1('0x3')]},'secondDisposition':{'type':Sequelize[_0xc6f1('0x3')]},'thirdDisposition':{'type':Sequelize[_0xc6f1('0x3')]},'queuecallerenterreason':{'type':Sequelize[_0xc6f1('0xc')],'defaultValue':0x0}};
\ No newline at end of file
+var _0xc8ab=['moment','STRING','queuecallerjoinAt','format','YYYY-MM-DD\x20HH:mm:ss','diff','seconds','setDataValue','queuecallerleaveAt','INTEGER','BOOLEAN','DATE','COMPLETEDBYCALLER,\x20COMPLETEDBYAGENT,\x20FORWARDTRANFER,\x20BLINDTRANSFER,\x20ATTENDEDTRANSFER,\x20EXITWITHKEY,\x20TIMEOUT','FORWARD,\x20BLIND,\x20ATTENDED'];(function(_0x404afb,_0x6e2ab2){var _0x19b697=function(_0x5bca8f){while(--_0x5bca8f){_0x404afb['push'](_0x404afb['shift']());}};_0x19b697(++_0x6e2ab2);}(_0xc8ab,0x10a));var _0xbc8a=function(_0x444ba8,_0x375704){_0x444ba8=_0x444ba8-0x0;var _0x325f47=_0xc8ab[_0x444ba8];return _0x325f47;};'use strict';var Sequelize=require('sequelize');var moment=require(_0xbc8a('0x0'));module['exports']={'type':{'type':Sequelize[_0xbc8a('0x1')]},'uniqueid':{'type':Sequelize[_0xbc8a('0x1')]},'calleridnum':{'type':Sequelize[_0xbc8a('0x1')]},'calleridname':{'type':Sequelize[_0xbc8a('0x1')]},'queue':{'type':Sequelize[_0xbc8a('0x1')]},'queuecallerjoinAt':{'type':Sequelize['DATE']},'queuecallerleaveAt':{'type':Sequelize['DATE'],'set':function(_0xc5d90f){var _0x16a027=moment(_0xc5d90f);var _0x22400e=moment(this['getDataValue'](_0xbc8a('0x2')))[_0xbc8a('0x3')](_0xbc8a('0x4'));var _0x12ee09=_0x16a027[_0xbc8a('0x5')](_0x22400e,_0xbc8a('0x6'));this[_0xbc8a('0x7')](_0xbc8a('0x8'),_0xc5d90f);this[_0xbc8a('0x7')]('holdtime',_0x12ee09||null);}},'position':{'type':Sequelize[_0xbc8a('0x9')]},'count':{'type':Sequelize[_0xbc8a('0x9')]},'queuecallerabandon':{'type':Sequelize[_0xbc8a('0xa')],'defaultValue':![]},'queuecallerabandonAt':{'type':Sequelize[_0xbc8a('0xb')]},'queuecallercomplete':{'type':Sequelize[_0xbc8a('0xa')],'defaultValue':![]},'queuecallercompleteAt':{'type':Sequelize[_0xbc8a('0xb')]},'queuecallerexit':{'type':Sequelize[_0xbc8a('0xa')],'defaultValue':![]},'queuecallerexitAt':{'type':Sequelize['DATE']},'queuecallerexitreason':{'type':Sequelize[_0xbc8a('0x1')],'comment':_0xbc8a('0xc')},'originalposition':{'type':Sequelize[_0xbc8a('0x9')]},'channel':{'type':Sequelize[_0xbc8a('0x1')]},'connectedlinenum':{'type':Sequelize[_0xbc8a('0x1')]},'connectedlinename':{'type':Sequelize[_0xbc8a('0x1')]},'accountcode':{'type':Sequelize['STRING']},'context':{'type':Sequelize['STRING']},'exten':{'type':Sequelize[_0xbc8a('0x1')]},'priority':{'type':Sequelize['STRING']},'holdtime':{'type':Sequelize['INTEGER']},'mohtime':{'type':Sequelize[_0xbc8a('0x9')],'defaultValue':0x0},'assigned':{'type':Sequelize[_0xbc8a('0xa')],'defaultValue':![]},'lastAssignedTo':{'type':Sequelize[_0xbc8a('0x1')]},'transfer':{'type':Sequelize[_0xbc8a('0xa')],'defaultValue':![]},'transfertype':{'type':Sequelize['STRING'],'comment':_0xbc8a('0xd')},'transferexten':{'type':Sequelize['STRING']},'transferuniqueid':{'type':Sequelize[_0xbc8a('0x1')]},'disposition':{'type':Sequelize[_0xbc8a('0x1')]},'secondDisposition':{'type':Sequelize[_0xbc8a('0x1')]},'thirdDisposition':{'type':Sequelize[_0xbc8a('0x1')]},'queuecallerenterreason':{'type':Sequelize[_0xbc8a('0x9')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbfea=['lodash','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','./voiceQueueReport.socket','register','sendStatus','status','end','json','offset','limit','count','set','apply','save','update','then','error','stack','send','VoiceQueueReport','rawAttributes','fieldName','type','model','map','keys','query','attributes','intersection','fields','hasOwnProperty','nolimit','order','where','filters','pick','merge','VIRTUAL','name','filter','options','includeAll','include','findAll','rows','catch','show','params','length','find','create','body','destroy','describe','getVoiceQueuesReport','sort','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra'];(function(_0x4d2f00,_0x4e94d5){var _0x2d7b7f=function(_0x18fa08){while(--_0x18fa08){_0x4d2f00['push'](_0x4d2f00['shift']());}};_0x2d7b7f(++_0x4e94d5);}(_0xbfea,0x193));var _0xabfe=function(_0xcc185b,_0x2c4d73){_0xcc185b=_0xcc185b-0x0;var _0x4168ff=_0xbfea[_0xcc185b];return _0x4168ff;};'use strict';var emlformat=require(_0xabfe('0x0'));var rimraf=require(_0xabfe('0x1'));var zipdir=require(_0xabfe('0x2'));var jsonpatch=require(_0xabfe('0x3'));var rp=require('request-promise');var moment=require(_0xabfe('0x4'));var BPromise=require(_0xabfe('0x5'));var Mustache=require(_0xabfe('0x6'));var util=require(_0xabfe('0x7'));var path=require(_0xabfe('0x8'));var sox=require('sox');var csv=require(_0xabfe('0x9'));var ejs=require(_0xabfe('0xa'));var fs=require('fs');var fs_extra=require(_0xabfe('0xb'));var _=require(_0xabfe('0xc'));var squel=require('squel');var crypto=require(_0xabfe('0xd'));var jsforce=require('jsforce');var deskjs=require(_0xabfe('0xe'));var toCsv=require(_0xabfe('0x9'));var querystring=require(_0xabfe('0xf'));var Papa=require(_0xabfe('0x10'));var Redis=require(_0xabfe('0x11'));var authService=require(_0xabfe('0x12'));var qs=require(_0xabfe('0x13'));var as=require(_0xabfe('0x14'));var hardwareService=require(_0xabfe('0x15'));var logger=require(_0xabfe('0x16'))(_0xabfe('0x17'));var utils=require(_0xabfe('0x18'));var config=require(_0xabfe('0x19'));var licenseUtil=require(_0xabfe('0x1a'));var db=require(_0xabfe('0x1b'))['db'];config[_0xabfe('0x1c')]=_['defaults'](config[_0xabfe('0x1c')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xabfe('0x1c')]));require(_0xabfe('0x1d'))[_0xabfe('0x1e')](socket);function respondWithStatusCode(_0x106c70,_0x3abf79){_0x3abf79=_0x3abf79||0xcc;return function(_0xcccc73){if(_0xcccc73){return _0x106c70[_0xabfe('0x1f')](_0x3abf79);}return _0x106c70[_0xabfe('0x20')](_0x3abf79)[_0xabfe('0x21')]();};}function respondWithResult(_0xf2a4c2,_0x5e2de6){_0x5e2de6=_0x5e2de6||0xc8;return function(_0x112fbc){if(_0x112fbc){return _0xf2a4c2[_0xabfe('0x20')](_0x5e2de6)[_0xabfe('0x22')](_0x112fbc);}};}function respondWithFilteredResult(_0x50a33c,_0x1d2268){return function(_0x57b488){if(_0x57b488){var _0x53fa6c=typeof _0x1d2268[_0xabfe('0x23')]==='undefined'&&typeof _0x1d2268[_0xabfe('0x24')]==='undefined';var _0x56df82=_0x57b488[_0xabfe('0x25')];var _0xcec8c5=_0x53fa6c?0x0:_0x1d2268['offset'];var _0x52db01=_0x53fa6c?_0x57b488['count']:_0x1d2268[_0xabfe('0x23')]+_0x1d2268[_0xabfe('0x24')];var _0x4f1418;if(_0x52db01>=_0x56df82){_0x52db01=_0x56df82;_0x4f1418=0xc8;}else{_0x4f1418=0xce;}_0x50a33c[_0xabfe('0x20')](_0x4f1418);return _0x50a33c[_0xabfe('0x26')]('Content-Range',_0xcec8c5+'-'+_0x52db01+'/'+_0x56df82)[_0xabfe('0x22')](_0x57b488);}return null;};}function patchUpdates(_0x1c7d74){return function(_0x45f700){try{jsonpatch[_0xabfe('0x27')](_0x45f700,_0x1c7d74,!![]);}catch(_0x12d4e9){return BPromise['reject'](_0x12d4e9);}return _0x45f700[_0xabfe('0x28')]();};}function saveUpdates(_0x35e724,_0x1864f1){return function(_0x1ceefc){if(_0x1ceefc){return _0x1ceefc[_0xabfe('0x29')](_0x35e724)[_0xabfe('0x2a')](function(_0x118416){return _0x118416;});}return null;};}function removeEntity(_0x184f89,_0x372563){return function(_0x3d3b36){if(_0x3d3b36){return _0x3d3b36['destroy']()[_0xabfe('0x2a')](function(){_0x184f89[_0xabfe('0x20')](0xcc)['end']();});}};}function handleEntityNotFound(_0x3a5ba3,_0x5dd2df){return function(_0x577d09){if(!_0x577d09){_0x3a5ba3[_0xabfe('0x1f')](0x194);}return _0x577d09;};}function handleError(_0x6ce2ef,_0x532db5){_0x532db5=_0x532db5||0x1f4;return function(_0x986844){logger[_0xabfe('0x2b')](_0x986844[_0xabfe('0x2c')]);if(_0x986844['name']){delete _0x986844['name'];}_0x6ce2ef['status'](_0x532db5)[_0xabfe('0x2d')](_0x986844);};}exports['index']=function(_0x5a746e,_0x194635){var _0x31b8c7={},_0x492d3d={},_0x4eb5bf={'count':0x0,'rows':[]};var _0x5af1d6=_['map'](db[_0xabfe('0x2e')][_0xabfe('0x2f')],function(_0x205c42){return{'name':_0x205c42[_0xabfe('0x30')],'type':_0x205c42[_0xabfe('0x31')]['key']};});_0x492d3d[_0xabfe('0x32')]=_[_0xabfe('0x33')](_0x5af1d6,'name');_0x492d3d['query']=_[_0xabfe('0x34')](_0x5a746e[_0xabfe('0x35')]);_0x492d3d['filters']=_['intersection'](_0x492d3d[_0xabfe('0x32')],_0x492d3d[_0xabfe('0x35')]);_0x31b8c7[_0xabfe('0x36')]=_[_0xabfe('0x37')](_0x492d3d[_0xabfe('0x32')],qs[_0xabfe('0x38')](_0x5a746e[_0xabfe('0x35')][_0xabfe('0x38')]));_0x31b8c7[_0xabfe('0x36')]=_0x31b8c7['attributes']['length']?_0x31b8c7['attributes']:_0x492d3d[_0xabfe('0x32')];if(!_0x5a746e['query'][_0xabfe('0x39')](_0xabfe('0x3a'))){_0x31b8c7[_0xabfe('0x24')]=qs['limit'](_0x5a746e['query'][_0xabfe('0x24')]);_0x31b8c7[_0xabfe('0x23')]=qs[_0xabfe('0x23')](_0x5a746e[_0xabfe('0x35')][_0xabfe('0x23')]);}_0x31b8c7[_0xabfe('0x3b')]=qs['sort'](_0x5a746e[_0xabfe('0x35')]['sort']);_0x31b8c7[_0xabfe('0x3c')]=qs[_0xabfe('0x3d')](_[_0xabfe('0x3e')](_0x5a746e[_0xabfe('0x35')],_0x492d3d[_0xabfe('0x3d')]),_0x5af1d6);if(_0x5a746e[_0xabfe('0x35')]['filter']){_0x31b8c7[_0xabfe('0x3c')]=_[_0xabfe('0x3f')](_0x31b8c7[_0xabfe('0x3c')],{'$or':_[_0xabfe('0x33')](_0x5af1d6,function(_0x4f3179){if(_0x4f3179['type']!==_0xabfe('0x40')){var _0x38578f={};_0x38578f[_0x4f3179[_0xabfe('0x41')]]={'$like':'%'+_0x5a746e[_0xabfe('0x35')][_0xabfe('0x42')]+'%'};return _0x38578f;}})});}_0x31b8c7=_[_0xabfe('0x3f')]({},_0x31b8c7,_0x5a746e[_0xabfe('0x43')]);var _0x560b1b={'where':_0x31b8c7[_0xabfe('0x3c')]};return db[_0xabfe('0x2e')][_0xabfe('0x25')](_0x560b1b)[_0xabfe('0x2a')](function(_0x301d47){_0x4eb5bf[_0xabfe('0x25')]=_0x301d47;if(_0x5a746e[_0xabfe('0x35')][_0xabfe('0x44')]){_0x31b8c7[_0xabfe('0x45')]=[{'all':!![]}];}return db[_0xabfe('0x2e')][_0xabfe('0x46')](_0x31b8c7);})[_0xabfe('0x2a')](function(_0x4c9176){_0x4eb5bf[_0xabfe('0x47')]=_0x4c9176;return _0x4eb5bf;})[_0xabfe('0x2a')](respondWithFilteredResult(_0x194635,_0x31b8c7))[_0xabfe('0x48')](handleError(_0x194635,null));};exports[_0xabfe('0x49')]=function(_0x1875b2,_0x5b570d){var _0x11cb34={'raw':![],'where':{'id':_0x1875b2[_0xabfe('0x4a')]['id']}},_0x190935={};_0x190935[_0xabfe('0x32')]=_[_0xabfe('0x34')](db['VoiceQueueReport'][_0xabfe('0x2f')]);_0x190935['query']=_[_0xabfe('0x34')](_0x1875b2[_0xabfe('0x35')]);_0x190935[_0xabfe('0x3d')]=_['intersection'](_0x190935[_0xabfe('0x32')],_0x190935[_0xabfe('0x35')]);_0x11cb34['attributes']=_[_0xabfe('0x37')](_0x190935[_0xabfe('0x32')],qs[_0xabfe('0x38')](_0x1875b2[_0xabfe('0x35')][_0xabfe('0x38')]));_0x11cb34[_0xabfe('0x36')]=_0x11cb34[_0xabfe('0x36')][_0xabfe('0x4b')]?_0x11cb34[_0xabfe('0x36')]:_0x190935[_0xabfe('0x32')];if(_0x1875b2[_0xabfe('0x35')][_0xabfe('0x44')]){_0x11cb34['include']=[{'all':!![]}];}_0x11cb34=_[_0xabfe('0x3f')]({},_0x11cb34,_0x1875b2[_0xabfe('0x43')]);return db['VoiceQueueReport'][_0xabfe('0x4c')](_0x11cb34)[_0xabfe('0x2a')](handleEntityNotFound(_0x5b570d,null))[_0xabfe('0x2a')](respondWithResult(_0x5b570d,null))[_0xabfe('0x48')](handleError(_0x5b570d,null));};exports[_0xabfe('0x4d')]=function(_0x5f35c8,_0xe912ef){return db['VoiceQueueReport'][_0xabfe('0x4d')](_0x5f35c8[_0xabfe('0x4e')],{})['then'](respondWithResult(_0xe912ef,0xc9))[_0xabfe('0x48')](handleError(_0xe912ef,null));};exports[_0xabfe('0x29')]=function(_0x10c49a,_0x2015ff){if(_0x10c49a['body']['id']){delete _0x10c49a['body']['id'];}return db[_0xabfe('0x2e')]['find']({'where':{'id':_0x10c49a[_0xabfe('0x4a')]['id']}})['then'](handleEntityNotFound(_0x2015ff,null))['then'](saveUpdates(_0x10c49a[_0xabfe('0x4e')],null))[_0xabfe('0x2a')](respondWithResult(_0x2015ff,null))[_0xabfe('0x48')](handleError(_0x2015ff,null));};exports[_0xabfe('0x4f')]=function(_0x10b0b9,_0x3b3cfd){return db[_0xabfe('0x2e')][_0xabfe('0x4c')]({'where':{'id':_0x10b0b9['params']['id']}})[_0xabfe('0x2a')](handleEntityNotFound(_0x3b3cfd,null))['then'](removeEntity(_0x3b3cfd,null))[_0xabfe('0x48')](handleError(_0x3b3cfd,null));};exports[_0xabfe('0x50')]=function(_0x3012ea,_0x22a5e8){return db[_0xabfe('0x2e')][_0xabfe('0x50')]()[_0xabfe('0x2a')](respondWithResult(_0x22a5e8,null))[_0xabfe('0x48')](handleError(_0x22a5e8,null));};exports[_0xabfe('0x51')]=function(_0x20219a,_0x36e614){var _0x205a9d={},_0x3d2ee1={},_0x16f97a={'count':0x0,'rows':[]};_0x3d2ee1[_0xabfe('0x32')]=_[_0xabfe('0x34')](db['VoiceQueueReport']['rawAttributes']);_0x3d2ee1[_0xabfe('0x35')]=_[_0xabfe('0x34')](_0x20219a[_0xabfe('0x35')]);_0x3d2ee1[_0xabfe('0x3d')]=_['intersection'](_0x3d2ee1[_0xabfe('0x32')],_0x3d2ee1[_0xabfe('0x35')]);_0x205a9d[_0xabfe('0x36')]=_[_0xabfe('0x37')](_0x3d2ee1[_0xabfe('0x32')],qs[_0xabfe('0x38')](_0x20219a[_0xabfe('0x35')]['fields']));_0x205a9d['attributes']=_0x205a9d[_0xabfe('0x36')]['length']?_0x205a9d[_0xabfe('0x36')]:_0x3d2ee1['model'];if(!_0x20219a[_0xabfe('0x35')][_0xabfe('0x39')](_0xabfe('0x3a'))){_0x205a9d[_0xabfe('0x24')]=qs['limit'](_0x20219a[_0xabfe('0x35')]['limit']);_0x205a9d[_0xabfe('0x23')]=qs[_0xabfe('0x23')](_0x20219a[_0xabfe('0x35')][_0xabfe('0x23')]);}_0x205a9d[_0xabfe('0x3b')]=qs[_0xabfe('0x52')](_0x20219a[_0xabfe('0x35')][_0xabfe('0x52')]);_0x205a9d[_0xabfe('0x3c')]=qs[_0xabfe('0x3d')](_[_0xabfe('0x3e')](_0x20219a[_0xabfe('0x35')],_0x3d2ee1[_0xabfe('0x3d')]));if(_0x20219a[_0xabfe('0x35')][_0xabfe('0x42')]){_0x205a9d['where']=_[_0xabfe('0x3f')](_0x205a9d[_0xabfe('0x3c')],{'$or':_[_0xabfe('0x33')](_0x205a9d[_0xabfe('0x36')],function(_0x257e59){var _0x28ca56={};_0x28ca56[_0x257e59]={'$like':'%'+_0x20219a[_0xabfe('0x35')][_0xabfe('0x42')]+'%'};return _0x28ca56;})});}_0x205a9d=_[_0xabfe('0x3f')]({},_0x205a9d,_0x20219a[_0xabfe('0x43')]);var _0x513775={'where':_0x205a9d[_0xabfe('0x3c')]};return db[_0xabfe('0x2e')][_0xabfe('0x25')](_0x513775)['then'](function(_0x52eebd){_0x16f97a['count']=_0x52eebd;if(_0x20219a[_0xabfe('0x35')][_0xabfe('0x44')]){_0x205a9d['include']=[{'all':!![]}];}return db[_0xabfe('0x2e')]['findAll'](_0x205a9d);})[_0xabfe('0x2a')](function(_0x508fc9){_0x16f97a[_0xabfe('0x47')]=_0x508fc9;return _0x16f97a;})[_0xabfe('0x2a')](respondWithFilteredResult(_0x36e614,_0x205a9d,_0xabfe('0x51')))[_0xabfe('0x48')](handleError(_0x36e614,null,'getVoiceQueuesReport'));};
\ No newline at end of file
+var _0x3317=['where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','catch','find','create','body','params','destroy','describe','getVoiceQueuesReport','rawAttributes','rows','eml-format','rimraf','zip-dir','request-promise','bluebird','util','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','./voiceQueueReport.socket','sendStatus','status','end','json','offset','count','set','Content-Range','apply','reject','save','update','then','error','stack','name','index','VoiceQueueReport','fieldName','type','key','model','map','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','order','sort'];(function(_0x3bf83f,_0x181cac){var _0x22c4a9=function(_0xb3ff0d){while(--_0xb3ff0d){_0x3bf83f['push'](_0x3bf83f['shift']());}};_0x22c4a9(++_0x181cac);}(_0x3317,0x67));var _0x7331=function(_0x59c301,_0x359c50){_0x59c301=_0x59c301-0x0;var _0x3866b9=_0x3317[_0x59c301];return _0x3866b9;};'use strict';var emlformat=require(_0x7331('0x0'));var rimraf=require(_0x7331('0x1'));var zipdir=require(_0x7331('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x7331('0x3'));var moment=require('moment');var BPromise=require(_0x7331('0x4'));var Mustache=require('mustache');var util=require(_0x7331('0x5'));var path=require('path');var sox=require(_0x7331('0x6'));var csv=require(_0x7331('0x7'));var ejs=require(_0x7331('0x8'));var fs=require('fs');var fs_extra=require(_0x7331('0x9'));var _=require('lodash');var squel=require(_0x7331('0xa'));var crypto=require(_0x7331('0xb'));var jsforce=require(_0x7331('0xc'));var deskjs=require(_0x7331('0xd'));var toCsv=require('to-csv');var querystring=require(_0x7331('0xe'));var Papa=require(_0x7331('0xf'));var Redis=require('ioredis');var authService=require(_0x7331('0x10'));var qs=require(_0x7331('0x11'));var as=require(_0x7331('0x12'));var hardwareService=require(_0x7331('0x13'));var logger=require(_0x7331('0x14'))(_0x7331('0x15'));var utils=require(_0x7331('0x16'));var config=require(_0x7331('0x17'));var licenseUtil=require(_0x7331('0x18'));var db=require(_0x7331('0x19'))['db'];config[_0x7331('0x1a')]=_['defaults'](config[_0x7331('0x1a')],{'host':_0x7331('0x1b'),'port':0x18eb});var socket=require(_0x7331('0x1c'))(new Redis(config[_0x7331('0x1a')]));require(_0x7331('0x1d'))['register'](socket);function respondWithStatusCode(_0x4e4fd6,_0x5e4e08){_0x5e4e08=_0x5e4e08||0xcc;return function(_0x59f6e3){if(_0x59f6e3){return _0x4e4fd6[_0x7331('0x1e')](_0x5e4e08);}return _0x4e4fd6[_0x7331('0x1f')](_0x5e4e08)[_0x7331('0x20')]();};}function respondWithResult(_0x42a3bd,_0x5f9afa){_0x5f9afa=_0x5f9afa||0xc8;return function(_0x5befdf){if(_0x5befdf){return _0x42a3bd[_0x7331('0x1f')](_0x5f9afa)[_0x7331('0x21')](_0x5befdf);}};}function respondWithFilteredResult(_0x204eb0,_0x189528){return function(_0x1d3934){if(_0x1d3934){var _0xb3306=typeof _0x189528[_0x7331('0x22')]==='undefined'&&typeof _0x189528['limit']==='undefined';var _0x52e63b=_0x1d3934[_0x7331('0x23')];var _0x22e0dc=_0xb3306?0x0:_0x189528[_0x7331('0x22')];var _0x4d5fdd=_0xb3306?_0x1d3934[_0x7331('0x23')]:_0x189528[_0x7331('0x22')]+_0x189528['limit'];var _0x292224;if(_0x4d5fdd>=_0x52e63b){_0x4d5fdd=_0x52e63b;_0x292224=0xc8;}else{_0x292224=0xce;}_0x204eb0[_0x7331('0x1f')](_0x292224);return _0x204eb0[_0x7331('0x24')](_0x7331('0x25'),_0x22e0dc+'-'+_0x4d5fdd+'/'+_0x52e63b)[_0x7331('0x21')](_0x1d3934);}return null;};}function patchUpdates(_0x5bbfdc){return function(_0x76aea){try{jsonpatch[_0x7331('0x26')](_0x76aea,_0x5bbfdc,!![]);}catch(_0x24bde5){return BPromise[_0x7331('0x27')](_0x24bde5);}return _0x76aea[_0x7331('0x28')]();};}function saveUpdates(_0x2fb41e,_0x342ccb){return function(_0x5ee936){if(_0x5ee936){return _0x5ee936[_0x7331('0x29')](_0x2fb41e)[_0x7331('0x2a')](function(_0x2ce827){return _0x2ce827;});}return null;};}function removeEntity(_0x53495d,_0x2ff92c){return function(_0x328643){if(_0x328643){return _0x328643['destroy']()['then'](function(){_0x53495d['status'](0xcc)[_0x7331('0x20')]();});}};}function handleEntityNotFound(_0x3cad91,_0x3a1881){return function(_0x7f14f2){if(!_0x7f14f2){_0x3cad91[_0x7331('0x1e')](0x194);}return _0x7f14f2;};}function handleError(_0x5ce9a0,_0x3aa801){_0x3aa801=_0x3aa801||0x1f4;return function(_0x23ca91){logger[_0x7331('0x2b')](_0x23ca91[_0x7331('0x2c')]);if(_0x23ca91['name']){delete _0x23ca91[_0x7331('0x2d')];}_0x5ce9a0['status'](_0x3aa801)['send'](_0x23ca91);};}exports[_0x7331('0x2e')]=function(_0x2abfef,_0x30440f){var _0x2376a2={},_0x42d319={},_0x3cd46b={'count':0x0,'rows':[]};var _0x4d8b85=_['map'](db[_0x7331('0x2f')]['rawAttributes'],function(_0x12b154){return{'name':_0x12b154[_0x7331('0x30')],'type':_0x12b154[_0x7331('0x31')][_0x7331('0x32')]};});_0x42d319[_0x7331('0x33')]=_[_0x7331('0x34')](_0x4d8b85,_0x7331('0x2d'));_0x42d319[_0x7331('0x35')]=_[_0x7331('0x36')](_0x2abfef[_0x7331('0x35')]);_0x42d319[_0x7331('0x37')]=_[_0x7331('0x38')](_0x42d319[_0x7331('0x33')],_0x42d319[_0x7331('0x35')]);_0x2376a2[_0x7331('0x39')]=_[_0x7331('0x38')](_0x42d319[_0x7331('0x33')],qs[_0x7331('0x3a')](_0x2abfef[_0x7331('0x35')][_0x7331('0x3a')]));_0x2376a2[_0x7331('0x39')]=_0x2376a2['attributes'][_0x7331('0x3b')]?_0x2376a2[_0x7331('0x39')]:_0x42d319[_0x7331('0x33')];if(!_0x2abfef[_0x7331('0x35')][_0x7331('0x3c')](_0x7331('0x3d'))){_0x2376a2[_0x7331('0x3e')]=qs[_0x7331('0x3e')](_0x2abfef[_0x7331('0x35')][_0x7331('0x3e')]);_0x2376a2[_0x7331('0x22')]=qs[_0x7331('0x22')](_0x2abfef[_0x7331('0x35')]['offset']);}_0x2376a2[_0x7331('0x3f')]=qs[_0x7331('0x40')](_0x2abfef[_0x7331('0x35')][_0x7331('0x40')]);_0x2376a2[_0x7331('0x41')]=qs['filters'](_[_0x7331('0x42')](_0x2abfef['query'],_0x42d319['filters']),_0x4d8b85);if(_0x2abfef[_0x7331('0x35')][_0x7331('0x43')]){_0x2376a2['where']=_[_0x7331('0x44')](_0x2376a2[_0x7331('0x41')],{'$or':_[_0x7331('0x34')](_0x4d8b85,function(_0x3246f5){if(_0x3246f5['type']!==_0x7331('0x45')){var _0x3284eb={};_0x3284eb[_0x3246f5[_0x7331('0x2d')]]={'$like':'%'+_0x2abfef[_0x7331('0x35')][_0x7331('0x43')]+'%'};return _0x3284eb;}})});}_0x2376a2=_[_0x7331('0x44')]({},_0x2376a2,_0x2abfef[_0x7331('0x46')]);var _0x2903a7={'where':_0x2376a2[_0x7331('0x41')]};return db['VoiceQueueReport']['count'](_0x2903a7)[_0x7331('0x2a')](function(_0x362038){_0x3cd46b[_0x7331('0x23')]=_0x362038;if(_0x2abfef['query'][_0x7331('0x47')]){_0x2376a2[_0x7331('0x48')]=[{'all':!![]}];}return db['VoiceQueueReport'][_0x7331('0x49')](_0x2376a2);})[_0x7331('0x2a')](function(_0x2e389d){_0x3cd46b['rows']=_0x2e389d;return _0x3cd46b;})['then'](respondWithFilteredResult(_0x30440f,_0x2376a2))[_0x7331('0x4a')](handleError(_0x30440f,null));};exports['show']=function(_0x132ff6,_0x389a7c){var _0x4b1a3b={'raw':![],'where':{'id':_0x132ff6['params']['id']}},_0xb2f9ac={};_0xb2f9ac['model']=_[_0x7331('0x36')](db[_0x7331('0x2f')]['rawAttributes']);_0xb2f9ac[_0x7331('0x35')]=_[_0x7331('0x36')](_0x132ff6['query']);_0xb2f9ac[_0x7331('0x37')]=_[_0x7331('0x38')](_0xb2f9ac['model'],_0xb2f9ac[_0x7331('0x35')]);_0x4b1a3b[_0x7331('0x39')]=_[_0x7331('0x38')](_0xb2f9ac[_0x7331('0x33')],qs[_0x7331('0x3a')](_0x132ff6['query']['fields']));_0x4b1a3b['attributes']=_0x4b1a3b[_0x7331('0x39')]['length']?_0x4b1a3b[_0x7331('0x39')]:_0xb2f9ac[_0x7331('0x33')];if(_0x132ff6[_0x7331('0x35')][_0x7331('0x47')]){_0x4b1a3b[_0x7331('0x48')]=[{'all':!![]}];}_0x4b1a3b=_[_0x7331('0x44')]({},_0x4b1a3b,_0x132ff6[_0x7331('0x46')]);return db[_0x7331('0x2f')][_0x7331('0x4b')](_0x4b1a3b)[_0x7331('0x2a')](handleEntityNotFound(_0x389a7c,null))[_0x7331('0x2a')](respondWithResult(_0x389a7c,null))['catch'](handleError(_0x389a7c,null));};exports[_0x7331('0x4c')]=function(_0x1673d5,_0x26b480){return db['VoiceQueueReport'][_0x7331('0x4c')](_0x1673d5['body'],{})[_0x7331('0x2a')](respondWithResult(_0x26b480,0xc9))[_0x7331('0x4a')](handleError(_0x26b480,null));};exports[_0x7331('0x29')]=function(_0x37c0b1,_0x59002d){if(_0x37c0b1['body']['id']){delete _0x37c0b1[_0x7331('0x4d')]['id'];}return db[_0x7331('0x2f')][_0x7331('0x4b')]({'where':{'id':_0x37c0b1[_0x7331('0x4e')]['id']}})[_0x7331('0x2a')](handleEntityNotFound(_0x59002d,null))[_0x7331('0x2a')](saveUpdates(_0x37c0b1[_0x7331('0x4d')],null))[_0x7331('0x2a')](respondWithResult(_0x59002d,null))[_0x7331('0x4a')](handleError(_0x59002d,null));};exports[_0x7331('0x4f')]=function(_0x541d77,_0x165030){return db['VoiceQueueReport'][_0x7331('0x4b')]({'where':{'id':_0x541d77[_0x7331('0x4e')]['id']}})[_0x7331('0x2a')](handleEntityNotFound(_0x165030,null))[_0x7331('0x2a')](removeEntity(_0x165030,null))['catch'](handleError(_0x165030,null));};exports[_0x7331('0x50')]=function(_0x493b00,_0x346e27){return db[_0x7331('0x2f')]['describe']()[_0x7331('0x2a')](respondWithResult(_0x346e27,null))['catch'](handleError(_0x346e27,null));};exports[_0x7331('0x51')]=function(_0x3de05c,_0x56221c){var _0xa41873={},_0x41f84d={},_0x298890={'count':0x0,'rows':[]};_0x41f84d[_0x7331('0x33')]=_[_0x7331('0x36')](db[_0x7331('0x2f')][_0x7331('0x52')]);_0x41f84d[_0x7331('0x35')]=_[_0x7331('0x36')](_0x3de05c[_0x7331('0x35')]);_0x41f84d[_0x7331('0x37')]=_[_0x7331('0x38')](_0x41f84d[_0x7331('0x33')],_0x41f84d[_0x7331('0x35')]);_0xa41873[_0x7331('0x39')]=_[_0x7331('0x38')](_0x41f84d[_0x7331('0x33')],qs[_0x7331('0x3a')](_0x3de05c[_0x7331('0x35')]['fields']));_0xa41873[_0x7331('0x39')]=_0xa41873[_0x7331('0x39')][_0x7331('0x3b')]?_0xa41873[_0x7331('0x39')]:_0x41f84d[_0x7331('0x33')];if(!_0x3de05c['query'][_0x7331('0x3c')]('nolimit')){_0xa41873['limit']=qs['limit'](_0x3de05c[_0x7331('0x35')][_0x7331('0x3e')]);_0xa41873[_0x7331('0x22')]=qs[_0x7331('0x22')](_0x3de05c[_0x7331('0x35')]['offset']);}_0xa41873['order']=qs[_0x7331('0x40')](_0x3de05c[_0x7331('0x35')]['sort']);_0xa41873[_0x7331('0x41')]=qs['filters'](_[_0x7331('0x42')](_0x3de05c['query'],_0x41f84d['filters']));if(_0x3de05c[_0x7331('0x35')][_0x7331('0x43')]){_0xa41873[_0x7331('0x41')]=_[_0x7331('0x44')](_0xa41873[_0x7331('0x41')],{'$or':_[_0x7331('0x34')](_0xa41873[_0x7331('0x39')],function(_0x43e12d){var _0x5d4f24={};_0x5d4f24[_0x43e12d]={'$like':'%'+_0x3de05c[_0x7331('0x35')][_0x7331('0x43')]+'%'};return _0x5d4f24;})});}_0xa41873=_[_0x7331('0x44')]({},_0xa41873,_0x3de05c[_0x7331('0x46')]);var _0x493d7f={'where':_0xa41873['where']};return db['VoiceQueueReport'][_0x7331('0x23')](_0x493d7f)[_0x7331('0x2a')](function(_0x582aac){_0x298890[_0x7331('0x23')]=_0x582aac;if(_0x3de05c['query']['includeAll']){_0xa41873[_0x7331('0x48')]=[{'all':!![]}];}return db[_0x7331('0x2f')]['findAll'](_0xa41873);})['then'](function(_0x2cd9b7){_0x298890[_0x7331('0x53')]=_0x2cd9b7;return _0x298890;})[_0x7331('0x2a')](respondWithFilteredResult(_0x56221c,_0xa41873,'getVoiceQueuesReport'))[_0x7331('0x4a')](handleError(_0x56221c,null,_0x7331('0x51')));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe69a=['exports','events','../../mysqldb','VoiceQueueReport','setMaxListeners','save','remove','emit','hook'];(function(_0x1501ed,_0x71a68){var _0x5ca2c2=function(_0x39f319){while(--_0x39f319){_0x1501ed['push'](_0x1501ed['shift']());}};_0x5ca2c2(++_0x71a68);}(_0xe69a,0x169));var _0xae69=function(_0xc6be3a,_0x540e05){_0xc6be3a=_0xc6be3a-0x0;var _0x56a310=_0xe69a[_0xc6be3a];return _0x56a310;};'use strict';var EventEmitter=require(_0xae69('0x0'));var VoiceQueueReport=require(_0xae69('0x1'))['db'][_0xae69('0x2')];var VoiceQueueReportEvents=new EventEmitter();VoiceQueueReportEvents[_0xae69('0x3')](0x0);var events={'afterCreate':_0xae69('0x4'),'afterUpdate':'update','afterDestroy':_0xae69('0x5')};function emitEvent(_0x5a466a){return function(_0x423ef1,_0x3ccded,_0x14f8e1){VoiceQueueReportEvents[_0xae69('0x6')](_0x5a466a+':'+_0x423ef1['id'],_0x423ef1);VoiceQueueReportEvents[_0xae69('0x6')](_0x5a466a,_0x423ef1);_0x14f8e1(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];VoiceQueueReport[_0xae69('0x7')](e,emitEvent(event));}}module[_0xae69('0x8')]=VoiceQueueReportEvents;
\ No newline at end of file
+var _0xec88=['../../mysqldb','VoiceQueueReport','setMaxListeners','save','update','remove','emit','hasOwnProperty','events'];(function(_0x2b5ccc,_0x43f8ca){var _0x22aa1a=function(_0x1ce936){while(--_0x1ce936){_0x2b5ccc['push'](_0x2b5ccc['shift']());}};_0x22aa1a(++_0x43f8ca);}(_0xec88,0x1af));var _0x8ec8=function(_0x219977,_0x2ccc9b){_0x219977=_0x219977-0x0;var _0x50cde7=_0xec88[_0x219977];return _0x50cde7;};'use strict';var EventEmitter=require(_0x8ec8('0x0'));var VoiceQueueReport=require(_0x8ec8('0x1'))['db'][_0x8ec8('0x2')];var VoiceQueueReportEvents=new EventEmitter();VoiceQueueReportEvents[_0x8ec8('0x3')](0x0);var events={'afterCreate':_0x8ec8('0x4'),'afterUpdate':_0x8ec8('0x5'),'afterDestroy':_0x8ec8('0x6')};function emitEvent(_0x348e72){return function(_0x1a464b,_0x51cc7a,_0x531c60){VoiceQueueReportEvents['emit'](_0x348e72+':'+_0x1a464b['id'],_0x1a464b);VoiceQueueReportEvents[_0x8ec8('0x7')](_0x348e72,_0x1a464b);_0x531c60(null);};}for(var e in events){if(events[_0x8ec8('0x8')](e)){var event=events[e];VoiceQueueReport['hook'](e,emitEvent(event));}}module['exports']=VoiceQueueReportEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xacfe=['../../config/environment','./voiceQueueReport.attributes','exports','define','report_queue','uniqueid','calleridnum','util','api','moment','bluebird','request-promise','path','rimraf'];(function(_0x38b2f4,_0x3e2a72){var _0x133552=function(_0xb618f7){while(--_0xb618f7){_0x38b2f4['push'](_0x38b2f4['shift']());}};_0x133552(++_0x3e2a72);}(_0xacfe,0x93));var _0xeacf=function(_0x42245d,_0x51758f){_0x42245d=_0x42245d-0x0;var _0x4b211a=_0xacfe[_0x42245d];return _0x4b211a;};'use strict';var _=require('lodash');var util=require(_0xeacf('0x0'));var logger=require('../../config/logger')(_0xeacf('0x1'));var moment=require(_0xeacf('0x2'));var BPromise=require(_0xeacf('0x3'));var rp=require(_0xeacf('0x4'));var fs=require('fs');var path=require(_0xeacf('0x5'));var rimraf=require(_0xeacf('0x6'));var config=require(_0xeacf('0x7'));var attributes=require(_0xeacf('0x8'));module[_0xeacf('0x9')]=function(_0xca9ddc,_0x2da332){return _0xca9ddc[_0xeacf('0xa')]('VoiceQueueReport',attributes,{'tableName':_0xeacf('0xb'),'paranoid':![],'indexes':[{'fields':[_0xeacf('0xc')]},{'fields':[_0xeacf('0xd')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xf5b8=['exports','define','VoiceQueueReport','report_queue','uniqueid','lodash','moment','bluebird','request-promise','path'];(function(_0x3dec17,_0x54285d){var _0x1e3c0f=function(_0x568f8a){while(--_0x568f8a){_0x3dec17['push'](_0x3dec17['shift']());}};_0x1e3c0f(++_0x54285d);}(_0xf5b8,0xcd));var _0x8f5b=function(_0x21a164,_0x8464a7){_0x21a164=_0x21a164-0x0;var _0x512412=_0xf5b8[_0x21a164];return _0x512412;};'use strict';var _=require(_0x8f5b('0x0'));var util=require('util');var logger=require('../../config/logger')('api');var moment=require(_0x8f5b('0x1'));var BPromise=require(_0x8f5b('0x2'));var rp=require(_0x8f5b('0x3'));var fs=require('fs');var path=require(_0x8f5b('0x4'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require('./voiceQueueReport.attributes');module[_0x8f5b('0x5')]=function(_0x3d12a0,_0x18ee33){return _0x3d12a0[_0x8f5b('0x6')](_0x8f5b('0x7'),attributes,{'tableName':_0x8f5b('0x8'),'paranoid':![],'indexes':[{'fields':[_0x8f5b('0x9')]},{'fields':['calleridnum']}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2cd9=['request','then','info','VoiceQueueReport,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','catch','GetVoiceQueueReport','VoiceQueueReport','options','where','attributes','limit','include','model','map','CreateVoiceQueueReport','create','body','UpdateVoiceQueueReport','update','raw','util','bluebird','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','redis','localhost','socket.io-emitter','./voiceQueueReport.socket','register'];(function(_0x2ac91b,_0x1919e8){var _0x4048b2=function(_0x104d58){while(--_0x104d58){_0x2ac91b['push'](_0x2ac91b['shift']());}};_0x4048b2(++_0x1919e8);}(_0x2cd9,0x18c));var _0x92cd=function(_0x306fd0,_0x20fef5){_0x306fd0=_0x306fd0-0x0;var _0x2115e6=_0x2cd9[_0x306fd0];return _0x2115e6;};'use strict';var _=require('lodash');var util=require(_0x92cd('0x0'));var moment=require('moment');var BPromise=require(_0x92cd('0x1'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x92cd('0x2'));var db=require(_0x92cd('0x3'))['db'];var utils=require(_0x92cd('0x4'));var logger=require('../../config/logger')(_0x92cd('0x5'));var config=require(_0x92cd('0x6'));var jayson=require(_0x92cd('0x7'));var client=jayson[_0x92cd('0x8')]['http']({'port':0x232a});config[_0x92cd('0x9')]=_['defaults'](config[_0x92cd('0x9')],{'host':_0x92cd('0xa'),'port':0x18eb});var socket=require(_0x92cd('0xb'))(new Redis(config[_0x92cd('0x9')]));require(_0x92cd('0xc'))[_0x92cd('0xd')](socket);function respondWithRpcPromise(_0x322424,_0x22e943,_0x3f1cf3){return new BPromise(function(_0x44490c,_0x4f5921){return client[_0x92cd('0xe')](_0x322424,_0x3f1cf3)[_0x92cd('0xf')](function(_0x5a1a32){logger[_0x92cd('0x10')](_0x92cd('0x11'),_0x22e943,_0x92cd('0x12'));logger[_0x92cd('0x13')]('VoiceQueueReport,\x20%s,\x20%s,\x20%s',_0x22e943,_0x92cd('0x12'),JSON[_0x92cd('0x14')](_0x5a1a32));if(_0x5a1a32[_0x92cd('0x15')]){if(_0x5a1a32[_0x92cd('0x15')][_0x92cd('0x16')]===0x1f4){logger['error'](_0x92cd('0x11'),_0x22e943,_0x5a1a32['error'][_0x92cd('0x17')]);return _0x4f5921(_0x5a1a32[_0x92cd('0x15')][_0x92cd('0x17')]);}logger[_0x92cd('0x15')]('VoiceQueueReport,\x20%s,\x20%s',_0x22e943,_0x5a1a32[_0x92cd('0x15')][_0x92cd('0x17')]);return _0x44490c(_0x5a1a32[_0x92cd('0x15')][_0x92cd('0x17')]);}else{logger[_0x92cd('0x10')](_0x92cd('0x11'),_0x22e943,_0x92cd('0x12'));_0x44490c(_0x5a1a32[_0x92cd('0x18')][_0x92cd('0x17')]);}})[_0x92cd('0x19')](function(_0x409933){logger['error'](_0x92cd('0x11'),_0x22e943,_0x409933);_0x4f5921(_0x409933);});});}exports[_0x92cd('0x1a')]=function(_0x20fd52){var _0x2973d1=this;return new Promise(function(_0x6d2851,_0x3d048c){return db[_0x92cd('0x1b')]['findAll']({'raw':_0x20fd52[_0x92cd('0x1c')]?_0x20fd52[_0x92cd('0x1c')]['raw']===undefined?!![]:![]:!![],'where':_0x20fd52[_0x92cd('0x1c')]?_0x20fd52[_0x92cd('0x1c')][_0x92cd('0x1d')]||null:null,'attributes':_0x20fd52['options']?_0x20fd52['options'][_0x92cd('0x1e')]||null:null,'limit':_0x20fd52['options']?_0x20fd52['options'][_0x92cd('0x1f')]||null:null,'include':_0x20fd52[_0x92cd('0x1c')]?_0x20fd52[_0x92cd('0x1c')][_0x92cd('0x20')]?_['map'](_0x20fd52[_0x92cd('0x1c')]['include'],function(_0x27e83a){return{'model':db[_0x27e83a[_0x92cd('0x21')]],'as':_0x27e83a['as'],'attributes':_0x27e83a[_0x92cd('0x1e')],'include':_0x27e83a[_0x92cd('0x20')]?_[_0x92cd('0x22')](_0x27e83a[_0x92cd('0x20')],function(_0x4e51cd){return{'model':db[_0x4e51cd[_0x92cd('0x21')]],'as':_0x4e51cd['as'],'attributes':_0x4e51cd[_0x92cd('0x1e')],'include':_0x4e51cd[_0x92cd('0x20')]?_[_0x92cd('0x22')](_0x4e51cd[_0x92cd('0x20')],function(_0x5d5871){return{'model':db[_0x5d5871['model']],'as':_0x5d5871['as'],'attributes':_0x5d5871['attributes']};}):[]};}):[]};}):[]:[]})[_0x92cd('0xf')](function(_0x29864a){logger[_0x92cd('0x10')](_0x92cd('0x1a'),_0x20fd52);logger[_0x92cd('0x13')](_0x92cd('0x1a'),_0x20fd52,JSON[_0x92cd('0x14')](_0x29864a));_0x6d2851(_0x29864a);})[_0x92cd('0x19')](function(_0x69701d){logger[_0x92cd('0x15')](_0x92cd('0x1a'),_0x69701d[_0x92cd('0x17')],_0x20fd52);_0x3d048c(_0x2973d1[_0x92cd('0x15')](0x1f4,_0x69701d[_0x92cd('0x17')]));});});};exports[_0x92cd('0x23')]=function(_0x3d839c){var _0xf1ea8d=this;return new Promise(function(_0x488d68,_0x149563){return db['VoiceQueueReport'][_0x92cd('0x24')](_0x3d839c[_0x92cd('0x25')],{'raw':_0x3d839c[_0x92cd('0x1c')]?_0x3d839c[_0x92cd('0x1c')]['raw']===undefined?!![]:![]:!![]})[_0x92cd('0xf')](function(_0x5823fb){logger[_0x92cd('0x10')]('CreateVoiceQueueReport',_0x3d839c);logger['debug'](_0x92cd('0x23'),_0x3d839c,JSON[_0x92cd('0x14')](_0x5823fb));_0x488d68(_0x5823fb);})[_0x92cd('0x19')](function(_0x5d189e){logger[_0x92cd('0x15')](_0x92cd('0x23'),_0x5d189e[_0x92cd('0x17')],_0x3d839c);_0x149563(_0xf1ea8d[_0x92cd('0x15')](0x1f4,_0x5d189e[_0x92cd('0x17')]));});});};exports[_0x92cd('0x26')]=function(_0xd9755){var _0x1f36ac=this;return new Promise(function(_0x538da9,_0x59c53e){return db[_0x92cd('0x1b')][_0x92cd('0x27')](_0xd9755['body'],{'raw':_0xd9755[_0x92cd('0x1c')]?_0xd9755[_0x92cd('0x1c')][_0x92cd('0x28')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0xd9755[_0x92cd('0x1c')]?_0xd9755[_0x92cd('0x1c')][_0x92cd('0x1d')]||null:null,'attributes':_0xd9755[_0x92cd('0x1c')]?_0xd9755[_0x92cd('0x1c')][_0x92cd('0x1e')]||null:null,'limit':_0xd9755[_0x92cd('0x1c')]?_0xd9755['options'][_0x92cd('0x1f')]||null:null})[_0x92cd('0xf')](function(_0x2c7ae5){logger[_0x92cd('0x10')](_0x92cd('0x26'),_0xd9755);logger[_0x92cd('0x13')](_0x92cd('0x26'),_0xd9755,JSON[_0x92cd('0x14')](_0x2c7ae5));_0x538da9(_0x2c7ae5);})[_0x92cd('0x19')](function(_0x332225){logger['error'](_0x92cd('0x26'),_0x332225[_0x92cd('0x17')],_0xd9755);_0x59c53e(_0x1f36ac[_0x92cd('0x15')](0x1f4,_0x332225[_0x92cd('0x17')]));});});};
\ No newline at end of file
+var _0x483e=['then','VoiceQueueReport,\x20%s,\x20%s','request\x20sent','debug','VoiceQueueReport,\x20%s,\x20%s,\x20%s','code','error','message','info','result','catch','GetVoiceQueueReport','VoiceQueueReport','findAll','options','raw','attributes','limit','include','model','stringify','CreateVoiceQueueReport','create','body','update','where','UpdateVoiceQueueReport','lodash','moment','bluebird','ioredis','../../config/utils','../../config/logger','client','http','redis','defaults','socket.io-emitter','./voiceQueueReport.socket','register','request'];(function(_0xbf400c,_0x37e1e7){var _0x2ee697=function(_0x3c2668){while(--_0x3c2668){_0xbf400c['push'](_0xbf400c['shift']());}};_0x2ee697(++_0x37e1e7);}(_0x483e,0xbf));var _0xe483=function(_0x3a1ea5,_0x349f01){_0x3a1ea5=_0x3a1ea5-0x0;var _0xfac9b2=_0x483e[_0x3a1ea5];return _0xfac9b2;};'use strict';var _=require(_0xe483('0x0'));var util=require('util');var moment=require(_0xe483('0x1'));var BPromise=require(_0xe483('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xe483('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0xe483('0x4'));var logger=require(_0xe483('0x5'))('rpc');var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0xe483('0x6')][_0xe483('0x7')]({'port':0x232a});config[_0xe483('0x8')]=_[_0xe483('0x9')](config[_0xe483('0x8')],{'host':'localhost','port':0x18eb});var socket=require(_0xe483('0xa'))(new Redis(config[_0xe483('0x8')]));require(_0xe483('0xb'))[_0xe483('0xc')](socket);function respondWithRpcPromise(_0x12006e,_0x2f056c,_0x199c3a){return new BPromise(function(_0x2712f3,_0x23477d){return client[_0xe483('0xd')](_0x12006e,_0x199c3a)[_0xe483('0xe')](function(_0x300039){logger['info'](_0xe483('0xf'),_0x2f056c,_0xe483('0x10'));logger[_0xe483('0x11')](_0xe483('0x12'),_0x2f056c,_0xe483('0x10'),JSON['stringify'](_0x300039));if(_0x300039['error']){if(_0x300039['error'][_0xe483('0x13')]===0x1f4){logger[_0xe483('0x14')](_0xe483('0xf'),_0x2f056c,_0x300039['error'][_0xe483('0x15')]);return _0x23477d(_0x300039[_0xe483('0x14')][_0xe483('0x15')]);}logger[_0xe483('0x14')](_0xe483('0xf'),_0x2f056c,_0x300039[_0xe483('0x14')][_0xe483('0x15')]);return _0x2712f3(_0x300039[_0xe483('0x14')]['message']);}else{logger[_0xe483('0x16')]('VoiceQueueReport,\x20%s,\x20%s',_0x2f056c,_0xe483('0x10'));_0x2712f3(_0x300039[_0xe483('0x17')]['message']);}})[_0xe483('0x18')](function(_0x54ab53){logger[_0xe483('0x14')](_0xe483('0xf'),_0x2f056c,_0x54ab53);_0x23477d(_0x54ab53);});});}exports[_0xe483('0x19')]=function(_0x7ffa63){var _0x20b189=this;return new Promise(function(_0x2f5c13,_0x2d31a2){return db[_0xe483('0x1a')][_0xe483('0x1b')]({'raw':_0x7ffa63[_0xe483('0x1c')]?_0x7ffa63[_0xe483('0x1c')][_0xe483('0x1d')]===undefined?!![]:![]:!![],'where':_0x7ffa63[_0xe483('0x1c')]?_0x7ffa63[_0xe483('0x1c')]['where']||null:null,'attributes':_0x7ffa63[_0xe483('0x1c')]?_0x7ffa63[_0xe483('0x1c')][_0xe483('0x1e')]||null:null,'limit':_0x7ffa63['options']?_0x7ffa63[_0xe483('0x1c')][_0xe483('0x1f')]||null:null,'include':_0x7ffa63[_0xe483('0x1c')]?_0x7ffa63[_0xe483('0x1c')][_0xe483('0x20')]?_['map'](_0x7ffa63['options'][_0xe483('0x20')],function(_0x4b76ca){return{'model':db[_0x4b76ca[_0xe483('0x21')]],'as':_0x4b76ca['as'],'attributes':_0x4b76ca[_0xe483('0x1e')],'include':_0x4b76ca[_0xe483('0x20')]?_['map'](_0x4b76ca[_0xe483('0x20')],function(_0x3b4039){return{'model':db[_0x3b4039[_0xe483('0x21')]],'as':_0x3b4039['as'],'attributes':_0x3b4039[_0xe483('0x1e')],'include':_0x3b4039[_0xe483('0x20')]?_['map'](_0x3b4039[_0xe483('0x20')],function(_0x5d810a){return{'model':db[_0x5d810a[_0xe483('0x21')]],'as':_0x5d810a['as'],'attributes':_0x5d810a[_0xe483('0x1e')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x514fe0){logger['info'](_0xe483('0x19'),_0x7ffa63);logger[_0xe483('0x11')](_0xe483('0x19'),_0x7ffa63,JSON[_0xe483('0x22')](_0x514fe0));_0x2f5c13(_0x514fe0);})['catch'](function(_0x4501a4){logger[_0xe483('0x14')](_0xe483('0x19'),_0x4501a4[_0xe483('0x15')],_0x7ffa63);_0x2d31a2(_0x20b189[_0xe483('0x14')](0x1f4,_0x4501a4[_0xe483('0x15')]));});});};exports[_0xe483('0x23')]=function(_0x240fb4){var _0x25d2a5=this;return new Promise(function(_0x1e80c0,_0x2fe8c3){return db[_0xe483('0x1a')][_0xe483('0x24')](_0x240fb4[_0xe483('0x25')],{'raw':_0x240fb4[_0xe483('0x1c')]?_0x240fb4[_0xe483('0x1c')][_0xe483('0x1d')]===undefined?!![]:![]:!![]})['then'](function(_0x32d911){logger[_0xe483('0x16')]('CreateVoiceQueueReport',_0x240fb4);logger[_0xe483('0x11')](_0xe483('0x23'),_0x240fb4,JSON['stringify'](_0x32d911));_0x1e80c0(_0x32d911);})['catch'](function(_0x492e2f){logger['error'](_0xe483('0x23'),_0x492e2f[_0xe483('0x15')],_0x240fb4);_0x2fe8c3(_0x25d2a5[_0xe483('0x14')](0x1f4,_0x492e2f[_0xe483('0x15')]));});});};exports['UpdateVoiceQueueReport']=function(_0x4e68a5){var _0x449f06=this;return new Promise(function(_0x53c6d2,_0x302602){return db[_0xe483('0x1a')][_0xe483('0x26')](_0x4e68a5[_0xe483('0x25')],{'raw':_0x4e68a5['options']?_0x4e68a5[_0xe483('0x1c')][_0xe483('0x1d')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x4e68a5[_0xe483('0x1c')]?_0x4e68a5[_0xe483('0x1c')][_0xe483('0x27')]||null:null,'attributes':_0x4e68a5[_0xe483('0x1c')]?_0x4e68a5[_0xe483('0x1c')][_0xe483('0x1e')]||null:null,'limit':_0x4e68a5[_0xe483('0x1c')]?_0x4e68a5[_0xe483('0x1c')][_0xe483('0x1f')]||null:null})['then'](function(_0x16ebda){logger['info'](_0xe483('0x28'),_0x4e68a5);logger['debug']('UpdateVoiceQueueReport',_0x4e68a5,JSON['stringify'](_0x16ebda));_0x53c6d2(_0x16ebda);})[_0xe483('0x18')](function(_0x57ea72){logger[_0xe483('0x14')](_0xe483('0x28'),_0x57ea72[_0xe483('0x15')],_0x4e68a5);_0x302602(_0x449f06[_0xe483('0x14')](0x1f4,_0x57ea72[_0xe483('0x15')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x02a7=['length','voiceQueueReport:','save','emit','removeListener'];(function(_0x2c6292,_0x232231){var _0x5f32=function(_0x568e63){while(--_0x568e63){_0x2c6292['push'](_0x2c6292['shift']());}};_0x5f32(++_0x232231);}(_0x02a7,0x7a));var _0x702a=function(_0x277d4b,_0x6dd8f0){_0x277d4b=_0x277d4b-0x0;var _0x3c351e=_0x02a7[_0x277d4b];return _0x3c351e;};'use strict';var VoiceQueueReportEvents=require('./voiceQueueReport.events');var events=[_0x702a('0x0'),'remove','update'];function createListener(_0x30b64d,_0x30573e){return function(_0x325874){_0x30573e[_0x702a('0x1')](_0x30b64d,_0x325874);};}function removeListener(_0x4612ca,_0x1fc26b){return function(){VoiceQueueReportEvents[_0x702a('0x2')](_0x4612ca,_0x1fc26b);};}exports['register']=function(_0x1bcfe5){for(var _0x5b7d8c=0x0,_0x26b25e=events[_0x702a('0x3')];_0x5b7d8c<_0x26b25e;_0x5b7d8c++){var _0x3f2954=events[_0x5b7d8c];var _0x161dee=createListener(_0x702a('0x4')+_0x3f2954,_0x1bcfe5);VoiceQueueReportEvents['on'](_0x3f2954,_0x161dee);}};
\ No newline at end of file
+var _0x943c=['./voiceQueueReport.events','save','remove','update','emit','removeListener','register','length','voiceQueueReport:'];(function(_0x230044,_0x256f82){var _0x3215fb=function(_0x37e153){while(--_0x37e153){_0x230044['push'](_0x230044['shift']());}};_0x3215fb(++_0x256f82);}(_0x943c,0xd8));var _0xc943=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x943c[_0x3dd15e];return _0x231fd0;};'use strict';var VoiceQueueReportEvents=require(_0xc943('0x0'));var events=[_0xc943('0x1'),_0xc943('0x2'),_0xc943('0x3')];function createListener(_0x55a907,_0x5067dc){return function(_0x32ff2c){_0x5067dc[_0xc943('0x4')](_0x55a907,_0x32ff2c);};}function removeListener(_0xa24827,_0x5b7d1d){return function(){VoiceQueueReportEvents[_0xc943('0x5')](_0xa24827,_0x5b7d1d);};}exports[_0xc943('0x6')]=function(_0x3307ef){for(var _0xaff37f=0x0,_0x1b73ad=events[_0xc943('0x7')];_0xaff37f<_0x1b73ad;_0xaff37f++){var _0x3f718f=events[_0xaff37f];var _0x56e665=createListener(_0xc943('0x8')+_0x3f718f,_0x3307ef);VoiceQueueReportEvents['on'](_0x3f718f,_0x56e665);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb95a=['../../components/auth/service','../../components/interaction/service','../../config/environment','./voiceQueuesLog.controller','get','index','/:id','show','post','isAuthenticated','create','put','update','delete','destroy','exports','multer','util','path','connect-timeout','express','Router','fs-extra'];(function(_0x1d0ce7,_0x5938f1){var _0x27d94d=function(_0x3a8170){while(--_0x3a8170){_0x1d0ce7['push'](_0x1d0ce7['shift']());}};_0x27d94d(++_0x5938f1);}(_0xb95a,0x13b));var _0xab95=function(_0xad6e4d,_0x3b9104){_0xad6e4d=_0xad6e4d-0x0;var _0x33f6de=_0xb95a[_0xad6e4d];return _0x33f6de;};'use strict';var multer=require(_0xab95('0x0'));var util=require(_0xab95('0x1'));var path=require(_0xab95('0x2'));var timeout=require(_0xab95('0x3'));var express=require(_0xab95('0x4'));var router=express[_0xab95('0x5')]();var fs_extra=require(_0xab95('0x6'));var auth=require(_0xab95('0x7'));var interaction=require(_0xab95('0x8'));var config=require(_0xab95('0x9'));var controller=require(_0xab95('0xa'));router[_0xab95('0xb')]('/',auth['isAuthenticated'](),controller[_0xab95('0xc')]);router[_0xab95('0xb')](_0xab95('0xd'),auth['isAuthenticated'](),controller[_0xab95('0xe')]);router[_0xab95('0xf')]('/',auth[_0xab95('0x10')](),controller[_0xab95('0x11')]);router[_0xab95('0x12')]('/:id',auth['isAuthenticated'](),controller[_0xab95('0x13')]);router[_0xab95('0x14')](_0xab95('0xd'),auth['isAuthenticated'](),controller[_0xab95('0x15')]);module[_0xab95('0x16')]=router;
\ No newline at end of file
+var _0xb17f=['update','delete','/:id','destroy','exports','multer','util','path','express','fs-extra','../../components/interaction/service','../../config/environment','./voiceQueuesLog.controller','get','isAuthenticated','index','show'];(function(_0x24dfd2,_0x504fac){var _0x3abda1=function(_0x55bc85){while(--_0x55bc85){_0x24dfd2['push'](_0x24dfd2['shift']());}};_0x3abda1(++_0x504fac);}(_0xb17f,0x1ae));var _0xfb17=function(_0x58b9c3,_0x54f931){_0x58b9c3=_0x58b9c3-0x0;var _0x24b746=_0xb17f[_0x58b9c3];return _0x24b746;};'use strict';var multer=require(_0xfb17('0x0'));var util=require(_0xfb17('0x1'));var path=require(_0xfb17('0x2'));var timeout=require('connect-timeout');var express=require(_0xfb17('0x3'));var router=express['Router']();var fs_extra=require(_0xfb17('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0xfb17('0x5'));var config=require(_0xfb17('0x6'));var controller=require(_0xfb17('0x7'));router[_0xfb17('0x8')]('/',auth[_0xfb17('0x9')](),controller[_0xfb17('0xa')]);router[_0xfb17('0x8')]('/:id',auth[_0xfb17('0x9')](),controller[_0xfb17('0xb')]);router['post']('/',auth[_0xfb17('0x9')](),controller['create']);router['put']('/:id',auth[_0xfb17('0x9')](),controller[_0xfb17('0xc')]);router[_0xfb17('0xd')](_0xfb17('0xe'),auth[_0xfb17('0x9')](),controller[_0xfb17('0xf')]);module[_0xfb17('0x10')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8935=['sequelize','STRING','DATE','format','YYYY-MM-DD\x20HH:mm:ss'];(function(_0x388a1c,_0x1443d6){var _0x23d5be=function(_0x93e864){while(--_0x93e864){_0x388a1c['push'](_0x388a1c['shift']());}};_0x23d5be(++_0x1443d6);}(_0x8935,0xbe));var _0x5893=function(_0xe8f77e,_0xcab56d){_0xe8f77e=_0xe8f77e-0x0;var _0x2cae92=_0x8935[_0xe8f77e];return _0x2cae92;};'use strict';var Sequelize=require(_0x5893('0x0'));var moment=require('moment');module['exports']={'time':{'type':Sequelize[_0x5893('0x1')]},'callid':{'type':Sequelize[_0x5893('0x1')],'allowNull':![],'defaultValue':''},'queuename':{'type':Sequelize[_0x5893('0x1')],'allowNull':![],'defaultValue':''},'agent':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':''},'event':{'type':Sequelize[_0x5893('0x1')],'allowNull':![],'defaultValue':''},'data':{'type':Sequelize[_0x5893('0x1')],'allowNull':![],'defaultValue':''},'data1':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':''},'data2':{'type':Sequelize[_0x5893('0x1')],'allowNull':![],'defaultValue':''},'data3':{'type':Sequelize[_0x5893('0x1')],'allowNull':![],'defaultValue':''},'data4':{'type':Sequelize[_0x5893('0x1')],'allowNull':![],'defaultValue':''},'data5':{'type':Sequelize[_0x5893('0x1')],'allowNull':![],'defaultValue':''},'dtm':{'type':Sequelize[_0x5893('0x2')],'allowNull':![],'defaultValue':moment()[_0x5893('0x3')](_0x5893('0x4'))}};
\ No newline at end of file
+var _0xcf98=['DATE','format','YYYY-MM-DD\x20HH:mm:ss','moment','exports','STRING'];(function(_0x1f1cc7,_0x26f365){var _0x5f49e9=function(_0x45c75a){while(--_0x45c75a){_0x1f1cc7['push'](_0x1f1cc7['shift']());}};_0x5f49e9(++_0x26f365);}(_0xcf98,0x8d));var _0x8cf9=function(_0x12d7f0,_0x4fc73a){_0x12d7f0=_0x12d7f0-0x0;var _0xdce07d=_0xcf98[_0x12d7f0];return _0xdce07d;};'use strict';var Sequelize=require('sequelize');var moment=require(_0x8cf9('0x0'));module[_0x8cf9('0x1')]={'time':{'type':Sequelize[_0x8cf9('0x2')]},'callid':{'type':Sequelize[_0x8cf9('0x2')],'allowNull':![],'defaultValue':''},'queuename':{'type':Sequelize[_0x8cf9('0x2')],'allowNull':![],'defaultValue':''},'agent':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':''},'event':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':''},'data':{'type':Sequelize[_0x8cf9('0x2')],'allowNull':![],'defaultValue':''},'data1':{'type':Sequelize[_0x8cf9('0x2')],'allowNull':![],'defaultValue':''},'data2':{'type':Sequelize[_0x8cf9('0x2')],'allowNull':![],'defaultValue':''},'data3':{'type':Sequelize[_0x8cf9('0x2')],'allowNull':![],'defaultValue':''},'data4':{'type':Sequelize[_0x8cf9('0x2')],'allowNull':![],'defaultValue':''},'data5':{'type':Sequelize[_0x8cf9('0x2')],'allowNull':![],'defaultValue':''},'dtm':{'type':Sequelize[_0x8cf9('0x3')],'allowNull':![],'defaultValue':moment()[_0x8cf9('0x4')](_0x8cf9('0x5'))}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcf88=['zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','to-csv','ejs','squel','jsforce','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','save','update','then','error','stack','name','map','VoiceQueuesLog','rawAttributes','type','key','model','query','filters','intersection','fields','attributes','length','nolimit','order','where','pick','filter','merge','VIRTUAL','includeAll','findAll','rows','catch','show','keys','include','options','find','create','body','destroy','params','eml-format','rimraf'];(function(_0x4e479b,_0x2478e7){var _0x32c31a=function(_0x225f6b){while(--_0x225f6b){_0x4e479b['push'](_0x4e479b['shift']());}};_0x32c31a(++_0x2478e7);}(_0xcf88,0x1ae));var _0x8cf8=function(_0x465a0c,_0x19d4d5){_0x465a0c=_0x465a0c-0x0;var _0x1e202e=_0xcf88[_0x465a0c];return _0x1e202e;};'use strict';var emlformat=require(_0x8cf8('0x0'));var rimraf=require(_0x8cf8('0x1'));var zipdir=require(_0x8cf8('0x2'));var jsonpatch=require(_0x8cf8('0x3'));var rp=require('request-promise');var moment=require(_0x8cf8('0x4'));var BPromise=require(_0x8cf8('0x5'));var Mustache=require(_0x8cf8('0x6'));var util=require(_0x8cf8('0x7'));var path=require(_0x8cf8('0x8'));var sox=require('sox');var csv=require(_0x8cf8('0x9'));var ejs=require(_0x8cf8('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x8cf8('0xb'));var crypto=require('crypto');var jsforce=require(_0x8cf8('0xc'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x8cf8('0xd'));var Redis=require(_0x8cf8('0xe'));var authService=require(_0x8cf8('0xf'));var qs=require(_0x8cf8('0x10'));var as=require(_0x8cf8('0x11'));var hardwareService=require(_0x8cf8('0x12'));var logger=require('../../config/logger')(_0x8cf8('0x13'));var utils=require(_0x8cf8('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0x8cf8('0x15'));var db=require(_0x8cf8('0x16'))['db'];function respondWithStatusCode(_0x262877,_0x2a738f){_0x2a738f=_0x2a738f||0xcc;return function(_0x329bb4){if(_0x329bb4){return _0x262877[_0x8cf8('0x17')](_0x2a738f);}return _0x262877[_0x8cf8('0x18')](_0x2a738f)[_0x8cf8('0x19')]();};}function respondWithResult(_0x4c008f,_0x5adf2e){_0x5adf2e=_0x5adf2e||0xc8;return function(_0x1d6d6b){if(_0x1d6d6b){return _0x4c008f['status'](_0x5adf2e)[_0x8cf8('0x1a')](_0x1d6d6b);}};}function respondWithFilteredResult(_0x51ecc1,_0x3adc2c){return function(_0x5ce4b6){if(_0x5ce4b6){var _0x2b63ba=typeof _0x3adc2c[_0x8cf8('0x1b')]===_0x8cf8('0x1c')&&typeof _0x3adc2c[_0x8cf8('0x1d')]===_0x8cf8('0x1c');var _0xd8827c=_0x5ce4b6[_0x8cf8('0x1e')];var _0x7a252e=_0x2b63ba?0x0:_0x3adc2c[_0x8cf8('0x1b')];var _0x17e871=_0x2b63ba?_0x5ce4b6[_0x8cf8('0x1e')]:_0x3adc2c['offset']+_0x3adc2c[_0x8cf8('0x1d')];var _0x3a8f36;if(_0x17e871>=_0xd8827c){_0x17e871=_0xd8827c;_0x3a8f36=0xc8;}else{_0x3a8f36=0xce;}_0x51ecc1[_0x8cf8('0x18')](_0x3a8f36);return _0x51ecc1[_0x8cf8('0x1f')](_0x8cf8('0x20'),_0x7a252e+'-'+_0x17e871+'/'+_0xd8827c)[_0x8cf8('0x1a')](_0x5ce4b6);}return null;};}function patchUpdates(_0x12c733){return function(_0x205580){try{jsonpatch[_0x8cf8('0x21')](_0x205580,_0x12c733,!![]);}catch(_0x4f8c92){return BPromise['reject'](_0x4f8c92);}return _0x205580[_0x8cf8('0x22')]();};}function saveUpdates(_0x168a48,_0x3d8b48){return function(_0x22e69b){if(_0x22e69b){return _0x22e69b[_0x8cf8('0x23')](_0x168a48)[_0x8cf8('0x24')](function(_0x36b2e4){return _0x36b2e4;});}return null;};}function removeEntity(_0x11cf13,_0xa426a0){return function(_0x1548c2){if(_0x1548c2){return _0x1548c2['destroy']()[_0x8cf8('0x24')](function(){_0x11cf13[_0x8cf8('0x18')](0xcc)['end']();});}};}function handleEntityNotFound(_0xedbe7b,_0x5f3c4f){return function(_0x13e1a4){if(!_0x13e1a4){_0xedbe7b[_0x8cf8('0x17')](0x194);}return _0x13e1a4;};}function handleError(_0x525b1b,_0x35e0e3){_0x35e0e3=_0x35e0e3||0x1f4;return function(_0x2d4f3b){logger[_0x8cf8('0x25')](_0x2d4f3b[_0x8cf8('0x26')]);if(_0x2d4f3b['name']){delete _0x2d4f3b[_0x8cf8('0x27')];}_0x525b1b['status'](_0x35e0e3)['send'](_0x2d4f3b);};}exports['index']=function(_0x5018f4,_0x13b9cd){var _0x577fe6={},_0x2c1eda={},_0x521211={'count':0x0,'rows':[]};var _0x85bebf=_[_0x8cf8('0x28')](db[_0x8cf8('0x29')][_0x8cf8('0x2a')],function(_0x544df3){return{'name':_0x544df3['fieldName'],'type':_0x544df3[_0x8cf8('0x2b')][_0x8cf8('0x2c')]};});_0x2c1eda[_0x8cf8('0x2d')]=_[_0x8cf8('0x28')](_0x85bebf,_0x8cf8('0x27'));_0x2c1eda[_0x8cf8('0x2e')]=_['keys'](_0x5018f4[_0x8cf8('0x2e')]);_0x2c1eda[_0x8cf8('0x2f')]=_[_0x8cf8('0x30')](_0x2c1eda[_0x8cf8('0x2d')],_0x2c1eda[_0x8cf8('0x2e')]);_0x577fe6['attributes']=_[_0x8cf8('0x30')](_0x2c1eda['model'],qs[_0x8cf8('0x31')](_0x5018f4[_0x8cf8('0x2e')][_0x8cf8('0x31')]));_0x577fe6['attributes']=_0x577fe6[_0x8cf8('0x32')][_0x8cf8('0x33')]?_0x577fe6['attributes']:_0x2c1eda[_0x8cf8('0x2d')];if(!_0x5018f4['query']['hasOwnProperty'](_0x8cf8('0x34'))){_0x577fe6[_0x8cf8('0x1d')]=qs[_0x8cf8('0x1d')](_0x5018f4[_0x8cf8('0x2e')]['limit']);_0x577fe6[_0x8cf8('0x1b')]=qs[_0x8cf8('0x1b')](_0x5018f4[_0x8cf8('0x2e')]['offset']);}_0x577fe6[_0x8cf8('0x35')]=qs['sort'](_0x5018f4[_0x8cf8('0x2e')]['sort']);_0x577fe6[_0x8cf8('0x36')]=qs['filters'](_[_0x8cf8('0x37')](_0x5018f4[_0x8cf8('0x2e')],_0x2c1eda[_0x8cf8('0x2f')]),_0x85bebf);if(_0x5018f4['query'][_0x8cf8('0x38')]){_0x577fe6['where']=_[_0x8cf8('0x39')](_0x577fe6[_0x8cf8('0x36')],{'$or':_[_0x8cf8('0x28')](_0x85bebf,function(_0x15eec0){if(_0x15eec0['type']!==_0x8cf8('0x3a')){var _0x45da4={};_0x45da4[_0x15eec0[_0x8cf8('0x27')]]={'$like':'%'+_0x5018f4['query'][_0x8cf8('0x38')]+'%'};return _0x45da4;}})});}_0x577fe6=_[_0x8cf8('0x39')]({},_0x577fe6,_0x5018f4['options']);var _0xb78960={'where':_0x577fe6[_0x8cf8('0x36')]};return db[_0x8cf8('0x29')][_0x8cf8('0x1e')](_0xb78960)[_0x8cf8('0x24')](function(_0x525268){_0x521211[_0x8cf8('0x1e')]=_0x525268;if(_0x5018f4[_0x8cf8('0x2e')][_0x8cf8('0x3b')]){_0x577fe6['include']=[{'all':!![]}];}return db[_0x8cf8('0x29')][_0x8cf8('0x3c')](_0x577fe6);})[_0x8cf8('0x24')](function(_0x4962a3){_0x521211[_0x8cf8('0x3d')]=_0x4962a3;return _0x521211;})[_0x8cf8('0x24')](respondWithFilteredResult(_0x13b9cd,_0x577fe6))[_0x8cf8('0x3e')](handleError(_0x13b9cd,null));};exports[_0x8cf8('0x3f')]=function(_0x4d8f06,_0x2f4b49){var _0x375083={'raw':!![],'where':{'id':_0x4d8f06['params']['id']}},_0x27ff70={};_0x27ff70[_0x8cf8('0x2d')]=_[_0x8cf8('0x40')](db[_0x8cf8('0x29')][_0x8cf8('0x2a')]);_0x27ff70[_0x8cf8('0x2e')]=_['keys'](_0x4d8f06[_0x8cf8('0x2e')]);_0x27ff70[_0x8cf8('0x2f')]=_[_0x8cf8('0x30')](_0x27ff70[_0x8cf8('0x2d')],_0x27ff70[_0x8cf8('0x2e')]);_0x375083['attributes']=_[_0x8cf8('0x30')](_0x27ff70['model'],qs[_0x8cf8('0x31')](_0x4d8f06[_0x8cf8('0x2e')][_0x8cf8('0x31')]));_0x375083[_0x8cf8('0x32')]=_0x375083[_0x8cf8('0x32')][_0x8cf8('0x33')]?_0x375083[_0x8cf8('0x32')]:_0x27ff70[_0x8cf8('0x2d')];if(_0x4d8f06[_0x8cf8('0x2e')][_0x8cf8('0x3b')]){_0x375083[_0x8cf8('0x41')]=[{'all':!![]}];}_0x375083=_[_0x8cf8('0x39')]({},_0x375083,_0x4d8f06[_0x8cf8('0x42')]);return db[_0x8cf8('0x29')][_0x8cf8('0x43')](_0x375083)['then'](handleEntityNotFound(_0x2f4b49,null))[_0x8cf8('0x24')](respondWithResult(_0x2f4b49,null))[_0x8cf8('0x3e')](handleError(_0x2f4b49,null));};exports[_0x8cf8('0x44')]=function(_0x18ae7c,_0x1869d0){return db[_0x8cf8('0x29')][_0x8cf8('0x44')](_0x18ae7c[_0x8cf8('0x45')],{})['then'](respondWithResult(_0x1869d0,0xc9))[_0x8cf8('0x3e')](handleError(_0x1869d0,null));};exports['update']=function(_0x5cd1ec,_0x3acc96){if(_0x5cd1ec[_0x8cf8('0x45')]['id']){delete _0x5cd1ec[_0x8cf8('0x45')]['id'];}return db[_0x8cf8('0x29')]['find']({'where':{'id':_0x5cd1ec['params']['id']}})[_0x8cf8('0x24')](handleEntityNotFound(_0x3acc96,null))[_0x8cf8('0x24')](saveUpdates(_0x5cd1ec[_0x8cf8('0x45')],null))[_0x8cf8('0x24')](respondWithResult(_0x3acc96,null))[_0x8cf8('0x3e')](handleError(_0x3acc96,null));};exports[_0x8cf8('0x46')]=function(_0x96c66f,_0x52acbf){return db[_0x8cf8('0x29')]['find']({'where':{'id':_0x96c66f[_0x8cf8('0x47')]['id']}})[_0x8cf8('0x24')](handleEntityNotFound(_0x52acbf,null))[_0x8cf8('0x24')](removeEntity(_0x52acbf,null))[_0x8cf8('0x3e')](handleError(_0x52acbf,null));};
\ No newline at end of file
+var _0x471e=['key','query','filters','intersection','model','attributes','fields','length','nolimit','sort','pick','filter','merge','where','VIRTUAL','VoiceQueuesLog','includeAll','include','findAll','rows','show','params','keys','find','catch','create','update','body','rimraf','zip-dir','request-promise','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','limit','count','Content-Range','apply','reject','save','then','destroy','sendStatus','error','stack','name','send','index','map','rawAttributes'];(function(_0x785d77,_0x47c9fe){var _0x1a9fc1=function(_0x413a86){while(--_0x413a86){_0x785d77['push'](_0x785d77['shift']());}};_0x1a9fc1(++_0x47c9fe);}(_0x471e,0x67));var _0xe471=function(_0x2641f9,_0x26715f){_0x2641f9=_0x2641f9-0x0;var _0x585741=_0x471e[_0x2641f9];return _0x585741;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xe471('0x0'));var zipdir=require(_0xe471('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xe471('0x2'));var moment=require('moment');var BPromise=require(_0xe471('0x3'));var Mustache=require('mustache');var util=require(_0xe471('0x4'));var path=require(_0xe471('0x5'));var sox=require(_0xe471('0x6'));var csv=require(_0xe471('0x7'));var ejs=require(_0xe471('0x8'));var fs=require('fs');var fs_extra=require(_0xe471('0x9'));var _=require(_0xe471('0xa'));var squel=require(_0xe471('0xb'));var crypto=require(_0xe471('0xc'));var jsforce=require('jsforce');var deskjs=require(_0xe471('0xd'));var toCsv=require(_0xe471('0x7'));var querystring=require(_0xe471('0xe'));var Papa=require(_0xe471('0xf'));var Redis=require(_0xe471('0x10'));var authService=require(_0xe471('0x11'));var qs=require(_0xe471('0x12'));var as=require(_0xe471('0x13'));var hardwareService=require(_0xe471('0x14'));var logger=require(_0xe471('0x15'))(_0xe471('0x16'));var utils=require('../../config/utils');var config=require(_0xe471('0x17'));var licenseUtil=require(_0xe471('0x18'));var db=require(_0xe471('0x19'))['db'];function respondWithStatusCode(_0x4d226d,_0x5214ae){_0x5214ae=_0x5214ae||0xcc;return function(_0x5eff59){if(_0x5eff59){return _0x4d226d['sendStatus'](_0x5214ae);}return _0x4d226d[_0xe471('0x1a')](_0x5214ae)[_0xe471('0x1b')]();};}function respondWithResult(_0x38093c,_0x4263f1){_0x4263f1=_0x4263f1||0xc8;return function(_0x40898a){if(_0x40898a){return _0x38093c[_0xe471('0x1a')](_0x4263f1)[_0xe471('0x1c')](_0x40898a);}};}function respondWithFilteredResult(_0x36f30d,_0x79f378){return function(_0x45c34a){if(_0x45c34a){var _0x87e494=typeof _0x79f378[_0xe471('0x1d')]===_0xe471('0x1e')&&typeof _0x79f378[_0xe471('0x1f')]===_0xe471('0x1e');var _0x23bb9f=_0x45c34a[_0xe471('0x20')];var _0x4ab156=_0x87e494?0x0:_0x79f378['offset'];var _0x139786=_0x87e494?_0x45c34a[_0xe471('0x20')]:_0x79f378[_0xe471('0x1d')]+_0x79f378[_0xe471('0x1f')];var _0x2be279;if(_0x139786>=_0x23bb9f){_0x139786=_0x23bb9f;_0x2be279=0xc8;}else{_0x2be279=0xce;}_0x36f30d[_0xe471('0x1a')](_0x2be279);return _0x36f30d['set'](_0xe471('0x21'),_0x4ab156+'-'+_0x139786+'/'+_0x23bb9f)['json'](_0x45c34a);}return null;};}function patchUpdates(_0x5aac81){return function(_0x29d77d){try{jsonpatch[_0xe471('0x22')](_0x29d77d,_0x5aac81,!![]);}catch(_0x1b426e){return BPromise[_0xe471('0x23')](_0x1b426e);}return _0x29d77d[_0xe471('0x24')]();};}function saveUpdates(_0xac97b5,_0x3b3c23){return function(_0x2751a2){if(_0x2751a2){return _0x2751a2['update'](_0xac97b5)[_0xe471('0x25')](function(_0x1b7b4d){return _0x1b7b4d;});}return null;};}function removeEntity(_0x35e998,_0x4a9b6e){return function(_0x1fc21d){if(_0x1fc21d){return _0x1fc21d[_0xe471('0x26')]()['then'](function(){_0x35e998['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x1238ae,_0x49d250){return function(_0x10508d){if(!_0x10508d){_0x1238ae[_0xe471('0x27')](0x194);}return _0x10508d;};}function handleError(_0x4945cb,_0x465f9e){_0x465f9e=_0x465f9e||0x1f4;return function(_0x58e97e){logger[_0xe471('0x28')](_0x58e97e[_0xe471('0x29')]);if(_0x58e97e['name']){delete _0x58e97e[_0xe471('0x2a')];}_0x4945cb[_0xe471('0x1a')](_0x465f9e)[_0xe471('0x2b')](_0x58e97e);};}exports[_0xe471('0x2c')]=function(_0x31050d,_0x5a0ad1){var _0x408b8={},_0x581512={},_0x47126a={'count':0x0,'rows':[]};var _0xe5ed1d=_[_0xe471('0x2d')](db['VoiceQueuesLog'][_0xe471('0x2e')],function(_0x59e7da){return{'name':_0x59e7da['fieldName'],'type':_0x59e7da['type'][_0xe471('0x2f')]};});_0x581512['model']=_[_0xe471('0x2d')](_0xe5ed1d,_0xe471('0x2a'));_0x581512[_0xe471('0x30')]=_['keys'](_0x31050d[_0xe471('0x30')]);_0x581512[_0xe471('0x31')]=_[_0xe471('0x32')](_0x581512[_0xe471('0x33')],_0x581512[_0xe471('0x30')]);_0x408b8[_0xe471('0x34')]=_['intersection'](_0x581512[_0xe471('0x33')],qs[_0xe471('0x35')](_0x31050d[_0xe471('0x30')][_0xe471('0x35')]));_0x408b8[_0xe471('0x34')]=_0x408b8[_0xe471('0x34')][_0xe471('0x36')]?_0x408b8[_0xe471('0x34')]:_0x581512['model'];if(!_0x31050d['query']['hasOwnProperty'](_0xe471('0x37'))){_0x408b8[_0xe471('0x1f')]=qs[_0xe471('0x1f')](_0x31050d['query']['limit']);_0x408b8[_0xe471('0x1d')]=qs[_0xe471('0x1d')](_0x31050d[_0xe471('0x30')]['offset']);}_0x408b8['order']=qs[_0xe471('0x38')](_0x31050d[_0xe471('0x30')]['sort']);_0x408b8['where']=qs[_0xe471('0x31')](_[_0xe471('0x39')](_0x31050d[_0xe471('0x30')],_0x581512['filters']),_0xe5ed1d);if(_0x31050d[_0xe471('0x30')][_0xe471('0x3a')]){_0x408b8['where']=_[_0xe471('0x3b')](_0x408b8[_0xe471('0x3c')],{'$or':_[_0xe471('0x2d')](_0xe5ed1d,function(_0x4074b9){if(_0x4074b9['type']!==_0xe471('0x3d')){var _0x594216={};_0x594216[_0x4074b9[_0xe471('0x2a')]]={'$like':'%'+_0x31050d[_0xe471('0x30')][_0xe471('0x3a')]+'%'};return _0x594216;}})});}_0x408b8=_[_0xe471('0x3b')]({},_0x408b8,_0x31050d['options']);var _0x1f1cd1={'where':_0x408b8[_0xe471('0x3c')]};return db[_0xe471('0x3e')][_0xe471('0x20')](_0x1f1cd1)[_0xe471('0x25')](function(_0xd1bf2){_0x47126a[_0xe471('0x20')]=_0xd1bf2;if(_0x31050d[_0xe471('0x30')][_0xe471('0x3f')]){_0x408b8[_0xe471('0x40')]=[{'all':!![]}];}return db[_0xe471('0x3e')][_0xe471('0x41')](_0x408b8);})[_0xe471('0x25')](function(_0x33fbb7){_0x47126a[_0xe471('0x42')]=_0x33fbb7;return _0x47126a;})[_0xe471('0x25')](respondWithFilteredResult(_0x5a0ad1,_0x408b8))['catch'](handleError(_0x5a0ad1,null));};exports[_0xe471('0x43')]=function(_0x567199,_0x528ad9){var _0x28a806={'raw':!![],'where':{'id':_0x567199[_0xe471('0x44')]['id']}},_0x49313b={};_0x49313b[_0xe471('0x33')]=_[_0xe471('0x45')](db[_0xe471('0x3e')][_0xe471('0x2e')]);_0x49313b[_0xe471('0x30')]=_[_0xe471('0x45')](_0x567199[_0xe471('0x30')]);_0x49313b[_0xe471('0x31')]=_[_0xe471('0x32')](_0x49313b[_0xe471('0x33')],_0x49313b[_0xe471('0x30')]);_0x28a806[_0xe471('0x34')]=_['intersection'](_0x49313b[_0xe471('0x33')],qs[_0xe471('0x35')](_0x567199[_0xe471('0x30')][_0xe471('0x35')]));_0x28a806[_0xe471('0x34')]=_0x28a806[_0xe471('0x34')]['length']?_0x28a806[_0xe471('0x34')]:_0x49313b[_0xe471('0x33')];if(_0x567199[_0xe471('0x30')][_0xe471('0x3f')]){_0x28a806[_0xe471('0x40')]=[{'all':!![]}];}_0x28a806=_[_0xe471('0x3b')]({},_0x28a806,_0x567199['options']);return db[_0xe471('0x3e')][_0xe471('0x46')](_0x28a806)[_0xe471('0x25')](handleEntityNotFound(_0x528ad9,null))['then'](respondWithResult(_0x528ad9,null))[_0xe471('0x47')](handleError(_0x528ad9,null));};exports[_0xe471('0x48')]=function(_0x5b1c0c,_0x193918){return db[_0xe471('0x3e')][_0xe471('0x48')](_0x5b1c0c['body'],{})[_0xe471('0x25')](respondWithResult(_0x193918,0xc9))[_0xe471('0x47')](handleError(_0x193918,null));};exports[_0xe471('0x49')]=function(_0x514a8c,_0x57cbcc){if(_0x514a8c[_0xe471('0x4a')]['id']){delete _0x514a8c[_0xe471('0x4a')]['id'];}return db['VoiceQueuesLog'][_0xe471('0x46')]({'where':{'id':_0x514a8c[_0xe471('0x44')]['id']}})['then'](handleEntityNotFound(_0x57cbcc,null))['then'](saveUpdates(_0x514a8c[_0xe471('0x4a')],null))[_0xe471('0x25')](respondWithResult(_0x57cbcc,null))[_0xe471('0x47')](handleError(_0x57cbcc,null));};exports[_0xe471('0x26')]=function(_0x264727,_0x4c9e0f){return db[_0xe471('0x3e')][_0xe471('0x46')]({'where':{'id':_0x264727[_0xe471('0x44')]['id']}})[_0xe471('0x25')](handleEntityNotFound(_0x4c9e0f,null))['then'](removeEntity(_0x4c9e0f,null))['catch'](handleError(_0x4c9e0f,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x15be=['moment','bluebird','request-promise','path','rimraf','../../config/environment','./voiceQueuesLog.attributes','event_dtm','event','dtm','lodash','util','api'];(function(_0x38895e,_0xdd08f9){var _0x23600e=function(_0x20047b){while(--_0x20047b){_0x38895e['push'](_0x38895e['shift']());}};_0x23600e(++_0xdd08f9);}(_0x15be,0x65));var _0xe15b=function(_0x791641,_0x57880d){_0x791641=_0x791641-0x0;var _0x32d71a=_0x15be[_0x791641];return _0x32d71a;};'use strict';var _=require(_0xe15b('0x0'));var util=require(_0xe15b('0x1'));var logger=require('../../config/logger')(_0xe15b('0x2'));var moment=require(_0xe15b('0x3'));var BPromise=require(_0xe15b('0x4'));var rp=require(_0xe15b('0x5'));var fs=require('fs');var path=require(_0xe15b('0x6'));var rimraf=require(_0xe15b('0x7'));var config=require(_0xe15b('0x8'));var attributes=require(_0xe15b('0x9'));module['exports']=function(_0x1a29de,_0x3a8c33){return _0x1a29de['define']('VoiceQueuesLog',attributes,{'tableName':'voice_queues_log','paranoid':![],'indexes':[{'name':_0xe15b('0xa'),'fields':[_0xe15b('0xb'),_0xe15b('0xc')]}],'timestamps':![]});};
\ No newline at end of file
+var _0x0c65=['../../config/environment','./voiceQueuesLog.attributes','define','VoiceQueuesLog','voice_queues_log','event_dtm','dtm','lodash','../../config/logger','api','moment','bluebird','request-promise','path'];(function(_0x1e3a2f,_0x1f08bb){var _0xc67b0b=function(_0x1a5363){while(--_0x1a5363){_0x1e3a2f['push'](_0x1e3a2f['shift']());}};_0xc67b0b(++_0x1f08bb);}(_0x0c65,0x19d));var _0x50c6=function(_0x31d558,_0xb34593){_0x31d558=_0x31d558-0x0;var _0x1e561b=_0x0c65[_0x31d558];return _0x1e561b;};'use strict';var _=require(_0x50c6('0x0'));var util=require('util');var logger=require(_0x50c6('0x1'))(_0x50c6('0x2'));var moment=require(_0x50c6('0x3'));var BPromise=require(_0x50c6('0x4'));var rp=require(_0x50c6('0x5'));var fs=require('fs');var path=require(_0x50c6('0x6'));var rimraf=require('rimraf');var config=require(_0x50c6('0x7'));var attributes=require(_0x50c6('0x8'));module['exports']=function(_0x4087c4,_0x55d805){return _0x4087c4[_0x50c6('0x9')](_0x50c6('0xa'),attributes,{'tableName':_0x50c6('0xb'),'paranoid':![],'indexes':[{'name':_0x50c6('0xc'),'fields':['event',_0x50c6('0xd')]}],'timestamps':![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x50ab=['catch','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','client','request','VoiceQueuesLog,\x20%s,\x20%s','request\x20sent','VoiceQueuesLog,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info'];(function(_0x59462a,_0x19d7ed){var _0x499b83=function(_0x7c0cf0){while(--_0x7c0cf0){_0x59462a['push'](_0x59462a['shift']());}};_0x499b83(++_0x19d7ed);}(_0x50ab,0xf1));var _0xb50a=function(_0x54b292,_0x4cb287){_0x54b292=_0x54b292-0x0;var _0xc6fec2=_0x50ab[_0x54b292];return _0xc6fec2;};'use strict';var _=require('lodash');var util=require(_0xb50a('0x0'));var moment=require(_0xb50a('0x1'));var BPromise=require(_0xb50a('0x2'));var rs=require(_0xb50a('0x3'));var fs=require('fs');var Redis=require(_0xb50a('0x4'));var db=require(_0xb50a('0x5'))['db'];var utils=require(_0xb50a('0x6'));var logger=require('../../config/logger')(_0xb50a('0x7'));var config=require(_0xb50a('0x8'));var jayson=require('jayson/promise');var client=jayson[_0xb50a('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x482e92,_0x51302c,_0x3a0e10){return new BPromise(function(_0x1831ae,_0x48acbb){return client[_0xb50a('0xa')](_0x482e92,_0x3a0e10)['then'](function(_0x4b6622){logger['info'](_0xb50a('0xb'),_0x51302c,_0xb50a('0xc'));logger['debug'](_0xb50a('0xd'),_0x51302c,_0xb50a('0xc'),JSON[_0xb50a('0xe')](_0x4b6622));if(_0x4b6622[_0xb50a('0xf')]){if(_0x4b6622['error'][_0xb50a('0x10')]===0x1f4){logger[_0xb50a('0xf')](_0xb50a('0xb'),_0x51302c,_0x4b6622[_0xb50a('0xf')][_0xb50a('0x11')]);return _0x48acbb(_0x4b6622[_0xb50a('0xf')][_0xb50a('0x11')]);}logger[_0xb50a('0xf')](_0xb50a('0xb'),_0x51302c,_0x4b6622['error'][_0xb50a('0x11')]);return _0x1831ae(_0x4b6622[_0xb50a('0xf')][_0xb50a('0x11')]);}else{logger[_0xb50a('0x12')](_0xb50a('0xb'),_0x51302c,'request\x20sent');_0x1831ae(_0x4b6622['result'][_0xb50a('0x11')]);}})[_0xb50a('0x13')](function(_0x1c606a){logger['error']('VoiceQueuesLog,\x20%s,\x20%s',_0x51302c,_0x1c606a);_0x48acbb(_0x1c606a);});});}
\ No newline at end of file
+var _0x80fb=['util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','request','then','info','VoiceQueuesLog,\x20%s,\x20%s','request\x20sent','debug','VoiceQueuesLog,\x20%s,\x20%s,\x20%s','stringify','error','message','catch'];(function(_0x24cabb,_0x8a4fdc){var _0x1a2882=function(_0x1ecda4){while(--_0x1ecda4){_0x24cabb['push'](_0x24cabb['shift']());}};_0x1a2882(++_0x8a4fdc);}(_0x80fb,0x11e));var _0xb80f=function(_0x50aa2e,_0xfbd6f0){_0x50aa2e=_0x50aa2e-0x0;var _0x5e07f0=_0x80fb[_0x50aa2e];return _0x5e07f0;};'use strict';var _=require('lodash');var util=require(_0xb80f('0x0'));var moment=require(_0xb80f('0x1'));var BPromise=require('bluebird');var rs=require(_0xb80f('0x2'));var fs=require('fs');var Redis=require(_0xb80f('0x3'));var db=require(_0xb80f('0x4'))['db'];var utils=require(_0xb80f('0x5'));var logger=require(_0xb80f('0x6'))(_0xb80f('0x7'));var config=require(_0xb80f('0x8'));var jayson=require(_0xb80f('0x9'));var client=jayson['client'][_0xb80f('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x251de5,_0x44cc46,_0x2083ab){return new BPromise(function(_0x28027c,_0x1094bb){return client[_0xb80f('0xb')](_0x251de5,_0x2083ab)[_0xb80f('0xc')](function(_0x197faa){logger[_0xb80f('0xd')](_0xb80f('0xe'),_0x44cc46,_0xb80f('0xf'));logger[_0xb80f('0x10')](_0xb80f('0x11'),_0x44cc46,_0xb80f('0xf'),JSON[_0xb80f('0x12')](_0x197faa));if(_0x197faa['error']){if(_0x197faa[_0xb80f('0x13')]['code']===0x1f4){logger[_0xb80f('0x13')](_0xb80f('0xe'),_0x44cc46,_0x197faa[_0xb80f('0x13')][_0xb80f('0x14')]);return _0x1094bb(_0x197faa[_0xb80f('0x13')][_0xb80f('0x14')]);}logger[_0xb80f('0x13')](_0xb80f('0xe'),_0x44cc46,_0x197faa[_0xb80f('0x13')][_0xb80f('0x14')]);return _0x28027c(_0x197faa[_0xb80f('0x13')][_0xb80f('0x14')]);}else{logger[_0xb80f('0xd')](_0xb80f('0xe'),_0x44cc46,_0xb80f('0xf'));_0x28027c(_0x197faa['result'][_0xb80f('0x14')]);}})[_0xb80f('0x15')](function(_0x541c7b){logger['error'](_0xb80f('0xe'),_0x44cc46,_0x541c7b);_0x1094bb(_0x541c7b);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf4d2=['update','destroy','exports','util','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','./voiceRecording.controller','get','isAuthenticated','index','/describe','describe','show','download','downloads','/:id/transcribe','post','create','runTranscribe','/:id'];(function(_0x37c22c,_0x28a70d){var _0x119d79=function(_0x243a13){while(--_0x243a13){_0x37c22c['push'](_0x37c22c['shift']());}};_0x119d79(++_0x28a70d);}(_0xf4d2,0x16b));var _0x2f4d=function(_0x2498cb,_0x2bd5f8){_0x2498cb=_0x2498cb-0x0;var _0x1b5588=_0xf4d2[_0x2498cb];return _0x1b5588;};'use strict';var multer=require('multer');var util=require(_0x2f4d('0x0'));var path=require(_0x2f4d('0x1'));var timeout=require(_0x2f4d('0x2'));var express=require(_0x2f4d('0x3'));var router=express[_0x2f4d('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0x2f4d('0x5'));var interaction=require(_0x2f4d('0x6'));var config=require('../../config/environment');var controller=require(_0x2f4d('0x7'));router[_0x2f4d('0x8')]('/',auth[_0x2f4d('0x9')](),controller[_0x2f4d('0xa')]);router['get'](_0x2f4d('0xb'),auth[_0x2f4d('0x9')](),controller[_0x2f4d('0xc')]);router[_0x2f4d('0x8')]('/:id',auth[_0x2f4d('0x9')](),controller[_0x2f4d('0xd')]);router[_0x2f4d('0x8')]('/:id/download',auth[_0x2f4d('0x9')](),controller[_0x2f4d('0xe')]);router[_0x2f4d('0x8')]('/:id/downloads',controller[_0x2f4d('0xf')]);router[_0x2f4d('0x8')](_0x2f4d('0x10'),auth['isAuthenticated'](),controller['downloadTranscribe']);router[_0x2f4d('0x11')]('/',auth[_0x2f4d('0x9')](),controller[_0x2f4d('0x12')]);router[_0x2f4d('0x11')](_0x2f4d('0x10'),auth[_0x2f4d('0x9')](),controller[_0x2f4d('0x13')]);router['put'](_0x2f4d('0x14'),auth[_0x2f4d('0x9')](),controller[_0x2f4d('0x15')]);router['delete']('/:id',auth[_0x2f4d('0x9')](),controller[_0x2f4d('0x16')]);module[_0x2f4d('0x17')]=router;
\ No newline at end of file
+var _0x2d7c=['delete','destroy','exports','multer','util','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./voiceRecording.controller','isAuthenticated','get','/:id/download','download','/:id/downloads','/:id/transcribe','post'];(function(_0x31da02,_0xf7b075){var _0x17fa29=function(_0x56c06f){while(--_0x56c06f){_0x31da02['push'](_0x31da02['shift']());}};_0x17fa29(++_0xf7b075);}(_0x2d7c,0x107));var _0xc2d7=function(_0x32ad2d,_0x188218){_0x32ad2d=_0x32ad2d-0x0;var _0x2e5aa2=_0x2d7c[_0x32ad2d];return _0x2e5aa2;};'use strict';var multer=require(_0xc2d7('0x0'));var util=require(_0xc2d7('0x1'));var path=require(_0xc2d7('0x2'));var timeout=require(_0xc2d7('0x3'));var express=require(_0xc2d7('0x4'));var router=express[_0xc2d7('0x5')]();var fs_extra=require('fs-extra');var auth=require(_0xc2d7('0x6'));var interaction=require(_0xc2d7('0x7'));var config=require(_0xc2d7('0x8'));var controller=require(_0xc2d7('0x9'));router['get']('/',auth[_0xc2d7('0xa')](),controller['index']);router['get']('/describe',auth[_0xc2d7('0xa')](),controller['describe']);router[_0xc2d7('0xb')]('/:id',auth[_0xc2d7('0xa')](),controller['show']);router[_0xc2d7('0xb')](_0xc2d7('0xc'),auth[_0xc2d7('0xa')](),controller[_0xc2d7('0xd')]);router[_0xc2d7('0xb')](_0xc2d7('0xe'),controller['downloads']);router[_0xc2d7('0xb')](_0xc2d7('0xf'),auth[_0xc2d7('0xa')](),controller['downloadTranscribe']);router[_0xc2d7('0x10')]('/',auth[_0xc2d7('0xa')](),controller['create']);router[_0xc2d7('0x10')](_0xc2d7('0xf'),auth['isAuthenticated'](),controller['runTranscribe']);router['put']('/:id',auth['isAuthenticated'](),controller['update']);router[_0xc2d7('0x11')]('/:id',auth[_0xc2d7('0xa')](),controller[_0xc2d7('0x12')]);module[_0xc2d7('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['DATE','updatedAt','toString','sequelize','moment','path','getDataValue','extname','value','STRING','setDataValue','channel','TEXT','NEW','FLOAT','BOOLEAN','format','MM-DD-YYYY\x20HH:mm'];(function(_0x13d07a,_0x41efc3){var _0x5ee0ee=function(_0x4ca94a){while(--_0x4ca94a){_0x13d07a['push'](_0x13d07a['shift']());}};_0x5ee0ee(++_0x41efc3);}(_0xa9e0,0x123));var _0x0a9e=function(_0x49ca18,_0x5e6d05){_0x49ca18=_0x49ca18-0x0;var _0x145d54=_0xa9e0[_0x49ca18];return _0x145d54;};'use strict';var Sequelize=require(_0x0a9e('0x0'));var moment=require(_0x0a9e('0x1'));var path=require(_0x0a9e('0x2'));module['exports']={'format':{'type':Sequelize['VIRTUAL'],'get':function(){return this[_0x0a9e('0x3')]('value')?path[_0x0a9e('0x4')](this[_0x0a9e('0x3')](_0x0a9e('0x5'))):undefined;}},'uniqueid':{'type':Sequelize[_0x0a9e('0x6')]},'channel':{'type':Sequelize[_0x0a9e('0x6')],'set':function(_0x57b080){if(_0x57b080){this[_0x0a9e('0x7')](_0x0a9e('0x8'),_0x57b080);this[_0x0a9e('0x7')]('membername',_0x57b080['split'](/\/|-/)[0x1]);}}},'membername':{'type':Sequelize[_0x0a9e('0x6')]},'calleridnum':{'type':Sequelize['STRING']},'calleridname':{'type':Sequelize['STRING']},'connectedlinenum':{'type':Sequelize[_0x0a9e('0x6')]},'connectedlinename':{'type':Sequelize[_0x0a9e('0x6')]},'accountcode':{'type':Sequelize[_0x0a9e('0x6')]},'context':{'type':Sequelize[_0x0a9e('0x6')]},'exten':{'type':Sequelize[_0x0a9e('0x6')]},'value':{'type':Sequelize[_0x0a9e('0x6')]},'type':{'type':Sequelize['STRING']},'rating':{'type':Sequelize['INTEGER'],'validate':{'max':0x5,'min':0x0}},'queue':{'type':Sequelize['STRING']},'userDisposition':{'type':Sequelize['STRING']},'userSecondDisposition':{'type':Sequelize[_0x0a9e('0x6')]},'userThirdDisposition':{'type':Sequelize[_0x0a9e('0x6')]},'location':{'type':Sequelize[_0x0a9e('0x9')]},'transcribeName':{'type':Sequelize[_0x0a9e('0x6')]},'transcribeStatus':{'type':Sequelize[_0x0a9e('0x6')],'defaultValue':_0x0a9e('0xa')},'fileUri':{'type':Sequelize['TEXT']},'fileText':{'type':Sequelize[_0x0a9e('0x9')]},'failureReason':{'type':Sequelize[_0x0a9e('0x9')]},'sentiment':{'type':Sequelize[_0x0a9e('0x6')]},'sPositive':{'type':Sequelize[_0x0a9e('0xb')]},'sNegative':{'type':Sequelize[_0x0a9e('0xb')]},'sNeutral':{'type':Sequelize[_0x0a9e('0xb')]},'sMixed':{'type':Sequelize['FLOAT']},'tempSentiment':{'type':Sequelize[_0x0a9e('0xc')],'defaultValue':![]},'createdAt':{'type':Sequelize['DATE'],'get':function(){return moment(this[_0x0a9e('0x3')]('createdAt'))[_0x0a9e('0xd')](_0x0a9e('0xe'))['toString']();}},'updatedAt':{'type':Sequelize[_0x0a9e('0xf')],'get':function(){return moment(this['getDataValue'](_0x0a9e('0x10')))[_0x0a9e('0xd')](_0x0a9e('0xe'))[_0x0a9e('0x11')]();}}};
\ No newline at end of file
+var _0xa9e0=['DATE','updatedAt','toString','sequelize','moment','path','getDataValue','extname','value','STRING','setDataValue','channel','TEXT','NEW','FLOAT','BOOLEAN','format','MM-DD-YYYY\x20HH:mm'];(function(_0x4565bf,_0x5ad9d6){var _0x5610ba=function(_0x170988){while(--_0x170988){_0x4565bf['push'](_0x4565bf['shift']());}};_0x5610ba(++_0x5ad9d6);}(_0xa9e0,0x123));var _0x0a9e=function(_0xf0bcac,_0x531755){_0xf0bcac=_0xf0bcac-0x0;var _0x4e4c65=_0xa9e0[_0xf0bcac];return _0x4e4c65;};'use strict';var Sequelize=require(_0x0a9e('0x0'));var moment=require(_0x0a9e('0x1'));var path=require(_0x0a9e('0x2'));module['exports']={'format':{'type':Sequelize['VIRTUAL'],'get':function(){return this[_0x0a9e('0x3')]('value')?path[_0x0a9e('0x4')](this[_0x0a9e('0x3')](_0x0a9e('0x5'))):undefined;}},'uniqueid':{'type':Sequelize[_0x0a9e('0x6')]},'channel':{'type':Sequelize[_0x0a9e('0x6')],'set':function(_0x57b080){if(_0x57b080){this[_0x0a9e('0x7')](_0x0a9e('0x8'),_0x57b080);this[_0x0a9e('0x7')]('membername',_0x57b080['split'](/\/|-/)[0x1]);}}},'membername':{'type':Sequelize[_0x0a9e('0x6')]},'calleridnum':{'type':Sequelize['STRING']},'calleridname':{'type':Sequelize['STRING']},'connectedlinenum':{'type':Sequelize[_0x0a9e('0x6')]},'connectedlinename':{'type':Sequelize[_0x0a9e('0x6')]},'accountcode':{'type':Sequelize[_0x0a9e('0x6')]},'context':{'type':Sequelize[_0x0a9e('0x6')]},'exten':{'type':Sequelize[_0x0a9e('0x6')]},'value':{'type':Sequelize[_0x0a9e('0x6')]},'type':{'type':Sequelize['STRING']},'rating':{'type':Sequelize['INTEGER'],'validate':{'max':0x5,'min':0x0}},'queue':{'type':Sequelize['STRING']},'userDisposition':{'type':Sequelize['STRING']},'userSecondDisposition':{'type':Sequelize[_0x0a9e('0x6')]},'userThirdDisposition':{'type':Sequelize[_0x0a9e('0x6')]},'location':{'type':Sequelize[_0x0a9e('0x9')]},'transcribeName':{'type':Sequelize[_0x0a9e('0x6')]},'transcribeStatus':{'type':Sequelize[_0x0a9e('0x6')],'defaultValue':_0x0a9e('0xa')},'fileUri':{'type':Sequelize['TEXT']},'fileText':{'type':Sequelize[_0x0a9e('0x9')]},'failureReason':{'type':Sequelize[_0x0a9e('0x9')]},'sentiment':{'type':Sequelize[_0x0a9e('0x6')]},'sPositive':{'type':Sequelize[_0x0a9e('0xb')]},'sNegative':{'type':Sequelize[_0x0a9e('0xb')]},'sNeutral':{'type':Sequelize[_0x0a9e('0xb')]},'sMixed':{'type':Sequelize['FLOAT']},'tempSentiment':{'type':Sequelize[_0x0a9e('0xc')],'defaultValue':![]},'createdAt':{'type':Sequelize['DATE'],'get':function(){return moment(this[_0x0a9e('0x3')]('createdAt'))[_0x0a9e('0xd')](_0x0a9e('0xe'))['toString']();}},'updatedAt':{'type':Sequelize[_0x0a9e('0xf')],'get':function(){return moment(this['getDataValue'](_0x0a9e('0x10')))[_0x0a9e('0xd')](_0x0a9e('0xe'))[_0x0a9e('0x11')]();}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x57f3=['runSentiment','downloadTranscribe','fileText','root','/server/files/transcribes/transcribe_','.txt','Transcript\x20not\x20available','eml-format','fast-json-patch','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','aws-sdk','uuid/v4','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','limit','undefined','count','set','Content-Range','apply','reject','save','update','then','destroy','end','stack','name','send','index','VoiceRecording','rawAttributes','key','model','differenceBy','map','format','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','sort','where','pick','filter','merge','type','options','includeAll','include','rows','catch','show','params','find','create','body','describe','download','../../components/encryptor','uniqueid','value','%s.cypher','existsSync','decryptFile','secrets','Sequelize','ValidationError','VoiceRecording\x20not\x20found','filename','extname','unlink','message','Not\x20found','downloads','sequelize','MD5','$and','push','isNil','Entity\x20not\x20found','info','cancellazione\x20fisica\x20documento\x20%s','File:\x20\x22','\x22\x20trovato\x20eseguo\x20la\x20cancellazione','unlinkSync','listBuckets','createBucket','upload','TranscribeService','startTranscriptionJob','[RUNTRANSCRIPT][%d]\x20Starting\x20voice\x20recording\x20upload\x20in\x20bucket\x20%s','basename','readFileSync','[RUNTRANSCRIPT][%d]\x20Voice\x20recording\x20uploaded\x20in\x20bucket\x20%s\x20(%s)','Location','bucket','Bucket','location','TranscriptionJobName','transcribeName','TranscriptionJob','transcribeStatus','findOne','recording','Voice\x20Recording\x20not\x20found','Setting','transcribe','transcribeAccountId','transcribeRegion','language','Transcribe\x20not\x20configured','sentiment','sentimentAccountId','sentimentRegion','Sentiment\x20Analysis\x20not\x20configured','Cloud\x20Provider\x20not\x20available','Cloud\x20Provider\x20not\x20configured','data1','data2','Buckets','Name','[RUNTRANSCRIPT][%d]\x20Bucket\x20%s\x20not\x20available','[RUNTRANSCRIPT][%d]\x20Bucket\x20%s\x20available','[RUNTRANSCRIPT][%d]\x20Transcript\x20action\x20already\x20requested','IN_PROGRESS'];(function(_0x55e048,_0x531b9e){var _0x1eaa93=function(_0x52fbde){while(--_0x52fbde){_0x55e048['push'](_0x55e048['shift']());}};_0x1eaa93(++_0x531b9e);}(_0x57f3,0xa1));var _0x357f=function(_0x502c7d,_0x2f1285){_0x502c7d=_0x502c7d-0x0;var _0x30b7ed=_0x57f3[_0x502c7d];return _0x30b7ed;};'use strict';var emlformat=require(_0x357f('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x357f('0x1'));var rp=require('request-promise');var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x357f('0x2'));var path=require(_0x357f('0x3'));var sox=require(_0x357f('0x4'));var csv=require(_0x357f('0x5'));var ejs=require(_0x357f('0x6'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x357f('0x7'));var squel=require(_0x357f('0x8'));var crypto=require(_0x357f('0x9'));var jsforce=require(_0x357f('0xa'));var deskjs=require(_0x357f('0xb'));var toCsv=require(_0x357f('0x5'));var querystring=require(_0x357f('0xc'));var Papa=require(_0x357f('0xd'));var AWS=require(_0x357f('0xe'));var uuidv4=require(_0x357f('0xf'));var Redis=require(_0x357f('0x10'));var authService=require(_0x357f('0x11'));var qs=require(_0x357f('0x12'));var as=require(_0x357f('0x13'));var hardwareService=require(_0x357f('0x14'));var logger=require(_0x357f('0x15'))(_0x357f('0x16'));var utils=require(_0x357f('0x17'));var config=require(_0x357f('0x18'));var licenseUtil=require(_0x357f('0x19'));var db=require(_0x357f('0x1a'))['db'];function respondWithStatusCode(_0x12a718,_0x21a86c){_0x21a86c=_0x21a86c||0xcc;return function(_0x46ccbe){if(_0x46ccbe){return _0x12a718[_0x357f('0x1b')](_0x21a86c);}return _0x12a718[_0x357f('0x1c')](_0x21a86c)['end']();};}function respondWithResult(_0x188b62,_0x5ad2c1){_0x5ad2c1=_0x5ad2c1||0xc8;return function(_0x3851e6){if(_0x3851e6){return _0x188b62['status'](_0x5ad2c1)[_0x357f('0x1d')](_0x3851e6);}};}function respondWithFilteredResult(_0x21f542,_0x592da7){return function(_0x3a12c3){if(_0x3a12c3){var _0x54a067=typeof _0x592da7[_0x357f('0x1e')]==='undefined'&&typeof _0x592da7[_0x357f('0x1f')]===_0x357f('0x20');var _0x3abaf5=_0x3a12c3[_0x357f('0x21')];var _0x38ed32=_0x54a067?0x0:_0x592da7[_0x357f('0x1e')];var _0x2e6ae9=_0x54a067?_0x3a12c3[_0x357f('0x21')]:_0x592da7['offset']+_0x592da7[_0x357f('0x1f')];var _0x6d0e98;if(_0x2e6ae9>=_0x3abaf5){_0x2e6ae9=_0x3abaf5;_0x6d0e98=0xc8;}else{_0x6d0e98=0xce;}_0x21f542[_0x357f('0x1c')](_0x6d0e98);return _0x21f542[_0x357f('0x22')](_0x357f('0x23'),_0x38ed32+'-'+_0x2e6ae9+'/'+_0x3abaf5)[_0x357f('0x1d')](_0x3a12c3);}return null;};}function patchUpdates(_0xf52fd3){return function(_0x5333a8){try{jsonpatch[_0x357f('0x24')](_0x5333a8,_0xf52fd3,!![]);}catch(_0x10fe6a){return BPromise[_0x357f('0x25')](_0x10fe6a);}return _0x5333a8[_0x357f('0x26')]();};}function saveUpdates(_0x19fa0a,_0xc8589c){return function(_0x514ebc){if(_0x514ebc){return _0x514ebc[_0x357f('0x27')](_0x19fa0a)[_0x357f('0x28')](function(_0x5e7940){return _0x5e7940;});}return null;};}function removeEntity(_0x4c1803,_0x59a5b8){return function(_0xe2732e){if(_0xe2732e){return _0xe2732e[_0x357f('0x29')]()[_0x357f('0x28')](function(){_0x4c1803[_0x357f('0x1c')](0xcc)[_0x357f('0x2a')]();});}};}function handleEntityNotFound(_0x4a084d,_0x2f9ba0){return function(_0x6a4d5f){if(!_0x6a4d5f){_0x4a084d[_0x357f('0x1b')](0x194);}return _0x6a4d5f;};}function handleError(_0x411c82,_0x590caa){_0x590caa=_0x590caa||0x1f4;return function(_0x12daf4){logger['error'](_0x12daf4[_0x357f('0x2b')]);if(_0x12daf4[_0x357f('0x2c')]){delete _0x12daf4['name'];}_0x411c82[_0x357f('0x1c')](_0x590caa)[_0x357f('0x2d')](_0x12daf4);};}exports[_0x357f('0x2e')]=function(_0x432f3a,_0x236530){var _0x5c54e5={},_0x35ef97={},_0x5300cc={'count':0x0,'rows':[]};var _0x24cd58=_['map'](db[_0x357f('0x2f')][_0x357f('0x30')],function(_0x29c517){return{'name':_0x29c517['fieldName'],'type':_0x29c517['type'][_0x357f('0x31')]};});_0x35ef97[_0x357f('0x32')]=_[_0x357f('0x33')](_[_0x357f('0x34')](_0x24cd58,_0x357f('0x2c')),[_0x357f('0x35')]);_0x35ef97[_0x357f('0x36')]=_[_0x357f('0x37')](_0x432f3a[_0x357f('0x36')]);_0x35ef97[_0x357f('0x38')]=_[_0x357f('0x39')](_0x35ef97[_0x357f('0x32')],_0x35ef97[_0x357f('0x36')]);_0x5c54e5['attributes']=_['intersection'](_0x35ef97['model'],qs[_0x357f('0x3a')](_0x432f3a[_0x357f('0x36')][_0x357f('0x3a')]));_0x5c54e5[_0x357f('0x3b')]=_0x5c54e5[_0x357f('0x3b')][_0x357f('0x3c')]?_0x5c54e5[_0x357f('0x3b')]:_0x35ef97[_0x357f('0x32')];if(!_0x432f3a['query'][_0x357f('0x3d')]('nolimit')){_0x5c54e5[_0x357f('0x1f')]=qs[_0x357f('0x1f')](_0x432f3a[_0x357f('0x36')][_0x357f('0x1f')]);_0x5c54e5[_0x357f('0x1e')]=qs[_0x357f('0x1e')](_0x432f3a[_0x357f('0x36')][_0x357f('0x1e')]);}_0x5c54e5['order']=qs['sort'](_0x432f3a[_0x357f('0x36')][_0x357f('0x3e')]);_0x5c54e5[_0x357f('0x3f')]=qs[_0x357f('0x38')](_[_0x357f('0x40')](_0x432f3a['query'],_0x35ef97[_0x357f('0x38')]),_0x24cd58);if(_0x432f3a[_0x357f('0x36')][_0x357f('0x41')]){_0x5c54e5[_0x357f('0x3f')]=_[_0x357f('0x42')](_0x5c54e5[_0x357f('0x3f')],{'$or':_[_0x357f('0x34')](_0x24cd58,function(_0x34c888){if(_0x34c888[_0x357f('0x43')]!=='VIRTUAL'){var _0x583fae={};_0x583fae[_0x34c888[_0x357f('0x2c')]]={'$like':'%'+_0x432f3a[_0x357f('0x36')][_0x357f('0x41')]+'%'};return _0x583fae;}})});}_0x5c54e5=_['merge']({},_0x5c54e5,_0x432f3a[_0x357f('0x44')]);var _0x2e50cf={'where':_0x5c54e5[_0x357f('0x3f')]};return db[_0x357f('0x2f')][_0x357f('0x21')](_0x2e50cf)['then'](function(_0x1fed46){_0x5300cc[_0x357f('0x21')]=_0x1fed46;if(_0x432f3a['query'][_0x357f('0x45')]){_0x5c54e5[_0x357f('0x46')]=[{'all':!![]}];}return db[_0x357f('0x2f')]['findAll'](_0x5c54e5);})[_0x357f('0x28')](function(_0x57c86b){_0x5300cc[_0x357f('0x47')]=_0x57c86b;return _0x5300cc;})[_0x357f('0x28')](respondWithFilteredResult(_0x236530,_0x5c54e5))[_0x357f('0x48')](handleError(_0x236530,null));};exports[_0x357f('0x49')]=function(_0x2760bb,_0x1175b8){var _0xdb2dc5={'raw':![],'where':{'id':_0x2760bb[_0x357f('0x4a')]['id']}},_0x5684e7={};_0x5684e7[_0x357f('0x32')]=_[_0x357f('0x37')](db[_0x357f('0x2f')][_0x357f('0x30')]);_0x5684e7[_0x357f('0x36')]=_[_0x357f('0x37')](_0x2760bb[_0x357f('0x36')]);_0x5684e7[_0x357f('0x38')]=_['intersection'](_0x5684e7[_0x357f('0x32')],_0x5684e7[_0x357f('0x36')]);_0xdb2dc5[_0x357f('0x3b')]=_[_0x357f('0x39')](_0x5684e7[_0x357f('0x32')],qs[_0x357f('0x3a')](_0x2760bb['query']['fields']));_0xdb2dc5[_0x357f('0x3b')]=_0xdb2dc5[_0x357f('0x3b')]['length']?_0xdb2dc5[_0x357f('0x3b')]:_0x5684e7[_0x357f('0x32')];if(_0x2760bb[_0x357f('0x36')]['includeAll']){_0xdb2dc5[_0x357f('0x46')]=[{'all':!![]}];}_0xdb2dc5=_[_0x357f('0x42')]({},_0xdb2dc5,_0x2760bb[_0x357f('0x44')]);return db['VoiceRecording'][_0x357f('0x4b')](_0xdb2dc5)[_0x357f('0x28')](handleEntityNotFound(_0x1175b8,null))[_0x357f('0x28')](respondWithResult(_0x1175b8,null))[_0x357f('0x48')](handleError(_0x1175b8,null));};exports['create']=function(_0xea2d8d,_0x376fac){return db[_0x357f('0x2f')][_0x357f('0x4c')](_0xea2d8d['body'],{})[_0x357f('0x28')](respondWithResult(_0x376fac,0xc9))['catch'](handleError(_0x376fac,null));};exports[_0x357f('0x27')]=function(_0x3a2888,_0x4d37e8){if(_0x3a2888[_0x357f('0x4d')]['id']){delete _0x3a2888['body']['id'];}return db[_0x357f('0x2f')][_0x357f('0x4b')]({'where':{'id':_0x3a2888['params']['id']}})['then'](handleEntityNotFound(_0x4d37e8,null))['then'](saveUpdates(_0x3a2888[_0x357f('0x4d')],null))[_0x357f('0x28')](respondWithResult(_0x4d37e8,null))[_0x357f('0x48')](handleError(_0x4d37e8,null));};exports[_0x357f('0x4e')]=function(_0x3f0264,_0xf0a9da){return db[_0x357f('0x2f')][_0x357f('0x4e')]()[_0x357f('0x28')](respondWithResult(_0xf0a9da,null))[_0x357f('0x48')](handleError(_0xf0a9da,null));};exports[_0x357f('0x4f')]=function(_0x4bab6c,_0x2a84be,_0x420d2a){var _0x4b4488=require(_0x357f('0x50'));var _0x2be2b7=![];var _0x16dd89={};if(_0x4bab6c[_0x357f('0x36')][_0x357f('0x43')]&&_0x4bab6c['query'][_0x357f('0x43')]===_0x357f('0x51')){_0x16dd89[_0x357f('0x51')]=_0x4bab6c[_0x357f('0x4a')]['id'];}else{_0x16dd89['id']=_0x4bab6c['params']['id'];}return db[_0x357f('0x2f')]['find']({'where':_0x16dd89,'attributes':['id',_0x357f('0x52')],'raw':!![]})['then'](handleEntityNotFound(_0x2a84be,null))['then'](function(_0x2c7fe9){if(_0x2c7fe9){var _0x16ebe0=_0x2c7fe9['value'];var _0x4c463c=util['format'](_0x357f('0x53'),_0x16ebe0);if(fs[_0x357f('0x54')](_0x4c463c)){_0x2be2b7=!![];return _0x4b4488[_0x357f('0x55')](_0x4c463c,_0x16ebe0,config[_0x357f('0x56')]['recording'])[_0x357f('0x28')](function(){return _0x2c7fe9;});}return _0x2c7fe9;}})[_0x357f('0x28')](function(_0x3c1c99){if(_0x3c1c99){var _0x1861c4=_0x3c1c99[_0x357f('0x52')];if(!fs[_0x357f('0x54')](_0x1861c4)){throw new db[(_0x357f('0x57'))][(_0x357f('0x58'))](_0x357f('0x59'));}if(_0x3c1c99['filename']){return _0x2a84be[_0x357f('0x4f')](_0x1861c4,_0x3c1c99[_0x357f('0x5a')]+path[_0x357f('0x5b')](_0x1861c4),function(){if(_0x2be2b7){fs[_0x357f('0x5c')](_0x1861c4);}});}else{return _0x2a84be['download'](_0x1861c4,function(_0x482479){if(_0x2be2b7){fs[_0x357f('0x5c')](_0x1861c4);}});}}})['catch'](function(_0x4f859c){if(_0x4f859c[_0x357f('0x5d')]===_0x357f('0x59')){_0x2a84be['status'](0x194)[_0x357f('0x2d')](_0x357f('0x5e'));}else{return handleError(_0x2a84be,null);}});};exports[_0x357f('0x5f')]=function(_0x1a2ac2,_0x55afa0,_0xb57d2d){var _0x289a68=require(_0x357f('0x50'));var _0x3f5192=![];var _0x2f8946={'$and':[db[_0x357f('0x60')]['where'](db[_0x357f('0x60')]['fn'](_0x357f('0x61'),db[_0x357f('0x60')]['col'](_0x357f('0x51'))),_0x1a2ac2[_0x357f('0x36')]['token'])]};if(_0x1a2ac2[_0x357f('0x36')][_0x357f('0x43')]&&_0x1a2ac2[_0x357f('0x36')][_0x357f('0x43')]==='uniqueid'){_0x2f8946[_0x357f('0x62')][_0x357f('0x63')]({'uniqueid':_0x1a2ac2['params']['id']});}else{_0x2f8946[_0x357f('0x62')][_0x357f('0x63')]({'id':_0x1a2ac2['params']['id']});}return db['VoiceRecording'][_0x357f('0x4b')]({'where':_0x2f8946,'attributes':['id',_0x357f('0x52')],'raw':!![]})[_0x357f('0x28')](handleEntityNotFound(_0x55afa0,null))[_0x357f('0x28')](function(_0x373f4c){if(_0x373f4c){var _0x2b868e=util[_0x357f('0x35')]('%s.cypher',_0x373f4c[_0x357f('0x52')]);if(fs[_0x357f('0x54')](_0x2b868e)){_0x3f5192=!![];return _0x289a68[_0x357f('0x55')](_0x2b868e,_0x373f4c[_0x357f('0x52')],config[_0x357f('0x56')]['recording'])[_0x357f('0x28')](function(){return _0x373f4c;});}return _0x373f4c;}})[_0x357f('0x28')](function(_0x2c1f62){if(_0x2c1f62){if(!fs[_0x357f('0x54')](_0x2c1f62['value'])){throw new db[(_0x357f('0x57'))][(_0x357f('0x58'))](_0x357f('0x59'));}if(_0x2c1f62['filename']){return _0x55afa0[_0x357f('0x4f')](_0x2c1f62[_0x357f('0x52')],_0x2c1f62[_0x357f('0x5a')]+path['extname'](_0x2c1f62[_0x357f('0x52')]),function(){if(_0x3f5192){fs['unlink'](_0x2c1f62['value']);}});}else{return _0x55afa0[_0x357f('0x4f')](_0x2c1f62[_0x357f('0x52')],function(_0xc15094){if(_0x3f5192){fs[_0x357f('0x5c')](_0x2c1f62[_0x357f('0x52')]);}});}}})[_0x357f('0x48')](handleError(_0x55afa0,null));};exports[_0x357f('0x29')]=function(_0x3a55c4,_0x3eec9d){return db[_0x357f('0x2f')][_0x357f('0x4b')]({'where':{'id':_0x3a55c4[_0x357f('0x4a')]['id']}})[_0x357f('0x28')](function(_0x112025){if(_[_0x357f('0x64')](_0x112025)){throw new ReferenceError(_0x357f('0x65'));}return _0x112025;})[_0x357f('0x28')](function(_0x2cd332){var _0x472164=_0x2cd332[_0x357f('0x52')];logger[_0x357f('0x66')](_0x357f('0x67'),_0x472164);if(!_['isNil'](_0x2cd332[_0x357f('0x52')])&&fs[_0x357f('0x54')](_0x472164)){logger[_0x357f('0x66')](_0x357f('0x68')+_0x472164+_0x357f('0x69'));fs[_0x357f('0x6a')](_0x472164);}_0x472164=_0x472164+'.cypher';if(!_[_0x357f('0x64')](_0x2cd332[_0x357f('0x52')])&&fs[_0x357f('0x54')](_0x472164)){logger[_0x357f('0x66')](_0x357f('0x68')+_0x472164+'\x22\x20trovato\x20eseguo\x20la\x20cancellazione');fs[_0x357f('0x6a')](_0x472164);}return _0x2cd332;})[_0x357f('0x28')](function(_0x324437){if(!_0x324437)throw new InternalError();return _0x324437[_0x357f('0x29')]();})[_0x357f('0x28')](function(){_0x3eec9d['status'](0xcc)[_0x357f('0x2a')]();})[_0x357f('0x48')](handleError(_0x3eec9d,null));};function getBucketslist(_0x4c23ec,_0x59eda0,_0x242ae1){return new Promise(function(_0x38556c,_0x211d23){var _0x472042=new AWS['S3']({'accessKeyId':_0x59eda0,'secretAccessKey':_0x4c23ec,'region':_0x242ae1});_0x472042[_0x357f('0x6b')]({},function(_0x126309,_0x7e4279){if(_0x126309){return _0x211d23(_0x126309);}else{return _0x38556c(_0x7e4279);}});});}function createBucket(_0x1ccd54,_0x5aee2b,_0x4137a2,_0x4dbc50){return new Promise(function(_0x28f99b,_0xe0092f){var _0xfb8754=new AWS['S3']({'accessKeyId':_0x5aee2b,'secretAccessKey':_0x1ccd54,'region':_0x4137a2});_0xfb8754[_0x357f('0x6c')]({'Bucket':_0x4dbc50},function(_0x2d2bd1,_0x59b09e){if(_0x2d2bd1){return _0xe0092f(_0x2d2bd1);}else{return _0x28f99b(_0x59b09e);}});});}function uploadFile(_0xa1cd10,_0x23058e,_0x3fc6b9,_0x2c7516,_0x3d9941,_0x29cac4){return new Promise(function(_0x17f391,_0x1b2c1b){var _0x258ef9=new AWS['S3']({'accessKeyId':_0x23058e,'secretAccessKey':_0xa1cd10,'region':_0x3fc6b9});_0x258ef9[_0x357f('0x6d')]({'Bucket':_0x2c7516,'Key':_0x3d9941,'Body':_0x29cac4},function(_0x182093,_0x4276d9){if(_0x182093){return _0x1b2c1b(_0x182093);}else{return _0x17f391(_0x4276d9);}});});}function startTranscribe(_0x43a93d,_0x2e20f1,_0x4d43ad,_0x402127,_0x11fd7f,_0x2c6232){return new Promise(function(_0x4a0894,_0x256534){var _0xefbca1=new AWS[(_0x357f('0x6e'))]({'accessKeyId':_0x2e20f1,'secretAccessKey':_0x43a93d,'region':_0x4d43ad});_0xefbca1[_0x357f('0x6f')]({'TranscriptionJobName':_0x402127,'LanguageCode':_0x11fd7f,'Media':{'MediaFileUri':_0x2c6232}},function(_0x46ee1c,_0x4ad638){if(_0x46ee1c){return _0x256534(_0x46ee1c);}else{return _0x4a0894(_0x4ad638);}});});}function transcribe(_0x528f2d,_0x3f21fa,_0x23ce37,_0x10e0ef,_0x31e433,_0x171fd0,_0x424fc6){return new Promise(function(_0x1aa324,_0x2da803){var _0x15a877={};logger[_0x357f('0x66')](util[_0x357f('0x35')](_0x357f('0x70'),_0x528f2d,_0x31e433));return uploadFile(_0x3f21fa,_0x23ce37,_0x10e0ef,_0x31e433,path[_0x357f('0x71')](_0x171fd0),fs[_0x357f('0x72')](_0x171fd0))[_0x357f('0x28')](function(_0x3b78ba){logger[_0x357f('0x66')](util[_0x357f('0x35')](_0x357f('0x73'),_0x528f2d,_0x31e433,_0x3b78ba[_0x357f('0x74')]));_0x15a877[_0x357f('0x75')]=_0x3b78ba[_0x357f('0x76')];_0x15a877[_0x357f('0x77')]=_0x3b78ba[_0x357f('0x74')];logger[_0x357f('0x66')](util['format']('[RUNTRANSCRIPT][%d]\x20Sending\x20transcribe\x20request',_0x528f2d));return startTranscribe(_0x3f21fa,_0x23ce37,_0x10e0ef,uuidv4(),_0x424fc6,_0x3b78ba['Location']);})[_0x357f('0x28')](function(_0xe58258){logger[_0x357f('0x66')](util[_0x357f('0x35')]('[RUNTRANSCRIPT][%d]\x20Transcription\x20job\x20%s\x20created',_0x528f2d,_0xe58258['TranscriptionJob'][_0x357f('0x78')]));_0x15a877[_0x357f('0x79')]=_0xe58258[_0x357f('0x7a')][_0x357f('0x78')];_0x15a877[_0x357f('0x7b')]=_0xe58258['TranscriptionJob']['TranscriptionJobStatus'];return _0x1aa324(_0x15a877);})[_0x357f('0x48')](function(_0x176ad5){return _0x2da803(_0x176ad5);});});}exports['runTranscribe']=function(_0x19d494,_0x357dd1,_0x404f96){var _0x5284dc;var _0x1687fd;var _0x433871;var _0x277e1d=require(_0x357f('0x50'));return db['VoiceRecording'][_0x357f('0x7c')]({'where':{'id':_0x19d494['params']['id']}})[_0x357f('0x28')](function(_0x3097a4){if(_0x3097a4){var _0x31fd25=util[_0x357f('0x35')](_0x357f('0x53'),_0x3097a4[_0x357f('0x52')]);if(fs[_0x357f('0x54')](_0x31fd25)){cypher=!![];return _0x277e1d[_0x357f('0x55')](_0x31fd25,_0x3097a4[_0x357f('0x52')],config[_0x357f('0x56')][_0x357f('0x7d')])[_0x357f('0x28')](function(){return _0x3097a4;});}return _0x3097a4;}})[_0x357f('0x28')](function(_0x1787eb){if(!_0x1787eb){throw new db[(_0x357f('0x57'))][(_0x357f('0x58'))](_0x357f('0x7e'));}_0x1687fd=_0x1787eb;return db[_0x357f('0x7f')][_0x357f('0x7c')]({'where':{'id':0x1}});})['then'](handleEntityNotFound(_0x357dd1,null))['then'](function(_0xee9ee0){if(_0xee9ee0){_0x5284dc=_0xee9ee0;if(!_0x5284dc[_0x357f('0x80')]||!_0x5284dc[_0x357f('0x81')]||!_0x5284dc[_0x357f('0x82')]||!_0x5284dc[_0x357f('0x83')]||!_0x5284dc['bucket']){throw new db[(_0x357f('0x57'))][(_0x357f('0x58'))](_0x357f('0x84'));}if(_0x19d494[_0x357f('0x4d')]['runSentiment']&&(!_0x5284dc[_0x357f('0x85')]||!_0x5284dc[_0x357f('0x86')]||!_0x5284dc[_0x357f('0x87')]||!_0x5284dc[_0x357f('0x83')]||!_0x5284dc['bucket'])){throw new db[(_0x357f('0x57'))][(_0x357f('0x58'))](_0x357f('0x88'));}return db['CloudProvider']['findOne']({'where':{'id':_0x5284dc['transcribeAccountId']}});}})[_0x357f('0x28')](function(_0x3ced32){if(!_0x3ced32){throw new db[(_0x357f('0x57'))]['ValidationError'](_0x357f('0x89'));}if(!_0x3ced32['data1']||!_0x3ced32['data2']){throw new db[(_0x357f('0x57'))]['ValidationError'](_0x357f('0x8a'));}_0x433871=_0x3ced32;return getBucketslist(_0x433871[_0x357f('0x8b')],_0x433871[_0x357f('0x8c')],_0x5284dc[_0x357f('0x82')]);})[_0x357f('0x28')](function(_0x23f845){if(_0x23f845&&_0x23f845['Buckets']){var _0x2525a7=_[_0x357f('0x4b')](_0x23f845[_0x357f('0x8d')],function(_0x191c22){return _0x191c22[_0x357f('0x8e')]===_0x5284dc[_0x357f('0x75')];});if(!_0x2525a7){logger[_0x357f('0x66')](util[_0x357f('0x35')](_0x357f('0x8f'),_0x19d494[_0x357f('0x4a')]['id'],_0x5284dc[_0x357f('0x75')]));return createBucket(_0x433871[_0x357f('0x8b')],_0x433871[_0x357f('0x8c')],_0x5284dc['transcribeRegion'],_0x5284dc[_0x357f('0x75')]);}logger['info'](util['format'](_0x357f('0x90'),_0x19d494[_0x357f('0x4a')]['id'],_0x5284dc[_0x357f('0x75')]));return;}})['then'](function(_0x5bed58){if(_0x1687fd[_0x357f('0x7b')]==='NEW'){return transcribe(_0x19d494[_0x357f('0x4a')]['id'],_0x433871[_0x357f('0x8b')],_0x433871[_0x357f('0x8c')],_0x5284dc[_0x357f('0x82')],_0x5284dc[_0x357f('0x75')],_0x1687fd[_0x357f('0x52')],_0x5284dc['language']);}else{logger[_0x357f('0x66')](util['format'](_0x357f('0x91'),_0x19d494[_0x357f('0x4a')]['id']));return{'transcribeStatus':_0x357f('0x92')};}})[_0x357f('0x28')](function(_0x36ca0e){if(_0x36ca0e){_0x36ca0e['tempSentiment']=_0x19d494['body'][_0x357f('0x93')];return _0x1687fd['updateAttributes'](_0x36ca0e);}})['then'](respondWithResult(_0x357dd1,null))[_0x357f('0x48')](handleError(_0x357dd1,null));};function writeFile(_0x74759b,_0x5048e3){return new Promise(function(_0x29036d,_0x26059b){fs['writeFile'](_0x5048e3,_0x74759b,function(_0x2a040c,_0x27756f){if(_0x2a040c){return _0x26059b(_0x2a040c);}else{return _0x29036d(_0x27756f);}});});}exports[_0x357f('0x94')]=function(_0x3e5f61,_0x4d0e5c,_0xea6db8){return db[_0x357f('0x2f')][_0x357f('0x7c')]({'where':{'id':_0x3e5f61['params']['id']}})[_0x357f('0x28')](handleEntityNotFound(_0x4d0e5c))['then'](function(_0x39a7c5){if(_0x39a7c5&&_0x39a7c5[_0x357f('0x95')]){var _0x369733=_0x39a7c5[_0x357f('0x95')];var _0xe461b7=config[_0x357f('0x96')]+_0x357f('0x97')+_0x39a7c5['id']+_0x357f('0x98');if(fs['existsSync'](_0xe461b7)){return _0xe461b7;}return writeFile(_0x369733,_0xe461b7)[_0x357f('0x28')](function(){return _0xe461b7;});}else{throw new db[(_0x357f('0x57'))]['ValidationError'](_0x357f('0x99'));}})['then'](function(_0x334cbe){return _0x4d0e5c['download'](_0x334cbe);})[_0x357f('0x48')](handleError(_0x4d0e5c));};
\ No newline at end of file
+var _0xe53a=['[RUNTRANSCRIPT][%d]\x20Transcript\x20action\x20already\x20requested','tempSentiment','updateAttributes','fileText','root','/server/files/transcribes/transcribe_','.txt','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','querystring','papaparse','uuid/v4','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','undefined','limit','offset','count','set','Content-Range','json','reject','save','then','destroy','sendStatus','error','stack','name','send','map','VoiceRecording','rawAttributes','fieldName','type','key','model','format','query','intersection','attributes','fields','length','order','sort','filters','filter','where','merge','options','includeAll','include','rows','catch','keys','create','body','update','find','describe','download','../../components/encryptor','uniqueid','params','value','%s.cypher','existsSync','decryptFile','recording','ValidationError','filename','extname','Not\x20found','downloads','sequelize','token','$and','push','secrets','Sequelize','VoiceRecording\x20not\x20found','unlink','Entity\x20not\x20found','info','isNil','File:\x20\x22','unlinkSync','.cypher','\x22\x20trovato\x20eseguo\x20la\x20cancellazione','listBuckets','createBucket','upload','startTranscriptionJob','[RUNTRANSCRIPT][%d]\x20Starting\x20voice\x20recording\x20upload\x20in\x20bucket\x20%s','basename','readFileSync','Location','bucket','location','[RUNTRANSCRIPT][%d]\x20Sending\x20transcribe\x20request','[RUNTRANSCRIPT][%d]\x20Transcription\x20job\x20%s\x20created','TranscriptionJobName','transcribeName','TranscriptionJob','runTranscribe','findOne','Setting','transcribeAccountId','language','Transcribe\x20not\x20configured','runSentiment','sentiment','sentimentAccountId','Sentiment\x20Analysis\x20not\x20configured','Cloud\x20Provider\x20not\x20available','data1','transcribeRegion','[RUNTRANSCRIPT][%d]\x20Bucket\x20%s\x20not\x20available','data2','[RUNTRANSCRIPT][%d]\x20Bucket\x20%s\x20available','transcribeStatus'];(function(_0x5d184e,_0x5a9ea6){var _0x2ff1e7=function(_0x1a774a){while(--_0x1a774a){_0x5d184e['push'](_0x5d184e['shift']());}};_0x2ff1e7(++_0x5a9ea6);}(_0xe53a,0x95));var _0xae53=function(_0x2c4c6c,_0x563ef8){_0x2c4c6c=_0x2c4c6c-0x0;var _0x5f4a07=_0xe53a[_0x2c4c6c];return _0x5f4a07;};'use strict';var emlformat=require(_0xae53('0x0'));var rimraf=require(_0xae53('0x1'));var zipdir=require(_0xae53('0x2'));var jsonpatch=require(_0xae53('0x3'));var rp=require(_0xae53('0x4'));var moment=require(_0xae53('0x5'));var BPromise=require(_0xae53('0x6'));var Mustache=require(_0xae53('0x7'));var util=require(_0xae53('0x8'));var path=require(_0xae53('0x9'));var sox=require(_0xae53('0xa'));var csv=require(_0xae53('0xb'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xae53('0xc'));var _=require(_0xae53('0xd'));var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xae53('0xb'));var querystring=require(_0xae53('0xe'));var Papa=require(_0xae53('0xf'));var AWS=require('aws-sdk');var uuidv4=require(_0xae53('0x10'));var Redis=require(_0xae53('0x11'));var authService=require(_0xae53('0x12'));var qs=require(_0xae53('0x13'));var as=require(_0xae53('0x14'));var hardwareService=require(_0xae53('0x15'));var logger=require('../../config/logger')('api');var utils=require(_0xae53('0x16'));var config=require(_0xae53('0x17'));var licenseUtil=require(_0xae53('0x18'));var db=require(_0xae53('0x19'))['db'];function respondWithStatusCode(_0x5d4b6d,_0x464530){_0x464530=_0x464530||0xcc;return function(_0x440584){if(_0x440584){return _0x5d4b6d['sendStatus'](_0x464530);}return _0x5d4b6d[_0xae53('0x1a')](_0x464530)[_0xae53('0x1b')]();};}function respondWithResult(_0x128e20,_0x279225){_0x279225=_0x279225||0xc8;return function(_0x24bff8){if(_0x24bff8){return _0x128e20[_0xae53('0x1a')](_0x279225)['json'](_0x24bff8);}};}function respondWithFilteredResult(_0x41a5cc,_0x10d60c){return function(_0x4abf43){if(_0x4abf43){var _0x3686e4=typeof _0x10d60c['offset']===_0xae53('0x1c')&&typeof _0x10d60c[_0xae53('0x1d')]==='undefined';var _0x239977=_0x4abf43['count'];var _0x349a1a=_0x3686e4?0x0:_0x10d60c[_0xae53('0x1e')];var _0x472cc5=_0x3686e4?_0x4abf43[_0xae53('0x1f')]:_0x10d60c[_0xae53('0x1e')]+_0x10d60c[_0xae53('0x1d')];var _0x4d0d07;if(_0x472cc5>=_0x239977){_0x472cc5=_0x239977;_0x4d0d07=0xc8;}else{_0x4d0d07=0xce;}_0x41a5cc[_0xae53('0x1a')](_0x4d0d07);return _0x41a5cc[_0xae53('0x20')](_0xae53('0x21'),_0x349a1a+'-'+_0x472cc5+'/'+_0x239977)[_0xae53('0x22')](_0x4abf43);}return null;};}function patchUpdates(_0x49857a){return function(_0x5d23be){try{jsonpatch['apply'](_0x5d23be,_0x49857a,!![]);}catch(_0x2584cf){return BPromise[_0xae53('0x23')](_0x2584cf);}return _0x5d23be[_0xae53('0x24')]();};}function saveUpdates(_0x3df0aa,_0x511b96){return function(_0x357156){if(_0x357156){return _0x357156['update'](_0x3df0aa)[_0xae53('0x25')](function(_0x3b16d6){return _0x3b16d6;});}return null;};}function removeEntity(_0x32d090,_0x2125b5){return function(_0x275fb4){if(_0x275fb4){return _0x275fb4[_0xae53('0x26')]()[_0xae53('0x25')](function(){_0x32d090[_0xae53('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x3bc396,_0x553ebf){return function(_0x36ce15){if(!_0x36ce15){_0x3bc396[_0xae53('0x27')](0x194);}return _0x36ce15;};}function handleError(_0x28799d,_0x2ed98e){_0x2ed98e=_0x2ed98e||0x1f4;return function(_0x482cec){logger[_0xae53('0x28')](_0x482cec[_0xae53('0x29')]);if(_0x482cec[_0xae53('0x2a')]){delete _0x482cec[_0xae53('0x2a')];}_0x28799d[_0xae53('0x1a')](_0x2ed98e)[_0xae53('0x2b')](_0x482cec);};}exports['index']=function(_0x2e2a65,_0x2ce8ed){var _0x33bcbf={},_0xa80db0={},_0x577153={'count':0x0,'rows':[]};var _0x27b4a6=_[_0xae53('0x2c')](db[_0xae53('0x2d')][_0xae53('0x2e')],function(_0x319cff){return{'name':_0x319cff[_0xae53('0x2f')],'type':_0x319cff[_0xae53('0x30')][_0xae53('0x31')]};});_0xa80db0[_0xae53('0x32')]=_['differenceBy'](_[_0xae53('0x2c')](_0x27b4a6,_0xae53('0x2a')),[_0xae53('0x33')]);_0xa80db0[_0xae53('0x34')]=_['keys'](_0x2e2a65[_0xae53('0x34')]);_0xa80db0['filters']=_[_0xae53('0x35')](_0xa80db0['model'],_0xa80db0[_0xae53('0x34')]);_0x33bcbf[_0xae53('0x36')]=_['intersection'](_0xa80db0[_0xae53('0x32')],qs[_0xae53('0x37')](_0x2e2a65[_0xae53('0x34')][_0xae53('0x37')]));_0x33bcbf[_0xae53('0x36')]=_0x33bcbf['attributes'][_0xae53('0x38')]?_0x33bcbf['attributes']:_0xa80db0['model'];if(!_0x2e2a65[_0xae53('0x34')]['hasOwnProperty']('nolimit')){_0x33bcbf[_0xae53('0x1d')]=qs[_0xae53('0x1d')](_0x2e2a65[_0xae53('0x34')][_0xae53('0x1d')]);_0x33bcbf[_0xae53('0x1e')]=qs['offset'](_0x2e2a65[_0xae53('0x34')][_0xae53('0x1e')]);}_0x33bcbf[_0xae53('0x39')]=qs[_0xae53('0x3a')](_0x2e2a65[_0xae53('0x34')][_0xae53('0x3a')]);_0x33bcbf['where']=qs[_0xae53('0x3b')](_['pick'](_0x2e2a65[_0xae53('0x34')],_0xa80db0['filters']),_0x27b4a6);if(_0x2e2a65['query'][_0xae53('0x3c')]){_0x33bcbf[_0xae53('0x3d')]=_[_0xae53('0x3e')](_0x33bcbf[_0xae53('0x3d')],{'$or':_[_0xae53('0x2c')](_0x27b4a6,function(_0x293f1a){if(_0x293f1a[_0xae53('0x30')]!=='VIRTUAL'){var _0x1eaa64={};_0x1eaa64[_0x293f1a[_0xae53('0x2a')]]={'$like':'%'+_0x2e2a65[_0xae53('0x34')][_0xae53('0x3c')]+'%'};return _0x1eaa64;}})});}_0x33bcbf=_[_0xae53('0x3e')]({},_0x33bcbf,_0x2e2a65[_0xae53('0x3f')]);var _0x28279c={'where':_0x33bcbf[_0xae53('0x3d')]};return db['VoiceRecording'][_0xae53('0x1f')](_0x28279c)[_0xae53('0x25')](function(_0xdd557c){_0x577153[_0xae53('0x1f')]=_0xdd557c;if(_0x2e2a65['query'][_0xae53('0x40')]){_0x33bcbf[_0xae53('0x41')]=[{'all':!![]}];}return db['VoiceRecording']['findAll'](_0x33bcbf);})[_0xae53('0x25')](function(_0x106524){_0x577153[_0xae53('0x42')]=_0x106524;return _0x577153;})['then'](respondWithFilteredResult(_0x2ce8ed,_0x33bcbf))[_0xae53('0x43')](handleError(_0x2ce8ed,null));};exports['show']=function(_0x2d4d41,_0x31b306){var _0x573dfe={'raw':![],'where':{'id':_0x2d4d41['params']['id']}},_0x4ce707={};_0x4ce707['model']=_[_0xae53('0x44')](db['VoiceRecording'][_0xae53('0x2e')]);_0x4ce707['query']=_[_0xae53('0x44')](_0x2d4d41[_0xae53('0x34')]);_0x4ce707['filters']=_[_0xae53('0x35')](_0x4ce707[_0xae53('0x32')],_0x4ce707[_0xae53('0x34')]);_0x573dfe[_0xae53('0x36')]=_[_0xae53('0x35')](_0x4ce707['model'],qs['fields'](_0x2d4d41[_0xae53('0x34')]['fields']));_0x573dfe[_0xae53('0x36')]=_0x573dfe[_0xae53('0x36')]['length']?_0x573dfe[_0xae53('0x36')]:_0x4ce707['model'];if(_0x2d4d41[_0xae53('0x34')][_0xae53('0x40')]){_0x573dfe[_0xae53('0x41')]=[{'all':!![]}];}_0x573dfe=_[_0xae53('0x3e')]({},_0x573dfe,_0x2d4d41['options']);return db[_0xae53('0x2d')]['find'](_0x573dfe)[_0xae53('0x25')](handleEntityNotFound(_0x31b306,null))['then'](respondWithResult(_0x31b306,null))['catch'](handleError(_0x31b306,null));};exports[_0xae53('0x45')]=function(_0x3e410f,_0x1aac9b){return db[_0xae53('0x2d')][_0xae53('0x45')](_0x3e410f[_0xae53('0x46')],{})[_0xae53('0x25')](respondWithResult(_0x1aac9b,0xc9))[_0xae53('0x43')](handleError(_0x1aac9b,null));};exports[_0xae53('0x47')]=function(_0x4fd18f,_0x13c1c8){if(_0x4fd18f[_0xae53('0x46')]['id']){delete _0x4fd18f['body']['id'];}return db[_0xae53('0x2d')][_0xae53('0x48')]({'where':{'id':_0x4fd18f['params']['id']}})[_0xae53('0x25')](handleEntityNotFound(_0x13c1c8,null))[_0xae53('0x25')](saveUpdates(_0x4fd18f[_0xae53('0x46')],null))[_0xae53('0x25')](respondWithResult(_0x13c1c8,null))[_0xae53('0x43')](handleError(_0x13c1c8,null));};exports['describe']=function(_0x3cef4a,_0xb5a79c){return db[_0xae53('0x2d')][_0xae53('0x49')]()[_0xae53('0x25')](respondWithResult(_0xb5a79c,null))[_0xae53('0x43')](handleError(_0xb5a79c,null));};exports[_0xae53('0x4a')]=function(_0x55f458,_0x56586e,_0x157c55){var _0xbbeb34=require(_0xae53('0x4b'));var _0x329fc0=![];var _0x47a22b={};if(_0x55f458['query'][_0xae53('0x30')]&&_0x55f458[_0xae53('0x34')][_0xae53('0x30')]===_0xae53('0x4c')){_0x47a22b[_0xae53('0x4c')]=_0x55f458[_0xae53('0x4d')]['id'];}else{_0x47a22b['id']=_0x55f458[_0xae53('0x4d')]['id'];}return db[_0xae53('0x2d')][_0xae53('0x48')]({'where':_0x47a22b,'attributes':['id',_0xae53('0x4e')],'raw':!![]})['then'](handleEntityNotFound(_0x56586e,null))[_0xae53('0x25')](function(_0x2b668d){if(_0x2b668d){var _0xd574c0=_0x2b668d[_0xae53('0x4e')];var _0x429264=util['format'](_0xae53('0x4f'),_0xd574c0);if(fs[_0xae53('0x50')](_0x429264)){_0x329fc0=!![];return _0xbbeb34[_0xae53('0x51')](_0x429264,_0xd574c0,config['secrets'][_0xae53('0x52')])['then'](function(){return _0x2b668d;});}return _0x2b668d;}})['then'](function(_0x342c7){if(_0x342c7){var _0x4b0f42=_0x342c7['value'];if(!fs[_0xae53('0x50')](_0x4b0f42)){throw new db['Sequelize'][(_0xae53('0x53'))]('VoiceRecording\x20not\x20found');}if(_0x342c7[_0xae53('0x54')]){return _0x56586e[_0xae53('0x4a')](_0x4b0f42,_0x342c7[_0xae53('0x54')]+path[_0xae53('0x55')](_0x4b0f42),function(){if(_0x329fc0){fs['unlink'](_0x4b0f42);}});}else{return _0x56586e['download'](_0x4b0f42,function(_0x2021ad){if(_0x329fc0){fs['unlink'](_0x4b0f42);}});}}})[_0xae53('0x43')](function(_0x5229ff){if(_0x5229ff['message']==='VoiceRecording\x20not\x20found'){_0x56586e[_0xae53('0x1a')](0x194)['send'](_0xae53('0x56'));}else{return handleError(_0x56586e,null);}});};exports[_0xae53('0x57')]=function(_0x3a3b66,_0x369f3d,_0x492a68){var _0xf790b9=require(_0xae53('0x4b'));var _0x24ec11=![];var _0x412d95={'$and':[db[_0xae53('0x58')][_0xae53('0x3d')](db[_0xae53('0x58')]['fn']('MD5',db['sequelize']['col'](_0xae53('0x4c'))),_0x3a3b66[_0xae53('0x34')][_0xae53('0x59')])]};if(_0x3a3b66[_0xae53('0x34')]['type']&&_0x3a3b66[_0xae53('0x34')][_0xae53('0x30')]===_0xae53('0x4c')){_0x412d95[_0xae53('0x5a')][_0xae53('0x5b')]({'uniqueid':_0x3a3b66[_0xae53('0x4d')]['id']});}else{_0x412d95[_0xae53('0x5a')][_0xae53('0x5b')]({'id':_0x3a3b66[_0xae53('0x4d')]['id']});}return db[_0xae53('0x2d')][_0xae53('0x48')]({'where':_0x412d95,'attributes':['id',_0xae53('0x4e')],'raw':!![]})[_0xae53('0x25')](handleEntityNotFound(_0x369f3d,null))['then'](function(_0x559cf3){if(_0x559cf3){var _0x4eb5f2=util['format'](_0xae53('0x4f'),_0x559cf3[_0xae53('0x4e')]);if(fs[_0xae53('0x50')](_0x4eb5f2)){_0x24ec11=!![];return _0xf790b9['decryptFile'](_0x4eb5f2,_0x559cf3['value'],config[_0xae53('0x5c')]['recording'])[_0xae53('0x25')](function(){return _0x559cf3;});}return _0x559cf3;}})['then'](function(_0x35b4e9){if(_0x35b4e9){if(!fs['existsSync'](_0x35b4e9[_0xae53('0x4e')])){throw new db[(_0xae53('0x5d'))][(_0xae53('0x53'))](_0xae53('0x5e'));}if(_0x35b4e9[_0xae53('0x54')]){return _0x369f3d[_0xae53('0x4a')](_0x35b4e9[_0xae53('0x4e')],_0x35b4e9[_0xae53('0x54')]+path[_0xae53('0x55')](_0x35b4e9['value']),function(){if(_0x24ec11){fs['unlink'](_0x35b4e9[_0xae53('0x4e')]);}});}else{return _0x369f3d['download'](_0x35b4e9[_0xae53('0x4e')],function(_0x19f13d){if(_0x24ec11){fs[_0xae53('0x5f')](_0x35b4e9[_0xae53('0x4e')]);}});}}})['catch'](handleError(_0x369f3d,null));};exports[_0xae53('0x26')]=function(_0x1fae0b,_0xcaa2c){return db[_0xae53('0x2d')]['find']({'where':{'id':_0x1fae0b['params']['id']}})['then'](function(_0x11f4b7){if(_['isNil'](_0x11f4b7)){throw new ReferenceError(_0xae53('0x60'));}return _0x11f4b7;})['then'](function(_0x1f5b80){var _0x4738cf=_0x1f5b80[_0xae53('0x4e')];logger[_0xae53('0x61')]('cancellazione\x20fisica\x20documento\x20%s',_0x4738cf);if(!_[_0xae53('0x62')](_0x1f5b80[_0xae53('0x4e')])&&fs[_0xae53('0x50')](_0x4738cf)){logger[_0xae53('0x61')](_0xae53('0x63')+_0x4738cf+'\x22\x20trovato\x20eseguo\x20la\x20cancellazione');fs[_0xae53('0x64')](_0x4738cf);}_0x4738cf=_0x4738cf+_0xae53('0x65');if(!_[_0xae53('0x62')](_0x1f5b80[_0xae53('0x4e')])&&fs[_0xae53('0x50')](_0x4738cf)){logger[_0xae53('0x61')]('File:\x20\x22'+_0x4738cf+_0xae53('0x66'));fs[_0xae53('0x64')](_0x4738cf);}return _0x1f5b80;})[_0xae53('0x25')](function(_0x4c71d7){if(!_0x4c71d7)throw new InternalError();return _0x4c71d7[_0xae53('0x26')]();})['then'](function(){_0xcaa2c[_0xae53('0x1a')](0xcc)[_0xae53('0x1b')]();})[_0xae53('0x43')](handleError(_0xcaa2c,null));};function getBucketslist(_0x1915ab,_0x50638e,_0x41a36b){return new Promise(function(_0x3a3290,_0x2bb980){var _0x2d7a14=new AWS['S3']({'accessKeyId':_0x50638e,'secretAccessKey':_0x1915ab,'region':_0x41a36b});_0x2d7a14[_0xae53('0x67')]({},function(_0x1e1186,_0x257893){if(_0x1e1186){return _0x2bb980(_0x1e1186);}else{return _0x3a3290(_0x257893);}});});}function createBucket(_0x12a7ac,_0x2d6c9a,_0x168b54,_0x58c6fc){return new Promise(function(_0x4fbea4,_0x513742){var _0xa63ab1=new AWS['S3']({'accessKeyId':_0x2d6c9a,'secretAccessKey':_0x12a7ac,'region':_0x168b54});_0xa63ab1[_0xae53('0x68')]({'Bucket':_0x58c6fc},function(_0x3f9b9b,_0x5e68de){if(_0x3f9b9b){return _0x513742(_0x3f9b9b);}else{return _0x4fbea4(_0x5e68de);}});});}function uploadFile(_0x30f90b,_0x23fd6b,_0x4fc2d1,_0xfafd3b,_0x5b315b,_0x1dad7e){return new Promise(function(_0x26209f,_0x2ac948){var _0x4c75c4=new AWS['S3']({'accessKeyId':_0x23fd6b,'secretAccessKey':_0x30f90b,'region':_0x4fc2d1});_0x4c75c4[_0xae53('0x69')]({'Bucket':_0xfafd3b,'Key':_0x5b315b,'Body':_0x1dad7e},function(_0x295874,_0x143c74){if(_0x295874){return _0x2ac948(_0x295874);}else{return _0x26209f(_0x143c74);}});});}function startTranscribe(_0x12257f,_0x5e0302,_0xa22e7e,_0x1c6b91,_0x40c70f,_0x3c7d9e){return new Promise(function(_0x2db380,_0x2b2137){var _0x269fa8=new AWS['TranscribeService']({'accessKeyId':_0x5e0302,'secretAccessKey':_0x12257f,'region':_0xa22e7e});_0x269fa8[_0xae53('0x6a')]({'TranscriptionJobName':_0x1c6b91,'LanguageCode':_0x40c70f,'Media':{'MediaFileUri':_0x3c7d9e}},function(_0x48406a,_0x1bc335){if(_0x48406a){return _0x2b2137(_0x48406a);}else{return _0x2db380(_0x1bc335);}});});}function transcribe(_0x487721,_0x370f33,_0x180a9a,_0x598c23,_0x45ad97,_0x57cb89,_0x630357){return new Promise(function(_0x773de6,_0x3b6657){var _0x3c8185={};logger[_0xae53('0x61')](util[_0xae53('0x33')](_0xae53('0x6b'),_0x487721,_0x45ad97));return uploadFile(_0x370f33,_0x180a9a,_0x598c23,_0x45ad97,path[_0xae53('0x6c')](_0x57cb89),fs[_0xae53('0x6d')](_0x57cb89))[_0xae53('0x25')](function(_0x3f6165){logger['info'](util[_0xae53('0x33')]('[RUNTRANSCRIPT][%d]\x20Voice\x20recording\x20uploaded\x20in\x20bucket\x20%s\x20(%s)',_0x487721,_0x45ad97,_0x3f6165[_0xae53('0x6e')]));_0x3c8185[_0xae53('0x6f')]=_0x3f6165['Bucket'];_0x3c8185[_0xae53('0x70')]=_0x3f6165[_0xae53('0x6e')];logger['info'](util[_0xae53('0x33')](_0xae53('0x71'),_0x487721));return startTranscribe(_0x370f33,_0x180a9a,_0x598c23,uuidv4(),_0x630357,_0x3f6165[_0xae53('0x6e')]);})[_0xae53('0x25')](function(_0x56ec8b){logger['info'](util[_0xae53('0x33')](_0xae53('0x72'),_0x487721,_0x56ec8b['TranscriptionJob'][_0xae53('0x73')]));_0x3c8185[_0xae53('0x74')]=_0x56ec8b['TranscriptionJob'][_0xae53('0x73')];_0x3c8185['transcribeStatus']=_0x56ec8b[_0xae53('0x75')]['TranscriptionJobStatus'];return _0x773de6(_0x3c8185);})[_0xae53('0x43')](function(_0x42fa0f){return _0x3b6657(_0x42fa0f);});});}exports[_0xae53('0x76')]=function(_0x2513e2,_0xcdb12b,_0x4f2685){var _0xe38bca;var _0x4e84ef;var _0x32132;var _0x29b9d8=require(_0xae53('0x4b'));return db[_0xae53('0x2d')][_0xae53('0x77')]({'where':{'id':_0x2513e2[_0xae53('0x4d')]['id']}})[_0xae53('0x25')](function(_0x2da2a0){if(_0x2da2a0){var _0x1190b1=util[_0xae53('0x33')](_0xae53('0x4f'),_0x2da2a0[_0xae53('0x4e')]);if(fs['existsSync'](_0x1190b1)){cypher=!![];return _0x29b9d8[_0xae53('0x51')](_0x1190b1,_0x2da2a0['value'],config[_0xae53('0x5c')][_0xae53('0x52')])[_0xae53('0x25')](function(){return _0x2da2a0;});}return _0x2da2a0;}})['then'](function(_0x4cdf59){if(!_0x4cdf59){throw new db['Sequelize'][(_0xae53('0x53'))]('Voice\x20Recording\x20not\x20found');}_0x4e84ef=_0x4cdf59;return db[_0xae53('0x78')][_0xae53('0x77')]({'where':{'id':0x1}});})['then'](handleEntityNotFound(_0xcdb12b,null))[_0xae53('0x25')](function(_0x263813){if(_0x263813){_0xe38bca=_0x263813;if(!_0xe38bca['transcribe']||!_0xe38bca[_0xae53('0x79')]||!_0xe38bca['transcribeRegion']||!_0xe38bca[_0xae53('0x7a')]||!_0xe38bca[_0xae53('0x6f')]){throw new db[(_0xae53('0x5d'))]['ValidationError'](_0xae53('0x7b'));}if(_0x2513e2['body'][_0xae53('0x7c')]&&(!_0xe38bca[_0xae53('0x7d')]||!_0xe38bca[_0xae53('0x7e')]||!_0xe38bca['sentimentRegion']||!_0xe38bca[_0xae53('0x7a')]||!_0xe38bca[_0xae53('0x6f')])){throw new db[(_0xae53('0x5d'))][(_0xae53('0x53'))](_0xae53('0x7f'));}return db['CloudProvider'][_0xae53('0x77')]({'where':{'id':_0xe38bca[_0xae53('0x79')]}});}})[_0xae53('0x25')](function(_0x2e8127){if(!_0x2e8127){throw new db[(_0xae53('0x5d'))][(_0xae53('0x53'))](_0xae53('0x80'));}if(!_0x2e8127['data1']||!_0x2e8127['data2']){throw new db['Sequelize']['ValidationError']('Cloud\x20Provider\x20not\x20configured');}_0x32132=_0x2e8127;return getBucketslist(_0x32132[_0xae53('0x81')],_0x32132['data2'],_0xe38bca[_0xae53('0x82')]);})[_0xae53('0x25')](function(_0x2f69fc){if(_0x2f69fc&&_0x2f69fc['Buckets']){var _0x17e2b1=_['find'](_0x2f69fc['Buckets'],function(_0x2550fb){return _0x2550fb['Name']===_0xe38bca['bucket'];});if(!_0x17e2b1){logger[_0xae53('0x61')](util[_0xae53('0x33')](_0xae53('0x83'),_0x2513e2['params']['id'],_0xe38bca[_0xae53('0x6f')]));return createBucket(_0x32132[_0xae53('0x81')],_0x32132[_0xae53('0x84')],_0xe38bca[_0xae53('0x82')],_0xe38bca[_0xae53('0x6f')]);}logger[_0xae53('0x61')](util[_0xae53('0x33')](_0xae53('0x85'),_0x2513e2[_0xae53('0x4d')]['id'],_0xe38bca['bucket']));return;}})[_0xae53('0x25')](function(_0x2d5e65){if(_0x4e84ef[_0xae53('0x86')]==='NEW'){return transcribe(_0x2513e2['params']['id'],_0x32132[_0xae53('0x81')],_0x32132[_0xae53('0x84')],_0xe38bca['transcribeRegion'],_0xe38bca['bucket'],_0x4e84ef['value'],_0xe38bca[_0xae53('0x7a')]);}else{logger[_0xae53('0x61')](util[_0xae53('0x33')](_0xae53('0x87'),_0x2513e2[_0xae53('0x4d')]['id']));return{'transcribeStatus':'IN_PROGRESS'};}})['then'](function(_0x13973b){if(_0x13973b){_0x13973b[_0xae53('0x88')]=_0x2513e2[_0xae53('0x46')][_0xae53('0x7c')];return _0x4e84ef[_0xae53('0x89')](_0x13973b);}})[_0xae53('0x25')](respondWithResult(_0xcdb12b,null))[_0xae53('0x43')](handleError(_0xcdb12b,null));};function writeFile(_0x1a346b,_0x385ef2){return new Promise(function(_0x54eca6,_0x48bd62){fs['writeFile'](_0x385ef2,_0x1a346b,function(_0x32b400,_0x230e9e){if(_0x32b400){return _0x48bd62(_0x32b400);}else{return _0x54eca6(_0x230e9e);}});});}exports['downloadTranscribe']=function(_0xa474dc,_0x4897a7,_0x412221){return db[_0xae53('0x2d')]['findOne']({'where':{'id':_0xa474dc[_0xae53('0x4d')]['id']}})[_0xae53('0x25')](handleEntityNotFound(_0x4897a7))[_0xae53('0x25')](function(_0x791b2d){if(_0x791b2d&&_0x791b2d[_0xae53('0x8a')]){var _0x5d99eb=_0x791b2d['fileText'];var _0x35a15b=config[_0xae53('0x8b')]+_0xae53('0x8c')+_0x791b2d['id']+_0xae53('0x8d');if(fs[_0xae53('0x50')](_0x35a15b)){return _0x35a15b;}return writeFile(_0x5d99eb,_0x35a15b)[_0xae53('0x25')](function(){return _0x35a15b;});}else{throw new db[(_0xae53('0x5d'))][(_0xae53('0x53'))]('Transcript\x20not\x20available');}})[_0xae53('0x25')](function(_0x28e987){return _0x4897a7['download'](_0x28e987);})[_0xae53('0x43')](handleError(_0x4897a7));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0120=['../../config/environment','./voiceRecording.attributes','exports','VoiceRecording','voice_recordings','uniqueid','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf'];(function(_0x272c47,_0x18ce00){var _0x2d9c4d=function(_0x4e20fd){while(--_0x4e20fd){_0x272c47['push'](_0x272c47['shift']());}};_0x2d9c4d(++_0x18ce00);}(_0x0120,0x6f));var _0x0012=function(_0x2b4411,_0x2625ed){_0x2b4411=_0x2b4411-0x0;var _0x8e41ef=_0x0120[_0x2b4411];return _0x8e41ef;};'use strict';var _=require(_0x0012('0x0'));var util=require(_0x0012('0x1'));var logger=require(_0x0012('0x2'))(_0x0012('0x3'));var moment=require(_0x0012('0x4'));var BPromise=require(_0x0012('0x5'));var rp=require(_0x0012('0x6'));var fs=require('fs');var path=require(_0x0012('0x7'));var rimraf=require(_0x0012('0x8'));var config=require(_0x0012('0x9'));var attributes=require(_0x0012('0xa'));module[_0x0012('0xb')]=function(_0x4eaa5b,_0x4b396c){return _0x4eaa5b['define'](_0x0012('0xc'),attributes,{'tableName':_0x0012('0xd'),'paranoid':![],'indexes':[{'name':_0x0012('0xe'),'fields':[_0x0012('0xe')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x9a1c=['util','moment','request-promise','path','../../config/environment','VoiceRecording','voice_recordings','uniqueid'];(function(_0x1facfa,_0x1acf7d){var _0x9ec701=function(_0x115e37){while(--_0x115e37){_0x1facfa['push'](_0x1facfa['shift']());}};_0x9ec701(++_0x1acf7d);}(_0x9a1c,0x150));var _0xc9a1=function(_0x255ea6,_0x4e394d){_0x255ea6=_0x255ea6-0x0;var _0x45302c=_0x9a1c[_0x255ea6];return _0x45302c;};'use strict';var _=require('lodash');var util=require(_0xc9a1('0x0'));var logger=require('../../config/logger')('api');var moment=require(_0xc9a1('0x1'));var BPromise=require('bluebird');var rp=require(_0xc9a1('0x2'));var fs=require('fs');var path=require(_0xc9a1('0x3'));var rimraf=require('rimraf');var config=require(_0xc9a1('0x4'));var attributes=require('./voiceRecording.attributes');module['exports']=function(_0x3fbece,_0x52d914){return _0x3fbece['define'](_0xc9a1('0x5'),attributes,{'tableName':_0xc9a1('0x6'),'paranoid':![],'indexes':[{'name':_0xc9a1('0x7'),'fields':[_0xc9a1('0x7')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8aad=['VoiceRecording,\x20%s,\x20%s','request\x20sent','debug','VoiceRecording,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','UpdateVoiceRecording','VoiceRecording','update','body','options','raw','where','attributes','then','CreateVoiceRecording','../../components/encryptor','Setting','findOne','callRecordingEncryption','existsSync','value','format','%s.cypher','secrets','recording','unlink','CreateVoiceRecording\x20file\x20encrypted','lodash','util','bluebird','ioredis','../../mysqldb','rpc','client','http','request','info'];(function(_0x11a252,_0x58e6c9){var _0x4cfbd4=function(_0x531016){while(--_0x531016){_0x11a252['push'](_0x11a252['shift']());}};_0x4cfbd4(++_0x58e6c9);}(_0x8aad,0x146));var _0xd8aa=function(_0x338798,_0x27dbf9){_0x338798=_0x338798-0x0;var _0x34b8a7=_0x8aad[_0x338798];return _0x34b8a7;};'use strict';var _=require(_0xd8aa('0x0'));var util=require(_0xd8aa('0x1'));var moment=require('moment');var BPromise=require(_0xd8aa('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xd8aa('0x3'));var db=require(_0xd8aa('0x4'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0xd8aa('0x5'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0xd8aa('0x6')][_0xd8aa('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x16ea12,_0x4a4b10,_0x2a559d){return new BPromise(function(_0x1da411,_0x2a23b5){return client[_0xd8aa('0x8')](_0x16ea12,_0x2a559d)['then'](function(_0x5de228){logger[_0xd8aa('0x9')](_0xd8aa('0xa'),_0x4a4b10,_0xd8aa('0xb'));logger[_0xd8aa('0xc')](_0xd8aa('0xd'),_0x4a4b10,'request\x20sent',JSON[_0xd8aa('0xe')](_0x5de228));if(_0x5de228[_0xd8aa('0xf')]){if(_0x5de228[_0xd8aa('0xf')][_0xd8aa('0x10')]===0x1f4){logger[_0xd8aa('0xf')](_0xd8aa('0xa'),_0x4a4b10,_0x5de228[_0xd8aa('0xf')][_0xd8aa('0x11')]);return _0x2a23b5(_0x5de228[_0xd8aa('0xf')][_0xd8aa('0x11')]);}logger['error']('VoiceRecording,\x20%s,\x20%s',_0x4a4b10,_0x5de228[_0xd8aa('0xf')][_0xd8aa('0x11')]);return _0x1da411(_0x5de228[_0xd8aa('0xf')]['message']);}else{logger[_0xd8aa('0x9')](_0xd8aa('0xa'),_0x4a4b10,_0xd8aa('0xb'));_0x1da411(_0x5de228[_0xd8aa('0x12')]['message']);}})[_0xd8aa('0x13')](function(_0xa9ba1b){logger['error'](_0xd8aa('0xa'),_0x4a4b10,_0xa9ba1b);_0x2a23b5(_0xa9ba1b);});});}exports[_0xd8aa('0x14')]=function(_0x32e2cd){var _0x3a29ca=this;return new Promise(function(_0x2d34ac,_0x4953be){return db[_0xd8aa('0x15')][_0xd8aa('0x16')](_0x32e2cd[_0xd8aa('0x17')],{'raw':_0x32e2cd[_0xd8aa('0x18')]?_0x32e2cd['options'][_0xd8aa('0x19')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x32e2cd[_0xd8aa('0x18')]?_0x32e2cd[_0xd8aa('0x18')][_0xd8aa('0x1a')]||null:null,'attributes':_0x32e2cd[_0xd8aa('0x18')]?_0x32e2cd['options'][_0xd8aa('0x1b')]||null:null,'limit':_0x32e2cd[_0xd8aa('0x18')]?_0x32e2cd[_0xd8aa('0x18')]['limit']||null:null})[_0xd8aa('0x1c')](function(_0x7a4ce7){logger[_0xd8aa('0x9')](_0xd8aa('0x14'),_0x32e2cd);logger[_0xd8aa('0xc')](_0xd8aa('0x14'),_0x32e2cd,JSON[_0xd8aa('0xe')](_0x7a4ce7));_0x2d34ac(_0x7a4ce7);})[_0xd8aa('0x13')](function(_0x375f64){logger[_0xd8aa('0xf')](_0xd8aa('0x14'),_0x375f64[_0xd8aa('0x11')],_0x32e2cd);_0x4953be(_0x3a29ca[_0xd8aa('0xf')](0x1f4,_0x375f64['message']));});});};exports[_0xd8aa('0x1d')]=function(_0x59eb3f){var _0xd4d204=this;return new Promise(function(_0x1f6ab2,_0x26cff3){var _0x3696fd=require(_0xd8aa('0x1e'));var _0x19edee;return db[_0xd8aa('0x1f')][_0xd8aa('0x20')]({'attributes':['id','callRecordingEncryption'],'where':{'id':0x1},'raw':!![]})[_0xd8aa('0x1c')](function(_0x34b792){_0x19edee=_0x34b792;return db[_0xd8aa('0x15')]['create'](_0x59eb3f[_0xd8aa('0x17')]);})['then'](function(_0x3052c6){if(_0x19edee[_0xd8aa('0x21')]&&fs[_0xd8aa('0x22')](_0x3052c6[_0xd8aa('0x23')])){var _0x44f783=util[_0xd8aa('0x24')](_0xd8aa('0x25'),_0x3052c6[_0xd8aa('0x23')]);return _0x3696fd['encryptFile'](_0x3052c6[_0xd8aa('0x23')],_0x44f783,config[_0xd8aa('0x26')][_0xd8aa('0x27')])[_0xd8aa('0x1c')](function(){fs[_0xd8aa('0x28')](_0x3052c6[_0xd8aa('0x23')]);logger[_0xd8aa('0x9')](_0xd8aa('0x29'));return _0x3052c6;});}return _0x3052c6;})['then'](function(_0x265217){logger[_0xd8aa('0x9')](_0xd8aa('0x1d'),_0x59eb3f);logger['debug'](_0xd8aa('0x1d'),_0x59eb3f,JSON[_0xd8aa('0xe')](_0x265217));_0x1f6ab2(_0x265217);})[_0xd8aa('0x13')](function(_0x45c216){logger[_0xd8aa('0xf')](_0xd8aa('0x1d'),_0x45c216[_0xd8aa('0x11')],_0x59eb3f);_0x26cff3(_0xd4d204[_0xd8aa('0xf')](0x1f4,_0x45c216[_0xd8aa('0x11')]));});});};
\ No newline at end of file
+var _0x6050=['existsSync','value','format','%s.cypher','encryptFile','secrets','recording','unlink','CreateVoiceRecording\x20file\x20encrypted','CreateVoiceRecording','lodash','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','http','request','then','VoiceRecording,\x20%s,\x20%s','request\x20sent','debug','VoiceRecording,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','catch','UpdateVoiceRecording','VoiceRecording','update','body','options','raw','where','attributes','../../components/encryptor','Setting','findOne','callRecordingEncryption'];(function(_0x7d1bab,_0x5ae021){var _0x3d5224=function(_0xe376da){while(--_0xe376da){_0x7d1bab['push'](_0x7d1bab['shift']());}};_0x3d5224(++_0x5ae021);}(_0x6050,0x196));var _0x0605=function(_0x49f3e3,_0x44f5d2){_0x49f3e3=_0x49f3e3-0x0;var _0x3ba012=_0x6050[_0x49f3e3];return _0x3ba012;};'use strict';var _=require(_0x0605('0x0'));var util=require(_0x0605('0x1'));var moment=require(_0x0605('0x2'));var BPromise=require(_0x0605('0x3'));var rs=require(_0x0605('0x4'));var fs=require('fs');var Redis=require(_0x0605('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0x0605('0x6'));var logger=require(_0x0605('0x7'))(_0x0605('0x8'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson['client'][_0x0605('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x578623,_0x58f7d2,_0x5660ad){return new BPromise(function(_0x1629bf,_0x11b8b5){return client[_0x0605('0xa')](_0x578623,_0x5660ad)[_0x0605('0xb')](function(_0x44fdd3){logger['info'](_0x0605('0xc'),_0x58f7d2,_0x0605('0xd'));logger[_0x0605('0xe')](_0x0605('0xf'),_0x58f7d2,_0x0605('0xd'),JSON[_0x0605('0x10')](_0x44fdd3));if(_0x44fdd3[_0x0605('0x11')]){if(_0x44fdd3[_0x0605('0x11')][_0x0605('0x12')]===0x1f4){logger[_0x0605('0x11')](_0x0605('0xc'),_0x58f7d2,_0x44fdd3[_0x0605('0x11')][_0x0605('0x13')]);return _0x11b8b5(_0x44fdd3[_0x0605('0x11')][_0x0605('0x13')]);}logger[_0x0605('0x11')](_0x0605('0xc'),_0x58f7d2,_0x44fdd3[_0x0605('0x11')][_0x0605('0x13')]);return _0x1629bf(_0x44fdd3['error'][_0x0605('0x13')]);}else{logger[_0x0605('0x14')](_0x0605('0xc'),_0x58f7d2,'request\x20sent');_0x1629bf(_0x44fdd3['result'][_0x0605('0x13')]);}})[_0x0605('0x15')](function(_0xa83443){logger[_0x0605('0x11')](_0x0605('0xc'),_0x58f7d2,_0xa83443);_0x11b8b5(_0xa83443);});});}exports[_0x0605('0x16')]=function(_0x2b7b5a){var _0x1d57ba=this;return new Promise(function(_0x193520,_0x40abb2){return db[_0x0605('0x17')][_0x0605('0x18')](_0x2b7b5a[_0x0605('0x19')],{'raw':_0x2b7b5a[_0x0605('0x1a')]?_0x2b7b5a['options'][_0x0605('0x1b')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x2b7b5a[_0x0605('0x1a')]?_0x2b7b5a[_0x0605('0x1a')][_0x0605('0x1c')]||null:null,'attributes':_0x2b7b5a[_0x0605('0x1a')]?_0x2b7b5a[_0x0605('0x1a')][_0x0605('0x1d')]||null:null,'limit':_0x2b7b5a[_0x0605('0x1a')]?_0x2b7b5a[_0x0605('0x1a')]['limit']||null:null})[_0x0605('0xb')](function(_0x4fe293){logger[_0x0605('0x14')](_0x0605('0x16'),_0x2b7b5a);logger[_0x0605('0xe')](_0x0605('0x16'),_0x2b7b5a,JSON[_0x0605('0x10')](_0x4fe293));_0x193520(_0x4fe293);})[_0x0605('0x15')](function(_0x2ea61d){logger[_0x0605('0x11')](_0x0605('0x16'),_0x2ea61d[_0x0605('0x13')],_0x2b7b5a);_0x40abb2(_0x1d57ba[_0x0605('0x11')](0x1f4,_0x2ea61d[_0x0605('0x13')]));});});};exports['CreateVoiceRecording']=function(_0x6bc204){var _0x3c8e36=this;return new Promise(function(_0x4b1e0c,_0x4d9a31){var _0x55ebd8=require(_0x0605('0x1e'));var _0x226825;return db[_0x0605('0x1f')][_0x0605('0x20')]({'attributes':['id',_0x0605('0x21')],'where':{'id':0x1},'raw':!![]})[_0x0605('0xb')](function(_0x4e32ef){_0x226825=_0x4e32ef;return db[_0x0605('0x17')]['create'](_0x6bc204[_0x0605('0x19')]);})[_0x0605('0xb')](function(_0x421c26){if(_0x226825[_0x0605('0x21')]&&fs[_0x0605('0x22')](_0x421c26[_0x0605('0x23')])){var _0x56dd1a=util[_0x0605('0x24')](_0x0605('0x25'),_0x421c26[_0x0605('0x23')]);return _0x55ebd8[_0x0605('0x26')](_0x421c26[_0x0605('0x23')],_0x56dd1a,config[_0x0605('0x27')][_0x0605('0x28')])[_0x0605('0xb')](function(){fs[_0x0605('0x29')](_0x421c26[_0x0605('0x23')]);logger[_0x0605('0x14')](_0x0605('0x2a'));return _0x421c26;});}return _0x421c26;})[_0x0605('0xb')](function(_0x992e4f){logger[_0x0605('0x14')](_0x0605('0x2b'),_0x6bc204);logger[_0x0605('0xe')](_0x0605('0x2b'),_0x6bc204,JSON[_0x0605('0x10')](_0x992e4f));_0x4b1e0c(_0x992e4f);})[_0x0605('0x15')](function(_0x3a1c75){logger[_0x0605('0x11')](_0x0605('0x2b'),_0x3a1c75[_0x0605('0x13')],_0x6bc204);_0x4d9a31(_0x3c8e36[_0x0605('0x11')](0x1f4,_0x3a1c75[_0x0605('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfe52=['create','put','/:id','update','delete','exports','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./voiceTransferReport.controller','get','index','/describe','isAuthenticated','describe','show'];(function(_0xd256a1,_0x2aae80){var _0x2a11a4=function(_0x4a74f3){while(--_0x4a74f3){_0xd256a1['push'](_0xd256a1['shift']());}};_0x2a11a4(++_0x2aae80);}(_0xfe52,0x1be));var _0x2fe5=function(_0x311e2,_0x47fc0a){_0x311e2=_0x311e2-0x0;var _0x5ef847=_0xfe52[_0x311e2];return _0x5ef847;};'use strict';var multer=require('multer');var util=require(_0x2fe5('0x0'));var path=require(_0x2fe5('0x1'));var timeout=require(_0x2fe5('0x2'));var express=require(_0x2fe5('0x3'));var router=express[_0x2fe5('0x4')]();var fs_extra=require(_0x2fe5('0x5'));var auth=require(_0x2fe5('0x6'));var interaction=require(_0x2fe5('0x7'));var config=require(_0x2fe5('0x8'));var controller=require(_0x2fe5('0x9'));router[_0x2fe5('0xa')]('/',auth['isAuthenticated'](),controller[_0x2fe5('0xb')]);router[_0x2fe5('0xa')](_0x2fe5('0xc'),auth[_0x2fe5('0xd')](),controller[_0x2fe5('0xe')]);router[_0x2fe5('0xa')]('/:id',auth['isAuthenticated'](),controller[_0x2fe5('0xf')]);router['post']('/',auth['isAuthenticated'](),controller[_0x2fe5('0x10')]);router[_0x2fe5('0x11')](_0x2fe5('0x12'),auth[_0x2fe5('0xd')](),controller[_0x2fe5('0x13')]);router[_0x2fe5('0x14')]('/:id',auth['isAuthenticated'](),controller['destroy']);module[_0x2fe5('0x15')]=router;
\ No newline at end of file
+var _0x4d8f=['get','isAuthenticated','/describe','describe','/:id','create','delete','destroy','util','path','express','Router','fs-extra','../../config/environment'];(function(_0x52229d,_0x51df5d){var _0x340aeb=function(_0x44515f){while(--_0x44515f){_0x52229d['push'](_0x52229d['shift']());}};_0x340aeb(++_0x51df5d);}(_0x4d8f,0x190));var _0xf4d8=function(_0x53fac0,_0x4d45c0){_0x53fac0=_0x53fac0-0x0;var _0x15fedc=_0x4d8f[_0x53fac0];return _0x15fedc;};'use strict';var multer=require('multer');var util=require(_0xf4d8('0x0'));var path=require(_0xf4d8('0x1'));var timeout=require('connect-timeout');var express=require(_0xf4d8('0x2'));var router=express[_0xf4d8('0x3')]();var fs_extra=require(_0xf4d8('0x4'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0xf4d8('0x5'));var controller=require('./voiceTransferReport.controller');router[_0xf4d8('0x6')]('/',auth[_0xf4d8('0x7')](),controller['index']);router[_0xf4d8('0x6')](_0xf4d8('0x8'),auth[_0xf4d8('0x7')](),controller[_0xf4d8('0x9')]);router['get'](_0xf4d8('0xa'),auth[_0xf4d8('0x7')](),controller['show']);router['post']('/',auth[_0xf4d8('0x7')](),controller[_0xf4d8('0xb')]);router['put']('/:id',auth[_0xf4d8('0x7')](),controller['update']);router[_0xf4d8('0xc')](_0xf4d8('0xa'),auth[_0xf4d8('0x7')](),controller[_0xf4d8('0xd')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf360=['STRING','Yes','sequelize','moment','ENUM','blind'];(function(_0x594f00,_0x50bac6){var _0x2c329d=function(_0x4849a6){while(--_0x4849a6){_0x594f00['push'](_0x594f00['shift']());}};_0x2c329d(++_0x50bac6);}(_0xf360,0xc8));var _0x0f36=function(_0x413feb,_0x10477f){_0x413feb=_0x413feb-0x0;var _0x40ee88=_0xf360[_0x413feb];return _0x40ee88;};'use strict';var Sequelize=require(_0x0f36('0x0'));var moment=require(_0x0f36('0x1'));module['exports']={'type':{'type':Sequelize[_0x0f36('0x2')](_0x0f36('0x3'),'attended')},'result':{'type':Sequelize['STRING']},'transfererchannel':{'type':Sequelize[_0x0f36('0x4')]},'transferercalleridnum':{'type':Sequelize[_0x0f36('0x4')]},'transferercalleridname':{'type':Sequelize['STRING']},'transfererconnectedlinenum':{'type':Sequelize[_0x0f36('0x4')]},'transfererconnectedlinename':{'type':Sequelize[_0x0f36('0x4')]},'transfereraccountcode':{'type':Sequelize[_0x0f36('0x4')]},'transferercontext':{'type':Sequelize[_0x0f36('0x4')]},'transfererexten':{'type':Sequelize[_0x0f36('0x4')]},'transfererlinkedid':{'type':Sequelize[_0x0f36('0x4')]},'transfereechannel':{'type':Sequelize[_0x0f36('0x4')]},'transfereecalleridnum':{'type':Sequelize['STRING']},'transfereecalleridname':{'type':Sequelize[_0x0f36('0x4')]},'transfereeconnectedlinenum':{'type':Sequelize[_0x0f36('0x4')]},'transfereeconnectedlinename':{'type':Sequelize['STRING']},'transfereeaccountcode':{'type':Sequelize['STRING']},'transfereecontext':{'type':Sequelize['STRING']},'transfereeexten':{'type':Sequelize[_0x0f36('0x4')]},'transfereelinkedid':{'type':Sequelize[_0x0f36('0x4')]},'isexternal':{'type':Sequelize[_0x0f36('0x2')](_0x0f36('0x5'),'No')},'context':{'type':Sequelize['STRING']},'extension':{'type':Sequelize[_0x0f36('0x4')]}};
\ No newline at end of file
+var _0x363e=['attended','STRING','ENUM','Yes','sequelize','moment','blind'];(function(_0x167cc1,_0x56ef5a){var _0x10bc4b=function(_0xd6a255){while(--_0xd6a255){_0x167cc1['push'](_0x167cc1['shift']());}};_0x10bc4b(++_0x56ef5a);}(_0x363e,0x66));var _0xe363=function(_0x1df03c,_0x48610f){_0x1df03c=_0x1df03c-0x0;var _0x59b296=_0x363e[_0x1df03c];return _0x59b296;};'use strict';var Sequelize=require(_0xe363('0x0'));var moment=require(_0xe363('0x1'));module['exports']={'type':{'type':Sequelize['ENUM'](_0xe363('0x2'),_0xe363('0x3'))},'result':{'type':Sequelize[_0xe363('0x4')]},'transfererchannel':{'type':Sequelize[_0xe363('0x4')]},'transferercalleridnum':{'type':Sequelize[_0xe363('0x4')]},'transferercalleridname':{'type':Sequelize[_0xe363('0x4')]},'transfererconnectedlinenum':{'type':Sequelize[_0xe363('0x4')]},'transfererconnectedlinename':{'type':Sequelize['STRING']},'transfereraccountcode':{'type':Sequelize[_0xe363('0x4')]},'transferercontext':{'type':Sequelize[_0xe363('0x4')]},'transfererexten':{'type':Sequelize[_0xe363('0x4')]},'transfererlinkedid':{'type':Sequelize[_0xe363('0x4')]},'transfereechannel':{'type':Sequelize['STRING']},'transfereecalleridnum':{'type':Sequelize[_0xe363('0x4')]},'transfereecalleridname':{'type':Sequelize[_0xe363('0x4')]},'transfereeconnectedlinenum':{'type':Sequelize[_0xe363('0x4')]},'transfereeconnectedlinename':{'type':Sequelize[_0xe363('0x4')]},'transfereeaccountcode':{'type':Sequelize[_0xe363('0x4')]},'transfereecontext':{'type':Sequelize[_0xe363('0x4')]},'transfereeexten':{'type':Sequelize[_0xe363('0x4')]},'transfereelinkedid':{'type':Sequelize[_0xe363('0x4')]},'isexternal':{'type':Sequelize[_0xe363('0x5')](_0xe363('0x6'),'No')},'context':{'type':Sequelize['STRING']},'extension':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x869d=['../../mysqldb','sendStatus','json','offset','undefined','count','limit','status','set','Content-Range','reject','save','update','then','destroy','end','error','stack','name','send','index','map','VoiceTransferReport','rawAttributes','fieldName','type','model','query','keys','filters','intersection','attributes','fields','length','nolimit','order','where','filter','merge','VIRTUAL','options','includeAll','include','findAll','show','params','catch','create','body','find','describe','rimraf','fast-json-patch','bluebird','mustache','util','path','to-csv','ejs','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util'];(function(_0x2321de,_0x35a1b8){var _0x5979ee=function(_0x3d21cd){while(--_0x3d21cd){_0x2321de['push'](_0x2321de['shift']());}};_0x5979ee(++_0x35a1b8);}(_0x869d,0x10e));var _0xd869=function(_0x4c2c23,_0x3d8d28){_0x4c2c23=_0x4c2c23-0x0;var _0x5c992e=_0x869d[_0x4c2c23];return _0x5c992e;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xd869('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0xd869('0x1'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xd869('0x2'));var Mustache=require(_0xd869('0x3'));var util=require(_0xd869('0x4'));var path=require(_0xd869('0x5'));var sox=require('sox');var csv=require(_0xd869('0x6'));var ejs=require(_0xd869('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xd869('0x8'));var squel=require(_0xd869('0x9'));var crypto=require(_0xd869('0xa'));var jsforce=require('jsforce');var deskjs=require(_0xd869('0xb'));var toCsv=require(_0xd869('0x6'));var querystring=require(_0xd869('0xc'));var Papa=require(_0xd869('0xd'));var Redis=require(_0xd869('0xe'));var authService=require('../../components/auth/service');var qs=require(_0xd869('0xf'));var as=require(_0xd869('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xd869('0x11'))(_0xd869('0x12'));var utils=require(_0xd869('0x13'));var config=require(_0xd869('0x14'));var licenseUtil=require(_0xd869('0x15'));var db=require(_0xd869('0x16'))['db'];function respondWithStatusCode(_0x10fed2,_0x1200ab){_0x1200ab=_0x1200ab||0xcc;return function(_0x37f066){if(_0x37f066){return _0x10fed2[_0xd869('0x17')](_0x1200ab);}return _0x10fed2['status'](_0x1200ab)['end']();};}function respondWithResult(_0xd64537,_0x4a6b0d){_0x4a6b0d=_0x4a6b0d||0xc8;return function(_0x550ae5){if(_0x550ae5){return _0xd64537['status'](_0x4a6b0d)[_0xd869('0x18')](_0x550ae5);}};}function respondWithFilteredResult(_0x31068c,_0x57ac4f){return function(_0x217975){if(_0x217975){var _0x5a64b5=typeof _0x57ac4f[_0xd869('0x19')]===_0xd869('0x1a')&&typeof _0x57ac4f['limit']==='undefined';var _0x6e54c7=_0x217975['count'];var _0x2cec32=_0x5a64b5?0x0:_0x57ac4f[_0xd869('0x19')];var _0x5c6b43=_0x5a64b5?_0x217975[_0xd869('0x1b')]:_0x57ac4f[_0xd869('0x19')]+_0x57ac4f[_0xd869('0x1c')];var _0x47a169;if(_0x5c6b43>=_0x6e54c7){_0x5c6b43=_0x6e54c7;_0x47a169=0xc8;}else{_0x47a169=0xce;}_0x31068c[_0xd869('0x1d')](_0x47a169);return _0x31068c[_0xd869('0x1e')](_0xd869('0x1f'),_0x2cec32+'-'+_0x5c6b43+'/'+_0x6e54c7)['json'](_0x217975);}return null;};}function patchUpdates(_0x18c5c8){return function(_0xa62e02){try{jsonpatch['apply'](_0xa62e02,_0x18c5c8,!![]);}catch(_0x18b0c6){return BPromise[_0xd869('0x20')](_0x18b0c6);}return _0xa62e02[_0xd869('0x21')]();};}function saveUpdates(_0x88c192,_0x185456){return function(_0x524f0c){if(_0x524f0c){return _0x524f0c[_0xd869('0x22')](_0x88c192)[_0xd869('0x23')](function(_0x128068){return _0x128068;});}return null;};}function removeEntity(_0x15f667,_0x242725){return function(_0x22a01b){if(_0x22a01b){return _0x22a01b[_0xd869('0x24')]()['then'](function(){_0x15f667[_0xd869('0x1d')](0xcc)[_0xd869('0x25')]();});}};}function handleEntityNotFound(_0x314e87,_0x37eb7d){return function(_0x5e1c53){if(!_0x5e1c53){_0x314e87[_0xd869('0x17')](0x194);}return _0x5e1c53;};}function handleError(_0x79ddd0,_0x3a2876){_0x3a2876=_0x3a2876||0x1f4;return function(_0x2d74f9){logger[_0xd869('0x26')](_0x2d74f9[_0xd869('0x27')]);if(_0x2d74f9[_0xd869('0x28')]){delete _0x2d74f9[_0xd869('0x28')];}_0x79ddd0['status'](_0x3a2876)[_0xd869('0x29')](_0x2d74f9);};}exports[_0xd869('0x2a')]=function(_0x58ba0b,_0x493b48){var _0x457909={},_0x5d6cf3={},_0xcb71c4={'count':0x0,'rows':[]};var _0x548098=_[_0xd869('0x2b')](db[_0xd869('0x2c')][_0xd869('0x2d')],function(_0x4ab0de){return{'name':_0x4ab0de[_0xd869('0x2e')],'type':_0x4ab0de[_0xd869('0x2f')]['key']};});_0x5d6cf3[_0xd869('0x30')]=_[_0xd869('0x2b')](_0x548098,_0xd869('0x28'));_0x5d6cf3[_0xd869('0x31')]=_[_0xd869('0x32')](_0x58ba0b[_0xd869('0x31')]);_0x5d6cf3[_0xd869('0x33')]=_[_0xd869('0x34')](_0x5d6cf3[_0xd869('0x30')],_0x5d6cf3[_0xd869('0x31')]);_0x457909[_0xd869('0x35')]=_['intersection'](_0x5d6cf3[_0xd869('0x30')],qs['fields'](_0x58ba0b[_0xd869('0x31')][_0xd869('0x36')]));_0x457909[_0xd869('0x35')]=_0x457909[_0xd869('0x35')][_0xd869('0x37')]?_0x457909[_0xd869('0x35')]:_0x5d6cf3[_0xd869('0x30')];if(!_0x58ba0b[_0xd869('0x31')]['hasOwnProperty'](_0xd869('0x38'))){_0x457909['limit']=qs[_0xd869('0x1c')](_0x58ba0b['query'][_0xd869('0x1c')]);_0x457909[_0xd869('0x19')]=qs[_0xd869('0x19')](_0x58ba0b[_0xd869('0x31')]['offset']);}_0x457909[_0xd869('0x39')]=qs['sort'](_0x58ba0b[_0xd869('0x31')]['sort']);_0x457909[_0xd869('0x3a')]=qs['filters'](_['pick'](_0x58ba0b[_0xd869('0x31')],_0x5d6cf3[_0xd869('0x33')]),_0x548098);if(_0x58ba0b[_0xd869('0x31')][_0xd869('0x3b')]){_0x457909[_0xd869('0x3a')]=_[_0xd869('0x3c')](_0x457909[_0xd869('0x3a')],{'$or':_[_0xd869('0x2b')](_0x548098,function(_0x2a11bc){if(_0x2a11bc[_0xd869('0x2f')]!==_0xd869('0x3d')){var _0x53d5a5={};_0x53d5a5[_0x2a11bc['name']]={'$like':'%'+_0x58ba0b[_0xd869('0x31')][_0xd869('0x3b')]+'%'};return _0x53d5a5;}})});}_0x457909=_[_0xd869('0x3c')]({},_0x457909,_0x58ba0b[_0xd869('0x3e')]);var _0x3f288={'where':_0x457909[_0xd869('0x3a')]};return db[_0xd869('0x2c')][_0xd869('0x1b')](_0x3f288)[_0xd869('0x23')](function(_0x5cd16b){_0xcb71c4[_0xd869('0x1b')]=_0x5cd16b;if(_0x58ba0b[_0xd869('0x31')][_0xd869('0x3f')]){_0x457909[_0xd869('0x40')]=[{'all':!![]}];}return db[_0xd869('0x2c')][_0xd869('0x41')](_0x457909);})[_0xd869('0x23')](function(_0x266d16){_0xcb71c4['rows']=_0x266d16;return _0xcb71c4;})[_0xd869('0x23')](respondWithFilteredResult(_0x493b48,_0x457909))['catch'](handleError(_0x493b48,null));};exports[_0xd869('0x42')]=function(_0x5efe72,_0x36a524){var _0x1ba81a={'raw':!![],'where':{'id':_0x5efe72[_0xd869('0x43')]['id']}},_0x4239a4={};_0x4239a4['model']=_[_0xd869('0x32')](db['VoiceTransferReport'][_0xd869('0x2d')]);_0x4239a4[_0xd869('0x31')]=_[_0xd869('0x32')](_0x5efe72[_0xd869('0x31')]);_0x4239a4['filters']=_[_0xd869('0x34')](_0x4239a4[_0xd869('0x30')],_0x4239a4[_0xd869('0x31')]);_0x1ba81a['attributes']=_[_0xd869('0x34')](_0x4239a4[_0xd869('0x30')],qs[_0xd869('0x36')](_0x5efe72['query'][_0xd869('0x36')]));_0x1ba81a['attributes']=_0x1ba81a[_0xd869('0x35')][_0xd869('0x37')]?_0x1ba81a[_0xd869('0x35')]:_0x4239a4['model'];if(_0x5efe72[_0xd869('0x31')][_0xd869('0x3f')]){_0x1ba81a[_0xd869('0x40')]=[{'all':!![]}];}_0x1ba81a=_[_0xd869('0x3c')]({},_0x1ba81a,_0x5efe72[_0xd869('0x3e')]);return db[_0xd869('0x2c')]['find'](_0x1ba81a)[_0xd869('0x23')](handleEntityNotFound(_0x36a524,null))[_0xd869('0x23')](respondWithResult(_0x36a524,null))[_0xd869('0x44')](handleError(_0x36a524,null));};exports[_0xd869('0x45')]=function(_0x4987fc,_0x1bd447){return db[_0xd869('0x2c')][_0xd869('0x45')](_0x4987fc['body'],{})[_0xd869('0x23')](respondWithResult(_0x1bd447,0xc9))[_0xd869('0x44')](handleError(_0x1bd447,null));};exports[_0xd869('0x22')]=function(_0x360b37,_0x415b06){if(_0x360b37[_0xd869('0x46')]['id']){delete _0x360b37[_0xd869('0x46')]['id'];}return db[_0xd869('0x2c')][_0xd869('0x47')]({'where':{'id':_0x360b37[_0xd869('0x43')]['id']}})[_0xd869('0x23')](handleEntityNotFound(_0x415b06,null))[_0xd869('0x23')](saveUpdates(_0x360b37[_0xd869('0x46')],null))['then'](respondWithResult(_0x415b06,null))['catch'](handleError(_0x415b06,null));};exports['destroy']=function(_0x348934,_0x51b627){return db[_0xd869('0x2c')][_0xd869('0x47')]({'where':{'id':_0x348934[_0xd869('0x43')]['id']}})[_0xd869('0x23')](handleEntityNotFound(_0x51b627,null))[_0xd869('0x23')](removeEntity(_0x51b627,null))[_0xd869('0x44')](handleError(_0x51b627,null));};exports['describe']=function(_0x4604a2,_0x44700b){return db[_0xd869('0x2c')][_0xd869('0x48')]()[_0xd869('0x23')](respondWithResult(_0x44700b,null))[_0xd869('0x44')](handleError(_0x44700b,null));};
\ No newline at end of file
+var _0xb80c=['path','to-csv','squel','crypto','jsforce','desk.js','querystring','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','count','set','Content-Range','json','apply','reject','save','then','destroy','error','name','send','VoiceTransferReport','fieldName','type','model','map','query','filters','attributes','intersection','fields','length','nolimit','limit','order','sort','pick','filter','where','options','includeAll','findAll','catch','show','params','keys','rawAttributes','merge','find','create','body','update','describe','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xb80c,0x88));var _0xcb80=function(_0x2711b6,_0x4a4d74){_0x2711b6=_0x2711b6-0x0;var _0x11bae2=_0xb80c[_0x2711b6];return _0x11bae2;};'use strict';var emlformat=require(_0xcb80('0x0'));var rimraf=require(_0xcb80('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xcb80('0x2'));var rp=require(_0xcb80('0x3'));var moment=require(_0xcb80('0x4'));var BPromise=require(_0xcb80('0x5'));var Mustache=require(_0xcb80('0x6'));var util=require(_0xcb80('0x7'));var path=require(_0xcb80('0x8'));var sox=require('sox');var csv=require(_0xcb80('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0xcb80('0xa'));var crypto=require(_0xcb80('0xb'));var jsforce=require(_0xcb80('0xc'));var deskjs=require(_0xcb80('0xd'));var toCsv=require(_0xcb80('0x9'));var querystring=require(_0xcb80('0xe'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xcb80('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0xcb80('0x10'));var hardwareService=require(_0xcb80('0x11'));var logger=require(_0xcb80('0x12'))(_0xcb80('0x13'));var utils=require('../../config/utils');var config=require(_0xcb80('0x14'));var licenseUtil=require(_0xcb80('0x15'));var db=require(_0xcb80('0x16'))['db'];function respondWithStatusCode(_0xa47dbd,_0x2b6bea){_0x2b6bea=_0x2b6bea||0xcc;return function(_0xc27a5e){if(_0xc27a5e){return _0xa47dbd[_0xcb80('0x17')](_0x2b6bea);}return _0xa47dbd[_0xcb80('0x18')](_0x2b6bea)[_0xcb80('0x19')]();};}function respondWithResult(_0x31c258,_0x599ca0){_0x599ca0=_0x599ca0||0xc8;return function(_0x20ed47){if(_0x20ed47){return _0x31c258[_0xcb80('0x18')](_0x599ca0)['json'](_0x20ed47);}};}function respondWithFilteredResult(_0x44470f,_0x44101a){return function(_0x5122da){if(_0x5122da){var _0x5461d9=typeof _0x44101a[_0xcb80('0x1a')]==='undefined'&&typeof _0x44101a['limit']===_0xcb80('0x1b');var _0x33956f=_0x5122da[_0xcb80('0x1c')];var _0x12c299=_0x5461d9?0x0:_0x44101a[_0xcb80('0x1a')];var _0x4dea6f=_0x5461d9?_0x5122da[_0xcb80('0x1c')]:_0x44101a[_0xcb80('0x1a')]+_0x44101a['limit'];var _0x45cd88;if(_0x4dea6f>=_0x33956f){_0x4dea6f=_0x33956f;_0x45cd88=0xc8;}else{_0x45cd88=0xce;}_0x44470f[_0xcb80('0x18')](_0x45cd88);return _0x44470f[_0xcb80('0x1d')](_0xcb80('0x1e'),_0x12c299+'-'+_0x4dea6f+'/'+_0x33956f)[_0xcb80('0x1f')](_0x5122da);}return null;};}function patchUpdates(_0x3a230e){return function(_0x4ee8cf){try{jsonpatch[_0xcb80('0x20')](_0x4ee8cf,_0x3a230e,!![]);}catch(_0x269dd6){return BPromise[_0xcb80('0x21')](_0x269dd6);}return _0x4ee8cf[_0xcb80('0x22')]();};}function saveUpdates(_0x49be79,_0x314120){return function(_0x45734f){if(_0x45734f){return _0x45734f['update'](_0x49be79)[_0xcb80('0x23')](function(_0x45ee9a){return _0x45ee9a;});}return null;};}function removeEntity(_0x130a93,_0x407b3b){return function(_0x285810){if(_0x285810){return _0x285810[_0xcb80('0x24')]()['then'](function(){_0x130a93[_0xcb80('0x18')](0xcc)[_0xcb80('0x19')]();});}};}function handleEntityNotFound(_0x33ca9e,_0x564042){return function(_0x212a72){if(!_0x212a72){_0x33ca9e[_0xcb80('0x17')](0x194);}return _0x212a72;};}function handleError(_0x300105,_0x2cfae6){_0x2cfae6=_0x2cfae6||0x1f4;return function(_0x5add6b){logger[_0xcb80('0x25')](_0x5add6b['stack']);if(_0x5add6b['name']){delete _0x5add6b[_0xcb80('0x26')];}_0x300105[_0xcb80('0x18')](_0x2cfae6)[_0xcb80('0x27')](_0x5add6b);};}exports['index']=function(_0x55bcb2,_0x479320){var _0x20a821={},_0x7c63ba={},_0x59a8ca={'count':0x0,'rows':[]};var _0x57047d=_['map'](db[_0xcb80('0x28')]['rawAttributes'],function(_0x3bab50){return{'name':_0x3bab50[_0xcb80('0x29')],'type':_0x3bab50[_0xcb80('0x2a')]['key']};});_0x7c63ba[_0xcb80('0x2b')]=_[_0xcb80('0x2c')](_0x57047d,_0xcb80('0x26'));_0x7c63ba[_0xcb80('0x2d')]=_['keys'](_0x55bcb2[_0xcb80('0x2d')]);_0x7c63ba[_0xcb80('0x2e')]=_['intersection'](_0x7c63ba[_0xcb80('0x2b')],_0x7c63ba[_0xcb80('0x2d')]);_0x20a821[_0xcb80('0x2f')]=_[_0xcb80('0x30')](_0x7c63ba[_0xcb80('0x2b')],qs[_0xcb80('0x31')](_0x55bcb2[_0xcb80('0x2d')][_0xcb80('0x31')]));_0x20a821[_0xcb80('0x2f')]=_0x20a821[_0xcb80('0x2f')][_0xcb80('0x32')]?_0x20a821['attributes']:_0x7c63ba[_0xcb80('0x2b')];if(!_0x55bcb2[_0xcb80('0x2d')]['hasOwnProperty'](_0xcb80('0x33'))){_0x20a821[_0xcb80('0x34')]=qs[_0xcb80('0x34')](_0x55bcb2[_0xcb80('0x2d')]['limit']);_0x20a821[_0xcb80('0x1a')]=qs[_0xcb80('0x1a')](_0x55bcb2[_0xcb80('0x2d')][_0xcb80('0x1a')]);}_0x20a821[_0xcb80('0x35')]=qs[_0xcb80('0x36')](_0x55bcb2[_0xcb80('0x2d')][_0xcb80('0x36')]);_0x20a821['where']=qs[_0xcb80('0x2e')](_[_0xcb80('0x37')](_0x55bcb2['query'],_0x7c63ba[_0xcb80('0x2e')]),_0x57047d);if(_0x55bcb2[_0xcb80('0x2d')][_0xcb80('0x38')]){_0x20a821[_0xcb80('0x39')]=_['merge'](_0x20a821[_0xcb80('0x39')],{'$or':_['map'](_0x57047d,function(_0x2e9f6a){if(_0x2e9f6a[_0xcb80('0x2a')]!=='VIRTUAL'){var _0xa00727={};_0xa00727[_0x2e9f6a['name']]={'$like':'%'+_0x55bcb2[_0xcb80('0x2d')][_0xcb80('0x38')]+'%'};return _0xa00727;}})});}_0x20a821=_['merge']({},_0x20a821,_0x55bcb2[_0xcb80('0x3a')]);var _0xe04006={'where':_0x20a821[_0xcb80('0x39')]};return db[_0xcb80('0x28')][_0xcb80('0x1c')](_0xe04006)[_0xcb80('0x23')](function(_0xcb6df5){_0x59a8ca[_0xcb80('0x1c')]=_0xcb6df5;if(_0x55bcb2[_0xcb80('0x2d')][_0xcb80('0x3b')]){_0x20a821['include']=[{'all':!![]}];}return db['VoiceTransferReport'][_0xcb80('0x3c')](_0x20a821);})['then'](function(_0x26eeca){_0x59a8ca['rows']=_0x26eeca;return _0x59a8ca;})['then'](respondWithFilteredResult(_0x479320,_0x20a821))[_0xcb80('0x3d')](handleError(_0x479320,null));};exports[_0xcb80('0x3e')]=function(_0x8dbcc,_0xe257ab){var _0x321f8d={'raw':!![],'where':{'id':_0x8dbcc[_0xcb80('0x3f')]['id']}},_0x147ab3={};_0x147ab3['model']=_[_0xcb80('0x40')](db['VoiceTransferReport'][_0xcb80('0x41')]);_0x147ab3[_0xcb80('0x2d')]=_[_0xcb80('0x40')](_0x8dbcc[_0xcb80('0x2d')]);_0x147ab3['filters']=_[_0xcb80('0x30')](_0x147ab3['model'],_0x147ab3[_0xcb80('0x2d')]);_0x321f8d[_0xcb80('0x2f')]=_[_0xcb80('0x30')](_0x147ab3[_0xcb80('0x2b')],qs[_0xcb80('0x31')](_0x8dbcc[_0xcb80('0x2d')]['fields']));_0x321f8d[_0xcb80('0x2f')]=_0x321f8d[_0xcb80('0x2f')][_0xcb80('0x32')]?_0x321f8d['attributes']:_0x147ab3['model'];if(_0x8dbcc[_0xcb80('0x2d')][_0xcb80('0x3b')]){_0x321f8d['include']=[{'all':!![]}];}_0x321f8d=_[_0xcb80('0x42')]({},_0x321f8d,_0x8dbcc['options']);return db[_0xcb80('0x28')][_0xcb80('0x43')](_0x321f8d)[_0xcb80('0x23')](handleEntityNotFound(_0xe257ab,null))['then'](respondWithResult(_0xe257ab,null))[_0xcb80('0x3d')](handleError(_0xe257ab,null));};exports[_0xcb80('0x44')]=function(_0x2ed638,_0x338135){return db[_0xcb80('0x28')][_0xcb80('0x44')](_0x2ed638[_0xcb80('0x45')],{})[_0xcb80('0x23')](respondWithResult(_0x338135,0xc9))[_0xcb80('0x3d')](handleError(_0x338135,null));};exports[_0xcb80('0x46')]=function(_0x57bb8a,_0x325cd3){if(_0x57bb8a[_0xcb80('0x45')]['id']){delete _0x57bb8a['body']['id'];}return db[_0xcb80('0x28')][_0xcb80('0x43')]({'where':{'id':_0x57bb8a[_0xcb80('0x3f')]['id']}})[_0xcb80('0x23')](handleEntityNotFound(_0x325cd3,null))[_0xcb80('0x23')](saveUpdates(_0x57bb8a[_0xcb80('0x45')],null))['then'](respondWithResult(_0x325cd3,null))['catch'](handleError(_0x325cd3,null));};exports['destroy']=function(_0x552732,_0x2a8ed3){return db[_0xcb80('0x28')][_0xcb80('0x43')]({'where':{'id':_0x552732[_0xcb80('0x3f')]['id']}})[_0xcb80('0x23')](handleEntityNotFound(_0x2a8ed3,null))[_0xcb80('0x23')](removeEntity(_0x2a8ed3,null))['catch'](handleError(_0x2a8ed3,null));};exports[_0xcb80('0x47')]=function(_0x43a54b,_0x1df4b8){return db[_0xcb80('0x28')][_0xcb80('0x47')]()[_0xcb80('0x23')](respondWithResult(_0x1df4b8,null))['catch'](handleError(_0x1df4b8,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9575=['define','VoiceTransferReport','report_call_transfer','util','../../config/logger','moment','bluebird','request-promise','../../config/environment','./voiceTransferReport.attributes'];(function(_0x189305,_0x46c43f){var _0xea3406=function(_0x2aa435){while(--_0x2aa435){_0x189305['push'](_0x189305['shift']());}};_0xea3406(++_0x46c43f);}(_0x9575,0x189));var _0x5957=function(_0x4ac515,_0x4e1320){_0x4ac515=_0x4ac515-0x0;var _0x4734dc=_0x9575[_0x4ac515];return _0x4734dc;};'use strict';var _=require('lodash');var util=require(_0x5957('0x0'));var logger=require(_0x5957('0x1'))('api');var moment=require(_0x5957('0x2'));var BPromise=require(_0x5957('0x3'));var rp=require(_0x5957('0x4'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0x5957('0x5'));var attributes=require(_0x5957('0x6'));module['exports']=function(_0x272ddf,_0x597af8){return _0x272ddf[_0x5957('0x7')](_0x5957('0x8'),attributes,{'tableName':_0x5957('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x078b=['api','moment','bluebird','path','rimraf','exports','VoiceTransferReport','lodash','util','../../config/logger'];(function(_0x1477ef,_0x54a5d6){var _0x164acd=function(_0x139149){while(--_0x139149){_0x1477ef['push'](_0x1477ef['shift']());}};_0x164acd(++_0x54a5d6);}(_0x078b,0x1dd));var _0xb078=function(_0x447b45,_0xb4612a){_0x447b45=_0x447b45-0x0;var _0x46c049=_0x078b[_0x447b45];return _0x46c049;};'use strict';var _=require(_0xb078('0x0'));var util=require(_0xb078('0x1'));var logger=require(_0xb078('0x2'))(_0xb078('0x3'));var moment=require(_0xb078('0x4'));var BPromise=require(_0xb078('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xb078('0x6'));var rimraf=require(_0xb078('0x7'));var config=require('../../config/environment');var attributes=require('./voiceTransferReport.attributes');module[_0xb078('0x8')]=function(_0x38ff58,_0x5f5b02){return _0x38ff58['define'](_0xb078('0x9'),attributes,{'tableName':'report_call_transfer','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x184a=['raw','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','request','then','info','VoiceTransferReport,\x20%s,\x20%s','debug','VoiceTransferReport,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','CreateVoiceTransferReport','VoiceTransferReport','body','options'];(function(_0x4b369d,_0x265eb8){var _0x571a98=function(_0x56341a){while(--_0x56341a){_0x4b369d['push'](_0x4b369d['shift']());}};_0x571a98(++_0x265eb8);}(_0x184a,0x8d));var _0xa184=function(_0x228917,_0x33ed97){_0x228917=_0x228917-0x0;var _0x30d46b=_0x184a[_0x228917];return _0x30d46b;};'use strict';var _=require(_0xa184('0x0'));var util=require(_0xa184('0x1'));var moment=require('moment');var BPromise=require(_0xa184('0x2'));var rs=require(_0xa184('0x3'));var fs=require('fs');var Redis=require(_0xa184('0x4'));var db=require(_0xa184('0x5'))['db'];var utils=require(_0xa184('0x6'));var logger=require(_0xa184('0x7'))('rpc');var config=require(_0xa184('0x8'));var jayson=require(_0xa184('0x9'));var client=jayson[_0xa184('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0x174cd9,_0x1bf39a,_0x569ae8){return new BPromise(function(_0x20d758,_0x21e917){return client[_0xa184('0xb')](_0x174cd9,_0x569ae8)[_0xa184('0xc')](function(_0x3378dc){logger[_0xa184('0xd')](_0xa184('0xe'),_0x1bf39a,'request\x20sent');logger[_0xa184('0xf')](_0xa184('0x10'),_0x1bf39a,_0xa184('0x11'),JSON[_0xa184('0x12')](_0x3378dc));if(_0x3378dc[_0xa184('0x13')]){if(_0x3378dc[_0xa184('0x13')][_0xa184('0x14')]===0x1f4){logger[_0xa184('0x13')](_0xa184('0xe'),_0x1bf39a,_0x3378dc['error'][_0xa184('0x15')]);return _0x21e917(_0x3378dc[_0xa184('0x13')]['message']);}logger[_0xa184('0x13')]('VoiceTransferReport,\x20%s,\x20%s',_0x1bf39a,_0x3378dc['error'][_0xa184('0x15')]);return _0x20d758(_0x3378dc[_0xa184('0x13')]['message']);}else{logger['info'](_0xa184('0xe'),_0x1bf39a,_0xa184('0x11'));_0x20d758(_0x3378dc[_0xa184('0x16')]['message']);}})['catch'](function(_0x21b923){logger['error'](_0xa184('0xe'),_0x1bf39a,_0x21b923);_0x21e917(_0x21b923);});});}exports[_0xa184('0x17')]=function(_0x21e20f){var _0x5f7f29=this;return new Promise(function(_0x54f8dd,_0x172595){return db[_0xa184('0x18')]['create'](_0x21e20f[_0xa184('0x19')],{'raw':_0x21e20f[_0xa184('0x1a')]?_0x21e20f[_0xa184('0x1a')][_0xa184('0x1b')]===undefined?!![]:![]:!![]})['then'](function(_0x54b637){logger[_0xa184('0xd')](_0xa184('0x17'),_0x21e20f);logger['debug'](_0xa184('0x17'),_0x21e20f,JSON[_0xa184('0x12')](_0x54b637));_0x54f8dd(_0x54b637);})['catch'](function(_0x141464){logger[_0xa184('0x13')](_0xa184('0x17'),_0x141464[_0xa184('0x15')],_0x21e20f);_0x172595(_0x5f7f29[_0xa184('0x13')](0x1f4,_0x141464[_0xa184('0x15')]));});});};
\ No newline at end of file
+var _0x8d20=['VoiceTransferReport','body','options','raw','then','lodash','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','request','info','VoiceTransferReport,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','catch','CreateVoiceTransferReport'];(function(_0x1a014b,_0x48acae){var _0x462258=function(_0x1473be){while(--_0x1473be){_0x1a014b['push'](_0x1a014b['shift']());}};_0x462258(++_0x48acae);}(_0x8d20,0x11d));var _0x08d2=function(_0x472745,_0xaf38c){_0x472745=_0x472745-0x0;var _0x17b35e=_0x8d20[_0x472745];return _0x17b35e;};'use strict';var _=require(_0x08d2('0x0'));var util=require('util');var moment=require(_0x08d2('0x1'));var BPromise=require(_0x08d2('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x08d2('0x3'));var db=require(_0x08d2('0x4'))['db'];var utils=require(_0x08d2('0x5'));var logger=require(_0x08d2('0x6'))(_0x08d2('0x7'));var config=require('../../config/environment');var jayson=require(_0x08d2('0x8'));var client=jayson[_0x08d2('0x9')][_0x08d2('0xa')]({'port':0x232a});function respondWithRpcPromise(_0xbb006e,_0x4be443,_0x2f6c8e){return new BPromise(function(_0x225c5b,_0xe74f64){return client[_0x08d2('0xb')](_0xbb006e,_0x2f6c8e)['then'](function(_0xe31872){logger[_0x08d2('0xc')](_0x08d2('0xd'),_0x4be443,_0x08d2('0xe'));logger[_0x08d2('0xf')]('VoiceTransferReport,\x20%s,\x20%s,\x20%s',_0x4be443,_0x08d2('0xe'),JSON[_0x08d2('0x10')](_0xe31872));if(_0xe31872['error']){if(_0xe31872[_0x08d2('0x11')][_0x08d2('0x12')]===0x1f4){logger['error']('VoiceTransferReport,\x20%s,\x20%s',_0x4be443,_0xe31872[_0x08d2('0x11')][_0x08d2('0x13')]);return _0xe74f64(_0xe31872['error'][_0x08d2('0x13')]);}logger['error'](_0x08d2('0xd'),_0x4be443,_0xe31872['error'][_0x08d2('0x13')]);return _0x225c5b(_0xe31872['error']['message']);}else{logger['info']('VoiceTransferReport,\x20%s,\x20%s',_0x4be443,_0x08d2('0xe'));_0x225c5b(_0xe31872[_0x08d2('0x14')][_0x08d2('0x13')]);}})[_0x08d2('0x15')](function(_0x5cab51){logger[_0x08d2('0x11')](_0x08d2('0xd'),_0x4be443,_0x5cab51);_0xe74f64(_0x5cab51);});});}exports[_0x08d2('0x16')]=function(_0x46560e){var _0x4aec04=this;return new Promise(function(_0x1ef5d3,_0xd31a70){return db[_0x08d2('0x17')]['create'](_0x46560e[_0x08d2('0x18')],{'raw':_0x46560e['options']?_0x46560e[_0x08d2('0x19')][_0x08d2('0x1a')]===undefined?!![]:![]:!![]})[_0x08d2('0x1b')](function(_0x4366fa){logger[_0x08d2('0xc')](_0x08d2('0x16'),_0x46560e);logger['debug']('CreateVoiceTransferReport',_0x46560e,JSON['stringify'](_0x4366fa));_0x1ef5d3(_0x4366fa);})[_0x08d2('0x15')](function(_0x52fda9){logger[_0x08d2('0x11')]('CreateVoiceTransferReport',_0x52fda9[_0x08d2('0x13')],_0x46560e);_0xd31a70(_0x4aec04[_0x08d2('0x11')](0x1f4,_0x52fda9[_0x08d2('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x397c=['/hangup','hangup','/answer','answer','/hold','hold','/unhold','unhold','/calls','calls','transfer','exports','express','Router','../../components/auth/service','./webbar.controller','post','/originate','isAuthenticated','canUpdate','originate'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x397c,0x15c));var _0xc397=function(_0x2aecb2,_0x343312){_0x2aecb2=_0x2aecb2-0x0;var _0x3ebb80=_0x397c[_0x2aecb2];return _0x3ebb80;};'use strict';var express=require(_0xc397('0x0'));var router=express[_0xc397('0x1')]();var auth=require(_0xc397('0x2'));var controller=require(_0xc397('0x3'));router[_0xc397('0x4')](_0xc397('0x5'),auth[_0xc397('0x6')](),auth[_0xc397('0x7')](),controller[_0xc397('0x8')]);router[_0xc397('0x4')](_0xc397('0x9'),auth[_0xc397('0x6')](),auth[_0xc397('0x7')](),controller[_0xc397('0xa')]);router['post'](_0xc397('0xb'),auth[_0xc397('0x6')](),auth[_0xc397('0x7')](),controller[_0xc397('0xc')]);router[_0xc397('0x4')](_0xc397('0xd'),auth[_0xc397('0x6')](),auth[_0xc397('0x7')](),controller[_0xc397('0xe')]);router[_0xc397('0x4')](_0xc397('0xf'),auth['isAuthenticated'](),auth[_0xc397('0x7')](),controller[_0xc397('0x10')]);router[_0xc397('0x4')](_0xc397('0x11'),auth[_0xc397('0x6')](),auth[_0xc397('0x7')](),controller[_0xc397('0x12')]);router[_0xc397('0x4')]('/transfer',auth[_0xc397('0x6')](),auth[_0xc397('0x7')](),controller[_0xc397('0x13')]);module[_0xc397('0x14')]=router;
\ No newline at end of file
+var _0xd574=['calls','/transfer','exports','express','Router','../../components/auth/service','./webbar.controller','post','/originate','canUpdate','/hangup','isAuthenticated','/answer','/hold','/unhold','unhold','/calls'];(function(_0x22ea4f,_0x1adcb9){var _0x1a451d=function(_0x160d13){while(--_0x160d13){_0x22ea4f['push'](_0x22ea4f['shift']());}};_0x1a451d(++_0x1adcb9);}(_0xd574,0xcf));var _0x4d57=function(_0x368ba8,_0x47782a){_0x368ba8=_0x368ba8-0x0;var _0x519996=_0xd574[_0x368ba8];return _0x519996;};'use strict';var express=require(_0x4d57('0x0'));var router=express[_0x4d57('0x1')]();var auth=require(_0x4d57('0x2'));var controller=require(_0x4d57('0x3'));router[_0x4d57('0x4')](_0x4d57('0x5'),auth['isAuthenticated'](),auth[_0x4d57('0x6')](),controller['originate']);router[_0x4d57('0x4')](_0x4d57('0x7'),auth[_0x4d57('0x8')](),auth['canUpdate'](),controller['hangup']);router[_0x4d57('0x4')](_0x4d57('0x9'),auth[_0x4d57('0x8')](),auth['canUpdate'](),controller['answer']);router[_0x4d57('0x4')](_0x4d57('0xa'),auth[_0x4d57('0x8')](),auth[_0x4d57('0x6')](),controller['hold']);router[_0x4d57('0x4')](_0x4d57('0xb'),auth[_0x4d57('0x8')](),auth[_0x4d57('0x6')](),controller[_0x4d57('0xc')]);router['post'](_0x4d57('0xd'),auth[_0x4d57('0x8')](),auth[_0x4d57('0x6')](),controller[_0x4d57('0xe')]);router[_0x4d57('0x4')](_0x4d57('0xf'),auth['isAuthenticated'](),auth[_0x4d57('0x6')](),controller['transfer']);module[_0x4d57('0x10')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb6b1=['hold\x20executed!','unhold\x20executed!','calls','calls\x20fired:','VoiceChannels','all','filter','rows','conference','conference\x20fired:','webbar:conference','transfer','transferNumber','transfer\x20executed!','path','../../mysqldb','util','bluebird','client','../../config/logger','webbarapi','ioredis','redis','socket.io-emitter','validate','number','userId\x20is\x20required','string','sessionId\x20is\x20required','transferNumber\x20is\x20required','info','emit','handleError:','error','stack','name','status','send','NotFound','request','then','message','result','User','findOne','agent','UserId','sessionId\x20','\x20not\x20found!','originate','originate\x20fired:','body','length','json','userId','callerId','callbackUrl','entityFound:','format','user:%s','webbar:originate','originate\x20executed!','catch','hangup','webbar:hangup','hangup\x20executed!','answer\x20fired:','sessionId','webbar:answer','answer\x20executed!','hold','hold\x20fired:','webbar:hold'];(function(_0x1443d5,_0x21f839){var _0x3f8e34=function(_0x5e1263){while(--_0x5e1263){_0x1443d5['push'](_0x1443d5['shift']());}};_0x3f8e34(++_0x21f839);}(_0xb6b1,0x17b));var _0x1b6b=function(_0x44fef1,_0x132cf4){_0x44fef1=_0x44fef1-0x0;var _0x3c3a04=_0xb6b1[_0x44fef1];return _0x3c3a04;};'use strict';var path=require(_0x1b6b('0x0'));var fs=require('fs');var _=require('lodash');var db=require(_0x1b6b('0x1'))['db'];var config=require('../../config/environment');var util=require(_0x1b6b('0x2'));var BPromise=require(_0x1b6b('0x3'));var jayson=require('jayson/promise');var amiClient=jayson[_0x1b6b('0x4')]['http']({'port':0x232a});var logger=require(_0x1b6b('0x5'))(_0x1b6b('0x6'));var Redis=require(_0x1b6b('0x7'));config[_0x1b6b('0x8')]=_['defaults'](config[_0x1b6b('0x8')],{'host':'localhost','port':0x18eb});var io=require(_0x1b6b('0x9'))(new Redis(config['redis']));var Schema=require(_0x1b6b('0xa'));var originateValidation=new Schema({'userId':{'type':_0x1b6b('0xb'),'required':[!![],_0x1b6b('0xc')]},'callNumber':{'type':_0x1b6b('0xd'),'required':[!![],'callNumber\x20is\x20required']},'callerId':{'type':'string'},'callbackUrl':{'type':_0x1b6b('0xd')}});var hangupValidation=new Schema({'userId':{'type':_0x1b6b('0xb'),'required':[!![],_0x1b6b('0xc')]},'sessionId':{'type':_0x1b6b('0xd'),'required':![]}});var answerValidation=new Schema({'userId':{'type':_0x1b6b('0xb'),'required':[!![],_0x1b6b('0xc')]},'sessionId':{'type':_0x1b6b('0xd'),'required':![]}});var transferValidation=new Schema({'userId':{'type':'number','required':[!![],_0x1b6b('0xc')]},'sessionId':{'type':_0x1b6b('0xd'),'required':[!![],_0x1b6b('0xe')]},'transferNumber':{'type':'string','required':[!![],_0x1b6b('0xf')]}});var holdValidation=new Schema({'userId':{'type':'number','required':[!![],'userId\x20is\x20required']},'sessionId':{'type':_0x1b6b('0xd'),'required':![]}});var unholdValidation=new Schema({'userId':{'type':_0x1b6b('0xb'),'required':[!![],_0x1b6b('0xc')]},'sessionId':{'type':_0x1b6b('0xd'),'required':![]}});var callsValidation=new Schema({'userId':{'type':_0x1b6b('0xb'),'required':[!![],_0x1b6b('0xc')]}});var conferenceValidation=new Schema({'userId':{'type':_0x1b6b('0xb'),'required':[!![],'userId\x20is\x20required']}});function emit(_0x1069a4,_0x251821,_0x10af08){logger[_0x1b6b('0x10')](_0x1069a4,_0x251821,JSON['stringify'](_0x10af08));io['to'](_0x1069a4)[_0x1b6b('0x11')](_0x251821,_0x10af08);}function handleError(_0x3dd677){return function(_0x2e608b){console['log'](_0x1b6b('0x12'),_0x2e608b,_0x2e608b instanceof RangeError);logger[_0x1b6b('0x13')](_0x2e608b[_0x1b6b('0x14')]);if(_0x2e608b instanceof RangeError){if(_0x2e608b[_0x1b6b('0x15')]){delete _0x2e608b[_0x1b6b('0x15')];}_0x3dd677[_0x1b6b('0x16')](0x194)[_0x1b6b('0x17')](_0x2e608b);}else{if(_0x2e608b[_0x1b6b('0x15')]){delete _0x2e608b[_0x1b6b('0x15')];}_0x3dd677[_0x1b6b('0x16')](0x1f4)['send'](_0x2e608b);}};}function checkError(){return function(_0x283675){if(!_0x283675){throw new RangeError(_0x1b6b('0x18'));}return _0x283675;};}function respondWithRpcPromise(_0x3b427d,_0xa8cd35){return new BPromise(function(_0x27974f,_0x276713){var _0x3d4ec2=amiClient;return _0x3d4ec2[_0x1b6b('0x19')](_0x3b427d,_0xa8cd35)[_0x1b6b('0x1a')](function(_0x4987ee){if(_0x4987ee[_0x1b6b('0x13')]){if(_0x4987ee['error']['code']===0x1f4){return _0x276713(_0x4987ee['error'][_0x1b6b('0x1b')]);}return _0x27974f(_0x4987ee[_0x1b6b('0x13')]['message']);}else{_0x27974f(_0x4987ee[_0x1b6b('0x1c')]);}})['catch'](function(_0x15dfc7){_0x276713(_0x15dfc7);});});}function getAgent(_0x440658){return db[_0x1b6b('0x1d')][_0x1b6b('0x1e')]({'where':{'id':_0x440658,'role':_0x1b6b('0x1f')}})[_0x1b6b('0x1a')](checkError());}function getAgentCheckSession(_0x5d0a0a,_0xe8b7b5){return new BPromise(function(_0x1bb7f3,_0x173961){var _0x3b33d4=respondWithRpcPromise('VoiceChannels');var _0x23dac4=getAgent(_0x5d0a0a);Promise['all']([_0x3b33d4,_0x23dac4])['then'](function(_0x39b055){var _0x4e9843=_0x39b055[0x0];var _0x165fe8=_0x39b055[0x1];var _0x5c6faa=_['filter'](_0x4e9843['rows'],function(_0x36878c){return _0x36878c[_0x1b6b('0x20')]==_0x165fe8['id']&&_0x36878c['sessionId']==_0xe8b7b5;});if(_0x5c6faa['length']==0x1){_0x1bb7f3(_0x165fe8);}else{_0x173961(new RangeError(_0x1b6b('0x21')+_0xe8b7b5+_0x1b6b('0x22')));}});});}exports[_0x1b6b('0x23')]=function(_0x1bf52c,_0x56f31b){logger[_0x1b6b('0x10')](_0x1b6b('0x24'),_0x1bf52c[_0x1b6b('0x25')]);var _0x34cb27=originateValidation[_0x1b6b('0xa')](_0x1bf52c[_0x1b6b('0x25')]);if(_0x34cb27[_0x1b6b('0x26')]>0x0){return _0x56f31b[_0x1b6b('0x16')](0x190)[_0x1b6b('0x27')](_0x34cb27);}var _0x517cf7=_0x1bf52c[_0x1b6b('0x25')][_0x1b6b('0x28')];var _0x3d6e4d=_0x1bf52c[_0x1b6b('0x25')]['callNumber'];var _0x281350=_0x1bf52c['body'][_0x1b6b('0x29')];var _0x54aade=_0x1bf52c['body'][_0x1b6b('0x2a')];return getAgent(_0x517cf7)[_0x1b6b('0x1a')](function(_0xb658f1){logger['info'](_0x1b6b('0x2b'),_0xb658f1[_0x1b6b('0x15')]);emit(util[_0x1b6b('0x2c')](_0x1b6b('0x2d'),_0xb658f1[_0x1b6b('0x15')]),_0x1b6b('0x2e'),{'callNumber':_0x3d6e4d,'callerId':_0x281350,'callbackUrl':_0x54aade});return _0x56f31b[_0x1b6b('0x16')](0xc8)[_0x1b6b('0x27')]({'error':![],'message':_0x1b6b('0x2f')});})[_0x1b6b('0x30')](handleError(_0x56f31b));};exports[_0x1b6b('0x31')]=function(_0x279022,_0x3fbbb3){logger[_0x1b6b('0x10')]('hangup\x20fired:',_0x279022[_0x1b6b('0x25')]);var _0x47349b=hangupValidation['validate'](_0x279022[_0x1b6b('0x25')]);if(_0x47349b['length']>0x0){return _0x3fbbb3[_0x1b6b('0x16')](0x190)[_0x1b6b('0x27')](_0x47349b);}var _0x18f725=_0x279022['body'][_0x1b6b('0x28')];var _0x89482a=_0x279022[_0x1b6b('0x25')]['sessionId'];return getAgent(_0x18f725)[_0x1b6b('0x1a')](function(_0x478287){logger[_0x1b6b('0x10')]('entityFound:',_0x478287['name']);emit(util['format'](_0x1b6b('0x2d'),_0x478287[_0x1b6b('0x15')]),_0x1b6b('0x32'),{'sessionId':_0x89482a});return _0x3fbbb3[_0x1b6b('0x16')](0xc8)[_0x1b6b('0x27')]({'error':![],'message':_0x1b6b('0x33')});})[_0x1b6b('0x30')](handleError(_0x3fbbb3));};exports['answer']=function(_0x229d9e,_0x165384){logger[_0x1b6b('0x10')](_0x1b6b('0x34'),_0x229d9e[_0x1b6b('0x25')]);var _0x3d8374=answerValidation['validate'](_0x229d9e[_0x1b6b('0x25')]);if(_0x3d8374[_0x1b6b('0x26')]>0x0){return _0x165384[_0x1b6b('0x16')](0x190)[_0x1b6b('0x27')](_0x3d8374);}var _0x27f41f=_0x229d9e[_0x1b6b('0x25')][_0x1b6b('0x28')];var _0x393a56=_0x229d9e[_0x1b6b('0x25')][_0x1b6b('0x35')];return getAgent(_0x27f41f)[_0x1b6b('0x1a')](function(_0x32ee2f){logger['info'](_0x1b6b('0x2b'),_0x32ee2f[_0x1b6b('0x15')]);emit(util[_0x1b6b('0x2c')](_0x1b6b('0x2d'),_0x32ee2f[_0x1b6b('0x15')]),_0x1b6b('0x36'),{'sessionId':_0x393a56});return _0x165384['status'](0xc8)['json']({'error':![],'message':_0x1b6b('0x37')});})['catch'](handleError(_0x165384));};exports[_0x1b6b('0x38')]=function(_0x5bd593,_0x24c009){logger[_0x1b6b('0x10')](_0x1b6b('0x39'),_0x5bd593[_0x1b6b('0x25')]);var _0x53cb3d=holdValidation[_0x1b6b('0xa')](_0x5bd593['body']);if(_0x53cb3d['length']>0x0){return _0x24c009[_0x1b6b('0x16')](0x190)[_0x1b6b('0x27')](_0x53cb3d);}var _0x151774=_0x5bd593[_0x1b6b('0x25')]['userId'];var _0x45f31b=_0x5bd593['body'][_0x1b6b('0x35')];return getAgent(_0x151774)[_0x1b6b('0x1a')](function(_0x281f19){logger['info'](_0x1b6b('0x2b'),_0x281f19['name']);emit(util[_0x1b6b('0x2c')]('user:%s',_0x281f19[_0x1b6b('0x15')]),_0x1b6b('0x3a'),{'sessionId':_0x45f31b});return _0x24c009[_0x1b6b('0x16')](0xc8)[_0x1b6b('0x27')]({'error':![],'message':_0x1b6b('0x3b')});})[_0x1b6b('0x30')](handleError(_0x24c009));};exports['unhold']=function(_0x4c1e02,_0x2be336){logger[_0x1b6b('0x10')]('unhold\x20fired:',_0x4c1e02[_0x1b6b('0x25')]);var _0x459030=unholdValidation[_0x1b6b('0xa')](_0x4c1e02[_0x1b6b('0x25')]);if(_0x459030[_0x1b6b('0x26')]>0x0){return _0x2be336['status'](0x190)[_0x1b6b('0x27')](_0x459030);}var _0x5ed55b=_0x4c1e02[_0x1b6b('0x25')][_0x1b6b('0x28')];var _0x295002=_0x4c1e02[_0x1b6b('0x25')][_0x1b6b('0x35')];return getAgent(_0x5ed55b)[_0x1b6b('0x1a')](function(_0x32cde4){logger[_0x1b6b('0x10')](_0x1b6b('0x2b'),_0x32cde4['name']);emit(util['format']('user:%s',_0x32cde4[_0x1b6b('0x15')]),'webbar:unhold',{'sessionId':_0x295002});return _0x2be336['status'](0xc8)[_0x1b6b('0x27')]({'error':![],'message':_0x1b6b('0x3c')});})[_0x1b6b('0x30')](handleError(_0x2be336));};exports[_0x1b6b('0x3d')]=function(_0x527aca,_0x1f549c){logger[_0x1b6b('0x10')](_0x1b6b('0x3e'),_0x1f549c['body']);var _0x4df1e4=callsValidation[_0x1b6b('0xa')](_0x527aca[_0x1b6b('0x25')]);if(_0x4df1e4[_0x1b6b('0x26')]>0x0){return _0x1f549c['status'](0x190)['json'](_0x4df1e4);}var _0x5c3276=_0x527aca['body'][_0x1b6b('0x28')];var _0x13f3d8=respondWithRpcPromise(_0x1b6b('0x3f'));var _0x2de012=getAgent(_0x5c3276);return Promise[_0x1b6b('0x40')]([_0x13f3d8,_0x2de012])[_0x1b6b('0x1a')](function(_0x4be484){var _0x1e16fd=_0x4be484[0x0];var _0x3f80d6=_0x4be484[0x1];var _0x1d87d6=_[_0x1b6b('0x41')](_0x1e16fd[_0x1b6b('0x42')],function(_0x1e3ce2){return _0x1e3ce2['UserId']==_0x3f80d6['id'];});return _0x1f549c[_0x1b6b('0x16')](0xc8)['json']({'count':_0x1d87d6['length'],'rows':_0x1d87d6});})['catch'](handleError(_0x1f549c));};exports[_0x1b6b('0x43')]=function(_0x57228d,_0x593726){logger[_0x1b6b('0x10')](_0x1b6b('0x44'),_0x57228d[_0x1b6b('0x25')]);var _0x3cba4a=conferenceValidation[_0x1b6b('0xa')](_0x57228d[_0x1b6b('0x25')]);if(_0x3cba4a[_0x1b6b('0x26')]>0x0){return _0x593726['status'](0x190)[_0x1b6b('0x27')](_0x3cba4a);}var _0x5e8781=_0x57228d[_0x1b6b('0x25')][_0x1b6b('0x28')];return getAgent(_0x5e8781)[_0x1b6b('0x1a')](function(_0x54fc6b){logger['info'](_0x1b6b('0x2b'),_0x54fc6b[_0x1b6b('0x15')]);emit(util[_0x1b6b('0x2c')](_0x1b6b('0x2d'),_0x54fc6b[_0x1b6b('0x15')]),_0x1b6b('0x45'));return _0x593726[_0x1b6b('0x16')](0xc8)[_0x1b6b('0x27')]({'error':![],'message':'conference\x20executed!'});})['catch'](handleError(_0x593726));};exports[_0x1b6b('0x46')]=function(_0x1f4752,_0x19b1c6){logger[_0x1b6b('0x10')]('transfer\x20fired:',_0x1f4752[_0x1b6b('0x25')]);var _0x4dac8f=transferValidation[_0x1b6b('0xa')](_0x1f4752[_0x1b6b('0x25')]);if(_0x4dac8f['length']>0x0){return _0x19b1c6[_0x1b6b('0x16')](0x190)[_0x1b6b('0x27')](_0x4dac8f);}var _0x358ea9=_0x1f4752[_0x1b6b('0x25')][_0x1b6b('0x28')];var _0x10bd40=_0x1f4752['body'][_0x1b6b('0x35')];var _0x3fbc4b=_0x1f4752['body'][_0x1b6b('0x47')];return getAgent(_0x358ea9)[_0x1b6b('0x1a')](function(_0x2a816b){logger[_0x1b6b('0x10')](_0x1b6b('0x2b'),_0x2a816b[_0x1b6b('0x15')]);emit(util[_0x1b6b('0x2c')](_0x1b6b('0x2d'),_0x2a816b['name']),'webbar:transfer',{'sessionId':_0x10bd40,'transferNumber':_0x3fbc4b});return _0x19b1c6['status'](0xc8)[_0x1b6b('0x27')]({'error':![],'message':_0x1b6b('0x48')});})[_0x1b6b('0x30')](handleError(_0x19b1c6));};
\ No newline at end of file
+var _0x5db8=['callerId','callbackUrl','entityFound:','format','user:%s','webbar:originate','originate\x20executed!','hangup','hangup\x20fired:','sessionId','webbar:hangup','hangup\x20executed!','answer','answer\x20fired:','webbar:answer','answer\x20executed!','hold','hold\x20fired:','webbar:hold','hold\x20executed!','webbar:unhold','unhold\x20executed!','calls','calls\x20fired:','VoiceChannels','UserId','transfer','transfer\x20fired:','transferNumber','webbar:transfer','transfer\x20executed!','path','lodash','../../mysqldb','util','bluebird','jayson/promise','../../config/logger','webbarapi','ioredis','redis','localhost','socket.io-emitter','validate','userId\x20is\x20required','callNumber\x20is\x20required','string','number','sessionId\x20is\x20required','transferNumber\x20is\x20required','info','stringify','emit','handleError:','error','stack','name','status','send','NotFound','request','code','message','result','catch','findOne','agent','then','all','filter','rows','length','\x20not\x20found!','originate','originate\x20fired:','body','json','userId'];(function(_0x3ab51d,_0x2fa01d){var _0x29a04e=function(_0x7807b0){while(--_0x7807b0){_0x3ab51d['push'](_0x3ab51d['shift']());}};_0x29a04e(++_0x2fa01d);}(_0x5db8,0xbb));var _0x85db=function(_0x531a19,_0x43e019){_0x531a19=_0x531a19-0x0;var _0x4845d2=_0x5db8[_0x531a19];return _0x4845d2;};'use strict';var path=require(_0x85db('0x0'));var fs=require('fs');var _=require(_0x85db('0x1'));var db=require(_0x85db('0x2'))['db'];var config=require('../../config/environment');var util=require(_0x85db('0x3'));var BPromise=require(_0x85db('0x4'));var jayson=require(_0x85db('0x5'));var amiClient=jayson['client']['http']({'port':0x232a});var logger=require(_0x85db('0x6'))(_0x85db('0x7'));var Redis=require(_0x85db('0x8'));config[_0x85db('0x9')]=_['defaults'](config['redis'],{'host':_0x85db('0xa'),'port':0x18eb});var io=require(_0x85db('0xb'))(new Redis(config[_0x85db('0x9')]));var Schema=require(_0x85db('0xc'));var originateValidation=new Schema({'userId':{'type':'number','required':[!![],_0x85db('0xd')]},'callNumber':{'type':'string','required':[!![],_0x85db('0xe')]},'callerId':{'type':_0x85db('0xf')},'callbackUrl':{'type':_0x85db('0xf')}});var hangupValidation=new Schema({'userId':{'type':_0x85db('0x10'),'required':[!![],'userId\x20is\x20required']},'sessionId':{'type':'string','required':![]}});var answerValidation=new Schema({'userId':{'type':'number','required':[!![],_0x85db('0xd')]},'sessionId':{'type':_0x85db('0xf'),'required':![]}});var transferValidation=new Schema({'userId':{'type':'number','required':[!![],_0x85db('0xd')]},'sessionId':{'type':'string','required':[!![],_0x85db('0x11')]},'transferNumber':{'type':_0x85db('0xf'),'required':[!![],_0x85db('0x12')]}});var holdValidation=new Schema({'userId':{'type':_0x85db('0x10'),'required':[!![],_0x85db('0xd')]},'sessionId':{'type':_0x85db('0xf'),'required':![]}});var unholdValidation=new Schema({'userId':{'type':_0x85db('0x10'),'required':[!![],_0x85db('0xd')]},'sessionId':{'type':_0x85db('0xf'),'required':![]}});var callsValidation=new Schema({'userId':{'type':_0x85db('0x10'),'required':[!![],_0x85db('0xd')]}});var conferenceValidation=new Schema({'userId':{'type':_0x85db('0x10'),'required':[!![],_0x85db('0xd')]}});function emit(_0x5ccfef,_0x27bd65,_0x175622){logger[_0x85db('0x13')](_0x5ccfef,_0x27bd65,JSON[_0x85db('0x14')](_0x175622));io['to'](_0x5ccfef)[_0x85db('0x15')](_0x27bd65,_0x175622);}function handleError(_0x396afa){return function(_0x3209b3){console['log'](_0x85db('0x16'),_0x3209b3,_0x3209b3 instanceof RangeError);logger[_0x85db('0x17')](_0x3209b3[_0x85db('0x18')]);if(_0x3209b3 instanceof RangeError){if(_0x3209b3[_0x85db('0x19')]){delete _0x3209b3[_0x85db('0x19')];}_0x396afa[_0x85db('0x1a')](0x194)[_0x85db('0x1b')](_0x3209b3);}else{if(_0x3209b3[_0x85db('0x19')]){delete _0x3209b3[_0x85db('0x19')];}_0x396afa[_0x85db('0x1a')](0x1f4)['send'](_0x3209b3);}};}function checkError(){return function(_0x36a2af){if(!_0x36a2af){throw new RangeError(_0x85db('0x1c'));}return _0x36a2af;};}function respondWithRpcPromise(_0xc812d2,_0x470c81){return new BPromise(function(_0x44c122,_0x3842d7){var _0x3a7148=amiClient;return _0x3a7148[_0x85db('0x1d')](_0xc812d2,_0x470c81)['then'](function(_0xfffea2){if(_0xfffea2[_0x85db('0x17')]){if(_0xfffea2[_0x85db('0x17')][_0x85db('0x1e')]===0x1f4){return _0x3842d7(_0xfffea2[_0x85db('0x17')][_0x85db('0x1f')]);}return _0x44c122(_0xfffea2['error'][_0x85db('0x1f')]);}else{_0x44c122(_0xfffea2[_0x85db('0x20')]);}})[_0x85db('0x21')](function(_0x54ba03){_0x3842d7(_0x54ba03);});});}function getAgent(_0x5467ad){return db['User'][_0x85db('0x22')]({'where':{'id':_0x5467ad,'role':_0x85db('0x23')}})[_0x85db('0x24')](checkError());}function getAgentCheckSession(_0x51b748,_0x71c6f4){return new BPromise(function(_0xc2abb8,_0xdfff49){var _0x574bcc=respondWithRpcPromise('VoiceChannels');var _0x299013=getAgent(_0x51b748);Promise[_0x85db('0x25')]([_0x574bcc,_0x299013])[_0x85db('0x24')](function(_0x226540){var _0x397afc=_0x226540[0x0];var _0x16ee2a=_0x226540[0x1];var _0x8af4a4=_[_0x85db('0x26')](_0x397afc[_0x85db('0x27')],function(_0x1edc8d){return _0x1edc8d['UserId']==_0x16ee2a['id']&&_0x1edc8d['sessionId']==_0x71c6f4;});if(_0x8af4a4[_0x85db('0x28')]==0x1){_0xc2abb8(_0x16ee2a);}else{_0xdfff49(new RangeError('sessionId\x20'+_0x71c6f4+_0x85db('0x29')));}});});}exports[_0x85db('0x2a')]=function(_0x5abdb7,_0x1d15b0){logger[_0x85db('0x13')](_0x85db('0x2b'),_0x5abdb7[_0x85db('0x2c')]);var _0x515a06=originateValidation[_0x85db('0xc')](_0x5abdb7[_0x85db('0x2c')]);if(_0x515a06[_0x85db('0x28')]>0x0){return _0x1d15b0[_0x85db('0x1a')](0x190)[_0x85db('0x2d')](_0x515a06);}var _0x4808a4=_0x5abdb7[_0x85db('0x2c')][_0x85db('0x2e')];var _0x232175=_0x5abdb7[_0x85db('0x2c')]['callNumber'];var _0xfe3cd9=_0x5abdb7[_0x85db('0x2c')][_0x85db('0x2f')];var _0x536398=_0x5abdb7['body'][_0x85db('0x30')];return getAgent(_0x4808a4)[_0x85db('0x24')](function(_0x4980b7){logger[_0x85db('0x13')](_0x85db('0x31'),_0x4980b7[_0x85db('0x19')]);emit(util[_0x85db('0x32')](_0x85db('0x33'),_0x4980b7[_0x85db('0x19')]),_0x85db('0x34'),{'callNumber':_0x232175,'callerId':_0xfe3cd9,'callbackUrl':_0x536398});return _0x1d15b0[_0x85db('0x1a')](0xc8)[_0x85db('0x2d')]({'error':![],'message':_0x85db('0x35')});})[_0x85db('0x21')](handleError(_0x1d15b0));};exports[_0x85db('0x36')]=function(_0x54bc6f,_0x35e938){logger[_0x85db('0x13')](_0x85db('0x37'),_0x54bc6f[_0x85db('0x2c')]);var _0x57a77a=hangupValidation[_0x85db('0xc')](_0x54bc6f[_0x85db('0x2c')]);if(_0x57a77a[_0x85db('0x28')]>0x0){return _0x35e938[_0x85db('0x1a')](0x190)['json'](_0x57a77a);}var _0x5dfe91=_0x54bc6f['body']['userId'];var _0x4d5ff9=_0x54bc6f[_0x85db('0x2c')][_0x85db('0x38')];return getAgent(_0x5dfe91)[_0x85db('0x24')](function(_0x17f649){logger[_0x85db('0x13')]('entityFound:',_0x17f649['name']);emit(util[_0x85db('0x32')]('user:%s',_0x17f649[_0x85db('0x19')]),_0x85db('0x39'),{'sessionId':_0x4d5ff9});return _0x35e938['status'](0xc8)['json']({'error':![],'message':_0x85db('0x3a')});})[_0x85db('0x21')](handleError(_0x35e938));};exports[_0x85db('0x3b')]=function(_0x73eb93,_0x24f8dc){logger['info'](_0x85db('0x3c'),_0x73eb93[_0x85db('0x2c')]);var _0x115720=answerValidation['validate'](_0x73eb93['body']);if(_0x115720['length']>0x0){return _0x24f8dc[_0x85db('0x1a')](0x190)[_0x85db('0x2d')](_0x115720);}var _0x116cb3=_0x73eb93['body']['userId'];var _0x3e4dbc=_0x73eb93['body'][_0x85db('0x38')];return getAgent(_0x116cb3)[_0x85db('0x24')](function(_0x374515){logger['info'](_0x85db('0x31'),_0x374515[_0x85db('0x19')]);emit(util[_0x85db('0x32')](_0x85db('0x33'),_0x374515[_0x85db('0x19')]),_0x85db('0x3d'),{'sessionId':_0x3e4dbc});return _0x24f8dc[_0x85db('0x1a')](0xc8)[_0x85db('0x2d')]({'error':![],'message':_0x85db('0x3e')});})['catch'](handleError(_0x24f8dc));};exports[_0x85db('0x3f')]=function(_0x1b9ab8,_0x30c7a0){logger[_0x85db('0x13')](_0x85db('0x40'),_0x1b9ab8[_0x85db('0x2c')]);var _0x4acd1c=holdValidation[_0x85db('0xc')](_0x1b9ab8[_0x85db('0x2c')]);if(_0x4acd1c[_0x85db('0x28')]>0x0){return _0x30c7a0['status'](0x190)['json'](_0x4acd1c);}var _0x1350ae=_0x1b9ab8['body'][_0x85db('0x2e')];var _0x85181f=_0x1b9ab8[_0x85db('0x2c')][_0x85db('0x38')];return getAgent(_0x1350ae)[_0x85db('0x24')](function(_0x5e1455){logger['info'](_0x85db('0x31'),_0x5e1455[_0x85db('0x19')]);emit(util[_0x85db('0x32')](_0x85db('0x33'),_0x5e1455[_0x85db('0x19')]),_0x85db('0x41'),{'sessionId':_0x85181f});return _0x30c7a0[_0x85db('0x1a')](0xc8)[_0x85db('0x2d')]({'error':![],'message':_0x85db('0x42')});})[_0x85db('0x21')](handleError(_0x30c7a0));};exports['unhold']=function(_0x69c505,_0x2c4ae4){logger['info']('unhold\x20fired:',_0x69c505[_0x85db('0x2c')]);var _0x306be6=unholdValidation['validate'](_0x69c505['body']);if(_0x306be6[_0x85db('0x28')]>0x0){return _0x2c4ae4[_0x85db('0x1a')](0x190)['json'](_0x306be6);}var _0x101388=_0x69c505[_0x85db('0x2c')][_0x85db('0x2e')];var _0xd3cedb=_0x69c505[_0x85db('0x2c')][_0x85db('0x38')];return getAgent(_0x101388)[_0x85db('0x24')](function(_0x438ce7){logger[_0x85db('0x13')](_0x85db('0x31'),_0x438ce7['name']);emit(util['format'](_0x85db('0x33'),_0x438ce7[_0x85db('0x19')]),_0x85db('0x43'),{'sessionId':_0xd3cedb});return _0x2c4ae4[_0x85db('0x1a')](0xc8)[_0x85db('0x2d')]({'error':![],'message':_0x85db('0x44')});})[_0x85db('0x21')](handleError(_0x2c4ae4));};exports[_0x85db('0x45')]=function(_0x34b54e,_0x1e6f60){logger[_0x85db('0x13')](_0x85db('0x46'),_0x1e6f60[_0x85db('0x2c')]);var _0x425e61=callsValidation['validate'](_0x34b54e[_0x85db('0x2c')]);if(_0x425e61[_0x85db('0x28')]>0x0){return _0x1e6f60['status'](0x190)[_0x85db('0x2d')](_0x425e61);}var _0x40a009=_0x34b54e[_0x85db('0x2c')][_0x85db('0x2e')];var _0x992a63=respondWithRpcPromise(_0x85db('0x47'));var _0x43b095=getAgent(_0x40a009);return Promise['all']([_0x992a63,_0x43b095])[_0x85db('0x24')](function(_0x355be9){var _0x4d7e50=_0x355be9[0x0];var _0x5b38c6=_0x355be9[0x1];var _0x1e910e=_['filter'](_0x4d7e50[_0x85db('0x27')],function(_0x42ca02){return _0x42ca02[_0x85db('0x48')]==_0x5b38c6['id'];});return _0x1e6f60[_0x85db('0x1a')](0xc8)['json']({'count':_0x1e910e[_0x85db('0x28')],'rows':_0x1e910e});})['catch'](handleError(_0x1e6f60));};exports['conference']=function(_0x493ab3,_0x367e3e){logger[_0x85db('0x13')]('conference\x20fired:',_0x493ab3[_0x85db('0x2c')]);var _0x1249a6=conferenceValidation['validate'](_0x493ab3[_0x85db('0x2c')]);if(_0x1249a6[_0x85db('0x28')]>0x0){return _0x367e3e[_0x85db('0x1a')](0x190)[_0x85db('0x2d')](_0x1249a6);}var _0x42eddd=_0x493ab3[_0x85db('0x2c')]['userId'];return getAgent(_0x42eddd)[_0x85db('0x24')](function(_0x427250){logger[_0x85db('0x13')](_0x85db('0x31'),_0x427250[_0x85db('0x19')]);emit(util[_0x85db('0x32')](_0x85db('0x33'),_0x427250[_0x85db('0x19')]),'webbar:conference');return _0x367e3e['status'](0xc8)['json']({'error':![],'message':'conference\x20executed!'});})[_0x85db('0x21')](handleError(_0x367e3e));};exports[_0x85db('0x49')]=function(_0x88626d,_0x239027){logger[_0x85db('0x13')](_0x85db('0x4a'),_0x88626d['body']);var _0x367ebe=transferValidation[_0x85db('0xc')](_0x88626d[_0x85db('0x2c')]);if(_0x367ebe[_0x85db('0x28')]>0x0){return _0x239027['status'](0x190)[_0x85db('0x2d')](_0x367ebe);}var _0x3dc6f0=_0x88626d[_0x85db('0x2c')][_0x85db('0x2e')];var _0x4d042c=_0x88626d[_0x85db('0x2c')][_0x85db('0x38')];var _0x2af26e=_0x88626d[_0x85db('0x2c')][_0x85db('0x4b')];return getAgent(_0x3dc6f0)['then'](function(_0x4667a5){logger[_0x85db('0x13')](_0x85db('0x31'),_0x4667a5[_0x85db('0x19')]);emit(util[_0x85db('0x32')]('user:%s',_0x4667a5[_0x85db('0x19')]),_0x85db('0x4c'),{'sessionId':_0x4d042c,'transferNumber':_0x2af26e});return _0x239027[_0x85db('0x1a')](0xc8)[_0x85db('0x2d')]({'error':![],'message':_0x85db('0x4d')});})['catch'](handleError(_0x239027));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1a37=['get','index','/describe','isAuthenticated','show','/:id/dispositions','getDispositions','/:id/canned_answers','getAgents','/:id/applications','getApplications','post','create','addDisposition','addAnswer','/:id/users','addAgents','addApplications','notify','/:id/send','send','/:id','update','delete','destroy','removeDispositions','removeAgents','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x1a37,0xb4));var _0x71a3=function(_0x1694f5,_0x49b7c3){_0x1694f5=_0x1694f5-0x0;var _0x5b4321=_0x1a37[_0x1694f5];return _0x5b4321;};'use strict';var multer=require(_0x71a3('0x0'));var util=require(_0x71a3('0x1'));var path=require(_0x71a3('0x2'));var timeout=require(_0x71a3('0x3'));var express=require(_0x71a3('0x4'));var router=express[_0x71a3('0x5')]();var fs_extra=require(_0x71a3('0x6'));var auth=require(_0x71a3('0x7'));var interaction=require(_0x71a3('0x8'));var config=require(_0x71a3('0x9'));var controller=require('./whatsappAccount.controller');router[_0x71a3('0xa')]('/',auth['isAuthenticated'](),controller[_0x71a3('0xb')]);router[_0x71a3('0xa')](_0x71a3('0xc'),auth[_0x71a3('0xd')](),controller['describe']);router['get']('/:id',auth['isAuthenticated'](),controller[_0x71a3('0xe')]);router[_0x71a3('0xa')](_0x71a3('0xf'),auth[_0x71a3('0xd')](),controller[_0x71a3('0x10')]);router[_0x71a3('0xa')](_0x71a3('0x11'),auth[_0x71a3('0xd')](),controller['getAnswers']);router['get']('/:id/users',auth[_0x71a3('0xd')](),controller[_0x71a3('0x12')]);router[_0x71a3('0xa')](_0x71a3('0x13'),auth[_0x71a3('0xd')](),controller[_0x71a3('0x14')]);router[_0x71a3('0x15')]('/',auth[_0x71a3('0xd')](),controller[_0x71a3('0x16')]);router[_0x71a3('0x15')](_0x71a3('0xf'),auth['isAuthenticated'](),controller[_0x71a3('0x17')]);router[_0x71a3('0x15')]('/:id/canned_answers',auth['isAuthenticated'](),controller[_0x71a3('0x18')]);router[_0x71a3('0x15')](_0x71a3('0x19'),auth[_0x71a3('0xd')](),controller[_0x71a3('0x1a')]);router[_0x71a3('0x15')]('/:id/applications',auth[_0x71a3('0xd')](),controller[_0x71a3('0x1b')]);router['post']('/:id/notify',controller[_0x71a3('0x1c')]);router[_0x71a3('0x15')](_0x71a3('0x1d'),auth[_0x71a3('0xd')](),controller[_0x71a3('0x1e')]);router['put'](_0x71a3('0x1f'),auth[_0x71a3('0xd')](),controller[_0x71a3('0x20')]);router[_0x71a3('0x21')](_0x71a3('0x1f'),auth['isAuthenticated'](),controller[_0x71a3('0x22')]);router['delete'](_0x71a3('0xf'),auth[_0x71a3('0xd')](),controller[_0x71a3('0x23')]);router[_0x71a3('0x21')](_0x71a3('0x11'),auth[_0x71a3('0xd')](),controller['removeAnswers']);router[_0x71a3('0x21')](_0x71a3('0x19'),auth[_0x71a3('0xd')](),controller[_0x71a3('0x24')]);module[_0x71a3('0x25')]=router;
\ No newline at end of file
+var _0x93e9=['/describe','/:id','show','/:id/dispositions','/:id/canned_answers','/:id/applications','getApplications','post','create','addDisposition','addAnswer','/:id/users','addApplications','/:id/notify','/:id/send','send','put','update','destroy','delete','removeDispositions','removeAnswers','removeAgents','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../config/environment','./whatsappAccount.controller','get','isAuthenticated','index'];(function(_0x2d460c,_0x4f08c0){var _0xf6fc4c=function(_0x4fb81c){while(--_0x4fb81c){_0x2d460c['push'](_0x2d460c['shift']());}};_0xf6fc4c(++_0x4f08c0);}(_0x93e9,0xcc));var _0x993e=function(_0x5df641,_0x1e66a0){_0x5df641=_0x5df641-0x0;var _0x1a943e=_0x93e9[_0x5df641];return _0x1a943e;};'use strict';var multer=require(_0x993e('0x0'));var util=require(_0x993e('0x1'));var path=require(_0x993e('0x2'));var timeout=require(_0x993e('0x3'));var express=require(_0x993e('0x4'));var router=express[_0x993e('0x5')]();var fs_extra=require(_0x993e('0x6'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x993e('0x7'));var controller=require(_0x993e('0x8'));router[_0x993e('0x9')]('/',auth[_0x993e('0xa')](),controller[_0x993e('0xb')]);router[_0x993e('0x9')](_0x993e('0xc'),auth[_0x993e('0xa')](),controller['describe']);router[_0x993e('0x9')](_0x993e('0xd'),auth[_0x993e('0xa')](),controller[_0x993e('0xe')]);router[_0x993e('0x9')](_0x993e('0xf'),auth[_0x993e('0xa')](),controller['getDispositions']);router[_0x993e('0x9')](_0x993e('0x10'),auth['isAuthenticated'](),controller['getAnswers']);router[_0x993e('0x9')]('/:id/users',auth[_0x993e('0xa')](),controller['getAgents']);router['get'](_0x993e('0x11'),auth[_0x993e('0xa')](),controller[_0x993e('0x12')]);router[_0x993e('0x13')]('/',auth[_0x993e('0xa')](),controller[_0x993e('0x14')]);router[_0x993e('0x13')](_0x993e('0xf'),auth[_0x993e('0xa')](),controller[_0x993e('0x15')]);router[_0x993e('0x13')](_0x993e('0x10'),auth[_0x993e('0xa')](),controller[_0x993e('0x16')]);router[_0x993e('0x13')](_0x993e('0x17'),auth[_0x993e('0xa')](),controller['addAgents']);router[_0x993e('0x13')](_0x993e('0x11'),auth[_0x993e('0xa')](),controller[_0x993e('0x18')]);router[_0x993e('0x13')](_0x993e('0x19'),controller['notify']);router[_0x993e('0x13')](_0x993e('0x1a'),auth[_0x993e('0xa')](),controller[_0x993e('0x1b')]);router[_0x993e('0x1c')](_0x993e('0xd'),auth[_0x993e('0xa')](),controller[_0x993e('0x1d')]);router['delete'](_0x993e('0xd'),auth['isAuthenticated'](),controller[_0x993e('0x1e')]);router[_0x993e('0x1f')](_0x993e('0xf'),auth['isAuthenticated'](),controller[_0x993e('0x20')]);router[_0x993e('0x1f')](_0x993e('0x10'),auth[_0x993e('0xa')](),controller[_0x993e('0x21')]);router[_0x993e('0x1f')](_0x993e('0x17'),auth[_0x993e('0xa')](),controller[_0x993e('0x22')]);module[_0x993e('0x23')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf03f=['ENUM','twilio','TEXT','Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}','BOOLEAN','INTEGER','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','setDataValue','mandatoryDispositionPauseId','sequelize','exports','STRING','generate'];(function(_0x2d1995,_0x5378e3){var _0x3dffc4=function(_0x4a713d){while(--_0x4a713d){_0x2d1995['push'](_0x2d1995['shift']());}};_0x3dffc4(++_0x5378e3);}(_0xf03f,0x11a));var _0xff03=function(_0x2261ce,_0x9ed8b6){_0x2261ce=_0x2261ce-0x0;var _0x524640=_0xf03f[_0x2261ce];return _0x524640;};'use strict';var Sequelize=require(_0xff03('0x0'));var rs=require('randomstring');module[_0xff03('0x1')]={'name':{'type':Sequelize[_0xff03('0x2')],'unique':'name','allowNull':![]},'key':{'type':Sequelize[_0xff03('0x2')],'allowNull':![]},'remote':{'type':Sequelize['STRING'],'allowNull':![]},'token':{'type':Sequelize[_0xff03('0x2')],'defaultValue':function(){return rs[_0xff03('0x3')]();}},'phone':{'type':Sequelize['STRING']},'type':{'type':Sequelize[_0xff03('0x4')](_0xff03('0x5'),'sinch')},'accountSid':{'type':Sequelize[_0xff03('0x2')]},'baseUrl':{'type':Sequelize[_0xff03('0x2')]},'authToken':{'type':Sequelize[_0xff03('0x2')]},'notificationTemplate':{'type':Sequelize[_0xff03('0x6')],'defaultValue':function(){return _0xff03('0x7');}},'notificationSound':{'type':Sequelize[_0xff03('0x8')],'defaultValue':![]},'notificationShake':{'type':Sequelize[_0xff03('0x8')],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize[_0xff03('0x9')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'queueTransfer':{'type':Sequelize[_0xff03('0x8')],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize[_0xff03('0x9')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0xff03('0x8')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize[_0xff03('0x9')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'mandatoryDispositionPauseId':{'type':Sequelize[_0xff03('0x9')],'comment':'Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled'},'mandatoryDisposition':{'type':Sequelize[_0xff03('0x8')],'defaultValue':![],'comment':_0xff03('0xa'),'set':function(_0x5acc70){if(!_0x5acc70){this[_0xff03('0xb')](_0xff03('0xc'),null);}this[_0xff03('0xb')]('mandatoryDisposition',_0x5acc70);}},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0xcb04=['Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','setDataValue','sequelize','randomstring','exports','name','STRING','generate','ENUM','twilio','TEXT','Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}','BOOLEAN','INTEGER'];(function(_0x3d9e6e,_0x80b08a){var _0x540ed0=function(_0x4f238c){while(--_0x4f238c){_0x3d9e6e['push'](_0x3d9e6e['shift']());}};_0x540ed0(++_0x80b08a);}(_0xcb04,0x111));var _0x4cb0=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xcb04[_0x20a584];return _0x4b41a8;};'use strict';var Sequelize=require(_0x4cb0('0x0'));var rs=require(_0x4cb0('0x1'));module[_0x4cb0('0x2')]={'name':{'type':Sequelize['STRING'],'unique':_0x4cb0('0x3'),'allowNull':![]},'key':{'type':Sequelize['STRING'],'allowNull':![]},'remote':{'type':Sequelize[_0x4cb0('0x4')],'allowNull':![]},'token':{'type':Sequelize[_0x4cb0('0x4')],'defaultValue':function(){return rs[_0x4cb0('0x5')]();}},'phone':{'type':Sequelize['STRING']},'type':{'type':Sequelize[_0x4cb0('0x6')](_0x4cb0('0x7'))},'accountSid':{'type':Sequelize['STRING']},'authToken':{'type':Sequelize['STRING']},'notificationTemplate':{'type':Sequelize[_0x4cb0('0x8')],'defaultValue':function(){return _0x4cb0('0x9');}},'notificationSound':{'type':Sequelize[_0x4cb0('0xa')],'defaultValue':![]},'notificationShake':{'type':Sequelize[_0x4cb0('0xa')],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'queueTransfer':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize[_0x4cb0('0xb')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0x4cb0('0xa')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize[_0x4cb0('0xb')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'mandatoryDispositionPauseId':{'type':Sequelize[_0x4cb0('0xb')],'comment':_0x4cb0('0xc')},'mandatoryDisposition':{'type':Sequelize[_0x4cb0('0xa')],'defaultValue':![],'comment':_0x4cb0('0xd'),'set':function(_0x4a0094){if(!_0x4a0094){this[_0x4cb0('0xe')]('mandatoryDispositionPauseId',null);}this[_0x4cb0('0xe')]('mandatoryDisposition',_0x4a0094);}},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf8a3=['options','include','WhatsappAccount','findAll','rows','show','includeAll','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','params','describe','addDisposition','WhatsappAccountId','getDispositions','Disposition','removeDispositions','ids','addAnswer','CannedAnswer','getAnswers','removeAnswers','addAgents','omit','spread','emit','userWhatsappAccount:save','removeAgents','isArray','userWhatsappAccount:remove','findOne','User','getAgents','addApplications','sequelize','transaction','WhatsappApplication','bulkCreate','findAndCountAll','priority','getApplications','notify','whatsapp','Applications','account','statuses','state','read','WhatsappMessage','timestamp','message_id','applications','orderBy','asc','Sequelize','no\x20available\x20attributes','difference','createdAt','updatedAt','twilio','From','whatsapp:','Body','MessageSid','sinch','from','notifications','messageId','isNil','ValidationError','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','CmList','ListId','CmContact','Contacts','list','contact','WhatsappInteraction','interaction','created','close','unmanaged','*,*,*,*','ContactId','AttachmentId','UserId','agent','waitForTheAssignedAgent','Start','startRouting','receiveMessage','entity\x20found','WhatsappAccount,\x20%s,\x20%s,\x20%s,\x20%s','Content-Type','text/xml','<?xml\x20version=\x221.0\x22\x20encoding=\x22UTF-8\x22?>\x0a<Response></Response>','DESC','List','Messages','dataValues','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','to-csv','fs-extra','lodash','crypto','jsforce','desk.js','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','defaults','redis','localhost','socket.io-emitter','register','client','http','then','debug','WhatsappAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','WhatsappAccount,\x20%s,\x20%s','message','request\x20sent','result','catch','sendStatus','status','json','undefined','count','offset','set','Content-Range','apply','reject','save','update','get','UserProfileResource','destroy','end','name','send','index','Pause','mandatoryDispositionPause','map','rawAttributes','type','model','keys','query','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','order','sort','where','pick','filters','filter','merge','VIRTUAL'];(function(_0x5cc8b9,_0x20e3c3){var _0x58892e=function(_0x87457a){while(--_0x87457a){_0x5cc8b9['push'](_0x5cc8b9['shift']());}};_0x58892e(++_0x20e3c3);}(_0xf8a3,0x6b));var _0x3f8a=function(_0x45fcf9,_0x41370d){_0x45fcf9=_0x45fcf9-0x0;var _0x31fd34=_0xf8a3[_0x45fcf9];return _0x31fd34;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x3f8a('0x0'));var zipdir=require(_0x3f8a('0x1'));var jsonpatch=require(_0x3f8a('0x2'));var rp=require(_0x3f8a('0x3'));var moment=require('moment');var BPromise=require(_0x3f8a('0x4'));var Mustache=require(_0x3f8a('0x5'));var util=require(_0x3f8a('0x6'));var path=require(_0x3f8a('0x7'));var sox=require('sox');var csv=require(_0x3f8a('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x3f8a('0x9'));var _=require(_0x3f8a('0xa'));var squel=require('squel');var crypto=require(_0x3f8a('0xb'));var jsforce=require(_0x3f8a('0xc'));var deskjs=require(_0x3f8a('0xd'));var toCsv=require(_0x3f8a('0x8'));var querystring=require(_0x3f8a('0xe'));var Papa=require('papaparse');var Redis=require(_0x3f8a('0xf'));var authService=require('../../components/auth/service');var qs=require(_0x3f8a('0x10'));var as=require(_0x3f8a('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x3f8a('0x12'))(_0x3f8a('0x13'));var utils=require(_0x3f8a('0x14'));var config=require(_0x3f8a('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0x3f8a('0x16'))['db'];config['redis']=_[_0x3f8a('0x17')](config[_0x3f8a('0x18')],{'host':_0x3f8a('0x19'),'port':0x18eb});var socket=require(_0x3f8a('0x1a'))(new Redis(config[_0x3f8a('0x18')]));require('./whatsappAccount.socket')[_0x3f8a('0x1b')](socket);var jayson=require('jayson/promise');var client=jayson[_0x3f8a('0x1c')][_0x3f8a('0x1d')]({'port':0x232c});function respondWithRpcPromise(_0x5f4db4,_0x2343f7,_0x54e798,_0x2da339){return new BPromise(function(_0x4c9ba1,_0x790e5d){var _0x34a7f9=_0x2da339||client;return _0x34a7f9['request'](_0x5f4db4,_0x54e798)[_0x3f8a('0x1e')](function(_0x3c3d95){logger['info']('WhatsappAccount,\x20%s,\x20%s',_0x2343f7,'request\x20sent');logger[_0x3f8a('0x1f')](_0x3f8a('0x20'),_0x2343f7,'request\x20sent',JSON[_0x3f8a('0x21')](_0x3c3d95));if(_0x3c3d95[_0x3f8a('0x22')]){if(_0x3c3d95['error'][_0x3f8a('0x23')]===0x1f4){logger[_0x3f8a('0x22')](_0x3f8a('0x24'),_0x2343f7,_0x3c3d95[_0x3f8a('0x22')][_0x3f8a('0x25')]);return _0x790e5d(_0x3c3d95[_0x3f8a('0x22')][_0x3f8a('0x25')]);}logger[_0x3f8a('0x22')](_0x3f8a('0x24'),_0x2343f7,_0x3c3d95[_0x3f8a('0x22')][_0x3f8a('0x25')]);return _0x4c9ba1(_0x3c3d95[_0x3f8a('0x22')]['message']);}else{logger['info'](_0x3f8a('0x24'),_0x2343f7,_0x3f8a('0x26'));_0x4c9ba1(_0x3c3d95[_0x3f8a('0x27')][_0x3f8a('0x25')]);}})[_0x3f8a('0x28')](function(_0x3fb4cd){logger['error']('WhatsappAccount,\x20%s,\x20%s',_0x2343f7,_0x3fb4cd);_0x790e5d(_0x3fb4cd);});});}function respondWithStatusCode(_0x3b63ba,_0x45f253){_0x45f253=_0x45f253||0xcc;return function(_0x4bc801){if(_0x4bc801){return _0x3b63ba[_0x3f8a('0x29')](_0x45f253);}return _0x3b63ba['status'](_0x45f253)['end']();};}function respondWithResult(_0x1e19ec,_0x15bc63){_0x15bc63=_0x15bc63||0xc8;return function(_0x20ed79){if(_0x20ed79){return _0x1e19ec[_0x3f8a('0x2a')](_0x15bc63)[_0x3f8a('0x2b')](_0x20ed79);}};}function respondWithFilteredResult(_0x37e7f5,_0x1fbff8){return function(_0x16b4b9){if(_0x16b4b9){var _0x249f59=typeof _0x1fbff8['offset']===_0x3f8a('0x2c')&&typeof _0x1fbff8['limit']==='undefined';var _0x560e92=_0x16b4b9[_0x3f8a('0x2d')];var _0x4fa5d8=_0x249f59?0x0:_0x1fbff8[_0x3f8a('0x2e')];var _0x165a80=_0x249f59?_0x16b4b9[_0x3f8a('0x2d')]:_0x1fbff8[_0x3f8a('0x2e')]+_0x1fbff8['limit'];var _0x355bb5;if(_0x165a80>=_0x560e92){_0x165a80=_0x560e92;_0x355bb5=0xc8;}else{_0x355bb5=0xce;}_0x37e7f5[_0x3f8a('0x2a')](_0x355bb5);return _0x37e7f5[_0x3f8a('0x2f')](_0x3f8a('0x30'),_0x4fa5d8+'-'+_0x165a80+'/'+_0x560e92)[_0x3f8a('0x2b')](_0x16b4b9);}return null;};}function patchUpdates(_0x4b4f32){return function(_0x49fdad){try{jsonpatch[_0x3f8a('0x31')](_0x49fdad,_0x4b4f32,!![]);}catch(_0x56ff0a){return BPromise[_0x3f8a('0x32')](_0x56ff0a);}return _0x49fdad[_0x3f8a('0x33')]();};}function saveUpdates(_0x5064bc,_0x3ccb28){return function(_0x59f843){if(_0x59f843){return _0x59f843[_0x3f8a('0x34')](_0x5064bc)[_0x3f8a('0x1e')](function(_0x4a24dd){return _0x4a24dd;});}return null;};}function removeEntity(_0x511fda,_0x24215a){return function(_0x1edf16){if(_0x1edf16){return _0x1edf16['destroy']()[_0x3f8a('0x1e')](function(){var _0x135468=_0x1edf16[_0x3f8a('0x35')]({'plain':!![]});var _0x2532e6='WhatsappAccounts';return db[_0x3f8a('0x36')][_0x3f8a('0x37')]({'where':{'type':_0x2532e6,'resourceId':_0x135468['id']}})[_0x3f8a('0x1e')](function(){return _0x1edf16;});})[_0x3f8a('0x1e')](function(){_0x511fda[_0x3f8a('0x2a')](0xcc)[_0x3f8a('0x38')]();});}};}function handleEntityNotFound(_0x20daf1,_0x5bf801){return function(_0xcc66e4){if(!_0xcc66e4){_0x20daf1['sendStatus'](0x194);}return _0xcc66e4;};}function handleError(_0x124d22,_0x48a244){_0x48a244=_0x48a244||0x1f4;return function(_0x910baf){logger[_0x3f8a('0x22')](_0x910baf['stack']);if(_0x910baf[_0x3f8a('0x39')]){delete _0x910baf[_0x3f8a('0x39')];}_0x124d22['status'](_0x48a244)[_0x3f8a('0x3a')](_0x910baf);};}exports[_0x3f8a('0x3b')]=function(_0x559ec8,_0x320d6e){var _0x41d180={'include':[{'model':db[_0x3f8a('0x3c')],'as':_0x3f8a('0x3d')}]},_0x57550e={},_0xe6814a={'count':0x0,'rows':[]};var _0x6fce75=_[_0x3f8a('0x3e')](db['WhatsappAccount'][_0x3f8a('0x3f')],function(_0x4afd19){return{'name':_0x4afd19['fieldName'],'type':_0x4afd19[_0x3f8a('0x40')]['key']};});_0x57550e[_0x3f8a('0x41')]=_['map'](_0x6fce75,_0x3f8a('0x39'));_0x57550e['query']=_[_0x3f8a('0x42')](_0x559ec8[_0x3f8a('0x43')]);_0x57550e['filters']=_[_0x3f8a('0x44')](_0x57550e[_0x3f8a('0x41')],_0x57550e[_0x3f8a('0x43')]);_0x41d180[_0x3f8a('0x45')]=_[_0x3f8a('0x44')](_0x57550e[_0x3f8a('0x41')],qs['fields'](_0x559ec8[_0x3f8a('0x43')][_0x3f8a('0x46')]));_0x41d180[_0x3f8a('0x45')]=_0x41d180[_0x3f8a('0x45')][_0x3f8a('0x47')]?_0x41d180[_0x3f8a('0x45')]:_0x57550e[_0x3f8a('0x41')];if(!_0x559ec8[_0x3f8a('0x43')][_0x3f8a('0x48')](_0x3f8a('0x49'))){_0x41d180[_0x3f8a('0x4a')]=qs[_0x3f8a('0x4a')](_0x559ec8['query'][_0x3f8a('0x4a')]);_0x41d180['offset']=qs[_0x3f8a('0x2e')](_0x559ec8[_0x3f8a('0x43')][_0x3f8a('0x2e')]);}_0x41d180[_0x3f8a('0x4b')]=qs[_0x3f8a('0x4c')](_0x559ec8[_0x3f8a('0x43')][_0x3f8a('0x4c')]);_0x41d180[_0x3f8a('0x4d')]=qs['filters'](_[_0x3f8a('0x4e')](_0x559ec8['query'],_0x57550e[_0x3f8a('0x4f')]),_0x6fce75);if(_0x559ec8[_0x3f8a('0x43')][_0x3f8a('0x50')]){_0x41d180[_0x3f8a('0x4d')]=_[_0x3f8a('0x51')](_0x41d180[_0x3f8a('0x4d')],{'$or':_[_0x3f8a('0x3e')](_0x6fce75,function(_0x2c61b2){if(_0x2c61b2['type']!==_0x3f8a('0x52')){var _0x27e69a={};_0x27e69a[_0x2c61b2[_0x3f8a('0x39')]]={'$like':'%'+_0x559ec8[_0x3f8a('0x43')][_0x3f8a('0x50')]+'%'};return _0x27e69a;}})});}_0x41d180=_['merge']({},_0x41d180,_0x559ec8[_0x3f8a('0x53')]);var _0x3362dd={'where':_0x41d180[_0x3f8a('0x4d')]};return db['WhatsappAccount'][_0x3f8a('0x2d')](_0x3362dd)[_0x3f8a('0x1e')](function(_0x2659f8){_0xe6814a[_0x3f8a('0x2d')]=_0x2659f8;if(_0x559ec8[_0x3f8a('0x43')]['includeAll']){_0x41d180[_0x3f8a('0x54')]=[{'all':!![]}];}return db[_0x3f8a('0x55')][_0x3f8a('0x56')](_0x41d180);})[_0x3f8a('0x1e')](function(_0x216dab){_0xe6814a[_0x3f8a('0x57')]=_0x216dab;return _0xe6814a;})[_0x3f8a('0x1e')](respondWithFilteredResult(_0x320d6e,_0x41d180))[_0x3f8a('0x28')](handleError(_0x320d6e,null));};exports[_0x3f8a('0x58')]=function(_0x51ba92,_0x29f5f7){var _0x5be819={'raw':![],'where':{'id':_0x51ba92['params']['id']},'include':[{'model':db[_0x3f8a('0x3c')],'as':'mandatoryDispositionPause'}]},_0x5e8e74={};_0x5e8e74[_0x3f8a('0x41')]=_['keys'](db[_0x3f8a('0x55')][_0x3f8a('0x3f')]);_0x5e8e74[_0x3f8a('0x43')]=_[_0x3f8a('0x42')](_0x51ba92['query']);_0x5e8e74[_0x3f8a('0x4f')]=_[_0x3f8a('0x44')](_0x5e8e74[_0x3f8a('0x41')],_0x5e8e74[_0x3f8a('0x43')]);_0x5be819['attributes']=_[_0x3f8a('0x44')](_0x5e8e74['model'],qs[_0x3f8a('0x46')](_0x51ba92['query'][_0x3f8a('0x46')]));_0x5be819[_0x3f8a('0x45')]=_0x5be819[_0x3f8a('0x45')][_0x3f8a('0x47')]?_0x5be819['attributes']:_0x5e8e74['model'];if(_0x51ba92[_0x3f8a('0x43')][_0x3f8a('0x59')]){_0x5be819[_0x3f8a('0x54')]=[{'all':!![]}];}_0x5be819=_[_0x3f8a('0x51')]({},_0x5be819,_0x51ba92[_0x3f8a('0x53')]);return db[_0x3f8a('0x55')][_0x3f8a('0x5a')](_0x5be819)['then'](handleEntityNotFound(_0x29f5f7,null))[_0x3f8a('0x1e')](respondWithResult(_0x29f5f7,null))['catch'](handleError(_0x29f5f7,null));};exports[_0x3f8a('0x5b')]=function(_0x20d65e,_0x5831ac){return db[_0x3f8a('0x55')][_0x3f8a('0x5b')](_0x20d65e[_0x3f8a('0x5c')],{})['then'](function(_0x21c360){var _0x4a4eb8=_0x20d65e[_0x3f8a('0x5d')][_0x3f8a('0x35')]({'plain':!![]});if(!_0x4a4eb8)throw new Error(_0x3f8a('0x5e'));if(_0x4a4eb8['role']===_0x3f8a('0x5d')){var _0x529734=_0x21c360[_0x3f8a('0x35')]({'plain':!![]});var _0x1da6e1='WhatsappAccounts';return db[_0x3f8a('0x5f')][_0x3f8a('0x5a')]({'where':{'name':_0x1da6e1,'userProfileId':_0x4a4eb8['userProfileId']},'raw':!![]})[_0x3f8a('0x1e')](function(_0x4b41f1){if(_0x4b41f1&&_0x4b41f1['autoAssociation']===0x0){return db['UserProfileResource'][_0x3f8a('0x5b')]({'name':_0x529734['name'],'resourceId':_0x529734['id'],'type':_0x4b41f1['name'],'sectionId':_0x4b41f1['id']},{})['then'](function(){return _0x21c360;});}else{return _0x21c360;}})[_0x3f8a('0x28')](function(_0xe72c9e){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0xe72c9e);throw _0xe72c9e;});}return _0x21c360;})[_0x3f8a('0x1e')](respondWithResult(_0x5831ac,0xc9))[_0x3f8a('0x28')](handleError(_0x5831ac,null));};exports['update']=function(_0xa1cb52,_0x4c7d2b){if(_0xa1cb52['body']['id']){delete _0xa1cb52['body']['id'];}return db[_0x3f8a('0x55')][_0x3f8a('0x5a')]({'where':{'id':_0xa1cb52['params']['id']},'include':[{'model':db['Pause'],'as':_0x3f8a('0x3d')}]})['then'](handleEntityNotFound(_0x4c7d2b,null))[_0x3f8a('0x1e')](saveUpdates(_0xa1cb52[_0x3f8a('0x5c')],null))[_0x3f8a('0x1e')](respondWithResult(_0x4c7d2b,null))['catch'](handleError(_0x4c7d2b,null));};exports[_0x3f8a('0x37')]=function(_0x29d267,_0x2892e5){return db[_0x3f8a('0x55')][_0x3f8a('0x5a')]({'where':{'id':_0x29d267[_0x3f8a('0x60')]['id']}})['then'](handleEntityNotFound(_0x2892e5,null))[_0x3f8a('0x1e')](removeEntity(_0x2892e5,null))[_0x3f8a('0x28')](handleError(_0x2892e5,null));};exports[_0x3f8a('0x61')]=function(_0x537026,_0xc9d2cf){return db[_0x3f8a('0x55')][_0x3f8a('0x61')]()[_0x3f8a('0x1e')](respondWithResult(_0xc9d2cf,null))['catch'](handleError(_0xc9d2cf,null));};exports[_0x3f8a('0x62')]=function(_0x565dc3,_0x3d3fdf,_0x2d6382){if(_0x565dc3['body']['id']){delete _0x565dc3['body']['id'];}return db[_0x3f8a('0x55')][_0x3f8a('0x5a')]({'where':{'id':_0x565dc3[_0x3f8a('0x60')]['id']}})[_0x3f8a('0x1e')](handleEntityNotFound(_0x3d3fdf,null))['then'](function(_0x5b3550){if(_0x5b3550){_0x565dc3['body'][_0x3f8a('0x63')]=_0x5b3550['id'];return db['Disposition'][_0x3f8a('0x5b')](_0x565dc3[_0x3f8a('0x5c')]);}})[_0x3f8a('0x1e')](respondWithResult(_0x3d3fdf,null))['catch'](handleError(_0x3d3fdf,null));};exports[_0x3f8a('0x64')]=function(_0x27b586,_0x4a79ba,_0x2937da){var _0x1be735={'raw':![],'where':{}};var _0x5b716c={};var _0x11967c={'count':0x0,'rows':[]};return db['WhatsappAccount']['findOne']({'where':{'id':_0x27b586[_0x3f8a('0x60')]['id']}})[_0x3f8a('0x1e')](handleEntityNotFound(_0x4a79ba,null))['then'](function(_0x13dd15){if(_0x13dd15){_0x5b716c['model']=_[_0x3f8a('0x42')](db[_0x3f8a('0x65')][_0x3f8a('0x3f')]);_0x5b716c[_0x3f8a('0x43')]=_[_0x3f8a('0x42')](_0x27b586[_0x3f8a('0x43')]);_0x5b716c[_0x3f8a('0x4f')]=_['intersection'](_0x5b716c[_0x3f8a('0x41')],_0x5b716c[_0x3f8a('0x43')]);_0x1be735[_0x3f8a('0x45')]=_[_0x3f8a('0x44')](_0x5b716c[_0x3f8a('0x41')],qs['fields'](_0x27b586[_0x3f8a('0x43')][_0x3f8a('0x46')]));_0x1be735[_0x3f8a('0x45')]=_0x1be735['attributes'][_0x3f8a('0x47')]?_0x1be735[_0x3f8a('0x45')]:_0x5b716c[_0x3f8a('0x41')];if(!_0x27b586[_0x3f8a('0x43')][_0x3f8a('0x48')]('nolimit')){_0x1be735[_0x3f8a('0x4a')]=qs[_0x3f8a('0x4a')](_0x27b586[_0x3f8a('0x43')][_0x3f8a('0x4a')]);_0x1be735[_0x3f8a('0x2e')]=qs['offset'](_0x27b586['query'][_0x3f8a('0x2e')]);}_0x1be735[_0x3f8a('0x4b')]=qs['sort'](_0x27b586[_0x3f8a('0x43')][_0x3f8a('0x4c')]);_0x1be735['where']=qs[_0x3f8a('0x4f')](_[_0x3f8a('0x4e')](_0x27b586[_0x3f8a('0x43')],_0x5b716c[_0x3f8a('0x4f')]));_0x1be735[_0x3f8a('0x4d')][_0x3f8a('0x63')]=_0x13dd15['id'];if(_0x27b586[_0x3f8a('0x43')][_0x3f8a('0x50')]){_0x1be735[_0x3f8a('0x4d')]=_[_0x3f8a('0x51')](_0x1be735[_0x3f8a('0x4d')],{'$or':_[_0x3f8a('0x3e')](_0x1be735[_0x3f8a('0x45')],function(_0x3970d8){var _0x4a4a82={};_0x4a4a82[_0x3970d8]={'$like':'%'+_0x27b586[_0x3f8a('0x43')][_0x3f8a('0x50')]+'%'};return _0x4a4a82;})});}_0x1be735=_[_0x3f8a('0x51')]({},_0x1be735,_0x27b586[_0x3f8a('0x53')]);return db[_0x3f8a('0x65')]['count']({'where':_0x1be735[_0x3f8a('0x4d')]})[_0x3f8a('0x1e')](function(_0x21237e){_0x11967c[_0x3f8a('0x2d')]=_0x21237e;if(_0x27b586[_0x3f8a('0x43')][_0x3f8a('0x59')]){_0x1be735[_0x3f8a('0x54')]=[{'all':!![]}];}return db['Disposition'][_0x3f8a('0x56')](_0x1be735);})[_0x3f8a('0x1e')](function(_0x31c15b){_0x11967c['rows']=_0x31c15b;return _0x11967c;});}})[_0x3f8a('0x1e')](respondWithFilteredResult(_0x4a79ba,_0x1be735))['catch'](handleError(_0x4a79ba,null));};exports[_0x3f8a('0x66')]=function(_0x362f2c,_0x37b1ea,_0x431742){return db['WhatsappAccount']['find']({'where':{'id':_0x362f2c[_0x3f8a('0x60')]['id']}})[_0x3f8a('0x1e')](handleEntityNotFound(_0x37b1ea,null))[_0x3f8a('0x1e')](function(_0x55c6a8){if(_0x55c6a8){return _0x55c6a8[_0x3f8a('0x66')](_0x362f2c[_0x3f8a('0x43')][_0x3f8a('0x67')]);}})[_0x3f8a('0x1e')](respondWithStatusCode(_0x37b1ea,null))['catch'](handleError(_0x37b1ea,null));};exports[_0x3f8a('0x68')]=function(_0x444656,_0x5ab830,_0x88122c){if(_0x444656[_0x3f8a('0x5c')]['id']){delete _0x444656['body']['id'];}return db[_0x3f8a('0x55')]['find']({'where':{'id':_0x444656['params']['id']}})[_0x3f8a('0x1e')](handleEntityNotFound(_0x5ab830,null))[_0x3f8a('0x1e')](function(_0x5e8034){if(_0x5e8034){_0x444656['body'][_0x3f8a('0x63')]=_0x5e8034['id'];return db[_0x3f8a('0x69')][_0x3f8a('0x5b')](_0x444656['body']);}})['then'](respondWithResult(_0x5ab830,null))[_0x3f8a('0x28')](handleError(_0x5ab830,null));};exports[_0x3f8a('0x6a')]=function(_0x4a8e36,_0x32fa02,_0x5f184f){var _0x276cca={'raw':![],'where':{}};var _0x554176={};var _0x3f24c8={'count':0x0,'rows':[]};return db[_0x3f8a('0x55')]['findOne']({'where':{'id':_0x4a8e36[_0x3f8a('0x60')]['id']}})[_0x3f8a('0x1e')](handleEntityNotFound(_0x32fa02,null))[_0x3f8a('0x1e')](function(_0xb78fe5){if(_0xb78fe5){_0x554176[_0x3f8a('0x41')]=_[_0x3f8a('0x42')](db['CannedAnswer'][_0x3f8a('0x3f')]);_0x554176[_0x3f8a('0x43')]=_['keys'](_0x4a8e36[_0x3f8a('0x43')]);_0x554176[_0x3f8a('0x4f')]=_['intersection'](_0x554176['model'],_0x554176['query']);_0x276cca[_0x3f8a('0x45')]=_[_0x3f8a('0x44')](_0x554176[_0x3f8a('0x41')],qs['fields'](_0x4a8e36[_0x3f8a('0x43')][_0x3f8a('0x46')]));_0x276cca['attributes']=_0x276cca['attributes'][_0x3f8a('0x47')]?_0x276cca[_0x3f8a('0x45')]:_0x554176['model'];if(!_0x4a8e36[_0x3f8a('0x43')]['hasOwnProperty'](_0x3f8a('0x49'))){_0x276cca[_0x3f8a('0x4a')]=qs[_0x3f8a('0x4a')](_0x4a8e36[_0x3f8a('0x43')]['limit']);_0x276cca[_0x3f8a('0x2e')]=qs['offset'](_0x4a8e36[_0x3f8a('0x43')][_0x3f8a('0x2e')]);}_0x276cca[_0x3f8a('0x4b')]=qs[_0x3f8a('0x4c')](_0x4a8e36[_0x3f8a('0x43')]['sort']);_0x276cca[_0x3f8a('0x4d')]=qs['filters'](_[_0x3f8a('0x4e')](_0x4a8e36[_0x3f8a('0x43')],_0x554176[_0x3f8a('0x4f')]));_0x276cca[_0x3f8a('0x4d')]['WhatsappAccountId']=_0xb78fe5['id'];if(_0x4a8e36[_0x3f8a('0x43')][_0x3f8a('0x50')]){_0x276cca[_0x3f8a('0x4d')]=_[_0x3f8a('0x51')](_0x276cca[_0x3f8a('0x4d')],{'$or':_['map'](_0x276cca['attributes'],function(_0xf0cc7c){var _0x4a8a77={};_0x4a8a77[_0xf0cc7c]={'$like':'%'+_0x4a8e36[_0x3f8a('0x43')][_0x3f8a('0x50')]+'%'};return _0x4a8a77;})});}_0x276cca=_[_0x3f8a('0x51')]({},_0x276cca,_0x4a8e36[_0x3f8a('0x53')]);return db[_0x3f8a('0x69')][_0x3f8a('0x2d')]({'where':_0x276cca['where']})[_0x3f8a('0x1e')](function(_0x3c1fe0){_0x3f24c8[_0x3f8a('0x2d')]=_0x3c1fe0;if(_0x4a8e36[_0x3f8a('0x43')][_0x3f8a('0x59')]){_0x276cca[_0x3f8a('0x54')]=[{'all':!![]}];}return db[_0x3f8a('0x69')]['findAll'](_0x276cca);})[_0x3f8a('0x1e')](function(_0x3d53c5){_0x3f24c8[_0x3f8a('0x57')]=_0x3d53c5;return _0x3f24c8;});}})[_0x3f8a('0x1e')](respondWithFilteredResult(_0x32fa02,_0x276cca))[_0x3f8a('0x28')](handleError(_0x32fa02,null));};exports[_0x3f8a('0x6b')]=function(_0x26b3fa,_0x1acbde,_0x3ad890){return db['WhatsappAccount'][_0x3f8a('0x5a')]({'where':{'id':_0x26b3fa[_0x3f8a('0x60')]['id']}})[_0x3f8a('0x1e')](handleEntityNotFound(_0x1acbde,null))[_0x3f8a('0x1e')](function(_0x2792dc){if(_0x2792dc){return _0x2792dc['removeAnswers'](_0x26b3fa[_0x3f8a('0x43')]['ids']);}})[_0x3f8a('0x1e')](respondWithStatusCode(_0x1acbde,null))['catch'](handleError(_0x1acbde,null));};exports[_0x3f8a('0x6c')]=function(_0x214f32,_0x56aee6,_0x2a6415){return db['WhatsappAccount'][_0x3f8a('0x5a')]({'where':{'id':_0x214f32[_0x3f8a('0x60')]['id']}})[_0x3f8a('0x1e')](handleEntityNotFound(_0x56aee6,null))[_0x3f8a('0x1e')](function(_0x554859){if(_0x554859){return _0x554859[_0x3f8a('0x6c')](_0x214f32[_0x3f8a('0x5c')][_0x3f8a('0x67')],_[_0x3f8a('0x6d')](_0x214f32[_0x3f8a('0x5c')],[_0x3f8a('0x67'),'id'])||{})[_0x3f8a('0x6e')](function(_0x36b975){for(var _0x31fe00=0x0;_0x31fe00<_0x214f32['body'][_0x3f8a('0x67')][_0x3f8a('0x47')];_0x31fe00+=0x1){socket[_0x3f8a('0x6f')](_0x3f8a('0x70'),{'UserId':Number(_0x214f32[_0x3f8a('0x5c')][_0x3f8a('0x67')][_0x31fe00]),'WhatsappAccountId':Number(_0x214f32[_0x3f8a('0x60')]['id'])});}return _0x36b975;});}})['then'](respondWithResult(_0x56aee6,null))['catch'](handleError(_0x56aee6,null));};exports[_0x3f8a('0x71')]=function(_0x11640a,_0x163399,_0x5b5600){return db[_0x3f8a('0x55')][_0x3f8a('0x5a')]({'where':{'id':_0x11640a['params']['id']}})[_0x3f8a('0x1e')](handleEntityNotFound(_0x163399,null))[_0x3f8a('0x1e')](function(_0x548c8e){if(_0x548c8e){return _0x548c8e[_0x3f8a('0x71')](_0x11640a[_0x3f8a('0x43')][_0x3f8a('0x67')])[_0x3f8a('0x1e')](function(){if(_[_0x3f8a('0x72')](_0x11640a[_0x3f8a('0x43')][_0x3f8a('0x67')])){for(var _0x131b89=0x0;_0x131b89<_0x11640a[_0x3f8a('0x43')][_0x3f8a('0x67')][_0x3f8a('0x47')];_0x131b89+=0x1){socket[_0x3f8a('0x6f')]('userWhatsappAccount:remove',{'UserId':Number(_0x11640a[_0x3f8a('0x43')]['ids'][_0x131b89]),'WhatsappAccountId':Number(_0x11640a[_0x3f8a('0x60')]['id'])});}}else{socket[_0x3f8a('0x6f')](_0x3f8a('0x73'),{'UserId':Number(_0x11640a[_0x3f8a('0x43')][_0x3f8a('0x67')]),'WhatsappAccountId':Number(_0x11640a[_0x3f8a('0x60')]['id'])});}});}})[_0x3f8a('0x1e')](respondWithStatusCode(_0x163399,null))[_0x3f8a('0x28')](handleError(_0x163399,null));};exports['getAgents']=function(_0x445cec,_0xda3db1,_0x37af96){var _0x588564={};var _0x589017={};var _0x504c8a;var _0x2b31a6;return db[_0x3f8a('0x55')][_0x3f8a('0x74')]({'where':{'id':_0x445cec[_0x3f8a('0x60')]['id']}})[_0x3f8a('0x1e')](handleEntityNotFound(_0xda3db1,null))['then'](function(_0x1dcc96){if(_0x1dcc96){_0x504c8a=_0x1dcc96;_0x589017['model']=_[_0x3f8a('0x42')](db[_0x3f8a('0x75')]['rawAttributes']);_0x589017[_0x3f8a('0x43')]=_[_0x3f8a('0x42')](_0x445cec['query']);_0x589017[_0x3f8a('0x4f')]=_[_0x3f8a('0x44')](_0x589017[_0x3f8a('0x41')],_0x589017[_0x3f8a('0x43')]);_0x588564[_0x3f8a('0x45')]=_['intersection'](_0x589017[_0x3f8a('0x41')],qs[_0x3f8a('0x46')](_0x445cec['query'][_0x3f8a('0x46')]));_0x588564[_0x3f8a('0x45')]=_0x588564[_0x3f8a('0x45')][_0x3f8a('0x47')]?_0x588564[_0x3f8a('0x45')]:_0x589017['model'];_0x588564[_0x3f8a('0x4b')]=qs[_0x3f8a('0x4c')](_0x445cec[_0x3f8a('0x43')][_0x3f8a('0x4c')]);_0x588564[_0x3f8a('0x4d')]=qs[_0x3f8a('0x4f')](_[_0x3f8a('0x4e')](_0x445cec[_0x3f8a('0x43')],_0x589017[_0x3f8a('0x4f')]));if(_0x445cec[_0x3f8a('0x43')][_0x3f8a('0x50')]){_0x588564['where']=_['merge'](_0x588564['where'],{'$or':_[_0x3f8a('0x3e')](_0x588564['attributes'],function(_0x2c30cf){var _0x4f028c={};_0x4f028c[_0x2c30cf]={'$like':'%'+_0x445cec[_0x3f8a('0x43')][_0x3f8a('0x50')]+'%'};return _0x4f028c;})});}_0x588564=_[_0x3f8a('0x51')]({},_0x588564,_0x445cec['options']);return _0x504c8a[_0x3f8a('0x76')](_0x588564);}})[_0x3f8a('0x1e')](function(_0x3ce838){if(_0x3ce838){_0x2b31a6=_0x3ce838[_0x3f8a('0x47')];if(!_0x445cec[_0x3f8a('0x43')][_0x3f8a('0x48')](_0x3f8a('0x49'))){_0x588564['limit']=qs[_0x3f8a('0x4a')](_0x445cec[_0x3f8a('0x43')][_0x3f8a('0x4a')]);_0x588564[_0x3f8a('0x2e')]=qs[_0x3f8a('0x2e')](_0x445cec['query'][_0x3f8a('0x2e')]);}return _0x504c8a[_0x3f8a('0x76')](_0x588564);}})['then'](function(_0x5622ae){if(_0x5622ae){return _0x5622ae?{'count':_0x2b31a6,'rows':_0x5622ae}:null;}})[_0x3f8a('0x1e')](respondWithResult(_0xda3db1,null))[_0x3f8a('0x28')](handleError(_0xda3db1,null));};exports[_0x3f8a('0x77')]=function(_0x557d11,_0x3d944c,_0x46aa7f){return db[_0x3f8a('0x55')][_0x3f8a('0x74')]({'where':{'id':_0x557d11[_0x3f8a('0x60')]['id']}})['then'](handleEntityNotFound(_0x3d944c,null))[_0x3f8a('0x1e')](function(_0x1a2287){if(_0x1a2287){return db[_0x3f8a('0x78')][_0x3f8a('0x79')](function(_0x9a9d96){return db[_0x3f8a('0x7a')][_0x3f8a('0x37')]({'where':{'WhatsappAccountId':_0x557d11[_0x3f8a('0x60')]['id']},'transaction':_0x9a9d96})[_0x3f8a('0x1e')](function(_0x3e51fa){var _0x2b21d1=_[_0x3f8a('0x3e')](_0x557d11[_0x3f8a('0x5c')],function(_0x299ef5){_0x299ef5[_0x3f8a('0x63')]=_0x557d11[_0x3f8a('0x60')]['id'];return _0x299ef5;});return db[_0x3f8a('0x7a')][_0x3f8a('0x7b')](_0x2b21d1,{'transaction':_0x9a9d96});});})['then'](function(){return db[_0x3f8a('0x7a')][_0x3f8a('0x7c')]({'where':{'WhatsappAccountId':_0x557d11[_0x3f8a('0x60')]['id']},'order':_0x3f8a('0x7d')});});}})[_0x3f8a('0x1e')](respondWithResult(_0x3d944c,null))[_0x3f8a('0x28')](handleError(_0x3d944c,null));};exports[_0x3f8a('0x7e')]=function(_0x517ae3,_0x381cc2,_0x1b75a7){var _0x2fff83={};var _0x4a9d54={};var _0x34e8c4;var _0x41c79d;return db[_0x3f8a('0x55')][_0x3f8a('0x74')]({'where':{'id':_0x517ae3[_0x3f8a('0x60')]['id']}})[_0x3f8a('0x1e')](handleEntityNotFound(_0x381cc2,null))[_0x3f8a('0x1e')](function(_0x2e2c4e){if(_0x2e2c4e){_0x34e8c4=_0x2e2c4e;_0x4a9d54[_0x3f8a('0x41')]=_['keys'](db[_0x3f8a('0x7a')]['rawAttributes']);_0x4a9d54[_0x3f8a('0x43')]=_[_0x3f8a('0x42')](_0x517ae3[_0x3f8a('0x43')]);_0x4a9d54[_0x3f8a('0x4f')]=_[_0x3f8a('0x44')](_0x4a9d54[_0x3f8a('0x41')],_0x4a9d54[_0x3f8a('0x43')]);_0x2fff83['attributes']=_[_0x3f8a('0x44')](_0x4a9d54[_0x3f8a('0x41')],qs[_0x3f8a('0x46')](_0x517ae3['query'][_0x3f8a('0x46')]));_0x2fff83[_0x3f8a('0x45')]=_0x2fff83[_0x3f8a('0x45')][_0x3f8a('0x47')]?_0x2fff83[_0x3f8a('0x45')]:_0x4a9d54[_0x3f8a('0x41')];_0x2fff83[_0x3f8a('0x4b')]=qs[_0x3f8a('0x4c')](_0x517ae3[_0x3f8a('0x43')][_0x3f8a('0x4c')]);_0x2fff83[_0x3f8a('0x4d')]=qs['filters'](_[_0x3f8a('0x4e')](_0x517ae3['query'],_0x4a9d54[_0x3f8a('0x4f')]));if(_0x517ae3['query'][_0x3f8a('0x50')]){_0x2fff83['where']=_[_0x3f8a('0x51')](_0x2fff83['where'],{'$or':_['map'](_0x2fff83[_0x3f8a('0x45')],function(_0x5b792d){var _0x1aa00c={};_0x1aa00c[_0x5b792d]={'$like':'%'+_0x517ae3[_0x3f8a('0x43')][_0x3f8a('0x50')]+'%'};return _0x1aa00c;})});}_0x2fff83=_[_0x3f8a('0x51')]({},_0x2fff83,_0x517ae3['options']);return _0x34e8c4[_0x3f8a('0x7e')](_0x2fff83);}})[_0x3f8a('0x1e')](function(_0x4720bf){if(_0x4720bf){_0x41c79d=_0x4720bf[_0x3f8a('0x47')];if(!_0x517ae3[_0x3f8a('0x43')][_0x3f8a('0x48')](_0x3f8a('0x49'))){_0x2fff83[_0x3f8a('0x4a')]=qs[_0x3f8a('0x4a')](_0x517ae3[_0x3f8a('0x43')][_0x3f8a('0x4a')]);_0x2fff83['offset']=qs[_0x3f8a('0x2e')](_0x517ae3['query']['offset']);}return _0x34e8c4[_0x3f8a('0x7e')](_0x2fff83);}})[_0x3f8a('0x1e')](function(_0x308228){if(_0x308228){return _0x308228?{'count':_0x41c79d,'rows':_0x308228}:null;}})[_0x3f8a('0x1e')](respondWithResult(_0x381cc2,null))[_0x3f8a('0x28')](handleError(_0x381cc2,null));};exports[_0x3f8a('0x7f')]=function(_0x1ca71c,_0x18c96c,_0x7a81ab){var _0x45d85b={'channel':_0x3f8a('0x80')};var _0x39c486=[];var _0x5caffb=[];var _0x4ec611={};return db[_0x3f8a('0x55')][_0x3f8a('0x5a')]({'where':{'id':_0x1ca71c[_0x3f8a('0x60')]['id']},'include':[{'model':db[_0x3f8a('0x7a')],'as':_0x3f8a('0x81')}]})[_0x3f8a('0x1e')](handleEntityNotFound(_0x18c96c,null))[_0x3f8a('0x1e')](function(_0x1149e8){_0x45d85b[_0x3f8a('0x82')]=_0x1149e8;if(_0x45d85b['account']&&_0x45d85b['account'][_0x3f8a('0x40')]==='sinch'&&_0x1ca71c['body'][_0x3f8a('0x83')]&&_0x1ca71c[_0x3f8a('0x5c')][_0x3f8a('0x83')][0x0][_0x3f8a('0x84')]===_0x3f8a('0x85')){if(_0x1ca71c['body'][_0x3f8a('0x83')][0x0]['state']!==_0x3f8a('0x85'))return;return db[_0x3f8a('0x86')]['update']({'read':!![],'readAt':_0x1ca71c['body'][_0x3f8a('0x83')][0x0][_0x3f8a('0x87')]},{'where':{'messageId':_0x1ca71c[_0x3f8a('0x5c')]['statuses'][0x0][_0x3f8a('0x88')]},'individualHooks':!![]})[_0x3f8a('0x1e')](function(_0x2f39bd){return _0x18c96c[_0x3f8a('0x2a')](0xc8)[_0x3f8a('0x2b')](_0x2f39bd);});}_0x45d85b[_0x3f8a('0x89')]=_[_0x3f8a('0x8a')](_0x1149e8['Applications'],[_0x3f8a('0x7d')],[_0x3f8a('0x8b')]);if(_0x45d85b[_0x3f8a('0x82')][_0x3f8a('0x81')]){delete _0x45d85b[_0x3f8a('0x82')][_0x3f8a('0x81')];}return db['CmContact'][_0x3f8a('0x61')]()[_0x3f8a('0x1e')](function(_0x112f7f){if(!_0x112f7f){throw new db[(_0x3f8a('0x8c'))]['ValidationError'](_0x3f8a('0x8d'));}_0x39c486=_[_0x3f8a('0x8e')](_['keys'](_0x112f7f),['createdAt','updatedAt']);_0x5caffb=_['difference'](_[_0x3f8a('0x42')](_0x112f7f),[_0x3f8a('0x8f'),_0x3f8a('0x90'),'CompanyId','ListId']);_0x45d85b['body']={'mapKey':'mobile'};if(_0x45d85b[_0x3f8a('0x82')]&&_0x45d85b[_0x3f8a('0x82')]['type']===_0x3f8a('0x91')){_0x45d85b[_0x3f8a('0x5c')]['from']=_0x1ca71c[_0x3f8a('0x5c')][_0x3f8a('0x92')]['replace'](_0x3f8a('0x93'),'');_0x45d85b['body'][_0x3f8a('0x5c')]=_0x1ca71c[_0x3f8a('0x5c')][_0x3f8a('0x94')];_0x45d85b[_0x3f8a('0x5c')]['messageId']=_0x1ca71c[_0x3f8a('0x5c')][_0x3f8a('0x95')];}if(_0x45d85b[_0x3f8a('0x82')]&&_0x45d85b[_0x3f8a('0x82')][_0x3f8a('0x40')]===_0x3f8a('0x96')){_0x45d85b['body'][_0x3f8a('0x97')]=_0x1ca71c['body'][_0x3f8a('0x98')][0x0][_0x3f8a('0x97')];_0x45d85b[_0x3f8a('0x5c')][_0x3f8a('0x5c')]=_0x1ca71c[_0x3f8a('0x5c')][_0x3f8a('0x98')][0x0][_0x3f8a('0x25')][_0x3f8a('0x5c')];_0x45d85b[_0x3f8a('0x5c')][_0x3f8a('0x99')]=_0x1ca71c[_0x3f8a('0x5c')][_0x3f8a('0x98')][0x0][_0x3f8a('0x88')];}if(_0x45d85b[_0x3f8a('0x5c')]['id']){delete _0x45d85b['body']['id'];}if(_[_0x3f8a('0x9a')](_0x45d85b['body'][_0x3f8a('0x97')])){throw new db[(_0x3f8a('0x8c'))][(_0x3f8a('0x9b'))]('from\x20is\x20mandatory');}if(_[_0x3f8a('0x9a')](_0x45d85b[_0x3f8a('0x5c')][_0x3f8a('0x5c')])||_0x45d85b[_0x3f8a('0x5c')]['body']===''){throw new db[(_0x3f8a('0x8c'))][(_0x3f8a('0x9b'))](_0x3f8a('0x9c'));}if(_[_0x3f8a('0x9a')](_0x45d85b['body'][_0x3f8a('0x9d')])){throw new db[(_0x3f8a('0x8c'))]['ValidationError'](_0x3f8a('0x9e')+_0x5caffb);}if(!_[_0x3f8a('0x9f')](_0x5caffb,_0x45d85b[_0x3f8a('0x5c')][_0x3f8a('0x9d')])){throw new db[(_0x3f8a('0x8c'))][(_0x3f8a('0x9b'))](_0x3f8a('0xa0')+_0x5caffb);}_0x4ec611[_0x45d85b[_0x3f8a('0x5c')][_0x3f8a('0x9d')]]=_0x45d85b[_0x3f8a('0x5c')][_0x3f8a('0x97')];return db[_0x3f8a('0xa1')][_0x3f8a('0x5a')]({'where':{'id':_0x45d85b[_0x3f8a('0x82')][_0x3f8a('0xa2')]},'include':[{'model':db[_0x3f8a('0xa3')],'as':_0x3f8a('0xa4'),'where':_0x4ec611,'limit':0x1,'order':[['updatedAt','DESC']]}]});})['then'](handleEntityNotFound(_0x18c96c,null))[_0x3f8a('0x1e')](function(_0x3ad830){if(_0x3ad830){_0x45d85b[_0x3f8a('0xa5')]=_['omit'](_0x3ad830,[_0x3f8a('0xa4')]);if(_0x3ad830['Contacts'][_0x3f8a('0x47')]){return _0x3ad830[_0x3f8a('0xa4')][0x0];}var _0x42e27d=_[_0x3f8a('0x17')](_0x45d85b[_0x3f8a('0x5c')],{'firstName':_0x45d85b[_0x3f8a('0x5c')][_0x3f8a('0x97')],'ListId':_0x3ad830['id']});_0x42e27d[_0x45d85b[_0x3f8a('0x5c')][_0x3f8a('0x9d')]]=_0x45d85b[_0x3f8a('0x5c')][_0x3f8a('0x97')];return db[_0x3f8a('0xa3')][_0x3f8a('0x5b')](_0x42e27d,{'fields':_0x39c486,'raw':!![]});}})['then'](handleEntityNotFound(_0x18c96c,null))[_0x3f8a('0x1e')](function(_0x3a6580){if(_0x3a6580){_0x45d85b[_0x3f8a('0xa6')]=_0x3a6580;var _0x2e998e={'ContactId':_0x3a6580['id'],'phone':_0x45d85b[_0x3f8a('0x5c')][_0x3f8a('0x97')],'WhatsappAccountId':_0x1ca71c[_0x3f8a('0x60')]['id']};var _0x2ff7ee={'ContactId':_0x3a6580['id'],'WhatsappAccountId':_0x1ca71c['params']['id'],'closed':![]};return db[_0x3f8a('0xa7')][_0x3f8a('0x5a')]({'where':_0x2ff7ee})['then'](function(_0xe521e5){if(_0xe521e5){return[_0xe521e5,![]];}return db['WhatsappInteraction'][_0x3f8a('0x5b')](_0x2e998e)[_0x3f8a('0x1e')](function(_0xeac177){return[_0xeac177,!![]];});});}})[_0x3f8a('0x6e')](function(_0x1476a4,_0x2db568){_0x45d85b[_0x3f8a('0xa8')]=_0x1476a4['get']({'plain':!![]});_0x45d85b[_0x3f8a('0xa8')][_0x3f8a('0xa9')]=![];if(_0x2db568){if(_0x45d85b[_0x3f8a('0x82')]['autoclose']){_0x45d85b[_0x3f8a('0x89')]['push']({'id':0x0,'priority':_0x45d85b[_0x3f8a('0x89')]['length']+0x1,'app':_0x3f8a('0xaa'),'appdata':_0x3f8a('0xab'),'interval':_0x3f8a('0xac')});}_0x45d85b['interaction'][_0x3f8a('0xa9')]=!![];}return db['WhatsappMessage']['create']({'phone':_0x45d85b[_0x3f8a('0x5c')]['from'],'messageId':_0x45d85b[_0x3f8a('0x5c')][_0x3f8a('0x99')],'body':_0x45d85b[_0x3f8a('0x5c')][_0x3f8a('0x5c')],'WhatsappAccountId':_0x1ca71c[_0x3f8a('0x60')]['id'],'WhatsappInteractionId':_0x1476a4['id'],'direction':'in','ContactId':_0x1476a4[_0x3f8a('0xad')],'AttachmentId':_0x45d85b[_0x3f8a('0x5c')][_0x3f8a('0xae')]});})['then'](function(_0x5a33fc){_0x45d85b[_0x3f8a('0x25')]=_0x5a33fc;if(_0x45d85b['interaction'][_0x3f8a('0xaf')]){return db[_0x3f8a('0x75')][_0x3f8a('0x5a')]({'attributes':['id',_0x3f8a('0x39')],'where':{'id':_0x45d85b[_0x3f8a('0xa8')][_0x3f8a('0xaf')]}})[_0x3f8a('0x1e')](function(_0x4b5404){if(_0x4b5404){_0x45d85b[_0x3f8a('0x89')]['unshift']({'id':0x0,'priority':0x0,'app':_0x3f8a('0xb0'),'appdata':_0x4b5404['name']+','+(_0x45d85b[_0x3f8a('0x82')][_0x3f8a('0xb1')]||0xa),'interval':_0x3f8a('0xac')});}return respondWithRpcPromise(_0x3f8a('0xb2'),_0x3f8a('0xb3'),_0x45d85b);});}return respondWithRpcPromise(_0x3f8a('0xb2'),_0x3f8a('0xb3'),_0x45d85b);})['then'](function(_0x5b0f86){if(_0x5b0f86){var _0x573847=0xc8;var _0x69b57a=_0x3f8a('0xb4');logger['info'](_0x3f8a('0x20'),_0x69b57a,_0x573847,_0x3f8a('0xb5'));logger['debug'](_0x3f8a('0xb6'),_0x69b57a,_0x573847,_0x3f8a('0xb5'),JSON[_0x3f8a('0x21')](_0x5b0f86));if(_0x45d85b['account']['type']===_0x3f8a('0x91')){return _0x18c96c['status'](_0x573847)[_0x3f8a('0x2f')](_0x3f8a('0xb7'),_0x3f8a('0xb8'))['send'](_0x3f8a('0xb9'));}else{return _0x18c96c['status'](_0x573847)[_0x3f8a('0x2b')](_0x5b0f86);}}});})[_0x3f8a('0x28')](handleError(_0x18c96c,null));};exports[_0x3f8a('0x3a')]=function(_0x47cdce,_0x22d715,_0x5a2ea9){var _0x335ec3,_0x5cef62,_0x52dc09;if(_['isNil'](_0x47cdce[_0x3f8a('0x5c')][_0x3f8a('0x5c')])||_0x47cdce[_0x3f8a('0x5c')][_0x3f8a('0x5c')]===''){throw new db[(_0x3f8a('0x8c'))][(_0x3f8a('0x9b'))]('body\x20is\x20mandatory\x20and\x20not\x20empty');}if(_['isNil'](_0x47cdce[_0x3f8a('0x5c')]['to'])){throw new db[(_0x3f8a('0x8c'))][(_0x3f8a('0x9b'))]('to\x20is\x20mandatory');}_0x335ec3=_0x47cdce[_0x3f8a('0x5c')]['to'];return db['WhatsappAccount'][_0x3f8a('0x5a')]({'where':{'id':_0x47cdce[_0x3f8a('0x60')]['id']},'include':[{'model':db[_0x3f8a('0xa1')],'as':'List','include':[{'model':db[_0x3f8a('0xa3')],'as':_0x3f8a('0xa4'),'where':{'mobile':_0x335ec3},'limit':0x1,'order':[[_0x3f8a('0x90'),_0x3f8a('0xba')]]}]}]})[_0x3f8a('0x1e')](handleEntityNotFound(_0x22d715,null))[_0x3f8a('0x1e')](function(_0x3e7b72){if(_0x3e7b72&&_0x3e7b72[_0x3f8a('0xbb')]){_0x5cef62=_0x3e7b72['get']({'plain':!![]});if(_0x5cef62[_0x3f8a('0xbb')]&&_0x5cef62[_0x3f8a('0xbb')][_0x3f8a('0xa4')]['length']){return _0x5cef62[_0x3f8a('0xbb')]['Contacts'][0x0];}return db[_0x3f8a('0xa3')][_0x3f8a('0x5b')](_[_0x3f8a('0x17')](_0x47cdce[_0x3f8a('0x5c')],{'firstName':_0x335ec3,'mobile':_0x335ec3,'phone':_0x335ec3,'ListId':_0x5cef62[_0x3f8a('0xa2')]}));}})[_0x3f8a('0x1e')](handleEntityNotFound(_0x22d715,null))['then'](function(_0x41c8d4){if(_0x41c8d4){_0x52dc09=_0x41c8d4;return db[_0x3f8a('0xa7')][_0x3f8a('0x5a')]({'where':{'ContactId':_0x52dc09['id'],'closed':![],'WhatsappAccountId':_0x5cef62['id']}})[_0x3f8a('0x1e')](function(_0x502801){if(_0x502801){return[_0x502801,![]];}return db[_0x3f8a('0xa7')]['create']({'UserId':_0x47cdce[_0x3f8a('0x5d')]['id'],'ContactId':_0x52dc09['id'],'WhatsappAccountId':_0x5cef62['id'],'phone':_0x335ec3,'firstMsgDirection':'out','Messages':[_[_0x3f8a('0x51')](_0x47cdce[_0x3f8a('0x5c')],{'read':![],'body':_0x47cdce[_0x3f8a('0x5c')][_0x3f8a('0x5c')],'phone':_0x335ec3,'WhatsappAccountId':_0x5cef62['id'],'UserId':_0x47cdce[_0x3f8a('0x5d')]['id'],'ContactId':_0x52dc09['id']})]},{'include':[{'model':db[_0x3f8a('0x86')],'as':_0x3f8a('0xbc')}]})[_0x3f8a('0x1e')](function(_0x3681bc){return[_0x3681bc,!![]];});});}})['spread'](function(_0x4877dc,_0x5b34fe){if(_0x5b34fe){return _0x4877dc;}return db['WhatsappMessage'][_0x3f8a('0x5b')](_[_0x3f8a('0x51')](_0x47cdce[_0x3f8a('0x5c')],{'read':![],'body':_0x47cdce[_0x3f8a('0x5c')][_0x3f8a('0x5c')],'phone':_0x335ec3,'WhatsappAccountId':_0x5cef62['id'],'WhatsappInteractionId':_0x4877dc['id'],'UserId':_0x47cdce['user']['id'],'ContactId':_0x52dc09['id']}))['then'](function(_0xa97a2f){_0x4877dc[_0x3f8a('0xbd')][_0x3f8a('0xbc')]=[];_0x4877dc[_0x3f8a('0xbd')][_0x3f8a('0xbc')]['push'](_0xa97a2f[_0x3f8a('0xbd')]);return _0x4877dc;});})[_0x3f8a('0x1e')](respondWithResult(_0x22d715,null))[_0x3f8a('0x28')](handleError(_0x22d715,null));};
\ No newline at end of file
+var _0x0939=['interaction','autoclose','push','close','*,*,*,*','created','ContactId','AttachmentId','unshift','waitForTheAssignedAgent','Start','startRouting','receiveMessage','entity\x20found','WhatsappAccount,\x20%s,\x20%s,\x20%s,\x20%s','Content-Type','text/xml','to\x20is\x20mandatory','List','DESC','out','WhatsappMessage','dataValues','Messages','eml-format','rimraf','zip-dir','request-promise','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','socket.io-emitter','./whatsappAccount.socket','register','jayson/promise','http','request','then','info','request\x20sent','debug','WhatsappAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','WhatsappAccount,\x20%s,\x20%s','result','status','end','json','offset','limit','count','set','Content-Range','apply','reject','save','update','get','WhatsappAccounts','UserProfileResource','destroy','sendStatus','stack','name','send','index','Pause','mandatoryDispositionPause','map','WhatsappAccount','rawAttributes','fieldName','key','query','keys','intersection','model','fields','length','attributes','hasOwnProperty','nolimit','order','sort','filters','pick','filter','where','merge','type','options','includeAll','include','rows','show','params','find','catch','create','user','role','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','describe','addDisposition','WhatsappAccountId','Disposition','getDispositions','findOne','findAll','removeDispositions','ids','addAnswer','CannedAnswer','getAnswers','removeAnswers','addAgents','spread','emit','userWhatsappAccount:save','removeAgents','isArray','userWhatsappAccount:remove','getAgents','User','addApplications','sequelize','transaction','WhatsappApplication','bulkCreate','findAndCountAll','priority','getApplications','notify','account','applications','orderBy','Applications','asc','CmContact','Sequelize','ValidationError','no\x20available\x20attributes','difference','createdAt','updatedAt','CompanyId','ListId','mobile','from','From','replace','MessageSid','from\x20is\x20mandatory','isNil','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKey','CmList','Contacts','contact','WhatsappInteraction'];(function(_0x5a364d,_0x3f85ba){var _0x2386e7=function(_0x5732f2){while(--_0x5732f2){_0x5a364d['push'](_0x5a364d['shift']());}};_0x2386e7(++_0x3f85ba);}(_0x0939,0xd4));var _0x9093=function(_0x38cc08,_0x33eadd){_0x38cc08=_0x38cc08-0x0;var _0x4bff3f=_0x0939[_0x38cc08];return _0x4bff3f;};'use strict';var emlformat=require(_0x9093('0x0'));var rimraf=require(_0x9093('0x1'));var zipdir=require(_0x9093('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x9093('0x3'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x9093('0x4'));var util=require(_0x9093('0x5'));var path=require(_0x9093('0x6'));var sox=require(_0x9093('0x7'));var csv=require(_0x9093('0x8'));var ejs=require(_0x9093('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x9093('0xa'));var squel=require(_0x9093('0xb'));var crypto=require(_0x9093('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x9093('0xd'));var toCsv=require(_0x9093('0x8'));var querystring=require('querystring');var Papa=require(_0x9093('0xe'));var Redis=require(_0x9093('0xf'));var authService=require(_0x9093('0x10'));var qs=require(_0x9093('0x11'));var as=require(_0x9093('0x12'));var hardwareService=require(_0x9093('0x13'));var logger=require(_0x9093('0x14'))('api');var utils=require(_0x9093('0x15'));var config=require(_0x9093('0x16'));var licenseUtil=require(_0x9093('0x17'));var db=require(_0x9093('0x18'))['db'];config[_0x9093('0x19')]=_[_0x9093('0x1a')](config[_0x9093('0x19')],{'host':'localhost','port':0x18eb});var socket=require(_0x9093('0x1b'))(new Redis(config['redis']));require(_0x9093('0x1c'))[_0x9093('0x1d')](socket);var jayson=require(_0x9093('0x1e'));var client=jayson['client'][_0x9093('0x1f')]({'port':0x232c});function respondWithRpcPromise(_0x415c91,_0x2e9ec3,_0x19d74b,_0x4cf7be){return new BPromise(function(_0x12c7f3,_0x4f80a4){var _0x5b45f2=_0x4cf7be||client;return _0x5b45f2[_0x9093('0x20')](_0x415c91,_0x19d74b)[_0x9093('0x21')](function(_0x22538f){logger[_0x9093('0x22')]('WhatsappAccount,\x20%s,\x20%s',_0x2e9ec3,_0x9093('0x23'));logger[_0x9093('0x24')](_0x9093('0x25'),_0x2e9ec3,_0x9093('0x23'),JSON[_0x9093('0x26')](_0x22538f));if(_0x22538f[_0x9093('0x27')]){if(_0x22538f[_0x9093('0x27')][_0x9093('0x28')]===0x1f4){logger[_0x9093('0x27')]('WhatsappAccount,\x20%s,\x20%s',_0x2e9ec3,_0x22538f[_0x9093('0x27')][_0x9093('0x29')]);return _0x4f80a4(_0x22538f[_0x9093('0x27')]['message']);}logger[_0x9093('0x27')](_0x9093('0x2a'),_0x2e9ec3,_0x22538f[_0x9093('0x27')][_0x9093('0x29')]);return _0x12c7f3(_0x22538f[_0x9093('0x27')][_0x9093('0x29')]);}else{logger[_0x9093('0x22')]('WhatsappAccount,\x20%s,\x20%s',_0x2e9ec3,_0x9093('0x23'));_0x12c7f3(_0x22538f[_0x9093('0x2b')][_0x9093('0x29')]);}})['catch'](function(_0x59e698){logger['error']('WhatsappAccount,\x20%s,\x20%s',_0x2e9ec3,_0x59e698);_0x4f80a4(_0x59e698);});});}function respondWithStatusCode(_0x580ff6,_0x4023b6){_0x4023b6=_0x4023b6||0xcc;return function(_0x54d509){if(_0x54d509){return _0x580ff6['sendStatus'](_0x4023b6);}return _0x580ff6[_0x9093('0x2c')](_0x4023b6)[_0x9093('0x2d')]();};}function respondWithResult(_0x185cd9,_0x38db68){_0x38db68=_0x38db68||0xc8;return function(_0x178d91){if(_0x178d91){return _0x185cd9[_0x9093('0x2c')](_0x38db68)[_0x9093('0x2e')](_0x178d91);}};}function respondWithFilteredResult(_0x1b4910,_0x39e643){return function(_0x46b34a){if(_0x46b34a){var _0x5e0ae4=typeof _0x39e643[_0x9093('0x2f')]==='undefined'&&typeof _0x39e643[_0x9093('0x30')]==='undefined';var _0x5a4d11=_0x46b34a[_0x9093('0x31')];var _0x2b4ea7=_0x5e0ae4?0x0:_0x39e643[_0x9093('0x2f')];var _0x24454b=_0x5e0ae4?_0x46b34a[_0x9093('0x31')]:_0x39e643[_0x9093('0x2f')]+_0x39e643[_0x9093('0x30')];var _0x37f14e;if(_0x24454b>=_0x5a4d11){_0x24454b=_0x5a4d11;_0x37f14e=0xc8;}else{_0x37f14e=0xce;}_0x1b4910[_0x9093('0x2c')](_0x37f14e);return _0x1b4910[_0x9093('0x32')](_0x9093('0x33'),_0x2b4ea7+'-'+_0x24454b+'/'+_0x5a4d11)[_0x9093('0x2e')](_0x46b34a);}return null;};}function patchUpdates(_0x1260ce){return function(_0xed1b0d){try{jsonpatch[_0x9093('0x34')](_0xed1b0d,_0x1260ce,!![]);}catch(_0x2a688e){return BPromise[_0x9093('0x35')](_0x2a688e);}return _0xed1b0d[_0x9093('0x36')]();};}function saveUpdates(_0x283222,_0x30a8c2){return function(_0x3507b6){if(_0x3507b6){return _0x3507b6[_0x9093('0x37')](_0x283222)['then'](function(_0x6775c6){return _0x6775c6;});}return null;};}function removeEntity(_0x18dea5,_0x4735ae){return function(_0x534374){if(_0x534374){return _0x534374['destroy']()[_0x9093('0x21')](function(){var _0x46f7ca=_0x534374[_0x9093('0x38')]({'plain':!![]});var _0x53cc3b=_0x9093('0x39');return db[_0x9093('0x3a')][_0x9093('0x3b')]({'where':{'type':_0x53cc3b,'resourceId':_0x46f7ca['id']}})[_0x9093('0x21')](function(){return _0x534374;});})[_0x9093('0x21')](function(){_0x18dea5[_0x9093('0x2c')](0xcc)[_0x9093('0x2d')]();});}};}function handleEntityNotFound(_0x56a94f,_0x359830){return function(_0x19620b){if(!_0x19620b){_0x56a94f[_0x9093('0x3c')](0x194);}return _0x19620b;};}function handleError(_0xbc2ddf,_0x1314ca){_0x1314ca=_0x1314ca||0x1f4;return function(_0x63d231){logger[_0x9093('0x27')](_0x63d231[_0x9093('0x3d')]);if(_0x63d231[_0x9093('0x3e')]){delete _0x63d231['name'];}_0xbc2ddf[_0x9093('0x2c')](_0x1314ca)[_0x9093('0x3f')](_0x63d231);};}exports[_0x9093('0x40')]=function(_0x42360c,_0x62369e){var _0x2630d4={'include':[{'model':db[_0x9093('0x41')],'as':_0x9093('0x42')}]},_0x46d11d={},_0x229e9f={'count':0x0,'rows':[]};var _0x591329=_[_0x9093('0x43')](db[_0x9093('0x44')][_0x9093('0x45')],function(_0x170db4){return{'name':_0x170db4[_0x9093('0x46')],'type':_0x170db4['type'][_0x9093('0x47')]};});_0x46d11d['model']=_[_0x9093('0x43')](_0x591329,_0x9093('0x3e'));_0x46d11d[_0x9093('0x48')]=_[_0x9093('0x49')](_0x42360c[_0x9093('0x48')]);_0x46d11d['filters']=_[_0x9093('0x4a')](_0x46d11d[_0x9093('0x4b')],_0x46d11d[_0x9093('0x48')]);_0x2630d4['attributes']=_['intersection'](_0x46d11d[_0x9093('0x4b')],qs[_0x9093('0x4c')](_0x42360c['query']['fields']));_0x2630d4['attributes']=_0x2630d4['attributes'][_0x9093('0x4d')]?_0x2630d4[_0x9093('0x4e')]:_0x46d11d['model'];if(!_0x42360c[_0x9093('0x48')][_0x9093('0x4f')](_0x9093('0x50'))){_0x2630d4['limit']=qs[_0x9093('0x30')](_0x42360c[_0x9093('0x48')][_0x9093('0x30')]);_0x2630d4[_0x9093('0x2f')]=qs[_0x9093('0x2f')](_0x42360c['query'][_0x9093('0x2f')]);}_0x2630d4[_0x9093('0x51')]=qs[_0x9093('0x52')](_0x42360c[_0x9093('0x48')][_0x9093('0x52')]);_0x2630d4['where']=qs[_0x9093('0x53')](_[_0x9093('0x54')](_0x42360c[_0x9093('0x48')],_0x46d11d[_0x9093('0x53')]),_0x591329);if(_0x42360c[_0x9093('0x48')][_0x9093('0x55')]){_0x2630d4[_0x9093('0x56')]=_[_0x9093('0x57')](_0x2630d4[_0x9093('0x56')],{'$or':_[_0x9093('0x43')](_0x591329,function(_0x1a1ef7){if(_0x1a1ef7[_0x9093('0x58')]!=='VIRTUAL'){var _0x16d6e9={};_0x16d6e9[_0x1a1ef7['name']]={'$like':'%'+_0x42360c[_0x9093('0x48')]['filter']+'%'};return _0x16d6e9;}})});}_0x2630d4=_[_0x9093('0x57')]({},_0x2630d4,_0x42360c[_0x9093('0x59')]);var _0x2bb3bf={'where':_0x2630d4[_0x9093('0x56')]};return db[_0x9093('0x44')][_0x9093('0x31')](_0x2bb3bf)['then'](function(_0x2924b7){_0x229e9f[_0x9093('0x31')]=_0x2924b7;if(_0x42360c[_0x9093('0x48')][_0x9093('0x5a')]){_0x2630d4[_0x9093('0x5b')]=[{'all':!![]}];}return db[_0x9093('0x44')]['findAll'](_0x2630d4);})[_0x9093('0x21')](function(_0x45fb7b){_0x229e9f[_0x9093('0x5c')]=_0x45fb7b;return _0x229e9f;})[_0x9093('0x21')](respondWithFilteredResult(_0x62369e,_0x2630d4))['catch'](handleError(_0x62369e,null));};exports[_0x9093('0x5d')]=function(_0xdfe1d7,_0x297b3f){var _0x119a0a={'raw':![],'where':{'id':_0xdfe1d7[_0x9093('0x5e')]['id']},'include':[{'model':db[_0x9093('0x41')],'as':_0x9093('0x42')}]},_0x159c9d={};_0x159c9d[_0x9093('0x4b')]=_['keys'](db['WhatsappAccount']['rawAttributes']);_0x159c9d[_0x9093('0x48')]=_[_0x9093('0x49')](_0xdfe1d7[_0x9093('0x48')]);_0x159c9d['filters']=_[_0x9093('0x4a')](_0x159c9d[_0x9093('0x4b')],_0x159c9d['query']);_0x119a0a['attributes']=_['intersection'](_0x159c9d['model'],qs['fields'](_0xdfe1d7[_0x9093('0x48')][_0x9093('0x4c')]));_0x119a0a[_0x9093('0x4e')]=_0x119a0a[_0x9093('0x4e')][_0x9093('0x4d')]?_0x119a0a[_0x9093('0x4e')]:_0x159c9d['model'];if(_0xdfe1d7[_0x9093('0x48')][_0x9093('0x5a')]){_0x119a0a[_0x9093('0x5b')]=[{'all':!![]}];}_0x119a0a=_[_0x9093('0x57')]({},_0x119a0a,_0xdfe1d7[_0x9093('0x59')]);return db[_0x9093('0x44')][_0x9093('0x5f')](_0x119a0a)[_0x9093('0x21')](handleEntityNotFound(_0x297b3f,null))[_0x9093('0x21')](respondWithResult(_0x297b3f,null))[_0x9093('0x60')](handleError(_0x297b3f,null));};exports[_0x9093('0x61')]=function(_0x28343f,_0x4951f6){return db[_0x9093('0x44')]['create'](_0x28343f['body'],{})[_0x9093('0x21')](function(_0x287aee){var _0x147e75=_0x28343f[_0x9093('0x62')][_0x9093('0x38')]({'plain':!![]});if(!_0x147e75)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x147e75[_0x9093('0x63')]===_0x9093('0x62')){var _0x18dffd=_0x287aee[_0x9093('0x38')]({'plain':!![]});var _0x347eff='WhatsappAccounts';return db[_0x9093('0x64')][_0x9093('0x5f')]({'where':{'name':_0x347eff,'userProfileId':_0x147e75['userProfileId']},'raw':!![]})[_0x9093('0x21')](function(_0x498795){if(_0x498795&&_0x498795[_0x9093('0x65')]===0x0){return db[_0x9093('0x3a')][_0x9093('0x61')]({'name':_0x18dffd['name'],'resourceId':_0x18dffd['id'],'type':_0x498795['name'],'sectionId':_0x498795['id']},{})[_0x9093('0x21')](function(){return _0x287aee;});}else{return _0x287aee;}})[_0x9093('0x60')](function(_0x4183f5){logger['error'](_0x9093('0x66'),_0x4183f5);throw _0x4183f5;});}return _0x287aee;})[_0x9093('0x21')](respondWithResult(_0x4951f6,0xc9))[_0x9093('0x60')](handleError(_0x4951f6,null));};exports[_0x9093('0x37')]=function(_0x139925,_0x13c648){if(_0x139925[_0x9093('0x67')]['id']){delete _0x139925[_0x9093('0x67')]['id'];}return db[_0x9093('0x44')][_0x9093('0x5f')]({'where':{'id':_0x139925[_0x9093('0x5e')]['id']},'include':[{'model':db[_0x9093('0x41')],'as':_0x9093('0x42')}]})[_0x9093('0x21')](handleEntityNotFound(_0x13c648,null))[_0x9093('0x21')](saveUpdates(_0x139925['body'],null))[_0x9093('0x21')](respondWithResult(_0x13c648,null))['catch'](handleError(_0x13c648,null));};exports[_0x9093('0x3b')]=function(_0x48c1c9,_0x578d52){return db[_0x9093('0x44')][_0x9093('0x5f')]({'where':{'id':_0x48c1c9[_0x9093('0x5e')]['id']}})[_0x9093('0x21')](handleEntityNotFound(_0x578d52,null))['then'](removeEntity(_0x578d52,null))[_0x9093('0x60')](handleError(_0x578d52,null));};exports['describe']=function(_0x6caac2,_0x4a10fe){return db[_0x9093('0x44')][_0x9093('0x68')]()[_0x9093('0x21')](respondWithResult(_0x4a10fe,null))[_0x9093('0x60')](handleError(_0x4a10fe,null));};exports[_0x9093('0x69')]=function(_0x173687,_0x496e1e,_0x5a62c8){if(_0x173687[_0x9093('0x67')]['id']){delete _0x173687['body']['id'];}return db[_0x9093('0x44')][_0x9093('0x5f')]({'where':{'id':_0x173687[_0x9093('0x5e')]['id']}})[_0x9093('0x21')](handleEntityNotFound(_0x496e1e,null))['then'](function(_0x5be8cc){if(_0x5be8cc){_0x173687['body'][_0x9093('0x6a')]=_0x5be8cc['id'];return db[_0x9093('0x6b')][_0x9093('0x61')](_0x173687[_0x9093('0x67')]);}})['then'](respondWithResult(_0x496e1e,null))[_0x9093('0x60')](handleError(_0x496e1e,null));};exports[_0x9093('0x6c')]=function(_0x2b203d,_0x20bafb,_0x3446fd){var _0x5d3a03={'raw':![],'where':{}};var _0x4a18f0={};var _0x5af7f2={'count':0x0,'rows':[]};return db[_0x9093('0x44')][_0x9093('0x6d')]({'where':{'id':_0x2b203d['params']['id']}})[_0x9093('0x21')](handleEntityNotFound(_0x20bafb,null))[_0x9093('0x21')](function(_0x266a48){if(_0x266a48){_0x4a18f0[_0x9093('0x4b')]=_[_0x9093('0x49')](db[_0x9093('0x6b')][_0x9093('0x45')]);_0x4a18f0[_0x9093('0x48')]=_[_0x9093('0x49')](_0x2b203d[_0x9093('0x48')]);_0x4a18f0[_0x9093('0x53')]=_[_0x9093('0x4a')](_0x4a18f0['model'],_0x4a18f0['query']);_0x5d3a03[_0x9093('0x4e')]=_['intersection'](_0x4a18f0[_0x9093('0x4b')],qs[_0x9093('0x4c')](_0x2b203d['query'][_0x9093('0x4c')]));_0x5d3a03[_0x9093('0x4e')]=_0x5d3a03[_0x9093('0x4e')][_0x9093('0x4d')]?_0x5d3a03[_0x9093('0x4e')]:_0x4a18f0['model'];if(!_0x2b203d[_0x9093('0x48')][_0x9093('0x4f')](_0x9093('0x50'))){_0x5d3a03[_0x9093('0x30')]=qs[_0x9093('0x30')](_0x2b203d[_0x9093('0x48')][_0x9093('0x30')]);_0x5d3a03[_0x9093('0x2f')]=qs['offset'](_0x2b203d['query'][_0x9093('0x2f')]);}_0x5d3a03[_0x9093('0x51')]=qs[_0x9093('0x52')](_0x2b203d[_0x9093('0x48')][_0x9093('0x52')]);_0x5d3a03['where']=qs[_0x9093('0x53')](_[_0x9093('0x54')](_0x2b203d[_0x9093('0x48')],_0x4a18f0[_0x9093('0x53')]));_0x5d3a03[_0x9093('0x56')][_0x9093('0x6a')]=_0x266a48['id'];if(_0x2b203d[_0x9093('0x48')][_0x9093('0x55')]){_0x5d3a03[_0x9093('0x56')]=_[_0x9093('0x57')](_0x5d3a03['where'],{'$or':_[_0x9093('0x43')](_0x5d3a03[_0x9093('0x4e')],function(_0x1598a1){var _0x3ba80f={};_0x3ba80f[_0x1598a1]={'$like':'%'+_0x2b203d['query'][_0x9093('0x55')]+'%'};return _0x3ba80f;})});}_0x5d3a03=_[_0x9093('0x57')]({},_0x5d3a03,_0x2b203d['options']);return db[_0x9093('0x6b')][_0x9093('0x31')]({'where':_0x5d3a03[_0x9093('0x56')]})[_0x9093('0x21')](function(_0x3da883){_0x5af7f2['count']=_0x3da883;if(_0x2b203d[_0x9093('0x48')][_0x9093('0x5a')]){_0x5d3a03[_0x9093('0x5b')]=[{'all':!![]}];}return db[_0x9093('0x6b')][_0x9093('0x6e')](_0x5d3a03);})['then'](function(_0x1961b0){_0x5af7f2[_0x9093('0x5c')]=_0x1961b0;return _0x5af7f2;});}})[_0x9093('0x21')](respondWithFilteredResult(_0x20bafb,_0x5d3a03))[_0x9093('0x60')](handleError(_0x20bafb,null));};exports[_0x9093('0x6f')]=function(_0x856616,_0x43c3fe,_0x692d37){return db[_0x9093('0x44')][_0x9093('0x5f')]({'where':{'id':_0x856616[_0x9093('0x5e')]['id']}})[_0x9093('0x21')](handleEntityNotFound(_0x43c3fe,null))['then'](function(_0xcbff56){if(_0xcbff56){return _0xcbff56[_0x9093('0x6f')](_0x856616[_0x9093('0x48')][_0x9093('0x70')]);}})[_0x9093('0x21')](respondWithStatusCode(_0x43c3fe,null))[_0x9093('0x60')](handleError(_0x43c3fe,null));};exports[_0x9093('0x71')]=function(_0x14fc17,_0x9a91a7,_0x4b7820){if(_0x14fc17[_0x9093('0x67')]['id']){delete _0x14fc17[_0x9093('0x67')]['id'];}return db[_0x9093('0x44')][_0x9093('0x5f')]({'where':{'id':_0x14fc17[_0x9093('0x5e')]['id']}})[_0x9093('0x21')](handleEntityNotFound(_0x9a91a7,null))[_0x9093('0x21')](function(_0x219118){if(_0x219118){_0x14fc17[_0x9093('0x67')][_0x9093('0x6a')]=_0x219118['id'];return db[_0x9093('0x72')][_0x9093('0x61')](_0x14fc17['body']);}})['then'](respondWithResult(_0x9a91a7,null))[_0x9093('0x60')](handleError(_0x9a91a7,null));};exports[_0x9093('0x73')]=function(_0x4a0e34,_0x369d0c,_0xd92ea9){var _0x29e83d={'raw':![],'where':{}};var _0x50baa7={};var _0x3b858d={'count':0x0,'rows':[]};return db[_0x9093('0x44')][_0x9093('0x6d')]({'where':{'id':_0x4a0e34[_0x9093('0x5e')]['id']}})[_0x9093('0x21')](handleEntityNotFound(_0x369d0c,null))[_0x9093('0x21')](function(_0x2b4ebc){if(_0x2b4ebc){_0x50baa7[_0x9093('0x4b')]=_[_0x9093('0x49')](db['CannedAnswer']['rawAttributes']);_0x50baa7[_0x9093('0x48')]=_[_0x9093('0x49')](_0x4a0e34[_0x9093('0x48')]);_0x50baa7[_0x9093('0x53')]=_['intersection'](_0x50baa7[_0x9093('0x4b')],_0x50baa7[_0x9093('0x48')]);_0x29e83d[_0x9093('0x4e')]=_[_0x9093('0x4a')](_0x50baa7[_0x9093('0x4b')],qs[_0x9093('0x4c')](_0x4a0e34[_0x9093('0x48')][_0x9093('0x4c')]));_0x29e83d[_0x9093('0x4e')]=_0x29e83d[_0x9093('0x4e')][_0x9093('0x4d')]?_0x29e83d[_0x9093('0x4e')]:_0x50baa7[_0x9093('0x4b')];if(!_0x4a0e34[_0x9093('0x48')][_0x9093('0x4f')](_0x9093('0x50'))){_0x29e83d[_0x9093('0x30')]=qs['limit'](_0x4a0e34[_0x9093('0x48')][_0x9093('0x30')]);_0x29e83d[_0x9093('0x2f')]=qs['offset'](_0x4a0e34['query'][_0x9093('0x2f')]);}_0x29e83d[_0x9093('0x51')]=qs[_0x9093('0x52')](_0x4a0e34[_0x9093('0x48')][_0x9093('0x52')]);_0x29e83d[_0x9093('0x56')]=qs[_0x9093('0x53')](_[_0x9093('0x54')](_0x4a0e34['query'],_0x50baa7[_0x9093('0x53')]));_0x29e83d['where'][_0x9093('0x6a')]=_0x2b4ebc['id'];if(_0x4a0e34[_0x9093('0x48')]['filter']){_0x29e83d[_0x9093('0x56')]=_[_0x9093('0x57')](_0x29e83d['where'],{'$or':_[_0x9093('0x43')](_0x29e83d[_0x9093('0x4e')],function(_0x32dd83){var _0x5ac8eb={};_0x5ac8eb[_0x32dd83]={'$like':'%'+_0x4a0e34[_0x9093('0x48')][_0x9093('0x55')]+'%'};return _0x5ac8eb;})});}_0x29e83d=_[_0x9093('0x57')]({},_0x29e83d,_0x4a0e34[_0x9093('0x59')]);return db[_0x9093('0x72')][_0x9093('0x31')]({'where':_0x29e83d[_0x9093('0x56')]})[_0x9093('0x21')](function(_0x55c133){_0x3b858d[_0x9093('0x31')]=_0x55c133;if(_0x4a0e34[_0x9093('0x48')][_0x9093('0x5a')]){_0x29e83d[_0x9093('0x5b')]=[{'all':!![]}];}return db[_0x9093('0x72')][_0x9093('0x6e')](_0x29e83d);})[_0x9093('0x21')](function(_0x5a3924){_0x3b858d[_0x9093('0x5c')]=_0x5a3924;return _0x3b858d;});}})['then'](respondWithFilteredResult(_0x369d0c,_0x29e83d))['catch'](handleError(_0x369d0c,null));};exports[_0x9093('0x74')]=function(_0x2c0ea2,_0x28315a,_0x14f0a1){return db['WhatsappAccount']['find']({'where':{'id':_0x2c0ea2['params']['id']}})['then'](handleEntityNotFound(_0x28315a,null))['then'](function(_0x328d92){if(_0x328d92){return _0x328d92[_0x9093('0x74')](_0x2c0ea2[_0x9093('0x48')][_0x9093('0x70')]);}})['then'](respondWithStatusCode(_0x28315a,null))[_0x9093('0x60')](handleError(_0x28315a,null));};exports['addAgents']=function(_0x4d7a7e,_0x2511fa,_0x533e2b){return db[_0x9093('0x44')][_0x9093('0x5f')]({'where':{'id':_0x4d7a7e[_0x9093('0x5e')]['id']}})['then'](handleEntityNotFound(_0x2511fa,null))[_0x9093('0x21')](function(_0x26c617){if(_0x26c617){return _0x26c617[_0x9093('0x75')](_0x4d7a7e['body'][_0x9093('0x70')],_['omit'](_0x4d7a7e[_0x9093('0x67')],['ids','id'])||{})[_0x9093('0x76')](function(_0x3139ca){for(var _0x160837=0x0;_0x160837<_0x4d7a7e[_0x9093('0x67')][_0x9093('0x70')][_0x9093('0x4d')];_0x160837+=0x1){socket[_0x9093('0x77')](_0x9093('0x78'),{'UserId':Number(_0x4d7a7e['body'][_0x9093('0x70')][_0x160837]),'WhatsappAccountId':Number(_0x4d7a7e[_0x9093('0x5e')]['id'])});}return _0x3139ca;});}})['then'](respondWithResult(_0x2511fa,null))[_0x9093('0x60')](handleError(_0x2511fa,null));};exports[_0x9093('0x79')]=function(_0x50199d,_0x3a42e1,_0x33299b){return db[_0x9093('0x44')][_0x9093('0x5f')]({'where':{'id':_0x50199d[_0x9093('0x5e')]['id']}})[_0x9093('0x21')](handleEntityNotFound(_0x3a42e1,null))[_0x9093('0x21')](function(_0xb3d6ec){if(_0xb3d6ec){return _0xb3d6ec[_0x9093('0x79')](_0x50199d[_0x9093('0x48')][_0x9093('0x70')])[_0x9093('0x21')](function(){if(_[_0x9093('0x7a')](_0x50199d[_0x9093('0x48')][_0x9093('0x70')])){for(var _0x3fab42=0x0;_0x3fab42<_0x50199d['query'][_0x9093('0x70')][_0x9093('0x4d')];_0x3fab42+=0x1){socket[_0x9093('0x77')](_0x9093('0x7b'),{'UserId':Number(_0x50199d['query'][_0x9093('0x70')][_0x3fab42]),'WhatsappAccountId':Number(_0x50199d[_0x9093('0x5e')]['id'])});}}else{socket[_0x9093('0x77')]('userWhatsappAccount:remove',{'UserId':Number(_0x50199d[_0x9093('0x48')]['ids']),'WhatsappAccountId':Number(_0x50199d[_0x9093('0x5e')]['id'])});}});}})[_0x9093('0x21')](respondWithStatusCode(_0x3a42e1,null))['catch'](handleError(_0x3a42e1,null));};exports[_0x9093('0x7c')]=function(_0x17007d,_0x5152cf,_0x475c6b){var _0x10ea39={};var _0x2969bb={};var _0x399cfa;var _0x1dba73;return db[_0x9093('0x44')]['findOne']({'where':{'id':_0x17007d[_0x9093('0x5e')]['id']}})['then'](handleEntityNotFound(_0x5152cf,null))[_0x9093('0x21')](function(_0x565e59){if(_0x565e59){_0x399cfa=_0x565e59;_0x2969bb[_0x9093('0x4b')]=_[_0x9093('0x49')](db[_0x9093('0x7d')]['rawAttributes']);_0x2969bb[_0x9093('0x48')]=_[_0x9093('0x49')](_0x17007d['query']);_0x2969bb[_0x9093('0x53')]=_[_0x9093('0x4a')](_0x2969bb[_0x9093('0x4b')],_0x2969bb[_0x9093('0x48')]);_0x10ea39[_0x9093('0x4e')]=_[_0x9093('0x4a')](_0x2969bb[_0x9093('0x4b')],qs[_0x9093('0x4c')](_0x17007d[_0x9093('0x48')][_0x9093('0x4c')]));_0x10ea39[_0x9093('0x4e')]=_0x10ea39['attributes'][_0x9093('0x4d')]?_0x10ea39['attributes']:_0x2969bb[_0x9093('0x4b')];_0x10ea39['order']=qs['sort'](_0x17007d[_0x9093('0x48')][_0x9093('0x52')]);_0x10ea39[_0x9093('0x56')]=qs[_0x9093('0x53')](_[_0x9093('0x54')](_0x17007d['query'],_0x2969bb['filters']));if(_0x17007d[_0x9093('0x48')][_0x9093('0x55')]){_0x10ea39[_0x9093('0x56')]=_[_0x9093('0x57')](_0x10ea39[_0x9093('0x56')],{'$or':_[_0x9093('0x43')](_0x10ea39[_0x9093('0x4e')],function(_0x16e3b8){var _0x50f5f6={};_0x50f5f6[_0x16e3b8]={'$like':'%'+_0x17007d[_0x9093('0x48')][_0x9093('0x55')]+'%'};return _0x50f5f6;})});}_0x10ea39=_[_0x9093('0x57')]({},_0x10ea39,_0x17007d[_0x9093('0x59')]);return _0x399cfa[_0x9093('0x7c')](_0x10ea39);}})[_0x9093('0x21')](function(_0x456d60){if(_0x456d60){_0x1dba73=_0x456d60[_0x9093('0x4d')];if(!_0x17007d['query'][_0x9093('0x4f')]('nolimit')){_0x10ea39[_0x9093('0x30')]=qs['limit'](_0x17007d[_0x9093('0x48')][_0x9093('0x30')]);_0x10ea39[_0x9093('0x2f')]=qs[_0x9093('0x2f')](_0x17007d[_0x9093('0x48')][_0x9093('0x2f')]);}return _0x399cfa[_0x9093('0x7c')](_0x10ea39);}})[_0x9093('0x21')](function(_0x1825e4){if(_0x1825e4){return _0x1825e4?{'count':_0x1dba73,'rows':_0x1825e4}:null;}})[_0x9093('0x21')](respondWithResult(_0x5152cf,null))[_0x9093('0x60')](handleError(_0x5152cf,null));};exports[_0x9093('0x7e')]=function(_0x45a625,_0x384543,_0xcde082){return db[_0x9093('0x44')][_0x9093('0x6d')]({'where':{'id':_0x45a625['params']['id']}})[_0x9093('0x21')](handleEntityNotFound(_0x384543,null))['then'](function(_0x4efe57){if(_0x4efe57){return db[_0x9093('0x7f')][_0x9093('0x80')](function(_0x268914){return db[_0x9093('0x81')][_0x9093('0x3b')]({'where':{'WhatsappAccountId':_0x45a625['params']['id']},'transaction':_0x268914})['then'](function(_0x38649e){var _0xfd9ff5=_[_0x9093('0x43')](_0x45a625[_0x9093('0x67')],function(_0x1020d3){_0x1020d3[_0x9093('0x6a')]=_0x45a625[_0x9093('0x5e')]['id'];return _0x1020d3;});return db[_0x9093('0x81')][_0x9093('0x82')](_0xfd9ff5,{'transaction':_0x268914});});})[_0x9093('0x21')](function(){return db[_0x9093('0x81')][_0x9093('0x83')]({'where':{'WhatsappAccountId':_0x45a625[_0x9093('0x5e')]['id']},'order':_0x9093('0x84')});});}})[_0x9093('0x21')](respondWithResult(_0x384543,null))[_0x9093('0x60')](handleError(_0x384543,null));};exports[_0x9093('0x85')]=function(_0x2a3918,_0xaebf5e,_0x5f763a){var _0x6e8a44={};var _0x2af92e={};var _0x50f9e3;var _0x4517e1;return db[_0x9093('0x44')][_0x9093('0x6d')]({'where':{'id':_0x2a3918[_0x9093('0x5e')]['id']}})[_0x9093('0x21')](handleEntityNotFound(_0xaebf5e,null))[_0x9093('0x21')](function(_0x21340d){if(_0x21340d){_0x50f9e3=_0x21340d;_0x2af92e['model']=_[_0x9093('0x49')](db[_0x9093('0x81')][_0x9093('0x45')]);_0x2af92e[_0x9093('0x48')]=_[_0x9093('0x49')](_0x2a3918[_0x9093('0x48')]);_0x2af92e[_0x9093('0x53')]=_[_0x9093('0x4a')](_0x2af92e[_0x9093('0x4b')],_0x2af92e[_0x9093('0x48')]);_0x6e8a44[_0x9093('0x4e')]=_[_0x9093('0x4a')](_0x2af92e[_0x9093('0x4b')],qs[_0x9093('0x4c')](_0x2a3918[_0x9093('0x48')][_0x9093('0x4c')]));_0x6e8a44[_0x9093('0x4e')]=_0x6e8a44[_0x9093('0x4e')][_0x9093('0x4d')]?_0x6e8a44['attributes']:_0x2af92e[_0x9093('0x4b')];_0x6e8a44['order']=qs[_0x9093('0x52')](_0x2a3918['query']['sort']);_0x6e8a44['where']=qs[_0x9093('0x53')](_[_0x9093('0x54')](_0x2a3918[_0x9093('0x48')],_0x2af92e[_0x9093('0x53')]));if(_0x2a3918[_0x9093('0x48')]['filter']){_0x6e8a44[_0x9093('0x56')]=_[_0x9093('0x57')](_0x6e8a44[_0x9093('0x56')],{'$or':_[_0x9093('0x43')](_0x6e8a44[_0x9093('0x4e')],function(_0x4e637f){var _0x561a02={};_0x561a02[_0x4e637f]={'$like':'%'+_0x2a3918[_0x9093('0x48')][_0x9093('0x55')]+'%'};return _0x561a02;})});}_0x6e8a44=_[_0x9093('0x57')]({},_0x6e8a44,_0x2a3918['options']);return _0x50f9e3[_0x9093('0x85')](_0x6e8a44);}})[_0x9093('0x21')](function(_0x1f746c){if(_0x1f746c){_0x4517e1=_0x1f746c[_0x9093('0x4d')];if(!_0x2a3918[_0x9093('0x48')][_0x9093('0x4f')]('nolimit')){_0x6e8a44[_0x9093('0x30')]=qs['limit'](_0x2a3918[_0x9093('0x48')][_0x9093('0x30')]);_0x6e8a44[_0x9093('0x2f')]=qs[_0x9093('0x2f')](_0x2a3918[_0x9093('0x48')]['offset']);}return _0x50f9e3[_0x9093('0x85')](_0x6e8a44);}})['then'](function(_0x49ca4a){if(_0x49ca4a){return _0x49ca4a?{'count':_0x4517e1,'rows':_0x49ca4a}:null;}})[_0x9093('0x21')](respondWithResult(_0xaebf5e,null))['catch'](handleError(_0xaebf5e,null));};exports[_0x9093('0x86')]=function(_0x18bd0f,_0x563997,_0x107ee0){var _0x4f396f={'channel':'whatsapp'};var _0x33232a=[];var _0x30862f=[];var _0x80173d={};return db[_0x9093('0x44')][_0x9093('0x5f')]({'where':{'id':_0x18bd0f['params']['id']},'include':[{'model':db[_0x9093('0x81')],'as':'Applications'}]})['then'](handleEntityNotFound(_0x563997,null))[_0x9093('0x21')](function(_0x2043ec){_0x4f396f[_0x9093('0x87')]=_0x2043ec;_0x4f396f[_0x9093('0x88')]=_[_0x9093('0x89')](_0x2043ec[_0x9093('0x8a')],[_0x9093('0x84')],[_0x9093('0x8b')]);if(_0x4f396f[_0x9093('0x87')][_0x9093('0x8a')]){delete _0x4f396f[_0x9093('0x87')][_0x9093('0x8a')];}return db[_0x9093('0x8c')][_0x9093('0x68')]();})[_0x9093('0x21')](function(_0x5d37f3){if(!_0x5d37f3){throw new db[(_0x9093('0x8d'))][(_0x9093('0x8e'))](_0x9093('0x8f'));}_0x33232a=_[_0x9093('0x90')](_[_0x9093('0x49')](_0x5d37f3),[_0x9093('0x91'),_0x9093('0x92')]);_0x30862f=_[_0x9093('0x90')](_[_0x9093('0x49')](_0x5d37f3),[_0x9093('0x91'),_0x9093('0x92'),_0x9093('0x93'),_0x9093('0x94')]);_0x4f396f[_0x9093('0x67')]={'mapKey':_0x9093('0x95')};if(_0x4f396f[_0x9093('0x87')][_0x9093('0x58')]&&_0x4f396f[_0x9093('0x87')][_0x9093('0x58')]==='twilio'){_0x4f396f[_0x9093('0x67')][_0x9093('0x96')]=_0x18bd0f[_0x9093('0x67')][_0x9093('0x97')][_0x9093('0x98')]('whatsapp:','');_0x4f396f[_0x9093('0x67')][_0x9093('0x67')]=_0x18bd0f[_0x9093('0x67')]['Body'];_0x4f396f['body']['messageId']=_0x18bd0f[_0x9093('0x67')][_0x9093('0x99')];}if(_0x4f396f[_0x9093('0x67')]['id']){delete _0x4f396f[_0x9093('0x67')]['id'];}if(_['isNil'](_0x4f396f['body'][_0x9093('0x96')])){throw new db['Sequelize'][(_0x9093('0x8e'))](_0x9093('0x9a'));}if(_[_0x9093('0x9b')](_0x4f396f['body'][_0x9093('0x67')])||_0x4f396f['body'][_0x9093('0x67')]===''){throw new db[(_0x9093('0x8d'))][(_0x9093('0x8e'))](_0x9093('0x9c'));}if(_[_0x9093('0x9b')](_0x4f396f[_0x9093('0x67')]['mapKey'])){throw new db['Sequelize'][(_0x9093('0x8e'))](_0x9093('0x9d')+_0x30862f);}if(!_[_0x9093('0x9e')](_0x30862f,_0x4f396f[_0x9093('0x67')][_0x9093('0x9f')])){throw new db[(_0x9093('0x8d'))]['ValidationError']('mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x30862f);}_0x80173d[_0x4f396f[_0x9093('0x67')][_0x9093('0x9f')]]=_0x4f396f[_0x9093('0x67')][_0x9093('0x96')];return db[_0x9093('0xa0')][_0x9093('0x5f')]({'where':{'id':_0x4f396f[_0x9093('0x87')][_0x9093('0x94')]},'include':[{'model':db['CmContact'],'as':'Contacts','where':_0x80173d,'limit':0x1,'order':[[_0x9093('0x92'),'DESC']]}]});})['then'](handleEntityNotFound(_0x563997,null))['then'](function(_0x41666d){if(_0x41666d){_0x4f396f['list']=_['omit'](_0x41666d,[_0x9093('0xa1')]);if(_0x41666d[_0x9093('0xa1')]['length']){return _0x41666d[_0x9093('0xa1')][0x0];}var _0x30821f=_[_0x9093('0x1a')](_0x4f396f[_0x9093('0x67')],{'firstName':_0x4f396f[_0x9093('0x67')][_0x9093('0x96')],'ListId':_0x41666d['id']});_0x30821f[_0x4f396f[_0x9093('0x67')][_0x9093('0x9f')]]=_0x4f396f[_0x9093('0x67')]['from'];return db[_0x9093('0x8c')]['create'](_0x30821f,{'fields':_0x33232a,'raw':!![]});}})['then'](handleEntityNotFound(_0x563997,null))[_0x9093('0x21')](function(_0x3da1bc){if(_0x3da1bc){_0x4f396f[_0x9093('0xa2')]=_0x3da1bc;var _0x38616f={'ContactId':_0x3da1bc['id'],'phone':_0x4f396f[_0x9093('0x67')][_0x9093('0x96')],'WhatsappAccountId':_0x18bd0f[_0x9093('0x5e')]['id']};var _0x55f9ce={'ContactId':_0x3da1bc['id'],'WhatsappAccountId':_0x18bd0f['params']['id'],'closed':![]};return db['WhatsappInteraction'][_0x9093('0x5f')]({'where':_0x55f9ce})[_0x9093('0x21')](function(_0xe4fa61){if(_0xe4fa61){return[_0xe4fa61,![]];}return db[_0x9093('0xa3')][_0x9093('0x61')](_0x38616f)[_0x9093('0x21')](function(_0x557e37){return[_0x557e37,!![]];});});}})[_0x9093('0x76')](function(_0x30b888,_0x359b3d){_0x4f396f[_0x9093('0xa4')]=_0x30b888[_0x9093('0x38')]({'plain':!![]});_0x4f396f[_0x9093('0xa4')]['created']=![];if(_0x359b3d){if(_0x4f396f['account'][_0x9093('0xa5')]){_0x4f396f[_0x9093('0x88')][_0x9093('0xa6')]({'id':0x0,'priority':_0x4f396f[_0x9093('0x88')][_0x9093('0x4d')]+0x1,'app':_0x9093('0xa7'),'appdata':'unmanaged','interval':_0x9093('0xa8')});}_0x4f396f[_0x9093('0xa4')][_0x9093('0xa9')]=!![];}return db['WhatsappMessage'][_0x9093('0x61')]({'phone':_0x4f396f[_0x9093('0x67')][_0x9093('0x96')],'messageId':_0x4f396f['body']['messageId'],'body':_0x4f396f['body'][_0x9093('0x67')],'WhatsappAccountId':_0x18bd0f[_0x9093('0x5e')]['id'],'WhatsappInteractionId':_0x30b888['id'],'direction':'in','ContactId':_0x30b888[_0x9093('0xaa')],'AttachmentId':_0x4f396f['body'][_0x9093('0xab')]});})[_0x9093('0x21')](function(_0x43c918){_0x4f396f['message']=_0x43c918;if(_0x4f396f['interaction']['UserId']){return db[_0x9093('0x7d')][_0x9093('0x5f')]({'attributes':['id',_0x9093('0x3e')],'where':{'id':_0x4f396f[_0x9093('0xa4')]['UserId']}})[_0x9093('0x21')](function(_0x570eee){if(_0x570eee){_0x4f396f['applications'][_0x9093('0xac')]({'id':0x0,'priority':0x0,'app':'agent','appdata':_0x570eee[_0x9093('0x3e')]+','+(_0x4f396f['account'][_0x9093('0xad')]||0xa),'interval':_0x9093('0xa8')});}return respondWithRpcPromise(_0x9093('0xae'),_0x9093('0xaf'),_0x4f396f);});}return respondWithRpcPromise('Start','startRouting',_0x4f396f);})[_0x9093('0x21')](function(_0x317386){if(_0x317386){var _0xf308c8=0xc8;var _0x28dc46=_0x9093('0xb0');logger[_0x9093('0x22')]('WhatsappAccount,\x20%s,\x20%s,\x20%s',_0x28dc46,_0xf308c8,_0x9093('0xb1'));logger['debug'](_0x9093('0xb2'),_0x28dc46,_0xf308c8,'entity\x20found',JSON[_0x9093('0x26')](_0x317386));if(_0x4f396f[_0x9093('0x87')]['type']==='twilio'){return _0x563997['status'](_0xf308c8)[_0x9093('0x32')](_0x9093('0xb3'),_0x9093('0xb4'))['send']('<?xml\x20version=\x221.0\x22\x20encoding=\x22UTF-8\x22?>\x0a<Response></Response>');}else{return _0x563997[_0x9093('0x2c')](_0xf308c8)[_0x9093('0x2e')](_0x317386);}}})[_0x9093('0x60')](handleError(_0x563997,null));};exports[_0x9093('0x3f')]=function(_0x2edc71,_0x3bec27,_0x3df101){var _0xb14615,_0x59ba5b,_0x17dc5b;if(_[_0x9093('0x9b')](_0x2edc71['body']['body'])||_0x2edc71[_0x9093('0x67')][_0x9093('0x67')]===''){throw new db['Sequelize']['ValidationError']('body\x20is\x20mandatory\x20and\x20not\x20empty');}if(_[_0x9093('0x9b')](_0x2edc71[_0x9093('0x67')]['to'])){throw new db[(_0x9093('0x8d'))]['ValidationError'](_0x9093('0xb5'));}_0xb14615=_0x2edc71[_0x9093('0x67')]['to'];return db[_0x9093('0x44')][_0x9093('0x5f')]({'where':{'id':_0x2edc71[_0x9093('0x5e')]['id']},'include':[{'model':db[_0x9093('0xa0')],'as':_0x9093('0xb6'),'include':[{'model':db[_0x9093('0x8c')],'as':'Contacts','where':{'mobile':_0xb14615},'limit':0x1,'order':[[_0x9093('0x92'),_0x9093('0xb7')]]}]}]})[_0x9093('0x21')](handleEntityNotFound(_0x3bec27,null))[_0x9093('0x21')](function(_0x4a8333){if(_0x4a8333&&_0x4a8333[_0x9093('0xb6')]){_0x59ba5b=_0x4a8333[_0x9093('0x38')]({'plain':!![]});if(_0x59ba5b[_0x9093('0xb6')]&&_0x59ba5b[_0x9093('0xb6')][_0x9093('0xa1')]['length']){return _0x59ba5b[_0x9093('0xb6')][_0x9093('0xa1')][0x0];}return db[_0x9093('0x8c')][_0x9093('0x61')](_[_0x9093('0x1a')](_0x2edc71['body'],{'firstName':_0xb14615,'mobile':_0xb14615,'phone':_0xb14615,'ListId':_0x59ba5b[_0x9093('0x94')]}));}})[_0x9093('0x21')](handleEntityNotFound(_0x3bec27,null))[_0x9093('0x21')](function(_0xa12a1b){if(_0xa12a1b){_0x17dc5b=_0xa12a1b;return db['WhatsappInteraction']['find']({'where':{'ContactId':_0x17dc5b['id'],'closed':![],'WhatsappAccountId':_0x59ba5b['id']}})['then'](function(_0x4acc32){if(_0x4acc32){return[_0x4acc32,![]];}return db[_0x9093('0xa3')]['create']({'UserId':_0x2edc71[_0x9093('0x62')]['id'],'ContactId':_0x17dc5b['id'],'WhatsappAccountId':_0x59ba5b['id'],'phone':_0xb14615,'firstMsgDirection':_0x9093('0xb8'),'Messages':[_['merge'](_0x2edc71['body'],{'read':![],'body':_0x2edc71[_0x9093('0x67')][_0x9093('0x67')],'phone':_0xb14615,'WhatsappAccountId':_0x59ba5b['id'],'UserId':_0x2edc71[_0x9093('0x62')]['id'],'ContactId':_0x17dc5b['id']})]},{'include':[{'model':db[_0x9093('0xb9')],'as':'Messages'}]})[_0x9093('0x21')](function(_0x2716db){return[_0x2716db,!![]];});});}})[_0x9093('0x76')](function(_0x3c852e,_0xd52e7c){if(_0xd52e7c){return _0x3c852e;}return db[_0x9093('0xb9')]['create'](_['merge'](_0x2edc71[_0x9093('0x67')],{'read':![],'body':_0x2edc71['body'][_0x9093('0x67')],'phone':_0xb14615,'WhatsappAccountId':_0x59ba5b['id'],'WhatsappInteractionId':_0x3c852e['id'],'UserId':_0x2edc71[_0x9093('0x62')]['id'],'ContactId':_0x17dc5b['id']}))[_0x9093('0x21')](function(_0x374540){_0x3c852e[_0x9093('0xba')][_0x9093('0xbb')]=[];_0x3c852e[_0x9093('0xba')]['Messages']['push'](_0x374540['dataValues']);return _0x3c852e;});})[_0x9093('0x21')](respondWithResult(_0x3bec27,null))[_0x9093('0x60')](handleError(_0x3bec27,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3696=['emit','hasOwnProperty','hook','exports','events','../../mysqldb','WhatsappAccount','setMaxListeners','save','update','remove'];(function(_0x1da804,_0x1b7529){var _0x57be20=function(_0x285826){while(--_0x285826){_0x1da804['push'](_0x1da804['shift']());}};_0x57be20(++_0x1b7529);}(_0x3696,0x10c));var _0x6369=function(_0xbd08b4,_0x4790ed){_0xbd08b4=_0xbd08b4-0x0;var _0x314f1e=_0x3696[_0xbd08b4];return _0x314f1e;};'use strict';var EventEmitter=require(_0x6369('0x0'));var WhatsappAccount=require(_0x6369('0x1'))['db'][_0x6369('0x2')];var WhatsappAccountEvents=new EventEmitter();WhatsappAccountEvents[_0x6369('0x3')](0x0);var events={'afterCreate':_0x6369('0x4'),'afterUpdate':_0x6369('0x5'),'afterDestroy':_0x6369('0x6')};function emitEvent(_0x5e85a0){return function(_0x6d52f5,_0x1f7389,_0x16dd53){WhatsappAccountEvents['emit'](_0x5e85a0+':'+_0x6d52f5['id'],_0x6d52f5);WhatsappAccountEvents[_0x6369('0x7')](_0x5e85a0,_0x6d52f5);_0x16dd53(null);};}for(var e in events){if(events[_0x6369('0x8')](e)){var event=events[e];WhatsappAccount[_0x6369('0x9')](e,emitEvent(event));}}module[_0x6369('0xa')]=WhatsappAccountEvents;
\ No newline at end of file
+var _0xcf95=['events','../../mysqldb','setMaxListeners','save','remove','emit','hasOwnProperty','hook'];(function(_0x9f9752,_0x2aa7f5){var _0x480442=function(_0x52285e){while(--_0x52285e){_0x9f9752['push'](_0x9f9752['shift']());}};_0x480442(++_0x2aa7f5);}(_0xcf95,0x1c8));var _0x5cf9=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xcf95[_0x3dd15e];return _0x231fd0;};'use strict';var EventEmitter=require(_0x5cf9('0x0'));var WhatsappAccount=require(_0x5cf9('0x1'))['db']['WhatsappAccount'];var WhatsappAccountEvents=new EventEmitter();WhatsappAccountEvents[_0x5cf9('0x2')](0x0);var events={'afterCreate':_0x5cf9('0x3'),'afterUpdate':'update','afterDestroy':_0x5cf9('0x4')};function emitEvent(_0x312bbf){return function(_0x47972d,_0x116d20,_0x1a4b78){WhatsappAccountEvents[_0x5cf9('0x5')](_0x312bbf+':'+_0x47972d['id'],_0x47972d);WhatsappAccountEvents[_0x5cf9('0x5')](_0x312bbf,_0x47972d);_0x1a4b78(null);};}for(var e in events){if(events[_0x5cf9('0x6')](e)){var event=events[e];WhatsappAccount[_0x5cf9('0x7')](e,emitEvent(event));}}module['exports']=WhatsappAccountEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0d1d=['../../config/environment','./whatsappAccount.attributes','define','WhatsappAccount','whatsapp_accounts','util','../../config/logger','api','moment','bluebird','path','rimraf'];(function(_0x3f5210,_0x32f195){var _0x53c3ab=function(_0x341fa0){while(--_0x341fa0){_0x3f5210['push'](_0x3f5210['shift']());}};_0x53c3ab(++_0x32f195);}(_0x0d1d,0x10d));var _0xd0d1=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x0d1d[_0x14add3];return _0x4a174f;};'use strict';var _=require('lodash');var util=require(_0xd0d1('0x0'));var logger=require(_0xd0d1('0x1'))(_0xd0d1('0x2'));var moment=require(_0xd0d1('0x3'));var BPromise=require(_0xd0d1('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xd0d1('0x5'));var rimraf=require(_0xd0d1('0x6'));var config=require(_0xd0d1('0x7'));var attributes=require(_0xd0d1('0x8'));module['exports']=function(_0x1d6020,_0x2797ed){return _0x1d6020[_0xd0d1('0x9')](_0xd0d1('0xa'),attributes,{'tableName':_0xd0d1('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xd4c7=['path','../../config/environment','./whatsappAccount.attributes','define','whatsapp_accounts','lodash','util','../../config/logger','api','moment','bluebird'];(function(_0x4674d0,_0x5b3e6c){var _0x39abf2=function(_0x3bc69e){while(--_0x3bc69e){_0x4674d0['push'](_0x4674d0['shift']());}};_0x39abf2(++_0x5b3e6c);}(_0xd4c7,0x1d3));var _0x7d4c=function(_0x126558,_0x143c9a){_0x126558=_0x126558-0x0;var _0x1f6d14=_0xd4c7[_0x126558];return _0x1f6d14;};'use strict';var _=require(_0x7d4c('0x0'));var util=require(_0x7d4c('0x1'));var logger=require(_0x7d4c('0x2'))(_0x7d4c('0x3'));var moment=require(_0x7d4c('0x4'));var BPromise=require(_0x7d4c('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x7d4c('0x6'));var rimraf=require('rimraf');var config=require(_0x7d4c('0x7'));var attributes=require(_0x7d4c('0x8'));module['exports']=function(_0x584c53,_0x3ee910){return _0x584c53[_0x7d4c('0x9')]('WhatsappAccount',attributes,{'tableName':_0x7d4c('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf45a=['then','info','WhatsappAccount,\x20%s,\x20%s','request\x20sent','WhatsappAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','ShowWhatsappAccount','WhatsappAccount','find','options','raw','where','attributes','include','map','model','debug','catch','lodash','moment','bluebird','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','client','redis','defaults','socket.io-emitter','./whatsappAccount.socket','register','request'];(function(_0x344f37,_0x241ef7){var _0x5d52dd=function(_0x26e00c){while(--_0x26e00c){_0x344f37['push'](_0x344f37['shift']());}};_0x5d52dd(++_0x241ef7);}(_0xf45a,0xcf));var _0xaf45=function(_0x49d56d,_0x21389b){_0x49d56d=_0x49d56d-0x0;var _0x2c79a6=_0xf45a[_0x49d56d];return _0x2c79a6;};'use strict';var _=require(_0xaf45('0x0'));var util=require('util');var moment=require(_0xaf45('0x1'));var BPromise=require(_0xaf45('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xaf45('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0xaf45('0x4'));var logger=require(_0xaf45('0x5'))(_0xaf45('0x6'));var config=require(_0xaf45('0x7'));var jayson=require('jayson/promise');var client=jayson[_0xaf45('0x8')]['http']({'port':0x232a});config[_0xaf45('0x9')]=_[_0xaf45('0xa')](config[_0xaf45('0x9')],{'host':'localhost','port':0x18eb});var socket=require(_0xaf45('0xb'))(new Redis(config[_0xaf45('0x9')]));require(_0xaf45('0xc'))[_0xaf45('0xd')](socket);function respondWithRpcPromise(_0x518028,_0x1736f6,_0x17382e){return new BPromise(function(_0x2a45ae,_0x47d6e7){return client[_0xaf45('0xe')](_0x518028,_0x17382e)[_0xaf45('0xf')](function(_0x30f63e){logger[_0xaf45('0x10')](_0xaf45('0x11'),_0x1736f6,_0xaf45('0x12'));logger['debug'](_0xaf45('0x13'),_0x1736f6,_0xaf45('0x12'),JSON[_0xaf45('0x14')](_0x30f63e));if(_0x30f63e[_0xaf45('0x15')]){if(_0x30f63e[_0xaf45('0x15')][_0xaf45('0x16')]===0x1f4){logger[_0xaf45('0x15')]('WhatsappAccount,\x20%s,\x20%s',_0x1736f6,_0x30f63e['error']['message']);return _0x47d6e7(_0x30f63e[_0xaf45('0x15')][_0xaf45('0x17')]);}logger[_0xaf45('0x15')]('WhatsappAccount,\x20%s,\x20%s',_0x1736f6,_0x30f63e[_0xaf45('0x15')][_0xaf45('0x17')]);return _0x2a45ae(_0x30f63e[_0xaf45('0x15')]['message']);}else{logger['info'](_0xaf45('0x11'),_0x1736f6,_0xaf45('0x12'));_0x2a45ae(_0x30f63e[_0xaf45('0x18')]['message']);}})['catch'](function(_0x269650){logger[_0xaf45('0x15')](_0xaf45('0x11'),_0x1736f6,_0x269650);_0x47d6e7(_0x269650);});});}exports[_0xaf45('0x19')]=function(_0xa3c36b){var _0x5f51eb=this;return new Promise(function(_0x27a7e6,_0x5a3fb2){return db[_0xaf45('0x1a')][_0xaf45('0x1b')]({'raw':_0xa3c36b[_0xaf45('0x1c')]?_0xa3c36b[_0xaf45('0x1c')][_0xaf45('0x1d')]===undefined?!![]:![]:!![],'where':_0xa3c36b[_0xaf45('0x1c')]?_0xa3c36b['options'][_0xaf45('0x1e')]||null:null,'attributes':_0xa3c36b['options']?_0xa3c36b[_0xaf45('0x1c')][_0xaf45('0x1f')]||null:null,'include':_0xa3c36b[_0xaf45('0x1c')]?_0xa3c36b[_0xaf45('0x1c')][_0xaf45('0x20')]?_[_0xaf45('0x21')](_0xa3c36b[_0xaf45('0x1c')][_0xaf45('0x20')],function(_0x5f38b6){return{'model':db[_0x5f38b6[_0xaf45('0x22')]],'as':_0x5f38b6['as'],'attributes':_0x5f38b6[_0xaf45('0x1f')],'include':_0x5f38b6[_0xaf45('0x20')]?_[_0xaf45('0x21')](_0x5f38b6['include'],function(_0x3aaf28){return{'model':db[_0x3aaf28[_0xaf45('0x22')]],'as':_0x3aaf28['as'],'attributes':_0x3aaf28[_0xaf45('0x1f')],'include':_0x3aaf28[_0xaf45('0x20')]?_[_0xaf45('0x21')](_0x3aaf28['include'],function(_0x270f1c){return{'model':db[_0x270f1c[_0xaf45('0x22')]],'as':_0x270f1c['as'],'attributes':_0x270f1c['attributes']};}):[]};}):[]};}):[]:[]})[_0xaf45('0xf')](function(_0x3312b6){logger['info'](_0xaf45('0x19'),_0xa3c36b);logger[_0xaf45('0x23')]('ShowWhatsappAccount',_0xa3c36b,JSON['stringify'](_0x3312b6));_0x27a7e6(_0x3312b6);})[_0xaf45('0x24')](function(_0x2b0f6d){logger['error'](_0xaf45('0x19'),_0x2b0f6d[_0xaf45('0x17')],_0xa3c36b);_0x5a3fb2(_0x5f51eb['error'](0x1f4,_0x2b0f6d[_0xaf45('0x17')]));});});};
\ No newline at end of file
+var _0xa24d=['attributes','include','model','map','ShowWhatsappAccount','catch','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','register','request','then','info','request\x20sent','WhatsappAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','WhatsappAccount,\x20%s,\x20%s','message','result','WhatsappAccount','options','raw','where'];(function(_0x11fb16,_0x29a381){var _0x343de1=function(_0x4a69f7){while(--_0x4a69f7){_0x11fb16['push'](_0x11fb16['shift']());}};_0x343de1(++_0x29a381);}(_0xa24d,0x182));var _0xda24=function(_0xf74ddb,_0x8383bd){_0xf74ddb=_0xf74ddb-0x0;var _0x44e4cd=_0xa24d[_0xf74ddb];return _0x44e4cd;};'use strict';var _=require('lodash');var util=require(_0xda24('0x0'));var moment=require(_0xda24('0x1'));var BPromise=require(_0xda24('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xda24('0x3'));var db=require(_0xda24('0x4'))['db'];var utils=require(_0xda24('0x5'));var logger=require(_0xda24('0x6'))(_0xda24('0x7'));var config=require(_0xda24('0x8'));var jayson=require(_0xda24('0x9'));var client=jayson[_0xda24('0xa')][_0xda24('0xb')]({'port':0x232a});config[_0xda24('0xc')]=_[_0xda24('0xd')](config[_0xda24('0xc')],{'host':_0xda24('0xe'),'port':0x18eb});var socket=require(_0xda24('0xf'))(new Redis(config[_0xda24('0xc')]));require('./whatsappAccount.socket')[_0xda24('0x10')](socket);function respondWithRpcPromise(_0x52c983,_0xcc4f81,_0x159b83){return new BPromise(function(_0x2af064,_0x37761d){return client[_0xda24('0x11')](_0x52c983,_0x159b83)[_0xda24('0x12')](function(_0x1560cd){logger[_0xda24('0x13')]('WhatsappAccount,\x20%s,\x20%s',_0xcc4f81,_0xda24('0x14'));logger['debug'](_0xda24('0x15'),_0xcc4f81,_0xda24('0x14'),JSON[_0xda24('0x16')](_0x1560cd));if(_0x1560cd[_0xda24('0x17')]){if(_0x1560cd[_0xda24('0x17')][_0xda24('0x18')]===0x1f4){logger['error'](_0xda24('0x19'),_0xcc4f81,_0x1560cd['error'][_0xda24('0x1a')]);return _0x37761d(_0x1560cd[_0xda24('0x17')]['message']);}logger['error'](_0xda24('0x19'),_0xcc4f81,_0x1560cd[_0xda24('0x17')][_0xda24('0x1a')]);return _0x2af064(_0x1560cd[_0xda24('0x17')]['message']);}else{logger['info']('WhatsappAccount,\x20%s,\x20%s',_0xcc4f81,_0xda24('0x14'));_0x2af064(_0x1560cd[_0xda24('0x1b')][_0xda24('0x1a')]);}})['catch'](function(_0x40ee76){logger[_0xda24('0x17')](_0xda24('0x19'),_0xcc4f81,_0x40ee76);_0x37761d(_0x40ee76);});});}exports['ShowWhatsappAccount']=function(_0x3f428f){var _0xdd0a4e=this;return new Promise(function(_0x400bb2,_0x5a4d57){return db[_0xda24('0x1c')]['find']({'raw':_0x3f428f[_0xda24('0x1d')]?_0x3f428f[_0xda24('0x1d')][_0xda24('0x1e')]===undefined?!![]:![]:!![],'where':_0x3f428f[_0xda24('0x1d')]?_0x3f428f[_0xda24('0x1d')][_0xda24('0x1f')]||null:null,'attributes':_0x3f428f[_0xda24('0x1d')]?_0x3f428f['options'][_0xda24('0x20')]||null:null,'include':_0x3f428f[_0xda24('0x1d')]?_0x3f428f[_0xda24('0x1d')][_0xda24('0x21')]?_['map'](_0x3f428f[_0xda24('0x1d')][_0xda24('0x21')],function(_0x2b05d3){return{'model':db[_0x2b05d3[_0xda24('0x22')]],'as':_0x2b05d3['as'],'attributes':_0x2b05d3[_0xda24('0x20')],'include':_0x2b05d3['include']?_[_0xda24('0x23')](_0x2b05d3[_0xda24('0x21')],function(_0x4d232c){return{'model':db[_0x4d232c['model']],'as':_0x4d232c['as'],'attributes':_0x4d232c[_0xda24('0x20')],'include':_0x4d232c[_0xda24('0x21')]?_[_0xda24('0x23')](_0x4d232c['include'],function(_0x3420c5){return{'model':db[_0x3420c5['model']],'as':_0x3420c5['as'],'attributes':_0x3420c5[_0xda24('0x20')]};}):[]};}):[]};}):[]:[]})[_0xda24('0x12')](function(_0x4662d8){logger['info'](_0xda24('0x24'),_0x3f428f);logger['debug'](_0xda24('0x24'),_0x3f428f,JSON[_0xda24('0x16')](_0x4662d8));_0x400bb2(_0x4662d8);})[_0xda24('0x25')](function(_0x41370c){logger[_0xda24('0x17')](_0xda24('0x24'),_0x41370c[_0xda24('0x1a')],_0x3f428f);_0x5a4d57(_0xdd0a4e[_0xda24('0x17')](0x1f4,_0x41370c['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x743f=['./whatsappAccount.events','save','remove','update','removeListener','length'];(function(_0x4457d0,_0x2592e0){var _0x521ca4=function(_0x5ba397){while(--_0x5ba397){_0x4457d0['push'](_0x4457d0['shift']());}};_0x521ca4(++_0x2592e0);}(_0x743f,0x66));var _0xf743=function(_0x18fb06,_0x51be38){_0x18fb06=_0x18fb06-0x0;var _0x421d3d=_0x743f[_0x18fb06];return _0x421d3d;};'use strict';var WhatsappAccountEvents=require(_0xf743('0x0'));var events=[_0xf743('0x1'),_0xf743('0x2'),_0xf743('0x3')];function createListener(_0x4a1bb3,_0xf1c362){return function(_0x2b89c8){_0xf1c362['emit'](_0x4a1bb3,_0x2b89c8);};}function removeListener(_0x29f238,_0x4192a8){return function(){WhatsappAccountEvents[_0xf743('0x4')](_0x29f238,_0x4192a8);};}exports['register']=function(_0x1ec7c9){for(var _0xe5f489=0x0,_0x4efb7a=events[_0xf743('0x5')];_0xe5f489<_0x4efb7a;_0xe5f489++){var _0x1ec105=events[_0xe5f489];var _0x44f564=createListener('whatsappAccount:'+_0x1ec105,_0x1ec7c9);WhatsappAccountEvents['on'](_0x1ec105,_0x44f564);}};
\ No newline at end of file
+var _0x584f=['whatsappAccount:','./whatsappAccount.events','update','emit','removeListener','register','length'];(function(_0x1ff9bc,_0x168fb6){var _0x42e952=function(_0x800b41){while(--_0x800b41){_0x1ff9bc['push'](_0x1ff9bc['shift']());}};_0x42e952(++_0x168fb6);}(_0x584f,0xda));var _0xf584=function(_0x5e1f24,_0x442000){_0x5e1f24=_0x5e1f24-0x0;var _0x53823d=_0x584f[_0x5e1f24];return _0x53823d;};'use strict';var WhatsappAccountEvents=require(_0xf584('0x0'));var events=['save','remove',_0xf584('0x1')];function createListener(_0x1c410b,_0x901dd5){return function(_0x46dd95){_0x901dd5[_0xf584('0x2')](_0x1c410b,_0x46dd95);};}function removeListener(_0x4b7d6d,_0x1e58b6){return function(){WhatsappAccountEvents[_0xf584('0x3')](_0x4b7d6d,_0x1e58b6);};}exports[_0xf584('0x4')]=function(_0x162ec2){for(var _0x7a961c=0x0,_0x3c795a=events[_0xf584('0x5')];_0x7a961c<_0x3c795a;_0x7a961c++){var _0x56a999=events[_0x7a961c];var _0x59ffe3=createListener(_0xf584('0x6')+_0x56a999,_0x162ec2);WhatsappAccountEvents['on'](_0x56a999,_0x59ffe3);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb7d3=['../../components/interaction/service','../../config/environment','./whatsappApplication.controller','get','isAuthenticated','index','/:id','show','update','destroy','exports','multer','util','express','fs-extra','../../components/auth/service'];(function(_0x167cc1,_0x56ef5a){var _0x10bc4b=function(_0xd6a255){while(--_0xd6a255){_0x167cc1['push'](_0x167cc1['shift']());}};_0x10bc4b(++_0x56ef5a);}(_0xb7d3,0x9b));var _0x3b7d=function(_0xc64946,_0x229695){_0xc64946=_0xc64946-0x0;var _0x2f66e5=_0xb7d3[_0xc64946];return _0x2f66e5;};'use strict';var multer=require(_0x3b7d('0x0'));var util=require(_0x3b7d('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0x3b7d('0x2'));var router=express['Router']();var fs_extra=require(_0x3b7d('0x3'));var auth=require(_0x3b7d('0x4'));var interaction=require(_0x3b7d('0x5'));var config=require(_0x3b7d('0x6'));var controller=require(_0x3b7d('0x7'));router[_0x3b7d('0x8')]('/',auth[_0x3b7d('0x9')](),controller[_0x3b7d('0xa')]);router[_0x3b7d('0x8')](_0x3b7d('0xb'),auth[_0x3b7d('0x9')](),controller[_0x3b7d('0xc')]);router['post']('/',auth[_0x3b7d('0x9')](),controller['create']);router['put'](_0x3b7d('0xb'),auth[_0x3b7d('0x9')](),controller[_0x3b7d('0xd')]);router['delete']('/:id',auth[_0x3b7d('0x9')](),controller[_0x3b7d('0xe')]);module[_0x3b7d('0xf')]=router;
\ No newline at end of file
+var _0x828b=['multer','path','connect-timeout','Router','fs-extra','../../components/auth/service','./whatsappApplication.controller','get','index','/:id','isAuthenticated','show','post','create','update','destroy','exports'];(function(_0x23bf40,_0x541706){var _0x3a7916=function(_0x346057){while(--_0x346057){_0x23bf40['push'](_0x23bf40['shift']());}};_0x3a7916(++_0x541706);}(_0x828b,0x187));var _0xb828=function(_0x386cef,_0x112e10){_0x386cef=_0x386cef-0x0;var _0x2f866f=_0x828b[_0x386cef];return _0x2f866f;};'use strict';var multer=require(_0xb828('0x0'));var util=require('util');var path=require(_0xb828('0x1'));var timeout=require(_0xb828('0x2'));var express=require('express');var router=express[_0xb828('0x3')]();var fs_extra=require(_0xb828('0x4'));var auth=require(_0xb828('0x5'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0xb828('0x6'));router[_0xb828('0x7')]('/',auth['isAuthenticated'](),controller[_0xb828('0x8')]);router['get'](_0xb828('0x9'),auth[_0xb828('0xa')](),controller[_0xb828('0xb')]);router[_0xb828('0xc')]('/',auth[_0xb828('0xa')](),controller[_0xb828('0xd')]);router['put'](_0xb828('0x9'),auth[_0xb828('0xa')](),controller[_0xb828('0xe')]);router['delete'](_0xb828('0x9'),auth[_0xb828('0xa')](),controller[_0xb828('0xf')]);module[_0xb828('0x10')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7992=['noop','TEXT','*,*,*,*','sequelize','exports','INTEGER','STRING'];(function(_0x18fec8,_0x31d0cd){var _0x5e400c=function(_0x1f3bc0){while(--_0x1f3bc0){_0x18fec8['push'](_0x18fec8['shift']());}};_0x5e400c(++_0x31d0cd);}(_0x7992,0x192));var _0x2799=function(_0x6c0123,_0x4c8d3b){_0x6c0123=_0x6c0123-0x0;var _0x5a87d2=_0x7992[_0x6c0123];return _0x5a87d2;};'use strict';var Sequelize=require(_0x2799('0x0'));module[_0x2799('0x1')]={'priority':{'type':Sequelize[_0x2799('0x2')],'allowNull':![]},'app':{'type':Sequelize[_0x2799('0x3')],'allowNull':![],'defaultValue':_0x2799('0x4')},'appdata':{'type':Sequelize[_0x2799('0x5')]()},'description':{'type':Sequelize[_0x2799('0x3')]},'interval':{'type':Sequelize[_0x2799('0x3')],'defaultValue':_0x2799('0x6')}};
\ No newline at end of file
+var _0x4aab=['TEXT','STRING','*,*,*,*','sequelize','exports','INTEGER','noop'];(function(_0x321728,_0x1fbc48){var _0x211876=function(_0x5bf9fc){while(--_0x5bf9fc){_0x321728['push'](_0x321728['shift']());}};_0x211876(++_0x1fbc48);}(_0x4aab,0x65));var _0xb4aa=function(_0x3af444,_0x590610){_0x3af444=_0x3af444-0x0;var _0x2305da=_0x4aab[_0x3af444];return _0x2305da;};'use strict';var Sequelize=require(_0xb4aa('0x0'));module[_0xb4aa('0x1')]={'priority':{'type':Sequelize[_0xb4aa('0x2')],'allowNull':![]},'app':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0xb4aa('0x3')},'appdata':{'type':Sequelize[_0xb4aa('0x4')]()},'description':{'type':Sequelize[_0xb4aa('0x5')]},'interval':{'type':Sequelize[_0xb4aa('0x5')],'defaultValue':_0xb4aa('0x6')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb931=['desk.js','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../mysqldb','sendStatus','end','status','json','offset','limit','undefined','count','Content-Range','apply','reject','save','update','then','destroy','error','stack','send','index','map','WhatsappApplication','type','key','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filter','merge','options','includeAll','include','findAll','catch','show','rawAttributes','keys','find','create','body','params','zip-dir','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce'];(function(_0x288536,_0x369b51){var _0x525e94=function(_0x2fe9db){while(--_0x2fe9db){_0x288536['push'](_0x288536['shift']());}};_0x525e94(++_0x369b51);}(_0xb931,0x155));var _0x1b93=function(_0x10018c,_0x2c62cd){_0x10018c=_0x10018c-0x0;var _0x45177d=_0xb931[_0x10018c];return _0x45177d;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x1b93('0x0'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x1b93('0x1'));var BPromise=require(_0x1b93('0x2'));var Mustache=require(_0x1b93('0x3'));var util=require(_0x1b93('0x4'));var path=require(_0x1b93('0x5'));var sox=require(_0x1b93('0x6'));var csv=require(_0x1b93('0x7'));var ejs=require(_0x1b93('0x8'));var fs=require('fs');var fs_extra=require(_0x1b93('0x9'));var _=require(_0x1b93('0xa'));var squel=require(_0x1b93('0xb'));var crypto=require(_0x1b93('0xc'));var jsforce=require(_0x1b93('0xd'));var deskjs=require(_0x1b93('0xe'));var toCsv=require(_0x1b93('0x7'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x1b93('0xf'));var authService=require(_0x1b93('0x10'));var qs=require(_0x1b93('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x1b93('0x12'));var logger=require('../../config/logger')(_0x1b93('0x13'));var utils=require(_0x1b93('0x14'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x1b93('0x15'))['db'];function respondWithStatusCode(_0x2606eb,_0x3c4881){_0x3c4881=_0x3c4881||0xcc;return function(_0x50f99f){if(_0x50f99f){return _0x2606eb[_0x1b93('0x16')](_0x3c4881);}return _0x2606eb['status'](_0x3c4881)[_0x1b93('0x17')]();};}function respondWithResult(_0x12ca65,_0x3ab584){_0x3ab584=_0x3ab584||0xc8;return function(_0x1ea97a){if(_0x1ea97a){return _0x12ca65[_0x1b93('0x18')](_0x3ab584)[_0x1b93('0x19')](_0x1ea97a);}};}function respondWithFilteredResult(_0x4a0bb6,_0x140515){return function(_0x267527){if(_0x267527){var _0x240b8f=typeof _0x140515[_0x1b93('0x1a')]==='undefined'&&typeof _0x140515[_0x1b93('0x1b')]===_0x1b93('0x1c');var _0x4f7199=_0x267527[_0x1b93('0x1d')];var _0x339c5b=_0x240b8f?0x0:_0x140515['offset'];var _0x5ccbf4=_0x240b8f?_0x267527[_0x1b93('0x1d')]:_0x140515[_0x1b93('0x1a')]+_0x140515[_0x1b93('0x1b')];var _0x4156d9;if(_0x5ccbf4>=_0x4f7199){_0x5ccbf4=_0x4f7199;_0x4156d9=0xc8;}else{_0x4156d9=0xce;}_0x4a0bb6[_0x1b93('0x18')](_0x4156d9);return _0x4a0bb6['set'](_0x1b93('0x1e'),_0x339c5b+'-'+_0x5ccbf4+'/'+_0x4f7199)[_0x1b93('0x19')](_0x267527);}return null;};}function patchUpdates(_0x5cba05){return function(_0x546288){try{jsonpatch[_0x1b93('0x1f')](_0x546288,_0x5cba05,!![]);}catch(_0x116775){return BPromise[_0x1b93('0x20')](_0x116775);}return _0x546288[_0x1b93('0x21')]();};}function saveUpdates(_0x2619e6,_0x333390){return function(_0x577a22){if(_0x577a22){return _0x577a22[_0x1b93('0x22')](_0x2619e6)[_0x1b93('0x23')](function(_0x208217){return _0x208217;});}return null;};}function removeEntity(_0x5a61dc,_0x1cfcd1){return function(_0x41f219){if(_0x41f219){return _0x41f219[_0x1b93('0x24')]()[_0x1b93('0x23')](function(){_0x5a61dc[_0x1b93('0x18')](0xcc)[_0x1b93('0x17')]();});}};}function handleEntityNotFound(_0x13cddc,_0x309ac5){return function(_0x14626a){if(!_0x14626a){_0x13cddc[_0x1b93('0x16')](0x194);}return _0x14626a;};}function handleError(_0x8010e6,_0x189869){_0x189869=_0x189869||0x1f4;return function(_0xa15258){logger[_0x1b93('0x25')](_0xa15258[_0x1b93('0x26')]);if(_0xa15258['name']){delete _0xa15258['name'];}_0x8010e6[_0x1b93('0x18')](_0x189869)[_0x1b93('0x27')](_0xa15258);};}exports[_0x1b93('0x28')]=function(_0x2501ee,_0x20b035){var _0xc47d69={},_0x59983e={},_0x5af450={'count':0x0,'rows':[]};var _0x2e7f79=_[_0x1b93('0x29')](db[_0x1b93('0x2a')]['rawAttributes'],function(_0x3dc539){return{'name':_0x3dc539['fieldName'],'type':_0x3dc539[_0x1b93('0x2b')][_0x1b93('0x2c')]};});_0x59983e[_0x1b93('0x2d')]=_['map'](_0x2e7f79,'name');_0x59983e[_0x1b93('0x2e')]=_['keys'](_0x2501ee[_0x1b93('0x2e')]);_0x59983e[_0x1b93('0x2f')]=_[_0x1b93('0x30')](_0x59983e['model'],_0x59983e[_0x1b93('0x2e')]);_0xc47d69[_0x1b93('0x31')]=_[_0x1b93('0x30')](_0x59983e[_0x1b93('0x2d')],qs[_0x1b93('0x32')](_0x2501ee[_0x1b93('0x2e')][_0x1b93('0x32')]));_0xc47d69[_0x1b93('0x31')]=_0xc47d69[_0x1b93('0x31')][_0x1b93('0x33')]?_0xc47d69[_0x1b93('0x31')]:_0x59983e['model'];if(!_0x2501ee['query'][_0x1b93('0x34')](_0x1b93('0x35'))){_0xc47d69[_0x1b93('0x1b')]=qs[_0x1b93('0x1b')](_0x2501ee[_0x1b93('0x2e')][_0x1b93('0x1b')]);_0xc47d69[_0x1b93('0x1a')]=qs['offset'](_0x2501ee['query']['offset']);}_0xc47d69[_0x1b93('0x36')]=qs[_0x1b93('0x37')](_0x2501ee['query']['sort']);_0xc47d69[_0x1b93('0x38')]=qs[_0x1b93('0x2f')](_['pick'](_0x2501ee[_0x1b93('0x2e')],_0x59983e['filters']),_0x2e7f79);if(_0x2501ee[_0x1b93('0x2e')][_0x1b93('0x39')]){_0xc47d69[_0x1b93('0x38')]=_[_0x1b93('0x3a')](_0xc47d69[_0x1b93('0x38')],{'$or':_[_0x1b93('0x29')](_0x2e7f79,function(_0x538e18){if(_0x538e18[_0x1b93('0x2b')]!=='VIRTUAL'){var _0x3755cc={};_0x3755cc[_0x538e18['name']]={'$like':'%'+_0x2501ee[_0x1b93('0x2e')][_0x1b93('0x39')]+'%'};return _0x3755cc;}})});}_0xc47d69=_[_0x1b93('0x3a')]({},_0xc47d69,_0x2501ee[_0x1b93('0x3b')]);var _0x46c9bf={'where':_0xc47d69[_0x1b93('0x38')]};return db[_0x1b93('0x2a')][_0x1b93('0x1d')](_0x46c9bf)[_0x1b93('0x23')](function(_0x42913e){_0x5af450[_0x1b93('0x1d')]=_0x42913e;if(_0x2501ee[_0x1b93('0x2e')][_0x1b93('0x3c')]){_0xc47d69[_0x1b93('0x3d')]=[{'all':!![]}];}return db['WhatsappApplication'][_0x1b93('0x3e')](_0xc47d69);})[_0x1b93('0x23')](function(_0x318d13){_0x5af450['rows']=_0x318d13;return _0x5af450;})[_0x1b93('0x23')](respondWithFilteredResult(_0x20b035,_0xc47d69))[_0x1b93('0x3f')](handleError(_0x20b035,null));};exports[_0x1b93('0x40')]=function(_0x37d2c2,_0xd1017){var _0x4ec427={'raw':!![],'where':{'id':_0x37d2c2['params']['id']}},_0x5ad3e3={};_0x5ad3e3[_0x1b93('0x2d')]=_['keys'](db['WhatsappApplication'][_0x1b93('0x41')]);_0x5ad3e3[_0x1b93('0x2e')]=_[_0x1b93('0x42')](_0x37d2c2[_0x1b93('0x2e')]);_0x5ad3e3[_0x1b93('0x2f')]=_[_0x1b93('0x30')](_0x5ad3e3[_0x1b93('0x2d')],_0x5ad3e3['query']);_0x4ec427['attributes']=_[_0x1b93('0x30')](_0x5ad3e3[_0x1b93('0x2d')],qs['fields'](_0x37d2c2[_0x1b93('0x2e')][_0x1b93('0x32')]));_0x4ec427['attributes']=_0x4ec427[_0x1b93('0x31')]['length']?_0x4ec427[_0x1b93('0x31')]:_0x5ad3e3[_0x1b93('0x2d')];if(_0x37d2c2['query'][_0x1b93('0x3c')]){_0x4ec427[_0x1b93('0x3d')]=[{'all':!![]}];}_0x4ec427=_[_0x1b93('0x3a')]({},_0x4ec427,_0x37d2c2[_0x1b93('0x3b')]);return db['WhatsappApplication'][_0x1b93('0x43')](_0x4ec427)[_0x1b93('0x23')](handleEntityNotFound(_0xd1017,null))[_0x1b93('0x23')](respondWithResult(_0xd1017,null))[_0x1b93('0x3f')](handleError(_0xd1017,null));};exports['create']=function(_0x154c7a,_0x1ef0b1){return db['WhatsappApplication'][_0x1b93('0x44')](_0x154c7a['body'],{})[_0x1b93('0x23')](respondWithResult(_0x1ef0b1,0xc9))[_0x1b93('0x3f')](handleError(_0x1ef0b1,null));};exports[_0x1b93('0x22')]=function(_0x1df9d4,_0x4a6918){if(_0x1df9d4[_0x1b93('0x45')]['id']){delete _0x1df9d4[_0x1b93('0x45')]['id'];}return db[_0x1b93('0x2a')][_0x1b93('0x43')]({'where':{'id':_0x1df9d4[_0x1b93('0x46')]['id']}})['then'](handleEntityNotFound(_0x4a6918,null))[_0x1b93('0x23')](saveUpdates(_0x1df9d4['body'],null))['then'](respondWithResult(_0x4a6918,null))[_0x1b93('0x3f')](handleError(_0x4a6918,null));};exports[_0x1b93('0x24')]=function(_0x32f6cd,_0x1e7fcf){return db[_0x1b93('0x2a')]['find']({'where':{'id':_0x32f6cd[_0x1b93('0x46')]['id']}})[_0x1b93('0x23')](handleEntityNotFound(_0x1e7fcf,null))[_0x1b93('0x23')](removeEntity(_0x1e7fcf,null))[_0x1b93('0x3f')](handleError(_0x1e7fcf,null));};
\ No newline at end of file
+var _0xbca0=['bluebird','mustache','util','to-csv','ejs','fs-extra','lodash','desk.js','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','apply','reject','update','then','destroy','error','stack','name','send','index','WhatsappApplication','rawAttributes','fieldName','type','map','query','keys','filters','intersection','model','attributes','fields','length','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','rows','show','params','create','body','catch','find','eml-format','rimraf','moment'];(function(_0x2827f9,_0x2682a8){var _0x5a00a5=function(_0x5b2dec){while(--_0x5b2dec){_0x2827f9['push'](_0x2827f9['shift']());}};_0x5a00a5(++_0x2682a8);}(_0xbca0,0x8b));var _0x0bca=function(_0x2df39a,_0x254933){_0x2df39a=_0x2df39a-0x0;var _0xf72a2c=_0xbca0[_0x2df39a];return _0xf72a2c;};'use strict';var emlformat=require(_0x0bca('0x0'));var rimraf=require(_0x0bca('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x0bca('0x2'));var BPromise=require(_0x0bca('0x3'));var Mustache=require(_0x0bca('0x4'));var util=require(_0x0bca('0x5'));var path=require('path');var sox=require('sox');var csv=require(_0x0bca('0x6'));var ejs=require(_0x0bca('0x7'));var fs=require('fs');var fs_extra=require(_0x0bca('0x8'));var _=require(_0x0bca('0x9'));var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x0bca('0xa'));var toCsv=require(_0x0bca('0x6'));var querystring=require(_0x0bca('0xb'));var Papa=require(_0x0bca('0xc'));var Redis=require(_0x0bca('0xd'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x0bca('0xe'));var hardwareService=require(_0x0bca('0xf'));var logger=require(_0x0bca('0x10'))(_0x0bca('0x11'));var utils=require(_0x0bca('0x12'));var config=require(_0x0bca('0x13'));var licenseUtil=require(_0x0bca('0x14'));var db=require(_0x0bca('0x15'))['db'];function respondWithStatusCode(_0x4533bf,_0x465266){_0x465266=_0x465266||0xcc;return function(_0x14921d){if(_0x14921d){return _0x4533bf[_0x0bca('0x16')](_0x465266);}return _0x4533bf[_0x0bca('0x17')](_0x465266)[_0x0bca('0x18')]();};}function respondWithResult(_0x244f59,_0x2ceb98){_0x2ceb98=_0x2ceb98||0xc8;return function(_0x20d6bf){if(_0x20d6bf){return _0x244f59[_0x0bca('0x17')](_0x2ceb98)[_0x0bca('0x19')](_0x20d6bf);}};}function respondWithFilteredResult(_0x4c7ba8,_0x1b0f06){return function(_0x464fbf){if(_0x464fbf){var _0x13c80a=typeof _0x1b0f06[_0x0bca('0x1a')]===_0x0bca('0x1b')&&typeof _0x1b0f06[_0x0bca('0x1c')]===_0x0bca('0x1b');var _0x512830=_0x464fbf[_0x0bca('0x1d')];var _0x3589e9=_0x13c80a?0x0:_0x1b0f06[_0x0bca('0x1a')];var _0x1111c3=_0x13c80a?_0x464fbf[_0x0bca('0x1d')]:_0x1b0f06[_0x0bca('0x1a')]+_0x1b0f06[_0x0bca('0x1c')];var _0x4c4e25;if(_0x1111c3>=_0x512830){_0x1111c3=_0x512830;_0x4c4e25=0xc8;}else{_0x4c4e25=0xce;}_0x4c7ba8[_0x0bca('0x17')](_0x4c4e25);return _0x4c7ba8['set']('Content-Range',_0x3589e9+'-'+_0x1111c3+'/'+_0x512830)[_0x0bca('0x19')](_0x464fbf);}return null;};}function patchUpdates(_0x3fbfad){return function(_0xcc2790){try{jsonpatch[_0x0bca('0x1e')](_0xcc2790,_0x3fbfad,!![]);}catch(_0x202caa){return BPromise[_0x0bca('0x1f')](_0x202caa);}return _0xcc2790['save']();};}function saveUpdates(_0x10d170,_0x3c7c51){return function(_0x5c0a6c){if(_0x5c0a6c){return _0x5c0a6c[_0x0bca('0x20')](_0x10d170)[_0x0bca('0x21')](function(_0x3e66b9){return _0x3e66b9;});}return null;};}function removeEntity(_0x37e43c,_0xa96ced){return function(_0x40565a){if(_0x40565a){return _0x40565a[_0x0bca('0x22')]()['then'](function(){_0x37e43c[_0x0bca('0x17')](0xcc)[_0x0bca('0x18')]();});}};}function handleEntityNotFound(_0x2cece9,_0x2617bc){return function(_0xbe494){if(!_0xbe494){_0x2cece9[_0x0bca('0x16')](0x194);}return _0xbe494;};}function handleError(_0x1fafc9,_0xabafd1){_0xabafd1=_0xabafd1||0x1f4;return function(_0x18cab1){logger[_0x0bca('0x23')](_0x18cab1[_0x0bca('0x24')]);if(_0x18cab1[_0x0bca('0x25')]){delete _0x18cab1[_0x0bca('0x25')];}_0x1fafc9[_0x0bca('0x17')](_0xabafd1)[_0x0bca('0x26')](_0x18cab1);};}exports[_0x0bca('0x27')]=function(_0x3d687c,_0x1b7e2b){var _0x1be2b7={},_0x3810ed={},_0x262959={'count':0x0,'rows':[]};var _0x1e7566=_['map'](db[_0x0bca('0x28')][_0x0bca('0x29')],function(_0x18cdaa){return{'name':_0x18cdaa[_0x0bca('0x2a')],'type':_0x18cdaa[_0x0bca('0x2b')]['key']};});_0x3810ed['model']=_[_0x0bca('0x2c')](_0x1e7566,_0x0bca('0x25'));_0x3810ed[_0x0bca('0x2d')]=_[_0x0bca('0x2e')](_0x3d687c[_0x0bca('0x2d')]);_0x3810ed[_0x0bca('0x2f')]=_[_0x0bca('0x30')](_0x3810ed[_0x0bca('0x31')],_0x3810ed[_0x0bca('0x2d')]);_0x1be2b7[_0x0bca('0x32')]=_[_0x0bca('0x30')](_0x3810ed[_0x0bca('0x31')],qs[_0x0bca('0x33')](_0x3d687c[_0x0bca('0x2d')][_0x0bca('0x33')]));_0x1be2b7[_0x0bca('0x32')]=_0x1be2b7[_0x0bca('0x32')][_0x0bca('0x34')]?_0x1be2b7[_0x0bca('0x32')]:_0x3810ed[_0x0bca('0x31')];if(!_0x3d687c[_0x0bca('0x2d')]['hasOwnProperty'](_0x0bca('0x35'))){_0x1be2b7[_0x0bca('0x1c')]=qs[_0x0bca('0x1c')](_0x3d687c[_0x0bca('0x2d')][_0x0bca('0x1c')]);_0x1be2b7[_0x0bca('0x1a')]=qs[_0x0bca('0x1a')](_0x3d687c[_0x0bca('0x2d')][_0x0bca('0x1a')]);}_0x1be2b7[_0x0bca('0x36')]=qs['sort'](_0x3d687c[_0x0bca('0x2d')][_0x0bca('0x37')]);_0x1be2b7[_0x0bca('0x38')]=qs[_0x0bca('0x2f')](_[_0x0bca('0x39')](_0x3d687c[_0x0bca('0x2d')],_0x3810ed[_0x0bca('0x2f')]),_0x1e7566);if(_0x3d687c['query'][_0x0bca('0x3a')]){_0x1be2b7[_0x0bca('0x38')]=_[_0x0bca('0x3b')](_0x1be2b7[_0x0bca('0x38')],{'$or':_[_0x0bca('0x2c')](_0x1e7566,function(_0xd4247c){if(_0xd4247c[_0x0bca('0x2b')]!==_0x0bca('0x3c')){var _0x22674d={};_0x22674d[_0xd4247c[_0x0bca('0x25')]]={'$like':'%'+_0x3d687c[_0x0bca('0x2d')]['filter']+'%'};return _0x22674d;}})});}_0x1be2b7=_[_0x0bca('0x3b')]({},_0x1be2b7,_0x3d687c[_0x0bca('0x3d')]);var _0x119cdf={'where':_0x1be2b7[_0x0bca('0x38')]};return db['WhatsappApplication'][_0x0bca('0x1d')](_0x119cdf)[_0x0bca('0x21')](function(_0x4c1505){_0x262959['count']=_0x4c1505;if(_0x3d687c[_0x0bca('0x2d')][_0x0bca('0x3e')]){_0x1be2b7[_0x0bca('0x3f')]=[{'all':!![]}];}return db['WhatsappApplication']['findAll'](_0x1be2b7);})['then'](function(_0x3b81fc){_0x262959[_0x0bca('0x40')]=_0x3b81fc;return _0x262959;})['then'](respondWithFilteredResult(_0x1b7e2b,_0x1be2b7))['catch'](handleError(_0x1b7e2b,null));};exports[_0x0bca('0x41')]=function(_0x5f20e5,_0x3244ef){var _0x3db89c={'raw':!![],'where':{'id':_0x5f20e5[_0x0bca('0x42')]['id']}},_0x11ac00={};_0x11ac00[_0x0bca('0x31')]=_['keys'](db[_0x0bca('0x28')][_0x0bca('0x29')]);_0x11ac00['query']=_['keys'](_0x5f20e5[_0x0bca('0x2d')]);_0x11ac00['filters']=_[_0x0bca('0x30')](_0x11ac00[_0x0bca('0x31')],_0x11ac00[_0x0bca('0x2d')]);_0x3db89c[_0x0bca('0x32')]=_[_0x0bca('0x30')](_0x11ac00[_0x0bca('0x31')],qs[_0x0bca('0x33')](_0x5f20e5[_0x0bca('0x2d')][_0x0bca('0x33')]));_0x3db89c['attributes']=_0x3db89c['attributes'][_0x0bca('0x34')]?_0x3db89c[_0x0bca('0x32')]:_0x11ac00[_0x0bca('0x31')];if(_0x5f20e5[_0x0bca('0x2d')]['includeAll']){_0x3db89c[_0x0bca('0x3f')]=[{'all':!![]}];}_0x3db89c=_['merge']({},_0x3db89c,_0x5f20e5['options']);return db[_0x0bca('0x28')]['find'](_0x3db89c)[_0x0bca('0x21')](handleEntityNotFound(_0x3244ef,null))['then'](respondWithResult(_0x3244ef,null))['catch'](handleError(_0x3244ef,null));};exports[_0x0bca('0x43')]=function(_0x14231b,_0x6c5cf0){return db['WhatsappApplication']['create'](_0x14231b[_0x0bca('0x44')],{})[_0x0bca('0x21')](respondWithResult(_0x6c5cf0,0xc9))[_0x0bca('0x45')](handleError(_0x6c5cf0,null));};exports[_0x0bca('0x20')]=function(_0x2931cf,_0x3a5f1d){if(_0x2931cf['body']['id']){delete _0x2931cf[_0x0bca('0x44')]['id'];}return db['WhatsappApplication'][_0x0bca('0x46')]({'where':{'id':_0x2931cf[_0x0bca('0x42')]['id']}})[_0x0bca('0x21')](handleEntityNotFound(_0x3a5f1d,null))[_0x0bca('0x21')](saveUpdates(_0x2931cf[_0x0bca('0x44')],null))['then'](respondWithResult(_0x3a5f1d,null))['catch'](handleError(_0x3a5f1d,null));};exports[_0x0bca('0x22')]=function(_0x46cfa6,_0x563086){return db[_0x0bca('0x28')][_0x0bca('0x46')]({'where':{'id':_0x46cfa6[_0x0bca('0x42')]['id']}})[_0x0bca('0x21')](handleEntityNotFound(_0x563086,null))['then'](removeEntity(_0x563086,null))[_0x0bca('0x45')](handleError(_0x563086,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x01fe=['../../config/environment','exports','define','WhatsappApplication','whatsapp_applications','utf8mb4','lodash','../../config/logger','api','request-promise','path','rimraf'];(function(_0x4fc9e6,_0xc51915){var _0x551d28=function(_0x1a603b){while(--_0x1a603b){_0x4fc9e6['push'](_0x4fc9e6['shift']());}};_0x551d28(++_0xc51915);}(_0x01fe,0x102));var _0xe01f=function(_0x20de9f,_0x311434){_0x20de9f=_0x20de9f-0x0;var _0x561526=_0x01fe[_0x20de9f];return _0x561526;};'use strict';var _=require(_0xe01f('0x0'));var util=require('util');var logger=require(_0xe01f('0x1'))(_0xe01f('0x2'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0xe01f('0x3'));var fs=require('fs');var path=require(_0xe01f('0x4'));var rimraf=require(_0xe01f('0x5'));var config=require(_0xe01f('0x6'));var attributes=require('./whatsappApplication.attributes');module[_0xe01f('0x7')]=function(_0x574969,_0x3effc4){return _0x574969[_0xe01f('0x8')](_0xe01f('0x9'),attributes,{'tableName':_0xe01f('0xa'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0xe01f('0xb'),'collate':'utf8mb4_unicode_ci'});};
\ No newline at end of file
+var _0x28e3=['bluebird','request-promise','path','rimraf','../../config/environment','./whatsappApplication.attributes','exports','whatsapp_applications','utf8mb4','utf8mb4_unicode_ci','lodash','util','../../config/logger','api'];(function(_0x48d861,_0x5747b6){var _0xdea746=function(_0x1bd079){while(--_0x1bd079){_0x48d861['push'](_0x48d861['shift']());}};_0xdea746(++_0x5747b6);}(_0x28e3,0x106));var _0x328e=function(_0x1caf6a,_0x26a5bf){_0x1caf6a=_0x1caf6a-0x0;var _0x1bf493=_0x28e3[_0x1caf6a];return _0x1bf493;};'use strict';var _=require(_0x328e('0x0'));var util=require(_0x328e('0x1'));var logger=require(_0x328e('0x2'))(_0x328e('0x3'));var moment=require('moment');var BPromise=require(_0x328e('0x4'));var rp=require(_0x328e('0x5'));var fs=require('fs');var path=require(_0x328e('0x6'));var rimraf=require(_0x328e('0x7'));var config=require(_0x328e('0x8'));var attributes=require(_0x328e('0x9'));module[_0x328e('0xa')]=function(_0x439182,_0x5e5bcf){return _0x439182['define']('WhatsappApplication',attributes,{'tableName':_0x328e('0xb'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x328e('0xc'),'collate':_0x328e('0xd')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x55e0=['lodash','util','moment','bluebird','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','request','then','info','WhatsappApplication,\x20%s,\x20%s','request\x20sent','debug','WhatsappApplication,\x20%s,\x20%s,\x20%s','error','code','message','result','catch'];(function(_0x160c73,_0x2ee678){var _0xd9302=function(_0x169454){while(--_0x169454){_0x160c73['push'](_0x160c73['shift']());}};_0xd9302(++_0x2ee678);}(_0x55e0,0xdc));var _0x055e=function(_0x395667,_0x45593a){_0x395667=_0x395667-0x0;var _0x5cdb8f=_0x55e0[_0x395667];return _0x5cdb8f;};'use strict';var _=require(_0x055e('0x0'));var util=require(_0x055e('0x1'));var moment=require(_0x055e('0x2'));var BPromise=require(_0x055e('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0x055e('0x4'))['db'];var utils=require(_0x055e('0x5'));var logger=require(_0x055e('0x6'))(_0x055e('0x7'));var config=require(_0x055e('0x8'));var jayson=require(_0x055e('0x9'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x4384ff,_0x4a442e,_0x8e7824){return new BPromise(function(_0x3c4cf,_0x376618){return client[_0x055e('0xa')](_0x4384ff,_0x8e7824)[_0x055e('0xb')](function(_0x49540c){logger[_0x055e('0xc')](_0x055e('0xd'),_0x4a442e,_0x055e('0xe'));logger[_0x055e('0xf')](_0x055e('0x10'),_0x4a442e,'request\x20sent',JSON['stringify'](_0x49540c));if(_0x49540c[_0x055e('0x11')]){if(_0x49540c['error'][_0x055e('0x12')]===0x1f4){logger[_0x055e('0x11')](_0x055e('0xd'),_0x4a442e,_0x49540c[_0x055e('0x11')][_0x055e('0x13')]);return _0x376618(_0x49540c[_0x055e('0x11')][_0x055e('0x13')]);}logger['error'](_0x055e('0xd'),_0x4a442e,_0x49540c[_0x055e('0x11')][_0x055e('0x13')]);return _0x3c4cf(_0x49540c[_0x055e('0x11')][_0x055e('0x13')]);}else{logger['info'](_0x055e('0xd'),_0x4a442e,_0x055e('0xe'));_0x3c4cf(_0x49540c[_0x055e('0x14')]['message']);}})[_0x055e('0x15')](function(_0x2c377c){logger[_0x055e('0x11')](_0x055e('0xd'),_0x4a442e,_0x2c377c);_0x376618(_0x2c377c);});});}
\ No newline at end of file
+var _0x24ca=['request\x20sent','debug','WhatsappApplication,\x20%s,\x20%s,\x20%s','stringify','error','message','result','lodash','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','WhatsappApplication,\x20%s,\x20%s'];(function(_0x32717e,_0x2db7c2){var _0x4f182=function(_0x283a3f){while(--_0x283a3f){_0x32717e['push'](_0x32717e['shift']());}};_0x4f182(++_0x2db7c2);}(_0x24ca,0x1bc));var _0xa24c=function(_0x10291b,_0x518773){_0x10291b=_0x10291b-0x0;var _0x1d5fbe=_0x24ca[_0x10291b];return _0x1d5fbe;};'use strict';var _=require(_0xa24c('0x0'));var util=require('util');var moment=require(_0xa24c('0x1'));var BPromise=require(_0xa24c('0x2'));var rs=require(_0xa24c('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xa24c('0x4'))['db'];var utils=require(_0xa24c('0x5'));var logger=require(_0xa24c('0x6'))(_0xa24c('0x7'));var config=require(_0xa24c('0x8'));var jayson=require(_0xa24c('0x9'));var client=jayson[_0xa24c('0xa')][_0xa24c('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x2dd348,_0x257264,_0x9a5013){return new BPromise(function(_0x481196,_0x42d89c){return client[_0xa24c('0xc')](_0x2dd348,_0x9a5013)[_0xa24c('0xd')](function(_0x5eac78){logger[_0xa24c('0xe')](_0xa24c('0xf'),_0x257264,_0xa24c('0x10'));logger[_0xa24c('0x11')](_0xa24c('0x12'),_0x257264,_0xa24c('0x10'),JSON[_0xa24c('0x13')](_0x5eac78));if(_0x5eac78[_0xa24c('0x14')]){if(_0x5eac78[_0xa24c('0x14')]['code']===0x1f4){logger[_0xa24c('0x14')](_0xa24c('0xf'),_0x257264,_0x5eac78[_0xa24c('0x14')][_0xa24c('0x15')]);return _0x42d89c(_0x5eac78['error'][_0xa24c('0x15')]);}logger[_0xa24c('0x14')](_0xa24c('0xf'),_0x257264,_0x5eac78[_0xa24c('0x14')][_0xa24c('0x15')]);return _0x481196(_0x5eac78[_0xa24c('0x14')][_0xa24c('0x15')]);}else{logger['info']('WhatsappApplication,\x20%s,\x20%s',_0x257264,_0xa24c('0x10'));_0x481196(_0x5eac78[_0xa24c('0x16')]['message']);}})['catch'](function(_0x221d21){logger[_0xa24c('0x14')]('WhatsappApplication,\x20%s,\x20%s',_0x257264,_0x221d21);_0x42d89c(_0x221d21);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4745=['../../components/interaction/service','../../config/environment','./whatsappInteraction.controller','get','index','isAuthenticated','/:id','show','/:id/messages','getMessages','/:id/download','post','create','addMessage','/:id/tags','tracked','whatsapp','whatsappinteraction:addtags','addTags','whatsappinteraction:update','update','whatsappinteraction:destroy','destroy','delete','removeTags','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service'];(function(_0x52b34e,_0x26bfbe){var _0x3d6a3d=function(_0xcbaae2){while(--_0xcbaae2){_0x52b34e['push'](_0x52b34e['shift']());}};_0x3d6a3d(++_0x26bfbe);}(_0x4745,0x1e7));var _0x5474=function(_0x2b10c6,_0x185590){_0x2b10c6=_0x2b10c6-0x0;var _0x3789d2=_0x4745[_0x2b10c6];return _0x3789d2;};'use strict';var multer=require(_0x5474('0x0'));var util=require(_0x5474('0x1'));var path=require(_0x5474('0x2'));var timeout=require(_0x5474('0x3'));var express=require(_0x5474('0x4'));var router=express[_0x5474('0x5')]();var fs_extra=require(_0x5474('0x6'));var auth=require(_0x5474('0x7'));var interaction=require(_0x5474('0x8'));var config=require(_0x5474('0x9'));var controller=require(_0x5474('0xa'));router[_0x5474('0xb')]('/',auth['isAuthenticated'](),controller[_0x5474('0xc')]);router[_0x5474('0xb')]('/describe',auth[_0x5474('0xd')](),controller['describe']);router[_0x5474('0xb')](_0x5474('0xe'),auth['isAuthenticated'](),controller[_0x5474('0xf')]);router[_0x5474('0xb')](_0x5474('0x10'),auth[_0x5474('0xd')](),controller[_0x5474('0x11')]);router[_0x5474('0xb')](_0x5474('0x12'),auth[_0x5474('0xd')](),controller['download']);router[_0x5474('0x13')]('/',auth[_0x5474('0xd')](),controller[_0x5474('0x14')]);router[_0x5474('0x13')](_0x5474('0x10'),auth[_0x5474('0xd')](),controller[_0x5474('0x15')]);router[_0x5474('0x13')](_0x5474('0x16'),auth['isAuthenticated'](),interaction[_0x5474('0x17')](_0x5474('0x18'),_0x5474('0x19')),controller[_0x5474('0x1a')]);router['put']('/:id',auth['isAuthenticated'](),interaction['tracked'](_0x5474('0x18'),_0x5474('0x1b')),controller[_0x5474('0x1c')]);router['delete'](_0x5474('0xe'),auth[_0x5474('0xd')](),interaction['tracked'](_0x5474('0x18'),_0x5474('0x1d')),controller[_0x5474('0x1e')]);router[_0x5474('0x1f')](_0x5474('0x16'),auth['isAuthenticated'](),controller[_0x5474('0x20')]);module['exports']=router;
\ No newline at end of file
+var _0x7da7=['util','path','Router','fs-extra','../../components/interaction/service','../../config/environment','get','isAuthenticated','describe','/:id','/:id/messages','/:id/download','download','create','post','addMessage','tracked','whatsapp','whatsappinteraction:addtags','put','whatsappinteraction:update','whatsappinteraction:destroy','destroy','delete','/:id/tags','removeTags','multer'];(function(_0xaf25ae,_0x2001c1){var _0x49732d=function(_0x5b764d){while(--_0x5b764d){_0xaf25ae['push'](_0xaf25ae['shift']());}};_0x49732d(++_0x2001c1);}(_0x7da7,0x10d));var _0x77da=function(_0x301c34,_0x15701e){_0x301c34=_0x301c34-0x0;var _0x1a8c5a=_0x7da7[_0x301c34];return _0x1a8c5a;};'use strict';var multer=require(_0x77da('0x0'));var util=require(_0x77da('0x1'));var path=require(_0x77da('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x77da('0x3')]();var fs_extra=require(_0x77da('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0x77da('0x5'));var config=require(_0x77da('0x6'));var controller=require('./whatsappInteraction.controller');router[_0x77da('0x7')]('/',auth[_0x77da('0x8')](),controller['index']);router[_0x77da('0x7')]('/describe',auth[_0x77da('0x8')](),controller[_0x77da('0x9')]);router[_0x77da('0x7')](_0x77da('0xa'),auth[_0x77da('0x8')](),controller['show']);router[_0x77da('0x7')](_0x77da('0xb'),auth[_0x77da('0x8')](),controller['getMessages']);router[_0x77da('0x7')](_0x77da('0xc'),auth[_0x77da('0x8')](),controller[_0x77da('0xd')]);router['post']('/',auth[_0x77da('0x8')](),controller[_0x77da('0xe')]);router[_0x77da('0xf')]('/:id/messages',auth['isAuthenticated'](),controller[_0x77da('0x10')]);router[_0x77da('0xf')]('/:id/tags',auth[_0x77da('0x8')](),interaction[_0x77da('0x11')](_0x77da('0x12'),_0x77da('0x13')),controller['addTags']);router[_0x77da('0x14')]('/:id',auth[_0x77da('0x8')](),interaction[_0x77da('0x11')](_0x77da('0x12'),_0x77da('0x15')),controller['update']);router['delete']('/:id',auth['isAuthenticated'](),interaction[_0x77da('0x11')](_0x77da('0x12'),_0x77da('0x16')),controller[_0x77da('0x17')]);router[_0x77da('0x18')](_0x77da('0x19'),auth[_0x77da('0x8')](),controller[_0x77da('0x1a')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb073=['out','moment','BOOLEAN','DATE','STRING','ENUM'];(function(_0x3ad94a,_0x55369a){var _0x49cfb3=function(_0x4706f4){while(--_0x4706f4){_0x3ad94a['push'](_0x3ad94a['shift']());}};_0x49cfb3(++_0x55369a);}(_0xb073,0x187));var _0x3b07=function(_0x3fae31,_0x368645){_0x3fae31=_0x3fae31-0x0;var _0x1f6e92=_0xb073[_0x3fae31];return _0x1f6e92;};'use strict';var Sequelize=require('sequelize');var moment=require(_0x3b07('0x0'));module['exports']={'closed':{'type':Sequelize[_0x3b07('0x1')],'defaultValue':![]},'closedAt':{'type':Sequelize[_0x3b07('0x2')]},'disposition':{'type':Sequelize[_0x3b07('0x3')]},'secondDisposition':{'type':Sequelize['STRING']},'thirdDisposition':{'type':Sequelize[_0x3b07('0x3')]},'note':{'type':Sequelize[_0x3b07('0x3')]},'phone':{'type':Sequelize[_0x3b07('0x3')]},'read1stAt':{'type':Sequelize['DATE']},'firstMsgDirection':{'type':Sequelize[_0x3b07('0x4')]('in',_0x3b07('0x5')),'defaultValue':'in','allowNull':![]},'lastMsgAt':{'type':Sequelize[_0x3b07('0x2')]},'lastMsgDirection':{'type':Sequelize[_0x3b07('0x4')]('in',_0x3b07('0x5')),'defaultValue':'in','allowNull':![]},'autoreplyExecuted':{'type':Sequelize[_0x3b07('0x1')],'defaultValue':![]}};
\ No newline at end of file
+var _0x2494=['DATE','STRING','out','ENUM','sequelize','exports','BOOLEAN'];(function(_0x2b010e,_0x3dddb7){var _0x47cdb5=function(_0x1f3c64){while(--_0x1f3c64){_0x2b010e['push'](_0x2b010e['shift']());}};_0x47cdb5(++_0x3dddb7);}(_0x2494,0x82));var _0x4249=function(_0x52c831,_0x5e8f5b){_0x52c831=_0x52c831-0x0;var _0x426682=_0x2494[_0x52c831];return _0x426682;};'use strict';var Sequelize=require(_0x4249('0x0'));var moment=require('moment');module[_0x4249('0x1')]={'closed':{'type':Sequelize[_0x4249('0x2')],'defaultValue':![]},'closedAt':{'type':Sequelize[_0x4249('0x3')]},'disposition':{'type':Sequelize[_0x4249('0x4')]},'secondDisposition':{'type':Sequelize[_0x4249('0x4')]},'thirdDisposition':{'type':Sequelize[_0x4249('0x4')]},'note':{'type':Sequelize['STRING']},'phone':{'type':Sequelize['STRING']},'read1stAt':{'type':Sequelize[_0x4249('0x3')]},'firstMsgDirection':{'type':Sequelize['ENUM']('in',_0x4249('0x5')),'defaultValue':'in','allowNull':![]},'lastMsgAt':{'type':Sequelize[_0x4249('0x3')]},'lastMsgDirection':{'type':Sequelize[_0x4249('0x6')]('in','out'),'defaultValue':'in','allowNull':![]},'autoreplyExecuted':{'type':Sequelize[_0x4249('0x2')],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3ae9=['crypto','jsforce','desk.js','querystring','../../components/parsers/qs','../../components/parsers/advancedSearch','../../components/export/pdf','../../config/license/hardware','../../config/logger','api','../../config/license/util','../../mysqldb','redis','socket.io-emitter','register','sendStatus','status','json','offset','undefined','count','limit','set','Content-Range','reject','update','then','end','error','stack','name','Users','fullname','TagIds','split','forEach','Tags','push','index','WhatsappInteraction','rawAttributes','fieldName','type','key','model','map','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','select','field','from','tools_tags','u.fullname','ui.WhatsappInteractionId','left_join','users','u.id\x20=\x20ui.UserId','whatsapp_interactions','cm_contacts','o.id\x20=\x20i.UserId','whatsapp_accounts','me.WhatsappInteractionId\x20=\x20i.id','whatsapp_interaction_has_tags','it.WhatsappInteractionId\x20=\x20i.id','t.id\x20=\x20it.TagId','expr','search','parseSearch','sqlOperator','conditions','find','unreadMessages','having','`\x20=\x200','`\x20>\x200','Contact','$substring','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','value','c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?','ContactId','buildExpression','start','Tag','union','User','operator','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','text','body','some','isEmpty','WhatsappAccountId','i.WhatsappAccountId\x20IN\x20?','concat','$gte','parse','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20IS\x20NULL','read','`unreadMessages`\x20=\x200','tag','isArray','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','filter','replace','i.id\x20LIKE\x20?','i.phone\x20LIKE\x20?','getFullTextValue','CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?','group','i.id','QueryTypes','clone','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','contactName','t.id\x20IN\x20?','resolve','i.WhatsappAccountId\x20IS\x20NOT\x20NULL','role','user','getWhatsappAccounts','i.WhatsappAccountId\x20IS\x20NULL','agent','sequelize','toString','keyBy','merge','Account.key','Account.mandatoryDisposition','CASE\x20WHEN\x20(c.firstName\x20IS\x20NOT\x20NULL\x20AND\x20c.firstName\x20<>\x20\x27\x27)\x20OR\x20(c.lastName\x20IS\x20NOT\x20NULL\x20AND\x20c.lastName\x20<>\x20\x27\x27)\x20THEN\x20CONCAT(IFNULL(c.firstName,\x20\x27\x27),\x20\x27\x20\x27,\x20IFNULL(c.lastName,\x20\x27\x27))\x20ELSE\x20\x27Unknown\x27\x20END','i.*','c.firstName','c.lastName','Contact.lastName','c.email','Contact.email','Contact.phone','Contact.mobile','c.fax','Owner.fullname','o.internal','Owner.internal','ui.WhatsappInteractionId\x20IN\x20?','rows','catch','show','params','include','options','create','destroy','describe','addMessage','WhatsappMessage','omit','ids','getMessages','findOne','nolimit','WhatsappInteractionId','format','findAll','addTags','setTags','spread','color','emit','whatsappInteractionTags:save','removeTags','download','unix','join','root','server','files','tmp','attachments','transcript-%d-%s.zip','CmContact','firstName','lastName','Attachment','createdAt','direction','WhatsappAccount','Account','Owner','get','Whatsapp','N.A.','closedAt','disposition','basename','pipe','createWriteStream','YYYY-MM-DD\x20HH:mm:ss','System','out','secret','renderFile','views','transcript-','.pdf','createPdfFromHTML','log','err','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','to-csv','fs-extra','lodash','squel'];(function(_0x612a71,_0xb27d3f){var _0xb07bc1=function(_0x41b70b){while(--_0x41b70b){_0x612a71['push'](_0x612a71['shift']());}};_0xb07bc1(++_0xb27d3f);}(_0x3ae9,0xdb));var _0x93ae=function(_0x21a9d9,_0x4d5ac8){_0x21a9d9=_0x21a9d9-0x0;var _0x46adce=_0x3ae9[_0x21a9d9];return _0x46adce;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x93ae('0x0'));var jsonpatch=require(_0x93ae('0x1'));var rp=require(_0x93ae('0x2'));var moment=require('moment');var BPromise=require(_0x93ae('0x3'));var Mustache=require(_0x93ae('0x4'));var util=require(_0x93ae('0x5'));var path=require(_0x93ae('0x6'));var sox=require('sox');var csv=require(_0x93ae('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x93ae('0x8'));var _=require(_0x93ae('0x9'));var squel=require(_0x93ae('0xa'));var crypto=require(_0x93ae('0xb'));var jsforce=require(_0x93ae('0xc'));var deskjs=require(_0x93ae('0xd'));var toCsv=require('to-csv');var querystring=require(_0x93ae('0xe'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x93ae('0xf'));var as=require(_0x93ae('0x10'));var pdf=require(_0x93ae('0x11'));var hardwareService=require(_0x93ae('0x12'));var logger=require(_0x93ae('0x13'))(_0x93ae('0x14'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x93ae('0x15'));var db=require(_0x93ae('0x16'))['db'];config['redis']=_['defaults'](config[_0x93ae('0x17')],{'host':'localhost','port':0x18eb});var socket=require(_0x93ae('0x18'))(new Redis(config[_0x93ae('0x17')]));require('./whatsappInteraction.socket')[_0x93ae('0x19')](socket);function respondWithStatusCode(_0x7f8662,_0x3c38b9){_0x3c38b9=_0x3c38b9||0xcc;return function(_0x1f8aa2){if(_0x1f8aa2){return _0x7f8662[_0x93ae('0x1a')](_0x3c38b9);}return _0x7f8662[_0x93ae('0x1b')](_0x3c38b9)['end']();};}function respondWithResult(_0x11a9ce,_0x282094){_0x282094=_0x282094||0xc8;return function(_0x129e44){if(_0x129e44){return _0x11a9ce['status'](_0x282094)[_0x93ae('0x1c')](_0x129e44);}};}function respondWithFilteredResult(_0x514a0c,_0x54cfd0){return function(_0x1002b6){if(_0x1002b6){var _0x51c77d=typeof _0x54cfd0[_0x93ae('0x1d')]===_0x93ae('0x1e')&&typeof _0x54cfd0['limit']===_0x93ae('0x1e');var _0x31a8da=_0x1002b6[_0x93ae('0x1f')];var _0x586a0=_0x51c77d?0x0:_0x54cfd0['offset'];var _0x128913=_0x51c77d?_0x1002b6[_0x93ae('0x1f')]:_0x54cfd0['offset']+_0x54cfd0[_0x93ae('0x20')];var _0x28d6fa;if(_0x128913>=_0x31a8da){_0x128913=_0x31a8da;_0x28d6fa=0xc8;}else{_0x28d6fa=0xce;}_0x514a0c[_0x93ae('0x1b')](_0x28d6fa);return _0x514a0c[_0x93ae('0x21')](_0x93ae('0x22'),_0x586a0+'-'+_0x128913+'/'+_0x31a8da)[_0x93ae('0x1c')](_0x1002b6);}return null;};}function patchUpdates(_0xcdd84f){return function(_0x499b50){try{jsonpatch['apply'](_0x499b50,_0xcdd84f,!![]);}catch(_0xd33af5){return BPromise[_0x93ae('0x23')](_0xd33af5);}return _0x499b50['save']();};}function saveUpdates(_0x4d0c48,_0x18ffeb){return function(_0x367c0f){if(_0x367c0f){return _0x367c0f[_0x93ae('0x24')](_0x4d0c48)[_0x93ae('0x25')](function(_0x1abea7){return _0x1abea7;});}return null;};}function removeEntity(_0xe17086,_0x1970f4){return function(_0x32ddca){if(_0x32ddca){return _0x32ddca['destroy']()['then'](function(){_0xe17086['status'](0xcc)[_0x93ae('0x26')]();});}};}function handleEntityNotFound(_0x29e4e7,_0x2dada4){return function(_0xf7f15b){if(!_0xf7f15b){_0x29e4e7[_0x93ae('0x1a')](0x194);}return _0xf7f15b;};}function handleError(_0x17fab9,_0x520d6d){_0x520d6d=_0x520d6d||0x1f4;return function(_0x54a37b){logger[_0x93ae('0x27')](_0x54a37b[_0x93ae('0x28')]);if(_0x54a37b[_0x93ae('0x29')]){delete _0x54a37b[_0x93ae('0x29')];}_0x17fab9['status'](_0x520d6d)['send'](_0x54a37b);};}function getInteractionUsers(_0x554318,_0x19aaaa){return new BPromise(function(_0x512d8f,_0x4436f3){try{if(_0x19aaaa[_0x554318['id']]){_0x554318[_0x93ae('0x2a')]=_['map'](_0x19aaaa[_0x554318['id']],function(_0x4369c2){return{'id':_0x4369c2['id'],'fullname':_0x4369c2[_0x93ae('0x2b')]};});}}catch(_0x11359d){_0x4436f3(_0x11359d);}_0x512d8f(_0x554318);});}function getInteractionTags(_0x369ac2,_0x346719){return new BPromise(function(_0x153385,_0x43fe58){try{if(_0x369ac2[_0x93ae('0x2c')]){_0x369ac2['Tags']=[];_0x369ac2[_0x93ae('0x2c')][_0x93ae('0x2d')](',')[_0x93ae('0x2e')](function(_0x1a8344){_0x369ac2[_0x93ae('0x2f')][_0x93ae('0x30')](_0x346719[_0x1a8344]);});}delete _0x369ac2[_0x93ae('0x2c')];}catch(_0x19773f){_0x43fe58(_0x19773f);}_0x153385(_0x369ac2);});}function updateWhatsappInteraction(_0x53be22,_0x1a72d3,_0x47ae45){return new BPromise(function(_0x3daec6,_0x116330){return getInteractionUsers(_0x53be22,_0x47ae45)[_0x93ae('0x25')](function(_0x4022f2){return getInteractionTags(_0x4022f2,_0x1a72d3);})[_0x93ae('0x25')](function(_0x46ade5){_0x3daec6(_0x46ade5);})['catch'](function(_0x1b9777){_0x116330(_0x1b9777);});});}exports[_0x93ae('0x31')]=function(_0x2aa4ae,_0x4fab04){var _0x4161f2={},_0x88d255={},_0x15e6af={'count':0x0,'rows':[]};var _0x4d4712=_['map'](db[_0x93ae('0x32')][_0x93ae('0x33')],function(_0x31e9b0){return{'name':_0x31e9b0[_0x93ae('0x34')],'type':_0x31e9b0[_0x93ae('0x35')][_0x93ae('0x36')]};});_0x88d255[_0x93ae('0x37')]=_[_0x93ae('0x38')](_0x4d4712,_0x93ae('0x29'));_0x88d255[_0x93ae('0x39')]=_[_0x93ae('0x3a')](_0x2aa4ae[_0x93ae('0x39')]);_0x88d255[_0x93ae('0x3b')]=_[_0x93ae('0x3c')](_0x88d255['model'],_0x88d255[_0x93ae('0x39')]);_0x4161f2[_0x93ae('0x3d')]=_['intersection'](_0x88d255[_0x93ae('0x37')],qs['fields'](_0x2aa4ae['query'][_0x93ae('0x3e')]));_0x4161f2['attributes']=_0x4161f2[_0x93ae('0x3d')][_0x93ae('0x3f')]?_0x4161f2[_0x93ae('0x3d')]:_0x88d255[_0x93ae('0x37')];if(!_0x2aa4ae[_0x93ae('0x39')][_0x93ae('0x40')]('nolimit')){_0x4161f2[_0x93ae('0x20')]=qs[_0x93ae('0x20')](_0x2aa4ae[_0x93ae('0x39')][_0x93ae('0x20')]);_0x4161f2[_0x93ae('0x1d')]=qs[_0x93ae('0x1d')](_0x2aa4ae[_0x93ae('0x39')][_0x93ae('0x1d')]);}_0x4161f2[_0x93ae('0x41')]=qs[_0x93ae('0x42')](_0x2aa4ae[_0x93ae('0x39')]['sort']);_0x4161f2[_0x93ae('0x43')]=qs[_0x93ae('0x3b')](_['pick'](_0x2aa4ae['query'],_0x88d255[_0x93ae('0x3b')]),_0x4d4712);var _0x2b04d6=[];var _0x1cbc76=squel[_0x93ae('0x44')]()[_0x93ae('0x45')]('id')[_0x93ae('0x45')](_0x93ae('0x29'))[_0x93ae('0x45')]('color')[_0x93ae('0x46')](_0x93ae('0x47'));var _0x3701b4=squel[_0x93ae('0x44')]()[_0x93ae('0x45')]('u.id')['field'](_0x93ae('0x48'))['field'](_0x93ae('0x49'))['from']('user_has_whatsapp_interactions','ui')[_0x93ae('0x4a')](_0x93ae('0x4b'),'u',_0x93ae('0x4c'));var _0x33a1df=squel[_0x93ae('0x44')]()[_0x93ae('0x46')](_0x93ae('0x4d'),'i')['left_join'](_0x93ae('0x4e'),'c','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL')['left_join'](_0x93ae('0x4b'),'o',_0x93ae('0x4f'))[_0x93ae('0x4a')](_0x93ae('0x50'),'a','a.id\x20=\x20i.WhatsappAccountId')[_0x93ae('0x4a')]('whatsapp_messages','me',_0x93ae('0x51'))[_0x93ae('0x4a')](_0x93ae('0x52'),'it',_0x93ae('0x53'))[_0x93ae('0x4a')](_0x93ae('0x47'),'t',_0x93ae('0x54'));var _0x411ec6=squel[_0x93ae('0x55')]();var _0x5065ed=[];var _0x47d3c3=squel['expr']();var _0x4ddece;if(_0x2aa4ae['query'][_0x93ae('0x56')]){_0x4ddece=as[_0x93ae('0x57')](_0x2aa4ae[_0x93ae('0x39')][_0x93ae('0x56')]);var _0x490bea=_0x4ddece[_0x93ae('0x58')];for(var _0x487f79=0x0;_0x487f79<_0x4ddece[_0x93ae('0x59')][_0x93ae('0x3f')];_0x487f79++){var _0x3553d3=_0x4ddece[_0x93ae('0x59')][_0x487f79];var _0x4732bd='i';var _0xd4479a=_[_0x93ae('0x5a')](_0x4d4712,[_0x93ae('0x29'),_0x3553d3[_0x93ae('0x45')]]);if(!_0xd4479a){switch(_0x3553d3['field']){case _0x93ae('0x5b'):if(_0x3553d3['value']==0x1){_0x33a1df[_0x93ae('0x5c')]('`'+_0x3553d3[_0x93ae('0x45')]+_0x93ae('0x5d'));}else{_0x33a1df[_0x93ae('0x5c')]('`'+_0x3553d3[_0x93ae('0x45')]+_0x93ae('0x5e'));}break;case _0x93ae('0x5f'):if(_0x3553d3['operator']===_0x93ae('0x60')){if(_0x3553d3['value']['split']('\x20')[_0x93ae('0x3f')]>0x1){_0x411ec6[_0x490bea](_0x93ae('0x61'),qs['getFullTextValue'](_0x3553d3[_0x93ae('0x62')]),null);}else{var _0x7fac87='%'+_0x3553d3[_0x93ae('0x62')]+'%';_0x411ec6[_0x490bea](_0x93ae('0x63'),_0x7fac87,_0x7fac87,_0x7fac87);}}else{_0xd4479a=_[_0x93ae('0x5a')](_0x4d4712,[_0x93ae('0x29'),_0x93ae('0x64')]);_0x3553d3[_0x93ae('0x45')]=_0x93ae('0x64');_0x33b178=as[_0x93ae('0x65')](_0x4732bd,_0xd4479a[_0x93ae('0x35')],_0x3553d3);_0x411ec6[_0x490bea](_0x33b178['text'],_0x33b178[_0x93ae('0x62')][_0x93ae('0x66')],_0x33b178[_0x93ae('0x62')][_0x93ae('0x26')]);}break;case _0x93ae('0x67'):var _0x1ffa1e=_0x3553d3['value'][_0x93ae('0x2d')](',')[_0x93ae('0x38')](function(_0x1da97c){return Number(_0x1da97c);});_0x1ffa1e[_0x93ae('0x2e')](function(_0x34533c){_0x47d3c3['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x34533c+',%');});_0x5065ed=_[_0x93ae('0x68')](_0x5065ed,_0x1ffa1e);break;case _0x93ae('0x69'):if(_0x3553d3[_0x93ae('0x6a')]==='$substring'){_0x411ec6[_0x490bea](_0x93ae('0x6b'),'%'+_0x3553d3[_0x93ae('0x62')]+'%',null);}else{_0xd4479a=_['find'](_0x4d4712,[_0x93ae('0x29'),_0x93ae('0x6c')]);_0x3553d3[_0x93ae('0x45')]=_0x93ae('0x6c');_0x33b178=as[_0x93ae('0x65')](_0x4732bd,_0xd4479a[_0x93ae('0x35')],_0x3553d3);_0x411ec6[_0x490bea](_0x33b178[_0x93ae('0x6d')],_0x33b178['value'][_0x93ae('0x66')],_0x33b178['value']['end']);}break;case _0x93ae('0x6e'):_0x33b178=as[_0x93ae('0x65')]('me',null,_0x3553d3);_0x411ec6[_0x490bea](_0x33b178['text'],_0x33b178[_0x93ae('0x62')][_0x93ae('0x66')],_0x33b178[_0x93ae('0x62')][_0x93ae('0x26')]);break;}}else{var _0x33b178=as[_0x93ae('0x65')](_0x4732bd,_0xd4479a[_0x93ae('0x35')],_0x3553d3);_0x411ec6[_0x490bea](_0x33b178[_0x93ae('0x6d')],_0x33b178[_0x93ae('0x62')]['start'],_0x33b178['value'][_0x93ae('0x26')]);}}}else{var _0xb656c9=_(_0x2aa4ae[_0x93ae('0x39')])[_0x93ae('0x3a')]()[_0x93ae('0x38')](function(_0x20f2af){return _[_0x93ae('0x6f')](_0x4d4712,['name',_0x20f2af])?_0x20f2af:undefined;})['compact']()[_0x93ae('0x62')]();if(!_[_0x93ae('0x70')](_0xb656c9)){_0xb656c9[_0x93ae('0x2e')](function(_0x3dd412){if(_0x3dd412===_0x93ae('0x71')){_0x33a1df[_0x93ae('0x43')](_0x93ae('0x72'),[][_0x93ae('0x73')](_0x2aa4ae[_0x93ae('0x39')][_0x3dd412]));}else if(_0x3dd412==='createdAt'){var _0x30ed4a=JSON['parse'](_0x2aa4ae['query'][_0x3dd412])[_0x93ae('0x74')];var _0x16e00c=JSON[_0x93ae('0x75')](_0x2aa4ae[_0x93ae('0x39')][_0x3dd412])[_0x93ae('0x76')];_0x33a1df[_0x93ae('0x43')](_0x93ae('0x77'),_0x30ed4a,_0x16e00c);}else{if(_0x2aa4ae[_0x93ae('0x39')][_0x3dd412]===_0x93ae('0x78')){_0x33a1df[_0x93ae('0x43')]('i.'+_0x3dd412+_0x93ae('0x79'));}else{_0x33a1df[_0x93ae('0x43')]('i.'+_0x3dd412+'\x20=\x20?',_0x2aa4ae['query'][_0x3dd412]);}}});}if(_0x2aa4ae[_0x93ae('0x39')][_0x93ae('0x7a')]){if(_0x2aa4ae[_0x93ae('0x39')]['read']==0x1){_0x33a1df[_0x93ae('0x5c')](_0x93ae('0x7b'));}else{_0x33a1df[_0x93ae('0x5c')]('`unreadMessages`\x20>\x200');}}if(_0x2aa4ae[_0x93ae('0x39')][_0x93ae('0x7c')]){_0x5065ed=_[_0x93ae('0x7d')](_0x2aa4ae[_0x93ae('0x39')][_0x93ae('0x7c')])?_0x2aa4ae['query'][_0x93ae('0x7c')]:new Array(_0x2aa4ae[_0x93ae('0x39')][_0x93ae('0x7c')]);_0x5065ed['forEach'](function(_0x1dd8c9){_0x47d3c3['or'](_0x93ae('0x7e'),'%,'+_0x1dd8c9+',%');});}if(_0x2aa4ae['query'][_0x93ae('0x7f')]){var _0x239921=_0x2aa4ae[_0x93ae('0x39')][_0x93ae('0x7f')]['replace']('\x5c','\x5c\x5c')[_0x93ae('0x80')](/'/g,'\x27\x27');if(qs['isNumeric'](_0x239921)){_0x411ec6['or'](_0x93ae('0x81'),_0x239921+'%')['or'](_0x93ae('0x82'),_0x239921+'%');}else{_0x411ec6['or']('MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs[_0x93ae('0x83')](_0x239921))['or'](_0x93ae('0x84'),_0x239921+'%');}}}_0x33a1df['where'](_0x411ec6);_0x33a1df[_0x93ae('0x85')](_0x93ae('0x86'));var _0x3aedf4={'type':db['Sequelize'][_0x93ae('0x87')]['SELECT'],'raw':!![]};var _0x5a2b22=_0x33a1df[_0x93ae('0x88')]();_0x5a2b22['field'](_0x93ae('0x86'));_0x5a2b22[_0x93ae('0x45')](_0x93ae('0x89'),_0x93ae('0x5b'));if(_0x4161f2[_0x93ae('0x41')]){_0x4161f2[_0x93ae('0x41')][_0x93ae('0x2e')](function(_0x410098){var _0x69f8e6=_0x410098[0x0]===_0x93ae('0x8a')?_0x410098[0x0]:'i.'+_0x410098[0x0];_0x33a1df['order'](_0x69f8e6,_0x410098[0x1]==='DESC'?![]:!![]);});}if(!_[_0x93ae('0x70')](_0x5065ed)){_0x33a1df[_0x93ae('0x5c')](_0x47d3c3);_0x5a2b22[_0x93ae('0x43')](_0x93ae('0x8b'),_0x5065ed);}BPromise[_0x93ae('0x8c')]()['then'](function(){if(!_0x4ddece){if(_0x2aa4ae[_0x93ae('0x39')][_0x93ae('0x71')])return;_0x5a2b22[_0x93ae('0x43')](_0x93ae('0x8d'));_0x33a1df['where']('i.WhatsappAccountId\x20IS\x20NOT\x20NULL');return;}if(_0x2aa4ae['user'][_0x93ae('0x8e')]!=='agent')return;return _0x2aa4ae[_0x93ae('0x8f')][_0x93ae('0x90')]({'attributes':['id'],'raw':!![]})['then'](function(_0x1ff4c4){if(_[_0x93ae('0x70')](_0x1ff4c4)){_0x5a2b22[_0x93ae('0x43')](_0x93ae('0x91'));_0x33a1df[_0x93ae('0x43')](_0x93ae('0x91'));}else{_0x5a2b22[_0x93ae('0x43')](_0x93ae('0x72'),_[_0x93ae('0x38')](_0x1ff4c4,'id'));_0x33a1df[_0x93ae('0x43')](_0x93ae('0x72'),_[_0x93ae('0x38')](_0x1ff4c4,'id'));}});})['then'](function(){if(_0x2aa4ae[_0x93ae('0x8f')][_0x93ae('0x8e')]===_0x93ae('0x92')&&!_0x4ddece&&!_0x2aa4ae[_0x93ae('0x39')][_0x93ae('0x71')])return[];return db['sequelize'][_0x93ae('0x39')](_0x5a2b22['toString'](),_0x3aedf4);})[_0x93ae('0x25')](function(_0x45409d){_0x15e6af[_0x93ae('0x1f')]=_0x45409d[_0x93ae('0x3f')];if(_0x15e6af['count']===0x0)return[];return db[_0x93ae('0x93')]['query'](_0x1cbc76[_0x93ae('0x94')](),_0x3aedf4)[_0x93ae('0x25')](function(_0x3aa582){_0x2b04d6=_[_0x93ae('0x95')](_0x3aa582,'id');_0x3aedf4=_[_0x93ae('0x96')](_0x3aedf4,{'model':db[_0x93ae('0x32')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x2aa4ae['query'][_0x93ae('0x3e')]){_0x4161f2[_0x93ae('0x3d')][_0x93ae('0x2e')](function(_0x4e9515){_0x33a1df[_0x93ae('0x45')]('i.'+_0x4e9515);});}else{_0x33a1df[_0x93ae('0x45')](_0x93ae('0x89'),'unreadMessages');_0x33a1df[_0x93ae('0x45')]('a.key',_0x93ae('0x97'));_0x33a1df[_0x93ae('0x45')]('a.mandatoryDisposition',_0x93ae('0x98'));_0x33a1df[_0x93ae('0x45')](_0x93ae('0x99'),_0x93ae('0x8a'));_0x33a1df['field'](_0x93ae('0x9a'));_0x33a1df[_0x93ae('0x45')](_0x93ae('0x9b'),'Contact.firstName');_0x33a1df[_0x93ae('0x45')](_0x93ae('0x9c'),_0x93ae('0x9d'));_0x33a1df[_0x93ae('0x45')](_0x93ae('0x9e'),_0x93ae('0x9f'));_0x33a1df[_0x93ae('0x45')]('c.phone',_0x93ae('0xa0'));_0x33a1df[_0x93ae('0x45')]('c.mobile',_0x93ae('0xa1'));_0x33a1df[_0x93ae('0x45')](_0x93ae('0xa2'),'Contact.fax');_0x33a1df[_0x93ae('0x45')]('o.fullname',_0x93ae('0xa3'));_0x33a1df[_0x93ae('0x45')](_0x93ae('0xa4'),_0x93ae('0xa5'));_0x33a1df[_0x93ae('0x45')]('GROUP_CONCAT(DISTINCT\x20t.id)','TagIds');}if(_0x4161f2[_0x93ae('0x20')])_0x33a1df[_0x93ae('0x20')](_0x4161f2[_0x93ae('0x20')]);if(_0x4161f2[_0x93ae('0x1d')])_0x33a1df['offset'](_0x4161f2[_0x93ae('0x1d')]);return db[_0x93ae('0x93')][_0x93ae('0x39')](_0x33a1df['toString'](),_0x3aedf4);})['then'](function(_0x5627cb){if(_0x5627cb['length']>0x0)_0x3701b4[_0x93ae('0x43')](_0x93ae('0xa6'),_[_0x93ae('0x38')](_0x5627cb,'id'));return db['sequelize'][_0x93ae('0x39')](_0x3701b4['toString'](),_0x3aedf4)[_0x93ae('0x25')](function(_0x2ce90d){var _0x1e20c8=_['groupBy'](_0x2ce90d,'WhatsappInteractionId');var _0x54baa9=[];_0x5627cb['forEach'](function(_0x6e3646){_0x54baa9['push'](updateWhatsappInteraction(_0x6e3646,_0x2b04d6,_0x1e20c8));});return BPromise['all'](_0x54baa9);});});})[_0x93ae('0x25')](function(_0x4aa03e){_0x15e6af[_0x93ae('0xa7')]=_0x4aa03e;return _0x15e6af;})['then'](respondWithFilteredResult(_0x4fab04,_0x4161f2))[_0x93ae('0xa8')](handleError(_0x4fab04,null));};exports[_0x93ae('0xa9')]=function(_0x3c99f2,_0x42d0a5){var _0x48dc1d={'raw':![],'where':{'id':_0x3c99f2[_0x93ae('0xaa')]['id']}},_0x2467d3={};_0x2467d3[_0x93ae('0x37')]=_['keys'](db['WhatsappInteraction']['rawAttributes']);_0x2467d3[_0x93ae('0x39')]=_['keys'](_0x3c99f2[_0x93ae('0x39')]);_0x2467d3[_0x93ae('0x3b')]=_[_0x93ae('0x3c')](_0x2467d3[_0x93ae('0x37')],_0x2467d3[_0x93ae('0x39')]);_0x48dc1d[_0x93ae('0x3d')]=_[_0x93ae('0x3c')](_0x2467d3[_0x93ae('0x37')],qs[_0x93ae('0x3e')](_0x3c99f2[_0x93ae('0x39')][_0x93ae('0x3e')]));_0x48dc1d[_0x93ae('0x3d')]=_0x48dc1d[_0x93ae('0x3d')][_0x93ae('0x3f')]?_0x48dc1d['attributes']:_0x2467d3[_0x93ae('0x37')];if(_0x3c99f2['query']['includeAll']){_0x48dc1d[_0x93ae('0xab')]=[{'all':!![]}];}_0x48dc1d=_[_0x93ae('0x96')]({},_0x48dc1d,_0x3c99f2[_0x93ae('0xac')]);return db[_0x93ae('0x32')][_0x93ae('0x5a')](_0x48dc1d)[_0x93ae('0x25')](handleEntityNotFound(_0x42d0a5,null))[_0x93ae('0x25')](respondWithResult(_0x42d0a5,null))[_0x93ae('0xa8')](handleError(_0x42d0a5,null));};exports[_0x93ae('0xad')]=function(_0x2d554a,_0x532f09){return db[_0x93ae('0x32')][_0x93ae('0xad')](_0x2d554a[_0x93ae('0x6e')],{})[_0x93ae('0x25')](respondWithResult(_0x532f09,0xc9))[_0x93ae('0xa8')](handleError(_0x532f09,null));};exports[_0x93ae('0x24')]=function(_0x3de96e,_0x35cf0d){if(_0x3de96e[_0x93ae('0x6e')]['id']){delete _0x3de96e['body']['id'];}return db['WhatsappInteraction'][_0x93ae('0x5a')]({'where':{'id':_0x3de96e['params']['id']}})['then'](handleEntityNotFound(_0x35cf0d,null))[_0x93ae('0x25')](saveUpdates(_0x3de96e[_0x93ae('0x6e')],null))[_0x93ae('0x25')](respondWithResult(_0x35cf0d,null))[_0x93ae('0xa8')](handleError(_0x35cf0d,null));};exports[_0x93ae('0xae')]=function(_0x582e6b,_0x3e7fe0){return db[_0x93ae('0x32')]['find']({'where':{'id':_0x582e6b[_0x93ae('0xaa')]['id']}})[_0x93ae('0x25')](handleEntityNotFound(_0x3e7fe0,null))[_0x93ae('0x25')](removeEntity(_0x3e7fe0,null))[_0x93ae('0xa8')](handleError(_0x3e7fe0,null));};exports[_0x93ae('0xaf')]=function(_0x21745c,_0x129443){return db['WhatsappInteraction']['describe']()[_0x93ae('0x25')](respondWithResult(_0x129443,null))[_0x93ae('0xa8')](handleError(_0x129443,null));};exports[_0x93ae('0xb0')]=function(_0xddf094,_0x3a2e03,_0x2cd07e){return db[_0x93ae('0xb1')][_0x93ae('0x5a')]({'where':{'id':_0xddf094[_0x93ae('0xaa')]['id']}})[_0x93ae('0x25')](handleEntityNotFound(_0x3a2e03,null))[_0x93ae('0x25')](function(_0x19bafd){if(_0x19bafd){return _0x19bafd[_0x93ae('0xb0')](_0xddf094[_0x93ae('0x6e')]['ids'],_[_0x93ae('0xb2')](_0xddf094[_0x93ae('0x6e')],[_0x93ae('0xb3'),'id'])||{});}})[_0x93ae('0x25')](respondWithResult(_0x3a2e03,null))[_0x93ae('0xa8')](handleError(_0x3a2e03,null));};exports[_0x93ae('0xb4')]=function(_0x22620a,_0x4c0110,_0x5937b4){var _0x47217d={'raw':![],'where':{}};var _0x21e113={};var _0x1b6e59={'count':0x0,'rows':[]};return db[_0x93ae('0x32')][_0x93ae('0xb5')]({'where':{'id':_0x22620a[_0x93ae('0xaa')]['id']}})['then'](handleEntityNotFound(_0x4c0110,null))['then'](function(_0x4c8420){if(_0x4c8420){_0x21e113[_0x93ae('0x37')]=_[_0x93ae('0x3a')](db[_0x93ae('0xb1')][_0x93ae('0x33')]);_0x21e113['query']=_[_0x93ae('0x3a')](_0x22620a['query']);_0x21e113['filters']=_[_0x93ae('0x3c')](_0x21e113[_0x93ae('0x37')],_0x21e113[_0x93ae('0x39')]);_0x47217d['attributes']=_['intersection'](_0x21e113[_0x93ae('0x37')],qs['fields'](_0x22620a[_0x93ae('0x39')][_0x93ae('0x3e')]));_0x47217d[_0x93ae('0x3d')]=_0x47217d[_0x93ae('0x3d')][_0x93ae('0x3f')]?_0x47217d[_0x93ae('0x3d')]:_0x21e113['model'];if(!_0x22620a[_0x93ae('0x39')][_0x93ae('0x40')](_0x93ae('0xb6'))){_0x47217d[_0x93ae('0x20')]=qs[_0x93ae('0x20')](_0x22620a[_0x93ae('0x39')][_0x93ae('0x20')]);_0x47217d[_0x93ae('0x1d')]=qs['offset'](_0x22620a['query'][_0x93ae('0x1d')]);}_0x47217d[_0x93ae('0x41')]=qs[_0x93ae('0x42')](_0x22620a[_0x93ae('0x39')]['sort']);_0x47217d[_0x93ae('0x43')]=qs[_0x93ae('0x3b')](_['pick'](_0x22620a[_0x93ae('0x39')],_0x21e113[_0x93ae('0x3b')]));_0x47217d[_0x93ae('0x43')][_0x93ae('0xb7')]=_0x4c8420['id'];if(_0x22620a[_0x93ae('0x39')][_0x93ae('0x7f')]){_0x47217d[_0x93ae('0x43')]=_[_0x93ae('0x96')](_0x47217d[_0x93ae('0x43')],{'$or':_[_0x93ae('0x38')](_0x47217d[_0x93ae('0x3d')],function(_0x5cbd88){var _0x303df={};_0x303df[_0x5cbd88]={'$like':'%'+_0x22620a[_0x93ae('0x39')][_0x93ae('0x7f')]+'%'};return _0x303df;})});}if(_0x22620a['query'][_0x93ae('0x74')]){var _0x4c5930=_0x22620a['query'][_0x93ae('0x74')][_0x93ae('0x2d')](',');var _0x4509c1={};_0x4509c1[_0x4c5930[0x0]]={'$gte':moment(_0x4c5930[0x1])[_0x93ae('0xb8')]('YYYY-MM-DD\x20HH:mm:ss')};_0x47217d[_0x93ae('0x43')]=_[_0x93ae('0x96')](_0x47217d[_0x93ae('0x43')],_0x4509c1);}_0x47217d=_[_0x93ae('0x96')]({},_0x47217d,_0x22620a[_0x93ae('0xac')]);return db[_0x93ae('0xb1')][_0x93ae('0x1f')]({'where':_0x47217d[_0x93ae('0x43')]})[_0x93ae('0x25')](function(_0x2f26e2){_0x1b6e59[_0x93ae('0x1f')]=_0x2f26e2;if(_0x22620a[_0x93ae('0x39')]['includeAll']){_0x47217d[_0x93ae('0xab')]=[{'all':!![]}];}return db[_0x93ae('0xb1')][_0x93ae('0xb9')](_0x47217d);})[_0x93ae('0x25')](function(_0x42fda0){_0x1b6e59['rows']=_0x42fda0;return _0x1b6e59;});}})[_0x93ae('0x25')](respondWithFilteredResult(_0x4c0110,_0x47217d))['catch'](handleError(_0x4c0110,null));};exports[_0x93ae('0xba')]=function(_0x20e3ff,_0x31028c,_0x108177){return db[_0x93ae('0x32')][_0x93ae('0x5a')]({'where':{'id':_0x20e3ff[_0x93ae('0xaa')]['id']}})[_0x93ae('0x25')](handleEntityNotFound(_0x31028c,null))['then'](function(_0xe1b543){if(_0xe1b543){return _0xe1b543[_0x93ae('0xbb')](_0x20e3ff[_0x93ae('0x6e')][_0x93ae('0xb3')],_[_0x93ae('0xb2')](_0x20e3ff['body'],[_0x93ae('0xb3'),'id'])||{})[_0x93ae('0xbc')](function(){return db['Tag'][_0x93ae('0xb9')]({'attributes':['id',_0x93ae('0x29'),_0x93ae('0xbd')],'where':{'id':_0x20e3ff[_0x93ae('0x6e')][_0x93ae('0xb3')]}});})[_0x93ae('0x25')](function(_0x2a5c67){socket[_0x93ae('0xbe')](_0x93ae('0xbf'),{'id':Number(_0x20e3ff[_0x93ae('0xaa')]['id']),'tags':_0x2a5c67||[]});return{'id':Number(_0x20e3ff['params']['id']),'tags':_0x2a5c67||[]};});}})[_0x93ae('0x25')](respondWithResult(_0x31028c,null))[_0x93ae('0xa8')](handleError(_0x31028c,null));};exports[_0x93ae('0xc0')]=function(_0x2d3263,_0x28d79c,_0x950042){return db[_0x93ae('0x32')][_0x93ae('0x5a')]({'where':{'id':_0x2d3263[_0x93ae('0xaa')]['id']}})['then'](handleEntityNotFound(_0x28d79c,null))['then'](function(_0x3364b6){if(_0x3364b6){return _0x3364b6[_0x93ae('0xc0')](_0x2d3263['query'][_0x93ae('0xb3')]);}})['then'](respondWithStatusCode(_0x28d79c,null))[_0x93ae('0xa8')](handleError(_0x28d79c,null));};exports[_0x93ae('0xc1')]=function(_0x96a456,_0x399a9b){var _0x4cca7e=moment()[_0x93ae('0xc2')]()['toString']();var _0x216eab=path[_0x93ae('0xc3')](config[_0x93ae('0xc4')],_0x93ae('0xc5'),_0x93ae('0xc6'),_0x93ae('0xc7'));var _0x2911db=path['join'](config['root'],'server','files',_0x93ae('0xc8'));var _0x2cb700=path['join'](_0x216eab,_0x4cca7e);var _0x4b761c=util['format'](_0x93ae('0xc9'),_0x96a456[_0x93ae('0xaa')]['id'],_0x4cca7e);var _0x52c92a=path[_0x93ae('0xc3')](_0x216eab,_0x4b761c);var _0x1c6d96=[];_0x1c6d96[_0x93ae('0x30')]({'model':db[_0x93ae('0x69')],'as':_0x93ae('0x69'),'attributes':['id','fullname'],'raw':!![]});_0x1c6d96[_0x93ae('0x30')]({'model':db[_0x93ae('0xca')],'as':_0x93ae('0x5f'),'attributes':['id',_0x93ae('0xcb'),_0x93ae('0xcc')],'raw':!![]});if(_0x96a456['query'][_0x93ae('0xc8')]){_0x1c6d96[_0x93ae('0x30')]({'model':db[_0x93ae('0xcd')],'as':_0x93ae('0xcd'),'raw':!![]});}var _0x5062d7=[{'model':db[_0x93ae('0xb1')],'as':'Messages','attributes':['id',_0x93ae('0x6e'),_0x93ae('0xce'),_0x93ae('0xcf'),'secret',_0x93ae('0x7a')],'include':_0x1c6d96}];_0x5062d7['push']({'model':db[_0x93ae('0xd0')],'as':_0x93ae('0xd1'),'attributes':['id','name']});_0x5062d7['push']({'model':db['User'],'as':_0x93ae('0xd2'),'attributes':['id',_0x93ae('0x2b')]});return db[_0x93ae('0x32')][_0x93ae('0x5a')]({'where':{'id':_0x96a456[_0x93ae('0xaa')]['id']},'include':_0x5062d7})[_0x93ae('0x25')](handleEntityNotFound(_0x399a9b,null))[_0x93ae('0x25')](function(_0x491ff1){if(_0x491ff1){var _0x580cf4=_0x491ff1[_0x93ae('0xd3')]({'plain':!![]});fs['mkdirSync'](_0x2cb700);var _0x586d79={'channel':_0x93ae('0xd4'),'account':_0x580cf4[_0x93ae('0xd1')][_0x93ae('0x29')],'agent':_0x580cf4['Owner']?_0x580cf4[_0x93ae('0xd2')][_0x93ae('0x2b')]:_0x93ae('0xd5'),'createdAt':moment(_0x580cf4[_0x93ae('0xce')])[_0x93ae('0xb8')]('YYYY-MM-DD\x20HH:mm:ss')[_0x93ae('0x94')](),'closedAt':_0x580cf4['closed']?moment(_0x580cf4[_0x93ae('0xd6')])[_0x93ae('0xb8')]('YYYY-MM-DD\x20HH:mm:ss')[_0x93ae('0x94')]():'','disposition':_0x580cf4[_0x93ae('0xd7')],'messages':_(_0x580cf4['Messages'])[_0x93ae('0x7f')]({'secret':![]})[_0x93ae('0x38')](function(_0x54a9df){if(_0x54a9df['Attachment']){var _0x1f19d6=path[_0x93ae('0xc3')](_0x2911db,_0x54a9df[_0x93ae('0xcd')][_0x93ae('0xd8')]);if(fs['existsSync'](_0x1f19d6)){fs['createReadStream'](_0x1f19d6)[_0x93ae('0xd9')](fs[_0x93ae('0xda')](path[_0x93ae('0xc3')](_0x2cb700,_0x54a9df[_0x93ae('0xcd')][_0x93ae('0xd8')])));}}return{'date':moment(_0x54a9df['createdAt'])['format'](_0x93ae('0xdb'))[_0x93ae('0x94')](),'sender':_0x54a9df[_0x93ae('0xcf')]==='out'?_0x54a9df[_0x93ae('0x69')]?_0x54a9df[_0x93ae('0x69')][_0x93ae('0x2b')]:_0x93ae('0xdc'):_0x54a9df[_0x93ae('0x5f')][_0x93ae('0xcb')]+(_0x54a9df[_0x93ae('0x5f')]['lastName']?'\x20'+_0x54a9df[_0x93ae('0x5f')][_0x93ae('0xcc')]:''),'body':_0x54a9df[_0x93ae('0xcd')]?_0x54a9df[_0x93ae('0xcd')]['basename']:_0x54a9df['body'],'direction':_0x54a9df['direction']===_0x93ae('0xdd')?'A':'C','secret':_0x54a9df[_0x93ae('0xde')],'read':_0x54a9df[_0x93ae('0x7a')],'attachment':_0x54a9df[_0x93ae('0xcd')]};})[_0x93ae('0x62')]()};return ejs[_0x93ae('0xdf')](path[_0x93ae('0xc3')](config[_0x93ae('0xc4')],_0x93ae('0xc5'),_0x93ae('0xe0'),'downloadInteraction.ejs'),{'interaction':_0x586d79})[_0x93ae('0x25')](function(_0x47416c){var _0x350cdc=path['join'](_0x2cb700,_0x93ae('0xe1')+_0x580cf4['id']+'-'+_0x4cca7e+_0x93ae('0xe2'));var _0x30a8d9={'path':_0x350cdc,'channel':'Whatsapp','interactionId':_0x580cf4['id']};return pdf[_0x93ae('0xe3')](_0x47416c,_0x30a8d9);})[_0x93ae('0x25')](function(){return new BPromise(function(_0x1e6c0f,_0x33a885){zipdir(_0x2cb700,{'saveTo':_0x52c92a},function(_0x5763cf,_0x323ae7){if(_0x5763cf)return _0x33a885(_0x5763cf);return _0x1e6c0f(_0x323ae7);});})[_0x93ae('0x25')](function(){return new BPromise(function(_0x29b32f,_0x36a21f){rimraf(_0x2cb700,function(_0x5b1c67){if(_0x5b1c67)_0x36a21f(_0x5b1c67);return _0x29b32f();});});})[_0x93ae('0x25')](function(){return _0x399a9b[_0x93ae('0xc1')](_0x52c92a,_0x4b761c,function(_0x43efbd){if(_0x43efbd){console[_0x93ae('0xe4')](_0x93ae('0xe5'),_0x43efbd);}else{fs['unlinkSync'](_0x52c92a);}});});});}else{return _0x399a9b[_0x93ae('0x1a')](0xc8);}})[_0x93ae('0xa8')](handleError(_0x399a9b,null));};
\ No newline at end of file
+var _0xb647=['jsforce','desk.js','papaparse','../../components/auth/service','../../components/export/pdf','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','./whatsappInteraction.socket','register','sendStatus','status','json','offset','undefined','count','limit','Content-Range','apply','reject','save','update','then','destroy','error','name','send','Users','fullname','TagIds','forEach','Tags','catch','index','rawAttributes','fieldName','type','key','model','map','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','select','field','from','tools_tags','ui.WhatsappInteractionId','user_has_whatsapp_interactions','left_join','users','u.id\x20=\x20ui.UserId','whatsapp_interactions','cm_contacts','o.id\x20=\x20i.UserId','whatsapp_accounts','a.id\x20=\x20i.WhatsappAccountId','whatsapp_messages','me.WhatsappInteractionId\x20=\x20i.id','it.WhatsappInteractionId\x20=\x20i.id','t.id\x20=\x20it.TagId','parseSearch','search','sqlOperator','conditions','find','unreadMessages','value','having','`\x20>\x200','$substring','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?','ContactId','buildExpression','text','start','end','Tag','union','User','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','body','some','compact','isEmpty','concat','createdAt','parse','$gte','$lte','null','\x20IS\x20NULL','`unreadMessages`\x20>\x200','isArray','tag','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','filter','replace','isNumeric','i.id\x20LIKE\x20?','i.phone\x20LIKE\x20?','CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?','i.id','Sequelize','SELECT','order','contactName','DESC','t.id\x20IN\x20?','WhatsappAccountId','i.WhatsappAccountId\x20IS\x20NOT\x20NULL','agent','user','getWhatsappAccounts','i.WhatsappAccountId\x20IS\x20NULL','i.WhatsappAccountId\x20IN\x20?','role','sequelize','toString','merge','WhatsappInteraction','a.key','Account.key','a.mandatoryDisposition','Account.mandatoryDisposition','c.firstName','Contact.firstName','c.lastName','c.email','c.phone','Contact.phone','Contact.mobile','c.fax','Contact.fax','o.fullname','Owner.fullname','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.WhatsappInteractionId\x20IN\x20?','groupBy','WhatsappInteractionId','push','all','rows','show','params','keys','include','options','create','addMessage','WhatsappMessage','ids','omit','getMessages','findOne','split','format','YYYY-MM-DD\x20HH:mm:ss','findAll','addTags','setTags','spread','color','whatsappInteractionTags:save','removeTags','download','unix','root','server','files','tmp','join','attachments','CmContact','lastName','Attachment','Messages','direction','secret','WhatsappAccount','Owner','get','closed','closedAt','disposition','existsSync','pipe','createWriteStream','basename','out','Contact','firstName','renderFile','views','downloadInteraction.ejs','transcript-','.pdf','createPdfFromHTML','log','err','unlinkSync','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','to-csv','ejs','fs-extra','lodash','squel','crypto'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xb647,0xdb));var _0x7b64=function(_0x499b16,_0x46ba40){_0x499b16=_0x499b16-0x0;var _0x2e3d73=_0xb647[_0x499b16];return _0x2e3d73;};'use strict';var emlformat=require(_0x7b64('0x0'));var rimraf=require(_0x7b64('0x1'));var zipdir=require(_0x7b64('0x2'));var jsonpatch=require(_0x7b64('0x3'));var rp=require(_0x7b64('0x4'));var moment=require(_0x7b64('0x5'));var BPromise=require(_0x7b64('0x6'));var Mustache=require(_0x7b64('0x7'));var util=require('util');var path=require(_0x7b64('0x8'));var sox=require('sox');var csv=require(_0x7b64('0x9'));var ejs=require(_0x7b64('0xa'));var fs=require('fs');var fs_extra=require(_0x7b64('0xb'));var _=require(_0x7b64('0xc'));var squel=require(_0x7b64('0xd'));var crypto=require(_0x7b64('0xe'));var jsforce=require(_0x7b64('0xf'));var deskjs=require(_0x7b64('0x10'));var toCsv=require(_0x7b64('0x9'));var querystring=require('querystring');var Papa=require(_0x7b64('0x11'));var Redis=require('ioredis');var authService=require(_0x7b64('0x12'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var pdf=require(_0x7b64('0x13'));var hardwareService=require(_0x7b64('0x14'));var logger=require('../../config/logger')(_0x7b64('0x15'));var utils=require(_0x7b64('0x16'));var config=require(_0x7b64('0x17'));var licenseUtil=require(_0x7b64('0x18'));var db=require(_0x7b64('0x19'))['db'];config[_0x7b64('0x1a')]=_[_0x7b64('0x1b')](config['redis'],{'host':_0x7b64('0x1c'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0x7b64('0x1d'))[_0x7b64('0x1e')](socket);function respondWithStatusCode(_0x1d256d,_0x10ce62){_0x10ce62=_0x10ce62||0xcc;return function(_0x33ebe7){if(_0x33ebe7){return _0x1d256d[_0x7b64('0x1f')](_0x10ce62);}return _0x1d256d[_0x7b64('0x20')](_0x10ce62)['end']();};}function respondWithResult(_0xca026a,_0x40066b){_0x40066b=_0x40066b||0xc8;return function(_0x16ff72){if(_0x16ff72){return _0xca026a[_0x7b64('0x20')](_0x40066b)[_0x7b64('0x21')](_0x16ff72);}};}function respondWithFilteredResult(_0x4aa38d,_0x3935c3){return function(_0x1a248a){if(_0x1a248a){var _0x58517e=typeof _0x3935c3[_0x7b64('0x22')]===_0x7b64('0x23')&&typeof _0x3935c3['limit']===_0x7b64('0x23');var _0x1c5986=_0x1a248a[_0x7b64('0x24')];var _0x404cd2=_0x58517e?0x0:_0x3935c3['offset'];var _0x123a3b=_0x58517e?_0x1a248a[_0x7b64('0x24')]:_0x3935c3['offset']+_0x3935c3[_0x7b64('0x25')];var _0x509719;if(_0x123a3b>=_0x1c5986){_0x123a3b=_0x1c5986;_0x509719=0xc8;}else{_0x509719=0xce;}_0x4aa38d[_0x7b64('0x20')](_0x509719);return _0x4aa38d['set'](_0x7b64('0x26'),_0x404cd2+'-'+_0x123a3b+'/'+_0x1c5986)[_0x7b64('0x21')](_0x1a248a);}return null;};}function patchUpdates(_0x2b8350){return function(_0x379e90){try{jsonpatch[_0x7b64('0x27')](_0x379e90,_0x2b8350,!![]);}catch(_0x3c0d97){return BPromise[_0x7b64('0x28')](_0x3c0d97);}return _0x379e90[_0x7b64('0x29')]();};}function saveUpdates(_0x17e7f1,_0x78a6d1){return function(_0xec557c){if(_0xec557c){return _0xec557c[_0x7b64('0x2a')](_0x17e7f1)[_0x7b64('0x2b')](function(_0x42efa1){return _0x42efa1;});}return null;};}function removeEntity(_0x50d06c,_0xc61df8){return function(_0x5d9586){if(_0x5d9586){return _0x5d9586[_0x7b64('0x2c')]()[_0x7b64('0x2b')](function(){_0x50d06c['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x38738c,_0x1e1ba7){return function(_0x1a8d6b){if(!_0x1a8d6b){_0x38738c[_0x7b64('0x1f')](0x194);}return _0x1a8d6b;};}function handleError(_0x43db8b,_0x3c9fad){_0x3c9fad=_0x3c9fad||0x1f4;return function(_0x6740b2){logger[_0x7b64('0x2d')](_0x6740b2['stack']);if(_0x6740b2[_0x7b64('0x2e')]){delete _0x6740b2[_0x7b64('0x2e')];}_0x43db8b['status'](_0x3c9fad)[_0x7b64('0x2f')](_0x6740b2);};}function getInteractionUsers(_0x2bcefa,_0x369402){return new BPromise(function(_0x23be27,_0x144327){try{if(_0x369402[_0x2bcefa['id']]){_0x2bcefa[_0x7b64('0x30')]=_['map'](_0x369402[_0x2bcefa['id']],function(_0x5bf639){return{'id':_0x5bf639['id'],'fullname':_0x5bf639[_0x7b64('0x31')]};});}}catch(_0x3fb4a8){_0x144327(_0x3fb4a8);}_0x23be27(_0x2bcefa);});}function getInteractionTags(_0x49e402,_0x508c6d){return new BPromise(function(_0x345664,_0x4914d5){try{if(_0x49e402[_0x7b64('0x32')]){_0x49e402['Tags']=[];_0x49e402['TagIds']['split'](',')[_0x7b64('0x33')](function(_0x20c30f){_0x49e402[_0x7b64('0x34')]['push'](_0x508c6d[_0x20c30f]);});}delete _0x49e402[_0x7b64('0x32')];}catch(_0x51cff5){_0x4914d5(_0x51cff5);}_0x345664(_0x49e402);});}function updateWhatsappInteraction(_0x2a74e4,_0x7e1083,_0x2afabd){return new BPromise(function(_0x29a777,_0x2ebe5f){return getInteractionUsers(_0x2a74e4,_0x2afabd)['then'](function(_0x24164a){return getInteractionTags(_0x24164a,_0x7e1083);})[_0x7b64('0x2b')](function(_0x2d0e9){_0x29a777(_0x2d0e9);})[_0x7b64('0x35')](function(_0x546b44){_0x2ebe5f(_0x546b44);});});}exports[_0x7b64('0x36')]=function(_0x4578ed,_0x262cb4){var _0x1c02bc={},_0x5d0864={},_0x27e008={'count':0x0,'rows':[]};var _0x1c0be6=_['map'](db['WhatsappInteraction'][_0x7b64('0x37')],function(_0x46f9ce){return{'name':_0x46f9ce[_0x7b64('0x38')],'type':_0x46f9ce[_0x7b64('0x39')][_0x7b64('0x3a')]};});_0x5d0864[_0x7b64('0x3b')]=_[_0x7b64('0x3c')](_0x1c0be6,_0x7b64('0x2e'));_0x5d0864[_0x7b64('0x3d')]=_['keys'](_0x4578ed[_0x7b64('0x3d')]);_0x5d0864[_0x7b64('0x3e')]=_[_0x7b64('0x3f')](_0x5d0864[_0x7b64('0x3b')],_0x5d0864[_0x7b64('0x3d')]);_0x1c02bc[_0x7b64('0x40')]=_[_0x7b64('0x3f')](_0x5d0864[_0x7b64('0x3b')],qs[_0x7b64('0x41')](_0x4578ed[_0x7b64('0x3d')][_0x7b64('0x41')]));_0x1c02bc[_0x7b64('0x40')]=_0x1c02bc[_0x7b64('0x40')][_0x7b64('0x42')]?_0x1c02bc[_0x7b64('0x40')]:_0x5d0864[_0x7b64('0x3b')];if(!_0x4578ed[_0x7b64('0x3d')][_0x7b64('0x43')](_0x7b64('0x44'))){_0x1c02bc[_0x7b64('0x25')]=qs['limit'](_0x4578ed[_0x7b64('0x3d')][_0x7b64('0x25')]);_0x1c02bc[_0x7b64('0x22')]=qs['offset'](_0x4578ed[_0x7b64('0x3d')][_0x7b64('0x22')]);}_0x1c02bc['order']=qs[_0x7b64('0x45')](_0x4578ed[_0x7b64('0x3d')]['sort']);_0x1c02bc[_0x7b64('0x46')]=qs['filters'](_[_0x7b64('0x47')](_0x4578ed[_0x7b64('0x3d')],_0x5d0864[_0x7b64('0x3e')]),_0x1c0be6);var _0x488ee6=[];var _0x3147d5=squel[_0x7b64('0x48')]()[_0x7b64('0x49')]('id')[_0x7b64('0x49')](_0x7b64('0x2e'))[_0x7b64('0x49')]('color')[_0x7b64('0x4a')](_0x7b64('0x4b'));var _0x1129cf=squel[_0x7b64('0x48')]()[_0x7b64('0x49')]('u.id')['field']('u.fullname')['field'](_0x7b64('0x4c'))[_0x7b64('0x4a')](_0x7b64('0x4d'),'ui')[_0x7b64('0x4e')](_0x7b64('0x4f'),'u',_0x7b64('0x50'));var _0x3c32d0=squel[_0x7b64('0x48')]()[_0x7b64('0x4a')](_0x7b64('0x51'),'i')[_0x7b64('0x4e')](_0x7b64('0x52'),'c','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL')['left_join'](_0x7b64('0x4f'),'o',_0x7b64('0x53'))[_0x7b64('0x4e')](_0x7b64('0x54'),'a',_0x7b64('0x55'))['left_join'](_0x7b64('0x56'),'me',_0x7b64('0x57'))[_0x7b64('0x4e')]('whatsapp_interaction_has_tags','it',_0x7b64('0x58'))[_0x7b64('0x4e')](_0x7b64('0x4b'),'t',_0x7b64('0x59'));var _0x18c5b0=squel['expr']();var _0x439955=[];var _0x38d907=squel['expr']();var _0x3656b8;if(_0x4578ed[_0x7b64('0x3d')]['search']){_0x3656b8=as[_0x7b64('0x5a')](_0x4578ed[_0x7b64('0x3d')][_0x7b64('0x5b')]);var _0x30bf26=_0x3656b8[_0x7b64('0x5c')];for(var _0x79cbc9=0x0;_0x79cbc9<_0x3656b8[_0x7b64('0x5d')][_0x7b64('0x42')];_0x79cbc9++){var _0x360a47=_0x3656b8[_0x7b64('0x5d')][_0x79cbc9];var _0xa7550a='i';var _0x1dfd23=_[_0x7b64('0x5e')](_0x1c0be6,[_0x7b64('0x2e'),_0x360a47[_0x7b64('0x49')]]);if(!_0x1dfd23){switch(_0x360a47[_0x7b64('0x49')]){case _0x7b64('0x5f'):if(_0x360a47[_0x7b64('0x60')]==0x1){_0x3c32d0['having']('`'+_0x360a47[_0x7b64('0x49')]+'`\x20=\x200');}else{_0x3c32d0[_0x7b64('0x61')]('`'+_0x360a47[_0x7b64('0x49')]+_0x7b64('0x62'));}break;case'Contact':if(_0x360a47['operator']===_0x7b64('0x63')){if(_0x360a47['value']['split']('\x20')[_0x7b64('0x42')]>0x1){_0x18c5b0[_0x30bf26](_0x7b64('0x64'),qs[_0x7b64('0x65')](_0x360a47['value']),null);}else{var _0x1fd98a='%'+_0x360a47[_0x7b64('0x60')]+'%';_0x18c5b0[_0x30bf26](_0x7b64('0x66'),_0x1fd98a,_0x1fd98a,_0x1fd98a);}}else{_0x1dfd23=_[_0x7b64('0x5e')](_0x1c0be6,[_0x7b64('0x2e'),'ContactId']);_0x360a47['field']=_0x7b64('0x67');_0x117d52=as[_0x7b64('0x68')](_0xa7550a,_0x1dfd23[_0x7b64('0x39')],_0x360a47);_0x18c5b0[_0x30bf26](_0x117d52[_0x7b64('0x69')],_0x117d52[_0x7b64('0x60')][_0x7b64('0x6a')],_0x117d52[_0x7b64('0x60')][_0x7b64('0x6b')]);}break;case _0x7b64('0x6c'):var _0x4999c3=_0x360a47[_0x7b64('0x60')]['split'](',')[_0x7b64('0x3c')](function(_0x508272){return Number(_0x508272);});_0x4999c3['forEach'](function(_0x56ca4b){_0x38d907['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x56ca4b+',%');});_0x439955=_[_0x7b64('0x6d')](_0x439955,_0x4999c3);break;case _0x7b64('0x6e'):if(_0x360a47['operator']===_0x7b64('0x63')){_0x18c5b0[_0x30bf26](_0x7b64('0x6f'),'%'+_0x360a47[_0x7b64('0x60')]+'%',null);}else{_0x1dfd23=_['find'](_0x1c0be6,[_0x7b64('0x2e'),_0x7b64('0x70')]);_0x360a47['field']='UserId';_0x117d52=as[_0x7b64('0x68')](_0xa7550a,_0x1dfd23['type'],_0x360a47);_0x18c5b0[_0x30bf26](_0x117d52['text'],_0x117d52[_0x7b64('0x60')][_0x7b64('0x6a')],_0x117d52['value']['end']);}break;case _0x7b64('0x71'):_0x117d52=as[_0x7b64('0x68')]('me',null,_0x360a47);_0x18c5b0[_0x30bf26](_0x117d52['text'],_0x117d52[_0x7b64('0x60')]['start'],_0x117d52[_0x7b64('0x60')]['end']);break;}}else{var _0x117d52=as[_0x7b64('0x68')](_0xa7550a,_0x1dfd23[_0x7b64('0x39')],_0x360a47);_0x18c5b0[_0x30bf26](_0x117d52[_0x7b64('0x69')],_0x117d52[_0x7b64('0x60')]['start'],_0x117d52[_0x7b64('0x60')][_0x7b64('0x6b')]);}}}else{var _0x93f8d=_(_0x4578ed[_0x7b64('0x3d')])['keys']()[_0x7b64('0x3c')](function(_0x323c06){return _[_0x7b64('0x72')](_0x1c0be6,['name',_0x323c06])?_0x323c06:undefined;})[_0x7b64('0x73')]()['value']();if(!_[_0x7b64('0x74')](_0x93f8d)){_0x93f8d[_0x7b64('0x33')](function(_0x56bcc0){if(_0x56bcc0==='WhatsappAccountId'){_0x3c32d0[_0x7b64('0x46')]('i.WhatsappAccountId\x20IN\x20?',[][_0x7b64('0x75')](_0x4578ed[_0x7b64('0x3d')][_0x56bcc0]));}else if(_0x56bcc0===_0x7b64('0x76')){var _0x2f647e=JSON[_0x7b64('0x77')](_0x4578ed[_0x7b64('0x3d')][_0x56bcc0])[_0x7b64('0x78')];var _0x231c1b=JSON['parse'](_0x4578ed[_0x7b64('0x3d')][_0x56bcc0])[_0x7b64('0x79')];_0x3c32d0['where']('i.createdAt\x20BETWEEN\x20?\x20AND\x20?',_0x2f647e,_0x231c1b);}else{if(_0x4578ed[_0x7b64('0x3d')][_0x56bcc0]===_0x7b64('0x7a')){_0x3c32d0['where']('i.'+_0x56bcc0+_0x7b64('0x7b'));}else{_0x3c32d0[_0x7b64('0x46')]('i.'+_0x56bcc0+'\x20=\x20?',_0x4578ed[_0x7b64('0x3d')][_0x56bcc0]);}}});}if(_0x4578ed[_0x7b64('0x3d')]['read']){if(_0x4578ed['query']['read']==0x1){_0x3c32d0[_0x7b64('0x61')]('`unreadMessages`\x20=\x200');}else{_0x3c32d0[_0x7b64('0x61')](_0x7b64('0x7c'));}}if(_0x4578ed[_0x7b64('0x3d')]['tag']){_0x439955=_[_0x7b64('0x7d')](_0x4578ed[_0x7b64('0x3d')][_0x7b64('0x7e')])?_0x4578ed['query']['tag']:new Array(_0x4578ed[_0x7b64('0x3d')][_0x7b64('0x7e')]);_0x439955['forEach'](function(_0x162e69){_0x38d907['or'](_0x7b64('0x7f'),'%,'+_0x162e69+',%');});}if(_0x4578ed['query'][_0x7b64('0x80')]){var _0x2e92a5=_0x4578ed['query'][_0x7b64('0x80')][_0x7b64('0x81')]('\x5c','\x5c\x5c')[_0x7b64('0x81')](/'/g,'\x27\x27');if(qs[_0x7b64('0x82')](_0x2e92a5)){_0x18c5b0['or'](_0x7b64('0x83'),_0x2e92a5+'%')['or'](_0x7b64('0x84'),_0x2e92a5+'%');}else{_0x18c5b0['or']('MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs['getFullTextValue'](_0x2e92a5))['or'](_0x7b64('0x85'),_0x2e92a5+'%');}}}_0x3c32d0[_0x7b64('0x46')](_0x18c5b0);_0x3c32d0['group'](_0x7b64('0x86'));var _0x13e09a={'type':db[_0x7b64('0x87')]['QueryTypes'][_0x7b64('0x88')],'raw':!![]};var _0x4223ab=_0x3c32d0['clone']();_0x4223ab[_0x7b64('0x49')]('i.id');_0x4223ab[_0x7b64('0x49')]('SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)',_0x7b64('0x5f'));if(_0x1c02bc[_0x7b64('0x89')]){_0x1c02bc['order'][_0x7b64('0x33')](function(_0x59ccc8){var _0x1bfacf=_0x59ccc8[0x0]===_0x7b64('0x8a')?_0x59ccc8[0x0]:'i.'+_0x59ccc8[0x0];_0x3c32d0['order'](_0x1bfacf,_0x59ccc8[0x1]===_0x7b64('0x8b')?![]:!![]);});}if(!_[_0x7b64('0x74')](_0x439955)){_0x3c32d0[_0x7b64('0x61')](_0x38d907);_0x4223ab['where'](_0x7b64('0x8c'),_0x439955);}BPromise['resolve']()['then'](function(){if(!_0x3656b8){if(_0x4578ed['query'][_0x7b64('0x8d')])return;_0x4223ab[_0x7b64('0x46')](_0x7b64('0x8e'));_0x3c32d0[_0x7b64('0x46')](_0x7b64('0x8e'));return;}if(_0x4578ed['user']['role']!==_0x7b64('0x8f'))return;return _0x4578ed[_0x7b64('0x90')][_0x7b64('0x91')]({'attributes':['id'],'raw':!![]})[_0x7b64('0x2b')](function(_0x45d18e){if(_['isEmpty'](_0x45d18e)){_0x4223ab[_0x7b64('0x46')]('i.WhatsappAccountId\x20IS\x20NULL');_0x3c32d0[_0x7b64('0x46')](_0x7b64('0x92'));}else{_0x4223ab[_0x7b64('0x46')]('i.WhatsappAccountId\x20IN\x20?',_[_0x7b64('0x3c')](_0x45d18e,'id'));_0x3c32d0['where'](_0x7b64('0x93'),_[_0x7b64('0x3c')](_0x45d18e,'id'));}});})['then'](function(){if(_0x4578ed[_0x7b64('0x90')][_0x7b64('0x94')]===_0x7b64('0x8f')&&!_0x3656b8&&!_0x4578ed[_0x7b64('0x3d')][_0x7b64('0x8d')])return[];return db[_0x7b64('0x95')][_0x7b64('0x3d')](_0x4223ab['toString'](),_0x13e09a);})[_0x7b64('0x2b')](function(_0x5d75ae){_0x27e008[_0x7b64('0x24')]=_0x5d75ae[_0x7b64('0x42')];if(_0x27e008[_0x7b64('0x24')]===0x0)return[];return db[_0x7b64('0x95')][_0x7b64('0x3d')](_0x3147d5[_0x7b64('0x96')](),_0x13e09a)[_0x7b64('0x2b')](function(_0x4cd35c){_0x488ee6=_['keyBy'](_0x4cd35c,'id');_0x13e09a=_[_0x7b64('0x97')](_0x13e09a,{'model':db[_0x7b64('0x98')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x4578ed[_0x7b64('0x3d')][_0x7b64('0x41')]){_0x1c02bc[_0x7b64('0x40')][_0x7b64('0x33')](function(_0x3a9620){_0x3c32d0[_0x7b64('0x49')]('i.'+_0x3a9620);});}else{_0x3c32d0[_0x7b64('0x49')]('SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)',_0x7b64('0x5f'));_0x3c32d0[_0x7b64('0x49')](_0x7b64('0x99'),_0x7b64('0x9a'));_0x3c32d0['field'](_0x7b64('0x9b'),_0x7b64('0x9c'));_0x3c32d0[_0x7b64('0x49')]('CASE\x20WHEN\x20(c.firstName\x20IS\x20NOT\x20NULL\x20AND\x20c.firstName\x20<>\x20\x27\x27)\x20OR\x20(c.lastName\x20IS\x20NOT\x20NULL\x20AND\x20c.lastName\x20<>\x20\x27\x27)\x20THEN\x20CONCAT(IFNULL(c.firstName,\x20\x27\x27),\x20\x27\x20\x27,\x20IFNULL(c.lastName,\x20\x27\x27))\x20ELSE\x20\x27Unknown\x27\x20END',_0x7b64('0x8a'));_0x3c32d0[_0x7b64('0x49')]('i.*');_0x3c32d0[_0x7b64('0x49')](_0x7b64('0x9d'),_0x7b64('0x9e'));_0x3c32d0[_0x7b64('0x49')](_0x7b64('0x9f'),'Contact.lastName');_0x3c32d0[_0x7b64('0x49')](_0x7b64('0xa0'),'Contact.email');_0x3c32d0[_0x7b64('0x49')](_0x7b64('0xa1'),_0x7b64('0xa2'));_0x3c32d0[_0x7b64('0x49')]('c.mobile',_0x7b64('0xa3'));_0x3c32d0[_0x7b64('0x49')](_0x7b64('0xa4'),_0x7b64('0xa5'));_0x3c32d0[_0x7b64('0x49')](_0x7b64('0xa6'),_0x7b64('0xa7'));_0x3c32d0[_0x7b64('0x49')]('o.internal',_0x7b64('0xa8'));_0x3c32d0[_0x7b64('0x49')](_0x7b64('0xa9'),_0x7b64('0x32'));}if(_0x1c02bc['limit'])_0x3c32d0[_0x7b64('0x25')](_0x1c02bc['limit']);if(_0x1c02bc[_0x7b64('0x22')])_0x3c32d0[_0x7b64('0x22')](_0x1c02bc[_0x7b64('0x22')]);return db['sequelize']['query'](_0x3c32d0[_0x7b64('0x96')](),_0x13e09a);})[_0x7b64('0x2b')](function(_0x1ff303){if(_0x1ff303[_0x7b64('0x42')]>0x0)_0x1129cf[_0x7b64('0x46')](_0x7b64('0xaa'),_['map'](_0x1ff303,'id'));return db[_0x7b64('0x95')]['query'](_0x1129cf[_0x7b64('0x96')](),_0x13e09a)['then'](function(_0x1174c1){var _0x37420b=_[_0x7b64('0xab')](_0x1174c1,_0x7b64('0xac'));var _0x5d09af=[];_0x1ff303[_0x7b64('0x33')](function(_0xb7bfbb){_0x5d09af[_0x7b64('0xad')](updateWhatsappInteraction(_0xb7bfbb,_0x488ee6,_0x37420b));});return BPromise[_0x7b64('0xae')](_0x5d09af);});});})[_0x7b64('0x2b')](function(_0x3b446e){_0x27e008[_0x7b64('0xaf')]=_0x3b446e;return _0x27e008;})[_0x7b64('0x2b')](respondWithFilteredResult(_0x262cb4,_0x1c02bc))[_0x7b64('0x35')](handleError(_0x262cb4,null));};exports[_0x7b64('0xb0')]=function(_0x1b7a46,_0x4d089c){var _0x1626b8={'raw':![],'where':{'id':_0x1b7a46[_0x7b64('0xb1')]['id']}},_0x98a85d={};_0x98a85d[_0x7b64('0x3b')]=_[_0x7b64('0xb2')](db[_0x7b64('0x98')][_0x7b64('0x37')]);_0x98a85d['query']=_[_0x7b64('0xb2')](_0x1b7a46[_0x7b64('0x3d')]);_0x98a85d[_0x7b64('0x3e')]=_[_0x7b64('0x3f')](_0x98a85d[_0x7b64('0x3b')],_0x98a85d[_0x7b64('0x3d')]);_0x1626b8['attributes']=_[_0x7b64('0x3f')](_0x98a85d[_0x7b64('0x3b')],qs[_0x7b64('0x41')](_0x1b7a46[_0x7b64('0x3d')][_0x7b64('0x41')]));_0x1626b8[_0x7b64('0x40')]=_0x1626b8[_0x7b64('0x40')]['length']?_0x1626b8[_0x7b64('0x40')]:_0x98a85d[_0x7b64('0x3b')];if(_0x1b7a46[_0x7b64('0x3d')]['includeAll']){_0x1626b8[_0x7b64('0xb3')]=[{'all':!![]}];}_0x1626b8=_[_0x7b64('0x97')]({},_0x1626b8,_0x1b7a46[_0x7b64('0xb4')]);return db[_0x7b64('0x98')][_0x7b64('0x5e')](_0x1626b8)[_0x7b64('0x2b')](handleEntityNotFound(_0x4d089c,null))[_0x7b64('0x2b')](respondWithResult(_0x4d089c,null))['catch'](handleError(_0x4d089c,null));};exports[_0x7b64('0xb5')]=function(_0x50dc2f,_0x31ef56){return db[_0x7b64('0x98')][_0x7b64('0xb5')](_0x50dc2f[_0x7b64('0x71')],{})[_0x7b64('0x2b')](respondWithResult(_0x31ef56,0xc9))[_0x7b64('0x35')](handleError(_0x31ef56,null));};exports[_0x7b64('0x2a')]=function(_0x54790a,_0x385691){if(_0x54790a['body']['id']){delete _0x54790a['body']['id'];}return db[_0x7b64('0x98')][_0x7b64('0x5e')]({'where':{'id':_0x54790a['params']['id']}})[_0x7b64('0x2b')](handleEntityNotFound(_0x385691,null))[_0x7b64('0x2b')](saveUpdates(_0x54790a[_0x7b64('0x71')],null))[_0x7b64('0x2b')](respondWithResult(_0x385691,null))[_0x7b64('0x35')](handleError(_0x385691,null));};exports[_0x7b64('0x2c')]=function(_0x46c88c,_0x2b8547){return db[_0x7b64('0x98')]['find']({'where':{'id':_0x46c88c[_0x7b64('0xb1')]['id']}})[_0x7b64('0x2b')](handleEntityNotFound(_0x2b8547,null))[_0x7b64('0x2b')](removeEntity(_0x2b8547,null))[_0x7b64('0x35')](handleError(_0x2b8547,null));};exports['describe']=function(_0x29632f,_0x5f49d4){return db['WhatsappInteraction']['describe']()[_0x7b64('0x2b')](respondWithResult(_0x5f49d4,null))[_0x7b64('0x35')](handleError(_0x5f49d4,null));};exports[_0x7b64('0xb6')]=function(_0x22ba0e,_0x9b6286,_0x53b8fb){return db[_0x7b64('0xb7')]['find']({'where':{'id':_0x22ba0e[_0x7b64('0xb1')]['id']}})[_0x7b64('0x2b')](handleEntityNotFound(_0x9b6286,null))[_0x7b64('0x2b')](function(_0x5ba8c8){if(_0x5ba8c8){return _0x5ba8c8[_0x7b64('0xb6')](_0x22ba0e[_0x7b64('0x71')][_0x7b64('0xb8')],_[_0x7b64('0xb9')](_0x22ba0e[_0x7b64('0x71')],[_0x7b64('0xb8'),'id'])||{});}})[_0x7b64('0x2b')](respondWithResult(_0x9b6286,null))[_0x7b64('0x35')](handleError(_0x9b6286,null));};exports[_0x7b64('0xba')]=function(_0x5822da,_0x41e506,_0x1761a9){var _0xde9bbc={'raw':![],'where':{}};var _0x54a1a4={};var _0x4a1232={'count':0x0,'rows':[]};return db[_0x7b64('0x98')][_0x7b64('0xbb')]({'where':{'id':_0x5822da[_0x7b64('0xb1')]['id']}})[_0x7b64('0x2b')](handleEntityNotFound(_0x41e506,null))[_0x7b64('0x2b')](function(_0x5d06ce){if(_0x5d06ce){_0x54a1a4[_0x7b64('0x3b')]=_[_0x7b64('0xb2')](db[_0x7b64('0xb7')]['rawAttributes']);_0x54a1a4[_0x7b64('0x3d')]=_[_0x7b64('0xb2')](_0x5822da[_0x7b64('0x3d')]);_0x54a1a4[_0x7b64('0x3e')]=_['intersection'](_0x54a1a4['model'],_0x54a1a4[_0x7b64('0x3d')]);_0xde9bbc[_0x7b64('0x40')]=_[_0x7b64('0x3f')](_0x54a1a4['model'],qs['fields'](_0x5822da[_0x7b64('0x3d')]['fields']));_0xde9bbc['attributes']=_0xde9bbc[_0x7b64('0x40')][_0x7b64('0x42')]?_0xde9bbc[_0x7b64('0x40')]:_0x54a1a4[_0x7b64('0x3b')];if(!_0x5822da[_0x7b64('0x3d')]['hasOwnProperty'](_0x7b64('0x44'))){_0xde9bbc[_0x7b64('0x25')]=qs[_0x7b64('0x25')](_0x5822da[_0x7b64('0x3d')][_0x7b64('0x25')]);_0xde9bbc['offset']=qs[_0x7b64('0x22')](_0x5822da[_0x7b64('0x3d')][_0x7b64('0x22')]);}_0xde9bbc[_0x7b64('0x89')]=qs[_0x7b64('0x45')](_0x5822da[_0x7b64('0x3d')][_0x7b64('0x45')]);_0xde9bbc[_0x7b64('0x46')]=qs[_0x7b64('0x3e')](_[_0x7b64('0x47')](_0x5822da[_0x7b64('0x3d')],_0x54a1a4[_0x7b64('0x3e')]));_0xde9bbc[_0x7b64('0x46')][_0x7b64('0xac')]=_0x5d06ce['id'];if(_0x5822da['query'][_0x7b64('0x80')]){_0xde9bbc[_0x7b64('0x46')]=_[_0x7b64('0x97')](_0xde9bbc[_0x7b64('0x46')],{'$or':_[_0x7b64('0x3c')](_0xde9bbc[_0x7b64('0x40')],function(_0x247fff){var _0x3ed315={};_0x3ed315[_0x247fff]={'$like':'%'+_0x5822da[_0x7b64('0x3d')][_0x7b64('0x80')]+'%'};return _0x3ed315;})});}if(_0x5822da[_0x7b64('0x3d')][_0x7b64('0x78')]){var _0x76a11a=_0x5822da[_0x7b64('0x3d')][_0x7b64('0x78')][_0x7b64('0xbc')](',');var _0x521e1b={};_0x521e1b[_0x76a11a[0x0]]={'$gte':moment(_0x76a11a[0x1])[_0x7b64('0xbd')](_0x7b64('0xbe'))};_0xde9bbc[_0x7b64('0x46')]=_['merge'](_0xde9bbc['where'],_0x521e1b);}_0xde9bbc=_[_0x7b64('0x97')]({},_0xde9bbc,_0x5822da[_0x7b64('0xb4')]);return db[_0x7b64('0xb7')][_0x7b64('0x24')]({'where':_0xde9bbc[_0x7b64('0x46')]})['then'](function(_0xb56cc3){_0x4a1232[_0x7b64('0x24')]=_0xb56cc3;if(_0x5822da[_0x7b64('0x3d')]['includeAll']){_0xde9bbc[_0x7b64('0xb3')]=[{'all':!![]}];}return db[_0x7b64('0xb7')][_0x7b64('0xbf')](_0xde9bbc);})[_0x7b64('0x2b')](function(_0x4f4fe8){_0x4a1232[_0x7b64('0xaf')]=_0x4f4fe8;return _0x4a1232;});}})[_0x7b64('0x2b')](respondWithFilteredResult(_0x41e506,_0xde9bbc))[_0x7b64('0x35')](handleError(_0x41e506,null));};exports[_0x7b64('0xc0')]=function(_0x438ea3,_0x11eab2,_0x162f0c){return db[_0x7b64('0x98')][_0x7b64('0x5e')]({'where':{'id':_0x438ea3[_0x7b64('0xb1')]['id']}})[_0x7b64('0x2b')](handleEntityNotFound(_0x11eab2,null))[_0x7b64('0x2b')](function(_0x5700ac){if(_0x5700ac){return _0x5700ac[_0x7b64('0xc1')](_0x438ea3['body'][_0x7b64('0xb8')],_[_0x7b64('0xb9')](_0x438ea3['body'],[_0x7b64('0xb8'),'id'])||{})[_0x7b64('0xc2')](function(){return db[_0x7b64('0x6c')][_0x7b64('0xbf')]({'attributes':['id','name',_0x7b64('0xc3')],'where':{'id':_0x438ea3['body']['ids']}});})[_0x7b64('0x2b')](function(_0x187243){socket['emit'](_0x7b64('0xc4'),{'id':Number(_0x438ea3[_0x7b64('0xb1')]['id']),'tags':_0x187243||[]});return{'id':Number(_0x438ea3['params']['id']),'tags':_0x187243||[]};});}})['then'](respondWithResult(_0x11eab2,null))['catch'](handleError(_0x11eab2,null));};exports[_0x7b64('0xc5')]=function(_0x207450,_0x23b248,_0x2f83b6){return db['WhatsappInteraction'][_0x7b64('0x5e')]({'where':{'id':_0x207450['params']['id']}})[_0x7b64('0x2b')](handleEntityNotFound(_0x23b248,null))['then'](function(_0x4c5860){if(_0x4c5860){return _0x4c5860['removeTags'](_0x207450[_0x7b64('0x3d')][_0x7b64('0xb8')]);}})[_0x7b64('0x2b')](respondWithStatusCode(_0x23b248,null))[_0x7b64('0x35')](handleError(_0x23b248,null));};exports[_0x7b64('0xc6')]=function(_0x22557c,_0x42a7e6){var _0x5ac4a2=moment()[_0x7b64('0xc7')]()[_0x7b64('0x96')]();var _0x147ef6=path['join'](config[_0x7b64('0xc8')],_0x7b64('0xc9'),_0x7b64('0xca'),_0x7b64('0xcb'));var _0x403c66=path[_0x7b64('0xcc')](config[_0x7b64('0xc8')],'server','files',_0x7b64('0xcd'));var _0x55b4f8=path[_0x7b64('0xcc')](_0x147ef6,_0x5ac4a2);var _0x177b96=util[_0x7b64('0xbd')]('transcript-%d-%s.zip',_0x22557c[_0x7b64('0xb1')]['id'],_0x5ac4a2);var _0x1b8e3d=path[_0x7b64('0xcc')](_0x147ef6,_0x177b96);var _0x549c99=[];_0x549c99['push']({'model':db['User'],'as':_0x7b64('0x6e'),'attributes':['id',_0x7b64('0x31')],'raw':!![]});_0x549c99[_0x7b64('0xad')]({'model':db[_0x7b64('0xce')],'as':'Contact','attributes':['id','firstName',_0x7b64('0xcf')],'raw':!![]});if(_0x22557c['query']['attachments']){_0x549c99[_0x7b64('0xad')]({'model':db[_0x7b64('0xd0')],'as':_0x7b64('0xd0'),'raw':!![]});}var _0x458ca3=[{'model':db[_0x7b64('0xb7')],'as':_0x7b64('0xd1'),'attributes':['id',_0x7b64('0x71'),_0x7b64('0x76'),_0x7b64('0xd2'),_0x7b64('0xd3'),'read'],'include':_0x549c99}];_0x458ca3['push']({'model':db[_0x7b64('0xd4')],'as':'Account','attributes':['id',_0x7b64('0x2e')]});_0x458ca3['push']({'model':db['User'],'as':_0x7b64('0xd5'),'attributes':['id','fullname']});return db[_0x7b64('0x98')]['find']({'where':{'id':_0x22557c[_0x7b64('0xb1')]['id']},'include':_0x458ca3})[_0x7b64('0x2b')](handleEntityNotFound(_0x42a7e6,null))[_0x7b64('0x2b')](function(_0xba7fc1){if(_0xba7fc1){var _0x5c2c0c=_0xba7fc1[_0x7b64('0xd6')]({'plain':!![]});fs['mkdirSync'](_0x55b4f8);var _0x36f183={'channel':'Whatsapp','account':_0x5c2c0c['Account'][_0x7b64('0x2e')],'agent':_0x5c2c0c['Owner']?_0x5c2c0c['Owner'][_0x7b64('0x31')]:'N.A.','createdAt':moment(_0x5c2c0c['createdAt'])[_0x7b64('0xbd')](_0x7b64('0xbe'))[_0x7b64('0x96')](),'closedAt':_0x5c2c0c[_0x7b64('0xd7')]?moment(_0x5c2c0c[_0x7b64('0xd8')])[_0x7b64('0xbd')](_0x7b64('0xbe'))[_0x7b64('0x96')]():'','disposition':_0x5c2c0c[_0x7b64('0xd9')],'messages':_(_0x5c2c0c['Messages'])[_0x7b64('0x80')]({'secret':![]})[_0x7b64('0x3c')](function(_0x51ecdb){if(_0x51ecdb[_0x7b64('0xd0')]){var _0x4dbfac=path[_0x7b64('0xcc')](_0x403c66,_0x51ecdb[_0x7b64('0xd0')]['basename']);if(fs[_0x7b64('0xda')](_0x4dbfac)){fs['createReadStream'](_0x4dbfac)[_0x7b64('0xdb')](fs[_0x7b64('0xdc')](path[_0x7b64('0xcc')](_0x55b4f8,_0x51ecdb[_0x7b64('0xd0')][_0x7b64('0xdd')])));}}return{'date':moment(_0x51ecdb[_0x7b64('0x76')])[_0x7b64('0xbd')](_0x7b64('0xbe'))['toString'](),'sender':_0x51ecdb[_0x7b64('0xd2')]===_0x7b64('0xde')?_0x51ecdb['User']?_0x51ecdb[_0x7b64('0x6e')][_0x7b64('0x31')]:'System':_0x51ecdb[_0x7b64('0xdf')][_0x7b64('0xe0')]+(_0x51ecdb['Contact'][_0x7b64('0xcf')]?'\x20'+_0x51ecdb[_0x7b64('0xdf')][_0x7b64('0xcf')]:''),'body':_0x51ecdb[_0x7b64('0xd0')]?_0x51ecdb[_0x7b64('0xd0')][_0x7b64('0xdd')]:_0x51ecdb[_0x7b64('0x71')],'direction':_0x51ecdb['direction']===_0x7b64('0xde')?'A':'C','secret':_0x51ecdb['secret'],'read':_0x51ecdb['read'],'attachment':_0x51ecdb[_0x7b64('0xd0')]};})[_0x7b64('0x60')]()};return ejs[_0x7b64('0xe1')](path[_0x7b64('0xcc')](config[_0x7b64('0xc8')],_0x7b64('0xc9'),_0x7b64('0xe2'),_0x7b64('0xe3')),{'interaction':_0x36f183})[_0x7b64('0x2b')](function(_0x44c372){var _0x48efbc=path['join'](_0x55b4f8,_0x7b64('0xe4')+_0x5c2c0c['id']+'-'+_0x5ac4a2+_0x7b64('0xe5'));var _0x1a361b={'path':_0x48efbc,'channel':'Whatsapp','interactionId':_0x5c2c0c['id']};return pdf[_0x7b64('0xe6')](_0x44c372,_0x1a361b);})['then'](function(){return new BPromise(function(_0x513dc5,_0x3bd21d){zipdir(_0x55b4f8,{'saveTo':_0x1b8e3d},function(_0x1dcf88,_0x51bb63){if(_0x1dcf88)return _0x3bd21d(_0x1dcf88);return _0x513dc5(_0x51bb63);});})[_0x7b64('0x2b')](function(){return new BPromise(function(_0x17c47c,_0x597cc4){rimraf(_0x55b4f8,function(_0x376daa){if(_0x376daa)_0x597cc4(_0x376daa);return _0x17c47c();});});})[_0x7b64('0x2b')](function(){return _0x42a7e6[_0x7b64('0xc6')](_0x1b8e3d,_0x177b96,function(_0x1ff0ed){if(_0x1ff0ed){console[_0x7b64('0xe7')](_0x7b64('0xe8'),_0x1ff0ed);}else{fs[_0x7b64('0xe9')](_0x1b8e3d);}});});});}else{return _0x42a7e6[_0x7b64('0x1f')](0xc8);}})[_0x7b64('0x35')](handleError(_0x42a7e6,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x49ac=['update','remove','then','setDataValue','Users','unreadMessages','length','emit','hook','events','../../mysqldb','WhatsappInteraction','WhatsappMessage','setMaxListeners','save'];(function(_0x37d18e,_0x583c76){var _0x509a83=function(_0x351867){while(--_0x351867){_0x37d18e['push'](_0x37d18e['shift']());}};_0x509a83(++_0x583c76);}(_0x49ac,0x19e));var _0xc49a=function(_0x45c262,_0x2e3ce5){_0x45c262=_0x45c262-0x0;var _0x4f2ba6=_0x49ac[_0x45c262];return _0x4f2ba6;};'use strict';var EventEmitter=require(_0xc49a('0x0'));var WhatsappInteraction=require(_0xc49a('0x1'))['db'][_0xc49a('0x2')];var WhatsappMessage=require(_0xc49a('0x1'))['db'][_0xc49a('0x3')];var WhatsappInteractionEvents=new EventEmitter();WhatsappInteractionEvents[_0xc49a('0x4')](0x0);var events={'afterCreate':_0xc49a('0x5'),'afterUpdate':_0xc49a('0x6'),'afterDestroy':_0xc49a('0x7')};function emitEvent(_0x28a560){return function(_0x43bc9c,_0x4dcf88,_0x40017e){_0x43bc9c['getUsers']({'attributes':['id'],'raw':!![]})[_0xc49a('0x8')](function(_0x1cbdda){_0x43bc9c[_0xc49a('0x9')](_0xc49a('0xa'),_0x1cbdda['map'](function(_0x35f07d){return{'id':_0x35f07d['id']};}));return WhatsappMessage['findAll']({'where':{'WhatsappInteractionId':_0x43bc9c['id'],'direction':'in','read':![]},'raw':!![]});})[_0xc49a('0x8')](function(_0x5d5828){_0x43bc9c[_0xc49a('0x9')](_0xc49a('0xb'),_0x5d5828[_0xc49a('0xc')]);WhatsappInteractionEvents[_0xc49a('0xd')](_0x28a560+':'+_0x43bc9c['id'],_0x43bc9c);WhatsappInteractionEvents[_0xc49a('0xd')](_0x28a560,_0x43bc9c);_0x40017e(null);})['catch'](_0x40017e(null));};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];WhatsappInteraction[_0xc49a('0xe')](e,emitEvent(event));}}module['exports']=WhatsappInteractionEvents;
\ No newline at end of file
+var _0xb49a=['update','getUsers','then','setDataValue','map','findAll','length','emit','catch','hasOwnProperty','exports','events','../../mysqldb','WhatsappInteraction','WhatsappMessage','save'];(function(_0x1facfa,_0x1acf7d){var _0x9ec701=function(_0x115e37){while(--_0x115e37){_0x1facfa['push'](_0x1facfa['shift']());}};_0x9ec701(++_0x1acf7d);}(_0xb49a,0xfb));var _0xab49=function(_0x1785e8,_0x492aac){_0x1785e8=_0x1785e8-0x0;var _0x5e6021=_0xb49a[_0x1785e8];return _0x5e6021;};'use strict';var EventEmitter=require(_0xab49('0x0'));var WhatsappInteraction=require(_0xab49('0x1'))['db'][_0xab49('0x2')];var WhatsappMessage=require(_0xab49('0x1'))['db'][_0xab49('0x3')];var WhatsappInteractionEvents=new EventEmitter();WhatsappInteractionEvents['setMaxListeners'](0x0);var events={'afterCreate':_0xab49('0x4'),'afterUpdate':_0xab49('0x5'),'afterDestroy':'remove'};function emitEvent(_0x543eb0){return function(_0x14200b,_0x287cd5,_0x1cae1d){_0x14200b[_0xab49('0x6')]({'attributes':['id'],'raw':!![]})[_0xab49('0x7')](function(_0x26a98a){_0x14200b[_0xab49('0x8')]('Users',_0x26a98a[_0xab49('0x9')](function(_0x7de4b6){return{'id':_0x7de4b6['id']};}));return WhatsappMessage[_0xab49('0xa')]({'where':{'WhatsappInteractionId':_0x14200b['id'],'direction':'in','read':![]},'raw':!![]});})[_0xab49('0x7')](function(_0x69cb46){_0x14200b['setDataValue']('unreadMessages',_0x69cb46[_0xab49('0xb')]);WhatsappInteractionEvents[_0xab49('0xc')](_0x543eb0+':'+_0x14200b['id'],_0x14200b);WhatsappInteractionEvents[_0xab49('0xc')](_0x543eb0,_0x14200b);_0x1cae1d(null);})[_0xab49('0xd')](_0x1cae1d(null));};}for(var e in events){if(events[_0xab49('0xe')](e)){var event=events[e];WhatsappInteraction['hook'](e,emitEvent(event));}}module[_0xab49('0xf')]=WhatsappInteractionEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb273=['moment','bluebird','request-promise','path','rimraf','exports','define','WhatsappInteraction','changed','closed','closedAt','format','YYYY-MM-DD\x20HH:mm:ss','lodash','util','../../config/logger','api'];(function(_0x46aabc,_0x1b0b24){var _0x10c273=function(_0x341129){while(--_0x341129){_0x46aabc['push'](_0x46aabc['shift']());}};_0x10c273(++_0x1b0b24);}(_0xb273,0xd9));var _0x3b27=function(_0x42ab13,_0x3bc3cf){_0x42ab13=_0x42ab13-0x0;var _0x3047d5=_0xb273[_0x42ab13];return _0x3047d5;};'use strict';var _=require(_0x3b27('0x0'));var util=require(_0x3b27('0x1'));var logger=require(_0x3b27('0x2'))(_0x3b27('0x3'));var moment=require(_0x3b27('0x4'));var BPromise=require(_0x3b27('0x5'));var rp=require(_0x3b27('0x6'));var fs=require('fs');var path=require(_0x3b27('0x7'));var rimraf=require(_0x3b27('0x8'));var config=require('../../config/environment');var attributes=require('./whatsappInteraction.attributes');module[_0x3b27('0x9')]=function(_0x17ef18,_0x4bf6ad){return _0x17ef18[_0x3b27('0xa')](_0x3b27('0xb'),attributes,{'tableName':'whatsapp_interactions','paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeUpdate':function(_0x2da050,_0x6cecf0,_0x29ec4b){if(_0x2da050[_0x3b27('0xc')](_0x3b27('0xd'))){_0x2da050[_0x3b27('0xe')]=moment()[_0x3b27('0xf')](_0x3b27('0x10'));}_0x29ec4b(null,_0x2da050);}}});};
\ No newline at end of file
+var _0xd393=['WhatsappInteraction','whatsapp_interactions','changed','closedAt','format','lodash','util','../../config/logger','moment','bluebird','request-promise','path','../../config/environment','./whatsappInteraction.attributes','exports','define'];(function(_0x28d107,_0x194228){var _0x2c0036=function(_0x34cc56){while(--_0x34cc56){_0x28d107['push'](_0x28d107['shift']());}};_0x2c0036(++_0x194228);}(_0xd393,0x175));var _0x3d39=function(_0x5f34b6,_0x47fa46){_0x5f34b6=_0x5f34b6-0x0;var _0x4c189e=_0xd393[_0x5f34b6];return _0x4c189e;};'use strict';var _=require(_0x3d39('0x0'));var util=require(_0x3d39('0x1'));var logger=require(_0x3d39('0x2'))('api');var moment=require(_0x3d39('0x3'));var BPromise=require(_0x3d39('0x4'));var rp=require(_0x3d39('0x5'));var fs=require('fs');var path=require(_0x3d39('0x6'));var rimraf=require('rimraf');var config=require(_0x3d39('0x7'));var attributes=require(_0x3d39('0x8'));module[_0x3d39('0x9')]=function(_0x42faa2,_0x396884){return _0x42faa2[_0x3d39('0xa')](_0x3d39('0xb'),attributes,{'tableName':_0x3d39('0xc'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeUpdate':function(_0x50292d,_0x1aaef0,_0xc3355b){if(_0x50292d[_0x3d39('0xd')]('closed')){_0x50292d[_0x3d39('0xe')]=moment()[_0x3d39('0xf')]('YYYY-MM-DD\x20HH:mm:ss');}_0xc3355b(null,_0x50292d);}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa979=['util','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','redis','defaults','localhost','socket.io-emitter','register','request','then','info','WhatsappInteraction,\x20%s,\x20%s','debug','error','code','message','catch','UpdateWhatsappInteraction','update','body','options','where','attributes','limit','stringify','addTags','omit','ids','spread','AddTags','lodash'];(function(_0x19caa0,_0x553899){var _0x1a816b=function(_0x2a600c){while(--_0x2a600c){_0x19caa0['push'](_0x19caa0['shift']());}};_0x1a816b(++_0x553899);}(_0xa979,0xb3));var _0x9a97=function(_0x87b989,_0x48be91){_0x87b989=_0x87b989-0x0;var _0x14b62d=_0xa979[_0x87b989];return _0x14b62d;};'use strict';var _=require(_0x9a97('0x0'));var util=require(_0x9a97('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0x9a97('0x2'))['db'];var utils=require(_0x9a97('0x3'));var logger=require(_0x9a97('0x4'))(_0x9a97('0x5'));var config=require(_0x9a97('0x6'));var jayson=require('jayson/promise');var client=jayson[_0x9a97('0x7')][_0x9a97('0x8')]({'port':0x232a});config[_0x9a97('0x9')]=_[_0x9a97('0xa')](config[_0x9a97('0x9')],{'host':_0x9a97('0xb'),'port':0x18eb});var socket=require(_0x9a97('0xc'))(new Redis(config[_0x9a97('0x9')]));require('./whatsappInteraction.socket')[_0x9a97('0xd')](socket);function respondWithRpcPromise(_0x5658c1,_0x138442,_0x2acc20){return new BPromise(function(_0x154569,_0xf94a04){return client[_0x9a97('0xe')](_0x5658c1,_0x2acc20)[_0x9a97('0xf')](function(_0xf8ebd){logger[_0x9a97('0x10')](_0x9a97('0x11'),_0x138442,'request\x20sent');logger[_0x9a97('0x12')]('WhatsappInteraction,\x20%s,\x20%s,\x20%s',_0x138442,'request\x20sent',JSON['stringify'](_0xf8ebd));if(_0xf8ebd['error']){if(_0xf8ebd[_0x9a97('0x13')][_0x9a97('0x14')]===0x1f4){logger[_0x9a97('0x13')]('WhatsappInteraction,\x20%s,\x20%s',_0x138442,_0xf8ebd[_0x9a97('0x13')][_0x9a97('0x15')]);return _0xf94a04(_0xf8ebd['error'][_0x9a97('0x15')]);}logger[_0x9a97('0x13')]('WhatsappInteraction,\x20%s,\x20%s',_0x138442,_0xf8ebd[_0x9a97('0x13')][_0x9a97('0x15')]);return _0x154569(_0xf8ebd[_0x9a97('0x13')][_0x9a97('0x15')]);}else{logger['info'](_0x9a97('0x11'),_0x138442,'request\x20sent');_0x154569(_0xf8ebd['result'][_0x9a97('0x15')]);}})[_0x9a97('0x16')](function(_0x30547b){logger[_0x9a97('0x13')](_0x9a97('0x11'),_0x138442,_0x30547b);_0xf94a04(_0x30547b);});});}exports[_0x9a97('0x17')]=function(_0x5dc362){var _0x27e4b6=this;return new Promise(function(_0x39dc7c,_0x12c5ed){return db['WhatsappInteraction'][_0x9a97('0x18')](_0x5dc362[_0x9a97('0x19')],{'raw':_0x5dc362[_0x9a97('0x1a')]?_0x5dc362['options']['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x5dc362['options']?_0x5dc362[_0x9a97('0x1a')][_0x9a97('0x1b')]||null:null,'attributes':_0x5dc362[_0x9a97('0x1a')]?_0x5dc362[_0x9a97('0x1a')][_0x9a97('0x1c')]||null:null,'limit':_0x5dc362['options']?_0x5dc362['options'][_0x9a97('0x1d')]||null:null})[_0x9a97('0xf')](function(_0x4c2bfb){logger[_0x9a97('0x10')](_0x9a97('0x17'),_0x5dc362);logger[_0x9a97('0x12')](_0x9a97('0x17'),_0x5dc362,JSON[_0x9a97('0x1e')](_0x4c2bfb));_0x39dc7c(_0x4c2bfb);})[_0x9a97('0x16')](function(_0x160c26){logger[_0x9a97('0x13')](_0x9a97('0x17'),_0x160c26[_0x9a97('0x15')],_0x5dc362);_0x12c5ed(_0x27e4b6[_0x9a97('0x13')](0x1f4,_0x160c26['message']));});});};exports['AddTagsToWhatsappInteraction']=function(_0x4f3a5e){return new Promise(function(_0x1b4ea7,_0x5c2203){return db['WhatsappInteraction']['find']({'where':_0x4f3a5e[_0x9a97('0x1a')]?_0x4f3a5e['options'][_0x9a97('0x1b')]||null:null})[_0x9a97('0xf')](function(_0x34dd93){if(_0x34dd93){return _0x34dd93[_0x9a97('0x1f')](_0x4f3a5e[_0x9a97('0x19')]['ids'],_[_0x9a97('0x20')](_0x4f3a5e[_0x9a97('0x19')],[_0x9a97('0x21'),'id'])||{});}})[_0x9a97('0x22')](function(_0x340590){logger['info'](_0x9a97('0x23'),_0x4f3a5e);logger[_0x9a97('0x12')]('AddTags',_0x4f3a5e,JSON[_0x9a97('0x1e')](_0x340590));_0x1b4ea7(_0x340590);})[_0x9a97('0x16')](function(_0x39ca44){logger[_0x9a97('0x13')](_0x9a97('0x23'),_0x39ca44[_0x9a97('0x15')],_0x4f3a5e);_0x5c2203(_this[_0x9a97('0x13')](0x1f4,_0x39ca44[_0x9a97('0x15')]));});});};
\ No newline at end of file
+var _0x0c9d=['client','http','redis','defaults','localhost','register','then','info','WhatsappInteraction,\x20%s,\x20%s','request\x20sent','stringify','error','message','result','catch','UpdateWhatsappInteraction','WhatsappInteraction','update','body','options','raw','where','attributes','limit','debug','AddTagsToWhatsappInteraction','addTags','ids','spread','AddTags','lodash','moment','bluebird','ioredis','../../mysqldb','../../config/utils','jayson/promise'];(function(_0x2f02a6,_0x503e2f){var _0xfc37f6=function(_0x3b2213){while(--_0x3b2213){_0x2f02a6['push'](_0x2f02a6['shift']());}};_0xfc37f6(++_0x503e2f);}(_0x0c9d,0x121));var _0xd0c9=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x0c9d[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0xd0c9('0x0'));var util=require('util');var moment=require(_0xd0c9('0x1'));var BPromise=require(_0xd0c9('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xd0c9('0x3'));var db=require(_0xd0c9('0x4'))['db'];var utils=require(_0xd0c9('0x5'));var logger=require('../../config/logger')('rpc');var config=require('../../config/environment');var jayson=require(_0xd0c9('0x6'));var client=jayson[_0xd0c9('0x7')][_0xd0c9('0x8')]({'port':0x232a});config[_0xd0c9('0x9')]=_[_0xd0c9('0xa')](config['redis'],{'host':_0xd0c9('0xb'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xd0c9('0x9')]));require('./whatsappInteraction.socket')[_0xd0c9('0xc')](socket);function respondWithRpcPromise(_0xae99b7,_0x3480d2,_0x11d0f2){return new BPromise(function(_0x9e2384,_0x1ee84a){return client['request'](_0xae99b7,_0x11d0f2)[_0xd0c9('0xd')](function(_0x221395){logger[_0xd0c9('0xe')](_0xd0c9('0xf'),_0x3480d2,'request\x20sent');logger['debug']('WhatsappInteraction,\x20%s,\x20%s,\x20%s',_0x3480d2,_0xd0c9('0x10'),JSON[_0xd0c9('0x11')](_0x221395));if(_0x221395['error']){if(_0x221395[_0xd0c9('0x12')]['code']===0x1f4){logger[_0xd0c9('0x12')](_0xd0c9('0xf'),_0x3480d2,_0x221395['error'][_0xd0c9('0x13')]);return _0x1ee84a(_0x221395['error'][_0xd0c9('0x13')]);}logger[_0xd0c9('0x12')]('WhatsappInteraction,\x20%s,\x20%s',_0x3480d2,_0x221395[_0xd0c9('0x12')][_0xd0c9('0x13')]);return _0x9e2384(_0x221395[_0xd0c9('0x12')][_0xd0c9('0x13')]);}else{logger[_0xd0c9('0xe')](_0xd0c9('0xf'),_0x3480d2,'request\x20sent');_0x9e2384(_0x221395[_0xd0c9('0x14')][_0xd0c9('0x13')]);}})[_0xd0c9('0x15')](function(_0x45cc72){logger[_0xd0c9('0x12')](_0xd0c9('0xf'),_0x3480d2,_0x45cc72);_0x1ee84a(_0x45cc72);});});}exports[_0xd0c9('0x16')]=function(_0x168000){var _0x13fe25=this;return new Promise(function(_0x52604d,_0x3155d1){return db[_0xd0c9('0x17')][_0xd0c9('0x18')](_0x168000[_0xd0c9('0x19')],{'raw':_0x168000[_0xd0c9('0x1a')]?_0x168000[_0xd0c9('0x1a')][_0xd0c9('0x1b')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x168000[_0xd0c9('0x1a')]?_0x168000['options'][_0xd0c9('0x1c')]||null:null,'attributes':_0x168000[_0xd0c9('0x1a')]?_0x168000[_0xd0c9('0x1a')][_0xd0c9('0x1d')]||null:null,'limit':_0x168000[_0xd0c9('0x1a')]?_0x168000['options'][_0xd0c9('0x1e')]||null:null})[_0xd0c9('0xd')](function(_0x1b0f62){logger['info']('UpdateWhatsappInteraction',_0x168000);logger[_0xd0c9('0x1f')](_0xd0c9('0x16'),_0x168000,JSON['stringify'](_0x1b0f62));_0x52604d(_0x1b0f62);})[_0xd0c9('0x15')](function(_0x3000f0){logger[_0xd0c9('0x12')](_0xd0c9('0x16'),_0x3000f0[_0xd0c9('0x13')],_0x168000);_0x3155d1(_0x13fe25[_0xd0c9('0x12')](0x1f4,_0x3000f0['message']));});});};exports[_0xd0c9('0x20')]=function(_0x435488){return new Promise(function(_0x42d2fc,_0x1b4a3a){return db['WhatsappInteraction']['find']({'where':_0x435488[_0xd0c9('0x1a')]?_0x435488[_0xd0c9('0x1a')][_0xd0c9('0x1c')]||null:null})[_0xd0c9('0xd')](function(_0x4a9868){if(_0x4a9868){return _0x4a9868[_0xd0c9('0x21')](_0x435488['body'][_0xd0c9('0x22')],_['omit'](_0x435488[_0xd0c9('0x19')],['ids','id'])||{});}})[_0xd0c9('0x23')](function(_0x393b9f){logger[_0xd0c9('0xe')]('AddTags',_0x435488);logger[_0xd0c9('0x1f')](_0xd0c9('0x24'),_0x435488,JSON[_0xd0c9('0x11')](_0x393b9f));_0x42d2fc(_0x393b9f);})[_0xd0c9('0x15')](function(_0x550d0d){logger[_0xd0c9('0x12')]('AddTags',_0x550d0d[_0xd0c9('0x13')],_0x435488);_0x1b4a3a(_this[_0xd0c9('0x12')](0x1f4,_0x550d0d['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb8be=['whatsappInteraction:','save','remove','update','emit','removeListener','register','length'];(function(_0x2460fc,_0x39b5f6){var _0x422375=function(_0x238373){while(--_0x238373){_0x2460fc['push'](_0x2460fc['shift']());}};_0x422375(++_0x39b5f6);}(_0xb8be,0x81));var _0xeb8b=function(_0x152678,_0x11e0ac){_0x152678=_0x152678-0x0;var _0x311a9=_0xb8be[_0x152678];return _0x311a9;};'use strict';var WhatsappInteractionEvents=require('./whatsappInteraction.events');var events=[_0xeb8b('0x0'),_0xeb8b('0x1'),_0xeb8b('0x2')];function createListener(_0x2ca6b7,_0x323189){return function(_0x2c64a6){_0x323189[_0xeb8b('0x3')](_0x2ca6b7,_0x2c64a6);};}function removeListener(_0x1eb97d,_0x261280){return function(){WhatsappInteractionEvents[_0xeb8b('0x4')](_0x1eb97d,_0x261280);};}exports[_0xeb8b('0x5')]=function(_0x4f2628){for(var _0x43ba3e=0x0,_0x222d4c=events[_0xeb8b('0x6')];_0x43ba3e<_0x222d4c;_0x43ba3e++){var _0x31cc1b=events[_0x43ba3e];var _0xa9c33c=createListener(_0xeb8b('0x7')+_0x31cc1b,_0x4f2628);WhatsappInteractionEvents['on'](_0x31cc1b,_0xa9c33c);}};
\ No newline at end of file
+var _0x9292=['update','emit','removeListener','register','length','whatsappInteraction:','./whatsappInteraction.events','save','remove'];(function(_0x502c7d,_0x2f1285){var _0x30b7ed=function(_0x2d92f3){while(--_0x2d92f3){_0x502c7d['push'](_0x502c7d['shift']());}};_0x30b7ed(++_0x2f1285);}(_0x9292,0x189));var _0x2929=function(_0x26ea2f,_0x3e9249){_0x26ea2f=_0x26ea2f-0x0;var _0x4f492c=_0x9292[_0x26ea2f];return _0x4f492c;};'use strict';var WhatsappInteractionEvents=require(_0x2929('0x0'));var events=[_0x2929('0x1'),_0x2929('0x2'),_0x2929('0x3')];function createListener(_0x38df12,_0x24d2f6){return function(_0x1ebf89){_0x24d2f6[_0x2929('0x4')](_0x38df12,_0x1ebf89);};}function removeListener(_0xeae1d2,_0x8dff02){return function(){WhatsappInteractionEvents[_0x2929('0x5')](_0xeae1d2,_0x8dff02);};}exports[_0x2929('0x6')]=function(_0x483749){for(var _0x3f5ae7=0x0,_0x36edfb=events[_0x2929('0x7')];_0x3f5ae7<_0x36edfb;_0x3f5ae7++){var _0x23ef40=events[_0x3f5ae7];var _0x13247a=createListener(_0x2929('0x8')+_0x23ef40,_0x483749);WhatsappInteractionEvents['on'](_0x23ef40,_0x13247a);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6f8a=['/:id/reject','delete','destroy','multer','util','path','connect-timeout','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./whatsappMessage.controller','get','index','/describe','isAuthenticated','describe','/:id','show','tracked','whatsapp','whatsappmessage:create','create','post','status','put','accept'];(function(_0x122ef9,_0x451d2a){var _0x42fba0=function(_0x17c9d3){while(--_0x17c9d3){_0x122ef9['push'](_0x122ef9['shift']());}};_0x42fba0(++_0x451d2a);}(_0x6f8a,0x12c));var _0xa6f8=function(_0x5a8279,_0x319df1){_0x5a8279=_0x5a8279-0x0;var _0x1ea345=_0x6f8a[_0x5a8279];return _0x1ea345;};'use strict';var multer=require(_0xa6f8('0x0'));var util=require(_0xa6f8('0x1'));var path=require(_0xa6f8('0x2'));var timeout=require(_0xa6f8('0x3'));var express=require('express');var router=express['Router']();var fs_extra=require(_0xa6f8('0x4'));var auth=require(_0xa6f8('0x5'));var interaction=require(_0xa6f8('0x6'));var config=require(_0xa6f8('0x7'));var controller=require(_0xa6f8('0x8'));router[_0xa6f8('0x9')]('/',auth['isAuthenticated'](),controller[_0xa6f8('0xa')]);router[_0xa6f8('0x9')](_0xa6f8('0xb'),auth[_0xa6f8('0xc')](),controller[_0xa6f8('0xd')]);router[_0xa6f8('0x9')](_0xa6f8('0xe'),auth[_0xa6f8('0xc')](),controller[_0xa6f8('0xf')]);router['post']('/',auth['isAuthenticated'](),interaction[_0xa6f8('0x10')](_0xa6f8('0x11'),_0xa6f8('0x12')),controller[_0xa6f8('0x13')]);router[_0xa6f8('0x14')]('/:id/status',controller[_0xa6f8('0x15')]);router[_0xa6f8('0x16')](_0xa6f8('0xe'),auth['isAuthenticated'](),controller['update']);router['put']('/:id/accept',auth['isAuthenticated'](),controller[_0xa6f8('0x17')]);router[_0xa6f8('0x16')](_0xa6f8('0x18'),auth[_0xa6f8('0xc')](),controller['reject']);router[_0xa6f8('0x19')]('/:id',auth[_0xa6f8('0xc')](),controller[_0xa6f8('0x1a')]);module['exports']=router;
\ No newline at end of file
+var _0x55b0=['status','put','/:id/accept','accept','/:id/reject','delete','destroy','exports','multer','util','express','Router','fs-extra','../../components/auth/service','../../config/environment','./whatsappMessage.controller','isAuthenticated','get','/describe','/:id','show','post','whatsappmessage:create','create'];(function(_0xcd5a3d,_0x3c5b33){var _0xd43207=function(_0x17d976){while(--_0x17d976){_0xcd5a3d['push'](_0xcd5a3d['shift']());}};_0xd43207(++_0x3c5b33);}(_0x55b0,0x110));var _0x055b=function(_0x3c3b7e,_0x5193ce){_0x3c3b7e=_0x3c3b7e-0x0;var _0xcdd9e7=_0x55b0[_0x3c3b7e];return _0xcdd9e7;};'use strict';var multer=require(_0x055b('0x0'));var util=require(_0x055b('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0x055b('0x2'));var router=express[_0x055b('0x3')]();var fs_extra=require(_0x055b('0x4'));var auth=require(_0x055b('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0x055b('0x6'));var controller=require(_0x055b('0x7'));router['get']('/',auth[_0x055b('0x8')](),controller['index']);router[_0x055b('0x9')](_0x055b('0xa'),auth[_0x055b('0x8')](),controller['describe']);router[_0x055b('0x9')](_0x055b('0xb'),auth[_0x055b('0x8')](),controller[_0x055b('0xc')]);router[_0x055b('0xd')]('/',auth[_0x055b('0x8')](),interaction['tracked']('whatsapp',_0x055b('0xe')),controller[_0x055b('0xf')]);router['post']('/:id/status',controller[_0x055b('0x10')]);router[_0x055b('0x11')](_0x055b('0xb'),auth[_0x055b('0x8')](),controller['update']);router[_0x055b('0x11')](_0x055b('0x12'),auth[_0x055b('0x8')](),controller[_0x055b('0x13')]);router[_0x055b('0x11')](_0x055b('0x14'),auth[_0x055b('0x8')](),controller['reject']);router[_0x055b('0x15')]('/:id',auth[_0x055b('0x8')](),controller[_0x055b('0x16')]);module[_0x055b('0x17')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2408=['TEXT','medium','ENUM','out','STRING','DATE','BOOLEAN','sequelize'];(function(_0x45efcd,_0x2d3824){var _0x28ee7b=function(_0x1f3459){while(--_0x1f3459){_0x45efcd['push'](_0x45efcd['shift']());}};_0x28ee7b(++_0x2d3824);}(_0x2408,0x97));var _0x8240=function(_0x1449b1,_0x1b4547){_0x1449b1=_0x1449b1-0x0;var _0x1e77b4=_0x2408[_0x1449b1];return _0x1e77b4;};'use strict';var Sequelize=require(_0x8240('0x0'));module['exports']={'body':{'type':Sequelize[_0x8240('0x1')](_0x8240('0x2')),'allowNull':![]},'read':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'direction':{'type':Sequelize[_0x8240('0x3')]('in',_0x8240('0x4')),'defaultValue':_0x8240('0x4'),'allowNull':![]},'messageId':{'type':Sequelize[_0x8240('0x5')](0xbe)},'phone':{'type':Sequelize[_0x8240('0x5')]},'readAt':{'type':Sequelize[_0x8240('0x6')]},'secret':{'type':Sequelize[_0x8240('0x7')],'defaultValue':![]},'providerName':{'type':Sequelize[_0x8240('0x5')]},'providerResponse':{'type':Sequelize[_0x8240('0x1')]}};
\ No newline at end of file
+var _0x8a47=['TEXT','medium','ENUM','out','STRING','DATE','sequelize','exports'];(function(_0x16d80f,_0xbabe9d){var _0x2ec7f6=function(_0x191e8e){while(--_0x191e8e){_0x16d80f['push'](_0x16d80f['shift']());}};_0x2ec7f6(++_0xbabe9d);}(_0x8a47,0x17e));var _0x78a4=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0x8a47[_0x20a584];return _0x4b41a8;};'use strict';var Sequelize=require(_0x78a4('0x0'));module[_0x78a4('0x1')]={'body':{'type':Sequelize[_0x78a4('0x2')](_0x78a4('0x3')),'allowNull':![]},'read':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'direction':{'type':Sequelize[_0x78a4('0x4')]('in',_0x78a4('0x5')),'defaultValue':_0x78a4('0x5'),'allowNull':![]},'messageId':{'type':Sequelize[_0x78a4('0x6')](0xbe)},'phone':{'type':Sequelize['STRING']},'readAt':{'type':Sequelize[_0x78a4('0x7')]},'secret':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'providerName':{'type':Sequelize[_0x78a4('0x6')]},'providerResponse':{'type':Sequelize[_0x78a4('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8a66=['fields','length','hasOwnProperty','nolimit','order','where','pick','type','filter','merge','options','count','includeAll','findAll','rows','show','params','include','find','create','body','update','describe','whatsapp-interactions','accept','whatsapp','read','readAt','format','YYYY-MM-DD\x20HH:mm:ss','UserId','user','get','WhatsappInteraction','isNil','role','interaction','null','AcceptMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','ContactId','sequelize','Sequelize','QueryTypes','SELECT','contact','User','agent','fullname','internal','manual','interface','SIP/%s','channel','motionChannel','event','EventManager','WhatsappInteractionId','[WHATSAPPMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','RejectMessage','email','rejectmessage','WhatsappAccount','WhatsappAccountId','WhatsppMessage,\x20%s,\x20%s,\x20%s','received\x20delivery\x20report\x20from','twilio','MessageSid','messageId','MessageStatus','WhatsappAccount,\x20%s,\x20%s,\x20%s','inspect','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','ejs','fs-extra','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./whatsappMessage.socket','jayson/promise','client','http','then','info','WhatsappMessage,\x20%s,\x20%s','request\x20sent','debug','WhatsappMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','sendStatus','status','json','offset','undefined','limit','apply','reject','destroy','end','name','send','index','map','WhatsappMessage','rawAttributes','fieldName','key','model','query','keys','filters','intersection','attributes'];(function(_0x24f478,_0x305b72){var _0x1cd8b8=function(_0x382db0){while(--_0x382db0){_0x24f478['push'](_0x24f478['shift']());}};_0x1cd8b8(++_0x305b72);}(_0x8a66,0x166));var _0x68a6=function(_0x70fd53,_0x2a95a6){_0x70fd53=_0x70fd53-0x0;var _0x4b71c5=_0x8a66[_0x70fd53];return _0x4b71c5;};'use strict';var emlformat=require(_0x68a6('0x0'));var rimraf=require(_0x68a6('0x1'));var zipdir=require(_0x68a6('0x2'));var jsonpatch=require(_0x68a6('0x3'));var rp=require(_0x68a6('0x4'));var moment=require(_0x68a6('0x5'));var BPromise=require(_0x68a6('0x6'));var Mustache=require(_0x68a6('0x7'));var util=require(_0x68a6('0x8'));var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x68a6('0x9'));var fs=require('fs');var fs_extra=require(_0x68a6('0xa'));var _=require('lodash');var squel=require('squel');var crypto=require(_0x68a6('0xb'));var jsforce=require(_0x68a6('0xc'));var deskjs=require(_0x68a6('0xd'));var toCsv=require(_0x68a6('0xe'));var querystring=require(_0x68a6('0xf'));var Papa=require(_0x68a6('0x10'));var Redis=require(_0x68a6('0x11'));var authService=require('../../components/auth/service');var qs=require(_0x68a6('0x12'));var as=require(_0x68a6('0x13'));var hardwareService=require(_0x68a6('0x14'));var logger=require(_0x68a6('0x15'))(_0x68a6('0x16'));var utils=require(_0x68a6('0x17'));var config=require(_0x68a6('0x18'));var licenseUtil=require(_0x68a6('0x19'));var db=require(_0x68a6('0x1a'))['db'];config[_0x68a6('0x1b')]=_[_0x68a6('0x1c')](config[_0x68a6('0x1b')],{'host':_0x68a6('0x1d'),'port':0x18eb});var socket=require(_0x68a6('0x1e'))(new Redis(config['redis']));require(_0x68a6('0x1f'))['register'](socket);var jayson=require(_0x68a6('0x20'));var client=jayson[_0x68a6('0x21')][_0x68a6('0x22')]({'port':0x232c});var client9002=jayson['client'][_0x68a6('0x22')]({'port':0x232a});function respondWithRpcPromise(_0x1fd733,_0x51ac6d,_0x1f599d,_0x486876){return new BPromise(function(_0x2a12af,_0x5f562b){var _0x4ed667=_0x486876||client;return _0x4ed667['request'](_0x1fd733,_0x1f599d)[_0x68a6('0x23')](function(_0x90307b){logger[_0x68a6('0x24')](_0x68a6('0x25'),_0x51ac6d,_0x68a6('0x26'));logger[_0x68a6('0x27')](_0x68a6('0x28'),_0x51ac6d,_0x68a6('0x26'),JSON[_0x68a6('0x29')](_0x90307b));if(_0x90307b[_0x68a6('0x2a')]){if(_0x90307b['error'][_0x68a6('0x2b')]===0x1f4){logger[_0x68a6('0x2a')](_0x68a6('0x25'),_0x51ac6d,_0x90307b[_0x68a6('0x2a')]['message']);return _0x5f562b(_0x90307b[_0x68a6('0x2a')][_0x68a6('0x2c')]);}logger['error'](_0x68a6('0x25'),_0x51ac6d,_0x90307b['error']['message']);return _0x2a12af(_0x90307b[_0x68a6('0x2a')][_0x68a6('0x2c')]);}else{logger[_0x68a6('0x24')]('WhatsappMessage,\x20%s,\x20%s',_0x51ac6d,_0x68a6('0x26'));_0x2a12af(_0x90307b[_0x68a6('0x2d')][_0x68a6('0x2c')]);}})[_0x68a6('0x2e')](function(_0x4b1e08){logger['error'](_0x68a6('0x25'),_0x51ac6d,_0x4b1e08);_0x5f562b(_0x4b1e08);});});}function respondWithStatusCode(_0x315011,_0x4bf3e3){_0x4bf3e3=_0x4bf3e3||0xcc;return function(_0x1ee70b){if(_0x1ee70b){return _0x315011[_0x68a6('0x2f')](_0x4bf3e3);}return _0x315011[_0x68a6('0x30')](_0x4bf3e3)['end']();};}function respondWithResult(_0x28371f,_0x463f9b){_0x463f9b=_0x463f9b||0xc8;return function(_0x564c59){if(_0x564c59){return _0x28371f['status'](_0x463f9b)[_0x68a6('0x31')](_0x564c59);}};}function respondWithFilteredResult(_0x4d4ab9,_0x3475e7){return function(_0x25ad76){if(_0x25ad76){var _0x4a86cc=typeof _0x3475e7[_0x68a6('0x32')]===_0x68a6('0x33')&&typeof _0x3475e7[_0x68a6('0x34')]===_0x68a6('0x33');var _0x5d5df4=_0x25ad76['count'];var _0x15461d=_0x4a86cc?0x0:_0x3475e7[_0x68a6('0x32')];var _0x37f2a5=_0x4a86cc?_0x25ad76['count']:_0x3475e7['offset']+_0x3475e7[_0x68a6('0x34')];var _0x523cf4;if(_0x37f2a5>=_0x5d5df4){_0x37f2a5=_0x5d5df4;_0x523cf4=0xc8;}else{_0x523cf4=0xce;}_0x4d4ab9['status'](_0x523cf4);return _0x4d4ab9['set']('Content-Range',_0x15461d+'-'+_0x37f2a5+'/'+_0x5d5df4)[_0x68a6('0x31')](_0x25ad76);}return null;};}function patchUpdates(_0x5b179f){return function(_0x3f6410){try{jsonpatch[_0x68a6('0x35')](_0x3f6410,_0x5b179f,!![]);}catch(_0x55701c){return BPromise[_0x68a6('0x36')](_0x55701c);}return _0x3f6410['save']();};}function saveUpdates(_0x4f2aad,_0xc4f9f){return function(_0x904a2c){if(_0x904a2c){return _0x904a2c['update'](_0x4f2aad)['then'](function(_0x31fa5b){return _0x31fa5b;});}return null;};}function removeEntity(_0x5483c6,_0x31a014){return function(_0x558b3d){if(_0x558b3d){return _0x558b3d[_0x68a6('0x37')]()[_0x68a6('0x23')](function(){_0x5483c6[_0x68a6('0x30')](0xcc)[_0x68a6('0x38')]();});}};}function handleEntityNotFound(_0x45ad7a,_0x30b4f8){return function(_0x418caa){if(!_0x418caa){_0x45ad7a[_0x68a6('0x2f')](0x194);}return _0x418caa;};}function handleError(_0x4bebd6,_0xabe202){_0xabe202=_0xabe202||0x1f4;return function(_0x2a891c){logger[_0x68a6('0x2a')](_0x2a891c['stack']);if(_0x2a891c[_0x68a6('0x39')]){delete _0x2a891c['name'];}_0x4bebd6[_0x68a6('0x30')](_0xabe202)[_0x68a6('0x3a')](_0x2a891c);};}exports[_0x68a6('0x3b')]=function(_0x37ccc1,_0x52e7f6){var _0x192f8d={},_0x1f2060={},_0x26f30a={'count':0x0,'rows':[]};var _0x481dc8=_[_0x68a6('0x3c')](db[_0x68a6('0x3d')][_0x68a6('0x3e')],function(_0x25fb34){return{'name':_0x25fb34[_0x68a6('0x3f')],'type':_0x25fb34['type'][_0x68a6('0x40')]};});_0x1f2060[_0x68a6('0x41')]=_['map'](_0x481dc8,'name');_0x1f2060[_0x68a6('0x42')]=_[_0x68a6('0x43')](_0x37ccc1[_0x68a6('0x42')]);_0x1f2060[_0x68a6('0x44')]=_[_0x68a6('0x45')](_0x1f2060[_0x68a6('0x41')],_0x1f2060[_0x68a6('0x42')]);_0x192f8d[_0x68a6('0x46')]=_[_0x68a6('0x45')](_0x1f2060[_0x68a6('0x41')],qs[_0x68a6('0x47')](_0x37ccc1['query'][_0x68a6('0x47')]));_0x192f8d[_0x68a6('0x46')]=_0x192f8d[_0x68a6('0x46')][_0x68a6('0x48')]?_0x192f8d[_0x68a6('0x46')]:_0x1f2060['model'];if(!_0x37ccc1[_0x68a6('0x42')][_0x68a6('0x49')](_0x68a6('0x4a'))){_0x192f8d['limit']=qs[_0x68a6('0x34')](_0x37ccc1[_0x68a6('0x42')][_0x68a6('0x34')]);_0x192f8d[_0x68a6('0x32')]=qs[_0x68a6('0x32')](_0x37ccc1['query'][_0x68a6('0x32')]);}_0x192f8d[_0x68a6('0x4b')]=qs['sort'](_0x37ccc1[_0x68a6('0x42')]['sort']);_0x192f8d[_0x68a6('0x4c')]=qs['filters'](_[_0x68a6('0x4d')](_0x37ccc1[_0x68a6('0x42')],_0x1f2060[_0x68a6('0x44')]),_0x481dc8);if(_0x37ccc1[_0x68a6('0x42')]['filter']){_0x192f8d['where']=_['merge'](_0x192f8d[_0x68a6('0x4c')],{'$or':_[_0x68a6('0x3c')](_0x481dc8,function(_0x1a7d50){if(_0x1a7d50[_0x68a6('0x4e')]!=='VIRTUAL'){var _0x1e3eac={};_0x1e3eac[_0x1a7d50[_0x68a6('0x39')]]={'$like':'%'+_0x37ccc1[_0x68a6('0x42')][_0x68a6('0x4f')]+'%'};return _0x1e3eac;}})});}_0x192f8d=_[_0x68a6('0x50')]({},_0x192f8d,_0x37ccc1[_0x68a6('0x51')]);var _0x14797e={'where':_0x192f8d[_0x68a6('0x4c')]};return db[_0x68a6('0x3d')][_0x68a6('0x52')](_0x14797e)['then'](function(_0x29bf10){_0x26f30a['count']=_0x29bf10;if(_0x37ccc1[_0x68a6('0x42')][_0x68a6('0x53')]){_0x192f8d['include']=[{'all':!![]}];}return db[_0x68a6('0x3d')][_0x68a6('0x54')](_0x192f8d);})[_0x68a6('0x23')](function(_0x33d8b8){_0x26f30a[_0x68a6('0x55')]=_0x33d8b8;return _0x26f30a;})[_0x68a6('0x23')](respondWithFilteredResult(_0x52e7f6,_0x192f8d))['catch'](handleError(_0x52e7f6,null));};exports[_0x68a6('0x56')]=function(_0x52ddb5,_0xbf6d32){var _0xbf9d41={'raw':!![],'where':{'id':_0x52ddb5[_0x68a6('0x57')]['id']}},_0x303b5d={};_0x303b5d[_0x68a6('0x41')]=_[_0x68a6('0x43')](db[_0x68a6('0x3d')]['rawAttributes']);_0x303b5d[_0x68a6('0x42')]=_[_0x68a6('0x43')](_0x52ddb5[_0x68a6('0x42')]);_0x303b5d[_0x68a6('0x44')]=_[_0x68a6('0x45')](_0x303b5d[_0x68a6('0x41')],_0x303b5d['query']);_0xbf9d41[_0x68a6('0x46')]=_['intersection'](_0x303b5d[_0x68a6('0x41')],qs['fields'](_0x52ddb5[_0x68a6('0x42')][_0x68a6('0x47')]));_0xbf9d41[_0x68a6('0x46')]=_0xbf9d41['attributes'][_0x68a6('0x48')]?_0xbf9d41[_0x68a6('0x46')]:_0x303b5d[_0x68a6('0x41')];if(_0x52ddb5[_0x68a6('0x42')]['includeAll']){_0xbf9d41[_0x68a6('0x58')]=[{'all':!![]}];}_0xbf9d41=_[_0x68a6('0x50')]({},_0xbf9d41,_0x52ddb5[_0x68a6('0x51')]);return db['WhatsappMessage'][_0x68a6('0x59')](_0xbf9d41)[_0x68a6('0x23')](handleEntityNotFound(_0xbf6d32,null))['then'](respondWithResult(_0xbf6d32,null))[_0x68a6('0x2e')](handleError(_0xbf6d32,null));};exports[_0x68a6('0x5a')]=function(_0x1953d4,_0x3e4a5b){return db[_0x68a6('0x3d')][_0x68a6('0x5a')](_0x1953d4[_0x68a6('0x5b')],{})[_0x68a6('0x23')](respondWithResult(_0x3e4a5b,0xc9))[_0x68a6('0x2e')](handleError(_0x3e4a5b,null));};exports[_0x68a6('0x5c')]=function(_0x5c046b,_0x1c990d){if(_0x5c046b[_0x68a6('0x5b')]['id']){delete _0x5c046b[_0x68a6('0x5b')]['id'];}return db['WhatsappMessage'][_0x68a6('0x59')]({'where':{'id':_0x5c046b[_0x68a6('0x57')]['id']}})[_0x68a6('0x23')](handleEntityNotFound(_0x1c990d,null))[_0x68a6('0x23')](saveUpdates(_0x5c046b[_0x68a6('0x5b')],null))['then'](respondWithResult(_0x1c990d,null))[_0x68a6('0x2e')](handleError(_0x1c990d,null));};exports[_0x68a6('0x37')]=function(_0x22f112,_0x2653e8){return db[_0x68a6('0x3d')][_0x68a6('0x59')]({'where':{'id':_0x22f112[_0x68a6('0x57')]['id']}})[_0x68a6('0x23')](handleEntityNotFound(_0x2653e8,null))[_0x68a6('0x23')](removeEntity(_0x2653e8,null))[_0x68a6('0x2e')](handleError(_0x2653e8,null));};exports[_0x68a6('0x5d')]=function(_0x11c544,_0x3b12c3){return db[_0x68a6('0x3d')][_0x68a6('0x5d')]()[_0x68a6('0x23')](respondWithResult(_0x3b12c3,null))[_0x68a6('0x2e')](handleError(_0x3b12c3,null));};var interaction_log=require(_0x68a6('0x15'))(_0x68a6('0x5e'));exports[_0x68a6('0x5f')]=function(_0x1ce700,_0x17ac23,_0x52643d){var _0x3e0808={'agent':{},'channel':_0x68a6('0x60')};if(_0x1ce700['body']['id']){delete _0x1ce700[_0x68a6('0x5b')]['id'];}_0x1ce700[_0x68a6('0x5b')][_0x68a6('0x61')]=!![];_0x1ce700['body'][_0x68a6('0x62')]=moment()[_0x68a6('0x63')](_0x68a6('0x64'));_0x1ce700[_0x68a6('0x5b')]['UserId']=_0x1ce700[_0x68a6('0x5b')][_0x68a6('0x65')]||_0x1ce700[_0x68a6('0x66')]['id'];_0x3e0808['agent']['id']=_0x1ce700['body'][_0x68a6('0x65')];return db['WhatsappMessage']['find']({'where':{'id':_0x1ce700[_0x68a6('0x57')]['id'],'UserId':null}})['then'](handleEntityNotFound(_0x17ac23,null))[_0x68a6('0x23')](saveUpdates(_0x1ce700[_0x68a6('0x5b')],null))['then'](function(_0x37170c){if(_0x37170c){_0x3e0808[_0x68a6('0x2c')]=_0x37170c[_0x68a6('0x67')]({'plain':!![]});return db[_0x68a6('0x68')][_0x68a6('0x59')]({'where':{'id':_0x37170c['WhatsappInteractionId']}});}return null;})[_0x68a6('0x23')](handleEntityNotFound(_0x17ac23,null))['then'](function(_0x5abac5){if(_0x5abac5){return _0x5abac5[_0x68a6('0x5c')]({'UserId':_0x1ce700['body'][_0x68a6('0x65')],'read1stAt':_[_0x68a6('0x69')](_0x5abac5['read1stAt'])?moment()[_0x68a6('0x63')](_0x68a6('0x64')):undefined});}return null;})[_0x68a6('0x23')](function(_0x44b8de){if(_0x44b8de){_0x3e0808['interaction']=_0x44b8de[_0x68a6('0x67')]({'plain':!![]});interaction_log[_0x68a6('0x24')]('[WHATSAPPMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x1ce700[_0x68a6('0x66')]['id'],_0x1ce700[_0x68a6('0x66')][_0x68a6('0x39')],_0x1ce700[_0x68a6('0x66')][_0x68a6('0x6a')],_0x3e0808[_0x68a6('0x6b')]['id'],_0x1ce700['body']?JSON[_0x68a6('0x29')](_0x1ce700[_0x68a6('0x5b')]):_0x68a6('0x6c'));return respondWithRpcPromise(_0x68a6('0x6d'),'acceptMessage',_0x3e0808);}return null;})[_0x68a6('0x23')](function(_0x2739ec){var _0x578181=_0x68a6('0x6e')+_0x2739ec[_0x68a6('0x2c')][_0x68a6('0x6f')];return db[_0x68a6('0x70')]['query'](_0x578181,{'type':db[_0x68a6('0x71')][_0x68a6('0x72')][_0x68a6('0x73')],'raw':!![]})['then'](function(_0x366a49){return _0x366a49;});})[_0x68a6('0x23')](function(_0x3d7430){if(_0x3d7430){_0x3e0808[_0x68a6('0x2c')][_0x68a6('0x74')]=_0x3d7430[0x0];if(!_0x1ce700['body'][_0x68a6('0x65')])return;return db[_0x68a6('0x75')][_0x68a6('0x59')]({'where':{'id':_0x1ce700[_0x68a6('0x5b')]['UserId'],'role':_0x68a6('0x76')},'attributes':['id',_0x68a6('0x39'),_0x68a6('0x77'),'email',_0x68a6('0x78')],'raw':!![]});}return null;})['then'](function(_0x59a5c6){if(!_0x59a5c6)return null;_0x3e0808[_0x68a6('0x2c')][_0x68a6('0x76')]=_0x59a5c6;return _0x3e0808;})[_0x68a6('0x23')](function(_0x512834){if(_0x512834){if(_0x1ce700[_0x68a6('0x5b')][_0x68a6('0x79')]){_0x3e0808[_0x68a6('0x2c')][_0x68a6('0x7a')]=util[_0x68a6('0x63')](_0x68a6('0x7b'),_0x1ce700[_0x68a6('0x66')][_0x68a6('0x39')]);_0x3e0808['message'][_0x68a6('0x7c')]=_0x3e0808[_0x68a6('0x7c')];_0x3e0808['message'][_0x68a6('0x7d')]=_0x3e0808[_0x68a6('0x7c')];_0x3e0808['message'][_0x68a6('0x7e')]='accept';return respondWithRpcPromise(_0x68a6('0x7f'),'EventManager',{'event':'acceptmessage','message':_0x3e0808[_0x68a6('0x2c')]},client9002)[_0x68a6('0x23')](function(){return _0x3e0808;});}return _0x3e0808;}return null;})[_0x68a6('0x23')](respondWithResult(_0x17ac23,null))[_0x68a6('0x2e')](handleError(_0x17ac23,null));};var interaction_log=require(_0x68a6('0x15'))(_0x68a6('0x5e'));exports[_0x68a6('0x36')]=function(_0x2c4f71,_0x444ee5,_0xe02943){var _0x2d86c4={'agent':{},'channel':'whatsapp'};if(_0x2c4f71[_0x68a6('0x5b')]['id']){delete _0x2c4f71['body']['id'];}_0x2c4f71['body']['UserId']=_0x2c4f71['body'][_0x68a6('0x65')]||_0x2c4f71[_0x68a6('0x66')]['id'];_0x2d86c4[_0x68a6('0x76')]['id']=_0x2c4f71['body']['UserId'];return db['WhatsappMessage'][_0x68a6('0x59')]({'where':{'id':_0x2c4f71[_0x68a6('0x57')]['id'],'UserId':null}})[_0x68a6('0x23')](handleEntityNotFound(_0x444ee5,null))['then'](function(_0x231d55){if(_0x231d55){_0x2d86c4[_0x68a6('0x2c')]=_0x231d55[_0x68a6('0x67')]({'plain':!![]});return db['WhatsappInteraction'][_0x68a6('0x59')]({'where':{'id':_0x231d55[_0x68a6('0x80')]}});}return null;})[_0x68a6('0x23')](handleEntityNotFound(_0x444ee5,null))['then'](function(_0x18ac6c){if(_0x18ac6c){_0x2d86c4[_0x68a6('0x6b')]=_0x18ac6c[_0x68a6('0x67')]({'plain':!![]});interaction_log[_0x68a6('0x24')](_0x68a6('0x81'),_0x2c4f71[_0x68a6('0x66')]['id'],_0x2c4f71[_0x68a6('0x66')][_0x68a6('0x39')],_0x2c4f71['user'][_0x68a6('0x6a')],_0x2d86c4[_0x68a6('0x6b')]['id'],_0x2c4f71[_0x68a6('0x5b')]?JSON[_0x68a6('0x29')](_0x2c4f71['body']):'null');return respondWithRpcPromise(_0x68a6('0x82'),'rejectMessage',_0x2d86c4);}return null;})['then'](function(_0x374ed2){var _0xc97200=_0x68a6('0x6e')+_0x374ed2['message'][_0x68a6('0x6f')];return db[_0x68a6('0x70')][_0x68a6('0x42')](_0xc97200,{'type':db['Sequelize'][_0x68a6('0x72')][_0x68a6('0x73')],'raw':!![]})[_0x68a6('0x23')](function(_0x47eaa6){return _0x47eaa6;});})[_0x68a6('0x23')](function(_0x466a0d){if(_0x466a0d){_0x2d86c4['message']['contact']=_0x466a0d[0x0];if(!_0x2c4f71[_0x68a6('0x5b')]['UserId'])return;return db[_0x68a6('0x75')][_0x68a6('0x59')]({'where':{'id':_0x2c4f71[_0x68a6('0x5b')][_0x68a6('0x65')],'role':_0x68a6('0x76')},'attributes':['id','name',_0x68a6('0x77'),_0x68a6('0x83'),_0x68a6('0x78')],'raw':!![]});}return null;})[_0x68a6('0x23')](function(_0x1a556c){if(!_0x1a556c)return null;_0x2d86c4[_0x68a6('0x2c')]['agent']=_0x1a556c;return _0x2d86c4;})[_0x68a6('0x23')](function(_0x26a9d4){if(_0x26a9d4){_0x26a9d4[_0x68a6('0x2c')][_0x68a6('0x7a')]=util[_0x68a6('0x63')](_0x68a6('0x7b'),_0x2c4f71[_0x68a6('0x66')][_0x68a6('0x39')]);_0x26a9d4[_0x68a6('0x2c')]['channel']=_0x2d86c4[_0x68a6('0x7c')];_0x26a9d4[_0x68a6('0x2c')][_0x68a6('0x7d')]=_0x2d86c4[_0x68a6('0x7c')];_0x26a9d4[_0x68a6('0x2c')]['event']=_0x68a6('0x36');respondWithRpcPromise(_0x68a6('0x7f'),'EventManager',{'event':_0x68a6('0x84'),'message':_0x26a9d4[_0x68a6('0x2c')]},client9002);return _0x2d86c4;}return null;})['then'](respondWithResult(_0x444ee5,null))[_0x68a6('0x2e')](handleError(_0x444ee5,null));};exports[_0x68a6('0x30')]=function(_0x8ab34e,_0x3d515e,_0x205b3f){if(_0x8ab34e[_0x68a6('0x5b')]['id']){delete _0x8ab34e[_0x68a6('0x5b')]['id'];}var _0x5e6017;return db[_0x68a6('0x3d')][_0x68a6('0x59')]({'where':{'id':_0x8ab34e[_0x68a6('0x57')]['id']}})['then'](handleEntityNotFound(_0x3d515e,null))[_0x68a6('0x23')](function(_0x814eb0){if(_0x814eb0){_0x5e6017=_0x814eb0;return db[_0x68a6('0x85')][_0x68a6('0x59')]({'where':{'id':_0x814eb0[_0x68a6('0x86')]}});}})['then'](handleEntityNotFound(_0x3d515e,null))[_0x68a6('0x23')](function(_0x46ce17){if(_0x46ce17){logger[_0x68a6('0x27')](_0x68a6('0x87'),_0x68a6('0x30'),_0x68a6('0x88'),_0x46ce17[_0x68a6('0x4e')],util['inspect'](_0x8ab34e[_0x68a6('0x5b')],{'showHidden':![],'depth':null}));switch(_0x46ce17[_0x68a6('0x4e')]){case _0x68a6('0x89'):if(_0x8ab34e[_0x68a6('0x5b')]['MessageSid']&&_0x8ab34e['body'][_0x68a6('0x8a')]===_0x5e6017[_0x68a6('0x8b')]&&_0x8ab34e[_0x68a6('0x5b')][_0x68a6('0x8c')]&&_0x8ab34e[_0x68a6('0x5b')][_0x68a6('0x8c')]==='read'){return _0x5e6017[_0x68a6('0x5c')]({'read':!![]});}else{logger[_0x68a6('0x2a')](_0x68a6('0x8d'),_0x68a6('0x30'),_0x68a6('0x89'),util[_0x68a6('0x8e')](_0x8ab34e[_0x68a6('0x5b')],{'showHidden':![],'depth':null}));}break;}return _0x5e6017;}})[_0x68a6('0x23')](respondWithResult(_0x3d515e,null))['catch'](handleError(_0x3d515e,null));};
\ No newline at end of file
+var _0x292c=['WhatsappMessage,\x20%s,\x20%s,\x20%s','stringify','code','error','message','result','catch','end','json','offset','undefined','count','limit','status','Content-Range','reject','save','update','destroy','sendStatus','name','send','index','rawAttributes','type','key','map','keys','query','filters','intersection','model','fields','length','attributes','hasOwnProperty','sort','filter','merge','where','VIRTUAL','options','WhatsappMessage','includeAll','include','findAll','rows','show','params','create','body','find','describe','../../config/logger','whatsapp-interactions','accept','readAt','YYYY-MM-DD\x20HH:mm:ss','UserId','user','agent','WhatsappInteraction','WhatsappInteractionId','isNil','format','interaction','get','info','role','null','AcceptMessage','acceptMessage','ContactId','Sequelize','QueryTypes','contact','manual','SIP/%s','channel','event','EventManager','acceptmessage','whatsapp','[WHATSAPPMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','RejectMessage','rejectMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','sequelize','SELECT','User','fullname','email','internal','WhatsappAccount','debug','WhatsppMessage,\x20%s,\x20%s,\x20%s','twilio','messageId','MessageStatus','read','WhatsappAccount,\x20%s,\x20%s,\x20%s','inspect','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','./whatsappMessage.socket','client','http','then','WhatsappMessage,\x20%s,\x20%s','request\x20sent'];(function(_0x4b13f0,_0x1273df){var _0x2a1955=function(_0x5634ea){while(--_0x5634ea){_0x4b13f0['push'](_0x4b13f0['shift']());}};_0x2a1955(++_0x1273df);}(_0x292c,0x66));var _0xc292=function(_0x2ec2bf,_0x64e983){_0x2ec2bf=_0x2ec2bf-0x0;var _0x2c279c=_0x292c[_0x2ec2bf];return _0x2c279c;};'use strict';var emlformat=require(_0xc292('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xc292('0x1'));var jsonpatch=require(_0xc292('0x2'));var rp=require(_0xc292('0x3'));var moment=require(_0xc292('0x4'));var BPromise=require(_0xc292('0x5'));var Mustache=require('mustache');var util=require(_0xc292('0x6'));var path=require('path');var sox=require('sox');var csv=require(_0xc292('0x7'));var ejs=require(_0xc292('0x8'));var fs=require('fs');var fs_extra=require(_0xc292('0x9'));var _=require(_0xc292('0xa'));var squel=require(_0xc292('0xb'));var crypto=require(_0xc292('0xc'));var jsforce=require(_0xc292('0xd'));var deskjs=require(_0xc292('0xe'));var toCsv=require(_0xc292('0x7'));var querystring=require(_0xc292('0xf'));var Papa=require('papaparse');var Redis=require(_0xc292('0x10'));var authService=require(_0xc292('0x11'));var qs=require(_0xc292('0x12'));var as=require(_0xc292('0x13'));var hardwareService=require(_0xc292('0x14'));var logger=require('../../config/logger')(_0xc292('0x15'));var utils=require(_0xc292('0x16'));var config=require(_0xc292('0x17'));var licenseUtil=require(_0xc292('0x18'));var db=require(_0xc292('0x19'))['db'];config[_0xc292('0x1a')]=_['defaults'](config[_0xc292('0x1a')],{'host':_0xc292('0x1b'),'port':0x18eb});var socket=require(_0xc292('0x1c'))(new Redis(config[_0xc292('0x1a')]));require(_0xc292('0x1d'))['register'](socket);var jayson=require('jayson/promise');var client=jayson[_0xc292('0x1e')][_0xc292('0x1f')]({'port':0x232c});var client9002=jayson['client'][_0xc292('0x1f')]({'port':0x232a});function respondWithRpcPromise(_0x53a23e,_0x5e765a,_0x3f762b,_0x5bde28){return new BPromise(function(_0x156747,_0x357bbe){var _0x18b73b=_0x5bde28||client;return _0x18b73b['request'](_0x53a23e,_0x3f762b)[_0xc292('0x20')](function(_0x5b3d01){logger['info'](_0xc292('0x21'),_0x5e765a,_0xc292('0x22'));logger['debug'](_0xc292('0x23'),_0x5e765a,_0xc292('0x22'),JSON[_0xc292('0x24')](_0x5b3d01));if(_0x5b3d01['error']){if(_0x5b3d01['error'][_0xc292('0x25')]===0x1f4){logger[_0xc292('0x26')](_0xc292('0x21'),_0x5e765a,_0x5b3d01[_0xc292('0x26')][_0xc292('0x27')]);return _0x357bbe(_0x5b3d01[_0xc292('0x26')][_0xc292('0x27')]);}logger[_0xc292('0x26')](_0xc292('0x21'),_0x5e765a,_0x5b3d01['error']['message']);return _0x156747(_0x5b3d01[_0xc292('0x26')][_0xc292('0x27')]);}else{logger['info'](_0xc292('0x21'),_0x5e765a,_0xc292('0x22'));_0x156747(_0x5b3d01[_0xc292('0x28')]['message']);}})[_0xc292('0x29')](function(_0x342d73){logger['error']('WhatsappMessage,\x20%s,\x20%s',_0x5e765a,_0x342d73);_0x357bbe(_0x342d73);});});}function respondWithStatusCode(_0x46066d,_0x415167){_0x415167=_0x415167||0xcc;return function(_0x53fcb9){if(_0x53fcb9){return _0x46066d['sendStatus'](_0x415167);}return _0x46066d['status'](_0x415167)[_0xc292('0x2a')]();};}function respondWithResult(_0x10b77e,_0x49b9fd){_0x49b9fd=_0x49b9fd||0xc8;return function(_0x8683a2){if(_0x8683a2){return _0x10b77e['status'](_0x49b9fd)[_0xc292('0x2b')](_0x8683a2);}};}function respondWithFilteredResult(_0x20452e,_0x4ae177){return function(_0x4c5b13){if(_0x4c5b13){var _0x23cb2c=typeof _0x4ae177[_0xc292('0x2c')]==='undefined'&&typeof _0x4ae177['limit']===_0xc292('0x2d');var _0x47e88a=_0x4c5b13[_0xc292('0x2e')];var _0xe8a56e=_0x23cb2c?0x0:_0x4ae177[_0xc292('0x2c')];var _0x51e4de=_0x23cb2c?_0x4c5b13[_0xc292('0x2e')]:_0x4ae177[_0xc292('0x2c')]+_0x4ae177[_0xc292('0x2f')];var _0x242d97;if(_0x51e4de>=_0x47e88a){_0x51e4de=_0x47e88a;_0x242d97=0xc8;}else{_0x242d97=0xce;}_0x20452e[_0xc292('0x30')](_0x242d97);return _0x20452e['set'](_0xc292('0x31'),_0xe8a56e+'-'+_0x51e4de+'/'+_0x47e88a)[_0xc292('0x2b')](_0x4c5b13);}return null;};}function patchUpdates(_0x3c8387){return function(_0x253f7c){try{jsonpatch['apply'](_0x253f7c,_0x3c8387,!![]);}catch(_0x5462e1){return BPromise[_0xc292('0x32')](_0x5462e1);}return _0x253f7c[_0xc292('0x33')]();};}function saveUpdates(_0x7c960c,_0x18812b){return function(_0x261792){if(_0x261792){return _0x261792[_0xc292('0x34')](_0x7c960c)['then'](function(_0x563bf1){return _0x563bf1;});}return null;};}function removeEntity(_0x1771de,_0x50c026){return function(_0x4e57e8){if(_0x4e57e8){return _0x4e57e8[_0xc292('0x35')]()[_0xc292('0x20')](function(){_0x1771de[_0xc292('0x30')](0xcc)[_0xc292('0x2a')]();});}};}function handleEntityNotFound(_0x171ae1,_0x53dbec){return function(_0x36b146){if(!_0x36b146){_0x171ae1[_0xc292('0x36')](0x194);}return _0x36b146;};}function handleError(_0x4602a8,_0x4ae407){_0x4ae407=_0x4ae407||0x1f4;return function(_0x1f0d2c){logger[_0xc292('0x26')](_0x1f0d2c['stack']);if(_0x1f0d2c[_0xc292('0x37')]){delete _0x1f0d2c[_0xc292('0x37')];}_0x4602a8[_0xc292('0x30')](_0x4ae407)[_0xc292('0x38')](_0x1f0d2c);};}exports[_0xc292('0x39')]=function(_0x5e97c1,_0x5b6044){var _0x2986cc={},_0x1b0fc8={},_0x2f8d2f={'count':0x0,'rows':[]};var _0x29e53e=_['map'](db['WhatsappMessage'][_0xc292('0x3a')],function(_0x284a06){return{'name':_0x284a06['fieldName'],'type':_0x284a06[_0xc292('0x3b')][_0xc292('0x3c')]};});_0x1b0fc8['model']=_[_0xc292('0x3d')](_0x29e53e,_0xc292('0x37'));_0x1b0fc8['query']=_[_0xc292('0x3e')](_0x5e97c1[_0xc292('0x3f')]);_0x1b0fc8[_0xc292('0x40')]=_[_0xc292('0x41')](_0x1b0fc8[_0xc292('0x42')],_0x1b0fc8[_0xc292('0x3f')]);_0x2986cc['attributes']=_[_0xc292('0x41')](_0x1b0fc8[_0xc292('0x42')],qs[_0xc292('0x43')](_0x5e97c1['query'][_0xc292('0x43')]));_0x2986cc['attributes']=_0x2986cc['attributes'][_0xc292('0x44')]?_0x2986cc[_0xc292('0x45')]:_0x1b0fc8[_0xc292('0x42')];if(!_0x5e97c1['query'][_0xc292('0x46')]('nolimit')){_0x2986cc[_0xc292('0x2f')]=qs[_0xc292('0x2f')](_0x5e97c1[_0xc292('0x3f')]['limit']);_0x2986cc['offset']=qs[_0xc292('0x2c')](_0x5e97c1[_0xc292('0x3f')]['offset']);}_0x2986cc['order']=qs[_0xc292('0x47')](_0x5e97c1[_0xc292('0x3f')][_0xc292('0x47')]);_0x2986cc['where']=qs[_0xc292('0x40')](_['pick'](_0x5e97c1['query'],_0x1b0fc8[_0xc292('0x40')]),_0x29e53e);if(_0x5e97c1['query'][_0xc292('0x48')]){_0x2986cc['where']=_[_0xc292('0x49')](_0x2986cc[_0xc292('0x4a')],{'$or':_[_0xc292('0x3d')](_0x29e53e,function(_0x1a0653){if(_0x1a0653[_0xc292('0x3b')]!==_0xc292('0x4b')){var _0x55bd05={};_0x55bd05[_0x1a0653[_0xc292('0x37')]]={'$like':'%'+_0x5e97c1[_0xc292('0x3f')]['filter']+'%'};return _0x55bd05;}})});}_0x2986cc=_[_0xc292('0x49')]({},_0x2986cc,_0x5e97c1[_0xc292('0x4c')]);var _0x2e5836={'where':_0x2986cc[_0xc292('0x4a')]};return db[_0xc292('0x4d')][_0xc292('0x2e')](_0x2e5836)['then'](function(_0x326218){_0x2f8d2f[_0xc292('0x2e')]=_0x326218;if(_0x5e97c1[_0xc292('0x3f')][_0xc292('0x4e')]){_0x2986cc[_0xc292('0x4f')]=[{'all':!![]}];}return db[_0xc292('0x4d')][_0xc292('0x50')](_0x2986cc);})[_0xc292('0x20')](function(_0x399332){_0x2f8d2f[_0xc292('0x51')]=_0x399332;return _0x2f8d2f;})[_0xc292('0x20')](respondWithFilteredResult(_0x5b6044,_0x2986cc))[_0xc292('0x29')](handleError(_0x5b6044,null));};exports[_0xc292('0x52')]=function(_0x749f98,_0x294d8b){var _0x1f5a6c={'raw':!![],'where':{'id':_0x749f98[_0xc292('0x53')]['id']}},_0x4b3072={};_0x4b3072[_0xc292('0x42')]=_[_0xc292('0x3e')](db[_0xc292('0x4d')]['rawAttributes']);_0x4b3072[_0xc292('0x3f')]=_[_0xc292('0x3e')](_0x749f98[_0xc292('0x3f')]);_0x4b3072[_0xc292('0x40')]=_[_0xc292('0x41')](_0x4b3072['model'],_0x4b3072[_0xc292('0x3f')]);_0x1f5a6c['attributes']=_[_0xc292('0x41')](_0x4b3072[_0xc292('0x42')],qs[_0xc292('0x43')](_0x749f98[_0xc292('0x3f')][_0xc292('0x43')]));_0x1f5a6c[_0xc292('0x45')]=_0x1f5a6c['attributes'][_0xc292('0x44')]?_0x1f5a6c['attributes']:_0x4b3072[_0xc292('0x42')];if(_0x749f98[_0xc292('0x3f')][_0xc292('0x4e')]){_0x1f5a6c['include']=[{'all':!![]}];}_0x1f5a6c=_['merge']({},_0x1f5a6c,_0x749f98['options']);return db[_0xc292('0x4d')]['find'](_0x1f5a6c)['then'](handleEntityNotFound(_0x294d8b,null))[_0xc292('0x20')](respondWithResult(_0x294d8b,null))[_0xc292('0x29')](handleError(_0x294d8b,null));};exports['create']=function(_0x116dc2,_0x490a78){return db[_0xc292('0x4d')][_0xc292('0x54')](_0x116dc2[_0xc292('0x55')],{})[_0xc292('0x20')](respondWithResult(_0x490a78,0xc9))[_0xc292('0x29')](handleError(_0x490a78,null));};exports['update']=function(_0x550332,_0x52cc9d){if(_0x550332['body']['id']){delete _0x550332['body']['id'];}return db[_0xc292('0x4d')][_0xc292('0x56')]({'where':{'id':_0x550332['params']['id']}})[_0xc292('0x20')](handleEntityNotFound(_0x52cc9d,null))[_0xc292('0x20')](saveUpdates(_0x550332[_0xc292('0x55')],null))[_0xc292('0x20')](respondWithResult(_0x52cc9d,null))[_0xc292('0x29')](handleError(_0x52cc9d,null));};exports[_0xc292('0x35')]=function(_0x4a0578,_0x57dcda){return db[_0xc292('0x4d')][_0xc292('0x56')]({'where':{'id':_0x4a0578['params']['id']}})[_0xc292('0x20')](handleEntityNotFound(_0x57dcda,null))[_0xc292('0x20')](removeEntity(_0x57dcda,null))[_0xc292('0x29')](handleError(_0x57dcda,null));};exports[_0xc292('0x57')]=function(_0x1e73e5,_0x1cbb2f){return db[_0xc292('0x4d')][_0xc292('0x57')]()[_0xc292('0x20')](respondWithResult(_0x1cbb2f,null))['catch'](handleError(_0x1cbb2f,null));};var interaction_log=require(_0xc292('0x58'))(_0xc292('0x59'));exports[_0xc292('0x5a')]=function(_0x265ff3,_0xf39dad,_0x3b2295){var _0x4a7d4e={'agent':{},'channel':'whatsapp'};if(_0x265ff3[_0xc292('0x55')]['id']){delete _0x265ff3[_0xc292('0x55')]['id'];}_0x265ff3['body']['read']=!![];_0x265ff3[_0xc292('0x55')][_0xc292('0x5b')]=moment()['format'](_0xc292('0x5c'));_0x265ff3[_0xc292('0x55')][_0xc292('0x5d')]=_0x265ff3[_0xc292('0x55')][_0xc292('0x5d')]||_0x265ff3[_0xc292('0x5e')]['id'];_0x4a7d4e[_0xc292('0x5f')]['id']=_0x265ff3[_0xc292('0x55')]['UserId'];return db[_0xc292('0x4d')][_0xc292('0x56')]({'where':{'id':_0x265ff3[_0xc292('0x53')]['id'],'UserId':null}})[_0xc292('0x20')](handleEntityNotFound(_0xf39dad,null))[_0xc292('0x20')](saveUpdates(_0x265ff3[_0xc292('0x55')],null))[_0xc292('0x20')](function(_0x66b944){if(_0x66b944){_0x4a7d4e['message']=_0x66b944['get']({'plain':!![]});return db[_0xc292('0x60')][_0xc292('0x56')]({'where':{'id':_0x66b944[_0xc292('0x61')]}});}return null;})[_0xc292('0x20')](handleEntityNotFound(_0xf39dad,null))['then'](function(_0x2c47a4){if(_0x2c47a4){return _0x2c47a4[_0xc292('0x34')]({'UserId':_0x265ff3[_0xc292('0x55')][_0xc292('0x5d')],'read1stAt':_[_0xc292('0x62')](_0x2c47a4['read1stAt'])?moment()[_0xc292('0x63')](_0xc292('0x5c')):undefined});}return null;})[_0xc292('0x20')](function(_0xf2a55a){if(_0xf2a55a){_0x4a7d4e[_0xc292('0x64')]=_0xf2a55a[_0xc292('0x65')]({'plain':!![]});interaction_log[_0xc292('0x66')]('[WHATSAPPMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x265ff3[_0xc292('0x5e')]['id'],_0x265ff3[_0xc292('0x5e')][_0xc292('0x37')],_0x265ff3['user'][_0xc292('0x67')],_0x4a7d4e[_0xc292('0x64')]['id'],_0x265ff3[_0xc292('0x55')]?JSON['stringify'](_0x265ff3['body']):_0xc292('0x68'));return respondWithRpcPromise(_0xc292('0x69'),_0xc292('0x6a'),_0x4a7d4e);}return null;})[_0xc292('0x20')](function(_0x2c7ba5){var _0x1d777a='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x2c7ba5[_0xc292('0x27')][_0xc292('0x6b')];return db['sequelize']['query'](_0x1d777a,{'type':db[_0xc292('0x6c')][_0xc292('0x6d')]['SELECT'],'raw':!![]})['then'](function(_0x21c0db){return _0x21c0db;});})['then'](function(_0x221cbe){if(_0x221cbe){_0x4a7d4e[_0xc292('0x27')][_0xc292('0x6e')]=_0x221cbe[0x0];if(!_0x265ff3[_0xc292('0x55')][_0xc292('0x5d')])return;return db['User']['find']({'where':{'id':_0x265ff3[_0xc292('0x55')][_0xc292('0x5d')],'role':_0xc292('0x5f')},'attributes':['id',_0xc292('0x37'),'fullname','email','internal'],'raw':!![]});}return null;})[_0xc292('0x20')](function(_0x1ecc8b){if(!_0x1ecc8b)return null;_0x4a7d4e[_0xc292('0x27')]['agent']=_0x1ecc8b;return _0x4a7d4e;})[_0xc292('0x20')](function(_0x2ce5e0){if(_0x2ce5e0){if(_0x265ff3[_0xc292('0x55')][_0xc292('0x6f')]){_0x4a7d4e[_0xc292('0x27')]['interface']=util[_0xc292('0x63')](_0xc292('0x70'),_0x265ff3['user'][_0xc292('0x37')]);_0x4a7d4e[_0xc292('0x27')][_0xc292('0x71')]=_0x4a7d4e[_0xc292('0x71')];_0x4a7d4e[_0xc292('0x27')][_0xc292('0x72')]=_0xc292('0x5a');return respondWithRpcPromise('EventManager',_0xc292('0x73'),{'event':_0xc292('0x74'),'message':_0x4a7d4e[_0xc292('0x27')]},client9002)[_0xc292('0x20')](function(){return _0x4a7d4e;});}return _0x4a7d4e;}return null;})[_0xc292('0x20')](respondWithResult(_0xf39dad,null))[_0xc292('0x29')](handleError(_0xf39dad,null));};var interaction_log=require(_0xc292('0x58'))(_0xc292('0x59'));exports[_0xc292('0x32')]=function(_0x17301e,_0xe7a862,_0x23cf35){var _0x12540f={'agent':{},'channel':_0xc292('0x75')};if(_0x17301e[_0xc292('0x55')]['id']){delete _0x17301e['body']['id'];}_0x17301e[_0xc292('0x55')]['UserId']=_0x17301e[_0xc292('0x55')]['UserId']||_0x17301e['user']['id'];_0x12540f['agent']['id']=_0x17301e[_0xc292('0x55')]['UserId'];return db[_0xc292('0x4d')]['find']({'where':{'id':_0x17301e[_0xc292('0x53')]['id'],'UserId':null}})['then'](handleEntityNotFound(_0xe7a862,null))[_0xc292('0x20')](function(_0x1d3df0){if(_0x1d3df0){_0x12540f['message']=_0x1d3df0[_0xc292('0x65')]({'plain':!![]});return db['WhatsappInteraction'][_0xc292('0x56')]({'where':{'id':_0x1d3df0[_0xc292('0x61')]}});}return null;})[_0xc292('0x20')](handleEntityNotFound(_0xe7a862,null))['then'](function(_0x4a5074){if(_0x4a5074){_0x12540f[_0xc292('0x64')]=_0x4a5074[_0xc292('0x65')]({'plain':!![]});interaction_log['info'](_0xc292('0x76'),_0x17301e[_0xc292('0x5e')]['id'],_0x17301e[_0xc292('0x5e')][_0xc292('0x37')],_0x17301e['user'][_0xc292('0x67')],_0x12540f[_0xc292('0x64')]['id'],_0x17301e[_0xc292('0x55')]?JSON['stringify'](_0x17301e[_0xc292('0x55')]):_0xc292('0x68'));return respondWithRpcPromise(_0xc292('0x77'),_0xc292('0x78'),_0x12540f);}return null;})[_0xc292('0x20')](function(_0x383786){var _0x42594c=_0xc292('0x79')+_0x383786[_0xc292('0x27')][_0xc292('0x6b')];return db[_0xc292('0x7a')]['query'](_0x42594c,{'type':db[_0xc292('0x6c')][_0xc292('0x6d')][_0xc292('0x7b')],'raw':!![]})[_0xc292('0x20')](function(_0x347557){return _0x347557;});})['then'](function(_0x2704e3){if(_0x2704e3){_0x12540f[_0xc292('0x27')][_0xc292('0x6e')]=_0x2704e3[0x0];if(!_0x17301e[_0xc292('0x55')][_0xc292('0x5d')])return;return db[_0xc292('0x7c')][_0xc292('0x56')]({'where':{'id':_0x17301e[_0xc292('0x55')][_0xc292('0x5d')],'role':'agent'},'attributes':['id','name',_0xc292('0x7d'),_0xc292('0x7e'),_0xc292('0x7f')],'raw':!![]});}return null;})['then'](function(_0x1465ba){if(!_0x1465ba)return null;_0x12540f[_0xc292('0x27')][_0xc292('0x5f')]=_0x1465ba;return _0x12540f;})['then'](function(_0x4c6793){if(_0x4c6793){_0x4c6793[_0xc292('0x27')]['interface']=util['format'](_0xc292('0x70'),_0x17301e[_0xc292('0x5e')][_0xc292('0x37')]);_0x4c6793['message'][_0xc292('0x71')]=_0x12540f[_0xc292('0x71')];_0x4c6793[_0xc292('0x27')][_0xc292('0x72')]=_0xc292('0x32');respondWithRpcPromise(_0xc292('0x73'),_0xc292('0x73'),{'event':'rejectmessage','message':_0x4c6793[_0xc292('0x27')]},client9002);return _0x12540f;}return null;})['then'](respondWithResult(_0xe7a862,null))[_0xc292('0x29')](handleError(_0xe7a862,null));};exports[_0xc292('0x30')]=function(_0x40d253,_0x28a17c,_0xdb6759){if(_0x40d253[_0xc292('0x55')]['id']){delete _0x40d253['body']['id'];}var _0xb6e760;return db['WhatsappMessage']['find']({'where':{'id':_0x40d253[_0xc292('0x53')]['id']}})[_0xc292('0x20')](handleEntityNotFound(_0x28a17c,null))[_0xc292('0x20')](function(_0x530843){if(_0x530843){_0xb6e760=_0x530843;return db[_0xc292('0x80')][_0xc292('0x56')]({'where':{'id':_0x530843['WhatsappAccountId']}});}})[_0xc292('0x20')](handleEntityNotFound(_0x28a17c,null))['then'](function(_0x4247ef){if(_0x4247ef){logger[_0xc292('0x81')](_0xc292('0x82'),'status','received\x20delivery\x20report\x20from',_0x4247ef['type'],util['inspect'](_0x40d253[_0xc292('0x55')],{'showHidden':![],'depth':null}));switch(_0x4247ef['type']){case _0xc292('0x83'):if(_0x40d253[_0xc292('0x55')]['MessageSid']&&_0x40d253[_0xc292('0x55')]['MessageSid']===_0xb6e760[_0xc292('0x84')]&&_0x40d253[_0xc292('0x55')]['MessageStatus']&&_0x40d253[_0xc292('0x55')][_0xc292('0x85')]===_0xc292('0x86')){return _0xb6e760['update']({'read':!![]});}else{logger[_0xc292('0x26')](_0xc292('0x87'),_0xc292('0x30'),_0xc292('0x83'),util[_0xc292('0x88')](_0x40d253['body'],{'showHidden':![],'depth':null}));}break;}return _0xb6e760;}})[_0xc292('0x20')](respondWithResult(_0x28a17c,null))[_0xc292('0x29')](handleError(_0x28a17c,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x91a7=['../../mysqldb','WhatsappMessage','setMaxListeners','update','emit','hasOwnProperty','exports'];(function(_0x17d9e3,_0x1f969c){var _0x14192d=function(_0x159745){while(--_0x159745){_0x17d9e3['push'](_0x17d9e3['shift']());}};_0x14192d(++_0x1f969c);}(_0x91a7,0xe7));var _0x791a=function(_0x175676,_0x1c4484){_0x175676=_0x175676-0x0;var _0x326bd7=_0x91a7[_0x175676];return _0x326bd7;};'use strict';var EventEmitter=require('events');var WhatsappMessage=require(_0x791a('0x0'))['db'][_0x791a('0x1')];var WhatsappMessageEvents=new EventEmitter();WhatsappMessageEvents[_0x791a('0x2')](0x0);var events={'afterCreate':'save','afterUpdate':_0x791a('0x3'),'afterDestroy':'remove'};function emitEvent(_0x2f6392){return function(_0x535640,_0x50ab29,_0x32fe2b){WhatsappMessageEvents[_0x791a('0x4')](_0x2f6392+':'+_0x535640['id'],_0x535640);WhatsappMessageEvents['emit'](_0x2f6392,_0x535640);_0x32fe2b(null);};}for(var e in events){if(events[_0x791a('0x5')](e)){var event=events[e];WhatsappMessage['hook'](e,emitEvent(event));}}module[_0x791a('0x6')]=WhatsappMessageEvents;
\ No newline at end of file
+var _0x80df=['remove','emit','hasOwnProperty','hook','events','../../mysqldb','WhatsappMessage','setMaxListeners','update'];(function(_0x352a03,_0x3e1e59){var _0x3a998b=function(_0x51a08b){while(--_0x51a08b){_0x352a03['push'](_0x352a03['shift']());}};_0x3a998b(++_0x3e1e59);}(_0x80df,0x17e));var _0xf80d=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0x80df[_0x20a584];return _0x4b41a8;};'use strict';var EventEmitter=require(_0xf80d('0x0'));var WhatsappMessage=require(_0xf80d('0x1'))['db'][_0xf80d('0x2')];var WhatsappMessageEvents=new EventEmitter();WhatsappMessageEvents[_0xf80d('0x3')](0x0);var events={'afterCreate':'save','afterUpdate':_0xf80d('0x4'),'afterDestroy':_0xf80d('0x5')};function emitEvent(_0xfd239e){return function(_0x21365c,_0x15d302,_0xa6b1bb){WhatsappMessageEvents[_0xf80d('0x6')](_0xfd239e+':'+_0x21365c['id'],_0x21365c);WhatsappMessageEvents[_0xf80d('0x6')](_0xfd239e,_0x21365c);_0xa6b1bb(null);};}for(var e in events){if(events[_0xf80d('0x7')](e)){var event=events[e];WhatsappMessage[_0xf80d('0x8')](e,emitEvent(event));}}module['exports']=WhatsappMessageEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3988=['lodash','util','../../config/logger','moment','request-promise','node-fetch','rimraf','../../config/environment','./whatsappMessage.attributes','exports','WhatsappMessage','whatsapp_messages','messageId','body','FULLTEXT','models','get','direction','toLowerCase','out','UserId','WhatsappInteraction','findOne','then','update','error','secret','WhatsappAccountId','type','twilio','accountSid','authToken','phone','messages','whatsapp:','remote','/api/whatsapp/messages/','token','catch','WhatsappMessage,\x20%s,\x20%s,\x20%s','afterCreate','inspect','Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken','/messages/','POST','Bearer\x20','application/json','log','LOG\x20~\x20~\x20SEND','statuses','message_id','finally','utf8mb4','utf8mb4_unicode_ci'];(function(_0x9d0c07,_0xde4af2){var _0x28029d=function(_0x54444a){while(--_0x54444a){_0x9d0c07['push'](_0x9d0c07['shift']());}};_0x28029d(++_0xde4af2);}(_0x3988,0x17a));var _0x8398=function(_0x36707e,_0x45ebfb){_0x36707e=_0x36707e-0x0;var _0x59044b=_0x3988[_0x36707e];return _0x59044b;};'use strict';var _=require(_0x8398('0x0'));var util=require(_0x8398('0x1'));var logger=require(_0x8398('0x2'))('api');var moment=require(_0x8398('0x3'));var BPromise=require('bluebird');var rp=require(_0x8398('0x4'));var fetch=require(_0x8398('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0x8398('0x6'));var config=require(_0x8398('0x7'));var attributes=require(_0x8398('0x8'));module[_0x8398('0x9')]=function(_0x267b75,_0x7f9ef0){return _0x267b75['define'](_0x8398('0xa'),attributes,{'tableName':_0x8398('0xb'),'paranoid':![],'indexes':[{'name':_0x8398('0xc'),'fields':[_0x8398('0xc')]},{'name':'fti_whatsapp_messages','fields':[_0x8398('0xd')],'type':_0x8398('0xe')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x54158b,_0x974b86,_0x1fa8c9){var _0x29efe8=_0x267b75[_0x8398('0xf')];var _0x35e02f=_0x54158b[_0x8398('0x10')]({'plain':!![]});if(_0x35e02f[_0x8398('0x11')][_0x8398('0x12')]()==='in'||_0x35e02f[_0x8398('0x11')][_0x8398('0x12')]()===_0x8398('0x13')&&!_0x35e02f['secret']&&!_['isNil'](_0x35e02f[_0x8398('0x14')])){_0x29efe8[_0x8398('0x15')][_0x8398('0x16')]({'where':{'id':_0x35e02f['WhatsappInteractionId']}})[_0x8398('0x17')](function(_0x258ae5){if(_0x258ae5){_0x258ae5[_0x8398('0x18')]({'lastMsgAt':_0x35e02f['createdAt'],'lastMsgDirection':_0x35e02f['direction']['toLowerCase']()});}})['catch'](function(_0x3d5249){console[_0x8398('0x19')](_0x3d5249);});}if(_0x35e02f[_0x8398('0x11')]==='out'&&!_0x35e02f[_0x8398('0x1a')]){var _0x221f63;_0x29efe8['WhatsappAccount']['find']({'where':{'id':_0x35e02f[_0x8398('0x1b')]},'raw':!![]})[_0x8398('0x17')](function(_0x16a989){_0x221f63=_0x16a989;if(_0x221f63&&_0x221f63[_0x8398('0x1c')]){switch(_0x221f63[_0x8398('0x1c')]){case _0x8398('0x1d'):var _0x13f856=require(_0x8398('0x1d'));if(_0x221f63[_0x8398('0x1e')]&&_0x221f63[_0x8398('0x1f')]&&_0x221f63[_0x8398('0x20')]){var _0x451645=new _0x13f856(_0x221f63[_0x8398('0x1e')],_0x221f63['authToken']);_0x451645[_0x8398('0x21')]['create']({'body':_0x35e02f[_0x8398('0xd')],'to':_0x8398('0x22')+_0x35e02f[_0x8398('0x20')],'from':_0x8398('0x22')+_0x221f63[_0x8398('0x20')],'statusCallback':_0x221f63[_0x8398('0x23')]+_0x8398('0x24')+_0x35e02f['id']+'/status?token='+_0x221f63[_0x8398('0x25')]})['then'](function(_0x433ede){if(_0x433ede['sid']){return _0x54158b[_0x8398('0x18')]({'messageId':_0x433ede['sid']});}})[_0x8398('0x26')](function(_0x1410d3){logger[_0x8398('0x19')](_0x8398('0x27'),_0x8398('0x28'),_0x8398('0x1d'),util[_0x8398('0x29')](_0x1410d3,{'showHidden':![],'depth':null}));});}else{logger[_0x8398('0x19')](_0x8398('0x27'),_0x8398('0x28'),_0x8398('0x1d'),_0x8398('0x2a'));}break;case'sinch':var _0x1063cc=_0x221f63[_0x8398('0x1e')];var _0xbef39=_0x221f63[_0x8398('0x20')];var _0xb1e117=_0x221f63[_0x8398('0x1f')];var _0x8dabad=_0x221f63['baseUrl']+'/whatsapp/v1/'+_0x1063cc+_0x8398('0x2b');var _0x286651={'to':[_0x35e02f['phone']],'message':{'type':'text','text':_0x35e02f['body']}};var _0x338965={'method':_0x8398('0x2c'),'uri':_0x8dabad,'headers':{'Authorization':_0x8398('0x2d')+_0xb1e117,'Content-Type':_0x8398('0x2e')},'body':_0x286651,'json':!![]};rp(_0x338965)[_0x8398('0x17')](function(_0x37da1b){console[_0x8398('0x2f')](_0x8398('0x30'),_0x37da1b);if(_0x37da1b['statuses'][0x0]['message_id']){return _0x54158b[_0x8398('0x18')]({'messageId':_0x37da1b[_0x8398('0x31')][0x0][_0x8398('0x32')]});}})['catch'](function(_0x7b37e9){console[_0x8398('0x2f')](_0x7b37e9);});break;}}})[_0x8398('0x33')](function(){_0x1fa8c9();});}else{_0x1fa8c9();}}},'charset':_0x8398('0x34'),'collate':_0x8398('0x35')});};
\ No newline at end of file
+var _0x6ffd=['util','../../config/logger','api','bluebird','../../config/environment','./whatsappMessage.attributes','exports','define','WhatsappMessage','messageId','fti_whatsapp_messages','FULLTEXT','models','get','direction','toLowerCase','out','secret','isNil','UserId','WhatsappInteraction','findOne','then','update','catch','error','WhatsappAccount','find','WhatsappAccountId','type','twilio','phone','accountSid','authToken','create','body','whatsapp:','remote','/api/whatsapp/messages/','token','WhatsappMessage,\x20%s,\x20%s,\x20%s','afterCreate','inspect','finally','utf8mb4','lodash'];(function(_0x50e417,_0x1e68a6){var _0x193295=function(_0x5bd92b){while(--_0x5bd92b){_0x50e417['push'](_0x50e417['shift']());}};_0x193295(++_0x1e68a6);}(_0x6ffd,0x16f));var _0xd6ff=function(_0x3cdc7e,_0x401e1e){_0x3cdc7e=_0x3cdc7e-0x0;var _0x48c81d=_0x6ffd[_0x3cdc7e];return _0x48c81d;};'use strict';var _=require(_0xd6ff('0x0'));var util=require(_0xd6ff('0x1'));var logger=require(_0xd6ff('0x2'))(_0xd6ff('0x3'));var moment=require('moment');var BPromise=require(_0xd6ff('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0xd6ff('0x5'));var attributes=require(_0xd6ff('0x6'));module[_0xd6ff('0x7')]=function(_0x176f1c,_0x3b5d12){return _0x176f1c[_0xd6ff('0x8')](_0xd6ff('0x9'),attributes,{'tableName':'whatsapp_messages','paranoid':![],'indexes':[{'name':_0xd6ff('0xa'),'fields':['messageId']},{'name':_0xd6ff('0xb'),'fields':['body'],'type':_0xd6ff('0xc')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x43e197,_0x50c986,_0x124a03){var _0x359195=_0x176f1c[_0xd6ff('0xd')];var _0xaffd49=_0x43e197[_0xd6ff('0xe')]({'plain':!![]});if(_0xaffd49[_0xd6ff('0xf')][_0xd6ff('0x10')]()==='in'||_0xaffd49['direction'][_0xd6ff('0x10')]()===_0xd6ff('0x11')&&!_0xaffd49[_0xd6ff('0x12')]&&!_[_0xd6ff('0x13')](_0xaffd49[_0xd6ff('0x14')])){_0x359195[_0xd6ff('0x15')][_0xd6ff('0x16')]({'where':{'id':_0xaffd49['WhatsappInteractionId']}})[_0xd6ff('0x17')](function(_0x294f9d){if(_0x294f9d){_0x294f9d[_0xd6ff('0x18')]({'lastMsgAt':_0xaffd49['createdAt'],'lastMsgDirection':_0xaffd49[_0xd6ff('0xf')][_0xd6ff('0x10')]()});}})[_0xd6ff('0x19')](function(_0xd63158){console[_0xd6ff('0x1a')](_0xd63158);});}if(_0xaffd49[_0xd6ff('0xf')]===_0xd6ff('0x11')&&!_0xaffd49[_0xd6ff('0x12')]){var _0x43d6ab;_0x359195[_0xd6ff('0x1b')][_0xd6ff('0x1c')]({'where':{'id':_0xaffd49[_0xd6ff('0x1d')]},'raw':!![]})[_0xd6ff('0x17')](function(_0x1e0abe){_0x43d6ab=_0x1e0abe;if(_0x43d6ab&&_0x43d6ab[_0xd6ff('0x1e')]){switch(_0x43d6ab['type']){case _0xd6ff('0x1f'):var _0x3e7421=require(_0xd6ff('0x1f'));if(_0x43d6ab['accountSid']&&_0x43d6ab['authToken']&&_0x43d6ab[_0xd6ff('0x20')]){var _0x52f11a=new _0x3e7421(_0x43d6ab[_0xd6ff('0x21')],_0x43d6ab[_0xd6ff('0x22')]);_0x52f11a['messages'][_0xd6ff('0x23')]({'body':_0xaffd49[_0xd6ff('0x24')],'to':'whatsapp:'+_0xaffd49[_0xd6ff('0x20')],'from':_0xd6ff('0x25')+_0x43d6ab[_0xd6ff('0x20')],'statusCallback':_0x43d6ab[_0xd6ff('0x26')]+_0xd6ff('0x27')+_0xaffd49['id']+'/status?token='+_0x43d6ab[_0xd6ff('0x28')]})[_0xd6ff('0x17')](function(_0x574d0a){if(_0x574d0a['sid']){return _0x43e197[_0xd6ff('0x18')]({'messageId':_0x574d0a['sid']});}})[_0xd6ff('0x19')](function(_0x2dd771){logger[_0xd6ff('0x1a')](_0xd6ff('0x29'),_0xd6ff('0x2a'),'twilio',util[_0xd6ff('0x2b')](_0x2dd771,{'showHidden':![],'depth':null}));});}else{logger[_0xd6ff('0x1a')](_0xd6ff('0x29'),'afterCreate',_0xd6ff('0x1f'),'Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken');}break;}}})[_0xd6ff('0x2c')](function(){_0x124a03();});}else{_0x124a03();}}},'charset':_0xd6ff('0x2d'),'collate':'utf8mb4_unicode_ci'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x92cd=['message','result','CreateWhatsappMessage','WhatsappMessage','create','options','raw','debug','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','defaults','localhost','./whatsappMessage.socket','then','info','request\x20sent','WhatsappMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','WhatsappMessage,\x20%s,\x20%s'];(function(_0x3f32b8,_0x2b6e83){var _0x41bca7=function(_0x3a2360){while(--_0x3a2360){_0x3f32b8['push'](_0x3f32b8['shift']());}};_0x41bca7(++_0x2b6e83);}(_0x92cd,0x1a8));var _0xd92c=function(_0x28aea5,_0x3bb12e){_0x28aea5=_0x28aea5-0x0;var _0x6a55f9=_0x92cd[_0x28aea5];return _0x6a55f9;};'use strict';var _=require(_0xd92c('0x0'));var util=require(_0xd92c('0x1'));var moment=require(_0xd92c('0x2'));var BPromise=require(_0xd92c('0x3'));var rs=require(_0xd92c('0x4'));var fs=require('fs');var Redis=require(_0xd92c('0x5'));var db=require(_0xd92c('0x6'))['db'];var utils=require(_0xd92c('0x7'));var logger=require(_0xd92c('0x8'))(_0xd92c('0x9'));var config=require('../../config/environment');var jayson=require(_0xd92c('0xa'));var client=jayson[_0xd92c('0xb')][_0xd92c('0xc')]({'port':0x232a});config['redis']=_[_0xd92c('0xd')](config['redis'],{'host':_0xd92c('0xe'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0xd92c('0xf'))['register'](socket);function respondWithRpcPromise(_0x502ab1,_0x5066c9,_0xe2573b){return new BPromise(function(_0x3c1ac7,_0x1bd864){return client['request'](_0x502ab1,_0xe2573b)[_0xd92c('0x10')](function(_0x1bd9f5){logger[_0xd92c('0x11')]('WhatsappMessage,\x20%s,\x20%s',_0x5066c9,_0xd92c('0x12'));logger['debug'](_0xd92c('0x13'),_0x5066c9,_0xd92c('0x12'),JSON[_0xd92c('0x14')](_0x1bd9f5));if(_0x1bd9f5[_0xd92c('0x15')]){if(_0x1bd9f5[_0xd92c('0x15')][_0xd92c('0x16')]===0x1f4){logger[_0xd92c('0x15')](_0xd92c('0x17'),_0x5066c9,_0x1bd9f5[_0xd92c('0x15')][_0xd92c('0x18')]);return _0x1bd864(_0x1bd9f5['error']['message']);}logger[_0xd92c('0x15')]('WhatsappMessage,\x20%s,\x20%s',_0x5066c9,_0x1bd9f5['error']['message']);return _0x3c1ac7(_0x1bd9f5[_0xd92c('0x15')]['message']);}else{logger[_0xd92c('0x11')](_0xd92c('0x17'),_0x5066c9,'request\x20sent');_0x3c1ac7(_0x1bd9f5[_0xd92c('0x19')][_0xd92c('0x18')]);}})['catch'](function(_0x5a043e){logger[_0xd92c('0x15')](_0xd92c('0x17'),_0x5066c9,_0x5a043e);_0x1bd864(_0x5a043e);});});}exports[_0xd92c('0x1a')]=function(_0x351fda){var _0x4a815b=this;return new Promise(function(_0x176c4a,_0x2e1089){return db[_0xd92c('0x1b')][_0xd92c('0x1c')](_0x351fda['body'],{'raw':_0x351fda[_0xd92c('0x1d')]?_0x351fda[_0xd92c('0x1d')][_0xd92c('0x1e')]===undefined?!![]:![]:!![]})[_0xd92c('0x10')](function(_0x4ce065){logger[_0xd92c('0x11')](_0xd92c('0x1a'),_0x351fda);logger[_0xd92c('0x1f')](_0xd92c('0x1a'),_0x351fda,JSON['stringify'](_0x4ce065));_0x176c4a(_0x4ce065);})['catch'](function(_0x1a38cb){logger[_0xd92c('0x15')](_0xd92c('0x1a'),_0x1a38cb[_0xd92c('0x18')],_0x351fda);_0x2e1089(_0x4a815b[_0xd92c('0x15')](0x1f4,_0x1a38cb[_0xd92c('0x18')]));});});};
\ No newline at end of file
+var _0x2535=['../../config/utils','rpc','../../config/environment','client','http','redis','defaults','socket.io-emitter','./whatsappMessage.socket','register','then','info','WhatsappMessage,\x20%s,\x20%s','request\x20sent','debug','WhatsappMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','WhatsappMessage','create','body','options','raw','CreateWhatsappMessage','lodash','util','moment','bluebird','randomstring','ioredis'];(function(_0x4f50d6,_0x100adc){var _0x412340=function(_0x71d209){while(--_0x71d209){_0x4f50d6['push'](_0x4f50d6['shift']());}};_0x412340(++_0x100adc);}(_0x2535,0x14e));var _0x5253=function(_0xd9e0bb,_0x182f87){_0xd9e0bb=_0xd9e0bb-0x0;var _0x4926c2=_0x2535[_0xd9e0bb];return _0x4926c2;};'use strict';var _=require(_0x5253('0x0'));var util=require(_0x5253('0x1'));var moment=require(_0x5253('0x2'));var BPromise=require(_0x5253('0x3'));var rs=require(_0x5253('0x4'));var fs=require('fs');var Redis=require(_0x5253('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0x5253('0x6'));var logger=require('../../config/logger')(_0x5253('0x7'));var config=require(_0x5253('0x8'));var jayson=require('jayson/promise');var client=jayson[_0x5253('0x9')][_0x5253('0xa')]({'port':0x232a});config[_0x5253('0xb')]=_[_0x5253('0xc')](config[_0x5253('0xb')],{'host':'localhost','port':0x18eb});var socket=require(_0x5253('0xd'))(new Redis(config[_0x5253('0xb')]));require(_0x5253('0xe'))[_0x5253('0xf')](socket);function respondWithRpcPromise(_0x30deaa,_0x27f754,_0x4655e7){return new BPromise(function(_0xebe9ee,_0x1cda52){return client['request'](_0x30deaa,_0x4655e7)[_0x5253('0x10')](function(_0x45105e){logger[_0x5253('0x11')](_0x5253('0x12'),_0x27f754,_0x5253('0x13'));logger[_0x5253('0x14')](_0x5253('0x15'),_0x27f754,_0x5253('0x13'),JSON[_0x5253('0x16')](_0x45105e));if(_0x45105e[_0x5253('0x17')]){if(_0x45105e[_0x5253('0x17')][_0x5253('0x18')]===0x1f4){logger['error'](_0x5253('0x12'),_0x27f754,_0x45105e[_0x5253('0x17')]['message']);return _0x1cda52(_0x45105e[_0x5253('0x17')][_0x5253('0x19')]);}logger[_0x5253('0x17')](_0x5253('0x12'),_0x27f754,_0x45105e['error'][_0x5253('0x19')]);return _0xebe9ee(_0x45105e['error'][_0x5253('0x19')]);}else{logger[_0x5253('0x11')](_0x5253('0x12'),_0x27f754,'request\x20sent');_0xebe9ee(_0x45105e[_0x5253('0x1a')][_0x5253('0x19')]);}})[_0x5253('0x1b')](function(_0x2324f8){logger[_0x5253('0x17')](_0x5253('0x12'),_0x27f754,_0x2324f8);_0x1cda52(_0x2324f8);});});}exports['CreateWhatsappMessage']=function(_0x1a8078){var _0x2368d1=this;return new Promise(function(_0x4819fa,_0x1ed474){return db[_0x5253('0x1c')][_0x5253('0x1d')](_0x1a8078[_0x5253('0x1e')],{'raw':_0x1a8078[_0x5253('0x1f')]?_0x1a8078[_0x5253('0x1f')][_0x5253('0x20')]===undefined?!![]:![]:!![]})['then'](function(_0x106ab2){logger['info'](_0x5253('0x21'),_0x1a8078);logger[_0x5253('0x14')](_0x5253('0x21'),_0x1a8078,JSON[_0x5253('0x16')](_0x106ab2));_0x4819fa(_0x106ab2);})[_0x5253('0x1b')](function(_0x31d2ab){logger[_0x5253('0x17')]('CreateWhatsappMessage',_0x31d2ab['message'],_0x1a8078);_0x1ed474(_0x2368d1[_0x5253('0x17')](0x1f4,_0x31d2ab[_0x5253('0x19')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x99ff=['./whatsappMessage.events','save','remove','update','emit','removeListener','register','length','whatsappMessage:'];(function(_0x565ed7,_0x398228){var _0x183ad7=function(_0x5a43d7){while(--_0x5a43d7){_0x565ed7['push'](_0x565ed7['shift']());}};_0x183ad7(++_0x398228);}(_0x99ff,0xbd));var _0xf99f=function(_0x24783a,_0x75041){_0x24783a=_0x24783a-0x0;var _0x227a77=_0x99ff[_0x24783a];return _0x227a77;};'use strict';var WhatsappMessageEvents=require(_0xf99f('0x0'));var events=[_0xf99f('0x1'),_0xf99f('0x2'),_0xf99f('0x3')];function createListener(_0x2d4113,_0x448d61){return function(_0x58c6b8){_0x448d61[_0xf99f('0x4')](_0x2d4113,_0x58c6b8);};}function removeListener(_0x2f3f46,_0x5c5679){return function(){WhatsappMessageEvents[_0xf99f('0x5')](_0x2f3f46,_0x5c5679);};}exports[_0xf99f('0x6')]=function(_0x220c6c){for(var _0xa7977b=0x0,_0x568752=events[_0xf99f('0x7')];_0xa7977b<_0x568752;_0xa7977b++){var _0x192e54=events[_0xa7977b];var _0x25703a=createListener(_0xf99f('0x8')+_0x192e54,_0x220c6c);WhatsappMessageEvents['on'](_0x192e54,_0x25703a);}};
\ No newline at end of file
+var _0x6120=['update','emit','removeListener','register','length','whatsappMessage:','./whatsappMessage.events','save','remove'];(function(_0x13ae3b,_0x4ddd7c){var _0x145764=function(_0x4ab5e0){while(--_0x4ab5e0){_0x13ae3b['push'](_0x13ae3b['shift']());}};_0x145764(++_0x4ddd7c);}(_0x6120,0x141));var _0x0612=function(_0x9c705b,_0x536709){_0x9c705b=_0x9c705b-0x0;var _0x46034b=_0x6120[_0x9c705b];return _0x46034b;};'use strict';var WhatsappMessageEvents=require(_0x0612('0x0'));var events=[_0x0612('0x1'),_0x0612('0x2'),_0x0612('0x3')];function createListener(_0x11ecc4,_0x394122){return function(_0x1d8d32){_0x394122[_0x0612('0x4')](_0x11ecc4,_0x1d8d32);};}function removeListener(_0x59a757,_0x5cb18d){return function(){WhatsappMessageEvents[_0x0612('0x5')](_0x59a757,_0x5cb18d);};}exports[_0x0612('0x6')]=function(_0x3a438c){for(var _0x588eb2=0x0,_0x409448=events[_0x0612('0x7')];_0x588eb2<_0x409448;_0x588eb2++){var _0xe30f2f=events[_0x588eb2];var _0x4ac162=createListener(_0x0612('0x8')+_0xe30f2f,_0x3a438c);WhatsappMessageEvents['on'](_0xe30f2f,_0x4ac162);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5ace=['show','/:id/members','getMembers','getTeams','getAgents','addTeams','post','/:id/users','put','update','delete','destroy','/:id/teams','removeTeams','exports','multer','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','./whatsappQueue.controller','get','isAuthenticated','/describe','/:id'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x5ace,0xb7));var _0xe5ac=function(_0x279f6d,_0x122316){_0x279f6d=_0x279f6d-0x0;var _0x5874a5=_0x5ace[_0x279f6d];return _0x5874a5;};'use strict';var multer=require(_0xe5ac('0x0'));var util=require('util');var path=require(_0xe5ac('0x1'));var timeout=require(_0xe5ac('0x2'));var express=require(_0xe5ac('0x3'));var router=express[_0xe5ac('0x4')]();var fs_extra=require(_0xe5ac('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0xe5ac('0x6'));var config=require(_0xe5ac('0x7'));var controller=require(_0xe5ac('0x8'));router[_0xe5ac('0x9')]('/',auth[_0xe5ac('0xa')](),controller['index']);router['get'](_0xe5ac('0xb'),auth[_0xe5ac('0xa')](),controller['describe']);router[_0xe5ac('0x9')](_0xe5ac('0xc'),auth[_0xe5ac('0xa')](),controller[_0xe5ac('0xd')]);router['get'](_0xe5ac('0xe'),auth['isAuthenticated'](),controller[_0xe5ac('0xf')]);router[_0xe5ac('0x9')]('/:id/teams',auth[_0xe5ac('0xa')](),controller[_0xe5ac('0x10')]);router[_0xe5ac('0x9')]('/:id/users',auth[_0xe5ac('0xa')](),controller[_0xe5ac('0x11')]);router['post']('/',auth[_0xe5ac('0xa')](),controller['create']);router['post']('/:id/teams',auth[_0xe5ac('0xa')](),controller[_0xe5ac('0x12')]);router[_0xe5ac('0x13')](_0xe5ac('0x14'),auth[_0xe5ac('0xa')](),controller['addAgents']);router[_0xe5ac('0x15')](_0xe5ac('0xc'),auth['isAuthenticated'](),controller[_0xe5ac('0x16')]);router[_0xe5ac('0x17')]('/:id',auth[_0xe5ac('0xa')](),controller[_0xe5ac('0x18')]);router[_0xe5ac('0x17')](_0xe5ac('0x19'),auth[_0xe5ac('0xa')](),controller[_0xe5ac('0x1a')]);router[_0xe5ac('0x17')](_0xe5ac('0x14'),auth[_0xe5ac('0xa')](),controller['removeAgents']);module[_0xe5ac('0x1b')]=router;
\ No newline at end of file
+var _0xa4ae=['getTeams','/:id/users','getAgents','post','create','addTeams','addAgents','/:id','delete','removeTeams','removeAgents','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./whatsappQueue.controller','get','isAuthenticated','index','/describe','describe','show','getMembers','/:id/teams'];(function(_0x188ed5,_0x124b02){var _0x3359b2=function(_0x5153c6){while(--_0x5153c6){_0x188ed5['push'](_0x188ed5['shift']());}};_0x3359b2(++_0x124b02);}(_0xa4ae,0xc0));var _0xea4a=function(_0x330d1f,_0x47c710){_0x330d1f=_0x330d1f-0x0;var _0x1df784=_0xa4ae[_0x330d1f];return _0x1df784;};'use strict';var multer=require(_0xea4a('0x0'));var util=require(_0xea4a('0x1'));var path=require(_0xea4a('0x2'));var timeout=require(_0xea4a('0x3'));var express=require(_0xea4a('0x4'));var router=express[_0xea4a('0x5')]();var fs_extra=require(_0xea4a('0x6'));var auth=require(_0xea4a('0x7'));var interaction=require(_0xea4a('0x8'));var config=require('../../config/environment');var controller=require(_0xea4a('0x9'));router[_0xea4a('0xa')]('/',auth[_0xea4a('0xb')](),controller[_0xea4a('0xc')]);router[_0xea4a('0xa')](_0xea4a('0xd'),auth['isAuthenticated'](),controller[_0xea4a('0xe')]);router[_0xea4a('0xa')]('/:id',auth[_0xea4a('0xb')](),controller[_0xea4a('0xf')]);router[_0xea4a('0xa')]('/:id/members',auth['isAuthenticated'](),controller[_0xea4a('0x10')]);router[_0xea4a('0xa')](_0xea4a('0x11'),auth[_0xea4a('0xb')](),controller[_0xea4a('0x12')]);router['get'](_0xea4a('0x13'),auth[_0xea4a('0xb')](),controller[_0xea4a('0x14')]);router[_0xea4a('0x15')]('/',auth[_0xea4a('0xb')](),controller[_0xea4a('0x16')]);router['post'](_0xea4a('0x11'),auth[_0xea4a('0xb')](),controller[_0xea4a('0x17')]);router[_0xea4a('0x15')]('/:id/users',auth['isAuthenticated'](),controller[_0xea4a('0x18')]);router['put'](_0xea4a('0x19'),auth['isAuthenticated'](),controller['update']);router[_0xea4a('0x1a')](_0xea4a('0x19'),auth[_0xea4a('0xb')](),controller['destroy']);router[_0xea4a('0x1a')](_0xea4a('0x11'),auth[_0xea4a('0xb')](),controller[_0xea4a('0x1b')]);router[_0xea4a('0x1a')](_0xea4a('0x13'),auth[_0xea4a('0xb')](),controller[_0xea4a('0x1c')]);module[_0xea4a('0x1d')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7217=['roundrobin','STRING','INTEGER','ENUM','rrmemory','beepall'];(function(_0xbb09c8,_0x5861d2){var _0x15231b=function(_0x16cd11){while(--_0x16cd11){_0xbb09c8['push'](_0xbb09c8['shift']());}};_0x15231b(++_0x5861d2);}(_0x7217,0xa9));var _0x7721=function(_0x481bf7,_0x437f69){_0x481bf7=_0x481bf7-0x0;var _0x461787=_0x7217[_0x481bf7];return _0x461787;};'use strict';var Sequelize=require('sequelize');module['exports']={'name':{'type':Sequelize[_0x7721('0x0')],'unique':'name','validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'timeout':{'type':Sequelize[_0x7721('0x1')],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0x7721('0x2')](_0x7721('0x3'),_0x7721('0x4'),_0x7721('0x5'))},'description':{'type':Sequelize[_0x7721('0x0')]}};
\ No newline at end of file
+var _0x6170=['ENUM','rrmemory','beepall','sequelize','exports','STRING','name'];(function(_0xaa1b3e,_0x47d976){var _0x454d7d=function(_0x575b32){while(--_0x575b32){_0xaa1b3e['push'](_0xaa1b3e['shift']());}};_0x454d7d(++_0x47d976);}(_0x6170,0x17d));var _0x0617=function(_0x403a67,_0xe90e15){_0x403a67=_0x403a67-0x0;var _0x2a7f9d=_0x6170[_0x403a67];return _0x2a7f9d;};'use strict';var Sequelize=require(_0x0617('0x0'));module[_0x0617('0x1')]={'name':{'type':Sequelize[_0x0617('0x2')],'unique':_0x0617('0x3'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'timeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0x0617('0x4')](_0x0617('0x5'),_0x0617('0x6'),'roundrobin')},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x67f7=['end','error','name','send','index','map','rawAttributes','fieldName','type','key','model','keys','query','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','WhatsappQueue','includeAll','include','findAll','options','find','catch','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','params','destroy','describe','UserWhatsappQueue','WhatsappQueueId','User','UserId','whatsappPause','createdAt','rows','format','%s/%s','SIP','updatedAt','findOne','Team','getTeams','addTeams','Agents','voicePause','interface','flatMap','sequelize','transaction','findOrCreate','forEach','emit','userWhatsappQueue:save','removeTeams','select','field','tq.TeamId','from','team_has_whatsapp_queues','join','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','WhatsappQueueId\x20=\x20?','clone','ut.UserId\x20=\x20?','QueryTypes','SELECT','TeamId','includes','all','union','compact','isEmpty','removeAgents','userWhatsappQueue:remove','addAgents','ids','omit','spread','isArray','getAgents','eml-format','zip-dir','fast-json-patch','request-promise','mustache','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','redis','defaults','socket.io-emitter','register','sendStatus','status','json','offset','limit','undefined','count','set','apply','then','WhatsappQueues','UserProfileResource'];(function(_0x2d9499,_0x5730d9){var _0x491ffb=function(_0x1b3e00){while(--_0x1b3e00){_0x2d9499['push'](_0x2d9499['shift']());}};_0x491ffb(++_0x5730d9);}(_0x67f7,0xef));var _0x767f=function(_0xe1ca08,_0x289972){_0xe1ca08=_0xe1ca08-0x0;var _0x159fbc=_0x67f7[_0xe1ca08];return _0x159fbc;};'use strict';var emlformat=require(_0x767f('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x767f('0x1'));var jsonpatch=require(_0x767f('0x2'));var rp=require(_0x767f('0x3'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x767f('0x4'));var util=require(_0x767f('0x5'));var path=require(_0x767f('0x6'));var sox=require(_0x767f('0x7'));var csv=require(_0x767f('0x8'));var ejs=require(_0x767f('0x9'));var fs=require('fs');var fs_extra=require(_0x767f('0xa'));var _=require('lodash');var squel=require(_0x767f('0xb'));var crypto=require(_0x767f('0xc'));var jsforce=require(_0x767f('0xd'));var deskjs=require(_0x767f('0xe'));var toCsv=require('to-csv');var querystring=require(_0x767f('0xf'));var Papa=require(_0x767f('0x10'));var Redis=require(_0x767f('0x11'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x767f('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x767f('0x13'))(_0x767f('0x14'));var utils=require(_0x767f('0x15'));var config=require(_0x767f('0x16'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];config[_0x767f('0x17')]=_[_0x767f('0x18')](config[_0x767f('0x17')],{'host':'localhost','port':0x18eb});var socket=require(_0x767f('0x19'))(new Redis(config[_0x767f('0x17')]));require('./whatsappQueue.socket')[_0x767f('0x1a')](socket);function respondWithStatusCode(_0x22649a,_0x199afd){_0x199afd=_0x199afd||0xcc;return function(_0x48255c){if(_0x48255c){return _0x22649a[_0x767f('0x1b')](_0x199afd);}return _0x22649a[_0x767f('0x1c')](_0x199afd)['end']();};}function respondWithResult(_0x636570,_0x29caf6){_0x29caf6=_0x29caf6||0xc8;return function(_0x3d284d){if(_0x3d284d){return _0x636570[_0x767f('0x1c')](_0x29caf6)[_0x767f('0x1d')](_0x3d284d);}};}function respondWithFilteredResult(_0x2a3455,_0x176762){return function(_0x1928e8){if(_0x1928e8){var _0x7225f6=typeof _0x176762[_0x767f('0x1e')]==='undefined'&&typeof _0x176762[_0x767f('0x1f')]===_0x767f('0x20');var _0x355cf3=_0x1928e8[_0x767f('0x21')];var _0x12aefe=_0x7225f6?0x0:_0x176762[_0x767f('0x1e')];var _0x456cc5=_0x7225f6?_0x1928e8[_0x767f('0x21')]:_0x176762['offset']+_0x176762['limit'];var _0x19b225;if(_0x456cc5>=_0x355cf3){_0x456cc5=_0x355cf3;_0x19b225=0xc8;}else{_0x19b225=0xce;}_0x2a3455['status'](_0x19b225);return _0x2a3455[_0x767f('0x22')]('Content-Range',_0x12aefe+'-'+_0x456cc5+'/'+_0x355cf3)[_0x767f('0x1d')](_0x1928e8);}return null;};}function patchUpdates(_0x120b1a){return function(_0x4a36b0){try{jsonpatch[_0x767f('0x23')](_0x4a36b0,_0x120b1a,!![]);}catch(_0x59d389){return BPromise['reject'](_0x59d389);}return _0x4a36b0['save']();};}function saveUpdates(_0x53fe37,_0xdda1d){return function(_0x1ab616){if(_0x1ab616){return _0x1ab616['update'](_0x53fe37)[_0x767f('0x24')](function(_0x39c6d0){return _0x39c6d0;});}return null;};}function removeEntity(_0x59a262,_0x35e41d){return function(_0x45d7e3){if(_0x45d7e3){return _0x45d7e3['destroy']()['then'](function(){var _0x145506=_0x45d7e3['get']({'plain':!![]});var _0x3a427e=_0x767f('0x25');return db[_0x767f('0x26')]['destroy']({'where':{'type':_0x3a427e,'resourceId':_0x145506['id']}})[_0x767f('0x24')](function(){return _0x45d7e3;});})[_0x767f('0x24')](function(){_0x59a262['status'](0xcc)[_0x767f('0x27')]();});}};}function handleEntityNotFound(_0x4e117c,_0x477bbc){return function(_0x11499a){if(!_0x11499a){_0x4e117c[_0x767f('0x1b')](0x194);}return _0x11499a;};}function handleError(_0xbf98a0,_0x32e361){_0x32e361=_0x32e361||0x1f4;return function(_0x5e6b8e){logger[_0x767f('0x28')](_0x5e6b8e['stack']);if(_0x5e6b8e[_0x767f('0x29')]){delete _0x5e6b8e['name'];}_0xbf98a0[_0x767f('0x1c')](_0x32e361)[_0x767f('0x2a')](_0x5e6b8e);};}exports[_0x767f('0x2b')]=function(_0x3bfd4a,_0x376f78){var _0x4eb16c={},_0xfafdee={},_0x32388a={'count':0x0,'rows':[]};var _0xe8a19=_[_0x767f('0x2c')](db['WhatsappQueue'][_0x767f('0x2d')],function(_0x34ee9b){return{'name':_0x34ee9b[_0x767f('0x2e')],'type':_0x34ee9b[_0x767f('0x2f')][_0x767f('0x30')]};});_0xfafdee[_0x767f('0x31')]=_[_0x767f('0x2c')](_0xe8a19,_0x767f('0x29'));_0xfafdee['query']=_[_0x767f('0x32')](_0x3bfd4a[_0x767f('0x33')]);_0xfafdee[_0x767f('0x34')]=_['intersection'](_0xfafdee['model'],_0xfafdee[_0x767f('0x33')]);_0x4eb16c[_0x767f('0x35')]=_[_0x767f('0x36')](_0xfafdee[_0x767f('0x31')],qs[_0x767f('0x37')](_0x3bfd4a[_0x767f('0x33')][_0x767f('0x37')]));_0x4eb16c[_0x767f('0x35')]=_0x4eb16c[_0x767f('0x35')][_0x767f('0x38')]?_0x4eb16c[_0x767f('0x35')]:_0xfafdee[_0x767f('0x31')];if(!_0x3bfd4a[_0x767f('0x33')][_0x767f('0x39')](_0x767f('0x3a'))){_0x4eb16c[_0x767f('0x1f')]=qs['limit'](_0x3bfd4a['query']['limit']);_0x4eb16c['offset']=qs[_0x767f('0x1e')](_0x3bfd4a[_0x767f('0x33')][_0x767f('0x1e')]);}_0x4eb16c[_0x767f('0x3b')]=qs[_0x767f('0x3c')](_0x3bfd4a[_0x767f('0x33')]['sort']);_0x4eb16c['where']=qs['filters'](_[_0x767f('0x3d')](_0x3bfd4a[_0x767f('0x33')],_0xfafdee[_0x767f('0x34')]),_0xe8a19);if(_0x3bfd4a[_0x767f('0x33')][_0x767f('0x3e')]){_0x4eb16c[_0x767f('0x3f')]=_[_0x767f('0x40')](_0x4eb16c['where'],{'$or':_[_0x767f('0x2c')](_0xe8a19,function(_0x5c94d2){if(_0x5c94d2['type']!=='VIRTUAL'){var _0x1f26e2={};_0x1f26e2[_0x5c94d2['name']]={'$like':'%'+_0x3bfd4a['query'][_0x767f('0x3e')]+'%'};return _0x1f26e2;}})});}_0x4eb16c=_[_0x767f('0x40')]({},_0x4eb16c,_0x3bfd4a['options']);var _0x21900d={'where':_0x4eb16c[_0x767f('0x3f')]};return db[_0x767f('0x41')][_0x767f('0x21')](_0x21900d)[_0x767f('0x24')](function(_0x6e8973){_0x32388a[_0x767f('0x21')]=_0x6e8973;if(_0x3bfd4a[_0x767f('0x33')][_0x767f('0x42')]){_0x4eb16c[_0x767f('0x43')]=[{'all':!![]}];}return db[_0x767f('0x41')][_0x767f('0x44')](_0x4eb16c);})[_0x767f('0x24')](function(_0x3e3231){_0x32388a['rows']=_0x3e3231;return _0x32388a;})[_0x767f('0x24')](respondWithFilteredResult(_0x376f78,_0x4eb16c))['catch'](handleError(_0x376f78,null));};exports['show']=function(_0x20e5de,_0x2df69a){var _0x22fdff={'raw':!![],'where':{'id':_0x20e5de['params']['id']}},_0x32783b={};_0x32783b[_0x767f('0x31')]=_[_0x767f('0x32')](db['WhatsappQueue']['rawAttributes']);_0x32783b[_0x767f('0x33')]=_[_0x767f('0x32')](_0x20e5de[_0x767f('0x33')]);_0x32783b[_0x767f('0x34')]=_[_0x767f('0x36')](_0x32783b['model'],_0x32783b[_0x767f('0x33')]);_0x22fdff['attributes']=_[_0x767f('0x36')](_0x32783b[_0x767f('0x31')],qs[_0x767f('0x37')](_0x20e5de[_0x767f('0x33')][_0x767f('0x37')]));_0x22fdff[_0x767f('0x35')]=_0x22fdff[_0x767f('0x35')][_0x767f('0x38')]?_0x22fdff['attributes']:_0x32783b[_0x767f('0x31')];if(_0x20e5de['query'][_0x767f('0x42')]){_0x22fdff[_0x767f('0x43')]=[{'all':!![]}];}_0x22fdff=_[_0x767f('0x40')]({},_0x22fdff,_0x20e5de[_0x767f('0x45')]);return db[_0x767f('0x41')][_0x767f('0x46')](_0x22fdff)[_0x767f('0x24')](handleEntityNotFound(_0x2df69a,null))[_0x767f('0x24')](respondWithResult(_0x2df69a,null))[_0x767f('0x47')](handleError(_0x2df69a,null));};exports['create']=function(_0x329fb4,_0x22e03f){return db['WhatsappQueue'][_0x767f('0x48')](_0x329fb4[_0x767f('0x49')],{})[_0x767f('0x24')](function(_0x5266f4){var _0x2c12c3=_0x329fb4[_0x767f('0x4a')][_0x767f('0x4b')]({'plain':!![]});if(!_0x2c12c3)throw new Error(_0x767f('0x4c'));if(_0x2c12c3[_0x767f('0x4d')]===_0x767f('0x4a')){var _0x17f92e=_0x5266f4[_0x767f('0x4b')]({'plain':!![]});var _0x49435d='WhatsappQueues';return db[_0x767f('0x4e')][_0x767f('0x46')]({'where':{'name':_0x49435d,'userProfileId':_0x2c12c3[_0x767f('0x4f')]},'raw':!![]})[_0x767f('0x24')](function(_0x78f45f){if(_0x78f45f&&_0x78f45f[_0x767f('0x50')]===0x0){return db['UserProfileResource'][_0x767f('0x48')]({'name':_0x17f92e['name'],'resourceId':_0x17f92e['id'],'type':_0x78f45f[_0x767f('0x29')],'sectionId':_0x78f45f['id']},{})[_0x767f('0x24')](function(){return _0x5266f4;});}else{return _0x5266f4;}})[_0x767f('0x47')](function(_0x5bd297){logger[_0x767f('0x28')](_0x767f('0x51'),_0x5bd297);throw _0x5bd297;});}return _0x5266f4;})[_0x767f('0x24')](respondWithResult(_0x22e03f,0xc9))[_0x767f('0x47')](handleError(_0x22e03f,null));};exports[_0x767f('0x52')]=function(_0x2f271a,_0x597f38){if(_0x2f271a[_0x767f('0x49')]['id']){delete _0x2f271a[_0x767f('0x49')]['id'];}return db['WhatsappQueue'][_0x767f('0x46')]({'where':{'id':_0x2f271a[_0x767f('0x53')]['id']}})[_0x767f('0x24')](handleEntityNotFound(_0x597f38,null))['then'](saveUpdates(_0x2f271a[_0x767f('0x49')],null))[_0x767f('0x24')](respondWithResult(_0x597f38,null))[_0x767f('0x47')](handleError(_0x597f38,null));};exports[_0x767f('0x54')]=function(_0x1dc23f,_0x4cd9dc){return db[_0x767f('0x41')][_0x767f('0x46')]({'where':{'id':_0x1dc23f[_0x767f('0x53')]['id']}})['then'](handleEntityNotFound(_0x4cd9dc,null))[_0x767f('0x24')](removeEntity(_0x4cd9dc,null))[_0x767f('0x47')](handleError(_0x4cd9dc,null));};exports[_0x767f('0x55')]=function(_0x8b385b,_0x1e1479){return db[_0x767f('0x41')][_0x767f('0x55')]()[_0x767f('0x24')](respondWithResult(_0x1e1479,null))[_0x767f('0x47')](handleError(_0x1e1479,null));};exports['getMembers']=function(_0x25f466,_0x17d268,_0x4c251e){var _0x160909={'raw':!![],'where':{}},_0x1dab22={},_0x2423dc;return db[_0x767f('0x41')]['findOne']({'where':{'id':_0x25f466[_0x767f('0x53')]['id']}})['then'](handleEntityNotFound(_0x17d268,null))['then'](function(_0x33d938){if(_0x33d938){_0x2423dc=_0x33d938['get']({'plain':!![]});_0x1dab22[_0x767f('0x31')]=_['keys'](db[_0x767f('0x56')]['rawAttributes']);_0x1dab22[_0x767f('0x33')]=_[_0x767f('0x32')](_0x25f466[_0x767f('0x33')]);_0x1dab22[_0x767f('0x34')]=_[_0x767f('0x36')](_0x1dab22[_0x767f('0x31')],_0x1dab22[_0x767f('0x33')]);_0x160909[_0x767f('0x35')]=_['intersection'](_0x1dab22[_0x767f('0x31')],qs[_0x767f('0x37')](_0x25f466['query'][_0x767f('0x37')]));_0x160909[_0x767f('0x35')]=_0x160909[_0x767f('0x35')][_0x767f('0x38')]?_0x160909['attributes']:_0x1dab22[_0x767f('0x31')];if(!_0x25f466[_0x767f('0x33')][_0x767f('0x39')](_0x767f('0x3a'))){_0x160909[_0x767f('0x1f')]=qs[_0x767f('0x1f')](_0x25f466[_0x767f('0x33')][_0x767f('0x1f')]);_0x160909[_0x767f('0x1e')]=qs[_0x767f('0x1e')](_0x25f466[_0x767f('0x33')][_0x767f('0x1e')]);}_0x160909[_0x767f('0x3b')]=qs[_0x767f('0x3c')](_0x25f466[_0x767f('0x33')][_0x767f('0x3c')]);_0x160909[_0x767f('0x3f')]=qs['filters'](_['pick'](_0x25f466[_0x767f('0x33')],_0x1dab22[_0x767f('0x34')]));_0x160909[_0x767f('0x3f')][_0x767f('0x57')]=_0x33d938['id'];if(_0x25f466[_0x767f('0x33')][_0x767f('0x3e')]){_0x160909[_0x767f('0x3f')]=_['merge'](_0x160909[_0x767f('0x3f')],{'$or':_[_0x767f('0x2c')](_0x160909[_0x767f('0x35')],function(_0x3d2203){var _0x15e18c={};_0x15e18c[_0x3d2203]={'$like':'%'+_0x25f466[_0x767f('0x33')][_0x767f('0x3e')]+'%'};return _0x15e18c;})});}_0x160909=_['merge']({},_0x160909,_0x25f466['options']);return db[_0x767f('0x56')]['findAll'](_0x160909);}})['then'](function(_0x340082){if(_0x340082){return db[_0x767f('0x58')]['findAndCountAll']({'where':{'id':_[_0x767f('0x2c')](_0x340082,_0x767f('0x59')),'role':'agent'},'attributes':['id',_0x767f('0x29'),_0x767f('0x5a'),'updatedAt',_0x767f('0x5b')]});}})[_0x767f('0x24')](function(_0x4a5155){if(_0x4a5155){return{'count':_0x4a5155[_0x767f('0x21')],'rows':_[_0x767f('0x2c')](_0x4a5155[_0x767f('0x5c')],function(_0x7ad2f1){return{'membername':_0x7ad2f1[_0x767f('0x29')],'UserId':_0x7ad2f1['id'],'queue_name':_0x2423dc['name'],'WhatsappQueueId':_0x2423dc['id'],'interface':util[_0x767f('0x5d')](_0x767f('0x5e'),_0x767f('0x5f'),_0x7ad2f1[_0x767f('0x29')]),'penalty':0x0,'paused':_0x7ad2f1['whatsappPause'],'createdAt':_0x7ad2f1[_0x767f('0x5b')],'updatedAt':_0x7ad2f1[_0x767f('0x60')]};})};}else{return{'count':0x0,'rows':[]};}})[_0x767f('0x24')](respondWithFilteredResult(_0x17d268,_0x160909))[_0x767f('0x47')](handleError(_0x17d268,null));};exports['getTeams']=function(_0x3baf5b,_0x1f8a1e,_0x2fc59e){var _0x5255b1={};var _0x3f497a={};var _0x41f782;var _0x31b505;return db[_0x767f('0x41')][_0x767f('0x61')]({'where':{'id':_0x3baf5b['params']['id']}})[_0x767f('0x24')](handleEntityNotFound(_0x1f8a1e,null))[_0x767f('0x24')](function(_0x465d40){if(_0x465d40){_0x41f782=_0x465d40;_0x3f497a[_0x767f('0x31')]=_[_0x767f('0x32')](db[_0x767f('0x62')]['rawAttributes']);_0x3f497a['query']=_[_0x767f('0x32')](_0x3baf5b[_0x767f('0x33')]);_0x3f497a[_0x767f('0x34')]=_[_0x767f('0x36')](_0x3f497a[_0x767f('0x31')],_0x3f497a['query']);_0x5255b1[_0x767f('0x35')]=_['intersection'](_0x3f497a['model'],qs['fields'](_0x3baf5b[_0x767f('0x33')]['fields']));_0x5255b1['attributes']=_0x5255b1['attributes']['length']?_0x5255b1[_0x767f('0x35')]:_0x3f497a[_0x767f('0x31')];_0x5255b1['order']=qs[_0x767f('0x3c')](_0x3baf5b[_0x767f('0x33')][_0x767f('0x3c')]);_0x5255b1['where']=qs[_0x767f('0x34')](_[_0x767f('0x3d')](_0x3baf5b['query'],_0x3f497a[_0x767f('0x34')]));if(_0x3baf5b[_0x767f('0x33')][_0x767f('0x3e')]){_0x5255b1[_0x767f('0x3f')]=_[_0x767f('0x40')](_0x5255b1[_0x767f('0x3f')],{'$or':_['map'](_0x5255b1[_0x767f('0x35')],function(_0x3c2f52){var _0x4a7396={};_0x4a7396[_0x3c2f52]={'$like':'%'+_0x3baf5b[_0x767f('0x33')][_0x767f('0x3e')]+'%'};return _0x4a7396;})});}_0x5255b1=_[_0x767f('0x40')]({},_0x5255b1,_0x3baf5b[_0x767f('0x45')]);return _0x41f782[_0x767f('0x63')](_0x5255b1);}})[_0x767f('0x24')](function(_0x3c496a){if(_0x3c496a){_0x31b505=_0x3c496a['length'];if(!_0x3baf5b[_0x767f('0x33')][_0x767f('0x39')](_0x767f('0x3a'))){_0x5255b1[_0x767f('0x1f')]=qs[_0x767f('0x1f')](_0x3baf5b[_0x767f('0x33')]['limit']);_0x5255b1[_0x767f('0x1e')]=qs[_0x767f('0x1e')](_0x3baf5b[_0x767f('0x33')][_0x767f('0x1e')]);}return _0x41f782['getTeams'](_0x5255b1);}})[_0x767f('0x24')](function(_0x4287e3){if(_0x4287e3){return _0x4287e3?{'count':_0x31b505,'rows':_0x4287e3}:null;}})[_0x767f('0x24')](respondWithResult(_0x1f8a1e,null))[_0x767f('0x47')](handleError(_0x1f8a1e,null));};exports[_0x767f('0x64')]=function(_0x3800c0,_0x4f249b,_0x18403e){var _0x12acf9=_0x3800c0['body']['ids'];return db[_0x767f('0x62')]['findAll']({'where':{'id':_0x12acf9},'attributes':['id'],'include':[{'model':db[_0x767f('0x58')],'as':_0x767f('0x65'),'attributes':['id',_0x767f('0x29'),'online',_0x767f('0x66'),_0x767f('0x67')],'raw':!![]}]})[_0x767f('0x24')](function(_0x2e6e52){if(_0x2e6e52){var _0x3b78d3=_[_0x767f('0x68')](_0x2e6e52,function(_0x1c586b){var _0x46caac=_0x1c586b['get']({'plain':!![]});return _0x46caac[_0x767f('0x65')];});return db[_0x767f('0x41')][_0x767f('0x46')]({'where':{'id':_0x3800c0[_0x767f('0x53')]['id']}})[_0x767f('0x24')](function(_0x589a9e){return db[_0x767f('0x69')][_0x767f('0x6a')](function(_0x14d100){return _0x589a9e[_0x767f('0x64')](_0x12acf9,{'transaction':_0x14d100})['then'](function(){return BPromise['each'](_0x3b78d3,function(_0x5b914f){return db['UserWhatsappQueue'][_0x767f('0x6b')]({'where':{'UserId':_0x5b914f['id'],'WhatsappQueueId':_0x3800c0['params']['id']},'transaction':_0x14d100});});})[_0x767f('0x24')](function(){_0x3b78d3[_0x767f('0x6c')](function(_0x2005e7){socket[_0x767f('0x6d')](_0x767f('0x6e'),{'UserId':_0x2005e7['id'],'WhatsappQueueId':_0x589a9e['id']});});});});});}})['then'](respondWithStatusCode(_0x4f249b,null))[_0x767f('0x47')](handleError(_0x4f249b,null));};exports[_0x767f('0x6f')]=function(_0x4258d8,_0x485fd8,_0xcf01e9){return db[_0x767f('0x62')]['findAll']({'where':{'id':_0x4258d8[_0x767f('0x33')]['ids']},'attributes':['id'],'include':[{'model':db['User'],'as':_0x767f('0x65'),'attributes':['id'],'raw':!![]}]})[_0x767f('0x24')](handleEntityNotFound(_0x485fd8,null))[_0x767f('0x24')](function(_0x9d7486){var _0x376862=_[_0x767f('0x2c')](_0x9d7486,'id');var _0x1bbb9e=[];var _0x41628c=[];var _0x5120aa=squel[_0x767f('0x70')]();_0x5120aa[_0x767f('0x71')](_0x767f('0x72'))[_0x767f('0x73')](_0x767f('0x74'),'tq')[_0x767f('0x75')](_0x767f('0x76'),'ut',_0x767f('0x77'))[_0x767f('0x3f')](_0x767f('0x78'),_0x4258d8['params']['id']);for(var _0x3d55dc=0x0;_0x3d55dc<_0x9d7486[_0x767f('0x38')];_0x3d55dc+=0x1){let _0x3a0a7b=_0x9d7486[_0x3d55dc];for(var _0x24772d=0x0;_0x24772d<_0x3a0a7b[_0x767f('0x65')][_0x767f('0x38')];_0x24772d+=0x1){let _0x53f12b=_0x3a0a7b[_0x767f('0x65')][_0x24772d];var _0x44d302=_0x5120aa[_0x767f('0x79')]();_0x44d302[_0x767f('0x3f')](_0x767f('0x7a'),_0x53f12b['id']);_0x41628c['push'](db['sequelize'][_0x767f('0x33')](_0x44d302['toString'](),{'type':db[_0x767f('0x69')][_0x767f('0x7b')][_0x767f('0x7c')]})[_0x767f('0x24')](function(_0x5955e3){if(_0x5955e3['length']===0x1){return _0x53f12b['id'];}else{var _0x323389=_['every'](_[_0x767f('0x2c')](_0x5955e3,_0x767f('0x7d')),function(_0xea3a45){return _[_0x767f('0x7e')](_0x376862,_0xea3a45);});if(_0x323389){return _0x53f12b['id'];}}}));}}return BPromise[_0x767f('0x7f')](_0x41628c)[_0x767f('0x24')](function(_0x584476){_0x1bbb9e=_(_0x1bbb9e)[_0x767f('0x80')](_0x584476)[_0x767f('0x81')]()['value']();return db[_0x767f('0x41')][_0x767f('0x46')]({'where':{'id':_0x4258d8[_0x767f('0x53')]['id']}})[_0x767f('0x24')](function(_0x3b00b7){return db[_0x767f('0x69')][_0x767f('0x6a')](function(_0x25a782){return _0x3b00b7[_0x767f('0x6f')](_0x4258d8[_0x767f('0x33')]['ids'],{'transaction':_0x25a782})['then'](function(){if(!_[_0x767f('0x82')](_0x1bbb9e)){return _0x3b00b7[_0x767f('0x83')](_0x1bbb9e,{'transaction':_0x25a782});}})[_0x767f('0x24')](function(){_0x1bbb9e[_0x767f('0x6c')](function(_0x23c527){socket[_0x767f('0x6d')](_0x767f('0x84'),{'UserId':_0x23c527,'WhatsappQueueId':_0x3b00b7['id']});});});});});});})[_0x767f('0x24')](respondWithStatusCode(_0x485fd8,null))[_0x767f('0x47')](handleError(_0x485fd8,null));};exports[_0x767f('0x85')]=function(_0x2684d8,_0x29631a,_0x524e48){return db[_0x767f('0x41')][_0x767f('0x46')]({'where':{'id':_0x2684d8[_0x767f('0x53')]['id']}})['then'](handleEntityNotFound(_0x29631a,null))[_0x767f('0x24')](function(_0x325292){if(_0x325292){return _0x325292[_0x767f('0x85')](_0x2684d8[_0x767f('0x49')][_0x767f('0x86')],_[_0x767f('0x87')](_0x2684d8[_0x767f('0x49')],['ids','id'])||{})[_0x767f('0x88')](function(_0x13304f){for(var _0xdfb1b4=0x0;_0xdfb1b4<_0x2684d8['body'][_0x767f('0x86')][_0x767f('0x38')];_0xdfb1b4+=0x1){socket[_0x767f('0x6d')]('userWhatsappQueue:save',{'UserId':Number(_0x2684d8[_0x767f('0x49')][_0x767f('0x86')][_0xdfb1b4]),'WhatsappQueueId':Number(_0x2684d8[_0x767f('0x53')]['id'])});}return _0x13304f;});}})[_0x767f('0x24')](respondWithResult(_0x29631a,null))['catch'](handleError(_0x29631a,null));};exports['removeAgents']=function(_0x56f5f7,_0x4db7c3,_0x1c257c){return db[_0x767f('0x41')][_0x767f('0x46')]({'where':{'id':_0x56f5f7[_0x767f('0x53')]['id']}})[_0x767f('0x24')](handleEntityNotFound(_0x4db7c3,null))['then'](function(_0x2ee6ba){if(_0x2ee6ba){return _0x2ee6ba[_0x767f('0x83')](_0x56f5f7[_0x767f('0x33')]['ids'])[_0x767f('0x24')](function(){if(_[_0x767f('0x89')](_0x56f5f7[_0x767f('0x33')]['ids'])){for(var _0x1627f4=0x0;_0x1627f4<_0x56f5f7[_0x767f('0x33')][_0x767f('0x86')][_0x767f('0x38')];_0x1627f4+=0x1){socket[_0x767f('0x6d')](_0x767f('0x84'),{'UserId':Number(_0x56f5f7['query']['ids'][_0x1627f4]),'WhatsappQueueId':Number(_0x56f5f7[_0x767f('0x53')]['id'])});}}else{socket[_0x767f('0x6d')](_0x767f('0x84'),{'UserId':Number(_0x56f5f7[_0x767f('0x33')][_0x767f('0x86')]),'WhatsappQueueId':Number(_0x56f5f7[_0x767f('0x53')]['id'])});}});}})['then'](respondWithStatusCode(_0x4db7c3,null))['catch'](handleError(_0x4db7c3,null));};exports[_0x767f('0x8a')]=function(_0x5bd294,_0x4b470e,_0x58c7b0){var _0x31cc44={};var _0x355972={};var _0x21c19c;var _0x2caa24;return db[_0x767f('0x41')][_0x767f('0x61')]({'where':{'id':_0x5bd294[_0x767f('0x53')]['id']}})['then'](handleEntityNotFound(_0x4b470e,null))[_0x767f('0x24')](function(_0x28b0dd){if(_0x28b0dd){_0x21c19c=_0x28b0dd;_0x355972[_0x767f('0x31')]=_[_0x767f('0x32')](db[_0x767f('0x58')][_0x767f('0x2d')]);_0x355972[_0x767f('0x33')]=_['keys'](_0x5bd294[_0x767f('0x33')]);_0x355972['filters']=_[_0x767f('0x36')](_0x355972['model'],_0x355972['query']);_0x31cc44[_0x767f('0x35')]=_[_0x767f('0x36')](_0x355972[_0x767f('0x31')],qs['fields'](_0x5bd294[_0x767f('0x33')]['fields']));_0x31cc44[_0x767f('0x35')]=_0x31cc44[_0x767f('0x35')]['length']?_0x31cc44['attributes']:_0x355972[_0x767f('0x31')];_0x31cc44[_0x767f('0x3b')]=qs['sort'](_0x5bd294['query'][_0x767f('0x3c')]);_0x31cc44[_0x767f('0x3f')]=qs[_0x767f('0x34')](_[_0x767f('0x3d')](_0x5bd294[_0x767f('0x33')],_0x355972[_0x767f('0x34')]));if(_0x5bd294[_0x767f('0x33')]['filter']){_0x31cc44['where']=_[_0x767f('0x40')](_0x31cc44[_0x767f('0x3f')],{'$or':_[_0x767f('0x2c')](_0x31cc44[_0x767f('0x35')],function(_0x5154cb){var _0x5b111c={};_0x5b111c[_0x5154cb]={'$like':'%'+_0x5bd294['query']['filter']+'%'};return _0x5b111c;})});}_0x31cc44=_[_0x767f('0x40')]({},_0x31cc44,_0x5bd294['options']);return _0x21c19c['getAgents'](_0x31cc44);}})[_0x767f('0x24')](function(_0x47ed87){if(_0x47ed87){_0x2caa24=_0x47ed87[_0x767f('0x38')];if(!_0x5bd294['query'][_0x767f('0x39')](_0x767f('0x3a'))){_0x31cc44[_0x767f('0x1f')]=qs[_0x767f('0x1f')](_0x5bd294[_0x767f('0x33')][_0x767f('0x1f')]);_0x31cc44[_0x767f('0x1e')]=qs['offset'](_0x5bd294['query'][_0x767f('0x1e')]);}return _0x21c19c[_0x767f('0x8a')](_0x31cc44);}})['then'](function(_0x4981e3){if(_0x4981e3){return _0x4981e3?{'count':_0x2caa24,'rows':_0x4981e3}:null;}})[_0x767f('0x24')](respondWithResult(_0x4b470e,null))[_0x767f('0x47')](handleError(_0x4b470e,null));};
\ No newline at end of file
+var _0x9ed9=['role','UserProfileSection','userProfileId','autoAssociation','catch','describe','getMembers','findOne','UserWhatsappQueue','WhatsappQueueId','User','findAndCountAll','agent','updatedAt','createdAt','%s/%s','SIP','getTeams','Team','addTeams','ids','Agents','online','flatMap','sequelize','transaction','findOrCreate','forEach','emit','removeTeams','select','tq.TeamId','team_has_whatsapp_queues','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','WhatsappQueueId\x20=\x20?','clone','ut.UserId\x20=\x20?','push','toString','QueryTypes','TeamId','includes','all','union','compact','value','isEmpty','removeAgents','userWhatsappQueue:remove','addAgents','omit','spread','isArray','getAgents','eml-format','zip-dir','request-promise','moment','bluebird','mustache','fs-extra','lodash','squel','crypto','desk.js','to-csv','querystring','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','./whatsappQueue.socket','register','status','end','json','offset','undefined','count','limit','set','Content-Range','reject','save','update','then','destroy','get','WhatsappQueues','UserProfileResource','sendStatus','error','name','send','map','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','options','WhatsappQueue','includeAll','include','findAll','rows','show','params','rawAttributes','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user'];(function(_0x458bfd,_0x4c2b6e){var _0x1d5efc=function(_0x2b3215){while(--_0x2b3215){_0x458bfd['push'](_0x458bfd['shift']());}};_0x1d5efc(++_0x4c2b6e);}(_0x9ed9,0x147));var _0x99ed=function(_0x19795e,_0x3104c9){_0x19795e=_0x19795e-0x0;var _0x27cb02=_0x9ed9[_0x19795e];return _0x27cb02;};'use strict';var emlformat=require(_0x99ed('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x99ed('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x99ed('0x2'));var moment=require(_0x99ed('0x3'));var BPromise=require(_0x99ed('0x4'));var Mustache=require(_0x99ed('0x5'));var util=require('util');var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x99ed('0x6'));var _=require(_0x99ed('0x7'));var squel=require(_0x99ed('0x8'));var crypto=require(_0x99ed('0x9'));var jsforce=require('jsforce');var deskjs=require(_0x99ed('0xa'));var toCsv=require(_0x99ed('0xb'));var querystring=require(_0x99ed('0xc'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x99ed('0xd'));var qs=require('../../components/parsers/qs');var as=require(_0x99ed('0xe'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x99ed('0xf'))(_0x99ed('0x10'));var utils=require(_0x99ed('0x11'));var config=require(_0x99ed('0x12'));var licenseUtil=require(_0x99ed('0x13'));var db=require(_0x99ed('0x14'))['db'];config['redis']=_['defaults'](config[_0x99ed('0x15')],{'host':_0x99ed('0x16'),'port':0x18eb});var socket=require(_0x99ed('0x17'))(new Redis(config[_0x99ed('0x15')]));require(_0x99ed('0x18'))[_0x99ed('0x19')](socket);function respondWithStatusCode(_0x15ac97,_0x453529){_0x453529=_0x453529||0xcc;return function(_0x1358b0){if(_0x1358b0){return _0x15ac97['sendStatus'](_0x453529);}return _0x15ac97[_0x99ed('0x1a')](_0x453529)[_0x99ed('0x1b')]();};}function respondWithResult(_0x5b03b7,_0x57d355){_0x57d355=_0x57d355||0xc8;return function(_0x1749a8){if(_0x1749a8){return _0x5b03b7[_0x99ed('0x1a')](_0x57d355)[_0x99ed('0x1c')](_0x1749a8);}};}function respondWithFilteredResult(_0x2a5edc,_0x5c9a07){return function(_0x490008){if(_0x490008){var _0xd5cdcd=typeof _0x5c9a07[_0x99ed('0x1d')]===_0x99ed('0x1e')&&typeof _0x5c9a07['limit']==='undefined';var _0x4d42fa=_0x490008[_0x99ed('0x1f')];var _0x49b242=_0xd5cdcd?0x0:_0x5c9a07[_0x99ed('0x1d')];var _0x451c0e=_0xd5cdcd?_0x490008[_0x99ed('0x1f')]:_0x5c9a07[_0x99ed('0x1d')]+_0x5c9a07[_0x99ed('0x20')];var _0x480682;if(_0x451c0e>=_0x4d42fa){_0x451c0e=_0x4d42fa;_0x480682=0xc8;}else{_0x480682=0xce;}_0x2a5edc[_0x99ed('0x1a')](_0x480682);return _0x2a5edc[_0x99ed('0x21')](_0x99ed('0x22'),_0x49b242+'-'+_0x451c0e+'/'+_0x4d42fa)[_0x99ed('0x1c')](_0x490008);}return null;};}function patchUpdates(_0x5d0c51){return function(_0x175195){try{jsonpatch['apply'](_0x175195,_0x5d0c51,!![]);}catch(_0x1587fa){return BPromise[_0x99ed('0x23')](_0x1587fa);}return _0x175195[_0x99ed('0x24')]();};}function saveUpdates(_0x218f4d,_0x3eda1b){return function(_0x5543dc){if(_0x5543dc){return _0x5543dc[_0x99ed('0x25')](_0x218f4d)[_0x99ed('0x26')](function(_0x409d13){return _0x409d13;});}return null;};}function removeEntity(_0x3647a9,_0x2121a9){return function(_0x31da3b){if(_0x31da3b){return _0x31da3b[_0x99ed('0x27')]()['then'](function(){var _0x3c5240=_0x31da3b[_0x99ed('0x28')]({'plain':!![]});var _0x2e01fd=_0x99ed('0x29');return db[_0x99ed('0x2a')]['destroy']({'where':{'type':_0x2e01fd,'resourceId':_0x3c5240['id']}})[_0x99ed('0x26')](function(){return _0x31da3b;});})['then'](function(){_0x3647a9[_0x99ed('0x1a')](0xcc)[_0x99ed('0x1b')]();});}};}function handleEntityNotFound(_0x4d236c,_0x3d8e2f){return function(_0x4fb74c){if(!_0x4fb74c){_0x4d236c[_0x99ed('0x2b')](0x194);}return _0x4fb74c;};}function handleError(_0x2c6ea9,_0x121c34){_0x121c34=_0x121c34||0x1f4;return function(_0x34195d){logger[_0x99ed('0x2c')](_0x34195d['stack']);if(_0x34195d[_0x99ed('0x2d')]){delete _0x34195d['name'];}_0x2c6ea9['status'](_0x121c34)[_0x99ed('0x2e')](_0x34195d);};}exports['index']=function(_0x2e0341,_0x1e97a9){var _0x1378ce={},_0x30cf20={},_0xa217ef={'count':0x0,'rows':[]};var _0x36903e=_[_0x99ed('0x2f')](db['WhatsappQueue']['rawAttributes'],function(_0x8377b2){return{'name':_0x8377b2[_0x99ed('0x30')],'type':_0x8377b2[_0x99ed('0x31')][_0x99ed('0x32')]};});_0x30cf20[_0x99ed('0x33')]=_[_0x99ed('0x2f')](_0x36903e,_0x99ed('0x2d'));_0x30cf20[_0x99ed('0x34')]=_[_0x99ed('0x35')](_0x2e0341[_0x99ed('0x34')]);_0x30cf20[_0x99ed('0x36')]=_[_0x99ed('0x37')](_0x30cf20[_0x99ed('0x33')],_0x30cf20[_0x99ed('0x34')]);_0x1378ce[_0x99ed('0x38')]=_[_0x99ed('0x37')](_0x30cf20['model'],qs[_0x99ed('0x39')](_0x2e0341[_0x99ed('0x34')][_0x99ed('0x39')]));_0x1378ce['attributes']=_0x1378ce[_0x99ed('0x38')][_0x99ed('0x3a')]?_0x1378ce[_0x99ed('0x38')]:_0x30cf20[_0x99ed('0x33')];if(!_0x2e0341[_0x99ed('0x34')][_0x99ed('0x3b')](_0x99ed('0x3c'))){_0x1378ce[_0x99ed('0x20')]=qs['limit'](_0x2e0341['query'][_0x99ed('0x20')]);_0x1378ce['offset']=qs[_0x99ed('0x1d')](_0x2e0341['query'][_0x99ed('0x1d')]);}_0x1378ce[_0x99ed('0x3d')]=qs[_0x99ed('0x3e')](_0x2e0341[_0x99ed('0x34')]['sort']);_0x1378ce[_0x99ed('0x3f')]=qs[_0x99ed('0x36')](_[_0x99ed('0x40')](_0x2e0341[_0x99ed('0x34')],_0x30cf20[_0x99ed('0x36')]),_0x36903e);if(_0x2e0341[_0x99ed('0x34')][_0x99ed('0x41')]){_0x1378ce[_0x99ed('0x3f')]=_[_0x99ed('0x42')](_0x1378ce['where'],{'$or':_['map'](_0x36903e,function(_0x74db8b){if(_0x74db8b[_0x99ed('0x31')]!=='VIRTUAL'){var _0x5a600c={};_0x5a600c[_0x74db8b['name']]={'$like':'%'+_0x2e0341[_0x99ed('0x34')][_0x99ed('0x41')]+'%'};return _0x5a600c;}})});}_0x1378ce=_[_0x99ed('0x42')]({},_0x1378ce,_0x2e0341[_0x99ed('0x43')]);var _0x22611b={'where':_0x1378ce['where']};return db[_0x99ed('0x44')][_0x99ed('0x1f')](_0x22611b)[_0x99ed('0x26')](function(_0x53f5fc){_0xa217ef[_0x99ed('0x1f')]=_0x53f5fc;if(_0x2e0341[_0x99ed('0x34')][_0x99ed('0x45')]){_0x1378ce[_0x99ed('0x46')]=[{'all':!![]}];}return db[_0x99ed('0x44')][_0x99ed('0x47')](_0x1378ce);})[_0x99ed('0x26')](function(_0x3022de){_0xa217ef[_0x99ed('0x48')]=_0x3022de;return _0xa217ef;})['then'](respondWithFilteredResult(_0x1e97a9,_0x1378ce))['catch'](handleError(_0x1e97a9,null));};exports[_0x99ed('0x49')]=function(_0x2c1eb9,_0x352879){var _0x19b0c3={'raw':!![],'where':{'id':_0x2c1eb9[_0x99ed('0x4a')]['id']}},_0xd2741e={};_0xd2741e['model']=_[_0x99ed('0x35')](db[_0x99ed('0x44')][_0x99ed('0x4b')]);_0xd2741e[_0x99ed('0x34')]=_[_0x99ed('0x35')](_0x2c1eb9[_0x99ed('0x34')]);_0xd2741e[_0x99ed('0x36')]=_[_0x99ed('0x37')](_0xd2741e['model'],_0xd2741e[_0x99ed('0x34')]);_0x19b0c3[_0x99ed('0x38')]=_[_0x99ed('0x37')](_0xd2741e[_0x99ed('0x33')],qs['fields'](_0x2c1eb9[_0x99ed('0x34')][_0x99ed('0x39')]));_0x19b0c3[_0x99ed('0x38')]=_0x19b0c3[_0x99ed('0x38')]['length']?_0x19b0c3['attributes']:_0xd2741e[_0x99ed('0x33')];if(_0x2c1eb9[_0x99ed('0x34')][_0x99ed('0x45')]){_0x19b0c3['include']=[{'all':!![]}];}_0x19b0c3=_['merge']({},_0x19b0c3,_0x2c1eb9['options']);return db[_0x99ed('0x44')][_0x99ed('0x4c')](_0x19b0c3)['then'](handleEntityNotFound(_0x352879,null))[_0x99ed('0x26')](respondWithResult(_0x352879,null))['catch'](handleError(_0x352879,null));};exports[_0x99ed('0x4d')]=function(_0x833ea,_0x4a5b67){return db[_0x99ed('0x44')][_0x99ed('0x4d')](_0x833ea[_0x99ed('0x4e')],{})['then'](function(_0x351bf8){var _0x5b720a=_0x833ea[_0x99ed('0x4f')]['get']({'plain':!![]});if(!_0x5b720a)throw new Error(_0x99ed('0x50'));if(_0x5b720a[_0x99ed('0x51')]===_0x99ed('0x4f')){var _0x58f6c5=_0x351bf8['get']({'plain':!![]});var _0x4a6eab=_0x99ed('0x29');return db[_0x99ed('0x52')][_0x99ed('0x4c')]({'where':{'name':_0x4a6eab,'userProfileId':_0x5b720a[_0x99ed('0x53')]},'raw':!![]})[_0x99ed('0x26')](function(_0x5e7def){if(_0x5e7def&&_0x5e7def[_0x99ed('0x54')]===0x0){return db[_0x99ed('0x2a')]['create']({'name':_0x58f6c5[_0x99ed('0x2d')],'resourceId':_0x58f6c5['id'],'type':_0x5e7def[_0x99ed('0x2d')],'sectionId':_0x5e7def['id']},{})[_0x99ed('0x26')](function(){return _0x351bf8;});}else{return _0x351bf8;}})[_0x99ed('0x55')](function(_0x45cfb7){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x45cfb7);throw _0x45cfb7;});}return _0x351bf8;})[_0x99ed('0x26')](respondWithResult(_0x4a5b67,0xc9))[_0x99ed('0x55')](handleError(_0x4a5b67,null));};exports[_0x99ed('0x25')]=function(_0x3b5024,_0x3c314f){if(_0x3b5024[_0x99ed('0x4e')]['id']){delete _0x3b5024[_0x99ed('0x4e')]['id'];}return db[_0x99ed('0x44')]['find']({'where':{'id':_0x3b5024['params']['id']}})[_0x99ed('0x26')](handleEntityNotFound(_0x3c314f,null))[_0x99ed('0x26')](saveUpdates(_0x3b5024[_0x99ed('0x4e')],null))[_0x99ed('0x26')](respondWithResult(_0x3c314f,null))[_0x99ed('0x55')](handleError(_0x3c314f,null));};exports['destroy']=function(_0xdf6b50,_0x1d63eb){return db[_0x99ed('0x44')][_0x99ed('0x4c')]({'where':{'id':_0xdf6b50['params']['id']}})[_0x99ed('0x26')](handleEntityNotFound(_0x1d63eb,null))['then'](removeEntity(_0x1d63eb,null))[_0x99ed('0x55')](handleError(_0x1d63eb,null));};exports[_0x99ed('0x56')]=function(_0x193c8e,_0x1683d9){return db[_0x99ed('0x44')][_0x99ed('0x56')]()['then'](respondWithResult(_0x1683d9,null))[_0x99ed('0x55')](handleError(_0x1683d9,null));};exports[_0x99ed('0x57')]=function(_0x32d19f,_0x576933,_0x3018f5){var _0x29a1c6={'raw':!![],'where':{}},_0x4d41cc={},_0x5eeaa3;return db[_0x99ed('0x44')][_0x99ed('0x58')]({'where':{'id':_0x32d19f[_0x99ed('0x4a')]['id']}})[_0x99ed('0x26')](handleEntityNotFound(_0x576933,null))[_0x99ed('0x26')](function(_0x1a0353){if(_0x1a0353){_0x5eeaa3=_0x1a0353[_0x99ed('0x28')]({'plain':!![]});_0x4d41cc[_0x99ed('0x33')]=_[_0x99ed('0x35')](db[_0x99ed('0x59')][_0x99ed('0x4b')]);_0x4d41cc[_0x99ed('0x34')]=_['keys'](_0x32d19f['query']);_0x4d41cc[_0x99ed('0x36')]=_[_0x99ed('0x37')](_0x4d41cc[_0x99ed('0x33')],_0x4d41cc[_0x99ed('0x34')]);_0x29a1c6[_0x99ed('0x38')]=_[_0x99ed('0x37')](_0x4d41cc['model'],qs[_0x99ed('0x39')](_0x32d19f['query'][_0x99ed('0x39')]));_0x29a1c6[_0x99ed('0x38')]=_0x29a1c6['attributes'][_0x99ed('0x3a')]?_0x29a1c6[_0x99ed('0x38')]:_0x4d41cc[_0x99ed('0x33')];if(!_0x32d19f[_0x99ed('0x34')]['hasOwnProperty'](_0x99ed('0x3c'))){_0x29a1c6['limit']=qs[_0x99ed('0x20')](_0x32d19f[_0x99ed('0x34')]['limit']);_0x29a1c6[_0x99ed('0x1d')]=qs['offset'](_0x32d19f[_0x99ed('0x34')]['offset']);}_0x29a1c6[_0x99ed('0x3d')]=qs[_0x99ed('0x3e')](_0x32d19f[_0x99ed('0x34')]['sort']);_0x29a1c6[_0x99ed('0x3f')]=qs[_0x99ed('0x36')](_['pick'](_0x32d19f[_0x99ed('0x34')],_0x4d41cc[_0x99ed('0x36')]));_0x29a1c6[_0x99ed('0x3f')][_0x99ed('0x5a')]=_0x1a0353['id'];if(_0x32d19f[_0x99ed('0x34')][_0x99ed('0x41')]){_0x29a1c6['where']=_[_0x99ed('0x42')](_0x29a1c6['where'],{'$or':_[_0x99ed('0x2f')](_0x29a1c6[_0x99ed('0x38')],function(_0x553b84){var _0x2de82f={};_0x2de82f[_0x553b84]={'$like':'%'+_0x32d19f[_0x99ed('0x34')][_0x99ed('0x41')]+'%'};return _0x2de82f;})});}_0x29a1c6=_[_0x99ed('0x42')]({},_0x29a1c6,_0x32d19f[_0x99ed('0x43')]);return db[_0x99ed('0x59')]['findAll'](_0x29a1c6);}})['then'](function(_0x44bc6c){if(_0x44bc6c){return db[_0x99ed('0x5b')][_0x99ed('0x5c')]({'where':{'id':_[_0x99ed('0x2f')](_0x44bc6c,'UserId'),'role':_0x99ed('0x5d')},'attributes':['id',_0x99ed('0x2d'),'whatsappPause',_0x99ed('0x5e'),_0x99ed('0x5f')]});}})[_0x99ed('0x26')](function(_0x18ba64){if(_0x18ba64){return{'count':_0x18ba64['count'],'rows':_[_0x99ed('0x2f')](_0x18ba64[_0x99ed('0x48')],function(_0x4ccc92){return{'membername':_0x4ccc92[_0x99ed('0x2d')],'UserId':_0x4ccc92['id'],'queue_name':_0x5eeaa3[_0x99ed('0x2d')],'WhatsappQueueId':_0x5eeaa3['id'],'interface':util['format'](_0x99ed('0x60'),_0x99ed('0x61'),_0x4ccc92[_0x99ed('0x2d')]),'penalty':0x0,'paused':_0x4ccc92['whatsappPause'],'createdAt':_0x4ccc92[_0x99ed('0x5f')],'updatedAt':_0x4ccc92[_0x99ed('0x5e')]};})};}else{return{'count':0x0,'rows':[]};}})['then'](respondWithFilteredResult(_0x576933,_0x29a1c6))[_0x99ed('0x55')](handleError(_0x576933,null));};exports[_0x99ed('0x62')]=function(_0x12631c,_0x52515f,_0x301c94){var _0x3ff800={};var _0x7acca6={};var _0x2a6612;var _0x4444ce;return db[_0x99ed('0x44')]['findOne']({'where':{'id':_0x12631c['params']['id']}})[_0x99ed('0x26')](handleEntityNotFound(_0x52515f,null))[_0x99ed('0x26')](function(_0x5aad91){if(_0x5aad91){_0x2a6612=_0x5aad91;_0x7acca6[_0x99ed('0x33')]=_[_0x99ed('0x35')](db[_0x99ed('0x63')]['rawAttributes']);_0x7acca6[_0x99ed('0x34')]=_[_0x99ed('0x35')](_0x12631c[_0x99ed('0x34')]);_0x7acca6['filters']=_[_0x99ed('0x37')](_0x7acca6['model'],_0x7acca6['query']);_0x3ff800['attributes']=_[_0x99ed('0x37')](_0x7acca6[_0x99ed('0x33')],qs[_0x99ed('0x39')](_0x12631c[_0x99ed('0x34')]['fields']));_0x3ff800[_0x99ed('0x38')]=_0x3ff800['attributes']['length']?_0x3ff800[_0x99ed('0x38')]:_0x7acca6['model'];_0x3ff800[_0x99ed('0x3d')]=qs['sort'](_0x12631c[_0x99ed('0x34')][_0x99ed('0x3e')]);_0x3ff800[_0x99ed('0x3f')]=qs[_0x99ed('0x36')](_['pick'](_0x12631c[_0x99ed('0x34')],_0x7acca6[_0x99ed('0x36')]));if(_0x12631c['query'][_0x99ed('0x41')]){_0x3ff800[_0x99ed('0x3f')]=_[_0x99ed('0x42')](_0x3ff800['where'],{'$or':_[_0x99ed('0x2f')](_0x3ff800[_0x99ed('0x38')],function(_0x429ef5){var _0x21d9f8={};_0x21d9f8[_0x429ef5]={'$like':'%'+_0x12631c[_0x99ed('0x34')][_0x99ed('0x41')]+'%'};return _0x21d9f8;})});}_0x3ff800=_[_0x99ed('0x42')]({},_0x3ff800,_0x12631c['options']);return _0x2a6612[_0x99ed('0x62')](_0x3ff800);}})[_0x99ed('0x26')](function(_0x4d3065){if(_0x4d3065){_0x4444ce=_0x4d3065[_0x99ed('0x3a')];if(!_0x12631c[_0x99ed('0x34')][_0x99ed('0x3b')](_0x99ed('0x3c'))){_0x3ff800[_0x99ed('0x20')]=qs['limit'](_0x12631c[_0x99ed('0x34')][_0x99ed('0x20')]);_0x3ff800['offset']=qs[_0x99ed('0x1d')](_0x12631c[_0x99ed('0x34')][_0x99ed('0x1d')]);}return _0x2a6612['getTeams'](_0x3ff800);}})[_0x99ed('0x26')](function(_0x115032){if(_0x115032){return _0x115032?{'count':_0x4444ce,'rows':_0x115032}:null;}})[_0x99ed('0x26')](respondWithResult(_0x52515f,null))[_0x99ed('0x55')](handleError(_0x52515f,null));};exports[_0x99ed('0x64')]=function(_0x26926b,_0x4aedf6,_0x5ebae4){var _0x40bc59=_0x26926b[_0x99ed('0x4e')][_0x99ed('0x65')];return db[_0x99ed('0x63')][_0x99ed('0x47')]({'where':{'id':_0x40bc59},'attributes':['id'],'include':[{'model':db[_0x99ed('0x5b')],'as':_0x99ed('0x66'),'attributes':['id',_0x99ed('0x2d'),_0x99ed('0x67'),'voicePause','interface'],'raw':!![]}]})['then'](function(_0x2fcd75){if(_0x2fcd75){var _0x293a39=_[_0x99ed('0x68')](_0x2fcd75,function(_0x4ef648){var _0xa1bfd7=_0x4ef648[_0x99ed('0x28')]({'plain':!![]});return _0xa1bfd7[_0x99ed('0x66')];});return db['WhatsappQueue'][_0x99ed('0x4c')]({'where':{'id':_0x26926b[_0x99ed('0x4a')]['id']}})['then'](function(_0x2dce4c){return db[_0x99ed('0x69')][_0x99ed('0x6a')](function(_0x1555cc){return _0x2dce4c[_0x99ed('0x64')](_0x40bc59,{'transaction':_0x1555cc})[_0x99ed('0x26')](function(){return BPromise['each'](_0x293a39,function(_0x50bc30){return db[_0x99ed('0x59')][_0x99ed('0x6b')]({'where':{'UserId':_0x50bc30['id'],'WhatsappQueueId':_0x26926b[_0x99ed('0x4a')]['id']},'transaction':_0x1555cc});});})[_0x99ed('0x26')](function(){_0x293a39[_0x99ed('0x6c')](function(_0x2a47ec){socket[_0x99ed('0x6d')]('userWhatsappQueue:save',{'UserId':_0x2a47ec['id'],'WhatsappQueueId':_0x2dce4c['id']});});});});});}})['then'](respondWithStatusCode(_0x4aedf6,null))[_0x99ed('0x55')](handleError(_0x4aedf6,null));};exports[_0x99ed('0x6e')]=function(_0x2550b0,_0x4d697a,_0x24d9ee){return db['Team'][_0x99ed('0x47')]({'where':{'id':_0x2550b0[_0x99ed('0x34')][_0x99ed('0x65')]},'attributes':['id'],'include':[{'model':db[_0x99ed('0x5b')],'as':_0x99ed('0x66'),'attributes':['id'],'raw':!![]}]})[_0x99ed('0x26')](handleEntityNotFound(_0x4d697a,null))[_0x99ed('0x26')](function(_0x857751){var _0x372952=_['map'](_0x857751,'id');var _0x588cf3=[];var _0x349dea=[];var _0x3b34e9=squel[_0x99ed('0x6f')]();_0x3b34e9['field'](_0x99ed('0x70'))['from'](_0x99ed('0x71'),'tq')['join'](_0x99ed('0x72'),'ut',_0x99ed('0x73'))[_0x99ed('0x3f')](_0x99ed('0x74'),_0x2550b0[_0x99ed('0x4a')]['id']);for(var _0x4cc51c=0x0;_0x4cc51c<_0x857751['length'];_0x4cc51c+=0x1){let _0x5c85cb=_0x857751[_0x4cc51c];for(var _0x42b257=0x0;_0x42b257<_0x5c85cb[_0x99ed('0x66')][_0x99ed('0x3a')];_0x42b257+=0x1){let _0x61d297=_0x5c85cb['Agents'][_0x42b257];var _0x33e6e6=_0x3b34e9[_0x99ed('0x75')]();_0x33e6e6[_0x99ed('0x3f')](_0x99ed('0x76'),_0x61d297['id']);_0x349dea[_0x99ed('0x77')](db[_0x99ed('0x69')][_0x99ed('0x34')](_0x33e6e6[_0x99ed('0x78')](),{'type':db[_0x99ed('0x69')][_0x99ed('0x79')]['SELECT']})['then'](function(_0x125334){if(_0x125334[_0x99ed('0x3a')]===0x1){return _0x61d297['id'];}else{var _0x571b6f=_['every'](_[_0x99ed('0x2f')](_0x125334,_0x99ed('0x7a')),function(_0x45f934){return _[_0x99ed('0x7b')](_0x372952,_0x45f934);});if(_0x571b6f){return _0x61d297['id'];}}}));}}return BPromise[_0x99ed('0x7c')](_0x349dea)[_0x99ed('0x26')](function(_0x313c5e){_0x588cf3=_(_0x588cf3)[_0x99ed('0x7d')](_0x313c5e)[_0x99ed('0x7e')]()[_0x99ed('0x7f')]();return db[_0x99ed('0x44')][_0x99ed('0x4c')]({'where':{'id':_0x2550b0[_0x99ed('0x4a')]['id']}})[_0x99ed('0x26')](function(_0x4fd139){return db[_0x99ed('0x69')]['transaction'](function(_0x2d7d75){return _0x4fd139[_0x99ed('0x6e')](_0x2550b0[_0x99ed('0x34')][_0x99ed('0x65')],{'transaction':_0x2d7d75})[_0x99ed('0x26')](function(){if(!_[_0x99ed('0x80')](_0x588cf3)){return _0x4fd139[_0x99ed('0x81')](_0x588cf3,{'transaction':_0x2d7d75});}})[_0x99ed('0x26')](function(){_0x588cf3[_0x99ed('0x6c')](function(_0x5a48ae){socket[_0x99ed('0x6d')](_0x99ed('0x82'),{'UserId':_0x5a48ae,'WhatsappQueueId':_0x4fd139['id']});});});});});});})[_0x99ed('0x26')](respondWithStatusCode(_0x4d697a,null))[_0x99ed('0x55')](handleError(_0x4d697a,null));};exports[_0x99ed('0x83')]=function(_0x11534c,_0x2eb3f2,_0x37586c){return db[_0x99ed('0x44')][_0x99ed('0x4c')]({'where':{'id':_0x11534c[_0x99ed('0x4a')]['id']}})[_0x99ed('0x26')](handleEntityNotFound(_0x2eb3f2,null))[_0x99ed('0x26')](function(_0x24cff9){if(_0x24cff9){return _0x24cff9['addAgents'](_0x11534c[_0x99ed('0x4e')][_0x99ed('0x65')],_[_0x99ed('0x84')](_0x11534c[_0x99ed('0x4e')],[_0x99ed('0x65'),'id'])||{})[_0x99ed('0x85')](function(_0x22a9af){for(var _0x2e6481=0x0;_0x2e6481<_0x11534c[_0x99ed('0x4e')][_0x99ed('0x65')][_0x99ed('0x3a')];_0x2e6481+=0x1){socket[_0x99ed('0x6d')]('userWhatsappQueue:save',{'UserId':Number(_0x11534c[_0x99ed('0x4e')][_0x99ed('0x65')][_0x2e6481]),'WhatsappQueueId':Number(_0x11534c[_0x99ed('0x4a')]['id'])});}return _0x22a9af;});}})['then'](respondWithResult(_0x2eb3f2,null))[_0x99ed('0x55')](handleError(_0x2eb3f2,null));};exports[_0x99ed('0x81')]=function(_0x3f4ba6,_0x2dcbab,_0x1f5f5b){return db[_0x99ed('0x44')]['find']({'where':{'id':_0x3f4ba6[_0x99ed('0x4a')]['id']}})['then'](handleEntityNotFound(_0x2dcbab,null))[_0x99ed('0x26')](function(_0x44c54a){if(_0x44c54a){return _0x44c54a[_0x99ed('0x81')](_0x3f4ba6[_0x99ed('0x34')][_0x99ed('0x65')])[_0x99ed('0x26')](function(){if(_[_0x99ed('0x86')](_0x3f4ba6[_0x99ed('0x34')][_0x99ed('0x65')])){for(var _0x44c370=0x0;_0x44c370<_0x3f4ba6[_0x99ed('0x34')][_0x99ed('0x65')][_0x99ed('0x3a')];_0x44c370+=0x1){socket[_0x99ed('0x6d')]('userWhatsappQueue:remove',{'UserId':Number(_0x3f4ba6[_0x99ed('0x34')][_0x99ed('0x65')][_0x44c370]),'WhatsappQueueId':Number(_0x3f4ba6[_0x99ed('0x4a')]['id'])});}}else{socket[_0x99ed('0x6d')]('userWhatsappQueue:remove',{'UserId':Number(_0x3f4ba6[_0x99ed('0x34')][_0x99ed('0x65')]),'WhatsappQueueId':Number(_0x3f4ba6[_0x99ed('0x4a')]['id'])});}});}})[_0x99ed('0x26')](respondWithStatusCode(_0x2dcbab,null))[_0x99ed('0x55')](handleError(_0x2dcbab,null));};exports[_0x99ed('0x87')]=function(_0x16c193,_0x52e630,_0x1da706){var _0x221036={};var _0x40ccfa={};var _0x19a102;var _0x1a9727;return db[_0x99ed('0x44')]['findOne']({'where':{'id':_0x16c193[_0x99ed('0x4a')]['id']}})[_0x99ed('0x26')](handleEntityNotFound(_0x52e630,null))[_0x99ed('0x26')](function(_0x40ff43){if(_0x40ff43){_0x19a102=_0x40ff43;_0x40ccfa[_0x99ed('0x33')]=_[_0x99ed('0x35')](db[_0x99ed('0x5b')]['rawAttributes']);_0x40ccfa[_0x99ed('0x34')]=_['keys'](_0x16c193[_0x99ed('0x34')]);_0x40ccfa[_0x99ed('0x36')]=_[_0x99ed('0x37')](_0x40ccfa[_0x99ed('0x33')],_0x40ccfa[_0x99ed('0x34')]);_0x221036[_0x99ed('0x38')]=_[_0x99ed('0x37')](_0x40ccfa[_0x99ed('0x33')],qs[_0x99ed('0x39')](_0x16c193[_0x99ed('0x34')][_0x99ed('0x39')]));_0x221036[_0x99ed('0x38')]=_0x221036[_0x99ed('0x38')][_0x99ed('0x3a')]?_0x221036[_0x99ed('0x38')]:_0x40ccfa['model'];_0x221036[_0x99ed('0x3d')]=qs['sort'](_0x16c193[_0x99ed('0x34')]['sort']);_0x221036[_0x99ed('0x3f')]=qs[_0x99ed('0x36')](_[_0x99ed('0x40')](_0x16c193['query'],_0x40ccfa[_0x99ed('0x36')]));if(_0x16c193[_0x99ed('0x34')][_0x99ed('0x41')]){_0x221036[_0x99ed('0x3f')]=_[_0x99ed('0x42')](_0x221036[_0x99ed('0x3f')],{'$or':_[_0x99ed('0x2f')](_0x221036[_0x99ed('0x38')],function(_0xdf585a){var _0x3a958e={};_0x3a958e[_0xdf585a]={'$like':'%'+_0x16c193[_0x99ed('0x34')]['filter']+'%'};return _0x3a958e;})});}_0x221036=_[_0x99ed('0x42')]({},_0x221036,_0x16c193[_0x99ed('0x43')]);return _0x19a102[_0x99ed('0x87')](_0x221036);}})['then'](function(_0x32f68e){if(_0x32f68e){_0x1a9727=_0x32f68e['length'];if(!_0x16c193['query'][_0x99ed('0x3b')]('nolimit')){_0x221036[_0x99ed('0x20')]=qs[_0x99ed('0x20')](_0x16c193['query'][_0x99ed('0x20')]);_0x221036['offset']=qs[_0x99ed('0x1d')](_0x16c193[_0x99ed('0x34')][_0x99ed('0x1d')]);}return _0x19a102[_0x99ed('0x87')](_0x221036);}})[_0x99ed('0x26')](function(_0x4bf335){if(_0x4bf335){return _0x4bf335?{'count':_0x1a9727,'rows':_0x4bf335}:null;}})[_0x99ed('0x26')](respondWithResult(_0x52e630,null))[_0x99ed('0x55')](handleError(_0x52e630,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x203c=['../../mysqldb','WhatsappQueue','save','update','emit','hasOwnProperty','hook','events'];(function(_0x525370,_0x5abe18){var _0x4a1ae9=function(_0x257f97){while(--_0x257f97){_0x525370['push'](_0x525370['shift']());}};_0x4a1ae9(++_0x5abe18);}(_0x203c,0x12f));var _0xc203=function(_0x5a8f1e,_0x34e14e){_0x5a8f1e=_0x5a8f1e-0x0;var _0x19072f=_0x203c[_0x5a8f1e];return _0x19072f;};'use strict';var EventEmitter=require(_0xc203('0x0'));var WhatsappQueue=require(_0xc203('0x1'))['db'][_0xc203('0x2')];var WhatsappQueueEvents=new EventEmitter();WhatsappQueueEvents['setMaxListeners'](0x0);var events={'afterCreate':_0xc203('0x3'),'afterUpdate':_0xc203('0x4'),'afterDestroy':'remove'};function emitEvent(_0x5d40d2){return function(_0x38c4d6,_0x6102d1,_0x2aef1c){WhatsappQueueEvents[_0xc203('0x5')](_0x5d40d2+':'+_0x38c4d6['id'],_0x38c4d6);WhatsappQueueEvents[_0xc203('0x5')](_0x5d40d2,_0x38c4d6);_0x2aef1c(null);};}for(var e in events){if(events[_0xc203('0x6')](e)){var event=events[e];WhatsappQueue[_0xc203('0x7')](e,emitEvent(event));}}module['exports']=WhatsappQueueEvents;
\ No newline at end of file
+var _0xee67=['save','update','remove','emit','hasOwnProperty','hook','exports','events','WhatsappQueue'];(function(_0x439b3f,_0x7c82b5){var _0x2f52f5=function(_0x23bc45){while(--_0x23bc45){_0x439b3f['push'](_0x439b3f['shift']());}};_0x2f52f5(++_0x7c82b5);}(_0xee67,0xdf));var _0x7ee6=function(_0x10dd5f,_0x8af6dc){_0x10dd5f=_0x10dd5f-0x0;var _0xd0ce06=_0xee67[_0x10dd5f];return _0xd0ce06;};'use strict';var EventEmitter=require(_0x7ee6('0x0'));var WhatsappQueue=require('../../mysqldb')['db'][_0x7ee6('0x1')];var WhatsappQueueEvents=new EventEmitter();WhatsappQueueEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x7ee6('0x2'),'afterUpdate':_0x7ee6('0x3'),'afterDestroy':_0x7ee6('0x4')};function emitEvent(_0x4fe266){return function(_0x5e95af,_0x419cfe,_0x845cb4){WhatsappQueueEvents[_0x7ee6('0x5')](_0x4fe266+':'+_0x5e95af['id'],_0x5e95af);WhatsappQueueEvents[_0x7ee6('0x5')](_0x4fe266,_0x5e95af);_0x845cb4(null);};}for(var e in events){if(events[_0x7ee6('0x6')](e)){var event=events[e];WhatsappQueue[_0x7ee6('0x7')](e,emitEvent(event));}}module[_0x7ee6('0x8')]=WhatsappQueueEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6dfa=['define','WhatsappQueue','whatsapp_queues','lodash','api','moment','bluebird','request-promise','rimraf','exports'];(function(_0x516308,_0x2318c6){var _0x344466=function(_0x3b63ec){while(--_0x3b63ec){_0x516308['push'](_0x516308['shift']());}};_0x344466(++_0x2318c6);}(_0x6dfa,0x12f));var _0xa6df=function(_0x21c027,_0x23ac0a){_0x21c027=_0x21c027-0x0;var _0x6c0246=_0x6dfa[_0x21c027];return _0x6c0246;};'use strict';var _=require(_0xa6df('0x0'));var util=require('util');var logger=require('../../config/logger')(_0xa6df('0x1'));var moment=require(_0xa6df('0x2'));var BPromise=require(_0xa6df('0x3'));var rp=require(_0xa6df('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0xa6df('0x5'));var config=require('../../config/environment');var attributes=require('./whatsappQueue.attributes');module[_0xa6df('0x6')]=function(_0x51000e,_0x2a46a2){return _0x51000e[_0xa6df('0x7')](_0xa6df('0x8'),attributes,{'tableName':_0xa6df('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x6966=['lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','./whatsappQueue.attributes','exports','define','WhatsappQueue','whatsapp_queues'];(function(_0x39522f,_0x4370a0){var _0x79b4ba=function(_0x1ded45){while(--_0x1ded45){_0x39522f['push'](_0x39522f['shift']());}};_0x79b4ba(++_0x4370a0);}(_0x6966,0x150));var _0x6696=function(_0x1366e3,_0x234eb3){_0x1366e3=_0x1366e3-0x0;var _0x53ecdc=_0x6966[_0x1366e3];return _0x53ecdc;};'use strict';var _=require(_0x6696('0x0'));var util=require(_0x6696('0x1'));var logger=require(_0x6696('0x2'))(_0x6696('0x3'));var moment=require(_0x6696('0x4'));var BPromise=require(_0x6696('0x5'));var rp=require(_0x6696('0x6'));var fs=require('fs');var path=require(_0x6696('0x7'));var rimraf=require(_0x6696('0x8'));var config=require('../../config/environment');var attributes=require(_0x6696('0x9'));module[_0x6696('0xa')]=function(_0xe5660d,_0x4e9ac2){return _0xe5660d[_0x6696('0xb')](_0x6696('0xc'),attributes,{'tableName':_0x6696('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9384=['GetWhatsappQueue','WhatsappQueue','findAll','options','raw','where','attributes','map','include','model','ShowWhatsappQueue','find','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','jayson/promise','client','defaults','redis','localhost','./whatsappQueue.socket','register','request','then','info','WhatsappQueue,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','catch'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x9384,0x1b9));var _0x4938=function(_0x3a73bc,_0x550aef){_0x3a73bc=_0x3a73bc-0x0;var _0x32891b=_0x9384[_0x3a73bc];return _0x32891b;};'use strict';var _=require(_0x4938('0x0'));var util=require('util');var moment=require(_0x4938('0x1'));var BPromise=require(_0x4938('0x2'));var rs=require(_0x4938('0x3'));var fs=require('fs');var Redis=require(_0x4938('0x4'));var db=require(_0x4938('0x5'))['db'];var utils=require(_0x4938('0x6'));var logger=require(_0x4938('0x7'))('rpc');var config=require('../../config/environment');var jayson=require(_0x4938('0x8'));var client=jayson[_0x4938('0x9')]['http']({'port':0x232a});config['redis']=_[_0x4938('0xa')](config[_0x4938('0xb')],{'host':_0x4938('0xc'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x4938('0xb')]));require(_0x4938('0xd'))[_0x4938('0xe')](socket);function respondWithRpcPromise(_0x33b912,_0x16a083,_0x2c944e){return new BPromise(function(_0x7e521a,_0x5185bd){return client[_0x4938('0xf')](_0x33b912,_0x2c944e)[_0x4938('0x10')](function(_0x27fc10){logger[_0x4938('0x11')](_0x4938('0x12'),_0x16a083,_0x4938('0x13'));logger[_0x4938('0x14')]('WhatsappQueue,\x20%s,\x20%s,\x20%s',_0x16a083,'request\x20sent',JSON[_0x4938('0x15')](_0x27fc10));if(_0x27fc10['error']){if(_0x27fc10[_0x4938('0x16')][_0x4938('0x17')]===0x1f4){logger[_0x4938('0x16')]('WhatsappQueue,\x20%s,\x20%s',_0x16a083,_0x27fc10[_0x4938('0x16')][_0x4938('0x18')]);return _0x5185bd(_0x27fc10[_0x4938('0x16')]['message']);}logger[_0x4938('0x16')](_0x4938('0x12'),_0x16a083,_0x27fc10[_0x4938('0x16')][_0x4938('0x18')]);return _0x7e521a(_0x27fc10['error'][_0x4938('0x18')]);}else{logger[_0x4938('0x11')](_0x4938('0x12'),_0x16a083,'request\x20sent');_0x7e521a(_0x27fc10[_0x4938('0x19')][_0x4938('0x18')]);}})[_0x4938('0x1a')](function(_0x1fbf26){logger[_0x4938('0x16')](_0x4938('0x12'),_0x16a083,_0x1fbf26);_0x5185bd(_0x1fbf26);});});}exports[_0x4938('0x1b')]=function(_0xaea955){var _0x424740=this;return new Promise(function(_0x25f0a8,_0x4974a2){return db[_0x4938('0x1c')][_0x4938('0x1d')]({'raw':_0xaea955[_0x4938('0x1e')]?_0xaea955['options'][_0x4938('0x1f')]===undefined?!![]:![]:!![],'where':_0xaea955[_0x4938('0x1e')]?_0xaea955[_0x4938('0x1e')][_0x4938('0x20')]||null:null,'attributes':_0xaea955[_0x4938('0x1e')]?_0xaea955[_0x4938('0x1e')][_0x4938('0x21')]||null:null,'limit':_0xaea955['options']?_0xaea955[_0x4938('0x1e')]['limit']||null:null,'include':_0xaea955[_0x4938('0x1e')]?_0xaea955[_0x4938('0x1e')]['include']?_[_0x4938('0x22')](_0xaea955['options'][_0x4938('0x23')],function(_0x2988f0){return{'model':db[_0x2988f0[_0x4938('0x24')]],'as':_0x2988f0['as'],'attributes':_0x2988f0[_0x4938('0x21')],'include':_0x2988f0[_0x4938('0x23')]?_[_0x4938('0x22')](_0x2988f0['include'],function(_0x217263){return{'model':db[_0x217263[_0x4938('0x24')]],'as':_0x217263['as'],'attributes':_0x217263[_0x4938('0x21')],'include':_0x217263[_0x4938('0x23')]?_[_0x4938('0x22')](_0x217263[_0x4938('0x23')],function(_0x61b42){return{'model':db[_0x61b42[_0x4938('0x24')]],'as':_0x61b42['as'],'attributes':_0x61b42[_0x4938('0x21')]};}):[]};}):[]};}):[]:[]})[_0x4938('0x10')](function(_0x4072a7){logger[_0x4938('0x11')]('GetWhatsappQueue',_0xaea955);logger[_0x4938('0x14')](_0x4938('0x1b'),_0xaea955,JSON[_0x4938('0x15')](_0x4072a7));_0x25f0a8(_0x4072a7);})[_0x4938('0x1a')](function(_0x8f8155){logger[_0x4938('0x16')](_0x4938('0x1b'),_0x8f8155[_0x4938('0x18')],_0xaea955);_0x4974a2(_0x424740[_0x4938('0x16')](0x1f4,_0x8f8155[_0x4938('0x18')]));});});};exports[_0x4938('0x25')]=function(_0x361dab){var _0x35b39e=this;return new Promise(function(_0x420330,_0x1fa93b){return db['WhatsappQueue'][_0x4938('0x26')]({'raw':_0x361dab[_0x4938('0x1e')]?_0x361dab[_0x4938('0x1e')][_0x4938('0x1f')]===undefined?!![]:![]:!![],'where':_0x361dab['options']?_0x361dab[_0x4938('0x1e')][_0x4938('0x20')]||null:null,'attributes':_0x361dab['options']?_0x361dab[_0x4938('0x1e')][_0x4938('0x21')]||null:null,'include':_0x361dab[_0x4938('0x1e')]?_0x361dab['options'][_0x4938('0x23')]?_[_0x4938('0x22')](_0x361dab[_0x4938('0x1e')][_0x4938('0x23')],function(_0x3bf1b4){return{'model':db[_0x3bf1b4[_0x4938('0x24')]],'as':_0x3bf1b4['as'],'attributes':_0x3bf1b4[_0x4938('0x21')],'include':_0x3bf1b4[_0x4938('0x23')]?_['map'](_0x3bf1b4[_0x4938('0x23')],function(_0x270b79){return{'model':db[_0x270b79[_0x4938('0x24')]],'as':_0x270b79['as'],'attributes':_0x270b79[_0x4938('0x21')],'include':_0x270b79[_0x4938('0x23')]?_[_0x4938('0x22')](_0x270b79[_0x4938('0x23')],function(_0x4c5c9f){return{'model':db[_0x4c5c9f['model']],'as':_0x4c5c9f['as'],'attributes':_0x4c5c9f[_0x4938('0x21')]};}):[]};}):[]};}):[]:[]})[_0x4938('0x10')](function(_0xd8337c){logger[_0x4938('0x11')](_0x4938('0x25'),_0x361dab);logger[_0x4938('0x14')](_0x4938('0x25'),_0x361dab,JSON[_0x4938('0x15')](_0xd8337c));_0x420330(_0xd8337c);})[_0x4938('0x1a')](function(_0x230f7b){logger[_0x4938('0x16')](_0x4938('0x25'),_0x230f7b['message'],_0x361dab);_0x1fa93b(_0x35b39e[_0x4938('0x16')](0x1f4,_0x230f7b[_0x4938('0x18')]));});});};
\ No newline at end of file
+var _0x65a3=['raw','where','attributes','limit','include','map','model','then','debug','stringify','ShowWhatsappQueue','find','util','bluebird','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','./whatsappQueue.socket','request','info','WhatsappQueue,\x20%s,\x20%s','request\x20sent','error','code','message','result','catch','GetWhatsappQueue','WhatsappQueue','findAll','options'];(function(_0x5de278,_0x3ad4da){var _0x54ff4b=function(_0x438bf1){while(--_0x438bf1){_0x5de278['push'](_0x5de278['shift']());}};_0x54ff4b(++_0x3ad4da);}(_0x65a3,0xcf));var _0x365a=function(_0x174167,_0x438943){_0x174167=_0x174167-0x0;var _0x2d6f8d=_0x65a3[_0x174167];return _0x2d6f8d;};'use strict';var _=require('lodash');var util=require(_0x365a('0x0'));var moment=require('moment');var BPromise=require(_0x365a('0x1'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x365a('0x2'));var db=require(_0x365a('0x3'))['db'];var utils=require('../../config/utils');var logger=require(_0x365a('0x4'))(_0x365a('0x5'));var config=require(_0x365a('0x6'));var jayson=require(_0x365a('0x7'));var client=jayson[_0x365a('0x8')][_0x365a('0x9')]({'port':0x232a});config[_0x365a('0xa')]=_[_0x365a('0xb')](config['redis'],{'host':_0x365a('0xc'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x365a('0xa')]));require(_0x365a('0xd'))['register'](socket);function respondWithRpcPromise(_0x23295e,_0x4123ca,_0x7834a9){return new BPromise(function(_0x39cf3d,_0x49eae4){return client[_0x365a('0xe')](_0x23295e,_0x7834a9)['then'](function(_0x255585){logger[_0x365a('0xf')](_0x365a('0x10'),_0x4123ca,_0x365a('0x11'));logger['debug']('WhatsappQueue,\x20%s,\x20%s,\x20%s',_0x4123ca,'request\x20sent',JSON['stringify'](_0x255585));if(_0x255585[_0x365a('0x12')]){if(_0x255585[_0x365a('0x12')][_0x365a('0x13')]===0x1f4){logger[_0x365a('0x12')](_0x365a('0x10'),_0x4123ca,_0x255585[_0x365a('0x12')]['message']);return _0x49eae4(_0x255585[_0x365a('0x12')][_0x365a('0x14')]);}logger[_0x365a('0x12')](_0x365a('0x10'),_0x4123ca,_0x255585[_0x365a('0x12')][_0x365a('0x14')]);return _0x39cf3d(_0x255585[_0x365a('0x12')][_0x365a('0x14')]);}else{logger[_0x365a('0xf')]('WhatsappQueue,\x20%s,\x20%s',_0x4123ca,'request\x20sent');_0x39cf3d(_0x255585[_0x365a('0x15')][_0x365a('0x14')]);}})[_0x365a('0x16')](function(_0x15e027){logger[_0x365a('0x12')](_0x365a('0x10'),_0x4123ca,_0x15e027);_0x49eae4(_0x15e027);});});}exports[_0x365a('0x17')]=function(_0x55966e){var _0x3852d5=this;return new Promise(function(_0x30c0c6,_0x36f687){return db[_0x365a('0x18')][_0x365a('0x19')]({'raw':_0x55966e[_0x365a('0x1a')]?_0x55966e['options'][_0x365a('0x1b')]===undefined?!![]:![]:!![],'where':_0x55966e[_0x365a('0x1a')]?_0x55966e[_0x365a('0x1a')][_0x365a('0x1c')]||null:null,'attributes':_0x55966e['options']?_0x55966e['options'][_0x365a('0x1d')]||null:null,'limit':_0x55966e['options']?_0x55966e['options'][_0x365a('0x1e')]||null:null,'include':_0x55966e['options']?_0x55966e[_0x365a('0x1a')][_0x365a('0x1f')]?_[_0x365a('0x20')](_0x55966e[_0x365a('0x1a')][_0x365a('0x1f')],function(_0x1ff118){return{'model':db[_0x1ff118[_0x365a('0x21')]],'as':_0x1ff118['as'],'attributes':_0x1ff118[_0x365a('0x1d')],'include':_0x1ff118[_0x365a('0x1f')]?_[_0x365a('0x20')](_0x1ff118[_0x365a('0x1f')],function(_0xe0b66b){return{'model':db[_0xe0b66b[_0x365a('0x21')]],'as':_0xe0b66b['as'],'attributes':_0xe0b66b[_0x365a('0x1d')],'include':_0xe0b66b[_0x365a('0x1f')]?_[_0x365a('0x20')](_0xe0b66b[_0x365a('0x1f')],function(_0x18ef4d){return{'model':db[_0x18ef4d[_0x365a('0x21')]],'as':_0x18ef4d['as'],'attributes':_0x18ef4d[_0x365a('0x1d')]};}):[]};}):[]};}):[]:[]})[_0x365a('0x22')](function(_0xa285cd){logger['info'](_0x365a('0x17'),_0x55966e);logger[_0x365a('0x23')](_0x365a('0x17'),_0x55966e,JSON[_0x365a('0x24')](_0xa285cd));_0x30c0c6(_0xa285cd);})[_0x365a('0x16')](function(_0x552503){logger[_0x365a('0x12')](_0x365a('0x17'),_0x552503[_0x365a('0x14')],_0x55966e);_0x36f687(_0x3852d5[_0x365a('0x12')](0x1f4,_0x552503[_0x365a('0x14')]));});});};exports[_0x365a('0x25')]=function(_0x40cd98){var _0x1310df=this;return new Promise(function(_0x4760bf,_0x515b92){return db[_0x365a('0x18')][_0x365a('0x26')]({'raw':_0x40cd98[_0x365a('0x1a')]?_0x40cd98[_0x365a('0x1a')][_0x365a('0x1b')]===undefined?!![]:![]:!![],'where':_0x40cd98[_0x365a('0x1a')]?_0x40cd98[_0x365a('0x1a')][_0x365a('0x1c')]||null:null,'attributes':_0x40cd98['options']?_0x40cd98['options'][_0x365a('0x1d')]||null:null,'include':_0x40cd98[_0x365a('0x1a')]?_0x40cd98[_0x365a('0x1a')]['include']?_[_0x365a('0x20')](_0x40cd98['options'][_0x365a('0x1f')],function(_0xe92bc6){return{'model':db[_0xe92bc6[_0x365a('0x21')]],'as':_0xe92bc6['as'],'attributes':_0xe92bc6[_0x365a('0x1d')],'include':_0xe92bc6[_0x365a('0x1f')]?_[_0x365a('0x20')](_0xe92bc6[_0x365a('0x1f')],function(_0x1401b0){return{'model':db[_0x1401b0[_0x365a('0x21')]],'as':_0x1401b0['as'],'attributes':_0x1401b0['attributes'],'include':_0x1401b0['include']?_[_0x365a('0x20')](_0x1401b0[_0x365a('0x1f')],function(_0x438fa1){return{'model':db[_0x438fa1[_0x365a('0x21')]],'as':_0x438fa1['as'],'attributes':_0x438fa1[_0x365a('0x1d')]};}):[]};}):[]};}):[]:[]})[_0x365a('0x22')](function(_0x567277){logger[_0x365a('0xf')](_0x365a('0x25'),_0x40cd98);logger['debug']('ShowWhatsappQueue',_0x40cd98,JSON[_0x365a('0x24')](_0x567277));_0x4760bf(_0x567277);})[_0x365a('0x16')](function(_0x4c87e0){logger[_0x365a('0x12')](_0x365a('0x25'),_0x4c87e0['message'],_0x40cd98);_0x515b92(_0x1310df['error'](0x1f4,_0x4c87e0[_0x365a('0x14')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4fce=['remove','update','removeListener','register','length','whatsappQueue:'];(function(_0x2aee2f,_0xad9887){var _0x19337f=function(_0x2e62d){while(--_0x2e62d){_0x2aee2f['push'](_0x2aee2f['shift']());}};_0x19337f(++_0xad9887);}(_0x4fce,0x1c2));var _0xe4fc=function(_0x435b4f,_0x2c6580){_0x435b4f=_0x435b4f-0x0;var _0xdf9d46=_0x4fce[_0x435b4f];return _0xdf9d46;};'use strict';var WhatsappQueueEvents=require('./whatsappQueue.events');var events=['save',_0xe4fc('0x0'),_0xe4fc('0x1')];function createListener(_0x8a55c7,_0x5a4767){return function(_0x2fe303){_0x5a4767['emit'](_0x8a55c7,_0x2fe303);};}function removeListener(_0x52f4bc,_0x20cbb4){return function(){WhatsappQueueEvents[_0xe4fc('0x2')](_0x52f4bc,_0x20cbb4);};}exports[_0xe4fc('0x3')]=function(_0x54ecc7){for(var _0xcd3202=0x0,_0x3f845b=events[_0xe4fc('0x4')];_0xcd3202<_0x3f845b;_0xcd3202++){var _0x18ffba=events[_0xcd3202];var _0x286ead=createListener(_0xe4fc('0x5')+_0x18ffba,_0x54ecc7);WhatsappQueueEvents['on'](_0x18ffba,_0x286ead);}};
\ No newline at end of file
+var _0x28e5=['emit','removeListener','register','length','whatsappQueue:','save','remove'];(function(_0x5abe08,_0x52e46c){var _0x2e8d9b=function(_0x91dab2){while(--_0x91dab2){_0x5abe08['push'](_0x5abe08['shift']());}};_0x2e8d9b(++_0x52e46c);}(_0x28e5,0x1be));var _0x528e=function(_0xb9ab21,_0x4ba733){_0xb9ab21=_0xb9ab21-0x0;var _0x623364=_0x28e5[_0xb9ab21];return _0x623364;};'use strict';var WhatsappQueueEvents=require('./whatsappQueue.events');var events=[_0x528e('0x0'),_0x528e('0x1'),'update'];function createListener(_0x39756a,_0x7ec8f1){return function(_0x403738){_0x7ec8f1[_0x528e('0x2')](_0x39756a,_0x403738);};}function removeListener(_0x540c43,_0x3c47a4){return function(){WhatsappQueueEvents[_0x528e('0x3')](_0x540c43,_0x3c47a4);};}exports[_0x528e('0x4')]=function(_0x9c1b27){for(var _0x8ff699=0x0,_0x2f0e52=events[_0x528e('0x5')];_0x8ff699<_0x2f0e52;_0x8ff699++){var _0x12cfa2=events[_0x8ff699];var _0x1c3efa=createListener(_0x528e('0x6')+_0x12cfa2,_0x9c1b27);WhatsappQueueEvents['on'](_0x12cfa2,_0x1c3efa);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa84e=['exports','multer','util','path','connect-timeout','express','fs-extra','../../components/interaction/service','./whatsappQueueReport.controller','get','index','/describe','isAuthenticated','describe','/:id','show','post','put','update','delete','destroy'];(function(_0x74d22,_0x383575){var _0x4b23e1=function(_0x27bdc8){while(--_0x27bdc8){_0x74d22['push'](_0x74d22['shift']());}};_0x4b23e1(++_0x383575);}(_0xa84e,0x151));var _0xea84=function(_0x577fa5,_0x1989b4){_0x577fa5=_0x577fa5-0x0;var _0x3c36be=_0xa84e[_0x577fa5];return _0x3c36be;};'use strict';var multer=require(_0xea84('0x0'));var util=require(_0xea84('0x1'));var path=require(_0xea84('0x2'));var timeout=require(_0xea84('0x3'));var express=require(_0xea84('0x4'));var router=express['Router']();var fs_extra=require(_0xea84('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0xea84('0x6'));var config=require('../../config/environment');var controller=require(_0xea84('0x7'));router[_0xea84('0x8')]('/',auth['isAuthenticated'](),controller[_0xea84('0x9')]);router[_0xea84('0x8')](_0xea84('0xa'),auth[_0xea84('0xb')](),controller[_0xea84('0xc')]);router['get'](_0xea84('0xd'),auth[_0xea84('0xb')](),controller[_0xea84('0xe')]);router[_0xea84('0xf')]('/',auth[_0xea84('0xb')](),controller['create']);router[_0xea84('0x10')](_0xea84('0xd'),auth[_0xea84('0xb')](),controller[_0xea84('0x11')]);router[_0xea84('0x12')](_0xea84('0xd'),auth[_0xea84('0xb')](),controller[_0xea84('0x13')]);module[_0xea84('0x14')]=router;
\ No newline at end of file
+var _0x626a=['describe','/:id','post','create','update','destroy','multer','util','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./whatsappQueueReport.controller','get','isAuthenticated','index','/describe'];(function(_0x525bfb,_0x13118b){var _0x173240=function(_0x5606ec){while(--_0x5606ec){_0x525bfb['push'](_0x525bfb['shift']());}};_0x173240(++_0x13118b);}(_0x626a,0x10a));var _0xa626=function(_0x2b8db8,_0xff0a99){_0x2b8db8=_0x2b8db8-0x0;var _0x5733e7=_0x626a[_0x2b8db8];return _0x5733e7;};'use strict';var multer=require(_0xa626('0x0'));var util=require(_0xa626('0x1'));var path=require(_0xa626('0x2'));var timeout=require(_0xa626('0x3'));var express=require('express');var router=express[_0xa626('0x4')]();var fs_extra=require(_0xa626('0x5'));var auth=require(_0xa626('0x6'));var interaction=require(_0xa626('0x7'));var config=require(_0xa626('0x8'));var controller=require(_0xa626('0x9'));router[_0xa626('0xa')]('/',auth[_0xa626('0xb')](),controller[_0xa626('0xc')]);router['get'](_0xa626('0xd'),auth['isAuthenticated'](),controller[_0xa626('0xe')]);router[_0xa626('0xa')](_0xa626('0xf'),auth['isAuthenticated'](),controller['show']);router[_0xa626('0x10')]('/',auth[_0xa626('0xb')](),controller[_0xa626('0x11')]);router['put']('/:id',auth[_0xa626('0xb')](),controller[_0xa626('0x12')]);router['delete']('/:id',auth['isAuthenticated'](),controller[_0xa626('0x13')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a54=['STRING','DATE','sequelize','exports'];(function(_0x535f56,_0x2e8005){var _0x1c32d3=function(_0x215e0f){while(--_0x215e0f){_0x535f56['push'](_0x535f56['shift']());}};_0x1c32d3(++_0x2e8005);}(_0x7a54,0x106));var _0x47a5=function(_0x56ca0d,_0xd662){_0x56ca0d=_0x56ca0d-0x0;var _0x34d3cf=_0x7a54[_0x56ca0d];return _0x34d3cf;};'use strict';var Sequelize=require(_0x47a5('0x0'));module[_0x47a5('0x1')]={'uniqueid':{'type':Sequelize[_0x47a5('0x2')],'allowNull':![]},'from':{'type':Sequelize['STRING']},'joinAt':{'type':Sequelize[_0x47a5('0x3')]},'leaveAt':{'type':Sequelize[_0x47a5('0x3')]},'acceptAt':{'type':Sequelize['DATE']},'exitAt':{'type':Sequelize[_0x47a5('0x3')]},'reason':{'type':Sequelize[_0x47a5('0x2')]}};
\ No newline at end of file
+var _0x9957=['exports','STRING','DATE','sequelize'];(function(_0x40c0b6,_0x57fb12){var _0x2650a1=function(_0x38281d){while(--_0x38281d){_0x40c0b6['push'](_0x40c0b6['shift']());}};_0x2650a1(++_0x57fb12);}(_0x9957,0x93));var _0x7995=function(_0x3b380d,_0x4bf247){_0x3b380d=_0x3b380d-0x0;var _0x54502b=_0x9957[_0x3b380d];return _0x54502b;};'use strict';var Sequelize=require(_0x7995('0x0'));module[_0x7995('0x1')]={'uniqueid':{'type':Sequelize[_0x7995('0x2')],'allowNull':![]},'from':{'type':Sequelize[_0x7995('0x2')]},'joinAt':{'type':Sequelize['DATE']},'leaveAt':{'type':Sequelize[_0x7995('0x3')]},'acceptAt':{'type':Sequelize[_0x7995('0x3')]},'exitAt':{'type':Sequelize[_0x7995('0x3')]},'reason':{'type':Sequelize[_0x7995('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfef3=['offset','limit','undefined','count','status','set','Content-Range','apply','reject','save','update','destroy','stack','name','send','map','rawAttributes','fieldName','type','model','query','keys','filters','intersection','attributes','length','hasOwnProperty','nolimit','order','sort','where','filter','merge','VIRTUAL','options','WhatsappQueueReport','then','includeAll','include','findAll','rows','catch','show','params','fields','create','body','find','describe','eml-format','zip-dir','request-promise','moment','mustache','util','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','end','json'];(function(_0x365b01,_0x4d1cb4){var _0x4235f5=function(_0x5927db){while(--_0x5927db){_0x365b01['push'](_0x365b01['shift']());}};_0x4235f5(++_0x4d1cb4);}(_0xfef3,0x118));var _0x3fef=function(_0x26b596,_0x3ba3b1){_0x26b596=_0x26b596-0x0;var _0x281734=_0xfef3[_0x26b596];return _0x281734;};'use strict';var emlformat=require(_0x3fef('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x3fef('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x3fef('0x2'));var moment=require(_0x3fef('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x3fef('0x4'));var util=require(_0x3fef('0x5'));var path=require('path');var sox=require(_0x3fef('0x6'));var csv=require(_0x3fef('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x3fef('0x8'));var _=require(_0x3fef('0x9'));var squel=require(_0x3fef('0xa'));var crypto=require(_0x3fef('0xb'));var jsforce=require(_0x3fef('0xc'));var deskjs=require(_0x3fef('0xd'));var toCsv=require(_0x3fef('0x7'));var querystring=require(_0x3fef('0xe'));var Papa=require(_0x3fef('0xf'));var Redis=require(_0x3fef('0x10'));var authService=require(_0x3fef('0x11'));var qs=require(_0x3fef('0x12'));var as=require(_0x3fef('0x13'));var hardwareService=require(_0x3fef('0x14'));var logger=require('../../config/logger')(_0x3fef('0x15'));var utils=require(_0x3fef('0x16'));var config=require(_0x3fef('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0x3fef('0x18'))['db'];function respondWithStatusCode(_0x4c4a47,_0x2c99ff){_0x2c99ff=_0x2c99ff||0xcc;return function(_0x3d2c2d){if(_0x3d2c2d){return _0x4c4a47[_0x3fef('0x19')](_0x2c99ff);}return _0x4c4a47['status'](_0x2c99ff)[_0x3fef('0x1a')]();};}function respondWithResult(_0x4be62f,_0x15b757){_0x15b757=_0x15b757||0xc8;return function(_0x14c053){if(_0x14c053){return _0x4be62f['status'](_0x15b757)[_0x3fef('0x1b')](_0x14c053);}};}function respondWithFilteredResult(_0x177e28,_0x40b479){return function(_0x79b617){if(_0x79b617){var _0x395df0=typeof _0x40b479[_0x3fef('0x1c')]==='undefined'&&typeof _0x40b479[_0x3fef('0x1d')]===_0x3fef('0x1e');var _0x1ec282=_0x79b617[_0x3fef('0x1f')];var _0x1613ad=_0x395df0?0x0:_0x40b479[_0x3fef('0x1c')];var _0x53d993=_0x395df0?_0x79b617[_0x3fef('0x1f')]:_0x40b479[_0x3fef('0x1c')]+_0x40b479['limit'];var _0x2c7f36;if(_0x53d993>=_0x1ec282){_0x53d993=_0x1ec282;_0x2c7f36=0xc8;}else{_0x2c7f36=0xce;}_0x177e28[_0x3fef('0x20')](_0x2c7f36);return _0x177e28[_0x3fef('0x21')](_0x3fef('0x22'),_0x1613ad+'-'+_0x53d993+'/'+_0x1ec282)[_0x3fef('0x1b')](_0x79b617);}return null;};}function patchUpdates(_0x2b5226){return function(_0x451d11){try{jsonpatch[_0x3fef('0x23')](_0x451d11,_0x2b5226,!![]);}catch(_0x124e7c){return BPromise[_0x3fef('0x24')](_0x124e7c);}return _0x451d11[_0x3fef('0x25')]();};}function saveUpdates(_0x3bb110,_0x2eb578){return function(_0x39a8ea){if(_0x39a8ea){return _0x39a8ea[_0x3fef('0x26')](_0x3bb110)['then'](function(_0x5b56de){return _0x5b56de;});}return null;};}function removeEntity(_0x50025f,_0x378b03){return function(_0x3ba38d){if(_0x3ba38d){return _0x3ba38d[_0x3fef('0x27')]()['then'](function(){_0x50025f[_0x3fef('0x20')](0xcc)['end']();});}};}function handleEntityNotFound(_0x45464b,_0x2c0848){return function(_0x64d3e6){if(!_0x64d3e6){_0x45464b[_0x3fef('0x19')](0x194);}return _0x64d3e6;};}function handleError(_0x30e17a,_0x492ea0){_0x492ea0=_0x492ea0||0x1f4;return function(_0x4b4dee){logger['error'](_0x4b4dee[_0x3fef('0x28')]);if(_0x4b4dee[_0x3fef('0x29')]){delete _0x4b4dee['name'];}_0x30e17a[_0x3fef('0x20')](_0x492ea0)[_0x3fef('0x2a')](_0x4b4dee);};}exports['index']=function(_0x30a954,_0x3bdf03){var _0xf892bb={},_0x2b73fb={},_0x3a1a0a={'count':0x0,'rows':[]};var _0x137849=_[_0x3fef('0x2b')](db['WhatsappQueueReport'][_0x3fef('0x2c')],function(_0xc20ce5){return{'name':_0xc20ce5[_0x3fef('0x2d')],'type':_0xc20ce5[_0x3fef('0x2e')]['key']};});_0x2b73fb[_0x3fef('0x2f')]=_['map'](_0x137849,_0x3fef('0x29'));_0x2b73fb[_0x3fef('0x30')]=_[_0x3fef('0x31')](_0x30a954[_0x3fef('0x30')]);_0x2b73fb[_0x3fef('0x32')]=_[_0x3fef('0x33')](_0x2b73fb[_0x3fef('0x2f')],_0x2b73fb[_0x3fef('0x30')]);_0xf892bb[_0x3fef('0x34')]=_[_0x3fef('0x33')](_0x2b73fb['model'],qs['fields'](_0x30a954[_0x3fef('0x30')]['fields']));_0xf892bb[_0x3fef('0x34')]=_0xf892bb[_0x3fef('0x34')][_0x3fef('0x35')]?_0xf892bb[_0x3fef('0x34')]:_0x2b73fb[_0x3fef('0x2f')];if(!_0x30a954[_0x3fef('0x30')][_0x3fef('0x36')](_0x3fef('0x37'))){_0xf892bb[_0x3fef('0x1d')]=qs[_0x3fef('0x1d')](_0x30a954[_0x3fef('0x30')][_0x3fef('0x1d')]);_0xf892bb[_0x3fef('0x1c')]=qs[_0x3fef('0x1c')](_0x30a954['query'][_0x3fef('0x1c')]);}_0xf892bb[_0x3fef('0x38')]=qs[_0x3fef('0x39')](_0x30a954[_0x3fef('0x30')][_0x3fef('0x39')]);_0xf892bb[_0x3fef('0x3a')]=qs['filters'](_['pick'](_0x30a954[_0x3fef('0x30')],_0x2b73fb[_0x3fef('0x32')]),_0x137849);if(_0x30a954[_0x3fef('0x30')][_0x3fef('0x3b')]){_0xf892bb[_0x3fef('0x3a')]=_[_0x3fef('0x3c')](_0xf892bb[_0x3fef('0x3a')],{'$or':_[_0x3fef('0x2b')](_0x137849,function(_0x1fa70f){if(_0x1fa70f[_0x3fef('0x2e')]!==_0x3fef('0x3d')){var _0x560aae={};_0x560aae[_0x1fa70f[_0x3fef('0x29')]]={'$like':'%'+_0x30a954[_0x3fef('0x30')]['filter']+'%'};return _0x560aae;}})});}_0xf892bb=_['merge']({},_0xf892bb,_0x30a954[_0x3fef('0x3e')]);var _0x3dda68={'where':_0xf892bb[_0x3fef('0x3a')]};return db[_0x3fef('0x3f')][_0x3fef('0x1f')](_0x3dda68)[_0x3fef('0x40')](function(_0x17aff8){_0x3a1a0a[_0x3fef('0x1f')]=_0x17aff8;if(_0x30a954['query'][_0x3fef('0x41')]){_0xf892bb[_0x3fef('0x42')]=[{'all':!![]}];}return db[_0x3fef('0x3f')][_0x3fef('0x43')](_0xf892bb);})[_0x3fef('0x40')](function(_0x2143ec){_0x3a1a0a[_0x3fef('0x44')]=_0x2143ec;return _0x3a1a0a;})[_0x3fef('0x40')](respondWithFilteredResult(_0x3bdf03,_0xf892bb))[_0x3fef('0x45')](handleError(_0x3bdf03,null));};exports[_0x3fef('0x46')]=function(_0x12867c,_0x254880){var _0x2e1d7f={'raw':!![],'where':{'id':_0x12867c[_0x3fef('0x47')]['id']}},_0x15d2c7={};_0x15d2c7['model']=_[_0x3fef('0x31')](db[_0x3fef('0x3f')][_0x3fef('0x2c')]);_0x15d2c7[_0x3fef('0x30')]=_[_0x3fef('0x31')](_0x12867c[_0x3fef('0x30')]);_0x15d2c7['filters']=_[_0x3fef('0x33')](_0x15d2c7['model'],_0x15d2c7[_0x3fef('0x30')]);_0x2e1d7f[_0x3fef('0x34')]=_['intersection'](_0x15d2c7[_0x3fef('0x2f')],qs['fields'](_0x12867c[_0x3fef('0x30')][_0x3fef('0x48')]));_0x2e1d7f[_0x3fef('0x34')]=_0x2e1d7f[_0x3fef('0x34')][_0x3fef('0x35')]?_0x2e1d7f[_0x3fef('0x34')]:_0x15d2c7[_0x3fef('0x2f')];if(_0x12867c[_0x3fef('0x30')][_0x3fef('0x41')]){_0x2e1d7f[_0x3fef('0x42')]=[{'all':!![]}];}_0x2e1d7f=_[_0x3fef('0x3c')]({},_0x2e1d7f,_0x12867c[_0x3fef('0x3e')]);return db[_0x3fef('0x3f')]['find'](_0x2e1d7f)[_0x3fef('0x40')](handleEntityNotFound(_0x254880,null))[_0x3fef('0x40')](respondWithResult(_0x254880,null))['catch'](handleError(_0x254880,null));};exports[_0x3fef('0x49')]=function(_0x4210d6,_0x2f00c0){return db['WhatsappQueueReport'][_0x3fef('0x49')](_0x4210d6[_0x3fef('0x4a')],{})['then'](respondWithResult(_0x2f00c0,0xc9))[_0x3fef('0x45')](handleError(_0x2f00c0,null));};exports['update']=function(_0x48322c,_0x15fb2c){if(_0x48322c['body']['id']){delete _0x48322c[_0x3fef('0x4a')]['id'];}return db[_0x3fef('0x3f')]['find']({'where':{'id':_0x48322c[_0x3fef('0x47')]['id']}})[_0x3fef('0x40')](handleEntityNotFound(_0x15fb2c,null))[_0x3fef('0x40')](saveUpdates(_0x48322c['body'],null))[_0x3fef('0x40')](respondWithResult(_0x15fb2c,null))[_0x3fef('0x45')](handleError(_0x15fb2c,null));};exports[_0x3fef('0x27')]=function(_0x5b1acb,_0x324f70){return db[_0x3fef('0x3f')][_0x3fef('0x4b')]({'where':{'id':_0x5b1acb[_0x3fef('0x47')]['id']}})[_0x3fef('0x40')](handleEntityNotFound(_0x324f70,null))['then'](removeEntity(_0x324f70,null))[_0x3fef('0x45')](handleError(_0x324f70,null));};exports[_0x3fef('0x4c')]=function(_0x39a4b1,_0x2b9275){return db[_0x3fef('0x3f')][_0x3fef('0x4c')]()[_0x3fef('0x40')](respondWithResult(_0x2b9275,null))[_0x3fef('0x45')](handleError(_0x2b9275,null));};
\ No newline at end of file
+var _0x1c9a=['eml-format','zip-dir','request-promise','moment','bluebird','util','path','sox','to-csv','fs-extra','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','stack','name','send','index','map','WhatsappQueueReport','rawAttributes','fieldName','model','query','keys','attributes','intersection','fields','length','hasOwnProperty','order','sort','where','filters','pick','filter','merge','type','VIRTUAL','options','includeAll','include','findAll','catch','params','find','create','body','describe'];(function(_0x4d32e9,_0x390d44){var _0x2d9ece=function(_0xabbd89){while(--_0xabbd89){_0x4d32e9['push'](_0x4d32e9['shift']());}};_0x2d9ece(++_0x390d44);}(_0x1c9a,0x98));var _0xa1c9=function(_0x84510c,_0x40747c){_0x84510c=_0x84510c-0x0;var _0xddd784=_0x1c9a[_0x84510c];return _0xddd784;};'use strict';var emlformat=require(_0xa1c9('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xa1c9('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xa1c9('0x2'));var moment=require(_0xa1c9('0x3'));var BPromise=require(_0xa1c9('0x4'));var Mustache=require('mustache');var util=require(_0xa1c9('0x5'));var path=require(_0xa1c9('0x6'));var sox=require(_0xa1c9('0x7'));var csv=require(_0xa1c9('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xa1c9('0x9'));var _=require('lodash');var squel=require(_0xa1c9('0xa'));var crypto=require(_0xa1c9('0xb'));var jsforce=require(_0xa1c9('0xc'));var deskjs=require('desk.js');var toCsv=require(_0xa1c9('0x8'));var querystring=require(_0xa1c9('0xd'));var Papa=require(_0xa1c9('0xe'));var Redis=require(_0xa1c9('0xf'));var authService=require('../../components/auth/service');var qs=require(_0xa1c9('0x10'));var as=require(_0xa1c9('0x11'));var hardwareService=require(_0xa1c9('0x12'));var logger=require(_0xa1c9('0x13'))(_0xa1c9('0x14'));var utils=require(_0xa1c9('0x15'));var config=require(_0xa1c9('0x16'));var licenseUtil=require(_0xa1c9('0x17'));var db=require(_0xa1c9('0x18'))['db'];function respondWithStatusCode(_0x17ee28,_0x57e2a8){_0x57e2a8=_0x57e2a8||0xcc;return function(_0x341233){if(_0x341233){return _0x17ee28[_0xa1c9('0x19')](_0x57e2a8);}return _0x17ee28[_0xa1c9('0x1a')](_0x57e2a8)[_0xa1c9('0x1b')]();};}function respondWithResult(_0x13f4e9,_0x4c70dd){_0x4c70dd=_0x4c70dd||0xc8;return function(_0x335dda){if(_0x335dda){return _0x13f4e9[_0xa1c9('0x1a')](_0x4c70dd)[_0xa1c9('0x1c')](_0x335dda);}};}function respondWithFilteredResult(_0xd9bca1,_0x2d825c){return function(_0x1bbc94){if(_0x1bbc94){var _0x44ab5b=typeof _0x2d825c[_0xa1c9('0x1d')]===_0xa1c9('0x1e')&&typeof _0x2d825c[_0xa1c9('0x1f')]==='undefined';var _0x11ca10=_0x1bbc94[_0xa1c9('0x20')];var _0x224ae4=_0x44ab5b?0x0:_0x2d825c['offset'];var _0x2fb81e=_0x44ab5b?_0x1bbc94['count']:_0x2d825c[_0xa1c9('0x1d')]+_0x2d825c[_0xa1c9('0x1f')];var _0x204d54;if(_0x2fb81e>=_0x11ca10){_0x2fb81e=_0x11ca10;_0x204d54=0xc8;}else{_0x204d54=0xce;}_0xd9bca1['status'](_0x204d54);return _0xd9bca1[_0xa1c9('0x21')](_0xa1c9('0x22'),_0x224ae4+'-'+_0x2fb81e+'/'+_0x11ca10)[_0xa1c9('0x1c')](_0x1bbc94);}return null;};}function patchUpdates(_0x4edf37){return function(_0x41e6d2){try{jsonpatch[_0xa1c9('0x23')](_0x41e6d2,_0x4edf37,!![]);}catch(_0x4c6dbb){return BPromise[_0xa1c9('0x24')](_0x4c6dbb);}return _0x41e6d2[_0xa1c9('0x25')]();};}function saveUpdates(_0x9f201f,_0x4d05d0){return function(_0x29f1b1){if(_0x29f1b1){return _0x29f1b1[_0xa1c9('0x26')](_0x9f201f)[_0xa1c9('0x27')](function(_0x23a461){return _0x23a461;});}return null;};}function removeEntity(_0x24a5da,_0x4a0a0c){return function(_0x50b16b){if(_0x50b16b){return _0x50b16b[_0xa1c9('0x28')]()['then'](function(){_0x24a5da[_0xa1c9('0x1a')](0xcc)[_0xa1c9('0x1b')]();});}};}function handleEntityNotFound(_0x1c6f37,_0x3059eb){return function(_0x339ed1){if(!_0x339ed1){_0x1c6f37['sendStatus'](0x194);}return _0x339ed1;};}function handleError(_0x1925e7,_0x3ca2a8){_0x3ca2a8=_0x3ca2a8||0x1f4;return function(_0x20cbe1){logger['error'](_0x20cbe1[_0xa1c9('0x29')]);if(_0x20cbe1[_0xa1c9('0x2a')]){delete _0x20cbe1[_0xa1c9('0x2a')];}_0x1925e7['status'](_0x3ca2a8)[_0xa1c9('0x2b')](_0x20cbe1);};}exports[_0xa1c9('0x2c')]=function(_0x594137,_0x38936f){var _0x48ce34={},_0xdf6d0c={},_0x2404c3={'count':0x0,'rows':[]};var _0x88ba11=_[_0xa1c9('0x2d')](db[_0xa1c9('0x2e')][_0xa1c9('0x2f')],function(_0x42fcb2){return{'name':_0x42fcb2[_0xa1c9('0x30')],'type':_0x42fcb2['type']['key']};});_0xdf6d0c[_0xa1c9('0x31')]=_[_0xa1c9('0x2d')](_0x88ba11,_0xa1c9('0x2a'));_0xdf6d0c[_0xa1c9('0x32')]=_[_0xa1c9('0x33')](_0x594137['query']);_0xdf6d0c['filters']=_['intersection'](_0xdf6d0c[_0xa1c9('0x31')],_0xdf6d0c[_0xa1c9('0x32')]);_0x48ce34[_0xa1c9('0x34')]=_[_0xa1c9('0x35')](_0xdf6d0c[_0xa1c9('0x31')],qs[_0xa1c9('0x36')](_0x594137[_0xa1c9('0x32')]['fields']));_0x48ce34[_0xa1c9('0x34')]=_0x48ce34['attributes'][_0xa1c9('0x37')]?_0x48ce34['attributes']:_0xdf6d0c[_0xa1c9('0x31')];if(!_0x594137[_0xa1c9('0x32')][_0xa1c9('0x38')]('nolimit')){_0x48ce34[_0xa1c9('0x1f')]=qs[_0xa1c9('0x1f')](_0x594137[_0xa1c9('0x32')][_0xa1c9('0x1f')]);_0x48ce34['offset']=qs['offset'](_0x594137[_0xa1c9('0x32')][_0xa1c9('0x1d')]);}_0x48ce34[_0xa1c9('0x39')]=qs[_0xa1c9('0x3a')](_0x594137[_0xa1c9('0x32')][_0xa1c9('0x3a')]);_0x48ce34[_0xa1c9('0x3b')]=qs[_0xa1c9('0x3c')](_[_0xa1c9('0x3d')](_0x594137[_0xa1c9('0x32')],_0xdf6d0c['filters']),_0x88ba11);if(_0x594137[_0xa1c9('0x32')][_0xa1c9('0x3e')]){_0x48ce34[_0xa1c9('0x3b')]=_[_0xa1c9('0x3f')](_0x48ce34[_0xa1c9('0x3b')],{'$or':_[_0xa1c9('0x2d')](_0x88ba11,function(_0x5011a3){if(_0x5011a3[_0xa1c9('0x40')]!==_0xa1c9('0x41')){var _0x29d871={};_0x29d871[_0x5011a3['name']]={'$like':'%'+_0x594137[_0xa1c9('0x32')][_0xa1c9('0x3e')]+'%'};return _0x29d871;}})});}_0x48ce34=_['merge']({},_0x48ce34,_0x594137[_0xa1c9('0x42')]);var _0x25502f={'where':_0x48ce34['where']};return db['WhatsappQueueReport'][_0xa1c9('0x20')](_0x25502f)[_0xa1c9('0x27')](function(_0x34a6b8){_0x2404c3[_0xa1c9('0x20')]=_0x34a6b8;if(_0x594137[_0xa1c9('0x32')][_0xa1c9('0x43')]){_0x48ce34[_0xa1c9('0x44')]=[{'all':!![]}];}return db[_0xa1c9('0x2e')][_0xa1c9('0x45')](_0x48ce34);})[_0xa1c9('0x27')](function(_0x5ac71f){_0x2404c3['rows']=_0x5ac71f;return _0x2404c3;})[_0xa1c9('0x27')](respondWithFilteredResult(_0x38936f,_0x48ce34))[_0xa1c9('0x46')](handleError(_0x38936f,null));};exports['show']=function(_0x30ce3b,_0x102a33){var _0x43de42={'raw':!![],'where':{'id':_0x30ce3b[_0xa1c9('0x47')]['id']}},_0x36c846={};_0x36c846[_0xa1c9('0x31')]=_[_0xa1c9('0x33')](db[_0xa1c9('0x2e')][_0xa1c9('0x2f')]);_0x36c846[_0xa1c9('0x32')]=_[_0xa1c9('0x33')](_0x30ce3b['query']);_0x36c846[_0xa1c9('0x3c')]=_['intersection'](_0x36c846[_0xa1c9('0x31')],_0x36c846['query']);_0x43de42[_0xa1c9('0x34')]=_['intersection'](_0x36c846[_0xa1c9('0x31')],qs[_0xa1c9('0x36')](_0x30ce3b['query'][_0xa1c9('0x36')]));_0x43de42[_0xa1c9('0x34')]=_0x43de42['attributes'][_0xa1c9('0x37')]?_0x43de42[_0xa1c9('0x34')]:_0x36c846[_0xa1c9('0x31')];if(_0x30ce3b[_0xa1c9('0x32')][_0xa1c9('0x43')]){_0x43de42[_0xa1c9('0x44')]=[{'all':!![]}];}_0x43de42=_['merge']({},_0x43de42,_0x30ce3b[_0xa1c9('0x42')]);return db[_0xa1c9('0x2e')][_0xa1c9('0x48')](_0x43de42)[_0xa1c9('0x27')](handleEntityNotFound(_0x102a33,null))[_0xa1c9('0x27')](respondWithResult(_0x102a33,null))['catch'](handleError(_0x102a33,null));};exports['create']=function(_0x4cf00a,_0x15329c){return db[_0xa1c9('0x2e')][_0xa1c9('0x49')](_0x4cf00a['body'],{})[_0xa1c9('0x27')](respondWithResult(_0x15329c,0xc9))[_0xa1c9('0x46')](handleError(_0x15329c,null));};exports['update']=function(_0x43ee79,_0x4bdf5d){if(_0x43ee79['body']['id']){delete _0x43ee79[_0xa1c9('0x4a')]['id'];}return db[_0xa1c9('0x2e')][_0xa1c9('0x48')]({'where':{'id':_0x43ee79[_0xa1c9('0x47')]['id']}})[_0xa1c9('0x27')](handleEntityNotFound(_0x4bdf5d,null))[_0xa1c9('0x27')](saveUpdates(_0x43ee79[_0xa1c9('0x4a')],null))[_0xa1c9('0x27')](respondWithResult(_0x4bdf5d,null))[_0xa1c9('0x46')](handleError(_0x4bdf5d,null));};exports[_0xa1c9('0x28')]=function(_0x2b2065,_0x1bed85){return db[_0xa1c9('0x2e')][_0xa1c9('0x48')]({'where':{'id':_0x2b2065[_0xa1c9('0x47')]['id']}})[_0xa1c9('0x27')](handleEntityNotFound(_0x1bed85,null))[_0xa1c9('0x27')](removeEntity(_0x1bed85,null))[_0xa1c9('0x46')](handleError(_0x1bed85,null));};exports[_0xa1c9('0x4b')]=function(_0x4a968e,_0x55dc05){return db[_0xa1c9('0x2e')][_0xa1c9('0x4b')]()[_0xa1c9('0x27')](respondWithResult(_0x55dc05,null))[_0xa1c9('0x46')](handleError(_0x55dc05,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xde6c=['define','WhatsappQueueReport','uniqueid','util','../../config/logger','bluebird','request-promise','path','rimraf'];(function(_0x36909d,_0x2795f1){var _0x1fd29d=function(_0x27d0fa){while(--_0x27d0fa){_0x36909d['push'](_0x36909d['shift']());}};_0x1fd29d(++_0x2795f1);}(_0xde6c,0xdb));var _0xcde6=function(_0x1e48b3,_0x3150bc){_0x1e48b3=_0x1e48b3-0x0;var _0x295fae=_0xde6c[_0x1e48b3];return _0x295fae;};'use strict';var _=require('lodash');var util=require(_0xcde6('0x0'));var logger=require(_0xcde6('0x1'))('api');var moment=require('moment');var BPromise=require(_0xcde6('0x2'));var rp=require(_0xcde6('0x3'));var fs=require('fs');var path=require(_0xcde6('0x4'));var rimraf=require(_0xcde6('0x5'));var config=require('../../config/environment');var attributes=require('./whatsappQueueReport.attributes');module['exports']=function(_0x5ef79a,_0x1ee569){return _0x5ef79a[_0xcde6('0x6')](_0xcde6('0x7'),attributes,{'tableName':'report_whatsapp_queue','paranoid':![],'indexes':[{'name':_0xcde6('0x8'),'fields':[_0xcde6('0x8')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xca21=['exports','define','WhatsappQueueReport','report_whatsapp_queue','uniqueid','util','../../config/logger','api','moment','request-promise','rimraf','./whatsappQueueReport.attributes'];(function(_0x2b9e76,_0x467e25){var _0x4c014e=function(_0x165284){while(--_0x165284){_0x2b9e76['push'](_0x2b9e76['shift']());}};_0x4c014e(++_0x467e25);}(_0xca21,0xdd));var _0x1ca2=function(_0x4ac24d,_0x55e6d3){_0x4ac24d=_0x4ac24d-0x0;var _0x220f5e=_0xca21[_0x4ac24d];return _0x220f5e;};'use strict';var _=require('lodash');var util=require(_0x1ca2('0x0'));var logger=require(_0x1ca2('0x1'))(_0x1ca2('0x2'));var moment=require(_0x1ca2('0x3'));var BPromise=require('bluebird');var rp=require(_0x1ca2('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x1ca2('0x5'));var config=require('../../config/environment');var attributes=require(_0x1ca2('0x6'));module[_0x1ca2('0x7')]=function(_0x26d2d0,_0x285588){return _0x26d2d0[_0x1ca2('0x8')](_0x1ca2('0x9'),attributes,{'tableName':_0x1ca2('0xa'),'paranoid':![],'indexes':[{'name':'uniqueid','fields':[_0x1ca2('0xb')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3a6d=['error','code','message','result','CreateWhatsappQueueReport','create','body','raw','catch','update','options','where','UpdateWhatsappQueueReport','lodash','util','bluebird','randomstring','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','request','then','info','WhatsappQueueReport,\x20%s,\x20%s','request\x20sent','debug','WhatsappQueueReport,\x20%s,\x20%s,\x20%s','stringify'];(function(_0x297768,_0x16b542){var _0x53aa57=function(_0x4cf4eb){while(--_0x4cf4eb){_0x297768['push'](_0x297768['shift']());}};_0x53aa57(++_0x16b542);}(_0x3a6d,0xa8));var _0xd3a6=function(_0x1d1779,_0x284147){_0x1d1779=_0x1d1779-0x0;var _0x2377e9=_0x3a6d[_0x1d1779];return _0x2377e9;};'use strict';var _=require(_0xd3a6('0x0'));var util=require(_0xd3a6('0x1'));var moment=require('moment');var BPromise=require(_0xd3a6('0x2'));var rs=require(_0xd3a6('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xd3a6('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0xd3a6('0x5'))(_0xd3a6('0x6'));var config=require(_0xd3a6('0x7'));var jayson=require(_0xd3a6('0x8'));var client=jayson[_0xd3a6('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x57a477,_0x597bc2,_0x3783de){return new BPromise(function(_0x323b69,_0x55d3d9){return client[_0xd3a6('0xa')](_0x57a477,_0x3783de)[_0xd3a6('0xb')](function(_0x111375){logger[_0xd3a6('0xc')](_0xd3a6('0xd'),_0x597bc2,_0xd3a6('0xe'));logger[_0xd3a6('0xf')](_0xd3a6('0x10'),_0x597bc2,'request\x20sent',JSON[_0xd3a6('0x11')](_0x111375));if(_0x111375[_0xd3a6('0x12')]){if(_0x111375[_0xd3a6('0x12')][_0xd3a6('0x13')]===0x1f4){logger[_0xd3a6('0x12')](_0xd3a6('0xd'),_0x597bc2,_0x111375['error'][_0xd3a6('0x14')]);return _0x55d3d9(_0x111375[_0xd3a6('0x12')][_0xd3a6('0x14')]);}logger[_0xd3a6('0x12')]('WhatsappQueueReport,\x20%s,\x20%s',_0x597bc2,_0x111375['error']['message']);return _0x323b69(_0x111375[_0xd3a6('0x12')][_0xd3a6('0x14')]);}else{logger[_0xd3a6('0xc')](_0xd3a6('0xd'),_0x597bc2,_0xd3a6('0xe'));_0x323b69(_0x111375[_0xd3a6('0x15')][_0xd3a6('0x14')]);}})['catch'](function(_0x37f63a){logger[_0xd3a6('0x12')](_0xd3a6('0xd'),_0x597bc2,_0x37f63a);_0x55d3d9(_0x37f63a);});});}exports[_0xd3a6('0x16')]=function(_0x44d854){var _0xee5af=this;return new Promise(function(_0x1fff51,_0x2d229e){return db['WhatsappQueueReport'][_0xd3a6('0x17')](_0x44d854[_0xd3a6('0x18')],{'raw':_0x44d854['options']?_0x44d854['options'][_0xd3a6('0x19')]===undefined?!![]:![]:!![]})[_0xd3a6('0xb')](function(_0x4bb600){logger[_0xd3a6('0xc')](_0xd3a6('0x16'),_0x44d854);logger[_0xd3a6('0xf')](_0xd3a6('0x16'),_0x44d854,JSON[_0xd3a6('0x11')](_0x4bb600));_0x1fff51(_0x4bb600);})[_0xd3a6('0x1a')](function(_0x3c935d){logger[_0xd3a6('0x12')](_0xd3a6('0x16'),_0x3c935d[_0xd3a6('0x14')],_0x44d854);_0x2d229e(_0xee5af[_0xd3a6('0x12')](0x1f4,_0x3c935d[_0xd3a6('0x14')]));});});};exports['UpdateWhatsappQueueReport']=function(_0x4fbf61){var _0x4daef4=this;return new Promise(function(_0x1130f9,_0x5d53ab){return db['WhatsappQueueReport'][_0xd3a6('0x1b')](_0x4fbf61[_0xd3a6('0x18')],{'raw':_0x4fbf61['options']?_0x4fbf61[_0xd3a6('0x1c')][_0xd3a6('0x19')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x4fbf61[_0xd3a6('0x1c')]?_0x4fbf61[_0xd3a6('0x1c')][_0xd3a6('0x1d')]||null:null,'attributes':_0x4fbf61['options']?_0x4fbf61[_0xd3a6('0x1c')]['attributes']||null:null,'limit':_0x4fbf61[_0xd3a6('0x1c')]?_0x4fbf61[_0xd3a6('0x1c')]['limit']||null:null})[_0xd3a6('0xb')](function(_0x1ed083){logger[_0xd3a6('0xc')](_0xd3a6('0x1e'),_0x4fbf61);logger[_0xd3a6('0xf')](_0xd3a6('0x1e'),_0x4fbf61,JSON[_0xd3a6('0x11')](_0x1ed083));_0x1130f9(_0x1ed083);})['catch'](function(_0x5a4cf8){logger['error'](_0xd3a6('0x1e'),_0x5a4cf8[_0xd3a6('0x14')],_0x4fbf61);_0x5d53ab(_0x4daef4['error'](0x1f4,_0x5a4cf8[_0xd3a6('0x14')]));});});};
\ No newline at end of file
+var _0x2ae0=['bluebird','randomstring','ioredis','../../mysqldb','../../config/environment','jayson/promise','client','http','request','then','WhatsappQueueReport,\x20%s,\x20%s','request\x20sent','debug','WhatsappQueueReport,\x20%s,\x20%s,\x20%s','error','message','info','result','catch','CreateWhatsappQueueReport','create','options','raw','UpdateWhatsappQueueReport','WhatsappQueueReport','body','attributes','limit','stringify','lodash','util','moment'];(function(_0x384b96,_0x20de9a){var _0x269b9f=function(_0x10cbf3){while(--_0x10cbf3){_0x384b96['push'](_0x384b96['shift']());}};_0x269b9f(++_0x20de9a);}(_0x2ae0,0xbd));var _0x02ae=function(_0x3d466b,_0x2ca6e7){_0x3d466b=_0x3d466b-0x0;var _0x45015b=_0x2ae0[_0x3d466b];return _0x45015b;};'use strict';var _=require(_0x02ae('0x0'));var util=require(_0x02ae('0x1'));var moment=require(_0x02ae('0x2'));var BPromise=require(_0x02ae('0x3'));var rs=require(_0x02ae('0x4'));var fs=require('fs');var Redis=require(_0x02ae('0x5'));var db=require(_0x02ae('0x6'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')('rpc');var config=require(_0x02ae('0x7'));var jayson=require(_0x02ae('0x8'));var client=jayson[_0x02ae('0x9')][_0x02ae('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x485bf2,_0x1f6183,_0x52209e){return new BPromise(function(_0x2f5055,_0x4ac8c7){return client[_0x02ae('0xb')](_0x485bf2,_0x52209e)[_0x02ae('0xc')](function(_0x5caddb){logger['info'](_0x02ae('0xd'),_0x1f6183,_0x02ae('0xe'));logger[_0x02ae('0xf')](_0x02ae('0x10'),_0x1f6183,'request\x20sent',JSON['stringify'](_0x5caddb));if(_0x5caddb['error']){if(_0x5caddb['error']['code']===0x1f4){logger[_0x02ae('0x11')]('WhatsappQueueReport,\x20%s,\x20%s',_0x1f6183,_0x5caddb[_0x02ae('0x11')][_0x02ae('0x12')]);return _0x4ac8c7(_0x5caddb[_0x02ae('0x11')][_0x02ae('0x12')]);}logger[_0x02ae('0x11')](_0x02ae('0xd'),_0x1f6183,_0x5caddb[_0x02ae('0x11')][_0x02ae('0x12')]);return _0x2f5055(_0x5caddb['error'][_0x02ae('0x12')]);}else{logger[_0x02ae('0x13')]('WhatsappQueueReport,\x20%s,\x20%s',_0x1f6183,_0x02ae('0xe'));_0x2f5055(_0x5caddb[_0x02ae('0x14')]['message']);}})[_0x02ae('0x15')](function(_0xce4fbc){logger['error'](_0x02ae('0xd'),_0x1f6183,_0xce4fbc);_0x4ac8c7(_0xce4fbc);});});}exports[_0x02ae('0x16')]=function(_0x3fb876){var _0x3c3780=this;return new Promise(function(_0xe5de4e,_0x283cd0){return db['WhatsappQueueReport'][_0x02ae('0x17')](_0x3fb876['body'],{'raw':_0x3fb876[_0x02ae('0x18')]?_0x3fb876['options'][_0x02ae('0x19')]===undefined?!![]:![]:!![]})[_0x02ae('0xc')](function(_0x405bab){logger[_0x02ae('0x13')](_0x02ae('0x16'),_0x3fb876);logger[_0x02ae('0xf')](_0x02ae('0x16'),_0x3fb876,JSON['stringify'](_0x405bab));_0xe5de4e(_0x405bab);})[_0x02ae('0x15')](function(_0x258294){logger[_0x02ae('0x11')](_0x02ae('0x16'),_0x258294[_0x02ae('0x12')],_0x3fb876);_0x283cd0(_0x3c3780[_0x02ae('0x11')](0x1f4,_0x258294[_0x02ae('0x12')]));});});};exports[_0x02ae('0x1a')]=function(_0x208744){var _0x36f778=this;return new Promise(function(_0x36c428,_0x2799b7){return db[_0x02ae('0x1b')]['update'](_0x208744[_0x02ae('0x1c')],{'raw':_0x208744[_0x02ae('0x18')]?_0x208744['options'][_0x02ae('0x19')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x208744['options']?_0x208744['options']['where']||null:null,'attributes':_0x208744[_0x02ae('0x18')]?_0x208744[_0x02ae('0x18')][_0x02ae('0x1d')]||null:null,'limit':_0x208744[_0x02ae('0x18')]?_0x208744[_0x02ae('0x18')][_0x02ae('0x1e')]||null:null})[_0x02ae('0xc')](function(_0x3ff675){logger['info'](_0x02ae('0x1a'),_0x208744);logger[_0x02ae('0xf')](_0x02ae('0x1a'),_0x208744,JSON[_0x02ae('0x1f')](_0x3ff675));_0x36c428(_0x3ff675);})[_0x02ae('0x15')](function(_0x1a6950){logger[_0x02ae('0x11')]('UpdateWhatsappQueueReport',_0x1a6950[_0x02ae('0x12')],_0x208744);_0x2799b7(_0x36f778['error'](0x1f4,_0x1a6950[_0x02ae('0x12')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8247=['path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','isAuthenticated','/describe','describe','show','post','create','put','/:id','update','delete','destroy'];(function(_0x2be8c2,_0x14a4b5){var _0x97f531=function(_0xcee58d){while(--_0xcee58d){_0x2be8c2['push'](_0x2be8c2['shift']());}};_0x97f531(++_0x14a4b5);}(_0x8247,0x1db));var _0x7824=function(_0x363ef8,_0x4ecb1a){_0x363ef8=_0x363ef8-0x0;var _0x148822=_0x8247[_0x363ef8];return _0x148822;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x7824('0x0'));var timeout=require(_0x7824('0x1'));var express=require(_0x7824('0x2'));var router=express[_0x7824('0x3')]();var fs_extra=require(_0x7824('0x4'));var auth=require(_0x7824('0x5'));var interaction=require(_0x7824('0x6'));var config=require(_0x7824('0x7'));var controller=require('./whatsappTransferReport.controller');router['get']('/',auth[_0x7824('0x8')](),controller['index']);router['get'](_0x7824('0x9'),auth[_0x7824('0x8')](),controller[_0x7824('0xa')]);router['get']('/:id',auth[_0x7824('0x8')](),controller[_0x7824('0xb')]);router[_0x7824('0xc')]('/',auth[_0x7824('0x8')](),controller[_0x7824('0xd')]);router[_0x7824('0xe')](_0x7824('0xf'),auth[_0x7824('0x8')](),controller[_0x7824('0x10')]);router[_0x7824('0x11')](_0x7824('0xf'),auth[_0x7824('0x8')](),controller[_0x7824('0x12')]);module['exports']=router;
\ No newline at end of file
+var _0x6fba=['isAuthenticated','/describe','describe','get','/:id','show','create','put','update','exports','multer','util','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./whatsappTransferReport.controller'];(function(_0x5a7e3c,_0xdc9219){var _0x59252b=function(_0x29655c){while(--_0x29655c){_0x5a7e3c['push'](_0x5a7e3c['shift']());}};_0x59252b(++_0xdc9219);}(_0x6fba,0x15e));var _0xa6fb=function(_0x117360,_0x674a6b){_0x117360=_0x117360-0x0;var _0x2f8cfb=_0x6fba[_0x117360];return _0x2f8cfb;};'use strict';var multer=require(_0xa6fb('0x0'));var util=require(_0xa6fb('0x1'));var path=require(_0xa6fb('0x2'));var timeout=require(_0xa6fb('0x3'));var express=require('express');var router=express[_0xa6fb('0x4')]();var fs_extra=require(_0xa6fb('0x5'));var auth=require(_0xa6fb('0x6'));var interaction=require(_0xa6fb('0x7'));var config=require(_0xa6fb('0x8'));var controller=require(_0xa6fb('0x9'));router['get']('/',auth[_0xa6fb('0xa')](),controller['index']);router['get'](_0xa6fb('0xb'),auth[_0xa6fb('0xa')](),controller[_0xa6fb('0xc')]);router[_0xa6fb('0xd')](_0xa6fb('0xe'),auth[_0xa6fb('0xa')](),controller[_0xa6fb('0xf')]);router['post']('/',auth[_0xa6fb('0xa')](),controller[_0xa6fb('0x10')]);router[_0xa6fb('0x11')](_0xa6fb('0xe'),auth[_0xa6fb('0xa')](),controller[_0xa6fb('0x12')]);router['delete']('/:id',auth['isAuthenticated'](),controller['destroy']);module[_0xa6fb('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x58a4=['exports','STRING','ENUM','account','agent','queue','DATE','sequelize'];(function(_0x5cb094,_0x8661b7){var _0x19c8e3=function(_0x120713){while(--_0x120713){_0x5cb094['push'](_0x5cb094['shift']());}};_0x19c8e3(++_0x8661b7);}(_0x58a4,0xbf));var _0x458a=function(_0x2d34d6,_0x397ff9){_0x2d34d6=_0x2d34d6-0x0;var _0x1d3d12=_0x58a4[_0x2d34d6];return _0x1d3d12;};'use strict';var Sequelize=require(_0x458a('0x0'));module[_0x458a('0x1')]={'uniqueid':{'type':Sequelize[_0x458a('0x2')],'allowNull':![]},'type':{'type':Sequelize[_0x458a('0x3')](_0x458a('0x4'),_0x458a('0x5'),_0x458a('0x6')),'allowNull':![]},'transferredAt':{'type':Sequelize[_0x458a('0x7')]}};
\ No newline at end of file
+var _0xab75=['exports','STRING','agent','queue','DATE','sequelize'];(function(_0x508c0a,_0x1bcd5e){var _0x1c19b7=function(_0x21300d){while(--_0x21300d){_0x508c0a['push'](_0x508c0a['shift']());}};_0x1c19b7(++_0x1bcd5e);}(_0xab75,0x11f));var _0x5ab7=function(_0x57fc34,_0x18867a){_0x57fc34=_0x57fc34-0x0;var _0x5a00b7=_0xab75[_0x57fc34];return _0x5a00b7;};'use strict';var Sequelize=require(_0x5ab7('0x0'));module[_0x5ab7('0x1')]={'uniqueid':{'type':Sequelize[_0x5ab7('0x2')],'allowNull':![]},'type':{'type':Sequelize['ENUM']('account',_0x5ab7('0x3'),_0x5ab7('0x4')),'allowNull':![]},'transferredAt':{'type':Sequelize[_0x5ab7('0x5')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd201=['papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','end','json','offset','undefined','limit','count','status','set','Content-Range','apply','reject','save','update','then','destroy','error','name','send','index','map','WhatsappTransferReport','rawAttributes','fieldName','type','model','query','keys','filters','intersection','fields','attributes','hasOwnProperty','order','sort','pick','filter','where','VIRTUAL','merge','includeAll','include','findAll','params','length','options','find','catch','create','body','describe','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring'];(function(_0x178767,_0x1cd68a){var _0x5aad66=function(_0x514480){while(--_0x514480){_0x178767['push'](_0x178767['shift']());}};_0x5aad66(++_0x1cd68a);}(_0xd201,0x17a));var _0x1d20=function(_0x37b31c,_0x19ffd5){_0x37b31c=_0x37b31c-0x0;var _0x18cccc=_0xd201[_0x37b31c];return _0x18cccc;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x1d20('0x0'));var zipdir=require(_0x1d20('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x1d20('0x2'));var moment=require(_0x1d20('0x3'));var BPromise=require(_0x1d20('0x4'));var Mustache=require(_0x1d20('0x5'));var util=require(_0x1d20('0x6'));var path=require(_0x1d20('0x7'));var sox=require(_0x1d20('0x8'));var csv=require(_0x1d20('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x1d20('0xa'));var _=require(_0x1d20('0xb'));var squel=require(_0x1d20('0xc'));var crypto=require(_0x1d20('0xd'));var jsforce=require(_0x1d20('0xe'));var deskjs=require(_0x1d20('0xf'));var toCsv=require(_0x1d20('0x9'));var querystring=require(_0x1d20('0x10'));var Papa=require(_0x1d20('0x11'));var Redis=require(_0x1d20('0x12'));var authService=require(_0x1d20('0x13'));var qs=require(_0x1d20('0x14'));var as=require(_0x1d20('0x15'));var hardwareService=require(_0x1d20('0x16'));var logger=require(_0x1d20('0x17'))(_0x1d20('0x18'));var utils=require(_0x1d20('0x19'));var config=require(_0x1d20('0x1a'));var licenseUtil=require(_0x1d20('0x1b'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x185b45,_0x2e183f){_0x2e183f=_0x2e183f||0xcc;return function(_0x396121){if(_0x396121){return _0x185b45[_0x1d20('0x1c')](_0x2e183f);}return _0x185b45['status'](_0x2e183f)[_0x1d20('0x1d')]();};}function respondWithResult(_0x52718b,_0x29f7de){_0x29f7de=_0x29f7de||0xc8;return function(_0x294f64){if(_0x294f64){return _0x52718b['status'](_0x29f7de)[_0x1d20('0x1e')](_0x294f64);}};}function respondWithFilteredResult(_0x373bc8,_0x56e03c){return function(_0x42e054){if(_0x42e054){var _0x3ad07f=typeof _0x56e03c[_0x1d20('0x1f')]===_0x1d20('0x20')&&typeof _0x56e03c[_0x1d20('0x21')]===_0x1d20('0x20');var _0x4d938a=_0x42e054['count'];var _0x4df244=_0x3ad07f?0x0:_0x56e03c[_0x1d20('0x1f')];var _0x117d9a=_0x3ad07f?_0x42e054[_0x1d20('0x22')]:_0x56e03c[_0x1d20('0x1f')]+_0x56e03c[_0x1d20('0x21')];var _0x59baf2;if(_0x117d9a>=_0x4d938a){_0x117d9a=_0x4d938a;_0x59baf2=0xc8;}else{_0x59baf2=0xce;}_0x373bc8[_0x1d20('0x23')](_0x59baf2);return _0x373bc8[_0x1d20('0x24')](_0x1d20('0x25'),_0x4df244+'-'+_0x117d9a+'/'+_0x4d938a)['json'](_0x42e054);}return null;};}function patchUpdates(_0x270d43){return function(_0x38e3f0){try{jsonpatch[_0x1d20('0x26')](_0x38e3f0,_0x270d43,!![]);}catch(_0x72758){return BPromise[_0x1d20('0x27')](_0x72758);}return _0x38e3f0[_0x1d20('0x28')]();};}function saveUpdates(_0x3963db,_0x27a0b6){return function(_0xa870){if(_0xa870){return _0xa870[_0x1d20('0x29')](_0x3963db)[_0x1d20('0x2a')](function(_0x386a64){return _0x386a64;});}return null;};}function removeEntity(_0xceb526,_0x383375){return function(_0x24316e){if(_0x24316e){return _0x24316e[_0x1d20('0x2b')]()['then'](function(){_0xceb526[_0x1d20('0x23')](0xcc)[_0x1d20('0x1d')]();});}};}function handleEntityNotFound(_0x413fb2,_0x2567e6){return function(_0x1075bd){if(!_0x1075bd){_0x413fb2[_0x1d20('0x1c')](0x194);}return _0x1075bd;};}function handleError(_0x58cf5f,_0x19b771){_0x19b771=_0x19b771||0x1f4;return function(_0x4aa4a8){logger[_0x1d20('0x2c')](_0x4aa4a8['stack']);if(_0x4aa4a8['name']){delete _0x4aa4a8[_0x1d20('0x2d')];}_0x58cf5f[_0x1d20('0x23')](_0x19b771)[_0x1d20('0x2e')](_0x4aa4a8);};}exports[_0x1d20('0x2f')]=function(_0x27e2d5,_0x178e32){var _0x3dcaab={},_0x3f5b37={},_0x2249e3={'count':0x0,'rows':[]};var _0x2dc6a2=_[_0x1d20('0x30')](db[_0x1d20('0x31')][_0x1d20('0x32')],function(_0x3bda97){return{'name':_0x3bda97[_0x1d20('0x33')],'type':_0x3bda97[_0x1d20('0x34')]['key']};});_0x3f5b37[_0x1d20('0x35')]=_[_0x1d20('0x30')](_0x2dc6a2,_0x1d20('0x2d'));_0x3f5b37[_0x1d20('0x36')]=_[_0x1d20('0x37')](_0x27e2d5['query']);_0x3f5b37[_0x1d20('0x38')]=_['intersection'](_0x3f5b37['model'],_0x3f5b37[_0x1d20('0x36')]);_0x3dcaab['attributes']=_[_0x1d20('0x39')](_0x3f5b37['model'],qs[_0x1d20('0x3a')](_0x27e2d5[_0x1d20('0x36')][_0x1d20('0x3a')]));_0x3dcaab[_0x1d20('0x3b')]=_0x3dcaab['attributes']['length']?_0x3dcaab[_0x1d20('0x3b')]:_0x3f5b37['model'];if(!_0x27e2d5[_0x1d20('0x36')][_0x1d20('0x3c')]('nolimit')){_0x3dcaab['limit']=qs[_0x1d20('0x21')](_0x27e2d5[_0x1d20('0x36')][_0x1d20('0x21')]);_0x3dcaab[_0x1d20('0x1f')]=qs[_0x1d20('0x1f')](_0x27e2d5[_0x1d20('0x36')][_0x1d20('0x1f')]);}_0x3dcaab[_0x1d20('0x3d')]=qs[_0x1d20('0x3e')](_0x27e2d5[_0x1d20('0x36')][_0x1d20('0x3e')]);_0x3dcaab['where']=qs[_0x1d20('0x38')](_[_0x1d20('0x3f')](_0x27e2d5[_0x1d20('0x36')],_0x3f5b37[_0x1d20('0x38')]),_0x2dc6a2);if(_0x27e2d5[_0x1d20('0x36')][_0x1d20('0x40')]){_0x3dcaab[_0x1d20('0x41')]=_['merge'](_0x3dcaab[_0x1d20('0x41')],{'$or':_[_0x1d20('0x30')](_0x2dc6a2,function(_0x140421){if(_0x140421[_0x1d20('0x34')]!==_0x1d20('0x42')){var _0x5f4515={};_0x5f4515[_0x140421[_0x1d20('0x2d')]]={'$like':'%'+_0x27e2d5[_0x1d20('0x36')][_0x1d20('0x40')]+'%'};return _0x5f4515;}})});}_0x3dcaab=_[_0x1d20('0x43')]({},_0x3dcaab,_0x27e2d5['options']);var _0xf80835={'where':_0x3dcaab[_0x1d20('0x41')]};return db['WhatsappTransferReport']['count'](_0xf80835)[_0x1d20('0x2a')](function(_0x7193dc){_0x2249e3[_0x1d20('0x22')]=_0x7193dc;if(_0x27e2d5[_0x1d20('0x36')][_0x1d20('0x44')]){_0x3dcaab[_0x1d20('0x45')]=[{'all':!![]}];}return db[_0x1d20('0x31')][_0x1d20('0x46')](_0x3dcaab);})[_0x1d20('0x2a')](function(_0x1e1d98){_0x2249e3['rows']=_0x1e1d98;return _0x2249e3;})[_0x1d20('0x2a')](respondWithFilteredResult(_0x178e32,_0x3dcaab))['catch'](handleError(_0x178e32,null));};exports['show']=function(_0x144834,_0x35028b){var _0x3e1459={'raw':!![],'where':{'id':_0x144834[_0x1d20('0x47')]['id']}},_0x1546e4={};_0x1546e4[_0x1d20('0x35')]=_[_0x1d20('0x37')](db[_0x1d20('0x31')]['rawAttributes']);_0x1546e4[_0x1d20('0x36')]=_[_0x1d20('0x37')](_0x144834['query']);_0x1546e4['filters']=_['intersection'](_0x1546e4[_0x1d20('0x35')],_0x1546e4[_0x1d20('0x36')]);_0x3e1459[_0x1d20('0x3b')]=_[_0x1d20('0x39')](_0x1546e4[_0x1d20('0x35')],qs[_0x1d20('0x3a')](_0x144834[_0x1d20('0x36')]['fields']));_0x3e1459[_0x1d20('0x3b')]=_0x3e1459[_0x1d20('0x3b')][_0x1d20('0x48')]?_0x3e1459['attributes']:_0x1546e4['model'];if(_0x144834[_0x1d20('0x36')][_0x1d20('0x44')]){_0x3e1459['include']=[{'all':!![]}];}_0x3e1459=_[_0x1d20('0x43')]({},_0x3e1459,_0x144834[_0x1d20('0x49')]);return db[_0x1d20('0x31')][_0x1d20('0x4a')](_0x3e1459)[_0x1d20('0x2a')](handleEntityNotFound(_0x35028b,null))[_0x1d20('0x2a')](respondWithResult(_0x35028b,null))[_0x1d20('0x4b')](handleError(_0x35028b,null));};exports[_0x1d20('0x4c')]=function(_0x44bac6,_0x516812){return db[_0x1d20('0x31')]['create'](_0x44bac6[_0x1d20('0x4d')],{})['then'](respondWithResult(_0x516812,0xc9))[_0x1d20('0x4b')](handleError(_0x516812,null));};exports[_0x1d20('0x29')]=function(_0x576d31,_0x27db13){if(_0x576d31['body']['id']){delete _0x576d31['body']['id'];}return db['WhatsappTransferReport'][_0x1d20('0x4a')]({'where':{'id':_0x576d31[_0x1d20('0x47')]['id']}})[_0x1d20('0x2a')](handleEntityNotFound(_0x27db13,null))[_0x1d20('0x2a')](saveUpdates(_0x576d31[_0x1d20('0x4d')],null))[_0x1d20('0x2a')](respondWithResult(_0x27db13,null))['catch'](handleError(_0x27db13,null));};exports[_0x1d20('0x2b')]=function(_0x2052e2,_0x2b7f28){return db['WhatsappTransferReport'][_0x1d20('0x4a')]({'where':{'id':_0x2052e2['params']['id']}})[_0x1d20('0x2a')](handleEntityNotFound(_0x2b7f28,null))['then'](removeEntity(_0x2b7f28,null))[_0x1d20('0x4b')](handleError(_0x2b7f28,null));};exports[_0x1d20('0x4e')]=function(_0x1f0110,_0x287e7b){return db[_0x1d20('0x31')]['describe']()[_0x1d20('0x2a')](respondWithResult(_0x287e7b,null))[_0x1d20('0x4b')](handleError(_0x287e7b,null));};
\ No newline at end of file
+var _0xbe99=['pick','filters','filter','merge','VIRTUAL','options','WhatsappTransferReport','includeAll','rows','catch','show','params','include','body','find','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','lodash','crypto','jsforce','desk.js','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','reject','save','update','then','destroy','stack','name','send','index','rawAttributes','fieldName','type','key','model','map','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where'];(function(_0x2f64f3,_0x378ea8){var _0x56cc2e=function(_0x40c52a){while(--_0x40c52a){_0x2f64f3['push'](_0x2f64f3['shift']());}};_0x56cc2e(++_0x378ea8);}(_0xbe99,0x1de));var _0x9be9=function(_0x423dd4,_0x287532){_0x423dd4=_0x423dd4-0x0;var _0xb29406=_0xbe99[_0x423dd4];return _0xb29406;};'use strict';var emlformat=require(_0x9be9('0x0'));var rimraf=require(_0x9be9('0x1'));var zipdir=require(_0x9be9('0x2'));var jsonpatch=require(_0x9be9('0x3'));var rp=require(_0x9be9('0x4'));var moment=require(_0x9be9('0x5'));var BPromise=require(_0x9be9('0x6'));var Mustache=require(_0x9be9('0x7'));var util=require('util');var path=require(_0x9be9('0x8'));var sox=require(_0x9be9('0x9'));var csv=require(_0x9be9('0xa'));var ejs=require(_0x9be9('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x9be9('0xc'));var squel=require('squel');var crypto=require(_0x9be9('0xd'));var jsforce=require(_0x9be9('0xe'));var deskjs=require(_0x9be9('0xf'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x9be9('0x10'));var authService=require(_0x9be9('0x11'));var qs=require(_0x9be9('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x9be9('0x13'));var logger=require(_0x9be9('0x14'))(_0x9be9('0x15'));var utils=require(_0x9be9('0x16'));var config=require(_0x9be9('0x17'));var licenseUtil=require(_0x9be9('0x18'));var db=require(_0x9be9('0x19'))['db'];function respondWithStatusCode(_0x461146,_0x278fec){_0x278fec=_0x278fec||0xcc;return function(_0x9f3ce4){if(_0x9f3ce4){return _0x461146[_0x9be9('0x1a')](_0x278fec);}return _0x461146[_0x9be9('0x1b')](_0x278fec)[_0x9be9('0x1c')]();};}function respondWithResult(_0x39e093,_0x1510d7){_0x1510d7=_0x1510d7||0xc8;return function(_0xed191e){if(_0xed191e){return _0x39e093[_0x9be9('0x1b')](_0x1510d7)[_0x9be9('0x1d')](_0xed191e);}};}function respondWithFilteredResult(_0x694e8,_0x4247ef){return function(_0x3cab55){if(_0x3cab55){var _0x4f2684=typeof _0x4247ef[_0x9be9('0x1e')]===_0x9be9('0x1f')&&typeof _0x4247ef[_0x9be9('0x20')]===_0x9be9('0x1f');var _0x118b3b=_0x3cab55['count'];var _0x4b3e3a=_0x4f2684?0x0:_0x4247ef[_0x9be9('0x1e')];var _0x50dc32=_0x4f2684?_0x3cab55[_0x9be9('0x21')]:_0x4247ef[_0x9be9('0x1e')]+_0x4247ef['limit'];var _0x30ad38;if(_0x50dc32>=_0x118b3b){_0x50dc32=_0x118b3b;_0x30ad38=0xc8;}else{_0x30ad38=0xce;}_0x694e8[_0x9be9('0x1b')](_0x30ad38);return _0x694e8[_0x9be9('0x22')](_0x9be9('0x23'),_0x4b3e3a+'-'+_0x50dc32+'/'+_0x118b3b)['json'](_0x3cab55);}return null;};}function patchUpdates(_0x114490){return function(_0x19d37a){try{jsonpatch['apply'](_0x19d37a,_0x114490,!![]);}catch(_0x2793c2){return BPromise[_0x9be9('0x24')](_0x2793c2);}return _0x19d37a[_0x9be9('0x25')]();};}function saveUpdates(_0x6afa74,_0x1ce5c3){return function(_0x306a67){if(_0x306a67){return _0x306a67[_0x9be9('0x26')](_0x6afa74)[_0x9be9('0x27')](function(_0x4c94a5){return _0x4c94a5;});}return null;};}function removeEntity(_0x46d438,_0x359af9){return function(_0x2cb9b0){if(_0x2cb9b0){return _0x2cb9b0[_0x9be9('0x28')]()[_0x9be9('0x27')](function(){_0x46d438[_0x9be9('0x1b')](0xcc)[_0x9be9('0x1c')]();});}};}function handleEntityNotFound(_0x37eff3,_0x44370f){return function(_0x58736c){if(!_0x58736c){_0x37eff3[_0x9be9('0x1a')](0x194);}return _0x58736c;};}function handleError(_0x4ba11d,_0xa69bf5){_0xa69bf5=_0xa69bf5||0x1f4;return function(_0x419ac9){logger['error'](_0x419ac9[_0x9be9('0x29')]);if(_0x419ac9[_0x9be9('0x2a')]){delete _0x419ac9[_0x9be9('0x2a')];}_0x4ba11d[_0x9be9('0x1b')](_0xa69bf5)[_0x9be9('0x2b')](_0x419ac9);};}exports[_0x9be9('0x2c')]=function(_0x25af83,_0xa015f3){var _0x580fe8={},_0x3efd5c={},_0x177c3d={'count':0x0,'rows':[]};var _0x429f61=_['map'](db['WhatsappTransferReport'][_0x9be9('0x2d')],function(_0x384c15){return{'name':_0x384c15[_0x9be9('0x2e')],'type':_0x384c15[_0x9be9('0x2f')][_0x9be9('0x30')]};});_0x3efd5c[_0x9be9('0x31')]=_[_0x9be9('0x32')](_0x429f61,_0x9be9('0x2a'));_0x3efd5c[_0x9be9('0x33')]=_[_0x9be9('0x34')](_0x25af83[_0x9be9('0x33')]);_0x3efd5c['filters']=_[_0x9be9('0x35')](_0x3efd5c['model'],_0x3efd5c[_0x9be9('0x33')]);_0x580fe8[_0x9be9('0x36')]=_['intersection'](_0x3efd5c[_0x9be9('0x31')],qs[_0x9be9('0x37')](_0x25af83['query'][_0x9be9('0x37')]));_0x580fe8[_0x9be9('0x36')]=_0x580fe8['attributes'][_0x9be9('0x38')]?_0x580fe8[_0x9be9('0x36')]:_0x3efd5c[_0x9be9('0x31')];if(!_0x25af83[_0x9be9('0x33')][_0x9be9('0x39')](_0x9be9('0x3a'))){_0x580fe8[_0x9be9('0x20')]=qs['limit'](_0x25af83[_0x9be9('0x33')][_0x9be9('0x20')]);_0x580fe8[_0x9be9('0x1e')]=qs[_0x9be9('0x1e')](_0x25af83[_0x9be9('0x33')][_0x9be9('0x1e')]);}_0x580fe8['order']=qs[_0x9be9('0x3b')](_0x25af83[_0x9be9('0x33')][_0x9be9('0x3b')]);_0x580fe8[_0x9be9('0x3c')]=qs['filters'](_[_0x9be9('0x3d')](_0x25af83['query'],_0x3efd5c[_0x9be9('0x3e')]),_0x429f61);if(_0x25af83[_0x9be9('0x33')][_0x9be9('0x3f')]){_0x580fe8[_0x9be9('0x3c')]=_[_0x9be9('0x40')](_0x580fe8['where'],{'$or':_[_0x9be9('0x32')](_0x429f61,function(_0x5bb9f5){if(_0x5bb9f5[_0x9be9('0x2f')]!==_0x9be9('0x41')){var _0x56be66={};_0x56be66[_0x5bb9f5[_0x9be9('0x2a')]]={'$like':'%'+_0x25af83[_0x9be9('0x33')][_0x9be9('0x3f')]+'%'};return _0x56be66;}})});}_0x580fe8=_[_0x9be9('0x40')]({},_0x580fe8,_0x25af83[_0x9be9('0x42')]);var _0x30bcb2={'where':_0x580fe8['where']};return db[_0x9be9('0x43')]['count'](_0x30bcb2)[_0x9be9('0x27')](function(_0x46b8b3){_0x177c3d[_0x9be9('0x21')]=_0x46b8b3;if(_0x25af83[_0x9be9('0x33')][_0x9be9('0x44')]){_0x580fe8['include']=[{'all':!![]}];}return db[_0x9be9('0x43')]['findAll'](_0x580fe8);})[_0x9be9('0x27')](function(_0x489fdd){_0x177c3d[_0x9be9('0x45')]=_0x489fdd;return _0x177c3d;})[_0x9be9('0x27')](respondWithFilteredResult(_0xa015f3,_0x580fe8))[_0x9be9('0x46')](handleError(_0xa015f3,null));};exports[_0x9be9('0x47')]=function(_0x4967fb,_0xb5264e){var _0x330052={'raw':!![],'where':{'id':_0x4967fb[_0x9be9('0x48')]['id']}},_0x257f2a={};_0x257f2a[_0x9be9('0x31')]=_[_0x9be9('0x34')](db[_0x9be9('0x43')][_0x9be9('0x2d')]);_0x257f2a[_0x9be9('0x33')]=_[_0x9be9('0x34')](_0x4967fb[_0x9be9('0x33')]);_0x257f2a[_0x9be9('0x3e')]=_[_0x9be9('0x35')](_0x257f2a[_0x9be9('0x31')],_0x257f2a['query']);_0x330052[_0x9be9('0x36')]=_[_0x9be9('0x35')](_0x257f2a[_0x9be9('0x31')],qs[_0x9be9('0x37')](_0x4967fb[_0x9be9('0x33')][_0x9be9('0x37')]));_0x330052[_0x9be9('0x36')]=_0x330052[_0x9be9('0x36')][_0x9be9('0x38')]?_0x330052[_0x9be9('0x36')]:_0x257f2a['model'];if(_0x4967fb[_0x9be9('0x33')][_0x9be9('0x44')]){_0x330052[_0x9be9('0x49')]=[{'all':!![]}];}_0x330052=_[_0x9be9('0x40')]({},_0x330052,_0x4967fb[_0x9be9('0x42')]);return db[_0x9be9('0x43')]['find'](_0x330052)['then'](handleEntityNotFound(_0xb5264e,null))[_0x9be9('0x27')](respondWithResult(_0xb5264e,null))['catch'](handleError(_0xb5264e,null));};exports['create']=function(_0x4f5c7b,_0x1d287a){return db[_0x9be9('0x43')]['create'](_0x4f5c7b[_0x9be9('0x4a')],{})[_0x9be9('0x27')](respondWithResult(_0x1d287a,0xc9))[_0x9be9('0x46')](handleError(_0x1d287a,null));};exports[_0x9be9('0x26')]=function(_0x58086d,_0x2ddd33){if(_0x58086d[_0x9be9('0x4a')]['id']){delete _0x58086d['body']['id'];}return db[_0x9be9('0x43')][_0x9be9('0x4b')]({'where':{'id':_0x58086d[_0x9be9('0x48')]['id']}})[_0x9be9('0x27')](handleEntityNotFound(_0x2ddd33,null))[_0x9be9('0x27')](saveUpdates(_0x58086d[_0x9be9('0x4a')],null))[_0x9be9('0x27')](respondWithResult(_0x2ddd33,null))[_0x9be9('0x46')](handleError(_0x2ddd33,null));};exports['destroy']=function(_0x3670be,_0x1568dd){return db[_0x9be9('0x43')][_0x9be9('0x4b')]({'where':{'id':_0x3670be[_0x9be9('0x48')]['id']}})[_0x9be9('0x27')](handleEntityNotFound(_0x1568dd,null))[_0x9be9('0x27')](removeEntity(_0x1568dd,null))[_0x9be9('0x46')](handleError(_0x1568dd,null));};exports[_0x9be9('0x4c')]=function(_0x26888d,_0x18f2d1){return db[_0x9be9('0x43')][_0x9be9('0x4c')]()['then'](respondWithResult(_0x18f2d1,null))['catch'](handleError(_0x18f2d1,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4197=['report_whatsapp_transfer','uniqueid','lodash','util','api','moment','bluebird','request-promise','rimraf','../../config/environment','define','WhatsappTransferReport'];(function(_0x4565bf,_0x5ad9d6){var _0x5610ba=function(_0x170988){while(--_0x170988){_0x4565bf['push'](_0x4565bf['shift']());}};_0x5610ba(++_0x5ad9d6);}(_0x4197,0x18e));var _0x7419=function(_0x4d91fa,_0x37024c){_0x4d91fa=_0x4d91fa-0x0;var _0x144623=_0x4197[_0x4d91fa];return _0x144623;};'use strict';var _=require(_0x7419('0x0'));var util=require(_0x7419('0x1'));var logger=require('../../config/logger')(_0x7419('0x2'));var moment=require(_0x7419('0x3'));var BPromise=require(_0x7419('0x4'));var rp=require(_0x7419('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0x7419('0x6'));var config=require(_0x7419('0x7'));var attributes=require('./whatsappTransferReport.attributes');module['exports']=function(_0x14f1a5,_0x3f7434){return _0x14f1a5[_0x7419('0x8')](_0x7419('0x9'),attributes,{'tableName':_0x7419('0xa'),'paranoid':![],'indexes':[{'name':'uniqueid','fields':[_0x7419('0xb')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x2292=['uniqueid','lodash','util','moment','bluebird','request-promise','path','rimraf','../../config/environment','./whatsappTransferReport.attributes','exports','define','WhatsappTransferReport','report_whatsapp_transfer'];(function(_0xc9be25,_0x1fc8de){var _0x229673=function(_0x3504c6){while(--_0x3504c6){_0xc9be25['push'](_0xc9be25['shift']());}};_0x229673(++_0x1fc8de);}(_0x2292,0x71));var _0x2229=function(_0x1d3019,_0x8dbbd5){_0x1d3019=_0x1d3019-0x0;var _0x36458e=_0x2292[_0x1d3019];return _0x36458e;};'use strict';var _=require(_0x2229('0x0'));var util=require(_0x2229('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0x2229('0x2'));var BPromise=require(_0x2229('0x3'));var rp=require(_0x2229('0x4'));var fs=require('fs');var path=require(_0x2229('0x5'));var rimraf=require(_0x2229('0x6'));var config=require(_0x2229('0x7'));var attributes=require(_0x2229('0x8'));module[_0x2229('0x9')]=function(_0x267495,_0x4918e2){return _0x267495[_0x2229('0xa')](_0x2229('0xb'),attributes,{'tableName':_0x2229('0xc'),'paranoid':![],'indexes':[{'name':'uniqueid','fields':[_0x2229('0xd')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe98b=['randomstring','../../config/utils','../../config/logger','rpc','client','http','request','then','info','request\x20sent','debug','WhatsappTransferReport,\x20%s,\x20%s,\x20%s','stringify','error','WhatsappTransferReport,\x20%s,\x20%s','message','result','catch','lodash','util','moment','bluebird'];(function(_0x4a775c,_0x356dda){var _0x1fb88a=function(_0x555ef8){while(--_0x555ef8){_0x4a775c['push'](_0x4a775c['shift']());}};_0x1fb88a(++_0x356dda);}(_0xe98b,0x15c));var _0xbe98=function(_0x265264,_0x9e9210){_0x265264=_0x265264-0x0;var _0x335120=_0xe98b[_0x265264];return _0x335120;};'use strict';var _=require(_0xbe98('0x0'));var util=require(_0xbe98('0x1'));var moment=require(_0xbe98('0x2'));var BPromise=require(_0xbe98('0x3'));var rs=require(_0xbe98('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0xbe98('0x5'));var logger=require(_0xbe98('0x6'))(_0xbe98('0x7'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0xbe98('0x8')][_0xbe98('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x110197,_0x1bd656,_0x58527a){return new BPromise(function(_0xa349f7,_0x34ccbc){return client[_0xbe98('0xa')](_0x110197,_0x58527a)[_0xbe98('0xb')](function(_0x2e215a){logger[_0xbe98('0xc')]('WhatsappTransferReport,\x20%s,\x20%s',_0x1bd656,_0xbe98('0xd'));logger[_0xbe98('0xe')](_0xbe98('0xf'),_0x1bd656,'request\x20sent',JSON[_0xbe98('0x10')](_0x2e215a));if(_0x2e215a[_0xbe98('0x11')]){if(_0x2e215a[_0xbe98('0x11')]['code']===0x1f4){logger[_0xbe98('0x11')](_0xbe98('0x12'),_0x1bd656,_0x2e215a[_0xbe98('0x11')][_0xbe98('0x13')]);return _0x34ccbc(_0x2e215a['error'][_0xbe98('0x13')]);}logger[_0xbe98('0x11')]('WhatsappTransferReport,\x20%s,\x20%s',_0x1bd656,_0x2e215a[_0xbe98('0x11')]['message']);return _0xa349f7(_0x2e215a[_0xbe98('0x11')]['message']);}else{logger[_0xbe98('0xc')](_0xbe98('0x12'),_0x1bd656,'request\x20sent');_0xa349f7(_0x2e215a[_0xbe98('0x14')]['message']);}})[_0xbe98('0x15')](function(_0x84630a){logger['error'](_0xbe98('0x12'),_0x1bd656,_0x84630a);_0x34ccbc(_0x84630a);});});}
\ No newline at end of file
+var _0x6ab4=['ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','client','request','then','request\x20sent','debug','stringify','error','code','WhatsappTransferReport,\x20%s,\x20%s','message','info','result','lodash','util','moment','bluebird','randomstring'];(function(_0x5b5b93,_0x3921d4){var _0x1da432=function(_0x5bfefc){while(--_0x5bfefc){_0x5b5b93['push'](_0x5b5b93['shift']());}};_0x1da432(++_0x3921d4);}(_0x6ab4,0x1c9));var _0x46ab=function(_0x2647a0,_0x462d4a){_0x2647a0=_0x2647a0-0x0;var _0xf80786=_0x6ab4[_0x2647a0];return _0xf80786;};'use strict';var _=require(_0x46ab('0x0'));var util=require(_0x46ab('0x1'));var moment=require(_0x46ab('0x2'));var BPromise=require(_0x46ab('0x3'));var rs=require(_0x46ab('0x4'));var fs=require('fs');var Redis=require(_0x46ab('0x5'));var db=require(_0x46ab('0x6'))['db'];var utils=require(_0x46ab('0x7'));var logger=require(_0x46ab('0x8'))(_0x46ab('0x9'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0x46ab('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0x34ddd3,_0x187197,_0x2ff02a){return new BPromise(function(_0x43bfbb,_0x266ccb){return client[_0x46ab('0xb')](_0x34ddd3,_0x2ff02a)[_0x46ab('0xc')](function(_0x6e6601){logger['info']('WhatsappTransferReport,\x20%s,\x20%s',_0x187197,_0x46ab('0xd'));logger[_0x46ab('0xe')]('WhatsappTransferReport,\x20%s,\x20%s,\x20%s',_0x187197,_0x46ab('0xd'),JSON[_0x46ab('0xf')](_0x6e6601));if(_0x6e6601[_0x46ab('0x10')]){if(_0x6e6601[_0x46ab('0x10')][_0x46ab('0x11')]===0x1f4){logger[_0x46ab('0x10')](_0x46ab('0x12'),_0x187197,_0x6e6601[_0x46ab('0x10')][_0x46ab('0x13')]);return _0x266ccb(_0x6e6601['error'][_0x46ab('0x13')]);}logger[_0x46ab('0x10')](_0x46ab('0x12'),_0x187197,_0x6e6601[_0x46ab('0x10')][_0x46ab('0x13')]);return _0x43bfbb(_0x6e6601['error'][_0x46ab('0x13')]);}else{logger[_0x46ab('0x14')]('WhatsappTransferReport,\x20%s,\x20%s',_0x187197,_0x46ab('0xd'));_0x43bfbb(_0x6e6601[_0x46ab('0x15')][_0x46ab('0x13')]);}})['catch'](function(_0x332a91){logger[_0x46ab('0x10')](_0x46ab('0x12'),_0x187197,_0x332a91);_0x266ccb(_0x332a91);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x983f=['./config/environment','./config/logger','./config/pm2/config','./config/schedule','./config/schedule/whatsapp','sequelize','then','listen','start','info','filter','online','join','Offline\x20apps:','map','status','name','None','seedDB','./config/seedDB','default','./config/license','catch','error','Server\x20failed\x20to\x20start\x20due\x20to\x20error:\x20%s','exit','lodash','./mysqldb','./rpc'];(function(_0x247c8d,_0x25141e){var _0x39f9fe=function(_0x51789d){while(--_0x51789d){_0x247c8d['push'](_0x247c8d['shift']());}};_0x39f9fe(++_0x25141e);}(_0x983f,0x13c));var _0xf983=function(_0x2aca1b,_0x15843e){_0x2aca1b=_0x2aca1b-0x0;var _0x37f562=_0x983f[_0x2aca1b];return _0x37f562;};'use strict';var _=require(_0xf983('0x0'));var mysqldb=require(_0xf983('0x1'));var rpc=require(_0xf983('0x2'));var config=require(_0xf983('0x3'));var logger=require(_0xf983('0x4'))('app');var pm2=require('./config/pm2');var pm2Config=require(_0xf983('0x5'));var schedule=require(_0xf983('0x6'));var chat=require('./config/schedule/chat');var whatsapp=require(_0xf983('0x7'));var transcribe=require('./config/schedule/transcribe');function main(){return mysqldb['db'][_0xf983('0x8')]['sync']()[_0xf983('0x9')](function(){return rpc[_0xf983('0xa')]();})[_0xf983('0x9')](function(_0x2b8bae){logger['info'](_0x2b8bae);return chat[_0xf983('0xb')]();})[_0xf983('0x9')](function(){return whatsapp[_0xf983('0xb')]();})[_0xf983('0x9')](function(){return schedule['start']();})[_0xf983('0x9')](function(){return transcribe['start']();})[_0xf983('0x9')](function(_0x54e617){logger['info'](_0x54e617);return pm2[_0xf983('0xb')](pm2Config);})[_0xf983('0x9')](function(_0x4af3f5){logger[_0xf983('0xc')]('Online\x20apps:',_['map'](_[_0xf983('0xd')](_0x4af3f5,{'status':_0xf983('0xe')}),'name')[_0xf983('0xf')]());logger[_0xf983('0xc')](_0xf983('0x10'),_[_0xf983('0x11')](_['filter'](_0x4af3f5,function(_0x1e156d){return _0x1e156d[_0xf983('0x12')]!=='online';}),_0xf983('0x13'))[_0xf983('0xf')]()||_0xf983('0x14'));config[_0xf983('0x15')]&&require(_0xf983('0x16'))[_0xf983('0x17')]();require(_0xf983('0x18'))[_0xf983('0x17')]();})[_0xf983('0x19')](function(_0x197672){logger[_0xf983('0x1a')](_0xf983('0x1b'),_0x197672);process[_0xf983('0x1c')](0x1);});}main();
\ No newline at end of file
+var _0x1fee=['join','Offline\x20apps:','status','seedDB','./config/seedDB','default','./config/license','catch','error','Server\x20failed\x20to\x20start\x20due\x20to\x20error:\x20%s','exit','./mysqldb','./rpc','./config/environment','./config/logger','app','./config/pm2','./config/pm2/config','./config/schedule','./config/schedule/chat','./config/schedule/whatsapp','./config/schedule/transcribe','sequelize','sync','then','listen','start','info','Online\x20apps:','map','filter','name'];(function(_0x5cdc1a,_0x3376e4){var _0x3102d9=function(_0x2c51e8){while(--_0x2c51e8){_0x5cdc1a['push'](_0x5cdc1a['shift']());}};_0x3102d9(++_0x3376e4);}(_0x1fee,0x8b));var _0xe1fe=function(_0x293de1,_0x2e2866){_0x293de1=_0x293de1-0x0;var _0x4b3c01=_0x1fee[_0x293de1];return _0x4b3c01;};'use strict';var _=require('lodash');var mysqldb=require(_0xe1fe('0x0'));var rpc=require(_0xe1fe('0x1'));var config=require(_0xe1fe('0x2'));var logger=require(_0xe1fe('0x3'))(_0xe1fe('0x4'));var pm2=require(_0xe1fe('0x5'));var pm2Config=require(_0xe1fe('0x6'));var schedule=require(_0xe1fe('0x7'));var chat=require(_0xe1fe('0x8'));var whatsapp=require(_0xe1fe('0x9'));var transcribe=require(_0xe1fe('0xa'));function main(){return mysqldb['db'][_0xe1fe('0xb')][_0xe1fe('0xc')]()[_0xe1fe('0xd')](function(){return rpc[_0xe1fe('0xe')]();})[_0xe1fe('0xd')](function(_0xb46a1){logger['info'](_0xb46a1);return chat[_0xe1fe('0xf')]();})[_0xe1fe('0xd')](function(){return whatsapp[_0xe1fe('0xf')]();})[_0xe1fe('0xd')](function(){return schedule[_0xe1fe('0xf')]();})['then'](function(){return transcribe[_0xe1fe('0xf')]();})[_0xe1fe('0xd')](function(_0x379f15){logger[_0xe1fe('0x10')](_0x379f15);return pm2[_0xe1fe('0xf')](pm2Config);})[_0xe1fe('0xd')](function(_0x39b6c0){logger[_0xe1fe('0x10')](_0xe1fe('0x11'),_[_0xe1fe('0x12')](_[_0xe1fe('0x13')](_0x39b6c0,{'status':'online'}),_0xe1fe('0x14'))[_0xe1fe('0x15')]());logger['info'](_0xe1fe('0x16'),_[_0xe1fe('0x12')](_['filter'](_0x39b6c0,function(_0x2ece36){return _0x2ece36[_0xe1fe('0x17')]!=='online';}),_0xe1fe('0x14'))[_0xe1fe('0x15')]()||'None');config[_0xe1fe('0x18')]&&require(_0xe1fe('0x19'))[_0xe1fe('0x1a')]();require(_0xe1fe('0x1b'))[_0xe1fe('0x1a')]();})[_0xe1fe('0x1c')](function(_0xc4b64c){logger[_0xe1fe('0x1d')](_0xe1fe('0x1e'),_0xc4b64c);process[_0xe1fe('0x1f')](0x1);});}main();
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0df9=['nonce','API\x20access\x20key\x20is\x20not\x20valid\x20anymore','disabled','Invalid\x20API\x20access\x20key','blocked','blockedAt','minutes','User\x20object\x20not\x20found.','canUpdate','update','Forbidden','isMiddleware','signToken','setTokenCookie','It\x20looks\x20like\x20you\x20aren\x27t\x20logged\x20in,\x20please\x20try\x20again.','redirect','/dashboards/general','send','isNil','apiKeyIat','generateApiKey','Please\x20use\x20the\x20previous\x20API\x20access\x20key\x20to\x20generate\x20a\x20new\x20one','validatePasswordPattern','test','Sequelize','The\x20password\x20must\x20be\x20at\x20least\x208\x20characters\x20long\x20and\x20have\x201\x20lowercase\x20character,\x201\x20uppercase\x20character,\x201\x20number\x20and\x201\x20special\x20character\x20~!@#$%^&-_=+[{]}.','validatePasswordHistory','decryptString','split','format','The\x20password\x20must\x20be\x20different\x20from\x20the\x20last\x20one.\x20Please\x20choose\x20another\x20one.','ValidationError','updatePasswordsHistory','length','unshift','join','promisify','sign','secret','secrets','payload','options','randomBytes','toString','hex','now','HS512','../../mysqldb','../../config/environment','../../config/license/hardware','../../config/license/util','lodash','jsonwebtoken','composable-middleware','crypto','bluebird','util','moment','session','role','fullname','name','internal','email','userpic','md5secret','voicePause','chatPause','mailPause','faxPause','smsPause','openchannelPause','pauseType','lastLoginAt','lastPauseAt','allowmessenger','phoneBarAutoAnswer','phoneBarAutoAnswerDelay','phoneBarDnd','phoneBarEnableRecording','phoneBarEnableSettings','phoneBarExpires','phoneBarPrefixRequired','phoneBarRemoteControlPort','hotdesk','userProfileId','privacyEnabled','settingsEnabled','wssPort','downloadOmnichannelInteractions','isChatInteractionAuthorized','isAuthenticated','user','ChatInteraction','findOne','closed','disposition','then','status','json','unmanaged','Unmanaged.','Forbidden.','catch','use','headers','authorization','startsWith','User','find','authenticate','Wrong\x20credentials.','Bearer','Unknown\x20authorization\x20format','apikey','getUuid','query','sub','Setting','allowedLoginAttempts','blockDuration','isEqual','apiKeyNonce'];(function(_0x4329d3,_0x290109){var _0x43a0cb=function(_0x2872a6){while(--_0x2872a6){_0x4329d3['push'](_0x4329d3['shift']());}};_0x43a0cb(++_0x290109);}(_0x0df9,0xaa));var _0x90df=function(_0x388794,_0x10395e){_0x388794=_0x388794-0x0;var _0x1d1c64=_0x0df9[_0x388794];return _0x1d1c64;};'use strict';var db=require(_0x90df('0x0'))['db'];var config=require(_0x90df('0x1'));var hardwareConf=require(_0x90df('0x2'));var licenseUtil=require(_0x90df('0x3'));var encryptor=require('../encryptor');var _=require(_0x90df('0x4'));var jwt=require(_0x90df('0x5'));var expressJwt=require('express-jwt');var compose=require(_0x90df('0x6'));var basicAuth=require('basic-auth');var crypto=require(_0x90df('0x7'));var BPromise=require(_0x90df('0x8'));var util=require(_0x90df('0x9'));var moment=require(_0x90df('0xa'));var validateJwt=expressJwt({'secret':config['secrets'][_0x90df('0xb')]});var userAttributes=['id',_0x90df('0xc'),_0x90df('0xd'),_0x90df('0xe'),_0x90df('0xf'),_0x90df('0x10'),_0x90df('0x11'),'permissions',_0x90df('0x12'),_0x90df('0x13'),_0x90df('0x14'),_0x90df('0x15'),_0x90df('0x16'),_0x90df('0x17'),_0x90df('0x18'),_0x90df('0x19'),'showWebBar',_0x90df('0x1a'),_0x90df('0x1b'),'crudPermissions',_0x90df('0x1c'),'passwordResetAt','alias',_0x90df('0x1d'),_0x90df('0x1e'),_0x90df('0x1f'),_0x90df('0x20'),'phoneBarEnableDtmfTone',_0x90df('0x21'),_0x90df('0x22'),_0x90df('0x23'),'phoneBarRemoteControl',_0x90df('0x24'),_0x90df('0x25'),'interface',_0x90df('0x26'),_0x90df('0x27'),_0x90df('0x28'),_0x90df('0x29'),'downloadVoiceRecordings',_0x90df('0x2a'),'downloadAttachments'];exports[_0x90df('0x2b')]=function(){return this[_0x90df('0x2c')](!![])['use'](function(_0x13f5fa,_0x45e815,_0x41468c){if(_0x13f5fa[_0x90df('0x2d')]){_0x41468c();}else{return db[_0x90df('0x2e')][_0x90df('0x2f')]({'where':{'id':_0x13f5fa['params']['id']},'attributes':['id',_0x90df('0x30'),_0x90df('0x31')],'raw':!![]})[_0x90df('0x32')](function(_0x5a034e){if(_0x5a034e&&_0x5a034e[_0x90df('0x30')]){return _0x45e815[_0x90df('0x33')](_0x5a034e['disposition']==='unmanaged'?0x195:0x193)[_0x90df('0x34')]({'message':_0x5a034e[_0x90df('0x31')]===_0x90df('0x35')?_0x90df('0x36'):_0x90df('0x37')});}else{_0x41468c();}})[_0x90df('0x38')](function(_0x12526d){_0x41468c(_0x12526d);});}});};exports['isAuthenticated']=function isAuthenticated(_0x35d228){return compose()[_0x90df('0x39')](function(_0x42c0a8,_0x30eacd,_0x44245a){var _0x2d1dc5;if(_0x42c0a8[_0x90df('0x3a')][_0x90df('0x3b')]){if(_[_0x90df('0x3c')](_0x42c0a8[_0x90df('0x3a')][_0x90df('0x3b')],'Basic')){var _0x1177a1=basicAuth(_0x42c0a8);db[_0x90df('0x3d')][_0x90df('0x3e')]({'where':{'name':_0x1177a1['name']}})[_0x90df('0x32')](function(_0x19c2d1){if(!_0x19c2d1||!_0x19c2d1[_0x90df('0x3f')](_0x1177a1['pass'])){return _0x30eacd[_0x90df('0x33')](0x191)[_0x90df('0x34')]({'message':_0x90df('0x40')});}_0x42c0a8[_0x90df('0x2d')]={'id':_0x19c2d1['id']};_0x44245a();})['catch'](function(_0x12dc6a){_0x44245a(_0x12dc6a);});}else if(_[_0x90df('0x3c')](_0x42c0a8[_0x90df('0x3a')][_0x90df('0x3b')],_0x90df('0x41'))){validateJwt(_0x42c0a8,_0x30eacd,_0x44245a);}else{if(_0x35d228){_0x44245a();}else{return _0x30eacd[_0x90df('0x33')](0x193)[_0x90df('0x34')]({'message':_0x90df('0x42')});}}}else if(_0x42c0a8['query'][_0x90df('0x43')]){try{var _0x1578e6={'audience':hardwareConf[_0x90df('0x44')](),'issuer':hardwareConf[_0x90df('0x44')]()};verifyJwt(_0x42c0a8[_0x90df('0x45')]['apikey'],_0x1578e6)[_0x90df('0x32')](function(_0x14d6a7){return db[_0x90df('0x3d')]['find']({'where':{'id':_0x14d6a7[_0x90df('0x46')]}})['then'](function(_0x2eb76d){_0x2d1dc5=_0x2eb76d;return db[_0x90df('0x47')][_0x90df('0x2f')]({'where':{'id':0x1},'attributes':[_0x90df('0x48'),_0x90df('0x49')],'raw':!![]});})[_0x90df('0x32')](function(_0x2989a6){if(!_0x2d1dc5||!_[_0x90df('0x4a')](_0x2d1dc5[_0x90df('0x4b')],_0x14d6a7[_0x90df('0x4c')])){return _0x30eacd[_0x90df('0x33')](0x191)['json']({'message':_0x90df('0x4d')});}if(_0x2d1dc5[_0x90df('0x4e')]){return _0x30eacd['status'](0x191)[_0x90df('0x34')]({'message':_0x90df('0x4f')});}if(_0x2d1dc5[_0x90df('0x50')]){if(_0x2989a6[_0x90df('0x49')]>0x0){if(moment(_0x2d1dc5[_0x90df('0x51')])['add'](_0x2989a6['blockDuration'],_0x90df('0x52'))>moment()){return _0x30eacd[_0x90df('0x33')](0x191)['json']({'message':_0x90df('0x4f')});}}else{return _0x30eacd[_0x90df('0x33')](0x191)[_0x90df('0x34')]({'message':_0x90df('0x4f')});}}_0x42c0a8[_0x90df('0x2d')]={'id':_0x2d1dc5['id']};_0x44245a();});})['catch'](function(){return _0x30eacd[_0x90df('0x33')](0x191)[_0x90df('0x34')]({'message':_0x90df('0x4f')});});}catch(_0x37a7a9){_0x44245a(_0x37a7a9);}}else if(_0x35d228){_0x44245a();}else{return _0x30eacd[_0x90df('0x33')](0x193)['json']({'message':_0x90df('0x42')});}})[_0x90df('0x39')](function(_0x2d4140,_0x5db805,_0x54ce44){if(_0x2d4140[_0x90df('0x2d')]){db[_0x90df('0x3d')][_0x90df('0x3e')]({'where':{'id':_0x2d4140[_0x90df('0x2d')]['id']},'attributes':userAttributes})['then'](function(_0x3ec515){if(!_0x3ec515){return _0x5db805['status'](0x194)[_0x90df('0x34')]({'message':'User\x20not\x20found.'});}_0x2d4140[_0x90df('0x2d')]=_0x3ec515;_0x54ce44();})[_0x90df('0x38')](function(_0x3d17dd){_0x54ce44(_0x3d17dd);});}else if(_0x35d228){_0x54ce44();}else{return _0x5db805[_0x90df('0x33')](0x194)['json']({'message':_0x90df('0x53')});}});};exports[_0x90df('0x54')]=function canUpdate(){return compose()[_0x90df('0x39')](function(_0x2bec77,_0x391f5c,_0x538c38){return licenseUtil['getLicense']()[_0x90df('0x32')](function(_0x1e4506){if(_0x1e4506[_0x90df('0x55')]){_0x538c38();}else{return _0x391f5c[_0x90df('0x33')](0x193)[_0x90df('0x34')]({'message':_0x90df('0x56')});}})[_0x90df('0x38')](function(_0x3b2e68){_0x538c38(_0x3b2e68);});});};exports[_0x90df('0x57')]=function(_0x5bd445,_0x1c719a,_0x31c8b5){_0x5bd445[_0x90df('0x57')]=!![];return _0x31c8b5();};exports[_0x90df('0x58')]=function signToken(_0xf9d431){return signJwt(_0xf9d431);};exports[_0x90df('0x59')]=function(_0x2e0627,_0x553dcc){if(!_0x2e0627[_0x90df('0x2d')]){return _0x553dcc['status'](0x194)[_0x90df('0x34')]({'message':_0x90df('0x5a')});}var _0x3ec7c4={'payload':{'id':_0x2e0627[_0x90df('0x2d')]['id'],'role':_0x2e0627['user'][_0x90df('0xc')]},'options':{'expiresIn':0x15180}};return signJwt(_0x3ec7c4)[_0x90df('0x32')](function(_0x3888c3){_0x553dcc['cookie']('motion.token',_0x3888c3);_0x553dcc[_0x90df('0x5b')](_0x90df('0x5c'));})[_0x90df('0x38')](function(_0x1daba2){return _0x553dcc['status'](0x1f4)[_0x90df('0x5d')](_0x1daba2);});};exports['retrieveApiKey']=function(_0x19014d){if(_[_0x90df('0x5e')](_0x19014d['apiKeyNonce'])||_[_0x90df('0x5e')](_0x19014d[_0x90df('0x5f')])){return null;}else{return createJwt(_0x19014d);}};exports[_0x90df('0x60')]=function(_0x134cdf){_0x134cdf[_0x90df('0x4b')]=generateNonce();_0x134cdf['apiKeyIat']=generateIssuedAt();return createJwt(_0x134cdf);};exports['regenerateApiKey']=function(_0x357dfb,_0x267bfb){var _0x45fdec=_0x357dfb[_0x90df('0x45')][_0x90df('0x43')];if(_0x45fdec){var _0x458846={'nonce':_0x267bfb['apiKeyNonce'],'iat':_0x267bfb['apiKeyIat'],'audience':hardwareConf['getUuid'](),'issuer':hardwareConf[_0x90df('0x44')]()};return verifyJwt(_0x45fdec,_0x458846)[_0x90df('0x32')](function(){return generateApiKey(_0x267bfb);});}else{throw{'message':_0x90df('0x61')};}};exports[_0x90df('0x62')]=function(_0x2c9c6b){var _0x4af719=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(!_0x4af719[_0x90df('0x63')](_0x2c9c6b))throw new db[(_0x90df('0x64'))]['ValidationError'](_0x90df('0x65'));return;};exports[_0x90df('0x66')]=function(_0xddc29b,_0x3c5be4,_0x53d1eb){var _0x1cd88b=encryptor[_0x90df('0x67')](_0x3c5be4)[_0x90df('0x68')](',');for(var _0x3c45d3=0x0;_0x3c45d3<_0x53d1eb;_0x3c45d3++){if(!_0x1cd88b[_0x3c45d3])break;if(_0xddc29b['toLowerCase']()===_0x1cd88b[_0x3c45d3]['toLowerCase']()){var _0x1ab509=util[_0x90df('0x69')]('The\x20password\x20must\x20be\x20different\x20from\x20the\x20previous\x20%d\x20passwords.\x20Please\x20choose\x20another\x20one.',_0x53d1eb);if(_0x53d1eb===0x1){_0x1ab509=_0x90df('0x6a');}throw new db['Sequelize'][(_0x90df('0x6b'))](_0x1ab509);}}return;};exports[_0x90df('0x6c')]=function(_0x1bdc76,_0xfc960d){var _0x4638e8=_0xfc960d?encryptor[_0x90df('0x67')](_0xfc960d)[_0x90df('0x68')](','):[];if(_0x4638e8[_0x90df('0x6d')]===0x5){_0x4638e8['splice'](-0x1,0x1);}_0x4638e8[_0x90df('0x6e')](_0x1bdc76);return encryptor['encryptString'](_0x4638e8[_0x90df('0x6f')](','));};function signJwt(_0xc91de9){var _0x2c46a0=BPromise[_0x90df('0x70')](jwt[_0x90df('0x71')],{'context':jwt});var _0x580da9=_0xc91de9[_0x90df('0x72')]||config[_0x90df('0x73')][_0x90df('0xb')];return new BPromise(function(_0x4c8d71,_0x467acf){_0x2c46a0(_0xc91de9[_0x90df('0x74')],_0x580da9,_0xc91de9[_0x90df('0x75')])[_0x90df('0x32')](function(_0x4c4c5f){_0x4c8d71(_0x4c4c5f);})[_0x90df('0x38')](function(_0x4d8f3f){_0x467acf(_0x4d8f3f);});});}function verifyJwt(_0x1121eb,_0x4497bf,_0x44e3c0){var _0x14a97e=BPromise[_0x90df('0x70')](jwt['verify'],{'context':jwt});var _0x45f7a7=_0x44e3c0||config[_0x90df('0x73')][_0x90df('0xb')];return new BPromise(function(_0x7a1631,_0x206a28){_0x14a97e(_0x1121eb,_0x45f7a7,_0x4497bf)[_0x90df('0x32')](function(_0x5a649a){_0x7a1631(_0x5a649a);})[_0x90df('0x38')](function(_0x11b420){_0x206a28(_0x11b420);});});}function generateNonce(){return crypto[_0x90df('0x76')](0x10)[_0x90df('0x77')](_0x90df('0x78'));}function generateIssuedAt(){return Math['floor'](Date[_0x90df('0x79')]()/0x3e8)[_0x90df('0x77')]();}function createJwt(_0x50103e){var _0x25bb29={'payload':{'iat':_0x50103e[_0x90df('0x5f')],'nonce':_0x50103e[_0x90df('0x4b')]},'options':{'algorithm':_0x90df('0x7a'),'subject':_0x50103e['id']['toString'](),'issuer':hardwareConf['getUuid'](),'audience':hardwareConf['getUuid']()}};return signJwt(_0x25bb29)['then'](function(_0x769024){return{'iat':_0x50103e['apiKeyIat'],'nonce':_0x50103e[_0x90df('0x4b')],'token':_0x769024};});}
\ No newline at end of file
+var _0xa206=['bluebird','util','moment','session','role','fullname','name','email','userpic','permissions','md5secret','voicePause','smsPause','openchannelPause','lastLoginAt','lastPauseAt','crudPermissions','allowmessenger','passwordResetAt','alias','phoneBarAutoAnswerDelay','phoneBarEnableDtmfTone','phoneBarEnableSettings','phoneBarExpires','phoneBarPrefixRequired','phoneBarRemoteControl','phoneBarRemoteControlPort','hotdesk','interface','userProfileId','privacyEnabled','settingsEnabled','wssPort','downloadVoiceRecordings','downloadOmnichannelInteractions','downloadAttachments','isChatInteractionAuthorized','use','user','ChatInteraction','findOne','params','closed','disposition','then','unmanaged','json','Unmanaged.','Forbidden.','catch','isAuthenticated','headers','authorization','User','find','authenticate','status','Wrong\x20credentials.','startsWith','Bearer','Unknown\x20authorization\x20format','query','apikey','getUuid','sub','allowedLoginAttempts','blockDuration','isEqual','nonce','API\x20access\x20key\x20is\x20not\x20valid\x20anymore','disabled','blocked','blockedAt','add','minutes','Invalid\x20API\x20access\x20key','User\x20object\x20not\x20found.','getLicense','update','isMiddleware','signToken','setTokenCookie','It\x20looks\x20like\x20you\x20aren\x27t\x20logged\x20in,\x20please\x20try\x20again.','cookie','redirect','send','retrieveApiKey','isNil','apiKeyNonce','apiKeyIat','generateApiKey','validatePasswordPattern','test','Sequelize','ValidationError','split','toLowerCase','format','The\x20password\x20must\x20be\x20different\x20from\x20the\x20previous\x20%d\x20passwords.\x20Please\x20choose\x20another\x20one.','The\x20password\x20must\x20be\x20different\x20from\x20the\x20last\x20one.\x20Please\x20choose\x20another\x20one.','decryptString','length','unshift','join','promisify','sign','secret','secrets','payload','options','randomBytes','toString','floor','now','HS512','../../mysqldb','../../config/license/util','../encryptor','lodash','jsonwebtoken','basic-auth','crypto'];(function(_0x36fe9b,_0x518d1b){var _0x113065=function(_0x4f78d4){while(--_0x4f78d4){_0x36fe9b['push'](_0x36fe9b['shift']());}};_0x113065(++_0x518d1b);}(_0xa206,0xed));var _0x6a20=function(_0x11f8ab,_0x14c79c){_0x11f8ab=_0x11f8ab-0x0;var _0xe10e93=_0xa206[_0x11f8ab];return _0xe10e93;};'use strict';var db=require(_0x6a20('0x0'))['db'];var config=require('../../config/environment');var hardwareConf=require('../../config/license/hardware');var licenseUtil=require(_0x6a20('0x1'));var encryptor=require(_0x6a20('0x2'));var _=require(_0x6a20('0x3'));var jwt=require(_0x6a20('0x4'));var expressJwt=require('express-jwt');var compose=require('composable-middleware');var basicAuth=require(_0x6a20('0x5'));var crypto=require(_0x6a20('0x6'));var BPromise=require(_0x6a20('0x7'));var util=require(_0x6a20('0x8'));var moment=require(_0x6a20('0x9'));var validateJwt=expressJwt({'secret':config['secrets'][_0x6a20('0xa')]});var userAttributes=['id',_0x6a20('0xb'),_0x6a20('0xc'),_0x6a20('0xd'),'internal',_0x6a20('0xe'),_0x6a20('0xf'),_0x6a20('0x10'),_0x6a20('0x11'),_0x6a20('0x12'),'chatPause','mailPause','faxPause',_0x6a20('0x13'),_0x6a20('0x14'),'pauseType','showWebBar',_0x6a20('0x15'),_0x6a20('0x16'),_0x6a20('0x17'),_0x6a20('0x18'),_0x6a20('0x19'),_0x6a20('0x1a'),'phoneBarAutoAnswer',_0x6a20('0x1b'),'phoneBarDnd','phoneBarEnableRecording',_0x6a20('0x1c'),_0x6a20('0x1d'),_0x6a20('0x1e'),_0x6a20('0x1f'),_0x6a20('0x20'),_0x6a20('0x21'),_0x6a20('0x22'),_0x6a20('0x23'),_0x6a20('0x24'),_0x6a20('0x25'),_0x6a20('0x26'),_0x6a20('0x27'),_0x6a20('0x28'),_0x6a20('0x29'),_0x6a20('0x2a')];exports[_0x6a20('0x2b')]=function(){return this['isAuthenticated'](!![])[_0x6a20('0x2c')](function(_0x1e6eae,_0x2d88b5,_0x1a819c){if(_0x1e6eae[_0x6a20('0x2d')]){_0x1a819c();}else{return db[_0x6a20('0x2e')][_0x6a20('0x2f')]({'where':{'id':_0x1e6eae[_0x6a20('0x30')]['id']},'attributes':['id',_0x6a20('0x31'),_0x6a20('0x32')],'raw':!![]})[_0x6a20('0x33')](function(_0x3f23ad){if(_0x3f23ad&&_0x3f23ad[_0x6a20('0x31')]){return _0x2d88b5['status'](_0x3f23ad['disposition']===_0x6a20('0x34')?0x195:0x193)[_0x6a20('0x35')]({'message':_0x3f23ad[_0x6a20('0x32')]===_0x6a20('0x34')?_0x6a20('0x36'):_0x6a20('0x37')});}else{_0x1a819c();}})[_0x6a20('0x38')](function(_0x368e99){_0x1a819c(_0x368e99);});}});};exports[_0x6a20('0x39')]=function isAuthenticated(_0x163b2b){return compose()['use'](function(_0xb0dee,_0x1e36e1,_0x591fe5){var _0x3245cd;if(_0xb0dee[_0x6a20('0x3a')][_0x6a20('0x3b')]){if(_['startsWith'](_0xb0dee['headers']['authorization'],'Basic')){var _0x3a4804=basicAuth(_0xb0dee);db[_0x6a20('0x3c')][_0x6a20('0x3d')]({'where':{'name':_0x3a4804[_0x6a20('0xd')]}})[_0x6a20('0x33')](function(_0x5d82bd){if(!_0x5d82bd||!_0x5d82bd[_0x6a20('0x3e')](_0x3a4804['pass'])){return _0x1e36e1[_0x6a20('0x3f')](0x191)[_0x6a20('0x35')]({'message':_0x6a20('0x40')});}_0xb0dee['user']={'id':_0x5d82bd['id']};_0x591fe5();})[_0x6a20('0x38')](function(_0x20f28d){_0x591fe5(_0x20f28d);});}else if(_[_0x6a20('0x41')](_0xb0dee[_0x6a20('0x3a')][_0x6a20('0x3b')],_0x6a20('0x42'))){validateJwt(_0xb0dee,_0x1e36e1,_0x591fe5);}else{if(_0x163b2b){_0x591fe5();}else{return _0x1e36e1[_0x6a20('0x3f')](0x193)[_0x6a20('0x35')]({'message':_0x6a20('0x43')});}}}else if(_0xb0dee[_0x6a20('0x44')][_0x6a20('0x45')]){try{var _0x29b6d5={'audience':hardwareConf[_0x6a20('0x46')](),'issuer':hardwareConf[_0x6a20('0x46')]()};verifyJwt(_0xb0dee['query'][_0x6a20('0x45')],_0x29b6d5)[_0x6a20('0x33')](function(_0xa5a5ae){return db['User']['find']({'where':{'id':_0xa5a5ae[_0x6a20('0x47')]}})[_0x6a20('0x33')](function(_0x354230){_0x3245cd=_0x354230;return db['Setting'][_0x6a20('0x2f')]({'where':{'id':0x1},'attributes':[_0x6a20('0x48'),_0x6a20('0x49')],'raw':!![]});})['then'](function(_0x2caad2){if(!_0x3245cd||!_[_0x6a20('0x4a')](_0x3245cd['apiKeyNonce'],_0xa5a5ae[_0x6a20('0x4b')])){return _0x1e36e1['status'](0x191)[_0x6a20('0x35')]({'message':_0x6a20('0x4c')});}if(_0x3245cd[_0x6a20('0x4d')]){return _0x1e36e1['status'](0x191)[_0x6a20('0x35')]({'message':'Invalid\x20API\x20access\x20key'});}if(_0x3245cd[_0x6a20('0x4e')]){if(_0x2caad2[_0x6a20('0x49')]>0x0){if(moment(_0x3245cd[_0x6a20('0x4f')])[_0x6a20('0x50')](_0x2caad2[_0x6a20('0x49')],_0x6a20('0x51'))>moment()){return _0x1e36e1[_0x6a20('0x3f')](0x191)['json']({'message':_0x6a20('0x52')});}}else{return _0x1e36e1[_0x6a20('0x3f')](0x191)[_0x6a20('0x35')]({'message':_0x6a20('0x52')});}}_0xb0dee[_0x6a20('0x2d')]={'id':_0x3245cd['id']};_0x591fe5();});})['catch'](function(){return _0x1e36e1['status'](0x191)['json']({'message':_0x6a20('0x52')});});}catch(_0xb2d46c){_0x591fe5(_0xb2d46c);}}else if(_0x163b2b){_0x591fe5();}else{return _0x1e36e1[_0x6a20('0x3f')](0x193)[_0x6a20('0x35')]({'message':_0x6a20('0x43')});}})[_0x6a20('0x2c')](function(_0x3ba1c7,_0x112827,_0x39e9b1){if(_0x3ba1c7[_0x6a20('0x2d')]){db[_0x6a20('0x3c')]['find']({'where':{'id':_0x3ba1c7[_0x6a20('0x2d')]['id']},'attributes':userAttributes})[_0x6a20('0x33')](function(_0x67bef5){if(!_0x67bef5){return _0x112827[_0x6a20('0x3f')](0x194)[_0x6a20('0x35')]({'message':'User\x20not\x20found.'});}_0x3ba1c7[_0x6a20('0x2d')]=_0x67bef5;_0x39e9b1();})[_0x6a20('0x38')](function(_0x363ea0){_0x39e9b1(_0x363ea0);});}else if(_0x163b2b){_0x39e9b1();}else{return _0x112827[_0x6a20('0x3f')](0x194)[_0x6a20('0x35')]({'message':_0x6a20('0x53')});}});};exports['canUpdate']=function canUpdate(){return compose()[_0x6a20('0x2c')](function(_0x613f5b,_0xf8a8f3,_0x4a0eda){return licenseUtil[_0x6a20('0x54')]()['then'](function(_0x320bab){if(_0x320bab[_0x6a20('0x55')]){_0x4a0eda();}else{return _0xf8a8f3[_0x6a20('0x3f')](0x193)[_0x6a20('0x35')]({'message':'Forbidden'});}})[_0x6a20('0x38')](function(_0x2e56e4){_0x4a0eda(_0x2e56e4);});});};exports[_0x6a20('0x56')]=function(_0x2a05c6,_0x2bb51e,_0x2522be){_0x2a05c6[_0x6a20('0x56')]=!![];return _0x2522be();};exports[_0x6a20('0x57')]=function signToken(_0x57f668){return signJwt(_0x57f668);};exports[_0x6a20('0x58')]=function(_0x984852,_0x25a9db){if(!_0x984852['user']){return _0x25a9db['status'](0x194)[_0x6a20('0x35')]({'message':_0x6a20('0x59')});}var _0x2b78e6={'payload':{'id':_0x984852['user']['id'],'role':_0x984852[_0x6a20('0x2d')][_0x6a20('0xb')]},'options':{'expiresIn':0x15180}};return signJwt(_0x2b78e6)[_0x6a20('0x33')](function(_0xe2f3cb){_0x25a9db[_0x6a20('0x5a')]('motion.token',_0xe2f3cb);_0x25a9db[_0x6a20('0x5b')]('/dashboards/general');})[_0x6a20('0x38')](function(_0xb83190){return _0x25a9db[_0x6a20('0x3f')](0x1f4)[_0x6a20('0x5c')](_0xb83190);});};exports[_0x6a20('0x5d')]=function(_0x3299f7){if(_[_0x6a20('0x5e')](_0x3299f7[_0x6a20('0x5f')])||_[_0x6a20('0x5e')](_0x3299f7[_0x6a20('0x60')])){return null;}else{return createJwt(_0x3299f7);}};exports[_0x6a20('0x61')]=function(_0x555a18){_0x555a18[_0x6a20('0x5f')]=generateNonce();_0x555a18['apiKeyIat']=generateIssuedAt();return createJwt(_0x555a18);};exports['regenerateApiKey']=function(_0x3e315,_0x276d49){var _0x21912e=_0x3e315[_0x6a20('0x44')][_0x6a20('0x45')];if(_0x21912e){var _0x2761b2={'nonce':_0x276d49['apiKeyNonce'],'iat':_0x276d49[_0x6a20('0x60')],'audience':hardwareConf[_0x6a20('0x46')](),'issuer':hardwareConf[_0x6a20('0x46')]()};return verifyJwt(_0x21912e,_0x2761b2)[_0x6a20('0x33')](function(){return generateApiKey(_0x276d49);});}else{throw{'message':'Please\x20use\x20the\x20previous\x20API\x20access\x20key\x20to\x20generate\x20a\x20new\x20one'};}};exports[_0x6a20('0x62')]=function(_0x1fe990){var _0x346dab=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(!_0x346dab[_0x6a20('0x63')](_0x1fe990))throw new db[(_0x6a20('0x64'))][(_0x6a20('0x65'))]('The\x20password\x20must\x20be\x20at\x20least\x208\x20characters\x20long\x20and\x20have\x201\x20lowercase\x20character,\x201\x20uppercase\x20character,\x201\x20number\x20and\x201\x20special\x20character\x20~!@#$%^&-_=+[{]}.');return;};exports['validatePasswordHistory']=function(_0x9f2544,_0x18af59,_0x3a37b1){var _0x42086c=encryptor['decryptString'](_0x18af59)[_0x6a20('0x66')](',');for(var _0x40a67e=0x0;_0x40a67e<_0x3a37b1;_0x40a67e++){if(!_0x42086c[_0x40a67e])break;if(_0x9f2544['toLowerCase']()===_0x42086c[_0x40a67e][_0x6a20('0x67')]()){var _0x49481d=util[_0x6a20('0x68')](_0x6a20('0x69'),_0x3a37b1);if(_0x3a37b1===0x1){_0x49481d=_0x6a20('0x6a');}throw new db[(_0x6a20('0x64'))]['ValidationError'](_0x49481d);}}return;};exports['updatePasswordsHistory']=function(_0x6ad9ef,_0x1e4290){var _0x197567=_0x1e4290?encryptor[_0x6a20('0x6b')](_0x1e4290)['split'](','):[];if(_0x197567[_0x6a20('0x6c')]===0x5){_0x197567['splice'](-0x1,0x1);}_0x197567[_0x6a20('0x6d')](_0x6ad9ef);return encryptor['encryptString'](_0x197567[_0x6a20('0x6e')](','));};function signJwt(_0x3cad03){var _0xbdabe1=BPromise[_0x6a20('0x6f')](jwt[_0x6a20('0x70')],{'context':jwt});var _0x3118db=_0x3cad03[_0x6a20('0x71')]||config[_0x6a20('0x72')][_0x6a20('0xa')];return new BPromise(function(_0x58754c,_0x852800){_0xbdabe1(_0x3cad03[_0x6a20('0x73')],_0x3118db,_0x3cad03[_0x6a20('0x74')])[_0x6a20('0x33')](function(_0x709693){_0x58754c(_0x709693);})[_0x6a20('0x38')](function(_0x1caaa2){_0x852800(_0x1caaa2);});});}function verifyJwt(_0x5bb2c4,_0x3cf03d,_0x98b85d){var _0x51f264=BPromise[_0x6a20('0x6f')](jwt['verify'],{'context':jwt});var _0x11d014=_0x98b85d||config[_0x6a20('0x72')][_0x6a20('0xa')];return new BPromise(function(_0x4db820,_0x3abf15){_0x51f264(_0x5bb2c4,_0x11d014,_0x3cf03d)['then'](function(_0x2edab2){_0x4db820(_0x2edab2);})[_0x6a20('0x38')](function(_0x21ae8e){_0x3abf15(_0x21ae8e);});});}function generateNonce(){return crypto[_0x6a20('0x75')](0x10)[_0x6a20('0x76')]('hex');}function generateIssuedAt(){return Math[_0x6a20('0x77')](Date[_0x6a20('0x78')]()/0x3e8)[_0x6a20('0x76')]();}function createJwt(_0x185655){var _0x45f6d1={'payload':{'iat':_0x185655[_0x6a20('0x60')],'nonce':_0x185655[_0x6a20('0x5f')]},'options':{'algorithm':_0x6a20('0x79'),'subject':_0x185655['id'][_0x6a20('0x76')](),'issuer':hardwareConf[_0x6a20('0x46')](),'audience':hardwareConf[_0x6a20('0x46')]()}};return signJwt(_0x45f6d1)[_0x6a20('0x33')](function(_0xbc3cc3){return{'iat':_0x185655[_0x6a20('0x60')],'nonce':_0x185655[_0x6a20('0x5f')],'token':_0xbc3cc3};});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0814=['utf8','base64','decryptString','secret','crypto','bluebird','lodash','../../config/logger','app','secrets','session','aes-256-ctr','encrypt','algorithm','join','error','is\x20not\x20a\x20supported\x20algorithm.\x20Your\x20system\x20supports\x20the\x20following\x20algorithms:','filter','indexOf','hasOwnProperty','createReadStream','createWriteStream','createCipher','data','update','binary','write','end','final','close','unlink','decryptFile','createDecipher','encryptString'];(function(_0x208e71,_0x5b82aa){var _0x552f6d=function(_0x336526){while(--_0x336526){_0x208e71['push'](_0x208e71['shift']());}};_0x552f6d(++_0x5b82aa);}(_0x0814,0x8c));var _0x4081=function(_0x26cdec,_0x1ad0a1){_0x26cdec=_0x26cdec-0x0;var _0x59f442=_0x0814[_0x26cdec];return _0x59f442;};'use strict';var crypto=require(_0x4081('0x0'));var fs=require('fs');var BPromise=require(_0x4081('0x1'));var _=require(_0x4081('0x2'));var config=require('../../config/environment');var logger=require(_0x4081('0x3'))(_0x4081('0x4'));const AES_SUPPORTED_RX=/^aes(-)?\d{3}(-(cbc|cfb|ctr)(1|8)?){0,1}$/;const stringOptions={'secret':config[_0x4081('0x5')][_0x4081('0x6')],'algorithm':_0x4081('0x7')};const fileOptions={'algorithm':'aes192'};if(config[_0x4081('0x8')]&&config[_0x4081('0x8')][_0x4081('0x9')]){var isSupported=isAlgorithmSupported(config[_0x4081('0x8')][_0x4081('0x9')]);if(isSupported){fileOptions['algorithm']=config[_0x4081('0x8')][_0x4081('0x9')];}else{var supportedAlgorithms=getSupportedCiphers()[_0x4081('0xa')](',\x20');logger[_0x4081('0xb')](config[_0x4081('0x8')][_0x4081('0x9')],_0x4081('0xc'),supportedAlgorithms);}}function isASupportedCipher(_0x5abd5f){return AES_SUPPORTED_RX['test'](_0x5abd5f);}function getSupportedCiphers(){return crypto['getCiphers']()[_0x4081('0xd')](isASupportedCipher);}function isAlgorithmSupported(_0x48a96f){return getSupportedCiphers()[_0x4081('0xe')](_0x48a96f)>-0x1;}function combineOptions(_0x25a4d7){var _0x505922={};for(var _0x28d3c7 in fileOptions){if(fileOptions[_0x4081('0xf')](_0x28d3c7)){_0x505922[_0x28d3c7]=fileOptions[_0x28d3c7];}}if(_0x25a4d7){for(var _0x123c3e in _0x25a4d7){if(_0x25a4d7[_0x4081('0xf')](_0x123c3e)){_0x505922[_0x123c3e]=_0x25a4d7[_0x123c3e];}}}return _0x505922;}exports['encryptFile']=function(_0x525314,_0x62c210,_0x3bc9dc,_0xbb71f2){return new BPromise(function(_0x5aa3c1,_0x409a8b){_0xbb71f2=combineOptions(_0xbb71f2);var _0x2c147d=new Buffer(_0x3bc9dc);var _0x2d8684=fs[_0x4081('0x10')](_0x525314);var _0x148e70=fs[_0x4081('0x11')](_0x62c210);var _0x41bd54=crypto[_0x4081('0x12')](_0xbb71f2[_0x4081('0x9')],_0x2c147d);_0x2d8684['on'](_0x4081('0x13'),function(_0x2b83fe){var _0xe053ef=new Buffer(_0x41bd54[_0x4081('0x14')](_0x2b83fe),_0x4081('0x15'));_0x148e70[_0x4081('0x16')](_0xe053ef);});_0x2d8684['on'](_0x4081('0x17'),function(){try{var _0x1607d9=new Buffer(_0x41bd54[_0x4081('0x18')](_0x4081('0x15')),_0x4081('0x15'));_0x148e70['write'](_0x1607d9);_0x148e70[_0x4081('0x17')]();_0x148e70['on'](_0x4081('0x19'),function(){return _0x5aa3c1(_0x62c210);});}catch(_0x522c60){fs[_0x4081('0x1a')](_0x62c210);return _0x409a8b(_0x522c60);}});});};exports[_0x4081('0x1b')]=function(_0x26e297,_0x20460f,_0x2b465c,_0x363fe5){return new BPromise(function(_0x5c9bf8,_0x778aa){_0x363fe5=combineOptions(_0x363fe5);var _0x27a628=new Buffer(_0x2b465c);var _0xcba145=fs[_0x4081('0x10')](_0x26e297);var _0x360fb2=fs[_0x4081('0x11')](_0x20460f);var _0x493d90=crypto[_0x4081('0x1c')](_0x363fe5[_0x4081('0x9')],_0x27a628);_0xcba145['on'](_0x4081('0x13'),function(_0x1a88d2){var _0x56047b=new Buffer(_0x493d90[_0x4081('0x14')](_0x1a88d2),_0x4081('0x15'));_0x360fb2[_0x4081('0x16')](_0x56047b);});_0xcba145['on'](_0x4081('0x17'),function(){try{var _0x442b4e=new Buffer(_0x493d90[_0x4081('0x18')](_0x4081('0x15')),_0x4081('0x15'));_0x360fb2[_0x4081('0x16')](_0x442b4e);_0x360fb2[_0x4081('0x17')]();_0x360fb2['on']('close',function(){return _0x5c9bf8(_0x20460f);});}catch(_0x421907){fs[_0x4081('0x1a')](_0x20460f);return _0x778aa(_0x421907);}});});};exports[_0x4081('0x1d')]=function(_0x5aff61,_0x83bc,_0x51ac62){var _0x478662=_0x51ac62||stringOptions[_0x4081('0x9')];var _0x13a05b=_0x83bc||stringOptions['secret'];var _0x516e60=crypto[_0x4081('0x12')](_0x478662,_0x13a05b);var _0x2dc13e=_0x516e60[_0x4081('0x14')](_0x5aff61,_0x4081('0x1e'),_0x4081('0x1f'));_0x2dc13e+=_0x516e60[_0x4081('0x18')](_0x4081('0x1f'));return _0x2dc13e;};exports[_0x4081('0x20')]=function(_0x5d4e0b,_0x579171,_0x1ad47a){var _0x4a5ac3=_0x1ad47a||stringOptions[_0x4081('0x9')];var _0x511507=_0x579171||stringOptions[_0x4081('0x21')];var _0x4f1f4e=crypto[_0x4081('0x1c')](_0x4a5ac3,_0x511507);var _0x31de27=_0x4f1f4e[_0x4081('0x14')](_0x5d4e0b,_0x4081('0x1f'),_0x4081('0x1e'));_0x31de27+=_0x4f1f4e[_0x4081('0x18')]('utf8');return _0x31de27;};
\ No newline at end of file
+var _0xef88=['encryptString','createCipher','utf8','base64','decryptString','secret','createDecipher','bluebird','lodash','../../config/environment','../../config/logger','app','session','aes192','encrypt','algorithm','is\x20not\x20a\x20supported\x20algorithm.\x20Your\x20system\x20supports\x20the\x20following\x20algorithms:','test','filter','indexOf','hasOwnProperty','encryptFile','createReadStream','data','update','binary','end','final','write','decryptFile','createWriteStream','close'];(function(_0x3e2ae7,_0x338ad3){var _0x26c1db=function(_0x3a836f){while(--_0x3a836f){_0x3e2ae7['push'](_0x3e2ae7['shift']());}};_0x26c1db(++_0x338ad3);}(_0xef88,0xe7));var _0x8ef8=function(_0x153663,_0x3ef313){_0x153663=_0x153663-0x0;var _0xfcdd26=_0xef88[_0x153663];return _0xfcdd26;};'use strict';var crypto=require('crypto');var fs=require('fs');var BPromise=require(_0x8ef8('0x0'));var _=require(_0x8ef8('0x1'));var config=require(_0x8ef8('0x2'));var logger=require(_0x8ef8('0x3'))(_0x8ef8('0x4'));const AES_SUPPORTED_RX=/^aes(-)?\d{3}(-(cbc|cfb|ctr)(1|8)?){0,1}$/;const stringOptions={'secret':config['secrets'][_0x8ef8('0x5')],'algorithm':'aes-256-ctr'};const fileOptions={'algorithm':_0x8ef8('0x6')};if(config[_0x8ef8('0x7')]&&config[_0x8ef8('0x7')][_0x8ef8('0x8')]){var isSupported=isAlgorithmSupported(config[_0x8ef8('0x7')][_0x8ef8('0x8')]);if(isSupported){fileOptions['algorithm']=config['encrypt']['algorithm'];}else{var supportedAlgorithms=getSupportedCiphers()['join'](',\x20');logger['error'](config[_0x8ef8('0x7')][_0x8ef8('0x8')],_0x8ef8('0x9'),supportedAlgorithms);}}function isASupportedCipher(_0x4cc865){return AES_SUPPORTED_RX[_0x8ef8('0xa')](_0x4cc865);}function getSupportedCiphers(){return crypto['getCiphers']()[_0x8ef8('0xb')](isASupportedCipher);}function isAlgorithmSupported(_0x183752){return getSupportedCiphers()[_0x8ef8('0xc')](_0x183752)>-0x1;}function combineOptions(_0x2efea0){var _0x365aea={};for(var _0x2c51d5 in fileOptions){if(fileOptions[_0x8ef8('0xd')](_0x2c51d5)){_0x365aea[_0x2c51d5]=fileOptions[_0x2c51d5];}}if(_0x2efea0){for(var _0x1b5e52 in _0x2efea0){if(_0x2efea0['hasOwnProperty'](_0x1b5e52)){_0x365aea[_0x1b5e52]=_0x2efea0[_0x1b5e52];}}}return _0x365aea;}exports[_0x8ef8('0xe')]=function(_0x160a11,_0x2cd79b,_0x2e2be6,_0x208318){return new BPromise(function(_0x202ea2,_0x1ac6db){_0x208318=combineOptions(_0x208318);var _0x5123b3=new Buffer(_0x2e2be6);var _0x401d9a=fs[_0x8ef8('0xf')](_0x160a11);var _0x2037ce=fs['createWriteStream'](_0x2cd79b);var _0x5501cd=crypto['createCipher'](_0x208318[_0x8ef8('0x8')],_0x5123b3);_0x401d9a['on'](_0x8ef8('0x10'),function(_0x2550c4){var _0x18fa8b=new Buffer(_0x5501cd[_0x8ef8('0x11')](_0x2550c4),_0x8ef8('0x12'));_0x2037ce['write'](_0x18fa8b);});_0x401d9a['on'](_0x8ef8('0x13'),function(){try{var _0x141a36=new Buffer(_0x5501cd[_0x8ef8('0x14')]('binary'),_0x8ef8('0x12'));_0x2037ce[_0x8ef8('0x15')](_0x141a36);_0x2037ce[_0x8ef8('0x13')]();_0x2037ce['on']('close',function(){return _0x202ea2(_0x2cd79b);});}catch(_0x130671){fs['unlink'](_0x2cd79b);return _0x1ac6db(_0x130671);}});});};exports[_0x8ef8('0x16')]=function(_0x3d963d,_0x341660,_0x428283,_0x264c9c){return new BPromise(function(_0x1ee821,_0x1387f8){_0x264c9c=combineOptions(_0x264c9c);var _0x440a79=new Buffer(_0x428283);var _0x3607bb=fs[_0x8ef8('0xf')](_0x3d963d);var _0x5e4c22=fs[_0x8ef8('0x17')](_0x341660);var _0x1d5c92=crypto['createDecipher'](_0x264c9c[_0x8ef8('0x8')],_0x440a79);_0x3607bb['on'](_0x8ef8('0x10'),function(_0x268598){var _0x381b5b=new Buffer(_0x1d5c92[_0x8ef8('0x11')](_0x268598),_0x8ef8('0x12'));_0x5e4c22[_0x8ef8('0x15')](_0x381b5b);});_0x3607bb['on'](_0x8ef8('0x13'),function(){try{var _0x174a6f=new Buffer(_0x1d5c92['final'](_0x8ef8('0x12')),'binary');_0x5e4c22[_0x8ef8('0x15')](_0x174a6f);_0x5e4c22[_0x8ef8('0x13')]();_0x5e4c22['on'](_0x8ef8('0x18'),function(){return _0x1ee821(_0x341660);});}catch(_0x51b8f7){fs['unlink'](_0x341660);return _0x1387f8(_0x51b8f7);}});});};exports[_0x8ef8('0x19')]=function(_0x8df66d,_0xcaa7a9,_0x4c36c5){var _0x3370d5=_0x4c36c5||stringOptions[_0x8ef8('0x8')];var _0x24ec91=_0xcaa7a9||stringOptions['secret'];var _0x495a10=crypto[_0x8ef8('0x1a')](_0x3370d5,_0x24ec91);var _0x1420c2=_0x495a10[_0x8ef8('0x11')](_0x8df66d,_0x8ef8('0x1b'),_0x8ef8('0x1c'));_0x1420c2+=_0x495a10[_0x8ef8('0x14')](_0x8ef8('0x1c'));return _0x1420c2;};exports[_0x8ef8('0x1d')]=function(_0x1f9c95,_0x5f289a,_0x19ac77){var _0x51fd29=_0x19ac77||stringOptions[_0x8ef8('0x8')];var _0xbde1b5=_0x5f289a||stringOptions[_0x8ef8('0x1e')];var _0x42fb6c=crypto[_0x8ef8('0x1f')](_0x51fd29,_0xbde1b5);var _0x21bcb4=_0x42fb6c[_0x8ef8('0x11')](_0x1f9c95,_0x8ef8('0x1c'),_0x8ef8('0x1b'));_0x21bcb4+=_0x42fb6c['final'](_0x8ef8('0x1b'));return _0x21bcb4;};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x81de=['%s\x20limit\x20%d\x20OFFSET\x20%d','QueryTypes','push','dirname','.csv','join','mkdirSync','%s%d.%s','csv','%s.%s','zip\x20finished','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','Completed','zip','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','exit','util','path','lodash','to-csv','bluebird','zip-dir','rimraf','../../mysqldb','../../config/logger','analytics','argv','savename','AnalyticExtractedReport','info','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','CSV','Setting','splitSizeCsv','then','query','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','SELECT','Empty','length','range','num','isInteger','forEach','sequelize'];(function(_0x504b54,_0x282c60){var _0x33f872=function(_0x159f39){while(--_0x159f39){_0x504b54['push'](_0x504b54['shift']());}};_0x33f872(++_0x282c60);}(_0x81de,0x15a));var _0xe81d=function(_0x531c06,_0x153598){_0x531c06=_0x531c06-0x0;var _0x59926e=_0x81de[_0x531c06];return _0x59926e;};'use strict';var util=require(_0xe81d('0x0'));var path=require(_0xe81d('0x1'));var _=require(_0xe81d('0x2'));var csv=require(_0xe81d('0x3'));var fs=require('fs');var BPromise=require(_0xe81d('0x4'));var zipdir=require(_0xe81d('0x5'));var rimraf=require(_0xe81d('0x6'));var db=require('../../mysqldb')['db'];var dbH=require(_0xe81d('0x7'))['dbH'];var logger=require(_0xe81d('0x8'))(_0xe81d('0x9'));var EXTRACTED_REPORT_ID=Number(process[_0xe81d('0xa')][0x2]);var QUERY=process[_0xe81d('0xa')][0x3];var PATH=process[_0xe81d('0xa')][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x773176,_0x341853){var _0x101ca0={'status':_0x773176};var _0x4952a8={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x341853){_0x101ca0[_0xe81d('0xb')]=_0x341853;}return db[_0xe81d('0xc')]['update'](_0x101ca0,_0x4952a8);}function main(){var _0x2eae05=0x1388;var _0x29f9a2;logger[_0xe81d('0xd')](util[_0xe81d('0xe')](_0xe81d('0xf'),EXTRACTED_REPORT_ID,_0xe81d('0x10')));return db[_0xe81d('0x11')]['find']({'where':{'id':0x1},'raw':!![],'attributes':['id','split',_0xe81d('0x12')]})['then'](function(_0x244b51){if(_0x244b51){_0x29f9a2=_0x244b51;_0x2eae05=_0x29f9a2[_0xe81d('0x12')]||0x1388;}})[_0xe81d('0x13')](function(){return dbH['sequelize'][_0xe81d('0x14')](util[_0xe81d('0xe')](_0xe81d('0x15'),QUERY),{'type':dbH['sequelize']['QueryTypes'][_0xe81d('0x16')]});})['then'](function(_0x31a0bf){if(!_0x31a0bf[0x0]['num']){return analyticExtractedReport(_0xe81d('0x17'));}var _0x310220=[];var _0x517f68=0x0;if(_0x29f9a2['split']){if(_0x31a0bf&&_0x31a0bf[_0xe81d('0x18')]){var _0x4f0b8c=_[_0xe81d('0x19')](_0x31a0bf[0x0][_0xe81d('0x1a')]/_0x2eae05);var _0x39f3ce=Number[_0xe81d('0x1b')](_0x31a0bf[0x0][_0xe81d('0x1a')]/_0x2eae05)?_0x31a0bf[0x0][_0xe81d('0x1a')]%_0x2eae05:0x0;_0x4f0b8c[_0xe81d('0x1c')](function(_0xd1351e){if(_0xd1351e>0x0){_0x517f68+=_0x2eae05;}_0x310220['push'](dbH[_0xe81d('0x1d')][_0xe81d('0x14')](util[_0xe81d('0xe')](_0xe81d('0x1e'),QUERY,_0x2eae05,_0x517f68),{'type':dbH[_0xe81d('0x1d')][_0xe81d('0x1f')][_0xe81d('0x16')]}));});if(_0x39f3ce>0x0){_0x517f68+=_0x2eae05;_0x310220['push'](dbH[_0xe81d('0x1d')][_0xe81d('0x14')](util[_0xe81d('0xe')](_0xe81d('0x1e'),QUERY,_0x39f3ce,_0x517f68),{'type':dbH[_0xe81d('0x1d')][_0xe81d('0x1f')][_0xe81d('0x16')]}));}}}else{_0x310220[_0xe81d('0x20')](dbH[_0xe81d('0x1d')][_0xe81d('0x14')](QUERY,{'type':dbH[_0xe81d('0x1d')][_0xe81d('0x1f')][_0xe81d('0x16')]}));}var _0x2361fc=path[_0xe81d('0x21')](PATH);var _0x42e13f=path['basename'](PATH,_0xe81d('0x22'));var _0x4089f7=_0x29f9a2['split']&&_0x310220[_0xe81d('0x18')]>0x1;var _0x59f1da=[];if(!fs['existsSync'](path[_0xe81d('0x23')](_0x2361fc,_0x42e13f))&&_0x4089f7){fs[_0xe81d('0x24')](path[_0xe81d('0x23')](_0x2361fc,_0x42e13f));}return BPromise['each'](_0x310220,function(_0x222b31){_0x59f1da[_0xe81d('0x20')](_0x222b31);})['then'](function(){for(var _0x7cbf33=0x0;_0x7cbf33<_0x59f1da[_0xe81d('0x18')];_0x7cbf33+=0x1){var _0x47d5e7;var _0x468fee=_0x59f1da[_0x7cbf33];if(_0x4089f7){_0x47d5e7=path['join'](_0x2361fc,_0x42e13f,util[_0xe81d('0xe')](_0xe81d('0x25'),_0x42e13f,_0x7cbf33,_0xe81d('0x26')));}else{_0x47d5e7=path['join'](_0x2361fc,util[_0xe81d('0xe')](_0xe81d('0x27'),_0x42e13f,_0xe81d('0x26')));}fs['writeFileSync'](_0x47d5e7,csv(_0x468fee));}})[_0xe81d('0x13')](function(){if(_0x4089f7){return new Promise(function(_0x38bd9f){zipdir(path[_0xe81d('0x23')](_0x2361fc,_0x42e13f),{'saveTo':path[_0xe81d('0x23')](_0x2361fc,util['format']('%s.%s',_0x42e13f,'zip'))},function(_0x5e3d75,_0x91830){rimraf(path[_0xe81d('0x23')](_0x2361fc,_0x42e13f),function(){});_0x38bd9f(_0xe81d('0x28'));});});}})[_0xe81d('0x13')](function(){logger[_0xe81d('0xd')](util[_0xe81d('0xe')](_0xe81d('0x29'),EXTRACTED_REPORT_ID,_0xe81d('0x10')));return analyticExtractedReport(_0xe81d('0x2a'),_0x4089f7?util[_0xe81d('0xe')]('%s.%s',_0x42e13f,_0x4089f7?_0xe81d('0x2b'):_0xe81d('0x26')):null);});})[_0xe81d('0x2c')](function(_0x11232b){logger[_0xe81d('0xd')](util[_0xe81d('0xe')](_0xe81d('0x2d'),EXTRACTED_REPORT_ID,'CSV'),util['inspect'](_0x11232b,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport('Failed');})['finally'](function(){process[_0xe81d('0x2e')](EXIT_CODE);});}main();
\ No newline at end of file
+var _0xdb94=['rimraf','../../mysqldb','../../config/logger','argv','savename','AnalyticExtractedReport','update','info','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','CSV','find','split','sequelize','query','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','QueryTypes','SELECT','num','Empty','push','%s\x20limit\x20%d\x20OFFSET\x20%d','dirname','.csv','length','existsSync','join','each','then','%s%d.%s','csv','%s.%s','writeFileSync','zip','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','Completed','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect','finally','util','path','lodash','to-csv','bluebird'];(function(_0x365d14,_0x235cfd){var _0x35cadb=function(_0xa95f8c){while(--_0xa95f8c){_0x365d14['push'](_0x365d14['shift']());}};_0x35cadb(++_0x235cfd);}(_0xdb94,0xab));var _0x4db9=function(_0x33c1a7,_0x59d695){_0x33c1a7=_0x33c1a7-0x0;var _0x3a26e6=_0xdb94[_0x33c1a7];return _0x3a26e6;};'use strict';var util=require(_0x4db9('0x0'));var path=require(_0x4db9('0x1'));var _=require(_0x4db9('0x2'));var csv=require(_0x4db9('0x3'));var fs=require('fs');var BPromise=require(_0x4db9('0x4'));var zipdir=require('zip-dir');var rimraf=require(_0x4db9('0x5'));var db=require(_0x4db9('0x6'))['db'];var dbH=require('../../mysqldb')['dbH'];var logger=require(_0x4db9('0x7'))('analytics');var EXTRACTED_REPORT_ID=Number(process['argv'][0x2]);var QUERY=process[_0x4db9('0x8')][0x3];var PATH=process['argv'][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x196ede,_0x50c27a){var _0x14deb9={'status':_0x196ede};var _0x26248b={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x50c27a){_0x14deb9[_0x4db9('0x9')]=_0x50c27a;}return db[_0x4db9('0xa')][_0x4db9('0xb')](_0x14deb9,_0x26248b);}function main(){var _0x242116=0x1388;var _0x45c0e4;logger[_0x4db9('0xc')](util[_0x4db9('0xd')](_0x4db9('0xe'),EXTRACTED_REPORT_ID,_0x4db9('0xf')));return db['Setting'][_0x4db9('0x10')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x4db9('0x11'),'splitSizeCsv']})['then'](function(_0x31222b){if(_0x31222b){_0x45c0e4=_0x31222b;_0x242116=_0x45c0e4['splitSizeCsv']||0x1388;}})['then'](function(){return dbH[_0x4db9('0x12')][_0x4db9('0x13')](util['format'](_0x4db9('0x14'),QUERY),{'type':dbH[_0x4db9('0x12')][_0x4db9('0x15')][_0x4db9('0x16')]});})['then'](function(_0x5e04ab){if(!_0x5e04ab[0x0][_0x4db9('0x17')]){return analyticExtractedReport(_0x4db9('0x18'));}var _0x4a037f=[];var _0xadc104=0x0;var _0x4976=!![];if(_0x5e04ab&&_0x5e04ab['length']){var _0x5a85c4=_0x5e04ab[0x0][_0x4db9('0x17')]%(_0xadc104+_0x242116);if(_0x45c0e4[_0x4db9('0x11')]){for(;_0x4976;_0xadc104+=_0x242116,_0x5a85c4=_0x5e04ab[0x0][_0x4db9('0x17')]%(_0xadc104+_0x242116)){if(_0x5a85c4==0x0||_0x5a85c4==_0x5e04ab[0x0][_0x4db9('0x17')]){_0x4976=![];}_0x4a037f[_0x4db9('0x19')](dbH['sequelize'][_0x4db9('0x13')](util[_0x4db9('0xd')](_0x4db9('0x1a'),QUERY,_0x242116,_0xadc104),{'type':dbH['sequelize'][_0x4db9('0x15')][_0x4db9('0x16')]}));}}else{_0x4a037f[_0x4db9('0x19')](dbH['sequelize'][_0x4db9('0x13')](QUERY,{'type':dbH[_0x4db9('0x12')][_0x4db9('0x15')][_0x4db9('0x16')]}));}}var _0xf4f3fe=path[_0x4db9('0x1b')](PATH);var _0x3585d5=path['basename'](PATH,_0x4db9('0x1c'));var _0x3252d0=_0x45c0e4[_0x4db9('0x11')]&&_0x4a037f[_0x4db9('0x1d')]>0x1;var _0x4aaa84=[];if(!fs[_0x4db9('0x1e')](path[_0x4db9('0x1f')](_0xf4f3fe,_0x3585d5))&&_0x3252d0){fs['mkdirSync'](path[_0x4db9('0x1f')](_0xf4f3fe,_0x3585d5));}return BPromise[_0x4db9('0x20')](_0x4a037f,function(_0x2987c6){_0x4aaa84['push'](_0x2987c6);})[_0x4db9('0x21')](function(){for(var _0xd250c5=0x0;_0xd250c5<_0x4aaa84[_0x4db9('0x1d')];_0xd250c5+=0x1){var _0x2d330e;var _0x3f9f7e=_0x4aaa84[_0xd250c5];if(_0x3252d0){_0x2d330e=path[_0x4db9('0x1f')](_0xf4f3fe,_0x3585d5,util[_0x4db9('0xd')](_0x4db9('0x22'),_0x3585d5,_0xd250c5,_0x4db9('0x23')));}else{_0x2d330e=path[_0x4db9('0x1f')](_0xf4f3fe,util[_0x4db9('0xd')](_0x4db9('0x24'),_0x3585d5,_0x4db9('0x23')));}fs[_0x4db9('0x25')](_0x2d330e,csv(_0x3f9f7e));}})['then'](function(){if(_0x3252d0){zipdir(path['join'](_0xf4f3fe,_0x3585d5),{'saveTo':path[_0x4db9('0x1f')](_0xf4f3fe,util[_0x4db9('0xd')](_0x4db9('0x24'),_0x3585d5,_0x4db9('0x26')))},function(_0x2af884,_0x459131){});rimraf(path['join'](_0xf4f3fe,_0x3585d5),function(){});}})[_0x4db9('0x21')](function(){logger['info'](util[_0x4db9('0xd')](_0x4db9('0x27'),EXTRACTED_REPORT_ID,_0x4db9('0xf')));return analyticExtractedReport(_0x4db9('0x28'),_0x3252d0?util[_0x4db9('0xd')]('%s.%s',_0x3585d5,_0x3252d0?'zip':_0x4db9('0x23')):null);});})['catch'](function(_0x337d74){logger[_0x4db9('0xc')](util['format'](_0x4db9('0x29'),EXTRACTED_REPORT_ID,_0x4db9('0xf')),util[_0x4db9('0x2a')](_0x337d74,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport('Failed');})[_0x4db9('0x2b')](function(){process['exit'](EXIT_CODE);});}main();
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9d9a=['pipe','finish','end','path','util','moment','html-to-pdfmake','pdfmake/src/printer','rimraf','jsdom','JSDOM','window','bluebird','../../mysqldb','dbH','analytics','argv','savename','AnalyticExtractedReport','update','map','tableHeader','pick','toString','value','fill','auto','body','push','concat','chunk','keys','forEach','Name:\x20%s\x0aReport:\x20%s\x0aFrom:\x20%s\x20To:\x20%s','name','startDate','format','endDate','length','header','pageBreak','margin','\x20/\x20','footer','Arial','right','num','Empty','Setting','find','splitSizePdf','then','split','range','isInteger','sequelize','query','%s\x20limit\x20%d\x20OFFSET\x20%d','QueryTypes','SELECT','basename','.pdf','existsSync','mkdirSync','join','each','flatten','createPdfKitDocument','%s%d.%s','pdf','all','%s.%s','zip','zip\x20finished','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','PDF','Completed','info','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect','Failed','finally','exit','/fonts/arial-regular.ttf','/fonts/arial-italic.ttf','/fonts/arial-bold-italic.ttf','%s\x20#%d','interactionId','center','Interaction\x20Transcript','\x09\x09XCALLY\x20Motion\x20-\x20%s\x09\x09\x09\x09%d/%d\x09\x09\x09\x09%s'];(function(_0x3bce42,_0x5caf64){var _0x2ce0a2=function(_0x1de5e5){while(--_0x1de5e5){_0x3bce42['push'](_0x3bce42['shift']());}};_0x2ce0a2(++_0x5caf64);}(_0x9d9a,0x1da));var _0xa9d9=function(_0x41188f,_0x43488c){_0x41188f=_0x41188f-0x0;var _0x356950=_0x9d9a[_0x41188f];return _0x356950;};'use strict';var _=require('lodash');var fs=require('fs');var util=require(_0xa9d9('0x0'));var path=require('path');var moment=require(_0xa9d9('0x1'));var htmlToPdfmake=require(_0xa9d9('0x2'));var PdfPrinter=require(_0xa9d9('0x3'));var zipdir=require('zip-dir');var rimraf=require(_0xa9d9('0x4'));var JSDOM=require(_0xa9d9('0x5'))[_0xa9d9('0x6')];var window=new JSDOM('')[_0xa9d9('0x7')];var BPromise=require(_0xa9d9('0x8'));var db=require(_0xa9d9('0x9'))['db'];var dbH=require('../../mysqldb')[_0xa9d9('0xa')];var logger=require('../../config/logger')(_0xa9d9('0xb'));var EXTRACTED_REPORT_ID=Number(process[_0xa9d9('0xc')][0x2]);var QUERY=process[_0xa9d9('0xc')][0x3];var PATH=process[_0xa9d9('0xc')][0x4];var NAME=process[_0xa9d9('0xc')][0x5];var FORMAT='MMMM\x20Do\x20YYYY,\x20h:mm:ss\x20a';var EXTRACTED_REPORT;var EXIT_CODE=0x0;function analyticExtractedReport(_0xe32664,_0x531587){var _0x3a8e0a={'status':_0xe32664};var _0x1989d8={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x531587){_0x3a8e0a[_0xa9d9('0xd')]=_0x531587;}return db[_0xa9d9('0xe')][_0xa9d9('0xf')](_0x3a8e0a,_0x1989d8);}function getHeaders(_0x4739d0){return _[_0xa9d9('0x10')](_0x4739d0,function(_0x5e9a94){return{'text':_0x5e9a94,'style':_0xa9d9('0x11')};});}function getRows(_0x1fd5c1,_0x27f0b5){return _['map'](_0x27f0b5,function(_0x1bfe09){return _(_0x1bfe09)[_0xa9d9('0x12')](_0x1fd5c1)['map'](function(_0x2ca2ad){return _0x2ca2ad?_[_0xa9d9('0x13')](_0x2ca2ad):'';})[_0xa9d9('0x14')]();});}function createTable(_0x2e089e,_0xf490a9){var _0x1d15ee={'widths':_[_0xa9d9('0x15')](Array(_0x2e089e['length']),0x91),'heights':function(_0x46d05d){return _0x46d05d===0x0?_0xa9d9('0x16'):0x32;},'dontBreakRows':!![],'headerRows':0x1,'body':[]};var _0x4d6fdc=getHeaders(_0x2e089e);_0x1d15ee[_0xa9d9('0x17')][_0xa9d9('0x18')](_0x4d6fdc);var _0x427d67=getRows(_0x2e089e,_0xf490a9);_0x1d15ee['body']=_0x1d15ee[_0xa9d9('0x17')][_0xa9d9('0x19')](_0x427d67);return _0x1d15ee;}function createTables(_0x21b522){var _0x19d3da=[];var _0x96a4c5=_[_0xa9d9('0x1a')](Object[_0xa9d9('0x1b')](_0x21b522[0x0]),0x5);_0x96a4c5[_0xa9d9('0x1c')](function(_0x1ea3f0){_0x19d3da[_0xa9d9('0x18')](createTable(_0x1ea3f0,_0x21b522));});return _0x19d3da;}function getPDFDocDefinition(_0x48cf3b){var _0x1bc3a7=util['format'](_0xa9d9('0x1d'),NAME,EXTRACTED_REPORT[_0xa9d9('0x1e')],moment(EXTRACTED_REPORT[_0xa9d9('0x1f')])[_0xa9d9('0x20')](FORMAT),moment(EXTRACTED_REPORT[_0xa9d9('0x21')])[_0xa9d9('0x20')](FORMAT));var _0x4b9296=[];for(var _0x573f0d=0x0;_0x573f0d<_0x48cf3b[_0xa9d9('0x22')];_0x573f0d++){var _0x1a9c26=[];if(_0x573f0d===0x0){_0x1a9c26[_0xa9d9('0x18')]({'text':_0x1bc3a7,'style':_0xa9d9('0x23')});}var _0x5e3d0d={'table':_0x48cf3b[_0x573f0d]};if(_0x573f0d>0x0){_0x5e3d0d[_0xa9d9('0x24')]='before';_0x5e3d0d[_0xa9d9('0x25')]=[0x0,0x46,0x0,0x0];}_0x1a9c26[_0xa9d9('0x18')](_0x5e3d0d);_0x4b9296['push'](_0x1a9c26);}return{'pageSize':'A4','pageOrientation':'landscape','content':_0x4b9296,'footer':function(_0x3bccf4,_0x6e1f10){return{'text':_0x3bccf4[_0xa9d9('0x13')]()+_0xa9d9('0x26')+_0x6e1f10,'style':_0xa9d9('0x27')};},'defaultStyle':{'font':_0xa9d9('0x28')},'styles':{'header':{'fontSize':0x12,'bold':!![],'margin':[0x0,0x0,0x0,0xa]},'tableHeader':{'bold':!![],'fontSize':0xd,'color':'black'},'footer':{'alignment':_0xa9d9('0x29'),'margin':[0x0,0x0,0x28,0x0]}}};}function extractReport(_0x785941){var _0x254c6c=0x1388;var _0x5a40fe;if(!_0x785941[0x0][_0xa9d9('0x2a')]){return analyticExtractedReport(_0xa9d9('0x2b'));}return db[_0xa9d9('0x2c')][_0xa9d9('0x2d')]({'where':{'id':0x1},'raw':!![],'attributes':['id','split',_0xa9d9('0x2e')]})['then'](function(_0x573ffd){if(_0x573ffd){_0x5a40fe=_0x573ffd;_0x254c6c=_0x5a40fe[_0xa9d9('0x2e')]||0x3e8;}})[_0xa9d9('0x2f')](function(){var _0x4a40ae=[];var _0x166126=0x0;if(_0x5a40fe[_0xa9d9('0x30')]){if(_0x785941&&_0x785941[_0xa9d9('0x22')]){var _0x2c4156=_[_0xa9d9('0x31')](_0x785941[0x0]['num']/_0x254c6c);var _0x4a9514=Number[_0xa9d9('0x32')](_0x785941[0x0][_0xa9d9('0x2a')]/_0x254c6c)?_0x785941[0x0][_0xa9d9('0x2a')]%_0x254c6c:0x0;_0x2c4156[_0xa9d9('0x1c')](function(_0x5b6aae){if(_0x5b6aae>0x0){_0x166126+=_0x254c6c;}_0x4a40ae['push'](dbH[_0xa9d9('0x33')][_0xa9d9('0x34')](util[_0xa9d9('0x20')](_0xa9d9('0x35'),QUERY,_0x254c6c,_0x166126),{'type':dbH[_0xa9d9('0x33')][_0xa9d9('0x36')][_0xa9d9('0x37')]}));});if(_0x4a9514>0x0){_0x166126+=_0x254c6c;_0x4a40ae[_0xa9d9('0x18')](dbH[_0xa9d9('0x33')][_0xa9d9('0x34')](util['format'](_0xa9d9('0x35'),QUERY,_0x4a9514,_0x166126),{'type':dbH[_0xa9d9('0x33')][_0xa9d9('0x36')][_0xa9d9('0x37')]}));}}}else{_0x4a40ae[_0xa9d9('0x18')](dbH['sequelize'][_0xa9d9('0x34')](QUERY,{'type':dbH[_0xa9d9('0x33')]['QueryTypes'][_0xa9d9('0x37')]}));}var _0x302c53=path['dirname'](PATH);var _0x33473d=path[_0xa9d9('0x38')](PATH,_0xa9d9('0x39'));var _0x43bc13=_0x5a40fe[_0xa9d9('0x30')]&&_0x4a40ae['length']>0x1;var _0xed7cfe=[];if(!fs[_0xa9d9('0x3a')](path['join'](_0x302c53,_0x33473d))&&_0x43bc13){fs[_0xa9d9('0x3b')](path[_0xa9d9('0x3c')](_0x302c53,_0x33473d));}return BPromise[_0xa9d9('0x3d')](_0x4a40ae,function(_0x5a872d){_0xed7cfe['push'](_0x5a872d);})[_0xa9d9('0x2f')](function(){var _0x3bff95=[];for(var _0x31dc69=0x0;_0x31dc69<_0xed7cfe[_0xa9d9('0x22')];_0x31dc69+=0x1){var _0x46e408=_0xed7cfe[_0x31dc69];var _0x1137e5=createTables(_[_0xa9d9('0x3e')](_0x46e408));var _0x3d1b8b;var _0x2b2d05=getPDFDocDefinition(_0x1137e5);var _0x1f2918=getPDFPrinter();var _0xe40762=_0x1f2918[_0xa9d9('0x3f')](_0x2b2d05);if(_0x43bc13){_0x3d1b8b=path[_0xa9d9('0x3c')](_0x302c53,_0x33473d,util['format'](_0xa9d9('0x40'),_0x33473d,_0x31dc69,_0xa9d9('0x41')));}else{_0x3d1b8b=path[_0xa9d9('0x3c')](_0x302c53,util[_0xa9d9('0x20')]('%s.%s',_0x33473d,'pdf'));}_0x3bff95[_0xa9d9('0x18')](writePDFDocument(_0xe40762,_0x3d1b8b));}return Promise[_0xa9d9('0x42')](_0x3bff95);})['then'](function(){if(_0x43bc13){return new Promise(function(_0x85a538){zipdir(path[_0xa9d9('0x3c')](_0x302c53,_0x33473d),{'saveTo':path[_0xa9d9('0x3c')](_0x302c53,util[_0xa9d9('0x20')](_0xa9d9('0x43'),_0x33473d,_0xa9d9('0x44')))},function(){rimraf(path[_0xa9d9('0x3c')](_0x302c53,_0x33473d),function(){});_0x85a538(_0xa9d9('0x45'));});});}})[_0xa9d9('0x2f')](function(){if(!_0x43bc13)return;rimraf(path[_0xa9d9('0x3c')](_0x302c53,_0x33473d),function(){});})[_0xa9d9('0x2f')](function(){logger['info'](util[_0xa9d9('0x20')](_0xa9d9('0x46'),EXTRACTED_REPORT_ID,_0xa9d9('0x47')));return analyticExtractedReport(_0xa9d9('0x48'),_0x43bc13?util[_0xa9d9('0x20')](_0xa9d9('0x43'),_0x33473d,_0x43bc13?'zip':_0xa9d9('0x41')):null);});});}function main(){if(!EXTRACTED_REPORT_ID)return;logger[_0xa9d9('0x49')](util['format'](_0xa9d9('0x4a'),EXTRACTED_REPORT_ID,_0xa9d9('0x47')));return db[_0xa9d9('0xe')]['findOne']({'where':{'id':EXTRACTED_REPORT_ID}})[_0xa9d9('0x2f')](function(_0x1c71f5){EXTRACTED_REPORT=_0x1c71f5;return dbH[_0xa9d9('0x33')]['query'](util[_0xa9d9('0x20')](_0xa9d9('0x4b'),QUERY),{'type':dbH[_0xa9d9('0x33')][_0xa9d9('0x36')][_0xa9d9('0x37')]});})['then'](extractReport)[_0xa9d9('0x4c')](function(_0x7260c6){logger[_0xa9d9('0x49')](util[_0xa9d9('0x20')](_0xa9d9('0x4d'),EXTRACTED_REPORT_ID,_0xa9d9('0x47')),util[_0xa9d9('0x4e')](_0x7260c6,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0xa9d9('0x4f'));})[_0xa9d9('0x50')](function(){process[_0xa9d9('0x51')](EXIT_CODE);});}main();function getPDFPrinter(){var _0x9c100d=new PdfPrinter({'Arial':{'normal':__dirname+_0xa9d9('0x52'),'bold':__dirname+'/fonts/arial-bold.ttf','italics':__dirname+_0xa9d9('0x53'),'bolditalics':__dirname+_0xa9d9('0x54')}});return _0x9c100d;}function getPDFDocDefinitionFromHTML(_0x1425b9,_0x404c01){var _0xeb0c33=util[_0xa9d9('0x20')](_0xa9d9('0x55'),_0x404c01['channel'],_0x404c01[_0xa9d9('0x56')]);var _0x4187f7=moment()[_0xa9d9('0x20')]('YYYY-MM-DD')[_0xa9d9('0x13')]();var _0x49bc7c=htmlToPdfmake(_0x1425b9,{'window':window,'tableAutoSize':!![]});return{'content':[_0x49bc7c],'defaultStyle':{'font':_0xa9d9('0x28')},'styles':{'header':{'fontSize':0x12,'bold':!![],'alignment':_0xa9d9('0x57'),'margin':[0xa,0xa,0xa,0xa]},'footer':{'fontSize':0x9,'alignment':'center','margin':[0xa,0x14,0xa,0xa]},'textblock':{'fontSize':0xb},'textfield':{'bold':!![]},'messageContainer':{'fontSize':0xa},'messageInfo':{'bold':!![]},'interactionData':{'alignment':_0xa9d9('0x57')}},'header':function(){return[{'text':_0xa9d9('0x58'),'style':_0xa9d9('0x23')}];},'footer':function(_0x1cd9fa,_0x2efd07){return[{'text':util[_0xa9d9('0x20')](_0xa9d9('0x59'),_0xeb0c33,_0x1cd9fa,_0x2efd07,_0x4187f7),'style':'footer'}];}};}function writePDFDocument(_0x1228ea,_0x2568aa){return new Promise(function(_0x1e18a0,_0xda744e){var _0x5c4f72=_0x1228ea[_0xa9d9('0x5a')](fs['createWriteStream'](_0x2568aa));_0x5c4f72['on']('finish',function(){_0x1e18a0(_0xa9d9('0x5b'));});_0x5c4f72['on']('error',function(_0x209e95){_0xda744e(_0x209e95);});_0x1228ea[_0xa9d9('0x5c')]();});}exports['createPdfFromHTML']=function(_0xf209d0,_0x5bc8f9){var _0x41fd50=getPDFPrinter();var _0x33d236=getPDFDocDefinitionFromHTML(_0xf209d0,_0x5bc8f9);var _0x5e1af0=_0x41fd50[_0xa9d9('0x3f')](_0x33d236);return writePDFDocument(_0x5e1af0,_0x5bc8f9[_0xa9d9('0x5d')])[_0xa9d9('0x4c')](function(_0x2ff840){throw _0x2ff840;});};
\ No newline at end of file
+var _0x57a9=['finally','exit','/fonts/arial-regular.ttf','/fonts/arial-bold.ttf','/fonts/arial-italic.ttf','/fonts/arial-bold-italic.ttf','channel','interactionId','YYYY-MM-DD','center','Interaction\x20Transcript','\x09\x09XCALLY\x20Motion\x20-\x20%s\x09\x09\x09\x09%d/%d\x09\x09\x09\x09%s','pipe','createWriteStream','finish','error','createPdfFromHTML','createPdfKitDocument','util','path','moment','html-to-pdfmake','zip-dir','rimraf','jsdom','JSDOM','../../mysqldb','dbH','../../config/logger','analytics','argv','MMMM\x20Do\x20YYYY,\x20h:mm:ss\x20a','savename','AnalyticExtractedReport','update','tableHeader','map','pick','toString','value','fill','body','push','concat','chunk','keys','format','Name:\x20%s\x0aReport:\x20%s\x0aFrom:\x20%s\x20To:\x20%s','name','startDate','length','header','pageBreak','before','landscape','\x20/\x20','footer','Arial','black','right','num','Empty','dirname','join','%s.%s','Setting','find','then','splitSizePdf','split','sequelize','query','%s\x20limit\x20%d\x20OFFSET\x20%d','QueryTypes','SELECT','existsSync','mkdirSync','all','flatten','%s%d.%s','pdf','zip','info','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','Completed','PDF','findOne','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect','Failed'];(function(_0xa464c9,_0x7c86d8){var _0x3d73c4=function(_0x5c2056){while(--_0x5c2056){_0xa464c9['push'](_0xa464c9['shift']());}};_0x3d73c4(++_0x7c86d8);}(_0x57a9,0x1d4));var _0x957a=function(_0x2d3ff1,_0x11b580){_0x2d3ff1=_0x2d3ff1-0x0;var _0x5c0b25=_0x57a9[_0x2d3ff1];return _0x5c0b25;};'use strict';var _=require('lodash');var fs=require('fs');var util=require(_0x957a('0x0'));var path=require(_0x957a('0x1'));var moment=require(_0x957a('0x2'));var htmlToPdfmake=require(_0x957a('0x3'));var PdfPrinter=require('pdfmake/src/printer');var zipdir=require(_0x957a('0x4'));var rimraf=require(_0x957a('0x5'));var JSDOM=require(_0x957a('0x6'))[_0x957a('0x7')];var window=new JSDOM('')['window'];var db=require(_0x957a('0x8'))['db'];var dbH=require(_0x957a('0x8'))[_0x957a('0x9')];var logger=require(_0x957a('0xa'))(_0x957a('0xb'));var EXTRACTED_REPORT_ID=Number(process[_0x957a('0xc')][0x2]);var QUERY=process[_0x957a('0xc')][0x3];var PATH=process[_0x957a('0xc')][0x4];var NAME=process[_0x957a('0xc')][0x5];var FORMAT=_0x957a('0xd');var EXTRACTED_REPORT;var EXIT_CODE=0x0;function analyticExtractedReport(_0xe9841f,_0x26bc62){var _0x43cc54={'status':_0xe9841f};var _0x4a0597={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x26bc62){_0x43cc54[_0x957a('0xe')]=_0x26bc62;}return db[_0x957a('0xf')][_0x957a('0x10')](_0x43cc54,_0x4a0597);}function getHeaders(_0x3311d0){return _['map'](_0x3311d0,function(_0x5ab045){return{'text':_0x5ab045,'style':_0x957a('0x11')};});}function getRows(_0x17903a,_0x261c1b){return _[_0x957a('0x12')](_0x261c1b,function(_0x52a050){return _(_0x52a050)[_0x957a('0x13')](_0x17903a)[_0x957a('0x12')](function(_0x3526af){return _0x3526af?_[_0x957a('0x14')](_0x3526af):'';})[_0x957a('0x15')]();});}function createTable(_0x10d5ca,_0x5064cc){var _0x304732={'widths':_[_0x957a('0x16')](Array(_0x10d5ca['length']),0x91),'heights':function(_0x2aeef6){return _0x2aeef6===0x0?'auto':0x32;},'dontBreakRows':!![],'headerRows':0x1,'body':[]};var _0x463487=getHeaders(_0x10d5ca);_0x304732[_0x957a('0x17')][_0x957a('0x18')](_0x463487);var _0x4cf770=getRows(_0x10d5ca,_0x5064cc);_0x304732[_0x957a('0x17')]=_0x304732[_0x957a('0x17')][_0x957a('0x19')](_0x4cf770);return _0x304732;}function createTables(_0x201fc1){var _0x2ee8e2=[];var _0x431b99=_[_0x957a('0x1a')](Object[_0x957a('0x1b')](_0x201fc1[0x0]),0x5);_0x431b99['forEach'](function(_0x470101){_0x2ee8e2[_0x957a('0x18')](createTable(_0x470101,_0x201fc1));});return _0x2ee8e2;}function getPDFDocDefinition(_0x476312){var _0x374fed=util[_0x957a('0x1c')](_0x957a('0x1d'),NAME,EXTRACTED_REPORT[_0x957a('0x1e')],moment(EXTRACTED_REPORT[_0x957a('0x1f')])[_0x957a('0x1c')](FORMAT),moment(EXTRACTED_REPORT['endDate'])['format'](FORMAT));var _0x3a48f3=[];for(var _0x320aa8=0x0;_0x320aa8<_0x476312[_0x957a('0x20')];_0x320aa8++){var _0x5e2960=[];if(_0x320aa8===0x0){_0x5e2960[_0x957a('0x18')]({'text':_0x374fed,'style':_0x957a('0x21')});}var _0x9beb16={'table':_0x476312[_0x320aa8]};if(_0x320aa8>0x0){_0x9beb16[_0x957a('0x22')]=_0x957a('0x23');_0x9beb16['margin']=[0x0,0x46,0x0,0x0];}_0x5e2960[_0x957a('0x18')](_0x9beb16);_0x3a48f3['push'](_0x5e2960);}return{'pageSize':'A4','pageOrientation':_0x957a('0x24'),'content':_0x3a48f3,'footer':function(_0x58d7a2,_0x4e5005){return{'text':_0x58d7a2[_0x957a('0x14')]()+_0x957a('0x25')+_0x4e5005,'style':_0x957a('0x26')};},'defaultStyle':{'font':_0x957a('0x27')},'styles':{'header':{'fontSize':0x12,'bold':!![],'margin':[0x0,0x0,0x0,0xa]},'tableHeader':{'bold':!![],'fontSize':0xd,'color':_0x957a('0x28')},'footer':{'alignment':_0x957a('0x29'),'margin':[0x0,0x0,0x28,0x0]}}};}function extractReport(_0x38c95b){var _0x9b88fd=0x1388;var _0x43328a;if(!_0x38c95b[0x0][_0x957a('0x2a')]){return analyticExtractedReport(_0x957a('0x2b'));}var _0x1d1e4f=[];var _0x33c5f4=0x0;var _0x230279=!![];var _0x577f13=path[_0x957a('0x2c')](PATH);var _0x5530c5=path['basename'](PATH,'.pdf');var _0x2de673=path[_0x957a('0x2d')](_0x577f13,util[_0x957a('0x1c')](_0x957a('0x2e'),_0x5530c5,'pdf'));var _0xe50f30=![];return db[_0x957a('0x2f')][_0x957a('0x30')]({'where':{'id':0x1},'raw':!![],'attributes':['id','split','splitSizePdf']})[_0x957a('0x31')](function(_0x532e8b){if(_0x532e8b){_0x43328a=_0x532e8b;_0x9b88fd=_0x43328a[_0x957a('0x32')]||0x3e8;}})[_0x957a('0x31')](function(){if(_0x38c95b&&_0x38c95b[_0x957a('0x20')]){var _0x454cb5=_0x38c95b[0x0][_0x957a('0x2a')]%(_0x33c5f4+_0x9b88fd);if(_0x43328a[_0x957a('0x33')]){for(;_0x230279;_0x33c5f4+=_0x9b88fd,_0x454cb5=_0x38c95b[0x0]['num']%(_0x33c5f4+_0x9b88fd)){if(_0x454cb5==0x0||_0x454cb5==_0x38c95b[0x0][_0x957a('0x2a')]){_0x230279=![];}_0x1d1e4f[_0x957a('0x18')](dbH[_0x957a('0x34')][_0x957a('0x35')](util[_0x957a('0x1c')](_0x957a('0x36'),QUERY,_0x9b88fd,_0x33c5f4),{'type':dbH[_0x957a('0x34')][_0x957a('0x37')]['SELECT']}));}}else{_0x1d1e4f[_0x957a('0x18')](dbH['sequelize'][_0x957a('0x35')](QUERY,{'type':dbH[_0x957a('0x34')][_0x957a('0x37')][_0x957a('0x38')]}));}}_0xe50f30=_0x43328a[_0x957a('0x33')]&&_0x1d1e4f[_0x957a('0x20')]>0x1;if(!fs[_0x957a('0x39')](path[_0x957a('0x2d')](_0x577f13,_0x5530c5))&&_0xe50f30){fs[_0x957a('0x3a')](path[_0x957a('0x2d')](_0x577f13,_0x5530c5));}return Promise[_0x957a('0x3b')](_0x1d1e4f);})['then'](function(_0x154e08){return createTables(_[_0x957a('0x3c')](_0x154e08));})[_0x957a('0x31')](function(_0x6a8cd2){var _0x19cb07=getPDFDocDefinition(_0x6a8cd2);var _0x5990a1=getPDFPrinter();var _0x425924=_0x5990a1['createPdfKitDocument'](_0x19cb07);if(_0xe50f30)_0x2de673=path[_0x957a('0x2d')](_0x577f13,_0x5530c5,util[_0x957a('0x1c')](_0x957a('0x3d'),_0x5530c5,index,_0x957a('0x3e')));return writePDFDocument(_0x425924,_0x2de673);})[_0x957a('0x31')](function(){if(!_0xe50f30)return;zipdir(path['join'](_0x577f13,_0x5530c5),{'saveTo':path[_0x957a('0x2d')](_0x577f13,util[_0x957a('0x1c')]('%s.%s',_0x5530c5,_0x957a('0x3f')))},function(_0x2f3cba){if(_0x2f3cba)throw _0x2f3cba;return;});})['then'](function(){if(!_0xe50f30)return;rimraf(path[_0x957a('0x2d')](_0x577f13,_0x5530c5),function(){});})[_0x957a('0x31')](function(){logger[_0x957a('0x40')](util[_0x957a('0x1c')](_0x957a('0x41'),EXTRACTED_REPORT_ID,'CSV'));return analyticExtractedReport(_0x957a('0x42'),_0xe50f30?util[_0x957a('0x1c')](_0x957a('0x2e'),_0x5530c5,_0xe50f30?'zip':'pdf'):null);});}function main(){if(!EXTRACTED_REPORT_ID)return;logger[_0x957a('0x40')](util[_0x957a('0x1c')]('Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,_0x957a('0x43')));return db[_0x957a('0xf')][_0x957a('0x44')]({'where':{'id':EXTRACTED_REPORT_ID}})[_0x957a('0x31')](function(_0x26370e){EXTRACTED_REPORT=_0x26370e;return dbH[_0x957a('0x34')][_0x957a('0x35')](util[_0x957a('0x1c')]('SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t',QUERY),{'type':dbH[_0x957a('0x34')]['QueryTypes'][_0x957a('0x38')]});})[_0x957a('0x31')](extractReport)['catch'](function(_0x5ac732){logger[_0x957a('0x40')](util['format'](_0x957a('0x45'),EXTRACTED_REPORT_ID,'PDF'),util[_0x957a('0x46')](_0x5ac732,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0x957a('0x47'));})[_0x957a('0x48')](function(){process[_0x957a('0x49')](EXIT_CODE);});}main();function getPDFPrinter(){var _0x3e81b6=new PdfPrinter({'Arial':{'normal':__dirname+_0x957a('0x4a'),'bold':__dirname+_0x957a('0x4b'),'italics':__dirname+_0x957a('0x4c'),'bolditalics':__dirname+_0x957a('0x4d')}});return _0x3e81b6;}function getPDFDocDefinitionFromHTML(_0x410878,_0x5b3aba){var _0x5877ee=util[_0x957a('0x1c')]('%s\x20#%d',_0x5b3aba[_0x957a('0x4e')],_0x5b3aba[_0x957a('0x4f')]);var _0x3d7e03=moment()['format'](_0x957a('0x50'))[_0x957a('0x14')]();var _0x44f448=htmlToPdfmake(_0x410878,{'window':window,'tableAutoSize':!![]});return{'content':[_0x44f448],'defaultStyle':{'font':_0x957a('0x27')},'styles':{'header':{'fontSize':0x12,'bold':!![],'alignment':_0x957a('0x51'),'margin':[0xa,0xa,0xa,0xa]},'footer':{'fontSize':0x9,'alignment':_0x957a('0x51'),'margin':[0xa,0x14,0xa,0xa]},'textblock':{'fontSize':0xb},'textfield':{'bold':!![]},'messageContainer':{'fontSize':0xa},'messageInfo':{'bold':!![]},'interactionData':{'alignment':_0x957a('0x51')}},'header':function(){return[{'text':_0x957a('0x52'),'style':'header'}];},'footer':function(_0x56cdb2,_0x3d4312){return[{'text':util[_0x957a('0x1c')](_0x957a('0x53'),_0x5877ee,_0x56cdb2,_0x3d4312,_0x3d7e03),'style':'footer'}];}};}function writePDFDocument(_0x2eec6a,_0x26f631){return new Promise(function(_0x4c4011,_0x43862c){var _0x371089=_0x2eec6a[_0x957a('0x54')](fs[_0x957a('0x55')](_0x26f631));_0x371089['on'](_0x957a('0x56'),function(){_0x4c4011('finish');});_0x371089['on'](_0x957a('0x57'),function(_0x47c0fa){_0x43862c(_0x47c0fa);});_0x2eec6a['end']();});}exports[_0x957a('0x58')]=function(_0x574894,_0x2b9663){var _0x57d44a=getPDFPrinter();var _0x570aa4=getPDFDocDefinitionFromHTML(_0x574894,_0x2b9663);var _0x25baa0=_0x57d44a[_0x957a('0x59')](_0x570aa4);return writePDFDocument(_0x25baa0,_0x2b9663[_0x957a('0x1')])['catch'](function(_0x38f116){throw _0x38f116;});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3407=['.xlsx','existsSync','join','mkdirSync','%s%d.%s','xlsx','%s.%s','writeFileSync','binary','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','Completed','zip','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','finally','exit','util','path','lodash','json2xls','bluebird','zip-dir','rimraf','../../mysqldb','dbH','../../config/logger','analytics','argv','AnalyticExtractedReport','info','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','XLSX','Setting','split','then','splitSizeXlsx','sequelize','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','num','length','range','forEach','push','query','QueryTypes','SELECT','%s\x20limit\x20%d\x20OFFSET\x20%d','dirname','basename'];(function(_0x27af45,_0x1b57aa){var _0x18df21=function(_0x4b7679){while(--_0x4b7679){_0x27af45['push'](_0x27af45['shift']());}};_0x18df21(++_0x1b57aa);}(_0x3407,0x1c8));var _0x7340=function(_0x4ceabc,_0x1ce086){_0x4ceabc=_0x4ceabc-0x0;var _0x4da071=_0x3407[_0x4ceabc];return _0x4da071;};'use strict';var util=require(_0x7340('0x0'));var path=require(_0x7340('0x1'));var _=require(_0x7340('0x2'));var fs=require('fs');var json2xls=require(_0x7340('0x3'));var BPromise=require(_0x7340('0x4'));var zipdir=require(_0x7340('0x5'));var rimraf=require(_0x7340('0x6'));var db=require(_0x7340('0x7'))['db'];var dbH=require(_0x7340('0x7'))[_0x7340('0x8')];var logger=require(_0x7340('0x9'))(_0x7340('0xa'));var EXTRACTED_REPORT_ID=Number(process[_0x7340('0xb')][0x2]);var QUERY=process[_0x7340('0xb')][0x3];var PATH=process[_0x7340('0xb')][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0xd132c7,_0x2bc5d4){var _0x57b87c={'status':_0xd132c7};var _0x3645fc={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x2bc5d4){_0x57b87c['savename']=_0x2bc5d4;}return db[_0x7340('0xc')]['update'](_0x57b87c,_0x3645fc);}function main(){var _0x54f089=0x1388;var _0x451d47;logger[_0x7340('0xd')](util[_0x7340('0xe')](_0x7340('0xf'),EXTRACTED_REPORT_ID,_0x7340('0x10')));return db[_0x7340('0x11')]['find']({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x7340('0x12'),'splitSizeXlsx']})[_0x7340('0x13')](function(_0x27fda0){if(_0x27fda0){_0x451d47=_0x27fda0;_0x54f089=_0x451d47[_0x7340('0x14')]||0x1388;}})[_0x7340('0x13')](function(){return dbH[_0x7340('0x15')]['query'](util[_0x7340('0xe')](_0x7340('0x16'),QUERY),{'type':dbH['sequelize']['QueryTypes']['SELECT']});})['then'](function(_0x4ec487){if(!_0x4ec487[0x0][_0x7340('0x17')]){return analyticExtractedReport('Empty');}var _0x4ea19c=[];var _0x1a8c5d=0x0;if(_0x451d47[_0x7340('0x12')]){if(_0x4ec487&&_0x4ec487[_0x7340('0x18')]){var _0x5c30f9=_[_0x7340('0x19')](_0x4ec487[0x0][_0x7340('0x17')]/_0x54f089);var _0x4d2577=Number['isInteger'](_0x4ec487[0x0][_0x7340('0x17')]/_0x54f089)?_0x4ec487[0x0][_0x7340('0x17')]%_0x54f089:0x0;_0x5c30f9[_0x7340('0x1a')](function(_0x29f470){if(_0x29f470>0x0){_0x1a8c5d+=_0x54f089;}_0x4ea19c[_0x7340('0x1b')](dbH[_0x7340('0x15')][_0x7340('0x1c')](util[_0x7340('0xe')]('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x54f089,_0x1a8c5d),{'type':dbH[_0x7340('0x15')][_0x7340('0x1d')][_0x7340('0x1e')]}));});if(_0x4d2577>0x0){_0x1a8c5d+=_0x54f089;_0x4ea19c['push'](dbH['sequelize'][_0x7340('0x1c')](util[_0x7340('0xe')](_0x7340('0x1f'),QUERY,_0x4d2577,_0x1a8c5d),{'type':dbH[_0x7340('0x15')][_0x7340('0x1d')][_0x7340('0x1e')]}));}}}else{_0x4ea19c[_0x7340('0x1b')](dbH[_0x7340('0x15')][_0x7340('0x1c')](QUERY,{'type':dbH['sequelize']['QueryTypes'][_0x7340('0x1e')]}));}var _0x149e76=path[_0x7340('0x20')](PATH);var _0x47234e=path[_0x7340('0x21')](PATH,_0x7340('0x22'));var _0x6c8664=_0x451d47[_0x7340('0x12')]&&_0x4ea19c[_0x7340('0x18')]>0x1;var _0x38e27c=[];if(!fs[_0x7340('0x23')](path[_0x7340('0x24')](_0x149e76,_0x47234e))&&_0x6c8664){fs[_0x7340('0x25')](path[_0x7340('0x24')](_0x149e76,_0x47234e));}return BPromise['each'](_0x4ea19c,function(_0x148313){_0x38e27c[_0x7340('0x1b')](_0x148313);})['then'](function(){for(var _0x287bf9=0x0;_0x287bf9<_0x38e27c[_0x7340('0x18')];_0x287bf9+=0x1){var _0xc94eee;var _0xec27d9=_0x38e27c[_0x287bf9];if(_0x6c8664){_0xc94eee=path[_0x7340('0x24')](_0x149e76,_0x47234e,util['format'](_0x7340('0x26'),_0x47234e,_0x287bf9,_0x7340('0x27')));}else{_0xc94eee=path[_0x7340('0x24')](_0x149e76,util['format'](_0x7340('0x28'),_0x47234e,_0x7340('0x27')));}fs[_0x7340('0x29')](_0xc94eee,json2xls(_0xec27d9),_0x7340('0x2a'));}})[_0x7340('0x13')](function(){if(_0x6c8664){return new Promise(function(_0x420e4c){zipdir(path[_0x7340('0x24')](_0x149e76,_0x47234e),{'saveTo':path[_0x7340('0x24')](_0x149e76,util[_0x7340('0xe')](_0x7340('0x28'),_0x47234e,'zip'))},function(_0x22d29e,_0x5e814e){rimraf(path[_0x7340('0x24')](_0x149e76,_0x47234e),function(){});_0x420e4c('zip\x20finished');});});}})['then'](function(){logger[_0x7340('0xd')](util['format'](_0x7340('0x2b'),EXTRACTED_REPORT_ID,_0x7340('0x10')));return analyticExtractedReport(_0x7340('0x2c'),_0x6c8664?util[_0x7340('0xe')](_0x7340('0x28'),_0x47234e,_0x6c8664?_0x7340('0x2d'):_0x7340('0x27')):null);});})['catch'](function(_0x19a6f9){logger[_0x7340('0xd')](util[_0x7340('0xe')](_0x7340('0x2e'),EXTRACTED_REPORT_ID,_0x7340('0x10')),util['inspect'](_0x19a6f9,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport('Failed');})[_0x7340('0x2f')](function(){process[_0x7340('0x30')](EXIT_CODE);});}main();
\ No newline at end of file
+var _0xe8d1=['bluebird','zip-dir','rimraf','../../mysqldb','dbH','../../config/logger','analytics','argv','update','info','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','XLSX','Setting','find','splitSizeXlsx','then','sequelize','query','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','QueryTypes','num','Empty','split','push','SELECT','dirname','basename','length','existsSync','join','mkdirSync','each','%s%d.%s','xlsx','%s.%s','writeFileSync','binary','zip','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','Completed','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','Failed','finally','util','json2xls'];(function(_0x1cad18,_0x1965a4){var _0x2166b8=function(_0x589f70){while(--_0x589f70){_0x1cad18['push'](_0x1cad18['shift']());}};_0x2166b8(++_0x1965a4);}(_0xe8d1,0x176));var _0x1e8d=function(_0x118da4,_0x2e192e){_0x118da4=_0x118da4-0x0;var _0x40dfbb=_0xe8d1[_0x118da4];return _0x40dfbb;};'use strict';var util=require(_0x1e8d('0x0'));var path=require('path');var _=require('lodash');var fs=require('fs');var json2xls=require(_0x1e8d('0x1'));var BPromise=require(_0x1e8d('0x2'));var zipdir=require(_0x1e8d('0x3'));var rimraf=require(_0x1e8d('0x4'));var db=require('../../mysqldb')['db'];var dbH=require(_0x1e8d('0x5'))[_0x1e8d('0x6')];var logger=require(_0x1e8d('0x7'))(_0x1e8d('0x8'));var EXTRACTED_REPORT_ID=Number(process[_0x1e8d('0x9')][0x2]);var QUERY=process[_0x1e8d('0x9')][0x3];var PATH=process[_0x1e8d('0x9')][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x23b4fc,_0x26eb01){var _0x10486c={'status':_0x23b4fc};var _0x1707f6={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x26eb01){_0x10486c['savename']=_0x26eb01;}return db['AnalyticExtractedReport'][_0x1e8d('0xa')](_0x10486c,_0x1707f6);}function main(){var _0x3b2f88=0x1388;var _0x1502d6;logger[_0x1e8d('0xb')](util[_0x1e8d('0xc')](_0x1e8d('0xd'),EXTRACTED_REPORT_ID,_0x1e8d('0xe')));return db[_0x1e8d('0xf')][_0x1e8d('0x10')]({'where':{'id':0x1},'raw':!![],'attributes':['id','split',_0x1e8d('0x11')]})[_0x1e8d('0x12')](function(_0x4ab0d3){if(_0x4ab0d3){_0x1502d6=_0x4ab0d3;_0x3b2f88=_0x1502d6[_0x1e8d('0x11')]||0x1388;}})[_0x1e8d('0x12')](function(){return dbH[_0x1e8d('0x13')][_0x1e8d('0x14')](util[_0x1e8d('0xc')](_0x1e8d('0x15'),QUERY),{'type':dbH['sequelize'][_0x1e8d('0x16')]['SELECT']});})[_0x1e8d('0x12')](function(_0x32a47f){if(!_0x32a47f[0x0][_0x1e8d('0x17')]){return analyticExtractedReport(_0x1e8d('0x18'));}var _0x432ec1=[];var _0x71e382=0x0;var _0x48cdaa=!![];if(_0x1502d6[_0x1e8d('0x19')]){if(_0x32a47f&&_0x32a47f['length']){var _0x1e84ec=_0x32a47f[0x0][_0x1e8d('0x17')]%(_0x71e382+_0x3b2f88);for(;_0x48cdaa;_0x71e382+=_0x3b2f88,_0x1e84ec=_0x32a47f[0x0]['num']%(_0x71e382+_0x3b2f88)){if(_0x1e84ec==0x0||_0x1e84ec==_0x32a47f[0x0]['num']){_0x48cdaa=![];}_0x432ec1[_0x1e8d('0x1a')](dbH[_0x1e8d('0x13')][_0x1e8d('0x14')](util['format']('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x3b2f88,_0x71e382),{'type':dbH[_0x1e8d('0x13')][_0x1e8d('0x16')][_0x1e8d('0x1b')]}));}}}else{_0x432ec1[_0x1e8d('0x1a')](dbH['sequelize'][_0x1e8d('0x14')](QUERY,{'type':dbH[_0x1e8d('0x13')]['QueryTypes']['SELECT']}));}var _0x43ae37=path[_0x1e8d('0x1c')](PATH);var _0x206296=path[_0x1e8d('0x1d')](PATH,'.xlsx');var _0x15faa4=_0x1502d6[_0x1e8d('0x19')]&&_0x432ec1[_0x1e8d('0x1e')]>0x1;var _0x27ac25=[];if(!fs[_0x1e8d('0x1f')](path[_0x1e8d('0x20')](_0x43ae37,_0x206296))&&_0x15faa4){fs[_0x1e8d('0x21')](path[_0x1e8d('0x20')](_0x43ae37,_0x206296));}return BPromise[_0x1e8d('0x22')](_0x432ec1,function(_0xd7ca61){_0x27ac25[_0x1e8d('0x1a')](_0xd7ca61);})['then'](function(){for(var _0x56f70b=0x0;_0x56f70b<_0x27ac25[_0x1e8d('0x1e')];_0x56f70b+=0x1){var _0x33de47;var _0x3b63db=_0x27ac25[_0x56f70b];if(_0x15faa4){_0x33de47=path[_0x1e8d('0x20')](_0x43ae37,_0x206296,util[_0x1e8d('0xc')](_0x1e8d('0x23'),_0x206296,_0x56f70b,_0x1e8d('0x24')));}else{_0x33de47=path[_0x1e8d('0x20')](_0x43ae37,util[_0x1e8d('0xc')](_0x1e8d('0x25'),_0x206296,_0x1e8d('0x24')));}fs[_0x1e8d('0x26')](_0x33de47,json2xls(_0x3b63db),_0x1e8d('0x27'));}})[_0x1e8d('0x12')](function(){if(_0x15faa4){zipdir(path['join'](_0x43ae37,_0x206296),{'saveTo':path['join'](_0x43ae37,util[_0x1e8d('0xc')](_0x1e8d('0x25'),_0x206296,_0x1e8d('0x28')))},function(_0x26997d,_0x3bef31){});rimraf(path[_0x1e8d('0x20')](_0x43ae37,_0x206296),function(){});}})[_0x1e8d('0x12')](function(){logger[_0x1e8d('0xb')](util[_0x1e8d('0xc')](_0x1e8d('0x29'),EXTRACTED_REPORT_ID,'XLSX'));return analyticExtractedReport(_0x1e8d('0x2a'),_0x15faa4?util[_0x1e8d('0xc')](_0x1e8d('0x25'),_0x206296,_0x15faa4?_0x1e8d('0x28'):_0x1e8d('0x24')):null);});})[_0x1e8d('0x2b')](function(_0x3f64b7){logger[_0x1e8d('0xb')](util[_0x1e8d('0xc')](_0x1e8d('0x2c'),EXTRACTED_REPORT_ID,_0x1e8d('0xe')),util['inspect'](_0x3f64b7,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0x1e8d('0x2d'));})[_0x1e8d('0x2e')](function(){process['exit'](EXIT_CODE);});}main();
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x09c0=['answer','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','splice','GotoIfTime','last','concat','Hangup','transaction','bulkCreate','sortBy','rewrite','lodash','models','Interval','findAll','intervals','VoiceExtension','IntervalId','then','exten','CAST(priority\x20AS\x20UNSIGNED)','filter','groupBy','queue','playback','priority','extension','find','extensions','push','type','Set','format','CDR(type)=%s','context','inbound','CDR(routeid)=','VoiceExtensionId','CDR(destination)=','cutdigits','${EXTEN:','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','outboundrouteid=','hasOwnProperty','recordingFormat','none','wav','XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','length','toLowerCase','createdAt','interval','*,*,*,*','map','tag','CDR(tag)=','callerID','ExecIf','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):Set(CALLERID(all)=','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):NoOp(No\x20number\x20available)','indexOf','app','appType'];(function(_0x33dcf7,_0x3d5390){var _0x542d4e=function(_0x281250){while(--_0x281250){_0x33dcf7['push'](_0x33dcf7['shift']());}};_0x542d4e(++_0x3d5390);}(_0x09c0,0x161));var _0x009c=function(_0x3b2d24,_0x2f2be8){_0x3b2d24=_0x3b2d24-0x0;var _0x137320=_0x09c0[_0x3b2d24];return _0x137320;};'use strict';var _=require(_0x009c('0x0'));var util=require('util');function rewrite(_0x1683cb,_0x53ae8e){var _0xd4b1a2=this;return _0x1683cb[_0x009c('0x1')][_0x009c('0x2')][_0x009c('0x3')]({'raw':!![]})['then'](function(_0x50b96a){_0xd4b1a2[_0x009c('0x4')]=_0x50b96a;return _0x1683cb['models'][_0x009c('0x5')]['findAll']({'where':{'IntervalId':_0x53ae8e[_0x009c('0x6')]},'raw':!![]});})[_0x009c('0x7')](function(_0x2f84aa){return _0x1683cb[_0x009c('0x1')][_0x009c('0x5')][_0x009c('0x3')]({'where':{'exten':{'$in':_['uniq'](_['map'](_0x2f84aa,_0x009c('0x8')))}},'order':[{'raw':_0x009c('0x9')}],'raw':!![]});})[_0x009c('0x7')](function(_0x1d1c18){var _0x6ddce2=_[_0x009c('0xa')](_0x1d1c18,{'priority':'1'});var _0x546ace=_[_0x009c('0xa')](_0x1d1c18,{'isApp':0x1});var _0x250123=_[_0x009c('0xb')](_0x546ace,'exten');var _0x1e549a=[_0x009c('0xc'),_0x009c('0xd')];var _0x9d5296=[];var _0x19e632=[];for(var _0x4e3494 in _0x250123){if(_0x250123['hasOwnProperty'](_0x4e3494)){_0xd4b1a2[_0x009c('0xe')]=0x2;_0xd4b1a2['extensions']=[];_0xd4b1a2[_0x009c('0xf')]=_[_0x009c('0x10')](_0x6ddce2,{'exten':_0x250123[_0x4e3494][0x0][_0x009c('0x8')]});_0xd4b1a2[_0x009c('0x11')][_0x009c('0x12')]({'type':_0x250123[_0x4e3494][0x0][_0x009c('0x13')],'app':_0x009c('0x14'),'appdata':util[_0x009c('0x15')](_0x009c('0x16'),_0x250123[_0x4e3494][0x0][_0x009c('0x13')]),'context':_0x250123[_0x4e3494][0x0][_0x009c('0x17')],'exten':_0x250123[_0x4e3494][0x0]['exten'],'priority':_0xd4b1a2[_0x009c('0xe')]++,'VoiceExtensionId':_0x250123[_0x4e3494][0x0]['VoiceExtensionId']});if(_0x250123[_0x4e3494][0x0][_0x009c('0x13')]===_0x009c('0x18')){_0xd4b1a2['extensions'][_0x009c('0x12')]({'type':_0x250123[_0x4e3494][0x0][_0x009c('0x13')],'app':_0x009c('0x14'),'appdata':_0x009c('0x19')+_0x250123[_0x4e3494][0x0][_0x009c('0x1a')],'context':_0x250123[_0x4e3494][0x0][_0x009c('0x17')],'exten':_0x250123[_0x4e3494][0x0][_0x009c('0x8')],'priority':_0xd4b1a2[_0x009c('0xe')]++,'VoiceExtensionId':_0x250123[_0x4e3494][0x0][_0x009c('0x1a')]});}else if(_0x250123[_0x4e3494][0x0][_0x009c('0x13')]==='outbound'){if(_0xd4b1a2[_0x009c('0xf')]){_0xd4b1a2['extensions'][_0x009c('0x12')]({'type':_0x250123[_0x4e3494][0x0][_0x009c('0x13')],'app':_0x009c('0x14'),'appdata':_0x009c('0x1b')+(_0xd4b1a2[_0x009c('0xf')][_0x009c('0x1c')]?_0x009c('0x1d')+_0xd4b1a2[_0x009c('0xf')]['cutdigits']+'}':'${EXTEN}'),'context':_0x250123[_0x4e3494][0x0][_0x009c('0x17')],'exten':_0x250123[_0x4e3494][0x0][_0x009c('0x8')],'priority':_0xd4b1a2[_0x009c('0xe')]++,'VoiceExtensionId':_0x250123[_0x4e3494][0x0][_0x009c('0x1a')]});}_0xd4b1a2[_0x009c('0x11')][_0x009c('0x12')]({'type':_0x250123[_0x4e3494][0x0][_0x009c('0x13')],'app':_0x009c('0x14'),'appdata':_0x009c('0x19')+_0x250123[_0x4e3494][0x0][_0x009c('0x1a')],'context':_0x250123[_0x4e3494][0x0]['context'],'exten':_0x250123[_0x4e3494][0x0][_0x009c('0x8')],'priority':_0xd4b1a2[_0x009c('0xe')]++,'VoiceExtensionId':_0x250123[_0x4e3494][0x0]['VoiceExtensionId']});var _0x4490e2=_0xd4b1a2['priority']++;_0xd4b1a2[_0x009c('0x11')][_0x009c('0x12')]({'type':_0x250123[_0x4e3494][0x0]['type'],'app':'ExecIf','appdata':'$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto('+(_0x4490e2+0x2)+'):Goto('+(_0x4490e2+0x1)+')','context':_0x250123[_0x4e3494][0x0][_0x009c('0x17')],'exten':_0x250123[_0x4e3494][0x0][_0x009c('0x8')],'priority':_0x4490e2,'VoiceExtensionId':_0x250123[_0x4e3494][0x0][_0x009c('0x1a')]});if(_0xd4b1a2[_0x009c('0xf')]){_0xd4b1a2[_0x009c('0x11')][_0x009c('0x12')]({'type':_0x250123[_0x4e3494][0x0][_0x009c('0x13')],'app':_0x009c('0x14'),'appdata':_0xd4b1a2['extension'][_0x009c('0x1c')]?_0x009c('0x1e')+_0xd4b1a2['extension'][_0x009c('0x1c')]+'}':_0x009c('0x1f'),'context':_0x250123[_0x4e3494][0x0][_0x009c('0x17')],'exten':_0x250123[_0x4e3494][0x0]['exten'],'priority':_0xd4b1a2[_0x009c('0xe')]++,'VoiceExtensionId':_0x250123[_0x4e3494][0x0]['VoiceExtensionId']});}_0xd4b1a2['extensions'][_0x009c('0x12')]({'type':_0x250123[_0x4e3494][0x0][_0x009c('0x13')],'app':_0x009c('0x14'),'appdata':_0x009c('0x20')+_0x250123[_0x4e3494][0x0][_0x009c('0x1a')],'context':_0x250123[_0x4e3494][0x0][_0x009c('0x17')],'exten':_0x250123[_0x4e3494][0x0][_0x009c('0x8')],'priority':_0xd4b1a2[_0x009c('0xe')]++,'VoiceExtensionId':_0x250123[_0x4e3494][0x0][_0x009c('0x1a')]});if(_0xd4b1a2[_0x009c('0xf')]&&_0xd4b1a2[_0x009c('0xf')][_0x009c('0x21')](_0x009c('0x22'))&&_0xd4b1a2['extension'][_0x009c('0x22')]!==_0x009c('0x23')){_0xd4b1a2[_0x009c('0x11')][_0x009c('0x12')]({'type':_0x250123[_0x4e3494][0x0]['type'],'app':'Set','appdata':'_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','context':_0x250123[_0x4e3494][0x0]['context'],'exten':_0x250123[_0x4e3494][0x0][_0x009c('0x8')],'priority':_0xd4b1a2[_0x009c('0xe')]++,'VoiceExtensionId':_0x250123[_0x4e3494][0x0][_0x009c('0x1a')]});_0xd4b1a2[_0x009c('0x11')][_0x009c('0x12')]({'type':_0x250123[_0x4e3494][0x0][_0x009c('0x13')],'app':'Set','appdata':'_XCALLY_MIXMONITOR_FORMAT='+_0xd4b1a2['extension'][_0x009c('0x22')]||_0x009c('0x24'),'context':_0x250123[_0x4e3494][0x0][_0x009c('0x17')],'exten':_0x250123[_0x4e3494][0x0][_0x009c('0x8')],'priority':_0xd4b1a2[_0x009c('0xe')]++,'VoiceExtensionId':_0x250123[_0x4e3494][0x0][_0x009c('0x1a')]});}}_0xd4b1a2[_0x009c('0x11')][_0x009c('0x12')]({'type':_0x250123[_0x4e3494][0x0][_0x009c('0x13')],'app':'Set','appdata':_0x009c('0x25'),'context':_0x250123[_0x4e3494][0x0][_0x009c('0x17')],'exten':_0x250123[_0x4e3494][0x0]['exten'],'priority':_0xd4b1a2[_0x009c('0xe')]++,'VoiceExtensionId':_0x250123[_0x4e3494][0x0][_0x009c('0x1a')]});_0xd4b1a2['extensions'][_0x009c('0x12')]({'type':_0x250123[_0x4e3494][0x0][_0x009c('0x13')],'app':_0x009c('0x14'),'appdata':_0x009c('0x26'),'context':_0x250123[_0x4e3494][0x0][_0x009c('0x17')],'exten':_0x250123[_0x4e3494][0x0][_0x009c('0x8')],'priority':_0xd4b1a2['priority']++,'VoiceExtensionId':_0x250123[_0x4e3494][0x0][_0x009c('0x1a')]});_0xd4b1a2['extensions'][_0x009c('0x12')]({'type':_0x250123[_0x4e3494][0x0][_0x009c('0x13')],'app':'Set','appdata':_0x009c('0x27'),'context':_0x250123[_0x4e3494][0x0]['context'],'exten':_0x250123[_0x4e3494][0x0][_0x009c('0x8')],'priority':_0xd4b1a2[_0x009c('0xe')]++,'VoiceExtensionId':_0x250123[_0x4e3494][0x0]['VoiceExtensionId']});for(var _0x2c97dd=0x0,_0x29b398=0x0;_0x2c97dd<_0x250123[_0x4e3494][_0x009c('0x28')];_0x2c97dd+=0x1,_0x29b398=0x0){var _0x55d37d=_0x250123[_0x4e3494][_0x2c97dd];if(_0x55d37d[_0x009c('0x13')]){_0x55d37d[_0x009c('0x13')]=_0x55d37d[_0x009c('0x13')][_0x009c('0x29')]();}var _0x20e1b4=[];var _0x2cd787=[];delete _0x55d37d['id'];delete _0x55d37d[_0x009c('0x2a')];delete _0x55d37d['updatedAt'];var _0x10c3f4=_0x55d37d[_0x009c('0x2b')]!==_0x009c('0x2c')?[_0x55d37d[_0x009c('0x2b')]]:_0x55d37d['IntervalId']?_[_0x009c('0x2d')](_['filter'](_0xd4b1a2[_0x009c('0x4')],{'IntervalId':_0x55d37d[_0x009c('0x6')]}),_0x009c('0x2b')):[];if(_0x55d37d[_0x009c('0x21')](_0x009c('0x2e'))){if(_0x55d37d['tag']&&_0x55d37d[_0x009c('0x2e')]!=='--'){_0x20e1b4[_0x009c('0x12')]({'type':_0x55d37d[_0x009c('0x13')],'app':_0x009c('0x14'),'appdata':_0x009c('0x2f')+_0x55d37d[_0x009c('0x2e')],'context':_0x55d37d[_0x009c('0x17')],'exten':_0x55d37d['exten'],'priority':_0x10c3f4[_0x009c('0x28')]+_0xd4b1a2['priority']+_0x29b398++,'VoiceExtensionId':_0x55d37d[_0x009c('0x1a')]});}}if(_0x55d37d['type']==='outbound'&&_0x55d37d[_0x009c('0x21')]('callerID')){if(_0x55d37d[_0x009c('0x30')]){_0x20e1b4[_0x009c('0x12')]({'type':_0x55d37d['type'],'app':_0x009c('0x31'),'appdata':_0x009c('0x32')+_0x55d37d['callerID']+')','context':_0x55d37d[_0x009c('0x17')],'exten':_0x55d37d[_0x009c('0x8')],'priority':_0x10c3f4[_0x009c('0x28')]+_0xd4b1a2[_0x009c('0xe')]+_0x29b398++,'VoiceExtensionId':_0x55d37d[_0x009c('0x1a')]});}else{_0x20e1b4[_0x009c('0x12')]({'type':_0x55d37d[_0x009c('0x13')],'app':_0x009c('0x31'),'appdata':_0x009c('0x33'),'context':_0x55d37d['context'],'exten':_0x55d37d[_0x009c('0x8')],'priority':_0x10c3f4['length']+_0xd4b1a2[_0x009c('0xe')]+_0x29b398++,'VoiceExtensionId':_0x55d37d[_0x009c('0x1a')]});}}if(_0x55d37d[_0x009c('0x21')]('answer')){if(_0x1e549a[_0x009c('0x34')](_0x55d37d[_0x009c('0x35')][_0x009c('0x29')]())>=0x0&&_0x55d37d[_0x009c('0x36')]!=='custom'){if(_0x55d37d[_0x009c('0x37')]){_0x20e1b4[_0x009c('0x12')]({'type':_0x55d37d[_0x009c('0x13')],'app':'ExecIf','appdata':_0x009c('0x38'),'context':_0x55d37d[_0x009c('0x17')],'exten':_0x55d37d[_0x009c('0x8')],'priority':_0x10c3f4['length']+_0xd4b1a2[_0x009c('0xe')]+_0x29b398++,'VoiceExtensionId':_0x55d37d[_0x009c('0x1a')]});_0x20e1b4[_0x009c('0x12')]({'type':_0x55d37d['type'],'app':_0x009c('0x14'),'appdata':_0x009c('0x39'),'context':_0x55d37d[_0x009c('0x17')],'exten':_0x55d37d[_0x009c('0x8')],'priority':_0x10c3f4[_0x009c('0x28')]+_0xd4b1a2[_0x009c('0xe')]+_0x29b398++,'VoiceExtensionId':_0x55d37d[_0x009c('0x1a')]});}else{_0x20e1b4['push']({'type':_0x55d37d[_0x009c('0x13')],'app':_0x009c('0x31'),'appdata':_0x009c('0x3a'),'context':_0x55d37d['context'],'exten':_0x55d37d[_0x009c('0x8')],'priority':_0x10c3f4[_0x009c('0x28')]+_0xd4b1a2[_0x009c('0xe')]+_0x29b398++,'VoiceExtensionId':_0x55d37d[_0x009c('0x1a')]});_0x20e1b4[_0x009c('0x12')]({'type':_0x55d37d[_0x009c('0x13')],'app':_0x009c('0x14'),'appdata':'XCALLY-MOTION-PROGRESS=1','context':_0x55d37d['context'],'exten':_0x55d37d[_0x009c('0x8')],'priority':_0x10c3f4[_0x009c('0x28')]+_0xd4b1a2[_0x009c('0xe')]+_0x29b398++,'VoiceExtensionId':_0x55d37d[_0x009c('0x1a')]});}}}for(var _0x1fc350=0x0;_0x1fc350<_0x10c3f4['length'];_0x1fc350+=0x1){var _0x9b1474=_0xd4b1a2[_0x009c('0xe')]+_0x10c3f4[_0x009c('0x28')];var _0x1495de=_0x1fc350===_0x10c3f4[_0x009c('0x28')]-0x1?_0xd4b1a2[_0x009c('0xe')]+_0x20e1b4['length']+_0x2cd787[_0x009c('0x28')]+0x2:_0xd4b1a2[_0x009c('0xe')]+_0x1fc350+0x1;_0x20e1b4[_0x009c('0x3b')](_0x1fc350,0x0,{'type':_0x55d37d['type'],'app':_0x009c('0x3c'),'appdata':_0x10c3f4[_0x1fc350]+'?'+_0x55d37d[_0x009c('0x17')]+',${EXTEN},'+_0x9b1474+':'+_0x55d37d['context']+',${EXTEN},'+_0x1495de,'exten':_0x55d37d['exten'],'context':_0x55d37d[_0x009c('0x17')],'priority':_0xd4b1a2[_0x009c('0xe')]+_0x1fc350,'VoiceExtensionId':_0x250123[_0x4e3494][0x0]['VoiceExtensionId']});}_0x55d37d[_0x009c('0xe')]=_0x20e1b4[_0x009c('0x28')]?_[_0x009c('0x3d')](_0x20e1b4)[_0x009c('0xe')]+0x1:_0xd4b1a2['priority'];_0xd4b1a2[_0x009c('0xe')]=(_0x2cd787['length']?_[_0x009c('0x3d')](_0x2cd787)[_0x009c('0xe')]:_0x55d37d[_0x009c('0xe')])+0x1;_0xd4b1a2[_0x009c('0x11')]=_[_0x009c('0x3e')](_0xd4b1a2['extensions'],_0x20e1b4,[_0x55d37d],_0x2cd787);}_0xd4b1a2[_0x009c('0x11')][_0x009c('0x12')]({'type':_0x250123[_0x4e3494][0x0][_0x009c('0x13')],'app':_0x009c('0x3f'),'exten':_0x250123[_0x4e3494][0x0][_0x009c('0x8')],'context':_0x250123[_0x4e3494][0x0]['context'],'priority':_0xd4b1a2[_0x009c('0xe')],'VoiceExtensionId':_0x250123[_0x4e3494][0x0]['VoiceExtensionId']});_0x9d5296['push'](_0x250123[_0x4e3494][0x0][_0x009c('0x1a')]);_0x19e632=_[_0x009c('0x3e')](_0x19e632,_0xd4b1a2['extensions']);}}return _0x1683cb[_0x009c('0x40')](function(_0x416e5f){return _0x1683cb['models'][_0x009c('0x5')]['destroy']({'where':{'VoiceExtensionId':{'$in':_0x9d5296}},'transaction':_0x416e5f})[_0x009c('0x7')](function(_0x5e0843){return _0x1683cb[_0x009c('0x1')][_0x009c('0x5')][_0x009c('0x41')](_[_0x009c('0x42')](_0x19e632,_0x009c('0xe')),{'transaction':_0x416e5f});});});})['catch'](function(_0xd9169b){console['error'](_0xd9169b);});}exports[_0x009c('0x43')]=rewrite;
\ No newline at end of file
+var _0x05f6=['XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','length','createdAt','updatedAt','interval','tag','hasOwnProperty','callerID','indexOf','app','toLowerCase','appType','custom','answer','$[${XCALLY-MOTION-ANSWER}=0]?Answer','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1','GotoIfTime',',${EXTEN},','last','concat','Hangup','transaction','destroy','catch','error','lodash','util','Interval','findAll','then','intervals','models','IntervalId','VoiceExtension','uniq','map','exten','filter','groupBy','queue','playback','priority','extensions','extension','type','Set','format','CDR(type)=%s','context','inbound','push','VoiceExtensionId','outbound','CDR(destination)=','cutdigits','${EXTEN}','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','):Goto(','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','outboundrouteid=','recordingFormat','none','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','wav','XCALLY-MOTION-ANSWER=0'];(function(_0x1692ef,_0x276342){var _0x39582f=function(_0x322ff6){while(--_0x322ff6){_0x1692ef['push'](_0x1692ef['shift']());}};_0x39582f(++_0x276342);}(_0x05f6,0x1b9));var _0x605f=function(_0x5261be,_0x26ba65){_0x5261be=_0x5261be-0x0;var _0x132f97=_0x05f6[_0x5261be];return _0x132f97;};'use strict';var _=require(_0x605f('0x0'));var util=require(_0x605f('0x1'));function rewrite(_0x16b7a3,_0x3d9b06){var _0x16809c=this;return _0x16b7a3['models'][_0x605f('0x2')][_0x605f('0x3')]({'raw':!![]})[_0x605f('0x4')](function(_0x1ce628){_0x16809c[_0x605f('0x5')]=_0x1ce628;return _0x16b7a3[_0x605f('0x6')]['VoiceExtension'][_0x605f('0x3')]({'where':{'IntervalId':_0x3d9b06[_0x605f('0x7')]},'raw':!![]});})[_0x605f('0x4')](function(_0x562b9e){return _0x16b7a3[_0x605f('0x6')][_0x605f('0x8')][_0x605f('0x3')]({'where':{'exten':{'$in':_[_0x605f('0x9')](_[_0x605f('0xa')](_0x562b9e,_0x605f('0xb')))}},'order':[{'raw':'CAST(priority\x20AS\x20UNSIGNED)'}],'raw':!![]});})[_0x605f('0x4')](function(_0x35b879){var _0x23b567=_[_0x605f('0xc')](_0x35b879,{'priority':'1'});var _0x20c010=_[_0x605f('0xc')](_0x35b879,{'isApp':0x1});var _0x1883f7=_[_0x605f('0xd')](_0x20c010,_0x605f('0xb'));var _0x23cf1b=[_0x605f('0xe'),_0x605f('0xf')];var _0x53fc94=[];var _0x931e3c=[];for(var _0x399d09 in _0x1883f7){if(_0x1883f7['hasOwnProperty'](_0x399d09)){_0x16809c[_0x605f('0x10')]=0x2;_0x16809c[_0x605f('0x11')]=[];_0x16809c[_0x605f('0x12')]=_['find'](_0x23b567,{'exten':_0x1883f7[_0x399d09][0x0][_0x605f('0xb')]});_0x16809c[_0x605f('0x11')]['push']({'type':_0x1883f7[_0x399d09][0x0][_0x605f('0x13')],'app':_0x605f('0x14'),'appdata':util[_0x605f('0x15')](_0x605f('0x16'),_0x1883f7[_0x399d09][0x0]['type']),'context':_0x1883f7[_0x399d09][0x0][_0x605f('0x17')],'exten':_0x1883f7[_0x399d09][0x0][_0x605f('0xb')],'priority':_0x16809c[_0x605f('0x10')]++,'VoiceExtensionId':_0x1883f7[_0x399d09][0x0]['VoiceExtensionId']});if(_0x1883f7[_0x399d09][0x0][_0x605f('0x13')]===_0x605f('0x18')){_0x16809c[_0x605f('0x11')][_0x605f('0x19')]({'type':_0x1883f7[_0x399d09][0x0]['type'],'app':_0x605f('0x14'),'appdata':'CDR(routeid)='+_0x1883f7[_0x399d09][0x0]['VoiceExtensionId'],'context':_0x1883f7[_0x399d09][0x0][_0x605f('0x17')],'exten':_0x1883f7[_0x399d09][0x0][_0x605f('0xb')],'priority':_0x16809c[_0x605f('0x10')]++,'VoiceExtensionId':_0x1883f7[_0x399d09][0x0][_0x605f('0x1a')]});}else if(_0x1883f7[_0x399d09][0x0][_0x605f('0x13')]===_0x605f('0x1b')){if(_0x16809c[_0x605f('0x12')]){_0x16809c[_0x605f('0x11')][_0x605f('0x19')]({'type':_0x1883f7[_0x399d09][0x0][_0x605f('0x13')],'app':_0x605f('0x14'),'appdata':_0x605f('0x1c')+(_0x16809c[_0x605f('0x12')]['cutdigits']?'${EXTEN:'+_0x16809c[_0x605f('0x12')][_0x605f('0x1d')]+'}':_0x605f('0x1e')),'context':_0x1883f7[_0x399d09][0x0][_0x605f('0x17')],'exten':_0x1883f7[_0x399d09][0x0][_0x605f('0xb')],'priority':_0x16809c['priority']++,'VoiceExtensionId':_0x1883f7[_0x399d09][0x0]['VoiceExtensionId']});}_0x16809c[_0x605f('0x11')][_0x605f('0x19')]({'type':_0x1883f7[_0x399d09][0x0]['type'],'app':_0x605f('0x14'),'appdata':'CDR(routeid)='+_0x1883f7[_0x399d09][0x0][_0x605f('0x1a')],'context':_0x1883f7[_0x399d09][0x0][_0x605f('0x17')],'exten':_0x1883f7[_0x399d09][0x0][_0x605f('0xb')],'priority':_0x16809c['priority']++,'VoiceExtensionId':_0x1883f7[_0x399d09][0x0][_0x605f('0x1a')]});var _0x3156ef=_0x16809c[_0x605f('0x10')]++;_0x16809c['extensions'][_0x605f('0x19')]({'type':_0x1883f7[_0x399d09][0x0][_0x605f('0x13')],'app':_0x605f('0x1f'),'appdata':_0x605f('0x20')+(_0x3156ef+0x2)+_0x605f('0x21')+(_0x3156ef+0x1)+')','context':_0x1883f7[_0x399d09][0x0]['context'],'exten':_0x1883f7[_0x399d09][0x0][_0x605f('0xb')],'priority':_0x3156ef,'VoiceExtensionId':_0x1883f7[_0x399d09][0x0][_0x605f('0x1a')]});if(_0x16809c[_0x605f('0x12')]){_0x16809c['extensions']['push']({'type':_0x1883f7[_0x399d09][0x0]['type'],'app':_0x605f('0x14'),'appdata':_0x16809c[_0x605f('0x12')]['cutdigits']?_0x605f('0x22')+_0x16809c['extension'][_0x605f('0x1d')]+'}':_0x605f('0x23'),'context':_0x1883f7[_0x399d09][0x0][_0x605f('0x17')],'exten':_0x1883f7[_0x399d09][0x0]['exten'],'priority':_0x16809c['priority']++,'VoiceExtensionId':_0x1883f7[_0x399d09][0x0][_0x605f('0x1a')]});}_0x16809c[_0x605f('0x11')][_0x605f('0x19')]({'type':_0x1883f7[_0x399d09][0x0][_0x605f('0x13')],'app':_0x605f('0x14'),'appdata':_0x605f('0x24')+_0x1883f7[_0x399d09][0x0][_0x605f('0x1a')],'context':_0x1883f7[_0x399d09][0x0]['context'],'exten':_0x1883f7[_0x399d09][0x0][_0x605f('0xb')],'priority':_0x16809c[_0x605f('0x10')]++,'VoiceExtensionId':_0x1883f7[_0x399d09][0x0][_0x605f('0x1a')]});if(_0x16809c[_0x605f('0x12')]&&_0x16809c[_0x605f('0x12')]['hasOwnProperty']('recordingFormat')&&_0x16809c[_0x605f('0x12')][_0x605f('0x25')]!==_0x605f('0x26')){_0x16809c[_0x605f('0x11')][_0x605f('0x19')]({'type':_0x1883f7[_0x399d09][0x0][_0x605f('0x13')],'app':_0x605f('0x14'),'appdata':_0x605f('0x27'),'context':_0x1883f7[_0x399d09][0x0][_0x605f('0x17')],'exten':_0x1883f7[_0x399d09][0x0][_0x605f('0xb')],'priority':_0x16809c['priority']++,'VoiceExtensionId':_0x1883f7[_0x399d09][0x0][_0x605f('0x1a')]});_0x16809c['extensions'][_0x605f('0x19')]({'type':_0x1883f7[_0x399d09][0x0][_0x605f('0x13')],'app':_0x605f('0x14'),'appdata':'_XCALLY_MIXMONITOR_FORMAT='+_0x16809c[_0x605f('0x12')][_0x605f('0x25')]||_0x605f('0x28'),'context':_0x1883f7[_0x399d09][0x0][_0x605f('0x17')],'exten':_0x1883f7[_0x399d09][0x0]['exten'],'priority':_0x16809c[_0x605f('0x10')]++,'VoiceExtensionId':_0x1883f7[_0x399d09][0x0][_0x605f('0x1a')]});}}_0x16809c[_0x605f('0x11')][_0x605f('0x19')]({'type':_0x1883f7[_0x399d09][0x0][_0x605f('0x13')],'app':_0x605f('0x14'),'appdata':_0x605f('0x29'),'context':_0x1883f7[_0x399d09][0x0]['context'],'exten':_0x1883f7[_0x399d09][0x0]['exten'],'priority':_0x16809c[_0x605f('0x10')]++,'VoiceExtensionId':_0x1883f7[_0x399d09][0x0][_0x605f('0x1a')]});_0x16809c[_0x605f('0x11')][_0x605f('0x19')]({'type':_0x1883f7[_0x399d09][0x0][_0x605f('0x13')],'app':'Set','appdata':_0x605f('0x2a'),'context':_0x1883f7[_0x399d09][0x0][_0x605f('0x17')],'exten':_0x1883f7[_0x399d09][0x0][_0x605f('0xb')],'priority':_0x16809c[_0x605f('0x10')]++,'VoiceExtensionId':_0x1883f7[_0x399d09][0x0]['VoiceExtensionId']});_0x16809c[_0x605f('0x11')][_0x605f('0x19')]({'type':_0x1883f7[_0x399d09][0x0]['type'],'app':_0x605f('0x14'),'appdata':_0x605f('0x2b'),'context':_0x1883f7[_0x399d09][0x0][_0x605f('0x17')],'exten':_0x1883f7[_0x399d09][0x0][_0x605f('0xb')],'priority':_0x16809c[_0x605f('0x10')]++,'VoiceExtensionId':_0x1883f7[_0x399d09][0x0][_0x605f('0x1a')]});for(var _0x5c20a9=0x0,_0x389476=0x0;_0x5c20a9<_0x1883f7[_0x399d09][_0x605f('0x2c')];_0x5c20a9+=0x1,_0x389476=0x0){var _0x49bd2e=_0x1883f7[_0x399d09][_0x5c20a9];if(_0x49bd2e[_0x605f('0x13')]){_0x49bd2e[_0x605f('0x13')]=_0x49bd2e['type']['toLowerCase']();}var _0x4399d5=[];var _0x5a59cd=[];delete _0x49bd2e['id'];delete _0x49bd2e[_0x605f('0x2d')];delete _0x49bd2e[_0x605f('0x2e')];var _0x1d988b=_0x49bd2e[_0x605f('0x2f')]!=='*,*,*,*'?[_0x49bd2e[_0x605f('0x2f')]]:_0x49bd2e[_0x605f('0x7')]?_[_0x605f('0xa')](_[_0x605f('0xc')](_0x16809c[_0x605f('0x5')],{'IntervalId':_0x49bd2e['IntervalId']}),_0x605f('0x2f')):[];if(_0x49bd2e['hasOwnProperty']('tag')){if(_0x49bd2e['tag']&&_0x49bd2e['tag']!=='--'){_0x4399d5[_0x605f('0x19')]({'type':_0x49bd2e[_0x605f('0x13')],'app':_0x605f('0x14'),'appdata':'CDR(tag)='+_0x49bd2e[_0x605f('0x30')],'context':_0x49bd2e[_0x605f('0x17')],'exten':_0x49bd2e[_0x605f('0xb')],'priority':_0x1d988b['length']+_0x16809c[_0x605f('0x10')]+_0x389476++,'VoiceExtensionId':_0x49bd2e['VoiceExtensionId']});}}if(_0x49bd2e[_0x605f('0x13')]===_0x605f('0x1b')&&_0x49bd2e[_0x605f('0x31')](_0x605f('0x32'))){if(_0x49bd2e[_0x605f('0x32')]){_0x4399d5[_0x605f('0x19')]({'type':_0x49bd2e['type'],'app':_0x605f('0x1f'),'appdata':'$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):Set(CALLERID(all)='+_0x49bd2e[_0x605f('0x32')]+')','context':_0x49bd2e[_0x605f('0x17')],'exten':_0x49bd2e[_0x605f('0xb')],'priority':_0x1d988b[_0x605f('0x2c')]+_0x16809c[_0x605f('0x10')]+_0x389476++,'VoiceExtensionId':_0x49bd2e[_0x605f('0x1a')]});}else{_0x4399d5[_0x605f('0x19')]({'type':_0x49bd2e[_0x605f('0x13')],'app':_0x605f('0x1f'),'appdata':'$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):NoOp(No\x20number\x20available)','context':_0x49bd2e[_0x605f('0x17')],'exten':_0x49bd2e[_0x605f('0xb')],'priority':_0x1d988b[_0x605f('0x2c')]+_0x16809c[_0x605f('0x10')]+_0x389476++,'VoiceExtensionId':_0x49bd2e['VoiceExtensionId']});}}if(_0x49bd2e[_0x605f('0x31')]('answer')){if(_0x23cf1b[_0x605f('0x33')](_0x49bd2e[_0x605f('0x34')][_0x605f('0x35')]())>=0x0&&_0x49bd2e[_0x605f('0x36')]!==_0x605f('0x37')){if(_0x49bd2e[_0x605f('0x38')]){_0x4399d5[_0x605f('0x19')]({'type':_0x49bd2e[_0x605f('0x13')],'app':_0x605f('0x1f'),'appdata':_0x605f('0x39'),'context':_0x49bd2e['context'],'exten':_0x49bd2e[_0x605f('0xb')],'priority':_0x1d988b[_0x605f('0x2c')]+_0x16809c[_0x605f('0x10')]+_0x389476++,'VoiceExtensionId':_0x49bd2e['VoiceExtensionId']});_0x4399d5[_0x605f('0x19')]({'type':_0x49bd2e[_0x605f('0x13')],'app':_0x605f('0x14'),'appdata':'XCALLY-MOTION-ANSWER=1','context':_0x49bd2e['context'],'exten':_0x49bd2e['exten'],'priority':_0x1d988b[_0x605f('0x2c')]+_0x16809c['priority']+_0x389476++,'VoiceExtensionId':_0x49bd2e[_0x605f('0x1a')]});}else{_0x4399d5[_0x605f('0x19')]({'type':_0x49bd2e[_0x605f('0x13')],'app':_0x605f('0x1f'),'appdata':_0x605f('0x3a'),'context':_0x49bd2e[_0x605f('0x17')],'exten':_0x49bd2e[_0x605f('0xb')],'priority':_0x1d988b[_0x605f('0x2c')]+_0x16809c[_0x605f('0x10')]+_0x389476++,'VoiceExtensionId':_0x49bd2e['VoiceExtensionId']});_0x4399d5[_0x605f('0x19')]({'type':_0x49bd2e[_0x605f('0x13')],'app':_0x605f('0x14'),'appdata':_0x605f('0x3b'),'context':_0x49bd2e[_0x605f('0x17')],'exten':_0x49bd2e['exten'],'priority':_0x1d988b[_0x605f('0x2c')]+_0x16809c[_0x605f('0x10')]+_0x389476++,'VoiceExtensionId':_0x49bd2e[_0x605f('0x1a')]});}}}for(var _0x440cda=0x0;_0x440cda<_0x1d988b['length'];_0x440cda+=0x1){var _0x44211a=_0x16809c[_0x605f('0x10')]+_0x1d988b['length'];var _0x54faf5=_0x440cda===_0x1d988b[_0x605f('0x2c')]-0x1?_0x16809c['priority']+_0x4399d5[_0x605f('0x2c')]+_0x5a59cd[_0x605f('0x2c')]+0x2:_0x16809c['priority']+_0x440cda+0x1;_0x4399d5['splice'](_0x440cda,0x0,{'type':_0x49bd2e['type'],'app':_0x605f('0x3c'),'appdata':_0x1d988b[_0x440cda]+'?'+_0x49bd2e[_0x605f('0x17')]+_0x605f('0x3d')+_0x44211a+':'+_0x49bd2e[_0x605f('0x17')]+',${EXTEN},'+_0x54faf5,'exten':_0x49bd2e[_0x605f('0xb')],'context':_0x49bd2e[_0x605f('0x17')],'priority':_0x16809c[_0x605f('0x10')]+_0x440cda,'VoiceExtensionId':_0x1883f7[_0x399d09][0x0][_0x605f('0x1a')]});}_0x49bd2e[_0x605f('0x10')]=_0x4399d5[_0x605f('0x2c')]?_[_0x605f('0x3e')](_0x4399d5)['priority']+0x1:_0x16809c[_0x605f('0x10')];_0x16809c[_0x605f('0x10')]=(_0x5a59cd[_0x605f('0x2c')]?_['last'](_0x5a59cd)[_0x605f('0x10')]:_0x49bd2e[_0x605f('0x10')])+0x1;_0x16809c[_0x605f('0x11')]=_[_0x605f('0x3f')](_0x16809c[_0x605f('0x11')],_0x4399d5,[_0x49bd2e],_0x5a59cd);}_0x16809c['extensions'][_0x605f('0x19')]({'type':_0x1883f7[_0x399d09][0x0][_0x605f('0x13')],'app':_0x605f('0x40'),'exten':_0x1883f7[_0x399d09][0x0][_0x605f('0xb')],'context':_0x1883f7[_0x399d09][0x0][_0x605f('0x17')],'priority':_0x16809c['priority'],'VoiceExtensionId':_0x1883f7[_0x399d09][0x0][_0x605f('0x1a')]});_0x53fc94[_0x605f('0x19')](_0x1883f7[_0x399d09][0x0]['VoiceExtensionId']);_0x931e3c=_['concat'](_0x931e3c,_0x16809c[_0x605f('0x11')]);}}return _0x16b7a3[_0x605f('0x41')](function(_0x3ddb12){return _0x16b7a3[_0x605f('0x6')]['VoiceExtension'][_0x605f('0x42')]({'where':{'VoiceExtensionId':{'$in':_0x53fc94}},'transaction':_0x3ddb12})[_0x605f('0x4')](function(_0x35a7b0){return _0x16b7a3[_0x605f('0x6')][_0x605f('0x8')]['bulkCreate'](_['sortBy'](_0x931e3c,_0x605f('0x10')),{'transaction':_0x3ddb12});});});})[_0x605f('0x43')](function(_0x501235){console[_0x605f('0x44')](_0x501235);});}exports['rewrite']=rewrite;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdbd2=['firstName','phone','phone\x20not\x20specified!','birthDate','YYYY-MM-DD','isValid','birthDate\x20format\x20is\x20invalid,\x20YYYY-MM-DD\x20format\x20is\x20supported!','email','email\x20format\x20is\x20not\x20valid!','ListId','CompanyId','duplicate','Duplicate\x20Contact','CmContact','keys','pick','Error\x20while\x20creating\x20contact:\x20','message','stringify','cmContact','checkHopper','inspect','insert','into','fromQuery','scheduledAt','createdAt','updatedAt','select','field','NOW()','ContactId','toString','where','deletedAt\x20IS\x20NULL','ListId\x20=\x20?','phone\x20IS\x20NOT\x20NULL','phone\x20NOT\x20IN\x20(?)','from','cm_contacts','id\x20IN\x20?','calleridnum','\x20=\x20?','cm_hopper','str','cm_hopper_black','findAll','outbound','dialCheckDuplicateType','CmList','then','get','always','push','query','VoiceQueueId','catch','sequelize','all','VoiceQueue','BlackLists','Campaign','Lists','CampaignId','onlyIfOpen','generalCheckHopper','Error\x20processing\x20rows\x20block:','finally','contact:csv_','resume','resolve','emit','Unable\x20to\x20delete\x20temp\x20file:','exit','info','CSV\x20import\x20process\x20stopped!','pause','CSV\x20parsed\x20correctly!','CSV\x20parse\x20error','Error\x20executing\x20contact\x20csv\x20import:','util','papaparse','ioredis','../../../config/environment','api','defaults','redis','localhost','socket.io-emitter','../../../api/cmContact/cmContact.socket','register','argv','undefined','null','Missing\x20filepath\x20parameter!','Missing\x20binding\x20parameters!','zipObject','split','Missing\x20ListId\x20parameter!','Missing\x20socket_timestamp\x20parameter!','error','index','test','isNil','The\x20row\x20is\x20empty\x20or\x20the\x20number\x20of\x20parameters\x20does\x20not\x20match\x20the\x20columns!','errors','length','map','join','hasOwnProperty','data'];(function(_0xbd08b4,_0x4790ed){var _0x314f1e=function(_0x161589){while(--_0x161589){_0xbd08b4['push'](_0xbd08b4['shift']());}};_0x314f1e(++_0x4790ed);}(_0xdbd2,0x12e));var _0x2dbd=function(_0x514eb1,_0x243cae){_0x514eb1=_0x514eb1-0x0;var _0x49977c=_0xdbd2[_0x514eb1];return _0x49977c;};'use strict';var BPromise=require('bluebird');var util=require(_0x2dbd('0x0'));var _=require('lodash');var fs=require('fs');var squel=require('squel');var Papa=require(_0x2dbd('0x1'));var Redis=require(_0x2dbd('0x2'));var db=require('../../../mysqldb')['db'];var config=require(_0x2dbd('0x3'));var logger=require('../../../config/logger')(_0x2dbd('0x4'));config['redis']=_[_0x2dbd('0x5')](config[_0x2dbd('0x6')],{'host':_0x2dbd('0x7'),'port':0x18eb});var socket=require(_0x2dbd('0x8'))(new Redis(config[_0x2dbd('0x6')]));require(_0x2dbd('0x9'))[_0x2dbd('0xa')](socket);try{if(!process[_0x2dbd('0xb')][0x2]||process[_0x2dbd('0xb')][0x2]===_0x2dbd('0xc')||process[_0x2dbd('0xb')][0x2]===_0x2dbd('0xd')){throw new Error(_0x2dbd('0xe'));}var FILEPATH=process[_0x2dbd('0xb')][0x2];if(!process['argv'][0x3]||process[_0x2dbd('0xb')][0x3]===_0x2dbd('0xc')||process[_0x2dbd('0xb')][0x3]===_0x2dbd('0xd')||!process[_0x2dbd('0xb')][0x4]||process[_0x2dbd('0xb')][0x4]===_0x2dbd('0xc')||process[_0x2dbd('0xb')][0x4]==='null'){throw new Error(_0x2dbd('0xf'));}var FIELDS=_[_0x2dbd('0x10')](process[_0x2dbd('0xb')][0x3][_0x2dbd('0x11')](','),process[_0x2dbd('0xb')][0x4]['split'](','));if(!process[_0x2dbd('0xb')][0x5]||process[_0x2dbd('0xb')][0x5]===_0x2dbd('0xc')||process[_0x2dbd('0xb')][0x5]===_0x2dbd('0xd')){throw new Error(_0x2dbd('0x12'));}var LISTID=process[_0x2dbd('0xb')][0x5];var COMPANYID=process['argv'][0x6]&&process[_0x2dbd('0xb')][0x6]!==_0x2dbd('0xc')&&process[_0x2dbd('0xb')][0x6]!==_0x2dbd('0xd')?process[_0x2dbd('0xb')][0x6]:null;var DUPLICATES=process[_0x2dbd('0xb')][0x7]&&process[_0x2dbd('0xb')][0x7]!=='undefined'&&process['argv'][0x7]!==_0x2dbd('0xd')?process[_0x2dbd('0xb')][0x7]:null;if(!process[_0x2dbd('0xb')][0x8]||process[_0x2dbd('0xb')][0x8]===_0x2dbd('0xc')||process[_0x2dbd('0xb')][0x8]===_0x2dbd('0xd')){throw new Error(_0x2dbd('0x13'));}var SOCKET_TIMESTAMP=process[_0x2dbd('0xb')][0x8];}catch(_0x2516c1){logger[_0x2dbd('0x14')](_0x2516c1);endCsv();}var total=0x0;var pTotal=0x0;var success=0x0;var errors=0x0;var duplicates=0x0;var rows=[];var hopperContacts='';var promises=[];var index=0x0;var alreadyInvalid=![];function handleCheckRowError(_0x5a7fa7,_0xb00ef5,_0x1d0b7f,_0x22652f){var _0x3a0121={'message':_0xb00ef5};_0x3a0121[_0x5a7fa7]=!![];if(_0x1d0b7f){_0x3a0121['contact']=_0x1d0b7f;}if(_0x22652f){_0x3a0121[_0x2dbd('0x15')]=_0x22652f;}return _0x3a0121;}function isEmail(_0x311c0c){return/^([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22))*\x40([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d))*$/[_0x2dbd('0x16')](_0x311c0c);}function checkRow(_0x1a460d,_0x240da2,_0x4f28bd){return new BPromise(function(_0x12de2c,_0x110c2e){if(_[_0x2dbd('0x17')](_0x1a460d)){return _0x110c2e(handleCheckRowError(_0x2dbd('0x14'),_0x2dbd('0x18'),null,_0x4f28bd));}if(_0x1a460d[_0x2dbd('0x19')]&&_0x1a460d[_0x2dbd('0x19')][_0x2dbd('0x1a')]){var _0x333131=_[_0x2dbd('0x1b')](_0x1a460d[_0x2dbd('0x19')],'message')[_0x2dbd('0x1c')](';');return _0x110c2e(handleCheckRowError('error',_0x333131,null,_0x4f28bd));}var _0x10fc5e={};for(var _0x290e26 in FIELDS){if(FIELDS[_0x2dbd('0x1d')](_0x290e26)&&FIELDS[_0x290e26]){_0x10fc5e[_0x290e26]=_0x1a460d[_0x2dbd('0x1e')][0x0][FIELDS[_0x290e26]]||_0x1a460d[_0x2dbd('0x1e')][0x0]['\ufeff'+FIELDS[_0x290e26]];}}if(!_0x10fc5e[_0x2dbd('0x1f')]){return _0x110c2e(handleCheckRowError(_0x2dbd('0x14'),'firstName\x20not\x20specified!',null,_0x4f28bd));}if(!_0x10fc5e[_0x2dbd('0x20')]){return _0x110c2e(handleCheckRowError(_0x2dbd('0x14'),_0x2dbd('0x21'),null,_0x4f28bd));}if(_0x10fc5e['birthDate']){var _0x1c17ac=moment(_0x10fc5e[_0x2dbd('0x22')],_0x2dbd('0x23'));if(!_0x1c17ac[_0x2dbd('0x24')]()){return _0x110c2e(handleCheckRowError(_0x2dbd('0x14'),_0x2dbd('0x25'),null,_0x4f28bd));}}if(_0x10fc5e[_0x2dbd('0x26')]){if(!isEmail(_0x10fc5e[_0x2dbd('0x26')])){return _0x110c2e(handleCheckRowError(_0x2dbd('0x14'),_0x2dbd('0x27'),null,_0x4f28bd));}}_0x10fc5e[_0x2dbd('0x28')]=LISTID;_0x10fc5e[_0x2dbd('0x29')]=COMPANYID||undefined;if(DUPLICATES&&DUPLICATES[_0x2dbd('0x1a')]&&_0x240da2){var _0x3f493f={};for(var _0x36dc2d=0x0,_0x20dbf2=DUPLICATES[_0x2dbd('0x1a')];_0x36dc2d<_0x20dbf2;_0x36dc2d+=0x1){_0x3f493f[DUPLICATES[_0x36dc2d]]=_0x10fc5e[DUPLICATES[_0x36dc2d]];}var _0x472fd4=_['find'](_0x240da2,_0x3f493f);if(_0x472fd4){return _0x110c2e(handleCheckRowError(_0x2dbd('0x2a'),_0x2dbd('0x2b'),_0x472fd4,_0x4f28bd));}}return db[_0x2dbd('0x2c')]['create'](_0x10fc5e,{'raw':!![],'hooks':![],'fields':_[_0x2dbd('0x2d')](_0x10fc5e)})['then'](function(_0x172fa3){if(DUPLICATES&&DUPLICATES[_0x2dbd('0x1a')]&&_0x240da2){_0x240da2['push'](_[_0x2dbd('0x2e')](_0x10fc5e,DUPLICATES));}hopperContacts+=(hopperContacts?',':'')+_0x172fa3['id'];return _0x12de2c();})['catch'](function(_0x456162){return _0x110c2e(handleCheckRowError('error',_0x2dbd('0x2f')+(_0x456162[_0x2dbd('0x30')]||JSON[_0x2dbd('0x31')](_0x456162)),null,_0x4f28bd));});});}function checkHopper(){function _0x13aa31(){return function(_0xe6e8ca){logger[_0x2dbd('0x14')](_0x2dbd('0x32'),_0x2dbd('0x33'),util[_0x2dbd('0x34')](_0xe6e8ca,{'showHidden':![],'depth':null}));};}var _0x12c203=function(_0x4715da,_0x3c001c){var _0x298b4d=squel[_0x2dbd('0x35')]()[_0x2dbd('0x36')]('cm_hopper')[_0x2dbd('0x37')]([_0x2dbd('0x20'),_0x2dbd('0x38'),'ContactId',_0x2dbd('0x28'),_0x3c001c,_0x2dbd('0x39'),_0x2dbd('0x3a')],squel[_0x2dbd('0x3b')]()[_0x2dbd('0x3c')](_0x2dbd('0x20'),'phone')[_0x2dbd('0x3c')](_0x2dbd('0x3d'),_0x2dbd('0x38'))['field']('id',_0x2dbd('0x3e'))[_0x2dbd('0x3c')](LISTID['toString'](),_0x2dbd('0x28'))[_0x2dbd('0x3c')](_0x4715da['id'][_0x2dbd('0x3f')](),_0x3c001c)[_0x2dbd('0x3c')](_0x2dbd('0x3d'),_0x2dbd('0x39'))[_0x2dbd('0x3c')](_0x2dbd('0x3d'),_0x2dbd('0x3a'))['from']('cm_contacts')[_0x2dbd('0x40')](_0x2dbd('0x41'))[_0x2dbd('0x40')](_0x2dbd('0x42'),LISTID['toString']())['where'](_0x2dbd('0x43'))['where'](_0x2dbd('0x44'),squel[_0x2dbd('0x3b')]()[_0x2dbd('0x3c')](_0x2dbd('0x20'))['from']('cm_hopper')[_0x2dbd('0x40')](_0x3c001c+'\x20=\x20?',_0x4715da['id']['toString']())))[_0x2dbd('0x3f')]();return _0x298b4d;};var _0x5c2b96=function(_0x65db7a,_0x3ab920){var _0x2e3880=squel['insert']()['into']('cm_hopper')[_0x2dbd('0x37')]([_0x2dbd('0x20'),_0x2dbd('0x38'),'ContactId',_0x2dbd('0x28'),_0x3ab920,_0x2dbd('0x39'),_0x2dbd('0x3a')],squel[_0x2dbd('0x3b')]()[_0x2dbd('0x3c')](_0x2dbd('0x20'),'phone')[_0x2dbd('0x3c')](_0x2dbd('0x3d'),_0x2dbd('0x38'))[_0x2dbd('0x3c')]('id','ContactId')[_0x2dbd('0x3c')](LISTID[_0x2dbd('0x3f')](),_0x2dbd('0x28'))[_0x2dbd('0x3c')](_0x65db7a['id']['toString'](),_0x3ab920)[_0x2dbd('0x3c')](_0x2dbd('0x3d'),'createdAt')[_0x2dbd('0x3c')](_0x2dbd('0x3d'),_0x2dbd('0x3a'))[_0x2dbd('0x45')](_0x2dbd('0x46'))['where'](_0x2dbd('0x41'))[_0x2dbd('0x40')](_0x2dbd('0x42'),LISTID[_0x2dbd('0x3f')]())[_0x2dbd('0x40')](_0x2dbd('0x47'),squel['str'](hopperContacts))[_0x2dbd('0x40')]('phone\x20IS\x20NOT\x20NULL')['where'](_0x2dbd('0x44'),squel[_0x2dbd('0x3b')]()['field'](_0x2dbd('0x48'))['from']('cm_hopper_final')[_0x2dbd('0x40')](_0x3ab920+_0x2dbd('0x49'),_0x65db7a['id'][_0x2dbd('0x3f')]()))[_0x2dbd('0x40')](_0x2dbd('0x44'),squel[_0x2dbd('0x3b')]()[_0x2dbd('0x3c')](_0x2dbd('0x20'))[_0x2dbd('0x45')]('cm_hopper')[_0x2dbd('0x40')](_0x3ab920+_0x2dbd('0x49'),_0x65db7a['id']['toString']())))[_0x2dbd('0x3f')]();return _0x2e3880;};function _0x47f20e(_0x5397e4,_0x4875bb){var _0x15b25b=squel[_0x2dbd('0x35')]()[_0x2dbd('0x36')](_0x2dbd('0x4a'))[_0x2dbd('0x37')]([_0x2dbd('0x20'),_0x2dbd('0x38'),_0x2dbd('0x3e'),'ListId',_0x4875bb,_0x2dbd('0x39'),_0x2dbd('0x3a')],squel[_0x2dbd('0x3b')]()[_0x2dbd('0x3c')](_0x2dbd('0x20'),'phone')[_0x2dbd('0x3c')](_0x2dbd('0x3d'),_0x2dbd('0x38'))[_0x2dbd('0x3c')]('id',_0x2dbd('0x3e'))[_0x2dbd('0x3c')](LISTID['toString'](),_0x2dbd('0x28'))[_0x2dbd('0x3c')](_0x5397e4['id'][_0x2dbd('0x3f')](),_0x4875bb)['field'](_0x2dbd('0x3d'),_0x2dbd('0x39'))[_0x2dbd('0x3c')]('NOW()','updatedAt')[_0x2dbd('0x45')](_0x2dbd('0x46'))[_0x2dbd('0x40')](_0x2dbd('0x41'))[_0x2dbd('0x40')](_0x2dbd('0x42'),LISTID[_0x2dbd('0x3f')]())['where'](_0x2dbd('0x47'),squel[_0x2dbd('0x4b')](hopperContacts))['where'](_0x2dbd('0x43')))[_0x2dbd('0x3f')]();return _0x15b25b;}function _0x4f855b(_0x898423,_0x22ba2e){var _0x362db8=squel[_0x2dbd('0x35')]()['into'](_0x2dbd('0x4c'))[_0x2dbd('0x37')](['phone','ContactId',_0x2dbd('0x28'),_0x22ba2e,'createdAt',_0x2dbd('0x3a')],squel['select']()[_0x2dbd('0x3c')](_0x2dbd('0x20'),'phone')['field']('id',_0x2dbd('0x3e'))[_0x2dbd('0x3c')](LISTID['toString'](),'ListId')[_0x2dbd('0x3c')](_0x898423['id'][_0x2dbd('0x3f')](),_0x22ba2e)[_0x2dbd('0x3c')](_0x2dbd('0x3d'),_0x2dbd('0x39'))[_0x2dbd('0x3c')](_0x2dbd('0x3d'),_0x2dbd('0x3a'))['from'](_0x2dbd('0x46'))['where'](_0x2dbd('0x41'))[_0x2dbd('0x40')](_0x2dbd('0x42'),LISTID[_0x2dbd('0x3f')]())['where'](_0x2dbd('0x47'),squel['str'](hopperContacts))[_0x2dbd('0x40')](_0x2dbd('0x43')))['toString']();return _0x362db8;}return db['VoiceQueue'][_0x2dbd('0x4d')]({'where':{'type':_0x2dbd('0x4e')},'attributes':['id',_0x2dbd('0x4f')],'include':[{'model':db[_0x2dbd('0x50')],'as':'Lists','where':{'id':LISTID}}]})[_0x2dbd('0x51')](function(_0x309ac1){var _0x1a813b=[];if(_0x309ac1){var _0x118ce9;for(var _0x7f9910=0x0,_0x271506;_0x7f9910<_0x309ac1[_0x2dbd('0x1a')];_0x7f9910+=0x1){_0x271506=_0x309ac1[_0x7f9910][_0x2dbd('0x52')]({'plain':!![]});switch(_0x271506[_0x2dbd('0x4f')]){case _0x2dbd('0x53'):_0x1a813b[_0x2dbd('0x54')](db['sequelize'][_0x2dbd('0x55')](_0x5c2b96(_0x271506,_0x2dbd('0x56')))['then'](function(){})[_0x2dbd('0x57')](_0x13aa31()));break;case'onlyIfOpen':_0x1a813b[_0x2dbd('0x54')](db[_0x2dbd('0x58')][_0x2dbd('0x55')](_0x12c203(_0x271506,_0x2dbd('0x56')))['then'](function(){})['catch'](_0x13aa31()));break;default:_0x1a813b[_0x2dbd('0x54')](db['sequelize'][_0x2dbd('0x55')](_0x47f20e(_0x271506,_0x2dbd('0x56')))[_0x2dbd('0x51')](function(){})[_0x2dbd('0x57')](_0x13aa31()));}}}return _0x1a813b;})[_0x2dbd('0x59')]()[_0x2dbd('0x51')](function(){return db[_0x2dbd('0x5a')][_0x2dbd('0x4d')]({'where':{'type':_0x2dbd('0x4e')},'attributes':['id'],'include':[{'model':db[_0x2dbd('0x50')],'as':_0x2dbd('0x5b'),'where':{'id':LISTID}}]})[_0x2dbd('0x51')](function(_0x30d6f9){var _0x24e46b=[];if(_0x30d6f9){var _0x5e2ad0;for(var _0x2f63ef=0x0,_0x2b61c7;_0x2f63ef<_0x30d6f9['length'];_0x2f63ef+=0x1){_0x2b61c7=_0x30d6f9[_0x2f63ef][_0x2dbd('0x52')]({'plain':!![]});_0x24e46b[_0x2dbd('0x54')](db[_0x2dbd('0x58')]['query'](_0x4f855b(_0x2b61c7,_0x2dbd('0x56')))[_0x2dbd('0x51')](function(){})['catch'](_0x13aa31()));}}return _0x24e46b;})[_0x2dbd('0x59')]();})[_0x2dbd('0x51')](function(){return db[_0x2dbd('0x5c')]['findAll']({'attributes':['id',_0x2dbd('0x4f')],'include':[{'model':db[_0x2dbd('0x50')],'as':_0x2dbd('0x5d'),'where':{'id':LISTID}}]})['then'](function(_0x3930df){var _0x4705b9=[];if(_0x3930df){for(var _0x5a1f38=0x0,_0x507dc9;_0x5a1f38<_0x3930df['length'];_0x5a1f38+=0x1){_0x507dc9=_0x3930df[_0x5a1f38][_0x2dbd('0x52')]({'plain':!![]});switch(_0x507dc9['dialCheckDuplicateType']){case'always':_0x4705b9[_0x2dbd('0x54')](db['sequelize']['query'](_0x5c2b96(_0x507dc9,_0x2dbd('0x5e')))[_0x2dbd('0x51')](function(){})['catch'](_0x13aa31()));break;case _0x2dbd('0x5f'):_0x4705b9[_0x2dbd('0x54')](db[_0x2dbd('0x58')][_0x2dbd('0x55')](_0x12c203(_0x507dc9,'CampaignId'))['then'](function(){})[_0x2dbd('0x57')](_0x13aa31()));break;default:_0x4705b9[_0x2dbd('0x54')](db[_0x2dbd('0x58')][_0x2dbd('0x55')](_0x47f20e(_0x507dc9,'CampaignId'))[_0x2dbd('0x51')](function(){})['catch'](_0x13aa31()));}}}return _0x4705b9;})[_0x2dbd('0x59')]();})[_0x2dbd('0x51')](function(){return db['Campaign'][_0x2dbd('0x4d')]({'attributes':['id'],'include':[{'model':db[_0x2dbd('0x50')],'as':_0x2dbd('0x5b'),'where':{'id':LISTID}}]})[_0x2dbd('0x51')](function(_0x878a77){var _0x5f10cc=[];if(_0x878a77){for(var _0x41e086=0x0,_0xcdb599;_0x41e086<_0x878a77[_0x2dbd('0x1a')];_0x41e086+=0x1){_0xcdb599=_0x878a77[_0x41e086][_0x2dbd('0x52')]({'plain':!![]});_0x5f10cc['push'](db['sequelize'][_0x2dbd('0x55')](_0x4f855b(_0xcdb599,_0x2dbd('0x5e')))[_0x2dbd('0x51')](function(){})[_0x2dbd('0x57')](_0x13aa31()));}}return _0x5f10cc;})[_0x2dbd('0x59')]();})[_0x2dbd('0x57')](function(_0x2d4702){logger[_0x2dbd('0x14')]('cmContact,\x20%s,\x20%s',_0x2dbd('0x60'),_0x2d4702[_0x2dbd('0x30')]);});}var processPromises=function(_0x512304){return BPromise['all'](promises)['then'](function(_0x3112b6){})[_0x2dbd('0x57')](function(_0x274467){logger['error'](_0x2dbd('0x61'),JSON[_0x2dbd('0x31')](_0x274467));})[_0x2dbd('0x62')](function(){socket['emit'](_0x2dbd('0x63')+SOCKET_TIMESTAMP,{'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});promises=[];success=0x0;errors=0x0;duplicates=0x0;rows=[];if(_0x512304){return _0x512304[_0x2dbd('0x64')]();}});};var endCsv=function(){return BPromise[_0x2dbd('0x65')]()[_0x2dbd('0x51')](function(){if(hopperContacts){return checkHopper();}})['then'](function(){socket[_0x2dbd('0x66')](_0x2dbd('0x63')+SOCKET_TIMESTAMP,{'finished':!![],'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});try{fs['unlinkSync'](FILEPATH);}catch(_0x296cbe){logger[_0x2dbd('0x14')](_0x2dbd('0x67'),JSON['stringify'](_0x296cbe));}finally{process[_0x2dbd('0x68')](0x0);}});};process['on']('SIGINT',function(){logger[_0x2dbd('0x69')](_0x2dbd('0x6a'));endCsv();});function main(){return BPromise[_0x2dbd('0x65')]()[_0x2dbd('0x51')](function(){if(DUPLICATES){DUPLICATES=DUPLICATES[_0x2dbd('0x11')](',');return db['CmContact'][_0x2dbd('0x4d')]({'where':{'ListId':LISTID},'attributes':DUPLICATES,'raw':!![]});}})['then'](function(_0x1e6089){var _0x4e7101=fs['createReadStream'](FILEPATH,{'highWaterMark':0xf*0x400*0x400});Papa['parse'](_0x4e7101,{'header':!![],'skipEmptyLines':!![],'step':function(_0x234ae5,_0xd9cc84){total+=0x1;var _0x4456b3=total;promises[_0x2dbd('0x54')](checkRow(_0x234ae5,_0x1e6089,_0x4456b3)['then'](function(){success+=0x1;})['catch'](function(_0x4f24e5){if(_0x4f24e5[_0x2dbd('0x14')]){errors+=0x1;delete _0x4f24e5['error'];}else if(_0x4f24e5[_0x2dbd('0x2a')]){duplicates+=0x1;delete _0x4f24e5[_0x2dbd('0x2a')];}rows[_0x2dbd('0x54')](_0x4f24e5);}));if(total%0xc8===0x0){_0xd9cc84[_0x2dbd('0x6b')]();return processPromises(_0xd9cc84);}},'complete':function(){return processPromises()[_0x2dbd('0x51')](function(){logger[_0x2dbd('0x69')](_0x2dbd('0x6c'));endCsv();});},'error':function(_0x2e24cc,_0x3b3dc8){logger[_0x2dbd('0x69')](_0x2dbd('0x6d'),JSON[_0x2dbd('0x31')](_0x2e24cc));endCsv();}});})[_0x2dbd('0x57')](function(_0x1495bf){logger[_0x2dbd('0x14')](_0x2dbd('0x6e'),JSON[_0x2dbd('0x31')](_0x1495bf));});}main();
\ No newline at end of file
+var _0xc43b=['Error\x20executing\x20contact\x20csv\x20import:','bluebird','util','squel','papaparse','ioredis','../../../mysqldb','../../../config/environment','../../../config/logger','api','defaults','redis','localhost','socket.io-emitter','../../../api/cmContact/cmContact.socket','register','argv','undefined','null','Missing\x20binding\x20parameters!','zipObject','split','error','contact','isNil','The\x20row\x20is\x20empty\x20or\x20the\x20number\x20of\x20parameters\x20does\x20not\x20match\x20the\x20columns!','errors','map','message','join','hasOwnProperty','data','firstName','firstName\x20not\x20specified!','phone','phone\x20not\x20specified!','birthDate','isValid','email','email\x20format\x20is\x20not\x20valid!','ListId','find','Duplicate\x20Contact','CmContact','create','keys','length','push','pick','catch','Error\x20while\x20creating\x20contact:\x20','cmContact','checkHopper','inspect','insert','into','cm_hopper','ContactId','createdAt','updatedAt','select','field','NOW()','from','cm_contacts','deletedAt\x20IS\x20NULL','where','ListId\x20=\x20?','phone\x20IS\x20NOT\x20NULL','phone\x20NOT\x20IN\x20(?)','toString','fromQuery','scheduledAt','id\x20IN\x20?','str','calleridnum','\x20=\x20?','cm_hopper_black','VoiceQueue','dialCheckDuplicateType','Lists','then','get','always','sequelize','query','VoiceQueueId','all','findAll','outbound','CmList','BlackLists','Campaign','onlyIfOpen','CampaignId','cmContact,\x20%s,\x20%s','generalCheckHopper','Error\x20processing\x20rows\x20block:','stringify','emit','contact:csv_','resume','resolve','exit','SIGINT','info','CSV\x20import\x20process\x20stopped!','createReadStream','parse','duplicate','CSV\x20parsed\x20correctly!','CSV\x20parse\x20error'];(function(_0x4d613c,_0x55f220){var _0x301fe3=function(_0x5eec0b){while(--_0x5eec0b){_0x4d613c['push'](_0x4d613c['shift']());}};_0x301fe3(++_0x55f220);}(_0xc43b,0x71));var _0xbc43=function(_0x35885a,_0x42fed7){_0x35885a=_0x35885a-0x0;var _0xe86249=_0xc43b[_0x35885a];return _0xe86249;};'use strict';var BPromise=require(_0xbc43('0x0'));var util=require(_0xbc43('0x1'));var _=require('lodash');var fs=require('fs');var squel=require(_0xbc43('0x2'));var Papa=require(_0xbc43('0x3'));var Redis=require(_0xbc43('0x4'));var db=require(_0xbc43('0x5'))['db'];var config=require(_0xbc43('0x6'));var logger=require(_0xbc43('0x7'))(_0xbc43('0x8'));config['redis']=_[_0xbc43('0x9')](config[_0xbc43('0xa')],{'host':_0xbc43('0xb'),'port':0x18eb});var socket=require(_0xbc43('0xc'))(new Redis(config['redis']));require(_0xbc43('0xd'))[_0xbc43('0xe')](socket);try{if(!process[_0xbc43('0xf')][0x2]||process[_0xbc43('0xf')][0x2]===_0xbc43('0x10')||process[_0xbc43('0xf')][0x2]===_0xbc43('0x11')){throw new Error('Missing\x20filepath\x20parameter!');}var FILEPATH=process['argv'][0x2];if(!process[_0xbc43('0xf')][0x3]||process[_0xbc43('0xf')][0x3]===_0xbc43('0x10')||process['argv'][0x3]===_0xbc43('0x11')||!process['argv'][0x4]||process[_0xbc43('0xf')][0x4]===_0xbc43('0x10')||process[_0xbc43('0xf')][0x4]==='null'){throw new Error(_0xbc43('0x12'));}var FIELDS=_[_0xbc43('0x13')](process['argv'][0x3][_0xbc43('0x14')](','),process[_0xbc43('0xf')][0x4][_0xbc43('0x14')](','));if(!process[_0xbc43('0xf')][0x5]||process[_0xbc43('0xf')][0x5]===_0xbc43('0x10')||process['argv'][0x5]===_0xbc43('0x11')){throw new Error('Missing\x20ListId\x20parameter!');}var LISTID=process[_0xbc43('0xf')][0x5];var COMPANYID=process[_0xbc43('0xf')][0x6]&&process[_0xbc43('0xf')][0x6]!==_0xbc43('0x10')&&process[_0xbc43('0xf')][0x6]!==_0xbc43('0x11')?process['argv'][0x6]:null;var DUPLICATES=process['argv'][0x7]&&process[_0xbc43('0xf')][0x7]!==_0xbc43('0x10')&&process[_0xbc43('0xf')][0x7]!==_0xbc43('0x11')?process[_0xbc43('0xf')][0x7]:null;if(!process[_0xbc43('0xf')][0x8]||process[_0xbc43('0xf')][0x8]===_0xbc43('0x10')||process[_0xbc43('0xf')][0x8]===_0xbc43('0x11')){throw new Error('Missing\x20socket_timestamp\x20parameter!');}var SOCKET_TIMESTAMP=process[_0xbc43('0xf')][0x8];}catch(_0x2b39c4){logger[_0xbc43('0x15')](_0x2b39c4);endCsv();}var total=0x0;var pTotal=0x0;var success=0x0;var errors=0x0;var duplicates=0x0;var rows=[];var hopperContacts='';var promises=[];var index=0x0;var alreadyInvalid=![];function handleCheckRowError(_0x40c7e2,_0x32c8a4,_0x414778,_0x7700bc){var _0x1970f5={'message':_0x32c8a4};_0x1970f5[_0x40c7e2]=!![];if(_0x414778){_0x1970f5[_0xbc43('0x16')]=_0x414778;}if(_0x7700bc){_0x1970f5['index']=_0x7700bc;}return _0x1970f5;}function isEmail(_0x3bbc1f){return/^([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22))*\x40([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d))*$/['test'](_0x3bbc1f);}function checkRow(_0x4a47eb,_0x20b685,_0x2cf65b){return new BPromise(function(_0x49a600,_0x12aba4){if(_[_0xbc43('0x17')](_0x4a47eb)){return _0x12aba4(handleCheckRowError(_0xbc43('0x15'),_0xbc43('0x18'),null,_0x2cf65b));}if(_0x4a47eb[_0xbc43('0x19')]&&_0x4a47eb[_0xbc43('0x19')]['length']){var _0x172186=_[_0xbc43('0x1a')](_0x4a47eb[_0xbc43('0x19')],_0xbc43('0x1b'))[_0xbc43('0x1c')](';');return _0x12aba4(handleCheckRowError(_0xbc43('0x15'),_0x172186,null,_0x2cf65b));}var _0x87985c={};for(var _0x28ec98 in FIELDS){if(FIELDS[_0xbc43('0x1d')](_0x28ec98)&&FIELDS[_0x28ec98]){_0x87985c[_0x28ec98]=_0x4a47eb[_0xbc43('0x1e')][0x0][FIELDS[_0x28ec98]]||_0x4a47eb['data'][0x0]['\ufeff'+FIELDS[_0x28ec98]];}}if(!_0x87985c[_0xbc43('0x1f')]){return _0x12aba4(handleCheckRowError(_0xbc43('0x15'),_0xbc43('0x20'),null,_0x2cf65b));}if(!_0x87985c[_0xbc43('0x21')]){return _0x12aba4(handleCheckRowError(_0xbc43('0x15'),_0xbc43('0x22'),null,_0x2cf65b));}if(_0x87985c['birthDate']){var _0x193c9f=moment(_0x87985c[_0xbc43('0x23')],'YYYY-MM-DD');if(!_0x193c9f[_0xbc43('0x24')]()){return _0x12aba4(handleCheckRowError(_0xbc43('0x15'),'birthDate\x20format\x20is\x20invalid,\x20YYYY-MM-DD\x20format\x20is\x20supported!',null,_0x2cf65b));}}if(_0x87985c[_0xbc43('0x25')]){if(!isEmail(_0x87985c[_0xbc43('0x25')])){return _0x12aba4(handleCheckRowError(_0xbc43('0x15'),_0xbc43('0x26'),null,_0x2cf65b));}}_0x87985c[_0xbc43('0x27')]=LISTID;_0x87985c['CompanyId']=COMPANYID||undefined;if(DUPLICATES&&DUPLICATES['length']&&_0x20b685){var _0x1805ed={};for(var _0x37a7d1=0x0,_0x4415e4=DUPLICATES['length'];_0x37a7d1<_0x4415e4;_0x37a7d1+=0x1){_0x1805ed[DUPLICATES[_0x37a7d1]]=_0x87985c[DUPLICATES[_0x37a7d1]];}var _0x13bc71=_[_0xbc43('0x28')](_0x20b685,_0x1805ed);if(_0x13bc71){return _0x12aba4(handleCheckRowError('duplicate',_0xbc43('0x29'),_0x13bc71,_0x2cf65b));}}return db[_0xbc43('0x2a')][_0xbc43('0x2b')](_0x87985c,{'raw':!![],'hooks':![],'fields':_[_0xbc43('0x2c')](_0x87985c)})['then'](function(_0x15569b){if(DUPLICATES&&DUPLICATES[_0xbc43('0x2d')]&&_0x20b685){_0x20b685[_0xbc43('0x2e')](_[_0xbc43('0x2f')](_0x87985c,DUPLICATES));}hopperContacts+=(hopperContacts?',':'')+_0x15569b['id'];return _0x49a600();})[_0xbc43('0x30')](function(_0x564af6){return _0x12aba4(handleCheckRowError(_0xbc43('0x15'),_0xbc43('0x31')+(_0x564af6[_0xbc43('0x1b')]||JSON['stringify'](_0x564af6)),null,_0x2cf65b));});});}function checkHopper(){function _0x1965ec(){return function(_0xce577b){logger[_0xbc43('0x15')](_0xbc43('0x32'),_0xbc43('0x33'),util[_0xbc43('0x34')](_0xce577b,{'showHidden':![],'depth':null}));};}var _0x12da7c=function(_0x2cf4f3,_0x126b78){var _0x522516=squel[_0xbc43('0x35')]()[_0xbc43('0x36')](_0xbc43('0x37'))['fromQuery']([_0xbc43('0x21'),'scheduledAt',_0xbc43('0x38'),_0xbc43('0x27'),_0x126b78,_0xbc43('0x39'),_0xbc43('0x3a')],squel[_0xbc43('0x3b')]()[_0xbc43('0x3c')](_0xbc43('0x21'),_0xbc43('0x21'))[_0xbc43('0x3c')](_0xbc43('0x3d'),'scheduledAt')[_0xbc43('0x3c')]('id',_0xbc43('0x38'))[_0xbc43('0x3c')](LISTID['toString'](),_0xbc43('0x27'))['field'](_0x2cf4f3['id']['toString'](),_0x126b78)[_0xbc43('0x3c')]('NOW()',_0xbc43('0x39'))[_0xbc43('0x3c')](_0xbc43('0x3d'),_0xbc43('0x3a'))[_0xbc43('0x3e')](_0xbc43('0x3f'))['where'](_0xbc43('0x40'))[_0xbc43('0x41')](_0xbc43('0x42'),LISTID['toString']())[_0xbc43('0x41')](_0xbc43('0x43'))['where'](_0xbc43('0x44'),squel[_0xbc43('0x3b')]()[_0xbc43('0x3c')](_0xbc43('0x21'))[_0xbc43('0x3e')]('cm_hopper')[_0xbc43('0x41')](_0x126b78+'\x20=\x20?',_0x2cf4f3['id']['toString']())))[_0xbc43('0x45')]();return _0x522516;};var _0x3cd1e8=function(_0x3e7d98,_0x36d51b){var _0x3fde87=squel[_0xbc43('0x35')]()[_0xbc43('0x36')](_0xbc43('0x37'))[_0xbc43('0x46')]([_0xbc43('0x21'),'scheduledAt',_0xbc43('0x38'),_0xbc43('0x27'),_0x36d51b,_0xbc43('0x39'),_0xbc43('0x3a')],squel[_0xbc43('0x3b')]()[_0xbc43('0x3c')](_0xbc43('0x21'),'phone')['field'](_0xbc43('0x3d'),_0xbc43('0x47'))[_0xbc43('0x3c')]('id',_0xbc43('0x38'))['field'](LISTID[_0xbc43('0x45')](),_0xbc43('0x27'))[_0xbc43('0x3c')](_0x3e7d98['id'][_0xbc43('0x45')](),_0x36d51b)[_0xbc43('0x3c')](_0xbc43('0x3d'),_0xbc43('0x39'))['field'](_0xbc43('0x3d'),_0xbc43('0x3a'))[_0xbc43('0x3e')]('cm_contacts')['where'](_0xbc43('0x40'))[_0xbc43('0x41')](_0xbc43('0x42'),LISTID['toString']())['where'](_0xbc43('0x48'),squel[_0xbc43('0x49')](hopperContacts))['where'](_0xbc43('0x43'))[_0xbc43('0x41')]('phone\x20NOT\x20IN\x20(?)',squel[_0xbc43('0x3b')]()[_0xbc43('0x3c')](_0xbc43('0x4a'))[_0xbc43('0x3e')]('cm_hopper_final')[_0xbc43('0x41')](_0x36d51b+_0xbc43('0x4b'),_0x3e7d98['id']['toString']()))[_0xbc43('0x41')](_0xbc43('0x44'),squel[_0xbc43('0x3b')]()[_0xbc43('0x3c')](_0xbc43('0x21'))['from'](_0xbc43('0x37'))[_0xbc43('0x41')](_0x36d51b+_0xbc43('0x4b'),_0x3e7d98['id']['toString']())))[_0xbc43('0x45')]();return _0x3fde87;};function _0x1ebce1(_0x194887,_0x347eb1){var _0x316280=squel[_0xbc43('0x35')]()[_0xbc43('0x36')](_0xbc43('0x37'))[_0xbc43('0x46')](['phone',_0xbc43('0x47'),'ContactId',_0xbc43('0x27'),_0x347eb1,_0xbc43('0x39'),_0xbc43('0x3a')],squel[_0xbc43('0x3b')]()[_0xbc43('0x3c')]('phone',_0xbc43('0x21'))['field'](_0xbc43('0x3d'),_0xbc43('0x47'))[_0xbc43('0x3c')]('id','ContactId')[_0xbc43('0x3c')](LISTID[_0xbc43('0x45')](),_0xbc43('0x27'))[_0xbc43('0x3c')](_0x194887['id']['toString'](),_0x347eb1)[_0xbc43('0x3c')](_0xbc43('0x3d'),'createdAt')[_0xbc43('0x3c')](_0xbc43('0x3d'),_0xbc43('0x3a'))[_0xbc43('0x3e')](_0xbc43('0x3f'))[_0xbc43('0x41')]('deletedAt\x20IS\x20NULL')[_0xbc43('0x41')](_0xbc43('0x42'),LISTID[_0xbc43('0x45')]())[_0xbc43('0x41')](_0xbc43('0x48'),squel[_0xbc43('0x49')](hopperContacts))[_0xbc43('0x41')](_0xbc43('0x43')))[_0xbc43('0x45')]();return _0x316280;}function _0x80b669(_0x3c4fff,_0x163b21){var _0x257130=squel[_0xbc43('0x35')]()[_0xbc43('0x36')](_0xbc43('0x4c'))[_0xbc43('0x46')]([_0xbc43('0x21'),_0xbc43('0x38'),'ListId',_0x163b21,_0xbc43('0x39'),_0xbc43('0x3a')],squel['select']()['field'](_0xbc43('0x21'),_0xbc43('0x21'))[_0xbc43('0x3c')]('id','ContactId')['field'](LISTID[_0xbc43('0x45')](),_0xbc43('0x27'))[_0xbc43('0x3c')](_0x3c4fff['id'][_0xbc43('0x45')](),_0x163b21)[_0xbc43('0x3c')](_0xbc43('0x3d'),'createdAt')[_0xbc43('0x3c')]('NOW()',_0xbc43('0x3a'))[_0xbc43('0x3e')](_0xbc43('0x3f'))[_0xbc43('0x41')](_0xbc43('0x40'))[_0xbc43('0x41')](_0xbc43('0x42'),LISTID['toString']())[_0xbc43('0x41')](_0xbc43('0x48'),squel[_0xbc43('0x49')](hopperContacts))[_0xbc43('0x41')](_0xbc43('0x43')))[_0xbc43('0x45')]();return _0x257130;}return db[_0xbc43('0x4d')]['findAll']({'where':{'type':'outbound'},'attributes':['id',_0xbc43('0x4e')],'include':[{'model':db['CmList'],'as':_0xbc43('0x4f'),'where':{'id':LISTID}}]})[_0xbc43('0x50')](function(_0x305dd5){var _0x49857f=[];if(_0x305dd5){var _0x392aaa;for(var _0x222487=0x0,_0x150962;_0x222487<_0x305dd5['length'];_0x222487+=0x1){_0x150962=_0x305dd5[_0x222487][_0xbc43('0x51')]({'plain':!![]});switch(_0x150962[_0xbc43('0x4e')]){case _0xbc43('0x52'):_0x49857f[_0xbc43('0x2e')](db[_0xbc43('0x53')][_0xbc43('0x54')](_0x3cd1e8(_0x150962,_0xbc43('0x55')))[_0xbc43('0x50')](function(){})[_0xbc43('0x30')](_0x1965ec()));break;case'onlyIfOpen':_0x49857f[_0xbc43('0x2e')](db[_0xbc43('0x53')][_0xbc43('0x54')](_0x12da7c(_0x150962,_0xbc43('0x55')))[_0xbc43('0x50')](function(){})['catch'](_0x1965ec()));break;default:_0x49857f[_0xbc43('0x2e')](db[_0xbc43('0x53')][_0xbc43('0x54')](_0x1ebce1(_0x150962,'VoiceQueueId'))[_0xbc43('0x50')](function(){})[_0xbc43('0x30')](_0x1965ec()));}}}return _0x49857f;})[_0xbc43('0x56')]()['then'](function(){return db[_0xbc43('0x4d')][_0xbc43('0x57')]({'where':{'type':_0xbc43('0x58')},'attributes':['id'],'include':[{'model':db[_0xbc43('0x59')],'as':_0xbc43('0x5a'),'where':{'id':LISTID}}]})[_0xbc43('0x50')](function(_0x39c214){var _0x50738=[];if(_0x39c214){var _0x575c4c;for(var _0x4b240d=0x0,_0x427efb;_0x4b240d<_0x39c214[_0xbc43('0x2d')];_0x4b240d+=0x1){_0x427efb=_0x39c214[_0x4b240d][_0xbc43('0x51')]({'plain':!![]});_0x50738[_0xbc43('0x2e')](db[_0xbc43('0x53')][_0xbc43('0x54')](_0x80b669(_0x427efb,_0xbc43('0x55')))[_0xbc43('0x50')](function(){})[_0xbc43('0x30')](_0x1965ec()));}}return _0x50738;})[_0xbc43('0x56')]();})['then'](function(){return db[_0xbc43('0x5b')][_0xbc43('0x57')]({'attributes':['id',_0xbc43('0x4e')],'include':[{'model':db[_0xbc43('0x59')],'as':_0xbc43('0x4f'),'where':{'id':LISTID}}]})[_0xbc43('0x50')](function(_0x178ee7){var _0x4a2677=[];if(_0x178ee7){for(var _0x5b3d85=0x0,_0x1b74b5;_0x5b3d85<_0x178ee7[_0xbc43('0x2d')];_0x5b3d85+=0x1){_0x1b74b5=_0x178ee7[_0x5b3d85]['get']({'plain':!![]});switch(_0x1b74b5[_0xbc43('0x4e')]){case _0xbc43('0x52'):_0x4a2677[_0xbc43('0x2e')](db[_0xbc43('0x53')]['query'](_0x3cd1e8(_0x1b74b5,'CampaignId'))[_0xbc43('0x50')](function(){})[_0xbc43('0x30')](_0x1965ec()));break;case _0xbc43('0x5c'):_0x4a2677[_0xbc43('0x2e')](db['sequelize'][_0xbc43('0x54')](_0x12da7c(_0x1b74b5,_0xbc43('0x5d')))[_0xbc43('0x50')](function(){})['catch'](_0x1965ec()));break;default:_0x4a2677[_0xbc43('0x2e')](db[_0xbc43('0x53')][_0xbc43('0x54')](_0x1ebce1(_0x1b74b5,_0xbc43('0x5d')))['then'](function(){})[_0xbc43('0x30')](_0x1965ec()));}}}return _0x4a2677;})[_0xbc43('0x56')]();})[_0xbc43('0x50')](function(){return db[_0xbc43('0x5b')][_0xbc43('0x57')]({'attributes':['id'],'include':[{'model':db[_0xbc43('0x59')],'as':'BlackLists','where':{'id':LISTID}}]})['then'](function(_0x5365d2){var _0x57e809=[];if(_0x5365d2){for(var _0x17e1f=0x0,_0x327f00;_0x17e1f<_0x5365d2[_0xbc43('0x2d')];_0x17e1f+=0x1){_0x327f00=_0x5365d2[_0x17e1f]['get']({'plain':!![]});_0x57e809['push'](db[_0xbc43('0x53')][_0xbc43('0x54')](_0x80b669(_0x327f00,_0xbc43('0x5d')))[_0xbc43('0x50')](function(){})[_0xbc43('0x30')](_0x1965ec()));}}return _0x57e809;})['all']();})[_0xbc43('0x30')](function(_0x58e81d){logger['error'](_0xbc43('0x5e'),_0xbc43('0x5f'),_0x58e81d[_0xbc43('0x1b')]);});}var processPromises=function(_0x268153){return BPromise['all'](promises)[_0xbc43('0x50')](function(_0x4d25cc){})[_0xbc43('0x30')](function(_0x2405b){logger['error'](_0xbc43('0x60'),JSON[_0xbc43('0x61')](_0x2405b));})['finally'](function(){socket[_0xbc43('0x62')](_0xbc43('0x63')+SOCKET_TIMESTAMP,{'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});promises=[];success=0x0;errors=0x0;duplicates=0x0;rows=[];if(_0x268153){return _0x268153[_0xbc43('0x64')]();}});};var endCsv=function(){return BPromise[_0xbc43('0x65')]()[_0xbc43('0x50')](function(){if(hopperContacts){return checkHopper();}})[_0xbc43('0x50')](function(){socket[_0xbc43('0x62')](_0xbc43('0x63')+SOCKET_TIMESTAMP,{'finished':!![],'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});try{fs['unlinkSync'](FILEPATH);}catch(_0x1ae5d5){logger[_0xbc43('0x15')]('Unable\x20to\x20delete\x20temp\x20file:',JSON[_0xbc43('0x61')](_0x1ae5d5));}finally{process[_0xbc43('0x66')](0x0);}});};process['on'](_0xbc43('0x67'),function(){logger[_0xbc43('0x68')](_0xbc43('0x69'));endCsv();});function main(){return BPromise[_0xbc43('0x65')]()[_0xbc43('0x50')](function(){if(DUPLICATES){DUPLICATES=DUPLICATES[_0xbc43('0x14')](',');return db[_0xbc43('0x2a')][_0xbc43('0x57')]({'where':{'ListId':LISTID},'attributes':DUPLICATES,'raw':!![]});}})[_0xbc43('0x50')](function(_0x4912dd){var _0x7467f2=fs[_0xbc43('0x6a')](FILEPATH,{'highWaterMark':0xf*0x400*0x400});Papa[_0xbc43('0x6b')](_0x7467f2,{'header':!![],'skipEmptyLines':!![],'step':function(_0x4b0d8a,_0x2584fc){total+=0x1;var _0x30c3d1=total;promises['push'](checkRow(_0x4b0d8a,_0x4912dd,_0x30c3d1)[_0xbc43('0x50')](function(){success+=0x1;})[_0xbc43('0x30')](function(_0x35de60){if(_0x35de60['error']){errors+=0x1;delete _0x35de60[_0xbc43('0x15')];}else if(_0x35de60[_0xbc43('0x6c')]){duplicates+=0x1;delete _0x35de60[_0xbc43('0x6c')];}rows['push'](_0x35de60);}));if(total%0xc8===0x0){_0x2584fc['pause']();return processPromises(_0x2584fc);}},'complete':function(){return processPromises()[_0xbc43('0x50')](function(){logger[_0xbc43('0x68')](_0xbc43('0x6d'));endCsv();});},'error':function(_0x33c6cb,_0x37f674){logger[_0xbc43('0x68')](_0xbc43('0x6e'),JSON[_0xbc43('0x61')](_0x33c6cb));endCsv();}});})[_0xbc43('0x30')](function(_0x99af07){logger[_0xbc43('0x15')](_0xbc43('0x6f'),JSON['stringify'](_0x99af07));});}main();
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4699=['cm_contacts.ListId\x20=\x20','.CmListId','.CmListId\x20=\x20?','cm_contacts.createdAt\x20=\x20?','cm_contacts.phone\x20NOT\x20IN\x20(?)','cm_hopper','\x22always\x22','\x22onlyIfOpen\x22','toString','cm_contacts.ListId','insert','createdAt','cm_hopper_black','\x20=\x20?','concat','ListId','CompanyId','updatedAt',')\x20NOT\x20IN\x20?','ListId\x20=\x20?','deletedAt\x20IS\x20NULL','id\x20IN\x20?','info','error','message','exit','errors','push','code','sequelize','query','catch','main','send','start','binding','socket_timestamp','root','server/files/tmp','header','writeFileSync','createReadStream','data','length','rows','hasOwnProperty','replace','isValid','scheduledat\x20wrong\x20format\x20(YYYY-MM-DD\x20HH:mm:ss)','priority','isNaN','isNumber','includes','agent\x20not\x20exists','email','email\x20wrong\x20format','dateOfBirth','YYYY-MM-DD','\x20not\x20specified','appendFileSync','emit','contact:import:','Abort\x20parser','SystemError','step','duplicates','cm_contacts_','CREATE\x20TABLE\x20','\x20LIKE\x20cm_contacts;','isNil',',\x20scheduledAt\x20=\x20NOW()','DROP\x20TABLE\x20','voice_queues_has_cm_lists','voice_queues','VoiceQueueId','voice_queues_has_cm_blacklists','campaigns_has_cm_lists','CampaignId','campaigns_has_cm_blacklists','finish','affectedRows','unlink','complete','argv','existsSync','file\x20doesn\x27t\x20exists','parse','binding\x20doesn\x27t\x20exists','firstName','firstName\x20is\x20mandatory','ListId\x20is\x20mandatory','body\x20id\x20mandatory','No\x20agent\x20available','SIGINT','uncaughtException','path','lodash','papaparse','bluebird','ioredis','../../../mysqldb','../../../config/logger','import','redis','defaults','localhost','socket.io-emitter','format','YYYY-MM-DD\x20HH:mm:ss','test','select','field','phone','join','.id\x20=\x20','where','\x20=\x20','.dialCheckDuplicateType\x20IN\x20(','cm_contacts.phone','cm_contacts.scheduledat','cm_contacts.id','cm_contacts.createdAt','cm_contacts.updatedAt','cm_contacts.priority','cm_contacts.UserId','into','fromQuery','scheduledat','ContactId','UserId','recallme','fields','from','cm_contacts'];(function(_0x4c12ec,_0x2e9103){var _0x3ae42c=function(_0x5a728f){while(--_0x5a728f){_0x4c12ec['push'](_0x4c12ec['shift']());}};_0x3ae42c(++_0x2e9103);}(_0x4699,0xe5));var _0x9469=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x4699[_0x3dd15e];return _0x231fd0;};'use strict';var fs=require('fs');var path=require(_0x9469('0x0'));var _=require(_0x9469('0x1'));var Papa=require(_0x9469('0x2'));var util=require('util');var BPromise=require(_0x9469('0x3'));var moment=require('moment');var squel=require('squel');var Redis=require(_0x9469('0x4'));var db=require(_0x9469('0x5'))['db'];var config=require('../../../config/environment');var logger=require(_0x9469('0x6'))(_0x9469('0x7'));config[_0x9469('0x8')]=_[_0x9469('0x9')](config[_0x9469('0x8')],{'host':_0x9469('0xa'),'port':0x18eb});var socket=require(_0x9469('0xb'))(new Redis(config[_0x9469('0x8')]));var stats={'finish':![],'errors':[],'rows':0x0,'affectedRows':0x0};var results=[];var stopped=![];var NOW=moment()[_0x9469('0xc')](_0x9469('0xd'));function isEmail(_0xe81f24){return/^([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22))*\x40([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d))*$/[_0x9469('0xe')](_0xe81f24);}function selectNotIn(_0x149508,_0x416c4b,_0x4a0308,_0x48c41d,_0x588572){return squel[_0x9469('0xf')]()[_0x9469('0x10')](_0x9469('0x11'))['from'](_0x48c41d)[_0x9469('0x12')](_0x416c4b,null,_0x416c4b+_0x9469('0x13')+_0x48c41d+'.'+_0x4a0308)[_0x9469('0x14')](_0x48c41d+'.'+_0x4a0308+_0x9469('0x15')+_0x149508+'.'+_0x4a0308)['where'](_0x416c4b+_0x9469('0x16')+_0x588572[_0x9469('0x12')]()+')');}function insertCmHopper(_0x3d136e,_0x1c0d02,_0x292707,_0x4b94b4,_0x43a552){var _0x3002b7=[_0x9469('0x17'),_0x9469('0x18'),_0x9469('0x19'),'cm_contacts.ListId',_0x1c0d02+'.'+_0x4b94b4,_0x9469('0x1a'),_0x9469('0x1b'),_0x9469('0x1c'),_0x9469('0x1d'),'\x22'+_0x43a552+'\x22'];return squel['insert']()[_0x9469('0x1e')]('cm_hopper')[_0x9469('0x1f')]([_0x9469('0x11'),_0x9469('0x20'),_0x9469('0x21'),'ListId',_0x4b94b4,'createdAt','updatedAt','priority',_0x9469('0x22'),_0x9469('0x23')],squel[_0x9469('0xf')]()[_0x9469('0x24')](_0x3002b7)[_0x9469('0x25')](_0x1c0d02)[_0x9469('0x12')](_0x9469('0x26'),null,_0x9469('0x27')+_0x1c0d02+_0x9469('0x28'))[_0x9469('0x12')](_0x292707,null,_0x292707+_0x9469('0x13')+_0x1c0d02+'.'+_0x4b94b4)[_0x9469('0x14')](_0x1c0d02+_0x9469('0x29'),_0x3d136e)[_0x9469('0x14')](_0x9469('0x2a'),NOW)[_0x9469('0x14')](_0x9469('0x2b'),selectNotIn(_0x1c0d02,_0x292707,_0x4b94b4,_0x9469('0x2c'),[_0x9469('0x2d'),_0x9469('0x2e')]))[_0x9469('0x14')](_0x9469('0x2b'),selectNotIn(_0x1c0d02,_0x292707,_0x4b94b4,_0x9469('0x2c'),[_0x9469('0x2d')])))[_0x9469('0x2f')]();}function insertCmHopperBlack(_0x550b8e,_0x2c7597,_0x2010a9,_0x5239c3){var _0x198e16=[_0x9469('0x17'),'cm_contacts.id',_0x9469('0x30'),_0x2c7597+'.'+_0x5239c3,'cm_contacts.createdAt',_0x9469('0x1b')];return squel[_0x9469('0x31')]()['into']('cm_hopper_black')['fromQuery']([_0x9469('0x11'),_0x9469('0x21'),'ListId',_0x5239c3,_0x9469('0x32'),'updatedAt'],squel[_0x9469('0xf')]()['fields'](_0x198e16)[_0x9469('0x25')](_0x2c7597)[_0x9469('0x12')]('cm_contacts',null,_0x9469('0x27')+_0x2c7597+'.CmListId')[_0x9469('0x12')](_0x2010a9,null,_0x2010a9+_0x9469('0x13')+_0x2c7597+'.'+_0x5239c3)[_0x9469('0x14')](_0x2c7597+_0x9469('0x29'),_0x550b8e)['where'](_0x9469('0x2a'),NOW)[_0x9469('0x14')](_0x9469('0x2b'),squel[_0x9469('0xf')]()['field']('phone')[_0x9469('0x25')](_0x9469('0x33'))['where']('ListId\x20=\x20?',_0x550b8e)[_0x9469('0x14')](_0x5239c3+_0x9469('0x34'),_0x2c7597+'.'+_0x5239c3)))[_0x9469('0x2f')]();}function insertCmContact(_0x36e4e3,_0x213d02,_0xba6d47,_0x15ba95){var _0x1f10ea=_[_0x9469('0x35')](_['keys'](_0x15ba95),[_0x9469('0x36'),_0x9469('0x37'),_0x9469('0x32'),_0x9469('0x38')]);return squel['insert']()[_0x9469('0x1e')]('cm_contacts')[_0x9469('0x1f')](_0x1f10ea,squel[_0x9469('0xf')]()[_0x9469('0x24')](_0x1f10ea)['from'](_0x213d02)['where']('('+_0xba6d47[_0x9469('0x12')](',')+_0x9469('0x39'),squel['select']()[_0x9469('0x24')](_0xba6d47)[_0x9469('0x25')]('cm_contacts')[_0x9469('0x14')](_0x9469('0x3a'),_0x36e4e3)[_0x9469('0x14')](_0x9469('0x3b')))[_0x9469('0x14')](_0x9469('0x3c'),squel[_0x9469('0xf')]()['field']('MIN(id)','min_id')[_0x9469('0x25')](_0x213d02)['group'](_0xba6d47[_0x9469('0x12')](','))))[_0x9469('0x2f')]();}function handleStop(){logger[_0x9469('0x3d')]('Received\x20SIGINT');stopped=!![];}function handleUncaughtException(_0x2f0735){logger[_0x9469('0x3e')](_0x2f0735[_0x9469('0x3f')]);process[_0x9469('0x40')](0x1);}function handleError(_0x4a5484,_0x159154){stats[_0x9469('0x41')][_0x9469('0x42')]({'name':_0x159154[_0x9469('0x43')],'message':_0x159154[_0x9469('0x3f')],'row':_0x4a5484});}function handleQuery(_0x3a2381){logger[_0x9469('0x3d')](_0x3a2381);return db[_0x9469('0x44')][_0x9469('0x45')](_0x3a2381)['spread'](function(_0x1fc51f){results[_0x9469('0x42')](_0x1fc51f);})[_0x9469('0x46')](function(_0xca5780){logger[_0x9469('0x3e')](_0xca5780[_0x9469('0x3f')]);});}function main(_0x287ca9,_0x4991bd,_0x5c8bb5,_0x4f23dc){logger[_0x9469('0x3d')](_0x9469('0x47'),_0x287ca9,JSON['stringify'](_0x4991bd));process[_0x9469('0x48')](_0x9469('0x49'));var _0x553159=_0x4991bd[_0x9469('0x4a')];var _0x459aa9=_0x4991bd[_0x9469('0x4b')];var _0x12ec57=path[_0x9469('0x12')](config[_0x9469('0x4c')],_0x9469('0x4d'),_0x459aa9+'.csv');var _0x1fb953=_['keys'](_0x553159)[_0x9469('0x12')]();logger['info'](_0x9469('0x4e'),_0x1fb953);fs[_0x9469('0x4f')](_0x12ec57,_0x1fb953+'\x0a');Papa['parse'](fs[_0x9469('0x50')](_0x287ca9),{'header':!![],'skipEmptyLines':!![],'step':function(_0x2825f3,_0x4fea3e){try{for(var _0x1bf46f=0x0,_0x11ea87=[];_0x1bf46f<_0x2825f3[_0x9469('0x51')][_0x9469('0x52')];_0x1bf46f++){stats[_0x9469('0x53')]+=0x1;if(_0x2825f3['errors'][_0x1bf46f]){handleError(_0x2825f3[_0x9469('0x51')][_0x1bf46f],_0x2825f3['errors'][_0x1bf46f]);}else{var _0x17e6f4=[];for(var _0x1e7101 in _0x553159){if(_0x553159[_0x9469('0x54')](_0x1e7101)){if(_0x2825f3['data'][_0x1bf46f][_0x553159[_0x1e7101]]){var _0x542443=_['trim'](_0x2825f3['data'][_0x1bf46f][_0x553159[_0x1e7101]][_0x9469('0x55')](/"/g,'\x27'));switch(_0x1e7101){case _0x9469('0x20'):var _0x3c3ba7=moment(_0x542443,_0x9469('0xd'),!![]);if(_0x3c3ba7[_0x9469('0x56')]()){_0x11ea87['push']('\x22'+_0x542443+'\x22');}else{_0x17e6f4[_0x9469('0x42')](_0x9469('0x57'));}break;case _0x9469('0x58'):var _0x151054=parseInt(_0x542443);_0x542443=_[_0x9469('0x59')](_0x151054)||_0x151054<0x0||_0x151054>0x4?_0x4f23dc?0x3:0x2:_0x151054;_0x11ea87[_0x9469('0x42')]('\x22'+_0x542443+'\x22');break;case _0x9469('0x22'):var _0xb6bbfe=parseInt(_0x542443);if(_[_0x9469('0x5a')](_0xb6bbfe)&&_[_0x9469('0x5b')](_0x5c8bb5,_0xb6bbfe)){_0x11ea87[_0x9469('0x42')]('\x22'+_0xb6bbfe+'\x22');}else{_0x17e6f4[_0x9469('0x42')](_0x9469('0x5c'));}break;case _0x9469('0x5d'):if(isEmail(_0x542443)){_0x11ea87[_0x9469('0x42')]('\x22'+_0x542443+'\x22');}else{_0x17e6f4['push'](_0x9469('0x5e'));}break;case _0x9469('0x5f'):var _0x215bcd=moment(_0x542443,_0x9469('0x60'),!![]);if(_0x215bcd[_0x9469('0x56')]()){_0x11ea87[_0x9469('0x42')]('\x22'+_0x542443+'\x22');}else{_0x17e6f4[_0x9469('0x42')]('dateOfBirth\x20wrong\x20format\x20(YYYY-MM-DD)');}break;default:_0x11ea87[_0x9469('0x42')]('\x22'+_0x542443+'\x22');}}else{switch(_0x1e7101){case'firstName':case _0x9469('0x11'):_0x17e6f4[_0x9469('0x42')](_0x1e7101+_0x9469('0x61'));break;default:_0x11ea87[_0x9469('0x42')]('\x22\x22');}}}}if(_0x17e6f4['length']){handleError(_0x2825f3['data'][_0x1bf46f],{'code':'SystemRow','message':_0x17e6f4[_0x9469('0x12')]()});}else{fs[_0x9469('0x62')](_0x12ec57,_0x11ea87['join']()+'\x0a');}_0x11ea87=[];}if(!(stats['rows']%0xc8)){socket[_0x9469('0x63')](_0x9469('0x64')+_0x459aa9,stats);stats[_0x9469('0x41')]=[];}}if(stopped){logger[_0x9469('0x3d')](_0x9469('0x65'));_0x4fea3e['abort']();}}catch(_0x4bc434){handleError(_0x2825f3[_0x9469('0x51')][_0x1bf46f],{'code':_0x9469('0x66'),'message':_0x4bc434['message']});logger['error'](_0x9469('0x67'),_0x4bc434[_0x9469('0x3f')]);}},'complete':function(){try{var _0x4a583a=[];var _0x3398e2=_0x9469('0x26');if(_0x4991bd[_0x9469('0x68')]&&_0x4991bd[_0x9469('0x68')][_0x9469('0x52')]){_0x3398e2=_0x9469('0x69')+_0x459aa9;_0x4a583a[_0x9469('0x42')](_0x9469('0x6a')+_0x3398e2+_0x9469('0x6b'));}var _0x259c6c=util['format']('LOAD\x20DATA\x20LOCAL\x20INFILE\x20\x27%s\x27\x20INTO\x20TABLE\x20%s\x20CHARACTER\x20SET\x20UTF8\x20FIELDS\x20TERMINATED\x20BY\x20\x27,\x27\x20ENCLOSED\x20BY\x20\x27\x22\x27\x20LINES\x20TERMINATED\x20BY\x20\x27\x0a\x27\x20IGNORE\x201\x20ROWS\x20(%s)\x20SET\x20id\x20=\x20NULL,\x20ListId\x20=\x20%s,\x20CompanyId\x20=\x20%s,\x20createdAt\x20=\x20\x27%s\x27,\x20updatedAt\x20=\x20\x27%s\x27',_0x12ec57,_0x3398e2,_0x1fb953,_0x4991bd[_0x9469('0x36')],_0x4991bd['CompanyId']||null,NOW,NOW);if(_[_0x9469('0x6c')](_0x553159[_0x9469('0x20')])){_0x259c6c+=_0x9469('0x6d');}_0x4a583a[_0x9469('0x42')](_0x259c6c);if(_0x4991bd['duplicates']&&_0x4991bd[_0x9469('0x68')][_0x9469('0x52')]){_0x4a583a[_0x9469('0x42')](insertCmContact(_0x4991bd[_0x9469('0x36')],_0x3398e2,_0x4991bd['duplicates'],_0x553159));_0x4a583a[_0x9469('0x42')](_0x9469('0x6e')+_0x3398e2+';');}_0x4a583a[_0x9469('0x42')](insertCmHopper(_0x4991bd[_0x9469('0x36')],_0x9469('0x6f'),_0x9469('0x70'),_0x9469('0x71'),_0x4f23dc));_0x4a583a['push'](insertCmHopperBlack(_0x4991bd[_0x9469('0x36')],_0x9469('0x72'),_0x9469('0x70'),_0x9469('0x71')));_0x4a583a[_0x9469('0x42')](insertCmHopper(_0x4991bd[_0x9469('0x36')],_0x9469('0x73'),'campaigns',_0x9469('0x74'),_0x4f23dc));_0x4a583a[_0x9469('0x42')](insertCmHopperBlack(_0x4991bd[_0x9469('0x36')],_0x9469('0x75'),'campaigns',_0x9469('0x74')));BPromise['each'](_0x4a583a,handleQuery)['then'](function(_0x1e458b){stats[_0x9469('0x76')]=!![];stats[_0x9469('0x77')]=_0x4991bd[_0x9469('0x68')]&&_0x4991bd['duplicates'][_0x9469('0x52')]?results[0x2]['affectedRows']:results[0x0][_0x9469('0x77')];socket[_0x9469('0x63')]('contact:import:'+_0x459aa9,stats);fs[_0x9469('0x78')](_0x287ca9);fs[_0x9469('0x78')](_0x12ec57);process[_0x9469('0x40')](0x0);})['catch'](function(_0x561dca){logger[_0x9469('0x3e')](_0x561dca[_0x9469('0x3f')]);process[_0x9469('0x40')](0x1);});}catch(_0x3e66e2){logger['error'](_0x9469('0x79'),_0x3e66e2[_0x9469('0x3f')]);process[_0x9469('0x40')](0x1);}},'error':function(_0x29b798,_0x55e1ca,_0x52dcfd,_0x536eb5){throw new Error(_0x536eb5);}});}function validate(){if(process[_0x9469('0x7a')]&&process['argv'][_0x9469('0x52')]<0x4){throw new Error('arguments\x20<filename>\x20<parameters>\x20<agents>');}var _0x50eb35=path[_0x9469('0x12')](config[_0x9469('0x4c')],'server/files/tmp',process[_0x9469('0x7a')][0x2]);if(!fs[_0x9469('0x7b')](_0x50eb35)){throw new Error(_0x9469('0x7c'));}var _0x9ecffc={};try{_0x9ecffc=JSON[_0x9469('0x7d')](process['argv'][0x3]);if(!_0x9ecffc[_0x9469('0x4a')]){throw new Error(_0x9469('0x7e'));}if(!_0x9ecffc['binding'][_0x9469('0x11')]){throw new Error('phone\x20is\x20mandatory');}if(!_0x9ecffc['binding'][_0x9469('0x7f')]){throw new Error(_0x9469('0x80'));}var _0x313b8c=0x0;if(_0x9ecffc[_0x9469('0x4a')][_0x9469('0x22')]){_0x313b8c=0x1;}if(!_0x9ecffc[_0x9469('0x36')]){throw new Error(_0x9469('0x81'));}}catch(_0x5528b8){throw new Error(_0x9469('0x82'));}var _0xa063e1=[];try{_0xa063e1=_['map'](JSON[_0x9469('0x7d')](process[_0x9469('0x7a')][0x4]),'id');}catch(_0x3dc137){logger['info'](_0x9469('0x83'));}main(_0x50eb35,_0x9ecffc,_0xa063e1,_0x313b8c);}validate();process['on'](_0x9469('0x84'),handleStop);process['on'](_0x9469('0x85'),handleUncaughtException);
\ No newline at end of file
+var _0xf1d3=['ListId\x20is\x20mandatory','body\x20id\x20mandatory','map','No\x20agent\x20available','SIGINT','path','lodash','papaparse','util','squel','../../../mysqldb','../../../config/environment','../../../config/logger','import','defaults','redis','socket.io-emitter','format','YYYY-MM-DD\x20HH:mm:ss','test','select','field','phone','from','.id\x20=\x20','where','\x20=\x20','.dialCheckDuplicateType\x20IN\x20(','join','cm_contacts.phone','cm_contacts.id','cm_contacts.ListId','cm_contacts.createdAt','cm_contacts.updatedAt','cm_contacts.UserId','insert','into','fromQuery','scheduledat','ContactId','createdAt','updatedAt','priority','UserId','fields','cm_contacts','.CmListId','.CmListId\x20=\x20?','cm_hopper','\x22always\x22','cm_hopper_black','ListId','cm_contacts.ListId\x20=\x20','cm_contacts.createdAt\x20=\x20?','cm_contacts.phone\x20NOT\x20IN\x20(?)','ListId\x20=\x20?','\x20=\x20?','keys','CompanyId',')\x20NOT\x20IN\x20?','MIN(id)','min_id','group','toString','info','Received\x20SIGINT','error','message','errors','push','code','sequelize','query','spread','catch','main','stringify','send','start','.csv','parse','createReadStream','data','length','trim','isValid','scheduledat\x20wrong\x20format\x20(YYYY-MM-DD\x20HH:mm:ss)','isNumber','includes','agent\x20not\x20exists','email','dateOfBirth','dateOfBirth\x20wrong\x20format\x20(YYYY-MM-DD)','\x20not\x20specified','appendFileSync','rows','Abort\x20parser','abort','step','duplicates','cm_contacts_','CREATE\x20TABLE\x20','\x20LIKE\x20cm_contacts;','isNil','DROP\x20TABLE\x20','voice_queues_has_cm_lists','voice_queues','voice_queues_has_cm_blacklists','VoiceQueueId','campaigns','CampaignId','campaigns_has_cm_blacklists','each','then','finish','affectedRows','emit','contact:import:','unlink','exit','complete','argv','arguments\x20<filename>\x20<parameters>\x20<agents>','root','server/files/tmp','existsSync','file\x20doesn\x27t\x20exists','binding','binding\x20doesn\x27t\x20exists','phone\x20is\x20mandatory','firstName','firstName\x20is\x20mandatory'];(function(_0x1d9aae,_0x222fcb){var _0x50461a=function(_0x4dc8cd){while(--_0x4dc8cd){_0x1d9aae['push'](_0x1d9aae['shift']());}};_0x50461a(++_0x222fcb);}(_0xf1d3,0x10d));var _0x3f1d=function(_0x16e364,_0x51a81e){_0x16e364=_0x16e364-0x0;var _0x12bb35=_0xf1d3[_0x16e364];return _0x12bb35;};'use strict';var fs=require('fs');var path=require(_0x3f1d('0x0'));var _=require(_0x3f1d('0x1'));var Papa=require(_0x3f1d('0x2'));var util=require(_0x3f1d('0x3'));var BPromise=require('bluebird');var moment=require('moment');var squel=require(_0x3f1d('0x4'));var Redis=require('ioredis');var db=require(_0x3f1d('0x5'))['db'];var config=require(_0x3f1d('0x6'));var logger=require(_0x3f1d('0x7'))(_0x3f1d('0x8'));config['redis']=_[_0x3f1d('0x9')](config[_0x3f1d('0xa')],{'host':'localhost','port':0x18eb});var socket=require(_0x3f1d('0xb'))(new Redis(config[_0x3f1d('0xa')]));var stats={'finish':![],'errors':[],'rows':0x0,'affectedRows':0x0};var results=[];var stopped=![];var NOW=moment()[_0x3f1d('0xc')](_0x3f1d('0xd'));function isEmail(_0x27e4fc){return/^([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22))*\x40([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d))*$/[_0x3f1d('0xe')](_0x27e4fc);}function selectNotIn(_0x23dfa0,_0x25b2c3,_0x35b2ac,_0x48df40,_0x34309a){return squel[_0x3f1d('0xf')]()[_0x3f1d('0x10')](_0x3f1d('0x11'))[_0x3f1d('0x12')](_0x48df40)['join'](_0x25b2c3,null,_0x25b2c3+_0x3f1d('0x13')+_0x48df40+'.'+_0x35b2ac)[_0x3f1d('0x14')](_0x48df40+'.'+_0x35b2ac+_0x3f1d('0x15')+_0x23dfa0+'.'+_0x35b2ac)[_0x3f1d('0x14')](_0x25b2c3+_0x3f1d('0x16')+_0x34309a[_0x3f1d('0x17')]()+')');}function insertCmHopper(_0xd76e94,_0x58ed74,_0x535e5b,_0x2bbe00,_0x28a3dc){var _0x2acf95=[_0x3f1d('0x18'),'cm_contacts.scheduledat',_0x3f1d('0x19'),_0x3f1d('0x1a'),_0x58ed74+'.'+_0x2bbe00,_0x3f1d('0x1b'),_0x3f1d('0x1c'),'cm_contacts.priority',_0x3f1d('0x1d'),'\x22'+_0x28a3dc+'\x22'];return squel[_0x3f1d('0x1e')]()[_0x3f1d('0x1f')]('cm_hopper')[_0x3f1d('0x20')]([_0x3f1d('0x11'),_0x3f1d('0x21'),_0x3f1d('0x22'),'ListId',_0x2bbe00,_0x3f1d('0x23'),_0x3f1d('0x24'),_0x3f1d('0x25'),_0x3f1d('0x26'),'recallme'],squel[_0x3f1d('0xf')]()[_0x3f1d('0x27')](_0x2acf95)[_0x3f1d('0x12')](_0x58ed74)[_0x3f1d('0x17')](_0x3f1d('0x28'),null,'cm_contacts.ListId\x20=\x20'+_0x58ed74+_0x3f1d('0x29'))['join'](_0x535e5b,null,_0x535e5b+_0x3f1d('0x13')+_0x58ed74+'.'+_0x2bbe00)[_0x3f1d('0x14')](_0x58ed74+_0x3f1d('0x2a'),_0xd76e94)[_0x3f1d('0x14')]('cm_contacts.createdAt\x20=\x20?',NOW)[_0x3f1d('0x14')]('cm_contacts.phone\x20NOT\x20IN\x20(?)',selectNotIn(_0x58ed74,_0x535e5b,_0x2bbe00,_0x3f1d('0x2b'),['\x22always\x22','\x22onlyIfOpen\x22']))[_0x3f1d('0x14')]('cm_contacts.phone\x20NOT\x20IN\x20(?)',selectNotIn(_0x58ed74,_0x535e5b,_0x2bbe00,_0x3f1d('0x2b'),[_0x3f1d('0x2c')])))['toString']();}function insertCmHopperBlack(_0x447ca6,_0x5a011f,_0x43aa52,_0x3b639b){var _0x32161b=[_0x3f1d('0x18'),_0x3f1d('0x19'),'cm_contacts.ListId',_0x5a011f+'.'+_0x3b639b,_0x3f1d('0x1b'),'cm_contacts.updatedAt'];return squel['insert']()[_0x3f1d('0x1f')](_0x3f1d('0x2d'))[_0x3f1d('0x20')]([_0x3f1d('0x11'),'ContactId',_0x3f1d('0x2e'),_0x3b639b,_0x3f1d('0x23'),_0x3f1d('0x24')],squel['select']()[_0x3f1d('0x27')](_0x32161b)[_0x3f1d('0x12')](_0x5a011f)[_0x3f1d('0x17')](_0x3f1d('0x28'),null,_0x3f1d('0x2f')+_0x5a011f+_0x3f1d('0x29'))[_0x3f1d('0x17')](_0x43aa52,null,_0x43aa52+_0x3f1d('0x13')+_0x5a011f+'.'+_0x3b639b)[_0x3f1d('0x14')](_0x5a011f+_0x3f1d('0x2a'),_0x447ca6)[_0x3f1d('0x14')](_0x3f1d('0x30'),NOW)[_0x3f1d('0x14')](_0x3f1d('0x31'),squel['select']()['field'](_0x3f1d('0x11'))[_0x3f1d('0x12')](_0x3f1d('0x2d'))[_0x3f1d('0x14')](_0x3f1d('0x32'),_0x447ca6)[_0x3f1d('0x14')](_0x3b639b+_0x3f1d('0x33'),_0x5a011f+'.'+_0x3b639b)))['toString']();}function insertCmContact(_0x35554a,_0x359337,_0x452c02,_0x45b255){var _0x1367fd=_['concat'](_[_0x3f1d('0x34')](_0x45b255),[_0x3f1d('0x2e'),_0x3f1d('0x35'),_0x3f1d('0x23'),_0x3f1d('0x24')]);return squel[_0x3f1d('0x1e')]()['into'](_0x3f1d('0x28'))[_0x3f1d('0x20')](_0x1367fd,squel[_0x3f1d('0xf')]()[_0x3f1d('0x27')](_0x1367fd)['from'](_0x359337)[_0x3f1d('0x14')]('('+_0x452c02[_0x3f1d('0x17')](',')+_0x3f1d('0x36'),squel[_0x3f1d('0xf')]()[_0x3f1d('0x27')](_0x452c02)[_0x3f1d('0x12')](_0x3f1d('0x28'))[_0x3f1d('0x14')]('ListId\x20=\x20?',_0x35554a)['where']('deletedAt\x20IS\x20NULL'))['where']('id\x20IN\x20?',squel['select']()['field'](_0x3f1d('0x37'),_0x3f1d('0x38'))[_0x3f1d('0x12')](_0x359337)[_0x3f1d('0x39')](_0x452c02[_0x3f1d('0x17')](','))))[_0x3f1d('0x3a')]();}function handleStop(){logger[_0x3f1d('0x3b')](_0x3f1d('0x3c'));stopped=!![];}function handleUncaughtException(_0xf02e9a){logger[_0x3f1d('0x3d')](_0xf02e9a[_0x3f1d('0x3e')]);process['exit'](0x1);}function handleError(_0x1b3ccf,_0x1151a7){stats[_0x3f1d('0x3f')][_0x3f1d('0x40')]({'name':_0x1151a7[_0x3f1d('0x41')],'message':_0x1151a7[_0x3f1d('0x3e')],'row':_0x1b3ccf});}function handleQuery(_0x4e6049){logger[_0x3f1d('0x3b')](_0x4e6049);return db[_0x3f1d('0x42')][_0x3f1d('0x43')](_0x4e6049)[_0x3f1d('0x44')](function(_0x2d849e){results['push'](_0x2d849e);})[_0x3f1d('0x45')](function(_0x2e583a){logger[_0x3f1d('0x3d')](_0x2e583a[_0x3f1d('0x3e')]);});}function main(_0x25e164,_0x31f523,_0x214b5d,_0x4db2a3){logger[_0x3f1d('0x3b')](_0x3f1d('0x46'),_0x25e164,JSON[_0x3f1d('0x47')](_0x31f523));process[_0x3f1d('0x48')](_0x3f1d('0x49'));var _0x47e719=_0x31f523['binding'];var _0x1dcac4=_0x31f523['socket_timestamp'];var _0x59ad0e=path[_0x3f1d('0x17')](config['root'],'server/files/tmp',_0x1dcac4+_0x3f1d('0x4a'));var _0x474b71=_['keys'](_0x47e719)[_0x3f1d('0x17')]();logger[_0x3f1d('0x3b')]('header',_0x474b71);fs['writeFileSync'](_0x59ad0e,_0x474b71+'\x0a');Papa[_0x3f1d('0x4b')](fs[_0x3f1d('0x4c')](_0x25e164),{'header':!![],'skipEmptyLines':!![],'step':function(_0x23fac5,_0x21aafc){try{for(var _0x15969b=0x0,_0x497cdb=[];_0x15969b<_0x23fac5[_0x3f1d('0x4d')][_0x3f1d('0x4e')];_0x15969b++){stats['rows']+=0x1;if(_0x23fac5[_0x3f1d('0x3f')][_0x15969b]){handleError(_0x23fac5[_0x3f1d('0x4d')][_0x15969b],_0x23fac5[_0x3f1d('0x3f')][_0x15969b]);}else{var _0x1acd76=[];for(var _0xeabd5 in _0x47e719){if(_0x47e719['hasOwnProperty'](_0xeabd5)){if(_0x23fac5[_0x3f1d('0x4d')][_0x15969b][_0x47e719[_0xeabd5]]){var _0x4767f7=_[_0x3f1d('0x4f')](_0x23fac5['data'][_0x15969b][_0x47e719[_0xeabd5]]['replace'](/"/g,'\x27'));switch(_0xeabd5){case _0x3f1d('0x21'):var _0x57df22=moment(_0x4767f7,_0x3f1d('0xd'),!![]);if(_0x57df22[_0x3f1d('0x50')]()){_0x497cdb[_0x3f1d('0x40')]('\x22'+_0x4767f7+'\x22');}else{_0x1acd76[_0x3f1d('0x40')](_0x3f1d('0x51'));}break;case _0x3f1d('0x25'):var _0x352014=parseInt(_0x4767f7);_0x4767f7=_['isNaN'](_0x352014)||_0x352014<0x0||_0x352014>0x4?_0x4db2a3?0x3:0x2:_0x352014;_0x497cdb['push']('\x22'+_0x4767f7+'\x22');break;case _0x3f1d('0x26'):var _0x5d2cf8=parseInt(_0x4767f7);if(_[_0x3f1d('0x52')](_0x5d2cf8)&&_[_0x3f1d('0x53')](_0x214b5d,_0x5d2cf8)){_0x497cdb[_0x3f1d('0x40')]('\x22'+_0x5d2cf8+'\x22');}else{_0x1acd76['push'](_0x3f1d('0x54'));}break;case _0x3f1d('0x55'):if(isEmail(_0x4767f7)){_0x497cdb[_0x3f1d('0x40')]('\x22'+_0x4767f7+'\x22');}else{_0x1acd76[_0x3f1d('0x40')]('email\x20wrong\x20format');}break;case _0x3f1d('0x56'):var _0x32f63d=moment(_0x4767f7,'YYYY-MM-DD',!![]);if(_0x32f63d[_0x3f1d('0x50')]()){_0x497cdb[_0x3f1d('0x40')]('\x22'+_0x4767f7+'\x22');}else{_0x1acd76['push'](_0x3f1d('0x57'));}break;default:_0x497cdb[_0x3f1d('0x40')]('\x22'+_0x4767f7+'\x22');}}else{switch(_0xeabd5){case'firstName':case _0x3f1d('0x11'):_0x1acd76[_0x3f1d('0x40')](_0xeabd5+_0x3f1d('0x58'));break;default:_0x497cdb[_0x3f1d('0x40')]('\x22\x22');}}}}if(_0x1acd76[_0x3f1d('0x4e')]){handleError(_0x23fac5['data'][_0x15969b],{'code':'SystemRow','message':_0x1acd76['join']()});}else{fs[_0x3f1d('0x59')](_0x59ad0e,_0x497cdb[_0x3f1d('0x17')]()+'\x0a');}_0x497cdb=[];}if(!(stats[_0x3f1d('0x5a')]%0xc8)){socket['emit']('contact:import:'+_0x1dcac4,stats);stats['errors']=[];}}if(stopped){logger[_0x3f1d('0x3b')](_0x3f1d('0x5b'));_0x21aafc[_0x3f1d('0x5c')]();}}catch(_0x5e7812){handleError(_0x23fac5[_0x3f1d('0x4d')][_0x15969b],{'code':'SystemError','message':_0x5e7812[_0x3f1d('0x3e')]});logger[_0x3f1d('0x3d')](_0x3f1d('0x5d'),_0x5e7812[_0x3f1d('0x3e')]);}},'complete':function(){try{var _0x5e93e1=[];var _0x436953=_0x3f1d('0x28');if(_0x31f523[_0x3f1d('0x5e')]&&_0x31f523[_0x3f1d('0x5e')][_0x3f1d('0x4e')]){_0x436953=_0x3f1d('0x5f')+_0x1dcac4;_0x5e93e1[_0x3f1d('0x40')](_0x3f1d('0x60')+_0x436953+_0x3f1d('0x61'));}var _0x47a91e=util[_0x3f1d('0xc')]('LOAD\x20DATA\x20LOCAL\x20INFILE\x20\x27%s\x27\x20INTO\x20TABLE\x20%s\x20CHARACTER\x20SET\x20UTF8\x20FIELDS\x20TERMINATED\x20BY\x20\x27,\x27\x20ENCLOSED\x20BY\x20\x27\x22\x27\x20LINES\x20TERMINATED\x20BY\x20\x27\x0a\x27\x20IGNORE\x201\x20ROWS\x20(%s)\x20SET\x20id\x20=\x20NULL,\x20ListId\x20=\x20%s,\x20CompanyId\x20=\x20%s,\x20createdAt\x20=\x20\x27%s\x27,\x20updatedAt\x20=\x20\x27%s\x27',_0x59ad0e,_0x436953,_0x474b71,_0x31f523[_0x3f1d('0x2e')],_0x31f523[_0x3f1d('0x35')]||null,NOW,NOW);if(_[_0x3f1d('0x62')](_0x47e719[_0x3f1d('0x21')])){_0x47a91e+=',\x20scheduledAt\x20=\x20NOW()';}_0x5e93e1['push'](_0x47a91e);if(_0x31f523['duplicates']&&_0x31f523['duplicates']['length']){_0x5e93e1[_0x3f1d('0x40')](insertCmContact(_0x31f523[_0x3f1d('0x2e')],_0x436953,_0x31f523[_0x3f1d('0x5e')],_0x47e719));_0x5e93e1[_0x3f1d('0x40')](_0x3f1d('0x63')+_0x436953+';');}_0x5e93e1[_0x3f1d('0x40')](insertCmHopper(_0x31f523['ListId'],_0x3f1d('0x64'),_0x3f1d('0x65'),'VoiceQueueId',_0x4db2a3));_0x5e93e1['push'](insertCmHopperBlack(_0x31f523[_0x3f1d('0x2e')],_0x3f1d('0x66'),'voice_queues',_0x3f1d('0x67')));_0x5e93e1[_0x3f1d('0x40')](insertCmHopper(_0x31f523[_0x3f1d('0x2e')],'campaigns_has_cm_lists',_0x3f1d('0x68'),_0x3f1d('0x69'),_0x4db2a3));_0x5e93e1[_0x3f1d('0x40')](insertCmHopperBlack(_0x31f523[_0x3f1d('0x2e')],_0x3f1d('0x6a'),_0x3f1d('0x68'),'CampaignId'));BPromise[_0x3f1d('0x6b')](_0x5e93e1,handleQuery)[_0x3f1d('0x6c')](function(_0x493882){stats[_0x3f1d('0x6d')]=!![];stats['affectedRows']=_0x31f523['duplicates']&&_0x31f523['duplicates'][_0x3f1d('0x4e')]?results[0x2]['affectedRows']:results[0x0][_0x3f1d('0x6e')];socket[_0x3f1d('0x6f')](_0x3f1d('0x70')+_0x1dcac4,stats);fs['unlink'](_0x25e164);fs[_0x3f1d('0x71')](_0x59ad0e);process['exit'](0x0);})[_0x3f1d('0x45')](function(_0x28e1ad){logger[_0x3f1d('0x3d')](_0x28e1ad['message']);process[_0x3f1d('0x72')](0x1);});}catch(_0x5a285c){logger['error'](_0x3f1d('0x73'),_0x5a285c[_0x3f1d('0x3e')]);process[_0x3f1d('0x72')](0x1);}},'error':function(_0x2488a6,_0x481ad9,_0x55cc0f,_0x5c78ac){throw new Error(_0x5c78ac);}});}function validate(){if(process[_0x3f1d('0x74')]&&process[_0x3f1d('0x74')][_0x3f1d('0x4e')]<0x4){throw new Error(_0x3f1d('0x75'));}var _0x4f09b6=path[_0x3f1d('0x17')](config[_0x3f1d('0x76')],_0x3f1d('0x77'),process[_0x3f1d('0x74')][0x2]);if(!fs[_0x3f1d('0x78')](_0x4f09b6)){throw new Error(_0x3f1d('0x79'));}var _0x53278c={};try{_0x53278c=JSON[_0x3f1d('0x4b')](process['argv'][0x3]);if(!_0x53278c[_0x3f1d('0x7a')]){throw new Error(_0x3f1d('0x7b'));}if(!_0x53278c['binding'][_0x3f1d('0x11')]){throw new Error(_0x3f1d('0x7c'));}if(!_0x53278c[_0x3f1d('0x7a')][_0x3f1d('0x7d')]){throw new Error(_0x3f1d('0x7e'));}var _0x7e79da=0x0;if(_0x53278c['binding']['UserId']){_0x7e79da=0x1;}if(!_0x53278c[_0x3f1d('0x2e')]){throw new Error(_0x3f1d('0x7f'));}}catch(_0x4f4915){throw new Error(_0x3f1d('0x80'));}var _0xa57e5=[];try{_0xa57e5=_[_0x3f1d('0x81')](JSON['parse'](process['argv'][0x4]),'id');}catch(_0xea3b36){logger[_0x3f1d('0x3b')](_0x3f1d('0x82'));}main(_0x4f09b6,_0x53278c,_0xa57e5,_0x7e79da);}validate();process['on'](_0x3f1d('0x83'),handleStop);process['on']('uncaughtException',handleUncaughtException);
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf17a=['***\x20Agent\x20Info\x20***','Agent\x20Name','***\x20Time\x20Info\x20***','Agent\x20Connect','agentconnectAt','Agent\x20Complete','Hold\x20Time','holdtime','Called\x20Number','Member\x20Name','starttime','Answer\x20Time','answertime','Complete\x20Time','Duration','Billable\x20Time','billableseconds','getSubjects','string','[xCALLY\x20Ticket]','toLowerCase','voice','inbound','push','variable','queue','calleridnum','outbound','Outbound\x20Call','destcalleridnum','***\x20Call\x20Info\x20***','keyValue','Caller\x20Name','calleridname','Call\x20To','destexten','UniqueId','uniqueid','Date','agentcalledAt'];(function(_0x32c8bb,_0x41c3ca){var _0x3f895a=function(_0x45dce3){while(--_0x45dce3){_0x32c8bb['push'](_0x32c8bb['shift']());}};_0x3f895a(++_0x41c3ca);}(_0xf17a,0x151));var _0xaf17=function(_0x3d05a6,_0x50c60a){_0x3d05a6=_0x3d05a6-0x0;var _0xfb3e68=_0xf17a[_0x3d05a6];return _0xfb3e68;};'use strict';exports[_0xaf17('0x0')]=function(_0x17b6ac,_0x5bc22c){var _0x46e479=[{'type':_0xaf17('0x1'),'content':_0xaf17('0x2'),'variableName':null}];switch(_0x17b6ac[_0xaf17('0x3')]()){case _0xaf17('0x4'):switch(_0x5bc22c[_0xaf17('0x3')]()){case _0xaf17('0x5'):_0x46e479[_0xaf17('0x6')]({'type':_0xaf17('0x7'),'content':'','variableName':_0xaf17('0x8')});_0x46e479[_0xaf17('0x6')]({'type':'variable','content':'','variableName':_0xaf17('0x9')});break;case _0xaf17('0xa'):_0x46e479['push']({'type':_0xaf17('0x1'),'content':_0xaf17('0xb'),'variableName':null});_0x46e479[_0xaf17('0x6')]({'type':'variable','content':'','variableName':_0xaf17('0xc')});break;}}return _0x46e479;};exports['getDescriptions']=function(_0x9a124a,_0x1b9323){var _0x3ead7f=[];switch(_0x9a124a[_0xaf17('0x3')]()){case'voice':switch(_0x1b9323[_0xaf17('0x3')]()){case _0xaf17('0x5'):_0x3ead7f=[{'type':_0xaf17('0x1'),'content':_0xaf17('0xd'),'key':null,'keyType':null,'variableName':null},{'type':'keyValue','content':'','key':'Caller\x20Number','keyType':_0xaf17('0x7'),'variableName':'calleridnum'},{'type':_0xaf17('0xe'),'content':'','key':_0xaf17('0xf'),'keyType':_0xaf17('0x7'),'variableName':_0xaf17('0x10')},{'type':'keyValue','content':'','key':_0xaf17('0x11'),'keyType':_0xaf17('0x7'),'variableName':_0xaf17('0x12')},{'type':_0xaf17('0xe'),'content':'','key':'Queue','keyType':_0xaf17('0x7'),'variableName':_0xaf17('0x8')},{'type':_0xaf17('0xe'),'content':'','key':_0xaf17('0x13'),'keyType':_0xaf17('0x7'),'variableName':_0xaf17('0x14')},{'type':'keyValue','content':'','key':_0xaf17('0x15'),'keyType':_0xaf17('0x7'),'variableName':_0xaf17('0x16')},{'type':_0xaf17('0x1'),'content':_0xaf17('0x17'),'key':null,'keyType':null,'variableName':null},{'type':'keyValue','content':'','key':_0xaf17('0x18'),'keyType':_0xaf17('0x7'),'variableName':'destcalleridname'},{'type':_0xaf17('0xe'),'content':'','key':'Agent\x20Number','keyType':_0xaf17('0x7'),'variableName':_0xaf17('0xc')},{'type':_0xaf17('0x1'),'content':_0xaf17('0x19'),'key':null,'keyType':null,'variableName':null},{'type':_0xaf17('0xe'),'content':'','key':'Agent\x20Ring','keyType':_0xaf17('0x7'),'variableName':'agentcalledAt'},{'type':_0xaf17('0xe'),'content':'','key':_0xaf17('0x1a'),'keyType':'variable','variableName':_0xaf17('0x1b')},{'type':_0xaf17('0xe'),'content':'','key':_0xaf17('0x1c'),'keyType':_0xaf17('0x7'),'variableName':'agentcompleteAt'},{'type':_0xaf17('0xe'),'content':'','key':_0xaf17('0x1d'),'keyType':'variable','variableName':_0xaf17('0x1e')},{'type':_0xaf17('0xe'),'content':'','key':'Talk\x20Time','keyType':_0xaf17('0x7'),'variableName':'talktime'}];break;case _0xaf17('0xa'):_0x3ead7f=[{'type':_0xaf17('0x1'),'content':_0xaf17('0xd'),'variableName':null},{'type':_0xaf17('0xe'),'content':'','key':_0xaf17('0x1f'),'keyType':_0xaf17('0x7'),'keyContent':'','variableName':_0xaf17('0xc')},{'type':_0xaf17('0xe'),'content':'','key':_0xaf17('0x20'),'keyType':_0xaf17('0x7'),'keyContent':'','variableName':'membername'},{'type':_0xaf17('0xe'),'content':'','key':_0xaf17('0x13'),'keyType':'variable','keyContent':'','variableName':_0xaf17('0x14')},{'type':_0xaf17('0xe'),'content':'','key':_0xaf17('0x15'),'keyType':_0xaf17('0x7'),'keyContent':'','variableName':_0xaf17('0x21')},{'type':_0xaf17('0x1'),'content':_0xaf17('0x19')},{'type':_0xaf17('0xe'),'content':'','key':_0xaf17('0x22'),'keyType':_0xaf17('0x7'),'keyContent':'','variableName':_0xaf17('0x23')},{'type':_0xaf17('0xe'),'content':'','key':_0xaf17('0x24'),'keyType':_0xaf17('0x7'),'keyContent':'','variableName':'endtime'},{'type':_0xaf17('0xe'),'content':'','key':_0xaf17('0x25'),'keyType':_0xaf17('0x7'),'keyContent':'','variableName':'duration'},{'type':'keyValue','content':'','key':_0xaf17('0x26'),'keyType':_0xaf17('0x7'),'keyContent':'','variableName':_0xaf17('0x27')}];break;}}return _0x3ead7f;};
\ No newline at end of file
+var _0x9095=['destcalleridnum','getDescriptions','inbound','string','***\x20Call\x20Info\x20***','keyValue','Caller\x20Number','Caller\x20Name','calleridname','Call\x20To','destexten','Queue','UniqueId','uniqueid','Date','agentcalledAt','***\x20Agent\x20Info\x20***','Agent\x20Name','destcalleridname','***\x20Time\x20Info\x20***','Agent\x20Ring','Agent\x20Connect','agentconnectAt','agentcompleteAt','Hold\x20Time','holdtime','outbound','Called\x20Number','Member\x20Name','membername','Answer\x20Time','answertime','Complete\x20Time','endtime','Duration','Billable\x20Time','billableseconds','getSubjects','[xCALLY\x20Ticket]','toLowerCase','voice','push','variable','queue','calleridnum','Outbound\x20Call'];(function(_0x47e7cb,_0x4c1b8d){var _0x2a8874=function(_0x36498f){while(--_0x36498f){_0x47e7cb['push'](_0x47e7cb['shift']());}};_0x2a8874(++_0x4c1b8d);}(_0x9095,0x195));var _0x5909=function(_0x3c504b,_0x437693){_0x3c504b=_0x3c504b-0x0;var _0x2e5354=_0x9095[_0x3c504b];return _0x2e5354;};'use strict';exports[_0x5909('0x0')]=function(_0x4fde5f,_0xff4219){var _0x5a7adf=[{'type':'string','content':_0x5909('0x1'),'variableName':null}];switch(_0x4fde5f[_0x5909('0x2')]()){case _0x5909('0x3'):switch(_0xff4219[_0x5909('0x2')]()){case'inbound':_0x5a7adf[_0x5909('0x4')]({'type':_0x5909('0x5'),'content':'','variableName':_0x5909('0x6')});_0x5a7adf[_0x5909('0x4')]({'type':_0x5909('0x5'),'content':'','variableName':_0x5909('0x7')});break;case'outbound':_0x5a7adf[_0x5909('0x4')]({'type':'string','content':_0x5909('0x8'),'variableName':null});_0x5a7adf[_0x5909('0x4')]({'type':_0x5909('0x5'),'content':'','variableName':_0x5909('0x9')});break;}}return _0x5a7adf;};exports[_0x5909('0xa')]=function(_0x41a553,_0x34b3cc){var _0x31d389=[];switch(_0x41a553[_0x5909('0x2')]()){case _0x5909('0x3'):switch(_0x34b3cc[_0x5909('0x2')]()){case _0x5909('0xb'):_0x31d389=[{'type':_0x5909('0xc'),'content':_0x5909('0xd'),'key':null,'keyType':null,'variableName':null},{'type':_0x5909('0xe'),'content':'','key':_0x5909('0xf'),'keyType':_0x5909('0x5'),'variableName':_0x5909('0x7')},{'type':_0x5909('0xe'),'content':'','key':_0x5909('0x10'),'keyType':_0x5909('0x5'),'variableName':_0x5909('0x11')},{'type':_0x5909('0xe'),'content':'','key':_0x5909('0x12'),'keyType':_0x5909('0x5'),'variableName':_0x5909('0x13')},{'type':_0x5909('0xe'),'content':'','key':_0x5909('0x14'),'keyType':_0x5909('0x5'),'variableName':_0x5909('0x6')},{'type':_0x5909('0xe'),'content':'','key':_0x5909('0x15'),'keyType':_0x5909('0x5'),'variableName':_0x5909('0x16')},{'type':_0x5909('0xe'),'content':'','key':_0x5909('0x17'),'keyType':_0x5909('0x5'),'variableName':_0x5909('0x18')},{'type':_0x5909('0xc'),'content':_0x5909('0x19'),'key':null,'keyType':null,'variableName':null},{'type':_0x5909('0xe'),'content':'','key':_0x5909('0x1a'),'keyType':_0x5909('0x5'),'variableName':_0x5909('0x1b')},{'type':'keyValue','content':'','key':'Agent\x20Number','keyType':_0x5909('0x5'),'variableName':_0x5909('0x9')},{'type':_0x5909('0xc'),'content':_0x5909('0x1c'),'key':null,'keyType':null,'variableName':null},{'type':'keyValue','content':'','key':_0x5909('0x1d'),'keyType':'variable','variableName':_0x5909('0x18')},{'type':_0x5909('0xe'),'content':'','key':_0x5909('0x1e'),'keyType':_0x5909('0x5'),'variableName':_0x5909('0x1f')},{'type':_0x5909('0xe'),'content':'','key':'Agent\x20Complete','keyType':_0x5909('0x5'),'variableName':_0x5909('0x20')},{'type':'keyValue','content':'','key':_0x5909('0x21'),'keyType':_0x5909('0x5'),'variableName':_0x5909('0x22')},{'type':_0x5909('0xe'),'content':'','key':'Talk\x20Time','keyType':'variable','variableName':'talktime'}];break;case _0x5909('0x23'):_0x31d389=[{'type':'string','content':'***\x20Call\x20Info\x20***','variableName':null},{'type':'keyValue','content':'','key':_0x5909('0x24'),'keyType':_0x5909('0x5'),'keyContent':'','variableName':_0x5909('0x9')},{'type':_0x5909('0xe'),'content':'','key':_0x5909('0x25'),'keyType':_0x5909('0x5'),'keyContent':'','variableName':_0x5909('0x26')},{'type':'keyValue','content':'','key':_0x5909('0x15'),'keyType':_0x5909('0x5'),'keyContent':'','variableName':'uniqueid'},{'type':_0x5909('0xe'),'content':'','key':_0x5909('0x17'),'keyType':_0x5909('0x5'),'keyContent':'','variableName':'starttime'},{'type':_0x5909('0xc'),'content':'***\x20Time\x20Info\x20***'},{'type':_0x5909('0xe'),'content':'','key':_0x5909('0x27'),'keyType':_0x5909('0x5'),'keyContent':'','variableName':_0x5909('0x28')},{'type':'keyValue','content':'','key':_0x5909('0x29'),'keyType':'variable','keyContent':'','variableName':_0x5909('0x2a')},{'type':'keyValue','content':'','key':_0x5909('0x2b'),'keyType':_0x5909('0x5'),'keyContent':'','variableName':'duration'},{'type':_0x5909('0xe'),'content':'','key':_0x5909('0x2c'),'keyType':'variable','keyContent':'','variableName':_0x5909('0x2d')}];break;}}return _0x31d389;};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf8e0=['user','query','clone','body','omit','html','fax','mobile','lodash','../../mysqldb','openchannel-interactions','../../config/logger','mail-interactions','sms-interactions','chat-interactions','whatsapp-interactions','upperFirst','InteractionId','toLowerCase','toUpperCase','role','stringify','null','Interaction','then','update','catch','error','tracked'];(function(_0x2b10c6,_0x185590){var _0x3789d2=function(_0x272987){while(--_0x272987){_0x2b10c6['push'](_0x2b10c6['shift']());}};_0x3789d2(++_0x185590);}(_0xf8e0,0x10d));var _0x0f8e=function(_0x31cae7,_0x297087){_0x31cae7=_0x31cae7-0x0;var _0x3f8521=_0xf8e0[_0x31cae7];return _0x3f8521;};'use strict';var _=require(_0x0f8e('0x0'));var db=require(_0x0f8e('0x1'))['db'];var loggers={'openchannel':require('../../config/logger')(_0x0f8e('0x2')),'mail':require(_0x0f8e('0x3'))(_0x0f8e('0x4')),'fax':require(_0x0f8e('0x3'))('fax-interactions'),'sms':require('../../config/logger')(_0x0f8e('0x5')),'chat':require(_0x0f8e('0x3'))(_0x0f8e('0x6')),'whatsapp':require(_0x0f8e('0x3'))(_0x0f8e('0x7'))};function getInteractionId(_0x223660,_0x1570fb,_0x2380f3){if(_0x223660&&_0x223660[_[_0x0f8e('0x8')](_0x2380f3)+'InteractionId']){return _0x223660[_[_0x0f8e('0x8')](_0x2380f3)+_0x0f8e('0x9')];}else if(_0x223660&&_0x223660['id']){return _0x223660['id'];}else if(_0x1570fb&&_0x1570fb['id']){return _0x1570fb['id'];}else{return'unknown';}}function log(_0x189f16,_0x3d910b,_0x4ceceb,_0x483f99,_0x1e7706,_0x138da4){loggers[_0x1e7706[_0x0f8e('0xa')]()][_0x189f16]('[%s]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x138da4[_0x0f8e('0xb')](),_0x3d910b?_0x3d910b['id']:null,_0x3d910b?_0x3d910b['name']:null,_0x3d910b?_0x3d910b[_0x0f8e('0xc')]:null,getInteractionId(_0x4ceceb,_0x483f99,_0x1e7706),_0x4ceceb?JSON[_0x0f8e('0xd')](_0x4ceceb):_0x0f8e('0xe'));}function updateUser(_0x280cce,_0x3db633,_0x2bc4aa,_0x427317,_0x21a62e){db[_[_0x0f8e('0x8')](_0x427317)+_0x0f8e('0xf')]['findOne']({'where':{'id':getInteractionId(_0x3db633,_0x2bc4aa,_0x427317)}})[_0x0f8e('0x10')](function(_0x2b2073){if(_0x2b2073){return _0x2b2073[_0x0f8e('0x11')]({'UserId':_0x280cce?_0x280cce['id']:null});}})[_0x0f8e('0x10')](function(_0x33b3b4){if(_0x33b3b4){log('info',_0x280cce,_0x3db633,_0x2bc4aa,_0x427317,_0x21a62e);}})[_0x0f8e('0x12')](function(){log(_0x0f8e('0x13'),_0x280cce,_0x3db633,_0x2bc4aa,_0x427317,_0x21a62e);});}exports[_0x0f8e('0x14')]=function(_0x1243ee,_0x4f2a9d){return function(_0x45a778,_0x89396d,_0x2b43c9){var _0x18768a=_0x45a778[_0x0f8e('0x15')];var _0x1ec813={};var _0x4acf80=_0x45a778[_0x0f8e('0x16')];if(_0x1ec813){_0x1ec813=_[_0x0f8e('0x17')](_0x45a778[_0x0f8e('0x18')]);_0x1ec813=_[_0x0f8e('0x19')](_0x1ec813,[_0x0f8e('0x18'),_0x0f8e('0x1a'),'phone',_0x0f8e('0x1b'),_0x0f8e('0x1c')]);}updateUser(_0x18768a,_0x1ec813,_0x4acf80,_0x1243ee,_0x4f2a9d);_0x2b43c9(null);};};
\ No newline at end of file
+var _0x73a9=['error','user','body','omit','html','mobile','../../mysqldb','openchannel-interactions','mail-interactions','../../config/logger','sms-interactions','whatsapp-interactions','upperFirst','InteractionId','unknown','[%s]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','toUpperCase','name','role','stringify','then','update','catch'];(function(_0x146549,_0x52c57e){var _0x42245d=function(_0x54f352){while(--_0x54f352){_0x146549['push'](_0x146549['shift']());}};_0x42245d(++_0x52c57e);}(_0x73a9,0x1bb));var _0x973a=function(_0x47df57,_0x4e0a04){_0x47df57=_0x47df57-0x0;var _0x517582=_0x73a9[_0x47df57];return _0x517582;};'use strict';var _=require('lodash');var db=require(_0x973a('0x0'))['db'];var loggers={'openchannel':require('../../config/logger')(_0x973a('0x1')),'mail':require('../../config/logger')(_0x973a('0x2')),'fax':require(_0x973a('0x3'))('fax-interactions'),'sms':require('../../config/logger')(_0x973a('0x4')),'chat':require(_0x973a('0x3'))('chat-interactions'),'whatsapp':require('../../config/logger')(_0x973a('0x5'))};function getInteractionId(_0x2294ac,_0x3f782a,_0x39426e){if(_0x2294ac&&_0x2294ac[_[_0x973a('0x6')](_0x39426e)+_0x973a('0x7')]){return _0x2294ac[_['upperFirst'](_0x39426e)+'InteractionId'];}else if(_0x2294ac&&_0x2294ac['id']){return _0x2294ac['id'];}else if(_0x3f782a&&_0x3f782a['id']){return _0x3f782a['id'];}else{return _0x973a('0x8');}}function log(_0x183eaf,_0x207005,_0x2264a8,_0x5f3b67,_0x417984,_0x49b3a6){loggers[_0x417984['toLowerCase']()][_0x183eaf](_0x973a('0x9'),_0x49b3a6[_0x973a('0xa')](),_0x207005?_0x207005['id']:null,_0x207005?_0x207005[_0x973a('0xb')]:null,_0x207005?_0x207005[_0x973a('0xc')]:null,getInteractionId(_0x2264a8,_0x5f3b67,_0x417984),_0x2264a8?JSON[_0x973a('0xd')](_0x2264a8):'null');}function updateUser(_0xb518fd,_0x363d4c,_0x11c6fb,_0x45ae35,_0x4175a0){db[_[_0x973a('0x6')](_0x45ae35)+'Interaction']['findOne']({'where':{'id':getInteractionId(_0x363d4c,_0x11c6fb,_0x45ae35)}})[_0x973a('0xe')](function(_0x5a2f03){if(_0x5a2f03){return _0x5a2f03[_0x973a('0xf')]({'UserId':_0xb518fd?_0xb518fd['id']:null});}})['then'](function(_0x57df2c){if(_0x57df2c){log('info',_0xb518fd,_0x363d4c,_0x11c6fb,_0x45ae35,_0x4175a0);}})[_0x973a('0x10')](function(){log(_0x973a('0x11'),_0xb518fd,_0x363d4c,_0x11c6fb,_0x45ae35,_0x4175a0);});}exports['tracked']=function(_0x4adaa9,_0x5edd18){return function(_0x1af177,_0x12be3d,_0x3e2dd8){var _0x3f1b77=_0x1af177[_0x973a('0x12')];var _0x5ef81a={};var _0x801b5b=_0x1af177['query'];if(_0x5ef81a){_0x5ef81a=_['clone'](_0x1af177[_0x973a('0x13')]);_0x5ef81a=_[_0x973a('0x14')](_0x5ef81a,['body',_0x973a('0x15'),'phone','fax',_0x973a('0x16')]);}updateUser(_0x3f1b77,_0x5ef81a,_0x801b5b,_0x4adaa9,_0x5edd18);_0x3e2dd8(null);};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfa2e=['isUserLimit','crypto','util','composable-middleware','../../mysqldb','data1','split','createDecipher','format','%s:%s:%s','update','utf8','final','parse','findOne','then','count','json','Maximum\x20%s\x20limit\x20have\x20been\x20reached','catch','admin','user'];(function(_0x5eab69,_0x468a6e){var _0x354f2a=function(_0x4dde09){while(--_0x4dde09){_0x5eab69['push'](_0x5eab69['shift']());}};_0x354f2a(++_0x468a6e);}(_0xfa2e,0x109));var _0xefa2=function(_0x4f3ff5,_0xae9bee){_0x4f3ff5=_0x4f3ff5-0x0;var _0x2b5f69=_0xfa2e[_0x4f3ff5];return _0x2b5f69;};'use strict';var crypto=require(_0xefa2('0x0'));var util=require(_0xefa2('0x1'));var compose=require(_0xefa2('0x2'));var db=require(_0xefa2('0x3'))['db'];var config=require('../../config/environment');function getValueFromLicense(_0x35a1d9,_0x194947){if(_0x35a1d9&&_0x194947){if(_0x194947['data1']&&_0x194947['license']){var _0xc10abf=_0x194947[_0xefa2('0x4')];var _0x341a6f=_0x194947['license'];var _0x129ce8=_0xc10abf[_0xefa2('0x5')]('-')[0x4];var _0x347253=_0xc10abf[_0xefa2('0x5')]('-')[0x0];var _0x43e44d=crypto[_0xefa2('0x6')]('aes-256-ctr',util[_0xefa2('0x7')](_0xefa2('0x8'),_0x129ce8,_0xc10abf,_0x347253));var _0x1ccabe=_0x43e44d[_0xefa2('0x9')](_0x341a6f,'base64',_0xefa2('0xa'));_0x1ccabe+=_0x43e44d[_0xefa2('0xb')]('utf8');var _0x3a3cf3=JSON[_0xefa2('0xc')](_0x1ccabe);return _0x3a3cf3['hasOwnProperty'](_0x35a1d9)?_0x3a3cf3[_0x35a1d9]:null;}}return null;}function isLimit(_0x25578f,_0x35cd47,_0x2311a1,_0x30e668){var _0x590160=_0x35cd47;return compose()['use'](function(_0x1ad91d,_0x464654,_0x176262){return db['License'][_0xefa2('0xd')]({'where':{'id':0x1},'raw':!![]})[_0xefa2('0xe')](function(_0x38412a){var _0x1c21e6=getValueFromLicense(_0x25578f,_0x38412a);return _0x1c21e6?_0x1c21e6:_0x590160;})[_0xefa2('0xe')](function(_0x296a4d){_0x590160=_0x296a4d;return _0x2311a1[_0xefa2('0xf')](_0x30e668);})[_0xefa2('0xe')](function(_0x5d5824){if(_0x5d5824>=_0x590160){return _0x464654['status'](0x193)[_0xefa2('0x10')]({'message':util['format'](_0xefa2('0x11'),_0x25578f)});}_0x176262();})[_0xefa2('0x12')](function(_0x56bf0a){_0x176262(_0x56bf0a);});});}function isUserLimit(){return isLimit('users',0x1,db['User'],{'where':{'$or':[{'role':_0xefa2('0x13')},{'role':_0xefa2('0x14')}]}});}exports[_0xefa2('0x15')]=isUserLimit;
\ No newline at end of file
+var _0x2f96=['license','split','createDecipher','format','%s:%s:%s','base64','utf8','final','parse','use','License','then','count','json','Maximum\x20%s\x20limit\x20have\x20been\x20reached','catch','User','admin','user','isUserLimit','crypto','util','../../mysqldb','data1'];(function(_0x4df671,_0x12b67f){var _0x3f9658=function(_0x26151d){while(--_0x26151d){_0x4df671['push'](_0x4df671['shift']());}};_0x3f9658(++_0x12b67f);}(_0x2f96,0x104));var _0x62f9=function(_0x1fe8a4,_0xd9c7a7){_0x1fe8a4=_0x1fe8a4-0x0;var _0x5703e4=_0x2f96[_0x1fe8a4];return _0x5703e4;};'use strict';var crypto=require(_0x62f9('0x0'));var util=require(_0x62f9('0x1'));var compose=require('composable-middleware');var db=require(_0x62f9('0x2'))['db'];var config=require('../../config/environment');function getValueFromLicense(_0x37a517,_0x24390b){if(_0x37a517&&_0x24390b){if(_0x24390b[_0x62f9('0x3')]&&_0x24390b[_0x62f9('0x4')]){var _0x47ce99=_0x24390b[_0x62f9('0x3')];var _0x2cdcdd=_0x24390b['license'];var _0x3505d4=_0x47ce99[_0x62f9('0x5')]('-')[0x4];var _0x5a689b=_0x47ce99[_0x62f9('0x5')]('-')[0x0];var _0x4cb4ae=crypto[_0x62f9('0x6')]('aes-256-ctr',util[_0x62f9('0x7')](_0x62f9('0x8'),_0x3505d4,_0x47ce99,_0x5a689b));var _0xe36750=_0x4cb4ae['update'](_0x2cdcdd,_0x62f9('0x9'),_0x62f9('0xa'));_0xe36750+=_0x4cb4ae[_0x62f9('0xb')]('utf8');var _0x4a7f81=JSON[_0x62f9('0xc')](_0xe36750);return _0x4a7f81['hasOwnProperty'](_0x37a517)?_0x4a7f81[_0x37a517]:null;}}return null;}function isLimit(_0x32d455,_0x39ea84,_0x49f154,_0x13fb67){var _0x5aadd0=_0x39ea84;return compose()[_0x62f9('0xd')](function(_0x85be,_0xfc5c7f,_0xd74351){return db[_0x62f9('0xe')]['findOne']({'where':{'id':0x1},'raw':!![]})[_0x62f9('0xf')](function(_0x2c36dc){var _0x403144=getValueFromLicense(_0x32d455,_0x2c36dc);return _0x403144?_0x403144:_0x5aadd0;})[_0x62f9('0xf')](function(_0x22c0fb){_0x5aadd0=_0x22c0fb;return _0x49f154[_0x62f9('0x10')](_0x13fb67);})[_0x62f9('0xf')](function(_0xd43d37){if(_0xd43d37>=_0x5aadd0){return _0xfc5c7f['status'](0x193)[_0x62f9('0x11')]({'message':util[_0x62f9('0x7')](_0x62f9('0x12'),_0x32d455)});}_0xd74351();})[_0x62f9('0x13')](function(_0x1ee563){_0xd74351(_0x1ee563);});});}function isUserLimit(){return isLimit('users',0x1,db[_0x62f9('0x14')],{'where':{'$or':[{'role':_0x62f9('0x15')},{'role':_0x62f9('0x16')}]}});}exports[_0x62f9('0x17')]=isUserLimit;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xeffb=['BETWEEN\x20?\x20AND\x20?','start','$endsWith','shift','pop','utcOffset','hours','minutes','moment','parseSearch','startsWith','[$or]','and','replace','[$and]','split','slice','forEach','match','filter','indexOf','map','push','buildExpression','DATE','operator','$between','value','includes','add','days','format','YYYY-MM-DD','castTo','text','CAST(','\x20AS\x20','field','$in','IN\x20?','$notIn','NOT\x20IN\x20?','$eq','=\x20?','$ne','<>\x20?','$substring','$startsWith','LIKE\x20?','$lt','<\x20?','$gt','$lte','<=\x20?','$gte'];(function(_0x5970af,_0x2bf902){var _0x33ef0d=function(_0x2d61a5){while(--_0x2d61a5){_0x5970af['push'](_0x5970af['shift']());}};_0x33ef0d(++_0x2bf902);}(_0xeffb,0x152));var _0xbeff=function(_0x2718c7,_0x5a1636){_0x2718c7=_0x2718c7-0x0;var _0x59d89c=_0xeffb[_0x2718c7];return _0x59d89c;};'use strict';var _=require('lodash');var moment=require(_0xbeff('0x0'));exports[_0xbeff('0x1')]=function(_0x3e8814){var _0x19a558={'conditions':[]};_0x19a558['sqlOperator']=_[_0xbeff('0x2')](_0x3e8814,_0xbeff('0x3'))?'or':_0xbeff('0x4');var _0x3e4940=_0x3e8814[_0xbeff('0x5')](_0xbeff('0x6'),'')[_0xbeff('0x5')](_0xbeff('0x3'),'')[_0xbeff('0x7')]('||');for(var _0x18968e=0x0;_0x18968e<_0x3e4940['length'];_0x18968e++){var _0x1c298c=_0x3e4940[_0x18968e][_0xbeff('0x7')](':=');var _0x40a8a1=_0x1c298c[0x0];var _0x112074=_0x1c298c[_0xbeff('0x8')](0x1);_0x112074[_0xbeff('0x9')](function(_0x4d1aa7){var _0x29322c=_0x4d1aa7[_0xbeff('0x7')]('[')['shift']();var _0x461e56=_0x4d1aa7[_0xbeff('0xa')](/\[(.*?)\]/g);_0x461e56['forEach'](function(_0x11a4b5){var _0x10b4a6=_0x11a4b5[_0xbeff('0x7')]('[')[_0xbeff('0xb')](function(_0x41346d){return _0x41346d[_0xbeff('0xc')](']')>-0x1;})[_0xbeff('0xd')](function(_0x2065d3){return _0x2065d3[_0xbeff('0x7')](']')[0x0];})[0x0];_0x19a558['conditions'][_0xbeff('0xe')]({'field':_0x40a8a1,'operator':_0x29322c,'value':_0x10b4a6});});});}return _0x19a558;};exports[_0xbeff('0xf')]=function(_0x51139d,_0x5f3759,_0x5aabf4){var _0x562696={};if(_0x5f3759===_0xbeff('0x10')){if(_0x5aabf4['operator']==='$eq'){_0x5aabf4[_0xbeff('0x11')]=_0xbeff('0x12');_0x5aabf4[_0xbeff('0x13')]+=','+_0x5aabf4[_0xbeff('0x13')];}else if(_[_0xbeff('0x14')](['$gt','$lte'],_0x5aabf4['operator'])){_0x5aabf4['value']=moment(_0x5aabf4[_0xbeff('0x13')])[_0xbeff('0x15')](0x1,_0xbeff('0x16'))[_0xbeff('0x17')](_0xbeff('0x18'));}}if(_0x5aabf4['castTo']){_0x5f3759=_0x5aabf4[_0xbeff('0x19')];_0x562696[_0xbeff('0x1a')]=_0xbeff('0x1b')+_0x51139d+'.'+_0x5aabf4['field']+_0xbeff('0x1c')+_0x5aabf4[_0xbeff('0x19')]+')\x20'+parseOperator(_0x5aabf4[_0xbeff('0x11')]);}else{_0x562696['text']=_0x51139d+'.'+_0x5aabf4['field']+'\x20'+parseOperator(_0x5aabf4[_0xbeff('0x11')]);}if(_[_0xbeff('0x14')](['$ne','$notIn'],_0x5aabf4[_0xbeff('0x11')]))_0x562696['text']='('+_0x562696[_0xbeff('0x1a')]+'\x20OR\x20'+_0x51139d+'.'+_0x5aabf4[_0xbeff('0x1d')]+'\x20IS\x20NULL)';_0x562696['value']=parseValue(_0x5f3759,_0x5aabf4[_0xbeff('0x11')],_0x5aabf4[_0xbeff('0x13')]);return _0x562696;};function parseOperator(_0x2b66fa){var _0x53c89e;switch(_0x2b66fa){case _0xbeff('0x1e'):_0x53c89e=_0xbeff('0x1f');break;case _0xbeff('0x20'):_0x53c89e=_0xbeff('0x21');break;case _0xbeff('0x22'):_0x53c89e=_0xbeff('0x23');break;case _0xbeff('0x24'):_0x53c89e=_0xbeff('0x25');break;case _0xbeff('0x26'):case _0xbeff('0x27'):case'$endsWith':_0x53c89e=_0xbeff('0x28');break;case _0xbeff('0x29'):_0x53c89e=_0xbeff('0x2a');break;case _0xbeff('0x2b'):_0x53c89e='>\x20?';break;case _0xbeff('0x2c'):_0x53c89e=_0xbeff('0x2d');break;case _0xbeff('0x2e'):_0x53c89e='>=\x20?';break;case'$between':_0x53c89e=_0xbeff('0x2f');break;}return _0x53c89e;}function parseValue(_0x3d67aa,_0x21ffd8,_0x17d46a){var _0x57b3ed={'start':undefined,'end':undefined};switch(_0x21ffd8){case _0xbeff('0x1e'):case _0xbeff('0x20'):_0x57b3ed[_0xbeff('0x30')]=_0x17d46a[_0xbeff('0x7')](',');break;case _0xbeff('0x26'):_0x57b3ed[_0xbeff('0x30')]='%'+_0x17d46a+'%';break;case _0xbeff('0x27'):_0x57b3ed[_0xbeff('0x30')]=_0x17d46a+'%';break;case _0xbeff('0x31'):_0x57b3ed[_0xbeff('0x30')]='%'+_0x17d46a;break;case _0xbeff('0x12'):var _0xa719e9=_0x17d46a[_0xbeff('0x7')](',');var _0x17d46a=_0xa719e9[_0xbeff('0x32')]();var _0x5a9880=_0xa719e9[_0xbeff('0x33')]();if(_0x3d67aa===_0xbeff('0x10')){_0x17d46a=moment(_0x17d46a)[_0xbeff('0x34')](0x0,!![])['format']();_0x5a9880=moment(_0x5a9880)[_0xbeff('0x34')](0x0,!![])['add'](0x17,_0xbeff('0x35'))[_0xbeff('0x15')](0x3b,_0xbeff('0x36'))['add'](0x3b,'seconds')['format']();}_0x57b3ed={'start':_0x17d46a,'end':_0x5a9880};break;default:_0x57b3ed['start']=_0x17d46a;break;}return _0x57b3ed;}
\ No newline at end of file
+var _0x42bc=['$in','<>\x20?','$substring','$endsWith','LIKE\x20?','$lt','<\x20?','>\x20?','$lte','$gte','>=\x20?','BETWEEN\x20?\x20AND\x20?','$notIn','start','$startsWith','pop','utcOffset','hours','minutes','seconds','lodash','moment','sqlOperator','startsWith','and','replace','[$and]','[$or]','split','slice','forEach','shift','indexOf','conditions','push','buildExpression','DATE','operator','$between','value','includes','$gt','add','days','format','YYYY-MM-DD','castTo','text','CAST(','\x20AS\x20','field','$ne','\x20OR\x20'];(function(_0x4e03c8,_0x20c2dd){var _0x6cb7d6=function(_0xf41762){while(--_0xf41762){_0x4e03c8['push'](_0x4e03c8['shift']());}};_0x6cb7d6(++_0x20c2dd);}(_0x42bc,0x7e));var _0xc42b=function(_0x181fba,_0x3e23f4){_0x181fba=_0x181fba-0x0;var _0x509d8d=_0x42bc[_0x181fba];return _0x509d8d;};'use strict';var _=require(_0xc42b('0x0'));var moment=require(_0xc42b('0x1'));exports['parseSearch']=function(_0x15ce91){var _0x2b79b7={'conditions':[]};_0x2b79b7[_0xc42b('0x2')]=_[_0xc42b('0x3')](_0x15ce91,'[$or]')?'or':_0xc42b('0x4');var _0x26d3ae=_0x15ce91[_0xc42b('0x5')](_0xc42b('0x6'),'')[_0xc42b('0x5')](_0xc42b('0x7'),'')[_0xc42b('0x8')]('||');for(var _0xcc2378=0x0;_0xcc2378<_0x26d3ae['length'];_0xcc2378++){var _0x225e19=_0x26d3ae[_0xcc2378][_0xc42b('0x8')](':=');var _0x535e4b=_0x225e19[0x0];var _0x105a4a=_0x225e19[_0xc42b('0x9')](0x1);_0x105a4a[_0xc42b('0xa')](function(_0x47b284){var _0x280c0b=_0x47b284['split']('[')[_0xc42b('0xb')]();var _0xaf575=_0x47b284['match'](/\[(.*?)\]/g);_0xaf575[_0xc42b('0xa')](function(_0x2d226a){var _0x1257cd=_0x2d226a[_0xc42b('0x8')]('[')['filter'](function(_0x4de788){return _0x4de788[_0xc42b('0xc')](']')>-0x1;})['map'](function(_0x29579d){return _0x29579d[_0xc42b('0x8')](']')[0x0];})[0x0];_0x2b79b7[_0xc42b('0xd')][_0xc42b('0xe')]({'field':_0x535e4b,'operator':_0x280c0b,'value':_0x1257cd});});});}return _0x2b79b7;};exports[_0xc42b('0xf')]=function(_0x49b4ef,_0x39ce10,_0x1600ea){var _0x3dbf5a={};if(_0x39ce10===_0xc42b('0x10')){if(_0x1600ea[_0xc42b('0x11')]==='$eq'){_0x1600ea[_0xc42b('0x11')]=_0xc42b('0x12');_0x1600ea[_0xc42b('0x13')]+=','+_0x1600ea[_0xc42b('0x13')];}else if(_[_0xc42b('0x14')]([_0xc42b('0x15'),'$lte'],_0x1600ea[_0xc42b('0x11')])){_0x1600ea['value']=moment(_0x1600ea[_0xc42b('0x13')])[_0xc42b('0x16')](0x1,_0xc42b('0x17'))[_0xc42b('0x18')](_0xc42b('0x19'));}}if(_0x1600ea[_0xc42b('0x1a')]){_0x39ce10=_0x1600ea[_0xc42b('0x1a')];_0x3dbf5a[_0xc42b('0x1b')]=_0xc42b('0x1c')+_0x49b4ef+'.'+_0x1600ea['field']+_0xc42b('0x1d')+_0x1600ea[_0xc42b('0x1a')]+')\x20'+parseOperator(_0x1600ea['operator']);}else{_0x3dbf5a[_0xc42b('0x1b')]=_0x49b4ef+'.'+_0x1600ea[_0xc42b('0x1e')]+'\x20'+parseOperator(_0x1600ea['operator']);}if(_[_0xc42b('0x14')]([_0xc42b('0x1f'),'$notIn'],_0x1600ea[_0xc42b('0x11')]))_0x3dbf5a['text']='('+_0x3dbf5a[_0xc42b('0x1b')]+_0xc42b('0x20')+_0x49b4ef+'.'+_0x1600ea[_0xc42b('0x1e')]+'\x20IS\x20NULL)';_0x3dbf5a[_0xc42b('0x13')]=parseValue(_0x39ce10,_0x1600ea[_0xc42b('0x11')],_0x1600ea[_0xc42b('0x13')]);return _0x3dbf5a;};function parseOperator(_0x440347){var _0x49bc43;switch(_0x440347){case _0xc42b('0x21'):_0x49bc43='IN\x20?';break;case'$notIn':_0x49bc43='NOT\x20IN\x20?';break;case'$eq':_0x49bc43='=\x20?';break;case _0xc42b('0x1f'):_0x49bc43=_0xc42b('0x22');break;case _0xc42b('0x23'):case'$startsWith':case _0xc42b('0x24'):_0x49bc43=_0xc42b('0x25');break;case _0xc42b('0x26'):_0x49bc43=_0xc42b('0x27');break;case _0xc42b('0x15'):_0x49bc43=_0xc42b('0x28');break;case _0xc42b('0x29'):_0x49bc43='<=\x20?';break;case _0xc42b('0x2a'):_0x49bc43=_0xc42b('0x2b');break;case _0xc42b('0x12'):_0x49bc43=_0xc42b('0x2c');break;}return _0x49bc43;}function parseValue(_0x156209,_0x13aa9c,_0x2f24ec){var _0x42587c={'start':undefined,'end':undefined};switch(_0x13aa9c){case _0xc42b('0x21'):case _0xc42b('0x2d'):_0x42587c[_0xc42b('0x2e')]=_0x2f24ec[_0xc42b('0x8')](',');break;case _0xc42b('0x23'):_0x42587c[_0xc42b('0x2e')]='%'+_0x2f24ec+'%';break;case _0xc42b('0x2f'):_0x42587c[_0xc42b('0x2e')]=_0x2f24ec+'%';break;case _0xc42b('0x24'):_0x42587c['start']='%'+_0x2f24ec;break;case _0xc42b('0x12'):var _0x59a2d5=_0x2f24ec['split'](',');var _0x2f24ec=_0x59a2d5['shift']();var _0x5569c0=_0x59a2d5[_0xc42b('0x30')]();if(_0x156209===_0xc42b('0x10')){_0x2f24ec=moment(_0x2f24ec)[_0xc42b('0x31')](0x0,!![])[_0xc42b('0x18')]();_0x5569c0=moment(_0x5569c0)[_0xc42b('0x31')](0x0,!![])[_0xc42b('0x16')](0x17,_0xc42b('0x32'))[_0xc42b('0x16')](0x3b,_0xc42b('0x33'))[_0xc42b('0x16')](0x3b,_0xc42b('0x34'))['format']();}_0x42587c={'start':_0x2f24ec,'end':_0x5569c0};break;default:_0x42587c['start']=_0x2f24ec;break;}return _0x42587c;}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8c92=['name','filters','intersection','attributes','fields','hasOwnProperty','nolimit','limit','order','pick','filter','where','lower','merge','lodash','sequelize','moment','keys','includes','parse','forOwn','type','DATE','format','YYYY-MM-DD','utc','$lte','isArray','split','offset','sort','indexOf','cast','col','priority','substr','DESC','omit','isEmpty','length','isObject','unset','isNumeric','match','getFullTextValue','forEach','replace','push','join','getOptions','query','$id','model','map'];(function(_0x548627,_0x4ec392){var _0x844a84=function(_0x2ffdd2){while(--_0x2ffdd2){_0x548627['push'](_0x548627['shift']());}};_0x844a84(++_0x4ec392);}(_0x8c92,0x7a));var _0x28c9=function(_0xf62f27,_0x249f1d){_0xf62f27=_0xf62f27-0x0;var _0x4f7985=_0x8c92[_0xf62f27];return _0x4f7985;};'use strict';var _=require(_0x28c9('0x0'));var sequelize=require(_0x28c9('0x1'));var moment=require(_0x28c9('0x2'));var LIMIT_VALUE=0xfa;function hasSequelizeOperator(_0x1bb90a){var _0xab7548=['ne'];try{var _0x3050bb=JSON['parse'](_0x1bb90a);var _0x3b4ef9=Object[_0x28c9('0x3')](_0x3050bb)[0x0];return _0xab7548[_0x28c9('0x4')](_0x3b4ef9);}catch(_0x16e6d3){return![];}}function getOperatorValue(_0x5de80c){var _0xe16047=JSON[_0x28c9('0x5')](_0x5de80c);var _0x46a1d2=Object[_0x28c9('0x3')](_0xe16047)[0x0];var _0x30ac7f=_0xe16047[_0x46a1d2];return{['$'+_0x46a1d2]:_0x30ac7f};}exports['fields']=function(_0x181f73){var _0x4c4f36=null;if(_0x181f73){_0x4c4f36=_0x181f73['split'](',');}return _0x4c4f36;};exports['filters']=function(_0x3817c0,_0xa6729e){var _0x4a32a5={};if(!_['isEmpty'](_0x3817c0)){_[_0x28c9('0x6')](_0x3817c0,function(_0x1bdd84,_0x1bfbfa){try{if(_0xa6729e){var _0xfc2310=_['find'](_0xa6729e,{'name':_0x1bfbfa})||{};if(hasSequelizeOperator(_0x1bdd84)){_0x4a32a5[_0x1bfbfa]=getOperatorValue(_0x1bdd84);}else if(_0xfc2310[_0x28c9('0x7')]===_0x28c9('0x8')&&_['isPlainObject'](_0x1bdd84)){var _0x3b85d8=JSON[_0x28c9('0x5')](_0x1bdd84);var _0x323b1b={'$gte':moment(moment(_0x3b85d8['$gte'])[_0x28c9('0x9')](_0x28c9('0xa')))[_0x28c9('0xb')]()['format'](),'$lte':moment(moment(_0x3b85d8[_0x28c9('0xc')])[_0x28c9('0x9')](_0x28c9('0xa')))[_0x28c9('0xb')]()['subtract'](0x1,'s')[_0x28c9('0x9')]()};_0x4a32a5[_0x1bfbfa]=_0x323b1b;}else if(_0xfc2310['name']==='uniqueid'){_0x4a32a5[_0x1bfbfa]=_0x1bdd84;}else{_0x4a32a5[_0x1bfbfa]=_[_0x28c9('0xd')](_0x1bdd84)?_0x1bdd84:JSON['parse'](_0x1bdd84);}}else{_0x4a32a5[_0x1bfbfa]=_[_0x28c9('0xd')](_0x1bdd84)?_0x1bdd84:JSON[_0x28c9('0x5')](_0x1bdd84);}}catch(_0x2c7579){_0x4a32a5[_0x1bfbfa]=_0x1bdd84[_0x28c9('0xe')](',');}});}return _0x4a32a5;};exports['limit']=function(_0x4e2954){_0x4e2954=parseInt(_0x4e2954,0xa);if(!_0x4e2954||_0x4e2954<0x0){_0x4e2954=LIMIT_VALUE;}return _0x4e2954;};exports[_0x28c9('0xf')]=function(_0x6a75e8){_0x6a75e8=parseInt(_0x6a75e8,0xa);if(!_0x6a75e8||_0x6a75e8<0x0){_0x6a75e8=0x0;}return _0x6a75e8;};exports[_0x28c9('0x10')]=function(_0x57c5fd){var _0x2bb53e,_0x3dc065=null;if(_0x57c5fd){_0x2bb53e=_0x57c5fd['split'](',');_0x3dc065=_['map'](_0x2bb53e,function(_0x2100b9){if(_0x2100b9[_0x28c9('0x11')]('-')===0x0){return[_0x2100b9==='priority'?sequelize[_0x28c9('0x12')](sequelize[_0x28c9('0x13')](_0x28c9('0x14')),'unsigned'):_0x2100b9[_0x28c9('0x15')](0x1),_0x28c9('0x16')];}else{return[_0x2100b9===_0x28c9('0x14')?sequelize[_0x28c9('0x12')](sequelize[_0x28c9('0x13')](_0x28c9('0x14')),'unsigned'):_0x2100b9,'ASC'];}});}return _0x3dc065;};exports[_0x28c9('0x17')]=function(_0x199774,_0x27398d){if(_[_0x28c9('0x18')](_0x199774)){return _0x199774;}if(_[_0x28c9('0xd')](_0x199774)){for(var _0x866421=0x0;_0x866421<_0x199774[_0x28c9('0x19')];_0x866421+=0x1){_0x199774[_0x866421]=this[_0x28c9('0x17')](_0x199774[_0x866421],_0x27398d);}return _0x199774;}if(!_[_0x28c9('0x1a')](_0x199774)){return _0x199774;}if(_['isString'](_0x27398d)){_0x27398d=[_0x27398d];}if(!_[_0x28c9('0xd')](_0x27398d)){return _0x199774;}for(var _0x36ca53=0x0;_0x36ca53<_0x27398d[_0x28c9('0x19')];_0x36ca53+=0x1){_[_0x28c9('0x1b')](_0x199774,_0x27398d[_0x36ca53]);}for(var _0x4620df in _0x199774){if(_0x199774['hasOwnProperty'](_0x4620df)){_0x199774[_0x4620df]=this['omit'](_0x199774[_0x4620df],_0x27398d);}}return _0x199774;};exports[_0x28c9('0x1c')]=function(_0x8fe07f){return _0x8fe07f[_0x28c9('0x1d')](RegExp('^[+]?[0-9]*$'))?!![]:![];};exports['isEmail']=function(_0x1cd5b3){return _0x1cd5b3[_0x28c9('0x1d')](/^\S+@\S+$/)?!![]:![];};exports[_0x28c9('0x1e')]=function(_0x274016){var _0x495324=[];_0x274016['split'](/[ ,]+/)[_0x28c9('0x1f')](function(_0xc9db6f){_0xc9db6f=_0xc9db6f[_0x28c9('0x20')](/([^:]")"+/g,'$1');_0xc9db6f='+'+_0xc9db6f+'*';if(_0xc9db6f[_0x28c9('0x4')]('@'))_0xc9db6f='\x22'+_0xc9db6f+'\x22';_0x495324[_0x28c9('0x21')](_0xc9db6f);});return _0x495324[_0x28c9('0x22')]('\x20');};exports[_0x28c9('0x23')]=function(_0x526587,_0x5dcddb,_0x5df323){var _0x2736ec={},_0x7d8976={};if(_0x5dcddb[_0x28c9('0x24')][_0x28c9('0x25')]){_0x5dcddb[_0x28c9('0x24')]['id']=_0x5dcddb['query'][_0x28c9('0x25')];delete _0x5dcddb[_0x28c9('0x24')][_0x28c9('0x25')];}_0x2736ec[_0x28c9('0x26')]=_[_0x28c9('0x27')](_0x526587,_0x28c9('0x28'));_0x2736ec['query']=_['keys'](_0x5dcddb[_0x28c9('0x24')]);_0x2736ec[_0x28c9('0x29')]=_[_0x28c9('0x2a')](_0x2736ec['model'],_0x2736ec[_0x28c9('0x24')]);_0x7d8976[_0x28c9('0x2b')]=_['intersection'](_0x2736ec[_0x28c9('0x26')],this[_0x28c9('0x2c')](_0x5dcddb['query'][_0x28c9('0x2c')]));_0x7d8976['attributes']=_0x7d8976[_0x28c9('0x2b')][_0x28c9('0x19')]?_0x7d8976[_0x28c9('0x2b')]:_0x2736ec[_0x28c9('0x26')];if(!_0x5dcddb['query'][_0x28c9('0x2d')](_0x28c9('0x2e'))){_0x7d8976[_0x28c9('0x2f')]=this[_0x28c9('0x2f')](_0x5dcddb[_0x28c9('0x24')][_0x28c9('0x2f')]);_0x7d8976[_0x28c9('0xf')]=this[_0x28c9('0xf')](_0x5dcddb[_0x28c9('0x24')][_0x28c9('0xf')]);}_0x7d8976[_0x28c9('0x30')]=this['sort'](_0x5dcddb[_0x28c9('0x24')]['sort']);_0x7d8976['where']=this[_0x28c9('0x29')](_[_0x28c9('0x31')](_0x5dcddb['query'],_0x2736ec['filters']),_0x526587);if(_0x5dcddb[_0x28c9('0x24')][_0x28c9('0x32')]){_0x7d8976[_0x28c9('0x33')]=_['merge'](_0x7d8976[_0x28c9('0x33')],{'$or':_['map'](_0x526587,function(_0x17975f){if(_0x17975f[_0x28c9('0x7')]!=='VIRTUAL'){if(_0x5df323){return sequelize[_0x28c9('0x33')](sequelize['fn'](_0x28c9('0x34'),sequelize[_0x28c9('0x13')](_0x17975f[_0x28c9('0x28')])),{'$like':sequelize['fn']('lower','%'+_0x5dcddb[_0x28c9('0x24')][_0x28c9('0x32')]+'%')});}else{var _0x15d1f9={};_0x15d1f9[_0x17975f['name']]={'$like':'%'+_0x5dcddb[_0x28c9('0x24')]['filter']+'%'};return _0x15d1f9;}}})});}_0x7d8976=_[_0x28c9('0x35')]({},_0x7d8976,_0x5dcddb['options']);return _0x7d8976;};
\ No newline at end of file
+var _0xf33c=['col','unsigned','substr','omit','isObject','isString','length','unset','hasOwnProperty','isNumeric','match','^[+]?[0-9]*$','isEmail','getFullTextValue','forEach','replace','push','join','getOptions','query','$id','model','intersection','limit','order','sort','where','pick','merge','VIRTUAL','lower','options','sequelize','moment','parse','keys','includes','fields','split','filters','isEmpty','find','type','$gte','YYYY-MM-DD','format','$lte','utc','subtract','name','uniqueid','isArray','offset','map','indexOf','priority','cast'];(function(_0x318256,_0xa773f3){var _0xb1e352=function(_0x4bb14e){while(--_0x4bb14e){_0x318256['push'](_0x318256['shift']());}};_0xb1e352(++_0xa773f3);}(_0xf33c,0x176));var _0xcf33=function(_0x4b537b,_0x1ff51d){_0x4b537b=_0x4b537b-0x0;var _0x5548c3=_0xf33c[_0x4b537b];return _0x5548c3;};'use strict';var _=require('lodash');var sequelize=require(_0xcf33('0x0'));var moment=require(_0xcf33('0x1'));var LIMIT_VALUE=0xfa;function hasSequelizeOperator(_0x43e331){var _0x70dddc=['ne'];try{var _0x275316=JSON[_0xcf33('0x2')](_0x43e331);var _0x12c2c8=Object[_0xcf33('0x3')](_0x275316)[0x0];return _0x70dddc[_0xcf33('0x4')](_0x12c2c8);}catch(_0x1d41ca){return![];}}function getOperatorValue(_0x266523){var _0x169c92=JSON[_0xcf33('0x2')](_0x266523);var _0x36bf5d=Object[_0xcf33('0x3')](_0x169c92)[0x0];var _0x32a827=_0x169c92[_0x36bf5d];return{['$'+_0x36bf5d]:_0x32a827};}exports[_0xcf33('0x5')]=function(_0x3da842){var _0x22c736=null;if(_0x3da842){_0x22c736=_0x3da842[_0xcf33('0x6')](',');}return _0x22c736;};exports[_0xcf33('0x7')]=function(_0x4db0c3,_0x2f9fbe){var _0x4f01d3={};if(!_[_0xcf33('0x8')](_0x4db0c3)){_['forOwn'](_0x4db0c3,function(_0x47efcd,_0x471f10){try{if(_0x2f9fbe){var _0x576b52=_[_0xcf33('0x9')](_0x2f9fbe,{'name':_0x471f10})||{};if(hasSequelizeOperator(_0x47efcd)){_0x4f01d3[_0x471f10]=getOperatorValue(_0x47efcd);}else if(_0x576b52[_0xcf33('0xa')]==='DATE'&&_['isPlainObject'](_0x47efcd)){var _0x436c39=JSON['parse'](_0x47efcd);var _0x484f75={'$gte':moment(moment(_0x436c39[_0xcf33('0xb')])['format'](_0xcf33('0xc')))['utc']()[_0xcf33('0xd')](),'$lte':moment(moment(_0x436c39[_0xcf33('0xe')])[_0xcf33('0xd')]('YYYY-MM-DD'))[_0xcf33('0xf')]()[_0xcf33('0x10')](0x1,'s')['format']()};_0x4f01d3[_0x471f10]=_0x484f75;}else if(_0x576b52[_0xcf33('0x11')]===_0xcf33('0x12')){_0x4f01d3[_0x471f10]=_0x47efcd;}else{_0x4f01d3[_0x471f10]=_[_0xcf33('0x13')](_0x47efcd)?_0x47efcd:JSON[_0xcf33('0x2')](_0x47efcd);}}else{_0x4f01d3[_0x471f10]=_[_0xcf33('0x13')](_0x47efcd)?_0x47efcd:JSON[_0xcf33('0x2')](_0x47efcd);}}catch(_0x5ae860){_0x4f01d3[_0x471f10]=_0x47efcd[_0xcf33('0x6')](',');}});}return _0x4f01d3;};exports['limit']=function(_0x45cc33){_0x45cc33=parseInt(_0x45cc33,0xa);if(!_0x45cc33||_0x45cc33<0x0){_0x45cc33=LIMIT_VALUE;}return _0x45cc33;};exports[_0xcf33('0x14')]=function(_0x1a3a40){_0x1a3a40=parseInt(_0x1a3a40,0xa);if(!_0x1a3a40||_0x1a3a40<0x0){_0x1a3a40=0x0;}return _0x1a3a40;};exports['sort']=function(_0x329673){var _0x215f93,_0x149de1=null;if(_0x329673){_0x215f93=_0x329673['split'](',');_0x149de1=_[_0xcf33('0x15')](_0x215f93,function(_0x5f2f59){if(_0x5f2f59[_0xcf33('0x16')]('-')===0x0){return[_0x5f2f59===_0xcf33('0x17')?sequelize[_0xcf33('0x18')](sequelize[_0xcf33('0x19')](_0xcf33('0x17')),_0xcf33('0x1a')):_0x5f2f59[_0xcf33('0x1b')](0x1),'DESC'];}else{return[_0x5f2f59===_0xcf33('0x17')?sequelize['cast'](sequelize['col'](_0xcf33('0x17')),_0xcf33('0x1a')):_0x5f2f59,'ASC'];}});}return _0x149de1;};exports[_0xcf33('0x1c')]=function(_0x3ebed4,_0x4c0be0){if(_[_0xcf33('0x8')](_0x3ebed4)){return _0x3ebed4;}if(_[_0xcf33('0x13')](_0x3ebed4)){for(var _0x57bf12=0x0;_0x57bf12<_0x3ebed4['length'];_0x57bf12+=0x1){_0x3ebed4[_0x57bf12]=this[_0xcf33('0x1c')](_0x3ebed4[_0x57bf12],_0x4c0be0);}return _0x3ebed4;}if(!_[_0xcf33('0x1d')](_0x3ebed4)){return _0x3ebed4;}if(_[_0xcf33('0x1e')](_0x4c0be0)){_0x4c0be0=[_0x4c0be0];}if(!_['isArray'](_0x4c0be0)){return _0x3ebed4;}for(var _0x1bd752=0x0;_0x1bd752<_0x4c0be0[_0xcf33('0x1f')];_0x1bd752+=0x1){_[_0xcf33('0x20')](_0x3ebed4,_0x4c0be0[_0x1bd752]);}for(var _0x50ddd4 in _0x3ebed4){if(_0x3ebed4[_0xcf33('0x21')](_0x50ddd4)){_0x3ebed4[_0x50ddd4]=this[_0xcf33('0x1c')](_0x3ebed4[_0x50ddd4],_0x4c0be0);}}return _0x3ebed4;};exports[_0xcf33('0x22')]=function(_0x47ae89){return _0x47ae89[_0xcf33('0x23')](RegExp(_0xcf33('0x24')))?!![]:![];};exports[_0xcf33('0x25')]=function(_0x22c8d5){return _0x22c8d5[_0xcf33('0x23')](/^\S+@\S+$/)?!![]:![];};exports[_0xcf33('0x26')]=function(_0x5089de){var _0x2a33d1=[];_0x5089de[_0xcf33('0x6')](/[ ,]+/)[_0xcf33('0x27')](function(_0x383b0f){_0x383b0f=_0x383b0f[_0xcf33('0x28')](/([^:]")"+/g,'$1');_0x383b0f='+'+_0x383b0f+'*';if(_0x383b0f[_0xcf33('0x4')]('@'))_0x383b0f='\x22'+_0x383b0f+'\x22';_0x2a33d1[_0xcf33('0x29')](_0x383b0f);});return _0x2a33d1[_0xcf33('0x2a')]('\x20');};exports[_0xcf33('0x2b')]=function(_0x2b933c,_0x5aea3f,_0x206af0){var _0x320fc0={},_0x170691={};if(_0x5aea3f[_0xcf33('0x2c')][_0xcf33('0x2d')]){_0x5aea3f[_0xcf33('0x2c')]['id']=_0x5aea3f[_0xcf33('0x2c')]['$id'];delete _0x5aea3f[_0xcf33('0x2c')][_0xcf33('0x2d')];}_0x320fc0[_0xcf33('0x2e')]=_[_0xcf33('0x15')](_0x2b933c,_0xcf33('0x11'));_0x320fc0[_0xcf33('0x2c')]=_['keys'](_0x5aea3f['query']);_0x320fc0[_0xcf33('0x7')]=_[_0xcf33('0x2f')](_0x320fc0[_0xcf33('0x2e')],_0x320fc0['query']);_0x170691['attributes']=_[_0xcf33('0x2f')](_0x320fc0[_0xcf33('0x2e')],this['fields'](_0x5aea3f[_0xcf33('0x2c')][_0xcf33('0x5')]));_0x170691['attributes']=_0x170691['attributes']['length']?_0x170691['attributes']:_0x320fc0[_0xcf33('0x2e')];if(!_0x5aea3f[_0xcf33('0x2c')][_0xcf33('0x21')]('nolimit')){_0x170691['limit']=this[_0xcf33('0x30')](_0x5aea3f['query'][_0xcf33('0x30')]);_0x170691[_0xcf33('0x14')]=this[_0xcf33('0x14')](_0x5aea3f[_0xcf33('0x2c')]['offset']);}_0x170691[_0xcf33('0x31')]=this[_0xcf33('0x32')](_0x5aea3f[_0xcf33('0x2c')][_0xcf33('0x32')]);_0x170691[_0xcf33('0x33')]=this[_0xcf33('0x7')](_[_0xcf33('0x34')](_0x5aea3f[_0xcf33('0x2c')],_0x320fc0['filters']),_0x2b933c);if(_0x5aea3f[_0xcf33('0x2c')]['filter']){_0x170691[_0xcf33('0x33')]=_[_0xcf33('0x35')](_0x170691[_0xcf33('0x33')],{'$or':_[_0xcf33('0x15')](_0x2b933c,function(_0x3b9fd4){if(_0x3b9fd4[_0xcf33('0xa')]!==_0xcf33('0x36')){if(_0x206af0){return sequelize[_0xcf33('0x33')](sequelize['fn'](_0xcf33('0x37'),sequelize['col'](_0x3b9fd4['name'])),{'$like':sequelize['fn']('lower','%'+_0x5aea3f['query']['filter']+'%')});}else{var _0x5daa6c={};_0x5daa6c[_0x3b9fd4[_0xcf33('0x11')]]={'$like':'%'+_0x5aea3f['query']['filter']+'%'};return _0x5daa6c;}}})});}_0x170691=_[_0xcf33('0x35')]({},_0x170691,_0x5aea3f[_0xcf33('0x38')]);return _0x170691;};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4432=['cors','./environment','../mysqldb','default','get','set','appPath','join','root','public','client','use','json\x20replacer','toISOString','split','static','views','/server/views','html','ejs','view\x20engine','50mb','json','initialize','express','serve-favicon','body-parser','method-override','cookie-parser','errorhandler','path','passport'];(function(_0x28829c,_0xba7837){var _0x6e88f5=function(_0x33cae5){while(--_0x33cae5){_0x28829c['push'](_0x28829c['shift']());}};_0x6e88f5(++_0xba7837);}(_0x4432,0x158));var _0x2443=function(_0x29bca4,_0x3e76de){_0x29bca4=_0x29bca4-0x0;var _0x560231=_0x4432[_0x29bca4];return _0x560231;};'use strict';var express=require(_0x2443('0x0'));var favicon=require(_0x2443('0x1'));var bodyParser=require(_0x2443('0x2'));var methodOverride=require(_0x2443('0x3'));var cookieParser=require(_0x2443('0x4'));var errorHandler=require(_0x2443('0x5'));var path=require(_0x2443('0x6'));var passport=require(_0x2443('0x7'));var cors=require(_0x2443('0x8'));var moment=require('moment');var config=require(_0x2443('0x9'));var db=require(_0x2443('0xa'))['db'];exports[_0x2443('0xb')]=function(_0x5a8718){var _0x5f4caa=_0x5a8718[_0x2443('0xc')]('env');if(_0x5f4caa==='production'){_0x5a8718[_0x2443('0xd')](_0x2443('0xe'),path[_0x2443('0xf')](config[_0x2443('0x10')],_0x2443('0x11')));}if(_0x5f4caa==='development'||_0x5f4caa==='test'){_0x5a8718[_0x2443('0xd')](_0x2443('0xe'),path['join'](config['root'],_0x2443('0x12')));_0x5a8718[_0x2443('0x13')](errorHandler());}_0x5a8718['set'](_0x2443('0x14'),function(_0x80a0a3,_0x4e7fe0){if(this[_0x80a0a3]instanceof Date){_0x4e7fe0=this[_0x80a0a3][_0x2443('0x15')]()[_0x2443('0x16')]('.')[0x0]+'Z';}return _0x4e7fe0;});_0x5a8718[_0x2443('0x13')](express[_0x2443('0x17')](_0x5a8718[_0x2443('0xc')](_0x2443('0xe'))));_0x5a8718['set'](_0x2443('0x18'),config['root']+_0x2443('0x19'));_0x5a8718['engine'](_0x2443('0x1a'),require(_0x2443('0x1b'))['renderFile']);_0x5a8718[_0x2443('0xd')](_0x2443('0x1c'),_0x2443('0x1a'));_0x5a8718[_0x2443('0x13')](bodyParser['urlencoded']({'limit':_0x2443('0x1d'),'extended':!![]}));_0x5a8718[_0x2443('0x13')](bodyParser[_0x2443('0x1e')]({'limit':_0x2443('0x1d')}));_0x5a8718[_0x2443('0x13')](cors());_0x5a8718[_0x2443('0x13')](methodOverride());_0x5a8718['use'](cookieParser());_0x5a8718['use'](passport[_0x2443('0x1f')]());};
\ No newline at end of file
+var _0xf58f=['./environment','../mysqldb','get','set','appPath','join','root','public','test','client','json\x20replacer','toISOString','split','static','views','engine','html','ejs','view\x20engine','use','urlencoded','50mb','initialize','express','serve-favicon','body-parser','method-override','cookie-parser','errorhandler','passport','cors','moment'];(function(_0xc83285,_0x3860f3){var _0x59ef36=function(_0x375eaf){while(--_0x375eaf){_0xc83285['push'](_0xc83285['shift']());}};_0x59ef36(++_0x3860f3);}(_0xf58f,0xb7));var _0xff58=function(_0x35d673,_0x5263b1){_0x35d673=_0x35d673-0x0;var _0xe39ad0=_0xf58f[_0x35d673];return _0xe39ad0;};'use strict';var express=require(_0xff58('0x0'));var favicon=require(_0xff58('0x1'));var bodyParser=require(_0xff58('0x2'));var methodOverride=require(_0xff58('0x3'));var cookieParser=require(_0xff58('0x4'));var errorHandler=require(_0xff58('0x5'));var path=require('path');var passport=require(_0xff58('0x6'));var cors=require(_0xff58('0x7'));var moment=require(_0xff58('0x8'));var config=require(_0xff58('0x9'));var db=require(_0xff58('0xa'))['db'];exports['default']=function(_0x159052){var _0xefd596=_0x159052[_0xff58('0xb')]('env');if(_0xefd596==='production'){_0x159052[_0xff58('0xc')](_0xff58('0xd'),path[_0xff58('0xe')](config[_0xff58('0xf')],_0xff58('0x10')));}if(_0xefd596==='development'||_0xefd596===_0xff58('0x11')){_0x159052[_0xff58('0xc')]('appPath',path['join'](config[_0xff58('0xf')],_0xff58('0x12')));_0x159052['use'](errorHandler());}_0x159052[_0xff58('0xc')](_0xff58('0x13'),function(_0x37ff87,_0x1ba923){if(this[_0x37ff87]instanceof Date){_0x1ba923=this[_0x37ff87][_0xff58('0x14')]()[_0xff58('0x15')]('.')[0x0]+'Z';}return _0x1ba923;});_0x159052['use'](express[_0xff58('0x16')](_0x159052[_0xff58('0xb')](_0xff58('0xd'))));_0x159052[_0xff58('0xc')](_0xff58('0x17'),config[_0xff58('0xf')]+'/server/views');_0x159052[_0xff58('0x18')](_0xff58('0x19'),require(_0xff58('0x1a'))['renderFile']);_0x159052[_0xff58('0xc')](_0xff58('0x1b'),_0xff58('0x19'));_0x159052[_0xff58('0x1c')](bodyParser[_0xff58('0x1d')]({'limit':_0xff58('0x1e'),'extended':!![]}));_0x159052['use'](bodyParser['json']({'limit':_0xff58('0x1e')}));_0x159052[_0xff58('0x1c')](cors());_0x159052[_0xff58('0x1c')](methodOverride());_0x159052[_0xff58('0x1c')](cookieParser());_0x159052[_0xff58('0x1c')](passport[_0xff58('0x1f')]());};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2c86=['digest','hex','getUuid','platform','licenseToken','test','dmidecode\x20--string\x20system-uuid','hostname','macAddress','substring','lodash','bimedia-machine-uuid','child_process','execSync','../environment','keys','family','internal','concat','head','mac','00:00:00:00:00:00','address','127.0.0.1','getFirstInterface','orderBy','cpus','join','createHash','md5'];(function(_0x4e6ae6,_0x49dba6){var _0x23c108=function(_0x1bc103){while(--_0x1bc103){_0x4e6ae6['push'](_0x4e6ae6['shift']());}};_0x23c108(++_0x49dba6);}(_0x2c86,0x136));var _0x62c8=function(_0x44a437,_0x51228a){_0x44a437=_0x44a437-0x0;var _0x3f3b2c=_0x2c86[_0x44a437];return _0x3f3b2c;};'use strict';var _=require(_0x62c8('0x0'));var os=require('os');var crypto=require('crypto');var machine=require(_0x62c8('0x1'));var exec=require(_0x62c8('0x2'))[_0x62c8('0x3')];var config=require(_0x62c8('0x4'));function getInterfaces(){var _0x373ed3=[];var _0x3aa44e=os['networkInterfaces']();var _0x19ed63=_['orderBy'](_[_0x62c8('0x5')](_0x3aa44e));for(var _0x3108b4=0x0;_0x3108b4<_0x19ed63['length'];_0x3108b4++){var _0x4f9272=_0x3aa44e[_0x19ed63[_0x3108b4]]['filter'](function(_0x881591){return _0x881591[_0x62c8('0x6')]==='IPv4'&&_0x881591[_0x62c8('0x7')]===![];});_0x373ed3=_0x373ed3[_0x62c8('0x8')](_0x4f9272);}return _0x373ed3;}function getFirstInterface(){var _0x3cab9d=_[_0x62c8('0x9')](getInterfaces());return{'macAddress':_0x3cab9d&&_0x3cab9d[_0x62c8('0xa')]?_0x3cab9d[_0x62c8('0xa')]:_0x62c8('0xb'),'ipAddress':_0x3cab9d&&_0x3cab9d[_0x62c8('0xc')]?_0x3cab9d[_0x62c8('0xc')]:_0x62c8('0xd')};}exports[_0x62c8('0xe')]=getFirstInterface;function getCPUhash(){var _0x1f9690=_[_0x62c8('0xf')](os[_0x62c8('0x10')]()['map'](function(_0x177360){return _0x177360['model'];}))[_0x62c8('0x11')](':');return crypto[_0x62c8('0x12')](_0x62c8('0x13'))['update'](_0x1f9690)[_0x62c8('0x14')](_0x62c8('0x15'));}exports[_0x62c8('0x16')]=function(){var _0xe2f20f=os[_0x62c8('0x17')]();var _0x37c892=/[0-9a-f-]{36}/;if(config[_0x62c8('0x18')]&&_0x37c892[_0x62c8('0x19')](config[_0x62c8('0x18')])){return config['licenseToken'];}else if(_0xe2f20f==='win32'){return exec(_0x62c8('0x1a'),{'encoding':'utf8'})['replace']('\x0d\x0a','');}else{var _0x5ba89e=getFirstInterface();var _0x3ec56a=getCPUhash();var _0x301f2a=_0x3ec56a+'|'+os[_0x62c8('0x1b')]()+'|'+_0x5ba89e[_0x62c8('0x1c')]+'|'+_0x5ba89e['ipAddress'];var _0x330c86=crypto[_0x62c8('0x12')](_0x62c8('0x13'))['update'](_0x301f2a)[_0x62c8('0x14')](_0x62c8('0x15'));return _0x330c86['substring'](0x0,0x8)+'-'+_0x330c86[_0x62c8('0x1d')](0x8,0xc)+'-'+_0x330c86[_0x62c8('0x1d')](0xc,0x10)+'-'+_0x330c86[_0x62c8('0x1d')](0x10,0x14)+'-'+_0x330c86[_0x62c8('0x1d')](0x14);}};
\ No newline at end of file
+var _0x6efc=['hex','getUuid','licenseToken','test','win32','dmidecode\x20--string\x20system-uuid','utf8','hostname','macAddress','ipAddress','substring','lodash','crypto','bimedia-machine-uuid','child_process','networkInterfaces','orderBy','length','filter','family','IPv4','internal','concat','head','mac','address','127.0.0.1','getFirstInterface','cpus','map','model','join','createHash','md5','update','digest'];(function(_0x5d31f3,_0x4239b0){var _0x1cc88c=function(_0x1be8fc){while(--_0x1be8fc){_0x5d31f3['push'](_0x5d31f3['shift']());}};_0x1cc88c(++_0x4239b0);}(_0x6efc,0x1bb));var _0xc6ef=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x6efc[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0xc6ef('0x0'));var os=require('os');var crypto=require(_0xc6ef('0x1'));var machine=require(_0xc6ef('0x2'));var exec=require(_0xc6ef('0x3'))['execSync'];var config=require('../environment');function getInterfaces(){var _0x12f011=[];var _0x318372=os[_0xc6ef('0x4')]();var _0x461332=_[_0xc6ef('0x5')](_['keys'](_0x318372));for(var _0x452e62=0x0;_0x452e62<_0x461332[_0xc6ef('0x6')];_0x452e62++){var _0x7be7a=_0x318372[_0x461332[_0x452e62]][_0xc6ef('0x7')](function(_0xb3ee8){return _0xb3ee8[_0xc6ef('0x8')]===_0xc6ef('0x9')&&_0xb3ee8[_0xc6ef('0xa')]===![];});_0x12f011=_0x12f011[_0xc6ef('0xb')](_0x7be7a);}return _0x12f011;}function getFirstInterface(){var _0x5384d5=_[_0xc6ef('0xc')](getInterfaces());return{'macAddress':_0x5384d5&&_0x5384d5['mac']?_0x5384d5[_0xc6ef('0xd')]:'00:00:00:00:00:00','ipAddress':_0x5384d5&&_0x5384d5[_0xc6ef('0xe')]?_0x5384d5[_0xc6ef('0xe')]:_0xc6ef('0xf')};}exports[_0xc6ef('0x10')]=getFirstInterface;function getCPUhash(){var _0xb792c1=_['orderBy'](os[_0xc6ef('0x11')]()[_0xc6ef('0x12')](function(_0x50e703){return _0x50e703[_0xc6ef('0x13')];}))[_0xc6ef('0x14')](':');return crypto[_0xc6ef('0x15')](_0xc6ef('0x16'))[_0xc6ef('0x17')](_0xb792c1)[_0xc6ef('0x18')](_0xc6ef('0x19'));}exports[_0xc6ef('0x1a')]=function(){var _0x84abab=os['platform']();var _0xb130df=/[0-9a-f-]{36}/;if(config[_0xc6ef('0x1b')]&&_0xb130df[_0xc6ef('0x1c')](config[_0xc6ef('0x1b')])){return config[_0xc6ef('0x1b')];}else if(_0x84abab===_0xc6ef('0x1d')){return exec(_0xc6ef('0x1e'),{'encoding':_0xc6ef('0x1f')})['replace']('\x0d\x0a','');}else{var _0x9cab1b=getFirstInterface();var _0x59b754=getCPUhash();var _0x37dbfa=_0x59b754+'|'+os[_0xc6ef('0x20')]()+'|'+_0x9cab1b[_0xc6ef('0x21')]+'|'+_0x9cab1b[_0xc6ef('0x22')];var _0x131706=crypto[_0xc6ef('0x15')](_0xc6ef('0x16'))[_0xc6ef('0x17')](_0x37dbfa)[_0xc6ef('0x18')](_0xc6ef('0x19'));return _0x131706[_0xc6ef('0x23')](0x0,0x8)+'-'+_0x131706['substring'](0x8,0xc)+'-'+_0x131706[_0xc6ef('0x23')](0xc,0x10)+'-'+_0x131706[_0xc6ef('0x23')](0x10,0x14)+'-'+_0x131706[_0xc6ef('0x23')](0x14);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1fc6=['catch','data1','data2','active','license','info','THE\x20LICENSE\x20HAS\x20BEEN\x20ENABLED','THE\x20LICENSE\x20HAS\x20BEEN\x20UPDATED','update','Disabled','THE\x20LICENSE\x20HAS\x20BEEN\x20DISABLED','Changed','NEW\x20UUID\x20DETECTED:\x20FROM\x20%s\x20TO\x20%s','%s\x20-\x20GRAY\x20PERIOD\x20STARTED\x20AT\x20%s','toUpperCase','encryptString','diff','DEMO\x20START\x20AT\x20%s','then','error','finally','getUuid','License','findOrCreate','spread','message','default','util','moment','request-promise','bluebird','version','../../components/encryptor','./hardware','https://www.xcallymotion.com','format','%s/api/servers/%s/check?version=%s','exports','%s/api/servers/%s/check?version=%s&oldtoken=%s','GET'];(function(_0x1b1596,_0x4543d1){var _0x5bf36b=function(_0x41a471){while(--_0x41a471){_0x1b1596['push'](_0x1b1596['shift']());}};_0x5bf36b(++_0x4543d1);}(_0x1fc6,0xe3));var _0x61fc=function(_0x4b6830,_0x2bf6fb){_0x4b6830=_0x4b6830-0x0;var _0x239e4a=_0x1fc6[_0x4b6830];return _0x239e4a;};'use strict';var util=require(_0x61fc('0x0'));var moment=require(_0x61fc('0x1'));var rp=require(_0x61fc('0x2'));var BPromise=require(_0x61fc('0x3'));var pkginfo=require('pkginfo')(module,_0x61fc('0x4'));var db=require('../../mysqldb')['db'];var encryptor=require(_0x61fc('0x5'));var hardware=require(_0x61fc('0x6'));var logger=require('../logger')('license');var HOST=_0x61fc('0x7');var TIME=0x3c*0x1388;var DAYS=0x7;var GRAY_PERIOD_REASON;var oldToken;var isOldTokenSent=![];function httpRequest(_0x33226f){return new BPromise(function(_0x173edc,_0x4d165b){var _0x2447db=util[_0x61fc('0x8')](_0x61fc('0x9'),HOST,_0x33226f,module[_0x61fc('0xa')][_0x61fc('0x4')]);if(oldToken){_0x2447db=util['format'](_0x61fc('0xb'),HOST,_0x33226f,module['exports'][_0x61fc('0x4')],oldToken);}var _0x3f2fbd={'uri':_0x2447db,'method':_0x61fc('0xc'),'timeout':0xea60,'json':!![]};return rp(_0x3f2fbd)['then'](function(_0x52ca8a){_0x173edc(_0x52ca8a);})[_0x61fc('0xd')](function(_0xd432bf){_0x4d165b(_0xd432bf);});});}function manageLicense(_0x2f1dcf,_0x149386){var _0x562994=_0x149386['get']({'plain':!![]});if(!isOldTokenSent&&_0x562994[_0x61fc('0xe')]!==_0x2f1dcf&&!_0x562994[_0x61fc('0xf')]){oldToken=_0x562994['data1'];}httpRequest(_0x2f1dcf)['then'](function(_0x38a9a1){if(oldToken){oldToken=undefined;isOldTokenSent=!![];}if(_0x38a9a1[_0x61fc('0x10')]){isOldTokenSent=![];if(!_0x562994[_0x61fc('0x11')]&&_0x562994[_0x61fc('0x11')]!=_0x38a9a1[_0x61fc('0x11')]||_0x562994[_0x61fc('0x11')]&&_0x562994[_0x61fc('0xf')]){logger[_0x61fc('0x12')](_0x61fc('0x13'));}if(_0x562994[_0x61fc('0x11')]&&!_0x562994['data2']&&_0x562994[_0x61fc('0x11')]!=_0x38a9a1[_0x61fc('0x11')]){logger['info'](_0x61fc('0x14'));}if(_0x562994[_0x61fc('0x11')]&&!_0x562994['data2']&&_0x562994['license']==_0x38a9a1['license']){return _0x149386;}return _0x149386[_0x61fc('0x15')]({'data1':_0x2f1dcf,'data2':null,'license':_0x38a9a1[_0x61fc('0x11')]});}else{if(_0x38a9a1[_0x61fc('0x11')]||_0x562994['license']){if(!_0x562994['data2']){if(_0x562994['data1']==_0x2f1dcf){GRAY_PERIOD_REASON=_0x61fc('0x16');logger[_0x61fc('0x12')](_0x61fc('0x17'));}else{GRAY_PERIOD_REASON=_0x61fc('0x18');logger['info'](_0x61fc('0x19'),_0x562994[_0x61fc('0xe')],_0x2f1dcf);}logger[_0x61fc('0x12')](_0x61fc('0x1a'),GRAY_PERIOD_REASON[_0x61fc('0x1b')](),moment()[_0x61fc('0x8')]('YYYY-MM-DD\x20HH:mm'));return _0x149386[_0x61fc('0x15')]({'data2':encryptor[_0x61fc('0x1c')](moment()[_0x61fc('0x8')]('YYYY-MM-DD\x20HH:mm'))});}else{if(moment()[_0x61fc('0x1d')](encryptor['decryptString'](_0x562994['data2']),'days')>DAYS){logger[_0x61fc('0x12')](_0x61fc('0x1e'),moment()[_0x61fc('0x8')]('YYYY-MM-DD\x20HH:mm'));isOldTokenSent=![];return _0x149386[_0x61fc('0x15')]({'data1':_0x2f1dcf,'data2':null,'license':null});}}}else{if(_0x562994['data1']!=_0x2f1dcf){logger[_0x61fc('0x12')](_0x61fc('0x19'),_0x562994['data1'],_0x2f1dcf);return _0x149386[_0x61fc('0x15')]({'data1':_0x2f1dcf,'data2':null,'license':null});}}}return _0x149386;})[_0x61fc('0x1f')](function(_0x179338){_0x149386=_0x179338;})['catch'](function(_0x1b6d50){logger[_0x61fc('0x20')](_0x1b6d50['message']);})[_0x61fc('0x21')](function(){setTimeout(function(){manageLicense(hardware[_0x61fc('0x22')](),_0x149386);},TIME);});}function defaultLicense(){var _0xc69b24=hardware[_0x61fc('0x22')]();if(_0xc69b24){return db[_0x61fc('0x23')][_0x61fc('0x24')]({'where':{'id':0x1},'defaults':{'data1':_0xc69b24}})[_0x61fc('0x25')](function(_0x29d904,_0x3abd32){logger[_0x61fc('0x12')]('SERVICE\x20LICENSE\x20STARTED\x20%s',_0xc69b24);manageLicense(_0xc69b24,_0x29d904);})[_0x61fc('0xd')](function(_0x3386c5){logger[_0x61fc('0x20')](_0x3386c5[_0x61fc('0x26')]);});}}exports[_0x61fc('0x27')]=defaultLicense;
\ No newline at end of file
+var _0xe72e=['../logger','license','https://www.xcallymotion.com','%s/api/servers/%s/check?version=%s','exports','format','%s/api/servers/%s/check?version=%s&oldtoken=%s','then','catch','get','data1','data2','info','THE\x20LICENSE\x20HAS\x20BEEN\x20ENABLED','THE\x20LICENSE\x20HAS\x20BEEN\x20UPDATED','update','Disabled','THE\x20LICENSE\x20HAS\x20BEEN\x20DISABLED','Changed','NEW\x20UUID\x20DETECTED:\x20FROM\x20%s\x20TO\x20%s','toUpperCase','YYYY-MM-DD\x20HH:mm','encryptString','decryptString','days','DEMO\x20START\x20AT\x20%s','error','message','finally','getUuid','License','findOrCreate','SERVICE\x20LICENSE\x20STARTED\x20%s','default','moment','request-promise','bluebird','pkginfo','version','../../mysqldb'];(function(_0x197c08,_0x4b3267){var _0x1d0710=function(_0x393ebd){while(--_0x393ebd){_0x197c08['push'](_0x197c08['shift']());}};_0x1d0710(++_0x4b3267);}(_0xe72e,0x18a));var _0xee72=function(_0x271b34,_0xcf6cbe){_0x271b34=_0x271b34-0x0;var _0x143156=_0xe72e[_0x271b34];return _0x143156;};'use strict';var util=require('util');var moment=require(_0xee72('0x0'));var rp=require(_0xee72('0x1'));var BPromise=require(_0xee72('0x2'));var pkginfo=require(_0xee72('0x3'))(module,_0xee72('0x4'));var db=require(_0xee72('0x5'))['db'];var encryptor=require('../../components/encryptor');var hardware=require('./hardware');var logger=require(_0xee72('0x6'))(_0xee72('0x7'));var HOST=_0xee72('0x8');var TIME=0x3c*0x1388;var DAYS=0x7;var GRAY_PERIOD_REASON;var oldToken;var isOldTokenSent=![];function httpRequest(_0x5773ca){return new BPromise(function(_0xdb63bb,_0x553cd2){var _0x8b00df=util['format'](_0xee72('0x9'),HOST,_0x5773ca,module[_0xee72('0xa')][_0xee72('0x4')]);if(oldToken){_0x8b00df=util[_0xee72('0xb')](_0xee72('0xc'),HOST,_0x5773ca,module[_0xee72('0xa')][_0xee72('0x4')],oldToken);}var _0x184bf2={'uri':_0x8b00df,'method':'GET','timeout':0xea60,'json':!![]};return rp(_0x184bf2)[_0xee72('0xd')](function(_0x226ef9){_0xdb63bb(_0x226ef9);})[_0xee72('0xe')](function(_0x48d186){_0x553cd2(_0x48d186);});});}function manageLicense(_0x25ae58,_0x252b1c){var _0x30f821=_0x252b1c[_0xee72('0xf')]({'plain':!![]});if(!isOldTokenSent&&_0x30f821[_0xee72('0x10')]!==_0x25ae58&&!_0x30f821['data2']){oldToken=_0x30f821[_0xee72('0x10')];}httpRequest(_0x25ae58)['then'](function(_0x3df923){if(oldToken){oldToken=undefined;isOldTokenSent=!![];}if(_0x3df923['active']){isOldTokenSent=![];if(!_0x30f821[_0xee72('0x7')]&&_0x30f821[_0xee72('0x7')]!=_0x3df923['license']||_0x30f821[_0xee72('0x7')]&&_0x30f821[_0xee72('0x11')]){logger[_0xee72('0x12')](_0xee72('0x13'));}if(_0x30f821['license']&&!_0x30f821['data2']&&_0x30f821[_0xee72('0x7')]!=_0x3df923['license']){logger[_0xee72('0x12')](_0xee72('0x14'));}if(_0x30f821['license']&&!_0x30f821[_0xee72('0x11')]&&_0x30f821[_0xee72('0x7')]==_0x3df923[_0xee72('0x7')]){return _0x252b1c;}return _0x252b1c[_0xee72('0x15')]({'data1':_0x25ae58,'data2':null,'license':_0x3df923['license']});}else{if(_0x3df923[_0xee72('0x7')]||_0x30f821[_0xee72('0x7')]){if(!_0x30f821[_0xee72('0x11')]){if(_0x30f821['data1']==_0x25ae58){GRAY_PERIOD_REASON=_0xee72('0x16');logger[_0xee72('0x12')](_0xee72('0x17'));}else{GRAY_PERIOD_REASON=_0xee72('0x18');logger[_0xee72('0x12')](_0xee72('0x19'),_0x30f821[_0xee72('0x10')],_0x25ae58);}logger[_0xee72('0x12')]('%s\x20-\x20GRAY\x20PERIOD\x20STARTED\x20AT\x20%s',GRAY_PERIOD_REASON[_0xee72('0x1a')](),moment()[_0xee72('0xb')](_0xee72('0x1b')));return _0x252b1c[_0xee72('0x15')]({'data2':encryptor[_0xee72('0x1c')](moment()[_0xee72('0xb')](_0xee72('0x1b')))});}else{if(moment()['diff'](encryptor[_0xee72('0x1d')](_0x30f821[_0xee72('0x11')]),_0xee72('0x1e'))>DAYS){logger[_0xee72('0x12')](_0xee72('0x1f'),moment()[_0xee72('0xb')]('YYYY-MM-DD\x20HH:mm'));isOldTokenSent=![];return _0x252b1c[_0xee72('0x15')]({'data1':_0x25ae58,'data2':null,'license':null});}}}else{if(_0x30f821[_0xee72('0x10')]!=_0x25ae58){logger[_0xee72('0x12')](_0xee72('0x19'),_0x30f821[_0xee72('0x10')],_0x25ae58);return _0x252b1c[_0xee72('0x15')]({'data1':_0x25ae58,'data2':null,'license':null});}}}return _0x252b1c;})[_0xee72('0xd')](function(_0xfc6dc6){_0x252b1c=_0xfc6dc6;})['catch'](function(_0x22b771){logger[_0xee72('0x20')](_0x22b771[_0xee72('0x21')]);})[_0xee72('0x22')](function(){setTimeout(function(){manageLicense(hardware[_0xee72('0x23')](),_0x252b1c);},TIME);});}function defaultLicense(){var _0xdd853a=hardware[_0xee72('0x23')]();if(_0xdd853a){return db[_0xee72('0x24')][_0xee72('0x25')]({'where':{'id':0x1},'defaults':{'data1':_0xdd853a}})['spread'](function(_0x13faed,_0x4122f0){logger[_0xee72('0x12')](_0xee72('0x26'),_0xdd853a);manageLicense(_0xdd853a,_0x13faed);})['catch'](function(_0x3a7082){logger['error'](_0x3a7082['message']);});}}exports[_0xee72('0x27')]=defaultLicense;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4fbd=['defaults','then','uuid','data1','license','isEmpty','License\x20key\x20value\x20not\x20found','data2','split','decryptString','%s:%s:%s','parse','demo','deadline','days','format','machineUuid','changed','disabled','message','User','findAll','role','sequelize','COUNT','col','count','admin','user','users','catch','pick','countBy','telephone','License\x20limit\x20reached\x20for\x20users','License\x20limit\x20reached\x20for\x20telephones','exports','util','lodash','moment','bluebird','./hardware','../../components/encryptor','Demo\x20license','2027-01-01T00:00:00.000Z','getUuid','License','find'];(function(_0x1d689b,_0x5596a1){var _0x1c7bdb=function(_0x59e14d){while(--_0x59e14d){_0x1d689b['push'](_0x1d689b['shift']());}};_0x1c7bdb(++_0x5596a1);}(_0x4fbd,0x1d5));var _0xd4fb=function(_0x5adf29,_0x194122){_0x5adf29=_0x5adf29-0x0;var _0x40443b=_0x4fbd[_0x5adf29];return _0x40443b;};'use strict';var util=require(_0xd4fb('0x0'));var _=require(_0xd4fb('0x1'));var moment=require(_0xd4fb('0x2'));var BPromise=require(_0xd4fb('0x3'));var hardware=require(_0xd4fb('0x4'));var encryptor=require(_0xd4fb('0x5'));var db=require('../../mysqldb')['db'];const demoLicense={'demo':!![],'agents':0x2,'telephones':0x0,'users':0x1,'expiration':'2027-01-01T00:00:00.000Z','chat':![],'mail':![],'fax':![],'messaging':![],'whatsapp':![],'cm':![],'dialer':![],'jscripty':![],'openchannel':![],'callysquare':0x2,'webrtc':![],'jaws':![],'custom':![],'description':_0xd4fb('0x6'),'machineUuid':hardware['getUuid'](),'virtual':0x0,'voice':!![],'screenrecording':![],'preferred':![],'ai':![]};const breakingLicense={'breaking':!![],'demo':!![],'agents':0x2,'telephones':0x0,'users':0x1,'expiration':_0xd4fb('0x7'),'chat':![],'mail':![],'fax':![],'messaging':![],'whatsapp':![],'cm':![],'dialer':![],'jscripty':![],'openchannel':![],'callysquare':0x2,'webrtc':![],'jaws':![],'custom':![],'update':![],'description':'Breaking\x20license','machineUuid':hardware[_0xd4fb('0x8')](),'virtual':0x0,'voice':!![],'screenrecording':![],'preferred':![],'ai':![]};function getLicense(_0x2d0e1e){return new BPromise(function(_0x5bf7db,_0xf51dc1){return db[_0xd4fb('0x9')][_0xd4fb('0xa')](_[_0xd4fb('0xb')](_0x2d0e1e,{'raw':!![],'where':{'id':0x1}}))['then'](function(_0x2d1e31){return checkLicense(_0x2d1e31,null);})[_0xd4fb('0xc')](function(_0x22fdb5){_0x5bf7db(_0x22fdb5);return;})['catch'](function(_0x4671d1){_0xf51dc1(_0x4671d1);});});}function checkLicense(_0xf3d79b,_0x22d5f0){if(!_0xf3d79b){demoLicense[_0xd4fb('0xd')]=_0xf3d79b[_0xd4fb('0xe')];return demoLicense;}try{var _0x2e33a8=_0x22d5f0||_0xf3d79b[_0xd4fb('0xf')];if(_[_0xd4fb('0x10')](_0x2e33a8)){throw new Error(_0xd4fb('0x11'));}var _0x1989f1=_0xf3d79b['data1'];var _0x2196b4=_0xf3d79b[_0xd4fb('0x12')];var _0x167c7c=_0x1989f1[_0xd4fb('0x13')]('-')[0x4];var _0x9cc586=_0x1989f1[_0xd4fb('0x13')]('-')[0x0];var _0x3ebfa3=encryptor[_0xd4fb('0x14')](_0x2e33a8,util['format'](_0xd4fb('0x15'),_0x167c7c,_0x1989f1,_0x9cc586));var _0xfc42a9=JSON[_0xd4fb('0x16')](_0x3ebfa3);_0xfc42a9[_0xd4fb('0x17')]=![];_0xfc42a9['uuid']=_0x1989f1;_0xfc42a9['machineUuid']=hardware[_0xd4fb('0x8')]();if(_0x2196b4){var _0x3c1955=encryptor[_0xd4fb('0x14')](_0x2196b4);_0xfc42a9['gray']=_0x3c1955;_0xfc42a9[_0xd4fb('0x18')]=moment(_0x3c1955)['add'](0x7,_0xd4fb('0x19'))[_0xd4fb('0x1a')]();_0xfc42a9['grayReason']=_0xfc42a9[_0xd4fb('0xd')]!=_0xfc42a9[_0xd4fb('0x1b')]?_0xd4fb('0x1c'):_0xd4fb('0x1d');}return _0xfc42a9;}catch(_0x1d6541){breakingLicense[_0xd4fb('0xd')]=_0xf3d79b[_0xd4fb('0xe')];breakingLicense[_0xd4fb('0x1e')]=_0x1d6541[_0xd4fb('0x1e')];return breakingLicense;}}function getLimits(){return new BPromise(function(_0x397c0a,_0xaf2fe2){getLicense()[_0xd4fb('0xc')](function(_0x1c808b){return db[_0xd4fb('0x1f')][_0xd4fb('0x20')]({'attributes':[_0xd4fb('0x21'),[db[_0xd4fb('0x22')]['fn'](_0xd4fb('0x23'),db['sequelize'][_0xd4fb('0x24')](_0xd4fb('0x21'))),_0xd4fb('0x25')]],'group':_0xd4fb('0x21'),'where':{'role':{'$or':[_0xd4fb('0x26'),_0xd4fb('0x27'),'telephone']}},'raw':!![]})[_0xd4fb('0xc')](function(_0x2d68ed){var _0x2c069b={'user':_0x1c808b[_0xd4fb('0x28')]||0x0,'telephone':_0x1c808b['telephones']||0x0};_0x2d68ed['forEach'](function(_0x410eae){var _0x516539=_0x410eae[_0xd4fb('0x21')]===_0xd4fb('0x26')?_0xd4fb('0x27'):_0x410eae['role'];_0x2c069b[_0x516539]-=_0x410eae[_0xd4fb('0x25')];if(_0x2c069b[_0x516539]<0x0)_0x2c069b[_0x516539]=0x0;});_0x397c0a(_0x2c069b);return;});})[_0xd4fb('0x29')](function(_0x16e90c){_0xaf2fe2(_0x16e90c);});});}function checkUserLimits(_0x36df60){return new BPromise(function(_0x4d40a8,_0x2e01c0){getLimits()[_0xd4fb('0xc')](function(_0x12082d){var _0x31a2e4=_[_0xd4fb('0x2a')](_[_0xd4fb('0x2b')](_0x36df60,_0xd4fb('0x21')),[_0xd4fb('0x26'),'user',_0xd4fb('0x2c')]);var _0x4b65e3=(_0x31a2e4[_0xd4fb('0x26')]||0x0)+(_0x31a2e4[_0xd4fb('0x27')]||0x0);var _0x197b4f=_0x31a2e4[_0xd4fb('0x2c')]||0x0;if(_0x4b65e3>_0x12082d[_0xd4fb('0x27')])return _0x2e01c0(_0xd4fb('0x2d'));if(_0x197b4f>_0x12082d[_0xd4fb('0x2c')])return _0x2e01c0(_0xd4fb('0x2e'));return _0x4d40a8();})[_0xd4fb('0x29')](function(_0x57d9ca){_0x2e01c0(_0x57d9ca);});});}module[_0xd4fb('0x2f')]={'checkLicense':checkLicense,'checkUserLimits':checkUserLimits,'getLicense':getLicense};
\ No newline at end of file
+var _0xaf77=['telephones','admin','pick','countBy','License\x20limit\x20reached\x20for\x20telephones','catch','exports','util','lodash','moment','bluebird','./hardware','../../mysqldb','Demo\x20license','getUuid','Breaking\x20license','License','defaults','then','uuid','data1','license','License\x20key\x20value\x20not\x20found','data2','split','decryptString','format','%s:%s:%s','demo','machineUuid','deadline','days','grayReason','disabled','message','User','findAll','role','sequelize','COUNT','count','user','telephone','users'];(function(_0x14fe1a,_0x5bc7c8){var _0x540aa8=function(_0x175327){while(--_0x175327){_0x14fe1a['push'](_0x14fe1a['shift']());}};_0x540aa8(++_0x5bc7c8);}(_0xaf77,0x167));var _0x7af7=function(_0x5afb81,_0x38b44f){_0x5afb81=_0x5afb81-0x0;var _0xd6b2ac=_0xaf77[_0x5afb81];return _0xd6b2ac;};'use strict';var util=require(_0x7af7('0x0'));var _=require(_0x7af7('0x1'));var moment=require(_0x7af7('0x2'));var BPromise=require(_0x7af7('0x3'));var hardware=require(_0x7af7('0x4'));var encryptor=require('../../components/encryptor');var db=require(_0x7af7('0x5'))['db'];const demoLicense={'demo':!![],'agents':0x2,'telephones':0x0,'users':0x1,'expiration':'2027-01-01T00:00:00.000Z','chat':![],'mail':![],'fax':![],'messaging':![],'whatsapp':![],'cm':![],'dialer':![],'jscripty':![],'openchannel':![],'callysquare':0x2,'webrtc':![],'jaws':![],'custom':![],'description':_0x7af7('0x6'),'machineUuid':hardware[_0x7af7('0x7')](),'virtual':0x0,'voice':!![],'screenrecording':![],'preferred':![],'ai':![]};const breakingLicense={'breaking':!![],'demo':!![],'agents':0x2,'telephones':0x0,'users':0x1,'expiration':'2027-01-01T00:00:00.000Z','chat':![],'mail':![],'fax':![],'messaging':![],'whatsapp':![],'cm':![],'dialer':![],'jscripty':![],'openchannel':![],'callysquare':0x2,'webrtc':![],'jaws':![],'custom':![],'update':![],'description':_0x7af7('0x8'),'machineUuid':hardware[_0x7af7('0x7')](),'virtual':0x0,'voice':!![],'screenrecording':![],'preferred':![],'ai':![]};function getLicense(_0x347325){return new BPromise(function(_0x5baaeb,_0x1bcf1f){return db[_0x7af7('0x9')]['find'](_[_0x7af7('0xa')](_0x347325,{'raw':!![],'where':{'id':0x1}}))['then'](function(_0x216a6a){return checkLicense(_0x216a6a,null);})[_0x7af7('0xb')](function(_0x21826c){_0x5baaeb(_0x21826c);return;})['catch'](function(_0x787840){_0x1bcf1f(_0x787840);});});}function checkLicense(_0x107b96,_0x37c499){if(!_0x107b96){demoLicense[_0x7af7('0xc')]=_0x107b96[_0x7af7('0xd')];return demoLicense;}try{var _0x302cfa=_0x37c499||_0x107b96[_0x7af7('0xe')];if(_['isEmpty'](_0x302cfa)){throw new Error(_0x7af7('0xf'));}var _0x21fe9a=_0x107b96[_0x7af7('0xd')];var _0x1a49c4=_0x107b96[_0x7af7('0x10')];var _0x1048ae=_0x21fe9a[_0x7af7('0x11')]('-')[0x4];var _0x59d5fe=_0x21fe9a['split']('-')[0x0];var _0xd517d0=encryptor[_0x7af7('0x12')](_0x302cfa,util[_0x7af7('0x13')](_0x7af7('0x14'),_0x1048ae,_0x21fe9a,_0x59d5fe));var _0x1ff228=JSON['parse'](_0xd517d0);_0x1ff228[_0x7af7('0x15')]=![];_0x1ff228[_0x7af7('0xc')]=_0x21fe9a;_0x1ff228[_0x7af7('0x16')]=hardware[_0x7af7('0x7')]();if(_0x1a49c4){var _0x915e38=encryptor[_0x7af7('0x12')](_0x1a49c4);_0x1ff228['gray']=_0x915e38;_0x1ff228[_0x7af7('0x17')]=moment(_0x915e38)['add'](0x7,_0x7af7('0x18'))[_0x7af7('0x13')]();_0x1ff228[_0x7af7('0x19')]=_0x1ff228['uuid']!=_0x1ff228[_0x7af7('0x16')]?'changed':_0x7af7('0x1a');}return _0x1ff228;}catch(_0x3a53c4){breakingLicense[_0x7af7('0xc')]=_0x107b96[_0x7af7('0xd')];breakingLicense[_0x7af7('0x1b')]=_0x3a53c4[_0x7af7('0x1b')];return breakingLicense;}}function getLimits(){return new BPromise(function(_0x30a54e,_0x1192c2){getLicense()[_0x7af7('0xb')](function(_0x2db426){return db[_0x7af7('0x1c')][_0x7af7('0x1d')]({'attributes':[_0x7af7('0x1e'),[db[_0x7af7('0x1f')]['fn'](_0x7af7('0x20'),db[_0x7af7('0x1f')]['col'](_0x7af7('0x1e'))),_0x7af7('0x21')]],'group':'role','where':{'role':{'$or':['admin',_0x7af7('0x22'),_0x7af7('0x23')]}},'raw':!![]})['then'](function(_0x5af733){var _0x384687={'user':_0x2db426[_0x7af7('0x24')]||0x0,'telephone':_0x2db426[_0x7af7('0x25')]||0x0};_0x5af733['forEach'](function(_0x23960c){var _0x5bb7db=_0x23960c[_0x7af7('0x1e')]===_0x7af7('0x26')?_0x7af7('0x22'):_0x23960c[_0x7af7('0x1e')];_0x384687[_0x5bb7db]-=_0x23960c[_0x7af7('0x21')];if(_0x384687[_0x5bb7db]<0x0)_0x384687[_0x5bb7db]=0x0;});_0x30a54e(_0x384687);return;});})['catch'](function(_0x409419){_0x1192c2(_0x409419);});});}function checkUserLimits(_0x3d3e17){return new BPromise(function(_0x1bc21c,_0x1ae955){getLimits()[_0x7af7('0xb')](function(_0x137adc){var _0x1d8d68=_[_0x7af7('0x27')](_[_0x7af7('0x28')](_0x3d3e17,_0x7af7('0x1e')),[_0x7af7('0x26'),_0x7af7('0x22'),'telephone']);var _0x2d191e=(_0x1d8d68[_0x7af7('0x26')]||0x0)+(_0x1d8d68[_0x7af7('0x22')]||0x0);var _0x34e2e0=_0x1d8d68[_0x7af7('0x23')]||0x0;if(_0x2d191e>_0x137adc['user'])return _0x1ae955('License\x20limit\x20reached\x20for\x20users');if(_0x34e2e0>_0x137adc[_0x7af7('0x23')])return _0x1ae955(_0x7af7('0x29'));return _0x1bc21c();})[_0x7af7('0x2a')](function(_0x3dca96){_0x1ae955(_0x3dca96);});});}module[_0x7af7('0x2b')]={'checkLicense':checkLicense,'checkUserLimits':checkUserLimits,'getLicense':getLicense};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0b0e=['secret','exports','myappanuglar-secret'];(function(_0x1a8ce2,_0x4a6bac){var _0x56c87f=function(_0x399932){while(--_0x399932){_0x1a8ce2['push'](_0x1a8ce2['shift']());}};_0x56c87f(++_0x4a6bac);}(_0x0b0e,0x187));var _0xe0b0=function(_0x44fef1,_0x132cf4){_0x44fef1=_0x44fef1-0x0;var _0x3c3a04=_0x0b0e[_0x44fef1];return _0x3c3a04;};'use strict';module[_0xe0b0('0x0')]={'DOMAIN':'http://localhost:9000','SESSION_SECRET':_0xe0b0('0x1'),'GOOGLE_ID':'app-id','GOOGLE_SECRET':_0xe0b0('0x2'),'DEBUG':''};
\ No newline at end of file
+var _0x056b=['app-id','secret','http://localhost:9000','myappanuglar-secret'];(function(_0x131f1d,_0xa0c348){var _0x2433c4=function(_0x2cfa29){while(--_0x2cfa29){_0x131f1d['push'](_0x131f1d['shift']());}};_0x2433c4(++_0xa0c348);}(_0x056b,0xb6));var _0xb056=function(_0x17799e,_0x176154){_0x17799e=_0x17799e-0x0;var _0x27e472=_0x056b[_0x17799e];return _0x27e472;};'use strict';module['exports']={'DOMAIN':_0xb056('0x0'),'SESSION_SECRET':_0xb056('0x1'),'GOOGLE_ID':_0xb056('0x2'),'GOOGLE_SECRET':_0xb056('0x3'),'DEBUG':''};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xacb7=['{{{','}}}','YYYY-MM-DD\x20HH:mm:ss','level','toUpperCase','exports','Logger','transports','File','error','%s-%s','info','Console','debugLevel','winston','util','path','INFO','join','log','xcally','format','%s-%s.log','message','replace'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0xacb7,0x72));var _0x7acb=function(_0x45f850,_0x3795d0){_0x45f850=_0x45f850-0x0;var _0x47e576=_0xacb7[_0x45f850];return _0x47e576;};'use strict';var moment=require('moment');var winston=require(_0x7acb('0x0'));var util=require(_0x7acb('0x1'));var path=require(_0x7acb('0x2'));var debugLevel=_0x7acb('0x3');function filename(_0xe7afe9,_0x2869b6){return path[_0x7acb('0x4')]('/var',_0x7acb('0x5'),_0x7acb('0x6'),util[_0x7acb('0x7')](_0x7acb('0x8'),_0xe7afe9,_0x2869b6));}function formatter(_0x254685,_0x10664d){_0x10664d[_0x7acb('0x9')]=_0x10664d[_0x7acb('0x9')][_0x7acb('0xa')](/@@{/g,_0x7acb('0xb'))[_0x7acb('0xa')](/}@@/g,_0x7acb('0xc'))[_0x7acb('0xa')](/@{/g,'{{')['replace'](/}@/g,'}}');return util['format']('[%s]\x20[%s]\x20%s\x20-\x20%s',moment()[_0x7acb('0x7')](_0x7acb('0xd')),_0x10664d[_0x7acb('0xe')][_0x7acb('0xf')](),_0x254685,_0x10664d[_0x7acb('0x9')]);}module[_0x7acb('0x10')]=function(_0x13ad64){return new winston[(_0x7acb('0x11'))]({'transports':[new winston[(_0x7acb('0x12'))][(_0x7acb('0x13'))]({'name':util[_0x7acb('0x7')]('%s-%s',_0x13ad64,_0x7acb('0x14')),'filename':filename(_0x13ad64,'error'),'level':_0x7acb('0x14'),'json':![],'maxsize':0xa00000,'maxFiles':0xa,'tailable':!![],'formatter':function(_0xd5dc9d){return formatter(_0x13ad64,_0xd5dc9d);}}),new winston[(_0x7acb('0x12'))][(_0x7acb('0x13'))]({'name':util['format'](_0x7acb('0x15'),_0x13ad64,_0x7acb('0x16')),'filename':filename(_0x13ad64,_0x7acb('0x16')),'level':_0x7acb('0x16'),'json':![],'maxsize':0xa00000,'maxFiles':0xa,'tailable':!![],'formatter':function(_0x2a4e8e){return formatter(_0x13ad64,_0x2a4e8e);}}),new winston[(_0x7acb('0x12'))][(_0x7acb('0x17'))]({'level':process['env'][_0x7acb('0x18')]||debugLevel,'json':![],'formatter':function(_0x16f24b){return formatter(_0x13ad64,_0x16f24b);}})]});};
\ No newline at end of file
+var _0x5176=['env','debugLevel','moment','util','path','INFO','join','log','xcally','format','%s-%s.log','message','{{{','replace','}}}','[%s]\x20[%s]\x20%s\x20-\x20%s','YYYY-MM-DD\x20HH:mm:ss','level','toUpperCase','exports','Logger','File','error','%s-%s','info','transports','Console'];(function(_0x3c915a,_0x4595d9){var _0x18fb7d=function(_0x3ffaea){while(--_0x3ffaea){_0x3c915a['push'](_0x3c915a['shift']());}};_0x18fb7d(++_0x4595d9);}(_0x5176,0x1b2));var _0x6517=function(_0x122ef9,_0x451d2a){_0x122ef9=_0x122ef9-0x0;var _0x42fba0=_0x5176[_0x122ef9];return _0x42fba0;};'use strict';var moment=require(_0x6517('0x0'));var winston=require('winston');var util=require(_0x6517('0x1'));var path=require(_0x6517('0x2'));var debugLevel=_0x6517('0x3');function filename(_0x155493,_0x32eaf1){return path[_0x6517('0x4')]('/var',_0x6517('0x5'),_0x6517('0x6'),util[_0x6517('0x7')](_0x6517('0x8'),_0x155493,_0x32eaf1));}function formatter(_0x54bfd2,_0xf1265c){_0xf1265c[_0x6517('0x9')]=_0xf1265c[_0x6517('0x9')]['replace'](/@@{/g,_0x6517('0xa'))[_0x6517('0xb')](/}@@/g,_0x6517('0xc'))[_0x6517('0xb')](/@{/g,'{{')['replace'](/}@/g,'}}');return util['format'](_0x6517('0xd'),moment()[_0x6517('0x7')](_0x6517('0xe')),_0xf1265c[_0x6517('0xf')][_0x6517('0x10')](),_0x54bfd2,_0xf1265c['message']);}module[_0x6517('0x11')]=function(_0x5e2f81){return new winston[(_0x6517('0x12'))]({'transports':[new winston['transports'][(_0x6517('0x13'))]({'name':util[_0x6517('0x7')]('%s-%s',_0x5e2f81,_0x6517('0x14')),'filename':filename(_0x5e2f81,_0x6517('0x14')),'level':_0x6517('0x14'),'json':![],'maxsize':0xa00000,'maxFiles':0xa,'tailable':!![],'formatter':function(_0x5209ef){return formatter(_0x5e2f81,_0x5209ef);}}),new winston['transports']['File']({'name':util[_0x6517('0x7')](_0x6517('0x15'),_0x5e2f81,'info'),'filename':filename(_0x5e2f81,_0x6517('0x16')),'level':'info','json':![],'maxsize':0xa00000,'maxFiles':0xa,'tailable':!![],'formatter':function(_0x3625e8){return formatter(_0x5e2f81,_0x3625e8);}}),new winston[(_0x6517('0x17'))][(_0x6517('0x18'))]({'level':process[_0x6517('0x19')][_0x6517('0x1a')]||debugLevel,'json':![],'formatter':function(_0x450e4b){return formatter(_0x5e2f81,_0x450e4b);}})]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcc26=['agi','../../services/agi/index.js','../../services/email/index.js','routing','../../services/routing/index.js','xdr','exports','path','express','../../services/express/index.js','ami','join','../../services/ami/index.js'];(function(_0xd3bc07,_0x3a11a5){var _0x10aa85=function(_0xb8f14e){while(--_0xb8f14e){_0xd3bc07['push'](_0xd3bc07['shift']());}};_0x10aa85(++_0x3a11a5);}(_0xcc26,0x1ce));var _0x6cc2=function(_0x342700,_0x569f75){_0x342700=_0x342700-0x0;var _0x53406f=_0xcc26[_0x342700];return _0x53406f;};'use strict';var path=require(_0x6cc2('0x0'));var os=require('os');var config={'apps':[{'name':_0x6cc2('0x1'),'script':path['join'](__dirname,_0x6cc2('0x2'))},{'name':_0x6cc2('0x3'),'script':path[_0x6cc2('0x4')](__dirname,_0x6cc2('0x5'))},{'name':_0x6cc2('0x6'),'script':path['join'](__dirname,_0x6cc2('0x7'))},{'name':'email','script':path[_0x6cc2('0x4')](__dirname,_0x6cc2('0x8'))},{'name':_0x6cc2('0x9'),'script':path[_0x6cc2('0x4')](__dirname,_0x6cc2('0xa'))},{'name':_0x6cc2('0xb'),'script':path[_0x6cc2('0x4')](__dirname,'../../services/xdr/index.js')}]};module[_0x6cc2('0xc')]=config;
\ No newline at end of file
+var _0xbf3e=['xdr','../../services/xdr/index.js','express','../../services/express/index.js','ami','join','agi','email','../../services/email/index.js','../../services/routing/index.js'];(function(_0x21a9d9,_0x4d5ac8){var _0x46adce=function(_0xfdd336){while(--_0xfdd336){_0x21a9d9['push'](_0x21a9d9['shift']());}};_0x46adce(++_0x4d5ac8);}(_0xbf3e,0x188));var _0xebf3=function(_0x4e28ba,_0x219334){_0x4e28ba=_0x4e28ba-0x0;var _0x28c841=_0xbf3e[_0x4e28ba];return _0x28c841;};'use strict';var path=require('path');var os=require('os');var config={'apps':[{'name':_0xebf3('0x0'),'script':path['join'](__dirname,_0xebf3('0x1'))},{'name':_0xebf3('0x2'),'script':path[_0xebf3('0x3')](__dirname,'../../services/ami/index.js')},{'name':_0xebf3('0x4'),'script':path[_0xebf3('0x3')](__dirname,'../../services/agi/index.js')},{'name':_0xebf3('0x5'),'script':path[_0xebf3('0x3')](__dirname,_0xebf3('0x6'))},{'name':'routing','script':path[_0xebf3('0x3')](__dirname,_0xebf3('0x7'))},{'name':_0xebf3('0x8'),'script':path[_0xebf3('0x3')](__dirname,_0xebf3('0x9'))}]};module['exports']=config;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9faa=['restart','list','describe','delete','dump','saved','bluebird','./config','start','then','disconnect','stop'];(function(_0x5f1391,_0x19c132){var _0x50ebe3=function(_0x3d00a3){while(--_0x3d00a3){_0x5f1391['push'](_0x5f1391['shift']());}};_0x50ebe3(++_0x19c132);}(_0x9faa,0x17a));var _0xa9fa=function(_0x22a0c6,_0x584023){_0x22a0c6=_0x22a0c6-0x0;var _0x3ca121=_0x9faa[_0x22a0c6];return _0x3ca121;};'use strict';var pm2=require('pm2');var BPromise=require(_0xa9fa('0x0'));var config=require(_0xa9fa('0x1'));function connect(){return new BPromise(function(_0xfeec95,_0x3e28f9){return pm2['connect'](function(_0x56a4ea){if(_0x56a4ea){return _0x3e28f9(_0x56a4ea);}return _0xfeec95('connected');});});};exports[_0xa9fa('0x2')]=function(_0x1cfaf0){return connect()[_0xa9fa('0x3')](function(){return new BPromise(function(_0x362440,_0x471683){return pm2[_0xa9fa('0x2')](_0x1cfaf0,function(_0x1f0184,_0x4f6ec0){if(_0x1f0184){return _0x471683(_0x1f0184);}pm2[_0xa9fa('0x4')]();return _0x362440(_0x4f6ec0);});});});};exports[_0xa9fa('0x5')]=function(_0x21360a){return connect()['then'](function(){return new BPromise(function(_0x5df748,_0x131239){return pm2[_0xa9fa('0x5')](_0x21360a,function(_0x324d4f,_0x34e28d){if(_0x324d4f){return _0x131239(_0x324d4f);}pm2[_0xa9fa('0x4')]();return _0x5df748(_0x34e28d);});});});};exports[_0xa9fa('0x6')]=function(_0x10595e){return connect()['then'](function(){return new BPromise(function(_0x1952f0,_0x1dbed3){return pm2['restart'](_0x10595e,function(_0x3a45dd,_0x366fb8){if(_0x3a45dd){return _0x1dbed3(_0x3a45dd);}pm2['disconnect']();return _0x1952f0(_0x366fb8);});});});};exports[_0xa9fa('0x7')]=function(){return connect()['then'](function(){return new BPromise(function(_0x45f7e5,_0x22913c){return pm2[_0xa9fa('0x7')](function(_0x19f973,_0x2a71a5){if(_0x19f973){return _0x22913c(_0x19f973);}pm2[_0xa9fa('0x4')]();return _0x45f7e5(_0x2a71a5);});});});};exports['describe']=function(_0xe5e567){return connect()['then'](function(){return new BPromise(function(_0x4994c9,_0x4719d0){return pm2[_0xa9fa('0x8')](_0xe5e567,function(_0x4a54db,_0x23bcfd){if(_0x4a54db){return _0x4719d0(_0x4a54db);}pm2[_0xa9fa('0x4')]();return _0x4994c9(_0x23bcfd);});});});};exports['delete']=function(_0x46c962){return connect()[_0xa9fa('0x3')](function(){return new BPromise(function(_0x5d8eea,_0x2924c1){return pm2[_0xa9fa('0x9')](_0x46c962,function(_0x4a4e27,_0x5a732b){if(_0x4a4e27){return _0x2924c1(_0x4a4e27);}pm2['disconnect']();return _0x5d8eea(_0x5a732b);});});});};exports[_0xa9fa('0xa')]=function(){return connect()[_0xa9fa('0x3')](function(){return new BPromise(function(_0x777168,_0x5ccb29){return pm2[_0xa9fa('0xa')](function(_0x42c0d6){if(_0x42c0d6){return _0x5ccb29(_0x42c0d6);}return _0x777168(_0xa9fa('0xb'));});});});};
\ No newline at end of file
+var _0xf960=['./config','start','disconnect','then','restart','list','describe','delete','dump','saved','pm2','bluebird'];(function(_0x5c6114,_0x4c5dd5){var _0x54420a=function(_0x4b2287){while(--_0x4b2287){_0x5c6114['push'](_0x5c6114['shift']());}};_0x54420a(++_0x4c5dd5);}(_0xf960,0x1ea));var _0x0f96=function(_0x2b91c5,_0x3b6db5){_0x2b91c5=_0x2b91c5-0x0;var _0xbd5531=_0xf960[_0x2b91c5];return _0xbd5531;};'use strict';var pm2=require(_0x0f96('0x0'));var BPromise=require(_0x0f96('0x1'));var config=require(_0x0f96('0x2'));function connect(){return new BPromise(function(_0x3e7b9c,_0x5c7e66){return pm2['connect'](function(_0x44a555){if(_0x44a555){return _0x5c7e66(_0x44a555);}return _0x3e7b9c('connected');});});};exports[_0x0f96('0x3')]=function(_0x31d0a6){return connect()['then'](function(){return new BPromise(function(_0x3eb2e9,_0x310729){return pm2['start'](_0x31d0a6,function(_0x54a387,_0x5bbf80){if(_0x54a387){return _0x310729(_0x54a387);}pm2[_0x0f96('0x4')]();return _0x3eb2e9(_0x5bbf80);});});});};exports['stop']=function(_0x441ea2){return connect()[_0x0f96('0x5')](function(){return new BPromise(function(_0x58ad56,_0x189c9e){return pm2['stop'](_0x441ea2,function(_0x4cc56b,_0x3c8051){if(_0x4cc56b){return _0x189c9e(_0x4cc56b);}pm2['disconnect']();return _0x58ad56(_0x3c8051);});});});};exports[_0x0f96('0x6')]=function(_0x5a9ccb){return connect()[_0x0f96('0x5')](function(){return new BPromise(function(_0x499bff,_0x122314){return pm2[_0x0f96('0x6')](_0x5a9ccb,function(_0x3cf154,_0x2c62dc){if(_0x3cf154){return _0x122314(_0x3cf154);}pm2['disconnect']();return _0x499bff(_0x2c62dc);});});});};exports[_0x0f96('0x7')]=function(){return connect()[_0x0f96('0x5')](function(){return new BPromise(function(_0x369148,_0xa57402){return pm2[_0x0f96('0x7')](function(_0x317e48,_0x487524){if(_0x317e48){return _0xa57402(_0x317e48);}pm2[_0x0f96('0x4')]();return _0x369148(_0x487524);});});});};exports[_0x0f96('0x8')]=function(_0x1d8259){return connect()['then'](function(){return new BPromise(function(_0x1adc0a,_0x571557){return pm2[_0x0f96('0x8')](_0x1d8259,function(_0x519c91,_0x8fe54a){if(_0x519c91){return _0x571557(_0x519c91);}pm2[_0x0f96('0x4')]();return _0x1adc0a(_0x8fe54a);});});});};exports[_0x0f96('0x9')]=function(_0x1ec40d){return connect()[_0x0f96('0x5')](function(){return new BPromise(function(_0x4c7921,_0x591c8d){return pm2[_0x0f96('0x9')](_0x1ec40d,function(_0x27fd8a,_0x28aec7){if(_0x27fd8a){return _0x591c8d(_0x27fd8a);}pm2[_0x0f96('0x4')]();return _0x4c7921(_0x28aec7);});});});};exports[_0x0f96('0xa')]=function(){return connect()[_0x0f96('0x5')](function(){return new BPromise(function(_0x41e501,_0x590f8b){return pm2['dump'](function(_0x85b291){if(_0x85b291){return _0x590f8b(_0x85b291);}return _0x41e501(_0x0f96('0xb'));});});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3721=['map','info','[CHAT]\x20Interactions\x20to\x20close:','join','ChatInteraction','update','system','YYYY-MM-DD\x20HH:mm:ss','emit','chatInteraction:update','catch','error','[CHAT]\x20Error\x20closing\x20interactions','start','lodash','moment','ioredis','util','../../config/environment','../logger','schedule','redis','localhost','socket.io-emitter','Setting','find','chatTimeout','then','findAll','lastMsgAt','minutes','length'];(function(_0x2fd99d,_0x214192){var _0x328b60=function(_0x3f847d){while(--_0x3f847d){_0x2fd99d['push'](_0x2fd99d['shift']());}};_0x328b60(++_0x214192);}(_0x3721,0x1ae));var _0x1372=function(_0x4e3079,_0xa938e4){_0x4e3079=_0x4e3079-0x0;var _0x51aa46=_0x3721[_0x4e3079];return _0x51aa46;};'use strict';var _=require(_0x1372('0x0'));var moment=require(_0x1372('0x1'));var Redis=require(_0x1372('0x2'));var util=require(_0x1372('0x3'));var config=require(_0x1372('0x4'));var db=require('../../mysqldb')['db'];var logger=require(_0x1372('0x5'))(_0x1372('0x6'));config[_0x1372('0x7')]=_['defaults'](config[_0x1372('0x7')],{'host':_0x1372('0x8'),'port':0x18eb});var io=require(_0x1372('0x9'))(new Redis(config[_0x1372('0x7')]));function closeInteractions(){var _0x3487b8=0x0;var _0x345ab1=[];return db[_0x1372('0xa')][_0x1372('0xb')]({'raw':!![],'attributes':['id',_0x1372('0xc')],'where':{'id':0x1}})[_0x1372('0xd')](function(_0x47bab8){_0x3487b8=_0x47bab8[_0x1372('0xc')];if(_0x3487b8){return db['ChatInteraction'][_0x1372('0xe')]({'raw':!![],'attributes':['id',_0x1372('0xf')],'where':{'closed':![],'lastMsgAt':{'$lt':moment()['subtract'](_0x47bab8[_0x1372('0xc')],_0x1372('0x10'))}}});}else{return[];}})['then'](function(_0x343da2){if(_0x343da2&&_0x343da2[_0x1372('0x11')]){_0x345ab1=_[_0x1372('0x12')](_0x343da2||[],'id');logger[_0x1372('0x13')](_0x1372('0x14'),_0x345ab1[_0x1372('0x15')]());return db[_0x1372('0x16')][_0x1372('0x17')]({'closeReason':_0x1372('0x18'),'disposition':'timeout','closed':!![],'closedAt':moment()['format'](_0x1372('0x19'))},{'where':{'id':_0x345ab1}});}})['then'](function(){if(_0x345ab1&&_0x345ab1['length']){logger[_0x1372('0x13')]('[CHAT]\x20Sending\x20updates\x20for\x20interactions:',_0x345ab1[_0x1372('0x15')]());for(var _0x18e295=0x0;_0x18e295<_0x345ab1[_0x1372('0x11')];_0x18e295++){io[_0x1372('0x1a')](_0x1372('0x1b'),{'id':_0x345ab1[_0x18e295],'closed':!![]});}}})[_0x1372('0x1c')](function(_0x40a56e){logger[_0x1372('0x1d')](_0x1372('0x1e'),_0x40a56e?util['inspect'](_0x40a56e,{'showHidden':![],'depth':null}):'');});}exports[_0x1372('0x1f')]=function(){setInterval(function(){return closeInteractions();},0x3c*0x3e8);return closeInteractions();};
\ No newline at end of file
+var _0x53da=['timeout','YYYY-MM-DD\x20HH:mm:ss','[CHAT]\x20Sending\x20updates\x20for\x20interactions:','emit','chatInteraction:update','catch','error','[CHAT]\x20Error\x20closing\x20interactions','start','moment','ioredis','util','../../config/environment','../../mysqldb','schedule','redis','localhost','socket.io-emitter','Setting','chatTimeout','then','ChatInteraction','findAll','lastMsgAt','subtract','minutes','length','info','[CHAT]\x20Interactions\x20to\x20close:','update','system'];(function(_0x40dbeb,_0x4c472e){var _0x3df2f5=function(_0x1b7598){while(--_0x1b7598){_0x40dbeb['push'](_0x40dbeb['shift']());}};_0x3df2f5(++_0x4c472e);}(_0x53da,0x1da));var _0xa53d=function(_0x255bd9,_0x57a26c){_0x255bd9=_0x255bd9-0x0;var _0x3ba6c5=_0x53da[_0x255bd9];return _0x3ba6c5;};'use strict';var _=require('lodash');var moment=require(_0xa53d('0x0'));var Redis=require(_0xa53d('0x1'));var util=require(_0xa53d('0x2'));var config=require(_0xa53d('0x3'));var db=require(_0xa53d('0x4'))['db'];var logger=require('../logger')(_0xa53d('0x5'));config[_0xa53d('0x6')]=_['defaults'](config['redis'],{'host':_0xa53d('0x7'),'port':0x18eb});var io=require(_0xa53d('0x8'))(new Redis(config[_0xa53d('0x6')]));function closeInteractions(){var _0xe65ca9=0x0;var _0x8e2c78=[];return db[_0xa53d('0x9')]['find']({'raw':!![],'attributes':['id',_0xa53d('0xa')],'where':{'id':0x1}})[_0xa53d('0xb')](function(_0x5e05ac){_0xe65ca9=_0x5e05ac['chatTimeout'];if(_0xe65ca9){return db[_0xa53d('0xc')][_0xa53d('0xd')]({'raw':!![],'attributes':['id',_0xa53d('0xe')],'where':{'closed':![],'lastMsgAt':{'$lt':moment()[_0xa53d('0xf')](_0x5e05ac[_0xa53d('0xa')],_0xa53d('0x10'))}}});}else{return[];}})[_0xa53d('0xb')](function(_0x3bfbf7){if(_0x3bfbf7&&_0x3bfbf7[_0xa53d('0x11')]){_0x8e2c78=_['map'](_0x3bfbf7||[],'id');logger[_0xa53d('0x12')](_0xa53d('0x13'),_0x8e2c78['join']());return db['ChatInteraction'][_0xa53d('0x14')]({'closeReason':_0xa53d('0x15'),'disposition':_0xa53d('0x16'),'closed':!![],'closedAt':moment()['format'](_0xa53d('0x17'))},{'where':{'id':_0x8e2c78}});}})[_0xa53d('0xb')](function(){if(_0x8e2c78&&_0x8e2c78[_0xa53d('0x11')]){logger['info'](_0xa53d('0x18'),_0x8e2c78['join']());for(var _0x3db020=0x0;_0x3db020<_0x8e2c78[_0xa53d('0x11')];_0x3db020++){io[_0xa53d('0x19')](_0xa53d('0x1a'),{'id':_0x8e2c78[_0x3db020],'closed':!![]});}}})[_0xa53d('0x1b')](function(_0x42c051){logger[_0xa53d('0x1c')](_0xa53d('0x1d'),_0x42c051?util['inspect'](_0x42c051,{'showHidden':![],'depth':null}):'');});}exports[_0xa53d('0x1e')]=function(){setInterval(function(){return closeInteractions();},0x3c*0x3e8);return closeInteractions();};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x37ef=['sendIfEmpty','empty\x20file,\x20email\x20not\x20sent','request','SendMail','then','error','error\x20mail','email\x20sent','catch','isNil','subtractUnit','subtractUnit\x20null\x20or\x20undefined','subtract','YYYY-MM-DD\x20HH:mm:ss','output','exec\x20defaul\x20report\x20id:%s','runReport','DefaultReportId','CustomReportId','exec\x20custom\x20report\x20id:%s','no\x20report\x20id','Schedule','findAll','keys','map','toString','keyBy','difference','intersection','exists','stop','deleteJob','delete\x20cron','toRun','length','index','my\x20id','resolve','run\x20job','cron','active','isBetween','startAt','endAt','add','start','add\x20cron','stop\x20cron','update','update\x20cron','run','util','path','lodash','moment','jayson/promise','bluebird','../logger','schedule','../../api/analyticCustomReport/analyticCustomReport.controller','../../api/analyticDefaultReport/analyticDefaultReport.controller','client','http','info','Try\x20to\x20send\x20a\x20mail\x20to','email','Smtp','service','MailAccount','host','port','secure','authentication','auth','user','format','\x22%s\x22\x20<%s>','name','bcc','Report\x20%s\x20last\x20%s\x20%s','subtractNumber','join','../../files/reports','savename','%s.%s','basename','extname','zip','existsSync','status','Sent','attachments','message','text','Info\x20report:\x0a%s\x0aPlease\x20see\x20the\x20attachments\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20it.\x0a\x0a','stringify','Report\x20empty\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20this\x20email.\x0a\x0a'];(function(_0x146148,_0x4c5eb5){var _0x44bc63=function(_0x1e5528){while(--_0x1e5528){_0x146148['push'](_0x146148['shift']());}};_0x44bc63(++_0x4c5eb5);}(_0x37ef,0x94));var _0xf37e=function(_0x1cf234,_0x4768a1){_0x1cf234=_0x1cf234-0x0;var _0x2bcd6f=_0x37ef[_0x1cf234];return _0x2bcd6f;};'use strict';var fs=require('fs');var util=require(_0xf37e('0x0'));var path=require(_0xf37e('0x1'));var _=require(_0xf37e('0x2'));var moment=require(_0xf37e('0x3'));var CronJobManager=require('cron-job-manager');var jayson=require(_0xf37e('0x4'));var BPromise=require(_0xf37e('0x5'));var logger=require(_0xf37e('0x6'))(_0xf37e('0x7'));var db=require('../../mysqldb')['db'];var analyticCustomReportController=require(_0xf37e('0x8'));var analyticDefaultReportController=require(_0xf37e('0x9'));var client=jayson[_0xf37e('0xa')][_0xf37e('0xb')]({'port':0x232b});var manager=new CronJobManager();function handleSendEmail(_0x30aa9d,_0x1cfa7a){return function(){logger[_0xf37e('0xc')](_0xf37e('0xd'),_0x30aa9d[_0xf37e('0xe')]);var _0x1d7608=!![];var _0x4c4c2b={'tls':{'rejectUnauthorized':![]}};if(_0x30aa9d['MailAccount'][_0xf37e('0xf')][_0xf37e('0x10')]){_0x4c4c2b[_0xf37e('0x10')]=_0x30aa9d[_0xf37e('0x11')]['Smtp']['service'];}else{_0x4c4c2b[_0xf37e('0x12')]=_0x30aa9d['MailAccount']['Smtp'][_0xf37e('0x12')];_0x4c4c2b[_0xf37e('0x13')]=_0x30aa9d[_0xf37e('0x11')]['Smtp'][_0xf37e('0x13')];_0x4c4c2b[_0xf37e('0x14')]=_0x30aa9d[_0xf37e('0x11')][_0xf37e('0xf')]['secure'];}if(_0x30aa9d[_0xf37e('0x11')][_0xf37e('0xf')][_0xf37e('0x15')]){_0x4c4c2b[_0xf37e('0x16')]={'user':_0x30aa9d['MailAccount'][_0xf37e('0xf')][_0xf37e('0x17')],'pass':_0x30aa9d['MailAccount']['Smtp']['pass']};}var _0x2207af={'account':_0x4c4c2b,'message':{'from':util[_0xf37e('0x18')](_0xf37e('0x19'),_0x30aa9d[_0xf37e('0x11')][_0xf37e('0x1a')],_0x30aa9d[_0xf37e('0x11')][_0xf37e('0xe')]||_0x30aa9d[_0xf37e('0x11')]['Smtp'][_0xf37e('0x17')]),'to':_0x30aa9d[_0xf37e('0xe')],'cc':_0x30aa9d['cc'],'bcc':_0x30aa9d[_0xf37e('0x1b')],'subject':util[_0xf37e('0x18')](_0xf37e('0x1c'),_0x1cfa7a[_0xf37e('0x1a')],_0x30aa9d[_0xf37e('0x1d')],_0x30aa9d['subtractUnit'])}};var _0x2c9fd8=path[_0xf37e('0x1e')](__dirname,_0xf37e('0x1f'));var _0x389aa9=_0x1cfa7a[_0xf37e('0x20')];var _0x33410a=util[_0xf37e('0x18')](_0xf37e('0x21'),path[_0xf37e('0x22')](_0x1cfa7a[_0xf37e('0x20')],path[_0xf37e('0x23')](_0x1cfa7a[_0xf37e('0x20')])),_0xf37e('0x24'));var _0x5a3ef8=path[_0xf37e('0x1e')](_0x2c9fd8,_0x389aa9);var _0x2c10d2=path[_0xf37e('0x1e')](_0x2c9fd8,_0x33410a);if(fs[_0xf37e('0x25')](_0x5a3ef8)){_0x1cfa7a[_0xf37e('0x26')]=_0xf37e('0x27');_0x2207af['message'][_0xf37e('0x28')]=[{'filename':_0x389aa9,'path':_0x5a3ef8}];_0x2207af[_0xf37e('0x29')][_0xf37e('0x2a')]=util[_0xf37e('0x18')](_0xf37e('0x2b'),JSON[_0xf37e('0x2c')](_0x1cfa7a,null,0x2));}else if(fs[_0xf37e('0x25')](_0x2c10d2)){_0x1cfa7a[_0xf37e('0x26')]=_0xf37e('0x27');_0x2207af[_0xf37e('0x29')]['attachments']=[{'filename':_0x33410a,'path':_0x2c10d2}];}else{_0x2207af[_0xf37e('0x29')][_0xf37e('0x2a')]=_0xf37e('0x2d');if(!_0x30aa9d[_0xf37e('0x2e')]){_0x1d7608=![];logger[_0xf37e('0xc')](_0xf37e('0x2f'));}}if(_0x1d7608){return client[_0xf37e('0x30')](_0xf37e('0x31'),_0x2207af)[_0xf37e('0x32')](function(_0x381931){if(_0x381931[_0xf37e('0x33')]){return logger[_0xf37e('0x33')](_0xf37e('0x34'),JSON[_0xf37e('0x2c')](_0x381931));}return logger['info'](_0xf37e('0x35'));})[_0xf37e('0x36')](function(_0x2871fd){return logger[_0xf37e('0x33')](_0xf37e('0x34'),JSON[_0xf37e('0x2c')](_0x2871fd));});}};}function handleError(){return function(_0x122cfd){return logger['error'](JSON[_0xf37e('0x2c')](_0x122cfd));};}function handleResult(_0x5096e2){return function(_0x3082b4){logger[_0xf37e('0xc')]('data',JSON['stringify'](_0x3082b4));if(_0x5096e2[_0xf37e('0x11')]&&_0x5096e2['MailAccount']['Smtp']&&!_[_0xf37e('0x37')](_0x5096e2[_0xf37e('0xe')])){setTimeout(handleSendEmail(_0x5096e2,_0x3082b4),0x3c*0x3e8);}};}function handleJob(_0x4891d4){return function(){try{if(_[_0xf37e('0x37')](_0x4891d4[_0xf37e('0x1d')])){return logger[_0xf37e('0xc')]('subtractNumber\x20null\x20or\x20undefined');}if(_[_0xf37e('0x37')](_0x4891d4[_0xf37e('0x38')])){return logger[_0xf37e('0xc')](_0xf37e('0x39'));}var _0x1a1318={'startDate':moment()[_0xf37e('0x3a')](_0x4891d4[_0xf37e('0x1d')],_0x4891d4[_0xf37e('0x38')])[_0xf37e('0x18')](_0xf37e('0x3b')),'endDate':moment()[_0xf37e('0x18')](_0xf37e('0x3b')),'type':'scheduled','output':_0x4891d4[_0xf37e('0x3c')],'name':_0x4891d4[_0xf37e('0x1a')]};if(!_[_0xf37e('0x37')](_0x4891d4['DefaultReportId'])){logger[_0xf37e('0xc')](_0xf37e('0x3d'),_0x4891d4['DefaultReportId']);return analyticDefaultReportController[_0xf37e('0x3e')]({'id':_0x4891d4[_0xf37e('0x3f')]},_0x1a1318)[_0xf37e('0x32')](handleResult(_0x4891d4))[_0xf37e('0x36')](handleError());}if(!_[_0xf37e('0x37')](_0x4891d4[_0xf37e('0x40')])){logger['info'](_0xf37e('0x41'),_0x4891d4[_0xf37e('0x40')]);return analyticCustomReportController[_0xf37e('0x3e')]({'id':_0x4891d4[_0xf37e('0x40')]},_0x1a1318)['then'](handleResult(_0x4891d4))[_0xf37e('0x36')](handleError());}}catch(_0x4af290){logger[_0xf37e('0x33')](JSON[_0xf37e('0x2c')](_0x4af290));}return logger['info'](_0xf37e('0x42'));};}function getJobs(_0xc5c0a){var _0x4994a9={};if(_0xc5c0a){_0x4994a9['id']=_0xc5c0a;}return db[_0xf37e('0x43')][_0xf37e('0x44')]({'where':_0x4994a9,'include':[{'model':db[_0xf37e('0x11')],'attributes':['id','name',_0xf37e('0xe')],'include':[{'model':db['MailServerOut'],'as':_0xf37e('0xf')}]}]})[_0xf37e('0x32')](function(_0x18c2e7){var _0x2edc2b=_[_0xf37e('0x45')](manager['jobs']);var _0x457f00=_[_0xf37e('0x46')](_0x18c2e7,function(_0x40aae2){return _0x40aae2['id'][_0xf37e('0x47')]();});var _0x4931c4=_[_0xf37e('0x48')](_0x18c2e7,function(_0x2e6bed){return _0x2e6bed['id'][_0xf37e('0x47')]();});var _0x182175=_0xc5c0a?_0x457f00:_[_0xf37e('0x49')](_0x457f00,_0x2edc2b);var _0x239954=_[_0xf37e('0x4a')](_0x457f00,_0x2edc2b);var _0x52f763=_[_0xf37e('0x49')](_0x2edc2b,_0x457f00);var _0x1e03b5;var _0x2cc7a6;for(_0x1e03b5=0x0;_0x1e03b5<_0x52f763['length']&&!_0xc5c0a;_0x1e03b5+=0x1){_0x2cc7a6=_0x52f763[_0x1e03b5]['toString']();if(manager[_0xf37e('0x4b')](_0x2cc7a6)){manager[_0xf37e('0x4c')](_0x2cc7a6);manager[_0xf37e('0x4d')](_0x2cc7a6);logger[_0xf37e('0xc')](_0xf37e('0x4e'),_0x2cc7a6);}}logger['info'](_0xf37e('0x4f'),JSON['stringify'](_0x182175));for(_0x1e03b5=0x0;_0x1e03b5<_0x182175[_0xf37e('0x50')];_0x1e03b5+=0x1){_0x2cc7a6=_0x182175[_0x1e03b5][_0xf37e('0x47')]();logger[_0xf37e('0xc')](_0xf37e('0x51'),_0x2cc7a6);if(_0xc5c0a){logger[_0xf37e('0xc')](_0xf37e('0x52'),_0xc5c0a);logger[_0xf37e('0xc')](JSON[_0xf37e('0x2c')](_0x4931c4[_0x2cc7a6]));BPromise[_0xf37e('0x53')]()[_0xf37e('0x32')](handleJob(_0x4931c4[_0x2cc7a6]));logger[_0xf37e('0xc')](_0xf37e('0x54'),_0x4931c4[_0x2cc7a6][_0xf37e('0x1a')],_0x4931c4[_0x2cc7a6][_0xf37e('0x55')]);}else if(_0x4931c4[_0x2cc7a6][_0xf37e('0x55')]&&_0x4931c4[_0x2cc7a6][_0xf37e('0x56')]&&moment()[_0xf37e('0x57')](_0x4931c4[_0x2cc7a6][_0xf37e('0x58')],_0x4931c4[_0x2cc7a6][_0xf37e('0x59')])){manager[_0xf37e('0x5a')](_0x2cc7a6,_0x4931c4[_0x2cc7a6][_0xf37e('0x55')],handleJob(_0x4931c4[_0x2cc7a6]));manager[_0xf37e('0x5b')](_0x2cc7a6);logger[_0xf37e('0xc')](_0xf37e('0x5c'),_0x4931c4[_0x2cc7a6][_0xf37e('0x1a')],_0x4931c4[_0x2cc7a6]['cron']);}else if(manager[_0xf37e('0x4b')](_0x2cc7a6)){manager[_0xf37e('0x4c')](_0x2cc7a6);manager[_0xf37e('0x4d')](_0x2cc7a6);logger[_0xf37e('0xc')](_0xf37e('0x5d'),_0x4931c4[_0x2cc7a6]['name'],_0x4931c4[_0x2cc7a6][_0xf37e('0x55')]);}}for(_0x1e03b5=0x0,_0x2cc7a6;_0x1e03b5<_0x239954[_0xf37e('0x50')]&&!_0xc5c0a;_0x1e03b5+=0x1){_0x2cc7a6=_0x239954[_0x1e03b5]['toString']();if(manager[_0xf37e('0x4b')](_0x2cc7a6)){if(_0x4931c4[_0x2cc7a6]['cron']&&_0x4931c4[_0x2cc7a6][_0xf37e('0x56')]&&moment()[_0xf37e('0x57')](_0x4931c4[_0x2cc7a6]['startAt'],_0x4931c4[_0x2cc7a6][_0xf37e('0x59')])){manager[_0xf37e('0x5e')](_0x2cc7a6,_0x4931c4[_0x2cc7a6][_0xf37e('0x55')],handleJob(_0x4931c4[_0x2cc7a6]));logger[_0xf37e('0xc')](_0xf37e('0x5f'),_0x4931c4[_0x2cc7a6][_0xf37e('0x1a')],_0x4931c4[_0x2cc7a6][_0xf37e('0x55')]);}else{manager[_0xf37e('0x4c')](_0x2cc7a6);manager[_0xf37e('0x4d')](_0x2cc7a6);logger[_0xf37e('0xc')](_0xf37e('0x5d'),_0x4931c4[_0x2cc7a6]['name'],_0x4931c4[_0x2cc7a6][_0xf37e('0x55')]);}}}})[_0xf37e('0x36')](function(_0x47a1d3){logger['error'](JSON[_0xf37e('0x2c')](_0x47a1d3));});}exports[_0xf37e('0x60')]=function(_0x5d96a0){return getJobs(_0x5d96a0);};exports['start']=function(){setInterval(function(){return getJobs();},0x3c*0x3e8);return getJobs();};
\ No newline at end of file
+var _0x1108=['MailAccount','Smtp','service','host','port','secure','authentication','auth','pass','format','name','user','bcc','subtractNumber','join','../../files/reports','basename','savename','extname','zip','existsSync','status','Sent','message','text','Info\x20report:\x0a%s\x0aPlease\x20see\x20the\x20attachments\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20it.\x0a\x0a','stringify','attachments','empty\x20file,\x20email\x20not\x20sent','SendMail','then','error','email\x20sent','error\x20mail','data','isNil','subtractNumber\x20null\x20or\x20undefined','subtractUnit','subtractUnit\x20null\x20or\x20undefined','subtract','YYYY-MM-DD\x20HH:mm:ss','scheduled','output','DefaultReportId','exec\x20defaul\x20report\x20id:%s','runReport','catch','CustomReportId','exec\x20custom\x20report\x20id:%s','no\x20report\x20id','Schedule','findAll','keys','jobs','toString','keyBy','difference','intersection','length','stop','my\x20id','resolve','run\x20job','cron','active','add','add\x20cron','exists','startAt','endAt','update','deleteJob','stop\x20cron','run','start','util','path','moment','cron-job-manager','jayson/promise','bluebird','../../mysqldb','../../api/analyticCustomReport/analyticCustomReport.controller','../../api/analyticDefaultReport/analyticDefaultReport.controller','client','info','Try\x20to\x20send\x20a\x20mail\x20to','email'];(function(_0x51679b,_0x2d621c){var _0x4085f3=function(_0x14c945){while(--_0x14c945){_0x51679b['push'](_0x51679b['shift']());}};_0x4085f3(++_0x2d621c);}(_0x1108,0xa3));var _0x8110=function(_0x4bb94b,_0x50628a){_0x4bb94b=_0x4bb94b-0x0;var _0x36dcc6=_0x1108[_0x4bb94b];return _0x36dcc6;};'use strict';var fs=require('fs');var util=require(_0x8110('0x0'));var path=require(_0x8110('0x1'));var _=require('lodash');var moment=require(_0x8110('0x2'));var CronJobManager=require(_0x8110('0x3'));var jayson=require(_0x8110('0x4'));var BPromise=require(_0x8110('0x5'));var logger=require('../logger')('schedule');var db=require(_0x8110('0x6'))['db'];var analyticCustomReportController=require(_0x8110('0x7'));var analyticDefaultReportController=require(_0x8110('0x8'));var client=jayson[_0x8110('0x9')]['http']({'port':0x232b});var manager=new CronJobManager();function handleSendEmail(_0x4aa754,_0x1f571e){return function(){logger[_0x8110('0xa')](_0x8110('0xb'),_0x4aa754[_0x8110('0xc')]);var _0x3d90b5=!![];var _0x58a178={'tls':{'rejectUnauthorized':![]}};if(_0x4aa754[_0x8110('0xd')][_0x8110('0xe')]['service']){_0x58a178[_0x8110('0xf')]=_0x4aa754[_0x8110('0xd')][_0x8110('0xe')][_0x8110('0xf')];}else{_0x58a178[_0x8110('0x10')]=_0x4aa754[_0x8110('0xd')][_0x8110('0xe')]['host'];_0x58a178[_0x8110('0x11')]=_0x4aa754['MailAccount'][_0x8110('0xe')][_0x8110('0x11')];_0x58a178['secure']=_0x4aa754[_0x8110('0xd')]['Smtp'][_0x8110('0x12')];}if(_0x4aa754[_0x8110('0xd')][_0x8110('0xe')][_0x8110('0x13')]){_0x58a178[_0x8110('0x14')]={'user':_0x4aa754['MailAccount']['Smtp']['user'],'pass':_0x4aa754[_0x8110('0xd')][_0x8110('0xe')][_0x8110('0x15')]};}var _0x4a6442={'account':_0x58a178,'message':{'from':util[_0x8110('0x16')]('\x22%s\x22\x20<%s>',_0x4aa754[_0x8110('0xd')][_0x8110('0x17')],_0x4aa754['MailAccount']['email']||_0x4aa754[_0x8110('0xd')][_0x8110('0xe')][_0x8110('0x18')]),'to':_0x4aa754[_0x8110('0xc')],'cc':_0x4aa754['cc'],'bcc':_0x4aa754[_0x8110('0x19')],'subject':util['format']('Report\x20%s\x20last\x20%s\x20%s',_0x1f571e[_0x8110('0x17')],_0x4aa754[_0x8110('0x1a')],_0x4aa754['subtractUnit'])}};var _0x284b0f=path[_0x8110('0x1b')](__dirname,_0x8110('0x1c'));var _0x1c57f3=_0x1f571e['savename'];var _0x215528=util[_0x8110('0x16')]('%s.%s',path[_0x8110('0x1d')](_0x1f571e[_0x8110('0x1e')],path[_0x8110('0x1f')](_0x1f571e[_0x8110('0x1e')])),_0x8110('0x20'));var _0x523a06=path[_0x8110('0x1b')](_0x284b0f,_0x1c57f3);var _0x31a375=path[_0x8110('0x1b')](_0x284b0f,_0x215528);if(fs[_0x8110('0x21')](_0x523a06)){_0x1f571e[_0x8110('0x22')]=_0x8110('0x23');_0x4a6442['message']['attachments']=[{'filename':_0x1c57f3,'path':_0x523a06}];_0x4a6442[_0x8110('0x24')][_0x8110('0x25')]=util[_0x8110('0x16')](_0x8110('0x26'),JSON[_0x8110('0x27')](_0x1f571e,null,0x2));}else if(fs[_0x8110('0x21')](_0x31a375)){_0x1f571e[_0x8110('0x22')]=_0x8110('0x23');_0x4a6442[_0x8110('0x24')][_0x8110('0x28')]=[{'filename':_0x215528,'path':_0x31a375}];}else{_0x4a6442['message'][_0x8110('0x25')]='Report\x20empty\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20this\x20email.\x0a\x0a';if(!_0x4aa754['sendIfEmpty']){_0x3d90b5=![];logger[_0x8110('0xa')](_0x8110('0x29'));}}if(_0x3d90b5){return client['request'](_0x8110('0x2a'),_0x4a6442)[_0x8110('0x2b')](function(_0x237ed1){if(_0x237ed1[_0x8110('0x2c')]){return logger['error']('error\x20mail',JSON[_0x8110('0x27')](_0x237ed1));}return logger[_0x8110('0xa')](_0x8110('0x2d'));})['catch'](function(_0x16b8a0){return logger[_0x8110('0x2c')](_0x8110('0x2e'),JSON[_0x8110('0x27')](_0x16b8a0));});}};}function handleError(){return function(_0x9a3ca5){return logger['error'](JSON[_0x8110('0x27')](_0x9a3ca5));};}function handleResult(_0xc4ff53){return function(_0x497008){logger['info'](_0x8110('0x2f'),JSON[_0x8110('0x27')](_0x497008));if(_0xc4ff53[_0x8110('0xd')]&&_0xc4ff53[_0x8110('0xd')][_0x8110('0xe')]&&!_[_0x8110('0x30')](_0xc4ff53['email'])){setTimeout(handleSendEmail(_0xc4ff53,_0x497008),0x3c*0x3e8);}};}function handleJob(_0x3fe389){return function(){try{if(_[_0x8110('0x30')](_0x3fe389[_0x8110('0x1a')])){return logger[_0x8110('0xa')](_0x8110('0x31'));}if(_[_0x8110('0x30')](_0x3fe389[_0x8110('0x32')])){return logger[_0x8110('0xa')](_0x8110('0x33'));}var _0x583db7={'startDate':moment()[_0x8110('0x34')](_0x3fe389[_0x8110('0x1a')],_0x3fe389[_0x8110('0x32')])[_0x8110('0x16')]('YYYY-MM-DD\x20HH:mm:ss'),'endDate':moment()[_0x8110('0x16')](_0x8110('0x35')),'type':_0x8110('0x36'),'output':_0x3fe389[_0x8110('0x37')],'name':_0x3fe389[_0x8110('0x17')]};if(!_['isNil'](_0x3fe389[_0x8110('0x38')])){logger['info'](_0x8110('0x39'),_0x3fe389[_0x8110('0x38')]);return analyticDefaultReportController[_0x8110('0x3a')]({'id':_0x3fe389['DefaultReportId']},_0x583db7)['then'](handleResult(_0x3fe389))[_0x8110('0x3b')](handleError());}if(!_[_0x8110('0x30')](_0x3fe389[_0x8110('0x3c')])){logger[_0x8110('0xa')](_0x8110('0x3d'),_0x3fe389['CustomReportId']);return analyticCustomReportController[_0x8110('0x3a')]({'id':_0x3fe389['CustomReportId']},_0x583db7)['then'](handleResult(_0x3fe389))[_0x8110('0x3b')](handleError());}}catch(_0x3deb79){logger[_0x8110('0x2c')](JSON[_0x8110('0x27')](_0x3deb79));}return logger[_0x8110('0xa')](_0x8110('0x3e'));};}function getJobs(_0x5a64d1){var _0x2ebcf2={};if(_0x5a64d1){_0x2ebcf2['id']=_0x5a64d1;}return db[_0x8110('0x3f')][_0x8110('0x40')]({'where':_0x2ebcf2,'include':[{'model':db['MailAccount'],'attributes':['id',_0x8110('0x17'),_0x8110('0xc')],'include':[{'model':db['MailServerOut'],'as':'Smtp'}]}]})['then'](function(_0x52a0e5){var _0x4bf8ec=_[_0x8110('0x41')](manager[_0x8110('0x42')]);var _0x5091d1=_['map'](_0x52a0e5,function(_0x249786){return _0x249786['id'][_0x8110('0x43')]();});var _0x1b64e8=_[_0x8110('0x44')](_0x52a0e5,function(_0x36dbe7){return _0x36dbe7['id'][_0x8110('0x43')]();});var _0x2a1534=_0x5a64d1?_0x5091d1:_[_0x8110('0x45')](_0x5091d1,_0x4bf8ec);var _0x2bd430=_[_0x8110('0x46')](_0x5091d1,_0x4bf8ec);var _0x42e54a=_[_0x8110('0x45')](_0x4bf8ec,_0x5091d1);var _0xd638f9;var _0x274ad1;for(_0xd638f9=0x0;_0xd638f9<_0x42e54a[_0x8110('0x47')]&&!_0x5a64d1;_0xd638f9+=0x1){_0x274ad1=_0x42e54a[_0xd638f9][_0x8110('0x43')]();if(manager['exists'](_0x274ad1)){manager[_0x8110('0x48')](_0x274ad1);manager['deleteJob'](_0x274ad1);logger['info']('delete\x20cron',_0x274ad1);}}logger[_0x8110('0xa')]('toRun',JSON[_0x8110('0x27')](_0x2a1534));for(_0xd638f9=0x0;_0xd638f9<_0x2a1534[_0x8110('0x47')];_0xd638f9+=0x1){_0x274ad1=_0x2a1534[_0xd638f9][_0x8110('0x43')]();logger[_0x8110('0xa')]('index',_0x274ad1);if(_0x5a64d1){logger[_0x8110('0xa')](_0x8110('0x49'),_0x5a64d1);logger[_0x8110('0xa')](JSON[_0x8110('0x27')](_0x1b64e8[_0x274ad1]));BPromise[_0x8110('0x4a')]()[_0x8110('0x2b')](handleJob(_0x1b64e8[_0x274ad1]));logger['info'](_0x8110('0x4b'),_0x1b64e8[_0x274ad1][_0x8110('0x17')],_0x1b64e8[_0x274ad1][_0x8110('0x4c')]);}else if(_0x1b64e8[_0x274ad1][_0x8110('0x4c')]&&_0x1b64e8[_0x274ad1][_0x8110('0x4d')]&&moment()['isBetween'](_0x1b64e8[_0x274ad1]['startAt'],_0x1b64e8[_0x274ad1]['endAt'])){manager[_0x8110('0x4e')](_0x274ad1,_0x1b64e8[_0x274ad1][_0x8110('0x4c')],handleJob(_0x1b64e8[_0x274ad1]));manager['start'](_0x274ad1);logger[_0x8110('0xa')](_0x8110('0x4f'),_0x1b64e8[_0x274ad1][_0x8110('0x17')],_0x1b64e8[_0x274ad1][_0x8110('0x4c')]);}else if(manager[_0x8110('0x50')](_0x274ad1)){manager[_0x8110('0x48')](_0x274ad1);manager['deleteJob'](_0x274ad1);logger[_0x8110('0xa')]('stop\x20cron',_0x1b64e8[_0x274ad1]['name'],_0x1b64e8[_0x274ad1][_0x8110('0x4c')]);}}for(_0xd638f9=0x0,_0x274ad1;_0xd638f9<_0x2bd430['length']&&!_0x5a64d1;_0xd638f9+=0x1){_0x274ad1=_0x2bd430[_0xd638f9][_0x8110('0x43')]();if(manager[_0x8110('0x50')](_0x274ad1)){if(_0x1b64e8[_0x274ad1][_0x8110('0x4c')]&&_0x1b64e8[_0x274ad1][_0x8110('0x4d')]&&moment()['isBetween'](_0x1b64e8[_0x274ad1][_0x8110('0x51')],_0x1b64e8[_0x274ad1][_0x8110('0x52')])){manager[_0x8110('0x53')](_0x274ad1,_0x1b64e8[_0x274ad1][_0x8110('0x4c')],handleJob(_0x1b64e8[_0x274ad1]));logger[_0x8110('0xa')]('update\x20cron',_0x1b64e8[_0x274ad1][_0x8110('0x17')],_0x1b64e8[_0x274ad1]['cron']);}else{manager[_0x8110('0x48')](_0x274ad1);manager[_0x8110('0x54')](_0x274ad1);logger[_0x8110('0xa')](_0x8110('0x55'),_0x1b64e8[_0x274ad1][_0x8110('0x17')],_0x1b64e8[_0x274ad1][_0x8110('0x4c')]);}}}})['catch'](function(_0x1a3074){logger[_0x8110('0x2c')](JSON['stringify'](_0x1a3074));});}exports[_0x8110('0x56')]=function(_0x2532dd){return getJobs(_0x2532dd);};exports[_0x8110('0x57')]=function(){setInterval(function(){return getJobs();},0x3c*0x3e8);return getJobs();};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x81a5=['transcribe','TranscribeService','getTranscriptionJob','Comprehend','detectSentiment','info','format','[RECORDING:%d]\x20Get\x20status\x20for\x20transcript\x20job\x20(%s)','transcribeName','data1','data2','transcribeRegion','[RECORDING:%d]\x20Status\x20of\x20transcript\x20job\x20(%s):\x20%s','TranscriptionJob','TranscriptionJobStatus','Transcript','TranscriptFileUri','[RECORDING:%d]\x20Get\x20transcript','then','[RECORDING:%d]\x20Transcript\x20downloaded','results','transcripts','fileText','length','tempSentiment','Sequelize','ValidationError','Sentiment\x20Analysis\x20not\x20requested','sentimentAccountId','sentimentRegion','language','bucket','Sentiment\x20Analysis\x20not\x20configured','Transcript\x20not\x20available','findOne','Cloud\x20Provider\x20not\x20available','Cloud\x20Provider\x20not\x20configured','[RECORDING:%d]\x20Requesting\x20sentiment\x20analysis','[RECORDING:%d]\x20Sentiment\x20Analysis\x20available','update','Sentiment','SentimentScore','Negative','Mixed','FAILED','FailureReason','[RECORDING:%d]\x20Voice\x20Recording\x20entry\x20updated','[RECORDING:%d]\x20Transcript\x20Job\x20status\x20not\x20managed','resolve','sentiment','CloudProvider','Positive','Neutral','COMPLETED','catch','SequelizeValidationError','error','inspect','VoiceRecording','findAll','IN_PROGRESS','No\x20transcribe\x20job\x20to\x20check','Setting','Settings\x20not\x20available','transcribeAccountId','Transcribe\x20not\x20configured','forEach','push','all','name','start','lodash','aws-sdk','request-promise','util','bluebird','../../mysqldb'];(function(_0x16a588,_0x57f290){var _0x2b2037=function(_0x43d394){while(--_0x43d394){_0x16a588['push'](_0x16a588['shift']());}};_0x2b2037(++_0x57f290);}(_0x81a5,0x1c8));var _0x581a=function(_0x389e35,_0x148973){_0x389e35=_0x389e35-0x0;var _0x50acc1=_0x81a5[_0x389e35];return _0x50acc1;};var _=require(_0x581a('0x0'));var AWS=require(_0x581a('0x1'));var rp=require(_0x581a('0x2'));var util=require(_0x581a('0x3'));var BPromise=require(_0x581a('0x4'));var db=require(_0x581a('0x5'))['db'];var logger=require('../../config/logger')(_0x581a('0x6'));function getTranscriptionJob(_0x5125ac,_0x4f5f9a,_0x51d349,_0x4b491c){return new Promise(function(_0x21fea7,_0x56065e){var _0xdcb7c0=new AWS[(_0x581a('0x7'))]({'accessKeyId':_0x4f5f9a,'secretAccessKey':_0x5125ac,'region':_0x51d349});_0xdcb7c0[_0x581a('0x8')]({'TranscriptionJobName':_0x4b491c},function(_0x18dec1,_0x23ba13){if(_0x18dec1){return _0x56065e(_0x18dec1);}else{return _0x21fea7(_0x23ba13);}});});}function sentiment(_0x2356d3,_0x3fe553,_0x31b3ac,_0x524948,_0x1c9869){return new Promise(function(_0x493493,_0x1541f1){var _0x8e2264=new AWS[(_0x581a('0x9'))]({'accessKeyId':_0x3fe553,'secretAccessKey':_0x2356d3,'region':_0x31b3ac});_0x8e2264[_0x581a('0xa')]({'Text':_0x524948,'LanguageCode':_0x1c9869['substring'](0x0,0x2)},function(_0x4f4f5f,_0x58ebc0){if(_0x4f4f5f){return _0x1541f1(_0x4f4f5f);}else{return _0x493493(_0x58ebc0);}});});}function checkTranscribeJob(_0x5b1378,_0x5dac2a,_0x48a2e3){var _0x96c299;return new BPromise(function(_0x270eef,_0x4f3ce4){logger[_0x581a('0xb')](util[_0x581a('0xc')](_0x581a('0xd'),_0x5b1378['id'],_0x5b1378[_0x581a('0xe')]));return getTranscriptionJob(_0x48a2e3[_0x581a('0xf')],_0x48a2e3[_0x581a('0x10')],_0x5dac2a[_0x581a('0x11')],_0x5b1378[_0x581a('0xe')])['then'](function(_0x11f50b){logger[_0x581a('0xb')](util['format'](_0x581a('0x12'),_0x5b1378['id'],_0x5b1378[_0x581a('0xe')],_0x11f50b[_0x581a('0x13')][_0x581a('0x14')]));if(!_0x5b1378['fileText']){switch(_0x11f50b[_0x581a('0x13')][_0x581a('0x14')]){case'COMPLETED':var _0x4bdc1a={'transcribeStatus':_0x11f50b[_0x581a('0x13')][_0x581a('0x14')],'fileUri':_0x11f50b[_0x581a('0x13')][_0x581a('0x15')][_0x581a('0x16')]};logger[_0x581a('0xb')](util[_0x581a('0xc')](_0x581a('0x17'),_0x5b1378['id']));return rp({'uri':_0x11f50b['TranscriptionJob'][_0x581a('0x15')][_0x581a('0x16')],'json':!![]})[_0x581a('0x18')](function(_0x4f619d){logger['info'](util[_0x581a('0xc')](_0x581a('0x19'),_0x5b1378['id']));if(_0x4f619d&&_0x4f619d[_0x581a('0x1a')]&&_0x4f619d[_0x581a('0x1a')]['transcripts']&&_0x4f619d[_0x581a('0x1a')][_0x581a('0x1b')]['length']){_0x4bdc1a[_0x581a('0x1c')]='';for(var _0x3ce207=0x0;_0x3ce207<_0x4f619d[_0x581a('0x1a')][_0x581a('0x1b')][_0x581a('0x1d')];_0x3ce207++){_0x4bdc1a['fileText']+=_0x4f619d['results'][_0x581a('0x1b')][_0x3ce207]['transcript']+'';}}return _0x5b1378['update'](_0x4bdc1a);})[_0x581a('0x18')](function(){logger[_0x581a('0xb')](util[_0x581a('0xc')]('[RECORDING:%d]\x20Voice\x20Recording\x20entry\x20updated',_0x5b1378['id']));if(!_0x5b1378[_0x581a('0x1e')]){throw new db[(_0x581a('0x1f'))][(_0x581a('0x20'))](_0x581a('0x21'));}if(!_0x5dac2a['sentiment']||!_0x5dac2a[_0x581a('0x22')]||!_0x5dac2a[_0x581a('0x23')]||!_0x5dac2a[_0x581a('0x24')]||!_0x5dac2a[_0x581a('0x25')]){throw new db[(_0x581a('0x1f'))][(_0x581a('0x20'))](_0x581a('0x26'));}if(!_0x4bdc1a[_0x581a('0x1c')]){throw new Error(_0x581a('0x27'));}if(_0x5dac2a[_0x581a('0x22')]===_0x48a2e3['id']){return _0x48a2e3;}else{return db['CloudProvider'][_0x581a('0x28')]({'where':{'id':_settings[_0x581a('0x22')]}});}})['then'](function(_0x3d9f4a){if(!_0x3d9f4a){throw new db[(_0x581a('0x1f'))]['ValidationError'](_0x581a('0x29'));}if(!_0x3d9f4a[_0x581a('0xf')]||!_0x3d9f4a[_0x581a('0x10')]){throw new db[(_0x581a('0x1f'))][(_0x581a('0x20'))](_0x581a('0x2a'));}_0x96c299=_0x3d9f4a;logger[_0x581a('0xb')](util[_0x581a('0xc')](_0x581a('0x2b'),_0x5b1378['id']));return sentiment(_0x96c299[_0x581a('0xf')],_0x96c299['data2'],_0x5dac2a['sentimentRegion'],_0x4bdc1a['fileText'],_0x5dac2a[_0x581a('0x24')]);})[_0x581a('0x18')](function(_0xfbfb4f){logger['info'](util['format'](_0x581a('0x2c'),_0x5b1378['id']));return _0x5b1378[_0x581a('0x2d')]({'sentiment':_0xfbfb4f[_0x581a('0x2e')],'sPositive':_0xfbfb4f[_0x581a('0x2f')]['Positive'],'sNegative':_0xfbfb4f[_0x581a('0x2f')][_0x581a('0x30')],'sMixed':_0xfbfb4f['SentimentScore'][_0x581a('0x31')],'sNeutral':_0xfbfb4f[_0x581a('0x2f')]['Neutral']});})[_0x581a('0x18')](function(){logger[_0x581a('0xb')](util[_0x581a('0xc')]('[RECORDING:%d]\x20Voice\x20Recording\x20entry\x20updated',_0x5b1378['id']));_0x270eef();});case _0x581a('0x32'):return _0x5b1378[_0x581a('0x2d')]({'transcribeStatus':_0x581a('0x32'),'failureReason':_0x11f50b[_0x581a('0x13')][_0x581a('0x33')]})[_0x581a('0x18')](function(){logger[_0x581a('0xb')](util[_0x581a('0xc')](_0x581a('0x34'),_0x5b1378['id']));_0x270eef();});default:logger[_0x581a('0xb')](util['format'](_0x581a('0x35'),_0x5b1378['id']));break;}}else{return BPromise[_0x581a('0x36')]()[_0x581a('0x18')](function(){if(!_0x5b1378[_0x581a('0x1e')]){throw new db[(_0x581a('0x1f'))][(_0x581a('0x20'))](_0x581a('0x21'));}if(!_0x5dac2a[_0x581a('0x37')]||!_0x5dac2a[_0x581a('0x22')]||!_0x5dac2a['sentimentRegion']||!_0x5dac2a[_0x581a('0x24')]||!_0x5dac2a[_0x581a('0x25')]){throw new db[(_0x581a('0x1f'))]['ValidationError']('Sentiment\x20Analysis\x20not\x20configured');}if(!_0x5b1378['fileText']){throw new Error('Transcript\x20not\x20available');}if(_0x5dac2a[_0x581a('0x22')]===_0x48a2e3['id']){return _0x48a2e3;}else{return db[_0x581a('0x38')][_0x581a('0x28')]({'where':{'id':_settings['sentimentAccountId']}});}})[_0x581a('0x18')](function(_0x54ef6f){if(!_0x54ef6f){throw new db[(_0x581a('0x1f'))][(_0x581a('0x20'))]('Cloud\x20Provider\x20not\x20available');}if(!_0x54ef6f['data1']||!_0x54ef6f[_0x581a('0x10')]){throw new db[(_0x581a('0x1f'))]['ValidationError'](_0x581a('0x2a'));}_0x96c299=_0x54ef6f;logger[_0x581a('0xb')](util[_0x581a('0xc')](_0x581a('0x2b'),_0x5b1378['id']));return sentiment(_0x96c299[_0x581a('0xf')],_0x96c299[_0x581a('0x10')],_0x5dac2a[_0x581a('0x23')],_0x5b1378[_0x581a('0x1c')],_0x5dac2a[_0x581a('0x24')]);})[_0x581a('0x18')](function(_0x2a6e5f){logger[_0x581a('0xb')](util['format']('[RECORDING:%d]\x20Sentiment\x20Analysis\x20available',_0x5b1378['id']));return _0x5b1378[_0x581a('0x2d')]({'sentiment':_0x2a6e5f[_0x581a('0x2e')],'sPositive':_0x2a6e5f[_0x581a('0x2f')][_0x581a('0x39')],'sNegative':_0x2a6e5f[_0x581a('0x2f')]['Negative'],'sMixed':_0x2a6e5f[_0x581a('0x2f')][_0x581a('0x31')],'sNeutral':_0x2a6e5f[_0x581a('0x2f')][_0x581a('0x3a')],'transcribeStatus':_0x581a('0x3b')});})[_0x581a('0x18')](function(){logger[_0x581a('0xb')](util['format'](_0x581a('0x34'),_0x5b1378['id']));_0x270eef();});}})[_0x581a('0x3c')](function(_0x58bce3){if(_0x58bce3){if(!_0x58bce3['name']||_0x58bce3['name']!==_0x581a('0x3d')){logger[_0x581a('0x3e')](util[_0x581a('0xc')]('[RECORDING:%d]\x20Error\x20running\x20Transcribe\x20&\x20Sentiment\x20Analysis',_0x5b1378['id']),util[_0x581a('0x3f')](_0x58bce3,{'showHidden':![],'depth':null}));}}_0x270eef();});});}function checkTranscribe(){var _0x35990b;var _0x462107;var _0x3b80ca;return db[_0x581a('0x40')][_0x581a('0x41')]({'where':{'transcribeStatus':_0x581a('0x42')}})[_0x581a('0x18')](function(_0x20b420){if(!_0x20b420||!_0x20b420[_0x581a('0x1d')]){throw new db[(_0x581a('0x1f'))]['ValidationError'](_0x581a('0x43'));}_0x35990b=_0x20b420;return db[_0x581a('0x44')]['findOne']({'where':{'id':0x1}});})[_0x581a('0x18')](function(_0x181818){if(!_0x181818){throw new db[(_0x581a('0x1f'))][(_0x581a('0x20'))](_0x581a('0x45'));}_0x462107=_0x181818;if(!_0x462107['transcribe']||!_0x462107[_0x581a('0x46')]||!_0x462107[_0x581a('0x11')]||!_0x462107['language']||!_0x462107[_0x581a('0x25')]){throw new db['Sequelize'][(_0x581a('0x20'))](_0x581a('0x47'));}return db[_0x581a('0x38')][_0x581a('0x28')]({'where':{'id':_0x462107['transcribeAccountId']}});})[_0x581a('0x18')](function(_0xca8463){if(!_0xca8463){throw new db[(_0x581a('0x1f'))][(_0x581a('0x20'))](_0x581a('0x29'));}if(!_0xca8463[_0x581a('0xf')]||!_0xca8463[_0x581a('0x10')]){throw new db[(_0x581a('0x1f'))][(_0x581a('0x20'))](_0x581a('0x2a'));}_0x3b80ca=_0xca8463;var _0x46139c=[];_0x35990b[_0x581a('0x48')](function(_0x4e5995){_0x46139c[_0x581a('0x49')](checkTranscribeJob(_0x4e5995,_0x462107,_0x3b80ca));});return BPromise[_0x581a('0x4a')](_0x46139c);})[_0x581a('0x3c')](function(_0x226450){if(_0x226450){if(!_0x226450[_0x581a('0x4b')]||_0x226450[_0x581a('0x4b')]!==_0x581a('0x3d')){logger[_0x581a('0x3e')](util[_0x581a('0x3f')](_0x226450,{'showHidden':![],'depth':null}));}}});}exports[_0x581a('0x4c')]=function(){setInterval(function(){return checkTranscribe();},0x3c*0x3e8);return checkTranscribe();};
\ No newline at end of file
+var _0xee5b=['Mixed','catch','name','SequelizeValidationError','error','inspect','VoiceRecording','findAll','No\x20transcribe\x20job\x20to\x20check','Setting','Settings\x20not\x20available','transcribeAccountId','Transcribe\x20not\x20configured','Cloud\x20Provider\x20not\x20available','forEach','all','start','lodash','request-promise','util','../../mysqldb','../../config/logger','transcribe','Comprehend','detectSentiment','substring','info','format','data1','transcribeRegion','then','[RECORDING:%d]\x20Status\x20of\x20transcript\x20job\x20(%s):\x20%s','transcribeName','TranscriptionJobStatus','fileText','TranscriptionJob','COMPLETED','Transcript','TranscriptFileUri','[RECORDING:%d]\x20Get\x20transcript','[RECORDING:%d]\x20Transcript\x20downloaded','results','transcripts','length','transcript','update','[RECORDING:%d]\x20Voice\x20Recording\x20entry\x20updated','tempSentiment','Sequelize','ValidationError','Sentiment\x20Analysis\x20not\x20requested','sentimentAccountId','sentimentRegion','language','bucket','Sentiment\x20Analysis\x20not\x20configured','Transcript\x20not\x20available','CloudProvider','data2','[RECORDING:%d]\x20Requesting\x20sentiment\x20analysis','[RECORDING:%d]\x20Sentiment\x20Analysis\x20available','SentimentScore','Neutral','FAILED','sentiment','findOne','Cloud\x20Provider\x20not\x20configured','Sentiment','Negative'];(function(_0x40fa2e,_0x3b0dff){var _0xb52924=function(_0xf049aa){while(--_0xf049aa){_0x40fa2e['push'](_0x40fa2e['shift']());}};_0xb52924(++_0x3b0dff);}(_0xee5b,0x1f4));var _0xbee5=function(_0x844d5c,_0x16e61e){_0x844d5c=_0x844d5c-0x0;var _0x15be5d=_0xee5b[_0x844d5c];return _0x15be5d;};var _=require(_0xbee5('0x0'));var AWS=require('aws-sdk');var rp=require(_0xbee5('0x1'));var util=require(_0xbee5('0x2'));var BPromise=require('bluebird');var db=require(_0xbee5('0x3'))['db'];var logger=require(_0xbee5('0x4'))(_0xbee5('0x5'));function getTranscriptionJob(_0x210159,_0x4bd202,_0x5200b1,_0x2e8127){return new Promise(function(_0x2c0bde,_0xab6e4d){var _0x804ab8=new AWS['TranscribeService']({'accessKeyId':_0x4bd202,'secretAccessKey':_0x210159,'region':_0x5200b1});_0x804ab8['getTranscriptionJob']({'TranscriptionJobName':_0x2e8127},function(_0x53d5b9,_0x5baf5c){if(_0x53d5b9){return _0xab6e4d(_0x53d5b9);}else{return _0x2c0bde(_0x5baf5c);}});});}function sentiment(_0x5536bd,_0x20c66c,_0x7dda04,_0x45c2c7,_0x20f717){return new Promise(function(_0x4a15bf,_0x143bd6){var _0x305921=new AWS[(_0xbee5('0x6'))]({'accessKeyId':_0x20c66c,'secretAccessKey':_0x5536bd,'region':_0x7dda04});_0x305921[_0xbee5('0x7')]({'Text':_0x45c2c7,'LanguageCode':_0x20f717[_0xbee5('0x8')](0x0,0x2)},function(_0x1509c7,_0x105e16){if(_0x1509c7){return _0x143bd6(_0x1509c7);}else{return _0x4a15bf(_0x105e16);}});});}function checkTranscribeJob(_0x17ee3c,_0xcef158,_0x48f771){var _0x14e032;return new BPromise(function(_0x532a78,_0x183877){logger[_0xbee5('0x9')](util[_0xbee5('0xa')]('[RECORDING:%d]\x20Get\x20status\x20for\x20transcript\x20job\x20(%s)',_0x17ee3c['id'],_0x17ee3c['transcribeName']));return getTranscriptionJob(_0x48f771[_0xbee5('0xb')],_0x48f771['data2'],_0xcef158[_0xbee5('0xc')],_0x17ee3c['transcribeName'])[_0xbee5('0xd')](function(_0x141878){logger[_0xbee5('0x9')](util['format'](_0xbee5('0xe'),_0x17ee3c['id'],_0x17ee3c[_0xbee5('0xf')],_0x141878['TranscriptionJob'][_0xbee5('0x10')]));if(!_0x17ee3c[_0xbee5('0x11')]){switch(_0x141878[_0xbee5('0x12')][_0xbee5('0x10')]){case _0xbee5('0x13'):var _0xac51f5={'transcribeStatus':_0x141878[_0xbee5('0x12')][_0xbee5('0x10')],'fileUri':_0x141878[_0xbee5('0x12')][_0xbee5('0x14')][_0xbee5('0x15')]};logger[_0xbee5('0x9')](util[_0xbee5('0xa')](_0xbee5('0x16'),_0x17ee3c['id']));return rp({'uri':_0x141878[_0xbee5('0x12')]['Transcript']['TranscriptFileUri'],'json':!![]})[_0xbee5('0xd')](function(_0x48bfb5){logger[_0xbee5('0x9')](util[_0xbee5('0xa')](_0xbee5('0x17'),_0x17ee3c['id']));if(_0x48bfb5&&_0x48bfb5[_0xbee5('0x18')]&&_0x48bfb5[_0xbee5('0x18')][_0xbee5('0x19')]&&_0x48bfb5[_0xbee5('0x18')][_0xbee5('0x19')][_0xbee5('0x1a')]){_0xac51f5['fileText']='';for(var _0x5b43b3=0x0;_0x5b43b3<_0x48bfb5['results']['transcripts']['length'];_0x5b43b3++){_0xac51f5[_0xbee5('0x11')]+=_0x48bfb5[_0xbee5('0x18')][_0xbee5('0x19')][_0x5b43b3][_0xbee5('0x1b')]+'';}}return _0x17ee3c[_0xbee5('0x1c')](_0xac51f5);})[_0xbee5('0xd')](function(){logger[_0xbee5('0x9')](util['format'](_0xbee5('0x1d'),_0x17ee3c['id']));if(!_0x17ee3c[_0xbee5('0x1e')]){throw new db[(_0xbee5('0x1f'))][(_0xbee5('0x20'))](_0xbee5('0x21'));}if(!_0xcef158['sentiment']||!_0xcef158[_0xbee5('0x22')]||!_0xcef158[_0xbee5('0x23')]||!_0xcef158[_0xbee5('0x24')]||!_0xcef158[_0xbee5('0x25')]){throw new db[(_0xbee5('0x1f'))][(_0xbee5('0x20'))](_0xbee5('0x26'));}if(!_0xac51f5[_0xbee5('0x11')]){throw new Error(_0xbee5('0x27'));}if(_0xcef158['sentimentAccountId']===_0x48f771['id']){return _0x48f771;}else{return db[_0xbee5('0x28')]['findOne']({'where':{'id':_settings[_0xbee5('0x22')]}});}})['then'](function(_0x2d20cd){if(!_0x2d20cd){throw new db['Sequelize'][(_0xbee5('0x20'))]('Cloud\x20Provider\x20not\x20available');}if(!_0x2d20cd[_0xbee5('0xb')]||!_0x2d20cd[_0xbee5('0x29')]){throw new db[(_0xbee5('0x1f'))][(_0xbee5('0x20'))]('Cloud\x20Provider\x20not\x20configured');}_0x14e032=_0x2d20cd;logger[_0xbee5('0x9')](util[_0xbee5('0xa')](_0xbee5('0x2a'),_0x17ee3c['id']));return sentiment(_0x14e032[_0xbee5('0xb')],_0x14e032['data2'],_0xcef158[_0xbee5('0x23')],_0xac51f5[_0xbee5('0x11')],_0xcef158[_0xbee5('0x24')]);})[_0xbee5('0xd')](function(_0x4c3428){logger[_0xbee5('0x9')](util[_0xbee5('0xa')](_0xbee5('0x2b'),_0x17ee3c['id']));return _0x17ee3c[_0xbee5('0x1c')]({'sentiment':_0x4c3428['Sentiment'],'sPositive':_0x4c3428[_0xbee5('0x2c')]['Positive'],'sNegative':_0x4c3428[_0xbee5('0x2c')]['Negative'],'sMixed':_0x4c3428['SentimentScore']['Mixed'],'sNeutral':_0x4c3428[_0xbee5('0x2c')][_0xbee5('0x2d')]});})[_0xbee5('0xd')](function(){logger[_0xbee5('0x9')](util[_0xbee5('0xa')](_0xbee5('0x1d'),_0x17ee3c['id']));_0x532a78();});case _0xbee5('0x2e'):return _0x17ee3c[_0xbee5('0x1c')]({'transcribeStatus':'FAILED','failureReason':_0x141878[_0xbee5('0x12')]['FailureReason']})[_0xbee5('0xd')](function(){logger[_0xbee5('0x9')](util[_0xbee5('0xa')](_0xbee5('0x1d'),_0x17ee3c['id']));_0x532a78();});default:logger['info'](util[_0xbee5('0xa')]('[RECORDING:%d]\x20Transcript\x20Job\x20status\x20not\x20managed',_0x17ee3c['id']));break;}}else{return BPromise['resolve']()[_0xbee5('0xd')](function(){if(!_0x17ee3c[_0xbee5('0x1e')]){throw new db[(_0xbee5('0x1f'))][(_0xbee5('0x20'))]('Sentiment\x20Analysis\x20not\x20requested');}if(!_0xcef158[_0xbee5('0x2f')]||!_0xcef158[_0xbee5('0x22')]||!_0xcef158[_0xbee5('0x23')]||!_0xcef158[_0xbee5('0x24')]||!_0xcef158[_0xbee5('0x25')]){throw new db[(_0xbee5('0x1f'))][(_0xbee5('0x20'))](_0xbee5('0x26'));}if(!_0x17ee3c[_0xbee5('0x11')]){throw new Error(_0xbee5('0x27'));}if(_0xcef158['sentimentAccountId']===_0x48f771['id']){return _0x48f771;}else{return db[_0xbee5('0x28')][_0xbee5('0x30')]({'where':{'id':_settings['sentimentAccountId']}});}})[_0xbee5('0xd')](function(_0xebbcc5){if(!_0xebbcc5){throw new db[(_0xbee5('0x1f'))][(_0xbee5('0x20'))]('Cloud\x20Provider\x20not\x20available');}if(!_0xebbcc5['data1']||!_0xebbcc5['data2']){throw new db[(_0xbee5('0x1f'))][(_0xbee5('0x20'))](_0xbee5('0x31'));}_0x14e032=_0xebbcc5;logger[_0xbee5('0x9')](util[_0xbee5('0xa')](_0xbee5('0x2a'),_0x17ee3c['id']));return sentiment(_0x14e032[_0xbee5('0xb')],_0x14e032[_0xbee5('0x29')],_0xcef158[_0xbee5('0x23')],_0x17ee3c['fileText'],_0xcef158['language']);})[_0xbee5('0xd')](function(_0x51726a){logger[_0xbee5('0x9')](util[_0xbee5('0xa')]('[RECORDING:%d]\x20Sentiment\x20Analysis\x20available',_0x17ee3c['id']));return _0x17ee3c[_0xbee5('0x1c')]({'sentiment':_0x51726a[_0xbee5('0x32')],'sPositive':_0x51726a['SentimentScore']['Positive'],'sNegative':_0x51726a[_0xbee5('0x2c')][_0xbee5('0x33')],'sMixed':_0x51726a['SentimentScore'][_0xbee5('0x34')],'sNeutral':_0x51726a[_0xbee5('0x2c')]['Neutral'],'transcribeStatus':_0xbee5('0x13')});})[_0xbee5('0xd')](function(){logger[_0xbee5('0x9')](util[_0xbee5('0xa')](_0xbee5('0x1d'),_0x17ee3c['id']));_0x532a78();});}})[_0xbee5('0x35')](function(_0x228deb){if(_0x228deb){if(!_0x228deb['name']||_0x228deb[_0xbee5('0x36')]!==_0xbee5('0x37')){logger[_0xbee5('0x38')](util[_0xbee5('0xa')]('[RECORDING:%d]\x20Error\x20running\x20Transcribe\x20&\x20Sentiment\x20Analysis',_0x17ee3c['id']),util[_0xbee5('0x39')](_0x228deb,{'showHidden':![],'depth':null}));}}_0x532a78();});});}function checkTranscribe(){var _0xd91d62;var _0xa1736c;var _0x4aa21a;return db[_0xbee5('0x3a')][_0xbee5('0x3b')]({'where':{'transcribeStatus':'IN_PROGRESS'}})['then'](function(_0x54a570){if(!_0x54a570||!_0x54a570[_0xbee5('0x1a')]){throw new db['Sequelize'][(_0xbee5('0x20'))](_0xbee5('0x3c'));}_0xd91d62=_0x54a570;return db[_0xbee5('0x3d')][_0xbee5('0x30')]({'where':{'id':0x1}});})[_0xbee5('0xd')](function(_0x296fc8){if(!_0x296fc8){throw new db['Sequelize'][(_0xbee5('0x20'))](_0xbee5('0x3e'));}_0xa1736c=_0x296fc8;if(!_0xa1736c[_0xbee5('0x5')]||!_0xa1736c[_0xbee5('0x3f')]||!_0xa1736c['transcribeRegion']||!_0xa1736c[_0xbee5('0x24')]||!_0xa1736c['bucket']){throw new db[(_0xbee5('0x1f'))][(_0xbee5('0x20'))](_0xbee5('0x40'));}return db[_0xbee5('0x28')][_0xbee5('0x30')]({'where':{'id':_0xa1736c[_0xbee5('0x3f')]}});})[_0xbee5('0xd')](function(_0x35f1d1){if(!_0x35f1d1){throw new db[(_0xbee5('0x1f'))][(_0xbee5('0x20'))](_0xbee5('0x41'));}if(!_0x35f1d1[_0xbee5('0xb')]||!_0x35f1d1[_0xbee5('0x29')]){throw new db[(_0xbee5('0x1f'))][(_0xbee5('0x20'))]('Cloud\x20Provider\x20not\x20configured');}_0x4aa21a=_0x35f1d1;var _0xdab892=[];_0xd91d62[_0xbee5('0x42')](function(_0x128b03){_0xdab892['push'](checkTranscribeJob(_0x128b03,_0xa1736c,_0x4aa21a));});return BPromise[_0xbee5('0x43')](_0xdab892);})[_0xbee5('0x35')](function(_0x21d9c6){if(_0x21d9c6){if(!_0x21d9c6['name']||_0x21d9c6[_0xbee5('0x36')]!=='SequelizeValidationError'){logger[_0xbee5('0x38')](util['inspect'](_0x21d9c6,{'showHidden':![],'depth':null}));}}});}exports[_0xbee5('0x44')]=function(){setInterval(function(){return checkTranscribe();},0x3c*0x3e8);return checkTranscribe();};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x69cf=['catch','error','[WHATSAPP]\x20Error\x20closing\x20interactions','inspect','start','lodash','moment','ioredis','util','../../mysqldb','../logger','schedule','redis','defaults','localhost','socket.io-emitter','WhatsappInteraction','findAll','lastMsgAt','subtract','hours','length','info','[WHATSAPP]\x20Interactions\x20to\x20close:','update','format','YYYY-MM-DD\x20HH:mm:ss','join','emit','whatsappInteraction:update'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x69cf,0xf5));var _0xf69c=function(_0x1fd6f4,_0x4b8481){_0x1fd6f4=_0x1fd6f4-0x0;var _0x32b7f1=_0x69cf[_0x1fd6f4];return _0x32b7f1;};'use strict';var _=require(_0xf69c('0x0'));var moment=require(_0xf69c('0x1'));var Redis=require(_0xf69c('0x2'));var util=require(_0xf69c('0x3'));var config=require('../../config/environment');var db=require(_0xf69c('0x4'))['db'];var logger=require(_0xf69c('0x5'))(_0xf69c('0x6'));config[_0xf69c('0x7')]=_[_0xf69c('0x8')](config[_0xf69c('0x7')],{'host':_0xf69c('0x9'),'port':0x18eb});var io=require(_0xf69c('0xa'))(new Redis(config['redis']));function closeInteractions(){var _0x5d2a57=[];return db[_0xf69c('0xb')][_0xf69c('0xc')]({'raw':!![],'attributes':['id',_0xf69c('0xd')],'where':{'closed':![],'lastMsgDirection':'in','lastMsgAt':{'$lt':moment()[_0xf69c('0xe')](0x18,_0xf69c('0xf'))}}})['then'](function(_0x501d0c){if(_0x501d0c&&_0x501d0c[_0xf69c('0x10')]){_0x5d2a57=_['map'](_0x501d0c||[],'id');logger[_0xf69c('0x11')](_0xf69c('0x12'),_0x5d2a57['join']());return db[_0xf69c('0xb')][_0xf69c('0x13')]({'closeReason':'system','disposition':'timeout','closed':!![],'closedAt':moment()[_0xf69c('0x14')](_0xf69c('0x15'))},{'where':{'id':_0x5d2a57}});}})['then'](function(){if(_0x5d2a57&&_0x5d2a57['length']){logger[_0xf69c('0x11')]('[WHATSAPP]\x20Sending\x20updates\x20for\x20interactions:',_0x5d2a57[_0xf69c('0x16')]());for(var _0x18bce8=0x0;_0x18bce8<_0x5d2a57[_0xf69c('0x10')];_0x18bce8++){io[_0xf69c('0x17')](_0xf69c('0x18'),{'id':_0x5d2a57[_0x18bce8],'closed':!![]});}}})[_0xf69c('0x19')](function(_0x487e99){logger[_0xf69c('0x1a')](_0xf69c('0x1b'),_0x487e99?util[_0xf69c('0x1c')](_0x487e99,{'showHidden':![],'depth':null}):'');});}exports[_0xf69c('0x1d')]=function(){setInterval(function(){return closeInteractions();},0x3c*0x3e8);return closeInteractions();};
\ No newline at end of file
+var _0x1d76=['[WHATSAPP]\x20Interactions\x20to\x20close:','join','WhatsappInteraction','timeout','format','YYYY-MM-DD\x20HH:mm:ss','emit','whatsappInteraction:update','error','inspect','lodash','moment','../../config/environment','../../mysqldb','../logger','schedule','redis','defaults','localhost','socket.io-emitter','lastMsgAt','subtract','then','length','map','info'];(function(_0x322522,_0x4db288){var _0x293bcf=function(_0xf108b8){while(--_0xf108b8){_0x322522['push'](_0x322522['shift']());}};_0x293bcf(++_0x4db288);}(_0x1d76,0x1c4));var _0x61d7=function(_0x19bfff,_0x3a02e2){_0x19bfff=_0x19bfff-0x0;var _0x4b54e9=_0x1d76[_0x19bfff];return _0x4b54e9;};'use strict';var _=require(_0x61d7('0x0'));var moment=require(_0x61d7('0x1'));var Redis=require('ioredis');var util=require('util');var config=require(_0x61d7('0x2'));var db=require(_0x61d7('0x3'))['db'];var logger=require(_0x61d7('0x4'))(_0x61d7('0x5'));config[_0x61d7('0x6')]=_[_0x61d7('0x7')](config[_0x61d7('0x6')],{'host':_0x61d7('0x8'),'port':0x18eb});var io=require(_0x61d7('0x9'))(new Redis(config[_0x61d7('0x6')]));function closeInteractions(){var _0x4e5cc8=[];return db['WhatsappInteraction']['findAll']({'raw':!![],'attributes':['id',_0x61d7('0xa')],'where':{'closed':![],'lastMsgDirection':'in','lastMsgAt':{'$lt':moment()[_0x61d7('0xb')](0x18,'hours')}}})[_0x61d7('0xc')](function(_0x196dbd){if(_0x196dbd&&_0x196dbd[_0x61d7('0xd')]){_0x4e5cc8=_[_0x61d7('0xe')](_0x196dbd||[],'id');logger[_0x61d7('0xf')](_0x61d7('0x10'),_0x4e5cc8[_0x61d7('0x11')]());return db[_0x61d7('0x12')]['update']({'closeReason':'system','disposition':_0x61d7('0x13'),'closed':!![],'closedAt':moment()[_0x61d7('0x14')](_0x61d7('0x15'))},{'where':{'id':_0x4e5cc8}});}})['then'](function(){if(_0x4e5cc8&&_0x4e5cc8[_0x61d7('0xd')]){logger[_0x61d7('0xf')]('[WHATSAPP]\x20Sending\x20updates\x20for\x20interactions:',_0x4e5cc8[_0x61d7('0x11')]());for(var _0x316b0b=0x0;_0x316b0b<_0x4e5cc8['length'];_0x316b0b++){io[_0x61d7('0x16')](_0x61d7('0x17'),{'id':_0x4e5cc8[_0x316b0b],'closed':!![]});}}})['catch'](function(_0x2f74cb){logger[_0x61d7('0x18')]('[WHATSAPP]\x20Error\x20closing\x20interactions',_0x2f74cb?util[_0x61d7('0x19')](_0x2f74cb,{'showHidden':![],'depth':null}):'');});}exports['start']=function(){setInterval(function(){return closeInteractions();},0x3c*0x3e8);return closeInteractions();};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc8a6=['finished\x20populating','contacts1','CmHopper','hopper1','contacts2','util','../mysqldb','push','Innocenzo','@xcally.com','now','Biondo','innocenzo.biondo','CmContact','bulkCreate','then','log'];(function(_0x47cd84,_0x3056b9){var _0x800299=function(_0x7a34ba){while(--_0x7a34ba){_0x47cd84['push'](_0x47cd84['shift']());}};_0x800299(++_0x3056b9);}(_0xc8a6,0x1e1));var _0x6c8a=function(_0x23975,_0x48b66d){_0x23975=_0x23975-0x0;var _0x3bf49a=_0xc8a6[_0x23975];return _0x3bf49a;};'use strict';var util=require(_0x6c8a('0x0'));var db=require(_0x6c8a('0x1'))['db'];var contacts=[];var hopper=[];var contacts2=[];var hopper2=[];for(var i=0x1;i<=0x4b0;i+=0x1){contacts[_0x6c8a('0x2')]({'id':i,'firstName':_0x6c8a('0x3')+i,'lastName':'Biondo'+i,'phone':0xf879fb460+i,'email':'innocenzo.biondo'+i+_0x6c8a('0x4')});}for(var i=0x1;i<=0x4b0;i+=0x1){hopper[_0x6c8a('0x2')]({'id':i,'active':![],'scheduledat':Date[_0x6c8a('0x5')](),'countbusyretry':0x0,'countcongestionretry':0x0,'countnoanswerretry':0x0,'ContactId':i,'ListId':0x1,'UserId':0x1,'VoiceQueueId':0x3fd,'createdAt':Date[_0x6c8a('0x5')](),'updatedAt':Date[_0x6c8a('0x5')]()});}for(var i=0x4b1;i<=0x960;i+=0x1){contacts2[_0x6c8a('0x2')]({'id':i,'firstName':'Innocenzo'+i,'lastName':_0x6c8a('0x6')+i,'phone':0xf879fb460+i,'email':_0x6c8a('0x7')+i+'@xcally.com'});}for(var i=0x4b1;i<=0x960;i+=0x1){hopper2[_0x6c8a('0x2')]({'id':i,'active':![],'scheduledat':Date[_0x6c8a('0x5')](),'countbusyretry':0x0,'countcongestionretry':0x0,'countnoanswerretry':0x0,'ContactId':i,'ListId':0x1,'UserId':0x1,'VoiceQueueId':0x3fd,'createdAt':Date['now'](),'updatedAt':Date['now']()});}db[_0x6c8a('0x8')]['destroy']({'where':{}})['then'](function(){return db[_0x6c8a('0x8')][_0x6c8a('0x9')](contacts);})[_0x6c8a('0xa')](function(){console[_0x6c8a('0xb')](_0x6c8a('0xc'),_0x6c8a('0xd'));return db[_0x6c8a('0xe')]['destroy']({'where':{}});})[_0x6c8a('0xa')](function(){return db[_0x6c8a('0xe')][_0x6c8a('0x9')](hopper);})[_0x6c8a('0xa')](function(){console[_0x6c8a('0xb')](_0x6c8a('0xc'),_0x6c8a('0xf'));return db[_0x6c8a('0x8')][_0x6c8a('0x9')](contacts2);})['then'](function(){console[_0x6c8a('0xb')](_0x6c8a('0xc'),_0x6c8a('0x10'));return db[_0x6c8a('0xe')][_0x6c8a('0x9')](hopper2);})['then'](function(){console[_0x6c8a('0xb')]('finished\x20populating','hopper2');})['catch'](function(_0x34036a){console[_0x6c8a('0xb')](_0x34036a);});
\ No newline at end of file
+var _0xd6dc=['then','log','finished\x20populating','contacts1','CmHopper','bulkCreate','contacts2','hopper2','catch','push','Innocenzo','innocenzo.biondo','@xcally.com','now','Biondo','CmContact','destroy'];(function(_0x5e1173,_0x100d4b){var _0x5c6542=function(_0x85f414){while(--_0x85f414){_0x5e1173['push'](_0x5e1173['shift']());}};_0x5c6542(++_0x100d4b);}(_0xd6dc,0x16e));var _0xcd6d=function(_0x4223db,_0x1991ba){_0x4223db=_0x4223db-0x0;var _0x3aff88=_0xd6dc[_0x4223db];return _0x3aff88;};'use strict';var util=require('util');var db=require('../mysqldb')['db'];var contacts=[];var hopper=[];var contacts2=[];var hopper2=[];for(var i=0x1;i<=0x4b0;i+=0x1){contacts[_0xcd6d('0x0')]({'id':i,'firstName':_0xcd6d('0x1')+i,'lastName':'Biondo'+i,'phone':0xf879fb460+i,'email':_0xcd6d('0x2')+i+_0xcd6d('0x3')});}for(var i=0x1;i<=0x4b0;i+=0x1){hopper['push']({'id':i,'active':![],'scheduledat':Date['now'](),'countbusyretry':0x0,'countcongestionretry':0x0,'countnoanswerretry':0x0,'ContactId':i,'ListId':0x1,'UserId':0x1,'VoiceQueueId':0x3fd,'createdAt':Date['now'](),'updatedAt':Date[_0xcd6d('0x4')]()});}for(var i=0x4b1;i<=0x960;i+=0x1){contacts2[_0xcd6d('0x0')]({'id':i,'firstName':_0xcd6d('0x1')+i,'lastName':_0xcd6d('0x5')+i,'phone':0xf879fb460+i,'email':_0xcd6d('0x2')+i+_0xcd6d('0x3')});}for(var i=0x4b1;i<=0x960;i+=0x1){hopper2[_0xcd6d('0x0')]({'id':i,'active':![],'scheduledat':Date['now'](),'countbusyretry':0x0,'countcongestionretry':0x0,'countnoanswerretry':0x0,'ContactId':i,'ListId':0x1,'UserId':0x1,'VoiceQueueId':0x3fd,'createdAt':Date[_0xcd6d('0x4')](),'updatedAt':Date['now']()});}db[_0xcd6d('0x6')][_0xcd6d('0x7')]({'where':{}})[_0xcd6d('0x8')](function(){return db[_0xcd6d('0x6')]['bulkCreate'](contacts);})['then'](function(){console[_0xcd6d('0x9')](_0xcd6d('0xa'),_0xcd6d('0xb'));return db[_0xcd6d('0xc')][_0xcd6d('0x7')]({'where':{}});})['then'](function(){return db[_0xcd6d('0xc')][_0xcd6d('0xd')](hopper);})['then'](function(){console[_0xcd6d('0x9')](_0xcd6d('0xa'),'hopper1');return db[_0xcd6d('0x6')]['bulkCreate'](contacts2);})[_0xcd6d('0x8')](function(){console[_0xcd6d('0x9')](_0xcd6d('0xa'),_0xcd6d('0xe'));return db['CmHopper']['bulkCreate'](hopper2);})[_0xcd6d('0x8')](function(){console[_0xcd6d('0x9')](_0xcd6d('0xa'),_0xcd6d('0xf'));})[_0xcd6d('0x10')](function(_0x1955a4){console[_0xcd6d('0x9')](_0x1955a4);});
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1eb1=['util','push','format','%s%s','agent','%s%s@xcally.com','password','friend','wss','ulaw','yes','/etc/pki/tls/certs/motion.crt','/etc/pki/tls/private/motion.key','actpass','\x22%s\x22\x20<%s>','User','then','log','add\x20user'];(function(_0x1e2080,_0x53283b){var _0x260111=function(_0x15da5e){while(--_0x15da5e){_0x1e2080['push'](_0x1e2080['shift']());}};_0x260111(++_0x53283b);}(_0x1eb1,0x17c));var _0x11eb=function(_0x4f3438,_0x382b43){_0x4f3438=_0x4f3438-0x0;var _0x3de714=_0x1eb1[_0x4f3438];return _0x3de714;};'use strict';var util=require(_0x11eb('0x0'));var db=require('../mysqldb')['db'];var users=[];for(var i=0x1;i<=0xc8;i+=0x1){users[_0x11eb('0x1')]({'name':util[_0x11eb('0x2')](_0x11eb('0x3'),_0x11eb('0x4'),i),'fullname':util['format'](_0x11eb('0x3'),_0x11eb('0x4'),i),'email':util[_0x11eb('0x2')](_0x11eb('0x5'),_0x11eb('0x4'),i),'role':'agent','password':_0x11eb('0x6'),'internal':0xfa0+i,'type':_0x11eb('0x7'),'transport':['udp','ws',_0x11eb('0x8')],'disallow':['all'],'allow':[_0x11eb('0x9')],'defaultuser':util[_0x11eb('0x2')]('%s%s',_0x11eb('0x4'),i),'encryption':_0x11eb('0xa'),'avpf':_0x11eb('0xa'),'force_avp':'yes','icesupport':_0x11eb('0xa'),'dtlsenable':_0x11eb('0xa'),'dtlsverify':'no','dtlscertfile':_0x11eb('0xb'),'dtlsprivatekey':_0x11eb('0xc'),'dtlssetup':_0x11eb('0xd'),'callerid':util['format'](_0x11eb('0xe'),util[_0x11eb('0x2')](_0x11eb('0x3'),_0x11eb('0x4'),i),0xfa0+i)});}db[_0x11eb('0xf')]['bulkCreate'](users)[_0x11eb('0x10')](function(){console[_0x11eb('0x11')](_0x11eb('0x12'));})['catch'](function(_0x2fc495){console['log'](_0x2fc495);});
\ No newline at end of file
+var _0x63a0=['log','add\x20user','catch','util','../mysqldb','format','%s%s','agent','%s%s@xcally.com','password','friend','udp','wss','all','yes','/etc/pki/tls/certs/motion.crt','/etc/pki/tls/private/motion.key','actpass','\x22%s\x22\x20<%s>','User'];(function(_0x4417a6,_0x326366){var _0x56efb3=function(_0x15c4d0){while(--_0x15c4d0){_0x4417a6['push'](_0x4417a6['shift']());}};_0x56efb3(++_0x326366);}(_0x63a0,0xcb));var _0x063a=function(_0xa464c9,_0x7c86d8){_0xa464c9=_0xa464c9-0x0;var _0x3d73c4=_0x63a0[_0xa464c9];return _0x3d73c4;};'use strict';var util=require(_0x063a('0x0'));var db=require(_0x063a('0x1'))['db'];var users=[];for(var i=0x1;i<=0xc8;i+=0x1){users['push']({'name':util[_0x063a('0x2')](_0x063a('0x3'),_0x063a('0x4'),i),'fullname':util['format'](_0x063a('0x3'),_0x063a('0x4'),i),'email':util[_0x063a('0x2')](_0x063a('0x5'),_0x063a('0x4'),i),'role':_0x063a('0x4'),'password':_0x063a('0x6'),'internal':0xfa0+i,'type':_0x063a('0x7'),'transport':[_0x063a('0x8'),'ws',_0x063a('0x9')],'disallow':[_0x063a('0xa')],'allow':['ulaw'],'defaultuser':util[_0x063a('0x2')](_0x063a('0x3'),_0x063a('0x4'),i),'encryption':_0x063a('0xb'),'avpf':_0x063a('0xb'),'force_avp':_0x063a('0xb'),'icesupport':'yes','dtlsenable':_0x063a('0xb'),'dtlsverify':'no','dtlscertfile':_0x063a('0xc'),'dtlsprivatekey':_0x063a('0xd'),'dtlssetup':_0x063a('0xe'),'callerid':util[_0x063a('0x2')](_0x063a('0xf'),util[_0x063a('0x2')](_0x063a('0x3'),'agent',i),0xfa0+i)});}db[_0x063a('0x10')]['bulkCreate'](users)['then'](function(){console[_0x063a('0x11')](_0x063a('0x12'));})[_0x063a('0x13')](function(_0x5ac8ac){console[_0x063a('0x11')](_0x5ac8ac);});
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa57e=['bluebird','../mysqldb','./environment','name','Agents','User','role','agent','telephone','ivr','UserProfileSection','findOne','then','autoAssociation','VoiceQueues','ChatQueues','FaxQueues','SmsQueues','MailQueues','WhatsappQueues','findAll','Telephones','Trunks','IvrCampaigns','UserProfileResource','map','resourceId','where','Campaign','type','format','%s:queue:%s','length','user:%s','query','find','handshake','ChatInteraction','MailInteraction','MailInteractions','FaxInteraction','FaxInteractions','SmsInteractions','OpenchannelInteraction','OpenchannelInteractions','WhatsappInteraction','WhatsappInteractions','admin','voice:inbound','include','push','MailQueue','OpenchannelQueue','WhatsappQueue','Trunk','user','userProfileId','VoiceQueue','FaxQueue','OpenchannelQueues','voice:outbound','getChatQueues','getFaxQueues','getSmsQueues','getMailQueues','getOpenchannelQueues','getWhatsappQueues','all','chat','fax','mail','openchannel','whatsapp','telephone:%s','trunk:%s','leave','ChatInteractions','user_has_chat_interactions:remove','removeMailInteractions','emit','user_has_mail_interactions:remove','removeFaxInteractions','removeSmsInteractions','removeOpenchannelInteractions','user_has_openchannel_interactions:remove','removeWhatsappInteractions','user_has_whatsapp_interactions:remove','catch','log','join','default','connection','setMaxListeners','address','request','remoteAddress','remotePort','connectedAt','SocketIO\x20','nsp','disconnect','DISCONNECTED','CONNECTED','lodash','util'];(function(_0x3fc807,_0x16ee12){var _0x2a4b4d=function(_0x2101f4){while(--_0x2101f4){_0x3fc807['push'](_0x3fc807['shift']());}};_0x2a4b4d(++_0x16ee12);}(_0xa57e,0x67));var _0xea57=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xa57e[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0xea57('0x0'));var util=require(_0xea57('0x1'));var BPromise=require(_0xea57('0x2'));var db=require(_0xea57('0x3'))['db'];var config=require(_0xea57('0x4'));var queryQueues={'attributes':['id',_0xea57('0x5')],'include':[{'as':_0xea57('0x6'),'model':db[_0xea57('0x7')],'attributes':['id',_0xea57('0x5'),_0xea57('0x8')],'raw':!![],'where':{'role':_0xea57('0x9')},'required':![]}]};var queryTelephones={'raw':!![],'attributes':['id',_0xea57('0x5')],'where':{'role':_0xea57('0xa')}};var queryTrunks={'raw':!![],'attributes':['id','name']};var queryAgents={'raw':!![],'attributes':['id',_0xea57('0x5')],'where':{'role':_0xea57('0x9')}};var queryCampaigns={'raw':!![],'attributes':['id',_0xea57('0x5'),'type'],'where':{'type':_0xea57('0xb')}};function getAssociatedResources(_0x332016,_0x107deb,_0x571ced){return db[_0xea57('0xc')][_0xea57('0xd')]({'where':{'name':_0x332016,'userProfileId':_0x107deb},'raw':!![]})[_0xea57('0xe')](function(_0x3b0bd9){if(_0x3b0bd9){if(_0x3b0bd9[_0xea57('0xf')]){switch(_0x332016){case _0xea57('0x10'):case _0xea57('0x11'):case _0xea57('0x12'):case _0xea57('0x13'):case _0xea57('0x14'):case'OpenchannelQueues':case _0xea57('0x15'):return db[_0x571ced][_0xea57('0x16')](queryQueues);case _0xea57('0x17'):return db[_0x571ced][_0xea57('0x16')](queryTelephones);case _0xea57('0x18'):return db[_0x571ced][_0xea57('0x16')](queryTrunks);case _0xea57('0x19'):return db[_0x571ced]['findAll'](queryCampaigns);}}else{return db[_0xea57('0x1a')][_0xea57('0x16')]({'attributes':['resourceId'],'where':{'sectionId':_0x3b0bd9['id']},'raw':!![]})[_0xea57('0xe')](function(_0x1cc12b){if(_0x1cc12b){var _0x3a34f7={'where':{'id':_[_0xea57('0x1b')](_0x1cc12b,_0xea57('0x1c'))},'raw':!![]};switch(_0x571ced){case _0xea57('0x7'):_0x3a34f7[_0xea57('0x1d')][_0xea57('0x8')]=_0xea57('0xa');break;case _0xea57('0x1e'):_0x3a34f7[_0xea57('0x1d')][_0xea57('0x1f')]=_0xea57('0xb');break;}return db[_0x571ced]['findAll'](_0x3a34f7);}else{return[];}});}}else{return[];}})[_0xea57('0xe')](function(_0x333cb9){return _0x333cb9;});}function joinOrLeaveQueues(_0x3abd95,_0x5e9a22,_0x541b40,_0x1514b7){_0x3abd95[_0x5e9a22](util[_0xea57('0x20')](_0xea57('0x21'),_0x541b40,_0x1514b7[_0xea57('0x5')]));if(_0x1514b7[_0xea57('0x6')]){for(var _0x3a6051=0x0;_0x3a6051<_0x1514b7[_0xea57('0x6')][_0xea57('0x22')];_0x3a6051+=0x1){_0x3abd95[_0x5e9a22](util['format'](_0xea57('0x23'),_0x1514b7[_0xea57('0x6')][_0x3a6051][_0xea57('0x5')]));}}}function joinOrLeave(_0x1d154f,_0x2bad6d,_0x5e534b){var _0x3e724f;if(_0x1d154f['handshake'][_0xea57('0x24')]['id']){db[_0xea57('0x7')][_0xea57('0x25')]({'attributes':['id',_0xea57('0x5'),'role','userProfileId'],'where':{'id':_0x1d154f[_0xea57('0x26')][_0xea57('0x24')]['id']},'include':[{'model':db[_0xea57('0x27')],'as':'ChatInteractions','attributes':['id'],'raw':!![]},{'model':db[_0xea57('0x28')],'as':_0xea57('0x29'),'attributes':['id'],'raw':!![]},{'model':db[_0xea57('0x2a')],'as':_0xea57('0x2b'),'attributes':['id'],'raw':!![]},{'model':db['SmsInteraction'],'as':_0xea57('0x2c'),'attributes':['id'],'raw':!![]},{'model':db[_0xea57('0x2d')],'as':_0xea57('0x2e'),'attributes':['id'],'raw':!![]},{'model':db[_0xea57('0x2f')],'as':_0xea57('0x30'),'attributes':['id'],'raw':!![]}]})['then'](function(_0x38c1a7){if(_0x38c1a7){_0x3e724f=_0x38c1a7;_0x1d154f[_0x2bad6d](util[_0xea57('0x20')](_0xea57('0x23'),_0x38c1a7[_0xea57('0x5')]));var _0x1b7528=[];switch(_0x38c1a7['role']){case _0xea57('0x31'):_0x1d154f[_0x2bad6d](_0xea57('0x32'));_0x1d154f[_0x2bad6d]('voice:outbound');if(queryQueues['hasOwnProperty'](_0xea57('0x33'))){delete queryQueues['include'];}_0x1b7528[_0xea57('0x34')](db['VoiceQueue'][_0xea57('0x16')](queryQueues));_0x1b7528['push'](db['ChatQueue']['findAll'](queryQueues));_0x1b7528[_0xea57('0x34')](db['FaxQueue'][_0xea57('0x16')](queryQueues));_0x1b7528['push'](db['SmsQueue']['findAll'](queryQueues));_0x1b7528['push'](db[_0xea57('0x35')][_0xea57('0x16')](queryQueues));_0x1b7528['push'](db[_0xea57('0x36')][_0xea57('0x16')](queryQueues));_0x1b7528[_0xea57('0x34')](db[_0xea57('0x37')][_0xea57('0x16')](queryQueues));_0x1b7528[_0xea57('0x34')](db['User'][_0xea57('0x16')](queryTelephones));_0x1b7528['push'](db[_0xea57('0x38')]['findAll'](queryTrunks));_0x1b7528[_0xea57('0x34')](db[_0xea57('0x1e')]['findAll'](queryCampaigns));_0x1b7528[_0xea57('0x34')](db[_0xea57('0x7')][_0xea57('0x16')](queryAgents));break;case _0xea57('0x39'):_0x1d154f[_0x2bad6d](_0xea57('0x32'));_0x1d154f[_0x2bad6d]('voice:outbound');_0x1b7528[_0xea57('0x34')](getAssociatedResources(_0xea57('0x10'),_0x38c1a7[_0xea57('0x3a')],_0xea57('0x3b')));_0x1b7528[_0xea57('0x34')](getAssociatedResources(_0xea57('0x11'),_0x38c1a7[_0xea57('0x3a')],'ChatQueue'));_0x1b7528[_0xea57('0x34')](getAssociatedResources(_0xea57('0x12'),_0x38c1a7[_0xea57('0x3a')],_0xea57('0x3c')));_0x1b7528[_0xea57('0x34')](getAssociatedResources(_0xea57('0x13'),_0x38c1a7[_0xea57('0x3a')],'SmsQueue'));_0x1b7528[_0xea57('0x34')](getAssociatedResources(_0xea57('0x14'),_0x38c1a7[_0xea57('0x3a')],'MailQueue'));_0x1b7528[_0xea57('0x34')](getAssociatedResources(_0xea57('0x3d'),_0x38c1a7[_0xea57('0x3a')],_0xea57('0x36')));_0x1b7528[_0xea57('0x34')](getAssociatedResources(_0xea57('0x15'),_0x38c1a7[_0xea57('0x3a')],_0xea57('0x37')));_0x1b7528[_0xea57('0x34')](getAssociatedResources('Telephones',_0x38c1a7[_0xea57('0x3a')],_0xea57('0x7')));_0x1b7528[_0xea57('0x34')](getAssociatedResources(_0xea57('0x18'),_0x38c1a7['userProfileId'],'Trunk'));_0x1b7528['push'](getAssociatedResources(_0xea57('0x19'),_0x38c1a7[_0xea57('0x3a')],'Campaign'));_0x1b7528[_0xea57('0x34')](db[_0xea57('0x7')][_0xea57('0x16')](queryAgents));break;case _0xea57('0x9'):_0x1d154f[_0x2bad6d](_0xea57('0x32'));_0x1d154f[_0x2bad6d](_0xea57('0x3e'));_0x1b7528[_0xea57('0x34')](_0x38c1a7['getVoiceQueues']({'attributes':['id','name']}));_0x1b7528[_0xea57('0x34')](_0x38c1a7[_0xea57('0x3f')]({'attributes':['id','name']}));_0x1b7528['push'](_0x38c1a7[_0xea57('0x40')]({'attributes':['id',_0xea57('0x5')]}));_0x1b7528[_0xea57('0x34')](_0x38c1a7[_0xea57('0x41')]({'attributes':['id',_0xea57('0x5')]}));_0x1b7528[_0xea57('0x34')](_0x38c1a7[_0xea57('0x42')]({'attributes':['id','name']}));_0x1b7528[_0xea57('0x34')](_0x38c1a7[_0xea57('0x43')]({'attributes':['id',_0xea57('0x5')]}));_0x1b7528[_0xea57('0x34')](_0x38c1a7[_0xea57('0x44')]({'attributes':['id',_0xea57('0x5')]}));break;}return BPromise[_0xea57('0x45')](_0x1b7528);}})[_0xea57('0xe')](function(_0x53f7d6){if(_0x53f7d6&&_0x53f7d6['length']){for(var _0x1f4011=0x0;_0x1f4011<_0x53f7d6[_0xea57('0x22')];_0x1f4011+=0x1){for(var _0x348539=0x0;_0x348539<_0x53f7d6[_0x1f4011]['length'];_0x348539+=0x1){switch(_0x1f4011){case 0x0:joinOrLeaveQueues(_0x1d154f,_0x2bad6d,'voice',_0x53f7d6[_0x1f4011][_0x348539]);break;case 0x1:joinOrLeaveQueues(_0x1d154f,_0x2bad6d,_0xea57('0x46'),_0x53f7d6[_0x1f4011][_0x348539]);break;case 0x2:joinOrLeaveQueues(_0x1d154f,_0x2bad6d,_0xea57('0x47'),_0x53f7d6[_0x1f4011][_0x348539]);break;case 0x3:joinOrLeaveQueues(_0x1d154f,_0x2bad6d,'sms',_0x53f7d6[_0x1f4011][_0x348539]);break;case 0x4:joinOrLeaveQueues(_0x1d154f,_0x2bad6d,_0xea57('0x48'),_0x53f7d6[_0x1f4011][_0x348539]);break;case 0x5:joinOrLeaveQueues(_0x1d154f,_0x2bad6d,_0xea57('0x49'),_0x53f7d6[_0x1f4011][_0x348539]);break;case 0x6:joinOrLeaveQueues(_0x1d154f,_0x2bad6d,_0xea57('0x4a'),_0x53f7d6[_0x1f4011][_0x348539]);break;case 0x7:if(_0x3e724f[_0xea57('0x8')]!==_0xea57('0x9'))_0x1d154f[_0x2bad6d](util[_0xea57('0x20')](_0xea57('0x4b'),_0x53f7d6[_0x1f4011][_0x348539][_0xea57('0x5')]));break;case 0x8:if(_0x3e724f['role']!==_0xea57('0x9'))_0x1d154f[_0x2bad6d](util['format'](_0xea57('0x4c'),_0x53f7d6[_0x1f4011][_0x348539]['name']));break;case 0x9:if(_0x3e724f[_0xea57('0x8')]!==_0xea57('0x9'))_0x1d154f[_0x2bad6d](util[_0xea57('0x20')]('campaign:%s:%s',_0x53f7d6[_0x1f4011][_0x348539]['type'],_0x53f7d6[_0x1f4011][_0x348539][_0xea57('0x5')]));break;case 0xa:_0x1d154f[_0x2bad6d](util[_0xea57('0x20')]('user:%s',_0x53f7d6[_0x1f4011][_0x348539][_0xea57('0x5')]));break;}}}}})[_0xea57('0xe')](function(){if(_0x2bad6d===_0xea57('0x4d')){var _0x2e29a0=_[_0xea57('0x1b')](_0x3e724f[_0xea57('0x4e')],'id');return _0x3e724f['removeChatInteractions'](_0x2e29a0)['then'](function(){for(var _0x3d6129=0x0;_0x3d6129<_0x2e29a0[_0xea57('0x22')];_0x3d6129+=0x1){_0x5e534b['emit'](_0xea57('0x4f'),{'ChatInteractionId':Number(_0x2e29a0[_0x3d6129]),'UserId':Number(_0x3e724f['id'])});}});}})[_0xea57('0xe')](function(){if(_0x2bad6d===_0xea57('0x4d')){var _0x39b421=_[_0xea57('0x1b')](_0x3e724f[_0xea57('0x29')],'id');return _0x3e724f[_0xea57('0x50')](_0x39b421)[_0xea57('0xe')](function(){for(var _0x12a496=0x0;_0x12a496<_0x39b421[_0xea57('0x22')];_0x12a496+=0x1){_0x5e534b[_0xea57('0x51')](_0xea57('0x52'),{'MailInteractionId':Number(_0x39b421[_0x12a496]),'UserId':Number(_0x3e724f['id'])});}});}})[_0xea57('0xe')](function(){if(_0x2bad6d===_0xea57('0x4d')){var _0x2799c0=_[_0xea57('0x1b')](_0x3e724f[_0xea57('0x2b')],'id');return _0x3e724f[_0xea57('0x53')](_0x2799c0)[_0xea57('0xe')](function(){for(var _0x1a34d6=0x0;_0x1a34d6<_0x2799c0[_0xea57('0x22')];_0x1a34d6+=0x1){_0x5e534b['emit']('user_has_fax_interactions:remove',{'FaxInteractionId':Number(_0x2799c0[_0x1a34d6]),'UserId':Number(_0x3e724f['id'])});}});}})[_0xea57('0xe')](function(){if(_0x2bad6d===_0xea57('0x4d')){var _0x5a2633=_['map'](_0x3e724f[_0xea57('0x2c')],'id');return _0x3e724f[_0xea57('0x54')](_0x5a2633)['then'](function(){for(var _0x2afd87=0x0;_0x2afd87<_0x5a2633[_0xea57('0x22')];_0x2afd87+=0x1){_0x5e534b['emit']('user_has_sms_interactions:remove',{'SmsInteractionId':Number(_0x5a2633[_0x2afd87]),'UserId':Number(_0x3e724f['id'])});}});}})[_0xea57('0xe')](function(){if(_0x2bad6d==='leave'){var _0x1acf0d=_[_0xea57('0x1b')](_0x3e724f[_0xea57('0x2e')],'id');return _0x3e724f[_0xea57('0x55')](_0x1acf0d)[_0xea57('0xe')](function(){for(var _0x14158d=0x0;_0x14158d<_0x1acf0d[_0xea57('0x22')];_0x14158d+=0x1){_0x5e534b[_0xea57('0x51')](_0xea57('0x56'),{'OpenchannelInteractionId':Number(_0x1acf0d[_0x14158d]),'UserId':Number(_0x3e724f['id'])});}});}})[_0xea57('0xe')](function(){if(_0x2bad6d==='leave'){var _0x5a1f76=_[_0xea57('0x1b')](_0x3e724f[_0xea57('0x30')],'id');return _0x3e724f[_0xea57('0x57')](_0x5a1f76)[_0xea57('0xe')](function(){for(var _0x1ce435=0x0;_0x1ce435<_0x5a1f76['length'];_0x1ce435+=0x1){_0x5e534b['emit'](_0xea57('0x58'),{'WhatsappInteractionId':Number(_0x5a1f76[_0x1ce435]),'UserId':Number(_0x3e724f['id'])});}});}})[_0xea57('0x59')](function(_0x44c086){_0x1d154f[_0xea57('0x5a')](_0x44c086);});}}function onDisconnect(_0x123fa6,_0x4f8172){joinOrLeave(_0x123fa6,_0xea57('0x4d'),_0x4f8172);}function onConnect(_0x38956e){joinOrLeave(_0x38956e,_0xea57('0x5b'));}exports[_0xea57('0x5c')]=function(_0x2aa854){_0x2aa854['on'](_0xea57('0x5d'),function(_0x423372){_0x423372[_0xea57('0x5e')](0x0);_0x423372[_0xea57('0x5f')]=_0x423372[_0xea57('0x60')][_0xea57('0x5d')][_0xea57('0x61')]+':'+_0x423372['request'][_0xea57('0x5d')][_0xea57('0x62')];_0x423372[_0xea57('0x63')]=new Date();_0x423372[_0xea57('0x5a')]=function(_0x55dfd4){console['log'](_0xea57('0x64')+_0x423372[_0xea57('0x65')][_0xea57('0x5')]+'['+_0x423372['address']+']',_0x55dfd4);};_0x423372['on'](_0xea57('0x66'),function(){onDisconnect(_0x423372,_0x2aa854);_0x423372[_0xea57('0x5a')](_0xea57('0x67'));});onConnect(_0x423372);_0x423372['log'](_0xea57('0x68'));});};
\ No newline at end of file
+var _0x26c2=['util','bluebird','../mysqldb','./environment','Agents','name','role','agent','telephone','ivr','UserProfileSection','findOne','then','autoAssociation','VoiceQueues','SmsQueues','MailQueues','OpenchannelQueues','WhatsappQueues','findAll','Trunks','IvrCampaigns','resourceId','map','User','where','Campaign','type','format','%s:queue:%s','length','user:%s','handshake','find','userProfileId','query','ChatInteraction','ChatInteractions','MailInteraction','OpenchannelInteraction','OpenchannelInteractions','WhatsappInteractions','voice:inbound','voice:outbound','hasOwnProperty','include','push','VoiceQueue','ChatQueue','FaxQueue','MailQueue','OpenchannelQueue','user','ChatQueues','WhatsappQueue','Trunk','getVoiceQueues','getChatQueues','getFaxQueues','getSmsQueues','getMailQueues','getOpenchannelQueues','all','voice','chat','fax','openchannel','whatsapp','telephone:%s','trunk:%s','leave','emit','user_has_chat_interactions:remove','user_has_mail_interactions:remove','removeFaxInteractions','user_has_fax_interactions:remove','SmsInteractions','removeSmsInteractions','removeOpenchannelInteractions','removeWhatsappInteractions','user_has_whatsapp_interactions:remove','catch','default','connection','setMaxListeners','address','request','remoteAddress','remotePort','log','SocketIO\x20','nsp','disconnect','DISCONNECTED'];(function(_0x4ae024,_0x2e3bfc){var _0x1b0f81=function(_0x52417d){while(--_0x52417d){_0x4ae024['push'](_0x4ae024['shift']());}};_0x1b0f81(++_0x2e3bfc);}(_0x26c2,0x1d6));var _0x226c=function(_0x3234a1,_0x5edc97){_0x3234a1=_0x3234a1-0x0;var _0xf6782f=_0x26c2[_0x3234a1];return _0xf6782f;};'use strict';var _=require('lodash');var util=require(_0x226c('0x0'));var BPromise=require(_0x226c('0x1'));var db=require(_0x226c('0x2'))['db'];var config=require(_0x226c('0x3'));var queryQueues={'attributes':['id','name'],'include':[{'as':_0x226c('0x4'),'model':db['User'],'attributes':['id',_0x226c('0x5'),_0x226c('0x6')],'raw':!![],'where':{'role':_0x226c('0x7')},'required':![]}]};var queryTelephones={'raw':!![],'attributes':['id',_0x226c('0x5')],'where':{'role':_0x226c('0x8')}};var queryTrunks={'raw':!![],'attributes':['id',_0x226c('0x5')]};var queryAgents={'raw':!![],'attributes':['id',_0x226c('0x5')],'where':{'role':'agent'}};var queryCampaigns={'raw':!![],'attributes':['id','name','type'],'where':{'type':_0x226c('0x9')}};function getAssociatedResources(_0x1677ee,_0x5a8a66,_0x475e09){return db[_0x226c('0xa')][_0x226c('0xb')]({'where':{'name':_0x1677ee,'userProfileId':_0x5a8a66},'raw':!![]})[_0x226c('0xc')](function(_0x1ae421){if(_0x1ae421){if(_0x1ae421[_0x226c('0xd')]){switch(_0x1677ee){case _0x226c('0xe'):case'ChatQueues':case'FaxQueues':case _0x226c('0xf'):case _0x226c('0x10'):case _0x226c('0x11'):case _0x226c('0x12'):return db[_0x475e09]['findAll'](queryQueues);case'Telephones':return db[_0x475e09][_0x226c('0x13')](queryTelephones);case _0x226c('0x14'):return db[_0x475e09][_0x226c('0x13')](queryTrunks);case _0x226c('0x15'):return db[_0x475e09][_0x226c('0x13')](queryCampaigns);}}else{return db['UserProfileResource'][_0x226c('0x13')]({'attributes':[_0x226c('0x16')],'where':{'sectionId':_0x1ae421['id']},'raw':!![]})[_0x226c('0xc')](function(_0x4b542b){if(_0x4b542b){var _0x19d62d={'where':{'id':_[_0x226c('0x17')](_0x4b542b,_0x226c('0x16'))},'raw':!![]};switch(_0x475e09){case _0x226c('0x18'):_0x19d62d[_0x226c('0x19')][_0x226c('0x6')]=_0x226c('0x8');break;case _0x226c('0x1a'):_0x19d62d[_0x226c('0x19')][_0x226c('0x1b')]=_0x226c('0x9');break;}return db[_0x475e09][_0x226c('0x13')](_0x19d62d);}else{return[];}});}}else{return[];}})[_0x226c('0xc')](function(_0x53c323){return _0x53c323;});}function joinOrLeaveQueues(_0x34242a,_0x1d3ee8,_0x1abe31,_0x49f43d){_0x34242a[_0x1d3ee8](util[_0x226c('0x1c')](_0x226c('0x1d'),_0x1abe31,_0x49f43d['name']));if(_0x49f43d[_0x226c('0x4')]){for(var _0x29c441=0x0;_0x29c441<_0x49f43d[_0x226c('0x4')][_0x226c('0x1e')];_0x29c441+=0x1){_0x34242a[_0x1d3ee8](util[_0x226c('0x1c')](_0x226c('0x1f'),_0x49f43d['Agents'][_0x29c441][_0x226c('0x5')]));}}}function joinOrLeave(_0x3df28f,_0x17ab5f,_0x3f2643){var _0x392717;if(_0x3df28f[_0x226c('0x20')]['query']['id']){db[_0x226c('0x18')][_0x226c('0x21')]({'attributes':['id',_0x226c('0x5'),'role',_0x226c('0x22')],'where':{'id':_0x3df28f['handshake'][_0x226c('0x23')]['id']},'include':[{'model':db[_0x226c('0x24')],'as':_0x226c('0x25'),'attributes':['id'],'raw':!![]},{'model':db[_0x226c('0x26')],'as':'MailInteractions','attributes':['id'],'raw':!![]},{'model':db['FaxInteraction'],'as':'FaxInteractions','attributes':['id'],'raw':!![]},{'model':db['SmsInteraction'],'as':'SmsInteractions','attributes':['id'],'raw':!![]},{'model':db[_0x226c('0x27')],'as':_0x226c('0x28'),'attributes':['id'],'raw':!![]},{'model':db['WhatsappInteraction'],'as':_0x226c('0x29'),'attributes':['id'],'raw':!![]}]})[_0x226c('0xc')](function(_0x1bec1a){if(_0x1bec1a){_0x392717=_0x1bec1a;_0x3df28f[_0x17ab5f](util[_0x226c('0x1c')](_0x226c('0x1f'),_0x1bec1a['name']));var _0x2c861c=[];switch(_0x1bec1a[_0x226c('0x6')]){case'admin':_0x3df28f[_0x17ab5f](_0x226c('0x2a'));_0x3df28f[_0x17ab5f](_0x226c('0x2b'));if(queryQueues[_0x226c('0x2c')]('include')){delete queryQueues[_0x226c('0x2d')];}_0x2c861c[_0x226c('0x2e')](db[_0x226c('0x2f')][_0x226c('0x13')](queryQueues));_0x2c861c[_0x226c('0x2e')](db[_0x226c('0x30')][_0x226c('0x13')](queryQueues));_0x2c861c['push'](db[_0x226c('0x31')][_0x226c('0x13')](queryQueues));_0x2c861c[_0x226c('0x2e')](db['SmsQueue'][_0x226c('0x13')](queryQueues));_0x2c861c[_0x226c('0x2e')](db[_0x226c('0x32')][_0x226c('0x13')](queryQueues));_0x2c861c[_0x226c('0x2e')](db[_0x226c('0x33')][_0x226c('0x13')](queryQueues));_0x2c861c[_0x226c('0x2e')](db['WhatsappQueue'][_0x226c('0x13')](queryQueues));_0x2c861c[_0x226c('0x2e')](db[_0x226c('0x18')][_0x226c('0x13')](queryTelephones));_0x2c861c[_0x226c('0x2e')](db['Trunk']['findAll'](queryTrunks));_0x2c861c[_0x226c('0x2e')](db[_0x226c('0x1a')][_0x226c('0x13')](queryCampaigns));_0x2c861c['push'](db['User'][_0x226c('0x13')](queryAgents));break;case _0x226c('0x34'):_0x3df28f[_0x17ab5f](_0x226c('0x2a'));_0x3df28f[_0x17ab5f]('voice:outbound');_0x2c861c[_0x226c('0x2e')](getAssociatedResources('VoiceQueues',_0x1bec1a[_0x226c('0x22')],'VoiceQueue'));_0x2c861c[_0x226c('0x2e')](getAssociatedResources(_0x226c('0x35'),_0x1bec1a[_0x226c('0x22')],'ChatQueue'));_0x2c861c[_0x226c('0x2e')](getAssociatedResources('FaxQueues',_0x1bec1a[_0x226c('0x22')],_0x226c('0x31')));_0x2c861c[_0x226c('0x2e')](getAssociatedResources('SmsQueues',_0x1bec1a[_0x226c('0x22')],'SmsQueue'));_0x2c861c[_0x226c('0x2e')](getAssociatedResources(_0x226c('0x10'),_0x1bec1a[_0x226c('0x22')],_0x226c('0x32')));_0x2c861c[_0x226c('0x2e')](getAssociatedResources('OpenchannelQueues',_0x1bec1a[_0x226c('0x22')],'OpenchannelQueue'));_0x2c861c[_0x226c('0x2e')](getAssociatedResources(_0x226c('0x12'),_0x1bec1a[_0x226c('0x22')],_0x226c('0x36')));_0x2c861c['push'](getAssociatedResources('Telephones',_0x1bec1a['userProfileId'],_0x226c('0x18')));_0x2c861c['push'](getAssociatedResources('Trunks',_0x1bec1a[_0x226c('0x22')],_0x226c('0x37')));_0x2c861c[_0x226c('0x2e')](getAssociatedResources(_0x226c('0x15'),_0x1bec1a[_0x226c('0x22')],_0x226c('0x1a')));_0x2c861c[_0x226c('0x2e')](db['User'][_0x226c('0x13')](queryAgents));break;case _0x226c('0x7'):_0x3df28f[_0x17ab5f](_0x226c('0x2a'));_0x3df28f[_0x17ab5f]('voice:outbound');_0x2c861c[_0x226c('0x2e')](_0x1bec1a[_0x226c('0x38')]({'attributes':['id',_0x226c('0x5')]}));_0x2c861c[_0x226c('0x2e')](_0x1bec1a[_0x226c('0x39')]({'attributes':['id',_0x226c('0x5')]}));_0x2c861c['push'](_0x1bec1a[_0x226c('0x3a')]({'attributes':['id',_0x226c('0x5')]}));_0x2c861c[_0x226c('0x2e')](_0x1bec1a[_0x226c('0x3b')]({'attributes':['id',_0x226c('0x5')]}));_0x2c861c[_0x226c('0x2e')](_0x1bec1a[_0x226c('0x3c')]({'attributes':['id','name']}));_0x2c861c['push'](_0x1bec1a[_0x226c('0x3d')]({'attributes':['id',_0x226c('0x5')]}));_0x2c861c[_0x226c('0x2e')](_0x1bec1a['getWhatsappQueues']({'attributes':['id','name']}));break;}return BPromise[_0x226c('0x3e')](_0x2c861c);}})[_0x226c('0xc')](function(_0x452ce8){if(_0x452ce8&&_0x452ce8[_0x226c('0x1e')]){for(var _0x343637=0x0;_0x343637<_0x452ce8[_0x226c('0x1e')];_0x343637+=0x1){for(var _0x25736e=0x0;_0x25736e<_0x452ce8[_0x343637][_0x226c('0x1e')];_0x25736e+=0x1){switch(_0x343637){case 0x0:joinOrLeaveQueues(_0x3df28f,_0x17ab5f,_0x226c('0x3f'),_0x452ce8[_0x343637][_0x25736e]);break;case 0x1:joinOrLeaveQueues(_0x3df28f,_0x17ab5f,_0x226c('0x40'),_0x452ce8[_0x343637][_0x25736e]);break;case 0x2:joinOrLeaveQueues(_0x3df28f,_0x17ab5f,_0x226c('0x41'),_0x452ce8[_0x343637][_0x25736e]);break;case 0x3:joinOrLeaveQueues(_0x3df28f,_0x17ab5f,'sms',_0x452ce8[_0x343637][_0x25736e]);break;case 0x4:joinOrLeaveQueues(_0x3df28f,_0x17ab5f,'mail',_0x452ce8[_0x343637][_0x25736e]);break;case 0x5:joinOrLeaveQueues(_0x3df28f,_0x17ab5f,_0x226c('0x42'),_0x452ce8[_0x343637][_0x25736e]);break;case 0x6:joinOrLeaveQueues(_0x3df28f,_0x17ab5f,_0x226c('0x43'),_0x452ce8[_0x343637][_0x25736e]);break;case 0x7:if(_0x392717[_0x226c('0x6')]!==_0x226c('0x7'))_0x3df28f[_0x17ab5f](util[_0x226c('0x1c')](_0x226c('0x44'),_0x452ce8[_0x343637][_0x25736e][_0x226c('0x5')]));break;case 0x8:if(_0x392717[_0x226c('0x6')]!==_0x226c('0x7'))_0x3df28f[_0x17ab5f](util[_0x226c('0x1c')](_0x226c('0x45'),_0x452ce8[_0x343637][_0x25736e][_0x226c('0x5')]));break;case 0x9:if(_0x392717[_0x226c('0x6')]!==_0x226c('0x7'))_0x3df28f[_0x17ab5f](util[_0x226c('0x1c')]('campaign:%s:%s',_0x452ce8[_0x343637][_0x25736e]['type'],_0x452ce8[_0x343637][_0x25736e][_0x226c('0x5')]));break;case 0xa:_0x3df28f[_0x17ab5f](util[_0x226c('0x1c')]('user:%s',_0x452ce8[_0x343637][_0x25736e][_0x226c('0x5')]));break;}}}}})[_0x226c('0xc')](function(){if(_0x17ab5f===_0x226c('0x46')){var _0x5ac059=_['map'](_0x392717[_0x226c('0x25')],'id');return _0x392717['removeChatInteractions'](_0x5ac059)[_0x226c('0xc')](function(){for(var _0x3adfba=0x0;_0x3adfba<_0x5ac059['length'];_0x3adfba+=0x1){_0x3f2643[_0x226c('0x47')](_0x226c('0x48'),{'ChatInteractionId':Number(_0x5ac059[_0x3adfba]),'UserId':Number(_0x392717['id'])});}});}})['then'](function(){if(_0x17ab5f===_0x226c('0x46')){var _0x416f8f=_[_0x226c('0x17')](_0x392717['MailInteractions'],'id');return _0x392717['removeMailInteractions'](_0x416f8f)[_0x226c('0xc')](function(){for(var _0x3feeff=0x0;_0x3feeff<_0x416f8f['length'];_0x3feeff+=0x1){_0x3f2643['emit'](_0x226c('0x49'),{'MailInteractionId':Number(_0x416f8f[_0x3feeff]),'UserId':Number(_0x392717['id'])});}});}})[_0x226c('0xc')](function(){if(_0x17ab5f==='leave'){var _0x1f8603=_[_0x226c('0x17')](_0x392717['FaxInteractions'],'id');return _0x392717[_0x226c('0x4a')](_0x1f8603)[_0x226c('0xc')](function(){for(var _0x4d93e3=0x0;_0x4d93e3<_0x1f8603[_0x226c('0x1e')];_0x4d93e3+=0x1){_0x3f2643[_0x226c('0x47')](_0x226c('0x4b'),{'FaxInteractionId':Number(_0x1f8603[_0x4d93e3]),'UserId':Number(_0x392717['id'])});}});}})[_0x226c('0xc')](function(){if(_0x17ab5f===_0x226c('0x46')){var _0x471b46=_[_0x226c('0x17')](_0x392717[_0x226c('0x4c')],'id');return _0x392717[_0x226c('0x4d')](_0x471b46)[_0x226c('0xc')](function(){for(var _0x462883=0x0;_0x462883<_0x471b46[_0x226c('0x1e')];_0x462883+=0x1){_0x3f2643[_0x226c('0x47')]('user_has_sms_interactions:remove',{'SmsInteractionId':Number(_0x471b46[_0x462883]),'UserId':Number(_0x392717['id'])});}});}})[_0x226c('0xc')](function(){if(_0x17ab5f===_0x226c('0x46')){var _0x338b64=_['map'](_0x392717[_0x226c('0x28')],'id');return _0x392717[_0x226c('0x4e')](_0x338b64)['then'](function(){for(var _0x177128=0x0;_0x177128<_0x338b64[_0x226c('0x1e')];_0x177128+=0x1){_0x3f2643[_0x226c('0x47')]('user_has_openchannel_interactions:remove',{'OpenchannelInteractionId':Number(_0x338b64[_0x177128]),'UserId':Number(_0x392717['id'])});}});}})[_0x226c('0xc')](function(){if(_0x17ab5f==='leave'){var _0x52c46d=_['map'](_0x392717[_0x226c('0x29')],'id');return _0x392717[_0x226c('0x4f')](_0x52c46d)['then'](function(){for(var _0x27ec6=0x0;_0x27ec6<_0x52c46d[_0x226c('0x1e')];_0x27ec6+=0x1){_0x3f2643[_0x226c('0x47')](_0x226c('0x50'),{'WhatsappInteractionId':Number(_0x52c46d[_0x27ec6]),'UserId':Number(_0x392717['id'])});}});}})[_0x226c('0x51')](function(_0x9c1231){_0x3df28f['log'](_0x9c1231);});}}function onDisconnect(_0x335860,_0x41a803){joinOrLeave(_0x335860,_0x226c('0x46'),_0x41a803);}function onConnect(_0x332d0c){joinOrLeave(_0x332d0c,'join');}exports[_0x226c('0x52')]=function(_0xe75fee){_0xe75fee['on'](_0x226c('0x53'),function(_0x553f60){_0x553f60[_0x226c('0x54')](0x0);_0x553f60[_0x226c('0x55')]=_0x553f60[_0x226c('0x56')][_0x226c('0x53')][_0x226c('0x57')]+':'+_0x553f60[_0x226c('0x56')]['connection'][_0x226c('0x58')];_0x553f60['connectedAt']=new Date();_0x553f60[_0x226c('0x59')]=function(_0x326174){console['log'](_0x226c('0x5a')+_0x553f60[_0x226c('0x5b')]['name']+'['+_0x553f60['address']+']',_0x326174);};_0x553f60['on'](_0x226c('0x5c'),function(){onDisconnect(_0x553f60,_0xe75fee);_0x553f60[_0x226c('0x59')](_0x226c('0x5d'));});onConnect(_0x553f60);_0x553f60[_0x226c('0x59')]('CONNECTED');});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8d88=['condition','util','../../mysqldb','../logger','triggers','client','Chat','afterCreate','newinteraction','afterUpdate','closedinteraction','newmessage','Sms','SmsInteraction','Whatsapp','WhatsappInteraction','WhatsappMessage','Fax','FaxInteraction','Mail','MailInteraction','MailMessage','Openchannel','OpenchannelInteraction','OpenchannelMessage','EventManager','then','info','Trigger,\x20%s','error','code','channel','motionChannel','direction','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','ContactId','sequelize','query','Sequelize','QueryTypes','SELECT','contact','UserId','User','find','name','fullname','email','internal','format','SIP/%s','agent','incomingmessage','catch','outgoingmessage','get','event','opened','changed','substatus','closed','default','hasOwnProperty','model','hook','toLowerCase'];(function(_0x40a045,_0x516f0e){var _0x1a687c=function(_0x48c9fe){while(--_0x48c9fe){_0x40a045['push'](_0x40a045['shift']());}};_0x1a687c(++_0x516f0e);}(_0x8d88,0x85));var _0x88d8=function(_0x4f21c4,_0x960024){_0x4f21c4=_0x4f21c4-0x0;var _0x2f9fa6=_0x8d88[_0x4f21c4];return _0x2f9fa6;};'use strict';var util=require(_0x88d8('0x0'));var db=require(_0x88d8('0x1'))['db'];var jayson=require('jayson/promise');var logger=require(_0x88d8('0x2'))(_0x88d8('0x3'));var _=require('lodash');var client=jayson[_0x88d8('0x4')]['http']({'port':0x232a});var triggers=[{'channel':_0x88d8('0x5'),'model':'ChatInteraction','event':_0x88d8('0x6'),'condition':_0x88d8('0x7'),'callback':afterCreate},{'channel':'Chat','model':'ChatInteraction','event':_0x88d8('0x8'),'condition':_0x88d8('0x9'),'callback':afterUpdate},{'channel':'Chat','model':'ChatMessage','event':_0x88d8('0x6'),'condition':_0x88d8('0xa'),'callback':afterCreateMessage},{'channel':_0x88d8('0xb'),'model':'SmsInteraction','event':'afterCreate','condition':_0x88d8('0x7'),'callback':afterCreate},{'channel':_0x88d8('0xb'),'model':_0x88d8('0xc'),'event':_0x88d8('0x8'),'condition':_0x88d8('0x9'),'callback':afterUpdate},{'channel':'Sms','model':'SmsMessage','event':_0x88d8('0x6'),'condition':_0x88d8('0xa'),'callback':afterCreateMessage},{'channel':_0x88d8('0xd'),'model':'WhatsappInteraction','event':_0x88d8('0x6'),'condition':_0x88d8('0x7'),'callback':afterCreate},{'channel':_0x88d8('0xd'),'model':_0x88d8('0xe'),'event':_0x88d8('0x8'),'condition':'closedinteraction','callback':afterUpdate},{'channel':_0x88d8('0xd'),'model':_0x88d8('0xf'),'event':'afterCreate','condition':_0x88d8('0xa'),'callback':afterCreateMessage},{'channel':'Fax','model':'FaxInteraction','event':_0x88d8('0x6'),'condition':_0x88d8('0x7'),'callback':afterCreate},{'channel':_0x88d8('0x10'),'model':_0x88d8('0x11'),'event':_0x88d8('0x8'),'condition':_0x88d8('0x9'),'callback':afterUpdate},{'channel':'Fax','model':'FaxMessage','event':_0x88d8('0x6'),'condition':_0x88d8('0xa'),'callback':afterCreateMessage},{'channel':_0x88d8('0x12'),'model':_0x88d8('0x13'),'event':'afterCreate','condition':_0x88d8('0x7'),'callback':afterCreate},{'channel':'Mail','model':_0x88d8('0x13'),'event':_0x88d8('0x8'),'condition':_0x88d8('0x9'),'callback':afterUpdate},{'channel':_0x88d8('0x12'),'model':_0x88d8('0x14'),'event':'afterCreate','condition':_0x88d8('0xa'),'callback':afterCreateMessage},{'channel':_0x88d8('0x15'),'model':_0x88d8('0x16'),'event':_0x88d8('0x6'),'condition':_0x88d8('0x7'),'callback':afterCreate},{'channel':_0x88d8('0x15'),'model':_0x88d8('0x16'),'event':_0x88d8('0x8'),'condition':'closedinteraction','callback':afterUpdate},{'channel':'Openchannel','model':_0x88d8('0x17'),'event':_0x88d8('0x6'),'condition':_0x88d8('0xa'),'callback':afterCreateMessage}];function request(_0x588b8b){return client['request'](_0x88d8('0x18'),_0x588b8b)[_0x88d8('0x19')](function(_0x4e081d){logger[_0x88d8('0x1a')](_0x88d8('0x1b'),_0x88d8('0x18'),_0x4e081d);if(_0x4e081d[_0x88d8('0x1c')]){if(_0x4e081d[_0x88d8('0x1c')][_0x88d8('0x1d')]===0x1f4){logger[_0x88d8('0x1c')](_0x88d8('0x1b'),_0x88d8('0x18'),_0x4e081d[_0x88d8('0x1c')]);}}})['catch'](function(_0x3c64c3){logger['error']('Trigger,\x20%s',_0x88d8('0x18'),_0x3c64c3);});}function afterCreateMessage(_0x3358c6,_0x1e7519){return function(_0x3901bc,_0x344b1c){_0x3901bc=_0x3901bc['get']({'plain':!![]});_0x3901bc[_0x88d8('0x1e')]=_0x3358c6;_0x3901bc[_0x88d8('0x1f')]=_0x3358c6;_0x3901bc['event']=_0x3901bc[_0x88d8('0x20')];var _0x200ead=_0x88d8('0x21')+_0x3901bc[_0x88d8('0x22')];return db[_0x88d8('0x23')][_0x88d8('0x24')](_0x200ead,{'type':db[_0x88d8('0x25')][_0x88d8('0x26')][_0x88d8('0x27')],'raw':!![]})[_0x88d8('0x19')](function(_0x304115){return _0x304115;})[_0x88d8('0x19')](function(_0x35aaf4){if(_0x35aaf4){_0x3901bc[_0x88d8('0x28')]=_0x35aaf4[0x0];}if(_0x3901bc[_0x88d8('0x29')]){return db[_0x88d8('0x2a')][_0x88d8('0x2b')]({'where':{'id':_0x3901bc[_0x88d8('0x29')]},'attributes':['id',_0x88d8('0x2c'),_0x88d8('0x2d'),_0x88d8('0x2e'),_0x88d8('0x2f')],'raw':!![]})[_0x88d8('0x19')](function(_0x607cb3){_0x3901bc['interface']=util[_0x88d8('0x30')](_0x88d8('0x31'),_0x607cb3[_0x88d8('0x2c')]);_0x3901bc[_0x88d8('0x1e')]=_0x3358c6;_0x3901bc[_0x88d8('0x32')]=_0x607cb3;return request({'event':_0x88d8('0x33'),'message':_0x3901bc});})[_0x88d8('0x34')](function(_0x28489e){console[_0x88d8('0x1c')](_0x28489e);});}else{return request({'event':_0x88d8('0x35'),'message':_0x3901bc});}});};}function afterCreate(_0x10d8f1,_0xc745a){return function(_0x54a9e5,_0x40b621){_0x54a9e5=_0x54a9e5[_0x88d8('0x36')]({'plain':!![]});_0x54a9e5[_0x88d8('0x1e')]=_0x10d8f1;_0x54a9e5[_0x88d8('0x1f')]=_0x10d8f1;_0x54a9e5[_0x88d8('0x37')]=_0x88d8('0x38');var _0x2a6ac5=_0x88d8('0x21')+_0x54a9e5[_0x88d8('0x22')];return db[_0x88d8('0x23')]['query'](_0x2a6ac5,{'type':db[_0x88d8('0x25')][_0x88d8('0x26')][_0x88d8('0x27')],'raw':!![]})[_0x88d8('0x19')](function(_0x35642d){return _0x35642d;})['then'](function(_0x92b851){if(_0x92b851){_0x54a9e5[_0x88d8('0x28')]=_0x92b851[0x0];}return request({'event':_0xc745a,'message':_0x54a9e5});});};}function afterUpdate(_0x4fab44){return function(_0x29102f){var _0x54b0c5=_0x29102f[_0x88d8('0x39')]('closed')&&_0x29102f['closed'];var _0x26d0eb=_0x29102f[_0x88d8('0x39')]('substatus');if(_0x54b0c5||_0x26d0eb){var _0x39235d=_0x54b0c5?'closedinteraction':_0x88d8('0x3a');var _0x3d967b=_0x29102f[_0x88d8('0x36')]({'plain':!![]});_0x3d967b[_0x88d8('0x1e')]=_0x4fab44;_0x3d967b[_0x88d8('0x1f')]=_0x4fab44;_0x3d967b[_0x88d8('0x37')]=_0x54b0c5?_0x88d8('0x3b'):_0x88d8('0x3a');var _0x24a49d=_0x88d8('0x21')+_0x3d967b[_0x88d8('0x22')];return db[_0x88d8('0x23')][_0x88d8('0x24')](_0x24a49d,{'type':db[_0x88d8('0x25')]['QueryTypes'][_0x88d8('0x27')],'raw':!![]})[_0x88d8('0x19')](function(_0x5d337a){if(_0x5d337a){_0x3d967b[_0x88d8('0x28')]=_0x5d337a[0x0];}if(_0x3d967b[_0x88d8('0x29')]){return db[_0x88d8('0x2a')][_0x88d8('0x2b')]({'where':{'id':_0x3d967b[_0x88d8('0x29')]},'attributes':['id',_0x88d8('0x2c'),_0x88d8('0x2d'),'email','internal'],'raw':!![]})['then'](function(_0x3300a4){_0x3d967b['interface']=util[_0x88d8('0x30')](_0x88d8('0x31'),_0x3300a4[_0x88d8('0x2c')]);_0x3d967b[_0x88d8('0x32')]=_0x3300a4;return request({'event':_0x39235d,'message':_0x3d967b});})[_0x88d8('0x34')](function(_0x209fc3){console[_0x88d8('0x1c')](_0x209fc3);});}else{return request({'event':_0x39235d,'message':_0x3d967b});}});}};}exports[_0x88d8('0x3c')]=function(){for(var _0x14bce3=0x0;_0x14bce3<triggers['length'];_0x14bce3+=0x1){if(db[_0x88d8('0x3d')](triggers[_0x14bce3]['model'])){db[triggers[_0x14bce3][_0x88d8('0x3e')]][_0x88d8('0x3f')](triggers[_0x14bce3]['event'],triggers[_0x14bce3]['callback'](triggers[_0x14bce3][_0x88d8('0x1e')][_0x88d8('0x40')](),triggers[_0x14bce3][_0x88d8('0x41')]));}}};
\ No newline at end of file
+var _0x8cff=['closed','query','Sequelize','UserId','default','length','hasOwnProperty','model','hook','callback','condition','util','../../mysqldb','jayson/promise','triggers','client','http','Chat','ChatInteraction','newinteraction','afterUpdate','ChatMessage','afterCreate','newmessage','Sms','SmsInteraction','closedinteraction','Whatsapp','WhatsappInteraction','WhatsappMessage','Fax','FaxInteraction','FaxMessage','Mail','MailInteraction','MailMessage','Openchannel','OpenchannelInteraction','OpenchannelMessage','EventManager','then','info','Trigger,\x20%s','error','code','catch','get','event','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','sequelize','QueryTypes','SELECT','User','find','name','fullname','email','internal','interface','format','SIP/%s','channel','agent','incomingmessage','outgoingmessage','opened','ContactId','contact','changed'];(function(_0x321b7c,_0x512102){var _0x1d377c=function(_0x1f5f43){while(--_0x1f5f43){_0x321b7c['push'](_0x321b7c['shift']());}};_0x1d377c(++_0x512102);}(_0x8cff,0x1a9));var _0xf8cf=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x8cff[_0x3dd15e];return _0x231fd0;};'use strict';var util=require(_0xf8cf('0x0'));var db=require(_0xf8cf('0x1'))['db'];var jayson=require(_0xf8cf('0x2'));var logger=require('../logger')(_0xf8cf('0x3'));var _=require('lodash');var client=jayson[_0xf8cf('0x4')][_0xf8cf('0x5')]({'port':0x232a});var triggers=[{'channel':_0xf8cf('0x6'),'model':_0xf8cf('0x7'),'event':'afterCreate','condition':_0xf8cf('0x8'),'callback':afterCreate},{'channel':_0xf8cf('0x6'),'model':_0xf8cf('0x7'),'event':_0xf8cf('0x9'),'condition':'closedinteraction','callback':afterUpdate},{'channel':'Chat','model':_0xf8cf('0xa'),'event':_0xf8cf('0xb'),'condition':_0xf8cf('0xc'),'callback':afterCreateMessage},{'channel':_0xf8cf('0xd'),'model':_0xf8cf('0xe'),'event':_0xf8cf('0xb'),'condition':_0xf8cf('0x8'),'callback':afterCreate},{'channel':_0xf8cf('0xd'),'model':'SmsInteraction','event':_0xf8cf('0x9'),'condition':_0xf8cf('0xf'),'callback':afterUpdate},{'channel':'Sms','model':'SmsMessage','event':_0xf8cf('0xb'),'condition':'newmessage','callback':afterCreateMessage},{'channel':_0xf8cf('0x10'),'model':_0xf8cf('0x11'),'event':'afterCreate','condition':_0xf8cf('0x8'),'callback':afterCreate},{'channel':_0xf8cf('0x10'),'model':'WhatsappInteraction','event':'afterUpdate','condition':'closedinteraction','callback':afterUpdate},{'channel':_0xf8cf('0x10'),'model':_0xf8cf('0x12'),'event':_0xf8cf('0xb'),'condition':_0xf8cf('0xc'),'callback':afterCreateMessage},{'channel':_0xf8cf('0x13'),'model':_0xf8cf('0x14'),'event':_0xf8cf('0xb'),'condition':'newinteraction','callback':afterCreate},{'channel':_0xf8cf('0x13'),'model':_0xf8cf('0x14'),'event':_0xf8cf('0x9'),'condition':_0xf8cf('0xf'),'callback':afterUpdate},{'channel':_0xf8cf('0x13'),'model':_0xf8cf('0x15'),'event':'afterCreate','condition':'newmessage','callback':afterCreateMessage},{'channel':_0xf8cf('0x16'),'model':_0xf8cf('0x17'),'event':_0xf8cf('0xb'),'condition':_0xf8cf('0x8'),'callback':afterCreate},{'channel':_0xf8cf('0x16'),'model':_0xf8cf('0x17'),'event':'afterUpdate','condition':_0xf8cf('0xf'),'callback':afterUpdate},{'channel':_0xf8cf('0x16'),'model':_0xf8cf('0x18'),'event':_0xf8cf('0xb'),'condition':_0xf8cf('0xc'),'callback':afterCreateMessage},{'channel':_0xf8cf('0x19'),'model':_0xf8cf('0x1a'),'event':_0xf8cf('0xb'),'condition':_0xf8cf('0x8'),'callback':afterCreate},{'channel':_0xf8cf('0x19'),'model':_0xf8cf('0x1a'),'event':'afterUpdate','condition':_0xf8cf('0xf'),'callback':afterUpdate},{'channel':_0xf8cf('0x19'),'model':_0xf8cf('0x1b'),'event':'afterCreate','condition':_0xf8cf('0xc'),'callback':afterCreateMessage}];function request(_0x1fae14){return client['request'](_0xf8cf('0x1c'),_0x1fae14)[_0xf8cf('0x1d')](function(_0x23f2b1){logger[_0xf8cf('0x1e')](_0xf8cf('0x1f'),'EventManager',_0x23f2b1);if(_0x23f2b1['error']){if(_0x23f2b1[_0xf8cf('0x20')][_0xf8cf('0x21')]===0x1f4){logger[_0xf8cf('0x20')](_0xf8cf('0x1f'),_0xf8cf('0x1c'),_0x23f2b1[_0xf8cf('0x20')]);}}})[_0xf8cf('0x22')](function(_0x460884){logger[_0xf8cf('0x20')](_0xf8cf('0x1f'),_0xf8cf('0x1c'),_0x460884);});}function afterCreateMessage(_0x3d891b,_0x392a27){return function(_0x128d66,_0x21a33b){_0x128d66=_0x128d66[_0xf8cf('0x23')]({'plain':!![]});_0x128d66['channel']=_0x3d891b;_0x128d66[_0xf8cf('0x24')]=_0x128d66['direction'];var _0x5eeb82=_0xf8cf('0x25')+_0x128d66['ContactId'];return db[_0xf8cf('0x26')]['query'](_0x5eeb82,{'type':db['Sequelize'][_0xf8cf('0x27')][_0xf8cf('0x28')],'raw':!![]})[_0xf8cf('0x1d')](function(_0x5203fd){return _0x5203fd;})[_0xf8cf('0x1d')](function(_0x4eef78){if(_0x4eef78){_0x128d66['contact']=_0x4eef78[0x0];}if(_0x128d66['UserId']){return db[_0xf8cf('0x29')][_0xf8cf('0x2a')]({'where':{'id':_0x128d66['UserId']},'attributes':['id',_0xf8cf('0x2b'),_0xf8cf('0x2c'),_0xf8cf('0x2d'),_0xf8cf('0x2e')],'raw':!![]})[_0xf8cf('0x1d')](function(_0x1ea635){_0x128d66[_0xf8cf('0x2f')]=util[_0xf8cf('0x30')](_0xf8cf('0x31'),_0x1ea635[_0xf8cf('0x2b')]);_0x128d66[_0xf8cf('0x32')]=_0x3d891b;_0x128d66[_0xf8cf('0x33')]=_0x1ea635;return request({'event':_0xf8cf('0x34'),'message':_0x128d66});})[_0xf8cf('0x22')](function(_0x29de3b){console['error'](_0x29de3b);});}else{return request({'event':_0xf8cf('0x35'),'message':_0x128d66});}});};}function afterCreate(_0x5f1ed9,_0x4c6b05){return function(_0x274856,_0x540388){_0x274856=_0x274856[_0xf8cf('0x23')]({'plain':!![]});_0x274856[_0xf8cf('0x32')]=_0x5f1ed9;_0x274856[_0xf8cf('0x24')]=_0xf8cf('0x36');var _0x5b2f62=_0xf8cf('0x25')+_0x274856[_0xf8cf('0x37')];return db[_0xf8cf('0x26')]['query'](_0x5b2f62,{'type':db['Sequelize'][_0xf8cf('0x27')][_0xf8cf('0x28')],'raw':!![]})[_0xf8cf('0x1d')](function(_0x15dcc9){return _0x15dcc9;})['then'](function(_0x5b9ea7){if(_0x5b9ea7){_0x274856[_0xf8cf('0x38')]=_0x5b9ea7[0x0];}return request({'event':_0x4c6b05,'message':_0x274856});});};}function afterUpdate(_0xd735d9,_0x58c9c7){return function(_0x1fa0c2,_0x32f516){if(_0x1fa0c2[_0xf8cf('0x39')](_0xf8cf('0x3a'))&&_0x1fa0c2['closed']){_0x1fa0c2=_0x1fa0c2[_0xf8cf('0x23')]({'plain':!![]});_0x1fa0c2['channel']=_0xd735d9;_0x1fa0c2['event']=_0xf8cf('0x3a');var _0xc47daf='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x1fa0c2[_0xf8cf('0x37')];return db['sequelize'][_0xf8cf('0x3b')](_0xc47daf,{'type':db[_0xf8cf('0x3c')][_0xf8cf('0x27')]['SELECT'],'raw':!![]})[_0xf8cf('0x1d')](function(_0x334edd){return _0x334edd;})['then'](function(_0x5343fa){if(_0x5343fa){_0x1fa0c2[_0xf8cf('0x38')]=_0x5343fa[0x0];}if(_0x1fa0c2[_0xf8cf('0x3d')]){return db[_0xf8cf('0x29')][_0xf8cf('0x2a')]({'where':{'id':_0x1fa0c2['UserId']},'attributes':['id',_0xf8cf('0x2b'),_0xf8cf('0x2c'),'email',_0xf8cf('0x2e')],'raw':!![]})[_0xf8cf('0x1d')](function(_0x105d6d){_0x1fa0c2[_0xf8cf('0x2f')]=util[_0xf8cf('0x30')](_0xf8cf('0x31'),_0x105d6d['name']);_0x1fa0c2[_0xf8cf('0x33')]=_0x105d6d;return request({'event':_0x58c9c7,'message':_0x1fa0c2});})[_0xf8cf('0x22')](function(_0x2f436a){console['error'](_0x2f436a);});}else{return request({'event':_0x58c9c7,'message':_0x1fa0c2});}});}};}exports[_0xf8cf('0x3e')]=function(){for(var _0x40c508=0x0;_0x40c508<triggers[_0xf8cf('0x3f')];_0x40c508+=0x1){if(db[_0xf8cf('0x40')](triggers[_0x40c508][_0xf8cf('0x41')])){db[triggers[_0x40c508][_0xf8cf('0x41')]][_0xf8cf('0x42')](triggers[_0x40c508][_0xf8cf('0x24')],triggers[_0x40c508][_0xf8cf('0x43')](triggers[_0x40c508][_0xf8cf('0x32')]['toLowerCase'](),triggers[_0x40c508][_0xf8cf('0x44')]));}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc477=['count','agent','then','agents','Maximum\x20login\x20has\x20been\x20reached','catch','lodash','bluebird','./license/util','voice','fax','whatsapp','openchannel','getChannels','toLowerCase','includes','clearBlockUser','isUndefined','blockedAt','role','User'];(function(_0xf84ad5,_0x2ca8dd){var _0x133bb1=function(_0x407ca3){while(--_0x407ca3){_0xf84ad5['push'](_0xf84ad5['shift']());}};_0x133bb1(++_0x2ca8dd);}(_0xc477,0x102));var _0x7c47=function(_0x32b993,_0x1c5989){_0x32b993=_0x32b993-0x0;var _0x482780=_0xc477[_0x32b993];return _0x482780;};'use strict';var _=require(_0x7c47('0x0'));var BPromise=require(_0x7c47('0x1'));var db=require('../mysqldb')['db'];var util=require(_0x7c47('0x2'));var channels=[_0x7c47('0x3'),'mail','chat',_0x7c47('0x4'),'sms',_0x7c47('0x5'),_0x7c47('0x6')];exports[_0x7c47('0x7')]=function(){return channels;};exports['isValidChannel']=function(_0x3ba54f){_0x3ba54f=_0x3ba54f[_0x7c47('0x8')]();return _[_0x7c47('0x9')](channels,_0x3ba54f);};exports[_0x7c47('0xa')]=function(_0x239c63,_0x38530c,_0xd319f5,_0x1ab1a8){var _0x58da3a={'loginAttempts':_0x38530c,'blocked':_0xd319f5};if(!_[_0x7c47('0xb')](_0x1ab1a8)){_0x58da3a[_0x7c47('0xc')]=_0x1ab1a8;}return _0x239c63['updateAttributes'](_0x58da3a);};exports['getLicense']=function(_0x5c0580){return new BPromise(function(_0x433b2f,_0x3d2f05){var _0x5f7d23=0x0;if(_0x5c0580[_0x7c47('0xd')]!=='agent'){_0x433b2f(_0x5c0580);}db[_0x7c47('0xe')][_0x7c47('0xf')]({'where':{'role':_0x7c47('0x10'),'online':!![],'id':{'$ne':_0x5c0580['id']}}})[_0x7c47('0x11')](function(_0x40748a){_0x5f7d23=_0x40748a;return util['getLicense']();})[_0x7c47('0x11')](function(_0x335115){if(_0x335115&&_0x335115[_0x7c47('0x12')]&&_0x5f7d23>=_0x335115[_0x7c47('0x12')]){throw Error(_0x7c47('0x13'));}_0x433b2f(_0x5c0580);})[_0x7c47('0x14')](function(_0x519800){_0x3d2f05(_0x519800);});});};
\ No newline at end of file
+var _0x0a46=['User','count','then','catch','lodash','bluebird','../mysqldb','./license/util','voice','mail','whatsapp','openchannel','isValidChannel','clearBlockUser','isUndefined','blockedAt','updateAttributes','getLicense','agent'];(function(_0x1027fb,_0x242fe3){var _0x1329ba=function(_0x1209c1){while(--_0x1209c1){_0x1027fb['push'](_0x1027fb['shift']());}};_0x1329ba(++_0x242fe3);}(_0x0a46,0xc2));var _0x60a4=function(_0x10528c,_0x5bdce7){_0x10528c=_0x10528c-0x0;var _0x1327ee=_0x0a46[_0x10528c];return _0x1327ee;};'use strict';var _=require(_0x60a4('0x0'));var BPromise=require(_0x60a4('0x1'));var db=require(_0x60a4('0x2'))['db'];var util=require(_0x60a4('0x3'));var channels=[_0x60a4('0x4'),_0x60a4('0x5'),'chat','fax','sms',_0x60a4('0x6'),_0x60a4('0x7')];exports['getChannels']=function(){return channels;};exports[_0x60a4('0x8')]=function(_0x4835a7){_0x4835a7=_0x4835a7['toLowerCase']();return _['includes'](channels,_0x4835a7);};exports[_0x60a4('0x9')]=function(_0x308c8c,_0x49647d,_0x42ab9d,_0x5426cc){var _0x5b9e3b={'loginAttempts':_0x49647d,'blocked':_0x42ab9d};if(!_[_0x60a4('0xa')](_0x5426cc)){_0x5b9e3b[_0x60a4('0xb')]=_0x5426cc;}return _0x308c8c[_0x60a4('0xc')](_0x5b9e3b);};exports[_0x60a4('0xd')]=function(_0x426836){return new BPromise(function(_0x497e54,_0x1fa534){var _0x244ff5=0x0;if(_0x426836['role']!==_0x60a4('0xe')){_0x497e54(_0x426836);}db[_0x60a4('0xf')][_0x60a4('0x10')]({'where':{'role':_0x60a4('0xe'),'online':!![],'id':{'$ne':_0x426836['id']}}})[_0x60a4('0x11')](function(_0x20bd85){_0x244ff5=_0x20bd85;return util[_0x60a4('0xd')]();})[_0x60a4('0x11')](function(_0x18b501){if(_0x18b501&&_0x18b501['agents']&&_0x244ff5>=_0x18b501['agents']){throw Error('Maximum\x20login\x20has\x20been\x20reached');}_0x497e54(_0x426836);})[_0x60a4('0x12')](function(_0x16a923){_0x1fa534(_0x16a923);});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1a4d=['json','send','exports','status','render'];(function(_0x298048,_0x11dee7){var _0x292596=function(_0x37d7e3){while(--_0x37d7e3){_0x298048['push'](_0x298048['shift']());}};_0x292596(++_0x11dee7);}(_0x1a4d,0x12e));var _0xd1a4=function(_0x11054b,_0x4da7){_0x11054b=_0x11054b-0x0;var _0x5db45f=_0x1a4d[_0x11054b];return _0x5db45f;};'use strict';module[_0xd1a4('0x0')][0x194]=function pageNotFound(_0x42e9df,_0x222530){var _0x4b943e='404';var _0x147b2d=0x194;var _0x253db8={'status':_0x147b2d};_0x222530[_0xd1a4('0x1')](_0x253db8[_0xd1a4('0x1')]);_0x222530[_0xd1a4('0x2')](_0x4b943e,{},function(_0x4fb1a9,_0x21fa7b){if(_0x4fb1a9){return _0x222530[_0xd1a4('0x1')](_0x253db8[_0xd1a4('0x1')])[_0xd1a4('0x3')](_0x253db8);}_0x222530[_0xd1a4('0x4')](_0x21fa7b);});};
\ No newline at end of file
+var _0x563b=['404','status','json','exports'];(function(_0x11a220,_0x4e470a){var _0x20d8fe=function(_0xbedfd){while(--_0xbedfd){_0x11a220['push'](_0x11a220['shift']());}};_0x20d8fe(++_0x4e470a);}(_0x563b,0x12f));var _0xb563=function(_0x4e1c78,_0x476732){_0x4e1c78=_0x4e1c78-0x0;var _0x3750be=_0x563b[_0x4e1c78];return _0x3750be;};'use strict';module[_0xb563('0x0')][0x194]=function pageNotFound(_0x5c2989,_0x3d3057){var _0x5c68b6=_0xb563('0x1');var _0x43dfa5=0x194;var _0xea8172={'status':_0x43dfa5};_0x3d3057[_0xb563('0x2')](_0xea8172[_0xb563('0x2')]);_0x3d3057['render'](_0x5c68b6,{},function(_0x57ef90,_0x39aebd){if(_0x57ef90){return _0x3d3057[_0xb563('0x2')](_0xea8172[_0xb563('0x2')])[_0xb563('0x3')](_0xea8172);}_0x3d3057['send'](_0x39aebd);});};
\ No newline at end of file
+++ /dev/null
-'use strict';\r
-\r
-var BPromise = require('bluebird');\r
-var util = require('util');\r
-\r
-var logger = require('../config/logger')('migration');\r
-\r
-var Sequence = function() {};\r
-\r
-Sequence.prototype.enqueue = function(fn) {\r
- this.tail = this.tail ? this.tail.finally(fn) : fn();\r
-};\r
-\r
-var Migration = function(queryInterface) {\r
- this.queryInterface = queryInterface;\r
- this.sequence = new Sequence();\r
-};\r
-\r
-Migration.prototype.changeColumn = function(table, column, type) {\r
- var _this = this;\r
- this.sequence.enqueue(function() {\r
- return _this.queryInterface\r
- .changeColumn(table, column, type)\r
- .then(function() {\r
- logger.info('Changed column %s in table %s', column, table);\r
- })\r
- .catch(function(err) {\r
- logger.info(JSON.stringify(err));\r
- });\r
- });\r
-};\r
-\r
-Migration.prototype.addColumn = function(table, column, type) {\r
- var _this = this;\r
- this.sequence.enqueue(function() {\r
- return _this.queryInterface\r
- .addColumn(table, column, type)\r
- .then(function() {\r
- logger.info('Added column %s to %s', column, table);\r
- })\r
- .catch(function(err) {\r
- logger.info(JSON.stringify(err));\r
- });\r
- });\r
-};\r
-\r
-Migration.prototype.dropTable = function(table) {\r
- var _this = this;\r
- this.sequence.enqueue(function() {\r
- return _this.queryInterface\r
- .dropTable(table, {\r
- force: true\r
- })\r
- .then(function() {\r
- logger.info('table dropped %s', table);\r
- })\r
- .catch(function(err) {\r
- logger.info(JSON.stringify(err));\r
- });\r
- });\r
-};\r
-\r
-Migration.prototype.addIndex = function(table, column, indexName) {\r
- var _this = this;\r
- this.sequence.enqueue(function() {\r
- return _this.queryInterface\r
- .addIndex(table, column, {\r
- indexName: indexName\r
- })\r
- .then(function() {\r
- logger.info('addIndex %s %s %s', table, column.join(','), indexName);\r
- })\r
- .catch(function(err) {\r
- logger.info(JSON.stringify(err));\r
- });\r
- });\r
-};\r
-\r
-Migration.prototype.removeIndex = function(table, indexName) {\r
- var _this = this;\r
- this.sequence.enqueue(function() {\r
- return _this.queryInterface\r
- .removeIndex(table, indexName)\r
- .then(function() {\r
- logger.info('removeIndex %s %s', table, indexName);\r
- })\r
- .catch(function(err) {\r
- logger.info(JSON.stringify(err));\r
- });\r
- });\r
-};\r
-\r
-Migration.prototype.query = function(sql) {\r
- var _this = this;\r
- this.sequence.enqueue(function() {\r
- return _this.queryInterface.sequelize\r
- .query(sql)\r
- .then(function() {\r
- logger.info('query %s', sql);\r
- })\r
- .catch(function(err) {\r
- logger.info(JSON.stringify(err));\r
- });\r
- });\r
-};\r
-\r
-Migration.prototype.removeColumn = function(table, column) {\r
- var _this = this;\r
- this.sequence.enqueue(function() {\r
- return _this.queryInterface\r
- .removeColumn(table, column)\r
- .then(function() {\r
- logger.info('Removed column %s from %s', column, table);\r
- })\r
- .catch(function(err) {\r
- logger.info(\r
- util.inspect(err, {\r
- showHidden: false,\r
- depth: null\r
- })\r
- );\r
- });\r
- });\r
-};\r
-\r
-Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {\r
- var _this = this;\r
- this.sequence.enqueue(function() {\r
- return _this.queryInterface\r
- .renameColumn(table, oldColumn, newColumn)\r
- .then(function() {\r
- logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);\r
- })\r
- .catch(function(err) {\r
- logger.info(\r
- util.inspect(err, {\r
- showHidden: false,\r
- depth: null\r
- })\r
- );\r
- });\r
- });\r
-};\r
-\r
-Migration.prototype.final = function(resolve) {\r
- this.sequence.enqueue(function() {\r
- return resolve();\r
- });\r
-};\r
-\r
-module.exports = {\r
- up: function(queryInterface, Sequelize) {\r
- return new BPromise(function(resolve) {\r
- var migration = new Migration(queryInterface);\r
-\r
- // START FINAL\r
- migration.final(resolve);\r
- // END FINAL\r
- });\r
- },\r
-\r
- down: function(queryInterface, Sequelize) {\r
- // var migration = new Migration(queryInterface);\r
- }\r
-};
\ No newline at end of file
+++ /dev/null
-'use strict';
-
-var BPromise = require('bluebird');
-var util = require('util');
-
-var logger = require('../config/logger')('migration');
-
-var Sequence = function() {};
-
-Sequence.prototype.enqueue = function(fn) {
- this.tail = this.tail ? this.tail.finally(fn) : fn();
-};
-
-var Migration = function(queryInterface) {
- this.queryInterface = queryInterface;
- this.sequence = new Sequence();
-};
-
-Migration.prototype.changeColumn = function(table, column, type) {
- var _this = this;
- this.sequence.enqueue(function() {
- return _this.queryInterface
- .changeColumn(table, column, type)
- .then(function() {
- logger.info('Changed column %s in table %s', column, table);
- })
- .catch(function(err) {
- logger.info(JSON.stringify(err));
- });
- });
-};
-
-Migration.prototype.addColumn = function(table, column, type) {
- var _this = this;
- this.sequence.enqueue(function() {
- return _this.queryInterface
- .addColumn(table, column, type)
- .then(function() {
- logger.info('Added column %s to %s', column, table);
- })
- .catch(function(err) {
- logger.info(JSON.stringify(err));
- });
- });
-};
-
-Migration.prototype.dropTable = function(table) {
- var _this = this;
- this.sequence.enqueue(function() {
- return _this.queryInterface
- .dropTable(table, {
- force: true
- })
- .then(function() {
- logger.info('table dropped %s', table);
- })
- .catch(function(err) {
- logger.info(JSON.stringify(err));
- });
- });
-};
-
-Migration.prototype.addIndex = function(table, column, indexName) {
- var _this = this;
- this.sequence.enqueue(function() {
- return _this.queryInterface
- .addIndex(table, column, {
- indexName: indexName
- })
- .then(function() {
- logger.info('addIndex %s %s %s', table, column.join(','), indexName);
- })
- .catch(function(err) {
- logger.info(JSON.stringify(err));
- });
- });
-};
-
-Migration.prototype.removeIndex = function(table, indexName) {
- var _this = this;
- this.sequence.enqueue(function() {
- return _this.queryInterface
- .removeIndex(table, indexName)
- .then(function() {
- logger.info('removeIndex %s %s', table, indexName);
- })
- .catch(function(err) {
- logger.info(JSON.stringify(err));
- });
- });
-};
-
-Migration.prototype.query = function(sql) {
- var _this = this;
- this.sequence.enqueue(function() {
- return _this.queryInterface.sequelize
- .query(sql)
- .then(function() {
- logger.info('query %s', sql);
- })
- .catch(function(err) {
- logger.info(JSON.stringify(err));
- });
- });
-};
-
-Migration.prototype.removeColumn = function(table, column) {
- var _this = this;
- this.sequence.enqueue(function() {
- return _this.queryInterface
- .removeColumn(table, column)
- .then(function() {
- logger.info('Removed column %s from %s', column, table);
- })
- .catch(function(err) {
- logger.info(
- util.inspect(err, {
- showHidden: false,
- depth: null
- })
- );
- });
- });
-};
-
-Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
- var _this = this;
- this.sequence.enqueue(function() {
- return _this.queryInterface
- .renameColumn(table, oldColumn, newColumn)
- .then(function() {
- logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
- })
- .catch(function(err) {
- logger.info(
- util.inspect(err, {
- showHidden: false,
- depth: null
- })
- );
- });
- });
-};
-
-Migration.prototype.final = function(resolve) {
- this.sequence.enqueue(function() {
- return resolve();
- });
-};
-
-module.exports = {
- up: function(queryInterface, Sequelize) {
- return new BPromise(function(resolve) {
- var migration = new Migration(queryInterface);
-
- // START whatsapp
- migration.addColumn('whatsapp_accounts', 'baseUrl', {
- type: Sequelize.STRING
- });
-
- migration.changeColumn('whatsapp_accounts', 'type', {
- type: Sequelize.ENUM('twilio', 'sinch')
- });
-
- // START FINAL
- migration.final(resolve);
- // END FINAL
- });
- },
-
- down: function(queryInterface, Sequelize) {
- // var migration = new Migration(queryInterface);
- }
-};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['../api/network/network.model','ChatQueueReport','../api/chatQueueReport/chatQueueReport.model','ChatInternalMessage','../api/chatInternalMessage/chatInternalMessage.model','../api/jscriptyAnswerReport/jscriptyAnswerReport.model','JscriptyQuestionReport','../api/jscriptyQuestionReport/jscriptyQuestionReport.model','JscriptySessionReport','SmsQueueReport','../api/smsQueueReport/smsQueueReport.model','../api/squareReport/squareReport.model','SquareDetailsReport','../api/squareReportDetail/squareReportDetail.model','JscriptyProject','../api/jscriptyProject/jscriptyProject.model','Setting','../api/setting/setting.model','SquareOdbc','../api/squareOdbc/squareOdbc.model','../api/squareProject/squareProject.model','SquareRecording','../api/squareRecording/squareRecording.model','../api/squareMessage/squareMessage.model','Team','License','../api/license/license.model','Campaign','../api/campaign/campaign.model','Attachment','MailTransferReport','../api/mailTransferReport/mailTransferReport.model','ChatTransferReport','../api/chatTransferReport/chatTransferReport.model','FaxTransferReport','../api/faxTransferReport/faxTransferReport.model','SmsTransferReport','../api/smsTransferReport/smsTransferReport.model','CmList','../api/cmList/cmList.model','VoicePrefix','../api/voicePrefix/voicePrefix.model','UserProfile','../api/userProfile/userProfile.model','../api/userProfileSection/userProfileSection.model','UserProfileResource','UserNotification','WhatsappAccount','WhatsappApplication','WhatsappInteraction','../api/whatsappInteraction/whatsappInteraction.model','WhatsappMessage','../api/whatsappMessage/whatsappMessage.model','WhatsappQueueReport','../api/whatsappQueueReport/whatsappQueueReport.model','WhatsappTransferReport','../api/whatsappTransferReport/whatsappTransferReport.model','WhatsappQueue','CloudProvider','../api/cloudProvider/cloudProvider.model','../api/teamVoiceQueue/teamVoiceQueue.model','TeamVoicePrefix','../api/teamVoicePrefix/teamVoicePrefix.model','UserVoicePrefix','../api/userVoicePrefix/userVoicePrefix.model','hasOne','VoiceMail','cascade','UserId','hasMany','VoiceRecording','Recordings','VoiceQueuesRt','HopperHistory','OpenchannelInteractions','ChatInteractions','SmsInteractions','FaxInteraction','FaxInteractions','MailInteraction','MailInteractions','WhatsappInteractions','UserNotifications','SenderId','userProfileId','belongsToMany','Groups','chat_group_has_users','CmContact','Contacts','cm_user_has_contacts','Lists','cm_user_has_lists','user_has_mail_interactions','user_has_chat_interactions','user_has_openchannel_interactions','user_has_whatsapp_interactions','MailQueues','UserChatQueue','FaxQueues','SmsQueues','OpenchannelQueues','ChatWebsites','user_has_chat_websites','FaxAccounts','MailAccounts','user_has_mail_accounts','user_has_openchannel_accounts','SmsAccounts','user_has_sms_accounts','WhatsappAccounts','user_has_whatsapp_accounts','SquareProject','SquareProjects','user_has_square_projects','ChanSpyId','VoiceContext','Applications','Sounds','moh_has_sounds','Members','Hoppers','HopperFinals','VoiceQueueId','CmHopperHistory','TrunkId','belongsTo','TrunkBackup','Interval','IntervalId','mandatoryDispositionPauseId','voice_queues_has_cm_lists','Agents','Teams','BlackLists','voice_queues_has_cm_blacklists','Messages','mailboxuser','mailbox','VoiceCallReport','QueueCalls','uniqueid','AgentReports','Contact','ContactId','MailAccountId','MailServerOut','Imap','Smtp','Disposition','Dispositions','CannedAnswer','Answers','Interactions','MailApplication','List','team_has_mail_queues','MailInteractionId','Account','mail_interaction_has_tags','Tags','ThroughTags','Interaction','ChatWebsiteId','ChatOfflineMessageId','restrict','TagId','MailQueueReport','ListId','Dashboard','Items','FaxAccountId','Exntensions','user_has_fax_accounts','FaxInteractionId','fax_interaction_has_tags','Users','user_has_fax_interactions','AttachmentId','team_has_fax_queues','SmsAccountId','Owner','sms_interaction_has_tags','user_has_sms_interactions','SmsInteractionId','team_has_sms_queues','OpenchannelAccountId','mandatoryDispositionPause','OpenchannelQueue','OpenchannelQueueId','openchannel_interaction_has_tags','OpenchannelInteractionId','team_has_openchannel_queues','ChatProactiveAction','Queue','ChatQueueId','ChatInteractionId','chat_interaction_has_tags','Attachments','Website','CmCompany','CompanyId','JscriptySessions','Company','cm_contact_has_tags','Agent','OwnerId','CampaignId','All','Any','AutomationId','Extensions','MailApplications','ChatApplications','FaxApplications','DefaultReportId','CustomReportId','Mohs','whatsapp_interaction_has_tags','Trigger','AllCondition','TriggerAllId','TriggerId','Fields','AnalyticMetric','MetricId','AccountId','SalesforceField','Subjects','SubjectId','Descriptions','DescriptionId','FieldId','Subject','Description','VariableId','Field','Variable','Configurations','DeskField','ZohoAccount','int_zendesk_configuration_has_tags','FreshdeskConfiguration','VtigerConfiguration','VtigerAccount','ServicenowAccount','Dynamics365Field','FromId','ToId','SessionId','ProjectId','JscriptyAnswerReport','user_has_teams','TeamVoiceQueue','VoiceQueues','team_has_chat_queues','WhatsappQueues','HopperHistories','HopperBlacks','SquareProjectId','campaigns_has_cm_lists','campaigns_has_cm_blacklists','FromMailAccountId','FromAccount','FromUserId','FromAgent','ToUserId','ToQueue','ToAccount','FromChatWebsiteId','ToChatQueueId','ToChatWebsiteId','FromFaxAccountId','ToAgent','ToFaxQueueId','ToFaxAccountId','OpenchannelTransferReport','ToOpenchannelQueueId','FromSmsAccountId','ToSmsAccountId','CmCustomField','Queues','UserProfileSections','UserProfileSection','Resources','sectionId','WhatsappAccountId','WhatsappInteractionId','ToWhatsappAccountId','team_has_whatsapp_queues','exports','../config/environment','sequelize','lodash','motion2','xcall','xC@LL1234','127.0.0.1','utf8mb4','name','utf8','defaultsDeep','mysql','username','password','options','database','sequelizeHistory','User','import','VoiceChanSpy','../api/voiceChanSpy/voiceChanSpy.model','../api/voiceContext/voiceContext.model','VoiceExtension','../api/voiceExtension/voiceExtension.model','VoiceMusicOnHold','../api/voiceMusicOnHold/voiceMusicOnHold.model','VoiceQueue','../api/voiceQueue/voiceQueue.model','ScreenRecording','../api/screenRecording/screenRecording.model','../api/voiceMail/voiceMail.model','VoiceMailMessage','../api/voiceMailMessage/voiceMailMessage.model','../api/voiceCallReport/voiceCallReport.model','VoiceDialReport','../api/voiceDialReport/voiceDialReport.model','../api/voiceAgentReport/voiceAgentReport.model','VoiceQueueReport','../api/voiceQueueReport/voiceQueueReport.model','MemberReport','Trunk','../api/trunk/trunk.model','../api/voiceTransferReport/voiceTransferReport.model','UserVoiceQueueRt','../api/userVoiceQueueRt/userVoiceQueueRt.model','UserVoiceQueue','../api/userVoiceQueue/userVoiceQueue.model','../api/userChatQueue/userChatQueue.model','UserMailQueue','../api/userMailQueue/userMailQueue.model','UserFaxQueue','../api/userFaxQueue/userFaxQueue.model','UserSmsQueue','UserOpenchannelQueue','../api/userOpenchannelQueue/userOpenchannelQueue.model','UserWhatsappQueue','../api/userWhatsappQueue/userWhatsappQueue.model','MailServerIn','../api/mailServerOut/mailServerOut.model','MailAccount','MailQueue','MailSubstatus','MailMessage','../api/mailMessage/mailMessage.model','../api/mailApplication/mailApplication.model','../api/mailQueueReport/mailQueueReport.model','../api/dashboard/dashboard.model','DashboardItem','../api/dashboardItem/dashboardItem.model','FaxAccount','../api/faxAccount/faxAccount.model','FaxApplication','../api/faxApplication/faxApplication.model','../api/faxInteraction/faxInteraction.model','FaxMessage','../api/faxMessage/faxMessage.model','FaxQueue','../api/faxQueue/faxQueue.model','FaxQueueReport','../api/faxQueueReport/faxQueueReport.model','SmsAccount','../api/smsAccount/smsAccount.model','SmsApplication','SmsInteraction','../api/smsInteraction/smsInteraction.model','SmsMessage','../api/smsMessage/smsMessage.model','SmsQueue','../api/smsQueue/smsQueue.model','OpenchannelAccount','../api/openchannelAccount/openchannelAccount.model','OpenchannelApplication','../api/openchannelApplication/openchannelApplication.model','OpenchannelInteraction','OpenchannelMessage','../api/openchannelQueue/openchannelQueue.model','ChatWebsite','../api/chatWebsite/chatWebsite.model','OpenchannelQueueReport','ChatApplication','ChatInteraction','ChatMessage','ChatOfflineMessage','ChatQueue','ChatGroup','../api/chatGroup/chatGroup.model','../api/chatProactiveAction/chatProactiveAction.model','../api/cmCompany/cmCompany.model','../api/cmContact/cmContact.model','CmHopper','../api/cmHopper/cmHopper.model','CmHopperBlack','../api/cmHopperBlack/cmHopperBlack.model','CmHopperFinal','../api/cmHopperFinal/cmHopperFinal.model','ReportAgentPreview','Action','../api/action/action.model','Automation','../api/automation/automation.model','../api/cannedAnswer/cannedAnswer.model','../api/disposition/disposition.model','Condition','../api/condition/condition.model','../api/interval/interval.model','Pause','../api/pause/pause.model','Cdr','../api/cdr/cdr.model','../api/voiceQueuesLog/voiceQueuesLog.model','Schedule','../api/schedule/schedule.model','Sound','../api/sound/sound.model','Tag','../api/tag/tag.model','Template','../api/template/template.model','../api/trigger/trigger.model','Integration','../api/integration/integration.model','IntegrationReport','AnalyticCustomReport','../api/analyticCustomReport/analyticCustomReport.model','AnalyticDefaultReport','../api/analyticDefaultReport/analyticDefaultReport.model','../api/analyticExtractedReport/analyticExtractedReport.model','../api/analyticMetric/analyticMetric.model','AnalyticFieldReport','../api/analyticFieldReport/analyticFieldReport.model','AnalyticTreeReport','../api/analyticTreeReport/analyticTreeReport.model','SalesforceAccount','SalesforceConfiguration','../api/intSalesforceConfiguration/intSalesforceConfiguration.model','../api/intSalesforceField/intSalesforceField.model','SugarcrmAccount','../api/intSugarcrmAccount/intSugarcrmAccount.model','SugarcrmConfiguration','../api/intSugarcrmConfiguration/intSugarcrmConfiguration.model','SugarcrmField','DeskAccount','DeskConfiguration','../api/intDeskConfiguration/intDeskConfiguration.model','../api/intDeskField/intDeskField.model','../api/intZohoAccount/intZohoAccount.model','ZohoConfiguration','../api/intZohoConfiguration/intZohoConfiguration.model','ZohoField','../api/intZohoField/intZohoField.model','ZendeskAccount','../api/intZendeskAccount/intZendeskAccount.model','ZendeskConfiguration','../api/intZendeskConfiguration/intZendeskConfiguration.model','ZendeskField','FreshdeskAccount','../api/intFreshdeskAccount/intFreshdeskAccount.model','../api/intFreshdeskConfiguration/intFreshdeskConfiguration.model','FreshdeskField','../api/intFreshdeskField/intFreshdeskField.model','../api/intVtigerConfiguration/intVtigerConfiguration.model','VtigerField','../api/intVtigerField/intVtigerField.model','../api/intServicenowAccount/intServicenowAccount.model','ServicenowConfiguration','ServicenowField','Dynamics365Account','../api/intDynamics365Account/intDynamics365Account.model','Dynamics365Configuration','../api/intDynamics365Configuration/intDynamics365Configuration.model','FreshsalesAccount','FreshsalesConfiguration','../api/intFreshsalesConfiguration/intFreshsalesConfiguration.model','FreshsalesField','../api/intFreshsalesField/intFreshsalesField.model','Network'];(function(_0x2a3f33,_0x13381f){var _0x405459=function(_0x31dddd){while(--_0x31dddd){_0x2a3f33['push'](_0x2a3f33['shift']());}};_0x405459(++_0x13381f);}(_0xa9e0,0x123));var _0x0a9e=function(_0x54d4fe,_0x55e869){_0x54d4fe=_0x54d4fe-0x0;var _0x1ab5bb=_0xa9e0[_0x54d4fe];return _0x1ab5bb;};'use strict';var config=require(_0x0a9e('0x0'));var Sequelize=require(_0x0a9e('0x1'));var _=require(_0x0a9e('0x2'));var jstz=require('jstz');var timezone=jstz['determine']();config[_0x0a9e('0x1')]=_['defaultsDeep'](config[_0x0a9e('0x1')],{'database':_0x0a9e('0x3'),'username':_0x0a9e('0x4'),'password':_0x0a9e('0x5'),'options':{'host':_0x0a9e('0x6'),'port':0xcea,'dialect':'mysql','dialectOptions':{'charset':_0x0a9e('0x7')},'logging':![],'timezone':timezone[_0x0a9e('0x8')](),'define':{'charset':_0x0a9e('0x9'),'collate':'utf8_general_ci'}}});config['sequelizeHistory']=_[_0x0a9e('0xa')](config['sequelizeHistory'],{'database':'motion2','username':_0x0a9e('0x4'),'password':_0x0a9e('0x5'),'options':{'host':_0x0a9e('0x6'),'port':0xcea,'dialect':_0x0a9e('0xb'),'dialectOptions':{'charset':_0x0a9e('0x7')},'logging':![],'timezone':timezone[_0x0a9e('0x8')](),'define':{'charset':'utf8','collate':'utf8_general_ci'}}});var db={'Sequelize':Sequelize,'sequelize':new Sequelize(config['sequelize']['database'],config[_0x0a9e('0x1')][_0x0a9e('0xc')],config[_0x0a9e('0x1')][_0x0a9e('0xd')],config[_0x0a9e('0x1')][_0x0a9e('0xe')])};var dbH={'Sequelize':Sequelize,'sequelize':new Sequelize(config['sequelizeHistory'][_0x0a9e('0xf')],config[_0x0a9e('0x10')][_0x0a9e('0xc')],config[_0x0a9e('0x10')][_0x0a9e('0xd')],config[_0x0a9e('0x10')]['options'])};db[_0x0a9e('0x11')]=db['sequelize'][_0x0a9e('0x12')]('../api/user/user.model');db[_0x0a9e('0x13')]=db[_0x0a9e('0x1')]['import'](_0x0a9e('0x14'));db['VoiceContext']=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0x15'));db[_0x0a9e('0x16')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0x17'));db[_0x0a9e('0x18')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0x19'));db[_0x0a9e('0x1a')]=db['sequelize'][_0x0a9e('0x12')](_0x0a9e('0x1b'));db['VoiceRecording']=db[_0x0a9e('0x1')]['import']('../api/voiceRecording/voiceRecording.model');db[_0x0a9e('0x1c')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0x1d'));db['VoiceMail']=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0x1e'));db[_0x0a9e('0x1f')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0x20'));db['VoiceCallReport']=db['sequelize'][_0x0a9e('0x12')](_0x0a9e('0x21'));db[_0x0a9e('0x22')]=db[_0x0a9e('0x1')]['import'](_0x0a9e('0x23'));db['VoiceAgentReport']=db[_0x0a9e('0x1')]['import'](_0x0a9e('0x24'));db[_0x0a9e('0x25')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0x26'));db[_0x0a9e('0x27')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')]('../api/memberReport/memberReport.model');db[_0x0a9e('0x28')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0x29'));db['VoiceTransferReport']=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0x2a'));db[_0x0a9e('0x2b')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0x2c'));db[_0x0a9e('0x2d')]=db[_0x0a9e('0x1')]['import'](_0x0a9e('0x2e'));db['UserChatQueue']=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0x2f'));db[_0x0a9e('0x30')]=db[_0x0a9e('0x1')]['import'](_0x0a9e('0x31'));db[_0x0a9e('0x32')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0x33'));db[_0x0a9e('0x34')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')]('../api/userSmsQueue/userSmsQueue.model');db[_0x0a9e('0x35')]=db['sequelize'][_0x0a9e('0x12')](_0x0a9e('0x36'));db[_0x0a9e('0x37')]=db[_0x0a9e('0x1')]['import'](_0x0a9e('0x38'));db[_0x0a9e('0x39')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')]('../api/mailServerIn/mailServerIn.model');db['MailServerOut']=db[_0x0a9e('0x1')]['import'](_0x0a9e('0x3a'));db[_0x0a9e('0x3b')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')]('../api/mailAccount/mailAccount.model');db[_0x0a9e('0x3c')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')]('../api/mailQueue/mailQueue.model');db[_0x0a9e('0x3d')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')]('../api/mailSubstatus/mailSubstatus.model');db['MailInteraction']=db[_0x0a9e('0x1')][_0x0a9e('0x12')]('../api/mailInteraction/mailInteraction.model');db[_0x0a9e('0x3e')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0x3f'));db['MailApplication']=db['sequelize'][_0x0a9e('0x12')](_0x0a9e('0x40'));db['MailQueueReport']=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0x41'));db['Dashboard']=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0x42'));db[_0x0a9e('0x43')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0x44'));db[_0x0a9e('0x45')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0x46'));db[_0x0a9e('0x47')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0x48'));db['FaxInteraction']=db['sequelize'][_0x0a9e('0x12')](_0x0a9e('0x49'));db[_0x0a9e('0x4a')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0x4b'));db[_0x0a9e('0x4c')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0x4d'));db[_0x0a9e('0x4e')]=db[_0x0a9e('0x1')]['import'](_0x0a9e('0x4f'));db[_0x0a9e('0x50')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0x51'));db[_0x0a9e('0x52')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')]('../api/smsApplication/smsApplication.model');db[_0x0a9e('0x53')]=db['sequelize'][_0x0a9e('0x12')](_0x0a9e('0x54'));db[_0x0a9e('0x55')]=db['sequelize'][_0x0a9e('0x12')](_0x0a9e('0x56'));db[_0x0a9e('0x57')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0x58'));db[_0x0a9e('0x59')]=db['sequelize'][_0x0a9e('0x12')](_0x0a9e('0x5a'));db[_0x0a9e('0x5b')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0x5c'));db[_0x0a9e('0x5d')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')]('../api/openchannelInteraction/openchannelInteraction.model');db[_0x0a9e('0x5e')]=db[_0x0a9e('0x1')]['import']('../api/openchannelMessage/openchannelMessage.model');db['OpenchannelQueue']=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0x5f'));db[_0x0a9e('0x60')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0x61'));db[_0x0a9e('0x62')]=db['sequelize']['import']('../api/openchannelQueueReport/openchannelQueueReport.model');db[_0x0a9e('0x63')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')]('../api/chatApplication/chatApplication.model');db[_0x0a9e('0x64')]=db[_0x0a9e('0x1')]['import']('../api/chatInteraction/chatInteraction.model');db[_0x0a9e('0x65')]=db['sequelize'][_0x0a9e('0x12')]('../api/chatMessage/chatMessage.model');db[_0x0a9e('0x66')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')]('../api/chatOfflineMessage/chatOfflineMessage.model');db[_0x0a9e('0x67')]=db[_0x0a9e('0x1')]['import']('../api/chatQueue/chatQueue.model');db[_0x0a9e('0x68')]=db[_0x0a9e('0x1')]['import'](_0x0a9e('0x69'));db['ChatProactiveAction']=db[_0x0a9e('0x1')]['import'](_0x0a9e('0x6a'));db['CmCompany']=db['sequelize']['import'](_0x0a9e('0x6b'));db['CmContact']=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0x6c'));db[_0x0a9e('0x6d')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0x6e'));db[_0x0a9e('0x6f')]=db['sequelize'][_0x0a9e('0x12')](_0x0a9e('0x70'));db[_0x0a9e('0x71')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0x72'));db['CmHopperHistory']=db[_0x0a9e('0x1')][_0x0a9e('0x12')]('../api/cmHopperHistory/cmHopperHistory.model');db[_0x0a9e('0x73')]=db['sequelize'][_0x0a9e('0x12')]('../api/reportAgentPreview/reportAgentPreview.model');db['CmCustomField']=db['sequelize'][_0x0a9e('0x12')]('../api/cmCustomField/cmCustomField.model');db[_0x0a9e('0x74')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0x75'));db[_0x0a9e('0x76')]=db[_0x0a9e('0x1')]['import'](_0x0a9e('0x77'));db['CannedAnswer']=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0x78'));db['Disposition']=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0x79'));db[_0x0a9e('0x7a')]=db['sequelize'][_0x0a9e('0x12')](_0x0a9e('0x7b'));db['Interval']=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0x7c'));db[_0x0a9e('0x7d')]=db[_0x0a9e('0x1')]['import'](_0x0a9e('0x7e'));db[_0x0a9e('0x7f')]=db[_0x0a9e('0x1')]['import'](_0x0a9e('0x80'));db['VoiceQueuesLog']=db['sequelize'][_0x0a9e('0x12')](_0x0a9e('0x81'));db[_0x0a9e('0x82')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0x83'));db[_0x0a9e('0x84')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0x85'));db[_0x0a9e('0x86')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0x87'));db[_0x0a9e('0x88')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0x89'));db['Trigger']=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0x8a'));db['Variable']=db[_0x0a9e('0x1')][_0x0a9e('0x12')]('../api/variable/variable.model');db[_0x0a9e('0x8b')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0x8c'));db[_0x0a9e('0x8d')]=db['sequelize']['import']('../api/integrationReport/integrationReport.model');db[_0x0a9e('0x8e')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0x8f'));db[_0x0a9e('0x90')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0x91'));db['AnalyticExtractedReport']=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0x92'));db['AnalyticMetric']=db[_0x0a9e('0x1')]['import'](_0x0a9e('0x93'));db[_0x0a9e('0x94')]=db['sequelize'][_0x0a9e('0x12')](_0x0a9e('0x95'));db[_0x0a9e('0x96')]=db[_0x0a9e('0x1')]['import'](_0x0a9e('0x97'));db[_0x0a9e('0x98')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')]('../api/intSalesforceAccount/intSalesforceAccount.model');db[_0x0a9e('0x99')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0x9a'));db['SalesforceField']=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0x9b'));db[_0x0a9e('0x9c')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0x9d'));db[_0x0a9e('0x9e')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0x9f'));db[_0x0a9e('0xa0')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')]('../api/intSugarcrmField/intSugarcrmField.model');db[_0x0a9e('0xa1')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')]('../api/intDeskAccount/intDeskAccount.model');db[_0x0a9e('0xa2')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0xa3'));db['DeskField']=db['sequelize'][_0x0a9e('0x12')](_0x0a9e('0xa4'));db['ZohoAccount']=db[_0x0a9e('0x1')]['import'](_0x0a9e('0xa5'));db[_0x0a9e('0xa6')]=db['sequelize'][_0x0a9e('0x12')](_0x0a9e('0xa7'));db[_0x0a9e('0xa8')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0xa9'));db[_0x0a9e('0xaa')]=db['sequelize'][_0x0a9e('0x12')](_0x0a9e('0xab'));db[_0x0a9e('0xac')]=db[_0x0a9e('0x1')]['import'](_0x0a9e('0xad'));db[_0x0a9e('0xae')]=db['sequelize'][_0x0a9e('0x12')]('../api/intZendeskField/intZendeskField.model');db[_0x0a9e('0xaf')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0xb0'));db['FreshdeskConfiguration']=db['sequelize'][_0x0a9e('0x12')](_0x0a9e('0xb1'));db[_0x0a9e('0xb2')]=db['sequelize'][_0x0a9e('0x12')](_0x0a9e('0xb3'));db['VtigerAccount']=db['sequelize'][_0x0a9e('0x12')]('../api/intVtigerAccount/intVtigerAccount.model');db['VtigerConfiguration']=db['sequelize'][_0x0a9e('0x12')](_0x0a9e('0xb4'));db[_0x0a9e('0xb5')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0xb6'));db['ServicenowAccount']=db[_0x0a9e('0x1')]['import'](_0x0a9e('0xb7'));db[_0x0a9e('0xb8')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')]('../api/intServicenowConfiguration/intServicenowConfiguration.model');db[_0x0a9e('0xb9')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')]('../api/intServicenowField/intServicenowField.model');db[_0x0a9e('0xba')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0xbb'));db[_0x0a9e('0xbc')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0xbd'));db['Dynamics365Field']=db[_0x0a9e('0x1')][_0x0a9e('0x12')]('../api/intDynamics365Field/intDynamics365Field.model');db[_0x0a9e('0xbe')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')]('../api/intFreshsalesAccount/intFreshsalesAccount.model');db[_0x0a9e('0xbf')]=db['sequelize'][_0x0a9e('0x12')](_0x0a9e('0xc0'));db[_0x0a9e('0xc1')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0xc2'));db[_0x0a9e('0x8b')]=db[_0x0a9e('0x1')]['import'](_0x0a9e('0x8c'));db[_0x0a9e('0xc3')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0xc4'));db[_0x0a9e('0xc5')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0xc6'));db[_0x0a9e('0xc7')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0xc8'));db['JscriptyAnswerReport']=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0xc9'));db[_0x0a9e('0xca')]=db[_0x0a9e('0x1')]['import'](_0x0a9e('0xcb'));db[_0x0a9e('0xcc')]=db['sequelize'][_0x0a9e('0x12')]('../api/jscriptySessionReport/jscriptySessionReport.model');db[_0x0a9e('0xcd')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0xce'));db['SquareReport']=db[_0x0a9e('0x1')]['import'](_0x0a9e('0xcf'));db[_0x0a9e('0xd0')]=db['sequelize'][_0x0a9e('0x12')](_0x0a9e('0xd1'));db[_0x0a9e('0xd2')]=db['sequelize']['import'](_0x0a9e('0xd3'));db[_0x0a9e('0xd4')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0xd5'));db[_0x0a9e('0xd6')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0xd7'));db['SquareProject']=db[_0x0a9e('0x1')]['import'](_0x0a9e('0xd8'));db[_0x0a9e('0xd9')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0xda'));db['SquareMessage']=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0xdb'));db[_0x0a9e('0xdc')]=db[_0x0a9e('0x1')]['import']('../api/team/team.model');db[_0x0a9e('0xdd')]=db['sequelize'][_0x0a9e('0x12')](_0x0a9e('0xde'));db[_0x0a9e('0xdf')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0xe0'));db['Migration']=db['sequelize'][_0x0a9e('0x12')]('../api/migration/migration.model');db[_0x0a9e('0xe1')]=db['sequelize'][_0x0a9e('0x12')]('../api/attachment/attachment.model');db['Plugin']=db[_0x0a9e('0x1')][_0x0a9e('0x12')]('../api/plugin/plugin.model');db[_0x0a9e('0xe2')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0xe3'));db[_0x0a9e('0xe4')]=db['sequelize']['import'](_0x0a9e('0xe5'));db[_0x0a9e('0xe6')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0xe7'));db['OpenchannelTransferReport']=db[_0x0a9e('0x1')][_0x0a9e('0x12')]('../api/openchannelTransferReport/openchannelTransferReport.model');db[_0x0a9e('0xe8')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0xe9'));db[_0x0a9e('0xea')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0xeb'));db[_0x0a9e('0xec')]=db[_0x0a9e('0x1')]['import'](_0x0a9e('0xed'));db[_0x0a9e('0xee')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0xef'));db['UserProfileSection']=db['sequelize'][_0x0a9e('0x12')](_0x0a9e('0xf0'));db[_0x0a9e('0xf1')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')]('../api/userProfileResource/userProfileResource.model');db[_0x0a9e('0xf2')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')]('../api/userNotification/userNotification.model');db[_0x0a9e('0xf3')]=db['sequelize'][_0x0a9e('0x12')]('../api/whatsappAccount/whatsappAccount.model');db[_0x0a9e('0xf4')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')]('../api/whatsappApplication/whatsappApplication.model');db[_0x0a9e('0xf5')]=db['sequelize'][_0x0a9e('0x12')](_0x0a9e('0xf6'));db[_0x0a9e('0xf7')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0xf8'));db[_0x0a9e('0xf9')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0xfa'));db[_0x0a9e('0xfb')]=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0xfc'));db[_0x0a9e('0xfd')]=db[_0x0a9e('0x1')]['import']('../api/whatsappQueue/whatsappQueue.model');db[_0x0a9e('0xfe')]=db['sequelize'][_0x0a9e('0x12')](_0x0a9e('0xff'));db['TeamVoiceQueue']=db[_0x0a9e('0x1')][_0x0a9e('0x12')](_0x0a9e('0x100'));db[_0x0a9e('0x101')]=db['sequelize'][_0x0a9e('0x12')](_0x0a9e('0x102'));db[_0x0a9e('0x103')]=db[_0x0a9e('0x1')]['import'](_0x0a9e('0x104'));db[_0x0a9e('0x11')][_0x0a9e('0x105')](db['VoiceMail'],{'as':_0x0a9e('0x106'),'onDelete':_0x0a9e('0x107'),'foreignKey':_0x0a9e('0x108')});db['User'][_0x0a9e('0x109')](db[_0x0a9e('0x10a')],{'as':_0x0a9e('0x10b'),'foreignKey':_0x0a9e('0x108')});db[_0x0a9e('0x11')]['hasMany'](db[_0x0a9e('0x2b')],{'as':_0x0a9e('0x10c'),'foreignKey':'UserId'});db[_0x0a9e('0x11')][_0x0a9e('0x109')](db[_0x0a9e('0x16')],{'as':'Extensions','onDelete':'cascade','hooks':!![]});db['User'][_0x0a9e('0x109')](db[_0x0a9e('0x71')],{'as':'HopperFinals','foreignKey':_0x0a9e('0x108')});db[_0x0a9e('0x11')][_0x0a9e('0x109')](db['CmHopperHistory'],{'as':_0x0a9e('0x10d'),'foreignKey':_0x0a9e('0x108')});db[_0x0a9e('0x11')][_0x0a9e('0x109')](db[_0x0a9e('0x73')],{'as':_0x0a9e('0x73'),'foreignKey':_0x0a9e('0x108')});db[_0x0a9e('0x11')][_0x0a9e('0x109')](db['OpenchannelInteraction'],{'as':_0x0a9e('0x10e'),'foreignKey':'UserId'});db[_0x0a9e('0x11')][_0x0a9e('0x109')](db[_0x0a9e('0x64')],{'as':_0x0a9e('0x10f'),'foreignKey':_0x0a9e('0x108')});db[_0x0a9e('0x11')]['hasMany'](db[_0x0a9e('0x53')],{'as':_0x0a9e('0x110'),'foreignKey':_0x0a9e('0x108')});db[_0x0a9e('0x11')]['hasMany'](db[_0x0a9e('0x111')],{'as':_0x0a9e('0x112'),'foreignKey':_0x0a9e('0x108')});db[_0x0a9e('0x11')][_0x0a9e('0x109')](db[_0x0a9e('0x113')],{'as':_0x0a9e('0x114'),'foreignKey':_0x0a9e('0x108')});db[_0x0a9e('0x11')][_0x0a9e('0x109')](db['WhatsappInteraction'],{'as':_0x0a9e('0x115'),'foreignKey':_0x0a9e('0x108')});db[_0x0a9e('0x11')][_0x0a9e('0x109')](db[_0x0a9e('0xf2')],{'as':_0x0a9e('0x116'),'foreignKey':_0x0a9e('0x117')});db[_0x0a9e('0x11')]['belongsTo'](db[_0x0a9e('0xee')],{'as':_0x0a9e('0xee'),'foreignKey':_0x0a9e('0x118')});db['User'][_0x0a9e('0x119')](db[_0x0a9e('0x68')],{'as':_0x0a9e('0x11a'),'through':_0x0a9e('0x11b')});db[_0x0a9e('0x11')][_0x0a9e('0x119')](db[_0x0a9e('0x11c')],{'as':_0x0a9e('0x11d'),'through':_0x0a9e('0x11e')});db[_0x0a9e('0x11')]['belongsToMany'](db[_0x0a9e('0xea')],{'as':_0x0a9e('0x11f'),'through':_0x0a9e('0x120')});db[_0x0a9e('0x11')][_0x0a9e('0x119')](db[_0x0a9e('0xdc')],{'through':'user_has_teams'});db[_0x0a9e('0x11')]['belongsToMany'](db['MailInteraction'],{'as':'MailInteractions','through':_0x0a9e('0x121')});db[_0x0a9e('0x11')][_0x0a9e('0x119')](db[_0x0a9e('0x64')],{'as':'ChatInteractions','through':_0x0a9e('0x122')});db[_0x0a9e('0x11')][_0x0a9e('0x119')](db[_0x0a9e('0x111')],{'as':_0x0a9e('0x112'),'through':'user_has_fax_interactions'});db['User'][_0x0a9e('0x119')](db[_0x0a9e('0x53')],{'as':_0x0a9e('0x110'),'through':'user_has_sms_interactions'});db[_0x0a9e('0x11')][_0x0a9e('0x119')](db[_0x0a9e('0x5d')],{'as':'OpenchannelInteractions','through':_0x0a9e('0x123')});db[_0x0a9e('0x11')][_0x0a9e('0x119')](db['WhatsappInteraction'],{'as':_0x0a9e('0x115'),'through':_0x0a9e('0x124')});db[_0x0a9e('0x11')]['belongsToMany'](db['VoiceQueue'],{'as':'VoiceQueues','through':_0x0a9e('0x2d'),'required':![]});db[_0x0a9e('0x11')][_0x0a9e('0x119')](db[_0x0a9e('0xec')],{'as':'VoicePrefixes','through':_0x0a9e('0x103'),'required':![]});db['User'][_0x0a9e('0x119')](db[_0x0a9e('0x3c')],{'as':_0x0a9e('0x125'),'through':'UserMailQueue','required':![]});db[_0x0a9e('0x11')][_0x0a9e('0x119')](db[_0x0a9e('0x67')],{'as':'ChatQueues','through':_0x0a9e('0x126'),'required':![],'hooks':!![]});db['User'][_0x0a9e('0x119')](db['FaxQueue'],{'as':_0x0a9e('0x127'),'through':'UserFaxQueue','required':![]});db[_0x0a9e('0x11')][_0x0a9e('0x119')](db[_0x0a9e('0x57')],{'as':_0x0a9e('0x128'),'through':_0x0a9e('0x34'),'required':![]});db[_0x0a9e('0x11')][_0x0a9e('0x119')](db['OpenchannelQueue'],{'as':_0x0a9e('0x129'),'through':_0x0a9e('0x35'),'required':![]});db['User'][_0x0a9e('0x119')](db[_0x0a9e('0xfd')],{'as':'WhatsappQueues','through':_0x0a9e('0x37'),'required':![]});db[_0x0a9e('0x11')][_0x0a9e('0x119')](db['CmList'],{'through':_0x0a9e('0x120')});db[_0x0a9e('0x11')][_0x0a9e('0x119')](db[_0x0a9e('0x60')],{'as':_0x0a9e('0x12a'),'through':_0x0a9e('0x12b')});db[_0x0a9e('0x11')][_0x0a9e('0x119')](db[_0x0a9e('0x45')],{'as':_0x0a9e('0x12c'),'through':'user_has_fax_accounts'});db[_0x0a9e('0x11')]['belongsToMany'](db[_0x0a9e('0x3b')],{'as':_0x0a9e('0x12d'),'through':_0x0a9e('0x12e')});db[_0x0a9e('0x11')][_0x0a9e('0x119')](db[_0x0a9e('0x59')],{'as':'OpenchannelAccounts','through':_0x0a9e('0x12f')});db[_0x0a9e('0x11')][_0x0a9e('0x119')](db['SmsAccount'],{'as':_0x0a9e('0x130'),'through':_0x0a9e('0x131')});db[_0x0a9e('0x11')][_0x0a9e('0x119')](db[_0x0a9e('0xf3')],{'as':_0x0a9e('0x132'),'through':_0x0a9e('0x133')});db['User'][_0x0a9e('0x119')](db[_0x0a9e('0x134')],{'as':_0x0a9e('0x135'),'through':_0x0a9e('0x136')});db[_0x0a9e('0x13')][_0x0a9e('0x109')](db[_0x0a9e('0x16')],{'as':'SpiedAgents','onDelete':'cascade','foreignKey':_0x0a9e('0x137')});db[_0x0a9e('0x138')][_0x0a9e('0x109')](db[_0x0a9e('0x16')],{'onDelete':_0x0a9e('0x107')});db[_0x0a9e('0x16')][_0x0a9e('0x109')](db['VoiceExtension'],{'as':_0x0a9e('0x139'),'onDelete':_0x0a9e('0x107')});db[_0x0a9e('0x18')][_0x0a9e('0x119')](db[_0x0a9e('0x84')],{'as':_0x0a9e('0x13a'),'through':_0x0a9e('0x13b')});db['VoiceQueue'][_0x0a9e('0x109')](db[_0x0a9e('0x2b')],{'as':_0x0a9e('0x13c'),'foreignKey':'VoiceQueueId'});db[_0x0a9e('0x1a')][_0x0a9e('0x109')](db[_0x0a9e('0x6d')],{'as':_0x0a9e('0x13d'),'foreignKey':'VoiceQueueId'});db[_0x0a9e('0x1a')][_0x0a9e('0x109')](db[_0x0a9e('0x71')],{'as':_0x0a9e('0x13e'),'foreignKey':_0x0a9e('0x13f')});db[_0x0a9e('0x1a')][_0x0a9e('0x109')](db[_0x0a9e('0x140')],{'as':'HopperHistories','foreignKey':_0x0a9e('0x13f')});db[_0x0a9e('0x1a')][_0x0a9e('0x109')](db[_0x0a9e('0x73')],{'as':'ReportAgentPreview','foreignKey':'VoiceQueueId'});db[_0x0a9e('0x1a')][_0x0a9e('0x109')](db[_0x0a9e('0x6f')],{'as':'HopperBlacks','foreignKey':_0x0a9e('0x13f')});db[_0x0a9e('0x1a')]['hasMany'](db[_0x0a9e('0xcc')],{'as':'JscriptySessions','foreignKey':_0x0a9e('0x13f')});db['VoiceQueue']['belongsTo'](db['Trunk'],{'as':_0x0a9e('0x28'),'foreignKey':_0x0a9e('0x141')});db[_0x0a9e('0x1a')][_0x0a9e('0x142')](db[_0x0a9e('0x28')],{'as':_0x0a9e('0x143'),'foreignKey':'TrunkBackupId'});db[_0x0a9e('0x1a')][_0x0a9e('0x142')](db[_0x0a9e('0x144')],{'as':_0x0a9e('0x144'),'foreignKey':_0x0a9e('0x145')});db[_0x0a9e('0x1a')][_0x0a9e('0x142')](db['Pause'],{'as':'mandatoryDispositionPause','foreignKey':_0x0a9e('0x146')});db['VoiceQueue'][_0x0a9e('0x119')](db[_0x0a9e('0xea')],{'as':_0x0a9e('0x11f'),'through':_0x0a9e('0x147')});db[_0x0a9e('0x1a')][_0x0a9e('0x119')](db['User'],{'as':_0x0a9e('0x148'),'through':'UserVoiceQueue'});db['VoiceQueue'][_0x0a9e('0x119')](db['Team'],{'as':_0x0a9e('0x149'),'through':'TeamVoiceQueue'});db['VoiceQueue'][_0x0a9e('0x119')](db['CmList'],{'as':_0x0a9e('0x14a'),'through':_0x0a9e('0x14b')});db[_0x0a9e('0x10a')]['belongsTo'](db[_0x0a9e('0x11')],{'as':_0x0a9e('0x11'),'foreignKey':_0x0a9e('0x108')});db['ScreenRecording']['belongsTo'](db[_0x0a9e('0x11')],{'as':_0x0a9e('0x11'),'foreignKey':_0x0a9e('0x108')});db[_0x0a9e('0x106')][_0x0a9e('0x109')](db[_0x0a9e('0x1f')],{'as':_0x0a9e('0x14c'),'onDelete':_0x0a9e('0x107'),'foreignKey':_0x0a9e('0x14d'),'sourceKey':_0x0a9e('0x14e')});db['VoiceMailMessage']['belongsTo'](db['VoiceMail'],{'foreignKey':_0x0a9e('0x14d'),'targetKey':_0x0a9e('0x14e')});db[_0x0a9e('0x14f')][_0x0a9e('0x109')](db[_0x0a9e('0x25')],{'as':_0x0a9e('0x150'),'foreignKey':_0x0a9e('0x151'),'constraints':![]});db[_0x0a9e('0x14f')]['hasMany'](db['VoiceAgentReport'],{'as':_0x0a9e('0x152'),'foreignKey':_0x0a9e('0x151'),'constraints':![]});db['VoiceCallReport'][_0x0a9e('0x142')](db[_0x0a9e('0x11')],{'as':_0x0a9e('0x11'),'foreignKey':_0x0a9e('0x108')});db[_0x0a9e('0x14f')][_0x0a9e('0x142')](db[_0x0a9e('0x11c')],{'as':_0x0a9e('0x153'),'foreignKey':_0x0a9e('0x154')});db[_0x0a9e('0x39')][_0x0a9e('0x142')](db[_0x0a9e('0x3b')],{'as':'MailAccount','foreignKey':_0x0a9e('0x155')});db[_0x0a9e('0x156')][_0x0a9e('0x142')](db[_0x0a9e('0x3b')],{'as':_0x0a9e('0x3b'),'foreignKey':_0x0a9e('0x155')});db[_0x0a9e('0x3b')][_0x0a9e('0x105')](db[_0x0a9e('0x39')],{'as':_0x0a9e('0x157'),'onDelete':_0x0a9e('0x107')});db[_0x0a9e('0x3b')]['hasOne'](db['MailServerOut'],{'as':_0x0a9e('0x158'),'onDelete':_0x0a9e('0x107')});db[_0x0a9e('0x3b')][_0x0a9e('0x109')](db[_0x0a9e('0x159')],{'as':_0x0a9e('0x15a'),'foreignKey':_0x0a9e('0x155'),'onDelete':'cascade'});db[_0x0a9e('0x3b')]['hasMany'](db[_0x0a9e('0x15b')],{'as':_0x0a9e('0x15c'),'foreignKey':_0x0a9e('0x155')});db[_0x0a9e('0x3b')][_0x0a9e('0x109')](db[_0x0a9e('0x3e')],{'as':_0x0a9e('0x14c'),'foreignKey':_0x0a9e('0x155')});db[_0x0a9e('0x3b')][_0x0a9e('0x109')](db[_0x0a9e('0x113')],{'as':_0x0a9e('0x15d')});db[_0x0a9e('0x3b')][_0x0a9e('0x109')](db[_0x0a9e('0x15e')],{'as':_0x0a9e('0x139')});db['MailAccount']['belongsTo'](db[_0x0a9e('0xea')],{'as':_0x0a9e('0x15f'),'foreignKey':'ListId'});db['MailAccount'][_0x0a9e('0x142')](db[_0x0a9e('0x88')],{'as':_0x0a9e('0x88'),'foreignKey':'TemplateId'});db[_0x0a9e('0x3b')]['belongsTo'](db[_0x0a9e('0x7d')],{'as':'mandatoryDispositionPause','foreignKey':_0x0a9e('0x146')});db['MailAccount'][_0x0a9e('0x119')](db[_0x0a9e('0x11')],{'as':_0x0a9e('0x148'),'through':'user_has_mail_accounts'});db[_0x0a9e('0x3c')]['belongsToMany'](db['User'],{'as':_0x0a9e('0x148'),'through':_0x0a9e('0x30')});db[_0x0a9e('0x3c')][_0x0a9e('0x119')](db[_0x0a9e('0xdc')],{'through':_0x0a9e('0x160'),'as':_0x0a9e('0x149')});db[_0x0a9e('0x113')][_0x0a9e('0x109')](db[_0x0a9e('0x3e')],{'as':_0x0a9e('0x14c'),'onDelete':_0x0a9e('0x107'),'foreignKey':_0x0a9e('0x161')});db[_0x0a9e('0x113')][_0x0a9e('0x142')](db[_0x0a9e('0x3b')],{'as':_0x0a9e('0x162'),'foreignKey':_0x0a9e('0x155')});db[_0x0a9e('0x113')]['belongsTo'](db[_0x0a9e('0x11c')],{'as':_0x0a9e('0x153'),'foreignKey':_0x0a9e('0x154')});db[_0x0a9e('0x113')]['belongsTo'](db['User'],{'as':'Owner','foreignKey':_0x0a9e('0x108')});db['MailInteraction'][_0x0a9e('0x119')](db[_0x0a9e('0x86')],{'through':_0x0a9e('0x163'),'as':_0x0a9e('0x164')});db[_0x0a9e('0x113')][_0x0a9e('0x119')](db[_0x0a9e('0x86')],{'through':_0x0a9e('0x163'),'as':_0x0a9e('0x165')});db[_0x0a9e('0x113')]['belongsToMany'](db[_0x0a9e('0x11')],{'as':'Users','through':_0x0a9e('0x121'),'foreignKey':'MailInteractionId'});db[_0x0a9e('0x3e')][_0x0a9e('0x109')](db[_0x0a9e('0xe1')],{'as':'Attachments','onDelete':_0x0a9e('0x107')});db[_0x0a9e('0x3e')]['belongsTo'](db['User'],{'as':_0x0a9e('0x11')});db[_0x0a9e('0x3e')][_0x0a9e('0x142')](db['CmContact'],{'onDelete':'cascade','as':'Contact'});db[_0x0a9e('0x3e')][_0x0a9e('0x142')](db[_0x0a9e('0x113')],{'as':_0x0a9e('0x166'),'foreignKey':_0x0a9e('0x161')});db[_0x0a9e('0x3e')][_0x0a9e('0x142')](db[_0x0a9e('0x3b')],{'as':_0x0a9e('0x162'),'foreignKey':_0x0a9e('0x155')});db[_0x0a9e('0x3e')][_0x0a9e('0x142')](db[_0x0a9e('0x60')],{'as':_0x0a9e('0x60'),'foreignKey':_0x0a9e('0x167')});db[_0x0a9e('0x3e')][_0x0a9e('0x142')](db[_0x0a9e('0x66')],{'as':'ChatOfflineMessage','foreignKey':_0x0a9e('0x168')});db[_0x0a9e('0x15e')][_0x0a9e('0x142')](db[_0x0a9e('0x11')],{'onDelete':_0x0a9e('0x169')});db[_0x0a9e('0x15e')]['belongsTo'](db[_0x0a9e('0x3c')],{'onDelete':_0x0a9e('0x169')});db[_0x0a9e('0x15e')][_0x0a9e('0x142')](db[_0x0a9e('0x3b')],{'onDelete':_0x0a9e('0x169')});db[_0x0a9e('0x15e')][_0x0a9e('0x142')](db[_0x0a9e('0x144')],{'onDelete':'restrict','foreignKey':'IntervalId'});db[_0x0a9e('0x15e')][_0x0a9e('0x142')](db['Tag'],{'onDelete':_0x0a9e('0x169'),'foreignKey':_0x0a9e('0x16a')});db['MailQueueReport'][_0x0a9e('0x142')](db['MailAccount'],{});db[_0x0a9e('0x16b')][_0x0a9e('0x142')](db['CmList'],{'as':_0x0a9e('0x15f'),'foreignKey':_0x0a9e('0x16c')});db['MailQueueReport'][_0x0a9e('0x142')](db[_0x0a9e('0x11c')],{'as':'Contact','foreignKey':_0x0a9e('0x154')});db[_0x0a9e('0x16b')][_0x0a9e('0x142')](db[_0x0a9e('0x113')],{});db[_0x0a9e('0x16b')][_0x0a9e('0x142')](db['MailMessage'],{});db[_0x0a9e('0x16b')][_0x0a9e('0x142')](db['User'],{});db[_0x0a9e('0x16b')][_0x0a9e('0x142')](db[_0x0a9e('0x3c')],{});db[_0x0a9e('0x16d')][_0x0a9e('0x109')](db[_0x0a9e('0x43')],{'as':_0x0a9e('0x16e'),'onDelete':'cascade'});db['FaxAccount']['hasMany'](db['Disposition'],{'as':'Dispositions','foreignKey':_0x0a9e('0x16f'),'onDelete':_0x0a9e('0x107')});db['FaxAccount']['hasMany'](db[_0x0a9e('0x15b')],{'as':'Answers','foreignKey':_0x0a9e('0x16f')});db[_0x0a9e('0x45')][_0x0a9e('0x109')](db[_0x0a9e('0x111')],{'as':_0x0a9e('0x15d')});db[_0x0a9e('0x45')]['hasMany'](db[_0x0a9e('0x47')],{'as':_0x0a9e('0x139')});db['FaxAccount'][_0x0a9e('0x109')](db[_0x0a9e('0x16')],{'as':_0x0a9e('0x170'),'onDelete':_0x0a9e('0x107')});db[_0x0a9e('0x45')][_0x0a9e('0x109')](db[_0x0a9e('0x4a')],{'as':'Messages'});db[_0x0a9e('0x45')]['belongsTo'](db[_0x0a9e('0x28')],{'as':_0x0a9e('0x28')});db['FaxAccount'][_0x0a9e('0x142')](db[_0x0a9e('0xea')],{'as':'List','foreignKey':_0x0a9e('0x16c')});db['FaxAccount'][_0x0a9e('0x142')](db[_0x0a9e('0x7d')],{'as':'mandatoryDispositionPause','foreignKey':_0x0a9e('0x146')});db['FaxAccount'][_0x0a9e('0x119')](db[_0x0a9e('0x11')],{'as':_0x0a9e('0x148'),'through':_0x0a9e('0x171')});db[_0x0a9e('0x47')][_0x0a9e('0x142')](db[_0x0a9e('0x11')],{'onDelete':'restrict'});db[_0x0a9e('0x47')][_0x0a9e('0x142')](db[_0x0a9e('0x4c')],{'onDelete':_0x0a9e('0x169')});db[_0x0a9e('0x47')]['belongsTo'](db[_0x0a9e('0x45')],{'onDelete':'restrict'});db['FaxApplication'][_0x0a9e('0x142')](db['Tag'],{'onDelete':_0x0a9e('0x169'),'foreignKey':_0x0a9e('0x16a')});db['FaxInteraction'][_0x0a9e('0x109')](db[_0x0a9e('0x4a')],{'as':_0x0a9e('0x14c'),'onDelete':_0x0a9e('0x107'),'foreignKey':_0x0a9e('0x172')});db[_0x0a9e('0x111')][_0x0a9e('0x142')](db[_0x0a9e('0x45')],{'as':_0x0a9e('0x162'),'foreignKey':'FaxAccountId'});db[_0x0a9e('0x111')][_0x0a9e('0x142')](db[_0x0a9e('0x11c')],{'as':_0x0a9e('0x153'),'foreignKey':'ContactId'});db[_0x0a9e('0x111')][_0x0a9e('0x142')](db[_0x0a9e('0x11')],{'as':'Owner','foreignKey':_0x0a9e('0x108')});db[_0x0a9e('0x111')][_0x0a9e('0x119')](db['Tag'],{'through':_0x0a9e('0x173'),'as':'Tags'});db[_0x0a9e('0x111')][_0x0a9e('0x119')](db[_0x0a9e('0x86')],{'through':_0x0a9e('0x173'),'as':_0x0a9e('0x165')});db[_0x0a9e('0x111')][_0x0a9e('0x119')](db['User'],{'as':_0x0a9e('0x174'),'through':_0x0a9e('0x175'),'foreignKey':_0x0a9e('0x172')});db[_0x0a9e('0x4a')][_0x0a9e('0x142')](db[_0x0a9e('0x11')],{'onDelete':_0x0a9e('0x107'),'as':_0x0a9e('0x11')});db[_0x0a9e('0x4a')][_0x0a9e('0x142')](db[_0x0a9e('0x111')],{'as':_0x0a9e('0x166'),'foreignKey':_0x0a9e('0x172')});db[_0x0a9e('0x4a')][_0x0a9e('0x142')](db[_0x0a9e('0x11c')],{'onDelete':_0x0a9e('0x107'),'as':_0x0a9e('0x153')});db[_0x0a9e('0x4a')][_0x0a9e('0x142')](db[_0x0a9e('0xe1')],{'as':_0x0a9e('0xe1'),'foreignKey':_0x0a9e('0x176')});db['FaxMessage'][_0x0a9e('0x142')](db[_0x0a9e('0x45')],{'as':_0x0a9e('0x162'),'foreignKey':'FaxAccountId'});db[_0x0a9e('0x4c')]['belongsToMany'](db[_0x0a9e('0x11')],{'as':_0x0a9e('0x148'),'through':_0x0a9e('0x32')});db[_0x0a9e('0x4c')][_0x0a9e('0x119')](db[_0x0a9e('0xdc')],{'through':_0x0a9e('0x177'),'as':_0x0a9e('0x149')});db['FaxQueueReport'][_0x0a9e('0x142')](db[_0x0a9e('0x45')],{});db['FaxQueueReport'][_0x0a9e('0x142')](db[_0x0a9e('0xea')],{'as':_0x0a9e('0x15f'),'foreignKey':'ListId'});db[_0x0a9e('0x4e')][_0x0a9e('0x142')](db[_0x0a9e('0x11c')],{'as':_0x0a9e('0x153'),'foreignKey':'ContactId'});db[_0x0a9e('0x4e')][_0x0a9e('0x142')](db[_0x0a9e('0x111')],{});db[_0x0a9e('0x4e')][_0x0a9e('0x142')](db['FaxMessage'],{});db[_0x0a9e('0x4e')][_0x0a9e('0x142')](db['User'],{});db[_0x0a9e('0x4e')][_0x0a9e('0x142')](db[_0x0a9e('0x4c')],{});db['SmsAccount']['hasMany'](db[_0x0a9e('0x159')],{'as':_0x0a9e('0x15a'),'foreignKey':_0x0a9e('0x178'),'onDelete':_0x0a9e('0x107')});db[_0x0a9e('0x50')][_0x0a9e('0x109')](db[_0x0a9e('0x15b')],{'as':_0x0a9e('0x15c'),'foreignKey':'SmsAccountId'});db['SmsAccount'][_0x0a9e('0x109')](db['SmsMessage'],{'as':_0x0a9e('0x14c'),'foreignKey':_0x0a9e('0x178')});db[_0x0a9e('0x50')][_0x0a9e('0x109')](db['SmsInteraction'],{'as':_0x0a9e('0x15d')});db[_0x0a9e('0x50')]['hasMany'](db[_0x0a9e('0x52')],{'as':'Applications'});db[_0x0a9e('0x50')][_0x0a9e('0x142')](db[_0x0a9e('0xea')],{'as':_0x0a9e('0x15f'),'foreignKey':_0x0a9e('0x16c')});db[_0x0a9e('0x50')]['belongsTo'](db[_0x0a9e('0x7d')],{'as':'mandatoryDispositionPause','foreignKey':_0x0a9e('0x146')});db[_0x0a9e('0x50')][_0x0a9e('0x119')](db[_0x0a9e('0x11')],{'as':_0x0a9e('0x148'),'through':_0x0a9e('0x131')});db[_0x0a9e('0x52')]['belongsTo'](db[_0x0a9e('0x11')],{'onDelete':_0x0a9e('0x169')});db[_0x0a9e('0x52')][_0x0a9e('0x142')](db[_0x0a9e('0x57')],{'onDelete':'restrict'});db[_0x0a9e('0x52')][_0x0a9e('0x142')](db['SmsAccount'],{'onDelete':'restrict'});db[_0x0a9e('0x52')][_0x0a9e('0x142')](db[_0x0a9e('0x144')],{'onDelete':_0x0a9e('0x169'),'foreignKey':_0x0a9e('0x145')});db[_0x0a9e('0x52')]['belongsTo'](db[_0x0a9e('0x86')],{'onDelete':_0x0a9e('0x169'),'foreignKey':_0x0a9e('0x16a')});db['SmsInteraction'][_0x0a9e('0x109')](db[_0x0a9e('0x55')],{'as':_0x0a9e('0x14c'),'onDelete':_0x0a9e('0x107'),'foreignKey':'SmsInteractionId'});db['SmsInteraction'][_0x0a9e('0x142')](db[_0x0a9e('0x50')],{'as':_0x0a9e('0x162'),'foreignKey':_0x0a9e('0x178')});db[_0x0a9e('0x53')][_0x0a9e('0x142')](db[_0x0a9e('0x11c')],{'as':_0x0a9e('0x153'),'foreignKey':'ContactId'});db[_0x0a9e('0x53')]['belongsTo'](db[_0x0a9e('0x11')],{'as':_0x0a9e('0x179'),'foreignKey':_0x0a9e('0x108')});db['SmsInteraction']['belongsToMany'](db[_0x0a9e('0x86')],{'through':'sms_interaction_has_tags','as':_0x0a9e('0x164')});db['SmsInteraction']['belongsToMany'](db[_0x0a9e('0x86')],{'through':_0x0a9e('0x17a'),'as':_0x0a9e('0x165')});db[_0x0a9e('0x53')][_0x0a9e('0x119')](db[_0x0a9e('0x11')],{'as':_0x0a9e('0x174'),'through':_0x0a9e('0x17b'),'foreignKey':_0x0a9e('0x17c')});db[_0x0a9e('0x55')][_0x0a9e('0x142')](db[_0x0a9e('0x11')],{'as':_0x0a9e('0x11')});db['SmsMessage']['belongsTo'](db[_0x0a9e('0x11c')],{'onDelete':'cascade','as':_0x0a9e('0x153')});db[_0x0a9e('0x55')][_0x0a9e('0x142')](db['SmsInteraction'],{'onDelete':'cascade','as':_0x0a9e('0x166'),'foreignKey':_0x0a9e('0x17c')});db[_0x0a9e('0x55')][_0x0a9e('0x142')](db[_0x0a9e('0x50')],{'as':_0x0a9e('0x162'),'foreignKey':_0x0a9e('0x178')});db['SmsQueue'][_0x0a9e('0x119')](db['User'],{'as':_0x0a9e('0x148'),'through':_0x0a9e('0x34'),'foreignKey':'SmsQueueId'});db[_0x0a9e('0x57')][_0x0a9e('0x119')](db[_0x0a9e('0xdc')],{'through':_0x0a9e('0x17d'),'as':_0x0a9e('0x149')});db[_0x0a9e('0x59')]['hasMany'](db[_0x0a9e('0x159')],{'as':_0x0a9e('0x15a'),'foreignKey':_0x0a9e('0x17e'),'onDelete':'cascade'});db[_0x0a9e('0x59')][_0x0a9e('0x109')](db[_0x0a9e('0x15b')],{'as':'Answers','foreignKey':_0x0a9e('0x17e')});db[_0x0a9e('0x59')][_0x0a9e('0x109')](db[_0x0a9e('0x5d')],{'as':_0x0a9e('0x15d'),'foreignKey':_0x0a9e('0x17e')});db['OpenchannelAccount']['hasMany'](db[_0x0a9e('0x5e')],{'as':_0x0a9e('0x14c'),'foreignKey':'OpenchannelAccountId'});db[_0x0a9e('0x59')][_0x0a9e('0x109')](db[_0x0a9e('0x5b')],{'as':_0x0a9e('0x139'),'foreignKey':_0x0a9e('0x17e')});db[_0x0a9e('0x59')]['belongsTo'](db[_0x0a9e('0xea')],{'as':_0x0a9e('0x15f'),'foreignKey':_0x0a9e('0x16c')});db['OpenchannelAccount'][_0x0a9e('0x142')](db[_0x0a9e('0x7d')],{'as':_0x0a9e('0x17f'),'foreignKey':_0x0a9e('0x146')});db['OpenchannelAccount']['belongsToMany'](db[_0x0a9e('0x11')],{'as':_0x0a9e('0x148'),'through':_0x0a9e('0x12f')});db['OpenchannelApplication'][_0x0a9e('0x142')](db[_0x0a9e('0x11')],{'onDelete':_0x0a9e('0x169')});db[_0x0a9e('0x5b')][_0x0a9e('0x142')](db[_0x0a9e('0x180')],{'onDelete':_0x0a9e('0x169'),'foreignKey':_0x0a9e('0x181')});db['OpenchannelApplication']['belongsTo'](db[_0x0a9e('0x59')],{'onDelete':_0x0a9e('0x169'),'foreignKey':'OpenchannelAccountId'});db[_0x0a9e('0x5b')]['belongsTo'](db[_0x0a9e('0x144')],{'onDelete':_0x0a9e('0x169'),'foreignKey':'IntervalId'});db[_0x0a9e('0x5b')][_0x0a9e('0x142')](db['Tag'],{'onDelete':_0x0a9e('0x169'),'foreignKey':_0x0a9e('0x16a')});db[_0x0a9e('0x5d')][_0x0a9e('0x109')](db[_0x0a9e('0x5e')],{'as':_0x0a9e('0x14c'),'onDelete':_0x0a9e('0x107'),'foreignKey':'OpenchannelInteractionId'});db[_0x0a9e('0x5d')][_0x0a9e('0x142')](db[_0x0a9e('0x59')],{'as':_0x0a9e('0x162'),'foreignKey':_0x0a9e('0x17e')});db[_0x0a9e('0x5d')][_0x0a9e('0x142')](db['CmContact'],{'as':'Contact','foreignKey':_0x0a9e('0x154')});db[_0x0a9e('0x5d')][_0x0a9e('0x142')](db['User'],{'as':'Owner','foreignKey':_0x0a9e('0x108')});db['OpenchannelInteraction'][_0x0a9e('0x119')](db[_0x0a9e('0x86')],{'through':_0x0a9e('0x182'),'as':_0x0a9e('0x164')});db[_0x0a9e('0x5d')][_0x0a9e('0x119')](db[_0x0a9e('0x86')],{'through':_0x0a9e('0x182'),'as':_0x0a9e('0x165')});db['OpenchannelInteraction']['belongsToMany'](db[_0x0a9e('0x11')],{'as':'Users','through':_0x0a9e('0x123'),'foreignKey':_0x0a9e('0x183')});db[_0x0a9e('0x5e')][_0x0a9e('0x142')](db['User'],{'onDelete':_0x0a9e('0x107'),'as':_0x0a9e('0x11')});db[_0x0a9e('0x5e')]['belongsTo'](db[_0x0a9e('0x11c')],{'onDelete':_0x0a9e('0x107'),'as':_0x0a9e('0x153')});db['OpenchannelMessage'][_0x0a9e('0x142')](db[_0x0a9e('0x5d')],{'onDelete':_0x0a9e('0x107'),'as':_0x0a9e('0x166'),'foreignKey':_0x0a9e('0x183')});db[_0x0a9e('0x5e')]['belongsTo'](db['Attachment'],{'as':_0x0a9e('0xe1'),'foreignKey':_0x0a9e('0x176')});db[_0x0a9e('0x5e')]['belongsTo'](db['OpenchannelAccount'],{'as':_0x0a9e('0x162'),'foreignKey':_0x0a9e('0x17e')});db[_0x0a9e('0x180')]['belongsToMany'](db['User'],{'as':_0x0a9e('0x148'),'through':_0x0a9e('0x35'),'foreignKey':_0x0a9e('0x181')});db[_0x0a9e('0x180')][_0x0a9e('0x119')](db['Team'],{'through':_0x0a9e('0x184'),'as':'Teams'});db[_0x0a9e('0x60')][_0x0a9e('0x109')](db['Disposition'],{'as':_0x0a9e('0x15a'),'foreignKey':'ChatWebsiteId','onDelete':_0x0a9e('0x107')});db[_0x0a9e('0x60')][_0x0a9e('0x109')](db[_0x0a9e('0x15b')],{'as':_0x0a9e('0x15c'),'foreignKey':'ChatWebsiteId'});db[_0x0a9e('0x60')][_0x0a9e('0x109')](db[_0x0a9e('0x185')],{'as':'ProactiveActions'});db[_0x0a9e('0x60')]['hasMany'](db[_0x0a9e('0x64')],{'as':_0x0a9e('0x15d')});db[_0x0a9e('0x60')]['hasMany'](db[_0x0a9e('0x63')],{'as':_0x0a9e('0x139')});db[_0x0a9e('0x60')][_0x0a9e('0x109')](db[_0x0a9e('0x65')],{'as':_0x0a9e('0x14c')});db['ChatWebsite'][_0x0a9e('0x142')](db[_0x0a9e('0xea')],{'as':_0x0a9e('0x15f'),'foreignKey':_0x0a9e('0x16c')});db[_0x0a9e('0x60')][_0x0a9e('0x142')](db[_0x0a9e('0x144')],{'as':_0x0a9e('0x144'),'foreignKey':'IntervalId'});db[_0x0a9e('0x60')][_0x0a9e('0x142')](db[_0x0a9e('0x3b')],{'as':_0x0a9e('0x3b'),'foreignKey':'MailAccountId'});db[_0x0a9e('0x60')]['belongsTo'](db[_0x0a9e('0x7d')],{'as':_0x0a9e('0x17f'),'foreignKey':_0x0a9e('0x146')});db['ChatWebsite'][_0x0a9e('0x119')](db[_0x0a9e('0x11')],{'as':_0x0a9e('0x148'),'through':_0x0a9e('0x12b')});db['OpenchannelQueueReport'][_0x0a9e('0x142')](db[_0x0a9e('0x59')],{});db[_0x0a9e('0x62')][_0x0a9e('0x142')](db[_0x0a9e('0xea')],{'as':_0x0a9e('0x15f'),'foreignKey':_0x0a9e('0x16c')});db['OpenchannelQueueReport'][_0x0a9e('0x142')](db[_0x0a9e('0x11c')],{'as':_0x0a9e('0x153'),'foreignKey':_0x0a9e('0x154')});db['OpenchannelQueueReport'][_0x0a9e('0x142')](db['OpenchannelInteraction'],{});db[_0x0a9e('0x62')][_0x0a9e('0x142')](db[_0x0a9e('0x5e')],{});db[_0x0a9e('0x62')][_0x0a9e('0x142')](db[_0x0a9e('0x11')],{});db[_0x0a9e('0x62')]['belongsTo'](db[_0x0a9e('0x180')],{});db['ChatApplication'][_0x0a9e('0x142')](db[_0x0a9e('0x11')],{'as':'Agent','foreignKey':_0x0a9e('0x108'),'onDelete':_0x0a9e('0x169')});db[_0x0a9e('0x63')][_0x0a9e('0x142')](db['ChatQueue'],{'as':_0x0a9e('0x186'),'foreignKey':_0x0a9e('0x187'),'onDelete':'restrict'});db[_0x0a9e('0x63')]['belongsTo'](db['ChatWebsite'],{'as':'Website','foreignKey':_0x0a9e('0x167'),'onDelete':_0x0a9e('0x169')});db['ChatApplication'][_0x0a9e('0x142')](db[_0x0a9e('0x86')],{'onDelete':'restrict','foreignKey':_0x0a9e('0x16a')});db[_0x0a9e('0x64')][_0x0a9e('0x109')](db[_0x0a9e('0x65')],{'as':_0x0a9e('0x14c'),'onDelete':_0x0a9e('0x107'),'foreignKey':_0x0a9e('0x188')});db['ChatInteraction'][_0x0a9e('0x142')](db['ChatWebsite'],{'as':_0x0a9e('0x162'),'foreignKey':_0x0a9e('0x167')});db[_0x0a9e('0x64')][_0x0a9e('0x142')](db[_0x0a9e('0x11c')],{'as':_0x0a9e('0x153'),'foreignKey':'ContactId'});db[_0x0a9e('0x64')][_0x0a9e('0x142')](db[_0x0a9e('0x11')],{'as':'Owner','foreignKey':_0x0a9e('0x108')});db[_0x0a9e('0x64')][_0x0a9e('0x119')](db[_0x0a9e('0x86')],{'through':_0x0a9e('0x189'),'as':_0x0a9e('0x164')});db[_0x0a9e('0x64')][_0x0a9e('0x119')](db[_0x0a9e('0x86')],{'through':_0x0a9e('0x189'),'as':_0x0a9e('0x165')});db[_0x0a9e('0x64')][_0x0a9e('0x119')](db[_0x0a9e('0x11')],{'as':_0x0a9e('0x174'),'through':_0x0a9e('0x122'),'foreignKey':'ChatInteractionId'});db[_0x0a9e('0x65')][_0x0a9e('0x142')](db[_0x0a9e('0x11')],{'onDelete':'cascade','as':_0x0a9e('0x11')});db[_0x0a9e('0x65')][_0x0a9e('0x142')](db[_0x0a9e('0x11c')],{'onDelete':'cascade','as':_0x0a9e('0x153'),'foreignKey':_0x0a9e('0x154')});db[_0x0a9e('0x65')][_0x0a9e('0x142')](db['ChatInteraction'],{'onDelete':_0x0a9e('0x107'),'as':_0x0a9e('0x166'),'foreignKey':_0x0a9e('0x188')});db[_0x0a9e('0x65')]['belongsTo'](db['Attachment'],{'as':_0x0a9e('0xe1'),'foreignKey':_0x0a9e('0x176')});db[_0x0a9e('0x65')][_0x0a9e('0x142')](db[_0x0a9e('0x60')],{'as':_0x0a9e('0x162'),'foreignKey':_0x0a9e('0x167')});db[_0x0a9e('0x66')][_0x0a9e('0x109')](db[_0x0a9e('0xe1')],{'as':_0x0a9e('0x18a'),'foreignKey':_0x0a9e('0x168'),'onDelete':_0x0a9e('0x107'),'hooks':!![]});db[_0x0a9e('0x66')]['belongsTo'](db[_0x0a9e('0x11c')],{'onDelete':_0x0a9e('0x107'),'as':_0x0a9e('0x153'),'foreignKey':'ContactId'});db['ChatOfflineMessage'][_0x0a9e('0x142')](db['ChatWebsite'],{'as':_0x0a9e('0x162'),'foreignKey':_0x0a9e('0x167')});db[_0x0a9e('0x67')][_0x0a9e('0x119')](db['User'],{'as':'Agents','through':_0x0a9e('0x126'),'hooks':!![]});db[_0x0a9e('0x67')][_0x0a9e('0x119')](db[_0x0a9e('0xdc')],{'through':'team_has_chat_queues','as':_0x0a9e('0x149')});db[_0x0a9e('0x68')][_0x0a9e('0x109')](db[_0x0a9e('0xc7')],{'as':_0x0a9e('0x14c'),'foreignKey':'ChatGroupId','onDelete':'cascade'});db[_0x0a9e('0x68')][_0x0a9e('0x119')](db[_0x0a9e('0x11')],{'as':_0x0a9e('0x13c'),'through':_0x0a9e('0x11b')});db[_0x0a9e('0x185')][_0x0a9e('0x142')](db['ChatWebsite'],{'as':_0x0a9e('0x18b'),'foreignKey':_0x0a9e('0x167')});db[_0x0a9e('0x18c')]['hasMany'](db['CmContact'],{'as':'Contacts','foreignKey':_0x0a9e('0x18d')});db[_0x0a9e('0x11c')]['hasMany'](db[_0x0a9e('0x6d')],{'as':_0x0a9e('0x13d'),'foreignKey':_0x0a9e('0x154')});db['CmContact']['hasMany'](db[_0x0a9e('0x71')],{'as':_0x0a9e('0x13e'),'foreignKey':_0x0a9e('0x154')});db[_0x0a9e('0x11c')]['hasMany'](db[_0x0a9e('0x140')],{'as':'HopperHistories','foreignKey':'ContactId'});db[_0x0a9e('0x11c')]['hasMany'](db[_0x0a9e('0x73')],{'as':_0x0a9e('0x73'),'foreignKey':_0x0a9e('0x154')});db['CmContact'][_0x0a9e('0x109')](db[_0x0a9e('0xcc')],{'as':_0x0a9e('0x18e'),'foreignKey':'ContactId'});db['CmContact'][_0x0a9e('0x109')](db[_0x0a9e('0x5d')],{'as':_0x0a9e('0x10e'),'foreignKey':_0x0a9e('0x154'),'onDelete':_0x0a9e('0x169')});db[_0x0a9e('0x11c')]['hasMany'](db['ChatInteraction'],{'as':_0x0a9e('0x10f'),'foreignKey':_0x0a9e('0x154'),'onDelete':'restrict'});db['CmContact']['hasMany'](db['SmsInteraction'],{'as':'SmsInteractions','foreignKey':'ContactId','onDelete':_0x0a9e('0x169')});db['CmContact'][_0x0a9e('0x109')](db[_0x0a9e('0x111')],{'as':_0x0a9e('0x112'),'foreignKey':_0x0a9e('0x154'),'onDelete':_0x0a9e('0x169')});db[_0x0a9e('0x11c')][_0x0a9e('0x109')](db['MailInteraction'],{'as':_0x0a9e('0x114'),'foreignKey':_0x0a9e('0x154'),'onDelete':_0x0a9e('0x169')});db[_0x0a9e('0x11c')][_0x0a9e('0x142')](db[_0x0a9e('0x18c')],{'as':_0x0a9e('0x18f'),'foreignKey':_0x0a9e('0x18d')});db[_0x0a9e('0x11c')][_0x0a9e('0x142')](db[_0x0a9e('0xea')],{'as':'List','foreignKey':_0x0a9e('0x16c'),'onDelete':_0x0a9e('0x107')});db['CmContact'][_0x0a9e('0x119')](db['User'],{'as':_0x0a9e('0x174'),'through':_0x0a9e('0x11e')});db['CmContact']['belongsToMany'](db[_0x0a9e('0x86')],{'as':'Tags','through':_0x0a9e('0x190')});db[_0x0a9e('0x11c')][_0x0a9e('0x119')](db[_0x0a9e('0x86')],{'through':_0x0a9e('0x190'),'as':'ThroughTags'});db[_0x0a9e('0x6d')]['belongsTo'](db['CmContact'],{'as':_0x0a9e('0x153'),'foreignKey':_0x0a9e('0x154'),'onDelete':_0x0a9e('0x107')});db[_0x0a9e('0x6d')][_0x0a9e('0x142')](db['CmList'],{'as':_0x0a9e('0x15f'),'foreignKey':_0x0a9e('0x16c'),'onDelete':_0x0a9e('0x107')});db[_0x0a9e('0x6d')]['belongsTo'](db[_0x0a9e('0x11')],{'as':_0x0a9e('0x191'),'foreignKey':'UserId'});db[_0x0a9e('0x6d')][_0x0a9e('0x142')](db[_0x0a9e('0x1a')],{'as':_0x0a9e('0x186'),'foreignKey':'VoiceQueueId','onDelete':_0x0a9e('0x107')});db[_0x0a9e('0x6d')][_0x0a9e('0x142')](db[_0x0a9e('0xdf')],{'as':_0x0a9e('0xdf'),'foreignKey':'CampaignId','onDelete':_0x0a9e('0x107')});db[_0x0a9e('0x6d')]['belongsTo'](db[_0x0a9e('0x11')],{'as':'Owner','foreignKey':_0x0a9e('0x192')});db[_0x0a9e('0x6f')][_0x0a9e('0x142')](db[_0x0a9e('0x11c')],{'as':_0x0a9e('0x153'),'foreignKey':_0x0a9e('0x154'),'onDelete':_0x0a9e('0x107')});db[_0x0a9e('0x6f')][_0x0a9e('0x142')](db[_0x0a9e('0xea')],{'as':_0x0a9e('0x15f'),'foreignKey':_0x0a9e('0x16c'),'onDelete':_0x0a9e('0x107')});db[_0x0a9e('0x6f')][_0x0a9e('0x142')](db['VoiceQueue'],{'as':_0x0a9e('0x186'),'foreignKey':_0x0a9e('0x13f'),'onDelete':_0x0a9e('0x107')});db[_0x0a9e('0x6f')][_0x0a9e('0x142')](db[_0x0a9e('0xdf')],{'as':_0x0a9e('0xdf'),'foreignKey':_0x0a9e('0x193'),'onDelete':'cascade'});db['Automation']['hasMany'](db['Condition'],{'as':{'plural':_0x0a9e('0x194'),'singular':'OneAll'},'foreignKey':'AutomationAllId','onDelete':'cascade','hooks':!![]});db[_0x0a9e('0x76')][_0x0a9e('0x109')](db[_0x0a9e('0x7a')],{'as':{'plural':_0x0a9e('0x195'),'singular':'OneAny'},'foreignKey':'AutomationAnyId','onDelete':_0x0a9e('0x107'),'hooks':!![]});db[_0x0a9e('0x76')][_0x0a9e('0x109')](db[_0x0a9e('0x74')],{'as':'Actions','foreignKey':_0x0a9e('0x196'),'onDelete':_0x0a9e('0x107'),'hooks':!![]});db[_0x0a9e('0x159')][_0x0a9e('0x109')](db[_0x0a9e('0x159')],{'as':_0x0a9e('0x15a'),'foreignKey':'ParentId','onDelete':_0x0a9e('0x107')});db['Interval']['hasMany'](db[_0x0a9e('0x144')],{'as':'Intervals','foreignKey':_0x0a9e('0x145'),'onDelete':_0x0a9e('0x107'),'hooks':!![],'required':![]});db[_0x0a9e('0x144')][_0x0a9e('0x109')](db[_0x0a9e('0x16')],{'as':_0x0a9e('0x197'),'foreignKey':_0x0a9e('0x145'),'onDelete':_0x0a9e('0x169')});db[_0x0a9e('0x144')]['hasMany'](db[_0x0a9e('0x15e')],{'as':_0x0a9e('0x198'),'foreignKey':'IntervalId'});db[_0x0a9e('0x144')][_0x0a9e('0x109')](db[_0x0a9e('0x63')],{'as':_0x0a9e('0x199'),'foreignKey':'IntervalId'});db[_0x0a9e('0x144')][_0x0a9e('0x109')](db[_0x0a9e('0x47')],{'as':_0x0a9e('0x19a'),'foreignKey':_0x0a9e('0x145')});db['Interval']['hasMany'](db[_0x0a9e('0x52')],{'as':'SmsApplications','foreignKey':_0x0a9e('0x145')});db['Schedule'][_0x0a9e('0x142')](db['MailAccount'],{});db[_0x0a9e('0x82')]['belongsTo'](db[_0x0a9e('0x90')],{'foreignKey':_0x0a9e('0x19b')});db[_0x0a9e('0x82')]['belongsTo'](db['AnalyticCustomReport'],{'foreignKey':_0x0a9e('0x19c')});db['Sound'][_0x0a9e('0x119')](db['VoiceMusicOnHold'],{'as':_0x0a9e('0x19d'),'through':'moh_has_sounds','onDelete':_0x0a9e('0x169')});db[_0x0a9e('0x86')]['belongsToMany'](db[_0x0a9e('0x11c')],{'through':_0x0a9e('0x190')});db[_0x0a9e('0x86')][_0x0a9e('0x119')](db[_0x0a9e('0x64')],{'through':_0x0a9e('0x189')});db[_0x0a9e('0x86')][_0x0a9e('0x119')](db[_0x0a9e('0x113')],{'through':'mail_interaction_has_tags'});db[_0x0a9e('0x86')][_0x0a9e('0x119')](db[_0x0a9e('0x53')],{'through':_0x0a9e('0x17a')});db[_0x0a9e('0x86')]['belongsToMany'](db['FaxInteraction'],{'through':_0x0a9e('0x173')});db['Tag'][_0x0a9e('0x119')](db['OpenchannelInteraction'],{'through':_0x0a9e('0x182')});db[_0x0a9e('0x86')][_0x0a9e('0x119')](db[_0x0a9e('0xf5')],{'through':_0x0a9e('0x19e')});db[_0x0a9e('0x19f')][_0x0a9e('0x109')](db['Condition'],{'as':{'plural':'AllConditions','singular':_0x0a9e('0x1a0')},'foreignKey':_0x0a9e('0x1a1'),'onDelete':'cascade','hooks':!![]});db[_0x0a9e('0x19f')][_0x0a9e('0x109')](db[_0x0a9e('0x7a')],{'as':{'plural':'AnyConditions','singular':'AnyCondition'},'foreignKey':'TriggerAnyId','onDelete':_0x0a9e('0x107'),'hooks':!![]});db[_0x0a9e('0x19f')][_0x0a9e('0x109')](db[_0x0a9e('0x74')],{'as':'Actions','foreignKey':_0x0a9e('0x1a2'),'onDelete':_0x0a9e('0x107'),'hooks':!![]});db[_0x0a9e('0x8e')]['hasMany'](db[_0x0a9e('0x94')],{'as':'Fields','onDelete':'cascade','foreignKey':_0x0a9e('0x19c'),'hooks':!![]});db[_0x0a9e('0x90')]['hasMany'](db['AnalyticFieldReport'],{'as':_0x0a9e('0x1a3'),'onDelete':'cascade','foreignKey':_0x0a9e('0x19b')});db['AnalyticMetric'][_0x0a9e('0x109')](db[_0x0a9e('0x94')],{'as':_0x0a9e('0x1a3'),'onDelete':'cascade','foreignKey':'MetricId'});db[_0x0a9e('0x94')][_0x0a9e('0x142')](db[_0x0a9e('0x1a4')],{'foreignKey':_0x0a9e('0x1a5')});db['SalesforceAccount'][_0x0a9e('0x109')](db[_0x0a9e('0x99')],{'as':'Configurations','onDelete':_0x0a9e('0x107'),'foreignKey':_0x0a9e('0x1a6')});db[_0x0a9e('0x99')]['hasMany'](db[_0x0a9e('0x1a7')],{'as':_0x0a9e('0x1a8'),'onDelete':_0x0a9e('0x107'),'foreignKey':_0x0a9e('0x1a9')});db[_0x0a9e('0x99')][_0x0a9e('0x109')](db[_0x0a9e('0x1a7')],{'as':_0x0a9e('0x1aa'),'onDelete':_0x0a9e('0x107'),'foreignKey':_0x0a9e('0x1ab')});db[_0x0a9e('0x99')][_0x0a9e('0x109')](db[_0x0a9e('0x1a7')],{'as':_0x0a9e('0x1a3'),'onDelete':_0x0a9e('0x107'),'foreignKey':_0x0a9e('0x1ac')});db[_0x0a9e('0x99')][_0x0a9e('0x142')](db[_0x0a9e('0x98')],{'as':_0x0a9e('0x162'),'foreignKey':_0x0a9e('0x1a6')});db[_0x0a9e('0x1a7')]['hasMany'](db[_0x0a9e('0x1a7')],{'as':_0x0a9e('0x1ad'),'foreignKey':_0x0a9e('0x1a9')});db['SalesforceField'][_0x0a9e('0x109')](db[_0x0a9e('0x1a7')],{'as':_0x0a9e('0x1ae'),'foreignKey':_0x0a9e('0x1ab')});db['SalesforceField'][_0x0a9e('0x109')](db[_0x0a9e('0x1a7')],{'as':'Field','foreignKey':_0x0a9e('0x1ac')});db[_0x0a9e('0x1a7')][_0x0a9e('0x142')](db['Variable'],{'as':'Variable','foreignKey':_0x0a9e('0x1af')});db[_0x0a9e('0x9c')][_0x0a9e('0x109')](db['SugarcrmConfiguration'],{'as':'Configurations','onDelete':_0x0a9e('0x107'),'foreignKey':_0x0a9e('0x1a6')});db[_0x0a9e('0x9e')][_0x0a9e('0x109')](db['SugarcrmField'],{'as':_0x0a9e('0x1a8'),'onDelete':'cascade','foreignKey':'SubjectId'});db[_0x0a9e('0x9e')][_0x0a9e('0x109')](db[_0x0a9e('0xa0')],{'as':'Descriptions','onDelete':_0x0a9e('0x107'),'foreignKey':_0x0a9e('0x1ab')});db[_0x0a9e('0x9e')]['hasMany'](db['SugarcrmField'],{'as':_0x0a9e('0x1a3'),'onDelete':_0x0a9e('0x107'),'foreignKey':_0x0a9e('0x1ac')});db['SugarcrmConfiguration']['belongsTo'](db[_0x0a9e('0x9c')],{'as':'Account','foreignKey':'AccountId'});db['SugarcrmField'][_0x0a9e('0x109')](db[_0x0a9e('0xa0')],{'as':_0x0a9e('0x1ad'),'foreignKey':'SubjectId'});db[_0x0a9e('0xa0')][_0x0a9e('0x109')](db['SugarcrmField'],{'as':_0x0a9e('0x1ae'),'foreignKey':'DescriptionId'});db[_0x0a9e('0xa0')][_0x0a9e('0x109')](db['SugarcrmField'],{'as':_0x0a9e('0x1b0'),'foreignKey':_0x0a9e('0x1ac')});db[_0x0a9e('0xa0')]['belongsTo'](db[_0x0a9e('0x1b1')],{'as':_0x0a9e('0x1b1'),'foreignKey':_0x0a9e('0x1af')});db['DeskAccount'][_0x0a9e('0x109')](db[_0x0a9e('0xa2')],{'as':_0x0a9e('0x1b2'),'onDelete':'cascade','foreignKey':_0x0a9e('0x1a6')});db[_0x0a9e('0xa2')][_0x0a9e('0x109')](db[_0x0a9e('0x1b3')],{'as':_0x0a9e('0x1a8'),'onDelete':_0x0a9e('0x107'),'foreignKey':_0x0a9e('0x1a9')});db[_0x0a9e('0xa2')]['hasMany'](db[_0x0a9e('0x1b3')],{'as':_0x0a9e('0x1aa'),'onDelete':_0x0a9e('0x107'),'foreignKey':_0x0a9e('0x1ab')});db['DeskConfiguration'][_0x0a9e('0x109')](db[_0x0a9e('0x1b3')],{'as':'Fields','onDelete':_0x0a9e('0x107'),'foreignKey':_0x0a9e('0x1ac')});db[_0x0a9e('0xa2')][_0x0a9e('0x142')](db[_0x0a9e('0xa1')],{'as':_0x0a9e('0x162'),'foreignKey':_0x0a9e('0x1a6')});db[_0x0a9e('0xa2')]['belongsToMany'](db[_0x0a9e('0x86')],{'through':'int_desk_configuration_has_tags'});db[_0x0a9e('0x1b3')][_0x0a9e('0x109')](db['DeskField'],{'as':_0x0a9e('0x1ad'),'foreignKey':_0x0a9e('0x1a9')});db['DeskField'][_0x0a9e('0x109')](db[_0x0a9e('0x1b3')],{'as':'Description','foreignKey':_0x0a9e('0x1ab')});db['DeskField']['hasMany'](db['DeskField'],{'as':_0x0a9e('0x1b0'),'foreignKey':_0x0a9e('0x1ac')});db['DeskField'][_0x0a9e('0x142')](db[_0x0a9e('0x1b1')],{'as':'Variable','foreignKey':_0x0a9e('0x1af')});db[_0x0a9e('0x1b4')]['hasMany'](db[_0x0a9e('0xa6')],{'as':_0x0a9e('0x1b2'),'onDelete':_0x0a9e('0x107'),'foreignKey':'AccountId'});db[_0x0a9e('0xa6')][_0x0a9e('0x109')](db[_0x0a9e('0xa8')],{'as':_0x0a9e('0x1a8'),'onDelete':_0x0a9e('0x107'),'foreignKey':'SubjectId'});db[_0x0a9e('0xa6')]['hasMany'](db[_0x0a9e('0xa8')],{'as':_0x0a9e('0x1aa'),'onDelete':_0x0a9e('0x107'),'foreignKey':_0x0a9e('0x1ab')});db[_0x0a9e('0xa6')][_0x0a9e('0x109')](db[_0x0a9e('0xa8')],{'as':_0x0a9e('0x1a3'),'onDelete':_0x0a9e('0x107'),'foreignKey':'FieldId'});db[_0x0a9e('0xa6')][_0x0a9e('0x142')](db[_0x0a9e('0x1b4')],{'as':'Account','foreignKey':'AccountId'});db['ZohoField']['hasMany'](db['ZohoField'],{'as':_0x0a9e('0x1ad'),'foreignKey':'SubjectId'});db[_0x0a9e('0xa8')][_0x0a9e('0x109')](db[_0x0a9e('0xa8')],{'as':_0x0a9e('0x1ae'),'foreignKey':_0x0a9e('0x1ab')});db[_0x0a9e('0xa8')]['hasMany'](db[_0x0a9e('0xa8')],{'as':'Field','foreignKey':'FieldId'});db[_0x0a9e('0xa8')]['belongsTo'](db[_0x0a9e('0x1b1')],{'as':'Variable','foreignKey':_0x0a9e('0x1af')});db[_0x0a9e('0xaa')][_0x0a9e('0x109')](db[_0x0a9e('0xac')],{'as':_0x0a9e('0x1b2'),'onDelete':'cascade','foreignKey':_0x0a9e('0x1a6')});db[_0x0a9e('0xac')]['hasMany'](db[_0x0a9e('0xae')],{'as':_0x0a9e('0x1a8'),'foreignKey':'SubjectId'});db[_0x0a9e('0xac')][_0x0a9e('0x109')](db[_0x0a9e('0xae')],{'as':_0x0a9e('0x1aa'),'foreignKey':_0x0a9e('0x1ab')});db[_0x0a9e('0xac')][_0x0a9e('0x109')](db['ZendeskField'],{'as':_0x0a9e('0x1a3'),'foreignKey':_0x0a9e('0x1ac')});db[_0x0a9e('0xac')][_0x0a9e('0x142')](db['ZendeskAccount'],{'as':_0x0a9e('0x162'),'foreignKey':_0x0a9e('0x1a6')});db[_0x0a9e('0xac')][_0x0a9e('0x119')](db[_0x0a9e('0x86')],{'through':_0x0a9e('0x1b5')});db[_0x0a9e('0xae')][_0x0a9e('0x109')](db['ZendeskField'],{'as':_0x0a9e('0x1ad'),'foreignKey':_0x0a9e('0x1a9')});db[_0x0a9e('0xae')]['hasMany'](db[_0x0a9e('0xae')],{'as':_0x0a9e('0x1ae'),'foreignKey':_0x0a9e('0x1ab')});db[_0x0a9e('0xae')][_0x0a9e('0x109')](db[_0x0a9e('0xae')],{'as':_0x0a9e('0x1b0'),'foreignKey':_0x0a9e('0x1ac')});db[_0x0a9e('0xae')][_0x0a9e('0x142')](db['Variable'],{'as':_0x0a9e('0x1b1'),'foreignKey':_0x0a9e('0x1af')});db[_0x0a9e('0xaf')]['hasMany'](db['FreshdeskConfiguration'],{'as':_0x0a9e('0x1b2'),'onDelete':_0x0a9e('0x107'),'foreignKey':_0x0a9e('0x1a6')});db[_0x0a9e('0x1b6')][_0x0a9e('0x109')](db[_0x0a9e('0xb2')],{'as':_0x0a9e('0x1a8'),'onDelete':_0x0a9e('0x107'),'foreignKey':_0x0a9e('0x1a9')});db['FreshdeskConfiguration'][_0x0a9e('0x109')](db[_0x0a9e('0xb2')],{'as':'Descriptions','onDelete':_0x0a9e('0x107'),'foreignKey':_0x0a9e('0x1ab')});db['FreshdeskConfiguration']['hasMany'](db[_0x0a9e('0xb2')],{'as':_0x0a9e('0x1a3'),'onDelete':_0x0a9e('0x107'),'foreignKey':_0x0a9e('0x1ac')});db[_0x0a9e('0x1b6')]['belongsTo'](db[_0x0a9e('0xaf')],{'as':'Account','foreignKey':'AccountId'});db['FreshdeskConfiguration'][_0x0a9e('0x119')](db['Tag'],{'through':'int_freshdesk_configuration_has_tags'});db['FreshdeskField'][_0x0a9e('0x109')](db[_0x0a9e('0xb2')],{'as':_0x0a9e('0x1ad'),'foreignKey':_0x0a9e('0x1a9')});db['FreshdeskField'][_0x0a9e('0x109')](db['FreshdeskField'],{'as':'Description','foreignKey':_0x0a9e('0x1ab')});db[_0x0a9e('0xb2')][_0x0a9e('0x109')](db['FreshdeskField'],{'as':'Field','foreignKey':'FieldId'});db[_0x0a9e('0xb2')][_0x0a9e('0x142')](db[_0x0a9e('0x1b1')],{'as':_0x0a9e('0x1b1'),'foreignKey':_0x0a9e('0x1af')});db['VtigerAccount'][_0x0a9e('0x109')](db[_0x0a9e('0x1b7')],{'as':_0x0a9e('0x1b2'),'onDelete':_0x0a9e('0x107'),'foreignKey':_0x0a9e('0x1a6')});db[_0x0a9e('0x1b7')]['hasMany'](db[_0x0a9e('0xb5')],{'as':_0x0a9e('0x1a8'),'foreignKey':_0x0a9e('0x1a9')});db[_0x0a9e('0x1b7')][_0x0a9e('0x109')](db[_0x0a9e('0xb5')],{'as':_0x0a9e('0x1aa'),'foreignKey':_0x0a9e('0x1ab')});db[_0x0a9e('0x1b7')][_0x0a9e('0x109')](db[_0x0a9e('0xb5')],{'as':_0x0a9e('0x1a3'),'foreignKey':_0x0a9e('0x1ac')});db[_0x0a9e('0x1b7')][_0x0a9e('0x142')](db[_0x0a9e('0x1b8')],{'as':_0x0a9e('0x162'),'foreignKey':_0x0a9e('0x1a6')});db['VtigerField'][_0x0a9e('0x109')](db[_0x0a9e('0xb5')],{'as':'Subject','foreignKey':'SubjectId'});db['VtigerField'][_0x0a9e('0x109')](db[_0x0a9e('0xb5')],{'as':'Description','foreignKey':_0x0a9e('0x1ab')});db[_0x0a9e('0xb5')]['hasMany'](db[_0x0a9e('0xb5')],{'as':'Field','foreignKey':_0x0a9e('0x1ac')});db['VtigerField'][_0x0a9e('0x142')](db[_0x0a9e('0x1b1')],{'as':_0x0a9e('0x1b1'),'foreignKey':_0x0a9e('0x1af')});db['ServicenowAccount'][_0x0a9e('0x109')](db[_0x0a9e('0xb8')],{'as':_0x0a9e('0x1b2'),'onDelete':'cascade','foreignKey':'AccountId'});db['ServicenowConfiguration']['hasMany'](db[_0x0a9e('0xb9')],{'as':_0x0a9e('0x1a8'),'foreignKey':_0x0a9e('0x1a9')});db[_0x0a9e('0xb8')][_0x0a9e('0x109')](db['ServicenowField'],{'as':_0x0a9e('0x1aa'),'foreignKey':_0x0a9e('0x1ab')});db[_0x0a9e('0xb8')][_0x0a9e('0x109')](db['ServicenowField'],{'as':_0x0a9e('0x1a3'),'foreignKey':_0x0a9e('0x1ac')});db[_0x0a9e('0xb8')][_0x0a9e('0x142')](db[_0x0a9e('0x1b9')],{'as':'Account','foreignKey':_0x0a9e('0x1a6')});db[_0x0a9e('0xb9')][_0x0a9e('0x109')](db['ServicenowField'],{'as':_0x0a9e('0x1ad'),'foreignKey':'SubjectId'});db[_0x0a9e('0xb9')][_0x0a9e('0x109')](db[_0x0a9e('0xb9')],{'as':_0x0a9e('0x1ae'),'foreignKey':_0x0a9e('0x1ab')});db['ServicenowField'][_0x0a9e('0x109')](db[_0x0a9e('0xb9')],{'as':_0x0a9e('0x1b0'),'foreignKey':_0x0a9e('0x1ac')});db[_0x0a9e('0xb9')]['belongsTo'](db[_0x0a9e('0x1b1')],{'as':_0x0a9e('0x1b1'),'foreignKey':_0x0a9e('0x1af')});db['Dynamics365Account'][_0x0a9e('0x109')](db['Dynamics365Configuration'],{'as':'Configurations','onDelete':_0x0a9e('0x107'),'foreignKey':'AccountId'});db[_0x0a9e('0xbc')][_0x0a9e('0x109')](db[_0x0a9e('0x1ba')],{'as':'Subjects','onDelete':_0x0a9e('0x107'),'foreignKey':_0x0a9e('0x1a9')});db[_0x0a9e('0xbc')][_0x0a9e('0x109')](db[_0x0a9e('0x1ba')],{'as':_0x0a9e('0x1aa'),'onDelete':_0x0a9e('0x107'),'foreignKey':_0x0a9e('0x1ab')});db['Dynamics365Configuration'][_0x0a9e('0x109')](db[_0x0a9e('0x1ba')],{'as':_0x0a9e('0x1a3'),'onDelete':_0x0a9e('0x107'),'foreignKey':_0x0a9e('0x1ac')});db['Dynamics365Configuration']['belongsTo'](db[_0x0a9e('0xba')],{'as':'Account','foreignKey':_0x0a9e('0x1a6')});db[_0x0a9e('0x1ba')]['hasMany'](db[_0x0a9e('0x1ba')],{'as':_0x0a9e('0x1ad'),'foreignKey':_0x0a9e('0x1a9')});db['Dynamics365Field'][_0x0a9e('0x109')](db[_0x0a9e('0x1ba')],{'as':_0x0a9e('0x1ae'),'foreignKey':_0x0a9e('0x1ab')});db[_0x0a9e('0x1ba')][_0x0a9e('0x109')](db[_0x0a9e('0x1ba')],{'as':_0x0a9e('0x1b0'),'foreignKey':'FieldId'});db[_0x0a9e('0x1ba')][_0x0a9e('0x142')](db[_0x0a9e('0x1b1')],{'as':_0x0a9e('0x1b1'),'foreignKey':_0x0a9e('0x1af')});db['FreshsalesAccount'][_0x0a9e('0x109')](db['FreshsalesConfiguration'],{'as':_0x0a9e('0x1b2'),'onDelete':_0x0a9e('0x107'),'foreignKey':_0x0a9e('0x1a6')});db['FreshsalesConfiguration'][_0x0a9e('0x109')](db['FreshsalesField'],{'as':_0x0a9e('0x1a8'),'foreignKey':_0x0a9e('0x1a9')});db[_0x0a9e('0xbf')][_0x0a9e('0x109')](db['FreshsalesField'],{'as':_0x0a9e('0x1aa'),'foreignKey':'DescriptionId'});db[_0x0a9e('0xbf')][_0x0a9e('0x109')](db['FreshsalesField'],{'as':_0x0a9e('0x1a3'),'foreignKey':_0x0a9e('0x1ac')});db[_0x0a9e('0xbf')]['belongsTo'](db[_0x0a9e('0xbe')],{'as':'Account','foreignKey':_0x0a9e('0x1a6')});db[_0x0a9e('0xc1')]['hasMany'](db['FreshsalesField'],{'as':'Subject','foreignKey':'SubjectId'});db[_0x0a9e('0xc1')][_0x0a9e('0x109')](db[_0x0a9e('0xc1')],{'as':_0x0a9e('0x1ae'),'foreignKey':'DescriptionId'});db[_0x0a9e('0xc1')]['hasMany'](db[_0x0a9e('0xc1')],{'as':_0x0a9e('0x1b0'),'foreignKey':'FieldId'});db[_0x0a9e('0xc1')][_0x0a9e('0x142')](db[_0x0a9e('0x1b1')],{'as':_0x0a9e('0x1b1'),'foreignKey':_0x0a9e('0x1af')});db[_0x0a9e('0xc5')][_0x0a9e('0x142')](db['ChatWebsite'],{});db[_0x0a9e('0xc5')][_0x0a9e('0x142')](db[_0x0a9e('0xea')],{'as':_0x0a9e('0x15f'),'foreignKey':_0x0a9e('0x16c')});db[_0x0a9e('0xc5')][_0x0a9e('0x142')](db[_0x0a9e('0x11c')],{'as':_0x0a9e('0x153'),'foreignKey':_0x0a9e('0x154')});db[_0x0a9e('0xc5')]['belongsTo'](db[_0x0a9e('0x64')],{});db[_0x0a9e('0xc5')][_0x0a9e('0x142')](db[_0x0a9e('0x65')],{});db[_0x0a9e('0xc5')][_0x0a9e('0x142')](db[_0x0a9e('0x11')],{});db['ChatQueueReport'][_0x0a9e('0x142')](db[_0x0a9e('0x67')],{});db[_0x0a9e('0xc7')]['belongsTo'](db[_0x0a9e('0x11')],{'onDelete':_0x0a9e('0x107'),'foreignKey':_0x0a9e('0x1bb')});db['ChatInternalMessage']['belongsTo'](db[_0x0a9e('0x11')],{'onDelete':_0x0a9e('0x107'),'foreignKey':_0x0a9e('0x1bc')});db[_0x0a9e('0xcc')][_0x0a9e('0x109')](db['JscriptyQuestionReport'],{'foreignKey':_0x0a9e('0x1bd'),'onDelete':'cascade'});db[_0x0a9e('0xcc')][_0x0a9e('0x109')](db['JscriptyAnswerReport'],{'foreignKey':_0x0a9e('0x1bd'),'onDelete':'cascade'});db[_0x0a9e('0xcd')][_0x0a9e('0x142')](db['SmsAccount'],{});db[_0x0a9e('0xcd')][_0x0a9e('0x142')](db[_0x0a9e('0xea')],{'as':'List','foreignKey':_0x0a9e('0x16c')});db[_0x0a9e('0xcd')][_0x0a9e('0x142')](db[_0x0a9e('0x11c')],{'as':_0x0a9e('0x153'),'foreignKey':_0x0a9e('0x154')});db['SmsQueueReport'][_0x0a9e('0x142')](db[_0x0a9e('0x53')],{});db[_0x0a9e('0xcd')][_0x0a9e('0x142')](db['SmsMessage'],{});db['SmsQueueReport'][_0x0a9e('0x142')](db[_0x0a9e('0x11')],{});db[_0x0a9e('0xcd')]['belongsTo'](db['SmsQueue'],{});db[_0x0a9e('0xd2')]['hasMany'](db['JscriptySessionReport'],{'foreignKey':_0x0a9e('0x1be')});db[_0x0a9e('0xd2')]['hasMany'](db[_0x0a9e('0xca')],{'foreignKey':_0x0a9e('0x1be')});db[_0x0a9e('0xd2')][_0x0a9e('0x109')](db[_0x0a9e('0x1bf')],{'foreignKey':'ProjectId'});db[_0x0a9e('0x134')][_0x0a9e('0x119')](db['User'],{'as':_0x0a9e('0x174'),'through':_0x0a9e('0x136')});db[_0x0a9e('0xdc')][_0x0a9e('0x119')](db[_0x0a9e('0x11')],{'as':'Agents','through':_0x0a9e('0x1c0')});db[_0x0a9e('0xdc')]['belongsToMany'](db['VoiceQueue'],{'through':_0x0a9e('0x1c1'),'as':_0x0a9e('0x1c2')});db['Team']['belongsToMany'](db[_0x0a9e('0x3c')],{'through':_0x0a9e('0x160'),'as':_0x0a9e('0x125')});db[_0x0a9e('0xdc')][_0x0a9e('0x119')](db['ChatQueue'],{'through':_0x0a9e('0x1c3'),'as':'ChatQueues'});db['Team'][_0x0a9e('0x119')](db['FaxQueue'],{'through':_0x0a9e('0x177'),'as':'FaxQueues'});db[_0x0a9e('0xdc')]['belongsToMany'](db['SmsQueue'],{'through':_0x0a9e('0x17d'),'as':_0x0a9e('0x128')});db[_0x0a9e('0xdc')]['belongsToMany'](db['OpenchannelQueue'],{'through':'team_has_openchannel_queues','as':_0x0a9e('0x129')});db[_0x0a9e('0xdc')]['belongsToMany'](db[_0x0a9e('0xfd')],{'through':'team_has_whatsapp_queues','as':_0x0a9e('0x1c4')});db['Team'][_0x0a9e('0x119')](db[_0x0a9e('0xec')],{'through':'TeamVoicePrefix','as':'VoicePrefixes'});db['Campaign'][_0x0a9e('0x109')](db[_0x0a9e('0x6d')],{'as':_0x0a9e('0x13d'),'foreignKey':_0x0a9e('0x193')});db[_0x0a9e('0xdf')][_0x0a9e('0x109')](db[_0x0a9e('0x71')],{'as':_0x0a9e('0x13e'),'foreignKey':_0x0a9e('0x193')});db[_0x0a9e('0xdf')][_0x0a9e('0x109')](db[_0x0a9e('0x140')],{'as':_0x0a9e('0x1c5'),'foreignKey':_0x0a9e('0x193')});db[_0x0a9e('0xdf')]['hasMany'](db['CmHopperBlack'],{'as':_0x0a9e('0x1c6'),'foreignKey':_0x0a9e('0x193')});db[_0x0a9e('0xdf')][_0x0a9e('0x142')](db['Trunk'],{'as':_0x0a9e('0x28'),'foreignKey':'TrunkId'});db[_0x0a9e('0xdf')]['belongsTo'](db[_0x0a9e('0x28')],{'as':'TrunkBackup','foreignKey':'TrunkBackupId'});db[_0x0a9e('0xdf')][_0x0a9e('0x142')](db[_0x0a9e('0x144')],{'as':_0x0a9e('0x144'),'foreignKey':'IntervalId'});db['Campaign'][_0x0a9e('0x142')](db['SquareProject'],{'as':_0x0a9e('0x134'),'foreignKey':_0x0a9e('0x1c7')});db['Campaign'][_0x0a9e('0x119')](db['CmList'],{'as':_0x0a9e('0x11f'),'through':_0x0a9e('0x1c8')});db[_0x0a9e('0xdf')][_0x0a9e('0x119')](db[_0x0a9e('0xea')],{'as':_0x0a9e('0x14a'),'through':_0x0a9e('0x1c9')});db[_0x0a9e('0xe1')][_0x0a9e('0x142')](db[_0x0a9e('0x66')],{'as':_0x0a9e('0x66'),'foreignKey':_0x0a9e('0x168')});db[_0x0a9e('0xe2')][_0x0a9e('0x142')](db[_0x0a9e('0x3e')],{});db[_0x0a9e('0xe2')]['belongsTo'](db[_0x0a9e('0x113')],{});db[_0x0a9e('0xe2')][_0x0a9e('0x142')](db['MailAccount'],{'foreignKey':_0x0a9e('0x1ca'),'as':_0x0a9e('0x1cb')});db[_0x0a9e('0xe2')][_0x0a9e('0x142')](db[_0x0a9e('0x11')],{'foreignKey':_0x0a9e('0x1cc'),'as':_0x0a9e('0x1cd')});db[_0x0a9e('0xe2')][_0x0a9e('0x142')](db[_0x0a9e('0x11')],{'foreignKey':_0x0a9e('0x1ce'),'as':'ToAgent'});db[_0x0a9e('0xe2')][_0x0a9e('0x142')](db[_0x0a9e('0x3c')],{'foreignKey':'ToMailQueueId','as':_0x0a9e('0x1cf')});db['MailTransferReport']['belongsTo'](db[_0x0a9e('0x3b')],{'foreignKey':'ToMailAccountId','as':_0x0a9e('0x1d0')});db['ChatTransferReport'][_0x0a9e('0x142')](db[_0x0a9e('0x65')],{});db[_0x0a9e('0xe4')]['belongsTo'](db[_0x0a9e('0x64')],{});db['ChatTransferReport']['belongsTo'](db[_0x0a9e('0x60')],{'foreignKey':_0x0a9e('0x1d1'),'as':_0x0a9e('0x1cb')});db[_0x0a9e('0xe4')][_0x0a9e('0x142')](db[_0x0a9e('0x11')],{'foreignKey':'FromUserId','as':_0x0a9e('0x1cd')});db[_0x0a9e('0xe4')][_0x0a9e('0x142')](db[_0x0a9e('0x11')],{'foreignKey':_0x0a9e('0x1ce'),'as':'ToAgent'});db[_0x0a9e('0xe4')][_0x0a9e('0x142')](db[_0x0a9e('0x67')],{'foreignKey':_0x0a9e('0x1d2'),'as':_0x0a9e('0x1cf')});db[_0x0a9e('0xe4')][_0x0a9e('0x142')](db[_0x0a9e('0x60')],{'foreignKey':_0x0a9e('0x1d3'),'as':_0x0a9e('0x1d0')});db[_0x0a9e('0xe6')][_0x0a9e('0x142')](db[_0x0a9e('0x4a')],{});db['FaxTransferReport']['belongsTo'](db[_0x0a9e('0x111')],{});db[_0x0a9e('0xe6')]['belongsTo'](db[_0x0a9e('0x45')],{'foreignKey':_0x0a9e('0x1d4'),'as':_0x0a9e('0x1cb')});db[_0x0a9e('0xe6')][_0x0a9e('0x142')](db['User'],{'foreignKey':'FromUserId','as':'FromAgent'});db[_0x0a9e('0xe6')][_0x0a9e('0x142')](db[_0x0a9e('0x11')],{'foreignKey':_0x0a9e('0x1ce'),'as':_0x0a9e('0x1d5')});db[_0x0a9e('0xe6')][_0x0a9e('0x142')](db[_0x0a9e('0x4c')],{'foreignKey':_0x0a9e('0x1d6'),'as':'ToQueue'});db['FaxTransferReport'][_0x0a9e('0x142')](db[_0x0a9e('0x45')],{'foreignKey':_0x0a9e('0x1d7'),'as':_0x0a9e('0x1d0')});db[_0x0a9e('0x1d8')][_0x0a9e('0x142')](db[_0x0a9e('0x5e')],{});db[_0x0a9e('0x1d8')][_0x0a9e('0x142')](db[_0x0a9e('0x5d')],{});db['OpenchannelTransferReport'][_0x0a9e('0x142')](db['OpenchannelAccount'],{'foreignKey':'FromOpenchannelAccountId','as':_0x0a9e('0x1cb')});db[_0x0a9e('0x1d8')][_0x0a9e('0x142')](db[_0x0a9e('0x11')],{'foreignKey':_0x0a9e('0x1cc'),'as':_0x0a9e('0x1cd')});db[_0x0a9e('0x1d8')][_0x0a9e('0x142')](db[_0x0a9e('0x11')],{'foreignKey':'ToUserId','as':_0x0a9e('0x1d5')});db[_0x0a9e('0x1d8')][_0x0a9e('0x142')](db['OpenchannelQueue'],{'foreignKey':_0x0a9e('0x1d9'),'as':_0x0a9e('0x1cf')});db['OpenchannelTransferReport']['belongsTo'](db['OpenchannelAccount'],{'foreignKey':'ToOpenchannelAccountId','as':_0x0a9e('0x1d0')});db[_0x0a9e('0xe8')]['belongsTo'](db[_0x0a9e('0x55')],{});db['SmsTransferReport'][_0x0a9e('0x142')](db[_0x0a9e('0x53')],{});db[_0x0a9e('0xe8')]['belongsTo'](db['SmsAccount'],{'foreignKey':_0x0a9e('0x1da'),'as':_0x0a9e('0x1cb')});db[_0x0a9e('0xe8')][_0x0a9e('0x142')](db[_0x0a9e('0x11')],{'foreignKey':_0x0a9e('0x1cc'),'as':_0x0a9e('0x1cd')});db[_0x0a9e('0xe8')][_0x0a9e('0x142')](db[_0x0a9e('0x11')],{'foreignKey':_0x0a9e('0x1ce'),'as':'ToAgent'});db[_0x0a9e('0xe8')][_0x0a9e('0x142')](db['SmsQueue'],{'foreignKey':'ToSmsQueueId','as':_0x0a9e('0x1cf')});db[_0x0a9e('0xe8')][_0x0a9e('0x142')](db[_0x0a9e('0x50')],{'foreignKey':_0x0a9e('0x1db'),'as':'ToAccount'});db[_0x0a9e('0xea')][_0x0a9e('0x109')](db['Disposition'],{'as':_0x0a9e('0x15a'),'foreignKey':'ListId','onDelete':'cascade'});db['CmList'][_0x0a9e('0x109')](db[_0x0a9e('0x1dc')],{'as':'CustomFields','foreignKey':'ListId'});db[_0x0a9e('0xea')][_0x0a9e('0x109')](db[_0x0a9e('0x11c')],{'as':_0x0a9e('0x11d'),'onDelete':'cascade','foreignKey':_0x0a9e('0x16c')});db[_0x0a9e('0xea')][_0x0a9e('0x109')](db['CmHopperFinal'],{'as':_0x0a9e('0x13e'),'foreignKey':_0x0a9e('0x16c')});db[_0x0a9e('0xea')][_0x0a9e('0x109')](db[_0x0a9e('0x140')],{'as':'HopperHistory','foreignKey':'ListId'});db[_0x0a9e('0xea')][_0x0a9e('0x109')](db[_0x0a9e('0x73')],{'as':'ReportAgentPreview','foreignKey':'ListId'});db['CmList']['belongsToMany'](db[_0x0a9e('0x1a')],{'as':_0x0a9e('0x1dd'),'through':_0x0a9e('0x147')});db[_0x0a9e('0xea')][_0x0a9e('0x119')](db['User'],{'as':_0x0a9e('0x148'),'through':_0x0a9e('0x120')});db[_0x0a9e('0xec')][_0x0a9e('0x109')](db[_0x0a9e('0x16')],{'as':'Extensions','onDelete':_0x0a9e('0x107')});db[_0x0a9e('0xec')][_0x0a9e('0x119')](db[_0x0a9e('0x11')],{'as':_0x0a9e('0x148'),'through':'UserVoicePrefix'});db[_0x0a9e('0xec')][_0x0a9e('0x119')](db['Team'],{'through':'TeamVoicePrefix','as':'Teams'});db[_0x0a9e('0xee')][_0x0a9e('0x109')](db['User'],{'as':_0x0a9e('0x174'),'foreignKey':'userProfileId'});db['UserProfile']['hasMany'](db['UserProfileSection'],{'as':_0x0a9e('0x1de'),'foreignKey':_0x0a9e('0x118'),'onDelete':_0x0a9e('0x107')});db[_0x0a9e('0x1df')][_0x0a9e('0x109')](db[_0x0a9e('0xf1')],{'as':_0x0a9e('0x1e0'),'foreignKey':_0x0a9e('0x1e1'),'onDelete':_0x0a9e('0x107')});db[_0x0a9e('0xf3')][_0x0a9e('0x109')](db['Disposition'],{'as':_0x0a9e('0x15a'),'foreignKey':'WhatsappAccountId','onDelete':_0x0a9e('0x107')});db[_0x0a9e('0xf3')][_0x0a9e('0x109')](db[_0x0a9e('0x15b')],{'as':_0x0a9e('0x15c'),'foreignKey':_0x0a9e('0x1e2')});db[_0x0a9e('0xf3')][_0x0a9e('0x109')](db[_0x0a9e('0xf7')],{'as':'Messages','foreignKey':'WhatsappAccountId'});db['WhatsappAccount'][_0x0a9e('0x109')](db[_0x0a9e('0xf5')],{'as':_0x0a9e('0x15d')});db['WhatsappAccount'][_0x0a9e('0x109')](db[_0x0a9e('0xf4')],{'as':_0x0a9e('0x139')});db['WhatsappAccount'][_0x0a9e('0x142')](db[_0x0a9e('0xea')],{'as':_0x0a9e('0x15f'),'foreignKey':_0x0a9e('0x16c')});db['WhatsappAccount'][_0x0a9e('0x142')](db[_0x0a9e('0x7d')],{'as':_0x0a9e('0x17f'),'foreignKey':_0x0a9e('0x146')});db[_0x0a9e('0xf3')][_0x0a9e('0x119')](db[_0x0a9e('0x11')],{'as':_0x0a9e('0x148'),'through':_0x0a9e('0x133')});db[_0x0a9e('0xf4')]['belongsTo'](db[_0x0a9e('0x11')],{'onDelete':'restrict'});db[_0x0a9e('0xf4')]['belongsTo'](db[_0x0a9e('0xfd')],{'onDelete':_0x0a9e('0x169')});db[_0x0a9e('0xf4')][_0x0a9e('0x142')](db[_0x0a9e('0xf3')],{'onDelete':_0x0a9e('0x169')});db['WhatsappApplication'][_0x0a9e('0x142')](db['Interval'],{'onDelete':_0x0a9e('0x169'),'foreignKey':_0x0a9e('0x145')});db[_0x0a9e('0xf4')]['belongsTo'](db['Tag'],{'onDelete':'restrict','foreignKey':_0x0a9e('0x16a')});db[_0x0a9e('0xf5')][_0x0a9e('0x109')](db[_0x0a9e('0xf7')],{'as':_0x0a9e('0x14c'),'onDelete':_0x0a9e('0x107'),'foreignKey':'WhatsappInteractionId'});db[_0x0a9e('0xf5')][_0x0a9e('0x142')](db[_0x0a9e('0xf3')],{'as':_0x0a9e('0x162'),'foreignKey':'WhatsappAccountId'});db[_0x0a9e('0xf5')][_0x0a9e('0x142')](db['CmContact'],{'as':_0x0a9e('0x153'),'foreignKey':_0x0a9e('0x154')});db[_0x0a9e('0xf5')]['belongsTo'](db[_0x0a9e('0x11')],{'as':'Owner','foreignKey':_0x0a9e('0x108')});db['WhatsappInteraction'][_0x0a9e('0x119')](db[_0x0a9e('0x86')],{'through':'whatsapp_interaction_has_tags','as':_0x0a9e('0x164')});db[_0x0a9e('0xf5')][_0x0a9e('0x119')](db['Tag'],{'through':_0x0a9e('0x19e'),'as':'ThroughTags'});db[_0x0a9e('0xf5')][_0x0a9e('0x119')](db[_0x0a9e('0x11')],{'as':_0x0a9e('0x174'),'through':_0x0a9e('0x124'),'foreignKey':'WhatsappInteractionId'});db[_0x0a9e('0xf7')][_0x0a9e('0x142')](db[_0x0a9e('0x11')],{'as':_0x0a9e('0x11')});db[_0x0a9e('0xf7')][_0x0a9e('0x142')](db[_0x0a9e('0x11c')],{'onDelete':_0x0a9e('0x107'),'as':_0x0a9e('0x153')});db[_0x0a9e('0xf7')][_0x0a9e('0x142')](db[_0x0a9e('0xf5')],{'onDelete':_0x0a9e('0x107'),'as':_0x0a9e('0x166'),'foreignKey':_0x0a9e('0x1e3')});db[_0x0a9e('0xf7')]['belongsTo'](db[_0x0a9e('0xf3')],{'as':'Account','foreignKey':_0x0a9e('0x1e2')});db[_0x0a9e('0xf9')]['belongsTo'](db[_0x0a9e('0xf3')],{});db[_0x0a9e('0xf9')]['belongsTo'](db[_0x0a9e('0xea')],{'as':_0x0a9e('0x15f'),'foreignKey':_0x0a9e('0x16c')});db['WhatsappQueueReport'][_0x0a9e('0x142')](db['CmContact'],{'as':'Contact','foreignKey':'ContactId'});db[_0x0a9e('0xf9')][_0x0a9e('0x142')](db[_0x0a9e('0xf5')],{});db[_0x0a9e('0xf9')][_0x0a9e('0x142')](db[_0x0a9e('0xfd')],{});db[_0x0a9e('0xf9')][_0x0a9e('0x142')](db[_0x0a9e('0xf7')],{});db[_0x0a9e('0xf9')][_0x0a9e('0x142')](db[_0x0a9e('0x11')],{});db[_0x0a9e('0xfb')][_0x0a9e('0x142')](db[_0x0a9e('0xf7')],{});db[_0x0a9e('0xfb')][_0x0a9e('0x142')](db[_0x0a9e('0xf5')],{});db[_0x0a9e('0xfb')][_0x0a9e('0x142')](db[_0x0a9e('0xf3')],{'foreignKey':'FromWhatsappAccountId','as':_0x0a9e('0x1cb')});db['WhatsappTransferReport'][_0x0a9e('0x142')](db[_0x0a9e('0xf3')],{'foreignKey':_0x0a9e('0x1e4'),'as':'ToAccount'});db[_0x0a9e('0xfb')][_0x0a9e('0x142')](db[_0x0a9e('0xfd')],{'foreignKey':'ToQueueId','as':_0x0a9e('0x1cf')});db[_0x0a9e('0xfb')][_0x0a9e('0x142')](db[_0x0a9e('0x11')],{'foreignKey':_0x0a9e('0x1cc'),'as':_0x0a9e('0x1cd')});db[_0x0a9e('0xfb')]['belongsTo'](db[_0x0a9e('0x11')],{'foreignKey':_0x0a9e('0x1ce'),'as':_0x0a9e('0x1d5')});db['WhatsappQueue']['belongsToMany'](db[_0x0a9e('0x11')],{'as':_0x0a9e('0x148'),'through':_0x0a9e('0x37'),'foreignKey':'WhatsappQueueId'});db[_0x0a9e('0xfd')][_0x0a9e('0x119')](db[_0x0a9e('0xdc')],{'through':_0x0a9e('0x1e5'),'as':_0x0a9e('0x149')});module[_0x0a9e('0x1e6')]={'db':db,'dbH':dbH};
\ No newline at end of file
+var _0x9390=['../api/intSalesforceAccount/intSalesforceAccount.model','SalesforceConfiguration','../api/intSalesforceConfiguration/intSalesforceConfiguration.model','SalesforceField','../api/intSalesforceField/intSalesforceField.model','SugarcrmAccount','../api/intSugarcrmAccount/intSugarcrmAccount.model','SugarcrmConfiguration','../api/intSugarcrmConfiguration/intSugarcrmConfiguration.model','../api/intSugarcrmField/intSugarcrmField.model','DeskAccount','../api/intDeskAccount/intDeskAccount.model','DeskConfiguration','../api/intDeskConfiguration/intDeskConfiguration.model','DeskField','../api/intDeskField/intDeskField.model','ZohoAccount','../api/intZohoAccount/intZohoAccount.model','ZohoConfiguration','../api/intZohoConfiguration/intZohoConfiguration.model','../api/intZohoField/intZohoField.model','../api/intZendeskAccount/intZendeskAccount.model','../api/intZendeskConfiguration/intZendeskConfiguration.model','ZendeskField','../api/intZendeskField/intZendeskField.model','FreshdeskConfiguration','FreshdeskField','../api/intFreshdeskField/intFreshdeskField.model','VtigerAccount','VtigerConfiguration','../api/intVtigerConfiguration/intVtigerConfiguration.model','VtigerField','../api/intVtigerField/intVtigerField.model','../api/intServicenowAccount/intServicenowAccount.model','ServicenowConfiguration','../api/intServicenowConfiguration/intServicenowConfiguration.model','ServicenowField','../api/intServicenowField/intServicenowField.model','Dynamics365Account','../api/intDynamics365Account/intDynamics365Account.model','Dynamics365Field','../api/intDynamics365Field/intDynamics365Field.model','../api/intFreshsalesAccount/intFreshsalesAccount.model','FreshsalesConfiguration','../api/intFreshsalesConfiguration/intFreshsalesConfiguration.model','FreshsalesField','../api/intFreshsalesField/intFreshsalesField.model','Network','../api/network/network.model','ChatQueueReport','../api/chatInternalMessage/chatInternalMessage.model','JscriptyAnswerReport','../api/jscriptyAnswerReport/jscriptyAnswerReport.model','JscriptyQuestionReport','JscriptySessionReport','../api/jscriptySessionReport/jscriptySessionReport.model','SmsQueueReport','../api/smsQueueReport/smsQueueReport.model','SquareReport','../api/squareReport/squareReport.model','SquareDetailsReport','../api/squareReportDetail/squareReportDetail.model','JscriptyProject','Setting','../api/setting/setting.model','SquareOdbc','../api/squareOdbc/squareOdbc.model','SquareProject','../api/squareProject/squareProject.model','SquareRecording','../api/squareRecording/squareRecording.model','SquareMessage','../api/squareMessage/squareMessage.model','Team','../api/team/team.model','License','../api/license/license.model','Campaign','../api/campaign/campaign.model','Migration','../api/migration/migration.model','Attachment','../api/attachment/attachment.model','../api/plugin/plugin.model','MailTransferReport','../api/mailTransferReport/mailTransferReport.model','ChatTransferReport','FaxTransferReport','OpenchannelTransferReport','../api/openchannelTransferReport/openchannelTransferReport.model','SmsTransferReport','../api/cmList/cmList.model','VoicePrefix','UserProfile','../api/userProfile/userProfile.model','UserProfileSection','../api/userProfileSection/userProfileSection.model','../api/userProfileResource/userProfileResource.model','UserNotification','../api/userNotification/userNotification.model','../api/whatsappAccount/whatsappAccount.model','WhatsappInteraction','../api/whatsappInteraction/whatsappInteraction.model','WhatsappMessage','../api/whatsappMessage/whatsappMessage.model','WhatsappQueueReport','../api/whatsappQueueReport/whatsappQueueReport.model','WhatsappTransferReport','../api/whatsappTransferReport/whatsappTransferReport.model','WhatsappQueue','../api/whatsappQueue/whatsappQueue.model','../api/cloudProvider/cloudProvider.model','TeamVoiceQueue','../api/teamVoiceQueue/teamVoiceQueue.model','hasOne','VoiceMail','cascade','UserId','hasMany','Recordings','VoiceQueuesRt','VoiceExtension','HopperFinals','HopperHistory','ReportAgentPreview','OpenchannelInteraction','OpenchannelInteractions','ChatInteractions','SmsInteractions','FaxInteraction','MailInteractions','WhatsappInteractions','SenderId','belongsTo','userProfileId','ChatGroup','Groups','chat_group_has_users','CmContact','Contacts','belongsToMany','Lists','cm_user_has_lists','user_has_teams','user_has_mail_interactions','FaxInteractions','user_has_fax_interactions','user_has_sms_interactions','user_has_openchannel_interactions','user_has_whatsapp_interactions','VoiceQueues','MailQueue','MailQueues','ChatQueue','ChatQueues','FaxQueues','SmsQueue','SmsQueues','OpenchannelQueues','UserOpenchannelQueue','CmList','user_has_voice_prefixes','ChatWebsites','user_has_chat_websites','FaxAccount','FaxAccounts','user_has_fax_accounts','OpenchannelAccounts','user_has_openchannel_accounts','SmsAccounts','user_has_sms_accounts','WhatsappAccount','user_has_whatsapp_accounts','SquareProjects','SpiedAgents','ChanSpyId','Applications','Sounds','moh_has_sounds','CmHopper','VoiceQueueId','HopperHistories','HopperBlacks','JscriptySessions','TrunkId','TrunkBackup','TrunkBackupId','Interval','IntervalId','Pause','mandatoryDispositionPause','mandatoryDispositionPauseId','voice_queues_has_cm_lists','Agents','Teams','BlackLists','mailboxuser','mailbox','VoiceAgentReport','uniqueid','Contact','ContactId','MailServerIn','MailAccountId','Imap','Smtp','Dispositions','Answers','MailMessage','Messages','Interactions','List','ListId','user_has_mail_accounts','team_has_mail_queues','MailInteractionId','Account','Owner','Tag','mail_interaction_has_tags','Tags','ThroughTags','Users','Attachments','Interaction','ChatWebsiteId','ChatOfflineMessageId','restrict','MailQueueReport','FaxAccountId','TagId','FaxInteractionId','fax_interaction_has_tags','team_has_fax_queues','FaxQueueReport','SmsAccountId','SmsMessage','SmsApplication','sms_interaction_has_tags','SmsInteractionId','team_has_sms_queues','OpenchannelAccountId','OpenchannelQueueId','OpenchannelInteractionId','openchannel_interaction_has_tags','AttachmentId','ProactiveActions','ChatApplication','Agent','Queue','ChatInteractionId','chat_interaction_has_tags','ChatInternalMessage','ChatGroupId','Members','CompanyId','Hoppers','cm_user_has_contacts','cm_contact_has_tags','CampaignId','OwnerId','All','OneAll','AutomationAllId','Any','OneAny','AutomationAnyId','Actions','AutomationId','ParentId','MailApplications','ChatApplications','FaxApplications','SmsApplications','Schedule','AnalyticCustomReport','CustomReportId','Mohs','whatsapp_interaction_has_tags','Trigger','TriggerAllId','AnyConditions','AnyCondition','TriggerAnyId','TriggerId','Fields','DefaultReportId','MetricId','Configurations','AccountId','Subjects','SubjectId','DescriptionId','Subject','Description','Field','FieldId','VariableId','SugarcrmField','Descriptions','int_desk_configuration_has_tags','ZohoField','ZendeskConfiguration','ZendeskAccount','int_zendesk_configuration_has_tags','FreshdeskAccount','int_freshdesk_configuration_has_tags','ServicenowAccount','Dynamics365Configuration','FreshsalesAccount','FromId','ToId','SessionId','ProjectId','team_has_chat_queues','team_has_openchannel_queues','WhatsappQueues','SquareProjectId','campaigns_has_cm_lists','campaigns_has_cm_blacklists','FromMailAccountId','FromAccount','FromUserId','FromAgent','ToAgent','ToMailQueueId','ToQueue','ToMailAccountId','ToUserId','ToChatQueueId','ToAccount','FromFaxAccountId','ToFaxQueueId','ToFaxAccountId','FromOpenchannelAccountId','ToOpenchannelQueueId','ToOpenchannelAccountId','FromSmsAccountId','ToSmsAccountId','CustomFields','Extensions','UserProfileSections','UserProfileResource','Resources','sectionId','WhatsappAccountId','WhatsappApplication','WhatsappInteractionId','FromWhatsappAccountId','ToQueueId','WhatsappQueueId','team_has_whatsapp_queues','exports','../config/environment','lodash','determine','sequelize','defaultsDeep','xcall','xC@LL1234','127.0.0.1','name','utf8','sequelizeHistory','motion2','utf8mb4','database','password','options','username','User','import','../api/user/user.model','VoiceChanSpy','../api/voiceChanSpy/voiceChanSpy.model','VoiceContext','../api/voiceContext/voiceContext.model','VoiceMusicOnHold','VoiceQueue','VoiceRecording','ScreenRecording','../api/screenRecording/screenRecording.model','../api/voiceMail/voiceMail.model','VoiceMailMessage','../api/voiceMailMessage/voiceMailMessage.model','VoiceCallReport','../api/voiceCallReport/voiceCallReport.model','VoiceDialReport','../api/voiceDialReport/voiceDialReport.model','VoiceQueueReport','../api/voiceQueueReport/voiceQueueReport.model','MemberReport','../api/memberReport/memberReport.model','Trunk','../api/trunk/trunk.model','VoiceTransferReport','../api/voiceTransferReport/voiceTransferReport.model','UserVoiceQueueRt','UserVoiceQueue','UserChatQueue','../api/userChatQueue/userChatQueue.model','UserMailQueue','../api/userMailQueue/userMailQueue.model','UserFaxQueue','../api/userFaxQueue/userFaxQueue.model','UserSmsQueue','../api/userSmsQueue/userSmsQueue.model','../api/userOpenchannelQueue/userOpenchannelQueue.model','UserWhatsappQueue','../api/userWhatsappQueue/userWhatsappQueue.model','../api/mailServerIn/mailServerIn.model','MailServerOut','../api/mailServerOut/mailServerOut.model','MailAccount','../api/mailQueue/mailQueue.model','MailSubstatus','../api/mailSubstatus/mailSubstatus.model','MailInteraction','../api/mailInteraction/mailInteraction.model','MailApplication','../api/mailApplication/mailApplication.model','../api/mailQueueReport/mailQueueReport.model','Dashboard','DashboardItem','../api/dashboardItem/dashboardItem.model','../api/faxAccount/faxAccount.model','FaxApplication','../api/faxApplication/faxApplication.model','FaxMessage','../api/faxMessage/faxMessage.model','FaxQueue','../api/faxQueue/faxQueue.model','SmsAccount','../api/smsAccount/smsAccount.model','../api/smsApplication/smsApplication.model','SmsInteraction','../api/smsInteraction/smsInteraction.model','../api/smsMessage/smsMessage.model','../api/smsQueue/smsQueue.model','OpenchannelAccount','../api/openchannelAccount/openchannelAccount.model','OpenchannelApplication','../api/openchannelInteraction/openchannelInteraction.model','OpenchannelMessage','../api/openchannelMessage/openchannelMessage.model','OpenchannelQueue','ChatWebsite','../api/chatWebsite/chatWebsite.model','OpenchannelQueueReport','../api/openchannelQueueReport/openchannelQueueReport.model','../api/chatApplication/chatApplication.model','ChatInteraction','../api/chatInteraction/chatInteraction.model','ChatMessage','../api/chatMessage/chatMessage.model','ChatOfflineMessage','../api/chatOfflineMessage/chatOfflineMessage.model','../api/chatQueue/chatQueue.model','ChatProactiveAction','../api/chatProactiveAction/chatProactiveAction.model','CmCompany','../api/cmCompany/cmCompany.model','../api/cmContact/cmContact.model','../api/cmHopper/cmHopper.model','CmHopperBlack','../api/cmHopperBlack/cmHopperBlack.model','CmHopperFinal','../api/cmHopperFinal/cmHopperFinal.model','CmHopperHistory','../api/cmHopperHistory/cmHopperHistory.model','../api/reportAgentPreview/reportAgentPreview.model','CmCustomField','../api/cmCustomField/cmCustomField.model','Action','Automation','CannedAnswer','Disposition','../api/disposition/disposition.model','Condition','../api/condition/condition.model','../api/cdr/cdr.model','VoiceQueuesLog','Sound','../api/sound/sound.model','Template','Variable','../api/variable/variable.model','Integration','../api/integration/integration.model','IntegrationReport','../api/integrationReport/integrationReport.model','AnalyticDefaultReport','../api/analyticDefaultReport/analyticDefaultReport.model','../api/analyticExtractedReport/analyticExtractedReport.model','AnalyticMetric','../api/analyticMetric/analyticMetric.model','AnalyticFieldReport','../api/analyticFieldReport/analyticFieldReport.model','../api/analyticTreeReport/analyticTreeReport.model','SalesforceAccount'];(function(_0x107f10,_0x5529f2){var _0x811cab=function(_0xc160ea){while(--_0xc160ea){_0x107f10['push'](_0x107f10['shift']());}};_0x811cab(++_0x5529f2);}(_0x9390,0x161));var _0x0939=function(_0x57bfbc,_0x499458){_0x57bfbc=_0x57bfbc-0x0;var _0x33d25a=_0x9390[_0x57bfbc];return _0x33d25a;};'use strict';var config=require(_0x0939('0x0'));var Sequelize=require('sequelize');var _=require(_0x0939('0x1'));var jstz=require('jstz');var timezone=jstz[_0x0939('0x2')]();config[_0x0939('0x3')]=_[_0x0939('0x4')](config[_0x0939('0x3')],{'database':'motion2','username':_0x0939('0x5'),'password':_0x0939('0x6'),'options':{'host':_0x0939('0x7'),'port':0xcea,'dialect':'mysql','dialectOptions':{'charset':'utf8mb4'},'logging':![],'timezone':timezone[_0x0939('0x8')](),'define':{'charset':_0x0939('0x9'),'collate':'utf8_general_ci'}}});config['sequelizeHistory']=_[_0x0939('0x4')](config[_0x0939('0xa')],{'database':_0x0939('0xb'),'username':'xcall','password':_0x0939('0x6'),'options':{'host':_0x0939('0x7'),'port':0xcea,'dialect':'mysql','dialectOptions':{'charset':_0x0939('0xc')},'logging':![],'timezone':timezone[_0x0939('0x8')](),'define':{'charset':_0x0939('0x9'),'collate':'utf8_general_ci'}}});var db={'Sequelize':Sequelize,'sequelize':new Sequelize(config[_0x0939('0x3')][_0x0939('0xd')],config['sequelize']['username'],config[_0x0939('0x3')][_0x0939('0xe')],config[_0x0939('0x3')][_0x0939('0xf')])};var dbH={'Sequelize':Sequelize,'sequelize':new Sequelize(config[_0x0939('0xa')][_0x0939('0xd')],config[_0x0939('0xa')][_0x0939('0x10')],config[_0x0939('0xa')][_0x0939('0xe')],config['sequelizeHistory'][_0x0939('0xf')])};db[_0x0939('0x11')]=db['sequelize'][_0x0939('0x12')](_0x0939('0x13'));db[_0x0939('0x14')]=db[_0x0939('0x3')]['import'](_0x0939('0x15'));db[_0x0939('0x16')]=db['sequelize'][_0x0939('0x12')](_0x0939('0x17'));db['VoiceExtension']=db[_0x0939('0x3')]['import']('../api/voiceExtension/voiceExtension.model');db[_0x0939('0x18')]=db[_0x0939('0x3')][_0x0939('0x12')]('../api/voiceMusicOnHold/voiceMusicOnHold.model');db[_0x0939('0x19')]=db[_0x0939('0x3')][_0x0939('0x12')]('../api/voiceQueue/voiceQueue.model');db[_0x0939('0x1a')]=db[_0x0939('0x3')][_0x0939('0x12')]('../api/voiceRecording/voiceRecording.model');db[_0x0939('0x1b')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x1c'));db['VoiceMail']=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x1d'));db[_0x0939('0x1e')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x1f'));db[_0x0939('0x20')]=db[_0x0939('0x3')]['import'](_0x0939('0x21'));db[_0x0939('0x22')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x23'));db['VoiceAgentReport']=db[_0x0939('0x3')][_0x0939('0x12')]('../api/voiceAgentReport/voiceAgentReport.model');db[_0x0939('0x24')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x25'));db[_0x0939('0x26')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x27'));db[_0x0939('0x28')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x29'));db[_0x0939('0x2a')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x2b'));db[_0x0939('0x2c')]=db['sequelize'][_0x0939('0x12')]('../api/userVoiceQueueRt/userVoiceQueueRt.model');db[_0x0939('0x2d')]=db[_0x0939('0x3')]['import']('../api/userVoiceQueue/userVoiceQueue.model');db[_0x0939('0x2e')]=db[_0x0939('0x3')]['import'](_0x0939('0x2f'));db[_0x0939('0x30')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x31'));db[_0x0939('0x32')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x33'));db[_0x0939('0x34')]=db['sequelize'][_0x0939('0x12')](_0x0939('0x35'));db['UserOpenchannelQueue']=db['sequelize'][_0x0939('0x12')](_0x0939('0x36'));db[_0x0939('0x37')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x38'));db['MailServerIn']=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x39'));db[_0x0939('0x3a')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x3b'));db[_0x0939('0x3c')]=db['sequelize'][_0x0939('0x12')]('../api/mailAccount/mailAccount.model');db['MailQueue']=db[_0x0939('0x3')]['import'](_0x0939('0x3d'));db[_0x0939('0x3e')]=db['sequelize'][_0x0939('0x12')](_0x0939('0x3f'));db[_0x0939('0x40')]=db['sequelize'][_0x0939('0x12')](_0x0939('0x41'));db['MailMessage']=db[_0x0939('0x3')][_0x0939('0x12')]('../api/mailMessage/mailMessage.model');db[_0x0939('0x42')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x43'));db['MailQueueReport']=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x44'));db[_0x0939('0x45')]=db[_0x0939('0x3')][_0x0939('0x12')]('../api/dashboard/dashboard.model');db[_0x0939('0x46')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x47'));db['FaxAccount']=db['sequelize']['import'](_0x0939('0x48'));db[_0x0939('0x49')]=db[_0x0939('0x3')]['import'](_0x0939('0x4a'));db['FaxInteraction']=db[_0x0939('0x3')][_0x0939('0x12')]('../api/faxInteraction/faxInteraction.model');db[_0x0939('0x4b')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x4c'));db[_0x0939('0x4d')]=db[_0x0939('0x3')]['import'](_0x0939('0x4e'));db['FaxQueueReport']=db[_0x0939('0x3')][_0x0939('0x12')]('../api/faxQueueReport/faxQueueReport.model');db[_0x0939('0x4f')]=db['sequelize'][_0x0939('0x12')](_0x0939('0x50'));db['SmsApplication']=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x51'));db[_0x0939('0x52')]=db['sequelize'][_0x0939('0x12')](_0x0939('0x53'));db['SmsMessage']=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x54'));db['SmsQueue']=db[_0x0939('0x3')]['import'](_0x0939('0x55'));db[_0x0939('0x56')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x57'));db[_0x0939('0x58')]=db[_0x0939('0x3')]['import']('../api/openchannelApplication/openchannelApplication.model');db['OpenchannelInteraction']=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x59'));db[_0x0939('0x5a')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x5b'));db[_0x0939('0x5c')]=db[_0x0939('0x3')][_0x0939('0x12')]('../api/openchannelQueue/openchannelQueue.model');db[_0x0939('0x5d')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x5e'));db[_0x0939('0x5f')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x60'));db['ChatApplication']=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x61'));db[_0x0939('0x62')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x63'));db[_0x0939('0x64')]=db['sequelize']['import'](_0x0939('0x65'));db[_0x0939('0x66')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x67'));db['ChatQueue']=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x68'));db['ChatGroup']=db[_0x0939('0x3')][_0x0939('0x12')]('../api/chatGroup/chatGroup.model');db[_0x0939('0x69')]=db['sequelize'][_0x0939('0x12')](_0x0939('0x6a'));db[_0x0939('0x6b')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x6c'));db['CmContact']=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x6d'));db['CmHopper']=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x6e'));db[_0x0939('0x6f')]=db['sequelize']['import'](_0x0939('0x70'));db[_0x0939('0x71')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x72'));db[_0x0939('0x73')]=db['sequelize'][_0x0939('0x12')](_0x0939('0x74'));db['ReportAgentPreview']=db[_0x0939('0x3')]['import'](_0x0939('0x75'));db[_0x0939('0x76')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x77'));db[_0x0939('0x78')]=db[_0x0939('0x3')]['import']('../api/action/action.model');db[_0x0939('0x79')]=db['sequelize'][_0x0939('0x12')]('../api/automation/automation.model');db[_0x0939('0x7a')]=db['sequelize'][_0x0939('0x12')]('../api/cannedAnswer/cannedAnswer.model');db[_0x0939('0x7b')]=db[_0x0939('0x3')]['import'](_0x0939('0x7c'));db[_0x0939('0x7d')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x7e'));db['Interval']=db[_0x0939('0x3')][_0x0939('0x12')]('../api/interval/interval.model');db['Pause']=db[_0x0939('0x3')][_0x0939('0x12')]('../api/pause/pause.model');db['Cdr']=db[_0x0939('0x3')]['import'](_0x0939('0x7f'));db[_0x0939('0x80')]=db[_0x0939('0x3')][_0x0939('0x12')]('../api/voiceQueuesLog/voiceQueuesLog.model');db['Schedule']=db[_0x0939('0x3')][_0x0939('0x12')]('../api/schedule/schedule.model');db[_0x0939('0x81')]=db[_0x0939('0x3')]['import'](_0x0939('0x82'));db['Tag']=db[_0x0939('0x3')][_0x0939('0x12')]('../api/tag/tag.model');db[_0x0939('0x83')]=db[_0x0939('0x3')][_0x0939('0x12')]('../api/template/template.model');db['Trigger']=db[_0x0939('0x3')]['import']('../api/trigger/trigger.model');db[_0x0939('0x84')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x85'));db[_0x0939('0x86')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x87'));db[_0x0939('0x88')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x89'));db['AnalyticCustomReport']=db[_0x0939('0x3')][_0x0939('0x12')]('../api/analyticCustomReport/analyticCustomReport.model');db[_0x0939('0x8a')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x8b'));db['AnalyticExtractedReport']=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x8c'));db[_0x0939('0x8d')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x8e'));db[_0x0939('0x8f')]=db['sequelize'][_0x0939('0x12')](_0x0939('0x90'));db['AnalyticTreeReport']=db[_0x0939('0x3')]['import'](_0x0939('0x91'));db[_0x0939('0x92')]=db['sequelize'][_0x0939('0x12')](_0x0939('0x93'));db[_0x0939('0x94')]=db[_0x0939('0x3')]['import'](_0x0939('0x95'));db[_0x0939('0x96')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x97'));db[_0x0939('0x98')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x99'));db[_0x0939('0x9a')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x9b'));db['SugarcrmField']=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x9c'));db[_0x0939('0x9d')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x9e'));db[_0x0939('0x9f')]=db['sequelize'][_0x0939('0x12')](_0x0939('0xa0'));db[_0x0939('0xa1')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0xa2'));db[_0x0939('0xa3')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0xa4'));db[_0x0939('0xa5')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0xa6'));db['ZohoField']=db['sequelize'][_0x0939('0x12')](_0x0939('0xa7'));db['ZendeskAccount']=db['sequelize']['import'](_0x0939('0xa8'));db['ZendeskConfiguration']=db[_0x0939('0x3')]['import'](_0x0939('0xa9'));db[_0x0939('0xaa')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0xab'));db['FreshdeskAccount']=db[_0x0939('0x3')][_0x0939('0x12')]('../api/intFreshdeskAccount/intFreshdeskAccount.model');db[_0x0939('0xac')]=db['sequelize'][_0x0939('0x12')]('../api/intFreshdeskConfiguration/intFreshdeskConfiguration.model');db[_0x0939('0xad')]=db[_0x0939('0x3')]['import'](_0x0939('0xae'));db[_0x0939('0xaf')]=db[_0x0939('0x3')][_0x0939('0x12')]('../api/intVtigerAccount/intVtigerAccount.model');db[_0x0939('0xb0')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0xb1'));db[_0x0939('0xb2')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0xb3'));db['ServicenowAccount']=db[_0x0939('0x3')]['import'](_0x0939('0xb4'));db[_0x0939('0xb5')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0xb6'));db[_0x0939('0xb7')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0xb8'));db[_0x0939('0xb9')]=db[_0x0939('0x3')]['import'](_0x0939('0xba'));db['Dynamics365Configuration']=db[_0x0939('0x3')][_0x0939('0x12')]('../api/intDynamics365Configuration/intDynamics365Configuration.model');db[_0x0939('0xbb')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0xbc'));db['FreshsalesAccount']=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0xbd'));db[_0x0939('0xbe')]=db['sequelize'][_0x0939('0x12')](_0x0939('0xbf'));db[_0x0939('0xc0')]=db['sequelize']['import'](_0x0939('0xc1'));db[_0x0939('0x86')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x87'));db[_0x0939('0xc2')]=db['sequelize'][_0x0939('0x12')](_0x0939('0xc3'));db[_0x0939('0xc4')]=db[_0x0939('0x3')][_0x0939('0x12')]('../api/chatQueueReport/chatQueueReport.model');db['ChatInternalMessage']=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0xc5'));db[_0x0939('0xc6')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0xc7'));db[_0x0939('0xc8')]=db[_0x0939('0x3')][_0x0939('0x12')]('../api/jscriptyQuestionReport/jscriptyQuestionReport.model');db[_0x0939('0xc9')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0xca'));db[_0x0939('0xcb')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0xcc'));db[_0x0939('0xcd')]=db['sequelize'][_0x0939('0x12')](_0x0939('0xce'));db[_0x0939('0xcf')]=db[_0x0939('0x3')]['import'](_0x0939('0xd0'));db[_0x0939('0xd1')]=db[_0x0939('0x3')][_0x0939('0x12')]('../api/jscriptyProject/jscriptyProject.model');db[_0x0939('0xd2')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0xd3'));db[_0x0939('0xd4')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0xd5'));db[_0x0939('0xd6')]=db[_0x0939('0x3')]['import'](_0x0939('0xd7'));db[_0x0939('0xd8')]=db['sequelize'][_0x0939('0x12')](_0x0939('0xd9'));db[_0x0939('0xda')]=db[_0x0939('0x3')]['import'](_0x0939('0xdb'));db[_0x0939('0xdc')]=db['sequelize']['import'](_0x0939('0xdd'));db[_0x0939('0xde')]=db[_0x0939('0x3')]['import'](_0x0939('0xdf'));db[_0x0939('0xe0')]=db['sequelize'][_0x0939('0x12')](_0x0939('0xe1'));db[_0x0939('0xe2')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0xe3'));db[_0x0939('0xe4')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0xe5'));db['Plugin']=db[_0x0939('0x3')]['import'](_0x0939('0xe6'));db[_0x0939('0xe7')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0xe8'));db[_0x0939('0xe9')]=db[_0x0939('0x3')][_0x0939('0x12')]('../api/chatTransferReport/chatTransferReport.model');db[_0x0939('0xea')]=db[_0x0939('0x3')][_0x0939('0x12')]('../api/faxTransferReport/faxTransferReport.model');db[_0x0939('0xeb')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0xec'));db[_0x0939('0xed')]=db[_0x0939('0x3')][_0x0939('0x12')]('../api/smsTransferReport/smsTransferReport.model');db['CmList']=db[_0x0939('0x3')]['import'](_0x0939('0xee'));db[_0x0939('0xef')]=db[_0x0939('0x3')][_0x0939('0x12')]('../api/voicePrefix/voicePrefix.model');db[_0x0939('0xf0')]=db['sequelize'][_0x0939('0x12')](_0x0939('0xf1'));db[_0x0939('0xf2')]=db[_0x0939('0x3')]['import'](_0x0939('0xf3'));db['UserProfileResource']=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0xf4'));db[_0x0939('0xf5')]=db[_0x0939('0x3')]['import'](_0x0939('0xf6'));db['WhatsappAccount']=db[_0x0939('0x3')]['import'](_0x0939('0xf7'));db['WhatsappApplication']=db['sequelize'][_0x0939('0x12')]('../api/whatsappApplication/whatsappApplication.model');db[_0x0939('0xf8')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0xf9'));db[_0x0939('0xfa')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0xfb'));db[_0x0939('0xfc')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0xfd'));db[_0x0939('0xfe')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0xff'));db[_0x0939('0x100')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x101'));db['CloudProvider']=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x102'));db[_0x0939('0x103')]=db[_0x0939('0x3')][_0x0939('0x12')](_0x0939('0x104'));db[_0x0939('0x11')][_0x0939('0x105')](db[_0x0939('0x106')],{'as':'VoiceMail','onDelete':_0x0939('0x107'),'foreignKey':_0x0939('0x108')});db['User'][_0x0939('0x109')](db['VoiceRecording'],{'as':_0x0939('0x10a'),'foreignKey':_0x0939('0x108')});db[_0x0939('0x11')][_0x0939('0x109')](db['UserVoiceQueueRt'],{'as':_0x0939('0x10b'),'foreignKey':'UserId'});db[_0x0939('0x11')][_0x0939('0x109')](db[_0x0939('0x10c')],{'as':'Extensions','onDelete':'cascade','hooks':!![]});db[_0x0939('0x11')][_0x0939('0x109')](db[_0x0939('0x71')],{'as':_0x0939('0x10d'),'foreignKey':_0x0939('0x108')});db[_0x0939('0x11')][_0x0939('0x109')](db[_0x0939('0x73')],{'as':_0x0939('0x10e'),'foreignKey':_0x0939('0x108')});db[_0x0939('0x11')]['hasMany'](db[_0x0939('0x10f')],{'as':'ReportAgentPreview','foreignKey':_0x0939('0x108')});db[_0x0939('0x11')]['hasMany'](db[_0x0939('0x110')],{'as':_0x0939('0x111'),'foreignKey':'UserId'});db[_0x0939('0x11')][_0x0939('0x109')](db[_0x0939('0x62')],{'as':_0x0939('0x112'),'foreignKey':_0x0939('0x108')});db[_0x0939('0x11')][_0x0939('0x109')](db[_0x0939('0x52')],{'as':_0x0939('0x113'),'foreignKey':_0x0939('0x108')});db[_0x0939('0x11')]['hasMany'](db[_0x0939('0x114')],{'as':'FaxInteractions','foreignKey':'UserId'});db[_0x0939('0x11')][_0x0939('0x109')](db[_0x0939('0x40')],{'as':_0x0939('0x115'),'foreignKey':_0x0939('0x108')});db[_0x0939('0x11')][_0x0939('0x109')](db[_0x0939('0xf8')],{'as':_0x0939('0x116'),'foreignKey':_0x0939('0x108')});db[_0x0939('0x11')][_0x0939('0x109')](db[_0x0939('0xf5')],{'as':'UserNotifications','foreignKey':_0x0939('0x117')});db[_0x0939('0x11')][_0x0939('0x118')](db[_0x0939('0xf0')],{'as':'UserProfile','foreignKey':_0x0939('0x119')});db[_0x0939('0x11')]['belongsToMany'](db[_0x0939('0x11a')],{'as':_0x0939('0x11b'),'through':_0x0939('0x11c')});db[_0x0939('0x11')]['belongsToMany'](db[_0x0939('0x11d')],{'as':_0x0939('0x11e'),'through':'cm_user_has_contacts'});db[_0x0939('0x11')][_0x0939('0x11f')](db['CmList'],{'as':_0x0939('0x120'),'through':_0x0939('0x121')});db[_0x0939('0x11')]['belongsToMany'](db[_0x0939('0xdc')],{'through':_0x0939('0x122')});db[_0x0939('0x11')][_0x0939('0x11f')](db[_0x0939('0x40')],{'as':_0x0939('0x115'),'through':_0x0939('0x123')});db[_0x0939('0x11')][_0x0939('0x11f')](db['ChatInteraction'],{'as':'ChatInteractions','through':'user_has_chat_interactions'});db[_0x0939('0x11')][_0x0939('0x11f')](db[_0x0939('0x114')],{'as':_0x0939('0x124'),'through':_0x0939('0x125')});db[_0x0939('0x11')]['belongsToMany'](db[_0x0939('0x52')],{'as':_0x0939('0x113'),'through':_0x0939('0x126')});db[_0x0939('0x11')][_0x0939('0x11f')](db[_0x0939('0x110')],{'as':_0x0939('0x111'),'through':_0x0939('0x127')});db[_0x0939('0x11')][_0x0939('0x11f')](db[_0x0939('0xf8')],{'as':'WhatsappInteractions','through':_0x0939('0x128')});db['User'][_0x0939('0x11f')](db['VoiceQueue'],{'as':_0x0939('0x129'),'through':_0x0939('0x2d'),'required':![]});db[_0x0939('0x11')][_0x0939('0x11f')](db[_0x0939('0x12a')],{'as':_0x0939('0x12b'),'through':_0x0939('0x30'),'required':![]});db['User'][_0x0939('0x11f')](db[_0x0939('0x12c')],{'as':_0x0939('0x12d'),'through':'UserChatQueue','required':![],'hooks':!![]});db[_0x0939('0x11')][_0x0939('0x11f')](db['FaxQueue'],{'as':_0x0939('0x12e'),'through':_0x0939('0x32'),'required':![]});db[_0x0939('0x11')][_0x0939('0x11f')](db[_0x0939('0x12f')],{'as':_0x0939('0x130'),'through':_0x0939('0x34'),'required':![]});db[_0x0939('0x11')][_0x0939('0x11f')](db[_0x0939('0x5c')],{'as':_0x0939('0x131'),'through':_0x0939('0x132'),'required':![]});db[_0x0939('0x11')][_0x0939('0x11f')](db['WhatsappQueue'],{'as':'WhatsappQueues','through':_0x0939('0x37'),'required':![]});db['User'][_0x0939('0x11f')](db[_0x0939('0x133')],{'through':_0x0939('0x121')});db[_0x0939('0x11')][_0x0939('0x11f')](db['VoicePrefix'],{'as':'VoicePrefixes','through':_0x0939('0x134'),'required':![]});db[_0x0939('0x11')][_0x0939('0x11f')](db[_0x0939('0x5d')],{'as':_0x0939('0x135'),'through':_0x0939('0x136')});db[_0x0939('0x11')][_0x0939('0x11f')](db[_0x0939('0x137')],{'as':_0x0939('0x138'),'through':_0x0939('0x139')});db[_0x0939('0x11')][_0x0939('0x11f')](db[_0x0939('0x3c')],{'as':'MailAccounts','through':'user_has_mail_accounts'});db[_0x0939('0x11')]['belongsToMany'](db[_0x0939('0x56')],{'as':_0x0939('0x13a'),'through':_0x0939('0x13b')});db[_0x0939('0x11')][_0x0939('0x11f')](db['SmsAccount'],{'as':_0x0939('0x13c'),'through':_0x0939('0x13d')});db['User']['belongsToMany'](db[_0x0939('0x13e')],{'as':'WhatsappAccounts','through':_0x0939('0x13f')});db[_0x0939('0x11')]['belongsToMany'](db[_0x0939('0xd6')],{'as':_0x0939('0x140'),'through':'user_has_square_projects'});db[_0x0939('0x14')][_0x0939('0x109')](db[_0x0939('0x10c')],{'as':_0x0939('0x141'),'onDelete':_0x0939('0x107'),'foreignKey':_0x0939('0x142')});db['VoiceContext'][_0x0939('0x109')](db[_0x0939('0x10c')],{'onDelete':_0x0939('0x107')});db[_0x0939('0x10c')][_0x0939('0x109')](db['VoiceExtension'],{'as':_0x0939('0x143'),'onDelete':_0x0939('0x107')});db[_0x0939('0x18')][_0x0939('0x11f')](db[_0x0939('0x81')],{'as':_0x0939('0x144'),'through':_0x0939('0x145')});db[_0x0939('0x19')]['hasMany'](db['UserVoiceQueueRt'],{'as':'Members','foreignKey':'VoiceQueueId'});db[_0x0939('0x19')][_0x0939('0x109')](db[_0x0939('0x146')],{'as':'Hoppers','foreignKey':_0x0939('0x147')});db[_0x0939('0x19')]['hasMany'](db[_0x0939('0x71')],{'as':'HopperFinals','foreignKey':'VoiceQueueId'});db[_0x0939('0x19')][_0x0939('0x109')](db['CmHopperHistory'],{'as':_0x0939('0x148'),'foreignKey':'VoiceQueueId'});db[_0x0939('0x19')][_0x0939('0x109')](db[_0x0939('0x10f')],{'as':_0x0939('0x10f'),'foreignKey':_0x0939('0x147')});db['VoiceQueue']['hasMany'](db[_0x0939('0x6f')],{'as':_0x0939('0x149'),'foreignKey':_0x0939('0x147')});db[_0x0939('0x19')][_0x0939('0x109')](db[_0x0939('0xc9')],{'as':_0x0939('0x14a'),'foreignKey':_0x0939('0x147')});db['VoiceQueue'][_0x0939('0x118')](db[_0x0939('0x28')],{'as':_0x0939('0x28'),'foreignKey':_0x0939('0x14b')});db[_0x0939('0x19')][_0x0939('0x118')](db[_0x0939('0x28')],{'as':_0x0939('0x14c'),'foreignKey':_0x0939('0x14d')});db['VoiceQueue'][_0x0939('0x118')](db[_0x0939('0x14e')],{'as':_0x0939('0x14e'),'foreignKey':_0x0939('0x14f')});db[_0x0939('0x19')][_0x0939('0x118')](db[_0x0939('0x150')],{'as':_0x0939('0x151'),'foreignKey':_0x0939('0x152')});db[_0x0939('0x19')]['belongsToMany'](db[_0x0939('0x133')],{'as':'Lists','through':_0x0939('0x153')});db[_0x0939('0x19')]['belongsToMany'](db['User'],{'as':_0x0939('0x154'),'through':_0x0939('0x2d')});db[_0x0939('0x19')][_0x0939('0x11f')](db['Team'],{'as':_0x0939('0x155'),'through':_0x0939('0x103')});db[_0x0939('0x19')][_0x0939('0x11f')](db[_0x0939('0x133')],{'as':_0x0939('0x156'),'through':'voice_queues_has_cm_blacklists'});db[_0x0939('0x1a')][_0x0939('0x118')](db[_0x0939('0x11')],{'as':_0x0939('0x11'),'foreignKey':_0x0939('0x108')});db['ScreenRecording'][_0x0939('0x118')](db['User'],{'as':'User','foreignKey':'UserId'});db[_0x0939('0x106')][_0x0939('0x109')](db[_0x0939('0x1e')],{'as':'Messages','onDelete':_0x0939('0x107'),'foreignKey':_0x0939('0x157'),'sourceKey':_0x0939('0x158')});db[_0x0939('0x1e')][_0x0939('0x118')](db[_0x0939('0x106')],{'foreignKey':_0x0939('0x157'),'targetKey':_0x0939('0x158')});db[_0x0939('0x20')][_0x0939('0x109')](db['VoiceQueueReport'],{'as':'QueueCalls','foreignKey':'uniqueid','constraints':![]});db[_0x0939('0x20')][_0x0939('0x109')](db[_0x0939('0x159')],{'as':'AgentReports','foreignKey':_0x0939('0x15a'),'constraints':![]});db['VoiceCallReport'][_0x0939('0x118')](db[_0x0939('0x11')],{'as':_0x0939('0x11'),'foreignKey':_0x0939('0x108')});db[_0x0939('0x20')][_0x0939('0x118')](db['CmContact'],{'as':_0x0939('0x15b'),'foreignKey':_0x0939('0x15c')});db[_0x0939('0x15d')]['belongsTo'](db[_0x0939('0x3c')],{'as':'MailAccount','foreignKey':'MailAccountId'});db[_0x0939('0x3a')][_0x0939('0x118')](db['MailAccount'],{'as':_0x0939('0x3c'),'foreignKey':_0x0939('0x15e')});db[_0x0939('0x3c')][_0x0939('0x105')](db['MailServerIn'],{'as':_0x0939('0x15f'),'onDelete':_0x0939('0x107')});db[_0x0939('0x3c')][_0x0939('0x105')](db[_0x0939('0x3a')],{'as':_0x0939('0x160'),'onDelete':_0x0939('0x107')});db['MailAccount'][_0x0939('0x109')](db[_0x0939('0x7b')],{'as':_0x0939('0x161'),'foreignKey':'MailAccountId','onDelete':_0x0939('0x107')});db['MailAccount'][_0x0939('0x109')](db[_0x0939('0x7a')],{'as':_0x0939('0x162'),'foreignKey':'MailAccountId'});db['MailAccount']['hasMany'](db[_0x0939('0x163')],{'as':_0x0939('0x164'),'foreignKey':_0x0939('0x15e')});db[_0x0939('0x3c')][_0x0939('0x109')](db['MailInteraction'],{'as':_0x0939('0x165')});db['MailAccount'][_0x0939('0x109')](db[_0x0939('0x42')],{'as':_0x0939('0x143')});db[_0x0939('0x3c')]['belongsTo'](db[_0x0939('0x133')],{'as':_0x0939('0x166'),'foreignKey':_0x0939('0x167')});db['MailAccount'][_0x0939('0x118')](db[_0x0939('0x83')],{'as':_0x0939('0x83'),'foreignKey':'TemplateId'});db[_0x0939('0x3c')][_0x0939('0x118')](db[_0x0939('0x150')],{'as':_0x0939('0x151'),'foreignKey':_0x0939('0x152')});db[_0x0939('0x3c')][_0x0939('0x11f')](db[_0x0939('0x11')],{'as':_0x0939('0x154'),'through':_0x0939('0x168')});db[_0x0939('0x12a')][_0x0939('0x11f')](db[_0x0939('0x11')],{'as':_0x0939('0x154'),'through':_0x0939('0x30')});db[_0x0939('0x12a')][_0x0939('0x11f')](db[_0x0939('0xdc')],{'through':_0x0939('0x169'),'as':_0x0939('0x155')});db[_0x0939('0x40')][_0x0939('0x109')](db[_0x0939('0x163')],{'as':'Messages','onDelete':_0x0939('0x107'),'foreignKey':_0x0939('0x16a')});db[_0x0939('0x40')]['belongsTo'](db[_0x0939('0x3c')],{'as':_0x0939('0x16b'),'foreignKey':'MailAccountId'});db['MailInteraction'][_0x0939('0x118')](db['CmContact'],{'as':_0x0939('0x15b'),'foreignKey':_0x0939('0x15c')});db[_0x0939('0x40')][_0x0939('0x118')](db['User'],{'as':_0x0939('0x16c'),'foreignKey':_0x0939('0x108')});db[_0x0939('0x40')][_0x0939('0x11f')](db[_0x0939('0x16d')],{'through':_0x0939('0x16e'),'as':_0x0939('0x16f')});db[_0x0939('0x40')][_0x0939('0x11f')](db[_0x0939('0x16d')],{'through':'mail_interaction_has_tags','as':_0x0939('0x170')});db[_0x0939('0x40')]['belongsToMany'](db['User'],{'as':_0x0939('0x171'),'through':_0x0939('0x123'),'foreignKey':_0x0939('0x16a')});db[_0x0939('0x163')][_0x0939('0x109')](db[_0x0939('0xe4')],{'as':_0x0939('0x172'),'onDelete':'cascade'});db[_0x0939('0x163')][_0x0939('0x118')](db['User'],{'as':'User'});db[_0x0939('0x163')][_0x0939('0x118')](db[_0x0939('0x11d')],{'onDelete':_0x0939('0x107'),'as':_0x0939('0x15b')});db['MailMessage']['belongsTo'](db[_0x0939('0x40')],{'as':_0x0939('0x173'),'foreignKey':'MailInteractionId'});db['MailMessage']['belongsTo'](db['MailAccount'],{'as':_0x0939('0x16b'),'foreignKey':_0x0939('0x15e')});db[_0x0939('0x163')]['belongsTo'](db[_0x0939('0x5d')],{'as':_0x0939('0x5d'),'foreignKey':_0x0939('0x174')});db[_0x0939('0x163')][_0x0939('0x118')](db[_0x0939('0x66')],{'as':_0x0939('0x66'),'foreignKey':_0x0939('0x175')});db[_0x0939('0x42')]['belongsTo'](db[_0x0939('0x11')],{'onDelete':_0x0939('0x176')});db['MailApplication']['belongsTo'](db[_0x0939('0x12a')],{'onDelete':'restrict'});db[_0x0939('0x42')][_0x0939('0x118')](db[_0x0939('0x3c')],{'onDelete':_0x0939('0x176')});db[_0x0939('0x42')][_0x0939('0x118')](db[_0x0939('0x14e')],{'onDelete':_0x0939('0x176'),'foreignKey':_0x0939('0x14f')});db['MailApplication'][_0x0939('0x118')](db[_0x0939('0x16d')],{'onDelete':_0x0939('0x176'),'foreignKey':'TagId'});db['MailQueueReport'][_0x0939('0x118')](db[_0x0939('0x3c')],{});db[_0x0939('0x177')][_0x0939('0x118')](db[_0x0939('0x133')],{'as':'List','foreignKey':_0x0939('0x167')});db[_0x0939('0x177')]['belongsTo'](db[_0x0939('0x11d')],{'as':_0x0939('0x15b'),'foreignKey':_0x0939('0x15c')});db[_0x0939('0x177')][_0x0939('0x118')](db['MailInteraction'],{});db[_0x0939('0x177')][_0x0939('0x118')](db[_0x0939('0x163')],{});db['MailQueueReport'][_0x0939('0x118')](db[_0x0939('0x11')],{});db[_0x0939('0x177')]['belongsTo'](db[_0x0939('0x12a')],{});db['Dashboard']['hasMany'](db[_0x0939('0x46')],{'as':'Items','onDelete':_0x0939('0x107')});db[_0x0939('0x137')][_0x0939('0x109')](db['Disposition'],{'as':_0x0939('0x161'),'foreignKey':_0x0939('0x178'),'onDelete':_0x0939('0x107')});db[_0x0939('0x137')][_0x0939('0x109')](db[_0x0939('0x7a')],{'as':_0x0939('0x162'),'foreignKey':_0x0939('0x178')});db[_0x0939('0x137')][_0x0939('0x109')](db[_0x0939('0x114')],{'as':_0x0939('0x165')});db[_0x0939('0x137')]['hasMany'](db[_0x0939('0x49')],{'as':_0x0939('0x143')});db[_0x0939('0x137')][_0x0939('0x109')](db[_0x0939('0x10c')],{'as':'Exntensions','onDelete':_0x0939('0x107')});db['FaxAccount'][_0x0939('0x109')](db[_0x0939('0x4b')],{'as':'Messages'});db[_0x0939('0x137')][_0x0939('0x118')](db[_0x0939('0x28')],{'as':_0x0939('0x28')});db['FaxAccount'][_0x0939('0x118')](db[_0x0939('0x133')],{'as':_0x0939('0x166'),'foreignKey':_0x0939('0x167')});db[_0x0939('0x137')][_0x0939('0x118')](db[_0x0939('0x150')],{'as':_0x0939('0x151'),'foreignKey':'mandatoryDispositionPauseId'});db[_0x0939('0x137')][_0x0939('0x11f')](db['User'],{'as':'Agents','through':_0x0939('0x139')});db[_0x0939('0x49')]['belongsTo'](db[_0x0939('0x11')],{'onDelete':_0x0939('0x176')});db['FaxApplication'][_0x0939('0x118')](db[_0x0939('0x4d')],{'onDelete':_0x0939('0x176')});db[_0x0939('0x49')]['belongsTo'](db[_0x0939('0x137')],{'onDelete':_0x0939('0x176')});db[_0x0939('0x49')][_0x0939('0x118')](db['Tag'],{'onDelete':_0x0939('0x176'),'foreignKey':_0x0939('0x179')});db[_0x0939('0x114')][_0x0939('0x109')](db[_0x0939('0x4b')],{'as':_0x0939('0x164'),'onDelete':_0x0939('0x107'),'foreignKey':_0x0939('0x17a')});db[_0x0939('0x114')][_0x0939('0x118')](db['FaxAccount'],{'as':_0x0939('0x16b'),'foreignKey':_0x0939('0x178')});db[_0x0939('0x114')][_0x0939('0x118')](db[_0x0939('0x11d')],{'as':_0x0939('0x15b'),'foreignKey':'ContactId'});db[_0x0939('0x114')][_0x0939('0x118')](db['User'],{'as':'Owner','foreignKey':_0x0939('0x108')});db['FaxInteraction']['belongsToMany'](db[_0x0939('0x16d')],{'through':_0x0939('0x17b'),'as':_0x0939('0x16f')});db[_0x0939('0x114')]['belongsToMany'](db[_0x0939('0x16d')],{'through':_0x0939('0x17b'),'as':_0x0939('0x170')});db[_0x0939('0x114')][_0x0939('0x11f')](db[_0x0939('0x11')],{'as':_0x0939('0x171'),'through':_0x0939('0x125'),'foreignKey':_0x0939('0x17a')});db[_0x0939('0x4b')][_0x0939('0x118')](db[_0x0939('0x11')],{'onDelete':_0x0939('0x107'),'as':_0x0939('0x11')});db[_0x0939('0x4b')][_0x0939('0x118')](db[_0x0939('0x114')],{'as':_0x0939('0x173'),'foreignKey':_0x0939('0x17a')});db[_0x0939('0x4b')]['belongsTo'](db['CmContact'],{'onDelete':_0x0939('0x107'),'as':'Contact'});db[_0x0939('0x4b')][_0x0939('0x118')](db[_0x0939('0xe4')],{'as':'Attachment','foreignKey':'AttachmentId'});db[_0x0939('0x4b')][_0x0939('0x118')](db[_0x0939('0x137')],{'as':_0x0939('0x16b'),'foreignKey':_0x0939('0x178')});db[_0x0939('0x4d')][_0x0939('0x11f')](db['User'],{'as':_0x0939('0x154'),'through':'UserFaxQueue'});db[_0x0939('0x4d')][_0x0939('0x11f')](db[_0x0939('0xdc')],{'through':_0x0939('0x17c'),'as':'Teams'});db['FaxQueueReport']['belongsTo'](db[_0x0939('0x137')],{});db[_0x0939('0x17d')][_0x0939('0x118')](db[_0x0939('0x133')],{'as':_0x0939('0x166'),'foreignKey':_0x0939('0x167')});db[_0x0939('0x17d')]['belongsTo'](db[_0x0939('0x11d')],{'as':_0x0939('0x15b'),'foreignKey':_0x0939('0x15c')});db[_0x0939('0x17d')]['belongsTo'](db[_0x0939('0x114')],{});db[_0x0939('0x17d')][_0x0939('0x118')](db['FaxMessage'],{});db[_0x0939('0x17d')][_0x0939('0x118')](db[_0x0939('0x11')],{});db[_0x0939('0x17d')][_0x0939('0x118')](db['FaxQueue'],{});db[_0x0939('0x4f')][_0x0939('0x109')](db[_0x0939('0x7b')],{'as':_0x0939('0x161'),'foreignKey':'SmsAccountId','onDelete':_0x0939('0x107')});db[_0x0939('0x4f')]['hasMany'](db[_0x0939('0x7a')],{'as':_0x0939('0x162'),'foreignKey':_0x0939('0x17e')});db[_0x0939('0x4f')]['hasMany'](db[_0x0939('0x17f')],{'as':_0x0939('0x164'),'foreignKey':'SmsAccountId'});db[_0x0939('0x4f')][_0x0939('0x109')](db[_0x0939('0x52')],{'as':'Interactions'});db[_0x0939('0x4f')][_0x0939('0x109')](db[_0x0939('0x180')],{'as':_0x0939('0x143')});db[_0x0939('0x4f')]['belongsTo'](db['CmList'],{'as':'List','foreignKey':_0x0939('0x167')});db[_0x0939('0x4f')][_0x0939('0x118')](db['Pause'],{'as':_0x0939('0x151'),'foreignKey':_0x0939('0x152')});db['SmsAccount'][_0x0939('0x11f')](db[_0x0939('0x11')],{'as':_0x0939('0x154'),'through':_0x0939('0x13d')});db['SmsApplication'][_0x0939('0x118')](db[_0x0939('0x11')],{'onDelete':_0x0939('0x176')});db[_0x0939('0x180')][_0x0939('0x118')](db[_0x0939('0x12f')],{'onDelete':_0x0939('0x176')});db['SmsApplication']['belongsTo'](db[_0x0939('0x4f')],{'onDelete':'restrict'});db['SmsApplication']['belongsTo'](db[_0x0939('0x14e')],{'onDelete':_0x0939('0x176'),'foreignKey':_0x0939('0x14f')});db['SmsApplication'][_0x0939('0x118')](db[_0x0939('0x16d')],{'onDelete':_0x0939('0x176'),'foreignKey':'TagId'});db['SmsInteraction'][_0x0939('0x109')](db[_0x0939('0x17f')],{'as':_0x0939('0x164'),'onDelete':'cascade','foreignKey':'SmsInteractionId'});db['SmsInteraction'][_0x0939('0x118')](db[_0x0939('0x4f')],{'as':_0x0939('0x16b'),'foreignKey':'SmsAccountId'});db[_0x0939('0x52')]['belongsTo'](db['CmContact'],{'as':'Contact','foreignKey':_0x0939('0x15c')});db[_0x0939('0x52')][_0x0939('0x118')](db[_0x0939('0x11')],{'as':_0x0939('0x16c'),'foreignKey':_0x0939('0x108')});db['SmsInteraction']['belongsToMany'](db[_0x0939('0x16d')],{'through':_0x0939('0x181'),'as':_0x0939('0x16f')});db[_0x0939('0x52')][_0x0939('0x11f')](db[_0x0939('0x16d')],{'through':_0x0939('0x181'),'as':'ThroughTags'});db[_0x0939('0x52')][_0x0939('0x11f')](db[_0x0939('0x11')],{'as':_0x0939('0x171'),'through':_0x0939('0x126'),'foreignKey':_0x0939('0x182')});db[_0x0939('0x17f')]['belongsTo'](db[_0x0939('0x11')],{'as':_0x0939('0x11')});db[_0x0939('0x17f')][_0x0939('0x118')](db['CmContact'],{'onDelete':'cascade','as':_0x0939('0x15b')});db[_0x0939('0x17f')][_0x0939('0x118')](db[_0x0939('0x52')],{'onDelete':_0x0939('0x107'),'as':_0x0939('0x173'),'foreignKey':'SmsInteractionId'});db[_0x0939('0x17f')][_0x0939('0x118')](db[_0x0939('0x4f')],{'as':'Account','foreignKey':'SmsAccountId'});db[_0x0939('0x12f')][_0x0939('0x11f')](db[_0x0939('0x11')],{'as':'Agents','through':'UserSmsQueue','foreignKey':'SmsQueueId'});db[_0x0939('0x12f')]['belongsToMany'](db['Team'],{'through':_0x0939('0x183'),'as':'Teams'});db[_0x0939('0x56')]['hasMany'](db['Disposition'],{'as':_0x0939('0x161'),'foreignKey':_0x0939('0x184'),'onDelete':_0x0939('0x107')});db[_0x0939('0x56')][_0x0939('0x109')](db[_0x0939('0x7a')],{'as':_0x0939('0x162'),'foreignKey':_0x0939('0x184')});db['OpenchannelAccount'][_0x0939('0x109')](db[_0x0939('0x110')],{'as':'Interactions','foreignKey':_0x0939('0x184')});db[_0x0939('0x56')][_0x0939('0x109')](db['OpenchannelMessage'],{'as':_0x0939('0x164'),'foreignKey':_0x0939('0x184')});db[_0x0939('0x56')][_0x0939('0x109')](db[_0x0939('0x58')],{'as':'Applications','foreignKey':_0x0939('0x184')});db['OpenchannelAccount'][_0x0939('0x118')](db[_0x0939('0x133')],{'as':_0x0939('0x166'),'foreignKey':_0x0939('0x167')});db['OpenchannelAccount'][_0x0939('0x118')](db[_0x0939('0x150')],{'as':_0x0939('0x151'),'foreignKey':_0x0939('0x152')});db[_0x0939('0x56')][_0x0939('0x11f')](db[_0x0939('0x11')],{'as':'Agents','through':_0x0939('0x13b')});db['OpenchannelApplication'][_0x0939('0x118')](db[_0x0939('0x11')],{'onDelete':_0x0939('0x176')});db[_0x0939('0x58')][_0x0939('0x118')](db['OpenchannelQueue'],{'onDelete':_0x0939('0x176'),'foreignKey':_0x0939('0x185')});db[_0x0939('0x58')][_0x0939('0x118')](db[_0x0939('0x56')],{'onDelete':_0x0939('0x176'),'foreignKey':_0x0939('0x184')});db[_0x0939('0x58')][_0x0939('0x118')](db[_0x0939('0x14e')],{'onDelete':_0x0939('0x176'),'foreignKey':_0x0939('0x14f')});db[_0x0939('0x58')]['belongsTo'](db['Tag'],{'onDelete':'restrict','foreignKey':_0x0939('0x179')});db[_0x0939('0x110')]['hasMany'](db['OpenchannelMessage'],{'as':'Messages','onDelete':'cascade','foreignKey':_0x0939('0x186')});db[_0x0939('0x110')][_0x0939('0x118')](db[_0x0939('0x56')],{'as':_0x0939('0x16b'),'foreignKey':_0x0939('0x184')});db['OpenchannelInteraction'][_0x0939('0x118')](db[_0x0939('0x11d')],{'as':'Contact','foreignKey':_0x0939('0x15c')});db['OpenchannelInteraction'][_0x0939('0x118')](db[_0x0939('0x11')],{'as':'Owner','foreignKey':_0x0939('0x108')});db[_0x0939('0x110')][_0x0939('0x11f')](db[_0x0939('0x16d')],{'through':_0x0939('0x187'),'as':_0x0939('0x16f')});db['OpenchannelInteraction'][_0x0939('0x11f')](db[_0x0939('0x16d')],{'through':_0x0939('0x187'),'as':_0x0939('0x170')});db['OpenchannelInteraction'][_0x0939('0x11f')](db[_0x0939('0x11')],{'as':'Users','through':_0x0939('0x127'),'foreignKey':'OpenchannelInteractionId'});db[_0x0939('0x5a')]['belongsTo'](db[_0x0939('0x11')],{'onDelete':'cascade','as':_0x0939('0x11')});db['OpenchannelMessage']['belongsTo'](db['CmContact'],{'onDelete':_0x0939('0x107'),'as':'Contact'});db[_0x0939('0x5a')][_0x0939('0x118')](db[_0x0939('0x110')],{'onDelete':'cascade','as':_0x0939('0x173'),'foreignKey':_0x0939('0x186')});db['OpenchannelMessage']['belongsTo'](db[_0x0939('0xe4')],{'as':_0x0939('0xe4'),'foreignKey':_0x0939('0x188')});db[_0x0939('0x5a')][_0x0939('0x118')](db[_0x0939('0x56')],{'as':'Account','foreignKey':'OpenchannelAccountId'});db['OpenchannelQueue'][_0x0939('0x11f')](db[_0x0939('0x11')],{'as':_0x0939('0x154'),'through':_0x0939('0x132'),'foreignKey':_0x0939('0x185')});db[_0x0939('0x5c')][_0x0939('0x11f')](db[_0x0939('0xdc')],{'through':'team_has_openchannel_queues','as':_0x0939('0x155')});db[_0x0939('0x5d')]['hasMany'](db[_0x0939('0x7b')],{'as':_0x0939('0x161'),'foreignKey':_0x0939('0x174'),'onDelete':_0x0939('0x107')});db[_0x0939('0x5d')]['hasMany'](db[_0x0939('0x7a')],{'as':_0x0939('0x162'),'foreignKey':_0x0939('0x174')});db[_0x0939('0x5d')]['hasMany'](db['ChatProactiveAction'],{'as':_0x0939('0x189')});db[_0x0939('0x5d')][_0x0939('0x109')](db['ChatInteraction'],{'as':'Interactions'});db[_0x0939('0x5d')][_0x0939('0x109')](db['ChatApplication'],{'as':'Applications'});db[_0x0939('0x5d')][_0x0939('0x109')](db[_0x0939('0x64')],{'as':_0x0939('0x164')});db['ChatWebsite']['belongsTo'](db['CmList'],{'as':_0x0939('0x166'),'foreignKey':'ListId'});db['ChatWebsite'][_0x0939('0x118')](db[_0x0939('0x14e')],{'as':_0x0939('0x14e'),'foreignKey':'IntervalId'});db[_0x0939('0x5d')]['belongsTo'](db['MailAccount'],{'as':'MailAccount','foreignKey':_0x0939('0x15e')});db[_0x0939('0x5d')][_0x0939('0x118')](db[_0x0939('0x150')],{'as':_0x0939('0x151'),'foreignKey':_0x0939('0x152')});db['ChatWebsite'][_0x0939('0x11f')](db[_0x0939('0x11')],{'as':_0x0939('0x154'),'through':_0x0939('0x136')});db['OpenchannelQueueReport'][_0x0939('0x118')](db['OpenchannelAccount'],{});db[_0x0939('0x5f')][_0x0939('0x118')](db[_0x0939('0x133')],{'as':_0x0939('0x166'),'foreignKey':'ListId'});db[_0x0939('0x5f')][_0x0939('0x118')](db[_0x0939('0x11d')],{'as':_0x0939('0x15b'),'foreignKey':_0x0939('0x15c')});db[_0x0939('0x5f')][_0x0939('0x118')](db['OpenchannelInteraction'],{});db['OpenchannelQueueReport'][_0x0939('0x118')](db[_0x0939('0x5a')],{});db[_0x0939('0x5f')][_0x0939('0x118')](db['User'],{});db[_0x0939('0x5f')][_0x0939('0x118')](db[_0x0939('0x5c')],{});db[_0x0939('0x18a')][_0x0939('0x118')](db[_0x0939('0x11')],{'as':_0x0939('0x18b'),'foreignKey':_0x0939('0x108'),'onDelete':'restrict'});db[_0x0939('0x18a')][_0x0939('0x118')](db['ChatQueue'],{'as':_0x0939('0x18c'),'foreignKey':'ChatQueueId','onDelete':'restrict'});db[_0x0939('0x18a')][_0x0939('0x118')](db[_0x0939('0x5d')],{'as':'Website','foreignKey':'ChatWebsiteId','onDelete':_0x0939('0x176')});db[_0x0939('0x18a')][_0x0939('0x118')](db['Tag'],{'onDelete':_0x0939('0x176'),'foreignKey':'TagId'});db[_0x0939('0x62')]['hasMany'](db[_0x0939('0x64')],{'as':_0x0939('0x164'),'onDelete':'cascade','foreignKey':_0x0939('0x18d')});db[_0x0939('0x62')][_0x0939('0x118')](db[_0x0939('0x5d')],{'as':_0x0939('0x16b'),'foreignKey':_0x0939('0x174')});db[_0x0939('0x62')][_0x0939('0x118')](db[_0x0939('0x11d')],{'as':_0x0939('0x15b'),'foreignKey':_0x0939('0x15c')});db[_0x0939('0x62')][_0x0939('0x118')](db[_0x0939('0x11')],{'as':_0x0939('0x16c'),'foreignKey':'UserId'});db['ChatInteraction']['belongsToMany'](db[_0x0939('0x16d')],{'through':_0x0939('0x18e'),'as':_0x0939('0x16f')});db['ChatInteraction'][_0x0939('0x11f')](db['Tag'],{'through':_0x0939('0x18e'),'as':'ThroughTags'});db[_0x0939('0x62')]['belongsToMany'](db[_0x0939('0x11')],{'as':_0x0939('0x171'),'through':'user_has_chat_interactions','foreignKey':'ChatInteractionId'});db[_0x0939('0x64')][_0x0939('0x118')](db['User'],{'onDelete':_0x0939('0x107'),'as':_0x0939('0x11')});db[_0x0939('0x64')][_0x0939('0x118')](db['CmContact'],{'onDelete':'cascade','as':_0x0939('0x15b'),'foreignKey':_0x0939('0x15c')});db[_0x0939('0x64')]['belongsTo'](db[_0x0939('0x62')],{'onDelete':_0x0939('0x107'),'as':_0x0939('0x173'),'foreignKey':_0x0939('0x18d')});db[_0x0939('0x64')][_0x0939('0x118')](db['Attachment'],{'as':'Attachment','foreignKey':'AttachmentId'});db[_0x0939('0x64')][_0x0939('0x118')](db[_0x0939('0x5d')],{'as':_0x0939('0x16b'),'foreignKey':_0x0939('0x174')});db[_0x0939('0x66')][_0x0939('0x109')](db['Attachment'],{'as':_0x0939('0x172'),'foreignKey':_0x0939('0x175'),'onDelete':_0x0939('0x107'),'hooks':!![]});db[_0x0939('0x66')]['belongsTo'](db['CmContact'],{'onDelete':'cascade','as':_0x0939('0x15b'),'foreignKey':_0x0939('0x15c')});db['ChatOfflineMessage'][_0x0939('0x118')](db[_0x0939('0x5d')],{'as':_0x0939('0x16b'),'foreignKey':_0x0939('0x174')});db[_0x0939('0x12c')][_0x0939('0x11f')](db[_0x0939('0x11')],{'as':_0x0939('0x154'),'through':_0x0939('0x2e'),'hooks':!![]});db[_0x0939('0x12c')][_0x0939('0x11f')](db[_0x0939('0xdc')],{'through':'team_has_chat_queues','as':_0x0939('0x155')});db[_0x0939('0x11a')][_0x0939('0x109')](db[_0x0939('0x18f')],{'as':_0x0939('0x164'),'foreignKey':_0x0939('0x190'),'onDelete':'cascade'});db[_0x0939('0x11a')][_0x0939('0x11f')](db[_0x0939('0x11')],{'as':_0x0939('0x191'),'through':_0x0939('0x11c')});db[_0x0939('0x69')][_0x0939('0x118')](db[_0x0939('0x5d')],{'as':'Website','foreignKey':_0x0939('0x174')});db[_0x0939('0x6b')][_0x0939('0x109')](db['CmContact'],{'as':_0x0939('0x11e'),'foreignKey':_0x0939('0x192')});db[_0x0939('0x11d')][_0x0939('0x109')](db[_0x0939('0x146')],{'as':_0x0939('0x193'),'foreignKey':_0x0939('0x15c')});db[_0x0939('0x11d')][_0x0939('0x109')](db[_0x0939('0x71')],{'as':_0x0939('0x10d'),'foreignKey':_0x0939('0x15c')});db[_0x0939('0x11d')][_0x0939('0x109')](db['CmHopperHistory'],{'as':_0x0939('0x148'),'foreignKey':_0x0939('0x15c')});db[_0x0939('0x11d')][_0x0939('0x109')](db[_0x0939('0x10f')],{'as':_0x0939('0x10f'),'foreignKey':_0x0939('0x15c')});db[_0x0939('0x11d')][_0x0939('0x109')](db[_0x0939('0xc9')],{'as':_0x0939('0x14a'),'foreignKey':_0x0939('0x15c')});db[_0x0939('0x11d')][_0x0939('0x109')](db[_0x0939('0x110')],{'as':_0x0939('0x111'),'foreignKey':_0x0939('0x15c'),'onDelete':_0x0939('0x176')});db['CmContact'][_0x0939('0x109')](db['ChatInteraction'],{'as':_0x0939('0x112'),'foreignKey':_0x0939('0x15c'),'onDelete':'restrict'});db[_0x0939('0x11d')]['hasMany'](db[_0x0939('0x52')],{'as':_0x0939('0x113'),'foreignKey':_0x0939('0x15c'),'onDelete':'restrict'});db[_0x0939('0x11d')]['hasMany'](db[_0x0939('0x114')],{'as':_0x0939('0x124'),'foreignKey':_0x0939('0x15c'),'onDelete':'restrict'});db['CmContact'][_0x0939('0x109')](db[_0x0939('0x40')],{'as':_0x0939('0x115'),'foreignKey':_0x0939('0x15c'),'onDelete':_0x0939('0x176')});db[_0x0939('0x11d')][_0x0939('0x118')](db[_0x0939('0x6b')],{'as':'Company','foreignKey':'CompanyId'});db[_0x0939('0x11d')][_0x0939('0x118')](db['CmList'],{'as':_0x0939('0x166'),'foreignKey':_0x0939('0x167'),'onDelete':_0x0939('0x107')});db['CmContact']['belongsToMany'](db[_0x0939('0x11')],{'as':_0x0939('0x171'),'through':_0x0939('0x194')});db[_0x0939('0x11d')][_0x0939('0x11f')](db['Tag'],{'as':_0x0939('0x16f'),'through':_0x0939('0x195')});db[_0x0939('0x11d')][_0x0939('0x11f')](db[_0x0939('0x16d')],{'through':_0x0939('0x195'),'as':_0x0939('0x170')});db[_0x0939('0x146')][_0x0939('0x118')](db[_0x0939('0x11d')],{'as':_0x0939('0x15b'),'foreignKey':_0x0939('0x15c'),'onDelete':'cascade'});db['CmHopper']['belongsTo'](db[_0x0939('0x133')],{'as':'List','foreignKey':_0x0939('0x167'),'onDelete':_0x0939('0x107')});db[_0x0939('0x146')][_0x0939('0x118')](db['User'],{'as':'Agent','foreignKey':_0x0939('0x108')});db[_0x0939('0x146')][_0x0939('0x118')](db[_0x0939('0x19')],{'as':'Queue','foreignKey':_0x0939('0x147'),'onDelete':_0x0939('0x107')});db[_0x0939('0x146')][_0x0939('0x118')](db['Campaign'],{'as':_0x0939('0xe0'),'foreignKey':_0x0939('0x196'),'onDelete':_0x0939('0x107')});db[_0x0939('0x146')][_0x0939('0x118')](db[_0x0939('0x11')],{'as':_0x0939('0x16c'),'foreignKey':_0x0939('0x197')});db[_0x0939('0x6f')][_0x0939('0x118')](db[_0x0939('0x11d')],{'as':_0x0939('0x15b'),'foreignKey':_0x0939('0x15c'),'onDelete':_0x0939('0x107')});db[_0x0939('0x6f')][_0x0939('0x118')](db[_0x0939('0x133')],{'as':_0x0939('0x166'),'foreignKey':_0x0939('0x167'),'onDelete':_0x0939('0x107')});db[_0x0939('0x6f')][_0x0939('0x118')](db[_0x0939('0x19')],{'as':'Queue','foreignKey':_0x0939('0x147'),'onDelete':_0x0939('0x107')});db[_0x0939('0x6f')][_0x0939('0x118')](db['Campaign'],{'as':_0x0939('0xe0'),'foreignKey':_0x0939('0x196'),'onDelete':_0x0939('0x107')});db[_0x0939('0x79')]['hasMany'](db[_0x0939('0x7d')],{'as':{'plural':_0x0939('0x198'),'singular':_0x0939('0x199')},'foreignKey':_0x0939('0x19a'),'onDelete':_0x0939('0x107'),'hooks':!![]});db['Automation'][_0x0939('0x109')](db['Condition'],{'as':{'plural':_0x0939('0x19b'),'singular':_0x0939('0x19c')},'foreignKey':_0x0939('0x19d'),'onDelete':_0x0939('0x107'),'hooks':!![]});db[_0x0939('0x79')][_0x0939('0x109')](db[_0x0939('0x78')],{'as':_0x0939('0x19e'),'foreignKey':_0x0939('0x19f'),'onDelete':_0x0939('0x107'),'hooks':!![]});db[_0x0939('0x7b')][_0x0939('0x109')](db[_0x0939('0x7b')],{'as':'Dispositions','foreignKey':_0x0939('0x1a0'),'onDelete':'cascade'});db['Interval'][_0x0939('0x109')](db['Interval'],{'as':'Intervals','foreignKey':_0x0939('0x14f'),'onDelete':'cascade','hooks':!![],'required':![]});db['Interval'][_0x0939('0x109')](db[_0x0939('0x10c')],{'as':'Extensions','foreignKey':_0x0939('0x14f'),'onDelete':'restrict'});db[_0x0939('0x14e')][_0x0939('0x109')](db[_0x0939('0x42')],{'as':_0x0939('0x1a1'),'foreignKey':_0x0939('0x14f')});db[_0x0939('0x14e')][_0x0939('0x109')](db['ChatApplication'],{'as':_0x0939('0x1a2'),'foreignKey':_0x0939('0x14f')});db[_0x0939('0x14e')][_0x0939('0x109')](db['FaxApplication'],{'as':_0x0939('0x1a3'),'foreignKey':'IntervalId'});db[_0x0939('0x14e')][_0x0939('0x109')](db[_0x0939('0x180')],{'as':_0x0939('0x1a4'),'foreignKey':_0x0939('0x14f')});db['Schedule'][_0x0939('0x118')](db[_0x0939('0x3c')],{});db['Schedule'][_0x0939('0x118')](db[_0x0939('0x8a')],{'foreignKey':'DefaultReportId'});db[_0x0939('0x1a5')][_0x0939('0x118')](db[_0x0939('0x1a6')],{'foreignKey':_0x0939('0x1a7')});db[_0x0939('0x81')]['belongsToMany'](db[_0x0939('0x18')],{'as':_0x0939('0x1a8'),'through':_0x0939('0x145'),'onDelete':'restrict'});db[_0x0939('0x16d')][_0x0939('0x11f')](db[_0x0939('0x11d')],{'through':_0x0939('0x195')});db[_0x0939('0x16d')]['belongsToMany'](db['ChatInteraction'],{'through':_0x0939('0x18e')});db[_0x0939('0x16d')][_0x0939('0x11f')](db[_0x0939('0x40')],{'through':_0x0939('0x16e')});db['Tag'][_0x0939('0x11f')](db[_0x0939('0x52')],{'through':'sms_interaction_has_tags'});db[_0x0939('0x16d')][_0x0939('0x11f')](db[_0x0939('0x114')],{'through':_0x0939('0x17b')});db[_0x0939('0x16d')][_0x0939('0x11f')](db[_0x0939('0x110')],{'through':_0x0939('0x187')});db[_0x0939('0x16d')][_0x0939('0x11f')](db[_0x0939('0xf8')],{'through':_0x0939('0x1a9')});db[_0x0939('0x1aa')]['hasMany'](db[_0x0939('0x7d')],{'as':{'plural':'AllConditions','singular':'AllCondition'},'foreignKey':_0x0939('0x1ab'),'onDelete':_0x0939('0x107'),'hooks':!![]});db['Trigger'][_0x0939('0x109')](db[_0x0939('0x7d')],{'as':{'plural':_0x0939('0x1ac'),'singular':_0x0939('0x1ad')},'foreignKey':_0x0939('0x1ae'),'onDelete':_0x0939('0x107'),'hooks':!![]});db['Trigger'][_0x0939('0x109')](db['Action'],{'as':_0x0939('0x19e'),'foreignKey':_0x0939('0x1af'),'onDelete':_0x0939('0x107'),'hooks':!![]});db['AnalyticCustomReport'][_0x0939('0x109')](db['AnalyticFieldReport'],{'as':_0x0939('0x1b0'),'onDelete':_0x0939('0x107'),'foreignKey':_0x0939('0x1a7'),'hooks':!![]});db[_0x0939('0x8a')][_0x0939('0x109')](db[_0x0939('0x8f')],{'as':_0x0939('0x1b0'),'onDelete':_0x0939('0x107'),'foreignKey':_0x0939('0x1b1')});db[_0x0939('0x8d')][_0x0939('0x109')](db['AnalyticFieldReport'],{'as':_0x0939('0x1b0'),'onDelete':'cascade','foreignKey':_0x0939('0x1b2')});db[_0x0939('0x8f')][_0x0939('0x118')](db[_0x0939('0x8d')],{'foreignKey':_0x0939('0x1b2')});db[_0x0939('0x92')][_0x0939('0x109')](db[_0x0939('0x94')],{'as':_0x0939('0x1b3'),'onDelete':_0x0939('0x107'),'foreignKey':_0x0939('0x1b4')});db[_0x0939('0x94')][_0x0939('0x109')](db[_0x0939('0x96')],{'as':_0x0939('0x1b5'),'onDelete':'cascade','foreignKey':_0x0939('0x1b6')});db[_0x0939('0x94')][_0x0939('0x109')](db[_0x0939('0x96')],{'as':'Descriptions','onDelete':_0x0939('0x107'),'foreignKey':_0x0939('0x1b7')});db['SalesforceConfiguration']['hasMany'](db[_0x0939('0x96')],{'as':_0x0939('0x1b0'),'onDelete':'cascade','foreignKey':'FieldId'});db[_0x0939('0x94')][_0x0939('0x118')](db[_0x0939('0x92')],{'as':'Account','foreignKey':_0x0939('0x1b4')});db['SalesforceField'][_0x0939('0x109')](db[_0x0939('0x96')],{'as':_0x0939('0x1b8'),'foreignKey':_0x0939('0x1b6')});db[_0x0939('0x96')]['hasMany'](db[_0x0939('0x96')],{'as':_0x0939('0x1b9'),'foreignKey':'DescriptionId'});db['SalesforceField']['hasMany'](db[_0x0939('0x96')],{'as':_0x0939('0x1ba'),'foreignKey':_0x0939('0x1bb')});db[_0x0939('0x96')][_0x0939('0x118')](db[_0x0939('0x84')],{'as':_0x0939('0x84'),'foreignKey':_0x0939('0x1bc')});db['SugarcrmAccount'][_0x0939('0x109')](db['SugarcrmConfiguration'],{'as':_0x0939('0x1b3'),'onDelete':_0x0939('0x107'),'foreignKey':_0x0939('0x1b4')});db[_0x0939('0x9a')][_0x0939('0x109')](db['SugarcrmField'],{'as':_0x0939('0x1b5'),'onDelete':_0x0939('0x107'),'foreignKey':_0x0939('0x1b6')});db[_0x0939('0x9a')][_0x0939('0x109')](db[_0x0939('0x1bd')],{'as':_0x0939('0x1be'),'onDelete':_0x0939('0x107'),'foreignKey':_0x0939('0x1b7')});db[_0x0939('0x9a')][_0x0939('0x109')](db[_0x0939('0x1bd')],{'as':'Fields','onDelete':_0x0939('0x107'),'foreignKey':_0x0939('0x1bb')});db[_0x0939('0x9a')][_0x0939('0x118')](db['SugarcrmAccount'],{'as':_0x0939('0x16b'),'foreignKey':'AccountId'});db[_0x0939('0x1bd')][_0x0939('0x109')](db[_0x0939('0x1bd')],{'as':_0x0939('0x1b8'),'foreignKey':_0x0939('0x1b6')});db[_0x0939('0x1bd')][_0x0939('0x109')](db[_0x0939('0x1bd')],{'as':_0x0939('0x1b9'),'foreignKey':_0x0939('0x1b7')});db['SugarcrmField'][_0x0939('0x109')](db[_0x0939('0x1bd')],{'as':_0x0939('0x1ba'),'foreignKey':_0x0939('0x1bb')});db[_0x0939('0x1bd')][_0x0939('0x118')](db[_0x0939('0x84')],{'as':_0x0939('0x84'),'foreignKey':'VariableId'});db['DeskAccount']['hasMany'](db[_0x0939('0x9f')],{'as':_0x0939('0x1b3'),'onDelete':_0x0939('0x107'),'foreignKey':'AccountId'});db[_0x0939('0x9f')]['hasMany'](db[_0x0939('0xa1')],{'as':_0x0939('0x1b5'),'onDelete':_0x0939('0x107'),'foreignKey':_0x0939('0x1b6')});db[_0x0939('0x9f')][_0x0939('0x109')](db[_0x0939('0xa1')],{'as':_0x0939('0x1be'),'onDelete':_0x0939('0x107'),'foreignKey':_0x0939('0x1b7')});db['DeskConfiguration']['hasMany'](db[_0x0939('0xa1')],{'as':_0x0939('0x1b0'),'onDelete':_0x0939('0x107'),'foreignKey':_0x0939('0x1bb')});db[_0x0939('0x9f')][_0x0939('0x118')](db[_0x0939('0x9d')],{'as':_0x0939('0x16b'),'foreignKey':_0x0939('0x1b4')});db[_0x0939('0x9f')]['belongsToMany'](db[_0x0939('0x16d')],{'through':_0x0939('0x1bf')});db[_0x0939('0xa1')]['hasMany'](db[_0x0939('0xa1')],{'as':'Subject','foreignKey':_0x0939('0x1b6')});db[_0x0939('0xa1')][_0x0939('0x109')](db['DeskField'],{'as':_0x0939('0x1b9'),'foreignKey':'DescriptionId'});db[_0x0939('0xa1')]['hasMany'](db[_0x0939('0xa1')],{'as':_0x0939('0x1ba'),'foreignKey':'FieldId'});db['DeskField']['belongsTo'](db['Variable'],{'as':'Variable','foreignKey':_0x0939('0x1bc')});db[_0x0939('0xa3')]['hasMany'](db[_0x0939('0xa5')],{'as':_0x0939('0x1b3'),'onDelete':_0x0939('0x107'),'foreignKey':'AccountId'});db['ZohoConfiguration'][_0x0939('0x109')](db[_0x0939('0x1c0')],{'as':_0x0939('0x1b5'),'onDelete':_0x0939('0x107'),'foreignKey':_0x0939('0x1b6')});db[_0x0939('0xa5')][_0x0939('0x109')](db[_0x0939('0x1c0')],{'as':_0x0939('0x1be'),'onDelete':_0x0939('0x107'),'foreignKey':_0x0939('0x1b7')});db['ZohoConfiguration']['hasMany'](db[_0x0939('0x1c0')],{'as':_0x0939('0x1b0'),'onDelete':'cascade','foreignKey':_0x0939('0x1bb')});db[_0x0939('0xa5')]['belongsTo'](db[_0x0939('0xa3')],{'as':_0x0939('0x16b'),'foreignKey':'AccountId'});db['ZohoField']['hasMany'](db['ZohoField'],{'as':'Subject','foreignKey':_0x0939('0x1b6')});db[_0x0939('0x1c0')][_0x0939('0x109')](db[_0x0939('0x1c0')],{'as':_0x0939('0x1b9'),'foreignKey':'DescriptionId'});db[_0x0939('0x1c0')]['hasMany'](db['ZohoField'],{'as':_0x0939('0x1ba'),'foreignKey':'FieldId'});db['ZohoField'][_0x0939('0x118')](db[_0x0939('0x84')],{'as':_0x0939('0x84'),'foreignKey':_0x0939('0x1bc')});db['ZendeskAccount']['hasMany'](db['ZendeskConfiguration'],{'as':_0x0939('0x1b3'),'onDelete':_0x0939('0x107'),'foreignKey':_0x0939('0x1b4')});db['ZendeskConfiguration'][_0x0939('0x109')](db['ZendeskField'],{'as':_0x0939('0x1b5'),'foreignKey':_0x0939('0x1b6')});db[_0x0939('0x1c1')][_0x0939('0x109')](db[_0x0939('0xaa')],{'as':_0x0939('0x1be'),'foreignKey':'DescriptionId'});db[_0x0939('0x1c1')]['hasMany'](db[_0x0939('0xaa')],{'as':_0x0939('0x1b0'),'foreignKey':_0x0939('0x1bb')});db['ZendeskConfiguration'][_0x0939('0x118')](db[_0x0939('0x1c2')],{'as':_0x0939('0x16b'),'foreignKey':'AccountId'});db[_0x0939('0x1c1')]['belongsToMany'](db[_0x0939('0x16d')],{'through':_0x0939('0x1c3')});db[_0x0939('0xaa')][_0x0939('0x109')](db[_0x0939('0xaa')],{'as':'Subject','foreignKey':'SubjectId'});db[_0x0939('0xaa')][_0x0939('0x109')](db[_0x0939('0xaa')],{'as':'Description','foreignKey':_0x0939('0x1b7')});db[_0x0939('0xaa')][_0x0939('0x109')](db[_0x0939('0xaa')],{'as':_0x0939('0x1ba'),'foreignKey':'FieldId'});db['ZendeskField'][_0x0939('0x118')](db['Variable'],{'as':_0x0939('0x84'),'foreignKey':'VariableId'});db[_0x0939('0x1c4')]['hasMany'](db[_0x0939('0xac')],{'as':_0x0939('0x1b3'),'onDelete':_0x0939('0x107'),'foreignKey':_0x0939('0x1b4')});db['FreshdeskConfiguration']['hasMany'](db[_0x0939('0xad')],{'as':_0x0939('0x1b5'),'onDelete':_0x0939('0x107'),'foreignKey':_0x0939('0x1b6')});db['FreshdeskConfiguration'][_0x0939('0x109')](db[_0x0939('0xad')],{'as':'Descriptions','onDelete':_0x0939('0x107'),'foreignKey':'DescriptionId'});db[_0x0939('0xac')][_0x0939('0x109')](db[_0x0939('0xad')],{'as':_0x0939('0x1b0'),'onDelete':'cascade','foreignKey':_0x0939('0x1bb')});db[_0x0939('0xac')]['belongsTo'](db[_0x0939('0x1c4')],{'as':'Account','foreignKey':_0x0939('0x1b4')});db[_0x0939('0xac')][_0x0939('0x11f')](db[_0x0939('0x16d')],{'through':_0x0939('0x1c5')});db[_0x0939('0xad')][_0x0939('0x109')](db['FreshdeskField'],{'as':_0x0939('0x1b8'),'foreignKey':_0x0939('0x1b6')});db[_0x0939('0xad')]['hasMany'](db['FreshdeskField'],{'as':_0x0939('0x1b9'),'foreignKey':_0x0939('0x1b7')});db[_0x0939('0xad')][_0x0939('0x109')](db['FreshdeskField'],{'as':_0x0939('0x1ba'),'foreignKey':'FieldId'});db[_0x0939('0xad')][_0x0939('0x118')](db[_0x0939('0x84')],{'as':_0x0939('0x84'),'foreignKey':_0x0939('0x1bc')});db['VtigerAccount'][_0x0939('0x109')](db[_0x0939('0xb0')],{'as':_0x0939('0x1b3'),'onDelete':_0x0939('0x107'),'foreignKey':'AccountId'});db[_0x0939('0xb0')][_0x0939('0x109')](db[_0x0939('0xb2')],{'as':_0x0939('0x1b5'),'foreignKey':_0x0939('0x1b6')});db[_0x0939('0xb0')][_0x0939('0x109')](db[_0x0939('0xb2')],{'as':_0x0939('0x1be'),'foreignKey':'DescriptionId'});db[_0x0939('0xb0')]['hasMany'](db['VtigerField'],{'as':_0x0939('0x1b0'),'foreignKey':_0x0939('0x1bb')});db['VtigerConfiguration'][_0x0939('0x118')](db[_0x0939('0xaf')],{'as':'Account','foreignKey':_0x0939('0x1b4')});db['VtigerField'][_0x0939('0x109')](db['VtigerField'],{'as':_0x0939('0x1b8'),'foreignKey':'SubjectId'});db[_0x0939('0xb2')][_0x0939('0x109')](db['VtigerField'],{'as':_0x0939('0x1b9'),'foreignKey':_0x0939('0x1b7')});db[_0x0939('0xb2')][_0x0939('0x109')](db['VtigerField'],{'as':_0x0939('0x1ba'),'foreignKey':_0x0939('0x1bb')});db[_0x0939('0xb2')]['belongsTo'](db[_0x0939('0x84')],{'as':_0x0939('0x84'),'foreignKey':_0x0939('0x1bc')});db[_0x0939('0x1c6')][_0x0939('0x109')](db[_0x0939('0xb5')],{'as':'Configurations','onDelete':'cascade','foreignKey':'AccountId'});db['ServicenowConfiguration'][_0x0939('0x109')](db[_0x0939('0xb7')],{'as':'Subjects','foreignKey':_0x0939('0x1b6')});db[_0x0939('0xb5')][_0x0939('0x109')](db[_0x0939('0xb7')],{'as':'Descriptions','foreignKey':_0x0939('0x1b7')});db[_0x0939('0xb5')][_0x0939('0x109')](db[_0x0939('0xb7')],{'as':_0x0939('0x1b0'),'foreignKey':_0x0939('0x1bb')});db['ServicenowConfiguration'][_0x0939('0x118')](db[_0x0939('0x1c6')],{'as':_0x0939('0x16b'),'foreignKey':_0x0939('0x1b4')});db[_0x0939('0xb7')][_0x0939('0x109')](db[_0x0939('0xb7')],{'as':_0x0939('0x1b8'),'foreignKey':'SubjectId'});db[_0x0939('0xb7')][_0x0939('0x109')](db[_0x0939('0xb7')],{'as':_0x0939('0x1b9'),'foreignKey':_0x0939('0x1b7')});db['ServicenowField']['hasMany'](db[_0x0939('0xb7')],{'as':'Field','foreignKey':_0x0939('0x1bb')});db[_0x0939('0xb7')][_0x0939('0x118')](db[_0x0939('0x84')],{'as':_0x0939('0x84'),'foreignKey':'VariableId'});db[_0x0939('0xb9')][_0x0939('0x109')](db[_0x0939('0x1c7')],{'as':_0x0939('0x1b3'),'onDelete':_0x0939('0x107'),'foreignKey':_0x0939('0x1b4')});db[_0x0939('0x1c7')][_0x0939('0x109')](db['Dynamics365Field'],{'as':_0x0939('0x1b5'),'onDelete':_0x0939('0x107'),'foreignKey':_0x0939('0x1b6')});db[_0x0939('0x1c7')][_0x0939('0x109')](db[_0x0939('0xbb')],{'as':_0x0939('0x1be'),'onDelete':_0x0939('0x107'),'foreignKey':_0x0939('0x1b7')});db[_0x0939('0x1c7')][_0x0939('0x109')](db['Dynamics365Field'],{'as':_0x0939('0x1b0'),'onDelete':'cascade','foreignKey':_0x0939('0x1bb')});db[_0x0939('0x1c7')][_0x0939('0x118')](db[_0x0939('0xb9')],{'as':_0x0939('0x16b'),'foreignKey':_0x0939('0x1b4')});db[_0x0939('0xbb')][_0x0939('0x109')](db[_0x0939('0xbb')],{'as':_0x0939('0x1b8'),'foreignKey':_0x0939('0x1b6')});db[_0x0939('0xbb')][_0x0939('0x109')](db[_0x0939('0xbb')],{'as':_0x0939('0x1b9'),'foreignKey':_0x0939('0x1b7')});db[_0x0939('0xbb')][_0x0939('0x109')](db[_0x0939('0xbb')],{'as':_0x0939('0x1ba'),'foreignKey':_0x0939('0x1bb')});db['Dynamics365Field'][_0x0939('0x118')](db[_0x0939('0x84')],{'as':'Variable','foreignKey':'VariableId'});db[_0x0939('0x1c8')]['hasMany'](db[_0x0939('0xbe')],{'as':_0x0939('0x1b3'),'onDelete':'cascade','foreignKey':_0x0939('0x1b4')});db[_0x0939('0xbe')][_0x0939('0x109')](db[_0x0939('0xc0')],{'as':'Subjects','foreignKey':_0x0939('0x1b6')});db[_0x0939('0xbe')]['hasMany'](db['FreshsalesField'],{'as':_0x0939('0x1be'),'foreignKey':_0x0939('0x1b7')});db[_0x0939('0xbe')][_0x0939('0x109')](db[_0x0939('0xc0')],{'as':_0x0939('0x1b0'),'foreignKey':'FieldId'});db[_0x0939('0xbe')][_0x0939('0x118')](db[_0x0939('0x1c8')],{'as':_0x0939('0x16b'),'foreignKey':'AccountId'});db[_0x0939('0xc0')][_0x0939('0x109')](db[_0x0939('0xc0')],{'as':'Subject','foreignKey':_0x0939('0x1b6')});db[_0x0939('0xc0')][_0x0939('0x109')](db[_0x0939('0xc0')],{'as':_0x0939('0x1b9'),'foreignKey':_0x0939('0x1b7')});db[_0x0939('0xc0')][_0x0939('0x109')](db[_0x0939('0xc0')],{'as':_0x0939('0x1ba'),'foreignKey':_0x0939('0x1bb')});db['FreshsalesField'][_0x0939('0x118')](db[_0x0939('0x84')],{'as':_0x0939('0x84'),'foreignKey':_0x0939('0x1bc')});db[_0x0939('0xc4')][_0x0939('0x118')](db[_0x0939('0x5d')],{});db[_0x0939('0xc4')][_0x0939('0x118')](db['CmList'],{'as':_0x0939('0x166'),'foreignKey':_0x0939('0x167')});db[_0x0939('0xc4')][_0x0939('0x118')](db['CmContact'],{'as':_0x0939('0x15b'),'foreignKey':_0x0939('0x15c')});db[_0x0939('0xc4')]['belongsTo'](db[_0x0939('0x62')],{});db[_0x0939('0xc4')]['belongsTo'](db[_0x0939('0x64')],{});db[_0x0939('0xc4')][_0x0939('0x118')](db[_0x0939('0x11')],{});db[_0x0939('0xc4')]['belongsTo'](db[_0x0939('0x12c')],{});db[_0x0939('0x18f')][_0x0939('0x118')](db[_0x0939('0x11')],{'onDelete':_0x0939('0x107'),'foreignKey':_0x0939('0x1c9')});db[_0x0939('0x18f')][_0x0939('0x118')](db[_0x0939('0x11')],{'onDelete':_0x0939('0x107'),'foreignKey':_0x0939('0x1ca')});db[_0x0939('0xc9')]['hasMany'](db[_0x0939('0xc8')],{'foreignKey':_0x0939('0x1cb'),'onDelete':_0x0939('0x107')});db['JscriptySessionReport'][_0x0939('0x109')](db[_0x0939('0xc6')],{'foreignKey':'SessionId','onDelete':_0x0939('0x107')});db[_0x0939('0xcb')][_0x0939('0x118')](db[_0x0939('0x4f')],{});db['SmsQueueReport'][_0x0939('0x118')](db[_0x0939('0x133')],{'as':'List','foreignKey':_0x0939('0x167')});db[_0x0939('0xcb')]['belongsTo'](db['CmContact'],{'as':_0x0939('0x15b'),'foreignKey':_0x0939('0x15c')});db[_0x0939('0xcb')][_0x0939('0x118')](db[_0x0939('0x52')],{});db['SmsQueueReport']['belongsTo'](db[_0x0939('0x17f')],{});db['SmsQueueReport'][_0x0939('0x118')](db[_0x0939('0x11')],{});db[_0x0939('0xcb')][_0x0939('0x118')](db[_0x0939('0x12f')],{});db['JscriptyProject']['hasMany'](db['JscriptySessionReport'],{'foreignKey':_0x0939('0x1cc')});db['JscriptyProject'][_0x0939('0x109')](db['JscriptyQuestionReport'],{'foreignKey':'ProjectId'});db['JscriptyProject'][_0x0939('0x109')](db['JscriptyAnswerReport'],{'foreignKey':_0x0939('0x1cc')});db[_0x0939('0xd6')][_0x0939('0x11f')](db[_0x0939('0x11')],{'as':'Users','through':'user_has_square_projects'});db['Team'][_0x0939('0x11f')](db[_0x0939('0x11')],{'as':_0x0939('0x154'),'through':'user_has_teams'});db[_0x0939('0xdc')][_0x0939('0x11f')](db[_0x0939('0x19')],{'through':'TeamVoiceQueue','as':'VoiceQueues'});db['Team'][_0x0939('0x11f')](db[_0x0939('0x12a')],{'through':_0x0939('0x169'),'as':_0x0939('0x12b')});db[_0x0939('0xdc')][_0x0939('0x11f')](db[_0x0939('0x12c')],{'through':_0x0939('0x1cd'),'as':_0x0939('0x12d')});db[_0x0939('0xdc')]['belongsToMany'](db[_0x0939('0x4d')],{'through':_0x0939('0x17c'),'as':'FaxQueues'});db[_0x0939('0xdc')][_0x0939('0x11f')](db['SmsQueue'],{'through':_0x0939('0x183'),'as':_0x0939('0x130')});db[_0x0939('0xdc')][_0x0939('0x11f')](db['OpenchannelQueue'],{'through':_0x0939('0x1ce'),'as':'OpenchannelQueues'});db['Team']['belongsToMany'](db['WhatsappQueue'],{'through':'team_has_whatsapp_queues','as':_0x0939('0x1cf')});db['Campaign'][_0x0939('0x109')](db[_0x0939('0x146')],{'as':'Hoppers','foreignKey':'CampaignId'});db[_0x0939('0xe0')][_0x0939('0x109')](db[_0x0939('0x71')],{'as':'HopperFinals','foreignKey':_0x0939('0x196')});db[_0x0939('0xe0')][_0x0939('0x109')](db[_0x0939('0x73')],{'as':_0x0939('0x148'),'foreignKey':_0x0939('0x196')});db[_0x0939('0xe0')]['hasMany'](db[_0x0939('0x6f')],{'as':_0x0939('0x149'),'foreignKey':_0x0939('0x196')});db['Campaign'][_0x0939('0x118')](db['Trunk'],{'as':_0x0939('0x28'),'foreignKey':_0x0939('0x14b')});db[_0x0939('0xe0')]['belongsTo'](db[_0x0939('0x28')],{'as':_0x0939('0x14c'),'foreignKey':_0x0939('0x14d')});db[_0x0939('0xe0')][_0x0939('0x118')](db[_0x0939('0x14e')],{'as':_0x0939('0x14e'),'foreignKey':_0x0939('0x14f')});db[_0x0939('0xe0')]['belongsTo'](db[_0x0939('0xd6')],{'as':_0x0939('0xd6'),'foreignKey':_0x0939('0x1d0')});db[_0x0939('0xe0')][_0x0939('0x11f')](db[_0x0939('0x133')],{'as':_0x0939('0x120'),'through':_0x0939('0x1d1')});db[_0x0939('0xe0')][_0x0939('0x11f')](db[_0x0939('0x133')],{'as':_0x0939('0x156'),'through':_0x0939('0x1d2')});db[_0x0939('0xe4')][_0x0939('0x118')](db[_0x0939('0x66')],{'as':'ChatOfflineMessage','foreignKey':_0x0939('0x175')});db[_0x0939('0xe7')][_0x0939('0x118')](db[_0x0939('0x163')],{});db[_0x0939('0xe7')][_0x0939('0x118')](db[_0x0939('0x40')],{});db[_0x0939('0xe7')][_0x0939('0x118')](db[_0x0939('0x3c')],{'foreignKey':_0x0939('0x1d3'),'as':_0x0939('0x1d4')});db[_0x0939('0xe7')][_0x0939('0x118')](db[_0x0939('0x11')],{'foreignKey':_0x0939('0x1d5'),'as':_0x0939('0x1d6')});db[_0x0939('0xe7')]['belongsTo'](db[_0x0939('0x11')],{'foreignKey':'ToUserId','as':_0x0939('0x1d7')});db[_0x0939('0xe7')][_0x0939('0x118')](db[_0x0939('0x12a')],{'foreignKey':_0x0939('0x1d8'),'as':_0x0939('0x1d9')});db[_0x0939('0xe7')][_0x0939('0x118')](db[_0x0939('0x3c')],{'foreignKey':_0x0939('0x1da'),'as':'ToAccount'});db[_0x0939('0xe9')][_0x0939('0x118')](db['ChatMessage'],{});db[_0x0939('0xe9')]['belongsTo'](db['ChatInteraction'],{});db[_0x0939('0xe9')][_0x0939('0x118')](db[_0x0939('0x5d')],{'foreignKey':'FromChatWebsiteId','as':_0x0939('0x1d4')});db[_0x0939('0xe9')][_0x0939('0x118')](db[_0x0939('0x11')],{'foreignKey':_0x0939('0x1d5'),'as':'FromAgent'});db[_0x0939('0xe9')]['belongsTo'](db[_0x0939('0x11')],{'foreignKey':_0x0939('0x1db'),'as':_0x0939('0x1d7')});db[_0x0939('0xe9')][_0x0939('0x118')](db['ChatQueue'],{'foreignKey':_0x0939('0x1dc'),'as':'ToQueue'});db[_0x0939('0xe9')][_0x0939('0x118')](db[_0x0939('0x5d')],{'foreignKey':'ToChatWebsiteId','as':_0x0939('0x1dd')});db[_0x0939('0xea')][_0x0939('0x118')](db[_0x0939('0x4b')],{});db[_0x0939('0xea')]['belongsTo'](db[_0x0939('0x114')],{});db['FaxTransferReport'][_0x0939('0x118')](db[_0x0939('0x137')],{'foreignKey':_0x0939('0x1de'),'as':_0x0939('0x1d4')});db[_0x0939('0xea')]['belongsTo'](db[_0x0939('0x11')],{'foreignKey':_0x0939('0x1d5'),'as':_0x0939('0x1d6')});db[_0x0939('0xea')][_0x0939('0x118')](db['User'],{'foreignKey':_0x0939('0x1db'),'as':'ToAgent'});db['FaxTransferReport'][_0x0939('0x118')](db[_0x0939('0x4d')],{'foreignKey':_0x0939('0x1df'),'as':_0x0939('0x1d9')});db[_0x0939('0xea')]['belongsTo'](db[_0x0939('0x137')],{'foreignKey':_0x0939('0x1e0'),'as':_0x0939('0x1dd')});db['OpenchannelTransferReport']['belongsTo'](db['OpenchannelMessage'],{});db[_0x0939('0xeb')][_0x0939('0x118')](db[_0x0939('0x110')],{});db[_0x0939('0xeb')][_0x0939('0x118')](db['OpenchannelAccount'],{'foreignKey':_0x0939('0x1e1'),'as':_0x0939('0x1d4')});db[_0x0939('0xeb')][_0x0939('0x118')](db[_0x0939('0x11')],{'foreignKey':_0x0939('0x1d5'),'as':_0x0939('0x1d6')});db[_0x0939('0xeb')]['belongsTo'](db[_0x0939('0x11')],{'foreignKey':_0x0939('0x1db'),'as':_0x0939('0x1d7')});db['OpenchannelTransferReport']['belongsTo'](db['OpenchannelQueue'],{'foreignKey':_0x0939('0x1e2'),'as':_0x0939('0x1d9')});db['OpenchannelTransferReport']['belongsTo'](db[_0x0939('0x56')],{'foreignKey':_0x0939('0x1e3'),'as':'ToAccount'});db[_0x0939('0xed')][_0x0939('0x118')](db[_0x0939('0x17f')],{});db['SmsTransferReport'][_0x0939('0x118')](db[_0x0939('0x52')],{});db[_0x0939('0xed')][_0x0939('0x118')](db[_0x0939('0x4f')],{'foreignKey':_0x0939('0x1e4'),'as':'FromAccount'});db[_0x0939('0xed')][_0x0939('0x118')](db[_0x0939('0x11')],{'foreignKey':_0x0939('0x1d5'),'as':_0x0939('0x1d6')});db['SmsTransferReport'][_0x0939('0x118')](db[_0x0939('0x11')],{'foreignKey':_0x0939('0x1db'),'as':_0x0939('0x1d7')});db['SmsTransferReport'][_0x0939('0x118')](db['SmsQueue'],{'foreignKey':'ToSmsQueueId','as':'ToQueue'});db[_0x0939('0xed')]['belongsTo'](db[_0x0939('0x4f')],{'foreignKey':_0x0939('0x1e5'),'as':_0x0939('0x1dd')});db[_0x0939('0x133')][_0x0939('0x109')](db[_0x0939('0x7b')],{'as':_0x0939('0x161'),'foreignKey':'ListId','onDelete':_0x0939('0x107')});db['CmList'][_0x0939('0x109')](db[_0x0939('0x76')],{'as':_0x0939('0x1e6'),'foreignKey':'ListId'});db[_0x0939('0x133')][_0x0939('0x109')](db[_0x0939('0x11d')],{'as':_0x0939('0x11e'),'onDelete':'cascade','foreignKey':_0x0939('0x167')});db['CmList']['hasMany'](db[_0x0939('0x71')],{'as':_0x0939('0x10d'),'foreignKey':_0x0939('0x167')});db['CmList']['hasMany'](db[_0x0939('0x73')],{'as':'HopperHistory','foreignKey':_0x0939('0x167')});db['CmList'][_0x0939('0x109')](db[_0x0939('0x10f')],{'as':_0x0939('0x10f'),'foreignKey':_0x0939('0x167')});db[_0x0939('0x133')][_0x0939('0x11f')](db['VoiceQueue'],{'as':'Queues','through':_0x0939('0x153')});db[_0x0939('0x133')][_0x0939('0x11f')](db['User'],{'as':_0x0939('0x154'),'through':'cm_user_has_lists'});db[_0x0939('0xef')][_0x0939('0x109')](db[_0x0939('0x10c')],{'as':_0x0939('0x1e7'),'onDelete':_0x0939('0x107')});db[_0x0939('0xef')][_0x0939('0x11f')](db[_0x0939('0x11')],{'as':_0x0939('0x154'),'through':_0x0939('0x134')});db['UserProfile'][_0x0939('0x109')](db['User'],{'as':_0x0939('0x171'),'foreignKey':_0x0939('0x119')});db[_0x0939('0xf0')]['hasMany'](db[_0x0939('0xf2')],{'as':_0x0939('0x1e8'),'foreignKey':_0x0939('0x119'),'onDelete':_0x0939('0x107')});db[_0x0939('0xf2')][_0x0939('0x109')](db[_0x0939('0x1e9')],{'as':_0x0939('0x1ea'),'foreignKey':_0x0939('0x1eb'),'onDelete':_0x0939('0x107')});db[_0x0939('0x13e')]['hasMany'](db[_0x0939('0x7b')],{'as':'Dispositions','foreignKey':_0x0939('0x1ec'),'onDelete':_0x0939('0x107')});db[_0x0939('0x13e')][_0x0939('0x109')](db[_0x0939('0x7a')],{'as':_0x0939('0x162'),'foreignKey':'WhatsappAccountId'});db[_0x0939('0x13e')][_0x0939('0x109')](db[_0x0939('0xfa')],{'as':_0x0939('0x164'),'foreignKey':_0x0939('0x1ec')});db[_0x0939('0x13e')][_0x0939('0x109')](db[_0x0939('0xf8')],{'as':_0x0939('0x165')});db[_0x0939('0x13e')][_0x0939('0x109')](db[_0x0939('0x1ed')],{'as':_0x0939('0x143')});db[_0x0939('0x13e')]['belongsTo'](db['CmList'],{'as':_0x0939('0x166'),'foreignKey':_0x0939('0x167')});db[_0x0939('0x13e')]['belongsTo'](db[_0x0939('0x150')],{'as':_0x0939('0x151'),'foreignKey':_0x0939('0x152')});db[_0x0939('0x13e')][_0x0939('0x11f')](db[_0x0939('0x11')],{'as':_0x0939('0x154'),'through':_0x0939('0x13f')});db[_0x0939('0x1ed')]['belongsTo'](db[_0x0939('0x11')],{'onDelete':_0x0939('0x176')});db[_0x0939('0x1ed')]['belongsTo'](db['WhatsappQueue'],{'onDelete':_0x0939('0x176')});db[_0x0939('0x1ed')][_0x0939('0x118')](db[_0x0939('0x13e')],{'onDelete':_0x0939('0x176')});db[_0x0939('0x1ed')][_0x0939('0x118')](db[_0x0939('0x14e')],{'onDelete':_0x0939('0x176'),'foreignKey':_0x0939('0x14f')});db[_0x0939('0x1ed')][_0x0939('0x118')](db[_0x0939('0x16d')],{'onDelete':_0x0939('0x176'),'foreignKey':_0x0939('0x179')});db[_0x0939('0xf8')]['hasMany'](db[_0x0939('0xfa')],{'as':_0x0939('0x164'),'onDelete':'cascade','foreignKey':_0x0939('0x1ee')});db[_0x0939('0xf8')][_0x0939('0x118')](db['WhatsappAccount'],{'as':_0x0939('0x16b'),'foreignKey':'WhatsappAccountId'});db['WhatsappInteraction'][_0x0939('0x118')](db['CmContact'],{'as':_0x0939('0x15b'),'foreignKey':_0x0939('0x15c')});db[_0x0939('0xf8')][_0x0939('0x118')](db['User'],{'as':_0x0939('0x16c'),'foreignKey':_0x0939('0x108')});db[_0x0939('0xf8')][_0x0939('0x11f')](db[_0x0939('0x16d')],{'through':_0x0939('0x1a9'),'as':_0x0939('0x16f')});db['WhatsappInteraction']['belongsToMany'](db[_0x0939('0x16d')],{'through':_0x0939('0x1a9'),'as':_0x0939('0x170')});db[_0x0939('0xf8')]['belongsToMany'](db[_0x0939('0x11')],{'as':'Users','through':_0x0939('0x128'),'foreignKey':_0x0939('0x1ee')});db['WhatsappMessage']['belongsTo'](db[_0x0939('0x11')],{'as':_0x0939('0x11')});db[_0x0939('0xfa')][_0x0939('0x118')](db['CmContact'],{'onDelete':_0x0939('0x107'),'as':'Contact'});db['WhatsappMessage'][_0x0939('0x118')](db['WhatsappInteraction'],{'onDelete':_0x0939('0x107'),'as':'Interaction','foreignKey':_0x0939('0x1ee')});db['WhatsappMessage'][_0x0939('0x118')](db[_0x0939('0x13e')],{'as':_0x0939('0x16b'),'foreignKey':_0x0939('0x1ec')});db['WhatsappQueueReport'][_0x0939('0x118')](db[_0x0939('0x13e')],{});db['WhatsappQueueReport'][_0x0939('0x118')](db[_0x0939('0x133')],{'as':_0x0939('0x166'),'foreignKey':_0x0939('0x167')});db['WhatsappQueueReport'][_0x0939('0x118')](db[_0x0939('0x11d')],{'as':_0x0939('0x15b'),'foreignKey':_0x0939('0x15c')});db[_0x0939('0xfc')][_0x0939('0x118')](db[_0x0939('0xf8')],{});db[_0x0939('0xfc')][_0x0939('0x118')](db[_0x0939('0x100')],{});db[_0x0939('0xfc')][_0x0939('0x118')](db[_0x0939('0xfa')],{});db['WhatsappQueueReport'][_0x0939('0x118')](db['User'],{});db[_0x0939('0xfe')][_0x0939('0x118')](db['WhatsappMessage'],{});db[_0x0939('0xfe')][_0x0939('0x118')](db['WhatsappInteraction'],{});db[_0x0939('0xfe')][_0x0939('0x118')](db[_0x0939('0x13e')],{'foreignKey':_0x0939('0x1ef'),'as':'FromAccount'});db[_0x0939('0xfe')]['belongsTo'](db[_0x0939('0x13e')],{'foreignKey':'ToWhatsappAccountId','as':_0x0939('0x1dd')});db['WhatsappTransferReport']['belongsTo'](db['WhatsappQueue'],{'foreignKey':_0x0939('0x1f0'),'as':'ToQueue'});db[_0x0939('0xfe')][_0x0939('0x118')](db['User'],{'foreignKey':_0x0939('0x1d5'),'as':'FromAgent'});db[_0x0939('0xfe')]['belongsTo'](db[_0x0939('0x11')],{'foreignKey':_0x0939('0x1db'),'as':'ToAgent'});db['WhatsappQueue'][_0x0939('0x11f')](db[_0x0939('0x11')],{'as':_0x0939('0x154'),'through':'UserWhatsappQueue','foreignKey':_0x0939('0x1f1')});db[_0x0939('0x100')][_0x0939('0x11f')](db['Team'],{'through':_0x0939('0x1f2'),'as':_0x0939('0x155')});module[_0x0939('0x1f3')]={'db':db,'dbH':dbH};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa348=['./api/analyticCustomReport','./api/analyticDefaultReport','/api/analytics/extracted_reports','./api/analyticExtractedReport','/api/analytics/metrics','./api/analyticMetric','/api/analytics/field_reports','./api/analyticTreeReport','/api/integrations/salesforce/accounts','/api/integrations/salesforce/fields','./api/intSalesforceField','./api/intSugarcrmAccount','/api/integrations/sugarcrm/configurations','/api/integrations/sugarcrm/fields','./api/intSugarcrmField','/api/integrations/desk/configurations','./api/intDeskConfiguration','/api/integrations/desk/fields','./api/intDeskField','./api/intZohoAccount','/api/integrations/zoho/configurations','./api/intZohoConfiguration','/api/integrations/zendesk/accounts','./api/intZendeskAccount','/api/integrations/zendesk/configurations','./api/intZendeskConfiguration','/api/integrations/zendesk/fields','./api/intZendeskField','./api/intFreshdeskAccount','/api/integrations/freshdesk/configurations','./api/intFreshdeskConfiguration','/api/integrations/freshdesk/fields','/api/integrations/vtiger/accounts','./api/intVtigerAccount','/api/integrations/vtiger/configurations','./api/intVtigerConfiguration','/api/integrations/vtiger/fields','./api/intVtigerField','/api/integrations/servicenow/accounts','./api/intServicenowAccount','/api/integrations/servicenow/configurations','./api/intServicenowConfiguration','/api/integrations/servicenow/fields','./api/intServicenowField','/api/integrations/dynamics365/accounts','./api/intDynamics365Account','/api/integrations/dynamics365/configurations','/api/integrations/dynamics365/fields','./api/intDynamics365Field','/api/integrations/freshsales/accounts','./api/intFreshsalesAccount','/api/integrations/freshsales/configurations','/api/integrations/freshsales/fields','./api/intFreshsalesField','/api/networks','./api/network','./api/chatQueueReport','/api/chat/internal/messages','./api/chatInternalMessage','/api/jscripty/answers/reports','./api/jscriptyAnswerReport','/api/jscripty/questions/reports','./api/jscriptyQuestionReport','/api/jscripty/sessions/reports','/api/sms/reports/queue','./api/smsQueueReport','/api/square/reports','./api/squareReport','/api/square/details/reports','./api/squareReportDetail','/api/jscripty/projects','/api/settings','./api/setting','/api/square/odbc','/api/square/projects','/api/square/recordings','./api/squareRecording','/api/square/messages','./api/squareMessage','/api/teams','./api/team','./api/license','/api/campaigns','/api/migrations','/api/attachments','./api/attachment','./api/plugin','./api/mailTransferReport','/api/fax/reports/transfer','./api/faxTransferReport','./api/openchannelTransferReport','/api/sms/reports/transfer','./api/smsTransferReport','/api/cm/lists','./api/cmList','/api/voice/prefixes','./api/voicePrefix','/api/userProfiles','/api/userProfile/sections','./api/userProfileSection','./api/userProfileResource','/api/userNotifications','/api/whatsapp/accounts','./api/whatsappApplication','/api/whatsapp/interactions','./api/whatsappInteraction','/api/whatsapp/messages','./api/whatsappMessage','/api/whatsapp/reports/queue','./api/whatsappQueueReport','./api/whatsappTransferReport','/api/whatsapp/queues','/api/cloudProviders','./api/cloudProvider','/api/realtime','./api/realtime','/api/auth/local','./api/authLocal','./api/authGoogle','/api/jira','./api/jira','/api/rpc','./api/rpc','./api/version','/api/system','./api/system','/api/pm2','./api/pm2','/api/webbar','/apidoc','static','join','/www','/demo','/snippet','root','snippet','/plugins','/server/files/plugins','route','/:url(api|auth|components|app|bower_components|assets)/*','sendFile','get','appPath','/index.html','username','password','newPassword','apiKey','firstName','street','phone','mobile','clientSecret','securityToken','tenantId','token','channelSecret','accessTokenSecret','authToken','consumerKey','consumerSecret','calleridnum','exten','clientEmail','privateKey','secretaccesskey','accountSid','localstationid','dsn','secret','registry','oldPassword','isArray','isPlainObject','isString','replace','includes','lodash','express','./config/environment','./config/logger','api','auth','./safe-template','safeTemplate','default','use','%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s','body','\x20body=%s','format','method','headers','x-forwarded-for','connection','statusCode','responseTime','user','name','role','inspect','logger','device','%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s\x20device=%s\x20(id=%s\x20name=%s)','remoteAddress','url','other','agent_id','agent_name','test','/api/users','/api/voice/chanspy','./api/voiceChanSpy','./api/voiceContext','/api/voice/extensions','./api/voiceExtension','/api/voice/mohs','./api/voiceMusicOnHold','/api/voice/queues','/api/voice/recordings','./api/voiceRecording','/api/voice/mails','./api/voiceMail','/api/voice/mails/messages','./api/voiceMailMessage','./api/voiceCallReport','./api/voiceDialReport','/api/voice/agents/reports','./api/voiceAgentReport','/api/members/reports','./api/memberReport','/api/trunks','./api/trunk','/api/mail/out_servers','./api/mailServerOut','/api/mail/accounts','./api/mailAccount','/api/mail/queues','./api/mailSubstatus','/api/mail/interactions','./api/mailInteraction','/api/mail/messages','./api/mailMessage','/api/mail/applications','./api/mailApplication','./api/mailQueueReport','/api/dashboards','./api/dashboard','./api/dashboardItem','/api/fax/accounts','/api/fax/applications','./api/faxApplication','/api/fax/interactions','./api/faxInteraction','/api/fax/messages','./api/faxMessage','/api/fax/reports/queue','./api/faxQueueReport','/api/sms/accounts','./api/smsAccount','/api/sms/applications','./api/smsMessage','/api/sms/queues','./api/smsQueue','/api/openchannel/accounts','./api/openchannelAccount','/api/openchannel/applications','./api/openchannelApplication','/api/openchannel/interactions','./api/openchannelInteraction','/api/openchannel/messages','/api/openchannel/queues','./api/openchannelQueue','/api/chat/websites','./api/chatWebsite','./api/openchannelQueueReport','/api/chat/applications','./api/chatApplication','./api/chatInteraction','/api/chat/messages','./api/chatMessage','/api/chat/queues','./api/chatQueue','./api/chatGroup','/api/chat/proactive_actions','/api/cm/companies','./api/cmCompany','/api/cm/contacts','/api/cm/hopper','/api/cm/hopper_black','./api/cmHopperBlack','/api/cm/hopper_final','./api/cmHopperFinal','/api/cm/hopper_history','./api/cmHopperHistory','/api/cm/custom_fields','./api/cmCustomField','/api/automations','./api/automation','/api/canned_answers','./api/cannedAnswer','/api/dispositions','./api/disposition','./api/condition','/api/intervals','/api/pauses','./api/pause','/api/cdr','./api/cdr','/api/schedules','./api/schedule','/api/sounds','./api/sound','/api/tags','./api/tag','/api/templates','./api/template','/api/triggers','./api/trigger','./api/variable','/api/integrations','/api/integrations/reports','./api/integrationReport','/api/analytics/custom_reports'];(function(_0xda8a79,_0x112acc){var _0x5de72b=function(_0x3d23b3){while(--_0x3d23b3){_0xda8a79['push'](_0xda8a79['shift']());}};_0x5de72b(++_0x112acc);}(_0xa348,0xb2));var _0x8a34=function(_0x4b694b,_0xdc93c1){_0x4b694b=_0x4b694b-0x0;var _0x1e77c2=_0xa348[_0x4b694b];return _0x1e77c2;};'use strict';var _=require(_0x8a34('0x0'));var path=require('path');var express=require(_0x8a34('0x1'));var ewinston=require('express-winston');var util=require('util');var errors=require('./errors');var config=require(_0x8a34('0x2'));var logger=require(_0x8a34('0x3'))(_0x8a34('0x4'));var authLogger=require(_0x8a34('0x3'))(_0x8a34('0x5'));var safeTemplate=require(_0x8a34('0x6'))[_0x8a34('0x7')];exports[_0x8a34('0x8')]=function(_0x26722e){_0x26722e[_0x8a34('0x9')](ewinston['logger']({'winstonInstance':logger,'meta':![],'statusLevels':!![],'msg':function(_0x43043e,_0x160b71){var _0x3863ce=_0x8a34('0xa');if(!_['isEmpty'](_0x43043e[_0x8a34('0xb')])){_0x3863ce+=_0x8a34('0xc');var _0x53d435=_0x43043e[_0x8a34('0xb')];maskSensitiveData(_0x53d435);}return safeTemplate(util[_0x8a34('0xd')](_0x3863ce,_0x43043e[_0x8a34('0xe')],_0x43043e[_0x8a34('0xf')][_0x8a34('0x10')]?_0x43043e[_0x8a34('0xf')][_0x8a34('0x10')]:_0x43043e[_0x8a34('0x11')]['remoteAddress']||_0x43043e['ip'],_0x43043e['url'],_0x160b71[_0x8a34('0x12')],_0x160b71[_0x8a34('0x13')],_0x43043e['user']?_0x43043e[_0x8a34('0x14')]['id']:null,_0x43043e[_0x8a34('0x14')]?_0x43043e[_0x8a34('0x14')][_0x8a34('0x15')]:null,_0x43043e[_0x8a34('0x14')]?_0x43043e[_0x8a34('0x14')][_0x8a34('0x16')]:null,_0x53d435?util[_0x8a34('0x17')](_0x53d435,![],null):''));}}));_0x26722e[_0x8a34('0x9')](ewinston[_0x8a34('0x18')]({'winstonInstance':authLogger,'meta':![],'statusLevels':!![],'msg':function(_0x5e9171,_0x3b5ba5){var _0x10cb3b='%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s\x20device=%s';if(_0x5e9171['body']&&_0x5e9171[_0x8a34('0xb')][_0x8a34('0x19')]&&_0x5e9171[_0x8a34('0xb')]['agent_id']){_0x10cb3b=_0x8a34('0x1a');}return util['format'](_0x10cb3b,_0x5e9171[_0x8a34('0xe')],_0x5e9171[_0x8a34('0xf')][_0x8a34('0x10')]?_0x5e9171[_0x8a34('0xf')]['x-forwarded-for']:_0x5e9171[_0x8a34('0x11')][_0x8a34('0x1b')]||_0x5e9171['ip'],_0x5e9171[_0x8a34('0x1c')],_0x3b5ba5[_0x8a34('0x12')],_0x3b5ba5['responseTime'],_0x5e9171[_0x8a34('0x14')]?_0x5e9171[_0x8a34('0x14')]['id']:null,_0x5e9171[_0x8a34('0x14')]?_0x5e9171[_0x8a34('0x14')][_0x8a34('0x15')]:null,_0x5e9171['user']?_0x5e9171[_0x8a34('0x14')][_0x8a34('0x16')]:null,_0x5e9171['body']&&_0x5e9171['body'][_0x8a34('0x19')]?_0x5e9171[_0x8a34('0xb')]['device']:_0x8a34('0x1d'),_0x5e9171[_0x8a34('0xb')]&&_0x5e9171[_0x8a34('0xb')][_0x8a34('0x1e')]?_0x5e9171[_0x8a34('0xb')]['agent_id']:'',_0x5e9171[_0x8a34('0xb')]&&_0x5e9171[_0x8a34('0xb')][_0x8a34('0x1f')]?_0x5e9171[_0x8a34('0xb')][_0x8a34('0x1f')]:'');},'ignoreRoute':function(_0x55b7b9){var _0x538ef2=/\/api\/users\/[0-9]+\/(login|logout)/gi;return!_0x538ef2[_0x8a34('0x20')](_0x55b7b9[_0x8a34('0x1c')]);}}));_0x26722e[_0x8a34('0x9')](_0x8a34('0x21'),require('./api/user'));_0x26722e[_0x8a34('0x9')](_0x8a34('0x22'),require(_0x8a34('0x23')));_0x26722e[_0x8a34('0x9')]('/api/voice/contexts',require(_0x8a34('0x24')));_0x26722e['use'](_0x8a34('0x25'),require(_0x8a34('0x26')));_0x26722e['use'](_0x8a34('0x27'),require(_0x8a34('0x28')));_0x26722e['use'](_0x8a34('0x29'),require('./api/voiceQueue'));_0x26722e[_0x8a34('0x9')](_0x8a34('0x2a'),require(_0x8a34('0x2b')));_0x26722e['use']('/api/screen/recordings',require('./api/screenRecording'));_0x26722e[_0x8a34('0x9')](_0x8a34('0x2c'),require(_0x8a34('0x2d')));_0x26722e['use'](_0x8a34('0x2e'),require(_0x8a34('0x2f')));_0x26722e[_0x8a34('0x9')]('/api/voice/calls/reports',require(_0x8a34('0x30')));_0x26722e[_0x8a34('0x9')]('/api/voice/dials/reports',require(_0x8a34('0x31')));_0x26722e[_0x8a34('0x9')](_0x8a34('0x32'),require(_0x8a34('0x33')));_0x26722e['use']('/api/voice/queues/reports',require('./api/voiceQueueReport'));_0x26722e[_0x8a34('0x9')](_0x8a34('0x34'),require(_0x8a34('0x35')));_0x26722e[_0x8a34('0x9')](_0x8a34('0x36'),require(_0x8a34('0x37')));_0x26722e[_0x8a34('0x9')]('/api/voice/transfers/reports',require('./api/voiceTransferReport'));_0x26722e[_0x8a34('0x9')](_0x8a34('0x38'),require(_0x8a34('0x39')));_0x26722e[_0x8a34('0x9')](_0x8a34('0x3a'),require(_0x8a34('0x3b')));_0x26722e[_0x8a34('0x9')](_0x8a34('0x3c'),require('./api/mailQueue'));_0x26722e[_0x8a34('0x9')]('/api/mail/substatuses',require(_0x8a34('0x3d')));_0x26722e[_0x8a34('0x9')](_0x8a34('0x3e'),require(_0x8a34('0x3f')));_0x26722e[_0x8a34('0x9')](_0x8a34('0x40'),require(_0x8a34('0x41')));_0x26722e[_0x8a34('0x9')](_0x8a34('0x42'),require(_0x8a34('0x43')));_0x26722e[_0x8a34('0x9')]('/api/mail/reports/queue',require(_0x8a34('0x44')));_0x26722e[_0x8a34('0x9')](_0x8a34('0x45'),require(_0x8a34('0x46')));_0x26722e[_0x8a34('0x9')]('/api/dashboards/items',require(_0x8a34('0x47')));_0x26722e[_0x8a34('0x9')](_0x8a34('0x48'),require('./api/faxAccount'));_0x26722e[_0x8a34('0x9')](_0x8a34('0x49'),require(_0x8a34('0x4a')));_0x26722e[_0x8a34('0x9')](_0x8a34('0x4b'),require(_0x8a34('0x4c')));_0x26722e[_0x8a34('0x9')](_0x8a34('0x4d'),require(_0x8a34('0x4e')));_0x26722e[_0x8a34('0x9')]('/api/fax/queues',require('./api/faxQueue'));_0x26722e[_0x8a34('0x9')](_0x8a34('0x4f'),require(_0x8a34('0x50')));_0x26722e[_0x8a34('0x9')](_0x8a34('0x51'),require(_0x8a34('0x52')));_0x26722e[_0x8a34('0x9')](_0x8a34('0x53'),require('./api/smsApplication'));_0x26722e[_0x8a34('0x9')]('/api/sms/interactions',require('./api/smsInteraction'));_0x26722e[_0x8a34('0x9')]('/api/sms/messages',require(_0x8a34('0x54')));_0x26722e[_0x8a34('0x9')](_0x8a34('0x55'),require(_0x8a34('0x56')));_0x26722e[_0x8a34('0x9')](_0x8a34('0x57'),require(_0x8a34('0x58')));_0x26722e[_0x8a34('0x9')](_0x8a34('0x59'),require(_0x8a34('0x5a')));_0x26722e['use'](_0x8a34('0x5b'),require(_0x8a34('0x5c')));_0x26722e[_0x8a34('0x9')](_0x8a34('0x5d'),require('./api/openchannelMessage'));_0x26722e['use'](_0x8a34('0x5e'),require(_0x8a34('0x5f')));_0x26722e[_0x8a34('0x9')](_0x8a34('0x60'),require(_0x8a34('0x61')));_0x26722e[_0x8a34('0x9')]('/api/openchannel/reports/queue',require(_0x8a34('0x62')));_0x26722e[_0x8a34('0x9')](_0x8a34('0x63'),require(_0x8a34('0x64')));_0x26722e[_0x8a34('0x9')]('/api/chat/interactions',require(_0x8a34('0x65')));_0x26722e['use'](_0x8a34('0x66'),require(_0x8a34('0x67')));_0x26722e[_0x8a34('0x9')]('/api/chat/offline_messages',require('./api/chatOfflineMessage'));_0x26722e[_0x8a34('0x9')](_0x8a34('0x68'),require(_0x8a34('0x69')));_0x26722e[_0x8a34('0x9')]('/api/chat/groups',require(_0x8a34('0x6a')));_0x26722e[_0x8a34('0x9')](_0x8a34('0x6b'),require('./api/chatProactiveAction'));_0x26722e['use'](_0x8a34('0x6c'),require(_0x8a34('0x6d')));_0x26722e[_0x8a34('0x9')](_0x8a34('0x6e'),require('./api/cmContact'));_0x26722e['use'](_0x8a34('0x6f'),require('./api/cmHopper'));_0x26722e[_0x8a34('0x9')](_0x8a34('0x70'),require(_0x8a34('0x71')));_0x26722e[_0x8a34('0x9')](_0x8a34('0x72'),require(_0x8a34('0x73')));_0x26722e[_0x8a34('0x9')](_0x8a34('0x74'),require(_0x8a34('0x75')));_0x26722e[_0x8a34('0x9')](_0x8a34('0x76'),require(_0x8a34('0x77')));_0x26722e[_0x8a34('0x9')]('/api/actions',require('./api/action'));_0x26722e[_0x8a34('0x9')](_0x8a34('0x78'),require(_0x8a34('0x79')));_0x26722e[_0x8a34('0x9')](_0x8a34('0x7a'),require(_0x8a34('0x7b')));_0x26722e['use'](_0x8a34('0x7c'),require(_0x8a34('0x7d')));_0x26722e[_0x8a34('0x9')]('/api/conditions',require(_0x8a34('0x7e')));_0x26722e[_0x8a34('0x9')](_0x8a34('0x7f'),require('./api/interval'));_0x26722e[_0x8a34('0x9')](_0x8a34('0x80'),require(_0x8a34('0x81')));_0x26722e[_0x8a34('0x9')](_0x8a34('0x82'),require(_0x8a34('0x83')));_0x26722e[_0x8a34('0x9')]('/api/voiceQueuesLog',require('./api/voiceQueuesLog'));_0x26722e[_0x8a34('0x9')](_0x8a34('0x84'),require(_0x8a34('0x85')));_0x26722e[_0x8a34('0x9')](_0x8a34('0x86'),require(_0x8a34('0x87')));_0x26722e[_0x8a34('0x9')](_0x8a34('0x88'),require(_0x8a34('0x89')));_0x26722e[_0x8a34('0x9')](_0x8a34('0x8a'),require(_0x8a34('0x8b')));_0x26722e[_0x8a34('0x9')](_0x8a34('0x8c'),require(_0x8a34('0x8d')));_0x26722e[_0x8a34('0x9')]('/api/variables',require(_0x8a34('0x8e')));_0x26722e[_0x8a34('0x9')](_0x8a34('0x8f'),require('./api/integration'));_0x26722e[_0x8a34('0x9')](_0x8a34('0x90'),require(_0x8a34('0x91')));_0x26722e[_0x8a34('0x9')](_0x8a34('0x92'),require(_0x8a34('0x93')));_0x26722e[_0x8a34('0x9')]('/api/analytics/default_reports',require(_0x8a34('0x94')));_0x26722e[_0x8a34('0x9')](_0x8a34('0x95'),require(_0x8a34('0x96')));_0x26722e[_0x8a34('0x9')](_0x8a34('0x97'),require(_0x8a34('0x98')));_0x26722e[_0x8a34('0x9')](_0x8a34('0x99'),require('./api/analyticFieldReport'));_0x26722e[_0x8a34('0x9')]('/api/analytics/tree_reports',require(_0x8a34('0x9a')));_0x26722e[_0x8a34('0x9')](_0x8a34('0x9b'),require('./api/intSalesforceAccount'));_0x26722e[_0x8a34('0x9')]('/api/integrations/salesforce/configurations',require('./api/intSalesforceConfiguration'));_0x26722e[_0x8a34('0x9')](_0x8a34('0x9c'),require(_0x8a34('0x9d')));_0x26722e['use']('/api/integrations/sugarcrm/accounts',require(_0x8a34('0x9e')));_0x26722e[_0x8a34('0x9')](_0x8a34('0x9f'),require('./api/intSugarcrmConfiguration'));_0x26722e[_0x8a34('0x9')](_0x8a34('0xa0'),require(_0x8a34('0xa1')));_0x26722e['use']('/api/integrations/desk/accounts',require('./api/intDeskAccount'));_0x26722e[_0x8a34('0x9')](_0x8a34('0xa2'),require(_0x8a34('0xa3')));_0x26722e[_0x8a34('0x9')](_0x8a34('0xa4'),require(_0x8a34('0xa5')));_0x26722e['use']('/api/integrations/zoho/accounts',require(_0x8a34('0xa6')));_0x26722e['use'](_0x8a34('0xa7'),require(_0x8a34('0xa8')));_0x26722e['use']('/api/integrations/zoho/fields',require('./api/intZohoField'));_0x26722e[_0x8a34('0x9')](_0x8a34('0xa9'),require(_0x8a34('0xaa')));_0x26722e[_0x8a34('0x9')](_0x8a34('0xab'),require(_0x8a34('0xac')));_0x26722e[_0x8a34('0x9')](_0x8a34('0xad'),require(_0x8a34('0xae')));_0x26722e[_0x8a34('0x9')]('/api/integrations/freshdesk/accounts',require(_0x8a34('0xaf')));_0x26722e[_0x8a34('0x9')](_0x8a34('0xb0'),require(_0x8a34('0xb1')));_0x26722e[_0x8a34('0x9')](_0x8a34('0xb2'),require('./api/intFreshdeskField'));_0x26722e[_0x8a34('0x9')](_0x8a34('0xb3'),require(_0x8a34('0xb4')));_0x26722e[_0x8a34('0x9')](_0x8a34('0xb5'),require(_0x8a34('0xb6')));_0x26722e['use'](_0x8a34('0xb7'),require(_0x8a34('0xb8')));_0x26722e[_0x8a34('0x9')](_0x8a34('0xb9'),require(_0x8a34('0xba')));_0x26722e['use'](_0x8a34('0xbb'),require(_0x8a34('0xbc')));_0x26722e[_0x8a34('0x9')](_0x8a34('0xbd'),require(_0x8a34('0xbe')));_0x26722e[_0x8a34('0x9')](_0x8a34('0xbf'),require(_0x8a34('0xc0')));_0x26722e[_0x8a34('0x9')](_0x8a34('0xc1'),require('./api/intDynamics365Configuration'));_0x26722e[_0x8a34('0x9')](_0x8a34('0xc2'),require(_0x8a34('0xc3')));_0x26722e[_0x8a34('0x9')](_0x8a34('0xc4'),require(_0x8a34('0xc5')));_0x26722e[_0x8a34('0x9')](_0x8a34('0xc6'),require('./api/intFreshsalesConfiguration'));_0x26722e['use'](_0x8a34('0xc7'),require(_0x8a34('0xc8')));_0x26722e[_0x8a34('0x9')](_0x8a34('0xc9'),require(_0x8a34('0xca')));_0x26722e['use']('/api/chat/reports/queue',require(_0x8a34('0xcb')));_0x26722e[_0x8a34('0x9')](_0x8a34('0xcc'),require(_0x8a34('0xcd')));_0x26722e['use'](_0x8a34('0xce'),require(_0x8a34('0xcf')));_0x26722e[_0x8a34('0x9')](_0x8a34('0xd0'),require(_0x8a34('0xd1')));_0x26722e[_0x8a34('0x9')](_0x8a34('0xd2'),require('./api/jscriptySessionReport'));_0x26722e[_0x8a34('0x9')](_0x8a34('0xd3'),require(_0x8a34('0xd4')));_0x26722e[_0x8a34('0x9')](_0x8a34('0xd5'),require(_0x8a34('0xd6')));_0x26722e[_0x8a34('0x9')](_0x8a34('0xd7'),require(_0x8a34('0xd8')));_0x26722e[_0x8a34('0x9')](_0x8a34('0xd9'),require('./api/jscriptyProject'));_0x26722e['use'](_0x8a34('0xda'),require(_0x8a34('0xdb')));_0x26722e[_0x8a34('0x9')](_0x8a34('0xdc'),require('./api/squareOdbc'));_0x26722e[_0x8a34('0x9')](_0x8a34('0xdd'),require('./api/squareProject'));_0x26722e[_0x8a34('0x9')](_0x8a34('0xde'),require(_0x8a34('0xdf')));_0x26722e['use'](_0x8a34('0xe0'),require(_0x8a34('0xe1')));_0x26722e[_0x8a34('0x9')](_0x8a34('0xe2'),require(_0x8a34('0xe3')));_0x26722e[_0x8a34('0x9')]('/api/license',require(_0x8a34('0xe4')));_0x26722e[_0x8a34('0x9')](_0x8a34('0xe5'),require('./api/campaign'));_0x26722e[_0x8a34('0x9')](_0x8a34('0xe6'),require('./api/migration'));_0x26722e[_0x8a34('0x9')](_0x8a34('0xe7'),require(_0x8a34('0xe8')));_0x26722e[_0x8a34('0x9')]('/api/plugins',require(_0x8a34('0xe9')));_0x26722e['use']('/api/mail/reports/transfer',require(_0x8a34('0xea')));_0x26722e[_0x8a34('0x9')]('/api/chat/reports/transfer',require('./api/chatTransferReport'));_0x26722e['use'](_0x8a34('0xeb'),require(_0x8a34('0xec')));_0x26722e[_0x8a34('0x9')]('/api/openchannel/reports/transfer',require(_0x8a34('0xed')));_0x26722e[_0x8a34('0x9')](_0x8a34('0xee'),require(_0x8a34('0xef')));_0x26722e[_0x8a34('0x9')](_0x8a34('0xf0'),require(_0x8a34('0xf1')));_0x26722e[_0x8a34('0x9')](_0x8a34('0xf2'),require(_0x8a34('0xf3')));_0x26722e['use'](_0x8a34('0xf4'),require('./api/userProfile'));_0x26722e['use'](_0x8a34('0xf5'),require(_0x8a34('0xf6')));_0x26722e[_0x8a34('0x9')]('/api/userProfile/resources',require(_0x8a34('0xf7')));_0x26722e[_0x8a34('0x9')](_0x8a34('0xf8'),require('./api/userNotification'));_0x26722e['use'](_0x8a34('0xf9'),require('./api/whatsappAccount'));_0x26722e[_0x8a34('0x9')]('/api/whatsapp/applications',require(_0x8a34('0xfa')));_0x26722e[_0x8a34('0x9')](_0x8a34('0xfb'),require(_0x8a34('0xfc')));_0x26722e[_0x8a34('0x9')](_0x8a34('0xfd'),require(_0x8a34('0xfe')));_0x26722e[_0x8a34('0x9')](_0x8a34('0xff'),require(_0x8a34('0x100')));_0x26722e[_0x8a34('0x9')]('/api/whatsapp/reports/transfer',require(_0x8a34('0x101')));_0x26722e[_0x8a34('0x9')](_0x8a34('0x102'),require('./api/whatsappQueue'));_0x26722e[_0x8a34('0x9')](_0x8a34('0x103'),require(_0x8a34('0x104')));_0x26722e[_0x8a34('0x9')](_0x8a34('0x105'),require(_0x8a34('0x106')));_0x26722e[_0x8a34('0x9')](_0x8a34('0x107'),require(_0x8a34('0x108')));_0x26722e[_0x8a34('0x9')]('/api/auth/google',require(_0x8a34('0x109')));_0x26722e[_0x8a34('0x9')](_0x8a34('0x10a'),require(_0x8a34('0x10b')));_0x26722e[_0x8a34('0x9')](_0x8a34('0x10c'),require(_0x8a34('0x10d')));_0x26722e[_0x8a34('0x9')]('/api/version',require(_0x8a34('0x10e')));_0x26722e[_0x8a34('0x9')](_0x8a34('0x10f'),require(_0x8a34('0x110')));_0x26722e['use'](_0x8a34('0x111'),require(_0x8a34('0x112')));_0x26722e[_0x8a34('0x9')](_0x8a34('0x113'),require('./api/webbar'));_0x26722e[_0x8a34('0x9')](_0x8a34('0x114'),express[_0x8a34('0x115')](path[_0x8a34('0x116')](config['root'],_0x8a34('0x114'))));_0x26722e['use'](_0x8a34('0x117'),express[_0x8a34('0x115')](path[_0x8a34('0x116')](config['root'],_0x8a34('0x117'))));_0x26722e[_0x8a34('0x9')](_0x8a34('0x118'),express[_0x8a34('0x115')](path[_0x8a34('0x116')](config['root'],_0x8a34('0x118'))));_0x26722e[_0x8a34('0x9')](_0x8a34('0x119'),express['static'](path[_0x8a34('0x116')](config[_0x8a34('0x11a')],_0x8a34('0x11b'),'3.0.0')));_0x26722e['use'](_0x8a34('0x11c'),express[_0x8a34('0x115')](path[_0x8a34('0x116')](config[_0x8a34('0x11a')],_0x8a34('0x11d'))));_0x26722e[_0x8a34('0x11e')](_0x8a34('0x11f'))['get'](errors[0x194]);_0x26722e[_0x8a34('0x11e')]('/*')['get'](function(_0x3cebf9,_0x513b45){_0x513b45[_0x8a34('0x120')](path['resolve'](_0x26722e[_0x8a34('0x121')](_0x8a34('0x122'))+_0x8a34('0x123')));});};var sensitiveFields=[_0x8a34('0x124'),_0x8a34('0x125'),_0x8a34('0x126'),_0x8a34('0x127'),_0x8a34('0x128'),'lastName',_0x8a34('0x129'),_0x8a34('0x12a'),_0x8a34('0x12b'),'fax','email','clientId',_0x8a34('0x12c'),_0x8a34('0x12d'),'code','accessKey',_0x8a34('0x12e'),_0x8a34('0x12f'),_0x8a34('0x130'),'accessToken',_0x8a34('0x131'),_0x8a34('0x132'),_0x8a34('0x133'),_0x8a34('0x134'),'membername','calleridname',_0x8a34('0x135'),_0x8a34('0x136'),'vidaooApiKey',_0x8a34('0x137'),_0x8a34('0x138'),'accesskeyid',_0x8a34('0x139'),'key','user','pass',_0x8a34('0x13a'),_0x8a34('0x13b'),_0x8a34('0x13c'),_0x8a34('0x13d'),_0x8a34('0x13e'),_0x8a34('0x13f')];function maskSensitiveData(_0x53ed96){var _0x3e4988=/(?!^)[\s\S](?!$)/g;if(!_['isPlainObject'](_0x53ed96))return;for(var _0x449d42 in _0x53ed96){if(_[_0x8a34('0x140')](_0x53ed96[_0x449d42])){for(var _0x49ed73=0x0;_0x49ed73<_0x53ed96[_0x449d42]['length'];_0x49ed73++){maskSensitiveData(_0x53ed96[_0x449d42][_0x49ed73]);}}else if(_[_0x8a34('0x141')](_0x53ed96[_0x449d42])){maskSensitiveData(_0x53ed96[_0x449d42]);}else if(_[_0x8a34('0x142')](_0x53ed96[_0x449d42])){_0x53ed96[_0x449d42]=_0x53ed96[_0x449d42][_0x8a34('0x143')](/{{{/g,'@@{')['replace'](/}}}/g,'}@@')[_0x8a34('0x143')](/{{/g,'@{')[_0x8a34('0x143')](/}}/g,'}@');if(_[_0x8a34('0x144')](sensitiveFields,_0x449d42)){_0x53ed96[_0x449d42]=_0x53ed96[_0x449d42]['replace'](_0x3e4988,'*');}}}}
\ No newline at end of file
+var _0xd4a8=['/api/voice/agents/reports','./api/voiceAgentReport','/api/voice/queues/reports','./api/voiceQueueReport','/api/trunks','./api/trunk','/api/voice/transfers/reports','./api/voiceTransferReport','/api/mail/out_servers','./api/mailServerOut','/api/mail/accounts','./api/mailAccount','/api/mail/queues','/api/mail/substatuses','./api/mailSubstatus','/api/mail/interactions','./api/mailInteraction','/api/mail/messages','./api/mailMessage','./api/mailApplication','/api/dashboards','/api/dashboards/items','./api/dashboardItem','/api/fax/accounts','./api/faxAccount','/api/fax/applications','./api/faxApplication','/api/fax/interactions','./api/faxInteraction','/api/fax/messages','./api/faxMessage','/api/fax/queues','./api/faxQueue','/api/fax/reports/queue','./api/faxQueueReport','/api/sms/accounts','./api/smsAccount','/api/sms/applications','./api/smsApplication','/api/sms/interactions','./api/smsInteraction','/api/sms/messages','./api/smsMessage','/api/sms/queues','/api/openchannel/accounts','./api/openchannelAccount','./api/openchannelApplication','/api/openchannel/interactions','./api/openchannelInteraction','./api/openchannelMessage','./api/openchannelQueue','/api/chat/websites','/api/openchannel/reports/queue','/api/chat/applications','./api/chatApplication','/api/chat/interactions','./api/chatInteraction','./api/chatMessage','/api/chat/offline_messages','./api/chatOfflineMessage','./api/chatQueue','./api/chatGroup','/api/chat/proactive_actions','./api/chatProactiveAction','./api/cmCompany','/api/cm/contacts','./api/cmContact','./api/cmHopper','./api/cmHopperBlack','/api/cm/hopper_final','./api/cmHopperFinal','/api/cm/hopper_history','./api/cmHopperHistory','/api/cm/custom_fields','./api/cmCustomField','/api/actions','./api/action','/api/automations','./api/automation','/api/canned_answers','./api/cannedAnswer','./api/disposition','/api/intervals','./api/pause','/api/voiceQueuesLog','./api/voiceQueuesLog','/api/schedules','./api/schedule','./api/sound','./api/tag','/api/templates','./api/template','/api/triggers','./api/trigger','/api/variables','./api/variable','/api/integrations','./api/integration','/api/integrations/reports','./api/integrationReport','/api/analytics/custom_reports','./api/analyticCustomReport','/api/analytics/default_reports','./api/analyticDefaultReport','./api/analyticExtractedReport','/api/analytics/metrics','./api/analyticMetric','/api/analytics/field_reports','./api/analyticFieldReport','/api/analytics/tree_reports','./api/intSalesforceAccount','/api/integrations/salesforce/configurations','./api/intSalesforceField','/api/integrations/sugarcrm/configurations','/api/integrations/desk/configurations','./api/intDeskConfiguration','/api/integrations/desk/fields','./api/intDeskField','/api/integrations/zoho/accounts','./api/intZohoAccount','/api/integrations/zoho/configurations','./api/intZendeskAccount','./api/intZendeskConfiguration','/api/integrations/zendesk/fields','./api/intZendeskField','./api/intFreshdeskAccount','/api/integrations/freshdesk/configurations','./api/intFreshdeskConfiguration','/api/integrations/freshdesk/fields','/api/integrations/vtiger/accounts','./api/intVtigerAccount','/api/integrations/vtiger/configurations','./api/intVtigerConfiguration','/api/integrations/vtiger/fields','./api/intVtigerField','/api/integrations/servicenow/accounts','./api/intServicenowAccount','/api/integrations/servicenow/configurations','./api/intServicenowConfiguration','/api/integrations/servicenow/fields','./api/intServicenowField','/api/integrations/dynamics365/accounts','/api/integrations/freshsales/accounts','/api/integrations/freshsales/configurations','./api/intFreshsalesConfiguration','/api/integrations/freshsales/fields','./api/intFreshsalesField','/api/networks','/api/chat/reports/queue','./api/chatInternalMessage','./api/jscriptyAnswerReport','/api/jscripty/questions/reports','./api/jscriptyQuestionReport','/api/jscripty/sessions/reports','./api/jscriptySessionReport','/api/sms/reports/queue','./api/smsQueueReport','/api/square/reports','./api/squareReport','/api/square/details/reports','./api/squareReportDetail','/api/jscripty/projects','./api/jscriptyProject','/api/settings','./api/squareOdbc','/api/square/projects','/api/square/recordings','/api/square/messages','./api/team','/api/license','./api/license','/api/campaigns','/api/migrations','/api/attachments','./api/attachment','/api/plugins','./api/plugin','/api/mail/reports/transfer','./api/mailTransferReport','/api/chat/reports/transfer','./api/chatTransferReport','./api/faxTransferReport','/api/openchannel/reports/transfer','./api/openchannelTransferReport','/api/sms/reports/transfer','./api/smsTransferReport','./api/cmList','./api/voicePrefix','/api/userProfiles','./api/userProfile','/api/userProfile/sections','./api/userProfileSection','/api/userProfile/resources','./api/userProfileResource','/api/userNotifications','./api/whatsappAccount','/api/whatsapp/applications','./api/whatsappApplication','/api/whatsapp/interactions','./api/whatsappInteraction','/api/whatsapp/messages','./api/whatsappMessage','/api/whatsapp/reports/queue','./api/whatsappQueueReport','/api/whatsapp/reports/transfer','./api/whatsappTransferReport','/api/whatsapp/queues','./api/whatsappQueue','/api/cloudProviders','./api/cloudProvider','/api/realtime','./api/authLocal','/api/auth/google','/api/jira','/api/rpc','./api/rpc','/api/version','./api/version','./api/system','/api/pm2','./api/pm2','/api/webbar','/apidoc','static','root','/www','/demo','join','/snippet','snippet','/plugins','/server/files/plugins','route','/:url(api|auth|components|app|bower_components|assets)/*','get','sendFile','resolve','appPath','/index.html','username','password','newPassword','apiKey','firstName','lastName','phone','mobile','fax','email','clientSecret','securityToken','code','accessKey','tenantId','channelSecret','accessToken','accessTokenSecret','authToken','consumerKey','consumerSecret','calleridname','calleridnum','exten','vidaooApiKey','privateKey','accesskeyid','secretaccesskey','key','pass','accountSid','dsn','secret','isPlainObject','isArray','length','isString','@@{','}@@','includes','express-winston','util','./errors','./config/logger','api','auth','\x20body=%s','body','format','method','headers','x-forwarded-for','connection','remoteAddress','statusCode','responseTime','user','inspect','use','logger','%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s\x20device=%s','device','agent_id','%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s\x20device=%s\x20(id=%s\x20name=%s)','role','agent_name','test','url','/api/users','/api/voice/chanspy','./api/voiceChanSpy','/api/voice/contexts','./api/voiceContext','./api/voiceExtension','/api/voice/mohs','./api/voiceMusicOnHold','./api/voiceQueue','/api/voice/recordings','./api/voiceRecording','/api/screen/recordings','./api/screenRecording','/api/voice/mails','./api/voiceMail','/api/voice/mails/messages','./api/voiceDialReport'];(function(_0x1f4f41,_0x4e0e7a){var _0x5e51c4=function(_0x5a8b27){while(--_0x5a8b27){_0x1f4f41['push'](_0x1f4f41['shift']());}};_0x5e51c4(++_0x4e0e7a);}(_0xd4a8,0x117));var _0x8d4a=function(_0x21d2cc,_0x81b56d){_0x21d2cc=_0x21d2cc-0x0;var _0x35176c=_0xd4a8[_0x21d2cc];return _0x35176c;};'use strict';var _=require('lodash');var path=require('path');var express=require('express');var ewinston=require(_0x8d4a('0x0'));var util=require(_0x8d4a('0x1'));var errors=require(_0x8d4a('0x2'));var config=require('./config/environment');var logger=require(_0x8d4a('0x3'))(_0x8d4a('0x4'));var authLogger=require(_0x8d4a('0x3'))(_0x8d4a('0x5'));exports['default']=function(_0x24d59c){_0x24d59c['use'](ewinston['logger']({'winstonInstance':logger,'meta':![],'statusLevels':!![],'msg':function(_0x42a054,_0x388743){var _0x516c14='%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s';if(!_['isEmpty'](_0x42a054['body'])){_0x516c14+=_0x8d4a('0x6');var _0x271afa=_0x42a054[_0x8d4a('0x7')];maskSensitiveData(_0x271afa);}return util[_0x8d4a('0x8')](_0x516c14,_0x42a054[_0x8d4a('0x9')],_0x42a054[_0x8d4a('0xa')][_0x8d4a('0xb')]?_0x42a054[_0x8d4a('0xa')]['x-forwarded-for']:_0x42a054[_0x8d4a('0xc')][_0x8d4a('0xd')]||_0x42a054['ip'],_0x42a054['url'],_0x388743[_0x8d4a('0xe')],_0x388743[_0x8d4a('0xf')],_0x42a054[_0x8d4a('0x10')]?_0x42a054[_0x8d4a('0x10')]['id']:null,_0x42a054['user']?_0x42a054[_0x8d4a('0x10')]['name']:null,_0x42a054[_0x8d4a('0x10')]?_0x42a054[_0x8d4a('0x10')]['role']:null,_0x271afa?util[_0x8d4a('0x11')](_0x271afa,![],null):'');}}));_0x24d59c[_0x8d4a('0x12')](ewinston[_0x8d4a('0x13')]({'winstonInstance':authLogger,'meta':![],'statusLevels':!![],'msg':function(_0xab093e,_0x309f3c){var _0x28fd3e=_0x8d4a('0x14');if(_0xab093e[_0x8d4a('0x7')]&&_0xab093e['body'][_0x8d4a('0x15')]&&_0xab093e[_0x8d4a('0x7')][_0x8d4a('0x16')]){_0x28fd3e=_0x8d4a('0x17');}return util[_0x8d4a('0x8')](_0x28fd3e,_0xab093e[_0x8d4a('0x9')],_0xab093e[_0x8d4a('0xa')][_0x8d4a('0xb')]?_0xab093e[_0x8d4a('0xa')][_0x8d4a('0xb')]:_0xab093e[_0x8d4a('0xc')][_0x8d4a('0xd')]||_0xab093e['ip'],_0xab093e['url'],_0x309f3c['statusCode'],_0x309f3c[_0x8d4a('0xf')],_0xab093e[_0x8d4a('0x10')]?_0xab093e[_0x8d4a('0x10')]['id']:null,_0xab093e[_0x8d4a('0x10')]?_0xab093e[_0x8d4a('0x10')]['name']:null,_0xab093e['user']?_0xab093e['user'][_0x8d4a('0x18')]:null,_0xab093e[_0x8d4a('0x7')]&&_0xab093e[_0x8d4a('0x7')][_0x8d4a('0x15')]?_0xab093e[_0x8d4a('0x7')]['device']:'other',_0xab093e[_0x8d4a('0x7')]&&_0xab093e['body'][_0x8d4a('0x16')]?_0xab093e[_0x8d4a('0x7')][_0x8d4a('0x16')]:'',_0xab093e[_0x8d4a('0x7')]&&_0xab093e['body'][_0x8d4a('0x19')]?_0xab093e[_0x8d4a('0x7')]['agent_name']:'');},'ignoreRoute':function(_0x3ac389){var _0xc6c2ee=/\/api\/users\/[0-9]+\/(login|logout)/gi;return!_0xc6c2ee[_0x8d4a('0x1a')](_0x3ac389[_0x8d4a('0x1b')]);}}));_0x24d59c['use'](_0x8d4a('0x1c'),require('./api/user'));_0x24d59c['use'](_0x8d4a('0x1d'),require(_0x8d4a('0x1e')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x1f'),require(_0x8d4a('0x20')));_0x24d59c[_0x8d4a('0x12')]('/api/voice/extensions',require(_0x8d4a('0x21')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x22'),require(_0x8d4a('0x23')));_0x24d59c['use']('/api/voice/queues',require(_0x8d4a('0x24')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x25'),require(_0x8d4a('0x26')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x27'),require(_0x8d4a('0x28')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x29'),require(_0x8d4a('0x2a')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x2b'),require('./api/voiceMailMessage'));_0x24d59c[_0x8d4a('0x12')]('/api/voice/calls/reports',require('./api/voiceCallReport'));_0x24d59c[_0x8d4a('0x12')]('/api/voice/dials/reports',require(_0x8d4a('0x2c')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x2d'),require(_0x8d4a('0x2e')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x2f'),require(_0x8d4a('0x30')));_0x24d59c[_0x8d4a('0x12')]('/api/members/reports',require('./api/memberReport'));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x31'),require(_0x8d4a('0x32')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x33'),require(_0x8d4a('0x34')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x35'),require(_0x8d4a('0x36')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x37'),require(_0x8d4a('0x38')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x39'),require('./api/mailQueue'));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x3a'),require(_0x8d4a('0x3b')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x3c'),require(_0x8d4a('0x3d')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x3e'),require(_0x8d4a('0x3f')));_0x24d59c[_0x8d4a('0x12')]('/api/mail/applications',require(_0x8d4a('0x40')));_0x24d59c['use']('/api/mail/reports/queue',require('./api/mailQueueReport'));_0x24d59c['use'](_0x8d4a('0x41'),require('./api/dashboard'));_0x24d59c['use'](_0x8d4a('0x42'),require(_0x8d4a('0x43')));_0x24d59c['use'](_0x8d4a('0x44'),require(_0x8d4a('0x45')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x46'),require(_0x8d4a('0x47')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x48'),require(_0x8d4a('0x49')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x4a'),require(_0x8d4a('0x4b')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x4c'),require(_0x8d4a('0x4d')));_0x24d59c['use'](_0x8d4a('0x4e'),require(_0x8d4a('0x4f')));_0x24d59c['use'](_0x8d4a('0x50'),require(_0x8d4a('0x51')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x52'),require(_0x8d4a('0x53')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x54'),require(_0x8d4a('0x55')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x56'),require(_0x8d4a('0x57')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x58'),require('./api/smsQueue'));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x59'),require(_0x8d4a('0x5a')));_0x24d59c[_0x8d4a('0x12')]('/api/openchannel/applications',require(_0x8d4a('0x5b')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x5c'),require(_0x8d4a('0x5d')));_0x24d59c[_0x8d4a('0x12')]('/api/openchannel/messages',require(_0x8d4a('0x5e')));_0x24d59c[_0x8d4a('0x12')]('/api/openchannel/queues',require(_0x8d4a('0x5f')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x60'),require('./api/chatWebsite'));_0x24d59c['use'](_0x8d4a('0x61'),require('./api/openchannelQueueReport'));_0x24d59c['use'](_0x8d4a('0x62'),require(_0x8d4a('0x63')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x64'),require(_0x8d4a('0x65')));_0x24d59c[_0x8d4a('0x12')]('/api/chat/messages',require(_0x8d4a('0x66')));_0x24d59c['use'](_0x8d4a('0x67'),require(_0x8d4a('0x68')));_0x24d59c[_0x8d4a('0x12')]('/api/chat/queues',require(_0x8d4a('0x69')));_0x24d59c[_0x8d4a('0x12')]('/api/chat/groups',require(_0x8d4a('0x6a')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x6b'),require(_0x8d4a('0x6c')));_0x24d59c[_0x8d4a('0x12')]('/api/cm/companies',require(_0x8d4a('0x6d')));_0x24d59c['use'](_0x8d4a('0x6e'),require(_0x8d4a('0x6f')));_0x24d59c[_0x8d4a('0x12')]('/api/cm/hopper',require(_0x8d4a('0x70')));_0x24d59c[_0x8d4a('0x12')]('/api/cm/hopper_black',require(_0x8d4a('0x71')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x72'),require(_0x8d4a('0x73')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x74'),require(_0x8d4a('0x75')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x76'),require(_0x8d4a('0x77')));_0x24d59c['use'](_0x8d4a('0x78'),require(_0x8d4a('0x79')));_0x24d59c['use'](_0x8d4a('0x7a'),require(_0x8d4a('0x7b')));_0x24d59c['use'](_0x8d4a('0x7c'),require(_0x8d4a('0x7d')));_0x24d59c[_0x8d4a('0x12')]('/api/dispositions',require(_0x8d4a('0x7e')));_0x24d59c[_0x8d4a('0x12')]('/api/conditions',require('./api/condition'));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x7f'),require('./api/interval'));_0x24d59c['use']('/api/pauses',require(_0x8d4a('0x80')));_0x24d59c[_0x8d4a('0x12')]('/api/cdr',require('./api/cdr'));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x81'),require(_0x8d4a('0x82')));_0x24d59c['use'](_0x8d4a('0x83'),require(_0x8d4a('0x84')));_0x24d59c[_0x8d4a('0x12')]('/api/sounds',require(_0x8d4a('0x85')));_0x24d59c[_0x8d4a('0x12')]('/api/tags',require(_0x8d4a('0x86')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x87'),require(_0x8d4a('0x88')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x89'),require(_0x8d4a('0x8a')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x8b'),require(_0x8d4a('0x8c')));_0x24d59c['use'](_0x8d4a('0x8d'),require(_0x8d4a('0x8e')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x8f'),require(_0x8d4a('0x90')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x91'),require(_0x8d4a('0x92')));_0x24d59c['use'](_0x8d4a('0x93'),require(_0x8d4a('0x94')));_0x24d59c[_0x8d4a('0x12')]('/api/analytics/extracted_reports',require(_0x8d4a('0x95')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x96'),require(_0x8d4a('0x97')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x98'),require(_0x8d4a('0x99')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x9a'),require('./api/analyticTreeReport'));_0x24d59c[_0x8d4a('0x12')]('/api/integrations/salesforce/accounts',require(_0x8d4a('0x9b')));_0x24d59c['use'](_0x8d4a('0x9c'),require('./api/intSalesforceConfiguration'));_0x24d59c[_0x8d4a('0x12')]('/api/integrations/salesforce/fields',require(_0x8d4a('0x9d')));_0x24d59c['use']('/api/integrations/sugarcrm/accounts',require('./api/intSugarcrmAccount'));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x9e'),require('./api/intSugarcrmConfiguration'));_0x24d59c['use']('/api/integrations/sugarcrm/fields',require('./api/intSugarcrmField'));_0x24d59c['use']('/api/integrations/desk/accounts',require('./api/intDeskAccount'));_0x24d59c['use'](_0x8d4a('0x9f'),require(_0x8d4a('0xa0')));_0x24d59c['use'](_0x8d4a('0xa1'),require(_0x8d4a('0xa2')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xa3'),require(_0x8d4a('0xa4')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xa5'),require('./api/intZohoConfiguration'));_0x24d59c[_0x8d4a('0x12')]('/api/integrations/zoho/fields',require('./api/intZohoField'));_0x24d59c[_0x8d4a('0x12')]('/api/integrations/zendesk/accounts',require(_0x8d4a('0xa6')));_0x24d59c['use']('/api/integrations/zendesk/configurations',require(_0x8d4a('0xa7')));_0x24d59c['use'](_0x8d4a('0xa8'),require(_0x8d4a('0xa9')));_0x24d59c[_0x8d4a('0x12')]('/api/integrations/freshdesk/accounts',require(_0x8d4a('0xaa')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xab'),require(_0x8d4a('0xac')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xad'),require('./api/intFreshdeskField'));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xae'),require(_0x8d4a('0xaf')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xb0'),require(_0x8d4a('0xb1')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xb2'),require(_0x8d4a('0xb3')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xb4'),require(_0x8d4a('0xb5')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xb6'),require(_0x8d4a('0xb7')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xb8'),require(_0x8d4a('0xb9')));_0x24d59c['use'](_0x8d4a('0xba'),require('./api/intDynamics365Account'));_0x24d59c[_0x8d4a('0x12')]('/api/integrations/dynamics365/configurations',require('./api/intDynamics365Configuration'));_0x24d59c['use']('/api/integrations/dynamics365/fields',require('./api/intDynamics365Field'));_0x24d59c['use'](_0x8d4a('0xbb'),require('./api/intFreshsalesAccount'));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xbc'),require(_0x8d4a('0xbd')));_0x24d59c['use'](_0x8d4a('0xbe'),require(_0x8d4a('0xbf')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xc0'),require('./api/network'));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xc1'),require('./api/chatQueueReport'));_0x24d59c[_0x8d4a('0x12')]('/api/chat/internal/messages',require(_0x8d4a('0xc2')));_0x24d59c[_0x8d4a('0x12')]('/api/jscripty/answers/reports',require(_0x8d4a('0xc3')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xc4'),require(_0x8d4a('0xc5')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xc6'),require(_0x8d4a('0xc7')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xc8'),require(_0x8d4a('0xc9')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xca'),require(_0x8d4a('0xcb')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xcc'),require(_0x8d4a('0xcd')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xce'),require(_0x8d4a('0xcf')));_0x24d59c['use'](_0x8d4a('0xd0'),require('./api/setting'));_0x24d59c['use']('/api/square/odbc',require(_0x8d4a('0xd1')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xd2'),require('./api/squareProject'));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xd3'),require('./api/squareRecording'));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xd4'),require('./api/squareMessage'));_0x24d59c[_0x8d4a('0x12')]('/api/teams',require(_0x8d4a('0xd5')));_0x24d59c['use'](_0x8d4a('0xd6'),require(_0x8d4a('0xd7')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xd8'),require('./api/campaign'));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xd9'),require('./api/migration'));_0x24d59c['use'](_0x8d4a('0xda'),require(_0x8d4a('0xdb')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xdc'),require(_0x8d4a('0xdd')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xde'),require(_0x8d4a('0xdf')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xe0'),require(_0x8d4a('0xe1')));_0x24d59c[_0x8d4a('0x12')]('/api/fax/reports/transfer',require(_0x8d4a('0xe2')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xe3'),require(_0x8d4a('0xe4')));_0x24d59c['use'](_0x8d4a('0xe5'),require(_0x8d4a('0xe6')));_0x24d59c['use']('/api/cm/lists',require(_0x8d4a('0xe7')));_0x24d59c[_0x8d4a('0x12')]('/api/voice/prefixes',require(_0x8d4a('0xe8')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xe9'),require(_0x8d4a('0xea')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xeb'),require(_0x8d4a('0xec')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xed'),require(_0x8d4a('0xee')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xef'),require('./api/userNotification'));_0x24d59c[_0x8d4a('0x12')]('/api/whatsapp/accounts',require(_0x8d4a('0xf0')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xf1'),require(_0x8d4a('0xf2')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xf3'),require(_0x8d4a('0xf4')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xf5'),require(_0x8d4a('0xf6')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xf7'),require(_0x8d4a('0xf8')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xf9'),require(_0x8d4a('0xfa')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xfb'),require(_0x8d4a('0xfc')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xfd'),require(_0x8d4a('0xfe')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0xff'),require('./api/realtime'));_0x24d59c[_0x8d4a('0x12')]('/api/auth/local',require(_0x8d4a('0x100')));_0x24d59c['use'](_0x8d4a('0x101'),require('./api/authGoogle'));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x102'),require('./api/jira'));_0x24d59c['use'](_0x8d4a('0x103'),require(_0x8d4a('0x104')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x105'),require(_0x8d4a('0x106')));_0x24d59c[_0x8d4a('0x12')]('/api/system',require(_0x8d4a('0x107')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x108'),require(_0x8d4a('0x109')));_0x24d59c['use'](_0x8d4a('0x10a'),require('./api/webbar'));_0x24d59c['use'](_0x8d4a('0x10b'),express[_0x8d4a('0x10c')](path['join'](config[_0x8d4a('0x10d')],_0x8d4a('0x10b'))));_0x24d59c['use'](_0x8d4a('0x10e'),express['static'](path['join'](config[_0x8d4a('0x10d')],_0x8d4a('0x10e'))));_0x24d59c['use'](_0x8d4a('0x10f'),express[_0x8d4a('0x10c')](path[_0x8d4a('0x110')](config['root'],_0x8d4a('0x10f'))));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x111'),express['static'](path[_0x8d4a('0x110')](config[_0x8d4a('0x10d')],_0x8d4a('0x112'),'3.0.0')));_0x24d59c[_0x8d4a('0x12')](_0x8d4a('0x113'),express[_0x8d4a('0x10c')](path[_0x8d4a('0x110')](config[_0x8d4a('0x10d')],_0x8d4a('0x114'))));_0x24d59c[_0x8d4a('0x115')](_0x8d4a('0x116'))[_0x8d4a('0x117')](errors[0x194]);_0x24d59c['route']('/*')[_0x8d4a('0x117')](function(_0x45fed3,_0xb7257d){_0xb7257d[_0x8d4a('0x118')](path[_0x8d4a('0x119')](_0x24d59c[_0x8d4a('0x117')](_0x8d4a('0x11a'))+_0x8d4a('0x11b')));});};var sensitiveFields=[_0x8d4a('0x11c'),_0x8d4a('0x11d'),_0x8d4a('0x11e'),_0x8d4a('0x11f'),_0x8d4a('0x120'),_0x8d4a('0x121'),'street',_0x8d4a('0x122'),_0x8d4a('0x123'),_0x8d4a('0x124'),_0x8d4a('0x125'),'clientId',_0x8d4a('0x126'),_0x8d4a('0x127'),_0x8d4a('0x128'),_0x8d4a('0x129'),_0x8d4a('0x12a'),'token',_0x8d4a('0x12b'),_0x8d4a('0x12c'),_0x8d4a('0x12d'),_0x8d4a('0x12e'),_0x8d4a('0x12f'),_0x8d4a('0x130'),'membername',_0x8d4a('0x131'),_0x8d4a('0x132'),_0x8d4a('0x133'),_0x8d4a('0x134'),'clientEmail',_0x8d4a('0x135'),_0x8d4a('0x136'),_0x8d4a('0x137'),_0x8d4a('0x138'),_0x8d4a('0x10'),_0x8d4a('0x139'),_0x8d4a('0x13a'),'localstationid',_0x8d4a('0x13b'),_0x8d4a('0x13c'),'registry','oldPassword'];function maskSensitiveData(_0x32b985){var _0x12be58=/(?!^)[\s\S](?!$)/g;if(!_[_0x8d4a('0x13d')](_0x32b985))return;for(var _0x30a9e2 in _0x32b985){if(_[_0x8d4a('0x13e')](_0x32b985[_0x30a9e2])){for(var _0x3f0550=0x0;_0x3f0550<_0x32b985[_0x30a9e2][_0x8d4a('0x13f')];_0x3f0550++){maskSensitiveData(_0x32b985[_0x30a9e2][_0x3f0550]);}}else if(_[_0x8d4a('0x13d')](_0x32b985[_0x30a9e2])){maskSensitiveData(_0x32b985[_0x30a9e2]);}else if(_[_0x8d4a('0x140')](_0x32b985[_0x30a9e2])){_0x32b985[_0x30a9e2]=_0x32b985[_0x30a9e2]['replace'](/{{{/g,_0x8d4a('0x141'))['replace'](/}}}/g,_0x8d4a('0x142'))['replace'](/{{/g,'@{')['replace'](/}}/g,'}@');if(_[_0x8d4a('0x143')](sensitiveFields,_0x30a9e2)){_0x32b985[_0x30a9e2]=_0x32b985[_0x30a9e2]['replace'](_0x12be58,'*');}}}}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbc45=['../api/intZohoAccount/intZohoAccount.rpc','../api/intZendeskAccount/intZendeskAccount.rpc','../api/intFreshdeskAccount/intFreshdeskAccount.rpc','../api/intFreshsalesAccount/intFreshsalesAccount.rpc','../api/smsQueueReport/smsQueueReport.rpc','../api/squareReport/squareReport.rpc','../api/squareReportDetail/squareReportDetail.rpc','../api/squareOdbc/squareOdbc.rpc','../api/squareProject/squareProject.rpc','../api/squareMessage/squareMessage.rpc','../api/plugin/plugin.rpc','../api/whatsappMessage/whatsappMessage.rpc','../api/whatsappQueueReport/whatsappQueueReport.rpc','../api/whatsappQueue/whatsappQueue.rpc','server','http','port','rpc','localhost','error','../config/triggers','default','bluebird','lodash','../config/environment','listen','merge','../api/user/user.rpc','../api/voiceExtension/voiceExtension.rpc','../api/voiceQueue/voiceQueue.rpc','../api/voiceRecording/voiceRecording.rpc','../api/voiceCallReport/voiceCallReport.rpc','../api/voiceDialReport/voiceDialReport.rpc','../api/voiceAgentReport/voiceAgentReport.rpc','../api/voiceTransferReport/voiceTransferReport.rpc','../api/userVoiceQueueRt/userVoiceQueueRt.rpc','../api/mailServerIn/mailServerIn.rpc','../api/mailAccount/mailAccount.rpc','../api/mailQueue/mailQueue.rpc','../api/mailMessage/mailMessage.rpc','../api/mailQueueReport/mailQueueReport.rpc','../api/faxAccount/faxAccount.rpc','../api/faxQueue/faxQueue.rpc','../api/smsAccount/smsAccount.rpc','../api/smsInteraction/smsInteraction.rpc','../api/smsMessage/smsMessage.rpc','../api/openchannelApplication/openchannelApplication.rpc','../api/openchannelMessage/openchannelMessage.rpc','../api/openchannelQueue/openchannelQueue.rpc','../api/openchannelQueueReport/openchannelQueueReport.rpc','../api/cmHopperBlack/cmHopperBlack.rpc','../api/cmHopperFinal/cmHopperFinal.rpc','../api/cmHopperHistory/cmHopperHistory.rpc','../api/interval/interval.rpc','../api/sound/sound.rpc','../api/template/template.rpc','../api/variable/variable.rpc','../api/intSalesforceAccount/intSalesforceAccount.rpc'];(function(_0x1631b4,_0x58167b){var _0x5e8e10=function(_0x50467a){while(--_0x50467a){_0x1631b4['push'](_0x1631b4['shift']());}};_0x5e8e10(++_0x58167b);}(_0xbc45,0x172));var _0x5bc4=function(_0x3e526a,_0x482999){_0x3e526a=_0x3e526a-0x0;var _0x934cc0=_0xbc45[_0x3e526a];return _0x934cc0;};'use strict';var jayson=require('jayson/promise');var BPromise=require(_0x5bc4('0x0'));var _=require(_0x5bc4('0x1'));var config=require(_0x5bc4('0x2'));exports[_0x5bc4('0x3')]=function(){return new BPromise(function(_0x36fc89,_0x368b02){var _0x120faa={};_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require(_0x5bc4('0x5')));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require(_0x5bc4('0x6')));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require(_0x5bc4('0x7')));_0x120faa=_['merge'](_0x120faa,require(_0x5bc4('0x8')));_0x120faa=_['merge'](_0x120faa,require(_0x5bc4('0x9')));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require(_0x5bc4('0xa')));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require(_0x5bc4('0xb')));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require('../api/voiceQueueReport/voiceQueueReport.rpc'));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require('../api/memberReport/memberReport.rpc'));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require('../api/trunk/trunk.rpc'));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require(_0x5bc4('0xc')));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require(_0x5bc4('0xd')));_0x120faa=_['merge'](_0x120faa,require(_0x5bc4('0xe')));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require(_0x5bc4('0xf')));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require(_0x5bc4('0x10')));_0x120faa=_['merge'](_0x120faa,require('../api/mailInteraction/mailInteraction.rpc'));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require(_0x5bc4('0x11')));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require('../api/mailApplication/mailApplication.rpc'));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require(_0x5bc4('0x12')));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require(_0x5bc4('0x13')));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require('../api/faxApplication/faxApplication.rpc'));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require('../api/faxInteraction/faxInteraction.rpc'));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require('../api/faxMessage/faxMessage.rpc'));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require(_0x5bc4('0x14')));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require('../api/faxQueueReport/faxQueueReport.rpc'));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require(_0x5bc4('0x15')));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require(_0x5bc4('0x16')));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require(_0x5bc4('0x17')));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require('../api/smsQueue/smsQueue.rpc'));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require(_0x5bc4('0x18')));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require('../api/openchannelInteraction/openchannelInteraction.rpc'));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require(_0x5bc4('0x19')));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require(_0x5bc4('0x1a')));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require(_0x5bc4('0x1b')));_0x120faa=_['merge'](_0x120faa,require('../api/chatInteraction/chatInteraction.rpc'));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require('../api/chatMessage/chatMessage.rpc'));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require('../api/chatQueue/chatQueue.rpc'));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require('../api/cmContact/cmContact.rpc'));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require('../api/cmHopper/cmHopper.rpc'));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require(_0x5bc4('0x1c')));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require(_0x5bc4('0x1d')));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require(_0x5bc4('0x1e')));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require('../api/reportAgentPreview/reportAgentPreview.rpc'));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require(_0x5bc4('0x1f')));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require('../api/pause/pause.rpc'));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require(_0x5bc4('0x20')));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require(_0x5bc4('0x21')));_0x120faa=_['merge'](_0x120faa,require('../api/trigger/trigger.rpc'));_0x120faa=_['merge'](_0x120faa,require(_0x5bc4('0x22')));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require(_0x5bc4('0x23')));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require('../api/intSugarcrmAccount/intSugarcrmAccount.rpc'));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require('../api/intDeskAccount/intDeskAccount.rpc'));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require(_0x5bc4('0x24')));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require(_0x5bc4('0x25')));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require(_0x5bc4('0x26')));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require('../api/intVtigerAccount/intVtigerAccount.rpc'));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require('../api/intServicenowAccount/intServicenowAccount.rpc'));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require('../api/intDynamics365Account/intDynamics365Account.rpc'));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require(_0x5bc4('0x27')));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require('../api/chatQueueReport/chatQueueReport.rpc'));_0x120faa=_['merge'](_0x120faa,require(_0x5bc4('0x28')));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require(_0x5bc4('0x29')));_0x120faa=_['merge'](_0x120faa,require(_0x5bc4('0x2a')));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require('../api/setting/setting.rpc'));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require(_0x5bc4('0x2b')));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require(_0x5bc4('0x2c')));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require('../api/squareRecording/squareRecording.rpc'));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require(_0x5bc4('0x2d')));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require('../api/campaign/campaign.rpc'));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require('../api/attachment/attachment.rpc'));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require(_0x5bc4('0x2e')));_0x120faa=_['merge'](_0x120faa,require('../api/whatsappAccount/whatsappAccount.rpc'));_0x120faa=_['merge'](_0x120faa,require('../api/whatsappInteraction/whatsappInteraction.rpc'));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require(_0x5bc4('0x2f')));_0x120faa=_[_0x5bc4('0x4')](_0x120faa,require(_0x5bc4('0x30')));_0x120faa=_['merge'](_0x120faa,require(_0x5bc4('0x31')));var _0x343e8f=jayson[_0x5bc4('0x32')](_0x120faa)[_0x5bc4('0x33')]();var _0x2d1e3b=config['rpc'][_0x5bc4('0x34')]||config[_0x5bc4('0x34')]+0x1;var _0x37854a=config[_0x5bc4('0x35')]['ip']||_0x5bc4('0x36');_0x343e8f['on'](_0x5bc4('0x37'),function(_0x45b2da){return _0x368b02(_0x45b2da);});_0x343e8f[_0x5bc4('0x3')](_0x2d1e3b,_0x37854a,function(){console['log']('Express\x20RPC\x20server\x20listening\x20on\x20%s:%d!',_0x37854a,_0x2d1e3b);require(_0x5bc4('0x38'))[_0x5bc4('0x39')]();return _0x36fc89('RPC\x20listening\x20on\x20'+_0x37854a+':'+_0x2d1e3b);});});};
\ No newline at end of file
+var _0x8403=['merge','../api/voiceExtension/voiceExtension.rpc','../api/voiceQueue/voiceQueue.rpc','../api/voiceRecording/voiceRecording.rpc','../api/voiceDialReport/voiceDialReport.rpc','../api/voiceQueueReport/voiceQueueReport.rpc','../api/memberReport/memberReport.rpc','../api/trunk/trunk.rpc','../api/voiceTransferReport/voiceTransferReport.rpc','../api/userVoiceQueueRt/userVoiceQueueRt.rpc','../api/mailAccount/mailAccount.rpc','../api/mailInteraction/mailInteraction.rpc','../api/mailMessage/mailMessage.rpc','../api/mailApplication/mailApplication.rpc','../api/mailQueueReport/mailQueueReport.rpc','../api/faxAccount/faxAccount.rpc','../api/faxApplication/faxApplication.rpc','../api/faxInteraction/faxInteraction.rpc','../api/faxQueueReport/faxQueueReport.rpc','../api/smsInteraction/smsInteraction.rpc','../api/smsQueue/smsQueue.rpc','../api/openchannelApplication/openchannelApplication.rpc','../api/openchannelMessage/openchannelMessage.rpc','../api/openchannelQueue/openchannelQueue.rpc','../api/openchannelQueueReport/openchannelQueueReport.rpc','../api/chatInteraction/chatInteraction.rpc','../api/chatMessage/chatMessage.rpc','../api/chatQueue/chatQueue.rpc','../api/cmContact/cmContact.rpc','../api/cmHopperHistory/cmHopperHistory.rpc','../api/reportAgentPreview/reportAgentPreview.rpc','../api/interval/interval.rpc','../api/pause/pause.rpc','../api/sound/sound.rpc','../api/template/template.rpc','../api/trigger/trigger.rpc','../api/variable/variable.rpc','../api/intSalesforceAccount/intSalesforceAccount.rpc','../api/intDeskAccount/intDeskAccount.rpc','../api/intZohoAccount/intZohoAccount.rpc','../api/intServicenowAccount/intServicenowAccount.rpc','../api/intDynamics365Account/intDynamics365Account.rpc','../api/intFreshsalesAccount/intFreshsalesAccount.rpc','../api/chatQueueReport/chatQueueReport.rpc','../api/smsQueueReport/smsQueueReport.rpc','../api/squareReportDetail/squareReportDetail.rpc','../api/setting/setting.rpc','../api/squareProject/squareProject.rpc','../api/squareMessage/squareMessage.rpc','../api/campaign/campaign.rpc','../api/attachment/attachment.rpc','../api/plugin/plugin.rpc','../api/whatsappAccount/whatsappAccount.rpc','../api/whatsappInteraction/whatsappInteraction.rpc','../api/whatsappMessage/whatsappMessage.rpc','../api/whatsappQueue/whatsappQueue.rpc','server','http','rpc','port','localhost','error','log','../config/triggers','default','RPC\x20listening\x20on\x20','jayson/promise','bluebird','lodash','../config/environment','listen'];(function(_0x27a5bb,_0x3f4cfb){var _0x2e17ea=function(_0x22912d){while(--_0x22912d){_0x27a5bb['push'](_0x27a5bb['shift']());}};_0x2e17ea(++_0x3f4cfb);}(_0x8403,0x1a5));var _0x3840=function(_0x51f1bb,_0x3f0a0b){_0x51f1bb=_0x51f1bb-0x0;var _0x28aa72=_0x8403[_0x51f1bb];return _0x28aa72;};'use strict';var jayson=require(_0x3840('0x0'));var BPromise=require(_0x3840('0x1'));var _=require(_0x3840('0x2'));var config=require(_0x3840('0x3'));exports[_0x3840('0x4')]=function(){return new BPromise(function(_0x43a9f0,_0x502e0d){var _0x2e6b25={};_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require('../api/user/user.rpc'));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x6')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x7')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x8')));_0x2e6b25=_['merge'](_0x2e6b25,require('../api/voiceCallReport/voiceCallReport.rpc'));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x9')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require('../api/voiceAgentReport/voiceAgentReport.rpc'));_0x2e6b25=_['merge'](_0x2e6b25,require(_0x3840('0xa')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0xb')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0xc')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0xd')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0xe')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require('../api/mailServerIn/mailServerIn.rpc'));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0xf')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require('../api/mailQueue/mailQueue.rpc'));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x10')));_0x2e6b25=_['merge'](_0x2e6b25,require(_0x3840('0x11')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x12')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x13')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x14')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x15')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x16')));_0x2e6b25=_['merge'](_0x2e6b25,require('../api/faxMessage/faxMessage.rpc'));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require('../api/faxQueue/faxQueue.rpc'));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x17')));_0x2e6b25=_['merge'](_0x2e6b25,require('../api/smsAccount/smsAccount.rpc'));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x18')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require('../api/smsMessage/smsMessage.rpc'));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x19')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x1a')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require('../api/openchannelInteraction/openchannelInteraction.rpc'));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x1b')));_0x2e6b25=_['merge'](_0x2e6b25,require(_0x3840('0x1c')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x1d')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x1e')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x1f')));_0x2e6b25=_['merge'](_0x2e6b25,require(_0x3840('0x20')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x21')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require('../api/cmHopper/cmHopper.rpc'));_0x2e6b25=_['merge'](_0x2e6b25,require('../api/cmHopperBlack/cmHopperBlack.rpc'));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require('../api/cmHopperFinal/cmHopperFinal.rpc'));_0x2e6b25=_['merge'](_0x2e6b25,require(_0x3840('0x22')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x23')));_0x2e6b25=_['merge'](_0x2e6b25,require(_0x3840('0x24')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x25')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x26')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x27')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x28')));_0x2e6b25=_['merge'](_0x2e6b25,require(_0x3840('0x29')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x2a')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require('../api/intSugarcrmAccount/intSugarcrmAccount.rpc'));_0x2e6b25=_['merge'](_0x2e6b25,require(_0x3840('0x2b')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x2c')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require('../api/intZendeskAccount/intZendeskAccount.rpc'));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require('../api/intFreshdeskAccount/intFreshdeskAccount.rpc'));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require('../api/intVtigerAccount/intVtigerAccount.rpc'));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x2d')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x2e')));_0x2e6b25=_['merge'](_0x2e6b25,require(_0x3840('0x2f')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x30')));_0x2e6b25=_['merge'](_0x2e6b25,require(_0x3840('0x31')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require('../api/squareReport/squareReport.rpc'));_0x2e6b25=_['merge'](_0x2e6b25,require(_0x3840('0x32')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x33')));_0x2e6b25=_['merge'](_0x2e6b25,require('../api/squareOdbc/squareOdbc.rpc'));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x34')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require('../api/squareRecording/squareRecording.rpc'));_0x2e6b25=_['merge'](_0x2e6b25,require(_0x3840('0x35')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x36')));_0x2e6b25=_['merge'](_0x2e6b25,require(_0x3840('0x37')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x38')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x39')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x3a')));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x3b')));_0x2e6b25=_['merge'](_0x2e6b25,require('../api/whatsappQueueReport/whatsappQueueReport.rpc'));_0x2e6b25=_[_0x3840('0x5')](_0x2e6b25,require(_0x3840('0x3c')));var _0x5a1537=jayson[_0x3840('0x3d')](_0x2e6b25)[_0x3840('0x3e')]();var _0x34a450=config[_0x3840('0x3f')][_0x3840('0x40')]||config['port']+0x1;var _0x332728=config['rpc']['ip']||_0x3840('0x41');_0x5a1537['on'](_0x3840('0x42'),function(_0x3e83b9){return _0x502e0d(_0x3e83b9);});_0x5a1537[_0x3840('0x4')](_0x34a450,_0x332728,function(){console[_0x3840('0x43')]('Express\x20RPC\x20server\x20listening\x20on\x20%s:%d!',_0x332728,_0x34a450);require(_0x3840('0x44'))[_0x3840('0x45')]();return _0x43a9f0(_0x3840('0x46')+_0x332728+':'+_0x34a450);});});};
\ No newline at end of file
+++ /dev/null
-// *************************************************************************
-// * *
-// * xCALLY Motion - The Omnichannel Contact Center *
-// * Copyright (c) Xenialab s.r.l. All Rights Reserved *
-// * *
-// *************************************************************************
-// * *
-// * Email: info@xcally.com *
-// * Website: https://www.xcally.com *
-// * *
-// *************************************************************************
-// * *
-// * The SOFTWARE PRODUCT is protected by copyright laws and international *
-// * copyright treaties, as well as other intellectual property laws and *
-// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
-// * *
-// *************************************************************************
-var _0x757a=['isArray','map','isPlainObject','reduce','exports','safeTemplate','{\x20{\x20','string','replace'];(function(_0xfec2bb,_0x2d6017){var _0x6ee731=function(_0x5cab1d){while(--_0x5cab1d){_0xfec2bb['push'](_0xfec2bb['shift']());}};_0x6ee731(++_0x2d6017);}(_0x757a,0xde));var _0xa757=function(_0x47f7ed,_0x937954){_0x47f7ed=_0x47f7ed-0x0;var _0x56308c=_0x757a[_0x47f7ed];return _0x56308c;};var _=require('lodash');var mustacheLikeBracketsRx=/(\{|\}){2}/gm;function bracketsReplacer(_0x24afaf){return _0x24afaf==='{{'?_0xa757('0x0'):'\x20}\x20}';}function safeTemplate(_0x5c03c3){var _0x5709ed=_0x5c03c3;if(typeof _0x5c03c3===_0xa757('0x1')){_0x5709ed=_0x5c03c3[_0xa757('0x2')](mustacheLikeBracketsRx,bracketsReplacer);}else if(Array[_0xa757('0x3')](_0x5c03c3)){_0x5709ed=_0x5c03c3[_0xa757('0x4')](function(_0x32630d){return safeTemplate(_0x32630d);});}else if(_[_0xa757('0x5')](_0x5c03c3)){_0x5709ed=Object['keys'](_0x5c03c3)[_0xa757('0x6')](function(_0x4343b6,_0x53be0e){_0x4343b6[_0x53be0e]=safeTemplate(_0x5c03c3[_0x53be0e]);return _0x4343b6;},{});}return _0x5709ed;}module[_0xa757('0x7')][_0xa757('0x8')]=safeTemplate;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc965=['E_AGI_SOCKET_CLOSE','timeout','E_AGI_SOCKET_TIMEOUT','pipe','destroy','inherits','prototype','sendRequest','command','sync','answer','ANSWER','getData','beep','GET\x20DATA\x20\x22%s\x22\x20%s\x20%s','noop','NO\x20MESSAGE','format','VERBOSE\x20\x22%s\x22','isArray','EXEC\x20%s\x20%s','setContext','SET\x20CONTEXT\x20%s','setExtension','SET\x20EXTENSION\x20%s','setPriority','HANGUP','isBoolean','isNumber','SET\x20VARIABLE\x20%s\x20\x22%s\x22','replace','SAY\x20NUMBER\x20%s\x20%s','sayDigits','SAY\x20PHONETIC\x20\x22%s\x22\x20%s','continueAt','extension','getVariable','GET\x20VARIABLE\x20\x22%s\x22','recordFile','wav','BEEP','RECORD\x20FILE\x20\x22%s\x22\x20\x22%s\x22\x20\x22%s\x22\x20%s\x20%s\x20%s','agi','exec','WAIT','ID:%s\x20-\x20LABEL:\x20%s\x20-\x20MSG:\x20%s','util','./reply','call','setEncoding','setTimeout','emit','ready','hangup','520-Invalid','search','520\x20End\x20of\x20proper','substring','result=','indexOf','startsWith','length','error','code','close'];(function(_0x20289b,_0x30fda0){var _0xf8c92f=function(_0x5624cd){while(--_0x5624cd){_0x20289b['push'](_0x20289b['shift']());}};_0xf8c92f(++_0x30fda0);}(_0xc965,0x6f));var _0x5c96=function(_0x3fb030,_0x12aebe){_0x3fb030=_0x3fb030-0x0;var _0xd6899b=_0xc965[_0x3fb030];return _0xd6899b;};'use strict';var util=require(_0x5c96('0x0'));var _=require('lodash');var EventEmitter=require('events')['EventEmitter'];var AGIReply=require(_0x5c96('0x1'));var AGIError=require('./error');function AGIChannel(_0x520859){var _0x204c77=this,_0x45c0db=new AGIReply(),_0x539d74=![],_0x452807={};EventEmitter[_0x5c96('0x2')](_0x204c77);_0x520859[_0x5c96('0x3')]('utf8');_0x520859[_0x5c96('0x4')](0x8*0x3c*0x3c*0x3e8);_0x45c0db[_0x5c96('0x3')]('utf8');_0x45c0db['on']('headers',function(_0x2ee632){for(var _0x4bef69 in _0x2ee632){_0x204c77[_0x4bef69]=_0x2ee632[_0x4bef69];}_0x204c77[_0x5c96('0x5')](_0x5c96('0x6'));});_0x45c0db['on']('line',function(_0x176c4a){if(_0x176c4a['toLowerCase']()==_0x5c96('0x7')){_0x204c77[_0x5c96('0x5')](_0x5c96('0x7'));return;}if(_0x176c4a['substring'](0x0,0xb)==_0x5c96('0x8')){_0x539d74=!![];}if(_0x539d74){_0x452807['rx']+=_0x176c4a+'\x0a';if(_0x176c4a[_0x5c96('0x9')](_0x5c96('0xa'))!=-0x1){_0x539d74=![];}}else{_0x452807['rx']=_0x176c4a;}if(_0x539d74){return;}if(typeof _0x452807['cb']=='function'){var _0x2da932=_0x452807['rx'][_0x5c96('0xb')](0x0,0x3),_0x51ef70=null,_0x4e922a=null;_0x2da932=parseInt(_0x2da932);if(isNaN(_0x2da932)){_0x452807['cb'](null,{'code':0x1f4,'result':-0x1,'extra':'no\x20code'});return;}if(_0x2da932!=0xc8){_0x452807['cb'](null,{'code':_0x2da932,'result':-0x1,'extra':'KO'});return;}_0x51ef70=_0x452807['rx'][_0x5c96('0xb')](0x4)['replace'](_0x5c96('0xc'),'');if(_0x51ef70[_0x5c96('0xd')]('\x20')!=-0x1){_0x51ef70=_0x51ef70['substr'](0x0,_0x51ef70[_0x5c96('0xd')]('\x20'));}if(_[_0x5c96('0xe')](_0x51ef70,'-1')){_0x51ef70=parseInt(_0x51ef70);}_0x4e922a=_0x452807['rx']['split']('\x20');if(_0x4e922a[_0x5c96('0xf')]==0x3){_0x4e922a=_0x4e922a[0x2]['substring'](0x1,_0x4e922a[0x2][_0x5c96('0xf')]-0x1);}else if(_0x4e922a[_0x5c96('0xf')]>0x3){var _0x404e50=/\((.+)\)/;var _0x5e5ad8=_0x452807['rx']['match'](_0x404e50);if(_0x5e5ad8){_0x4e922a=_0x5e5ad8[0x1];}else{_0x4e922a=null;}}else{_0x4e922a=null;}_0x452807['cb'](null,{'code':_0x2da932,'result':_0x51ef70,'extra':_0x4e922a});}});_0x520859['on'](_0x5c96('0x10'),function(_0x50b3ae){_0x204c77['emit'](_0x5c96('0x10'),new AGIError('E_AGI_SOCKET_ERROR',_0x50b3ae[_0x5c96('0x11')]));});_0x520859['on'](_0x5c96('0x12'),function(){_0x204c77[_0x5c96('0x5')]('close',new AGIError(_0x5c96('0x13')));});_0x520859['on']('timeout',function(){_0x204c77[_0x5c96('0x5')](_0x5c96('0x14'),new AGIError(_0x5c96('0x15')));_0x520859['destroy']();});_0x520859[_0x5c96('0x16')](_0x45c0db);this['command']=function(_0x31ab,_0x14fac7){var _0x31ab=_0x31ab||'',_0x14fac7=typeof _0x14fac7=='function'?_0x14fac7:new Function();_0x452807={'tx':_0x31ab,'rx':'','cb':_0x14fac7};_0x520859['write'](_0x31ab+'\x0a');},this[_0x5c96('0x12')]=function(){_0x520859[_0x5c96('0x17')]();};}util[_0x5c96('0x18')](AGIChannel,EventEmitter);AGIChannel[_0x5c96('0x19')][_0x5c96('0x1a')]=function(_0x589bc4){return this[_0x5c96('0x1b')][_0x5c96('0x1c')](this,_0x589bc4);};AGIChannel[_0x5c96('0x19')][_0x5c96('0x1d')]=function(){return this[_0x5c96('0x1a')](_0x5c96('0x1e'));};AGIChannel[_0x5c96('0x19')][_0x5c96('0x1f')]=function(_0x223d57,_0x48e686,_0xd919fe){_0x223d57=_0x223d57===undefined?_0x5c96('0x20'):_0x223d57;_0x48e686=_0x48e686===undefined?'5':_0x48e686;_0xd919fe=_0xd919fe===undefined?'1':_0xd919fe;return this[_0x5c96('0x1a')](util['format'](_0x5c96('0x21'),_0x223d57,_0x48e686*0x3e8,_0xd919fe));};AGIChannel[_0x5c96('0x19')][_0x5c96('0x22')]=function(_0x395f04){_0x395f04=_0x395f04||_0x5c96('0x23');return this[_0x5c96('0x1a')](util[_0x5c96('0x24')](_0x5c96('0x25'),_0x395f04));};AGIChannel[_0x5c96('0x19')]['exec']=function(_0x3736ff,_0x593588){if(_[_0x5c96('0x26')](_0x593588)){return this[_0x5c96('0x1a')](util['format'](_0x5c96('0x27'),_0x3736ff,_0x593588['join'](',')));}return this[_0x5c96('0x1a')](util[_0x5c96('0x24')](_0x5c96('0x27'),_0x3736ff,_0x593588));};AGIChannel[_0x5c96('0x19')][_0x5c96('0x28')]=function(_0x5e0565){return this[_0x5c96('0x1a')](util[_0x5c96('0x24')](_0x5c96('0x29'),_0x5e0565));};AGIChannel[_0x5c96('0x19')][_0x5c96('0x2a')]=function(_0x4b9f49){return this['sendRequest'](util[_0x5c96('0x24')](_0x5c96('0x2b'),_0x4b9f49));};AGIChannel['prototype'][_0x5c96('0x2c')]=function(_0x10fb57){return this[_0x5c96('0x1a')](util[_0x5c96('0x24')]('SET\x20PRIORITY\x20%s',_0x10fb57));};AGIChannel[_0x5c96('0x19')][_0x5c96('0x7')]=function(){return this[_0x5c96('0x1a')](_0x5c96('0x2d'));};AGIChannel[_0x5c96('0x19')]['setVariable']=function(_0x4d77b5,_0x58bcd6){var _0x22622e=_[_0x5c96('0x2e')](_0x58bcd6)||_[_0x5c96('0x2f')](_0x58bcd6)?_0x58bcd6['toString']():_0x58bcd6;return this[_0x5c96('0x1a')](util[_0x5c96('0x24')](_0x5c96('0x30'),_0x4d77b5,_0x22622e?_0x22622e['toString']()[_0x5c96('0x31')](/(\r\n|\n|\r)/gm,'\x20'):''));};AGIChannel[_0x5c96('0x19')]['sayNumber']=function(_0x2b62d0,_0x1e806e){return this['sendRequest'](util[_0x5c96('0x24')](_0x5c96('0x32'),_0x2b62d0,_0x1e806e));};AGIChannel[_0x5c96('0x19')][_0x5c96('0x33')]=function(_0x8f3dea,_0x290e86){return this[_0x5c96('0x1a')](util['format']('SAY\x20DIGITS\x20%s\x20%s',_0x8f3dea,_0x290e86));};AGIChannel[_0x5c96('0x19')]['sayPhonetic']=function(_0x47f5fb,_0xedf227){return this[_0x5c96('0x1a')](util['format'](_0x5c96('0x34'),_0x47f5fb,_0xedf227));};AGIChannel['prototype'][_0x5c96('0x35')]=function(_0x2cead7,_0x3f550c,_0x298509){_0x3f550c=_0x3f550c||this[_0x5c96('0x36')];_0x298509=_0x298509||0x1;this[_0x5c96('0x28')](_0x2cead7);this[_0x5c96('0x2a')](_0x3f550c);this[_0x5c96('0x2c')](_0x298509);return this[_0x5c96('0x22')](util[_0x5c96('0x24')]('GOTO\x20%s\x20%s\x20%s',_0x2cead7,_0x3f550c,_0x298509));};AGIChannel[_0x5c96('0x19')][_0x5c96('0x37')]=function(_0x459c2d){return this[_0x5c96('0x1a')](util[_0x5c96('0x24')](_0x5c96('0x38'),_0x459c2d));};AGIChannel[_0x5c96('0x19')][_0x5c96('0x39')]=function(_0x3659c9,_0x3aeb2f,_0x59c0c6,_0x12ba75,_0x3ae780,_0x445f08){_0x3aeb2f=_0x3aeb2f||_0x5c96('0x3a');_0x59c0c6=_0x59c0c6||'';_0x12ba75=_0x12ba75===undefined?-0x1:_0x12ba75==='-1'?-0x1:_0x12ba75*0x3e8;_0x3ae780=_0x3ae780===undefined?'':'s='+_0x3ae780;_0x445f08=_0x445f08?_0x5c96('0x3b'):'';return this['sendRequest'](util[_0x5c96('0x24')](_0x5c96('0x3c'),_0x3659c9,_0x3aeb2f,_0x59c0c6,_0x12ba75,_0x445f08,_0x3ae780));};AGIChannel[_0x5c96('0x19')]['streamFile']=function(_0x2bf26c,_0x10d26a){_0x10d26a=_0x10d26a||'';return this[_0x5c96('0x1a')](util['format']('STREAM\x20FILE\x20\x22%s\x22\x20\x22%s\x22',_0x2bf26c,_0x10d26a));};AGIChannel[_0x5c96('0x19')][_0x5c96('0x3d')]=function(_0x5c52e4){return this['exec']('AGI',_0x5c52e4);};AGIChannel[_0x5c96('0x19')]['wait']=function(_0x2d9a3b){return this[_0x5c96('0x3e')](_0x5c96('0x3f'),_0x2d9a3b);};AGIChannel[_0x5c96('0x19')][_0x5c96('0x10')]=function(_0x39e31e,_0x2af1d2){this[_0x5c96('0x22')](util['format'](_0x5c96('0x40'),_0x39e31e['id'],_0x39e31e['label'],_0x2af1d2));return{'code':0x1f4,'result':'-1','extra':''};};module['exports']=AGIChannel;
\ No newline at end of file
+var _0x1bce=['close','destroy','inherits','prototype','sendRequest','command','sync','answer','ANSWER','noop','format','VERBOSE\x20\x22%s\x22','exec','isArray','EXEC\x20%s\x20%s','join','setContext','SET\x20CONTEXT\x20%s','setPriority','SET\x20PRIORITY\x20%s','setVariable','isBoolean','isNumber','toString','SET\x20VARIABLE\x20%s\x20\x22%s\x22','sayNumber','SAY\x20NUMBER\x20%s\x20%s','sayDigits','SAY\x20DIGITS\x20%s\x20%s','sayPhonetic','SAY\x20PHONETIC\x20\x22%s\x22\x20%s','extension','setExtension','GOTO\x20%s\x20%s\x20%s','GET\x20VARIABLE\x20\x22%s\x22','streamFile','agi','AGI','wait','WAIT','label','exports','util','lodash','EventEmitter','./reply','./error','call','setTimeout','setEncoding','utf8','headers','ready','toLowerCase','hangup','substring','search','520\x20End\x20of\x20proper','replace','result=','indexOf','startsWith','split','length','error','emit','E_AGI_SOCKET_ERROR','code','E_AGI_SOCKET_CLOSE','timeout','E_AGI_SOCKET_TIMEOUT','pipe','write'];(function(_0x487702,_0x49f5d4){var _0x5e7150=function(_0x2b2b29){while(--_0x2b2b29){_0x487702['push'](_0x487702['shift']());}};_0x5e7150(++_0x49f5d4);}(_0x1bce,0x73));var _0xe1bc=function(_0x2641f9,_0x26715f){_0x2641f9=_0x2641f9-0x0;var _0x585741=_0x1bce[_0x2641f9];return _0x585741;};'use strict';var util=require(_0xe1bc('0x0'));var _=require(_0xe1bc('0x1'));var EventEmitter=require('events')[_0xe1bc('0x2')];var AGIReply=require(_0xe1bc('0x3'));var AGIError=require(_0xe1bc('0x4'));function AGIChannel(_0x37ad98){var _0xc1ee3e=this,_0x31a5e=new AGIReply(),_0x2cc947=![],_0x3e063b={};EventEmitter[_0xe1bc('0x5')](_0xc1ee3e);_0x37ad98['setEncoding']('utf8');_0x37ad98[_0xe1bc('0x6')](0x8*0x3c*0x3c*0x3e8);_0x31a5e[_0xe1bc('0x7')](_0xe1bc('0x8'));_0x31a5e['on'](_0xe1bc('0x9'),function(_0x1a861f){for(var _0x135e72 in _0x1a861f){_0xc1ee3e[_0x135e72]=_0x1a861f[_0x135e72];}_0xc1ee3e['emit'](_0xe1bc('0xa'));});_0x31a5e['on']('line',function(_0x191147){if(_0x191147[_0xe1bc('0xb')]()==_0xe1bc('0xc')){_0xc1ee3e['emit'](_0xe1bc('0xc'));return;}if(_0x191147[_0xe1bc('0xd')](0x0,0xb)=='520-Invalid'){_0x2cc947=!![];}if(_0x2cc947){_0x3e063b['rx']+=_0x191147+'\x0a';if(_0x191147[_0xe1bc('0xe')](_0xe1bc('0xf'))!=-0x1){_0x2cc947=![];}}else{_0x3e063b['rx']=_0x191147;}if(_0x2cc947){return;}if(typeof _0x3e063b['cb']=='function'){var _0x5c8b9f=_0x3e063b['rx'][_0xe1bc('0xd')](0x0,0x3),_0xdb61b=null,_0xc89560=null;_0x5c8b9f=parseInt(_0x5c8b9f);if(isNaN(_0x5c8b9f)){_0x3e063b['cb'](null,{'code':0x1f4,'result':-0x1,'extra':'no\x20code'});return;}if(_0x5c8b9f!=0xc8){_0x3e063b['cb'](null,{'code':_0x5c8b9f,'result':-0x1,'extra':'KO'});return;}_0xdb61b=_0x3e063b['rx']['substring'](0x4)[_0xe1bc('0x10')](_0xe1bc('0x11'),'');if(_0xdb61b[_0xe1bc('0x12')]('\x20')!=-0x1){_0xdb61b=_0xdb61b['substr'](0x0,_0xdb61b[_0xe1bc('0x12')]('\x20'));}if(_[_0xe1bc('0x13')](_0xdb61b,'-1')){_0xdb61b=parseInt(_0xdb61b);}_0xc89560=_0x3e063b['rx'][_0xe1bc('0x14')]('\x20');if(_0xc89560[_0xe1bc('0x15')]==0x3){_0xc89560=_0xc89560[0x2]['substring'](0x1,_0xc89560[0x2][_0xe1bc('0x15')]-0x1);}else if(_0xc89560['length']>0x3){var _0x306165=/\((.+)\)/;var _0x121f19=_0x3e063b['rx']['match'](_0x306165);if(_0x121f19){_0xc89560=_0x121f19[0x1];}else{_0xc89560=null;}}else{_0xc89560=null;}_0x3e063b['cb'](null,{'code':_0x5c8b9f,'result':_0xdb61b,'extra':_0xc89560});}});_0x37ad98['on'](_0xe1bc('0x16'),function(_0x1ed85d){_0xc1ee3e[_0xe1bc('0x17')](_0xe1bc('0x16'),new AGIError(_0xe1bc('0x18'),_0x1ed85d[_0xe1bc('0x19')]));});_0x37ad98['on']('close',function(){_0xc1ee3e[_0xe1bc('0x17')]('close',new AGIError(_0xe1bc('0x1a')));});_0x37ad98['on'](_0xe1bc('0x1b'),function(){_0xc1ee3e[_0xe1bc('0x17')](_0xe1bc('0x1b'),new AGIError(_0xe1bc('0x1c')));_0x37ad98['destroy']();});_0x37ad98[_0xe1bc('0x1d')](_0x31a5e);this['command']=function(_0x5f3bdc,_0x3a5f82){var _0x5f3bdc=_0x5f3bdc||'',_0x3a5f82=typeof _0x3a5f82=='function'?_0x3a5f82:new Function();_0x3e063b={'tx':_0x5f3bdc,'rx':'','cb':_0x3a5f82};_0x37ad98[_0xe1bc('0x1e')](_0x5f3bdc+'\x0a');},this[_0xe1bc('0x1f')]=function(){_0x37ad98[_0xe1bc('0x20')]();};}util[_0xe1bc('0x21')](AGIChannel,EventEmitter);AGIChannel[_0xe1bc('0x22')][_0xe1bc('0x23')]=function(_0x33b32d){return this[_0xe1bc('0x24')][_0xe1bc('0x25')](this,_0x33b32d);};AGIChannel[_0xe1bc('0x22')][_0xe1bc('0x26')]=function(){return this[_0xe1bc('0x23')](_0xe1bc('0x27'));};AGIChannel['prototype']['getData']=function(_0x6311aa,_0x5905d6,_0x43527d){_0x6311aa=_0x6311aa===undefined?'beep':_0x6311aa;_0x5905d6=_0x5905d6===undefined?'5':_0x5905d6;_0x43527d=_0x43527d===undefined?'1':_0x43527d;return this[_0xe1bc('0x23')](util['format']('GET\x20DATA\x20\x22%s\x22\x20%s\x20%s',_0x6311aa,_0x5905d6*0x3e8,_0x43527d));};AGIChannel[_0xe1bc('0x22')][_0xe1bc('0x28')]=function(_0x58a667){_0x58a667=_0x58a667||'NO\x20MESSAGE';return this[_0xe1bc('0x23')](util[_0xe1bc('0x29')](_0xe1bc('0x2a'),_0x58a667));};AGIChannel[_0xe1bc('0x22')][_0xe1bc('0x2b')]=function(_0x30b122,_0x122da8){if(_[_0xe1bc('0x2c')](_0x122da8)){return this[_0xe1bc('0x23')](util['format'](_0xe1bc('0x2d'),_0x30b122,_0x122da8[_0xe1bc('0x2e')](',')));}return this[_0xe1bc('0x23')](util['format'](_0xe1bc('0x2d'),_0x30b122,_0x122da8));};AGIChannel[_0xe1bc('0x22')][_0xe1bc('0x2f')]=function(_0x31ab75){return this[_0xe1bc('0x23')](util['format'](_0xe1bc('0x30'),_0x31ab75));};AGIChannel['prototype']['setExtension']=function(_0x1e909e){return this[_0xe1bc('0x23')](util[_0xe1bc('0x29')]('SET\x20EXTENSION\x20%s',_0x1e909e));};AGIChannel[_0xe1bc('0x22')][_0xe1bc('0x31')]=function(_0x4e6d8d){return this[_0xe1bc('0x23')](util[_0xe1bc('0x29')](_0xe1bc('0x32'),_0x4e6d8d));};AGIChannel[_0xe1bc('0x22')][_0xe1bc('0xc')]=function(){return this[_0xe1bc('0x23')]('HANGUP');};AGIChannel[_0xe1bc('0x22')][_0xe1bc('0x33')]=function(_0x4d335b,_0x358458){var _0x47a5f8=_[_0xe1bc('0x34')](_0x358458)||_[_0xe1bc('0x35')](_0x358458)?_0x358458[_0xe1bc('0x36')]():_0x358458;return this[_0xe1bc('0x23')](util['format'](_0xe1bc('0x37'),_0x4d335b,_0x47a5f8?_0x47a5f8[_0xe1bc('0x36')]()[_0xe1bc('0x10')](/(\r\n|\n|\r)/gm,'\x20'):''));};AGIChannel[_0xe1bc('0x22')][_0xe1bc('0x38')]=function(_0x2ec59d,_0x1cdc59){return this[_0xe1bc('0x23')](util[_0xe1bc('0x29')](_0xe1bc('0x39'),_0x2ec59d,_0x1cdc59));};AGIChannel[_0xe1bc('0x22')][_0xe1bc('0x3a')]=function(_0x3a1c73,_0x45ddd3){return this['sendRequest'](util[_0xe1bc('0x29')](_0xe1bc('0x3b'),_0x3a1c73,_0x45ddd3));};AGIChannel['prototype'][_0xe1bc('0x3c')]=function(_0x4e3d2d,_0x149d1a){return this[_0xe1bc('0x23')](util[_0xe1bc('0x29')](_0xe1bc('0x3d'),_0x4e3d2d,_0x149d1a));};AGIChannel[_0xe1bc('0x22')]['continueAt']=function(_0x58eb90,_0x77161e,_0xf01082){_0x77161e=_0x77161e||this[_0xe1bc('0x3e')];_0xf01082=_0xf01082||0x1;this[_0xe1bc('0x2f')](_0x58eb90);this[_0xe1bc('0x3f')](_0x77161e);this[_0xe1bc('0x31')](_0xf01082);return this['noop'](util[_0xe1bc('0x29')](_0xe1bc('0x40'),_0x58eb90,_0x77161e,_0xf01082));};AGIChannel[_0xe1bc('0x22')]['getVariable']=function(_0x3fee8f){return this['sendRequest'](util[_0xe1bc('0x29')](_0xe1bc('0x41'),_0x3fee8f));};AGIChannel[_0xe1bc('0x22')]['recordFile']=function(_0x16b1b9,_0x2e216e,_0x34fed2,_0x59be59,_0x473a44,_0x5b0c25){_0x2e216e=_0x2e216e||'wav';_0x34fed2=_0x34fed2||'';_0x59be59=_0x59be59===undefined?-0x1:_0x59be59==='-1'?-0x1:_0x59be59*0x3e8;_0x473a44=_0x473a44===undefined?'':'s='+_0x473a44;_0x5b0c25=_0x5b0c25?'BEEP':'';return this['sendRequest'](util['format']('RECORD\x20FILE\x20\x22%s\x22\x20\x22%s\x22\x20\x22%s\x22\x20%s\x20%s\x20%s',_0x16b1b9,_0x2e216e,_0x34fed2,_0x59be59,_0x5b0c25,_0x473a44));};AGIChannel[_0xe1bc('0x22')][_0xe1bc('0x42')]=function(_0x594ab5,_0x3ffe9f){_0x3ffe9f=_0x3ffe9f||'';return this[_0xe1bc('0x23')](util[_0xe1bc('0x29')]('STREAM\x20FILE\x20\x22%s\x22\x20\x22%s\x22',_0x594ab5,_0x3ffe9f));};AGIChannel[_0xe1bc('0x22')][_0xe1bc('0x43')]=function(_0x76f2b3){return this[_0xe1bc('0x2b')](_0xe1bc('0x44'),_0x76f2b3);};AGIChannel['prototype'][_0xe1bc('0x45')]=function(_0x476348){return this['exec'](_0xe1bc('0x46'),_0x476348);};AGIChannel[_0xe1bc('0x22')]['error']=function(_0x213118,_0x52263b){this[_0xe1bc('0x28')](util['format']('ID:%s\x20-\x20LABEL:\x20%s\x20-\x20MSG:\x20%s',_0x213118['id'],_0x213118[_0xe1bc('0x47')],_0x52263b));return{'code':0x1f4,'result':'-1','extra':''};};module[_0xe1bc('0x48')]=AGIChannel;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfc86=['Missing\x20\x27ivr.agi_network_script\x27.','Missing\x20\x27ivr.entry\x27\x20menu.','push','format','apply','name','exports','util','Undefined\x20error.','Argument\x20\x27port\x27\x20missing\x20in\x20function\x20call.','Server\x20error.\x20Code:\x20%s.','Server\x20closed.','[LICENSE\x20VOICE]\x20Server\x20license\x20voice\x20disabled.','Socket\x20error.\x20Code:\x20%s.','Socket\x20closed.','Empty\x20command.'];(function(_0x382a62,_0x1baa5e){var _0x490a25=function(_0x1b3427){while(--_0x1b3427){_0x382a62['push'](_0x382a62['shift']());}};_0x490a25(++_0x1baa5e);}(_0xfc86,0xc7));var _0x6fc8=function(_0x4639d2,_0x41bf0a){_0x4639d2=_0x4639d2-0x0;var _0x5c1f9d=_0xfc86[_0x4639d2];return _0x5c1f9d;};'use strict';var util=require(_0x6fc8('0x0'));var error={'E_AGI_UNDEFINED':_0x6fc8('0x1'),'E_AGI_ARGUMENT_PORT':_0x6fc8('0x2'),'E_AGI_SERVER_ERROR':_0x6fc8('0x3'),'E_AGI_SERVER_CLOSE':_0x6fc8('0x4'),'E_AGI_SERVER_MAXCONNECTION':'[LICENSE]\x20Server\x20max\x20connection.\x20Count:\x20%s.','E_AGI_SERVER_VOICE_DISABLED':_0x6fc8('0x5'),'E_AGI_SOCKET_ERROR':_0x6fc8('0x6'),'E_AGI_SOCKET_CLOSE':_0x6fc8('0x7'),'E_AGI_SOCKET_TIMEOUT':'Socket\x20timeout.','E_AGI_COMMAND_EMPTY':_0x6fc8('0x8'),'E_AGI_IVR_AGI_NETWORK_SCRIPT':_0x6fc8('0x9'),'E_AGI_IVR_ENTRY':_0x6fc8('0xa')};function AGIError(_0x115ced){var _0x115ced=_0x115ced||null,_0x396ab8=_0x396ab8||[],_0x6efa4e=0x1,_0x2c1d50='';if(!error[_0x115ced]){_0x115ced='E_AGI_UNDEFINED';}_0x396ab8[_0x6fc8('0xb')](error[_0x115ced]);while(arguments[_0x6efa4e]){_0x396ab8[_0x6fc8('0xb')](arguments[_0x6efa4e]);_0x6efa4e++;}_0x2c1d50=util[_0x6fc8('0xc')][_0x6fc8('0xd')](util,_0x396ab8);this['message']=_0x2c1d50;this[_0x6fc8('0xe')]=_0x115ced;}module[_0x6fc8('0xf')]=AGIError;
\ No newline at end of file
+var _0x6a2c=['Argument\x20\x27port\x27\x20missing\x20in\x20function\x20call.','Server\x20error.\x20Code:\x20%s.','Server\x20closed.','[LICENSE]\x20Server\x20max\x20connection.\x20Count:\x20%s.','[LICENSE\x20VOICE]\x20Server\x20license\x20voice\x20disabled.','Socket\x20error.\x20Code:\x20%s.','Socket\x20timeout.','Missing\x20\x27ivr.agi_network_script\x27.','Missing\x20\x27ivr.entry\x27\x20menu.','push','format','apply','name','exports','util'];(function(_0x559914,_0x676559){var _0x2e6ebe=function(_0x220093){while(--_0x220093){_0x559914['push'](_0x559914['shift']());}};_0x2e6ebe(++_0x676559);}(_0x6a2c,0x1d0));var _0xc6a2=function(_0x3a0b12,_0x4179d4){_0x3a0b12=_0x3a0b12-0x0;var _0x3c2efe=_0x6a2c[_0x3a0b12];return _0x3c2efe;};'use strict';var util=require(_0xc6a2('0x0'));var error={'E_AGI_UNDEFINED':'Undefined\x20error.','E_AGI_ARGUMENT_PORT':_0xc6a2('0x1'),'E_AGI_SERVER_ERROR':_0xc6a2('0x2'),'E_AGI_SERVER_CLOSE':_0xc6a2('0x3'),'E_AGI_SERVER_MAXCONNECTION':_0xc6a2('0x4'),'E_AGI_SERVER_VOICE_DISABLED':_0xc6a2('0x5'),'E_AGI_SOCKET_ERROR':_0xc6a2('0x6'),'E_AGI_SOCKET_CLOSE':'Socket\x20closed.','E_AGI_SOCKET_TIMEOUT':_0xc6a2('0x7'),'E_AGI_COMMAND_EMPTY':'Empty\x20command.','E_AGI_IVR_AGI_NETWORK_SCRIPT':_0xc6a2('0x8'),'E_AGI_IVR_ENTRY':_0xc6a2('0x9')};function AGIError(_0x1230f7){var _0x1230f7=_0x1230f7||null,_0x338214=_0x338214||[],_0x21a8f9=0x1,_0x453d37='';if(!error[_0x1230f7]){_0x1230f7='E_AGI_UNDEFINED';}_0x338214[_0xc6a2('0xa')](error[_0x1230f7]);while(arguments[_0x21a8f9]){_0x338214[_0xc6a2('0xa')](arguments[_0x21a8f9]);_0x21a8f9++;}_0x453d37=util[_0xc6a2('0xb')][_0xc6a2('0xc')](util,_0x338214);this['message']=_0x453d37;this[_0xc6a2('0xd')]=_0x1230f7;}module[_0xc6a2('0xe')]=AGIError;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x18df=['max\x20retry\x20reach','condition\x20not\x20found','lodash','menu','getdigits','getsecretdigits','vertices','numberOfEdges','prototype','addVertex','edges','addEdge','push','size','info','stop\x20traverse','length','split','agicommand','vswitch','target','default','traverseBFS','includes'];(function(_0x4e4f0e,_0x1c3892){var _0x1a7219=function(_0x3821ad){while(--_0x3821ad){_0x4e4f0e['push'](_0x4e4f0e['shift']());}};_0x1a7219(++_0x1c3892);}(_0x18df,0x1b2));var _0xf18d=function(_0x124123,_0x2f5204){_0x124123=_0x124123-0x0;var _0xcefbcd=_0x18df[_0x124123];return _0xcefbcd;};'use strict';var _=require(_0xf18d('0x0'));var logger=require('../../../config/logger')('agi');var verticesWithRetry=[_0xf18d('0x1'),_0xf18d('0x2'),_0xf18d('0x3')];var Graph=function(){this[_0xf18d('0x4')]={};this['edges']={};this[_0xf18d('0x5')]=0x0;};Graph[_0xf18d('0x6')][_0xf18d('0x7')]=function(_0x1c8e64){this[_0xf18d('0x4')][_0x1c8e64['id']]=_0x1c8e64;this[_0xf18d('0x8')][_0x1c8e64['id']]=[];};Graph[_0xf18d('0x6')][_0xf18d('0x9')]=function(_0x1cd9f8,_0x33c707,_0x3d9487){this[_0xf18d('0x8')][_0x1cd9f8][_0xf18d('0xa')]({'target':_0x33c707,'condition':_0x3d9487});this[_0xf18d('0x5')]+=0x1;};Graph[_0xf18d('0x6')][_0xf18d('0xb')]=function(){return _[_0xf18d('0xb')](this[_0xf18d('0x4')]);};Graph[_0xf18d('0x6')]['relations']=function(){return this[_0xf18d('0x5')];};Graph[_0xf18d('0x6')]['getVertex']=function(_0x5e4404){return this[_0xf18d('0x4')][_0x5e4404];};Graph[_0xf18d('0x6')]['traverseBFS']=function(_0x3b40ac,_0x2feb4d){if(!this[_0xf18d('0x4')][_0x3b40ac]){return logger[_0xf18d('0xc')]('no\x20vertex\x20found');}var _0x12456c=_0x2feb4d(this[_0xf18d('0x4')][_0x3b40ac]);if(!_0x12456c){return logger['info'](_0xf18d('0xd'));}if(this[_0xf18d('0x8')][_0x3b40ac][_0xf18d('0xe')]===0x0){return logger[_0xf18d('0xc')]('no\x20edge/s\x20available');}for(var _0x1e8263=0x0,_0xf14d8f=[],_0x2ad559=![];_0x1e8263<this[_0xf18d('0x8')][_0x3b40ac][_0xf18d('0xe')];_0x1e8263+=0x1){if(this[_0xf18d('0x8')][_0x3b40ac][_0x1e8263]['condition']){_0xf14d8f=this['edges'][_0x3b40ac][_0x1e8263]['condition'][_0xf18d('0xf')](',');for(var _0x577c11=0x0;_0x577c11<_0xf14d8f[_0xf18d('0xe')];_0x577c11+=0x1){if(this[_0xf18d('0x4')][_0x3b40ac][_0xf18d('0x10')]===_0xf18d('0x11')&&_0xf14d8f[_0x577c11]==='-'){_0x2ad559=this[_0xf18d('0x8')][_0x3b40ac][_0x1e8263][_0xf18d('0x12')];logger[_0xf18d('0xc')](_0xf18d('0x13'),_0xf14d8f[_0x577c11],this['edges'][_0x3b40ac][_0x1e8263][_0xf18d('0x12')]);}else if(this[_0xf18d('0x4')][_0x3b40ac]['agicommand']==='menu'&&_0xf14d8f[_0x577c11]==='i'){_0x2ad559=this['edges'][_0x3b40ac][_0x1e8263][_0xf18d('0x12')];logger[_0xf18d('0xc')]('invalid',_0xf14d8f[_0x577c11],this[_0xf18d('0x8')][_0x3b40ac][_0x1e8263]['target']);}if(_0xf14d8f[_0x577c11]===_0x12456c){return this['traverseBFS'](this['edges'][_0x3b40ac][_0x1e8263]['target'],_0x2feb4d);}}}else{return this[_0xf18d('0x14')](this[_0xf18d('0x8')][_0x3b40ac][_0x1e8263][_0xf18d('0x12')],_0x2feb4d);}}if(_0xf14d8f[_0xf18d('0xe')]){if(this['vertices'][_0x3b40ac][_0xf18d('0x10')]===_0xf18d('0x11')){if(_0x2ad559){return this[_0xf18d('0x14')](_0x2ad559,_0x2feb4d);}return logger['info']('default\x20on\x20switch\x20not\x20found');}else if(_[_0xf18d('0x15')](verticesWithRetry,this[_0xf18d('0x4')][_0x3b40ac][_0xf18d('0x10')])){if(_0x12456c==='-'){return logger[_0xf18d('0xc')](_0xf18d('0x16'));}if(_0x2ad559&&_0x12456c!=='t'){return this[_0xf18d('0x14')](_0x2ad559,_0x2feb4d);}return this[_0xf18d('0x14')](_0x3b40ac,_0x2feb4d);}return logger[_0xf18d('0xc')](_0xf18d('0x17'));}};module['exports']=Graph;
\ No newline at end of file
+var _0x4c52=['edges','numberOfEdges','prototype','addVertex','addEdge','push','size','relations','getVertex','info','no\x20vertex\x20found','stop\x20traverse','length','condition','agicommand','target','invalid','traverseBFS','vswitch','default\x20on\x20switch\x20not\x20found','includes','condition\x20not\x20found','lodash','../../../config/logger','agi','menu','getsecretdigits','vertices'];(function(_0x230dd3,_0x26024b){var _0x7987fa=function(_0x36a021){while(--_0x36a021){_0x230dd3['push'](_0x230dd3['shift']());}};_0x7987fa(++_0x26024b);}(_0x4c52,0x19e));var _0x24c5=function(_0x35ef6b,_0x202c42){_0x35ef6b=_0x35ef6b-0x0;var _0x3ad145=_0x4c52[_0x35ef6b];return _0x3ad145;};'use strict';var _=require(_0x24c5('0x0'));var logger=require(_0x24c5('0x1'))(_0x24c5('0x2'));var verticesWithRetry=[_0x24c5('0x3'),'getdigits',_0x24c5('0x4')];var Graph=function(){this[_0x24c5('0x5')]={};this[_0x24c5('0x6')]={};this[_0x24c5('0x7')]=0x0;};Graph[_0x24c5('0x8')][_0x24c5('0x9')]=function(_0x54a585){this[_0x24c5('0x5')][_0x54a585['id']]=_0x54a585;this[_0x24c5('0x6')][_0x54a585['id']]=[];};Graph['prototype'][_0x24c5('0xa')]=function(_0x859b24,_0x17ca2f,_0x17666d){this[_0x24c5('0x6')][_0x859b24][_0x24c5('0xb')]({'target':_0x17ca2f,'condition':_0x17666d});this['numberOfEdges']+=0x1;};Graph[_0x24c5('0x8')][_0x24c5('0xc')]=function(){return _['size'](this[_0x24c5('0x5')]);};Graph[_0x24c5('0x8')][_0x24c5('0xd')]=function(){return this[_0x24c5('0x7')];};Graph['prototype'][_0x24c5('0xe')]=function(_0x46ccf7){return this['vertices'][_0x46ccf7];};Graph[_0x24c5('0x8')]['traverseBFS']=function(_0x3d36f2,_0x2dc980){if(!this[_0x24c5('0x5')][_0x3d36f2]){return logger[_0x24c5('0xf')](_0x24c5('0x10'));}var _0x122581=_0x2dc980(this[_0x24c5('0x5')][_0x3d36f2]);if(!_0x122581){return logger[_0x24c5('0xf')](_0x24c5('0x11'));}if(this[_0x24c5('0x6')][_0x3d36f2][_0x24c5('0x12')]===0x0){return logger[_0x24c5('0xf')]('no\x20edge/s\x20available');}for(var _0x59cb28=0x0,_0x2cfee6=[],_0x871774=![];_0x59cb28<this[_0x24c5('0x6')][_0x3d36f2]['length'];_0x59cb28+=0x1){if(this[_0x24c5('0x6')][_0x3d36f2][_0x59cb28]['condition']){_0x2cfee6=this[_0x24c5('0x6')][_0x3d36f2][_0x59cb28][_0x24c5('0x13')]['split'](',');for(var _0x62d65b=0x0;_0x62d65b<_0x2cfee6['length'];_0x62d65b+=0x1){if(this[_0x24c5('0x5')][_0x3d36f2][_0x24c5('0x14')]==='vswitch'&&_0x2cfee6[_0x62d65b]==='-'){_0x871774=this[_0x24c5('0x6')][_0x3d36f2][_0x59cb28][_0x24c5('0x15')];logger[_0x24c5('0xf')]('default',_0x2cfee6[_0x62d65b],this[_0x24c5('0x6')][_0x3d36f2][_0x59cb28][_0x24c5('0x15')]);}else if(this[_0x24c5('0x5')][_0x3d36f2][_0x24c5('0x14')]===_0x24c5('0x3')&&_0x2cfee6[_0x62d65b]==='i'){_0x871774=this[_0x24c5('0x6')][_0x3d36f2][_0x59cb28]['target'];logger[_0x24c5('0xf')](_0x24c5('0x16'),_0x2cfee6[_0x62d65b],this[_0x24c5('0x6')][_0x3d36f2][_0x59cb28]['target']);}if(_0x2cfee6[_0x62d65b]===_0x122581){return this[_0x24c5('0x17')](this['edges'][_0x3d36f2][_0x59cb28][_0x24c5('0x15')],_0x2dc980);}}}else{return this[_0x24c5('0x17')](this[_0x24c5('0x6')][_0x3d36f2][_0x59cb28][_0x24c5('0x15')],_0x2dc980);}}if(_0x2cfee6[_0x24c5('0x12')]){if(this[_0x24c5('0x5')][_0x3d36f2]['agicommand']===_0x24c5('0x18')){if(_0x871774){return this[_0x24c5('0x17')](_0x871774,_0x2dc980);}return logger[_0x24c5('0xf')](_0x24c5('0x19'));}else if(_[_0x24c5('0x1a')](verticesWithRetry,this[_0x24c5('0x5')][_0x3d36f2]['agicommand'])){if(_0x122581==='-'){return logger['info']('max\x20retry\x20reach');}if(_0x871774&&_0x122581!=='t'){return this[_0x24c5('0x17')](_0x871774,_0x2dc980);}return this[_0x24c5('0x17')](_0x3d36f2,_0x2dc980);}return logger[_0x24c5('0xf')](_0x24c5('0x1b'));}};module['exports']=Graph;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5271=['target','addEdge','getSquareProject','catch','createSquareReport','indexOf','agi_','substring','inspect','variables','stringify','timeout','sync','production','start','debug','joinAt','mxCell','[START\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','traverseBFS','clear','vertex','agicommand','gotoc','gotoc\x20block\x20stop\x20traverse\x20BFS','context','extension','priority','response','code','result','isUndefined','toString','agicommand\x20not\x20found','finally','[END]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','[GOTO]\x20context:\x20%s\x20extension:\x20%s\x20priority:\x20%s','close','Project\x20%s\x20not\x20published','continueAt','Project\x20%s\x20not\x20found','getLicense','voice','callysquare','[LICENSE]\x20CHANNELS:\x20UNLIMITED','[LICENSE]\x20VOICE\x20IS\x20DISABLED','[LICENSE]','./server','listening','connection','xml2json','lodash','syncho','util','moment','../../config/logger','agi','../../config/license/util','./mailRpc','./graph','./vertices','defaults','127.0.0.1','nextTick','stack','log','port','format','[LISTENING]\x20Cally\x20Square\x20listening\x20%s:%d','name','message','error','[%s]\x20%s','[ERROR]\x20%s','info','[CLOSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','calleridname','callerid','dnid','uniqueid','[TIMEOUT]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','[HANGUP]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','arg_1','evtHangup','mxGraphModel','root','hasOwnProperty','retry','maxRetry','omit','length','source'];(function(_0x4338d1,_0x25f589){var _0x2b495e=function(_0x5a347e){while(--_0x5a347e){_0x4338d1['push'](_0x4338d1['shift']());}};_0x2b495e(++_0x25f589);}(_0x5271,0xea));var _0x1527=function(_0x20ef64,_0x4a8fe9){_0x20ef64=_0x20ef64-0x0;var _0x3707d8=_0x5271[_0x20ef64];return _0x3707d8;};'use strict';var parser=require(_0x1527('0x0'));var _=require(_0x1527('0x1'));var syncho=require(_0x1527('0x2'));var util=require(_0x1527('0x3'));var moment=require(_0x1527('0x4'));var config=require('../../config/environment');var logger=require(_0x1527('0x5'))(_0x1527('0x6'));var utilLicense=require(_0x1527('0x7'));var rpc=require('./rpc');var mailRpc=require(_0x1527('0x8'));var Graph=require(_0x1527('0x9'));var Vertices=require(_0x1527('0xa'));var AGI_CODE_SUCCESS=0xc8;var AGI_RESULT_ERROR=-0x1;config[_0x1527('0x6')]=_[_0x1527('0xb')](config[_0x1527('0x6')],{'ip':_0x1527('0xc'),'port':0x11dd});function connectionHandler(_0x2df272){process[_0x1527('0xd')](function(){syncho(function(){try{setChannelVariables(_0x2df272);agiHandler(_0x2df272);}catch(_0x31788f){logger['error'](_0x31788f[_0x1527('0xe')]);}});});}function listeningHandler(){console[_0x1527('0xf')]('Cally\x20Square\x20server\x20listening\x20on\x20port\x20%d!',config[_0x1527('0x6')][_0x1527('0x10')]);logger['info'](util[_0x1527('0x11')](_0x1527('0x12'),config[_0x1527('0x6')]['ip'],config[_0x1527('0x6')]['port']));}function errorHandler(_0x32286d){if(_0x32286d&&_0x32286d[_0x1527('0x13')]&&_0x32286d[_0x1527('0x14')]){logger[_0x1527('0x15')](util['format'](_0x1527('0x16'),_0x32286d[_0x1527('0x13')],_0x32286d[_0x1527('0x14')]));}else{logger[_0x1527('0x15')](util['format'](_0x1527('0x17'),_0x32286d[_0x1527('0xe')]));}}function closeHandler(){logger[_0x1527('0x18')](util[_0x1527('0x11')](_0x1527('0x19'),this['arg_1'],this[_0x1527('0x1a')],this[_0x1527('0x1b')],this[_0x1527('0x1c')],this[_0x1527('0x1d')]));try{createSquareReport(this);}catch(_0x3a3dcd){logger[_0x1527('0x15')](_0x3a3dcd[_0x1527('0xe')]);}}function timeoutHandler(){logger[_0x1527('0x18')](util['format'](_0x1527('0x1e'),this['arg_1'],this[_0x1527('0x1a')],this['callerid'],this[_0x1527('0x1c')],this[_0x1527('0x1d')]));}function hangupHandler(){logger[_0x1527('0x18')](util[_0x1527('0x11')](_0x1527('0x1f'),this[_0x1527('0x20')],this[_0x1527('0x1a')],this[_0x1527('0x1b')],this[_0x1527('0x1c')],this['uniqueid']));this[_0x1527('0x21')]=!![];}function getRoot(_0x3d562c){return parser['toJson'](_0x3d562c,{'object':!![]})[_0x1527('0x22')][_0x1527('0x23')];}function addVertex(_0x28bc3e,_0x49ef65,_0x28fa2f){_0x49ef65['agicommand']=_0x28fa2f;if(_0x49ef65[_0x1527('0x24')](_0x1527('0x25'))){_0x49ef65[_0x1527('0x26')]=parseInt(_0x49ef65[_0x1527('0x25')],0xa);}_0x28bc3e['addVertex'](_[_0x1527('0x27')](_0x49ef65,'mxCell'));}function initGraph(_0x117bcd,_0x5f11c3){var _0x4674ee=new Graph();for(var _0x3c0128 in _0x117bcd){if(_0x117bcd['hasOwnProperty'](_0x3c0128)){if(_['isArray'](_0x117bcd[_0x3c0128])){for(var _0x373f1f=0x0;_0x373f1f<_0x117bcd[_0x3c0128]['length'];_0x373f1f+=0x1){addVertex(_0x4674ee,_0x117bcd[_0x3c0128][_0x373f1f],_0x3c0128);}}else{addVertex(_0x4674ee,_0x117bcd[_0x3c0128],_0x3c0128);}}}for(var _0x1f0b2b=0x0;_0x1f0b2b<_0x5f11c3[_0x1527('0x28')];_0x1f0b2b+=0x1){if(_0x5f11c3[_0x1f0b2b][_0x1527('0x29')]&&_0x5f11c3[_0x1f0b2b][_0x1527('0x2a')]){_0x4674ee[_0x1527('0x2b')](_0x5f11c3[_0x1f0b2b][_0x1527('0x29')],_0x5f11c3[_0x1f0b2b][_0x1527('0x2a')],_0x5f11c3[_0x1f0b2b]['value']);}}return _0x4674ee;}function getSquareProject(_0x411fbe,_0x34d43d){rpc[_0x1527('0x2c')](_0x411fbe)['then'](function(_0x28844b){_0x34d43d(null,_0x28844b);})[_0x1527('0x2d')](function(_0x23584c){_0x34d43d(null,_0x23584c);});}function createSquareReport(_0x2dc4d9,_0x263abf){rpc[_0x1527('0x2e')](_0x2dc4d9)['then'](function(_0x4c723c){if(_0x263abf){_0x263abf(null,_0x4c723c);}})[_0x1527('0x2d')](function(_0x3ec532){if(_0x263abf){_0x263abf(null,_0x3ec532);}});}function setChannelVariables(_0x3905be){for(var _0x4308a0 in _0x3905be){if(_0x3905be['hasOwnProperty'](_0x4308a0)){if(_0x4308a0[_0x1527('0x2f')](_0x1527('0x30'))===0x0){_0x3905be[_0x4308a0[_0x1527('0x31')](0x4)]=_0x3905be[_0x4308a0];delete _0x3905be[_0x4308a0];}}}}function getLogFromObject(_0x48b39c){return util[_0x1527('0x32')](_0x48b39c,{'showHidden':![],'depth':null});}function agiHandler(_0x1775f4){var _0x112fcf,_0x4cf936,_0x240bc9,_0x1402cd,_0x37b204;logger['debug'](_0x1527('0x33'),JSON[_0x1527('0x34')](_0x1775f4,null,0x2));logger[_0x1527('0x18')](util[_0x1527('0x11')]('[START]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s',_0x1775f4[_0x1527('0x20')],_0x1775f4[_0x1527('0x1a')],_0x1775f4[_0x1527('0x1b')],_0x1775f4['dnid'],_0x1775f4[_0x1527('0x1d')]));_0x1775f4['on'](_0x1527('0x15'),errorHandler);_0x1775f4['on']('close',closeHandler);_0x1775f4['on'](_0x1527('0x35'),timeoutHandler);_0x1775f4[_0x1527('0x21')]=![];_0x1775f4['on']('hangup',hangupHandler);var _0x48b4b4=getSquareProject[_0x1527('0x36')](null,_0x1775f4[_0x1527('0x20')]);if(_0x48b4b4){if(_0x48b4b4[_0x1527('0x37')]){_0x112fcf=getRoot(_0x48b4b4[_0x1527('0x37')]);if(_0x112fcf&&_0x112fcf[_0x1527('0x38')]){logger[_0x1527('0x39')](_0x1527('0x23'),JSON[_0x1527('0x34')](_0x112fcf,null,0x2));_0x1775f4[_0x1527('0x3a')]=moment()[_0x1527('0x11')]('YYYY-MM-DD\x20HH:mm:ss');_0x4cf936=initGraph(_['omit'](_0x112fcf,_0x1527('0x3b')),_0x112fcf[_0x1527('0x3b')]);_0x240bc9=new Vertices(_0x1775f4,rpc,mailRpc);logger[_0x1527('0x18')](util[_0x1527('0x11')](_0x1527('0x3c'),_0x1775f4[_0x1527('0x20')],_0x1775f4['calleridname'],_0x1775f4[_0x1527('0x1b')],_0x1775f4[_0x1527('0x1c')],_0x1775f4[_0x1527('0x1d')]));_0x4cf936[_0x1527('0x3d')](_0x112fcf[_0x1527('0x38')]['id'],function(_0x5e3d0d){try{_0x5e3d0d=_0x240bc9[_0x1527('0x3e')](_0x5e3d0d);logger[_0x1527('0x39')](_0x1527('0x3f'),JSON[_0x1527('0x34')](_0x5e3d0d,null,0x2));if(_0x5e3d0d[_0x1527('0x40')]===_0x1527('0x41')){logger[_0x1527('0x18')](_0x1527('0x42'));_0x1775f4[_0x1527('0x43')]=_0x5e3d0d[_0x1527('0x43')]||_0x1775f4[_0x1527('0x43')];_0x1775f4[_0x1527('0x44')]=_0x5e3d0d[_0x1527('0x44')];_0x1775f4['priority']=_0x5e3d0d['priority']?_0x5e3d0d[_0x1527('0x45')]-0x1:0x1;return null;}else if(_0x5e3d0d&&_0x240bc9[_0x5e3d0d[_0x1527('0x40')]]){_0x37b204=_0x240bc9[_0x5e3d0d[_0x1527('0x40')]](_0x5e3d0d);logger[_0x1527('0x18')](_0x1527('0x46'),JSON[_0x1527('0x34')](_0x37b204,null,0x2));if(_0x37b204&&_0x37b204[_0x1527('0x47')]===AGI_CODE_SUCCESS&&_0x37b204[_0x1527('0x48')]!==AGI_RESULT_ERROR&&!_0x1775f4[_0x1527('0x21')]){logger[_0x1527('0x39')](_0x1527('0x46'),getLogFromObject(_0x37b204));return _[_0x1527('0x49')](_0x37b204['result'])?null:_0x37b204[_0x1527('0x48')][_0x1527('0x4a')]();}else{logger['error']('response',getLogFromObject(_0x37b204));return null;}}else{logger['error'](_0x1527('0x4b'));return null;}}catch(_0x4dd01d){logger[_0x1527('0x15')](_0x4dd01d[_0x1527('0xe')]);return null;}});if(_0x112fcf[_0x1527('0x4c')]){logger[_0x1527('0x18')](util['format']('[FINALLY\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s',_0x1775f4[_0x1527('0x20')],_0x1775f4[_0x1527('0x1a')],_0x1775f4['callerid'],_0x1775f4[_0x1527('0x1c')],_0x1775f4[_0x1527('0x1d')]));_0x4cf936['traverseBFS'](_0x112fcf[_0x1527('0x4c')]['id'],function(_0xcaddab){try{_0xcaddab=_0x240bc9[_0x1527('0x3e')](_0xcaddab);logger['debug'](_0x1527('0x3f'),JSON[_0x1527('0x34')](_0xcaddab,null,0x2));if(_0xcaddab&&_0x240bc9[_0xcaddab[_0x1527('0x40')]]){_0x37b204=_0x240bc9[_0xcaddab[_0x1527('0x40')]](_0xcaddab);if(_0x37b204){logger[_0x1527('0x39')](_0x1527('0x46'),getLogFromObject(_0x37b204));return _[_0x1527('0x49')](_0x37b204['result'])?null:_0x37b204[_0x1527('0x48')][_0x1527('0x4a')]();}else{logger[_0x1527('0x15')]('response',getLogFromObject(_0x37b204));return null;}}else{logger[_0x1527('0x15')]('agicommand\x20not\x20found');return null;}}catch(_0x3ba0e4){logger[_0x1527('0x15')](_0x3ba0e4[_0x1527('0xe')]);return null;}});}logger[_0x1527('0x18')](util[_0x1527('0x11')](_0x1527('0x4d'),_0x1775f4[_0x1527('0x20')],_0x1775f4[_0x1527('0x1a')],_0x1775f4[_0x1527('0x1b')],_0x1775f4['dnid'],_0x1775f4[_0x1527('0x1d')]));logger[_0x1527('0x18')](util['format'](_0x1527('0x4e'),_0x1775f4[_0x1527('0x43')],_0x1775f4[_0x1527('0x44')],parseInt(_0x1775f4['priority'],0xa)+0x1));_0x1775f4['continueAt'](_0x1775f4['context'],_0x1775f4['extension'],parseInt(_0x1775f4[_0x1527('0x45')],0xa)+0x1);_0x1775f4[_0x1527('0x4f')]();}}else{logger[_0x1527('0x15')](util[_0x1527('0x11')](_0x1527('0x50'),_0x1775f4[_0x1527('0x20')]));_0x1775f4[_0x1527('0x51')](_0x1775f4[_0x1527('0x43')],_0x1775f4[_0x1527('0x44')],parseInt(_0x1775f4[_0x1527('0x45')],0xa)+0x1);_0x1775f4[_0x1527('0x4f')]();}}else{logger[_0x1527('0x15')](util[_0x1527('0x11')](_0x1527('0x52'),_0x1775f4['arg_1']));_0x1775f4[_0x1527('0x51')](_0x1775f4[_0x1527('0x43')],_0x1775f4[_0x1527('0x44')],parseInt(_0x1775f4['priority'],0xa)+0x1);_0x1775f4[_0x1527('0x4f')]();}}function main(){var _0x15f1fb;return utilLicense[_0x1527('0x53')]()['then'](function(_0x320fe7){if(_0x320fe7){if(_0x320fe7[_0x1527('0x54')]){if(_0x320fe7[_0x1527('0x55')]&&_0x320fe7[_0x1527('0x55')]>0x0){logger[_0x1527('0x18')](util[_0x1527('0x11')]('[LICENSE]\x20CHANNELS:\x20%s',_0x320fe7[_0x1527('0x55')]));_0x15f1fb=_0x320fe7['callysquare'];}else{logger[_0x1527('0x18')](_0x1527('0x56'));}}else{logger[_0x1527('0x18')](_0x1527('0x57'));_0x15f1fb=-0x1;}}})[_0x1527('0x2d')](function(_0x5008d6){logger[_0x1527('0x15')](_0x1527('0x58'),_0x5008d6[_0x1527('0xe')]);})['finally'](function(){var _0x4bb7b1=require(_0x1527('0x59'))(config[_0x1527('0x6')][_0x1527('0x10')],config['agi']['ip'],_0x15f1fb);_0x4bb7b1['on'](_0x1527('0x15'),errorHandler);_0x4bb7b1['on'](_0x1527('0x5a'),listeningHandler);_0x4bb7b1['on'](_0x1527('0x5b'),connectionHandler);_0x4bb7b1['on'](_0x1527('0x4f'),closeHandler);});}main();
\ No newline at end of file
+var _0x1750=['finally','[END]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','[GOTO]\x20context:\x20%s\x20extension:\x20%s\x20priority:\x20%s','continueAt','context','Project\x20%s\x20not\x20published','Project\x20%s\x20not\x20found','getLicense','voice','callysquare','[LICENSE]\x20CHANNELS:\x20%s','[LICENSE]\x20CHANNELS:\x20UNLIMITED','[LICENSE]\x20VOICE\x20IS\x20DISABLED','[LICENSE]','./server','listening','connection','xml2json','lodash','syncho','util','moment','../../config/logger','../../config/license/util','./graph','agi','defaults','127.0.0.1','error','stack','Cally\x20Square\x20server\x20listening\x20on\x20port\x20%d!','port','info','[LISTENING]\x20Cally\x20Square\x20listening\x20%s:%d','name','message','format','[ERROR]\x20%s','[CLOSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','arg_1','callerid','uniqueid','[TIMEOUT]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','calleridname','dnid','[HANGUP]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','evtHangup','root','agicommand','hasOwnProperty','retry','maxRetry','addVertex','omit','isArray','length','source','target','getSquareProject','then','catch','agi_','substring','inspect','debug','variables','[START]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','close','hangup','sync','production','start','stringify','joinAt','YYYY-MM-DD\x20HH:mm:ss','mxCell','[START\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','traverseBFS','clear','vertex','gotoc','gotoc\x20block\x20stop\x20traverse\x20BFS','extension','priority','response','code','result','isUndefined','toString','agicommand\x20not\x20found'];(function(_0x5bab7a,_0x1cd8e0){var _0x1dc65e=function(_0x38c232){while(--_0x38c232){_0x5bab7a['push'](_0x5bab7a['shift']());}};_0x1dc65e(++_0x1cd8e0);}(_0x1750,0x1d3));var _0x0175=function(_0x4243a3,_0x447337){_0x4243a3=_0x4243a3-0x0;var _0x1b2a33=_0x1750[_0x4243a3];return _0x1b2a33;};'use strict';var parser=require(_0x0175('0x0'));var _=require(_0x0175('0x1'));var syncho=require(_0x0175('0x2'));var util=require(_0x0175('0x3'));var moment=require(_0x0175('0x4'));var config=require('../../config/environment');var logger=require(_0x0175('0x5'))('agi');var utilLicense=require(_0x0175('0x6'));var rpc=require('./rpc');var mailRpc=require('./mailRpc');var Graph=require(_0x0175('0x7'));var Vertices=require('./vertices');var AGI_CODE_SUCCESS=0xc8;var AGI_RESULT_ERROR=-0x1;config[_0x0175('0x8')]=_[_0x0175('0x9')](config[_0x0175('0x8')],{'ip':_0x0175('0xa'),'port':0x11dd});function connectionHandler(_0x23a862){process['nextTick'](function(){syncho(function(){try{setChannelVariables(_0x23a862);agiHandler(_0x23a862);}catch(_0x45dbf4){logger[_0x0175('0xb')](_0x45dbf4[_0x0175('0xc')]);}});});}function listeningHandler(){console['log'](_0x0175('0xd'),config[_0x0175('0x8')][_0x0175('0xe')]);logger[_0x0175('0xf')](util['format'](_0x0175('0x10'),config[_0x0175('0x8')]['ip'],config[_0x0175('0x8')]['port']));}function errorHandler(_0x1e8a06){if(_0x1e8a06&&_0x1e8a06[_0x0175('0x11')]&&_0x1e8a06[_0x0175('0x12')]){logger[_0x0175('0xb')](util['format']('[%s]\x20%s',_0x1e8a06['name'],_0x1e8a06[_0x0175('0x12')]));}else{logger[_0x0175('0xb')](util[_0x0175('0x13')](_0x0175('0x14'),_0x1e8a06[_0x0175('0xc')]));}}function closeHandler(){logger[_0x0175('0xf')](util['format'](_0x0175('0x15'),this[_0x0175('0x16')],this['calleridname'],this[_0x0175('0x17')],this['dnid'],this[_0x0175('0x18')]));try{createSquareReport(this);}catch(_0x5f47a1){logger[_0x0175('0xb')](_0x5f47a1['stack']);}}function timeoutHandler(){logger[_0x0175('0xf')](util[_0x0175('0x13')](_0x0175('0x19'),this[_0x0175('0x16')],this[_0x0175('0x1a')],this['callerid'],this[_0x0175('0x1b')],this[_0x0175('0x18')]));}function hangupHandler(){logger['info'](util[_0x0175('0x13')](_0x0175('0x1c'),this[_0x0175('0x16')],this[_0x0175('0x1a')],this['callerid'],this[_0x0175('0x1b')],this[_0x0175('0x18')]));this[_0x0175('0x1d')]=!![];}function getRoot(_0x9c85d0){return parser['toJson'](_0x9c85d0,{'object':!![]})['mxGraphModel'][_0x0175('0x1e')];}function addVertex(_0x1f8383,_0x53dbb8,_0xa0ef2){_0x53dbb8[_0x0175('0x1f')]=_0xa0ef2;if(_0x53dbb8[_0x0175('0x20')](_0x0175('0x21'))){_0x53dbb8[_0x0175('0x22')]=parseInt(_0x53dbb8[_0x0175('0x21')],0xa);}_0x1f8383[_0x0175('0x23')](_[_0x0175('0x24')](_0x53dbb8,'mxCell'));}function initGraph(_0x29d499,_0x188ed7){var _0xd80944=new Graph();for(var _0x1b51be in _0x29d499){if(_0x29d499[_0x0175('0x20')](_0x1b51be)){if(_[_0x0175('0x25')](_0x29d499[_0x1b51be])){for(var _0x3bc36a=0x0;_0x3bc36a<_0x29d499[_0x1b51be][_0x0175('0x26')];_0x3bc36a+=0x1){addVertex(_0xd80944,_0x29d499[_0x1b51be][_0x3bc36a],_0x1b51be);}}else{addVertex(_0xd80944,_0x29d499[_0x1b51be],_0x1b51be);}}}for(var _0x1d9599=0x0;_0x1d9599<_0x188ed7[_0x0175('0x26')];_0x1d9599+=0x1){if(_0x188ed7[_0x1d9599][_0x0175('0x27')]&&_0x188ed7[_0x1d9599][_0x0175('0x28')]){_0xd80944['addEdge'](_0x188ed7[_0x1d9599]['source'],_0x188ed7[_0x1d9599][_0x0175('0x28')],_0x188ed7[_0x1d9599]['value']);}}return _0xd80944;}function getSquareProject(_0x4b4e64,_0x3f9ffa){rpc[_0x0175('0x29')](_0x4b4e64)[_0x0175('0x2a')](function(_0x2585ec){_0x3f9ffa(null,_0x2585ec);})[_0x0175('0x2b')](function(_0x4f682e){_0x3f9ffa(null,_0x4f682e);});}function createSquareReport(_0x54d7e0,_0x2178ef){rpc['createSquareReport'](_0x54d7e0)['then'](function(_0x5491d5){if(_0x2178ef){_0x2178ef(null,_0x5491d5);}})[_0x0175('0x2b')](function(_0x1bd789){if(_0x2178ef){_0x2178ef(null,_0x1bd789);}});}function setChannelVariables(_0x3bda36){for(var _0xd49bdb in _0x3bda36){if(_0x3bda36[_0x0175('0x20')](_0xd49bdb)){if(_0xd49bdb['indexOf'](_0x0175('0x2c'))===0x0){_0x3bda36[_0xd49bdb[_0x0175('0x2d')](0x4)]=_0x3bda36[_0xd49bdb];delete _0x3bda36[_0xd49bdb];}}}}function getLogFromObject(_0x230d56){return util[_0x0175('0x2e')](_0x230d56,{'showHidden':![],'depth':null});}function agiHandler(_0x3548b2){var _0x57e7e0,_0x42ee9a,_0x42677f,_0x1bba92,_0x537e91;logger[_0x0175('0x2f')](_0x0175('0x30'),JSON['stringify'](_0x3548b2,null,0x2));logger['info'](util[_0x0175('0x13')](_0x0175('0x31'),_0x3548b2[_0x0175('0x16')],_0x3548b2[_0x0175('0x1a')],_0x3548b2[_0x0175('0x17')],_0x3548b2[_0x0175('0x1b')],_0x3548b2[_0x0175('0x18')]));_0x3548b2['on']('error',errorHandler);_0x3548b2['on'](_0x0175('0x32'),closeHandler);_0x3548b2['on']('timeout',timeoutHandler);_0x3548b2[_0x0175('0x1d')]=![];_0x3548b2['on'](_0x0175('0x33'),hangupHandler);var _0x67adfc=getSquareProject[_0x0175('0x34')](null,_0x3548b2['arg_1']);if(_0x67adfc){if(_0x67adfc[_0x0175('0x35')]){_0x57e7e0=getRoot(_0x67adfc[_0x0175('0x35')]);if(_0x57e7e0&&_0x57e7e0[_0x0175('0x36')]){logger['debug']('root',JSON[_0x0175('0x37')](_0x57e7e0,null,0x2));_0x3548b2[_0x0175('0x38')]=moment()[_0x0175('0x13')](_0x0175('0x39'));_0x42ee9a=initGraph(_[_0x0175('0x24')](_0x57e7e0,_0x0175('0x3a')),_0x57e7e0['mxCell']);_0x42677f=new Vertices(_0x3548b2,rpc,mailRpc);logger[_0x0175('0xf')](util[_0x0175('0x13')](_0x0175('0x3b'),_0x3548b2[_0x0175('0x16')],_0x3548b2[_0x0175('0x1a')],_0x3548b2['callerid'],_0x3548b2[_0x0175('0x1b')],_0x3548b2[_0x0175('0x18')]));_0x42ee9a[_0x0175('0x3c')](_0x57e7e0[_0x0175('0x36')]['id'],function(_0xd558b1){try{_0xd558b1=_0x42677f[_0x0175('0x3d')](_0xd558b1);logger[_0x0175('0x2f')](_0x0175('0x3e'),JSON[_0x0175('0x37')](_0xd558b1,null,0x2));if(_0xd558b1[_0x0175('0x1f')]===_0x0175('0x3f')){logger[_0x0175('0xf')](_0x0175('0x40'));_0x3548b2['context']=_0xd558b1['context']||_0x3548b2['context'];_0x3548b2[_0x0175('0x41')]=_0xd558b1[_0x0175('0x41')];_0x3548b2[_0x0175('0x42')]=_0xd558b1[_0x0175('0x42')]?_0xd558b1[_0x0175('0x42')]-0x1:0x1;return null;}else if(_0xd558b1&&_0x42677f[_0xd558b1[_0x0175('0x1f')]]){_0x537e91=_0x42677f[_0xd558b1['agicommand']](_0xd558b1);logger[_0x0175('0xf')](_0x0175('0x43'),JSON['stringify'](_0x537e91,null,0x2));if(_0x537e91&&_0x537e91[_0x0175('0x44')]===AGI_CODE_SUCCESS&&_0x537e91[_0x0175('0x45')]!==AGI_RESULT_ERROR&&!_0x3548b2['evtHangup']){logger[_0x0175('0x2f')]('response',getLogFromObject(_0x537e91));return _[_0x0175('0x46')](_0x537e91[_0x0175('0x45')])?null:_0x537e91[_0x0175('0x45')][_0x0175('0x47')]();}else{logger[_0x0175('0xb')](_0x0175('0x43'),getLogFromObject(_0x537e91));return null;}}else{logger[_0x0175('0xb')](_0x0175('0x48'));return null;}}catch(_0x181513){logger[_0x0175('0xb')](_0x181513['stack']);return null;}});if(_0x57e7e0[_0x0175('0x49')]){logger['info'](util[_0x0175('0x13')]('[FINALLY\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s',_0x3548b2['arg_1'],_0x3548b2['calleridname'],_0x3548b2[_0x0175('0x17')],_0x3548b2[_0x0175('0x1b')],_0x3548b2['uniqueid']));_0x42ee9a[_0x0175('0x3c')](_0x57e7e0[_0x0175('0x49')]['id'],function(_0x280de7){try{_0x280de7=_0x42677f[_0x0175('0x3d')](_0x280de7);logger['debug'](_0x0175('0x3e'),JSON['stringify'](_0x280de7,null,0x2));if(_0x280de7&&_0x42677f[_0x280de7[_0x0175('0x1f')]]){_0x537e91=_0x42677f[_0x280de7[_0x0175('0x1f')]](_0x280de7);if(_0x537e91){logger[_0x0175('0x2f')](_0x0175('0x43'),getLogFromObject(_0x537e91));return _['isUndefined'](_0x537e91[_0x0175('0x45')])?null:_0x537e91[_0x0175('0x45')]['toString']();}else{logger[_0x0175('0xb')]('response',getLogFromObject(_0x537e91));return null;}}else{logger[_0x0175('0xb')](_0x0175('0x48'));return null;}}catch(_0x19b0a7){logger[_0x0175('0xb')](_0x19b0a7[_0x0175('0xc')]);return null;}});}logger[_0x0175('0xf')](util[_0x0175('0x13')](_0x0175('0x4a'),_0x3548b2['arg_1'],_0x3548b2[_0x0175('0x1a')],_0x3548b2[_0x0175('0x17')],_0x3548b2['dnid'],_0x3548b2[_0x0175('0x18')]));logger[_0x0175('0xf')](util[_0x0175('0x13')](_0x0175('0x4b'),_0x3548b2['context'],_0x3548b2[_0x0175('0x41')],parseInt(_0x3548b2[_0x0175('0x42')],0xa)+0x1));_0x3548b2[_0x0175('0x4c')](_0x3548b2[_0x0175('0x4d')],_0x3548b2[_0x0175('0x41')],parseInt(_0x3548b2[_0x0175('0x42')],0xa)+0x1);_0x3548b2[_0x0175('0x32')]();}}else{logger[_0x0175('0xb')](util['format'](_0x0175('0x4e'),_0x3548b2[_0x0175('0x16')]));_0x3548b2[_0x0175('0x4c')](_0x3548b2['context'],_0x3548b2[_0x0175('0x41')],parseInt(_0x3548b2[_0x0175('0x42')],0xa)+0x1);_0x3548b2['close']();}}else{logger[_0x0175('0xb')](util['format'](_0x0175('0x4f'),_0x3548b2[_0x0175('0x16')]));_0x3548b2[_0x0175('0x4c')](_0x3548b2['context'],_0x3548b2[_0x0175('0x41')],parseInt(_0x3548b2[_0x0175('0x42')],0xa)+0x1);_0x3548b2[_0x0175('0x32')]();}}function main(){var _0x53b42a;return utilLicense[_0x0175('0x50')]()[_0x0175('0x2a')](function(_0x3570cb){if(_0x3570cb){if(_0x3570cb[_0x0175('0x51')]){if(_0x3570cb[_0x0175('0x52')]&&_0x3570cb['callysquare']>0x0){logger['info'](util[_0x0175('0x13')](_0x0175('0x53'),_0x3570cb[_0x0175('0x52')]));_0x53b42a=_0x3570cb[_0x0175('0x52')];}else{logger[_0x0175('0xf')](_0x0175('0x54'));}}else{logger[_0x0175('0xf')](_0x0175('0x55'));_0x53b42a=-0x1;}}})['catch'](function(_0x545614){logger[_0x0175('0xb')](_0x0175('0x56'),_0x545614[_0x0175('0xc')]);})[_0x0175('0x49')](function(){var _0x70bcb8=require(_0x0175('0x57'))(config[_0x0175('0x8')][_0x0175('0xe')],config['agi']['ip'],_0x53b42a);_0x70bcb8['on'](_0x0175('0xb'),errorHandler);_0x70bcb8['on'](_0x0175('0x58'),listeningHandler);_0x70bcb8['on'](_0x0175('0x59'),connectionHandler);_0x70bcb8['on'](_0x0175('0x32'),closeHandler);});}main();
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf1e7=['then','message','result','sendMailMessage','SendMail','jayson/promise','client'];(function(_0x593175,_0x4fd3b9){var _0x20fdf1=function(_0x424a8a){while(--_0x424a8a){_0x593175['push'](_0x593175['shift']());}};_0x20fdf1(++_0x4fd3b9);}(_0xf1e7,0x155));var _0x7f1e=function(_0x413feb,_0x10477f){_0x413feb=_0x413feb-0x0;var _0x40ee88=_0xf1e7[_0x413feb];return _0x40ee88;};'use strict';var BPromise=require('bluebird');var jayson=require(_0x7f1e('0x0'));var client=jayson[_0x7f1e('0x1')]['http']({'port':0x232b});function request(_0x3794d6,_0x429fcd){return new BPromise(function(_0x2b7ab0,_0xc3d6c1){return client['request'](_0x3794d6,_0x429fcd)[_0x7f1e('0x2')](function(_0x531de4){if(_0x531de4['error']){return _0xc3d6c1(_0x531de4['error'][_0x7f1e('0x3')]);}else{return _0x2b7ab0(_0x531de4[_0x7f1e('0x4')]);}})['catch'](function(_0x58afad){return _0xc3d6c1(_0x58afad);});});}exports[_0x7f1e('0x5')]=function(_0x10ed00,_0x13f1cf){return request(_0x7f1e('0x6'),{'account':_0x10ed00,'message':_0x13f1cf});};
\ No newline at end of file
+var _0x2484=['message','result','SendMail','client','http','request','then','error'];(function(_0x182d80,_0xfd0969){var _0x1e8dff=function(_0x19c302){while(--_0x19c302){_0x182d80['push'](_0x182d80['shift']());}};_0x1e8dff(++_0xfd0969);}(_0x2484,0xa3));var _0x4248=function(_0x4bfade,_0xb26c0e){_0x4bfade=_0x4bfade-0x0;var _0x272465=_0x2484[_0x4bfade];return _0x272465;};'use strict';var BPromise=require('bluebird');var jayson=require('jayson/promise');var client=jayson[_0x4248('0x0')][_0x4248('0x1')]({'port':0x232b});function request(_0x3122ed,_0x3df2cb){return new BPromise(function(_0x568dd0,_0x60a0f3){return client[_0x4248('0x2')](_0x3122ed,_0x3df2cb)[_0x4248('0x3')](function(_0x5dcbc2){if(_0x5dcbc2['error']){return _0x60a0f3(_0x5dcbc2[_0x4248('0x4')][_0x4248('0x5')]);}else{return _0x568dd0(_0x5dcbc2[_0x4248('0x6')]);}})['catch'](function(_0x886a77){return _0x60a0f3(_0x886a77);});});}exports['sendMailMessage']=function(_0xb12be0,_0xe534b7){return request(_0x4248('0x7'),{'account':_0xb12be0,'message':_0xe534b7});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xad5a=['_transform','\x0d\x0a\x0d\x0a','toString','_localBuffer','indexOf','substring','length','split','slice','trim','emit','headers','line','exports','util','stream','Transform','call','_inBody','inherits'];(function(_0x42100a,_0x206948){var _0x4809ec=function(_0x18b560){while(--_0x18b560){_0x42100a['push'](_0x42100a['shift']());}};_0x4809ec(++_0x206948);}(_0xad5a,0x18a));var _0xaad5=function(_0xee1137,_0x37bf0e){_0xee1137=_0xee1137-0x0;var _0x3264b2=_0xad5a[_0xee1137];return _0x3264b2;};'use strict';var util=require(_0xaad5('0x0'));var Transform=require(_0xaad5('0x1'))[_0xaad5('0x2')];function AGIReply(_0x37ebf8){Transform[_0xaad5('0x3')](this,_0x37ebf8);this['_localBuffer']='';this[_0xaad5('0x4')]=![];}util[_0xaad5('0x5')](AGIReply,Transform);AGIReply['prototype'][_0xaad5('0x6')]=function(_0x5e5776,_0x5aa18b,_0x3415ed){var _0xd1aa25='\x0a',_0x307966=['\x0a\x0a',_0xaad5('0x7')],_0x142925=-0x1,_0x4aa5ad=-0x1,_0xbdd3fd='',_0x19f660=0x0,_0x523565='',_0x5428f2='';this['_localBuffer']+=_0x5e5776[_0xaad5('0x8')]();_0x523565=this[_0xaad5('0x9')];if(!this[_0xaad5('0x4')]){_0x19f660=0x0;while(_0x307966[_0x19f660]){while((_0x4aa5ad=_0x523565[_0xaad5('0xa')](_0x307966[_0x19f660]))!=-0x1){_0xbdd3fd=_0x307966[_0x19f660];_0x5428f2=_0x523565[_0xaad5('0xb')](0x0,_0x4aa5ad);_0x523565=_0x523565[_0xaad5('0xb')](_0x4aa5ad+_0xbdd3fd[_0xaad5('0xc')]);var _0x124a7b=_0x5428f2[_0xaad5('0xd')](_0xd1aa25),_0x4d6635=0x0,_0x73512c={},_0x5dea1e='',_0x93deb2='',_0x55ee3d=-0x1;while(_0x124a7b[_0x4d6635]){_0x55ee3d=_0x124a7b[_0x4d6635][_0xaad5('0xa')](':');if(_0x55ee3d!=-0x1){_0x5dea1e=_0x124a7b[_0x4d6635][_0xaad5('0xe')](0x0,_0x55ee3d)[_0xaad5('0xf')]();_0x93deb2=_0x124a7b[_0x4d6635][_0xaad5('0xe')](_0x55ee3d+0x1)[_0xaad5('0xf')]();if(_0x5dea1e[_0xaad5('0xc')]>0x0){_0x73512c[_0x5dea1e]=_0x93deb2;}}else{}_0x4d6635++;}this[_0xaad5('0x10')](_0xaad5('0x11'),_0x73512c);this[_0xaad5('0x4')]=!![];}_0x19f660++;}this[_0xaad5('0x9')]=_0x523565;}else{while((_0x142925=_0x523565[_0xaad5('0xa')](_0xd1aa25))!=-0x1){_0x5428f2=_0x523565[_0xaad5('0xb')](0x0,_0x142925);this[_0xaad5('0x10')](_0xaad5('0x12'),_0x5428f2);_0x523565=_0x523565['substring'](_0x142925+_0xd1aa25[_0xaad5('0xc')]);}this[_0xaad5('0x9')]=_0x523565;}_0x3415ed();};module[_0xaad5('0x13')]=AGIReply;
\ No newline at end of file
+var _0x9792=['indexOf','substring','length','split','trim','emit','line','exports','util','Transform','call','_localBuffer','_inBody','inherits','_transform'];(function(_0x3888cc,_0x255fa3){var _0x3749f2=function(_0xba138){while(--_0xba138){_0x3888cc['push'](_0x3888cc['shift']());}};_0x3749f2(++_0x255fa3);}(_0x9792,0x9e));var _0x2979=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x9792[_0x321bb2];return _0x9c12ed;};'use strict';var util=require(_0x2979('0x0'));var Transform=require('stream')[_0x2979('0x1')];function AGIReply(_0x1e49df){Transform[_0x2979('0x2')](this,_0x1e49df);this[_0x2979('0x3')]='';this[_0x2979('0x4')]=![];}util[_0x2979('0x5')](AGIReply,Transform);AGIReply['prototype'][_0x2979('0x6')]=function(_0x583e3a,_0x64def0,_0x128b5a){var _0x1feee8='\x0a',_0x32accd=['\x0a\x0a','\x0d\x0a\x0d\x0a'],_0x2c701c=-0x1,_0x139cd1=-0x1,_0x1ba8bd='',_0x4920f8=0x0,_0x466037='',_0x4c1ba7='';this[_0x2979('0x3')]+=_0x583e3a['toString']();_0x466037=this[_0x2979('0x3')];if(!this[_0x2979('0x4')]){_0x4920f8=0x0;while(_0x32accd[_0x4920f8]){while((_0x139cd1=_0x466037[_0x2979('0x7')](_0x32accd[_0x4920f8]))!=-0x1){_0x1ba8bd=_0x32accd[_0x4920f8];_0x4c1ba7=_0x466037[_0x2979('0x8')](0x0,_0x139cd1);_0x466037=_0x466037[_0x2979('0x8')](_0x139cd1+_0x1ba8bd[_0x2979('0x9')]);var _0x1aa4b2=_0x4c1ba7[_0x2979('0xa')](_0x1feee8),_0xa5b066=0x0,_0x5e9eaf={},_0x12b996='',_0x42be65='',_0x5efc0e=-0x1;while(_0x1aa4b2[_0xa5b066]){_0x5efc0e=_0x1aa4b2[_0xa5b066]['indexOf'](':');if(_0x5efc0e!=-0x1){_0x12b996=_0x1aa4b2[_0xa5b066]['slice'](0x0,_0x5efc0e)[_0x2979('0xb')]();_0x42be65=_0x1aa4b2[_0xa5b066]['slice'](_0x5efc0e+0x1)['trim']();if(_0x12b996['length']>0x0){_0x5e9eaf[_0x12b996]=_0x42be65;}}else{}_0xa5b066++;}this[_0x2979('0xc')]('headers',_0x5e9eaf);this[_0x2979('0x4')]=!![];}_0x4920f8++;}this[_0x2979('0x3')]=_0x466037;}else{while((_0x2c701c=_0x466037['indexOf'](_0x1feee8))!=-0x1){_0x4c1ba7=_0x466037[_0x2979('0x8')](0x0,_0x2c701c);this['emit'](_0x2979('0xd'),_0x4c1ba7);_0x466037=_0x466037[_0x2979('0x8')](_0x2c701c+_0x1feee8['length']);}this[_0x2979('0x3')]=_0x466037;}_0x128b5a();};module[_0x2979('0xe')]=AGIReply;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd157=['LoginUser','agentPause','agentUnpause','LogoutUser','bluebird','lodash','util','client','http','request','error','message','result','getSquareProject','ShowSquareProject','production','getMailAccountById','ShowMailAccount','MailServerOut','Smtp','name','email','ShowVoiceQueue','getVariableById','ShowVariable','getSquareOdbcById','ShowSquareOdbc','dsn','getUserById','ShowTrunk','getSoundById','ShowSound','save_name','getIntervalById','ShowInterval','Interval','Intervals','getSmsAccountById','ShowSmsAccount','createSmsMessage','CreateSmsMessage','createSquareDetailsReport','createSquareReport','merge','arg_1','arg_2','format','YYYY-MM-DD\x20HH:mm:ss','createSquareRecording','createSquareMessage','CreateSquareMessage','ShowCmHopper','phone','ListId','then','getPauseById','ShowPause','agentLogin'];(function(_0x4e13fe,_0x3643ef){var _0x15bb96=function(_0x384dd2){while(--_0x384dd2){_0x4e13fe['push'](_0x4e13fe['shift']());}};_0x15bb96(++_0x3643ef);}(_0xd157,0xec));var _0x7d15=function(_0x5e0201,_0x2cff3a){_0x5e0201=_0x5e0201-0x0;var _0x5cfa5a=_0xd157[_0x5e0201];return _0x5cfa5a;};'use strict';var BPromise=require(_0x7d15('0x0'));var moment=require('moment');var _=require(_0x7d15('0x1'));var util=require(_0x7d15('0x2'));var jayson=require('jayson/promise');var client=jayson[_0x7d15('0x3')][_0x7d15('0x4')]({'port':0x2329});function request(_0x1e5372,_0x2dc553){return new BPromise(function(_0x574a97,_0x751ee9){return client[_0x7d15('0x5')](_0x1e5372,_0x2dc553)['then'](function(_0x4c273f){if(_0x4c273f[_0x7d15('0x6')]){return _0x751ee9(_0x4c273f['error'][_0x7d15('0x7')]);}else{return _0x574a97(_0x4c273f[_0x7d15('0x8')]);}})['catch'](function(_0x3121ea){return _0x751ee9(_0x3121ea);});});}exports[_0x7d15('0x9')]=function(_0x1ee493){return request(_0x7d15('0xa'),{'options':{'raw':![],'where':{'name':_0x1ee493},'attributes':[_0x7d15('0xb')]}});};exports[_0x7d15('0xc')]=function(_0x198a97){return request(_0x7d15('0xd'),{'options':{'raw':![],'where':{'id':_0x198a97},'include':[{'model':_0x7d15('0xe'),'as':_0x7d15('0xf')}],'attributes':['id',_0x7d15('0x10'),_0x7d15('0x11')]}});};exports['getSquareProjectById']=function(_0x54d279){return request(_0x7d15('0xa'),{'options':{'where':{'id':_0x54d279},'attributes':['name']}});};exports['getVoiceQueueById']=function(_0x5417c0){return request(_0x7d15('0x12'),{'options':{'where':{'id':_0x5417c0},'attributes':[_0x7d15('0x10')]}});};exports[_0x7d15('0x13')]=function(_0x1efb79){return request(_0x7d15('0x14'),{'options':{'where':{'id':_0x1efb79},'attributes':[_0x7d15('0x10')]}});};exports[_0x7d15('0x15')]=function(_0x12df2c){return request(_0x7d15('0x16'),{'options':{'where':{'id':_0x12df2c},'attributes':[_0x7d15('0x17')]}});};exports[_0x7d15('0x18')]=function(_0x4c8061){return request('ShowUser',{'options':{'where':{'id':_0x4c8061},'attributes':['name']}});};exports['getTrunkById']=function(_0x5c326d){return request(_0x7d15('0x19'),{'options':{'where':{'id':_0x5c326d},'attributes':['name']}});};exports[_0x7d15('0x1a')]=function(_0x154887){return request(_0x7d15('0x1b'),{'options':{'where':{'id':_0x154887},'attributes':[_0x7d15('0x1c')]}});};exports[_0x7d15('0x1d')]=function(_0x4fcdc1){return request(_0x7d15('0x1e'),{'options':{'raw':![],'where':{'id':_0x4fcdc1},'include':[{'model':_0x7d15('0x1f'),'as':_0x7d15('0x20')}]}});};exports[_0x7d15('0x21')]=function(_0x54a1c3){return request(_0x7d15('0x22'),{'options':{'where':{'id':_0x54a1c3},'attributes':['id',_0x7d15('0x10')]}});};exports[_0x7d15('0x23')]=function(_0x5c361d){return request(_0x7d15('0x24'),{'body':_0x5c361d});};exports[_0x7d15('0x25')]=function(_0x211b92){return request('CreateSquareDetailsReport',{'body':_0x211b92});};exports[_0x7d15('0x26')]=function(_0x3cd2a0){return request('CreateSquareReport',{'body':_[_0x7d15('0x27')](_0x3cd2a0,{'project_name':_0x3cd2a0[_0x7d15('0x28')],'prev_project_name':_0x3cd2a0[_0x7d15('0x29')]||'','is_subproject':_0x3cd2a0[_0x7d15('0x29')]?!![]:![],'leaveAt':moment()[_0x7d15('0x2a')](_0x7d15('0x2b'))})});};exports[_0x7d15('0x2c')]=function(_0x5e3f06){return request('CreateSquareRecording',{'body':_0x5e3f06});};exports[_0x7d15('0x2d')]=function(_0x1c2617){return request(_0x7d15('0x2e'),{'body':_0x1c2617});};exports['createCmContact']=function(_0xf32243){return request(_0x7d15('0x2f'),{'options':{'raw':![],'where':{'phone':_0xf32243[_0x7d15('0x30')],'ListId':_0xf32243[_0x7d15('0x31')]}}})[_0x7d15('0x32')](function(_0x4fc7c0){if(_0x4fc7c0){return _0x4fc7c0;}return request('CreateCmContact',{'body':_0xf32243});});};exports[_0x7d15('0x33')]=function(_0x258023){return request(_0x7d15('0x34'),{'options':{'where':{'id':_0x258023},'attributes':['name']}});};exports[_0x7d15('0x35')]=function(_0x33b519,_0x32c02a){return request(_0x7d15('0x36'),{'body':{'interface':_0x32c02a},'options':{'where':_0x33b519}});};exports[_0x7d15('0x37')]=function(_0x5e9ac2,_0x21367a,_0x1658d0){return request('PauseUser',{'body':{'type':_0x21367a,'uniqueid':_0x1658d0},'options':{'where':_0x5e9ac2}});};exports[_0x7d15('0x38')]=function(_0x446ba9){return request('UnpauseUser',{'body':{},'options':{'where':_0x446ba9}});};exports['agentLogout']=function(_0x10e10d){return request(_0x7d15('0x39'),{'body':{},'options':{'where':_0x10e10d}});};
\ No newline at end of file
+var _0x53a9=['CreateSmsMessage','createSquareDetailsReport','createSquareReport','CreateSquareReport','merge','arg_1','arg_2','format','YYYY-MM-DD\x20HH:mm:ss','createSquareRecording','CreateSquareRecording','createSquareMessage','CreateSquareMessage','ShowCmHopper','ListId','getPauseById','ShowPause','agentLogin','agentPause','PauseUser','agentUnpause','UnpauseUser','agentLogout','LogoutUser','bluebird','moment','jayson/promise','http','request','then','error','message','result','getSquareProject','production','getMailAccountById','ShowMailAccount','MailServerOut','Smtp','getSquareProjectById','ShowSquareProject','getVoiceQueueById','name','getVariableById','ShowVariable','getSquareOdbcById','dsn','getUserById','getTrunkById','getSoundById','ShowSound','save_name','getIntervalById','Interval','Intervals','getSmsAccountById','ShowSmsAccount','createSmsMessage'];(function(_0x513aa5,_0x1fba79){var _0x1a1a7c=function(_0x240e3f){while(--_0x240e3f){_0x513aa5['push'](_0x513aa5['shift']());}};_0x1a1a7c(++_0x1fba79);}(_0x53a9,0x174));var _0x953a=function(_0x3b01ae,_0x57a5b1){_0x3b01ae=_0x3b01ae-0x0;var _0x72e00c=_0x53a9[_0x3b01ae];return _0x72e00c;};'use strict';var BPromise=require(_0x953a('0x0'));var moment=require(_0x953a('0x1'));var _=require('lodash');var util=require('util');var jayson=require(_0x953a('0x2'));var client=jayson['client'][_0x953a('0x3')]({'port':0x2329});function request(_0x4a3792,_0x3f119e){return new BPromise(function(_0x1d90ff,_0x36215d){return client[_0x953a('0x4')](_0x4a3792,_0x3f119e)[_0x953a('0x5')](function(_0x2a7320){if(_0x2a7320[_0x953a('0x6')]){return _0x36215d(_0x2a7320[_0x953a('0x6')][_0x953a('0x7')]);}else{return _0x1d90ff(_0x2a7320[_0x953a('0x8')]);}})['catch'](function(_0x432738){return _0x36215d(_0x432738);});});}exports[_0x953a('0x9')]=function(_0x2de49e){return request('ShowSquareProject',{'options':{'raw':![],'where':{'name':_0x2de49e},'attributes':[_0x953a('0xa')]}});};exports[_0x953a('0xb')]=function(_0x5b2159){return request(_0x953a('0xc'),{'options':{'raw':![],'where':{'id':_0x5b2159},'include':[{'model':_0x953a('0xd'),'as':_0x953a('0xe')}],'attributes':['id','name','email']}});};exports[_0x953a('0xf')]=function(_0x523b3a){return request(_0x953a('0x10'),{'options':{'where':{'id':_0x523b3a},'attributes':['name']}});};exports[_0x953a('0x11')]=function(_0x12eacd){return request('ShowVoiceQueue',{'options':{'where':{'id':_0x12eacd},'attributes':[_0x953a('0x12')]}});};exports[_0x953a('0x13')]=function(_0x4891d3){return request(_0x953a('0x14'),{'options':{'where':{'id':_0x4891d3},'attributes':[_0x953a('0x12')]}});};exports[_0x953a('0x15')]=function(_0x13479e){return request('ShowSquareOdbc',{'options':{'where':{'id':_0x13479e},'attributes':[_0x953a('0x16')]}});};exports[_0x953a('0x17')]=function(_0xf13165){return request('ShowUser',{'options':{'where':{'id':_0xf13165},'attributes':[_0x953a('0x12')]}});};exports[_0x953a('0x18')]=function(_0x48e263){return request('ShowTrunk',{'options':{'where':{'id':_0x48e263},'attributes':[_0x953a('0x12')]}});};exports[_0x953a('0x19')]=function(_0x38f5d5){return request(_0x953a('0x1a'),{'options':{'where':{'id':_0x38f5d5},'attributes':[_0x953a('0x1b')]}});};exports[_0x953a('0x1c')]=function(_0x14b596){return request('ShowInterval',{'options':{'raw':![],'where':{'id':_0x14b596},'include':[{'model':_0x953a('0x1d'),'as':_0x953a('0x1e')}]}});};exports[_0x953a('0x1f')]=function(_0x2c2db7){return request(_0x953a('0x20'),{'options':{'where':{'id':_0x2c2db7},'attributes':['id','name']}});};exports[_0x953a('0x21')]=function(_0x103767){return request(_0x953a('0x22'),{'body':_0x103767});};exports[_0x953a('0x23')]=function(_0x534390){return request('CreateSquareDetailsReport',{'body':_0x534390});};exports[_0x953a('0x24')]=function(_0x4e78de){return request(_0x953a('0x25'),{'body':_[_0x953a('0x26')](_0x4e78de,{'project_name':_0x4e78de[_0x953a('0x27')],'prev_project_name':_0x4e78de[_0x953a('0x28')]||'','is_subproject':_0x4e78de[_0x953a('0x28')]?!![]:![],'leaveAt':moment()[_0x953a('0x29')](_0x953a('0x2a'))})});};exports[_0x953a('0x2b')]=function(_0x3d43ee){return request(_0x953a('0x2c'),{'body':_0x3d43ee});};exports[_0x953a('0x2d')]=function(_0x5b8244){return request(_0x953a('0x2e'),{'body':_0x5b8244});};exports['createCmContact']=function(_0x26b73d){return request(_0x953a('0x2f'),{'options':{'raw':![],'where':{'phone':_0x26b73d['phone'],'ListId':_0x26b73d[_0x953a('0x30')]}}})[_0x953a('0x5')](function(_0x47e91d){if(_0x47e91d){return _0x47e91d;}return request('CreateCmContact',{'body':_0x26b73d});});};exports[_0x953a('0x31')]=function(_0x335bf6){return request(_0x953a('0x32'),{'options':{'where':{'id':_0x335bf6},'attributes':[_0x953a('0x12')]}});};exports[_0x953a('0x33')]=function(_0x380554,_0x48db25){return request('LoginUser',{'body':{'interface':_0x48db25},'options':{'where':_0x380554}});};exports[_0x953a('0x34')]=function(_0x3da8ce,_0x4e4221,_0x4ad41b){return request(_0x953a('0x35'),{'body':{'type':_0x4e4221,'uniqueid':_0x4ad41b},'options':{'where':_0x3da8ce}});};exports[_0x953a('0x36')]=function(_0xf57666){return request(_0x953a('0x37'),{'body':{},'options':{'where':_0xf57666}});};exports[_0x953a('0x38')]=function(_0x430220){return request(_0x953a('0x39'),{'body':{},'options':{'where':_0x430220}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6347=['./lex','./polly'];(function(_0x45f951,_0x2750c8){var _0x24756c=function(_0x31c931){while(--_0x31c931){_0x45f951['push'](_0x45f951['shift']());}};_0x24756c(++_0x2750c8);}(_0x6347,0x1c9));var _0x7634=function(_0x1ce127,_0x45f404){_0x1ce127=_0x1ce127-0x0;var _0x37fd9f=_0x6347[_0x1ce127];return _0x37fd9f;};var polly=require(_0x7634('0x0'));var lex=require(_0x7634('0x1'));module['exports']={'polly':polly,'lex':lex};
\ No newline at end of file
+var _0x0967=['./polly','exports'];(function(_0x470b0a,_0x2889d6){var _0x4463f6=function(_0x2b5f0e){while(--_0x2b5f0e){_0x470b0a['push'](_0x470b0a['shift']());}};_0x4463f6(++_0x2889d6);}(_0x0967,0x100));var _0x7096=function(_0x31e12b,_0x58f00c){_0x31e12b=_0x31e12b-0x0;var _0xe4333e=_0x0967[_0x31e12b];return _0xe4333e;};var polly=require(_0x7096('0x0'));var lex=require('./lex');module[_0x7096('0x1')]={'polly':polly,'lex':lex};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['exports','./lib/api'];(function(_0x34bc30,_0x177cb0){var _0x5706de=function(_0x535a8c){while(--_0x535a8c){_0x34bc30['push'](_0x34bc30['shift']());}};_0x5706de(++_0x177cb0);}(_0xa9e0,0x123));var _0x0a9e=function(_0x47e7cb,_0x4c1b8d){_0x47e7cb=_0x47e7cb-0x0;var _0x2a8874=_0xa9e0[_0x47e7cb];return _0x2a8874;};'use strict';var lex=require(_0x0a9e('0x0'));module[_0x0a9e('0x1')]=function(_0x29929c,_0x5dd881,_0x550fbc,_0x18d5c9,_0x4ce2f1,_0x333808){return lex(_0x29929c,_0x5dd881,_0x550fbc,_0x18d5c9,_0x4ce2f1,_0x333808);};
\ No newline at end of file
+var _0x9c00=['./lib/api','exports'];(function(_0x571f5a,_0x4f7f25){var _0x45508e=function(_0x14fa9c){while(--_0x14fa9c){_0x571f5a['push'](_0x571f5a['shift']());}};_0x45508e(++_0x4f7f25);}(_0x9c00,0x1a0));var _0x09c0=function(_0x4032e3,_0x6d6449){_0x4032e3=_0x4032e3-0x0;var _0x34f51a=_0x9c00[_0x4032e3];return _0x34f51a;};'use strict';var lex=require(_0x09c0('0x0'));module[_0x09c0('0x1')]=function(_0x4dff21,_0x5e32e7,_0xe0d293,_0x8c9907,_0x5d1967,_0x220c0c){return lex(_0x4dff21,_0x5e32e7,_0xe0d293,_0x8c9907,_0x5d1967,_0x220c0c);};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['LexRuntime','bluebird','aws-sdk','slots','hasOwnProperty'];(function(_0x2e73cc,_0x416f2b){var _0x105034=function(_0x47fcab){while(--_0x47fcab){_0x2e73cc['push'](_0x2e73cc['shift']());}};_0x105034(++_0x416f2b);}(_0xa9e0,0x123));var _0x0a9e=function(_0x4e1d03,_0x786f3a){_0x4e1d03=_0x4e1d03-0x0;var _0x362d4b=_0xa9e0[_0x4e1d03];return _0x362d4b;};'use strict';var BPromise=require(_0x0a9e('0x0'));var AWS=require(_0x0a9e('0x1'));function lexResult(_0x29929c,_0x5dd881){return new BPromise(function(_0x550fbc,_0x18d5c9){_0x29929c['postText'](_0x5dd881,function(_0x333808,_0x432180){if(_0x333808){_0x18d5c9(_0x333808);}if(_0x432180[_0x0a9e('0x2')]){for(const _0x991246 in _0x432180[_0x0a9e('0x2')]){if(_0x432180['slots'][_0x0a9e('0x3')](_0x991246)){var _0x441e3a=_0x432180[_0x0a9e('0x2')][_0x991246];_0x432180['slot_'+_0x991246]=_0x441e3a;}}}_0x550fbc(_0x432180);});});}module['exports']=function(_0xe42b77,_0x56465b,_0x52cace,_0x39753a,_0xf81284,_0x307b3e){var _0x3ab53f=new AWS[(_0x0a9e('0x4'))]({'accessKeyId':_0x56465b,'secretAccessKey':_0x52cace,'region':_0x39753a});var _0xbd1168={'botAlias':'$LATEST','botName':_0x307b3e,'inputText':_0xf81284,'userId':_0xe42b77};return lexResult(_0x3ab53f,_0xbd1168);};
\ No newline at end of file
+var _0xa9e0=['LexRuntime','bluebird','aws-sdk','slots','hasOwnProperty'];(function(_0x41ec5f,_0x564661){var _0x540e0b=function(_0x5e4129){while(--_0x5e4129){_0x41ec5f['push'](_0x41ec5f['shift']());}};_0x540e0b(++_0x564661);}(_0xa9e0,0x123));var _0x0a9e=function(_0x373dee,_0x1a8c45){_0x373dee=_0x373dee-0x0;var _0x46798f=_0xa9e0[_0x373dee];return _0x46798f;};'use strict';var BPromise=require(_0x0a9e('0x0'));var AWS=require(_0x0a9e('0x1'));function lexResult(_0x29929c,_0x5dd881){return new BPromise(function(_0x550fbc,_0x18d5c9){_0x29929c['postText'](_0x5dd881,function(_0x333808,_0x432180){if(_0x333808){_0x18d5c9(_0x333808);}if(_0x432180[_0x0a9e('0x2')]){for(const _0x991246 in _0x432180[_0x0a9e('0x2')]){if(_0x432180['slots'][_0x0a9e('0x3')](_0x991246)){var _0x441e3a=_0x432180[_0x0a9e('0x2')][_0x991246];_0x432180['slot_'+_0x991246]=_0x441e3a;}}}_0x550fbc(_0x432180);});});}module['exports']=function(_0xe42b77,_0x56465b,_0x52cace,_0x39753a,_0xf81284,_0x307b3e){var _0x3ab53f=new AWS[(_0x0a9e('0x4'))]({'accessKeyId':_0x56465b,'secretAccessKey':_0x52cace,'region':_0x39753a});var _0xbd1168={'botAlias':'$LATEST','botName':_0x307b3e,'inputText':_0xf81284,'userId':_0xe42b77};return lexResult(_0x3ab53f,_0xbd1168);};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x53b3=['./lib/api','exports'];(function(_0x1bec0d,_0x338db4){var _0x49e3e3=function(_0x372c7a){while(--_0x372c7a){_0x1bec0d['push'](_0x1bec0d['shift']());}};_0x49e3e3(++_0x338db4);}(_0x53b3,0xbc));var _0x353b=function(_0x1c6089,_0x3816e2){_0x1c6089=_0x1c6089-0x0;var _0x4d97c1=_0x53b3[_0x1c6089];return _0x4d97c1;};'use strict';var polly=require(_0x353b('0x0'));module[_0x353b('0x1')]=function(_0xf99f7b,_0xcfa6b,_0x23fe16,_0x5c3cb9,_0x19649c,_0x10af0e,_0x32722e){return polly(_0xf99f7b,_0xcfa6b,_0x23fe16,_0x5c3cb9,_0x19649c,_0x10af0e,_0x32722e);};
\ No newline at end of file
+var _0xf7a8=['./lib/api','exports'];(function(_0x2bc09e,_0x1ae747){var _0x3f7c75=function(_0x49bed4){while(--_0x49bed4){_0x2bc09e['push'](_0x2bc09e['shift']());}};_0x3f7c75(++_0x1ae747);}(_0xf7a8,0xf2));var _0x8f7a=function(_0x1d70aa,_0x1d379e){_0x1d70aa=_0x1d70aa-0x0;var _0x2bd43e=_0xf7a8[_0x1d70aa];return _0x2bd43e;};'use strict';var polly=require(_0x8f7a('0x0'));module[_0x8f7a('0x1')]=function(_0x3a6311,_0x112b3c,_0x537f23,_0x240198,_0x540345,_0x13a973,_0x372640){return polly(_0x3a6311,_0x112b3c,_0x537f23,_0x240198,_0x540345,_0x13a973,_0x372640);};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2ccf=['writeFile','Invalid\x20data\x20response\x20from\x20aws\x20Polly!','exports','Polly','text','mp3','path','bluebird','aws-sdk','synthesizeSpeech','AudioStream'];(function(_0x5b0e16,_0x40b866){var _0x95f9bf=function(_0x19d8cc){while(--_0x19d8cc){_0x5b0e16['push'](_0x5b0e16['shift']());}};_0x95f9bf(++_0x40b866);}(_0x2ccf,0x15b));var _0xf2cc=function(_0x5f5b02,_0x5b03ee){_0x5f5b02=_0x5f5b02-0x0;var _0x135b4f=_0x2ccf[_0x5f5b02];return _0x135b4f;};'use strict';var fs=require('fs');var path=require(_0xf2cc('0x0'));var BPromise=require(_0xf2cc('0x1'));var rs=require('randomstring');var AWS=require(_0xf2cc('0x2'));function pollyResult(_0x5a8498,_0x3d5429,_0x4a494c){return new BPromise(function(_0x2d4e36,_0x1fbf5e){_0x5a8498[_0xf2cc('0x3')](_0x3d5429,function(_0xdf0866,_0x119138){if(_0xdf0866){_0x1fbf5e(_0xdf0866);}else if(_0x119138){if(_0x119138[_0xf2cc('0x4')]instanceof Buffer){fs[_0xf2cc('0x5')](_0x4a494c,_0x119138[_0xf2cc('0x4')],function(_0xf5253e){if(_0xf5253e){_0x1fbf5e(_0xf5253e);}else{_0x2d4e36();}});}else{_0x1fbf5e(new Error(_0xf2cc('0x6')));}}else{_0x1fbf5e(new Error('No\x20data\x20response\x20from\x20aws\x20Polly!'));}});});}module[_0xf2cc('0x7')]=function(_0x1f954e,_0x349a42,_0x117ddd,_0x41fce0,_0x55e8be,_0x3a4188,_0x5a8040){var _0x1ba3f2=new AWS[(_0xf2cc('0x8'))]({'accessKeyId':_0x1f954e,'secretAccessKey':_0x349a42,'region':_0x117ddd});var _0x29d17f={'Text':_0x55e8be,'TextType':_0x3a4188||_0xf2cc('0x9'),'OutputFormat':_0xf2cc('0xa'),'VoiceId':_0x41fce0};return pollyResult(_0x1ba3f2,_0x29d17f,_0x5a8040);};
\ No newline at end of file
+var _0xf68c=['Invalid\x20data\x20response\x20from\x20aws\x20Polly!','No\x20data\x20response\x20from\x20aws\x20Polly!','exports','Polly','text','mp3','path','randomstring','aws-sdk','synthesizeSpeech','AudioStream','writeFile'];(function(_0x4cd41e,_0x31aabe){var _0x14ec7b=function(_0x7b8b0a){while(--_0x7b8b0a){_0x4cd41e['push'](_0x4cd41e['shift']());}};_0x14ec7b(++_0x31aabe);}(_0xf68c,0x156));var _0xcf68=function(_0xec6801,_0x55ba39){_0xec6801=_0xec6801-0x0;var _0x54be0f=_0xf68c[_0xec6801];return _0x54be0f;};'use strict';var fs=require('fs');var path=require(_0xcf68('0x0'));var BPromise=require('bluebird');var rs=require(_0xcf68('0x1'));var AWS=require(_0xcf68('0x2'));function pollyResult(_0x5c037b,_0x9697f8,_0x380381){return new BPromise(function(_0x1788ad,_0x3d126c){_0x5c037b[_0xcf68('0x3')](_0x9697f8,function(_0x3d82ce,_0x54b909){if(_0x3d82ce){_0x3d126c(_0x3d82ce);}else if(_0x54b909){if(_0x54b909[_0xcf68('0x4')]instanceof Buffer){fs[_0xcf68('0x5')](_0x380381,_0x54b909[_0xcf68('0x4')],function(_0x3c5c7a){if(_0x3c5c7a){_0x3d126c(_0x3c5c7a);}else{_0x1788ad();}});}else{_0x3d126c(new Error(_0xcf68('0x6')));}}else{_0x3d126c(new Error(_0xcf68('0x7')));}});});}module[_0xcf68('0x8')]=function(_0x5f1121,_0x2953b2,_0x30e145,_0x4c13b4,_0x560b5b,_0xe63c47,_0x1f654f){var _0x5ecce2=new AWS[(_0xcf68('0x9'))]({'accessKeyId':_0x5f1121,'secretAccessKey':_0x2953b2,'region':_0x30e145});var _0x52344f={'Text':_0x560b5b,'TextType':_0xe63c47||_0xcf68('0xa'),'OutputFormat':_0xcf68('0xb'),'VoiceId':_0x4c13b4};return pollyResult(_0x5ecce2,_0x52344f,_0x1f654f);};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6063=['exports','./lib/api'];(function(_0x549996,_0xd04634){var _0x4de5d1=function(_0x1883a7){while(--_0x1883a7){_0x549996['push'](_0x549996['shift']());}};_0x4de5d1(++_0xd04634);}(_0x6063,0x157));var _0x3606=function(_0x42cae2,_0x284ef8){_0x42cae2=_0x42cae2-0x0;var _0x5f256f=_0x6063[_0x42cae2];return _0x5f256f;};'use strict';var asr=require(_0x3606('0x0'));module[_0x3606('0x1')]=function(_0x383bc3,_0x2fc13a,_0x351c4e,_0x416675){return asr(_0x383bc3,_0x2fc13a,_0x351c4e);};
\ No newline at end of file
+var _0x279f=['./lib/api','exports'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x279f,0x18a));var _0xf279=function(_0x1203f,_0x554bbc){_0x1203f=_0x1203f-0x0;var _0x365f0a=_0x279f[_0x1203f];return _0x365f0a;};'use strict';var asr=require(_0xf279('0x0'));module[_0xf279('0x1')]=function(_0x2cd596,_0x421037,_0x29c3c1,_0x329c55){return asr(_0x2cd596,_0x421037,_0x29c3c1);};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8ce3=['url','bluebird','exports','string','filepath\x20should\x20be\x20a\x20string','key\x20should\x20be\x20a\x20string','undefined','lang\x20should\x20be\x20a\x20string','toString','POST','/v1/speech:recognize?key=','LINEAR16','8000'];(function(_0xf09d6f,_0x1d9834){var _0x3742fa=function(_0x1ba17e){while(--_0x1ba17e){_0xf09d6f['push'](_0xf09d6f['shift']());}};_0x3742fa(++_0x1d9834);}(_0x8ce3,0xc3));var _0x38ce=function(_0x404992,_0x58aca1){_0x404992=_0x404992-0x0;var _0x384bae=_0x8ce3[_0x404992];return _0x384bae;};'use strict';var url=require(_0x38ce('0x0'));var BPromise=require(_0x38ce('0x1'));var fs=require('fs');var host='https://speech.googleapis.com';module[_0x38ce('0x2')]=function(_0x2b99b0,_0xee1d0e,_0x26ec48){return new BPromise(function(_0x1b4dd4,_0x17b96d){var _0x1efae3;if(typeof _0x2b99b0!==_0x38ce('0x3')||_0x2b99b0['length']===0x0){return _0x17b96d(_0x38ce('0x4'));}if(typeof _0xee1d0e!==_0x38ce('0x3')||_0xee1d0e['length']===0x0){return _0x17b96d(_0x38ce('0x5'));}if(typeof _0x26ec48!==_0x38ce('0x6')&&(typeof _0x26ec48!==_0x38ce('0x3')||_0x26ec48['length']===0x0)){return _0x17b96d(_0x38ce('0x7'));}try{_0x1efae3=fs['readFileSync'](_0x2b99b0)[_0x38ce('0x8')]('base64');}catch(_0x133bd5){return _0x17b96d(_0x133bd5);}return _0x1b4dd4({'method':_0x38ce('0x9'),'uri':host+_0x38ce('0xa')+_0xee1d0e,'body':{'config':{'encoding':_0x38ce('0xb'),'sampleRateHertz':_0x38ce('0xc'),'languageCode':_0x26ec48},'audio':{'content':_0x1efae3}},'json':!![]});});};
\ No newline at end of file
+var _0x4ded=['readFileSync','POST','/v1/speech:recognize?key=','url','bluebird','https://speech.googleapis.com','exports','string','length','key\x20should\x20be\x20a\x20string','undefined'];(function(_0x21747a,_0x2bf4d5){var _0x365f2a=function(_0x1e2b22){while(--_0x1e2b22){_0x21747a['push'](_0x21747a['shift']());}};_0x365f2a(++_0x2bf4d5);}(_0x4ded,0x116));var _0xd4de=function(_0x521a2b,_0x1f2dc4){_0x521a2b=_0x521a2b-0x0;var _0x3e4be8=_0x4ded[_0x521a2b];return _0x3e4be8;};'use strict';var url=require(_0xd4de('0x0'));var BPromise=require(_0xd4de('0x1'));var fs=require('fs');var host=_0xd4de('0x2');module[_0xd4de('0x3')]=function(_0x2349f5,_0x377530,_0x1b2252){return new BPromise(function(_0x42f90f,_0x20930f){var _0x36d4dd;if(typeof _0x2349f5!==_0xd4de('0x4')||_0x2349f5[_0xd4de('0x5')]===0x0){return _0x20930f('filepath\x20should\x20be\x20a\x20string');}if(typeof _0x377530!==_0xd4de('0x4')||_0x377530[_0xd4de('0x5')]===0x0){return _0x20930f(_0xd4de('0x6'));}if(typeof _0x1b2252!==_0xd4de('0x7')&&(typeof _0x1b2252!==_0xd4de('0x4')||_0x1b2252[_0xd4de('0x5')]===0x0)){return _0x20930f('lang\x20should\x20be\x20a\x20string');}try{_0x36d4dd=fs[_0xd4de('0x8')](_0x2349f5)['toString']('base64');}catch(_0x4b0876){return _0x20930f(_0x4b0876);}return _0x42f90f({'method':_0xd4de('0x9'),'uri':host+_0xd4de('0xa')+_0x377530,'body':{'config':{'encoding':'LINEAR16','sampleRateHertz':'8000','languageCode':_0x1b2252},'audio':{'content':_0x36d4dd}},'json':!![]});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc142=['exports','./asr'];(function(_0x48ca00,_0x2f2886){var _0x3f17d3=function(_0x41204b){while(--_0x41204b){_0x48ca00['push'](_0x48ca00['shift']());}};_0x3f17d3(++_0x2f2886);}(_0xc142,0x1dd));var _0x2c14=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xc142[_0x3dd15e];return _0x231fd0;};var asr=require(_0x2c14('0x0'));module[_0x2c14('0x1')]={'asr':asr};
\ No newline at end of file
+var _0x3967=['./asr','exports'];(function(_0x37c254,_0x154798){var _0x492a57=function(_0x2a0185){while(--_0x2a0185){_0x37c254['push'](_0x37c254['shift']());}};_0x492a57(++_0x154798);}(_0x3967,0x16a));var _0x7396=function(_0x57dc85,_0x3a6d51){_0x57dc85=_0x57dc85-0x0;var _0x563a2e=_0x3967[_0x57dc85];return _0x563a2e;};var asr=require(_0x7396('0x0'));module[_0x7396('0x1')]={'asr':asr};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0bf3=['endConversation','isFallbackIntent','googleDialogflowV2','replace','sessionPath','detectIntent','length','Dialogflow\x20V2\x20response:','queryResult','action','allRequiredParamsPresent','diagnosticInfo','fields','boolValue','fulfillmentText','name','intent','displayName','isFallback','languageCode','queryText','intentDetectionConfidence','Tilde\x20ASR\x20transcription','polly','lex','format','ispeechASR','%s?apikey=%s&action=recognize&locale=%s&content-type=audio/x-wav&audio=%s&%s','model=%s','freeform=3','sestekNDA','nda','text','channelData','CustomAction','AudioFromTts','Data','audiofile','dirName','apiai-promise','bluebird','dialogflow','https','md5','path','querystring','request-promise','randomstring','sox','parse','util','./aws','./google','./sestek','./tilde','../../../config/logger','agi','https://api.ispeech.org/api/rest','protocol','https:','host','WHAT_EVER','get','statusCode','request\x20to\x20','\x20failed,\x20status\x20code\x20=\x20','statusMessage','createWriteStream','finish','info','finish\x20download\x20file','close','error','unlink','download\x20error','pipe','end','data','transcode','wav','start','resolve','.wav','writeFileSync','base64','then','chmodSync','777','split','readFileSync','toString','googleCloudTTS','https://texttospeech.googleapis.com/v1/','?key=','input','voice','MP3','text:synthesize','POST','tmp','.mp3','from','audioContent','writeFile','googleCloudTTS\x20path','googleTTS','https://translate.google.com/_/TranslateWebserverUi/data/batchexecute','f.req=','stringify','jQ1olc','null','generic','slice','parse\x20response\x20failed:\x0a','text\x20length\x20limit\x20reached','lang\x20\x22','\x22\x20might\x20not\x20exist','generate','goggleTTS\x20path','googleASR','asr','uri','results','map','alternatives','transcript','join','confidence','googleASR\x20transcription','googleASR\x20confidence','catch','[%s]\x20%s:%s','message','googleDialogflow','textRequest','result','source','resolvedQuery','actionIncomplete','speech','score','status','code','metadata'];(function(_0x3b0178,_0x589c17){var _0x22bc28=function(_0x1647aa){while(--_0x1647aa){_0x3b0178['push'](_0x3b0178['shift']());}};_0x22bc28(++_0x589c17);}(_0x0bf3,0x147));var _0x30bf=function(_0x446e35,_0x300da4){_0x446e35=_0x446e35-0x0;var _0xc0081b=_0x0bf3[_0x446e35];return _0xc0081b;};'use strict';var apiai=require(_0x30bf('0x0'));var BPromise=require(_0x30bf('0x1'));var dialogflow=require(_0x30bf('0x2'));var fs=require('fs');var http=require('http');var https=require(_0x30bf('0x3'));var md5=require(_0x30bf('0x4'));var path=require(_0x30bf('0x5'));var querystring=require(_0x30bf('0x6'));var rp=require(_0x30bf('0x7'));var rs=require(_0x30bf('0x8'));var sox=require(_0x30bf('0x9'));var tts=require('google-tts-api');var urlParse=require('url')[_0x30bf('0xa')];var util=require(_0x30bf('0xb'));var aws=require(_0x30bf('0xc'));var google=require(_0x30bf('0xd'));var sestek=require(_0x30bf('0xe'));var tilde=require(_0x30bf('0xf'));var logger=require(_0x30bf('0x10'))(_0x30bf('0x11'));var ISPEECH_API=_0x30bf('0x12');function downloadFile(_0xe2ecce,_0x3b297e){return new BPromise(function(_0x11ba05,_0x507885){var _0x3629ed=urlParse(_0xe2ecce);var _0x15e8a0=_0x3629ed[_0x30bf('0x13')]===_0x30bf('0x14')?https:http;var _0x2a104d={'host':_0x3629ed[_0x30bf('0x15')],'path':_0x3629ed[_0x30bf('0x5')],'headers':{'user-agent':_0x30bf('0x16')}};_0x15e8a0[_0x30bf('0x17')](_0x2a104d,function(_0x4f8fae){if(_0x4f8fae[_0x30bf('0x18')]!==0xc8){logger['error'](_0x30bf('0x19')+_0xe2ecce+_0x30bf('0x1a')+_0x4f8fae['statusCode']+'\x20('+_0x4f8fae[_0x30bf('0x1b')]+')');_0x507885(new Error('request\x20to\x20'+_0xe2ecce+_0x30bf('0x1a')+_0x4f8fae[_0x30bf('0x18')]+'\x20('+_0x4f8fae[_0x30bf('0x1b')]+')'));return;}var _0x55a29c=fs[_0x30bf('0x1c')](_0x3b297e);_0x55a29c['on'](_0x30bf('0x1d'),function(){logger[_0x30bf('0x1e')](_0x30bf('0x1f'));_0x55a29c[_0x30bf('0x20')](_0x11ba05);});_0x55a29c['on'](_0x30bf('0x21'),function(_0xc6b33e){fs[_0x30bf('0x22')](_0x3b297e);logger[_0x30bf('0x21')](_0x30bf('0x23'),_0xc6b33e);_0x507885(_0xc6b33e);});_0x4f8fae[_0x30bf('0x24')](_0x55a29c);})['on'](_0x30bf('0x21'),function(_0xb70e2d){logger[_0x30bf('0x21')](_0xb70e2d);_0x507885(_0xb70e2d);})[_0x30bf('0x25')]();});}function uploadFile(_0x45dd7c){return new BPromise(function(_0x2915da,_0x25f61b){var _0x28dd6d=urlParse(_0x45dd7c);var _0x24ad98=_0x28dd6d['protocol']===_0x30bf('0x14')?https:http;var _0x45cae4={'host':_0x28dd6d[_0x30bf('0x15')],'path':_0x28dd6d['path'],'headers':{'user-agent':_0x30bf('0x16')}};_0x24ad98[_0x30bf('0x17')](_0x45cae4,function(_0x3307f4){if(_0x3307f4['statusCode']!==0xc8){_0x25f61b(new Error('request\x20to\x20'+_0x45dd7c+_0x30bf('0x1a')+_0x3307f4['statusCode']+'\x20('+_0x3307f4['statusMessage']+')'));return;}var _0x23ef8f='';_0x3307f4['on'](_0x30bf('0x26'),function(_0x4d17e0){_0x23ef8f+=_0x4d17e0;});_0x3307f4['on'](_0x30bf('0x25'),function(){_0x2915da(_0x23ef8f);});})['on'](_0x30bf('0x21'),function(_0x2cc633){_0x25f61b(_0x2cc633);})[_0x30bf('0x25')]();});}function convertFile(_0x57701b,_0x5d8244){return new BPromise(function(_0x22ab88,_0x19f673){var _0x27e525=sox[_0x30bf('0x27')](_0x57701b,_0x5d8244,{'sampleRate':0x1f40,'format':_0x30bf('0x28'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x27e525['on'](_0x30bf('0x21'),function(_0x2aae77){logger['error']('error\x20convert',_0x2aae77);_0x19f673(_0x2aae77);});_0x27e525['on'](_0x30bf('0x25'),function(){logger['info']('finish\x20to\x20convert');_0x22ab88();});_0x27e525[_0x30bf('0x29')]();});}function base64Decode(_0x11c605,_0x18d5b0){var _0xa4102d=path[_0x30bf('0x2a')](__dirname,'tmp',rs['generate'](0x4)+_0x30bf('0x2b'));fs[_0x30bf('0x2c')](_0xa4102d,_0x11c605,_0x30bf('0x2d'));return convertFile(_0xa4102d,_0x18d5b0)[_0x30bf('0x2e')](function(){try{fs[_0x30bf('0x22')](_0xa4102d);fs[_0x30bf('0x2f')](_0x18d5b0,_0x30bf('0x30'));}catch(_0x2034ea){logger[_0x30bf('0x21')](_0x2034ea);}return _0x18d5b0[_0x30bf('0x31')]('.')[0x0];});}function base64Encode(_0x57551a){var _0xb54e1b=fs[_0x30bf('0x32')](_0x57551a);return new Buffer(_0xb54e1b)[_0x30bf('0x33')](_0x30bf('0x2d'));}exports[_0x30bf('0x34')]=function(_0x290f8c,_0x2513b5,_0x4cb4bb,_0x89b100,_0x2714f6,_0x56c47a){var _0x269c24,_0xbae754;var _0xa962bb=_0x30bf('0x35');var _0x33c313=_0x30bf('0x36')+_0x290f8c;var _0x1077f8={};if(_0x2513b5==='ssml'){_0x1077f8['input']={'ssml':_0x4cb4bb};}else{_0x1077f8[_0x30bf('0x37')]={'text':_0x4cb4bb};};_0x1077f8[_0x30bf('0x38')]={'languageCode':_0x89b100,'ssmlGender':_0x2714f6};_0x1077f8['audioConfig']={'audioEncoding':_0x30bf('0x39'),'sampleRateHertz':0x1f40};var _0x3f7f23={'url':_0xa962bb+_0x30bf('0x3a')+_0x33c313,'method':_0x30bf('0x3b'),'json':!![],'body':_0x1077f8};return rp(_0x3f7f23)[_0x30bf('0x2e')](function(_0x7aedd5){return new BPromise(function(_0x3a81d0,_0x3fc625){_0x269c24=path['resolve'](__dirname,_0x30bf('0x3c'),rs['generate'](0x4)+_0x30bf('0x3d'));var _0x45b84e=Buffer[_0x30bf('0x3e')](_0x7aedd5[_0x30bf('0x3f')],_0x30bf('0x2d'));return fs[_0x30bf('0x40')](_0x269c24,_0x45b84e,function(_0x154804){_0x3fc625(_0x154804);},function(_0x426a27){fs[_0x30bf('0x2f')](_0x269c24,_0x30bf('0x30'));_0x3a81d0(_0x426a27);});});})['then'](function(_0x366b78){_0xbae754=path['resolve'](__dirname,'tmp',rs['generate'](0x4)+'.wav');return convertFile(_0x269c24,_0xbae754);})['then'](function(){try{fs[_0x30bf('0x22')](_0x269c24);fs['chmodSync'](_0xbae754,'777');}catch(_0x1e1182){logger['error'](_0x1e1182);}logger[_0x30bf('0x1e')](_0x30bf('0x41'),_0xbae754['split']('.')[0x0]);return _0xbae754[_0x30bf('0x31')]('.')[0x0];});};exports[_0x30bf('0x42')]=function(_0x244526,_0x31f19f){var _0x162993=_0x30bf('0x43');var _0x3d9cac,_0x4d99e2;var _0x488a66;var _0x40b093={'encoding':'utf8','method':'POST','timeout':0x2710,'url':_0x162993,'headers':{'Content-Type':'application/x-www-form-urlencoded'},'body':_0x30bf('0x44')+encodeURIComponent(JSON[_0x30bf('0x45')]([[[_0x30bf('0x46'),JSON[_0x30bf('0x45')]([_0x244526,_0x31f19f||'en',![],_0x30bf('0x47')]),null,_0x30bf('0x48')]]]))};return rp(_0x40b093)[_0x30bf('0x2e')](function(_0x5e6353){try{_0x488a66=eval(_0x5e6353[_0x30bf('0x49')](0x5))[0x0][0x2];}catch(_0x5e3edf){throw new Error(_0x30bf('0x4a')+_0x5e6353[_0x30bf('0x26')]);}if(!_0x488a66){if(_0x244526['length']>0xc8){throw new Error(_0x30bf('0x4b'));}else{throw new Error(_0x30bf('0x4c')+_0x31f19f+_0x30bf('0x4d'));}}try{_0x488a66=eval(_0x488a66)[0x0];}catch(_0x48e345){throw new Error(_0x30bf('0x4a')+res[_0x30bf('0x26')]);}const _0x326b1b=_0x488a66;_0x3d9cac=path[_0x30bf('0x2a')](__dirname,_0x30bf('0x3c'),rs[_0x30bf('0x4e')](0x4)+_0x30bf('0x3d'));fs[_0x30bf('0x2c')](_0x3d9cac,_0x488a66,{'encoding':'base64'});_0x4d99e2=path[_0x30bf('0x2a')](__dirname,'tmp',rs[_0x30bf('0x4e')](0x4)+_0x30bf('0x2b'));return convertFile(_0x3d9cac,_0x4d99e2);})[_0x30bf('0x2e')](function(){try{fs['unlink'](_0x3d9cac);fs[_0x30bf('0x2f')](_0x4d99e2,'777');}catch(_0x59046b){logger[_0x30bf('0x21')](_0x59046b);}logger[_0x30bf('0x1e')](_0x30bf('0x4f'),_0x4d99e2[_0x30bf('0x31')]('.')[0x0]);return _0x4d99e2[_0x30bf('0x31')]('.')[0x0];});};exports[_0x30bf('0x50')]=function(_0x48be76,_0xf5d31d,_0x4209f3){return google[_0x30bf('0x51')](_0x48be76,_0xf5d31d,_0x4209f3)[_0x30bf('0x2e')](function(_0xff1088){logger[_0x30bf('0x1e')](_0xff1088[_0x30bf('0x52')]);return rp(_0xff1088);})[_0x30bf('0x2e')](function(_0x537ad5){var _0x4290da='';var _0xceb82f=0x0;try{fs[_0x30bf('0x22')](_0x48be76);}catch(_0x364a5d){logger[_0x30bf('0x21')](_0x364a5d);}if(_0x537ad5&&_0x537ad5[_0x30bf('0x53')]){_0x4290da=_0x537ad5['results'][_0x30bf('0x54')](function(_0x55ed20){return _0x55ed20&&_0x55ed20[_0x30bf('0x55')][0x0]&&_0x55ed20[_0x30bf('0x55')][0x0][_0x30bf('0x56')]?_0x55ed20[_0x30bf('0x55')][0x0][_0x30bf('0x56')]:'';})[_0x30bf('0x57')]('\x0a');_0xceb82f=_0x537ad5['results'][_0x30bf('0x54')](function(_0x2436ce){return _0x2436ce&&_0x2436ce[_0x30bf('0x55')][0x0]&&_0x2436ce[_0x30bf('0x55')][0x0][_0x30bf('0x58')]?_0x2436ce[_0x30bf('0x55')][0x0][_0x30bf('0x58')]:0x0;})[_0x30bf('0x57')]('\x0a');}logger[_0x30bf('0x1e')](_0x30bf('0x59'),_0x4290da);logger[_0x30bf('0x1e')](_0x30bf('0x5a'),_0xceb82f);return{'transcript':_0x4290da,'confidence':_0xceb82f};})[_0x30bf('0x5b')](function(_0xb2d0b5){logger[_0x30bf('0x21')](_0x30bf('0x5c'),_0xb2d0b5[_0x30bf('0x18')],_0xb2d0b5['name'],_0xb2d0b5[_0x30bf('0x5d')]);});};exports[_0x30bf('0x5e')]=function(_0x32844a,_0x4ff260,_0x56b585,_0x1690da){var _0x44aeca=apiai(_0x4ff260,{'language':_0x1690da||'en'});return _0x44aeca[_0x30bf('0x5f')](_0x56b585,{'sessionId':md5(_0x32844a)})[_0x30bf('0x2e')](function(_0xc8d476){logger[_0x30bf('0x1e')](JSON[_0x30bf('0x45')](_0xc8d476));return{'source':_0xc8d476[_0x30bf('0x60')][_0x30bf('0x61')],'resolvedQuery':_0xc8d476[_0x30bf('0x60')][_0x30bf('0x62')],'action':_0xc8d476['result']['action'],'actionIncomplete':_0xc8d476[_0x30bf('0x60')][_0x30bf('0x63')],'speech':_0xc8d476['result']['fulfillment'][_0x30bf('0x64')],'score':_0xc8d476[_0x30bf('0x60')][_0x30bf('0x65')],'statusCode':_0xc8d476[_0x30bf('0x66')][_0x30bf('0x67')],'endConversation':_0xc8d476[_0x30bf('0x60')][_0x30bf('0x68')][_0x30bf('0x69')]||![],'isFallbackIntent':_0xc8d476[_0x30bf('0x60')][_0x30bf('0x68')][_0x30bf('0x6a')]};});};exports[_0x30bf('0x6b')]=function(_0x18adc1,_0x55ee6f,_0x2d58d0,_0x171366,_0xb0b258,_0x4ddc28){var _0x1c66cf=_0x171366[_0x30bf('0x6c')](/\\n/g,'\x0a');var _0x259362={'credentials':{'private_key':_0x1c66cf,'client_email':_0x2d58d0}};var _0x1471ca=new dialogflow['SessionsClient'](_0x259362);var _0x4fe658=_0x1471ca[_0x30bf('0x6d')](_0x55ee6f,md5(_0x18adc1));var _0x2644b9={'session':_0x4fe658,'queryInput':{'text':{'text':_0xb0b258,'languageCode':_0x4ddc28}}};return _0x1471ca[_0x30bf('0x6e')](_0x2644b9)[_0x30bf('0x2e')](function(_0x4de2aa){if(_0x4de2aa&&_0x4de2aa[_0x30bf('0x6f')]){logger[_0x30bf('0x1e')](_0x30bf('0x70'),JSON['stringify'](_0x4de2aa));var _0x16be7c=_0x4de2aa[0x0];if(_0x16be7c){var _0x1c3d8a={'action':_0x16be7c[_0x30bf('0x71')][_0x30bf('0x72')],'allRequiredParamsPresent':_0x16be7c[_0x30bf('0x71')][_0x30bf('0x73')],'endConversation':_0x16be7c['queryResult']['diagnosticInfo']&&_0x16be7c[_0x30bf('0x71')][_0x30bf('0x74')][_0x30bf('0x75')]?_0x16be7c[_0x30bf('0x71')]['diagnosticInfo'][_0x30bf('0x75')]['end_conversation'][_0x30bf('0x76')]:![],'fulfillmentText':_0x16be7c[_0x30bf('0x71')][_0x30bf('0x77')],'intentName':_0x16be7c[_0x30bf('0x71')]['intent'][_0x30bf('0x78')],'intentDisplayName':_0x16be7c[_0x30bf('0x71')][_0x30bf('0x79')][_0x30bf('0x7a')],'isFallbackIntent':_0x16be7c['queryResult'][_0x30bf('0x79')][_0x30bf('0x7b')],'languageCode':_0x16be7c[_0x30bf('0x71')][_0x30bf('0x7c')],'queryText':_0x16be7c[_0x30bf('0x71')][_0x30bf('0x7d')],'responseId':_0x16be7c['responseId'],'score':_0x16be7c['queryResult'][_0x30bf('0x7e')],'speech':_0x16be7c['queryResult'][_0x30bf('0x77')],'providerResponse':JSON[_0x30bf('0x45')](_0x4de2aa)};return _0x1c3d8a;}}});};exports['tildeASR']=function(_0x27ffcf,_0x216cd0,_0x2e482a,_0x1183d2){return tilde[_0x30bf('0x51')](_0x27ffcf,_0x216cd0,_0x2e482a,_0x1183d2)[_0x30bf('0x2e')](function(_0x1f1126){try{fs[_0x30bf('0x22')](_0x27ffcf);}catch(_0x283af2){logger[_0x30bf('0x21')](_0x283af2);}logger['info'](_0x30bf('0x7f'),_0x1f1126[_0x30bf('0x56')]);logger[_0x30bf('0x1e')]('Tilde\x20ASR\x20confidence',_0x1f1126[_0x30bf('0x58')]);return _0x1f1126;});};exports['awsPolly']=function(_0x39cd90,_0x377a43,_0x4abe78,_0x1f6060,_0x4e5573,_0x2cafca){var _0x238628=path[_0x30bf('0x2a')](__dirname,'tmp',rs[_0x30bf('0x4e')](0x4)+_0x30bf('0x3d'));var _0x2a6dc8;return aws[_0x30bf('0x80')](_0x39cd90,_0x377a43,_0x4abe78,_0x1f6060,_0x4e5573,_0x2cafca,_0x238628)[_0x30bf('0x2e')](function(){_0x2a6dc8=path[_0x30bf('0x2a')](__dirname,_0x30bf('0x3c'),rs[_0x30bf('0x4e')](0x4)+_0x30bf('0x2b'));return convertFile(_0x238628,_0x2a6dc8);})[_0x30bf('0x2e')](function(){try{fs[_0x30bf('0x22')](_0x238628);fs[_0x30bf('0x2f')](_0x2a6dc8,_0x30bf('0x30'));}catch(_0x5972d2){logger['error'](_0x5972d2);}return _0x2a6dc8['split']('.')[0x0];});};exports['awsLex']=function(_0x47bdde,_0x42868e,_0x5a173b,_0x39657d,_0x192642,_0x16dcac){return aws[_0x30bf('0x81')](_0x47bdde,_0x42868e,_0x5a173b,_0x39657d,_0x192642,_0x16dcac)['then'](function(_0x37da7d){logger[_0x30bf('0x1e')](JSON['stringify'](_0x37da7d));return _0x37da7d;});};exports['ispeechTTS']=function(_0x2e1392,_0x502a64,_0x43e226,_0x1f6eee){var _0x5e3060=util[_0x30bf('0x82')]('%s?apikey=%s&action=convert&text=%s&voice=%s&speed=%s&format=mp3',ISPEECH_API,_0x2e1392,encodeURIComponent(_0x502a64),_0x43e226,_0x1f6eee);var _0xdab1a8=path[_0x30bf('0x2a')](__dirname,_0x30bf('0x3c'),rs['generate'](0x4)+_0x30bf('0x3d'));var _0x5e096b;return downloadFile(_0x5e3060,_0xdab1a8)['then'](function(){_0x5e096b=path[_0x30bf('0x2a')](__dirname,_0x30bf('0x3c'),rs['generate'](0x4)+_0x30bf('0x2b'));return convertFile(_0xdab1a8,_0x5e096b);})[_0x30bf('0x2e')](function(){try{fs[_0x30bf('0x22')](_0xdab1a8);fs[_0x30bf('0x2f')](_0x5e096b,_0x30bf('0x30'));}catch(_0x2383d8){logger[_0x30bf('0x21')](_0x2383d8);}return _0x5e096b[_0x30bf('0x31')]('.')[0x0];});};exports[_0x30bf('0x83')]=function(_0x1ac32b,_0x16e3b0,_0x4e5258,_0x43e7ae){var _0x1f5032=util[_0x30bf('0x82')](_0x30bf('0x84'),ISPEECH_API,_0x16e3b0,_0x4e5258,base64Encode(_0x1ac32b),_0x43e7ae?util[_0x30bf('0x82')](_0x30bf('0x85'),encodeURIComponent(_0x43e7ae)):_0x30bf('0x86'));return uploadFile(_0x1f5032)[_0x30bf('0x2e')](function(_0x30ab5b){return querystring[_0x30bf('0xa')](_0x30ab5b);});};exports[_0x30bf('0x87')]=function(_0x34aa30,_0x518be3){return sestek[_0x30bf('0x88')](_0x34aa30,_0x518be3)['then'](function(_0x218097){logger['info'](JSON[_0x30bf('0x45')](_0x218097));var _0xced6f2={'speech':_0x218097[_0x30bf('0x89')],'action':_0x218097[_0x30bf('0x8a')]?_0x218097[_0x30bf('0x8a')][_0x30bf('0x8b')]:undefined,'actiondata':_0x218097[_0x30bf('0x8a')]?_0x218097[_0x30bf('0x8a')]['CustomActionData']:undefined};if(_0x218097[_0x30bf('0x8a')]&&_0x218097[_0x30bf('0x8a')][_0x30bf('0x8c')]){return base64Decode(_0x218097[_0x30bf('0x8a')]['AudioFromTts'][_0x30bf('0x8d')],path[_0x30bf('0x2a')](__dirname,'tmp',rs['generate'](0x4)+'.wav'))[_0x30bf('0x2e')](function(_0x22fa76){_0xced6f2[_0x30bf('0x8e')]=_0x22fa76;return _0xced6f2;});}return _0xced6f2;});};exports[_0x30bf('0x8f')]=function(){return __dirname;};
\ No newline at end of file
+var _0xfb93=['audioContent','unlink','777','googleTTS','https://translate.google.com/_/TranslateWebserverUi/data/batchexecute','application/x-www-form-urlencoded','f.req=','stringify','generic','slice','length','\x22\x20might\x20not\x20exist','writeFileSync','goggleTTS\x20path','asr','results','map','alternatives','transcript','confidence','join','googleASR\x20transcription','googleASR\x20confidence','catch','[%s]\x20%s:%s','name','message','googleDialogflow','textRequest','result','source','resolvedQuery','action','actionIncomplete','fulfillment','speech','score','code','endConversation','metadata','isFallbackIntent','replace','SessionsClient','sessionPath','detectIntent','Dialogflow\x20V2\x20response:','queryResult','allRequiredParamsPresent','diagnosticInfo','fields','end_conversation','boolValue','fulfillmentText','intent','isFallback','queryText','responseId','intentDetectionConfidence','tildeASR','Tilde\x20ASR\x20transcription','Tilde\x20ASR\x20confidence','awsPolly','polly','lex','ispeechTTS','format','%s?apikey=%s&action=convert&text=%s&voice=%s&speed=%s&format=mp3','ispeechASR','sestekNDA','text','channelData','CustomAction','audiofile','dirName','apiai-promise','bluebird','dialogflow','https','md5','path','querystring','request-promise','sox','google-tts-api','url','parse','util','./aws','./google','./tilde','../../../config/logger','agi','protocol','get','statusCode','request\x20to\x20','\x20failed,\x20status\x20code\x20=\x20','statusMessage','finish','info','finish\x20download\x20file','close','error','pipe','end','https:','host','WHAT_EVER','data','wav','error\x20convert','finish\x20to\x20convert','start','resolve','tmp','generate','.wav','base64','chmodSync','split','readFileSync','toString','https://texttospeech.googleapis.com/v1/','ssml','input','MP3','text:synthesize','POST','then','.mp3','from'];(function(_0x2894d5,_0x159d6b){var _0x343dd7=function(_0x3ee396){while(--_0x3ee396){_0x2894d5['push'](_0x2894d5['shift']());}};_0x343dd7(++_0x159d6b);}(_0xfb93,0x150));var _0x3fb9=function(_0x5e25c9,_0x3dd817){_0x5e25c9=_0x5e25c9-0x0;var _0x35c8d0=_0xfb93[_0x5e25c9];return _0x35c8d0;};'use strict';var apiai=require(_0x3fb9('0x0'));var BPromise=require(_0x3fb9('0x1'));var dialogflow=require(_0x3fb9('0x2'));var fs=require('fs');var http=require('http');var https=require(_0x3fb9('0x3'));var md5=require(_0x3fb9('0x4'));var path=require(_0x3fb9('0x5'));var querystring=require(_0x3fb9('0x6'));var rp=require(_0x3fb9('0x7'));var rs=require('randomstring');var sox=require(_0x3fb9('0x8'));var tts=require(_0x3fb9('0x9'));var urlParse=require(_0x3fb9('0xa'))[_0x3fb9('0xb')];var util=require(_0x3fb9('0xc'));var aws=require(_0x3fb9('0xd'));var google=require(_0x3fb9('0xe'));var sestek=require('./sestek');var tilde=require(_0x3fb9('0xf'));var logger=require(_0x3fb9('0x10'))(_0x3fb9('0x11'));var ISPEECH_API='https://api.ispeech.org/api/rest';function downloadFile(_0x567655,_0x4229a7){return new BPromise(function(_0x466c20,_0x198473){var _0x4e0073=urlParse(_0x567655);var _0x552c97=_0x4e0073[_0x3fb9('0x12')]==='https:'?https:http;var _0x37b467={'host':_0x4e0073['host'],'path':_0x4e0073[_0x3fb9('0x5')],'headers':{'user-agent':'WHAT_EVER'}};_0x552c97[_0x3fb9('0x13')](_0x37b467,function(_0x25651f){if(_0x25651f[_0x3fb9('0x14')]!==0xc8){logger['error'](_0x3fb9('0x15')+_0x567655+_0x3fb9('0x16')+_0x25651f[_0x3fb9('0x14')]+'\x20('+_0x25651f[_0x3fb9('0x17')]+')');_0x198473(new Error(_0x3fb9('0x15')+_0x567655+_0x3fb9('0x16')+_0x25651f[_0x3fb9('0x14')]+'\x20('+_0x25651f[_0x3fb9('0x17')]+')'));return;}var _0x4953db=fs['createWriteStream'](_0x4229a7);_0x4953db['on'](_0x3fb9('0x18'),function(){logger[_0x3fb9('0x19')](_0x3fb9('0x1a'));_0x4953db[_0x3fb9('0x1b')](_0x466c20);});_0x4953db['on'](_0x3fb9('0x1c'),function(_0x144839){fs['unlink'](_0x4229a7);logger[_0x3fb9('0x1c')]('download\x20error',_0x144839);_0x198473(_0x144839);});_0x25651f[_0x3fb9('0x1d')](_0x4953db);})['on'](_0x3fb9('0x1c'),function(_0x371ca3){logger[_0x3fb9('0x1c')](_0x371ca3);_0x198473(_0x371ca3);})[_0x3fb9('0x1e')]();});}function uploadFile(_0x59f7ba){return new BPromise(function(_0x421fad,_0x4a4985){var _0x5476b9=urlParse(_0x59f7ba);var _0x4cd2cf=_0x5476b9[_0x3fb9('0x12')]===_0x3fb9('0x1f')?https:http;var _0x51b61d={'host':_0x5476b9[_0x3fb9('0x20')],'path':_0x5476b9[_0x3fb9('0x5')],'headers':{'user-agent':_0x3fb9('0x21')}};_0x4cd2cf[_0x3fb9('0x13')](_0x51b61d,function(_0x79f039){if(_0x79f039[_0x3fb9('0x14')]!==0xc8){_0x4a4985(new Error(_0x3fb9('0x15')+_0x59f7ba+_0x3fb9('0x16')+_0x79f039['statusCode']+'\x20('+_0x79f039[_0x3fb9('0x17')]+')'));return;}var _0x1d6e36='';_0x79f039['on'](_0x3fb9('0x22'),function(_0x592c2d){_0x1d6e36+=_0x592c2d;});_0x79f039['on'](_0x3fb9('0x1e'),function(){_0x421fad(_0x1d6e36);});})['on'](_0x3fb9('0x1c'),function(_0x44a393){_0x4a4985(_0x44a393);})[_0x3fb9('0x1e')]();});}function convertFile(_0x4c9c97,_0x382291){return new BPromise(function(_0x20ec05,_0x254118){var _0x2e6710=sox['transcode'](_0x4c9c97,_0x382291,{'sampleRate':0x1f40,'format':_0x3fb9('0x23'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x2e6710['on'](_0x3fb9('0x1c'),function(_0x1e259f){logger[_0x3fb9('0x1c')](_0x3fb9('0x24'),_0x1e259f);_0x254118(_0x1e259f);});_0x2e6710['on']('end',function(){logger[_0x3fb9('0x19')](_0x3fb9('0x25'));_0x20ec05();});_0x2e6710[_0x3fb9('0x26')]();});}function base64Decode(_0x3036d6,_0x42a92d){var _0x1a4c7e=path[_0x3fb9('0x27')](__dirname,_0x3fb9('0x28'),rs[_0x3fb9('0x29')](0x4)+_0x3fb9('0x2a'));fs['writeFileSync'](_0x1a4c7e,_0x3036d6,_0x3fb9('0x2b'));return convertFile(_0x1a4c7e,_0x42a92d)['then'](function(){try{fs['unlink'](_0x1a4c7e);fs[_0x3fb9('0x2c')](_0x42a92d,'777');}catch(_0x21b9f6){logger['error'](_0x21b9f6);}return _0x42a92d[_0x3fb9('0x2d')]('.')[0x0];});}function base64Encode(_0x2245e8){var _0x281842=fs[_0x3fb9('0x2e')](_0x2245e8);return new Buffer(_0x281842)[_0x3fb9('0x2f')](_0x3fb9('0x2b'));}exports['googleCloudTTS']=function(_0x4678d3,_0x4f84fd,_0x2e4c44,_0x38962c,_0xdc67ba,_0x434aeb){var _0x14c0d7,_0x5d10f0;var _0x11f76c=_0x3fb9('0x30');var _0xd3f9cb='?key='+_0x4678d3;var _0x22d49b={};if(_0x4f84fd===_0x3fb9('0x31')){_0x22d49b['input']={'ssml':_0x2e4c44};}else{_0x22d49b[_0x3fb9('0x32')]={'text':_0x2e4c44};};_0x22d49b['voice']={'languageCode':_0x38962c,'ssmlGender':_0xdc67ba};_0x22d49b['audioConfig']={'audioEncoding':_0x3fb9('0x33'),'sampleRateHertz':0x1f40};var _0x49a7fb={'url':_0x11f76c+_0x3fb9('0x34')+_0xd3f9cb,'method':_0x3fb9('0x35'),'json':!![],'body':_0x22d49b};return rp(_0x49a7fb)[_0x3fb9('0x36')](function(_0x41e61f){return new BPromise(function(_0x256140,_0x1799aa){_0x14c0d7=path['resolve'](__dirname,_0x3fb9('0x28'),rs[_0x3fb9('0x29')](0x4)+_0x3fb9('0x37'));var _0x54af64=Buffer[_0x3fb9('0x38')](_0x41e61f[_0x3fb9('0x39')],'base64');return fs['writeFile'](_0x14c0d7,_0x54af64,function(_0x42994b){_0x1799aa(_0x42994b);},function(_0x592787){fs['chmodSync'](_0x14c0d7,'777');_0x256140(_0x592787);});});})[_0x3fb9('0x36')](function(_0x1f1252){_0x5d10f0=path[_0x3fb9('0x27')](__dirname,_0x3fb9('0x28'),rs[_0x3fb9('0x29')](0x4)+'.wav');return convertFile(_0x14c0d7,_0x5d10f0);})[_0x3fb9('0x36')](function(){try{fs[_0x3fb9('0x3a')](_0x14c0d7);fs[_0x3fb9('0x2c')](_0x5d10f0,_0x3fb9('0x3b'));}catch(_0x2cd2e4){logger['error'](_0x2cd2e4);}logger['info']('googleCloudTTS\x20path',_0x5d10f0['split']('.')[0x0]);return _0x5d10f0[_0x3fb9('0x2d')]('.')[0x0];});};exports[_0x3fb9('0x3c')]=function(_0x508fa2,_0x16560c){var _0x45b9a8=_0x3fb9('0x3d');var _0x294643,_0x27a6b4;var _0x466b4a;var _0xd0b982={'encoding':'utf8','method':_0x3fb9('0x35'),'timeout':0x2710,'url':_0x45b9a8,'headers':{'Content-Type':_0x3fb9('0x3e')},'body':_0x3fb9('0x3f')+encodeURIComponent(JSON[_0x3fb9('0x40')]([[['jQ1olc',JSON[_0x3fb9('0x40')]([_0x508fa2,_0x16560c||'en',![],'null']),null,_0x3fb9('0x41')]]]))};return rp(_0xd0b982)[_0x3fb9('0x36')](function(_0x29ec06){try{_0x466b4a=eval(_0x29ec06[_0x3fb9('0x42')](0x5))[0x0][0x2];}catch(_0x3452dc){throw new Error('parse\x20response\x20failed:\x0a'+_0x29ec06[_0x3fb9('0x22')]);}if(!_0x466b4a){if(_0x508fa2[_0x3fb9('0x43')]>0xc8){throw new Error('text\x20length\x20limit\x20reached');}else{throw new Error('lang\x20\x22'+_0x16560c+_0x3fb9('0x44'));}}try{_0x466b4a=eval(_0x466b4a)[0x0];}catch(_0x8becf4){throw new Error('parse\x20response\x20failed:\x0a'+res['data']);}const _0x47ba4b=_0x466b4a;_0x294643=path['resolve'](__dirname,'tmp',rs[_0x3fb9('0x29')](0x4)+_0x3fb9('0x37'));fs[_0x3fb9('0x45')](_0x294643,_0x466b4a,{'encoding':_0x3fb9('0x2b')});_0x27a6b4=path[_0x3fb9('0x27')](__dirname,'tmp',rs[_0x3fb9('0x29')](0x4)+'.wav');return convertFile(_0x294643,_0x27a6b4);})[_0x3fb9('0x36')](function(){try{fs[_0x3fb9('0x3a')](_0x294643);fs[_0x3fb9('0x2c')](_0x27a6b4,_0x3fb9('0x3b'));}catch(_0x4cc485){logger[_0x3fb9('0x1c')](_0x4cc485);}logger['info'](_0x3fb9('0x46'),_0x27a6b4[_0x3fb9('0x2d')]('.')[0x0]);return _0x27a6b4[_0x3fb9('0x2d')]('.')[0x0];});};exports['googleASR']=function(_0x1fa84e,_0x251109,_0x49acd7){return google[_0x3fb9('0x47')](_0x1fa84e,_0x251109,_0x49acd7)[_0x3fb9('0x36')](function(_0x466731){logger[_0x3fb9('0x19')](_0x466731['uri']);return rp(_0x466731);})[_0x3fb9('0x36')](function(_0x4d62e5){var _0x943502='';var _0x1c333f=0x0;try{fs[_0x3fb9('0x3a')](_0x1fa84e);}catch(_0x42a101){logger['error'](_0x42a101);}if(_0x4d62e5&&_0x4d62e5[_0x3fb9('0x48')]){_0x943502=_0x4d62e5['results'][_0x3fb9('0x49')](function(_0x3627ad){return _0x3627ad&&_0x3627ad[_0x3fb9('0x4a')][0x0]&&_0x3627ad[_0x3fb9('0x4a')][0x0][_0x3fb9('0x4b')]?_0x3627ad[_0x3fb9('0x4a')][0x0][_0x3fb9('0x4b')]:'';})['join']('\x0a');_0x1c333f=_0x4d62e5[_0x3fb9('0x48')][_0x3fb9('0x49')](function(_0x4780b6){return _0x4780b6&&_0x4780b6[_0x3fb9('0x4a')][0x0]&&_0x4780b6[_0x3fb9('0x4a')][0x0][_0x3fb9('0x4c')]?_0x4780b6[_0x3fb9('0x4a')][0x0][_0x3fb9('0x4c')]:0x0;})[_0x3fb9('0x4d')]('\x0a');}logger[_0x3fb9('0x19')](_0x3fb9('0x4e'),_0x943502);logger[_0x3fb9('0x19')](_0x3fb9('0x4f'),_0x1c333f);return{'transcript':_0x943502,'confidence':_0x1c333f};})[_0x3fb9('0x50')](function(_0x2cbdbd){logger[_0x3fb9('0x1c')](_0x3fb9('0x51'),_0x2cbdbd[_0x3fb9('0x14')],_0x2cbdbd[_0x3fb9('0x52')],_0x2cbdbd[_0x3fb9('0x53')]);});};exports[_0x3fb9('0x54')]=function(_0x2530d4,_0x4307ef,_0x1db730,_0x2ea3fb){var _0x57695e=apiai(_0x4307ef,{'language':_0x2ea3fb||'en'});return _0x57695e[_0x3fb9('0x55')](_0x1db730,{'sessionId':md5(_0x2530d4)})[_0x3fb9('0x36')](function(_0x3b858a){logger[_0x3fb9('0x19')](JSON[_0x3fb9('0x40')](_0x3b858a));return{'source':_0x3b858a[_0x3fb9('0x56')][_0x3fb9('0x57')],'resolvedQuery':_0x3b858a[_0x3fb9('0x56')][_0x3fb9('0x58')],'action':_0x3b858a['result'][_0x3fb9('0x59')],'actionIncomplete':_0x3b858a['result'][_0x3fb9('0x5a')],'speech':_0x3b858a[_0x3fb9('0x56')][_0x3fb9('0x5b')][_0x3fb9('0x5c')],'score':_0x3b858a[_0x3fb9('0x56')][_0x3fb9('0x5d')],'statusCode':_0x3b858a['status'][_0x3fb9('0x5e')],'endConversation':_0x3b858a[_0x3fb9('0x56')]['metadata'][_0x3fb9('0x5f')]||![],'isFallbackIntent':_0x3b858a[_0x3fb9('0x56')][_0x3fb9('0x60')][_0x3fb9('0x61')]};});};exports['googleDialogflowV2']=function(_0x39aedf,_0x711576,_0x4d2c7b,_0x4b489c,_0x4fae62,_0x1c43c9){var _0x30b108=_0x4b489c[_0x3fb9('0x62')](/\\n/g,'\x0a');var _0x52566e={'credentials':{'private_key':_0x30b108,'client_email':_0x4d2c7b}};var _0x3e6793=new dialogflow[(_0x3fb9('0x63'))](_0x52566e);var _0x375bb8=_0x3e6793[_0x3fb9('0x64')](_0x711576,md5(_0x39aedf));var _0x5ec887={'session':_0x375bb8,'queryInput':{'text':{'text':_0x4fae62,'languageCode':_0x1c43c9}}};return _0x3e6793[_0x3fb9('0x65')](_0x5ec887)[_0x3fb9('0x36')](function(_0x39f41c){if(_0x39f41c&&_0x39f41c[_0x3fb9('0x43')]){logger[_0x3fb9('0x19')](_0x3fb9('0x66'),JSON['stringify'](_0x39f41c));var _0x4cd82c=_0x39f41c[0x0];if(_0x4cd82c){var _0x5d4b3f={'action':_0x4cd82c['queryResult'][_0x3fb9('0x59')],'allRequiredParamsPresent':_0x4cd82c[_0x3fb9('0x67')][_0x3fb9('0x68')],'endConversation':_0x4cd82c[_0x3fb9('0x67')]['diagnosticInfo']&&_0x4cd82c[_0x3fb9('0x67')][_0x3fb9('0x69')][_0x3fb9('0x6a')]?_0x4cd82c[_0x3fb9('0x67')][_0x3fb9('0x69')][_0x3fb9('0x6a')][_0x3fb9('0x6b')][_0x3fb9('0x6c')]:![],'fulfillmentText':_0x4cd82c[_0x3fb9('0x67')][_0x3fb9('0x6d')],'intentName':_0x4cd82c[_0x3fb9('0x67')][_0x3fb9('0x6e')][_0x3fb9('0x52')],'intentDisplayName':_0x4cd82c[_0x3fb9('0x67')][_0x3fb9('0x6e')]['displayName'],'isFallbackIntent':_0x4cd82c[_0x3fb9('0x67')][_0x3fb9('0x6e')][_0x3fb9('0x6f')],'languageCode':_0x4cd82c[_0x3fb9('0x67')]['languageCode'],'queryText':_0x4cd82c['queryResult'][_0x3fb9('0x70')],'responseId':_0x4cd82c[_0x3fb9('0x71')],'score':_0x4cd82c[_0x3fb9('0x67')][_0x3fb9('0x72')],'speech':_0x4cd82c['queryResult'][_0x3fb9('0x6d')],'providerResponse':JSON['stringify'](_0x39f41c)};return _0x5d4b3f;}}});};exports[_0x3fb9('0x73')]=function(_0x50faa2,_0x45d0ef,_0x2eada2,_0x36e018){return tilde[_0x3fb9('0x47')](_0x50faa2,_0x45d0ef,_0x2eada2,_0x36e018)[_0x3fb9('0x36')](function(_0x9f1fbe){try{fs[_0x3fb9('0x3a')](_0x50faa2);}catch(_0x416183){logger[_0x3fb9('0x1c')](_0x416183);}logger['info'](_0x3fb9('0x74'),_0x9f1fbe[_0x3fb9('0x4b')]);logger[_0x3fb9('0x19')](_0x3fb9('0x75'),_0x9f1fbe[_0x3fb9('0x4c')]);return _0x9f1fbe;});};exports[_0x3fb9('0x76')]=function(_0x4e60e2,_0x2c1c6f,_0x460d9a,_0x487ce7,_0x259eee,_0x55b42c){var _0x106de=path['resolve'](__dirname,_0x3fb9('0x28'),rs['generate'](0x4)+_0x3fb9('0x37'));var _0x140cc6;return aws[_0x3fb9('0x77')](_0x4e60e2,_0x2c1c6f,_0x460d9a,_0x487ce7,_0x259eee,_0x55b42c,_0x106de)['then'](function(){_0x140cc6=path[_0x3fb9('0x27')](__dirname,'tmp',rs[_0x3fb9('0x29')](0x4)+_0x3fb9('0x2a'));return convertFile(_0x106de,_0x140cc6);})[_0x3fb9('0x36')](function(){try{fs['unlink'](_0x106de);fs[_0x3fb9('0x2c')](_0x140cc6,'777');}catch(_0x106571){logger[_0x3fb9('0x1c')](_0x106571);}return _0x140cc6[_0x3fb9('0x2d')]('.')[0x0];});};exports['awsLex']=function(_0x54c2d2,_0x2a3081,_0x341a2a,_0xe573c2,_0x58a172,_0x1f9e92){return aws[_0x3fb9('0x78')](_0x54c2d2,_0x2a3081,_0x341a2a,_0xe573c2,_0x58a172,_0x1f9e92)[_0x3fb9('0x36')](function(_0x37d6ae){logger[_0x3fb9('0x19')](JSON[_0x3fb9('0x40')](_0x37d6ae));return _0x37d6ae;});};exports[_0x3fb9('0x79')]=function(_0x40170a,_0x13c425,_0x248721,_0x38f4a7){var _0x3b2d49=util[_0x3fb9('0x7a')](_0x3fb9('0x7b'),ISPEECH_API,_0x40170a,encodeURIComponent(_0x13c425),_0x248721,_0x38f4a7);var _0x1e9b30=path[_0x3fb9('0x27')](__dirname,_0x3fb9('0x28'),rs['generate'](0x4)+_0x3fb9('0x37'));var _0x248da6;return downloadFile(_0x3b2d49,_0x1e9b30)['then'](function(){_0x248da6=path['resolve'](__dirname,'tmp',rs[_0x3fb9('0x29')](0x4)+'.wav');return convertFile(_0x1e9b30,_0x248da6);})['then'](function(){try{fs[_0x3fb9('0x3a')](_0x1e9b30);fs['chmodSync'](_0x248da6,'777');}catch(_0x14a72e){logger[_0x3fb9('0x1c')](_0x14a72e);}return _0x248da6[_0x3fb9('0x2d')]('.')[0x0];});};exports[_0x3fb9('0x7c')]=function(_0x58f181,_0x145221,_0x392e4e,_0x46a23a){var _0x2e4468=util[_0x3fb9('0x7a')]('%s?apikey=%s&action=recognize&locale=%s&content-type=audio/x-wav&audio=%s&%s',ISPEECH_API,_0x145221,_0x392e4e,base64Encode(_0x58f181),_0x46a23a?util[_0x3fb9('0x7a')]('model=%s',encodeURIComponent(_0x46a23a)):'freeform=3');return uploadFile(_0x2e4468)[_0x3fb9('0x36')](function(_0x115a6c){return querystring[_0x3fb9('0xb')](_0x115a6c);});};exports[_0x3fb9('0x7d')]=function(_0x33c184,_0x20d09c){return sestek['nda'](_0x33c184,_0x20d09c)['then'](function(_0x235e64){logger[_0x3fb9('0x19')](JSON[_0x3fb9('0x40')](_0x235e64));var _0x52d2be={'speech':_0x235e64[_0x3fb9('0x7e')],'action':_0x235e64[_0x3fb9('0x7f')]?_0x235e64[_0x3fb9('0x7f')][_0x3fb9('0x80')]:undefined,'actiondata':_0x235e64[_0x3fb9('0x7f')]?_0x235e64[_0x3fb9('0x7f')]['CustomActionData']:undefined};if(_0x235e64[_0x3fb9('0x7f')]&&_0x235e64[_0x3fb9('0x7f')]['AudioFromTts']){return base64Decode(_0x235e64['channelData']['AudioFromTts']['Data'],path[_0x3fb9('0x27')](__dirname,_0x3fb9('0x28'),rs[_0x3fb9('0x29')](0x4)+_0x3fb9('0x2a')))[_0x3fb9('0x36')](function(_0x38d827){_0x52d2be[_0x3fb9('0x81')]=_0x38d827;return _0x52d2be;});}return _0x52d2be;});};exports[_0x3fb9('0x82')]=function(){return __dirname;};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5027=['./nda','exports'];(function(_0x49d41c,_0x2bdc35){var _0xb64c5f=function(_0x28f535){while(--_0x28f535){_0x49d41c['push'](_0x49d41c['shift']());}};_0xb64c5f(++_0x2bdc35);}(_0x5027,0x1ea));var _0x7502=function(_0x2ff8b4,_0x2188e4){_0x2ff8b4=_0x2ff8b4-0x0;var _0x22ee1c=_0x5027[_0x2ff8b4];return _0x22ee1c;};var nda=require(_0x7502('0x0'));module[_0x7502('0x1')]={'nda':nda};
\ No newline at end of file
+var _0x6948=['./nda'];(function(_0x530e85,_0xb2b242){var _0x967369=function(_0x2a85e7){while(--_0x2a85e7){_0x530e85['push'](_0x530e85['shift']());}};_0x967369(++_0xb2b242);}(_0x6948,0x94));var _0x8694=function(_0x397e5f,_0x454c8f){_0x397e5f=_0x397e5f-0x0;var _0x5302b8=_0x6948[_0x397e5f];return _0x5302b8;};var nda=require(_0x8694('0x0'));module['exports']={'nda':nda};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaa88=['then','ndassistant_url','/api/NaturalDialogAssistant/v1/Run','ndaactivity_type','Nda','uniqueid','callerid','calleridname','extension','text','access_token','project','body','ProjectName','ndagenerate_audio','channelData','custom_action','CustomAction','custom_action_data','CustomActionData','stringify','request-promise','url','../../../../../config/logger','agi','POST','resolve','ndauth_url','username'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0xaa88,0x137));var _0x8aa8=function(_0x108d5f,_0x33f82d){_0x108d5f=_0x108d5f-0x0;var _0x456ea3=_0xaa88[_0x108d5f];return _0x456ea3;};'use strict';var rp=require(_0x8aa8('0x0'));var url=require(_0x8aa8('0x1'));var logger=require(_0x8aa8('0x2'))(_0x8aa8('0x3'));module['exports']=function(_0x4ba9dd,_0x3a5b12){var _0x43f7e4={'method':_0x8aa8('0x4'),'uri':url[_0x8aa8('0x5')](_0x3a5b12[_0x8aa8('0x6')],'/token'),'form':{'grant_type':'password','username':_0x3a5b12[_0x8aa8('0x7')],'password':_0x3a5b12['password']},'json':!![]};return rp(_0x43f7e4)[_0x8aa8('0x8')](function(_0x1ed84d){var _0x27c08d={'method':_0x8aa8('0x4'),'uri':url['resolve'](_0x3a5b12[_0x8aa8('0x9')],_0x8aa8('0xa')),'body':{'type':_0x3a5b12[_0x8aa8('0xb')]||'message','channelId':_0x8aa8('0xc'),'conversation':{'id':_0x4ba9dd[_0x8aa8('0xd')]},'from':{'id':_0x4ba9dd[_0x8aa8('0xe')],'name':_0x4ba9dd[_0x8aa8('0xf')]},'recipient':{'id':_0x4ba9dd['dnid'],'name':_0x4ba9dd[_0x8aa8('0x10')]},'text':_0x3a5b12[_0x8aa8('0x11')],'channelData':{}},'headers':{'Authorization':'Bearer\x20'+_0x1ed84d[_0x8aa8('0x12')]},'json':!![]};if(_0x3a5b12[_0x8aa8('0x13')]){_0x27c08d[_0x8aa8('0x14')]['channelData'][_0x8aa8('0x15')]=_0x3a5b12[_0x8aa8('0x13')];}if(_0x3a5b12[_0x8aa8('0x16')]=='1'){_0x27c08d['body'][_0x8aa8('0x17')]['AudioOutputSettings']={'Generate':!![],'PutInStructuredPart':![],'ExpectedFormat':'audio/wav'};}if(_0x3a5b12[_0x8aa8('0x18')]){_0x27c08d[_0x8aa8('0x14')][_0x8aa8('0x17')][_0x8aa8('0x19')]=_0x3a5b12[_0x8aa8('0x18')];if(_0x3a5b12[_0x8aa8('0x1a')]){_0x27c08d[_0x8aa8('0x14')][_0x8aa8('0x17')][_0x8aa8('0x1b')]=_0x3a5b12['custom_action_data'];}}logger['info'](JSON[_0x8aa8('0x1c')](_0x27c08d));return rp(_0x27c08d);});};
\ No newline at end of file
+var _0x24cf=['Bearer\x20','project','body','channelData','audio/wav','custom_action','CustomAction','custom_action_data','info','stringify','../../../../../config/logger','agi','exports','POST','resolve','ndauth_url','/token','then','ndassistant_url','ndaactivity_type','message','Nda','uniqueid','callerid','calleridname','extension','text'];(function(_0x5427a1,_0x17bf53){var _0x447c2f=function(_0x2872bb){while(--_0x2872bb){_0x5427a1['push'](_0x5427a1['shift']());}};_0x447c2f(++_0x17bf53);}(_0x24cf,0x1d5));var _0xf24c=function(_0x3799a0,_0x41c0a1){_0x3799a0=_0x3799a0-0x0;var _0x298169=_0x24cf[_0x3799a0];return _0x298169;};'use strict';var rp=require('request-promise');var url=require('url');var logger=require(_0xf24c('0x0'))(_0xf24c('0x1'));module[_0xf24c('0x2')]=function(_0x40675a,_0x45f945){var _0x4cc9b1={'method':_0xf24c('0x3'),'uri':url[_0xf24c('0x4')](_0x45f945[_0xf24c('0x5')],_0xf24c('0x6')),'form':{'grant_type':'password','username':_0x45f945['username'],'password':_0x45f945['password']},'json':!![]};return rp(_0x4cc9b1)[_0xf24c('0x7')](function(_0x596e81){var _0x3b7cf1={'method':_0xf24c('0x3'),'uri':url[_0xf24c('0x4')](_0x45f945[_0xf24c('0x8')],'/api/NaturalDialogAssistant/v1/Run'),'body':{'type':_0x45f945[_0xf24c('0x9')]||_0xf24c('0xa'),'channelId':_0xf24c('0xb'),'conversation':{'id':_0x40675a[_0xf24c('0xc')]},'from':{'id':_0x40675a[_0xf24c('0xd')],'name':_0x40675a[_0xf24c('0xe')]},'recipient':{'id':_0x40675a['dnid'],'name':_0x40675a[_0xf24c('0xf')]},'text':_0x45f945[_0xf24c('0x10')],'channelData':{}},'headers':{'Authorization':_0xf24c('0x11')+_0x596e81['access_token']},'json':!![]};if(_0x45f945[_0xf24c('0x12')]){_0x3b7cf1[_0xf24c('0x13')]['channelData']['ProjectName']=_0x45f945[_0xf24c('0x12')];}if(_0x45f945['ndagenerate_audio']=='1'){_0x3b7cf1[_0xf24c('0x13')][_0xf24c('0x14')]['AudioOutputSettings']={'Generate':!![],'PutInStructuredPart':![],'ExpectedFormat':_0xf24c('0x15')};}if(_0x45f945[_0xf24c('0x16')]){_0x3b7cf1[_0xf24c('0x13')][_0xf24c('0x14')][_0xf24c('0x17')]=_0x45f945['custom_action'];if(_0x45f945['custom_action_data']){_0x3b7cf1[_0xf24c('0x13')][_0xf24c('0x14')]['CustomActionData']=_0x45f945[_0xf24c('0x18')];}}logger[_0xf24c('0x19')](JSON[_0xf24c('0x1a')](_0x3b7cf1));return rp(_0x3b7cf1);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3bcc=['exports'];(function(_0x134950,_0x476da3){var _0x8538c0=function(_0x528a1d){while(--_0x528a1d){_0x134950['push'](_0x134950['shift']());}};_0x8538c0(++_0x476da3);}(_0x3bcc,0x1a9));var _0xc3bc=function(_0x57905c,_0x1c1c26){_0x57905c=_0x57905c-0x0;var _0x5e70b1=_0x3bcc[_0x57905c];return _0x5e70b1;};'use strict';var asr=require('./lib/api');module[_0xc3bc('0x0')]=function(_0x2498b9,_0x48cae4,_0x6e201a,_0x26dd81){return asr(_0x2498b9,_0x48cae4,_0x6e201a,_0x26dd81);};
\ No newline at end of file
+var _0x7cf9=['./lib/api','exports'];(function(_0x3ec2c4,_0x35f175){var _0x44581b=function(_0x32d574){while(--_0x32d574){_0x3ec2c4['push'](_0x3ec2c4['shift']());}};_0x44581b(++_0x35f175);}(_0x7cf9,0x120));var _0x97cf=function(_0x5b69f3,_0x58b066){_0x5b69f3=_0x5b69f3-0x0;var _0x42c0e3=_0x7cf9[_0x5b69f3];return _0x42c0e3;};'use strict';var asr=require(_0x97cf('0x0'));module[_0x97cf('0x1')]=function(_0x35d393,_0x1d3e50,_0x4bb9bb,_0x58393c){return asr(_0x35d393,_0x1d3e50,_0x4bb9bb,_0x58393c);};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7d57=['wss://runa.tilde.lv/client/ws/speech/LVASR-ONLINE','No\x20speech.\x20Sent\x20when\x20the\x20incoming\x20audio\x20contains\x20a\x20large\x20portion\x20of\x20silence\x20or\x20non-speech','createHash','digest','hex','Open\x20Tilde\x20ASR\x20socket','unix','send','stringify','createReadStream','data','error','Tilde\x20ASR\x20send\x20error','terminate','status','result','final','hypotheses','transcript','likelihood','Success.','Aborted.\x20Recognition\x20was\x20aborted\x20for\x20some\x20reason.','Not\x20available.\x20Max\x20load\x20limit\x20reached.','Authentication\x20failed.','All\x20recognition\x20workers\x20are\x20currently\x20in\x20use\x20and\x20real-time\x20recognition\x20is\x20not\x20possible.','Tilde\x20ASR\x20parse\x20error','Close\x20Tilde\x20ASR\x20socket','Error\x20Tilde\x20ASR\x20socket','isNil','isObject','open','message','close','bluebird','lodash','moment','crypto','exports','info','Tilde\x20URI'];(function(_0x12ab49,_0x3622c3){var _0x679594=function(_0x1f2843){while(--_0x1f2843){_0x12ab49['push'](_0x12ab49['shift']());}};_0x679594(++_0x3622c3);}(_0x7d57,0x161));var _0x77d5=function(_0x2605dc,_0x50cf7e){_0x2605dc=_0x2605dc-0x0;var _0x4568c9=_0x7d57[_0x2605dc];return _0x4568c9;};'use strict';var BPromise=require(_0x77d5('0x0'));var _=require(_0x77d5('0x1'));var fs=require('fs');var WebSocket=require('ws');var moment=require(_0x77d5('0x2'));var crypto=require(_0x77d5('0x3'));var logger=require('../../../../../../config/logger')('agi');module[_0x77d5('0x4')]=function(_0x353aeb,_0x5b3bd0,_0x57f11f,_0xc492a0){return new BPromise(function(_0x242bb5,_0x53d864){logger[_0x77d5('0x5')](_0x77d5('0x6'),_0xc492a0||'wss://runa.tilde.lv/client/ws/speech/LVASR-ONLINE');var _0x23a4ef=new WebSocket(_0xc492a0||_0x77d5('0x7'),{'perMessageDeflate':![]});var _0x306e2d='';var _0x37aa57='0';var _0x5136ce='1';var _0x413262=_0x77d5('0x8');function _0x4cf3c6(_0x4303be){var _0x464c27=crypto[_0x77d5('0x9')]('sha1');_0x464c27['update'](_0x4303be);return _0x464c27[_0x77d5('0xa')](_0x77d5('0xb'));}function _0x5e6f24(){try{logger[_0x77d5('0x5')](_0x77d5('0xc'));var _0xe82137=moment()[_0x77d5('0xd')]();var _0x3e5c8d=_0x4cf3c6(_0xe82137+_0x5b3bd0+_0x57f11f);_0x23a4ef[_0x77d5('0xe')](JSON[_0x77d5('0xf')]({'appID':_0x5b3bd0,'timestamp':_0xe82137,'appKey':_0x3e5c8d}));var _0x2a6393=fs[_0x77d5('0x10')](_0x353aeb);_0x2a6393['on'](_0x77d5('0x11'),function(_0x1640f7){_0x23a4ef[_0x77d5('0xe')](_0x1640f7);});_0x2a6393['on']('close',function(){_0x23a4ef[_0x77d5('0xe')]('EOS');});}catch(_0x4301b1){logger[_0x77d5('0x12')](_0x77d5('0x13'),JSON[_0x77d5('0xf')](_0x4301b1));_0x23a4ef[_0x77d5('0x14')]();}}function _0x3fb29b(_0x23e99d){try{if(_0x23e99d){var _0x28072a=JSON['parse'](_0x23e99d);switch(_0x28072a[_0x77d5('0x15')]){case 0x0:if(_0x28072a[_0x77d5('0x16')]){if(_0x28072a[_0x77d5('0x16')][_0x77d5('0x17')]){logger['info']('Tilde\x20ASR\x20hypoteses',JSON['stringify'](_0x28072a[_0x77d5('0x16')][_0x77d5('0x18')]));_0x306e2d=_0x28072a[_0x77d5('0x16')][_0x77d5('0x18')][0x0][_0x77d5('0x19')];_0x37aa57=_0x28072a[_0x77d5('0x16')][_0x77d5('0x18')][0x0][_0x77d5('0x1a')];_0x5136ce='0';_0x413262=_0x77d5('0x1b');_0x23a4ef['terminate']();}}break;case 0x1:logger[_0x77d5('0x5')](_0x77d5('0x8'));_0x5136ce='1';_0x413262=_0x77d5('0x8');break;case 0x2:logger[_0x77d5('0x5')](_0x77d5('0x1c'));_0x5136ce='2';_0x413262=_0x77d5('0x1c');break;case 0x9:logger[_0x77d5('0x5')](_0x77d5('0x1d'));_0x5136ce='9';_0x413262='Not\x20available.\x20Max\x20load\x20limit\x20reached.';break;case 0xa:logger[_0x77d5('0x5')](_0x77d5('0x1e'));_0x5136ce='10';_0x413262=_0x77d5('0x1e');break;case 0xb:logger['info']('All\x20recognition\x20workers\x20are\x20currently\x20in\x20use\x20and\x20real-time\x20recognition\x20is\x20not\x20possible.');_0x5136ce='11';_0x413262=_0x77d5('0x1f');}}}catch(_0x34b416){logger['error'](_0x77d5('0x20'),JSON[_0x77d5('0xf')](_0x34b416));_0x23a4ef[_0x77d5('0x14')]();}}function _0x24278d(){logger[_0x77d5('0x5')](_0x77d5('0x21'));_0x242bb5({'transcript':_0x306e2d,'confidence':_0x37aa57,'status':_0x5136ce,'status_message':_0x413262});}function _0x9849d(_0xca3564){logger['error'](_0x77d5('0x22'));if(!_[_0x77d5('0x23')](_0xca3564)){logger[_0x77d5('0x12')](_[_0x77d5('0x24')](_0xca3564)?JSON[_0x77d5('0xf')](_0xca3564):_0xca3564);}}_0x23a4ef['on'](_0x77d5('0x25'),_0x5e6f24);_0x23a4ef['on'](_0x77d5('0x26'),_0x3fb29b);_0x23a4ef['on'](_0x77d5('0x27'),_0x24278d);_0x23a4ef['on'](_0x77d5('0x12'),_0x9849d);});};
\ No newline at end of file
+var _0x904a=['createHash','sha1','update','digest','hex','info','Open\x20Tilde\x20ASR\x20socket','unix','send','stringify','createReadStream','data','close','error','Tilde\x20ASR\x20send\x20error','terminate','parse','status','result','final','hypotheses','transcript','likelihood','No\x20speech.\x20Sent\x20when\x20the\x20incoming\x20audio\x20contains\x20a\x20large\x20portion\x20of\x20silence\x20or\x20non-speech','Aborted.\x20Recognition\x20was\x20aborted\x20for\x20some\x20reason.','Not\x20available.\x20Max\x20load\x20limit\x20reached.','All\x20recognition\x20workers\x20are\x20currently\x20in\x20use\x20and\x20real-time\x20recognition\x20is\x20not\x20possible.','Close\x20Tilde\x20ASR\x20socket','isObject','open','message','bluebird','lodash','crypto','../../../../../../config/logger','agi','exports','Tilde\x20URI','wss://runa.tilde.lv/client/ws/speech/LVASR-ONLINE'];(function(_0x432682,_0x253044){var _0x463d05=function(_0xa73403){while(--_0xa73403){_0x432682['push'](_0x432682['shift']());}};_0x463d05(++_0x253044);}(_0x904a,0x17e));var _0xa904=function(_0x188f32,_0x2d0c86){_0x188f32=_0x188f32-0x0;var _0x56c2f5=_0x904a[_0x188f32];return _0x56c2f5;};'use strict';var BPromise=require(_0xa904('0x0'));var _=require(_0xa904('0x1'));var fs=require('fs');var WebSocket=require('ws');var moment=require('moment');var crypto=require(_0xa904('0x2'));var logger=require(_0xa904('0x3'))(_0xa904('0x4'));module[_0xa904('0x5')]=function(_0x2e4fd4,_0x3e48a2,_0x25d95b,_0x564490){return new BPromise(function(_0x158d45,_0x3c963c){logger['info'](_0xa904('0x6'),_0x564490||_0xa904('0x7'));var _0x4c5756=new WebSocket(_0x564490||_0xa904('0x7'),{'perMessageDeflate':![]});var _0x17fdfb='';var _0x14275b='0';var _0x8c866d='1';var _0x5793ad='No\x20speech.\x20Sent\x20when\x20the\x20incoming\x20audio\x20contains\x20a\x20large\x20portion\x20of\x20silence\x20or\x20non-speech';function _0x387a72(_0x4bb857){var _0x15fe82=crypto[_0xa904('0x8')](_0xa904('0x9'));_0x15fe82[_0xa904('0xa')](_0x4bb857);return _0x15fe82[_0xa904('0xb')](_0xa904('0xc'));}function _0x215dcd(){try{logger[_0xa904('0xd')](_0xa904('0xe'));var _0x1678a5=moment()[_0xa904('0xf')]();var _0x4c9694=_0x387a72(_0x1678a5+_0x3e48a2+_0x25d95b);_0x4c5756[_0xa904('0x10')](JSON[_0xa904('0x11')]({'appID':_0x3e48a2,'timestamp':_0x1678a5,'appKey':_0x4c9694}));var _0x4a5d8d=fs[_0xa904('0x12')](_0x2e4fd4);_0x4a5d8d['on'](_0xa904('0x13'),function(_0x30d708){_0x4c5756[_0xa904('0x10')](_0x30d708);});_0x4a5d8d['on'](_0xa904('0x14'),function(){_0x4c5756[_0xa904('0x10')]('EOS');});}catch(_0x4c0281){logger[_0xa904('0x15')](_0xa904('0x16'),JSON[_0xa904('0x11')](_0x4c0281));_0x4c5756[_0xa904('0x17')]();}}function _0x7db6b1(_0x191098){try{if(_0x191098){var _0x16dab1=JSON[_0xa904('0x18')](_0x191098);switch(_0x16dab1[_0xa904('0x19')]){case 0x0:if(_0x16dab1[_0xa904('0x1a')]){if(_0x16dab1[_0xa904('0x1a')][_0xa904('0x1b')]){logger[_0xa904('0xd')]('Tilde\x20ASR\x20hypoteses',JSON[_0xa904('0x11')](_0x16dab1['result'][_0xa904('0x1c')]));_0x17fdfb=_0x16dab1['result'][_0xa904('0x1c')][0x0][_0xa904('0x1d')];_0x14275b=_0x16dab1[_0xa904('0x1a')][_0xa904('0x1c')][0x0][_0xa904('0x1e')];_0x8c866d='0';_0x5793ad='Success.';_0x4c5756[_0xa904('0x17')]();}}break;case 0x1:logger[_0xa904('0xd')]('No\x20speech.\x20Sent\x20when\x20the\x20incoming\x20audio\x20contains\x20a\x20large\x20portion\x20of\x20silence\x20or\x20non-speech');_0x8c866d='1';_0x5793ad=_0xa904('0x1f');break;case 0x2:logger[_0xa904('0xd')](_0xa904('0x20'));_0x8c866d='2';_0x5793ad='Aborted.\x20Recognition\x20was\x20aborted\x20for\x20some\x20reason.';break;case 0x9:logger['info'](_0xa904('0x21'));_0x8c866d='9';_0x5793ad=_0xa904('0x21');break;case 0xa:logger['info']('Authentication\x20failed.');_0x8c866d='10';_0x5793ad='Authentication\x20failed.';break;case 0xb:logger[_0xa904('0xd')](_0xa904('0x22'));_0x8c866d='11';_0x5793ad=_0xa904('0x22');}}}catch(_0x1a1913){logger[_0xa904('0x15')]('Tilde\x20ASR\x20parse\x20error',JSON['stringify'](_0x1a1913));_0x4c5756['terminate']();}}function _0x512937(){logger[_0xa904('0xd')](_0xa904('0x23'));_0x158d45({'transcript':_0x17fdfb,'confidence':_0x14275b,'status':_0x8c866d,'status_message':_0x5793ad});}function _0x426306(_0x1b1e6d){logger[_0xa904('0x15')]('Error\x20Tilde\x20ASR\x20socket');if(!_['isNil'](_0x1b1e6d)){logger[_0xa904('0x15')](_[_0xa904('0x24')](_0x1b1e6d)?JSON[_0xa904('0x11')](_0x1b1e6d):_0x1b1e6d);}}_0x4c5756['on'](_0xa904('0x25'),_0x215dcd);_0x4c5756['on'](_0xa904('0x26'),_0x7db6b1);_0x4c5756['on']('close',_0x512937);_0x4c5756['on'](_0xa904('0x15'),_0x426306);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6664=['./asr'];(function(_0x3cd005,_0x4c995a){var _0x3e7d8b=function(_0x137659){while(--_0x137659){_0x3cd005['push'](_0x3cd005['shift']());}};_0x3e7d8b(++_0x4c995a);}(_0x6664,0x165));var _0x4666=function(_0x516a77,_0xef2264){_0x516a77=_0x516a77-0x0;var _0x428556=_0x6664[_0x516a77];return _0x428556;};var asr=require(_0x4666('0x0'));module['exports']={'asr':asr};
\ No newline at end of file
+var _0x8642=['exports','./asr'];(function(_0x118d09,_0x306415){var _0x2eab57=function(_0x3faa5a){while(--_0x3faa5a){_0x118d09['push'](_0x118d09['shift']());}};_0x2eab57(++_0x306415);}(_0x8642,0xe9));var _0x2864=function(_0x4b7b69,_0x3ab075){_0x4b7b69=_0x4b7b69-0x0;var _0x173b4c=_0x8642[_0x4b7b69];return _0x173b4c;};var asr=require(_0x2864('0x0'));module[_0x2864('0x1')]={'asr':asr};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8835=['getConnections','E_AGI_SERVER_VOICE_DISABLED','destroy','E_AGI_SERVER_MAXCONNECTION','ready','connection','close','E_AGI_SERVER_CLOSE','nextTick','inherits','exports','util','net','events','EventEmitter','./error','./channel','127.0.0.1','call','emit','error','E_AGI_ARGUMENT_PORT','listen','listening'];(function(_0x38c769,_0x2c602e){var _0x42c78=function(_0x389d3b){while(--_0x389d3b){_0x38c769['push'](_0x38c769['shift']());}};_0x42c78(++_0x2c602e);}(_0x8835,0x9b));var _0x5883=function(_0x22906a,_0x184e09){_0x22906a=_0x22906a-0x0;var _0x90666c=_0x8835[_0x22906a];return _0x90666c;};'use strict';var util=require(_0x5883('0x0'));var net=require(_0x5883('0x1'));var EventEmitter=require(_0x5883('0x2'))[_0x5883('0x3')];var AGIError=require(_0x5883('0x4'));var AGIChannel=require(_0x5883('0x5'));var AGIServer=function(_0x354f19,_0x4e5803,_0x585d62){var _0x305d26=this,_0x354f19=_0x354f19||0x11dd,_0x4e5803=_0x4e5803||_0x5883('0x6'),_0x27cf4a=null,_0x582f74=0x0;EventEmitter[_0x5883('0x7')](_0x305d26);function _0x3ec537(){if(!_0x354f19){_0x305d26[_0x5883('0x8')](_0x5883('0x9'),new AGIError(_0x5883('0xa')));return![];}_0x27cf4a=net['createServer']();_0x27cf4a[_0x5883('0xb')](_0x354f19,_0x4e5803);_0x27cf4a['on']('listening',function(){_0x305d26[_0x5883('0x8')](_0x5883('0xc'));});_0x27cf4a['on']('connection',function(_0x41acda){_0x27cf4a[_0x5883('0xd')](function(_0x2e1ce9,_0x26f333){if(_0x2e1ce9){_0x305d26[_0x5883('0x8')](_0x5883('0x9'),new AGIError('E_AGI_SERVER_ERROR',_0x2e1ce9));}else if(_0x585d62&&_0x585d62<0x0){_0x305d26[_0x5883('0x8')](_0x5883('0x9'),new AGIError(_0x5883('0xe')));_0x41acda[_0x5883('0xf')]();}else if(_0x585d62&&_0x585d62>0x0&&_0x585d62<_0x26f333){_0x582f74+=0x1;_0x305d26[_0x5883('0x8')]('error',new AGIError(_0x5883('0x10'),_0x582f74));_0x41acda[_0x5883('0xf')]();}else{var _0x41c083=new AGIChannel(_0x41acda);_0x41c083['on'](_0x5883('0x11'),function(){_0x305d26[_0x5883('0x8')](_0x5883('0x12'),_0x41c083);});}});});_0x27cf4a['on'](_0x5883('0x9'),function(_0x3c236f){_0x305d26[_0x5883('0x8')](_0x5883('0x9'),new AGIError('E_AGI_SERVER_ERROR',_0x3c236f['code']));});_0x27cf4a['on'](_0x5883('0x13'),function(){_0x305d26['emit'](_0x5883('0x13'),new AGIError(_0x5883('0x14')));});}process[_0x5883('0x15')](function(){_0x3ec537();});};util[_0x5883('0x16')](AGIServer,EventEmitter);module[_0x5883('0x17')]=function(_0x10bf6c,_0x3789e6,_0x29043b){return new AGIServer(_0x10bf6c,_0x3789e6,_0x29043b);};
\ No newline at end of file
+var _0x743a=['./channel','127.0.0.1','emit','error','E_AGI_ARGUMENT_PORT','createServer','listen','listening','getConnections','E_AGI_SERVER_ERROR','destroy','E_AGI_SERVER_MAXCONNECTION','ready','close','E_AGI_SERVER_CLOSE','nextTick','inherits','exports','util','net','events','./error'];(function(_0x4244e0,_0x27e5a8){var _0x47c906=function(_0x334066){while(--_0x334066){_0x4244e0['push'](_0x4244e0['shift']());}};_0x47c906(++_0x27e5a8);}(_0x743a,0xac));var _0xa743=function(_0x41d768,_0x4b5677){_0x41d768=_0x41d768-0x0;var _0x1b16e6=_0x743a[_0x41d768];return _0x1b16e6;};'use strict';var util=require(_0xa743('0x0'));var net=require(_0xa743('0x1'));var EventEmitter=require(_0xa743('0x2'))['EventEmitter'];var AGIError=require(_0xa743('0x3'));var AGIChannel=require(_0xa743('0x4'));var AGIServer=function(_0x2d2f98,_0x54e179,_0x1dc63a){var _0x254bcb=this,_0x2d2f98=_0x2d2f98||0x11dd,_0x54e179=_0x54e179||_0xa743('0x5'),_0x5663c2=null,_0x30740c=0x0;EventEmitter['call'](_0x254bcb);function _0x5f124f(){if(!_0x2d2f98){_0x254bcb[_0xa743('0x6')](_0xa743('0x7'),new AGIError(_0xa743('0x8')));return![];}_0x5663c2=net[_0xa743('0x9')]();_0x5663c2[_0xa743('0xa')](_0x2d2f98,_0x54e179);_0x5663c2['on'](_0xa743('0xb'),function(){_0x254bcb[_0xa743('0x6')](_0xa743('0xb'));});_0x5663c2['on']('connection',function(_0x1edce4){_0x5663c2[_0xa743('0xc')](function(_0x457640,_0x4c99e3){if(_0x457640){_0x254bcb[_0xa743('0x6')](_0xa743('0x7'),new AGIError(_0xa743('0xd'),_0x457640));}else if(_0x1dc63a&&_0x1dc63a<0x0){_0x254bcb['emit'](_0xa743('0x7'),new AGIError('E_AGI_SERVER_VOICE_DISABLED'));_0x1edce4[_0xa743('0xe')]();}else if(_0x1dc63a&&_0x1dc63a>0x0&&_0x1dc63a<_0x4c99e3){_0x30740c+=0x1;_0x254bcb[_0xa743('0x6')](_0xa743('0x7'),new AGIError(_0xa743('0xf'),_0x30740c));_0x1edce4['destroy']();}else{var _0x5e29e0=new AGIChannel(_0x1edce4);_0x5e29e0['on'](_0xa743('0x10'),function(){_0x254bcb[_0xa743('0x6')]('connection',_0x5e29e0);});}});});_0x5663c2['on'](_0xa743('0x7'),function(_0x2483e6){_0x254bcb[_0xa743('0x6')](_0xa743('0x7'),new AGIError(_0xa743('0xd'),_0x2483e6['code']));});_0x5663c2['on'](_0xa743('0x11'),function(){_0x254bcb[_0xa743('0x6')](_0xa743('0x11'),new AGIError(_0xa743('0x12')));});}process[_0xa743('0x13')](function(){_0x5f124f();});};util[_0xa743('0x14')](AGIServer,EventEmitter);module[_0xa743('0x15')]=function(_0x557eae,_0x3026ae,_0x2cbc1d){return new AGIServer(_0x557eae,_0x3026ae,_0x2cbc1d);};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8ba6=['no\x20grammar\x20configured','MRCPRecog','MRCP_RECOG_CONFIDENCE','RECOG_INPUT()','MRCP_RECOG_TRANSCRIPT','RECOG_INSTANCE()','Executed\x20command\x20MRCPRecog\x20%s','Enter\x20in\x20AGI\x20(%s)\x20block','answer','Enter\x20in\x20ANSWER\x20(%s)\x20block','Wait\x20%s\x20seconds\x20before\x20answer','wait','no\x20list\x20selected','delay','add','minutes','CALLBACK\x20added\x20phone:\x20%s\x20on\x20list:\x20%s\x20at\x20%s','application','Executed\x20command\x20%s\x20%s','lumenvoxtts','Enter\x20in\x20LUMENVOXTTS\x20(%s)\x20block','sestektts','lumenvoxasr','RECOG_CONFIDENCE()','LUMENVOX_ASR_CONFIDENCE','LUMENVOX_ASR_INSTANCE','Enter\x20in\x20SESTEKASR\x20(%s)\x20block','SESTEK_ASR_CONFIDENCE','SESTEK_ASR_TRANSCRIPT','database','Enter\x20in\x20DATABASE\x20(%s)\x20block','odbc_id','no\x20odbc\x20database\x20found','no\x20query\x20configured','query:\x20%s','variable_id','no\x20variable\x20selected\x20for\x20the\x20result','no\x20variable\x20found','keys','%s[%s][%s]','%s_ROWS_COUNT','variable\x20%s\x20set','dial','debug','Enter\x20in\x20DIAL\x20(%s)\x20block','sip_id','no\x20user\x20found','SIP/%s','opts','Enter\x20in\x20DIALOGFLOW\x20(%s)\x20block','no\x20key\x20configured','bot','Trying\x20Dialogflow:\x20%s','googleDialogflow','DIALOGFLOW_%s','speech','dialogflow','Dialogflow\x20Result\x20%s','dialogflowV2','no\x20project_id\x20configured','no\x20client_email\x20configured','no\x20private_key\x20configured','no\x20anguage\x20configured','providerResponse','out','DialogflowV2\x20Result\x20%s','sesteknda','Enter\x20in\x20SESTEKNDA\x20(%s)\x20block','ndauth_url','no\x20ndauth\x20url\x20configured','username','no\x20username\x20configured','password','ndassistant_url','SESTEK_NDA_%s','audiofile','unlink','.wav','SestekNDA\x20Result\x20%s','end','Enter\x20in\x20END\x20(%s)\x20block','ext_dial','Enter\x20in\x20EXTERNAL\x20DIAL\x20(%s)\x20block','trunk_id','getTrunk','no\x20trunk\x20found','trunk_name','no\x20trunk\x20selected','DIAL','SIP/%s/%s','Executed\x20command\x20%s','finally','Enter\x20in\x20FINALLY\x20(%s)\x20block','file_id','no\x20file\x20audio\x20selected','getData','test','mindigit','maxdigit','hiddendigitsnum','generate','first','substr','getsecretdigits','Enter\x20in\x20GETSECRETDIGITS\x20(%s)\x20block','goal','Enter\x20in\x20GOAL\x20(%s)\x20block','GOAL\x20%s','goalname','awspolly','[AGI]\x20Enter\x20in\x20AWSPOLLY\x20(%s)\x20block','Trying\x20aws\x20Polly\x20%s','aws\x20Polly\x20%s\x20file\x20created','aws\x20Polly\x20is\x20unreachable','AWS_LEX_%s','Amazon\x20Lex\x20Result\x20%s','Amazon\x20Lex\x20is\x20unreachable','googleasr','Enter\x20in\x20GOOGLEASR\x20(%s)\x20block\x20%s','%s/recordings/%s','beep','NOBEEP','recordFile','google\x20%s\x20file\x20created','GOOGLE_ASR_%s','GoogleASR\x20Result\x20%s','tildeasr','Enter\x20in\x20TILDEASR\x20(%s)\x20block','no\x20appid\x20configured','appsecret','no\x20appsecret\x20configured','wav','intKey','tilde\x20%s\x20file\x20created','TILDE_ASR_%s','TildeASR\x20Result\x20%s','Enter\x20in\x20GOTO\x20(%s)\x20block','continueAt','context','gotoif','Enter\x20in\x20GOTOIF\x20(%s)\x20block','condition','no\x20condition\x20configured','true','false','EVAL\x20CONDITION\x20%s\x20%s','Enter\x20in\x20GOTOIFTIME\x20(%s)\x20block','interval_id','no\x20interval\x20configured','getIntervals','no\x20intervals\x20found','IFTIME(%s?true:false)','IFTIME\x20%s\x20%s','hangup','Enter\x20in\x20HANGUP\x20(%s)\x20block','ispeechasr','ispeech\x20%s\x20file\x20created','ISPEECH_ASR_%s','IspeechASR\x20Result\x20%s','ispeechtts','Trying\x20ispeech\x20TTS\x20%s','streamFile','login','findBy','no\x20find\x20by\x20configured','FIND\x20AGENT\x20%s\x20BY\x20%s','AGENT\x20%s\x20FOUND\x20BY','success','AGENT\x20%s\x20NOT\x20FOUND\x20BY','failure','logout','math','Enter\x20in\x20MATH\x20(%s)\x20block','operation','no\x20operation\x20configured','math\x20%s','variable\x20%s[key]\x20set','Enter\x20in\x20MENU\x20(%s)\x20block','no\x20file\x20audio\x20found','response','digit','Enter\x20in\x20NOOP\x20(%s)\x20block','output','Enter\x20in\x20PAUSE\x20(%s)\x20block','pause_id','playback','Enter\x20in\x20PLAYBACK\x20(%s)\x20block','PLAYBACK','queue','Enter\x20in\x20QUEUE\x20(%s)\x20block','queue_id','no\x20queue\x20selected','no\x20queue\x20found','indexOf','XMCS-QUEUE','QUEUE','macro','gosub','position','record','Enter\x20in\x20RECORD\x20(%s)\x20block','recordingFormat','%s/recordings/%s.%s','RECORDING_SAVENAME','Recording\x20%s\x20%s\x20%s\x20%s','escape_digits','restapi','Enter\x20in\x20RESTAPI\x20(%s)\x20block','no\x20url\x20configured','Response:','inspect','statusCode','%s_STATUS_MESSAGE','Enter\x20in\x20SAYDIGITS\x20(%s)\x20block','digits','Enter\x20in\x20SAYNUMBER\x20(%s)\x20block','sayNumber','number','sayphonetic','Enter\x20in\x20SAYPHONETIC\x20(%s)\x20block','sayPhonetic','sendMail','Enter\x20in\x20SENDMAIL\x20(%s)\x20block','account_id','no\x20mail\x20account\x20configured','email','Smtp','user','subject','service','host','port','secure','authentication','auth','template_id','sendMail\x20message','Trying\x20SendMail\x20with\x20account\x20%s','Mail\x20message\x20added\x20to\x20outgoing\x20process','SENDFAX\x20block\x20not\x20implemented','sendSMS','Enter\x20in\x20SENDSMS\x20(%s)\x20block','sms_account_id','sms_text','sendSMS\x20message','Sms\x20message\x20added\x20to\x20outgoing\x20process','set','no\x20variable\x20selected','start','START\x20CALLY\x20SQUARE','yes','Answer','Skipped\x20Answer','subproject','Enter\x20in\x20SUBPROJECT\x20(%s)\x20block','project_id','no\x20subproject\x20selected','no\x20subproject\x20found\x20with\x20id\x20%d','project\x20in\x20subproject\x20must\x20be\x20different\x20from\x20the\x20called\x20project','AGI','agi://%s/square,\x22%s\x22,\x22%s\x22','127.0.0.1','system','Enter\x20in\x20SYSTEM\x20(%s)\x20block','shellCommand','command','sh\x20command:\x20%s\x20result\x20on\x20variable:\x20%s','google_cloud_tts','Enter\x20in\x20Google\x20Cloud\x20TTS\x20(%s)\x20block','no\x20apiKey\x20configured','Trying\x20Google\x20Cloud\x20TTS\x20%s','Google\x20Cloud\x20TTS\x20%s\x20file\x20created','Google\x20Cloud\x20TTS\x20is\x20unreachable','Trying\x20Google\x20TTS\x20%s','Google\x20TTS\x20%s\x20file\x20created','unpause','Enter\x20in\x20UNPAUSE\x20(%s)\x20block','voicemail','VOICEMAIL','mailbox','Enter\x20in\x20SWITCH\x20(%s)\x20block','join','exports','path','lodash','odbc','randomstring','moment','mustache','agi','../../config/environment','./scripts','/var/opt/motion2/server/files','rawHeaders','rawBody','menu','getdigits','channel','rpc','mailRpc','prototype','getVariable','getVariableById','then','catch','getVoiceQueue','getVoiceQueueById','name','getSquareProject','getSquareOdbc','getSquareOdbcById','dsn','getSound','getSoundById','getSoundPath','getMailAccount','sendMailMessage','getIntervalById','interval','map','Intervals','getQueryOdbc','open','error','Error\x20getting\x20ODBC\x20connection\x20%s','info','ODBC\x20connection\x20successfully','query','Error\x20executing\x20query\x20%s','Error\x20closing\x20connection\x20to\x20odbc\x20%s','getSmsAccount','getSmsAccountById','createSmsMessage','createSquareDetailsReport','label','agicommand','arg_1','createSquareRecording','uniqueid','callerid','calleridname','extension','priority','dnid','file','createSquareMessage','createCmContact','isEmpty','callback_','random','lastName','isNil','phone','list_id','callback','scheduledAt','toString','callback_priority','getPause','getPauseById','agentPause','agentUnpause','agent','agentLogout','agentLogin','internal','%s/%s@from-sip/n','exec','trim','replace','googleCloudTTS','apiKey','google_cloud_tts_text_type','text','en-US','MALE','MP3','googleTTS','google_tts_language','restAPI','url','method','timeout','POST','PUT','toUpperCase','parse','headers','computedVariables','uri','render','stringify','body','An\x20incorrect\x20formatted\x20json\x20has\x20been\x20passed\x20to\x20the\x20function','statusMessage','message','500\x20-\x20Internal\x20Server\x20Error','options','key','dialogflow_language','googleDialogflowV2','dialogflowV2_project_id','client_email','private_key','dialogflowV2_language','sestekNDA','ispeechTTS','ispeech_tts_language','ispeechASR','ispeech_asr_language','isConfigured','model','awsPolly','aws_access_key_id','aws_secret_access_key','Amy','aws_text_type','awsLex','aws_lex_region','aws_bot_name','googleASR','google_asr_language','tildeASR','appid','clear','includes','isString','replaceObjectAllVariables','replaceAllVariables','hasOwnProperty','isPlainObject','recursiveNodeIndex','saveRestApiResult','%s.%s','isArray','setVariable','format','split','length','replaceAll','extra','getAndSetVariable','The\x20\x22%s\x22\x20variable\x20value\x20is:\x20%s','maxRetry','sync','retry','mrcpsynth','Enter\x20in\x20MRCPSynth\x20(%s)\x20block','no\x20text\x20configured','MRCPSynth','result','noop','Executed\x20command\x20MRCPSynth\x20%s','mrcprecog','Enter\x20in\x20MRCPRecog\x20(%s)\x20block','grammar'];(function(_0x50bfbe,_0x35e70f){var _0x3fa8a6=function(_0x11fb23){while(--_0x11fb23){_0x50bfbe['push'](_0x50bfbe['shift']());}};_0x3fa8a6(++_0x35e70f);}(_0x8ba6,0x11b));var _0x68ba=function(_0x58b077,_0x538ad4){_0x58b077=_0x58b077-0x0;var _0x13f91d=_0x8ba6[_0x58b077];return _0x13f91d;};'use strict';var fs=require('fs');var path=require(_0x68ba('0x0'));var util=require('util');var _=require(_0x68ba('0x1'));var sh=require('shelljs');var odbc=require(_0x68ba('0x2'))();var rs=require(_0x68ba('0x3'));var moment=require(_0x68ba('0x4'));var Mustache=require(_0x68ba('0x5'));var rp=require('request-promise');var logger=require('../../config/logger')(_0x68ba('0x6'));var config=require(_0x68ba('0x7'));var scripts=require(_0x68ba('0x8'));var FILES_PATH=_0x68ba('0x9');var recursiveMapAttributes=[_0x68ba('0xa'),_0x68ba('0xb')];var verticesWithRetry=[_0x68ba('0xc'),_0x68ba('0xd'),'getsecretdigits'];var AGIVertices=function(_0x33891a,_0x31bec9,_0x1ec922){this[_0x68ba('0xe')]=_0x33891a;this[_0x68ba('0xf')]=_0x31bec9;this[_0x68ba('0x10')]=_0x1ec922;};AGIVertices[_0x68ba('0x11')][_0x68ba('0x12')]=function(_0x2535ed,_0x2b7f65){this['rpc'][_0x68ba('0x13')](_0x2535ed)[_0x68ba('0x14')](function(_0x505116){_0x2b7f65(null,_0x505116?_0x505116['name']:![]);})[_0x68ba('0x15')](function(_0x577fe8){_0x2b7f65(_0x577fe8);});};AGIVertices[_0x68ba('0x11')][_0x68ba('0x16')]=function(_0x43e6cb,_0x382b39){this[_0x68ba('0xf')][_0x68ba('0x17')](_0x43e6cb)[_0x68ba('0x14')](function(_0x4c2693){_0x382b39(null,_0x4c2693?_0x4c2693[_0x68ba('0x18')]:![]);})[_0x68ba('0x15')](function(_0x1ce168){_0x382b39(_0x1ce168);});};AGIVertices[_0x68ba('0x11')][_0x68ba('0x19')]=function(_0x509a6a,_0x2babf4){this[_0x68ba('0xf')]['getSquareProjectById'](_0x509a6a)['then'](function(_0x33a324){_0x2babf4(null,_0x33a324?_0x33a324[_0x68ba('0x18')]:![]);})[_0x68ba('0x15')](function(_0x22d909){_0x2babf4(_0x22d909);});};AGIVertices[_0x68ba('0x11')][_0x68ba('0x1a')]=function(_0xb58385,_0x3aaa02){this[_0x68ba('0xf')][_0x68ba('0x1b')](_0xb58385)[_0x68ba('0x14')](function(_0x3bb47f){_0x3aaa02(null,_0x3bb47f?_0x3bb47f[_0x68ba('0x1c')]:![]);})['catch'](function(_0x5b09ee){_0x3aaa02(_0x5b09ee);});};AGIVertices[_0x68ba('0x11')]['getUser']=function(_0x27ed6a,_0x1299e0){this[_0x68ba('0xf')]['getUserById'](_0x27ed6a)['then'](function(_0x414090){_0x1299e0(null,_0x414090?_0x414090[_0x68ba('0x18')]:![]);})[_0x68ba('0x15')](function(_0x434d7a){_0x1299e0(_0x434d7a);});};AGIVertices['prototype']['getTrunk']=function(_0x10d265,_0x7cb225){this[_0x68ba('0xf')]['getTrunkById'](_0x10d265)[_0x68ba('0x14')](function(_0x5c7fbc){_0x7cb225(null,_0x5c7fbc?_0x5c7fbc[_0x68ba('0x18')]:![]);})[_0x68ba('0x15')](function(_0x2011d9){_0x7cb225(_0x2011d9);});};AGIVertices['prototype'][_0x68ba('0x1d')]=function(_0x4fcd25,_0x4da416){var _0x18fa9f=this;this['rpc'][_0x68ba('0x1e')](_0x4fcd25)['then'](function(_0x2ed5c3){_0x4da416(null,_0x2ed5c3?_0x18fa9f[_0x68ba('0x1f')](_0x2ed5c3['save_name']):![]);})[_0x68ba('0x15')](function(_0x533352){_0x4da416(_0x533352);});};AGIVertices['prototype'][_0x68ba('0x20')]=function(_0x1fe628,_0x2c21cc){this[_0x68ba('0xf')]['getMailAccountById'](_0x1fe628)['then'](function(_0x4e47bd){_0x2c21cc(null,_0x4e47bd?_0x4e47bd:![]);})[_0x68ba('0x15')](function(_0x26c11e){_0x2c21cc(_0x26c11e);});};AGIVertices['prototype']['sendMailMessage']=function(_0x51df1a,_0x53acc7,_0x141fdc){this[_0x68ba('0x10')][_0x68ba('0x21')](_0x51df1a,_0x53acc7)[_0x68ba('0x14')](function(){_0x141fdc(null);})[_0x68ba('0x15')](function(_0x3a8548){_0x141fdc(_0x3a8548);});};AGIVertices['prototype']['getIntervals']=function(_0x181b7e,_0x1b23e3){this[_0x68ba('0xf')][_0x68ba('0x22')](_0x181b7e)[_0x68ba('0x14')](function(_0x8a1044){if(_0x8a1044){if(_0x8a1044['IntervalId']){_0x1b23e3(null,[_0x8a1044[_0x68ba('0x23')]]);}else{_0x1b23e3(null,_[_0x68ba('0x24')](_0x8a1044[_0x68ba('0x25')],_0x68ba('0x23')));}}else{_0x1b23e3(null,![]);}})['catch'](function(_0x42a9a0){_0x1b23e3(_0x42a9a0);});};AGIVertices[_0x68ba('0x11')][_0x68ba('0x1f')]=function(_0x53dc5a){return util['format']('%s/sounds/converted/%s',FILES_PATH,_0x53dc5a);};AGIVertices[_0x68ba('0x11')][_0x68ba('0x26')]=function(_0x1364ac,_0x4a93a1,_0x468fd5){odbc[_0x68ba('0x27')](_0x1364ac,function(_0x490cf8){if(_0x490cf8){logger[_0x68ba('0x28')](_0x68ba('0x29'),_0x490cf8);_0x468fd5(_0x490cf8);}else{logger[_0x68ba('0x2a')](_0x68ba('0x2b'));odbc[_0x68ba('0x2c')](_0x4a93a1,function(_0x1bc540,_0x256b1f){if(_0x1bc540){logger[_0x68ba('0x2a')](_0x68ba('0x2d'),_0x4a93a1);_0x468fd5(_0x1bc540);}else{logger[_0x68ba('0x2a')]('Query\x20executed\x20correctly\x20%s',_0x4a93a1);odbc['close'](function(_0x2837e9){if(_0x2837e9){logger[_0x68ba('0x28')](_0x68ba('0x2e'),_0x2837e9);}_0x468fd5(null,_0x256b1f);});}});}});};AGIVertices[_0x68ba('0x11')][_0x68ba('0x2f')]=function(_0x3355c1,_0x2562dd){this[_0x68ba('0xf')][_0x68ba('0x30')](_0x3355c1)[_0x68ba('0x14')](function(_0x5d1111){_0x2562dd(null,_0x5d1111?_0x5d1111:![]);})['catch'](function(_0x3f2e44){_0x2562dd(_0x3f2e44);});};AGIVertices[_0x68ba('0x11')][_0x68ba('0x31')]=function(_0x4f8400,_0x1cba92){this['rpc'][_0x68ba('0x31')](_0x4f8400)[_0x68ba('0x14')](function(_0x37ea9b){_0x1cba92(null,_0x37ea9b);})[_0x68ba('0x15')](function(_0x2fcea9){_0x1cba92(_0x2fcea9);});};AGIVertices[_0x68ba('0x11')][_0x68ba('0x32')]=function(_0x203246,_0xdfcc6a,_0x58e670){this[_0x68ba('0xf')][_0x68ba('0x32')]({'uniqueid':this[_0x68ba('0xe')]['uniqueid'],'node':_0x203246[_0x68ba('0x33')],'application':_0x203246[_0x68ba('0x34')],'data':_0xdfcc6a||null,'project_name':this[_0x68ba('0xe')][_0x68ba('0x35')],'callerid':this[_0x68ba('0xe')]['callerid']})[_0x68ba('0x14')](function(_0x11be8d){if(_0x58e670){_0x58e670(null,_0x11be8d);}})[_0x68ba('0x15')](function(_0x393f86){if(_0x58e670){_0x58e670(_0x393f86);}});};AGIVertices[_0x68ba('0x11')][_0x68ba('0x36')]=function(_0x3a72a2,_0x45a5d6,_0x48675f,_0x322466){this['rpc'][_0x68ba('0x36')]({'uniqueid':this[_0x68ba('0xe')][_0x68ba('0x37')],'callerid':this['channel'][_0x68ba('0x38')],'calleridname':this[_0x68ba('0xe')][_0x68ba('0x39')],'context':this[_0x68ba('0xe')]['context'],'extension':this['channel'][_0x68ba('0x3a')],'priority':this[_0x68ba('0xe')][_0x68ba('0x3b')],'accountcode':this[_0x68ba('0xe')]['accountcode'],'dnid':this[_0x68ba('0xe')][_0x68ba('0x3c')],'projectName':this[_0x68ba('0xe')][_0x68ba('0x35')],'saveName':_0x45a5d6,'filename':_0x3a72a2[_0x68ba('0x3d')]||_0x45a5d6,'savePath':_0x48675f})[_0x68ba('0x14')](function(_0x2f1334){_0x322466(null,_0x2f1334);})[_0x68ba('0x15')](function(_0x10ad5a){_0x322466(_0x10ad5a);});};AGIVertices[_0x68ba('0x11')][_0x68ba('0x3e')]=function(_0x113fb9,_0x529d19,_0x2f07c7,_0xa6e30a,_0x176366){this[_0x68ba('0xf')][_0x68ba('0x3e')]({'uniqueid':this[_0x68ba('0xe')]['uniqueid'],'body':_0x113fb9,'direction':_0x529d19,'providerName':_0x2f07c7,'providerResponse':_0xa6e30a})[_0x68ba('0x14')](function(_0x5b6ee7){if(_0x176366){_0x176366(null,_0x5b6ee7);}})[_0x68ba('0x15')](function(_0xeba8){if(_0x176366){_0x176366(_0xeba8);}});};AGIVertices[_0x68ba('0x11')][_0x68ba('0x3f')]=function(_0x42d77b,_0x347750){this['rpc'][_0x68ba('0x3f')]({'firstName':_[_0x68ba('0x40')](_0x42d77b['name'])||_['isNil'](_0x42d77b[_0x68ba('0x18')])?_0x68ba('0x41')+Math[_0x68ba('0x42')]():_0x42d77b['name'],'lastName':_['isEmpty'](_0x42d77b[_0x68ba('0x43')])||_[_0x68ba('0x44')](_0x42d77b[_0x68ba('0x43')])?null:_0x42d77b[_0x68ba('0x43')],'phone':_0x42d77b[_0x68ba('0x45')],'ListId':_0x42d77b[_0x68ba('0x46')],'scheduledat':_0x42d77b['scheduledAt'],'callbackUniqueid':this['channel'][_0x68ba('0x37')],'tags':_0x68ba('0x47'),'description':'Callback\x20scheduled\x20at\x20'+_0x42d77b[_0x68ba('0x48')][_0x68ba('0x49')](),'priority':_0x42d77b[_0x68ba('0x4a')]})['then'](function(_0xa87688){_0x347750(null,_0xa87688);})['catch'](function(_0x11b82a){_0x347750(_0x11b82a);});};AGIVertices[_0x68ba('0x11')][_0x68ba('0x4b')]=function(_0x516eac,_0x136fb0){this[_0x68ba('0xf')][_0x68ba('0x4c')](_0x516eac)[_0x68ba('0x14')](function(_0x5c20e3){_0x136fb0(null,_0x5c20e3?_0x5c20e3[_0x68ba('0x18')]:![]);})[_0x68ba('0x15')](function(_0x33aaa1){_0x136fb0(_0x33aaa1);});};AGIVertices[_0x68ba('0x11')][_0x68ba('0x4d')]=function(_0x463152,_0x2a51ef,_0x15787b){var _0x50c3a8={'role':'agent'};_0x50c3a8[_0x463152]=this[_0x68ba('0xe')][_0x68ba('0x38')];this[_0x68ba('0xf')][_0x68ba('0x4d')](_0x50c3a8,_0x2a51ef,this[_0x68ba('0xe')][_0x68ba('0x37')])[_0x68ba('0x14')](function(_0x1d0ed0){_0x15787b(null,_[_0x68ba('0x44')](_0x1d0ed0)?![]:!![]);})[_0x68ba('0x15')](function(_0x437859){logger[_0x68ba('0x28')](_0x437859);_0x15787b(null,![]);});};AGIVertices[_0x68ba('0x11')][_0x68ba('0x4e')]=function(_0x2d366f,_0x25015b){var _0x492e64={'role':_0x68ba('0x4f')};_0x492e64[_0x2d366f]=this['channel']['callerid'];this[_0x68ba('0xf')]['agentUnpause'](_0x492e64)[_0x68ba('0x14')](function(_0x1d2d2c){_0x25015b(null,_[_0x68ba('0x44')](_0x1d2d2c)?![]:!![]);})[_0x68ba('0x15')](function(_0x527d98){logger[_0x68ba('0x28')](_0x527d98);_0x25015b(null,![]);});};AGIVertices[_0x68ba('0x11')]['agentLogout']=function(_0x51bd78,_0x4c3291){var _0x37967e={'role':_0x68ba('0x4f')};_0x37967e[_0x51bd78]=this[_0x68ba('0xe')][_0x68ba('0x38')];this[_0x68ba('0xf')][_0x68ba('0x50')](_0x37967e)[_0x68ba('0x14')](function(_0x27217f){_0x4c3291(null,_[_0x68ba('0x44')](_0x27217f)?![]:!![]);})[_0x68ba('0x15')](function(_0x56fa08){logger[_0x68ba('0x28')](_0x56fa08);_0x4c3291(null,![]);});};AGIVertices[_0x68ba('0x11')][_0x68ba('0x51')]=function(_0x5f3fb5,_0xaf6093){var _0x52918e={'role':_0x68ba('0x4f')};_0x52918e[_0x5f3fb5]=this[_0x68ba('0xe')][_0x68ba('0x38')];var _0x57a14a=_0x5f3fb5!=_0x68ba('0x52')?util['format'](_0x68ba('0x53'),'LOCAL',this['channel'][_0x68ba('0x38')]):undefined;this[_0x68ba('0xf')][_0x68ba('0x51')](_0x52918e,_0x57a14a)[_0x68ba('0x14')](function(_0x5e48fa){_0xaf6093(null,_['isNil'](_0x5e48fa)?![]:!![]);})[_0x68ba('0x15')](function(_0x181d58){logger[_0x68ba('0x28')](_0x181d58);_0xaf6093(null,![]);});};AGIVertices[_0x68ba('0x11')]['shellCommand']=function(_0x4a6571,_0x460372){sh[_0x68ba('0x54')](_[_0x68ba('0x55')](_0x4a6571),function(_0x477b2c,_0x5d2443){var _0xb80896=_0x5d2443[_0x68ba('0x56')](/(\r\n|\n|\r)/gm,'');_0x460372(null,_0xb80896);});};AGIVertices[_0x68ba('0x11')][_0x68ba('0x57')]=function(_0x86332d,_0x563c3e){scripts['googleCloudTTS'](_0x86332d[_0x68ba('0x58')],_0x86332d[_0x68ba('0x59')]||_0x68ba('0x5a'),_0x86332d[_0x68ba('0x5a')],_0x86332d['languageCode']||_0x68ba('0x5b'),_0x86332d['ssmlGender']||_0x68ba('0x5c'),_0x86332d['audioEncoding']||_0x68ba('0x5d'))[_0x68ba('0x14')](function(_0x5ae038){_0x563c3e(null,_0x5ae038);})[_0x68ba('0x15')](function(_0x5755e5){_0x563c3e(_0x5755e5);});};AGIVertices['prototype'][_0x68ba('0x5e')]=function(_0x51d023,_0x568b8e){scripts[_0x68ba('0x5e')](_0x51d023['text'],_0x51d023[_0x68ba('0x5f')]||'en',0x1)[_0x68ba('0x14')](function(_0x4593d2){_0x568b8e(null,_0x4593d2);})[_0x68ba('0x15')](function(_0x2125c6){_0x568b8e(_0x2125c6);});};AGIVertices['prototype'][_0x68ba('0x60')]=function(_0x5901f4,_0x35224f){var _0x23bc17={'uri':_0x5901f4[_0x68ba('0x61')],'method':_0x5901f4[_0x68ba('0x62')],'json':!![],'resolveWithFullResponse':!![],'strictSSL':![],'timeout':typeof parseInt(_0x5901f4[_0x68ba('0x63')])==='number'&&parseInt(_0x5901f4[_0x68ba('0x63')])>=0x1?parseInt(_0x5901f4[_0x68ba('0x63')])*0x3e8:0x5*0x3e8};if(_['includes']([_0x68ba('0x64'),_0x68ba('0x65')],_0x23bc17[_0x68ba('0x62')][_0x68ba('0x66')]())){try{_0x23bc17['body']=_0x5901f4[_0x68ba('0xb')]?JSON[_0x68ba('0x67')](_0x5901f4[_0x68ba('0xb')]):{};}catch(_0x4779b2){logger[_0x68ba('0x28')]('An\x20incorrect\x20formatted\x20json\x20body\x20has\x20been\x20passed\x20to\x20the\x20function',_0x4779b2);}}try{_0x23bc17[_0x68ba('0x68')]=_0x5901f4[_0x68ba('0xa')]?JSON[_0x68ba('0x67')](_0x5901f4[_0x68ba('0xa')]):{};}catch(_0x3acdc3){logger['error']('An\x20incorrect\x20formatted\x20json\x20headers\x20has\x20been\x20passed\x20to\x20the\x20function',_0x3acdc3);}if(_0x5901f4[_0x68ba('0x69')]){try{var _0x51beb7=require(_0x5901f4[_0x68ba('0x69')])['sync'](this,_0x23bc17);_0x23bc17[_0x68ba('0x6a')]=Mustache['render'](_0x5901f4[_0x68ba('0x61')],_0x51beb7,{},['$$','$$']);if(_0x23bc17[_0x68ba('0x68')]){_0x23bc17['headers']=JSON['parse'](Mustache[_0x68ba('0x6b')](JSON[_0x68ba('0x6c')](_0x23bc17['headers']),_0x51beb7,{},['$$','$$']));}if(_0x23bc17[_0x68ba('0x6d')]){_0x23bc17[_0x68ba('0x6d')]=JSON['parse'](Mustache[_0x68ba('0x6b')](JSON[_0x68ba('0x6c')](_0x23bc17[_0x68ba('0x6d')]),_0x51beb7,{},['$$','$$']));}}catch(_0x430358){logger[_0x68ba('0x28')](_0x68ba('0x6e'),_0x430358);}}rp(_0x23bc17)[_0x68ba('0x14')](function(_0x4c467b){var _0x354089={'statusCode':_0x4c467b['statusCode']||0xc8,'statusMessage':_0x4c467b[_0x68ba('0x6f')]||'OK','headers':_0x4c467b[_0x68ba('0x68')]||{},'body':_0x4c467b[_0x68ba('0x6d')]||{}};_0x35224f(null,_0x354089);})[_0x68ba('0x15')](function(_0xada353){var _0x903556={'statusCode':_0xada353['statusCode']||0x1f4,'statusMessage':_0xada353[_0x68ba('0x70')]||_0x68ba('0x71'),'headers':_0xada353['options']['headers']||{},'body':_0xada353[_0x68ba('0x72')][_0x68ba('0x6d')]||{}};_0x35224f(null,_0x903556);});};AGIVertices[_0x68ba('0x11')]['googleDialogflow']=function(_0x20d54d,_0x5dc0db){scripts['googleDialogflow'](this[_0x68ba('0xe')][_0x68ba('0x37')],_0x20d54d[_0x68ba('0x73')],_0x20d54d['text'],_0x20d54d[_0x68ba('0x74')]||'en')[_0x68ba('0x14')](function(_0xc1feaf){_0x5dc0db(null,_0xc1feaf);})[_0x68ba('0x15')](function(_0x5d49e2){_0x5dc0db(_0x5d49e2);});};AGIVertices[_0x68ba('0x11')][_0x68ba('0x75')]=function(_0x5e8661,_0x424176){scripts[_0x68ba('0x75')](this[_0x68ba('0xe')][_0x68ba('0x37')],_0x5e8661[_0x68ba('0x76')],_0x5e8661[_0x68ba('0x77')],_0x5e8661[_0x68ba('0x78')],_0x5e8661[_0x68ba('0x5a')],_0x5e8661[_0x68ba('0x79')]||'en')[_0x68ba('0x14')](function(_0x4fa874){_0x424176(null,_0x4fa874);})[_0x68ba('0x15')](function(_0x3c2166){_0x424176(_0x3c2166);});};AGIVertices[_0x68ba('0x11')]['sestekNDA']=function(_0xcf122,_0x16a9a8){scripts[_0x68ba('0x7a')](this[_0x68ba('0xe')],_0xcf122)[_0x68ba('0x14')](function(_0x11d397){_0x16a9a8(null,_0x11d397);})[_0x68ba('0x15')](function(_0x27c412){_0x16a9a8(_0x27c412);});};AGIVertices[_0x68ba('0x11')][_0x68ba('0x7b')]=function(_0x12b337,_0x884673){scripts[_0x68ba('0x7b')](_0x12b337[_0x68ba('0x73')],_0x12b337['text'],_0x12b337[_0x68ba('0x7c')]||'en-US',_0x12b337['speed'])['then'](function(_0x56823d){_0x884673(null,_0x56823d);})[_0x68ba('0x15')](function(_0x34da6e){_0x884673(_0x34da6e);});};AGIVertices[_0x68ba('0x11')][_0x68ba('0x7d')]=function(_0x56b6ea,_0x442312,_0x52c872){scripts[_0x68ba('0x7d')](_0x442312,_0x56b6ea[_0x68ba('0x73')],_0x56b6ea[_0x68ba('0x7e')]||'en-US',this[_0x68ba('0x7f')](_0x56b6ea[_0x68ba('0x80')])?_0x56b6ea[_0x68ba('0x80')]:undefined)[_0x68ba('0x14')](function(_0x269e27){_0x52c872(null,_0x269e27);})[_0x68ba('0x15')](function(_0x446010){_0x52c872(_0x446010);});};AGIVertices['prototype']['awsPolly']=function(_0x677967,_0x2a02f5){scripts[_0x68ba('0x81')](_0x677967[_0x68ba('0x82')],_0x677967[_0x68ba('0x83')],_0x677967['aws_polly_region'],_0x677967['aws_polly_voice']||_0x68ba('0x84'),_0x677967['text'],_0x677967[_0x68ba('0x85')]||_0x68ba('0x5a'))['then'](function(_0x1eff53){_0x2a02f5(null,_0x1eff53);})[_0x68ba('0x15')](function(_0x310b58){_0x2a02f5(_0x310b58);});};AGIVertices[_0x68ba('0x11')][_0x68ba('0x86')]=function(_0x1e5339,_0x2a0525){scripts[_0x68ba('0x86')](this['channel'][_0x68ba('0x37')],_0x1e5339['aws_access_key_id'],_0x1e5339[_0x68ba('0x83')],_0x1e5339[_0x68ba('0x87')],_0x1e5339['text'],_0x1e5339[_0x68ba('0x88')])[_0x68ba('0x14')](function(_0x260b35){_0x2a0525(null,_0x260b35);})['catch'](function(_0x34c8a4){_0x2a0525(_0x34c8a4);});};AGIVertices[_0x68ba('0x11')][_0x68ba('0x89')]=function(_0x556349,_0xe549b1,_0x8072){scripts['googleASR'](_0xe549b1,_0x556349[_0x68ba('0x73')],_0x556349[_0x68ba('0x8a')]||_0x68ba('0x5b'))['then'](function(_0xf1f8d9){_0x8072(null,_0xf1f8d9);})['catch'](function(_0x74bb6d){_0x8072(_0x74bb6d);});};AGIVertices[_0x68ba('0x11')][_0x68ba('0x8b')]=function(_0x12351b,_0x5722e8,_0x4f1acf){scripts[_0x68ba('0x8b')](_0x5722e8,_0x12351b[_0x68ba('0x8c')],_0x12351b['appsecret'],_0x12351b[_0x68ba('0x6a')])['then'](function(_0x372d2a){_0x4f1acf(null,_0x372d2a);})[_0x68ba('0x15')](function(_0x3ec919){_0x4f1acf(_0x3ec919);});};AGIVertices[_0x68ba('0x11')][_0x68ba('0x8d')]=function(_0x5911cb){var _0x2f33d6=_[_0x68ba('0x8e')](verticesWithRetry,_0x5911cb[_0x68ba('0x34')])?_0x5911cb:_['clone'](_0x5911cb);for(var _0x3725b3 in _0x2f33d6){if(_0x2f33d6['hasOwnProperty'](_0x3725b3)){if(_0x2f33d6[_0x3725b3]&&_[_0x68ba('0x8f')](_0x2f33d6[_0x3725b3])){if(_[_0x68ba('0x8e')](recursiveMapAttributes,_0x3725b3)){_0x2f33d6[_0x3725b3]=this[_0x68ba('0x90')](_0x2f33d6[_0x3725b3]);}else{_0x2f33d6[_0x3725b3]=this[_0x68ba('0x91')](_0x2f33d6[_0x3725b3]);}}}}return _0x2f33d6;};AGIVertices[_0x68ba('0x11')]['recursiveNodeIndex']=function(_0x520fd8){for(var _0x50e09b in _0x520fd8){if(_0x520fd8[_0x68ba('0x92')](_0x50e09b)){if(_[_0x68ba('0x93')](_0x520fd8[_0x50e09b])){this[_0x68ba('0x94')](_0x520fd8[_0x50e09b]);}else if(_['isArray'](_0x520fd8[_0x50e09b])){for(var _0x22eee7=0x0;_0x22eee7<_0x520fd8[_0x50e09b]['length'];_0x22eee7++){this[_0x68ba('0x94')](_0x520fd8[_0x50e09b][_0x22eee7]);}}else if(_['isString'](_0x520fd8[_0x50e09b])){_0x520fd8[_0x50e09b]=this[_0x68ba('0x91')](_0x520fd8[_0x50e09b]);}}}};AGIVertices[_0x68ba('0x11')][_0x68ba('0x95')]=function(_0x502d18,_0x3fe03b){for(var _0x521ee6 in _0x502d18){if(_0x502d18[_0x68ba('0x92')](_0x521ee6)){if(_['isPlainObject'](_0x502d18[_0x521ee6])){if(!_[_0x68ba('0x40')](_0x502d18[_0x521ee6])){this['saveRestApiResult'](_0x502d18[_0x521ee6],util['format'](_0x68ba('0x96'),_0x3fe03b,_0x521ee6));}}else if(_[_0x68ba('0x97')](_0x502d18[_0x521ee6])){for(var _0x24d942=0x0;_0x24d942<_0x502d18[_0x521ee6]['length'];_0x24d942++){this[_0x68ba('0x95')](_0x502d18[_0x521ee6][_0x24d942],util['format'](_0x68ba('0x96'),_0x3fe03b,_0x521ee6+'['+_0x24d942+']'));}}else{if(!_[_0x68ba('0x44')](_0x502d18[_0x521ee6])){this[_0x68ba('0xe')][_0x68ba('0x98')](util[_0x68ba('0x99')](_0x68ba('0x96'),_0x3fe03b,_0x521ee6),_0x502d18[_0x521ee6]);}}}}};AGIVertices[_0x68ba('0x11')]['replaceObjectAllVariables']=function(_0x3770a1){try{var _0xfd2be0=JSON[_0x68ba('0x67')](_0x3770a1);this[_0x68ba('0x94')](_0xfd2be0);return JSON[_0x68ba('0x6c')](_0xfd2be0);}catch(_0x491f8b){return this[_0x68ba('0x91')](_0x3770a1);}};AGIVertices['prototype'][_0x68ba('0x91')]=function(_0x97732f){var _0x4da5d7=_0x97732f[_0x68ba('0x9a')]('{');for(var _0x3bacf4=0x1;_0x3bacf4<_0x4da5d7[_0x68ba('0x9b')];_0x3bacf4+=0x1){var _0x3bb2bc=_0x4da5d7[_0x3bacf4][_0x68ba('0x9a')]('}');if(_0x3bb2bc[_0x68ba('0x9b')]>0x1){_0x97732f=_0x97732f[_0x68ba('0x9c')]('{'+_0x3bb2bc[0x0]+'}',this[_0x68ba('0xe')]['getVariable'](_0x3bb2bc[0x0])[_0x68ba('0x9d')]||_0x3bb2bc[0x0]);}}if(_0x4da5d7[_0x68ba('0x9b')]===0x1){return _0x97732f[_0x68ba('0x49')]();}return this[_0x68ba('0x91')](_0x97732f);};AGIVertices[_0x68ba('0x11')][_0x68ba('0x9e')]=function(_0x5abc13,_0x43056a){var _0x5f3fc0=this['channel'][_0x68ba('0x12')](_0x5abc13);if(_0x5f3fc0['result']===-0x1){return _0x5f3fc0;}logger['info'](util['format'](_0x68ba('0x9f'),_0x43056a,_0x5f3fc0['extra']));return this[_0x68ba('0xe')][_0x68ba('0x98')](_0x43056a,_0x5f3fc0[_0x68ba('0x9d')]);};AGIVertices['prototype'][_0x68ba('0x7f')]=function(_0x4c90ec){return _0x4c90ec&&_0x4c90ec!=='0'&&_0x4c90ec!=='-1'&&_0x4c90ec!=='';};AGIVertices[_0x68ba('0x11')][_0x68ba('0xa0')]=function(_0x44538a){this[_0x68ba('0x32')][_0x68ba('0xa1')](this,_0x44538a,'-');_0x44538a[_0x68ba('0xa2')]=_0x44538a['maxRetry'];return{'code':0xc8,'result':'-'};};AGIVertices[_0x68ba('0x11')][_0x68ba('0xa3')]=function(_0x5a7aa3){logger[_0x68ba('0x2a')](util['format'](_0x68ba('0xa4'),_0x5a7aa3['label']));if(!this['isConfigured'](_0x5a7aa3[_0x68ba('0x5a')])){return this[_0x68ba('0xe')]['noop'](_0x68ba('0xa5'));}var _0x2101ee='\x22'+_0x5a7aa3[_0x68ba('0x5a')]+'\x22';if(this['isConfigured'](_0x5a7aa3[_0x68ba('0x72')])){_0x2101ee+=','+_0x5a7aa3['options'];}var _0x2398e8=this['channel'][_0x68ba('0x54')](_0x68ba('0xa6'),_0x2101ee);if(_0x2398e8[_0x68ba('0xa7')]===-0x1){return _0x2398e8;}return this['channel'][_0x68ba('0xa8')](util['format'](_0x68ba('0xa9'),_0x2101ee));};AGIVertices[_0x68ba('0x11')][_0x68ba('0xaa')]=function(_0x3dd708){logger[_0x68ba('0x2a')](util['format'](_0x68ba('0xab'),_0x3dd708[_0x68ba('0x33')]));if(!this[_0x68ba('0x7f')](_0x3dd708[_0x68ba('0xac')])){return this[_0x68ba('0xe')][_0x68ba('0xa8')](_0x68ba('0xad'));}var _0x4f3c26=_0x3dd708[_0x68ba('0xac')];if(this[_0x68ba('0x7f')](_0x3dd708[_0x68ba('0x72')])){_0x4f3c26+=','+_0x3dd708[_0x68ba('0x72')];}var _0x40beef=this[_0x68ba('0xe')]['exec'](_0x68ba('0xae'),_0x4f3c26);if(_0x40beef['result']===-0x1){return _0x40beef;}var _0x379a1b=this[_0x68ba('0x9e')]('RECOG_CONFIDENCE()',_0x68ba('0xaf'));if(_0x379a1b['result']===-0x1){return _0x379a1b;}var _0x2801fa=this[_0x68ba('0x9e')](_0x68ba('0xb0'),_0x68ba('0xb1'));if(_0x2801fa[_0x68ba('0xa7')]===-0x1){return _0x2801fa;}var _0x54c57d=this[_0x68ba('0x9e')](_0x68ba('0xb2'),'MRCP_RECOG_INSTANCE');if(_0x54c57d['result']===-0x1){return _0x54c57d;}return this[_0x68ba('0xe')][_0x68ba('0xa8')](util[_0x68ba('0x99')](_0x68ba('0xb3'),_0x4f3c26));};AGIVertices[_0x68ba('0x11')][_0x68ba('0x6')]=function(_0x479812){logger[_0x68ba('0x2a')](util[_0x68ba('0x99')](_0x68ba('0xb4'),_0x479812['label']));return this['channel'][_0x68ba('0x6')]([_0x479812['command'],_0x479812['args']]);};AGIVertices['prototype'][_0x68ba('0xb5')]=function(_0x1c67ff){logger[_0x68ba('0x2a')](util[_0x68ba('0x99')](_0x68ba('0xb6'),_0x1c67ff[_0x68ba('0x33')]));if(this[_0x68ba('0x7f')](_0x1c67ff[_0x68ba('0x63')])){logger[_0x68ba('0x2a')](util[_0x68ba('0x99')](_0x68ba('0xb7'),_0x1c67ff['timeout']));var _0x360b9a=this['channel'][_0x68ba('0xb8')](_0x1c67ff[_0x68ba('0x63')]);if(_0x360b9a[_0x68ba('0xa7')]===-0x1){return _0x360b9a;}}return this[_0x68ba('0xe')][_0x68ba('0xb5')]();};AGIVertices['prototype'][_0x68ba('0x47')]=function(_0x381592){logger[_0x68ba('0x2a')](util[_0x68ba('0x99')]('Enter\x20in\x20CALLBACK\x20(%s)\x20block',_0x381592[_0x68ba('0x33')]));if(!this[_0x68ba('0x7f')](_0x381592[_0x68ba('0x46')])){return this['channel']['error'](_0x381592,_0x68ba('0xb9'));}_0x381592[_0x68ba('0x48')]=moment();if(this[_0x68ba('0x7f')](_0x381592[_0x68ba('0xba')])){_0x381592[_0x68ba('0x48')]=moment()[_0x68ba('0xbb')](_0x381592['delay'],_0x68ba('0xbc'));}if(!this[_0x68ba('0x7f')](_0x381592[_0x68ba('0x4a')])){_0x381592[_0x68ba('0x4a')]=0x2;}this[_0x68ba('0x3f')]['sync'](this,_0x381592);return this['channel'][_0x68ba('0xa8')](util[_0x68ba('0x99')](_0x68ba('0xbd'),_0x381592[_0x68ba('0x45')],_0x381592[_0x68ba('0x46')],_0x381592['scheduledAt']));};AGIVertices[_0x68ba('0x11')]['custom_app']=function(_0x57408e){logger[_0x68ba('0x2a')](util[_0x68ba('0x99')]('Enter\x20in\x20CUSTOM\x20APP\x20(%s)\x20block',_0x57408e[_0x68ba('0x33')]));var _0x239d67=this[_0x68ba('0xe')][_0x68ba('0x54')](_0x57408e[_0x68ba('0xbe')],_0x57408e['options']);if(_0x239d67[_0x68ba('0xa7')]===-0x1){return _0x239d67;}return this[_0x68ba('0xe')]['noop'](util[_0x68ba('0x99')](_0x68ba('0xbf'),_0x57408e[_0x68ba('0xbe')],_0x57408e[_0x68ba('0x72')]));};AGIVertices['prototype'][_0x68ba('0xc0')]=function(_0x4ebf04){logger[_0x68ba('0x2a')](util[_0x68ba('0x99')](_0x68ba('0xc1'),_0x4ebf04[_0x68ba('0x33')]));if(!this[_0x68ba('0x7f')](_0x4ebf04['text'])){return this[_0x68ba('0xe')]['noop'](_0x68ba('0xa5'));}var _0x373f5c='\x22'+_0x4ebf04[_0x68ba('0x5a')]+'\x22';if(this[_0x68ba('0x7f')](_0x4ebf04[_0x68ba('0x72')])){_0x373f5c+=','+_0x4ebf04[_0x68ba('0x72')];}var _0x46fc01=this[_0x68ba('0xe')][_0x68ba('0x54')](_0x68ba('0xa6'),_0x373f5c);if(_0x46fc01[_0x68ba('0xa7')]===-0x1){return _0x46fc01;}return this[_0x68ba('0xe')][_0x68ba('0xa8')](util[_0x68ba('0x99')](_0x68ba('0xa9'),_0x373f5c));};AGIVertices[_0x68ba('0x11')][_0x68ba('0xc2')]=function(_0x3bb75d){logger['info'](util[_0x68ba('0x99')]('Enter\x20in\x20SESTEKTTS\x20(%s)\x20block',_0x3bb75d[_0x68ba('0x33')]));if(!this['isConfigured'](_0x3bb75d[_0x68ba('0x5a')])){return this[_0x68ba('0xe')][_0x68ba('0xa8')]('no\x20text\x20configured');}var _0x46989a='\x22'+_0x3bb75d[_0x68ba('0x5a')]+'\x22';if(this['isConfigured'](_0x3bb75d[_0x68ba('0x72')])){_0x46989a+=','+_0x3bb75d[_0x68ba('0x72')];}var _0x135d40=this['channel'][_0x68ba('0x54')](_0x68ba('0xa6'),_0x46989a);if(_0x135d40[_0x68ba('0xa7')]===-0x1){return _0x135d40;}return this['channel'][_0x68ba('0xa8')](util['format']('Executed\x20command\x20MRCPSynth\x20%s',_0x46989a));};AGIVertices[_0x68ba('0x11')][_0x68ba('0xc3')]=function(_0xb73906){logger[_0x68ba('0x2a')](util[_0x68ba('0x99')]('Enter\x20in\x20LUMENVOXASR\x20(%s)\x20block',_0xb73906['label']));if(!this[_0x68ba('0x7f')](_0xb73906[_0x68ba('0xac')])){return this[_0x68ba('0xe')]['noop'](_0x68ba('0xad'));}var _0x1da3e3=_0xb73906[_0x68ba('0xac')];if(this[_0x68ba('0x7f')](_0xb73906[_0x68ba('0x72')])){_0x1da3e3+=','+_0xb73906[_0x68ba('0x72')];}var _0x33d112=this[_0x68ba('0xe')][_0x68ba('0x54')](_0x68ba('0xae'),_0x1da3e3);if(_0x33d112[_0x68ba('0xa7')]===-0x1){return _0x33d112;}var _0x59eb82=this[_0x68ba('0x9e')](_0x68ba('0xc4'),_0x68ba('0xc5'));if(_0x59eb82['result']===-0x1){return _0x59eb82;}var _0x3f6d8c=this[_0x68ba('0x9e')]('RECOG_INPUT()','LUMENVOX_ASR_TRANSCRIPT');if(_0x3f6d8c[_0x68ba('0xa7')]===-0x1){return _0x3f6d8c;}var _0x1f0460=this[_0x68ba('0x9e')](_0x68ba('0xb2'),_0x68ba('0xc6'));if(_0x1f0460['result']===-0x1){return _0x1f0460;}return this[_0x68ba('0xe')][_0x68ba('0xa8')](util[_0x68ba('0x99')](_0x68ba('0xb3'),_0x1da3e3));};AGIVertices['prototype']['sestekasr']=function(_0x3f997d){logger[_0x68ba('0x2a')](util['format'](_0x68ba('0xc7'),_0x3f997d[_0x68ba('0x33')]));if(!this[_0x68ba('0x7f')](_0x3f997d['grammar'])){return this[_0x68ba('0xe')]['noop'](_0x68ba('0xad'));}var _0x192fc9=_0x3f997d['grammar'];if(this[_0x68ba('0x7f')](_0x3f997d[_0x68ba('0x72')])){_0x192fc9+=','+_0x3f997d[_0x68ba('0x72')];}var _0x3c31aa=this[_0x68ba('0xe')]['exec'](_0x68ba('0xae'),_0x192fc9);if(_0x3c31aa[_0x68ba('0xa7')]===-0x1){return _0x3c31aa;}var _0x16261c=this[_0x68ba('0x9e')](_0x68ba('0xc4'),_0x68ba('0xc8'));if(_0x16261c[_0x68ba('0xa7')]===-0x1){return _0x16261c;}var _0x476d30=this[_0x68ba('0x9e')](_0x68ba('0xb0'),_0x68ba('0xc9'));if(_0x476d30[_0x68ba('0xa7')]===-0x1){return _0x476d30;}var _0x202a79=this['getAndSetVariable']('RECOG_INSTANCE()','SESTEK_ASR_INSTANCE');if(_0x202a79['result']===-0x1){return _0x202a79;}return this[_0x68ba('0xe')][_0x68ba('0xa8')](util[_0x68ba('0x99')](_0x68ba('0xb3'),_0x192fc9));};AGIVertices['prototype'][_0x68ba('0xca')]=function(_0x5137ce){logger[_0x68ba('0x2a')](util[_0x68ba('0x99')](_0x68ba('0xcb'),_0x5137ce['label']));if(!this[_0x68ba('0x7f')](_0x5137ce['odbc_id'])){return this[_0x68ba('0xe')]['error'](_0x5137ce,'no\x20database\x20selected');}var _0x50209c=this[_0x68ba('0x1a')][_0x68ba('0xa1')](this,_0x5137ce[_0x68ba('0xcc')]);if(!_0x50209c){return this['channel'][_0x68ba('0x28')](_0x5137ce,_0x68ba('0xcd'));}if(!this['isConfigured'](_0x5137ce[_0x68ba('0x2c')])){return this['channel']['error'](_0x5137ce,_0x68ba('0xce'));}var _0x12bd6c=_0x5137ce[_0x68ba('0x2c')]['replace'](/(\r\n|\n|\r)/gm,'\x20');this[_0x68ba('0xe')][_0x68ba('0xa8')](util[_0x68ba('0x99')](_0x68ba('0xcf'),_0x12bd6c));var _0x574056=this[_0x68ba('0x26')][_0x68ba('0xa1')](this,_0x50209c,_0x12bd6c);this[_0x68ba('0x32')]['sync'](this,_0x5137ce,_0x12bd6c);if(!this['isConfigured'](_0x5137ce[_0x68ba('0xd0')])){return this[_0x68ba('0xe')]['noop'](_0x68ba('0xd1'));}var _0x49de84=this[_0x68ba('0x12')][_0x68ba('0xa1')](this,_0x5137ce[_0x68ba('0xd0')]);if(!_0x49de84){return this['channel']['error'](_0x5137ce,_0x68ba('0xd2'));}var _0x50dee5=this;_0x574056['forEach'](function(_0x31de81,_0x4c8ec7){Object[_0x68ba('0xd3')](_0x31de81)['forEach'](function(_0x5b5db7){_0x50dee5[_0x68ba('0xe')][_0x68ba('0x98')](util[_0x68ba('0x99')](_0x68ba('0xd4'),_0x49de84,_0x4c8ec7,_0x5b5db7),_0x31de81[_0x5b5db7]);});});this[_0x68ba('0xe')]['setVariable'](util['format'](_0x68ba('0xd5'),_0x49de84),_0x574056[_0x68ba('0x9b')]);return this['channel'][_0x68ba('0xa8')](util[_0x68ba('0x99')](_0x68ba('0xd6'),_0x49de84));};AGIVertices['prototype'][_0x68ba('0xd7')]=function(_0x1489fe){logger[_0x68ba('0xd8')](util[_0x68ba('0x99')](_0x68ba('0xd9'),_0x1489fe[_0x68ba('0x33')]));if(!this[_0x68ba('0x7f')](_0x1489fe[_0x68ba('0xda')])){return this[_0x68ba('0xe')]['error'](_0x1489fe,'no\x20user\x20selected');}var _0x585549=this['getUser'][_0x68ba('0xa1')](this,_0x1489fe['sip_id']);if(!_0x585549){return this[_0x68ba('0xe')]['error'](_0x1489fe,_0x68ba('0xdb'));}var _0x4fc8f8=this[_0x68ba('0xe')][_0x68ba('0x54')]('DIAL',[util[_0x68ba('0x99')](_0x68ba('0xdc'),_0x585549),_0x1489fe['timeout'],_0x1489fe[_0x68ba('0xdd')],_0x1489fe['url']]);if(_0x4fc8f8[_0x68ba('0xa7')]===-0x1){return _0x4fc8f8;}return this[_0x68ba('0xe')][_0x68ba('0xa8')](util[_0x68ba('0x99')]('Executed\x20command\x20%s','DIAL'));};AGIVertices[_0x68ba('0x11')]['dialogflow']=function(_0x3c6d35){logger[_0x68ba('0x2a')](util[_0x68ba('0x99')](_0x68ba('0xde'),_0x3c6d35[_0x68ba('0x33')]));if(!this[_0x68ba('0x7f')](_0x3c6d35[_0x68ba('0x73')])){return this[_0x68ba('0xe')][_0x68ba('0xa8')](_0x68ba('0xdf'));}if(!this[_0x68ba('0x7f')](_0x3c6d35['text'])){return this[_0x68ba('0xe')][_0x68ba('0xa8')](_0x68ba('0xa5'));}this[_0x68ba('0xe')][_0x68ba('0xe0')]=!![];this['createSquareDetailsReport'](_0x3c6d35);this['createSquareMessage'](_0x3c6d35['text'],'in','','');this[_0x68ba('0xe')][_0x68ba('0xa8')](util[_0x68ba('0x99')](_0x68ba('0xe1'),_0x3c6d35['text']));var _0x189973=this[_0x68ba('0xe2')][_0x68ba('0xa1')](this,_0x3c6d35);if(_0x189973){for(var _0x5b0015 in _0x189973){if(_0x189973[_0x68ba('0x92')](_0x5b0015)){this[_0x68ba('0xe')][_0x68ba('0x98')](util[_0x68ba('0x99')](_0x68ba('0xe3'),_0x5b0015[_0x68ba('0x66')]()),_0x189973[_0x5b0015]);}}this[_0x68ba('0x3e')](_0x189973[_0x68ba('0xe4')],'out',_0x68ba('0xe5'),'');return this[_0x68ba('0xe')]['noop'](util[_0x68ba('0x99')](_0x68ba('0xe6'),_0x189973['speech']));}return this['channel'][_0x68ba('0x28')](_0x3c6d35,'Dialogflow\x20is\x20unreachable');};AGIVertices[_0x68ba('0x11')][_0x68ba('0xe7')]=function(_0x1e6da4){logger[_0x68ba('0x2a')](util['format']('Enter\x20in\x20DIALOGFLOW\x20V2\x20(%s)\x20block',_0x1e6da4[_0x68ba('0x33')]));if(!this[_0x68ba('0x7f')](_0x1e6da4[_0x68ba('0x76')])){return this['channel'][_0x68ba('0xa8')](_0x68ba('0xe8'));}if(!this[_0x68ba('0x7f')](_0x1e6da4[_0x68ba('0x77')])){return this[_0x68ba('0xe')][_0x68ba('0xa8')](_0x68ba('0xe9'));}if(!this['isConfigured'](_0x1e6da4[_0x68ba('0x78')])){return this['channel']['noop'](_0x68ba('0xea'));}if(!this[_0x68ba('0x7f')](_0x1e6da4['dialogflowV2_language'])){return this[_0x68ba('0xe')][_0x68ba('0xa8')](_0x68ba('0xeb'));}if(!this[_0x68ba('0x7f')](_0x1e6da4[_0x68ba('0x5a')])){return this['channel'][_0x68ba('0xa8')]('no\x20text\x20configured');}this[_0x68ba('0xe')][_0x68ba('0xe0')]=!![];this[_0x68ba('0x32')](_0x1e6da4);this['createSquareMessage'](_0x1e6da4[_0x68ba('0x5a')],'in','','');this[_0x68ba('0xe')][_0x68ba('0xa8')](util[_0x68ba('0x99')]('Trying\x20DialogflowV2:\x20%s',_0x1e6da4[_0x68ba('0x5a')]));var _0x3ea123=this[_0x68ba('0x75')][_0x68ba('0xa1')](this,_0x1e6da4);if(_0x3ea123){for(var _0x1c7cd1 in _0x3ea123){if(_0x3ea123[_0x68ba('0x92')](_0x1c7cd1)){if(_0x1c7cd1!==_0x68ba('0xec')){this['channel'][_0x68ba('0x98')](util[_0x68ba('0x99')]('DIALOGFLOW_%s',_0x1c7cd1[_0x68ba('0x66')]()),_0x3ea123[_0x1c7cd1]);}}}this['createSquareMessage'](_0x3ea123[_0x68ba('0xe4')],_0x68ba('0xed'),_0x68ba('0xe7'),_0x3ea123['providerResponse']);return this[_0x68ba('0xe')][_0x68ba('0xa8')](util['format'](_0x68ba('0xee'),_0x3ea123['speech']));}return this[_0x68ba('0xe')][_0x68ba('0x28')](_0x1e6da4,'DialogflowV2\x20is\x20unreachable');};AGIVertices[_0x68ba('0x11')][_0x68ba('0xef')]=function(_0x368c66){logger[_0x68ba('0x2a')](util[_0x68ba('0x99')](_0x68ba('0xf0'),_0x368c66[_0x68ba('0x33')]));if(!this[_0x68ba('0x7f')](_0x368c66[_0x68ba('0xf1')])){return this[_0x68ba('0xe')][_0x68ba('0xa8')](_0x68ba('0xf2'));}if(!this[_0x68ba('0x7f')](_0x368c66[_0x68ba('0xf3')])){return this[_0x68ba('0xe')][_0x68ba('0xa8')](_0x68ba('0xf4'));}if(!this[_0x68ba('0x7f')](_0x368c66[_0x68ba('0xf5')])){return this[_0x68ba('0xe')]['noop']('no\x20password\x20configured');}if(!this[_0x68ba('0x7f')](_0x368c66[_0x68ba('0xf6')])){return this['channel'][_0x68ba('0xa8')](_0x68ba('0xa5'));}this[_0x68ba('0xe')][_0x68ba('0xe0')]=!![];this['createSquareDetailsReport'](_0x368c66);this[_0x68ba('0x3e')](_0x368c66[_0x68ba('0x5a')],'in','','');this[_0x68ba('0xe')][_0x68ba('0xa8')](util[_0x68ba('0x99')]('Trying\x20SestekNDA:\x20%s',_0x368c66[_0x68ba('0x5a')]));var _0x420c45=this['sestekNDA'][_0x68ba('0xa1')](this,_0x368c66);if(_0x420c45){for(var _0x36f5ee in _0x420c45){if(_0x420c45[_0x68ba('0x92')](_0x36f5ee)){this[_0x68ba('0xe')][_0x68ba('0x98')](util[_0x68ba('0x99')](_0x68ba('0xf7'),_0x36f5ee[_0x68ba('0x66')]()),_0x420c45[_0x36f5ee]);}}this[_0x68ba('0x3e')](_0x420c45[_0x68ba('0xe4')],_0x68ba('0xed'),_0x68ba('0xef'),'');if(_0x420c45[_0x68ba('0xf8')]){this[_0x68ba('0xe')]['noop'](util[_0x68ba('0x99')]('Sestek\x20NDA\x20%s\x20file\x20created',_0x420c45[_0x68ba('0xf8')]));var _0x347084=this[_0x68ba('0xe')]['streamFile'](_0x420c45[_0x68ba('0xf8')]);try{fs[_0x68ba('0xf9')](_0x420c45[_0x68ba('0xf8')]+_0x68ba('0xfa'));}catch(_0x4cff85){logger[_0x68ba('0x28')](_0x4cff85);}return _0x347084;}else{return this[_0x68ba('0xe')][_0x68ba('0xa8')](util[_0x68ba('0x99')](_0x68ba('0xfb'),_0x420c45[_0x68ba('0xe4')]));}}return this[_0x68ba('0xe')]['error'](_0x368c66,'SestekNDA\x20is\x20unreachable');};AGIVertices[_0x68ba('0x11')][_0x68ba('0xfc')]=function(_0x56c192){logger[_0x68ba('0x2a')](util[_0x68ba('0x99')](_0x68ba('0xfd'),_0x56c192[_0x68ba('0x33')]));return this[_0x68ba('0xe')][_0x68ba('0xa8')](_0x68ba('0xfc'));};AGIVertices['prototype'][_0x68ba('0xfe')]=function(_0x1453ea){logger['info'](util[_0x68ba('0x99')](_0x68ba('0xff'),_0x1453ea[_0x68ba('0x33')]));var _0x5deb5e='';if(_0x1453ea[_0x68ba('0x100')]){if(!this['isConfigured'](_0x1453ea[_0x68ba('0x100')])){return this[_0x68ba('0xe')][_0x68ba('0x28')](_0x1453ea,'no\x20trunk\x20selected');}else{var _0x4e4c13=parseInt(_0x1453ea[_0x68ba('0x100')],0xa);if(isNaN(_0x4e4c13)){_0x5deb5e=_0x1453ea[_0x68ba('0x100')];}else{_0x5deb5e=this[_0x68ba('0x101')][_0x68ba('0xa1')](this,_0x1453ea['trunk_id']);if(!_0x5deb5e){return this[_0x68ba('0xe')][_0x68ba('0x28')](_0x1453ea,_0x68ba('0x102'));}}}}else if(_0x1453ea[_0x68ba('0x103')]){_0x5deb5e=_0x1453ea[_0x68ba('0x103')];}else{return this['channel'][_0x68ba('0x28')](_0x1453ea,_0x68ba('0x104'));}var _0x461d7f=this[_0x68ba('0xe')][_0x68ba('0x54')](_0x68ba('0x105'),[util[_0x68ba('0x99')](_0x68ba('0x106'),_0x5deb5e,_0x1453ea[_0x68ba('0x45')]),_0x1453ea[_0x68ba('0x63')],_0x1453ea[_0x68ba('0xdd')],_0x1453ea[_0x68ba('0x61')]]);if(_0x461d7f[_0x68ba('0xa7')]===-0x1){return _0x461d7f;}return this[_0x68ba('0xe')][_0x68ba('0xa8')](util[_0x68ba('0x99')](_0x68ba('0x107'),_0x68ba('0x105')));};AGIVertices[_0x68ba('0x11')][_0x68ba('0x108')]=function(_0x4e3d5a){logger[_0x68ba('0x2a')](util[_0x68ba('0x99')](_0x68ba('0x109'),_0x4e3d5a[_0x68ba('0x33')]));return this[_0x68ba('0xe')]['noop'](_0x68ba('0x108'));};AGIVertices['prototype'][_0x68ba('0xd')]=function(_0x4f2a59){logger[_0x68ba('0x2a')](util[_0x68ba('0x99')]('Enter\x20in\x20GETDIGITS\x20(%s)\x20block',_0x4f2a59[_0x68ba('0x33')]));if(_0x4f2a59[_0x68ba('0xa2')]===0x0){return this[_0x68ba('0xa0')](_0x4f2a59);}_0x4f2a59[_0x68ba('0xa2')]-=0x1;if(!this[_0x68ba('0x7f')](_0x4f2a59[_0x68ba('0x10a')])){return this[_0x68ba('0xe')][_0x68ba('0x28')](_0x4f2a59,_0x68ba('0x10b'));}var _0x389684=this[_0x68ba('0x1d')][_0x68ba('0xa1')](this,_0x4f2a59[_0x68ba('0x10a')]);if(!_0x389684){return this[_0x68ba('0xe')][_0x68ba('0x28')](_0x4f2a59,'no\x20file\x20audio\x20found');}if(!this['isConfigured'](_0x4f2a59[_0x68ba('0xd0')])){return this[_0x68ba('0xe')]['error'](_0x68ba('0xd1'));}var _0xd5dbde=this['channel'][_0x68ba('0x10c')](_0x389684,_0x4f2a59['response'],_0x4f2a59['maxdigit']);var _0x55ab42=_0xd5dbde[_0x68ba('0xa7')]?_0xd5dbde['result'][_0x68ba('0x49')]():'';logger[_0x68ba('0x2a')](_0x68ba('0x10d'),JSON[_0x68ba('0x6c')](_0xd5dbde));if(_0xd5dbde[_0x68ba('0xa7')]===-0x1){this['createSquareDetailsReport'][_0x68ba('0xa1')](this,_0x4f2a59,_0x55ab42);return _0xd5dbde;}else if(_0xd5dbde['extra']===_0x68ba('0x63')){_0xd5dbde[_0x68ba('0xa7')]=_0x55ab42['length']>=parseInt(_0x4f2a59[_0x68ba('0x10e')])?'x':'i';}else{_0xd5dbde[_0x68ba('0xa7')]=_0x55ab42[_0x68ba('0x9b')]>=parseInt(_0x4f2a59[_0x68ba('0x10e')])&&_0x55ab42['length']<=parseInt(_0x4f2a59[_0x68ba('0x10f')])?'x':'i';}var _0x518e67=this[_0x68ba('0x12')][_0x68ba('0xa1')](this,_0x4f2a59['variable_id']);if(!_0x518e67){return this[_0x68ba('0xe')][_0x68ba('0x28')](_0x4f2a59,_0x68ba('0xd2'));}this['channel'][_0x68ba('0x98')](_0x518e67,_0x55ab42);if(this[_0x68ba('0x7f')](_0x4f2a59[_0x68ba('0x110')])){var _0x5cee66=parseInt(_0x4f2a59[_0x68ba('0x110')],0xa);var _0x447590=rs[_0x68ba('0x111')]({'charset':'*','length':_0x5cee66});var _0xa94228=_0x55ab42[_0x68ba('0x9b')];if(_0xa94228>0x0){if(_0xa94228>_0x5cee66){this[_0x68ba('0x32')][_0x68ba('0xa1')](this,_0x4f2a59,_0x4f2a59['hiddendigitspos']===_0x68ba('0x112')?_0x447590+_0x55ab42[_0x68ba('0x113')](_0x5cee66):_0x55ab42[_0x68ba('0x113')](0x0,_0xa94228-_0x5cee66)+_0x447590);}else{this['createSquareDetailsReport'][_0x68ba('0xa1')](this,_0x4f2a59,rs[_0x68ba('0x111')]({'charset':'*','length':_0xa94228}));}}else{this[_0x68ba('0x32')][_0x68ba('0xa1')](this,_0x4f2a59,'');}}else{this[_0x68ba('0x32')]['sync'](this,_0x4f2a59,_0x55ab42);}return _0xd5dbde;};AGIVertices['prototype'][_0x68ba('0x114')]=function(_0x58da02){logger[_0x68ba('0x2a')](util['format'](_0x68ba('0x115'),_0x58da02[_0x68ba('0x33')]));return this[_0x68ba('0xd')](_0x58da02);};AGIVertices[_0x68ba('0x11')][_0x68ba('0x116')]=function(_0xab30b3){logger['info'](util[_0x68ba('0x99')](_0x68ba('0x117'),_0xab30b3['label']));this[_0x68ba('0x32')][_0x68ba('0xa1')](this,_0xab30b3,_0xab30b3['goalname']);return this[_0x68ba('0xe')][_0x68ba('0xa8')](util[_0x68ba('0x99')](_0x68ba('0x118'),_0xab30b3[_0x68ba('0x119')]));};AGIVertices['prototype'][_0x68ba('0x11a')]=function(_0x27dcfc){logger[_0x68ba('0x2a')](util[_0x68ba('0x99')](_0x68ba('0x11b'),_0x27dcfc[_0x68ba('0x33')]));if(!this[_0x68ba('0x7f')](_0x27dcfc[_0x68ba('0x82')])||!this['isConfigured'](_0x27dcfc[_0x68ba('0x83')])){return this[_0x68ba('0xe')]['noop']('no\x20valid\x20credentials\x20configured');}if(!this[_0x68ba('0x7f')](_0x27dcfc[_0x68ba('0x5a')])){return this['channel'][_0x68ba('0xa8')]('no\x20text\x20configured');}this[_0x68ba('0xe')][_0x68ba('0xa8')](util[_0x68ba('0x99')](_0x68ba('0x11c'),_0x27dcfc[_0x68ba('0x5a')]));var _0x1da3de=this[_0x68ba('0x81')][_0x68ba('0xa1')](this,_0x27dcfc);if(_0x1da3de){this[_0x68ba('0xe')][_0x68ba('0xa8')](util[_0x68ba('0x99')](_0x68ba('0x11d'),_0x1da3de));var _0x483c94=this[_0x68ba('0xe')]['streamFile'](_0x1da3de);try{fs[_0x68ba('0xf9')](_0x1da3de+_0x68ba('0xfa'));}catch(_0x2b00cf){logger[_0x68ba('0x28')](_0x2b00cf);}return _0x483c94;}return this['channel'][_0x68ba('0x28')](_0x27dcfc,_0x68ba('0x11e'));};AGIVertices[_0x68ba('0x11')]['awslex']=function(_0x1e2c53){logger['info'](util['format']('Enter\x20in\x20Amazon\x20Lex\x20(%s)\x20block',_0x1e2c53[_0x68ba('0x33')]));if(!this[_0x68ba('0x7f')](_0x1e2c53[_0x68ba('0x82')])||!this[_0x68ba('0x7f')](_0x1e2c53[_0x68ba('0x83')])){return this['channel'][_0x68ba('0xa8')]('no\x20valid\x20credentials\x20configured');}if(!this[_0x68ba('0x7f')](_0x1e2c53['aws_bot_name'])){return this[_0x68ba('0xe')][_0x68ba('0xa8')]('no\x20bot\x20name\x20configured');}if(!this[_0x68ba('0x7f')](_0x1e2c53[_0x68ba('0x5a')])){return this['channel']['noop']('no\x20text\x20configured');}this[_0x68ba('0xe')][_0x68ba('0xe0')]=!![];this['createSquareDetailsReport'](_0x1e2c53);this[_0x68ba('0x3e')](_0x1e2c53[_0x68ba('0x5a')],'in','','');this['channel'][_0x68ba('0xa8')](util['format']('Trying\x20Amazon\x20Lex:\x20%s',_0x1e2c53[_0x68ba('0x5a')]));var _0x36b325=this[_0x68ba('0x86')]['sync'](this,_0x1e2c53);if(_0x36b325){for(var _0x4dc526 in _0x36b325){if(_0x36b325[_0x68ba('0x92')](_0x4dc526)&&_['isString'](_0x36b325[_0x4dc526])){this[_0x68ba('0xe')][_0x68ba('0x98')](util[_0x68ba('0x99')](_0x68ba('0x11f'),_0x4dc526['toUpperCase']()),_0x36b325[_0x4dc526]);}}if(_[_0x68ba('0x44')](_0x36b325[_0x68ba('0x70')])){return this[_0x68ba('0xe')]['noop']('Amazon\x20Lex\x20ready\x20for\x20fulfillment');}else{this['createSquareMessage'](_0x36b325[_0x68ba('0x70')],_0x68ba('0xed'),'amazonlex','');return this[_0x68ba('0xe')]['noop'](util[_0x68ba('0x99')](_0x68ba('0x120'),_0x36b325[_0x68ba('0x70')]));}}return this[_0x68ba('0xe')]['error'](_0x1e2c53,_0x68ba('0x121'));};AGIVertices[_0x68ba('0x11')][_0x68ba('0x122')]=function(_0x350c7a){logger[_0x68ba('0x2a')](util['format'](_0x68ba('0x123'),_0x350c7a[_0x68ba('0x33')],_0x350c7a['timeout']));if(!this['isConfigured'](_0x350c7a[_0x68ba('0x73')])){return this['channel'][_0x68ba('0xa8')](_0x68ba('0xdf'));}var _0xe2e168='wav';var _0x40fd74=util[_0x68ba('0x99')](_0x68ba('0x124'),FILES_PATH,rs[_0x68ba('0x111')](0x4));var _0x5c23d1=util[_0x68ba('0x99')]('%s.%s',_0x40fd74,_0xe2e168);var _0x355785=!![];if(_0x350c7a[_0x68ba('0x125')]===_0x68ba('0x126')){_0x355785=![];}var _0x2621b5=this[_0x68ba('0xe')][_0x68ba('0x127')](_0x40fd74,_0xe2e168,_0x350c7a['intKey'],_0x350c7a[_0x68ba('0x63')],undefined,_0x355785);if(_0x2621b5[_0x68ba('0xa7')]!==-0x1){this[_0x68ba('0xe')]['noop'](util[_0x68ba('0x99')](_0x68ba('0x128'),_0x5c23d1));var _0x5ba3b3=this[_0x68ba('0x89')]['sync'](this,_0x350c7a,_0x5c23d1);if(_0x5ba3b3){for(var _0x4a18b5 in _0x5ba3b3){if(_0x5ba3b3[_0x68ba('0x92')](_0x4a18b5)){this['channel'][_0x68ba('0x98')](util[_0x68ba('0x99')](_0x68ba('0x129'),_0x4a18b5['toUpperCase']()),_0x5ba3b3[_0x4a18b5]);}}return this[_0x68ba('0xe')][_0x68ba('0xa8')](util[_0x68ba('0x99')](_0x68ba('0x12a'),JSON[_0x68ba('0x6c')](_0x5ba3b3)));}}return _0x2621b5;};AGIVertices[_0x68ba('0x11')][_0x68ba('0x12b')]=function(_0x4ef275){logger[_0x68ba('0x2a')](util['format'](_0x68ba('0x12c'),_0x4ef275[_0x68ba('0x33')]));if(!this[_0x68ba('0x7f')](_0x4ef275[_0x68ba('0x8c')])){return this['channel']['noop'](_0x68ba('0x12d'));}if(!this[_0x68ba('0x7f')](_0x4ef275[_0x68ba('0x12e')])){return this[_0x68ba('0xe')][_0x68ba('0xa8')](_0x68ba('0x12f'));}var _0x15239a=_0x68ba('0x130');var _0x440389=util[_0x68ba('0x99')]('%s/recordings/%s',FILES_PATH,rs['generate'](0x4));var _0x3b21c0=util[_0x68ba('0x99')]('%s.%s',_0x440389,_0x15239a);var _0x132b63=!![];if(_0x4ef275[_0x68ba('0x125')]==='NOBEEP'){_0x132b63=![];}var _0x23afa2=this[_0x68ba('0xe')][_0x68ba('0x127')](_0x440389,_0x15239a,_0x4ef275[_0x68ba('0x131')],_0x4ef275[_0x68ba('0x63')],undefined,_0x132b63);if(_0x23afa2['result']!==-0x1){this[_0x68ba('0xe')][_0x68ba('0xa8')](util[_0x68ba('0x99')](_0x68ba('0x132'),_0x3b21c0));var _0xb06d32=this['tildeASR'][_0x68ba('0xa1')](this,_0x4ef275,_0x3b21c0);if(_0xb06d32){for(var _0x44b9e6 in _0xb06d32){if(_0xb06d32['hasOwnProperty'](_0x44b9e6)){this[_0x68ba('0xe')][_0x68ba('0x98')](util[_0x68ba('0x99')](_0x68ba('0x133'),_0x44b9e6['toUpperCase']()),_0xb06d32[_0x44b9e6]);}}return this['channel'][_0x68ba('0xa8')](util['format'](_0x68ba('0x134'),JSON[_0x68ba('0x6c')](_0xb06d32)));}}return _0x23afa2;};AGIVertices[_0x68ba('0x11')]['gotoc']=function(_0x5ebca0){logger[_0x68ba('0x2a')](util['format'](_0x68ba('0x135'),_0x5ebca0[_0x68ba('0x33')]));return this[_0x68ba('0xe')][_0x68ba('0x136')](_0x5ebca0[_0x68ba('0x137')],_0x5ebca0[_0x68ba('0x3a')],_0x5ebca0[_0x68ba('0x3b')]);};AGIVertices[_0x68ba('0x11')][_0x68ba('0x138')]=function(_0x4b72ae){logger[_0x68ba('0x2a')](util['format'](_0x68ba('0x139'),_0x4b72ae[_0x68ba('0x33')]));if(!this[_0x68ba('0x7f')](_0x4b72ae[_0x68ba('0x13a')])){return this[_0x68ba('0xe')][_0x68ba('0x28')](_0x4b72ae,_0x68ba('0x13b'));}try{var _0x3d6afe=eval(_0x4b72ae[_0x68ba('0x13a')])?_0x68ba('0x13c'):_0x68ba('0x13d');this[_0x68ba('0xe')][_0x68ba('0xa8')](util[_0x68ba('0x99')](_0x68ba('0x13e'),_0x4b72ae[_0x68ba('0x13a')],_0x3d6afe));return{'code':0xc8,'result':_0x3d6afe};}catch(_0xd9cb52){return{'code':0xc8,'result':_0x68ba('0x13d')};}};AGIVertices[_0x68ba('0x11')]['gotoiftime']=function(_0x3f9fa2){logger['info'](util[_0x68ba('0x99')](_0x68ba('0x13f'),_0x3f9fa2['label']));if(!this['isConfigured'](_0x3f9fa2[_0x68ba('0x140')])){return this[_0x68ba('0xe')][_0x68ba('0x28')](_0x3f9fa2,_0x68ba('0x141'));}var _0x197af6=this[_0x68ba('0x142')][_0x68ba('0xa1')](this,_0x3f9fa2[_0x68ba('0x140')]);if(!_0x197af6){return this['channel']['error'](_0x3f9fa2,_0x68ba('0x143'));}for(var _0x3e1b40=0x0;_0x3e1b40<_0x197af6['length'];_0x3e1b40+=0x1){var _0x2205eb=this['channel'][_0x68ba('0x12')](util['format'](_0x68ba('0x144'),_0x197af6[_0x3e1b40]));if(_0x2205eb[_0x68ba('0xa7')]===-0x1){return _0x2205eb;}logger['info'](util[_0x68ba('0x99')](_0x68ba('0x145'),_0x197af6[_0x3e1b40],_0x2205eb[_0x68ba('0x9d')]));if(_0x2205eb[_0x68ba('0x9d')]===_0x68ba('0x13c')){logger[_0x68ba('0x2a')](util[_0x68ba('0x99')]('IFTIME\x20%s\x20%s',_0x197af6[_0x3e1b40],_0x68ba('0x13c')));this[_0x68ba('0xe')][_0x68ba('0xa8')](util['format'](_0x68ba('0x145'),_0x197af6[_0x3e1b40],_0x68ba('0x13c')));return{'code':0xc8,'result':'true'};}else{logger[_0x68ba('0x2a')](util[_0x68ba('0x99')]('IFTIME\x20%s\x20%s',_0x197af6[_0x3e1b40],_0x68ba('0x13d')));this[_0x68ba('0xe')][_0x68ba('0xa8')](util[_0x68ba('0x99')](_0x68ba('0x145'),_0x197af6[_0x3e1b40],_0x68ba('0x13d')));}}return{'code':0xc8,'result':'false'};};AGIVertices['prototype'][_0x68ba('0x146')]=function(_0x9702ba){logger[_0x68ba('0x2a')](util[_0x68ba('0x99')](_0x68ba('0x147'),_0x9702ba['label']));return this[_0x68ba('0xe')][_0x68ba('0x146')]();};AGIVertices[_0x68ba('0x11')][_0x68ba('0x148')]=function(_0x33dc2a){logger[_0x68ba('0x2a')](util[_0x68ba('0x99')]('Enter\x20in\x20ISPEECHASR\x20(%s)\x20block',_0x33dc2a[_0x68ba('0x33')]));if(!this['isConfigured'](_0x33dc2a[_0x68ba('0x73')])){return this['channel'][_0x68ba('0xa8')](_0x68ba('0xdf'));}var _0x448611=_0x68ba('0x130');var _0x43af0c=util[_0x68ba('0x99')]('%s/recordings/%s',FILES_PATH,rs[_0x68ba('0x111')](0x4));var _0x96987e=util[_0x68ba('0x99')]('%s.%s',_0x43af0c,_0x448611);var _0x30b2f4=!![];if(_0x33dc2a[_0x68ba('0x125')]===_0x68ba('0x126')){_0x30b2f4=![];}var _0x185000=this[_0x68ba('0xe')][_0x68ba('0x127')](_0x43af0c,_0x448611,_0x33dc2a[_0x68ba('0x131')],_0x33dc2a['timeout'],undefined,_0x30b2f4);if(_0x185000[_0x68ba('0xa7')]!==-0x1){this[_0x68ba('0xe')]['noop'](util[_0x68ba('0x99')](_0x68ba('0x149'),_0x96987e));var _0x4c0b37=this[_0x68ba('0x7d')][_0x68ba('0xa1')](this,_0x33dc2a,_0x96987e);if(_0x4c0b37){for(var _0xd8341a in _0x4c0b37){if(_0x4c0b37[_0x68ba('0x92')](_0xd8341a)){this[_0x68ba('0xe')]['setVariable'](util['format'](_0x68ba('0x14a'),_0xd8341a[_0x68ba('0x66')]()),_0x4c0b37[_0xd8341a]);}}return this[_0x68ba('0xe')][_0x68ba('0xa8')](util['format'](_0x68ba('0x14b'),JSON[_0x68ba('0x6c')](_0x4c0b37)));}}return _0x185000;};AGIVertices[_0x68ba('0x11')][_0x68ba('0x14c')]=function(_0xf54a16){logger[_0x68ba('0x2a')](util['format']('Enter\x20in\x20ISPEECHTTS\x20(%s)\x20block',_0xf54a16[_0x68ba('0x33')]));if(!this[_0x68ba('0x7f')](_0xf54a16[_0x68ba('0x73')])){return this[_0x68ba('0xe')]['noop'](_0x68ba('0xdf'));}if(!this[_0x68ba('0x7f')](_0xf54a16['text'])){return this['channel'][_0x68ba('0xa8')](_0x68ba('0xa5'));}this['channel']['noop'](util[_0x68ba('0x99')](_0x68ba('0x14d'),_0xf54a16['text']));var _0x4d7e03=this[_0x68ba('0x7b')]['sync'](this,_0xf54a16);if(_0x4d7e03){this[_0x68ba('0xe')]['noop'](util[_0x68ba('0x99')](_0x68ba('0x149'),_0x4d7e03));var _0x2e52c5=this[_0x68ba('0xe')][_0x68ba('0x14e')](_0x4d7e03,_0xf54a16[_0x68ba('0x131')]);try{fs['unlink'](_0x4d7e03+'.wav');}catch(_0x137077){logger[_0x68ba('0x28')](_0x137077);}return _0x2e52c5;}return this[_0x68ba('0xe')][_0x68ba('0x28')](_0xf54a16,'ispeech\x20TTS\x20is\x20unreachable');};AGIVertices[_0x68ba('0x11')][_0x68ba('0x14f')]=function(_0x2121dd){logger['info'](util[_0x68ba('0x99')]('Enter\x20in\x20LOGIN\x20(%s)\x20block',_0x2121dd[_0x68ba('0x33')]));if(!this[_0x68ba('0x7f')](_0x2121dd[_0x68ba('0x150')])){return this[_0x68ba('0xe')][_0x68ba('0x28')](_0x2121dd,_0x68ba('0x151'));}logger[_0x68ba('0x2a')](util['format'](_0x68ba('0x152'),this[_0x68ba('0xe')][_0x68ba('0x38')],_0x2121dd[_0x68ba('0x150')]));var _0x4005f3=this[_0x68ba('0x51')][_0x68ba('0xa1')](this,_0x2121dd[_0x68ba('0x150')]);if(_0x4005f3){logger[_0x68ba('0x2a')](util['format'](_0x68ba('0x153'),this['channel'][_0x68ba('0x38')],_0x2121dd[_0x68ba('0x150')]));this[_0x68ba('0xe')][_0x68ba('0xa8')](util[_0x68ba('0x99')]('AGENT\x20%s\x20FOUND\x20BY',this[_0x68ba('0xe')][_0x68ba('0x38')],_0x2121dd['findBy']));return{'code':0xc8,'result':_0x68ba('0x154')};}else{logger[_0x68ba('0x2a')](util[_0x68ba('0x99')](_0x68ba('0x155'),this[_0x68ba('0xe')][_0x68ba('0x38')],_0x2121dd['findBy']));this[_0x68ba('0xe')][_0x68ba('0xa8')](util[_0x68ba('0x99')](_0x68ba('0x155'),this[_0x68ba('0xe')][_0x68ba('0x38')],_0x2121dd[_0x68ba('0x150')]));return{'code':0xc8,'result':_0x68ba('0x156')};}};AGIVertices[_0x68ba('0x11')][_0x68ba('0x157')]=function(_0x3acb8d){logger['info'](util['format']('Enter\x20in\x20LOGOUT\x20(%s)\x20block',_0x3acb8d[_0x68ba('0x33')]));if(!this[_0x68ba('0x7f')](_0x3acb8d['findBy'])){return this[_0x68ba('0xe')]['error'](_0x3acb8d,_0x68ba('0x151'));}logger[_0x68ba('0x2a')](util['format']('FIND\x20AGENT\x20%s\x20BY\x20%s',this[_0x68ba('0xe')]['callerid'],_0x3acb8d[_0x68ba('0x150')]));var _0x58f5f8=this[_0x68ba('0x50')][_0x68ba('0xa1')](this,_0x3acb8d[_0x68ba('0x150')]);if(_0x58f5f8){logger[_0x68ba('0x2a')](util[_0x68ba('0x99')](_0x68ba('0x153'),this[_0x68ba('0xe')][_0x68ba('0x38')],_0x3acb8d[_0x68ba('0x150')]));this[_0x68ba('0xe')][_0x68ba('0xa8')](util[_0x68ba('0x99')]('AGENT\x20%s\x20FOUND\x20BY',this[_0x68ba('0xe')][_0x68ba('0x38')],_0x3acb8d[_0x68ba('0x150')]));return{'code':0xc8,'result':_0x68ba('0x154')};}else{logger['info'](util['format'](_0x68ba('0x155'),this[_0x68ba('0xe')][_0x68ba('0x38')],_0x3acb8d[_0x68ba('0x150')]));this[_0x68ba('0xe')][_0x68ba('0xa8')](util[_0x68ba('0x99')](_0x68ba('0x155'),this[_0x68ba('0xe')]['callerid'],_0x3acb8d[_0x68ba('0x150')]));return{'code':0xc8,'result':_0x68ba('0x156')};}};AGIVertices[_0x68ba('0x11')][_0x68ba('0x158')]=function(_0x6f2b6f){logger[_0x68ba('0x2a')](util[_0x68ba('0x99')](_0x68ba('0x159'),_0x6f2b6f[_0x68ba('0x33')]));if(!this[_0x68ba('0x7f')](_0x6f2b6f[_0x68ba('0x15a')])){return this[_0x68ba('0xe')][_0x68ba('0x28')](_0x6f2b6f,_0x68ba('0x15b'));}this[_0x68ba('0xe')][_0x68ba('0xa8')](util[_0x68ba('0x99')](_0x68ba('0x15c'),_0x6f2b6f['operation']));var _0x7ab495=eval(_0x6f2b6f[_0x68ba('0x15a')]);if(!this[_0x68ba('0x7f')](_0x6f2b6f[_0x68ba('0xd0')])){return this[_0x68ba('0xe')][_0x68ba('0xa8')]('no\x20variable\x20selected\x20for\x20the\x20result');}var _0x525f56=this[_0x68ba('0x12')][_0x68ba('0xa1')](this,_0x6f2b6f['variable_id']);if(!_0x525f56){return this[_0x68ba('0xe')][_0x68ba('0x28')](_0x6f2b6f,_0x68ba('0xd2'));}if(_[_0x68ba('0x97')](_0x7ab495)){var _0x1dbc34=this;_0x7ab495['forEach'](function(_0x2d0f87,_0x3e094e){_0x1dbc34[_0x68ba('0xe')][_0x68ba('0x98')](util[_0x68ba('0x99')]('%s[%s]',_0x525f56,_0x3e094e),_0x2d0f87);});return this[_0x68ba('0xe')]['noop'](util[_0x68ba('0x99')](_0x68ba('0x15d'),_0x525f56));}else{return this[_0x68ba('0xe')][_0x68ba('0x98')](_0x525f56,_0x7ab495);}};AGIVertices[_0x68ba('0x11')][_0x68ba('0xc')]=function(_0x58b898){logger[_0x68ba('0x2a')](util[_0x68ba('0x99')](_0x68ba('0x15e'),_0x58b898['label']));if(_0x58b898['retry']===0x0){return this['maxRetry'](_0x58b898);}_0x58b898[_0x68ba('0xa2')]-=0x1;if(!this['isConfigured'](_0x58b898['file_id'])){return this[_0x68ba('0xe')][_0x68ba('0x28')](_0x58b898,_0x68ba('0x10b'));}var _0x1c387c=this[_0x68ba('0x1d')][_0x68ba('0xa1')](this,_0x58b898['file_id']);if(!_0x1c387c){return this[_0x68ba('0xe')][_0x68ba('0x28')](_0x58b898,_0x68ba('0x15f'));}var _0x2299b8=this[_0x68ba('0xe')][_0x68ba('0x10c')](_0x1c387c,_0x58b898[_0x68ba('0x160')],_0x58b898[_0x68ba('0x161')]);var _0x43e1cd=_0x2299b8[_0x68ba('0xa7')];if(_0x2299b8[_0x68ba('0xa7')]===-0x1){this[_0x68ba('0x32')]['sync'](this,_0x58b898,'-1');return _0x2299b8;}else if(_0x2299b8[_0x68ba('0x9d')]===_0x68ba('0x63')){_0x2299b8[_0x68ba('0xa7')]=_0x2299b8[_0x68ba('0xa7')][_0x68ba('0x9b')]>0x0?_0x2299b8[_0x68ba('0xa7')]:'t';}else if(_[_0x68ba('0x40')](_0x2299b8[_0x68ba('0xa7')])){_0x2299b8[_0x68ba('0xa7')]='#';_0x43e1cd='#';}if(!this[_0x68ba('0x7f')](_0x58b898['variable_id'])){this['channel'][_0x68ba('0xa8')](_0x68ba('0xd1'));}else{var _0x4de060=this[_0x68ba('0x12')]['sync'](this,_0x58b898[_0x68ba('0xd0')]);if(!_0x4de060){return this[_0x68ba('0xe')]['error'](_0x58b898,_0x68ba('0xd2'));}this[_0x68ba('0xe')][_0x68ba('0x98')](_0x4de060,_0x43e1cd);}this[_0x68ba('0x32')][_0x68ba('0xa1')](this,_0x58b898,_0x43e1cd);return _0x2299b8;};AGIVertices[_0x68ba('0x11')]['noop']=function(_0x1abd0f){logger['info'](util[_0x68ba('0x99')](_0x68ba('0x162'),_0x1abd0f[_0x68ba('0x33')]));return this[_0x68ba('0xe')][_0x68ba('0xa8')](_0x1abd0f[_0x68ba('0x163')]||_0x1abd0f[_0x68ba('0x33')]);};AGIVertices[_0x68ba('0x11')]['pause']=function(_0x1dd4ed){logger[_0x68ba('0x2a')](util[_0x68ba('0x99')](_0x68ba('0x164'),_0x1dd4ed[_0x68ba('0x33')]));if(!this['isConfigured'](_0x1dd4ed[_0x68ba('0x150')])){return this[_0x68ba('0xe')][_0x68ba('0x28')](_0x1dd4ed,_0x68ba('0x151'));}logger[_0x68ba('0x2a')](util[_0x68ba('0x99')](_0x68ba('0x152'),this[_0x68ba('0xe')][_0x68ba('0x38')],_0x1dd4ed[_0x68ba('0x150')]));var _0x15d51f=this[_0x68ba('0x4b')][_0x68ba('0xa1')](this,_0x1dd4ed[_0x68ba('0x165')]);var _0xa5fbe8=this['agentPause'][_0x68ba('0xa1')](this,_0x1dd4ed[_0x68ba('0x150')],_0x15d51f);if(_0xa5fbe8){logger[_0x68ba('0x2a')](util[_0x68ba('0x99')](_0x68ba('0x153'),this[_0x68ba('0xe')]['callerid'],_0x1dd4ed[_0x68ba('0x150')]));this[_0x68ba('0xe')][_0x68ba('0xa8')](util['format']('AGENT\x20%s\x20FOUND\x20BY',this['channel'][_0x68ba('0x38')],_0x1dd4ed['findBy']));return{'code':0xc8,'result':_0x68ba('0x154')};}else{logger[_0x68ba('0x2a')](util[_0x68ba('0x99')]('AGENT\x20%s\x20NOT\x20FOUND\x20BY',this['channel'][_0x68ba('0x38')],_0x1dd4ed[_0x68ba('0x150')]));this['channel'][_0x68ba('0xa8')](util[_0x68ba('0x99')](_0x68ba('0x153'),this[_0x68ba('0xe')][_0x68ba('0x38')],_0x1dd4ed['findBy']));return{'code':0xc8,'result':_0x68ba('0x156')};}};AGIVertices[_0x68ba('0x11')][_0x68ba('0x166')]=function(_0x15beb9){logger['info'](util[_0x68ba('0x99')](_0x68ba('0x167'),_0x15beb9['label']));if(!this[_0x68ba('0x7f')](_0x15beb9[_0x68ba('0x10a')])){return this['channel'][_0x68ba('0x28')](_0x15beb9,_0x68ba('0x10b'));}var _0x464255=this['getSound']['sync'](this,_0x15beb9['file_id']);if(!_0x464255){return this[_0x68ba('0xe')][_0x68ba('0x28')](_0x15beb9,_0x68ba('0x15f'));}var _0x56f330=this[_0x68ba('0xe')]['exec'](_0x68ba('0x168'),[_0x464255,_0x15beb9['opts']]);if(_0x56f330[_0x68ba('0xa7')]===-0x1){return _0x56f330;}return this['channel']['noop'](util[_0x68ba('0x99')]('Executed\x20command\x20%s\x20%s',_0x68ba('0x168'),_0x464255));};AGIVertices['prototype'][_0x68ba('0x169')]=function(_0x256ec9){logger[_0x68ba('0x2a')](util[_0x68ba('0x99')](_0x68ba('0x16a'),_0x256ec9[_0x68ba('0x33')]));if(!this[_0x68ba('0x7f')](_0x256ec9[_0x68ba('0x16b')])){return this[_0x68ba('0xe')]['error'](_0x256ec9,_0x68ba('0x16c'));}var _0x185265='';var _0x5d23bc=parseInt(_0x256ec9[_0x68ba('0x16b')],0xa);if(isNaN(_0x5d23bc)){_0x185265=_0x256ec9[_0x68ba('0x16b')];}else{_0x185265=this[_0x68ba('0x16')][_0x68ba('0xa1')](this,_0x256ec9[_0x68ba('0x16b')]);if(!_0x185265){return this[_0x68ba('0xe')][_0x68ba('0x28')](_0x256ec9,_0x68ba('0x16d'));}}var _0x329f63='';if(this[_0x68ba('0x7f')](_0x256ec9[_0x68ba('0x10a')])){var _0x34602d=this[_0x68ba('0x1d')][_0x68ba('0xa1')](this,_0x256ec9[_0x68ba('0x10a')]);if(_0x34602d){_0x329f63=_0x34602d;}}this[_0x68ba('0x32')]['sync'](this,_0x256ec9,_0x185265);if(_0x256ec9[_0x68ba('0xdd')][_0x68ba('0x16e')]('x')<0x0){_0x256ec9[_0x68ba('0xdd')]+='x';}if(_0x256ec9['opts'][_0x68ba('0x16e')]('X')<0x0){_0x256ec9[_0x68ba('0xdd')]+='X';}this['channel'][_0x68ba('0x98')](_0x68ba('0x16f'),_0x185265?_0x185265['toLowerCase']():'');var _0x494d31=this['channel']['exec'](_0x68ba('0x170'),[_0x185265,_0x256ec9[_0x68ba('0xdd')],_0x256ec9[_0x68ba('0x61')],_0x329f63,_0x256ec9[_0x68ba('0x63')],_0x256ec9[_0x68ba('0x6')],_0x256ec9[_0x68ba('0x171')],_0x256ec9[_0x68ba('0x172')],'',_0x256ec9[_0x68ba('0x173')]]);if(_0x494d31[_0x68ba('0xa7')]===-0x1){return _0x494d31;}return this[_0x68ba('0xe')][_0x68ba('0xa8')](util[_0x68ba('0x99')](_0x68ba('0xbf'),_0x68ba('0x170'),_0x185265));};AGIVertices[_0x68ba('0x11')][_0x68ba('0x174')]=function(_0x32f185){logger[_0x68ba('0x2a')](util[_0x68ba('0x99')](_0x68ba('0x175'),_0x32f185[_0x68ba('0x33')]));var _0x165834=_0x32f185[_0x68ba('0x176')]||_0x68ba('0x130');var _0x4eb265=util[_0x68ba('0x99')]('%s_%s',this[_0x68ba('0xe')][_0x68ba('0x37')],rs['generate'](0x5));var _0x44b7ac=util[_0x68ba('0x99')](_0x68ba('0x177'),FILES_PATH,_0x4eb265,_0x165834);var _0x2f1ed6=util[_0x68ba('0x99')](_0x68ba('0x124'),FILES_PATH,_0x4eb265);this['createSquareRecording'][_0x68ba('0xa1')](this,_0x32f185,_0x4eb265,_0x44b7ac);this[_0x68ba('0xe')][_0x68ba('0x98')](_0x68ba('0x178'),_0x4eb265);logger[_0x68ba('0x2a')](_0x68ba('0x179'),_0x2f1ed6,_0x165834,_0x32f185[_0x68ba('0x17a')],_0x32f185['timeout']);return this['channel']['recordFile'](_0x2f1ed6,_0x165834,_0x32f185[_0x68ba('0x17a')],_0x32f185[_0x68ba('0x63')],undefined,!![]);};AGIVertices['prototype'][_0x68ba('0x17b')]=function(_0x3186c9){logger[_0x68ba('0x2a')](util['format'](_0x68ba('0x17c'),_0x3186c9[_0x68ba('0x33')]));if(!this[_0x68ba('0x7f')](_0x3186c9['url'])){return this[_0x68ba('0xe')]['noop'](_0x68ba('0x17d'));}var _0x273d14=this[_0x68ba('0x60')][_0x68ba('0xa1')](this,_0x3186c9);logger[_0x68ba('0x2a')](util[_0x68ba('0x99')](_0x68ba('0x17e'),util[_0x68ba('0x17f')](_0x273d14,{'showHidden':![],'depth':null})));if(!this[_0x68ba('0x7f')](_0x3186c9[_0x68ba('0xd0')])){return this['channel']['noop']('no\x20variable\x20selected\x20for\x20the\x20response');}var _0x4e4056=this['getVariable'][_0x68ba('0xa1')](this,_0x3186c9['variable_id']);if(!_0x4e4056){return this[_0x68ba('0xe')][_0x68ba('0x28')](_0x3186c9,_0x68ba('0xd2'));}this[_0x68ba('0xe')][_0x68ba('0x98')](util[_0x68ba('0x99')]('%s_STATUS_CODE',_0x4e4056),_0x273d14[_0x68ba('0x180')]?_0x273d14['statusCode']:'200');this[_0x68ba('0xe')][_0x68ba('0x98')](util[_0x68ba('0x99')](_0x68ba('0x181'),_0x4e4056),_0x273d14[_0x68ba('0x6f')]?_0x273d14[_0x68ba('0x6f')]:'OK');if(_0x273d14[_0x68ba('0x6d')]){try{this[_0x68ba('0x95')](_0x273d14[_0x68ba('0x6d')],_0x4e4056);}catch(_0x5d9c57){logger[_0x68ba('0x28')](util[_0x68ba('0x99')]('Unable\x20to\x20set\x20result\x20in\x20variable\x20%s',_0x4e4056));}}return this['channel']['noop'](util[_0x68ba('0x99')](_0x68ba('0xd6'),_0x4e4056));};AGIVertices['prototype']['saydigits']=function(_0x948fa7){logger[_0x68ba('0x2a')](util[_0x68ba('0x99')](_0x68ba('0x182'),_0x948fa7['label']));return this[_0x68ba('0xe')]['sayDigits'](_0x948fa7[_0x68ba('0x183')][_0x68ba('0x56')](/\s+/g,''),_0x948fa7[_0x68ba('0x17a')]);};AGIVertices[_0x68ba('0x11')]['saynumber']=function(_0x20f2f){logger[_0x68ba('0x2a')](util[_0x68ba('0x99')](_0x68ba('0x184'),_0x20f2f[_0x68ba('0x33')]));return this['channel'][_0x68ba('0x185')](_0x20f2f[_0x68ba('0x186')][_0x68ba('0x56')](/\s+/g,''),_0x20f2f[_0x68ba('0x17a')]);};AGIVertices[_0x68ba('0x11')][_0x68ba('0x187')]=function(_0x1e62f9){logger[_0x68ba('0x2a')](util['format'](_0x68ba('0x188'),_0x1e62f9[_0x68ba('0x33')]));return this['channel'][_0x68ba('0x189')](_0x1e62f9[_0x68ba('0x5a')],_0x1e62f9['escape_digits']);};AGIVertices[_0x68ba('0x11')][_0x68ba('0x18a')]=function(_0x387b83){logger[_0x68ba('0x2a')](util[_0x68ba('0x99')](_0x68ba('0x18b'),_0x387b83[_0x68ba('0x33')]));if(!this['isConfigured'](_0x387b83[_0x68ba('0x18c')])){return this['channel']['noop'](_0x68ba('0x18d'));}var _0xba449f=this[_0x68ba('0x20')][_0x68ba('0xa1')](this,_0x387b83['account_id']);if(!_0xba449f||!_0xba449f['Smtp']){return this[_0x68ba('0xe')]['error'](_0x387b83,'no\x20mail\x20account\x20found');}var _0x1884bc={'from':util[_0x68ba('0x99')]('\x22%s\x22\x20<%s>',_0xba449f[_0x68ba('0x18')],_0xba449f[_0x68ba('0x18e')]||_0xba449f[_0x68ba('0x18f')][_0x68ba('0x190')]),'to':_0x387b83['to']||'','cc':_0x387b83['cc']||'','bcc':_0x387b83['bcc']||'','subject':_0x387b83[_0x68ba('0x191')],'html':_0x387b83['text'],'text':_0x387b83[_0x68ba('0x5a')]};var _0xfbd961={'tls':{'rejectUnauthorized':![]}};if(_0xba449f[_0x68ba('0x18f')]['service']){_0xfbd961['service']=_0xba449f[_0x68ba('0x18f')][_0x68ba('0x192')];}else{_0xfbd961[_0x68ba('0x193')]=_0xba449f['Smtp'][_0x68ba('0x193')];_0xfbd961[_0x68ba('0x194')]=_0xba449f[_0x68ba('0x18f')][_0x68ba('0x194')];_0xfbd961['secure']=_0xba449f[_0x68ba('0x18f')][_0x68ba('0x195')];}if(_0xba449f[_0x68ba('0x18f')][_0x68ba('0x196')]){_0xfbd961[_0x68ba('0x197')]={'user':_0xba449f[_0x68ba('0x18f')][_0x68ba('0x190')],'pass':_0xba449f[_0x68ba('0x18f')]['pass']};}if(this['isConfigured'](_0x387b83[_0x68ba('0x198')])){}logger[_0x68ba('0xd8')](_0x68ba('0x199'),JSON[_0x68ba('0x6c')](_0x1884bc));this['createSquareDetailsReport'][_0x68ba('0xa1')](this,_0x387b83,_0x387b83[_0x68ba('0x18c')]);this[_0x68ba('0xe')][_0x68ba('0xa8')](util['format'](_0x68ba('0x19a'),_0xba449f[_0x68ba('0x18')]));this[_0x68ba('0x21')][_0x68ba('0xa1')](this,_0xfbd961,_0x1884bc);return this[_0x68ba('0xe')][_0x68ba('0xa8')](_0x68ba('0x19b'));};AGIVertices[_0x68ba('0x11')]['sendFax']=function(_0x59cc17){logger[_0x68ba('0x2a')](util[_0x68ba('0x99')]('Enter\x20in\x20SENDFAX\x20(%s)\x20block',_0x59cc17[_0x68ba('0x33')]));return this[_0x68ba('0xe')]['noop'](_0x68ba('0x19c'));};AGIVertices['prototype'][_0x68ba('0x19d')]=function(_0x4a91cb){logger[_0x68ba('0x2a')](util[_0x68ba('0x99')](_0x68ba('0x19e'),_0x4a91cb[_0x68ba('0x33')]));if(!this[_0x68ba('0x7f')](_0x4a91cb[_0x68ba('0x19f')])){return this['channel'][_0x68ba('0xa8')]('no\x20sms\x20account\x20configured');}var _0x40d228=this[_0x68ba('0x2f')]['sync'](this,_0x4a91cb[_0x68ba('0x19f')]);if(!_0x40d228){return this['channel'][_0x68ba('0x28')](_0x4a91cb,'no\x20sms\x20account\x20found');}var _0x31be53={'body':_0x4a91cb[_0x68ba('0x1a0')],'phone':_0x4a91cb['to']||'','SmsAccountId':_0x40d228['id']};logger[_0x68ba('0xd8')](_0x68ba('0x1a1'),JSON[_0x68ba('0x6c')](_0x31be53));this[_0x68ba('0x32')]['sync'](this,_0x4a91cb,_0x4a91cb[_0x68ba('0x19f')]);this[_0x68ba('0xe')][_0x68ba('0xa8')](util[_0x68ba('0x99')]('Trying\x20SendSMS\x20with\x20account\x20%s',_0x40d228[_0x68ba('0x18')]));this[_0x68ba('0x31')][_0x68ba('0xa1')](this,_0x31be53);return this['channel'][_0x68ba('0xa8')](_0x68ba('0x1a2'));};AGIVertices[_0x68ba('0x11')][_0x68ba('0x1a3')]=function(_0x191965){logger[_0x68ba('0x2a')](util[_0x68ba('0x99')]('Enter\x20in\x20SET\x20(%s)\x20block',_0x191965[_0x68ba('0x33')]));if(!this['isConfigured'](_0x191965['variable_id'])){return this[_0x68ba('0xe')]['error'](_0x191965,_0x68ba('0x1a4'));}var _0x49b6de=this['getVariable'][_0x68ba('0xa1')](this,_0x191965['variable_id']);if(!_0x49b6de){return this[_0x68ba('0xe')][_0x68ba('0x28')](_0x191965,'no\x20variable\x20found');}return this[_0x68ba('0xe')][_0x68ba('0x98')](_0x49b6de,_0x191965['variable_value']);};AGIVertices[_0x68ba('0x11')][_0x68ba('0x1a5')]=function(_0x326b72){logger[_0x68ba('0x2a')](util[_0x68ba('0x99')]('Enter\x20in\x20START\x20(%s)\x20block',_0x326b72[_0x68ba('0x33')]));this[_0x68ba('0xe')][_0x68ba('0xa8')](_0x68ba('0x1a6'));if(_0x326b72['answer']===_0x68ba('0x1a7')){this[_0x68ba('0xe')][_0x68ba('0xa8')](_0x68ba('0x1a8'));return this[_0x68ba('0xe')][_0x68ba('0xb5')]();}return this[_0x68ba('0xe')]['noop'](_0x68ba('0x1a9'));};AGIVertices[_0x68ba('0x11')][_0x68ba('0x1aa')]=function(_0x510610){logger[_0x68ba('0x2a')](util['format'](_0x68ba('0x1ab'),_0x510610[_0x68ba('0x33')]));if(!this['isConfigured'](_0x510610[_0x68ba('0x1ac')])){return this['channel'][_0x68ba('0x28')](_0x510610,_0x68ba('0x1ad'));}var _0x4149d1=this[_0x68ba('0x19')][_0x68ba('0xa1')](this,_0x510610['project_id']);if(!this['isConfigured'](_0x4149d1)){return this[_0x68ba('0xe')][_0x68ba('0x28')](_0x510610,util[_0x68ba('0x99')](_0x68ba('0x1ae'),_0x510610['project_id']));}if(_0x4149d1===this[_0x68ba('0xe')][_0x68ba('0x35')]){return this[_0x68ba('0xe')][_0x68ba('0x28')](_0x510610,_0x68ba('0x1af'));}this[_0x68ba('0x32')]['sync'](this,_0x510610,_0x4149d1);var _0x27b8e6=this[_0x68ba('0xe')]['exec'](_0x68ba('0x1b0'),util['format'](_0x68ba('0x1b1'),config['agi'][_0x68ba('0x193')]||_0x68ba('0x1b2'),_0x4149d1,this[_0x68ba('0xe')][_0x68ba('0x35')]));if(_0x27b8e6[_0x68ba('0xa7')]===-0x1){return _0x27b8e6;}return this['channel']['noop'](util[_0x68ba('0x99')]('Executed\x20command\x20%s\x20%s',_0x68ba('0x1b0'),_0x4149d1));};AGIVertices[_0x68ba('0x11')][_0x68ba('0x1b3')]=function(_0x727386){logger[_0x68ba('0x2a')](util[_0x68ba('0x99')](_0x68ba('0x1b4'),_0x727386[_0x68ba('0x33')]));var _0x555075=this[_0x68ba('0x1b5')][_0x68ba('0xa1')](this,_0x727386[_0x68ba('0x1b6')]);this[_0x68ba('0x32')][_0x68ba('0xa1')](this,_0x727386,_0x727386[_0x68ba('0x1b6')]);if(this['isConfigured'](_0x727386['variable_id'])){var _0x4c68a0=this['getVariable']['sync'](this,_0x727386[_0x68ba('0xd0')]);if(_0x4c68a0){this[_0x68ba('0xe')]['setVariable'](_0x4c68a0,_0x555075);return this[_0x68ba('0xe')][_0x68ba('0xa8')](util['format'](_0x68ba('0x1b7'),_0x727386['command'],_0x4c68a0));}}return this[_0x68ba('0xe')][_0x68ba('0xa8')](util[_0x68ba('0x99')]('sh\x20command:\x20%s\x20result\x20no\x20stored',_0x727386[_0x68ba('0x1b6')]));};AGIVertices['prototype'][_0x68ba('0x1b8')]=function(_0x39acd9){logger['info'](util[_0x68ba('0x99')](_0x68ba('0x1b9'),_0x39acd9[_0x68ba('0x33')]));_0x39acd9[_0x68ba('0x5a')]=_0x39acd9[_0x68ba('0x5a')][_0x68ba('0x56')](/(\r\n|\n|\r)/gm,'\x20');if(!this[_0x68ba('0x7f')](_0x39acd9[_0x68ba('0x58')])){return this[_0x68ba('0xe')][_0x68ba('0xa8')](_0x68ba('0x1ba'));}if(!this['isConfigured'](_0x39acd9[_0x68ba('0x5a')])){return this[_0x68ba('0xe')]['noop'](_0x68ba('0xa5'));}this['channel'][_0x68ba('0xa8')](util[_0x68ba('0x99')](_0x68ba('0x1bb'),_0x39acd9['text']));var _0x4cc03a=this[_0x68ba('0x57')]['sync'](this,_0x39acd9);if(_0x4cc03a){this['channel'][_0x68ba('0xa8')](util['format'](_0x68ba('0x1bc'),_0x4cc03a));var _0xf3c130=this[_0x68ba('0xe')][_0x68ba('0x14e')](_0x4cc03a);try{fs[_0x68ba('0xf9')](_0x4cc03a+_0x68ba('0xfa'));}catch(_0x2ac2f6){logger[_0x68ba('0x28')](_0x2ac2f6);}return _0xf3c130;}return this['channel'][_0x68ba('0x28')](_0x39acd9,_0x68ba('0x1bd'));};AGIVertices[_0x68ba('0x11')]['tts']=function(_0x54bcb4){logger[_0x68ba('0x2a')](util['format']('Enter\x20in\x20GOOGLETTS\x20(%s)\x20block',_0x54bcb4[_0x68ba('0x33')]));_0x54bcb4['text']=_0x54bcb4[_0x68ba('0x5a')][_0x68ba('0x56')](/(\r\n|\n|\r)/gm,'\x20');if(!this[_0x68ba('0x7f')](_0x54bcb4[_0x68ba('0x5a')])){return this[_0x68ba('0xe')][_0x68ba('0xa8')](_0x68ba('0xa5'));}this['channel'][_0x68ba('0xa8')](util[_0x68ba('0x99')](_0x68ba('0x1be'),_0x54bcb4[_0x68ba('0x5a')]));var _0x29f697=this[_0x68ba('0x5e')]['sync'](this,_0x54bcb4);if(_0x29f697){this[_0x68ba('0xe')][_0x68ba('0xa8')](util[_0x68ba('0x99')](_0x68ba('0x1bf'),_0x29f697));var _0x11745e=this['channel'][_0x68ba('0x14e')](_0x29f697);try{fs[_0x68ba('0xf9')](_0x29f697+'.wav');}catch(_0x1ccb73){logger[_0x68ba('0x28')](_0x1ccb73);}return _0x11745e;}return this[_0x68ba('0xe')][_0x68ba('0x28')](_0x54bcb4,'Google\x20TTS\x20is\x20unreachable');};AGIVertices[_0x68ba('0x11')][_0x68ba('0x1c0')]=function(_0x3b3abe){logger[_0x68ba('0x2a')](util[_0x68ba('0x99')](_0x68ba('0x1c1'),_0x3b3abe[_0x68ba('0x33')]));if(!this[_0x68ba('0x7f')](_0x3b3abe[_0x68ba('0x150')])){return this['channel']['error'](_0x3b3abe,'no\x20find\x20by\x20configured');}logger[_0x68ba('0x2a')](util[_0x68ba('0x99')](_0x68ba('0x152'),this[_0x68ba('0xe')][_0x68ba('0x38')],_0x3b3abe[_0x68ba('0x150')]));var _0x280a5f=this['agentUnpause'][_0x68ba('0xa1')](this,_0x3b3abe[_0x68ba('0x150')]);if(_0x280a5f){logger[_0x68ba('0x2a')](util[_0x68ba('0x99')](_0x68ba('0x153'),this[_0x68ba('0xe')][_0x68ba('0x38')],_0x3b3abe[_0x68ba('0x150')]));this[_0x68ba('0xe')]['noop'](util[_0x68ba('0x99')](_0x68ba('0x153'),this[_0x68ba('0xe')][_0x68ba('0x38')],_0x3b3abe[_0x68ba('0x150')]));return{'code':0xc8,'result':_0x68ba('0x154')};}else{logger[_0x68ba('0x2a')](util['format']('AGENT\x20%s\x20NOT\x20FOUND\x20BY',this[_0x68ba('0xe')][_0x68ba('0x38')],_0x3b3abe[_0x68ba('0x150')]));this[_0x68ba('0xe')]['noop'](util['format']('AGENT\x20%s\x20NOT\x20FOUND\x20BY',this[_0x68ba('0xe')][_0x68ba('0x38')],_0x3b3abe[_0x68ba('0x150')]));return{'code':0xc8,'result':'failure'};}};AGIVertices['prototype'][_0x68ba('0x1c2')]=function(_0x2bd652){logger[_0x68ba('0x2a')](util[_0x68ba('0x99')]('Enter\x20in\x20VOICEMAIL\x20(%s)\x20block',_0x2bd652[_0x68ba('0x33')]));var _0x529fb8=this[_0x68ba('0xe')][_0x68ba('0x54')](_0x68ba('0x1c3'),[_0x2bd652[_0x68ba('0x1c4')],_0x2bd652[_0x68ba('0x72')]]);if(_0x529fb8[_0x68ba('0xa7')]===-0x1){return _0x529fb8;}return this[_0x68ba('0xe')][_0x68ba('0xa8')](util[_0x68ba('0x99')](_0x68ba('0xbf'),_0x68ba('0x1c3'),_0x2bd652[_0x68ba('0x1c4')]));};AGIVertices[_0x68ba('0x11')]['vswitch']=function(_0x173cea){logger['info'](util[_0x68ba('0x99')](_0x68ba('0x1c5'),_0x173cea[_0x68ba('0x33')]));if(!this['isConfigured'](_0x173cea[_0x68ba('0xd0')])){return this[_0x68ba('0xe')][_0x68ba('0x28')](_0x173cea,_0x68ba('0x1a4'));}var _0x3d3796=this[_0x68ba('0x12')][_0x68ba('0xa1')](this,_0x173cea[_0x68ba('0xd0')]);if(!_0x3d3796){return this['channel'][_0x68ba('0x28')](_0x173cea,_0x68ba('0xd2'));}var _0x350823=this['channel'][_0x68ba('0x12')](_0x3d3796);return{'code':0xc8,'result':_0x350823[_0x68ba('0x9d')]?_0x350823[_0x68ba('0x9d')]:'-'};};String[_0x68ba('0x11')][_0x68ba('0x9c')]=function(_0x2fd364,_0x112ce8){return this['split'](_0x2fd364)[_0x68ba('0x1c6')](_0x112ce8);};module[_0x68ba('0x1c7')]=AGIVertices;
\ No newline at end of file
+var _0x762e=['SIP/%s','no\x20key\x20configured','createSquareMessage','Trying\x20Dialogflow:\x20%s','DIALOGFLOW_%s','speech','out','dialogflow','Dialogflow\x20is\x20unreachable','dialogflowV2','no\x20project_id\x20configured','no\x20client_email\x20configured','no\x20private_key\x20configured','bot','providerResponse','DialogflowV2\x20Result\x20%s','sesteknda','ndauth_url','no\x20ndauth\x20url\x20configured','username','no\x20username\x20configured','password','no\x20password\x20configured','Trying\x20SestekNDA:\x20%s','audiofile','Sestek\x20NDA\x20%s\x20file\x20created','streamFile','unlink','.wav','SestekNDA\x20Result\x20%s','SestekNDA\x20is\x20unreachable','end','Enter\x20in\x20END\x20(%s)\x20block','ext_dial','trunk_id','no\x20trunk\x20selected','no\x20trunk\x20found','trunk_name','opts','Executed\x20command\x20%s','finally','Enter\x20in\x20FINALLY\x20(%s)\x20block','Enter\x20in\x20GETDIGITS\x20(%s)\x20block','file_id','getData','response','test','mindigit','maxdigit','hiddendigitsnum','generate','hiddendigitspos','first','substr','Enter\x20in\x20GETSECRETDIGITS\x20(%s)\x20block','goal','Enter\x20in\x20GOAL\x20(%s)\x20block','goalname','no\x20valid\x20credentials\x20configured','Trying\x20aws\x20Polly\x20%s','aws\x20Polly\x20%s\x20file\x20created','aws\x20Polly\x20is\x20unreachable','Enter\x20in\x20Amazon\x20Lex\x20(%s)\x20block','aws_secret_access_key','no\x20bot\x20name\x20configured','Trying\x20Amazon\x20Lex:\x20%s','AWS_LEX_%s','message','amazonlex','Amazon\x20Lex\x20is\x20unreachable','googleasr','Enter\x20in\x20GOOGLEASR\x20(%s)\x20block\x20%s','wav','%s/recordings/%s','recordFile','intKey','google\x20%s\x20file\x20created','GOOGLE_ASR_%s','tildeasr','Enter\x20in\x20TILDEASR\x20(%s)\x20block','no\x20appid\x20configured','appsecret','beep','NOBEEP','tilde\x20%s\x20file\x20created','TILDE_ASR_%s','gotoc','Enter\x20in\x20GOTO\x20(%s)\x20block','continueAt','extension','gotoif','Enter\x20in\x20GOTOIF\x20(%s)\x20block','condition','no\x20condition\x20configured','true','false','EVAL\x20CONDITION\x20%s\x20%s','gotoiftime','interval_id','no\x20interval\x20configured','no\x20intervals\x20found','IFTIME(%s?true:false)','IFTIME\x20%s\x20%s','hangup','Enter\x20in\x20HANGUP\x20(%s)\x20block','ispeechasr','Enter\x20in\x20ISPEECHASR\x20(%s)\x20block','IspeechASR\x20Result\x20%s','ispeechtts','Enter\x20in\x20ISPEECHTTS\x20(%s)\x20block','Trying\x20ispeech\x20TTS\x20%s','ispeech\x20%s\x20file\x20created','login','findBy','no\x20find\x20by\x20configured','FIND\x20AGENT\x20%s\x20BY\x20%s','agentLogin','AGENT\x20%s\x20FOUND\x20BY','success','AGENT\x20%s\x20NOT\x20FOUND\x20BY','failure','logout','math','operation','no\x20operation\x20configured','%s[%s]','variable\x20%s[key]\x20set','no\x20file\x20audio\x20selected','no\x20file\x20audio\x20found','digit','Enter\x20in\x20NOOP\x20(%s)\x20block','output','pause','Enter\x20in\x20PAUSE\x20(%s)\x20block','pause_id','playback','PLAYBACK','Enter\x20in\x20QUEUE\x20(%s)\x20block','queue_id','no\x20queue\x20selected','no\x20queue\x20found','indexOf','toLowerCase','QUEUE','macro','gosub','Enter\x20in\x20RECORD\x20(%s)\x20block','recordingFormat','%s_%s','%s/recordings/%s.%s','createSquareRecording','RECORDING_SAVENAME','Recording\x20%s\x20%s\x20%s\x20%s','escape_digits','restapi','Enter\x20in\x20RESTAPI\x20(%s)\x20block','no\x20url\x20configured','inspect','%s_STATUS_CODE','%s_STATUS_MESSAGE','Unable\x20to\x20set\x20result\x20in\x20variable\x20%s','saydigits','Enter\x20in\x20SAYDIGITS\x20(%s)\x20block','sayDigits','digits','saynumber','sayNumber','sayphonetic','Enter\x20in\x20SAYPHONETIC\x20(%s)\x20block','sendMail','account_id','no\x20mail\x20account\x20configured','Smtp','no\x20mail\x20account\x20found','\x22%s\x22\x20<%s>','email','user','bcc','subject','service','host','port','secure','authentication','auth','pass','sendMail\x20message','Trying\x20SendMail\x20with\x20account\x20%s','Mail\x20message\x20added\x20to\x20outgoing\x20process','sendFax','SENDFAX\x20block\x20not\x20implemented','Enter\x20in\x20SENDSMS\x20(%s)\x20block','sms_account_id','no\x20sms\x20account\x20configured','no\x20sms\x20account\x20found','sendSMS\x20message','Trying\x20SendSMS\x20with\x20account\x20%s','createSmsMessage','Sms\x20message\x20added\x20to\x20outgoing\x20process','set','Enter\x20in\x20SET\x20(%s)\x20block','no\x20variable\x20selected','variable_value','start','START\x20CALLY\x20SQUARE','Answer','Skipped\x20Answer','project_id','no\x20subproject\x20selected','no\x20subproject\x20found\x20with\x20id\x20%d','project\x20in\x20subproject\x20must\x20be\x20different\x20from\x20the\x20called\x20project','127.0.0.1','AGI','system','sh\x20command:\x20%s\x20result\x20on\x20variable:\x20%s','sh\x20command:\x20%s\x20result\x20no\x20stored','google_cloud_tts','Enter\x20in\x20Google\x20Cloud\x20TTS\x20(%s)\x20block','no\x20apiKey\x20configured','Trying\x20Google\x20Cloud\x20TTS\x20%s','Google\x20Cloud\x20TTS\x20%s\x20file\x20created','Google\x20Cloud\x20TTS\x20is\x20unreachable','tts','Enter\x20in\x20GOOGLETTS\x20(%s)\x20block','Trying\x20Google\x20TTS\x20%s','Google\x20TTS\x20%s\x20file\x20created','unpause','Enter\x20in\x20UNPAUSE\x20(%s)\x20block','voicemail','VOICEMAIL','vswitch','Enter\x20in\x20SWITCH\x20(%s)\x20block','join','exports','path','shelljs','moment','mustache','request-promise','agi','../../config/environment','./scripts','rawHeaders','rawBody','menu','getdigits','getsecretdigits','channel','rpc','mailRpc','prototype','getVariable','getVariableById','then','name','getVoiceQueue','catch','getSquareProject','getSquareProjectById','getSquareOdbcById','getUser','getTrunkById','getSound','getSoundById','getSoundPath','save_name','getMailAccount','getMailAccountById','sendMailMessage','getIntervals','getIntervalById','interval','map','Intervals','format','getQueryOdbc','open','error','Error\x20getting\x20ODBC\x20connection\x20%s','info','ODBC\x20connection\x20successfully','query','Error\x20executing\x20query\x20%s','Query\x20executed\x20correctly\x20%s','close','getSmsAccount','getSmsAccountById','createSquareDetailsReport','uniqueid','label','agicommand','arg_1','callerid','context','priority','accountcode','dnid','file','createCmContact','isEmpty','isNil','random','lastName','phone','list_id','scheduledAt','callback','Callback\x20scheduled\x20at\x20','toString','callback_priority','getPause','getPauseById','agent','agentPause','agentUnpause','agentLogout','%s/%s@from-sip/n','LOCAL','shellCommand','exec','trim','replace','googleCloudTTS','apiKey','google_cloud_tts_text_type','languageCode','en-US','ssmlGender','MALE','audioEncoding','MP3','googleTTS','text','restAPI','timeout','number','includes','POST','PUT','method','toUpperCase','body','An\x20incorrect\x20formatted\x20json\x20body\x20has\x20been\x20passed\x20to\x20the\x20function','An\x20incorrect\x20formatted\x20json\x20headers\x20has\x20been\x20passed\x20to\x20the\x20function','computedVariables','sync','uri','url','headers','parse','render','stringify','An\x20incorrect\x20formatted\x20json\x20has\x20been\x20passed\x20to\x20the\x20function','statusCode','statusMessage','options','googleDialogflow','key','dialogflow_language','googleDialogflowV2','dialogflowV2_project_id','client_email','private_key','dialogflowV2_language','sestekNDA','ispeechTTS','ispeech_tts_language','speed','ispeechASR','ispeech_asr_language','isConfigured','model','awsPolly','aws_access_key_id','aws_polly_region','aws_polly_voice','Amy','awsLex','aws_lex_region','aws_bot_name','googleASR','google_asr_language','tildeASR','appid','hasOwnProperty','isString','replaceAllVariables','recursiveNodeIndex','isPlainObject','isArray','length','saveRestApiResult','%s.%s','setVariable','split','replaceAll','getAndSetVariable','The\x20\x22%s\x22\x20variable\x20value\x20is:\x20%s','extra','maxRetry','retry','mrcpsynth','Enter\x20in\x20MRCPSynth\x20(%s)\x20block','noop','result','Executed\x20command\x20MRCPSynth\x20%s','mrcprecog','Enter\x20in\x20MRCPRecog\x20(%s)\x20block','no\x20grammar\x20configured','RECOG_CONFIDENCE()','MRCP_RECOG_CONFIDENCE','RECOG_INPUT()','MRCP_RECOG_TRANSCRIPT','RECOG_INSTANCE()','MRCP_RECOG_INSTANCE','Enter\x20in\x20AGI\x20(%s)\x20block','command','args','Enter\x20in\x20ANSWER\x20(%s)\x20block','wait','answer','Enter\x20in\x20CALLBACK\x20(%s)\x20block','no\x20list\x20selected','delay','add','minutes','CALLBACK\x20added\x20phone:\x20%s\x20on\x20list:\x20%s\x20at\x20%s','custom_app','application','Executed\x20command\x20%s\x20%s','Enter\x20in\x20LUMENVOXTTS\x20(%s)\x20block','no\x20text\x20configured','MRCPSynth','Enter\x20in\x20SESTEKTTS\x20(%s)\x20block','lumenvoxasr','Enter\x20in\x20LUMENVOXASR\x20(%s)\x20block','grammar','MRCPRecog','LUMENVOX_ASR_CONFIDENCE','LUMENVOX_ASR_TRANSCRIPT','LUMENVOX_ASR_INSTANCE','Executed\x20command\x20MRCPRecog\x20%s','sestekasr','Enter\x20in\x20SESTEKASR\x20(%s)\x20block','SESTEK_ASR_CONFIDENCE','SESTEK_ASR_TRANSCRIPT','SESTEK_ASR_INSTANCE','Enter\x20in\x20DATABASE\x20(%s)\x20block','odbc_id','getSquareOdbc','no\x20odbc\x20database\x20found','variable_id','no\x20variable\x20selected\x20for\x20the\x20result','no\x20variable\x20found','forEach','keys','%s_ROWS_COUNT','variable\x20%s\x20set','debug','Enter\x20in\x20DIAL\x20(%s)\x20block','sip_id','no\x20user\x20selected','no\x20user\x20found','DIAL'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x762e,0xea));var _0xe762=function(_0x5e098e,_0xdd1a7){_0x5e098e=_0x5e098e-0x0;var _0x28e6c0=_0x762e[_0x5e098e];return _0x28e6c0;};'use strict';var fs=require('fs');var path=require(_0xe762('0x0'));var util=require('util');var _=require('lodash');var sh=require(_0xe762('0x1'));var odbc=require('odbc')();var rs=require('randomstring');var moment=require(_0xe762('0x2'));var Mustache=require(_0xe762('0x3'));var rp=require(_0xe762('0x4'));var logger=require('../../config/logger')(_0xe762('0x5'));var config=require(_0xe762('0x6'));var scripts=require(_0xe762('0x7'));var FILES_PATH='/var/opt/motion2/server/files';var recursiveMapAttributes=[_0xe762('0x8'),_0xe762('0x9')];var verticesWithRetry=[_0xe762('0xa'),_0xe762('0xb'),_0xe762('0xc')];var AGIVertices=function(_0x38aac7,_0x567750,_0x50dd96){this[_0xe762('0xd')]=_0x38aac7;this[_0xe762('0xe')]=_0x567750;this[_0xe762('0xf')]=_0x50dd96;};AGIVertices[_0xe762('0x10')][_0xe762('0x11')]=function(_0x224a19,_0x4938e5){this[_0xe762('0xe')][_0xe762('0x12')](_0x224a19)[_0xe762('0x13')](function(_0x4a7d2f){_0x4938e5(null,_0x4a7d2f?_0x4a7d2f[_0xe762('0x14')]:![]);})['catch'](function(_0x3d3bd0){_0x4938e5(_0x3d3bd0);});};AGIVertices['prototype'][_0xe762('0x15')]=function(_0x25a6cf,_0x1ebf3d){this['rpc']['getVoiceQueueById'](_0x25a6cf)[_0xe762('0x13')](function(_0x417be3){_0x1ebf3d(null,_0x417be3?_0x417be3[_0xe762('0x14')]:![]);})[_0xe762('0x16')](function(_0x3e6c1d){_0x1ebf3d(_0x3e6c1d);});};AGIVertices[_0xe762('0x10')][_0xe762('0x17')]=function(_0x22e481,_0x531587){this[_0xe762('0xe')][_0xe762('0x18')](_0x22e481)[_0xe762('0x13')](function(_0x27c2cf){_0x531587(null,_0x27c2cf?_0x27c2cf['name']:![]);})[_0xe762('0x16')](function(_0x157de2){_0x531587(_0x157de2);});};AGIVertices['prototype']['getSquareOdbc']=function(_0x52e1de,_0x2cea00){this['rpc'][_0xe762('0x19')](_0x52e1de)['then'](function(_0x8775aa){_0x2cea00(null,_0x8775aa?_0x8775aa['dsn']:![]);})[_0xe762('0x16')](function(_0x190aa3){_0x2cea00(_0x190aa3);});};AGIVertices[_0xe762('0x10')][_0xe762('0x1a')]=function(_0x3e2d00,_0x5c096c){this['rpc']['getUserById'](_0x3e2d00)['then'](function(_0x413584){_0x5c096c(null,_0x413584?_0x413584[_0xe762('0x14')]:![]);})[_0xe762('0x16')](function(_0x604304){_0x5c096c(_0x604304);});};AGIVertices[_0xe762('0x10')]['getTrunk']=function(_0x1e316c,_0x2c9e1b){this[_0xe762('0xe')][_0xe762('0x1b')](_0x1e316c)[_0xe762('0x13')](function(_0x2d4598){_0x2c9e1b(null,_0x2d4598?_0x2d4598[_0xe762('0x14')]:![]);})[_0xe762('0x16')](function(_0xc05eb8){_0x2c9e1b(_0xc05eb8);});};AGIVertices[_0xe762('0x10')][_0xe762('0x1c')]=function(_0x505fb9,_0x5bfe46){var _0x1a6cc2=this;this['rpc'][_0xe762('0x1d')](_0x505fb9)[_0xe762('0x13')](function(_0x5b09d0){_0x5bfe46(null,_0x5b09d0?_0x1a6cc2[_0xe762('0x1e')](_0x5b09d0[_0xe762('0x1f')]):![]);})[_0xe762('0x16')](function(_0x4112ba){_0x5bfe46(_0x4112ba);});};AGIVertices[_0xe762('0x10')][_0xe762('0x20')]=function(_0x2dde24,_0x3c8dcd){this[_0xe762('0xe')][_0xe762('0x21')](_0x2dde24)['then'](function(_0x3bf093){_0x3c8dcd(null,_0x3bf093?_0x3bf093:![]);})[_0xe762('0x16')](function(_0x2141d1){_0x3c8dcd(_0x2141d1);});};AGIVertices[_0xe762('0x10')][_0xe762('0x22')]=function(_0xaed00e,_0x114656,_0x26edb0){this['mailRpc']['sendMailMessage'](_0xaed00e,_0x114656)[_0xe762('0x13')](function(){_0x26edb0(null);})[_0xe762('0x16')](function(_0x105941){_0x26edb0(_0x105941);});};AGIVertices[_0xe762('0x10')][_0xe762('0x23')]=function(_0x20608b,_0x303596){this['rpc'][_0xe762('0x24')](_0x20608b)[_0xe762('0x13')](function(_0xc4f64e){if(_0xc4f64e){if(_0xc4f64e['IntervalId']){_0x303596(null,[_0xc4f64e[_0xe762('0x25')]]);}else{_0x303596(null,_[_0xe762('0x26')](_0xc4f64e[_0xe762('0x27')],_0xe762('0x25')));}}else{_0x303596(null,![]);}})[_0xe762('0x16')](function(_0x376896){_0x303596(_0x376896);});};AGIVertices[_0xe762('0x10')][_0xe762('0x1e')]=function(_0x37cc8b){return util[_0xe762('0x28')]('%s/sounds/converted/%s',FILES_PATH,_0x37cc8b);};AGIVertices[_0xe762('0x10')][_0xe762('0x29')]=function(_0x18b23a,_0xcdb005,_0xca71c6){odbc[_0xe762('0x2a')](_0x18b23a,function(_0x1a259f){if(_0x1a259f){logger[_0xe762('0x2b')](_0xe762('0x2c'),_0x1a259f);_0xca71c6(_0x1a259f);}else{logger[_0xe762('0x2d')](_0xe762('0x2e'));odbc[_0xe762('0x2f')](_0xcdb005,function(_0xa7cb9c,_0x2ee29c){if(_0xa7cb9c){logger[_0xe762('0x2d')](_0xe762('0x30'),_0xcdb005);_0xca71c6(_0xa7cb9c);}else{logger[_0xe762('0x2d')](_0xe762('0x31'),_0xcdb005);odbc[_0xe762('0x32')](function(_0x383c8b){if(_0x383c8b){logger[_0xe762('0x2b')]('Error\x20closing\x20connection\x20to\x20odbc\x20%s',_0x383c8b);}_0xca71c6(null,_0x2ee29c);});}});}});};AGIVertices['prototype'][_0xe762('0x33')]=function(_0xfafbf3,_0x20bd0d){this[_0xe762('0xe')][_0xe762('0x34')](_0xfafbf3)[_0xe762('0x13')](function(_0x3c7755){_0x20bd0d(null,_0x3c7755?_0x3c7755:![]);})[_0xe762('0x16')](function(_0x394f46){_0x20bd0d(_0x394f46);});};AGIVertices[_0xe762('0x10')]['createSmsMessage']=function(_0x593823,_0x3c2049){this[_0xe762('0xe')]['createSmsMessage'](_0x593823)[_0xe762('0x13')](function(_0x130c9b){_0x3c2049(null,_0x130c9b);})[_0xe762('0x16')](function(_0x3bc307){_0x3c2049(_0x3bc307);});};AGIVertices['prototype']['createSquareDetailsReport']=function(_0x2e8301,_0x450d53,_0x4e957a){this[_0xe762('0xe')][_0xe762('0x35')]({'uniqueid':this[_0xe762('0xd')][_0xe762('0x36')],'node':_0x2e8301[_0xe762('0x37')],'application':_0x2e8301[_0xe762('0x38')],'data':_0x450d53||null,'project_name':this[_0xe762('0xd')][_0xe762('0x39')],'callerid':this[_0xe762('0xd')][_0xe762('0x3a')]})[_0xe762('0x13')](function(_0xcaf61f){if(_0x4e957a){_0x4e957a(null,_0xcaf61f);}})[_0xe762('0x16')](function(_0x4f8ebb){if(_0x4e957a){_0x4e957a(_0x4f8ebb);}});};AGIVertices['prototype']['createSquareRecording']=function(_0x42cb4e,_0x2f3b03,_0x330130,_0x21c16d){this[_0xe762('0xe')]['createSquareRecording']({'uniqueid':this['channel'][_0xe762('0x36')],'callerid':this[_0xe762('0xd')]['callerid'],'calleridname':this[_0xe762('0xd')]['calleridname'],'context':this['channel'][_0xe762('0x3b')],'extension':this[_0xe762('0xd')]['extension'],'priority':this[_0xe762('0xd')][_0xe762('0x3c')],'accountcode':this[_0xe762('0xd')][_0xe762('0x3d')],'dnid':this['channel'][_0xe762('0x3e')],'projectName':this[_0xe762('0xd')]['arg_1'],'saveName':_0x2f3b03,'filename':_0x42cb4e[_0xe762('0x3f')]||_0x2f3b03,'savePath':_0x330130})[_0xe762('0x13')](function(_0x101db6){_0x21c16d(null,_0x101db6);})[_0xe762('0x16')](function(_0x16f398){_0x21c16d(_0x16f398);});};AGIVertices[_0xe762('0x10')]['createSquareMessage']=function(_0x41e34f,_0x30409d,_0x100429,_0xac05b4,_0x4cb322){this[_0xe762('0xe')]['createSquareMessage']({'uniqueid':this[_0xe762('0xd')][_0xe762('0x36')],'body':_0x41e34f,'direction':_0x30409d,'providerName':_0x100429,'providerResponse':_0xac05b4})[_0xe762('0x13')](function(_0x39c92d){if(_0x4cb322){_0x4cb322(null,_0x39c92d);}})[_0xe762('0x16')](function(_0x2a55ac){if(_0x4cb322){_0x4cb322(_0x2a55ac);}});};AGIVertices[_0xe762('0x10')][_0xe762('0x40')]=function(_0x459a0b,_0x43982b){this[_0xe762('0xe')]['createCmContact']({'firstName':_[_0xe762('0x41')](_0x459a0b[_0xe762('0x14')])||_[_0xe762('0x42')](_0x459a0b[_0xe762('0x14')])?'callback_'+Math[_0xe762('0x43')]():_0x459a0b[_0xe762('0x14')],'lastName':_[_0xe762('0x41')](_0x459a0b[_0xe762('0x44')])||_[_0xe762('0x42')](_0x459a0b[_0xe762('0x44')])?null:_0x459a0b[_0xe762('0x44')],'phone':_0x459a0b[_0xe762('0x45')],'ListId':_0x459a0b[_0xe762('0x46')],'scheduledat':_0x459a0b[_0xe762('0x47')],'callbackUniqueid':this['channel'][_0xe762('0x36')],'tags':_0xe762('0x48'),'description':_0xe762('0x49')+_0x459a0b[_0xe762('0x47')][_0xe762('0x4a')](),'priority':_0x459a0b[_0xe762('0x4b')]})[_0xe762('0x13')](function(_0x2b9ab8){_0x43982b(null,_0x2b9ab8);})['catch'](function(_0x5e6e00){_0x43982b(_0x5e6e00);});};AGIVertices[_0xe762('0x10')][_0xe762('0x4c')]=function(_0x5da9d6,_0x4325ac){this['rpc'][_0xe762('0x4d')](_0x5da9d6)[_0xe762('0x13')](function(_0x13513e){_0x4325ac(null,_0x13513e?_0x13513e[_0xe762('0x14')]:![]);})[_0xe762('0x16')](function(_0x6b499){_0x4325ac(_0x6b499);});};AGIVertices[_0xe762('0x10')]['agentPause']=function(_0x5b4bf7,_0x1a185b,_0x4b4d54){var _0x1bd192={'role':_0xe762('0x4e')};_0x1bd192[_0x5b4bf7]=this['channel'][_0xe762('0x3a')];this[_0xe762('0xe')][_0xe762('0x4f')](_0x1bd192,_0x1a185b,this[_0xe762('0xd')][_0xe762('0x36')])[_0xe762('0x13')](function(_0x509bf2){_0x4b4d54(null,_[_0xe762('0x42')](_0x509bf2)?![]:!![]);})[_0xe762('0x16')](function(_0x529847){logger[_0xe762('0x2b')](_0x529847);_0x4b4d54(null,![]);});};AGIVertices[_0xe762('0x10')][_0xe762('0x50')]=function(_0x5a072f,_0x4980fa){var _0x25a891={'role':'agent'};_0x25a891[_0x5a072f]=this[_0xe762('0xd')][_0xe762('0x3a')];this[_0xe762('0xe')]['agentUnpause'](_0x25a891)[_0xe762('0x13')](function(_0x4d1fd3){_0x4980fa(null,_['isNil'](_0x4d1fd3)?![]:!![]);})[_0xe762('0x16')](function(_0xe03cdb){logger['error'](_0xe03cdb);_0x4980fa(null,![]);});};AGIVertices[_0xe762('0x10')][_0xe762('0x51')]=function(_0x5528ea,_0x5f1fb6){var _0x4b6cc0={'role':'agent'};_0x4b6cc0[_0x5528ea]=this[_0xe762('0xd')]['callerid'];this[_0xe762('0xe')][_0xe762('0x51')](_0x4b6cc0)[_0xe762('0x13')](function(_0x1d4a34){_0x5f1fb6(null,_[_0xe762('0x42')](_0x1d4a34)?![]:!![]);})[_0xe762('0x16')](function(_0x1bbe99){logger[_0xe762('0x2b')](_0x1bbe99);_0x5f1fb6(null,![]);});};AGIVertices[_0xe762('0x10')]['agentLogin']=function(_0x127c66,_0x506fb8){var _0x30e8af={'role':_0xe762('0x4e')};_0x30e8af[_0x127c66]=this[_0xe762('0xd')][_0xe762('0x3a')];var _0x299ae5=_0x127c66!='internal'?util[_0xe762('0x28')](_0xe762('0x52'),_0xe762('0x53'),this['channel'][_0xe762('0x3a')]):undefined;this[_0xe762('0xe')]['agentLogin'](_0x30e8af,_0x299ae5)[_0xe762('0x13')](function(_0x376d59){_0x506fb8(null,_['isNil'](_0x376d59)?![]:!![]);})['catch'](function(_0x4da689){logger[_0xe762('0x2b')](_0x4da689);_0x506fb8(null,![]);});};AGIVertices['prototype'][_0xe762('0x54')]=function(_0x29038b,_0x1d424a){sh[_0xe762('0x55')](_[_0xe762('0x56')](_0x29038b),function(_0x3fb389,_0x730b1d){var _0x226180=_0x730b1d[_0xe762('0x57')](/(\r\n|\n|\r)/gm,'');_0x1d424a(null,_0x226180);});};AGIVertices[_0xe762('0x10')][_0xe762('0x58')]=function(_0x5597d7,_0x25d58c){scripts[_0xe762('0x58')](_0x5597d7[_0xe762('0x59')],_0x5597d7[_0xe762('0x5a')]||'text',_0x5597d7['text'],_0x5597d7[_0xe762('0x5b')]||_0xe762('0x5c'),_0x5597d7[_0xe762('0x5d')]||_0xe762('0x5e'),_0x5597d7[_0xe762('0x5f')]||_0xe762('0x60'))[_0xe762('0x13')](function(_0x34fbf2){_0x25d58c(null,_0x34fbf2);})[_0xe762('0x16')](function(_0x51ae0e){_0x25d58c(_0x51ae0e);});};AGIVertices[_0xe762('0x10')]['googleTTS']=function(_0x363d6,_0x5111fb){scripts[_0xe762('0x61')](_0x363d6[_0xe762('0x62')],_0x363d6['google_tts_language']||'en',0x1)[_0xe762('0x13')](function(_0x24f084){_0x5111fb(null,_0x24f084);})[_0xe762('0x16')](function(_0xc416d8){_0x5111fb(_0xc416d8);});};AGIVertices[_0xe762('0x10')][_0xe762('0x63')]=function(_0x1e5119,_0x3628f3){var _0x173da0={'uri':_0x1e5119['url'],'method':_0x1e5119['method'],'json':!![],'resolveWithFullResponse':!![],'strictSSL':![],'timeout':typeof parseInt(_0x1e5119[_0xe762('0x64')])===_0xe762('0x65')&&parseInt(_0x1e5119[_0xe762('0x64')])>=0x1?parseInt(_0x1e5119[_0xe762('0x64')])*0x3e8:0x5*0x3e8};if(_[_0xe762('0x66')]([_0xe762('0x67'),_0xe762('0x68')],_0x173da0[_0xe762('0x69')][_0xe762('0x6a')]())){try{_0x173da0[_0xe762('0x6b')]=_0x1e5119['rawBody']?JSON['parse'](_0x1e5119[_0xe762('0x9')]):{};}catch(_0x2827f8){logger[_0xe762('0x2b')](_0xe762('0x6c'),_0x2827f8);}}try{_0x173da0['headers']=_0x1e5119[_0xe762('0x8')]?JSON['parse'](_0x1e5119[_0xe762('0x8')]):{};}catch(_0x357088){logger[_0xe762('0x2b')](_0xe762('0x6d'),_0x357088);}if(_0x1e5119['computedVariables']){try{var _0x2781ac=require(_0x1e5119[_0xe762('0x6e')])[_0xe762('0x6f')](this,_0x173da0);_0x173da0[_0xe762('0x70')]=Mustache['render'](_0x1e5119[_0xe762('0x71')],_0x2781ac,{},['$$','$$']);if(_0x173da0[_0xe762('0x72')]){_0x173da0['headers']=JSON[_0xe762('0x73')](Mustache[_0xe762('0x74')](JSON[_0xe762('0x75')](_0x173da0[_0xe762('0x72')]),_0x2781ac,{},['$$','$$']));}if(_0x173da0[_0xe762('0x6b')]){_0x173da0[_0xe762('0x6b')]=JSON[_0xe762('0x73')](Mustache[_0xe762('0x74')](JSON[_0xe762('0x75')](_0x173da0[_0xe762('0x6b')]),_0x2781ac,{},['$$','$$']));}}catch(_0x10df26){logger[_0xe762('0x2b')](_0xe762('0x76'),_0x10df26);}}rp(_0x173da0)['then'](function(_0x3989e2){var _0x13bc06={'statusCode':_0x3989e2[_0xe762('0x77')]||0xc8,'statusMessage':_0x3989e2[_0xe762('0x78')]||'OK','headers':_0x3989e2[_0xe762('0x72')]||{},'body':_0x3989e2['body']||{}};_0x3628f3(null,_0x13bc06);})['catch'](function(_0x34efff){var _0x23f59b={'statusCode':_0x34efff['statusCode']||0x1f4,'statusMessage':_0x34efff['message']||'500\x20-\x20Internal\x20Server\x20Error','headers':_0x34efff['options'][_0xe762('0x72')]||{},'body':_0x34efff[_0xe762('0x79')]['body']||{}};_0x3628f3(null,_0x23f59b);});};AGIVertices[_0xe762('0x10')][_0xe762('0x7a')]=function(_0x15786f,_0x1f5848){scripts[_0xe762('0x7a')](this[_0xe762('0xd')][_0xe762('0x36')],_0x15786f[_0xe762('0x7b')],_0x15786f[_0xe762('0x62')],_0x15786f[_0xe762('0x7c')]||'en')[_0xe762('0x13')](function(_0x59b33d){_0x1f5848(null,_0x59b33d);})['catch'](function(_0x3f0411){_0x1f5848(_0x3f0411);});};AGIVertices[_0xe762('0x10')][_0xe762('0x7d')]=function(_0x2cf5e1,_0x782396){scripts['googleDialogflowV2'](this[_0xe762('0xd')][_0xe762('0x36')],_0x2cf5e1[_0xe762('0x7e')],_0x2cf5e1[_0xe762('0x7f')],_0x2cf5e1[_0xe762('0x80')],_0x2cf5e1[_0xe762('0x62')],_0x2cf5e1[_0xe762('0x81')]||'en')[_0xe762('0x13')](function(_0x68b090){_0x782396(null,_0x68b090);})['catch'](function(_0x7ae604){_0x782396(_0x7ae604);});};AGIVertices[_0xe762('0x10')][_0xe762('0x82')]=function(_0x139657,_0x375518){scripts['sestekNDA'](this[_0xe762('0xd')],_0x139657)['then'](function(_0x1510d5){_0x375518(null,_0x1510d5);})[_0xe762('0x16')](function(_0x3989aa){_0x375518(_0x3989aa);});};AGIVertices[_0xe762('0x10')][_0xe762('0x83')]=function(_0x521dc1,_0x4b8f83){scripts[_0xe762('0x83')](_0x521dc1['key'],_0x521dc1[_0xe762('0x62')],_0x521dc1[_0xe762('0x84')]||_0xe762('0x5c'),_0x521dc1[_0xe762('0x85')])[_0xe762('0x13')](function(_0x1998e0){_0x4b8f83(null,_0x1998e0);})[_0xe762('0x16')](function(_0x11f001){_0x4b8f83(_0x11f001);});};AGIVertices[_0xe762('0x10')][_0xe762('0x86')]=function(_0x4a4527,_0x404bbd,_0x5ecc86){scripts[_0xe762('0x86')](_0x404bbd,_0x4a4527[_0xe762('0x7b')],_0x4a4527[_0xe762('0x87')]||_0xe762('0x5c'),this[_0xe762('0x88')](_0x4a4527['model'])?_0x4a4527[_0xe762('0x89')]:undefined)[_0xe762('0x13')](function(_0x58ac7e){_0x5ecc86(null,_0x58ac7e);})['catch'](function(_0x333f16){_0x5ecc86(_0x333f16);});};AGIVertices[_0xe762('0x10')][_0xe762('0x8a')]=function(_0x3e4ff6,_0x562449){scripts['awsPolly'](_0x3e4ff6[_0xe762('0x8b')],_0x3e4ff6['aws_secret_access_key'],_0x3e4ff6[_0xe762('0x8c')],_0x3e4ff6[_0xe762('0x8d')]||_0xe762('0x8e'),_0x3e4ff6[_0xe762('0x62')],_0x3e4ff6['aws_text_type']||'text')[_0xe762('0x13')](function(_0x9dd5ca){_0x562449(null,_0x9dd5ca);})[_0xe762('0x16')](function(_0x495a6f){_0x562449(_0x495a6f);});};AGIVertices[_0xe762('0x10')][_0xe762('0x8f')]=function(_0x133634,_0x5f2d97){scripts[_0xe762('0x8f')](this[_0xe762('0xd')]['uniqueid'],_0x133634[_0xe762('0x8b')],_0x133634['aws_secret_access_key'],_0x133634[_0xe762('0x90')],_0x133634[_0xe762('0x62')],_0x133634[_0xe762('0x91')])['then'](function(_0x28f1c3){_0x5f2d97(null,_0x28f1c3);})[_0xe762('0x16')](function(_0x39cddc){_0x5f2d97(_0x39cddc);});};AGIVertices['prototype']['googleASR']=function(_0x1e023e,_0x596273,_0x12fd32){scripts[_0xe762('0x92')](_0x596273,_0x1e023e[_0xe762('0x7b')],_0x1e023e[_0xe762('0x93')]||'en-US')['then'](function(_0x5789b9){_0x12fd32(null,_0x5789b9);})['catch'](function(_0x313df6){_0x12fd32(_0x313df6);});};AGIVertices[_0xe762('0x10')][_0xe762('0x94')]=function(_0x419ed0,_0x51a520,_0x2080e8){scripts[_0xe762('0x94')](_0x51a520,_0x419ed0[_0xe762('0x95')],_0x419ed0['appsecret'],_0x419ed0[_0xe762('0x70')])['then'](function(_0x1c70a7){_0x2080e8(null,_0x1c70a7);})['catch'](function(_0x185da4){_0x2080e8(_0x185da4);});};AGIVertices['prototype']['clear']=function(_0x47a8df){var _0x3c03bd=_[_0xe762('0x66')](verticesWithRetry,_0x47a8df['agicommand'])?_0x47a8df:_['clone'](_0x47a8df);for(var _0x27d71b in _0x3c03bd){if(_0x3c03bd[_0xe762('0x96')](_0x27d71b)){if(_0x3c03bd[_0x27d71b]&&_[_0xe762('0x97')](_0x3c03bd[_0x27d71b])){if(_[_0xe762('0x66')](recursiveMapAttributes,_0x27d71b)){_0x3c03bd[_0x27d71b]=this['replaceObjectAllVariables'](_0x3c03bd[_0x27d71b]);}else{_0x3c03bd[_0x27d71b]=this[_0xe762('0x98')](_0x3c03bd[_0x27d71b]);}}}}return _0x3c03bd;};AGIVertices['prototype'][_0xe762('0x99')]=function(_0x1e406d){for(var _0x1ae90a in _0x1e406d){if(_0x1e406d['hasOwnProperty'](_0x1ae90a)){if(_[_0xe762('0x9a')](_0x1e406d[_0x1ae90a])){this[_0xe762('0x99')](_0x1e406d[_0x1ae90a]);}else if(_[_0xe762('0x9b')](_0x1e406d[_0x1ae90a])){for(var _0x1585f1=0x0;_0x1585f1<_0x1e406d[_0x1ae90a][_0xe762('0x9c')];_0x1585f1++){this[_0xe762('0x99')](_0x1e406d[_0x1ae90a][_0x1585f1]);}}else if(_[_0xe762('0x97')](_0x1e406d[_0x1ae90a])){_0x1e406d[_0x1ae90a]=this['replaceAllVariables'](_0x1e406d[_0x1ae90a]);}}}};AGIVertices['prototype'][_0xe762('0x9d')]=function(_0x36fd43,_0x494fa6){for(var _0x5e245d in _0x36fd43){if(_0x36fd43['hasOwnProperty'](_0x5e245d)){if(_[_0xe762('0x9a')](_0x36fd43[_0x5e245d])){if(!_[_0xe762('0x41')](_0x36fd43[_0x5e245d])){this[_0xe762('0x9d')](_0x36fd43[_0x5e245d],util[_0xe762('0x28')](_0xe762('0x9e'),_0x494fa6,_0x5e245d));}}else if(_[_0xe762('0x9b')](_0x36fd43[_0x5e245d])){for(var _0x588aa8=0x0;_0x588aa8<_0x36fd43[_0x5e245d]['length'];_0x588aa8++){this[_0xe762('0x9d')](_0x36fd43[_0x5e245d][_0x588aa8],util['format'](_0xe762('0x9e'),_0x494fa6,_0x5e245d+'['+_0x588aa8+']'));}}else{if(!_[_0xe762('0x42')](_0x36fd43[_0x5e245d])){this[_0xe762('0xd')][_0xe762('0x9f')](util[_0xe762('0x28')](_0xe762('0x9e'),_0x494fa6,_0x5e245d),_0x36fd43[_0x5e245d]);}}}}};AGIVertices[_0xe762('0x10')]['replaceObjectAllVariables']=function(_0x3f6b7a){try{var _0x127424=JSON[_0xe762('0x73')](_0x3f6b7a);this[_0xe762('0x99')](_0x127424);return JSON[_0xe762('0x75')](_0x127424);}catch(_0x1db79c){return this[_0xe762('0x98')](_0x3f6b7a);}};AGIVertices['prototype'][_0xe762('0x98')]=function(_0x44e8f0){var _0x1a64d8=_0x44e8f0[_0xe762('0xa0')]('{');for(var _0x331f9a=0x1;_0x331f9a<_0x1a64d8[_0xe762('0x9c')];_0x331f9a+=0x1){var _0x1d8900=_0x1a64d8[_0x331f9a][_0xe762('0xa0')]('}');if(_0x1d8900[_0xe762('0x9c')]>0x1){_0x44e8f0=_0x44e8f0[_0xe762('0xa1')]('{'+_0x1d8900[0x0]+'}',this['channel'][_0xe762('0x11')](_0x1d8900[0x0])['extra']||_0x1d8900[0x0]);}}if(_0x1a64d8[_0xe762('0x9c')]===0x1){return _0x44e8f0['toString']();}return this['replaceAllVariables'](_0x44e8f0);};AGIVertices[_0xe762('0x10')][_0xe762('0xa2')]=function(_0x2ba10d,_0x5733a4){var _0x14811d=this['channel'][_0xe762('0x11')](_0x2ba10d);if(_0x14811d['result']===-0x1){return _0x14811d;}logger[_0xe762('0x2d')](util[_0xe762('0x28')](_0xe762('0xa3'),_0x5733a4,_0x14811d['extra']));return this['channel']['setVariable'](_0x5733a4,_0x14811d[_0xe762('0xa4')]);};AGIVertices[_0xe762('0x10')][_0xe762('0x88')]=function(_0x1bf79d){return _0x1bf79d&&_0x1bf79d!=='0'&&_0x1bf79d!=='-1'&&_0x1bf79d!=='';};AGIVertices['prototype'][_0xe762('0xa5')]=function(_0x2d105b){this[_0xe762('0x35')][_0xe762('0x6f')](this,_0x2d105b,'-');_0x2d105b[_0xe762('0xa6')]=_0x2d105b[_0xe762('0xa5')];return{'code':0xc8,'result':'-'};};AGIVertices[_0xe762('0x10')][_0xe762('0xa7')]=function(_0x1cb141){logger[_0xe762('0x2d')](util[_0xe762('0x28')](_0xe762('0xa8'),_0x1cb141['label']));if(!this[_0xe762('0x88')](_0x1cb141[_0xe762('0x62')])){return this[_0xe762('0xd')][_0xe762('0xa9')]('no\x20text\x20configured');}var _0x1dcf7='\x22'+_0x1cb141[_0xe762('0x62')]+'\x22';if(this[_0xe762('0x88')](_0x1cb141[_0xe762('0x79')])){_0x1dcf7+=','+_0x1cb141[_0xe762('0x79')];}var _0x378785=this[_0xe762('0xd')][_0xe762('0x55')]('MRCPSynth',_0x1dcf7);if(_0x378785[_0xe762('0xaa')]===-0x1){return _0x378785;}return this[_0xe762('0xd')]['noop'](util[_0xe762('0x28')](_0xe762('0xab'),_0x1dcf7));};AGIVertices[_0xe762('0x10')][_0xe762('0xac')]=function(_0x58e8e1){logger['info'](util[_0xe762('0x28')](_0xe762('0xad'),_0x58e8e1[_0xe762('0x37')]));if(!this[_0xe762('0x88')](_0x58e8e1['grammar'])){return this[_0xe762('0xd')][_0xe762('0xa9')](_0xe762('0xae'));}var _0x209359=_0x58e8e1['grammar'];if(this[_0xe762('0x88')](_0x58e8e1[_0xe762('0x79')])){_0x209359+=','+_0x58e8e1[_0xe762('0x79')];}var _0x19fcb6=this['channel']['exec']('MRCPRecog',_0x209359);if(_0x19fcb6[_0xe762('0xaa')]===-0x1){return _0x19fcb6;}var _0x3a972b=this['getAndSetVariable'](_0xe762('0xaf'),_0xe762('0xb0'));if(_0x3a972b[_0xe762('0xaa')]===-0x1){return _0x3a972b;}var _0x5a3814=this['getAndSetVariable'](_0xe762('0xb1'),_0xe762('0xb2'));if(_0x5a3814[_0xe762('0xaa')]===-0x1){return _0x5a3814;}var _0x1cb4af=this[_0xe762('0xa2')](_0xe762('0xb3'),_0xe762('0xb4'));if(_0x1cb4af[_0xe762('0xaa')]===-0x1){return _0x1cb4af;}return this[_0xe762('0xd')][_0xe762('0xa9')](util['format']('Executed\x20command\x20MRCPRecog\x20%s',_0x209359));};AGIVertices[_0xe762('0x10')]['agi']=function(_0xb74e67){logger[_0xe762('0x2d')](util[_0xe762('0x28')](_0xe762('0xb5'),_0xb74e67[_0xe762('0x37')]));return this[_0xe762('0xd')][_0xe762('0x5')]([_0xb74e67[_0xe762('0xb6')],_0xb74e67[_0xe762('0xb7')]]);};AGIVertices[_0xe762('0x10')]['answer']=function(_0x1b4d16){logger[_0xe762('0x2d')](util['format'](_0xe762('0xb8'),_0x1b4d16[_0xe762('0x37')]));if(this[_0xe762('0x88')](_0x1b4d16[_0xe762('0x64')])){logger[_0xe762('0x2d')](util[_0xe762('0x28')]('Wait\x20%s\x20seconds\x20before\x20answer',_0x1b4d16[_0xe762('0x64')]));var _0x182c5d=this[_0xe762('0xd')][_0xe762('0xb9')](_0x1b4d16[_0xe762('0x64')]);if(_0x182c5d[_0xe762('0xaa')]===-0x1){return _0x182c5d;}}return this[_0xe762('0xd')][_0xe762('0xba')]();};AGIVertices[_0xe762('0x10')][_0xe762('0x48')]=function(_0x4cd798){logger['info'](util[_0xe762('0x28')](_0xe762('0xbb'),_0x4cd798[_0xe762('0x37')]));if(!this['isConfigured'](_0x4cd798[_0xe762('0x46')])){return this[_0xe762('0xd')]['error'](_0x4cd798,_0xe762('0xbc'));}_0x4cd798['scheduledAt']=moment();if(this['isConfigured'](_0x4cd798[_0xe762('0xbd')])){_0x4cd798[_0xe762('0x47')]=moment()[_0xe762('0xbe')](_0x4cd798[_0xe762('0xbd')],_0xe762('0xbf'));}if(!this[_0xe762('0x88')](_0x4cd798[_0xe762('0x4b')])){_0x4cd798['callback_priority']=0x2;}this[_0xe762('0x40')][_0xe762('0x6f')](this,_0x4cd798);return this[_0xe762('0xd')][_0xe762('0xa9')](util['format'](_0xe762('0xc0'),_0x4cd798[_0xe762('0x45')],_0x4cd798[_0xe762('0x46')],_0x4cd798[_0xe762('0x47')]));};AGIVertices[_0xe762('0x10')][_0xe762('0xc1')]=function(_0x46052e){logger[_0xe762('0x2d')](util[_0xe762('0x28')]('Enter\x20in\x20CUSTOM\x20APP\x20(%s)\x20block',_0x46052e[_0xe762('0x37')]));var _0x1b786f=this['channel'][_0xe762('0x55')](_0x46052e[_0xe762('0xc2')],_0x46052e[_0xe762('0x79')]);if(_0x1b786f[_0xe762('0xaa')]===-0x1){return _0x1b786f;}return this[_0xe762('0xd')][_0xe762('0xa9')](util[_0xe762('0x28')](_0xe762('0xc3'),_0x46052e[_0xe762('0xc2')],_0x46052e[_0xe762('0x79')]));};AGIVertices[_0xe762('0x10')]['lumenvoxtts']=function(_0x5181c7){logger[_0xe762('0x2d')](util[_0xe762('0x28')](_0xe762('0xc4'),_0x5181c7[_0xe762('0x37')]));if(!this[_0xe762('0x88')](_0x5181c7[_0xe762('0x62')])){return this[_0xe762('0xd')]['noop'](_0xe762('0xc5'));}var _0xdfa219='\x22'+_0x5181c7[_0xe762('0x62')]+'\x22';if(this[_0xe762('0x88')](_0x5181c7[_0xe762('0x79')])){_0xdfa219+=','+_0x5181c7[_0xe762('0x79')];}var _0x702e7f=this['channel'][_0xe762('0x55')](_0xe762('0xc6'),_0xdfa219);if(_0x702e7f[_0xe762('0xaa')]===-0x1){return _0x702e7f;}return this['channel'][_0xe762('0xa9')](util[_0xe762('0x28')](_0xe762('0xab'),_0xdfa219));};AGIVertices[_0xe762('0x10')]['sestektts']=function(_0x297d97){logger[_0xe762('0x2d')](util[_0xe762('0x28')](_0xe762('0xc7'),_0x297d97[_0xe762('0x37')]));if(!this[_0xe762('0x88')](_0x297d97[_0xe762('0x62')])){return this[_0xe762('0xd')][_0xe762('0xa9')]('no\x20text\x20configured');}var _0x45d413='\x22'+_0x297d97['text']+'\x22';if(this[_0xe762('0x88')](_0x297d97[_0xe762('0x79')])){_0x45d413+=','+_0x297d97[_0xe762('0x79')];}var _0x3b23f9=this['channel']['exec']('MRCPSynth',_0x45d413);if(_0x3b23f9[_0xe762('0xaa')]===-0x1){return _0x3b23f9;}return this['channel'][_0xe762('0xa9')](util['format'](_0xe762('0xab'),_0x45d413));};AGIVertices[_0xe762('0x10')][_0xe762('0xc8')]=function(_0x3abacd){logger['info'](util[_0xe762('0x28')](_0xe762('0xc9'),_0x3abacd['label']));if(!this[_0xe762('0x88')](_0x3abacd[_0xe762('0xca')])){return this[_0xe762('0xd')][_0xe762('0xa9')](_0xe762('0xae'));}var _0x5cbea9=_0x3abacd[_0xe762('0xca')];if(this[_0xe762('0x88')](_0x3abacd['options'])){_0x5cbea9+=','+_0x3abacd[_0xe762('0x79')];}var _0x57c720=this['channel'][_0xe762('0x55')](_0xe762('0xcb'),_0x5cbea9);if(_0x57c720[_0xe762('0xaa')]===-0x1){return _0x57c720;}var _0x5b4858=this['getAndSetVariable']('RECOG_CONFIDENCE()',_0xe762('0xcc'));if(_0x5b4858[_0xe762('0xaa')]===-0x1){return _0x5b4858;}var _0x3cc1f8=this[_0xe762('0xa2')](_0xe762('0xb1'),_0xe762('0xcd'));if(_0x3cc1f8[_0xe762('0xaa')]===-0x1){return _0x3cc1f8;}var _0x8be54a=this[_0xe762('0xa2')](_0xe762('0xb3'),_0xe762('0xce'));if(_0x8be54a[_0xe762('0xaa')]===-0x1){return _0x8be54a;}return this[_0xe762('0xd')][_0xe762('0xa9')](util[_0xe762('0x28')](_0xe762('0xcf'),_0x5cbea9));};AGIVertices[_0xe762('0x10')][_0xe762('0xd0')]=function(_0x3146f8){logger[_0xe762('0x2d')](util['format'](_0xe762('0xd1'),_0x3146f8[_0xe762('0x37')]));if(!this[_0xe762('0x88')](_0x3146f8[_0xe762('0xca')])){return this[_0xe762('0xd')][_0xe762('0xa9')](_0xe762('0xae'));}var _0x87730a=_0x3146f8['grammar'];if(this['isConfigured'](_0x3146f8['options'])){_0x87730a+=','+_0x3146f8[_0xe762('0x79')];}var _0x358e95=this[_0xe762('0xd')]['exec']('MRCPRecog',_0x87730a);if(_0x358e95[_0xe762('0xaa')]===-0x1){return _0x358e95;}var _0x1b5c27=this['getAndSetVariable'](_0xe762('0xaf'),_0xe762('0xd2'));if(_0x1b5c27[_0xe762('0xaa')]===-0x1){return _0x1b5c27;}var _0x906768=this['getAndSetVariable'](_0xe762('0xb1'),_0xe762('0xd3'));if(_0x906768[_0xe762('0xaa')]===-0x1){return _0x906768;}var _0x3b926e=this[_0xe762('0xa2')](_0xe762('0xb3'),_0xe762('0xd4'));if(_0x3b926e['result']===-0x1){return _0x3b926e;}return this[_0xe762('0xd')]['noop'](util[_0xe762('0x28')](_0xe762('0xcf'),_0x87730a));};AGIVertices['prototype']['database']=function(_0x3f63ec){logger['info'](util['format'](_0xe762('0xd5'),_0x3f63ec[_0xe762('0x37')]));if(!this[_0xe762('0x88')](_0x3f63ec[_0xe762('0xd6')])){return this[_0xe762('0xd')][_0xe762('0x2b')](_0x3f63ec,'no\x20database\x20selected');}var _0x345ae9=this[_0xe762('0xd7')][_0xe762('0x6f')](this,_0x3f63ec[_0xe762('0xd6')]);if(!_0x345ae9){return this['channel']['error'](_0x3f63ec,_0xe762('0xd8'));}if(!this['isConfigured'](_0x3f63ec[_0xe762('0x2f')])){return this[_0xe762('0xd')][_0xe762('0x2b')](_0x3f63ec,'no\x20query\x20configured');}var _0x13c908=_0x3f63ec[_0xe762('0x2f')][_0xe762('0x57')](/(\r\n|\n|\r)/gm,'\x20');this['channel'][_0xe762('0xa9')](util[_0xe762('0x28')]('query:\x20%s',_0x13c908));var _0x3a47bd=this[_0xe762('0x29')]['sync'](this,_0x345ae9,_0x13c908);this[_0xe762('0x35')][_0xe762('0x6f')](this,_0x3f63ec,_0x13c908);if(!this['isConfigured'](_0x3f63ec[_0xe762('0xd9')])){return this[_0xe762('0xd')][_0xe762('0xa9')](_0xe762('0xda'));}var _0x1563af=this[_0xe762('0x11')][_0xe762('0x6f')](this,_0x3f63ec[_0xe762('0xd9')]);if(!_0x1563af){return this[_0xe762('0xd')]['error'](_0x3f63ec,_0xe762('0xdb'));}var _0x49615d=this;_0x3a47bd[_0xe762('0xdc')](function(_0xbb65e9,_0x36cc8){Object[_0xe762('0xdd')](_0xbb65e9)[_0xe762('0xdc')](function(_0x4b898a){_0x49615d[_0xe762('0xd')][_0xe762('0x9f')](util[_0xe762('0x28')]('%s[%s][%s]',_0x1563af,_0x36cc8,_0x4b898a),_0xbb65e9[_0x4b898a]);});});this[_0xe762('0xd')][_0xe762('0x9f')](util['format'](_0xe762('0xde'),_0x1563af),_0x3a47bd[_0xe762('0x9c')]);return this['channel'][_0xe762('0xa9')](util[_0xe762('0x28')](_0xe762('0xdf'),_0x1563af));};AGIVertices[_0xe762('0x10')]['dial']=function(_0x4d188d){logger[_0xe762('0xe0')](util['format'](_0xe762('0xe1'),_0x4d188d[_0xe762('0x37')]));if(!this['isConfigured'](_0x4d188d[_0xe762('0xe2')])){return this[_0xe762('0xd')][_0xe762('0x2b')](_0x4d188d,_0xe762('0xe3'));}var _0x51e5fe=this['getUser']['sync'](this,_0x4d188d['sip_id']);if(!_0x51e5fe){return this[_0xe762('0xd')][_0xe762('0x2b')](_0x4d188d,_0xe762('0xe4'));}var _0x2c5e5f=this[_0xe762('0xd')]['exec'](_0xe762('0xe5'),[util['format'](_0xe762('0xe6'),_0x51e5fe),_0x4d188d[_0xe762('0x64')],_0x4d188d['opts'],_0x4d188d[_0xe762('0x71')]]);if(_0x2c5e5f[_0xe762('0xaa')]===-0x1){return _0x2c5e5f;}return this[_0xe762('0xd')]['noop'](util[_0xe762('0x28')]('Executed\x20command\x20%s','DIAL'));};AGIVertices[_0xe762('0x10')]['dialogflow']=function(_0x1fefbb){logger[_0xe762('0x2d')](util[_0xe762('0x28')]('Enter\x20in\x20DIALOGFLOW\x20(%s)\x20block',_0x1fefbb[_0xe762('0x37')]));if(!this[_0xe762('0x88')](_0x1fefbb[_0xe762('0x7b')])){return this[_0xe762('0xd')]['noop'](_0xe762('0xe7'));}if(!this[_0xe762('0x88')](_0x1fefbb['text'])){return this[_0xe762('0xd')][_0xe762('0xa9')]('no\x20text\x20configured');}this[_0xe762('0xd')]['bot']=!![];this[_0xe762('0x35')](_0x1fefbb);this[_0xe762('0xe8')](_0x1fefbb[_0xe762('0x62')],'in','','');this[_0xe762('0xd')][_0xe762('0xa9')](util[_0xe762('0x28')](_0xe762('0xe9'),_0x1fefbb[_0xe762('0x62')]));var _0xf3340c=this['googleDialogflow']['sync'](this,_0x1fefbb);if(_0xf3340c){for(var _0x324492 in _0xf3340c){if(_0xf3340c[_0xe762('0x96')](_0x324492)){this[_0xe762('0xd')][_0xe762('0x9f')](util[_0xe762('0x28')](_0xe762('0xea'),_0x324492[_0xe762('0x6a')]()),_0xf3340c[_0x324492]);}}this[_0xe762('0xe8')](_0xf3340c[_0xe762('0xeb')],_0xe762('0xec'),_0xe762('0xed'),'');return this[_0xe762('0xd')][_0xe762('0xa9')](util[_0xe762('0x28')]('Dialogflow\x20Result\x20%s',_0xf3340c['speech']));}return this[_0xe762('0xd')][_0xe762('0x2b')](_0x1fefbb,_0xe762('0xee'));};AGIVertices[_0xe762('0x10')][_0xe762('0xef')]=function(_0x308460){logger['info'](util[_0xe762('0x28')]('Enter\x20in\x20DIALOGFLOW\x20V2\x20(%s)\x20block',_0x308460[_0xe762('0x37')]));if(!this[_0xe762('0x88')](_0x308460[_0xe762('0x7e')])){return this[_0xe762('0xd')]['noop'](_0xe762('0xf0'));}if(!this[_0xe762('0x88')](_0x308460['client_email'])){return this[_0xe762('0xd')][_0xe762('0xa9')](_0xe762('0xf1'));}if(!this[_0xe762('0x88')](_0x308460[_0xe762('0x80')])){return this['channel'][_0xe762('0xa9')](_0xe762('0xf2'));}if(!this[_0xe762('0x88')](_0x308460[_0xe762('0x81')])){return this['channel'][_0xe762('0xa9')]('no\x20anguage\x20configured');}if(!this[_0xe762('0x88')](_0x308460['text'])){return this[_0xe762('0xd')]['noop'](_0xe762('0xc5'));}this[_0xe762('0xd')][_0xe762('0xf3')]=!![];this[_0xe762('0x35')](_0x308460);this[_0xe762('0xe8')](_0x308460[_0xe762('0x62')],'in','','');this[_0xe762('0xd')][_0xe762('0xa9')](util[_0xe762('0x28')]('Trying\x20DialogflowV2:\x20%s',_0x308460[_0xe762('0x62')]));var _0x106dad=this[_0xe762('0x7d')][_0xe762('0x6f')](this,_0x308460);if(_0x106dad){for(var _0xb276b0 in _0x106dad){if(_0x106dad[_0xe762('0x96')](_0xb276b0)){if(_0xb276b0!=='providerResponse'){this[_0xe762('0xd')]['setVariable'](util[_0xe762('0x28')]('DIALOGFLOW_%s',_0xb276b0[_0xe762('0x6a')]()),_0x106dad[_0xb276b0]);}}}this[_0xe762('0xe8')](_0x106dad[_0xe762('0xeb')],_0xe762('0xec'),_0xe762('0xef'),_0x106dad[_0xe762('0xf4')]);return this[_0xe762('0xd')][_0xe762('0xa9')](util[_0xe762('0x28')](_0xe762('0xf5'),_0x106dad['speech']));}return this[_0xe762('0xd')][_0xe762('0x2b')](_0x308460,'DialogflowV2\x20is\x20unreachable');};AGIVertices[_0xe762('0x10')][_0xe762('0xf6')]=function(_0x276d27){logger['info'](util[_0xe762('0x28')]('Enter\x20in\x20SESTEKNDA\x20(%s)\x20block',_0x276d27[_0xe762('0x37')]));if(!this[_0xe762('0x88')](_0x276d27[_0xe762('0xf7')])){return this['channel']['noop'](_0xe762('0xf8'));}if(!this[_0xe762('0x88')](_0x276d27[_0xe762('0xf9')])){return this['channel']['noop'](_0xe762('0xfa'));}if(!this['isConfigured'](_0x276d27[_0xe762('0xfb')])){return this['channel'][_0xe762('0xa9')](_0xe762('0xfc'));}if(!this[_0xe762('0x88')](_0x276d27['ndassistant_url'])){return this[_0xe762('0xd')][_0xe762('0xa9')](_0xe762('0xc5'));}this['channel'][_0xe762('0xf3')]=!![];this[_0xe762('0x35')](_0x276d27);this['createSquareMessage'](_0x276d27[_0xe762('0x62')],'in','','');this[_0xe762('0xd')][_0xe762('0xa9')](util[_0xe762('0x28')](_0xe762('0xfd'),_0x276d27['text']));var _0x2d9cf8=this['sestekNDA']['sync'](this,_0x276d27);if(_0x2d9cf8){for(var _0x5cfae0 in _0x2d9cf8){if(_0x2d9cf8[_0xe762('0x96')](_0x5cfae0)){this[_0xe762('0xd')][_0xe762('0x9f')](util[_0xe762('0x28')]('SESTEK_NDA_%s',_0x5cfae0[_0xe762('0x6a')]()),_0x2d9cf8[_0x5cfae0]);}}this[_0xe762('0xe8')](_0x2d9cf8[_0xe762('0xeb')],_0xe762('0xec'),_0xe762('0xf6'),'');if(_0x2d9cf8[_0xe762('0xfe')]){this[_0xe762('0xd')][_0xe762('0xa9')](util[_0xe762('0x28')](_0xe762('0xff'),_0x2d9cf8[_0xe762('0xfe')]));var _0x23c05b=this['channel'][_0xe762('0x100')](_0x2d9cf8[_0xe762('0xfe')]);try{fs[_0xe762('0x101')](_0x2d9cf8[_0xe762('0xfe')]+_0xe762('0x102'));}catch(_0x538f39){logger[_0xe762('0x2b')](_0x538f39);}return _0x23c05b;}else{return this[_0xe762('0xd')]['noop'](util['format'](_0xe762('0x103'),_0x2d9cf8['speech']));}}return this[_0xe762('0xd')][_0xe762('0x2b')](_0x276d27,_0xe762('0x104'));};AGIVertices[_0xe762('0x10')][_0xe762('0x105')]=function(_0x37c95e){logger['info'](util[_0xe762('0x28')](_0xe762('0x106'),_0x37c95e[_0xe762('0x37')]));return this[_0xe762('0xd')]['noop'](_0xe762('0x105'));};AGIVertices['prototype'][_0xe762('0x107')]=function(_0xbdc6aa){logger[_0xe762('0x2d')](util[_0xe762('0x28')]('Enter\x20in\x20EXTERNAL\x20DIAL\x20(%s)\x20block',_0xbdc6aa[_0xe762('0x37')]));var _0x592842='';if(_0xbdc6aa[_0xe762('0x108')]){if(!this[_0xe762('0x88')](_0xbdc6aa[_0xe762('0x108')])){return this[_0xe762('0xd')]['error'](_0xbdc6aa,_0xe762('0x109'));}else{var _0x455d52=parseInt(_0xbdc6aa[_0xe762('0x108')],0xa);if(isNaN(_0x455d52)){_0x592842=_0xbdc6aa[_0xe762('0x108')];}else{_0x592842=this['getTrunk'][_0xe762('0x6f')](this,_0xbdc6aa['trunk_id']);if(!_0x592842){return this['channel'][_0xe762('0x2b')](_0xbdc6aa,_0xe762('0x10a'));}}}}else if(_0xbdc6aa[_0xe762('0x10b')]){_0x592842=_0xbdc6aa[_0xe762('0x10b')];}else{return this['channel']['error'](_0xbdc6aa,_0xe762('0x109'));}var _0x1b3c10=this[_0xe762('0xd')]['exec'](_0xe762('0xe5'),[util[_0xe762('0x28')]('SIP/%s/%s',_0x592842,_0xbdc6aa[_0xe762('0x45')]),_0xbdc6aa[_0xe762('0x64')],_0xbdc6aa[_0xe762('0x10c')],_0xbdc6aa[_0xe762('0x71')]]);if(_0x1b3c10[_0xe762('0xaa')]===-0x1){return _0x1b3c10;}return this[_0xe762('0xd')]['noop'](util[_0xe762('0x28')](_0xe762('0x10d'),_0xe762('0xe5')));};AGIVertices['prototype'][_0xe762('0x10e')]=function(_0x4ca1ba){logger[_0xe762('0x2d')](util[_0xe762('0x28')](_0xe762('0x10f'),_0x4ca1ba['label']));return this[_0xe762('0xd')][_0xe762('0xa9')](_0xe762('0x10e'));};AGIVertices[_0xe762('0x10')][_0xe762('0xb')]=function(_0x2890a4){logger[_0xe762('0x2d')](util['format'](_0xe762('0x110'),_0x2890a4[_0xe762('0x37')]));if(_0x2890a4[_0xe762('0xa6')]===0x0){return this[_0xe762('0xa5')](_0x2890a4);}_0x2890a4['retry']-=0x1;if(!this[_0xe762('0x88')](_0x2890a4['file_id'])){return this[_0xe762('0xd')]['error'](_0x2890a4,'no\x20file\x20audio\x20selected');}var _0x44fb09=this[_0xe762('0x1c')][_0xe762('0x6f')](this,_0x2890a4[_0xe762('0x111')]);if(!_0x44fb09){return this[_0xe762('0xd')][_0xe762('0x2b')](_0x2890a4,'no\x20file\x20audio\x20found');}if(!this['isConfigured'](_0x2890a4[_0xe762('0xd9')])){return this[_0xe762('0xd')]['error'](_0xe762('0xda'));}var _0x49e3a7=this['channel'][_0xe762('0x112')](_0x44fb09,_0x2890a4[_0xe762('0x113')],_0x2890a4['maxdigit']);var _0x3bd843=_0x49e3a7[_0xe762('0xaa')]?_0x49e3a7[_0xe762('0xaa')][_0xe762('0x4a')]():'';logger['info'](_0xe762('0x114'),JSON[_0xe762('0x75')](_0x49e3a7));if(_0x49e3a7[_0xe762('0xaa')]===-0x1){this[_0xe762('0x35')][_0xe762('0x6f')](this,_0x2890a4,_0x3bd843);return _0x49e3a7;}else if(_0x49e3a7[_0xe762('0xa4')]===_0xe762('0x64')){_0x49e3a7['result']=_0x3bd843[_0xe762('0x9c')]>=parseInt(_0x2890a4[_0xe762('0x115')])?'x':'i';}else{_0x49e3a7[_0xe762('0xaa')]=_0x3bd843[_0xe762('0x9c')]>=parseInt(_0x2890a4[_0xe762('0x115')])&&_0x3bd843[_0xe762('0x9c')]<=parseInt(_0x2890a4[_0xe762('0x116')])?'x':'i';}var _0xd51e88=this[_0xe762('0x11')][_0xe762('0x6f')](this,_0x2890a4['variable_id']);if(!_0xd51e88){return this[_0xe762('0xd')]['error'](_0x2890a4,_0xe762('0xdb'));}this[_0xe762('0xd')][_0xe762('0x9f')](_0xd51e88,_0x3bd843);if(this[_0xe762('0x88')](_0x2890a4[_0xe762('0x117')])){var _0x41a9b0=parseInt(_0x2890a4['hiddendigitsnum'],0xa);var _0x14a88f=rs[_0xe762('0x118')]({'charset':'*','length':_0x41a9b0});var _0x1c5e24=_0x3bd843[_0xe762('0x9c')];if(_0x1c5e24>0x0){if(_0x1c5e24>_0x41a9b0){this['createSquareDetailsReport']['sync'](this,_0x2890a4,_0x2890a4[_0xe762('0x119')]===_0xe762('0x11a')?_0x14a88f+_0x3bd843[_0xe762('0x11b')](_0x41a9b0):_0x3bd843[_0xe762('0x11b')](0x0,_0x1c5e24-_0x41a9b0)+_0x14a88f);}else{this[_0xe762('0x35')][_0xe762('0x6f')](this,_0x2890a4,rs[_0xe762('0x118')]({'charset':'*','length':_0x1c5e24}));}}else{this[_0xe762('0x35')][_0xe762('0x6f')](this,_0x2890a4,'');}}else{this[_0xe762('0x35')]['sync'](this,_0x2890a4,_0x3bd843);}return _0x49e3a7;};AGIVertices[_0xe762('0x10')][_0xe762('0xc')]=function(_0x1a5dfe){logger[_0xe762('0x2d')](util[_0xe762('0x28')](_0xe762('0x11c'),_0x1a5dfe[_0xe762('0x37')]));return this['getdigits'](_0x1a5dfe);};AGIVertices[_0xe762('0x10')][_0xe762('0x11d')]=function(_0x19e864){logger[_0xe762('0x2d')](util[_0xe762('0x28')](_0xe762('0x11e'),_0x19e864[_0xe762('0x37')]));this['createSquareDetailsReport'][_0xe762('0x6f')](this,_0x19e864,_0x19e864['goalname']);return this[_0xe762('0xd')][_0xe762('0xa9')](util[_0xe762('0x28')]('GOAL\x20%s',_0x19e864[_0xe762('0x11f')]));};AGIVertices[_0xe762('0x10')]['awspolly']=function(_0x2a30b8){logger['info'](util[_0xe762('0x28')]('[AGI]\x20Enter\x20in\x20AWSPOLLY\x20(%s)\x20block',_0x2a30b8[_0xe762('0x37')]));if(!this[_0xe762('0x88')](_0x2a30b8[_0xe762('0x8b')])||!this[_0xe762('0x88')](_0x2a30b8['aws_secret_access_key'])){return this[_0xe762('0xd')][_0xe762('0xa9')](_0xe762('0x120'));}if(!this[_0xe762('0x88')](_0x2a30b8[_0xe762('0x62')])){return this['channel'][_0xe762('0xa9')]('no\x20text\x20configured');}this[_0xe762('0xd')][_0xe762('0xa9')](util[_0xe762('0x28')](_0xe762('0x121'),_0x2a30b8[_0xe762('0x62')]));var _0x55dede=this['awsPolly'][_0xe762('0x6f')](this,_0x2a30b8);if(_0x55dede){this['channel'][_0xe762('0xa9')](util[_0xe762('0x28')](_0xe762('0x122'),_0x55dede));var _0x27e26b=this[_0xe762('0xd')][_0xe762('0x100')](_0x55dede);try{fs['unlink'](_0x55dede+_0xe762('0x102'));}catch(_0xf5cbfe){logger[_0xe762('0x2b')](_0xf5cbfe);}return _0x27e26b;}return this[_0xe762('0xd')][_0xe762('0x2b')](_0x2a30b8,_0xe762('0x123'));};AGIVertices[_0xe762('0x10')]['awslex']=function(_0x3e67be){logger[_0xe762('0x2d')](util[_0xe762('0x28')](_0xe762('0x124'),_0x3e67be[_0xe762('0x37')]));if(!this[_0xe762('0x88')](_0x3e67be[_0xe762('0x8b')])||!this[_0xe762('0x88')](_0x3e67be[_0xe762('0x125')])){return this[_0xe762('0xd')]['noop']('no\x20valid\x20credentials\x20configured');}if(!this[_0xe762('0x88')](_0x3e67be[_0xe762('0x91')])){return this[_0xe762('0xd')]['noop'](_0xe762('0x126'));}if(!this[_0xe762('0x88')](_0x3e67be[_0xe762('0x62')])){return this[_0xe762('0xd')][_0xe762('0xa9')](_0xe762('0xc5'));}this[_0xe762('0xd')][_0xe762('0xf3')]=!![];this['createSquareDetailsReport'](_0x3e67be);this[_0xe762('0xe8')](_0x3e67be[_0xe762('0x62')],'in','','');this['channel'][_0xe762('0xa9')](util[_0xe762('0x28')](_0xe762('0x127'),_0x3e67be[_0xe762('0x62')]));var _0xd02f3f=this[_0xe762('0x8f')][_0xe762('0x6f')](this,_0x3e67be);if(_0xd02f3f){for(var _0x1d86f7 in _0xd02f3f){if(_0xd02f3f[_0xe762('0x96')](_0x1d86f7)&&_['isString'](_0xd02f3f[_0x1d86f7])){this[_0xe762('0xd')]['setVariable'](util[_0xe762('0x28')](_0xe762('0x128'),_0x1d86f7[_0xe762('0x6a')]()),_0xd02f3f[_0x1d86f7]);}}if(_[_0xe762('0x42')](_0xd02f3f[_0xe762('0x129')])){return this[_0xe762('0xd')]['noop']('Amazon\x20Lex\x20ready\x20for\x20fulfillment');}else{this['createSquareMessage'](_0xd02f3f['message'],_0xe762('0xec'),_0xe762('0x12a'),'');return this[_0xe762('0xd')]['noop'](util[_0xe762('0x28')]('Amazon\x20Lex\x20Result\x20%s',_0xd02f3f[_0xe762('0x129')]));}}return this[_0xe762('0xd')]['error'](_0x3e67be,_0xe762('0x12b'));};AGIVertices[_0xe762('0x10')][_0xe762('0x12c')]=function(_0x392293){logger[_0xe762('0x2d')](util[_0xe762('0x28')](_0xe762('0x12d'),_0x392293['label'],_0x392293[_0xe762('0x64')]));if(!this[_0xe762('0x88')](_0x392293[_0xe762('0x7b')])){return this['channel'][_0xe762('0xa9')](_0xe762('0xe7'));}var _0xd36039=_0xe762('0x12e');var _0x13523c=util[_0xe762('0x28')](_0xe762('0x12f'),FILES_PATH,rs[_0xe762('0x118')](0x4));var _0x309aee=util[_0xe762('0x28')](_0xe762('0x9e'),_0x13523c,_0xd36039);var _0x117b83=!![];if(_0x392293['beep']==='NOBEEP'){_0x117b83=![];}var _0x1ddc8a=this['channel'][_0xe762('0x130')](_0x13523c,_0xd36039,_0x392293[_0xe762('0x131')],_0x392293['timeout'],undefined,_0x117b83);if(_0x1ddc8a[_0xe762('0xaa')]!==-0x1){this['channel'][_0xe762('0xa9')](util[_0xe762('0x28')](_0xe762('0x132'),_0x309aee));var _0x1dd3ee=this[_0xe762('0x92')][_0xe762('0x6f')](this,_0x392293,_0x309aee);if(_0x1dd3ee){for(var _0x585bef in _0x1dd3ee){if(_0x1dd3ee[_0xe762('0x96')](_0x585bef)){this['channel'][_0xe762('0x9f')](util[_0xe762('0x28')](_0xe762('0x133'),_0x585bef['toUpperCase']()),_0x1dd3ee[_0x585bef]);}}return this[_0xe762('0xd')]['noop'](util['format']('GoogleASR\x20Result\x20%s',JSON[_0xe762('0x75')](_0x1dd3ee)));}}return _0x1ddc8a;};AGIVertices['prototype'][_0xe762('0x134')]=function(_0x5450be){logger[_0xe762('0x2d')](util[_0xe762('0x28')](_0xe762('0x135'),_0x5450be['label']));if(!this[_0xe762('0x88')](_0x5450be['appid'])){return this[_0xe762('0xd')][_0xe762('0xa9')](_0xe762('0x136'));}if(!this[_0xe762('0x88')](_0x5450be[_0xe762('0x137')])){return this[_0xe762('0xd')]['noop']('no\x20appsecret\x20configured');}var _0x493ac3=_0xe762('0x12e');var _0x4dadb9=util[_0xe762('0x28')](_0xe762('0x12f'),FILES_PATH,rs[_0xe762('0x118')](0x4));var _0x55c140=util[_0xe762('0x28')](_0xe762('0x9e'),_0x4dadb9,_0x493ac3);var _0x37eace=!![];if(_0x5450be[_0xe762('0x138')]===_0xe762('0x139')){_0x37eace=![];}var _0x2b5e37=this['channel'][_0xe762('0x130')](_0x4dadb9,_0x493ac3,_0x5450be[_0xe762('0x131')],_0x5450be['timeout'],undefined,_0x37eace);if(_0x2b5e37[_0xe762('0xaa')]!==-0x1){this[_0xe762('0xd')][_0xe762('0xa9')](util[_0xe762('0x28')](_0xe762('0x13a'),_0x55c140));var _0x41c995=this[_0xe762('0x94')][_0xe762('0x6f')](this,_0x5450be,_0x55c140);if(_0x41c995){for(var _0x4ec559 in _0x41c995){if(_0x41c995[_0xe762('0x96')](_0x4ec559)){this[_0xe762('0xd')][_0xe762('0x9f')](util[_0xe762('0x28')](_0xe762('0x13b'),_0x4ec559[_0xe762('0x6a')]()),_0x41c995[_0x4ec559]);}}return this[_0xe762('0xd')]['noop'](util[_0xe762('0x28')]('TildeASR\x20Result\x20%s',JSON[_0xe762('0x75')](_0x41c995)));}}return _0x2b5e37;};AGIVertices[_0xe762('0x10')][_0xe762('0x13c')]=function(_0x2c68a8){logger[_0xe762('0x2d')](util[_0xe762('0x28')](_0xe762('0x13d'),_0x2c68a8[_0xe762('0x37')]));return this[_0xe762('0xd')][_0xe762('0x13e')](_0x2c68a8[_0xe762('0x3b')],_0x2c68a8[_0xe762('0x13f')],_0x2c68a8[_0xe762('0x3c')]);};AGIVertices[_0xe762('0x10')][_0xe762('0x140')]=function(_0x4dc6ae){logger[_0xe762('0x2d')](util[_0xe762('0x28')](_0xe762('0x141'),_0x4dc6ae['label']));if(!this[_0xe762('0x88')](_0x4dc6ae[_0xe762('0x142')])){return this[_0xe762('0xd')][_0xe762('0x2b')](_0x4dc6ae,_0xe762('0x143'));}try{var _0x57a368=eval(_0x4dc6ae[_0xe762('0x142')])?_0xe762('0x144'):_0xe762('0x145');this[_0xe762('0xd')][_0xe762('0xa9')](util['format'](_0xe762('0x146'),_0x4dc6ae[_0xe762('0x142')],_0x57a368));return{'code':0xc8,'result':_0x57a368};}catch(_0x5f0454){return{'code':0xc8,'result':_0xe762('0x145')};}};AGIVertices[_0xe762('0x10')][_0xe762('0x147')]=function(_0x2d2d4f){logger['info'](util[_0xe762('0x28')]('Enter\x20in\x20GOTOIFTIME\x20(%s)\x20block',_0x2d2d4f[_0xe762('0x37')]));if(!this[_0xe762('0x88')](_0x2d2d4f[_0xe762('0x148')])){return this[_0xe762('0xd')][_0xe762('0x2b')](_0x2d2d4f,_0xe762('0x149'));}var _0x1ecc88=this[_0xe762('0x23')]['sync'](this,_0x2d2d4f[_0xe762('0x148')]);if(!_0x1ecc88){return this[_0xe762('0xd')][_0xe762('0x2b')](_0x2d2d4f,_0xe762('0x14a'));}for(var _0x41588d=0x0;_0x41588d<_0x1ecc88[_0xe762('0x9c')];_0x41588d+=0x1){var _0x171edc=this[_0xe762('0xd')][_0xe762('0x11')](util[_0xe762('0x28')](_0xe762('0x14b'),_0x1ecc88[_0x41588d]));if(_0x171edc['result']===-0x1){return _0x171edc;}logger[_0xe762('0x2d')](util['format']('IFTIME\x20%s\x20%s',_0x1ecc88[_0x41588d],_0x171edc[_0xe762('0xa4')]));if(_0x171edc['extra']===_0xe762('0x144')){logger[_0xe762('0x2d')](util[_0xe762('0x28')](_0xe762('0x14c'),_0x1ecc88[_0x41588d],_0xe762('0x144')));this[_0xe762('0xd')]['noop'](util[_0xe762('0x28')]('IFTIME\x20%s\x20%s',_0x1ecc88[_0x41588d],_0xe762('0x144')));return{'code':0xc8,'result':'true'};}else{logger[_0xe762('0x2d')](util[_0xe762('0x28')]('IFTIME\x20%s\x20%s',_0x1ecc88[_0x41588d],_0xe762('0x145')));this[_0xe762('0xd')][_0xe762('0xa9')](util[_0xe762('0x28')]('IFTIME\x20%s\x20%s',_0x1ecc88[_0x41588d],_0xe762('0x145')));}}return{'code':0xc8,'result':_0xe762('0x145')};};AGIVertices[_0xe762('0x10')][_0xe762('0x14d')]=function(_0x5d90df){logger[_0xe762('0x2d')](util[_0xe762('0x28')](_0xe762('0x14e'),_0x5d90df[_0xe762('0x37')]));return this[_0xe762('0xd')][_0xe762('0x14d')]();};AGIVertices['prototype'][_0xe762('0x14f')]=function(_0x45846a){logger['info'](util['format'](_0xe762('0x150'),_0x45846a['label']));if(!this['isConfigured'](_0x45846a[_0xe762('0x7b')])){return this[_0xe762('0xd')][_0xe762('0xa9')](_0xe762('0xe7'));}var _0x45c24a=_0xe762('0x12e');var _0x4d0fdd=util['format']('%s/recordings/%s',FILES_PATH,rs['generate'](0x4));var _0x4498fe=util['format']('%s.%s',_0x4d0fdd,_0x45c24a);var _0x30dab2=!![];if(_0x45846a['beep']===_0xe762('0x139')){_0x30dab2=![];}var _0x31eb9d=this['channel']['recordFile'](_0x4d0fdd,_0x45c24a,_0x45846a['intKey'],_0x45846a[_0xe762('0x64')],undefined,_0x30dab2);if(_0x31eb9d[_0xe762('0xaa')]!==-0x1){this[_0xe762('0xd')][_0xe762('0xa9')](util[_0xe762('0x28')]('ispeech\x20%s\x20file\x20created',_0x4498fe));var _0x2831c1=this['ispeechASR'][_0xe762('0x6f')](this,_0x45846a,_0x4498fe);if(_0x2831c1){for(var _0x3225b7 in _0x2831c1){if(_0x2831c1[_0xe762('0x96')](_0x3225b7)){this['channel'][_0xe762('0x9f')](util[_0xe762('0x28')]('ISPEECH_ASR_%s',_0x3225b7[_0xe762('0x6a')]()),_0x2831c1[_0x3225b7]);}}return this[_0xe762('0xd')][_0xe762('0xa9')](util[_0xe762('0x28')](_0xe762('0x151'),JSON[_0xe762('0x75')](_0x2831c1)));}}return _0x31eb9d;};AGIVertices[_0xe762('0x10')][_0xe762('0x152')]=function(_0x1085c2){logger[_0xe762('0x2d')](util['format'](_0xe762('0x153'),_0x1085c2[_0xe762('0x37')]));if(!this[_0xe762('0x88')](_0x1085c2[_0xe762('0x7b')])){return this[_0xe762('0xd')][_0xe762('0xa9')](_0xe762('0xe7'));}if(!this[_0xe762('0x88')](_0x1085c2[_0xe762('0x62')])){return this[_0xe762('0xd')][_0xe762('0xa9')](_0xe762('0xc5'));}this[_0xe762('0xd')][_0xe762('0xa9')](util[_0xe762('0x28')](_0xe762('0x154'),_0x1085c2['text']));var _0x19d481=this['ispeechTTS']['sync'](this,_0x1085c2);if(_0x19d481){this[_0xe762('0xd')][_0xe762('0xa9')](util['format'](_0xe762('0x155'),_0x19d481));var _0x38b143=this['channel'][_0xe762('0x100')](_0x19d481,_0x1085c2['intKey']);try{fs['unlink'](_0x19d481+'.wav');}catch(_0x2c6e84){logger['error'](_0x2c6e84);}return _0x38b143;}return this[_0xe762('0xd')][_0xe762('0x2b')](_0x1085c2,'ispeech\x20TTS\x20is\x20unreachable');};AGIVertices[_0xe762('0x10')][_0xe762('0x156')]=function(_0x2d4ebb){logger[_0xe762('0x2d')](util[_0xe762('0x28')]('Enter\x20in\x20LOGIN\x20(%s)\x20block',_0x2d4ebb['label']));if(!this[_0xe762('0x88')](_0x2d4ebb[_0xe762('0x157')])){return this[_0xe762('0xd')][_0xe762('0x2b')](_0x2d4ebb,_0xe762('0x158'));}logger[_0xe762('0x2d')](util[_0xe762('0x28')](_0xe762('0x159'),this['channel'][_0xe762('0x3a')],_0x2d4ebb['findBy']));var _0x5eb992=this[_0xe762('0x15a')]['sync'](this,_0x2d4ebb[_0xe762('0x157')]);if(_0x5eb992){logger[_0xe762('0x2d')](util['format'](_0xe762('0x15b'),this[_0xe762('0xd')][_0xe762('0x3a')],_0x2d4ebb[_0xe762('0x157')]));this['channel'][_0xe762('0xa9')](util[_0xe762('0x28')](_0xe762('0x15b'),this[_0xe762('0xd')][_0xe762('0x3a')],_0x2d4ebb[_0xe762('0x157')]));return{'code':0xc8,'result':_0xe762('0x15c')};}else{logger['info'](util['format'](_0xe762('0x15d'),this[_0xe762('0xd')][_0xe762('0x3a')],_0x2d4ebb['findBy']));this['channel']['noop'](util[_0xe762('0x28')]('AGENT\x20%s\x20NOT\x20FOUND\x20BY',this[_0xe762('0xd')][_0xe762('0x3a')],_0x2d4ebb[_0xe762('0x157')]));return{'code':0xc8,'result':_0xe762('0x15e')};}};AGIVertices[_0xe762('0x10')][_0xe762('0x15f')]=function(_0x46648d){logger['info'](util[_0xe762('0x28')]('Enter\x20in\x20LOGOUT\x20(%s)\x20block',_0x46648d[_0xe762('0x37')]));if(!this[_0xe762('0x88')](_0x46648d[_0xe762('0x157')])){return this[_0xe762('0xd')][_0xe762('0x2b')](_0x46648d,_0xe762('0x158'));}logger['info'](util[_0xe762('0x28')](_0xe762('0x159'),this[_0xe762('0xd')]['callerid'],_0x46648d[_0xe762('0x157')]));var _0x5f3309=this[_0xe762('0x51')][_0xe762('0x6f')](this,_0x46648d[_0xe762('0x157')]);if(_0x5f3309){logger[_0xe762('0x2d')](util[_0xe762('0x28')]('AGENT\x20%s\x20FOUND\x20BY',this['channel'][_0xe762('0x3a')],_0x46648d[_0xe762('0x157')]));this[_0xe762('0xd')][_0xe762('0xa9')](util[_0xe762('0x28')](_0xe762('0x15b'),this[_0xe762('0xd')][_0xe762('0x3a')],_0x46648d[_0xe762('0x157')]));return{'code':0xc8,'result':_0xe762('0x15c')};}else{logger[_0xe762('0x2d')](util[_0xe762('0x28')](_0xe762('0x15d'),this['channel']['callerid'],_0x46648d[_0xe762('0x157')]));this['channel']['noop'](util['format']('AGENT\x20%s\x20NOT\x20FOUND\x20BY',this['channel']['callerid'],_0x46648d[_0xe762('0x157')]));return{'code':0xc8,'result':_0xe762('0x15e')};}};AGIVertices['prototype'][_0xe762('0x160')]=function(_0x48144e){logger[_0xe762('0x2d')](util[_0xe762('0x28')]('Enter\x20in\x20MATH\x20(%s)\x20block',_0x48144e[_0xe762('0x37')]));if(!this['isConfigured'](_0x48144e[_0xe762('0x161')])){return this[_0xe762('0xd')]['error'](_0x48144e,_0xe762('0x162'));}this[_0xe762('0xd')][_0xe762('0xa9')](util['format']('math\x20%s',_0x48144e[_0xe762('0x161')]));var _0x3294f6=eval(_0x48144e[_0xe762('0x161')]);if(!this[_0xe762('0x88')](_0x48144e[_0xe762('0xd9')])){return this[_0xe762('0xd')]['noop']('no\x20variable\x20selected\x20for\x20the\x20result');}var _0xa1e9c5=this[_0xe762('0x11')]['sync'](this,_0x48144e[_0xe762('0xd9')]);if(!_0xa1e9c5){return this[_0xe762('0xd')][_0xe762('0x2b')](_0x48144e,_0xe762('0xdb'));}if(_[_0xe762('0x9b')](_0x3294f6)){var _0x2e657a=this;_0x3294f6[_0xe762('0xdc')](function(_0x50e13d,_0xa9c3b){_0x2e657a[_0xe762('0xd')][_0xe762('0x9f')](util[_0xe762('0x28')](_0xe762('0x163'),_0xa1e9c5,_0xa9c3b),_0x50e13d);});return this[_0xe762('0xd')][_0xe762('0xa9')](util[_0xe762('0x28')](_0xe762('0x164'),_0xa1e9c5));}else{return this[_0xe762('0xd')][_0xe762('0x9f')](_0xa1e9c5,_0x3294f6);}};AGIVertices[_0xe762('0x10')][_0xe762('0xa')]=function(_0x161b30){logger[_0xe762('0x2d')](util[_0xe762('0x28')]('Enter\x20in\x20MENU\x20(%s)\x20block',_0x161b30['label']));if(_0x161b30[_0xe762('0xa6')]===0x0){return this['maxRetry'](_0x161b30);}_0x161b30[_0xe762('0xa6')]-=0x1;if(!this[_0xe762('0x88')](_0x161b30[_0xe762('0x111')])){return this['channel'][_0xe762('0x2b')](_0x161b30,_0xe762('0x165'));}var _0x38ea60=this['getSound'][_0xe762('0x6f')](this,_0x161b30['file_id']);if(!_0x38ea60){return this[_0xe762('0xd')]['error'](_0x161b30,_0xe762('0x166'));}var _0x5cff10=this[_0xe762('0xd')][_0xe762('0x112')](_0x38ea60,_0x161b30['response'],_0x161b30[_0xe762('0x167')]);var _0x349e07=_0x5cff10[_0xe762('0xaa')];if(_0x5cff10['result']===-0x1){this[_0xe762('0x35')][_0xe762('0x6f')](this,_0x161b30,'-1');return _0x5cff10;}else if(_0x5cff10[_0xe762('0xa4')]==='timeout'){_0x5cff10[_0xe762('0xaa')]=_0x5cff10['result'][_0xe762('0x9c')]>0x0?_0x5cff10['result']:'t';}else if(_['isEmpty'](_0x5cff10[_0xe762('0xaa')])){_0x5cff10[_0xe762('0xaa')]='#';_0x349e07='#';}if(!this[_0xe762('0x88')](_0x161b30['variable_id'])){this['channel'][_0xe762('0xa9')]('no\x20variable\x20selected\x20for\x20the\x20result');}else{var _0x85714a=this[_0xe762('0x11')][_0xe762('0x6f')](this,_0x161b30[_0xe762('0xd9')]);if(!_0x85714a){return this[_0xe762('0xd')][_0xe762('0x2b')](_0x161b30,_0xe762('0xdb'));}this[_0xe762('0xd')][_0xe762('0x9f')](_0x85714a,_0x349e07);}this[_0xe762('0x35')][_0xe762('0x6f')](this,_0x161b30,_0x349e07);return _0x5cff10;};AGIVertices[_0xe762('0x10')]['noop']=function(_0x5362f4){logger[_0xe762('0x2d')](util[_0xe762('0x28')](_0xe762('0x168'),_0x5362f4[_0xe762('0x37')]));return this[_0xe762('0xd')][_0xe762('0xa9')](_0x5362f4[_0xe762('0x169')]||_0x5362f4[_0xe762('0x37')]);};AGIVertices[_0xe762('0x10')][_0xe762('0x16a')]=function(_0x35544c){logger[_0xe762('0x2d')](util[_0xe762('0x28')](_0xe762('0x16b'),_0x35544c[_0xe762('0x37')]));if(!this[_0xe762('0x88')](_0x35544c['findBy'])){return this[_0xe762('0xd')][_0xe762('0x2b')](_0x35544c,_0xe762('0x158'));}logger[_0xe762('0x2d')](util['format']('FIND\x20AGENT\x20%s\x20BY\x20%s',this[_0xe762('0xd')][_0xe762('0x3a')],_0x35544c[_0xe762('0x157')]));var _0x2cf73f=this[_0xe762('0x4c')]['sync'](this,_0x35544c[_0xe762('0x16c')]);var _0x4662c9=this[_0xe762('0x4f')][_0xe762('0x6f')](this,_0x35544c[_0xe762('0x157')],_0x2cf73f);if(_0x4662c9){logger[_0xe762('0x2d')](util[_0xe762('0x28')]('AGENT\x20%s\x20FOUND\x20BY',this[_0xe762('0xd')][_0xe762('0x3a')],_0x35544c[_0xe762('0x157')]));this['channel'][_0xe762('0xa9')](util[_0xe762('0x28')]('AGENT\x20%s\x20FOUND\x20BY',this['channel'][_0xe762('0x3a')],_0x35544c[_0xe762('0x157')]));return{'code':0xc8,'result':'success'};}else{logger[_0xe762('0x2d')](util['format'](_0xe762('0x15d'),this[_0xe762('0xd')][_0xe762('0x3a')],_0x35544c[_0xe762('0x157')]));this[_0xe762('0xd')][_0xe762('0xa9')](util[_0xe762('0x28')](_0xe762('0x15b'),this[_0xe762('0xd')][_0xe762('0x3a')],_0x35544c['findBy']));return{'code':0xc8,'result':'failure'};}};AGIVertices[_0xe762('0x10')][_0xe762('0x16d')]=function(_0xb001fe){logger[_0xe762('0x2d')](util[_0xe762('0x28')]('Enter\x20in\x20PLAYBACK\x20(%s)\x20block',_0xb001fe[_0xe762('0x37')]));if(!this[_0xe762('0x88')](_0xb001fe[_0xe762('0x111')])){return this[_0xe762('0xd')]['error'](_0xb001fe,_0xe762('0x165'));}var _0x44a95f=this[_0xe762('0x1c')][_0xe762('0x6f')](this,_0xb001fe[_0xe762('0x111')]);if(!_0x44a95f){return this['channel'][_0xe762('0x2b')](_0xb001fe,_0xe762('0x166'));}var _0x10b700=this[_0xe762('0xd')][_0xe762('0x55')](_0xe762('0x16e'),[_0x44a95f,_0xb001fe[_0xe762('0x10c')]]);if(_0x10b700[_0xe762('0xaa')]===-0x1){return _0x10b700;}return this[_0xe762('0xd')][_0xe762('0xa9')](util[_0xe762('0x28')](_0xe762('0xc3'),_0xe762('0x16e'),_0x44a95f));};AGIVertices[_0xe762('0x10')]['queue']=function(_0x4b5f6d){logger[_0xe762('0x2d')](util[_0xe762('0x28')](_0xe762('0x16f'),_0x4b5f6d['label']));if(!this[_0xe762('0x88')](_0x4b5f6d[_0xe762('0x170')])){return this[_0xe762('0xd')]['error'](_0x4b5f6d,_0xe762('0x171'));}var _0x1f5d06='';var _0x39ea97=parseInt(_0x4b5f6d[_0xe762('0x170')],0xa);if(isNaN(_0x39ea97)){_0x1f5d06=_0x4b5f6d['queue_id'];}else{_0x1f5d06=this[_0xe762('0x15')][_0xe762('0x6f')](this,_0x4b5f6d[_0xe762('0x170')]);if(!_0x1f5d06){return this['channel'][_0xe762('0x2b')](_0x4b5f6d,_0xe762('0x172'));}}var _0x48baf7='';if(this['isConfigured'](_0x4b5f6d['file_id'])){var _0x295032=this[_0xe762('0x1c')][_0xe762('0x6f')](this,_0x4b5f6d['file_id']);if(_0x295032){_0x48baf7=_0x295032;}}this['createSquareDetailsReport'][_0xe762('0x6f')](this,_0x4b5f6d,_0x1f5d06);if(_0x4b5f6d['opts'][_0xe762('0x173')]('x')<0x0){_0x4b5f6d[_0xe762('0x10c')]+='x';}if(_0x4b5f6d['opts']['indexOf']('X')<0x0){_0x4b5f6d[_0xe762('0x10c')]+='X';}this[_0xe762('0xd')][_0xe762('0x9f')]('XMCS-QUEUE',_0x1f5d06?_0x1f5d06[_0xe762('0x174')]():'');var _0x4cf966=this[_0xe762('0xd')]['exec'](_0xe762('0x175'),[_0x1f5d06,_0x4b5f6d[_0xe762('0x10c')],_0x4b5f6d[_0xe762('0x71')],_0x48baf7,_0x4b5f6d['timeout'],_0x4b5f6d[_0xe762('0x5')],_0x4b5f6d[_0xe762('0x176')],_0x4b5f6d[_0xe762('0x177')],'',_0x4b5f6d['position']]);if(_0x4cf966[_0xe762('0xaa')]===-0x1){return _0x4cf966;}return this['channel'][_0xe762('0xa9')](util[_0xe762('0x28')](_0xe762('0xc3'),_0xe762('0x175'),_0x1f5d06));};AGIVertices[_0xe762('0x10')]['record']=function(_0x18c894){logger['info'](util[_0xe762('0x28')](_0xe762('0x178'),_0x18c894[_0xe762('0x37')]));var _0xa2e13d=_0x18c894[_0xe762('0x179')]||_0xe762('0x12e');var _0x5ab08d=util[_0xe762('0x28')](_0xe762('0x17a'),this[_0xe762('0xd')]['uniqueid'],rs[_0xe762('0x118')](0x5));var _0x9ab832=util[_0xe762('0x28')](_0xe762('0x17b'),FILES_PATH,_0x5ab08d,_0xa2e13d);var _0x474897=util[_0xe762('0x28')]('%s/recordings/%s',FILES_PATH,_0x5ab08d);this[_0xe762('0x17c')]['sync'](this,_0x18c894,_0x5ab08d,_0x9ab832);this[_0xe762('0xd')][_0xe762('0x9f')](_0xe762('0x17d'),_0x5ab08d);logger['info'](_0xe762('0x17e'),_0x474897,_0xa2e13d,_0x18c894[_0xe762('0x17f')],_0x18c894[_0xe762('0x64')]);return this[_0xe762('0xd')]['recordFile'](_0x474897,_0xa2e13d,_0x18c894['escape_digits'],_0x18c894[_0xe762('0x64')],undefined,!![]);};AGIVertices[_0xe762('0x10')][_0xe762('0x180')]=function(_0x4f41a5){logger[_0xe762('0x2d')](util[_0xe762('0x28')](_0xe762('0x181'),_0x4f41a5[_0xe762('0x37')]));if(!this[_0xe762('0x88')](_0x4f41a5[_0xe762('0x71')])){return this[_0xe762('0xd')][_0xe762('0xa9')](_0xe762('0x182'));}var _0x153501=this[_0xe762('0x63')][_0xe762('0x6f')](this,_0x4f41a5);logger[_0xe762('0x2d')](util['format']('Response:',util[_0xe762('0x183')](_0x153501,{'showHidden':![],'depth':null})));if(!this['isConfigured'](_0x4f41a5[_0xe762('0xd9')])){return this[_0xe762('0xd')][_0xe762('0xa9')]('no\x20variable\x20selected\x20for\x20the\x20response');}var _0x34f6ef=this[_0xe762('0x11')][_0xe762('0x6f')](this,_0x4f41a5[_0xe762('0xd9')]);if(!_0x34f6ef){return this[_0xe762('0xd')][_0xe762('0x2b')](_0x4f41a5,'no\x20variable\x20found');}this[_0xe762('0xd')]['setVariable'](util[_0xe762('0x28')](_0xe762('0x184'),_0x34f6ef),_0x153501[_0xe762('0x77')]?_0x153501[_0xe762('0x77')]:'200');this[_0xe762('0xd')][_0xe762('0x9f')](util[_0xe762('0x28')](_0xe762('0x185'),_0x34f6ef),_0x153501[_0xe762('0x78')]?_0x153501['statusMessage']:'OK');if(_0x153501['body']){try{this[_0xe762('0x9d')](_0x153501[_0xe762('0x6b')],_0x34f6ef);}catch(_0x552ba0){logger['error'](util[_0xe762('0x28')](_0xe762('0x186'),_0x34f6ef));}}return this[_0xe762('0xd')][_0xe762('0xa9')](util[_0xe762('0x28')](_0xe762('0xdf'),_0x34f6ef));};AGIVertices[_0xe762('0x10')][_0xe762('0x187')]=function(_0x370c09){logger[_0xe762('0x2d')](util['format'](_0xe762('0x188'),_0x370c09[_0xe762('0x37')]));return this[_0xe762('0xd')][_0xe762('0x189')](_0x370c09[_0xe762('0x18a')][_0xe762('0x57')](/\s+/g,''),_0x370c09[_0xe762('0x17f')]);};AGIVertices[_0xe762('0x10')][_0xe762('0x18b')]=function(_0x4fca2a){logger[_0xe762('0x2d')](util[_0xe762('0x28')]('Enter\x20in\x20SAYNUMBER\x20(%s)\x20block',_0x4fca2a[_0xe762('0x37')]));return this[_0xe762('0xd')][_0xe762('0x18c')](_0x4fca2a[_0xe762('0x65')][_0xe762('0x57')](/\s+/g,''),_0x4fca2a[_0xe762('0x17f')]);};AGIVertices['prototype'][_0xe762('0x18d')]=function(_0x1a78d6){logger[_0xe762('0x2d')](util['format'](_0xe762('0x18e'),_0x1a78d6[_0xe762('0x37')]));return this[_0xe762('0xd')]['sayPhonetic'](_0x1a78d6[_0xe762('0x62')],_0x1a78d6[_0xe762('0x17f')]);};AGIVertices[_0xe762('0x10')][_0xe762('0x18f')]=function(_0x4f4842){logger[_0xe762('0x2d')](util[_0xe762('0x28')]('Enter\x20in\x20SENDMAIL\x20(%s)\x20block',_0x4f4842['label']));if(!this[_0xe762('0x88')](_0x4f4842[_0xe762('0x190')])){return this['channel']['noop'](_0xe762('0x191'));}var _0x408420=this[_0xe762('0x20')][_0xe762('0x6f')](this,_0x4f4842['account_id']);if(!_0x408420||!_0x408420[_0xe762('0x192')]){return this[_0xe762('0xd')][_0xe762('0x2b')](_0x4f4842,_0xe762('0x193'));}var _0x42318d={'from':util['format'](_0xe762('0x194'),_0x408420[_0xe762('0x14')],_0x408420[_0xe762('0x195')]||_0x408420[_0xe762('0x192')][_0xe762('0x196')]),'to':_0x4f4842['to']||'','cc':_0x4f4842['cc']||'','bcc':_0x4f4842[_0xe762('0x197')]||'','subject':_0x4f4842[_0xe762('0x198')],'html':_0x4f4842['text'],'text':_0x4f4842[_0xe762('0x62')]};var _0x4c1a63={'tls':{'rejectUnauthorized':![]}};if(_0x408420['Smtp'][_0xe762('0x199')]){_0x4c1a63[_0xe762('0x199')]=_0x408420['Smtp'][_0xe762('0x199')];}else{_0x4c1a63[_0xe762('0x19a')]=_0x408420[_0xe762('0x192')]['host'];_0x4c1a63[_0xe762('0x19b')]=_0x408420['Smtp'][_0xe762('0x19b')];_0x4c1a63[_0xe762('0x19c')]=_0x408420[_0xe762('0x192')][_0xe762('0x19c')];}if(_0x408420[_0xe762('0x192')][_0xe762('0x19d')]){_0x4c1a63[_0xe762('0x19e')]={'user':_0x408420['Smtp']['user'],'pass':_0x408420[_0xe762('0x192')][_0xe762('0x19f')]};}if(this[_0xe762('0x88')](_0x4f4842['template_id'])){}logger[_0xe762('0xe0')](_0xe762('0x1a0'),JSON[_0xe762('0x75')](_0x42318d));this[_0xe762('0x35')]['sync'](this,_0x4f4842,_0x4f4842['account_id']);this[_0xe762('0xd')][_0xe762('0xa9')](util[_0xe762('0x28')](_0xe762('0x1a1'),_0x408420[_0xe762('0x14')]));this[_0xe762('0x22')][_0xe762('0x6f')](this,_0x4c1a63,_0x42318d);return this['channel']['noop'](_0xe762('0x1a2'));};AGIVertices['prototype'][_0xe762('0x1a3')]=function(_0x60a3f2){logger[_0xe762('0x2d')](util['format']('Enter\x20in\x20SENDFAX\x20(%s)\x20block',_0x60a3f2[_0xe762('0x37')]));return this[_0xe762('0xd')][_0xe762('0xa9')](_0xe762('0x1a4'));};AGIVertices[_0xe762('0x10')]['sendSMS']=function(_0x5c2d86){logger['info'](util['format'](_0xe762('0x1a5'),_0x5c2d86[_0xe762('0x37')]));if(!this['isConfigured'](_0x5c2d86[_0xe762('0x1a6')])){return this['channel'][_0xe762('0xa9')](_0xe762('0x1a7'));}var _0x31bc46=this['getSmsAccount'][_0xe762('0x6f')](this,_0x5c2d86[_0xe762('0x1a6')]);if(!_0x31bc46){return this[_0xe762('0xd')]['error'](_0x5c2d86,_0xe762('0x1a8'));}var _0x3b5bfa={'body':_0x5c2d86['sms_text'],'phone':_0x5c2d86['to']||'','SmsAccountId':_0x31bc46['id']};logger['debug'](_0xe762('0x1a9'),JSON[_0xe762('0x75')](_0x3b5bfa));this[_0xe762('0x35')][_0xe762('0x6f')](this,_0x5c2d86,_0x5c2d86[_0xe762('0x1a6')]);this['channel']['noop'](util['format'](_0xe762('0x1aa'),_0x31bc46[_0xe762('0x14')]));this[_0xe762('0x1ab')]['sync'](this,_0x3b5bfa);return this['channel'][_0xe762('0xa9')](_0xe762('0x1ac'));};AGIVertices[_0xe762('0x10')][_0xe762('0x1ad')]=function(_0x167ea6){logger['info'](util[_0xe762('0x28')](_0xe762('0x1ae'),_0x167ea6[_0xe762('0x37')]));if(!this[_0xe762('0x88')](_0x167ea6[_0xe762('0xd9')])){return this[_0xe762('0xd')][_0xe762('0x2b')](_0x167ea6,_0xe762('0x1af'));}var _0x52f0b0=this[_0xe762('0x11')]['sync'](this,_0x167ea6[_0xe762('0xd9')]);if(!_0x52f0b0){return this['channel']['error'](_0x167ea6,_0xe762('0xdb'));}return this['channel'][_0xe762('0x9f')](_0x52f0b0,_0x167ea6[_0xe762('0x1b0')]);};AGIVertices['prototype'][_0xe762('0x1b1')]=function(_0x4370c2){logger[_0xe762('0x2d')](util[_0xe762('0x28')]('Enter\x20in\x20START\x20(%s)\x20block',_0x4370c2[_0xe762('0x37')]));this['channel']['noop'](_0xe762('0x1b2'));if(_0x4370c2[_0xe762('0xba')]==='yes'){this[_0xe762('0xd')]['noop'](_0xe762('0x1b3'));return this[_0xe762('0xd')][_0xe762('0xba')]();}return this[_0xe762('0xd')][_0xe762('0xa9')](_0xe762('0x1b4'));};AGIVertices[_0xe762('0x10')]['subproject']=function(_0x3350d6){logger[_0xe762('0x2d')](util[_0xe762('0x28')]('Enter\x20in\x20SUBPROJECT\x20(%s)\x20block',_0x3350d6[_0xe762('0x37')]));if(!this[_0xe762('0x88')](_0x3350d6[_0xe762('0x1b5')])){return this[_0xe762('0xd')]['error'](_0x3350d6,_0xe762('0x1b6'));}var _0x549859=this[_0xe762('0x17')][_0xe762('0x6f')](this,_0x3350d6[_0xe762('0x1b5')]);if(!this[_0xe762('0x88')](_0x549859)){return this[_0xe762('0xd')][_0xe762('0x2b')](_0x3350d6,util[_0xe762('0x28')](_0xe762('0x1b7'),_0x3350d6[_0xe762('0x1b5')]));}if(_0x549859===this[_0xe762('0xd')][_0xe762('0x39')]){return this[_0xe762('0xd')][_0xe762('0x2b')](_0x3350d6,_0xe762('0x1b8'));}this['createSquareDetailsReport']['sync'](this,_0x3350d6,_0x549859);var _0x3dda87=this[_0xe762('0xd')]['exec']('AGI',util[_0xe762('0x28')]('agi://%s/square,\x22%s\x22,\x22%s\x22',config['agi'][_0xe762('0x19a')]||_0xe762('0x1b9'),_0x549859,this['channel'][_0xe762('0x39')]));if(_0x3dda87[_0xe762('0xaa')]===-0x1){return _0x3dda87;}return this[_0xe762('0xd')][_0xe762('0xa9')](util['format'](_0xe762('0xc3'),_0xe762('0x1ba'),_0x549859));};AGIVertices[_0xe762('0x10')][_0xe762('0x1bb')]=function(_0x4e9c0e){logger[_0xe762('0x2d')](util[_0xe762('0x28')]('Enter\x20in\x20SYSTEM\x20(%s)\x20block',_0x4e9c0e['label']));var _0x13f3b9=this[_0xe762('0x54')][_0xe762('0x6f')](this,_0x4e9c0e[_0xe762('0xb6')]);this['createSquareDetailsReport'][_0xe762('0x6f')](this,_0x4e9c0e,_0x4e9c0e[_0xe762('0xb6')]);if(this[_0xe762('0x88')](_0x4e9c0e[_0xe762('0xd9')])){var _0xd1c4a8=this[_0xe762('0x11')][_0xe762('0x6f')](this,_0x4e9c0e[_0xe762('0xd9')]);if(_0xd1c4a8){this['channel'][_0xe762('0x9f')](_0xd1c4a8,_0x13f3b9);return this[_0xe762('0xd')][_0xe762('0xa9')](util[_0xe762('0x28')](_0xe762('0x1bc'),_0x4e9c0e['command'],_0xd1c4a8));}}return this[_0xe762('0xd')][_0xe762('0xa9')](util[_0xe762('0x28')](_0xe762('0x1bd'),_0x4e9c0e[_0xe762('0xb6')]));};AGIVertices[_0xe762('0x10')][_0xe762('0x1be')]=function(_0x503ef2){logger['info'](util[_0xe762('0x28')](_0xe762('0x1bf'),_0x503ef2[_0xe762('0x37')]));_0x503ef2[_0xe762('0x62')]=_0x503ef2[_0xe762('0x62')][_0xe762('0x57')](/(\r\n|\n|\r)/gm,'\x20');if(!this['isConfigured'](_0x503ef2[_0xe762('0x59')])){return this[_0xe762('0xd')][_0xe762('0xa9')](_0xe762('0x1c0'));}if(!this[_0xe762('0x88')](_0x503ef2[_0xe762('0x62')])){return this['channel'][_0xe762('0xa9')](_0xe762('0xc5'));}this[_0xe762('0xd')][_0xe762('0xa9')](util[_0xe762('0x28')](_0xe762('0x1c1'),_0x503ef2['text']));var _0x38b0c9=this[_0xe762('0x58')][_0xe762('0x6f')](this,_0x503ef2);if(_0x38b0c9){this['channel'][_0xe762('0xa9')](util[_0xe762('0x28')](_0xe762('0x1c2'),_0x38b0c9));var _0x486f35=this[_0xe762('0xd')][_0xe762('0x100')](_0x38b0c9);try{fs[_0xe762('0x101')](_0x38b0c9+'.wav');}catch(_0x12028e){logger[_0xe762('0x2b')](_0x12028e);}return _0x486f35;}return this['channel']['error'](_0x503ef2,_0xe762('0x1c3'));};AGIVertices[_0xe762('0x10')][_0xe762('0x1c4')]=function(_0x50bb43){logger[_0xe762('0x2d')](util['format'](_0xe762('0x1c5'),_0x50bb43['label']));_0x50bb43[_0xe762('0x62')]=_0x50bb43['text']['replace'](/(\r\n|\n|\r)/gm,'\x20');if(!this[_0xe762('0x88')](_0x50bb43[_0xe762('0x62')])){return this[_0xe762('0xd')][_0xe762('0xa9')]('no\x20text\x20configured');}this[_0xe762('0xd')][_0xe762('0xa9')](util[_0xe762('0x28')](_0xe762('0x1c6'),_0x50bb43[_0xe762('0x62')]));var _0x2ec502=this[_0xe762('0x61')][_0xe762('0x6f')](this,_0x50bb43);if(_0x2ec502){this[_0xe762('0xd')][_0xe762('0xa9')](util[_0xe762('0x28')](_0xe762('0x1c7'),_0x2ec502));var _0x34c291=this[_0xe762('0xd')][_0xe762('0x100')](_0x2ec502);try{fs['unlink'](_0x2ec502+_0xe762('0x102'));}catch(_0x15cc86){logger['error'](_0x15cc86);}return _0x34c291;}return this[_0xe762('0xd')][_0xe762('0x2b')](_0x50bb43,'Google\x20TTS\x20is\x20unreachable');};AGIVertices[_0xe762('0x10')][_0xe762('0x1c8')]=function(_0x189c11){logger[_0xe762('0x2d')](util[_0xe762('0x28')](_0xe762('0x1c9'),_0x189c11[_0xe762('0x37')]));if(!this[_0xe762('0x88')](_0x189c11['findBy'])){return this[_0xe762('0xd')]['error'](_0x189c11,_0xe762('0x158'));}logger['info'](util[_0xe762('0x28')](_0xe762('0x159'),this[_0xe762('0xd')][_0xe762('0x3a')],_0x189c11[_0xe762('0x157')]));var _0x76039b=this[_0xe762('0x50')]['sync'](this,_0x189c11['findBy']);if(_0x76039b){logger[_0xe762('0x2d')](util[_0xe762('0x28')](_0xe762('0x15b'),this[_0xe762('0xd')][_0xe762('0x3a')],_0x189c11[_0xe762('0x157')]));this[_0xe762('0xd')]['noop'](util[_0xe762('0x28')](_0xe762('0x15b'),this[_0xe762('0xd')][_0xe762('0x3a')],_0x189c11['findBy']));return{'code':0xc8,'result':_0xe762('0x15c')};}else{logger[_0xe762('0x2d')](util[_0xe762('0x28')]('AGENT\x20%s\x20NOT\x20FOUND\x20BY',this[_0xe762('0xd')][_0xe762('0x3a')],_0x189c11[_0xe762('0x157')]));this['channel'][_0xe762('0xa9')](util[_0xe762('0x28')]('AGENT\x20%s\x20NOT\x20FOUND\x20BY',this[_0xe762('0xd')]['callerid'],_0x189c11[_0xe762('0x157')]));return{'code':0xc8,'result':_0xe762('0x15e')};}};AGIVertices[_0xe762('0x10')][_0xe762('0x1ca')]=function(_0x41b54d){logger[_0xe762('0x2d')](util[_0xe762('0x28')]('Enter\x20in\x20VOICEMAIL\x20(%s)\x20block',_0x41b54d['label']));var _0x52e550=this[_0xe762('0xd')][_0xe762('0x55')]('VOICEMAIL',[_0x41b54d['mailbox'],_0x41b54d[_0xe762('0x79')]]);if(_0x52e550[_0xe762('0xaa')]===-0x1){return _0x52e550;}return this['channel']['noop'](util[_0xe762('0x28')](_0xe762('0xc3'),_0xe762('0x1cb'),_0x41b54d['mailbox']));};AGIVertices['prototype'][_0xe762('0x1cc')]=function(_0x353c2d){logger['info'](util[_0xe762('0x28')](_0xe762('0x1cd'),_0x353c2d[_0xe762('0x37')]));if(!this[_0xe762('0x88')](_0x353c2d[_0xe762('0xd9')])){return this[_0xe762('0xd')][_0xe762('0x2b')](_0x353c2d,_0xe762('0x1af'));}var _0x41ec5d=this['getVariable'][_0xe762('0x6f')](this,_0x353c2d[_0xe762('0xd9')]);if(!_0x41ec5d){return this[_0xe762('0xd')][_0xe762('0x2b')](_0x353c2d,_0xe762('0xdb'));}var _0x289cdc=this[_0xe762('0xd')][_0xe762('0x11')](_0x41ec5d);return{'code':0xc8,'result':_0x289cdc['extra']?_0x289cdc[_0xe762('0xa4')]:'-'};};String[_0xe762('0x10')]['replaceAll']=function(_0x42bf2e,_0x1d8f57){return this['split'](_0x42bf2e)[_0xe762('0x1ce')](_0x1d8f57);};module[_0xe762('0x1cf')]=AGIVertices;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa8cb=['stopAcw','lastPauseAt','format','YYYY-MM-DD\x20HH:mm:ss','uniqueid','update','[%s][UPDATE][ACWTIME:%s]','catch','error','finally','message','[%s][TIMER][STOP][AGENT:%s]','saveUnpause','[%s][UPDATE][ERRORS:%s]','[ACW][STOP]\x20Interface\x20%s\x20doesn\x27t\x20have\x20timer','stringify','[ACW][STOP]\x20%s','interface','acw','[ACW][syncAgentConnectPreview]\x20%s','[%s][HANGUP:UNIQUEID]','startAcw','isUndefined','linkedid','[%s][HANGUP:LINKEDID]','[ACW][syncHangupRequest]\x20%s','[%s][HANGUPATTENDEDTRANSFER:UNIQUEID]','[%s][HANGUPATTENDEDTRANSFER:LINKEDID]','isNil','transfereeuniqueid','secondtransfereruniqueid','transfertargetuniqueid','origtransfereruniqueid','[ACW][syncAttendedTransfer]\x20%s','[%s][BLINDTRANSFER:UNIQUEID]','transfereruniqueid','[%s][BLINDTRANSFER:LINKEDID]','transfererlinkedid','autopause','[%s][AUTOPAUSE][AGENT:%s][QUEUE:%]','[ACW][syncAgentRingNoAnswer]\x20%s','exports','util','lodash','moment','../ami','../../../config/logger','../rpc/user','../rpc/voiceAgentReport','agents','timers','channels','agentconnect','syncAgentConnect','bind','hanguprequest','syncHangupRequest','hangup','syncHangup','agentringnoanswer','syncAgentRingNoAnswer','attendedtransfer','syncAttendedTransfer','blindtransfer','syncBlindTransfer','syncAgentConnectPreview','milliseconds','seconds','prototype','queue','voiceQueues','ACW','mandatoryDisposition','name','mandatoryDispositionPause','Action','QueuePause','then','voicePause','info','[%s][START][AGENT:%s][QUEUE:%s]','attended','destlinkedid','[%s][TIMER:%s][AGENT:%s][QUEUE:%s]','acwTimeout','timer'];(function(_0x4a248d,_0x10d62a){var _0x411717=function(_0x3479b1){while(--_0x3479b1){_0x4a248d['push'](_0x4a248d['shift']());}};_0x411717(++_0x10d62a);}(_0xa8cb,0x80));var _0xba8c=function(_0x572898,_0x2f2aa1){_0x572898=_0x572898-0x0;var _0x2a7801=_0xa8cb[_0x572898];return _0x2a7801;};'use strict';var util=require(_0xba8c('0x0'));var _=require(_0xba8c('0x1'));var moment=require(_0xba8c('0x2'));var ami=require(_0xba8c('0x3'));var logger=require(_0xba8c('0x4'))('acw');var RpcUser=require(_0xba8c('0x5'));var RpcVoiceAgentReport=require(_0xba8c('0x6'));function Acw(_0x220115){this['voiceQueues']=_0x220115['voiceQueues'];this[_0xba8c('0x7')]=_0x220115[_0xba8c('0x7')];this[_0xba8c('0x8')]=_0x220115[_0xba8c('0x8')];this[_0xba8c('0x9')]={};ami['on'](_0xba8c('0xa'),this[_0xba8c('0xb')][_0xba8c('0xc')](this));ami['on'](_0xba8c('0xd'),this[_0xba8c('0xe')][_0xba8c('0xc')](this));ami['on'](_0xba8c('0xf'),this[_0xba8c('0x10')]['bind'](this));ami['on'](_0xba8c('0x11'),this[_0xba8c('0x12')]['bind'](this));ami['on'](_0xba8c('0x13'),this[_0xba8c('0x14')][_0xba8c('0xc')](this));ami['on'](_0xba8c('0x15'),this[_0xba8c('0x16')][_0xba8c('0xc')](this));ami['on']('custom:agentConnectPreview',this[_0xba8c('0x17')][_0xba8c('0xc')](this));}function getDiff(_0x524202){var _0x18c402=moment()[_0xba8c('0x18')](0x0);var _0x1b4e62=moment(_0x524202)[_0xba8c('0x18')](0x0);return _0x18c402['diff'](_0x1b4e62,_0xba8c('0x19'));}Acw[_0xba8c('0x1a')]['startAcw']=function(_0x33563b){try{var _0x4cc379=this;var _0x38ac50=this[_0xba8c('0x9')][_0x33563b]['interface'];var _0x3d123c=this[_0xba8c('0x9')][_0x33563b][_0xba8c('0x1b')];var _0x2ed42d=this[_0xba8c('0x1c')][_0x3d123c];var _0x16b3c8=![];var _0x1b5bc6=_0xba8c('0x1d');if(_0x2ed42d[_0xba8c('0x1e')]){if(_0x2ed42d['mandatoryDispositionPause'][_0xba8c('0x1f')]){_0x16b3c8=!![];_0x1b5bc6=_0x2ed42d[_0xba8c('0x20')][_0xba8c('0x1f')];}}ami[_0xba8c('0x21')]({'action':_0xba8c('0x22'),'interface':_0x38ac50,'paused':!![],'reason':_0x1b5bc6})['then'](function(_0xf7432e){if(_0x4cc379[_0xba8c('0x7')][_0x38ac50]){return RpcUser['getAgent'](_0x4cc379[_0xba8c('0x7')][_0x38ac50]['id'])[_0xba8c('0x23')](function(_0x161928){if(_0x161928&&!_0x161928[_0xba8c('0x24')]){logger[_0xba8c('0x25')](_0xba8c('0x26'),_0x33563b,_0x38ac50,_0x3d123c);var _0x410bf8=_0x4cc379['channels'][_0x33563b][_0xba8c('0x27')]&&_0x4cc379['channels'][_0x33563b][_0xba8c('0x28')]?_0x4cc379['channels'][_0x33563b][_0xba8c('0x28')]:_0x33563b;return RpcUser['savePause'](_0x4cc379[_0xba8c('0x7')][_0x38ac50],_0x1b5bc6,_0x410bf8)[_0xba8c('0x23')](function(_0x4efe9e){if(!_0x16b3c8){_0x4cc379[_0xba8c('0x8')][_0x38ac50]={};logger[_0xba8c('0x25')](_0xba8c('0x29'),_0x33563b,_0x4cc379[_0xba8c('0x1c')][_0x3d123c][_0xba8c('0x2a')],_0x38ac50,_0x3d123c);_0x4cc379['timers'][_0x38ac50][_0xba8c('0x2b')]=setTimeout(_0x4cc379[_0xba8c('0x2c')][_0xba8c('0xc')](_0x4cc379,_0x38ac50),_0x4cc379['voiceQueues'][_0x3d123c][_0xba8c('0x2a')]*0x3e8);_0x4cc379[_0xba8c('0x8')][_0x38ac50][_0xba8c('0x2d')]=moment()[_0xba8c('0x2e')](_0xba8c('0x2f'));_0x4cc379[_0xba8c('0x8')][_0x38ac50][_0xba8c('0x30')]=_0x33563b;_0x4cc379['timers'][_0x38ac50][_0xba8c('0x1b')]=_0x3d123c;_0x4cc379[_0xba8c('0x8')][_0x38ac50]['updateAcw']=function(){var _0x2d5a91=getDiff(_0x4cc379['timers'][_0x38ac50][_0xba8c('0x2d')]);clearTimeout(_0x4cc379[_0xba8c('0x8')][_0x38ac50][_0xba8c('0x2b')]);_0x4cc379[_0xba8c('0x8')][_0x38ac50][_0xba8c('0x2b')]=![];RpcVoiceAgentReport[_0xba8c('0x31')]({'acwtime':_0x2d5a91},_0x4cc379[_0xba8c('0x8')][_0x38ac50][_0xba8c('0x30')],_0x38ac50)[_0xba8c('0x23')](function(_0x22cd54){logger['info'](_0xba8c('0x32'),_0x33563b,_0x2d5a91,_0x22cd54);})[_0xba8c('0x33')](function(_0x205aa2){logger[_0xba8c('0x34')]('[%s][UPDATE][ERRORS:%s]',_0x33563b,_0x205aa2);});delete _0x4cc379['timers'][_0x38ac50];};}});}else{logger[_0xba8c('0x25')]('[%s][INPAUSE][AGENT:%s][QUEUE:%s]',_0x33563b,_0x38ac50,_0x3d123c);}});}})['catch'](function(_0x3f0f22){logger['error'](_0xba8c('0x29'),_0x33563b,_0x4cc379[_0xba8c('0x1c')][_0x3d123c][_0xba8c('0x2a')],_0x38ac50,_0x3d123c);})[_0xba8c('0x35')](function(){delete _0x4cc379[_0xba8c('0x9')][_0x33563b];});}catch(_0x5cfd22){logger['error']('[ACW][START]\x20%s',_0x5cfd22[_0xba8c('0x36')]);}};Acw[_0xba8c('0x1a')][_0xba8c('0x2c')]=function(_0x3a6055){try{var _0x4732e=this;if(_0x4732e[_0xba8c('0x8')][_0x3a6055]){_0x4732e[_0xba8c('0x8')][_0x3a6055][_0xba8c('0x2b')]=![];var _0x25f606=_0x4732e[_0xba8c('0x8')][_0x3a6055][_0xba8c('0x30')];var _0x2e2fa0=_0x4732e[_0xba8c('0x8')][_0x3a6055][_0xba8c('0x1b')];var _0xc835d9=_0x4732e[_0xba8c('0x1c')][_0x2e2fa0]['acwTimeout'];logger[_0xba8c('0x25')](_0xba8c('0x37'),_0x25f606,_0x3a6055);RpcUser[_0xba8c('0x38')](this[_0xba8c('0x7')][_0x3a6055]);RpcVoiceAgentReport['update']({'acwtime':_0xc835d9,'agentacw':!![]},_0x25f606,_0x3a6055)['then'](function(_0x4c5fda){logger[_0xba8c('0x25')]('[%s][UPDATE][ACWTIME:%s]',_0x25f606,_0xc835d9,_0x4c5fda);})['catch'](function(_0x4bb689){logger[_0xba8c('0x34')](_0xba8c('0x39'),_0x25f606,_0x4bb689);});}else{logger[_0xba8c('0x34')](_0xba8c('0x3a'),_0x3a6055);if(_0x4732e[_0xba8c('0x8')]){logger['info']('[ACW][TIMERS]',JSON[_0xba8c('0x3b')](_0x4732e['timers']));}}}catch(_0x1240d0){logger[_0xba8c('0x34')](_0xba8c('0x3c'),_0x1240d0['message']);}};Acw[_0xba8c('0x1a')][_0xba8c('0xb')]=function(_0x122acb){try{if(this[_0xba8c('0x1c')][_0x122acb[_0xba8c('0x1b')]]&&(this['voiceQueues'][_0x122acb['queue']]['acw']||this[_0xba8c('0x1c')][_0x122acb[_0xba8c('0x1b')]][_0xba8c('0x1e')])){if(this[_0xba8c('0x7')][_0x122acb[_0xba8c('0x3d')]]){this[_0xba8c('0x9')][_0x122acb[_0xba8c('0x30')]]={'queue':_0x122acb[_0xba8c('0x1b')],'interface':_0x122acb[_0xba8c('0x3d')],'destlinkedid':_0x122acb[_0xba8c('0x28')]};}}}catch(_0x4c0118){logger[_0xba8c('0x34')]('[ACW][syncAgentConnect]\x20%s',_0x4c0118['message']);}};Acw[_0xba8c('0x1a')][_0xba8c('0x17')]=function(_0x3780d8){try{if(this[_0xba8c('0x1c')][_0x3780d8[_0xba8c('0x1b')]]&&(this[_0xba8c('0x1c')][_0x3780d8[_0xba8c('0x1b')]][_0xba8c('0x3e')]||this[_0xba8c('0x1c')][_0x3780d8['queue']][_0xba8c('0x1e')])){if(this[_0xba8c('0x7')][_0x3780d8[_0xba8c('0x3d')]]){this['channels'][_0x3780d8['uniqueid']]={'queue':_0x3780d8[_0xba8c('0x1b')],'interface':_0x3780d8[_0xba8c('0x3d')]};}}}catch(_0x27a8bf){logger[_0xba8c('0x34')](_0xba8c('0x3f'),_0x27a8bf[_0xba8c('0x36')]);}};Acw[_0xba8c('0x1a')][_0xba8c('0xe')]=function(_0x5f43be){try{if(this[_0xba8c('0x9')][_0x5f43be[_0xba8c('0x30')]]&&_['isUndefined'](this['channels'][_0x5f43be[_0xba8c('0x30')]][_0xba8c('0x27')])){logger[_0xba8c('0x25')](_0xba8c('0x40'),_0x5f43be['uniqueid']);this[_0xba8c('0x41')](_0x5f43be[_0xba8c('0x30')]);}else if(this[_0xba8c('0x9')][_0x5f43be['linkedid']]&&_[_0xba8c('0x42')](this['channels'][_0x5f43be[_0xba8c('0x43')]]['attended'])){logger[_0xba8c('0x25')](_0xba8c('0x44'),_0x5f43be[_0xba8c('0x43')]);this['startAcw'](_0x5f43be[_0xba8c('0x43')]);}}catch(_0x1f7e4a){logger[_0xba8c('0x34')](_0xba8c('0x45'),_0x1f7e4a['message']);}};Acw[_0xba8c('0x1a')]['syncHangup']=function(_0x3702ee){try{if(this[_0xba8c('0x9')][_0x3702ee[_0xba8c('0x30')]]&&this[_0xba8c('0x9')][_0x3702ee['uniqueid']][_0xba8c('0x27')]){logger['info'](_0xba8c('0x46'),_0x3702ee[_0xba8c('0x30')]);this[_0xba8c('0x41')](_0x3702ee[_0xba8c('0x30')]);}else if(this[_0xba8c('0x9')][_0x3702ee[_0xba8c('0x43')]]&&this[_0xba8c('0x9')][_0x3702ee[_0xba8c('0x43')]][_0xba8c('0x27')]){logger[_0xba8c('0x25')](_0xba8c('0x47'),_0x3702ee[_0xba8c('0x43')]);this[_0xba8c('0x41')](_0x3702ee['linkedid']);}}catch(_0x36a169){logger[_0xba8c('0x34')]('[ACW][syncHangup]\x20%s',_0x36a169[_0xba8c('0x36')]);}};Acw[_0xba8c('0x1a')][_0xba8c('0x14')]=function(_0x1d354d){try{if(!_[_0xba8c('0x48')](this[_0xba8c('0x9')][_0x1d354d[_0xba8c('0x49')]])){this[_0xba8c('0x41')](_0x1d354d[_0xba8c('0x49')]);if(this['channels'][_0x1d354d['secondtransfereruniqueid']]){this[_0xba8c('0x9')][_0x1d354d[_0xba8c('0x4a')]][_0xba8c('0x27')]=!![];this[_0xba8c('0x9')][_0x1d354d[_0xba8c('0x4b')]]=this[_0xba8c('0x9')][_0x1d354d[_0xba8c('0x4a')]];delete this['channels'][_0x1d354d[_0xba8c('0x4a')]];}}else if(!_[_0xba8c('0x48')](this[_0xba8c('0x9')][_0x1d354d[_0xba8c('0x4b')]])){this['startAcw'](_0x1d354d['transfertargetuniqueid']);if(this['channels'][_0x1d354d['origtransfereruniqueid']]){this[_0xba8c('0x9')][_0x1d354d['origtransfereruniqueid']][_0xba8c('0x27')]=!![];this[_0xba8c('0x9')][_0x1d354d[_0xba8c('0x49')]]=this[_0xba8c('0x9')][_0x1d354d[_0xba8c('0x4c')]];delete this[_0xba8c('0x9')][_0x1d354d[_0xba8c('0x4c')]];}}}catch(_0x478fa9){logger['error'](_0xba8c('0x4d'),_0x478fa9['message']);}};Acw['prototype']['syncBlindTransfer']=function(_0x476da0){try{if(this[_0xba8c('0x9')][_0x476da0['transfereruniqueid']]){logger[_0xba8c('0x25')](_0xba8c('0x4e'),JSON[_0xba8c('0x3b')](_0x476da0[_0xba8c('0x4f')]));this[_0xba8c('0x41')](_0x476da0['transfereruniqueid']);}else if(this[_0xba8c('0x9')][_0x476da0['transfererlinkedid']]){logger[_0xba8c('0x25')](_0xba8c('0x50'),JSON[_0xba8c('0x3b')](_0x476da0[_0xba8c('0x51')]));this['startAcw'](_0x476da0['transfererlinkedid']);}}catch(_0x502bd8){logger[_0xba8c('0x34')]('[ACW][syncBlindTransfer]\x20%s',_0x502bd8[_0xba8c('0x36')]);}};Acw[_0xba8c('0x1a')][_0xba8c('0x12')]=function(_0x45632a){try{if(this[_0xba8c('0x1c')][_0x45632a[_0xba8c('0x1b')]]&&this[_0xba8c('0x1c')][_0x45632a[_0xba8c('0x1b')]][_0xba8c('0x52')]==='all'){if(this['agents'][_0x45632a[_0xba8c('0x3d')]]){logger[_0xba8c('0x25')](_0xba8c('0x53'),_0x45632a[_0xba8c('0x30')],_0x45632a['interface'],_0x45632a[_0xba8c('0x1b')]);return RpcUser['savePause'](this[_0xba8c('0x7')][_0x45632a[_0xba8c('0x3d')]],'Auto-Pause',_0x45632a['uniqueid']);}}}catch(_0x16ccb3){logger[_0xba8c('0x34')](_0xba8c('0x54'),_0x16ccb3[_0xba8c('0x36')]);}};module[_0xba8c('0x55')]=Acw;
\ No newline at end of file
+var _0xba11=['[%s][UPDATE][ERRORS:%s]','[%s][INPAUSE][AGENT:%s][QUEUE:%s]','finally','message','timer','[%s][TIMER][STOP][AGENT:%s]','saveUnpause','[ACW][TIMERS]','stringify','[ACW][STOP]\x20%s','[ACW][syncAgentConnect]\x20%s','[%s][HANGUP:UNIQUEID]','isUndefined','linkedid','[%s][HANGUP:LINKEDID]','[ACW][syncHangupRequest]\x20%s','syncHangup','[%s][HANGUPATTENDEDTRANSFER:UNIQUEID]','[%s][HANGUPATTENDEDTRANSFER:LINKEDID]','[ACW][syncHangup]\x20%s','isNil','transfereeuniqueid','secondtransfereruniqueid','transfertargetuniqueid','origtransfereruniqueid','[ACW][syncAttendedTransfer]\x20%s','transfereruniqueid','transfererlinkedid','all','[%s][AUTOPAUSE][AGENT:%s][QUEUE:%]','Auto-Pause','[ACW][syncAgentRingNoAnswer]\x20%s','exports','util','lodash','moment','../ami','../../../config/logger','acw','../rpc/user','../rpc/voiceAgentReport','voiceQueues','agents','timers','agentconnect','syncAgentConnect','hanguprequest','syncHangupRequest','bind','agentringnoanswer','syncAgentRingNoAnswer','attendedtransfer','syncAttendedTransfer','blindtransfer','syncBlindTransfer','custom:agentConnectPreview','milliseconds','diff','prototype','startAcw','channels','interface','queue','ACW','mandatoryDisposition','name','Action','QueuePause','then','getAgent','[%s][START][AGENT:%s][QUEUE:%s]','attended','destlinkedid','info','[%s][TIMER:%s][AGENT:%s][QUEUE:%s]','acwTimeout','stopAcw','lastPauseAt','format','YYYY-MM-DD\x20HH:mm:ss','uniqueid','updateAcw','update','[%s][UPDATE][ACWTIME:%s]','catch','error'];(function(_0x311c35,_0x534915){var _0x5cc50c=function(_0x3ad680){while(--_0x3ad680){_0x311c35['push'](_0x311c35['shift']());}};_0x5cc50c(++_0x534915);}(_0xba11,0xcd));var _0x1ba1=function(_0x10826f,_0xf13fdd){_0x10826f=_0x10826f-0x0;var _0x2ad5c3=_0xba11[_0x10826f];return _0x2ad5c3;};'use strict';var util=require(_0x1ba1('0x0'));var _=require(_0x1ba1('0x1'));var moment=require(_0x1ba1('0x2'));var ami=require(_0x1ba1('0x3'));var logger=require(_0x1ba1('0x4'))(_0x1ba1('0x5'));var RpcUser=require(_0x1ba1('0x6'));var RpcVoiceAgentReport=require(_0x1ba1('0x7'));function Acw(_0x2008d4){this[_0x1ba1('0x8')]=_0x2008d4[_0x1ba1('0x8')];this[_0x1ba1('0x9')]=_0x2008d4[_0x1ba1('0x9')];this[_0x1ba1('0xa')]=_0x2008d4[_0x1ba1('0xa')];this['channels']={};ami['on'](_0x1ba1('0xb'),this[_0x1ba1('0xc')]['bind'](this));ami['on'](_0x1ba1('0xd'),this[_0x1ba1('0xe')][_0x1ba1('0xf')](this));ami['on']('hangup',this['syncHangup'][_0x1ba1('0xf')](this));ami['on'](_0x1ba1('0x10'),this[_0x1ba1('0x11')]['bind'](this));ami['on'](_0x1ba1('0x12'),this[_0x1ba1('0x13')][_0x1ba1('0xf')](this));ami['on'](_0x1ba1('0x14'),this[_0x1ba1('0x15')][_0x1ba1('0xf')](this));ami['on'](_0x1ba1('0x16'),this['syncAgentConnectPreview']['bind'](this));}function getDiff(_0x519cbe){var _0x5acb71=moment()[_0x1ba1('0x17')](0x0);var _0x3ec35a=moment(_0x519cbe)['milliseconds'](0x0);return _0x5acb71[_0x1ba1('0x18')](_0x3ec35a,'seconds');}Acw[_0x1ba1('0x19')][_0x1ba1('0x1a')]=function(_0x54dd58){try{var _0x48231e=this;var _0x4f9ea8=this[_0x1ba1('0x1b')][_0x54dd58][_0x1ba1('0x1c')];var _0xc04ff1=this[_0x1ba1('0x1b')][_0x54dd58][_0x1ba1('0x1d')];var _0xb34d07=this[_0x1ba1('0x8')][_0xc04ff1];var _0x5f014d=![];var _0x2f47e2=_0x1ba1('0x1e');if(_0xb34d07[_0x1ba1('0x1f')]){if(_0xb34d07['mandatoryDispositionPause'][_0x1ba1('0x20')]){_0x5f014d=!![];_0x2f47e2=_0xb34d07['mandatoryDispositionPause'][_0x1ba1('0x20')];}}ami[_0x1ba1('0x21')]({'action':_0x1ba1('0x22'),'interface':_0x4f9ea8,'paused':!![],'reason':_0x2f47e2})[_0x1ba1('0x23')](function(_0x375f17){if(_0x48231e['agents'][_0x4f9ea8]){return RpcUser[_0x1ba1('0x24')](_0x48231e[_0x1ba1('0x9')][_0x4f9ea8]['id'])['then'](function(_0x3212dd){if(_0x3212dd&&!_0x3212dd['voicePause']){logger['info'](_0x1ba1('0x25'),_0x54dd58,_0x4f9ea8,_0xc04ff1);var _0x2f804=_0x48231e['channels'][_0x54dd58][_0x1ba1('0x26')]&&_0x48231e[_0x1ba1('0x1b')][_0x54dd58][_0x1ba1('0x27')]?_0x48231e['channels'][_0x54dd58][_0x1ba1('0x27')]:_0x54dd58;return RpcUser['savePause'](_0x48231e[_0x1ba1('0x9')][_0x4f9ea8],_0x2f47e2,_0x2f804)['then'](function(_0x5121fb){if(!_0x5f014d){_0x48231e[_0x1ba1('0xa')][_0x4f9ea8]={};logger[_0x1ba1('0x28')](_0x1ba1('0x29'),_0x54dd58,_0x48231e['voiceQueues'][_0xc04ff1][_0x1ba1('0x2a')],_0x4f9ea8,_0xc04ff1);_0x48231e[_0x1ba1('0xa')][_0x4f9ea8]['timer']=setTimeout(_0x48231e[_0x1ba1('0x2b')][_0x1ba1('0xf')](_0x48231e,_0x4f9ea8),_0x48231e[_0x1ba1('0x8')][_0xc04ff1][_0x1ba1('0x2a')]*0x3e8);_0x48231e[_0x1ba1('0xa')][_0x4f9ea8][_0x1ba1('0x2c')]=moment()[_0x1ba1('0x2d')](_0x1ba1('0x2e'));_0x48231e['timers'][_0x4f9ea8][_0x1ba1('0x2f')]=_0x54dd58;_0x48231e[_0x1ba1('0xa')][_0x4f9ea8][_0x1ba1('0x1d')]=_0xc04ff1;_0x48231e[_0x1ba1('0xa')][_0x4f9ea8][_0x1ba1('0x30')]=function(){var _0x407d11=getDiff(_0x48231e[_0x1ba1('0xa')][_0x4f9ea8][_0x1ba1('0x2c')]);clearTimeout(_0x48231e[_0x1ba1('0xa')][_0x4f9ea8]['timer']);_0x48231e['timers'][_0x4f9ea8]['timer']=![];RpcVoiceAgentReport[_0x1ba1('0x31')]({'acwtime':_0x407d11},_0x48231e[_0x1ba1('0xa')][_0x4f9ea8][_0x1ba1('0x2f')],_0x4f9ea8)[_0x1ba1('0x23')](function(_0x36efca){logger['info'](_0x1ba1('0x32'),_0x54dd58,_0x407d11,_0x36efca);})[_0x1ba1('0x33')](function(_0x3a40bd){logger[_0x1ba1('0x34')](_0x1ba1('0x35'),_0x54dd58,_0x3a40bd);});delete _0x48231e['timers'][_0x4f9ea8];};}});}else{logger[_0x1ba1('0x28')](_0x1ba1('0x36'),_0x54dd58,_0x4f9ea8,_0xc04ff1);}});}})[_0x1ba1('0x33')](function(_0x5d5225){logger[_0x1ba1('0x34')](_0x1ba1('0x29'),_0x54dd58,_0x48231e[_0x1ba1('0x8')][_0xc04ff1][_0x1ba1('0x2a')],_0x4f9ea8,_0xc04ff1);})[_0x1ba1('0x37')](function(){delete _0x48231e[_0x1ba1('0x1b')][_0x54dd58];});}catch(_0x2a095a){logger[_0x1ba1('0x34')]('[ACW][START]\x20%s',_0x2a095a[_0x1ba1('0x38')]);}};Acw['prototype']['stopAcw']=function(_0x219226){try{var _0x40a928=this;if(_0x40a928[_0x1ba1('0xa')][_0x219226]){_0x40a928[_0x1ba1('0xa')][_0x219226][_0x1ba1('0x39')]=![];var _0x5384b9=_0x40a928[_0x1ba1('0xa')][_0x219226][_0x1ba1('0x2f')];var _0x3b936d=_0x40a928['timers'][_0x219226][_0x1ba1('0x1d')];var _0xfaa6b6=_0x40a928[_0x1ba1('0x8')][_0x3b936d][_0x1ba1('0x2a')];logger[_0x1ba1('0x28')](_0x1ba1('0x3a'),_0x5384b9,_0x219226);RpcUser[_0x1ba1('0x3b')](this[_0x1ba1('0x9')][_0x219226]);RpcVoiceAgentReport[_0x1ba1('0x31')]({'acwtime':_0xfaa6b6,'agentacw':!![]},_0x5384b9,_0x219226)[_0x1ba1('0x23')](function(_0x54e785){logger['info'](_0x1ba1('0x32'),_0x5384b9,_0xfaa6b6,_0x54e785);})[_0x1ba1('0x33')](function(_0x5dba08){logger[_0x1ba1('0x34')](_0x1ba1('0x35'),_0x5384b9,_0x5dba08);});}else{logger[_0x1ba1('0x34')]('[ACW][STOP]\x20Interface\x20%s\x20doesn\x27t\x20have\x20timer',_0x219226);if(_0x40a928[_0x1ba1('0xa')]){logger['info'](_0x1ba1('0x3c'),JSON[_0x1ba1('0x3d')](_0x40a928[_0x1ba1('0xa')]));}}}catch(_0x71d136){logger[_0x1ba1('0x34')](_0x1ba1('0x3e'),_0x71d136[_0x1ba1('0x38')]);}};Acw['prototype']['syncAgentConnect']=function(_0x5ef2b3){try{if(this[_0x1ba1('0x8')][_0x5ef2b3[_0x1ba1('0x1d')]]&&(this[_0x1ba1('0x8')][_0x5ef2b3['queue']]['acw']||this[_0x1ba1('0x8')][_0x5ef2b3[_0x1ba1('0x1d')]]['mandatoryDisposition'])){if(this[_0x1ba1('0x9')][_0x5ef2b3['interface']]){this[_0x1ba1('0x1b')][_0x5ef2b3[_0x1ba1('0x2f')]]={'queue':_0x5ef2b3[_0x1ba1('0x1d')],'interface':_0x5ef2b3[_0x1ba1('0x1c')],'destlinkedid':_0x5ef2b3[_0x1ba1('0x27')]};}}}catch(_0x52dc83){logger[_0x1ba1('0x34')](_0x1ba1('0x3f'),_0x52dc83[_0x1ba1('0x38')]);}};Acw[_0x1ba1('0x19')]['syncAgentConnectPreview']=function(_0x5c86f4){try{if(this[_0x1ba1('0x8')][_0x5c86f4['queue']]&&(this['voiceQueues'][_0x5c86f4['queue']][_0x1ba1('0x5')]||this[_0x1ba1('0x8')][_0x5c86f4[_0x1ba1('0x1d')]][_0x1ba1('0x1f')])){if(this[_0x1ba1('0x9')][_0x5c86f4[_0x1ba1('0x1c')]]){this[_0x1ba1('0x1b')][_0x5c86f4[_0x1ba1('0x2f')]]={'queue':_0x5c86f4['queue'],'interface':_0x5c86f4[_0x1ba1('0x1c')]};}}}catch(_0x221ca2){logger['error']('[ACW][syncAgentConnectPreview]\x20%s',_0x221ca2[_0x1ba1('0x38')]);}};Acw[_0x1ba1('0x19')]['syncHangupRequest']=function(_0x353850){try{if(this[_0x1ba1('0x1b')][_0x353850[_0x1ba1('0x2f')]]&&_['isUndefined'](this[_0x1ba1('0x1b')][_0x353850[_0x1ba1('0x2f')]][_0x1ba1('0x26')])){logger['info'](_0x1ba1('0x40'),_0x353850[_0x1ba1('0x2f')]);this[_0x1ba1('0x1a')](_0x353850[_0x1ba1('0x2f')]);}else if(this[_0x1ba1('0x1b')][_0x353850['linkedid']]&&_[_0x1ba1('0x41')](this[_0x1ba1('0x1b')][_0x353850[_0x1ba1('0x42')]][_0x1ba1('0x26')])){logger[_0x1ba1('0x28')](_0x1ba1('0x43'),_0x353850[_0x1ba1('0x42')]);this['startAcw'](_0x353850[_0x1ba1('0x42')]);}}catch(_0x31f46b){logger[_0x1ba1('0x34')](_0x1ba1('0x44'),_0x31f46b['message']);}};Acw['prototype'][_0x1ba1('0x45')]=function(_0x30ddc0){try{if(this[_0x1ba1('0x1b')][_0x30ddc0['uniqueid']]&&this[_0x1ba1('0x1b')][_0x30ddc0[_0x1ba1('0x2f')]]['attended']){logger[_0x1ba1('0x28')](_0x1ba1('0x46'),_0x30ddc0[_0x1ba1('0x2f')]);this[_0x1ba1('0x1a')](_0x30ddc0[_0x1ba1('0x2f')]);}else if(this['channels'][_0x30ddc0[_0x1ba1('0x42')]]&&this['channels'][_0x30ddc0[_0x1ba1('0x42')]][_0x1ba1('0x26')]){logger[_0x1ba1('0x28')](_0x1ba1('0x47'),_0x30ddc0[_0x1ba1('0x42')]);this[_0x1ba1('0x1a')](_0x30ddc0[_0x1ba1('0x42')]);}}catch(_0x301e1d){logger[_0x1ba1('0x34')](_0x1ba1('0x48'),_0x301e1d[_0x1ba1('0x38')]);}};Acw[_0x1ba1('0x19')][_0x1ba1('0x13')]=function(_0x17c58c){try{if(!_[_0x1ba1('0x49')](this[_0x1ba1('0x1b')][_0x17c58c['transfereeuniqueid']])){this[_0x1ba1('0x1a')](_0x17c58c[_0x1ba1('0x4a')]);if(this[_0x1ba1('0x1b')][_0x17c58c[_0x1ba1('0x4b')]]){this['channels'][_0x17c58c[_0x1ba1('0x4b')]]['attended']=!![];this[_0x1ba1('0x1b')][_0x17c58c[_0x1ba1('0x4c')]]=this[_0x1ba1('0x1b')][_0x17c58c[_0x1ba1('0x4b')]];delete this[_0x1ba1('0x1b')][_0x17c58c[_0x1ba1('0x4b')]];}}else if(!_['isNil'](this[_0x1ba1('0x1b')][_0x17c58c['transfertargetuniqueid']])){this['startAcw'](_0x17c58c[_0x1ba1('0x4c')]);if(this[_0x1ba1('0x1b')][_0x17c58c['origtransfereruniqueid']]){this[_0x1ba1('0x1b')][_0x17c58c[_0x1ba1('0x4d')]][_0x1ba1('0x26')]=!![];this[_0x1ba1('0x1b')][_0x17c58c[_0x1ba1('0x4a')]]=this[_0x1ba1('0x1b')][_0x17c58c[_0x1ba1('0x4d')]];delete this[_0x1ba1('0x1b')][_0x17c58c['origtransfereruniqueid']];}}}catch(_0x4c5da5){logger['error'](_0x1ba1('0x4e'),_0x4c5da5[_0x1ba1('0x38')]);}};Acw[_0x1ba1('0x19')][_0x1ba1('0x15')]=function(_0x38e602){try{if(this[_0x1ba1('0x1b')][_0x38e602[_0x1ba1('0x4f')]]){logger[_0x1ba1('0x28')]('[%s][BLINDTRANSFER:UNIQUEID]',JSON[_0x1ba1('0x3d')](_0x38e602[_0x1ba1('0x4f')]));this[_0x1ba1('0x1a')](_0x38e602[_0x1ba1('0x4f')]);}else if(this[_0x1ba1('0x1b')][_0x38e602[_0x1ba1('0x50')]]){logger['info']('[%s][BLINDTRANSFER:LINKEDID]',JSON[_0x1ba1('0x3d')](_0x38e602[_0x1ba1('0x50')]));this['startAcw'](_0x38e602['transfererlinkedid']);}}catch(_0x2d35e8){logger[_0x1ba1('0x34')]('[ACW][syncBlindTransfer]\x20%s',_0x2d35e8['message']);}};Acw[_0x1ba1('0x19')][_0x1ba1('0x11')]=function(_0x503c61){try{if(this[_0x1ba1('0x8')][_0x503c61[_0x1ba1('0x1d')]]&&this[_0x1ba1('0x8')][_0x503c61['queue']]['autopause']===_0x1ba1('0x51')){if(this[_0x1ba1('0x9')][_0x503c61[_0x1ba1('0x1c')]]){logger[_0x1ba1('0x28')](_0x1ba1('0x52'),_0x503c61[_0x1ba1('0x2f')],_0x503c61['interface'],_0x503c61[_0x1ba1('0x1d')]);return RpcUser['savePause'](this[_0x1ba1('0x9')][_0x503c61['interface']],_0x1ba1('0x53'),_0x503c61[_0x1ba1('0x2f')]);}}}catch(_0x349c9c){logger['error'](_0x1ba1('0x54'),_0x349c9c[_0x1ba1('0x38')]);}};module[_0x1ba1('0x55')]=Acw;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd31a=['once','close','connect','shutdown','Shutdown\x20\x22%s\x22\x20to\x20%s:%s\x20with:\x0a%s','inspect','fullybooted','Fullybooted\x20\x22%s\x22\x20to\x20%s:%s','then','actionDeviceStateList','catch','log','asterisk-manager','bluebird','moment','util','lodash','../../config/logger','../../config/environment','port','asterisk','username','password','keepConnected','Action','promisify','error','Manager\x20\x22%s\x22\x20error\x20to\x20%s:%s\x20with:\x0a%s','format','actionSipShowRegistry','sipshowregistry','devicestatelist','actionSipPeerStatus','sippeerstatus','actionQueueSummary','queuesummary','actionCoreShowChannels','info','Manager\x20\x22%s\x22\x20logged\x20on\x20to\x20%s:%s'];(function(_0x402c8f,_0x30cc1d){var _0x11e809=function(_0x4ccfa3){while(--_0x4ccfa3){_0x402c8f['push'](_0x402c8f['shift']());}};_0x11e809(++_0x30cc1d);}(_0xd31a,0x81));var _0xad31=function(_0x5d6e9f,_0x512229){_0x5d6e9f=_0x5d6e9f-0x0;var _0x440047=_0xd31a[_0x5d6e9f];return _0x440047;};'use strict';var Manager=require(_0xad31('0x0'));var BPromise=require(_0xad31('0x1'));var moment=require(_0xad31('0x2'));var util=require(_0xad31('0x3'));var _=require(_0xad31('0x4'));var logger=require(_0xad31('0x5'))('ami');var config=require(_0xad31('0x6'));var ami=new Manager(config['asterisk'][_0xad31('0x7')],config[_0xad31('0x8')]['ip'],config['asterisk'][_0xad31('0x9')],config[_0xad31('0x8')][_0xad31('0xa')],!![]);ami[_0xad31('0xb')]();ami[_0xad31('0xc')]=BPromise[_0xad31('0xd')](ami['action']);function error(_0x7ec4a8){logger[_0xad31('0xe')](util['format'](_0xad31('0xf'),config['asterisk']['username'],config[_0xad31('0x8')]['ip'],config['asterisk'][_0xad31('0x7')],util['inspect'](_0x7ec4a8,![],null)));}function close(){logger['error'](util[_0xad31('0x10')]('Manager\x20\x22%s\x22\x20closed\x20to\x20%s:%s',config[_0xad31('0x8')][_0xad31('0x9')],config[_0xad31('0x8')]['ip'],config[_0xad31('0x8')]['port']));}ami[_0xad31('0x11')]=function(){return function(){return ami['Action']({'action':_0xad31('0x12')});};};ami['actionDeviceStateList']=function(){return function(){return ami[_0xad31('0xc')]({'action':_0xad31('0x13')});};};ami[_0xad31('0x14')]=function(){return function(){return ami[_0xad31('0xc')]({'action':_0xad31('0x15')});};};ami[_0xad31('0x16')]=function(){return function(){return ami[_0xad31('0xc')]({'action':_0xad31('0x17')});};};ami[_0xad31('0x18')]=function(){return function(){return ami[_0xad31('0xc')]({'action':'coreshowchannels'});};};function connect(_0x2fd9d6){logger[_0xad31('0x19')](util[_0xad31('0x10')](_0xad31('0x1a'),config[_0xad31('0x8')][_0xad31('0x9')],config['asterisk']['ip'],config[_0xad31('0x8')]['port']));ami[_0xad31('0x1b')](_0xad31('0xe'),error);ami[_0xad31('0x1b')](_0xad31('0x1c'),close);}ami['on'](_0xad31('0x1d'),connect);ami['on'](_0xad31('0x1e'),function(_0x5808d1){logger['info'](util[_0xad31('0x10')](_0xad31('0x1f'),config[_0xad31('0x8')][_0xad31('0x9')],config['asterisk']['ip'],config['asterisk']['port'],util[_0xad31('0x20')](_0x5808d1,![],null)));});ami['on'](_0xad31('0x21'),function(_0x52a94b){logger[_0xad31('0x19')](util[_0xad31('0x10')](_0xad31('0x22'),config['asterisk'][_0xad31('0x9')],config[_0xad31('0x8')]['ip'],config[_0xad31('0x8')]['port']));return BPromise['resolve']()[_0xad31('0x23')](ami[_0xad31('0x11')]())[_0xad31('0x23')](ami[_0xad31('0x24')]())[_0xad31('0x23')](ami[_0xad31('0x14')]())[_0xad31('0x23')](ami[_0xad31('0x16')]())[_0xad31('0x23')](ami[_0xad31('0x18')]())[_0xad31('0x25')](function(_0x2dbda7){console[_0xad31('0x26')](_0x2dbda7);});});ami[_0xad31('0x1b')](_0xad31('0xe'),error);ami[_0xad31('0x1b')](_0xad31('0x1c'),close);module['exports']=ami;
\ No newline at end of file
+var _0x26d9=['queuesummary','actionCoreShowChannels','info','once','close','shutdown','Shutdown\x20\x22%s\x22\x20to\x20%s:%s\x20with:\x0a%s','fullybooted','Fullybooted\x20\x22%s\x22\x20to\x20%s:%s','resolve','then','actionSipPeerStatus','log','exports','bluebird','moment','lodash','../../config/logger','ami','../../config/environment','asterisk','port','username','keepConnected','promisify','action','error','format','Manager\x20\x22%s\x22\x20error\x20to\x20%s:%s\x20with:\x0a%s','inspect','Manager\x20\x22%s\x22\x20closed\x20to\x20%s:%s','actionSipShowRegistry','Action','sipshowregistry','sippeerstatus','actionQueueSummary'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x26d9,0x12e));var _0x926d=function(_0x3b6a5e,_0x1d3aaa){_0x3b6a5e=_0x3b6a5e-0x0;var _0x34158c=_0x26d9[_0x3b6a5e];return _0x34158c;};'use strict';var Manager=require('asterisk-manager');var BPromise=require(_0x926d('0x0'));var moment=require(_0x926d('0x1'));var util=require('util');var _=require(_0x926d('0x2'));var logger=require(_0x926d('0x3'))(_0x926d('0x4'));var config=require(_0x926d('0x5'));var ami=new Manager(config[_0x926d('0x6')][_0x926d('0x7')],config[_0x926d('0x6')]['ip'],config[_0x926d('0x6')][_0x926d('0x8')],config[_0x926d('0x6')]['password'],!![]);ami[_0x926d('0x9')]();ami['Action']=BPromise[_0x926d('0xa')](ami[_0x926d('0xb')]);function error(_0x3a0c9b){logger[_0x926d('0xc')](util[_0x926d('0xd')](_0x926d('0xe'),config[_0x926d('0x6')][_0x926d('0x8')],config[_0x926d('0x6')]['ip'],config[_0x926d('0x6')][_0x926d('0x7')],util[_0x926d('0xf')](_0x3a0c9b,![],null)));}function close(){logger[_0x926d('0xc')](util['format'](_0x926d('0x10'),config[_0x926d('0x6')][_0x926d('0x8')],config[_0x926d('0x6')]['ip'],config[_0x926d('0x6')][_0x926d('0x7')]));}ami[_0x926d('0x11')]=function(){return function(){return ami[_0x926d('0x12')]({'action':_0x926d('0x13')});};};ami['actionDeviceStateList']=function(){return function(){return ami[_0x926d('0x12')]({'action':'devicestatelist'});};};ami['actionSipPeerStatus']=function(){return function(){return ami[_0x926d('0x12')]({'action':_0x926d('0x14')});};};ami[_0x926d('0x15')]=function(){return function(){return ami[_0x926d('0x12')]({'action':_0x926d('0x16')});};};ami[_0x926d('0x17')]=function(){return function(){return ami[_0x926d('0x12')]({'action':'coreshowchannels'});};};function connect(_0xd64692){logger[_0x926d('0x18')](util[_0x926d('0xd')]('Manager\x20\x22%s\x22\x20logged\x20on\x20to\x20%s:%s',config['asterisk'][_0x926d('0x8')],config[_0x926d('0x6')]['ip'],config[_0x926d('0x6')]['port']));ami[_0x926d('0x19')](_0x926d('0xc'),error);ami[_0x926d('0x19')](_0x926d('0x1a'),close);}ami['on']('connect',connect);ami['on'](_0x926d('0x1b'),function(_0x40126d){logger[_0x926d('0x18')](util[_0x926d('0xd')](_0x926d('0x1c'),config[_0x926d('0x6')][_0x926d('0x8')],config[_0x926d('0x6')]['ip'],config[_0x926d('0x6')][_0x926d('0x7')],util['inspect'](_0x40126d,![],null)));});ami['on'](_0x926d('0x1d'),function(_0x1054f7){logger[_0x926d('0x18')](util[_0x926d('0xd')](_0x926d('0x1e'),config[_0x926d('0x6')][_0x926d('0x8')],config['asterisk']['ip'],config[_0x926d('0x6')]['port']));return BPromise[_0x926d('0x1f')]()[_0x926d('0x20')](ami['actionSipShowRegistry']())[_0x926d('0x20')](ami['actionDeviceStateList']())[_0x926d('0x20')](ami[_0x926d('0x21')]())[_0x926d('0x20')](ami[_0x926d('0x15')]())['then'](ami[_0x926d('0x17')]())['catch'](function(_0x2c62e1){console[_0x926d('0x22')](_0x2c62e1);});});ami['once'](_0x926d('0xc'),error);ami['once'](_0x926d('0x1a'),close);module[_0x926d('0x23')]=ami;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb7e7=['exports','jayson/promise','../../config/logger','client','Request','debug','rpc','error','memberReport','message','result','catch'];(function(_0x1a89ca,_0x27394b){var _0x29cbb2=function(_0x31e1f4){while(--_0x31e1f4){_0x1a89ca['push'](_0x1a89ca['shift']());}};_0x29cbb2(++_0x27394b);}(_0xb7e7,0x121));var _0x7b7e=function(_0x38ced4,_0x24263f){_0x38ced4=_0x38ced4-0x0;var _0x547c07=_0xb7e7[_0x38ced4];return _0x547c07;};'use strict';var jayson=require(_0x7b7e('0x0'));var BPromise=require('bluebird');var logger=require(_0x7b7e('0x1'))('ami');var client=jayson[_0x7b7e('0x2')]['http']({'port':0x2329});client[_0x7b7e('0x3')]=function(_0x556d68,_0x31d0ed){return new BPromise(function(_0x118577,_0x1d9384){return client['request'](_0x556d68,_0x31d0ed)['then'](function(_0x333fa4){logger[_0x7b7e('0x4')](_0x7b7e('0x5'),'memberReport',_0x556d68,_0x31d0ed,_0x333fa4);if(_0x333fa4[_0x7b7e('0x6')]){logger[_0x7b7e('0x6')](_0x7b7e('0x5'),_0x7b7e('0x7'),_0x556d68,_0x333fa4[_0x7b7e('0x6')][_0x7b7e('0x8')],_0x31d0ed);return _0x1d9384(_0x333fa4[_0x7b7e('0x6')]['message']);}else{return _0x118577(_0x333fa4[_0x7b7e('0x9')]);}})[_0x7b7e('0xa')](function(_0x10a666){logger[_0x7b7e('0x6')](_0x7b7e('0x5'),_0x7b7e('0x7'),_0x556d68,_0x10a666,_0x31d0ed);return _0x1d9384(_0x10a666);});});};module[_0x7b7e('0xb')]=client;
\ No newline at end of file
+var _0xa9e0=['result','catch','exports','jayson/promise','bluebird','../../config/logger','http','request','debug','rpc','error','message'];(function(_0x2ca794,_0x3e0030){var _0x27b67b=function(_0x40f96b){while(--_0x40f96b){_0x2ca794['push'](_0x2ca794['shift']());}};_0x27b67b(++_0x3e0030);}(_0xa9e0,0x123));var _0x0a9e=function(_0x2cfb58,_0x3d9412){_0x2cfb58=_0x2cfb58-0x0;var _0xd99951=_0xa9e0[_0x2cfb58];return _0xd99951;};'use strict';var jayson=require(_0x0a9e('0x0'));var BPromise=require(_0x0a9e('0x1'));var logger=require(_0x0a9e('0x2'))('ami');var client=jayson['client'][_0x0a9e('0x3')]({'port':0x2329});client['Request']=function(_0x333808,_0x432180){return new BPromise(function(_0x2ab90b,_0x991246){return client[_0x0a9e('0x4')](_0x333808,_0x432180)['then'](function(_0x219af0){logger[_0x0a9e('0x5')](_0x0a9e('0x6'),'memberReport',_0x333808,_0x432180,_0x219af0);if(_0x219af0['error']){logger[_0x0a9e('0x7')]('rpc','memberReport',_0x333808,_0x219af0[_0x0a9e('0x7')][_0x0a9e('0x8')],_0x432180);return _0x991246(_0x219af0[_0x0a9e('0x7')][_0x0a9e('0x8')]);}else{return _0x2ab90b(_0x219af0[_0x0a9e('0x9')]);}})[_0x0a9e('0xa')](function(_0x4a4c56){logger['error']('rpc','memberReport',_0x333808,_0x4a4c56,_0x432180);return _0x991246(_0x4a4c56);});});};module[_0x0a9e('0xb')]=client;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa6b9=['uniqueid','Contact','phone','firstName','name','active','type','dialQueueTimeout','scheduledat','countbusyretry','countcongestionretry','countnoanswerretry','countnosuchnumberretry','countdropretry','countabandonedretry','countmachineretry','countagentrejectretry','ContactId','ListId','UserId','VoiceQueueId','CampaignId','idHopper','ContactFirstName','starttime','format','callback','callbackuniqueid','callbackat','recallme','prototype','number','substring','dialCutDigit','getQueue','queue','exports','util','lodash','string','isNil','voiceQueue'];(function(_0x2c1d85,_0x30a616){var _0x38cf1b=function(_0x322a4d){while(--_0x322a4d){_0x2c1d85['push'](_0x2c1d85['shift']());}};_0x38cf1b(++_0x30a616);}(_0xa6b9,0x19f));var _0x9a6b=function(_0x483884,_0x324751){_0x483884=_0x483884-0x0;var _0x34d520=_0xa6b9[_0x483884];return _0x34d520;};'use strict';var util=require(_0x9a6b('0x0'));var _=require(_0x9a6b('0x1'));var moment=require('moment');function checkNameSurname(_0x1a568c,_0xc8abe9,_0x3bfe44){var _0x206794='';if(!_['isNil'](_0xc8abe9)&&_0x9a6b('0x2')===typeof _0xc8abe9){_0x206794+=_0xc8abe9;}if(!_[_0x9a6b('0x3')](_0x3bfe44)&&_0x9a6b('0x2')===typeof _0x3bfe44){_0x206794+='\x20'+_0x3bfe44;}if(_0x206794!==''){return _0x206794;}return _0x1a568c;}function Action(_0xa7126,_0x4e75e0,_0x2b9ccc){this[_0x9a6b('0x4')]=_0xa7126;this[_0x9a6b('0x5')]=_0x2b9ccc||undefined;this['name']=checkNameSurname(_0x4e75e0[_0x9a6b('0x6')][_0x9a6b('0x7')],_0x4e75e0[_0x9a6b('0x6')][_0x9a6b('0x8')],_0x4e75e0[_0x9a6b('0x6')]['lastName']);this['number']=_0x4e75e0['Contact'][_0x9a6b('0x7')];this['queue']=_0xa7126[_0x9a6b('0x9')];this[_0x9a6b('0xa')]=_0x4e75e0[_0x9a6b('0xa')]||![];this[_0x9a6b('0xb')]=_0xa7126['type'];this[_0x9a6b('0xc')]=_0xa7126[_0x9a6b('0xc')]||0x3;this['scheduledat']=_0x4e75e0[_0x9a6b('0xd')];this[_0x9a6b('0xe')]=_0x4e75e0[_0x9a6b('0xe')];this[_0x9a6b('0xf')]=_0x4e75e0[_0x9a6b('0xf')];this['countnoanswerretry']=_0x4e75e0[_0x9a6b('0x10')];this[_0x9a6b('0x11')]=_0x4e75e0[_0x9a6b('0x11')];this[_0x9a6b('0x12')]=_0x4e75e0[_0x9a6b('0x12')];this[_0x9a6b('0x13')]=_0x4e75e0['countabandonedretry'];this[_0x9a6b('0x14')]=_0x4e75e0['countmachineretry'];this[_0x9a6b('0x15')]=_0x4e75e0[_0x9a6b('0x15')];this[_0x9a6b('0x16')]=_0x4e75e0['ContactId'];this[_0x9a6b('0x17')]=_0x4e75e0[_0x9a6b('0x17')];this['UserId']=_0x4e75e0[_0x9a6b('0x18')];this[_0x9a6b('0x19')]=_0x4e75e0['VoiceQueueId'];this[_0x9a6b('0x1a')]=_0x4e75e0[_0x9a6b('0x1a')];this[_0x9a6b('0x1b')]=_0x4e75e0['id'];this[_0x9a6b('0x1c')]=_0x4e75e0['Contact'][_0x9a6b('0x8')]||'';this[_0x9a6b('0x1d')]=moment()[_0x9a6b('0x1e')]('YYYY-MM-DD\x20HH:mm:ss');this['callback']=_0x4e75e0[_0x9a6b('0x1f')];this[_0x9a6b('0x20')]=_0x4e75e0[_0x9a6b('0x20')];this[_0x9a6b('0x21')]=_0x4e75e0[_0x9a6b('0x21')];this[_0x9a6b('0x22')]=_0x4e75e0[_0x9a6b('0x22')];this['originatecalleridnum']='';this['originatecalleridname']='';}Action[_0x9a6b('0x23')]['getCaller']=function(){return util[_0x9a6b('0x1e')]('\x22%s\x22\x20<%s>',this[_0x9a6b('0x9')],this[_0x9a6b('0x4')]['dialCutDigit']>0x0?this[_0x9a6b('0x24')][_0x9a6b('0x25')](this[_0x9a6b('0x4')][_0x9a6b('0x26')]):this[_0x9a6b('0x24')]);};Action[_0x9a6b('0x23')][_0x9a6b('0x27')]=function(){return this[_0x9a6b('0x28')];};module[_0x9a6b('0x29')]=Action;
\ No newline at end of file
+var _0x2edc=['type','dialQueueTimeout','scheduledat','countbusyretry','countcongestionretry','countnoanswerretry','countnosuchnumberretry','countdropretry','countabandonedretry','countmachineretry','countagentrejectretry','ContactId','ListId','UserId','VoiceQueueId','CampaignId','idHopper','ContactFirstName','starttime','format','YYYY-MM-DD\x20HH:mm:ss','callback','callbackuniqueid','callbackat','recallme','originatecalleridnum','originatecalleridname','prototype','\x22%s\x22\x20<%s>','dialCutDigit','getQueue','exports','util','lodash','moment','isNil','string','voiceQueue','uniqueid','name','Contact','firstName','lastName','queue','active'];(function(_0x2e3107,_0x25f970){var _0x833d69=function(_0x420e78){while(--_0x420e78){_0x2e3107['push'](_0x2e3107['shift']());}};_0x833d69(++_0x25f970);}(_0x2edc,0x101));var _0xc2ed=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x2edc[_0x3dd15e];return _0x231fd0;};'use strict';var util=require(_0xc2ed('0x0'));var _=require(_0xc2ed('0x1'));var moment=require(_0xc2ed('0x2'));function checkNameSurname(_0x2306ab,_0x37bd08,_0x4f0d7c){var _0x193118='';if(!_[_0xc2ed('0x3')](_0x37bd08)&&_0xc2ed('0x4')===typeof _0x37bd08){_0x193118+=_0x37bd08;}if(!_['isNil'](_0x4f0d7c)&&_0xc2ed('0x4')===typeof _0x4f0d7c){_0x193118+='\x20'+_0x4f0d7c;}if(_0x193118!==''){return _0x193118;}return _0x2306ab;}function Action(_0x4a6957,_0x1e22ac,_0x15fe6d){this[_0xc2ed('0x5')]=_0x4a6957;this[_0xc2ed('0x6')]=_0x15fe6d||undefined;this[_0xc2ed('0x7')]=checkNameSurname(_0x1e22ac[_0xc2ed('0x8')]['phone'],_0x1e22ac[_0xc2ed('0x8')][_0xc2ed('0x9')],_0x1e22ac['Contact'][_0xc2ed('0xa')]);this['number']=_0x1e22ac[_0xc2ed('0x8')]['phone'];this[_0xc2ed('0xb')]=_0x4a6957[_0xc2ed('0x7')];this[_0xc2ed('0xc')]=_0x1e22ac['active']||![];this[_0xc2ed('0xd')]=_0x4a6957['type'];this[_0xc2ed('0xe')]=_0x4a6957[_0xc2ed('0xe')]||0x3;this[_0xc2ed('0xf')]=_0x1e22ac[_0xc2ed('0xf')];this[_0xc2ed('0x10')]=_0x1e22ac[_0xc2ed('0x10')];this[_0xc2ed('0x11')]=_0x1e22ac[_0xc2ed('0x11')];this[_0xc2ed('0x12')]=_0x1e22ac[_0xc2ed('0x12')];this[_0xc2ed('0x13')]=_0x1e22ac[_0xc2ed('0x13')];this[_0xc2ed('0x14')]=_0x1e22ac[_0xc2ed('0x14')];this[_0xc2ed('0x15')]=_0x1e22ac[_0xc2ed('0x15')];this[_0xc2ed('0x16')]=_0x1e22ac['countmachineretry'];this[_0xc2ed('0x17')]=_0x1e22ac[_0xc2ed('0x17')];this[_0xc2ed('0x18')]=_0x1e22ac[_0xc2ed('0x18')];this[_0xc2ed('0x19')]=_0x1e22ac[_0xc2ed('0x19')];this['UserId']=_0x1e22ac[_0xc2ed('0x1a')];this['VoiceQueueId']=_0x1e22ac[_0xc2ed('0x1b')];this['CampaignId']=_0x1e22ac[_0xc2ed('0x1c')];this[_0xc2ed('0x1d')]=_0x1e22ac['id'];this[_0xc2ed('0x1e')]=_0x1e22ac[_0xc2ed('0x8')][_0xc2ed('0x9')]||'';this[_0xc2ed('0x1f')]=moment()[_0xc2ed('0x20')](_0xc2ed('0x21'));this['callback']=_0x1e22ac[_0xc2ed('0x22')];this[_0xc2ed('0x23')]=_0x1e22ac['callbackuniqueid'];this[_0xc2ed('0x24')]=_0x1e22ac[_0xc2ed('0x24')];this[_0xc2ed('0x25')]=_0x1e22ac[_0xc2ed('0x25')];this[_0xc2ed('0x26')]='';this[_0xc2ed('0x27')]='';}Action[_0xc2ed('0x28')]['getCaller']=function(){return util[_0xc2ed('0x20')](_0xc2ed('0x29'),this['name'],this['voiceQueue'][_0xc2ed('0x2a')]>0x0?this['number']['substring'](this[_0xc2ed('0x5')][_0xc2ed('0x2a')]):this['number']);};Action['prototype'][_0xc2ed('0x2b')]=function(){return this['queue'];};module[_0xc2ed('0x2c')]=Action;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x160f=['uniqueid','name','number','starttime','responsetime','answertime','endtime','format','ringtime','talktime','membername','reason','callback','callbackuniqueid','recallme','ContactId','ListId','UserId','VoiceQueueId','originatecalleridnum','originatecalleridname','exports','util','lodash','moment','milliseconds','diff','seconds','state','scheduledat','campaigntype','type','outbound','queue','countbusyretry','countcongestionretry','countnoanswerretry','countglobal','countdropretry','countmachineretry','countagentrejectretry','countnosuchnumberretry','countabandonedretry'];(function(_0x1123df,_0x43de3d){var _0x12d029=function(_0x51a1fb){while(--_0x51a1fb){_0x1123df['push'](_0x1123df['shift']());}};_0x12d029(++_0x43de3d);}(_0x160f,0x1ef));var _0xf160=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x160f[_0x3dd15e];return _0x231fd0;};'use strict';var util=require(_0xf160('0x0'));var _=require(_0xf160('0x1'));var moment=require(_0xf160('0x2'));function getSeconds(_0x2966aa,_0x5bf9e1){var _0x4513f1=moment(_0x2966aa)[_0xf160('0x3')](0x0);var _0x183b15=moment(_0x5bf9e1)[_0xf160('0x3')](0x0);return _0x4513f1[_0xf160('0x4')](_0x183b15,_0xf160('0x5'));}function AgentComplete(_0x4a6f3d,_0x311d63){this[_0xf160('0x6')]=0x4;this['statedesc']='Answer';this[_0xf160('0x7')]=_0x4a6f3d['scheduledat'];this['type']=_0x4a6f3d['type'];this[_0xf160('0x8')]=_0x4a6f3d[_0xf160('0x9')]===_0xf160('0xa')?_0xf160('0xb'):_0x4a6f3d['type'];this['countbusyretry']=_0x4a6f3d[_0xf160('0xc')];this[_0xf160('0xd')]=_0x4a6f3d[_0xf160('0xd')];this['countnoanswerretry']=_0x4a6f3d[_0xf160('0xe')];this[_0xf160('0xf')]=_0x4a6f3d[_0xf160('0xc')]+_0x4a6f3d[_0xf160('0xd')]+_0x4a6f3d[_0xf160('0xe')]+_0x4a6f3d['countnosuchnumberretry']+_0x4a6f3d[_0xf160('0x10')]+_0x4a6f3d['countabandonedretry']+_0x4a6f3d[_0xf160('0x11')]+_0x4a6f3d[_0xf160('0x12')];this[_0xf160('0x13')]=_0x4a6f3d[_0xf160('0x13')];this[_0xf160('0x10')]=_0x4a6f3d[_0xf160('0x10')];this[_0xf160('0x14')]=_0x4a6f3d[_0xf160('0x14')];this[_0xf160('0x11')]=_0x4a6f3d['countmachineretry'];this[_0xf160('0x12')]=_0x4a6f3d[_0xf160('0x12')];this[_0xf160('0x15')]=_0x311d63[_0xf160('0x15')];this['calleridname']=_0x4a6f3d[_0xf160('0x16')];this['calleridnum']=_0x4a6f3d[_0xf160('0x17')];this[_0xf160('0x18')]=_0x4a6f3d[_0xf160('0x18')];this[_0xf160('0x19')]=_0x4a6f3d[_0xf160('0x19')];this[_0xf160('0x1a')]=_0x4a6f3d[_0xf160('0x1a')];this[_0xf160('0x1b')]=moment()[_0xf160('0x1c')]('YYYY-MM-DD\x20HH:mm:ss');this[_0xf160('0x1d')]=getSeconds(_0x4a6f3d[_0xf160('0x19')],_0x4a6f3d[_0xf160('0x18')]);this['holdtime']=getSeconds(_0x4a6f3d[_0xf160('0x1a')],_0x4a6f3d[_0xf160('0x19')]);this[_0xf160('0x1e')]=getSeconds(this[_0xf160('0x1b')],_0x4a6f3d[_0xf160('0x1a')]);this[_0xf160('0xb')]=_0x311d63[_0xf160('0xb')];this['membername']=_0x311d63[_0xf160('0x1f')];this[_0xf160('0x20')]=_0x311d63[_0xf160('0x20')];this[_0xf160('0x21')]=_0x4a6f3d['callback'];this[_0xf160('0x22')]=_0x4a6f3d[_0xf160('0x22')];this['callbackat']=_0x4a6f3d['callbackat'];this[_0xf160('0x23')]=_0x4a6f3d[_0xf160('0x23')];this[_0xf160('0x24')]=_0x4a6f3d['ContactId'];this[_0xf160('0x25')]=_0x4a6f3d[_0xf160('0x25')];this[_0xf160('0x26')]=_0x4a6f3d[_0xf160('0x26')];this[_0xf160('0x27')]=_0x4a6f3d[_0xf160('0x27')];this['CampaignId']=_0x4a6f3d['CampaignId'];this['originatecalleridnum']=_0x4a6f3d[_0xf160('0x28')]||'';this[_0xf160('0x29')]=_0x4a6f3d[_0xf160('0x29')]||'';}module[_0xf160('0x2a')]=AgentComplete;
\ No newline at end of file
+var _0xcaf2=['ListId','UserId','VoiceQueueId','CampaignId','originatecalleridnum','originatecalleridname','util','moment','milliseconds','seconds','statedesc','Answer','scheduledat','type','campaigntype','outbound','queue','countbusyretry','countcongestionretry','countnoanswerretry','countglobal','countnosuchnumberretry','countdropretry','countmachineretry','countagentrejectretry','countabandonedretry','uniqueid','calleridname','number','starttime','responsetime','answertime','endtime','format','YYYY-MM-DD\x20HH:mm:ss','holdtime','talktime','membername','reason','callback','callbackuniqueid','callbackat','recallme','ContactId'];(function(_0x4fb40d,_0x4f079c){var _0x56d354=function(_0x4b7ab9){while(--_0x4b7ab9){_0x4fb40d['push'](_0x4fb40d['shift']());}};_0x56d354(++_0x4f079c);}(_0xcaf2,0x8a));var _0x2caf=function(_0x37870d,_0x356e02){_0x37870d=_0x37870d-0x0;var _0x1ae695=_0xcaf2[_0x37870d];return _0x1ae695;};'use strict';var util=require(_0x2caf('0x0'));var _=require('lodash');var moment=require(_0x2caf('0x1'));function getSeconds(_0x301fce,_0x47b94f){var _0x416629=moment(_0x301fce)[_0x2caf('0x2')](0x0);var _0x5b4a90=moment(_0x47b94f)[_0x2caf('0x2')](0x0);return _0x416629['diff'](_0x5b4a90,_0x2caf('0x3'));}function AgentComplete(_0xae320c,_0x249a4b){this['state']=0x4;this[_0x2caf('0x4')]=_0x2caf('0x5');this[_0x2caf('0x6')]=_0xae320c[_0x2caf('0x6')];this['type']=_0xae320c[_0x2caf('0x7')];this[_0x2caf('0x8')]=_0xae320c[_0x2caf('0x7')]===_0x2caf('0x9')?_0x2caf('0xa'):_0xae320c[_0x2caf('0x7')];this[_0x2caf('0xb')]=_0xae320c[_0x2caf('0xb')];this[_0x2caf('0xc')]=_0xae320c['countcongestionretry'];this[_0x2caf('0xd')]=_0xae320c[_0x2caf('0xd')];this[_0x2caf('0xe')]=_0xae320c[_0x2caf('0xb')]+_0xae320c[_0x2caf('0xc')]+_0xae320c[_0x2caf('0xd')]+_0xae320c[_0x2caf('0xf')]+_0xae320c[_0x2caf('0x10')]+_0xae320c['countabandonedretry']+_0xae320c[_0x2caf('0x11')]+_0xae320c[_0x2caf('0x12')];this['countnosuchnumberretry']=_0xae320c['countnosuchnumberretry'];this['countdropretry']=_0xae320c[_0x2caf('0x10')];this['countabandonedretry']=_0xae320c[_0x2caf('0x13')];this[_0x2caf('0x11')]=_0xae320c[_0x2caf('0x11')];this[_0x2caf('0x12')]=_0xae320c['countagentrejectretry'];this[_0x2caf('0x14')]=_0x249a4b['uniqueid'];this[_0x2caf('0x15')]=_0xae320c['name'];this['calleridnum']=_0xae320c[_0x2caf('0x16')];this['starttime']=_0xae320c[_0x2caf('0x17')];this[_0x2caf('0x18')]=_0xae320c['responsetime'];this[_0x2caf('0x19')]=_0xae320c[_0x2caf('0x19')];this[_0x2caf('0x1a')]=moment()[_0x2caf('0x1b')](_0x2caf('0x1c'));this['ringtime']=getSeconds(_0xae320c[_0x2caf('0x18')],_0xae320c[_0x2caf('0x17')]);this[_0x2caf('0x1d')]=getSeconds(_0xae320c[_0x2caf('0x19')],_0xae320c[_0x2caf('0x18')]);this[_0x2caf('0x1e')]=getSeconds(this[_0x2caf('0x1a')],_0xae320c[_0x2caf('0x19')]);this[_0x2caf('0xa')]=_0x249a4b[_0x2caf('0xa')];this[_0x2caf('0x1f')]=_0x249a4b['membername'];this[_0x2caf('0x20')]=_0x249a4b[_0x2caf('0x20')];this[_0x2caf('0x21')]=_0xae320c[_0x2caf('0x21')];this[_0x2caf('0x22')]=_0xae320c[_0x2caf('0x22')];this[_0x2caf('0x23')]=_0xae320c[_0x2caf('0x23')];this[_0x2caf('0x24')]=_0xae320c[_0x2caf('0x24')];this['ContactId']=_0xae320c[_0x2caf('0x25')];this[_0x2caf('0x26')]=_0xae320c[_0x2caf('0x26')];this[_0x2caf('0x27')]=_0xae320c[_0x2caf('0x27')];this[_0x2caf('0x28')]=_0xae320c[_0x2caf('0x28')];this[_0x2caf('0x29')]=_0xae320c[_0x2caf('0x29')];this[_0x2caf('0x2a')]=_0xae320c[_0x2caf('0x2a')]||'';this[_0x2caf('0x2b')]=_0xae320c[_0x2caf('0x2b')]||'';}module['exports']=AgentComplete;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3baf=['countmachineretry','countagentrejectretry','calleridname','calleridnum','starttime','responsetime','ringtime','holdtime','talktime','callback','callbackuniqueid','callbackat','ContactId','ListId','UserId','VoiceQueueId','CampaignId','originatecalleridnum','exports','util','lodash','moment','milliseconds','diff','seconds','uniqueid','scheduledat','campaigntype','outbound','queue','type','countbusyretry','countcongestionretry','countnoanswerretry','countglobal','countnosuchnumberretry','countdropretry','countabandonedretry'];(function(_0x35912e,_0x498365){var _0x254f21=function(_0x33050e){while(--_0x33050e){_0x35912e['push'](_0x35912e['shift']());}};_0x254f21(++_0x498365);}(_0x3baf,0xf7));var _0xf3ba=function(_0x3ab164,_0x2fa5e9){_0x3ab164=_0x3ab164-0x0;var _0x39565e=_0x3baf[_0x3ab164];return _0x39565e;};'use strict';var util=require(_0xf3ba('0x0'));var _=require(_0xf3ba('0x1'));var moment=require(_0xf3ba('0x2'));function getSeconds(_0x3979b3,_0x29bbc2){var _0x22f9c0=moment(_0x3979b3)[_0xf3ba('0x3')](0x0);var _0x306bdd=moment(_0x29bbc2)[_0xf3ba('0x3')](0x0);return _0x22f9c0[_0xf3ba('0x4')](_0x306bdd,_0xf3ba('0x5'));}function Final(_0x1c7a62){this[_0xf3ba('0x6')]=_0x1c7a62[_0xf3ba('0x6')];this[_0xf3ba('0x7')]=_0x1c7a62['scheduledat'];this['type']=_0x1c7a62['type'];this[_0xf3ba('0x8')]=_0x1c7a62['type']===_0xf3ba('0x9')?_0xf3ba('0xa'):_0x1c7a62[_0xf3ba('0xb')];this[_0xf3ba('0xc')]=_0x1c7a62[_0xf3ba('0xc')];this[_0xf3ba('0xd')]=_0x1c7a62[_0xf3ba('0xd')];this[_0xf3ba('0xe')]=_0x1c7a62[_0xf3ba('0xe')];this[_0xf3ba('0xf')]=_0x1c7a62[_0xf3ba('0xc')]+_0x1c7a62[_0xf3ba('0xd')]+_0x1c7a62[_0xf3ba('0xe')]+_0x1c7a62[_0xf3ba('0x10')]+_0x1c7a62[_0xf3ba('0x11')]+_0x1c7a62[_0xf3ba('0x12')]+_0x1c7a62[_0xf3ba('0x13')]+_0x1c7a62[_0xf3ba('0x14')];this['countnosuchnumberretry']=_0x1c7a62[_0xf3ba('0x10')];this['countdropretry']=_0x1c7a62[_0xf3ba('0x11')];this[_0xf3ba('0x12')]=_0x1c7a62[_0xf3ba('0x12')];this[_0xf3ba('0x13')]=_0x1c7a62[_0xf3ba('0x13')];this['countagentrejectretry']=_0x1c7a62[_0xf3ba('0x14')];this[_0xf3ba('0xa')]=_0x1c7a62[_0xf3ba('0xa')];this['calleridname']=_0x1c7a62[_0xf3ba('0x15')];this[_0xf3ba('0x16')]=_0x1c7a62[_0xf3ba('0x16')];this[_0xf3ba('0x17')]=_0x1c7a62['starttime'];this[_0xf3ba('0x18')]=_0x1c7a62[_0xf3ba('0x18')];this['endtime']=_0x1c7a62['responsetime'];this[_0xf3ba('0x19')]=_0x1c7a62[_0xf3ba('0x19')]||0x0;this[_0xf3ba('0x1a')]=_0x1c7a62['holdtime']||0x0;this[_0xf3ba('0x1b')]=_0x1c7a62[_0xf3ba('0x1b')]||0x0;this[_0xf3ba('0x1c')]=_0x1c7a62[_0xf3ba('0x1c')];this[_0xf3ba('0x1d')]=_0x1c7a62[_0xf3ba('0x1d')];this[_0xf3ba('0x1e')]=_0x1c7a62['callbackat'];this['recallme']=_0x1c7a62['recallme'];this[_0xf3ba('0x1f')]=_0x1c7a62[_0xf3ba('0x1f')];this[_0xf3ba('0x20')]=_0x1c7a62[_0xf3ba('0x20')];this[_0xf3ba('0x21')]=_0x1c7a62['UserId'];this['VoiceQueueId']=_0x1c7a62[_0xf3ba('0x22')];this[_0xf3ba('0x23')]=_0x1c7a62['CampaignId'];this[_0xf3ba('0x24')]=_0x1c7a62[_0xf3ba('0x24')]||'';this['originatecalleridname']=_0x1c7a62['originatecalleridname']||'';}module[_0xf3ba('0x25')]=Final;
\ No newline at end of file
+var _0x4873=['lodash','moment','milliseconds','diff','seconds','uniqueid','scheduledat','type','campaigntype','outbound','countbusyretry','countcongestionretry','countnoanswerretry','countglobal','countdropretry','countabandonedretry','countmachineretry','countagentrejectretry','countnosuchnumberretry','queue','calleridname','calleridnum','starttime','responsetime','endtime','ringtime','holdtime','talktime','callback','callbackuniqueid','callbackat','recallme','ContactId','ListId','UserId','VoiceQueueId','CampaignId','originatecalleridnum','originatecalleridname','util'];(function(_0x5db1fd,_0x4877ef){var _0x2f70ec=function(_0x531817){while(--_0x531817){_0x5db1fd['push'](_0x5db1fd['shift']());}};_0x2f70ec(++_0x4877ef);}(_0x4873,0x1df));var _0x3487=function(_0x18a4f0,_0x1d6838){_0x18a4f0=_0x18a4f0-0x0;var _0x5729eb=_0x4873[_0x18a4f0];return _0x5729eb;};'use strict';var util=require(_0x3487('0x0'));var _=require(_0x3487('0x1'));var moment=require(_0x3487('0x2'));function getSeconds(_0x4ca7ad,_0x10ebd5){var _0x4876b8=moment(_0x4ca7ad)['milliseconds'](0x0);var _0x24ca51=moment(_0x10ebd5)[_0x3487('0x3')](0x0);return _0x4876b8[_0x3487('0x4')](_0x24ca51,_0x3487('0x5'));}function Final(_0x2fc292){this[_0x3487('0x6')]=_0x2fc292[_0x3487('0x6')];this[_0x3487('0x7')]=_0x2fc292['scheduledat'];this[_0x3487('0x8')]=_0x2fc292[_0x3487('0x8')];this[_0x3487('0x9')]=_0x2fc292[_0x3487('0x8')]===_0x3487('0xa')?'queue':_0x2fc292[_0x3487('0x8')];this['countbusyretry']=_0x2fc292[_0x3487('0xb')];this[_0x3487('0xc')]=_0x2fc292['countcongestionretry'];this['countnoanswerretry']=_0x2fc292[_0x3487('0xd')];this[_0x3487('0xe')]=_0x2fc292['countbusyretry']+_0x2fc292[_0x3487('0xc')]+_0x2fc292['countnoanswerretry']+_0x2fc292['countnosuchnumberretry']+_0x2fc292[_0x3487('0xf')]+_0x2fc292[_0x3487('0x10')]+_0x2fc292[_0x3487('0x11')]+_0x2fc292[_0x3487('0x12')];this[_0x3487('0x13')]=_0x2fc292[_0x3487('0x13')];this['countdropretry']=_0x2fc292[_0x3487('0xf')];this[_0x3487('0x10')]=_0x2fc292[_0x3487('0x10')];this['countmachineretry']=_0x2fc292[_0x3487('0x11')];this[_0x3487('0x12')]=_0x2fc292[_0x3487('0x12')];this[_0x3487('0x14')]=_0x2fc292[_0x3487('0x14')];this[_0x3487('0x15')]=_0x2fc292[_0x3487('0x15')];this[_0x3487('0x16')]=_0x2fc292[_0x3487('0x16')];this[_0x3487('0x17')]=_0x2fc292[_0x3487('0x17')];this[_0x3487('0x18')]=_0x2fc292[_0x3487('0x18')];this[_0x3487('0x19')]=_0x2fc292['responsetime'];this[_0x3487('0x1a')]=_0x2fc292['ringtime']||0x0;this[_0x3487('0x1b')]=_0x2fc292[_0x3487('0x1b')]||0x0;this[_0x3487('0x1c')]=_0x2fc292[_0x3487('0x1c')]||0x0;this[_0x3487('0x1d')]=_0x2fc292[_0x3487('0x1d')];this['callbackuniqueid']=_0x2fc292[_0x3487('0x1e')];this[_0x3487('0x1f')]=_0x2fc292[_0x3487('0x1f')];this[_0x3487('0x20')]=_0x2fc292[_0x3487('0x20')];this[_0x3487('0x21')]=_0x2fc292['ContactId'];this[_0x3487('0x22')]=_0x2fc292[_0x3487('0x22')];this[_0x3487('0x23')]=_0x2fc292['UserId'];this['VoiceQueueId']=_0x2fc292[_0x3487('0x24')];this[_0x3487('0x25')]=_0x2fc292[_0x3487('0x25')];this[_0x3487('0x26')]=_0x2fc292['originatecalleridnum']||'';this[_0x3487('0x27')]=_0x2fc292[_0x3487('0x27')]||'';}module['exports']=Final;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf2fe=['countnosuchnumberretry','countabandonedretry','countagentrejectretry','countdropretry','uniqueid','calleridname','name','calleridnum','number','starttime','responsetime','endtime','format','YYYY-MM-DD\x20HH:mm:ss','ringtime','holdtime','queue','membername','reason','cause-txt','callback','callbackuniqueid','callbackat','recallme','ContactId','ListId','VoiceQueueId','CampaignId','exports','util','moment','milliseconds','diff','seconds','statedesc','Answer','type','campaigntype','countbusyretry','countcongestionretry','countnoanswerretry','countglobal'];(function(_0x255d5b,_0x4f6f35){var _0x3e141a=function(_0x249ee2){while(--_0x249ee2){_0x255d5b['push'](_0x255d5b['shift']());}};_0x3e141a(++_0x4f6f35);}(_0xf2fe,0xc5));var _0xef2f=function(_0x2a7bc4,_0x304bb7){_0x2a7bc4=_0x2a7bc4-0x0;var _0x6e42ed=_0xf2fe[_0x2a7bc4];return _0x6e42ed;};'use strict';var util=require(_0xef2f('0x0'));var _=require('lodash');var moment=require(_0xef2f('0x1'));function getSeconds(_0x4c25f9,_0x2372be){var _0x3ff0c0=moment(_0x4c25f9)[_0xef2f('0x2')](0x0);var _0x423e6e=moment(_0x2372be)['milliseconds'](0x0);return _0x3ff0c0[_0xef2f('0x3')](_0x423e6e,_0xef2f('0x4'));}function Hangup(_0x3d6fb0,_0x38b1ea){this['state']=0x4;this[_0xef2f('0x5')]=_0xef2f('0x6');this['scheduledat']=_0x3d6fb0['scheduledat'];this[_0xef2f('0x7')]=_0x3d6fb0[_0xef2f('0x7')];this[_0xef2f('0x8')]=_0x3d6fb0[_0xef2f('0x7')]==='outbound'?'queue':_0x3d6fb0['type'];this[_0xef2f('0x9')]=_0x3d6fb0[_0xef2f('0x9')];this['countcongestionretry']=_0x3d6fb0[_0xef2f('0xa')];this['countnoanswerretry']=_0x3d6fb0[_0xef2f('0xb')];this[_0xef2f('0xc')]=_0x3d6fb0[_0xef2f('0x9')]+_0x3d6fb0[_0xef2f('0xa')]+_0x3d6fb0['countnoanswerretry']+_0x3d6fb0[_0xef2f('0xd')]+_0x3d6fb0['countdropretry']+_0x3d6fb0[_0xef2f('0xe')]+_0x3d6fb0['countmachineretry']+_0x3d6fb0[_0xef2f('0xf')];this[_0xef2f('0xd')]=_0x3d6fb0[_0xef2f('0xd')];this['countdropretry']=_0x3d6fb0[_0xef2f('0x10')];this[_0xef2f('0xe')]=_0x3d6fb0[_0xef2f('0xe')];this['countmachineretry']=_0x3d6fb0['countmachineretry'];this[_0xef2f('0xf')]=_0x3d6fb0['countagentrejectretry'];this['uniqueid']=_0x38b1ea[_0xef2f('0x11')];this[_0xef2f('0x12')]=_0x3d6fb0[_0xef2f('0x13')];this[_0xef2f('0x14')]=_0x3d6fb0[_0xef2f('0x15')];this['starttime']=_0x3d6fb0[_0xef2f('0x16')];this[_0xef2f('0x17')]=_0x3d6fb0[_0xef2f('0x17')];this[_0xef2f('0x18')]=moment()[_0xef2f('0x19')](_0xef2f('0x1a'));this[_0xef2f('0x1b')]=getSeconds(_0x3d6fb0[_0xef2f('0x17')],_0x3d6fb0[_0xef2f('0x16')]);this[_0xef2f('0x1c')]=0x0;this['talktime']=getSeconds(this['endtime'],_0x3d6fb0[_0xef2f('0x17')]);this[_0xef2f('0x1d')]=_0x3d6fb0[_0xef2f('0x1d')];this[_0xef2f('0x1e')]='IVR';this[_0xef2f('0x1f')]=_0x38b1ea[_0xef2f('0x20')];this[_0xef2f('0x21')]=_0x3d6fb0[_0xef2f('0x21')];this[_0xef2f('0x22')]=_0x3d6fb0[_0xef2f('0x22')];this['callbackat']=_0x3d6fb0[_0xef2f('0x23')];this[_0xef2f('0x24')]=_0x3d6fb0[_0xef2f('0x24')];this[_0xef2f('0x25')]=_0x3d6fb0['ContactId'];this['ListId']=_0x3d6fb0[_0xef2f('0x26')];this['UserId']=_0x3d6fb0['UserId'];this[_0xef2f('0x27')]=_0x3d6fb0[_0xef2f('0x27')];this[_0xef2f('0x28')]=_0x3d6fb0['CampaignId'];}module[_0xef2f('0x29')]=Hangup;
\ No newline at end of file
+var _0xcb10=['countnoanswerretry','countglobal','countnosuchnumberretry','countdropretry','countabandonedretry','countmachineretry','countagentrejectretry','uniqueid','calleridname','calleridnum','number','starttime','responsetime','endtime','format','YYYY-MM-DD\x20HH:mm:ss','ringtime','holdtime','IVR','reason','cause-txt','callback','callbackuniqueid','callbackat','ContactId','ListId','UserId','VoiceQueueId','CampaignId','exports','util','lodash','moment','milliseconds','seconds','state','statedesc','Answer','scheduledat','type','campaigntype','outbound','queue','countbusyretry'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xcb10,0x1d6));var _0x0cb1=function(_0x45d3f0,_0x4be53f){_0x45d3f0=_0x45d3f0-0x0;var _0x314b79=_0xcb10[_0x45d3f0];return _0x314b79;};'use strict';var util=require(_0x0cb1('0x0'));var _=require(_0x0cb1('0x1'));var moment=require(_0x0cb1('0x2'));function getSeconds(_0x25d80b,_0x4c87c5){var _0x58afbf=moment(_0x25d80b)[_0x0cb1('0x3')](0x0);var _0x1c97c7=moment(_0x4c87c5)['milliseconds'](0x0);return _0x58afbf['diff'](_0x1c97c7,_0x0cb1('0x4'));}function Hangup(_0x325c96,_0x430402){this[_0x0cb1('0x5')]=0x4;this[_0x0cb1('0x6')]=_0x0cb1('0x7');this[_0x0cb1('0x8')]=_0x325c96[_0x0cb1('0x8')];this[_0x0cb1('0x9')]=_0x325c96['type'];this[_0x0cb1('0xa')]=_0x325c96[_0x0cb1('0x9')]===_0x0cb1('0xb')?_0x0cb1('0xc'):_0x325c96[_0x0cb1('0x9')];this[_0x0cb1('0xd')]=_0x325c96['countbusyretry'];this['countcongestionretry']=_0x325c96['countcongestionretry'];this[_0x0cb1('0xe')]=_0x325c96[_0x0cb1('0xe')];this[_0x0cb1('0xf')]=_0x325c96[_0x0cb1('0xd')]+_0x325c96['countcongestionretry']+_0x325c96['countnoanswerretry']+_0x325c96[_0x0cb1('0x10')]+_0x325c96[_0x0cb1('0x11')]+_0x325c96[_0x0cb1('0x12')]+_0x325c96[_0x0cb1('0x13')]+_0x325c96[_0x0cb1('0x14')];this[_0x0cb1('0x10')]=_0x325c96[_0x0cb1('0x10')];this['countdropretry']=_0x325c96[_0x0cb1('0x11')];this[_0x0cb1('0x12')]=_0x325c96[_0x0cb1('0x12')];this[_0x0cb1('0x13')]=_0x325c96[_0x0cb1('0x13')];this[_0x0cb1('0x14')]=_0x325c96[_0x0cb1('0x14')];this[_0x0cb1('0x15')]=_0x430402[_0x0cb1('0x15')];this[_0x0cb1('0x16')]=_0x325c96['name'];this[_0x0cb1('0x17')]=_0x325c96[_0x0cb1('0x18')];this['starttime']=_0x325c96[_0x0cb1('0x19')];this[_0x0cb1('0x1a')]=_0x325c96[_0x0cb1('0x1a')];this[_0x0cb1('0x1b')]=moment()[_0x0cb1('0x1c')](_0x0cb1('0x1d'));this[_0x0cb1('0x1e')]=getSeconds(_0x325c96['responsetime'],_0x325c96[_0x0cb1('0x19')]);this[_0x0cb1('0x1f')]=0x0;this['talktime']=getSeconds(this[_0x0cb1('0x1b')],_0x325c96[_0x0cb1('0x1a')]);this[_0x0cb1('0xc')]=_0x325c96[_0x0cb1('0xc')];this['membername']=_0x0cb1('0x20');this[_0x0cb1('0x21')]=_0x430402[_0x0cb1('0x22')];this[_0x0cb1('0x23')]=_0x325c96[_0x0cb1('0x23')];this[_0x0cb1('0x24')]=_0x325c96[_0x0cb1('0x24')];this[_0x0cb1('0x25')]=_0x325c96[_0x0cb1('0x25')];this['recallme']=_0x325c96['recallme'];this[_0x0cb1('0x26')]=_0x325c96[_0x0cb1('0x26')];this[_0x0cb1('0x27')]=_0x325c96[_0x0cb1('0x27')];this[_0x0cb1('0x28')]=_0x325c96[_0x0cb1('0x28')];this[_0x0cb1('0x29')]=_0x325c96[_0x0cb1('0x29')];this[_0x0cb1('0x2a')]=_0x325c96[_0x0cb1('0x2a')];}module[_0x0cb1('0x2b')]=Hangup;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc91b=['holdtime','talktime','callback','callbackuniqueid','callbackat','recallme','ContactId','ListId','UserId','VoiceQueueId','CampaignId','originatecalleridnum','exports','util','lodash','moment','milliseconds','diff','seconds','uniqueid','type','campaigntype','outbound','queue','countbusyretry','countcongestionretry','countnoanswerretry','countglobal','countdropretry','countmachineretry','countagentrejectretry','countnosuchnumberretry','countabandonedretry','calleridname','name','calleridnum','number','starttime','responsetime','endtime','ringtime'];(function(_0x403c20,_0x4a7b99){var _0x2b271a=function(_0x106ecb){while(--_0x106ecb){_0x403c20['push'](_0x403c20['shift']());}};_0x2b271a(++_0x4a7b99);}(_0xc91b,0x17e));var _0xbc91=function(_0x43b9ae,_0x47578e){_0x43b9ae=_0x43b9ae-0x0;var _0x211597=_0xc91b[_0x43b9ae];return _0x211597;};'use strict';var util=require(_0xbc91('0x0'));var _=require(_0xbc91('0x1'));var moment=require(_0xbc91('0x2'));function getSeconds(_0x2bd409,_0x4d216c){var _0x449e42=moment(_0x2bd409)[_0xbc91('0x3')](0x0);var _0x24c166=moment(_0x4d216c)['milliseconds'](0x0);return _0x449e42[_0xbc91('0x4')](_0x24c166,_0xbc91('0x5'));}function History(_0x4baece){this['uniqueid']=_0x4baece[_0xbc91('0x6')];this['scheduledat']=_0x4baece['scheduledat']||undefined;this[_0xbc91('0x7')]=_0x4baece[_0xbc91('0x7')];this[_0xbc91('0x8')]=_0x4baece['type']===_0xbc91('0x9')?_0xbc91('0xa'):_0x4baece[_0xbc91('0x7')];this[_0xbc91('0xb')]=_0x4baece[_0xbc91('0xb')];this['countcongestionretry']=_0x4baece[_0xbc91('0xc')];this[_0xbc91('0xd')]=_0x4baece['countnoanswerretry'];this[_0xbc91('0xe')]=_0x4baece[_0xbc91('0xb')]+_0x4baece[_0xbc91('0xc')]+_0x4baece[_0xbc91('0xd')]+_0x4baece['countnosuchnumberretry']+_0x4baece[_0xbc91('0xf')]+_0x4baece['countabandonedretry']+_0x4baece[_0xbc91('0x10')]+_0x4baece[_0xbc91('0x11')];this[_0xbc91('0x12')]=_0x4baece[_0xbc91('0x12')];this[_0xbc91('0xf')]=_0x4baece[_0xbc91('0xf')];this[_0xbc91('0x13')]=_0x4baece[_0xbc91('0x13')];this[_0xbc91('0x10')]=_0x4baece['countmachineretry'];this['countagentrejectretry']=_0x4baece['countagentrejectretry'];this['queue']=_0x4baece[_0xbc91('0xa')];this[_0xbc91('0x14')]=_0x4baece[_0xbc91('0x15')];this[_0xbc91('0x16')]=_0x4baece[_0xbc91('0x17')];this[_0xbc91('0x18')]=_0x4baece['starttime'];this[_0xbc91('0x19')]=_0x4baece[_0xbc91('0x19')];this[_0xbc91('0x1a')]=_0x4baece[_0xbc91('0x19')];this[_0xbc91('0x1b')]=getSeconds(_0x4baece[_0xbc91('0x19')],_0x4baece['starttime']);this[_0xbc91('0x1c')]=0x0;this[_0xbc91('0x1d')]=0x0;this['callback']=_0x4baece[_0xbc91('0x1e')];this[_0xbc91('0x1f')]=_0x4baece[_0xbc91('0x1f')];this[_0xbc91('0x20')]=_0x4baece[_0xbc91('0x20')];this[_0xbc91('0x21')]=_0x4baece[_0xbc91('0x21')];this[_0xbc91('0x22')]=_0x4baece[_0xbc91('0x22')];this['ListId']=_0x4baece[_0xbc91('0x23')];this[_0xbc91('0x24')]=_0x4baece[_0xbc91('0x24')];this[_0xbc91('0x25')]=_0x4baece[_0xbc91('0x25')];this[_0xbc91('0x26')]=_0x4baece[_0xbc91('0x26')];this[_0xbc91('0x27')]=_0x4baece[_0xbc91('0x27')]||'';this['originatecalleridname']=_0x4baece['originatecalleridname']||'';}module[_0xbc91('0x28')]=History;
\ No newline at end of file
+var _0x6c47=['type','campaigntype','outbound','queue','countbusyretry','countcongestionretry','countnoanswerretry','countglobal','countdropretry','countabandonedretry','countmachineretry','countnosuchnumberretry','countagentrejectretry','calleridname','name','calleridnum','number','starttime','responsetime','ringtime','holdtime','callback','callbackuniqueid','callbackat','recallme','ContactId','ListId','UserId','VoiceQueueId','CampaignId','originatecalleridnum','originatecalleridname','util','lodash','moment','milliseconds','diff','seconds','uniqueid','scheduledat'];(function(_0x448275,_0x2ef796){var _0x223397=function(_0x4ed33c){while(--_0x4ed33c){_0x448275['push'](_0x448275['shift']());}};_0x223397(++_0x2ef796);}(_0x6c47,0x188));var _0x76c4=function(_0x193461,_0x42ce71){_0x193461=_0x193461-0x0;var _0x4c237c=_0x6c47[_0x193461];return _0x4c237c;};'use strict';var util=require(_0x76c4('0x0'));var _=require(_0x76c4('0x1'));var moment=require(_0x76c4('0x2'));function getSeconds(_0x4b7f07,_0x5ed8fb){var _0x31ace6=moment(_0x4b7f07)[_0x76c4('0x3')](0x0);var _0x459f1f=moment(_0x5ed8fb)['milliseconds'](0x0);return _0x31ace6[_0x76c4('0x4')](_0x459f1f,_0x76c4('0x5'));}function History(_0x13f8be){this[_0x76c4('0x6')]=_0x13f8be[_0x76c4('0x6')];this[_0x76c4('0x7')]=_0x13f8be[_0x76c4('0x7')]||undefined;this[_0x76c4('0x8')]=_0x13f8be[_0x76c4('0x8')];this[_0x76c4('0x9')]=_0x13f8be[_0x76c4('0x8')]===_0x76c4('0xa')?_0x76c4('0xb'):_0x13f8be[_0x76c4('0x8')];this['countbusyretry']=_0x13f8be[_0x76c4('0xc')];this[_0x76c4('0xd')]=_0x13f8be[_0x76c4('0xd')];this[_0x76c4('0xe')]=_0x13f8be['countnoanswerretry'];this[_0x76c4('0xf')]=_0x13f8be['countbusyretry']+_0x13f8be[_0x76c4('0xd')]+_0x13f8be[_0x76c4('0xe')]+_0x13f8be['countnosuchnumberretry']+_0x13f8be[_0x76c4('0x10')]+_0x13f8be[_0x76c4('0x11')]+_0x13f8be[_0x76c4('0x12')]+_0x13f8be['countagentrejectretry'];this[_0x76c4('0x13')]=_0x13f8be[_0x76c4('0x13')];this[_0x76c4('0x10')]=_0x13f8be[_0x76c4('0x10')];this[_0x76c4('0x11')]=_0x13f8be[_0x76c4('0x11')];this[_0x76c4('0x12')]=_0x13f8be[_0x76c4('0x12')];this[_0x76c4('0x14')]=_0x13f8be['countagentrejectretry'];this[_0x76c4('0xb')]=_0x13f8be[_0x76c4('0xb')];this[_0x76c4('0x15')]=_0x13f8be[_0x76c4('0x16')];this[_0x76c4('0x17')]=_0x13f8be[_0x76c4('0x18')];this['starttime']=_0x13f8be[_0x76c4('0x19')];this[_0x76c4('0x1a')]=_0x13f8be[_0x76c4('0x1a')];this['endtime']=_0x13f8be['responsetime'];this[_0x76c4('0x1b')]=getSeconds(_0x13f8be[_0x76c4('0x1a')],_0x13f8be[_0x76c4('0x19')]);this[_0x76c4('0x1c')]=0x0;this['talktime']=0x0;this[_0x76c4('0x1d')]=_0x13f8be['callback'];this['callbackuniqueid']=_0x13f8be[_0x76c4('0x1e')];this['callbackat']=_0x13f8be[_0x76c4('0x1f')];this['recallme']=_0x13f8be[_0x76c4('0x20')];this[_0x76c4('0x21')]=_0x13f8be[_0x76c4('0x21')];this[_0x76c4('0x22')]=_0x13f8be[_0x76c4('0x22')];this[_0x76c4('0x23')]=_0x13f8be['UserId'];this[_0x76c4('0x24')]=_0x13f8be[_0x76c4('0x24')];this['CampaignId']=_0x13f8be[_0x76c4('0x25')];this[_0x76c4('0x26')]=_0x13f8be[_0x76c4('0x26')]||'';this['originatecalleridname']=_0x13f8be[_0x76c4('0x27')]||'';}module['exports']=History;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc737=['unlockContact','[unlockContact]\x20','getContactDialer','temp','[getContactDialer]\x20','getContactDialerIvr','[getContactDialerIvr]\x20','getVoiceQueueRtPauses','[getVoiceQueueRtPauses]\x20','moveContactManagedDialer','createHistory','[createHistory]\x20','[updateOriginated]\x20object\x20originated\x20is\x20negative','[updateOriginated]\x20is\x20null\x20or\x20undefined','loggerHandler','emptyContact','saveInDb','pick','ContactId','ListId','UserId','VoiceQueueId','CampaignId','[emptyContact][createHistory]','isSuccess','Success','active','SIP/%s','reachable','unmonitored','syncVarSet','variable','exten','dialAMDActive','value','uniqueid','outboundAnswerAgiCallsDay','membername','AMD','custom:amd','buildObj','amd','[syncHangupInAMD][createHistory]','[syncHangupInAMD]','MACHINE','statedesc','countmachineretry','countbusyretry','countdropretry','countabandonedretry','dialGlobalMaxRetry','stateGlobal','reason19\x20machine....','dialMachineMaxRetry','createStateFinal','reason\x2019\x20machine....','dialMachineRetryFrequency','YYYY-MM-DD\x20HH:mm:ss','[rescheduleContact][Machine]','HANGUP','HangupInAMD','[syncHangupInAMDIvr]','Machine','countglobal','[syncAgentComplete][createHistory][0]','countagentrejectretry','add','ivrAnswerCallsDay','[syncHangupIvr][createHistory]','AnswerAGI','AGI','dialQueueProject','cause-txt','[syncHangupIvr]','syncAgentComplete','reason','agent','agiafterat','dialQueueProject2','dialAgiAfterHangupAgent','answertime','[syncAgentComplete][createHistory]','[syncQueueCallerAbandon]\x20[Drop]','droptime','dialQueueTimeout','outboundDropCallsDayTimeout','Drop','dropreason','TIMEOUT','dialDropMaxRetry','queueCallerAbandonCreateState','dialDropRetryFrequency','minutes','calleridname','calleridnum','[syncAgentComplete][createHistory][10]','Abandoned','CALLEREXIT','[rescheduleContact][Abandoned]','[syncAgentComplete][createHistory][11]','actionid','paused','stateinterface','agents','rrmemory','push','idHopper','queueStatusComplete','[booked][unlockQueueStatus]','[Catch][Preview][syncQueueStatusComplete]','_rr','length','unlockRR','[booked][RR]','contactAgent-idHopper:\x20','run','Agent:\x20','[booked][unlock]','[booked][unlock2]','[unlock2][syncQueueStatusComplete]','loopCampaigns','checkIsTrunkReachable','isTrunkReachable','TrunkBackup','TRUNK_IS_NOT_REACHABLE','\x20trunk\x20is\x20not\x20reachable','ifTime','checkIfTimeIntervals','\x20Intervals\x20is\x20null\x20','INTERVAL_IS_EMPTY','Failure','\x20Intervals\x20is\x20empty\x20','timezones','TIMEZONE_UNKNOW','\x20Timezone\x20unknow\x20','isArray','command','iftime\x20%s,%s','indexOf','true','all','some','INTERVAL_IS_OVERTIME','Global:\x20','\x20Interval\x20is\x20overtime:\x20','progressive','power','handlePower','Queue','method\x20not\x20recognized','launchHandleIvr','handleIvr','checkIfTime','dialGlobalInterval','[syncQueueSummary]','syncCampaigns','dialTimezone','[syncCampaigns]','\x5cw{0,','pow','random','object','originate','voiceQueue\x20is\x20undefine','Contact','phone','contact\x20is\x20undefine','\x22agi://%s/square,%s\x22','NONE','\x22%s,%s%s,,,%s\x22','getCaller','ACTIVE','xcally-motion-dialer','XMD-AMDINITIALSILENCE','dialAMDInitialSilence','XMD-AMDGREETING','dialAMDGreeting','XMD-AMDAFTERGREETINGSILENCE','dialAMDAfterGreetingSilence','XMD-AMDMINWORDLENGTH','dialAMDBetweenWordsSilence','dialAMDMaximumNumberOfWords','XMD-AMDSILENCETHRESHOLD','XMD-AMDMAXIMUMWORDLENGTH','dialAMDMaximumWordLength','tags','updatedAt','%s%s','XMD-','toUpper','dialRandomLastDigitCallerIdNumber','XMD-ORIGINATECALLERIDNAME','originatecalleridname','XMD-ORIGINATECALLERIDNUM','originatecalleridnum','SIP/%s/%s%s','dialCutDigit','trim','substring','from-sip','[originateError]:\x20%s','OriginateError','[originate][error]','originate\x20action\x20Error','getQueue','callProgressDetecting','[callProgressDetecting]\x20','countcongestionretry','countnoanswerretry','countnosuchnumberretry','dialNoAnswerMaxRetry','dialNoAnswerRetryFrequency','[rescheduleContact][NoAnswer]','dialBusyRetryFrequency','[rescheduleContact]\x20[Busy]','dialCongestionMaxRetry','dialCongestionRetryFrequency','[rescheduleContact]\x20[Congestion]','dialNoSuchNumberMaxRetry','[rescheduleContact][NoSuchNumber]','dialAgentRejectRetryFrequency','entity\x20is\x20undefine','[callProgressDetecting]','evt\x20is\x20undefine','NoSuchNumber','nosuchnumber','reason\x200\x20no\x20such\x20number....','NoAnswer','custom:agentnoanswer','noanswer','checkRetriveMax','Busy','custom:agentbusy','[syncAgentComplete][createHistory][5]','dialBusyMaxRetry','reason\x205\x20busy','congestion','[syncAgentComplete][createHistory][8]','reason\x208\x20congestion','outboundAbandonedCallsDay','dialAbandonedMaxRetry','outboundRejectCallsDay','AgentReject','[syncAgentComplete][createHistory][20]','dialAgentRejectMaxRetry','reason\x2020\x20agentreject','outboundUnknownCallsDay','[syncAgentComplete][createHistory][?]','Global','[moveContactManagedDialer][0]','contact\x20not\x20moved','dialPredictiveOptimizationPercentage','round','predictiveIntervalMaxThreshold','floor','[startMethodPredictive][StartProgressive]','check\x20predictive\x20is\x20not\x20undefine','check\x20handlePredictive\x20is\x20not\x20undefine','collection\x20data\x20in\x20progressive\x20at','dialPredictiveInterval','[startMethodPredictive][StartProgressive][Loop]','dialPredictiveOptimization','[stopMethodPredictive][ReStartProgressive][ExceededDropDay]','Dropped\x20calls\x20day','dropRate','Max\x20Drop\x20','Drop\x20in\x20this\x20interval','averageHandleTime','startMethodPredictive','Predictive\x20after\x20first\x20interval','recalculate\x20predictive\x20at','getDataPredictive','Predictive\x20for\x20every\x20interval','switch\x20in\x20progressive\x20because\x20available\x20agents\x20(',')\x20are\x20less\x20than\x20threshold\x20(',')\x20are\x20more\x20than\x20threshold\x20(','abandonmentRate','busyFactor','[getDataPredictive]','Unknown\x20Predictive','check\x20failure','outboundQueuePauses','[CatchErlangB]','agentBusyFactor','one\x20call\x20every:','[handlePredictive]','fail\x20to\x20scheduled\x20calls','checkContactBlack','recallme','booked','[booked][checkContactBlack]','Queue:\x20','[unlockOriginate][syncQueueStatusComplete]','actionOriginate','scheduledat','dialRecallMeTimeout','Agent','voicePause','dialRecallInQueue','[rescheduleContact][dialRecallInQueue]','RECALLINQUEUE','RecallInQueue','[Originate][HistoryDialRecallInQueue][historyCatch]','RECALLFAILEDTIMEOUT','RecallFailedTimeout','[Originate][HistoryRecallClose]','[Originate][historyBlacklist]','[Originate][MoveBlacklist]','inBlackList','limitCalls','dialOrderByScheduledAt','RUNNING','ivrTotalCallsDays','[getContactCampaign2]','dialLimitQueue','not_inuse','[actionOriginate]\x20','Contact.phone','[getContactDialer2]','tryOriginatePredictive','[countReScheduled]\x20','[actionOriginatePredictive]\x20','[getContactDialerPredictive]','--------\x20Drop\x20Rate\x20--------','M:\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','Interval:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','Ts:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','P:\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','Amax:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','[abandonmentRate]','m\x20=\x20','Ts\x20=\x20','interval\x20=\x20','Amax\x20=\x20','----\x20Agent\x20Busy\x20Factor\x20----','Umin:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','[busyFactor]','p\x20=\x20','Umin\x20=\x20','exports','util','lodash','bluebird','uuid','md5','ioredis','../preview/util/util','../../../config/logger','dialer','predictive','predictiveCalls','redis','defaults','socket.io-emitter','../rpc/cmHopperHistory','../rpc/voiceQueueRt','./action','./history','./agentComplete','./queueCallerAbandon','./hangup','env','127.0.0.1','roundrobin','prototype','enqueue','tail','finally','preview','voiceQueues','campaigns','trunks','maxNumberOriginate','actions','contactsId','uniqueId','optionPredictive','startPredictive','ivrOriginated','queueBooked','queueBookedRR','agentconnect','syncAgentConnect','bind','queuecallerabandon','syncQueueCallerAbandon','syncOriginateResponse','agentcomplete','syncQueueSummary','hangup','syncHangup','syncNewExten','varset','queuemember','syncQueueMember','queuestatuscomplete','syncQueueStatusComplete','isUndefined','AGENTS_NOT_LOGGED','name','\x20AGENTS\x20NOT\x20LOGGED','message','NOT_ACTIVE','\x20NOT\x20Active','INTERVAL_IS_NULL','Interval','Intervals','\x20INTERVAL_IS_NULL','isEmpty','[ifTime][Action]','Error','stringify','milliseconds','diff','emit','type','outbound','strategy','answered','available','loggedIn','pTalking','sumDuration','sumHoldTime','talking','total','waiting','loggedInDb','dialActive','dialMethod','dialOriginateCallerIdName','dialOriginateCallerIdNumber','dialOriginateTimeout','dialPrefix','outboundAnswerCallsDay','outboundBlacklistCallsDay','outboundBusyCallsDay','outboundCongestionCallsDay','outboundDropCallsDayACS','outboundDropCallsDayCallersExit','outboundNoAnswerCallsDay','outboundNoSuchCallsDay','outboundOriginateFailureCallsDay','outboundReCallsDay','predictiveIntervalAvgHoldtime','predictiveIntervalAvgTalktime','predictiveIntervalDroppedCallsCallersExit','predictiveIntervalDroppedCallsTimeout','predictiveIntervalErlangCallsDroppedCalls','predictiveIntervalHitRate','predictiveIntervalMultiplicativeFactor','predictiveIntervalPauses','predictiveIntervalAvailable','predictiveIntervalTotalCalls','originated','erlangCallToSecond','startProgressive','Trunk','callerid','format','voice_queue:save','ivr','campaign:ivr:%s','info','-----\x20Stats\x20Predictive\x20---','Answered\x20Calls:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','predictiveIntervalAnsweredCalls','Dropped\x20Timeout:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','AVG\x20Hold\x20Time:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','AVG\x20Talk\x20Time:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','---------------------------','Avg\x20Talk\x20Time\x20is\x20not\x20enough\x20for\x20predictive','Avg\x20Hold\x20Time\x20is\x20not\x20enough\x20for\x20predictive','Total\x20Calls\x20are\x20not\x20enough\x20for\x20predictive','History\x20information\x20are\x20empty','---------\x20ErlangB\x20---------','Scheduled\x20Calls:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','erlangCalls','One\x20call\x20every:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','Drop\x20Rate:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','erlangAbandonmentRate','Agent\x20Busy\x20Factor:\x20\x20\x20\x20\x20\x20\x20\x20\x20','erlangBusyFactor','merge','seconds','clearing\x20variable\x20start\x20progressive','clearing\x20variable\x20start\x20predictive','handlePredictive','string','\x22%s\x22\x20<%s>','\x22\x22\x20<>','error','stack','inspect','undefined','[decremetOriginate]\x20is\x20null\x20or\x20undefined','contactsRescheduled','RESCHEDULED_CONTACTS','[getContactDialer2][ReScheduled]','contacts','AVAILABLE_CONTACTS_FINISHED','[getContactDialer2][Empty]','sendMessageOneNotActive','[syncQueueSummary]\x20Campaign\x20Queue:\x20','is\x20disactive','[syncQueueSummary]\x20Campaign\x20Ivr:\x20','IS_DISACTIVED','state','endtime','starttime','loopClearZombieChannels','clearZombieChannels','[actions]','sequence','isNil','Action','status','channel','No\x20such\x20channel','updateOriginated','[Dialer][checkChannel]','queue','countReScheduled','resolve','then','catch','checkIsBlackList','[checkIsBlackList]\x20','checkIsBlackListIvr','[checkIsBlackListIvr]\x20','avgHandleTime','[averageHandleTime]\x20','rescheduleContact'];(function(_0x376d9a,_0x26a6d9){var _0x5a12ea=function(_0x123a1d){while(--_0x123a1d){_0x376d9a['push'](_0x376d9a['shift']());}};_0x5a12ea(++_0x26a6d9);}(_0xc737,0x154));var _0x7c73=function(_0x3c060c,_0x545bc4){_0x3c060c=_0x3c060c-0x0;var _0x5aef0d=_0xc737[_0x3c060c];return _0x5aef0d;};'use strict';var util=require(_0x7c73('0x0'));var _=require(_0x7c73('0x1'));var BPromise=require(_0x7c73('0x2'));var uuid=require(_0x7c73('0x3'));var moment=require('moment');var rr=require('rr');var md5=require(_0x7c73('0x4'));var Redis=require(_0x7c73('0x5'));var ut=require(_0x7c73('0x6'));var config=require('../../../config/environment/');var logger=require(_0x7c73('0x7'))(_0x7c73('0x8'));var loggerBooked=require('../../../config/logger')('booked');var loggerPredictive=require(_0x7c73('0x7'))(_0x7c73('0x9'));var loggerPredictiveCalls=require('../../../config/logger')(_0x7c73('0xa'));var loggerSyncQueueSummary=require(_0x7c73('0x7'))('syncQueueSummary');var ami=require('../ami');config[_0x7c73('0xb')]=_[_0x7c73('0xc')](config[_0x7c73('0xb')],{'host':'localhost','port':0x18eb});var io=require(_0x7c73('0xd'))(new Redis(config[_0x7c73('0xb')]));var cmHopper=require('../rpc/cmHopper');var cmHopperHistory=require(_0x7c73('0xe'));var cmHopperBlack=require('../rpc/cmHopperBlack');var voiceQueueRt=require(_0x7c73('0xf'));var Action=require(_0x7c73('0x10'));var History=require(_0x7c73('0x11'));var Final=require('./final');var AgentComplete=require(_0x7c73('0x12'));var QueueCallerAbandon=require(_0x7c73('0x13'));var Hangup=require(_0x7c73('0x14'));var ipAgi=process[_0x7c73('0x15')]['XCALLY_IP_AGI']||_0x7c73('0x16');var strategy={'rrmemory':'rrmemory','roundrobin':_0x7c73('0x17')};var Sequence=function(){};Sequence[_0x7c73('0x18')][_0x7c73('0x19')]=function(_0x291a8a){this[_0x7c73('0x1a')]=this[_0x7c73('0x1a')]?this[_0x7c73('0x1a')][_0x7c73('0x1b')](_0x291a8a):_0x291a8a();};function Dialer(_0x5091d6,_0xbf66e){this['sequence']=new Sequence();this[_0x7c73('0x1c')]=_0xbf66e;this[_0x7c73('0x1d')]=_0x5091d6['voiceQueues'];this['campaigns']=_0x5091d6[_0x7c73('0x1e')];this['agents']=_0x5091d6['agents'];this[_0x7c73('0x1f')]=_0x5091d6[_0x7c73('0x1f')];this[_0x7c73('0x20')]=config[_0x7c73('0x20')]||0x2;this['channels']={};this[_0x7c73('0x21')]={};this[_0x7c73('0x22')]={};this[_0x7c73('0x23')]={};this[_0x7c73('0x24')]={};this[_0x7c73('0x25')]={};this['startProgressive']={};this[_0x7c73('0x26')]={};this[_0x7c73('0x27')]={};this[_0x7c73('0x28')]={};ami['on'](_0x7c73('0x29'),this[_0x7c73('0x2a')][_0x7c73('0x2b')](this));ami['on'](_0x7c73('0x2c'),this[_0x7c73('0x2d')][_0x7c73('0x2b')](this));ami['on']('originateresponse',this[_0x7c73('0x2e')]['bind'](this));ami['on'](_0x7c73('0x2f'),this['syncAgentComplete'][_0x7c73('0x2b')](this));ami['on']('custom:queuesummary',this[_0x7c73('0x30')]['bind'](this));ami['on'](_0x7c73('0x31'),this[_0x7c73('0x32')][_0x7c73('0x2b')](this));ami['on']('newexten',this[_0x7c73('0x33')][_0x7c73('0x2b')](this));ami['on'](_0x7c73('0x34'),this['syncVarSet'][_0x7c73('0x2b')](this));ami['on'](_0x7c73('0x35'),this[_0x7c73('0x36')][_0x7c73('0x2b')](this));ami['on'](_0x7c73('0x37'),this[_0x7c73('0x38')]['bind'](this));this['loopCampaigns']();this['loopClearZombieChannels']();}function isNotNull(_0x30fa4f){return _0x30fa4f!==null&&!_[_0x7c73('0x39')](_0x30fa4f);}function checkIsLoggedIn(_0x383494,_0x49b1ad){return function(){if(_0x49b1ad<=0x0){_0x383494['message']=_0x7c73('0x3a');throw _0x383494[_0x7c73('0x3b')]+_0x7c73('0x3c');}};}function isActive(_0x334cf1){return _0x334cf1;}function checkIsActive(_0x2aa14f,_0x2b924f){return function(){if(!isActive(_0x2b924f)){_0x2aa14f[_0x7c73('0x3d')]=_0x7c73('0x3e');throw _0x2aa14f[_0x7c73('0x3b')]+_0x7c73('0x3f');}};}function checkInterval(_0x50d0ea){return function(){if(!isNotNull(_0x50d0ea['Interval'])){_0x50d0ea[_0x7c73('0x3d')]=_0x7c73('0x40');throw _0x50d0ea[_0x7c73('0x3b')]+'\x20INTERVAL_IS_NULL';}if(!isNotNull(_0x50d0ea[_0x7c73('0x41')][_0x7c73('0x42')])){_0x50d0ea[_0x7c73('0x3d')]=_0x7c73('0x40');throw _0x50d0ea[_0x7c73('0x3b')]+_0x7c73('0x43');}if(!isNotNull(_[_0x7c73('0x44')](_0x50d0ea[_0x7c73('0x41')]['Intervals']))){_0x50d0ea[_0x7c73('0x3d')]=_0x7c73('0x40');throw _0x50d0ea[_0x7c73('0x3b')]+_0x7c73('0x43');}};}function msgResponse(_0xe670a4,_0x267c64,_0x2fbe78){return{'action':_0xe670a4,'response':_0x267c64,'message':_0x2fbe78,'stack':_0x2fbe78};}function myreject(_0x3cfb63){return function(_0x32af21){return _0x3cfb63(msgResponse(_0x7c73('0x45'),_0x7c73('0x46'),JSON[_0x7c73('0x47')](_0x32af21)));};}function getSeconds(_0x96cd91,_0x3c780d){var _0x39cca0=moment(_0x96cd91)[_0x7c73('0x48')](0x0);var _0x5c9fb5=moment(_0x3c780d)[_0x7c73('0x48')](0x0);return _0x39cca0[_0x7c73('0x49')](_0x5c9fb5,'seconds');}function emit(_0x3c3873,_0x1a2bb2,_0x55a86d){io['to'](_0x3c3873)[_0x7c73('0x4a')](_0x1a2bb2,_0x55a86d);}function emitVoiceQueueSummary(_0x5b96dd){if(_0x5b96dd[_0x7c73('0x4b')]===_0x7c73('0x4c')){var _0xde1390={'id':_0x5b96dd['id'],'name':_0x5b96dd[_0x7c73('0x3b')],'strategy':_0x5b96dd[_0x7c73('0x4d')],'answered':_0x5b96dd[_0x7c73('0x4e')],'available':_0x5b96dd[_0x7c73('0x4f')],'loggedIn':_0x5b96dd[_0x7c73('0x50')],'pTalking':_0x5b96dd[_0x7c73('0x51')],'sumBillable':_0x5b96dd['sumBillable'],'sumDuration':_0x5b96dd[_0x7c73('0x52')],'sumHoldTime':_0x5b96dd[_0x7c73('0x53')]||0x0,'talking':_0x5b96dd[_0x7c73('0x54')],'total':_0x5b96dd[_0x7c73('0x55')],'type':_0x5b96dd[_0x7c73('0x4b')],'unmanaged':_0x5b96dd['unmanaged'],'abandoned':_0x5b96dd['abandoned'],'waiting':_0x5b96dd[_0x7c73('0x56')],'loggedInDb':_0x5b96dd[_0x7c73('0x57')],'dialActive':_0x5b96dd[_0x7c73('0x58')],'dialMethod':_0x5b96dd[_0x7c73('0x59')],'dialOriginateCallerIdName':_0x5b96dd[_0x7c73('0x5a')],'dialOriginateCallerIdNumber':_0x5b96dd[_0x7c73('0x5b')],'dialOriginateTimeout':_0x5b96dd[_0x7c73('0x5c')],'dialPrefix':_0x5b96dd[_0x7c73('0x5d')],'outboundAnswerAgiCallsDay':_0x5b96dd['outboundAnswerAgiCallsDay'],'outboundAnswerCallsDay':_0x5b96dd[_0x7c73('0x5e')],'outboundBlacklistCallsDay':_0x5b96dd[_0x7c73('0x5f')],'outboundBusyCallsDay':_0x5b96dd[_0x7c73('0x60')],'outboundCongestionCallsDay':_0x5b96dd[_0x7c73('0x61')],'outboundDropCallsDayACS':_0x5b96dd[_0x7c73('0x62')],'outboundDropCallsDayCallersExit':_0x5b96dd[_0x7c73('0x63')],'outboundDropCallsDayTimeout':_0x5b96dd['outboundDropCallsDayTimeout'],'outboundNoAnswerCallsDay':_0x5b96dd[_0x7c73('0x64')],'outboundNoSuchCallsDay':_0x5b96dd[_0x7c73('0x65')],'outboundOriginateFailureCallsDay':_0x5b96dd[_0x7c73('0x66')],'outboundReCallsDay':_0x5b96dd[_0x7c73('0x67')],'outboundRejectCallsDay':_0x5b96dd['outboundRejectCallsDay'],'outboundUnknownCallsDay':_0x5b96dd['outboundUnknownCallsDay'],'predictiveIntervalAnsweredCalls':_0x5b96dd['predictiveIntervalAnsweredCalls'],'predictiveIntervalAvgHoldtime':_0x5b96dd[_0x7c73('0x68')],'predictiveIntervalAvgTalktime':_0x5b96dd[_0x7c73('0x69')],'predictiveIntervalDroppedCallsCallersExit':_0x5b96dd[_0x7c73('0x6a')],'predictiveIntervalDroppedCallsTimeout':_0x5b96dd[_0x7c73('0x6b')],'predictiveIntervalErlangCalls':_0x5b96dd['predictiveIntervalErlangCalls'],'predictiveIntervalErlangCallsDroppedCalls':_0x5b96dd[_0x7c73('0x6c')],'predictiveIntervalHitRate':_0x5b96dd[_0x7c73('0x6d')],'predictiveIntervalMultiplicativeFactor':_0x5b96dd[_0x7c73('0x6e')],'predictiveIntervalPauses':_0x5b96dd[_0x7c73('0x6f')],'predictiveIntervalAvailable':_0x5b96dd[_0x7c73('0x70')],'predictiveIntervalTotalCalls':_0x5b96dd[_0x7c73('0x71')],'message':_0x5b96dd[_0x7c73('0x3d')],'originated':_0x5b96dd[_0x7c73('0x72')],'erlangCalls':_0x5b96dd['erlangCalls'],'erlangCallToSecond':_0x5b96dd[_0x7c73('0x73')],'erlangAbandonmentRate':_0x5b96dd['erlangAbandonmentRate'],'erlangBusyFactor':_0x5b96dd['erlangBusyFactor'],'startPredictive':_0x5b96dd[_0x7c73('0x25')],'startProgressive':_0x5b96dd[_0x7c73('0x74')]};if(_0x5b96dd[_0x7c73('0x75')]){_0xde1390[_0x7c73('0x75')]={'id':_0x5b96dd['Trunk']['id'],'name':_0x5b96dd[_0x7c73('0x75')]['name'],'active':_0x5b96dd[_0x7c73('0x75')]['active'],'callerid':_0x5b96dd['Trunk'][_0x7c73('0x76')]};}if(_0x5b96dd[_0x7c73('0x41')]){_0xde1390[_0x7c73('0x41')]={'id':_0x5b96dd[_0x7c73('0x41')]['id'],'name':_0x5b96dd['Interval'][_0x7c73('0x3b')]};}var _0x2866bb=md5(JSON['stringify'](_0xde1390));if(_0x5b96dd[_0x7c73('0x4')]!==_0x2866bb){_0x5b96dd['md5']=_0x2866bb;emit(util[_0x7c73('0x77')]('voice:queue:%s',_0xde1390['name']),_0x7c73('0x78'),_0xde1390);}}}function emitCampaignSummary(_0x561fb0){if(_0x561fb0['type']===_0x7c73('0x79')){emit(util[_0x7c73('0x77')](_0x7c73('0x7a'),_0x561fb0['name']),'campaign:save',_0x561fb0);}}function checkGetDataPredictive(_0x444ebf){if(isNotNull(_0x444ebf)&&!_[_0x7c73('0x44')](_0x444ebf)){loggerPredictive[_0x7c73('0x7b')](_0x7c73('0x7c'));loggerPredictive[_0x7c73('0x7b')]('Total\x20Calls:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20',_0x444ebf['predictiveIntervalTotalCalls']);loggerPredictive[_0x7c73('0x7b')](_0x7c73('0x7d'),_0x444ebf[_0x7c73('0x7e')]);loggerPredictive[_0x7c73('0x7b')](_0x7c73('0x7f'),_0x444ebf[_0x7c73('0x6b')]);loggerPredictive['info']('Dropped\x20Exit:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20',_0x444ebf[_0x7c73('0x6a')]);loggerPredictive[_0x7c73('0x7b')](_0x7c73('0x80'),_0x444ebf['predictiveIntervalAvgHoldtime']);loggerPredictive['info'](_0x7c73('0x81'),_0x444ebf[_0x7c73('0x69')]);loggerPredictive[_0x7c73('0x7b')](_0x7c73('0x82'));if(_0x444ebf[_0x7c73('0x71')]>0x0){if(!_[_0x7c73('0x39')](_0x444ebf['predictiveIntervalAvgTalktime'])&&_0x444ebf['predictiveIntervalAvgTalktime']>0x0){return!![];}loggerPredictive[_0x7c73('0x7b')](_0x7c73('0x83'));if(!_[_0x7c73('0x39')](_0x444ebf[_0x7c73('0x68')])&&_0x444ebf[_0x7c73('0x68')]>0x0){return!![];}loggerPredictive[_0x7c73('0x7b')](_0x7c73('0x84'));}else{loggerPredictive[_0x7c73('0x7b')](_0x7c73('0x85'));}}else{loggerPredictive['info'](_0x7c73('0x86'));}return![];}function mergeDataErlangB(_0x1b4967){return function(_0x519d24){loggerPredictive[_0x7c73('0x7b')](_0x7c73('0x87'));loggerPredictive['info'](_0x7c73('0x88'),_0x519d24[_0x7c73('0x89')]);loggerPredictive[_0x7c73('0x7b')](_0x7c73('0x8a'),_0x519d24[_0x7c73('0x73')]);loggerPredictive['info'](_0x7c73('0x8b'),_0x519d24[_0x7c73('0x8c')]);loggerPredictive['info'](_0x7c73('0x8d'),_0x519d24[_0x7c73('0x8e')]);loggerPredictive['info']('Drop\x20Rate:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20',_0x519d24[_0x7c73('0x8c')]);loggerPredictive[_0x7c73('0x7b')](_0x7c73('0x82'));_[_0x7c73('0x8f')](_0x1b4967,_0x519d24);};}function getDiff(_0x49756c){var _0x1ef08f=moment()[_0x7c73('0x48')](0x0);var _0x866541=moment(_0x49756c)['milliseconds'](0x0);return _0x1ef08f[_0x7c73('0x49')](_0x866541,_0x7c73('0x90'));}function ifInterval(_0x2cbc70,_0x512ca){if(_['isUndefined'](_0x512ca)){return![];}return getDiff(_0x512ca)<_0x2cbc70*0x3c;}function freeVariablesPredictive(_0x481a37){if(isNotNull(_0x481a37)){if(!_[_0x7c73('0x39')](_0x481a37['startProgressive'])){_0x481a37['startProgressive']=undefined;loggerPredictive['info'](_0x481a37[_0x7c73('0x3b')],_0x7c73('0x91'));}if(!_[_0x7c73('0x39')](_0x481a37[_0x7c73('0x25')])){_0x481a37[_0x7c73('0x25')]=undefined;loggerPredictive[_0x7c73('0x7b')](_0x481a37[_0x7c73('0x3b')],_0x7c73('0x92'));}if(!_[_0x7c73('0x39')](_0x481a37[_0x7c73('0x93')])){clearInterval(_0x481a37['handlePredictive']);_0x481a37[_0x7c73('0x93')]=undefined;loggerPredictive[_0x7c73('0x7b')](_0x481a37[_0x7c73('0x3b')],'clearing\x20variable\x20handle\x20predictive');}}}function erlangb(_0x4e00fd,_0x53a3ca){if(_0x53a3ca===0x0){return 0x0;}var _0x32eca5=0x1;for(var _0x508058=0x1;_0x508058<=_0x53a3ca;_0x508058+=0x1){_0x32eca5=0x1+_0x32eca5*_0x508058/_0x4e00fd;}return 0x1/_0x32eca5;}function isVoiceQueueOutbound(_0x4a33b5){return _0x4a33b5===_0x7c73('0x4c');}function isNotPreview(_0x2e2e6e){return _0x2e2e6e!==_0x7c73('0x1c');}function isCampaignIvr(_0x1423d7){return _0x1423d7===_0x7c73('0x79');}function getCallerId(_0x1a3da1,_0x426881,_0x5ac074){if(!_[_0x7c73('0x39')](_0x5ac074)&&typeof _0x5ac074===_0x7c73('0x94')&&!_[_0x7c73('0x44')](_0x5ac074)){if(!_[_0x7c73('0x39')](_0x426881)&&typeof _0x426881==='string'&&!_['isEmpty'](_0x426881)){return util[_0x7c73('0x77')](_0x7c73('0x95'),_0x426881,_0x5ac074);}return util['format'](_0x7c73('0x95'),_0x5ac074,_0x5ac074);}if(!_[_0x7c73('0x39')](_0x1a3da1)&&typeof _0x1a3da1===_0x7c73('0x94')&&!_['isEmpty'](_0x1a3da1)){return _0x1a3da1;}return _0x7c73('0x96');}function loggerCatchQueueSummary(_0x2bfb85,_0x1ee48c){return function(_0x141ba5){freeVariablesPredictive(_0x1ee48c);emitVoiceQueueSummary(_0x1ee48c);emitCampaignSummary(_0x1ee48c);loggerSyncQueueSummary[_0x7c73('0x97')](_0x2bfb85,util['inspect'](_0x141ba5,{'showHidden':![],'depth':null}));};}function loggerCatchPredictive(_0x31765d,_0x49306b){return function(_0x27075f){loggerPredictive['error'](_0x49306b['name'],_0x31765d);loggerPredictive[_0x7c73('0x97')](_0x27075f[_0x7c73('0x98')]);freeVariablesPredictive(_0x49306b);};}function loggerCatch(_0x387592){return function(_0x4b5c09){logger[_0x7c73('0x97')](_0x387592,util[_0x7c73('0x99')](_0x4b5c09,{'showHidden':![],'depth':null}));};}function checkContactEmpty(_0x5ea1e1){return _0x5ea1e1&&!_[_0x7c73('0x39')](_0x5ea1e1)&&_0x5ea1e1['length']>0x0;}function decremetOriginate(_0x2c21c8){if(!_[_0x7c73('0x39')](_0x2c21c8)&&_0x2c21c8!==null){if(typeof _0x2c21c8['originated']!==_0x7c73('0x9a')){if(_0x2c21c8[_0x7c73('0x72')]>0x0){_0x2c21c8[_0x7c73('0x72')]-=0x1;}else{logger[_0x7c73('0x97')]('[decremetOriginate]\x20object\x20originated\x20is\x20negative');}}}else{logger[_0x7c73('0x97')](_0x7c73('0x9b'));}}function checkContactLowerLimitOriginate(_0x2c759a,_0x594ade,_0x471da6){if(_0x594ade>_0x471da6){for(var _0x43feeb=0x0;_0x43feeb<_0x594ade-_0x471da6;_0x43feeb+=0x1){decremetOriginate(_0x2c759a);}}}function loggerGetContactDialer(_0x45294f,_0x45c7b2,_0x4f7159){return function(_0x3be10d){checkContactLowerLimitOriginate(_0x45c7b2,_0x4f7159,0x0);logger[_0x7c73('0x97')](_0x45294f,util['inspect'](_0x3be10d,{'showHidden':![],'depth':null}));};}function sendMessageReschedule(_0x461cdf){return function(_0x36eae8){if(isNotNull(_0x36eae8)&&isNotNull(_0x36eae8[0x0])){if(_0x36eae8[0x0][_0x7c73('0x9c')]>0x0){_0x461cdf[_0x7c73('0x3d')]=_0x7c73('0x9d');logger[_0x7c73('0x7b')](_0x7c73('0x9e')+_0x461cdf['name'],_0x36eae8[0x0][_0x7c73('0x9c')],_0x7c73('0x9f'));}else{_0x461cdf[_0x7c73('0x3d')]=_0x7c73('0xa0');logger[_0x7c73('0x7b')](_0x7c73('0xa1')+_0x461cdf[_0x7c73('0x3b')]);}}};}function notSendMessagesQueue(_0x563070){if(_0x563070['sendMessageOneNotActive']){freeVariablesPredictive(_0x563070);if(_0x563070['originated']===0x0&&_0x563070[_0x7c73('0x54')]===0x0&&_0x563070['waiting']===0x0&&(_0x563070['pTalking']||0x0)===0x0){_0x563070[_0x7c73('0xa2')]=![];_0x563070[_0x7c73('0x4f')]=0x0;_0x563070[_0x7c73('0x3d')]=_0x7c73('0x3e');loggerSyncQueueSummary[_0x7c73('0x97')]('[syncQueueSummary]\x20Campaign\x20Queue:\x20',_0x563070[_0x7c73('0x3b')],'is\x20not\x20active');}else{_0x563070[_0x7c73('0x3d')]='IS_DISACTIVED';loggerSyncQueueSummary['error'](_0x7c73('0xa3'),_0x563070[_0x7c73('0x3b')],_0x7c73('0xa4'));}emitVoiceQueueSummary(_0x563070);}}function notSendMessagesCampaign(_0x2c4d0e){if(_0x2c4d0e[_0x7c73('0xa2')]){if(_0x2c4d0e[_0x7c73('0x72')]===0x0){_0x2c4d0e[_0x7c73('0xa2')]=![];_0x2c4d0e[_0x7c73('0x3d')]='NOT_ACTIVE';loggerSyncQueueSummary[_0x7c73('0x97')](_0x7c73('0xa5'),_0x2c4d0e[_0x7c73('0x3b')],'is\x20not\x20active');}else{_0x2c4d0e['message']=_0x7c73('0xa6');loggerSyncQueueSummary[_0x7c73('0x97')]('[syncQueueSummary]\x20Campaign\x20Ivr:\x20',_0x2c4d0e[_0x7c73('0x3b')],'is\x20disactive');}emitCampaignSummary(_0x2c4d0e);}}function createObjHistory(_0x1c2247,_0x56f30e,_0x223ebb,_0x2e139e,_0x3048c8){_0x1c2247[_0x7c73('0x3d')]=_0x223ebb;var _0x26fa06=new Action(_0x1c2247,_0x56f30e);var _0x227499=new History(_0x26fa06);_0x227499[_0x7c73('0xa7')]=_0x2e139e;_0x227499['statedesc']=_0x3048c8;_0x227499[_0x7c73('0xa8')]=_0x26fa06[_0x7c73('0xa9')];return _0x227499;}Dialer[_0x7c73('0x18')][_0x7c73('0xaa')]=function(){var _0x5dd59a=this;setInterval(function(){_0x5dd59a[_0x7c73('0xab')](_0x5dd59a[_0x7c73('0x23')],'[uniqueid]');_0x5dd59a['clearZombieChannels'](_0x5dd59a[_0x7c73('0x21')],_0x7c73('0xac'));},0x32c8);};Dialer[_0x7c73('0x18')][_0x7c73('0xab')]=function(_0x12a825,_0x5e40f2){var _0x30d242=this;for(var _0x14498d in _0x12a825){if(typeof _0x12a825[_0x14498d]!=='undefined'){this[_0x7c73('0xad')][_0x7c73('0x19')](function(){if(!_[_0x7c73('0xae')](_0x12a825[_0x14498d])){return ami[_0x7c73('0xaf')]({'action':_0x7c73('0xb0'),'channel':_0x12a825[_0x14498d][_0x7c73('0xb1')]})['catch'](function(_0x14d8cf){if(_0x14d8cf[_0x7c73('0x3d')]===_0x7c73('0xb2')){setTimeout(function(){if(_0x12a825[_0x14498d]&&_0x12a825[_0x14498d][_0x7c73('0x4b')]!==_0x7c73('0x79')){_0x30d242[_0x7c73('0xb3')](_0x30d242[_0x7c73('0x1d')][_0x12a825[_0x14498d]['queue']]);logger['error'](_0x7c73('0xb4'),_0x5e40f2,_0x14498d,_0x12a825[_0x14498d]['queue']);delete _0x12a825[_0x14498d];}if(_0x12a825[_0x14498d]&&_0x12a825[_0x14498d][_0x7c73('0x4b')]===_0x7c73('0x79')){_0x30d242['updateOriginated'](_0x30d242[_0x7c73('0x1e')][_0x12a825[_0x14498d][_0x7c73('0xb5')]]);logger[_0x7c73('0x97')]('[Dialer][checkChannel][ivr]',_0x5e40f2,_0x14498d,_0x12a825[_0x14498d][_0x7c73('0xb5')]);delete _0x12a825[_0x14498d];}},0x2328);}});}});}}};Dialer['prototype'][_0x7c73('0xb6')]=function(_0xa14e52){return BPromise[_0x7c73('0xb7')]()[_0x7c73('0xb8')](cmHopper['countReScheduled'](_0xa14e52))[_0x7c73('0xb9')](loggerCatch('[countReScheduled]\x20'));};Dialer[_0x7c73('0x18')]['checkIsBlackList']=function(_0x504143){return BPromise[_0x7c73('0xb7')]()[_0x7c73('0xb8')](cmHopperBlack[_0x7c73('0xba')](_0x504143))[_0x7c73('0xb9')](loggerCatch(_0x7c73('0xbb')));};Dialer['prototype']['checkIsBlackListIvr']=function(_0x3d6970){return BPromise[_0x7c73('0xb7')]()[_0x7c73('0xb8')](cmHopperBlack[_0x7c73('0xbc')](_0x3d6970))[_0x7c73('0xb9')](loggerCatch(_0x7c73('0xbd')));};Dialer[_0x7c73('0x18')]['averageHandleTime']=function(_0x5d3eaa){return BPromise[_0x7c73('0xb7')]()[_0x7c73('0xb8')](cmHopperHistory[_0x7c73('0xbe')](_0x5d3eaa))[_0x7c73('0xb9')](loggerCatch(_0x7c73('0xbf')));};Dialer[_0x7c73('0x18')][_0x7c73('0xc0')]=function(_0x35a6bb){return BPromise[_0x7c73('0xb7')]()[_0x7c73('0xb8')](cmHopper[_0x7c73('0xc0')](_0x35a6bb))[_0x7c73('0xb9')](loggerCatch('[rescheduleContact]\x20'));};Dialer['prototype']['unlockContact']=function(_0x4e6f13,_0x234bd5,_0x282d4f){return BPromise[_0x7c73('0xb7')]()[_0x7c73('0xb8')](cmHopper[_0x7c73('0xc1')](_0x4e6f13,_0x234bd5,_0x282d4f))[_0x7c73('0xb9')](loggerCatch(_0x7c73('0xc2')));};Dialer['prototype'][_0x7c73('0xc3')]=function(_0x18ea32,_0x583cbe,_0x5f69c7,_0x4a68a6,_0x114c39){return BPromise[_0x7c73('0xb7')]()[_0x7c73('0xb8')](cmHopper[_0x7c73('0xc3')](_0x18ea32,_0x583cbe,_0x5f69c7,_0x4a68a6))[_0x7c73('0xb9')](function(_0x5c4825){_0x114c39[_0x7c73('0xc4')]-=_0x5f69c7;_0x114c39[_0x7c73('0xc4')]=_0x114c39[_0x7c73('0xc4')]>0x0?_0x114c39['temp']:0x0;loggerCatch(_0x7c73('0xc5'))(_0x5c4825);});};Dialer[_0x7c73('0x18')][_0x7c73('0xc6')]=function(_0x195b2d,_0xdc043b,_0x34a7ac,_0x2531ad){return BPromise['resolve']()[_0x7c73('0xb8')](cmHopper['getContactDialerIvr'](_0x195b2d,_0xdc043b,_0x34a7ac))[_0x7c73('0xb9')](function(_0x2ec145){_0x2531ad[_0x7c73('0xc4')]-=_0xdc043b;_0x2531ad[_0x7c73('0xc4')]=_0x2531ad[_0x7c73('0xc4')]>0x0?_0x2531ad[_0x7c73('0xc4')]:0x0;loggerCatch(_0x7c73('0xc7'))(_0x2ec145);});};Dialer[_0x7c73('0x18')][_0x7c73('0xc8')]=function(_0x50a9c8){return BPromise['resolve']()[_0x7c73('0xb8')](voiceQueueRt['getVoiceQueueRtPauses'](_0x50a9c8))[_0x7c73('0xb9')](loggerCatch(_0x7c73('0xc9')));};Dialer[_0x7c73('0x18')][_0x7c73('0xca')]=function(_0x4281b6){return BPromise[_0x7c73('0xb7')]()[_0x7c73('0xb8')](cmHopper[_0x7c73('0xca')](_0x4281b6))['catch'](loggerCatch('[moveContactManagedDialer]\x20'));};Dialer[_0x7c73('0x18')][_0x7c73('0xcb')]=function(_0x22cafe){return BPromise[_0x7c73('0xb7')]()['then'](cmHopperHistory['createHistory'](_0x22cafe))['catch'](loggerCatch(_0x7c73('0xcc')));};Dialer[_0x7c73('0x18')][_0x7c73('0xb3')]=function(_0x46f25f){if(!_[_0x7c73('0x39')](_0x46f25f)&&_0x46f25f!==null){if(typeof _0x46f25f['originated']!==_0x7c73('0x9a')){if(_0x46f25f[_0x7c73('0x72')]>0x0){_0x46f25f[_0x7c73('0x72')]-=0x1;}else{logger[_0x7c73('0x97')](_0x7c73('0xcd'));}}}else{logger[_0x7c73('0x97')](_0x7c73('0xce'));}};Dialer['prototype'][_0x7c73('0xcf')]=function(_0x3da94c,_0x11b727){var _0x251bdb=this;return function(_0x18c201){_0x251bdb[_0x7c73('0xb3')](_0x11b727);logger[_0x7c73('0x97')](_0x3da94c,util[_0x7c73('0x99')](_0x18c201,{'showHidden':![],'depth':null}));};};Dialer[_0x7c73('0x18')][_0x7c73('0xd0')]=function(_0xf09a83,_0x570d3c,_0x1be8b0){var _0x4bafd0={'state':0x19,'statedesc':'notFound'};this[_0x7c73('0xb3')](_0x570d3c);this[_0x7c73('0xd1')](_[_0x7c73('0x8f')](_0x4bafd0,_[_0x7c73('0xd2')](_0x1be8b0,[_0x7c73('0xd3'),_0x7c73('0xd4'),_0x7c73('0xd5'),_0x7c73('0xd6'),_0x7c73('0xd7')])),_0x7c73('0xd8'),'[emptyContact]');logger['error'](_0xf09a83);};Dialer[_0x7c73('0x18')][_0x7c73('0xd9')]=function(_0xee7292){return _0xee7292===_0x7c73('0xda');};Dialer['prototype']['isTrunkReachable']=function(_0xee7f95){return!_['isUndefined'](_0xee7f95)&&_0xee7f95&&!_['isUndefined'](_0xee7f95[_0x7c73('0x3b')])&&!_[_0x7c73('0x39')](_0xee7f95[_0x7c73('0xdb')])&&_0xee7f95[_0x7c73('0xdb')]&&(this[_0x7c73('0x1f')][util[_0x7c73('0x77')](_0x7c73('0xdc'),_0xee7f95[_0x7c73('0x3b')])][_0x7c73('0xb0')]===_0x7c73('0xdd')||this[_0x7c73('0x1f')][util['format'](_0x7c73('0xdc'),_0xee7f95[_0x7c73('0x3b')])][_0x7c73('0xb0')]===_0x7c73('0xde'));};Dialer[_0x7c73('0x18')]['saveInDb']=function(_0x7caf4e,_0x3e06af,_0x2689bd){this['createHistory'](_0x7caf4e)[_0x7c73('0xb9')](loggerCatch(_0x3e06af));this[_0x7c73('0xca')](_0x7caf4e)['catch'](loggerCatch(_0x2689bd));};Dialer['prototype'][_0x7c73('0xdf')]=function(_0xcd0ad0){var _0x23cc93=this[_0x7c73('0x23')][_0xcd0ad0['uniqueid']];var _0x58d6ba;if(!_[_0x7c73('0xae')](_0xcd0ad0)&&!_[_0x7c73('0xae')](_0xcd0ad0[_0x7c73('0xe0')])&&!_['isNil'](_0xcd0ad0[_0x7c73('0xe0')]['amdstatus'])&&_0xcd0ad0[_0x7c73('0xe1')]==='xcally-motion-dialer'&&_0x23cc93){if(_0x23cc93[_0x7c73('0x4b')]!==_0x7c73('0x79')&&this['voiceQueues'][_0x23cc93[_0x7c73('0xb5')]][_0x7c73('0xe2')]&&_0xcd0ad0[_0x7c73('0xe3')]==='HANGUP'){delete this[_0x7c73('0x23')][_0xcd0ad0[_0x7c73('0xe4')]];this[_0x7c73('0xb3')](this[_0x7c73('0x1d')][_0x23cc93[_0x7c73('0xb5')]]);this[_0x7c73('0x1d')][_0x23cc93['queue']][_0x7c73('0x5e')]+=0x1;this['voiceQueues'][_0x23cc93[_0x7c73('0xb5')]][_0x7c73('0xe5')]+=0x1;_0x58d6ba=new Hangup(_0x23cc93,_0xcd0ad0);_0x58d6ba[_0x7c73('0xa7')]=0x12;_0x58d6ba['statedesc']='HangupInAMD';_0x58d6ba[_0x7c73('0xe6')]=_0x7c73('0xe7');ami[_0x7c73('0x4a')](_0x7c73('0xe8'),ut[_0x7c73('0xe9')](_0x58d6ba,_0x7c73('0xea')));this[_0x7c73('0xd1')](_0x58d6ba,_0x7c73('0xeb'),_0x7c73('0xec'));}if(_0x23cc93['type']!==_0x7c73('0x79')&&this[_0x7c73('0x1d')][_0x23cc93[_0x7c73('0xb5')]][_0x7c73('0xe2')]&&_0xcd0ad0[_0x7c73('0xe3')]===_0x7c73('0xed')){var _0x3b598d=this;return new BPromise(function(_0x4c86a9,_0x2ce949){delete _0x3b598d[_0x7c73('0x23')][_0xcd0ad0[_0x7c73('0xe4')]];_0x3b598d[_0x7c73('0xb3')](_0x3b598d[_0x7c73('0x1d')][_0x23cc93['queue']]);_0x3b598d[_0x7c73('0x1d')][_0x23cc93[_0x7c73('0xb5')]][_0x7c73('0x5e')]+=0x1;_0x3b598d[_0x7c73('0x1d')][_0x23cc93['queue']][_0x7c73('0xe5')]+=0x1;var _0x799cfe=_0x3b598d[_0x7c73('0x1d')][_0x23cc93[_0x7c73('0xb5')]];var _0x593695=new Hangup(_0x23cc93,_0xcd0ad0);_0x593695[_0x7c73('0xa7')]=0x13;_0x593695[_0x7c73('0xee')]='Machine';_0x593695[_0x7c73('0xe6')]=_0x7c73('0xe7');_0x593695[_0x7c73('0xef')]+=0x1;_0x593695['countglobal']+=0x1;_0x593695['amd']=!![];ami['emit'](_0x7c73('0xe8'),ut['buildObj'](_0x593695,'amd'));_0x3b598d[_0x7c73('0xcb')](_0x593695)[_0x7c73('0xb9')](loggerCatch('[syncAgentComplete][createHistory][0]'));if(_0x593695[_0x7c73('0xf0')]+_0x593695['countcongestionretry']+_0x593695['countnoanswerretry']+_0x593695['countnosuchnumberretry']+_0x593695[_0x7c73('0xf1')]+_0x593695[_0x7c73('0xf2')]+_0x593695['countmachineretry']+_0x593695['countagentrejectretry']>=_0x799cfe[_0x7c73('0xf3')]){_0x3b598d[_0x7c73('0xf4')](_0x593695,_0x4c86a9,_0x2ce949,_0x7c73('0xf5'));}else{if(_0x593695[_0x7c73('0xef')]>=_0x799cfe[_0x7c73('0xf6')]){_0x3b598d[_0x7c73('0xf7')](_0x593695,_0x4c86a9,_0x2ce949,_0x7c73('0xf8'));}else{_0x3b598d['rescheduleContact']({'active':![],'countmachineretry':_0x593695[_0x7c73('0xef')],'scheduledat':moment()['add'](_0x799cfe[_0x7c73('0xf9')],'minutes')['format'](_0x7c73('0xfa')),'ContactId':_0x593695[_0x7c73('0xd3')],'ListId':_0x593695[_0x7c73('0xd4')],'VoiceQueueId':_0x593695[_0x7c73('0xd6')]||undefined,'CampaignId':_0x593695[_0x7c73('0xd7')]||undefined})[_0x7c73('0xb9')](loggerCatch(_0x7c73('0xfb')));_0x4c86a9({'reschedule':0x1});}}});}if(_0x23cc93['type']===_0x7c73('0x79')&&this[_0x7c73('0x1e')][_0x23cc93[_0x7c73('0xb5')]][_0x7c73('0xe2')]&&_0xcd0ad0[_0x7c73('0xe3')]===_0x7c73('0xfc')){delete this[_0x7c73('0x23')][_0xcd0ad0[_0x7c73('0xe4')]];this['updateOriginated'](this[_0x7c73('0x1e')][_0x23cc93[_0x7c73('0xb5')]]);_0x58d6ba=new Hangup(_0x23cc93,_0xcd0ad0);_0x58d6ba[_0x7c73('0xa7')]=0x12;_0x58d6ba[_0x7c73('0xee')]=_0x7c73('0xfd');_0x58d6ba[_0x7c73('0xe6')]=_0x7c73('0xe7');ami[_0x7c73('0x4a')]('custom:amd',ut[_0x7c73('0xe9')](_0x58d6ba,_0x7c73('0xea')));this['saveInDb'](_0x58d6ba,'[syncHangupInAMDIvr][createHistory]',_0x7c73('0xfe'));}if(_0x23cc93[_0x7c73('0x4b')]==='ivr'&&this[_0x7c73('0x1e')][_0x23cc93['queue']][_0x7c73('0xe2')]&&_0xcd0ad0[_0x7c73('0xe3')]===_0x7c73('0xed')){var _0x3b598d=this;return new BPromise(function(_0x4f862f,_0x2c74f5){delete _0x3b598d[_0x7c73('0x23')][_0xcd0ad0[_0x7c73('0xe4')]];_0x3b598d['updateOriginated'](_0x3b598d[_0x7c73('0x1e')][_0x23cc93[_0x7c73('0xb5')]]);_0x3b598d[_0x7c73('0x1e')][_0x23cc93['queue']]['outboundAnswerCallsDay']+=0x1;_0x3b598d[_0x7c73('0x1e')][_0x23cc93[_0x7c73('0xb5')]][_0x7c73('0xe5')]+=0x1;var _0x1a3725=_0x3b598d[_0x7c73('0x1e')][_0x23cc93[_0x7c73('0xb5')]];var _0x46db62=new Hangup(_0x23cc93,_0xcd0ad0);_0x46db62[_0x7c73('0xa7')]=0x13;_0x46db62[_0x7c73('0xee')]=_0x7c73('0xff');_0x46db62[_0x7c73('0xe6')]=_0x7c73('0xe7');_0x46db62['countmachineretry']+=0x1;_0x46db62[_0x7c73('0x100')]+=0x1;_0x46db62['amd']=!![];ami[_0x7c73('0x4a')](_0x7c73('0xe8'),ut[_0x7c73('0xe9')](_0x46db62,_0x7c73('0xea')));_0x3b598d[_0x7c73('0xcb')](_0x46db62)['catch'](loggerCatch(_0x7c73('0x101')));if(_0x46db62[_0x7c73('0xf0')]+_0x46db62['countcongestionretry']+_0x46db62['countnoanswerretry']+_0x46db62['countnosuchnumberretry']+_0x46db62[_0x7c73('0xf1')]+_0x46db62[_0x7c73('0xf2')]+_0x46db62[_0x7c73('0xef')]+_0x46db62[_0x7c73('0x102')]>=_0x1a3725[_0x7c73('0xf3')]){_0x3b598d[_0x7c73('0xf4')](_0x46db62,_0x4f862f,_0x2c74f5,_0x7c73('0xf5'));}else{if(_0x46db62[_0x7c73('0xef')]>=_0x1a3725[_0x7c73('0xf6')]){_0x3b598d[_0x7c73('0xf7')](_0x46db62,_0x4f862f,_0x2c74f5,_0x7c73('0xf8'));}else{_0x3b598d[_0x7c73('0xc0')]({'active':![],'countmachineretry':_0x46db62['countmachineretry'],'scheduledat':moment()[_0x7c73('0x103')](_0x1a3725[_0x7c73('0xf9')],'minutes')[_0x7c73('0x77')]('YYYY-MM-DD\x20HH:mm:ss'),'ContactId':_0x46db62[_0x7c73('0xd3')],'ListId':_0x46db62[_0x7c73('0xd4')],'VoiceQueueId':_0x46db62[_0x7c73('0xd6')]||undefined,'CampaignId':_0x46db62[_0x7c73('0xd7')]||undefined})[_0x7c73('0xb9')](loggerCatch('[rescheduleContact][Machine]'));_0x4f862f({'reschedule':0x1});}}});}}};Dialer[_0x7c73('0x18')][_0x7c73('0x32')]=function(_0xb10da5){var _0x14d839=this[_0x7c73('0x23')][_0xb10da5['uniqueid']];var _0x5b5f78=this;var _0x1e56e4;if(_0x14d839&&_0x14d839['type']===_0x7c73('0x79')){delete this[_0x7c73('0x23')][_0xb10da5['uniqueid']];this['updateOriginated'](this[_0x7c73('0x1e')][_0x14d839['queue']]);this['campaigns'][_0x14d839[_0x7c73('0xb5')]][_0x7c73('0x104')]+=0x1;_0x1e56e4=new Hangup(_0x14d839,_0xb10da5);this[_0x7c73('0xcb')](_0x1e56e4)['catch'](loggerCatch(_0x7c73('0x105')));this[_0x7c73('0xca')](_0x1e56e4)[_0x7c73('0xb9')](loggerCatch('[syncHangupIvr]'));}if(_0x14d839&&_0x14d839[_0x7c73('0x4b')]!==_0x7c73('0x79')&&isNotNull(this[_0x7c73('0x1d')][_0x14d839[_0x7c73('0xb5')]]['dialQueueProject'])){delete this[_0x7c73('0x23')][_0xb10da5[_0x7c73('0xe4')]];this['updateOriginated'](this[_0x7c73('0x1d')][_0x14d839['queue']]);this['voiceQueues'][_0x14d839[_0x7c73('0xb5')]][_0x7c73('0x5e')]+=0x1;this['voiceQueues'][_0x14d839[_0x7c73('0xb5')]][_0x7c73('0xe5')]+=0x1;_0x1e56e4=new Hangup(_0x14d839,_0xb10da5);_0x1e56e4[_0x7c73('0xa7')]=0x10;_0x1e56e4['statedesc']=_0x7c73('0x106');_0x1e56e4[_0x7c73('0xe6')]=_0x7c73('0x107');this[_0x7c73('0xcb')](_0x1e56e4)[_0x7c73('0xb9')](loggerCatch(_0x7c73('0x105')));this['moveContactManagedDialer'](_0x1e56e4)['catch'](loggerCatch('[syncHangupIvr]'));}if(_0x14d839&&_0x14d839[_0x7c73('0x4b')]!==_0x7c73('0x79')&&!isNotNull(this[_0x7c73('0x1d')][_0x14d839[_0x7c73('0xb5')]][_0x7c73('0x108')])){delete this[_0x7c73('0x23')][_0xb10da5[_0x7c73('0xe4')]];this[_0x7c73('0xb3')](this[_0x7c73('0x1d')][_0x14d839['queue']]);this['voiceQueues'][_0x14d839[_0x7c73('0xb5')]]['outboundUnknownCallsDay']+=0x1;_0x1e56e4=new Hangup(_0x14d839,_0xb10da5);_0x1e56e4[_0x7c73('0xa7')]=0xc;_0x1e56e4['statedesc']=_0xb10da5[_0x7c73('0x109')];_0x1e56e4[_0x7c73('0xe6')]='Unknow';this[_0x7c73('0xcb')](_0x1e56e4)[_0x7c73('0xb9')](loggerCatch(_0x7c73('0x105')));this[_0x7c73('0xca')](_0x1e56e4)['catch'](loggerCatch(_0x7c73('0x10a')));}};Dialer[_0x7c73('0x18')][_0x7c73('0x10b')]=function(_0x35e95c){var _0x529aa1=this[_0x7c73('0x23')][_0x35e95c[_0x7c73('0xe4')]];var _0x5bc3bb=this;if(this[_0x7c73('0x1d')][_0x35e95c[_0x7c73('0xb5')]]){if(_0x529aa1&&_0x529aa1['type']!==_0x7c73('0x79')){delete this[_0x7c73('0x23')][_0x35e95c['uniqueid']];this[_0x7c73('0x1d')][_0x35e95c[_0x7c73('0xb5')]][_0x7c73('0x5e')]+=0x1;var _0xe93ba6=new AgentComplete(_0x529aa1,_0x35e95c);if(_0x35e95c[_0x7c73('0x10c')]===_0x7c73('0x10d')){_0xe93ba6[_0x7c73('0x10e')]=this['voiceQueues'][_0x35e95c[_0x7c73('0xb5')]][_0x7c73('0x10f')]&&this[_0x7c73('0x1d')][_0x35e95c[_0x7c73('0xb5')]][_0x7c73('0x110')]?moment()[_0x7c73('0x77')](_0x7c73('0xfa')):undefined;}this[_0x7c73('0xcb')](_0xe93ba6)[_0x7c73('0xb9')](loggerCatch('[syncAgentComplete][createHistory]'));this['moveContactManagedDialer'](_0xe93ba6)[_0x7c73('0xb9')](loggerCatch('[syncAgentComplete]'));}}};Dialer[_0x7c73('0x18')]['syncAgentConnect']=function(_0xb7562d){if(this['voiceQueues'][_0xb7562d[_0x7c73('0xb5')]]){if(this[_0x7c73('0x23')][_0xb7562d['uniqueid']]&&this[_0x7c73('0x23')][_0xb7562d[_0x7c73('0xe4')]][_0x7c73('0x4b')]!==_0x7c73('0x79')){this[_0x7c73('0xb3')](this[_0x7c73('0x1d')][_0xb7562d[_0x7c73('0xb5')]]);this[_0x7c73('0x23')][_0xb7562d[_0x7c73('0xe4')]][_0x7c73('0x111')]=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');}}};Dialer[_0x7c73('0x18')]['queueCallerAbandonCreateState']=function(_0x168ed0){this[_0x7c73('0xcb')](_0x168ed0)[_0x7c73('0xb9')](loggerCatch(_0x7c73('0x112')));this[_0x7c73('0xca')](_0x168ed0)[_0x7c73('0xb9')](loggerCatch(_0x7c73('0x113')));};Dialer['prototype'][_0x7c73('0x2d')]=function(_0x1d9224){var _0x1a04e3=this['uniqueId'][_0x1d9224[_0x7c73('0xe4')]];var _0x3abf75=this;if(this[_0x7c73('0x1d')][_0x1d9224[_0x7c73('0xb5')]]){if(_0x1a04e3&&_0x1a04e3[_0x7c73('0x4b')]!==_0x7c73('0x79')){delete this[_0x7c73('0x23')][_0x1d9224[_0x7c73('0xe4')]];this[_0x7c73('0xb3')](this[_0x7c73('0x1d')][_0x1d9224['queue']]);_0x1a04e3[_0x7c73('0x114')]=moment()[_0x7c73('0x77')](_0x7c73('0xfa'));var _0x96d2=new QueueCallerAbandon(_0x1a04e3,_0x1d9224);if(getSeconds(_0x1a04e3['droptime'],_0x1a04e3['responsetime'])>=_0x1a04e3[_0x7c73('0x115')]){this[_0x7c73('0x1d')][_0x1d9224[_0x7c73('0xb5')]][_0x7c73('0x6b')]+=0x1;this[_0x7c73('0x1d')][_0x1d9224[_0x7c73('0xb5')]][_0x7c73('0x116')]+=0x1;this[_0x7c73('0x1d')][_0x1d9224['queue']]['predictiveIntervalErlangCallsDroppedCalls']+=0x1;_0x96d2['state']=0xa;_0x96d2[_0x7c73('0xee')]=_0x7c73('0x117');_0x96d2[_0x7c73('0x118')]=_0x7c73('0x119');_0x96d2[_0x7c73('0x10e')]=this[_0x7c73('0x1d')][_0x1d9224[_0x7c73('0xb5')]][_0x7c73('0x10f')]?moment()[_0x7c73('0x77')](_0x7c73('0xfa')):undefined;_0x96d2['countdropretry']+=0x1;_0x96d2[_0x7c73('0x100')]+=0x1;if(_0x96d2[_0x7c73('0xf1')]>=this[_0x7c73('0x1d')][_0x1d9224[_0x7c73('0xb5')]][_0x7c73('0x11a')]){this[_0x7c73('0x11b')](_0x96d2);}else{this[_0x7c73('0xc0')]({'active':![],'countdropretry':_0x96d2['countdropretry'],'scheduledat':moment()[_0x7c73('0x103')](this[_0x7c73('0x1d')][_0x1d9224[_0x7c73('0xb5')]][_0x7c73('0x11c')],_0x7c73('0x11d'))[_0x7c73('0x77')]('YYYY-MM-DD\x20HH:mm:ss'),'ContactId':_0x1a04e3[_0x7c73('0xd3')],'ListId':_0x1a04e3[_0x7c73('0xd4')],'VoiceQueueId':_0x1a04e3['VoiceQueueId']||undefined,'CampaignId':_0x1a04e3['CampaignId']||undefined})[_0x7c73('0xb9')](loggerCatch('[rescheduleContact][Drop]'));var _0x52c1f0=new History(_0x96d2);_0x52c1f0[_0x7c73('0xa7')]=0xa;_0x52c1f0[_0x7c73('0xee')]=_0x7c73('0x117');_0x52c1f0['starttime']=moment()[_0x7c73('0x77')]('YYYY-MM-DD\x20HH:mm:ss');_0x52c1f0[_0x7c73('0xa8')]=_0x52c1f0[_0x7c73('0xa9')];_0x52c1f0[_0x7c73('0x11e')]=_0x96d2[_0x7c73('0x11e')];_0x52c1f0['calleridnum']=_0x96d2[_0x7c73('0x11f')];this[_0x7c73('0xcb')](_0x52c1f0)[_0x7c73('0xb9')](loggerCatch(_0x7c73('0x120')));}}else{this[_0x7c73('0x1d')][_0x1d9224[_0x7c73('0xb5')]]['predictiveIntervalDroppedCallsCallersExit']+=0x1;this['voiceQueues'][_0x1d9224['queue']][_0x7c73('0x63')]+=0x1;_0x96d2['state']=0xb;_0x96d2[_0x7c73('0xee')]=_0x7c73('0x121');_0x96d2[_0x7c73('0x118')]=_0x7c73('0x122');_0x96d2['countabandonedretry']+=0x1;_0x96d2[_0x7c73('0x100')]+=0x1;if(_0x96d2[_0x7c73('0xf2')]>=this[_0x7c73('0x1d')][_0x1d9224[_0x7c73('0xb5')]]['dialAbandonedMaxRetry']){this[_0x7c73('0x11b')](_0x96d2);}else{this[_0x7c73('0xc0')]({'active':![],'countabandonedretry':_0x96d2[_0x7c73('0xf2')],'scheduledat':moment()[_0x7c73('0x103')](this[_0x7c73('0x1d')][_0x1d9224[_0x7c73('0xb5')]]['dialAbandonedRetryFrequency'],'minutes')[_0x7c73('0x77')](_0x7c73('0xfa')),'ContactId':_0x1a04e3[_0x7c73('0xd3')],'ListId':_0x1a04e3[_0x7c73('0xd4')],'VoiceQueueId':_0x1a04e3[_0x7c73('0xd6')]||undefined,'CampaignId':_0x1a04e3[_0x7c73('0xd7')]||undefined})['catch'](loggerCatch(_0x7c73('0x123')));var _0x52c1f0=new History(_0x96d2);_0x52c1f0[_0x7c73('0xa7')]=0xb;_0x52c1f0[_0x7c73('0xee')]=_0x7c73('0x121');_0x52c1f0[_0x7c73('0xa9')]=moment()[_0x7c73('0x77')](_0x7c73('0xfa'));_0x52c1f0[_0x7c73('0xa8')]=_0x52c1f0[_0x7c73('0xa9')];_0x52c1f0[_0x7c73('0x11e')]=_0x96d2[_0x7c73('0x11e')];_0x52c1f0[_0x7c73('0x11f')]=_0x96d2[_0x7c73('0x11f')];this[_0x7c73('0xcb')](_0x52c1f0)[_0x7c73('0xb9')](loggerCatch(_0x7c73('0x124')));}}}}};Dialer[_0x7c73('0x18')][_0x7c73('0x33')]=function(_0x38f353){if(this[_0x7c73('0x21')][_0x38f353[_0x7c73('0xe4')]]){this['actions'][_0x38f353[_0x7c73('0xe4')]][_0x7c73('0xb1')]=_0x38f353[_0x7c73('0xb1')];}if(this['uniqueId'][_0x38f353['uniqueid']]){this[_0x7c73('0x23')][_0x38f353['uniqueid']]['channel']=_0x38f353[_0x7c73('0xb1')];}};Dialer['prototype'][_0x7c73('0x36')]=function(_0x5f4646){if(strategy[this[_0x7c73('0x1d')][this['actions'][_0x5f4646[_0x7c73('0x125')]][_0x7c73('0xb5')]][_0x7c73('0x4d')]]===_0x7c73('0x17')){if(this[_0x7c73('0x21')][_0x5f4646['actionid']]&&_[_0x7c73('0xae')](this[_0x7c73('0x21')][_0x5f4646['actionid']]['locked'])&&_0x5f4646['status']==='1'&&_0x5f4646[_0x7c73('0x126')]==='0'){if(this['agents'][_0x5f4646[_0x7c73('0x127')]]){if(!this['agents'][_0x5f4646[_0x7c73('0x127')]]['locked']){this[_0x7c73('0x128')][_0x5f4646[_0x7c73('0x127')]]['locked']=!![];this[_0x7c73('0x21')][_0x5f4646['actionid']]['locked']=!![];this[_0x7c73('0x21')][_0x5f4646[_0x7c73('0x125')]][_0x7c73('0x127')]=_0x5f4646[_0x7c73('0x127')];}}}}else if((strategy[this['voiceQueues'][this[_0x7c73('0x21')][_0x5f4646[_0x7c73('0x125')]][_0x7c73('0xb5')]][_0x7c73('0x4d')]]||_0x7c73('0x129'))===_0x7c73('0x129')){if(this[_0x7c73('0x21')][_0x5f4646[_0x7c73('0x125')]]){if(this[_0x7c73('0x128')][_0x5f4646[_0x7c73('0x127')]]){this[_0x7c73('0x21')][_0x5f4646[_0x7c73('0x125')]][_0x7c73('0x127')]=_0x5f4646[_0x7c73('0x127')];if(_['isNil'](this[_0x7c73('0x27')][this[_0x7c73('0x21')][_0x5f4646['actionid']][_0x7c73('0xb5')]])){this['queueBooked'][this[_0x7c73('0x21')][_0x5f4646['actionid']][_0x7c73('0xb5')]]=[];}this['queueBooked'][this[_0x7c73('0x21')][_0x5f4646[_0x7c73('0x125')]][_0x7c73('0xb5')]][_0x7c73('0x12a')](_[_0x7c73('0x8f')](_['pick'](this['actions'][_0x5f4646[_0x7c73('0x125')]],[_0x7c73('0x12b'),_0x7c73('0x127')]),{'status':_0x5f4646[_0x7c73('0xb0')],'paused':_0x5f4646[_0x7c73('0x126')]}));}}}};function unlockQueueStatus(_0x33de19,_0x57bf67){setTimeout(function(){if(_['isUndefined'](_0x33de19[_0x7c73('0x12c')])){loggerBooked[_0x7c73('0x97')]('[unlockQueueStatus][undefined]',_0x57bf67);}_0x33de19[_0x7c73('0x12c')]=!![];loggerBooked[_0x7c73('0x7b')](_0x7c73('0x12d'),_0x57bf67,JSON[_0x7c73('0x47')](_[_0x7c73('0xd2')](_0x33de19,['name',_0x7c73('0x12c')])));},0x1f3);}Dialer[_0x7c73('0x18')][_0x7c73('0x38')]=function(_0x3ff309){var _0x2a96e7=this;var _0x4cdf5d=_0x2a96e7[_0x7c73('0x1d')][_0x2a96e7[_0x7c73('0x21')][_0x3ff309[_0x7c73('0x125')]]['queue']];if(strategy[this[_0x7c73('0x1d')][this['actions'][_0x3ff309[_0x7c73('0x125')]][_0x7c73('0xb5')]]['strategy']]===_0x7c73('0x17')){if(this['actions'][_0x3ff309[_0x7c73('0x125')]]&&this[_0x7c73('0x21')][_0x3ff309[_0x7c73('0x125')]]['stateinterface']){this['preview']['run'](this['actions'][_0x3ff309[_0x7c73('0x125')]][_0x7c73('0x12b')],this['actions'][_0x3ff309['actionid']][_0x7c73('0x127')])[_0x7c73('0xb9')](function(_0x2e70ae){logger['error'](_0x7c73('0x12e'),util['inspect'](_0x2e70ae,{'showHidden':![],'depth':null}));})[_0x7c73('0x1b')](function(){_0x2a96e7[_0x7c73('0xb3')](_0x2a96e7[_0x7c73('0x1d')][_0x2a96e7[_0x7c73('0x21')][_0x3ff309[_0x7c73('0x125')]][_0x7c73('0xb5')]]);_0x2a96e7[_0x7c73('0x128')][_0x2a96e7[_0x7c73('0x21')][_0x3ff309[_0x7c73('0x125')]][_0x7c73('0x127')]]['locked']=![];delete _0x2a96e7[_0x7c73('0x21')][_0x3ff309[_0x7c73('0x125')]];unlockQueueStatus(_0x4cdf5d);});}else{this['updateOriginated'](this[_0x7c73('0x1d')][this[_0x7c73('0x21')][_0x3ff309['actionid']]['queue']]);this[_0x7c73('0xc0')]({'active':![],'ContactId':this['actions'][_0x3ff309['actionid']]['ContactId'],'ListId':this[_0x7c73('0x21')][_0x3ff309[_0x7c73('0x125')]][_0x7c73('0xd4')],'VoiceQueueId':this['actions'][_0x3ff309[_0x7c73('0x125')]][_0x7c73('0xd6')]||undefined,'CampaignId':this['actions'][_0x3ff309[_0x7c73('0x125')]][_0x7c73('0xd7')]||undefined})[_0x7c73('0xb9')](loggerCatch('[unlock][syncQueueStatusComplete]'));delete this[_0x7c73('0x21')][_0x3ff309[_0x7c73('0x125')]];unlockQueueStatus(_0x4cdf5d);}}else if((strategy[this['voiceQueues'][this[_0x7c73('0x21')][_0x3ff309[_0x7c73('0x125')]][_0x7c73('0xb5')]][_0x7c73('0x4d')]]||_0x7c73('0x129'))==='rrmemory'){var _0x2a35b5;if(this[_0x7c73('0x21')][_0x3ff309[_0x7c73('0x125')]]&&!_['isEmpty'](this[_0x7c73('0x27')][this[_0x7c73('0x21')][_0x3ff309['actionid']][_0x7c73('0xb5')]])){if(this['queueBookedRR'][_0x2a96e7['actions'][_0x3ff309[_0x7c73('0x125')]][_0x7c73('0xb5')]]){this[_0x7c73('0x28')][_0x2a96e7[_0x7c73('0x21')][_0x3ff309[_0x7c73('0x125')]][_0x7c73('0xb5')]]=this['queueBookedRR'][this[_0x7c73('0x21')][_0x3ff309[_0x7c73('0x125')]][_0x7c73('0xb5')]]?this[_0x7c73('0x28')][this[_0x7c73('0x21')][_0x3ff309[_0x7c73('0x125')]][_0x7c73('0xb5')]]:this[_0x7c73('0x27')][this[_0x7c73('0x21')][_0x3ff309[_0x7c73('0x125')]][_0x7c73('0xb5')]]?this['queueBooked'][this[_0x7c73('0x21')][_0x3ff309[_0x7c73('0x125')]][_0x7c73('0xb5')]][_0x7c73('0x12f')]||0x0:0x0;}this['queueBooked'][this[_0x7c73('0x21')][_0x3ff309[_0x7c73('0x125')]]['queue']][_0x7c73('0x12f')]=this[_0x7c73('0x28')][this[_0x7c73('0x21')][_0x3ff309[_0x7c73('0x125')]][_0x7c73('0xb5')]];for(var _0x82f9b3=0x0;_0x82f9b3<this[_0x7c73('0x27')][this['actions'][_0x3ff309['actionid']]['queue']][_0x7c73('0x130')];_0x82f9b3+=0x1){_0x2a35b5=rr(this[_0x7c73('0x27')][this['actions'][_0x3ff309[_0x7c73('0x125')]][_0x7c73('0xb5')]]);this[_0x7c73('0x28')][_0x2a96e7[_0x7c73('0x21')][_0x3ff309[_0x7c73('0x125')]]['queue']]=this[_0x7c73('0x27')][this['actions'][_0x3ff309[_0x7c73('0x125')]][_0x7c73('0xb5')]]['_rr'];if(_0x2a35b5['status']==='1'&&_0x2a35b5[_0x7c73('0x126')]==='0'){break;}}if(!_['isNil'](_0x2a35b5)){this['agents'][_0x2a35b5[_0x7c73('0x127')]][_0x7c73('0x131')]=_[_0x7c73('0x39')](this[_0x7c73('0x128')][_0x2a35b5[_0x7c73('0x127')]][_0x7c73('0x131')])?!![]:this[_0x7c73('0x128')][_0x2a35b5['stateinterface']][_0x7c73('0x131')];}loggerBooked[_0x7c73('0x7b')](_0x7c73('0x132'),_0x3ff309['actionid'],'Agent:\x20',JSON[_0x7c73('0x47')](_[_0x7c73('0xd2')](this['agents'][_0x2a35b5[_0x7c73('0x127')]],[_0x7c73('0x3b'),_0x7c73('0x131')])),_0x7c73('0x133'),JSON['stringify'](_0x2a35b5[_0x7c73('0x12b')]));if(!_[_0x7c73('0xae')](_0x2a35b5)&&_0x2a35b5[_0x7c73('0xb0')]==='1'&&_0x2a35b5[_0x7c73('0x126')]==='0'&&this[_0x7c73('0x128')][_0x2a35b5[_0x7c73('0x127')]]['unlockRR']){this[_0x7c73('0x128')][_0x2a35b5[_0x7c73('0x127')]][_0x7c73('0x131')]=![];this[_0x7c73('0x27')][_0x2a96e7[_0x7c73('0x21')][_0x3ff309[_0x7c73('0x125')]][_0x7c73('0xb5')]]=[];this['preview'][_0x7c73('0x134')](_0x2a35b5[_0x7c73('0x12b')],_0x2a35b5[_0x7c73('0x127')])[_0x7c73('0xb9')](function(_0x418f60){logger['error']('[Catch][Preview][syncQueueStatusComplete]',util[_0x7c73('0x99')](_0x418f60,{'showHidden':![],'depth':null}));})['finally'](function(){_0x2a96e7['updateOriginated'](_0x2a96e7[_0x7c73('0x1d')][_0x2a96e7[_0x7c73('0x21')][_0x3ff309[_0x7c73('0x125')]]['queue']]);setTimeout(function(){_0x2a96e7['agents'][_0x2a35b5['stateinterface']][_0x7c73('0x131')]=!![];loggerBooked[_0x7c73('0x7b')]('[booked][RR][finaly]',_0x3ff309['actionid'],_0x7c73('0x135'),JSON[_0x7c73('0x47')](_['pick'](_0x2a96e7[_0x7c73('0x128')][_0x2a35b5['stateinterface']],[_0x7c73('0x3b'),_0x7c73('0x131')])),_0x7c73('0x133'),JSON[_0x7c73('0x47')](_0x2a35b5[_0x7c73('0x12b')]));},0xc7);delete _0x2a96e7[_0x7c73('0x21')][_0x3ff309[_0x7c73('0x125')]];unlockQueueStatus(_0x4cdf5d,_0x3ff309['actionid']);});}else{loggerBooked['info'](_0x7c73('0x136'));this[_0x7c73('0xb3')](this['voiceQueues'][this[_0x7c73('0x21')][_0x3ff309['actionid']][_0x7c73('0xb5')]]);this[_0x7c73('0xc0')]({'active':![],'ContactId':this['actions'][_0x3ff309[_0x7c73('0x125')]][_0x7c73('0xd3')],'ListId':this[_0x7c73('0x21')][_0x3ff309[_0x7c73('0x125')]][_0x7c73('0xd4')],'VoiceQueueId':this[_0x7c73('0x21')][_0x3ff309[_0x7c73('0x125')]][_0x7c73('0xd6')]||undefined,'CampaignId':this[_0x7c73('0x21')][_0x3ff309[_0x7c73('0x125')]][_0x7c73('0xd7')]||undefined})[_0x7c73('0xb9')](loggerCatch('[unlock][syncQueueStatusComplete]'));delete this[_0x7c73('0x21')][_0x3ff309[_0x7c73('0x125')]];unlockQueueStatus(_0x4cdf5d);}}else{loggerBooked['info'](_0x7c73('0x137'));this['updateOriginated'](this['voiceQueues'][this['actions'][_0x3ff309[_0x7c73('0x125')]][_0x7c73('0xb5')]]);this[_0x7c73('0xc0')]({'active':![],'ContactId':this[_0x7c73('0x21')][_0x3ff309[_0x7c73('0x125')]][_0x7c73('0xd3')],'ListId':this[_0x7c73('0x21')][_0x3ff309[_0x7c73('0x125')]][_0x7c73('0xd4')],'VoiceQueueId':this['actions'][_0x3ff309[_0x7c73('0x125')]][_0x7c73('0xd6')]||undefined,'CampaignId':this[_0x7c73('0x21')][_0x3ff309[_0x7c73('0x125')]][_0x7c73('0xd7')]||undefined})[_0x7c73('0xb9')](loggerCatch(_0x7c73('0x138')));delete this[_0x7c73('0x21')][_0x3ff309[_0x7c73('0x125')]];unlockQueueStatus(_0x4cdf5d);}}else{loggerBooked[_0x7c73('0x7b')]('[booked][unlock3]');this[_0x7c73('0xb3')](this['voiceQueues'][this['actions'][_0x3ff309[_0x7c73('0x125')]][_0x7c73('0xb5')]]);this['rescheduleContact']({'active':![],'ContactId':this[_0x7c73('0x21')][_0x3ff309[_0x7c73('0x125')]]['ContactId'],'ListId':this[_0x7c73('0x21')][_0x3ff309[_0x7c73('0x125')]][_0x7c73('0xd4')],'VoiceQueueId':this[_0x7c73('0x21')][_0x3ff309[_0x7c73('0x125')]]['VoiceQueueId']||undefined,'CampaignId':this[_0x7c73('0x21')][_0x3ff309['actionid']]['CampaignId']||undefined})[_0x7c73('0xb9')](loggerCatch('[unlock3][syncQueueStatusComplete]'));delete this[_0x7c73('0x21')][_0x3ff309[_0x7c73('0x125')]];unlockQueueStatus(_0x4cdf5d);}};Dialer[_0x7c73('0x18')][_0x7c73('0x139')]=function(){var _0x1b95e1=this;setInterval(function(){_0x1b95e1['syncCampaigns']();},0x3e8);};Dialer[_0x7c73('0x18')][_0x7c73('0x13a')]=function(_0x384ece){var _0x2feed3=this;return function(){if(!_0x2feed3['isTrunkReachable'](_0x384ece[_0x7c73('0x75')])){if(!_0x2feed3[_0x7c73('0x13b')](_0x384ece[_0x7c73('0x13c')])){_0x384ece[_0x7c73('0x3d')]=_0x7c73('0x13d');throw _0x384ece[_0x7c73('0x3b')]+_0x7c73('0x13e');}}};};Dialer[_0x7c73('0x18')]['checkIfTime']=function(_0x38beac,_0xcd34da,_0x42c14f,_0x4c32b5){var _0xab5ef4=this;return function(){var _0x15d03a=!![];return _0xab5ef4[_0x7c73('0x13f')](_0x38beac,_0xcd34da,_0x42c14f,_0x4c32b5,_0x15d03a);};};Dialer[_0x7c73('0x18')][_0x7c73('0x140')]=function(_0x350ac7,_0x540f32,_0x56d7e7,_0x18a54d){var _0x1ed11b=this;return function(){var _0x4ef016=![];return _0x1ed11b[_0x7c73('0x13f')](_0x350ac7[_0x7c73('0x42')],_0x540f32,_0x56d7e7,_0x18a54d,_0x4ef016);};};Dialer[_0x7c73('0x18')][_0x7c73('0x13f')]=function(_0x408124,_0x32930d,_0x5bb64f,_0x3187f2,_0x4794e3){var _0x513838=[];return new BPromise(function(_0x44f1e9,_0x3ffb33){if(!isNotNull(_0x408124)){_0x3187f2[_0x7c73('0x3d')]=_0x7c73('0x40');return _0x3ffb33(msgResponse(_0x7c73('0x13f'),'Failure',_0x5bb64f+_0x7c73('0x141')));}if(_['isEmpty'](_0x408124)){_0x3187f2[_0x7c73('0x3d')]=_0x7c73('0x142');return _0x3ffb33(msgResponse(_0x7c73('0x13f'),_0x7c73('0x143'),_0x5bb64f+_0x7c73('0x144')));}if(_0x32930d&&_[_0x7c73('0x39')](config[_0x7c73('0x145')][_0x32930d])){_0x3187f2['message']=_0x7c73('0x146');return _0x3ffb33(msgResponse(_0x7c73('0x13f'),_0x7c73('0x143'),_0x5bb64f+_0x7c73('0x147')+_0x32930d));}if(_[_0x7c73('0x148')](_0x408124)){for(var _0xfb466f=0x0;_0xfb466f<_0x408124[_0x7c73('0x130')];_0xfb466f+=0x1){_0x513838['push'](ami['Action']({'action':_0x7c73('0x149'),'command':util['format'](_0x7c73('0x14a'),_0x408124[_0xfb466f]['interval'],!_[_0x7c73('0x39')](config[_0x7c73('0x145')][_0x32930d])?_0x32930d:'')})[_0x7c73('0xb8')](function(_0x41a2b5){return _0x41a2b5['content'][_0x7c73('0x14b')](_0x7c73('0x14c'))>=0x0;})[_0x7c73('0xb9')](myreject(_0x3ffb33)));}}else{_0x513838[_0x7c73('0x12a')](ami[_0x7c73('0xaf')]({'action':_0x7c73('0x149'),'command':util['format'](_0x7c73('0x14a'),_0x408124,!_[_0x7c73('0x39')](config[_0x7c73('0x145')][_0x32930d])?_0x32930d:'')})[_0x7c73('0xb8')](function(_0xb4b3ca){return _0xb4b3ca['content']['indexOf']('true')>=0x0;})[_0x7c73('0xb9')](myreject(_0x3ffb33)));}BPromise[_0x7c73('0x14d')](_0x513838)['then'](function(_0x16452a){var _0x248bd2=_[_0x7c73('0x14e')](_0x16452a);if(_0x248bd2){return _0x44f1e9(_0x248bd2);}else{_0x3187f2['message']=_0x4794e3?'GLOBAL_INTERVAL_IS_OVERTIME':_0x7c73('0x14f');return _0x3ffb33(msgResponse('[ifTime][promiseAll]',_0x7c73('0x143'),_0x7c73('0x150')+_0x4794e3+'\x20'+_0x5bb64f+_0x7c73('0x151')+util[_0x7c73('0x99')](_0x408124,{'showHidden':![],'depth':null})+'Timezone:\x20'+_0x32930d));}})[_0x7c73('0xb9')](function(_0x15a778){return _0x3ffb33(msgResponse(_0x7c73('0x13f'),'Failure',JSON[_0x7c73('0x47')](_0x15a778)));});});};Dialer[_0x7c73('0x18')]['checkDialMethod']=function(_0x5482bd){var _0x5d8ca3=this;return function(){switch(_0x5482bd[_0x7c73('0x59')]){case _0x7c73('0x152'):freeVariablesPredictive(_0x5482bd);_0x5d8ca3['handlePower'](_0x5482bd,0x1);break;case _0x7c73('0x153'):freeVariablesPredictive(_0x5482bd);_0x5d8ca3[_0x7c73('0x154')](_0x5482bd,_0x5482bd['dialPowerLevel']);break;case _0x7c73('0x9'):_0x5d8ca3[_0x7c73('0x9')](_0x5482bd);break;case'booked':freeVariablesPredictive(_0x5482bd);_0x5d8ca3[_0x7c73('0x154')](_0x5482bd,0x1);break;default:freeVariablesPredictive(_0x5482bd);logger[_0x7c73('0x97')](_0x7c73('0x155'),_0x5482bd[_0x7c73('0x3b')],_0x7c73('0x156'));}};};Dialer[_0x7c73('0x18')][_0x7c73('0x157')]=function(_0x189ae3){var _0x29ecef=this;return function(){_0x29ecef[_0x7c73('0x158')](_0x189ae3);};};Dialer[_0x7c73('0x18')][_0x7c73('0x30')]=function(_0x50b4bd){var _0x1f909e=this;if(isNotPreview(_0x50b4bd[_0x7c73('0x59')])){if(isVoiceQueueOutbound(_0x50b4bd[_0x7c73('0x4b')])&&isActive(_0x50b4bd[_0x7c73('0x58')])){_0x50b4bd['sendMessageOneNotActive']=!![];BPromise[_0x7c73('0xb7')]()['then'](checkIsLoggedIn(_0x50b4bd,_0x50b4bd[_0x7c73('0x50')]))[_0x7c73('0xb8')](checkIsActive(_0x50b4bd,_0x50b4bd[_0x7c73('0x58')]))[_0x7c73('0xb8')](checkInterval(_0x50b4bd))[_0x7c73('0xb8')](_0x1f909e[_0x7c73('0x13a')](_0x50b4bd))['then'](_0x1f909e[_0x7c73('0x159')](_0x50b4bd[_0x7c73('0x15a')],_0x50b4bd['dialTimezone'],_0x50b4bd[_0x7c73('0x3b')],_0x50b4bd))['then'](_0x1f909e['checkIfTimeIntervals'](_0x50b4bd['Interval'],_0x50b4bd['dialTimezone'],_0x50b4bd['name'],_0x50b4bd))[_0x7c73('0xb8')](_0x1f909e['checkDialMethod'](_0x50b4bd))[_0x7c73('0xb9')](loggerCatchQueueSummary(_0x7c73('0x15b'),_0x50b4bd));}else{notSendMessagesQueue(_0x50b4bd);}}else{freeVariablesPredictive(_0x50b4bd);}};Dialer[_0x7c73('0x18')][_0x7c73('0x15c')]=function(){var _0x35aa83=this;var _0x553f98;for(var _0x53249f in this[_0x7c73('0x1e')]){if(typeof this[_0x7c73('0x1e')][_0x53249f]!==_0x7c73('0x9a')){_0x553f98=this[_0x7c73('0x1e')][_0x53249f];if(isCampaignIvr(_0x553f98['type'])&&isActive(_0x553f98['active'])){_0x553f98[_0x7c73('0xa2')]=!![];BPromise[_0x7c73('0xb7')]()['then'](checkIsActive(_0x553f98,_0x553f98[_0x7c73('0xdb')]))[_0x7c73('0xb8')](checkInterval(_0x553f98))[_0x7c73('0xb8')](_0x35aa83[_0x7c73('0x13a')](_0x553f98))[_0x7c73('0xb8')](_0x35aa83[_0x7c73('0x159')](_0x553f98[_0x7c73('0x15a')],_0x553f98[_0x7c73('0x15d')],_0x553f98[_0x7c73('0x3b')],_0x553f98))[_0x7c73('0xb8')](_0x35aa83[_0x7c73('0x140')](_0x553f98[_0x7c73('0x41')],_0x553f98[_0x7c73('0x15d')],_0x553f98['name'],_0x553f98))['then'](_0x35aa83[_0x7c73('0x157')](_0x553f98))[_0x7c73('0xb9')](loggerCatchQueueSummary(_0x7c73('0x15e'),_0x553f98));}else{notSendMessagesCampaign(_0x553f98);}}}};function getCallerIdRandom(_0x1ab88f,_0x58f58b){var _0x5bfc4a;var _0x4aa677;var _0x28e36e;if(_0x58f58b<=0x0){_0x58f58b=0x1;}_0x5bfc4a=new RegExp(_0x7c73('0x15f')+_0x58f58b+'}$');_0x4aa677=Math[_0x7c73('0x160')](0xa,_0x58f58b-0x1);_0x28e36e=Math[_0x7c73('0x160')](0xa,_0x58f58b)-0x1;return util[_0x7c73('0x77')]('%s',_['replace'](_0x1ab88f,_0x5bfc4a,_[_0x7c73('0x161')](_0x4aa677,_0x28e36e)));}function extractCalleridName(_0x19c718){var _0x4b7048=_0x19c718['match'](/"(.*?)"/);return _0x4b7048?_0x4b7048[0x1]:_0x19c718;}function extractCalleridNumber(_0x68251c){var _0x35a2f6=_0x68251c['match'](/<(.*?)>/);return _0x35a2f6?_0x35a2f6[0x1]:_0x68251c;}Dialer[_0x7c73('0x18')]['actionOriginate']=function(_0x152509,_0x508a5d){var _0x585a5e=this;var _0x49ffdc=uuid['v4']();this[_0x7c73('0x21')][_0x49ffdc]=new Action(_0x152509,_0x508a5d,_0x49ffdc);return new BPromise(function(_0x1461fc,_0x5cc256){if(_[_0x7c73('0x39')](_0x152509)&&typeof _0x152509!==_0x7c73('0x162')){return _0x5cc256(msgResponse(_0x7c73('0x163'),_0x7c73('0x143'),_0x7c73('0x164')));}if(_[_0x7c73('0x39')](_0x508a5d[_0x7c73('0x165')][_0x7c73('0x166')])||_0x508a5d[_0x7c73('0x165')][_0x7c73('0x166')]===null){return _0x5cc256(msgResponse(_0x7c73('0x163'),'Failure',_0x7c73('0x167')));}var _0x3169f7={'XMD-CALLERID':_0x585a5e[_0x7c73('0x21')][_0x49ffdc]['getCaller'](),'XMD-AGI':_0x152509[_0x7c73('0x108')]?util['format'](_0x7c73('0x168'),ipAgi,_0x152509[_0x7c73('0x108')]):_0x7c73('0x169'),'XMD-AGIAFTER':_0x152509[_0x7c73('0x10f')]?util[_0x7c73('0x77')]('\x22agi://%s/square,%s\x22',ipAgi,_0x152509[_0x7c73('0x10f')]):_0x7c73('0x169'),'XMD-QUEUE':_0x152509[_0x7c73('0x4b')]===_0x7c73('0x4c')?util[_0x7c73('0x77')](_0x7c73('0x16a'),_0x152509[_0x7c73('0x3b')],_0x152509['dialQueueOptions']||'',_0x152509[_0x7c73('0x110')]?'c':'',_0x152509[_0x7c73('0x115')]||0x3):_0x7c73('0x169'),'XMD-CONTACTID':_0x508a5d[_0x7c73('0xd3')],'XMD-CDRTYPE':'dialer','CALLERID(all)':_0x585a5e[_0x7c73('0x21')][_0x49ffdc][_0x7c73('0x16b')](),'XMD-AMD':_0x152509[_0x7c73('0xe2')]?_0x7c73('0x16c'):_0x7c73('0x169'),'XMD-DESTINATION':_0x7c73('0x16d')};if(_0x152509[_0x7c73('0xe2')]){_0x3169f7[_0x7c73('0x16e')]=_0x152509[_0x7c73('0x16f')]||0x9c4;_0x3169f7[_0x7c73('0x170')]=_0x152509[_0x7c73('0x171')]||0x5dc;_0x3169f7[_0x7c73('0x172')]=_0x152509[_0x7c73('0x173')]||0x320;_0x3169f7['XMD-AMDTOTALANALYSISTIME']=_0x152509['dialAMDTotalAnalysisTime']||0x1388;_0x3169f7[_0x7c73('0x174')]=_0x152509['dialAMDMinWordLength']||0x64;_0x3169f7['XMD-AMDBETWEENWORDSSILENCE']=_0x152509[_0x7c73('0x175')]||0x32;_0x3169f7['XMD-AMDMAXIMUMNUMBEROFWORDS']=_0x152509[_0x7c73('0x176')]||0x3;_0x3169f7[_0x7c73('0x177')]=_0x152509['dialAMDSilenceThreshold']||0x100;_0x3169f7[_0x7c73('0x178')]=_0x152509[_0x7c73('0x179')]||0x1388;}if(_0x152509[_0x7c73('0x4b')]===_0x7c73('0x4c')){_0x3169f7['XMD-VOICEQUEUEID']=_0x508a5d[_0x7c73('0xd6')];}else{_0x3169f7['XMD-CAMPAIGNID']=_0x508a5d[_0x7c73('0xd7')];}for(var _0x36bd05 in _0x508a5d['Contact']){if(typeof _0x508a5d[_0x7c73('0x165')][_0x36bd05]!==_0x7c73('0x9a')){if(isNotNull(_0x508a5d[_0x7c73('0x165')][_0x36bd05])&&_0x36bd05!=='id'&&_0x36bd05!==_0x7c73('0x17a')&&_0x36bd05!=='createdAt'&&_0x36bd05!==_0x7c73('0x17b')){_0x3169f7[util[_0x7c73('0x77')](_0x7c73('0x17c'),_0x7c73('0x17d'),_[_0x7c73('0x17e')](_0x36bd05))]=_0x508a5d['Contact'][_0x36bd05];}}}var _0x4ac9ef=_0x585a5e['isTrunkReachable'](_0x152509['Trunk'])?getCallerId(_0x152509['Trunk'][_0x7c73('0x76')],_0x152509[_0x7c73('0x5a')],_0x152509[_0x7c73('0x17f')]>0x0?getCallerIdRandom(_0x152509[_0x7c73('0x5b')],_0x152509[_0x7c73('0x17f')]):_0x152509[_0x7c73('0x5b')]):getCallerId(_[_0x7c73('0xae')](_0x152509[_0x7c73('0x13c')])?_0x152509['Trunk'][_0x7c73('0x76')]:_0x152509[_0x7c73('0x13c')]['callerid'],_0x152509[_0x7c73('0x5a')],_0x152509['dialRandomLastDigitCallerIdNumber']>0x0?getCallerIdRandom(_0x152509[_0x7c73('0x5b')],_0x152509[_0x7c73('0x17f')]):_0x152509[_0x7c73('0x5b')]);if(_0x4ac9ef){_0x3169f7[_0x7c73('0x180')]=_0x585a5e[_0x7c73('0x21')][_0x49ffdc][_0x7c73('0x181')]=extractCalleridName(_0x4ac9ef);_0x3169f7[_0x7c73('0x182')]=_0x585a5e[_0x7c73('0x21')][_0x49ffdc][_0x7c73('0x183')]=extractCalleridNumber(_0x4ac9ef);}return ami[_0x7c73('0xaf')]({'actionid':_0x49ffdc,'action':_0x7c73('0x163'),'channel':_0x585a5e['isTrunkReachable'](_0x152509[_0x7c73('0x75')])?util[_0x7c73('0x77')](_0x7c73('0x184'),_0x152509['Trunk'][_0x7c73('0x3b')],isNotNull(_0x152509['dialPrefix'])?_0x152509[_0x7c73('0x5d')]['trim']()||'':'',_0x152509[_0x7c73('0x185')]>0x0?_0x508a5d[_0x7c73('0x165')][_0x7c73('0x166')]['substring'](_0x152509['dialCutDigit']):_0x508a5d[_0x7c73('0x165')][_0x7c73('0x166')]):util[_0x7c73('0x77')](_0x7c73('0x184'),_[_0x7c73('0xae')](_0x152509[_0x7c73('0x13c')])?_0x152509['Trunk'][_0x7c73('0x3b')]:_0x152509[_0x7c73('0x13c')][_0x7c73('0x3b')],isNotNull(_0x152509[_0x7c73('0x5d')])?_0x152509[_0x7c73('0x5d')][_0x7c73('0x186')]()||'':'',_0x152509[_0x7c73('0x185')]>0x0?_0x508a5d[_0x7c73('0x165')][_0x7c73('0x166')][_0x7c73('0x187')](_0x152509['dialCutDigit']):_0x508a5d[_0x7c73('0x165')][_0x7c73('0x166')]),'callerid':_0x4ac9ef,'Exten':_0x7c73('0x16d'),'Context':_0x7c73('0x188'),'Priority':'1','variable':_0x3169f7,'timeout':(_0x152509['dialOriginateTimeout']||0x1e)*0x3e8,'async':!![],'channelid':_0x49ffdc})['then'](function(_0xe65318){return _0x1461fc(_0xe65318);})[_0x7c73('0xb9')](function(_0x58fc23){_0x152509[_0x7c73('0x66')]+=0x1;var _0x412923=new History(_0x585a5e[_0x7c73('0x21')][_0x49ffdc]);logger[_0x7c73('0x97')](util[_0x7c73('0x77')](_0x7c73('0x189'),JSON[_0x7c73('0x47')](_0x58fc23)));_0x412923[_0x7c73('0xa7')]=0xe;_0x412923['statedesc']=_0x7c73('0x18a');_0x412923[_0x7c73('0xa9')]=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');_0x412923[_0x7c73('0xa8')]=_0x412923[_0x7c73('0xa9')];_0x585a5e['createHistory'](_0x412923)[_0x7c73('0xb9')](loggerCatch('[originate][error]'));_0x585a5e[_0x7c73('0xca')](_0x412923)[_0x7c73('0xb9')](loggerCatch(_0x7c73('0x18b')))[_0x7c73('0x1b')](function(){delete _0x585a5e[_0x7c73('0x21')][_0x49ffdc];return _0x5cc256(msgResponse(_0x7c73('0x163'),_0x7c73('0x46'),_0x7c73('0x18c')));});});});};Dialer[_0x7c73('0x18')][_0x7c73('0x2e')]=function(_0x7b9968){var _0xbc70aa=this[_0x7c73('0x21')][_0x7b9968[_0x7c73('0x125')]];if(_0xbc70aa){delete this[_0x7c73('0x21')][_0x7b9968[_0x7c73('0x125')]];_0xbc70aa['responsetime']=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');var _0x4caf56=_0xbc70aa[_0x7c73('0x4b')]==='ivr'?this['campaigns'][_0xbc70aa['queue']]:this['voiceQueues'][_0xbc70aa[_0x7c73('0x18d')]()];if(!this['isSuccess'](_0x7b9968['response'])){this[_0x7c73('0xb3')](_0x4caf56);return this[_0x7c73('0x18e')](_0xbc70aa,_0x4caf56,_0x7b9968)['catch'](loggerCatch(_0x7c73('0x18f')));}this['uniqueId'][_0x7b9968[_0x7c73('0xe4')]]=_0xbc70aa;}};Dialer['prototype']['checkRetriveMax']=function(_0x337f8d,_0x150cc4,_0xfeba8a){var _0x4e1ab0=new History(_0x150cc4);if(_0x4e1ab0[_0x7c73('0xf0')]+_0x4e1ab0[_0x7c73('0x190')]+_0x4e1ab0[_0x7c73('0x191')]+_0x4e1ab0[_0x7c73('0x192')]+_0x4e1ab0['countdropretry']+_0x4e1ab0[_0x7c73('0xf2')]+_0x4e1ab0[_0x7c73('0xef')]+_0x4e1ab0[_0x7c73('0x102')]>=_0xfeba8a[_0x7c73('0xf3')]-0x1){return!![];}switch(_0x337f8d){case 0x3:if(_0x4e1ab0[_0x7c73('0x191')]>=_0xfeba8a[_0x7c73('0x193')]-0x1){return!![];}this[_0x7c73('0xc0')]({'active':![],'countnoanswerretry':_0x4e1ab0[_0x7c73('0x191')]+=0x1,'scheduledat':moment()['add'](_0xfeba8a[_0x7c73('0x194')],_0x7c73('0x11d'))['format'](_0x7c73('0xfa')),'ContactId':_0x4e1ab0[_0x7c73('0xd3')],'ListId':_0x4e1ab0[_0x7c73('0xd4')],'VoiceQueueId':_0x4e1ab0[_0x7c73('0xd6')]||undefined,'CampaignId':_0x4e1ab0[_0x7c73('0xd7')]||undefined})[_0x7c73('0xb9')](loggerCatch(_0x7c73('0x195')));break;case 0x5:if(_0x4e1ab0[_0x7c73('0xf0')]>=_0xfeba8a['dialBusyMaxRetry']-0x1){return!![];}this['rescheduleContact']({'active':![],'countbusyretry':_0x4e1ab0[_0x7c73('0xf0')]+=0x1,'scheduledat':moment()[_0x7c73('0x103')](_0xfeba8a[_0x7c73('0x196')],_0x7c73('0x11d'))[_0x7c73('0x77')](_0x7c73('0xfa')),'ContactId':_0x4e1ab0[_0x7c73('0xd3')],'ListId':_0x4e1ab0[_0x7c73('0xd4')],'VoiceQueueId':_0x4e1ab0['VoiceQueueId']||undefined,'CampaignId':_0x4e1ab0[_0x7c73('0xd7')]||undefined})[_0x7c73('0xb9')](loggerCatch(_0x7c73('0x197')));break;case 0x8:if(_0x4e1ab0[_0x7c73('0x190')]>=_0xfeba8a[_0x7c73('0x198')]-0x1){return!![];}this[_0x7c73('0xc0')]({'active':![],'countcongestionretry':_0x4e1ab0[_0x7c73('0x190')]+=0x1,'scheduledat':moment()['add'](_0xfeba8a[_0x7c73('0x199')],_0x7c73('0x11d'))[_0x7c73('0x77')](_0x7c73('0xfa')),'ContactId':_0x4e1ab0[_0x7c73('0xd3')],'ListId':_0x4e1ab0[_0x7c73('0xd4')],'VoiceQueueId':_0x4e1ab0[_0x7c73('0xd6')]||undefined,'CampaignId':_0x4e1ab0[_0x7c73('0xd7')]||undefined})[_0x7c73('0xb9')](loggerCatch(_0x7c73('0x19a')));break;case 0x0:if(_0x4e1ab0[_0x7c73('0x192')]>=_0xfeba8a[_0x7c73('0x19b')]-0x1){return!![];}else{this['rescheduleContact']({'active':![],'countnosuchnumberretry':_0x4e1ab0[_0x7c73('0x192')]+=0x1,'scheduledat':moment()[_0x7c73('0x103')](_0xfeba8a['dialNoSuchNumberRetryFrequency'],_0x7c73('0x11d'))['format']('YYYY-MM-DD\x20HH:mm:ss'),'ContactId':_0x4e1ab0['ContactId'],'ListId':_0x4e1ab0[_0x7c73('0xd4')],'VoiceQueueId':_0x4e1ab0[_0x7c73('0xd6')]||undefined,'CampaignId':_0x4e1ab0[_0x7c73('0xd7')]||undefined})[_0x7c73('0xb9')](loggerCatch(_0x7c73('0x19c')));}break;case 0xa:if(_0x4e1ab0[_0x7c73('0xf1')]>=_0xfeba8a[_0x7c73('0x11a')]-0x1){return!![];}this['rescheduleContact']({'active':![],'countdropretry':_0x4e1ab0[_0x7c73('0xf1')]+=0x1,'scheduledat':moment()[_0x7c73('0x103')](_0xfeba8a[_0x7c73('0x11c')],'minutes')['format'](_0x7c73('0xfa')),'ContactId':_0x4e1ab0[_0x7c73('0xd3')],'ListId':_0x4e1ab0[_0x7c73('0xd4')],'VoiceQueueId':_0x4e1ab0[_0x7c73('0xd6')]||undefined,'CampaignId':_0x4e1ab0[_0x7c73('0xd7')]||undefined})[_0x7c73('0xb9')](loggerCatch('[rescheduleContact][Drop]'));break;case 0xb:if(_0x4e1ab0['countabandonedretry']>=_0xfeba8a['dialAbandonedMaxRetry']-0x1){return!![];}this[_0x7c73('0xc0')]({'active':![],'countabandonedretry':_0x4e1ab0[_0x7c73('0xf2')]+=0x1,'scheduledat':moment()['add'](_0xfeba8a['dialAbandonedRetryFrequency'],_0x7c73('0x11d'))['format'](_0x7c73('0xfa')),'ContactId':_0x4e1ab0['ContactId'],'ListId':_0x4e1ab0['ListId'],'VoiceQueueId':_0x4e1ab0[_0x7c73('0xd6')]||undefined,'CampaignId':_0x4e1ab0['CampaignId']||undefined})['catch'](loggerCatch(_0x7c73('0x123')));break;case 0x13:if(_0x4e1ab0[_0x7c73('0xef')]>=_0xfeba8a[_0x7c73('0xf6')]-0x1){return!![];}this[_0x7c73('0xc0')]({'active':![],'countmachineretry':_0x4e1ab0['countmachineretry']+=0x1,'scheduledat':moment()['add'](_0xfeba8a[_0x7c73('0xf9')],'minutes')[_0x7c73('0x77')](_0x7c73('0xfa')),'ContactId':_0x4e1ab0[_0x7c73('0xd3')],'ListId':_0x4e1ab0[_0x7c73('0xd4')],'VoiceQueueId':_0x4e1ab0[_0x7c73('0xd6')]||undefined,'CampaignId':_0x4e1ab0[_0x7c73('0xd7')]||undefined})['catch'](loggerCatch('[rescheduleContact][Machine]'));break;case 0x14:if(_0x4e1ab0[_0x7c73('0x102')]>=_0xfeba8a['dialAgentRejectMaxRetry']-0x1){return!![];}this['rescheduleContact']({'active':![],'countagentrejectretry':_0x4e1ab0[_0x7c73('0x102')]+=0x1,'scheduledat':moment()['add'](_0xfeba8a[_0x7c73('0x19d')],_0x7c73('0x11d'))[_0x7c73('0x77')](_0x7c73('0xfa')),'ContactId':_0x4e1ab0[_0x7c73('0xd3')],'ListId':_0x4e1ab0[_0x7c73('0xd4')],'VoiceQueueId':_0x4e1ab0[_0x7c73('0xd6')]||undefined,'CampaignId':_0x4e1ab0['CampaignId']||undefined})[_0x7c73('0xb9')](loggerCatch('[rescheduleContact][AgentReject]'));break;default:return!![];}};Dialer[_0x7c73('0x18')][_0x7c73('0x18e')]=function(_0x506b10,_0x2a524d,_0x36538b){var _0x2ad0f7=this;var _0x45f419=new History(_0x506b10);return new BPromise(function(_0x160a46,_0x25eca3){if(_[_0x7c73('0x39')](_0x2a524d)&&typeof _0x2a524d!==_0x7c73('0x162')){return _0x25eca3(msgResponse('[callProgressDetecting]',_0x7c73('0x143'),_0x7c73('0x19e')));}if(_[_0x7c73('0x39')](_0x36538b)&&typeof _0x36538b!==_0x7c73('0x162')){return _0x25eca3(msgResponse(_0x7c73('0x19f'),_0x7c73('0x143'),_0x7c73('0x1a0')));}switch(_0x36538b['reason']){case'0':_0x2a524d[_0x7c73('0x65')]+=0x1;_0x45f419[_0x7c73('0xa7')]=0x0;_0x45f419[_0x7c73('0xee')]=_0x7c73('0x1a1');_0x45f419[_0x7c73('0x192')]+=0x1;_0x45f419[_0x7c73('0x100')]+=0x1;ami[_0x7c73('0x4a')]('custom:agentnosuchnumber',ut[_0x7c73('0xe9')](_0x506b10,_0x7c73('0x1a2')));_0x2ad0f7['createHistory'](_0x45f419)[_0x7c73('0xb9')](loggerCatch(_0x7c73('0x101')));if(_0x2ad0f7['checkRetriveMax'](0x0,_0x506b10,_0x2a524d)){if(_0x45f419[_0x7c73('0x192')]>=_0x2a524d[_0x7c73('0x19b')]){_0x2ad0f7[_0x7c73('0xf7')](_0x45f419,_0x160a46,_0x25eca3,'reason\x200\x20no\x20such\x20number....');}else{_0x2ad0f7[_0x7c73('0xf4')](_0x45f419,_0x160a46,_0x25eca3,_0x7c73('0x1a3'));}}break;case'3':_0x2a524d[_0x7c73('0x64')]+=0x1;_0x45f419['state']=0x3;_0x45f419['statedesc']=_0x7c73('0x1a4');_0x45f419[_0x7c73('0x191')]+=0x1;_0x45f419[_0x7c73('0x100')]+=0x1;ami[_0x7c73('0x4a')](_0x7c73('0x1a5'),ut['buildObj'](_0x506b10,_0x7c73('0x1a6')));_0x2ad0f7[_0x7c73('0xcb')](_0x45f419)[_0x7c73('0xb9')](loggerCatch('[syncAgentComplete][createHistory][3]'));if(_0x2ad0f7[_0x7c73('0x1a7')](0x3,_0x506b10,_0x2a524d)){if(_0x45f419[_0x7c73('0x191')]>=_0x2a524d[_0x7c73('0x193')]){_0x2ad0f7[_0x7c73('0xf7')](_0x45f419,_0x160a46,_0x25eca3,'reason\x203\x20ringing\x20no\x20answer');}else{_0x2ad0f7[_0x7c73('0xf4')](_0x45f419,_0x160a46,_0x25eca3,'reason\x203\x20ringing\x20no\x20answer');}}break;case'5':_0x2a524d[_0x7c73('0x60')]+=0x1;_0x45f419[_0x7c73('0xa7')]=0x5;_0x45f419[_0x7c73('0xee')]=_0x7c73('0x1a8');_0x45f419['countbusyretry']+=0x1;_0x45f419[_0x7c73('0x100')]+=0x1;ami['emit'](_0x7c73('0x1a9'),ut[_0x7c73('0xe9')](_0x506b10,'busy'));_0x2ad0f7[_0x7c73('0xcb')](_0x45f419)[_0x7c73('0xb9')](loggerCatch(_0x7c73('0x1aa')));if(_0x2ad0f7[_0x7c73('0x1a7')](0x5,_0x506b10,_0x2a524d)){if(_0x45f419['countbusyretry']>=_0x2a524d[_0x7c73('0x1ab')]){_0x2ad0f7['createStateFinal'](_0x45f419,_0x160a46,_0x25eca3,'reason\x205\x20busy');}else{_0x2ad0f7[_0x7c73('0xf4')](_0x45f419,_0x160a46,_0x25eca3,_0x7c73('0x1ac'));}}break;case'8':_0x2a524d['outboundCongestionCallsDay']+=0x1;_0x45f419[_0x7c73('0xa7')]=0x8;_0x45f419['statedesc']='Congestion';_0x45f419[_0x7c73('0x190')]+=0x1;_0x45f419[_0x7c73('0x100')]+=0x1;ami[_0x7c73('0x4a')]('custom:agentcongestion',ut['buildObj'](_0x506b10,_0x7c73('0x1ad')));_0x2ad0f7['createHistory'](_0x45f419)[_0x7c73('0xb9')](loggerCatch(_0x7c73('0x1ae')));if(_0x2ad0f7[_0x7c73('0x1a7')](0x8,_0x506b10,_0x2a524d)){if(_0x45f419['countcongestionretry']>=_0x2a524d[_0x7c73('0x198')]){_0x2ad0f7[_0x7c73('0xf7')](_0x45f419,_0x160a46,_0x25eca3,_0x7c73('0x1af'));}else{_0x2ad0f7[_0x7c73('0xf4')](_0x45f419,_0x160a46,_0x25eca3,'reason\x208\x20congestion');}}break;case'11':_0x2a524d[_0x7c73('0x1b0')]+=0x1;_0x45f419[_0x7c73('0xa7')]=0xb;_0x45f419[_0x7c73('0xee')]=_0x7c73('0x121');_0x45f419[_0x7c73('0xf2')]+=0x1;_0x45f419[_0x7c73('0x100')]+=0x1;_0x2ad0f7['createHistory'](_0x45f419)[_0x7c73('0xb9')](loggerCatch('[syncAgentComplete][createHistory][11]'));if(_0x2ad0f7[_0x7c73('0x1a7')](0xb,_0x506b10,_0x2a524d)){if(_0x45f419['countabandonedretry']>=_0x2a524d[_0x7c73('0x1b1')]){_0x2ad0f7[_0x7c73('0xf7')](_0x45f419,_0x160a46,_0x25eca3,'reason\x2011\x20abandoned');}else{_0x2ad0f7[_0x7c73('0xf4')](_0x45f419,_0x160a46,_0x25eca3,'reason\x2011\x20abandoned');}}break;case'20':_0x2a524d[_0x7c73('0x1b2')]+=0x1;_0x45f419[_0x7c73('0xa7')]=0x14;_0x45f419[_0x7c73('0xee')]=_0x7c73('0x1b3');_0x45f419['countagentrejectretry']+=0x1;_0x45f419['countglobal']+=0x1;ami[_0x7c73('0x4a')]('custom:agentreject',ut[_0x7c73('0xe9')](_0x506b10,'agentreject'));_0x2ad0f7[_0x7c73('0xcb')](_0x45f419)[_0x7c73('0xb9')](loggerCatch(_0x7c73('0x1b4')));if(_0x2ad0f7[_0x7c73('0x1a7')](0x14,_0x506b10,_0x2a524d)){if(_0x45f419['countagentrejectretry']>=_0x2a524d[_0x7c73('0x1b5')]){_0x2ad0f7['createStateFinal'](_0x45f419,_0x160a46,_0x25eca3,_0x7c73('0x1b6'));}else{_0x2ad0f7['stateGlobal'](_0x45f419,_0x160a46,_0x25eca3,_0x7c73('0x1b6'));}}break;default:_0x2a524d[_0x7c73('0x1b7')]+=0x1;_0x45f419[_0x7c73('0xa7')]=0xc;_0x45f419['statedesc']=_0x36538b['reason'];_0x2ad0f7[_0x7c73('0xcb')](_0x45f419)[_0x7c73('0xb9')](loggerCatch(_0x7c73('0x1b8')));if(_0x2ad0f7[_0x7c73('0x1a7')](_0x36538b['reason'],_0x506b10,_0x2a524d)){if(_0x45f419['countbusyretry']+_0x45f419[_0x7c73('0x190')]+_0x45f419['countnoanswerretry']+_0x45f419[_0x7c73('0x192')]+_0x45f419['countdropretry']+_0x45f419[_0x7c73('0xf2')]+_0x45f419['countmachineretry']+_0x45f419[_0x7c73('0x102')]>=_0x2a524d[_0x7c73('0xf3')]){_0x2ad0f7[_0x7c73('0xf4')](_0x45f419,_0x160a46,_0x25eca3,_0x36538b[_0x7c73('0x10c')]);}else{_0x2ad0f7[_0x7c73('0xf7')](_0x45f419,_0x160a46,_0x25eca3,_0x36538b[_0x7c73('0x10c')]);}}}});};Dialer[_0x7c73('0x18')]['stateGlobal']=function(_0x533c78,_0xe29d11,_0x5d24e4,_0x20b4ef){var _0xdca2e2=new Final(_0x533c78);_0xdca2e2[_0x7c73('0xa7')]=0xf;_0xdca2e2[_0x7c73('0xee')]=_0x7c73('0x1b9');this[_0x7c73('0xf7')](_0xdca2e2,_0xe29d11,_0x5d24e4,_0x20b4ef);};Dialer[_0x7c73('0x18')][_0x7c73('0xf7')]=function(_0x5da743,_0x4927b9,_0x4a4567,_0x5daf64){this['moveContactManagedDialer'](_0x5da743)[_0x7c73('0xb8')](function(){return _0x4927b9(msgResponse(_0x7c73('0x19f'),_0x7c73('0xda'),_0x5daf64));})[_0x7c73('0xb9')](function(){return _0x4a4567(msgResponse(_0x7c73('0x1ba'),_0x7c73('0x143'),_0x7c73('0x1bb')));});};Dialer[_0x7c73('0x18')][_0x7c73('0x9')]=function(_0x172171){var _0x7d9be9=_0x172171[_0x7c73('0x1bc')]/0x64;var _0x4b8746=_0x172171[_0x7c73('0x116')]/(_0x172171[_0x7c73('0x116')]+_0x172171[_0x7c73('0x5e')]);var _0x47c546=Math[_0x7c73('0x1bd')](_0x172171['predictiveIntervalAvailable']*(_0x172171[_0x7c73('0x1be')]/0x64));var _0x34599b=Math[_0x7c73('0x1bd')](_0x172171[_0x7c73('0x70')]*(_0x172171['predictiveIntervalMinThreshold']/0x64));var _0x49aa5a=_0x172171[_0x7c73('0x4f')]+_0x172171['talking'];var _0x5b3746=Math[_0x7c73('0x1bf')](_0x172171[_0x7c73('0x89')]*_0x172171[_0x7c73('0x8c')]*_0x172171[_0x7c73('0x6d')]*_0x172171['predictiveIntervalMultiplicativeFactor']);if(_[_0x7c73('0x39')](_0x172171[_0x7c73('0x74')])){if(!_[_0x7c73('0x39')](_0x172171['startPredictive'])){_0x172171['startPredictive']=undefined;loggerPredictive[_0x7c73('0x97')](_0x7c73('0x1c0'),_0x7c73('0x1c1'));}if(!_[_0x7c73('0x39')](_0x172171[_0x7c73('0x93')])){loggerPredictive[_0x7c73('0x97')](_0x7c73('0x1c0'),_0x7c73('0x1c2'));clearInterval(_0x172171['handlePredictive']);_0x172171[_0x7c73('0x93')]=undefined;}_0x172171['startProgressive']=moment()[_0x7c73('0x77')]('YYYY-MM-DD\x20HH:mm:ss');loggerPredictive[_0x7c73('0x7b')](_0x172171[_0x7c73('0x3b')],_0x7c73('0x1c3'),_0x172171[_0x7c73('0x74')]);this['handlePower'](_0x172171,0x1);}else if(ifInterval(_0x172171[_0x7c73('0x1c4')],_0x172171[_0x7c73('0x74')])){this[_0x7c73('0x154')](_0x172171,0x1);loggerPredictiveCalls[_0x7c73('0x7b')](_0x7c73('0x1c5'),_0x172171[_0x7c73('0x74')],_0x172171[_0x7c73('0x3b')]);_0x172171['erlangCalls']=0x0;_0x172171[_0x7c73('0x6c')]=0x0;}else if(_0x7d9be9<_0x4b8746&&_0x172171[_0x7c73('0x1c6')]==='dropRate'){freeVariablesPredictive(_0x172171);loggerPredictive[_0x7c73('0x7b')](_0x7c73('0x1c7'),_0x7c73('0x1c8'),_0x4b8746,_0x7c73('0x74'),_0x172171[_0x7c73('0x3b')]);}else if(_0x5b3746<_0x172171[_0x7c73('0x6c')]&&_0x172171[_0x7c73('0x1c6')]===_0x7c73('0x1c9')){freeVariablesPredictive(_0x172171);loggerPredictive['info']('[stopMethodPredictive][ReStartProgressive][ExceededDropInterval]',_0x7c73('0x1ca'),_0x5b3746,_0x7c73('0x1cb'),_0x172171[_0x7c73('0x6c')],_0x7c73('0x74'),_0x172171[_0x7c73('0x3b')]);}else if(!ifInterval(_0x172171[_0x7c73('0x1c4')],_0x172171[_0x7c73('0x74')])&&_[_0x7c73('0x39')](_0x172171['startPredictive'])&&!_['isUndefined'](_0x172171[_0x7c73('0x74')])){_0x172171[_0x7c73('0x25')]=moment()[_0x7c73('0x77')](_0x7c73('0xfa'));loggerPredictive[_0x7c73('0x7b')](_0x172171['name'],'started\x20in\x20predictive\x20at',_0x172171[_0x7c73('0x25')]);this[_0x7c73('0x1cc')](_0x172171['dialPredictiveInterval'])['then'](this['getDataPredictive'](_0x172171))[_0x7c73('0xb8')](mergeDataErlangB(_0x172171))['then'](this[_0x7c73('0x1cd')](_0x172171))[_0x7c73('0xb9')](loggerCatchPredictive(_0x7c73('0x1ce'),_0x172171));}else if(!ifInterval(_0x172171['dialPredictiveInterval'],_0x172171['startPredictive'])){_0x172171[_0x7c73('0x6c')]=0x0;_0x172171[_0x7c73('0x25')]=moment()[_0x7c73('0x77')](_0x7c73('0xfa'));loggerPredictive[_0x7c73('0x7b')](_0x172171['name'],_0x7c73('0x1cf'),_0x172171[_0x7c73('0x25')]);clearInterval(_0x172171['handlePredictive']);_0x172171[_0x7c73('0x93')]=undefined;this[_0x7c73('0x1cc')](_0x172171[_0x7c73('0x1c4')])['then'](this[_0x7c73('0x1d0')](_0x172171))[_0x7c73('0xb8')](mergeDataErlangB(_0x172171))[_0x7c73('0xb8')](this['startMethodPredictive'](_0x172171))[_0x7c73('0xb9')](loggerCatchPredictive(_0x7c73('0x1d1'),_0x172171));}else if(_0x172171[_0x7c73('0x70')]&&_0x49aa5a<_0x172171['predictiveIntervalAvailable']-_0x34599b){freeVariablesPredictive(_0x172171);loggerPredictive[_0x7c73('0x7b')](_0x172171['name'],_0x7c73('0x1d2'),_0x49aa5a,_0x7c73('0x1d3'),_0x172171[_0x7c73('0x70')],'-',_0x34599b,'=',_0x172171[_0x7c73('0x70')]-_0x34599b,')');}else if(_0x172171['predictiveIntervalAvailable']&&_0x49aa5a>_0x172171[_0x7c73('0x70')]+_0x47c546){freeVariablesPredictive(_0x172171);loggerPredictive['info'](_0x172171['name'],_0x7c73('0x1d2'),_0x49aa5a,_0x7c73('0x1d4'),_0x172171[_0x7c73('0x70')],'+',_0x47c546,'=',_0x172171[_0x7c73('0x70')]+_0x47c546,')');}};Dialer[_0x7c73('0x18')][_0x7c73('0x1d0')]=function(_0x56a092){var _0x255121=this;return function(_0x429ac9){return new BPromise(function(_0x233967,_0x234735){_[_0x7c73('0x8f')](_0x56a092,_0x429ac9[0x0]);if(checkGetDataPredictive(_0x429ac9[0x0])){var _0x22a838=_0x56a092[_0x7c73('0x70')]=_0x56a092[_0x7c73('0x54')]+_0x56a092[_0x7c73('0x4f')];var _0x59e49b=_0x56a092[_0x7c73('0x1c4')]*0x3c;var _0x2900cc=_0x429ac9[0x0][_0x7c73('0x69')]+_0x429ac9[0x0]['predictiveIntervalAvgHoldtime'];var _0x9d6375=(_0x429ac9[0x0][_0x7c73('0x7e')]+_0x429ac9[0x0]['predictiveIntervalDroppedCallsTimeout']+_0x429ac9[0x0][_0x7c73('0x6a')])/_0x429ac9[0x0][_0x7c73('0x71')];_0x56a092[_0x7c73('0x6d')]=_0x9d6375>0x0?_0x9d6375:0x1;switch(_0x56a092[_0x7c73('0x1c6')]){case _0x7c73('0x1c9'):var _0xab713d=_0x56a092[_0x7c73('0x1bc')]/0x64;return _0x255121[_0x7c73('0x1d5')](_0x22a838,_0x59e49b,_0x2900cc,_0x9d6375,_0xab713d)['then'](function(_0x12c1d3){return _0x233967(_0x12c1d3);});case'agentBusyFactor':var _0x7a6346=_0x56a092[_0x7c73('0x1bc')]/0x64;return _0x255121[_0x7c73('0x1d6')](_0x22a838,_0x59e49b,_0x2900cc,_0x9d6375,_0x7a6346)[_0x7c73('0xb8')](function(_0x4b39cc){return _0x233967(_0x4b39cc);});default:return _0x234735(msgResponse(_0x7c73('0x1d7'),_0x7c73('0x143'),_0x7c73('0x1d8')));}}else{return _0x234735(msgResponse(_0x7c73('0x1d7'),_0x7c73('0x143'),_0x7c73('0x1d9')));}});};};Dialer['prototype']['getDataPredictiveOld']=function(_0x5e9a5f){var _0x521efc=this;return function(_0x2b8b08){return new BPromise(function(_0x31ab13,_0x12aa4d){_['merge'](_0x5e9a5f,_0x2b8b08[0x0]);if(checkGetDataPredictive(_0x2b8b08[0x0])){loggerPredictive[_0x7c73('0x7b')](JSON[_0x7c73('0x47')](_0x2b8b08[0x0]));if(_0x5e9a5f[_0x7c73('0x1c6')]==='dropRate'){return _0x521efc['getVoiceQueueRtPauses'](_0x5e9a5f['id'])['then'](function(_0x46606d){var _0x23b626=_0x5e9a5f['loggedIn']-_0x46606d[0x0][_0x7c73('0x1da')];var _0x25ba70=_0x5e9a5f['dialPredictiveInterval']*0x3c;var _0x37876c=_0x2b8b08[0x0][_0x7c73('0x69')]+_0x2b8b08[0x0][_0x7c73('0x68')];var _0x36f774=(_0x2b8b08[0x0]['predictiveIntervalAnsweredCalls']+_0x2b8b08[0x0]['predictiveIntervalDroppedCallsTimeout']+_0x2b8b08[0x0][_0x7c73('0x6a')])/_0x2b8b08[0x0][_0x7c73('0x71')];var _0xab415d=_0x5e9a5f[_0x7c73('0x1bc')]/0x64;_0x5e9a5f[_0x7c73('0x6f')]=_0x46606d[0x0][_0x7c73('0x1da')]||0x0;_0x5e9a5f[_0x7c73('0x6d')]=_0x36f774>0x0?_0x36f774:0x1;return _0x521efc[_0x7c73('0x1d5')](_0x23b626,_0x25ba70,_0x37876c,_0x36f774,_0xab415d);})[_0x7c73('0xb8')](function(_0x593e44){return _0x31ab13(_0x593e44);})[_0x7c73('0xb9')](function(_0x1c02b3){return _0x12aa4d(msgResponse(_0x7c73('0x1db'),_0x7c73('0x143'),JSON[_0x7c73('0x47')](_0x1c02b3)));});}if(_0x5e9a5f['dialPredictiveOptimization']===_0x7c73('0x1dc')){return _0x521efc[_0x7c73('0xc8')](_0x5e9a5f['id'])[_0x7c73('0xb8')](function(_0x430b75){var _0x1241d2=_0x5e9a5f[_0x7c73('0x50')]-_0x430b75[0x0][_0x7c73('0x1da')];var _0x43a93a=_0x5e9a5f[_0x7c73('0x1c4')]*0x3c;var _0x4069c0=_0x2b8b08[0x0][_0x7c73('0x69')]+_0x2b8b08[0x0][_0x7c73('0x68')];var _0x4d5911=(_0x2b8b08[0x0]['predictiveIntervalAnsweredCalls']+_0x2b8b08[0x0]['predictiveIntervalDroppedCallsTimeout']+_0x2b8b08[0x0][_0x7c73('0x6a')])/_0x2b8b08[0x0]['predictiveIntervalTotalCalls'];var _0x598e52=_0x5e9a5f['dialPredictiveOptimizationPercentage']/0x64;_0x5e9a5f[_0x7c73('0x6f')]=_0x430b75[0x0][_0x7c73('0x1da')]||0x0;_0x5e9a5f[_0x7c73('0x6d')]=_0x4d5911>0x0?_0x4d5911:0x1;return _0x521efc['busyFactor'](_0x1241d2,_0x43a93a,_0x4069c0,_0x4d5911,_0x598e52);})[_0x7c73('0xb8')](function(_0x1f4aed){return _0x31ab13(_0x1f4aed);})[_0x7c73('0xb9')](function(_0x5685b1){return _0x12aa4d(msgResponse('[CatchErlangB]','Failure',JSON[_0x7c73('0x47')](_0x5685b1)));});}}else{return _0x12aa4d(msgResponse('[getDataPredictive]','Failure',_0x7c73('0x1d9')));}});};};Dialer['prototype'][_0x7c73('0x1cd')]=function(_0x6e335c){var _0x507acb=this;return function(){var _0x56e920=0x0;var _0x10505b=Math[_0x7c73('0x1bf')](_0x6e335c[_0x7c73('0x73')]*0x3e8);if(_0x10505b>0x0){_0x10505b=_0x10505b<0x64?0x64:_0x10505b;loggerPredictive[_0x7c73('0x7b')](_0x6e335c[_0x7c73('0x3b')],_0x7c73('0x1dd'),_0x10505b,_0x7c73('0x48'));_0x6e335c['handlePredictive']=setInterval(function(){_0x507acb['handlePredictive'](_0x6e335c);loggerPredictiveCalls[_0x7c73('0x7b')](_0x7c73('0x1de'),_0x56e920+=0x1);},_0x10505b);}else{loggerPredictive['info'](_0x6e335c[_0x7c73('0x3b')],_0x7c73('0x1df'));}};};Dialer[_0x7c73('0x18')][_0x7c73('0x1e0')]=function(_0x10789f,_0xd9a750){var _0x19a9aa=this;return function(_0x32c628){if(_['isEmpty'](_0x32c628)){if(_[_0x7c73('0xae')](_0xd9a750[_0x7c73('0xd5')])||!_0xd9a750[_0x7c73('0x1e1')]){if(_0x10789f[_0x7c73('0x59')]===_0x7c73('0x1e2')){_0x10789f[_0x7c73('0x12c')]=_[_0x7c73('0x39')](_0x10789f['queueStatusComplete'])?!![]:_0x10789f[_0x7c73('0x12c')];var _0x303d8a=uuid['v4']();_0x19a9aa[_0x7c73('0x21')][_0x303d8a]=new Action(_0x10789f,_0xd9a750,_0x303d8a);loggerBooked[_0x7c73('0x7b')](_0x7c73('0x1e3'),_0x303d8a,'queueStatusComplete:\x20',JSON[_0x7c73('0x47')](_0x10789f[_0x7c73('0x12c')]),_0x7c73('0x1e4'),_0x10789f['name']);if(_0x10789f['queueStatusComplete']){_0x10789f[_0x7c73('0x12c')]=![];_0x19a9aa[_0x7c73('0x27')][_0x19a9aa['actions'][_0x303d8a][_0x7c73('0xb5')]]=[];ami[_0x7c73('0xaf')]({'actionid':_0x303d8a,'action':'queuestatus','queue':_0x10789f[_0x7c73('0x3b')]})['catch'](function(){_0x19a9aa[_0x7c73('0xb3')](_0x10789f);_0x19a9aa[_0x7c73('0xc0')]({'active':![],'ContactId':_0x19a9aa[_0x7c73('0x21')][_0x303d8a][_0x7c73('0xd3')],'ListId':_0x19a9aa[_0x7c73('0x21')][_0x303d8a][_0x7c73('0xd4')],'VoiceQueueId':_0x19a9aa[_0x7c73('0x21')][_0x303d8a][_0x7c73('0xd6')]||undefined,'CampaignId':_0x19a9aa['actions'][_0x303d8a][_0x7c73('0xd7')]||undefined})[_0x7c73('0xb9')](loggerCatch(_0x7c73('0x1e5')));delete _0x19a9aa[_0x7c73('0x21')][_0x303d8a];});}else{loggerBooked['info']('[booked][checkContactBlack][else]',JSON[_0x7c73('0x47')](_0x10789f[_0x7c73('0x12c')]),_0x7c73('0x1e4'),_0x10789f[_0x7c73('0x3b')]);_0x19a9aa[_0x7c73('0xb3')](_0x10789f);_0x19a9aa[_0x7c73('0xc0')]({'active':![],'ContactId':_0x19a9aa[_0x7c73('0x21')][_0x303d8a][_0x7c73('0xd3')],'ListId':_0x19a9aa[_0x7c73('0x21')][_0x303d8a][_0x7c73('0xd4')],'VoiceQueueId':_0x19a9aa[_0x7c73('0x21')][_0x303d8a][_0x7c73('0xd6')]||undefined,'CampaignId':_0x19a9aa[_0x7c73('0x21')][_0x303d8a][_0x7c73('0xd7')]||undefined})[_0x7c73('0xb9')](loggerCatch(_0x7c73('0x1e5')));delete _0x19a9aa[_0x7c73('0x21')][_0x303d8a];}}else{return _0x19a9aa[_0x7c73('0x1e6')](_0x10789f,_0xd9a750);}}else{if(getDiff(_0xd9a750[_0x7c73('0x1e7')])<_0x10789f[_0x7c73('0x1e8')]*0x3c){if(_0xd9a750[_0x7c73('0x1e9')]&&!_0xd9a750[_0x7c73('0x1e9')][_0x7c73('0x1ea')]){_0x19a9aa[_0x7c73('0x1c')]['run'](_0xd9a750['id'])[_0x7c73('0x1b')](function(){_0x19a9aa[_0x7c73('0xb3')](_0x10789f);});}else{_0x19a9aa[_0x7c73('0xc1')]({'active':![]},_0xd9a750['id'],0x1)[_0x7c73('0x1b')](function(){_0x19a9aa[_0x7c73('0xb3')](_0x10789f);});}}else{_0x10789f[_0x7c73('0x67')]+=0x1;_0x19a9aa[_0x7c73('0xb3')](_0x10789f);if(_0x10789f[_0x7c73('0x1eb')]){_0x19a9aa[_0x7c73('0xc0')]({'active':![],'recallme':![],'UserId':null,'ContactId':_0xd9a750[_0x7c73('0xd3')],'ListId':_0xd9a750[_0x7c73('0xd4')],'VoiceQueueId':_0xd9a750[_0x7c73('0xd6')]||undefined,'CampaignId':_0xd9a750[_0x7c73('0xd7')]||undefined})[_0x7c73('0xb9')](loggerCatch(_0x7c73('0x1ec')));_0x19a9aa[_0x7c73('0xcb')](createObjHistory(_0x10789f,_0xd9a750,_0x7c73('0x1ed'),0x17,_0x7c73('0x1ee')))[_0x7c73('0xb9')](loggerCatch(_0x7c73('0x1ef')));}else{_0x19a9aa[_0x7c73('0xd1')](createObjHistory(_0x10789f,_0xd9a750,_0x7c73('0x1f0'),0x16,_0x7c73('0x1f1')),'[Originate][HistoryRecallClose][historyCatch]',_0x7c73('0x1f2'));}}}}else{_0x10789f[_0x7c73('0x5f')]+=0x1;_0x19a9aa[_0x7c73('0xd1')](createObjHistory(_0x10789f,_0xd9a750,'BLACKLIST',0xd,'Blacklist'),_0x7c73('0x1f3'),_0x7c73('0x1f4'));throw _0x7c73('0x1f5');}};};Dialer[_0x7c73('0x18')][_0x7c73('0x158')]=function(_0x31639e){var _0x900c2b=this;var _0x2e5eb9=_0x31639e[_0x7c73('0x1f6')]-_0x31639e[_0x7c73('0x72')]-_0x31639e['temp'];emitCampaignSummary(_0x31639e);if(_0x2e5eb9>0x0){if(_0x2e5eb9>this['maxNumberOriginate']){_0x2e5eb9=this[_0x7c73('0x20')];}_0x31639e[_0x7c73('0xc4')]+=_0x2e5eb9;this['getContactDialerIvr'](_0x31639e['id'],_0x2e5eb9,_0x31639e[_0x7c73('0x1f7')],_0x31639e)[_0x7c73('0xb8')](function(_0x4a9b34){_0x31639e['temp']-=_0x2e5eb9;_0x31639e[_0x7c73('0xc4')]=_0x31639e['temp']>0x0?_0x31639e[_0x7c73('0xc4')]:0x0;if(!checkContactEmpty(_0x4a9b34)){_0x31639e[_0x7c73('0x3d')]=_0x7c73('0xa0');logger[_0x7c73('0x7b')]('[getContactCampaign2][Empty]'+_0x31639e[_0x7c73('0x3b')]);}else{_0x31639e[_0x7c73('0x72')]+=_0x4a9b34[_0x7c73('0x130')];_0x31639e[_0x7c73('0x3d')]=_0x7c73('0x1f8');for(var _0x5d8b12=0x0;_0x5d8b12<_0x4a9b34['length'];_0x5d8b12+=0x1){_0x31639e[_0x7c73('0x1f9')]+=0x1;if(_[_0x7c73('0xae')](_0x4a9b34[_0x5d8b12])||_[_0x7c73('0xae')](_0x4a9b34[_0x5d8b12][_0x7c73('0x165')])||_[_0x7c73('0xae')](_0x4a9b34[_0x5d8b12][_0x7c73('0x165')][_0x7c73('0x166')])){_0x900c2b['emptyContact']('[actionOriginate]\x20',_0x31639e,_0x4a9b34[_0x5d8b12]);}else{_0x900c2b[_0x7c73('0xbc')](_[_0x7c73('0xd2')](_0x4a9b34[_0x5d8b12],['CampaignId','Contact.phone']))[_0x7c73('0xb8')](_0x900c2b['checkContactBlack'](_0x31639e,_0x4a9b34[_0x5d8b12]))['catch'](_0x900c2b[_0x7c73('0xcf')]('[actionOriginateIvr]\x20',_0x31639e));}}}})[_0x7c73('0xb9')](loggerGetContactDialer(_0x7c73('0x1fa'),_0x31639e,_0x2e5eb9));}};Dialer[_0x7c73('0x18')][_0x7c73('0x154')]=function(_0x150c55,_0x2284e4){var _0x4de259=this;var _0x4d2273=[];var _0x673a56=_0x2284e4>=0x1?_0x2284e4:0x1;if(_0x150c55[_0x7c73('0x59')]===_0x7c73('0x1e2')){_0x673a56=0x1;}var _0x4ce2df=Math[_0x7c73('0x1bf')](_0x150c55[_0x7c73('0x4f')]*_0x673a56)-_0x150c55[_0x7c73('0x72')]-_0x150c55['temp'];emitVoiceQueueSummary(_0x150c55);if(_0x150c55[_0x7c73('0x1fb')]>0x0){var _0x182bce=_0x150c55[_0x7c73('0x1fb')]-_0x150c55[_0x7c73('0x72')]-_0x150c55[_0x7c73('0x54')]-_0x150c55['temp']-_0x150c55[_0x7c73('0x51')];if(_0x4ce2df>_0x182bce){_0x4ce2df=_0x182bce;}}if(_0x4ce2df>0x0){if(_0x150c55[_0x7c73('0x59')]===_0x7c73('0x1e2')){_0x4ce2df=0x1;}if(_0x4ce2df>this[_0x7c73('0x20')]){_0x4ce2df=this[_0x7c73('0x20')];}_0x150c55['temp']+=_0x4ce2df;for(var _0x50827d in this[_0x7c73('0x128')]){if(typeof this[_0x7c73('0x128')][_0x50827d]!==_0x7c73('0x9a')){if(this[_0x7c73('0x128')][_0x50827d][_0x7c73('0xa7')]===_0x7c73('0x1fc')&&this[_0x7c73('0x128')][_0x50827d][_0x7c73('0xb0')]===_0x7c73('0xdd')){_0x4d2273[_0x7c73('0x12a')](this['agents'][_0x50827d]['id']);}}}this[_0x7c73('0xc3')](_0x150c55['id'],_0x4d2273,_0x4ce2df,_0x150c55[_0x7c73('0x1f7')],_0x150c55)[_0x7c73('0xb8')](function(_0x5ad25e){_0x150c55['temp']-=_0x4ce2df;_0x150c55[_0x7c73('0xc4')]=_0x150c55[_0x7c73('0xc4')]>0x0?_0x150c55[_0x7c73('0xc4')]:0x0;if(!checkContactEmpty(_0x5ad25e)){_0x4de259[_0x7c73('0xb6')](_0x150c55)[_0x7c73('0xb8')](sendMessageReschedule(_0x150c55))[_0x7c73('0xb9')](loggerCatch('[countReScheduled]\x20'));}else{_0x150c55['originated']+=_0x5ad25e[_0x7c73('0x130')];_0x150c55['message']=_0x150c55[_0x7c73('0x59')]===_0x7c73('0x1e2')?'ACTIVE':_0x7c73('0x1f8');for(var _0x16dc34=0x0;_0x16dc34<_0x5ad25e[_0x7c73('0x130')];_0x16dc34+=0x1){if(_['isNil'](_0x5ad25e[_0x16dc34])||_[_0x7c73('0xae')](_0x5ad25e[_0x16dc34][_0x7c73('0x165')])||_[_0x7c73('0xae')](_0x5ad25e[_0x16dc34][_0x7c73('0x165')]['phone'])){_0x4de259['emptyContact'](_0x7c73('0x1fd'),_0x150c55,_0x5ad25e[_0x16dc34]);}else{_0x4de259[_0x7c73('0xba')](_['pick'](_0x5ad25e[_0x16dc34],[_0x7c73('0xd6'),_0x7c73('0x1fe')]))[_0x7c73('0xb8')](_0x4de259[_0x7c73('0x1e0')](_0x150c55,_0x5ad25e[_0x16dc34]))[_0x7c73('0xb9')](_0x4de259[_0x7c73('0xcf')](_0x7c73('0x1fd'),_0x150c55));}}}})['catch'](loggerGetContactDialer(_0x7c73('0x1ff'),_0x150c55,_0x4ce2df));}};Dialer['prototype'][_0x7c73('0x93')]=function(_0xed724f){if(_0xed724f[_0x7c73('0x1fb')]>0x0){var _0x4a0ace=_0xed724f['dialLimitQueue']-_0xed724f[_0x7c73('0x72')]-_0xed724f[_0x7c73('0x54')];if(_0x4a0ace>0x0){this['tryOriginatePredictive'](_0xed724f);}else{loggerPredictiveCalls['info']('[handlePredictive][limitChannel]');}}else{this[_0x7c73('0x200')](_0xed724f);}};Dialer['prototype'][_0x7c73('0x200')]=function(_0x4d5916){var _0x5716c3=this;var _0x128854=[];_0x4d5916['originated']+=0x1;for(var _0x4d005c in this[_0x7c73('0x128')]){if(typeof this[_0x7c73('0x128')][_0x4d005c]!=='undefined'){if(this[_0x7c73('0x128')][_0x4d005c]['state']==='not_inuse'&&this[_0x7c73('0x128')][_0x4d005c][_0x7c73('0xb0')]===_0x7c73('0xdd')){_0x128854[_0x7c73('0x12a')](this[_0x7c73('0x128')][_0x4d005c]['id']);}}}this['getContactDialer'](_0x4d5916['id'],_0x128854,0x1,_0x4d5916[_0x7c73('0x1f7')],_0x4d5916)[_0x7c73('0xb8')](function(_0x5b6f3a){if(!checkContactEmpty(_0x5b6f3a)){checkContactLowerLimitOriginate(_0x4d5916,0x1,0x0);_0x5716c3[_0x7c73('0xb6')](_0x4d5916)[_0x7c73('0xb8')](sendMessageReschedule(_0x4d5916))[_0x7c73('0xb9')](loggerCatch(_0x7c73('0x201')));}else{_0x4d5916[_0x7c73('0x3d')]='RUNNING';if(_[_0x7c73('0xae')](_0x5b6f3a[0x0])||_[_0x7c73('0xae')](_0x5b6f3a[0x0][_0x7c73('0x165')])||_[_0x7c73('0xae')](_0x5b6f3a[0x0][_0x7c73('0x165')]['phone'])){_0x5716c3[_0x7c73('0xd0')]('[actionOriginate]\x20',_0x4d5916,_0x5b6f3a[0x0]);}else{_0x5716c3[_0x7c73('0xba')](_['pick'](_0x5b6f3a[0x0],[_0x7c73('0xd6'),_0x7c73('0x1fe')]))[_0x7c73('0xb8')](_0x5716c3['checkContactBlack'](_0x4d5916,_0x5b6f3a[0x0]))[_0x7c73('0xb9')](_0x5716c3[_0x7c73('0xcf')](_0x7c73('0x202'),_0x4d5916));}}})['catch'](loggerGetContactDialer(_0x7c73('0x203'),_0x4d5916,0x1));emitVoiceQueueSummary(_0x4d5916);};Dialer[_0x7c73('0x18')]['abandonmentRate']=function(_0x144a20,_0x33794b,_0x29ffe0,_0x3f931d,_0x43a105,_0x29995e){loggerPredictive[_0x7c73('0x7b')](_0x7c73('0x204'));loggerPredictive['info'](_0x7c73('0x205'),_0x144a20);loggerPredictive[_0x7c73('0x7b')](_0x7c73('0x206'),_0x33794b);loggerPredictive['info'](_0x7c73('0x207'),_0x29ffe0);loggerPredictive['info'](_0x7c73('0x208'),_0x3f931d);loggerPredictive[_0x7c73('0x7b')](_0x7c73('0x209'),_0x43a105);loggerPredictive[_0x7c73('0x7b')](_0x7c73('0x82'));return new BPromise(function(_0x32cbd8,_0x4551b8){if(_0x144a20<=0x0||isNaN(_0x144a20)){return _0x4551b8(msgResponse(_0x7c73('0x20a'),_0x7c73('0x46'),_0x7c73('0x20b')+_0x144a20));}if(_0x29ffe0<=0x0||isNaN(_0x29ffe0)){return _0x4551b8(msgResponse('[abandonmentRate]',_0x7c73('0x46'),_0x7c73('0x20c')+_0x29ffe0));}if(_0x3f931d<=0x0||isNaN(_0x3f931d)){return _0x4551b8(msgResponse(_0x7c73('0x20a'),'Error','p\x20=\x20'+_0x3f931d));}if(_0x33794b<=0x0||isNaN(_0x33794b)){return _0x4551b8(msgResponse(_0x7c73('0x20a'),_0x7c73('0x46'),_0x7c73('0x20d')+_0x33794b));}if(_0x43a105<=0x0||isNaN(_0x43a105)){return _0x4551b8(msgResponse(_0x7c73('0x20a'),_0x7c73('0x46'),_0x7c73('0x20e')+_0x43a105));}_0x29995e=_0x29995e||0x0;var _0x302e88=0x1/_0x29ffe0;var _0x3db71c=0x0;var _0x595bd8=0x0;var _0x1d60b1=0x0;var _0x5a4491=0x0;for(var _0x1ab4cf=0x0;_0x1d60b1<_0x43a105;_0x1ab4cf+=0x1){_0x595bd8=_0x1ab4cf/_0x33794b;_0x3db71c=(_0x3f931d*_0x595bd8+_0x29995e)/_0x302e88;_0x1d60b1=erlangb(_0x3db71c,_0x144a20);_0x5a4491=_0x3db71c/_0x144a20*(0x1-erlangb(_0x3db71c,_0x144a20));}return _0x32cbd8({'erlangCalls':_0x1ab4cf,'erlangCallToSecond':_0x33794b/_0x1ab4cf,'erlangAbandonmentRate':_0x1d60b1,'erlangBusyFactor':_0x5a4491});});};Dialer[_0x7c73('0x18')]['busyFactor']=function(_0xb66956,_0xd375b7,_0x15e7e5,_0x404a9c,_0x3b9284,_0x4608d1){loggerPredictive[_0x7c73('0x7b')](_0x7c73('0x20f'));loggerPredictive[_0x7c73('0x7b')]('M:\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',_0xb66956);loggerPredictive[_0x7c73('0x7b')](_0x7c73('0x206'),_0xd375b7);loggerPredictive[_0x7c73('0x7b')](_0x7c73('0x207'),_0x15e7e5);loggerPredictive[_0x7c73('0x7b')](_0x7c73('0x208'),_0x404a9c);loggerPredictive[_0x7c73('0x7b')](_0x7c73('0x210'),_0x3b9284);loggerPredictive['info'](_0x7c73('0x82'));return new BPromise(function(_0x55105a,_0xf7b5b2){if(_0xb66956<=0x0||isNaN(_0xb66956)){return _0xf7b5b2(msgResponse('[busyFactor]',_0x7c73('0x46'),_0x7c73('0x20b')+_0xb66956));}if(_0x15e7e5<=0x0||isNaN(_0x15e7e5)){return _0xf7b5b2(msgResponse(_0x7c73('0x211'),_0x7c73('0x46'),_0x7c73('0x20c')+_0x15e7e5));}if(_0x404a9c<=0x0||isNaN(_0x404a9c)){return _0xf7b5b2(msgResponse(_0x7c73('0x211'),_0x7c73('0x46'),_0x7c73('0x212')+_0x404a9c));}if(_0xd375b7<=0x0||isNaN(_0xd375b7)){return _0xf7b5b2(msgResponse('[busyFactor]',_0x7c73('0x46'),_0x7c73('0x20d')+_0xd375b7));}if(_0x3b9284<=0x0||isNaN(_0x3b9284)){return _0xf7b5b2(msgResponse(_0x7c73('0x211'),_0x7c73('0x46'),_0x7c73('0x213')+_0x3b9284));}_0x4608d1=_0x4608d1||0x0;var _0x2c3b09=0x1/_0x15e7e5;var _0xc36ab6=0x0;var _0x453b9b=0x0;var _0x8df09f=0x0;var _0x38c269=0x0;for(var _0x2587f7=0x0;_0x38c269<_0x3b9284;_0x2587f7+=0x1){_0x453b9b=_0x2587f7/_0xd375b7;_0xc36ab6=(_0x404a9c*_0x453b9b+_0x4608d1)/_0x2c3b09;_0x8df09f=erlangb(_0xc36ab6,_0xb66956);_0x38c269=_0xc36ab6/_0xb66956*(0x1-erlangb(_0xc36ab6,_0xb66956));}return _0x55105a({'erlangCalls':_0x2587f7,'erlangCallToSecond':_0xd375b7/_0x2587f7,'erlangAbandonmentRate':_0x8df09f,'erlangBusyFactor':_0x38c269});});};module[_0x7c73('0x214')]=Dialer;
\ No newline at end of file
+var _0x851a=['erlangCalls','erlangCallToSecond','erlangAbandonmentRate','erlangBusyFactor','Trunk','active','callerid','format','voice:queue:%s','voice_queue:save','ivr','campaign:ivr:%s','campaign:save','isEmpty','info','-----\x20Stats\x20Predictive\x20---','Total\x20Calls:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','Answered\x20Calls:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','predictiveIntervalAnsweredCalls','Dropped\x20Timeout:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','Dropped\x20Exit:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','predictiveIntervalDroppedCallsCallersExit','AVG\x20Hold\x20Time:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','AVG\x20Talk\x20Time:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','---------------------------','Avg\x20Talk\x20Time\x20is\x20not\x20enough\x20for\x20predictive','Avg\x20Hold\x20Time\x20is\x20not\x20enough\x20for\x20predictive','Total\x20Calls\x20are\x20not\x20enough\x20for\x20predictive','---------\x20ErlangB\x20---------','Scheduled\x20Calls:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','Drop\x20Rate:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','Agent\x20Busy\x20Factor:\x20\x20\x20\x20\x20\x20\x20\x20\x20','clearing\x20variable\x20start\x20progressive','handlePredictive','clearing\x20variable\x20handle\x20predictive','string','\x22%s\x22\x20<%s>','\x22\x22\x20<>','error','inspect','length','[decremetOriginate]\x20object\x20originated\x20is\x20negative','[decremetOriginate]\x20is\x20null\x20or\x20undefined','contactsRescheduled','RESCHEDULED_CONTACTS','[getContactDialer2][ReScheduled]','contacts','AVAILABLE_CONTACTS_FINISHED','sendMessageOneNotActive','is\x20not\x20active','IS_DISACTIVED','is\x20disactive','[syncQueueSummary]\x20Campaign\x20Ivr:\x20','state','statedesc','endtime','starttime','loopClearZombieChannels','clearZombieChannels','[actions]','undefined','Action','status','channel','catch','No\x20such\x20channel','updateOriginated','queue','[Dialer][checkChannel]','[Dialer][checkChannel][ivr]','resolve','then','[countReScheduled]\x20','[checkIsBlackList]\x20','checkIsBlackListIvr','[checkIsBlackListIvr]\x20','avgHandleTime','[averageHandleTime]\x20','rescheduleContact','[rescheduleContact]\x20','unlockContact','getContactDialer','temp','[getContactDialer]\x20','getContactDialerIvr','getVoiceQueueRtPauses','moveContactManagedDialer','[moveContactManagedDialer]\x20','createHistory','[createHistory]\x20','[updateOriginated]\x20object\x20originated\x20is\x20negative','[updateOriginated]\x20is\x20null\x20or\x20undefined','loggerHandler','emptyContact','notFound','saveInDb','merge','pick','ContactId','ListId','UserId','VoiceQueueId','CampaignId','[emptyContact][createHistory]','[emptyContact]','Success','isTrunkReachable','SIP/%s','uniqueid','isNil','variable','amdstatus','xcally-motion-dialer','dialAMDActive','value','HangupInAMD','membername','AMD','emit','custom:amd','buildObj','amd','[syncHangupInAMD][createHistory]','MACHINE','outboundAnswerAgiCallsDay','Machine','countmachineretry','countglobal','countcongestionretry','countnosuchnumberretry','countabandonedretry','countagentrejectretry','dialGlobalMaxRetry','stateGlobal','reason19\x20machine....','dialMachineMaxRetry','createStateFinal','reason\x2019\x20machine....','add','dialMachineRetryFrequency','minutes','YYYY-MM-DD\x20HH:mm:ss','[rescheduleContact][Machine]','[syncHangupInAMDIvr][createHistory]','[syncHangupInAMDIvr]','[syncAgentComplete][createHistory][0]','countdropretry','ivrAnswerCallsDay','[syncHangupIvr][createHistory]','AnswerAGI','AGI','[syncHangupIvr]','dialQueueProject','reason','agent','agiafterat','dialAgiAfterHangupAgent','[syncAgentComplete][createHistory]','answertime','queueCallerAbandonCreateState','droptime','responsetime','Drop','dropreason','dialQueueProject2','dialDropMaxRetry','dialDropRetryFrequency','[rescheduleContact][Drop]','calleridname','calleridnum','[syncAgentComplete][createHistory][10]','CALLEREXIT','[rescheduleContact][Abandoned]','Abandoned','[syncAgentComplete][createHistory][11]','actionid','paused','stateinterface','locked','push','idHopper','queueStatusComplete','[booked][unlockQueueStatus]','[Catch][Preview][syncQueueStatusComplete]','[unlock][syncQueueStatusComplete]','_rr','unlockRR','[booked][RR]','contactAgent-idHopper:\x20','run','Agent:\x20','[booked][unlock3]','[unlock3][syncQueueStatusComplete]','syncCampaigns','checkIsTrunkReachable','TrunkBackup','checkIfTime','ifTime','Failure','timezones','\x20Timezone\x20unknow\x20','command','iftime\x20%s,%s','interval','content','indexOf','true','all','some','GLOBAL_INTERVAL_IS_OVERTIME','[ifTime][promiseAll]','Global:\x20','\x20Interval\x20is\x20overtime:\x20','Timezone:\x20','checkDialMethod','dialMethod','progressive','power','handlePower','dialPowerLevel','booked','Queue','method\x20not\x20recognized','launchHandleIvr','handleIvr','dialGlobalInterval','dialTimezone','checkIfTimeIntervals','[syncQueueSummary]','[syncCampaigns]','\x5cw{0,','pow','replace','match','actionOriginate','object','originate','Contact','phone','contact\x20is\x20undefine','getCaller','\x22agi://%s/square,%s\x22','NONE','\x22%s,%s%s,,,%s\x22','dialQueueOptions','dialer','XMD-AMDINITIALSILENCE','dialAMDGreeting','XMD-AMDAFTERGREETINGSILENCE','XMD-AMDTOTALANALYSISTIME','dialAMDMinWordLength','XMD-AMDMAXIMUMNUMBEROFWORDS','dialAMDMaximumNumberOfWords','XMD-AMDSILENCETHRESHOLD','XMD-AMDMAXIMUMWORDLENGTH','dialAMDMaximumWordLength','XMD-VOICEQUEUEID','XMD-CAMPAIGNID','createdAt','updatedAt','XMD-','toUpper','XMD-ORIGINATECALLERIDNAME','originatecalleridname','XMD-ORIGINATECALLERIDNUM','originatecalleridnum','dialPrefix','trim','dialCutDigit','substring','[originateError]:\x20%s','OriginateError','[originate][error]','originate\x20action\x20Error','getQueue','response','callProgressDetecting','[callProgressDetecting]\x20','countbusyretry','countnoanswerretry','dialNoAnswerMaxRetry','dialBusyMaxRetry','dialBusyRetryFrequency','dialCongestionMaxRetry','dialCongestionRetryFrequency','[rescheduleContact]\x20[Congestion]','dialNoSuchNumberMaxRetry','dialNoSuchNumberRetryFrequency','dialAbandonedRetryFrequency','dialAgentRejectMaxRetry','dialAgentRejectRetryFrequency','[rescheduleContact][AgentReject]','entity\x20is\x20undefine','NoSuchNumber','custom:agentnosuchnumber','nosuchnumber','reason\x200\x20no\x20such\x20number....','NoAnswer','noanswer','[syncAgentComplete][createHistory][3]','checkRetriveMax','reason\x203\x20ringing\x20no\x20answer','outboundBusyCallsDay','Busy','custom:agentbusy','busy','[syncAgentComplete][createHistory][5]','Congestion','custom:agentcongestion','congestion','[syncAgentComplete][createHistory][8]','reason\x208\x20congestion','outboundAbandonedCallsDay','dialAbandonedMaxRetry','reason\x2011\x20abandoned','AgentReject','custom:agentreject','agentreject','[syncAgentComplete][createHistory][20]','reason\x2020\x20agentreject','[syncAgentComplete][createHistory][?]','Global','[callProgressDetecting]','[moveContactManagedDialer][0]','round','predictiveIntervalAvailable','predictiveIntervalMaxThreshold','predictiveIntervalMinThreshold','[startMethodPredictive][StartProgressive]','check\x20handlePredictive\x20is\x20not\x20undefine','collection\x20data\x20in\x20progressive\x20at','[startMethodPredictive][StartProgressive][Loop]','dialPredictiveOptimization','dropRate','Dropped\x20calls\x20day','[stopMethodPredictive][ReStartProgressive][ExceededDropInterval]','Max\x20Drop\x20','Drop\x20in\x20this\x20interval','dialPredictiveInterval','started\x20in\x20predictive\x20at','averageHandleTime','getDataPredictive','startMethodPredictive','Predictive\x20after\x20first\x20interval','recalculate\x20predictive\x20at','switch\x20in\x20progressive\x20because\x20available\x20agents\x20(',')\x20are\x20less\x20than\x20threshold\x20(',')\x20are\x20more\x20than\x20threshold\x20(','Unknown\x20Predictive','check\x20failure','getDataPredictiveOld','outboundQueuePauses','abandonmentRate','[CatchErlangB]','agentBusyFactor','busyFactor','[getDataPredictive]','floor','one\x20call\x20every:','[handlePredictive]','fail\x20to\x20scheduled\x20calls','checkContactBlack','recallme','[booked][checkContactBlack]','queueStatusComplete:\x20','Queue:\x20','[unlockOriginate][syncQueueStatusComplete]','scheduledat','dialRecallMeTimeout','Agent','voicePause','dialRecallInQueue','[rescheduleContact][dialRecallInQueue]','RecallInQueue','[Originate][HistoryDialRecallInQueue][historyCatch]','RecallFailedTimeout','[Originate][HistoryRecallClose][historyCatch]','[Originate][HistoryRecallClose]','BLACKLIST','[Originate][MoveBlacklist]','inBlackList','limitCalls','dialOrderByScheduledAt','RUNNING','ivrTotalCallsDays','[actionOriginate]\x20','Contact.phone','[actionOriginateIvr]\x20','dialLimitQueue','not_inuse','reachable','countReScheduled','ACTIVE','[getContactDialer2]','tryOriginatePredictive','checkIsBlackList','[getContactDialerPredictive]','--------\x20Drop\x20Rate\x20--------','M:\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','Ts:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','P:\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','Amax:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','m\x20=\x20','[abandonmentRate]','Ts\x20=\x20','p\x20=\x20','interval\x20=\x20','Amax\x20=\x20','[busyFactor]','Umin\x20=\x20','exports','util','bluebird','uuid','moment','md5','ioredis','../preview/util/util','../../../config/environment/','../../../config/logger','predictive','syncQueueSummary','../ami','redis','localhost','../rpc/cmHopper','../rpc/cmHopperHistory','../rpc/cmHopperBlack','../rpc/voiceQueueRt','./action','./history','./final','./agentComplete','./queueCallerAbandon','./hangup','env','XCALLY_IP_AGI','127.0.0.1','rrmemory','roundrobin','prototype','enqueue','tail','finally','sequence','preview','voiceQueues','campaigns','agents','trunks','maxNumberOriginate','channels','actions','contactsId','uniqueId','startPredictive','startProgressive','queueBooked','queueBookedRR','syncAgentConnect','bind','queuecallerabandon','syncQueueCallerAbandon','originateresponse','syncOriginateResponse','agentcomplete','syncAgentComplete','custom:queuesummary','hangup','syncHangup','newexten','syncVarSet','syncQueueMember','queuestatuscomplete','syncQueueStatusComplete','loopCampaigns','isUndefined','message','AGENTS_NOT_LOGGED','name','\x20AGENTS\x20NOT\x20LOGGED','NOT_ACTIVE','\x20NOT\x20Active','INTERVAL_IS_NULL','\x20INTERVAL_IS_NULL','Interval','Intervals','[ifTime][Action]','Error','stringify','milliseconds','diff','outbound','strategy','answered','available','loggedIn','pTalking','sumBillable','sumDuration','sumHoldTime','talking','total','type','unmanaged','abandoned','waiting','loggedInDb','dialActive','dialOriginateCallerIdName','dialOriginateCallerIdNumber','dialOriginateTimeout','outboundAnswerCallsDay','outboundBlacklistCallsDay','outboundCongestionCallsDay','outboundDropCallsDayACS','outboundDropCallsDayCallersExit','outboundDropCallsDayTimeout','outboundNoAnswerCallsDay','outboundNoSuchCallsDay','outboundOriginateFailureCallsDay','outboundReCallsDay','outboundUnknownCallsDay','predictiveIntervalAvgHoldtime','predictiveIntervalAvgTalktime','predictiveIntervalDroppedCallsTimeout','predictiveIntervalErlangCalls','predictiveIntervalErlangCallsDroppedCalls','predictiveIntervalHitRate','predictiveIntervalMultiplicativeFactor','predictiveIntervalPauses','predictiveIntervalTotalCalls','originated'];(function(_0x57b4c1,_0x4ab829){var _0x30d55e=function(_0x21a0b0){while(--_0x21a0b0){_0x57b4c1['push'](_0x57b4c1['shift']());}};_0x30d55e(++_0x4ab829);}(_0x851a,0x19b));var _0xa851=function(_0x45783c,_0x49c56d){_0x45783c=_0x45783c-0x0;var _0x1161da=_0x851a[_0x45783c];return _0x1161da;};'use strict';var util=require(_0xa851('0x0'));var _=require('lodash');var BPromise=require(_0xa851('0x1'));var uuid=require(_0xa851('0x2'));var moment=require(_0xa851('0x3'));var rr=require('rr');var md5=require(_0xa851('0x4'));var Redis=require(_0xa851('0x5'));var ut=require(_0xa851('0x6'));var config=require(_0xa851('0x7'));var logger=require(_0xa851('0x8'))('dialer');var loggerBooked=require(_0xa851('0x8'))('booked');var loggerPredictive=require(_0xa851('0x8'))(_0xa851('0x9'));var loggerPredictiveCalls=require(_0xa851('0x8'))('predictiveCalls');var loggerSyncQueueSummary=require(_0xa851('0x8'))(_0xa851('0xa'));var ami=require(_0xa851('0xb'));config[_0xa851('0xc')]=_['defaults'](config[_0xa851('0xc')],{'host':_0xa851('0xd'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0xa851('0xc')]));var cmHopper=require(_0xa851('0xe'));var cmHopperHistory=require(_0xa851('0xf'));var cmHopperBlack=require(_0xa851('0x10'));var voiceQueueRt=require(_0xa851('0x11'));var Action=require(_0xa851('0x12'));var History=require(_0xa851('0x13'));var Final=require(_0xa851('0x14'));var AgentComplete=require(_0xa851('0x15'));var QueueCallerAbandon=require(_0xa851('0x16'));var Hangup=require(_0xa851('0x17'));var ipAgi=process[_0xa851('0x18')][_0xa851('0x19')]||_0xa851('0x1a');var strategy={'rrmemory':_0xa851('0x1b'),'roundrobin':_0xa851('0x1c')};var Sequence=function(){};Sequence[_0xa851('0x1d')][_0xa851('0x1e')]=function(_0x5d5e20){this[_0xa851('0x1f')]=this[_0xa851('0x1f')]?this[_0xa851('0x1f')][_0xa851('0x20')](_0x5d5e20):_0x5d5e20();};function Dialer(_0x5be85d,_0x905e2a){this[_0xa851('0x21')]=new Sequence();this[_0xa851('0x22')]=_0x905e2a;this[_0xa851('0x23')]=_0x5be85d[_0xa851('0x23')];this['campaigns']=_0x5be85d[_0xa851('0x24')];this['agents']=_0x5be85d[_0xa851('0x25')];this[_0xa851('0x26')]=_0x5be85d[_0xa851('0x26')];this[_0xa851('0x27')]=config[_0xa851('0x27')]||0x2;this[_0xa851('0x28')]={};this[_0xa851('0x29')]={};this[_0xa851('0x2a')]={};this[_0xa851('0x2b')]={};this['optionPredictive']={};this[_0xa851('0x2c')]={};this[_0xa851('0x2d')]={};this['ivrOriginated']={};this[_0xa851('0x2e')]={};this[_0xa851('0x2f')]={};ami['on']('agentconnect',this[_0xa851('0x30')][_0xa851('0x31')](this));ami['on'](_0xa851('0x32'),this[_0xa851('0x33')][_0xa851('0x31')](this));ami['on'](_0xa851('0x34'),this[_0xa851('0x35')][_0xa851('0x31')](this));ami['on'](_0xa851('0x36'),this[_0xa851('0x37')][_0xa851('0x31')](this));ami['on'](_0xa851('0x38'),this['syncQueueSummary'][_0xa851('0x31')](this));ami['on'](_0xa851('0x39'),this[_0xa851('0x3a')]['bind'](this));ami['on'](_0xa851('0x3b'),this['syncNewExten'][_0xa851('0x31')](this));ami['on']('varset',this[_0xa851('0x3c')][_0xa851('0x31')](this));ami['on']('queuemember',this[_0xa851('0x3d')][_0xa851('0x31')](this));ami['on'](_0xa851('0x3e'),this[_0xa851('0x3f')][_0xa851('0x31')](this));this[_0xa851('0x40')]();this['loopClearZombieChannels']();}function isNotNull(_0x356bc2){return _0x356bc2!==null&&!_[_0xa851('0x41')](_0x356bc2);}function checkIsLoggedIn(_0x8ceed0,_0x4a027b){return function(){if(_0x4a027b<=0x0){_0x8ceed0[_0xa851('0x42')]=_0xa851('0x43');throw _0x8ceed0[_0xa851('0x44')]+_0xa851('0x45');}};}function isActive(_0x25ce47){return _0x25ce47;}function checkIsActive(_0x2ede9f,_0x1b35f8){return function(){if(!isActive(_0x1b35f8)){_0x2ede9f[_0xa851('0x42')]=_0xa851('0x46');throw _0x2ede9f[_0xa851('0x44')]+_0xa851('0x47');}};}function checkInterval(_0x3e0b47){return function(){if(!isNotNull(_0x3e0b47['Interval'])){_0x3e0b47[_0xa851('0x42')]=_0xa851('0x48');throw _0x3e0b47[_0xa851('0x44')]+_0xa851('0x49');}if(!isNotNull(_0x3e0b47[_0xa851('0x4a')][_0xa851('0x4b')])){_0x3e0b47['message']='INTERVAL_IS_NULL';throw _0x3e0b47[_0xa851('0x44')]+_0xa851('0x49');}if(!isNotNull(_['isEmpty'](_0x3e0b47[_0xa851('0x4a')][_0xa851('0x4b')]))){_0x3e0b47[_0xa851('0x42')]=_0xa851('0x48');throw _0x3e0b47[_0xa851('0x44')]+_0xa851('0x49');}};}function msgResponse(_0x2b90fe,_0x22ad29,_0x48000e){return{'action':_0x2b90fe,'response':_0x22ad29,'message':_0x48000e,'stack':_0x48000e};}function myreject(_0x49ab4c){return function(_0x3227a2){return _0x49ab4c(msgResponse(_0xa851('0x4c'),_0xa851('0x4d'),JSON[_0xa851('0x4e')](_0x3227a2)));};}function getSeconds(_0x1a0425,_0x2076fe){var _0x4f2dea=moment(_0x1a0425)[_0xa851('0x4f')](0x0);var _0xec5df4=moment(_0x2076fe)['milliseconds'](0x0);return _0x4f2dea[_0xa851('0x50')](_0xec5df4,'seconds');}function emit(_0x427167,_0x21621f,_0x6a9111){io['to'](_0x427167)['emit'](_0x21621f,_0x6a9111);}function emitVoiceQueueSummary(_0x3bcde2){if(_0x3bcde2['type']===_0xa851('0x51')){var _0x30f594={'id':_0x3bcde2['id'],'name':_0x3bcde2[_0xa851('0x44')],'strategy':_0x3bcde2[_0xa851('0x52')],'answered':_0x3bcde2[_0xa851('0x53')],'available':_0x3bcde2[_0xa851('0x54')],'loggedIn':_0x3bcde2[_0xa851('0x55')],'pTalking':_0x3bcde2[_0xa851('0x56')],'sumBillable':_0x3bcde2[_0xa851('0x57')],'sumDuration':_0x3bcde2[_0xa851('0x58')],'sumHoldTime':_0x3bcde2[_0xa851('0x59')]||0x0,'talking':_0x3bcde2[_0xa851('0x5a')],'total':_0x3bcde2[_0xa851('0x5b')],'type':_0x3bcde2[_0xa851('0x5c')],'unmanaged':_0x3bcde2[_0xa851('0x5d')],'abandoned':_0x3bcde2[_0xa851('0x5e')],'waiting':_0x3bcde2[_0xa851('0x5f')],'loggedInDb':_0x3bcde2[_0xa851('0x60')],'dialActive':_0x3bcde2[_0xa851('0x61')],'dialMethod':_0x3bcde2['dialMethod'],'dialOriginateCallerIdName':_0x3bcde2[_0xa851('0x62')],'dialOriginateCallerIdNumber':_0x3bcde2[_0xa851('0x63')],'dialOriginateTimeout':_0x3bcde2[_0xa851('0x64')],'dialPrefix':_0x3bcde2['dialPrefix'],'outboundAnswerAgiCallsDay':_0x3bcde2['outboundAnswerAgiCallsDay'],'outboundAnswerCallsDay':_0x3bcde2[_0xa851('0x65')],'outboundBlacklistCallsDay':_0x3bcde2[_0xa851('0x66')],'outboundBusyCallsDay':_0x3bcde2['outboundBusyCallsDay'],'outboundCongestionCallsDay':_0x3bcde2[_0xa851('0x67')],'outboundDropCallsDayACS':_0x3bcde2[_0xa851('0x68')],'outboundDropCallsDayCallersExit':_0x3bcde2[_0xa851('0x69')],'outboundDropCallsDayTimeout':_0x3bcde2[_0xa851('0x6a')],'outboundNoAnswerCallsDay':_0x3bcde2[_0xa851('0x6b')],'outboundNoSuchCallsDay':_0x3bcde2[_0xa851('0x6c')],'outboundOriginateFailureCallsDay':_0x3bcde2[_0xa851('0x6d')],'outboundReCallsDay':_0x3bcde2[_0xa851('0x6e')],'outboundRejectCallsDay':_0x3bcde2['outboundRejectCallsDay'],'outboundUnknownCallsDay':_0x3bcde2[_0xa851('0x6f')],'predictiveIntervalAnsweredCalls':_0x3bcde2['predictiveIntervalAnsweredCalls'],'predictiveIntervalAvgHoldtime':_0x3bcde2[_0xa851('0x70')],'predictiveIntervalAvgTalktime':_0x3bcde2[_0xa851('0x71')],'predictiveIntervalDroppedCallsCallersExit':_0x3bcde2['predictiveIntervalDroppedCallsCallersExit'],'predictiveIntervalDroppedCallsTimeout':_0x3bcde2[_0xa851('0x72')],'predictiveIntervalErlangCalls':_0x3bcde2[_0xa851('0x73')],'predictiveIntervalErlangCallsDroppedCalls':_0x3bcde2[_0xa851('0x74')],'predictiveIntervalHitRate':_0x3bcde2[_0xa851('0x75')],'predictiveIntervalMultiplicativeFactor':_0x3bcde2[_0xa851('0x76')],'predictiveIntervalPauses':_0x3bcde2[_0xa851('0x77')],'predictiveIntervalAvailable':_0x3bcde2['predictiveIntervalAvailable'],'predictiveIntervalTotalCalls':_0x3bcde2[_0xa851('0x78')],'message':_0x3bcde2[_0xa851('0x42')],'originated':_0x3bcde2[_0xa851('0x79')],'erlangCalls':_0x3bcde2[_0xa851('0x7a')],'erlangCallToSecond':_0x3bcde2[_0xa851('0x7b')],'erlangAbandonmentRate':_0x3bcde2[_0xa851('0x7c')],'erlangBusyFactor':_0x3bcde2[_0xa851('0x7d')],'startPredictive':_0x3bcde2['startPredictive'],'startProgressive':_0x3bcde2[_0xa851('0x2d')]};if(_0x3bcde2[_0xa851('0x7e')]){_0x30f594['Trunk']={'id':_0x3bcde2[_0xa851('0x7e')]['id'],'name':_0x3bcde2[_0xa851('0x7e')][_0xa851('0x44')],'active':_0x3bcde2[_0xa851('0x7e')][_0xa851('0x7f')],'callerid':_0x3bcde2['Trunk'][_0xa851('0x80')]};}if(_0x3bcde2[_0xa851('0x4a')]){_0x30f594[_0xa851('0x4a')]={'id':_0x3bcde2[_0xa851('0x4a')]['id'],'name':_0x3bcde2[_0xa851('0x4a')][_0xa851('0x44')]};}var _0x578e31=md5(JSON[_0xa851('0x4e')](_0x30f594));if(_0x3bcde2[_0xa851('0x4')]!==_0x578e31){_0x3bcde2['md5']=_0x578e31;emit(util[_0xa851('0x81')](_0xa851('0x82'),_0x30f594['name']),_0xa851('0x83'),_0x30f594);}}}function emitCampaignSummary(_0x1954f8){if(_0x1954f8[_0xa851('0x5c')]===_0xa851('0x84')){emit(util[_0xa851('0x81')](_0xa851('0x85'),_0x1954f8['name']),_0xa851('0x86'),_0x1954f8);}}function checkGetDataPredictive(_0x1c5494){if(isNotNull(_0x1c5494)&&!_[_0xa851('0x87')](_0x1c5494)){loggerPredictive[_0xa851('0x88')](_0xa851('0x89'));loggerPredictive[_0xa851('0x88')](_0xa851('0x8a'),_0x1c5494[_0xa851('0x78')]);loggerPredictive[_0xa851('0x88')](_0xa851('0x8b'),_0x1c5494[_0xa851('0x8c')]);loggerPredictive[_0xa851('0x88')](_0xa851('0x8d'),_0x1c5494[_0xa851('0x72')]);loggerPredictive['info'](_0xa851('0x8e'),_0x1c5494[_0xa851('0x8f')]);loggerPredictive[_0xa851('0x88')](_0xa851('0x90'),_0x1c5494[_0xa851('0x70')]);loggerPredictive[_0xa851('0x88')](_0xa851('0x91'),_0x1c5494[_0xa851('0x71')]);loggerPredictive['info'](_0xa851('0x92'));if(_0x1c5494[_0xa851('0x78')]>0x0){if(!_['isUndefined'](_0x1c5494['predictiveIntervalAvgTalktime'])&&_0x1c5494[_0xa851('0x71')]>0x0){return!![];}loggerPredictive[_0xa851('0x88')](_0xa851('0x93'));if(!_[_0xa851('0x41')](_0x1c5494[_0xa851('0x70')])&&_0x1c5494[_0xa851('0x70')]>0x0){return!![];}loggerPredictive[_0xa851('0x88')](_0xa851('0x94'));}else{loggerPredictive[_0xa851('0x88')](_0xa851('0x95'));}}else{loggerPredictive[_0xa851('0x88')]('History\x20information\x20are\x20empty');}return![];}function mergeDataErlangB(_0x11a8e3){return function(_0x36d312){loggerPredictive[_0xa851('0x88')](_0xa851('0x96'));loggerPredictive[_0xa851('0x88')](_0xa851('0x97'),_0x36d312[_0xa851('0x7a')]);loggerPredictive[_0xa851('0x88')]('One\x20call\x20every:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20',_0x36d312[_0xa851('0x7b')]);loggerPredictive['info'](_0xa851('0x98'),_0x36d312['erlangAbandonmentRate']);loggerPredictive[_0xa851('0x88')](_0xa851('0x99'),_0x36d312[_0xa851('0x7d')]);loggerPredictive['info'](_0xa851('0x98'),_0x36d312['erlangAbandonmentRate']);loggerPredictive['info']('---------------------------');_['merge'](_0x11a8e3,_0x36d312);};}function getDiff(_0xb67e42){var _0x3e6ad2=moment()[_0xa851('0x4f')](0x0);var _0x360670=moment(_0xb67e42)[_0xa851('0x4f')](0x0);return _0x3e6ad2[_0xa851('0x50')](_0x360670,'seconds');}function ifInterval(_0x166f2f,_0x527e51){if(_['isUndefined'](_0x527e51)){return![];}return getDiff(_0x527e51)<_0x166f2f*0x3c;}function freeVariablesPredictive(_0x38fde8){if(isNotNull(_0x38fde8)){if(!_[_0xa851('0x41')](_0x38fde8[_0xa851('0x2d')])){_0x38fde8[_0xa851('0x2d')]=undefined;loggerPredictive[_0xa851('0x88')](_0x38fde8[_0xa851('0x44')],_0xa851('0x9a'));}if(!_[_0xa851('0x41')](_0x38fde8[_0xa851('0x2c')])){_0x38fde8[_0xa851('0x2c')]=undefined;loggerPredictive[_0xa851('0x88')](_0x38fde8[_0xa851('0x44')],'clearing\x20variable\x20start\x20predictive');}if(!_[_0xa851('0x41')](_0x38fde8[_0xa851('0x9b')])){clearInterval(_0x38fde8[_0xa851('0x9b')]);_0x38fde8['handlePredictive']=undefined;loggerPredictive[_0xa851('0x88')](_0x38fde8[_0xa851('0x44')],_0xa851('0x9c'));}}}function erlangb(_0x21cea4,_0x1c518f){if(_0x1c518f===0x0){return 0x0;}var _0x1d08f1=0x1;for(var _0x51d784=0x1;_0x51d784<=_0x1c518f;_0x51d784+=0x1){_0x1d08f1=0x1+_0x1d08f1*_0x51d784/_0x21cea4;}return 0x1/_0x1d08f1;}function isVoiceQueueOutbound(_0x303990){return _0x303990==='outbound';}function isNotPreview(_0x3215fa){return _0x3215fa!==_0xa851('0x22');}function isCampaignIvr(_0x41a54a){return _0x41a54a===_0xa851('0x84');}function getCallerId(_0x1e4214,_0x1bb94c,_0x240d88){if(!_[_0xa851('0x41')](_0x240d88)&&typeof _0x240d88==='string'&&!_[_0xa851('0x87')](_0x240d88)){if(!_['isUndefined'](_0x1bb94c)&&typeof _0x1bb94c===_0xa851('0x9d')&&!_[_0xa851('0x87')](_0x1bb94c)){return util[_0xa851('0x81')]('\x22%s\x22\x20<%s>',_0x1bb94c,_0x240d88);}return util['format'](_0xa851('0x9e'),_0x240d88,_0x240d88);}if(!_['isUndefined'](_0x1e4214)&&typeof _0x1e4214==='string'&&!_[_0xa851('0x87')](_0x1e4214)){return _0x1e4214;}return _0xa851('0x9f');}function loggerCatchQueueSummary(_0x2ad038,_0x230561){return function(_0x1152bf){freeVariablesPredictive(_0x230561);emitVoiceQueueSummary(_0x230561);emitCampaignSummary(_0x230561);loggerSyncQueueSummary[_0xa851('0xa0')](_0x2ad038,util[_0xa851('0xa1')](_0x1152bf,{'showHidden':![],'depth':null}));};}function loggerCatchPredictive(_0x3adebe,_0x3ed29e){return function(_0x5261d1){loggerPredictive[_0xa851('0xa0')](_0x3ed29e['name'],_0x3adebe);loggerPredictive[_0xa851('0xa0')](_0x5261d1['stack']);freeVariablesPredictive(_0x3ed29e);};}function loggerCatch(_0x1000d4){return function(_0x8f1822){logger[_0xa851('0xa0')](_0x1000d4,util[_0xa851('0xa1')](_0x8f1822,{'showHidden':![],'depth':null}));};}function checkContactEmpty(_0x26e337){return _0x26e337&&!_[_0xa851('0x41')](_0x26e337)&&_0x26e337[_0xa851('0xa2')]>0x0;}function decremetOriginate(_0x561e2a){if(!_[_0xa851('0x41')](_0x561e2a)&&_0x561e2a!==null){if(typeof _0x561e2a['originated']!=='undefined'){if(_0x561e2a['originated']>0x0){_0x561e2a['originated']-=0x1;}else{logger[_0xa851('0xa0')](_0xa851('0xa3'));}}}else{logger[_0xa851('0xa0')](_0xa851('0xa4'));}}function checkContactLowerLimitOriginate(_0x43171a,_0x340edb,_0x390cda){if(_0x340edb>_0x390cda){for(var _0x2275ee=0x0;_0x2275ee<_0x340edb-_0x390cda;_0x2275ee+=0x1){decremetOriginate(_0x43171a);}}}function loggerGetContactDialer(_0x165b20,_0x9fd044,_0x4f3902){return function(_0x157e2b){checkContactLowerLimitOriginate(_0x9fd044,_0x4f3902,0x0);logger[_0xa851('0xa0')](_0x165b20,util['inspect'](_0x157e2b,{'showHidden':![],'depth':null}));};}function sendMessageReschedule(_0x3fa2e0){return function(_0x56c3a9){if(isNotNull(_0x56c3a9)&&isNotNull(_0x56c3a9[0x0])){if(_0x56c3a9[0x0][_0xa851('0xa5')]>0x0){_0x3fa2e0[_0xa851('0x42')]=_0xa851('0xa6');logger[_0xa851('0x88')](_0xa851('0xa7')+_0x3fa2e0[_0xa851('0x44')],_0x56c3a9[0x0]['contactsRescheduled'],_0xa851('0xa8'));}else{_0x3fa2e0[_0xa851('0x42')]=_0xa851('0xa9');logger[_0xa851('0x88')]('[getContactDialer2][Empty]'+_0x3fa2e0['name']);}}};}function notSendMessagesQueue(_0x5153ef){if(_0x5153ef[_0xa851('0xaa')]){freeVariablesPredictive(_0x5153ef);if(_0x5153ef['originated']===0x0&&_0x5153ef[_0xa851('0x5a')]===0x0&&_0x5153ef[_0xa851('0x5f')]===0x0&&(_0x5153ef[_0xa851('0x56')]||0x0)===0x0){_0x5153ef[_0xa851('0xaa')]=![];_0x5153ef['available']=0x0;_0x5153ef[_0xa851('0x42')]=_0xa851('0x46');loggerSyncQueueSummary[_0xa851('0xa0')]('[syncQueueSummary]\x20Campaign\x20Queue:\x20',_0x5153ef[_0xa851('0x44')],_0xa851('0xab'));}else{_0x5153ef['message']=_0xa851('0xac');loggerSyncQueueSummary[_0xa851('0xa0')]('[syncQueueSummary]\x20Campaign\x20Queue:\x20',_0x5153ef[_0xa851('0x44')],_0xa851('0xad'));}emitVoiceQueueSummary(_0x5153ef);}}function notSendMessagesCampaign(_0x261568){if(_0x261568['sendMessageOneNotActive']){if(_0x261568['originated']===0x0){_0x261568[_0xa851('0xaa')]=![];_0x261568['message']=_0xa851('0x46');loggerSyncQueueSummary['error'](_0xa851('0xae'),_0x261568[_0xa851('0x44')],_0xa851('0xab'));}else{_0x261568['message']=_0xa851('0xac');loggerSyncQueueSummary[_0xa851('0xa0')](_0xa851('0xae'),_0x261568[_0xa851('0x44')],_0xa851('0xad'));}emitCampaignSummary(_0x261568);}}function createObjHistory(_0x2a3b4e,_0x19af60,_0x44fa0d,_0x24d9ad,_0x10682b){_0x2a3b4e[_0xa851('0x42')]=_0x44fa0d;var _0x1d8856=new Action(_0x2a3b4e,_0x19af60);var _0x54a66d=new History(_0x1d8856);_0x54a66d[_0xa851('0xaf')]=_0x24d9ad;_0x54a66d[_0xa851('0xb0')]=_0x10682b;_0x54a66d[_0xa851('0xb1')]=_0x1d8856[_0xa851('0xb2')];return _0x54a66d;}Dialer[_0xa851('0x1d')][_0xa851('0xb3')]=function(){var _0x107ba4=this;setInterval(function(){_0x107ba4[_0xa851('0xb4')](_0x107ba4[_0xa851('0x2b')],'[uniqueid]');_0x107ba4[_0xa851('0xb4')](_0x107ba4[_0xa851('0x29')],_0xa851('0xb5'));},0x32c8);};Dialer['prototype']['clearZombieChannels']=function(_0x2c4ad8,_0x5323da){var _0x2042f1=this;for(var _0x4e128e in _0x2c4ad8){if(typeof _0x2c4ad8[_0x4e128e]!==_0xa851('0xb6')){this[_0xa851('0x21')][_0xa851('0x1e')](function(){if(!_['isNil'](_0x2c4ad8[_0x4e128e])){return ami[_0xa851('0xb7')]({'action':_0xa851('0xb8'),'channel':_0x2c4ad8[_0x4e128e][_0xa851('0xb9')]})[_0xa851('0xba')](function(_0x2ff8e9){if(_0x2ff8e9[_0xa851('0x42')]===_0xa851('0xbb')){setTimeout(function(){if(_0x2c4ad8[_0x4e128e]&&_0x2c4ad8[_0x4e128e][_0xa851('0x5c')]!==_0xa851('0x84')){_0x2042f1[_0xa851('0xbc')](_0x2042f1[_0xa851('0x23')][_0x2c4ad8[_0x4e128e][_0xa851('0xbd')]]);logger[_0xa851('0xa0')](_0xa851('0xbe'),_0x5323da,_0x4e128e,_0x2c4ad8[_0x4e128e][_0xa851('0xbd')]);delete _0x2c4ad8[_0x4e128e];}if(_0x2c4ad8[_0x4e128e]&&_0x2c4ad8[_0x4e128e][_0xa851('0x5c')]===_0xa851('0x84')){_0x2042f1[_0xa851('0xbc')](_0x2042f1['campaigns'][_0x2c4ad8[_0x4e128e][_0xa851('0xbd')]]);logger[_0xa851('0xa0')](_0xa851('0xbf'),_0x5323da,_0x4e128e,_0x2c4ad8[_0x4e128e][_0xa851('0xbd')]);delete _0x2c4ad8[_0x4e128e];}},0x2328);}});}});}}};Dialer[_0xa851('0x1d')]['countReScheduled']=function(_0x3e14c2){return BPromise[_0xa851('0xc0')]()[_0xa851('0xc1')](cmHopper['countReScheduled'](_0x3e14c2))[_0xa851('0xba')](loggerCatch(_0xa851('0xc2')));};Dialer[_0xa851('0x1d')]['checkIsBlackList']=function(_0x4c9ecd){return BPromise[_0xa851('0xc0')]()[_0xa851('0xc1')](cmHopperBlack['checkIsBlackList'](_0x4c9ecd))[_0xa851('0xba')](loggerCatch(_0xa851('0xc3')));};Dialer[_0xa851('0x1d')][_0xa851('0xc4')]=function(_0x2df4c1){return BPromise['resolve']()[_0xa851('0xc1')](cmHopperBlack[_0xa851('0xc4')](_0x2df4c1))[_0xa851('0xba')](loggerCatch(_0xa851('0xc5')));};Dialer['prototype']['averageHandleTime']=function(_0x3c779c){return BPromise[_0xa851('0xc0')]()[_0xa851('0xc1')](cmHopperHistory[_0xa851('0xc6')](_0x3c779c))[_0xa851('0xba')](loggerCatch(_0xa851('0xc7')));};Dialer[_0xa851('0x1d')][_0xa851('0xc8')]=function(_0x50e84f){return BPromise[_0xa851('0xc0')]()[_0xa851('0xc1')](cmHopper['rescheduleContact'](_0x50e84f))['catch'](loggerCatch(_0xa851('0xc9')));};Dialer[_0xa851('0x1d')][_0xa851('0xca')]=function(_0x219c8d,_0x381ba8,_0x4e4c3d){return BPromise[_0xa851('0xc0')]()[_0xa851('0xc1')](cmHopper[_0xa851('0xca')](_0x219c8d,_0x381ba8,_0x4e4c3d))[_0xa851('0xba')](loggerCatch('[unlockContact]\x20'));};Dialer[_0xa851('0x1d')]['getContactDialer']=function(_0x2dc706,_0x491b59,_0x1ec9a1,_0x284628,_0x503a44){return BPromise[_0xa851('0xc0')]()[_0xa851('0xc1')](cmHopper[_0xa851('0xcb')](_0x2dc706,_0x491b59,_0x1ec9a1,_0x284628))[_0xa851('0xba')](function(_0x596ec4){_0x503a44[_0xa851('0xcc')]-=_0x1ec9a1;_0x503a44[_0xa851('0xcc')]=_0x503a44[_0xa851('0xcc')]>0x0?_0x503a44[_0xa851('0xcc')]:0x0;loggerCatch(_0xa851('0xcd'))(_0x596ec4);});};Dialer[_0xa851('0x1d')][_0xa851('0xce')]=function(_0x424588,_0xe33a52,_0x4a2e0a,_0x4267eb){return BPromise[_0xa851('0xc0')]()[_0xa851('0xc1')](cmHopper['getContactDialerIvr'](_0x424588,_0xe33a52,_0x4a2e0a))[_0xa851('0xba')](function(_0x692897){_0x4267eb[_0xa851('0xcc')]-=_0xe33a52;_0x4267eb[_0xa851('0xcc')]=_0x4267eb['temp']>0x0?_0x4267eb[_0xa851('0xcc')]:0x0;loggerCatch('[getContactDialerIvr]\x20')(_0x692897);});};Dialer[_0xa851('0x1d')][_0xa851('0xcf')]=function(_0xd7ff89){return BPromise[_0xa851('0xc0')]()[_0xa851('0xc1')](voiceQueueRt[_0xa851('0xcf')](_0xd7ff89))[_0xa851('0xba')](loggerCatch('[getVoiceQueueRtPauses]\x20'));};Dialer[_0xa851('0x1d')][_0xa851('0xd0')]=function(_0x42f419){return BPromise['resolve']()[_0xa851('0xc1')](cmHopper[_0xa851('0xd0')](_0x42f419))[_0xa851('0xba')](loggerCatch(_0xa851('0xd1')));};Dialer[_0xa851('0x1d')][_0xa851('0xd2')]=function(_0x5c5ba5){return BPromise[_0xa851('0xc0')]()['then'](cmHopperHistory[_0xa851('0xd2')](_0x5c5ba5))['catch'](loggerCatch(_0xa851('0xd3')));};Dialer['prototype'][_0xa851('0xbc')]=function(_0x383c92){if(!_[_0xa851('0x41')](_0x383c92)&&_0x383c92!==null){if(typeof _0x383c92[_0xa851('0x79')]!==_0xa851('0xb6')){if(_0x383c92[_0xa851('0x79')]>0x0){_0x383c92['originated']-=0x1;}else{logger['error'](_0xa851('0xd4'));}}}else{logger[_0xa851('0xa0')](_0xa851('0xd5'));}};Dialer[_0xa851('0x1d')][_0xa851('0xd6')]=function(_0x583bca,_0x50c4e3){var _0x1aa3e9=this;return function(_0xdcb47c){_0x1aa3e9[_0xa851('0xbc')](_0x50c4e3);logger['error'](_0x583bca,util[_0xa851('0xa1')](_0xdcb47c,{'showHidden':![],'depth':null}));};};Dialer[_0xa851('0x1d')][_0xa851('0xd7')]=function(_0xc03cf4,_0x1c1959,_0x4f75ad){var _0x354847={'state':0x19,'statedesc':_0xa851('0xd8')};this[_0xa851('0xbc')](_0x1c1959);this[_0xa851('0xd9')](_[_0xa851('0xda')](_0x354847,_[_0xa851('0xdb')](_0x4f75ad,[_0xa851('0xdc'),_0xa851('0xdd'),_0xa851('0xde'),_0xa851('0xdf'),_0xa851('0xe0')])),_0xa851('0xe1'),_0xa851('0xe2'));logger['error'](_0xc03cf4);};Dialer[_0xa851('0x1d')]['isSuccess']=function(_0x2b0437){return _0x2b0437===_0xa851('0xe3');};Dialer[_0xa851('0x1d')][_0xa851('0xe4')]=function(_0x3a8f30){return!_[_0xa851('0x41')](_0x3a8f30)&&_0x3a8f30&&!_[_0xa851('0x41')](_0x3a8f30[_0xa851('0x44')])&&!_[_0xa851('0x41')](_0x3a8f30[_0xa851('0x7f')])&&_0x3a8f30[_0xa851('0x7f')]&&(this[_0xa851('0x26')][util[_0xa851('0x81')](_0xa851('0xe5'),_0x3a8f30['name'])][_0xa851('0xb8')]==='reachable'||this[_0xa851('0x26')][util[_0xa851('0x81')](_0xa851('0xe5'),_0x3a8f30[_0xa851('0x44')])]['status']==='unmonitored');};Dialer[_0xa851('0x1d')][_0xa851('0xd9')]=function(_0x2afb74,_0x497ae1,_0x5b3d17){this[_0xa851('0xd2')](_0x2afb74)[_0xa851('0xba')](loggerCatch(_0x497ae1));this[_0xa851('0xd0')](_0x2afb74)[_0xa851('0xba')](loggerCatch(_0x5b3d17));};Dialer[_0xa851('0x1d')][_0xa851('0x3c')]=function(_0x6175cc){var _0x39c627=this[_0xa851('0x2b')][_0x6175cc[_0xa851('0xe6')]];var _0x5d7fc4;if(!_[_0xa851('0xe7')](_0x6175cc)&&!_[_0xa851('0xe7')](_0x6175cc[_0xa851('0xe8')])&&!_[_0xa851('0xe7')](_0x6175cc[_0xa851('0xe8')][_0xa851('0xe9')])&&_0x6175cc['exten']===_0xa851('0xea')&&_0x39c627){if(_0x39c627['type']!==_0xa851('0x84')&&this[_0xa851('0x23')][_0x39c627[_0xa851('0xbd')]][_0xa851('0xeb')]&&_0x6175cc[_0xa851('0xec')]==='HANGUP'){delete this['uniqueId'][_0x6175cc[_0xa851('0xe6')]];this[_0xa851('0xbc')](this[_0xa851('0x23')][_0x39c627[_0xa851('0xbd')]]);this[_0xa851('0x23')][_0x39c627[_0xa851('0xbd')]][_0xa851('0x65')]+=0x1;this[_0xa851('0x23')][_0x39c627[_0xa851('0xbd')]]['outboundAnswerAgiCallsDay']+=0x1;_0x5d7fc4=new Hangup(_0x39c627,_0x6175cc);_0x5d7fc4[_0xa851('0xaf')]=0x12;_0x5d7fc4['statedesc']=_0xa851('0xed');_0x5d7fc4[_0xa851('0xee')]=_0xa851('0xef');ami[_0xa851('0xf0')](_0xa851('0xf1'),ut[_0xa851('0xf2')](_0x5d7fc4,_0xa851('0xf3')));this[_0xa851('0xd9')](_0x5d7fc4,_0xa851('0xf4'),'[syncHangupInAMD]');}if(_0x39c627[_0xa851('0x5c')]!==_0xa851('0x84')&&this[_0xa851('0x23')][_0x39c627['queue']][_0xa851('0xeb')]&&_0x6175cc[_0xa851('0xec')]===_0xa851('0xf5')){var _0x484f83=this;return new BPromise(function(_0xf60ba4,_0x40c6cd){delete _0x484f83[_0xa851('0x2b')][_0x6175cc[_0xa851('0xe6')]];_0x484f83[_0xa851('0xbc')](_0x484f83['voiceQueues'][_0x39c627['queue']]);_0x484f83[_0xa851('0x23')][_0x39c627[_0xa851('0xbd')]][_0xa851('0x65')]+=0x1;_0x484f83[_0xa851('0x23')][_0x39c627[_0xa851('0xbd')]][_0xa851('0xf6')]+=0x1;var _0x3d7859=_0x484f83[_0xa851('0x23')][_0x39c627[_0xa851('0xbd')]];var _0x15e2ed=new Hangup(_0x39c627,_0x6175cc);_0x15e2ed[_0xa851('0xaf')]=0x13;_0x15e2ed[_0xa851('0xb0')]=_0xa851('0xf7');_0x15e2ed['membername']=_0xa851('0xef');_0x15e2ed[_0xa851('0xf8')]+=0x1;_0x15e2ed[_0xa851('0xf9')]+=0x1;_0x15e2ed['amd']=!![];ami[_0xa851('0xf0')](_0xa851('0xf1'),ut['buildObj'](_0x15e2ed,_0xa851('0xf3')));_0x484f83[_0xa851('0xd2')](_0x15e2ed)[_0xa851('0xba')](loggerCatch('[syncAgentComplete][createHistory][0]'));if(_0x15e2ed['countbusyretry']+_0x15e2ed[_0xa851('0xfa')]+_0x15e2ed['countnoanswerretry']+_0x15e2ed[_0xa851('0xfb')]+_0x15e2ed['countdropretry']+_0x15e2ed[_0xa851('0xfc')]+_0x15e2ed[_0xa851('0xf8')]+_0x15e2ed[_0xa851('0xfd')]>=_0x3d7859[_0xa851('0xfe')]){_0x484f83[_0xa851('0xff')](_0x15e2ed,_0xf60ba4,_0x40c6cd,_0xa851('0x100'));}else{if(_0x15e2ed[_0xa851('0xf8')]>=_0x3d7859[_0xa851('0x101')]){_0x484f83[_0xa851('0x102')](_0x15e2ed,_0xf60ba4,_0x40c6cd,_0xa851('0x103'));}else{_0x484f83['rescheduleContact']({'active':![],'countmachineretry':_0x15e2ed[_0xa851('0xf8')],'scheduledat':moment()[_0xa851('0x104')](_0x3d7859[_0xa851('0x105')],_0xa851('0x106'))[_0xa851('0x81')](_0xa851('0x107')),'ContactId':_0x15e2ed['ContactId'],'ListId':_0x15e2ed['ListId'],'VoiceQueueId':_0x15e2ed[_0xa851('0xdf')]||undefined,'CampaignId':_0x15e2ed[_0xa851('0xe0')]||undefined})[_0xa851('0xba')](loggerCatch(_0xa851('0x108')));_0xf60ba4({'reschedule':0x1});}}});}if(_0x39c627['type']===_0xa851('0x84')&&this[_0xa851('0x24')][_0x39c627[_0xa851('0xbd')]][_0xa851('0xeb')]&&_0x6175cc[_0xa851('0xec')]==='HANGUP'){delete this['uniqueId'][_0x6175cc['uniqueid']];this[_0xa851('0xbc')](this[_0xa851('0x24')][_0x39c627['queue']]);_0x5d7fc4=new Hangup(_0x39c627,_0x6175cc);_0x5d7fc4[_0xa851('0xaf')]=0x12;_0x5d7fc4[_0xa851('0xb0')]=_0xa851('0xed');_0x5d7fc4['membername']='AMD';ami[_0xa851('0xf0')](_0xa851('0xf1'),ut[_0xa851('0xf2')](_0x5d7fc4,_0xa851('0xf3')));this['saveInDb'](_0x5d7fc4,_0xa851('0x109'),_0xa851('0x10a'));}if(_0x39c627[_0xa851('0x5c')]===_0xa851('0x84')&&this[_0xa851('0x24')][_0x39c627[_0xa851('0xbd')]][_0xa851('0xeb')]&&_0x6175cc['value']===_0xa851('0xf5')){var _0x484f83=this;return new BPromise(function(_0x500d41,_0x2ebfa7){delete _0x484f83[_0xa851('0x2b')][_0x6175cc[_0xa851('0xe6')]];_0x484f83[_0xa851('0xbc')](_0x484f83['campaigns'][_0x39c627['queue']]);_0x484f83[_0xa851('0x24')][_0x39c627[_0xa851('0xbd')]]['outboundAnswerCallsDay']+=0x1;_0x484f83[_0xa851('0x24')][_0x39c627[_0xa851('0xbd')]][_0xa851('0xf6')]+=0x1;var _0x39febd=_0x484f83[_0xa851('0x24')][_0x39c627[_0xa851('0xbd')]];var _0x3847da=new Hangup(_0x39c627,_0x6175cc);_0x3847da[_0xa851('0xaf')]=0x13;_0x3847da[_0xa851('0xb0')]=_0xa851('0xf7');_0x3847da[_0xa851('0xee')]='AMD';_0x3847da['countmachineretry']+=0x1;_0x3847da['countglobal']+=0x1;_0x3847da[_0xa851('0xf3')]=!![];ami[_0xa851('0xf0')](_0xa851('0xf1'),ut[_0xa851('0xf2')](_0x3847da,_0xa851('0xf3')));_0x484f83[_0xa851('0xd2')](_0x3847da)[_0xa851('0xba')](loggerCatch(_0xa851('0x10b')));if(_0x3847da['countbusyretry']+_0x3847da[_0xa851('0xfa')]+_0x3847da['countnoanswerretry']+_0x3847da['countnosuchnumberretry']+_0x3847da[_0xa851('0x10c')]+_0x3847da[_0xa851('0xfc')]+_0x3847da[_0xa851('0xf8')]+_0x3847da['countagentrejectretry']>=_0x39febd[_0xa851('0xfe')]){_0x484f83['stateGlobal'](_0x3847da,_0x500d41,_0x2ebfa7,_0xa851('0x100'));}else{if(_0x3847da[_0xa851('0xf8')]>=_0x39febd[_0xa851('0x101')]){_0x484f83[_0xa851('0x102')](_0x3847da,_0x500d41,_0x2ebfa7,_0xa851('0x103'));}else{_0x484f83[_0xa851('0xc8')]({'active':![],'countmachineretry':_0x3847da[_0xa851('0xf8')],'scheduledat':moment()[_0xa851('0x104')](_0x39febd['dialMachineRetryFrequency'],_0xa851('0x106'))[_0xa851('0x81')](_0xa851('0x107')),'ContactId':_0x3847da[_0xa851('0xdc')],'ListId':_0x3847da[_0xa851('0xdd')],'VoiceQueueId':_0x3847da[_0xa851('0xdf')]||undefined,'CampaignId':_0x3847da['CampaignId']||undefined})[_0xa851('0xba')](loggerCatch(_0xa851('0x108')));_0x500d41({'reschedule':0x1});}}});}}};Dialer['prototype'][_0xa851('0x3a')]=function(_0x526823){var _0x2c622b=this[_0xa851('0x2b')][_0x526823[_0xa851('0xe6')]];var _0x557e93=this;var _0x413baf;if(_0x2c622b&&_0x2c622b['type']===_0xa851('0x84')){delete this[_0xa851('0x2b')][_0x526823['uniqueid']];this[_0xa851('0xbc')](this['campaigns'][_0x2c622b[_0xa851('0xbd')]]);this['campaigns'][_0x2c622b[_0xa851('0xbd')]][_0xa851('0x10d')]+=0x1;_0x413baf=new Hangup(_0x2c622b,_0x526823);this['createHistory'](_0x413baf)[_0xa851('0xba')](loggerCatch(_0xa851('0x10e')));this['moveContactManagedDialer'](_0x413baf)[_0xa851('0xba')](loggerCatch('[syncHangupIvr]'));}if(_0x2c622b&&_0x2c622b[_0xa851('0x5c')]!==_0xa851('0x84')&&isNotNull(this[_0xa851('0x23')][_0x2c622b[_0xa851('0xbd')]]['dialQueueProject'])){delete this['uniqueId'][_0x526823[_0xa851('0xe6')]];this[_0xa851('0xbc')](this[_0xa851('0x23')][_0x2c622b[_0xa851('0xbd')]]);this[_0xa851('0x23')][_0x2c622b['queue']]['outboundAnswerCallsDay']+=0x1;this[_0xa851('0x23')][_0x2c622b['queue']][_0xa851('0xf6')]+=0x1;_0x413baf=new Hangup(_0x2c622b,_0x526823);_0x413baf[_0xa851('0xaf')]=0x10;_0x413baf['statedesc']=_0xa851('0x10f');_0x413baf[_0xa851('0xee')]=_0xa851('0x110');this[_0xa851('0xd2')](_0x413baf)['catch'](loggerCatch('[syncHangupIvr][createHistory]'));this[_0xa851('0xd0')](_0x413baf)[_0xa851('0xba')](loggerCatch(_0xa851('0x111')));}if(_0x2c622b&&_0x2c622b['type']!==_0xa851('0x84')&&!isNotNull(this[_0xa851('0x23')][_0x2c622b[_0xa851('0xbd')]][_0xa851('0x112')])){delete this[_0xa851('0x2b')][_0x526823['uniqueid']];this[_0xa851('0xbc')](this[_0xa851('0x23')][_0x2c622b[_0xa851('0xbd')]]);this[_0xa851('0x23')][_0x2c622b[_0xa851('0xbd')]][_0xa851('0x6f')]+=0x1;_0x413baf=new Hangup(_0x2c622b,_0x526823);_0x413baf[_0xa851('0xaf')]=0xc;_0x413baf[_0xa851('0xb0')]=_0x526823['cause-txt'];_0x413baf[_0xa851('0xee')]='Unknow';this[_0xa851('0xd2')](_0x413baf)[_0xa851('0xba')](loggerCatch(_0xa851('0x10e')));this[_0xa851('0xd0')](_0x413baf)[_0xa851('0xba')](loggerCatch('[syncHangupIvr]'));}};Dialer['prototype'][_0xa851('0x37')]=function(_0x4cef66){var _0x15c7a0=this[_0xa851('0x2b')][_0x4cef66['uniqueid']];var _0x584feb=this;if(this[_0xa851('0x23')][_0x4cef66[_0xa851('0xbd')]]){if(_0x15c7a0&&_0x15c7a0['type']!=='ivr'){delete this[_0xa851('0x2b')][_0x4cef66['uniqueid']];this[_0xa851('0x23')][_0x4cef66['queue']][_0xa851('0x65')]+=0x1;var _0x28e6fa=new AgentComplete(_0x15c7a0,_0x4cef66);if(_0x4cef66[_0xa851('0x113')]===_0xa851('0x114')){_0x28e6fa[_0xa851('0x115')]=this[_0xa851('0x23')][_0x4cef66['queue']]['dialQueueProject2']&&this[_0xa851('0x23')][_0x4cef66[_0xa851('0xbd')]][_0xa851('0x116')]?moment()['format'](_0xa851('0x107')):undefined;}this[_0xa851('0xd2')](_0x28e6fa)[_0xa851('0xba')](loggerCatch(_0xa851('0x117')));this[_0xa851('0xd0')](_0x28e6fa)[_0xa851('0xba')](loggerCatch('[syncAgentComplete]'));}}};Dialer[_0xa851('0x1d')][_0xa851('0x30')]=function(_0x329896){if(this['voiceQueues'][_0x329896['queue']]){if(this[_0xa851('0x2b')][_0x329896[_0xa851('0xe6')]]&&this[_0xa851('0x2b')][_0x329896['uniqueid']][_0xa851('0x5c')]!=='ivr'){this[_0xa851('0xbc')](this[_0xa851('0x23')][_0x329896[_0xa851('0xbd')]]);this['uniqueId'][_0x329896[_0xa851('0xe6')]][_0xa851('0x118')]=moment()[_0xa851('0x81')](_0xa851('0x107'));}}};Dialer[_0xa851('0x1d')][_0xa851('0x119')]=function(_0x3f4619){this[_0xa851('0xd2')](_0x3f4619)[_0xa851('0xba')](loggerCatch(_0xa851('0x117')));this['moveContactManagedDialer'](_0x3f4619)[_0xa851('0xba')](loggerCatch('[syncQueueCallerAbandon]\x20[Drop]'));};Dialer[_0xa851('0x1d')][_0xa851('0x33')]=function(_0x1bdf07){var _0x487976=this[_0xa851('0x2b')][_0x1bdf07[_0xa851('0xe6')]];var _0x287fa2=this;if(this['voiceQueues'][_0x1bdf07[_0xa851('0xbd')]]){if(_0x487976&&_0x487976[_0xa851('0x5c')]!==_0xa851('0x84')){delete this[_0xa851('0x2b')][_0x1bdf07[_0xa851('0xe6')]];this[_0xa851('0xbc')](this[_0xa851('0x23')][_0x1bdf07[_0xa851('0xbd')]]);_0x487976[_0xa851('0x11a')]=moment()[_0xa851('0x81')]('YYYY-MM-DD\x20HH:mm:ss');var _0x5d0138=new QueueCallerAbandon(_0x487976,_0x1bdf07);if(getSeconds(_0x487976[_0xa851('0x11a')],_0x487976[_0xa851('0x11b')])>=_0x487976['dialQueueTimeout']){this[_0xa851('0x23')][_0x1bdf07[_0xa851('0xbd')]]['predictiveIntervalDroppedCallsTimeout']+=0x1;this[_0xa851('0x23')][_0x1bdf07[_0xa851('0xbd')]][_0xa851('0x6a')]+=0x1;this[_0xa851('0x23')][_0x1bdf07['queue']][_0xa851('0x74')]+=0x1;_0x5d0138[_0xa851('0xaf')]=0xa;_0x5d0138[_0xa851('0xb0')]=_0xa851('0x11c');_0x5d0138[_0xa851('0x11d')]='TIMEOUT';_0x5d0138[_0xa851('0x115')]=this['voiceQueues'][_0x1bdf07['queue']][_0xa851('0x11e')]?moment()[_0xa851('0x81')](_0xa851('0x107')):undefined;_0x5d0138[_0xa851('0x10c')]+=0x1;_0x5d0138['countglobal']+=0x1;if(_0x5d0138[_0xa851('0x10c')]>=this[_0xa851('0x23')][_0x1bdf07['queue']][_0xa851('0x11f')]){this[_0xa851('0x119')](_0x5d0138);}else{this[_0xa851('0xc8')]({'active':![],'countdropretry':_0x5d0138[_0xa851('0x10c')],'scheduledat':moment()[_0xa851('0x104')](this[_0xa851('0x23')][_0x1bdf07[_0xa851('0xbd')]][_0xa851('0x120')],_0xa851('0x106'))[_0xa851('0x81')](_0xa851('0x107')),'ContactId':_0x487976['ContactId'],'ListId':_0x487976[_0xa851('0xdd')],'VoiceQueueId':_0x487976[_0xa851('0xdf')]||undefined,'CampaignId':_0x487976[_0xa851('0xe0')]||undefined})['catch'](loggerCatch(_0xa851('0x121')));var _0x15b1cc=new History(_0x5d0138);_0x15b1cc['state']=0xa;_0x15b1cc[_0xa851('0xb0')]='Drop';_0x15b1cc[_0xa851('0xb2')]=moment()[_0xa851('0x81')](_0xa851('0x107'));_0x15b1cc['endtime']=_0x15b1cc[_0xa851('0xb2')];_0x15b1cc[_0xa851('0x122')]=_0x5d0138[_0xa851('0x122')];_0x15b1cc[_0xa851('0x123')]=_0x5d0138['calleridnum'];this[_0xa851('0xd2')](_0x15b1cc)['catch'](loggerCatch(_0xa851('0x124')));}}else{this[_0xa851('0x23')][_0x1bdf07[_0xa851('0xbd')]][_0xa851('0x8f')]+=0x1;this[_0xa851('0x23')][_0x1bdf07['queue']]['outboundDropCallsDayCallersExit']+=0x1;_0x5d0138[_0xa851('0xaf')]=0xb;_0x5d0138[_0xa851('0xb0')]='Abandoned';_0x5d0138[_0xa851('0x11d')]=_0xa851('0x125');_0x5d0138[_0xa851('0xfc')]+=0x1;_0x5d0138[_0xa851('0xf9')]+=0x1;if(_0x5d0138['countabandonedretry']>=this[_0xa851('0x23')][_0x1bdf07[_0xa851('0xbd')]]['dialAbandonedMaxRetry']){this[_0xa851('0x119')](_0x5d0138);}else{this[_0xa851('0xc8')]({'active':![],'countabandonedretry':_0x5d0138[_0xa851('0xfc')],'scheduledat':moment()[_0xa851('0x104')](this[_0xa851('0x23')][_0x1bdf07['queue']]['dialAbandonedRetryFrequency'],_0xa851('0x106'))['format'](_0xa851('0x107')),'ContactId':_0x487976[_0xa851('0xdc')],'ListId':_0x487976['ListId'],'VoiceQueueId':_0x487976['VoiceQueueId']||undefined,'CampaignId':_0x487976[_0xa851('0xe0')]||undefined})['catch'](loggerCatch(_0xa851('0x126')));var _0x15b1cc=new History(_0x5d0138);_0x15b1cc[_0xa851('0xaf')]=0xb;_0x15b1cc[_0xa851('0xb0')]=_0xa851('0x127');_0x15b1cc[_0xa851('0xb2')]=moment()[_0xa851('0x81')](_0xa851('0x107'));_0x15b1cc['endtime']=_0x15b1cc[_0xa851('0xb2')];_0x15b1cc['calleridname']=_0x5d0138[_0xa851('0x122')];_0x15b1cc[_0xa851('0x123')]=_0x5d0138[_0xa851('0x123')];this[_0xa851('0xd2')](_0x15b1cc)['catch'](loggerCatch(_0xa851('0x128')));}}}}};Dialer['prototype']['syncNewExten']=function(_0x209ac3){if(this[_0xa851('0x29')][_0x209ac3[_0xa851('0xe6')]]){this[_0xa851('0x29')][_0x209ac3[_0xa851('0xe6')]][_0xa851('0xb9')]=_0x209ac3['channel'];}if(this[_0xa851('0x2b')][_0x209ac3[_0xa851('0xe6')]]){this['uniqueId'][_0x209ac3[_0xa851('0xe6')]]['channel']=_0x209ac3[_0xa851('0xb9')];}};Dialer['prototype']['syncQueueMember']=function(_0x9db166){if(strategy[this['voiceQueues'][this[_0xa851('0x29')][_0x9db166[_0xa851('0x129')]][_0xa851('0xbd')]][_0xa851('0x52')]]===_0xa851('0x1c')){if(this[_0xa851('0x29')][_0x9db166[_0xa851('0x129')]]&&_['isNil'](this['actions'][_0x9db166['actionid']]['locked'])&&_0x9db166[_0xa851('0xb8')]==='1'&&_0x9db166[_0xa851('0x12a')]==='0'){if(this[_0xa851('0x25')][_0x9db166['stateinterface']]){if(!this[_0xa851('0x25')][_0x9db166[_0xa851('0x12b')]][_0xa851('0x12c')]){this['agents'][_0x9db166[_0xa851('0x12b')]]['locked']=!![];this[_0xa851('0x29')][_0x9db166[_0xa851('0x129')]][_0xa851('0x12c')]=!![];this[_0xa851('0x29')][_0x9db166[_0xa851('0x129')]][_0xa851('0x12b')]=_0x9db166[_0xa851('0x12b')];}}}}else if((strategy[this['voiceQueues'][this[_0xa851('0x29')][_0x9db166['actionid']][_0xa851('0xbd')]][_0xa851('0x52')]]||'rrmemory')===_0xa851('0x1b')){if(this['actions'][_0x9db166[_0xa851('0x129')]]){if(this[_0xa851('0x25')][_0x9db166[_0xa851('0x12b')]]){this[_0xa851('0x29')][_0x9db166[_0xa851('0x129')]][_0xa851('0x12b')]=_0x9db166['stateinterface'];if(_[_0xa851('0xe7')](this[_0xa851('0x2e')][this[_0xa851('0x29')][_0x9db166[_0xa851('0x129')]][_0xa851('0xbd')]])){this['queueBooked'][this[_0xa851('0x29')][_0x9db166[_0xa851('0x129')]]['queue']]=[];}this[_0xa851('0x2e')][this[_0xa851('0x29')][_0x9db166[_0xa851('0x129')]]['queue']][_0xa851('0x12d')](_[_0xa851('0xda')](_[_0xa851('0xdb')](this['actions'][_0x9db166[_0xa851('0x129')]],[_0xa851('0x12e'),'stateinterface']),{'status':_0x9db166[_0xa851('0xb8')],'paused':_0x9db166['paused']}));}}}};function unlockQueueStatus(_0x173da5,_0x153608){setTimeout(function(){if(_[_0xa851('0x41')](_0x173da5[_0xa851('0x12f')])){loggerBooked['error']('[unlockQueueStatus][undefined]',_0x153608);}_0x173da5[_0xa851('0x12f')]=!![];loggerBooked['info'](_0xa851('0x130'),_0x153608,JSON[_0xa851('0x4e')](_['pick'](_0x173da5,['name',_0xa851('0x12f')])));},0x1f3);}Dialer['prototype'][_0xa851('0x3f')]=function(_0x282fe8){var _0x9b66e=this;var _0x3d870e=_0x9b66e[_0xa851('0x23')][_0x9b66e[_0xa851('0x29')][_0x282fe8[_0xa851('0x129')]][_0xa851('0xbd')]];if(strategy[this[_0xa851('0x23')][this[_0xa851('0x29')][_0x282fe8[_0xa851('0x129')]][_0xa851('0xbd')]]['strategy']]===_0xa851('0x1c')){if(this[_0xa851('0x29')][_0x282fe8[_0xa851('0x129')]]&&this['actions'][_0x282fe8[_0xa851('0x129')]][_0xa851('0x12b')]){this[_0xa851('0x22')]['run'](this[_0xa851('0x29')][_0x282fe8[_0xa851('0x129')]][_0xa851('0x12e')],this['actions'][_0x282fe8[_0xa851('0x129')]][_0xa851('0x12b')])[_0xa851('0xba')](function(_0x5777c4){logger[_0xa851('0xa0')](_0xa851('0x131'),util['inspect'](_0x5777c4,{'showHidden':![],'depth':null}));})[_0xa851('0x20')](function(){_0x9b66e[_0xa851('0xbc')](_0x9b66e[_0xa851('0x23')][_0x9b66e[_0xa851('0x29')][_0x282fe8[_0xa851('0x129')]][_0xa851('0xbd')]]);_0x9b66e['agents'][_0x9b66e[_0xa851('0x29')][_0x282fe8[_0xa851('0x129')]][_0xa851('0x12b')]][_0xa851('0x12c')]=![];delete _0x9b66e[_0xa851('0x29')][_0x282fe8['actionid']];unlockQueueStatus(_0x3d870e);});}else{this[_0xa851('0xbc')](this['voiceQueues'][this['actions'][_0x282fe8[_0xa851('0x129')]][_0xa851('0xbd')]]);this[_0xa851('0xc8')]({'active':![],'ContactId':this['actions'][_0x282fe8[_0xa851('0x129')]][_0xa851('0xdc')],'ListId':this[_0xa851('0x29')][_0x282fe8[_0xa851('0x129')]]['ListId'],'VoiceQueueId':this[_0xa851('0x29')][_0x282fe8[_0xa851('0x129')]][_0xa851('0xdf')]||undefined,'CampaignId':this[_0xa851('0x29')][_0x282fe8['actionid']][_0xa851('0xe0')]||undefined})[_0xa851('0xba')](loggerCatch(_0xa851('0x132')));delete this[_0xa851('0x29')][_0x282fe8['actionid']];unlockQueueStatus(_0x3d870e);}}else if((strategy[this[_0xa851('0x23')][this[_0xa851('0x29')][_0x282fe8['actionid']][_0xa851('0xbd')]]['strategy']]||'rrmemory')===_0xa851('0x1b')){var _0x1455ee;if(this['actions'][_0x282fe8['actionid']]&&!_['isEmpty'](this[_0xa851('0x2e')][this[_0xa851('0x29')][_0x282fe8[_0xa851('0x129')]][_0xa851('0xbd')]])){if(this[_0xa851('0x2f')][_0x9b66e[_0xa851('0x29')][_0x282fe8[_0xa851('0x129')]][_0xa851('0xbd')]]){this[_0xa851('0x2f')][_0x9b66e['actions'][_0x282fe8[_0xa851('0x129')]]['queue']]=this[_0xa851('0x2f')][this[_0xa851('0x29')][_0x282fe8[_0xa851('0x129')]][_0xa851('0xbd')]]?this[_0xa851('0x2f')][this[_0xa851('0x29')][_0x282fe8['actionid']][_0xa851('0xbd')]]:this['queueBooked'][this['actions'][_0x282fe8[_0xa851('0x129')]][_0xa851('0xbd')]]?this['queueBooked'][this['actions'][_0x282fe8[_0xa851('0x129')]][_0xa851('0xbd')]][_0xa851('0x133')]||0x0:0x0;}this[_0xa851('0x2e')][this[_0xa851('0x29')][_0x282fe8[_0xa851('0x129')]]['queue']]['_rr']=this[_0xa851('0x2f')][this[_0xa851('0x29')][_0x282fe8[_0xa851('0x129')]][_0xa851('0xbd')]];for(var _0x52e71=0x0;_0x52e71<this[_0xa851('0x2e')][this['actions'][_0x282fe8[_0xa851('0x129')]][_0xa851('0xbd')]][_0xa851('0xa2')];_0x52e71+=0x1){_0x1455ee=rr(this['queueBooked'][this['actions'][_0x282fe8['actionid']]['queue']]);this[_0xa851('0x2f')][_0x9b66e['actions'][_0x282fe8[_0xa851('0x129')]][_0xa851('0xbd')]]=this[_0xa851('0x2e')][this[_0xa851('0x29')][_0x282fe8[_0xa851('0x129')]][_0xa851('0xbd')]]['_rr'];if(_0x1455ee[_0xa851('0xb8')]==='1'&&_0x1455ee[_0xa851('0x12a')]==='0'){break;}}if(!_[_0xa851('0xe7')](_0x1455ee)){this[_0xa851('0x25')][_0x1455ee['stateinterface']][_0xa851('0x134')]=_[_0xa851('0x41')](this[_0xa851('0x25')][_0x1455ee[_0xa851('0x12b')]][_0xa851('0x134')])?!![]:this[_0xa851('0x25')][_0x1455ee['stateinterface']][_0xa851('0x134')];}loggerBooked[_0xa851('0x88')](_0xa851('0x135'),_0x282fe8[_0xa851('0x129')],'Agent:\x20',JSON[_0xa851('0x4e')](_['pick'](this[_0xa851('0x25')][_0x1455ee[_0xa851('0x12b')]],[_0xa851('0x44'),'unlockRR'])),_0xa851('0x136'),JSON[_0xa851('0x4e')](_0x1455ee['idHopper']));if(!_['isNil'](_0x1455ee)&&_0x1455ee['status']==='1'&&_0x1455ee[_0xa851('0x12a')]==='0'&&this[_0xa851('0x25')][_0x1455ee[_0xa851('0x12b')]][_0xa851('0x134')]){this[_0xa851('0x25')][_0x1455ee[_0xa851('0x12b')]]['unlockRR']=![];this[_0xa851('0x2e')][_0x9b66e[_0xa851('0x29')][_0x282fe8['actionid']][_0xa851('0xbd')]]=[];this[_0xa851('0x22')][_0xa851('0x137')](_0x1455ee['idHopper'],_0x1455ee['stateinterface'])['catch'](function(_0x4ce7c5){logger['error'](_0xa851('0x131'),util['inspect'](_0x4ce7c5,{'showHidden':![],'depth':null}));})[_0xa851('0x20')](function(){_0x9b66e['updateOriginated'](_0x9b66e[_0xa851('0x23')][_0x9b66e[_0xa851('0x29')][_0x282fe8[_0xa851('0x129')]][_0xa851('0xbd')]]);setTimeout(function(){_0x9b66e[_0xa851('0x25')][_0x1455ee[_0xa851('0x12b')]][_0xa851('0x134')]=!![];loggerBooked[_0xa851('0x88')]('[booked][RR][finaly]',_0x282fe8[_0xa851('0x129')],_0xa851('0x138'),JSON[_0xa851('0x4e')](_[_0xa851('0xdb')](_0x9b66e[_0xa851('0x25')][_0x1455ee[_0xa851('0x12b')]],[_0xa851('0x44'),'unlockRR'])),_0xa851('0x136'),JSON[_0xa851('0x4e')](_0x1455ee[_0xa851('0x12e')]));},0xc7);delete _0x9b66e['actions'][_0x282fe8[_0xa851('0x129')]];unlockQueueStatus(_0x3d870e,_0x282fe8[_0xa851('0x129')]);});}else{loggerBooked[_0xa851('0x88')]('[booked][unlock]');this[_0xa851('0xbc')](this[_0xa851('0x23')][this[_0xa851('0x29')][_0x282fe8[_0xa851('0x129')]][_0xa851('0xbd')]]);this['rescheduleContact']({'active':![],'ContactId':this['actions'][_0x282fe8[_0xa851('0x129')]]['ContactId'],'ListId':this[_0xa851('0x29')][_0x282fe8['actionid']]['ListId'],'VoiceQueueId':this['actions'][_0x282fe8[_0xa851('0x129')]][_0xa851('0xdf')]||undefined,'CampaignId':this[_0xa851('0x29')][_0x282fe8[_0xa851('0x129')]][_0xa851('0xe0')]||undefined})[_0xa851('0xba')](loggerCatch(_0xa851('0x132')));delete this[_0xa851('0x29')][_0x282fe8['actionid']];unlockQueueStatus(_0x3d870e);}}else{loggerBooked[_0xa851('0x88')]('[booked][unlock2]');this[_0xa851('0xbc')](this[_0xa851('0x23')][this[_0xa851('0x29')][_0x282fe8[_0xa851('0x129')]][_0xa851('0xbd')]]);this[_0xa851('0xc8')]({'active':![],'ContactId':this['actions'][_0x282fe8['actionid']][_0xa851('0xdc')],'ListId':this[_0xa851('0x29')][_0x282fe8[_0xa851('0x129')]][_0xa851('0xdd')],'VoiceQueueId':this[_0xa851('0x29')][_0x282fe8[_0xa851('0x129')]][_0xa851('0xdf')]||undefined,'CampaignId':this['actions'][_0x282fe8['actionid']][_0xa851('0xe0')]||undefined})['catch'](loggerCatch('[unlock2][syncQueueStatusComplete]'));delete this[_0xa851('0x29')][_0x282fe8[_0xa851('0x129')]];unlockQueueStatus(_0x3d870e);}}else{loggerBooked[_0xa851('0x88')](_0xa851('0x139'));this[_0xa851('0xbc')](this[_0xa851('0x23')][this['actions'][_0x282fe8['actionid']][_0xa851('0xbd')]]);this['rescheduleContact']({'active':![],'ContactId':this[_0xa851('0x29')][_0x282fe8[_0xa851('0x129')]][_0xa851('0xdc')],'ListId':this[_0xa851('0x29')][_0x282fe8['actionid']]['ListId'],'VoiceQueueId':this['actions'][_0x282fe8[_0xa851('0x129')]][_0xa851('0xdf')]||undefined,'CampaignId':this[_0xa851('0x29')][_0x282fe8[_0xa851('0x129')]][_0xa851('0xe0')]||undefined})[_0xa851('0xba')](loggerCatch(_0xa851('0x13a')));delete this[_0xa851('0x29')][_0x282fe8[_0xa851('0x129')]];unlockQueueStatus(_0x3d870e);}};Dialer[_0xa851('0x1d')][_0xa851('0x40')]=function(){var _0x2e070f=this;setInterval(function(){_0x2e070f[_0xa851('0x13b')]();},0x3e8);};Dialer[_0xa851('0x1d')][_0xa851('0x13c')]=function(_0x3f1243){var _0x37ab24=this;return function(){if(!_0x37ab24['isTrunkReachable'](_0x3f1243[_0xa851('0x7e')])){if(!_0x37ab24['isTrunkReachable'](_0x3f1243[_0xa851('0x13d')])){_0x3f1243[_0xa851('0x42')]='TRUNK_IS_NOT_REACHABLE';throw _0x3f1243['name']+'\x20trunk\x20is\x20not\x20reachable';}}};};Dialer[_0xa851('0x1d')][_0xa851('0x13e')]=function(_0x540b85,_0x3c9c1d,_0x560138,_0x3f965e){var _0x2ce431=this;return function(){var _0x41d9fc=!![];return _0x2ce431[_0xa851('0x13f')](_0x540b85,_0x3c9c1d,_0x560138,_0x3f965e,_0x41d9fc);};};Dialer['prototype']['checkIfTimeIntervals']=function(_0x2efe40,_0x2e51d1,_0x411448,_0x2527dc){var _0x45d4d0=this;return function(){var _0x457bc6=![];return _0x45d4d0['ifTime'](_0x2efe40[_0xa851('0x4b')],_0x2e51d1,_0x411448,_0x2527dc,_0x457bc6);};};Dialer[_0xa851('0x1d')][_0xa851('0x13f')]=function(_0x26dc41,_0x53a0b8,_0x1f42dc,_0x29c97a,_0x5bba27){var _0x3ed45d=[];return new BPromise(function(_0x2ce165,_0x5eef66){if(!isNotNull(_0x26dc41)){_0x29c97a['message']='INTERVAL_IS_NULL';return _0x5eef66(msgResponse(_0xa851('0x13f'),_0xa851('0x140'),_0x1f42dc+'\x20Intervals\x20is\x20null\x20'));}if(_[_0xa851('0x87')](_0x26dc41)){_0x29c97a[_0xa851('0x42')]='INTERVAL_IS_EMPTY';return _0x5eef66(msgResponse(_0xa851('0x13f'),_0xa851('0x140'),_0x1f42dc+'\x20Intervals\x20is\x20empty\x20'));}if(_0x53a0b8&&_[_0xa851('0x41')](config[_0xa851('0x141')][_0x53a0b8])){_0x29c97a[_0xa851('0x42')]='TIMEZONE_UNKNOW';return _0x5eef66(msgResponse(_0xa851('0x13f'),_0xa851('0x140'),_0x1f42dc+_0xa851('0x142')+_0x53a0b8));}if(_['isArray'](_0x26dc41)){for(var _0x5254ac=0x0;_0x5254ac<_0x26dc41[_0xa851('0xa2')];_0x5254ac+=0x1){_0x3ed45d[_0xa851('0x12d')](ami[_0xa851('0xb7')]({'action':_0xa851('0x143'),'command':util[_0xa851('0x81')](_0xa851('0x144'),_0x26dc41[_0x5254ac][_0xa851('0x145')],!_[_0xa851('0x41')](config['timezones'][_0x53a0b8])?_0x53a0b8:'')})['then'](function(_0x1c7946){return _0x1c7946[_0xa851('0x146')][_0xa851('0x147')]('true')>=0x0;})[_0xa851('0xba')](myreject(_0x5eef66)));}}else{_0x3ed45d[_0xa851('0x12d')](ami['Action']({'action':_0xa851('0x143'),'command':util[_0xa851('0x81')]('iftime\x20%s,%s',_0x26dc41,!_[_0xa851('0x41')](config['timezones'][_0x53a0b8])?_0x53a0b8:'')})[_0xa851('0xc1')](function(_0xcef4e9){return _0xcef4e9['content'][_0xa851('0x147')](_0xa851('0x148'))>=0x0;})[_0xa851('0xba')](myreject(_0x5eef66)));}BPromise[_0xa851('0x149')](_0x3ed45d)[_0xa851('0xc1')](function(_0x2ffbef){var _0x4a6af8=_[_0xa851('0x14a')](_0x2ffbef);if(_0x4a6af8){return _0x2ce165(_0x4a6af8);}else{_0x29c97a[_0xa851('0x42')]=_0x5bba27?_0xa851('0x14b'):'INTERVAL_IS_OVERTIME';return _0x5eef66(msgResponse(_0xa851('0x14c'),_0xa851('0x140'),_0xa851('0x14d')+_0x5bba27+'\x20'+_0x1f42dc+_0xa851('0x14e')+util[_0xa851('0xa1')](_0x26dc41,{'showHidden':![],'depth':null})+_0xa851('0x14f')+_0x53a0b8));}})[_0xa851('0xba')](function(_0x5f15e7){return _0x5eef66(msgResponse(_0xa851('0x13f'),_0xa851('0x140'),JSON['stringify'](_0x5f15e7)));});});};Dialer[_0xa851('0x1d')][_0xa851('0x150')]=function(_0x319476){var _0x16ae04=this;return function(){switch(_0x319476[_0xa851('0x151')]){case _0xa851('0x152'):freeVariablesPredictive(_0x319476);_0x16ae04['handlePower'](_0x319476,0x1);break;case _0xa851('0x153'):freeVariablesPredictive(_0x319476);_0x16ae04[_0xa851('0x154')](_0x319476,_0x319476[_0xa851('0x155')]);break;case _0xa851('0x9'):_0x16ae04[_0xa851('0x9')](_0x319476);break;case _0xa851('0x156'):freeVariablesPredictive(_0x319476);_0x16ae04[_0xa851('0x154')](_0x319476,0x1);break;default:freeVariablesPredictive(_0x319476);logger['error'](_0xa851('0x157'),_0x319476['name'],_0xa851('0x158'));}};};Dialer[_0xa851('0x1d')][_0xa851('0x159')]=function(_0xee3b84){var _0x2b3da0=this;return function(){_0x2b3da0[_0xa851('0x15a')](_0xee3b84);};};Dialer[_0xa851('0x1d')][_0xa851('0xa')]=function(_0x4daf12){var _0x359a4d=this;if(isNotPreview(_0x4daf12['dialMethod'])){if(isVoiceQueueOutbound(_0x4daf12[_0xa851('0x5c')])&&isActive(_0x4daf12['dialActive'])){_0x4daf12[_0xa851('0xaa')]=!![];BPromise[_0xa851('0xc0')]()[_0xa851('0xc1')](checkIsLoggedIn(_0x4daf12,_0x4daf12[_0xa851('0x55')]))[_0xa851('0xc1')](checkIsActive(_0x4daf12,_0x4daf12['dialActive']))[_0xa851('0xc1')](checkInterval(_0x4daf12))[_0xa851('0xc1')](_0x359a4d['checkIsTrunkReachable'](_0x4daf12))[_0xa851('0xc1')](_0x359a4d[_0xa851('0x13e')](_0x4daf12[_0xa851('0x15b')],_0x4daf12[_0xa851('0x15c')],_0x4daf12['name'],_0x4daf12))[_0xa851('0xc1')](_0x359a4d[_0xa851('0x15d')](_0x4daf12[_0xa851('0x4a')],_0x4daf12[_0xa851('0x15c')],_0x4daf12[_0xa851('0x44')],_0x4daf12))[_0xa851('0xc1')](_0x359a4d[_0xa851('0x150')](_0x4daf12))[_0xa851('0xba')](loggerCatchQueueSummary(_0xa851('0x15e'),_0x4daf12));}else{notSendMessagesQueue(_0x4daf12);}}else{freeVariablesPredictive(_0x4daf12);}};Dialer[_0xa851('0x1d')]['syncCampaigns']=function(){var _0x49e3ff=this;var _0x1d2e92;for(var _0x4af62c in this[_0xa851('0x24')]){if(typeof this[_0xa851('0x24')][_0x4af62c]!=='undefined'){_0x1d2e92=this[_0xa851('0x24')][_0x4af62c];if(isCampaignIvr(_0x1d2e92[_0xa851('0x5c')])&&isActive(_0x1d2e92['active'])){_0x1d2e92[_0xa851('0xaa')]=!![];BPromise['resolve']()[_0xa851('0xc1')](checkIsActive(_0x1d2e92,_0x1d2e92['active']))[_0xa851('0xc1')](checkInterval(_0x1d2e92))[_0xa851('0xc1')](_0x49e3ff['checkIsTrunkReachable'](_0x1d2e92))[_0xa851('0xc1')](_0x49e3ff['checkIfTime'](_0x1d2e92[_0xa851('0x15b')],_0x1d2e92['dialTimezone'],_0x1d2e92[_0xa851('0x44')],_0x1d2e92))[_0xa851('0xc1')](_0x49e3ff[_0xa851('0x15d')](_0x1d2e92['Interval'],_0x1d2e92[_0xa851('0x15c')],_0x1d2e92[_0xa851('0x44')],_0x1d2e92))[_0xa851('0xc1')](_0x49e3ff[_0xa851('0x159')](_0x1d2e92))[_0xa851('0xba')](loggerCatchQueueSummary(_0xa851('0x15f'),_0x1d2e92));}else{notSendMessagesCampaign(_0x1d2e92);}}}};function getCallerIdRandom(_0x4614fc,_0x22f450){var _0x2cf4d7;var _0x54a834;var _0xd3dcd9;if(_0x22f450<=0x0){_0x22f450=0x1;}_0x2cf4d7=new RegExp(_0xa851('0x160')+_0x22f450+'}$');_0x54a834=Math[_0xa851('0x161')](0xa,_0x22f450-0x1);_0xd3dcd9=Math['pow'](0xa,_0x22f450)-0x1;return util[_0xa851('0x81')]('%s',_[_0xa851('0x162')](_0x4614fc,_0x2cf4d7,_['random'](_0x54a834,_0xd3dcd9)));}function extractCalleridName(_0x5a2fc6){var _0x38211c=_0x5a2fc6[_0xa851('0x163')](/"(.*?)"/);return _0x38211c?_0x38211c[0x1]:_0x5a2fc6;}function extractCalleridNumber(_0x2f4c2e){var _0x5e69a6=_0x2f4c2e['match'](/<(.*?)>/);return _0x5e69a6?_0x5e69a6[0x1]:_0x2f4c2e;}Dialer['prototype'][_0xa851('0x164')]=function(_0x553346,_0x1ddd9e){var _0x128108=this;var _0xc4c5a1=uuid['v4']();this[_0xa851('0x29')][_0xc4c5a1]=new Action(_0x553346,_0x1ddd9e,_0xc4c5a1);return new BPromise(function(_0x50939c,_0xe4b694){if(_['isUndefined'](_0x553346)&&typeof _0x553346!==_0xa851('0x165')){return _0xe4b694(msgResponse(_0xa851('0x166'),'Failure','voiceQueue\x20is\x20undefine'));}if(_['isUndefined'](_0x1ddd9e[_0xa851('0x167')][_0xa851('0x168')])||_0x1ddd9e['Contact'][_0xa851('0x168')]===null){return _0xe4b694(msgResponse('originate',_0xa851('0x140'),_0xa851('0x169')));}var _0x40e55f={'XMD-CALLERID':_0x128108[_0xa851('0x29')][_0xc4c5a1][_0xa851('0x16a')](),'XMD-AGI':_0x553346[_0xa851('0x112')]?util[_0xa851('0x81')](_0xa851('0x16b'),ipAgi,_0x553346[_0xa851('0x112')]):_0xa851('0x16c'),'XMD-AGIAFTER':_0x553346[_0xa851('0x11e')]?util['format']('\x22agi://%s/square,%s\x22',ipAgi,_0x553346['dialQueueProject2']):_0xa851('0x16c'),'XMD-QUEUE':_0x553346[_0xa851('0x5c')]==='outbound'?util[_0xa851('0x81')](_0xa851('0x16d'),_0x553346['name'],_0x553346[_0xa851('0x16e')]||'',_0x553346[_0xa851('0x116')]?'c':'',_0x553346['dialQueueTimeout']||0x3):'NONE','XMD-CONTACTID':_0x1ddd9e[_0xa851('0xdc')],'XMD-CDRTYPE':_0xa851('0x16f'),'CALLERID(all)':_0x128108[_0xa851('0x29')][_0xc4c5a1][_0xa851('0x16a')](),'XMD-AMD':_0x553346[_0xa851('0xeb')]?'ACTIVE':_0xa851('0x16c'),'XMD-DESTINATION':'xcally-motion-dialer'};if(_0x553346[_0xa851('0xeb')]){_0x40e55f[_0xa851('0x170')]=_0x553346['dialAMDInitialSilence']||0x9c4;_0x40e55f['XMD-AMDGREETING']=_0x553346[_0xa851('0x171')]||0x5dc;_0x40e55f[_0xa851('0x172')]=_0x553346['dialAMDAfterGreetingSilence']||0x320;_0x40e55f[_0xa851('0x173')]=_0x553346['dialAMDTotalAnalysisTime']||0x1388;_0x40e55f['XMD-AMDMINWORDLENGTH']=_0x553346[_0xa851('0x174')]||0x64;_0x40e55f['XMD-AMDBETWEENWORDSSILENCE']=_0x553346['dialAMDBetweenWordsSilence']||0x32;_0x40e55f[_0xa851('0x175')]=_0x553346[_0xa851('0x176')]||0x3;_0x40e55f[_0xa851('0x177')]=_0x553346['dialAMDSilenceThreshold']||0x100;_0x40e55f[_0xa851('0x178')]=_0x553346[_0xa851('0x179')]||0x1388;}if(_0x553346[_0xa851('0x5c')]===_0xa851('0x51')){_0x40e55f[_0xa851('0x17a')]=_0x1ddd9e[_0xa851('0xdf')];}else{_0x40e55f[_0xa851('0x17b')]=_0x1ddd9e[_0xa851('0xe0')];}for(var _0x4888c9 in _0x1ddd9e[_0xa851('0x167')]){if(typeof _0x1ddd9e[_0xa851('0x167')][_0x4888c9]!==_0xa851('0xb6')){if(isNotNull(_0x1ddd9e['Contact'][_0x4888c9])&&_0x4888c9!=='id'&&_0x4888c9!=='tags'&&_0x4888c9!==_0xa851('0x17c')&&_0x4888c9!==_0xa851('0x17d')){_0x40e55f[util['format']('%s%s',_0xa851('0x17e'),_[_0xa851('0x17f')](_0x4888c9))]=_0x1ddd9e['Contact'][_0x4888c9];}}}var _0x5421f9=_0x128108[_0xa851('0xe4')](_0x553346[_0xa851('0x7e')])?getCallerId(_0x553346[_0xa851('0x7e')]['callerid'],_0x553346['dialOriginateCallerIdName'],_0x553346['dialRandomLastDigitCallerIdNumber']>0x0?getCallerIdRandom(_0x553346['dialOriginateCallerIdNumber'],_0x553346['dialRandomLastDigitCallerIdNumber']):_0x553346[_0xa851('0x63')]):getCallerId(_[_0xa851('0xe7')](_0x553346[_0xa851('0x13d')])?_0x553346[_0xa851('0x7e')][_0xa851('0x80')]:_0x553346[_0xa851('0x13d')][_0xa851('0x80')],_0x553346['dialOriginateCallerIdName'],_0x553346['dialRandomLastDigitCallerIdNumber']>0x0?getCallerIdRandom(_0x553346['dialOriginateCallerIdNumber'],_0x553346['dialRandomLastDigitCallerIdNumber']):_0x553346['dialOriginateCallerIdNumber']);if(_0x5421f9){_0x40e55f[_0xa851('0x180')]=_0x128108[_0xa851('0x29')][_0xc4c5a1][_0xa851('0x181')]=extractCalleridName(_0x5421f9);_0x40e55f[_0xa851('0x182')]=_0x128108['actions'][_0xc4c5a1][_0xa851('0x183')]=extractCalleridNumber(_0x5421f9);}return ami[_0xa851('0xb7')]({'actionid':_0xc4c5a1,'action':_0xa851('0x166'),'channel':_0x128108[_0xa851('0xe4')](_0x553346[_0xa851('0x7e')])?util[_0xa851('0x81')]('SIP/%s/%s%s',_0x553346[_0xa851('0x7e')][_0xa851('0x44')],isNotNull(_0x553346[_0xa851('0x184')])?_0x553346[_0xa851('0x184')][_0xa851('0x185')]()||'':'',_0x553346[_0xa851('0x186')]>0x0?_0x1ddd9e[_0xa851('0x167')][_0xa851('0x168')]['substring'](_0x553346['dialCutDigit']):_0x1ddd9e['Contact'][_0xa851('0x168')]):util[_0xa851('0x81')]('SIP/%s/%s%s',_[_0xa851('0xe7')](_0x553346[_0xa851('0x13d')])?_0x553346[_0xa851('0x7e')][_0xa851('0x44')]:_0x553346['TrunkBackup'][_0xa851('0x44')],isNotNull(_0x553346[_0xa851('0x184')])?_0x553346[_0xa851('0x184')][_0xa851('0x185')]()||'':'',_0x553346[_0xa851('0x186')]>0x0?_0x1ddd9e[_0xa851('0x167')][_0xa851('0x168')][_0xa851('0x187')](_0x553346['dialCutDigit']):_0x1ddd9e['Contact']['phone']),'callerid':_0x5421f9,'Exten':'xcally-motion-dialer','Context':'from-sip','Priority':'1','variable':_0x40e55f,'timeout':(_0x553346['dialOriginateTimeout']||0x1e)*0x3e8,'async':!![],'channelid':_0xc4c5a1})['then'](function(_0xe6db97){return _0x50939c(_0xe6db97);})[_0xa851('0xba')](function(_0x28460a){_0x553346[_0xa851('0x6d')]+=0x1;var _0x1e28f=new History(_0x128108[_0xa851('0x29')][_0xc4c5a1]);logger[_0xa851('0xa0')](util[_0xa851('0x81')](_0xa851('0x188'),JSON[_0xa851('0x4e')](_0x28460a)));_0x1e28f[_0xa851('0xaf')]=0xe;_0x1e28f[_0xa851('0xb0')]=_0xa851('0x189');_0x1e28f['starttime']=moment()[_0xa851('0x81')](_0xa851('0x107'));_0x1e28f[_0xa851('0xb1')]=_0x1e28f[_0xa851('0xb2')];_0x128108[_0xa851('0xd2')](_0x1e28f)[_0xa851('0xba')](loggerCatch(_0xa851('0x18a')));_0x128108[_0xa851('0xd0')](_0x1e28f)['catch'](loggerCatch(_0xa851('0x18a')))['finally'](function(){delete _0x128108['actions'][_0xc4c5a1];return _0xe4b694(msgResponse(_0xa851('0x166'),_0xa851('0x4d'),_0xa851('0x18b')));});});});};Dialer[_0xa851('0x1d')][_0xa851('0x35')]=function(_0x5535e3){var _0xd011af=this[_0xa851('0x29')][_0x5535e3['actionid']];if(_0xd011af){delete this[_0xa851('0x29')][_0x5535e3[_0xa851('0x129')]];_0xd011af[_0xa851('0x11b')]=moment()[_0xa851('0x81')](_0xa851('0x107'));var _0x345b7a=_0xd011af[_0xa851('0x5c')]===_0xa851('0x84')?this['campaigns'][_0xd011af['queue']]:this[_0xa851('0x23')][_0xd011af[_0xa851('0x18c')]()];if(!this['isSuccess'](_0x5535e3[_0xa851('0x18d')])){this['updateOriginated'](_0x345b7a);return this[_0xa851('0x18e')](_0xd011af,_0x345b7a,_0x5535e3)[_0xa851('0xba')](loggerCatch(_0xa851('0x18f')));}this[_0xa851('0x2b')][_0x5535e3[_0xa851('0xe6')]]=_0xd011af;}};Dialer[_0xa851('0x1d')]['checkRetriveMax']=function(_0x3ce442,_0x2355ec,_0xd41c71){var _0x583978=new History(_0x2355ec);if(_0x583978[_0xa851('0x190')]+_0x583978['countcongestionretry']+_0x583978['countnoanswerretry']+_0x583978[_0xa851('0xfb')]+_0x583978[_0xa851('0x10c')]+_0x583978[_0xa851('0xfc')]+_0x583978[_0xa851('0xf8')]+_0x583978[_0xa851('0xfd')]>=_0xd41c71[_0xa851('0xfe')]-0x1){return!![];}switch(_0x3ce442){case 0x3:if(_0x583978[_0xa851('0x191')]>=_0xd41c71[_0xa851('0x192')]-0x1){return!![];}this[_0xa851('0xc8')]({'active':![],'countnoanswerretry':_0x583978['countnoanswerretry']+=0x1,'scheduledat':moment()[_0xa851('0x104')](_0xd41c71['dialNoAnswerRetryFrequency'],'minutes')[_0xa851('0x81')](_0xa851('0x107')),'ContactId':_0x583978[_0xa851('0xdc')],'ListId':_0x583978[_0xa851('0xdd')],'VoiceQueueId':_0x583978[_0xa851('0xdf')]||undefined,'CampaignId':_0x583978[_0xa851('0xe0')]||undefined})['catch'](loggerCatch('[rescheduleContact][NoAnswer]'));break;case 0x5:if(_0x583978[_0xa851('0x190')]>=_0xd41c71[_0xa851('0x193')]-0x1){return!![];}this[_0xa851('0xc8')]({'active':![],'countbusyretry':_0x583978[_0xa851('0x190')]+=0x1,'scheduledat':moment()[_0xa851('0x104')](_0xd41c71[_0xa851('0x194')],'minutes')[_0xa851('0x81')](_0xa851('0x107')),'ContactId':_0x583978[_0xa851('0xdc')],'ListId':_0x583978[_0xa851('0xdd')],'VoiceQueueId':_0x583978[_0xa851('0xdf')]||undefined,'CampaignId':_0x583978['CampaignId']||undefined})[_0xa851('0xba')](loggerCatch('[rescheduleContact]\x20[Busy]'));break;case 0x8:if(_0x583978[_0xa851('0xfa')]>=_0xd41c71[_0xa851('0x195')]-0x1){return!![];}this[_0xa851('0xc8')]({'active':![],'countcongestionretry':_0x583978[_0xa851('0xfa')]+=0x1,'scheduledat':moment()[_0xa851('0x104')](_0xd41c71[_0xa851('0x196')],_0xa851('0x106'))[_0xa851('0x81')]('YYYY-MM-DD\x20HH:mm:ss'),'ContactId':_0x583978['ContactId'],'ListId':_0x583978[_0xa851('0xdd')],'VoiceQueueId':_0x583978['VoiceQueueId']||undefined,'CampaignId':_0x583978[_0xa851('0xe0')]||undefined})['catch'](loggerCatch(_0xa851('0x197')));break;case 0x0:if(_0x583978[_0xa851('0xfb')]>=_0xd41c71[_0xa851('0x198')]-0x1){return!![];}else{this['rescheduleContact']({'active':![],'countnosuchnumberretry':_0x583978[_0xa851('0xfb')]+=0x1,'scheduledat':moment()[_0xa851('0x104')](_0xd41c71[_0xa851('0x199')],_0xa851('0x106'))['format']('YYYY-MM-DD\x20HH:mm:ss'),'ContactId':_0x583978[_0xa851('0xdc')],'ListId':_0x583978[_0xa851('0xdd')],'VoiceQueueId':_0x583978[_0xa851('0xdf')]||undefined,'CampaignId':_0x583978[_0xa851('0xe0')]||undefined})[_0xa851('0xba')](loggerCatch('[rescheduleContact][NoSuchNumber]'));}break;case 0xa:if(_0x583978[_0xa851('0x10c')]>=_0xd41c71[_0xa851('0x11f')]-0x1){return!![];}this['rescheduleContact']({'active':![],'countdropretry':_0x583978['countdropretry']+=0x1,'scheduledat':moment()[_0xa851('0x104')](_0xd41c71[_0xa851('0x120')],_0xa851('0x106'))[_0xa851('0x81')]('YYYY-MM-DD\x20HH:mm:ss'),'ContactId':_0x583978['ContactId'],'ListId':_0x583978['ListId'],'VoiceQueueId':_0x583978['VoiceQueueId']||undefined,'CampaignId':_0x583978['CampaignId']||undefined})[_0xa851('0xba')](loggerCatch(_0xa851('0x121')));break;case 0xb:if(_0x583978['countabandonedretry']>=_0xd41c71['dialAbandonedMaxRetry']-0x1){return!![];}this[_0xa851('0xc8')]({'active':![],'countabandonedretry':_0x583978[_0xa851('0xfc')]+=0x1,'scheduledat':moment()['add'](_0xd41c71[_0xa851('0x19a')],_0xa851('0x106'))['format'](_0xa851('0x107')),'ContactId':_0x583978[_0xa851('0xdc')],'ListId':_0x583978['ListId'],'VoiceQueueId':_0x583978[_0xa851('0xdf')]||undefined,'CampaignId':_0x583978[_0xa851('0xe0')]||undefined})['catch'](loggerCatch(_0xa851('0x126')));break;case 0x13:if(_0x583978[_0xa851('0xf8')]>=_0xd41c71[_0xa851('0x101')]-0x1){return!![];}this[_0xa851('0xc8')]({'active':![],'countmachineretry':_0x583978[_0xa851('0xf8')]+=0x1,'scheduledat':moment()[_0xa851('0x104')](_0xd41c71[_0xa851('0x105')],_0xa851('0x106'))[_0xa851('0x81')](_0xa851('0x107')),'ContactId':_0x583978[_0xa851('0xdc')],'ListId':_0x583978[_0xa851('0xdd')],'VoiceQueueId':_0x583978['VoiceQueueId']||undefined,'CampaignId':_0x583978[_0xa851('0xe0')]||undefined})[_0xa851('0xba')](loggerCatch(_0xa851('0x108')));break;case 0x14:if(_0x583978[_0xa851('0xfd')]>=_0xd41c71[_0xa851('0x19b')]-0x1){return!![];}this[_0xa851('0xc8')]({'active':![],'countagentrejectretry':_0x583978[_0xa851('0xfd')]+=0x1,'scheduledat':moment()[_0xa851('0x104')](_0xd41c71[_0xa851('0x19c')],'minutes')[_0xa851('0x81')]('YYYY-MM-DD\x20HH:mm:ss'),'ContactId':_0x583978[_0xa851('0xdc')],'ListId':_0x583978[_0xa851('0xdd')],'VoiceQueueId':_0x583978['VoiceQueueId']||undefined,'CampaignId':_0x583978['CampaignId']||undefined})[_0xa851('0xba')](loggerCatch(_0xa851('0x19d')));break;default:return!![];}};Dialer['prototype'][_0xa851('0x18e')]=function(_0x1ac1a8,_0x4ab544,_0x2bc20e){var _0x5a2e7d=this;var _0x4c6a6e=new History(_0x1ac1a8);return new BPromise(function(_0x3bc7b7,_0x560378){if(_[_0xa851('0x41')](_0x4ab544)&&typeof _0x4ab544!=='object'){return _0x560378(msgResponse('[callProgressDetecting]',_0xa851('0x140'),_0xa851('0x19e')));}if(_[_0xa851('0x41')](_0x2bc20e)&&typeof _0x2bc20e!==_0xa851('0x165')){return _0x560378(msgResponse('[callProgressDetecting]',_0xa851('0x140'),'evt\x20is\x20undefine'));}switch(_0x2bc20e[_0xa851('0x113')]){case'0':_0x4ab544[_0xa851('0x6c')]+=0x1;_0x4c6a6e[_0xa851('0xaf')]=0x0;_0x4c6a6e[_0xa851('0xb0')]=_0xa851('0x19f');_0x4c6a6e[_0xa851('0xfb')]+=0x1;_0x4c6a6e['countglobal']+=0x1;ami[_0xa851('0xf0')](_0xa851('0x1a0'),ut[_0xa851('0xf2')](_0x1ac1a8,_0xa851('0x1a1')));_0x5a2e7d[_0xa851('0xd2')](_0x4c6a6e)[_0xa851('0xba')](loggerCatch('[syncAgentComplete][createHistory][0]'));if(_0x5a2e7d['checkRetriveMax'](0x0,_0x1ac1a8,_0x4ab544)){if(_0x4c6a6e[_0xa851('0xfb')]>=_0x4ab544['dialNoSuchNumberMaxRetry']){_0x5a2e7d[_0xa851('0x102')](_0x4c6a6e,_0x3bc7b7,_0x560378,_0xa851('0x1a2'));}else{_0x5a2e7d[_0xa851('0xff')](_0x4c6a6e,_0x3bc7b7,_0x560378,'reason\x200\x20no\x20such\x20number....');}}break;case'3':_0x4ab544[_0xa851('0x6b')]+=0x1;_0x4c6a6e[_0xa851('0xaf')]=0x3;_0x4c6a6e[_0xa851('0xb0')]=_0xa851('0x1a3');_0x4c6a6e[_0xa851('0x191')]+=0x1;_0x4c6a6e['countglobal']+=0x1;ami[_0xa851('0xf0')]('custom:agentnoanswer',ut[_0xa851('0xf2')](_0x1ac1a8,_0xa851('0x1a4')));_0x5a2e7d[_0xa851('0xd2')](_0x4c6a6e)[_0xa851('0xba')](loggerCatch(_0xa851('0x1a5')));if(_0x5a2e7d[_0xa851('0x1a6')](0x3,_0x1ac1a8,_0x4ab544)){if(_0x4c6a6e['countnoanswerretry']>=_0x4ab544[_0xa851('0x192')]){_0x5a2e7d[_0xa851('0x102')](_0x4c6a6e,_0x3bc7b7,_0x560378,'reason\x203\x20ringing\x20no\x20answer');}else{_0x5a2e7d[_0xa851('0xff')](_0x4c6a6e,_0x3bc7b7,_0x560378,_0xa851('0x1a7'));}}break;case'5':_0x4ab544[_0xa851('0x1a8')]+=0x1;_0x4c6a6e[_0xa851('0xaf')]=0x5;_0x4c6a6e[_0xa851('0xb0')]=_0xa851('0x1a9');_0x4c6a6e[_0xa851('0x190')]+=0x1;_0x4c6a6e[_0xa851('0xf9')]+=0x1;ami[_0xa851('0xf0')](_0xa851('0x1aa'),ut[_0xa851('0xf2')](_0x1ac1a8,_0xa851('0x1ab')));_0x5a2e7d[_0xa851('0xd2')](_0x4c6a6e)[_0xa851('0xba')](loggerCatch(_0xa851('0x1ac')));if(_0x5a2e7d[_0xa851('0x1a6')](0x5,_0x1ac1a8,_0x4ab544)){if(_0x4c6a6e[_0xa851('0x190')]>=_0x4ab544[_0xa851('0x193')]){_0x5a2e7d['createStateFinal'](_0x4c6a6e,_0x3bc7b7,_0x560378,'reason\x205\x20busy');}else{_0x5a2e7d['stateGlobal'](_0x4c6a6e,_0x3bc7b7,_0x560378,'reason\x205\x20busy');}}break;case'8':_0x4ab544[_0xa851('0x67')]+=0x1;_0x4c6a6e[_0xa851('0xaf')]=0x8;_0x4c6a6e['statedesc']=_0xa851('0x1ad');_0x4c6a6e[_0xa851('0xfa')]+=0x1;_0x4c6a6e[_0xa851('0xf9')]+=0x1;ami[_0xa851('0xf0')](_0xa851('0x1ae'),ut['buildObj'](_0x1ac1a8,_0xa851('0x1af')));_0x5a2e7d['createHistory'](_0x4c6a6e)['catch'](loggerCatch(_0xa851('0x1b0')));if(_0x5a2e7d['checkRetriveMax'](0x8,_0x1ac1a8,_0x4ab544)){if(_0x4c6a6e[_0xa851('0xfa')]>=_0x4ab544[_0xa851('0x195')]){_0x5a2e7d['createStateFinal'](_0x4c6a6e,_0x3bc7b7,_0x560378,'reason\x208\x20congestion');}else{_0x5a2e7d[_0xa851('0xff')](_0x4c6a6e,_0x3bc7b7,_0x560378,_0xa851('0x1b1'));}}break;case'11':_0x4ab544[_0xa851('0x1b2')]+=0x1;_0x4c6a6e[_0xa851('0xaf')]=0xb;_0x4c6a6e['statedesc']=_0xa851('0x127');_0x4c6a6e[_0xa851('0xfc')]+=0x1;_0x4c6a6e[_0xa851('0xf9')]+=0x1;_0x5a2e7d['createHistory'](_0x4c6a6e)[_0xa851('0xba')](loggerCatch(_0xa851('0x128')));if(_0x5a2e7d[_0xa851('0x1a6')](0xb,_0x1ac1a8,_0x4ab544)){if(_0x4c6a6e[_0xa851('0xfc')]>=_0x4ab544[_0xa851('0x1b3')]){_0x5a2e7d[_0xa851('0x102')](_0x4c6a6e,_0x3bc7b7,_0x560378,'reason\x2011\x20abandoned');}else{_0x5a2e7d[_0xa851('0xff')](_0x4c6a6e,_0x3bc7b7,_0x560378,_0xa851('0x1b4'));}}break;case'20':_0x4ab544['outboundRejectCallsDay']+=0x1;_0x4c6a6e[_0xa851('0xaf')]=0x14;_0x4c6a6e['statedesc']=_0xa851('0x1b5');_0x4c6a6e[_0xa851('0xfd')]+=0x1;_0x4c6a6e[_0xa851('0xf9')]+=0x1;ami['emit'](_0xa851('0x1b6'),ut[_0xa851('0xf2')](_0x1ac1a8,_0xa851('0x1b7')));_0x5a2e7d['createHistory'](_0x4c6a6e)[_0xa851('0xba')](loggerCatch(_0xa851('0x1b8')));if(_0x5a2e7d[_0xa851('0x1a6')](0x14,_0x1ac1a8,_0x4ab544)){if(_0x4c6a6e[_0xa851('0xfd')]>=_0x4ab544[_0xa851('0x19b')]){_0x5a2e7d[_0xa851('0x102')](_0x4c6a6e,_0x3bc7b7,_0x560378,_0xa851('0x1b9'));}else{_0x5a2e7d['stateGlobal'](_0x4c6a6e,_0x3bc7b7,_0x560378,_0xa851('0x1b9'));}}break;default:_0x4ab544['outboundUnknownCallsDay']+=0x1;_0x4c6a6e['state']=0xc;_0x4c6a6e[_0xa851('0xb0')]=_0x2bc20e['reason'];_0x5a2e7d[_0xa851('0xd2')](_0x4c6a6e)[_0xa851('0xba')](loggerCatch(_0xa851('0x1ba')));if(_0x5a2e7d['checkRetriveMax'](_0x2bc20e[_0xa851('0x113')],_0x1ac1a8,_0x4ab544)){if(_0x4c6a6e[_0xa851('0x190')]+_0x4c6a6e[_0xa851('0xfa')]+_0x4c6a6e['countnoanswerretry']+_0x4c6a6e[_0xa851('0xfb')]+_0x4c6a6e[_0xa851('0x10c')]+_0x4c6a6e[_0xa851('0xfc')]+_0x4c6a6e[_0xa851('0xf8')]+_0x4c6a6e[_0xa851('0xfd')]>=_0x4ab544['dialGlobalMaxRetry']){_0x5a2e7d[_0xa851('0xff')](_0x4c6a6e,_0x3bc7b7,_0x560378,_0x2bc20e[_0xa851('0x113')]);}else{_0x5a2e7d[_0xa851('0x102')](_0x4c6a6e,_0x3bc7b7,_0x560378,_0x2bc20e['reason']);}}}});};Dialer[_0xa851('0x1d')][_0xa851('0xff')]=function(_0x12142f,_0x2985a2,_0x170402,_0x1ca7ee){var _0x88df83=new Final(_0x12142f);_0x88df83[_0xa851('0xaf')]=0xf;_0x88df83[_0xa851('0xb0')]=_0xa851('0x1bb');this[_0xa851('0x102')](_0x88df83,_0x2985a2,_0x170402,_0x1ca7ee);};Dialer['prototype']['createStateFinal']=function(_0x5366c5,_0x14e60e,_0x4801eb,_0x5b82ae){this[_0xa851('0xd0')](_0x5366c5)[_0xa851('0xc1')](function(){return _0x14e60e(msgResponse(_0xa851('0x1bc'),_0xa851('0xe3'),_0x5b82ae));})[_0xa851('0xba')](function(){return _0x4801eb(msgResponse(_0xa851('0x1bd'),_0xa851('0x140'),'contact\x20not\x20moved'));});};Dialer[_0xa851('0x1d')][_0xa851('0x9')]=function(_0x17033f){var _0x13a5e0=_0x17033f['dialPredictiveOptimizationPercentage']/0x64;var _0x5b6e0a=_0x17033f[_0xa851('0x6a')]/(_0x17033f[_0xa851('0x6a')]+_0x17033f['outboundAnswerCallsDay']);var _0x26e2eb=Math[_0xa851('0x1be')](_0x17033f[_0xa851('0x1bf')]*(_0x17033f[_0xa851('0x1c0')]/0x64));var _0xed5656=Math[_0xa851('0x1be')](_0x17033f['predictiveIntervalAvailable']*(_0x17033f[_0xa851('0x1c1')]/0x64));var _0x54de50=_0x17033f[_0xa851('0x54')]+_0x17033f['talking'];var _0x49cbdf=Math['floor'](_0x17033f[_0xa851('0x7a')]*_0x17033f[_0xa851('0x7c')]*_0x17033f[_0xa851('0x75')]*_0x17033f['predictiveIntervalMultiplicativeFactor']);if(_['isUndefined'](_0x17033f[_0xa851('0x2d')])){if(!_[_0xa851('0x41')](_0x17033f['startPredictive'])){_0x17033f[_0xa851('0x2c')]=undefined;loggerPredictive['error'](_0xa851('0x1c2'),'check\x20predictive\x20is\x20not\x20undefine');}if(!_[_0xa851('0x41')](_0x17033f[_0xa851('0x9b')])){loggerPredictive[_0xa851('0xa0')]('[startMethodPredictive][StartProgressive]',_0xa851('0x1c3'));clearInterval(_0x17033f['handlePredictive']);_0x17033f[_0xa851('0x9b')]=undefined;}_0x17033f['startProgressive']=moment()['format'](_0xa851('0x107'));loggerPredictive[_0xa851('0x88')](_0x17033f[_0xa851('0x44')],_0xa851('0x1c4'),_0x17033f['startProgressive']);this[_0xa851('0x154')](_0x17033f,0x1);}else if(ifInterval(_0x17033f['dialPredictiveInterval'],_0x17033f[_0xa851('0x2d')])){this[_0xa851('0x154')](_0x17033f,0x1);loggerPredictiveCalls[_0xa851('0x88')](_0xa851('0x1c5'),_0x17033f[_0xa851('0x2d')],_0x17033f['name']);_0x17033f[_0xa851('0x7a')]=0x0;_0x17033f[_0xa851('0x74')]=0x0;}else if(_0x13a5e0<_0x5b6e0a&&_0x17033f[_0xa851('0x1c6')]===_0xa851('0x1c7')){freeVariablesPredictive(_0x17033f);loggerPredictive[_0xa851('0x88')]('[stopMethodPredictive][ReStartProgressive][ExceededDropDay]',_0xa851('0x1c8'),_0x5b6e0a,_0xa851('0x2d'),_0x17033f[_0xa851('0x44')]);}else if(_0x49cbdf<_0x17033f[_0xa851('0x74')]&&_0x17033f[_0xa851('0x1c6')]==='dropRate'){freeVariablesPredictive(_0x17033f);loggerPredictive[_0xa851('0x88')](_0xa851('0x1c9'),_0xa851('0x1ca'),_0x49cbdf,_0xa851('0x1cb'),_0x17033f[_0xa851('0x74')],'startProgressive',_0x17033f[_0xa851('0x44')]);}else if(!ifInterval(_0x17033f[_0xa851('0x1cc')],_0x17033f[_0xa851('0x2d')])&&_[_0xa851('0x41')](_0x17033f[_0xa851('0x2c')])&&!_[_0xa851('0x41')](_0x17033f[_0xa851('0x2d')])){_0x17033f[_0xa851('0x2c')]=moment()[_0xa851('0x81')]('YYYY-MM-DD\x20HH:mm:ss');loggerPredictive[_0xa851('0x88')](_0x17033f[_0xa851('0x44')],_0xa851('0x1cd'),_0x17033f[_0xa851('0x2c')]);this[_0xa851('0x1ce')](_0x17033f['dialPredictiveInterval'])[_0xa851('0xc1')](this[_0xa851('0x1cf')](_0x17033f))['then'](mergeDataErlangB(_0x17033f))['then'](this[_0xa851('0x1d0')](_0x17033f))[_0xa851('0xba')](loggerCatchPredictive(_0xa851('0x1d1'),_0x17033f));}else if(!ifInterval(_0x17033f['dialPredictiveInterval'],_0x17033f[_0xa851('0x2c')])){_0x17033f[_0xa851('0x74')]=0x0;_0x17033f['startPredictive']=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');loggerPredictive[_0xa851('0x88')](_0x17033f[_0xa851('0x44')],_0xa851('0x1d2'),_0x17033f[_0xa851('0x2c')]);clearInterval(_0x17033f[_0xa851('0x9b')]);_0x17033f[_0xa851('0x9b')]=undefined;this[_0xa851('0x1ce')](_0x17033f['dialPredictiveInterval'])[_0xa851('0xc1')](this[_0xa851('0x1cf')](_0x17033f))[_0xa851('0xc1')](mergeDataErlangB(_0x17033f))['then'](this[_0xa851('0x1d0')](_0x17033f))['catch'](loggerCatchPredictive('Predictive\x20for\x20every\x20interval',_0x17033f));}else if(_0x17033f[_0xa851('0x1bf')]&&_0x54de50<_0x17033f[_0xa851('0x1bf')]-_0xed5656){freeVariablesPredictive(_0x17033f);loggerPredictive[_0xa851('0x88')](_0x17033f[_0xa851('0x44')],_0xa851('0x1d3'),_0x54de50,_0xa851('0x1d4'),_0x17033f[_0xa851('0x1bf')],'-',_0xed5656,'=',_0x17033f['predictiveIntervalAvailable']-_0xed5656,')');}else if(_0x17033f['predictiveIntervalAvailable']&&_0x54de50>_0x17033f[_0xa851('0x1bf')]+_0x26e2eb){freeVariablesPredictive(_0x17033f);loggerPredictive['info'](_0x17033f[_0xa851('0x44')],_0xa851('0x1d3'),_0x54de50,_0xa851('0x1d5'),_0x17033f[_0xa851('0x1bf')],'+',_0x26e2eb,'=',_0x17033f[_0xa851('0x1bf')]+_0x26e2eb,')');}};Dialer[_0xa851('0x1d')][_0xa851('0x1cf')]=function(_0x3ecade){var _0x549eac=this;return function(_0x1d60f2){return new BPromise(function(_0x17fc33,_0x2fce9d){_[_0xa851('0xda')](_0x3ecade,_0x1d60f2[0x0]);if(checkGetDataPredictive(_0x1d60f2[0x0])){var _0x32ee0e=_0x3ecade['predictiveIntervalAvailable']=_0x3ecade[_0xa851('0x5a')]+_0x3ecade[_0xa851('0x54')];var _0x502ab6=_0x3ecade[_0xa851('0x1cc')]*0x3c;var _0x267ed3=_0x1d60f2[0x0]['predictiveIntervalAvgTalktime']+_0x1d60f2[0x0][_0xa851('0x70')];var _0xf6ab1c=(_0x1d60f2[0x0]['predictiveIntervalAnsweredCalls']+_0x1d60f2[0x0][_0xa851('0x72')]+_0x1d60f2[0x0][_0xa851('0x8f')])/_0x1d60f2[0x0][_0xa851('0x78')];_0x3ecade[_0xa851('0x75')]=_0xf6ab1c>0x0?_0xf6ab1c:0x1;switch(_0x3ecade[_0xa851('0x1c6')]){case'dropRate':var _0x46d325=_0x3ecade['dialPredictiveOptimizationPercentage']/0x64;return _0x549eac['abandonmentRate'](_0x32ee0e,_0x502ab6,_0x267ed3,_0xf6ab1c,_0x46d325)[_0xa851('0xc1')](function(_0x62b6f5){return _0x17fc33(_0x62b6f5);});case'agentBusyFactor':var _0x267d1a=_0x3ecade['dialPredictiveOptimizationPercentage']/0x64;return _0x549eac['busyFactor'](_0x32ee0e,_0x502ab6,_0x267ed3,_0xf6ab1c,_0x267d1a)[_0xa851('0xc1')](function(_0x425c4e){return _0x17fc33(_0x425c4e);});default:return _0x2fce9d(msgResponse('[getDataPredictive]','Failure',_0xa851('0x1d6')));}}else{return _0x2fce9d(msgResponse('[getDataPredictive]',_0xa851('0x140'),_0xa851('0x1d7')));}});};};Dialer[_0xa851('0x1d')][_0xa851('0x1d8')]=function(_0x396b62){var _0xc0523a=this;return function(_0x5c0ab3){return new BPromise(function(_0x5afa9d,_0xbc9e4d){_[_0xa851('0xda')](_0x396b62,_0x5c0ab3[0x0]);if(checkGetDataPredictive(_0x5c0ab3[0x0])){loggerPredictive[_0xa851('0x88')](JSON[_0xa851('0x4e')](_0x5c0ab3[0x0]));if(_0x396b62['dialPredictiveOptimization']===_0xa851('0x1c7')){return _0xc0523a[_0xa851('0xcf')](_0x396b62['id'])[_0xa851('0xc1')](function(_0x1f76c2){var _0x162f2b=_0x396b62[_0xa851('0x55')]-_0x1f76c2[0x0]['outboundQueuePauses'];var _0x1bf4eb=_0x396b62[_0xa851('0x1cc')]*0x3c;var _0x13b73c=_0x5c0ab3[0x0][_0xa851('0x71')]+_0x5c0ab3[0x0][_0xa851('0x70')];var _0x33b04f=(_0x5c0ab3[0x0][_0xa851('0x8c')]+_0x5c0ab3[0x0][_0xa851('0x72')]+_0x5c0ab3[0x0][_0xa851('0x8f')])/_0x5c0ab3[0x0][_0xa851('0x78')];var _0x1bbd09=_0x396b62['dialPredictiveOptimizationPercentage']/0x64;_0x396b62[_0xa851('0x77')]=_0x1f76c2[0x0][_0xa851('0x1d9')]||0x0;_0x396b62[_0xa851('0x75')]=_0x33b04f>0x0?_0x33b04f:0x1;return _0xc0523a[_0xa851('0x1da')](_0x162f2b,_0x1bf4eb,_0x13b73c,_0x33b04f,_0x1bbd09);})['then'](function(_0x5e24bf){return _0x5afa9d(_0x5e24bf);})[_0xa851('0xba')](function(_0x3df9aa){return _0xbc9e4d(msgResponse(_0xa851('0x1db'),_0xa851('0x140'),JSON[_0xa851('0x4e')](_0x3df9aa)));});}if(_0x396b62['dialPredictiveOptimization']===_0xa851('0x1dc')){return _0xc0523a[_0xa851('0xcf')](_0x396b62['id'])[_0xa851('0xc1')](function(_0x211827){var _0x1d166=_0x396b62[_0xa851('0x55')]-_0x211827[0x0][_0xa851('0x1d9')];var _0x22eba3=_0x396b62[_0xa851('0x1cc')]*0x3c;var _0x3b3043=_0x5c0ab3[0x0][_0xa851('0x71')]+_0x5c0ab3[0x0][_0xa851('0x70')];var _0x25ba1e=(_0x5c0ab3[0x0][_0xa851('0x8c')]+_0x5c0ab3[0x0][_0xa851('0x72')]+_0x5c0ab3[0x0]['predictiveIntervalDroppedCallsCallersExit'])/_0x5c0ab3[0x0][_0xa851('0x78')];var _0x244c63=_0x396b62['dialPredictiveOptimizationPercentage']/0x64;_0x396b62['predictiveIntervalPauses']=_0x211827[0x0]['outboundQueuePauses']||0x0;_0x396b62[_0xa851('0x75')]=_0x25ba1e>0x0?_0x25ba1e:0x1;return _0xc0523a[_0xa851('0x1dd')](_0x1d166,_0x22eba3,_0x3b3043,_0x25ba1e,_0x244c63);})[_0xa851('0xc1')](function(_0x330d59){return _0x5afa9d(_0x330d59);})[_0xa851('0xba')](function(_0xb6fa49){return _0xbc9e4d(msgResponse(_0xa851('0x1db'),_0xa851('0x140'),JSON[_0xa851('0x4e')](_0xb6fa49)));});}}else{return _0xbc9e4d(msgResponse(_0xa851('0x1de'),_0xa851('0x140'),'check\x20failure'));}});};};Dialer[_0xa851('0x1d')]['startMethodPredictive']=function(_0x3069f9){var _0x1457aa=this;return function(){var _0x4afd42=0x0;var _0x122e6c=Math[_0xa851('0x1df')](_0x3069f9[_0xa851('0x7b')]*0x3e8);if(_0x122e6c>0x0){_0x122e6c=_0x122e6c<0x64?0x64:_0x122e6c;loggerPredictive[_0xa851('0x88')](_0x3069f9[_0xa851('0x44')],_0xa851('0x1e0'),_0x122e6c,_0xa851('0x4f'));_0x3069f9[_0xa851('0x9b')]=setInterval(function(){_0x1457aa['handlePredictive'](_0x3069f9);loggerPredictiveCalls[_0xa851('0x88')](_0xa851('0x1e1'),_0x4afd42+=0x1);},_0x122e6c);}else{loggerPredictive['info'](_0x3069f9[_0xa851('0x44')],_0xa851('0x1e2'));}};};Dialer[_0xa851('0x1d')][_0xa851('0x1e3')]=function(_0x8078aa,_0xd1cf3e){var _0x1ea0d0=this;return function(_0xae7363){if(_['isEmpty'](_0xae7363)){if(_['isNil'](_0xd1cf3e[_0xa851('0xde')])||!_0xd1cf3e[_0xa851('0x1e4')]){if(_0x8078aa['dialMethod']===_0xa851('0x156')){_0x8078aa[_0xa851('0x12f')]=_['isUndefined'](_0x8078aa['queueStatusComplete'])?!![]:_0x8078aa[_0xa851('0x12f')];var _0x4afc69=uuid['v4']();_0x1ea0d0[_0xa851('0x29')][_0x4afc69]=new Action(_0x8078aa,_0xd1cf3e,_0x4afc69);loggerBooked[_0xa851('0x88')](_0xa851('0x1e5'),_0x4afc69,_0xa851('0x1e6'),JSON['stringify'](_0x8078aa['queueStatusComplete']),_0xa851('0x1e7'),_0x8078aa[_0xa851('0x44')]);if(_0x8078aa['queueStatusComplete']){_0x8078aa['queueStatusComplete']=![];_0x1ea0d0[_0xa851('0x2e')][_0x1ea0d0[_0xa851('0x29')][_0x4afc69][_0xa851('0xbd')]]=[];ami[_0xa851('0xb7')]({'actionid':_0x4afc69,'action':'queuestatus','queue':_0x8078aa[_0xa851('0x44')]})[_0xa851('0xba')](function(){_0x1ea0d0['updateOriginated'](_0x8078aa);_0x1ea0d0['rescheduleContact']({'active':![],'ContactId':_0x1ea0d0[_0xa851('0x29')][_0x4afc69][_0xa851('0xdc')],'ListId':_0x1ea0d0['actions'][_0x4afc69][_0xa851('0xdd')],'VoiceQueueId':_0x1ea0d0['actions'][_0x4afc69][_0xa851('0xdf')]||undefined,'CampaignId':_0x1ea0d0[_0xa851('0x29')][_0x4afc69][_0xa851('0xe0')]||undefined})[_0xa851('0xba')](loggerCatch('[unlockOriginate][syncQueueStatusComplete]'));delete _0x1ea0d0[_0xa851('0x29')][_0x4afc69];});}else{loggerBooked[_0xa851('0x88')]('[booked][checkContactBlack][else]',JSON['stringify'](_0x8078aa[_0xa851('0x12f')]),_0xa851('0x1e7'),_0x8078aa[_0xa851('0x44')]);_0x1ea0d0[_0xa851('0xbc')](_0x8078aa);_0x1ea0d0[_0xa851('0xc8')]({'active':![],'ContactId':_0x1ea0d0[_0xa851('0x29')][_0x4afc69][_0xa851('0xdc')],'ListId':_0x1ea0d0[_0xa851('0x29')][_0x4afc69]['ListId'],'VoiceQueueId':_0x1ea0d0[_0xa851('0x29')][_0x4afc69][_0xa851('0xdf')]||undefined,'CampaignId':_0x1ea0d0[_0xa851('0x29')][_0x4afc69]['CampaignId']||undefined})[_0xa851('0xba')](loggerCatch(_0xa851('0x1e8')));delete _0x1ea0d0[_0xa851('0x29')][_0x4afc69];}}else{return _0x1ea0d0[_0xa851('0x164')](_0x8078aa,_0xd1cf3e);}}else{if(getDiff(_0xd1cf3e[_0xa851('0x1e9')])<_0x8078aa[_0xa851('0x1ea')]*0x3c){if(_0xd1cf3e[_0xa851('0x1eb')]&&!_0xd1cf3e[_0xa851('0x1eb')][_0xa851('0x1ec')]){_0x1ea0d0['preview']['run'](_0xd1cf3e['id'])[_0xa851('0x20')](function(){_0x1ea0d0[_0xa851('0xbc')](_0x8078aa);});}else{_0x1ea0d0[_0xa851('0xca')]({'active':![]},_0xd1cf3e['id'],0x1)[_0xa851('0x20')](function(){_0x1ea0d0[_0xa851('0xbc')](_0x8078aa);});}}else{_0x8078aa[_0xa851('0x6e')]+=0x1;_0x1ea0d0[_0xa851('0xbc')](_0x8078aa);if(_0x8078aa[_0xa851('0x1ed')]){_0x1ea0d0[_0xa851('0xc8')]({'active':![],'recallme':![],'UserId':null,'ContactId':_0xd1cf3e[_0xa851('0xdc')],'ListId':_0xd1cf3e['ListId'],'VoiceQueueId':_0xd1cf3e[_0xa851('0xdf')]||undefined,'CampaignId':_0xd1cf3e[_0xa851('0xe0')]||undefined})[_0xa851('0xba')](loggerCatch(_0xa851('0x1ee')));_0x1ea0d0[_0xa851('0xd2')](createObjHistory(_0x8078aa,_0xd1cf3e,'RECALLINQUEUE',0x17,_0xa851('0x1ef')))[_0xa851('0xba')](loggerCatch(_0xa851('0x1f0')));}else{_0x1ea0d0[_0xa851('0xd9')](createObjHistory(_0x8078aa,_0xd1cf3e,'RECALLFAILEDTIMEOUT',0x16,_0xa851('0x1f1')),_0xa851('0x1f2'),_0xa851('0x1f3'));}}}}else{_0x8078aa[_0xa851('0x66')]+=0x1;_0x1ea0d0['saveInDb'](createObjHistory(_0x8078aa,_0xd1cf3e,_0xa851('0x1f4'),0xd,'Blacklist'),'[Originate][historyBlacklist]',_0xa851('0x1f5'));throw _0xa851('0x1f6');}};};Dialer[_0xa851('0x1d')][_0xa851('0x15a')]=function(_0x1c6e80){var _0x571899=this;var _0xefbb51=_0x1c6e80[_0xa851('0x1f7')]-_0x1c6e80['originated']-_0x1c6e80['temp'];emitCampaignSummary(_0x1c6e80);if(_0xefbb51>0x0){if(_0xefbb51>this[_0xa851('0x27')]){_0xefbb51=this[_0xa851('0x27')];}_0x1c6e80['temp']+=_0xefbb51;this[_0xa851('0xce')](_0x1c6e80['id'],_0xefbb51,_0x1c6e80[_0xa851('0x1f8')],_0x1c6e80)[_0xa851('0xc1')](function(_0xf8f5be){_0x1c6e80[_0xa851('0xcc')]-=_0xefbb51;_0x1c6e80[_0xa851('0xcc')]=_0x1c6e80[_0xa851('0xcc')]>0x0?_0x1c6e80[_0xa851('0xcc')]:0x0;if(!checkContactEmpty(_0xf8f5be)){_0x1c6e80[_0xa851('0x42')]=_0xa851('0xa9');logger['info']('[getContactCampaign2][Empty]'+_0x1c6e80[_0xa851('0x44')]);}else{_0x1c6e80[_0xa851('0x79')]+=_0xf8f5be[_0xa851('0xa2')];_0x1c6e80['message']=_0xa851('0x1f9');for(var _0x268894=0x0;_0x268894<_0xf8f5be[_0xa851('0xa2')];_0x268894+=0x1){_0x1c6e80[_0xa851('0x1fa')]+=0x1;if(_['isNil'](_0xf8f5be[_0x268894])||_[_0xa851('0xe7')](_0xf8f5be[_0x268894][_0xa851('0x167')])||_['isNil'](_0xf8f5be[_0x268894][_0xa851('0x167')][_0xa851('0x168')])){_0x571899['emptyContact'](_0xa851('0x1fb'),_0x1c6e80,_0xf8f5be[_0x268894]);}else{_0x571899['checkIsBlackListIvr'](_[_0xa851('0xdb')](_0xf8f5be[_0x268894],[_0xa851('0xe0'),_0xa851('0x1fc')]))['then'](_0x571899['checkContactBlack'](_0x1c6e80,_0xf8f5be[_0x268894]))[_0xa851('0xba')](_0x571899['loggerHandler'](_0xa851('0x1fd'),_0x1c6e80));}}}})[_0xa851('0xba')](loggerGetContactDialer('[getContactCampaign2]',_0x1c6e80,_0xefbb51));}};Dialer[_0xa851('0x1d')]['handlePower']=function(_0x259bc0,_0x1ab6d0){var _0x1410c7=this;var _0x4d861f=[];var _0x1b1436=_0x1ab6d0>=0x1?_0x1ab6d0:0x1;if(_0x259bc0[_0xa851('0x151')]===_0xa851('0x156')){_0x1b1436=0x1;}var _0x1105cc=Math['floor'](_0x259bc0[_0xa851('0x54')]*_0x1b1436)-_0x259bc0[_0xa851('0x79')]-_0x259bc0[_0xa851('0xcc')];emitVoiceQueueSummary(_0x259bc0);if(_0x259bc0[_0xa851('0x1fe')]>0x0){var _0x487020=_0x259bc0[_0xa851('0x1fe')]-_0x259bc0['originated']-_0x259bc0['talking']-_0x259bc0[_0xa851('0xcc')]-_0x259bc0[_0xa851('0x56')];if(_0x1105cc>_0x487020){_0x1105cc=_0x487020;}}if(_0x1105cc>0x0){if(_0x259bc0[_0xa851('0x151')]===_0xa851('0x156')){_0x1105cc=0x1;}if(_0x1105cc>this[_0xa851('0x27')]){_0x1105cc=this[_0xa851('0x27')];}_0x259bc0['temp']+=_0x1105cc;for(var _0x31e66b in this[_0xa851('0x25')]){if(typeof this[_0xa851('0x25')][_0x31e66b]!==_0xa851('0xb6')){if(this[_0xa851('0x25')][_0x31e66b][_0xa851('0xaf')]===_0xa851('0x1ff')&&this[_0xa851('0x25')][_0x31e66b][_0xa851('0xb8')]===_0xa851('0x200')){_0x4d861f[_0xa851('0x12d')](this[_0xa851('0x25')][_0x31e66b]['id']);}}}this[_0xa851('0xcb')](_0x259bc0['id'],_0x4d861f,_0x1105cc,_0x259bc0['dialOrderByScheduledAt'],_0x259bc0)[_0xa851('0xc1')](function(_0x16a3db){_0x259bc0[_0xa851('0xcc')]-=_0x1105cc;_0x259bc0['temp']=_0x259bc0[_0xa851('0xcc')]>0x0?_0x259bc0[_0xa851('0xcc')]:0x0;if(!checkContactEmpty(_0x16a3db)){_0x1410c7[_0xa851('0x201')](_0x259bc0)[_0xa851('0xc1')](sendMessageReschedule(_0x259bc0))['catch'](loggerCatch(_0xa851('0xc2')));}else{_0x259bc0[_0xa851('0x79')]+=_0x16a3db[_0xa851('0xa2')];_0x259bc0['message']=_0x259bc0[_0xa851('0x151')]===_0xa851('0x156')?_0xa851('0x202'):'RUNNING';for(var _0x189858=0x0;_0x189858<_0x16a3db['length'];_0x189858+=0x1){if(_[_0xa851('0xe7')](_0x16a3db[_0x189858])||_[_0xa851('0xe7')](_0x16a3db[_0x189858][_0xa851('0x167')])||_[_0xa851('0xe7')](_0x16a3db[_0x189858][_0xa851('0x167')][_0xa851('0x168')])){_0x1410c7[_0xa851('0xd7')]('[actionOriginate]\x20',_0x259bc0,_0x16a3db[_0x189858]);}else{_0x1410c7['checkIsBlackList'](_[_0xa851('0xdb')](_0x16a3db[_0x189858],['VoiceQueueId',_0xa851('0x1fc')]))[_0xa851('0xc1')](_0x1410c7[_0xa851('0x1e3')](_0x259bc0,_0x16a3db[_0x189858]))[_0xa851('0xba')](_0x1410c7[_0xa851('0xd6')](_0xa851('0x1fb'),_0x259bc0));}}}})['catch'](loggerGetContactDialer(_0xa851('0x203'),_0x259bc0,_0x1105cc));}};Dialer[_0xa851('0x1d')]['handlePredictive']=function(_0x433204){if(_0x433204['dialLimitQueue']>0x0){var _0x58f715=_0x433204[_0xa851('0x1fe')]-_0x433204['originated']-_0x433204[_0xa851('0x5a')];if(_0x58f715>0x0){this[_0xa851('0x204')](_0x433204);}else{loggerPredictiveCalls[_0xa851('0x88')]('[handlePredictive][limitChannel]');}}else{this['tryOriginatePredictive'](_0x433204);}};Dialer[_0xa851('0x1d')][_0xa851('0x204')]=function(_0x5f3fd6){var _0x4fdace=this;var _0x27946d=[];_0x5f3fd6[_0xa851('0x79')]+=0x1;for(var _0x49e6d8 in this['agents']){if(typeof this[_0xa851('0x25')][_0x49e6d8]!==_0xa851('0xb6')){if(this[_0xa851('0x25')][_0x49e6d8][_0xa851('0xaf')]===_0xa851('0x1ff')&&this[_0xa851('0x25')][_0x49e6d8][_0xa851('0xb8')]===_0xa851('0x200')){_0x27946d[_0xa851('0x12d')](this[_0xa851('0x25')][_0x49e6d8]['id']);}}}this[_0xa851('0xcb')](_0x5f3fd6['id'],_0x27946d,0x1,_0x5f3fd6[_0xa851('0x1f8')],_0x5f3fd6)['then'](function(_0x4fc524){if(!checkContactEmpty(_0x4fc524)){checkContactLowerLimitOriginate(_0x5f3fd6,0x1,0x0);_0x4fdace[_0xa851('0x201')](_0x5f3fd6)[_0xa851('0xc1')](sendMessageReschedule(_0x5f3fd6))['catch'](loggerCatch('[countReScheduled]\x20'));}else{_0x5f3fd6[_0xa851('0x42')]=_0xa851('0x1f9');if(_['isNil'](_0x4fc524[0x0])||_[_0xa851('0xe7')](_0x4fc524[0x0]['Contact'])||_['isNil'](_0x4fc524[0x0][_0xa851('0x167')][_0xa851('0x168')])){_0x4fdace[_0xa851('0xd7')]('[actionOriginate]\x20',_0x5f3fd6,_0x4fc524[0x0]);}else{_0x4fdace[_0xa851('0x205')](_[_0xa851('0xdb')](_0x4fc524[0x0],[_0xa851('0xdf'),_0xa851('0x1fc')]))[_0xa851('0xc1')](_0x4fdace[_0xa851('0x1e3')](_0x5f3fd6,_0x4fc524[0x0]))[_0xa851('0xba')](_0x4fdace[_0xa851('0xd6')]('[actionOriginatePredictive]\x20',_0x5f3fd6));}}})[_0xa851('0xba')](loggerGetContactDialer(_0xa851('0x206'),_0x5f3fd6,0x1));emitVoiceQueueSummary(_0x5f3fd6);};Dialer[_0xa851('0x1d')][_0xa851('0x1da')]=function(_0x2e1152,_0x325ff8,_0x5429b4,_0x46e304,_0x44a607,_0x16bbc3){loggerPredictive['info'](_0xa851('0x207'));loggerPredictive[_0xa851('0x88')](_0xa851('0x208'),_0x2e1152);loggerPredictive[_0xa851('0x88')]('Interval:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20',_0x325ff8);loggerPredictive[_0xa851('0x88')](_0xa851('0x209'),_0x5429b4);loggerPredictive[_0xa851('0x88')](_0xa851('0x20a'),_0x46e304);loggerPredictive[_0xa851('0x88')](_0xa851('0x20b'),_0x44a607);loggerPredictive[_0xa851('0x88')]('---------------------------');return new BPromise(function(_0x44e5d0,_0x73040f){if(_0x2e1152<=0x0||isNaN(_0x2e1152)){return _0x73040f(msgResponse('[abandonmentRate]',_0xa851('0x4d'),_0xa851('0x20c')+_0x2e1152));}if(_0x5429b4<=0x0||isNaN(_0x5429b4)){return _0x73040f(msgResponse(_0xa851('0x20d'),_0xa851('0x4d'),_0xa851('0x20e')+_0x5429b4));}if(_0x46e304<=0x0||isNaN(_0x46e304)){return _0x73040f(msgResponse(_0xa851('0x20d'),'Error',_0xa851('0x20f')+_0x46e304));}if(_0x325ff8<=0x0||isNaN(_0x325ff8)){return _0x73040f(msgResponse(_0xa851('0x20d'),_0xa851('0x4d'),_0xa851('0x210')+_0x325ff8));}if(_0x44a607<=0x0||isNaN(_0x44a607)){return _0x73040f(msgResponse(_0xa851('0x20d'),'Error',_0xa851('0x211')+_0x44a607));}_0x16bbc3=_0x16bbc3||0x0;var _0x4b6787=0x1/_0x5429b4;var _0x5b03cb=0x0;var _0x46fccf=0x0;var _0x22779d=0x0;var _0x74633e=0x0;for(var _0xe53cfd=0x0;_0x22779d<_0x44a607;_0xe53cfd+=0x1){_0x46fccf=_0xe53cfd/_0x325ff8;_0x5b03cb=(_0x46e304*_0x46fccf+_0x16bbc3)/_0x4b6787;_0x22779d=erlangb(_0x5b03cb,_0x2e1152);_0x74633e=_0x5b03cb/_0x2e1152*(0x1-erlangb(_0x5b03cb,_0x2e1152));}return _0x44e5d0({'erlangCalls':_0xe53cfd,'erlangCallToSecond':_0x325ff8/_0xe53cfd,'erlangAbandonmentRate':_0x22779d,'erlangBusyFactor':_0x74633e});});};Dialer[_0xa851('0x1d')]['busyFactor']=function(_0x5ee395,_0x2b81f7,_0x503e9f,_0x442d03,_0xa69f4a,_0x324792){loggerPredictive['info']('----\x20Agent\x20Busy\x20Factor\x20----');loggerPredictive[_0xa851('0x88')]('M:\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',_0x5ee395);loggerPredictive[_0xa851('0x88')]('Interval:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20',_0x2b81f7);loggerPredictive['info'](_0xa851('0x209'),_0x503e9f);loggerPredictive[_0xa851('0x88')](_0xa851('0x20a'),_0x442d03);loggerPredictive[_0xa851('0x88')]('Umin:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20',_0xa69f4a);loggerPredictive['info']('---------------------------');return new BPromise(function(_0x38203f,_0x27f966){if(_0x5ee395<=0x0||isNaN(_0x5ee395)){return _0x27f966(msgResponse('[busyFactor]',_0xa851('0x4d'),_0xa851('0x20c')+_0x5ee395));}if(_0x503e9f<=0x0||isNaN(_0x503e9f)){return _0x27f966(msgResponse(_0xa851('0x212'),_0xa851('0x4d'),_0xa851('0x20e')+_0x503e9f));}if(_0x442d03<=0x0||isNaN(_0x442d03)){return _0x27f966(msgResponse(_0xa851('0x212'),_0xa851('0x4d'),'p\x20=\x20'+_0x442d03));}if(_0x2b81f7<=0x0||isNaN(_0x2b81f7)){return _0x27f966(msgResponse(_0xa851('0x212'),_0xa851('0x4d'),_0xa851('0x210')+_0x2b81f7));}if(_0xa69f4a<=0x0||isNaN(_0xa69f4a)){return _0x27f966(msgResponse(_0xa851('0x212'),'Error',_0xa851('0x213')+_0xa69f4a));}_0x324792=_0x324792||0x0;var _0x4cbb83=0x1/_0x503e9f;var _0x2fc3a1=0x0;var _0x39d9cc=0x0;var _0x14b23b=0x0;var _0x54a41d=0x0;for(var _0x4dc5f0=0x0;_0x54a41d<_0xa69f4a;_0x4dc5f0+=0x1){_0x39d9cc=_0x4dc5f0/_0x2b81f7;_0x2fc3a1=(_0x442d03*_0x39d9cc+_0x324792)/_0x4cbb83;_0x14b23b=erlangb(_0x2fc3a1,_0x5ee395);_0x54a41d=_0x2fc3a1/_0x5ee395*(0x1-erlangb(_0x2fc3a1,_0x5ee395));}return _0x38203f({'erlangCalls':_0x4dc5f0,'erlangCallToSecond':_0x2b81f7/_0x4dc5f0,'erlangAbandonmentRate':_0x14b23b,'erlangBusyFactor':_0x54a41d});});};module[_0xa851('0x214')]=Dialer;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd4ea=['responsetime','talktime','queue','connectedlinename','reason','callback','callbackuniqueid','callbackat','ContactId','ListId','UserId','VoiceQueueId','CampaignId','originatecalleridnum','originatecalleridname','exports','util','lodash','moment','milliseconds','seconds','scheduledat','type','campaigntype','outbound','countbusyretry','countcongestionretry','countnoanswerretry','countglobal','countnosuchnumberretry','countdropretry','countabandonedretry','countmachineretry','countagentrejectretry','uniqueid','calleridname','name','calleridnum','starttime','droptime','endtime'];(function(_0x1f5143,_0x5e31e6){var _0x383a38=function(_0x2c123c){while(--_0x2c123c){_0x1f5143['push'](_0x1f5143['shift']());}};_0x383a38(++_0x5e31e6);}(_0xd4ea,0x12f));var _0xad4e=function(_0x36b22b,_0x589e80){_0x36b22b=_0x36b22b-0x0;var _0x2ad385=_0xd4ea[_0x36b22b];return _0x2ad385;};'use strict';var util=require(_0xad4e('0x0'));var _=require(_0xad4e('0x1'));var moment=require(_0xad4e('0x2'));function getSeconds(_0x4333c8,_0x5d77ad){var _0xae0ee0=moment(_0x4333c8)[_0xad4e('0x3')](0x0);var _0x5f1d87=moment(_0x5d77ad)[_0xad4e('0x3')](0x0);return _0xae0ee0['diff'](_0x5f1d87,_0xad4e('0x4'));}function QueueCallerAbandon(_0x34918f,_0x460bd6){this[_0xad4e('0x5')]=_0x34918f[_0xad4e('0x5')];this[_0xad4e('0x6')]=_0x34918f[_0xad4e('0x6')];this[_0xad4e('0x7')]=_0x34918f['type']===_0xad4e('0x8')?'queue':_0x34918f[_0xad4e('0x6')];this['countbusyretry']=_0x34918f[_0xad4e('0x9')];this[_0xad4e('0xa')]=_0x34918f['countcongestionretry'];this[_0xad4e('0xb')]=_0x34918f[_0xad4e('0xb')];this[_0xad4e('0xc')]=_0x34918f['countbusyretry']+_0x34918f[_0xad4e('0xa')]+_0x34918f[_0xad4e('0xb')]+_0x34918f[_0xad4e('0xd')]+_0x34918f[_0xad4e('0xe')]+_0x34918f[_0xad4e('0xf')]+_0x34918f[_0xad4e('0x10')]+_0x34918f[_0xad4e('0x11')];this[_0xad4e('0xd')]=_0x34918f[_0xad4e('0xd')];this[_0xad4e('0xe')]=_0x34918f[_0xad4e('0xe')];this[_0xad4e('0xf')]=_0x34918f[_0xad4e('0xf')];this['countmachineretry']=_0x34918f[_0xad4e('0x10')];this[_0xad4e('0x11')]=_0x34918f['countagentrejectretry'];this['uniqueid']=_0x460bd6[_0xad4e('0x12')];this[_0xad4e('0x13')]=_0x34918f[_0xad4e('0x14')];this[_0xad4e('0x15')]=_0x34918f['number'];this[_0xad4e('0x16')]=_0x34918f[_0xad4e('0x16')];this['responsetime']=_0x34918f['responsetime'];this['droptime']=_0x34918f[_0xad4e('0x17')];this[_0xad4e('0x18')]=this['droptime'];this['ringtime']=getSeconds(_0x34918f['responsetime'],_0x34918f[_0xad4e('0x16')]);this['holdtime']=getSeconds(this[_0xad4e('0x17')],_0x34918f[_0xad4e('0x19')]);this[_0xad4e('0x1a')]=0x0;this[_0xad4e('0x1b')]=_0x460bd6[_0xad4e('0x1b')];this['membername']=_0x460bd6[_0xad4e('0x1c')];this[_0xad4e('0x1d')]=_0x460bd6['reason'];this[_0xad4e('0x1e')]=_0x34918f[_0xad4e('0x1e')];this[_0xad4e('0x1f')]=_0x34918f['callbackuniqueid'];this[_0xad4e('0x20')]=_0x34918f[_0xad4e('0x20')];this['recallme']=_0x34918f['recallme'];this['ContactId']=_0x34918f[_0xad4e('0x21')];this[_0xad4e('0x22')]=_0x34918f[_0xad4e('0x22')];this[_0xad4e('0x23')]=_0x34918f[_0xad4e('0x23')];this[_0xad4e('0x24')]=_0x34918f[_0xad4e('0x24')];this[_0xad4e('0x25')]=_0x34918f[_0xad4e('0x25')];this[_0xad4e('0x26')]=_0x34918f[_0xad4e('0x26')]||'';this[_0xad4e('0x27')]=_0x34918f[_0xad4e('0x27')]||'';}module[_0xad4e('0x28')]=QueueCallerAbandon;
\ No newline at end of file
+var _0x4031=['scheduledat','type','campaigntype','outbound','queue','countbusyretry','countcongestionretry','countnoanswerretry','countglobal','countdropretry','countabandonedretry','countmachineretry','countagentrejectretry','countnosuchnumberretry','uniqueid','calleridname','name','calleridnum','number','starttime','droptime','endtime','responsetime','membername','connectedlinename','callback','callbackuniqueid','callbackat','recallme','ContactId','ListId','UserId','VoiceQueueId','CampaignId','originatecalleridnum','originatecalleridname','exports','util','lodash','moment','milliseconds','diff'];(function(_0x6c2eb5,_0x2dd100){var _0xca4732=function(_0x376897){while(--_0x376897){_0x6c2eb5['push'](_0x6c2eb5['shift']());}};_0xca4732(++_0x2dd100);}(_0x4031,0xf7));var _0x1403=function(_0x29f717,_0x283922){_0x29f717=_0x29f717-0x0;var _0x2a1066=_0x4031[_0x29f717];return _0x2a1066;};'use strict';var util=require(_0x1403('0x0'));var _=require(_0x1403('0x1'));var moment=require(_0x1403('0x2'));function getSeconds(_0xd6f7c9,_0x5944b5){var _0x3e91ad=moment(_0xd6f7c9)[_0x1403('0x3')](0x0);var _0x305bb3=moment(_0x5944b5)['milliseconds'](0x0);return _0x3e91ad[_0x1403('0x4')](_0x305bb3,'seconds');}function QueueCallerAbandon(_0x302648,_0x4d0dd7){this[_0x1403('0x5')]=_0x302648['scheduledat'];this[_0x1403('0x6')]=_0x302648[_0x1403('0x6')];this[_0x1403('0x7')]=_0x302648[_0x1403('0x6')]===_0x1403('0x8')?_0x1403('0x9'):_0x302648[_0x1403('0x6')];this[_0x1403('0xa')]=_0x302648[_0x1403('0xa')];this['countcongestionretry']=_0x302648[_0x1403('0xb')];this[_0x1403('0xc')]=_0x302648[_0x1403('0xc')];this[_0x1403('0xd')]=_0x302648['countbusyretry']+_0x302648[_0x1403('0xb')]+_0x302648[_0x1403('0xc')]+_0x302648['countnosuchnumberretry']+_0x302648[_0x1403('0xe')]+_0x302648[_0x1403('0xf')]+_0x302648[_0x1403('0x10')]+_0x302648[_0x1403('0x11')];this[_0x1403('0x12')]=_0x302648[_0x1403('0x12')];this['countdropretry']=_0x302648[_0x1403('0xe')];this[_0x1403('0xf')]=_0x302648[_0x1403('0xf')];this[_0x1403('0x10')]=_0x302648['countmachineretry'];this[_0x1403('0x11')]=_0x302648[_0x1403('0x11')];this[_0x1403('0x13')]=_0x4d0dd7[_0x1403('0x13')];this[_0x1403('0x14')]=_0x302648[_0x1403('0x15')];this[_0x1403('0x16')]=_0x302648[_0x1403('0x17')];this[_0x1403('0x18')]=_0x302648[_0x1403('0x18')];this['responsetime']=_0x302648['responsetime'];this['droptime']=_0x302648[_0x1403('0x19')];this[_0x1403('0x1a')]=this[_0x1403('0x19')];this['ringtime']=getSeconds(_0x302648[_0x1403('0x1b')],_0x302648[_0x1403('0x18')]);this['holdtime']=getSeconds(this[_0x1403('0x19')],_0x302648[_0x1403('0x1b')]);this['talktime']=0x0;this[_0x1403('0x9')]=_0x4d0dd7[_0x1403('0x9')];this[_0x1403('0x1c')]=_0x4d0dd7[_0x1403('0x1d')];this['reason']=_0x4d0dd7['reason'];this[_0x1403('0x1e')]=_0x302648[_0x1403('0x1e')];this[_0x1403('0x1f')]=_0x302648[_0x1403('0x1f')];this[_0x1403('0x20')]=_0x302648['callbackat'];this[_0x1403('0x21')]=_0x302648[_0x1403('0x21')];this[_0x1403('0x22')]=_0x302648[_0x1403('0x22')];this[_0x1403('0x23')]=_0x302648[_0x1403('0x23')];this[_0x1403('0x24')]=_0x302648[_0x1403('0x24')];this[_0x1403('0x25')]=_0x302648['VoiceQueueId'];this[_0x1403('0x26')]=_0x302648['CampaignId'];this[_0x1403('0x27')]=_0x302648[_0x1403('0x27')]||'';this[_0x1403('0x28')]=_0x302648[_0x1403('0x28')]||'';}module[_0x1403('0x29')]=QueueCallerAbandon;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['fax','localstationid','path','AttachmentId','exports','util','lodash','moment','channel','format','%s/%s/%s','tech','Trunk'];(function(_0x339562,_0x4b746d){var _0x4237be=function(_0x4170c8){while(--_0x4170c8){_0x339562['push'](_0x339562['shift']());}};_0x4237be(++_0x4b746d);}(_0xa9e0,0x123));var _0x0a9e=function(_0x2f5ac5,_0x1ee939){_0x2f5ac5=_0x2f5ac5-0x0;var _0x37c9a8=_0xa9e0[_0x2f5ac5];return _0x37c9a8;};'use strict';var util=require(_0x0a9e('0x0'));var _=require(_0x0a9e('0x1'));var moment=require(_0x0a9e('0x2'));function Action(_0x5dd881,_0x550fbc,_0x18d5c9){this['uniqueid']=_0x5dd881||undefined;this[_0x0a9e('0x3')]=util[_0x0a9e('0x4')](_0x0a9e('0x5'),_0x550fbc[_0x0a9e('0x6')],_0x550fbc[_0x0a9e('0x7')]['name'],_0x18d5c9[_0x0a9e('0x8')]);this[_0x0a9e('0x9')]=_0x550fbc[_0x0a9e('0x9')];this['headerinfo']=_0x550fbc['headerinfo'];this[_0x0a9e('0xa')]=_0x18d5c9['path'];this['AttachmentId']=_0x18d5c9[_0x0a9e('0xb')];}module[_0x0a9e('0xc')]=Action;
\ No newline at end of file
+var _0xa9e0=['fax','localstationid','path','AttachmentId','exports','util','lodash','moment','channel','format','%s/%s/%s','tech','Trunk'];(function(_0x4f9f19,_0x564716){var _0x350ed7=function(_0x420f5f){while(--_0x420f5f){_0x4f9f19['push'](_0x4f9f19['shift']());}};_0x350ed7(++_0x564716);}(_0xa9e0,0x123));var _0x0a9e=function(_0x6131cd,_0x4c26a1){_0x6131cd=_0x6131cd-0x0;var _0x47e916=_0xa9e0[_0x6131cd];return _0x47e916;};'use strict';var util=require(_0x0a9e('0x0'));var _=require(_0x0a9e('0x1'));var moment=require(_0x0a9e('0x2'));function Action(_0x5dd881,_0x550fbc,_0x18d5c9){this['uniqueid']=_0x5dd881||undefined;this[_0x0a9e('0x3')]=util[_0x0a9e('0x4')](_0x0a9e('0x5'),_0x550fbc[_0x0a9e('0x6')],_0x550fbc[_0x0a9e('0x7')]['name'],_0x18d5c9[_0x0a9e('0x8')]);this[_0x0a9e('0x9')]=_0x550fbc[_0x0a9e('0x9')];this['headerinfo']=_0x550fbc['headerinfo'];this[_0x0a9e('0xa')]=_0x18d5c9['path'];this['AttachmentId']=_0x18d5c9[_0x0a9e('0xb')];}module[_0x0a9e('0xc')]=Action;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc68f=['info','\x20syncNewchannel\x20','variable','value','channelstate','syncNewExten','operation','status','filename','\x20syncFaxStatus\x20','remotestationid','pagestransferred','transferrate','calleridnum','/var/opt/motion2/server/files/attachments/','\x20result\x20conversion\x20file\x20','message','create','parse','.pdf','then','notify','catch','error','stringify','\x20receiveFax\x20','merge','pick','response','reason','update','AttachmentId','SENDING\x20FAILED\x20','[Fax][Message][Error][Updated]','logger','[Fax][Message][Error][NoUpdate1]','updateStatus','[Fax][Message][Updated]','[Fax][Message][NoUpdate1]','finally','[Fax][Message][NoUpdate2]','\x20hangup\x20sendFile\x20','\x20hangup\x20faxRiceive\x20','faxpages','SUCCESS','faxstatusstring','SENDING\x20FAILED:\x20','SENDING\x20FAILED','send','execOriginate','FaxAccountId','[Fax][execOriginate][success]','Fax\x20received','Fax\x20failed','checkAfterSend','checkTrunk','Trunk','isValid','gs\x20-q\x20-dNOPAUSE\x20-dBATCH\x20-sDEVICE=tiffg4\x20-sPAPERSIZE=letter\x20-sOutputFile=/var/opt/motion2/server/files/attachments/%s.tif\x20\x20%s\x20-c\x20quit','execute','%s/%s.tif','dir','XMF-PATH','Convert\x20pdf\x20to\x20tif','Action','variablesAction','addVariables','ext','isTrunkReachable','isNil','active','trunks','format','SIP/%s','reachable','unmonitored','\x20Trunk\x20is\x20not\x20active','Trunk\x20not\x20working','[Fax][checkTrunk][Empty\x20Fax]','[Fax][checkTrunk][Empty\x20path]','Empty\x20path','Is\x20Valid','exports','util','bluebird','uuid','moment','path','tiff2pdf','./util/gs','../../../config/logger','fax','./rpcDb','./channel','./action','../rpc/faxAccount','../rpc/attachment','../rpc/faxMessage','faxAccounts','actions','newchannel','syncNewchannel','varset','syncVarSet','newstate','syncNewState','bind','newexten','faxstatus','syncFaxStatus','receivefax','syncReceiveFax','syncHangup','syncOriginateResponse','prototype','context','from-voip-provider','hasOwnProperty','exten','localstationid','uniqueid','channels','channel','name'];(function(_0xfd10aa,_0x3a5c45){var _0x57d673=function(_0x38efdb){while(--_0x38efdb){_0xfd10aa['push'](_0xfd10aa['shift']());}};_0x57d673(++_0x3a5c45);}(_0xc68f,0xcf));var _0xfc68=function(_0x2dafbe,_0x5d04de){_0x2dafbe=_0x2dafbe-0x0;var _0x58a45a=_0xc68f[_0x2dafbe];return _0x58a45a;};'use strict';var util=require(_0xfc68('0x0'));var _=require('lodash');var BPromise=require(_0xfc68('0x1'));var uuid=require(_0xfc68('0x2'));var moment=require(_0xfc68('0x3'));var path=require(_0xfc68('0x4'));var tiff2pdf=require(_0xfc68('0x5'));var gs=require(_0xfc68('0x6'));var logger=require(_0xfc68('0x7'))(_0xfc68('0x8'));var ami=require('../ami');var rpcDb=require(_0xfc68('0x9'));var Channel=require(_0xfc68('0xa'));var ut=require('./util/util');var Action=require(_0xfc68('0xb'));var faxAccount=require(_0xfc68('0xc'));var attachment=require(_0xfc68('0xd'));var faxMessage=require(_0xfc68('0xe'));function Fax(_0x36270d){this['channels']={};this[_0xfc68('0xf')]=_0x36270d[_0xfc68('0xf')];this['trunks']=_0x36270d['trunks'];this[_0xfc68('0x10')]={};ami['on'](_0xfc68('0x11'),this[_0xfc68('0x12')]['bind'](this));ami['on'](_0xfc68('0x13'),this[_0xfc68('0x14')]['bind'](this));ami['on'](_0xfc68('0x15'),this[_0xfc68('0x16')][_0xfc68('0x17')](this));ami['on'](_0xfc68('0x18'),this['syncNewExten'][_0xfc68('0x17')](this));ami['on'](_0xfc68('0x19'),this[_0xfc68('0x1a')][_0xfc68('0x17')](this));ami['on'](_0xfc68('0x1b'),this[_0xfc68('0x1c')][_0xfc68('0x17')](this));ami['on']('hangup',this[_0xfc68('0x1d')][_0xfc68('0x17')](this));ami['on']('originateresponse',this[_0xfc68('0x1e')][_0xfc68('0x17')](this));}Fax[_0xfc68('0x1f')][_0xfc68('0x12')]=function(_0x5a1ed7){if(_0x5a1ed7[_0xfc68('0x20')]===_0xfc68('0x21')){for(var _0x1d8991 in this['faxAccounts']){if(this[_0xfc68('0xf')][_0xfc68('0x22')](_0x1d8991)){if(_0x5a1ed7[_0xfc68('0x23')]===this[_0xfc68('0xf')][_0x1d8991][_0xfc68('0x24')]){this['channels'][_0x5a1ed7[_0xfc68('0x25')]]={};this[_0xfc68('0x26')][_0x5a1ed7[_0xfc68('0x25')]][_0xfc68('0x27')]=_0x5a1ed7[_0xfc68('0x27')];this[_0xfc68('0x26')][_0x5a1ed7[_0xfc68('0x25')]]['id']=this['faxAccounts'][_0x1d8991]['id'];this[_0xfc68('0x26')][_0x5a1ed7[_0xfc68('0x25')]][_0xfc68('0x28')]=this[_0xfc68('0xf')][_0x1d8991][_0xfc68('0x28')];logger[_0xfc68('0x29')](_0x5a1ed7['uniqueid'],'\x20syncNewchannel\x20');}}}}if(this[_0xfc68('0x10')][_0x5a1ed7[_0xfc68('0x25')]]){this['channels'][_0x5a1ed7[_0xfc68('0x25')]]={};this[_0xfc68('0x26')][_0x5a1ed7[_0xfc68('0x25')]]['channel']=_0x5a1ed7['channel'];logger[_0xfc68('0x29')](_0x5a1ed7['uniqueid'],_0xfc68('0x2a'));}};Fax[_0xfc68('0x1f')]['syncVarSet']=function(_0x572c09){if(this['channels'][_0x572c09['uniqueid']]){for(var _0x34260b in _0x572c09[_0xfc68('0x2b')]){if(_0x572c09[_0xfc68('0x2b')]['hasOwnProperty'](_0x34260b)){this[_0xfc68('0x26')][_0x572c09[_0xfc68('0x25')]][_0x34260b]=_0x572c09[_0xfc68('0x2c')];}}}};Fax[_0xfc68('0x1f')][_0xfc68('0x16')]=function(_0x138576){if(this[_0xfc68('0x26')][_0x138576[_0xfc68('0x25')]]){this[_0xfc68('0x26')][_0x138576['uniqueid']][_0xfc68('0x2d')]=_0x138576[_0xfc68('0x2d')];this['channels'][_0x138576[_0xfc68('0x25')]]['channelstatedesc']=_0x138576['channelstatedesc'];}};Fax[_0xfc68('0x1f')][_0xfc68('0x2e')]=function(_0x51dec2){if(this[_0xfc68('0x26')][_0x51dec2[_0xfc68('0x25')]]){for(var _0x584028 in _0x51dec2[_0xfc68('0x2b')]){if(_0x51dec2[_0xfc68('0x2b')]['hasOwnProperty'](_0x584028)){this[_0xfc68('0x26')][_0x51dec2[_0xfc68('0x25')]][_0x584028]=_0x51dec2[_0xfc68('0x2c')];}}}};Fax[_0xfc68('0x1f')][_0xfc68('0x1a')]=function(_0x10f249){if(this[_0xfc68('0x26')][_0x10f249[_0xfc68('0x25')]]){this['channels'][_0x10f249[_0xfc68('0x25')]][_0xfc68('0x2f')]=_0x10f249['operation'];this[_0xfc68('0x26')][_0x10f249[_0xfc68('0x25')]][_0xfc68('0x30')]=_0x10f249[_0xfc68('0x30')];this[_0xfc68('0x26')][_0x10f249[_0xfc68('0x25')]][_0xfc68('0x24')]=_0x10f249[_0xfc68('0x24')];this[_0xfc68('0x26')][_0x10f249['uniqueid']]['filename']=_0x10f249[_0xfc68('0x31')];logger[_0xfc68('0x29')](_0x10f249[_0xfc68('0x25')],_0xfc68('0x32'));}};Fax[_0xfc68('0x1f')]['syncReceiveFax']=function(_0x2274a4){var _0xfec1bb=this;if(this[_0xfc68('0x26')][_0x2274a4[_0xfc68('0x25')]]){var _0x15bc7e=this[_0xfc68('0x26')][_0x2274a4[_0xfc68('0x25')]]['id'];this[_0xfc68('0x26')][_0x2274a4[_0xfc68('0x25')]]['remotestationid']=_0x2274a4[_0xfc68('0x33')];this['channels'][_0x2274a4['uniqueid']]['pagestransferred']=_0x2274a4[_0xfc68('0x34')];this[_0xfc68('0x26')][_0x2274a4['uniqueid']][_0xfc68('0x24')]=_0x2274a4['localstationid'];this[_0xfc68('0x26')][_0x2274a4[_0xfc68('0x25')]]['resolution']=_0x2274a4['resolution'];this[_0xfc68('0x26')][_0x2274a4['uniqueid']][_0xfc68('0x35')]=_0x2274a4[_0xfc68('0x35')];this[_0xfc68('0x26')][_0x2274a4['uniqueid']][_0xfc68('0x31')]=_0x2274a4[_0xfc68('0x31')];this[_0xfc68('0x26')][_0x2274a4[_0xfc68('0x25')]][_0xfc68('0x36')]=_0x2274a4['calleridnum'];if(this[_0xfc68('0x26')][_0x2274a4[_0xfc68('0x25')]][_0xfc68('0x34')]>0x0){tiff2pdf(_0x2274a4[_0xfc68('0x31')],_0xfc68('0x37'),function(_0xf9ce42){logger[_0xfc68('0x29')](_0x2274a4[_0xfc68('0x25')],_0xfc68('0x38'),_0xf9ce42[_0xfc68('0x39')]);attachment[_0xfc68('0x3a')]({'name':path[_0xfc68('0x3b')](_0x2274a4[_0xfc68('0x31')])[_0xfc68('0x28')],'basename':path[_0xfc68('0x3b')](_0x2274a4[_0xfc68('0x31')])[_0xfc68('0x28')]+_0xfc68('0x3c'),'type':'application/pdf'})[_0xfc68('0x3d')](function(_0x5132a0){faxAccount[_0xfc68('0x3e')](_0x15bc7e,{'from':_0x2274a4[_0xfc68('0x36')],'mapKey':'fax','body':path['parse'](_0x2274a4['filename'])[_0xfc68('0x28')]+_0xfc68('0x3c'),'AttachmentId':_0x5132a0['id']})[_0xfc68('0x3f')](function(_0x4a0080){logger[_0xfc68('0x40')](_0x2274a4[_0xfc68('0x25')],'\x20notify\x20',JSON[_0xfc68('0x41')](_0x4a0080));});})[_0xfc68('0x3f')](function(_0x4cc4e2){logger[_0xfc68('0x40')](_0x2274a4['uniqueid'],_0xfc68('0x42'),JSON['stringify'](_0x4cc4e2));});});}logger[_0xfc68('0x29')](_0x2274a4[_0xfc68('0x25')],_0xfc68('0x42'));}};Fax[_0xfc68('0x1f')][_0xfc68('0x1e')]=function(_0x31cf4d){if(this[_0xfc68('0x10')][_0x31cf4d['uniqueid']]){_[_0xfc68('0x43')](this[_0xfc68('0x26')][_0x31cf4d['uniqueid']],_[_0xfc68('0x44')](_0x31cf4d,[_0xfc68('0x45'),_0xfc68('0x46')]));}};function updateStatus(_0xcf4358){if(_0xcf4358['AttachmentId']){faxMessage[_0xfc68('0x47')](_0xcf4358[_0xfc68('0x48')],{'failMessage':_0xfc68('0x49')})[_0xfc68('0x3d')](function(_0x490607){ut['logger'](_0xfc68('0x4a'),_0x490607);})[_0xfc68('0x3f')](function(_0x3fec7f){ut[_0xfc68('0x4b')](_0xfc68('0x4c'),_0x3fec7f);});}else{ut['logger']('[Fax][Message][Error][NoUpdate2]');}}Fax[_0xfc68('0x1f')][_0xfc68('0x4d')]=function(_0x4437f6,_0x1d446d,_0x39befd){var _0x3aca63=this;var _0x1f4889={};if(_0x1d446d){_0x1f4889={'read':_0x1d446d};}else{_0x1f4889={'failMessage':_0x39befd};}if(this[_0xfc68('0x10')][_0x4437f6][_0xfc68('0x48')]){faxMessage[_0xfc68('0x47')](this[_0xfc68('0x10')][_0x4437f6][_0xfc68('0x48')],_0x1f4889)[_0xfc68('0x3d')](function(_0x77d1b3){ut[_0xfc68('0x4b')](_0xfc68('0x4e'),_0x77d1b3);})['catch'](function(_0xcd252f){ut['logger'](_0xfc68('0x4f'),_0xcd252f);})[_0xfc68('0x50')](function(){delete _0x3aca63[_0xfc68('0x26')][_0x4437f6];delete _0x3aca63['actions'][_0x4437f6];});}else{ut[_0xfc68('0x4b')](_0xfc68('0x51'));delete this[_0xfc68('0x26')][_0x4437f6];delete this[_0xfc68('0x10')][_0x4437f6];}};Fax[_0xfc68('0x1f')][_0xfc68('0x1d')]=function(_0x2d88dc){var _0x53f903=this;if(this[_0xfc68('0x26')][_0x2d88dc['uniqueid']]){if(this[_0xfc68('0x10')][_0x2d88dc[_0xfc68('0x25')]]){this['channels'][_0x2d88dc['uniqueid']]['id']=this[_0xfc68('0x10')][_0x2d88dc['uniqueid']]['id'];this[_0xfc68('0x26')][_0x2d88dc[_0xfc68('0x25')]][_0xfc68('0x28')]=this[_0xfc68('0x10')][_0x2d88dc[_0xfc68('0x25')]][_0xfc68('0x28')];}logger[_0xfc68('0x29')](_0x2d88dc['uniqueid'],this['actions'][_0x2d88dc[_0xfc68('0x25')]]?_0xfc68('0x52'):_0xfc68('0x53'),JSON[_0xfc68('0x41')](this['channels'][_0x2d88dc['uniqueid']]));if(this[_0xfc68('0x10')][_0x2d88dc[_0xfc68('0x25')]]){if(this['channels'][_0x2d88dc[_0xfc68('0x25')]][_0xfc68('0x54')]>0x0&&this[_0xfc68('0x26')][_0x2d88dc['uniqueid']][_0xfc68('0x19')]===_0xfc68('0x55')){this[_0xfc68('0x4d')](_0x2d88dc['uniqueid'],!![]);}else{this['updateStatus'](_0x2d88dc['uniqueid'],![],this[_0xfc68('0x26')][_0x2d88dc[_0xfc68('0x25')]][_0xfc68('0x56')]?_0xfc68('0x57')+this[_0xfc68('0x26')][_0x2d88dc[_0xfc68('0x25')]][_0xfc68('0x56')]:_0xfc68('0x58'));}}}};Fax[_0xfc68('0x1f')][_0xfc68('0x59')]=function(_0x36061c){var _0x43cf21=this;return new BPromise(function(_0x3a9c56,_0xe7edda){_0x43cf21[_0xfc68('0x5a')](_0x36061c,_0x43cf21[_0xfc68('0xf')][_0x36061c[_0xfc68('0x5b')]])['then'](function(_0x5d94c2){ut[_0xfc68('0x4b')](_0xfc68('0x5c'),_0x5d94c2);_0x3a9c56(ut[_0xfc68('0x39')](_0xfc68('0x5d')));})['catch'](function(_0x56e6e5){ut['logger']('[Fax][execOriginate][failure]',_0x56e6e5);updateStatus(_0x36061c);_0xe7edda(ut['message'](_0xfc68('0x5e')));});});};Fax[_0xfc68('0x1f')][_0xfc68('0x5f')]=function(_0x1b5f27){var _0x14826a=this;return new BPromise(function(_0x2fce3e,_0x3a8fb9){var _0x2866b0=_0x14826a[_0xfc68('0x60')](_0x14826a[_0xfc68('0xf')][_0x1b5f27[_0xfc68('0x5b')]][_0xfc68('0x61')],_0x1b5f27);if(_0x2866b0[_0xfc68('0x62')]){_0x2fce3e(ut[_0xfc68('0x39')]('Trunk\x20Reachable'));}else{_0x3a8fb9(ut[_0xfc68('0x39')](_0x2866b0[_0xfc68('0x39')]));}});};function originate(_0x54dccb,_0x1e1609,_0x5dc252){return new BPromise(function(_0x4ca4be,_0x31320b){if(_0x5dc252){var _0x5be93c=util['format'](_0xfc68('0x63'),path[_0xfc68('0x3b')](_0x54dccb[_0xfc68('0x4')])['name'],_0x54dccb[_0xfc68('0x4')]);gs[_0xfc68('0x64')](_0x5be93c)[_0xfc68('0x3d')](function(){_0x54dccb[_0xfc68('0x4')]=util['format'](_0xfc68('0x65'),path[_0xfc68('0x3b')](_0x54dccb[_0xfc68('0x4')])[_0xfc68('0x66')],path[_0xfc68('0x3b')](_0x54dccb[_0xfc68('0x4')])['name']);_0x1e1609[_0xfc68('0x67')]=_0x54dccb['path'];ut[_0xfc68('0x4b')](_0xfc68('0x68'),'');ami[_0xfc68('0x69')](ut['variablesAction'](_0x54dccb,_0x1e1609))[_0xfc68('0x3d')](function(_0x474351){_0x4ca4be(_0x474351);})[_0xfc68('0x3f')](function(_0x678f71){_0x31320b(_0x678f71);});})['catch'](function(_0x277ab8){_0x31320b(_0x277ab8);});}else{ami[_0xfc68('0x69')](ut[_0xfc68('0x6a')](_0x54dccb,_0x1e1609))[_0xfc68('0x3d')](function(_0x5cdc07){_0x4ca4be(_0x5cdc07);})[_0xfc68('0x3f')](function(_0x56f99d){_0x31320b(_0x56f99d);});}});}Fax[_0xfc68('0x1f')][_0xfc68('0x5a')]=function(_0x1cd60e,_0x1ab91e){var _0x1e7b99=this;return new BPromise(function(_0x50b0b8,_0x5578d1){var _0x524299=uuid['v4']();var _0x2339e1=ut[_0xfc68('0x6b')](_0x1cd60e,_0x1ab91e);_0x1e7b99[_0xfc68('0x10')][_0x524299]=new Action(_0x524299,_0x1ab91e,_0x1cd60e);var _0x353820=_0x1e7b99[_0xfc68('0x10')][_0x524299];if(path['parse'](_0x1cd60e[_0xfc68('0x4')])[_0xfc68('0x6c')]===_0xfc68('0x3c')){originate(_0x353820,_0x2339e1,!![])[_0xfc68('0x3d')](function(_0x5cba6b){_0x50b0b8(_0x5cba6b);})[_0xfc68('0x3f')](function(_0x25b3c5){_0x5578d1(_0x25b3c5);});}else{originate(_0x353820,_0x2339e1,![])[_0xfc68('0x3d')](function(_0x2a101a){_0x50b0b8(_0x2a101a);})['catch'](function(_0x371180){_0x5578d1(_0x371180);});}});};Fax['prototype'][_0xfc68('0x6d')]=function(_0x26aa62){return!_[_0xfc68('0x6e')](_0x26aa62)&&!_[_0xfc68('0x6e')](_0x26aa62[_0xfc68('0x28')])&&!_[_0xfc68('0x6e')](_0x26aa62[_0xfc68('0x6f')])&&_0x26aa62[_0xfc68('0x6f')]&&!_[_0xfc68('0x6e')](this[_0xfc68('0x70')][util[_0xfc68('0x71')](_0xfc68('0x72'),_0x26aa62[_0xfc68('0x28')])])&&!_[_0xfc68('0x6e')](this[_0xfc68('0x70')][util[_0xfc68('0x71')](_0xfc68('0x72'),_0x26aa62[_0xfc68('0x28')])][_0xfc68('0x30')])&&(this[_0xfc68('0x70')][util[_0xfc68('0x71')](_0xfc68('0x72'),_0x26aa62['name'])][_0xfc68('0x30')]===_0xfc68('0x73')||this[_0xfc68('0x70')][util[_0xfc68('0x71')]('SIP/%s',_0x26aa62[_0xfc68('0x28')])][_0xfc68('0x30')]===_0xfc68('0x74'));};Fax['prototype']['checkTrunk']=function(_0x1590ca,_0x451ae9){if(!this['isTrunkReachable'](_0x1590ca)){ut[_0xfc68('0x4b')]('[Fax][checkTrunk][Trunk\x20not\x20work]',_[_0xfc68('0x6e')](_0x1590ca)?'':_0x1590ca[_0xfc68('0x28')]+_0xfc68('0x75'));return{'isValid':![],'message':_0xfc68('0x76')};}if(_[_0xfc68('0x6e')](_0x451ae9[_0xfc68('0x8')])){ut[_0xfc68('0x4b')](_0xfc68('0x77'),JSON[_0xfc68('0x41')](_0x451ae9));return{'isValid':![],'message':'Empty\x20Fax'};}if(_['isNil'](_0x451ae9[_0xfc68('0x4')])){ut['logger'](_0xfc68('0x78'),JSON[_0xfc68('0x41')](_0x451ae9));return{'isValid':![],'message':_0xfc68('0x79')};}return{'isValid':!![],'message':_0xfc68('0x7a')};};module[_0xfc68('0x7b')]=Fax;
\ No newline at end of file
+var _0x2b5d=['SENDING\x20FAILED','send','execOriginate','Fax\x20received','[Fax][execOriginate][failure]','Fax\x20failed','checkAfterSend','FaxAccountId','Trunk','isValid','Trunk\x20Reachable','format','execute','dir','XMF-PATH','Convert\x20pdf\x20to\x20tif','Action','variablesAction','addVariables','isTrunkReachable','isNil','active','SIP/%s','reachable','unmonitored','checkTrunk','\x20Trunk\x20is\x20not\x20active','Trunk\x20not\x20working','Empty\x20Fax','[Fax][checkTrunk][Empty\x20path]','Empty\x20path','Is\x20Valid','exports','util','moment','path','tiff2pdf','../../../config/logger','fax','../ami','./rpcDb','./action','../rpc/faxMessage','channels','faxAccounts','trunks','actions','newchannel','syncNewchannel','bind','newstate','syncNewState','newexten','syncNewExten','faxstatus','syncFaxStatus','receivefax','syncHangup','originateresponse','prototype','context','from-voip-provider','exten','localstationid','uniqueid','channel','name','info','syncVarSet','variable','hasOwnProperty','channelstate','channelstatedesc','value','operation','status','syncReceiveFax','remotestationid','pagestransferred','resolution','transferrate','filename','calleridnum','\x20result\x20conversion\x20file\x20','message','parse','.pdf','application/pdf','then','notify','catch','error','stringify','\x20receiveFax\x20','syncOriginateResponse','merge','pick','response','reason','update','SENDING\x20FAILED\x20','[Fax][Message][Error][Updated]','logger','updateStatus','AttachmentId','[Fax][Message][Updated]','[Fax][Message][NoUpdate1]','finally','[Fax][Message][NoUpdate2]','\x20hangup\x20sendFile\x20','\x20hangup\x20faxRiceive\x20','faxpages','faxstatusstring','SENDING\x20FAILED:\x20'];(function(_0x1e15b4,_0x27e1d1){var _0x4d6d0a=function(_0x4fe1a9){while(--_0x4fe1a9){_0x1e15b4['push'](_0x1e15b4['shift']());}};_0x4d6d0a(++_0x27e1d1);}(_0x2b5d,0x177));var _0xd2b5=function(_0x5b64ef,_0x3fb4a3){_0x5b64ef=_0x5b64ef-0x0;var _0x54137d=_0x2b5d[_0x5b64ef];return _0x54137d;};'use strict';var util=require(_0xd2b5('0x0'));var _=require('lodash');var BPromise=require('bluebird');var uuid=require('uuid');var moment=require(_0xd2b5('0x1'));var path=require(_0xd2b5('0x2'));var tiff2pdf=require(_0xd2b5('0x3'));var gs=require('./util/gs');var logger=require(_0xd2b5('0x4'))(_0xd2b5('0x5'));var ami=require(_0xd2b5('0x6'));var rpcDb=require(_0xd2b5('0x7'));var Channel=require('./channel');var ut=require('./util/util');var Action=require(_0xd2b5('0x8'));var faxAccount=require('../rpc/faxAccount');var attachment=require('../rpc/attachment');var faxMessage=require(_0xd2b5('0x9'));function Fax(_0x5b35f9){this[_0xd2b5('0xa')]={};this[_0xd2b5('0xb')]=_0x5b35f9['faxAccounts'];this[_0xd2b5('0xc')]=_0x5b35f9[_0xd2b5('0xc')];this[_0xd2b5('0xd')]={};ami['on'](_0xd2b5('0xe'),this[_0xd2b5('0xf')][_0xd2b5('0x10')](this));ami['on']('varset',this['syncVarSet'][_0xd2b5('0x10')](this));ami['on'](_0xd2b5('0x11'),this[_0xd2b5('0x12')][_0xd2b5('0x10')](this));ami['on'](_0xd2b5('0x13'),this[_0xd2b5('0x14')][_0xd2b5('0x10')](this));ami['on'](_0xd2b5('0x15'),this[_0xd2b5('0x16')]['bind'](this));ami['on'](_0xd2b5('0x17'),this['syncReceiveFax'][_0xd2b5('0x10')](this));ami['on']('hangup',this[_0xd2b5('0x18')][_0xd2b5('0x10')](this));ami['on'](_0xd2b5('0x19'),this['syncOriginateResponse'][_0xd2b5('0x10')](this));}Fax[_0xd2b5('0x1a')]['syncNewchannel']=function(_0x3249c5){if(_0x3249c5[_0xd2b5('0x1b')]===_0xd2b5('0x1c')){for(var _0x5a2f48 in this[_0xd2b5('0xb')]){if(this[_0xd2b5('0xb')]['hasOwnProperty'](_0x5a2f48)){if(_0x3249c5[_0xd2b5('0x1d')]===this['faxAccounts'][_0x5a2f48][_0xd2b5('0x1e')]){this[_0xd2b5('0xa')][_0x3249c5[_0xd2b5('0x1f')]]={};this[_0xd2b5('0xa')][_0x3249c5[_0xd2b5('0x1f')]][_0xd2b5('0x20')]=_0x3249c5[_0xd2b5('0x20')];this['channels'][_0x3249c5[_0xd2b5('0x1f')]]['id']=this[_0xd2b5('0xb')][_0x5a2f48]['id'];this[_0xd2b5('0xa')][_0x3249c5['uniqueid']][_0xd2b5('0x21')]=this[_0xd2b5('0xb')][_0x5a2f48][_0xd2b5('0x21')];logger['info'](_0x3249c5[_0xd2b5('0x1f')],'\x20syncNewchannel\x20');}}}}if(this[_0xd2b5('0xd')][_0x3249c5['uniqueid']]){this['channels'][_0x3249c5[_0xd2b5('0x1f')]]={};this[_0xd2b5('0xa')][_0x3249c5['uniqueid']][_0xd2b5('0x20')]=_0x3249c5['channel'];logger[_0xd2b5('0x22')](_0x3249c5[_0xd2b5('0x1f')],'\x20syncNewchannel\x20');}};Fax[_0xd2b5('0x1a')][_0xd2b5('0x23')]=function(_0x555458){if(this[_0xd2b5('0xa')][_0x555458[_0xd2b5('0x1f')]]){for(var _0x33f3fd in _0x555458[_0xd2b5('0x24')]){if(_0x555458[_0xd2b5('0x24')][_0xd2b5('0x25')](_0x33f3fd)){this[_0xd2b5('0xa')][_0x555458[_0xd2b5('0x1f')]][_0x33f3fd]=_0x555458['value'];}}}};Fax[_0xd2b5('0x1a')][_0xd2b5('0x12')]=function(_0x533ea1){if(this[_0xd2b5('0xa')][_0x533ea1['uniqueid']]){this[_0xd2b5('0xa')][_0x533ea1[_0xd2b5('0x1f')]]['channelstate']=_0x533ea1[_0xd2b5('0x26')];this['channels'][_0x533ea1[_0xd2b5('0x1f')]][_0xd2b5('0x27')]=_0x533ea1['channelstatedesc'];}};Fax[_0xd2b5('0x1a')][_0xd2b5('0x14')]=function(_0x62f303){if(this['channels'][_0x62f303[_0xd2b5('0x1f')]]){for(var _0x70adf1 in _0x62f303['variable']){if(_0x62f303[_0xd2b5('0x24')][_0xd2b5('0x25')](_0x70adf1)){this[_0xd2b5('0xa')][_0x62f303[_0xd2b5('0x1f')]][_0x70adf1]=_0x62f303[_0xd2b5('0x28')];}}}};Fax[_0xd2b5('0x1a')]['syncFaxStatus']=function(_0x1527a2){if(this[_0xd2b5('0xa')][_0x1527a2[_0xd2b5('0x1f')]]){this[_0xd2b5('0xa')][_0x1527a2['uniqueid']][_0xd2b5('0x29')]=_0x1527a2[_0xd2b5('0x29')];this[_0xd2b5('0xa')][_0x1527a2[_0xd2b5('0x1f')]]['status']=_0x1527a2[_0xd2b5('0x2a')];this[_0xd2b5('0xa')][_0x1527a2['uniqueid']]['localstationid']=_0x1527a2[_0xd2b5('0x1e')];this[_0xd2b5('0xa')][_0x1527a2[_0xd2b5('0x1f')]]['filename']=_0x1527a2['filename'];logger['info'](_0x1527a2[_0xd2b5('0x1f')],'\x20syncFaxStatus\x20');}};Fax[_0xd2b5('0x1a')][_0xd2b5('0x2b')]=function(_0x2eb137){var _0x232aff=this;if(this['channels'][_0x2eb137[_0xd2b5('0x1f')]]){var _0x5a66c8=this[_0xd2b5('0xa')][_0x2eb137[_0xd2b5('0x1f')]]['id'];this[_0xd2b5('0xa')][_0x2eb137[_0xd2b5('0x1f')]][_0xd2b5('0x2c')]=_0x2eb137[_0xd2b5('0x2c')];this[_0xd2b5('0xa')][_0x2eb137[_0xd2b5('0x1f')]]['pagestransferred']=_0x2eb137[_0xd2b5('0x2d')];this[_0xd2b5('0xa')][_0x2eb137[_0xd2b5('0x1f')]]['localstationid']=_0x2eb137['localstationid'];this['channels'][_0x2eb137['uniqueid']]['resolution']=_0x2eb137[_0xd2b5('0x2e')];this[_0xd2b5('0xa')][_0x2eb137[_0xd2b5('0x1f')]]['transferrate']=_0x2eb137[_0xd2b5('0x2f')];this['channels'][_0x2eb137['uniqueid']]['filename']=_0x2eb137[_0xd2b5('0x30')];this[_0xd2b5('0xa')][_0x2eb137[_0xd2b5('0x1f')]]['calleridnum']=_0x2eb137[_0xd2b5('0x31')];if(this[_0xd2b5('0xa')][_0x2eb137['uniqueid']]['pagestransferred']>0x0){tiff2pdf(_0x2eb137[_0xd2b5('0x30')],'/var/opt/motion2/server/files/attachments/',function(_0x41be23){logger['info'](_0x2eb137[_0xd2b5('0x1f')],_0xd2b5('0x32'),_0x41be23[_0xd2b5('0x33')]);attachment['create']({'name':path[_0xd2b5('0x34')](_0x2eb137[_0xd2b5('0x30')])['name'],'basename':path[_0xd2b5('0x34')](_0x2eb137['filename'])[_0xd2b5('0x21')]+_0xd2b5('0x35'),'type':_0xd2b5('0x36')})[_0xd2b5('0x37')](function(_0xd9ea25){faxAccount[_0xd2b5('0x38')](_0x5a66c8,{'from':_0x2eb137['calleridnum'],'mapKey':_0xd2b5('0x5'),'body':path[_0xd2b5('0x34')](_0x2eb137[_0xd2b5('0x30')])[_0xd2b5('0x21')]+_0xd2b5('0x35'),'AttachmentId':_0xd9ea25['id']})[_0xd2b5('0x39')](function(_0x42eae3){logger[_0xd2b5('0x3a')](_0x2eb137[_0xd2b5('0x1f')],'\x20notify\x20',JSON[_0xd2b5('0x3b')](_0x42eae3));});})[_0xd2b5('0x39')](function(_0x3b9487){logger[_0xd2b5('0x3a')](_0x2eb137['uniqueid'],_0xd2b5('0x3c'),JSON['stringify'](_0x3b9487));});});}logger[_0xd2b5('0x22')](_0x2eb137[_0xd2b5('0x1f')],_0xd2b5('0x3c'));}};Fax['prototype'][_0xd2b5('0x3d')]=function(_0x3329b7){if(this[_0xd2b5('0xd')][_0x3329b7[_0xd2b5('0x1f')]]){_[_0xd2b5('0x3e')](this[_0xd2b5('0xa')][_0x3329b7[_0xd2b5('0x1f')]],_[_0xd2b5('0x3f')](_0x3329b7,[_0xd2b5('0x40'),_0xd2b5('0x41')]));}};function updateStatus(_0xfb49b7){if(_0xfb49b7['AttachmentId']){faxMessage[_0xd2b5('0x42')](_0xfb49b7['AttachmentId'],{'failMessage':_0xd2b5('0x43')})['then'](function(_0x39df53){ut['logger'](_0xd2b5('0x44'),_0x39df53);})[_0xd2b5('0x39')](function(_0x15f380){ut[_0xd2b5('0x45')]('[Fax][Message][Error][NoUpdate1]',_0x15f380);});}else{ut['logger']('[Fax][Message][Error][NoUpdate2]');}}Fax[_0xd2b5('0x1a')][_0xd2b5('0x46')]=function(_0xcada4f,_0x5177e8,_0x9955bd){var _0x574cd0=this;var _0x89f35b={};if(_0x5177e8){_0x89f35b={'read':_0x5177e8};}else{_0x89f35b={'failMessage':_0x9955bd};}if(this['actions'][_0xcada4f]['AttachmentId']){faxMessage['update'](this[_0xd2b5('0xd')][_0xcada4f][_0xd2b5('0x47')],_0x89f35b)[_0xd2b5('0x37')](function(_0x50f499){ut[_0xd2b5('0x45')](_0xd2b5('0x48'),_0x50f499);})[_0xd2b5('0x39')](function(_0x487b59){ut[_0xd2b5('0x45')](_0xd2b5('0x49'),_0x487b59);})[_0xd2b5('0x4a')](function(){delete _0x574cd0[_0xd2b5('0xa')][_0xcada4f];delete _0x574cd0['actions'][_0xcada4f];});}else{ut[_0xd2b5('0x45')](_0xd2b5('0x4b'));delete this['channels'][_0xcada4f];delete this[_0xd2b5('0xd')][_0xcada4f];}};Fax[_0xd2b5('0x1a')][_0xd2b5('0x18')]=function(_0x31ad67){var _0x6d2672=this;if(this[_0xd2b5('0xa')][_0x31ad67[_0xd2b5('0x1f')]]){if(this[_0xd2b5('0xd')][_0x31ad67[_0xd2b5('0x1f')]]){this[_0xd2b5('0xa')][_0x31ad67[_0xd2b5('0x1f')]]['id']=this[_0xd2b5('0xd')][_0x31ad67[_0xd2b5('0x1f')]]['id'];this[_0xd2b5('0xa')][_0x31ad67[_0xd2b5('0x1f')]][_0xd2b5('0x21')]=this[_0xd2b5('0xd')][_0x31ad67[_0xd2b5('0x1f')]]['name'];}logger[_0xd2b5('0x22')](_0x31ad67[_0xd2b5('0x1f')],this[_0xd2b5('0xd')][_0x31ad67[_0xd2b5('0x1f')]]?_0xd2b5('0x4c'):_0xd2b5('0x4d'),JSON[_0xd2b5('0x3b')](this[_0xd2b5('0xa')][_0x31ad67[_0xd2b5('0x1f')]]));if(this[_0xd2b5('0xd')][_0x31ad67['uniqueid']]){if(this[_0xd2b5('0xa')][_0x31ad67[_0xd2b5('0x1f')]][_0xd2b5('0x4e')]>0x0&&this[_0xd2b5('0xa')][_0x31ad67[_0xd2b5('0x1f')]][_0xd2b5('0x15')]==='SUCCESS'){this['updateStatus'](_0x31ad67[_0xd2b5('0x1f')],!![]);}else{this[_0xd2b5('0x46')](_0x31ad67[_0xd2b5('0x1f')],![],this['channels'][_0x31ad67['uniqueid']][_0xd2b5('0x4f')]?_0xd2b5('0x50')+this[_0xd2b5('0xa')][_0x31ad67[_0xd2b5('0x1f')]][_0xd2b5('0x4f')]:_0xd2b5('0x51'));}}}};Fax['prototype'][_0xd2b5('0x52')]=function(_0x5f22e2){var _0x2080a6=this;return new BPromise(function(_0x4c2e25,_0x3332cf){_0x2080a6[_0xd2b5('0x53')](_0x5f22e2,_0x2080a6['faxAccounts'][_0x5f22e2['FaxAccountId']])['then'](function(_0xc6478f){ut[_0xd2b5('0x45')]('[Fax][execOriginate][success]',_0xc6478f);_0x4c2e25(ut['message'](_0xd2b5('0x54')));})[_0xd2b5('0x39')](function(_0x49f5ac){ut[_0xd2b5('0x45')](_0xd2b5('0x55'),_0x49f5ac);updateStatus(_0x5f22e2);_0x3332cf(ut[_0xd2b5('0x33')](_0xd2b5('0x56')));});});};Fax[_0xd2b5('0x1a')][_0xd2b5('0x57')]=function(_0x2ce635){var _0x81bd9b=this;return new BPromise(function(_0x5bb18e,_0xc0193a){var _0x3749aa=_0x81bd9b['checkTrunk'](_0x81bd9b[_0xd2b5('0xb')][_0x2ce635[_0xd2b5('0x58')]][_0xd2b5('0x59')],_0x2ce635);if(_0x3749aa[_0xd2b5('0x5a')]){_0x5bb18e(ut[_0xd2b5('0x33')](_0xd2b5('0x5b')));}else{_0xc0193a(ut[_0xd2b5('0x33')](_0x3749aa[_0xd2b5('0x33')]));}});};function originate(_0x22782f,_0x286dd0,_0x4b27a0){return new BPromise(function(_0x5d2240,_0x303c72){if(_0x4b27a0){var _0x20bd4e=util[_0xd2b5('0x5c')]('gs\x20-q\x20-dNOPAUSE\x20-dBATCH\x20-sDEVICE=tiffg4\x20-sPAPERSIZE=letter\x20-sOutputFile=/var/opt/motion2/server/files/attachments/%s.tif\x20\x20%s\x20-c\x20quit',path[_0xd2b5('0x34')](_0x22782f[_0xd2b5('0x2')])[_0xd2b5('0x21')],_0x22782f[_0xd2b5('0x2')]);gs[_0xd2b5('0x5d')](_0x20bd4e)[_0xd2b5('0x37')](function(){_0x22782f[_0xd2b5('0x2')]=util[_0xd2b5('0x5c')]('%s/%s.tif',path['parse'](_0x22782f[_0xd2b5('0x2')])[_0xd2b5('0x5e')],path[_0xd2b5('0x34')](_0x22782f[_0xd2b5('0x2')])[_0xd2b5('0x21')]);_0x286dd0[_0xd2b5('0x5f')]=_0x22782f[_0xd2b5('0x2')];ut[_0xd2b5('0x45')](_0xd2b5('0x60'),'');ami[_0xd2b5('0x61')](ut[_0xd2b5('0x62')](_0x22782f,_0x286dd0))[_0xd2b5('0x37')](function(_0x2c2867){_0x5d2240(_0x2c2867);})[_0xd2b5('0x39')](function(_0x4378e5){_0x303c72(_0x4378e5);});})[_0xd2b5('0x39')](function(_0x48685b){_0x303c72(_0x48685b);});}else{ami[_0xd2b5('0x61')](ut[_0xd2b5('0x62')](_0x22782f,_0x286dd0))['then'](function(_0x3f63a){_0x5d2240(_0x3f63a);})[_0xd2b5('0x39')](function(_0x4bb827){_0x303c72(_0x4bb827);});}});}Fax[_0xd2b5('0x1a')][_0xd2b5('0x53')]=function(_0x26562a,_0x43413d){var _0x1ba1ed=this;return new BPromise(function(_0x3823f1,_0x30c260){var _0x579c4b=uuid['v4']();var _0x5e2098=ut[_0xd2b5('0x63')](_0x26562a,_0x43413d);_0x1ba1ed[_0xd2b5('0xd')][_0x579c4b]=new Action(_0x579c4b,_0x43413d,_0x26562a);var _0x2d3698=_0x1ba1ed['actions'][_0x579c4b];if(path[_0xd2b5('0x34')](_0x26562a[_0xd2b5('0x2')])['ext']===_0xd2b5('0x35')){originate(_0x2d3698,_0x5e2098,!![])[_0xd2b5('0x37')](function(_0x374122){_0x3823f1(_0x374122);})[_0xd2b5('0x39')](function(_0x279967){_0x30c260(_0x279967);});}else{originate(_0x2d3698,_0x5e2098,![])[_0xd2b5('0x37')](function(_0x545c6f){_0x3823f1(_0x545c6f);})[_0xd2b5('0x39')](function(_0x19b4a6){_0x30c260(_0x19b4a6);});}});};Fax[_0xd2b5('0x1a')][_0xd2b5('0x64')]=function(_0x860483){return!_[_0xd2b5('0x65')](_0x860483)&&!_[_0xd2b5('0x65')](_0x860483[_0xd2b5('0x21')])&&!_['isNil'](_0x860483[_0xd2b5('0x66')])&&_0x860483[_0xd2b5('0x66')]&&!_['isNil'](this[_0xd2b5('0xc')][util[_0xd2b5('0x5c')](_0xd2b5('0x67'),_0x860483[_0xd2b5('0x21')])])&&!_[_0xd2b5('0x65')](this[_0xd2b5('0xc')][util['format'](_0xd2b5('0x67'),_0x860483['name'])][_0xd2b5('0x2a')])&&(this[_0xd2b5('0xc')][util[_0xd2b5('0x5c')](_0xd2b5('0x67'),_0x860483[_0xd2b5('0x21')])][_0xd2b5('0x2a')]===_0xd2b5('0x68')||this[_0xd2b5('0xc')][util[_0xd2b5('0x5c')](_0xd2b5('0x67'),_0x860483[_0xd2b5('0x21')])]['status']===_0xd2b5('0x69'));};Fax[_0xd2b5('0x1a')][_0xd2b5('0x6a')]=function(_0x1d3634,_0x5e5b00){if(!this[_0xd2b5('0x64')](_0x1d3634)){ut['logger']('[Fax][checkTrunk][Trunk\x20not\x20work]',_[_0xd2b5('0x65')](_0x1d3634)?'':_0x1d3634['name']+_0xd2b5('0x6b'));return{'isValid':![],'message':_0xd2b5('0x6c')};}if(_['isNil'](_0x5e5b00[_0xd2b5('0x5')])){ut['logger']('[Fax][checkTrunk][Empty\x20Fax]',JSON['stringify'](_0x5e5b00));return{'isValid':![],'message':_0xd2b5('0x6d')};}if(_[_0xd2b5('0x65')](_0x5e5b00[_0xd2b5('0x2')])){ut['logger'](_0xd2b5('0x6e'),JSON['stringify'](_0x5e5b00));return{'isValid':![],'message':_0xd2b5('0x6f')};}return{'isValid':!![],'message':_0xd2b5('0x70')};};module[_0xd2b5('0x71')]=Fax;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0b1b=['lodash','../rpc/faxAccount','error','inspect','notify','resolve','then','[Notify]\x20','util','bluebird','../../../config/logger','preview'];(function(_0x24b582,_0x3c38c1){var _0x31118c=function(_0x485e3a){while(--_0x485e3a){_0x24b582['push'](_0x24b582['shift']());}};_0x31118c(++_0x3c38c1);}(_0x0b1b,0x1dc));var _0xb0b1=function(_0x220f3f,_0x11c540){_0x220f3f=_0x220f3f-0x0;var _0x1f170e=_0x0b1b[_0x220f3f];return _0x1f170e;};'use strict';var util=require(_0xb0b1('0x0'));var BPromise=require(_0xb0b1('0x1'));var logger=require(_0xb0b1('0x2'))(_0xb0b1('0x3'));var _=require(_0xb0b1('0x4'));var faxAccount=require(_0xb0b1('0x5'));function loggerCatch(_0x170ec6){return function(_0x3dcf23){logger[_0xb0b1('0x6')](_0x170ec6,util[_0xb0b1('0x7')](_0x3dcf23,{'showHidden':![],'depth':null}));};}exports[_0xb0b1('0x8')]=function(_0x8b2bf9,_0x384695){return BPromise[_0xb0b1('0x9')]()[_0xb0b1('0xa')](faxAccount[_0xb0b1('0x8')](_0x8b2bf9,_0x384695))['catch'](loggerCatch(_0xb0b1('0xb')));};
\ No newline at end of file
+var _0xd078=['[Notify]\x20','bluebird','../../../config/logger','preview','lodash','inspect','resolve','then','notify','catch'];(function(_0x15ee01,_0x2f6495){var _0x12b4bf=function(_0xf07934){while(--_0xf07934){_0x15ee01['push'](_0x15ee01['shift']());}};_0x12b4bf(++_0x2f6495);}(_0xd078,0xe7));var _0x8d07=function(_0x3333bd,_0x23cf4c){_0x3333bd=_0x3333bd-0x0;var _0x5edb96=_0xd078[_0x3333bd];return _0x5edb96;};'use strict';var util=require('util');var BPromise=require(_0x8d07('0x0'));var logger=require(_0x8d07('0x1'))(_0x8d07('0x2'));var _=require(_0x8d07('0x3'));var faxAccount=require('../rpc/faxAccount');function loggerCatch(_0x3afee8){return function(_0xb04021){logger['error'](_0x3afee8,util[_0x8d07('0x4')](_0xb04021,{'showHidden':![],'depth':null}));};}exports['notify']=function(_0x89f92f,_0x4b7fca){return BPromise[_0x8d07('0x5')]()[_0x8d07('0x6')](faxAccount[_0x8d07('0x7')](_0x89f92f,_0x4b7fca))[_0x8d07('0x8')](loggerCatch(_0x8d07('0x9')));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd3e0=['inspect','../../../../config/logger','exec','execute','info','Exec\x20gs'];(function(_0x2a1d55,_0x1c2544){var _0x23821e=function(_0x53df4e){while(--_0x53df4e){_0x2a1d55['push'](_0x2a1d55['shift']());}};_0x23821e(++_0x1c2544);}(_0xd3e0,0x11b));var _0x0d3e=function(_0x59ee6f,_0x450239){_0x59ee6f=_0x59ee6f-0x0;var _0x4c0979=_0xd3e0[_0x59ee6f];return _0x4c0979;};'use strict';var util=require('util');var logger=require(_0x0d3e('0x0'))('fax');var BPromise=require('bluebird');var exec=require('child_process')[_0x0d3e('0x1')];exports[_0x0d3e('0x2')]=function(_0x252b84){return new BPromise(function(_0x43576b,_0x22bbf3){exec(_0x252b84,function(_0x2bd2d2,_0xf79ca7,_0x3bac31){logger[_0x0d3e('0x3')](_0x0d3e('0x4'),_0xf79ca7);if(_0x2bd2d2){logger[_0x0d3e('0x3')](_0x0d3e('0x4'),'\x20Error\x20:',util[_0x0d3e('0x5')](_0x2bd2d2,{'showHidden':![],'depth':null}),_0xf79ca7,_0x3bac31);_0x22bbf3(_0x2bd2d2);}_0x43576b(_0xf79ca7);});});};
\ No newline at end of file
+var _0x8a08=['util','../../../../config/logger','fax','bluebird','exec','execute','info','Exec\x20gs','\x20Error\x20:'];(function(_0xf5112c,_0x4815ef){var _0x1de00f=function(_0x2019d3){while(--_0x2019d3){_0xf5112c['push'](_0xf5112c['shift']());}};_0x1de00f(++_0x4815ef);}(_0x8a08,0x117));var _0x88a0=function(_0x26989f,_0x4f14d3){_0x26989f=_0x26989f-0x0;var _0x4770dd=_0x8a08[_0x26989f];return _0x4770dd;};'use strict';var util=require(_0x88a0('0x0'));var logger=require(_0x88a0('0x1'))(_0x88a0('0x2'));var BPromise=require(_0x88a0('0x3'));var exec=require('child_process')[_0x88a0('0x4')];exports[_0x88a0('0x5')]=function(_0x598370){return new BPromise(function(_0xbac1ba,_0x41a1d2){exec(_0x598370,function(_0x5e046e,_0x100c7b,_0x15573f){logger[_0x88a0('0x6')](_0x88a0('0x7'),_0x100c7b);if(_0x5e046e){logger['info'](_0x88a0('0x7'),_0x88a0('0x8'),util['inspect'](_0x5e046e,{'showHidden':![],'depth':null}),_0x100c7b,_0x15573f);_0x41a1d2(_0x5e046e);}_0xbac1ba(_0x100c7b);});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3ce1=['gateway','faxdetect','t38timeout','localstationid','path','uniqueid','channel','xcally-motion-fax','from-sip','\x22%s\x22\x20<%s>','util','lodash','moment','../../../../config/logger','message','logger','info','inspect','addVariables','headerinfo','minrate','format','\x22%s\x22'];(function(_0x24b04b,_0xdb2210){var _0x16c4fb=function(_0x35a69f){while(--_0x35a69f){_0x24b04b['push'](_0x24b04b['shift']());}};_0x16c4fb(++_0xdb2210);}(_0x3ce1,0xf0));var _0x13ce=function(_0x240a6d,_0x51a3d4){_0x240a6d=_0x240a6d-0x0;var _0x4d0de8=_0x3ce1[_0x240a6d];return _0x4d0de8;};'use strict';var util=require(_0x13ce('0x0'));var _=require(_0x13ce('0x1'));var moment=require(_0x13ce('0x2'));var logger=require(_0x13ce('0x3'))('fax');exports[_0x13ce('0x4')]=function(_0x37931f){return{'message':_0x37931f};};exports[_0x13ce('0x5')]=function(_0x255d50,_0x42800d){logger[_0x13ce('0x6')](_0x255d50,util[_0x13ce('0x7')](_0x42800d,{'showHidden':![],'depth':null}));};exports[_0x13ce('0x8')]=function(_0x4e16e1,_0x3709be){var _0x55e276={'XMF-ECM':_0x3709be['ecm'],'XMF-HEADERINFO':_0x3709be[_0x13ce('0x9')],'XMF-MINRATE':_0x3709be[_0x13ce('0xa')],'XMF-MAXRATE':_0x3709be['maxrate'],'XMF-MODEM':util[_0x13ce('0xb')](_0x13ce('0xc'),_0x3709be['modem']),'XMF-GATEWAY':_0x3709be[_0x13ce('0xd')],'XMF-FAXDETECT':_0x3709be[_0x13ce('0xe')],'XMF-T38TIMEOUT':_0x3709be[_0x13ce('0xf')],'XMF-LOCALSTATIONID':_0x3709be[_0x13ce('0x10')],'XMF-PATH':_0x4e16e1[_0x13ce('0x11')]};return _0x55e276;};exports['variablesAction']=function(_0x5b1a31,_0x2f60c7){return{'actionid':_0x5b1a31[_0x13ce('0x12')],'action':'originate','channel':_0x5b1a31[_0x13ce('0x13')],'Exten':_0x13ce('0x14'),'Context':_0x13ce('0x15'),'Priority':'1','callerid':util['format'](_0x13ce('0x16'),_0x5b1a31['headerinfo']?_0x5b1a31['headerinfo']:'',_0x5b1a31[_0x13ce('0x10')]),'variable':_0x2f60c7,'timeout':0x1e*0x3e8,'async':!![],'channelid':_0x5b1a31[_0x13ce('0x12')]};};
\ No newline at end of file
+var _0xb050=['moment','../../../../config/logger','message','logger','info','inspect','addVariables','ecm','headerinfo','maxrate','format','\x22%s\x22','gateway','faxdetect','t38timeout','localstationid','path','uniqueid','originate','channel','xcally-motion-fax','from-sip','\x22%s\x22\x20<%s>','lodash'];(function(_0x5ddaac,_0x2697a8){var _0x2a9c58=function(_0x851032){while(--_0x851032){_0x5ddaac['push'](_0x5ddaac['shift']());}};_0x2a9c58(++_0x2697a8);}(_0xb050,0x11f));var _0x0b05=function(_0x349093,_0x59470c){_0x349093=_0x349093-0x0;var _0x5e30d7=_0xb050[_0x349093];return _0x5e30d7;};'use strict';var util=require('util');var _=require(_0x0b05('0x0'));var moment=require(_0x0b05('0x1'));var logger=require(_0x0b05('0x2'))('fax');exports[_0x0b05('0x3')]=function(_0x409064){return{'message':_0x409064};};exports[_0x0b05('0x4')]=function(_0x47c7f2,_0x3d4225){logger[_0x0b05('0x5')](_0x47c7f2,util[_0x0b05('0x6')](_0x3d4225,{'showHidden':![],'depth':null}));};exports[_0x0b05('0x7')]=function(_0x53664d,_0x44dc10){var _0x409caf={'XMF-ECM':_0x44dc10[_0x0b05('0x8')],'XMF-HEADERINFO':_0x44dc10[_0x0b05('0x9')],'XMF-MINRATE':_0x44dc10['minrate'],'XMF-MAXRATE':_0x44dc10[_0x0b05('0xa')],'XMF-MODEM':util[_0x0b05('0xb')](_0x0b05('0xc'),_0x44dc10['modem']),'XMF-GATEWAY':_0x44dc10[_0x0b05('0xd')],'XMF-FAXDETECT':_0x44dc10[_0x0b05('0xe')],'XMF-T38TIMEOUT':_0x44dc10[_0x0b05('0xf')],'XMF-LOCALSTATIONID':_0x44dc10[_0x0b05('0x10')],'XMF-PATH':_0x53664d[_0x0b05('0x11')]};return _0x409caf;};exports['variablesAction']=function(_0xcfadde,_0xf96968){return{'actionid':_0xcfadde[_0x0b05('0x12')],'action':_0x0b05('0x13'),'channel':_0xcfadde[_0x0b05('0x14')],'Exten':_0x0b05('0x15'),'Context':_0x0b05('0x16'),'Priority':'1','callerid':util[_0x0b05('0xb')](_0x0b05('0x17'),_0xcfadde[_0x0b05('0x9')]?_0xcfadde[_0x0b05('0x9')]:'',_0xcfadde[_0x0b05('0x10')]),'variable':_0xf96968,'timeout':0x1e*0x3e8,'async':!![],'channelid':_0xcfadde[_0x0b05('0x12')]};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd083=['./rpc/integrations/salesforce','./rpc/integrations/sugarcrm','./rpc/integrations/desk','./rpc/integrations/vtiger','./rpc/integrations/freshsales','./rpc/integrations/servicenow','./rpc/integrations/dynamics365','get','hour','then','initAgents','getTelephones','initTelephones','getTrunks','initTrunks','getVoiceQueues','initVoiceQueues','getTemplates','initTemplates','initZendeskAccounts','getSalesforceAccounts','initSalesforceAccounts','initSugarcrmAccounts','getFreshdeskAccounts','initFreshdeskAccounts','getDeskAccounts','initDeskAccounts','getZohoAccounts','initZohoAccounts','getVtigerAccounts','initVtigerAccounts','getServicenowAccounts','initServicenowAccounts','getDynamics365Accounts','initDynamics365Accounts','getCampaigns','initCampaigns','getVoiceExtensions','initVoiceExtensions','getFaxAccounts','initFaxAccounts','resolve','getVoiceQueueReports','getVoiceQueueHopperHistory','getCampaignHopperHistory','initCampaignHopperHistory','initVoiceCallReports','catch','log','listen','sync','util','moment','./server','./realtime','./report','./trigger','./dialer','./preview','./fax','./rpc/user','./rpc/voiceQueue','./rpc/voiceQueueReport','./rpc/trunk','./rpc/trigger','./rpc/template','./rpc/campaign','./rpc/voiceExtension','./rpc/faxAccount'];(function(_0x4ccad0,_0x2c1f1f){var _0x49ea59=function(_0x188659){while(--_0x188659){_0x4ccad0['push'](_0x4ccad0['shift']());}};_0x49ea59(++_0x2c1f1f);}(_0xd083,0x147));var _0x3d08=function(_0x389213,_0x14a50d){_0x389213=_0x389213-0x0;var _0x4ad6ca=_0xd083[_0x389213];return _0x4ad6ca;};'use strict';var BPromise=require('bluebird');var util=require(_0x3d08('0x0'));var moment=require(_0x3d08('0x1'));var server=require(_0x3d08('0x2'));var Realtime=require(_0x3d08('0x3'));var Report=require(_0x3d08('0x4'));var Acw=require('./acw');var Trigger=require(_0x3d08('0x5'));var Dialer=require(_0x3d08('0x6'));var Preview=require(_0x3d08('0x7'));var Fax=require(_0x3d08('0x8'));var user=require(_0x3d08('0x9'));var voiceQueue=require(_0x3d08('0xa'));var voiceQueueReport=require(_0x3d08('0xb'));var voiceCallReport=require('./rpc/voiceCallReport');var trunk=require(_0x3d08('0xc'));var trigger=require(_0x3d08('0xd'));var template=require(_0x3d08('0xe'));var cmHopperHistory=require('./rpc/cmHopperHistory');var campaign=require(_0x3d08('0xf'));var voiceExtension=require(_0x3d08('0x10'));var faxAccount=require(_0x3d08('0x11'));var zendesk=require('./rpc/integrations/zendesk');var salesforce=require(_0x3d08('0x12'));var sugarcrm=require(_0x3d08('0x13'));var freshdesk=require('./rpc/integrations/freshdesk');var desk=require(_0x3d08('0x14'));var zoho=require('./rpc/integrations/zoho');var vtiger=require(_0x3d08('0x15'));var freshsales=require(_0x3d08('0x16'));var servicenow=require(_0x3d08('0x17'));var dynamics365=require(_0x3d08('0x18'));var realtime=new Realtime();var report=new Report(realtime);var acw=new Acw(realtime);var channelTrigger=new Trigger(realtime);var preview=new Preview(realtime);var dialer=new Dialer(realtime,preview);var fax=new Fax(realtime);var isTrue=!![];var initP=!![];function ifMidnight(){if(moment()[_0x3d08('0x19')](_0x3d08('0x1a'))===0x0&&initP){initP=![];isTrue=!![];initParams();}if(moment()[_0x3d08('0x19')](_0x3d08('0x1a'))===0x1&&isTrue){isTrue=![];initP=!![];}}function initRealtime(){ifMidnight();return BPromise['resolve']()[_0x3d08('0x1b')](user['getAgents']())['then'](realtime[_0x3d08('0x1c')]())[_0x3d08('0x1b')](user[_0x3d08('0x1d')]())['then'](realtime[_0x3d08('0x1e')]())['then'](trunk[_0x3d08('0x1f')]())[_0x3d08('0x1b')](realtime[_0x3d08('0x20')]())[_0x3d08('0x1b')](voiceQueue[_0x3d08('0x21')]())[_0x3d08('0x1b')](realtime[_0x3d08('0x22')]())['then'](trigger['getTriggers']())['then'](realtime['initTriggers']())[_0x3d08('0x1b')](template[_0x3d08('0x23')]())[_0x3d08('0x1b')](realtime[_0x3d08('0x24')]())['then'](zendesk['getZendeskAccounts']())['then'](realtime[_0x3d08('0x25')]())[_0x3d08('0x1b')](salesforce[_0x3d08('0x26')]())[_0x3d08('0x1b')](realtime[_0x3d08('0x27')]())[_0x3d08('0x1b')](sugarcrm['getSugarcrmAccounts']())[_0x3d08('0x1b')](realtime[_0x3d08('0x28')]())['then'](freshdesk[_0x3d08('0x29')]())['then'](realtime[_0x3d08('0x2a')]())[_0x3d08('0x1b')](desk[_0x3d08('0x2b')]())[_0x3d08('0x1b')](realtime[_0x3d08('0x2c')]())[_0x3d08('0x1b')](zoho[_0x3d08('0x2d')]())[_0x3d08('0x1b')](realtime[_0x3d08('0x2e')]())[_0x3d08('0x1b')](vtiger[_0x3d08('0x2f')]())[_0x3d08('0x1b')](realtime[_0x3d08('0x30')]())[_0x3d08('0x1b')](freshsales['getFreshsalesAccounts']())[_0x3d08('0x1b')](realtime['initFreshsalesAccounts']())[_0x3d08('0x1b')](servicenow[_0x3d08('0x31')]())['then'](realtime[_0x3d08('0x32')]())[_0x3d08('0x1b')](dynamics365[_0x3d08('0x33')]())['then'](realtime[_0x3d08('0x34')]())['then'](campaign[_0x3d08('0x35')]())[_0x3d08('0x1b')](realtime[_0x3d08('0x36')]())['then'](voiceExtension[_0x3d08('0x37')]())['then'](realtime[_0x3d08('0x38')]())['then'](faxAccount[_0x3d08('0x39')]())[_0x3d08('0x1b')](realtime[_0x3d08('0x3a')]())[_0x3d08('0x1b')](function(){return realtime;});}function initParams(){return BPromise[_0x3d08('0x3b')]()[_0x3d08('0x1b')](voiceQueueReport[_0x3d08('0x3c')]())[_0x3d08('0x1b')](realtime['initVoiceQueueReports']())[_0x3d08('0x1b')](cmHopperHistory[_0x3d08('0x3d')]())[_0x3d08('0x1b')](realtime['initVoiceQueueHopperHistory']())['then'](cmHopperHistory[_0x3d08('0x3e')]())[_0x3d08('0x1b')](realtime[_0x3d08('0x3f')]())[_0x3d08('0x1b')](voiceCallReport['getVoiceCallReports']())[_0x3d08('0x1b')](realtime[_0x3d08('0x40')]())[_0x3d08('0x1b')](function(_0x519cce){})[_0x3d08('0x41')](function(_0x234f3d){console[_0x3d08('0x42')](_0x234f3d);});}function main(){return server[_0x3d08('0x43')](realtime,preview,fax)[_0x3d08('0x1b')](function(_0x473424){return initRealtime();})[_0x3d08('0x1b')](function(){return initParams();})[_0x3d08('0x1b')](function(){report[_0x3d08('0x44')]();setInterval(initRealtime,0x1388);})[_0x3d08('0x41')](function(_0x335dd3){console[_0x3d08('0x42')](_0x335dd3);});}main();
\ No newline at end of file
+var _0xfac6=['get','hour','resolve','getAgents','then','initTelephones','initTrunks','getVoiceQueues','initVoiceQueues','getTriggers','getTemplates','initTemplates','getZendeskAccounts','getSalesforceAccounts','getSugarcrmAccounts','initSugarcrmAccounts','initFreshdeskAccounts','initDeskAccounts','getVtigerAccounts','initVtigerAccounts','getFreshsalesAccounts','initFreshsalesAccounts','getServicenowAccounts','initServicenowAccounts','getDynamics365Accounts','initDynamics365Accounts','getCampaigns','initCampaigns','getVoiceExtensions','initVoiceExtensions','getFaxAccounts','initFaxAccounts','getVoiceQueueReports','initVoiceQueueReports','getVoiceQueueHopperHistory','initVoiceQueueHopperHistory','getCampaignHopperHistory','initCampaignHopperHistory','getVoiceCallReports','initVoiceCallReports','catch','log','listen','sync','bluebird','util','moment','./server','./realtime','./report','./acw','./dialer','./fax','./rpc/voiceQueue','./rpc/voiceQueueReport','./rpc/voiceCallReport','./rpc/trigger','./rpc/template','./rpc/faxAccount','./rpc/integrations/salesforce','./rpc/integrations/freshdesk','./rpc/integrations/desk','./rpc/integrations/zoho','./rpc/integrations/vtiger','./rpc/integrations/servicenow','./rpc/integrations/dynamics365'];(function(_0x1a04fb,_0x7db29e){var _0x3b5b9c=function(_0x2758f2){while(--_0x2758f2){_0x1a04fb['push'](_0x1a04fb['shift']());}};_0x3b5b9c(++_0x7db29e);}(_0xfac6,0xf2));var _0x6fac=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0xfac6[_0x321bb2];return _0x9c12ed;};'use strict';var BPromise=require(_0x6fac('0x0'));var util=require(_0x6fac('0x1'));var moment=require(_0x6fac('0x2'));var server=require(_0x6fac('0x3'));var Realtime=require(_0x6fac('0x4'));var Report=require(_0x6fac('0x5'));var Acw=require(_0x6fac('0x6'));var Trigger=require('./trigger');var Dialer=require(_0x6fac('0x7'));var Preview=require('./preview');var Fax=require(_0x6fac('0x8'));var user=require('./rpc/user');var voiceQueue=require(_0x6fac('0x9'));var voiceQueueReport=require(_0x6fac('0xa'));var voiceCallReport=require(_0x6fac('0xb'));var trunk=require('./rpc/trunk');var trigger=require(_0x6fac('0xc'));var template=require(_0x6fac('0xd'));var cmHopperHistory=require('./rpc/cmHopperHistory');var campaign=require('./rpc/campaign');var voiceExtension=require('./rpc/voiceExtension');var faxAccount=require(_0x6fac('0xe'));var zendesk=require('./rpc/integrations/zendesk');var salesforce=require(_0x6fac('0xf'));var sugarcrm=require('./rpc/integrations/sugarcrm');var freshdesk=require(_0x6fac('0x10'));var desk=require(_0x6fac('0x11'));var zoho=require(_0x6fac('0x12'));var vtiger=require(_0x6fac('0x13'));var freshsales=require('./rpc/integrations/freshsales');var servicenow=require(_0x6fac('0x14'));var dynamics365=require(_0x6fac('0x15'));var realtime=new Realtime();var report=new Report(realtime);var acw=new Acw(realtime);var channelTrigger=new Trigger(realtime);var preview=new Preview(realtime);var dialer=new Dialer(realtime,preview);var fax=new Fax(realtime);var isTrue=!![];var initP=!![];function ifMidnight(){if(moment()[_0x6fac('0x16')](_0x6fac('0x17'))===0x0&&initP){initP=![];isTrue=!![];initParams();}if(moment()[_0x6fac('0x16')]('hour')===0x1&&isTrue){isTrue=![];initP=!![];}}function initRealtime(){ifMidnight();return BPromise[_0x6fac('0x18')]()['then'](user[_0x6fac('0x19')]())[_0x6fac('0x1a')](realtime['initAgents']())[_0x6fac('0x1a')](user['getTelephones']())[_0x6fac('0x1a')](realtime[_0x6fac('0x1b')]())[_0x6fac('0x1a')](trunk['getTrunks']())[_0x6fac('0x1a')](realtime[_0x6fac('0x1c')]())['then'](voiceQueue[_0x6fac('0x1d')]())[_0x6fac('0x1a')](realtime[_0x6fac('0x1e')]())[_0x6fac('0x1a')](trigger[_0x6fac('0x1f')]())['then'](realtime['initTriggers']())[_0x6fac('0x1a')](template[_0x6fac('0x20')]())['then'](realtime[_0x6fac('0x21')]())[_0x6fac('0x1a')](zendesk[_0x6fac('0x22')]())[_0x6fac('0x1a')](realtime['initZendeskAccounts']())[_0x6fac('0x1a')](salesforce[_0x6fac('0x23')]())[_0x6fac('0x1a')](realtime['initSalesforceAccounts']())[_0x6fac('0x1a')](sugarcrm[_0x6fac('0x24')]())[_0x6fac('0x1a')](realtime[_0x6fac('0x25')]())[_0x6fac('0x1a')](freshdesk['getFreshdeskAccounts']())[_0x6fac('0x1a')](realtime[_0x6fac('0x26')]())[_0x6fac('0x1a')](desk['getDeskAccounts']())[_0x6fac('0x1a')](realtime[_0x6fac('0x27')]())['then'](zoho['getZohoAccounts']())[_0x6fac('0x1a')](realtime['initZohoAccounts']())[_0x6fac('0x1a')](vtiger[_0x6fac('0x28')]())[_0x6fac('0x1a')](realtime[_0x6fac('0x29')]())[_0x6fac('0x1a')](freshsales[_0x6fac('0x2a')]())[_0x6fac('0x1a')](realtime[_0x6fac('0x2b')]())[_0x6fac('0x1a')](servicenow[_0x6fac('0x2c')]())['then'](realtime[_0x6fac('0x2d')]())[_0x6fac('0x1a')](dynamics365[_0x6fac('0x2e')]())[_0x6fac('0x1a')](realtime[_0x6fac('0x2f')]())[_0x6fac('0x1a')](campaign[_0x6fac('0x30')]())[_0x6fac('0x1a')](realtime[_0x6fac('0x31')]())[_0x6fac('0x1a')](voiceExtension[_0x6fac('0x32')]())[_0x6fac('0x1a')](realtime[_0x6fac('0x33')]())['then'](faxAccount[_0x6fac('0x34')]())[_0x6fac('0x1a')](realtime[_0x6fac('0x35')]())[_0x6fac('0x1a')](function(){return realtime;});}function initParams(){return BPromise[_0x6fac('0x18')]()[_0x6fac('0x1a')](voiceQueueReport[_0x6fac('0x36')]())['then'](realtime[_0x6fac('0x37')]())[_0x6fac('0x1a')](cmHopperHistory[_0x6fac('0x38')]())[_0x6fac('0x1a')](realtime[_0x6fac('0x39')]())[_0x6fac('0x1a')](cmHopperHistory[_0x6fac('0x3a')]())[_0x6fac('0x1a')](realtime[_0x6fac('0x3b')]())[_0x6fac('0x1a')](voiceCallReport[_0x6fac('0x3c')]())['then'](realtime[_0x6fac('0x3d')]())[_0x6fac('0x1a')](function(_0x54da5d){})[_0x6fac('0x3e')](function(_0xd7e063){console[_0x6fac('0x3f')](_0xd7e063);});}function main(){return server[_0x6fac('0x40')](realtime,preview,fax)[_0x6fac('0x1a')](function(_0x1a5666){return initRealtime();})[_0x6fac('0x1a')](function(){return initParams();})['then'](function(){report[_0x6fac('0x41')]();setInterval(initRealtime,0x1388);})['catch'](function(_0x423ecb){console[_0x6fac('0x3f')](_0x423ecb);});}main();
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['stateTime','status','address','online','voiceStatus','voiceStatusTime','voiceStatusCallerIdNumber','voiceStatusQueue','local','md5','prototype','updateStatusRealtime','not_inuse','inuse','talking','statePause','toNumber','format','fullname','stringify','user:%s','emit','user:save','user:presence','exports','lodash','util','moment','../../../config/environment','defaults','redis','localhost','socket.io-emitter','name','email','accountcode','state','unknown'];(function(_0x42167f,_0x36c277){var _0x20f119=function(_0x1f79f3){while(--_0x1f79f3){_0x42167f['push'](_0x42167f['shift']());}};_0x20f119(++_0x36c277);}(_0xa9e0,0x123));var _0x0a9e=function(_0x501510,_0x61caa9){_0x501510=_0x501510-0x0;var _0x1e6ee5=_0xa9e0[_0x501510];return _0x1e6ee5;};'use strict';var _=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var moment=require(_0x0a9e('0x2'));var md5=require('md5');var Redis=require('ioredis');var config=require(_0x0a9e('0x3'));config['redis']=_[_0x0a9e('0x4')](config[_0x0a9e('0x5')],{'host':_0x0a9e('0x6'),'port':0x18eb});var io=require(_0x0a9e('0x7'))(new Redis(config[_0x0a9e('0x5')]));function Agent(_0x57b080){this['id']=_0x57b080['id']||0x0;this[_0x0a9e('0x8')]=_0x57b080[_0x0a9e('0x8')]||'';this[_0x0a9e('0x9')]=_0x57b080['email']||'';this['accountcode']=_0x57b080[_0x0a9e('0xa')]||'';this['fullname']=_0x57b080['fullname']||'';this[_0x0a9e('0xb')]=_0x0a9e('0xc');this[_0x0a9e('0xd')]=0x0;this[_0x0a9e('0xe')]=_0x0a9e('0xc');this[_0x0a9e('0xf')]='';this['phone']='';this['mobile']='';this['interface']='';this['online']=_0x57b080[_0x0a9e('0x10')]||![];this[_0x0a9e('0x11')]=_0x0a9e('0xc');this[_0x0a9e('0x12')]=0x0;this[_0x0a9e('0x13')]='';this[_0x0a9e('0x14')]='';this['onhold']=![];this[_0x0a9e('0x15')]=![];this[_0x0a9e('0x16')]='';}Agent[_0x0a9e('0x17')][_0x0a9e('0x18')]=function(_0x44dcfd){var _0x4d5611;if(_0x44dcfd&&_0x44dcfd['state']){_0x4d5611=_0x44dcfd[_0x0a9e('0xb')]['toLowerCase']();switch(_0x4d5611){case _0x0a9e('0x19'):_0x4d5611='idle';break;case _0x0a9e('0x1a'):_0x4d5611=_0x0a9e('0x1b');break;}}if(_0x4d5611&&this['voiceStatus']!==_0x4d5611||_0x44dcfd[_0x0a9e('0x1c')]){this['voiceStatusTime']=_[_0x0a9e('0x1d')](moment()[_0x0a9e('0x1e')]('x'));}if(_0x4d5611){this[_0x0a9e('0x11')]=_0x4d5611;}var _0x205fd6={'id':this['id'],'name':this[_0x0a9e('0x8')],'email':this[_0x0a9e('0x9')],'accountcode':this[_0x0a9e('0xa')],'fullname':this[_0x0a9e('0x1f')],'state':this[_0x0a9e('0xb')],'stateTime':this[_0x0a9e('0xd')],'status':this[_0x0a9e('0xe')],'address':this[_0x0a9e('0xf')],'online':this['online'],'voiceStatus':this[_0x0a9e('0x11')],'voiceStatusTime':this[_0x0a9e('0x12')],'voiceStatusCallerIdNumber':this['voiceStatusCallerIdNumber'],'voiceStatusQueue':this[_0x0a9e('0x14')],'interface':this['interface'],'onhold':this['onhold']};var _0x3a02e1=md5(JSON[_0x0a9e('0x20')](_0x205fd6));if(this[_0x0a9e('0x16')]!==_0x3a02e1){this[_0x0a9e('0x16')]=_0x3a02e1;io['to'](util['format'](_0x0a9e('0x21'),_0x205fd6[_0x0a9e('0x8')]))[_0x0a9e('0x22')](_0x0a9e('0x23'),_0x205fd6);io[_0x0a9e('0x22')](_0x0a9e('0x24'),_0x205fd6);}};module[_0x0a9e('0x25')]=Agent;
\ No newline at end of file
+var _0xe706=['address','phone','online','voiceStatus','voiceStatusTime','voiceStatusCallerIdNumber','voiceStatusQueue','onhold','updateStatusRealtime','not_inuse','inuse','talking','format','interface','stringify','md5','user:%s','emit','user:presence','lodash','util','moment','ioredis','../../../config/environment','redis','defaults','localhost','socket.io-emitter','name','email','accountcode','fullname','state','unknown','stateTime','status'];(function(_0x5a7ad5,_0x2c7340){var _0x42f4de=function(_0x178692){while(--_0x178692){_0x5a7ad5['push'](_0x5a7ad5['shift']());}};_0x42f4de(++_0x2c7340);}(_0xe706,0xa3));var _0x6e70=function(_0xfaddc9,_0x5c9ad2){_0xfaddc9=_0xfaddc9-0x0;var _0x579846=_0xe706[_0xfaddc9];return _0x579846;};'use strict';var _=require(_0x6e70('0x0'));var util=require(_0x6e70('0x1'));var moment=require(_0x6e70('0x2'));var md5=require('md5');var Redis=require(_0x6e70('0x3'));var config=require(_0x6e70('0x4'));config[_0x6e70('0x5')]=_[_0x6e70('0x6')](config[_0x6e70('0x5')],{'host':_0x6e70('0x7'),'port':0x18eb});var io=require(_0x6e70('0x8'))(new Redis(config[_0x6e70('0x5')]));function Agent(_0x1b0389){this['id']=_0x1b0389['id']||0x0;this[_0x6e70('0x9')]=_0x1b0389[_0x6e70('0x9')]||'';this[_0x6e70('0xa')]=_0x1b0389[_0x6e70('0xa')]||'';this[_0x6e70('0xb')]=_0x1b0389[_0x6e70('0xb')]||'';this[_0x6e70('0xc')]=_0x1b0389[_0x6e70('0xc')]||'';this[_0x6e70('0xd')]=_0x6e70('0xe');this[_0x6e70('0xf')]=0x0;this[_0x6e70('0x10')]=_0x6e70('0xe');this[_0x6e70('0x11')]='';this[_0x6e70('0x12')]='';this['mobile']='';this['interface']='';this[_0x6e70('0x13')]=_0x1b0389[_0x6e70('0x13')]||![];this[_0x6e70('0x14')]=_0x6e70('0xe');this[_0x6e70('0x15')]=0x0;this[_0x6e70('0x16')]='';this[_0x6e70('0x17')]='';this[_0x6e70('0x18')]=![];this['local']=![];this['md5']='';}Agent['prototype'][_0x6e70('0x19')]=function(_0x5a37a6){var _0x53aed0;if(_0x5a37a6&&_0x5a37a6[_0x6e70('0xd')]){_0x53aed0=_0x5a37a6[_0x6e70('0xd')]['toLowerCase']();switch(_0x53aed0){case _0x6e70('0x1a'):_0x53aed0='idle';break;case _0x6e70('0x1b'):_0x53aed0=_0x6e70('0x1c');break;}}if(_0x53aed0&&this['voiceStatus']!==_0x53aed0||_0x5a37a6['statePause']){this[_0x6e70('0x15')]=_['toNumber'](moment()[_0x6e70('0x1d')]('x'));}if(_0x53aed0){this[_0x6e70('0x14')]=_0x53aed0;}var _0x53acdc={'id':this['id'],'name':this['name'],'email':this[_0x6e70('0xa')],'accountcode':this[_0x6e70('0xb')],'fullname':this[_0x6e70('0xc')],'state':this[_0x6e70('0xd')],'stateTime':this[_0x6e70('0xf')],'status':this[_0x6e70('0x10')],'address':this[_0x6e70('0x11')],'online':this[_0x6e70('0x13')],'voiceStatus':this[_0x6e70('0x14')],'voiceStatusTime':this[_0x6e70('0x15')],'voiceStatusCallerIdNumber':this['voiceStatusCallerIdNumber'],'voiceStatusQueue':this[_0x6e70('0x17')],'interface':this[_0x6e70('0x1e')],'onhold':this[_0x6e70('0x18')]};var _0x502b2d=md5(JSON[_0x6e70('0x1f')](_0x53acdc));if(this[_0x6e70('0x20')]!==_0x502b2d){this[_0x6e70('0x20')]=_0x502b2d;io['to'](util['format'](_0x6e70('0x21'),_0x53acdc['name']))['emit']('user:save',_0x53acdc);io[_0x6e70('0x22')](_0x6e70('0x23'),_0x53acdc);}};module['exports']=Agent;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6208=['dialAMDSilenceThreshold','dialAMDMaximumWordLength','exports','name','originated','temp','ivrAnswerCallsDay','ivrTotalCallsDays','message','sendMessageOneNotActive','active','limitCalls','dialTimezone','dialGlobalInterval','dialOriginateCallerIdName','dialOriginateCallerIdNumber','dialOriginateTimeout','dialCongestionMaxRetry','dialCongestionRetryFrequency','dialBusyMaxRetry','dialBusyRetryFrequency','dialNoAnswerMaxRetry','dialGlobalMaxRetry','dialNoSuchNumberMaxRetry','dialNoSuchNumberRetryFrequency','dialDropMaxRetry','dialDropRetryFrequency','dialAbandonedMaxRetry','dialAbandonedRetryFrequency','dialMachineMaxRetry','dialMachineRetryFrequency','dialAgentRejectMaxRetry','dialAgentRejectRetryFrequency','dialOrderByScheduledAt','DESC','dialPrefix','dialRandomLastDigitCallerIdNumber','dialCutDigit','TrunkBackup','Trunk','Interval','SquareProject','dialQueueProject','dialAMDActive','dialAMDInitialSilence','dialAMDGreeting','dialAMDAfterGreetingSilence','dialAMDTotalAnalysisTime','dialAMDMinWordLength','dialAMDBetweenWordsSilence','dialAMDMaximumNumberOfWords'];(function(_0x3ca337,_0x143289){var _0x4b9205=function(_0x529a68){while(--_0x529a68){_0x3ca337['push'](_0x3ca337['shift']());}};_0x4b9205(++_0x143289);}(_0x6208,0x135));var _0x8620=function(_0x3947c9,_0x4d6c97){_0x3947c9=_0x3947c9-0x0;var _0x2e7871=_0x6208[_0x3947c9];return _0x2e7871;};'use strict';function Campaign(_0x2ba31d){this['id']=_0x2ba31d['id']||0x0;this[_0x8620('0x0')]=_0x2ba31d[_0x8620('0x0')]||'';this['type']=_0x2ba31d['type']||'campaign';this[_0x8620('0x1')]=0x0;this[_0x8620('0x2')]=0x0;this[_0x8620('0x3')]=0x0;this[_0x8620('0x4')]=0x0;this[_0x8620('0x5')]='';this[_0x8620('0x6')]=!![];this[_0x8620('0x7')]=_0x2ba31d[_0x8620('0x7')];this['limitCalls']=_0x2ba31d[_0x8620('0x8')];this[_0x8620('0x9')]=_0x2ba31d['dialTimezone']||null;this[_0x8620('0xa')]=_0x2ba31d[_0x8620('0xa')]?_0x2ba31d[_0x8620('0xa')]:null;this['dialOriginateCallerIdName']=_0x2ba31d[_0x8620('0xb')];this[_0x8620('0xc')]=_0x2ba31d[_0x8620('0xc')];this[_0x8620('0xd')]=_0x2ba31d['dialOriginateTimeout']||0x1e;this[_0x8620('0xe')]=_0x2ba31d[_0x8620('0xe')];this[_0x8620('0xf')]=_0x2ba31d[_0x8620('0xf')];this[_0x8620('0x10')]=_0x2ba31d[_0x8620('0x10')];this[_0x8620('0x11')]=_0x2ba31d[_0x8620('0x11')];this[_0x8620('0x12')]=_0x2ba31d[_0x8620('0x12')];this['dialNoAnswerRetryFrequency']=_0x2ba31d['dialNoAnswerRetryFrequency'];this[_0x8620('0x13')]=_0x2ba31d[_0x8620('0x13')];this[_0x8620('0x14')]=_0x2ba31d[_0x8620('0x14')]||0x3;this[_0x8620('0x15')]=_0x2ba31d[_0x8620('0x15')]||0x96;this[_0x8620('0x16')]=_0x2ba31d[_0x8620('0x16')]||0x3;this['dialDropRetryFrequency']=_0x2ba31d[_0x8620('0x17')]||0x96;this[_0x8620('0x18')]=_0x2ba31d[_0x8620('0x18')]||0x3;this[_0x8620('0x19')]=_0x2ba31d['dialAbandonedRetryFrequency']||0x96;this[_0x8620('0x1a')]=_0x2ba31d[_0x8620('0x1a')]||0x3;this[_0x8620('0x1b')]=_0x2ba31d[_0x8620('0x1b')]||0x96;this['dialAgentRejectMaxRetry']=_0x2ba31d[_0x8620('0x1c')]||0x3;this['dialAgentRejectRetryFrequency']=_0x2ba31d[_0x8620('0x1d')]||0x96;this[_0x8620('0x1e')]=_0x2ba31d[_0x8620('0x1e')]||_0x8620('0x1f');this[_0x8620('0x20')]=_0x2ba31d[_0x8620('0x20')]||undefined;this[_0x8620('0x21')]=_0x2ba31d[_0x8620('0x21')]||undefined;this[_0x8620('0x22')]=_0x2ba31d[_0x8620('0x22')]||undefined;this[_0x8620('0x23')]=_0x2ba31d['TrunkBackup']?_0x2ba31d['TrunkBackup']:undefined;this[_0x8620('0x24')]=_0x2ba31d[_0x8620('0x24')]?_0x2ba31d[_0x8620('0x24')]:undefined;this[_0x8620('0x25')]=_0x2ba31d[_0x8620('0x25')]?_0x2ba31d[_0x8620('0x25')]:undefined;this[_0x8620('0x26')]=_0x2ba31d[_0x8620('0x26')]?_0x2ba31d[_0x8620('0x26')]:undefined;this[_0x8620('0x27')]=_0x2ba31d[_0x8620('0x26')]?_0x2ba31d['SquareProject'][_0x8620('0x0')]:undefined;this[_0x8620('0x28')]=_0x2ba31d[_0x8620('0x28')]||![];this[_0x8620('0x29')]=_0x2ba31d[_0x8620('0x29')];this['dialAMDGreeting']=_0x2ba31d[_0x8620('0x2a')];this[_0x8620('0x2b')]=_0x2ba31d[_0x8620('0x2b')];this[_0x8620('0x2c')]=_0x2ba31d[_0x8620('0x2c')];this['dialAMDMinWordLength']=_0x2ba31d[_0x8620('0x2d')];this[_0x8620('0x2e')]=_0x2ba31d['dialAMDBetweenWordsSilence'];this[_0x8620('0x2f')]=_0x2ba31d[_0x8620('0x2f')];this[_0x8620('0x30')]=_0x2ba31d[_0x8620('0x30')];this[_0x8620('0x31')]=_0x2ba31d['dialAMDMaximumWordLength'];}module[_0x8620('0x32')]=Campaign;
\ No newline at end of file
+var _0x0f5c=['dialOrderByScheduledAt','DESC','dialPrefix','dialRandomLastDigitCallerIdNumber','dialCutDigit','TrunkBackup','Trunk','Interval','SquareProject','dialQueueProject','dialAMDActive','dialAMDInitialSilence','dialAMDGreeting','dialAMDAfterGreetingSilence','dialAMDTotalAnalysisTime','dialAMDMinWordLength','dialAMDBetweenWordsSilence','dialAMDSilenceThreshold','dialAMDMaximumWordLength','exports','name','type','campaign','originated','temp','ivrAnswerCallsDay','ivrTotalCallsDays','sendMessageOneNotActive','active','limitCalls','dialTimezone','dialGlobalInterval','dialOriginateCallerIdName','dialOriginateCallerIdNumber','dialOriginateTimeout','dialCongestionMaxRetry','dialCongestionRetryFrequency','dialBusyMaxRetry','dialBusyRetryFrequency','dialNoAnswerMaxRetry','dialNoAnswerRetryFrequency','dialGlobalMaxRetry','dialNoSuchNumberMaxRetry','dialNoSuchNumberRetryFrequency','dialDropMaxRetry','dialDropRetryFrequency','dialAbandonedMaxRetry','dialAbandonedRetryFrequency','dialMachineMaxRetry','dialMachineRetryFrequency','dialAgentRejectMaxRetry','dialAgentRejectRetryFrequency'];(function(_0x2ee1c8,_0xaef65f){var _0x39ff9f=function(_0x414b3e){while(--_0x414b3e){_0x2ee1c8['push'](_0x2ee1c8['shift']());}};_0x39ff9f(++_0xaef65f);}(_0x0f5c,0x14c));var _0xc0f5=function(_0x257495,_0x18269b){_0x257495=_0x257495-0x0;var _0x3849aa=_0x0f5c[_0x257495];return _0x3849aa;};'use strict';function Campaign(_0x51c3ee){this['id']=_0x51c3ee['id']||0x0;this['name']=_0x51c3ee[_0xc0f5('0x0')]||'';this[_0xc0f5('0x1')]=_0x51c3ee[_0xc0f5('0x1')]||_0xc0f5('0x2');this[_0xc0f5('0x3')]=0x0;this[_0xc0f5('0x4')]=0x0;this[_0xc0f5('0x5')]=0x0;this[_0xc0f5('0x6')]=0x0;this['message']='';this[_0xc0f5('0x7')]=!![];this[_0xc0f5('0x8')]=_0x51c3ee[_0xc0f5('0x8')];this[_0xc0f5('0x9')]=_0x51c3ee[_0xc0f5('0x9')];this['dialTimezone']=_0x51c3ee[_0xc0f5('0xa')]||null;this[_0xc0f5('0xb')]=_0x51c3ee[_0xc0f5('0xb')]?_0x51c3ee[_0xc0f5('0xb')]:null;this[_0xc0f5('0xc')]=_0x51c3ee['dialOriginateCallerIdName'];this[_0xc0f5('0xd')]=_0x51c3ee[_0xc0f5('0xd')];this[_0xc0f5('0xe')]=_0x51c3ee['dialOriginateTimeout']||0x1e;this[_0xc0f5('0xf')]=_0x51c3ee[_0xc0f5('0xf')];this[_0xc0f5('0x10')]=_0x51c3ee[_0xc0f5('0x10')];this['dialBusyMaxRetry']=_0x51c3ee[_0xc0f5('0x11')];this[_0xc0f5('0x12')]=_0x51c3ee[_0xc0f5('0x12')];this[_0xc0f5('0x13')]=_0x51c3ee[_0xc0f5('0x13')];this[_0xc0f5('0x14')]=_0x51c3ee['dialNoAnswerRetryFrequency'];this['dialGlobalMaxRetry']=_0x51c3ee[_0xc0f5('0x15')];this[_0xc0f5('0x16')]=_0x51c3ee[_0xc0f5('0x16')]||0x3;this[_0xc0f5('0x17')]=_0x51c3ee[_0xc0f5('0x17')]||0x96;this[_0xc0f5('0x18')]=_0x51c3ee[_0xc0f5('0x18')]||0x3;this[_0xc0f5('0x19')]=_0x51c3ee[_0xc0f5('0x19')]||0x96;this['dialAbandonedMaxRetry']=_0x51c3ee[_0xc0f5('0x1a')]||0x3;this['dialAbandonedRetryFrequency']=_0x51c3ee[_0xc0f5('0x1b')]||0x96;this[_0xc0f5('0x1c')]=_0x51c3ee[_0xc0f5('0x1c')]||0x3;this[_0xc0f5('0x1d')]=_0x51c3ee[_0xc0f5('0x1d')]||0x96;this[_0xc0f5('0x1e')]=_0x51c3ee[_0xc0f5('0x1e')]||0x3;this[_0xc0f5('0x1f')]=_0x51c3ee['dialAgentRejectRetryFrequency']||0x96;this[_0xc0f5('0x20')]=_0x51c3ee['dialOrderByScheduledAt']||_0xc0f5('0x21');this[_0xc0f5('0x22')]=_0x51c3ee[_0xc0f5('0x22')]||undefined;this[_0xc0f5('0x23')]=_0x51c3ee['dialRandomLastDigitCallerIdNumber']||undefined;this[_0xc0f5('0x24')]=_0x51c3ee[_0xc0f5('0x24')]||undefined;this[_0xc0f5('0x25')]=_0x51c3ee['TrunkBackup']?_0x51c3ee['TrunkBackup']:undefined;this[_0xc0f5('0x26')]=_0x51c3ee[_0xc0f5('0x26')]?_0x51c3ee[_0xc0f5('0x26')]:undefined;this[_0xc0f5('0x27')]=_0x51c3ee[_0xc0f5('0x27')]?_0x51c3ee[_0xc0f5('0x27')]:undefined;this[_0xc0f5('0x28')]=_0x51c3ee[_0xc0f5('0x28')]?_0x51c3ee[_0xc0f5('0x28')]:undefined;this[_0xc0f5('0x29')]=_0x51c3ee[_0xc0f5('0x28')]?_0x51c3ee[_0xc0f5('0x28')][_0xc0f5('0x0')]:undefined;this[_0xc0f5('0x2a')]=_0x51c3ee[_0xc0f5('0x2a')]||![];this[_0xc0f5('0x2b')]=_0x51c3ee[_0xc0f5('0x2b')];this[_0xc0f5('0x2c')]=_0x51c3ee[_0xc0f5('0x2c')];this[_0xc0f5('0x2d')]=_0x51c3ee[_0xc0f5('0x2d')];this[_0xc0f5('0x2e')]=_0x51c3ee['dialAMDTotalAnalysisTime'];this['dialAMDMinWordLength']=_0x51c3ee[_0xc0f5('0x2f')];this[_0xc0f5('0x30')]=_0x51c3ee[_0xc0f5('0x30')];this['dialAMDMaximumNumberOfWords']=_0x51c3ee['dialAMDMaximumNumberOfWords'];this[_0xc0f5('0x31')]=_0x51c3ee[_0xc0f5('0x31')];this[_0xc0f5('0x32')]=_0x51c3ee[_0xc0f5('0x32')];}module[_0xc0f5('0x33')]=Campaign;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1472=['disposition','monitor','monitorFilename','queue','monitors','transferconnectedlinenum','mohtime','exports','starttime','channel','destinationchannel','calleridnum','calleridname','connectedlinenum','connectedlinename','accountcode','linkedid','exten','answered','unmanaged','lastapplication','lastdata','duration','holdtime','type'];(function(_0x51d7cf,_0x3d9a36){var _0x44b7ce=function(_0x389958){while(--_0x389958){_0x51d7cf['push'](_0x51d7cf['shift']());}};_0x44b7ce(++_0x3d9a36);}(_0x1472,0x166));var _0x2147=function(_0x382168,_0xe03b6a){_0x382168=_0x382168-0x0;var _0x3ecf7e=_0x1472[_0x382168];return _0x3ecf7e;};'use strict';function Channel(){this[_0x2147('0x0')]=null;this[_0x2147('0x1')]='';this[_0x2147('0x2')]='';this[_0x2147('0x3')]=0x0;this[_0x2147('0x4')]='';this[_0x2147('0x5')]=undefined;this[_0x2147('0x6')]=undefined;this[_0x2147('0x7')]=0x0;this['context']='';this['uniqueid']=0x0;this[_0x2147('0x8')]=0x0;this[_0x2147('0x9')]=0x0;this[_0x2147('0xa')]=![];this['answertime']=null;this['endtime']=null;this[_0x2147('0xb')]=![];this['abandoned']=![];this[_0x2147('0xc')]='';this[_0x2147('0xd')]='';this[_0x2147('0xe')]=0x0;this['billableseconds']=0x0;this[_0x2147('0xf')]=0x0;this[_0x2147('0x10')]=null;this['tag']=null;this[_0x2147('0x11')]=null;this[_0x2147('0x12')]=![];this[_0x2147('0x13')]=null;this[_0x2147('0x14')]=null;this[_0x2147('0x15')]=[];this['transfercalleridnum']=undefined;this[_0x2147('0x16')]=undefined;this['transferType']=undefined;this[_0x2147('0x17')]=0x0;}module[_0x2147('0x18')]=Channel;
\ No newline at end of file
+var _0xbdbe=['linkedid','answered','answertime','endtime','unmanaged','abandoned','lastapplication','lastdata','duration','billableseconds','holdtime','type','disposition','monitor','queue','monitors','transfercalleridnum','transferconnectedlinenum','exports','starttime','destinationchannel','calleridname','connectedlinename','context'];(function(_0x1a8d10,_0x5eb070){var _0x34b317=function(_0x594411){while(--_0x594411){_0x1a8d10['push'](_0x1a8d10['shift']());}};_0x34b317(++_0x5eb070);}(_0xbdbe,0x1f3));var _0xebdb=function(_0x46e363,_0x45d7e2){_0x46e363=_0x46e363-0x0;var _0x3fb059=_0xbdbe[_0x46e363];return _0x3fb059;};'use strict';function Channel(){this[_0xebdb('0x0')]=null;this['channel']='';this[_0xebdb('0x1')]='';this['calleridnum']=0x0;this[_0xebdb('0x2')]='';this['connectedlinenum']=undefined;this[_0xebdb('0x3')]=undefined;this['accountcode']=0x0;this[_0xebdb('0x4')]='';this['uniqueid']=0x0;this[_0xebdb('0x5')]=0x0;this['exten']=0x0;this[_0xebdb('0x6')]=![];this[_0xebdb('0x7')]=null;this[_0xebdb('0x8')]=null;this[_0xebdb('0x9')]=![];this[_0xebdb('0xa')]=![];this[_0xebdb('0xb')]='';this[_0xebdb('0xc')]='';this[_0xebdb('0xd')]=0x0;this[_0xebdb('0xe')]=0x0;this[_0xebdb('0xf')]=0x0;this[_0xebdb('0x10')]=null;this['tag']=null;this[_0xebdb('0x11')]=null;this[_0xebdb('0x12')]=![];this['monitorFilename']=null;this[_0xebdb('0x13')]=null;this[_0xebdb('0x14')]=[];this[_0xebdb('0x15')]=undefined;this[_0xebdb('0x16')]=undefined;this['transferType']=undefined;this['mohtime']=0x0;}module[_0xebdb('0x17')]=Channel;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5dd6=['tokenSecret','type','serverUrl','Configurations','exports','name','username','remoteUri','authType','password','consumerKey','consumerSecret','token'];(function(_0x476bf4,_0x2a3755){var _0x788ffe=function(_0x13fa11){while(--_0x13fa11){_0x476bf4['push'](_0x476bf4['shift']());}};_0x788ffe(++_0x2a3755);}(_0x5dd6,0x1d9));var _0x65dd=function(_0x15b0d0,_0x49d4bc){_0x15b0d0=_0x15b0d0-0x0;var _0x31a929=_0x5dd6[_0x15b0d0];return _0x31a929;};'use strict';function DeskAccount(_0x380598){this['id']=_0x380598['id']||0x0;this[_0x65dd('0x0')]=_0x380598[_0x65dd('0x0')]||'';this[_0x65dd('0x1')]=_0x380598[_0x65dd('0x1')]||'';this[_0x65dd('0x2')]=_0x380598[_0x65dd('0x2')]||'';this[_0x65dd('0x3')]=_0x380598[_0x65dd('0x3')]||'';this[_0x65dd('0x4')]=_0x380598[_0x65dd('0x4')]||'';this[_0x65dd('0x5')]=_0x380598[_0x65dd('0x5')]||'';this[_0x65dd('0x6')]=_0x380598[_0x65dd('0x6')]||'';this[_0x65dd('0x7')]=_0x380598[_0x65dd('0x7')]||'';this[_0x65dd('0x8')]=_0x380598[_0x65dd('0x8')]||'';this[_0x65dd('0x9')]=_0x380598[_0x65dd('0x9')]||'';this[_0x65dd('0xa')]=_0x380598[_0x65dd('0xa')]||'';this[_0x65dd('0xb')]=_0x380598[_0x65dd('0xb')]||{};}module[_0x65dd('0xc')]=DeskAccount;
\ No newline at end of file
+var _0xdd4a=['consumerKey','consumerSecret','token','tokenSecret','type','serverUrl','Configurations','exports','name','username','remoteUri','authType','password'];(function(_0x1eda20,_0x1149f4){var _0x31b953=function(_0x25f0d8){while(--_0x25f0d8){_0x1eda20['push'](_0x1eda20['shift']());}};_0x31b953(++_0x1149f4);}(_0xdd4a,0x119));var _0xadd4=function(_0x50ce0c,_0x541b68){_0x50ce0c=_0x50ce0c-0x0;var _0x3c988c=_0xdd4a[_0x50ce0c];return _0x3c988c;};'use strict';function DeskAccount(_0x849121){this['id']=_0x849121['id']||0x0;this[_0xadd4('0x0')]=_0x849121[_0xadd4('0x0')]||'';this[_0xadd4('0x1')]=_0x849121[_0xadd4('0x1')]||'';this[_0xadd4('0x2')]=_0x849121['remoteUri']||'';this['authType']=_0x849121[_0xadd4('0x3')]||'';this['password']=_0x849121[_0xadd4('0x4')]||'';this[_0xadd4('0x5')]=_0x849121['consumerKey']||'';this[_0xadd4('0x6')]=_0x849121[_0xadd4('0x6')]||'';this[_0xadd4('0x7')]=_0x849121[_0xadd4('0x7')]||'';this[_0xadd4('0x8')]=_0x849121[_0xadd4('0x8')]||'';this['type']=_0x849121[_0xadd4('0x9')]||'';this[_0xadd4('0xa')]=_0x849121['serverUrl']||'';this[_0xadd4('0xb')]=_0x849121[_0xadd4('0xb')]||{};}module[_0xadd4('0xc')]=DeskAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3c81=['Configurations','exports','name','username','tenantId','clientId','clientSecret','serverUrl'];(function(_0x217d92,_0x315c46){var _0x10b1f8=function(_0x543a97){while(--_0x543a97){_0x217d92['push'](_0x217d92['shift']());}};_0x10b1f8(++_0x315c46);}(_0x3c81,0x102));var _0x13c8=function(_0x1e197a,_0x2a26ab){_0x1e197a=_0x1e197a-0x0;var _0x584ed5=_0x3c81[_0x1e197a];return _0x584ed5;};'use strict';function Dynamics365Account(_0x55010d){this['id']=_0x55010d['id']||0x0;this[_0x13c8('0x0')]=_0x55010d['name']||'';this[_0x13c8('0x1')]=_0x55010d[_0x13c8('0x1')]||'';this['password']=_0x55010d['password']||'';this['remoteUri']=_0x55010d['remoteUri']||'';this[_0x13c8('0x2')]=_0x55010d[_0x13c8('0x2')]||'';this[_0x13c8('0x3')]=_0x55010d[_0x13c8('0x3')]||'';this[_0x13c8('0x4')]=_0x55010d[_0x13c8('0x4')]||{};this[_0x13c8('0x5')]=_0x55010d['serverUrl']||'';this[_0x13c8('0x6')]=_0x55010d['Configurations']||{};}module[_0x13c8('0x7')]=Dynamics365Account;
\ No newline at end of file
+var _0x34b7=['Configurations','name','username','password','remoteUri','tenantId','clientId','clientSecret','serverUrl'];(function(_0x21a9d9,_0x4d5ac8){var _0x46adce=function(_0xfdd336){while(--_0xfdd336){_0x21a9d9['push'](_0x21a9d9['shift']());}};_0x46adce(++_0x4d5ac8);}(_0x34b7,0x196));var _0x734b=function(_0x5bd044,_0xafd5fa){_0x5bd044=_0x5bd044-0x0;var _0x582fd7=_0x34b7[_0x5bd044];return _0x582fd7;};'use strict';function Dynamics365Account(_0x3573c4){this['id']=_0x3573c4['id']||0x0;this['name']=_0x3573c4[_0x734b('0x0')]||'';this[_0x734b('0x1')]=_0x3573c4[_0x734b('0x1')]||'';this[_0x734b('0x2')]=_0x3573c4[_0x734b('0x2')]||'';this[_0x734b('0x3')]=_0x3573c4['remoteUri']||'';this['tenantId']=_0x3573c4[_0x734b('0x4')]||'';this[_0x734b('0x5')]=_0x3573c4[_0x734b('0x5')]||'';this[_0x734b('0x6')]=_0x3573c4[_0x734b('0x6')]||{};this[_0x734b('0x7')]=_0x3573c4['serverUrl']||'';this[_0x734b('0x8')]=_0x3573c4[_0x734b('0x8')]||{};}module['exports']=Dynamics365Account;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd222=['localstationid','minrate','maxrate','modem','gateway','faxdetect','t38timeout','SIP','Trunk','ListId','key','exports','name','description','ecm','headerinfo'];(function(_0x4b4493,_0x49a69a){var _0x180f32=function(_0x1133bb){while(--_0x1133bb){_0x4b4493['push'](_0x4b4493['shift']());}};_0x180f32(++_0x49a69a);}(_0xd222,0x15c));var _0x2d22=function(_0x2b5513,_0x3fe5cd){_0x2b5513=_0x2b5513-0x0;var _0x578fd2=_0xd222[_0x2b5513];return _0x578fd2;};'use strict';function FaxAccount(_0x25e8b9){this['id']=_0x25e8b9['id']||0x0;this[_0x2d22('0x0')]=_0x25e8b9[_0x2d22('0x0')]||'';this[_0x2d22('0x1')]=_0x25e8b9['description'];this[_0x2d22('0x2')]=_0x25e8b9[_0x2d22('0x2')];this[_0x2d22('0x3')]=_0x25e8b9[_0x2d22('0x3')];this[_0x2d22('0x4')]=_0x25e8b9['localstationid'];this[_0x2d22('0x5')]=_0x25e8b9[_0x2d22('0x5')]||0x960;this[_0x2d22('0x6')]=_0x25e8b9[_0x2d22('0x6')]||0x3840;this[_0x2d22('0x7')]=_0x25e8b9[_0x2d22('0x7')]||'v17,v27,v29';this['gateway']=_0x25e8b9[_0x2d22('0x8')]||'no';this['faxdetect']=_0x25e8b9[_0x2d22('0x9')]||'no';this[_0x2d22('0xa')]=_0x25e8b9[_0x2d22('0xa')]||0x1388;this['tech']=_0x25e8b9['tech']||_0x2d22('0xb');this[_0x2d22('0xc')]=_0x25e8b9['Trunk']?_0x25e8b9[_0x2d22('0xc')]:undefined;this[_0x2d22('0xd')]=_0x25e8b9[_0x2d22('0xd')];this[_0x2d22('0xe')]=_0x25e8b9[_0x2d22('0xe')];}module[_0x2d22('0xf')]=FaxAccount;
\ No newline at end of file
+var _0xcd6f=['Trunk','ListId','key','name','description','ecm','headerinfo','localstationid','minrate','maxrate','modem','gateway','faxdetect','t38timeout','tech','SIP'];(function(_0x203de2,_0x36b188){var _0x4ade6d=function(_0x52e77b){while(--_0x52e77b){_0x203de2['push'](_0x203de2['shift']());}};_0x4ade6d(++_0x36b188);}(_0xcd6f,0x73));var _0xfcd6=function(_0x19e277,_0x18e743){_0x19e277=_0x19e277-0x0;var _0x4e315a=_0xcd6f[_0x19e277];return _0x4e315a;};'use strict';function FaxAccount(_0x34b288){this['id']=_0x34b288['id']||0x0;this[_0xfcd6('0x0')]=_0x34b288['name']||'';this[_0xfcd6('0x1')]=_0x34b288['description'];this[_0xfcd6('0x2')]=_0x34b288['ecm'];this[_0xfcd6('0x3')]=_0x34b288[_0xfcd6('0x3')];this['localstationid']=_0x34b288[_0xfcd6('0x4')];this[_0xfcd6('0x5')]=_0x34b288['minrate']||0x960;this[_0xfcd6('0x6')]=_0x34b288[_0xfcd6('0x6')]||0x3840;this[_0xfcd6('0x7')]=_0x34b288[_0xfcd6('0x7')]||'v17,v27,v29';this[_0xfcd6('0x8')]=_0x34b288[_0xfcd6('0x8')]||'no';this[_0xfcd6('0x9')]=_0x34b288[_0xfcd6('0x9')]||'no';this['t38timeout']=_0x34b288[_0xfcd6('0xa')]||0x1388;this['tech']=_0x34b288[_0xfcd6('0xb')]||_0xfcd6('0xc');this['Trunk']=_0x34b288[_0xfcd6('0xd')]?_0x34b288[_0xfcd6('0xd')]:undefined;this[_0xfcd6('0xe')]=_0x34b288['ListId'];this[_0xfcd6('0xf')]=_0x34b288[_0xfcd6('0xf')];}module['exports']=FaxAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0c41=['name','username','apiKey','token','remoteUri','serverUrl','Configurations','exports'];(function(_0x3316ee,_0x1c9247){var _0x5837c1=function(_0x35cc0d){while(--_0x35cc0d){_0x3316ee['push'](_0x3316ee['shift']());}};_0x5837c1(++_0x1c9247);}(_0x0c41,0x80));var _0x10c4=function(_0x41b06b,_0x34d7bb){_0x41b06b=_0x41b06b-0x0;var _0x52fce1=_0x0c41[_0x41b06b];return _0x52fce1;};'use strict';function FreshdeskAccount(_0x59f53e){this['id']=_0x59f53e['id']||0x0;this[_0x10c4('0x0')]=_0x59f53e['name']||'';this['username']=_0x59f53e[_0x10c4('0x1')]||'';this[_0x10c4('0x2')]=_0x59f53e[_0x10c4('0x3')]||'';this['remoteUri']=_0x59f53e[_0x10c4('0x4')]||'';this[_0x10c4('0x5')]=_0x59f53e[_0x10c4('0x5')]||'';this[_0x10c4('0x6')]=_0x59f53e[_0x10c4('0x6')]||{};}module[_0x10c4('0x7')]=FreshdeskAccount;
\ No newline at end of file
+var _0xcc7f=['apiKey','token','remoteUri','serverUrl','Configurations','exports','username'];(function(_0x527f07,_0x416db2){var _0x4db1dd=function(_0x590e43){while(--_0x590e43){_0x527f07['push'](_0x527f07['shift']());}};_0x4db1dd(++_0x416db2);}(_0xcc7f,0x1e9));var _0xfcc7=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xcc7f[_0x3dd15e];return _0x231fd0;};'use strict';function FreshdeskAccount(_0x518725){this['id']=_0x518725['id']||0x0;this['name']=_0x518725['name']||'';this['username']=_0x518725[_0xfcc7('0x0')]||'';this[_0xfcc7('0x1')]=_0x518725[_0xfcc7('0x2')]||'';this['remoteUri']=_0x518725[_0xfcc7('0x3')]||'';this[_0xfcc7('0x4')]=_0x518725[_0xfcc7('0x4')]||'';this['Configurations']=_0x518725[_0xfcc7('0x5')]||{};}module[_0xfcc7('0x6')]=FreshdeskAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf3fe=['username','apiKey','remoteUri','serverUrl','Configurations','name'];(function(_0x48f70e,_0x164895){var _0x87c997=function(_0xc48c3a){while(--_0xc48c3a){_0x48f70e['push'](_0x48f70e['shift']());}};_0x87c997(++_0x164895);}(_0xf3fe,0x1cd));var _0xef3f=function(_0x3859ef,_0x43c9e5){_0x3859ef=_0x3859ef-0x0;var _0x11fe66=_0xf3fe[_0x3859ef];return _0x11fe66;};'use strict';function FreshsalesAccount(_0x4f5e4f){this['id']=_0x4f5e4f['id']||0x0;this[_0xef3f('0x0')]=_0x4f5e4f[_0xef3f('0x0')]||'';this[_0xef3f('0x1')]=_0x4f5e4f[_0xef3f('0x1')]||'';this[_0xef3f('0x2')]=_0x4f5e4f['token']||'';this[_0xef3f('0x3')]=_0x4f5e4f[_0xef3f('0x3')]||'';this[_0xef3f('0x4')]=_0x4f5e4f[_0xef3f('0x4')]||'';this[_0xef3f('0x5')]=_0x4f5e4f['Configurations']||{};}module['exports']=FreshsalesAccount;
\ No newline at end of file
+var _0xe015=['serverUrl','Configurations','exports','name','apiKey','remoteUri'];(function(_0x2dc931,_0x5f1096){var _0x4556cb=function(_0x34a6fd){while(--_0x34a6fd){_0x2dc931['push'](_0x2dc931['shift']());}};_0x4556cb(++_0x5f1096);}(_0xe015,0x13b));var _0x5e01=function(_0x502c7d,_0x2f1285){_0x502c7d=_0x502c7d-0x0;var _0x30b7ed=_0xe015[_0x502c7d];return _0x30b7ed;};'use strict';function FreshsalesAccount(_0x585c25){this['id']=_0x585c25['id']||0x0;this[_0x5e01('0x0')]=_0x585c25[_0x5e01('0x0')]||'';this['username']=_0x585c25['username']||'';this[_0x5e01('0x1')]=_0x585c25['token']||'';this[_0x5e01('0x2')]=_0x585c25[_0x5e01('0x2')]||'';this[_0x5e01('0x3')]=_0x585c25[_0x5e01('0x3')]||'';this['Configurations']=_0x585c25[_0x5e01('0x4')]||{};}module[_0x5e01('0x5')]=FreshsalesAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5cfc=['mohtime','variables','type','inbound','queue','queuecallerjoinAt','queuecallerleaveAt','position','count','queuecallerabandon','queuecallerabandonAt','queuecallercomplete','queuecallercompleteAt','queuecallerexit','queuecallerexitAt','originalposition','channel','connectedlinenum','accountcode','context','exten','holdtime','assigned','lastAssignedTo','motionChannel','voice'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x5cfc,0x106));var _0xc5cf=function(_0x132558,_0x521d93){_0x132558=_0x132558-0x0;var _0x34f138=_0x5cfc[_0x132558];return _0x34f138;};'use strict';function QueueReport(){this[_0xc5cf('0x0')]=_0xc5cf('0x1');this['uniqueid']='';this['calleridnum']='';this['calleridname']='';this[_0xc5cf('0x2')]='';this[_0xc5cf('0x3')]=null;this[_0xc5cf('0x4')]=null;this[_0xc5cf('0x5')]=0x1;this[_0xc5cf('0x6')]=0x1;this[_0xc5cf('0x7')]=![];this[_0xc5cf('0x8')]=null;this[_0xc5cf('0x9')]=![];this[_0xc5cf('0xa')]=null;this[_0xc5cf('0xb')]=![];this[_0xc5cf('0xc')]=null;this[_0xc5cf('0xd')]=0x1;this[_0xc5cf('0xe')]='';this[_0xc5cf('0xf')]='';this['connectedlinename']='';this[_0xc5cf('0x10')]='';this[_0xc5cf('0x11')]='';this[_0xc5cf('0x12')]='';this['priority']='';this[_0xc5cf('0x13')]=0x0;this[_0xc5cf('0x14')]=![];this[_0xc5cf('0x15')]='';this[_0xc5cf('0x16')]=_0xc5cf('0x17');this[_0xc5cf('0x18')]=0x0;this[_0xc5cf('0x19')]={};}module['exports']=QueueReport;
\ No newline at end of file
+var _0x39ec=['queue','queuecallerleaveAt','position','count','queuecallerabandonAt','queuecallercompleteAt','queuecallerexit','queuecallerexitAt','originalposition','channel','connectedlinenum','accountcode','context','exten','priority','assigned','mohtime','exports','type','inbound','uniqueid','calleridnum','calleridname'];(function(_0x5d084e,_0x1b9431){var _0x2f4146=function(_0x5eb715){while(--_0x5eb715){_0x5d084e['push'](_0x5d084e['shift']());}};_0x2f4146(++_0x1b9431);}(_0x39ec,0xf8));var _0xc39e=function(_0x194d45,_0x59895c){_0x194d45=_0x194d45-0x0;var _0x47c390=_0x39ec[_0x194d45];return _0x47c390;};'use strict';function QueueReport(){this[_0xc39e('0x0')]=_0xc39e('0x1');this[_0xc39e('0x2')]='';this[_0xc39e('0x3')]='';this[_0xc39e('0x4')]='';this[_0xc39e('0x5')]='';this['queuecallerjoinAt']=null;this[_0xc39e('0x6')]=null;this[_0xc39e('0x7')]=0x1;this[_0xc39e('0x8')]=0x1;this['queuecallerabandon']=![];this[_0xc39e('0x9')]=null;this['queuecallercomplete']=![];this[_0xc39e('0xa')]=null;this[_0xc39e('0xb')]=![];this[_0xc39e('0xc')]=null;this[_0xc39e('0xd')]=0x1;this[_0xc39e('0xe')]='';this[_0xc39e('0xf')]='';this['connectedlinename']='';this[_0xc39e('0x10')]='';this[_0xc39e('0x11')]='';this[_0xc39e('0x12')]='';this[_0xc39e('0x13')]='';this['holdtime']=0x0;this[_0xc39e('0x14')]=![];this['lastAssignedTo']='';this[_0xc39e('0x15')]=0x0;this['variables']={};}module[_0xc39e('0x16')]=QueueReport;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1349=['remoteUri','password','clientId','clientSecret','securityToken','integrationTab','serverUrl','Configurations','name','username'];(function(_0x13cf40,_0x25edbb){var _0x254da2=function(_0x5abb83){while(--_0x5abb83){_0x13cf40['push'](_0x13cf40['shift']());}};_0x254da2(++_0x25edbb);}(_0x1349,0x1ac));var _0x9134=function(_0x2039ac,_0x3cd5ce){_0x2039ac=_0x2039ac-0x0;var _0x3ce494=_0x1349[_0x2039ac];return _0x3ce494;};'use strict';function SalesforceAccount(_0x35679e){this['id']=_0x35679e['id']||0x0;this[_0x9134('0x0')]=_0x35679e[_0x9134('0x0')]||'';this[_0x9134('0x1')]=_0x35679e[_0x9134('0x1')]||'';this[_0x9134('0x2')]=_0x35679e[_0x9134('0x2')]||'';this[_0x9134('0x3')]=_0x35679e[_0x9134('0x3')]||'';this['clientId']=_0x35679e[_0x9134('0x4')]||'';this['clientSecret']=_0x35679e[_0x9134('0x5')]||'';this[_0x9134('0x6')]=_0x35679e[_0x9134('0x6')]||'';this['type']=_0x35679e['type']||_0x9134('0x7');this['serverUrl']=_0x35679e[_0x9134('0x8')]||'';this[_0x9134('0x9')]=_0x35679e[_0x9134('0x9')]||{};}module['exports']=SalesforceAccount;
\ No newline at end of file
+var _0x5e93=['password','clientId','clientSecret','securityToken','serverUrl','Configurations','exports','name','username','remoteUri'];(function(_0x3bf83f,_0x181cac){var _0x22c4a9=function(_0xb3ff0d){while(--_0xb3ff0d){_0x3bf83f['push'](_0x3bf83f['shift']());}};_0x22c4a9(++_0x181cac);}(_0x5e93,0x115));var _0x35e9=function(_0x40cbce,_0x1ac6a9){_0x40cbce=_0x40cbce-0x0;var _0x2e93c1=_0x5e93[_0x40cbce];return _0x2e93c1;};'use strict';function SalesforceAccount(_0x3ee6ab){this['id']=_0x3ee6ab['id']||0x0;this['name']=_0x3ee6ab[_0x35e9('0x0')]||'';this['username']=_0x3ee6ab[_0x35e9('0x1')]||'';this[_0x35e9('0x2')]=_0x3ee6ab[_0x35e9('0x2')]||'';this['password']=_0x3ee6ab[_0x35e9('0x3')]||'';this['clientId']=_0x3ee6ab[_0x35e9('0x4')]||'';this[_0x35e9('0x5')]=_0x3ee6ab[_0x35e9('0x5')]||'';this[_0x35e9('0x6')]=_0x3ee6ab[_0x35e9('0x6')]||'';this['type']=_0x3ee6ab['type']||'integrationTab';this[_0x35e9('0x7')]=_0x3ee6ab[_0x35e9('0x7')]||'';this[_0x35e9('0x8')]=_0x3ee6ab[_0x35e9('0x8')]||{};}module[_0x35e9('0x9')]=SalesforceAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1c9e=['name','password','remoteUri','serverUrl','Configurations'];(function(_0x1a638,_0x5b389c){var _0x5b585c=function(_0x586488){while(--_0x586488){_0x1a638['push'](_0x1a638['shift']());}};_0x5b585c(++_0x5b389c);}(_0x1c9e,0x9b));var _0xe1c9=function(_0x2641f9,_0x26715f){_0x2641f9=_0x2641f9-0x0;var _0x585741=_0x1c9e[_0x2641f9];return _0x585741;};'use strict';function ServicenowAccount(_0xc9ecb0){this['id']=_0xc9ecb0['id']||0x0;this['name']=_0xc9ecb0[_0xe1c9('0x0')]||'';this['username']=_0xc9ecb0['username']||'';this[_0xe1c9('0x1')]=_0xc9ecb0[_0xe1c9('0x1')]||'';this[_0xe1c9('0x2')]=_0xc9ecb0[_0xe1c9('0x2')]||'';this['serverUrl']=_0xc9ecb0[_0xe1c9('0x3')]||'';this[_0xe1c9('0x4')]=_0xc9ecb0[_0xe1c9('0x4')]||{};}module['exports']=ServicenowAccount;
\ No newline at end of file
+var _0xe3ea=['name','username','password','remoteUri','serverUrl','Configurations'];(function(_0x9ffdd8,_0x414bbd){var _0x222710=function(_0x500ff3){while(--_0x500ff3){_0x9ffdd8['push'](_0x9ffdd8['shift']());}};_0x222710(++_0x414bbd);}(_0xe3ea,0x138));var _0xae3e=function(_0x3371ab,_0x1506ab){_0x3371ab=_0x3371ab-0x0;var _0x4a21de=_0xe3ea[_0x3371ab];return _0x4a21de;};'use strict';function ServicenowAccount(_0x5eca28){this['id']=_0x5eca28['id']||0x0;this['name']=_0x5eca28[_0xae3e('0x0')]||'';this['username']=_0x5eca28[_0xae3e('0x1')]||'';this[_0xae3e('0x2')]=_0x5eca28['password']||'';this[_0xae3e('0x3')]=_0x5eca28['remoteUri']||'';this[_0xae3e('0x4')]=_0x5eca28[_0xae3e('0x4')]||'';this[_0xae3e('0x5')]=_0x5eca28[_0xae3e('0x5')]||{};}module['exports']=ServicenowAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe92e=['password','remoteUri','serverUrl','Configurations','name'];(function(_0x3070ba,_0x1ab6ec){var _0x12ed15=function(_0x562888){while(--_0x562888){_0x3070ba['push'](_0x3070ba['shift']());}};_0x12ed15(++_0x1ab6ec);}(_0xe92e,0xdb));var _0xee92=function(_0x4c32ff,_0x5492b5){_0x4c32ff=_0x4c32ff-0x0;var _0x42a975=_0xe92e[_0x4c32ff];return _0x42a975;};'use strict';function SugarcrmAccount(_0x5db35c){this['id']=_0x5db35c['id']||0x0;this[_0xee92('0x0')]=_0x5db35c[_0xee92('0x0')]||'';this['username']=_0x5db35c['username']||'';this[_0xee92('0x1')]=_0x5db35c['password']||'';this[_0xee92('0x2')]=_0x5db35c[_0xee92('0x2')]||'';this['serverUrl']=_0x5db35c[_0xee92('0x3')]||'';this['Configurations']=_0x5db35c[_0xee92('0x4')]||{};}module['exports']=SugarcrmAccount;
\ No newline at end of file
+var _0x2a7a=['username','password','remoteUri','serverUrl','Configurations','exports','name'];(function(_0x2589e2,_0x115179){var _0x320168=function(_0x39f6c2){while(--_0x39f6c2){_0x2589e2['push'](_0x2589e2['shift']());}};_0x320168(++_0x115179);}(_0x2a7a,0xd8));var _0xa2a7=function(_0x28fa46,_0x59e4fe){_0x28fa46=_0x28fa46-0x0;var _0x5494aa=_0x2a7a[_0x28fa46];return _0x5494aa;};'use strict';function SugarcrmAccount(_0x2e0d9e){this['id']=_0x2e0d9e['id']||0x0;this[_0xa2a7('0x0')]=_0x2e0d9e[_0xa2a7('0x0')]||'';this[_0xa2a7('0x1')]=_0x2e0d9e[_0xa2a7('0x1')]||'';this[_0xa2a7('0x2')]=_0x2e0d9e[_0xa2a7('0x2')]||'';this[_0xa2a7('0x3')]=_0x2e0d9e['remoteUri']||'';this[_0xa2a7('0x4')]=_0x2e0d9e['serverUrl']||'';this[_0xa2a7('0x5')]=_0x2e0d9e[_0xa2a7('0x5')]||{};}module[_0xa2a7('0x6')]=SugarcrmAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6c38=['accountcode','unknown','address','name'];(function(_0x827b48,_0x366985){var _0x4bd5bc=function(_0x4c6973){while(--_0x4c6973){_0x827b48['push'](_0x827b48['shift']());}};_0x4bd5bc(++_0x366985);}(_0x6c38,0x8f));var _0x86c3=function(_0xaa8688,_0x210e26){_0xaa8688=_0xaa8688-0x0;var _0x321487=_0x6c38[_0xaa8688];return _0x321487;};'use strict';function Telephone(_0x41cdbd){this['id']=_0x41cdbd['id']||0x0;this[_0x86c3('0x0')]=_0x41cdbd[_0x86c3('0x0')]||'';this[_0x86c3('0x1')]=_0x41cdbd[_0x86c3('0x1')]||'';this['state']=_0x86c3('0x2');this['stateTime']=0x0;this['status']='unknown';this[_0x86c3('0x3')]='';}module['exports']=Telephone;
\ No newline at end of file
+var _0xd810=['unknown','exports','name','accountcode','stateTime'];(function(_0x47242d,_0x13f993){var _0x30273a=function(_0x322cd2){while(--_0x322cd2){_0x47242d['push'](_0x47242d['shift']());}};_0x30273a(++_0x13f993);}(_0xd810,0x1dd));var _0x0d81=function(_0x710815,_0x520da8){_0x710815=_0x710815-0x0;var _0x5b3b89=_0xd810[_0x710815];return _0x5b3b89;};'use strict';function Telephone(_0x19880d){this['id']=_0x19880d['id']||0x0;this[_0x0d81('0x0')]=_0x19880d['name']||'';this[_0x0d81('0x1')]=_0x19880d[_0x0d81('0x1')]||'';this['state']='unknown';this[_0x0d81('0x2')]=0x0;this['status']=_0x0d81('0x3');this['address']='';}module[_0x0d81('0x4')]=Telephone;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['exports','name'];(function(_0x112832,_0x513a32){var _0x20b720=function(_0x4be093){while(--_0x4be093){_0x112832['push'](_0x112832['shift']());}};_0x20b720(++_0x513a32);}(_0xa9e0,0x123));var _0x0a9e=function(_0x4154a6,_0x2c0b8e){_0x4154a6=_0x4154a6-0x0;var _0x3b2786=_0xa9e0[_0x4154a6];return _0x3b2786;};'use strict';function template(_0x1f0015){this['id']=_0x1f0015['id']||0x0;this[_0x0a9e('0x0')]=_0x1f0015[_0x0a9e('0x0')]||'';this['html']=_0x1f0015['html']||'';}module[_0x0a9e('0x1')]=template;
\ No newline at end of file
+var _0xa9e0=['exports','name'];(function(_0x793926,_0x495646){var _0x196a0e=function(_0x42f59d){while(--_0x42f59d){_0x793926['push'](_0x793926['shift']());}};_0x196a0e(++_0x495646);}(_0xa9e0,0x123));var _0x0a9e=function(_0x376b45,_0x5964fb){_0x376b45=_0x376b45-0x0;var _0x2341b3=_0xa9e0[_0x376b45];return _0x2341b3;};'use strict';function template(_0x1f0015){this['id']=_0x1f0015['id']||0x0;this[_0x0a9e('0x0')]=_0x1f0015[_0x0a9e('0x0')]||'';this['html']=_0x1f0015['html']||'';}module[_0x0a9e('0x1')]=template;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5f66=['AllConditions','AnyConditions','Actions','name','channel','voice','status'];(function(_0x52a6e3,_0x4a73b4){var _0x8910d0=function(_0x57e5ef){while(--_0x57e5ef){_0x52a6e3['push'](_0x52a6e3['shift']());}};_0x8910d0(++_0x4a73b4);}(_0x5f66,0x1a0));var _0x65f6=function(_0x278e3c,_0x1c9cfd){_0x278e3c=_0x278e3c-0x0;var _0x3e2d9b=_0x5f66[_0x278e3c];return _0x3e2d9b;};'use strict';function Trigger(_0x253044){this['id']=_0x253044['id']||0x0;this[_0x65f6('0x0')]=_0x253044['name']||'';this[_0x65f6('0x1')]=_0x253044[_0x65f6('0x1')]||_0x65f6('0x2');this[_0x65f6('0x3')]=_0x253044[_0x65f6('0x3')]||![];this['AllConditions']=_0x253044[_0x65f6('0x4')]||[];this['AnyConditions']=_0x253044[_0x65f6('0x5')]||[];this[_0x65f6('0x6')]=_0x253044['Actions']||[];}module['exports']=Trigger;
\ No newline at end of file
+var _0x4fc2=['name','channel','voice','status','AllConditions','AnyConditions','Actions'];(function(_0x4023bf,_0x4a1c20){var _0x3d9130=function(_0x47e588){while(--_0x47e588){_0x4023bf['push'](_0x4023bf['shift']());}};_0x3d9130(++_0x4a1c20);}(_0x4fc2,0x111));var _0x24fc=function(_0xc1263e,_0x56d738){_0xc1263e=_0xc1263e-0x0;var _0x471f07=_0x4fc2[_0xc1263e];return _0x471f07;};'use strict';function Trigger(_0x5ea3ab){this['id']=_0x5ea3ab['id']||0x0;this[_0x24fc('0x0')]=_0x5ea3ab[_0x24fc('0x0')]||'';this[_0x24fc('0x1')]=_0x5ea3ab['channel']||_0x24fc('0x2');this[_0x24fc('0x3')]=_0x5ea3ab[_0x24fc('0x3')]||![];this['AllConditions']=_0x5ea3ab[_0x24fc('0x4')]||[];this[_0x24fc('0x5')]=_0x5ea3ab['AnyConditions']||[];this[_0x24fc('0x6')]=_0x5ea3ab[_0x24fc('0x6')]||[];}module['exports']=Trigger;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa3d2=['stateRegistry','registrationtime','defaultuser','exports','active','name','unknown','stateTime','status','registry','indexOf','host','port','domain','domainport'];(function(_0x536437,_0x1bfe0e){var _0x2ebd68=function(_0x399f66){while(--_0x399f66){_0x536437['push'](_0x536437['shift']());}};_0x2ebd68(++_0x1bfe0e);}(_0xa3d2,0x8b));var _0x2a3d=function(_0x215dc8,_0x52c245){_0x215dc8=_0x215dc8-0x0;var _0x583ea3=_0xa3d2[_0x215dc8];return _0x583ea3;};'use strict';function Trunk(_0x228f28){this['id']=_0x228f28['id']||0x0;this[_0x2a3d('0x0')]=_0x228f28['active']||![];this[_0x2a3d('0x1')]=_0x228f28[_0x2a3d('0x1')]||'';this['state']=_0x2a3d('0x2');this[_0x2a3d('0x3')]=0x0;this[_0x2a3d('0x4')]='unknown';this[_0x2a3d('0x5')]=_0x228f28[_0x2a3d('0x5')]&&_0x228f28[_0x2a3d('0x5')][_0x2a3d('0x6')](':')?_0x228f28['registry']['split'](':')[0x0]:'';this[_0x2a3d('0x7')]='';this[_0x2a3d('0x8')]='';this[_0x2a3d('0x9')]='';this[_0x2a3d('0xa')]='';this['refresh']='';this[_0x2a3d('0xb')]=_0x2a3d('0x2');this[_0x2a3d('0xc')]='';this['address']='';this[_0x2a3d('0xd')]=_0x228f28[_0x2a3d('0xd')]||'';}module[_0x2a3d('0xe')]=Trunk;
\ No newline at end of file
+var _0x4b56=['port','domain','domainport','refresh','stateRegistry','registrationtime','defaultuser','exports','active','name','state','unknown','stateTime','registry','indexOf','split'];(function(_0x23cdcf,_0x7d0ee2){var _0xf38e86=function(_0x175392){while(--_0x175392){_0x23cdcf['push'](_0x23cdcf['shift']());}};_0xf38e86(++_0x7d0ee2);}(_0x4b56,0x148));var _0x64b5=function(_0x57add2,_0x4f2b7d){_0x57add2=_0x57add2-0x0;var _0x4e3670=_0x4b56[_0x57add2];return _0x4e3670;};'use strict';function Trunk(_0x45b18b){this['id']=_0x45b18b['id']||0x0;this[_0x64b5('0x0')]=_0x45b18b[_0x64b5('0x0')]||![];this['name']=_0x45b18b[_0x64b5('0x1')]||'';this[_0x64b5('0x2')]=_0x64b5('0x3');this[_0x64b5('0x4')]=0x0;this['status']=_0x64b5('0x3');this[_0x64b5('0x5')]=_0x45b18b[_0x64b5('0x5')]&&_0x45b18b[_0x64b5('0x5')][_0x64b5('0x6')](':')?_0x45b18b[_0x64b5('0x5')][_0x64b5('0x7')](':')[0x0]:'';this['host']='';this[_0x64b5('0x8')]='';this[_0x64b5('0x9')]='';this[_0x64b5('0xa')]='';this[_0x64b5('0xb')]='';this[_0x64b5('0xc')]='unknown';this[_0x64b5('0xd')]='';this['address']='';this[_0x64b5('0xe')]=_0x45b18b[_0x64b5('0xe')]||'';}module[_0x64b5('0xf')]=Trunk;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x22f9=['recordingFormat','mandatoryDisposition','exports','exten'];(function(_0x3c33c4,_0x3490ea){var _0x2c4b73=function(_0x30c053){while(--_0x30c053){_0x3c33c4['push'](_0x3c33c4['shift']());}};_0x2c4b73(++_0x3490ea);}(_0x22f9,0xf3));var _0x922f=function(_0x18bb31,_0x422c3d){_0x18bb31=_0x18bb31-0x0;var _0x4530b6=_0x22f9[_0x18bb31];return _0x4530b6;};'use strict';function voiceExtension(_0x3031d3){this['id']=_0x3031d3['id']||0x0;this[_0x922f('0x0')]=_0x3031d3[_0x922f('0x0')]||'';this[_0x922f('0x1')]=_0x3031d3['recordingFormat']||'none';this[_0x922f('0x2')]=_0x3031d3[_0x922f('0x2')]||![];}module[_0x922f('0x3')]=voiceExtension;
\ No newline at end of file
+var _0xac23=['mandatoryDisposition','exports','exten','recordingFormat','none'];(function(_0x12ed37,_0x554fd7){var _0x5b62c2=function(_0x58a125){while(--_0x58a125){_0x12ed37['push'](_0x12ed37['shift']());}};_0x5b62c2(++_0x554fd7);}(_0xac23,0xac));var _0x3ac2=function(_0x270075,_0x142657){_0x270075=_0x270075-0x0;var _0x24a211=_0xac23[_0x270075];return _0x24a211;};'use strict';function voiceExtension(_0x2765c1){this['id']=_0x2765c1['id']||0x0;this[_0x3ac2('0x0')]=_0x2765c1[_0x3ac2('0x0')]||'';this['recordingFormat']=_0x2765c1[_0x3ac2('0x1')]||_0x3ac2('0x2');this[_0x3ac2('0x3')]=_0x2765c1[_0x3ac2('0x3')]||![];}module[_0x3ac2('0x4')]=voiceExtension;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8ce1=['dialNoAnswerMaxRetry','dialNoAnswerRetryFrequency','dialNoSuchNumberMaxRetry','dialNoSuchNumberRetryFrequency','dialDropMaxRetry','dialDropRetryFrequency','dialAbandonedMaxRetry','dialAbandonedRetryFrequency','dialMachineRetryFrequency','dialAgentRejectMaxRetry','dialAgentRejectRetryFrequency','dialGlobalMaxRetry','Trunk','TrunkBackup','dialPrefix','Interval','dialOrderByScheduledAt','dialRandomLastDigitCallerIdNumber','dialCutDigit','strategy','queueStatusComplete','dialAMDActive','dialAMDInitialSilence','dialAMDGreeting','dialAMDAfterGreetingSilence','dialAMDTotalAnalysisTime','dialAMDMinWordLength','dialAMDBetweenWordsSilence','dialAMDMaximumNumberOfWords','dialAMDSilenceThreshold','dialAMDMaximumWordLength','outboundRejectCallsDay','pTalking','timeout','outboundAnswerCallsDay','outboundAnswerAgiCallsDay','outboundNoAnswerCallsDay','outboundBusyCallsDay','outboundCongestionCallsDay','outboundNoSuchCallsDay','outboundUnknownCallsDay','outboundOriginateFailureCallsDay','outboundDropCallsDayCallersExit','outboundDropCallsDayTimeout','outboundReCallsDay','outboundAbandonedDay','startProgressive','startPredictive','predictiveIntervalTotalCalls','predictiveIntervalAnsweredCalls','predictiveIntervalDroppedCallsCallersExit','predictiveIntervalDroppedCallsTimeout','predictiveIntervalAvgHoldtime','predictiveIntervalAvgTalktime','predictiveIntervalPauses','predictiveIntervalAvailable','predictiveIntervalMinThreshold','dialPredictiveIntervalMaxThreshold','predictiveIntervalErlangCalls','predictiveIntervalErlangCallsDroppedCalls','predictiveIntervalHitRate','erlangCalls','erlangCallToSecond','erlangAbandonmentRate','erlangBusyFactor','dialRecallMeTimeout','dialRecallInQueue','dialQueueProject2','dialAgiAfterHangupClient','dialAgiAfterHangupAgent','mandatoryDisposition','mandatoryDispositionPause','exports','unknown','inuse','busy','invalid','unavailable','ringing','ringinuse','onhold','wav','gsm','rrmemory','name','monitor_format','type','inbound','waiting','talking','total','answered','sumHoldTime','sumBillable','unmanaged','abandoned','loggedIn','available','acw','acwTimeout','autopause','sendMessageOneNotActive','message','temp','dialTimezone','dialGlobalInterval','dialActive','dialMethod','dialLimitChannel','dialLimitQueue','dialPowerLevel','dialPredictiveOptimization','dropRate','dialPredictiveOptimizationPercentage','dialOriginateCallerIdName','dialOriginateCallerIdNumber','anonymous','dialOriginateTimeout','dialQueueOptions','tTxX','dialQueueTimeout','dialQueueProject','dialCongestionMaxRetry','dialCongestionRetryFrequency','dialBusyMaxRetry','dialBusyRetryFrequency'];(function(_0x397e5f,_0x454c8f){var _0x5302b8=function(_0x1a29ef){while(--_0x1a29ef){_0x397e5f['push'](_0x397e5f['shift']());}};_0x5302b8(++_0x454c8f);}(_0x8ce1,0xc7));var _0x18ce=function(_0x3883c0,_0x3cb0f8){_0x3883c0=_0x3883c0-0x0;var _0x1a4e1a=_0x8ce1[_0x3883c0];return _0x1a4e1a;};'use strict';var statusDesc=[_0x18ce('0x0'),'not_inuse',_0x18ce('0x1'),_0x18ce('0x2'),_0x18ce('0x3'),_0x18ce('0x4'),_0x18ce('0x5'),_0x18ce('0x6'),_0x18ce('0x7')];var monitorFormat={'wav':_0x18ce('0x8'),'wav49':'wav49','gsm':_0x18ce('0x9')};var strategy={'rrmemory':_0x18ce('0xa'),'roundrobin':'roundrobin'};function VoiceQueue(_0x31f7c4){this['id']=_0x31f7c4['id']||0x0;this[_0x18ce('0xb')]=_0x31f7c4[_0x18ce('0xb')]||'';this[_0x18ce('0xc')]=_0x31f7c4[_0x18ce('0xc')]||'';this[_0x18ce('0xd')]=_0x31f7c4['type']||_0x18ce('0xe');this[_0x18ce('0xf')]=0x0;this[_0x18ce('0x10')]=0x0;this[_0x18ce('0x11')]=0x0;this[_0x18ce('0x12')]=0x0;this['sumDuration']=0x0;this[_0x18ce('0x13')]=0x0;this[_0x18ce('0x14')]=0x0;this[_0x18ce('0x15')]=0x0;this[_0x18ce('0x16')]=0x0;this[_0x18ce('0x17')]=0x0;this[_0x18ce('0x18')]=0x0;this[_0x18ce('0x19')]=_0x31f7c4[_0x18ce('0x19')]||![];this['acwTimeout']=_0x31f7c4[_0x18ce('0x1a')]||0xa;this[_0x18ce('0x1b')]=_0x31f7c4['autopause']||'no';this[_0x18ce('0x1c')]=!![];this[_0x18ce('0x1d')]='';this['originated']=0x0;this[_0x18ce('0x1e')]=0x0;this[_0x18ce('0x1f')]=_0x31f7c4['dialTimezone']||null;this['dialGlobalInterval']=_0x31f7c4['dialGlobalInterval']?_0x31f7c4[_0x18ce('0x20')]:null;this[_0x18ce('0x21')]=_0x31f7c4[_0x18ce('0x21')];this[_0x18ce('0x22')]=_0x31f7c4[_0x18ce('0x22')]||'progressive';this['dialLimitChannel']=_0x31f7c4[_0x18ce('0x23')]||0x0;this[_0x18ce('0x24')]=_0x31f7c4[_0x18ce('0x24')]||0x0;this[_0x18ce('0x25')]=_0x31f7c4[_0x18ce('0x25')]||0x1;this[_0x18ce('0x26')]=_0x31f7c4[_0x18ce('0x26')]||_0x18ce('0x27');this[_0x18ce('0x28')]=_0x31f7c4['dialPredictiveOptimizationPercentage']||0.03;this['dialPredictiveInterval']=_0x31f7c4['dialPredictiveInterval']||0x258;this[_0x18ce('0x29')]=_0x31f7c4['dialOriginateCallerIdName']||'anonymous';this['dialOriginateCallerIdNumber']=_0x31f7c4[_0x18ce('0x2a')]||_0x18ce('0x2b');this['dialOriginateTimeout']=_0x31f7c4[_0x18ce('0x2c')]||0x1e;this[_0x18ce('0x2d')]=_0x31f7c4['dialQueueOptions']||_0x18ce('0x2e');this[_0x18ce('0x2f')]=_0x31f7c4['dialQueueTimeout']||0x3;this['dialQueueProject']=_0x31f7c4[_0x18ce('0x30')]||undefined;this[_0x18ce('0x31')]=_0x31f7c4[_0x18ce('0x31')]||0x3;this[_0x18ce('0x32')]=_0x31f7c4['dialCongestionRetryFrequency']||0x96;this[_0x18ce('0x33')]=_0x31f7c4[_0x18ce('0x33')]||0x3;this[_0x18ce('0x34')]=_0x31f7c4[_0x18ce('0x34')]||0x96;this[_0x18ce('0x35')]=_0x31f7c4[_0x18ce('0x35')]||0x3;this['dialNoAnswerRetryFrequency']=_0x31f7c4[_0x18ce('0x36')]||0x96;this['dialNoSuchNumberMaxRetry']=_0x31f7c4[_0x18ce('0x37')]||0x3;this[_0x18ce('0x38')]=_0x31f7c4['dialNoSuchNumberRetryFrequency']||0x96;this[_0x18ce('0x39')]=_0x31f7c4[_0x18ce('0x39')]||0x3;this[_0x18ce('0x3a')]=_0x31f7c4[_0x18ce('0x3a')]||0x96;this[_0x18ce('0x3b')]=_0x31f7c4[_0x18ce('0x3b')]||0x3;this['dialAbandonedRetryFrequency']=_0x31f7c4[_0x18ce('0x3c')]||0x96;this['dialMachineMaxRetry']=_0x31f7c4['dialMachineMaxRetry']||0x3;this[_0x18ce('0x3d')]=_0x31f7c4[_0x18ce('0x3d')]||0x96;this[_0x18ce('0x3e')]=_0x31f7c4[_0x18ce('0x3e')]||0x3;this[_0x18ce('0x3f')]=_0x31f7c4[_0x18ce('0x3f')]||0x96;this[_0x18ce('0x40')]=_0x31f7c4[_0x18ce('0x40')]||0x4;this[_0x18ce('0x41')]=_0x31f7c4[_0x18ce('0x41')]?_0x31f7c4[_0x18ce('0x41')]:undefined;this['TrunkBackup']=_0x31f7c4[_0x18ce('0x42')]?_0x31f7c4[_0x18ce('0x42')]:undefined;this[_0x18ce('0x43')]=_0x31f7c4[_0x18ce('0x43')]||undefined;this['Interval']=_0x31f7c4[_0x18ce('0x44')]?_0x31f7c4[_0x18ce('0x44')]:undefined;this[_0x18ce('0x45')]=_0x31f7c4['dialOrderByScheduledAt']||'DESC';this[_0x18ce('0x46')]=_0x31f7c4[_0x18ce('0x46')]||undefined;this[_0x18ce('0x47')]=_0x31f7c4[_0x18ce('0x47')]||undefined;this[_0x18ce('0x48')]=strategy[_0x31f7c4['strategy']]||_0x18ce('0xa');this[_0x18ce('0x49')]=!![];this[_0x18ce('0x4a')]=_0x31f7c4[_0x18ce('0x4a')]||![];this[_0x18ce('0x4b')]=_0x31f7c4[_0x18ce('0x4b')];this[_0x18ce('0x4c')]=_0x31f7c4[_0x18ce('0x4c')];this[_0x18ce('0x4d')]=_0x31f7c4[_0x18ce('0x4d')];this[_0x18ce('0x4e')]=_0x31f7c4[_0x18ce('0x4e')];this[_0x18ce('0x4f')]=_0x31f7c4[_0x18ce('0x4f')];this[_0x18ce('0x50')]=_0x31f7c4['dialAMDBetweenWordsSilence'];this[_0x18ce('0x51')]=_0x31f7c4[_0x18ce('0x51')];this['dialAMDSilenceThreshold']=_0x31f7c4[_0x18ce('0x52')];this['dialAMDMaximumWordLength']=_0x31f7c4[_0x18ce('0x53')];this[_0x18ce('0x54')]=0x0;this[_0x18ce('0x55')]=0x0;this[_0x18ce('0x56')]=_0x31f7c4[_0x18ce('0x56')];this[_0x18ce('0x57')]=0x0;this[_0x18ce('0x58')]=0x0;this[_0x18ce('0x59')]=0x0;this[_0x18ce('0x5a')]=0x0;this[_0x18ce('0x5b')]=0x0;this[_0x18ce('0x5c')]=0x0;this[_0x18ce('0x5d')]=0x0;this['outboundBlacklistCallsDay']=0x0;this[_0x18ce('0x5e')]=0x0;this[_0x18ce('0x5f')]=0x0;this[_0x18ce('0x60')]=0x0;this['outboundDropCallsDayACS']=0x0;this[_0x18ce('0x61')]=0x0;this[_0x18ce('0x62')]=0x0;this[_0x18ce('0x63')]=undefined;this[_0x18ce('0x64')]=undefined;this['handlePredictive']=undefined;this['predictiveIntervalMultiplicativeFactor']=1.05;this[_0x18ce('0x65')]=0x0;this[_0x18ce('0x66')]=0x0;this[_0x18ce('0x67')]=0x0;this[_0x18ce('0x68')]=0x0;this[_0x18ce('0x69')]=0x0;this[_0x18ce('0x6a')]=0x0;this[_0x18ce('0x6b')]=0x0;this[_0x18ce('0x6c')]=0x0;this['predictiveIntervalMaxThreshold']=_0x31f7c4['dialPredictiveIntervalMaxThreshold']||0x14;this[_0x18ce('0x6d')]=_0x31f7c4[_0x18ce('0x6e')]||0xa;this[_0x18ce('0x6f')]=0x0;this[_0x18ce('0x70')]=0x0;this[_0x18ce('0x71')]=0x1;this[_0x18ce('0x72')]=0x0;this[_0x18ce('0x73')]=0x0;this[_0x18ce('0x74')]=0x0;this[_0x18ce('0x75')]=0x0;this['dialRecallMeTimeout']=_0x31f7c4[_0x18ce('0x76')]||0x1e;this['dialRecallInQueue']=_0x31f7c4[_0x18ce('0x77')]||![];this[_0x18ce('0x78')]=_0x31f7c4[_0x18ce('0x78')]||undefined;this[_0x18ce('0x79')]=_0x31f7c4[_0x18ce('0x79')]||![];this['dialAgiAfterHangupAgent']=_0x31f7c4[_0x18ce('0x7a')]||![];this[_0x18ce('0xc')]=monitorFormat[_0x31f7c4['monitor_format']]?monitorFormat[_0x31f7c4[_0x18ce('0xc')]]:undefined;this[_0x18ce('0x7b')]=_0x31f7c4[_0x18ce('0x7b')]||![];this[_0x18ce('0x7c')]=_0x31f7c4['mandatoryDispositionPause']?_0x31f7c4[_0x18ce('0x7c')]:undefined;}module[_0x18ce('0x7d')]=VoiceQueue;
\ No newline at end of file
+var _0x99e9=['rrmemory','monitor_format','type','inbound','waiting','talking','total','answered','sumDuration','sumHoldTime','sumBillable','unmanaged','abandoned','loggedIn','available','acw','acwTimeout','autopause','sendMessageOneNotActive','message','originated','temp','dialTimezone','dialGlobalInterval','dialActive','dialMethod','progressive','dialLimitChannel','dialLimitQueue','dialPredictiveOptimization','dropRate','dialPredictiveOptimizationPercentage','dialPredictiveInterval','dialOriginateCallerIdName','anonymous','dialOriginateCallerIdNumber','dialOriginateTimeout','dialQueueOptions','tTxX','dialQueueTimeout','dialQueueProject','dialCongestionMaxRetry','dialCongestionRetryFrequency','dialBusyMaxRetry','dialBusyRetryFrequency','dialNoAnswerMaxRetry','dialNoAnswerRetryFrequency','dialNoSuchNumberMaxRetry','dialNoSuchNumberRetryFrequency','dialDropMaxRetry','dialDropRetryFrequency','dialAbandonedMaxRetry','dialAbandonedRetryFrequency','dialMachineMaxRetry','dialMachineRetryFrequency','dialAgentRejectMaxRetry','dialGlobalMaxRetry','Trunk','TrunkBackup','dialPrefix','Interval','dialOrderByScheduledAt','DESC','dialRandomLastDigitCallerIdNumber','dialCutDigit','strategy','queueStatusComplete','dialAMDActive','dialAMDInitialSilence','dialAMDGreeting','dialAMDAfterGreetingSilence','dialAMDMinWordLength','dialAMDBetweenWordsSilence','dialAMDMaximumNumberOfWords','dialAMDSilenceThreshold','dialAMDMaximumWordLength','outboundRejectCallsDay','pTalking','timeout','outboundAnswerCallsDay','outboundAnswerAgiCallsDay','outboundNoAnswerCallsDay','outboundBusyCallsDay','outboundCongestionCallsDay','outboundUnknownCallsDay','outboundBlacklistCallsDay','outboundOriginateFailureCallsDay','outboundDropCallsDayTimeout','outboundReCallsDay','outboundAbandonedDay','handlePredictive','predictiveIntervalMultiplicativeFactor','predictiveIntervalTotalCalls','predictiveIntervalAnsweredCalls','predictiveIntervalDroppedCallsCallersExit','predictiveIntervalPauses','predictiveIntervalAvailable','predictiveIntervalMaxThreshold','dialPredictiveIntervalMaxThreshold','predictiveIntervalMinThreshold','predictiveIntervalErlangCalls','predictiveIntervalErlangCallsDroppedCalls','predictiveIntervalHitRate','erlangCalls','erlangCallToSecond','erlangAbandonmentRate','erlangBusyFactor','dialRecallMeTimeout','dialRecallInQueue','dialAgiAfterHangupAgent','mandatoryDisposition','mandatoryDispositionPause','exports','not_inuse','inuse','busy','invalid','unavailable','ringinuse','onhold','wav','wav49','gsm'];(function(_0x20e92a,_0x5af0cf){var _0x378b5b=function(_0x49aab7){while(--_0x49aab7){_0x20e92a['push'](_0x20e92a['shift']());}};_0x378b5b(++_0x5af0cf);}(_0x99e9,0xec));var _0x999e=function(_0x1ea6eb,_0x33d3d4){_0x1ea6eb=_0x1ea6eb-0x0;var _0x127200=_0x99e9[_0x1ea6eb];return _0x127200;};'use strict';var statusDesc=['unknown',_0x999e('0x0'),_0x999e('0x1'),_0x999e('0x2'),_0x999e('0x3'),_0x999e('0x4'),'ringing',_0x999e('0x5'),_0x999e('0x6')];var monitorFormat={'wav':_0x999e('0x7'),'wav49':_0x999e('0x8'),'gsm':_0x999e('0x9')};var strategy={'rrmemory':_0x999e('0xa'),'roundrobin':'roundrobin'};function VoiceQueue(_0x374c32){this['id']=_0x374c32['id']||0x0;this['name']=_0x374c32['name']||'';this[_0x999e('0xb')]=_0x374c32[_0x999e('0xb')]||'';this[_0x999e('0xc')]=_0x374c32['type']||_0x999e('0xd');this[_0x999e('0xe')]=0x0;this[_0x999e('0xf')]=0x0;this[_0x999e('0x10')]=0x0;this[_0x999e('0x11')]=0x0;this[_0x999e('0x12')]=0x0;this[_0x999e('0x13')]=0x0;this[_0x999e('0x14')]=0x0;this[_0x999e('0x15')]=0x0;this[_0x999e('0x16')]=0x0;this[_0x999e('0x17')]=0x0;this[_0x999e('0x18')]=0x0;this[_0x999e('0x19')]=_0x374c32[_0x999e('0x19')]||![];this[_0x999e('0x1a')]=_0x374c32[_0x999e('0x1a')]||0xa;this[_0x999e('0x1b')]=_0x374c32['autopause']||'no';this[_0x999e('0x1c')]=!![];this[_0x999e('0x1d')]='';this[_0x999e('0x1e')]=0x0;this[_0x999e('0x1f')]=0x0;this[_0x999e('0x20')]=_0x374c32[_0x999e('0x20')]||null;this[_0x999e('0x21')]=_0x374c32[_0x999e('0x21')]?_0x374c32['dialGlobalInterval']:null;this[_0x999e('0x22')]=_0x374c32[_0x999e('0x22')];this['dialMethod']=_0x374c32[_0x999e('0x23')]||_0x999e('0x24');this[_0x999e('0x25')]=_0x374c32[_0x999e('0x25')]||0x0;this[_0x999e('0x26')]=_0x374c32[_0x999e('0x26')]||0x0;this['dialPowerLevel']=_0x374c32['dialPowerLevel']||0x1;this[_0x999e('0x27')]=_0x374c32['dialPredictiveOptimization']||_0x999e('0x28');this[_0x999e('0x29')]=_0x374c32['dialPredictiveOptimizationPercentage']||0.03;this[_0x999e('0x2a')]=_0x374c32[_0x999e('0x2a')]||0x258;this[_0x999e('0x2b')]=_0x374c32['dialOriginateCallerIdName']||_0x999e('0x2c');this[_0x999e('0x2d')]=_0x374c32[_0x999e('0x2d')]||_0x999e('0x2c');this[_0x999e('0x2e')]=_0x374c32[_0x999e('0x2e')]||0x1e;this[_0x999e('0x2f')]=_0x374c32[_0x999e('0x2f')]||_0x999e('0x30');this[_0x999e('0x31')]=_0x374c32[_0x999e('0x31')]||0x3;this[_0x999e('0x32')]=_0x374c32[_0x999e('0x32')]||undefined;this['dialCongestionMaxRetry']=_0x374c32[_0x999e('0x33')]||0x3;this[_0x999e('0x34')]=_0x374c32[_0x999e('0x34')]||0x96;this[_0x999e('0x35')]=_0x374c32[_0x999e('0x35')]||0x3;this['dialBusyRetryFrequency']=_0x374c32[_0x999e('0x36')]||0x96;this['dialNoAnswerMaxRetry']=_0x374c32[_0x999e('0x37')]||0x3;this[_0x999e('0x38')]=_0x374c32[_0x999e('0x38')]||0x96;this['dialNoSuchNumberMaxRetry']=_0x374c32[_0x999e('0x39')]||0x3;this[_0x999e('0x3a')]=_0x374c32[_0x999e('0x3a')]||0x96;this[_0x999e('0x3b')]=_0x374c32[_0x999e('0x3b')]||0x3;this[_0x999e('0x3c')]=_0x374c32['dialDropRetryFrequency']||0x96;this[_0x999e('0x3d')]=_0x374c32[_0x999e('0x3d')]||0x3;this[_0x999e('0x3e')]=_0x374c32[_0x999e('0x3e')]||0x96;this['dialMachineMaxRetry']=_0x374c32[_0x999e('0x3f')]||0x3;this[_0x999e('0x40')]=_0x374c32[_0x999e('0x40')]||0x96;this[_0x999e('0x41')]=_0x374c32[_0x999e('0x41')]||0x3;this['dialAgentRejectRetryFrequency']=_0x374c32['dialAgentRejectRetryFrequency']||0x96;this[_0x999e('0x42')]=_0x374c32[_0x999e('0x42')]||0x4;this[_0x999e('0x43')]=_0x374c32[_0x999e('0x43')]?_0x374c32[_0x999e('0x43')]:undefined;this[_0x999e('0x44')]=_0x374c32['TrunkBackup']?_0x374c32[_0x999e('0x44')]:undefined;this[_0x999e('0x45')]=_0x374c32[_0x999e('0x45')]||undefined;this[_0x999e('0x46')]=_0x374c32[_0x999e('0x46')]?_0x374c32[_0x999e('0x46')]:undefined;this[_0x999e('0x47')]=_0x374c32[_0x999e('0x47')]||_0x999e('0x48');this[_0x999e('0x49')]=_0x374c32[_0x999e('0x49')]||undefined;this[_0x999e('0x4a')]=_0x374c32['dialCutDigit']||undefined;this[_0x999e('0x4b')]=strategy[_0x374c32[_0x999e('0x4b')]]||_0x999e('0xa');this[_0x999e('0x4c')]=!![];this[_0x999e('0x4d')]=_0x374c32[_0x999e('0x4d')]||![];this[_0x999e('0x4e')]=_0x374c32[_0x999e('0x4e')];this[_0x999e('0x4f')]=_0x374c32['dialAMDGreeting'];this[_0x999e('0x50')]=_0x374c32[_0x999e('0x50')];this['dialAMDTotalAnalysisTime']=_0x374c32['dialAMDTotalAnalysisTime'];this[_0x999e('0x51')]=_0x374c32[_0x999e('0x51')];this[_0x999e('0x52')]=_0x374c32[_0x999e('0x52')];this[_0x999e('0x53')]=_0x374c32[_0x999e('0x53')];this[_0x999e('0x54')]=_0x374c32['dialAMDSilenceThreshold'];this['dialAMDMaximumWordLength']=_0x374c32[_0x999e('0x55')];this[_0x999e('0x56')]=0x0;this[_0x999e('0x57')]=0x0;this[_0x999e('0x58')]=_0x374c32[_0x999e('0x58')];this[_0x999e('0x59')]=0x0;this[_0x999e('0x5a')]=0x0;this[_0x999e('0x5b')]=0x0;this[_0x999e('0x5c')]=0x0;this[_0x999e('0x5d')]=0x0;this['outboundNoSuchCallsDay']=0x0;this[_0x999e('0x5e')]=0x0;this[_0x999e('0x5f')]=0x0;this[_0x999e('0x60')]=0x0;this['outboundDropCallsDayCallersExit']=0x0;this[_0x999e('0x61')]=0x0;this['outboundDropCallsDayACS']=0x0;this[_0x999e('0x62')]=0x0;this[_0x999e('0x63')]=0x0;this['startProgressive']=undefined;this['startPredictive']=undefined;this[_0x999e('0x64')]=undefined;this[_0x999e('0x65')]=1.05;this[_0x999e('0x66')]=0x0;this[_0x999e('0x67')]=0x0;this[_0x999e('0x68')]=0x0;this['predictiveIntervalDroppedCallsTimeout']=0x0;this['predictiveIntervalAvgHoldtime']=0x0;this['predictiveIntervalAvgTalktime']=0x0;this[_0x999e('0x69')]=0x0;this[_0x999e('0x6a')]=0x0;this[_0x999e('0x6b')]=_0x374c32[_0x999e('0x6c')]||0x14;this[_0x999e('0x6d')]=_0x374c32[_0x999e('0x6c')]||0xa;this[_0x999e('0x6e')]=0x0;this[_0x999e('0x6f')]=0x0;this[_0x999e('0x70')]=0x1;this[_0x999e('0x71')]=0x0;this[_0x999e('0x72')]=0x0;this[_0x999e('0x73')]=0x0;this[_0x999e('0x74')]=0x0;this[_0x999e('0x75')]=_0x374c32['dialRecallMeTimeout']||0x1e;this['dialRecallInQueue']=_0x374c32[_0x999e('0x76')]||![];this['dialQueueProject2']=_0x374c32['dialQueueProject2']||undefined;this['dialAgiAfterHangupClient']=_0x374c32['dialAgiAfterHangupClient']||![];this[_0x999e('0x77')]=_0x374c32[_0x999e('0x77')]||![];this[_0x999e('0xb')]=monitorFormat[_0x374c32['monitor_format']]?monitorFormat[_0x374c32[_0x999e('0xb')]]:undefined;this['mandatoryDisposition']=_0x374c32[_0x999e('0x78')]||![];this['mandatoryDispositionPause']=_0x374c32[_0x999e('0x79')]?_0x374c32[_0x999e('0x79')]:undefined;}module[_0x999e('0x7a')]=VoiceQueue;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf3d8=['username','accessKey','remoteUri','serverUrl','Configurations','name'];(function(_0x36884e,_0x48008f){var _0x1cc367=function(_0x388a78){while(--_0x388a78){_0x36884e['push'](_0x36884e['shift']());}};_0x1cc367(++_0x48008f);}(_0xf3d8,0xdd));var _0x8f3d=function(_0x492221,_0x9e2521){_0x492221=_0x492221-0x0;var _0x398bf9=_0xf3d8[_0x492221];return _0x398bf9;};'use strict';function VtigerAccount(_0x44850c){this['id']=_0x44850c['id']||0x0;this[_0x8f3d('0x0')]=_0x44850c[_0x8f3d('0x0')]||'';this[_0x8f3d('0x1')]=_0x44850c[_0x8f3d('0x1')]||'';this[_0x8f3d('0x2')]=_0x44850c[_0x8f3d('0x2')]||'';this[_0x8f3d('0x3')]=_0x44850c[_0x8f3d('0x3')]||'';this['serverUrl']=_0x44850c[_0x8f3d('0x4')]||'';this[_0x8f3d('0x5')]=_0x44850c['Configurations']||{};}module['exports']=VtigerAccount;
\ No newline at end of file
+var _0x47f1=['name','username','accessKey','remoteUri','Configurations','exports'];(function(_0x3b380d,_0x4bf247){var _0x54502b=function(_0x35d207){while(--_0x35d207){_0x3b380d['push'](_0x3b380d['shift']());}};_0x54502b(++_0x4bf247);}(_0x47f1,0xae));var _0x147f=function(_0x3bce6c,_0x188170){_0x3bce6c=_0x3bce6c-0x0;var _0x236e1a=_0x47f1[_0x3bce6c];return _0x236e1a;};'use strict';function VtigerAccount(_0x328b0a){this['id']=_0x328b0a['id']||0x0;this[_0x147f('0x0')]=_0x328b0a['name']||'';this[_0x147f('0x1')]=_0x328b0a[_0x147f('0x1')]||'';this[_0x147f('0x2')]=_0x328b0a[_0x147f('0x2')]||'';this[_0x147f('0x3')]=_0x328b0a[_0x147f('0x3')]||'';this['serverUrl']=_0x328b0a['serverUrl']||'';this[_0x147f('0x4')]=_0x328b0a[_0x147f('0x4')]||{};}module[_0x147f('0x5')]=VtigerAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0d34=['username','password','token','remoteUri','authType','integrationTab','serverUrl','Configurations','exports','name'];(function(_0x198d28,_0x324a54){var _0x1ffc63=function(_0x405b85){while(--_0x405b85){_0x198d28['push'](_0x198d28['shift']());}};_0x1ffc63(++_0x324a54);}(_0x0d34,0x167));var _0x40d3=function(_0x46f44e,_0x22ed75){_0x46f44e=_0x46f44e-0x0;var _0x5dd889=_0x0d34[_0x46f44e];return _0x5dd889;};'use strict';function ZendeskAccount(_0x3545e9){this['id']=_0x3545e9['id']||0x0;this[_0x40d3('0x0')]=_0x3545e9[_0x40d3('0x0')]||'';this[_0x40d3('0x1')]=_0x3545e9['username']||'';this[_0x40d3('0x2')]=_0x3545e9['password']||'';this['token']=_0x3545e9[_0x40d3('0x3')]||'';this[_0x40d3('0x4')]=_0x3545e9[_0x40d3('0x4')]||'';this[_0x40d3('0x5')]=_0x3545e9[_0x40d3('0x5')]||'';this['type']=_0x3545e9['type']||_0x40d3('0x6');this[_0x40d3('0x7')]=_0x3545e9['serverUrl']||'';this['Configurations']=_0x3545e9[_0x40d3('0x8')]||{};}module[_0x40d3('0x9')]=ZendeskAccount;
\ No newline at end of file
+var _0x2a5c=['token','remoteUri','authType','type','integrationTab','serverUrl','Configurations','exports','name','username','password'];(function(_0x382920,_0x23b099){var _0x2cf1eb=function(_0x2ec02d){while(--_0x2ec02d){_0x382920['push'](_0x382920['shift']());}};_0x2cf1eb(++_0x23b099);}(_0x2a5c,0x194));var _0xc2a5=function(_0x7439ec,_0x275d3a){_0x7439ec=_0x7439ec-0x0;var _0x1f0616=_0x2a5c[_0x7439ec];return _0x1f0616;};'use strict';function ZendeskAccount(_0x133674){this['id']=_0x133674['id']||0x0;this[_0xc2a5('0x0')]=_0x133674[_0xc2a5('0x0')]||'';this[_0xc2a5('0x1')]=_0x133674[_0xc2a5('0x1')]||'';this[_0xc2a5('0x2')]=_0x133674[_0xc2a5('0x2')]||'';this[_0xc2a5('0x3')]=_0x133674[_0xc2a5('0x3')]||'';this[_0xc2a5('0x4')]=_0x133674['remoteUri']||'';this['authType']=_0x133674[_0xc2a5('0x5')]||'';this[_0xc2a5('0x6')]=_0x133674['type']||_0xc2a5('0x7');this[_0xc2a5('0x8')]=_0x133674[_0xc2a5('0x8')]||'';this[_0xc2a5('0x9')]=_0x133674['Configurations']||{};}module[_0xc2a5('0xa')]=ZendeskAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdcb4=['description','host','zone','clientId','clientSecret','serverUrl','code','refreshToken','Configurations','exports','name'];(function(_0x3b594b,_0x5835c3){var _0x1ea5f8=function(_0x191b3e){while(--_0x191b3e){_0x3b594b['push'](_0x3b594b['shift']());}};_0x1ea5f8(++_0x5835c3);}(_0xdcb4,0x133));var _0x4dcb=function(_0x2ed6b3,_0x407736){_0x2ed6b3=_0x2ed6b3-0x0;var _0x560aad=_0xdcb4[_0x2ed6b3];return _0x560aad;};'use strict';function ZohoAccount(_0xfef10d){this['id']=_0xfef10d['id']||0x0;this[_0x4dcb('0x0')]=_0xfef10d[_0x4dcb('0x0')]||'';this[_0x4dcb('0x1')]=_0xfef10d[_0x4dcb('0x1')]||'';this[_0x4dcb('0x2')]=_0xfef10d[_0x4dcb('0x2')]||'';this[_0x4dcb('0x3')]=_0xfef10d[_0x4dcb('0x3')]||'';this['clientId']=_0xfef10d[_0x4dcb('0x4')]||'';this[_0x4dcb('0x5')]=_0xfef10d['clientSecret']||'';this[_0x4dcb('0x6')]=_0xfef10d[_0x4dcb('0x6')]||'';this[_0x4dcb('0x7')]=_0xfef10d['code']||'';this[_0x4dcb('0x8')]=_0xfef10d[_0x4dcb('0x8')]||'';this['Configurations']=_0xfef10d[_0x4dcb('0x9')]||{};}module[_0x4dcb('0xa')]=ZohoAccount;
\ No newline at end of file
+var _0xfb41=['Configurations','exports','description','host','zone','clientId','clientSecret','code'];(function(_0x4db97f,_0x3f9a6a){var _0x2dd868=function(_0x7c8397){while(--_0x7c8397){_0x4db97f['push'](_0x4db97f['shift']());}};_0x2dd868(++_0x3f9a6a);}(_0xfb41,0x152));var _0x1fb4=function(_0x180cd0,_0x386c6e){_0x180cd0=_0x180cd0-0x0;var _0x49fc32=_0xfb41[_0x180cd0];return _0x49fc32;};'use strict';function ZohoAccount(_0x346551){this['id']=_0x346551['id']||0x0;this['name']=_0x346551['name']||'';this[_0x1fb4('0x0')]=_0x346551[_0x1fb4('0x0')]||'';this[_0x1fb4('0x1')]=_0x346551[_0x1fb4('0x1')]||'';this[_0x1fb4('0x2')]=_0x346551[_0x1fb4('0x2')]||'';this[_0x1fb4('0x3')]=_0x346551['clientId']||'';this[_0x1fb4('0x4')]=_0x346551[_0x1fb4('0x4')]||'';this['serverUrl']=_0x346551['serverUrl']||'';this[_0x1fb4('0x5')]=_0x346551[_0x1fb4('0x5')]||'';this['refreshToken']=_0x346551['refreshToken']||'';this[_0x1fb4('0x6')]=_0x346551[_0x1fb4('0x6')]||{};}module[_0x1fb4('0x7')]=ZohoAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4d72=['VoiceQueueId','originatecalleridnum','originatecalleridname','getCaller','format','\x22%s\x22\x20<%s>','number','exports','lodash','moment','string','isNil','uniqueid','idContact','queue','name','type','dialAnswer','membername','Agent','SIP/%s','calleridname','Contact','firstName','lastName','active','calleridnum','scheduledat','countbusyretry','countcongestionretry','countnoanswerretry','countdropretry','countabandonedretry','countmachineretry','countnosuchnumberretry','countagentrejectretry','callbackuniqueid','callbackat','recallme','ContactId','ListId','UserId'];(function(_0x4565bf,_0x5ad9d6){var _0x5610ba=function(_0x170988){while(--_0x170988){_0x4565bf['push'](_0x4565bf['shift']());}};_0x5610ba(++_0x5ad9d6);}(_0x4d72,0x12e));var _0x24d7=function(_0x9febdb,_0xde1b2){_0x9febdb=_0x9febdb-0x0;var _0x2603c1=_0x4d72[_0x9febdb];return _0x2603c1;};'use strict';var util=require('util');var _=require(_0x24d7('0x0'));var moment=require(_0x24d7('0x1'));function checkNameSurname(_0x4c204a,_0x408ab9,_0x493173){var _0x1aedcf='';if(!_['isNil'](_0x408ab9)&&_0x24d7('0x2')===typeof _0x408ab9){_0x1aedcf+=_0x408ab9;}if(!_[_0x24d7('0x3')](_0x493173)&&_0x24d7('0x2')===typeof _0x493173){_0x1aedcf+='\x20'+_0x493173;}if(_0x1aedcf!==''){return _0x1aedcf;}return _0x4c204a;}function Action(_0x419cec,_0x30c05b,_0xb44f94,_0x7816dc,_0xef6ca5){this[_0x24d7('0x4')]=_0xb44f94||undefined;this[_0x24d7('0x5')]=_0x419cec['id'];this[_0x24d7('0x6')]=_0x30c05b[_0x24d7('0x7')];this[_0x24d7('0x8')]=_0x30c05b[_0x24d7('0x8')];this['campaigntype']=_0x24d7('0x6');this[_0x24d7('0x9')]=![];this[_0x24d7('0xa')]=_[_0x24d7('0x3')](_0x419cec[_0x24d7('0xb')])?undefined:_0x419cec[_0x24d7('0xb')][_0x24d7('0x7')];this['channelAgent']=this[_0x24d7('0xa')]?util['format'](_0x24d7('0xc'),this[_0x24d7('0xa')]):_0x7816dc||undefined;this[_0x24d7('0xd')]=checkNameSurname(_0x419cec[_0x24d7('0xe')]['phone'],_0x419cec['Contact'][_0x24d7('0xf')],_0x419cec[_0x24d7('0xe')][_0x24d7('0x10')]);this[_0x24d7('0x11')]=_0x419cec['active']||![];this[_0x24d7('0x12')]=_0x419cec[_0x24d7('0xe')]['phone'];this[_0x24d7('0x13')]=_0x419cec[_0x24d7('0x13')];this[_0x24d7('0x14')]=_0x419cec[_0x24d7('0x14')]||0x0;this[_0x24d7('0x15')]=_0x419cec[_0x24d7('0x15')]||0x0;this[_0x24d7('0x16')]=_0x419cec[_0x24d7('0x16')]||0x0;this['countglobal']=(_0x419cec[_0x24d7('0x14')]||0x0)+(_0x419cec['countcongestionretry']||0x0)+(_0x419cec[_0x24d7('0x16')]||0x0)+(_0x419cec['countnosuchnumberretry']||0x0)+(_0x419cec[_0x24d7('0x17')]||0x0)+(_0x419cec[_0x24d7('0x18')]||0x0)+(_0x419cec[_0x24d7('0x19')]||0x0)+(_0x419cec['countagentrejectretry']||0x0);this[_0x24d7('0x1a')]=_0x419cec[_0x24d7('0x1a')]||0x0;this[_0x24d7('0x17')]=_0x419cec['countdropretry']||0x0;this[_0x24d7('0x18')]=_0x419cec[_0x24d7('0x18')]||0x0;this[_0x24d7('0x19')]=_0x419cec['countmachineretry']||0x0;this[_0x24d7('0x1b')]=_0x419cec[_0x24d7('0x1b')]||0x0;this['callback']=_0x419cec['callback'];this[_0x24d7('0x1c')]=_0x419cec[_0x24d7('0x1c')];this[_0x24d7('0x1d')]=_0x419cec[_0x24d7('0x1d')];this[_0x24d7('0x1e')]=_0x419cec['recallme'];this[_0x24d7('0x1f')]=_0x419cec[_0x24d7('0x1f')];this[_0x24d7('0x20')]=_0x419cec['ListId'];this[_0x24d7('0x21')]=_['isNil'](_0x419cec['Agent'])?_0x419cec[_0x24d7('0x21')]:_0x419cec[_0x24d7('0xb')]['id'];this['VoiceQueueId']=_0x419cec[_0x24d7('0x22')];this[_0x24d7('0x23')]='';this[_0x24d7('0x24')]='';}Action['prototype'][_0x24d7('0x25')]=function(){return util[_0x24d7('0x26')](_0x24d7('0x27'),this['calleridname'],this[_0x24d7('0x28')]);};module[_0x24d7('0x29')]=Action;
\ No newline at end of file
+var _0x4caa=['calleridname','Contact','phone','active','calleridnum','scheduledat','countbusyretry','countcongestionretry','countnoanswerretry','countdropretry','countabandonedretry','countmachineretry','countnosuchnumberretry','countagentrejectretry','callback','callbackuniqueid','callbackat','recallme','ContactId','ListId','UserId','VoiceQueueId','originatecalleridnum','prototype','getCaller','format','\x22%s\x22\x20<%s>','util','moment','isNil','string','uniqueid','queue','type','campaigntype','dialAnswer','membername','Agent','name','channelAgent'];(function(_0x1ac035,_0x27095b){var _0x40fbeb=function(_0x55816d){while(--_0x55816d){_0x1ac035['push'](_0x1ac035['shift']());}};_0x40fbeb(++_0x27095b);}(_0x4caa,0x133));var _0xa4ca=function(_0x1fde53,_0x4e8b6c){_0x1fde53=_0x1fde53-0x0;var _0x987cce=_0x4caa[_0x1fde53];return _0x987cce;};'use strict';var util=require(_0xa4ca('0x0'));var _=require('lodash');var moment=require(_0xa4ca('0x1'));function checkNameSurname(_0x2aa6ac,_0x248a35,_0x20959b){var _0x53c65b='';if(!_[_0xa4ca('0x2')](_0x248a35)&&_0xa4ca('0x3')===typeof _0x248a35){_0x53c65b+=_0x248a35;}if(!_[_0xa4ca('0x2')](_0x20959b)&&'string'===typeof _0x20959b){_0x53c65b+='\x20'+_0x20959b;}if(_0x53c65b!==''){return _0x53c65b;}return _0x2aa6ac;}function Action(_0x207146,_0x4b195f,_0x13058c,_0x299be7,_0x455247){this[_0xa4ca('0x4')]=_0x13058c||undefined;this['idContact']=_0x207146['id'];this[_0xa4ca('0x5')]=_0x4b195f['name'];this[_0xa4ca('0x6')]=_0x4b195f[_0xa4ca('0x6')];this[_0xa4ca('0x7')]=_0xa4ca('0x5');this[_0xa4ca('0x8')]=![];this[_0xa4ca('0x9')]=_['isNil'](_0x207146['Agent'])?undefined:_0x207146[_0xa4ca('0xa')][_0xa4ca('0xb')];this[_0xa4ca('0xc')]=this[_0xa4ca('0x9')]?util['format']('SIP/%s',this[_0xa4ca('0x9')]):_0x299be7||undefined;this[_0xa4ca('0xd')]=checkNameSurname(_0x207146[_0xa4ca('0xe')][_0xa4ca('0xf')],_0x207146[_0xa4ca('0xe')]['firstName'],_0x207146[_0xa4ca('0xe')]['lastName']);this[_0xa4ca('0x10')]=_0x207146[_0xa4ca('0x10')]||![];this[_0xa4ca('0x11')]=_0x207146[_0xa4ca('0xe')][_0xa4ca('0xf')];this[_0xa4ca('0x12')]=_0x207146[_0xa4ca('0x12')];this[_0xa4ca('0x13')]=_0x207146[_0xa4ca('0x13')]||0x0;this[_0xa4ca('0x14')]=_0x207146[_0xa4ca('0x14')]||0x0;this[_0xa4ca('0x15')]=_0x207146[_0xa4ca('0x15')]||0x0;this['countglobal']=(_0x207146[_0xa4ca('0x13')]||0x0)+(_0x207146[_0xa4ca('0x14')]||0x0)+(_0x207146[_0xa4ca('0x15')]||0x0)+(_0x207146['countnosuchnumberretry']||0x0)+(_0x207146[_0xa4ca('0x16')]||0x0)+(_0x207146[_0xa4ca('0x17')]||0x0)+(_0x207146[_0xa4ca('0x18')]||0x0)+(_0x207146['countagentrejectretry']||0x0);this[_0xa4ca('0x19')]=_0x207146[_0xa4ca('0x19')]||0x0;this[_0xa4ca('0x16')]=_0x207146[_0xa4ca('0x16')]||0x0;this[_0xa4ca('0x17')]=_0x207146[_0xa4ca('0x17')]||0x0;this[_0xa4ca('0x18')]=_0x207146['countmachineretry']||0x0;this[_0xa4ca('0x1a')]=_0x207146[_0xa4ca('0x1a')]||0x0;this['callback']=_0x207146[_0xa4ca('0x1b')];this[_0xa4ca('0x1c')]=_0x207146[_0xa4ca('0x1c')];this['callbackat']=_0x207146[_0xa4ca('0x1d')];this[_0xa4ca('0x1e')]=_0x207146[_0xa4ca('0x1e')];this[_0xa4ca('0x1f')]=_0x207146[_0xa4ca('0x1f')];this[_0xa4ca('0x20')]=_0x207146[_0xa4ca('0x20')];this[_0xa4ca('0x21')]=_[_0xa4ca('0x2')](_0x207146['Agent'])?_0x207146[_0xa4ca('0x21')]:_0x207146[_0xa4ca('0xa')]['id'];this[_0xa4ca('0x22')]=_0x207146[_0xa4ca('0x22')];this[_0xa4ca('0x23')]='';this['originatecalleridname']='';}Action[_0xa4ca('0x24')][_0xa4ca('0x25')]=function(){return util[_0xa4ca('0x26')](_0xa4ca('0x27'),this[_0xa4ca('0xd')],this['number']);};module['exports']=Action;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd13f=['predictiveIntervalHitRate','predictiveIntervalPauses','predictiveIntervalAvailable','message','originated','erlangCalls','erlangCallToSecond','erlangAbandonmentRate','erlangBusyFactor','startPredictive','startProgressive','Trunk','active','callerid','Interval','md5','voice_queue:save','info','[DEBUG]\x20Emit\x20voice_queue_channel:remove\x20event','stringify','format','voice:queue:%s','voice_queue_channel:remove','voice_queue_presence:remove','sendMessageOneNotActive','available','[CampaignPreview]\x20Campaign\x20Queue:\x20','\x20is\x20not\x20active','logger','\x20is\x20disactive','prototype','syncCampaigns','hasOwnProperty','preview','booked','clearZombieChannels','setMessage','recallMe','clearZombieChannel','sequence','isNil','actions','[clearZombieChannels][talking]','Queue','originated:\x20','queue','pTalking:\x20','dialAnswer','pick','contactId','UserId','VoiceQueueId','ListId','Action','status','channel','catch','updateOriginated','decrementTalkink','[clearZombieChannel]','[Dialer][checkChannel][pTalking][Preview]','loggerError','[Dialer][checkChannel][Preview]','getContactRecallMe','agents','then','length','getDiff','scheduledat','dialRecallMeTimeout','voicePause','logger2','disableContact','starttime','YYYY-MM-DD\x20HH:mm:ss','logCustomer','RecallInQueue','rescheduleContactInQueue','createBody','[HistoryDialRecallInQueue][historyCatch]','RecallFailedTimeout','createCustomerHistory','[HistoryRecallClose]','[getContactRecallMe]','IsNotLoggedIn','loggedIn','AGENTS_NOT_LOGGED','isActive','NOT_ACTIVE','isTrunkReachable','TrunkBackup','ACTIVE','callProgressDetectingCustomer','outboundNoSuchCallsDay','totalGlobal','NoSuchNumber','buildObj','nosuchnumber','[callProgressDetectingCustomer][logNoSuch]','dialGlobalMaxRetry','cloneAction','Global','createCustomerFinal','[callProgressDetectingCustomer][logNoSuchGlobal]','countnosuchnumberretry','dialNoSuchNumberMaxRetry','dialNoSuchNumberRetryFrequency','linkedid','ANSWER','responsetime','answertime','[syncHangup][talking][increment]','uniqueid','\x20Queue','custom:agentconnect','connect','acw','custom:agentConnectPreview','buildAcw','custom:agentcomplete','complete','outboundAnswerCallsDay','total','[16]','countglobal','Answer','[callProgressDetectingCustomer][logAnswer]','[callProgressDetectingCustomer][logAnswerGlobal]','crateCustomerReportQueue','talktime','[syncHangup][talking][decrement]','BUSY','busy','[callProgressDetectingCustomer][logBusy]','rescheduleContact','scheduledAt','countbusyretry','unlockAgent','activeContact','NOANSWER','countnoanswerretry','custom:agentnoanswer','noanswer','[callProgressDetectingCustomer][logNoAnswer]','[callProgressDetectingCustomer][logNoAnswerGlobal]','dialNoAnswerRetryFrequency','CONGESTION','countcongestionretry','Congestion','custom:agentcongestion','congestion','[callProgressDetectingCustomer][logCongestion]','[callProgressDetectingCustomer][logCongestionGlobal]','dialCongestionMaxRetry','dialBusyRetryFrequency','CANCEL','countagentrejectretry','AgentReject','custom:agentreject','[syncHangupRequest][logAgentReject]','dialAgentRejectMaxRetry','[callProgressDetectingCustomer][logAgentReject]','ABANDONED','Abandoned','[callProgressDetectingCustomer][logAbandoned]','countabandonedetry','dialAbandonedMaxRety','countabandonedretry','countmachineretry','cause-txt','dialstatus','custom:amd','amd','[callProgressDetectingCustomer][hangupInAMD]','[callProgressDetectingCustomer][machine]','[callProgressDetectingCustomer][logUnknownGlobal]','[callProgressDetectingCustomer]','[originated][decrement][callProgressDetectingCustomer]','callProgressDetectingAgent','isUndefined','object','reason','createAgentHistory','[callProgressDetectingAgent][logNoSuch]','NoAnswer','[callProgressDetectingAgent][logNoAnswer]','logAgent','Busy','[callProgressDetectingAgent][logBusy]','[callProgressDetectingAgent][logAnswerAGI]','[callProgressDetectingAgent][logCongestion]','[originated][decrement][callProgressDetectingAgent]','checkInBlack','Contact','phone','lookAgent','isEmpty','[Preview][execCall][success]','\x20IdHopper:\x20','idContact','Calling','Call\x20failed','logBlacklist','createHistory','[Blacklist][error]','SIP/%s','reachable','unlock','unlockContact','getContactPreview','recallme','isValid','checkIsBlackList','Contact.phone','Call\x20unsuccessful','validateContact','Agent','[Preview][validateContact][Empty\x20Contact]','Empty\x20Contact','[Preview][validateContact][Empty\x20Campaign]','Empty\x20Campaign','campaign\x20Name:\x20','\x20Trunk\x20is\x20not\x20active','[Preview][validateContact][Trunk\x20not\x20work]','\x20Trunk\x20Backup\x20is\x20not\x20active','Trunk\x20not\x20work','[Preview][validateContact][Campaign\x20Active]','\x20Not\x20Active','Is\x20Valid','execCall','SIP/%s/%s%s','trim','dialCutDigit','substring','getCallerId','getCallerIdRandom','dialRandomLastDigitCallerIdNumber','originatecalleridname','originatecalleridnum','extractCalleridNumber','addVariables','merge','toLowerVariables','variablesAction','channelAgent','calleridnum','user:%s','OriginateError','[originateFailure][logOriginateFailure]','actionid','logLookAgent','clone','response','custom:agentringnoanswer','rejected','[syncHangup][talking]','cause','[syncHangup][talking][cause]','statedesc','dialQueueProject','channelstate','transfer','[syncHangup][talking][transfer]','destlinkedid','destuniqueid','addVariable','variables','keys','variable','value','[syncVarSet][Preview]','inspect','transfererlinkedid','exports','util','uuid','moment','ioredis','../../../config/environment','../../../config/logger','../ami','./util/util','redis','defaults','localhost','socket.io-emitter','enqueue','tail','finally','campaignsPreview','voiceQueues','trunks','clockClearZombieChannels','syncOriginateResponse','bind','syncHangup','hanguprequest','syncHangupRequest','syncDialEnd','newexten','syncNewExten','varset','syncVarSet','attendedtransfer','syncAttendedTransfer','blindtransfer','syncBlindTransfer','loopCampaigns','emit','type','outbound','name','strategy','answered','pTalking','sumBillable','sumDuration','talking','abandoned','waiting','loggedInDb','dialActive','dialMethod','dialOriginateCallerIdName','dialOriginateCallerIdNumber','dialOriginateTimeout','dialPrefix','outboundAnswerAgiCallsDay','outboundBlacklistCallsDay','outboundBusyCallsDay','outboundCongestionCallsDay','outboundDropCallsDayTimeout','outboundNoAnswerCallsDay','outboundOriginateFailureCallsDay','outboundReCallsDay','outboundRejectCallsDay','outboundUnknownCallsDay','predictiveIntervalAnsweredCalls','predictiveIntervalAvgTalktime','predictiveIntervalDroppedCallsCallersExit','predictiveIntervalDroppedCallsTimeout','predictiveIntervalErlangCalls','predictiveIntervalErlangCallsDroppedCalls'];(function(_0x90e688,_0x24c789){var _0x5aa5c5=function(_0x459f40){while(--_0x459f40){_0x90e688['push'](_0x90e688['shift']());}};_0x5aa5c5(++_0x24c789);}(_0xd13f,0x112));var _0xfd13=function(_0x1a1ef7,_0x45c008){_0x1a1ef7=_0x1a1ef7-0x0;var _0x21a9b4=_0xd13f[_0x1a1ef7];return _0x21a9b4;};'use strict';var util=require(_0xfd13('0x0'));var _=require('lodash');var BPromise=require('bluebird');var uuid=require(_0xfd13('0x1'));var moment=require(_0xfd13('0x2'));var md5=require('md5');var Redis=require(_0xfd13('0x3'));var config=require(_0xfd13('0x4'));var logger=require(_0xfd13('0x5'))('preview');var loggerAction=require('../../../config/logger')('actionPreview');var ami=require(_0xfd13('0x6'));var rpcDb=require('./rpcDb');var Action=require('./action');var ut=require(_0xfd13('0x7'));config[_0xfd13('0x8')]=_[_0xfd13('0x9')](config['redis'],{'host':_0xfd13('0xa'),'port':0x18eb});var io=require(_0xfd13('0xb'))(new Redis(config[_0xfd13('0x8')]));var Sequence=function(){};Sequence['prototype'][_0xfd13('0xc')]=function(_0x140235){this[_0xfd13('0xd')]=this['tail']?this[_0xfd13('0xd')][_0xfd13('0xe')](_0x140235):_0x140235();};function Preview(_0x511a27){this['sequence']=new Sequence();this[_0xfd13('0xf')]=_0x511a27[_0xfd13('0x10')];this['trunks']=_0x511a27[_0xfd13('0x11')];this['actions']={};this['agents']=_0x511a27['agents'];this[_0xfd13('0x12')]=0x0;ami['on']('originateresponse',this[_0xfd13('0x13')][_0xfd13('0x14')](this));ami['on']('hangup',this[_0xfd13('0x15')][_0xfd13('0x14')](this));ami['on'](_0xfd13('0x16'),this[_0xfd13('0x17')][_0xfd13('0x14')](this));ami['on']('dialend',this[_0xfd13('0x18')]['bind'](this));ami['on'](_0xfd13('0x19'),this[_0xfd13('0x1a')][_0xfd13('0x14')](this));ami['on'](_0xfd13('0x1b'),this[_0xfd13('0x1c')][_0xfd13('0x14')](this));ami['on'](_0xfd13('0x1d'),this[_0xfd13('0x1e')][_0xfd13('0x14')](this));ami['on'](_0xfd13('0x1f'),this[_0xfd13('0x20')][_0xfd13('0x14')](this));this[_0xfd13('0x21')](this[_0xfd13('0xf')]);}function emit(_0x30e591,_0xb5d678,_0x26bcd6){io['to'](_0x30e591)[_0xfd13('0x22')](_0xb5d678,_0x26bcd6);}function emitCampaignPreview(_0x205a0d){if(_0x205a0d[_0xfd13('0x23')]===_0xfd13('0x24')){var _0xb7ad9b={'id':_0x205a0d['id'],'name':_0x205a0d[_0xfd13('0x25')],'strategy':_0x205a0d[_0xfd13('0x26')],'answered':_0x205a0d[_0xfd13('0x27')],'available':_0x205a0d['available'],'loggedIn':_0x205a0d['loggedIn'],'pTalking':_0x205a0d[_0xfd13('0x28')],'sumBillable':_0x205a0d[_0xfd13('0x29')],'sumDuration':_0x205a0d[_0xfd13('0x2a')],'sumHoldTime':_0x205a0d['sumHoldTime']||0x0,'talking':_0x205a0d[_0xfd13('0x2b')],'total':_0x205a0d['total'],'type':_0x205a0d[_0xfd13('0x23')],'unmanaged':_0x205a0d['unmanaged'],'abandoned':_0x205a0d[_0xfd13('0x2c')],'waiting':_0x205a0d[_0xfd13('0x2d')],'loggedInDb':_0x205a0d[_0xfd13('0x2e')],'dialActive':_0x205a0d[_0xfd13('0x2f')],'dialMethod':_0x205a0d[_0xfd13('0x30')],'dialOriginateCallerIdName':_0x205a0d[_0xfd13('0x31')],'dialOriginateCallerIdNumber':_0x205a0d[_0xfd13('0x32')],'dialOriginateTimeout':_0x205a0d[_0xfd13('0x33')],'dialPrefix':_0x205a0d[_0xfd13('0x34')],'outboundAnswerAgiCallsDay':_0x205a0d[_0xfd13('0x35')],'outboundAnswerCallsDay':_0x205a0d['outboundAnswerCallsDay'],'outboundBlacklistCallsDay':_0x205a0d[_0xfd13('0x36')],'outboundBusyCallsDay':_0x205a0d[_0xfd13('0x37')],'outboundCongestionCallsDay':_0x205a0d[_0xfd13('0x38')],'outboundDropCallsDayACS':_0x205a0d['outboundDropCallsDayACS'],'outboundDropCallsDayCallersExit':_0x205a0d['outboundDropCallsDayCallersExit'],'outboundDropCallsDayTimeout':_0x205a0d[_0xfd13('0x39')],'outboundNoAnswerCallsDay':_0x205a0d[_0xfd13('0x3a')],'outboundNoSuchCallsDay':_0x205a0d['outboundNoSuchCallsDay'],'outboundOriginateFailureCallsDay':_0x205a0d[_0xfd13('0x3b')],'outboundReCallsDay':_0x205a0d[_0xfd13('0x3c')],'outboundRejectCallsDay':_0x205a0d[_0xfd13('0x3d')],'outboundUnknownCallsDay':_0x205a0d[_0xfd13('0x3e')],'outboundAbandonedCallsDay':_0x205a0d['outboundAbandonedCallsDay'],'predictiveIntervalAnsweredCalls':_0x205a0d[_0xfd13('0x3f')],'predictiveIntervalAvgHoldtime':_0x205a0d['predictiveIntervalAvgHoldtime'],'predictiveIntervalAvgTalktime':_0x205a0d[_0xfd13('0x40')],'predictiveIntervalDroppedCallsCallersExit':_0x205a0d[_0xfd13('0x41')],'predictiveIntervalDroppedCallsTimeout':_0x205a0d[_0xfd13('0x42')],'predictiveIntervalErlangCalls':_0x205a0d[_0xfd13('0x43')],'predictiveIntervalErlangCallsDroppedCalls':_0x205a0d[_0xfd13('0x44')],'predictiveIntervalHitRate':_0x205a0d[_0xfd13('0x45')],'predictiveIntervalMultiplicativeFactor':_0x205a0d['predictiveIntervalMultiplicativeFactor'],'predictiveIntervalPauses':_0x205a0d[_0xfd13('0x46')],'predictiveIntervalAvailable':_0x205a0d[_0xfd13('0x47')],'predictiveIntervalTotalCalls':_0x205a0d['predictiveIntervalTotalCalls'],'message':_0x205a0d[_0xfd13('0x48')],'originated':_0x205a0d[_0xfd13('0x49')],'erlangCalls':_0x205a0d[_0xfd13('0x4a')],'erlangCallToSecond':_0x205a0d[_0xfd13('0x4b')],'erlangAbandonmentRate':_0x205a0d[_0xfd13('0x4c')],'erlangBusyFactor':_0x205a0d[_0xfd13('0x4d')],'startPredictive':_0x205a0d[_0xfd13('0x4e')],'startProgressive':_0x205a0d[_0xfd13('0x4f')]};if(_0x205a0d[_0xfd13('0x50')]){_0xb7ad9b[_0xfd13('0x50')]={'id':_0x205a0d[_0xfd13('0x50')]['id'],'name':_0x205a0d[_0xfd13('0x50')][_0xfd13('0x25')],'active':_0x205a0d[_0xfd13('0x50')][_0xfd13('0x51')],'callerid':_0x205a0d[_0xfd13('0x50')][_0xfd13('0x52')]};}if(_0x205a0d['Interval']){_0xb7ad9b['Interval']={'id':_0x205a0d[_0xfd13('0x53')]['id'],'name':_0x205a0d['Interval'][_0xfd13('0x25')]};}var _0x12b13f=md5(JSON['stringify'](_0xb7ad9b));if(_0x205a0d[_0xfd13('0x54')]!==_0x12b13f){_0x205a0d[_0xfd13('0x54')]=_0x12b13f;emit(util['format']('voice:queue:%s',_0xb7ad9b['name']),_0xfd13('0x55'),_0xb7ad9b);}}}function emitVoiceQueueChannelRemove(_0x46e324){logger[_0xfd13('0x56')](_0xfd13('0x57'),JSON[_0xfd13('0x58')](_0x46e324));emit(util[_0xfd13('0x59')](_0xfd13('0x5a'),_0x46e324['name']),_0xfd13('0x5b'),_0x46e324);io[_0xfd13('0x22')](_0xfd13('0x5c'),_0x46e324);}function notSendMessagesQueue(_0x3a2c5a){if(_0x3a2c5a[_0xfd13('0x5d')]){if(_0x3a2c5a[_0xfd13('0x49')]===0x0&&_0x3a2c5a[_0xfd13('0x28')]===0x0){_0x3a2c5a['sendMessageOneNotActive']=![];_0x3a2c5a[_0xfd13('0x5e')]=0x0;_0x3a2c5a['paused']=0x0;_0x3a2c5a[_0xfd13('0x48')]='NOT_ACTIVE';ut['logger'](_0xfd13('0x5f'),_0x3a2c5a[_0xfd13('0x25')]+_0xfd13('0x60'));}else{_0x3a2c5a[_0xfd13('0x48')]='IS_DISACTIVED';ut[_0xfd13('0x61')]('[CampaignPreview]\x20Campaign\x20Queue:\x20',_0x3a2c5a[_0xfd13('0x25')]+_0xfd13('0x62'));}emitCampaignPreview(_0x3a2c5a);}}Preview[_0xfd13('0x63')]['loopCampaigns']=function(){var _0x11e4f8=this;setInterval(function(){_0x11e4f8[_0xfd13('0x64')]();},0x7cf);};Preview[_0xfd13('0x63')][_0xfd13('0x64')]=function(){var _0x1265f3=this[_0xfd13('0xf')];this[_0xfd13('0x12')]+=0x1;for(var _0x47caf4 in _0x1265f3){if(_0x1265f3[_0xfd13('0x65')](_0x47caf4)&&(_0x1265f3[_0x47caf4][_0xfd13('0x30')]===_0xfd13('0x66')||_0x1265f3[_0x47caf4][_0xfd13('0x30')]===_0xfd13('0x67'))&&_0x1265f3[_0x47caf4][_0xfd13('0x23')]===_0xfd13('0x24')){if(this['clockClearZombieChannels']>0x7){this[_0xfd13('0x12')]=0x0;this[_0xfd13('0x68')]();}}if(_0x1265f3['hasOwnProperty'](_0x47caf4)&&_0x1265f3[_0x47caf4][_0xfd13('0x30')]===_0xfd13('0x66')&&_0x1265f3[_0x47caf4][_0xfd13('0x23')]===_0xfd13('0x24')){if(_0x1265f3[_0x47caf4][_0xfd13('0x2f')]){this[_0xfd13('0x69')](_0x1265f3[_0x47caf4]);this[_0xfd13('0x6a')](_0x1265f3[_0x47caf4]);}else{notSendMessagesQueue(_0x1265f3[_0x47caf4]);}}}};Preview[_0xfd13('0x63')][_0xfd13('0x6b')]=function(_0x1e9a79){var _0x24adac=this;this[_0xfd13('0x6c')]['enqueue'](function(){if(!_[_0xfd13('0x6d')](_0x24adac[_0xfd13('0x6e')][_0x1e9a79])){loggerAction[_0xfd13('0x56')](_0xfd13('0x6f'),_0x1e9a79,_0xfd13('0x70'),_0x24adac[_0xfd13('0x6e')][_0x1e9a79]['queue'],_0xfd13('0x71'),JSON['stringify'](_0x24adac[_0xfd13('0xf')][_0x24adac[_0xfd13('0x6e')][_0x1e9a79][_0xfd13('0x72')]][_0xfd13('0x49')]),_0xfd13('0x73'),JSON[_0xfd13('0x58')](_0x24adac[_0xfd13('0xf')][_0x24adac[_0xfd13('0x6e')][_0x1e9a79][_0xfd13('0x72')]][_0xfd13('0x28')]),JSON[_0xfd13('0x58')](_0x24adac[_0xfd13('0x6e')][_0x1e9a79][_0xfd13('0x74')]),JSON[_0xfd13('0x58')](_[_0xfd13('0x75')](_0x24adac[_0xfd13('0x6e')][_0x1e9a79],[_0xfd13('0x76'),_0xfd13('0x77'),_0xfd13('0x78'),_0xfd13('0x79')])));return ami[_0xfd13('0x7a')]({'action':_0xfd13('0x7b'),'channel':_0x24adac[_0xfd13('0x6e')][_0x1e9a79][_0xfd13('0x7c')]})[_0xfd13('0x7d')](function(_0x510d1f){if(_0x510d1f[_0xfd13('0x48')]==='No\x20such\x20channel'){setTimeout(function(){if(_0x24adac[_0xfd13('0x6e')][_0x1e9a79]){ut[_0xfd13('0x7e')](_0x24adac[_0xfd13('0xf')][_0x24adac[_0xfd13('0x6e')][_0x1e9a79][_0xfd13('0x72')]],'[clearZombieChannel]');if(_0x24adac['actions'][_0x1e9a79][_0xfd13('0x74')]===!![]){ut[_0xfd13('0x7f')](_0x24adac[_0xfd13('0xf')][_0x24adac[_0xfd13('0x6e')][_0x1e9a79]['queue']],_0xfd13('0x80'));ut['loggerError'](_0xfd13('0x81')+_0x1e9a79,_0x24adac[_0xfd13('0x6e')][_0x1e9a79][_0xfd13('0x72')]);}ut[_0xfd13('0x82')](_0xfd13('0x83')+_0x1e9a79,_0x24adac[_0xfd13('0x6e')][_0x1e9a79][_0xfd13('0x72')]);delete _0x24adac[_0xfd13('0x6e')][_0x1e9a79];}},0x2328);}});}});};Preview[_0xfd13('0x63')][_0xfd13('0x68')]=function(){var _0x3af5d1=this;loggerAction[_0xfd13('0x56')]('[action]',_['size'](this[_0xfd13('0x6e')]));for(var _0x52acdb in this[_0xfd13('0x6e')]){if(_0x3af5d1[_0xfd13('0x6e')]['hasOwnProperty'](_0x52acdb)){_0x3af5d1[_0xfd13('0x6b')](_0x52acdb);}}};Preview[_0xfd13('0x63')][_0xfd13('0x6a')]=function(_0xd046c6){var _0x4a92c1=this;rpcDb[_0xfd13('0x84')](_0xd046c6['id'],ut['agentReadyId'](this[_0xfd13('0x85')]))[_0xfd13('0x86')](function(_0x139e64){if(!_[_0xfd13('0x6d')](_0x139e64)){for(var _0x84e757=0x0;_0x84e757<_0x139e64[_0xfd13('0x87')];_0x84e757+=0x1){if(ut[_0xfd13('0x88')](_0x139e64[_0x84e757][_0xfd13('0x89')])<_0xd046c6[_0xfd13('0x8a')]*0x3c){if(_0x139e64[_0x84e757]['Agent']&&!_0x139e64[_0x84e757]['Agent'][_0xfd13('0x8b')]){_0x4a92c1['run'](_0x139e64[_0x84e757]['id'])['then'](ut[_0xfd13('0x8c')]('[RecallMe]'))[_0xfd13('0x7d')](ut[_0xfd13('0x8c')]('[RecallMe]'));}else{rpcDb[_0xfd13('0x8d')](_0x139e64[_0x84e757]['id']);}}else{var _0x542889=new Action(_0x139e64[_0x84e757],_0xd046c6);_0x542889[_0xfd13('0x8e')]=moment()[_0xfd13('0x59')](_0xfd13('0x8f'));_0xd046c6[_0xfd13('0x3c')]+=0x1;ut[_0xfd13('0x90')](_0x542889,0x17,_0xfd13('0x91'));if(_0xd046c6['dialRecallInQueue']){rpcDb[_0xfd13('0x92')](ut[_0xfd13('0x93')](_0x139e64[_0x84e757]));rpcDb['createCustomerHistory'](_0x542889,_0xfd13('0x94'));}else{ut[_0xfd13('0x90')](_0x542889,0x16,_0xfd13('0x95'));rpcDb[_0xfd13('0x96')](_0x542889,'[HistoryRecallClose]');rpcDb['createCustomerFinal'](_0x542889,_0xfd13('0x97'));}}}}})[_0xfd13('0x7d')](ut[_0xfd13('0x8c')](_0xfd13('0x98')));};Preview['prototype'][_0xfd13('0x69')]=function(_0x3261dc){_0x3261dc['sendMessageOneNotActive']=!![];if(ut[_0xfd13('0x99')](_0x3261dc[_0xfd13('0x9a')])){_0x3261dc['message']=_0xfd13('0x9b');}else if(!ut[_0xfd13('0x9c')](_0x3261dc[_0xfd13('0x2f')])){_0x3261dc[_0xfd13('0x48')]=_0xfd13('0x9d');}else if(!this[_0xfd13('0x9e')](_0x3261dc['Trunk'])){if(!this[_0xfd13('0x9e')](_0x3261dc[_0xfd13('0x9f')])){_0x3261dc[_0xfd13('0x48')]='TRUNK_IS_NOT_REACHABLE';}else{_0x3261dc[_0xfd13('0x48')]=_0xfd13('0xa0');}}else{_0x3261dc[_0xfd13('0x48')]=_0xfd13('0xa0');}emitCampaignPreview(_0x3261dc);};Preview['prototype'][_0xfd13('0xa1')]=function(_0x1b2670,_0x44fc92,_0x96b4c0){var _0x5c0fc4=this;var _0x51db02=this[_0xfd13('0x6e')][_0x44fc92];var _0x46397=this['campaignsPreview'][_0x51db02[_0xfd13('0x72')]];var _0x4a35ee;if(_0x46397){switch(_0x96b4c0){case'1':_0x46397[_0xfd13('0xa2')]+=0x1;_0x51db02['countnosuchnumberretry']+=0x1;_0x51db02['countglobal']=ut[_0xfd13('0xa3')](_0x51db02);ut['logCustomer'](_0x51db02,0x0,_0xfd13('0xa4'));ami['emit']('custom:agentnosuchnumber',ut[_0xfd13('0xa5')](_0x51db02,_0xfd13('0xa6')));rpcDb[_0xfd13('0x96')](_0x51db02,_0xfd13('0xa7'));if(ut[_0xfd13('0xa3')](_0x51db02)>=_0x46397[_0xfd13('0xa8')]){_0x4a35ee=ut[_0xfd13('0xa9')](_0x51db02,0xf,_0xfd13('0xaa'));rpcDb[_0xfd13('0xab')](_0x4a35ee,_0xfd13('0xac'));}else{if(_0x51db02[_0xfd13('0xad')]>=_0x46397[_0xfd13('0xae')]){rpcDb[_0xfd13('0xab')](_0x51db02,_0xfd13('0xac'));}else{rpcDb['rescheduleContact'](ut['scheduledAt'](_0x51db02,_0xfd13('0xad'),_0x46397[_0xfd13('0xaf')]),_0x51db02['unlockAgent'],_0x51db02['activeContact']);}}delete this[_0xfd13('0x6e')][_0x1b2670[_0xfd13('0xb0')]];break;case _0xfd13('0xb1'):var _0x3326fc=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');_0x51db02[_0xfd13('0xb2')]=_0x3326fc;_0x51db02[_0xfd13('0xb3')]=_0x3326fc;_0x51db02['dialAnswer']=!![];_0x46397['pTalking']+=0x1;logger[_0xfd13('0x56')](_0xfd13('0xb4'),_0x51db02[_0xfd13('0xb5')],_0xfd13('0xb6'),_0x46397[_0xfd13('0x25')],'pTalking:\x20',_0x46397[_0xfd13('0x28')]);ami[_0xfd13('0x22')](_0xfd13('0xb7'),ut[_0xfd13('0xa5')](_0x51db02,_0xfd13('0xb8'),this[_0xfd13('0xf')][_0x51db02['queue']]));if(_0x46397[_0xfd13('0xb9')]){ami[_0xfd13('0x22')](_0xfd13('0xba'),ut[_0xfd13('0xbb')](_0x51db02));}break;case'16':ami['emit'](_0xfd13('0xbc'),ut['buildObj'](_0x51db02,_0xfd13('0xbd'),this[_0xfd13('0xf')][_0x51db02[_0xfd13('0x72')]]));emitVoiceQueueChannelRemove(ut[_0xfd13('0xa5')](_0x51db02,_0xfd13('0xbd')));_0x46397[_0xfd13('0xbe')]+=0x1;_0x46397[_0xfd13('0xbf')]+=0x1;_0x46397[_0xfd13('0x27')]+=0x1;ut['decrementTalkink'](_0x46397,_0xfd13('0xc0'));_0x51db02[_0xfd13('0xc1')]=ut[_0xfd13('0xa3')](_0x51db02);ut[_0xfd13('0x90')](_0x51db02,0x4,_0xfd13('0xc2'));rpcDb[_0xfd13('0x96')](_0x51db02,_0xfd13('0xc3'));rpcDb[_0xfd13('0xab')](_0x51db02,_0xfd13('0xc4'));rpcDb[_0xfd13('0xc5')](_0x51db02);_0x46397[_0xfd13('0x2a')]+=_0x51db02[_0xfd13('0xc6')];_0x46397[_0xfd13('0x29')]+=_0x51db02[_0xfd13('0xc6')];logger[_0xfd13('0x56')](_0xfd13('0xc7'),_0x51db02[_0xfd13('0xb5')],_0xfd13('0xb6'),_0x46397['name'],_0xfd13('0x73'),_0x46397[_0xfd13('0x28')]);delete this[_0xfd13('0x6e')][_0x1b2670[_0xfd13('0xb0')]];break;case _0xfd13('0xc8'):_0x46397['outboundBusyCallsDay']+=0x1;_0x51db02['countbusyretry']+=0x1;_0x51db02[_0xfd13('0xc1')]=ut[_0xfd13('0xa3')](_0x51db02);ut[_0xfd13('0x90')](_0x51db02,0x5,'Busy');ami[_0xfd13('0x22')]('custom:agentbusy',ut['buildObj'](_0x51db02,_0xfd13('0xc9')));rpcDb[_0xfd13('0x96')](_0x51db02,'[callProgressDetectingCustomer][logBusy]');if(ut[_0xfd13('0xa3')](_0x51db02)>=_0x46397[_0xfd13('0xa8')]){_0x4a35ee=ut[_0xfd13('0xa9')](_0x51db02,0xf,_0xfd13('0xaa'));rpcDb[_0xfd13('0xab')](_0x4a35ee,'[callProgressDetectingCustomer][logBusyGlobal]');}else{if(_0x51db02['countbusyretry']>=_0x46397['dialBusyMaxRetry']){rpcDb[_0xfd13('0xab')](_0x51db02,_0xfd13('0xca'));}else{rpcDb[_0xfd13('0xcb')](ut[_0xfd13('0xcc')](_0x51db02,_0xfd13('0xcd'),_0x46397['dialBusyRetryFrequency']),_0x51db02[_0xfd13('0xce')],_0x51db02[_0xfd13('0xcf')]);}}break;case _0xfd13('0xd0'):_0x46397['outboundNoAnswerCallsDay']+=0x1;_0x51db02[_0xfd13('0xd1')]+=0x1;_0x51db02[_0xfd13('0xc1')]=ut[_0xfd13('0xa3')](_0x51db02);ut['logCustomer'](_0x51db02,0x3,'NoAnswer');ami['emit'](_0xfd13('0xd2'),ut[_0xfd13('0xa5')](_0x51db02,_0xfd13('0xd3')));rpcDb[_0xfd13('0x96')](_0x51db02,_0xfd13('0xd4'));if(ut[_0xfd13('0xa3')](_0x51db02)>=_0x46397[_0xfd13('0xa8')]){_0x4a35ee=ut['cloneAction'](_0x51db02,0xf,_0xfd13('0xaa'));rpcDb['createCustomerFinal'](_0x4a35ee,_0xfd13('0xd5'));}else{if(_0x51db02[_0xfd13('0xd1')]>=_0x46397['dialNoAnswerMaxRetry']){rpcDb[_0xfd13('0xab')](_0x51db02,'[callProgressDetectingCustomer][logNoAnswer]');}else{rpcDb[_0xfd13('0xcb')](ut[_0xfd13('0xcc')](_0x51db02,_0xfd13('0xd1'),_0x46397[_0xfd13('0xd6')]),_0x51db02[_0xfd13('0xce')],_0x51db02[_0xfd13('0xcf')]);}}break;case _0xfd13('0xd7'):_0x46397[_0xfd13('0x38')]+=0x1;_0x51db02[_0xfd13('0xd8')]+=0x1;_0x51db02['countglobal']=ut[_0xfd13('0xa3')](_0x51db02);ut[_0xfd13('0x90')](_0x51db02,0x8,_0xfd13('0xd9'));ami['emit'](_0xfd13('0xda'),ut[_0xfd13('0xa5')](_0x51db02,_0xfd13('0xdb')));rpcDb['createCustomerHistory'](_0x51db02,_0xfd13('0xdc'));if(ut[_0xfd13('0xa3')](_0x51db02)>=_0x46397['dialGlobalMaxRetry']){_0x4a35ee=ut[_0xfd13('0xa9')](_0x51db02,0xf,_0xfd13('0xaa'));rpcDb[_0xfd13('0xab')](_0x4a35ee,_0xfd13('0xdd'));}else{if(_0x51db02[_0xfd13('0xd8')]>=_0x46397[_0xfd13('0xde')]){rpcDb[_0xfd13('0xab')](_0x51db02,_0xfd13('0xdc'));}else{rpcDb[_0xfd13('0xcb')](ut[_0xfd13('0xcc')](_0x51db02,_0xfd13('0xd8'),_0x46397[_0xfd13('0xdf')]),_0x51db02[_0xfd13('0xce')],_0x51db02[_0xfd13('0xcf')]);}}break;case _0xfd13('0xe0'):_0x46397[_0xfd13('0x3d')]+=0x1;_0x51db02[_0xfd13('0xe1')]+=0x1;_0x51db02['countglobal']=ut['totalGlobal'](_0x51db02);ut[_0xfd13('0x90')](_0x51db02,0x14,_0xfd13('0xe2'));ami['emit'](_0xfd13('0xe3'),ut[_0xfd13('0xa5')](_0x51db02,'agentreject'));rpcDb[_0xfd13('0x96')](_0x51db02,_0xfd13('0xe4'));if(ut[_0xfd13('0xa3')](_0x51db02)>=_0x46397[_0xfd13('0xa8')]){_0x4a35ee=ut[_0xfd13('0xa9')](_0x51db02,0x14,_0xfd13('0xe2'));rpcDb['createCustomerFinal'](_0x4a35ee,'[callProgressDetectingCustomer][logAgentReject]');}else{if(_0x51db02[_0xfd13('0xe1')]>=_0x46397[_0xfd13('0xe5')]){rpcDb[_0xfd13('0xab')](_0x51db02,_0xfd13('0xe6'));}else{rpcDb[_0xfd13('0xcb')](ut[_0xfd13('0xcc')](_0x51db02,_0xfd13('0xe1'),_0x46397['dialAgentRejectRetryFrequency']),_0x51db02[_0xfd13('0xce')],_0x51db02['activeContact']);}}break;case _0xfd13('0xe7'):_0x46397['outboundAbandonedCallsDay']+=0x1;_0x51db02['countabandonedretry']+=0x1;_0x51db02[_0xfd13('0xc1')]=ut['totalGlobal'](_0x51db02);ut[_0xfd13('0x90')](_0x51db02,0xb,_0xfd13('0xe8'));rpcDb['createCustomerHistory'](_0x51db02,_0xfd13('0xe9'));if(ut[_0xfd13('0xa3')](_0x51db02)>=_0x46397[_0xfd13('0xa8')]){_0x4a35ee=ut[_0xfd13('0xa9')](_0x51db02,0xf,_0xfd13('0xaa'));rpcDb['createCustomerFinal'](_0x4a35ee,_0xfd13('0xe9'));}else{if(_0x51db02[_0xfd13('0xea')]>=_0x46397[_0xfd13('0xeb')]){rpcDb[_0xfd13('0xab')](_0x51db02,'[callProgressDetectingCustomer][logAbandoned]');}else{rpcDb['rescheduleContact'](ut['scheduledAt'](_0x51db02,_0xfd13('0xec'),_0x46397['dialAbandonedRetryFrequency']),_0x51db02[_0xfd13('0xce')],_0x51db02[_0xfd13('0xcf')]);}}break;case'18':_0x46397[_0xfd13('0x3e')]+=0x1;_0x51db02[_0xfd13('0xed')]+=0x1;_0x51db02[_0xfd13('0xc1')]=ut['totalGlobal'](_0x51db02);ut[_0xfd13('0x90')](_0x51db02,0x12,_0x1b2670[_0xfd13('0xee')]||_0x1b2670[_0xfd13('0xef')]);ami[_0xfd13('0x22')](_0xfd13('0xf0'),ut[_0xfd13('0xa5')](_0x51db02,_0xfd13('0xf1')));rpcDb['createCustomerHistory'](_0x51db02,_0xfd13('0xf2'));if(ut[_0xfd13('0xa3')](_0x51db02)>=_0x46397[_0xfd13('0xa8')]){_0x4a35ee=ut[_0xfd13('0xa9')](_0x51db02,0xf,_0xfd13('0xaa'));rpcDb[_0xfd13('0xab')](_0x4a35ee,_0xfd13('0xf2'));}else{rpcDb[_0xfd13('0xab')](_0x51db02,_0xfd13('0xf2'));}delete this['actions'][_0x1b2670[_0xfd13('0xb0')]];break;case'19':_0x46397[_0xfd13('0x3e')]+=0x1;_0x51db02[_0xfd13('0xc1')]=ut[_0xfd13('0xa3')](_0x51db02);ut['logCustomer'](_0x51db02,0x13,_0x1b2670[_0xfd13('0xee')]||_0x1b2670[_0xfd13('0xef')]);ami['emit'](_0xfd13('0xf0'),ut[_0xfd13('0xa5')](_0x51db02,'amd'));rpcDb[_0xfd13('0x96')](_0x51db02,_0xfd13('0xf3'));if(ut[_0xfd13('0xa3')](_0x51db02)>=_0x46397[_0xfd13('0xa8')]){_0x4a35ee=ut['cloneAction'](_0x51db02,0xf,_0xfd13('0xaa'));rpcDb[_0xfd13('0xab')](_0x4a35ee,_0xfd13('0xf3'));}else{rpcDb[_0xfd13('0xab')](_0x51db02,_0xfd13('0xf3'));}delete this[_0xfd13('0x6e')][_0x1b2670[_0xfd13('0xb0')]];break;default:if(_0x51db02['dialAnswer']){ut[_0xfd13('0x7f')](_0x46397,'[default]');ut[_0xfd13('0x82')]('[Dialer][decrementTalkink][no\x20Hangup][Preview]'+_0x46397[_0xfd13('0x25')],_0x1b2670);}_0x46397[_0xfd13('0x3e')]+=0x1;_0x51db02['countglobal']=ut[_0xfd13('0xa3')](_0x51db02);ut[_0xfd13('0x90')](_0x51db02,0xc,_0x1b2670['cause-txt']||_0x1b2670[_0xfd13('0xef')]);rpcDb[_0xfd13('0x96')](_0x51db02,'[callProgressDetectingCustomer][logUnknown]');if(ut['totalGlobal'](_0x51db02)>=_0x46397['dialGlobalMaxRetry']){_0x4a35ee=ut[_0xfd13('0xa9')](_0x51db02,0xf,_0xfd13('0xaa'));rpcDb[_0xfd13('0xab')](_0x4a35ee,_0xfd13('0xf4'));}else{rpcDb[_0xfd13('0xab')](_0x51db02,_0xfd13('0xf4'));}delete this[_0xfd13('0x6e')][_0x1b2670[_0xfd13('0xb0')]];}if(!(_0x51db02[_0xfd13('0x74')]&&_0x96b4c0==='16')){ut[_0xfd13('0x7e')](_0x46397,_0xfd13('0xf5'));logger[_0xfd13('0x56')](_0xfd13('0xf6'),_0x51db02[_0xfd13('0xb5')],_0xfd13('0xb6'),_0x46397[_0xfd13('0x25')],'originated:\x20',_0x46397[_0xfd13('0x49')]);}if(_0x96b4c0!==_0xfd13('0xb1')){delete this[_0xfd13('0x6e')][_0x1b2670[_0xfd13('0xb0')]];delete this[_0xfd13('0x6e')][_0x1b2670['destlinkedid']];}}};Preview['prototype'][_0xfd13('0xf7')]=function(_0xe25ca9,_0x197833,_0x149077){if(_[_0xfd13('0xf8')](_0x197833)&&_0xfd13('0xf9')!==typeof _0x197833){return;}if(_[_0xfd13('0xf8')](_0x149077)&&_0xfd13('0xf9')!==typeof _0x149077){return;}switch(_0x149077[_0xfd13('0xfa')]){case'0':ut['logAgent'](_0xe25ca9,0x0,'NoSuchNumber');rpcDb[_0xfd13('0xfb')](_0xe25ca9,_0xfd13('0xfc'));break;case'3':ut['logAgent'](_0xe25ca9,0x3,_0xfd13('0xfd'));rpcDb[_0xfd13('0xfb')](_0xe25ca9,_0xfd13('0xfe'));break;case'5':ut[_0xfd13('0xff')](_0xe25ca9,0x5,_0xfd13('0x100'));rpcDb[_0xfd13('0xfb')](_0xe25ca9,_0xfd13('0x101'));break;case'8':ut['logAgent'](_0xe25ca9,0x8,_0xfd13('0xd9'));rpcDb[_0xfd13('0xfb')](_0xe25ca9,'[callProgressDetectingAgent][logCongestion]');break;case'22':ut[_0xfd13('0xff')](_0xe25ca9,0x16,'AnswerAGI');rpcDb['createAgentHistory'](_0xe25ca9,_0xfd13('0x102'));break;default:ut[_0xfd13('0xff')](_0xe25ca9,0xc,_0x149077['reason']);rpcDb[_0xfd13('0xfb')](_0xe25ca9,_0xfd13('0x103'));}ut[_0xfd13('0x7e')](_0x197833,'[callProgressDetectingAgent]');logger[_0xfd13('0x56')](_0xfd13('0x104'),_0xe25ca9[_0xfd13('0xb5')],'\x20Queue',_0x197833['name'],_0xfd13('0x71'),_0x197833[_0xfd13('0x49')]);delete this[_0xfd13('0x6e')][_0xe25ca9['uniqueid']];};Preview['prototype'][_0xfd13('0x105')]=function(_0xa70d06,_0x15b670,_0x5f4b43,_0x5a2c3b,_0x35d5d8){var _0x4ebac0=this;return new BPromise(function(_0x447982,_0x2893f3){if(_[_0xfd13('0x6d')](_0x15b670)||_[_0xfd13('0x6d')](_0x15b670[_0xfd13('0x106')])||_[_0xfd13('0x6d')](_0x15b670[_0xfd13('0x106')][_0xfd13('0x107')])||_[_0xfd13('0x6d')](_0x15b670[_0xfd13('0x78')])){_0x2893f3(ut['message']('Contact\x20is\x20undefined',_0x5a2c3b,_0x35d5d8));return;}var _0x36e075=uuid['v4']();var _0x1f940b=_0x4ebac0[_0xfd13('0xf')][_0x15b670['Queue']['name']];var _0x4e2fba=_0x5f4b43?_0x4ebac0[_0xfd13('0x85')][_0x5f4b43]['id']:undefined;_0x4ebac0[_0xfd13('0x6e')][_0x36e075]=new Action(_0x15b670,_0x1f940b,_0x36e075,_0x5f4b43,_0x4e2fba);var _0x4a8e85=_0x4ebac0[_0xfd13('0x6e')][_0x36e075];_0x4a8e85[_0xfd13('0xce')]=_0x5a2c3b;_0x4a8e85[_0xfd13('0xcf')]=_0x35d5d8;_0x4a8e85[_0xfd13('0x108')]=_0x5f4b43;if(_[_0xfd13('0x109')](_0xa70d06)){_0x4ebac0['execCall'](_0x4a8e85,_0x1f940b,_0x15b670,_0x5f4b43)['then'](function(_0x5c7b97){logger[_0xfd13('0x56')](_0xfd13('0x10a'),'Queue:\x20'+_0x4a8e85[_0xfd13('0x72')]+_0xfd13('0x10b')+_0x4a8e85[_0xfd13('0x10c')],JSON[_0xfd13('0x58')](_0x5c7b97));ami['emit']('custom:agentcalled',ut['buildObj'](_0x4a8e85,'called',_0x4ebac0[_0xfd13('0xf')][_0x4a8e85[_0xfd13('0x72')]]));_0x447982(ut[_0xfd13('0x48')](_0xfd13('0x10d')));})['catch'](function(_0x40d8ef){ut['logger']('[Preview][execCall][failure]',_0x40d8ef);_0x2893f3(ut[_0xfd13('0x48')](_0xfd13('0x10e'),_0x5a2c3b,_0x35d5d8));});}else{_0x1f940b[_0xfd13('0x36')]+=0x1;ut[_0xfd13('0x10f')](_0x4a8e85);rpcDb[_0xfd13('0x110')](_0x4a8e85,_0xfd13('0x111'));delete _0x4ebac0[_0xfd13('0x6e')][_0x36e075];_0x2893f3(ut['message']('Contact\x20in\x20black\x20List',_0x5a2c3b,_0x35d5d8));}});};Preview[_0xfd13('0x63')][_0xfd13('0x9e')]=function(_0xe31420){return!_['isNil'](_0xe31420)&&!_[_0xfd13('0x6d')](_0xe31420['name'])&&!_['isNil'](_0xe31420[_0xfd13('0x51')])&&_0xe31420[_0xfd13('0x51')]&&!_[_0xfd13('0x6d')](this[_0xfd13('0x11')][util[_0xfd13('0x59')](_0xfd13('0x112'),_0xe31420[_0xfd13('0x25')])])&&!_[_0xfd13('0x6d')](this[_0xfd13('0x11')][util['format']('SIP/%s',_0xe31420['name'])]['status'])&&(this[_0xfd13('0x11')][util[_0xfd13('0x59')](_0xfd13('0x112'),_0xe31420['name'])][_0xfd13('0x7b')]===_0xfd13('0x113')||this['trunks'][util[_0xfd13('0x59')](_0xfd13('0x112'),_0xe31420[_0xfd13('0x25')])][_0xfd13('0x7b')]==='unmonitored');};Preview[_0xfd13('0x63')]['run']=function(_0x1a6ac4,_0x6b2229){var _0x3eb7b9=this;return new BPromise(function(_0x9dbdf3,_0x5e230c){_0x3eb7b9['execRun'](_0x1a6ac4,_0x6b2229)[_0xfd13('0x86')](function(_0xe2245f){_0x9dbdf3(_[_0xfd13('0x75')](_0xe2245f,[_0xfd13('0x48')]));})['catch'](function(_0x24c8eb){if(_0x24c8eb[_0xfd13('0x114')]){rpcDb[_0xfd13('0x115')](_0x1a6ac4);}if(_0x24c8eb['active']){rpcDb[_0xfd13('0x8d')](_0x1a6ac4);}_0x5e230c(_['pick'](_0x24c8eb,[_0xfd13('0x48')]));});});};Preview[_0xfd13('0x63')]['execRun']=function(_0x19aec1,_0x19a15c){var _0x376ddd=this;return new BPromise(function(_0x19cdfe,_0x4371eb){var _0x3ce9d4,_0x5d09dc;rpcDb[_0xfd13('0x116')](_0x19aec1)[_0xfd13('0x86')](function(_0x2f0e31){if(!_['isNil'](_0x2f0e31[0x0])){_0x5d09dc=_0x2f0e31[0x0][_0xfd13('0x117')]?![]:!![];_0x3ce9d4=_0x2f0e31[0x0][_0xfd13('0x117')]?!![]:![];_0x3ce9d4=_0x19a15c?!![]:_0x3ce9d4;}var _0x60d532=_0x376ddd['validateContact'](_0x2f0e31);if(_0x60d532[_0xfd13('0x118')]){rpcDb[_0xfd13('0x119')](_[_0xfd13('0x75')](_0x2f0e31[0x0],[_0xfd13('0x78'),_0xfd13('0x11a')]))[_0xfd13('0x86')](function(_0x4d1714){_0x376ddd[_0xfd13('0x105')](_0x4d1714,_0x2f0e31[0x0],_0x19a15c,_0x5d09dc,_0x3ce9d4)[_0xfd13('0x86')](function(_0x4b9087){_0x19cdfe(_0x4b9087);})[_0xfd13('0x7d')](function(_0x2d6826){_0x4371eb(_0x2d6826);});})['catch'](function(_0x10b1e5){ut['logger']('[Preview][checkIsBlackList]',_0x10b1e5);_0x4371eb(ut[_0xfd13('0x48')]('Call\x20unsuccessful',_0x5d09dc,_0x3ce9d4));});}else{_0x4371eb(ut[_0xfd13('0x48')](_0x60d532[_0xfd13('0x48')],_0x5d09dc,_0x3ce9d4));}})[_0xfd13('0x7d')](function(_0x336508){ut['logger']('[Preview][getContactPreview]',_0x336508);_0x4371eb(ut[_0xfd13('0x48')](_0xfd13('0x11b'),![],!![]));});});};Preview[_0xfd13('0x63')][_0xfd13('0x11c')]=function(_0x2c2fd1){if(_[_0xfd13('0x6d')](_0x2c2fd1)||_[_0xfd13('0x109')](_0x2c2fd1)||!_['isNil'](_0x2c2fd1[0x0][_0xfd13('0x11d')])&&_[_0xfd13('0x6d')](_0x2c2fd1[0x0][_0xfd13('0x11d')][_0xfd13('0x25')])){ut[_0xfd13('0x61')](_0xfd13('0x11e'),_0x2c2fd1);return{'isValid':![],'message':_0xfd13('0x11f')};}var _0xd36f23=this[_0xfd13('0xf')][_0x2c2fd1[0x0][_0xfd13('0x70')][_0xfd13('0x25')]];_0xd36f23[_0xfd13('0x48')]=_0xfd13('0xa0');if(_['isNil'](_0xd36f23)){ut['logger'](_0xfd13('0x120'),_0xd36f23);return{'isValid':![],'message':_0xfd13('0x121')};}if(!this[_0xfd13('0x9e')](_0xd36f23[_0xfd13('0x50')])){ut['logger']('[Preview][validateContact][Trunk\x20not\x20work]',_0xfd13('0x122')+_0xd36f23[_0xfd13('0x25')]+_0xfd13('0x123'));if(!this[_0xfd13('0x9e')](_0xd36f23['TrunkBackup'])){ut[_0xfd13('0x61')](_0xfd13('0x124'),_0xd36f23[_0xfd13('0x25')]+_0xfd13('0x125'));return{'isValid':![],'message':_0xfd13('0x126')};}}if(!ut[_0xfd13('0x9c')](_0xd36f23[_0xfd13('0x2f')])){ut['logger'](_0xfd13('0x127'),_0xd36f23['name']+_0xfd13('0x128'));return{'isValid':![],'message':_0xfd13('0x122')+_0xd36f23[_0xfd13('0x25')]+_0xfd13('0x128')};}return{'isValid':!![],'message':_0xfd13('0x129')};};Preview['prototype'][_0xfd13('0x12a')]=function(_0x57d644,_0x3bb2cc,_0x34f25a,_0x4468e3){var _0x167156=this;return new BPromise(function(_0x1a5a98,_0x358a31){var _0x19a50e=_0x57d644[_0xfd13('0xb5')];var _0x4967bf=_0x167156[_0xfd13('0x9e')](_0x3bb2cc[_0xfd13('0x50')])?util[_0xfd13('0x59')](_0xfd13('0x12b'),_0x3bb2cc[_0xfd13('0x50')][_0xfd13('0x25')],_[_0xfd13('0x6d')](_0x3bb2cc['dialPrefix'])?'':_0x3bb2cc['dialPrefix'][_0xfd13('0x12c')]()||'',_0x3bb2cc[_0xfd13('0x12d')]>0x0?_0x34f25a[_0xfd13('0x106')][_0xfd13('0x107')][_0xfd13('0x12e')](_0x3bb2cc[_0xfd13('0x12d')]):_0x34f25a[_0xfd13('0x106')][_0xfd13('0x107')]):util[_0xfd13('0x59')](_0xfd13('0x12b'),_[_0xfd13('0x6d')](_0x3bb2cc[_0xfd13('0x9f')])?_0x3bb2cc[_0xfd13('0x50')]['name']:_0x3bb2cc[_0xfd13('0x9f')][_0xfd13('0x25')],_[_0xfd13('0x6d')](_0x3bb2cc[_0xfd13('0x34')])?'':_0x3bb2cc['dialPrefix'][_0xfd13('0x12c')]()||'',_0x3bb2cc['dialCutDigit']>0x0?_0x34f25a['Contact'][_0xfd13('0x107')][_0xfd13('0x12e')](_0x3bb2cc['dialCutDigit']):_0x34f25a['Contact'][_0xfd13('0x107')]);var _0x245b5a=_0x167156[_0xfd13('0x9e')](_0x3bb2cc[_0xfd13('0x50')])?ut[_0xfd13('0x12f')](_0x3bb2cc[_0xfd13('0x50')][_0xfd13('0x52')],_0x3bb2cc[_0xfd13('0x31')],_0x3bb2cc['dialRandomLastDigitCallerIdNumber']>0x0?ut[_0xfd13('0x130')](_0x3bb2cc[_0xfd13('0x32')],_0x3bb2cc[_0xfd13('0x131')]):_0x3bb2cc['dialOriginateCallerIdNumber']):ut[_0xfd13('0x12f')](_[_0xfd13('0x6d')](_0x3bb2cc[_0xfd13('0x9f')])?_0x3bb2cc['Trunk'][_0xfd13('0x52')]:_0x3bb2cc[_0xfd13('0x9f')][_0xfd13('0x52')],_0x3bb2cc[_0xfd13('0x31')],_0x3bb2cc['dialRandomLastDigitCallerIdNumber']>0x0?ut[_0xfd13('0x130')](_0x3bb2cc[_0xfd13('0x32')],_0x3bb2cc[_0xfd13('0x131')]):_0x3bb2cc[_0xfd13('0x32')]);if(_0x245b5a){_0x57d644[_0xfd13('0x132')]=ut['extractCalleridName'](_0x245b5a);_0x57d644[_0xfd13('0x133')]=ut[_0xfd13('0x134')](_0x245b5a);}var _0xafa0a8=ut[_0xfd13('0x135')](_0x3bb2cc,_0x34f25a,_0x4967bf,_0x245b5a,_0x19a50e,_0x57d644);_[_0xfd13('0x136')](_0x57d644,ut[_0xfd13('0x137')](_0xafa0a8));_0x57d644[_0xfd13('0x8e')]=moment()[_0xfd13('0x59')]('YYYY-MM-DD\x20HH:mm:ss');ami['Action'](ut[_0xfd13('0x138')](_0x57d644,_0x3bb2cc,_0xafa0a8,_0x57d644[_0xfd13('0xcf')],_0x4468e3))[_0xfd13('0x86')](function(_0x4e50a3){var _0x50d734=_0x57d644[_0xfd13('0x139')];if(!_[_0xfd13('0x6d')](_0x50d734)){if(!_[_0xfd13('0x6d')](_0x167156[_0xfd13('0x85')][_0x50d734])){_0x167156[_0xfd13('0x85')][_0x50d734]['destconnectedlinenum']=_0x57d644[_0xfd13('0x13a')];emit(util[_0xfd13('0x59')](_0xfd13('0x13b'),_0x167156[_0xfd13('0x85')][_0x50d734][_0xfd13('0x25')]),'user:agentconnect',{'destaccountcode':_0x167156['agents'][_0x50d734]['accountcode'],'destconnectedlinenum':_0x57d644['calleridnum']});}}_0x3bb2cc[_0xfd13('0x49')]+=0x1;logger['info']('[originated][increment]',_0x19a50e,_0xfd13('0xb6'),_0x3bb2cc[_0xfd13('0x25')],_0xfd13('0x71'),_0x3bb2cc[_0xfd13('0x49')]);_0x1a5a98(_0x4e50a3);})[_0xfd13('0x7d')](function(_0x337fd1){ut['logAgent'](_0x57d644,0xe,_0xfd13('0x13c'));rpcDb[_0xfd13('0xfb')](_0x57d644,_0xfd13('0x13d'));_0x358a31(_0x337fd1);});});};Preview[_0xfd13('0x63')][_0xfd13('0x1a')]=function(_0xe60a6f){if(this['actions'][_0xe60a6f[_0xfd13('0xb0')]]){this['actions'][_0xe60a6f[_0xfd13('0xb0')]][_0xfd13('0x7c')]=_0xe60a6f[_0xfd13('0x7c')];}};Preview['prototype'][_0xfd13('0x13')]=function(_0x2fdf93){var _0x1e652c=this;var _0x6274d8=this['actions'][_0x2fdf93[_0xfd13('0x13e')]];if(_0x6274d8){if(_0x6274d8[_0xfd13('0x108')]&&this[_0xfd13('0x85')][_0x6274d8[_0xfd13('0x108')]]){ut[_0xfd13('0x13f')](_0x6274d8,this['agents'][_0x6274d8['lookAgent']][_0xfd13('0x25')],this['agents'][_0x6274d8['lookAgent']]['id']);}var _0x3d3b92=_[_0xfd13('0x140')](_0x6274d8);_0x3d3b92[_0xfd13('0xb2')]=moment()[_0xfd13('0x59')](_0xfd13('0x8f'));var _0x1dcb1f=_0x1e652c[_0xfd13('0xf')][_0x6274d8['queue']];if(ut['isFailure'](_0x2fdf93[_0xfd13('0x141')])){if(_0x6274d8[_0xfd13('0xce')]){rpcDb['unlockContact'](_0x6274d8[_0xfd13('0x10c')]);}if(_0x6274d8[_0xfd13('0xcf')]){rpcDb[_0xfd13('0x8d')](_0x6274d8[_0xfd13('0x10c')]);}ami[_0xfd13('0x22')](_0xfd13('0x142'),ut[_0xfd13('0xa5')](_0x6274d8,_0xfd13('0x143'),this[_0xfd13('0xf')][_0x6274d8[_0xfd13('0x72')]]));this[_0xfd13('0xf7')](_0x3d3b92,_0x1dcb1f,_0x2fdf93);}else{_0x6274d8[_0xfd13('0x8e')]=moment()['format'](_0xfd13('0x8f'));ut[_0xfd13('0xff')](_0x3d3b92,0x4,_0xfd13('0xc2'));rpcDb[_0xfd13('0xfb')](_0x3d3b92,'[callProgressDetectingAgent][logAnswer]');}}};Preview[_0xfd13('0x63')][_0xfd13('0x15')]=function(_0x8c7c86){var _0x4b4b44=this;var _0x51d2ea=this[_0xfd13('0x6e')][_0x8c7c86[_0xfd13('0xb0')]];var _0x567040;if(_0x51d2ea){_0x567040=this[_0xfd13('0xf')][_0x51d2ea[_0xfd13('0x72')]];logger[_0xfd13('0x56')](_0xfd13('0x144'),_0x8c7c86[_0xfd13('0xb0')],_0xfd13('0xb6'),_0x567040[_0xfd13('0x25')],_0xfd13('0x73'),_0x567040[_0xfd13('0x28')]);}if(this[_0xfd13('0x6e')][_0x8c7c86[_0xfd13('0xb0')]]&&_0x8c7c86[_0xfd13('0xb0')]!==_0x8c7c86[_0xfd13('0xb5')]){if(_0x8c7c86[_0xfd13('0x145')]==='16'&&this['actions'][_0x8c7c86[_0xfd13('0xb0')]]['dialAnswer']){this[_0xfd13('0xa1')](_0x8c7c86,_0x8c7c86[_0xfd13('0xb0')],_0x8c7c86[_0xfd13('0x145')]);}else if(this[_0xfd13('0x6e')][_0x8c7c86['linkedid']][_0xfd13('0x74')]){logger[_0xfd13('0x56')](_0xfd13('0x146'),_0x8c7c86[_0xfd13('0xb0')],_0x8c7c86[_0xfd13('0x145')],_0xfd13('0xb6'),_0x567040[_0xfd13('0x25')],'pTalking:\x20',_0x567040[_0xfd13('0x28')]);this['callProgressDetectingCustomer'](_0x8c7c86,_0x8c7c86['linkedid'],_0x8c7c86[_0xfd13('0x145')]);}}else if(_0x51d2ea&&_['isNil'](_0x51d2ea[_0xfd13('0x147')])&&_0x567040[_0xfd13('0x148')]&&_0x8c7c86[_0xfd13('0xb0')]===_0x8c7c86[_0xfd13('0xb5')]&&_['isNil'](_0x8c7c86[_0xfd13('0xfa')])&&_0x8c7c86['cause']==='16'&&_0x8c7c86[_0xfd13('0x149')]==='6'&&_[_0xfd13('0xf8')](_0x51d2ea[_0xfd13('0x14a')])){if(_0x51d2ea[_0xfd13('0xce')]){rpcDb[_0xfd13('0x115')](_0x51d2ea[_0xfd13('0x10c')]);}if(_0x51d2ea[_0xfd13('0xcf')]){rpcDb[_0xfd13('0x8d')](_0x51d2ea[_0xfd13('0x10c')]);}_0x8c7c86['reason']='22';this[_0xfd13('0xf7')](_0x51d2ea,_0x567040,_0x8c7c86);}else if(_0x51d2ea&&_0x51d2ea[_0xfd13('0x14a')]){if(_0x8c7c86[_0xfd13('0x145')]==='16'&&this[_0xfd13('0x6e')][_0x8c7c86[_0xfd13('0xb0')]][_0xfd13('0x74')]){logger['info'](_0xfd13('0x14b'),_0x8c7c86[_0xfd13('0xb0')],_0x8c7c86[_0xfd13('0x145')],_0xfd13('0xb6'),_0x567040[_0xfd13('0x25')],_0xfd13('0x73'),_0x567040[_0xfd13('0x28')]);this[_0xfd13('0xa1')](_0x8c7c86,_0x8c7c86[_0xfd13('0xb0')],_0x8c7c86[_0xfd13('0x145')]);}else if(this[_0xfd13('0x6e')][_0x8c7c86[_0xfd13('0xb0')]]['dialAnswer']){logger[_0xfd13('0x56')]('[syncHangup][talking][cause]',_0x8c7c86[_0xfd13('0xb0')],_0x8c7c86[_0xfd13('0x145')],_0xfd13('0xb6'),_0x567040[_0xfd13('0x25')],_0xfd13('0x73'),_0x567040[_0xfd13('0x28')]);this[_0xfd13('0xa1')](_0x8c7c86,_0x8c7c86[_0xfd13('0xb0')],_0x8c7c86['cause']);}}};Preview[_0xfd13('0x63')][_0xfd13('0x18')]=function(_0x3cc66d){if(this[_0xfd13('0x6e')][_0x3cc66d[_0xfd13('0x14c')]]&&_0x3cc66d[_0xfd13('0x14c')]!==_0x3cc66d[_0xfd13('0x14d')]){this['callProgressDetectingCustomer'](_0x3cc66d,_0x3cc66d['destlinkedid'],_0x3cc66d[_0xfd13('0xef')]);}};Preview[_0xfd13('0x63')][_0xfd13('0x17')]=function(_0x59d07c){if(this[_0xfd13('0x6e')][_0x59d07c[_0xfd13('0xb0')]]&&_0x59d07c[_0xfd13('0xb0')]!==_0x59d07c['uniqueid']&&!this[_0xfd13('0x6e')][_0x59d07c[_0xfd13('0xb0')]][_0xfd13('0x74')]){if(_0x59d07c['cause']==='1'){this[_0xfd13('0xa1')](_0x59d07c,_0x59d07c[_0xfd13('0xb0')],_0x59d07c['cause']);}}};Preview[_0xfd13('0x63')][_0xfd13('0x14e')]=function(_0x335bf5,_0x110bd7,_0xf34369){if(this[_0xfd13('0x6e')][_0x335bf5]){if(_[_0xfd13('0x6d')](this[_0xfd13('0x6e')][_0x335bf5][_0xfd13('0x14f')])){this[_0xfd13('0x6e')][_0x335bf5]['variables']={};}this[_0xfd13('0x6e')][_0x335bf5]['variables'][_0x110bd7]=_0xf34369;}};Preview[_0xfd13('0x63')]['syncVarSet']=function(_0xe8a6c1){try{if(!_['isNil'](_0xe8a6c1)){if(ut['filterKey'](_[_0xfd13('0x150')](_0xe8a6c1[_0xfd13('0x151')])[0x0])){this[_0xfd13('0x14e')](_0xe8a6c1[_0xfd13('0xb5')],_['keys'](_0xe8a6c1[_0xfd13('0x151')])[0x0],_0xe8a6c1[_0xfd13('0x152')]);}}}catch(_0x472489){logger['error'](_0xfd13('0x153'),util[_0xfd13('0x154')](_0x472489,{'showHidden':![],'depth':null}));}};Preview[_0xfd13('0x63')][_0xfd13('0x1e')]=function(_0x1c4665){if(_0x1c4665){if(this['actions'][_0x1c4665['transfertargetlinkedid']]){this[_0xfd13('0x6e')][_0x1c4665['transfertargetlinkedid']][_0xfd13('0x14a')]=!![];}}};Preview['prototype'][_0xfd13('0x20')]=function(_0x5aa102){if(_0x5aa102){if(this['actions'][_0x5aa102[_0xfd13('0x155')]]){this[_0xfd13('0x6e')][_0x5aa102[_0xfd13('0x155')]][_0xfd13('0x14a')]=!![];}}};module[_0xfd13('0x156')]=Preview;
\ No newline at end of file
+var _0xfa10=['stringify','md5','voice:queue:%s','voice_queue:save','info','[DEBUG]\x20Emit\x20voice_queue_channel:remove\x20event','format','voice_queue_channel:remove','voice_queue_presence:remove','sendMessageOneNotActive','paused','message','NOT_ACTIVE','\x20is\x20not\x20active','logger','\x20is\x20disactive','syncCampaigns','booked','clearZombieChannels','hasOwnProperty','dialActive','setMessage','recallMe','sequence','isNil','actions','[clearZombieChannels][talking]','Queue','originated:\x20','queue','pTalking:\x20','dialAnswer','pick','contactId','UserId','VoiceQueueId','ListId','Action','catch','No\x20such\x20channel','updateOriginated','decrementTalkink','[clearZombieChannel]','loggerError','[Dialer][checkChannel][pTalking][Preview]','[Dialer][checkChannel][Preview]','[action]','size','clearZombieChannel','getContactRecallMe','agentReadyId','then','length','scheduledat','Agent','run','logger2','[RecallMe]','YYYY-MM-DD\x20HH:mm:ss','logCustomer','RecallInQueue','dialRecallInQueue','rescheduleContactInQueue','createBody','RecallFailedTimeout','[HistoryRecallClose]','createCustomerFinal','[getContactRecallMe]','IsNotLoggedIn','AGENTS_NOT_LOGGED','isActive','isTrunkReachable','TrunkBackup','TRUNK_IS_NOT_REACHABLE','ACTIVE','callProgressDetectingCustomer','outboundNoSuchCallsDay','countglobal','totalGlobal','NoSuchNumber','custom:agentnosuchnumber','nosuchnumber','[callProgressDetectingCustomer][logNoSuch]','dialGlobalMaxRetry','cloneAction','[callProgressDetectingCustomer][logNoSuchGlobal]','rescheduleContact','countnosuchnumberretry','dialNoSuchNumberRetryFrequency','unlockAgent','activeContact','ANSWER','[syncHangup][talking][increment]','uniqueid','\x20Queue','custom:agentconnect','buildObj','custom:agentConnectPreview','custom:agentcomplete','complete','[16]','Answer','createCustomerHistory','[callProgressDetectingCustomer][logAnswerGlobal]','crateCustomerReportQueue','talktime','[syncHangup][talking][decrement]','linkedid','countbusyretry','busy','[callProgressDetectingCustomer][logBusy]','Global','[callProgressDetectingCustomer][logBusyGlobal]','countnoanswerretry','NoAnswer','custom:agentnoanswer','[callProgressDetectingCustomer][logNoAnswer]','[callProgressDetectingCustomer][logNoAnswerGlobal]','dialNoAnswerMaxRetry','dialNoAnswerRetryFrequency','countcongestionretry','congestion','[callProgressDetectingCustomer][logCongestion]','[callProgressDetectingCustomer][logCongestionGlobal]','dialCongestionMaxRetry','scheduledAt','dialBusyRetryFrequency','CANCEL','agentreject','[syncHangupRequest][logAgentReject]','AgentReject','[callProgressDetectingCustomer][logAgentReject]','countagentrejectretry','dialAgentRejectMaxRetry','dialAgentRejectRetryFrequency','outboundAbandonedCallsDay','countabandonedretry','Abandoned','[callProgressDetectingCustomer][logAbandoned]','dialAbandonedMaxRety','dialAbandonedRetryFrequency','dialstatus','amd','[callProgressDetectingCustomer][hangupInAMD]','outboundUnknownCallsDay','custom:amd','[callProgressDetectingCustomer][machine]','[default]','[Dialer][decrementTalkink][no\x20Hangup][Preview]','[callProgressDetectingCustomer][logUnknown]','[callProgressDetectingCustomer][logUnknownGlobal]','[callProgressDetectingCustomer]','[originated][decrement][callProgressDetectingCustomer]','object','isUndefined','reason','logAgent','createAgentHistory','[callProgressDetectingAgent][logNoAnswer]','Busy','AnswerAGI','[callProgressDetectingAgent][logAnswerAGI]','[callProgressDetectingAgent][logCongestion]','[callProgressDetectingAgent]','[originated][decrement][callProgressDetectingAgent]','checkInBlack','Contact','phone','Contact\x20is\x20undefined','lookAgent','isEmpty','execCall','[Preview][execCall][success]','Queue:\x20','\x20IdHopper:\x20','idContact','called','Calling','[Preview][execCall][failure]','logBlacklist','createHistory','[Blacklist][error]','Contact\x20in\x20black\x20List','SIP/%s','status','reachable','unmonitored','execRun','unlock','unlockContact','disableContact','getContactPreview','recallme','validateContact','isValid','checkIsBlackList','Contact.phone','[Preview][checkIsBlackList]','[Preview][getContactPreview]','Call\x20unsuccessful','Empty\x20Contact','[Preview][validateContact][Empty\x20Campaign]','Empty\x20Campaign','[Preview][validateContact][Trunk\x20not\x20work]','campaign\x20Name:\x20','\x20Trunk\x20Backup\x20is\x20not\x20active','Trunk\x20not\x20work','[Preview][validateContact][Campaign\x20Active]','\x20Not\x20Active','SIP/%s/%s%s','trim','dialCutDigit','substring','getCallerId','dialRandomLastDigitCallerIdNumber','getCallerIdRandom','extractCalleridName','addVariables','merge','starttime','variablesAction','channelAgent','destconnectedlinenum','calleridnum','user:%s','user:agentconnect','accountcode','[originated][increment]','OriginateError','[originateFailure][logOriginateFailure]','channel','actionid','responsetime','isFailure','custom:agentringnoanswer','rejected','callProgressDetectingAgent','[callProgressDetectingAgent][logAnswer]','cause','[syncHangup][talking][cause]','statedesc','channelstate','transfer','[syncHangup][talking][transfer]','destuniqueid','destlinkedid','addVariable','variables','filterKey','keys','variable','value','error','[syncVarSet][Preview]','inspect','transfertargetlinkedid','transfererlinkedid','util','lodash','bluebird','uuid','moment','../../../config/environment','../../../config/logger','preview','actionPreview','./action','./util/util','redis','defaults','localhost','socket.io-emitter','prototype','enqueue','tail','finally','campaignsPreview','voiceQueues','trunks','agents','clockClearZombieChannels','originateresponse','syncOriginateResponse','bind','hangup','syncHangup','hanguprequest','syncHangupRequest','dialend','syncDialEnd','newexten','syncNewExten','varset','syncVarSet','attendedtransfer','syncAttendedTransfer','blindtransfer','syncBlindTransfer','loopCampaigns','emit','outbound','strategy','available','loggedIn','pTalking','sumBillable','sumDuration','sumHoldTime','talking','type','unmanaged','abandoned','waiting','dialMethod','dialOriginateCallerIdName','dialOriginateCallerIdNumber','dialPrefix','outboundAnswerCallsDay','outboundBlacklistCallsDay','outboundBusyCallsDay','outboundCongestionCallsDay','outboundDropCallsDayACS','outboundDropCallsDayCallersExit','outboundDropCallsDayTimeout','outboundNoAnswerCallsDay','outboundRejectCallsDay','predictiveIntervalAnsweredCalls','predictiveIntervalAvgHoldtime','predictiveIntervalDroppedCallsCallersExit','predictiveIntervalDroppedCallsTimeout','predictiveIntervalErlangCallsDroppedCalls','predictiveIntervalHitRate','predictiveIntervalMultiplicativeFactor','predictiveIntervalPauses','predictiveIntervalTotalCalls','originated','erlangCalls','erlangCallToSecond','startProgressive','Trunk','name','active','callerid','Interval'];(function(_0x1f337e,_0xe2c399){var _0x5c3b71=function(_0xa5328c){while(--_0xa5328c){_0x1f337e['push'](_0x1f337e['shift']());}};_0x5c3b71(++_0xe2c399);}(_0xfa10,0x101));var _0x0fa1=function(_0x2f98b1,_0x4dae45){_0x2f98b1=_0x2f98b1-0x0;var _0x96bb25=_0xfa10[_0x2f98b1];return _0x96bb25;};'use strict';var util=require(_0x0fa1('0x0'));var _=require(_0x0fa1('0x1'));var BPromise=require(_0x0fa1('0x2'));var uuid=require(_0x0fa1('0x3'));var moment=require(_0x0fa1('0x4'));var md5=require('md5');var Redis=require('ioredis');var config=require(_0x0fa1('0x5'));var logger=require(_0x0fa1('0x6'))(_0x0fa1('0x7'));var loggerAction=require(_0x0fa1('0x6'))(_0x0fa1('0x8'));var ami=require('../ami');var rpcDb=require('./rpcDb');var Action=require(_0x0fa1('0x9'));var ut=require(_0x0fa1('0xa'));config[_0x0fa1('0xb')]=_[_0x0fa1('0xc')](config[_0x0fa1('0xb')],{'host':_0x0fa1('0xd'),'port':0x18eb});var io=require(_0x0fa1('0xe'))(new Redis(config[_0x0fa1('0xb')]));var Sequence=function(){};Sequence[_0x0fa1('0xf')][_0x0fa1('0x10')]=function(_0x3182bb){this['tail']=this[_0x0fa1('0x11')]?this[_0x0fa1('0x11')][_0x0fa1('0x12')](_0x3182bb):_0x3182bb();};function Preview(_0x36dd56){this['sequence']=new Sequence();this[_0x0fa1('0x13')]=_0x36dd56[_0x0fa1('0x14')];this['trunks']=_0x36dd56[_0x0fa1('0x15')];this['actions']={};this[_0x0fa1('0x16')]=_0x36dd56['agents'];this[_0x0fa1('0x17')]=0x0;ami['on'](_0x0fa1('0x18'),this[_0x0fa1('0x19')][_0x0fa1('0x1a')](this));ami['on'](_0x0fa1('0x1b'),this[_0x0fa1('0x1c')][_0x0fa1('0x1a')](this));ami['on'](_0x0fa1('0x1d'),this[_0x0fa1('0x1e')][_0x0fa1('0x1a')](this));ami['on'](_0x0fa1('0x1f'),this[_0x0fa1('0x20')][_0x0fa1('0x1a')](this));ami['on'](_0x0fa1('0x21'),this[_0x0fa1('0x22')][_0x0fa1('0x1a')](this));ami['on'](_0x0fa1('0x23'),this[_0x0fa1('0x24')][_0x0fa1('0x1a')](this));ami['on'](_0x0fa1('0x25'),this[_0x0fa1('0x26')][_0x0fa1('0x1a')](this));ami['on'](_0x0fa1('0x27'),this[_0x0fa1('0x28')]['bind'](this));this[_0x0fa1('0x29')](this[_0x0fa1('0x13')]);}function emit(_0x3bb1f1,_0x3b235d,_0x33e259){io['to'](_0x3bb1f1)[_0x0fa1('0x2a')](_0x3b235d,_0x33e259);}function emitCampaignPreview(_0x522dc0){if(_0x522dc0['type']===_0x0fa1('0x2b')){var _0x258087={'id':_0x522dc0['id'],'name':_0x522dc0['name'],'strategy':_0x522dc0[_0x0fa1('0x2c')],'answered':_0x522dc0['answered'],'available':_0x522dc0[_0x0fa1('0x2d')],'loggedIn':_0x522dc0[_0x0fa1('0x2e')],'pTalking':_0x522dc0[_0x0fa1('0x2f')],'sumBillable':_0x522dc0[_0x0fa1('0x30')],'sumDuration':_0x522dc0[_0x0fa1('0x31')],'sumHoldTime':_0x522dc0[_0x0fa1('0x32')]||0x0,'talking':_0x522dc0[_0x0fa1('0x33')],'total':_0x522dc0['total'],'type':_0x522dc0[_0x0fa1('0x34')],'unmanaged':_0x522dc0[_0x0fa1('0x35')],'abandoned':_0x522dc0[_0x0fa1('0x36')],'waiting':_0x522dc0[_0x0fa1('0x37')],'loggedInDb':_0x522dc0['loggedInDb'],'dialActive':_0x522dc0['dialActive'],'dialMethod':_0x522dc0[_0x0fa1('0x38')],'dialOriginateCallerIdName':_0x522dc0[_0x0fa1('0x39')],'dialOriginateCallerIdNumber':_0x522dc0[_0x0fa1('0x3a')],'dialOriginateTimeout':_0x522dc0['dialOriginateTimeout'],'dialPrefix':_0x522dc0[_0x0fa1('0x3b')],'outboundAnswerAgiCallsDay':_0x522dc0['outboundAnswerAgiCallsDay'],'outboundAnswerCallsDay':_0x522dc0[_0x0fa1('0x3c')],'outboundBlacklistCallsDay':_0x522dc0[_0x0fa1('0x3d')],'outboundBusyCallsDay':_0x522dc0[_0x0fa1('0x3e')],'outboundCongestionCallsDay':_0x522dc0[_0x0fa1('0x3f')],'outboundDropCallsDayACS':_0x522dc0[_0x0fa1('0x40')],'outboundDropCallsDayCallersExit':_0x522dc0[_0x0fa1('0x41')],'outboundDropCallsDayTimeout':_0x522dc0[_0x0fa1('0x42')],'outboundNoAnswerCallsDay':_0x522dc0[_0x0fa1('0x43')],'outboundNoSuchCallsDay':_0x522dc0['outboundNoSuchCallsDay'],'outboundOriginateFailureCallsDay':_0x522dc0['outboundOriginateFailureCallsDay'],'outboundReCallsDay':_0x522dc0['outboundReCallsDay'],'outboundRejectCallsDay':_0x522dc0[_0x0fa1('0x44')],'outboundUnknownCallsDay':_0x522dc0['outboundUnknownCallsDay'],'outboundAbandonedCallsDay':_0x522dc0['outboundAbandonedCallsDay'],'predictiveIntervalAnsweredCalls':_0x522dc0[_0x0fa1('0x45')],'predictiveIntervalAvgHoldtime':_0x522dc0[_0x0fa1('0x46')],'predictiveIntervalAvgTalktime':_0x522dc0['predictiveIntervalAvgTalktime'],'predictiveIntervalDroppedCallsCallersExit':_0x522dc0[_0x0fa1('0x47')],'predictiveIntervalDroppedCallsTimeout':_0x522dc0[_0x0fa1('0x48')],'predictiveIntervalErlangCalls':_0x522dc0['predictiveIntervalErlangCalls'],'predictiveIntervalErlangCallsDroppedCalls':_0x522dc0[_0x0fa1('0x49')],'predictiveIntervalHitRate':_0x522dc0[_0x0fa1('0x4a')],'predictiveIntervalMultiplicativeFactor':_0x522dc0[_0x0fa1('0x4b')],'predictiveIntervalPauses':_0x522dc0[_0x0fa1('0x4c')],'predictiveIntervalAvailable':_0x522dc0['predictiveIntervalAvailable'],'predictiveIntervalTotalCalls':_0x522dc0[_0x0fa1('0x4d')],'message':_0x522dc0['message'],'originated':_0x522dc0[_0x0fa1('0x4e')],'erlangCalls':_0x522dc0[_0x0fa1('0x4f')],'erlangCallToSecond':_0x522dc0[_0x0fa1('0x50')],'erlangAbandonmentRate':_0x522dc0['erlangAbandonmentRate'],'erlangBusyFactor':_0x522dc0['erlangBusyFactor'],'startPredictive':_0x522dc0['startPredictive'],'startProgressive':_0x522dc0[_0x0fa1('0x51')]};if(_0x522dc0[_0x0fa1('0x52')]){_0x258087['Trunk']={'id':_0x522dc0[_0x0fa1('0x52')]['id'],'name':_0x522dc0['Trunk'][_0x0fa1('0x53')],'active':_0x522dc0['Trunk'][_0x0fa1('0x54')],'callerid':_0x522dc0[_0x0fa1('0x52')][_0x0fa1('0x55')]};}if(_0x522dc0[_0x0fa1('0x56')]){_0x258087[_0x0fa1('0x56')]={'id':_0x522dc0[_0x0fa1('0x56')]['id'],'name':_0x522dc0[_0x0fa1('0x56')][_0x0fa1('0x53')]};}var _0x8618cb=md5(JSON[_0x0fa1('0x57')](_0x258087));if(_0x522dc0[_0x0fa1('0x58')]!==_0x8618cb){_0x522dc0[_0x0fa1('0x58')]=_0x8618cb;emit(util['format'](_0x0fa1('0x59'),_0x258087['name']),_0x0fa1('0x5a'),_0x258087);}}}function emitVoiceQueueChannelRemove(_0x58dda4){logger[_0x0fa1('0x5b')](_0x0fa1('0x5c'),JSON[_0x0fa1('0x57')](_0x58dda4));emit(util[_0x0fa1('0x5d')](_0x0fa1('0x59'),_0x58dda4['name']),_0x0fa1('0x5e'),_0x58dda4);io[_0x0fa1('0x2a')](_0x0fa1('0x5f'),_0x58dda4);}function notSendMessagesQueue(_0x1ecf44){if(_0x1ecf44['sendMessageOneNotActive']){if(_0x1ecf44[_0x0fa1('0x4e')]===0x0&&_0x1ecf44[_0x0fa1('0x2f')]===0x0){_0x1ecf44[_0x0fa1('0x60')]=![];_0x1ecf44[_0x0fa1('0x2d')]=0x0;_0x1ecf44[_0x0fa1('0x61')]=0x0;_0x1ecf44[_0x0fa1('0x62')]=_0x0fa1('0x63');ut['logger']('[CampaignPreview]\x20Campaign\x20Queue:\x20',_0x1ecf44[_0x0fa1('0x53')]+_0x0fa1('0x64'));}else{_0x1ecf44['message']='IS_DISACTIVED';ut[_0x0fa1('0x65')]('[CampaignPreview]\x20Campaign\x20Queue:\x20',_0x1ecf44[_0x0fa1('0x53')]+_0x0fa1('0x66'));}emitCampaignPreview(_0x1ecf44);}}Preview['prototype'][_0x0fa1('0x29')]=function(){var _0xbc7260=this;setInterval(function(){_0xbc7260[_0x0fa1('0x67')]();},0x7cf);};Preview[_0x0fa1('0xf')][_0x0fa1('0x67')]=function(){var _0x56c327=this[_0x0fa1('0x13')];this[_0x0fa1('0x17')]+=0x1;for(var _0x203281 in _0x56c327){if(_0x56c327['hasOwnProperty'](_0x203281)&&(_0x56c327[_0x203281][_0x0fa1('0x38')]===_0x0fa1('0x7')||_0x56c327[_0x203281][_0x0fa1('0x38')]===_0x0fa1('0x68'))&&_0x56c327[_0x203281][_0x0fa1('0x34')]==='outbound'){if(this[_0x0fa1('0x17')]>0x7){this[_0x0fa1('0x17')]=0x0;this[_0x0fa1('0x69')]();}}if(_0x56c327[_0x0fa1('0x6a')](_0x203281)&&_0x56c327[_0x203281][_0x0fa1('0x38')]===_0x0fa1('0x7')&&_0x56c327[_0x203281][_0x0fa1('0x34')]==='outbound'){if(_0x56c327[_0x203281][_0x0fa1('0x6b')]){this[_0x0fa1('0x6c')](_0x56c327[_0x203281]);this[_0x0fa1('0x6d')](_0x56c327[_0x203281]);}else{notSendMessagesQueue(_0x56c327[_0x203281]);}}}};Preview[_0x0fa1('0xf')]['clearZombieChannel']=function(_0x47fe01){var _0xe90ba1=this;this[_0x0fa1('0x6e')][_0x0fa1('0x10')](function(){if(!_[_0x0fa1('0x6f')](_0xe90ba1[_0x0fa1('0x70')][_0x47fe01])){loggerAction[_0x0fa1('0x5b')](_0x0fa1('0x71'),_0x47fe01,_0x0fa1('0x72'),_0xe90ba1[_0x0fa1('0x70')][_0x47fe01]['queue'],_0x0fa1('0x73'),JSON[_0x0fa1('0x57')](_0xe90ba1[_0x0fa1('0x13')][_0xe90ba1[_0x0fa1('0x70')][_0x47fe01][_0x0fa1('0x74')]][_0x0fa1('0x4e')]),_0x0fa1('0x75'),JSON['stringify'](_0xe90ba1['campaignsPreview'][_0xe90ba1[_0x0fa1('0x70')][_0x47fe01][_0x0fa1('0x74')]][_0x0fa1('0x2f')]),JSON[_0x0fa1('0x57')](_0xe90ba1[_0x0fa1('0x70')][_0x47fe01][_0x0fa1('0x76')]),JSON[_0x0fa1('0x57')](_[_0x0fa1('0x77')](_0xe90ba1[_0x0fa1('0x70')][_0x47fe01],[_0x0fa1('0x78'),_0x0fa1('0x79'),_0x0fa1('0x7a'),_0x0fa1('0x7b')])));return ami[_0x0fa1('0x7c')]({'action':'status','channel':_0xe90ba1['actions'][_0x47fe01]['channel']})[_0x0fa1('0x7d')](function(_0x1cb8ed){if(_0x1cb8ed[_0x0fa1('0x62')]===_0x0fa1('0x7e')){setTimeout(function(){if(_0xe90ba1['actions'][_0x47fe01]){ut[_0x0fa1('0x7f')](_0xe90ba1['campaignsPreview'][_0xe90ba1[_0x0fa1('0x70')][_0x47fe01][_0x0fa1('0x74')]],'[clearZombieChannel]');if(_0xe90ba1[_0x0fa1('0x70')][_0x47fe01][_0x0fa1('0x76')]===!![]){ut[_0x0fa1('0x80')](_0xe90ba1[_0x0fa1('0x13')][_0xe90ba1[_0x0fa1('0x70')][_0x47fe01][_0x0fa1('0x74')]],_0x0fa1('0x81'));ut[_0x0fa1('0x82')](_0x0fa1('0x83')+_0x47fe01,_0xe90ba1[_0x0fa1('0x70')][_0x47fe01][_0x0fa1('0x74')]);}ut[_0x0fa1('0x82')](_0x0fa1('0x84')+_0x47fe01,_0xe90ba1[_0x0fa1('0x70')][_0x47fe01][_0x0fa1('0x74')]);delete _0xe90ba1[_0x0fa1('0x70')][_0x47fe01];}},0x2328);}});}});};Preview['prototype'][_0x0fa1('0x69')]=function(){var _0x2a3a78=this;loggerAction[_0x0fa1('0x5b')](_0x0fa1('0x85'),_[_0x0fa1('0x86')](this['actions']));for(var _0x47a076 in this[_0x0fa1('0x70')]){if(_0x2a3a78[_0x0fa1('0x70')][_0x0fa1('0x6a')](_0x47a076)){_0x2a3a78[_0x0fa1('0x87')](_0x47a076);}}};Preview[_0x0fa1('0xf')][_0x0fa1('0x6d')]=function(_0x296a1d){var _0x9e7463=this;rpcDb[_0x0fa1('0x88')](_0x296a1d['id'],ut[_0x0fa1('0x89')](this['agents']))[_0x0fa1('0x8a')](function(_0x2a67ce){if(!_[_0x0fa1('0x6f')](_0x2a67ce)){for(var _0x522ed8=0x0;_0x522ed8<_0x2a67ce[_0x0fa1('0x8b')];_0x522ed8+=0x1){if(ut['getDiff'](_0x2a67ce[_0x522ed8][_0x0fa1('0x8c')])<_0x296a1d['dialRecallMeTimeout']*0x3c){if(_0x2a67ce[_0x522ed8][_0x0fa1('0x8d')]&&!_0x2a67ce[_0x522ed8][_0x0fa1('0x8d')]['voicePause']){_0x9e7463[_0x0fa1('0x8e')](_0x2a67ce[_0x522ed8]['id'])[_0x0fa1('0x8a')](ut[_0x0fa1('0x8f')](_0x0fa1('0x90')))[_0x0fa1('0x7d')](ut['logger2']('[RecallMe]'));}else{rpcDb['disableContact'](_0x2a67ce[_0x522ed8]['id']);}}else{var _0x1cead0=new Action(_0x2a67ce[_0x522ed8],_0x296a1d);_0x1cead0['starttime']=moment()[_0x0fa1('0x5d')](_0x0fa1('0x91'));_0x296a1d['outboundReCallsDay']+=0x1;ut[_0x0fa1('0x92')](_0x1cead0,0x17,_0x0fa1('0x93'));if(_0x296a1d[_0x0fa1('0x94')]){rpcDb[_0x0fa1('0x95')](ut[_0x0fa1('0x96')](_0x2a67ce[_0x522ed8]));rpcDb['createCustomerHistory'](_0x1cead0,'[HistoryDialRecallInQueue][historyCatch]');}else{ut['logCustomer'](_0x1cead0,0x16,_0x0fa1('0x97'));rpcDb['createCustomerHistory'](_0x1cead0,_0x0fa1('0x98'));rpcDb[_0x0fa1('0x99')](_0x1cead0,'[HistoryRecallClose]');}}}}})[_0x0fa1('0x7d')](ut[_0x0fa1('0x8f')](_0x0fa1('0x9a')));};Preview[_0x0fa1('0xf')][_0x0fa1('0x6c')]=function(_0x5cf84f){_0x5cf84f[_0x0fa1('0x60')]=!![];if(ut[_0x0fa1('0x9b')](_0x5cf84f[_0x0fa1('0x2e')])){_0x5cf84f[_0x0fa1('0x62')]=_0x0fa1('0x9c');}else if(!ut[_0x0fa1('0x9d')](_0x5cf84f[_0x0fa1('0x6b')])){_0x5cf84f[_0x0fa1('0x62')]=_0x0fa1('0x63');}else if(!this[_0x0fa1('0x9e')](_0x5cf84f['Trunk'])){if(!this[_0x0fa1('0x9e')](_0x5cf84f[_0x0fa1('0x9f')])){_0x5cf84f[_0x0fa1('0x62')]=_0x0fa1('0xa0');}else{_0x5cf84f[_0x0fa1('0x62')]=_0x0fa1('0xa1');}}else{_0x5cf84f[_0x0fa1('0x62')]='ACTIVE';}emitCampaignPreview(_0x5cf84f);};Preview[_0x0fa1('0xf')][_0x0fa1('0xa2')]=function(_0x583ce7,_0x2efa27,_0x2da131){var _0x1242fe=this;var _0x5aeabf=this['actions'][_0x2efa27];var _0x46b182=this['campaignsPreview'][_0x5aeabf['queue']];var _0x32a7f9;if(_0x46b182){switch(_0x2da131){case'1':_0x46b182[_0x0fa1('0xa3')]+=0x1;_0x5aeabf['countnosuchnumberretry']+=0x1;_0x5aeabf[_0x0fa1('0xa4')]=ut[_0x0fa1('0xa5')](_0x5aeabf);ut[_0x0fa1('0x92')](_0x5aeabf,0x0,_0x0fa1('0xa6'));ami[_0x0fa1('0x2a')](_0x0fa1('0xa7'),ut['buildObj'](_0x5aeabf,_0x0fa1('0xa8')));rpcDb['createCustomerHistory'](_0x5aeabf,_0x0fa1('0xa9'));if(ut['totalGlobal'](_0x5aeabf)>=_0x46b182[_0x0fa1('0xaa')]){_0x32a7f9=ut[_0x0fa1('0xab')](_0x5aeabf,0xf,'Global');rpcDb[_0x0fa1('0x99')](_0x32a7f9,'[callProgressDetectingCustomer][logNoSuchGlobal]');}else{if(_0x5aeabf['countnosuchnumberretry']>=_0x46b182['dialNoSuchNumberMaxRetry']){rpcDb[_0x0fa1('0x99')](_0x5aeabf,_0x0fa1('0xac'));}else{rpcDb[_0x0fa1('0xad')](ut['scheduledAt'](_0x5aeabf,_0x0fa1('0xae'),_0x46b182[_0x0fa1('0xaf')]),_0x5aeabf[_0x0fa1('0xb0')],_0x5aeabf[_0x0fa1('0xb1')]);}}delete this[_0x0fa1('0x70')][_0x583ce7['linkedid']];break;case _0x0fa1('0xb2'):var _0x268eee=moment()[_0x0fa1('0x5d')](_0x0fa1('0x91'));_0x5aeabf['responsetime']=_0x268eee;_0x5aeabf['answertime']=_0x268eee;_0x5aeabf['dialAnswer']=!![];_0x46b182[_0x0fa1('0x2f')]+=0x1;logger[_0x0fa1('0x5b')](_0x0fa1('0xb3'),_0x5aeabf[_0x0fa1('0xb4')],_0x0fa1('0xb5'),_0x46b182['name'],'pTalking:\x20',_0x46b182['pTalking']);ami[_0x0fa1('0x2a')](_0x0fa1('0xb6'),ut[_0x0fa1('0xb7')](_0x5aeabf,'connect',this[_0x0fa1('0x13')][_0x5aeabf[_0x0fa1('0x74')]]));if(_0x46b182['acw']){ami[_0x0fa1('0x2a')](_0x0fa1('0xb8'),ut['buildAcw'](_0x5aeabf));}break;case'16':ami[_0x0fa1('0x2a')](_0x0fa1('0xb9'),ut[_0x0fa1('0xb7')](_0x5aeabf,_0x0fa1('0xba'),this[_0x0fa1('0x13')][_0x5aeabf['queue']]));emitVoiceQueueChannelRemove(ut[_0x0fa1('0xb7')](_0x5aeabf,'complete'));_0x46b182[_0x0fa1('0x3c')]+=0x1;_0x46b182['total']+=0x1;_0x46b182['answered']+=0x1;ut[_0x0fa1('0x80')](_0x46b182,_0x0fa1('0xbb'));_0x5aeabf[_0x0fa1('0xa4')]=ut['totalGlobal'](_0x5aeabf);ut['logCustomer'](_0x5aeabf,0x4,_0x0fa1('0xbc'));rpcDb[_0x0fa1('0xbd')](_0x5aeabf,'[callProgressDetectingCustomer][logAnswer]');rpcDb[_0x0fa1('0x99')](_0x5aeabf,_0x0fa1('0xbe'));rpcDb[_0x0fa1('0xbf')](_0x5aeabf);_0x46b182[_0x0fa1('0x31')]+=_0x5aeabf[_0x0fa1('0xc0')];_0x46b182['sumBillable']+=_0x5aeabf[_0x0fa1('0xc0')];logger[_0x0fa1('0x5b')](_0x0fa1('0xc1'),_0x5aeabf[_0x0fa1('0xb4')],_0x0fa1('0xb5'),_0x46b182[_0x0fa1('0x53')],_0x0fa1('0x75'),_0x46b182[_0x0fa1('0x2f')]);delete this[_0x0fa1('0x70')][_0x583ce7[_0x0fa1('0xc2')]];break;case'BUSY':_0x46b182[_0x0fa1('0x3e')]+=0x1;_0x5aeabf[_0x0fa1('0xc3')]+=0x1;_0x5aeabf[_0x0fa1('0xa4')]=ut[_0x0fa1('0xa5')](_0x5aeabf);ut[_0x0fa1('0x92')](_0x5aeabf,0x5,'Busy');ami[_0x0fa1('0x2a')]('custom:agentbusy',ut[_0x0fa1('0xb7')](_0x5aeabf,_0x0fa1('0xc4')));rpcDb[_0x0fa1('0xbd')](_0x5aeabf,_0x0fa1('0xc5'));if(ut[_0x0fa1('0xa5')](_0x5aeabf)>=_0x46b182['dialGlobalMaxRetry']){_0x32a7f9=ut[_0x0fa1('0xab')](_0x5aeabf,0xf,_0x0fa1('0xc6'));rpcDb[_0x0fa1('0x99')](_0x32a7f9,_0x0fa1('0xc7'));}else{if(_0x5aeabf['countbusyretry']>=_0x46b182['dialBusyMaxRetry']){rpcDb[_0x0fa1('0x99')](_0x5aeabf,_0x0fa1('0xc5'));}else{rpcDb[_0x0fa1('0xad')](ut['scheduledAt'](_0x5aeabf,_0x0fa1('0xc3'),_0x46b182['dialBusyRetryFrequency']),_0x5aeabf[_0x0fa1('0xb0')],_0x5aeabf[_0x0fa1('0xb1')]);}}break;case'NOANSWER':_0x46b182[_0x0fa1('0x43')]+=0x1;_0x5aeabf[_0x0fa1('0xc8')]+=0x1;_0x5aeabf[_0x0fa1('0xa4')]=ut[_0x0fa1('0xa5')](_0x5aeabf);ut[_0x0fa1('0x92')](_0x5aeabf,0x3,_0x0fa1('0xc9'));ami[_0x0fa1('0x2a')](_0x0fa1('0xca'),ut[_0x0fa1('0xb7')](_0x5aeabf,'noanswer'));rpcDb[_0x0fa1('0xbd')](_0x5aeabf,_0x0fa1('0xcb'));if(ut[_0x0fa1('0xa5')](_0x5aeabf)>=_0x46b182[_0x0fa1('0xaa')]){_0x32a7f9=ut['cloneAction'](_0x5aeabf,0xf,_0x0fa1('0xc6'));rpcDb['createCustomerFinal'](_0x32a7f9,_0x0fa1('0xcc'));}else{if(_0x5aeabf['countnoanswerretry']>=_0x46b182[_0x0fa1('0xcd')]){rpcDb['createCustomerFinal'](_0x5aeabf,_0x0fa1('0xcb'));}else{rpcDb[_0x0fa1('0xad')](ut['scheduledAt'](_0x5aeabf,_0x0fa1('0xc8'),_0x46b182[_0x0fa1('0xce')]),_0x5aeabf[_0x0fa1('0xb0')],_0x5aeabf['activeContact']);}}break;case'CONGESTION':_0x46b182[_0x0fa1('0x3f')]+=0x1;_0x5aeabf[_0x0fa1('0xcf')]+=0x1;_0x5aeabf[_0x0fa1('0xa4')]=ut[_0x0fa1('0xa5')](_0x5aeabf);ut['logCustomer'](_0x5aeabf,0x8,'Congestion');ami['emit']('custom:agentcongestion',ut['buildObj'](_0x5aeabf,_0x0fa1('0xd0')));rpcDb['createCustomerHistory'](_0x5aeabf,_0x0fa1('0xd1'));if(ut[_0x0fa1('0xa5')](_0x5aeabf)>=_0x46b182[_0x0fa1('0xaa')]){_0x32a7f9=ut[_0x0fa1('0xab')](_0x5aeabf,0xf,_0x0fa1('0xc6'));rpcDb[_0x0fa1('0x99')](_0x32a7f9,_0x0fa1('0xd2'));}else{if(_0x5aeabf[_0x0fa1('0xcf')]>=_0x46b182[_0x0fa1('0xd3')]){rpcDb[_0x0fa1('0x99')](_0x5aeabf,'[callProgressDetectingCustomer][logCongestion]');}else{rpcDb[_0x0fa1('0xad')](ut[_0x0fa1('0xd4')](_0x5aeabf,_0x0fa1('0xcf'),_0x46b182[_0x0fa1('0xd5')]),_0x5aeabf[_0x0fa1('0xb0')],_0x5aeabf[_0x0fa1('0xb1')]);}}break;case _0x0fa1('0xd6'):_0x46b182[_0x0fa1('0x44')]+=0x1;_0x5aeabf['countagentrejectretry']+=0x1;_0x5aeabf[_0x0fa1('0xa4')]=ut[_0x0fa1('0xa5')](_0x5aeabf);ut[_0x0fa1('0x92')](_0x5aeabf,0x14,'AgentReject');ami[_0x0fa1('0x2a')]('custom:agentreject',ut[_0x0fa1('0xb7')](_0x5aeabf,_0x0fa1('0xd7')));rpcDb[_0x0fa1('0xbd')](_0x5aeabf,_0x0fa1('0xd8'));if(ut['totalGlobal'](_0x5aeabf)>=_0x46b182[_0x0fa1('0xaa')]){_0x32a7f9=ut[_0x0fa1('0xab')](_0x5aeabf,0x14,_0x0fa1('0xd9'));rpcDb[_0x0fa1('0x99')](_0x32a7f9,_0x0fa1('0xda'));}else{if(_0x5aeabf[_0x0fa1('0xdb')]>=_0x46b182[_0x0fa1('0xdc')]){rpcDb['createCustomerFinal'](_0x5aeabf,'[callProgressDetectingCustomer][logAgentReject]');}else{rpcDb[_0x0fa1('0xad')](ut[_0x0fa1('0xd4')](_0x5aeabf,_0x0fa1('0xdb'),_0x46b182[_0x0fa1('0xdd')]),_0x5aeabf[_0x0fa1('0xb0')],_0x5aeabf['activeContact']);}}break;case'ABANDONED':_0x46b182[_0x0fa1('0xde')]+=0x1;_0x5aeabf[_0x0fa1('0xdf')]+=0x1;_0x5aeabf[_0x0fa1('0xa4')]=ut[_0x0fa1('0xa5')](_0x5aeabf);ut[_0x0fa1('0x92')](_0x5aeabf,0xb,_0x0fa1('0xe0'));rpcDb[_0x0fa1('0xbd')](_0x5aeabf,'[callProgressDetectingCustomer][logAbandoned]');if(ut['totalGlobal'](_0x5aeabf)>=_0x46b182[_0x0fa1('0xaa')]){_0x32a7f9=ut[_0x0fa1('0xab')](_0x5aeabf,0xf,_0x0fa1('0xc6'));rpcDb['createCustomerFinal'](_0x32a7f9,_0x0fa1('0xe1'));}else{if(_0x5aeabf['countabandonedetry']>=_0x46b182[_0x0fa1('0xe2')]){rpcDb[_0x0fa1('0x99')](_0x5aeabf,_0x0fa1('0xe1'));}else{rpcDb[_0x0fa1('0xad')](ut[_0x0fa1('0xd4')](_0x5aeabf,_0x0fa1('0xdf'),_0x46b182[_0x0fa1('0xe3')]),_0x5aeabf[_0x0fa1('0xb0')],_0x5aeabf[_0x0fa1('0xb1')]);}}break;case'18':_0x46b182['outboundUnknownCallsDay']+=0x1;_0x5aeabf['countmachineretry']+=0x1;_0x5aeabf['countglobal']=ut[_0x0fa1('0xa5')](_0x5aeabf);ut[_0x0fa1('0x92')](_0x5aeabf,0x12,_0x583ce7['cause-txt']||_0x583ce7[_0x0fa1('0xe4')]);ami[_0x0fa1('0x2a')]('custom:amd',ut['buildObj'](_0x5aeabf,_0x0fa1('0xe5')));rpcDb['createCustomerHistory'](_0x5aeabf,_0x0fa1('0xe6'));if(ut[_0x0fa1('0xa5')](_0x5aeabf)>=_0x46b182['dialGlobalMaxRetry']){_0x32a7f9=ut[_0x0fa1('0xab')](_0x5aeabf,0xf,_0x0fa1('0xc6'));rpcDb[_0x0fa1('0x99')](_0x32a7f9,_0x0fa1('0xe6'));}else{rpcDb[_0x0fa1('0x99')](_0x5aeabf,_0x0fa1('0xe6'));}delete this[_0x0fa1('0x70')][_0x583ce7['linkedid']];break;case'19':_0x46b182[_0x0fa1('0xe7')]+=0x1;_0x5aeabf[_0x0fa1('0xa4')]=ut[_0x0fa1('0xa5')](_0x5aeabf);ut[_0x0fa1('0x92')](_0x5aeabf,0x13,_0x583ce7['cause-txt']||_0x583ce7[_0x0fa1('0xe4')]);ami['emit'](_0x0fa1('0xe8'),ut[_0x0fa1('0xb7')](_0x5aeabf,_0x0fa1('0xe5')));rpcDb[_0x0fa1('0xbd')](_0x5aeabf,_0x0fa1('0xe9'));if(ut['totalGlobal'](_0x5aeabf)>=_0x46b182[_0x0fa1('0xaa')]){_0x32a7f9=ut[_0x0fa1('0xab')](_0x5aeabf,0xf,'Global');rpcDb[_0x0fa1('0x99')](_0x32a7f9,'[callProgressDetectingCustomer][machine]');}else{rpcDb[_0x0fa1('0x99')](_0x5aeabf,_0x0fa1('0xe9'));}delete this[_0x0fa1('0x70')][_0x583ce7[_0x0fa1('0xc2')]];break;default:if(_0x5aeabf[_0x0fa1('0x76')]){ut['decrementTalkink'](_0x46b182,_0x0fa1('0xea'));ut['loggerError'](_0x0fa1('0xeb')+_0x46b182[_0x0fa1('0x53')],_0x583ce7);}_0x46b182[_0x0fa1('0xe7')]+=0x1;_0x5aeabf[_0x0fa1('0xa4')]=ut['totalGlobal'](_0x5aeabf);ut[_0x0fa1('0x92')](_0x5aeabf,0xc,_0x583ce7['cause-txt']||_0x583ce7[_0x0fa1('0xe4')]);rpcDb[_0x0fa1('0xbd')](_0x5aeabf,_0x0fa1('0xec'));if(ut[_0x0fa1('0xa5')](_0x5aeabf)>=_0x46b182[_0x0fa1('0xaa')]){_0x32a7f9=ut[_0x0fa1('0xab')](_0x5aeabf,0xf,_0x0fa1('0xc6'));rpcDb[_0x0fa1('0x99')](_0x32a7f9,'[callProgressDetectingCustomer][logUnknownGlobal]');}else{rpcDb[_0x0fa1('0x99')](_0x5aeabf,_0x0fa1('0xed'));}delete this[_0x0fa1('0x70')][_0x583ce7[_0x0fa1('0xc2')]];}if(!(_0x5aeabf[_0x0fa1('0x76')]&&_0x2da131==='16')){ut[_0x0fa1('0x7f')](_0x46b182,_0x0fa1('0xee'));logger[_0x0fa1('0x5b')](_0x0fa1('0xef'),_0x5aeabf[_0x0fa1('0xb4')],'\x20Queue',_0x46b182[_0x0fa1('0x53')],_0x0fa1('0x73'),_0x46b182[_0x0fa1('0x4e')]);}if(_0x2da131!==_0x0fa1('0xb2')){delete this[_0x0fa1('0x70')][_0x583ce7[_0x0fa1('0xc2')]];delete this[_0x0fa1('0x70')][_0x583ce7['destlinkedid']];}}};Preview[_0x0fa1('0xf')]['callProgressDetectingAgent']=function(_0x23f2d7,_0x47a92d,_0x4ccaca){if(_['isUndefined'](_0x47a92d)&&_0x0fa1('0xf0')!==typeof _0x47a92d){return;}if(_[_0x0fa1('0xf1')](_0x4ccaca)&&_0x0fa1('0xf0')!==typeof _0x4ccaca){return;}switch(_0x4ccaca[_0x0fa1('0xf2')]){case'0':ut[_0x0fa1('0xf3')](_0x23f2d7,0x0,'NoSuchNumber');rpcDb[_0x0fa1('0xf4')](_0x23f2d7,'[callProgressDetectingAgent][logNoSuch]');break;case'3':ut[_0x0fa1('0xf3')](_0x23f2d7,0x3,_0x0fa1('0xc9'));rpcDb['createAgentHistory'](_0x23f2d7,_0x0fa1('0xf5'));break;case'5':ut[_0x0fa1('0xf3')](_0x23f2d7,0x5,_0x0fa1('0xf6'));rpcDb[_0x0fa1('0xf4')](_0x23f2d7,'[callProgressDetectingAgent][logBusy]');break;case'8':ut[_0x0fa1('0xf3')](_0x23f2d7,0x8,'Congestion');rpcDb[_0x0fa1('0xf4')](_0x23f2d7,'[callProgressDetectingAgent][logCongestion]');break;case'22':ut[_0x0fa1('0xf3')](_0x23f2d7,0x16,_0x0fa1('0xf7'));rpcDb[_0x0fa1('0xf4')](_0x23f2d7,_0x0fa1('0xf8'));break;default:ut[_0x0fa1('0xf3')](_0x23f2d7,0xc,_0x4ccaca[_0x0fa1('0xf2')]);rpcDb[_0x0fa1('0xf4')](_0x23f2d7,_0x0fa1('0xf9'));}ut[_0x0fa1('0x7f')](_0x47a92d,_0x0fa1('0xfa'));logger[_0x0fa1('0x5b')](_0x0fa1('0xfb'),_0x23f2d7[_0x0fa1('0xb4')],_0x0fa1('0xb5'),_0x47a92d[_0x0fa1('0x53')],_0x0fa1('0x73'),_0x47a92d['originated']);delete this[_0x0fa1('0x70')][_0x23f2d7[_0x0fa1('0xb4')]];};Preview[_0x0fa1('0xf')][_0x0fa1('0xfc')]=function(_0x3a3d01,_0x3d7224,_0x4a6340,_0x17e01b,_0x1821e6){var _0x1799c2=this;return new BPromise(function(_0x1c8f42,_0x122fd4){if(_[_0x0fa1('0x6f')](_0x3d7224)||_[_0x0fa1('0x6f')](_0x3d7224[_0x0fa1('0xfd')])||_[_0x0fa1('0x6f')](_0x3d7224['Contact'][_0x0fa1('0xfe')])||_[_0x0fa1('0x6f')](_0x3d7224[_0x0fa1('0x7a')])){_0x122fd4(ut[_0x0fa1('0x62')](_0x0fa1('0xff'),_0x17e01b,_0x1821e6));return;}var _0x44abbb=uuid['v4']();var _0x5e1935=_0x1799c2[_0x0fa1('0x13')][_0x3d7224['Queue'][_0x0fa1('0x53')]];var _0x374617=_0x4a6340?_0x1799c2['agents'][_0x4a6340]['id']:undefined;_0x1799c2['actions'][_0x44abbb]=new Action(_0x3d7224,_0x5e1935,_0x44abbb,_0x4a6340,_0x374617);var _0x2f5864=_0x1799c2[_0x0fa1('0x70')][_0x44abbb];_0x2f5864[_0x0fa1('0xb0')]=_0x17e01b;_0x2f5864[_0x0fa1('0xb1')]=_0x1821e6;_0x2f5864[_0x0fa1('0x100')]=_0x4a6340;if(_[_0x0fa1('0x101')](_0x3a3d01)){_0x1799c2[_0x0fa1('0x102')](_0x2f5864,_0x5e1935,_0x3d7224,_0x4a6340)['then'](function(_0x52dc83){logger[_0x0fa1('0x5b')](_0x0fa1('0x103'),_0x0fa1('0x104')+_0x2f5864['queue']+_0x0fa1('0x105')+_0x2f5864[_0x0fa1('0x106')],JSON[_0x0fa1('0x57')](_0x52dc83));ami[_0x0fa1('0x2a')]('custom:agentcalled',ut['buildObj'](_0x2f5864,_0x0fa1('0x107'),_0x1799c2[_0x0fa1('0x13')][_0x2f5864[_0x0fa1('0x74')]]));_0x1c8f42(ut[_0x0fa1('0x62')](_0x0fa1('0x108')));})[_0x0fa1('0x7d')](function(_0x4856d8){ut[_0x0fa1('0x65')](_0x0fa1('0x109'),_0x4856d8);_0x122fd4(ut[_0x0fa1('0x62')]('Call\x20failed',_0x17e01b,_0x1821e6));});}else{_0x5e1935[_0x0fa1('0x3d')]+=0x1;ut[_0x0fa1('0x10a')](_0x2f5864);rpcDb[_0x0fa1('0x10b')](_0x2f5864,_0x0fa1('0x10c'));delete _0x1799c2[_0x0fa1('0x70')][_0x44abbb];_0x122fd4(ut[_0x0fa1('0x62')](_0x0fa1('0x10d'),_0x17e01b,_0x1821e6));}});};Preview[_0x0fa1('0xf')][_0x0fa1('0x9e')]=function(_0x32f8b8){return!_[_0x0fa1('0x6f')](_0x32f8b8)&&!_[_0x0fa1('0x6f')](_0x32f8b8['name'])&&!_[_0x0fa1('0x6f')](_0x32f8b8[_0x0fa1('0x54')])&&_0x32f8b8[_0x0fa1('0x54')]&&!_[_0x0fa1('0x6f')](this[_0x0fa1('0x15')][util[_0x0fa1('0x5d')](_0x0fa1('0x10e'),_0x32f8b8[_0x0fa1('0x53')])])&&!_['isNil'](this[_0x0fa1('0x15')][util[_0x0fa1('0x5d')](_0x0fa1('0x10e'),_0x32f8b8[_0x0fa1('0x53')])][_0x0fa1('0x10f')])&&(this[_0x0fa1('0x15')][util[_0x0fa1('0x5d')]('SIP/%s',_0x32f8b8[_0x0fa1('0x53')])]['status']===_0x0fa1('0x110')||this[_0x0fa1('0x15')][util[_0x0fa1('0x5d')]('SIP/%s',_0x32f8b8[_0x0fa1('0x53')])]['status']===_0x0fa1('0x111'));};Preview[_0x0fa1('0xf')][_0x0fa1('0x8e')]=function(_0x1f1bff,_0x5a7891){var _0x20ab37=this;return new BPromise(function(_0xe07aaa,_0x28ee27){_0x20ab37[_0x0fa1('0x112')](_0x1f1bff,_0x5a7891)[_0x0fa1('0x8a')](function(_0x2d75c6){_0xe07aaa(_[_0x0fa1('0x77')](_0x2d75c6,[_0x0fa1('0x62')]));})[_0x0fa1('0x7d')](function(_0x3c2217){if(_0x3c2217[_0x0fa1('0x113')]){rpcDb[_0x0fa1('0x114')](_0x1f1bff);}if(_0x3c2217[_0x0fa1('0x54')]){rpcDb[_0x0fa1('0x115')](_0x1f1bff);}_0x28ee27(_['pick'](_0x3c2217,['message']));});});};Preview['prototype'][_0x0fa1('0x112')]=function(_0xf1c9ea,_0x344fd0){var _0x40e6ae=this;return new BPromise(function(_0x122d1f,_0x13c53f){var _0x394ebb,_0x2eda67;rpcDb[_0x0fa1('0x116')](_0xf1c9ea)[_0x0fa1('0x8a')](function(_0x511a31){if(!_['isNil'](_0x511a31[0x0])){_0x2eda67=_0x511a31[0x0][_0x0fa1('0x117')]?![]:!![];_0x394ebb=_0x511a31[0x0][_0x0fa1('0x117')]?!![]:![];_0x394ebb=_0x344fd0?!![]:_0x394ebb;}var _0x37cf03=_0x40e6ae[_0x0fa1('0x118')](_0x511a31);if(_0x37cf03[_0x0fa1('0x119')]){rpcDb[_0x0fa1('0x11a')](_['pick'](_0x511a31[0x0],['VoiceQueueId',_0x0fa1('0x11b')]))[_0x0fa1('0x8a')](function(_0x27fedb){_0x40e6ae['checkInBlack'](_0x27fedb,_0x511a31[0x0],_0x344fd0,_0x2eda67,_0x394ebb)[_0x0fa1('0x8a')](function(_0x3de70d){_0x122d1f(_0x3de70d);})[_0x0fa1('0x7d')](function(_0x3df809){_0x13c53f(_0x3df809);});})['catch'](function(_0x4aa5d0){ut[_0x0fa1('0x65')](_0x0fa1('0x11c'),_0x4aa5d0);_0x13c53f(ut[_0x0fa1('0x62')]('Call\x20unsuccessful',_0x2eda67,_0x394ebb));});}else{_0x13c53f(ut[_0x0fa1('0x62')](_0x37cf03[_0x0fa1('0x62')],_0x2eda67,_0x394ebb));}})[_0x0fa1('0x7d')](function(_0x232ef1){ut[_0x0fa1('0x65')](_0x0fa1('0x11d'),_0x232ef1);_0x13c53f(ut[_0x0fa1('0x62')](_0x0fa1('0x11e'),![],!![]));});});};Preview[_0x0fa1('0xf')]['validateContact']=function(_0x2cde28){if(_[_0x0fa1('0x6f')](_0x2cde28)||_[_0x0fa1('0x101')](_0x2cde28)||!_[_0x0fa1('0x6f')](_0x2cde28[0x0][_0x0fa1('0x8d')])&&_[_0x0fa1('0x6f')](_0x2cde28[0x0][_0x0fa1('0x8d')][_0x0fa1('0x53')])){ut[_0x0fa1('0x65')]('[Preview][validateContact][Empty\x20Contact]',_0x2cde28);return{'isValid':![],'message':_0x0fa1('0x11f')};}var _0x71ad08=this[_0x0fa1('0x13')][_0x2cde28[0x0][_0x0fa1('0x72')][_0x0fa1('0x53')]];_0x71ad08[_0x0fa1('0x62')]=_0x0fa1('0xa1');if(_[_0x0fa1('0x6f')](_0x71ad08)){ut[_0x0fa1('0x65')](_0x0fa1('0x120'),_0x71ad08);return{'isValid':![],'message':_0x0fa1('0x121')};}if(!this[_0x0fa1('0x9e')](_0x71ad08[_0x0fa1('0x52')])){ut[_0x0fa1('0x65')](_0x0fa1('0x122'),_0x0fa1('0x123')+_0x71ad08[_0x0fa1('0x53')]+'\x20Trunk\x20is\x20not\x20active');if(!this[_0x0fa1('0x9e')](_0x71ad08[_0x0fa1('0x9f')])){ut['logger']('[Preview][validateContact][Trunk\x20not\x20work]',_0x71ad08['name']+_0x0fa1('0x124'));return{'isValid':![],'message':_0x0fa1('0x125')};}}if(!ut[_0x0fa1('0x9d')](_0x71ad08[_0x0fa1('0x6b')])){ut['logger'](_0x0fa1('0x126'),_0x71ad08[_0x0fa1('0x53')]+_0x0fa1('0x127'));return{'isValid':![],'message':'campaign\x20Name:\x20'+_0x71ad08[_0x0fa1('0x53')]+'\x20Not\x20Active'};}return{'isValid':!![],'message':'Is\x20Valid'};};Preview[_0x0fa1('0xf')][_0x0fa1('0x102')]=function(_0x31ee3c,_0x24a83a,_0x2f4cbd,_0xaa5078){var _0x2a7b70=this;return new BPromise(function(_0x3a8e75,_0x4b82b1){var _0x5d6e33=_0x31ee3c['uniqueid'];var _0x2b5351=_0x2a7b70[_0x0fa1('0x9e')](_0x24a83a[_0x0fa1('0x52')])?util[_0x0fa1('0x5d')](_0x0fa1('0x128'),_0x24a83a[_0x0fa1('0x52')][_0x0fa1('0x53')],_[_0x0fa1('0x6f')](_0x24a83a[_0x0fa1('0x3b')])?'':_0x24a83a[_0x0fa1('0x3b')][_0x0fa1('0x129')]()||'',_0x24a83a[_0x0fa1('0x12a')]>0x0?_0x2f4cbd[_0x0fa1('0xfd')][_0x0fa1('0xfe')][_0x0fa1('0x12b')](_0x24a83a[_0x0fa1('0x12a')]):_0x2f4cbd[_0x0fa1('0xfd')][_0x0fa1('0xfe')]):util[_0x0fa1('0x5d')](_0x0fa1('0x128'),_[_0x0fa1('0x6f')](_0x24a83a[_0x0fa1('0x9f')])?_0x24a83a[_0x0fa1('0x52')]['name']:_0x24a83a[_0x0fa1('0x9f')][_0x0fa1('0x53')],_[_0x0fa1('0x6f')](_0x24a83a[_0x0fa1('0x3b')])?'':_0x24a83a[_0x0fa1('0x3b')]['trim']()||'',_0x24a83a[_0x0fa1('0x12a')]>0x0?_0x2f4cbd[_0x0fa1('0xfd')][_0x0fa1('0xfe')]['substring'](_0x24a83a[_0x0fa1('0x12a')]):_0x2f4cbd['Contact'][_0x0fa1('0xfe')]);var _0x3b57b8=_0x2a7b70[_0x0fa1('0x9e')](_0x24a83a['Trunk'])?ut[_0x0fa1('0x12c')](_0x24a83a[_0x0fa1('0x52')][_0x0fa1('0x55')],_0x24a83a[_0x0fa1('0x39')],_0x24a83a[_0x0fa1('0x12d')]>0x0?ut[_0x0fa1('0x12e')](_0x24a83a[_0x0fa1('0x3a')],_0x24a83a[_0x0fa1('0x12d')]):_0x24a83a['dialOriginateCallerIdNumber']):ut[_0x0fa1('0x12c')](_[_0x0fa1('0x6f')](_0x24a83a['TrunkBackup'])?_0x24a83a[_0x0fa1('0x52')][_0x0fa1('0x55')]:_0x24a83a[_0x0fa1('0x9f')][_0x0fa1('0x55')],_0x24a83a[_0x0fa1('0x39')],_0x24a83a[_0x0fa1('0x12d')]>0x0?ut[_0x0fa1('0x12e')](_0x24a83a['dialOriginateCallerIdNumber'],_0x24a83a['dialRandomLastDigitCallerIdNumber']):_0x24a83a[_0x0fa1('0x3a')]);if(_0x3b57b8){_0x31ee3c['originatecalleridname']=ut[_0x0fa1('0x12f')](_0x3b57b8);_0x31ee3c['originatecalleridnum']=ut['extractCalleridNumber'](_0x3b57b8);}var _0x494921=ut[_0x0fa1('0x130')](_0x24a83a,_0x2f4cbd,_0x2b5351,_0x3b57b8,_0x5d6e33,_0x31ee3c);_[_0x0fa1('0x131')](_0x31ee3c,ut['toLowerVariables'](_0x494921));_0x31ee3c[_0x0fa1('0x132')]=moment()[_0x0fa1('0x5d')](_0x0fa1('0x91'));ami[_0x0fa1('0x7c')](ut[_0x0fa1('0x133')](_0x31ee3c,_0x24a83a,_0x494921,_0x31ee3c[_0x0fa1('0xb1')],_0xaa5078))[_0x0fa1('0x8a')](function(_0x3e55f1){var _0x33104b=_0x31ee3c[_0x0fa1('0x134')];if(!_['isNil'](_0x33104b)){if(!_[_0x0fa1('0x6f')](_0x2a7b70[_0x0fa1('0x16')][_0x33104b])){_0x2a7b70['agents'][_0x33104b][_0x0fa1('0x135')]=_0x31ee3c[_0x0fa1('0x136')];emit(util['format'](_0x0fa1('0x137'),_0x2a7b70[_0x0fa1('0x16')][_0x33104b][_0x0fa1('0x53')]),_0x0fa1('0x138'),{'destaccountcode':_0x2a7b70[_0x0fa1('0x16')][_0x33104b][_0x0fa1('0x139')],'destconnectedlinenum':_0x31ee3c[_0x0fa1('0x136')]});}}_0x24a83a['originated']+=0x1;logger[_0x0fa1('0x5b')](_0x0fa1('0x13a'),_0x5d6e33,'\x20Queue',_0x24a83a[_0x0fa1('0x53')],_0x0fa1('0x73'),_0x24a83a[_0x0fa1('0x4e')]);_0x3a8e75(_0x3e55f1);})[_0x0fa1('0x7d')](function(_0x635bf9){ut[_0x0fa1('0xf3')](_0x31ee3c,0xe,_0x0fa1('0x13b'));rpcDb[_0x0fa1('0xf4')](_0x31ee3c,_0x0fa1('0x13c'));_0x4b82b1(_0x635bf9);});});};Preview[_0x0fa1('0xf')][_0x0fa1('0x22')]=function(_0x1c3416){if(this[_0x0fa1('0x70')][_0x1c3416[_0x0fa1('0xc2')]]){this['actions'][_0x1c3416[_0x0fa1('0xc2')]][_0x0fa1('0x13d')]=_0x1c3416[_0x0fa1('0x13d')];}};Preview[_0x0fa1('0xf')][_0x0fa1('0x19')]=function(_0x30bed8){var _0xe91ea=this;var _0x56d472=this[_0x0fa1('0x70')][_0x30bed8[_0x0fa1('0x13e')]];if(_0x56d472){if(_0x56d472['lookAgent']&&this[_0x0fa1('0x16')][_0x56d472[_0x0fa1('0x100')]]){ut['logLookAgent'](_0x56d472,this[_0x0fa1('0x16')][_0x56d472[_0x0fa1('0x100')]][_0x0fa1('0x53')],this[_0x0fa1('0x16')][_0x56d472[_0x0fa1('0x100')]]['id']);}var _0x1fa4d2=_['clone'](_0x56d472);_0x1fa4d2[_0x0fa1('0x13f')]=moment()['format'](_0x0fa1('0x91'));var _0x26b22a=_0xe91ea[_0x0fa1('0x13')][_0x56d472[_0x0fa1('0x74')]];if(ut[_0x0fa1('0x140')](_0x30bed8['response'])){if(_0x56d472[_0x0fa1('0xb0')]){rpcDb[_0x0fa1('0x114')](_0x56d472[_0x0fa1('0x106')]);}if(_0x56d472[_0x0fa1('0xb1')]){rpcDb[_0x0fa1('0x115')](_0x56d472['idContact']);}ami[_0x0fa1('0x2a')](_0x0fa1('0x141'),ut[_0x0fa1('0xb7')](_0x56d472,_0x0fa1('0x142'),this['campaignsPreview'][_0x56d472['queue']]));this[_0x0fa1('0x143')](_0x1fa4d2,_0x26b22a,_0x30bed8);}else{_0x56d472[_0x0fa1('0x132')]=moment()[_0x0fa1('0x5d')](_0x0fa1('0x91'));ut['logAgent'](_0x1fa4d2,0x4,_0x0fa1('0xbc'));rpcDb[_0x0fa1('0xf4')](_0x1fa4d2,_0x0fa1('0x144'));}}};Preview[_0x0fa1('0xf')]['syncHangup']=function(_0x4dd3bb){var _0x379c6e=this;var _0x56e419=this[_0x0fa1('0x70')][_0x4dd3bb['linkedid']];var _0x14c41e;if(_0x56e419){_0x14c41e=this[_0x0fa1('0x13')][_0x56e419[_0x0fa1('0x74')]];logger[_0x0fa1('0x5b')]('[syncHangup][talking]',_0x4dd3bb[_0x0fa1('0xc2')],_0x0fa1('0xb5'),_0x14c41e[_0x0fa1('0x53')],'pTalking:\x20',_0x14c41e[_0x0fa1('0x2f')]);}if(this['actions'][_0x4dd3bb['linkedid']]&&_0x4dd3bb[_0x0fa1('0xc2')]!==_0x4dd3bb[_0x0fa1('0xb4')]){if(_0x4dd3bb[_0x0fa1('0x145')]==='16'&&this[_0x0fa1('0x70')][_0x4dd3bb['linkedid']][_0x0fa1('0x76')]){this['callProgressDetectingCustomer'](_0x4dd3bb,_0x4dd3bb[_0x0fa1('0xc2')],_0x4dd3bb[_0x0fa1('0x145')]);}else if(this[_0x0fa1('0x70')][_0x4dd3bb[_0x0fa1('0xc2')]][_0x0fa1('0x76')]){logger[_0x0fa1('0x5b')](_0x0fa1('0x146'),_0x4dd3bb[_0x0fa1('0xc2')],_0x4dd3bb['cause'],_0x0fa1('0xb5'),_0x14c41e[_0x0fa1('0x53')],_0x0fa1('0x75'),_0x14c41e[_0x0fa1('0x2f')]);this[_0x0fa1('0xa2')](_0x4dd3bb,_0x4dd3bb['linkedid'],_0x4dd3bb[_0x0fa1('0x145')]);}}else if(_0x56e419&&_['isNil'](_0x56e419[_0x0fa1('0x147')])&&_0x14c41e['dialQueueProject']&&_0x4dd3bb[_0x0fa1('0xc2')]===_0x4dd3bb[_0x0fa1('0xb4')]&&_[_0x0fa1('0x6f')](_0x4dd3bb[_0x0fa1('0xf2')])&&_0x4dd3bb['cause']==='16'&&_0x4dd3bb[_0x0fa1('0x148')]==='6'&&_['isUndefined'](_0x56e419[_0x0fa1('0x149')])){if(_0x56e419[_0x0fa1('0xb0')]){rpcDb['unlockContact'](_0x56e419[_0x0fa1('0x106')]);}if(_0x56e419['activeContact']){rpcDb['disableContact'](_0x56e419[_0x0fa1('0x106')]);}_0x4dd3bb[_0x0fa1('0xf2')]='22';this[_0x0fa1('0x143')](_0x56e419,_0x14c41e,_0x4dd3bb);}else if(_0x56e419&&_0x56e419[_0x0fa1('0x149')]){if(_0x4dd3bb[_0x0fa1('0x145')]==='16'&&this[_0x0fa1('0x70')][_0x4dd3bb[_0x0fa1('0xc2')]][_0x0fa1('0x76')]){logger['info'](_0x0fa1('0x14a'),_0x4dd3bb[_0x0fa1('0xc2')],_0x4dd3bb[_0x0fa1('0x145')],_0x0fa1('0xb5'),_0x14c41e['name'],_0x0fa1('0x75'),_0x14c41e['pTalking']);this[_0x0fa1('0xa2')](_0x4dd3bb,_0x4dd3bb[_0x0fa1('0xc2')],_0x4dd3bb[_0x0fa1('0x145')]);}else if(this[_0x0fa1('0x70')][_0x4dd3bb['linkedid']][_0x0fa1('0x76')]){logger[_0x0fa1('0x5b')](_0x0fa1('0x146'),_0x4dd3bb[_0x0fa1('0xc2')],_0x4dd3bb[_0x0fa1('0x145')],'\x20Queue',_0x14c41e[_0x0fa1('0x53')],_0x0fa1('0x75'),_0x14c41e[_0x0fa1('0x2f')]);this[_0x0fa1('0xa2')](_0x4dd3bb,_0x4dd3bb[_0x0fa1('0xc2')],_0x4dd3bb[_0x0fa1('0x145')]);}}};Preview[_0x0fa1('0xf')]['syncDialEnd']=function(_0x5cf401){if(this['actions'][_0x5cf401['destlinkedid']]&&_0x5cf401['destlinkedid']!==_0x5cf401[_0x0fa1('0x14b')]){this['callProgressDetectingCustomer'](_0x5cf401,_0x5cf401[_0x0fa1('0x14c')],_0x5cf401['dialstatus']);}};Preview[_0x0fa1('0xf')][_0x0fa1('0x1e')]=function(_0x26c598){if(this[_0x0fa1('0x70')][_0x26c598['linkedid']]&&_0x26c598[_0x0fa1('0xc2')]!==_0x26c598[_0x0fa1('0xb4')]&&!this[_0x0fa1('0x70')][_0x26c598['linkedid']][_0x0fa1('0x76')]){if(_0x26c598['cause']==='1'){this[_0x0fa1('0xa2')](_0x26c598,_0x26c598[_0x0fa1('0xc2')],_0x26c598[_0x0fa1('0x145')]);}}};Preview[_0x0fa1('0xf')][_0x0fa1('0x14d')]=function(_0x5cbe4d,_0x2c4c65,_0x3e8061){if(this['actions'][_0x5cbe4d]){if(_[_0x0fa1('0x6f')](this[_0x0fa1('0x70')][_0x5cbe4d][_0x0fa1('0x14e')])){this[_0x0fa1('0x70')][_0x5cbe4d]['variables']={};}this['actions'][_0x5cbe4d]['variables'][_0x2c4c65]=_0x3e8061;}};Preview['prototype'][_0x0fa1('0x24')]=function(_0x51f041){try{if(!_[_0x0fa1('0x6f')](_0x51f041)){if(ut[_0x0fa1('0x14f')](_[_0x0fa1('0x150')](_0x51f041[_0x0fa1('0x151')])[0x0])){this['addVariable'](_0x51f041[_0x0fa1('0xb4')],_[_0x0fa1('0x150')](_0x51f041[_0x0fa1('0x151')])[0x0],_0x51f041[_0x0fa1('0x152')]);}}}catch(_0x46c7bf){logger[_0x0fa1('0x153')](_0x0fa1('0x154'),util[_0x0fa1('0x155')](_0x46c7bf,{'showHidden':![],'depth':null}));}};Preview['prototype']['syncAttendedTransfer']=function(_0x22dbc3){if(_0x22dbc3){if(this[_0x0fa1('0x70')][_0x22dbc3[_0x0fa1('0x156')]]){this[_0x0fa1('0x70')][_0x22dbc3[_0x0fa1('0x156')]]['transfer']=!![];}}};Preview[_0x0fa1('0xf')][_0x0fa1('0x28')]=function(_0x541293){if(_0x541293){if(this['actions'][_0x541293[_0x0fa1('0x157')]]){this['actions'][_0x541293[_0x0fa1('0x157')]][_0x0fa1('0x149')]=!![];}}};module['exports']=Preview;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xae76=['rescheduleContactInQueue','rescheduleContact','[rescheduleContactInQueue]\x20','util','../../../config/logger','preview','../rpc/cmHopper','../rpc/cmHopperFinal','../rpc/cmHopperHistory','../rpc/cmHopperBlack','../rpc/voiceQueueRt','../rpc/agentReportPreview','../rpc/voiceQueueReport','error','then','createHistory','catch','[createHistory]\x20','resolve','moveContactManagedDialer','[moveContactManagedDialer]\x20','checkIsBlackList','[checkIsBlackList]\x20','getContactPreview','[getContactPreview]\x20','createCustomerFinal','UserId','active','countReScheduled','unlockContact','[unlockContact]\x20','disableContact','[activeContact]\x20','crateCustomerReportQueue','type','uniqueid','calleridnum','calleridname','queue','queuecallerjoinAt','answertime','queuecallercomplete','queuecallercompleteAt','endtime','connectedlinename','membername','from-sip','exten','xcally-motion-preview','assigned','lastAssignedTo','queuecallerexitreason','COMPLETED','[voiceQueueReport]\x20','getContactRecallMe','[GetContactRecallMe]\x20'];(function(_0x3c509d,_0x45f50d){var _0x5d30ed=function(_0x3b98e1){while(--_0x3b98e1){_0x3c509d['push'](_0x3c509d['shift']());}};_0x5d30ed(++_0x45f50d);}(_0xae76,0x1c3));var _0x6ae7=function(_0x2f938f,_0x923379){_0x2f938f=_0x2f938f-0x0;var _0x360c98=_0xae76[_0x2f938f];return _0x360c98;};'use strict';var util=require(_0x6ae7('0x0'));var BPromise=require('bluebird');var logger=require(_0x6ae7('0x1'))(_0x6ae7('0x2'));var _=require('lodash');var cmHopper=require(_0x6ae7('0x3'));var cmHopperFinal=require(_0x6ae7('0x4'));var cmHopperHistory=require(_0x6ae7('0x5'));var cmHopperBlack=require(_0x6ae7('0x6'));var voiceQueueRt=require(_0x6ae7('0x7'));var agentReportPreview=require(_0x6ae7('0x8'));var voiceQueueReport=require(_0x6ae7('0x9'));function loggerCatch(_0x5db856){return function(_0x22bf0b){logger[_0x6ae7('0xa')](_0x5db856,util['inspect'](_0x22bf0b,{'showHidden':![],'depth':null}));};}function create(_0x42d36a){return BPromise['resolve']()[_0x6ae7('0xb')](cmHopperHistory[_0x6ae7('0xc')](_0x42d36a))[_0x6ae7('0xd')](loggerCatch(_0x6ae7('0xe')));}function createAgent(_0x19098a){return BPromise[_0x6ae7('0xf')]()[_0x6ae7('0xb')](agentReportPreview[_0x6ae7('0xc')](_0x19098a))[_0x6ae7('0xd')](loggerCatch(_0x6ae7('0xe')));}function moveContact(_0x29baaa){return BPromise[_0x6ae7('0xf')]()[_0x6ae7('0xb')](cmHopper[_0x6ae7('0x10')](_0x29baaa,!![]))['catch'](loggerCatch(_0x6ae7('0x11')));}exports[_0x6ae7('0x12')]=function(_0x94e3d){return BPromise[_0x6ae7('0xf')]()[_0x6ae7('0xb')](cmHopperBlack[_0x6ae7('0x12')](_0x94e3d))[_0x6ae7('0xd')](loggerCatch(_0x6ae7('0x13')));};exports[_0x6ae7('0x14')]=function(_0x4c4ef2){return BPromise[_0x6ae7('0xf')]()['then'](cmHopper[_0x6ae7('0x14')](_0x4c4ef2))[_0x6ae7('0xd')](loggerCatch(_0x6ae7('0x15')));};exports['createHistory']=function(_0x279687,_0x22f293){create(_0x279687)[_0x6ae7('0xd')](loggerCatch(_0x22f293));moveContact(_0x279687)['catch'](loggerCatch(_0x22f293));};exports['createAgentHistory']=function(_0x402b1e,_0x449c80){createAgent(_0x402b1e)['catch'](loggerCatch(_0x449c80));};exports['createCustomerHistory']=function(_0x343a83,_0x21659f){create(_0x343a83)['catch'](loggerCatch(_0x21659f));};exports[_0x6ae7('0x16')]=function(_0x510ad7,_0x3349ee){moveContact(_0x510ad7)[_0x6ae7('0xd')](loggerCatch(_0x3349ee));};exports['rescheduleContact']=function(_0x4b9cc5,_0x3e1323,_0x35f484){if(_0x3e1323){_0x4b9cc5[_0x6ae7('0x17')]=null;}if(_0x35f484){_0x4b9cc5[_0x6ae7('0x18')]=![];}return BPromise[_0x6ae7('0xf')]()['then'](cmHopper['rescheduleContact'](_0x4b9cc5))[_0x6ae7('0xd')](loggerCatch('[rescheduleContact]\x20'));};exports[_0x6ae7('0x19')]=function(_0x381ebb){return BPromise[_0x6ae7('0xf')]()[_0x6ae7('0xb')](cmHopper['countReScheduled'](_0x381ebb))[_0x6ae7('0xd')](loggerCatch('[countReScheduled]\x20'));};exports[_0x6ae7('0x1a')]=function(_0x56f3ee){return BPromise[_0x6ae7('0xf')]()[_0x6ae7('0xb')](cmHopper[_0x6ae7('0x1a')]({'UserId':null},_0x56f3ee,0x1))[_0x6ae7('0xd')](loggerCatch(_0x6ae7('0x1b')));};exports[_0x6ae7('0x1c')]=function(_0x468b47){return BPromise[_0x6ae7('0xf')]()[_0x6ae7('0xb')](cmHopper[_0x6ae7('0x1a')]({'active':![]},_0x468b47,0x1))['catch'](loggerCatch(_0x6ae7('0x1d')));};exports[_0x6ae7('0x1e')]=function(_0xc66594){var _0x4ff646={};_0x4ff646[_0x6ae7('0x1f')]=_0xc66594[_0x6ae7('0x1f')];_0x4ff646[_0x6ae7('0x20')]=_0xc66594['uniqueid'];_0x4ff646[_0x6ae7('0x21')]=_0xc66594[_0x6ae7('0x21')];_0x4ff646[_0x6ae7('0x22')]=_0xc66594[_0x6ae7('0x22')];_0x4ff646[_0x6ae7('0x23')]=_0xc66594['queue'];_0x4ff646[_0x6ae7('0x24')]=_0xc66594[_0x6ae7('0x25')];_0x4ff646['queuecallerleaveAt']=_0xc66594['answertime'];_0x4ff646[_0x6ae7('0x26')]=0x1;_0x4ff646[_0x6ae7('0x27')]=_0xc66594[_0x6ae7('0x28')];_0x4ff646[_0x6ae7('0x29')]=_0xc66594[_0x6ae7('0x2a')];_0x4ff646['context']=_0x6ae7('0x2b');_0x4ff646[_0x6ae7('0x2c')]=_0x6ae7('0x2d');_0x4ff646['holdtime']=0x0;_0x4ff646[_0x6ae7('0x2e')]=0x1;_0x4ff646[_0x6ae7('0x2f')]=_0xc66594['membername'];_0x4ff646[_0x6ae7('0x30')]=_0x6ae7('0x31');return BPromise[_0x6ae7('0xf')]()[_0x6ae7('0xb')](voiceQueueReport['create'](_0x4ff646))[_0x6ae7('0xd')](loggerCatch(_0x6ae7('0x32')));};exports[_0x6ae7('0x33')]=function(_0x53073b,_0xe5baa5){return BPromise['resolve']()[_0x6ae7('0xb')](cmHopper['getContactRecallMe'](_0x53073b,_0xe5baa5))[_0x6ae7('0xd')](loggerCatch(_0x6ae7('0x34')));};exports[_0x6ae7('0x35')]=function(_0x2a0a02){return BPromise[_0x6ae7('0xf')]()[_0x6ae7('0xb')](cmHopper[_0x6ae7('0x36')](_0x2a0a02,!![],!![]))['catch'](loggerCatch(_0x6ae7('0x37')));};
\ No newline at end of file
+var _0xab40=['getContactRecallMe','[GetContactRecallMe]\x20','util','../../../config/logger','preview','lodash','../rpc/cmHopper','../rpc/cmHopperFinal','../rpc/cmHopperHistory','../rpc/cmHopperBlack','../rpc/voiceQueueRt','../rpc/voiceQueueReport','resolve','then','createHistory','catch','[createHistory]\x20','moveContactManagedDialer','checkIsBlackList','[checkIsBlackList]\x20','getContactPreview','[getContactPreview]\x20','createAgentHistory','createCustomerHistory','createCustomerFinal','rescheduleContact','UserId','countReScheduled','[countReScheduled]\x20','unlockContact','disableContact','[activeContact]\x20','crateCustomerReportQueue','type','uniqueid','calleridnum','calleridname','queue','answertime','queuecallercomplete','queuecallercompleteAt','endtime','connectedlinename','membername','context','from-sip','exten','xcally-motion-preview','holdtime','assigned','lastAssignedTo','queuecallerexitreason','[voiceQueueReport]\x20'];(function(_0xa4c85,_0x2b52a7){var _0x172c1f=function(_0x149473){while(--_0x149473){_0xa4c85['push'](_0xa4c85['shift']());}};_0x172c1f(++_0x2b52a7);}(_0xab40,0x175));var _0x0ab4=function(_0x107ffd,_0xf0a90c){_0x107ffd=_0x107ffd-0x0;var _0x2f9e29=_0xab40[_0x107ffd];return _0x2f9e29;};'use strict';var util=require(_0x0ab4('0x0'));var BPromise=require('bluebird');var logger=require(_0x0ab4('0x1'))(_0x0ab4('0x2'));var _=require(_0x0ab4('0x3'));var cmHopper=require(_0x0ab4('0x4'));var cmHopperFinal=require(_0x0ab4('0x5'));var cmHopperHistory=require(_0x0ab4('0x6'));var cmHopperBlack=require(_0x0ab4('0x7'));var voiceQueueRt=require(_0x0ab4('0x8'));var agentReportPreview=require('../rpc/agentReportPreview');var voiceQueueReport=require(_0x0ab4('0x9'));function loggerCatch(_0x377f8e){return function(_0x1fb738){logger['error'](_0x377f8e,util['inspect'](_0x1fb738,{'showHidden':![],'depth':null}));};}function create(_0x56a9f6){return BPromise[_0x0ab4('0xa')]()[_0x0ab4('0xb')](cmHopperHistory[_0x0ab4('0xc')](_0x56a9f6))[_0x0ab4('0xd')](loggerCatch(_0x0ab4('0xe')));}function createAgent(_0x5a5b2a){return BPromise[_0x0ab4('0xa')]()[_0x0ab4('0xb')](agentReportPreview[_0x0ab4('0xc')](_0x5a5b2a))[_0x0ab4('0xd')](loggerCatch(_0x0ab4('0xe')));}function moveContact(_0x3b6b0b){return BPromise[_0x0ab4('0xa')]()[_0x0ab4('0xb')](cmHopper[_0x0ab4('0xf')](_0x3b6b0b,!![]))[_0x0ab4('0xd')](loggerCatch('[moveContactManagedDialer]\x20'));}exports[_0x0ab4('0x10')]=function(_0x4b70ae){return BPromise[_0x0ab4('0xa')]()['then'](cmHopperBlack[_0x0ab4('0x10')](_0x4b70ae))[_0x0ab4('0xd')](loggerCatch(_0x0ab4('0x11')));};exports[_0x0ab4('0x12')]=function(_0x39f512){return BPromise[_0x0ab4('0xa')]()['then'](cmHopper['getContactPreview'](_0x39f512))[_0x0ab4('0xd')](loggerCatch(_0x0ab4('0x13')));};exports[_0x0ab4('0xc')]=function(_0x56af42,_0x1f6346){create(_0x56af42)['catch'](loggerCatch(_0x1f6346));moveContact(_0x56af42)[_0x0ab4('0xd')](loggerCatch(_0x1f6346));};exports[_0x0ab4('0x14')]=function(_0x5e8227,_0x20b03d){createAgent(_0x5e8227)[_0x0ab4('0xd')](loggerCatch(_0x20b03d));};exports[_0x0ab4('0x15')]=function(_0x1f06a5,_0x595a90){create(_0x1f06a5)[_0x0ab4('0xd')](loggerCatch(_0x595a90));};exports[_0x0ab4('0x16')]=function(_0x54881b,_0x53c77f){moveContact(_0x54881b)['catch'](loggerCatch(_0x53c77f));};exports[_0x0ab4('0x17')]=function(_0x4f0f64,_0x490213,_0xa57f07){if(_0x490213){_0x4f0f64[_0x0ab4('0x18')]=null;}if(_0xa57f07){_0x4f0f64['active']=![];}return BPromise[_0x0ab4('0xa')]()['then'](cmHopper[_0x0ab4('0x17')](_0x4f0f64))[_0x0ab4('0xd')](loggerCatch('[rescheduleContact]\x20'));};exports[_0x0ab4('0x19')]=function(_0xe28793){return BPromise[_0x0ab4('0xa')]()['then'](cmHopper[_0x0ab4('0x19')](_0xe28793))[_0x0ab4('0xd')](loggerCatch(_0x0ab4('0x1a')));};exports[_0x0ab4('0x1b')]=function(_0x27d4bf){return BPromise[_0x0ab4('0xa')]()[_0x0ab4('0xb')](cmHopper['unlockContact']({'UserId':null},_0x27d4bf,0x1))[_0x0ab4('0xd')](loggerCatch('[unlockContact]\x20'));};exports[_0x0ab4('0x1c')]=function(_0x2dfd92){return BPromise[_0x0ab4('0xa')]()[_0x0ab4('0xb')](cmHopper[_0x0ab4('0x1b')]({'active':![]},_0x2dfd92,0x1))[_0x0ab4('0xd')](loggerCatch(_0x0ab4('0x1d')));};exports[_0x0ab4('0x1e')]=function(_0xcac274){var _0x59205c={};_0x59205c[_0x0ab4('0x1f')]=_0xcac274[_0x0ab4('0x1f')];_0x59205c[_0x0ab4('0x20')]=_0xcac274[_0x0ab4('0x20')];_0x59205c[_0x0ab4('0x21')]=_0xcac274['calleridnum'];_0x59205c[_0x0ab4('0x22')]=_0xcac274[_0x0ab4('0x22')];_0x59205c[_0x0ab4('0x23')]=_0xcac274[_0x0ab4('0x23')];_0x59205c['queuecallerjoinAt']=_0xcac274[_0x0ab4('0x24')];_0x59205c['queuecallerleaveAt']=_0xcac274['answertime'];_0x59205c[_0x0ab4('0x25')]=0x1;_0x59205c[_0x0ab4('0x26')]=_0xcac274[_0x0ab4('0x27')];_0x59205c[_0x0ab4('0x28')]=_0xcac274[_0x0ab4('0x29')];_0x59205c[_0x0ab4('0x2a')]=_0x0ab4('0x2b');_0x59205c[_0x0ab4('0x2c')]=_0x0ab4('0x2d');_0x59205c[_0x0ab4('0x2e')]=0x0;_0x59205c[_0x0ab4('0x2f')]=0x1;_0x59205c[_0x0ab4('0x30')]=_0xcac274[_0x0ab4('0x29')];_0x59205c[_0x0ab4('0x31')]='COMPLETED';return BPromise[_0x0ab4('0xa')]()[_0x0ab4('0xb')](voiceQueueReport['create'](_0x59205c))[_0x0ab4('0xd')](loggerCatch(_0x0ab4('0x32')));};exports[_0x0ab4('0x33')]=function(_0x1dde1d,_0x5c0604){return BPromise[_0x0ab4('0xa')]()['then'](cmHopper['getContactRecallMe'](_0x1dde1d,_0x5c0604))['catch'](loggerCatch(_0x0ab4('0x34')));};exports['rescheduleContactInQueue']=function(_0x6670f7){return BPromise[_0x0ab4('0xa')]()[_0x0ab4('0xb')](cmHopper['rescheduleContact'](_0x6670f7,!![],!![]))[_0x0ab4('0xd')](loggerCatch('[rescheduleContactInQueue]\x20'));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5c11=['../../../../config/logger','env','XCALLY_IP_AGI','127.0.0.1','milliseconds','seconds','loggerCatch','error','inspect','logger','info','message','getCallerId','isUndefined','string','isEmpty','format','\x22\x22\x20<>','isActive','addVariables','Queue','name','calleridname','ContactId','dialer','VoiceQueueId','\x22rtTxX%s%s\x22','U(xcally-mixmonitor-context)','dialPreviewUrl','dialQueueProject','NONE','\x22agi://%s/square,%s\x22','dialQueueProject2','originatecalleridnum','originatecalleridname','monitor_format','_XCALLY_MIXMONITOR_FORMAT','Contact','hasOwnProperty','isNil','tags','XMD-','toLowerVariables','toLower','updateOriginated','originated','[updateOriginated]\x20object\x20originated\x20is\x20negative','[updateOriginated]\x20is\x20null\x20or\x20undefined','YYYY-MM-DD\x20HH:mm:ss','state','statedesc','Blacklist','starttime','responsetime','endtime','ringtime','logLookAgent','membername','logCustomer','talktime','answertime','Failure','variablesAction','RECALL','originate','channelAgent','xcally-motion-preview','totalGlobal','countnoanswerretry','countagentrejectretry','cloneAction','scheduledAt','active','add','minutes','ListId','decrementTalkink','pTalking','[decrementTalkink]\x20object\x20talking\x20is\x20negative','[decrementTalkink]\x20is\x20null\x20or\x20undefined','IsNotLoggedIn','buildObj','lastevent','queue','interface','motionChannel','voice','mandatoryDisposition','buildAcw','uniqueid','agentReadyId','not_inuse','status','getDiff','diff','createBody','CampaignId','filterKey','idContact','type','campaigntype','dialAnswer','calleridnum','countglobal','callback','callbackuniqueid','callbackat','recallme','UserId','sipcallid','xmd-listid','xmd-dialurl','xmd-dialoptions','xmd-dialid','xmd-dialchannel','xmd-cdrtype','xmd-callerid','xmd-agiafter','rtpaudioqos','rtpaudioqosbridged','rtpaudioqosjitter','rtpaudioqosjitterbridged','rtpaudioqosloss','rtpaudioqoslossbridged','rtpaudioqosrtt','rtpaudioqosrttbridged','pow','extractCalleridName','extractCalleridNumber','util','lodash','moment'];(function(_0x42fd38,_0x31a2b9){var _0x2c8b91=function(_0x26cd8a){while(--_0x26cd8a){_0x42fd38['push'](_0x42fd38['shift']());}};_0x2c8b91(++_0x31a2b9);}(_0x5c11,0x189));var _0x15c1=function(_0x19a21c,_0x4e03f8){_0x19a21c=_0x19a21c-0x0;var _0x3e9b9f=_0x5c11[_0x19a21c];return _0x3e9b9f;};'use strict';var util=require(_0x15c1('0x0'));var _=require(_0x15c1('0x1'));var moment=require(_0x15c1('0x2'));var logger=require(_0x15c1('0x3'))('preview');var ipAgi=process[_0x15c1('0x4')][_0x15c1('0x5')]||_0x15c1('0x6');function getSeconds(_0x261c71,_0x238cb3){var _0x58e131=moment(_0x261c71)[_0x15c1('0x7')](0x0);var _0x43e8dc=moment(_0x238cb3)[_0x15c1('0x7')](0x0);return _0x58e131['diff'](_0x43e8dc,_0x15c1('0x8'));}exports[_0x15c1('0x9')]=function(_0x3700e7){return function(_0x3e1bb7){logger[_0x15c1('0xa')](_0x3700e7,util[_0x15c1('0xb')](_0x3e1bb7,{'showHidden':![],'depth':null}));};};exports[_0x15c1('0xc')]=function(_0xfb09c2,_0x1093a4){logger['info'](_0xfb09c2,util[_0x15c1('0xb')](_0x1093a4,{'showHidden':![],'depth':null}));};exports['loggerError']=function(_0x35f0a1,_0x1d6995){logger[_0x15c1('0xa')](_0x35f0a1,util[_0x15c1('0xb')](_0x1d6995,{'showHidden':![],'depth':null}));};exports['logger2']=function(_0x3c4f79){return function(_0x228882){logger[_0x15c1('0xd')](_0x3c4f79,util[_0x15c1('0xb')](_0x228882,{'showHidden':![],'depth':null}));};};exports[_0x15c1('0xe')]=function(_0x1503d2,_0x396798,_0x3c95d9){return{'message':_0x1503d2,'unlock':_0x396798,'active':_0x3c95d9};};exports[_0x15c1('0xf')]=function(_0x317c19,_0x205c85,_0xd0ec78){if(!_['isUndefined'](_0xd0ec78)&&'string'===typeof _0xd0ec78&&!_['isEmpty'](_0xd0ec78)){if(!_[_0x15c1('0x10')](_0x205c85)&&_0x15c1('0x11')===typeof _0x205c85&&!_[_0x15c1('0x12')](_0x205c85)){return util[_0x15c1('0x13')]('\x22%s\x22\x20<%s>',_0x205c85,_0xd0ec78);}return util[_0x15c1('0x13')]('\x22%s\x22\x20<%s>',_0xd0ec78,_0xd0ec78);}if(!_[_0x15c1('0x10')](_0x317c19)&&_0x15c1('0x11')===typeof _0x317c19&&!_[_0x15c1('0x12')](_0x317c19)){return _0x317c19;}return _0x15c1('0x14');};exports[_0x15c1('0x15')]=function(_0x3855e2){if(_['isNil'](_0x3855e2)){return![];}return _0x3855e2;};exports[_0x15c1('0x16')]=function(_0x2f6cf5,_0xffa096,_0x276b26,_0x849e53,_0xbae88,_0x16bec8){var _0x5aa9e1={'XMD-QUEUE':_0xffa096[_0x15c1('0x17')]?_0xffa096[_0x15c1('0x17')][_0x15c1('0x18')]:'','XMD-CALLERID':_0x849e53,'XMD-CALLERID-PREVIEW':_0x16bec8?util[_0x15c1('0x13')]('\x22%s\x22\x20<%s>',_0x16bec8[_0x15c1('0x19')],_0x16bec8['calleridnum']):_0x849e53,'XMD-DIALID':_0xbae88,'XMD-CONTACTID':_0xffa096[_0x15c1('0x1a')],'XMD-CDRTYPE':_0x15c1('0x1b'),'CALLERID(all)':_0x849e53,'XMD-VOICEQUEUEID':_0xffa096[_0x15c1('0x1c')],'XMD-DIALCHANNEL':_0x276b26,'XMD-DIALTIMEOUT':_0x2f6cf5['dialOriginateTimeout']||0x1e,'XMD-DIALOPTIONS':util[_0x15c1('0x13')](_0x15c1('0x1d'),_0x2f6cf5['dialQueueProject2']?'g':'',_[_0x15c1('0x12')](_0x2f6cf5['monitor_format'])?'':_0x15c1('0x1e')),'XMD-DIALURL':_0x2f6cf5[_0x15c1('0x1f')]||'','XMD-AGI':_0x2f6cf5[_0x15c1('0x20')]?util[_0x15c1('0x13')]('\x22agi://%s/square,%s\x22',ipAgi,_0x2f6cf5['dialQueueProject']):_0x15c1('0x21'),'XMD-AGIAFTER':_0x2f6cf5['dialQueueProject2']?util[_0x15c1('0x13')](_0x15c1('0x22'),ipAgi,_0x2f6cf5[_0x15c1('0x23')]):'NONE','XMD-ORIGINATECALLERIDNUM':_0x16bec8?_0x16bec8[_0x15c1('0x24')]:'','XMD-ORIGINATECALLERIDNAME':_0x16bec8?_0x16bec8[_0x15c1('0x25')]:'','XMD-DESTINATION':'xcally-motion-preview'};if(!_['isEmpty'](_0x2f6cf5[_0x15c1('0x26')])){_0x5aa9e1[util[_0x15c1('0x13')]('%s',_0x15c1('0x27'))]=_0x2f6cf5[_0x15c1('0x26')];_0x5aa9e1[util[_0x15c1('0x13')]('%s','_XCALLY_MIXMONITOR_UNIQUEID')]=_0xbae88;}if(_0xffa096&&_0xffa096['Contact']){for(var _0x1d8b71 in _0xffa096[_0x15c1('0x28')]){if(_0xffa096[_0x15c1('0x28')][_0x15c1('0x29')](_0x1d8b71)){if(!_[_0x15c1('0x2a')](_0xffa096['Contact'][_0x1d8b71])&&_0x1d8b71!=='id'&&_0x1d8b71!==_0x15c1('0x2b')&&_0x1d8b71!=='createdAt'&&_0x1d8b71!=='updatedAt'){_0x5aa9e1[util[_0x15c1('0x13')]('%s%s',_0x15c1('0x2c'),_['toUpper'](_0x1d8b71))]=_0xffa096[_0x15c1('0x28')][_0x1d8b71];}}}}return _0x5aa9e1;};exports[_0x15c1('0x2d')]=function(_0x1d7e4c){var _0x576c8b={};for(var _0x5ebbf9 in _0x1d7e4c){if(_0x1d7e4c['hasOwnProperty'](_0x5ebbf9)){_0x576c8b[util[_0x15c1('0x13')]('%s',_[_0x15c1('0x2e')](_0x5ebbf9))]=_0x1d7e4c[_0x5ebbf9];}}return{'variables':_0x576c8b};};exports[_0x15c1('0x2f')]=function(_0x5007b8,_0x300290){if(!_[_0x15c1('0x2a')](_0x5007b8)){if(_0x5007b8[_0x15c1('0x29')](_0x15c1('0x30'))){if(_0x5007b8['originated']>0x0){_0x5007b8[_0x15c1('0x30')]-=0x1;}else{logger['error'](_0x15c1('0x31'),_0x300290);}}}else{logger[_0x15c1('0xa')](_0x15c1('0x32'),_0x300290);}};exports['logBlacklist']=function(_0x27cef8){var _0x50ac2a=moment()['format'](_0x15c1('0x33'));_0x27cef8[_0x15c1('0x34')]=0xd;_0x27cef8[_0x15c1('0x35')]=_0x15c1('0x36');_0x27cef8[_0x15c1('0x37')]=_0x50ac2a;_0x27cef8[_0x15c1('0x38')]=_0x50ac2a;_0x27cef8[_0x15c1('0x39')]=_0x50ac2a;};exports['logAgent']=function(_0x4ed2eb,_0x5845bf,_0x1e7368){var _0x8a0c23=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');_0x4ed2eb[_0x15c1('0x34')]=_0x5845bf;_0x4ed2eb[_0x15c1('0x35')]=_0x1e7368;_0x4ed2eb['responsetime']=_0x8a0c23;_0x4ed2eb[_0x15c1('0x3a')]=getSeconds(_0x4ed2eb[_0x15c1('0x38')],_0x4ed2eb[_0x15c1('0x37')]);};exports[_0x15c1('0x3b')]=function(_0x3b01cd,_0xe0291,_0x8067d5){_0x3b01cd[_0x15c1('0x3c')]=_0xe0291;_0x3b01cd['UserId']=_0x8067d5;};exports[_0x15c1('0x3d')]=function(_0x369e99,_0x5b1f8a,_0x438bd4){var _0x5aa558=moment()['format'](_0x15c1('0x33'));_0x369e99[_0x15c1('0x34')]=_0x5b1f8a;_0x369e99[_0x15c1('0x35')]=_0x438bd4;_0x369e99['responsetime']=_0x369e99[_0x15c1('0x38')]?_0x369e99[_0x15c1('0x38')]:_0x5aa558;_0x369e99[_0x15c1('0x39')]=_0x369e99[_0x15c1('0x39')]?_0x369e99[_0x15c1('0x39')]:_0x5aa558;_0x369e99[_0x15c1('0x3a')]=getSeconds(_0x369e99['responsetime']||0x0,_0x369e99[_0x15c1('0x37')]||0x0);_0x369e99[_0x15c1('0x3e')]=_0x369e99[_0x15c1('0x3f')]?getSeconds(_0x369e99[_0x15c1('0x39')],_0x369e99[_0x15c1('0x3f')]):0x0;};exports['isFailure']=function(_0x171f23){return _0x171f23===_0x15c1('0x40');};exports[_0x15c1('0x41')]=function(_0x3b0b98,_0x136e34,_0x761a29,_0x2e8832,_0x57c2ca){var _0x466312=_0x2e8832?_0x15c1('0x42'):_0x3b0b98[_0x15c1('0x19')];_0x466312=_0x57c2ca?'BOOKED':_0x466312;return{'actionid':_0x3b0b98['uniqueid'],'action':_0x15c1('0x43'),'channel':_0x3b0b98[_0x15c1('0x44')],'callerid':util[_0x15c1('0x13')]('\x22%s\x22\x20<%s>',_0x466312,_0x3b0b98['calleridnum']),'Exten':_0x15c1('0x45'),'Context':'from-sip','Priority':'1','variable':_0x761a29,'timeout':(_0x136e34['timeout']||0x1e)*0x3e8,'async':!![],'channelid':_0x3b0b98['uniqueid']};};exports[_0x15c1('0x46')]=function(_0x256350){return _0x256350['countbusyretry']+_0x256350['countcongestionretry']+_0x256350[_0x15c1('0x47')]+_0x256350[_0x15c1('0x48')]+_0x256350['countnosuchnumberretry'];};exports[_0x15c1('0x49')]=function(_0xd9b05d){var _0x4708b6=_['clone'](_0xd9b05d);_0x4708b6[_0x15c1('0x34')]=0xf;_0x4708b6[_0x15c1('0x35')]='Global';return _0x4708b6;};exports[_0x15c1('0x4a')]=function(_0x4c2255,_0x548d00,_0x245a93){var _0x382333={};_0x382333[_0x548d00]=_0x4c2255[_0x548d00];_0x382333[_0x15c1('0x4b')]=![];_0x382333['scheduledat']=moment()[_0x15c1('0x4c')](_0x245a93,_0x15c1('0x4d'))[_0x15c1('0x13')](_0x15c1('0x33'));_0x382333['ContactId']=_0x4c2255[_0x15c1('0x1a')];_0x382333[_0x15c1('0x4e')]=_0x4c2255[_0x15c1('0x4e')];_0x382333[_0x15c1('0x1c')]=_0x4c2255['VoiceQueueId']||undefined;return _0x382333;};exports[_0x15c1('0x4f')]=function(_0x406946,_0x5d269b){if(!_['isNil'](_0x406946)){if(_0x406946[_0x15c1('0x50')]>0x0){_0x406946[_0x15c1('0x50')]-=0x1;}else{logger[_0x15c1('0xa')](_0x5d269b,_0x15c1('0x51'));}}else{logger['error'](_0x5d269b,_0x15c1('0x52'));}};exports[_0x15c1('0x53')]=function(_0x1dfe29){if(_0x1dfe29<=0x0){return!![];}return![];};exports[_0x15c1('0x54')]=function(_0x4430bf,_0x11d03d,_0x259405){_0x4430bf[_0x15c1('0x55')]=_0x11d03d;_0x4430bf[_0x15c1('0x18')]=_0x4430bf[_0x15c1('0x56')];_0x4430bf[_0x15c1('0x57')]=_0x4430bf[_0x15c1('0x44')];_0x4430bf[_0x15c1('0x58')]=_0x15c1('0x59');if(_0x259405){_0x4430bf[_0x15c1('0x5a')]=_0x259405['mandatoryDisposition'];}return _0x4430bf;};exports[_0x15c1('0x5b')]=function(_0x3d0444){var _0x18eb7d={};_0x18eb7d[_0x15c1('0x56')]=_0x3d0444[_0x15c1('0x56')];_0x18eb7d[_0x15c1('0x57')]=_0x3d0444['channelAgent'];_0x18eb7d[_0x15c1('0x5c')]=_0x3d0444['uniqueid'];return _0x18eb7d;};exports[_0x15c1('0x5d')]=function(_0x273566){var _0xf1e18e=[];for(var _0x47fa27 in _0x273566){if(_0x273566[_0x15c1('0x29')](_0x47fa27)){if(!_[_0x15c1('0x2a')](_0x273566[_0x47fa27])&&_0x273566[_0x47fa27]['state']===_0x15c1('0x5e')&&_0x273566[_0x47fa27][_0x15c1('0x5f')]==='reachable'){_0xf1e18e['push'](_0x273566[_0x47fa27]['id']);}}}return _0xf1e18e;};exports[_0x15c1('0x60')]=function(_0x6916a3){var _0x4c8430=moment()['milliseconds'](0x0);var _0x5181bc=moment(_0x6916a3)[_0x15c1('0x7')](0x0);return _0x4c8430[_0x15c1('0x61')](_0x5181bc,_0x15c1('0x8'));};exports[_0x15c1('0x62')]=function(_0x41ebc5){return{'active':![],'recallme':![],'UserId':null,'ContactId':_0x41ebc5['ContactId'],'ListId':_0x41ebc5[_0x15c1('0x4e')],'VoiceQueueId':_0x41ebc5[_0x15c1('0x1c')]||undefined,'CampaignId':_0x41ebc5[_0x15c1('0x63')]||undefined};};exports[_0x15c1('0x64')]=function(_0x1c8e32){if(_0x1c8e32===_0x15c1('0x5c')||_0x1c8e32===_0x15c1('0x65')||_0x1c8e32===_0x15c1('0x56')||_0x1c8e32===_0x15c1('0x66')||_0x1c8e32===_0x15c1('0x67')||_0x1c8e32===_0x15c1('0x68')||_0x1c8e32===_0x15c1('0x3c')||_0x1c8e32===_0x15c1('0x44')||_0x1c8e32===_0x15c1('0x19')||_0x1c8e32===_0x15c1('0x4b')||_0x1c8e32===_0x15c1('0x69')||_0x1c8e32==='scheduledat'||_0x1c8e32==='countbusyretry'||_0x1c8e32==='countcongestionretry'||_0x1c8e32===_0x15c1('0x47')||_0x1c8e32===_0x15c1('0x6a')||_0x1c8e32===_0x15c1('0x6b')||_0x1c8e32===_0x15c1('0x6c')||_0x1c8e32===_0x15c1('0x6d')||_0x1c8e32===_0x15c1('0x6e')||_0x1c8e32===_0x15c1('0x1a')||_0x1c8e32===_0x15c1('0x4e')||_0x1c8e32===_0x15c1('0x6f')||_0x1c8e32==='VoiceQueueId'||_0x1c8e32===_0x15c1('0x70')||_0x1c8e32==='xmd-voicequeueid'||_0x1c8e32==='xmd-queue'||_0x1c8e32==='xmd-phone'||_0x1c8e32===_0x15c1('0x71')||_0x1c8e32===_0x15c1('0x72')||_0x1c8e32==='xmd-dialtimeout'||_0x1c8e32===_0x15c1('0x73')||_0x1c8e32===_0x15c1('0x74')||_0x1c8e32===_0x15c1('0x75')||_0x1c8e32==='xmd-contactid'||_0x1c8e32===_0x15c1('0x76')||_0x1c8e32===_0x15c1('0x77')||_0x1c8e32===_0x15c1('0x78')||_0x1c8e32==='xmd-agi'||_0x1c8e32===_0x15c1('0x79')||_0x1c8e32===_0x15c1('0x7a')||_0x1c8e32===_0x15c1('0x7b')||_0x1c8e32===_0x15c1('0x7c')||_0x1c8e32===_0x15c1('0x7d')||_0x1c8e32===_0x15c1('0x7e')||_0x1c8e32===_0x15c1('0x7f')||_0x1c8e32==='rtpaudioqosrttbridged'||_0x1c8e32===_0x15c1('0x79')||_0x1c8e32==='rtpaudioqosbridged'||_0x1c8e32==='rtpaudioqosjitter'||_0x1c8e32===_0x15c1('0x7c')||_0x1c8e32===_0x15c1('0x7d')||_0x1c8e32===_0x15c1('0x7e')||_0x1c8e32===_0x15c1('0x7f')||_0x1c8e32===_0x15c1('0x80')||_0x1c8e32==='bridgepeer'||_0x1c8e32==='bridgepvtcallid'||_0x1c8e32==='state'||_0x1c8e32===_0x15c1('0x35')){return![];}return!![];};exports['getCallerIdRandom']=function(_0x4ed8db,_0x4aaa2a){var _0x2091d3,_0x572e81,_0x568881;if(_0x4aaa2a<=0x0){_0x4aaa2a=0x1;}_0x2091d3=new RegExp('\x5cw{0,'+_0x4aaa2a+'}$');_0x572e81=Math[_0x15c1('0x81')](0xa,_0x4aaa2a-0x1);_0x568881=Math['pow'](0xa,_0x4aaa2a)-0x1;return util[_0x15c1('0x13')]('%s',_['replace'](_0x4ed8db,_0x2091d3,_['random'](_0x572e81,_0x568881)));};exports[_0x15c1('0x82')]=function(_0x3d7230){var _0x9495df=_0x3d7230['match'](/"(.*?)"/);return _0x9495df?_0x9495df[0x1]:_0x3d7230;};exports[_0x15c1('0x83')]=function(_0x510cb5){var _0xf4bf26=_0x510cb5['match'](/<(.*?)>/);return _0xf4bf26?_0xf4bf26[0x1]:_0x510cb5;};
\ No newline at end of file
+var _0x3321=['xmd-queue','xmd-phone','xmd-listid','xmd-dialurl','xmd-dialoptions','xmd-dialchannel','xmd-contactid','xmd-cdrtype','rtpaudioqos','rtpaudioqosbridged','rtpaudioqosjitter','rtpaudioqoslossbridged','rtpaudioqosrttbridged','rtpaudioqosjitterbridged','rtpaudioqosloss','rtpaudioqosrtt','bridgepvtcallid','\x5cw{0,','pow','random','extractCalleridName','match','extractCalleridNumber','lodash','../../../../config/logger','preview','env','XCALLY_IP_AGI','127.0.0.1','milliseconds','diff','seconds','loggerCatch','error','inspect','logger','loggerError','logger2','info','message','getCallerId','isUndefined','string','isEmpty','format','\x22%s\x22\x20<%s>','\x22\x22\x20<>','isActive','addVariables','Queue','name','calleridname','calleridnum','ContactId','dialer','VoiceQueueId','dialOriginateTimeout','\x22rtTxX%s%s\x22','dialQueueProject2','U(xcally-mixmonitor-context)','dialQueueProject','\x22agi://%s/square,%s\x22','NONE','xcally-motion-preview','_XCALLY_MIXMONITOR_FORMAT','_XCALLY_MIXMONITOR_UNIQUEID','Contact','hasOwnProperty','isNil','tags','updatedAt','%s%s','toUpper','toLowerVariables','toLower','updateOriginated','originated','[updateOriginated]\x20is\x20null\x20or\x20undefined','logBlacklist','YYYY-MM-DD\x20HH:mm:ss','statedesc','Blacklist','starttime','responsetime','endtime','logAgent','state','ringtime','UserId','talktime','answertime','isFailure','Failure','variablesAction','RECALL','originate','channelAgent','from-sip','timeout','totalGlobal','countbusyretry','countcongestionretry','countagentrejectretry','cloneAction','clone','ListId','decrementTalkink','pTalking','buildObj','queue','interface','mandatoryDisposition','buildAcw','uniqueid','agentReadyId','not_inuse','push','createBody','CampaignId','filterKey','idContact','type','campaigntype','scheduledat','countnoanswerretry','countglobal','callback','callbackuniqueid','callbackat','recallme'];(function(_0x465028,_0x4570ac){var _0xb783d4=function(_0x5458c5){while(--_0x5458c5){_0x465028['push'](_0x465028['shift']());}};_0xb783d4(++_0x4570ac);}(_0x3321,0x11b));var _0x1332=function(_0x4e8db9,_0x15ff81){_0x4e8db9=_0x4e8db9-0x0;var _0x1fc3be=_0x3321[_0x4e8db9];return _0x1fc3be;};'use strict';var util=require('util');var _=require(_0x1332('0x0'));var moment=require('moment');var logger=require(_0x1332('0x1'))(_0x1332('0x2'));var ipAgi=process[_0x1332('0x3')][_0x1332('0x4')]||_0x1332('0x5');function getSeconds(_0x3f4ffd,_0x10342e){var _0x27e11a=moment(_0x3f4ffd)[_0x1332('0x6')](0x0);var _0x54fdbb=moment(_0x10342e)[_0x1332('0x6')](0x0);return _0x27e11a[_0x1332('0x7')](_0x54fdbb,_0x1332('0x8'));}exports[_0x1332('0x9')]=function(_0x2f8607){return function(_0x522e18){logger[_0x1332('0xa')](_0x2f8607,util[_0x1332('0xb')](_0x522e18,{'showHidden':![],'depth':null}));};};exports[_0x1332('0xc')]=function(_0x256ce6,_0xc9bdb3){logger['info'](_0x256ce6,util[_0x1332('0xb')](_0xc9bdb3,{'showHidden':![],'depth':null}));};exports[_0x1332('0xd')]=function(_0x1ea603,_0x372298){logger[_0x1332('0xa')](_0x1ea603,util[_0x1332('0xb')](_0x372298,{'showHidden':![],'depth':null}));};exports[_0x1332('0xe')]=function(_0x597a11){return function(_0x472a2d){logger[_0x1332('0xf')](_0x597a11,util[_0x1332('0xb')](_0x472a2d,{'showHidden':![],'depth':null}));};};exports[_0x1332('0x10')]=function(_0x3fa0e4,_0x59c0c6,_0x41e410){return{'message':_0x3fa0e4,'unlock':_0x59c0c6,'active':_0x41e410};};exports[_0x1332('0x11')]=function(_0x3f5188,_0x346f6c,_0x147419){if(!_[_0x1332('0x12')](_0x147419)&&_0x1332('0x13')===typeof _0x147419&&!_[_0x1332('0x14')](_0x147419)){if(!_[_0x1332('0x12')](_0x346f6c)&&_0x1332('0x13')===typeof _0x346f6c&&!_['isEmpty'](_0x346f6c)){return util[_0x1332('0x15')]('\x22%s\x22\x20<%s>',_0x346f6c,_0x147419);}return util[_0x1332('0x15')](_0x1332('0x16'),_0x147419,_0x147419);}if(!_['isUndefined'](_0x3f5188)&&_0x1332('0x13')===typeof _0x3f5188&&!_[_0x1332('0x14')](_0x3f5188)){return _0x3f5188;}return _0x1332('0x17');};exports[_0x1332('0x18')]=function(_0x5a0ef1){if(_['isNil'](_0x5a0ef1)){return![];}return _0x5a0ef1;};exports[_0x1332('0x19')]=function(_0x2baf6e,_0x4db31a,_0x5c0a7a,_0x233e04,_0x447838,_0x122146){var _0x3fe76f={'XMD-QUEUE':_0x4db31a[_0x1332('0x1a')]?_0x4db31a[_0x1332('0x1a')][_0x1332('0x1b')]:'','XMD-CALLERID':_0x233e04,'XMD-CALLERID-PREVIEW':_0x122146?util['format'](_0x1332('0x16'),_0x122146[_0x1332('0x1c')],_0x122146[_0x1332('0x1d')]):_0x233e04,'XMD-DIALID':_0x447838,'XMD-CONTACTID':_0x4db31a[_0x1332('0x1e')],'XMD-CDRTYPE':_0x1332('0x1f'),'CALLERID(all)':_0x233e04,'XMD-VOICEQUEUEID':_0x4db31a[_0x1332('0x20')],'XMD-DIALCHANNEL':_0x5c0a7a,'XMD-DIALTIMEOUT':_0x2baf6e[_0x1332('0x21')]||0x1e,'XMD-DIALOPTIONS':util[_0x1332('0x15')](_0x1332('0x22'),_0x2baf6e[_0x1332('0x23')]?'g':'',_['isEmpty'](_0x2baf6e['monitor_format'])?'':_0x1332('0x24')),'XMD-DIALURL':_0x2baf6e['dialPreviewUrl']||'','XMD-AGI':_0x2baf6e[_0x1332('0x25')]?util['format'](_0x1332('0x26'),ipAgi,_0x2baf6e[_0x1332('0x25')]):_0x1332('0x27'),'XMD-AGIAFTER':_0x2baf6e[_0x1332('0x23')]?util[_0x1332('0x15')](_0x1332('0x26'),ipAgi,_0x2baf6e[_0x1332('0x23')]):_0x1332('0x27'),'XMD-ORIGINATECALLERIDNUM':_0x122146?_0x122146['originatecalleridnum']:'','XMD-ORIGINATECALLERIDNAME':_0x122146?_0x122146['originatecalleridname']:'','XMD-DESTINATION':_0x1332('0x28')};if(!_[_0x1332('0x14')](_0x2baf6e['monitor_format'])){_0x3fe76f[util[_0x1332('0x15')]('%s',_0x1332('0x29'))]=_0x2baf6e['monitor_format'];_0x3fe76f[util['format']('%s',_0x1332('0x2a'))]=_0x447838;}if(_0x4db31a&&_0x4db31a[_0x1332('0x2b')]){for(var _0xf9e30a in _0x4db31a[_0x1332('0x2b')]){if(_0x4db31a['Contact'][_0x1332('0x2c')](_0xf9e30a)){if(!_[_0x1332('0x2d')](_0x4db31a[_0x1332('0x2b')][_0xf9e30a])&&_0xf9e30a!=='id'&&_0xf9e30a!==_0x1332('0x2e')&&_0xf9e30a!=='createdAt'&&_0xf9e30a!==_0x1332('0x2f')){_0x3fe76f[util[_0x1332('0x15')](_0x1332('0x30'),'XMD-',_[_0x1332('0x31')](_0xf9e30a))]=_0x4db31a['Contact'][_0xf9e30a];}}}}return _0x3fe76f;};exports[_0x1332('0x32')]=function(_0x2bfb86){var _0x2e204d={};for(var _0xf1c52 in _0x2bfb86){if(_0x2bfb86[_0x1332('0x2c')](_0xf1c52)){_0x2e204d[util[_0x1332('0x15')]('%s',_[_0x1332('0x33')](_0xf1c52))]=_0x2bfb86[_0xf1c52];}}return{'variables':_0x2e204d};};exports[_0x1332('0x34')]=function(_0x2cf5e8,_0x361ccf){if(!_[_0x1332('0x2d')](_0x2cf5e8)){if(_0x2cf5e8[_0x1332('0x2c')](_0x1332('0x35'))){if(_0x2cf5e8[_0x1332('0x35')]>0x0){_0x2cf5e8[_0x1332('0x35')]-=0x1;}else{logger[_0x1332('0xa')]('[updateOriginated]\x20object\x20originated\x20is\x20negative',_0x361ccf);}}}else{logger[_0x1332('0xa')](_0x1332('0x36'),_0x361ccf);}};exports[_0x1332('0x37')]=function(_0x548be5){var _0x31ec74=moment()['format'](_0x1332('0x38'));_0x548be5['state']=0xd;_0x548be5[_0x1332('0x39')]=_0x1332('0x3a');_0x548be5[_0x1332('0x3b')]=_0x31ec74;_0x548be5[_0x1332('0x3c')]=_0x31ec74;_0x548be5[_0x1332('0x3d')]=_0x31ec74;};exports[_0x1332('0x3e')]=function(_0x42f1a4,_0x22861c,_0x1323b2){var _0x1de467=moment()['format'](_0x1332('0x38'));_0x42f1a4[_0x1332('0x3f')]=_0x22861c;_0x42f1a4[_0x1332('0x39')]=_0x1323b2;_0x42f1a4[_0x1332('0x3c')]=_0x1de467;_0x42f1a4[_0x1332('0x40')]=getSeconds(_0x42f1a4[_0x1332('0x3c')],_0x42f1a4[_0x1332('0x3b')]);};exports['logLookAgent']=function(_0x27f0a1,_0x3d6102,_0x456626){_0x27f0a1['membername']=_0x3d6102;_0x27f0a1[_0x1332('0x41')]=_0x456626;};exports['logCustomer']=function(_0xca4f35,_0x50012a,_0x4f8dff){var _0x33ba83=moment()['format'](_0x1332('0x38'));_0xca4f35[_0x1332('0x3f')]=_0x50012a;_0xca4f35['statedesc']=_0x4f8dff;_0xca4f35['responsetime']=_0xca4f35[_0x1332('0x3c')]?_0xca4f35['responsetime']:_0x33ba83;_0xca4f35['endtime']=_0xca4f35[_0x1332('0x3d')]?_0xca4f35[_0x1332('0x3d')]:_0x33ba83;_0xca4f35[_0x1332('0x40')]=getSeconds(_0xca4f35[_0x1332('0x3c')]||0x0,_0xca4f35['starttime']||0x0);_0xca4f35[_0x1332('0x42')]=_0xca4f35[_0x1332('0x43')]?getSeconds(_0xca4f35[_0x1332('0x3d')],_0xca4f35[_0x1332('0x43')]):0x0;};exports[_0x1332('0x44')]=function(_0x14b13e){return _0x14b13e===_0x1332('0x45');};exports[_0x1332('0x46')]=function(_0x5af495,_0x16ab52,_0x341f05,_0x62425e,_0x3c0706){var _0xca4f7c=_0x62425e?_0x1332('0x47'):_0x5af495[_0x1332('0x1c')];_0xca4f7c=_0x3c0706?'BOOKED':_0xca4f7c;return{'actionid':_0x5af495['uniqueid'],'action':_0x1332('0x48'),'channel':_0x5af495[_0x1332('0x49')],'callerid':util['format']('\x22%s\x22\x20<%s>',_0xca4f7c,_0x5af495['calleridnum']),'Exten':_0x1332('0x28'),'Context':_0x1332('0x4a'),'Priority':'1','variable':_0x341f05,'timeout':(_0x16ab52[_0x1332('0x4b')]||0x1e)*0x3e8,'async':!![],'channelid':_0x5af495['uniqueid']};};exports[_0x1332('0x4c')]=function(_0x36e62e){return _0x36e62e[_0x1332('0x4d')]+_0x36e62e[_0x1332('0x4e')]+_0x36e62e['countnoanswerretry']+_0x36e62e[_0x1332('0x4f')]+_0x36e62e['countnosuchnumberretry'];};exports[_0x1332('0x50')]=function(_0x5f4e35){var _0x2b548a=_[_0x1332('0x51')](_0x5f4e35);_0x2b548a[_0x1332('0x3f')]=0xf;_0x2b548a[_0x1332('0x39')]='Global';return _0x2b548a;};exports['scheduledAt']=function(_0x426576,_0x5e3741,_0x100020){var _0x5ad91d={};_0x5ad91d[_0x5e3741]=_0x426576[_0x5e3741];_0x5ad91d['active']=![];_0x5ad91d['scheduledat']=moment()['add'](_0x100020,'minutes')[_0x1332('0x15')](_0x1332('0x38'));_0x5ad91d[_0x1332('0x1e')]=_0x426576[_0x1332('0x1e')];_0x5ad91d[_0x1332('0x52')]=_0x426576[_0x1332('0x52')];_0x5ad91d[_0x1332('0x20')]=_0x426576[_0x1332('0x20')]||undefined;return _0x5ad91d;};exports[_0x1332('0x53')]=function(_0x2f5349,_0x3bb72a){if(!_['isNil'](_0x2f5349)){if(_0x2f5349[_0x1332('0x54')]>0x0){_0x2f5349[_0x1332('0x54')]-=0x1;}else{logger[_0x1332('0xa')](_0x3bb72a,'[decrementTalkink]\x20object\x20talking\x20is\x20negative');}}else{logger['error'](_0x3bb72a,'[decrementTalkink]\x20is\x20null\x20or\x20undefined');}};exports['IsNotLoggedIn']=function(_0x4a7f98){if(_0x4a7f98<=0x0){return!![];}return![];};exports[_0x1332('0x55')]=function(_0x4352a4,_0x3b7fc6,_0x24f395){_0x4352a4['lastevent']=_0x3b7fc6;_0x4352a4['name']=_0x4352a4[_0x1332('0x56')];_0x4352a4[_0x1332('0x57')]=_0x4352a4[_0x1332('0x49')];if(_0x24f395){_0x4352a4[_0x1332('0x58')]=_0x24f395[_0x1332('0x58')];}return _0x4352a4;};exports[_0x1332('0x59')]=function(_0x1f728d){var _0x4cc65b={};_0x4cc65b[_0x1332('0x56')]=_0x1f728d[_0x1332('0x56')];_0x4cc65b[_0x1332('0x57')]=_0x1f728d['channelAgent'];_0x4cc65b['uniqueid']=_0x1f728d[_0x1332('0x5a')];return _0x4cc65b;};exports[_0x1332('0x5b')]=function(_0x3f9043){var _0x5658f9=[];for(var _0x43f452 in _0x3f9043){if(_0x3f9043[_0x1332('0x2c')](_0x43f452)){if(!_[_0x1332('0x2d')](_0x3f9043[_0x43f452])&&_0x3f9043[_0x43f452]['state']===_0x1332('0x5c')&&_0x3f9043[_0x43f452]['status']==='reachable'){_0x5658f9[_0x1332('0x5d')](_0x3f9043[_0x43f452]['id']);}}}return _0x5658f9;};exports['getDiff']=function(_0x10e218){var _0x4d1cfc=moment()[_0x1332('0x6')](0x0);var _0x16d04b=moment(_0x10e218)['milliseconds'](0x0);return _0x4d1cfc['diff'](_0x16d04b,_0x1332('0x8'));};exports[_0x1332('0x5e')]=function(_0x4dd998){return{'active':![],'recallme':![],'UserId':null,'ContactId':_0x4dd998['ContactId'],'ListId':_0x4dd998[_0x1332('0x52')],'VoiceQueueId':_0x4dd998[_0x1332('0x20')]||undefined,'CampaignId':_0x4dd998[_0x1332('0x5f')]||undefined};};exports[_0x1332('0x60')]=function(_0x1ab16f){if(_0x1ab16f===_0x1332('0x5a')||_0x1ab16f===_0x1332('0x61')||_0x1ab16f==='queue'||_0x1ab16f===_0x1332('0x62')||_0x1ab16f===_0x1332('0x63')||_0x1ab16f==='dialAnswer'||_0x1ab16f==='membername'||_0x1ab16f==='channelAgent'||_0x1ab16f===_0x1332('0x1c')||_0x1ab16f==='active'||_0x1ab16f===_0x1332('0x1d')||_0x1ab16f===_0x1332('0x64')||_0x1ab16f===_0x1332('0x4d')||_0x1ab16f==='countcongestionretry'||_0x1ab16f===_0x1332('0x65')||_0x1ab16f===_0x1332('0x66')||_0x1ab16f===_0x1332('0x67')||_0x1ab16f===_0x1332('0x68')||_0x1ab16f===_0x1332('0x69')||_0x1ab16f===_0x1332('0x6a')||_0x1ab16f===_0x1332('0x1e')||_0x1ab16f===_0x1332('0x52')||_0x1ab16f===_0x1332('0x41')||_0x1ab16f==='VoiceQueueId'||_0x1ab16f==='sipcallid'||_0x1ab16f==='xmd-voicequeueid'||_0x1ab16f===_0x1332('0x6b')||_0x1ab16f===_0x1332('0x6c')||_0x1ab16f===_0x1332('0x6d')||_0x1ab16f===_0x1332('0x6e')||_0x1ab16f==='xmd-dialtimeout'||_0x1ab16f===_0x1332('0x6f')||_0x1ab16f==='xmd-dialid'||_0x1ab16f===_0x1332('0x70')||_0x1ab16f===_0x1332('0x71')||_0x1ab16f===_0x1332('0x72')||_0x1ab16f==='xmd-callerid'||_0x1ab16f==='xmd-agiafter'||_0x1ab16f==='xmd-agi'||_0x1ab16f===_0x1332('0x73')||_0x1ab16f===_0x1332('0x74')||_0x1ab16f===_0x1332('0x75')||_0x1ab16f==='rtpaudioqosjitterbridged'||_0x1ab16f==='rtpaudioqosloss'||_0x1ab16f===_0x1332('0x76')||_0x1ab16f==='rtpaudioqosrtt'||_0x1ab16f===_0x1332('0x77')||_0x1ab16f==='rtpaudioqos'||_0x1ab16f==='rtpaudioqosbridged'||_0x1ab16f===_0x1332('0x75')||_0x1ab16f===_0x1332('0x78')||_0x1ab16f===_0x1332('0x79')||_0x1ab16f===_0x1332('0x76')||_0x1ab16f===_0x1332('0x7a')||_0x1ab16f===_0x1332('0x77')||_0x1ab16f==='bridgepeer'||_0x1ab16f===_0x1332('0x7b')||_0x1ab16f===_0x1332('0x3f')||_0x1ab16f===_0x1332('0x39')){return![];}return!![];};exports['getCallerIdRandom']=function(_0x1345ee,_0x414bf3){var _0x21119c,_0x3d7d6b,_0x3def6f;if(_0x414bf3<=0x0){_0x414bf3=0x1;}_0x21119c=new RegExp(_0x1332('0x7c')+_0x414bf3+'}$');_0x3d7d6b=Math[_0x1332('0x7d')](0xa,_0x414bf3-0x1);_0x3def6f=Math[_0x1332('0x7d')](0xa,_0x414bf3)-0x1;return util[_0x1332('0x15')]('%s',_['replace'](_0x1345ee,_0x21119c,_[_0x1332('0x7e')](_0x3d7d6b,_0x3def6f)));};exports[_0x1332('0x7f')]=function(_0x1df437){var _0x1f1403=_0x1df437[_0x1332('0x80')](/"(.*?)"/);return _0x1f1403?_0x1f1403[0x1]:_0x1df437;};exports[_0x1332('0x81')]=function(_0x13da8d){var _0x551216=_0x13da8d[_0x1332('0x80')](/<(.*?)>/);return _0x551216?_0x551216[0x1]:_0x13da8d;};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe2c1=['number','queueremove','boolean','voicequeuechannel','voicechannel','voicequeuechannelhangup','voicequeuechannelredirect','string'];(function(_0x3f7e8b,_0x7291d1){var _0x4eb892=function(_0x4ed54e){while(--_0x4ed54e){_0x3f7e8b['push'](_0x3f7e8b['shift']());}};_0x4eb892(++_0x7291d1);}(_0xe2c1,0x127));var _0x1e2c=function(_0x1be2ae,_0x127f82){_0x1be2ae=_0x1be2ae-0x0;var _0x307002=_0xe2c1[_0x1be2ae];return _0x307002;};'use strict';exports['queueadd']={'queue':{'type':_0x1e2c('0x0'),'required':!![]},'interface':{'type':'string','required':!![]},'membername':{'type':'string','required':!![]},'penalty':{'type':_0x1e2c('0x1'),'required':![]},'paused':{'type':'boolean','required':![]}};exports[_0x1e2c('0x2')]={'queue':{'type':'string','required':!![]},'interface':{'type':_0x1e2c('0x0'),'required':!![]}};exports['queuepause']={'interface':{'type':'string','required':!![]},'paused':{'type':_0x1e2c('0x3')},'reason':{'type':'string','required':![]}};exports['reload']={'module':{'type':_0x1e2c('0x0'),'required':![]}};exports[_0x1e2c('0x4')]={'uniqueid':{'type':_0x1e2c('0x0'),'required':!![]}};exports[_0x1e2c('0x5')]={'uniqueid':{'type':_0x1e2c('0x0'),'required':!![]},'filename':{'type':'string'},'format':{'type':_0x1e2c('0x0')},'mixmonitorid':{'type':'string'}};exports[_0x1e2c('0x6')]={'uniqueid':{'type':_0x1e2c('0x0'),'required':!![]}};exports[_0x1e2c('0x7')]={'uniqueid':{'type':'string','required':!![]},'exten':{'type':_0x1e2c('0x0'),'required':!![]},'context':{'type':'string'}};
\ No newline at end of file
+var _0x0673=['queuepause','voicequeuechannelhangup','voicequeuechannelredirect','queueadd','string','boolean','queueremove'];(function(_0x42bc91,_0x41f40a){var _0x3f5507=function(_0x20cfaf){while(--_0x20cfaf){_0x42bc91['push'](_0x42bc91['shift']());}};_0x3f5507(++_0x41f40a);}(_0x0673,0x9d));var _0x3067=function(_0x4706a6,_0x4c7b45){_0x4706a6=_0x4706a6-0x0;var _0x3eb9d2=_0x0673[_0x4706a6];return _0x3eb9d2;};'use strict';exports[_0x3067('0x0')]={'queue':{'type':_0x3067('0x1'),'required':!![]},'interface':{'type':_0x3067('0x1'),'required':!![]},'membername':{'type':'string','required':!![]},'penalty':{'type':'number','required':![]},'paused':{'type':_0x3067('0x2'),'required':![]}};exports[_0x3067('0x3')]={'queue':{'type':_0x3067('0x1'),'required':!![]},'interface':{'type':_0x3067('0x1'),'required':!![]}};exports[_0x3067('0x4')]={'interface':{'type':_0x3067('0x1'),'required':!![]},'paused':{'type':'boolean'},'reason':{'type':_0x3067('0x1'),'required':![]}};exports['reload']={'module':{'type':_0x3067('0x1'),'required':![]}};exports['voicequeuechannel']={'uniqueid':{'type':'string','required':!![]}};exports['voicechannel']={'uniqueid':{'type':_0x3067('0x1'),'required':!![]},'filename':{'type':_0x3067('0x1')},'format':{'type':'string'},'mixmonitorid':{'type':'string'}};exports[_0x3067('0x5')]={'uniqueid':{'type':_0x3067('0x1'),'required':!![]}};exports[_0x3067('0x6')]={'uniqueid':{'type':_0x3067('0x1'),'required':!![]},'exten':{'type':_0x3067('0x1'),'required':!![]},'context':{'type':_0x3067('0x1')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x067f=['vtigerAccounts','dynamics365Accounts','freshsalesAccounts','faxAccounts','mapKeys','format','name','hasOwnProperty','isNil','interface','SIP/%s','total','answered','sumHoldTime','sumDuration','sumBillable','isEmpty','ivrTotalCallsDays','ivrAnswerCallsDay','unmanaged','abandoned','outboundNoAnswerCallsDay','outboundBusyCallsDay','outboundCongestionCallsDay','outboundNoSuchCallsDay','outboundDropCallsDayTimeout','outboundDropCallsDayCallersExit','outboundBlacklistCallsDay','outboundOriginateFailureCallsDay','outboundReCallsDay','queueStatusComplete','prototype','initAgents','isUndefined','agents','mergeFromDatabase','initTelephones','trunks','length','initTriggers','triggers','initTemplates','initZendeskAccounts','initSalesforceAccounts','initFreshdeskAccounts','initZohoAccounts','initDeskAccounts','deskAccounts','initSugarcrmAccounts','initVtigerAccounts','initServicenowAccounts','servicenowAccounts','initFreshsalesAccounts','initVoiceQueueHopperHistory','initVoiceQueueReports','groupBy','queue','queuecallerabandon','queuecallerleaveAt','queuecallerjoinAt','queuecallercompleteAt','queuecallerabandonAt','queuecallerexitAt','diff','seconds','queuecallercomplete','duration','disposition','ANSWERED','billableseconds','dialQueueProject','SquareProject','initVoiceExtensions','voiceExtensions','initCampaignHopperHistory','bluebird','util','moment','../model/trunk','../model/voiceQueue','../model/trigger','../model/template','../model/campaign','../model/zendeskAccount','../model/salesforceAccount','../model/sugarcrmAccount','../model/zohoAccount','../model/deskAccount','../model/vtigerAccount','../model/servicenowAccount','../model/dynamics365Account','../model/faxAccount','telephones','voiceQueues','campaigns','templates','outbound','outboundChannels','timers','zendeskAccounts','salesforceAccounts','sugarcrmAccounts','freshdeskAccounts','zohoAccounts'];(function(_0x3df920,_0x1348d7){var _0x4345a6=function(_0x4b5740){while(--_0x4b5740){_0x3df920['push'](_0x3df920['shift']());}};_0x4345a6(++_0x1348d7);}(_0x067f,0x183));var _0xf067=function(_0x1ff0a6,_0x4ad360){_0x1ff0a6=_0x1ff0a6-0x0;var _0x1d40fe=_0x067f[_0x1ff0a6];return _0x1d40fe;};'use strict';var BPromise=require(_0xf067('0x0'));var util=require(_0xf067('0x1'));var _=require('lodash');var moment=require(_0xf067('0x2'));var Agent=require('../model/agent');var Telephone=require('../model/telephone');var Trunk=require(_0xf067('0x3'));var VoiceQueue=require(_0xf067('0x4'));var Trigger=require(_0xf067('0x5'));var Template=require(_0xf067('0x6'));var Campaign=require(_0xf067('0x7'));var VoiceExtension=require('../model/voiceExtension');var ZendeskAccount=require(_0xf067('0x8'));var SalesforceAccount=require(_0xf067('0x9'));var FreshdeskAccount=require('../model/freshdeskAccount');var SugarcrmAccount=require(_0xf067('0xa'));var ZohoAccount=require(_0xf067('0xb'));var DeskAccount=require(_0xf067('0xc'));var VtigerAccount=require(_0xf067('0xd'));var ServicenowAccount=require(_0xf067('0xe'));var Dynamics365Account=require(_0xf067('0xf'));var FreshsalesAccount=require('../model/freshsalesAccount');var FaxAccount=require(_0xf067('0x10'));var Realtime=function(){this['agents']={};this[_0xf067('0x11')]={};this['trunks']={};this[_0xf067('0x12')]={};this['triggers']={};this[_0xf067('0x13')]={};this[_0xf067('0x14')]={};this[_0xf067('0x15')]={'total':0x0,'answered':0x0,'sumHoldTime':0x0,'sumDuration':0x0,'sumBillable':0x0};this['voiceExtensions']={};this['channels']={};this['queueChannels']={};this[_0xf067('0x16')]={};this[_0xf067('0x17')]={};this['settings']={};this[_0xf067('0x18')]={};this[_0xf067('0x19')]={};this[_0xf067('0x1a')]={};this[_0xf067('0x1b')]={};this[_0xf067('0x1c')]={};this['deskAccounts']={};this[_0xf067('0x1d')]={};this['servicenowAccounts']={};this[_0xf067('0x1e')]={};this[_0xf067('0x1f')]={};this[_0xf067('0x20')]={};};function freeIsNotKey(_0x1ad3e2,_0x5a61bc,_0x2bd8ad){var _0x3d59ec=_[_0xf067('0x21')](_0x1ad3e2,function(_0x5add68,_0x4c22f4){return _0x5add68[_0x2bd8ad];});for(var _0x359b46 in _0x5a61bc){if(_0x5a61bc['hasOwnProperty'](_0x359b46)){if(!_0x3d59ec[_0x359b46]){delete _0x5a61bc[_0x359b46];}}}}function freeIsNotKeySip(_0x3cf65a,_0x26f873){var _0xe2ab81=_[_0xf067('0x21')](_0x3cf65a,function(_0xae3561,_0x21ac01){return util[_0xf067('0x22')]('SIP/%s',_0xae3561[_0xf067('0x23')]);});for(var _0x361395 in _0x26f873){if(_0x26f873[_0xf067('0x24')](_0x361395)){if(!_0xe2ab81[_0x361395]){delete _0x26f873[_0x361395];}}}}function freeIsNotKeyAgent(_0x5044d7,_0x24b292){var _0x3f5768=_[_0xf067('0x21')](_0x5044d7,function(_0x270337,_0x34f00f){var _0x2a3072=_[_0xf067('0x25')](_0x270337[_0xf067('0x26')])?util[_0xf067('0x22')](_0xf067('0x27'),_0x270337[_0xf067('0x23')]):_0x270337[_0xf067('0x26')];return _0x2a3072;});for(var _0x582160 in _0x24b292){if(_0x24b292[_0xf067('0x24')](_0x582160)){if(!_0x3f5768[_0x582160]){delete _0x24b292[_0x582160];}}}}function clearVoiceCallReports(_0x43ec74){_0x43ec74[_0xf067('0x28')]=0x0;_0x43ec74[_0xf067('0x29')]=0x0;_0x43ec74[_0xf067('0x2a')]=0x0;_0x43ec74[_0xf067('0x2b')]=0x0;_0x43ec74[_0xf067('0x2c')]=0x0;}function clearCampaigns(_0xa34b0e){if(!_[_0xf067('0x2d')](_0xa34b0e)){for(var _0x11fea4 in _0xa34b0e){if(_0xa34b0e[_0xf067('0x24')](_0x11fea4)){_0xa34b0e[_0x11fea4][_0xf067('0x2e')]=0x0;_0xa34b0e[_0x11fea4][_0xf067('0x2f')]=0x0;}}}}function clearVoiceQueues(_0x43628c){if(!_[_0xf067('0x2d')](_0x43628c)){for(var _0x3e6ce8 in _0x43628c){if(_0x43628c[_0xf067('0x24')](_0x3e6ce8)){_0x43628c[_0x3e6ce8][_0xf067('0x28')]=0x0;_0x43628c[_0x3e6ce8][_0xf067('0x29')]=0x0;_0x43628c[_0x3e6ce8][_0xf067('0x30')]=0x0;_0x43628c[_0x3e6ce8][_0xf067('0x31')]=0x0;_0x43628c[_0x3e6ce8][_0xf067('0x2a')]=0x0;_0x43628c[_0x3e6ce8][_0xf067('0x2b')]=0x0;_0x43628c[_0x3e6ce8]['sumBillable']=0x0;_0x43628c[_0x3e6ce8]['outboundAnswerAgiCallsDay']=0x0;_0x43628c[_0x3e6ce8][_0xf067('0x32')]=0x0;_0x43628c[_0x3e6ce8][_0xf067('0x33')]=0x0;_0x43628c[_0x3e6ce8][_0xf067('0x34')]=0x0;_0x43628c[_0x3e6ce8][_0xf067('0x35')]=0x0;_0x43628c[_0x3e6ce8]['outboundUnknownCallsDay']=0x0;_0x43628c[_0x3e6ce8][_0xf067('0x36')]=0x0;_0x43628c[_0x3e6ce8][_0xf067('0x37')]=0x0;_0x43628c[_0x3e6ce8][_0xf067('0x38')]=0x0;_0x43628c[_0x3e6ce8][_0xf067('0x39')]=0x0;_0x43628c[_0x3e6ce8]['outboundRejectCallsDay']=0x0;_0x43628c[_0x3e6ce8][_0xf067('0x3a')]=0x0;_0x43628c[_0x3e6ce8]['outboundAnswerAgiCallsDay']=0x0;_0x43628c[_0x3e6ce8]['outboundAnswerCallsDay']=0x0;_0x43628c[_0x3e6ce8][_0xf067('0x3b')]=!![];}}}}Realtime['prototype']['mergeFromDatabase']=function(_0x201739,_0x349a33){for(var _0x1d97ed in _0x349a33){if(_0x201739[_0xf067('0x24')](_0x1d97ed)){_0x201739[_0x1d97ed]=_0x349a33[_0x1d97ed];}}};Realtime[_0xf067('0x3c')][_0xf067('0x3d')]=function(){var _0x3dbbe1=this;return function(_0x19f953){if(_0x19f953){freeIsNotKeyAgent(_0x19f953,_0x3dbbe1['agents']);for(var _0x1cb0cf=0x0,_0x386d46={},_0x305fe4={};_0x1cb0cf<_0x19f953['length'];_0x1cb0cf+=0x1){_0x386d46=_0x19f953[_0x1cb0cf];var _0x5a6209=_[_0xf067('0x25')](_0x386d46[_0xf067('0x26')])?util[_0xf067('0x22')](_0xf067('0x27'),_0x386d46[_0xf067('0x23')]):_0x386d46[_0xf067('0x26')];if(_[_0xf067('0x3e')](_0x3dbbe1[_0xf067('0x3f')][_0x5a6209])){_0x3dbbe1[_0xf067('0x3f')][_0x5a6209]=new Agent(_0x386d46);}else{_0x3dbbe1[_0xf067('0x40')](_0x3dbbe1['agents'][_0x5a6209],_0x386d46);}}}return _0x3dbbe1[_0xf067('0x3f')];};};Realtime[_0xf067('0x3c')][_0xf067('0x41')]=function(){var _0x5c9b4d=this;return function(_0x3bcb55){if(_0x3bcb55){freeIsNotKeySip(_0x3bcb55,_0x5c9b4d[_0xf067('0x11')]);for(var _0x393da6=0x0,_0x199f0f={},_0x33e823={};_0x393da6<_0x3bcb55['length'];_0x393da6+=0x1){_0x199f0f=_0x3bcb55[_0x393da6];if(_[_0xf067('0x3e')](_0x5c9b4d[_0xf067('0x11')][util['format'](_0xf067('0x27'),_0x199f0f['name'])])){_0x5c9b4d[_0xf067('0x11')][util['format']('SIP/%s',_0x199f0f['name'])]=new Telephone(_0x199f0f);}else{_0x5c9b4d[_0xf067('0x40')](_0x5c9b4d[_0xf067('0x11')][util['format'](_0xf067('0x27'),_0x199f0f[_0xf067('0x23')])],_0x199f0f);}}}return _0x5c9b4d[_0xf067('0x11')];};};Realtime[_0xf067('0x3c')]['initTrunks']=function(){var _0x7e3427=this;return function(_0x5bea2a){if(_0x5bea2a){freeIsNotKeySip(_0x5bea2a,_0x7e3427[_0xf067('0x42')]);for(var _0x2cbecf=0x0,_0x24653b={},_0x33e13a={};_0x2cbecf<_0x5bea2a[_0xf067('0x43')];_0x2cbecf+=0x1){_0x24653b=_0x5bea2a[_0x2cbecf];if(_[_0xf067('0x3e')](_0x7e3427[_0xf067('0x42')][util[_0xf067('0x22')](_0xf067('0x27'),_0x24653b['name'])])){_0x7e3427[_0xf067('0x42')][util[_0xf067('0x22')](_0xf067('0x27'),_0x24653b['name'])]=new Trunk(_0x24653b);}else{_0x7e3427[_0xf067('0x40')](_0x7e3427[_0xf067('0x42')][util[_0xf067('0x22')](_0xf067('0x27'),_0x24653b[_0xf067('0x23')])],_0x24653b);}}}return _0x7e3427[_0xf067('0x42')];};};Realtime[_0xf067('0x3c')]['initVoiceQueues']=function(){var _0x50fa51=this;return function(_0x69cf8a){if(_0x69cf8a){freeIsNotKey(_0x69cf8a,_0x50fa51[_0xf067('0x12')],_0xf067('0x23'));for(var _0x4b4072=0x0,_0x9fc284={},_0x1eae54={};_0x4b4072<_0x69cf8a[_0xf067('0x43')];_0x4b4072+=0x1){_0x9fc284=_0x69cf8a[_0x4b4072];if(_['isUndefined'](_0x50fa51[_0xf067('0x12')][_0x9fc284[_0xf067('0x23')]])){_0x50fa51[_0xf067('0x12')][_0x9fc284[_0xf067('0x23')]]=new VoiceQueue(_0x9fc284);}else{_0x50fa51[_0xf067('0x40')](_0x50fa51[_0xf067('0x12')][_0x9fc284[_0xf067('0x23')]],_0x9fc284);}}}return _0x50fa51[_0xf067('0x12')];};};Realtime['prototype'][_0xf067('0x44')]=function(){var _0x3d6015=this;return function(_0x5eb1e8){if(_0x5eb1e8){freeIsNotKey(_0x5eb1e8,_0x3d6015[_0xf067('0x45')],'id');for(var _0x4f2d34=0x0,_0x3ab585={},_0x3528dd={};_0x4f2d34<_0x5eb1e8[_0xf067('0x43')];_0x4f2d34+=0x1){_0x3ab585=_0x5eb1e8[_0x4f2d34];if(_[_0xf067('0x3e')](_0x3d6015[_0xf067('0x45')][_0x3ab585['id']])){_0x3d6015[_0xf067('0x45')][_0x3ab585['id']]=new Trigger(_0x3ab585);}else{_0x3d6015['mergeFromDatabase'](_0x3d6015[_0xf067('0x45')][_0x3ab585['id']],_0x3ab585);}}}return _0x3d6015[_0xf067('0x45')];};};Realtime['prototype'][_0xf067('0x46')]=function(){var _0x4ab142=this;return function(_0x583b8f){if(_0x583b8f){freeIsNotKey(_0x583b8f,_0x4ab142['templates'],'id');for(var _0x2d8a82=0x0,_0x52e771={},_0x1bb07a={};_0x2d8a82<_0x583b8f['length'];_0x2d8a82+=0x1){_0x52e771=_0x583b8f[_0x2d8a82];if(_[_0xf067('0x3e')](_0x4ab142[_0xf067('0x14')][_0x52e771['id']])){_0x4ab142['templates'][_0x52e771['id']]=new Template(_0x52e771);}else{_0x4ab142[_0xf067('0x40')](_0x4ab142[_0xf067('0x14')][_0x52e771['id']],_0x52e771);}}}return _0x4ab142['templates'];};};Realtime[_0xf067('0x3c')][_0xf067('0x47')]=function(){var _0x41f6d1=this;return function(_0x42e4c5){if(_0x42e4c5){freeIsNotKey(_0x42e4c5,_0x41f6d1[_0xf067('0x18')],'id');for(var _0x5cb873=0x0,_0x340881={},_0x63ace={};_0x5cb873<_0x42e4c5[_0xf067('0x43')];_0x5cb873+=0x1){_0x340881=_0x42e4c5[_0x5cb873];if(_[_0xf067('0x3e')](_0x41f6d1[_0xf067('0x18')][_0x340881['id']])){_0x41f6d1[_0xf067('0x18')][_0x340881['id']]=new ZendeskAccount(_0x340881);}else{_0x41f6d1['mergeFromDatabase'](_0x41f6d1['zendeskAccounts'][_0x340881['id']],_0x340881);}}}return _0x41f6d1[_0xf067('0x18')];};};Realtime['prototype'][_0xf067('0x48')]=function(){var _0x5bcb46=this;return function(_0x53818f){if(_0x53818f){freeIsNotKey(_0x53818f,_0x5bcb46[_0xf067('0x19')],'id');for(var _0x3cf68a=0x0,_0xad49a2={},_0x1e1240={};_0x3cf68a<_0x53818f[_0xf067('0x43')];_0x3cf68a+=0x1){_0xad49a2=_0x53818f[_0x3cf68a];if(_['isUndefined'](_0x5bcb46[_0xf067('0x19')][_0xad49a2['id']])){_0x5bcb46[_0xf067('0x19')][_0xad49a2['id']]=new SalesforceAccount(_0xad49a2);}else{_0x5bcb46[_0xf067('0x40')](_0x5bcb46[_0xf067('0x19')][_0xad49a2['id']],_0xad49a2);}}}return _0x5bcb46['salesforceAccounts'];};};Realtime[_0xf067('0x3c')][_0xf067('0x49')]=function(){var _0x2ce600=this;return function(_0x153f36){if(_0x153f36){freeIsNotKey(_0x153f36,_0x2ce600[_0xf067('0x1b')],'id');for(var _0x25e44f=0x0,_0x5ec23b={},_0x4afe5c={};_0x25e44f<_0x153f36[_0xf067('0x43')];_0x25e44f+=0x1){_0x5ec23b=_0x153f36[_0x25e44f];if(_['isUndefined'](_0x2ce600[_0xf067('0x1b')][_0x5ec23b['id']])){_0x2ce600[_0xf067('0x1b')][_0x5ec23b['id']]=new FreshdeskAccount(_0x5ec23b);}else{_0x2ce600['mergeFromDatabase'](_0x2ce600[_0xf067('0x1b')][_0x5ec23b['id']],_0x5ec23b);}}}return _0x2ce600[_0xf067('0x1b')];};};Realtime[_0xf067('0x3c')][_0xf067('0x4a')]=function(){var _0x1b9bac=this;return function(_0x4e682b){if(_0x4e682b){freeIsNotKey(_0x4e682b,_0x1b9bac[_0xf067('0x1c')],'id');for(var _0x49e58e=0x0,_0x37221c={},_0x50e29c={};_0x49e58e<_0x4e682b[_0xf067('0x43')];_0x49e58e+=0x1){_0x37221c=_0x4e682b[_0x49e58e];if(_[_0xf067('0x3e')](_0x1b9bac[_0xf067('0x1c')][_0x37221c['id']])){_0x1b9bac[_0xf067('0x1c')][_0x37221c['id']]=new ZohoAccount(_0x37221c);}else{_0x1b9bac[_0xf067('0x40')](_0x1b9bac['zohoAccounts'][_0x37221c['id']],_0x37221c);}}}return _0x1b9bac[_0xf067('0x1c')];};};Realtime[_0xf067('0x3c')][_0xf067('0x4b')]=function(){var _0x8d039e=this;return function(_0x4ff8ac){if(_0x4ff8ac){freeIsNotKey(_0x4ff8ac,_0x8d039e[_0xf067('0x4c')],'id');for(var _0x2aeb63=0x0,_0x5060ef={},_0x26daf3={};_0x2aeb63<_0x4ff8ac[_0xf067('0x43')];_0x2aeb63+=0x1){_0x5060ef=_0x4ff8ac[_0x2aeb63];if(_[_0xf067('0x3e')](_0x8d039e[_0xf067('0x4c')][_0x5060ef['id']])){_0x8d039e['deskAccounts'][_0x5060ef['id']]=new DeskAccount(_0x5060ef);}else{_0x8d039e[_0xf067('0x40')](_0x8d039e[_0xf067('0x4c')][_0x5060ef['id']],_0x5060ef);}}}return _0x8d039e[_0xf067('0x4c')];};};Realtime['prototype'][_0xf067('0x4d')]=function(){var _0x527382=this;return function(_0x13e6ab){if(_0x13e6ab){freeIsNotKey(_0x13e6ab,_0x527382[_0xf067('0x1a')],'id');for(var _0x20e7f0=0x0,_0x27b704={},_0x408f75={};_0x20e7f0<_0x13e6ab[_0xf067('0x43')];_0x20e7f0+=0x1){_0x27b704=_0x13e6ab[_0x20e7f0];if(_[_0xf067('0x3e')](_0x527382['sugarcrmAccounts'][_0x27b704['id']])){_0x527382[_0xf067('0x1a')][_0x27b704['id']]=new SugarcrmAccount(_0x27b704);}else{_0x527382[_0xf067('0x40')](_0x527382[_0xf067('0x1a')][_0x27b704['id']],_0x27b704);}}}return _0x527382[_0xf067('0x1a')];};};Realtime[_0xf067('0x3c')][_0xf067('0x4e')]=function(){var _0x2f0d5c=this;return function(_0x1ef3eb){if(_0x1ef3eb){freeIsNotKey(_0x1ef3eb,_0x2f0d5c['vtigerAccounts'],'id');for(var _0x213997=0x0,_0x9facab={},_0xd77a46={};_0x213997<_0x1ef3eb['length'];_0x213997+=0x1){_0x9facab=_0x1ef3eb[_0x213997];if(_[_0xf067('0x3e')](_0x2f0d5c[_0xf067('0x1d')][_0x9facab['id']])){_0x2f0d5c['vtigerAccounts'][_0x9facab['id']]=new VtigerAccount(_0x9facab);}else{_0x2f0d5c['mergeFromDatabase'](_0x2f0d5c['vtigerAccounts'][_0x9facab['id']],_0x9facab);}}}return _0x2f0d5c[_0xf067('0x1d')];};};Realtime[_0xf067('0x3c')][_0xf067('0x4f')]=function(){var _0x5c5cac=this;return function(_0x3f8bfb){if(_0x3f8bfb){freeIsNotKey(_0x3f8bfb,_0x5c5cac[_0xf067('0x50')],'id');for(var _0x1c0749=0x0,_0x3c28c9={},_0x466f1a={};_0x1c0749<_0x3f8bfb[_0xf067('0x43')];_0x1c0749+=0x1){_0x3c28c9=_0x3f8bfb[_0x1c0749];if(_[_0xf067('0x3e')](_0x5c5cac[_0xf067('0x50')][_0x3c28c9['id']])){_0x5c5cac[_0xf067('0x50')][_0x3c28c9['id']]=new ServicenowAccount(_0x3c28c9);}else{_0x5c5cac['mergeFromDatabase'](_0x5c5cac['servicenowAccounts'][_0x3c28c9['id']],_0x3c28c9);}}}return _0x5c5cac[_0xf067('0x50')];};};Realtime['prototype']['initDynamics365Accounts']=function(){var _0x283a5e=this;return function(_0x3b1653){if(_0x3b1653){freeIsNotKey(_0x3b1653,_0x283a5e[_0xf067('0x1e')],'id');for(var _0x2b8d24=0x0,_0x44ebe2={},_0x5762fb={};_0x2b8d24<_0x3b1653[_0xf067('0x43')];_0x2b8d24+=0x1){_0x44ebe2=_0x3b1653[_0x2b8d24];if(_[_0xf067('0x3e')](_0x283a5e[_0xf067('0x1e')][_0x44ebe2['id']])){_0x283a5e['dynamics365Accounts'][_0x44ebe2['id']]=new Dynamics365Account(_0x44ebe2);}else{_0x283a5e[_0xf067('0x40')](_0x283a5e[_0xf067('0x1e')][_0x44ebe2['id']],_0x44ebe2);}}}return _0x283a5e[_0xf067('0x1e')];};};Realtime[_0xf067('0x3c')][_0xf067('0x51')]=function(){var _0x58c0c0=this;return function(_0x18ec73){if(_0x18ec73){freeIsNotKey(_0x18ec73,_0x58c0c0['freshsalesAccounts'],'id');for(var _0x5c5695=0x0,_0x3ec7d1={},_0x2defba={};_0x5c5695<_0x18ec73[_0xf067('0x43')];_0x5c5695+=0x1){_0x3ec7d1=_0x18ec73[_0x5c5695];if(_[_0xf067('0x3e')](_0x58c0c0[_0xf067('0x1f')][_0x3ec7d1['id']])){_0x58c0c0[_0xf067('0x1f')][_0x3ec7d1['id']]=new FreshsalesAccount(_0x3ec7d1);}else{_0x58c0c0['mergeFromDatabase'](_0x58c0c0['freshsalesAccounts'][_0x3ec7d1['id']],_0x3ec7d1);}}}return _0x58c0c0[_0xf067('0x1f')];};};Realtime['prototype'][_0xf067('0x52')]=function(){var _0x3cc01f=this;return function(_0x1c4f4e){for(var _0x30efe0=0x0;_0x30efe0<_0x1c4f4e[_0xf067('0x43')];_0x30efe0+=0x1){_['merge'](_0x3cc01f[_0xf067('0x12')][_0x1c4f4e[_0x30efe0][_0xf067('0x23')]],_0x1c4f4e[_0x30efe0]);}return _0x3cc01f['voiceQueues'];};};Realtime[_0xf067('0x3c')][_0xf067('0x53')]=function(){var _0x9c8d09=this;return function(_0x2d1dc4){clearVoiceQueues(_0x9c8d09[_0xf067('0x12')]);if(_0x2d1dc4){_0x2d1dc4=_[_0xf067('0x54')](_0x2d1dc4,'uniqueid');for(var _0x832e84 in _0x2d1dc4){if(_0x2d1dc4['hasOwnProperty'](_0x832e84)){var _0x51cf7e={};for(var _0x282767=0x0;_0x282767<_0x2d1dc4[_0x832e84][_0xf067('0x43')];_0x282767+=0x1){var _0x376d73=_0x2d1dc4[_0x832e84][_0x282767][_0xf067('0x55')];if(_0x9c8d09['voiceQueues'][_0x376d73]){if(_0x2d1dc4[_0x832e84][_0x282767]['queuecallerexit']){_0x9c8d09[_0xf067('0x12')][_0x376d73][_0xf067('0x30')]+=0x1;}if(_0x2d1dc4[_0x832e84][_0x282767][_0xf067('0x56')]){_0x9c8d09[_0xf067('0x12')][_0x376d73]['abandoned']+=0x1;}_0x9c8d09[_0xf067('0x12')][_0x376d73]['sumHoldTime']+=moment(_0x2d1dc4[_0x832e84][_0x282767][_0xf067('0x57')])['diff'](moment(_0x2d1dc4[_0x832e84][_0x282767][_0xf067('0x58')]),'seconds')||0x0;if(_0x282767===_0x2d1dc4[_0x832e84][_0xf067('0x43')]-0x1){_0x9c8d09[_0xf067('0x12')][_0x376d73][_0xf067('0x2b')]+=moment(_0x2d1dc4[_0x832e84][_0x282767][_0xf067('0x59')]||_0x2d1dc4[_0x832e84][_0x282767][_0xf067('0x5a')]||_0x2d1dc4[_0x832e84][_0x282767][_0xf067('0x5b')])[_0xf067('0x5c')](moment(_0x2d1dc4[_0x832e84][_0x282767]['queuecallerjoinAt']),_0xf067('0x5d'))||0x0;_0x9c8d09[_0xf067('0x12')][_0x376d73][_0xf067('0x28')]+=0x1;if(_0x2d1dc4[_0x832e84][_0x282767][_0xf067('0x5e')]){_0x9c8d09[_0xf067('0x12')][_0x376d73]['answered']+=0x1;_0x9c8d09[_0xf067('0x12')][_0x376d73][_0xf067('0x2c')]+=moment(_0x2d1dc4[_0x832e84][_0x282767][_0xf067('0x59')])[_0xf067('0x5c')](moment(_0x2d1dc4[_0x832e84][_0x282767][_0xf067('0x57')]),_0xf067('0x5d'))||0x0;}}else{_0x9c8d09[_0xf067('0x12')][_0x376d73][_0xf067('0x2b')]+=_0x9c8d09[_0xf067('0x12')][_0x376d73][_0xf067('0x2a')]||0x0;}}}}}}return _0x9c8d09[_0xf067('0x12')];};};Realtime['prototype']['initVoiceCallReports']=function(){var _0x5ec96e=this;return function(_0xb0097a){clearVoiceCallReports(_0x5ec96e[_0xf067('0x15')]);if(_0xb0097a){for(var _0x16e758=0x0;_0x16e758<_0xb0097a[_0xf067('0x43')];_0x16e758+=0x1){_0x5ec96e[_0xf067('0x15')]['total']+=0x1;_0x5ec96e[_0xf067('0x15')]['sumDuration']+=_0xb0097a[_0x16e758][_0xf067('0x5f')];if(_0xb0097a[_0x16e758][_0xf067('0x60')]===_0xf067('0x61')){_0x5ec96e['outbound']['answered']+=0x1;_0x5ec96e[_0xf067('0x15')][_0xf067('0x2a')]+=_0xb0097a[_0x16e758]['duration']-_0xb0097a[_0x16e758][_0xf067('0x62')]||0x0;_0x5ec96e[_0xf067('0x15')][_0xf067('0x2c')]+=_0xb0097a[_0x16e758]['billableseconds'];}}}return _0x5ec96e[_0xf067('0x15')];};};Realtime['prototype']['initCampaigns']=function(){var _0xd41ee1=this;return function(_0x371a9f){if(_0x371a9f){freeIsNotKey(_0x371a9f,_0xd41ee1[_0xf067('0x13')],'name');for(var _0x162446=0x0,_0x4311fe={};_0x162446<_0x371a9f[_0xf067('0x43')];_0x162446+=0x1){_0x4311fe=_0x371a9f[_0x162446];if(_['isUndefined'](_0xd41ee1[_0xf067('0x13')][_0x4311fe[_0xf067('0x23')]])){_0xd41ee1[_0xf067('0x13')][_0x4311fe[_0xf067('0x23')]]=new Campaign(_0x4311fe);}else{_0xd41ee1['mergeFromDatabase'](_0xd41ee1['campaigns'][_0x4311fe['name']],_0x4311fe);_0xd41ee1[_0xf067('0x13')][_0x4311fe[_0xf067('0x23')]][_0xf067('0x63')]=_0x4311fe[_0xf067('0x64')]?_0x4311fe['SquareProject'][_0xf067('0x23')]:undefined;}}}return _0xd41ee1[_0xf067('0x13')];};};Realtime[_0xf067('0x3c')][_0xf067('0x65')]=function(){var _0x353abd=this;return function(_0x13ba5d){if(_0x13ba5d){freeIsNotKey(_0x13ba5d,_0x353abd['voiceExtensions'],'id');for(var _0x44a557=0x0,_0x8d41a={};_0x44a557<_0x13ba5d[_0xf067('0x43')];_0x44a557+=0x1){_0x8d41a=_0x13ba5d[_0x44a557];if(_[_0xf067('0x3e')](_0x353abd[_0xf067('0x66')][_0x8d41a['id']])){_0x353abd[_0xf067('0x66')][_0x8d41a['id']]=new VoiceExtension(_0x8d41a);}else{_0x353abd[_0xf067('0x40')](_0x353abd[_0xf067('0x66')][_0x8d41a['id']],_0x8d41a);}}}return _0x353abd[_0xf067('0x66')];};};Realtime[_0xf067('0x3c')][_0xf067('0x67')]=function(){var _0x5e419f=this;return function(_0x2c347c){clearCampaigns(_0x5e419f[_0xf067('0x13')]);for(var _0x5f2ec8=0x0;_0x5f2ec8<_0x2c347c['length'];_0x5f2ec8+=0x1){_['merge'](_0x5e419f['campaigns'][_0x2c347c[_0x5f2ec8]['name']],_0x2c347c[_0x5f2ec8]);}return _0x5e419f[_0xf067('0x13')];};};Realtime[_0xf067('0x3c')]['initFaxAccounts']=function(){var _0x5d8e96=this;return function(_0x2ff251){if(_0x2ff251){freeIsNotKey(_0x2ff251,_0x5d8e96[_0xf067('0x20')],'id');for(var _0x345705=0x0,_0x8ced0a={},_0x2e3973={};_0x345705<_0x2ff251[_0xf067('0x43')];_0x345705+=0x1){_0x8ced0a=_0x2ff251[_0x345705];if(_[_0xf067('0x3e')](_0x5d8e96[_0xf067('0x20')][_0x8ced0a['id']])){_0x5d8e96[_0xf067('0x20')][_0x8ced0a['id']]=new FaxAccount(_0x8ced0a);}else{_0x5d8e96[_0xf067('0x40')](_0x5d8e96[_0xf067('0x20')][_0x8ced0a['id']],_0x8ced0a);}}}return _0x5d8e96[_0xf067('0x20')];};};module['exports']=Realtime;
\ No newline at end of file
+var _0x08e8=['outboundDropCallsDayCallersExit','outboundRejectCallsDay','outboundReCallsDay','mergeFromDatabase','initAgents','isUndefined','prototype','initTelephones','telephones','length','initTrunks','trunks','initVoiceQueues','voiceQueues','initTriggers','triggers','initTemplates','zendeskAccounts','initSalesforceAccounts','initFreshdeskAccounts','initZohoAccounts','initDeskAccounts','deskAccounts','initSugarcrmAccounts','sugarcrmAccounts','servicenowAccounts','initDynamics365Accounts','initFreshsalesAccounts','initVoiceQueueHopperHistory','initVoiceQueueReports','groupBy','uniqueid','queue','queuecallerexit','queuecallerabandon','queuecallerleaveAt','queuecallerjoinAt','seconds','queuecallerabandonAt','total','queuecallercomplete','initVoiceCallReports','duration','disposition','billableseconds','initCampaigns','dialQueueProject','SquareProject','initVoiceExtensions','initCampaignHopperHistory','merge','initFaxAccounts','exports','bluebird','lodash','moment','../model/telephone','../model/trunk','../model/voiceQueue','../model/template','../model/campaign','../model/voiceExtension','../model/zendeskAccount','../model/salesforceAccount','../model/sugarcrmAccount','../model/zohoAccount','../model/deskAccount','../model/vtigerAccount','../model/dynamics365Account','../model/freshsalesAccount','../model/faxAccount','agents','campaigns','templates','outbound','voiceExtensions','channels','outboundChannels','timers','salesforceAccounts','freshdeskAccounts','zohoAccounts','vtigerAccounts','dynamics365Accounts','freshsalesAccounts','faxAccounts','mapKeys','hasOwnProperty','format','SIP/%s','isNil','interface','name','answered','sumHoldTime','sumDuration','sumBillable','isEmpty','ivrTotalCallsDays','ivrAnswerCallsDay','unmanaged','abandoned','outboundAnswerAgiCallsDay','outboundCongestionCallsDay','outboundNoSuchCallsDay','outboundDropCallsDayTimeout'];(function(_0x2077c1,_0x3c7d0c){var _0x304bdc=function(_0x56639f){while(--_0x56639f){_0x2077c1['push'](_0x2077c1['shift']());}};_0x304bdc(++_0x3c7d0c);}(_0x08e8,0x109));var _0x808e=function(_0x298a03,_0x2232eb){_0x298a03=_0x298a03-0x0;var _0xef4a6e=_0x08e8[_0x298a03];return _0xef4a6e;};'use strict';var BPromise=require(_0x808e('0x0'));var util=require('util');var _=require(_0x808e('0x1'));var moment=require(_0x808e('0x2'));var Agent=require('../model/agent');var Telephone=require(_0x808e('0x3'));var Trunk=require(_0x808e('0x4'));var VoiceQueue=require(_0x808e('0x5'));var Trigger=require('../model/trigger');var Template=require(_0x808e('0x6'));var Campaign=require(_0x808e('0x7'));var VoiceExtension=require(_0x808e('0x8'));var ZendeskAccount=require(_0x808e('0x9'));var SalesforceAccount=require(_0x808e('0xa'));var FreshdeskAccount=require('../model/freshdeskAccount');var SugarcrmAccount=require(_0x808e('0xb'));var ZohoAccount=require(_0x808e('0xc'));var DeskAccount=require(_0x808e('0xd'));var VtigerAccount=require(_0x808e('0xe'));var ServicenowAccount=require('../model/servicenowAccount');var Dynamics365Account=require(_0x808e('0xf'));var FreshsalesAccount=require(_0x808e('0x10'));var FaxAccount=require(_0x808e('0x11'));var Realtime=function(){this[_0x808e('0x12')]={};this['telephones']={};this['trunks']={};this['voiceQueues']={};this['triggers']={};this[_0x808e('0x13')]={};this[_0x808e('0x14')]={};this[_0x808e('0x15')]={'total':0x0,'answered':0x0,'sumHoldTime':0x0,'sumDuration':0x0,'sumBillable':0x0};this[_0x808e('0x16')]={};this[_0x808e('0x17')]={};this['queueChannels']={};this[_0x808e('0x18')]={};this[_0x808e('0x19')]={};this['settings']={};this['zendeskAccounts']={};this[_0x808e('0x1a')]={};this['sugarcrmAccounts']={};this[_0x808e('0x1b')]={};this[_0x808e('0x1c')]={};this['deskAccounts']={};this[_0x808e('0x1d')]={};this['servicenowAccounts']={};this[_0x808e('0x1e')]={};this[_0x808e('0x1f')]={};this[_0x808e('0x20')]={};};function freeIsNotKey(_0x5bd27b,_0x108c45,_0x31c006){var _0x3ef7ef=_[_0x808e('0x21')](_0x5bd27b,function(_0x4834d1,_0x5c34c0){return _0x4834d1[_0x31c006];});for(var _0x21913e in _0x108c45){if(_0x108c45[_0x808e('0x22')](_0x21913e)){if(!_0x3ef7ef[_0x21913e]){delete _0x108c45[_0x21913e];}}}}function freeIsNotKeySip(_0x130ff2,_0x1ee507){var _0x5f3cf4=_[_0x808e('0x21')](_0x130ff2,function(_0x3e5046,_0x45d7b2){return util[_0x808e('0x23')](_0x808e('0x24'),_0x3e5046['name']);});for(var _0x56aae4 in _0x1ee507){if(_0x1ee507[_0x808e('0x22')](_0x56aae4)){if(!_0x5f3cf4[_0x56aae4]){delete _0x1ee507[_0x56aae4];}}}}function freeIsNotKeyAgent(_0x4afd49,_0x3ed801){var _0x3abfb2=_[_0x808e('0x21')](_0x4afd49,function(_0xe81e41,_0x2d40e4){var _0x33ee96=_[_0x808e('0x25')](_0xe81e41[_0x808e('0x26')])?util['format'](_0x808e('0x24'),_0xe81e41[_0x808e('0x27')]):_0xe81e41[_0x808e('0x26')];return _0x33ee96;});for(var _0x569fc5 in _0x3ed801){if(_0x3ed801[_0x808e('0x22')](_0x569fc5)){if(!_0x3abfb2[_0x569fc5]){delete _0x3ed801[_0x569fc5];}}}}function clearVoiceCallReports(_0x566be2){_0x566be2['total']=0x0;_0x566be2[_0x808e('0x28')]=0x0;_0x566be2[_0x808e('0x29')]=0x0;_0x566be2[_0x808e('0x2a')]=0x0;_0x566be2[_0x808e('0x2b')]=0x0;}function clearCampaigns(_0x223f62){if(!_[_0x808e('0x2c')](_0x223f62)){for(var _0x1b8144 in _0x223f62){if(_0x223f62[_0x808e('0x22')](_0x1b8144)){_0x223f62[_0x1b8144][_0x808e('0x2d')]=0x0;_0x223f62[_0x1b8144][_0x808e('0x2e')]=0x0;}}}}function clearVoiceQueues(_0x2800e3){if(!_[_0x808e('0x2c')](_0x2800e3)){for(var _0x3a5e12 in _0x2800e3){if(_0x2800e3['hasOwnProperty'](_0x3a5e12)){_0x2800e3[_0x3a5e12]['total']=0x0;_0x2800e3[_0x3a5e12][_0x808e('0x28')]=0x0;_0x2800e3[_0x3a5e12][_0x808e('0x2f')]=0x0;_0x2800e3[_0x3a5e12][_0x808e('0x30')]=0x0;_0x2800e3[_0x3a5e12][_0x808e('0x29')]=0x0;_0x2800e3[_0x3a5e12][_0x808e('0x2a')]=0x0;_0x2800e3[_0x3a5e12][_0x808e('0x2b')]=0x0;_0x2800e3[_0x3a5e12][_0x808e('0x31')]=0x0;_0x2800e3[_0x3a5e12]['outboundNoAnswerCallsDay']=0x0;_0x2800e3[_0x3a5e12]['outboundBusyCallsDay']=0x0;_0x2800e3[_0x3a5e12][_0x808e('0x32')]=0x0;_0x2800e3[_0x3a5e12][_0x808e('0x33')]=0x0;_0x2800e3[_0x3a5e12]['outboundUnknownCallsDay']=0x0;_0x2800e3[_0x3a5e12][_0x808e('0x34')]=0x0;_0x2800e3[_0x3a5e12][_0x808e('0x35')]=0x0;_0x2800e3[_0x3a5e12]['outboundBlacklistCallsDay']=0x0;_0x2800e3[_0x3a5e12]['outboundOriginateFailureCallsDay']=0x0;_0x2800e3[_0x3a5e12][_0x808e('0x36')]=0x0;_0x2800e3[_0x3a5e12][_0x808e('0x37')]=0x0;_0x2800e3[_0x3a5e12][_0x808e('0x31')]=0x0;_0x2800e3[_0x3a5e12]['outboundAnswerCallsDay']=0x0;_0x2800e3[_0x3a5e12]['queueStatusComplete']=!![];}}}}Realtime['prototype'][_0x808e('0x38')]=function(_0x310c42,_0x28d066){for(var _0x4399ad in _0x28d066){if(_0x310c42['hasOwnProperty'](_0x4399ad)){_0x310c42[_0x4399ad]=_0x28d066[_0x4399ad];}}};Realtime['prototype'][_0x808e('0x39')]=function(){var _0x1e3b40=this;return function(_0x3864c6){if(_0x3864c6){freeIsNotKeyAgent(_0x3864c6,_0x1e3b40[_0x808e('0x12')]);for(var _0x1b0bc8=0x0,_0x558e1c={},_0x56a3bf={};_0x1b0bc8<_0x3864c6['length'];_0x1b0bc8+=0x1){_0x558e1c=_0x3864c6[_0x1b0bc8];var _0xb1b092=_['isNil'](_0x558e1c[_0x808e('0x26')])?util['format'](_0x808e('0x24'),_0x558e1c[_0x808e('0x27')]):_0x558e1c[_0x808e('0x26')];if(_[_0x808e('0x3a')](_0x1e3b40[_0x808e('0x12')][_0xb1b092])){_0x1e3b40[_0x808e('0x12')][_0xb1b092]=new Agent(_0x558e1c);}else{_0x1e3b40[_0x808e('0x38')](_0x1e3b40[_0x808e('0x12')][_0xb1b092],_0x558e1c);}}}return _0x1e3b40[_0x808e('0x12')];};};Realtime[_0x808e('0x3b')][_0x808e('0x3c')]=function(){var _0x3fb138=this;return function(_0x31434e){if(_0x31434e){freeIsNotKeySip(_0x31434e,_0x3fb138[_0x808e('0x3d')]);for(var _0x2fadff=0x0,_0x3f8383={},_0x2b2ae7={};_0x2fadff<_0x31434e[_0x808e('0x3e')];_0x2fadff+=0x1){_0x3f8383=_0x31434e[_0x2fadff];if(_[_0x808e('0x3a')](_0x3fb138[_0x808e('0x3d')][util[_0x808e('0x23')](_0x808e('0x24'),_0x3f8383[_0x808e('0x27')])])){_0x3fb138[_0x808e('0x3d')][util[_0x808e('0x23')](_0x808e('0x24'),_0x3f8383[_0x808e('0x27')])]=new Telephone(_0x3f8383);}else{_0x3fb138[_0x808e('0x38')](_0x3fb138['telephones'][util[_0x808e('0x23')](_0x808e('0x24'),_0x3f8383['name'])],_0x3f8383);}}}return _0x3fb138['telephones'];};};Realtime['prototype'][_0x808e('0x3f')]=function(){var _0x43496d=this;return function(_0x17d33f){if(_0x17d33f){freeIsNotKeySip(_0x17d33f,_0x43496d[_0x808e('0x40')]);for(var _0x3ca4ca=0x0,_0x497112={},_0x512428={};_0x3ca4ca<_0x17d33f[_0x808e('0x3e')];_0x3ca4ca+=0x1){_0x497112=_0x17d33f[_0x3ca4ca];if(_[_0x808e('0x3a')](_0x43496d[_0x808e('0x40')][util[_0x808e('0x23')]('SIP/%s',_0x497112[_0x808e('0x27')])])){_0x43496d[_0x808e('0x40')][util[_0x808e('0x23')]('SIP/%s',_0x497112[_0x808e('0x27')])]=new Trunk(_0x497112);}else{_0x43496d['mergeFromDatabase'](_0x43496d[_0x808e('0x40')][util[_0x808e('0x23')](_0x808e('0x24'),_0x497112[_0x808e('0x27')])],_0x497112);}}}return _0x43496d[_0x808e('0x40')];};};Realtime[_0x808e('0x3b')][_0x808e('0x41')]=function(){var _0x44dacd=this;return function(_0x2ac20b){if(_0x2ac20b){freeIsNotKey(_0x2ac20b,_0x44dacd[_0x808e('0x42')],_0x808e('0x27'));for(var _0x2e4d95=0x0,_0x3c568b={},_0x192310={};_0x2e4d95<_0x2ac20b[_0x808e('0x3e')];_0x2e4d95+=0x1){_0x3c568b=_0x2ac20b[_0x2e4d95];if(_['isUndefined'](_0x44dacd['voiceQueues'][_0x3c568b['name']])){_0x44dacd[_0x808e('0x42')][_0x3c568b[_0x808e('0x27')]]=new VoiceQueue(_0x3c568b);}else{_0x44dacd[_0x808e('0x38')](_0x44dacd['voiceQueues'][_0x3c568b[_0x808e('0x27')]],_0x3c568b);}}}return _0x44dacd[_0x808e('0x42')];};};Realtime[_0x808e('0x3b')][_0x808e('0x43')]=function(){var _0x172b92=this;return function(_0x34a79e){if(_0x34a79e){freeIsNotKey(_0x34a79e,_0x172b92['triggers'],'id');for(var _0x16be3a=0x0,_0x56a578={},_0x787699={};_0x16be3a<_0x34a79e[_0x808e('0x3e')];_0x16be3a+=0x1){_0x56a578=_0x34a79e[_0x16be3a];if(_[_0x808e('0x3a')](_0x172b92['triggers'][_0x56a578['id']])){_0x172b92['triggers'][_0x56a578['id']]=new Trigger(_0x56a578);}else{_0x172b92[_0x808e('0x38')](_0x172b92[_0x808e('0x44')][_0x56a578['id']],_0x56a578);}}}return _0x172b92[_0x808e('0x44')];};};Realtime[_0x808e('0x3b')][_0x808e('0x45')]=function(){var _0x49a248=this;return function(_0x5d05b9){if(_0x5d05b9){freeIsNotKey(_0x5d05b9,_0x49a248[_0x808e('0x14')],'id');for(var _0x23ad7e=0x0,_0x56cda9={},_0x57c696={};_0x23ad7e<_0x5d05b9[_0x808e('0x3e')];_0x23ad7e+=0x1){_0x56cda9=_0x5d05b9[_0x23ad7e];if(_[_0x808e('0x3a')](_0x49a248['templates'][_0x56cda9['id']])){_0x49a248[_0x808e('0x14')][_0x56cda9['id']]=new Template(_0x56cda9);}else{_0x49a248[_0x808e('0x38')](_0x49a248['templates'][_0x56cda9['id']],_0x56cda9);}}}return _0x49a248['templates'];};};Realtime[_0x808e('0x3b')]['initZendeskAccounts']=function(){var _0x5718e1=this;return function(_0xf90e48){if(_0xf90e48){freeIsNotKey(_0xf90e48,_0x5718e1[_0x808e('0x46')],'id');for(var _0x1d94dc=0x0,_0x593ba2={},_0x34edfb={};_0x1d94dc<_0xf90e48[_0x808e('0x3e')];_0x1d94dc+=0x1){_0x593ba2=_0xf90e48[_0x1d94dc];if(_[_0x808e('0x3a')](_0x5718e1[_0x808e('0x46')][_0x593ba2['id']])){_0x5718e1[_0x808e('0x46')][_0x593ba2['id']]=new ZendeskAccount(_0x593ba2);}else{_0x5718e1['mergeFromDatabase'](_0x5718e1[_0x808e('0x46')][_0x593ba2['id']],_0x593ba2);}}}return _0x5718e1[_0x808e('0x46')];};};Realtime[_0x808e('0x3b')][_0x808e('0x47')]=function(){var _0x449247=this;return function(_0x2aaecb){if(_0x2aaecb){freeIsNotKey(_0x2aaecb,_0x449247[_0x808e('0x1a')],'id');for(var _0x1b58ff=0x0,_0x3c3c9e={},_0x4066df={};_0x1b58ff<_0x2aaecb['length'];_0x1b58ff+=0x1){_0x3c3c9e=_0x2aaecb[_0x1b58ff];if(_[_0x808e('0x3a')](_0x449247[_0x808e('0x1a')][_0x3c3c9e['id']])){_0x449247[_0x808e('0x1a')][_0x3c3c9e['id']]=new SalesforceAccount(_0x3c3c9e);}else{_0x449247[_0x808e('0x38')](_0x449247[_0x808e('0x1a')][_0x3c3c9e['id']],_0x3c3c9e);}}}return _0x449247['salesforceAccounts'];};};Realtime[_0x808e('0x3b')][_0x808e('0x48')]=function(){var _0x3f70ec=this;return function(_0x4fc1c){if(_0x4fc1c){freeIsNotKey(_0x4fc1c,_0x3f70ec['freshdeskAccounts'],'id');for(var _0x2ffaa7=0x0,_0x51e093={},_0x26c375={};_0x2ffaa7<_0x4fc1c[_0x808e('0x3e')];_0x2ffaa7+=0x1){_0x51e093=_0x4fc1c[_0x2ffaa7];if(_['isUndefined'](_0x3f70ec[_0x808e('0x1b')][_0x51e093['id']])){_0x3f70ec[_0x808e('0x1b')][_0x51e093['id']]=new FreshdeskAccount(_0x51e093);}else{_0x3f70ec[_0x808e('0x38')](_0x3f70ec['freshdeskAccounts'][_0x51e093['id']],_0x51e093);}}}return _0x3f70ec['freshdeskAccounts'];};};Realtime['prototype'][_0x808e('0x49')]=function(){var _0x23943a=this;return function(_0x5513ca){if(_0x5513ca){freeIsNotKey(_0x5513ca,_0x23943a[_0x808e('0x1c')],'id');for(var _0x14cab5=0x0,_0x6f087e={},_0x1f9448={};_0x14cab5<_0x5513ca[_0x808e('0x3e')];_0x14cab5+=0x1){_0x6f087e=_0x5513ca[_0x14cab5];if(_[_0x808e('0x3a')](_0x23943a[_0x808e('0x1c')][_0x6f087e['id']])){_0x23943a[_0x808e('0x1c')][_0x6f087e['id']]=new ZohoAccount(_0x6f087e);}else{_0x23943a[_0x808e('0x38')](_0x23943a[_0x808e('0x1c')][_0x6f087e['id']],_0x6f087e);}}}return _0x23943a[_0x808e('0x1c')];};};Realtime['prototype'][_0x808e('0x4a')]=function(){var _0x494811=this;return function(_0x564587){if(_0x564587){freeIsNotKey(_0x564587,_0x494811[_0x808e('0x4b')],'id');for(var _0xc5ac75=0x0,_0x49eb39={},_0x16a6ef={};_0xc5ac75<_0x564587[_0x808e('0x3e')];_0xc5ac75+=0x1){_0x49eb39=_0x564587[_0xc5ac75];if(_[_0x808e('0x3a')](_0x494811[_0x808e('0x4b')][_0x49eb39['id']])){_0x494811[_0x808e('0x4b')][_0x49eb39['id']]=new DeskAccount(_0x49eb39);}else{_0x494811[_0x808e('0x38')](_0x494811[_0x808e('0x4b')][_0x49eb39['id']],_0x49eb39);}}}return _0x494811[_0x808e('0x4b')];};};Realtime[_0x808e('0x3b')][_0x808e('0x4c')]=function(){var _0x448985=this;return function(_0x21c215){if(_0x21c215){freeIsNotKey(_0x21c215,_0x448985['sugarcrmAccounts'],'id');for(var _0x14c6d1=0x0,_0x535ca3={},_0x48bf51={};_0x14c6d1<_0x21c215[_0x808e('0x3e')];_0x14c6d1+=0x1){_0x535ca3=_0x21c215[_0x14c6d1];if(_[_0x808e('0x3a')](_0x448985['sugarcrmAccounts'][_0x535ca3['id']])){_0x448985[_0x808e('0x4d')][_0x535ca3['id']]=new SugarcrmAccount(_0x535ca3);}else{_0x448985[_0x808e('0x38')](_0x448985[_0x808e('0x4d')][_0x535ca3['id']],_0x535ca3);}}}return _0x448985[_0x808e('0x4d')];};};Realtime[_0x808e('0x3b')]['initVtigerAccounts']=function(){var _0xd3b809=this;return function(_0x4c5f0d){if(_0x4c5f0d){freeIsNotKey(_0x4c5f0d,_0xd3b809[_0x808e('0x1d')],'id');for(var _0x47970b=0x0,_0x5a789b={},_0x459581={};_0x47970b<_0x4c5f0d[_0x808e('0x3e')];_0x47970b+=0x1){_0x5a789b=_0x4c5f0d[_0x47970b];if(_[_0x808e('0x3a')](_0xd3b809[_0x808e('0x1d')][_0x5a789b['id']])){_0xd3b809[_0x808e('0x1d')][_0x5a789b['id']]=new VtigerAccount(_0x5a789b);}else{_0xd3b809[_0x808e('0x38')](_0xd3b809[_0x808e('0x1d')][_0x5a789b['id']],_0x5a789b);}}}return _0xd3b809[_0x808e('0x1d')];};};Realtime['prototype']['initServicenowAccounts']=function(){var _0x28992e=this;return function(_0xe44028){if(_0xe44028){freeIsNotKey(_0xe44028,_0x28992e[_0x808e('0x4e')],'id');for(var _0x48601b=0x0,_0x36f6d3={},_0x4d8d45={};_0x48601b<_0xe44028[_0x808e('0x3e')];_0x48601b+=0x1){_0x36f6d3=_0xe44028[_0x48601b];if(_[_0x808e('0x3a')](_0x28992e[_0x808e('0x4e')][_0x36f6d3['id']])){_0x28992e[_0x808e('0x4e')][_0x36f6d3['id']]=new ServicenowAccount(_0x36f6d3);}else{_0x28992e[_0x808e('0x38')](_0x28992e[_0x808e('0x4e')][_0x36f6d3['id']],_0x36f6d3);}}}return _0x28992e[_0x808e('0x4e')];};};Realtime[_0x808e('0x3b')][_0x808e('0x4f')]=function(){var _0x1755be=this;return function(_0x5f5ab2){if(_0x5f5ab2){freeIsNotKey(_0x5f5ab2,_0x1755be['dynamics365Accounts'],'id');for(var _0x25b86a=0x0,_0x211b7d={},_0x33289a={};_0x25b86a<_0x5f5ab2['length'];_0x25b86a+=0x1){_0x211b7d=_0x5f5ab2[_0x25b86a];if(_[_0x808e('0x3a')](_0x1755be[_0x808e('0x1e')][_0x211b7d['id']])){_0x1755be[_0x808e('0x1e')][_0x211b7d['id']]=new Dynamics365Account(_0x211b7d);}else{_0x1755be[_0x808e('0x38')](_0x1755be[_0x808e('0x1e')][_0x211b7d['id']],_0x211b7d);}}}return _0x1755be['dynamics365Accounts'];};};Realtime[_0x808e('0x3b')][_0x808e('0x50')]=function(){var _0x2f8ed8=this;return function(_0x23b63c){if(_0x23b63c){freeIsNotKey(_0x23b63c,_0x2f8ed8['freshsalesAccounts'],'id');for(var _0x46a601=0x0,_0x4543e0={},_0x2e4d80={};_0x46a601<_0x23b63c[_0x808e('0x3e')];_0x46a601+=0x1){_0x4543e0=_0x23b63c[_0x46a601];if(_[_0x808e('0x3a')](_0x2f8ed8[_0x808e('0x1f')][_0x4543e0['id']])){_0x2f8ed8[_0x808e('0x1f')][_0x4543e0['id']]=new FreshsalesAccount(_0x4543e0);}else{_0x2f8ed8[_0x808e('0x38')](_0x2f8ed8[_0x808e('0x1f')][_0x4543e0['id']],_0x4543e0);}}}return _0x2f8ed8['freshsalesAccounts'];};};Realtime[_0x808e('0x3b')][_0x808e('0x51')]=function(){var _0x4f9695=this;return function(_0x572a9a){for(var _0x4a4d27=0x0;_0x4a4d27<_0x572a9a[_0x808e('0x3e')];_0x4a4d27+=0x1){_['merge'](_0x4f9695[_0x808e('0x42')][_0x572a9a[_0x4a4d27][_0x808e('0x27')]],_0x572a9a[_0x4a4d27]);}return _0x4f9695[_0x808e('0x42')];};};Realtime[_0x808e('0x3b')][_0x808e('0x52')]=function(){var _0x32b38e=this;return function(_0x4bc3f5){clearVoiceQueues(_0x32b38e[_0x808e('0x42')]);if(_0x4bc3f5){_0x4bc3f5=_[_0x808e('0x53')](_0x4bc3f5,_0x808e('0x54'));for(var _0x4cdf51 in _0x4bc3f5){if(_0x4bc3f5[_0x808e('0x22')](_0x4cdf51)){var _0x12d9db={};for(var _0x369298=0x0;_0x369298<_0x4bc3f5[_0x4cdf51]['length'];_0x369298+=0x1){var _0x1f5cb0=_0x4bc3f5[_0x4cdf51][_0x369298][_0x808e('0x55')];if(_0x32b38e[_0x808e('0x42')][_0x1f5cb0]){if(_0x4bc3f5[_0x4cdf51][_0x369298][_0x808e('0x56')]){_0x32b38e[_0x808e('0x42')][_0x1f5cb0][_0x808e('0x2f')]+=0x1;}if(_0x4bc3f5[_0x4cdf51][_0x369298][_0x808e('0x57')]){_0x32b38e['voiceQueues'][_0x1f5cb0][_0x808e('0x30')]+=0x1;}_0x32b38e[_0x808e('0x42')][_0x1f5cb0][_0x808e('0x29')]+=moment(_0x4bc3f5[_0x4cdf51][_0x369298][_0x808e('0x58')])['diff'](moment(_0x4bc3f5[_0x4cdf51][_0x369298][_0x808e('0x59')]),_0x808e('0x5a'))||0x0;if(_0x369298===_0x4bc3f5[_0x4cdf51]['length']-0x1){_0x32b38e['voiceQueues'][_0x1f5cb0][_0x808e('0x2a')]+=moment(_0x4bc3f5[_0x4cdf51][_0x369298]['queuecallercompleteAt']||_0x4bc3f5[_0x4cdf51][_0x369298][_0x808e('0x5b')]||_0x4bc3f5[_0x4cdf51][_0x369298]['queuecallerexitAt'])['diff'](moment(_0x4bc3f5[_0x4cdf51][_0x369298][_0x808e('0x59')]),_0x808e('0x5a'))||0x0;_0x32b38e[_0x808e('0x42')][_0x1f5cb0][_0x808e('0x5c')]+=0x1;if(_0x4bc3f5[_0x4cdf51][_0x369298][_0x808e('0x5d')]){_0x32b38e[_0x808e('0x42')][_0x1f5cb0]['answered']+=0x1;_0x32b38e[_0x808e('0x42')][_0x1f5cb0]['sumBillable']+=moment(_0x4bc3f5[_0x4cdf51][_0x369298]['queuecallercompleteAt'])['diff'](moment(_0x4bc3f5[_0x4cdf51][_0x369298][_0x808e('0x58')]),_0x808e('0x5a'))||0x0;}}else{_0x32b38e[_0x808e('0x42')][_0x1f5cb0][_0x808e('0x2a')]+=_0x32b38e[_0x808e('0x42')][_0x1f5cb0]['sumHoldTime']||0x0;}}}}}}return _0x32b38e[_0x808e('0x42')];};};Realtime[_0x808e('0x3b')][_0x808e('0x5e')]=function(){var _0x419528=this;return function(_0xf2b1d5){clearVoiceCallReports(_0x419528[_0x808e('0x15')]);if(_0xf2b1d5){for(var _0x15b9be=0x0;_0x15b9be<_0xf2b1d5['length'];_0x15b9be+=0x1){_0x419528[_0x808e('0x15')][_0x808e('0x5c')]+=0x1;_0x419528[_0x808e('0x15')][_0x808e('0x2a')]+=_0xf2b1d5[_0x15b9be][_0x808e('0x5f')];if(_0xf2b1d5[_0x15b9be][_0x808e('0x60')]==='ANSWERED'){_0x419528[_0x808e('0x15')][_0x808e('0x28')]+=0x1;_0x419528['outbound'][_0x808e('0x29')]+=_0xf2b1d5[_0x15b9be][_0x808e('0x5f')]-_0xf2b1d5[_0x15b9be]['billableseconds']||0x0;_0x419528[_0x808e('0x15')]['sumBillable']+=_0xf2b1d5[_0x15b9be][_0x808e('0x61')];}}}return _0x419528[_0x808e('0x15')];};};Realtime[_0x808e('0x3b')][_0x808e('0x62')]=function(){var _0x3ab0d=this;return function(_0x29c0d8){if(_0x29c0d8){freeIsNotKey(_0x29c0d8,_0x3ab0d[_0x808e('0x13')],_0x808e('0x27'));for(var _0x8968a5=0x0,_0x16caf6={};_0x8968a5<_0x29c0d8[_0x808e('0x3e')];_0x8968a5+=0x1){_0x16caf6=_0x29c0d8[_0x8968a5];if(_[_0x808e('0x3a')](_0x3ab0d[_0x808e('0x13')][_0x16caf6[_0x808e('0x27')]])){_0x3ab0d[_0x808e('0x13')][_0x16caf6[_0x808e('0x27')]]=new Campaign(_0x16caf6);}else{_0x3ab0d[_0x808e('0x38')](_0x3ab0d['campaigns'][_0x16caf6[_0x808e('0x27')]],_0x16caf6);_0x3ab0d[_0x808e('0x13')][_0x16caf6[_0x808e('0x27')]][_0x808e('0x63')]=_0x16caf6['SquareProject']?_0x16caf6[_0x808e('0x64')][_0x808e('0x27')]:undefined;}}}return _0x3ab0d[_0x808e('0x13')];};};Realtime[_0x808e('0x3b')][_0x808e('0x65')]=function(){var _0x26ae29=this;return function(_0x33fcb2){if(_0x33fcb2){freeIsNotKey(_0x33fcb2,_0x26ae29['voiceExtensions'],'id');for(var _0x4fbc00=0x0,_0x8200b2={};_0x4fbc00<_0x33fcb2['length'];_0x4fbc00+=0x1){_0x8200b2=_0x33fcb2[_0x4fbc00];if(_[_0x808e('0x3a')](_0x26ae29[_0x808e('0x16')][_0x8200b2['id']])){_0x26ae29[_0x808e('0x16')][_0x8200b2['id']]=new VoiceExtension(_0x8200b2);}else{_0x26ae29['mergeFromDatabase'](_0x26ae29['voiceExtensions'][_0x8200b2['id']],_0x8200b2);}}}return _0x26ae29[_0x808e('0x16')];};};Realtime[_0x808e('0x3b')][_0x808e('0x66')]=function(){var _0x2fe067=this;return function(_0x4dc8ee){clearCampaigns(_0x2fe067[_0x808e('0x13')]);for(var _0x5babf6=0x0;_0x5babf6<_0x4dc8ee[_0x808e('0x3e')];_0x5babf6+=0x1){_[_0x808e('0x67')](_0x2fe067[_0x808e('0x13')][_0x4dc8ee[_0x5babf6][_0x808e('0x27')]],_0x4dc8ee[_0x5babf6]);}return _0x2fe067[_0x808e('0x13')];};};Realtime['prototype'][_0x808e('0x68')]=function(){var _0x58f3df=this;return function(_0x10bb09){if(_0x10bb09){freeIsNotKey(_0x10bb09,_0x58f3df[_0x808e('0x20')],'id');for(var _0xf6dd31=0x0,_0xa376ff={},_0x58de14={};_0xf6dd31<_0x10bb09[_0x808e('0x3e')];_0xf6dd31+=0x1){_0xa376ff=_0x10bb09[_0xf6dd31];if(_[_0x808e('0x3a')](_0x58f3df['faxAccounts'][_0xa376ff['id']])){_0x58f3df[_0x808e('0x20')][_0xa376ff['id']]=new FaxAccount(_0xa376ff);}else{_0x58f3df['mergeFromDatabase'](_0x58f3df['faxAccounts'][_0xa376ff['id']],_0xa376ff);}}}return _0x58f3df[_0x808e('0x20')];};};module[_0x808e('0x69')]=Realtime;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf7d1=['queuecallerexit','queuecallerexitAt','create','match','destination','exten','type','dialer','lastapplication','lastdata','queue','context','from-voip-provider','destinationchannel','channel','calleridnum','originatecalleridnum','disposition','ANSWERED','calleridname','transfers','linkedid','transfereelinkedid','uniqueid','monitor','monitors','filename','createdAt','connectedlinename','membername','xcally-motion-dialer','isArray','startsWith','indexOf','mobile','phone','substring','lastIndexOf','transfererlinkedid','exports','lodash','moment','util','../../../config/environment','../ami','../rpc/voiceAgentReport','../rpc/voiceCallReport','../rpc/voiceDialReport','../rpc/memberReport','../rpc/voiceQueueReport','../rpc/voiceRecording','../rpc/voiceTransferReport','./voiceQueueReport','./voiceCallReport','./voiceAgentReport','./voiceDialReport','realtime','agents','telephones','sync','xdr','disabled','voiceQueueReport','bind','custom:voiceCallReport','voiceCallReport','custom:voiceAgentReport','voiceAgentReport','custom:voiceDialReport','voiceDialReport','blindtransfer','blindTransfer','attendedTransfer','prototype','findAgent','find','accountcode','name','isNil','format','SIP/%s','length','connectedlinenum','lastAssignedTo','interface','queuecallercomplete','queuecallercompleteAt','YYYY-MM-DD\x20HH:mm:ss'];(function(_0x3f3663,_0xa80fa8){var _0x3b9dd0=function(_0x1acf1c){while(--_0x1acf1c){_0x3f3663['push'](_0x3f3663['shift']());}};_0x3b9dd0(++_0xa80fa8);}(_0xf7d1,0x188));var _0x1f7d=function(_0x481726,_0x1376ec){_0x481726=_0x481726-0x0;var _0x4d5f55=_0xf7d1[_0x481726];return _0x4d5f55;};'use strict';var _=require(_0x1f7d('0x0'));var moment=require(_0x1f7d('0x1'));var util=require(_0x1f7d('0x2'));var config=require(_0x1f7d('0x3'));var ami=require(_0x1f7d('0x4'));var RpcVoiceAgentReport=require(_0x1f7d('0x5'));var RpcVoiceCallReport=require(_0x1f7d('0x6'));var RpcVoiceDialReport=require(_0x1f7d('0x7'));var RpcMemberReport=require(_0x1f7d('0x8'));var RpcVoiceQueueReport=require(_0x1f7d('0x9'));var RpcVoiceRecording=require(_0x1f7d('0xa'));var RpcVoiceTransferReport=require(_0x1f7d('0xb'));var VoiceQueueReport=require(_0x1f7d('0xc'));var VoiceCallReport=require(_0x1f7d('0xd'));var VoiceAgentReport=require(_0x1f7d('0xe'));var VoiceDialReport=require(_0x1f7d('0xf'));var UserReport=require('./userReport');function Report(_0x5284f7){this[_0x1f7d('0x10')]=_0x5284f7;this[_0x1f7d('0x11')]=_0x5284f7[_0x1f7d('0x11')];this[_0x1f7d('0x12')]=_0x5284f7['telephones'];}Report['prototype'][_0x1f7d('0x13')]=function(_0x46165d){var _0x1b86a8=new VoiceQueueReport(this[_0x1f7d('0x10')]);var _0x5ba271=new VoiceAgentReport(this[_0x1f7d('0x10')]);var _0x1d4ae0=new VoiceDialReport(this[_0x1f7d('0x10')]);var _0x511530=new VoiceCallReport(this['realtime']);var _0x26258e=new UserReport(this[_0x1f7d('0x10')]);if(config[_0x1f7d('0x14')]&&config[_0x1f7d('0x14')][_0x1f7d('0x15')]){ami['on']('custom:voiceQueueReport',this[_0x1f7d('0x16')][_0x1f7d('0x17')](this));ami['on'](_0x1f7d('0x18'),this[_0x1f7d('0x19')][_0x1f7d('0x17')](this));ami['on'](_0x1f7d('0x1a'),this[_0x1f7d('0x1b')]['bind'](this));ami['on'](_0x1f7d('0x1c'),this[_0x1f7d('0x1d')]['bind'](this));ami['on'](_0x1f7d('0x1e'),this[_0x1f7d('0x1f')][_0x1f7d('0x17')](this));ami['on']('attendedtransfer',this[_0x1f7d('0x20')]['bind'](this));}};Report[_0x1f7d('0x21')][_0x1f7d('0x22')]=function(_0x39dbbd){var _0x3d46ef;_0x3d46ef=_[_0x1f7d('0x23')](this['agents'],function(_0x101771){return _0x101771[_0x1f7d('0x24')]==_0x39dbbd||_0x101771[_0x1f7d('0x25')]==_0x39dbbd;});if(_[_0x1f7d('0x26')](_0x3d46ef)){var _0x199b0d=_[_0x1f7d('0x23')](this[_0x1f7d('0x12')],function(_0x1d2740){return _0x1d2740[_0x1f7d('0x24')]==_0x39dbbd||_0x1d2740[_0x1f7d('0x25')]==_0x39dbbd;});if(_0x199b0d){_0x3d46ef=_[_0x1f7d('0x23')](this[_0x1f7d('0x11')],function(_0x1ab7aa){return _0x1ab7aa['interface']==util[_0x1f7d('0x27')](_0x1f7d('0x28'),_0x199b0d[_0x1f7d('0x25')]);});}}return _0x3d46ef;};Report[_0x1f7d('0x21')][_0x1f7d('0x16')]=function(_0x42e3ac){for(var _0x2706c2=0x0;_0x2706c2<_0x42e3ac[_0x1f7d('0x29')];_0x2706c2+=0x1){var _0x52b857=this[_0x1f7d('0x22')](_0x42e3ac[_0x2706c2][_0x1f7d('0x2a')]);if(_0x52b857){_0x42e3ac[_0x2706c2]['accountcode']=_0x52b857['accountcode'];_0x42e3ac[_0x2706c2]['assigned']=!![];_0x42e3ac[_0x2706c2][_0x1f7d('0x2b')]=_0x52b857[_0x1f7d('0x25')];_0x42e3ac[_0x2706c2][_0x1f7d('0x2c')]=_[_0x1f7d('0x26')](_0x52b857[_0x1f7d('0x2c')])?util[_0x1f7d('0x27')]('SIP/%s',_0x52b857['name']):_0x52b857[_0x1f7d('0x2c')];if(_0x42e3ac[_0x2706c2][_0x1f7d('0x2d')]){_0x42e3ac[_0x2706c2][_0x1f7d('0x2e')]=moment()[_0x1f7d('0x27')](_0x1f7d('0x2f'));}if(_0x42e3ac[_0x2706c2][_0x1f7d('0x30')]){_0x42e3ac[_0x2706c2][_0x1f7d('0x31')]=moment()[_0x1f7d('0x27')]('YYYY-MM-DD\x20HH:mm:ss');}RpcMemberReport[_0x1f7d('0x16')](_0x42e3ac[_0x2706c2]);}RpcVoiceQueueReport[_0x1f7d('0x32')](_0x42e3ac[_0x2706c2]);}};function extractCalleridNumber(_0x5ceb94){var _0x5099d8=_0x5ceb94[_0x1f7d('0x33')](/<(.*?)>/);return _0x5099d8?_0x5099d8[0x1]:_0x5ceb94;}Report[_0x1f7d('0x21')][_0x1f7d('0x19')]=function(_0xdd8ecf){_0xdd8ecf['destination']=_0xdd8ecf[_0x1f7d('0x34')]||_0xdd8ecf[_0x1f7d('0x35')];if(_0xdd8ecf[_0x1f7d('0x36')]==_0x1f7d('0x37')){_0xdd8ecf[_0x1f7d('0x38')]='queue';_0xdd8ecf[_0x1f7d('0x39')]=_0xdd8ecf[_0x1f7d('0x3a')];if(_0xdd8ecf[_0x1f7d('0x3b')]==_0x1f7d('0x3c')){_0xdd8ecf[_0x1f7d('0x24')]='';_0xdd8ecf[_0x1f7d('0x34')]=extractCalleridNumber(_0xdd8ecf['callerid']);}else if(_0xdd8ecf[_0x1f7d('0x3b')]=='from-sip'){if(_0xdd8ecf[_0x1f7d('0x34')]=='xcally-motion-preview'){_0xdd8ecf[_0x1f7d('0x34')]=extractCalleridNumber(_0xdd8ecf['calleridpreview']);_0xdd8ecf['calleridnum']=_0xdd8ecf['originatecalleridnum'];_0xdd8ecf[_0x1f7d('0x3d')]=[_0xdd8ecf[_0x1f7d('0x3e')],_0xdd8ecf[_0x1f7d('0x3e')]=_0xdd8ecf[_0x1f7d('0x3d')]][0x0];_0xdd8ecf['callerid']=_0xdd8ecf['calleridpreview'];}else{_0xdd8ecf[_0x1f7d('0x34')]=_0xdd8ecf[_0x1f7d('0x3f')];_0xdd8ecf[_0x1f7d('0x3f')]=_0xdd8ecf[_0x1f7d('0x40')];if(_0xdd8ecf[_0x1f7d('0x41')]==_0x1f7d('0x42')){_0xdd8ecf[_0x1f7d('0x24')]=_0xdd8ecf[_0x1f7d('0x2a')];}else{_0xdd8ecf[_0x1f7d('0x24')]='';}}}}else{_0xdd8ecf['callerid']=util[_0x1f7d('0x27')]('\x22%s\x22\x20<%s>',_0xdd8ecf[_0x1f7d('0x43')],_0xdd8ecf[_0x1f7d('0x3f')]);}if(RpcVoiceTransferReport[_0x1f7d('0x44')][_0xdd8ecf[_0x1f7d('0x45')]]){var _0x37ad81=RpcVoiceTransferReport[_0x1f7d('0x44')][_0xdd8ecf['linkedid']];_0x37ad81[_0x1f7d('0x46')]=_0xdd8ecf[_0x1f7d('0x47')];RpcVoiceTransferReport['blindTransfer'](_0x37ad81);delete RpcVoiceTransferReport[_0x1f7d('0x44')][_0xdd8ecf[_0x1f7d('0x45')]];}RpcVoiceCallReport['create'](_0xdd8ecf);if(_0xdd8ecf[_0x1f7d('0x48')]){for(var _0x56b2c7=0x0;_0x56b2c7<_0xdd8ecf[_0x1f7d('0x49')][_0x1f7d('0x29')];_0x56b2c7+=0x1){_0xdd8ecf['monitorFilename']=_0xdd8ecf[_0x1f7d('0x49')][_0x56b2c7][_0x1f7d('0x4a')];_0xdd8ecf[_0x1f7d('0x4b')]=_0xdd8ecf[_0x1f7d('0x49')][_0x56b2c7][_0x1f7d('0x4b')];if(_0xdd8ecf[_0x1f7d('0x35')]=='xcally-motion-preview'){_0xdd8ecf[_0x1f7d('0x3f')]=_0xdd8ecf[_0x1f7d('0x2a')];_0xdd8ecf['calleridname']=_0xdd8ecf[_0x1f7d('0x4c')];_0xdd8ecf[_0x1f7d('0x2a')]=_0xdd8ecf[_0x1f7d('0x24')];_0xdd8ecf[_0x1f7d('0x4c')]=_0xdd8ecf[_0x1f7d('0x4d')];_0xdd8ecf[_0x1f7d('0x35')]=_0xdd8ecf['originatecalleridnum'];}else if(_0xdd8ecf[_0x1f7d('0x35')]==_0x1f7d('0x4e')){_0xdd8ecf[_0x1f7d('0x3f')]=_0xdd8ecf[_0x1f7d('0x34')];_0xdd8ecf[_0x1f7d('0x35')]=_0xdd8ecf[_0x1f7d('0x40')];}RpcVoiceRecording[_0x1f7d('0x32')](_0xdd8ecf);}}};Report[_0x1f7d('0x21')][_0x1f7d('0x1b')]=function(_0x549b79){if(_[_0x1f7d('0x4f')](_0x549b79)){_0x549b79['forEach'](function(_0x9bc61a){RpcVoiceAgentReport[_0x1f7d('0x32')](_0x9bc61a);});}else{RpcVoiceAgentReport[_0x1f7d('0x32')](_0x549b79);}};Report[_0x1f7d('0x21')][_0x1f7d('0x1d')]=function(_0x34615c){RpcVoiceDialReport['create'](_0x34615c);var _0x17a850;var _0x2ef4db;var _0x5422f4=_0x34615c[_0x1f7d('0x3e')];if(_[_0x1f7d('0x50')](_0x5422f4,'Local')){_0x2ef4db=_0x5422f4['substring'](_0x5422f4[_0x1f7d('0x51')]('/')+0x1,_0x5422f4['indexOf']('@'));_0x17a850=_['find'](this[_0x1f7d('0x11')],function(_0xca7ee7){return _0xca7ee7[_0x1f7d('0x52')]==_0x2ef4db||_0xca7ee7[_0x1f7d('0x53')]==_0x2ef4db||_0xca7ee7[_0x1f7d('0x24')]==_0x2ef4db;});}else{_0x2ef4db=_0x5422f4[_0x1f7d('0x54')](_0x5422f4[_0x1f7d('0x51')]('/')+0x1,_0x5422f4[_0x1f7d('0x55')]('-'));_0x17a850=this[_0x1f7d('0x22')](_0x2ef4db);}if(_0x17a850){_0x34615c[_0x1f7d('0x2c')]=_[_0x1f7d('0x26')](_0x17a850['interface'])?util[_0x1f7d('0x27')](_0x1f7d('0x28'),_0x17a850[_0x1f7d('0x25')]):_0x17a850[_0x1f7d('0x2c')];_0x34615c[_0x1f7d('0x4d')]=_0x17a850['name'];_0x34615c['accountcode']=_0x17a850['accountcode'];RpcMemberReport[_0x1f7d('0x1d')](_0x34615c);}};Report[_0x1f7d('0x21')][_0x1f7d('0x1f')]=function(_0x47606a){RpcVoiceTransferReport['transfers'][_0x47606a[_0x1f7d('0x56')]]=_0x47606a;};Report[_0x1f7d('0x21')][_0x1f7d('0x20')]=function(_0x51b106){RpcVoiceTransferReport[_0x1f7d('0x20')](_0x51b106);};module[_0x1f7d('0x57')]=Report;
\ No newline at end of file
+var _0xe667=['from-sip','xcally-motion-preview','calleridpreview','calleridnum','originatecalleridnum','destinationchannel','channel','disposition','ANSWERED','\x22%s\x22\x20<%s>','transfers','linkedid','transfereelinkedid','uniqueid','monitors','monitorFilename','filename','createdAt','calleridname','connectedlinename','membername','exten','xcally-motion-dialer','isArray','forEach','startsWith','Local','indexOf','mobile','phone','lastIndexOf','transfererlinkedid','moment','util','../../../config/environment','../ami','../rpc/voiceAgentReport','../rpc/voiceCallReport','../rpc/voiceDialReport','../rpc/memberReport','../rpc/voiceQueueReport','../rpc/voiceRecording','../rpc/voiceTransferReport','./voiceQueueReport','./voiceCallReport','./voiceAgentReport','./voiceDialReport','./userReport','agents','telephones','prototype','realtime','xdr','custom:voiceQueueReport','voiceQueueReport','bind','custom:voiceCallReport','voiceAgentReport','custom:voiceDialReport','voiceDialReport','blindtransfer','blindTransfer','attendedtransfer','attendedTransfer','find','accountcode','name','isNil','interface','SIP/%s','length','findAgent','connectedlinenum','lastAssignedTo','format','queuecallercompleteAt','create','match','destination','type','dialer','lastapplication','queue','lastdata','context','from-voip-provider','callerid'];(function(_0x25d386,_0x108d0d){var _0x857f4a=function(_0x3eb98d){while(--_0x3eb98d){_0x25d386['push'](_0x25d386['shift']());}};_0x857f4a(++_0x108d0d);}(_0xe667,0x17c));var _0x7e66=function(_0x591f36,_0xd55955){_0x591f36=_0x591f36-0x0;var _0x1b969f=_0xe667[_0x591f36];return _0x1b969f;};'use strict';var _=require('lodash');var moment=require(_0x7e66('0x0'));var util=require(_0x7e66('0x1'));var config=require(_0x7e66('0x2'));var ami=require(_0x7e66('0x3'));var RpcVoiceAgentReport=require(_0x7e66('0x4'));var RpcVoiceCallReport=require(_0x7e66('0x5'));var RpcVoiceDialReport=require(_0x7e66('0x6'));var RpcMemberReport=require(_0x7e66('0x7'));var RpcVoiceQueueReport=require(_0x7e66('0x8'));var RpcVoiceRecording=require(_0x7e66('0x9'));var RpcVoiceTransferReport=require(_0x7e66('0xa'));var VoiceQueueReport=require(_0x7e66('0xb'));var VoiceCallReport=require(_0x7e66('0xc'));var VoiceAgentReport=require(_0x7e66('0xd'));var VoiceDialReport=require(_0x7e66('0xe'));var UserReport=require(_0x7e66('0xf'));function Report(_0x19e707){this['realtime']=_0x19e707;this[_0x7e66('0x10')]=_0x19e707[_0x7e66('0x10')];this[_0x7e66('0x11')]=_0x19e707[_0x7e66('0x11')];}Report[_0x7e66('0x12')]['sync']=function(_0x23936f){var _0x4106d7=new VoiceQueueReport(this[_0x7e66('0x13')]);var _0x4f6c68=new VoiceAgentReport(this['realtime']);var _0x5ea0f4=new VoiceDialReport(this[_0x7e66('0x13')]);var _0x7755cd=new VoiceCallReport(this['realtime']);var _0x4b62e0=new UserReport(this[_0x7e66('0x13')]);if(config[_0x7e66('0x14')]&&config[_0x7e66('0x14')]['disabled']){ami['on'](_0x7e66('0x15'),this[_0x7e66('0x16')][_0x7e66('0x17')](this));ami['on'](_0x7e66('0x18'),this['voiceCallReport'][_0x7e66('0x17')](this));ami['on']('custom:voiceAgentReport',this[_0x7e66('0x19')][_0x7e66('0x17')](this));ami['on'](_0x7e66('0x1a'),this[_0x7e66('0x1b')]['bind'](this));ami['on'](_0x7e66('0x1c'),this[_0x7e66('0x1d')][_0x7e66('0x17')](this));ami['on'](_0x7e66('0x1e'),this[_0x7e66('0x1f')][_0x7e66('0x17')](this));}};Report[_0x7e66('0x12')]['findAgent']=function(_0x3ab58b){var _0xc94ca8;_0xc94ca8=_[_0x7e66('0x20')](this['agents'],function(_0x3f2b67){return _0x3f2b67[_0x7e66('0x21')]==_0x3ab58b||_0x3f2b67[_0x7e66('0x22')]==_0x3ab58b;});if(_[_0x7e66('0x23')](_0xc94ca8)){var _0x248661=_[_0x7e66('0x20')](this[_0x7e66('0x11')],function(_0x1b4175){return _0x1b4175[_0x7e66('0x21')]==_0x3ab58b||_0x1b4175[_0x7e66('0x22')]==_0x3ab58b;});if(_0x248661){_0xc94ca8=_[_0x7e66('0x20')](this[_0x7e66('0x10')],function(_0x4e08df){return _0x4e08df[_0x7e66('0x24')]==util['format'](_0x7e66('0x25'),_0x248661[_0x7e66('0x22')]);});}}return _0xc94ca8;};Report[_0x7e66('0x12')][_0x7e66('0x16')]=function(_0x5cb002){for(var _0x16aab2=0x0;_0x16aab2<_0x5cb002[_0x7e66('0x26')];_0x16aab2+=0x1){var _0x17d7e0=this[_0x7e66('0x27')](_0x5cb002[_0x16aab2][_0x7e66('0x28')]);if(_0x17d7e0){_0x5cb002[_0x16aab2][_0x7e66('0x21')]=_0x17d7e0[_0x7e66('0x21')];_0x5cb002[_0x16aab2]['assigned']=!![];_0x5cb002[_0x16aab2][_0x7e66('0x29')]=_0x17d7e0['name'];_0x5cb002[_0x16aab2][_0x7e66('0x24')]=_[_0x7e66('0x23')](_0x17d7e0[_0x7e66('0x24')])?util[_0x7e66('0x2a')](_0x7e66('0x25'),_0x17d7e0[_0x7e66('0x22')]):_0x17d7e0['interface'];if(_0x5cb002[_0x16aab2]['queuecallercomplete']){_0x5cb002[_0x16aab2][_0x7e66('0x2b')]=moment()[_0x7e66('0x2a')]('YYYY-MM-DD\x20HH:mm:ss');}if(_0x5cb002[_0x16aab2]['queuecallerexit']){_0x5cb002[_0x16aab2]['queuecallerexitAt']=moment()[_0x7e66('0x2a')]('YYYY-MM-DD\x20HH:mm:ss');}RpcMemberReport[_0x7e66('0x16')](_0x5cb002[_0x16aab2]);}RpcVoiceQueueReport[_0x7e66('0x2c')](_0x5cb002[_0x16aab2]);}};function extractCalleridNumber(_0x1415ef){var _0x1db164=_0x1415ef[_0x7e66('0x2d')](/<(.*?)>/);return _0x1db164?_0x1db164[0x1]:_0x1415ef;}Report['prototype']['voiceCallReport']=function(_0x281e12){_0x281e12[_0x7e66('0x2e')]=_0x281e12['destination']||_0x281e12['exten'];if(_0x281e12[_0x7e66('0x2f')]==_0x7e66('0x30')){_0x281e12[_0x7e66('0x31')]=_0x7e66('0x32');_0x281e12[_0x7e66('0x33')]=_0x281e12[_0x7e66('0x32')];if(_0x281e12[_0x7e66('0x34')]==_0x7e66('0x35')){_0x281e12[_0x7e66('0x21')]='';_0x281e12[_0x7e66('0x2e')]=extractCalleridNumber(_0x281e12[_0x7e66('0x36')]);}else if(_0x281e12[_0x7e66('0x34')]==_0x7e66('0x37')){if(_0x281e12[_0x7e66('0x2e')]==_0x7e66('0x38')){_0x281e12[_0x7e66('0x2e')]=extractCalleridNumber(_0x281e12[_0x7e66('0x39')]);_0x281e12[_0x7e66('0x3a')]=_0x281e12[_0x7e66('0x3b')];_0x281e12[_0x7e66('0x3c')]=[_0x281e12[_0x7e66('0x3d')],_0x281e12[_0x7e66('0x3d')]=_0x281e12[_0x7e66('0x3c')]][0x0];_0x281e12[_0x7e66('0x36')]=_0x281e12[_0x7e66('0x39')];}else{_0x281e12[_0x7e66('0x2e')]=_0x281e12[_0x7e66('0x3a')];_0x281e12[_0x7e66('0x3a')]=_0x281e12[_0x7e66('0x3b')];if(_0x281e12[_0x7e66('0x3e')]==_0x7e66('0x3f')){_0x281e12[_0x7e66('0x21')]=_0x281e12['connectedlinenum'];}else{_0x281e12['accountcode']='';}}}}else{_0x281e12[_0x7e66('0x36')]=util[_0x7e66('0x2a')](_0x7e66('0x40'),_0x281e12['calleridname'],_0x281e12['calleridnum']);}if(RpcVoiceTransferReport[_0x7e66('0x41')][_0x281e12[_0x7e66('0x42')]]){var _0x466b79=RpcVoiceTransferReport[_0x7e66('0x41')][_0x281e12[_0x7e66('0x42')]];_0x466b79[_0x7e66('0x43')]=_0x281e12[_0x7e66('0x44')];RpcVoiceTransferReport[_0x7e66('0x1d')](_0x466b79);delete RpcVoiceTransferReport[_0x7e66('0x41')][_0x281e12[_0x7e66('0x42')]];}RpcVoiceCallReport[_0x7e66('0x2c')](_0x281e12);if(_0x281e12['monitor']){for(var _0x319e99=0x0;_0x319e99<_0x281e12[_0x7e66('0x45')][_0x7e66('0x26')];_0x319e99+=0x1){_0x281e12[_0x7e66('0x46')]=_0x281e12['monitors'][_0x319e99][_0x7e66('0x47')];_0x281e12[_0x7e66('0x48')]=_0x281e12[_0x7e66('0x45')][_0x319e99][_0x7e66('0x48')];if(_0x281e12['exten']==_0x7e66('0x38')){_0x281e12[_0x7e66('0x3a')]=_0x281e12[_0x7e66('0x28')];_0x281e12[_0x7e66('0x49')]=_0x281e12['connectedlinename'];_0x281e12[_0x7e66('0x28')]=_0x281e12['accountcode'];_0x281e12[_0x7e66('0x4a')]=_0x281e12[_0x7e66('0x4b')];_0x281e12[_0x7e66('0x4c')]=_0x281e12['originatecalleridnum'];}else if(_0x281e12['exten']==_0x7e66('0x4d')){_0x281e12['calleridnum']=_0x281e12[_0x7e66('0x2e')];_0x281e12[_0x7e66('0x4c')]=_0x281e12[_0x7e66('0x3b')];}RpcVoiceRecording['create'](_0x281e12);}}};Report[_0x7e66('0x12')][_0x7e66('0x19')]=function(_0x75f3c1){if(_[_0x7e66('0x4e')](_0x75f3c1)){_0x75f3c1[_0x7e66('0x4f')](function(_0x3696b9){RpcVoiceAgentReport['create'](_0x3696b9);});}else{RpcVoiceAgentReport[_0x7e66('0x2c')](_0x75f3c1);}};Report[_0x7e66('0x12')][_0x7e66('0x1b')]=function(_0x28c6d3){RpcVoiceDialReport[_0x7e66('0x2c')](_0x28c6d3);var _0xdc1e7c;var _0x5730e1;var _0x13d25a=_0x28c6d3['channel'];if(_[_0x7e66('0x50')](_0x13d25a,_0x7e66('0x51'))){_0x5730e1=_0x13d25a['substring'](_0x13d25a[_0x7e66('0x52')]('/')+0x1,_0x13d25a[_0x7e66('0x52')]('@'));_0xdc1e7c=_[_0x7e66('0x20')](this['agents'],function(_0x2465a3){return _0x2465a3[_0x7e66('0x53')]==_0x5730e1||_0x2465a3[_0x7e66('0x54')]==_0x5730e1||_0x2465a3[_0x7e66('0x21')]==_0x5730e1;});}else{_0x5730e1=_0x13d25a['substring'](_0x13d25a[_0x7e66('0x52')]('/')+0x1,_0x13d25a[_0x7e66('0x55')]('-'));_0xdc1e7c=this[_0x7e66('0x27')](_0x5730e1);}if(_0xdc1e7c){_0x28c6d3[_0x7e66('0x24')]=_[_0x7e66('0x23')](_0xdc1e7c['interface'])?util['format'](_0x7e66('0x25'),_0xdc1e7c['name']):_0xdc1e7c['interface'];_0x28c6d3[_0x7e66('0x4b')]=_0xdc1e7c[_0x7e66('0x22')];_0x28c6d3['accountcode']=_0xdc1e7c[_0x7e66('0x21')];RpcMemberReport[_0x7e66('0x1b')](_0x28c6d3);}};Report[_0x7e66('0x12')][_0x7e66('0x1d')]=function(_0x19facd){RpcVoiceTransferReport['transfers'][_0x19facd[_0x7e66('0x56')]]=_0x19facd;};Report[_0x7e66('0x12')][_0x7e66('0x1f')]=function(_0x2a6443){RpcVoiceTransferReport[_0x7e66('0x1f')](_0x2a6443);};module['exports']=Report;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x914c=['../../../config/logger','ami','../ami','redis','defaults','localhost','socket.io-emitter','trunks','agents','telephones','bind','registry','syncRegistry','syncDeviceState','peerstatus','syncPeerStatus','syncRealtimeShow','resolve','actionSipShowRegistry','catch','error','[userReport][sipshowregistry]','then','actionDeviceStateList','[userReport][devicestatelist]','actionSipPeerStatus','[userReport][sippeerstatus]','inspect','prototype','isNotNull','isUndefined','emit','[userReport][registry]\x20registry:%s\x20state:%s','state','merge','omit','event','actionid','debug','[userReport][registry]\x20sending\x20trunk:save\x20event:','format','trunk:%s','name','trunk:save','[userReport][registry]','info','[userReport][devicestatechange]\x20device:%s\x20state:%s','device','[userReport][devicestatechange]','local','inuse','stateTime','toNumber','toLowerCase','telephone:%s','telephone:save','[userReport][devicestatechange]\x20sending\x20trunk:save\x20event:','startsWith','Local','indexOf','phone','updateStatusRealtime','peer','[userReport][peerstatus]','address','status','[userReport][peerstatus]\x20sending\x20trunk:save\x20event:','exports','lodash','moment','util','ioredis','bluebird','../../../config/environment'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x914c,0x122));var _0xc914=function(_0x14a513,_0x3239f){_0x14a513=_0x14a513-0x0;var _0x47236c=_0x914c[_0x14a513];return _0x47236c;};'use strict';var _=require(_0xc914('0x0'));var moment=require(_0xc914('0x1'));var util=require(_0xc914('0x2'));var Redis=require(_0xc914('0x3'));var BPromise=require(_0xc914('0x4'));var config=require(_0xc914('0x5'));var logger=require(_0xc914('0x6'))(_0xc914('0x7'));var ami=require(_0xc914('0x8'));config[_0xc914('0x9')]=_[_0xc914('0xa')](config['redis'],{'host':_0xc914('0xb'),'port':0x18eb});var io=require(_0xc914('0xc'))(new Redis(config['redis']));function UserReport(_0x3c8a6c){this['trunks']=_0x3c8a6c[_0xc914('0xd')];this[_0xc914('0xe')]=_0x3c8a6c[_0xc914('0xe')];this[_0xc914('0xf')]=_0x3c8a6c['telephones'];ami['on']('registryentry',this['syncRegistry'][_0xc914('0x10')](this));ami['on'](_0xc914('0x11'),this[_0xc914('0x12')]['bind'](this));ami['on']('devicestatechange',this[_0xc914('0x13')][_0xc914('0x10')](this));ami['on'](_0xc914('0x14'),this[_0xc914('0x15')]['bind'](this));return this[_0xc914('0x16')]();}function showSipRegistrations(){Promise[_0xc914('0x17')]()['then'](ami[_0xc914('0x18')]())[_0xc914('0x19')](function(_0x2fed6c){logger[_0xc914('0x1a')](_0xc914('0x1b'),util['inspect'](_0x2fed6c,{'showHidden':![],'depth':null}));});}function listDeviceStates(){Promise[_0xc914('0x17')]()[_0xc914('0x1c')](ami[_0xc914('0x1d')]())[_0xc914('0x19')](function(_0x243ed7){logger[_0xc914('0x1a')](_0xc914('0x1e'),util['inspect'](_0x243ed7,{'showHidden':![],'depth':null}));});}function showPeersStatus(){Promise[_0xc914('0x17')]()[_0xc914('0x1c')](ami[_0xc914('0x1f')]())[_0xc914('0x19')](function(_0x21006d){logger[_0xc914('0x1a')](_0xc914('0x20'),util[_0xc914('0x21')](_0x21006d,{'showHidden':![],'depth':null}));});}UserReport[_0xc914('0x22')][_0xc914('0x16')]=function(){setInterval(function(){BPromise['resolve']()[_0xc914('0x1c')](showSipRegistrations())[_0xc914('0x1c')](listDeviceStates())[_0xc914('0x1c')](showPeersStatus());},0x32c8);};UserReport[_0xc914('0x22')][_0xc914('0x23')]=function(_0x18adad){return _0x18adad!==null&&!_[_0xc914('0x24')](_0x18adad);};UserReport[_0xc914('0x22')][_0xc914('0x25')]=function(_0x2d3c0c,_0x2f4461,_0x5d873e){io['to'](_0x2d3c0c)[_0xc914('0x25')](_0x2f4461,_0x5d873e);};UserReport[_0xc914('0x22')][_0xc914('0x12')]=function(_0x22649d){try{if(this[_0xc914('0x23')](_0x22649d)){logger['info'](_0xc914('0x26'),_0x22649d['username'],_0x22649d['state']);logger['debug']('[userReport][registry]',util[_0xc914('0x21')](_0x22649d,{'showHidden':![],'depth':null}));var _0x1cec13=_['find'](this[_0xc914('0xd')],{'defaultuser':_0x22649d['username']});if(_0x1cec13){_0x22649d['stateRegistry']=_0x22649d[_0xc914('0x27')];_[_0xc914('0x28')](_0x1cec13,_[_0xc914('0x29')](_0x22649d,[_0xc914('0x2a'),_0xc914('0x2b'),'username',_0xc914('0x27')]));logger[_0xc914('0x2c')](_0xc914('0x2d'),util[_0xc914('0x21')](_0x1cec13,{'showHidden':![],'depth':null}));this[_0xc914('0x25')](util[_0xc914('0x2e')](_0xc914('0x2f'),_0x1cec13[_0xc914('0x30')]),_0xc914('0x31'),_0x1cec13);}}}catch(_0x12b817){logger[_0xc914('0x1a')](_0xc914('0x32'),util['inspect'](_0x12b817,{'showHidden':![],'depth':null}));}};UserReport[_0xc914('0x22')][_0xc914('0x13')]=function(_0x3fd5e0){try{if(this[_0xc914('0x23')](_0x3fd5e0)){logger[_0xc914('0x33')](_0xc914('0x34'),_0x3fd5e0[_0xc914('0x35')],_0x3fd5e0[_0xc914('0x27')]);logger[_0xc914('0x2c')](_0xc914('0x36'),util[_0xc914('0x21')](_0x3fd5e0,{'showHidden':![],'depth':null}));if(this[_0xc914('0xe')][_0x3fd5e0[_0xc914('0x35')]]){if(!this[_0xc914('0xe')][_0x3fd5e0[_0xc914('0x35')]][_0xc914('0x37')]||_0x3fd5e0[_0xc914('0x27')]['toLowerCase']()==_0xc914('0x38')){this['agents'][_0x3fd5e0[_0xc914('0x35')]][_0xc914('0x37')]=![];if(this[_0xc914('0xe')][_0x3fd5e0[_0xc914('0x35')]][_0xc914('0x27')]!==_0x3fd5e0[_0xc914('0x27')]['toLowerCase']()){this[_0xc914('0xe')][_0x3fd5e0[_0xc914('0x35')]][_0xc914('0x39')]=_[_0xc914('0x3a')](moment()['format']('x'));}this[_0xc914('0xe')][_0x3fd5e0[_0xc914('0x35')]][_0xc914('0x27')]=_0x3fd5e0[_0xc914('0x27')][_0xc914('0x3b')]();this['agents'][_0x3fd5e0['device']]['updateStatusRealtime'](_0x3fd5e0);}}else if(this['telephones'][_0x3fd5e0[_0xc914('0x35')]]){if(this[_0xc914('0xf')][_0x3fd5e0[_0xc914('0x35')]][_0xc914('0x27')]!==_0x3fd5e0[_0xc914('0x27')][_0xc914('0x3b')]()){this['telephones'][_0x3fd5e0[_0xc914('0x35')]][_0xc914('0x39')]=_[_0xc914('0x3a')](moment()['format']('x'));}this['telephones'][_0x3fd5e0['device']][_0xc914('0x27')]=_0x3fd5e0[_0xc914('0x27')]['toLowerCase']();logger[_0xc914('0x2c')]('[userReport][devicestatechange]\x20sending\x20telephone:save\x20event:',util[_0xc914('0x21')](this[_0xc914('0xf')][_0x3fd5e0[_0xc914('0x35')]],{'showHidden':![],'depth':null}));this[_0xc914('0x25')](util[_0xc914('0x2e')](_0xc914('0x3c'),this[_0xc914('0xf')][_0x3fd5e0[_0xc914('0x35')]][_0xc914('0x30')]),_0xc914('0x3d'),this['telephones'][_0x3fd5e0[_0xc914('0x35')]]);}else if(this[_0xc914('0xd')][_0x3fd5e0[_0xc914('0x35')]]){if(this[_0xc914('0xd')][_0x3fd5e0[_0xc914('0x35')]][_0xc914('0x27')]!==_0x3fd5e0[_0xc914('0x27')]['toLowerCase']()){this[_0xc914('0xd')][_0x3fd5e0['device']][_0xc914('0x39')]=_[_0xc914('0x3a')](moment()[_0xc914('0x2e')]('x'));}this['trunks'][_0x3fd5e0['device']][_0xc914('0x27')]=_0x3fd5e0[_0xc914('0x27')]['toLowerCase']();logger['debug'](_0xc914('0x3e'),util[_0xc914('0x21')](this['trunks'][_0x3fd5e0[_0xc914('0x35')]],{'showHidden':![],'depth':null}));this['emit'](util[_0xc914('0x2e')]('trunk:%s',this[_0xc914('0xd')][_0x3fd5e0['device']]['name']),_0xc914('0x31'),this[_0xc914('0xd')][_0x3fd5e0[_0xc914('0x35')]]);}else if(_[_0xc914('0x3f')](_0x3fd5e0['device'],_0xc914('0x40'))){var _0x542782=_0x3fd5e0[_0xc914('0x35')];var _0x54a230=_0x542782['substring'](_0x542782[_0xc914('0x41')]('/')+0x1,_0x542782[_0xc914('0x41')]('@'));var _0x1a24fa=_['find'](this['agents'],function(_0x440fc9){return _0x440fc9['mobile']==_0x54a230||_0x440fc9[_0xc914('0x42')]==_0x54a230||_0x440fc9['accountcode']==_0x54a230;});if(_0x1a24fa){if(_0x1a24fa['state']!==_0x3fd5e0[_0xc914('0x27')][_0xc914('0x3b')]()){_0x1a24fa[_0xc914('0x39')]=_['toNumber'](moment()[_0xc914('0x2e')]('x'));}_0x1a24fa['state']=_0x3fd5e0[_0xc914('0x27')][_0xc914('0x3b')]();_0x1a24fa[_0xc914('0x37')]=!![];_0x1a24fa[_0xc914('0x43')](_0x3fd5e0);}}}}catch(_0x357131){logger['error'](_0xc914('0x36'),util[_0xc914('0x21')](_0x357131,{'showHidden':![],'depth':null}));}};UserReport[_0xc914('0x22')][_0xc914('0x15')]=function(_0x1eb61a){try{if(this[_0xc914('0x23')](_0x1eb61a)&&this[_0xc914('0x23')](_0x1eb61a[_0xc914('0x14')])){logger[_0xc914('0x33')]('[userReport][peerstatus]\x20peer:%s\x20address:%s\x20status:%s',_0x1eb61a[_0xc914('0x44')],_0x1eb61a['address'],_0x1eb61a['peerstatus']);logger[_0xc914('0x2c')](_0xc914('0x45'),util['inspect'](_0x1eb61a,{'showHidden':![],'depth':null}));if(this[_0xc914('0xe')][_0x1eb61a[_0xc914('0x44')]]){if(!this['agents'][_0x1eb61a[_0xc914('0x44')]]['local']||_0x1eb61a[_0xc914('0x14')][_0xc914('0x3b')]()=='registered'){this[_0xc914('0xe')][_0x1eb61a[_0xc914('0x44')]][_0xc914('0x37')]=![];this['agents'][_0x1eb61a[_0xc914('0x44')]]['status']=_0x1eb61a[_0xc914('0x14')][_0xc914('0x3b')]();this[_0xc914('0xe')][_0x1eb61a[_0xc914('0x44')]][_0xc914('0x46')]=_0x1eb61a[_0xc914('0x46')];this[_0xc914('0xe')][_0x1eb61a[_0xc914('0x44')]]['updateStatusRealtime'](_0x1eb61a);}}else if(this[_0xc914('0xf')][_0x1eb61a[_0xc914('0x44')]]){this['telephones'][_0x1eb61a[_0xc914('0x44')]][_0xc914('0x47')]=_0x1eb61a[_0xc914('0x14')][_0xc914('0x3b')]();this['telephones'][_0x1eb61a[_0xc914('0x44')]][_0xc914('0x46')]=_0x1eb61a[_0xc914('0x46')];logger[_0xc914('0x2c')]('[userReport][peerstatus]\x20sending\x20telephone:save\x20event:',util[_0xc914('0x21')](this[_0xc914('0xf')][_0x1eb61a[_0xc914('0x44')]],{'showHidden':![],'depth':null}));this[_0xc914('0x25')](util[_0xc914('0x2e')]('telephone:%s',this[_0xc914('0xf')][_0x1eb61a[_0xc914('0x44')]][_0xc914('0x30')]),_0xc914('0x3d'),this['telephones'][_0x1eb61a[_0xc914('0x44')]]);}else if(this['trunks'][_0x1eb61a[_0xc914('0x44')]]){this[_0xc914('0xd')][_0x1eb61a[_0xc914('0x44')]]['status']=_0x1eb61a[_0xc914('0x14')][_0xc914('0x3b')]();this['trunks'][_0x1eb61a[_0xc914('0x44')]][_0xc914('0x46')]=_0x1eb61a[_0xc914('0x46')];logger[_0xc914('0x2c')](_0xc914('0x48'),util[_0xc914('0x21')](this['trunks'][_0x1eb61a['peer']],{'showHidden':![],'depth':null}));this['emit'](util[_0xc914('0x2e')](_0xc914('0x2f'),this[_0xc914('0xd')][_0x1eb61a['peer']][_0xc914('0x30')]),'trunk:save',this[_0xc914('0xd')][_0x1eb61a[_0xc914('0x44')]]);}}}catch(_0x2e094d){logger[_0xc914('0x1a')](_0xc914('0x45'),util['inspect'](_0x2e094d,{'showHidden':![],'depth':null}));}};module[_0xc914('0x49')]=UserReport;
\ No newline at end of file
+var _0x3a03=['name','telephone:save','[userReport][devicestatechange]\x20sending\x20trunk:save\x20event:','startsWith','Local','substring','indexOf','mobile','phone','accountcode','syncPeerStatus','peerstatus','peer','address','[userReport][peerstatus]','[userReport][peerstatus]\x20sending\x20telephone:save\x20event:','telephone:%s','status','[userReport][peerstatus]\x20sending\x20trunk:save\x20event:','lodash','moment','util','ioredis','../../../config/environment','../../../config/logger','ami','../ami','redis','defaults','localhost','socket.io-emitter','trunks','agents','telephones','registryentry','bind','registry','syncRegistry','devicestatechange','syncRealtimeShow','resolve','then','actionSipShowRegistry','[userReport][sipshowregistry]','inspect','actionDeviceStateList','catch','error','[userReport][devicestatelist]','[userReport][sippeerstatus]','prototype','isNotNull','isUndefined','emit','info','[userReport][registry]\x20registry:%s\x20state:%s','username','state','debug','[userReport][registry]','find','stateRegistry','merge','omit','event','actionid','format','trunk:%s','trunk:save','[userReport][devicestatechange]\x20device:%s\x20state:%s','device','[userReport][devicestatechange]','local','toLowerCase','inuse','stateTime','toNumber','updateStatusRealtime','[userReport][devicestatechange]\x20sending\x20telephone:save\x20event:'];(function(_0x31e882,_0x2679e3){var _0x454198=function(_0x2994cf){while(--_0x2994cf){_0x31e882['push'](_0x31e882['shift']());}};_0x454198(++_0x2679e3);}(_0x3a03,0x19e));var _0x33a0=function(_0x3708e4,_0x5a4045){_0x3708e4=_0x3708e4-0x0;var _0xe9966b=_0x3a03[_0x3708e4];return _0xe9966b;};'use strict';var _=require(_0x33a0('0x0'));var moment=require(_0x33a0('0x1'));var util=require(_0x33a0('0x2'));var Redis=require(_0x33a0('0x3'));var BPromise=require('bluebird');var config=require(_0x33a0('0x4'));var logger=require(_0x33a0('0x5'))(_0x33a0('0x6'));var ami=require(_0x33a0('0x7'));config[_0x33a0('0x8')]=_[_0x33a0('0x9')](config['redis'],{'host':_0x33a0('0xa'),'port':0x18eb});var io=require(_0x33a0('0xb'))(new Redis(config[_0x33a0('0x8')]));function UserReport(_0x251561){this[_0x33a0('0xc')]=_0x251561['trunks'];this[_0x33a0('0xd')]=_0x251561['agents'];this['telephones']=_0x251561[_0x33a0('0xe')];ami['on'](_0x33a0('0xf'),this['syncRegistry'][_0x33a0('0x10')](this));ami['on'](_0x33a0('0x11'),this[_0x33a0('0x12')][_0x33a0('0x10')](this));ami['on'](_0x33a0('0x13'),this['syncDeviceState'][_0x33a0('0x10')](this));ami['on']('peerstatus',this['syncPeerStatus'][_0x33a0('0x10')](this));return this[_0x33a0('0x14')]();}function showSipRegistrations(){Promise[_0x33a0('0x15')]()[_0x33a0('0x16')](ami[_0x33a0('0x17')]())['catch'](function(_0x3b8280){logger['error'](_0x33a0('0x18'),util[_0x33a0('0x19')](_0x3b8280,{'showHidden':![],'depth':null}));});}function listDeviceStates(){Promise['resolve']()[_0x33a0('0x16')](ami[_0x33a0('0x1a')]())[_0x33a0('0x1b')](function(_0x27183a){logger[_0x33a0('0x1c')](_0x33a0('0x1d'),util[_0x33a0('0x19')](_0x27183a,{'showHidden':![],'depth':null}));});}function showPeersStatus(){Promise[_0x33a0('0x15')]()[_0x33a0('0x16')](ami['actionSipPeerStatus']())['catch'](function(_0x1e41fe){logger[_0x33a0('0x1c')](_0x33a0('0x1e'),util[_0x33a0('0x19')](_0x1e41fe,{'showHidden':![],'depth':null}));});}UserReport[_0x33a0('0x1f')]['syncRealtimeShow']=function(){setInterval(function(){BPromise[_0x33a0('0x15')]()[_0x33a0('0x16')](showSipRegistrations())['then'](listDeviceStates())[_0x33a0('0x16')](showPeersStatus());},0x32c8);};UserReport['prototype'][_0x33a0('0x20')]=function(_0xf1dbd5){return _0xf1dbd5!==null&&!_[_0x33a0('0x21')](_0xf1dbd5);};UserReport[_0x33a0('0x1f')]['emit']=function(_0x24826b,_0x5e3030,_0x3013aa){io['to'](_0x24826b)[_0x33a0('0x22')](_0x5e3030,_0x3013aa);};UserReport['prototype'][_0x33a0('0x12')]=function(_0x58329a){try{if(this[_0x33a0('0x20')](_0x58329a)){logger[_0x33a0('0x23')](_0x33a0('0x24'),_0x58329a[_0x33a0('0x25')],_0x58329a[_0x33a0('0x26')]);logger[_0x33a0('0x27')](_0x33a0('0x28'),util[_0x33a0('0x19')](_0x58329a,{'showHidden':![],'depth':null}));var _0x103904=_[_0x33a0('0x29')](this[_0x33a0('0xc')],{'defaultuser':_0x58329a[_0x33a0('0x25')]});if(_0x103904){_0x58329a[_0x33a0('0x2a')]=_0x58329a[_0x33a0('0x26')];_[_0x33a0('0x2b')](_0x103904,_[_0x33a0('0x2c')](_0x58329a,[_0x33a0('0x2d'),_0x33a0('0x2e'),_0x33a0('0x25'),'state']));logger[_0x33a0('0x27')]('[userReport][registry]\x20sending\x20trunk:save\x20event:',util['inspect'](_0x103904,{'showHidden':![],'depth':null}));this[_0x33a0('0x22')](util[_0x33a0('0x2f')](_0x33a0('0x30'),_0x103904['name']),_0x33a0('0x31'),_0x103904);}}}catch(_0x352ee9){logger[_0x33a0('0x1c')]('[userReport][registry]',util[_0x33a0('0x19')](_0x352ee9,{'showHidden':![],'depth':null}));}};UserReport[_0x33a0('0x1f')]['syncDeviceState']=function(_0x35f782){try{if(this[_0x33a0('0x20')](_0x35f782)){logger['info'](_0x33a0('0x32'),_0x35f782[_0x33a0('0x33')],_0x35f782['state']);logger[_0x33a0('0x27')](_0x33a0('0x34'),util[_0x33a0('0x19')](_0x35f782,{'showHidden':![],'depth':null}));if(this[_0x33a0('0xd')][_0x35f782[_0x33a0('0x33')]]){if(!this[_0x33a0('0xd')][_0x35f782[_0x33a0('0x33')]][_0x33a0('0x35')]||_0x35f782['state'][_0x33a0('0x36')]()==_0x33a0('0x37')){this['agents'][_0x35f782[_0x33a0('0x33')]][_0x33a0('0x35')]=![];if(this[_0x33a0('0xd')][_0x35f782[_0x33a0('0x33')]][_0x33a0('0x26')]!==_0x35f782[_0x33a0('0x26')]['toLowerCase']()){this[_0x33a0('0xd')][_0x35f782['device']][_0x33a0('0x38')]=_[_0x33a0('0x39')](moment()[_0x33a0('0x2f')]('x'));}this[_0x33a0('0xd')][_0x35f782[_0x33a0('0x33')]]['state']=_0x35f782['state'][_0x33a0('0x36')]();this[_0x33a0('0xd')][_0x35f782[_0x33a0('0x33')]][_0x33a0('0x3a')](_0x35f782);}}else if(this['telephones'][_0x35f782[_0x33a0('0x33')]]){if(this[_0x33a0('0xe')][_0x35f782[_0x33a0('0x33')]][_0x33a0('0x26')]!==_0x35f782[_0x33a0('0x26')][_0x33a0('0x36')]()){this[_0x33a0('0xe')][_0x35f782[_0x33a0('0x33')]][_0x33a0('0x38')]=_[_0x33a0('0x39')](moment()['format']('x'));}this[_0x33a0('0xe')][_0x35f782[_0x33a0('0x33')]][_0x33a0('0x26')]=_0x35f782['state'][_0x33a0('0x36')]();logger[_0x33a0('0x27')](_0x33a0('0x3b'),util[_0x33a0('0x19')](this[_0x33a0('0xe')][_0x35f782[_0x33a0('0x33')]],{'showHidden':![],'depth':null}));this[_0x33a0('0x22')](util[_0x33a0('0x2f')]('telephone:%s',this[_0x33a0('0xe')][_0x35f782['device']][_0x33a0('0x3c')]),_0x33a0('0x3d'),this[_0x33a0('0xe')][_0x35f782[_0x33a0('0x33')]]);}else if(this[_0x33a0('0xc')][_0x35f782[_0x33a0('0x33')]]){if(this[_0x33a0('0xc')][_0x35f782['device']]['state']!==_0x35f782[_0x33a0('0x26')]['toLowerCase']()){this['trunks'][_0x35f782[_0x33a0('0x33')]]['stateTime']=_['toNumber'](moment()['format']('x'));}this[_0x33a0('0xc')][_0x35f782[_0x33a0('0x33')]]['state']=_0x35f782[_0x33a0('0x26')][_0x33a0('0x36')]();logger[_0x33a0('0x27')](_0x33a0('0x3e'),util[_0x33a0('0x19')](this['trunks'][_0x35f782['device']],{'showHidden':![],'depth':null}));this['emit'](util['format']('trunk:%s',this['trunks'][_0x35f782[_0x33a0('0x33')]]['name']),_0x33a0('0x31'),this[_0x33a0('0xc')][_0x35f782[_0x33a0('0x33')]]);}else if(_[_0x33a0('0x3f')](_0x35f782[_0x33a0('0x33')],_0x33a0('0x40'))){var _0x58b345=_0x35f782[_0x33a0('0x33')];var _0x13c5b5=_0x58b345[_0x33a0('0x41')](_0x58b345[_0x33a0('0x42')]('/')+0x1,_0x58b345['indexOf']('@'));var _0xd64d9d=_['find'](this[_0x33a0('0xd')],function(_0x57f0b1){return _0x57f0b1[_0x33a0('0x43')]==_0x13c5b5||_0x57f0b1[_0x33a0('0x44')]==_0x13c5b5||_0x57f0b1[_0x33a0('0x45')]==_0x13c5b5;});if(_0xd64d9d){if(_0xd64d9d['state']!==_0x35f782[_0x33a0('0x26')][_0x33a0('0x36')]()){_0xd64d9d[_0x33a0('0x38')]=_[_0x33a0('0x39')](moment()['format']('x'));}_0xd64d9d[_0x33a0('0x26')]=_0x35f782[_0x33a0('0x26')][_0x33a0('0x36')]();_0xd64d9d[_0x33a0('0x35')]=!![];_0xd64d9d[_0x33a0('0x3a')](_0x35f782);}}}}catch(_0x81b2e0){logger[_0x33a0('0x1c')]('[userReport][devicestatechange]',util[_0x33a0('0x19')](_0x81b2e0,{'showHidden':![],'depth':null}));}};UserReport['prototype'][_0x33a0('0x46')]=function(_0x2b3e4e){try{if(this[_0x33a0('0x20')](_0x2b3e4e)&&this[_0x33a0('0x20')](_0x2b3e4e[_0x33a0('0x47')])){logger[_0x33a0('0x23')]('[userReport][peerstatus]\x20peer:%s\x20address:%s\x20status:%s',_0x2b3e4e[_0x33a0('0x48')],_0x2b3e4e[_0x33a0('0x49')],_0x2b3e4e['peerstatus']);logger[_0x33a0('0x27')](_0x33a0('0x4a'),util[_0x33a0('0x19')](_0x2b3e4e,{'showHidden':![],'depth':null}));if(this[_0x33a0('0xd')][_0x2b3e4e['peer']]){if(!this[_0x33a0('0xd')][_0x2b3e4e[_0x33a0('0x48')]][_0x33a0('0x35')]||_0x2b3e4e[_0x33a0('0x47')]['toLowerCase']()=='registered'){this[_0x33a0('0xd')][_0x2b3e4e[_0x33a0('0x48')]][_0x33a0('0x35')]=![];this['agents'][_0x2b3e4e[_0x33a0('0x48')]]['status']=_0x2b3e4e['peerstatus'][_0x33a0('0x36')]();this[_0x33a0('0xd')][_0x2b3e4e['peer']][_0x33a0('0x49')]=_0x2b3e4e[_0x33a0('0x49')];this[_0x33a0('0xd')][_0x2b3e4e['peer']][_0x33a0('0x3a')](_0x2b3e4e);}}else if(this[_0x33a0('0xe')][_0x2b3e4e['peer']]){this[_0x33a0('0xe')][_0x2b3e4e[_0x33a0('0x48')]]['status']=_0x2b3e4e[_0x33a0('0x47')][_0x33a0('0x36')]();this[_0x33a0('0xe')][_0x2b3e4e[_0x33a0('0x48')]]['address']=_0x2b3e4e['address'];logger[_0x33a0('0x27')](_0x33a0('0x4b'),util[_0x33a0('0x19')](this[_0x33a0('0xe')][_0x2b3e4e['peer']],{'showHidden':![],'depth':null}));this['emit'](util['format'](_0x33a0('0x4c'),this[_0x33a0('0xe')][_0x2b3e4e[_0x33a0('0x48')]][_0x33a0('0x3c')]),_0x33a0('0x3d'),this[_0x33a0('0xe')][_0x2b3e4e[_0x33a0('0x48')]]);}else if(this[_0x33a0('0xc')][_0x2b3e4e[_0x33a0('0x48')]]){this['trunks'][_0x2b3e4e[_0x33a0('0x48')]][_0x33a0('0x4d')]=_0x2b3e4e[_0x33a0('0x47')][_0x33a0('0x36')]();this['trunks'][_0x2b3e4e[_0x33a0('0x48')]][_0x33a0('0x49')]=_0x2b3e4e[_0x33a0('0x49')];logger[_0x33a0('0x27')](_0x33a0('0x4e'),util[_0x33a0('0x19')](this[_0x33a0('0xc')][_0x2b3e4e[_0x33a0('0x48')]],{'showHidden':![],'depth':null}));this[_0x33a0('0x22')](util[_0x33a0('0x2f')](_0x33a0('0x30'),this['trunks'][_0x2b3e4e['peer']][_0x33a0('0x3c')]),_0x33a0('0x31'),this[_0x33a0('0xc')][_0x2b3e4e[_0x33a0('0x48')]]);}}}catch(_0x395092){logger['error'](_0x33a0('0x4a'),util[_0x33a0('0x19')](_0x395092,{'showHidden':![],'depth':null}));}};module['exports']=UserReport;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['musiconholdstop','attendedtransfer','syncBlindTransfer','prototype','emit','isNotNull','isUndefined','info','membername','destuniqueid','debug','[%s][voiceAgentReport][agentcalled]\x20event:','inspect','uniqueid','YYYY-MM-DD\x20HH:mm:ss','queue','mandatoryDisposition','type','inbound','voice','omit','event','privilege','[%s][voiceAgentReport][agentcalled]\x20sending\x20agentcalled\x20event:','custom:agentcalled','interface','calleridnum','extravar','format','user:%s','error','[%s][voiceAgentReport][agentcalled]','syncAgentConnect','[%s][voiceAgentReport][agentconnect]\x20event:','[%s][voiceAgentReport][agentconnect]\x20agent:%s\x20destuniqueid:%s\x20lastevent:connect','agentconnectAt','connectedlinename','connectedlinenum','destchannelstate','destchannelstatedesc','holdtime','connect','voiceChannels','routealias','merge','pick','destconnectedlinenum','[%s][voiceAgentReport][agentconnect]\x20sending\x20agentconnect\x20event:','custom:agentconnect','user:agentconnect','agentringnoanswer','agentringnoanswerAt','answered_elsewhere','reason','[%s][voiceAgentReport][agentconnect]\x20sending\x20agentansweredelsewhere\x20event:','custom:agentansweredelsewhere','syncAgentRingNoAnswer','[%s][voiceAgentReport][agentringnoanswer]\x20agent:%s\x20destuniqueid:%s\x20lastevent:rejected','lastevent','rejected','custom:agentringnoanswer','[%s][voiceAgentReport][agentringnoanswer]','[%s][voiceAgentReport][queuecallerabandon]\x20event:','hasOwnProperty','[%s][voiceAgentReport][queuecallerabandon]\x20agent:%s\x20destuniqueid:%s\x20lastevent:abandoned','abandoned','[%s][voiceAgentReport][queuecallerabandon]\x20sending\x20agentqueuecallerabandon\x20event:','custom:agentqueuecallerabandon','[%s][voiceAgentReport][queuecallerabandon]','[%s][voiceAgentReport][agentcomplete]\x20event:','agentcompleteAt','complete','agent','talktime','acw','acwtime','acwTimeout','custom:agentcomplete','[%s][voiceAgentReport][agentcomplete]\x20sending\x20user:agentcomplete\x20event:','destaccountcode','user:agentcomplete','[%s][voiceAgentReport][agentcomplete]','[%s][voiceAgentReport][varset]\x20event:','addVariable','keys','variable','value','[%s][voiceAgentReport][varset]\x20destuniqueid:%s\x20variable:%s\x20value:%s','[%s][voiceAgentReport][varset]','rtpaudioqos','rtpaudioqosbridged','rtpaudioqosjitter','rtpaudioqosjitterbridged','rtpaudioqosloss','rtpaudioqoslossbridged','rtpaudioqosrtt','sipcallid','bridgepeer','bridgepvtcallid','membercalls','memberdynamic','memberinterface','memberpenalty','memberrealtime','isNil','includes','[%s][voiceAgentReport][hangup]\x20event:','transfer','[%s][voiceAgentReport][hangup]\x20sending\x20voiceAgentReport\x20event:','values','custom:voiceAgentReport','syncAttendedTransfer','[%s][voiceAgentReport][attendedtransfer]\x20event:','transfereeuniqueid','origtransfereruniqueid','[%s][voiceAgentReport][attendedtransfer]\x20agent:%s\x20destuniqueid:%s\x20lastevent:complete','diff','seconds','secondtransfereruniqueid','[%s][voiceAgentReport][attendedtransfer]','[%s][voiceAgentReport][blindtransfer]\x20event:','[%s][voiceAgentReport][blindtransfer]\x20agent:%s\x20destuniqueid:%s\x20lastevent:complete','[%s][voiceAgentReport][blindtransfer]','[%s][voiceAgentReport][musiconholdstart]\x20event:','channel','substring','[%s][voiceAgentReport][musiconholdstart]\x20interface:%s','onhold','[%s][voiceAgentReport][musiconholdstart]','syncMusicOnHoldStop','lastIndexOf','[%s][voiceAgentReport][musiconholdstop]\x20interface:%s','exports','lodash','moment','util','../../../config/logger','../ami','redis','defaults','localhost','channels','voiceQueues','agents','variables','agentcalled','syncAgentCalled','bind','agentconnect','queuecallerabandon','syncQueueCallerAbandon','agentcomplete','syncAgentComplete','varset','syncVarSet','hangup','syncHangup','syncMusicOnHoldStart'];(function(_0x258a29,_0x309152){var _0x49261b=function(_0x5e897a){while(--_0x5e897a){_0x258a29['push'](_0x258a29['shift']());}};_0x49261b(++_0x309152);}(_0xa9e0,0x123));var _0x0a9e=function(_0x387777,_0x356171){_0x387777=_0x387777-0x0;var _0x3f84c0=_0xa9e0[_0x387777];return _0x3f84c0;};'use strict';var _=require(_0x0a9e('0x0'));var moment=require(_0x0a9e('0x1'));var util=require(_0x0a9e('0x2'));var Redis=require('ioredis');var config=require('../../../config/environment');var logger=require(_0x0a9e('0x3'))('ami');var ami=require(_0x0a9e('0x4'));config[_0x0a9e('0x5')]=_[_0x0a9e('0x6')](config[_0x0a9e('0x5')],{'host':_0x0a9e('0x7'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x0a9e('0x5')]));function VoiceAgentReport(_0x441e3a){this[_0x0a9e('0x8')]={};this['voiceChannels']=_0x441e3a['channels'];this[_0x0a9e('0x9')]=_0x441e3a['voiceQueues'];this['agents']=_0x441e3a[_0x0a9e('0xa')];this[_0x0a9e('0xb')]={};ami['on'](_0x0a9e('0xc'),this[_0x0a9e('0xd')][_0x0a9e('0xe')](this));ami['on'](_0x0a9e('0xf'),this['syncAgentConnect']['bind'](this));ami['on']('agentringnoanswer',this['syncAgentRingNoAnswer'][_0x0a9e('0xe')](this));ami['on'](_0x0a9e('0x10'),this[_0x0a9e('0x11')][_0x0a9e('0xe')](this));ami['on'](_0x0a9e('0x12'),this[_0x0a9e('0x13')]['bind'](this));ami['on'](_0x0a9e('0x14'),this[_0x0a9e('0x15')][_0x0a9e('0xe')](this));ami['on'](_0x0a9e('0x16'),this[_0x0a9e('0x17')][_0x0a9e('0xe')](this));ami['on']('musiconholdstart',this[_0x0a9e('0x18')]['bind'](this));ami['on'](_0x0a9e('0x19'),this['syncMusicOnHoldStop'][_0x0a9e('0xe')](this));ami['on'](_0x0a9e('0x1a'),this['syncAttendedTransfer'][_0x0a9e('0xe')](this));ami['on']('blindtransfer',this[_0x0a9e('0x1b')][_0x0a9e('0xe')](this));}VoiceAgentReport[_0x0a9e('0x1c')][_0x0a9e('0x1d')]=function(_0x31b1ca,_0x2eb11f,_0x530eb7){io['to'](_0x31b1ca)[_0x0a9e('0x1d')](_0x2eb11f,_0x530eb7);};VoiceAgentReport[_0x0a9e('0x1c')][_0x0a9e('0x1e')]=function(_0x1c696a){return _0x1c696a!==null&&!_[_0x0a9e('0x1f')](_0x1c696a);};VoiceAgentReport['prototype'][_0x0a9e('0xd')]=function(_0x155cce){try{if(this['isNotNull'](_0x155cce)){logger[_0x0a9e('0x20')]('[%s][voiceAgentReport][agentcalled]\x20agent:%s\x20destuniqueid:%s\x20lastevent:called',_0x155cce['uniqueid'],_0x155cce[_0x0a9e('0x21')],_0x155cce[_0x0a9e('0x22')]);logger[_0x0a9e('0x23')](_0x0a9e('0x24'),_0x155cce['uniqueid'],util[_0x0a9e('0x25')](_0x155cce,{'showHidden':![],'depth':null}));if(_[_0x0a9e('0x1f')](this[_0x0a9e('0x8')][_0x155cce[_0x0a9e('0x26')]])){this[_0x0a9e('0x8')][_0x155cce[_0x0a9e('0x26')]]={};}if(_[_0x0a9e('0x1f')](this['channels'][_0x155cce['uniqueid']][_0x155cce[_0x0a9e('0x22')]])){this[_0x0a9e('0x8')][_0x155cce[_0x0a9e('0x26')]][_0x155cce[_0x0a9e('0x22')]]={'agentcalledAt':moment()['format'](_0x0a9e('0x27')),'lastevent':'called','mandatoryDisposition':this[_0x0a9e('0x9')][_0x155cce['queue']]?this[_0x0a9e('0x9')][_0x155cce[_0x0a9e('0x28')]][_0x0a9e('0x29')]||![]:![],'type':this[_0x0a9e('0x9')][_0x155cce[_0x0a9e('0x28')]]?this[_0x0a9e('0x9')][_0x155cce[_0x0a9e('0x28')]][_0x0a9e('0x2a')]||'inbound':_0x0a9e('0x2b'),'variables':this[_0x0a9e('0xb')][_0x155cce[_0x0a9e('0x26')]],'motionChannel':_0x0a9e('0x2c')};}_['merge'](this[_0x0a9e('0x8')][_0x155cce[_0x0a9e('0x26')]][_0x155cce[_0x0a9e('0x22')]],_[_0x0a9e('0x2d')](_0x155cce,[_0x0a9e('0x2e'),_0x0a9e('0x2f')]));logger[_0x0a9e('0x23')](_0x0a9e('0x30'),_0x155cce[_0x0a9e('0x26')],util['inspect'](this[_0x0a9e('0x8')][_0x155cce['uniqueid']][_0x155cce[_0x0a9e('0x22')]],{'showHidden':![],'depth':null}));ami[_0x0a9e('0x1d')](_0x0a9e('0x31'),this[_0x0a9e('0x8')][_0x155cce[_0x0a9e('0x26')]][_0x155cce['destuniqueid']]);var _0x66c1d2={'id':this[_0x0a9e('0xa')][_0x155cce[_0x0a9e('0x32')]]['id'],'calleridnum':this[_0x0a9e('0x8')][_0x155cce[_0x0a9e('0x26')]][_0x155cce[_0x0a9e('0x22')]][_0x0a9e('0x33')],'queue':this[_0x0a9e('0x8')][_0x155cce['uniqueid']][_0x155cce[_0x0a9e('0x22')]]['queue'],'extravar':this[_0x0a9e('0x8')][_0x155cce[_0x0a9e('0x26')]][_0x155cce[_0x0a9e('0x22')]][_0x0a9e('0xb')]?this['channels'][_0x155cce[_0x0a9e('0x26')]][_0x155cce[_0x0a9e('0x22')]][_0x0a9e('0xb')][_0x0a9e('0x34')]:undefined};logger['debug']('[%s][voiceAgentReport][agentcalled]\x20sending\x20user:called\x20event:',_0x155cce[_0x0a9e('0x26')],util['inspect'](_0x66c1d2,{'showHidden':![],'depth':null}));this[_0x0a9e('0x1d')](util[_0x0a9e('0x35')](_0x0a9e('0x36'),_0x155cce[_0x0a9e('0x21')]),'user:called',_0x66c1d2);}}catch(_0x31916f){logger[_0x0a9e('0x37')](_0x0a9e('0x38'),_0x155cce['uniqueid'],util[_0x0a9e('0x25')](_0x31916f,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0x0a9e('0x1c')][_0x0a9e('0x39')]=function(_0x4c1c0e){try{if(this['isNotNull'](_0x4c1c0e)){if(this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]]){logger['debug'](_0x0a9e('0x3a'),_0x4c1c0e[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x4c1c0e,{'showHidden':![],'depth':null}));for(var _0x148f55 in this['channels'][_0x4c1c0e['uniqueid']]){if(this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]]['hasOwnProperty'](_0x148f55)){if(_0x4c1c0e[_0x0a9e('0x22')]===_0x148f55){logger[_0x0a9e('0x20')](_0x0a9e('0x3b'),_0x4c1c0e['uniqueid'],_0x4c1c0e[_0x0a9e('0x21')],_0x4c1c0e[_0x0a9e('0x22')]);this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55][_0x0a9e('0x3c')]=moment()[_0x0a9e('0x35')](_0x0a9e('0x27'));this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55][_0x0a9e('0x3d')]=_0x4c1c0e[_0x0a9e('0x3d')];this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55][_0x0a9e('0x3e')]=_0x4c1c0e[_0x0a9e('0x3e')];this['channels'][_0x4c1c0e['uniqueid']][_0x148f55][_0x0a9e('0x3f')]=_0x4c1c0e[_0x0a9e('0x3f')];this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55][_0x0a9e('0x40')]=_0x4c1c0e[_0x0a9e('0x40')];this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55][_0x0a9e('0x41')]=_0x4c1c0e[_0x0a9e('0x41')];this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55]['lastevent']=_0x0a9e('0x42');if(this[_0x0a9e('0x43')][this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55][_0x0a9e('0x26')]]){var _0xbe9d19=this[_0x0a9e('0x43')][this[_0x0a9e('0x8')][_0x4c1c0e['uniqueid']][_0x148f55][_0x0a9e('0x26')]]['routealias'];this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55][_0x0a9e('0x44')]=_0xbe9d19;_0x4c1c0e['routealias']=_0xbe9d19;}_[_0x0a9e('0x45')](this[_0x0a9e('0xa')][_0x4c1c0e[_0x0a9e('0x32')]],_[_0x0a9e('0x46')](_0x4c1c0e,[_0x0a9e('0x28'),_0x0a9e('0x47'),_0x0a9e('0x44')]));logger['debug'](_0x0a9e('0x48'),_0x4c1c0e[_0x0a9e('0x26')],util[_0x0a9e('0x25')](this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]][_0x4c1c0e[_0x0a9e('0x22')]],{'showHidden':![],'depth':null}));ami[_0x0a9e('0x1d')](_0x0a9e('0x49'),this[_0x0a9e('0x8')][_0x4c1c0e['uniqueid']][_0x4c1c0e[_0x0a9e('0x22')]]);logger[_0x0a9e('0x23')]('[%s][voiceAgentReport][agentcalled]\x20sending\x20user:agentconnect\x20event:',_0x4c1c0e['uniqueid'],util['inspect'](this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]][_0x4c1c0e[_0x0a9e('0x22')]],{'showHidden':![],'depth':null}));this[_0x0a9e('0x1d')](util[_0x0a9e('0x35')](_0x0a9e('0x36'),_0x4c1c0e[_0x0a9e('0x21')]),_0x0a9e('0x4a'),this['channels'][_0x4c1c0e['uniqueid']][_0x4c1c0e['destuniqueid']]);}else if(!this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55][_0x0a9e('0x4b')]&&!this['channels'][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55][_0x0a9e('0x12')]){logger['info']('[%s][voiceAgentReport][agentconnect]\x20agent:%s\x20destuniqueid:%s\x20lastevent:answered_elsewhere',_0x4c1c0e[_0x0a9e('0x26')],this['channels'][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55]['membername'],_0x148f55);this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55][_0x0a9e('0x4b')]=!![];this['channels'][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55][_0x0a9e('0x4c')]=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55]['answeredelsewheredestinationuniqueid']=_0x4c1c0e[_0x0a9e('0x22')];this['channels'][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55]['answeredelsewheremembername']=_0x4c1c0e[_0x0a9e('0x21')];this['channels'][_0x4c1c0e['uniqueid']][_0x148f55]['lastevent']=_0x0a9e('0x4d');this['channels'][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55][_0x0a9e('0x4e')]=_0x0a9e('0x4d');logger[_0x0a9e('0x23')](_0x0a9e('0x4f'),_0x4c1c0e[_0x0a9e('0x26')],util[_0x0a9e('0x25')](this[_0x0a9e('0x8')][_0x4c1c0e['uniqueid']][_0x148f55],{'showHidden':![],'depth':null}));ami[_0x0a9e('0x1d')](_0x0a9e('0x50'),this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55]);}}}}}}catch(_0xb83dfd){logger[_0x0a9e('0x37')]('[%s][voiceAgentReport][agentconnect]',_0x4c1c0e[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0xb83dfd,{'showHidden':![],'depth':null}));}};VoiceAgentReport['prototype'][_0x0a9e('0x51')]=function(_0x5cc8fb){try{if(this[_0x0a9e('0x1e')](_0x5cc8fb)){logger['debug']('[%s][voiceAgentReport][agentringnoanswer]\x20event:',_0x5cc8fb['uniqueid'],util[_0x0a9e('0x25')](_0x5cc8fb,{'showHidden':![],'depth':null}));if(this['channels'][_0x5cc8fb[_0x0a9e('0x26')]]&&this[_0x0a9e('0x8')][_0x5cc8fb[_0x0a9e('0x26')]][_0x5cc8fb[_0x0a9e('0x22')]]){logger[_0x0a9e('0x20')](_0x0a9e('0x52'),_0x5cc8fb['uniqueid'],_0x5cc8fb[_0x0a9e('0x21')],_0x5cc8fb['destuniqueid']);this[_0x0a9e('0x8')][_0x5cc8fb[_0x0a9e('0x26')]][_0x5cc8fb[_0x0a9e('0x22')]]['agentringnoanswer']=!![];this[_0x0a9e('0x8')][_0x5cc8fb[_0x0a9e('0x26')]][_0x5cc8fb[_0x0a9e('0x22')]][_0x0a9e('0x4c')]=moment()['format'](_0x0a9e('0x27'));this[_0x0a9e('0x8')][_0x5cc8fb['uniqueid']][_0x5cc8fb[_0x0a9e('0x22')]][_0x0a9e('0x53')]=_0x0a9e('0x54');this[_0x0a9e('0x8')][_0x5cc8fb[_0x0a9e('0x26')]][_0x5cc8fb['destuniqueid']][_0x0a9e('0x4e')]=_0x0a9e('0x54');logger[_0x0a9e('0x23')]('[%s][voiceAgentReport][agentringnoanswer]\x20sending\x20agentringnoanswer\x20event:',_0x5cc8fb[_0x0a9e('0x26')],util['inspect'](this['channels'][_0x5cc8fb[_0x0a9e('0x26')]][_0x5cc8fb[_0x0a9e('0x22')]],{'showHidden':![],'depth':null}));ami[_0x0a9e('0x1d')](_0x0a9e('0x55'),this[_0x0a9e('0x8')][_0x5cc8fb[_0x0a9e('0x26')]][_0x5cc8fb[_0x0a9e('0x22')]]);}}}catch(_0x54a37d){logger[_0x0a9e('0x37')](_0x0a9e('0x56'),_0x5cc8fb[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x54a37d,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0x0a9e('0x1c')][_0x0a9e('0x11')]=function(_0x320898){try{if(this[_0x0a9e('0x1e')](_0x320898)){logger[_0x0a9e('0x23')](_0x0a9e('0x57'),_0x320898['uniqueid'],util[_0x0a9e('0x25')](_0x320898,{'showHidden':![],'depth':null}));if(this[_0x0a9e('0x8')][_0x320898[_0x0a9e('0x26')]]){for(var _0x4edbb0 in this[_0x0a9e('0x8')][_0x320898[_0x0a9e('0x26')]]){if(this['channels'][_0x320898[_0x0a9e('0x26')]][_0x0a9e('0x58')](_0x4edbb0)&&!this[_0x0a9e('0x8')][_0x320898[_0x0a9e('0x26')]][_0x4edbb0][_0x0a9e('0x4b')]&&!this['channels'][_0x320898['uniqueid']][_0x4edbb0]['agentcomplete']){logger[_0x0a9e('0x20')](_0x0a9e('0x59'),_0x320898[_0x0a9e('0x26')],this[_0x0a9e('0x8')][_0x320898[_0x0a9e('0x26')]][_0x4edbb0][_0x0a9e('0x21')],_0x4edbb0);this[_0x0a9e('0x8')][_0x320898[_0x0a9e('0x26')]][_0x4edbb0]['agentringnoanswer']=!![];this[_0x0a9e('0x8')][_0x320898[_0x0a9e('0x26')]][_0x4edbb0][_0x0a9e('0x4c')]=moment()['format'](_0x0a9e('0x27'));this['channels'][_0x320898[_0x0a9e('0x26')]][_0x4edbb0][_0x0a9e('0x53')]='abandoned';this[_0x0a9e('0x8')][_0x320898[_0x0a9e('0x26')]][_0x4edbb0][_0x0a9e('0x4e')]=_0x0a9e('0x5a');logger['debug'](_0x0a9e('0x5b'),_0x320898[_0x0a9e('0x26')],util[_0x0a9e('0x25')](this[_0x0a9e('0x8')][_0x320898['uniqueid']][_0x4edbb0],{'showHidden':![],'depth':null}));ami[_0x0a9e('0x1d')](_0x0a9e('0x5c'),this[_0x0a9e('0x8')][_0x320898[_0x0a9e('0x26')]][_0x4edbb0]);}}}}}catch(_0x4abc8f){logger[_0x0a9e('0x37')](_0x0a9e('0x5d'),_0x320898[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x4abc8f,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0x0a9e('0x1c')][_0x0a9e('0x13')]=function(_0x40fc56){try{if(this[_0x0a9e('0x1e')](_0x40fc56)){logger[_0x0a9e('0x23')](_0x0a9e('0x5e'),_0x40fc56[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x40fc56,{'showHidden':![],'depth':null}));if(this[_0x0a9e('0x8')][_0x40fc56[_0x0a9e('0x26')]]){for(var _0x5b35db in this[_0x0a9e('0x8')][_0x40fc56[_0x0a9e('0x26')]]){if(this[_0x0a9e('0x8')][_0x40fc56['uniqueid']][_0x0a9e('0x58')](_0x5b35db)){if(this[_0x0a9e('0x8')][_0x40fc56[_0x0a9e('0x26')]][_0x5b35db][_0x0a9e('0x3c')]&&!this['channels'][_0x40fc56['uniqueid']][_0x5b35db][_0x0a9e('0x12')]){logger[_0x0a9e('0x20')]('[%s][voiceAgentReport][agentcomplete]\x20agent:%s\x20destuniqueid:%s\x20lastevent:complete',_0x40fc56[_0x0a9e('0x26')],this['channels'][_0x40fc56[_0x0a9e('0x26')]][_0x5b35db][_0x0a9e('0x21')],_0x5b35db);this['channels'][_0x40fc56[_0x0a9e('0x26')]][_0x5b35db][_0x0a9e('0x12')]=!![];this[_0x0a9e('0x8')][_0x40fc56[_0x0a9e('0x26')]][_0x5b35db][_0x0a9e('0x5f')]=moment()[_0x0a9e('0x35')](_0x0a9e('0x27'));this['channels'][_0x40fc56[_0x0a9e('0x26')]][_0x5b35db][_0x0a9e('0x53')]=_0x0a9e('0x60');this[_0x0a9e('0x8')][_0x40fc56['uniqueid']][_0x5b35db][_0x0a9e('0x4e')]=_0x40fc56[_0x0a9e('0x4e')]=='transfer'?_0x0a9e('0x61'):_0x40fc56['reason'];this[_0x0a9e('0x8')][_0x40fc56[_0x0a9e('0x26')]][_0x5b35db][_0x0a9e('0x62')]=_0x40fc56[_0x0a9e('0x62')];if(this['voiceQueues'][_0x40fc56['queue']]&&this[_0x0a9e('0x9')][_0x40fc56[_0x0a9e('0x28')]][_0x0a9e('0x63')]){this['channels'][_0x40fc56[_0x0a9e('0x26')]][_0x5b35db][_0x0a9e('0x64')]=this['voiceQueues'][_0x40fc56['queue']][_0x0a9e('0x65')];this['channels'][_0x40fc56['uniqueid']][_0x5b35db]['agentacw']=!![];}this[_0x0a9e('0xa')][_0x40fc56[_0x0a9e('0x32')]]=_[_0x0a9e('0x2d')](this[_0x0a9e('0xa')][_0x40fc56[_0x0a9e('0x32')]],[_0x0a9e('0x28'),'destconnectedlinenum']);logger[_0x0a9e('0x23')]('[%s][voiceAgentReport][agentcomplete]\x20sending\x20agentcomplete\x20event:',_0x40fc56[_0x0a9e('0x26')],util[_0x0a9e('0x25')](this[_0x0a9e('0x8')][_0x40fc56[_0x0a9e('0x26')]][_0x5b35db],{'showHidden':![],'depth':null}));ami['emit'](_0x0a9e('0x66'),this[_0x0a9e('0x8')][_0x40fc56[_0x0a9e('0x26')]][_0x5b35db]);logger['debug'](_0x0a9e('0x67'),_0x40fc56[_0x0a9e('0x26')],util[_0x0a9e('0x25')]({'id':this[_0x0a9e('0xa')][_0x40fc56[_0x0a9e('0x32')]]['id'],'destaccountcode':_0x40fc56[_0x0a9e('0x68')]},{'showHidden':![],'depth':null}));this[_0x0a9e('0x1d')](util[_0x0a9e('0x35')]('user:%s',_0x40fc56[_0x0a9e('0x21')]),_0x0a9e('0x69'),{'id':this['agents'][_0x40fc56[_0x0a9e('0x32')]]['id'],'destaccountcode':_0x40fc56[_0x0a9e('0x68')]});}}}}}}catch(_0x3a1974){logger['error'](_0x0a9e('0x6a'),_0x40fc56['uniqueid'],util[_0x0a9e('0x25')](_0x3a1974,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0x0a9e('0x1c')][_0x0a9e('0x15')]=function(_0x1f29bd){try{if(this[_0x0a9e('0x1e')](_0x1f29bd)){logger[_0x0a9e('0x23')](_0x0a9e('0x6b'),_0x1f29bd[_0x0a9e('0x26')],util['inspect'](_0x1f29bd,{'showHidden':![],'depth':null}));this[_0x0a9e('0x6c')](_0x1f29bd[_0x0a9e('0x26')],_[_0x0a9e('0x6d')](_0x1f29bd[_0x0a9e('0x6e')])[0x0],_0x1f29bd[_0x0a9e('0x6f')]);if(this[_0x0a9e('0x8')][_0x1f29bd[_0x0a9e('0x26')]]){for(var _0x33f0c9 in this[_0x0a9e('0x8')][_0x1f29bd[_0x0a9e('0x26')]]){if(this[_0x0a9e('0x8')][_0x1f29bd[_0x0a9e('0x26')]][_0x0a9e('0x58')](_0x33f0c9)){logger['info'](_0x0a9e('0x70'),_0x1f29bd[_0x0a9e('0x26')],_0x33f0c9,_[_0x0a9e('0x6d')](_0x1f29bd[_0x0a9e('0x6e')])[0x0],_0x1f29bd[_0x0a9e('0x6f')]);if(_['isUndefined'](this[_0x0a9e('0x8')][_0x1f29bd[_0x0a9e('0x26')]][_0x33f0c9]['variables'])){this[_0x0a9e('0x8')][_0x1f29bd['uniqueid']][_0x33f0c9][_0x0a9e('0xb')]={};}this[_0x0a9e('0x8')][_0x1f29bd[_0x0a9e('0x26')]][_0x33f0c9][_0x0a9e('0xb')]=this['variables'][_0x1f29bd[_0x0a9e('0x26')]];}}}}}catch(_0x4cf72d){logger[_0x0a9e('0x37')](_0x0a9e('0x71'),_0x1f29bd['uniqueid'],util[_0x0a9e('0x25')](_0x4cf72d,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0x0a9e('0x1c')][_0x0a9e('0x6c')]=function(_0x4ab276,_0x4c788f,_0x1b82b7){var _0x6ba2be=[_0x0a9e('0x72'),_0x0a9e('0x73'),_0x0a9e('0x74'),_0x0a9e('0x75'),_0x0a9e('0x76'),_0x0a9e('0x77'),_0x0a9e('0x78'),'rtpaudioqosrttbridged',_0x0a9e('0x79'),'sipuri',_0x0a9e('0x7a'),_0x0a9e('0x7b'),_0x0a9e('0x7c'),_0x0a9e('0x7d'),_0x0a9e('0x7e'),'memberlastcall',_0x0a9e('0x21'),_0x0a9e('0x7f'),_0x0a9e('0x80')];if(!_[_0x0a9e('0x81')](_0x4c788f)&&!_[_0x0a9e('0x82')](_0x6ba2be,_0x4c788f)){if(_['isUndefined'](this['variables'][_0x4ab276])){this[_0x0a9e('0xb')][_0x4ab276]={};}this['variables'][_0x4ab276][_0x4c788f]=_0x1b82b7;}};VoiceAgentReport[_0x0a9e('0x1c')][_0x0a9e('0x17')]=function(_0x4672e1){try{if(this[_0x0a9e('0x1e')](_0x4672e1)){logger[_0x0a9e('0x23')](_0x0a9e('0x83'),_0x4672e1['uniqueid'],util['inspect'](_0x4672e1,{'showHidden':![],'depth':null}));if(this[_0x0a9e('0x8')][_0x4672e1['uniqueid']]){for(var _0x2469d1 in this['channels'][_0x4672e1[_0x0a9e('0x26')]]){if(this['channels'][_0x4672e1['uniqueid']][_0x0a9e('0x58')](_0x2469d1)){if(this[_0x0a9e('0x8')][_0x4672e1['uniqueid']][_0x2469d1][_0x0a9e('0x4e')]==_0x0a9e('0x84')&&this[_0x0a9e('0x8')][_0x4672e1[_0x0a9e('0x26')]][_0x2469d1][_0x0a9e('0x12')]){logger['info']('[%s][voiceAgentReport][hangup]\x20destuniqueid:%s',_0x4672e1[_0x0a9e('0x26')],_0x2469d1);this[_0x0a9e('0x8')][_0x4672e1[_0x0a9e('0x26')]][_0x2469d1][_0x0a9e('0x5f')]=moment()[_0x0a9e('0x35')]('YYYY-MM-DD\x20HH:mm:ss');}}}logger[_0x0a9e('0x23')](_0x0a9e('0x85'),_0x4672e1['uniqueid'],util[_0x0a9e('0x25')](_[_0x0a9e('0x86')](this[_0x0a9e('0x8')][_0x4672e1[_0x0a9e('0x26')]]),{'showHidden':![],'depth':null}));ami[_0x0a9e('0x1d')](_0x0a9e('0x87'),_[_0x0a9e('0x86')](this[_0x0a9e('0x8')][_0x4672e1[_0x0a9e('0x26')]]));delete this[_0x0a9e('0x8')][_0x4672e1['uniqueid']];}if(this[_0x0a9e('0xb')][_0x4672e1[_0x0a9e('0x26')]]){delete this[_0x0a9e('0xb')][_0x4672e1[_0x0a9e('0x26')]];}}}catch(_0x1d0b02){logger['error']('[%s][voiceAgentReport][hangup]',_0x4672e1[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x1d0b02,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0x0a9e('0x1c')][_0x0a9e('0x88')]=function(_0x34f7b5){try{if(this['isNotNull'](_0x34f7b5)){logger[_0x0a9e('0x23')](_0x0a9e('0x89'),_0x34f7b5[_0x0a9e('0x26')],util['inspect'](_0x34f7b5,{'showHidden':![],'depth':null}));if(this[_0x0a9e('0x8')][_0x34f7b5['transfereeuniqueid']]){for(var _0x2144ca in this['channels'][_0x34f7b5[_0x0a9e('0x8a')]]){if(this[_0x0a9e('0x8')][_0x34f7b5[_0x0a9e('0x8a')]]['hasOwnProperty'](_0x2144ca)){if(_0x34f7b5[_0x0a9e('0x8b')]===_0x2144ca){logger['info'](_0x0a9e('0x8c'),_0x34f7b5[_0x0a9e('0x26')],this[_0x0a9e('0x8')][_0x34f7b5[_0x0a9e('0x8a')]][_0x2144ca][_0x0a9e('0x21')],_0x2144ca);var _0x1bee04=moment();this[_0x0a9e('0x8')][_0x34f7b5[_0x0a9e('0x8a')]][_0x2144ca][_0x0a9e('0x12')]=!![];this[_0x0a9e('0x8')][_0x34f7b5[_0x0a9e('0x8a')]][_0x2144ca][_0x0a9e('0x5f')]=moment()[_0x0a9e('0x35')](_0x0a9e('0x27'));this[_0x0a9e('0x8')][_0x34f7b5[_0x0a9e('0x8a')]][_0x2144ca]['lastevent']='complete';this[_0x0a9e('0x8')][_0x34f7b5['transfereeuniqueid']][_0x2144ca][_0x0a9e('0x4e')]=_0x0a9e('0x84');this['channels'][_0x34f7b5[_0x0a9e('0x8a')]][_0x2144ca][_0x0a9e('0x62')]=_0x1bee04[_0x0a9e('0x8d')](this[_0x0a9e('0x8')][_0x34f7b5['transfereeuniqueid']][_0x2144ca][_0x0a9e('0x3c')],_0x0a9e('0x8e'));}}}}if(this[_0x0a9e('0x8')][_0x34f7b5[_0x0a9e('0x8f')]]){var _0x5d0e1f=this[_0x0a9e('0x8')][_0x34f7b5[_0x0a9e('0x8f')]];this[_0x0a9e('0x8')][_0x34f7b5['secondtransfereruniqueid']]=this[_0x0a9e('0x8')][_0x34f7b5[_0x0a9e('0x8a')]];this[_0x0a9e('0x8')][_0x34f7b5['transfereeuniqueid']]=_0x5d0e1f;}}}catch(_0x303f75){logger[_0x0a9e('0x37')](_0x0a9e('0x90'),_0x34f7b5[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x303f75,{'showHidden':![],'depth':null}));}};VoiceAgentReport['prototype'][_0x0a9e('0x1b')]=function(_0x289e65){try{if(this['isNotNull'](_0x289e65)){logger[_0x0a9e('0x23')](_0x0a9e('0x91'),_0x289e65[_0x0a9e('0x26')],util['inspect'](_0x289e65,{'showHidden':![],'depth':null}));if(this['channels'][_0x289e65['transfereeuniqueid']]){for(var _0x1015aa in this[_0x0a9e('0x8')][_0x289e65['transfereeuniqueid']]){if(this[_0x0a9e('0x8')][_0x289e65[_0x0a9e('0x8a')]][_0x0a9e('0x58')](_0x1015aa)){if(_0x289e65['transfereruniqueid']===_0x1015aa){logger[_0x0a9e('0x20')](_0x0a9e('0x92'),_0x289e65[_0x0a9e('0x26')],this[_0x0a9e('0x8')][_0x289e65[_0x0a9e('0x8a')]][_0x1015aa][_0x0a9e('0x21')],_0x1015aa);var _0x40e6e7=moment();this[_0x0a9e('0x8')][_0x289e65[_0x0a9e('0x8a')]][_0x1015aa]['agentcomplete']=!![];this[_0x0a9e('0x8')][_0x289e65['transfereeuniqueid']][_0x1015aa][_0x0a9e('0x5f')]=_0x40e6e7;this[_0x0a9e('0x8')][_0x289e65[_0x0a9e('0x8a')]][_0x1015aa][_0x0a9e('0x53')]=_0x0a9e('0x60');this[_0x0a9e('0x8')][_0x289e65['transfereeuniqueid']][_0x1015aa][_0x0a9e('0x4e')]=_0x0a9e('0x84');this[_0x0a9e('0x8')][_0x289e65[_0x0a9e('0x8a')]][_0x1015aa]['talktime']=_0x40e6e7[_0x0a9e('0x8d')](this[_0x0a9e('0x8')][_0x289e65[_0x0a9e('0x8a')]][_0x1015aa][_0x0a9e('0x3c')],_0x0a9e('0x8e'));}}}}}}catch(_0x2be526){logger[_0x0a9e('0x37')](_0x0a9e('0x93'),_0x289e65[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x2be526,{'showHidden':![],'depth':null}));}};VoiceAgentReport['prototype'][_0x0a9e('0x18')]=function(_0x88b25f){var _0x2ff265='';try{if(this[_0x0a9e('0x1e')](_0x88b25f)){logger[_0x0a9e('0x23')](_0x0a9e('0x94'),_0x88b25f[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x88b25f,{'showHidden':![],'depth':null}));if(_0x88b25f['channel']){_0x2ff265=_0x88b25f[_0x0a9e('0x95')][_0x0a9e('0x96')](0x0,_0x88b25f[_0x0a9e('0x95')]['lastIndexOf']('-'));if(this[_0x0a9e('0xa')][_0x2ff265]){logger[_0x0a9e('0x20')](_0x0a9e('0x97'),_0x88b25f[_0x0a9e('0x26')],_0x2ff265);this[_0x0a9e('0xa')][_0x2ff265][_0x0a9e('0x98')]=!![];}}}}catch(_0x424f1b){logger[_0x0a9e('0x37')](_0x0a9e('0x99'),_0x88b25f[_0x0a9e('0x26')],util['inspect'](_0x424f1b,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0x0a9e('0x1c')][_0x0a9e('0x9a')]=function(_0x15a9ed){var _0x3db98f='';try{if(this[_0x0a9e('0x1e')](_0x15a9ed)){logger[_0x0a9e('0x23')]('[%s][voiceAgentReport][musiconholdstop]\x20event:',_0x15a9ed[_0x0a9e('0x26')],util['inspect'](_0x15a9ed,{'showHidden':![],'depth':null}));if(_0x15a9ed['channel']){_0x3db98f=_0x15a9ed['channel'][_0x0a9e('0x96')](0x0,_0x15a9ed[_0x0a9e('0x95')][_0x0a9e('0x9b')]('-'));if(this[_0x0a9e('0xa')][_0x3db98f]){logger['info'](_0x0a9e('0x9c'),_0x15a9ed[_0x0a9e('0x26')],_0x3db98f);this[_0x0a9e('0xa')][_0x3db98f][_0x0a9e('0x98')]=![];}}}}catch(_0x2c8d1d){logger['error']('[%s][voiceAgentReport][musiconholdstop]',_0x15a9ed[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x2c8d1d,{'showHidden':![],'depth':null}));}};module[_0x0a9e('0x9d')]=VoiceAgentReport;
\ No newline at end of file
+var _0xa9e0=['redis','defaults','localhost','channels','voiceQueues','agents','variables','agentcalled','syncAgentCalled','bind','agentconnect','queuecallerabandon','syncQueueCallerAbandon','agentcomplete','syncAgentComplete','varset','syncVarSet','hangup','syncHangup','syncMusicOnHoldStart','musiconholdstop','attendedtransfer','syncBlindTransfer','prototype','emit','isNotNull','isUndefined','info','membername','destuniqueid','debug','[%s][voiceAgentReport][agentcalled]\x20event:','inspect','uniqueid','YYYY-MM-DD\x20HH:mm:ss','queue','mandatoryDisposition','type','inbound','merge','omit','event','privilege','[%s][voiceAgentReport][agentcalled]\x20sending\x20agentcalled\x20event:','custom:agentcalled','[%s][voiceAgentReport][agentcalled]\x20sending\x20user:called\x20event:','format','[%s][voiceAgentReport][agentcalled]','[%s][voiceAgentReport][agentconnect]\x20event:','hasOwnProperty','agentconnectAt','connectedlinename','connectedlinenum','destchannelstate','destchannelstatedesc','holdtime','lastevent','voiceChannels','routealias','interface','pick','destconnectedlinenum','custom:agentconnect','[%s][voiceAgentReport][agentcalled]\x20sending\x20user:agentconnect\x20event:','user:%s','user:agentconnect','[%s][voiceAgentReport][agentconnect]\x20agent:%s\x20destuniqueid:%s\x20lastevent:answered_elsewhere','agentringnoanswerAt','answered_elsewhere','[%s][voiceAgentReport][agentconnect]','syncAgentRingNoAnswer','[%s][voiceAgentReport][agentringnoanswer]\x20agent:%s\x20destuniqueid:%s\x20lastevent:rejected','rejected','[%s][voiceAgentReport][agentringnoanswer]\x20sending\x20agentringnoanswer\x20event:','custom:agentringnoanswer','error','[%s][voiceAgentReport][agentringnoanswer]','[%s][voiceAgentReport][queuecallerabandon]\x20event:','agentringnoanswer','[%s][voiceAgentReport][queuecallerabandon]\x20agent:%s\x20destuniqueid:%s\x20lastevent:abandoned','abandoned','reason','[%s][voiceAgentReport][queuecallerabandon]','[%s][voiceAgentReport][agentcomplete]\x20agent:%s\x20destuniqueid:%s\x20lastevent:complete','agentcompleteAt','complete','transfer','agent','talktime','acw','acwtime','agentacw','[%s][voiceAgentReport][agentcomplete]\x20sending\x20agentcomplete\x20event:','[%s][voiceAgentReport][agentcomplete]\x20sending\x20user:agentcomplete\x20event:','user:agentcomplete','[%s][voiceAgentReport][varset]\x20event:','addVariable','keys','variable','value','[%s][voiceAgentReport][varset]\x20destuniqueid:%s\x20variable:%s\x20value:%s','[%s][voiceAgentReport][varset]','rtpaudioqos','rtpaudioqosbridged','rtpaudioqosjitter','rtpaudioqosjitterbridged','rtpaudioqoslossbridged','rtpaudioqosrttbridged','sipcallid','bridgepeer','bridgepvtcallid','membercalls','memberlastcall','memberpenalty','memberrealtime','isNil','includes','[%s][voiceAgentReport][hangup]\x20event:','[%s][voiceAgentReport][hangup]\x20sending\x20voiceAgentReport\x20event:','values','custom:voiceAgentReport','[%s][voiceAgentReport][hangup]','syncAttendedTransfer','[%s][voiceAgentReport][attendedtransfer]\x20event:','transfereeuniqueid','origtransfereruniqueid','[%s][voiceAgentReport][attendedtransfer]\x20agent:%s\x20destuniqueid:%s\x20lastevent:complete','diff','seconds','secondtransfereruniqueid','[%s][voiceAgentReport][attendedtransfer]','[%s][voiceAgentReport][blindtransfer]\x20event:','transfereruniqueid','[%s][voiceAgentReport][blindtransfer]\x20agent:%s\x20destuniqueid:%s\x20lastevent:complete','[%s][voiceAgentReport][blindtransfer]','channel','substring','lastIndexOf','[%s][voiceAgentReport][musiconholdstart]\x20interface:%s','onhold','[%s][voiceAgentReport][musiconholdstart]','[%s][voiceAgentReport][musiconholdstop]\x20event:','[%s][voiceAgentReport][musiconholdstop]','lodash','moment','util','../../../config/logger','../ami'];(function(_0x29cdbb,_0x2e3f14){var _0x578b94=function(_0x1ff0c2){while(--_0x1ff0c2){_0x29cdbb['push'](_0x29cdbb['shift']());}};_0x578b94(++_0x2e3f14);}(_0xa9e0,0x123));var _0x0a9e=function(_0x934425,_0x5af72f){_0x934425=_0x934425-0x0;var _0x31d596=_0xa9e0[_0x934425];return _0x31d596;};'use strict';var _=require(_0x0a9e('0x0'));var moment=require(_0x0a9e('0x1'));var util=require(_0x0a9e('0x2'));var Redis=require('ioredis');var config=require('../../../config/environment');var logger=require(_0x0a9e('0x3'))('ami');var ami=require(_0x0a9e('0x4'));config[_0x0a9e('0x5')]=_[_0x0a9e('0x6')](config[_0x0a9e('0x5')],{'host':_0x0a9e('0x7'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x0a9e('0x5')]));function VoiceAgentReport(_0x441e3a){this[_0x0a9e('0x8')]={};this['voiceChannels']=_0x441e3a['channels'];this[_0x0a9e('0x9')]=_0x441e3a['voiceQueues'];this['agents']=_0x441e3a[_0x0a9e('0xa')];this[_0x0a9e('0xb')]={};ami['on'](_0x0a9e('0xc'),this[_0x0a9e('0xd')][_0x0a9e('0xe')](this));ami['on'](_0x0a9e('0xf'),this['syncAgentConnect']['bind'](this));ami['on']('agentringnoanswer',this['syncAgentRingNoAnswer'][_0x0a9e('0xe')](this));ami['on'](_0x0a9e('0x10'),this[_0x0a9e('0x11')][_0x0a9e('0xe')](this));ami['on'](_0x0a9e('0x12'),this[_0x0a9e('0x13')]['bind'](this));ami['on'](_0x0a9e('0x14'),this[_0x0a9e('0x15')][_0x0a9e('0xe')](this));ami['on'](_0x0a9e('0x16'),this[_0x0a9e('0x17')][_0x0a9e('0xe')](this));ami['on']('musiconholdstart',this[_0x0a9e('0x18')]['bind'](this));ami['on'](_0x0a9e('0x19'),this['syncMusicOnHoldStop'][_0x0a9e('0xe')](this));ami['on'](_0x0a9e('0x1a'),this['syncAttendedTransfer'][_0x0a9e('0xe')](this));ami['on']('blindtransfer',this[_0x0a9e('0x1b')][_0x0a9e('0xe')](this));}VoiceAgentReport[_0x0a9e('0x1c')][_0x0a9e('0x1d')]=function(_0x31b1ca,_0x2eb11f,_0x530eb7){io['to'](_0x31b1ca)[_0x0a9e('0x1d')](_0x2eb11f,_0x530eb7);};VoiceAgentReport[_0x0a9e('0x1c')][_0x0a9e('0x1e')]=function(_0x1c696a){return _0x1c696a!==null&&!_[_0x0a9e('0x1f')](_0x1c696a);};VoiceAgentReport['prototype'][_0x0a9e('0xd')]=function(_0x155cce){try{if(this['isNotNull'](_0x155cce)){logger[_0x0a9e('0x20')]('[%s][voiceAgentReport][agentcalled]\x20agent:%s\x20destuniqueid:%s\x20lastevent:called',_0x155cce['uniqueid'],_0x155cce[_0x0a9e('0x21')],_0x155cce[_0x0a9e('0x22')]);logger[_0x0a9e('0x23')](_0x0a9e('0x24'),_0x155cce['uniqueid'],util[_0x0a9e('0x25')](_0x155cce,{'showHidden':![],'depth':null}));if(_[_0x0a9e('0x1f')](this[_0x0a9e('0x8')][_0x155cce[_0x0a9e('0x26')]])){this[_0x0a9e('0x8')][_0x155cce[_0x0a9e('0x26')]]={};}if(_[_0x0a9e('0x1f')](this['channels'][_0x155cce['uniqueid']][_0x155cce[_0x0a9e('0x22')]])){this[_0x0a9e('0x8')][_0x155cce[_0x0a9e('0x26')]][_0x155cce[_0x0a9e('0x22')]]={'agentcalledAt':moment()['format'](_0x0a9e('0x27')),'lastevent':'called','mandatoryDisposition':this[_0x0a9e('0x9')][_0x155cce['queue']]?this[_0x0a9e('0x9')][_0x155cce[_0x0a9e('0x28')]][_0x0a9e('0x29')]||![]:![],'type':this[_0x0a9e('0x9')][_0x155cce[_0x0a9e('0x28')]]?this[_0x0a9e('0x9')][_0x155cce[_0x0a9e('0x28')]][_0x0a9e('0x2a')]||'inbound':_0x0a9e('0x2b'),'variables':this[_0x0a9e('0xb')][_0x155cce[_0x0a9e('0x26')]]};}_[_0x0a9e('0x2c')](this['channels'][_0x155cce[_0x0a9e('0x26')]][_0x155cce[_0x0a9e('0x22')]],_[_0x0a9e('0x2d')](_0x155cce,[_0x0a9e('0x2e'),_0x0a9e('0x2f')]));logger[_0x0a9e('0x23')](_0x0a9e('0x30'),_0x155cce[_0x0a9e('0x26')],util[_0x0a9e('0x25')](this['channels'][_0x155cce[_0x0a9e('0x26')]][_0x155cce['destuniqueid']],{'showHidden':![],'depth':null}));ami[_0x0a9e('0x1d')](_0x0a9e('0x31'),this[_0x0a9e('0x8')][_0x155cce[_0x0a9e('0x26')]][_0x155cce[_0x0a9e('0x22')]]);logger['debug'](_0x0a9e('0x32'),_0x155cce[_0x0a9e('0x26')],util[_0x0a9e('0x25')](this[_0x0a9e('0x8')][_0x155cce[_0x0a9e('0x26')]][_0x155cce[_0x0a9e('0x22')]],{'showHidden':![],'depth':null}));this[_0x0a9e('0x1d')](util[_0x0a9e('0x33')]('user:%s',_0x155cce[_0x0a9e('0x21')]),'user:called',this[_0x0a9e('0x8')][_0x155cce[_0x0a9e('0x26')]][_0x155cce[_0x0a9e('0x22')]]);}}catch(_0x3f3d41){logger['error'](_0x0a9e('0x34'),_0x155cce[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x3f3d41,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0x0a9e('0x1c')]['syncAgentConnect']=function(_0x54135e){try{if(this[_0x0a9e('0x1e')](_0x54135e)){if(this['channels'][_0x54135e[_0x0a9e('0x26')]]){logger[_0x0a9e('0x23')](_0x0a9e('0x35'),_0x54135e[_0x0a9e('0x26')],util['inspect'](_0x54135e,{'showHidden':![],'depth':null}));for(var _0x31916f in this[_0x0a9e('0x8')][_0x54135e[_0x0a9e('0x26')]]){if(this['channels'][_0x54135e[_0x0a9e('0x26')]][_0x0a9e('0x36')](_0x31916f)){if(_0x54135e[_0x0a9e('0x22')]===_0x31916f){logger['info']('[%s][voiceAgentReport][agentconnect]\x20agent:%s\x20destuniqueid:%s\x20lastevent:connect',_0x54135e[_0x0a9e('0x26')],_0x54135e[_0x0a9e('0x21')],_0x54135e['destuniqueid']);this[_0x0a9e('0x8')][_0x54135e[_0x0a9e('0x26')]][_0x31916f][_0x0a9e('0x37')]=moment()[_0x0a9e('0x33')]('YYYY-MM-DD\x20HH:mm:ss');this['channels'][_0x54135e[_0x0a9e('0x26')]][_0x31916f][_0x0a9e('0x38')]=_0x54135e['connectedlinename'];this[_0x0a9e('0x8')][_0x54135e[_0x0a9e('0x26')]][_0x31916f][_0x0a9e('0x39')]=_0x54135e['connectedlinenum'];this[_0x0a9e('0x8')][_0x54135e[_0x0a9e('0x26')]][_0x31916f][_0x0a9e('0x3a')]=_0x54135e[_0x0a9e('0x3a')];this[_0x0a9e('0x8')][_0x54135e[_0x0a9e('0x26')]][_0x31916f][_0x0a9e('0x3b')]=_0x54135e[_0x0a9e('0x3b')];this[_0x0a9e('0x8')][_0x54135e[_0x0a9e('0x26')]][_0x31916f][_0x0a9e('0x3c')]=_0x54135e[_0x0a9e('0x3c')];this[_0x0a9e('0x8')][_0x54135e[_0x0a9e('0x26')]][_0x31916f][_0x0a9e('0x3d')]='connect';if(this['voiceChannels'][this[_0x0a9e('0x8')][_0x54135e[_0x0a9e('0x26')]][_0x31916f][_0x0a9e('0x26')]]){var _0x315881=this[_0x0a9e('0x3e')][this[_0x0a9e('0x8')][_0x54135e[_0x0a9e('0x26')]][_0x31916f][_0x0a9e('0x26')]][_0x0a9e('0x3f')];this[_0x0a9e('0x8')][_0x54135e[_0x0a9e('0x26')]][_0x31916f][_0x0a9e('0x3f')]=_0x315881;_0x54135e['routealias']=_0x315881;}_[_0x0a9e('0x2c')](this[_0x0a9e('0xa')][_0x54135e[_0x0a9e('0x40')]],_[_0x0a9e('0x41')](_0x54135e,[_0x0a9e('0x28'),_0x0a9e('0x42'),_0x0a9e('0x3f')]));logger[_0x0a9e('0x23')]('[%s][voiceAgentReport][agentconnect]\x20sending\x20agentconnect\x20event:',_0x54135e[_0x0a9e('0x26')],util['inspect'](this[_0x0a9e('0x8')][_0x54135e[_0x0a9e('0x26')]][_0x54135e[_0x0a9e('0x22')]],{'showHidden':![],'depth':null}));ami['emit'](_0x0a9e('0x43'),this[_0x0a9e('0x8')][_0x54135e[_0x0a9e('0x26')]][_0x54135e[_0x0a9e('0x22')]]);logger[_0x0a9e('0x23')](_0x0a9e('0x44'),_0x54135e[_0x0a9e('0x26')],util['inspect'](this[_0x0a9e('0x8')][_0x54135e[_0x0a9e('0x26')]][_0x54135e[_0x0a9e('0x22')]],{'showHidden':![],'depth':null}));this[_0x0a9e('0x1d')](util[_0x0a9e('0x33')](_0x0a9e('0x45'),_0x54135e[_0x0a9e('0x21')]),_0x0a9e('0x46'),this[_0x0a9e('0x8')][_0x54135e['uniqueid']][_0x54135e[_0x0a9e('0x22')]]);}else if(!this[_0x0a9e('0x8')][_0x54135e['uniqueid']][_0x31916f]['agentringnoanswer']&&!this['channels'][_0x54135e[_0x0a9e('0x26')]][_0x31916f][_0x0a9e('0x12')]){logger[_0x0a9e('0x20')](_0x0a9e('0x47'),_0x54135e[_0x0a9e('0x26')],this[_0x0a9e('0x8')][_0x54135e[_0x0a9e('0x26')]][_0x31916f][_0x0a9e('0x21')],_0x31916f);this['channels'][_0x54135e['uniqueid']][_0x31916f]['agentringnoanswer']=!![];this[_0x0a9e('0x8')][_0x54135e[_0x0a9e('0x26')]][_0x31916f][_0x0a9e('0x48')]=moment()['format'](_0x0a9e('0x27'));this[_0x0a9e('0x8')][_0x54135e['uniqueid']][_0x31916f]['answeredelsewheredestinationuniqueid']=_0x54135e[_0x0a9e('0x22')];this['channels'][_0x54135e[_0x0a9e('0x26')]][_0x31916f]['answeredelsewheremembername']=_0x54135e[_0x0a9e('0x21')];this[_0x0a9e('0x8')][_0x54135e[_0x0a9e('0x26')]][_0x31916f]['lastevent']=_0x0a9e('0x49');this[_0x0a9e('0x8')][_0x54135e['uniqueid']][_0x31916f]['reason']=_0x0a9e('0x49');logger[_0x0a9e('0x23')]('[%s][voiceAgentReport][agentconnect]\x20sending\x20agentansweredelsewhere\x20event:',_0x54135e[_0x0a9e('0x26')],util['inspect'](this[_0x0a9e('0x8')][_0x54135e['uniqueid']][_0x31916f],{'showHidden':![],'depth':null}));ami[_0x0a9e('0x1d')]('custom:agentansweredelsewhere',this['channels'][_0x54135e['uniqueid']][_0x31916f]);}}}}}}catch(_0x2da03c){logger['error'](_0x0a9e('0x4a'),_0x54135e[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x2da03c,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0x0a9e('0x1c')][_0x0a9e('0x4b')]=function(_0x272738){try{if(this[_0x0a9e('0x1e')](_0x272738)){logger[_0x0a9e('0x23')]('[%s][voiceAgentReport][agentringnoanswer]\x20event:',_0x272738[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x272738,{'showHidden':![],'depth':null}));if(this[_0x0a9e('0x8')][_0x272738[_0x0a9e('0x26')]]&&this[_0x0a9e('0x8')][_0x272738[_0x0a9e('0x26')]][_0x272738['destuniqueid']]){logger[_0x0a9e('0x20')](_0x0a9e('0x4c'),_0x272738['uniqueid'],_0x272738[_0x0a9e('0x21')],_0x272738['destuniqueid']);this[_0x0a9e('0x8')][_0x272738['uniqueid']][_0x272738['destuniqueid']]['agentringnoanswer']=!![];this[_0x0a9e('0x8')][_0x272738['uniqueid']][_0x272738[_0x0a9e('0x22')]][_0x0a9e('0x48')]=moment()[_0x0a9e('0x33')](_0x0a9e('0x27'));this[_0x0a9e('0x8')][_0x272738[_0x0a9e('0x26')]][_0x272738['destuniqueid']][_0x0a9e('0x3d')]='rejected';this[_0x0a9e('0x8')][_0x272738[_0x0a9e('0x26')]][_0x272738[_0x0a9e('0x22')]]['reason']=_0x0a9e('0x4d');logger[_0x0a9e('0x23')](_0x0a9e('0x4e'),_0x272738[_0x0a9e('0x26')],util['inspect'](this[_0x0a9e('0x8')][_0x272738[_0x0a9e('0x26')]][_0x272738['destuniqueid']],{'showHidden':![],'depth':null}));ami[_0x0a9e('0x1d')](_0x0a9e('0x4f'),this[_0x0a9e('0x8')][_0x272738[_0x0a9e('0x26')]][_0x272738[_0x0a9e('0x22')]]);}}}catch(_0x4d4a35){logger[_0x0a9e('0x50')](_0x0a9e('0x51'),_0x272738[_0x0a9e('0x26')],util['inspect'](_0x4d4a35,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0x0a9e('0x1c')]['syncQueueCallerAbandon']=function(_0x5211e3){try{if(this[_0x0a9e('0x1e')](_0x5211e3)){logger[_0x0a9e('0x23')](_0x0a9e('0x52'),_0x5211e3[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x5211e3,{'showHidden':![],'depth':null}));if(this[_0x0a9e('0x8')][_0x5211e3[_0x0a9e('0x26')]]){for(var _0x54a37d in this[_0x0a9e('0x8')][_0x5211e3[_0x0a9e('0x26')]]){if(this[_0x0a9e('0x8')][_0x5211e3[_0x0a9e('0x26')]][_0x0a9e('0x36')](_0x54a37d)&&!this[_0x0a9e('0x8')][_0x5211e3[_0x0a9e('0x26')]][_0x54a37d][_0x0a9e('0x53')]&&!this[_0x0a9e('0x8')][_0x5211e3[_0x0a9e('0x26')]][_0x54a37d]['agentcomplete']){logger[_0x0a9e('0x20')](_0x0a9e('0x54'),_0x5211e3[_0x0a9e('0x26')],this['channels'][_0x5211e3[_0x0a9e('0x26')]][_0x54a37d][_0x0a9e('0x21')],_0x54a37d);this['channels'][_0x5211e3[_0x0a9e('0x26')]][_0x54a37d][_0x0a9e('0x53')]=!![];this[_0x0a9e('0x8')][_0x5211e3[_0x0a9e('0x26')]][_0x54a37d][_0x0a9e('0x48')]=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');this['channels'][_0x5211e3[_0x0a9e('0x26')]][_0x54a37d][_0x0a9e('0x3d')]=_0x0a9e('0x55');this[_0x0a9e('0x8')][_0x5211e3[_0x0a9e('0x26')]][_0x54a37d][_0x0a9e('0x56')]=_0x0a9e('0x55');logger[_0x0a9e('0x23')]('[%s][voiceAgentReport][queuecallerabandon]\x20sending\x20agentqueuecallerabandon\x20event:',_0x5211e3[_0x0a9e('0x26')],util[_0x0a9e('0x25')](this[_0x0a9e('0x8')][_0x5211e3['uniqueid']][_0x54a37d],{'showHidden':![],'depth':null}));ami[_0x0a9e('0x1d')]('custom:agentqueuecallerabandon',this[_0x0a9e('0x8')][_0x5211e3[_0x0a9e('0x26')]][_0x54a37d]);}}}}}catch(_0x4c46c1){logger[_0x0a9e('0x50')](_0x0a9e('0x57'),_0x5211e3[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x4c46c1,{'showHidden':![],'depth':null}));}};VoiceAgentReport['prototype'][_0x0a9e('0x13')]=function(_0x2e9552){try{if(this[_0x0a9e('0x1e')](_0x2e9552)){logger[_0x0a9e('0x23')]('[%s][voiceAgentReport][agentcomplete]\x20event:',_0x2e9552[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x2e9552,{'showHidden':![],'depth':null}));if(this[_0x0a9e('0x8')][_0x2e9552[_0x0a9e('0x26')]]){for(var _0x4abc8f in this[_0x0a9e('0x8')][_0x2e9552[_0x0a9e('0x26')]]){if(this[_0x0a9e('0x8')][_0x2e9552[_0x0a9e('0x26')]][_0x0a9e('0x36')](_0x4abc8f)){if(this[_0x0a9e('0x8')][_0x2e9552[_0x0a9e('0x26')]][_0x4abc8f][_0x0a9e('0x37')]&&!this[_0x0a9e('0x8')][_0x2e9552[_0x0a9e('0x26')]][_0x4abc8f][_0x0a9e('0x12')]){logger[_0x0a9e('0x20')](_0x0a9e('0x58'),_0x2e9552[_0x0a9e('0x26')],this['channels'][_0x2e9552[_0x0a9e('0x26')]][_0x4abc8f][_0x0a9e('0x21')],_0x4abc8f);this[_0x0a9e('0x8')][_0x2e9552['uniqueid']][_0x4abc8f][_0x0a9e('0x12')]=!![];this[_0x0a9e('0x8')][_0x2e9552[_0x0a9e('0x26')]][_0x4abc8f][_0x0a9e('0x59')]=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');this[_0x0a9e('0x8')][_0x2e9552[_0x0a9e('0x26')]][_0x4abc8f]['lastevent']=_0x0a9e('0x5a');this['channels'][_0x2e9552[_0x0a9e('0x26')]][_0x4abc8f][_0x0a9e('0x56')]=_0x2e9552['reason']==_0x0a9e('0x5b')?_0x0a9e('0x5c'):_0x2e9552[_0x0a9e('0x56')];this[_0x0a9e('0x8')][_0x2e9552[_0x0a9e('0x26')]][_0x4abc8f][_0x0a9e('0x5d')]=_0x2e9552[_0x0a9e('0x5d')];if(this['voiceQueues'][_0x2e9552[_0x0a9e('0x28')]]&&this[_0x0a9e('0x9')][_0x2e9552[_0x0a9e('0x28')]][_0x0a9e('0x5e')]){this['channels'][_0x2e9552[_0x0a9e('0x26')]][_0x4abc8f][_0x0a9e('0x5f')]=this['voiceQueues'][_0x2e9552[_0x0a9e('0x28')]]['acwTimeout'];this[_0x0a9e('0x8')][_0x2e9552[_0x0a9e('0x26')]][_0x4abc8f][_0x0a9e('0x60')]=!![];}this[_0x0a9e('0xa')][_0x2e9552['interface']]=_['omit'](this[_0x0a9e('0xa')][_0x2e9552[_0x0a9e('0x40')]],[_0x0a9e('0x28'),'destconnectedlinenum']);logger[_0x0a9e('0x23')](_0x0a9e('0x61'),_0x2e9552['uniqueid'],util['inspect'](this[_0x0a9e('0x8')][_0x2e9552['uniqueid']][_0x4abc8f],{'showHidden':![],'depth':null}));ami['emit']('custom:agentcomplete',this[_0x0a9e('0x8')][_0x2e9552[_0x0a9e('0x26')]][_0x4abc8f]);logger[_0x0a9e('0x23')](_0x0a9e('0x62'),_0x2e9552[_0x0a9e('0x26')],util[_0x0a9e('0x25')](this['channels'][_0x2e9552[_0x0a9e('0x26')]][_0x4abc8f],{'showHidden':![],'depth':null}));this['emit'](util[_0x0a9e('0x33')](_0x0a9e('0x45'),_0x2e9552[_0x0a9e('0x21')]),_0x0a9e('0x63'),this['channels'][_0x2e9552[_0x0a9e('0x26')]][_0x4abc8f]);}}}}}}catch(_0x32f761){logger[_0x0a9e('0x50')]('[%s][voiceAgentReport][agentcomplete]',_0x2e9552[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x32f761,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0x0a9e('0x1c')][_0x0a9e('0x15')]=function(_0x255e49){try{if(this[_0x0a9e('0x1e')](_0x255e49)){logger[_0x0a9e('0x23')](_0x0a9e('0x64'),_0x255e49['uniqueid'],util[_0x0a9e('0x25')](_0x255e49,{'showHidden':![],'depth':null}));this[_0x0a9e('0x65')](_0x255e49['uniqueid'],_[_0x0a9e('0x66')](_0x255e49[_0x0a9e('0x67')])[0x0],_0x255e49[_0x0a9e('0x68')]);if(this['channels'][_0x255e49[_0x0a9e('0x26')]]){for(var _0x52ec10 in this[_0x0a9e('0x8')][_0x255e49[_0x0a9e('0x26')]]){if(this[_0x0a9e('0x8')][_0x255e49[_0x0a9e('0x26')]][_0x0a9e('0x36')](_0x52ec10)){logger[_0x0a9e('0x20')](_0x0a9e('0x69'),_0x255e49[_0x0a9e('0x26')],_0x52ec10,_['keys'](_0x255e49[_0x0a9e('0x67')])[0x0],_0x255e49[_0x0a9e('0x68')]);if(_[_0x0a9e('0x1f')](this[_0x0a9e('0x8')][_0x255e49[_0x0a9e('0x26')]][_0x52ec10][_0x0a9e('0xb')])){this[_0x0a9e('0x8')][_0x255e49[_0x0a9e('0x26')]][_0x52ec10][_0x0a9e('0xb')]={};}this[_0x0a9e('0x8')][_0x255e49[_0x0a9e('0x26')]][_0x52ec10][_0x0a9e('0xb')]=this[_0x0a9e('0xb')][_0x255e49['uniqueid']];}}}}}catch(_0xc81b64){logger[_0x0a9e('0x50')](_0x0a9e('0x6a'),_0x255e49[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0xc81b64,{'showHidden':![],'depth':null}));}};VoiceAgentReport['prototype'][_0x0a9e('0x65')]=function(_0x1756c7,_0x5ce99d,_0x23b447){var _0x5e725e=[_0x0a9e('0x6b'),_0x0a9e('0x6c'),_0x0a9e('0x6d'),_0x0a9e('0x6e'),'rtpaudioqosloss',_0x0a9e('0x6f'),'rtpaudioqosrtt',_0x0a9e('0x70'),_0x0a9e('0x71'),'sipuri',_0x0a9e('0x72'),_0x0a9e('0x73'),_0x0a9e('0x74'),'memberdynamic','memberinterface',_0x0a9e('0x75'),_0x0a9e('0x21'),_0x0a9e('0x76'),_0x0a9e('0x77')];if(!_[_0x0a9e('0x78')](_0x5ce99d)&&!_[_0x0a9e('0x79')](_0x5e725e,_0x5ce99d)){if(_[_0x0a9e('0x1f')](this[_0x0a9e('0xb')][_0x1756c7])){this[_0x0a9e('0xb')][_0x1756c7]={};}this['variables'][_0x1756c7][_0x5ce99d]=_0x23b447;}};VoiceAgentReport[_0x0a9e('0x1c')]['syncHangup']=function(_0x287324){try{if(this[_0x0a9e('0x1e')](_0x287324)){logger[_0x0a9e('0x23')](_0x0a9e('0x7a'),_0x287324[_0x0a9e('0x26')],util['inspect'](_0x287324,{'showHidden':![],'depth':null}));if(this[_0x0a9e('0x8')][_0x287324[_0x0a9e('0x26')]]){for(var _0x2791c5 in this[_0x0a9e('0x8')][_0x287324[_0x0a9e('0x26')]]){if(this['channels'][_0x287324['uniqueid']][_0x0a9e('0x36')](_0x2791c5)){if(this['channels'][_0x287324[_0x0a9e('0x26')]][_0x2791c5][_0x0a9e('0x56')]==_0x0a9e('0x5b')&&this[_0x0a9e('0x8')][_0x287324[_0x0a9e('0x26')]][_0x2791c5][_0x0a9e('0x12')]){logger['info']('[%s][voiceAgentReport][hangup]\x20destuniqueid:%s',_0x287324[_0x0a9e('0x26')],_0x2791c5);this['channels'][_0x287324[_0x0a9e('0x26')]][_0x2791c5]['agentcompleteAt']=moment()[_0x0a9e('0x33')]('YYYY-MM-DD\x20HH:mm:ss');}}}logger['debug'](_0x0a9e('0x7b'),_0x287324[_0x0a9e('0x26')],util['inspect'](_[_0x0a9e('0x7c')](this[_0x0a9e('0x8')][_0x287324[_0x0a9e('0x26')]]),{'showHidden':![],'depth':null}));ami[_0x0a9e('0x1d')](_0x0a9e('0x7d'),_['values'](this['channels'][_0x287324[_0x0a9e('0x26')]]));delete this[_0x0a9e('0x8')][_0x287324[_0x0a9e('0x26')]];}if(this[_0x0a9e('0xb')][_0x287324[_0x0a9e('0x26')]]){delete this['variables'][_0x287324[_0x0a9e('0x26')]];}}}catch(_0xadce3d){logger['error'](_0x0a9e('0x7e'),_0x287324[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0xadce3d,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0x0a9e('0x1c')][_0x0a9e('0x7f')]=function(_0x23b39e){try{if(this[_0x0a9e('0x1e')](_0x23b39e)){logger[_0x0a9e('0x23')](_0x0a9e('0x80'),_0x23b39e[_0x0a9e('0x26')],util['inspect'](_0x23b39e,{'showHidden':![],'depth':null}));if(this[_0x0a9e('0x8')][_0x23b39e[_0x0a9e('0x81')]]){for(var _0x2ada60 in this[_0x0a9e('0x8')][_0x23b39e[_0x0a9e('0x81')]]){if(this['channels'][_0x23b39e['transfereeuniqueid']][_0x0a9e('0x36')](_0x2ada60)){if(_0x23b39e[_0x0a9e('0x82')]===_0x2ada60){logger[_0x0a9e('0x20')](_0x0a9e('0x83'),_0x23b39e[_0x0a9e('0x26')],this['channels'][_0x23b39e[_0x0a9e('0x81')]][_0x2ada60][_0x0a9e('0x21')],_0x2ada60);var _0x3450ae=moment();this['channels'][_0x23b39e[_0x0a9e('0x81')]][_0x2ada60]['agentcomplete']=!![];this[_0x0a9e('0x8')][_0x23b39e['transfereeuniqueid']][_0x2ada60][_0x0a9e('0x59')]=moment()[_0x0a9e('0x33')](_0x0a9e('0x27'));this['channels'][_0x23b39e[_0x0a9e('0x81')]][_0x2ada60]['lastevent']=_0x0a9e('0x5a');this[_0x0a9e('0x8')][_0x23b39e[_0x0a9e('0x81')]][_0x2ada60][_0x0a9e('0x56')]=_0x0a9e('0x5b');this[_0x0a9e('0x8')][_0x23b39e[_0x0a9e('0x81')]][_0x2ada60][_0x0a9e('0x5d')]=_0x3450ae[_0x0a9e('0x84')](this[_0x0a9e('0x8')][_0x23b39e[_0x0a9e('0x81')]][_0x2ada60][_0x0a9e('0x37')],_0x0a9e('0x85'));}}}}if(this[_0x0a9e('0x8')][_0x23b39e[_0x0a9e('0x86')]]){var _0x248368=this['channels'][_0x23b39e['secondtransfereruniqueid']];this[_0x0a9e('0x8')][_0x23b39e['secondtransfereruniqueid']]=this[_0x0a9e('0x8')][_0x23b39e[_0x0a9e('0x81')]];this['channels'][_0x23b39e[_0x0a9e('0x81')]]=_0x248368;}}}catch(_0xe2b083){logger[_0x0a9e('0x50')](_0x0a9e('0x87'),_0x23b39e['uniqueid'],util[_0x0a9e('0x25')](_0xe2b083,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0x0a9e('0x1c')][_0x0a9e('0x1b')]=function(_0x34a791){try{if(this['isNotNull'](_0x34a791)){logger[_0x0a9e('0x23')](_0x0a9e('0x88'),_0x34a791[_0x0a9e('0x26')],util['inspect'](_0x34a791,{'showHidden':![],'depth':null}));if(this[_0x0a9e('0x8')][_0x34a791[_0x0a9e('0x81')]]){for(var _0x17b29d in this['channels'][_0x34a791[_0x0a9e('0x81')]]){if(this[_0x0a9e('0x8')][_0x34a791[_0x0a9e('0x81')]][_0x0a9e('0x36')](_0x17b29d)){if(_0x34a791[_0x0a9e('0x89')]===_0x17b29d){logger['info'](_0x0a9e('0x8a'),_0x34a791[_0x0a9e('0x26')],this['channels'][_0x34a791[_0x0a9e('0x81')]][_0x17b29d][_0x0a9e('0x21')],_0x17b29d);var _0x1f6f1c=moment();this['channels'][_0x34a791['transfereeuniqueid']][_0x17b29d]['agentcomplete']=!![];this[_0x0a9e('0x8')][_0x34a791[_0x0a9e('0x81')]][_0x17b29d]['agentcompleteAt']=_0x1f6f1c;this[_0x0a9e('0x8')][_0x34a791[_0x0a9e('0x81')]][_0x17b29d][_0x0a9e('0x3d')]='complete';this[_0x0a9e('0x8')][_0x34a791[_0x0a9e('0x81')]][_0x17b29d][_0x0a9e('0x56')]=_0x0a9e('0x5b');this[_0x0a9e('0x8')][_0x34a791[_0x0a9e('0x81')]][_0x17b29d][_0x0a9e('0x5d')]=_0x1f6f1c[_0x0a9e('0x84')](this[_0x0a9e('0x8')][_0x34a791['transfereeuniqueid']][_0x17b29d][_0x0a9e('0x37')],'seconds');}}}}}}catch(_0x138cf5){logger[_0x0a9e('0x50')](_0x0a9e('0x8b'),_0x34a791[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x138cf5,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0x0a9e('0x1c')]['syncMusicOnHoldStart']=function(_0x1a0314){var _0x33da81='';try{if(this[_0x0a9e('0x1e')](_0x1a0314)){logger[_0x0a9e('0x23')]('[%s][voiceAgentReport][musiconholdstart]\x20event:',_0x1a0314[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x1a0314,{'showHidden':![],'depth':null}));if(_0x1a0314[_0x0a9e('0x8c')]){_0x33da81=_0x1a0314[_0x0a9e('0x8c')][_0x0a9e('0x8d')](0x0,_0x1a0314[_0x0a9e('0x8c')][_0x0a9e('0x8e')]('-'));if(this[_0x0a9e('0xa')][_0x33da81]){logger[_0x0a9e('0x20')](_0x0a9e('0x8f'),_0x1a0314['uniqueid'],_0x33da81);this[_0x0a9e('0xa')][_0x33da81][_0x0a9e('0x90')]=!![];}}}}catch(_0x2ff265){logger[_0x0a9e('0x50')](_0x0a9e('0x91'),_0x1a0314[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x2ff265,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0x0a9e('0x1c')]['syncMusicOnHoldStop']=function(_0x3b581c){var _0xd2391='';try{if(this[_0x0a9e('0x1e')](_0x3b581c)){logger['debug'](_0x0a9e('0x92'),_0x3b581c[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x3b581c,{'showHidden':![],'depth':null}));if(_0x3b581c[_0x0a9e('0x8c')]){_0xd2391=_0x3b581c[_0x0a9e('0x8c')][_0x0a9e('0x8d')](0x0,_0x3b581c[_0x0a9e('0x8c')][_0x0a9e('0x8e')]('-'));if(this[_0x0a9e('0xa')][_0xd2391]){logger[_0x0a9e('0x20')]('[%s][voiceAgentReport][musiconholdstop]\x20interface:%s',_0x3b581c[_0x0a9e('0x26')],_0xd2391);this[_0x0a9e('0xa')][_0xd2391][_0x0a9e('0x90')]=![];}}}}catch(_0x3db98f){logger[_0x0a9e('0x50')](_0x0a9e('0x93'),_0x3b581c['uniqueid'],util[_0x0a9e('0x25')](_0x3db98f,{'showHidden':![],'depth':null}));}};module['exports']=VoiceAgentReport;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xad17=['ami','../rpc/setting','set','agi','NO\x20ANSWER','FAILED','ANSWERED','redis','defaults','localhost','socket.io-emitter','channels','agents','blindTransfers','coreshowchannel','syncNewExten','bind','newexten','newchannel','newstate','syncVarSet','hangup','syncHangup','newcallerid','syncNewCallerId','attendedtransfer','syncAttendedTransfer','blindtransfer','syncBlindTransfer','musiconholdstop','syncMusicOnHoldStop','info','actionCoreShowChannels','error','inspect','prototype','isNotNull','emit','[%s][voiceCallReport][newcallerid]\x20calleridname:%s\x20calleridnum:%s','uniqueid','calleridname','calleridnum','[%s][voiceCallReport][newcallerid]\x20event:','linkedid','isUndefined','merge','pick','keys','context','from-sip','channel','split','exten','xcally-motion-preview','destconnectedlinenum','connectedlinenum','format','user:%s','name','user:agentconnect','accountcode','[%s][voiceCallReport][newcallerid]','syncNewChannel','debug','[%s][voiceCallReport][newchannel]\x20event:','OutgoingSpoolFailed','disposition','toNumber','channelstate','[%s][voiceCallReport][newchannel]\x20sending\x20user:agentconnect\x20event:','[%s][voiceCallReport][newchannel]','[%s][voiceCallReport][newexten]\x20event:','application','toLowerCase','appdata','startsWith','CDR(routeAlias)','applicationdata','[%s][voiceCallReport][newexten]\x20application:%s\x20appdata:%s','starttime','duration','seconds','YYYY-MM-DD\x20HH:mm:ss','includes','match','queue','[%s][voiceCallReport][newexten]','syncNewState','[%s][voiceCallReport][newstate]\x20linkedid:%s\x20calleridname:%s\x20calleridnum:%s','[%s][voiceCallReport][newstate]\x20event:','answered','diff','connectedlinename','destinationchannel','UserId','membername','routealias','[%s][voiceCallReport][newstate]\x20sending\x20user:agentconnect\x20event:','[%s][voiceCallReport][newstate]','syncMixMonitorFilename','[%s][voiceCallReport][mixMonitorFilename]\x20monitorFilename:%s','monitor','endsWith','.wav49','monitorFilename','find','isNil','monitors','rec','[%s][voiceCallReport][mixMonitorFilename]','[%s][voiceCallReport][varset]\x20event:','variable','value','xmd-phone','xmd-callerid','[%s][voiceCallReport][varset]\x20variable:xmd-callerid\x20value:%s','callerid','xmd-cdrtype','[%s][voiceCallReport][varset]\x20variable:xmd-cdrtype\x20value:%s','xmd-queue','originatecalleridnum','xmd-destination','[%s][voiceCallReport][varset]\x20variable:xmd-destination\x20value:%s','destination','xmd-callerid-preview','[%s][voiceCallReport][varset]\x20variable:xmd-callerid-preview\x20value:%s','calleridpreview','[%s][voiceCallReport][varset]\x20variable:xmcs-queue\x20value:%s','sipcallid','mixmonitor_filename','[%s][voiceCallReport][varset]\x20variable:mixmonitor_filename\x20value:%s','sipcalllinkedid','[%s][voiceCallReport][varset]','[%s][voiceCallReport][hangup]\x20event:','cause-txt','endtime','answertime','holdtime','billableseconds','[%s][voiceCallReport][hangup]\x20sending\x20user:agentcomplete\x20event:','user:agentcomplete','length','resolve','then','transferType','undefined','getSettings','stopRecordingOnTransfer','Action','StopMixMonitor','catch','finally','event','BlindTransfer','type','outbound','[%s][voiceCallReport][hangup]','transfertargetcalleridnum','transfereeuniqueid','transfercalleridnum','origtransferercalleridnum','transferconnectedlinenum','secondtransfereruniqueid','transfertargetuniqueid','origtransfereruniqueid','origtransfererlinkedid','some','routeid','ATTENDED','[%s][voiceCallReport][attendedtransfer]','transfereecalleridnum','extension','[%s][voiceCallReport][blindtransfer]\x20event:','BLIND','[%s][voiceCallReport][blindtransfer]','[%s][voiceCallReport][musiconholdstart]\x20event:','mohstarttime','[%s][voiceCallReport][musiconholdstart]\x20mohstarttime:%s','[%s][voiceCallReport][musiconholdstop]\x20event:','mohtime','milliseconds','[%s][voiceCallReport][musiconholdstop]\x20mohtime:%s','[%s][voiceCallReport][musiconholdstop]','exports','lodash','moment','util','path','ioredis'];(function(_0x2fab28,_0x53524e){var _0x2c3cdf=function(_0x2cdeaf){while(--_0x2cdeaf){_0x2fab28['push'](_0x2fab28['shift']());}};_0x2c3cdf(++_0x53524e);}(_0xad17,0xb8));var _0x7ad1=function(_0x5b7e57,_0xc38d2a){_0x5b7e57=_0x5b7e57-0x0;var _0x5bfd74=_0xad17[_0x5b7e57];return _0x5bfd74;};'use strict';var _=require(_0x7ad1('0x0'));var moment=require(_0x7ad1('0x1'));var util=require(_0x7ad1('0x2'));var path=require(_0x7ad1('0x3'));var Redis=require(_0x7ad1('0x4'));var config=require('../../../config/environment');var logger=require('../../../config/logger')(_0x7ad1('0x5'));var ami=require('../ami');var Channel=require('../model/channel');var RpcSetting=require(_0x7ad1('0x6'));var applications=[_0x7ad1('0x7'),'queue',_0x7ad1('0x8'),'dial','playback','voicemail'];var dispositions=[_0x7ad1('0x9'),_0x7ad1('0xa'),_0x7ad1('0xa'),_0x7ad1('0x9'),_0x7ad1('0x9'),_0x7ad1('0x9'),_0x7ad1('0xb'),'BUSY',_0x7ad1('0xa'),_0x7ad1('0xa'),_0x7ad1('0xa')];config[_0x7ad1('0xc')]=_[_0x7ad1('0xd')](config[_0x7ad1('0xc')],{'host':_0x7ad1('0xe'),'port':0x18eb});var io=require(_0x7ad1('0xf'))(new Redis(config[_0x7ad1('0xc')]));function VoiceCallReport(_0x25d4aa){this[_0x7ad1('0x10')]=_0x25d4aa[_0x7ad1('0x10')];this['agents']=_0x25d4aa[_0x7ad1('0x11')];this[_0x7ad1('0x12')]={};ami['on'](_0x7ad1('0x13'),this[_0x7ad1('0x14')][_0x7ad1('0x15')](this));ami['on'](_0x7ad1('0x16'),this[_0x7ad1('0x14')][_0x7ad1('0x15')](this));ami['on'](_0x7ad1('0x17'),this['syncNewChannel'][_0x7ad1('0x15')](this));ami['on'](_0x7ad1('0x18'),this['syncNewState'][_0x7ad1('0x15')](this));ami['on']('varset',this[_0x7ad1('0x19')]['bind'](this));ami['on'](_0x7ad1('0x1a'),this[_0x7ad1('0x1b')][_0x7ad1('0x15')](this));ami['on'](_0x7ad1('0x1c'),this[_0x7ad1('0x1d')][_0x7ad1('0x15')](this));ami['on'](_0x7ad1('0x1e'),this[_0x7ad1('0x1f')][_0x7ad1('0x15')](this));ami['on'](_0x7ad1('0x20'),this[_0x7ad1('0x21')]['bind'](this));ami['on']('musiconholdstart',this['syncMusicOnHoldStart'][_0x7ad1('0x15')](this));ami['on'](_0x7ad1('0x22'),this[_0x7ad1('0x23')][_0x7ad1('0x15')](this));try{logger[_0x7ad1('0x24')]('[voiceCallReport][coreshowchannels]\x20started');ami[_0x7ad1('0x25')]();}catch(_0x4798fd){logger[_0x7ad1('0x26')]('[voiceCallReport][coreshowchannels]',util[_0x7ad1('0x27')](_0x4798fd,{'showHidden':![],'depth':null}));}}VoiceCallReport[_0x7ad1('0x28')][_0x7ad1('0x29')]=function(_0x194e0e){return _0x194e0e!==null&&!_['isUndefined'](_0x194e0e);};VoiceCallReport['prototype']['emit']=function(_0xfed64c,_0x238465,_0x2d4625){io['to'](_0xfed64c)[_0x7ad1('0x2a')](_0x238465,_0x2d4625);};VoiceCallReport[_0x7ad1('0x28')][_0x7ad1('0x1d')]=function(_0x104d44){try{if(this['isNotNull'](_0x104d44)){logger['info'](_0x7ad1('0x2b'),_0x104d44[_0x7ad1('0x2c')],_0x104d44[_0x7ad1('0x2d')],_0x104d44[_0x7ad1('0x2e')]);logger['debug'](_0x7ad1('0x2f'),_0x104d44[_0x7ad1('0x2c')],util[_0x7ad1('0x27')](_0x104d44,{'showHidden':![],'depth':null}));if(_0x104d44[_0x7ad1('0x2c')]===_0x104d44[_0x7ad1('0x30')]){if(!_[_0x7ad1('0x31')](this['channels'][_0x104d44['uniqueid']])){_[_0x7ad1('0x32')](this['channels'][_0x104d44[_0x7ad1('0x2c')]],_[_0x7ad1('0x33')](_0x104d44,_[_0x7ad1('0x34')](this[_0x7ad1('0x10')][_0x104d44['uniqueid']])));}}if(_0x104d44[_0x7ad1('0x35')]===_0x7ad1('0x36')){if(this[_0x7ad1('0x11')][_0x104d44[_0x7ad1('0x37')][_0x7ad1('0x38')]('-')[0x0]]){if(_0x104d44[_0x7ad1('0x39')]==_0x7ad1('0x3a')){this[_0x7ad1('0x11')][_0x104d44[_0x7ad1('0x37')][_0x7ad1('0x38')]('-')[0x0]][_0x7ad1('0x3b')]=_0x104d44[_0x7ad1('0x3c')];this[_0x7ad1('0x2a')](util[_0x7ad1('0x3d')](_0x7ad1('0x3e'),this[_0x7ad1('0x11')][_0x104d44[_0x7ad1('0x37')][_0x7ad1('0x38')]('-')[0x0]][_0x7ad1('0x3f')]),_0x7ad1('0x40'),{'destaccountcode':this[_0x7ad1('0x11')][_0x104d44[_0x7ad1('0x37')][_0x7ad1('0x38')]('-')[0x0]][_0x7ad1('0x41')],'destconnectedlinenum':_0x104d44[_0x7ad1('0x3c')]});}}}}}catch(_0xf37dca){logger[_0x7ad1('0x26')](_0x7ad1('0x42'),_0x104d44[_0x7ad1('0x2c')],util['inspect'](_0xf37dca,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x7ad1('0x28')][_0x7ad1('0x43')]=function(_0xf90c78){try{if(this[_0x7ad1('0x29')](_0xf90c78)){logger[_0x7ad1('0x44')](_0x7ad1('0x45'),_0xf90c78['uniqueid'],util[_0x7ad1('0x27')](_0xf90c78,{'showHidden':![],'depth':null}));if(_0xf90c78[_0x7ad1('0x2c')]===_0xf90c78['linkedid']&&_0xf90c78[_0x7ad1('0x37')]!=_0x7ad1('0x46')){if(_[_0x7ad1('0x31')](this[_0x7ad1('0x10')][_0xf90c78[_0x7ad1('0x2c')]])){logger['info']('[%s][voiceCallReport][newchannel]\x20context:%s\x20exten:%s',_0xf90c78[_0x7ad1('0x2c')],_0xf90c78[_0x7ad1('0x35')],_0xf90c78[_0x7ad1('0x39')]);this[_0x7ad1('0x10')][_0xf90c78[_0x7ad1('0x2c')]]=new Channel();this[_0x7ad1('0x10')][_0xf90c78[_0x7ad1('0x2c')]]['starttime']=moment()[_0x7ad1('0x3d')]('YYYY-MM-DD\x20HH:mm:ss');this['channels'][_0xf90c78[_0x7ad1('0x2c')]][_0x7ad1('0x47')]=dispositions[_[_0x7ad1('0x48')](_0xf90c78[_0x7ad1('0x49')])];_['merge'](this['channels'][_0xf90c78[_0x7ad1('0x2c')]],_[_0x7ad1('0x33')](_0xf90c78,_[_0x7ad1('0x34')](this['channels'][_0xf90c78[_0x7ad1('0x2c')]])));if(_0xf90c78[_0x7ad1('0x35')]==='from-sip'){if(this['agents'][_0xf90c78[_0x7ad1('0x37')][_0x7ad1('0x38')]('-')[0x0]]){if(_[_0x7ad1('0x31')](this[_0x7ad1('0x11')][_0xf90c78[_0x7ad1('0x37')][_0x7ad1('0x38')]('-')[0x0]][_0x7ad1('0x3b')])){this['agents'][_0xf90c78['channel'][_0x7ad1('0x38')]('-')[0x0]][_0x7ad1('0x3b')]=_0xf90c78['exten'];logger[_0x7ad1('0x44')](_0x7ad1('0x4a'),_0xf90c78[_0x7ad1('0x2c')],util['inspect']({'id':this[_0x7ad1('0x11')][_0xf90c78[_0x7ad1('0x37')][_0x7ad1('0x38')]('-')[0x0]]['id'],'destaccountcode':this[_0x7ad1('0x11')][_0xf90c78[_0x7ad1('0x37')][_0x7ad1('0x38')]('-')[0x0]][_0x7ad1('0x41')],'destconnectedlinenum':_0xf90c78[_0x7ad1('0x39')]},{'showHidden':![],'depth':null}));this[_0x7ad1('0x2a')](util[_0x7ad1('0x3d')](_0x7ad1('0x3e'),this['agents'][_0xf90c78[_0x7ad1('0x37')][_0x7ad1('0x38')]('-')[0x0]]['name']),_0x7ad1('0x40'),{'id':this[_0x7ad1('0x11')][_0xf90c78[_0x7ad1('0x37')][_0x7ad1('0x38')]('-')[0x0]]['id'],'destaccountcode':this['agents'][_0xf90c78[_0x7ad1('0x37')][_0x7ad1('0x38')]('-')[0x0]][_0x7ad1('0x41')],'destconnectedlinenum':_0xf90c78[_0x7ad1('0x39')]});}}}}}}}catch(_0x1a3b81){logger[_0x7ad1('0x26')](_0x7ad1('0x4b'),_0xf90c78[_0x7ad1('0x2c')],util['inspect'](_0x1a3b81,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x7ad1('0x28')][_0x7ad1('0x14')]=function(_0x4fa25c){try{if(this[_0x7ad1('0x29')](_0x4fa25c)){logger[_0x7ad1('0x44')](_0x7ad1('0x4c'),_0x4fa25c[_0x7ad1('0x2c')],util[_0x7ad1('0x27')](_0x4fa25c,{'showHidden':![],'depth':null}));if(_0x4fa25c[_0x7ad1('0x2c')]===_0x4fa25c[_0x7ad1('0x30')]&&_0x4fa25c[_0x7ad1('0x39')]!='h'&&_0x4fa25c['channel']!=_0x7ad1('0x46')){_0x4fa25c[_0x7ad1('0x4d')]=_0x4fa25c[_0x7ad1('0x4d')][_0x7ad1('0x4e')]();_0x4fa25c['applicationdata']=_0x4fa25c[_0x7ad1('0x4f')]&&_0x4fa25c[_0x7ad1('0x4f')][_0x7ad1('0x50')](_0x7ad1('0x51'))?_0x4fa25c['appdata']:(_0x4fa25c['appdata']||_0x4fa25c[_0x7ad1('0x52')])['toLowerCase']();logger['info'](_0x7ad1('0x53'),_0x4fa25c[_0x7ad1('0x2c')],_0x4fa25c['application'],_0x4fa25c[_0x7ad1('0x52')]);if(_[_0x7ad1('0x31')](this[_0x7ad1('0x10')][_0x4fa25c[_0x7ad1('0x2c')]])){this['channels'][_0x4fa25c[_0x7ad1('0x2c')]]=new Channel();this['channels'][_0x4fa25c['uniqueid']][_0x7ad1('0x54')]=_0x4fa25c[_0x7ad1('0x55')]?moment()['subtract'](moment[_0x7ad1('0x55')](_0x4fa25c[_0x7ad1('0x55')])[_0x7ad1('0x56')](),_0x7ad1('0x56'))[_0x7ad1('0x3d')](_0x7ad1('0x57')):moment()['format']('YYYY-MM-DD\x20HH:mm:ss');this[_0x7ad1('0x10')][_0x4fa25c[_0x7ad1('0x2c')]][_0x7ad1('0x47')]=_0x7ad1('0x9');}_[_0x7ad1('0x32')](this[_0x7ad1('0x10')][_0x4fa25c[_0x7ad1('0x2c')]],_[_0x7ad1('0x33')](_0x4fa25c,_[_0x7ad1('0x34')](this['channels'][_0x4fa25c[_0x7ad1('0x2c')]])));if(_[_0x7ad1('0x58')](applications,_0x4fa25c[_0x7ad1('0x4d')])){this['channels'][_0x4fa25c['uniqueid']]['lastapplication']=_0x4fa25c[_0x7ad1('0x4d')];this[_0x7ad1('0x10')][_0x4fa25c[_0x7ad1('0x2c')]]['lastdata']=_0x4fa25c['applicationdata'];if(_0x4fa25c['application']==='set'&&_[_0x7ad1('0x50')](_0x4fa25c[_0x7ad1('0x52')][_0x7ad1('0x4e')](),'cdr(')){var _0x21bae7=_0x4fa25c['applicationdata'][_0x7ad1('0x38')]('=');var _0x3007be=_0x21bae7[0x0][_0x7ad1('0x4e')]()[_0x7ad1('0x59')](/cdr\((.*)\)/);if(_0x3007be){this['channels'][_0x4fa25c['uniqueid']][_0x3007be[0x1]]=_0x21bae7[0x1];}}else if(_0x4fa25c[_0x7ad1('0x4d')]===_0x7ad1('0x5a')){this['channels'][_0x4fa25c[_0x7ad1('0x2c')]]['queue']=_0x4fa25c[_0x7ad1('0x52')][_0x7ad1('0x38')](',')[0x0];}}}}}catch(_0x46d061){logger[_0x7ad1('0x26')](_0x7ad1('0x5b'),_0x4fa25c[_0x7ad1('0x2c')],util['inspect'](_0x46d061,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x7ad1('0x28')][_0x7ad1('0x5c')]=function(_0x3bc7fb){try{if(this[_0x7ad1('0x29')](_0x3bc7fb)){logger[_0x7ad1('0x24')](_0x7ad1('0x5d'),_0x3bc7fb[_0x7ad1('0x2c')],_0x3bc7fb[_0x7ad1('0x30')],_0x3bc7fb[_0x7ad1('0x2d')],_0x3bc7fb['calleridnum']);logger[_0x7ad1('0x44')](_0x7ad1('0x5e'),_0x3bc7fb['uniqueid'],util[_0x7ad1('0x27')](_0x3bc7fb,{'showHidden':![],'depth':null}));if(_0x3bc7fb[_0x7ad1('0x2c')]!==_0x3bc7fb['linkedid']){if(this[_0x7ad1('0x10')][_0x3bc7fb['linkedid']]){if(_0x3bc7fb[_0x7ad1('0x49')]==='6'){if(!this[_0x7ad1('0x10')][_0x3bc7fb['linkedid']][_0x7ad1('0x5f')]){var _0x524b1b=moment();this[_0x7ad1('0x10')][_0x3bc7fb[_0x7ad1('0x30')]]['answered']=!![];this[_0x7ad1('0x10')][_0x3bc7fb[_0x7ad1('0x30')]]['answertime']=_0x524b1b[_0x7ad1('0x3d')](_0x7ad1('0x57'));if(this[_0x7ad1('0x10')][_0x3bc7fb[_0x7ad1('0x30')]][_0x7ad1('0x54')]){this[_0x7ad1('0x10')][_0x3bc7fb[_0x7ad1('0x30')]]['holdtime']=_0x524b1b[_0x7ad1('0x60')](this[_0x7ad1('0x10')][_0x3bc7fb[_0x7ad1('0x30')]]['starttime'],'seconds');}}this['channels'][_0x3bc7fb['linkedid']][_0x7ad1('0x30')]=_0x3bc7fb[_0x7ad1('0x2c')];if(_0x3bc7fb[_0x7ad1('0x2e')]!==_0x7ad1('0x3a')){this['channels'][_0x3bc7fb[_0x7ad1('0x30')]][_0x7ad1('0x3c')]=_0x3bc7fb[_0x7ad1('0x2e')];}this[_0x7ad1('0x10')][_0x3bc7fb['linkedid']][_0x7ad1('0x61')]=_0x3bc7fb[_0x7ad1('0x2d')];this['channels'][_0x3bc7fb[_0x7ad1('0x30')]][_0x7ad1('0x62')]=_0x3bc7fb[_0x7ad1('0x37')];this[_0x7ad1('0x10')][_0x3bc7fb[_0x7ad1('0x30')]]['disposition']=dispositions[_[_0x7ad1('0x48')](_0x3bc7fb[_0x7ad1('0x49')])];if(this[_0x7ad1('0x11')][_0x3bc7fb[_0x7ad1('0x37')][_0x7ad1('0x38')]('-')[0x0]]){this[_0x7ad1('0x10')][_0x3bc7fb[_0x7ad1('0x30')]][_0x7ad1('0x63')]=this['agents'][_0x3bc7fb[_0x7ad1('0x37')][_0x7ad1('0x38')]('-')[0x0]]['id'];this[_0x7ad1('0x10')][_0x3bc7fb[_0x7ad1('0x30')]][_0x7ad1('0x64')]=this[_0x7ad1('0x11')][_0x3bc7fb[_0x7ad1('0x37')]['split']('-')[0x0]][_0x7ad1('0x3f')];}}}}else{if(this[_0x7ad1('0x10')][_0x3bc7fb[_0x7ad1('0x2c')]]){if(_0x3bc7fb[_0x7ad1('0x49')]==='6'){if(this['agents'][_0x3bc7fb[_0x7ad1('0x37')][_0x7ad1('0x38')]('-')[0x0]]){this[_0x7ad1('0x10')][_0x3bc7fb['uniqueid']][_0x7ad1('0x63')]=this[_0x7ad1('0x11')][_0x3bc7fb[_0x7ad1('0x37')][_0x7ad1('0x38')]('-')[0x0]]['id'];this['channels'][_0x3bc7fb['uniqueid']]['membername']=this[_0x7ad1('0x11')][_0x3bc7fb[_0x7ad1('0x37')][_0x7ad1('0x38')]('-')[0x0]][_0x7ad1('0x3f')];}}}}if(_0x3bc7fb[_0x7ad1('0x49')]==='6'&&_0x3bc7fb[_0x7ad1('0x35')]===_0x7ad1('0x36')){if(this['agents'][_0x3bc7fb[_0x7ad1('0x37')]['split']('-')[0x0]]){this[_0x7ad1('0x11')][_0x3bc7fb[_0x7ad1('0x37')][_0x7ad1('0x38')]('-')[0x0]][_0x7ad1('0x3b')]=_0x3bc7fb[_0x7ad1('0x39')];var _0x5b417f,_0xe37ec7;if(this[_0x7ad1('0x10')][_0x3bc7fb['uniqueid']]){_0x5b417f=this[_0x7ad1('0x10')][_0x3bc7fb[_0x7ad1('0x2c')]]['routealias'];_0xe37ec7=this[_0x7ad1('0x10')][_0x3bc7fb[_0x7ad1('0x2c')]][_0x7ad1('0x5a')];}else if(this[_0x7ad1('0x10')][_0x3bc7fb[_0x7ad1('0x30')]]){_0x5b417f=this[_0x7ad1('0x10')][_0x3bc7fb[_0x7ad1('0x30')]][_0x7ad1('0x65')];_0xe37ec7=this[_0x7ad1('0x10')][_0x3bc7fb[_0x7ad1('0x30')]]['queue'];}logger[_0x7ad1('0x44')](_0x7ad1('0x66'),_0x3bc7fb['uniqueid'],util['inspect']({'id':this[_0x7ad1('0x11')][_0x3bc7fb[_0x7ad1('0x37')][_0x7ad1('0x38')]('-')[0x0]]['id'],'destaccountcode':this['agents'][_0x3bc7fb['channel'][_0x7ad1('0x38')]('-')[0x0]][_0x7ad1('0x41')],'destconnectedlinenum':_0x3bc7fb[_0x7ad1('0x39')],'routealias':_0x5b417f,'queue':_0xe37ec7||undefined},{'showHidden':![],'depth':null}));this[_0x7ad1('0x2a')](util[_0x7ad1('0x3d')](_0x7ad1('0x3e'),this['agents'][_0x3bc7fb[_0x7ad1('0x37')]['split']('-')[0x0]][_0x7ad1('0x3f')]),'user:agentconnect',{'id':this['agents'][_0x3bc7fb[_0x7ad1('0x37')][_0x7ad1('0x38')]('-')[0x0]]['id'],'agentconnected':!![],'destaccountcode':this['agents'][_0x3bc7fb['channel']['split']('-')[0x0]][_0x7ad1('0x41')],'destconnectedlinenum':_0x3bc7fb[_0x7ad1('0x39')],'routealias':_0x5b417f,'queue':_0xe37ec7||undefined});}}}}catch(_0x20e4b7){logger[_0x7ad1('0x26')](_0x7ad1('0x67'),_0x3bc7fb[_0x7ad1('0x2c')],util[_0x7ad1('0x27')](_0x20e4b7,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x7ad1('0x28')][_0x7ad1('0x68')]=function(_0x37a89f,_0x1e6fb0){try{if(this['channels'][_0x37a89f]){logger[_0x7ad1('0x24')](_0x7ad1('0x69'),_0x37a89f,_0x1e6fb0);this[_0x7ad1('0x10')][_0x37a89f][_0x7ad1('0x6a')]=!![];if(_[_0x7ad1('0x6b')](_0x1e6fb0,'.wav49')){_0x1e6fb0=_0x1e6fb0['replace'](_0x7ad1('0x6c'),'.WAV');}this[_0x7ad1('0x10')][_0x37a89f][_0x7ad1('0x6d')]=_0x1e6fb0;var _0x58dcd1=_[_0x7ad1('0x6e')](this[_0x7ad1('0x10')][_0x37a89f]['monitors'],{'filename':_0x1e6fb0});if(_[_0x7ad1('0x6f')](_0x58dcd1)){this['channels'][_0x37a89f][_0x7ad1('0x70')]['push']({'filename':_0x1e6fb0,'createdAt':moment()[_0x7ad1('0x3d')]('YYYY-MM-DD\x20HH:mm:ss'),'mixmonitorid':'','status':_0x7ad1('0x71')});}}}catch(_0x3a7326){logger[_0x7ad1('0x26')](_0x7ad1('0x72'),_0x37a89f,util['inspect'](_0x3a7326,{'showHidden':![],'depth':null}));}};VoiceCallReport['prototype'][_0x7ad1('0x19')]=function(_0x4dfdb5){try{if(this[_0x7ad1('0x29')](_0x4dfdb5)){logger['debug'](_0x7ad1('0x73'),_0x4dfdb5[_0x7ad1('0x2c')],util[_0x7ad1('0x27')](_0x4dfdb5,{'showHidden':![],'depth':null}));if(this['channels'][_0x4dfdb5[_0x7ad1('0x2c')]]&&_0x4dfdb5[_0x7ad1('0x37')]!=_0x7ad1('0x46')){if(this[_0x7ad1('0x29')](_0x4dfdb5[_0x7ad1('0x74')])){if(this['isNotNull'](_0x4dfdb5[_0x7ad1('0x74')]['mixmonitor_filename'])){logger['info']('[%s][voiceCallReport][varset]\x20variable:mixmonitor_filename\x20value:%s',_0x4dfdb5[_0x7ad1('0x2c')],_0x4dfdb5[_0x7ad1('0x75')]);this[_0x7ad1('0x68')](_0x4dfdb5[_0x7ad1('0x2c')],_0x4dfdb5[_0x7ad1('0x75')]);}else if(this['isNotNull'](_0x4dfdb5[_0x7ad1('0x74')][_0x7ad1('0x76')])){logger[_0x7ad1('0x24')]('[%s][voiceCallReport][varset]\x20variable:xmd-phone\x20value:%s',_0x4dfdb5[_0x7ad1('0x2c')],_0x4dfdb5[_0x7ad1('0x75')]);this[_0x7ad1('0x10')][_0x4dfdb5['uniqueid']][_0x7ad1('0x2e')]=_0x4dfdb5[_0x7ad1('0x75')];}else if(this[_0x7ad1('0x29')](_0x4dfdb5['variable'][_0x7ad1('0x77')])){logger[_0x7ad1('0x24')](_0x7ad1('0x78'),_0x4dfdb5['uniqueid'],_0x4dfdb5[_0x7ad1('0x75')]);this[_0x7ad1('0x10')][_0x4dfdb5[_0x7ad1('0x2c')]][_0x7ad1('0x79')]=_0x4dfdb5[_0x7ad1('0x75')];}else if(this[_0x7ad1('0x29')](_0x4dfdb5[_0x7ad1('0x74')][_0x7ad1('0x7a')])){logger[_0x7ad1('0x24')](_0x7ad1('0x7b'),_0x4dfdb5[_0x7ad1('0x2c')],_0x4dfdb5[_0x7ad1('0x75')]);this[_0x7ad1('0x10')][_0x4dfdb5[_0x7ad1('0x2c')]]['type']=_0x4dfdb5['value'];}else if(this['isNotNull'](_0x4dfdb5[_0x7ad1('0x74')][_0x7ad1('0x7c')])){logger[_0x7ad1('0x24')]('[%s][voiceCallReport][varset]\x20variable:xmd-queue\x20value:%s',_0x4dfdb5['uniqueid'],_0x4dfdb5[_0x7ad1('0x75')][_0x7ad1('0x38')](',')[0x0]);this[_0x7ad1('0x10')][_0x4dfdb5[_0x7ad1('0x2c')]][_0x7ad1('0x5a')]=_0x4dfdb5['value'][_0x7ad1('0x38')](',')[0x0];}else if(this[_0x7ad1('0x29')](_0x4dfdb5[_0x7ad1('0x74')]['xmd-originatecalleridnum'])){logger[_0x7ad1('0x24')]('[%s][voiceCallReport][varset]\x20variable:xmd-originatecalleridnum\x20value:%s',_0x4dfdb5[_0x7ad1('0x2c')],_0x4dfdb5[_0x7ad1('0x75')]);this[_0x7ad1('0x10')][_0x4dfdb5['uniqueid']][_0x7ad1('0x7d')]=_0x4dfdb5[_0x7ad1('0x75')];}else if(this[_0x7ad1('0x29')](_0x4dfdb5[_0x7ad1('0x74')][_0x7ad1('0x7e')])){logger['info'](_0x7ad1('0x7f'),_0x4dfdb5['uniqueid'],_0x4dfdb5[_0x7ad1('0x75')]);this[_0x7ad1('0x10')][_0x4dfdb5[_0x7ad1('0x2c')]][_0x7ad1('0x80')]=_0x4dfdb5['value'];}else if(this[_0x7ad1('0x29')](_0x4dfdb5['variable'][_0x7ad1('0x81')])){logger[_0x7ad1('0x24')](_0x7ad1('0x82'),_0x4dfdb5['uniqueid'],_0x4dfdb5[_0x7ad1('0x75')]);this[_0x7ad1('0x10')][_0x4dfdb5[_0x7ad1('0x2c')]][_0x7ad1('0x83')]=_0x4dfdb5[_0x7ad1('0x75')];}else if(this['isNotNull'](_0x4dfdb5[_0x7ad1('0x74')]['xmcs-queue'])){logger[_0x7ad1('0x24')](_0x7ad1('0x84'),_0x4dfdb5[_0x7ad1('0x2c')],_0x4dfdb5[_0x7ad1('0x75')]);this[_0x7ad1('0x10')][_0x4dfdb5[_0x7ad1('0x2c')]][_0x7ad1('0x5a')]=_0x4dfdb5['value'];}else if(this[_0x7ad1('0x29')](_0x4dfdb5['variable'][_0x7ad1('0x85')])){logger[_0x7ad1('0x24')]('[%s][voiceCallReport][varset]\x20variable:sipcallid\x20value:%s',_0x4dfdb5['uniqueid'],_0x4dfdb5[_0x7ad1('0x75')]);this[_0x7ad1('0x10')][_0x4dfdb5['uniqueid']]['sipcalluniqueid']=_0x4dfdb5[_0x7ad1('0x75')];}}}else if(this[_0x7ad1('0x29')](_0x4dfdb5[_0x7ad1('0x74')][_0x7ad1('0x86')])){if(_0x4dfdb5[_0x7ad1('0x75')]){var _0x2a5a2a=path['parse'](_0x4dfdb5[_0x7ad1('0x75')])[_0x7ad1('0x3f')];logger[_0x7ad1('0x24')](_0x7ad1('0x87'),_0x2a5a2a,_0x4dfdb5['value']);this[_0x7ad1('0x68')](_0x2a5a2a,_0x4dfdb5['value']);}}else if(this[_0x7ad1('0x10')][_0x4dfdb5[_0x7ad1('0x30')]]){if(this[_0x7ad1('0x29')](_0x4dfdb5[_0x7ad1('0x74')])){if(this[_0x7ad1('0x29')](_0x4dfdb5[_0x7ad1('0x74')][_0x7ad1('0x85')])){logger[_0x7ad1('0x24')]('[%s][voiceCallReport][varset]\x20variable:sipcallid\x20value:%s',_0x4dfdb5[_0x7ad1('0x30')],_0x4dfdb5[_0x7ad1('0x75')]);this['channels'][_0x4dfdb5[_0x7ad1('0x30')]][_0x7ad1('0x88')]=_0x4dfdb5[_0x7ad1('0x75')];}}}}}catch(_0x52bddc){logger[_0x7ad1('0x26')](_0x7ad1('0x89'),_0x4dfdb5['uniqueid'],util[_0x7ad1('0x27')](_0x52bddc,{'showHidden':![],'depth':null}));}};VoiceCallReport['prototype'][_0x7ad1('0x1b')]=function(_0x53e65a){try{if(this[_0x7ad1('0x29')](_0x53e65a)){logger[_0x7ad1('0x44')](_0x7ad1('0x8a'),_0x53e65a['uniqueid'],util[_0x7ad1('0x27')](_0x53e65a,{'showHidden':![],'depth':null}));if(this[_0x7ad1('0x10')][_0x53e65a[_0x7ad1('0x2c')]]){logger[_0x7ad1('0x24')]('[%s][voiceCallReport][hangup]\x20reason:%s',_0x53e65a[_0x7ad1('0x2c')],_0x53e65a[_0x7ad1('0x8b')]);var _0xf1605c=moment();this[_0x7ad1('0x10')][_0x53e65a[_0x7ad1('0x2c')]][_0x7ad1('0x8c')]=_0xf1605c[_0x7ad1('0x3d')](_0x7ad1('0x57'));this[_0x7ad1('0x10')][_0x53e65a['uniqueid']]['duration']=_0xf1605c[_0x7ad1('0x60')](this[_0x7ad1('0x10')][_0x53e65a[_0x7ad1('0x2c')]][_0x7ad1('0x54')],'seconds');if(this[_0x7ad1('0x10')][_0x53e65a[_0x7ad1('0x2c')]]['answered']){this['channels'][_0x53e65a['uniqueid']]['billableseconds']=_0xf1605c[_0x7ad1('0x60')](this['channels'][_0x53e65a[_0x7ad1('0x2c')]][_0x7ad1('0x8d')],_0x7ad1('0x56'));this[_0x7ad1('0x10')][_0x53e65a['uniqueid']][_0x7ad1('0x8e')]=this[_0x7ad1('0x10')][_0x53e65a[_0x7ad1('0x2c')]][_0x7ad1('0x55')]-this[_0x7ad1('0x10')][_0x53e65a[_0x7ad1('0x2c')]][_0x7ad1('0x8f')];}if(_0x53e65a[_0x7ad1('0x35')]===_0x7ad1('0x36')){if(this[_0x7ad1('0x11')][_0x53e65a[_0x7ad1('0x37')][_0x7ad1('0x38')]('-')[0x0]]){this['agents'][_0x53e65a['channel']['split']('-')[0x0]]=_['omit'](this[_0x7ad1('0x11')][_0x53e65a[_0x7ad1('0x37')]['split']('-')[0x0]],[_0x7ad1('0x3b')]);logger['debug'](_0x7ad1('0x90'),_0x53e65a['uniqueid'],util[_0x7ad1('0x27')]({'id':this[_0x7ad1('0x11')][_0x53e65a[_0x7ad1('0x37')][_0x7ad1('0x38')]('-')[0x0]]['id'],'destaccountcode':this['agents'][_0x53e65a[_0x7ad1('0x37')]['split']('-')[0x0]][_0x7ad1('0x41')]},{'showHidden':![],'depth':null}));this[_0x7ad1('0x2a')](util[_0x7ad1('0x3d')](_0x7ad1('0x3e'),this[_0x7ad1('0x11')][_0x53e65a['channel'][_0x7ad1('0x38')]('-')[0x0]]['name']),_0x7ad1('0x91'),{'id':this[_0x7ad1('0x11')][_0x53e65a[_0x7ad1('0x37')]['split']('-')[0x0]]['id'],'destaccountcode':this[_0x7ad1('0x11')][_0x53e65a[_0x7ad1('0x37')][_0x7ad1('0x38')]('-')[0x0]][_0x7ad1('0x41')]});for(var _0x442855=0x0;_0x442855<Object[_0x7ad1('0x34')](this[_0x7ad1('0x11')])[_0x7ad1('0x92')];_0x442855++){var _0x54ff1c=Object[_0x7ad1('0x34')](this[_0x7ad1('0x11')])[_0x442855];var _0x2121f3=this[_0x7ad1('0x11')][_0x54ff1c];if(_0x2121f3[_0x7ad1('0x41')]===Number(_0x53e65a[_0x7ad1('0x3c')])){this[_0x7ad1('0x2a')](util[_0x7ad1('0x3d')](_0x7ad1('0x3e'),_0x2121f3[_0x7ad1('0x3f')]),_0x7ad1('0x91'),{'id':_0x2121f3['id'],'destaccountcode':_0x2121f3['accountcode']});break;}}}}var _0x30aacf=this;Promise[_0x7ad1('0x93')]()[_0x7ad1('0x94')](function(){var _0x3a0766=_0x30aacf[_0x7ad1('0x10')][_0x53e65a['uniqueid']];if(typeof _0x3a0766[_0x7ad1('0x95')]===_0x7ad1('0x96'))return;if(_['isEmpty'](_0x3a0766['monitors']))return;return RpcSetting[_0x7ad1('0x97')]()[_0x7ad1('0x94')](function(_0x2da01c){if(!_0x2da01c[_0x7ad1('0x98')])return;return Promise[_0x7ad1('0x93')]()[_0x7ad1('0x94')](function(){return ami[_0x7ad1('0x99')]({'action':_0x7ad1('0x9a'),'channel':_0x3a0766[_0x7ad1('0x37')]})[_0x7ad1('0x9b')](function(){});})['then'](function(){return ami[_0x7ad1('0x99')]({'action':_0x7ad1('0x9a'),'channel':_0x3a0766[_0x7ad1('0x62')]})[_0x7ad1('0x9b')](function(){})[_0x7ad1('0x9c')](function(){var _0x776134=_0x30aacf['agents'][_0x3a0766[_0x7ad1('0x62')][_0x7ad1('0x38')]('-')[0x0]];if(!_0x776134)return;io[_0x7ad1('0x2a')]('webbar:stopmonitors',{'agentId':_0x776134['id'],'uniqueid':_0x3a0766[_0x7ad1('0x2c')]});});});});})[_0x7ad1('0x94')](function(){if(_0x53e65a[_0x7ad1('0x9d')]===_0x7ad1('0x9e')){_0x30aacf['blindTransfers'][_0x53e65a['uniqueid']]=_0x30aacf[_0x7ad1('0x10')][_0x53e65a[_0x7ad1('0x2c')]];}else{if(_0x30aacf['channels'][_0x53e65a[_0x7ad1('0x2c')]][_0x7ad1('0x9f')]===_0x7ad1('0xa0')&&_0x30aacf[_0x7ad1('0x12')][_0x53e65a['uniqueid']]){_0x30aacf['channels'][_0x53e65a[_0x7ad1('0x2c')]][_0x7ad1('0x2c')]=[_0x30aacf[_0x7ad1('0x10')][_0x53e65a['uniqueid']]['linkedid'],_0x30aacf['channels'][_0x53e65a[_0x7ad1('0x2c')]][_0x7ad1('0x30')]=_0x30aacf['channels'][_0x53e65a[_0x7ad1('0x2c')]]['uniqueid']][0x0];delete _0x30aacf[_0x7ad1('0x12')][_0x53e65a[_0x7ad1('0x2c')]];}}logger[_0x7ad1('0x44')]('[%s][voiceCallReport][hangup]\x20sending\x20hangup\x20event:',_0x53e65a[_0x7ad1('0x2c')],util[_0x7ad1('0x27')](_0x30aacf[_0x7ad1('0x10')][_0x53e65a[_0x7ad1('0x2c')]],{'showHidden':![],'depth':null}));ami['emit']('custom:voiceCallReport',_0x30aacf[_0x7ad1('0x10')][_0x53e65a['uniqueid']]);delete _0x30aacf['channels'][_0x53e65a['uniqueid']];});}}}catch(_0x30960b){logger[_0x7ad1('0x26')](_0x7ad1('0xa1'),_0x53e65a[_0x7ad1('0x2c')],util['inspect'](_0x30960b,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x7ad1('0x28')][_0x7ad1('0x1f')]=function(_0x4417a3){try{if(this[_0x7ad1('0x29')](_0x4417a3)){logger[_0x7ad1('0x24')]('[%s][voiceCallReport][attendedtransfer]\x20transfercalleridnum:%s\x20transferconnectedlinenum:%s',_0x4417a3[_0x7ad1('0x2c')],_0x4417a3['origtransferercalleridnum'],_0x4417a3[_0x7ad1('0xa2')]);logger['debug']('[%s][voiceCallReport][attendedtransfer]\x20event:',_0x4417a3[_0x7ad1('0x2c')],util['inspect'](_0x4417a3,{'showHidden':![],'depth':null}));var _0x51f21b;if(this['channels'][_0x4417a3[_0x7ad1('0xa3')]]){this[_0x7ad1('0x10')][_0x4417a3[_0x7ad1('0xa3')]][_0x7ad1('0xa4')]=_0x4417a3[_0x7ad1('0xa5')];this[_0x7ad1('0x10')][_0x4417a3[_0x7ad1('0xa3')]][_0x7ad1('0xa6')]=_0x4417a3[_0x7ad1('0xa2')];if(this[_0x7ad1('0x10')][_0x4417a3['secondtransfereruniqueid']]){_0x51f21b=this[_0x7ad1('0x10')][_0x4417a3[_0x7ad1('0xa7')]];this['channels'][_0x4417a3[_0x7ad1('0xa7')]]=this[_0x7ad1('0x10')][_0x4417a3[_0x7ad1('0xa3')]];this[_0x7ad1('0x10')][_0x4417a3[_0x7ad1('0xa3')]]=_0x51f21b;}}else if(this[_0x7ad1('0x10')][_0x4417a3[_0x7ad1('0xa8')]]){this[_0x7ad1('0x10')][_0x4417a3['transfertargetuniqueid']]['transfercalleridnum']=_0x4417a3[_0x7ad1('0xa5')];this[_0x7ad1('0x10')][_0x4417a3['transfertargetuniqueid']][_0x7ad1('0xa6')]=_0x4417a3[_0x7ad1('0xa2')];if(this['channels'][_0x4417a3[_0x7ad1('0xa9')]]){_0x51f21b=this[_0x7ad1('0x10')][_0x4417a3[_0x7ad1('0xa9')]];this[_0x7ad1('0x10')][_0x4417a3[_0x7ad1('0xa9')]]=this[_0x7ad1('0x10')][_0x4417a3[_0x7ad1('0xa8')]];this['channels'][_0x4417a3[_0x7ad1('0xa8')]]=_0x51f21b;}}if((this[_0x7ad1('0x10')][_0x4417a3[_0x7ad1('0xa9')]]||this[_0x7ad1('0x10')][_0x4417a3[_0x7ad1('0xaa')]])&&this['channels'][_0x4417a3[_0x7ad1('0xa7')]]){var _0x73eef1=_[_0x7ad1('0xab')]([this[_0x7ad1('0x10')][_0x4417a3[_0x7ad1('0xa9')]],this[_0x7ad1('0x10')][_0x4417a3[_0x7ad1('0xaa')]],this[_0x7ad1('0x10')][_0x4417a3[_0x7ad1('0xa7')]]],function(_0x2035fb){return _0x2035fb&&_0x2035fb['type']===_0x7ad1('0xa0')&&_0x2035fb[_0x7ad1('0xac')];});if(_0x73eef1){if(this['channels'][_0x4417a3[_0x7ad1('0xa9')]])this[_0x7ad1('0x10')][_0x4417a3[_0x7ad1('0xa9')]][_0x7ad1('0x95')]=_0x7ad1('0xad');if(this['channels'][_0x4417a3['origtransfererlinkedid']])this[_0x7ad1('0x10')][_0x4417a3[_0x7ad1('0xaa')]][_0x7ad1('0x95')]=_0x7ad1('0xad');this[_0x7ad1('0x10')][_0x4417a3[_0x7ad1('0xa7')]]['transferType']=_0x7ad1('0xad');}}}}catch(_0x15ed3c){logger['error'](_0x7ad1('0xae'),_0x4417a3[_0x7ad1('0x2c')],util['inspect'](_0x15ed3c,{'showHidden':![],'depth':null}));}};VoiceCallReport['prototype'][_0x7ad1('0x21')]=function(_0x1fc6fa){try{if(this[_0x7ad1('0x29')](_0x1fc6fa)){logger[_0x7ad1('0x24')]('[%s][voiceCallReport][blindtransfer]\x20transfercalleridnum:%s\x20transferconnectedlinenum:%s',_0x1fc6fa[_0x7ad1('0x2c')],_0x1fc6fa[_0x7ad1('0xaf')],_0x1fc6fa[_0x7ad1('0xb0')]);logger[_0x7ad1('0x44')](_0x7ad1('0xb1'),_0x1fc6fa[_0x7ad1('0x2c')],util[_0x7ad1('0x27')](_0x1fc6fa,{'showHidden':![],'depth':null}));if(this[_0x7ad1('0x10')][_0x1fc6fa[_0x7ad1('0xa3')]]){this['channels'][_0x1fc6fa[_0x7ad1('0xa3')]][_0x7ad1('0xa4')]=_0x1fc6fa['transfereecalleridnum'];this[_0x7ad1('0x10')][_0x1fc6fa['transfereeuniqueid']][_0x7ad1('0xa6')]=_0x1fc6fa['extension'];this[_0x7ad1('0x10')][_0x1fc6fa[_0x7ad1('0xa3')]][_0x7ad1('0x95')]=_0x7ad1('0xb2');this[_0x7ad1('0x1b')]({'event':_0x7ad1('0x9e'),'uniqueid':_0x1fc6fa[_0x7ad1('0xa3')],'context':_0x1fc6fa[_0x7ad1('0x35')],'channel':_0x1fc6fa['transfererchannel']});}else{this[_0x7ad1('0x10')][_0x1fc6fa['transfereruniqueid']][_0x7ad1('0x95')]=_0x7ad1('0xb2');}}}catch(_0x322fdb){logger[_0x7ad1('0x26')](_0x7ad1('0xb3'),_0x1fc6fa[_0x7ad1('0x2c')],util[_0x7ad1('0x27')](_0x322fdb,{'showHidden':![],'depth':null}));}};VoiceCallReport['prototype']['syncMusicOnHoldStart']=function(_0x4d4e52){try{if(this[_0x7ad1('0x29')](_0x4d4e52)){logger[_0x7ad1('0x44')](_0x7ad1('0xb4'),_0x4d4e52[_0x7ad1('0x2c')],util['inspect'](_0x4d4e52,{'showHidden':![],'depth':null}));if(this[_0x7ad1('0x10')][_0x4d4e52[_0x7ad1('0x2c')]]){if(!_[_0x7ad1('0x6f')](this[_0x7ad1('0x10')][_0x4d4e52[_0x7ad1('0x2c')]][_0x7ad1('0x8d')])){this['channels'][_0x4d4e52[_0x7ad1('0x2c')]][_0x7ad1('0xb5')]=moment()[_0x7ad1('0x3d')](_0x7ad1('0x57'));logger['info'](_0x7ad1('0xb6'),_0x4d4e52['uniqueid'],this[_0x7ad1('0x10')][_0x4d4e52[_0x7ad1('0x2c')]][_0x7ad1('0xb5')]);}}}}catch(_0x4e6ae1){logger[_0x7ad1('0x26')]('[%s][voiceCallReport][musiconholdstart]',_0x4d4e52[_0x7ad1('0x2c')],util[_0x7ad1('0x27')](_0x4e6ae1,{'showHidden':![],'depth':null}));}};VoiceCallReport['prototype'][_0x7ad1('0x23')]=function(_0xaf257){try{if(this[_0x7ad1('0x29')](_0xaf257)){logger['debug'](_0x7ad1('0xb7'),_0xaf257[_0x7ad1('0x2c')],util['inspect'](_0xaf257,{'showHidden':![],'depth':null}));if(this[_0x7ad1('0x10')][_0xaf257[_0x7ad1('0x2c')]]){if(!_[_0x7ad1('0x6f')](this[_0x7ad1('0x10')][_0xaf257['uniqueid']][_0x7ad1('0xb5')])){this['channels'][_0xaf257[_0x7ad1('0x2c')]][_0x7ad1('0xb8')]+=moment()[_0x7ad1('0xb9')](0x0)['diff'](this[_0x7ad1('0x10')][_0xaf257[_0x7ad1('0x2c')]][_0x7ad1('0xb5')],_0x7ad1('0x56'));logger[_0x7ad1('0x24')](_0x7ad1('0xba'),_0xaf257['uniqueid'],this['channels'][_0xaf257[_0x7ad1('0x2c')]]['mohtime']);delete this[_0x7ad1('0x10')][_0xaf257['uniqueid']][_0x7ad1('0xb5')];}}}}catch(_0x123257){logger[_0x7ad1('0x26')](_0x7ad1('0xbb'),_0xaf257[_0x7ad1('0x2c')],util['inspect'](_0x123257,{'showHidden':![],'depth':null}));}};module[_0x7ad1('0xbc')]=VoiceCallReport;
\ No newline at end of file
+var _0x71ef=['[%s][voiceCallReport][varset]','[%s][voiceCallReport][hangup]\x20event:','[%s][voiceCallReport][hangup]\x20reason:%s','cause-txt','endtime','billableseconds','answertime','[%s][voiceCallReport][hangup]\x20sending\x20user:agentcomplete\x20event:','user:agentcomplete','transferType','isEmpty','getSettings','then','stopRecordingOnTransfer','resolve','Action','StopMixMonitor','catch','finally','webbar:stopmonitors','event','BlindTransfer','outbound','[%s][voiceCallReport][hangup]\x20sending\x20hangup\x20event:','custom:voiceCallReport','syncAttendedTransfer','[%s][voiceCallReport][attendedtransfer]\x20transfercalleridnum:%s\x20transferconnectedlinenum:%s','origtransferercalleridnum','transfertargetcalleridnum','[%s][voiceCallReport][attendedtransfer]\x20event:','transfereeuniqueid','transfercalleridnum','transferconnectedlinenum','secondtransfereruniqueid','transfertargetuniqueid','origtransfereruniqueid','some','routeid','ATTENDED','origtransfererlinkedid','[%s][voiceCallReport][attendedtransfer]','[%s][voiceCallReport][blindtransfer]\x20transfercalleridnum:%s\x20transferconnectedlinenum:%s','[%s][voiceCallReport][blindtransfer]\x20event:','transfererchannel','transfereruniqueid','BLIND','[%s][voiceCallReport][blindtransfer]','[%s][voiceCallReport][musiconholdstart]\x20event:','isNil','mohstarttime','[%s][voiceCallReport][musiconholdstart]\x20mohstarttime:%s','[%s][voiceCallReport][musiconholdstart]','syncMusicOnHoldStop','[%s][voiceCallReport][musiconholdstop]\x20event:','mohtime','[%s][voiceCallReport][musiconholdstop]\x20mohtime:%s','[%s][voiceCallReport][musiconholdstop]','exports','bluebird','lodash','moment','util','../../../config/logger','ami','../ami','../model/channel','unknown','not_inuse','inuse','invalid','unavailable','onhold','set','queue','agi','dial','playback','voicemail','NO\x20ANSWER','FAILED','ANSWERED','BUSY','defaults','redis','localhost','socket.io-emitter','channels','agents','blindTransfers','coreshowchannel','bind','newexten','syncNewExten','newchannel','syncNewState','varset','hangup','syncHangup','attendedtransfer','blindtransfer','syncBlindTransfer','musiconholdstart','musiconholdstop','info','[voiceCallReport][coreshowchannels]\x20started','actionCoreShowChannels','error','inspect','isNotNull','isUndefined','prototype','emit','syncNewCallerId','uniqueid','calleridnum','debug','[%s][voiceCallReport][newcallerid]\x20event:','linkedid','pick','keys','context','from-sip','channel','split','xcally-motion-preview','destconnectedlinenum','connectedlinenum','user:%s','accountcode','[%s][voiceCallReport][newcallerid]','OutgoingSpoolFailed','[%s][voiceCallReport][newchannel]\x20context:%s\x20exten:%s','exten','starttime','YYYY-MM-DD\x20HH:mm:ss','disposition','toNumber','channelstate','merge','[%s][voiceCallReport][newchannel]\x20sending\x20user:agentconnect\x20event:','format','[%s][voiceCallReport][newchannel]','[%s][voiceCallReport][newexten]\x20event:','toLowerCase','applicationdata','appdata','startsWith','CDR(routeAlias)','application','duration','subtract','seconds','includes','lastapplication','lastdata','cdr(','match','[%s][voiceCallReport][newexten]','[%s][voiceCallReport][newstate]\x20linkedid:%s\x20calleridname:%s\x20calleridnum:%s','calleridname','answered','holdtime','diff','destinationchannel','UserId','membername','name','routealias','[%s][voiceCallReport][newstate]\x20sending\x20user:agentconnect\x20event:','user:agentconnect','[%s][voiceCallReport][newstate]','syncMixMonitorFilename','[%s][voiceCallReport][mixMonitorFilename]\x20monitorFilename:%s','endsWith','.wav49','.WAV','find','monitors','push','syncVarSet','variable','mixmonitor_filename','[%s][voiceCallReport][varset]\x20variable:mixmonitor_filename\x20value:%s','value','xmd-callerid','[%s][voiceCallReport][varset]\x20variable:xmd-callerid\x20value:%s','callerid','[%s][voiceCallReport][varset]\x20variable:xmd-cdrtype\x20value:%s','type','xmd-queue','xmd-originatecalleridnum','[%s][voiceCallReport][varset]\x20variable:xmd-originatecalleridnum\x20value:%s','originatecalleridnum','xmd-destination','destination','xmd-callerid-preview','calleridpreview','xmcs-queue','[%s][voiceCallReport][varset]\x20variable:xmcs-queue\x20value:%s','sipcallid','[%s][voiceCallReport][varset]\x20variable:sipcallid\x20value:%s','parse','sipcalllinkedid'];(function(_0xcd5dd9,_0x39db8b){var _0x49a82b=function(_0x4b353e){while(--_0x4b353e){_0xcd5dd9['push'](_0xcd5dd9['shift']());}};_0x49a82b(++_0x39db8b);}(_0x71ef,0x1d0));var _0xf71e=function(_0x31a938,_0x4daec6){_0x31a938=_0x31a938-0x0;var _0x1bf341=_0x71ef[_0x31a938];return _0x1bf341;};'use strict';var BPromise=require(_0xf71e('0x0'));var _=require(_0xf71e('0x1'));var moment=require(_0xf71e('0x2'));var util=require(_0xf71e('0x3'));var path=require('path');var Redis=require('ioredis');var config=require('../../../config/environment');var logger=require(_0xf71e('0x4'))(_0xf71e('0x5'));var ami=require(_0xf71e('0x6'));var Channel=require(_0xf71e('0x7'));var RpcSetting=require('../rpc/setting');var statusDesc=[_0xf71e('0x8'),_0xf71e('0x9'),_0xf71e('0xa'),'busy',_0xf71e('0xb'),_0xf71e('0xc'),'ringing','ringinuse',_0xf71e('0xd')];var applications=[_0xf71e('0xe'),_0xf71e('0xf'),_0xf71e('0x10'),_0xf71e('0x11'),_0xf71e('0x12'),_0xf71e('0x13')];var dispositions=[_0xf71e('0x14'),_0xf71e('0x15'),'FAILED',_0xf71e('0x14'),_0xf71e('0x14'),_0xf71e('0x14'),_0xf71e('0x16'),_0xf71e('0x17'),'FAILED',_0xf71e('0x15'),_0xf71e('0x15')];var actions={};config['redis']=_[_0xf71e('0x18')](config[_0xf71e('0x19')],{'host':_0xf71e('0x1a'),'port':0x18eb});var io=require(_0xf71e('0x1b'))(new Redis(config[_0xf71e('0x19')]));function VoiceCallReport(_0x204d70){this[_0xf71e('0x1c')]=_0x204d70[_0xf71e('0x1c')];this[_0xf71e('0x1d')]=_0x204d70[_0xf71e('0x1d')];this[_0xf71e('0x1e')]={};ami['on'](_0xf71e('0x1f'),this['syncNewExten'][_0xf71e('0x20')](this));ami['on'](_0xf71e('0x21'),this[_0xf71e('0x22')]['bind'](this));ami['on'](_0xf71e('0x23'),this['syncNewChannel'][_0xf71e('0x20')](this));ami['on']('newstate',this[_0xf71e('0x24')][_0xf71e('0x20')](this));ami['on'](_0xf71e('0x25'),this['syncVarSet'][_0xf71e('0x20')](this));ami['on'](_0xf71e('0x26'),this[_0xf71e('0x27')]['bind'](this));ami['on']('newcallerid',this['syncNewCallerId'][_0xf71e('0x20')](this));ami['on'](_0xf71e('0x28'),this['syncAttendedTransfer'][_0xf71e('0x20')](this));ami['on'](_0xf71e('0x29'),this[_0xf71e('0x2a')]['bind'](this));ami['on'](_0xf71e('0x2b'),this['syncMusicOnHoldStart'][_0xf71e('0x20')](this));ami['on'](_0xf71e('0x2c'),this['syncMusicOnHoldStop']['bind'](this));try{logger[_0xf71e('0x2d')](_0xf71e('0x2e'));ami[_0xf71e('0x2f')]();}catch(_0x2ed47f){logger[_0xf71e('0x30')]('[voiceCallReport][coreshowchannels]',util[_0xf71e('0x31')](_0x2ed47f,{'showHidden':![],'depth':null}));}}VoiceCallReport['prototype'][_0xf71e('0x32')]=function(_0x235744){return _0x235744!==null&&!_[_0xf71e('0x33')](_0x235744);};VoiceCallReport[_0xf71e('0x34')][_0xf71e('0x35')]=function(_0xa73624,_0x2d26db,_0x3dcf9a){io['to'](_0xa73624)['emit'](_0x2d26db,_0x3dcf9a);};VoiceCallReport['prototype'][_0xf71e('0x36')]=function(_0x55b830){try{if(this[_0xf71e('0x32')](_0x55b830)){logger[_0xf71e('0x2d')]('[%s][voiceCallReport][newcallerid]\x20calleridname:%s\x20calleridnum:%s',_0x55b830[_0xf71e('0x37')],_0x55b830['calleridname'],_0x55b830[_0xf71e('0x38')]);logger[_0xf71e('0x39')](_0xf71e('0x3a'),_0x55b830[_0xf71e('0x37')],util[_0xf71e('0x31')](_0x55b830,{'showHidden':![],'depth':null}));if(_0x55b830['uniqueid']===_0x55b830[_0xf71e('0x3b')]){if(!_[_0xf71e('0x33')](this['channels'][_0x55b830[_0xf71e('0x37')]])){_['merge'](this[_0xf71e('0x1c')][_0x55b830['uniqueid']],_[_0xf71e('0x3c')](_0x55b830,_[_0xf71e('0x3d')](this['channels'][_0x55b830[_0xf71e('0x37')]])));}}if(_0x55b830[_0xf71e('0x3e')]===_0xf71e('0x3f')){if(this[_0xf71e('0x1d')][_0x55b830[_0xf71e('0x40')][_0xf71e('0x41')]('-')[0x0]]){if(_0x55b830['exten']==_0xf71e('0x42')){this[_0xf71e('0x1d')][_0x55b830[_0xf71e('0x40')]['split']('-')[0x0]][_0xf71e('0x43')]=_0x55b830[_0xf71e('0x44')];this[_0xf71e('0x35')](util['format'](_0xf71e('0x45'),this[_0xf71e('0x1d')][_0x55b830[_0xf71e('0x40')][_0xf71e('0x41')]('-')[0x0]]['name']),'user:agentconnect',{'destaccountcode':this[_0xf71e('0x1d')][_0x55b830['channel'][_0xf71e('0x41')]('-')[0x0]][_0xf71e('0x46')],'destconnectedlinenum':_0x55b830[_0xf71e('0x44')]});}}}}}catch(_0x5792bd){logger[_0xf71e('0x30')](_0xf71e('0x47'),_0x55b830[_0xf71e('0x37')],util[_0xf71e('0x31')](_0x5792bd,{'showHidden':![],'depth':null}));}};VoiceCallReport['prototype']['syncNewChannel']=function(_0x119eb3){try{if(this['isNotNull'](_0x119eb3)){logger[_0xf71e('0x39')]('[%s][voiceCallReport][newchannel]\x20event:',_0x119eb3[_0xf71e('0x37')],util[_0xf71e('0x31')](_0x119eb3,{'showHidden':![],'depth':null}));if(_0x119eb3[_0xf71e('0x37')]===_0x119eb3[_0xf71e('0x3b')]&&_0x119eb3['channel']!=_0xf71e('0x48')){if(_[_0xf71e('0x33')](this[_0xf71e('0x1c')][_0x119eb3['uniqueid']])){logger['info'](_0xf71e('0x49'),_0x119eb3[_0xf71e('0x37')],_0x119eb3[_0xf71e('0x3e')],_0x119eb3[_0xf71e('0x4a')]);this[_0xf71e('0x1c')][_0x119eb3[_0xf71e('0x37')]]=new Channel();this[_0xf71e('0x1c')][_0x119eb3[_0xf71e('0x37')]][_0xf71e('0x4b')]=moment()['format'](_0xf71e('0x4c'));this[_0xf71e('0x1c')][_0x119eb3['uniqueid']][_0xf71e('0x4d')]=dispositions[_[_0xf71e('0x4e')](_0x119eb3[_0xf71e('0x4f')])];_[_0xf71e('0x50')](this[_0xf71e('0x1c')][_0x119eb3[_0xf71e('0x37')]],_['pick'](_0x119eb3,_[_0xf71e('0x3d')](this[_0xf71e('0x1c')][_0x119eb3[_0xf71e('0x37')]])));if(_0x119eb3[_0xf71e('0x3e')]===_0xf71e('0x3f')){if(this[_0xf71e('0x1d')][_0x119eb3[_0xf71e('0x40')][_0xf71e('0x41')]('-')[0x0]]){if(_[_0xf71e('0x33')](this[_0xf71e('0x1d')][_0x119eb3[_0xf71e('0x40')][_0xf71e('0x41')]('-')[0x0]][_0xf71e('0x43')])){this[_0xf71e('0x1d')][_0x119eb3['channel'][_0xf71e('0x41')]('-')[0x0]][_0xf71e('0x43')]=_0x119eb3[_0xf71e('0x4a')];logger[_0xf71e('0x39')](_0xf71e('0x51'),_0x119eb3[_0xf71e('0x37')],util[_0xf71e('0x31')]({'destaccountcode':this['agents'][_0x119eb3[_0xf71e('0x40')][_0xf71e('0x41')]('-')[0x0]][_0xf71e('0x46')],'destconnectedlinenum':_0x119eb3[_0xf71e('0x4a')]},{'showHidden':![],'depth':null}));this['emit'](util[_0xf71e('0x52')](_0xf71e('0x45'),this['agents'][_0x119eb3[_0xf71e('0x40')][_0xf71e('0x41')]('-')[0x0]]['name']),'user:agentconnect',{'destaccountcode':this[_0xf71e('0x1d')][_0x119eb3[_0xf71e('0x40')][_0xf71e('0x41')]('-')[0x0]][_0xf71e('0x46')],'destconnectedlinenum':_0x119eb3[_0xf71e('0x4a')]});}}}}}}}catch(_0x2b5a21){logger[_0xf71e('0x30')](_0xf71e('0x53'),_0x119eb3['uniqueid'],util['inspect'](_0x2b5a21,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0xf71e('0x34')][_0xf71e('0x22')]=function(_0x5d276b){try{if(this['isNotNull'](_0x5d276b)){logger['debug'](_0xf71e('0x54'),_0x5d276b[_0xf71e('0x37')],util[_0xf71e('0x31')](_0x5d276b,{'showHidden':![],'depth':null}));if(_0x5d276b['uniqueid']===_0x5d276b[_0xf71e('0x3b')]&&_0x5d276b[_0xf71e('0x4a')]!='h'&&_0x5d276b['channel']!='OutgoingSpoolFailed'){_0x5d276b['application']=_0x5d276b['application'][_0xf71e('0x55')]();_0x5d276b[_0xf71e('0x56')]=_0x5d276b[_0xf71e('0x57')]&&_0x5d276b[_0xf71e('0x57')][_0xf71e('0x58')](_0xf71e('0x59'))?_0x5d276b[_0xf71e('0x57')]:(_0x5d276b[_0xf71e('0x57')]||_0x5d276b[_0xf71e('0x56')])['toLowerCase']();logger['info']('[%s][voiceCallReport][newexten]\x20application:%s\x20appdata:%s',_0x5d276b[_0xf71e('0x37')],_0x5d276b[_0xf71e('0x5a')],_0x5d276b['applicationdata']);if(_['isUndefined'](this[_0xf71e('0x1c')][_0x5d276b['uniqueid']])){this[_0xf71e('0x1c')][_0x5d276b[_0xf71e('0x37')]]=new Channel();this[_0xf71e('0x1c')][_0x5d276b[_0xf71e('0x37')]][_0xf71e('0x4b')]=_0x5d276b[_0xf71e('0x5b')]?moment()[_0xf71e('0x5c')](moment['duration'](_0x5d276b[_0xf71e('0x5b')])[_0xf71e('0x5d')](),_0xf71e('0x5d'))['format']('YYYY-MM-DD\x20HH:mm:ss'):moment()['format'](_0xf71e('0x4c'));this[_0xf71e('0x1c')][_0x5d276b[_0xf71e('0x37')]][_0xf71e('0x4d')]=_0xf71e('0x14');}_[_0xf71e('0x50')](this[_0xf71e('0x1c')][_0x5d276b['uniqueid']],_[_0xf71e('0x3c')](_0x5d276b,_[_0xf71e('0x3d')](this['channels'][_0x5d276b[_0xf71e('0x37')]])));if(_[_0xf71e('0x5e')](applications,_0x5d276b[_0xf71e('0x5a')])){this[_0xf71e('0x1c')][_0x5d276b[_0xf71e('0x37')]][_0xf71e('0x5f')]=_0x5d276b[_0xf71e('0x5a')];this[_0xf71e('0x1c')][_0x5d276b[_0xf71e('0x37')]][_0xf71e('0x60')]=_0x5d276b[_0xf71e('0x56')];if(_0x5d276b[_0xf71e('0x5a')]===_0xf71e('0xe')&&_[_0xf71e('0x58')](_0x5d276b[_0xf71e('0x56')][_0xf71e('0x55')](),_0xf71e('0x61'))){var _0x26bf13=_0x5d276b[_0xf71e('0x56')][_0xf71e('0x41')]('=');var _0xf30eb2=_0x26bf13[0x0]['toLowerCase']()[_0xf71e('0x62')](/cdr\((.*)\)/);if(_0xf30eb2){this[_0xf71e('0x1c')][_0x5d276b['uniqueid']][_0xf30eb2[0x1]]=_0x26bf13[0x1];}}else if(_0x5d276b[_0xf71e('0x5a')]==='queue'){this[_0xf71e('0x1c')][_0x5d276b[_0xf71e('0x37')]][_0xf71e('0xf')]=_0x5d276b['applicationdata'][_0xf71e('0x41')](',')[0x0];}}}}}catch(_0xac4fd9){logger[_0xf71e('0x30')](_0xf71e('0x63'),_0x5d276b[_0xf71e('0x37')],util[_0xf71e('0x31')](_0xac4fd9,{'showHidden':![],'depth':null}));}};VoiceCallReport['prototype'][_0xf71e('0x24')]=function(_0x20cc66){try{if(this['isNotNull'](_0x20cc66)){logger[_0xf71e('0x2d')](_0xf71e('0x64'),_0x20cc66[_0xf71e('0x37')],_0x20cc66[_0xf71e('0x3b')],_0x20cc66[_0xf71e('0x65')],_0x20cc66['calleridnum']);logger[_0xf71e('0x39')]('[%s][voiceCallReport][newstate]\x20event:',_0x20cc66['uniqueid'],util[_0xf71e('0x31')](_0x20cc66,{'showHidden':![],'depth':null}));if(_0x20cc66['uniqueid']!==_0x20cc66[_0xf71e('0x3b')]){if(this['channels'][_0x20cc66['linkedid']]){if(_0x20cc66[_0xf71e('0x4f')]==='6'){if(!this[_0xf71e('0x1c')][_0x20cc66[_0xf71e('0x3b')]][_0xf71e('0x66')]){var _0x4464b6=moment();this[_0xf71e('0x1c')][_0x20cc66[_0xf71e('0x3b')]][_0xf71e('0x66')]=!![];this[_0xf71e('0x1c')][_0x20cc66['linkedid']]['answertime']=_0x4464b6[_0xf71e('0x52')]('YYYY-MM-DD\x20HH:mm:ss');if(this['channels'][_0x20cc66[_0xf71e('0x3b')]][_0xf71e('0x4b')]){this[_0xf71e('0x1c')][_0x20cc66[_0xf71e('0x3b')]][_0xf71e('0x67')]=_0x4464b6[_0xf71e('0x68')](this['channels'][_0x20cc66['linkedid']][_0xf71e('0x4b')],_0xf71e('0x5d'));}}this[_0xf71e('0x1c')][_0x20cc66[_0xf71e('0x3b')]][_0xf71e('0x3b')]=_0x20cc66[_0xf71e('0x37')];if(_0x20cc66[_0xf71e('0x38')]!==_0xf71e('0x42')){this[_0xf71e('0x1c')][_0x20cc66[_0xf71e('0x3b')]][_0xf71e('0x44')]=_0x20cc66['calleridnum'];}this[_0xf71e('0x1c')][_0x20cc66['linkedid']]['connectedlinename']=_0x20cc66[_0xf71e('0x65')];this[_0xf71e('0x1c')][_0x20cc66['linkedid']][_0xf71e('0x69')]=_0x20cc66[_0xf71e('0x40')];this[_0xf71e('0x1c')][_0x20cc66['linkedid']][_0xf71e('0x4d')]=dispositions[_[_0xf71e('0x4e')](_0x20cc66['channelstate'])];if(this['agents'][_0x20cc66[_0xf71e('0x40')][_0xf71e('0x41')]('-')[0x0]]){this[_0xf71e('0x1c')][_0x20cc66[_0xf71e('0x3b')]][_0xf71e('0x6a')]=this[_0xf71e('0x1d')][_0x20cc66[_0xf71e('0x40')][_0xf71e('0x41')]('-')[0x0]]['id'];this[_0xf71e('0x1c')][_0x20cc66[_0xf71e('0x3b')]][_0xf71e('0x6b')]=this[_0xf71e('0x1d')][_0x20cc66[_0xf71e('0x40')][_0xf71e('0x41')]('-')[0x0]][_0xf71e('0x6c')];}}}}else{if(this[_0xf71e('0x1c')][_0x20cc66[_0xf71e('0x37')]]){if(_0x20cc66[_0xf71e('0x4f')]==='6'){if(this[_0xf71e('0x1d')][_0x20cc66['channel'][_0xf71e('0x41')]('-')[0x0]]){this[_0xf71e('0x1c')][_0x20cc66[_0xf71e('0x37')]]['UserId']=this[_0xf71e('0x1d')][_0x20cc66['channel'][_0xf71e('0x41')]('-')[0x0]]['id'];this[_0xf71e('0x1c')][_0x20cc66[_0xf71e('0x37')]][_0xf71e('0x6b')]=this[_0xf71e('0x1d')][_0x20cc66[_0xf71e('0x40')]['split']('-')[0x0]]['name'];}}}}if(_0x20cc66['channelstate']==='6'&&_0x20cc66[_0xf71e('0x3e')]===_0xf71e('0x3f')){if(this['agents'][_0x20cc66['channel'][_0xf71e('0x41')]('-')[0x0]]){this[_0xf71e('0x1d')][_0x20cc66[_0xf71e('0x40')][_0xf71e('0x41')]('-')[0x0]]['destconnectedlinenum']=_0x20cc66[_0xf71e('0x4a')];var _0x5a58ff;if(this[_0xf71e('0x1c')][_0x20cc66[_0xf71e('0x37')]])_0x5a58ff=this[_0xf71e('0x1c')][_0x20cc66[_0xf71e('0x37')]][_0xf71e('0x6d')];else if(this['channels'][_0x20cc66[_0xf71e('0x3b')]])_0x5a58ff=this[_0xf71e('0x1c')][_0x20cc66[_0xf71e('0x3b')]]['routealias'];logger[_0xf71e('0x39')](_0xf71e('0x6e'),_0x20cc66[_0xf71e('0x37')],util[_0xf71e('0x31')]({'destaccountcode':this[_0xf71e('0x1d')][_0x20cc66['channel'][_0xf71e('0x41')]('-')[0x0]]['accountcode'],'destconnectedlinenum':_0x20cc66[_0xf71e('0x4a')],'routealias':_0x5a58ff},{'showHidden':![],'depth':null}));this[_0xf71e('0x35')](util['format'](_0xf71e('0x45'),this[_0xf71e('0x1d')][_0x20cc66['channel']['split']('-')[0x0]][_0xf71e('0x6c')]),_0xf71e('0x6f'),{'destaccountcode':this[_0xf71e('0x1d')][_0x20cc66['channel']['split']('-')[0x0]][_0xf71e('0x46')],'destconnectedlinenum':_0x20cc66[_0xf71e('0x4a')],'routealias':_0x5a58ff});}}}}catch(_0xd7729b){logger[_0xf71e('0x30')](_0xf71e('0x70'),_0x20cc66[_0xf71e('0x37')],util[_0xf71e('0x31')](_0xd7729b,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0xf71e('0x34')][_0xf71e('0x71')]=function(_0x10d9a1,_0x296340){try{if(this[_0xf71e('0x1c')][_0x10d9a1]){logger[_0xf71e('0x2d')](_0xf71e('0x72'),_0x10d9a1,_0x296340);this[_0xf71e('0x1c')][_0x10d9a1]['monitor']=!![];if(_[_0xf71e('0x73')](_0x296340,'.wav49')){_0x296340=_0x296340['replace'](_0xf71e('0x74'),_0xf71e('0x75'));}this['channels'][_0x10d9a1]['monitorFilename']=_0x296340;var _0x246771=_[_0xf71e('0x76')](this[_0xf71e('0x1c')][_0x10d9a1][_0xf71e('0x77')],{'filename':_0x296340});if(_['isNil'](_0x246771)){this[_0xf71e('0x1c')][_0x10d9a1][_0xf71e('0x77')][_0xf71e('0x78')]({'filename':_0x296340,'createdAt':moment()['format'](_0xf71e('0x4c')),'mixmonitorid':'','status':'rec'});}}}catch(_0x37451b){logger[_0xf71e('0x30')]('[%s][voiceCallReport][mixMonitorFilename]',_0x10d9a1,util['inspect'](_0x37451b,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0xf71e('0x34')][_0xf71e('0x79')]=function(_0x5ac467){try{if(this[_0xf71e('0x32')](_0x5ac467)){logger[_0xf71e('0x39')]('[%s][voiceCallReport][varset]\x20event:',_0x5ac467['uniqueid'],util[_0xf71e('0x31')](_0x5ac467,{'showHidden':![],'depth':null}));if(this[_0xf71e('0x1c')][_0x5ac467['uniqueid']]&&_0x5ac467[_0xf71e('0x40')]!=_0xf71e('0x48')){if(this[_0xf71e('0x32')](_0x5ac467[_0xf71e('0x7a')])){if(this[_0xf71e('0x32')](_0x5ac467[_0xf71e('0x7a')][_0xf71e('0x7b')])){logger[_0xf71e('0x2d')](_0xf71e('0x7c'),_0x5ac467['uniqueid'],_0x5ac467[_0xf71e('0x7d')]);this[_0xf71e('0x71')](_0x5ac467[_0xf71e('0x37')],_0x5ac467[_0xf71e('0x7d')]);}else if(this[_0xf71e('0x32')](_0x5ac467[_0xf71e('0x7a')]['xmd-phone'])){logger[_0xf71e('0x2d')]('[%s][voiceCallReport][varset]\x20variable:xmd-phone\x20value:%s',_0x5ac467[_0xf71e('0x37')],_0x5ac467[_0xf71e('0x7d')]);this['channels'][_0x5ac467[_0xf71e('0x37')]][_0xf71e('0x38')]=_0x5ac467[_0xf71e('0x7d')];}else if(this[_0xf71e('0x32')](_0x5ac467[_0xf71e('0x7a')][_0xf71e('0x7e')])){logger[_0xf71e('0x2d')](_0xf71e('0x7f'),_0x5ac467[_0xf71e('0x37')],_0x5ac467[_0xf71e('0x7d')]);this['channels'][_0x5ac467[_0xf71e('0x37')]][_0xf71e('0x80')]=_0x5ac467[_0xf71e('0x7d')];}else if(this['isNotNull'](_0x5ac467[_0xf71e('0x7a')]['xmd-cdrtype'])){logger[_0xf71e('0x2d')](_0xf71e('0x81'),_0x5ac467[_0xf71e('0x37')],_0x5ac467[_0xf71e('0x7d')]);this[_0xf71e('0x1c')][_0x5ac467[_0xf71e('0x37')]][_0xf71e('0x82')]=_0x5ac467[_0xf71e('0x7d')];}else if(this['isNotNull'](_0x5ac467[_0xf71e('0x7a')][_0xf71e('0x83')])){logger[_0xf71e('0x2d')]('[%s][voiceCallReport][varset]\x20variable:xmd-queue\x20value:%s',_0x5ac467[_0xf71e('0x37')],_0x5ac467[_0xf71e('0x7d')][_0xf71e('0x41')](',')[0x0]);this[_0xf71e('0x1c')][_0x5ac467[_0xf71e('0x37')]][_0xf71e('0xf')]=_0x5ac467[_0xf71e('0x7d')][_0xf71e('0x41')](',')[0x0];}else if(this['isNotNull'](_0x5ac467[_0xf71e('0x7a')][_0xf71e('0x84')])){logger['info'](_0xf71e('0x85'),_0x5ac467[_0xf71e('0x37')],_0x5ac467[_0xf71e('0x7d')]);this[_0xf71e('0x1c')][_0x5ac467['uniqueid']][_0xf71e('0x86')]=_0x5ac467['value'];}else if(this[_0xf71e('0x32')](_0x5ac467[_0xf71e('0x7a')][_0xf71e('0x87')])){logger[_0xf71e('0x2d')]('[%s][voiceCallReport][varset]\x20variable:xmd-destination\x20value:%s',_0x5ac467[_0xf71e('0x37')],_0x5ac467[_0xf71e('0x7d')]);this[_0xf71e('0x1c')][_0x5ac467['uniqueid']][_0xf71e('0x88')]=_0x5ac467[_0xf71e('0x7d')];}else if(this['isNotNull'](_0x5ac467[_0xf71e('0x7a')][_0xf71e('0x89')])){logger[_0xf71e('0x2d')]('[%s][voiceCallReport][varset]\x20variable:xmd-callerid-preview\x20value:%s',_0x5ac467['uniqueid'],_0x5ac467[_0xf71e('0x7d')]);this[_0xf71e('0x1c')][_0x5ac467[_0xf71e('0x37')]][_0xf71e('0x8a')]=_0x5ac467[_0xf71e('0x7d')];}else if(this[_0xf71e('0x32')](_0x5ac467[_0xf71e('0x7a')][_0xf71e('0x8b')])){logger[_0xf71e('0x2d')](_0xf71e('0x8c'),_0x5ac467[_0xf71e('0x37')],_0x5ac467[_0xf71e('0x7d')]);this[_0xf71e('0x1c')][_0x5ac467['uniqueid']]['queue']=_0x5ac467['value'];}else if(this[_0xf71e('0x32')](_0x5ac467[_0xf71e('0x7a')][_0xf71e('0x8d')])){logger[_0xf71e('0x2d')](_0xf71e('0x8e'),_0x5ac467[_0xf71e('0x37')],_0x5ac467[_0xf71e('0x7d')]);this[_0xf71e('0x1c')][_0x5ac467[_0xf71e('0x37')]]['sipcalluniqueid']=_0x5ac467[_0xf71e('0x7d')];}}}else if(this[_0xf71e('0x32')](_0x5ac467[_0xf71e('0x7a')][_0xf71e('0x7b')])){if(_0x5ac467[_0xf71e('0x7d')]){var _0x3d993a=path[_0xf71e('0x8f')](_0x5ac467[_0xf71e('0x7d')])['name'];logger[_0xf71e('0x2d')](_0xf71e('0x7c'),_0x3d993a,_0x5ac467[_0xf71e('0x7d')]);this[_0xf71e('0x71')](_0x3d993a,_0x5ac467[_0xf71e('0x7d')]);}}else if(this[_0xf71e('0x1c')][_0x5ac467['linkedid']]){if(this[_0xf71e('0x32')](_0x5ac467[_0xf71e('0x7a')])){if(this['isNotNull'](_0x5ac467[_0xf71e('0x7a')]['sipcallid'])){logger[_0xf71e('0x2d')](_0xf71e('0x8e'),_0x5ac467[_0xf71e('0x3b')],_0x5ac467['value']);this[_0xf71e('0x1c')][_0x5ac467['linkedid']][_0xf71e('0x90')]=_0x5ac467['value'];}}}}}catch(_0x9413a9){logger[_0xf71e('0x30')](_0xf71e('0x91'),_0x5ac467[_0xf71e('0x37')],util['inspect'](_0x9413a9,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0xf71e('0x34')][_0xf71e('0x27')]=function(_0x11c708){try{if(this[_0xf71e('0x32')](_0x11c708)){logger[_0xf71e('0x39')](_0xf71e('0x92'),_0x11c708[_0xf71e('0x37')],util[_0xf71e('0x31')](_0x11c708,{'showHidden':![],'depth':null}));if(this[_0xf71e('0x1c')][_0x11c708[_0xf71e('0x37')]]){logger[_0xf71e('0x2d')](_0xf71e('0x93'),_0x11c708[_0xf71e('0x37')],_0x11c708[_0xf71e('0x94')]);var _0x41d9f1=moment();this['channels'][_0x11c708[_0xf71e('0x37')]][_0xf71e('0x95')]=_0x41d9f1[_0xf71e('0x52')]('YYYY-MM-DD\x20HH:mm:ss');this[_0xf71e('0x1c')][_0x11c708[_0xf71e('0x37')]][_0xf71e('0x5b')]=_0x41d9f1[_0xf71e('0x68')](this[_0xf71e('0x1c')][_0x11c708['uniqueid']]['starttime'],_0xf71e('0x5d'));if(this[_0xf71e('0x1c')][_0x11c708[_0xf71e('0x37')]][_0xf71e('0x66')]){this[_0xf71e('0x1c')][_0x11c708['uniqueid']][_0xf71e('0x96')]=_0x41d9f1['diff'](this[_0xf71e('0x1c')][_0x11c708[_0xf71e('0x37')]][_0xf71e('0x97')],_0xf71e('0x5d'));this[_0xf71e('0x1c')][_0x11c708[_0xf71e('0x37')]][_0xf71e('0x67')]=this['channels'][_0x11c708[_0xf71e('0x37')]]['duration']-this[_0xf71e('0x1c')][_0x11c708['uniqueid']]['billableseconds'];}if(_0x11c708[_0xf71e('0x3e')]==='from-sip'){if(this[_0xf71e('0x1d')][_0x11c708['channel']['split']('-')[0x0]]){this['agents'][_0x11c708[_0xf71e('0x40')][_0xf71e('0x41')]('-')[0x0]]=_['omit'](this['agents'][_0x11c708[_0xf71e('0x40')][_0xf71e('0x41')]('-')[0x0]],[_0xf71e('0x43')]);logger[_0xf71e('0x39')](_0xf71e('0x98'),_0x11c708[_0xf71e('0x37')],util['inspect']({'id':this['agents'][_0x11c708[_0xf71e('0x40')][_0xf71e('0x41')]('-')[0x0]]['id'],'destaccountcode':this[_0xf71e('0x1d')][_0x11c708[_0xf71e('0x40')][_0xf71e('0x41')]('-')[0x0]][_0xf71e('0x46')]},{'showHidden':![],'depth':null}));this[_0xf71e('0x35')](util['format'](_0xf71e('0x45'),this[_0xf71e('0x1d')][_0x11c708[_0xf71e('0x40')][_0xf71e('0x41')]('-')[0x0]][_0xf71e('0x6c')]),_0xf71e('0x99'),{'id':this[_0xf71e('0x1d')][_0x11c708[_0xf71e('0x40')][_0xf71e('0x41')]('-')[0x0]]['id'],'destaccountcode':this[_0xf71e('0x1d')][_0x11c708['channel'][_0xf71e('0x41')]('-')[0x0]][_0xf71e('0x46')]});}}var _0x23af76=this;Promise['resolve']()['then'](function(){var _0x371780=_0x23af76[_0xf71e('0x1c')][_0x11c708['uniqueid']];if(typeof _0x371780[_0xf71e('0x9a')]==='undefined')return;if(_[_0xf71e('0x9b')](_0x371780[_0xf71e('0x77')]))return;return RpcSetting[_0xf71e('0x9c')]()[_0xf71e('0x9d')](function(_0x53a5d4){if(!_0x53a5d4[_0xf71e('0x9e')])return;return Promise[_0xf71e('0x9f')]()['then'](function(){return ami[_0xf71e('0xa0')]({'action':_0xf71e('0xa1'),'channel':_0x371780[_0xf71e('0x40')]})[_0xf71e('0xa2')](function(){});})[_0xf71e('0x9d')](function(){return ami['Action']({'action':_0xf71e('0xa1'),'channel':_0x371780[_0xf71e('0x69')]})[_0xf71e('0xa2')](function(){})[_0xf71e('0xa3')](function(){var _0x4162f6=_0x23af76[_0xf71e('0x1d')][_0x371780[_0xf71e('0x69')][_0xf71e('0x41')]('-')[0x0]];if(!_0x4162f6)return;io[_0xf71e('0x35')](_0xf71e('0xa4'),{'agentId':_0x4162f6['id'],'uniqueid':_0x371780[_0xf71e('0x37')]});});});});})[_0xf71e('0x9d')](function(){if(_0x11c708[_0xf71e('0xa5')]===_0xf71e('0xa6')){_0x23af76[_0xf71e('0x1e')][_0x11c708[_0xf71e('0x37')]]=_0x23af76[_0xf71e('0x1c')][_0x11c708[_0xf71e('0x37')]];}else{if(_0x23af76[_0xf71e('0x1c')][_0x11c708[_0xf71e('0x37')]][_0xf71e('0x82')]===_0xf71e('0xa7')&&_0x23af76['blindTransfers'][_0x11c708[_0xf71e('0x37')]]){_0x23af76['channels'][_0x11c708[_0xf71e('0x37')]]['uniqueid']=[_0x23af76['channels'][_0x11c708[_0xf71e('0x37')]][_0xf71e('0x3b')],_0x23af76[_0xf71e('0x1c')][_0x11c708[_0xf71e('0x37')]][_0xf71e('0x3b')]=_0x23af76['channels'][_0x11c708['uniqueid']][_0xf71e('0x37')]][0x0];delete _0x23af76['blindTransfers'][_0x11c708[_0xf71e('0x37')]];}}logger['debug'](_0xf71e('0xa8'),_0x11c708[_0xf71e('0x37')],util['inspect'](_0x23af76[_0xf71e('0x1c')][_0x11c708[_0xf71e('0x37')]],{'showHidden':![],'depth':null}));ami[_0xf71e('0x35')](_0xf71e('0xa9'),_0x23af76[_0xf71e('0x1c')][_0x11c708['uniqueid']]);delete _0x23af76[_0xf71e('0x1c')][_0x11c708['uniqueid']];});}}}catch(_0xfb930d){logger['error']('[%s][voiceCallReport][hangup]',_0x11c708[_0xf71e('0x37')],util['inspect'](_0xfb930d,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0xf71e('0x34')][_0xf71e('0xaa')]=function(_0x522315){try{if(this[_0xf71e('0x32')](_0x522315)){logger[_0xf71e('0x2d')](_0xf71e('0xab'),_0x522315[_0xf71e('0x37')],_0x522315[_0xf71e('0xac')],_0x522315[_0xf71e('0xad')]);logger[_0xf71e('0x39')](_0xf71e('0xae'),_0x522315[_0xf71e('0x37')],util[_0xf71e('0x31')](_0x522315,{'showHidden':![],'depth':null}));if(this[_0xf71e('0x1c')][_0x522315[_0xf71e('0xaf')]]){this['channels'][_0x522315[_0xf71e('0xaf')]][_0xf71e('0xb0')]=_0x522315[_0xf71e('0xac')];this[_0xf71e('0x1c')][_0x522315[_0xf71e('0xaf')]][_0xf71e('0xb1')]=_0x522315['transfertargetcalleridnum'];if(this[_0xf71e('0x1c')][_0x522315[_0xf71e('0xb2')]]){var _0x3990c2=this['channels'][_0x522315[_0xf71e('0xb2')]];this[_0xf71e('0x1c')][_0x522315[_0xf71e('0xb2')]]=this['channels'][_0x522315[_0xf71e('0xaf')]];this[_0xf71e('0x1c')][_0x522315[_0xf71e('0xaf')]]=_0x3990c2;}}else if(this['channels'][_0x522315[_0xf71e('0xb3')]]){this[_0xf71e('0x1c')][_0x522315['transfertargetuniqueid']]['transfercalleridnum']=_0x522315['origtransferercalleridnum'];this[_0xf71e('0x1c')][_0x522315[_0xf71e('0xb3')]]['transferconnectedlinenum']=_0x522315[_0xf71e('0xad')];if(this['channels'][_0x522315[_0xf71e('0xb4')]]){var _0x3990c2=this['channels'][_0x522315[_0xf71e('0xb4')]];this[_0xf71e('0x1c')][_0x522315['origtransfereruniqueid']]=this[_0xf71e('0x1c')][_0x522315['transfertargetuniqueid']];this[_0xf71e('0x1c')][_0x522315[_0xf71e('0xb3')]]=_0x3990c2;}}if((this[_0xf71e('0x1c')][_0x522315['origtransfereruniqueid']]||this['channels'][_0x522315['origtransfererlinkedid']])&&this['channels'][_0x522315['secondtransfereruniqueid']]){var _0x57471f=_[_0xf71e('0xb5')]([this['channels'][_0x522315['origtransfereruniqueid']],this[_0xf71e('0x1c')][_0x522315['origtransfererlinkedid']],this[_0xf71e('0x1c')][_0x522315['secondtransfereruniqueid']]],function(_0x504e2f){return _0x504e2f&&_0x504e2f[_0xf71e('0x82')]===_0xf71e('0xa7')&&_0x504e2f[_0xf71e('0xb6')];});if(_0x57471f){if(this[_0xf71e('0x1c')][_0x522315['origtransfereruniqueid']])this['channels'][_0x522315[_0xf71e('0xb4')]]['transferType']=_0xf71e('0xb7');if(this[_0xf71e('0x1c')][_0x522315[_0xf71e('0xb8')]])this[_0xf71e('0x1c')][_0x522315['origtransfererlinkedid']][_0xf71e('0x9a')]=_0xf71e('0xb7');this[_0xf71e('0x1c')][_0x522315[_0xf71e('0xb2')]][_0xf71e('0x9a')]=_0xf71e('0xb7');}}}}catch(_0x357612){logger['error'](_0xf71e('0xb9'),_0x522315[_0xf71e('0x37')],util[_0xf71e('0x31')](_0x357612,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0xf71e('0x34')][_0xf71e('0x2a')]=function(_0x21f9d8){try{if(this[_0xf71e('0x32')](_0x21f9d8)){logger[_0xf71e('0x2d')](_0xf71e('0xba'),_0x21f9d8['uniqueid'],_0x21f9d8['transfereecalleridnum'],_0x21f9d8['extension']);logger['debug'](_0xf71e('0xbb'),_0x21f9d8[_0xf71e('0x37')],util[_0xf71e('0x31')](_0x21f9d8,{'showHidden':![],'depth':null}));if(this[_0xf71e('0x1c')][_0x21f9d8['transfereeuniqueid']]){this[_0xf71e('0x1c')][_0x21f9d8[_0xf71e('0xaf')]]['transfercalleridnum']=_0x21f9d8['transfereecalleridnum'];this[_0xf71e('0x1c')][_0x21f9d8['transfereeuniqueid']]['transferconnectedlinenum']=_0x21f9d8['extension'];this[_0xf71e('0x1c')][_0x21f9d8['transfereeuniqueid']]['transferType']='BLIND';this[_0xf71e('0x27')]({'event':'BlindTransfer','uniqueid':_0x21f9d8[_0xf71e('0xaf')],'context':_0x21f9d8['context'],'channel':_0x21f9d8[_0xf71e('0xbc')]});}else{this[_0xf71e('0x1c')][_0x21f9d8[_0xf71e('0xbd')]][_0xf71e('0x9a')]=_0xf71e('0xbe');}}}catch(_0x5e6a8b){logger['error'](_0xf71e('0xbf'),_0x21f9d8[_0xf71e('0x37')],util['inspect'](_0x5e6a8b,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0xf71e('0x34')]['syncMusicOnHoldStart']=function(_0xe85b8){try{if(this[_0xf71e('0x32')](_0xe85b8)){logger[_0xf71e('0x39')](_0xf71e('0xc0'),_0xe85b8[_0xf71e('0x37')],util['inspect'](_0xe85b8,{'showHidden':![],'depth':null}));if(this[_0xf71e('0x1c')][_0xe85b8[_0xf71e('0x37')]]){if(!_[_0xf71e('0xc1')](this[_0xf71e('0x1c')][_0xe85b8[_0xf71e('0x37')]][_0xf71e('0x97')])){this['channels'][_0xe85b8['uniqueid']][_0xf71e('0xc2')]=moment()[_0xf71e('0x52')](_0xf71e('0x4c'));logger[_0xf71e('0x2d')](_0xf71e('0xc3'),_0xe85b8[_0xf71e('0x37')],this[_0xf71e('0x1c')][_0xe85b8['uniqueid']][_0xf71e('0xc2')]);}}}}catch(_0x33271d){logger[_0xf71e('0x30')](_0xf71e('0xc4'),_0xe85b8['uniqueid'],util[_0xf71e('0x31')](_0x33271d,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0xf71e('0x34')][_0xf71e('0xc5')]=function(_0x22fa2a){try{if(this['isNotNull'](_0x22fa2a)){logger[_0xf71e('0x39')](_0xf71e('0xc6'),_0x22fa2a['uniqueid'],util[_0xf71e('0x31')](_0x22fa2a,{'showHidden':![],'depth':null}));if(this['channels'][_0x22fa2a[_0xf71e('0x37')]]){if(!_[_0xf71e('0xc1')](this[_0xf71e('0x1c')][_0x22fa2a[_0xf71e('0x37')]][_0xf71e('0xc2')])){this[_0xf71e('0x1c')][_0x22fa2a[_0xf71e('0x37')]][_0xf71e('0xc7')]+=moment()['milliseconds'](0x0)[_0xf71e('0x68')](this['channels'][_0x22fa2a[_0xf71e('0x37')]][_0xf71e('0xc2')],'seconds');logger['info'](_0xf71e('0xc8'),_0x22fa2a['uniqueid'],this[_0xf71e('0x1c')][_0x22fa2a[_0xf71e('0x37')]]['mohtime']);delete this[_0xf71e('0x1c')][_0x22fa2a[_0xf71e('0x37')]][_0xf71e('0xc2')];}}}}catch(_0x1bc256){logger[_0xf71e('0x30')](_0xf71e('0xc9'),_0x22fa2a[_0xf71e('0x37')],util['inspect'](_0x1bc256,{'showHidden':![],'depth':null}));}};module[_0xf71e('0xca')]=VoiceCallReport;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x54c4=['../../../config/logger','ami','../ami','redis','defaults','localhost','socket.io-emitter','channels','outboundChannels','outbound','applications','variables','dialbegin','syncDialBegin','dialend','bind','varset','syncVarSet','newexten','syncNewExten','hangup','syncHangup','prototype','isNotNull','emit','debug','[%s][voiceDialReport][dialbegin]\x20event:','uniqueid','inspect','merge','format','YYYY-MM-DD\x20HH:mm:ss','called','channel','lastIndexOf','substring','event','privilege','info','[%s][voiceDialReport][dialbegin]\x20agent:%s\x20interface:%s\x20lastevent:called','membername','interface','[%s][voiceDialReport][dialbegin]\x20sending\x20voice_outbound_channel:save\x20event:','voice:outbound','voice_outbound_channel:save','[%s][voiceDialReport][dialbegin]\x20sending\x20dialbegin\x20event:','custom:dialbegin','[%s][voiceDialReport][dialbegin]','syncDialEnd','dialstatus','ANSWER','connectedlinenum','connectedlinename','answertime','lastevent','connect','[%s][voiceDialReport][dialend]\x20sending\x20dialconnect\x20event:','custom:dialconnect','[%s][voiceDialReport][dialend]\x20sending\x20voice_outbound_channel:save\x20event:','[%s][voiceDialReport][varset]\x20event:','addVariable','keys','variable','value','outboundrouteid','isUndefined','voice','[%s][voiceDialReport][varset]\x20outboundrouteid:%s\x20variable:%s\x20value:%s','error','rtpaudioqos','rtpaudioqosbridged','rtpaudioqosjitter','rtpaudioqosloss','rtpaudioqoslossbridged','rtpaudioqosrtt','rtpaudioqosrttbridged','sipcallid','sipuri','bridgepvtcallid','membercalls','memberdynamic','memberinterface','memberpenalty','memberrealtime','isNil','includes','[%s][voiceDialReport][hangup]\x20event:','[%s][voiceDialReport][hangup]\x20reason:%s\x20lasteevent:complete','cause-txt','endtime','duration','starttime','seconds','total','answered','holdtime','diff','billableseconds','sumHoldTime','[%s][voiceDialReport][hangup]\x20sending\x20voiceDialReport\x20event:','custom:voiceDialReport','[%s][voiceDialReport][hangup]\x20sending\x20dialend\x20event:','custom:dialend','voice_outbound:save','[DEBUG]\x20Emit\x20voice_outbound_channel:remove\x20event','stringify','voice_outbound_channel:remove','linkedid','destuniqueid','[%s][voiceDialReport][hangup]','[%s][voiceDialReport][newexten]\x20event:','application','toLowerCase','set','applicationdata','appdata','startsWith','cdr(','[%s][voiceDialReport][newexten]\x20application:%s\x20appdata:%s','[%s][voiceDialReport][newexten]','lodash','moment','util','ioredis','../../../config/environment'];(function(_0x1ee9a8,_0x10597e){var _0x647570=function(_0x396865){while(--_0x396865){_0x1ee9a8['push'](_0x1ee9a8['shift']());}};_0x647570(++_0x10597e);}(_0x54c4,0x1ef));var _0x454c=function(_0x44054b,_0x40298a){_0x44054b=_0x44054b-0x0;var _0x1f1632=_0x54c4[_0x44054b];return _0x1f1632;};'use strict';var _=require(_0x454c('0x0'));var moment=require(_0x454c('0x1'));var util=require(_0x454c('0x2'));var Redis=require(_0x454c('0x3'));var config=require(_0x454c('0x4'));var logger=require(_0x454c('0x5'))(_0x454c('0x6'));var ami=require(_0x454c('0x7'));config[_0x454c('0x8')]=_[_0x454c('0x9')](config['redis'],{'host':_0x454c('0xa'),'port':0x18eb});var io=require(_0x454c('0xb'))(new Redis(config[_0x454c('0x8')]));function VoiceDialReport(_0x234d92){this[_0x454c('0xc')]=_0x234d92[_0x454c('0xd')];this[_0x454c('0xe')]=_0x234d92[_0x454c('0xe')];this[_0x454c('0xf')]={};this[_0x454c('0x10')]={};ami['on'](_0x454c('0x11'),this[_0x454c('0x12')]['bind'](this));ami['on'](_0x454c('0x13'),this['syncDialEnd'][_0x454c('0x14')](this));ami['on'](_0x454c('0x15'),this[_0x454c('0x16')]['bind'](this));ami['on'](_0x454c('0x17'),this[_0x454c('0x18')][_0x454c('0x14')](this));ami['on'](_0x454c('0x19'),this[_0x454c('0x1a')]['bind'](this));}VoiceDialReport[_0x454c('0x1b')][_0x454c('0x1c')]=function(_0x59bc52){return _0x59bc52!==null&&!_['isUndefined'](_0x59bc52);};VoiceDialReport[_0x454c('0x1b')][_0x454c('0x1d')]=function(_0x385805,_0x4ed7bc,_0x304e3f){io['to'](_0x385805)[_0x454c('0x1d')](_0x4ed7bc,_0x304e3f);};VoiceDialReport['prototype'][_0x454c('0x12')]=function(_0x385d8d){try{if(this[_0x454c('0x1c')](_0x385d8d)){logger[_0x454c('0x1e')](_0x454c('0x1f'),_0x385d8d[_0x454c('0x20')],util[_0x454c('0x21')](_0x385d8d,{'showHidden':![],'depth':null}));if(this[_0x454c('0xc')][_0x385d8d[_0x454c('0x20')]]){_[_0x454c('0x22')](this[_0x454c('0xc')][_0x385d8d[_0x454c('0x20')]],{'starttime':moment()[_0x454c('0x23')](_0x454c('0x24')),'lastevent':_0x454c('0x25'),'interface':_0x385d8d[_0x454c('0x26')]['substring'](0x0,_0x385d8d[_0x454c('0x26')][_0x454c('0x27')]('-')),'membername':_0x385d8d['channel'][_0x454c('0x28')](_0x385d8d['channel'][_0x454c('0x27')]('/')+0x1,_0x385d8d[_0x454c('0x26')][_0x454c('0x27')]('-'))},_['omit'](_0x385d8d,[_0x454c('0x29'),_0x454c('0x2a')]));logger[_0x454c('0x2b')](_0x454c('0x2c'),_0x385d8d[_0x454c('0x20')],this['channels'][_0x385d8d[_0x454c('0x20')]][_0x454c('0x2d')],this[_0x454c('0xc')][_0x385d8d[_0x454c('0x20')]][_0x454c('0x2e')]);logger[_0x454c('0x1e')](_0x454c('0x2f'),_0x385d8d['uniqueid'],util[_0x454c('0x21')](this[_0x454c('0xc')][_0x385d8d[_0x454c('0x20')]],{'showHidden':![],'depth':null}));if(this[_0x454c('0xf')][_0x385d8d[_0x454c('0x20')]])_[_0x454c('0x22')](this['channels'][_0x385d8d[_0x454c('0x20')]],this[_0x454c('0xf')][_0x385d8d['uniqueid']]);this[_0x454c('0x1d')](_0x454c('0x30'),_0x454c('0x31'),this[_0x454c('0xc')][_0x385d8d['uniqueid']]);logger['debug'](_0x454c('0x32'),_0x385d8d[_0x454c('0x20')],util[_0x454c('0x21')](this['channels'][_0x385d8d[_0x454c('0x20')]],{'showHidden':![],'depth':null}));ami[_0x454c('0x1d')](_0x454c('0x33'),this[_0x454c('0xc')][_0x385d8d[_0x454c('0x20')]]);}}}catch(_0xa8eed6){logger['error'](_0x454c('0x34'),_0x385d8d[_0x454c('0x20')],util[_0x454c('0x21')](_0xa8eed6,{'showHidden':![],'depth':null}));}};VoiceDialReport[_0x454c('0x1b')][_0x454c('0x35')]=function(_0x11b474){try{if(this[_0x454c('0x1c')](_0x11b474)){logger[_0x454c('0x1e')]('[%s][voiceDialReport][dialend]\x20event:',_0x11b474[_0x454c('0x20')],util[_0x454c('0x21')](_0x11b474,{'showHidden':![],'depth':null}));if(this[_0x454c('0xc')][_0x11b474['uniqueid']]){this['channels'][_0x11b474[_0x454c('0x20')]][_0x454c('0x36')]=_0x11b474['dialstatus'];if(_0x11b474[_0x454c('0x36')]===_0x454c('0x37')){this[_0x454c('0xc')][_0x11b474[_0x454c('0x20')]][_0x454c('0x38')]=_0x11b474[_0x454c('0x38')];this[_0x454c('0xc')][_0x11b474[_0x454c('0x20')]][_0x454c('0x39')]=_0x11b474['connectedlinename'];this['channels'][_0x11b474[_0x454c('0x20')]][_0x454c('0x3a')]=moment()['format'](_0x454c('0x24'));this[_0x454c('0xc')][_0x11b474[_0x454c('0x20')]][_0x454c('0x3b')]=_0x454c('0x3c');logger['info']('[%s][voiceDialReport][dialend]\x20agent:%s\x20lastevent:connect',_0x11b474[_0x454c('0x20')],_0x11b474[_0x454c('0x26')][_0x454c('0x28')](_0x11b474[_0x454c('0x26')][_0x454c('0x27')]('/')+0x1,_0x11b474[_0x454c('0x26')][_0x454c('0x27')]('-')));logger[_0x454c('0x1e')](_0x454c('0x3d'),_0x11b474['uniqueid'],util[_0x454c('0x21')](this['channels'][_0x11b474[_0x454c('0x20')]],{'showHidden':![],'depth':null}));ami[_0x454c('0x1d')](_0x454c('0x3e'),this[_0x454c('0xc')][_0x11b474['uniqueid']]);}logger[_0x454c('0x1e')](_0x454c('0x3f'),_0x11b474['uniqueid'],util[_0x454c('0x21')](this[_0x454c('0xc')][_0x11b474[_0x454c('0x20')]],{'showHidden':![],'depth':null}));this['emit']('voice:outbound',_0x454c('0x31'),this[_0x454c('0xc')][_0x11b474['uniqueid']]);}}}catch(_0x14429e){logger['error']('[%s][voiceDialReport][dialend]',_0x11b474[_0x454c('0x20')],util['inspect'](_0x14429e,{'showHidden':![],'depth':null}));}};VoiceDialReport['prototype'][_0x454c('0x16')]=function(_0x40ccd1){try{if(this[_0x454c('0x1c')](_0x40ccd1)){logger[_0x454c('0x1e')](_0x454c('0x40'),_0x40ccd1['uniqueid'],util[_0x454c('0x21')](_0x40ccd1,{'showHidden':![],'depth':null}));this[_0x454c('0x41')](_0x40ccd1['uniqueid'],_[_0x454c('0x42')](_0x40ccd1[_0x454c('0x43')])[0x0],_0x40ccd1[_0x454c('0x44')]);if(this[_0x454c('0x1c')](_0x40ccd1[_0x454c('0x43')])&&this[_0x454c('0x1c')](_0x40ccd1[_0x454c('0x43')][_0x454c('0x45')])){if(_[_0x454c('0x46')](this[_0x454c('0xc')][_0x40ccd1[_0x454c('0x20')]])){this['channels'][_0x40ccd1[_0x454c('0x20')]]={'routeId':_0x40ccd1[_0x454c('0x44')],'variables':this[_0x454c('0x10')][_0x40ccd1[_0x454c('0x20')]],'motionChannel':_0x454c('0x47')};logger[_0x454c('0x2b')](_0x454c('0x48'),_0x40ccd1[_0x454c('0x20')],_0x40ccd1['variable'][_0x454c('0x45')],_[_0x454c('0x42')](_0x40ccd1[_0x454c('0x43')])[0x0],_0x40ccd1['value']);logger[_0x454c('0x1e')]('[%s][voiceDialReport][varset]\x20sending\x20voice_outbound_channel:save\x20event:',_0x40ccd1[_0x454c('0x20')],util[_0x454c('0x21')](this[_0x454c('0xc')][_0x40ccd1[_0x454c('0x20')]],{'showHidden':![],'depth':null}));this[_0x454c('0x1d')](_0x454c('0x30'),'voice_outbound_channel:save',this[_0x454c('0xc')][_0x40ccd1[_0x454c('0x20')]]);}}}}catch(_0x10041e){logger[_0x454c('0x49')]('[%s][voiceDialReport][varset]',_0x40ccd1[_0x454c('0x20')],util[_0x454c('0x21')](_0x10041e,{'showHidden':![],'depth':null}));}};VoiceDialReport[_0x454c('0x1b')][_0x454c('0x41')]=function(_0x21f053,_0x364033,_0x39ff4f){var _0x52132a=[_0x454c('0x4a'),_0x454c('0x4b'),_0x454c('0x4c'),'rtpaudioqosjitterbridged',_0x454c('0x4d'),_0x454c('0x4e'),_0x454c('0x4f'),_0x454c('0x50'),_0x454c('0x51'),_0x454c('0x52'),'bridgepeer',_0x454c('0x53'),_0x454c('0x54'),_0x454c('0x55'),_0x454c('0x56'),'memberlastcall',_0x454c('0x2d'),_0x454c('0x57'),_0x454c('0x58')];if(!_[_0x454c('0x59')](_0x364033)&&!_[_0x454c('0x5a')](_0x52132a,_0x364033)){if(_['isUndefined'](this[_0x454c('0x10')][_0x21f053])){this[_0x454c('0x10')][_0x21f053]={};}this['variables'][_0x21f053][_0x364033]=_0x39ff4f;}};VoiceDialReport[_0x454c('0x1b')][_0x454c('0x1a')]=function(_0x24e0fd){try{if(this[_0x454c('0x1c')](_0x24e0fd)){logger[_0x454c('0x1e')](_0x454c('0x5b'),_0x24e0fd[_0x454c('0x20')],util[_0x454c('0x21')](_0x24e0fd,{'showHidden':![],'depth':null}));if(this[_0x454c('0xc')][_0x24e0fd['uniqueid']]){logger[_0x454c('0x2b')](_0x454c('0x5c'),_0x24e0fd[_0x454c('0x20')],_0x24e0fd[_0x454c('0x5d')]);this[_0x454c('0xc')][_0x24e0fd[_0x454c('0x20')]][_0x454c('0x5e')]=moment()[_0x454c('0x23')](_0x454c('0x24'));this['channels'][_0x24e0fd[_0x454c('0x20')]][_0x454c('0x5f')]=moment(this[_0x454c('0xc')][_0x24e0fd[_0x454c('0x20')]][_0x454c('0x5e')])['diff'](this[_0x454c('0xc')][_0x24e0fd[_0x454c('0x20')]][_0x454c('0x60')],_0x454c('0x61'));this[_0x454c('0xc')][_0x24e0fd[_0x454c('0x20')]][_0x454c('0x3b')]='complete';this[_0x454c('0xe')][_0x454c('0x62')]+=0x1;if(this[_0x454c('0xc')][_0x24e0fd[_0x454c('0x20')]][_0x454c('0x3a')]){this[_0x454c('0xe')][_0x454c('0x63')]+=0x1;this['channels'][_0x24e0fd[_0x454c('0x20')]][_0x454c('0x64')]=moment(this[_0x454c('0xc')][_0x24e0fd[_0x454c('0x20')]][_0x454c('0x3a')])[_0x454c('0x65')](this[_0x454c('0xc')][_0x24e0fd['uniqueid']]['starttime'],'seconds');this[_0x454c('0xc')][_0x24e0fd['uniqueid']][_0x454c('0x66')]=moment(this[_0x454c('0xc')][_0x24e0fd[_0x454c('0x20')]]['endtime'])['diff'](this[_0x454c('0xc')][_0x24e0fd['uniqueid']][_0x454c('0x3a')],_0x454c('0x61'));this[_0x454c('0xe')][_0x454c('0x67')]+=this[_0x454c('0xc')][_0x24e0fd['uniqueid']][_0x454c('0x64')]||0x0;this[_0x454c('0xe')]['sumBillable']+=this[_0x454c('0xc')][_0x24e0fd[_0x454c('0x20')]]['billableseconds'];}this[_0x454c('0xe')]['sumDuration']+=this[_0x454c('0xc')][_0x24e0fd[_0x454c('0x20')]][_0x454c('0x5f')];logger[_0x454c('0x1e')](_0x454c('0x68'),_0x24e0fd[_0x454c('0x20')],util['inspect'](this[_0x454c('0xc')][_0x24e0fd[_0x454c('0x20')]],{'showHidden':![],'depth':null}));ami[_0x454c('0x1d')](_0x454c('0x69'),this[_0x454c('0xc')][_0x24e0fd[_0x454c('0x20')]]);logger['debug'](_0x454c('0x6a'),_0x24e0fd['uniqueid'],util[_0x454c('0x21')](this[_0x454c('0xc')][_0x24e0fd['uniqueid']],{'showHidden':![],'depth':null}));ami[_0x454c('0x1d')](_0x454c('0x6b'),this[_0x454c('0xc')][_0x24e0fd['uniqueid']]);logger[_0x454c('0x1e')]('[%s][voiceDialReport][hangup]\x20sending\x20voice_outbound:save\x20event:',_0x24e0fd['uniqueid'],util[_0x454c('0x21')](this[_0x454c('0xc')][_0x24e0fd[_0x454c('0x20')]],{'showHidden':![],'depth':null}));this['emit']('voice:outbound',_0x454c('0x6c'),this[_0x454c('0xe')]);logger[_0x454c('0x2b')](_0x454c('0x6d'),JSON[_0x454c('0x6e')](this[_0x454c('0xc')][_0x24e0fd[_0x454c('0x20')]]));logger[_0x454c('0x1e')]('[%s][voiceDialReport][hangup]\x20sending\x20voice_outbound_channel:remove\x20event:',_0x24e0fd[_0x454c('0x20')],util[_0x454c('0x21')](this['channels'][_0x24e0fd[_0x454c('0x20')]],{'showHidden':![],'depth':null}));this[_0x454c('0x1d')]('voice:outbound',_0x454c('0x6f'),this[_0x454c('0xc')][_0x24e0fd['uniqueid']]);delete this['channels'][_0x24e0fd[_0x454c('0x20')]];}else if(this[_0x454c('0xc')][_0x24e0fd[_0x454c('0x70')]]){this[_0x454c('0xc')][_0x24e0fd[_0x454c('0x70')]][_0x454c('0x20')]=this[_0x454c('0xc')][_0x24e0fd[_0x454c('0x70')]][_0x454c('0x71')];}if(this['variables'][_0x24e0fd['uniqueid']]){delete this[_0x454c('0x10')][_0x24e0fd[_0x454c('0x20')]];}}}catch(_0x2f5207){logger[_0x454c('0x49')](_0x454c('0x72'),_0x24e0fd[_0x454c('0x20')],util['inspect'](_0x2f5207,{'showHidden':![],'depth':null}));}};VoiceDialReport['prototype'][_0x454c('0x18')]=function(_0x3856a4){try{if(this[_0x454c('0x1c')](_0x3856a4)){logger['debug'](_0x454c('0x73'),_0x3856a4['uniqueid'],util[_0x454c('0x21')](_0x3856a4,{'showHidden':![],'depth':null}));if(_0x3856a4[_0x454c('0x74')][_0x454c('0x75')]()===_0x454c('0x76')){_0x3856a4[_0x454c('0x77')]=(_0x3856a4[_0x454c('0x78')]||_0x3856a4[_0x454c('0x77')])[_0x454c('0x75')]();if(_[_0x454c('0x79')](_0x3856a4[_0x454c('0x77')],_0x454c('0x7a'))){if(_[_0x454c('0x46')](this[_0x454c('0xf')][_0x3856a4[_0x454c('0x20')]]))this[_0x454c('0xf')][_0x3856a4[_0x454c('0x20')]]={};logger[_0x454c('0x2b')](_0x454c('0x7b'),_0x3856a4[_0x454c('0x20')],_0x3856a4[_0x454c('0x74')],_0x3856a4[_0x454c('0x77')]);var _0x1edb1c=_0x3856a4['applicationdata']['split']('=');var _0xa4ad2b=_0x1edb1c[0x0]['match'](/cdr\((.*)\)/);if(_0xa4ad2b)this[_0x454c('0xf')][_0x3856a4['uniqueid']][_0xa4ad2b[0x1]]=_0x1edb1c[0x1];}}}}catch(_0x5120e1){logger[_0x454c('0x49')](_0x454c('0x7c'),_0x3856a4['uniqueid'],util[_0x454c('0x21')](_0x5120e1,{'showHidden':![],'depth':null}));}};module['exports']=VoiceDialReport;
\ No newline at end of file
+var _0x2627=['voice:outbound','voice_outbound_channel:save','[%s][voiceDialReport][dialbegin]\x20sending\x20dialbegin\x20event:','custom:dialbegin','[%s][voiceDialReport][dialbegin]','dialstatus','connectedlinenum','connectedlinename','answertime','format','lastevent','connect','[%s][voiceDialReport][dialend]\x20agent:%s\x20lastevent:connect','custom:dialconnect','[%s][voiceDialReport][dialend]\x20sending\x20voice_outbound_channel:save\x20event:','error','[%s][voiceDialReport][dialend]','[%s][voiceDialReport][varset]\x20event:','addVariable','keys','variable','value','outboundrouteid','[%s][voiceDialReport][varset]\x20outboundrouteid:%s\x20variable:%s\x20value:%s','[%s][voiceDialReport][varset]\x20sending\x20voice_outbound_channel:save\x20event:','[%s][voiceDialReport][varset]','rtpaudioqos','rtpaudioqosbridged','rtpaudioqosjitter','rtpaudioqosloss','rtpaudioqoslossbridged','rtpaudioqosrtt','rtpaudioqosrttbridged','sipcallid','bridgepeer','bridgepvtcallid','memberdynamic','memberlastcall','memberpenalty','memberrealtime','isNil','includes','cause-txt','endtime','duration','diff','starttime','answered','holdtime','seconds','billableseconds','sumHoldTime','sumBillable','[%s][voiceDialReport][hangup]\x20sending\x20voiceDialReport\x20event:','custom:voiceDialReport','[%s][voiceDialReport][hangup]\x20sending\x20voice_outbound:save\x20event:','voice_outbound:save','[DEBUG]\x20Emit\x20voice_outbound_channel:remove\x20event','stringify','[%s][voiceDialReport][hangup]\x20sending\x20voice_outbound_channel:remove\x20event:','voice_outbound_channel:remove','linkedid','destuniqueid','[%s][voiceDialReport][hangup]','[%s][voiceDialReport][newexten]\x20event:','application','toLowerCase','set','applicationdata','appdata','startsWith','cdr(','isUndefined','[%s][voiceDialReport][newexten]\x20application:%s\x20appdata:%s','split','[%s][voiceDialReport][newexten]','exports','lodash','moment','util','../../../config/environment','ami','redis','defaults','outboundChannels','outbound','variables','dialbegin','syncDialBegin','bind','dialend','syncDialEnd','varset','syncVarSet','newexten','syncNewExten','hangup','syncHangup','prototype','isNotNull','emit','debug','[%s][voiceDialReport][dialbegin]\x20event:','uniqueid','inspect','channels','YYYY-MM-DD\x20HH:mm:ss','called','channel','substring','lastIndexOf','omit','event','privilege','info','membername','interface','[%s][voiceDialReport][dialbegin]\x20sending\x20voice_outbound_channel:save\x20event:','applications','merge'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x2627,0xc5));var _0x7262=function(_0x5a4155,_0x4b2b70){_0x5a4155=_0x5a4155-0x0;var _0x4b1587=_0x2627[_0x5a4155];return _0x4b1587;};'use strict';var _=require(_0x7262('0x0'));var moment=require(_0x7262('0x1'));var util=require(_0x7262('0x2'));var Redis=require('ioredis');var config=require(_0x7262('0x3'));var logger=require('../../../config/logger')(_0x7262('0x4'));var ami=require('../ami');config[_0x7262('0x5')]=_[_0x7262('0x6')](config[_0x7262('0x5')],{'host':'localhost','port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x7262('0x5')]));function VoiceDialReport(_0x2a7941){this['channels']=_0x2a7941[_0x7262('0x7')];this[_0x7262('0x8')]=_0x2a7941[_0x7262('0x8')];this['applications']={};this[_0x7262('0x9')]={};ami['on'](_0x7262('0xa'),this[_0x7262('0xb')][_0x7262('0xc')](this));ami['on'](_0x7262('0xd'),this[_0x7262('0xe')][_0x7262('0xc')](this));ami['on'](_0x7262('0xf'),this[_0x7262('0x10')][_0x7262('0xc')](this));ami['on'](_0x7262('0x11'),this[_0x7262('0x12')]['bind'](this));ami['on'](_0x7262('0x13'),this[_0x7262('0x14')][_0x7262('0xc')](this));}VoiceDialReport[_0x7262('0x15')][_0x7262('0x16')]=function(_0x41e7aa){return _0x41e7aa!==null&&!_['isUndefined'](_0x41e7aa);};VoiceDialReport[_0x7262('0x15')][_0x7262('0x17')]=function(_0x1d2167,_0x433b98,_0x4b7645){io['to'](_0x1d2167)[_0x7262('0x17')](_0x433b98,_0x4b7645);};VoiceDialReport[_0x7262('0x15')][_0x7262('0xb')]=function(_0x527130){try{if(this[_0x7262('0x16')](_0x527130)){logger[_0x7262('0x18')](_0x7262('0x19'),_0x527130[_0x7262('0x1a')],util[_0x7262('0x1b')](_0x527130,{'showHidden':![],'depth':null}));if(this[_0x7262('0x1c')][_0x527130['uniqueid']]){_['merge'](this['channels'][_0x527130['uniqueid']],{'starttime':moment()['format'](_0x7262('0x1d')),'lastevent':_0x7262('0x1e'),'interface':_0x527130[_0x7262('0x1f')][_0x7262('0x20')](0x0,_0x527130[_0x7262('0x1f')]['lastIndexOf']('-')),'membername':_0x527130[_0x7262('0x1f')][_0x7262('0x20')](_0x527130[_0x7262('0x1f')][_0x7262('0x21')]('/')+0x1,_0x527130[_0x7262('0x1f')][_0x7262('0x21')]('-'))},_[_0x7262('0x22')](_0x527130,[_0x7262('0x23'),_0x7262('0x24')]));logger[_0x7262('0x25')]('[%s][voiceDialReport][dialbegin]\x20agent:%s\x20interface:%s\x20lastevent:called',_0x527130[_0x7262('0x1a')],this[_0x7262('0x1c')][_0x527130['uniqueid']][_0x7262('0x26')],this['channels'][_0x527130[_0x7262('0x1a')]][_0x7262('0x27')]);logger[_0x7262('0x18')](_0x7262('0x28'),_0x527130[_0x7262('0x1a')],util['inspect'](this[_0x7262('0x1c')][_0x527130[_0x7262('0x1a')]],{'showHidden':![],'depth':null}));if(this[_0x7262('0x29')][_0x527130['uniqueid']])_[_0x7262('0x2a')](this[_0x7262('0x1c')][_0x527130['uniqueid']],this[_0x7262('0x29')][_0x527130[_0x7262('0x1a')]]);this[_0x7262('0x17')](_0x7262('0x2b'),_0x7262('0x2c'),this[_0x7262('0x1c')][_0x527130[_0x7262('0x1a')]]);logger['debug'](_0x7262('0x2d'),_0x527130[_0x7262('0x1a')],util[_0x7262('0x1b')](this['channels'][_0x527130[_0x7262('0x1a')]],{'showHidden':![],'depth':null}));ami[_0x7262('0x17')](_0x7262('0x2e'),this[_0x7262('0x1c')][_0x527130[_0x7262('0x1a')]]);}}}catch(_0x5145b0){logger['error'](_0x7262('0x2f'),_0x527130['uniqueid'],util[_0x7262('0x1b')](_0x5145b0,{'showHidden':![],'depth':null}));}};VoiceDialReport[_0x7262('0x15')]['syncDialEnd']=function(_0x4b09da){try{if(this[_0x7262('0x16')](_0x4b09da)){logger[_0x7262('0x18')]('[%s][voiceDialReport][dialend]\x20event:',_0x4b09da['uniqueid'],util['inspect'](_0x4b09da,{'showHidden':![],'depth':null}));if(this[_0x7262('0x1c')][_0x4b09da[_0x7262('0x1a')]]){this[_0x7262('0x1c')][_0x4b09da['uniqueid']][_0x7262('0x30')]=_0x4b09da['dialstatus'];if(_0x4b09da[_0x7262('0x30')]==='ANSWER'){this[_0x7262('0x1c')][_0x4b09da[_0x7262('0x1a')]]['connectedlinenum']=_0x4b09da[_0x7262('0x31')];this[_0x7262('0x1c')][_0x4b09da[_0x7262('0x1a')]][_0x7262('0x32')]=_0x4b09da[_0x7262('0x32')];this['channels'][_0x4b09da[_0x7262('0x1a')]][_0x7262('0x33')]=moment()[_0x7262('0x34')](_0x7262('0x1d'));this['channels'][_0x4b09da[_0x7262('0x1a')]][_0x7262('0x35')]=_0x7262('0x36');logger['info'](_0x7262('0x37'),_0x4b09da['uniqueid'],_0x4b09da[_0x7262('0x1f')][_0x7262('0x20')](_0x4b09da[_0x7262('0x1f')][_0x7262('0x21')]('/')+0x1,_0x4b09da['channel'][_0x7262('0x21')]('-')));logger[_0x7262('0x18')]('[%s][voiceDialReport][dialend]\x20sending\x20dialconnect\x20event:',_0x4b09da[_0x7262('0x1a')],util[_0x7262('0x1b')](this['channels'][_0x4b09da[_0x7262('0x1a')]],{'showHidden':![],'depth':null}));ami[_0x7262('0x17')](_0x7262('0x38'),this[_0x7262('0x1c')][_0x4b09da[_0x7262('0x1a')]]);}logger['debug'](_0x7262('0x39'),_0x4b09da[_0x7262('0x1a')],util[_0x7262('0x1b')](this[_0x7262('0x1c')][_0x4b09da[_0x7262('0x1a')]],{'showHidden':![],'depth':null}));this[_0x7262('0x17')](_0x7262('0x2b'),_0x7262('0x2c'),this[_0x7262('0x1c')][_0x4b09da['uniqueid']]);}}}catch(_0x55225b){logger[_0x7262('0x3a')](_0x7262('0x3b'),_0x4b09da[_0x7262('0x1a')],util['inspect'](_0x55225b,{'showHidden':![],'depth':null}));}};VoiceDialReport['prototype']['syncVarSet']=function(_0x43e75d){try{if(this['isNotNull'](_0x43e75d)){logger[_0x7262('0x18')](_0x7262('0x3c'),_0x43e75d['uniqueid'],util[_0x7262('0x1b')](_0x43e75d,{'showHidden':![],'depth':null}));this[_0x7262('0x3d')](_0x43e75d[_0x7262('0x1a')],_[_0x7262('0x3e')](_0x43e75d[_0x7262('0x3f')])[0x0],_0x43e75d[_0x7262('0x40')]);if(this[_0x7262('0x16')](_0x43e75d[_0x7262('0x3f')])&&this[_0x7262('0x16')](_0x43e75d[_0x7262('0x3f')][_0x7262('0x41')])){if(_['isUndefined'](this[_0x7262('0x1c')][_0x43e75d[_0x7262('0x1a')]])){this[_0x7262('0x1c')][_0x43e75d[_0x7262('0x1a')]]={'routeId':_0x43e75d['value'],'variables':this[_0x7262('0x9')][_0x43e75d[_0x7262('0x1a')]]};logger['info'](_0x7262('0x42'),_0x43e75d[_0x7262('0x1a')],_0x43e75d[_0x7262('0x3f')][_0x7262('0x41')],_['keys'](_0x43e75d[_0x7262('0x3f')])[0x0],_0x43e75d[_0x7262('0x40')]);logger[_0x7262('0x18')](_0x7262('0x43'),_0x43e75d[_0x7262('0x1a')],util[_0x7262('0x1b')](this['channels'][_0x43e75d[_0x7262('0x1a')]],{'showHidden':![],'depth':null}));this[_0x7262('0x17')](_0x7262('0x2b'),_0x7262('0x2c'),this[_0x7262('0x1c')][_0x43e75d[_0x7262('0x1a')]]);}}}}catch(_0xcf5612){logger['error'](_0x7262('0x44'),_0x43e75d[_0x7262('0x1a')],util[_0x7262('0x1b')](_0xcf5612,{'showHidden':![],'depth':null}));}};VoiceDialReport[_0x7262('0x15')]['addVariable']=function(_0x41b678,_0x56b459,_0x555901){var _0x2eb228=[_0x7262('0x45'),_0x7262('0x46'),_0x7262('0x47'),'rtpaudioqosjitterbridged',_0x7262('0x48'),_0x7262('0x49'),_0x7262('0x4a'),_0x7262('0x4b'),_0x7262('0x4c'),'sipuri',_0x7262('0x4d'),_0x7262('0x4e'),'membercalls',_0x7262('0x4f'),'memberinterface',_0x7262('0x50'),_0x7262('0x26'),_0x7262('0x51'),_0x7262('0x52')];if(!_[_0x7262('0x53')](_0x56b459)&&!_[_0x7262('0x54')](_0x2eb228,_0x56b459)){if(_['isUndefined'](this[_0x7262('0x9')][_0x41b678])){this[_0x7262('0x9')][_0x41b678]={};}this['variables'][_0x41b678][_0x56b459]=_0x555901;}};VoiceDialReport[_0x7262('0x15')][_0x7262('0x14')]=function(_0x18eccd){try{if(this['isNotNull'](_0x18eccd)){logger[_0x7262('0x18')]('[%s][voiceDialReport][hangup]\x20event:',_0x18eccd[_0x7262('0x1a')],util[_0x7262('0x1b')](_0x18eccd,{'showHidden':![],'depth':null}));if(this['channels'][_0x18eccd[_0x7262('0x1a')]]){logger[_0x7262('0x25')]('[%s][voiceDialReport][hangup]\x20reason:%s\x20lasteevent:complete',_0x18eccd[_0x7262('0x1a')],_0x18eccd[_0x7262('0x55')]);this[_0x7262('0x1c')][_0x18eccd[_0x7262('0x1a')]][_0x7262('0x56')]=moment()[_0x7262('0x34')](_0x7262('0x1d'));this[_0x7262('0x1c')][_0x18eccd[_0x7262('0x1a')]][_0x7262('0x57')]=moment(this[_0x7262('0x1c')][_0x18eccd[_0x7262('0x1a')]][_0x7262('0x56')])[_0x7262('0x58')](this[_0x7262('0x1c')][_0x18eccd[_0x7262('0x1a')]][_0x7262('0x59')],'seconds');this[_0x7262('0x1c')][_0x18eccd[_0x7262('0x1a')]]['lastevent']='complete';this['outbound']['total']+=0x1;if(this[_0x7262('0x1c')][_0x18eccd[_0x7262('0x1a')]][_0x7262('0x33')]){this[_0x7262('0x8')][_0x7262('0x5a')]+=0x1;this[_0x7262('0x1c')][_0x18eccd[_0x7262('0x1a')]][_0x7262('0x5b')]=moment(this[_0x7262('0x1c')][_0x18eccd[_0x7262('0x1a')]][_0x7262('0x33')])[_0x7262('0x58')](this[_0x7262('0x1c')][_0x18eccd[_0x7262('0x1a')]][_0x7262('0x59')],_0x7262('0x5c'));this[_0x7262('0x1c')][_0x18eccd[_0x7262('0x1a')]][_0x7262('0x5d')]=moment(this[_0x7262('0x1c')][_0x18eccd[_0x7262('0x1a')]][_0x7262('0x56')])['diff'](this[_0x7262('0x1c')][_0x18eccd[_0x7262('0x1a')]]['answertime'],_0x7262('0x5c'));this[_0x7262('0x8')][_0x7262('0x5e')]+=this[_0x7262('0x1c')][_0x18eccd['uniqueid']][_0x7262('0x5b')]||0x0;this[_0x7262('0x8')][_0x7262('0x5f')]+=this[_0x7262('0x1c')][_0x18eccd[_0x7262('0x1a')]][_0x7262('0x5d')];}this[_0x7262('0x8')]['sumDuration']+=this[_0x7262('0x1c')][_0x18eccd['uniqueid']]['duration'];logger[_0x7262('0x18')](_0x7262('0x60'),_0x18eccd['uniqueid'],util[_0x7262('0x1b')](this[_0x7262('0x1c')][_0x18eccd[_0x7262('0x1a')]],{'showHidden':![],'depth':null}));ami['emit'](_0x7262('0x61'),this[_0x7262('0x1c')][_0x18eccd[_0x7262('0x1a')]]);logger[_0x7262('0x18')]('[%s][voiceDialReport][hangup]\x20sending\x20dialend\x20event:',_0x18eccd[_0x7262('0x1a')],util[_0x7262('0x1b')](this['channels'][_0x18eccd['uniqueid']],{'showHidden':![],'depth':null}));ami[_0x7262('0x17')]('custom:dialend',this[_0x7262('0x1c')][_0x18eccd[_0x7262('0x1a')]]);logger[_0x7262('0x18')](_0x7262('0x62'),_0x18eccd['uniqueid'],util[_0x7262('0x1b')](this[_0x7262('0x1c')][_0x18eccd['uniqueid']],{'showHidden':![],'depth':null}));this[_0x7262('0x17')](_0x7262('0x2b'),_0x7262('0x63'),this[_0x7262('0x8')]);logger['info'](_0x7262('0x64'),JSON[_0x7262('0x65')](this[_0x7262('0x1c')][_0x18eccd['uniqueid']]));logger[_0x7262('0x18')](_0x7262('0x66'),_0x18eccd[_0x7262('0x1a')],util[_0x7262('0x1b')](this[_0x7262('0x1c')][_0x18eccd['uniqueid']],{'showHidden':![],'depth':null}));this[_0x7262('0x17')](_0x7262('0x2b'),_0x7262('0x67'),this['channels'][_0x18eccd['uniqueid']]);delete this[_0x7262('0x1c')][_0x18eccd[_0x7262('0x1a')]];}else if(this[_0x7262('0x1c')][_0x18eccd[_0x7262('0x68')]]){this[_0x7262('0x1c')][_0x18eccd[_0x7262('0x68')]]['uniqueid']=this['channels'][_0x18eccd[_0x7262('0x68')]][_0x7262('0x69')];}if(this['variables'][_0x18eccd[_0x7262('0x1a')]]){delete this['variables'][_0x18eccd[_0x7262('0x1a')]];}}}catch(_0x4b6d0f){logger['error'](_0x7262('0x6a'),_0x18eccd[_0x7262('0x1a')],util[_0x7262('0x1b')](_0x4b6d0f,{'showHidden':![],'depth':null}));}};VoiceDialReport[_0x7262('0x15')][_0x7262('0x12')]=function(_0x12ca4d){try{if(this[_0x7262('0x16')](_0x12ca4d)){logger[_0x7262('0x18')](_0x7262('0x6b'),_0x12ca4d['uniqueid'],util['inspect'](_0x12ca4d,{'showHidden':![],'depth':null}));if(_0x12ca4d[_0x7262('0x6c')][_0x7262('0x6d')]()===_0x7262('0x6e')){_0x12ca4d[_0x7262('0x6f')]=(_0x12ca4d[_0x7262('0x70')]||_0x12ca4d['applicationdata'])['toLowerCase']();if(_[_0x7262('0x71')](_0x12ca4d[_0x7262('0x6f')],_0x7262('0x72'))){if(_[_0x7262('0x73')](this[_0x7262('0x29')][_0x12ca4d[_0x7262('0x1a')]]))this[_0x7262('0x29')][_0x12ca4d[_0x7262('0x1a')]]={};logger[_0x7262('0x25')](_0x7262('0x74'),_0x12ca4d[_0x7262('0x1a')],_0x12ca4d[_0x7262('0x6c')],_0x12ca4d[_0x7262('0x6f')]);var _0x449197=_0x12ca4d[_0x7262('0x6f')][_0x7262('0x75')]('=');var _0x312eb8=_0x449197[0x0]['match'](/cdr\((.*)\)/);if(_0x312eb8)this['applications'][_0x12ca4d['uniqueid']][_0x312eb8[0x1]]=_0x449197[0x1];}}}}catch(_0x1e9c1c){logger[_0x7262('0x3a')](_0x7262('0x76'),_0x12ca4d[_0x7262('0x1a')],util[_0x7262('0x1b')](_0x1e9c1c,{'showHidden':![],'depth':null}));}};module[_0x7262('0x77')]=VoiceDialReport;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4711=['[%s][voiceQueueReport][blindTransfer]\x20name:%s\x20type:%s\x20transferexten:%s\x20transferuniqueid:%s','BlindTransfer','context','[%s][voiceQueueReport][musiconholdstart]','isNil','mohstarttime','[%s][voiceQueueReport][musiconholdstart]\x20mohstarttime:%s','[%s][voiceQueueReport][musiconholdstop]','[%s][voiceQueueReport][musiconholdstop]\x20mohtime:%s','mohtime','[%s][voiceQueueReport][newexten]\x20event:','application','set','appdata','CDR(routeAlias)','applicationdata','cdr(','[%s][voiceQueueReport][newexten]\x20application:%s\x20appdata:%s','split','match','exports','lodash','moment','util','md5','ioredis','../../../config/environment','../../../config/logger','../ami','redis','defaults','localhost','socket.io-emitter','prototype','enqueue','tail','sequence','queueReports','agents','channels','queueChannels','voiceQueues','flagQueueSummary','campaigns','variables','queuesummary','bind','queuesummarycomplete','syncQueueSummaryComplete','queuecallerjoin','syncQueueCallerJoin','queuecallerabandon','syncQueueCallerAbandon','queuecallerleave','syncQueueCallerLeave','agentcomplete','syncAgentComplete','agentconnect','syncAgentConnect','varset','syncVarSet','hangup','syncHangup','fullybooted','syncFullyBooted','newexten','syncNewExten','musiconholdstart','syncMusicOnHoldStart','musiconholdstop','syncMusicOnHoldStop','attendedtransfer','syncAttendedTransfer','blindtransfer','syncBlindTransfer','loopQueueSummary','loopQueueShow','isEmpty','hasOwnProperty','originated','talking','pTalking','unlockRR','clearZombieChannels','switch','Action','status','channel','message','error','[%s][voiceQueueReport][checkChannel]','inspect','[%s][voiceQueueReport][checkQueueReport]','[%s][voiceQueueReport][checkVariables]','[FullyBooted]\x20clear\x20realtime','clearQueueReport','emitVoiceQueueChannelRemove','clearqueuereport','emit','emitVoiceQueueChannelSave','debug','uniqueid','voice:queue:%s','name','voice_queue_channel:save','[%s][voiceQueueReport][',']\x20sending\x20voice_queue_channel:remove\x20event:','voice_queue_channel:remove','voice_queue_presence:remove','emitVoiceQueueSummary','type','inbound','strategy','answered','available','loggedIn','sumDuration','sumHoldTime','total','unmanaged','abandoned','waiting','Trunk','active','Interval','stringify','[voiceQueueReport][','format','voice_queue:save','isNotNull','isUndefined','queues','catch','[voiceQueueReport][queues]','then','[voiceQueueReport][queuesummary]','syncQueueSummary','queue','[voiceQueueReport][queuesummary]\x20event:','[voiceQueueReport][queuesummary]\x20name:%s','countBy','callers','toNumber','loggedin','custom:queuesummary','[voiceQueueReport][queuesummarycomplete]\x20event:','queuecallerjoinAt','YYYY-MM-DD\x20HH:mm:ss','position','count','routealias','info','[voiceQueueReport][queuecallerjoin]\x20name:%s\x20type:%s','pick','keys','push','[%s][voiceQueueReport][queuecallerjoin]','last','queuecallercomplete','queuecallercompleteAt','holdtime','originalposition','queuecallerabandonAt','queuecallerexitreason','lastAssignedTo','[%s][voiceQueueReport][queuecallerabandon]','[%s][voiceQueueReport][queuecallerleave]','connectedlinenum','[voiceQueueReport][queuecallerleave]\x20name:%s\x20type:%s\x20connectedlinenum:%s\x20connectedlinename:%s','connectedlinename','[%s][voiceQueueReport][agentconnect]','COMPLETEDBYAGENT','[voiceQueueReport][agentconnect]\x20name:%s\x20type:%s\x20queuecallerexitreason:COMPLETEDBYAGENT','[%s][voiceQueueReport][agentcomplete]','assigned','queuecallerexitAt','transfer','reason','COMPLETED','[voiceQueueReport][agentcomplete]\x20name:%s\x20type:%s\x20queuecallerexitreason:COMPLETED','startsWith','toLowerCase','local/','linkedid','queuecallerexit','add','seconds','FORWARDTRANSFER','FORWARD','transferexten','destexten','transferuniqueid','[voiceQueueReport][agentcomplete]\x20name:%s\x20type:%s\x20queuecallerexitreason:FORWARDTRANSFER','COMPLETEDBY','toUpperCase','[voiceQueueReport][agentcomplete]\x20name:%s\x20type:%s\x20queuecallerexitreason:%s','[%s][voiceQueueReport][varset]','addVariable','variable','value','queuestatus','TIMEOUT','timeout','[%s][voiceQueueReport][varset]\x20sending\x20timeout\x20event:','queuecallerleaveAt','queueposition','EXITWITHKEY','rtpaudioqosbridged','rtpaudioqosjitter','rtpaudioqosjitterbridged','rtpaudioqosloss','rtpaudioqoslossbridged','rtpaudioqosrtt','sipcallid','sipuri','bridgepvtcallid','membercalls','memberdynamic','memberinterface','memberpenalty','includes','[%s][voiceQueueReport][hangup]','length','diff','milliseconds','lastevent','[%s][voiceQueueReport][hangup]\x20sending\x20queuecallerunmanaged\x20event:','custom:queuecallerunmanaged','custom:queuecallerabandon','[%s][voiceQueueReport][hangup]\x20name:%s\x20type:%s\x20reason:%s','cause-txt','[%s][voiceQueueReport][hangup]\x20sending\x20voiceQueueReport\x20event:','custom:voiceQueueReport','[%s][voiceQueueReport][attendedtransfer]','secondtransfereruniqueid','transfertype','ATTENDED','transfereeuniqueid','[%s][voiceQueueReport][attendedTransfer]\x20name:%s\x20type:%s\x20transferexten:%s\x20transferuniqueid:%s','transfertargetuniqueid','origtransfererexten','origtransfereruniqueid','ATTENDEDTRANSFER','[%s][voiceQueueReport][blindtransfer]','BLINDTRANSFER','BLIND','extension'];(function(_0x34755e,_0x564e61){var _0x9831d=function(_0x4748ed){while(--_0x4748ed){_0x34755e['push'](_0x34755e['shift']());}};_0x9831d(++_0x564e61);}(_0x4711,0x10c));var _0x1471=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x4711[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0x1471('0x0'));var moment=require(_0x1471('0x1'));var util=require(_0x1471('0x2'));var md5=require(_0x1471('0x3'));var Redis=require(_0x1471('0x4'));var config=require(_0x1471('0x5'));var logger=require(_0x1471('0x6'))('ami');var ami=require(_0x1471('0x7'));var QueueReport=require('../model/queueReport');config[_0x1471('0x8')]=_[_0x1471('0x9')](config[_0x1471('0x8')],{'host':_0x1471('0xa'),'port':0x18eb});var io=require(_0x1471('0xb'))(new Redis(config['redis']));var Sequence=function(){};Sequence[_0x1471('0xc')][_0x1471('0xd')]=function(_0x319c27){this[_0x1471('0xe')]=this[_0x1471('0xe')]?this['tail']['finally'](_0x319c27):_0x319c27();};function VoiceQueueReport(_0x1d1866){this[_0x1471('0xf')]=new Sequence();this[_0x1471('0x10')]={};this[_0x1471('0x11')]=_0x1d1866[_0x1471('0x11')];this[_0x1471('0x12')]=_0x1d1866[_0x1471('0x13')];this[_0x1471('0x14')]=_0x1d1866['voiceQueues'];this[_0x1471('0x15')]=!![];this[_0x1471('0x16')]=_0x1d1866[_0x1471('0x16')];this[_0x1471('0x17')]={};ami['on'](_0x1471('0x18'),this['syncQueueSummary'][_0x1471('0x19')](this));ami['on'](_0x1471('0x1a'),this[_0x1471('0x1b')]['bind'](this));ami['on'](_0x1471('0x1c'),this[_0x1471('0x1d')][_0x1471('0x19')](this));ami['on'](_0x1471('0x1e'),this[_0x1471('0x1f')][_0x1471('0x19')](this));ami['on'](_0x1471('0x20'),this[_0x1471('0x21')][_0x1471('0x19')](this));ami['on'](_0x1471('0x22'),this[_0x1471('0x23')]['bind'](this));ami['on'](_0x1471('0x24'),this[_0x1471('0x25')][_0x1471('0x19')](this));ami['on'](_0x1471('0x26'),this[_0x1471('0x27')][_0x1471('0x19')](this));ami['on'](_0x1471('0x28'),this[_0x1471('0x29')]['bind'](this));ami['on'](_0x1471('0x2a'),this[_0x1471('0x2b')][_0x1471('0x19')](this));ami['on'](_0x1471('0x2c'),this[_0x1471('0x2d')][_0x1471('0x19')](this));ami['on'](_0x1471('0x2e'),this[_0x1471('0x2f')][_0x1471('0x19')](this));ami['on'](_0x1471('0x30'),this[_0x1471('0x31')][_0x1471('0x19')](this));ami['on'](_0x1471('0x32'),this[_0x1471('0x33')]['bind'](this));ami['on'](_0x1471('0x34'),this[_0x1471('0x35')]['bind'](this));this[_0x1471('0x36')]();this[_0x1471('0x37')]();}function clearChannels(_0x45e3df){if(!_[_0x1471('0x38')](_0x45e3df)){for(var _0x5a2821 in _0x45e3df){if(_0x45e3df['hasOwnProperty'](_0x5a2821)){delete _0x45e3df[_0x5a2821];}}}}function clearCampaigns(_0x1afe54){if(!_[_0x1471('0x38')](_0x1afe54)){for(var _0x2a081e in _0x1afe54){if(_0x1afe54[_0x1471('0x39')](_0x2a081e)){_0x1afe54[_0x2a081e][_0x1471('0x3a')]=0x0;}}}}function clearVoiceQueues(_0x33394e){if(!_['isEmpty'](_0x33394e)){for(var _0x44b7a1 in _0x33394e){if(_0x33394e['hasOwnProperty'](_0x44b7a1)){_0x33394e[_0x44b7a1][_0x1471('0x3a')]=0x0;_0x33394e[_0x44b7a1][_0x1471('0x3b')]=0x0;_0x33394e[_0x44b7a1][_0x1471('0x3c')]=0x0;_0x33394e[_0x44b7a1]['waiting']=0x0;_0x33394e[_0x44b7a1]['queueStatusComplete']=!![];}}}}function clearAgentBooked(_0x2ebcf0){if(!_['isEmpty'](_0x2ebcf0)){for(var _0x49cc50 in _0x2ebcf0){if(_0x2ebcf0[_0x1471('0x39')](_0x49cc50)){_0x2ebcf0[_0x49cc50][_0x1471('0x3d')]=!![];}}}}VoiceQueueReport[_0x1471('0xc')][_0x1471('0x3e')]=function(){var _0x450e90=this;for(var _0x3a5b4c in this['channels']){if(this[_0x1471('0x12')][_0x1471('0x39')](_0x3a5b4c)&&!this[_0x1471('0x12')][_0x3a5b4c][_0x1471('0x3f')]){this[_0x1471('0xf')][_0x1471('0xd')](function(){if(!_['isNil'](_0x450e90[_0x1471('0x12')][_0x3a5b4c])){return ami[_0x1471('0x40')]({'action':_0x1471('0x41'),'channel':_0x450e90[_0x1471('0x12')][_0x3a5b4c][_0x1471('0x42')]})['catch'](function(_0x1ab340){if(_0x1ab340[_0x1471('0x43')]==='No\x20such\x20channel'){setTimeout(function(){if(_0x450e90[_0x1471('0x12')][_0x3a5b4c]){delete _0x450e90[_0x1471('0x12')][_0x3a5b4c];logger[_0x1471('0x44')](_0x1471('0x45'),_0x3a5b4c,util[_0x1471('0x46')](_0x1ab340,{'showHidden':![],'depth':null}));}if(_0x450e90[_0x1471('0x10')][_0x3a5b4c]){delete _0x450e90[_0x1471('0x10')][_0x3a5b4c];logger['error'](_0x1471('0x47'),_0x3a5b4c,util[_0x1471('0x46')](_0x1ab340,{'showHidden':![],'depth':null}));}if(_0x450e90['variables'][_0x3a5b4c]){delete _0x450e90[_0x1471('0x17')][_0x3a5b4c];logger['error'](_0x1471('0x48'),_0x3a5b4c,util[_0x1471('0x46')](_0x1ab340,{'showHidden':![],'depth':null}));}},0x1f40);}});}});}}};VoiceQueueReport[_0x1471('0xc')][_0x1471('0x2b')]=function(){logger['error'](_0x1471('0x49'));clearChannels(this['channels']);this[_0x1471('0x4a')](this['queueReports']);clearAgentBooked(this[_0x1471('0x11')]);clearVoiceQueues(this['voiceQueues']);clearCampaigns(this[_0x1471('0x16')]);};VoiceQueueReport[_0x1471('0xc')][_0x1471('0x4a')]=function(_0x263678){var _0x50eaa1=this;if(!_['isEmpty'](_0x263678)){for(var _0x7bb807 in _0x263678){if(_0x263678[_0x1471('0x39')](_0x7bb807)){_0x50eaa1[_0x1471('0x4b')](_0x263678[_0x7bb807],_0x1471('0x4c'));delete _0x263678[_0x7bb807];}}}};VoiceQueueReport[_0x1471('0xc')]['emit']=function(_0x19be2c,_0x448527,_0x23897f){io['to'](_0x19be2c)[_0x1471('0x4d')](_0x448527,_0x23897f);};VoiceQueueReport['prototype'][_0x1471('0x4e')]=function(_0x267fb4,_0x5366ed){logger[_0x1471('0x4f')]('[%s][voiceQueueReport]['+_0x5366ed+']\x20sending\x20voice_queue_channel:save\x20event:',_0x267fb4[_0x1471('0x50')],util[_0x1471('0x46')](_0x267fb4,{'showHidden':![],'depth':null}));this[_0x1471('0x4d')](util['format'](_0x1471('0x51'),_0x267fb4[_0x1471('0x52')]),_0x1471('0x53'),_0x267fb4);io[_0x1471('0x4d')]('voice_queue_presence:save',_0x267fb4);};VoiceQueueReport[_0x1471('0xc')]['emitVoiceQueueChannelRemove']=function(_0x17f89e,_0x46bafb){logger[_0x1471('0x4f')](_0x1471('0x54')+_0x46bafb+_0x1471('0x55'),_0x17f89e[_0x1471('0x50')],util[_0x1471('0x46')](_0x17f89e,{'showHidden':![],'depth':null}));this['emit'](util['format']('voice:queue:%s',_0x17f89e['name']),_0x1471('0x56'),_0x17f89e);io['emit'](_0x1471('0x57'),_0x17f89e);};VoiceQueueReport['prototype'][_0x1471('0x58')]=function(_0x2c09e2,_0x4eeba9){if(_0x2c09e2[_0x1471('0x59')]===_0x1471('0x5a')){var _0x1a9809={'id':_0x2c09e2['id'],'name':_0x2c09e2[_0x1471('0x52')],'strategy':_0x2c09e2[_0x1471('0x5b')],'answered':_0x2c09e2[_0x1471('0x5c')],'available':_0x2c09e2[_0x1471('0x5d')],'loggedIn':_0x2c09e2[_0x1471('0x5e')],'pTalking':_0x2c09e2['pTalking'],'sumBillable':_0x2c09e2['sumBillable'],'sumDuration':_0x2c09e2[_0x1471('0x5f')],'sumHoldTime':_0x2c09e2[_0x1471('0x60')]||0x0,'talking':_0x2c09e2[_0x1471('0x3b')],'total':_0x2c09e2[_0x1471('0x61')],'type':_0x2c09e2[_0x1471('0x59')],'unmanaged':_0x2c09e2[_0x1471('0x62')],'abandoned':_0x2c09e2[_0x1471('0x63')],'waiting':_0x2c09e2[_0x1471('0x64')]};if(_0x2c09e2[_0x1471('0x65')]){_0x1a9809[_0x1471('0x65')]={'id':_0x2c09e2[_0x1471('0x65')]['id'],'name':_0x2c09e2[_0x1471('0x65')][_0x1471('0x52')],'active':_0x2c09e2[_0x1471('0x65')][_0x1471('0x66')],'callerid':_0x2c09e2[_0x1471('0x65')]['callerid']};}if(_0x2c09e2[_0x1471('0x67')]){_0x1a9809[_0x1471('0x67')]={'id':_0x2c09e2[_0x1471('0x67')]['id'],'name':_0x2c09e2[_0x1471('0x67')][_0x1471('0x52')]};}var _0x5b4c86=md5(JSON[_0x1471('0x68')](_0x1a9809));if(_0x2c09e2[_0x1471('0x3')]!==_0x5b4c86){_0x2c09e2[_0x1471('0x3')]=_0x5b4c86;logger[_0x1471('0x4f')](_0x1471('0x69')+_0x4eeba9+']\x20sending\x20voice_queue:save\x20event:',util[_0x1471('0x46')](_0x1a9809,{'showHidden':![],'depth':null}));this[_0x1471('0x4d')](util[_0x1471('0x6a')]('voice:queue:%s',_0x1a9809[_0x1471('0x52')]),_0x1471('0x6b'),_0x1a9809);}}};VoiceQueueReport['prototype'][_0x1471('0x6c')]=function(_0x2571f2){return _0x2571f2!==null&&!_[_0x1471('0x6d')](_0x2571f2);};VoiceQueueReport[_0x1471('0xc')]['loopQueueShow']=function(){var _0x51f81e=this;setInterval(function(){_0x51f81e['clearZombieChannels']();ami[_0x1471('0x40')]({'action':_0x1471('0x6e')})[_0x1471('0x6f')](function(_0x28df89){logger[_0x1471('0x44')](_0x1471('0x70'),util['inspect'](_0x28df89,{'showHidden':![],'depth':null}));});},0x2710);};VoiceQueueReport[_0x1471('0xc')]['loopQueueSummary']=function(){var _0x1e0b5a=this;setInterval(function(){if(_0x1e0b5a[_0x1471('0x15')]){return ami[_0x1471('0x40')]({'action':_0x1471('0x18')})[_0x1471('0x71')](function(_0x55fb26){_0x1e0b5a[_0x1471('0x15')]=![];})[_0x1471('0x6f')](function(_0x4ed461){logger[_0x1471('0x44')](_0x1471('0x72'),util['inspect'](_0x4ed461,{'showHidden':![],'depth':null}));});}},0x3e8);};VoiceQueueReport[_0x1471('0xc')][_0x1471('0x73')]=function(_0x39c480){try{if(this[_0x1471('0x6c')](_0x39c480)&&this[_0x1471('0x6c')](_0x39c480[_0x1471('0x74')])){logger['debug'](_0x1471('0x75'),util['inspect'](_0x39c480,{'showHidden':![],'depth':null}));if(this['voiceQueues'][_0x39c480[_0x1471('0x74')]]){logger['info'](_0x1471('0x76'),_0x39c480[_0x1471('0x74')]);var _0x20ff0f=_[_0x1471('0x77')](this[_0x1471('0x12')],_0x1471('0x74'))[_0x39c480[_0x1471('0x74')]]||0x0;var _0x29c3af=_0x20ff0f-_0x39c480[_0x1471('0x78')];if(this[_0x1471('0x14')][_0x39c480[_0x1471('0x74')]]['waiting']!==_[_0x1471('0x79')](_0x39c480[_0x1471('0x78')])||this[_0x1471('0x14')][_0x39c480[_0x1471('0x74')]]['loggedIn']!==_[_0x1471('0x79')](_0x39c480[_0x1471('0x7a')])||this[_0x1471('0x14')][_0x39c480[_0x1471('0x74')]]['available']!==_['toNumber'](_0x39c480['available'])||this[_0x1471('0x14')][_0x39c480['queue']]['talking']!==_0x29c3af){this[_0x1471('0x14')][_0x39c480[_0x1471('0x74')]][_0x1471('0x64')]=_['toNumber'](_0x39c480['callers']);this[_0x1471('0x14')][_0x39c480[_0x1471('0x74')]]['loggedIn']=_[_0x1471('0x79')](_0x39c480[_0x1471('0x7a')]);this[_0x1471('0x14')][_0x39c480[_0x1471('0x74')]][_0x1471('0x5d')]=_['toNumber'](_0x39c480[_0x1471('0x5d')]);this[_0x1471('0x14')][_0x39c480[_0x1471('0x74')]][_0x1471('0x3b')]=_0x29c3af>0x0?_0x29c3af:0x0;this[_0x1471('0x14')][_0x39c480[_0x1471('0x74')]][_0x1471('0x3b')]=this[_0x1471('0x14')][_0x39c480[_0x1471('0x74')]]['talking']>_['toNumber'](_0x39c480[_0x1471('0x7a')])?_[_0x1471('0x79')](_0x39c480[_0x1471('0x7a')]):this[_0x1471('0x14')][_0x39c480[_0x1471('0x74')]][_0x1471('0x3b')];this['emitVoiceQueueSummary'](this['voiceQueues'][_0x39c480[_0x1471('0x74')]],_0x1471('0x18'));}logger[_0x1471('0x4f')]('[voiceQueueReport][queuesummary]\x20sending\x20queuesummary\x20event:',util[_0x1471('0x46')](this[_0x1471('0x14')][_0x39c480[_0x1471('0x74')]],{'showHidden':![],'depth':null}));ami[_0x1471('0x4d')](_0x1471('0x7b'),this['voiceQueues'][_0x39c480[_0x1471('0x74')]]);}}}catch(_0x2e4ef2){logger[_0x1471('0x44')](_0x1471('0x72'),util[_0x1471('0x46')](_0x2e4ef2,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x1471('0xc')][_0x1471('0x1b')]=function(_0x14440f){logger[_0x1471('0x4f')](_0x1471('0x7c'),util[_0x1471('0x46')](_0x14440f,{'showHidden':![],'depth':null}));this[_0x1471('0x15')]=!![];};VoiceQueueReport[_0x1471('0xc')][_0x1471('0x1d')]=function(_0x13ad4d){try{if(this[_0x1471('0x6c')](_0x13ad4d)){logger[_0x1471('0x4f')]('[%s][voiceQueueReport][queuecallerjoin]',_0x13ad4d[_0x1471('0x50')],util[_0x1471('0x46')](_0x13ad4d,{'showHidden':![],'depth':null}));if(_['isUndefined'](this[_0x1471('0x10')][_0x13ad4d[_0x1471('0x50')]]))this[_0x1471('0x10')][_0x13ad4d[_0x1471('0x50')]]=[];if(_[_0x1471('0x6d')](this[_0x1471('0x12')][_0x13ad4d[_0x1471('0x50')]]))this[_0x1471('0x12')][_0x13ad4d[_0x1471('0x50')]]={};var _0x5a33b9=new QueueReport();_0x5a33b9[_0x1471('0x52')]=_0x13ad4d['queue'];_0x5a33b9[_0x1471('0x59')]=this[_0x1471('0x14')][_0x5a33b9[_0x1471('0x52')]]&&this[_0x1471('0x14')][_0x5a33b9[_0x1471('0x52')]]['type']?this[_0x1471('0x14')][_0x5a33b9['name']][_0x1471('0x59')]||'inbound':'inbound';_0x5a33b9[_0x1471('0x74')]=_0x13ad4d[_0x1471('0x74')];_0x5a33b9[_0x1471('0x7d')]=moment()['format'](_0x1471('0x7e'));_0x5a33b9[_0x1471('0x7f')]=_0x13ad4d[_0x1471('0x7f')];_0x5a33b9[_0x1471('0x80')]=_0x13ad4d['count'];_0x5a33b9['uniqueid']=_0x13ad4d[_0x1471('0x50')];_0x5a33b9['routealias']=this[_0x1471('0x12')][_0x13ad4d[_0x1471('0x50')]][_0x1471('0x81')];logger[_0x1471('0x82')](_0x1471('0x83'),_0x5a33b9['name'],_0x5a33b9[_0x1471('0x59')]);_['merge'](_0x5a33b9,_[_0x1471('0x84')](_0x13ad4d,_[_0x1471('0x85')](_0x5a33b9)));this['queueReports'][_0x13ad4d[_0x1471('0x50')]][_0x1471('0x86')](_0x5a33b9);this[_0x1471('0x12')][_0x13ad4d['uniqueid']]=_0x5a33b9;this[_0x1471('0x4e')](_0x5a33b9,_0x1471('0x1c'));}}catch(_0x4a7c34){logger[_0x1471('0x44')](_0x1471('0x87'),_0x13ad4d[_0x1471('0x50')],util[_0x1471('0x46')](_0x4a7c34,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x1471('0xc')][_0x1471('0x1f')]=function(_0x5664a3){try{if(this[_0x1471('0x6c')](_0x5664a3)){logger[_0x1471('0x4f')]('[%s][voiceQueueReport][queuecallerabandon]',_0x5664a3[_0x1471('0x50')],util['inspect'](_0x5664a3,{'showHidden':![],'depth':null}));if(this['queueReports'][_0x5664a3[_0x1471('0x50')]]){var _0x52f4ae=_[_0x1471('0x88')](this[_0x1471('0x10')][_0x5664a3['uniqueid']]);_0x52f4ae[_0x1471('0x89')]=![];_0x52f4ae[_0x1471('0x8a')]=null;_0x52f4ae[_0x1471('0x8b')]=_0x5664a3['holdtime'];_0x52f4ae[_0x1471('0x8c')]=_0x5664a3['originalposition'];_0x52f4ae[_0x1471('0x1e')]=!![];_0x52f4ae[_0x1471('0x8d')]=moment()[_0x1471('0x6a')](_0x1471('0x7e'));_0x52f4ae[_0x1471('0x8e')]='ABANDONED';_0x52f4ae[_0x1471('0x8f')]=null;logger['info']('[voiceQueueReport][queuecallerabandon]\x20name:%s\x20type:%s',_0x52f4ae[_0x1471('0x52')],_0x52f4ae[_0x1471('0x59')]);this[_0x1471('0x12')][_0x5664a3[_0x1471('0x50')]]=_0x52f4ae;this[_0x1471('0x4b')](_0x52f4ae,'queuecallerabandon');}}}catch(_0x15c3cd){logger[_0x1471('0x44')](_0x1471('0x90'),_0x5664a3['uniqueid'],util['inspect'](_0x15c3cd,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x1471('0xc')][_0x1471('0x21')]=function(_0x4ab37d){try{if(this[_0x1471('0x6c')](_0x4ab37d)){logger[_0x1471('0x4f')](_0x1471('0x91'),_0x4ab37d['uniqueid'],util[_0x1471('0x46')](_0x4ab37d,{'showHidden':![],'depth':null}));if(this['queueReports'][_0x4ab37d['uniqueid']]){var _0x544815=_[_0x1471('0x88')](this[_0x1471('0x10')][_0x4ab37d[_0x1471('0x50')]]);_0x544815['queuecallerleaveAt']=moment()['format'](_0x1471('0x7e'));_0x544815[_0x1471('0x92')]=_0x4ab37d['connectedlinenum'];_0x544815['connectedlinename']=_0x4ab37d['connectedlinename'];logger[_0x1471('0x82')](_0x1471('0x93'),_0x544815[_0x1471('0x52')],_0x544815[_0x1471('0x59')],_0x4ab37d[_0x1471('0x92')],_0x4ab37d[_0x1471('0x94')]);this[_0x1471('0x12')][_0x4ab37d[_0x1471('0x50')]]=_0x544815;this['emitVoiceQueueChannelSave'](_0x544815,_0x1471('0x20'));}}}catch(_0x39c0c4){logger['error'](_0x1471('0x91'),_0x4ab37d[_0x1471('0x50')],util[_0x1471('0x46')](_0x39c0c4,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x1471('0xc')][_0x1471('0x25')]=function(_0x4239c2){try{if(this[_0x1471('0x6c')](_0x4239c2)){logger[_0x1471('0x4f')](_0x1471('0x95'),_0x4239c2[_0x1471('0x50')],util[_0x1471('0x46')](_0x4239c2,{'showHidden':![],'depth':null}));if(this['queueReports'][_0x4239c2['uniqueid']]){var _0x2257b9=_['last'](this[_0x1471('0x10')][_0x4239c2[_0x1471('0x50')]]);_0x2257b9[_0x1471('0x89')]=!![];_0x2257b9['queuecallerexitreason']=_0x1471('0x96');logger[_0x1471('0x82')](_0x1471('0x97'),_0x2257b9['name'],_0x2257b9[_0x1471('0x59')]);}}}catch(_0x3a89f7){logger['error'](_0x1471('0x95'),_0x4239c2[_0x1471('0x50')],util[_0x1471('0x46')](_0x3a89f7,{'showHidden':![],'depth':null}));}};VoiceQueueReport['prototype'][_0x1471('0x23')]=function(_0xe011f1){try{if(this[_0x1471('0x6c')](_0xe011f1)){logger[_0x1471('0x4f')](_0x1471('0x98'),_0xe011f1['uniqueid'],util[_0x1471('0x46')](_0xe011f1,{'showHidden':![],'depth':null}));if(this[_0x1471('0x10')][_0xe011f1[_0x1471('0x50')]]){var _0x5358e3=_[_0x1471('0x88')](this[_0x1471('0x10')][_0xe011f1[_0x1471('0x50')]]);_0x5358e3[_0x1471('0x1e')]=![];_0x5358e3[_0x1471('0x8d')]=null;_0x5358e3[_0x1471('0x99')]=!![];_0x5358e3['lastAssignedTo']=_0xe011f1['membername'];_0x5358e3[_0x1471('0x8b')]=_0xe011f1['holdtime'];_0x5358e3['queuecallercomplete']=!![];_0x5358e3['queuecallerexit']=![];_0x5358e3[_0x1471('0x9a')]=null;if(!_0x5358e3[_0x1471('0x9b')]){if(_0xe011f1[_0x1471('0x9c')]==_0x1471('0x9b')){_0x5358e3[_0x1471('0x8e')]=_0x1471('0x9d');logger[_0x1471('0x82')](_0x1471('0x9e'),_0x5358e3['name'],_0x5358e3['type']);}else{if(_[_0x1471('0x9f')](_0xe011f1[_0x1471('0x42')][_0x1471('0xa0')](),_0x1471('0xa1'))){if(this['queueReports'][_0xe011f1[_0x1471('0xa2')]]){var _0x1852d8=_['last'](this[_0x1471('0x10')][_0xe011f1[_0x1471('0xa2')]]);_0x1852d8[_0x1471('0x89')]=![];_0x1852d8[_0x1471('0xa3')]=!![];_0x1852d8[_0x1471('0x9a')]=moment(_0x5358e3[_0x1471('0x7d')])[_0x1471('0xa4')](_0xe011f1['holdtime'],_0x1471('0xa5'))[_0x1471('0x6a')](_0x1471('0x7e'));_0x1852d8[_0x1471('0x8e')]=_0x1471('0xa6');_0x1852d8[_0x1471('0x9b')]=!![];_0x1852d8['transfertype']=_0x1471('0xa7');_0x1852d8[_0x1471('0xa8')]=_0xe011f1[_0x1471('0xa9')];_0x1852d8[_0x1471('0xaa')]=_0xe011f1[_0x1471('0x50')];logger[_0x1471('0x82')](_0x1471('0xab'),_0x1852d8[_0x1471('0x52')],_0x1852d8[_0x1471('0x59')]);var _0x2504ef=this['queueReports'][_0xe011f1[_0x1471('0xa2')]];this['queueReports'][_0xe011f1[_0x1471('0xa2')]]=this[_0x1471('0x10')][_0xe011f1[_0x1471('0x50')]];this[_0x1471('0x10')][_0xe011f1[_0x1471('0x50')]]=_0x2504ef;}}else{_0x5358e3[_0x1471('0x8e')]=_0x1471('0xac')+_0xe011f1[_0x1471('0x9c')][_0x1471('0xad')]();logger[_0x1471('0x82')](_0x1471('0xae'),_0x5358e3[_0x1471('0x52')],_0x5358e3[_0x1471('0x59')],_0x5358e3[_0x1471('0x8e')]);}}}this[_0x1471('0x12')][_0xe011f1[_0x1471('0x50')]]=_0x5358e3;this[_0x1471('0x4b')](_0x5358e3,_0x1471('0x22'));}}}catch(_0x3b51f2){logger[_0x1471('0x44')](_0x1471('0x98'),_0xe011f1[_0x1471('0x50')],util['inspect'](_0x3b51f2,{'showHidden':![],'depth':null}));}};VoiceQueueReport['prototype'][_0x1471('0x27')]=function(_0x38d9c8){try{if(this[_0x1471('0x6c')](_0x38d9c8)){logger[_0x1471('0x4f')](_0x1471('0xaf'),_0x38d9c8['uniqueid'],util[_0x1471('0x46')](_0x38d9c8,{'showHidden':![],'depth':null}));this[_0x1471('0xb0')](_0x38d9c8[_0x1471('0x50')],_[_0x1471('0x85')](_0x38d9c8[_0x1471('0xb1')])[0x0],_0x38d9c8[_0x1471('0xb2')]);if(this[_0x1471('0x10')][_0x38d9c8[_0x1471('0x50')]]){var _0x5d8d3a=_[_0x1471('0x88')](this['queueReports'][_0x38d9c8['uniqueid']]);if(_0x5d8d3a){if(this[_0x1471('0x6c')](_0x38d9c8[_0x1471('0xb1')])&&this['isNotNull'](_0x38d9c8[_0x1471('0xb1')][_0x1471('0xb3')])){switch(_0x38d9c8['value']){case'CONTINUE':_0x5d8d3a['queuecallerexit']=![];_0x5d8d3a[_0x1471('0x9a')]=null;break;case _0x1471('0xb4'):_0x5d8d3a['lastevent']=_0x1471('0xb5');_0x5d8d3a[_0x1471('0xa3')]=!![];_0x5d8d3a[_0x1471('0x9a')]=moment()[_0x1471('0x6a')](_0x1471('0x7e'));_0x5d8d3a['queuecallerleaveAt']=moment()[_0x1471('0x6a')](_0x1471('0x7e'));logger[_0x1471('0x4f')](_0x1471('0xb6'),_0x38d9c8['uniqueid'],util[_0x1471('0x46')](_0x5d8d3a,{'showHidden':![],'depth':null}));ami['emit']('custom:timeout',_0x5d8d3a);break;default:_0x5d8d3a[_0x1471('0xa3')]=!![];_0x5d8d3a[_0x1471('0x9a')]=moment()['format'](_0x1471('0x7e'));_0x5d8d3a[_0x1471('0xb7')]=moment()[_0x1471('0x6a')]('YYYY-MM-DD\x20HH:mm:ss');}_0x5d8d3a[_0x1471('0x1e')]=![];_0x5d8d3a[_0x1471('0x8d')]=null;_0x5d8d3a['queuecallerexitreason']=_0x38d9c8[_0x1471('0xb2')];this['channels'][_0x38d9c8[_0x1471('0x50')]]=_0x5d8d3a;this['emitVoiceQueueChannelRemove'](_0x5d8d3a,_0x1471('0x26'));}else if(this[_0x1471('0x6c')](_0x38d9c8[_0x1471('0xb1')])&&this[_0x1471('0x6c')](_0x38d9c8[_0x1471('0xb1')][_0x1471('0xb8')])){if(!_0x5d8d3a[_0x1471('0x1e')]){_0x5d8d3a[_0x1471('0xa3')]=!![];_0x5d8d3a[_0x1471('0x9a')]=moment()[_0x1471('0x6a')](_0x1471('0x7e'));_0x5d8d3a[_0x1471('0x8e')]=_0x1471('0xb9');_0x5d8d3a[_0x1471('0xb7')]=moment()[_0x1471('0x6a')](_0x1471('0x7e'));this['channels'][_0x38d9c8['uniqueid']]=_0x5d8d3a;}}logger[_0x1471('0x82')]('[%s][voiceQueueReport][varset]\x20name:%s\x20type:%s\x20variable:%s\x20value:%s',_0x38d9c8['uniqueid'],_0x5d8d3a[_0x1471('0x52')],_0x5d8d3a['type'],_[_0x1471('0x85')](_0x38d9c8['variable'])[0x0],_0x38d9c8[_0x1471('0xb2')]);_0x5d8d3a[_0x1471('0x17')]=this[_0x1471('0x17')][_0x38d9c8['uniqueid']];}}}}catch(_0x891be3){logger[_0x1471('0x44')](_0x1471('0xaf'),_0x38d9c8[_0x1471('0x50')],util[_0x1471('0x46')](_0x891be3,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x1471('0xc')]['addVariable']=function(_0x508b70,_0x4dbf83,_0x37423c){var _0xdb8977=['rtpaudioqos',_0x1471('0xba'),_0x1471('0xbb'),_0x1471('0xbc'),_0x1471('0xbd'),_0x1471('0xbe'),_0x1471('0xbf'),'rtpaudioqosrttbridged',_0x1471('0xc0'),_0x1471('0xc1'),'bridgepeer',_0x1471('0xc2'),_0x1471('0xc3'),_0x1471('0xc4'),_0x1471('0xc5'),'memberlastcall','membername',_0x1471('0xc6'),'memberrealtime'];if(!_['isNil'](_0x4dbf83)&&!_[_0x1471('0xc7')](_0xdb8977,_0x4dbf83)){if(_[_0x1471('0x6d')](this[_0x1471('0x17')][_0x508b70])){this['variables'][_0x508b70]={};}this[_0x1471('0x17')][_0x508b70][_0x4dbf83]=_0x37423c;}};VoiceQueueReport[_0x1471('0xc')][_0x1471('0x29')]=function(_0x16b66c){try{if(this[_0x1471('0x6c')](_0x16b66c)){logger[_0x1471('0x4f')](_0x1471('0xc8'),_0x16b66c['uniqueid'],util[_0x1471('0x46')](_0x16b66c,{'showHidden':![],'depth':null}));if(this[_0x1471('0x10')][_0x16b66c['uniqueid']]){for(var _0x3925ca=0x0,_0x50e7f9={};_0x3925ca<this[_0x1471('0x10')][_0x16b66c['uniqueid']][_0x1471('0xc9')];_0x3925ca+=0x1){_0x50e7f9=this[_0x1471('0x10')][_0x16b66c[_0x1471('0x50')]][_0x3925ca];if(this[_0x1471('0x14')][_0x50e7f9['queue']]){if(_0x50e7f9[_0x1471('0xa3')]&&_0x50e7f9['transfer']!=!![]){this[_0x1471('0x14')][_0x50e7f9[_0x1471('0x74')]][_0x1471('0x62')]+=0x1;}if(_0x50e7f9[_0x1471('0x1e')]){this[_0x1471('0x14')][_0x50e7f9[_0x1471('0x74')]][_0x1471('0x63')]+=0x1;}this[_0x1471('0x14')][_0x50e7f9[_0x1471('0x74')]][_0x1471('0x60')]+=moment(_0x50e7f9[_0x1471('0xb7')])[_0x1471('0xca')](_0x50e7f9[_0x1471('0x7d')],_0x1471('0xa5'))||0x0;if(_0x3925ca===this['queueReports'][_0x16b66c[_0x1471('0x50')]][_0x1471('0xc9')]-0x1){this[_0x1471('0x14')][_0x50e7f9[_0x1471('0x74')]][_0x1471('0x5f')]+=moment()[_0x1471('0xcb')](0x0)['diff'](_0x50e7f9[_0x1471('0x7d')],_0x1471('0xa5'));this[_0x1471('0x14')][_0x50e7f9[_0x1471('0x74')]][_0x1471('0x61')]+=0x1;if(_0x50e7f9[_0x1471('0x89')]){this[_0x1471('0x14')][_0x50e7f9[_0x1471('0x74')]][_0x1471('0x5c')]+=0x1;this[_0x1471('0x14')][_0x50e7f9[_0x1471('0x74')]]['sumBillable']+=moment()[_0x1471('0xcb')](0x0)[_0x1471('0xca')](_0x50e7f9[_0x1471('0xb7')],'seconds');_0x50e7f9['queuecallercompleteAt']=moment()[_0x1471('0x6a')](_0x1471('0x7e'));_0x50e7f9[_0x1471('0xa3')]=![];_0x50e7f9[_0x1471('0x9a')]=null;}if(_0x50e7f9[_0x1471('0xa3')]&&_0x50e7f9[_0x1471('0x9b')]!=!![]){_0x50e7f9[_0x1471('0xcc')]=_0x1471('0x62');logger[_0x1471('0x4f')](_0x1471('0xcd'),_0x16b66c[_0x1471('0x50')],util[_0x1471('0x46')](_0x50e7f9,{'showHidden':![],'depth':null}));ami['emit'](_0x1471('0xce'),_0x50e7f9);}if(_0x50e7f9['queuecallerabandon']){_0x50e7f9['lastevent']=_0x1471('0x63');logger['debug']('[%s][voiceQueueReport][hangup]\x20sending\x20queuecallerabandon\x20event:',_0x16b66c[_0x1471('0x50')],util[_0x1471('0x46')](_0x50e7f9,{'showHidden':![],'depth':null}));ami[_0x1471('0x4d')](_0x1471('0xcf'),_0x50e7f9);}}else{this[_0x1471('0x14')][_0x50e7f9['queue']][_0x1471('0x5f')]+=this[_0x1471('0x14')][_0x50e7f9[_0x1471('0x74')]]['sumHoldTime'];}logger[_0x1471('0x82')](_0x1471('0xd0'),_0x16b66c['uniqueid'],_0x50e7f9[_0x1471('0x52')],_0x50e7f9['type'],_0x16b66c[_0x1471('0xd1')]);this[_0x1471('0x12')][_0x16b66c['uniqueid']]=_0x50e7f9;this[_0x1471('0x4b')](_0x50e7f9,'hangup');this[_0x1471('0x58')](this[_0x1471('0x14')][_0x50e7f9['queue']],_0x1471('0x28'));}}logger[_0x1471('0x4f')](_0x1471('0xd2'),_0x16b66c[_0x1471('0x50')],util['inspect'](this['queueReports'][_0x16b66c[_0x1471('0x50')]],{'showHidden':![],'depth':null}));ami[_0x1471('0x4d')](_0x1471('0xd3'),this[_0x1471('0x10')][_0x16b66c[_0x1471('0x50')]]);delete this[_0x1471('0x10')][_0x16b66c[_0x1471('0x50')]];delete this[_0x1471('0x12')][_0x16b66c[_0x1471('0x50')]];}if(this[_0x1471('0x17')][_0x16b66c['uniqueid']]){delete this[_0x1471('0x17')][_0x16b66c[_0x1471('0x50')]];}}}catch(_0x4fa9d4){logger[_0x1471('0x44')](_0x1471('0xc8'),_0x16b66c['uniqueid'],util[_0x1471('0x46')](_0x4fa9d4,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x1471('0xc')][_0x1471('0x33')]=function(_0x1b39e1){try{if(this['isNotNull'](_0x1b39e1)){logger['debug'](_0x1471('0xd4'),_0x1b39e1[_0x1471('0x50')],util['inspect'](_0x1b39e1,{'showHidden':![],'depth':null}));var _0x24b6b2;if(this[_0x1471('0x10')][_0x1b39e1['transfereeuniqueid']]){_0x24b6b2=_['last'](this[_0x1471('0x10')][_0x1b39e1['transfereeuniqueid']]);_0x24b6b2[_0x1471('0xa8')]=_0x1b39e1['secondtransfererexten'];_0x24b6b2[_0x1471('0xaa')]=_0x1b39e1[_0x1471('0xd5')];_0x24b6b2['queuecallerexitreason']='ATTENDEDTRANSFER';_0x24b6b2[_0x1471('0x9b')]=!![];_0x24b6b2[_0x1471('0xd6')]=_0x1471('0xd7');if(this[_0x1471('0x10')][_0x1b39e1[_0x1471('0xd5')]]){var _0x38ba00=this[_0x1471('0x10')][_0x1b39e1['secondtransfereruniqueid']];this['queueReports'][_0x1b39e1[_0x1471('0xd5')]]=this[_0x1471('0x10')][_0x1b39e1[_0x1471('0xd8')]];this[_0x1471('0x10')][_0x1b39e1[_0x1471('0xd8')]]=_0x38ba00;var _0x407409=_['last'](this[_0x1471('0x10')][_0x1b39e1['transfereeuniqueid']]);_0x407409[_0x1471('0x3f')]=!![];}logger[_0x1471('0x82')](_0x1471('0xd9'),_0x1b39e1[_0x1471('0x50')],_0x24b6b2[_0x1471('0x52')],_0x24b6b2[_0x1471('0x59')],_0x24b6b2[_0x1471('0xa8')],_0x24b6b2[_0x1471('0xaa')]);}else if(this[_0x1471('0x10')][_0x1b39e1[_0x1471('0xda')]]){_0x24b6b2=_[_0x1471('0x88')](this[_0x1471('0x10')][_0x1b39e1[_0x1471('0xda')]]);_0x24b6b2[_0x1471('0xa8')]=_0x1b39e1[_0x1471('0xdb')];_0x24b6b2['transferuniqueid']=_0x1b39e1[_0x1471('0xdc')];_0x24b6b2[_0x1471('0x8e')]=_0x1471('0xdd');_0x24b6b2[_0x1471('0x9b')]=!![];_0x24b6b2[_0x1471('0xd6')]=_0x1471('0xd7');if(this['queueReports'][_0x1b39e1[_0x1471('0xdc')]]){var _0x38ba00=this['queueReports'][_0x1b39e1[_0x1471('0xdc')]];this['queueReports'][_0x1b39e1[_0x1471('0xdc')]]=this['queueReports'][_0x1b39e1[_0x1471('0xda')]];this[_0x1471('0x10')][_0x1b39e1[_0x1471('0xda')]]=_0x38ba00;var _0x407409=_[_0x1471('0x88')](this[_0x1471('0x10')][_0x1b39e1['transfertargetuniqueid']]);_0x407409[_0x1471('0x3f')]=!![];}logger[_0x1471('0x82')]('[%s][voiceQueueReport][attendedTransfer]\x20name:%s\x20type:%s\x20transferexten:%s\x20transferuniqueid:%s',_0x1b39e1[_0x1471('0x50')],_0x24b6b2[_0x1471('0x52')],_0x24b6b2[_0x1471('0x59')],_0x24b6b2['transferexten'],_0x24b6b2[_0x1471('0xaa')]);}}}catch(_0x56ca48){logger[_0x1471('0x44')]('[%s][voiceQueueReport][attendedtransfer]',_0x1b39e1['uniqueid'],util[_0x1471('0x46')](_0x56ca48,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x1471('0xc')][_0x1471('0x35')]=function(_0x25ae7d){try{if(this['isNotNull'](_0x25ae7d)){logger[_0x1471('0x4f')](_0x1471('0xde'),_0x25ae7d[_0x1471('0x50')],util[_0x1471('0x46')](_0x25ae7d,{'showHidden':![],'depth':null}));if(this['queueReports'][_0x25ae7d['transfereeuniqueid']]){var _0x53bceb=_[_0x1471('0x88')](this[_0x1471('0x10')][_0x25ae7d[_0x1471('0xd8')]]);_0x53bceb[_0x1471('0x8e')]=_0x1471('0xdf');_0x53bceb['transfer']=!![];_0x53bceb[_0x1471('0xd6')]=_0x1471('0xe0');_0x53bceb[_0x1471('0xa8')]=_0x25ae7d[_0x1471('0xe1')];_0x53bceb[_0x1471('0xaa')]=_0x25ae7d[_0x1471('0xd8')];logger[_0x1471('0x82')](_0x1471('0xe2'),_0x25ae7d[_0x1471('0x50')],_0x53bceb[_0x1471('0x52')],_0x53bceb['type'],_0x53bceb[_0x1471('0xa8')],_0x53bceb[_0x1471('0xaa')]);this[_0x1471('0x29')]({'event':_0x1471('0xe3'),'uniqueid':_0x25ae7d['transfereeuniqueid'],'context':_0x25ae7d[_0x1471('0xe4')],'channel':_0x25ae7d['transfererchannel']});}}}catch(_0x350054){logger['error'](_0x1471('0xde'),_0x25ae7d[_0x1471('0x50')],util['inspect'](_0x350054,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x1471('0xc')][_0x1471('0x2f')]=function(_0x68a97f){try{if(this['isNotNull'](_0x68a97f)){logger[_0x1471('0x4f')](_0x1471('0xe5'),_0x68a97f[_0x1471('0x50')],util['inspect'](_0x68a97f,{'showHidden':![],'depth':null}));if(this[_0x1471('0x10')][_0x68a97f[_0x1471('0x50')]]){var _0x437713=_[_0x1471('0x88')](this[_0x1471('0x10')][_0x68a97f[_0x1471('0x50')]]);if(!_[_0x1471('0xe6')](_0x437713[_0x1471('0xb7')])){_0x437713[_0x1471('0xe7')]=moment()[_0x1471('0x6a')](_0x1471('0x7e'));logger[_0x1471('0x82')](_0x1471('0xe8'),_0x68a97f['uniqueid'],_0x437713[_0x1471('0xe7')]);}}}}catch(_0x38e7cd){logger['error'](_0x1471('0xe5'),_0x68a97f[_0x1471('0x50')],util[_0x1471('0x46')](_0x38e7cd,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x1471('0xc')][_0x1471('0x31')]=function(_0x5d2b18){try{if(this[_0x1471('0x6c')](_0x5d2b18)){logger[_0x1471('0x4f')](_0x1471('0xe9'),_0x5d2b18[_0x1471('0x50')],util[_0x1471('0x46')](_0x5d2b18,{'showHidden':![],'depth':null}));if(this[_0x1471('0x10')][_0x5d2b18[_0x1471('0x50')]]){var _0xb2eb2a=_[_0x1471('0x88')](this['queueReports'][_0x5d2b18[_0x1471('0x50')]]);if(!_['isNil'](_0xb2eb2a[_0x1471('0xe7')])){_0xb2eb2a['mohtime']+=moment()[_0x1471('0xcb')](0x0)[_0x1471('0xca')](_0xb2eb2a[_0x1471('0xe7')],_0x1471('0xa5'));logger[_0x1471('0x82')](_0x1471('0xea'),_0x5d2b18[_0x1471('0x50')],_0xb2eb2a[_0x1471('0xeb')]);delete _0xb2eb2a[_0x1471('0xe7')];}}}}catch(_0x8413aa){logger[_0x1471('0x44')]('[%s][voiceQueueReport][musiconholdstop]',_0x5d2b18['uniqueid'],util[_0x1471('0x46')](_0x8413aa,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x1471('0xc')][_0x1471('0x2d')]=function(_0x5e2cf2){try{if(this[_0x1471('0x6c')](_0x5e2cf2)){logger[_0x1471('0x4f')](_0x1471('0xec'),_0x5e2cf2['uniqueid'],util[_0x1471('0x46')](_0x5e2cf2,{'showHidden':![],'depth':null}));if(_0x5e2cf2[_0x1471('0xed')][_0x1471('0xa0')]()===_0x1471('0xee')){_0x5e2cf2['applicationdata']=_0x5e2cf2[_0x1471('0xef')]&&_0x5e2cf2['appdata'][_0x1471('0x9f')](_0x1471('0xf0'))?_0x5e2cf2['appdata']:(_0x5e2cf2[_0x1471('0xef')]||_0x5e2cf2['applicationdata'])[_0x1471('0xa0')]();if(_['startsWith'](_0x5e2cf2[_0x1471('0xf1')][_0x1471('0xa0')](),_0x1471('0xf2'))){logger['info'](_0x1471('0xf3'),_0x5e2cf2['uniqueid'],_0x5e2cf2[_0x1471('0xed')],_0x5e2cf2['applicationdata']);if(_[_0x1471('0x6d')](this[_0x1471('0x12')][_0x5e2cf2[_0x1471('0x50')]]))this[_0x1471('0x12')][_0x5e2cf2[_0x1471('0x50')]]={};var _0x41b115=_0x5e2cf2[_0x1471('0xf1')][_0x1471('0xf4')]('=');var _0x3dff3c=_0x41b115[0x0][_0x1471('0xa0')]()[_0x1471('0xf5')](/cdr\((.*)\)/);if(_0x3dff3c)this[_0x1471('0x12')][_0x5e2cf2[_0x1471('0x50')]][_0x3dff3c[0x1]]=_0x41b115[0x1];}}}}catch(_0x412ed7){logger[_0x1471('0x44')]('[%s][voiceQueueReport][newexten]',_0x5e2cf2['uniqueid'],util[_0x1471('0x46')](_0x412ed7,{'showHidden':![],'depth':null}));}};module[_0x1471('0xf6')]=VoiceQueueReport;
\ No newline at end of file
+var _0xbfcc=['[%s][voiceQueueReport][musiconholdstop]\x20mohtime:%s','mohtime','[%s][voiceQueueReport][newexten]\x20event:','application','applicationdata','appdata','cdr(','[%s][voiceQueueReport][newexten]\x20application:%s\x20appdata:%s','match','[%s][voiceQueueReport][newexten]','exports','lodash','md5','ioredis','../../../config/environment','../../../config/logger','defaults','redis','socket.io-emitter','prototype','enqueue','tail','finally','sequence','queueReports','agents','channels','queueChannels','voiceQueues','flagQueueSummary','campaigns','variables','queuesummary','bind','queuesummarycomplete','syncQueueSummaryComplete','queuecallerjoin','queuecallerabandon','syncQueueCallerAbandon','agentcomplete','syncAgentComplete','syncAgentConnect','varset','syncHangup','fullybooted','syncFullyBooted','newexten','musiconholdstart','attendedtransfer','blindtransfer','syncBlindTransfer','loopQueueSummary','hasOwnProperty','isEmpty','originated','talking','waiting','queueStatusComplete','unlockRR','clearZombieChannels','switch','isNil','status','catch','message','error','[%s][voiceQueueReport][checkChannel]','inspect','[%s][voiceQueueReport][checkQueueReport]','[FullyBooted]\x20clear\x20realtime','clearQueueReport','emitVoiceQueueChannelRemove','emit','emitVoiceQueueChannelSave','debug',']\x20sending\x20voice_queue_channel:save\x20event:','uniqueid','format','voice:queue:%s','name','voice_queue_presence:save',']\x20sending\x20voice_queue_channel:remove\x20event:','voice_queue_channel:remove','voice_queue_presence:remove','type','inbound','strategy','available','loggedIn','sumBillable','sumDuration','sumHoldTime','total','unmanaged','abandoned','Trunk','active','Interval','stringify','[voiceQueueReport][',']\x20sending\x20voice_queue:save\x20event:','voice_queue:save','isUndefined','queues','Action','then','isNotNull','queue','[voiceQueueReport][queuesummary]\x20event:','[voiceQueueReport][queuesummary]\x20name:%s','callers','toNumber','loggedin','emitVoiceQueueSummary','[voiceQueueReport][queuesummary]\x20sending\x20queuesummary\x20event:','custom:queuesummary','[voiceQueueReport][queuesummarycomplete]\x20event:','syncQueueCallerJoin','[%s][voiceQueueReport][queuecallerjoin]','YYYY-MM-DD\x20HH:mm:ss','position','count','routealias','[voiceQueueReport][queuecallerjoin]\x20name:%s\x20type:%s','pick','keys','[%s][voiceQueueReport][queuecallerabandon]','last','queuecallercomplete','holdtime','originalposition','queuecallerabandonAt','queuecallerexitreason','ABANDONED','lastAssignedTo','[voiceQueueReport][queuecallerabandon]\x20name:%s\x20type:%s','syncQueueCallerLeave','queuecallerleaveAt','connectedlinenum','info','[voiceQueueReport][queuecallerleave]\x20name:%s\x20type:%s\x20connectedlinenum:%s\x20connectedlinename:%s','connectedlinename','queuecallerleave','[%s][voiceQueueReport][queuecallerleave]','[%s][voiceQueueReport][agentconnect]','COMPLETEDBYAGENT','[voiceQueueReport][agentconnect]\x20name:%s\x20type:%s\x20queuecallerexitreason:COMPLETEDBYAGENT','[%s][voiceQueueReport][agentcomplete]','assigned','queuecallerexit','queuecallerexitAt','transfer','reason','COMPLETED','[voiceQueueReport][agentcomplete]\x20name:%s\x20type:%s\x20queuecallerexitreason:COMPLETED','startsWith','channel','toLowerCase','linkedid','queuecallerjoinAt','seconds','FORWARDTRANSFER','destexten','transferuniqueid','[voiceQueueReport][agentcomplete]\x20name:%s\x20type:%s\x20queuecallerexitreason:FORWARDTRANSFER','COMPLETEDBY','toUpperCase','[voiceQueueReport][agentcomplete]\x20name:%s\x20type:%s\x20queuecallerexitreason:%s','[%s][voiceQueueReport][varset]','value','variable','queuestatus','CONTINUE','TIMEOUT','lastevent','timeout','custom:timeout','queueposition','EXITWITHKEY','[%s][voiceQueueReport][varset]\x20name:%s\x20type:%s\x20variable:%s\x20value:%s','addVariable','rtpaudioqos','rtpaudioqosbridged','rtpaudioqosjitter','rtpaudioqosjitterbridged','rtpaudioqosloss','rtpaudioqosrtt','rtpaudioqosrttbridged','sipcallid','sipuri','bridgepeer','membercalls','memberdynamic','memberinterface','memberlastcall','membername','memberpenalty','memberrealtime','includes','[%s][voiceQueueReport][hangup]','length','diff','answered','[%s][voiceQueueReport][hangup]\x20sending\x20queuecallerunmanaged\x20event:','custom:queuecallerunmanaged','[%s][voiceQueueReport][hangup]\x20sending\x20queuecallerabandon\x20event:','custom:queuecallerabandon','[%s][voiceQueueReport][hangup]\x20name:%s\x20type:%s\x20reason:%s','cause-txt','hangup','[%s][voiceQueueReport][hangup]\x20sending\x20voiceQueueReport\x20event:','custom:voiceQueueReport','syncAttendedTransfer','[%s][voiceQueueReport][attendedtransfer]','transfereeuniqueid','transferexten','secondtransfereruniqueid','ATTENDEDTRANSFER','transfertype','ATTENDED','[%s][voiceQueueReport][attendedTransfer]\x20name:%s\x20type:%s\x20transferexten:%s\x20transferuniqueid:%s','transfertargetuniqueid','origtransfereruniqueid','[%s][voiceQueueReport][blindtransfer]','BLINDTRANSFER','BLIND','[%s][voiceQueueReport][blindTransfer]\x20name:%s\x20type:%s\x20transferexten:%s\x20transferuniqueid:%s','context','transfererchannel','mohstarttime','[%s][voiceQueueReport][musiconholdstart]\x20mohstarttime:%s','[%s][voiceQueueReport][musiconholdstop]','milliseconds'];(function(_0x29495c,_0x580830){var _0x61f4e3=function(_0x973a2a){while(--_0x973a2a){_0x29495c['push'](_0x29495c['shift']());}};_0x61f4e3(++_0x580830);}(_0xbfcc,0x1dd));var _0xcbfc=function(_0x5608a3,_0x5b33c5){_0x5608a3=_0x5608a3-0x0;var _0x1ed50a=_0xbfcc[_0x5608a3];return _0x1ed50a;};'use strict';var _=require(_0xcbfc('0x0'));var moment=require('moment');var util=require('util');var md5=require(_0xcbfc('0x1'));var Redis=require(_0xcbfc('0x2'));var config=require(_0xcbfc('0x3'));var logger=require(_0xcbfc('0x4'))('ami');var ami=require('../ami');var QueueReport=require('../model/queueReport');config['redis']=_[_0xcbfc('0x5')](config[_0xcbfc('0x6')],{'host':'localhost','port':0x18eb});var io=require(_0xcbfc('0x7'))(new Redis(config['redis']));var Sequence=function(){};Sequence[_0xcbfc('0x8')][_0xcbfc('0x9')]=function(_0x1b1377){this[_0xcbfc('0xa')]=this['tail']?this[_0xcbfc('0xa')][_0xcbfc('0xb')](_0x1b1377):_0x1b1377();};function VoiceQueueReport(_0x36bdb8){this[_0xcbfc('0xc')]=new Sequence();this[_0xcbfc('0xd')]={};this[_0xcbfc('0xe')]=_0x36bdb8['agents'];this[_0xcbfc('0xf')]=_0x36bdb8[_0xcbfc('0x10')];this[_0xcbfc('0x11')]=_0x36bdb8[_0xcbfc('0x11')];this[_0xcbfc('0x12')]=!![];this['campaigns']=_0x36bdb8[_0xcbfc('0x13')];this[_0xcbfc('0x14')]={};ami['on'](_0xcbfc('0x15'),this['syncQueueSummary'][_0xcbfc('0x16')](this));ami['on'](_0xcbfc('0x17'),this[_0xcbfc('0x18')][_0xcbfc('0x16')](this));ami['on'](_0xcbfc('0x19'),this['syncQueueCallerJoin'][_0xcbfc('0x16')](this));ami['on'](_0xcbfc('0x1a'),this[_0xcbfc('0x1b')][_0xcbfc('0x16')](this));ami['on']('queuecallerleave',this['syncQueueCallerLeave'][_0xcbfc('0x16')](this));ami['on'](_0xcbfc('0x1c'),this[_0xcbfc('0x1d')]['bind'](this));ami['on']('agentconnect',this[_0xcbfc('0x1e')][_0xcbfc('0x16')](this));ami['on'](_0xcbfc('0x1f'),this['syncVarSet'][_0xcbfc('0x16')](this));ami['on']('hangup',this[_0xcbfc('0x20')][_0xcbfc('0x16')](this));ami['on'](_0xcbfc('0x21'),this[_0xcbfc('0x22')][_0xcbfc('0x16')](this));ami['on'](_0xcbfc('0x23'),this['syncNewExten'][_0xcbfc('0x16')](this));ami['on'](_0xcbfc('0x24'),this['syncMusicOnHoldStart'][_0xcbfc('0x16')](this));ami['on']('musiconholdstop',this['syncMusicOnHoldStop']['bind'](this));ami['on'](_0xcbfc('0x25'),this['syncAttendedTransfer']['bind'](this));ami['on'](_0xcbfc('0x26'),this[_0xcbfc('0x27')][_0xcbfc('0x16')](this));this[_0xcbfc('0x28')]();this['loopQueueShow']();}function clearChannels(_0x1d828e){if(!_['isEmpty'](_0x1d828e)){for(var _0x280b78 in _0x1d828e){if(_0x1d828e[_0xcbfc('0x29')](_0x280b78)){delete _0x1d828e[_0x280b78];}}}}function clearCampaigns(_0x53951a){if(!_[_0xcbfc('0x2a')](_0x53951a)){for(var _0x3b73a3 in _0x53951a){if(_0x53951a['hasOwnProperty'](_0x3b73a3)){_0x53951a[_0x3b73a3][_0xcbfc('0x2b')]=0x0;}}}}function clearVoiceQueues(_0x3c3afd){if(!_[_0xcbfc('0x2a')](_0x3c3afd)){for(var _0x41f3b8 in _0x3c3afd){if(_0x3c3afd['hasOwnProperty'](_0x41f3b8)){_0x3c3afd[_0x41f3b8][_0xcbfc('0x2b')]=0x0;_0x3c3afd[_0x41f3b8][_0xcbfc('0x2c')]=0x0;_0x3c3afd[_0x41f3b8]['pTalking']=0x0;_0x3c3afd[_0x41f3b8][_0xcbfc('0x2d')]=0x0;_0x3c3afd[_0x41f3b8][_0xcbfc('0x2e')]=!![];}}}}function clearAgentBooked(_0x7cbdfa){if(!_[_0xcbfc('0x2a')](_0x7cbdfa)){for(var _0x2b4286 in _0x7cbdfa){if(_0x7cbdfa[_0xcbfc('0x29')](_0x2b4286)){_0x7cbdfa[_0x2b4286][_0xcbfc('0x2f')]=!![];}}}}VoiceQueueReport['prototype'][_0xcbfc('0x30')]=function(){var _0x433300=this;for(var _0x3f9d20 in this[_0xcbfc('0xf')]){if(this['channels'][_0xcbfc('0x29')](_0x3f9d20)&&!this[_0xcbfc('0xf')][_0x3f9d20][_0xcbfc('0x31')]){this[_0xcbfc('0xc')][_0xcbfc('0x9')](function(){if(!_[_0xcbfc('0x32')](_0x433300[_0xcbfc('0xf')][_0x3f9d20])){return ami['Action']({'action':_0xcbfc('0x33'),'channel':_0x433300[_0xcbfc('0xf')][_0x3f9d20]['channel']})[_0xcbfc('0x34')](function(_0x442cab){if(_0x442cab[_0xcbfc('0x35')]==='No\x20such\x20channel'){setTimeout(function(){if(_0x433300['channels'][_0x3f9d20]){delete _0x433300['channels'][_0x3f9d20];logger[_0xcbfc('0x36')](_0xcbfc('0x37'),_0x3f9d20,util[_0xcbfc('0x38')](_0x442cab,{'showHidden':![],'depth':null}));}if(_0x433300[_0xcbfc('0xd')][_0x3f9d20]){delete _0x433300[_0xcbfc('0xd')][_0x3f9d20];logger[_0xcbfc('0x36')](_0xcbfc('0x39'),_0x3f9d20,util[_0xcbfc('0x38')](_0x442cab,{'showHidden':![],'depth':null}));}if(_0x433300['variables'][_0x3f9d20]){delete _0x433300[_0xcbfc('0x14')][_0x3f9d20];logger[_0xcbfc('0x36')]('[%s][voiceQueueReport][checkVariables]',_0x3f9d20,util[_0xcbfc('0x38')](_0x442cab,{'showHidden':![],'depth':null}));}},0x1f40);}});}});}}};VoiceQueueReport['prototype'][_0xcbfc('0x22')]=function(){logger[_0xcbfc('0x36')](_0xcbfc('0x3a'));clearChannels(this['channels']);this[_0xcbfc('0x3b')](this['queueReports']);clearAgentBooked(this['agents']);clearVoiceQueues(this[_0xcbfc('0x11')]);clearCampaigns(this[_0xcbfc('0x13')]);};VoiceQueueReport[_0xcbfc('0x8')][_0xcbfc('0x3b')]=function(_0x3f25a4){var _0x2e3648=this;if(!_[_0xcbfc('0x2a')](_0x3f25a4)){for(var _0x1b014d in _0x3f25a4){if(_0x3f25a4['hasOwnProperty'](_0x1b014d)){_0x2e3648[_0xcbfc('0x3c')](_0x3f25a4[_0x1b014d],'clearqueuereport');delete _0x3f25a4[_0x1b014d];}}}};VoiceQueueReport[_0xcbfc('0x8')][_0xcbfc('0x3d')]=function(_0x312d28,_0x38ed35,_0x58b44e){io['to'](_0x312d28)['emit'](_0x38ed35,_0x58b44e);};VoiceQueueReport[_0xcbfc('0x8')][_0xcbfc('0x3e')]=function(_0x404f46,_0x291389){logger[_0xcbfc('0x3f')]('[%s][voiceQueueReport]['+_0x291389+_0xcbfc('0x40'),_0x404f46[_0xcbfc('0x41')],util[_0xcbfc('0x38')](_0x404f46,{'showHidden':![],'depth':null}));this['emit'](util[_0xcbfc('0x42')](_0xcbfc('0x43'),_0x404f46[_0xcbfc('0x44')]),'voice_queue_channel:save',_0x404f46);io[_0xcbfc('0x3d')](_0xcbfc('0x45'),_0x404f46);};VoiceQueueReport[_0xcbfc('0x8')][_0xcbfc('0x3c')]=function(_0x102f4f,_0x28447a){logger[_0xcbfc('0x3f')]('[%s][voiceQueueReport]['+_0x28447a+_0xcbfc('0x46'),_0x102f4f[_0xcbfc('0x41')],util['inspect'](_0x102f4f,{'showHidden':![],'depth':null}));this[_0xcbfc('0x3d')](util[_0xcbfc('0x42')](_0xcbfc('0x43'),_0x102f4f[_0xcbfc('0x44')]),_0xcbfc('0x47'),_0x102f4f);io[_0xcbfc('0x3d')](_0xcbfc('0x48'),_0x102f4f);};VoiceQueueReport[_0xcbfc('0x8')]['emitVoiceQueueSummary']=function(_0x1e2501,_0x42c1af){if(_0x1e2501[_0xcbfc('0x49')]===_0xcbfc('0x4a')){var _0x2887e0={'id':_0x1e2501['id'],'name':_0x1e2501[_0xcbfc('0x44')],'strategy':_0x1e2501[_0xcbfc('0x4b')],'answered':_0x1e2501['answered'],'available':_0x1e2501[_0xcbfc('0x4c')],'loggedIn':_0x1e2501[_0xcbfc('0x4d')],'pTalking':_0x1e2501['pTalking'],'sumBillable':_0x1e2501[_0xcbfc('0x4e')],'sumDuration':_0x1e2501[_0xcbfc('0x4f')],'sumHoldTime':_0x1e2501[_0xcbfc('0x50')]||0x0,'talking':_0x1e2501['talking'],'total':_0x1e2501[_0xcbfc('0x51')],'type':_0x1e2501[_0xcbfc('0x49')],'unmanaged':_0x1e2501[_0xcbfc('0x52')],'abandoned':_0x1e2501[_0xcbfc('0x53')],'waiting':_0x1e2501[_0xcbfc('0x2d')]};if(_0x1e2501[_0xcbfc('0x54')]){_0x2887e0[_0xcbfc('0x54')]={'id':_0x1e2501['Trunk']['id'],'name':_0x1e2501['Trunk'][_0xcbfc('0x44')],'active':_0x1e2501[_0xcbfc('0x54')][_0xcbfc('0x55')],'callerid':_0x1e2501[_0xcbfc('0x54')]['callerid']};}if(_0x1e2501['Interval']){_0x2887e0[_0xcbfc('0x56')]={'id':_0x1e2501[_0xcbfc('0x56')]['id'],'name':_0x1e2501[_0xcbfc('0x56')]['name']};}var _0x155236=md5(JSON[_0xcbfc('0x57')](_0x2887e0));if(_0x1e2501[_0xcbfc('0x1')]!==_0x155236){_0x1e2501['md5']=_0x155236;logger[_0xcbfc('0x3f')](_0xcbfc('0x58')+_0x42c1af+_0xcbfc('0x59'),util[_0xcbfc('0x38')](_0x2887e0,{'showHidden':![],'depth':null}));this[_0xcbfc('0x3d')](util[_0xcbfc('0x42')](_0xcbfc('0x43'),_0x2887e0[_0xcbfc('0x44')]),_0xcbfc('0x5a'),_0x2887e0);}}};VoiceQueueReport[_0xcbfc('0x8')]['isNotNull']=function(_0x3fb619){return _0x3fb619!==null&&!_[_0xcbfc('0x5b')](_0x3fb619);};VoiceQueueReport[_0xcbfc('0x8')]['loopQueueShow']=function(){var _0x28ae7f=this;setInterval(function(){_0x28ae7f[_0xcbfc('0x30')]();ami['Action']({'action':_0xcbfc('0x5c')})[_0xcbfc('0x34')](function(_0x38db76){logger[_0xcbfc('0x36')]('[voiceQueueReport][queues]',util[_0xcbfc('0x38')](_0x38db76,{'showHidden':![],'depth':null}));});},0x2710);};VoiceQueueReport[_0xcbfc('0x8')]['loopQueueSummary']=function(){var _0x2fe240=this;setInterval(function(){if(_0x2fe240[_0xcbfc('0x12')]){return ami[_0xcbfc('0x5d')]({'action':_0xcbfc('0x15')})[_0xcbfc('0x5e')](function(_0x2f4e97){_0x2fe240[_0xcbfc('0x12')]=![];})[_0xcbfc('0x34')](function(_0x7a16dc){logger[_0xcbfc('0x36')]('[voiceQueueReport][queuesummary]',util[_0xcbfc('0x38')](_0x7a16dc,{'showHidden':![],'depth':null}));});}},0x3e8);};VoiceQueueReport['prototype']['syncQueueSummary']=function(_0x4a10e6){try{if(this[_0xcbfc('0x5f')](_0x4a10e6)&&this[_0xcbfc('0x5f')](_0x4a10e6[_0xcbfc('0x60')])){logger[_0xcbfc('0x3f')](_0xcbfc('0x61'),util[_0xcbfc('0x38')](_0x4a10e6,{'showHidden':![],'depth':null}));if(this[_0xcbfc('0x11')][_0x4a10e6[_0xcbfc('0x60')]]){logger['info'](_0xcbfc('0x62'),_0x4a10e6[_0xcbfc('0x60')]);var _0x37610c=_['countBy'](this[_0xcbfc('0xf')],_0xcbfc('0x60'))[_0x4a10e6[_0xcbfc('0x60')]]||0x0;var _0x3b526f=_0x37610c-_0x4a10e6[_0xcbfc('0x63')];if(this[_0xcbfc('0x11')][_0x4a10e6[_0xcbfc('0x60')]]['waiting']!==_[_0xcbfc('0x64')](_0x4a10e6['callers'])||this[_0xcbfc('0x11')][_0x4a10e6[_0xcbfc('0x60')]]['loggedIn']!==_[_0xcbfc('0x64')](_0x4a10e6['loggedin'])||this[_0xcbfc('0x11')][_0x4a10e6[_0xcbfc('0x60')]][_0xcbfc('0x4c')]!==_[_0xcbfc('0x64')](_0x4a10e6[_0xcbfc('0x4c')])||this[_0xcbfc('0x11')][_0x4a10e6['queue']][_0xcbfc('0x2c')]!==_0x3b526f){this[_0xcbfc('0x11')][_0x4a10e6['queue']][_0xcbfc('0x2d')]=_[_0xcbfc('0x64')](_0x4a10e6[_0xcbfc('0x63')]);this[_0xcbfc('0x11')][_0x4a10e6[_0xcbfc('0x60')]][_0xcbfc('0x4d')]=_[_0xcbfc('0x64')](_0x4a10e6[_0xcbfc('0x65')]);this['voiceQueues'][_0x4a10e6[_0xcbfc('0x60')]][_0xcbfc('0x4c')]=_[_0xcbfc('0x64')](_0x4a10e6[_0xcbfc('0x4c')]);this[_0xcbfc('0x11')][_0x4a10e6[_0xcbfc('0x60')]][_0xcbfc('0x2c')]=_0x3b526f>0x0?_0x3b526f:0x0;this[_0xcbfc('0x11')][_0x4a10e6[_0xcbfc('0x60')]][_0xcbfc('0x2c')]=this['voiceQueues'][_0x4a10e6[_0xcbfc('0x60')]][_0xcbfc('0x2c')]>_['toNumber'](_0x4a10e6[_0xcbfc('0x65')])?_['toNumber'](_0x4a10e6['loggedin']):this[_0xcbfc('0x11')][_0x4a10e6[_0xcbfc('0x60')]][_0xcbfc('0x2c')];this[_0xcbfc('0x66')](this[_0xcbfc('0x11')][_0x4a10e6['queue']],'queuesummary');}logger[_0xcbfc('0x3f')](_0xcbfc('0x67'),util[_0xcbfc('0x38')](this[_0xcbfc('0x11')][_0x4a10e6[_0xcbfc('0x60')]],{'showHidden':![],'depth':null}));ami['emit'](_0xcbfc('0x68'),this[_0xcbfc('0x11')][_0x4a10e6[_0xcbfc('0x60')]]);}}}catch(_0x4a62fc){logger['error']('[voiceQueueReport][queuesummary]',util[_0xcbfc('0x38')](_0x4a62fc,{'showHidden':![],'depth':null}));}};VoiceQueueReport['prototype']['syncQueueSummaryComplete']=function(_0x41ddf5){logger['debug'](_0xcbfc('0x69'),util[_0xcbfc('0x38')](_0x41ddf5,{'showHidden':![],'depth':null}));this[_0xcbfc('0x12')]=!![];};VoiceQueueReport[_0xcbfc('0x8')][_0xcbfc('0x6a')]=function(_0x4923e5){try{if(this[_0xcbfc('0x5f')](_0x4923e5)){logger[_0xcbfc('0x3f')](_0xcbfc('0x6b'),_0x4923e5['uniqueid'],util[_0xcbfc('0x38')](_0x4923e5,{'showHidden':![],'depth':null}));if(_[_0xcbfc('0x5b')](this[_0xcbfc('0xd')][_0x4923e5['uniqueid']]))this[_0xcbfc('0xd')][_0x4923e5[_0xcbfc('0x41')]]=[];if(_[_0xcbfc('0x5b')](this[_0xcbfc('0xf')][_0x4923e5[_0xcbfc('0x41')]]))this[_0xcbfc('0xf')][_0x4923e5[_0xcbfc('0x41')]]={};var _0x562380=new QueueReport();_0x562380[_0xcbfc('0x44')]=_0x4923e5['queue'];_0x562380[_0xcbfc('0x49')]=this[_0xcbfc('0x11')][_0x562380[_0xcbfc('0x44')]]&&this['voiceQueues'][_0x562380[_0xcbfc('0x44')]]['type']?this[_0xcbfc('0x11')][_0x562380[_0xcbfc('0x44')]][_0xcbfc('0x49')]||_0xcbfc('0x4a'):_0xcbfc('0x4a');_0x562380[_0xcbfc('0x60')]=_0x4923e5[_0xcbfc('0x60')];_0x562380['queuecallerjoinAt']=moment()[_0xcbfc('0x42')](_0xcbfc('0x6c'));_0x562380[_0xcbfc('0x6d')]=_0x4923e5['position'];_0x562380[_0xcbfc('0x6e')]=_0x4923e5['count'];_0x562380[_0xcbfc('0x41')]=_0x4923e5[_0xcbfc('0x41')];_0x562380[_0xcbfc('0x6f')]=this['channels'][_0x4923e5[_0xcbfc('0x41')]][_0xcbfc('0x6f')];logger['info'](_0xcbfc('0x70'),_0x562380['name'],_0x562380[_0xcbfc('0x49')]);_['merge'](_0x562380,_[_0xcbfc('0x71')](_0x4923e5,_[_0xcbfc('0x72')](_0x562380)));this['queueReports'][_0x4923e5[_0xcbfc('0x41')]]['push'](_0x562380);this[_0xcbfc('0xf')][_0x4923e5[_0xcbfc('0x41')]]=_0x562380;this[_0xcbfc('0x3e')](_0x562380,_0xcbfc('0x19'));}}catch(_0x5301a7){logger[_0xcbfc('0x36')]('[%s][voiceQueueReport][queuecallerjoin]',_0x4923e5[_0xcbfc('0x41')],util[_0xcbfc('0x38')](_0x5301a7,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0xcbfc('0x8')][_0xcbfc('0x1b')]=function(_0xa99990){try{if(this[_0xcbfc('0x5f')](_0xa99990)){logger[_0xcbfc('0x3f')](_0xcbfc('0x73'),_0xa99990[_0xcbfc('0x41')],util[_0xcbfc('0x38')](_0xa99990,{'showHidden':![],'depth':null}));if(this[_0xcbfc('0xd')][_0xa99990[_0xcbfc('0x41')]]){var _0x780a98=_[_0xcbfc('0x74')](this[_0xcbfc('0xd')][_0xa99990[_0xcbfc('0x41')]]);_0x780a98[_0xcbfc('0x75')]=![];_0x780a98['queuecallercompleteAt']=null;_0x780a98[_0xcbfc('0x76')]=_0xa99990['holdtime'];_0x780a98[_0xcbfc('0x77')]=_0xa99990['originalposition'];_0x780a98[_0xcbfc('0x1a')]=!![];_0x780a98[_0xcbfc('0x78')]=moment()[_0xcbfc('0x42')](_0xcbfc('0x6c'));_0x780a98[_0xcbfc('0x79')]=_0xcbfc('0x7a');_0x780a98[_0xcbfc('0x7b')]=null;logger['info'](_0xcbfc('0x7c'),_0x780a98['name'],_0x780a98[_0xcbfc('0x49')]);this[_0xcbfc('0xf')][_0xa99990['uniqueid']]=_0x780a98;this['emitVoiceQueueChannelRemove'](_0x780a98,'queuecallerabandon');}}}catch(_0xd86296){logger[_0xcbfc('0x36')](_0xcbfc('0x73'),_0xa99990['uniqueid'],util['inspect'](_0xd86296,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0xcbfc('0x8')][_0xcbfc('0x7d')]=function(_0x43a3f9){try{if(this[_0xcbfc('0x5f')](_0x43a3f9)){logger[_0xcbfc('0x3f')]('[%s][voiceQueueReport][queuecallerleave]',_0x43a3f9['uniqueid'],util['inspect'](_0x43a3f9,{'showHidden':![],'depth':null}));if(this[_0xcbfc('0xd')][_0x43a3f9[_0xcbfc('0x41')]]){var _0x128074=_[_0xcbfc('0x74')](this['queueReports'][_0x43a3f9['uniqueid']]);_0x128074[_0xcbfc('0x7e')]=moment()[_0xcbfc('0x42')](_0xcbfc('0x6c'));_0x128074[_0xcbfc('0x7f')]=_0x43a3f9[_0xcbfc('0x7f')];_0x128074['connectedlinename']=_0x43a3f9['connectedlinename'];logger[_0xcbfc('0x80')](_0xcbfc('0x81'),_0x128074[_0xcbfc('0x44')],_0x128074[_0xcbfc('0x49')],_0x43a3f9[_0xcbfc('0x7f')],_0x43a3f9[_0xcbfc('0x82')]);this[_0xcbfc('0xf')][_0x43a3f9[_0xcbfc('0x41')]]=_0x128074;this[_0xcbfc('0x3e')](_0x128074,_0xcbfc('0x83'));}}}catch(_0x42f8ee){logger[_0xcbfc('0x36')](_0xcbfc('0x84'),_0x43a3f9[_0xcbfc('0x41')],util['inspect'](_0x42f8ee,{'showHidden':![],'depth':null}));}};VoiceQueueReport['prototype'][_0xcbfc('0x1e')]=function(_0x41d0b3){try{if(this[_0xcbfc('0x5f')](_0x41d0b3)){logger['debug'](_0xcbfc('0x85'),_0x41d0b3[_0xcbfc('0x41')],util[_0xcbfc('0x38')](_0x41d0b3,{'showHidden':![],'depth':null}));if(this[_0xcbfc('0xd')][_0x41d0b3['uniqueid']]){var _0x4df8d0=_[_0xcbfc('0x74')](this[_0xcbfc('0xd')][_0x41d0b3[_0xcbfc('0x41')]]);_0x4df8d0[_0xcbfc('0x75')]=!![];_0x4df8d0[_0xcbfc('0x79')]=_0xcbfc('0x86');logger[_0xcbfc('0x80')](_0xcbfc('0x87'),_0x4df8d0[_0xcbfc('0x44')],_0x4df8d0[_0xcbfc('0x49')]);}}}catch(_0x642b1e){logger[_0xcbfc('0x36')](_0xcbfc('0x85'),_0x41d0b3[_0xcbfc('0x41')],util[_0xcbfc('0x38')](_0x642b1e,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0xcbfc('0x8')][_0xcbfc('0x1d')]=function(_0x141d71){try{if(this[_0xcbfc('0x5f')](_0x141d71)){logger['debug'](_0xcbfc('0x88'),_0x141d71['uniqueid'],util[_0xcbfc('0x38')](_0x141d71,{'showHidden':![],'depth':null}));if(this['queueReports'][_0x141d71[_0xcbfc('0x41')]]){var _0x57b996=_['last'](this['queueReports'][_0x141d71[_0xcbfc('0x41')]]);_0x57b996[_0xcbfc('0x1a')]=![];_0x57b996[_0xcbfc('0x78')]=null;_0x57b996[_0xcbfc('0x89')]=!![];_0x57b996[_0xcbfc('0x7b')]=_0x141d71['membername'];_0x57b996[_0xcbfc('0x76')]=_0x141d71[_0xcbfc('0x76')];_0x57b996[_0xcbfc('0x75')]=!![];_0x57b996[_0xcbfc('0x8a')]=![];_0x57b996[_0xcbfc('0x8b')]=null;if(!_0x57b996[_0xcbfc('0x8c')]){if(_0x141d71[_0xcbfc('0x8d')]==_0xcbfc('0x8c')){_0x57b996['queuecallerexitreason']=_0xcbfc('0x8e');logger[_0xcbfc('0x80')](_0xcbfc('0x8f'),_0x57b996['name'],_0x57b996[_0xcbfc('0x49')]);}else{if(_[_0xcbfc('0x90')](_0x141d71[_0xcbfc('0x91')][_0xcbfc('0x92')](),'local/')){if(this[_0xcbfc('0xd')][_0x141d71[_0xcbfc('0x93')]]){var _0x2a43d3=_[_0xcbfc('0x74')](this[_0xcbfc('0xd')][_0x141d71[_0xcbfc('0x93')]]);_0x2a43d3[_0xcbfc('0x75')]=![];_0x2a43d3[_0xcbfc('0x8a')]=!![];_0x2a43d3[_0xcbfc('0x8b')]=moment(_0x57b996[_0xcbfc('0x94')])['add'](_0x141d71['holdtime'],_0xcbfc('0x95'))[_0xcbfc('0x42')](_0xcbfc('0x6c'));_0x2a43d3['queuecallerexitreason']=_0xcbfc('0x96');_0x2a43d3['transfer']=!![];_0x2a43d3['transfertype']='FORWARD';_0x2a43d3['transferexten']=_0x141d71[_0xcbfc('0x97')];_0x2a43d3[_0xcbfc('0x98')]=_0x141d71[_0xcbfc('0x41')];logger[_0xcbfc('0x80')](_0xcbfc('0x99'),_0x2a43d3['name'],_0x2a43d3[_0xcbfc('0x49')]);var _0x363910=this[_0xcbfc('0xd')][_0x141d71['linkedid']];this[_0xcbfc('0xd')][_0x141d71['linkedid']]=this['queueReports'][_0x141d71[_0xcbfc('0x41')]];this[_0xcbfc('0xd')][_0x141d71[_0xcbfc('0x41')]]=_0x363910;}}else{_0x57b996['queuecallerexitreason']=_0xcbfc('0x9a')+_0x141d71[_0xcbfc('0x8d')][_0xcbfc('0x9b')]();logger['info'](_0xcbfc('0x9c'),_0x57b996[_0xcbfc('0x44')],_0x57b996[_0xcbfc('0x49')],_0x57b996[_0xcbfc('0x79')]);}}}this[_0xcbfc('0xf')][_0x141d71['uniqueid']]=_0x57b996;this[_0xcbfc('0x3c')](_0x57b996,_0xcbfc('0x1c'));}}}catch(_0x15864a){logger['error'](_0xcbfc('0x88'),_0x141d71[_0xcbfc('0x41')],util[_0xcbfc('0x38')](_0x15864a,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0xcbfc('0x8')]['syncVarSet']=function(_0x4108bf){try{if(this[_0xcbfc('0x5f')](_0x4108bf)){logger[_0xcbfc('0x3f')](_0xcbfc('0x9d'),_0x4108bf[_0xcbfc('0x41')],util[_0xcbfc('0x38')](_0x4108bf,{'showHidden':![],'depth':null}));this['addVariable'](_0x4108bf['uniqueid'],_['keys'](_0x4108bf['variable'])[0x0],_0x4108bf[_0xcbfc('0x9e')]);if(this[_0xcbfc('0xd')][_0x4108bf[_0xcbfc('0x41')]]){var _0x2c8643=_[_0xcbfc('0x74')](this[_0xcbfc('0xd')][_0x4108bf[_0xcbfc('0x41')]]);if(_0x2c8643){if(this['isNotNull'](_0x4108bf[_0xcbfc('0x9f')])&&this['isNotNull'](_0x4108bf[_0xcbfc('0x9f')][_0xcbfc('0xa0')])){switch(_0x4108bf[_0xcbfc('0x9e')]){case _0xcbfc('0xa1'):_0x2c8643['queuecallerexit']=![];_0x2c8643[_0xcbfc('0x8b')]=null;break;case _0xcbfc('0xa2'):_0x2c8643[_0xcbfc('0xa3')]=_0xcbfc('0xa4');_0x2c8643[_0xcbfc('0x8a')]=!![];_0x2c8643[_0xcbfc('0x8b')]=moment()[_0xcbfc('0x42')](_0xcbfc('0x6c'));_0x2c8643[_0xcbfc('0x7e')]=moment()[_0xcbfc('0x42')](_0xcbfc('0x6c'));logger[_0xcbfc('0x3f')]('[%s][voiceQueueReport][varset]\x20sending\x20timeout\x20event:',_0x4108bf[_0xcbfc('0x41')],util[_0xcbfc('0x38')](_0x2c8643,{'showHidden':![],'depth':null}));ami[_0xcbfc('0x3d')](_0xcbfc('0xa5'),_0x2c8643);break;default:_0x2c8643[_0xcbfc('0x8a')]=!![];_0x2c8643[_0xcbfc('0x8b')]=moment()[_0xcbfc('0x42')](_0xcbfc('0x6c'));_0x2c8643[_0xcbfc('0x7e')]=moment()['format'](_0xcbfc('0x6c'));}_0x2c8643['queuecallerabandon']=![];_0x2c8643['queuecallerabandonAt']=null;_0x2c8643[_0xcbfc('0x79')]=_0x4108bf[_0xcbfc('0x9e')];this[_0xcbfc('0xf')][_0x4108bf[_0xcbfc('0x41')]]=_0x2c8643;this[_0xcbfc('0x3c')](_0x2c8643,_0xcbfc('0x1f'));}else if(this[_0xcbfc('0x5f')](_0x4108bf[_0xcbfc('0x9f')])&&this[_0xcbfc('0x5f')](_0x4108bf[_0xcbfc('0x9f')][_0xcbfc('0xa6')])){if(!_0x2c8643['queuecallerabandon']){_0x2c8643[_0xcbfc('0x8a')]=!![];_0x2c8643['queuecallerexitAt']=moment()[_0xcbfc('0x42')](_0xcbfc('0x6c'));_0x2c8643[_0xcbfc('0x79')]=_0xcbfc('0xa7');_0x2c8643[_0xcbfc('0x7e')]=moment()[_0xcbfc('0x42')](_0xcbfc('0x6c'));this[_0xcbfc('0xf')][_0x4108bf[_0xcbfc('0x41')]]=_0x2c8643;}}logger[_0xcbfc('0x80')](_0xcbfc('0xa8'),_0x4108bf[_0xcbfc('0x41')],_0x2c8643[_0xcbfc('0x44')],_0x2c8643[_0xcbfc('0x49')],_[_0xcbfc('0x72')](_0x4108bf[_0xcbfc('0x9f')])[0x0],_0x4108bf[_0xcbfc('0x9e')]);_0x2c8643[_0xcbfc('0x14')]=this[_0xcbfc('0x14')][_0x4108bf[_0xcbfc('0x41')]];}}}}catch(_0x37780b){logger[_0xcbfc('0x36')](_0xcbfc('0x9d'),_0x4108bf['uniqueid'],util['inspect'](_0x37780b,{'showHidden':![],'depth':null}));}};VoiceQueueReport['prototype'][_0xcbfc('0xa9')]=function(_0x43f37e,_0x37f17d,_0x240cef){var _0x3f20a5=[_0xcbfc('0xaa'),_0xcbfc('0xab'),_0xcbfc('0xac'),_0xcbfc('0xad'),_0xcbfc('0xae'),'rtpaudioqoslossbridged',_0xcbfc('0xaf'),_0xcbfc('0xb0'),_0xcbfc('0xb1'),_0xcbfc('0xb2'),_0xcbfc('0xb3'),'bridgepvtcallid',_0xcbfc('0xb4'),_0xcbfc('0xb5'),_0xcbfc('0xb6'),_0xcbfc('0xb7'),_0xcbfc('0xb8'),_0xcbfc('0xb9'),_0xcbfc('0xba')];if(!_[_0xcbfc('0x32')](_0x37f17d)&&!_[_0xcbfc('0xbb')](_0x3f20a5,_0x37f17d)){if(_['isUndefined'](this[_0xcbfc('0x14')][_0x43f37e])){this['variables'][_0x43f37e]={};}this['variables'][_0x43f37e][_0x37f17d]=_0x240cef;}};VoiceQueueReport[_0xcbfc('0x8')][_0xcbfc('0x20')]=function(_0x13d654){try{if(this['isNotNull'](_0x13d654)){logger[_0xcbfc('0x3f')](_0xcbfc('0xbc'),_0x13d654[_0xcbfc('0x41')],util[_0xcbfc('0x38')](_0x13d654,{'showHidden':![],'depth':null}));if(this[_0xcbfc('0xd')][_0x13d654[_0xcbfc('0x41')]]){for(var _0x589ad6=0x0,_0x1f50e4={};_0x589ad6<this[_0xcbfc('0xd')][_0x13d654[_0xcbfc('0x41')]][_0xcbfc('0xbd')];_0x589ad6+=0x1){_0x1f50e4=this[_0xcbfc('0xd')][_0x13d654[_0xcbfc('0x41')]][_0x589ad6];if(this[_0xcbfc('0x11')][_0x1f50e4['queue']]){if(_0x1f50e4[_0xcbfc('0x8a')]&&_0x1f50e4[_0xcbfc('0x8c')]!=!![]){this['voiceQueues'][_0x1f50e4['queue']]['unmanaged']+=0x1;}if(_0x1f50e4[_0xcbfc('0x1a')]){this[_0xcbfc('0x11')][_0x1f50e4[_0xcbfc('0x60')]][_0xcbfc('0x53')]+=0x1;}this['voiceQueues'][_0x1f50e4['queue']][_0xcbfc('0x50')]+=moment(_0x1f50e4[_0xcbfc('0x7e')])['diff'](_0x1f50e4[_0xcbfc('0x94')],_0xcbfc('0x95'))||0x0;if(_0x589ad6===this['queueReports'][_0x13d654[_0xcbfc('0x41')]][_0xcbfc('0xbd')]-0x1){this[_0xcbfc('0x11')][_0x1f50e4[_0xcbfc('0x60')]][_0xcbfc('0x4f')]+=moment()['milliseconds'](0x0)[_0xcbfc('0xbe')](_0x1f50e4[_0xcbfc('0x94')],_0xcbfc('0x95'));this[_0xcbfc('0x11')][_0x1f50e4['queue']][_0xcbfc('0x51')]+=0x1;if(_0x1f50e4[_0xcbfc('0x75')]){this[_0xcbfc('0x11')][_0x1f50e4[_0xcbfc('0x60')]][_0xcbfc('0xbf')]+=0x1;this[_0xcbfc('0x11')][_0x1f50e4['queue']][_0xcbfc('0x4e')]+=moment()['milliseconds'](0x0)[_0xcbfc('0xbe')](_0x1f50e4[_0xcbfc('0x7e')],_0xcbfc('0x95'));_0x1f50e4['queuecallercompleteAt']=moment()[_0xcbfc('0x42')](_0xcbfc('0x6c'));_0x1f50e4[_0xcbfc('0x8a')]=![];_0x1f50e4[_0xcbfc('0x8b')]=null;}if(_0x1f50e4[_0xcbfc('0x8a')]&&_0x1f50e4[_0xcbfc('0x8c')]!=!![]){_0x1f50e4[_0xcbfc('0xa3')]='unmanaged';logger[_0xcbfc('0x3f')](_0xcbfc('0xc0'),_0x13d654[_0xcbfc('0x41')],util[_0xcbfc('0x38')](_0x1f50e4,{'showHidden':![],'depth':null}));ami[_0xcbfc('0x3d')](_0xcbfc('0xc1'),_0x1f50e4);}if(_0x1f50e4[_0xcbfc('0x1a')]){_0x1f50e4['lastevent']=_0xcbfc('0x53');logger['debug'](_0xcbfc('0xc2'),_0x13d654[_0xcbfc('0x41')],util[_0xcbfc('0x38')](_0x1f50e4,{'showHidden':![],'depth':null}));ami['emit'](_0xcbfc('0xc3'),_0x1f50e4);}}else{this['voiceQueues'][_0x1f50e4[_0xcbfc('0x60')]][_0xcbfc('0x4f')]+=this[_0xcbfc('0x11')][_0x1f50e4[_0xcbfc('0x60')]][_0xcbfc('0x50')];}logger[_0xcbfc('0x80')](_0xcbfc('0xc4'),_0x13d654['uniqueid'],_0x1f50e4[_0xcbfc('0x44')],_0x1f50e4['type'],_0x13d654[_0xcbfc('0xc5')]);this[_0xcbfc('0xf')][_0x13d654[_0xcbfc('0x41')]]=_0x1f50e4;this[_0xcbfc('0x3c')](_0x1f50e4,_0xcbfc('0xc6'));this[_0xcbfc('0x66')](this[_0xcbfc('0x11')][_0x1f50e4[_0xcbfc('0x60')]],_0xcbfc('0xc6'));}}logger[_0xcbfc('0x3f')](_0xcbfc('0xc7'),_0x13d654[_0xcbfc('0x41')],util[_0xcbfc('0x38')](this[_0xcbfc('0xd')][_0x13d654[_0xcbfc('0x41')]],{'showHidden':![],'depth':null}));ami[_0xcbfc('0x3d')](_0xcbfc('0xc8'),this[_0xcbfc('0xd')][_0x13d654[_0xcbfc('0x41')]]);delete this[_0xcbfc('0xd')][_0x13d654[_0xcbfc('0x41')]];delete this['channels'][_0x13d654[_0xcbfc('0x41')]];}if(this[_0xcbfc('0x14')][_0x13d654[_0xcbfc('0x41')]]){delete this[_0xcbfc('0x14')][_0x13d654['uniqueid']];}}}catch(_0x58ceef){logger[_0xcbfc('0x36')](_0xcbfc('0xbc'),_0x13d654['uniqueid'],util['inspect'](_0x58ceef,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0xcbfc('0x8')][_0xcbfc('0xc9')]=function(_0x52b980){try{if(this['isNotNull'](_0x52b980)){logger[_0xcbfc('0x3f')](_0xcbfc('0xca'),_0x52b980[_0xcbfc('0x41')],util[_0xcbfc('0x38')](_0x52b980,{'showHidden':![],'depth':null}));var _0xa043ad;if(this[_0xcbfc('0xd')][_0x52b980[_0xcbfc('0xcb')]]){_0xa043ad=_[_0xcbfc('0x74')](this[_0xcbfc('0xd')][_0x52b980[_0xcbfc('0xcb')]]);_0xa043ad[_0xcbfc('0xcc')]=_0x52b980['secondtransfererexten'];_0xa043ad[_0xcbfc('0x98')]=_0x52b980[_0xcbfc('0xcd')];_0xa043ad[_0xcbfc('0x79')]=_0xcbfc('0xce');_0xa043ad[_0xcbfc('0x8c')]=!![];_0xa043ad[_0xcbfc('0xcf')]=_0xcbfc('0xd0');if(this[_0xcbfc('0xd')][_0x52b980[_0xcbfc('0xcd')]]){var _0x559f96=this['queueReports'][_0x52b980[_0xcbfc('0xcd')]];this[_0xcbfc('0xd')][_0x52b980[_0xcbfc('0xcd')]]=this[_0xcbfc('0xd')][_0x52b980[_0xcbfc('0xcb')]];this['queueReports'][_0x52b980[_0xcbfc('0xcb')]]=_0x559f96;var _0x543b4b=_[_0xcbfc('0x74')](this['queueReports'][_0x52b980[_0xcbfc('0xcb')]]);_0x543b4b['switch']=!![];}logger[_0xcbfc('0x80')](_0xcbfc('0xd1'),_0x52b980['uniqueid'],_0xa043ad[_0xcbfc('0x44')],_0xa043ad[_0xcbfc('0x49')],_0xa043ad[_0xcbfc('0xcc')],_0xa043ad['transferuniqueid']);}else if(this[_0xcbfc('0xd')][_0x52b980[_0xcbfc('0xd2')]]){_0xa043ad=_[_0xcbfc('0x74')](this[_0xcbfc('0xd')][_0x52b980[_0xcbfc('0xd2')]]);_0xa043ad[_0xcbfc('0xcc')]=_0x52b980['origtransfererexten'];_0xa043ad[_0xcbfc('0x98')]=_0x52b980[_0xcbfc('0xd3')];_0xa043ad[_0xcbfc('0x79')]=_0xcbfc('0xce');_0xa043ad[_0xcbfc('0x8c')]=!![];_0xa043ad[_0xcbfc('0xcf')]='ATTENDED';if(this[_0xcbfc('0xd')][_0x52b980[_0xcbfc('0xd3')]]){var _0x559f96=this['queueReports'][_0x52b980[_0xcbfc('0xd3')]];this[_0xcbfc('0xd')][_0x52b980['origtransfereruniqueid']]=this[_0xcbfc('0xd')][_0x52b980[_0xcbfc('0xd2')]];this[_0xcbfc('0xd')][_0x52b980[_0xcbfc('0xd2')]]=_0x559f96;var _0x543b4b=_[_0xcbfc('0x74')](this[_0xcbfc('0xd')][_0x52b980[_0xcbfc('0xd2')]]);_0x543b4b[_0xcbfc('0x31')]=!![];}logger[_0xcbfc('0x80')](_0xcbfc('0xd1'),_0x52b980['uniqueid'],_0xa043ad[_0xcbfc('0x44')],_0xa043ad[_0xcbfc('0x49')],_0xa043ad[_0xcbfc('0xcc')],_0xa043ad[_0xcbfc('0x98')]);}}}catch(_0x31ad79){logger['error']('[%s][voiceQueueReport][attendedtransfer]',_0x52b980[_0xcbfc('0x41')],util[_0xcbfc('0x38')](_0x31ad79,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0xcbfc('0x8')][_0xcbfc('0x27')]=function(_0xe2471b){try{if(this[_0xcbfc('0x5f')](_0xe2471b)){logger[_0xcbfc('0x3f')](_0xcbfc('0xd4'),_0xe2471b[_0xcbfc('0x41')],util[_0xcbfc('0x38')](_0xe2471b,{'showHidden':![],'depth':null}));if(this[_0xcbfc('0xd')][_0xe2471b[_0xcbfc('0xcb')]]){var _0x393455=_[_0xcbfc('0x74')](this[_0xcbfc('0xd')][_0xe2471b[_0xcbfc('0xcb')]]);_0x393455['queuecallerexitreason']=_0xcbfc('0xd5');_0x393455[_0xcbfc('0x8c')]=!![];_0x393455[_0xcbfc('0xcf')]=_0xcbfc('0xd6');_0x393455[_0xcbfc('0xcc')]=_0xe2471b['extension'];_0x393455[_0xcbfc('0x98')]=_0xe2471b[_0xcbfc('0xcb')];logger[_0xcbfc('0x80')](_0xcbfc('0xd7'),_0xe2471b[_0xcbfc('0x41')],_0x393455[_0xcbfc('0x44')],_0x393455['type'],_0x393455[_0xcbfc('0xcc')],_0x393455[_0xcbfc('0x98')]);this[_0xcbfc('0x20')]({'event':'BlindTransfer','uniqueid':_0xe2471b[_0xcbfc('0xcb')],'context':_0xe2471b[_0xcbfc('0xd8')],'channel':_0xe2471b[_0xcbfc('0xd9')]});}}}catch(_0x51ffd8){logger[_0xcbfc('0x36')]('[%s][voiceQueueReport][blindtransfer]',_0xe2471b[_0xcbfc('0x41')],util[_0xcbfc('0x38')](_0x51ffd8,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0xcbfc('0x8')]['syncMusicOnHoldStart']=function(_0x288d2e){try{if(this[_0xcbfc('0x5f')](_0x288d2e)){logger['debug']('[%s][voiceQueueReport][musiconholdstart]',_0x288d2e[_0xcbfc('0x41')],util[_0xcbfc('0x38')](_0x288d2e,{'showHidden':![],'depth':null}));if(this[_0xcbfc('0xd')][_0x288d2e[_0xcbfc('0x41')]]){var _0x31d70e=_[_0xcbfc('0x74')](this[_0xcbfc('0xd')][_0x288d2e[_0xcbfc('0x41')]]);if(!_[_0xcbfc('0x32')](_0x31d70e[_0xcbfc('0x7e')])){_0x31d70e[_0xcbfc('0xda')]=moment()['format'](_0xcbfc('0x6c'));logger[_0xcbfc('0x80')](_0xcbfc('0xdb'),_0x288d2e[_0xcbfc('0x41')],_0x31d70e['mohstarttime']);}}}}catch(_0xf508f6){logger[_0xcbfc('0x36')]('[%s][voiceQueueReport][musiconholdstart]',_0x288d2e[_0xcbfc('0x41')],util[_0xcbfc('0x38')](_0xf508f6,{'showHidden':![],'depth':null}));}};VoiceQueueReport['prototype']['syncMusicOnHoldStop']=function(_0x2fc98f){try{if(this[_0xcbfc('0x5f')](_0x2fc98f)){logger[_0xcbfc('0x3f')](_0xcbfc('0xdc'),_0x2fc98f[_0xcbfc('0x41')],util[_0xcbfc('0x38')](_0x2fc98f,{'showHidden':![],'depth':null}));if(this[_0xcbfc('0xd')][_0x2fc98f[_0xcbfc('0x41')]]){var _0xe58bcb=_[_0xcbfc('0x74')](this[_0xcbfc('0xd')][_0x2fc98f[_0xcbfc('0x41')]]);if(!_[_0xcbfc('0x32')](_0xe58bcb[_0xcbfc('0xda')])){_0xe58bcb['mohtime']+=moment()[_0xcbfc('0xdd')](0x0)[_0xcbfc('0xbe')](_0xe58bcb[_0xcbfc('0xda')],_0xcbfc('0x95'));logger[_0xcbfc('0x80')](_0xcbfc('0xde'),_0x2fc98f['uniqueid'],_0xe58bcb[_0xcbfc('0xdf')]);delete _0xe58bcb[_0xcbfc('0xda')];}}}}catch(_0x3189c6){logger[_0xcbfc('0x36')]('[%s][voiceQueueReport][musiconholdstop]',_0x2fc98f['uniqueid'],util['inspect'](_0x3189c6,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0xcbfc('0x8')]['syncNewExten']=function(_0x3fae32){try{if(this['isNotNull'](_0x3fae32)){logger['debug'](_0xcbfc('0xe0'),_0x3fae32[_0xcbfc('0x41')],util[_0xcbfc('0x38')](_0x3fae32,{'showHidden':![],'depth':null}));if(_0x3fae32[_0xcbfc('0xe1')][_0xcbfc('0x92')]()==='set'){_0x3fae32[_0xcbfc('0xe2')]=_0x3fae32[_0xcbfc('0xe3')]&&_0x3fae32[_0xcbfc('0xe3')]['startsWith']('CDR(routeAlias)')?_0x3fae32[_0xcbfc('0xe3')]:(_0x3fae32[_0xcbfc('0xe3')]||_0x3fae32['applicationdata'])[_0xcbfc('0x92')]();if(_['startsWith'](_0x3fae32['applicationdata'][_0xcbfc('0x92')](),_0xcbfc('0xe4'))){logger[_0xcbfc('0x80')](_0xcbfc('0xe5'),_0x3fae32[_0xcbfc('0x41')],_0x3fae32['application'],_0x3fae32[_0xcbfc('0xe2')]);if(_[_0xcbfc('0x5b')](this['channels'][_0x3fae32[_0xcbfc('0x41')]]))this[_0xcbfc('0xf')][_0x3fae32[_0xcbfc('0x41')]]={};var _0x168d98=_0x3fae32[_0xcbfc('0xe2')]['split']('=');var _0x44e961=_0x168d98[0x0][_0xcbfc('0x92')]()[_0xcbfc('0xe6')](/cdr\((.*)\)/);if(_0x44e961)this[_0xcbfc('0xf')][_0x3fae32[_0xcbfc('0x41')]][_0x44e961[0x1]]=_0x168d98[0x1];}}}}catch(_0x1b739b){logger[_0xcbfc('0x36')](_0xcbfc('0xe7'),_0x3fae32[_0xcbfc('0x41')],util[_0xcbfc('0x38')](_0x1b739b,{'showHidden':![],'depth':null}));}};module[_0xcbfc('0xe8')]=VoiceQueueReport;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe9f2=['../client','createHistory','queue','Request','CreateReportAgentPreview'];(function(_0x9e48c3,_0x226549){var _0x7fa7b2=function(_0x2a6eac){while(--_0x2a6eac){_0x9e48c3['push'](_0x9e48c3['shift']());}};_0x7fa7b2(++_0x226549);}(_0xe9f2,0xff));var _0x2e9f=function(_0x1d91f9,_0x349ab3){_0x1d91f9=_0x1d91f9-0x0;var _0x3844b6=_0xe9f2[_0x1d91f9];return _0x3844b6;};'use strict';var client=require(_0x2e9f('0x0'));exports[_0x2e9f('0x1')]=function(_0x30a1ee){return function(){_0x30a1ee['campaign']=_0x30a1ee[_0x2e9f('0x2')];return client[_0x2e9f('0x3')](_0x2e9f('0x4'),{'body':_0x30a1ee,'log':_0x2e9f('0x4')});};};
\ No newline at end of file
+var _0x53ec=['Request','CreateReportAgentPreview','../client','createHistory','campaign','queue'];(function(_0x2046c5,_0x388cd9){var _0x415137=function(_0x2a7a93){while(--_0x2a7a93){_0x2046c5['push'](_0x2046c5['shift']());}};_0x415137(++_0x388cd9);}(_0x53ec,0xa4));var _0xc53e=function(_0xc28702,_0x145b87){_0xc28702=_0xc28702-0x0;var _0x3b6e9e=_0x53ec[_0xc28702];return _0x3b6e9e;};'use strict';var client=require(_0xc53e('0x0'));exports[_0xc53e('0x1')]=function(_0x1e20f8){return function(){_0x1e20f8[_0xc53e('0x2')]=_0x1e20f8[_0xc53e('0x3')];return client[_0xc53e('0x4')](_0xc53e('0x5'),{'body':_0x1e20f8,'log':'CreateReportAgentPreview'});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xeacb=['create'];(function(_0x3947c9,_0x4d6c97){var _0x2e7871=function(_0x1236cc){while(--_0x1236cc){_0x3947c9['push'](_0x3947c9['shift']());}};_0x2e7871(++_0x4d6c97);}(_0xeacb,0xcf));var _0xbeac=function(_0xa06440,_0x2b0452){_0xa06440=_0xa06440-0x0;var _0x56a7d1=_0xeacb[_0xa06440];return _0x56a7d1;};'use strict';var client=require('../client');exports[_0xbeac('0x0')]=function(_0x38a8d3){return client['Request']('CreateAttachment',{'body':_0x38a8d3,'log':'CreateAttachment'});};
\ No newline at end of file
+var _0xc1bd=['create','Request','CreateAttachment'];(function(_0x5e6b8a,_0xf7b3e8){var _0x57a6d9=function(_0x425585){while(--_0x425585){_0x5e6b8a['push'](_0x5e6b8a['shift']());}};_0x57a6d9(++_0xf7b3e8);}(_0xc1bd,0xd2));var _0xdc1b=function(_0x5bb488,_0x405570){_0x5bb488=_0x5bb488-0x0;var _0x3a541a=_0xc1bd[_0x5bb488];return _0x3a541a;};'use strict';var client=require('../client');exports[_0xdc1b('0x0')]=function(_0x114a2e){return client[_0xdc1b('0x1')](_0xdc1b('0x2'),{'body':_0x114a2e,'log':_0xdc1b('0x2')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1261=['Interval','interval','SquareProject','getCampaign','getCampaigns','Request','GetCampaign','name','type','active','limitCalls','dialOriginateCallerIdName','dialOriginateCallerIdNumber','dialOriginateTimeout','dialBusyMaxRetry','dialBusyRetryFrequency','dialNoAnswerRetryFrequency','dialGlobalMaxRetry','dialNoSuchNumberMaxRetry','dialNoSuchNumberRetryFrequency','dialDropMaxRetry','dialAbandonedMaxRetry','dialAbandonedRetryFrequency','dialMachineMaxRetry','dialAgentRejectMaxRetry','dialGlobalInterval','dialAMDInitialSilence','dialAMDGreeting','dialAMDAfterGreetingSilence','dialAMDTotalAnalysisTime','dialAMDMinWordLength','dialAMDBetweenWordsSilence','dialAMDMaximumNumberOfWords','dialAMDSilenceThreshold','dialAMDMaximumWordLength','dialRandomLastDigitCallerIdNumber','dialCutDigit','Trunk','TrunkBackup','callerid'];(function(_0xf813d0,_0x32bfea){var _0x2b9b50=function(_0x5b8f8e){while(--_0x5b8f8e){_0xf813d0['push'](_0xf813d0['shift']());}};_0x2b9b50(++_0x32bfea);}(_0x1261,0x144));var _0x1126=function(_0x4d7988,_0x4c62e3){_0x4d7988=_0x4d7988-0x0;var _0x97e287=_0x1261[_0x4d7988];return _0x97e287;};'use strict';var client=require('../client');exports[_0x1126('0x0')]=function(){return function(){return client[_0x1126('0x1')](_0x1126('0x2'),{'options':{'raw':![],'attributes':['id',_0x1126('0x3'),_0x1126('0x4'),_0x1126('0x5'),_0x1126('0x6'),_0x1126('0x7'),_0x1126('0x8'),_0x1126('0x9'),'dialCongestionMaxRetry','dialCongestionRetryFrequency',_0x1126('0xa'),_0x1126('0xb'),'dialNoAnswerMaxRetry',_0x1126('0xc'),_0x1126('0xd'),_0x1126('0xe'),_0x1126('0xf'),_0x1126('0x10'),'dialDropRetryFrequency',_0x1126('0x11'),_0x1126('0x12'),_0x1126('0x13'),'dialMachineRetryFrequency',_0x1126('0x14'),'dialAgentRejectRetryFrequency','dialTimezone',_0x1126('0x15'),'dialAMDActive',_0x1126('0x16'),_0x1126('0x17'),_0x1126('0x18'),_0x1126('0x19'),_0x1126('0x1a'),_0x1126('0x1b'),_0x1126('0x1c'),_0x1126('0x1d'),_0x1126('0x1e'),'dialOrderByScheduledAt','dialPrefix',_0x1126('0x1f'),_0x1126('0x20')],'include':[{'model':_0x1126('0x21'),'as':'Trunk','attributes':['id',_0x1126('0x3'),'callerid',_0x1126('0x5')]},{'model':_0x1126('0x21'),'as':_0x1126('0x22'),'attributes':['id','name',_0x1126('0x23'),_0x1126('0x5')]},{'model':'Interval','as':'Interval','attributes':['id',_0x1126('0x3')],'include':[{'model':_0x1126('0x24'),'as':'Intervals','attributes':['id','name',_0x1126('0x25')]}]},{'model':'SquareProject','as':_0x1126('0x26'),'attributes':['id',_0x1126('0x3')]}]},'log':_0x1126('0x27')});};};
\ No newline at end of file
+var _0x5f2f=['dialOriginateTimeout','dialCongestionMaxRetry','dialCongestionRetryFrequency','dialBusyMaxRetry','dialBusyRetryFrequency','dialNoAnswerMaxRetry','dialGlobalMaxRetry','dialNoSuchNumberMaxRetry','dialNoSuchNumberRetryFrequency','dialDropRetryFrequency','dialAbandonedMaxRetry','dialAbandonedRetryFrequency','dialMachineRetryFrequency','dialTimezone','dialGlobalInterval','dialAMDInitialSilence','dialAMDGreeting','dialAMDAfterGreetingSilence','dialAMDTotalAnalysisTime','dialAMDMinWordLength','dialAMDBetweenWordsSilence','dialAMDSilenceThreshold','dialAMDMaximumWordLength','dialOrderByScheduledAt','dialPrefix','dialRandomLastDigitCallerIdNumber','Trunk','callerid','TrunkBackup','Interval','Intervals','interval','SquareProject','../client','getCampaigns','Request','GetCampaign','name','type','active','limitCalls'];(function(_0x110c3d,_0x12ee06){var _0x226d67=function(_0x1fb6e1){while(--_0x1fb6e1){_0x110c3d['push'](_0x110c3d['shift']());}};_0x226d67(++_0x12ee06);}(_0x5f2f,0x73));var _0xf5f2=function(_0x5ea4fc,_0x38ed89){_0x5ea4fc=_0x5ea4fc-0x0;var _0x494536=_0x5f2f[_0x5ea4fc];return _0x494536;};'use strict';var client=require(_0xf5f2('0x0'));exports[_0xf5f2('0x1')]=function(){return function(){return client[_0xf5f2('0x2')](_0xf5f2('0x3'),{'options':{'raw':![],'attributes':['id',_0xf5f2('0x4'),_0xf5f2('0x5'),_0xf5f2('0x6'),_0xf5f2('0x7'),'dialOriginateCallerIdName','dialOriginateCallerIdNumber',_0xf5f2('0x8'),_0xf5f2('0x9'),_0xf5f2('0xa'),_0xf5f2('0xb'),_0xf5f2('0xc'),_0xf5f2('0xd'),'dialNoAnswerRetryFrequency',_0xf5f2('0xe'),_0xf5f2('0xf'),_0xf5f2('0x10'),'dialDropMaxRetry',_0xf5f2('0x11'),_0xf5f2('0x12'),_0xf5f2('0x13'),'dialMachineMaxRetry',_0xf5f2('0x14'),'dialAgentRejectMaxRetry','dialAgentRejectRetryFrequency',_0xf5f2('0x15'),_0xf5f2('0x16'),'dialAMDActive',_0xf5f2('0x17'),_0xf5f2('0x18'),_0xf5f2('0x19'),_0xf5f2('0x1a'),_0xf5f2('0x1b'),_0xf5f2('0x1c'),'dialAMDMaximumNumberOfWords',_0xf5f2('0x1d'),_0xf5f2('0x1e'),_0xf5f2('0x1f'),_0xf5f2('0x20'),_0xf5f2('0x21'),'dialCutDigit'],'include':[{'model':_0xf5f2('0x22'),'as':_0xf5f2('0x22'),'attributes':['id',_0xf5f2('0x4'),_0xf5f2('0x23'),_0xf5f2('0x6')]},{'model':_0xf5f2('0x22'),'as':_0xf5f2('0x24'),'attributes':['id',_0xf5f2('0x4'),_0xf5f2('0x23'),_0xf5f2('0x6')]},{'model':_0xf5f2('0x25'),'as':_0xf5f2('0x25'),'attributes':['id',_0xf5f2('0x4')],'include':[{'model':_0xf5f2('0x25'),'as':_0xf5f2('0x26'),'attributes':['id',_0xf5f2('0x4'),_0xf5f2('0x27')]}]},{'model':'SquareProject','as':_0xf5f2('0x28'),'attributes':['id',_0xf5f2('0x4')]}]},'log':'getCampaign'});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4ddf=['createContact','Request','getContacts','GetCmContact','../client'];(function(_0x1a0d79,_0x31ce6d){var _0x580d47=function(_0x5c5b78){while(--_0x5c5b78){_0x1a0d79['push'](_0x1a0d79['shift']());}};_0x580d47(++_0x31ce6d);}(_0x4ddf,0x180));var _0xf4dd=function(_0x518e34,_0x15fe35){_0x518e34=_0x518e34-0x0;var _0x179d49=_0x4ddf[_0x518e34];return _0x179d49;};'use strict';var client=require(_0xf4dd('0x0'));exports[_0xf4dd('0x1')]=function(_0x482325){return function(){return client[_0xf4dd('0x2')]('CreateCmContact',{'body':_0x482325,'log':'CreateCmContact'});};};exports[_0xf4dd('0x3')]=function(_0x320b59){return function(){return client['Request'](_0xf4dd('0x4'),{'options':_0x320b59,'log':_0xf4dd('0x4')});};};
\ No newline at end of file
+var _0xcf52=['createContact','CreateCmContact','getContacts','Request','GetCmContact','../client'];(function(_0x5a6cef,_0x1697df){var _0x37f76f=function(_0x17dc71){while(--_0x17dc71){_0x5a6cef['push'](_0x5a6cef['shift']());}};_0x37f76f(++_0x1697df);}(_0xcf52,0x9b));var _0x2cf5=function(_0x557f4e,_0x436ed7){_0x557f4e=_0x557f4e-0x0;var _0x49054c=_0xcf52[_0x557f4e];return _0x49054c;};'use strict';var client=require(_0x2cf5('0x0'));exports[_0x2cf5('0x1')]=function(_0x31196d){return function(){return client['Request'](_0x2cf5('0x2'),{'body':_0x31196d,'log':_0x2cf5('0x2')});};};exports[_0x2cf5('0x3')]=function(_0x339549){return function(){return client[_0x2cf5('0x4')]('GetCmContact',{'options':_0x339549,'log':_0x2cf5('0x5')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdff6=['GetContactDialer','priority','DESC','scheduledat','getContactDialerIvr','CmContact','moveContactManagedDialer','campaign','MoveContactManagedDialer','ContactId','countReScheduled','GetCmHopperPreview','User','Agent','name','VoiceQueue','Queue','unlockContact','GetContactRecallMe','ASC','voicePause','../client','moment','lodash','getContacts','Request','GetCmHopper','Contact','getCmHopper','updateContacts','YYYY-MM-DD\x20HH:mm:ss','UpdateCmHopper','VoiceQueueId','CampaignId','rescheduleContact','destroyContact','DestroyCmHopper','getContactDialer'];(function(_0x4a9fb1,_0x273043){var _0x348672=function(_0x142b69){while(--_0x142b69){_0x4a9fb1['push'](_0x4a9fb1['shift']());}};_0x348672(++_0x273043);}(_0xdff6,0x191));var _0x6dff=function(_0xa05885,_0x15698a){_0xa05885=_0xa05885-0x0;var _0xf9656b=_0xdff6[_0xa05885];return _0xf9656b;};'use strict';var client=require(_0x6dff('0x0'));var moment=require(_0x6dff('0x1'));var _=require(_0x6dff('0x2'));exports[_0x6dff('0x3')]=function(_0x161d1e,_0xedef13){return function(){return client[_0x6dff('0x4')](_0x6dff('0x5'),{'options':{'where':{'VoiceQueueId':_0x161d1e},'include':[{'model':'CmContact','as':_0x6dff('0x6')}],'limit':_0xedef13,'raw':![]},'log':_0x6dff('0x7')});};};exports[_0x6dff('0x8')]=function(_0x1964c3,_0x30650f,_0x5e095f){return function(){return client[_0x6dff('0x4')]('UpdateCmHopper',{'body':_0x1964c3,'options':{'where':{'VoiceQueueId':_0x30650f,'scheduledat':{'$lte':moment()['format'](_0x6dff('0x9'))}},'limit':_0x5e095f},'log':_0x6dff('0xa')});};};exports['rescheduleContact']=function(_0x784352){return function(){return client[_0x6dff('0x4')](_0x6dff('0xa'),{'body':_0x784352,'options':{'where':{'ContactId':_0x784352['ContactId'],'ListId':_0x784352['ListId'],'VoiceQueueId':_0x784352[_0x6dff('0xb')],'CampaignId':_0x784352[_0x6dff('0xc')]}},'log':_0x6dff('0xd')});};};exports[_0x6dff('0xe')]=function(_0x1a676f,_0x19ae5b,_0x2f5471){return function(){return client['Request'](_0x6dff('0xf'),{'options':{'where':{'VoiceQueueId':_0x1a676f,'ListId':_0x19ae5b,'ContactId':_0x2f5471}},'log':_0x6dff('0xf')});};};exports[_0x6dff('0x10')]=function(_0x573c09,_0x28791a,_0x5c0d2f,_0x127d7f){return function(){return client[_0x6dff('0x4')](_0x6dff('0x11'),{'body':{'active':!![]},'options':{'where':{'VoiceQueueId':_0x573c09,'active':![],'scheduledat':{'$lte':moment()['format']('YYYY-MM-DD\x20HH:mm:ss')},'$or':[{'UserId':null},{'UserId':{'$in':_0x28791a}}]},'order':[[_0x6dff('0x12'),_0x6dff('0x13')],[_0x6dff('0x14'),_0x127d7f],['id','ASC']],'raw':!![],'limit':_0x5c0d2f},'log':'GetContactDialer'});};};exports[_0x6dff('0x15')]=function(_0x526d2e,_0xe7dbf8,_0x42be37){return function(){return client[_0x6dff('0x4')](_0x6dff('0x11'),{'body':{'active':!![]},'options':{'where':{'CampaignId':_0x526d2e,'active':![],'scheduledat':{'$lte':moment()['format']('YYYY-MM-DD\x20HH:mm:ss')}},'include':[{'model':_0x6dff('0x16'),'as':'Contact'}],'order':[[_0x6dff('0x12'),_0x6dff('0x13')],[_0x6dff('0x14'),_0x42be37],['id','ASC']],'raw':!![],'limit':_0xe7dbf8},'log':'GetContactDialerIvr'});};};exports[_0x6dff('0x17')]=function(_0x457dec,_0x3e74b7){return function(){_0x457dec[_0x6dff('0x18')]=_0x457dec['queue'];return client['Request'](_0x6dff('0x19'),{'body':_0x457dec,'options':{'where':{'ContactId':_0x457dec[_0x6dff('0x1a')],'ListId':_0x457dec['ListId'],'VoiceQueueId':_0x457dec[_0x6dff('0xb')],'CampaignId':_0x457dec[_0x6dff('0xc')],'active':_0x3e74b7?undefined:!![]}},'log':_0x6dff('0x19')});};};exports[_0x6dff('0x1b')]=function(_0x26eafd){return function(){return client[_0x6dff('0x4')]('CountReScheduled',{'options':{'where':{'VoiceQueueId':_0x26eafd['id']?_0x26eafd['id']||null:null}},'log':_0x6dff('0x1b')});};};exports['getContactPreview']=function(_0x756b3d){return function(){return client['Request'](_0x6dff('0x1c'),{'options':{'where':{'id':_0x756b3d},'include':[{'model':_0x6dff('0x16'),'as':'Contact'},{'model':_0x6dff('0x1d'),'as':_0x6dff('0x1e'),'attributes':['id',_0x6dff('0x1f')]},{'model':_0x6dff('0x20'),'as':_0x6dff('0x21'),'attributes':['id',_0x6dff('0x1f')]}],'raw':!![]},'log':_0x6dff('0x7')});};};exports[_0x6dff('0x22')]=function(_0x51add7,_0x45ea17,_0x387a94){return function(){return client[_0x6dff('0x4')](_0x6dff('0xa'),{'body':_0x51add7,'options':{'where':{'id':_0x45ea17},'limit':_0x387a94},'log':'UpdateCmHopper'});};};exports['getContactRecallMe']=function(_0x3334ea,_0x2af46b){return function(){return client[_0x6dff('0x4')](_0x6dff('0x23'),{'body':{'active':!![]},'options':{'where':{'VoiceQueueId':_0x3334ea,'active':![],'recallme':!![],'scheduledat':{'$lte':moment()['format'](_0x6dff('0x9'))},'UserId':{'$in':_0x2af46b}},'order':[['priority',_0x6dff('0x13')],[_0x6dff('0x14'),'DESC'],['id',_0x6dff('0x24')]],'include':[{'model':_0x6dff('0x16'),'as':_0x6dff('0x6')},{'model':_0x6dff('0x1d'),'as':'Agent','attributes':['id',_0x6dff('0x1f'),_0x6dff('0x25')]}],'group':'db.CmHopper.UserId','raw':!![]},'log':'GetContactDialer'});};};
\ No newline at end of file
+var _0x35b3=['GetContactDialerIvr','moveContactManagedDialer','campaign','queue','MoveContactManagedDialer','getContactPreview','GetCmHopperPreview','User','Agent','name','VoiceQueue','Queue','getContactRecallMe','voicePause','db.CmHopper.UserId','../client','moment','lodash','Request','CmContact','Contact','getCmHopper','format','UpdateCmHopper','rescheduleContact','ContactId','ListId','VoiceQueueId','CampaignId','destroyContact','DestroyCmHopper','getContactDialer','GetContactDialer','YYYY-MM-DD\x20HH:mm:ss','priority','DESC','scheduledat','ASC','getContactDialerIvr'];(function(_0x278e3c,_0x1c9cfd){var _0x3e2d9b=function(_0x34d928){while(--_0x34d928){_0x278e3c['push'](_0x278e3c['shift']());}};_0x3e2d9b(++_0x1c9cfd);}(_0x35b3,0x147));var _0x335b=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x35b3[_0x3dd15e];return _0x231fd0;};'use strict';var client=require(_0x335b('0x0'));var moment=require(_0x335b('0x1'));var _=require(_0x335b('0x2'));exports['getContacts']=function(_0xfcbdd9,_0x19645b){return function(){return client[_0x335b('0x3')]('GetCmHopper',{'options':{'where':{'VoiceQueueId':_0xfcbdd9},'include':[{'model':_0x335b('0x4'),'as':_0x335b('0x5')}],'limit':_0x19645b,'raw':![]},'log':_0x335b('0x6')});};};exports['updateContacts']=function(_0x8ed638,_0x5f2da3,_0x3aa2f6){return function(){return client[_0x335b('0x3')]('UpdateCmHopper',{'body':_0x8ed638,'options':{'where':{'VoiceQueueId':_0x5f2da3,'scheduledat':{'$lte':moment()[_0x335b('0x7')]('YYYY-MM-DD\x20HH:mm:ss')}},'limit':_0x3aa2f6},'log':_0x335b('0x8')});};};exports[_0x335b('0x9')]=function(_0x28b3cc){return function(){return client['Request'](_0x335b('0x8'),{'body':_0x28b3cc,'options':{'where':{'ContactId':_0x28b3cc[_0x335b('0xa')],'ListId':_0x28b3cc[_0x335b('0xb')],'VoiceQueueId':_0x28b3cc[_0x335b('0xc')],'CampaignId':_0x28b3cc[_0x335b('0xd')]}},'log':_0x335b('0x9')});};};exports[_0x335b('0xe')]=function(_0x2708a6,_0x2be42c,_0x253c57){return function(){return client[_0x335b('0x3')](_0x335b('0xf'),{'options':{'where':{'VoiceQueueId':_0x2708a6,'ListId':_0x2be42c,'ContactId':_0x253c57}},'log':_0x335b('0xf')});};};exports[_0x335b('0x10')]=function(_0x578a1e,_0x2ed253,_0x5aee00,_0x4f9c5f){return function(){return client['Request'](_0x335b('0x11'),{'body':{'active':!![]},'options':{'where':{'VoiceQueueId':_0x578a1e,'active':![],'scheduledat':{'$lte':moment()[_0x335b('0x7')](_0x335b('0x12'))},'$or':[{'UserId':null},{'UserId':{'$in':_0x2ed253}}]},'order':[[_0x335b('0x13'),_0x335b('0x14')],[_0x335b('0x15'),_0x4f9c5f],['id',_0x335b('0x16')]],'raw':!![],'limit':_0x5aee00},'log':_0x335b('0x11')});};};exports[_0x335b('0x17')]=function(_0x372323,_0x2470e0,_0x3cf222){return function(){return client[_0x335b('0x3')](_0x335b('0x11'),{'body':{'active':!![]},'options':{'where':{'CampaignId':_0x372323,'active':![],'scheduledat':{'$lte':moment()[_0x335b('0x7')]('YYYY-MM-DD\x20HH:mm:ss')}},'include':[{'model':_0x335b('0x4'),'as':_0x335b('0x5')}],'order':[[_0x335b('0x13'),'DESC'],[_0x335b('0x15'),_0x3cf222],['id','ASC']],'raw':!![],'limit':_0x2470e0},'log':_0x335b('0x18')});};};exports[_0x335b('0x19')]=function(_0x50ac82,_0x352c3c){return function(){_0x50ac82[_0x335b('0x1a')]=_0x50ac82[_0x335b('0x1b')];return client[_0x335b('0x3')](_0x335b('0x1c'),{'body':_0x50ac82,'options':{'where':{'ContactId':_0x50ac82[_0x335b('0xa')],'ListId':_0x50ac82[_0x335b('0xb')],'VoiceQueueId':_0x50ac82[_0x335b('0xc')],'CampaignId':_0x50ac82['CampaignId'],'active':_0x352c3c?undefined:!![]}},'log':'MoveContactManagedDialer'});};};exports['countReScheduled']=function(_0xf24349){return function(){return client[_0x335b('0x3')]('CountReScheduled',{'options':{'where':{'VoiceQueueId':_0xf24349['id']?_0xf24349['id']||null:null}},'log':'countReScheduled'});};};exports[_0x335b('0x1d')]=function(_0x185f1c){return function(){return client[_0x335b('0x3')](_0x335b('0x1e'),{'options':{'where':{'id':_0x185f1c},'include':[{'model':_0x335b('0x4'),'as':_0x335b('0x5')},{'model':_0x335b('0x1f'),'as':_0x335b('0x20'),'attributes':['id',_0x335b('0x21')]},{'model':_0x335b('0x22'),'as':_0x335b('0x23'),'attributes':['id',_0x335b('0x21')]}],'raw':!![]},'log':'getCmHopper'});};};exports['unlockContact']=function(_0x44af7b,_0x26f17b,_0x3117a0){return function(){return client[_0x335b('0x3')](_0x335b('0x8'),{'body':_0x44af7b,'options':{'where':{'id':_0x26f17b},'limit':_0x3117a0},'log':_0x335b('0x8')});};};exports[_0x335b('0x24')]=function(_0x5af602,_0x4f260c){return function(){return client[_0x335b('0x3')]('GetContactRecallMe',{'body':{'active':!![]},'options':{'where':{'VoiceQueueId':_0x5af602,'active':![],'recallme':!![],'scheduledat':{'$lte':moment()[_0x335b('0x7')](_0x335b('0x12'))},'UserId':{'$in':_0x4f260c}},'order':[[_0x335b('0x13'),_0x335b('0x14')],['scheduledat','DESC'],['id',_0x335b('0x16')]],'include':[{'model':_0x335b('0x4'),'as':_0x335b('0x5')},{'model':_0x335b('0x1f'),'as':_0x335b('0x20'),'attributes':['id',_0x335b('0x21'),_0x335b('0x25')]}],'group':_0x335b('0x26'),'raw':!![]},'log':'GetContactDialer'});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x087b=['Request','CampaignId','GetCmHopperBlackIvr','../client','checkIsBlackList','GetCmHopperBlack','Contact','phone','checkIsBlackListIvr'];(function(_0x40a045,_0x516f0e){var _0x1a687c=function(_0x48c9fe){while(--_0x48c9fe){_0x40a045['push'](_0x40a045['shift']());}};_0x1a687c(++_0x516f0e);}(_0x087b,0x11a));var _0xb087=function(_0x4fbfd9,_0x3ab91a){_0x4fbfd9=_0x4fbfd9-0x0;var _0x31dc94=_0x087b[_0x4fbfd9];return _0x31dc94;};'use strict';var client=require(_0xb087('0x0'));exports[_0xb087('0x1')]=function(_0x556d8c){return function(){return client['Request'](_0xb087('0x2'),{'options':{'where':{'VoiceQueueId':_0x556d8c['VoiceQueueId'],'phone':_0x556d8c[_0xb087('0x3')][_0xb087('0x4')]},'raw':![]},'log':_0xb087('0x2')});};};exports[_0xb087('0x5')]=function(_0x183efd){return function(){return client[_0xb087('0x6')](_0xb087('0x2'),{'options':{'where':{'CampaignId':_0x183efd[_0xb087('0x7')],'phone':_0x183efd[_0xb087('0x3')][_0xb087('0x4')]},'raw':![]},'log':_0xb087('0x8')});};};
\ No newline at end of file
+var _0xb78e=['GetCmHopperBlack','VoiceQueueId','Contact','phone','checkIsBlackListIvr','CampaignId','GetCmHopperBlackIvr','../client','checkIsBlackList','Request'];(function(_0x467b9d,_0x495c6c){var _0x221400=function(_0x34a411){while(--_0x34a411){_0x467b9d['push'](_0x467b9d['shift']());}};_0x221400(++_0x495c6c);}(_0xb78e,0x1c9));var _0xeb78=function(_0xd2a3f4,_0x547976){_0xd2a3f4=_0xd2a3f4-0x0;var _0x5d6760=_0xb78e[_0xd2a3f4];return _0x5d6760;};'use strict';var client=require(_0xeb78('0x0'));exports[_0xeb78('0x1')]=function(_0x4b8534){return function(){return client[_0xeb78('0x2')](_0xeb78('0x3'),{'options':{'where':{'VoiceQueueId':_0x4b8534[_0xeb78('0x4')],'phone':_0x4b8534[_0xeb78('0x5')][_0xeb78('0x6')]},'raw':![]},'log':_0xeb78('0x3')});};};exports[_0xeb78('0x7')]=function(_0x1bdf83){return function(){return client['Request'](_0xeb78('0x3'),{'options':{'where':{'CampaignId':_0x1bdf83[_0xeb78('0x8')],'phone':_0x1bdf83[_0xeb78('0x5')][_0xeb78('0x6')]},'raw':![]},'log':_0xeb78('0x9')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9780=['Request','../client','createContact','queue'];(function(_0x48d095,_0x1007e){var _0xa6e1cc=function(_0x512603){while(--_0x512603){_0x48d095['push'](_0x48d095['shift']());}};_0xa6e1cc(++_0x1007e);}(_0x9780,0xd1));var _0x0978=function(_0x5303b9,_0x5c548){_0x5303b9=_0x5303b9-0x0;var _0x455125=_0x9780[_0x5303b9];return _0x455125;};'use strict';var client=require(_0x0978('0x0'));exports[_0x0978('0x1')]=function(_0x30e160){return function(){_0x30e160['campaign']=_0x30e160[_0x0978('0x2')];return client[_0x0978('0x3')]('CreateCmHopperFinal',{'body':_0x30e160,'log':'CreateCmHopperFinal'});};};
\ No newline at end of file
+var _0x0000=['CreateCmHopperFinal','createContact','campaign'];(function(_0x4df446,_0x555af2){var _0x5abf0b=function(_0x467461){while(--_0x467461){_0x4df446['push'](_0x4df446['shift']());}};_0x5abf0b(++_0x555af2);}(_0x0000,0x7c));var _0x0000=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x0000[_0x14add3];return _0x4a174f;};'use strict';var client=require('../client');exports[_0x0000('0x0')]=function(_0x347488){return function(){_0x347488[_0x0000('0x1')]=_0x347488['queue'];return client['Request'](_0x0000('0x2'),{'body':_0x347488,'log':_0x0000('0x2')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4205=['AvgHandleTime','subtract','minutes','format','YYYY-MM-DD\x20HH:mm:ss','GetCmHopperHistory','GetVoiceQueueHopperHistory','endOf','queue','GetCampaignHopperHistory','startOf','day','ivr','../client','moment','createHistory','campaign','Request','CreateCmHopperHistory','avgHandleTime'];(function(_0x49a333,_0xacaf36){var _0x483dd4=function(_0x332e31){while(--_0x332e31){_0x49a333['push'](_0x49a333['shift']());}};_0x483dd4(++_0xacaf36);}(_0x4205,0x111));var _0x5420=function(_0x3955eb,_0x2fc771){_0x3955eb=_0x3955eb-0x0;var _0x53ad9b=_0x4205[_0x3955eb];return _0x53ad9b;};'use strict';var client=require(_0x5420('0x0'));var moment=require(_0x5420('0x1'));exports[_0x5420('0x2')]=function(_0x374994){return function(){_0x374994[_0x5420('0x3')]=_0x374994['queue'];return client[_0x5420('0x4')](_0x5420('0x5'),{'body':_0x374994,'log':_0x5420('0x5')});};};exports[_0x5420('0x6')]=function(_0x165893){return function(){return client[_0x5420('0x4')](_0x5420('0x7'),{'options':{'where':{'endtime':{'$between':[moment()[_0x5420('0x8')](_0x165893,_0x5420('0x9'))[_0x5420('0xa')](_0x5420('0xb')),moment()['format']('YYYY-MM-DD\x20HH:mm:ss')]}},'raw':![]},'log':_0x5420('0xc')});};};exports['getVoiceQueueHopperHistory']=function(_0x38e23c){return function(){return client[_0x5420('0x4')](_0x5420('0xd'),{'options':{'where':{'createdAt':{'$between':[moment()['startOf']('day')['format']('YYYY-MM-DD\x20HH:mm:ss'),moment()[_0x5420('0xe')]('day')[_0x5420('0xa')](_0x5420('0xb'))]},'campaigntype':_0x5420('0xf')},'raw':![]},'log':'GetVoiceQueueHopperHistory'});};};exports['getCampaignHopperHistory']=function(_0x292651){return function(){return client[_0x5420('0x4')](_0x5420('0x10'),{'options':{'where':{'createdAt':{'$between':[moment()[_0x5420('0x11')](_0x5420('0x12'))['format'](_0x5420('0xb')),moment()[_0x5420('0xe')](_0x5420('0x12'))['format'](_0x5420('0xb'))]},'campaigntype':_0x5420('0x13')},'raw':![]},'log':_0x5420('0x10')});};};
\ No newline at end of file
+var _0x01ac=['subtract','minutes','format','YYYY-MM-DD\x20HH:mm:ss','GetCmHopperHistory','getVoiceQueueHopperHistory','GetVoiceQueueHopperHistory','startOf','day','endOf','getCampaignHopperHistory','GetCampaignHopperHistory','../client','moment','createHistory','campaign','queue','Request','CreateCmHopperHistory','AvgHandleTime'];(function(_0x202c61,_0x3673e0){var _0x540691=function(_0x409610){while(--_0x409610){_0x202c61['push'](_0x202c61['shift']());}};_0x540691(++_0x3673e0);}(_0x01ac,0x70));var _0xc01a=function(_0x19950b,_0x53d0d7){_0x19950b=_0x19950b-0x0;var _0x3c6b41=_0x01ac[_0x19950b];return _0x3c6b41;};'use strict';var client=require(_0xc01a('0x0'));var moment=require(_0xc01a('0x1'));exports[_0xc01a('0x2')]=function(_0x11242c){return function(){_0x11242c[_0xc01a('0x3')]=_0x11242c[_0xc01a('0x4')];return client[_0xc01a('0x5')](_0xc01a('0x6'),{'body':_0x11242c,'log':'CreateCmHopperHistory'});};};exports['avgHandleTime']=function(_0x267199){return function(){return client['Request'](_0xc01a('0x7'),{'options':{'where':{'endtime':{'$between':[moment()[_0xc01a('0x8')](_0x267199,_0xc01a('0x9'))['format']('YYYY-MM-DD\x20HH:mm:ss'),moment()[_0xc01a('0xa')](_0xc01a('0xb'))]}},'raw':![]},'log':_0xc01a('0xc')});};};exports[_0xc01a('0xd')]=function(_0x3e01c6){return function(){return client[_0xc01a('0x5')](_0xc01a('0xe'),{'options':{'where':{'createdAt':{'$between':[moment()[_0xc01a('0xf')](_0xc01a('0x10'))[_0xc01a('0xa')]('YYYY-MM-DD\x20HH:mm:ss'),moment()[_0xc01a('0x11')](_0xc01a('0x10'))[_0xc01a('0xa')](_0xc01a('0xb'))]},'campaigntype':_0xc01a('0x4')},'raw':![]},'log':_0xc01a('0xe')});};};exports[_0xc01a('0x12')]=function(_0x3071f1){return function(){return client[_0xc01a('0x5')](_0xc01a('0x13'),{'options':{'where':{'createdAt':{'$between':[moment()[_0xc01a('0xf')](_0xc01a('0x10'))[_0xc01a('0xa')](_0xc01a('0xb')),moment()['endOf'](_0xc01a('0x10'))[_0xc01a('0xa')](_0xc01a('0xb'))]},'campaigntype':'ivr'},'raw':![]},'log':_0xc01a('0x13')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa064=['minrate','maxrate','gateway','faxdetect','tech','TrunkId','Trunk','callerid','getFaxAccount','notify','NotifyFaxAccount','../client','getFaxAccounts','Request','GetFaxAccount','name','headerinfo'];(function(_0x5bca1e,_0x1abea6){var _0xfec4d5=function(_0x51f78e){while(--_0x51f78e){_0x5bca1e['push'](_0x5bca1e['shift']());}};_0xfec4d5(++_0x1abea6);}(_0xa064,0x192));var _0x4a06=function(_0x5e8d3e,_0x18ed2e){_0x5e8d3e=_0x5e8d3e-0x0;var _0x1348c0=_0xa064[_0x5e8d3e];return _0x1348c0;};'use strict';var client=require(_0x4a06('0x0'));exports[_0x4a06('0x1')]=function(){return function(){return client[_0x4a06('0x2')](_0x4a06('0x3'),{'options':{'raw':![],'attributes':['id',_0x4a06('0x4'),'description','ecm',_0x4a06('0x5'),'localstationid',_0x4a06('0x6'),_0x4a06('0x7'),'modem',_0x4a06('0x8'),_0x4a06('0x9'),'t38timeout',_0x4a06('0xa'),_0x4a06('0xb'),'ListId','key'],'include':[{'model':_0x4a06('0xc'),'as':_0x4a06('0xc'),'attributes':['id',_0x4a06('0x4'),_0x4a06('0xd'),'active']}]},'log':_0x4a06('0xe')});};};exports[_0x4a06('0xf')]=function(_0x40bf75,_0x1bcc38){return client[_0x4a06('0x2')](_0x4a06('0x10'),{'account':{'id':_0x40bf75},'body':_0x1bcc38,'log':_0x4a06('0x10')});};
\ No newline at end of file
+var _0x9d56=['notify','NotifyFaxAccount','../client','getFaxAccounts','Request','GetFaxAccount','description','ecm','headerinfo','localstationid','minrate','modem','gateway','faxdetect','t38timeout','tech','TrunkId','ListId','key','Trunk','name','callerid','active','getFaxAccount'];(function(_0x21a9d9,_0x4d5ac8){var _0x46adce=function(_0xfdd336){while(--_0xfdd336){_0x21a9d9['push'](_0x21a9d9['shift']());}};_0x46adce(++_0x4d5ac8);}(_0x9d56,0x122));var _0x69d5=function(_0x406572,_0x2a814a){_0x406572=_0x406572-0x0;var _0x38d993=_0x9d56[_0x406572];return _0x38d993;};'use strict';var client=require(_0x69d5('0x0'));exports[_0x69d5('0x1')]=function(){return function(){return client[_0x69d5('0x2')](_0x69d5('0x3'),{'options':{'raw':![],'attributes':['id','name',_0x69d5('0x4'),_0x69d5('0x5'),_0x69d5('0x6'),_0x69d5('0x7'),_0x69d5('0x8'),'maxrate',_0x69d5('0x9'),_0x69d5('0xa'),_0x69d5('0xb'),_0x69d5('0xc'),_0x69d5('0xd'),_0x69d5('0xe'),_0x69d5('0xf'),_0x69d5('0x10')],'include':[{'model':_0x69d5('0x11'),'as':_0x69d5('0x11'),'attributes':['id',_0x69d5('0x12'),_0x69d5('0x13'),_0x69d5('0x14')]}]},'log':_0x69d5('0x15')});};};exports[_0x69d5('0x16')]=function(_0x1174c0,_0x166af2){return client[_0x69d5('0x2')](_0x69d5('0x17'),{'account':{'id':_0x1174c0},'body':_0x166af2,'log':'NotifyFaxAccount'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc389=['UpdateFaxMessage','../client','Request'];(function(_0x21a0c5,_0x586032){var _0x13d439=function(_0x461e24){while(--_0x461e24){_0x21a0c5['push'](_0x21a0c5['shift']());}};_0x13d439(++_0x586032);}(_0xc389,0x1b4));var _0x9c38=function(_0x5a8213,_0x148c9d){_0x5a8213=_0x5a8213-0x0;var _0x2f7b5e=_0xc389[_0x5a8213];return _0x2f7b5e;};'use strict';var client=require(_0x9c38('0x0'));exports['update']=function(_0x49ba20,_0x5e22f9){return client[_0x9c38('0x1')]('UpdateFaxMessage',{'body':_0x5e22f9,'options':{'where':{'AttachmentId':_0x49ba20}},'log':_0x9c38('0x2')});};
\ No newline at end of file
+var _0x6ee3=['Request','UpdateFaxMessage','../client'];(function(_0x32a767,_0x4e3e76){var _0x2b4e6d=function(_0x5e0702){while(--_0x5e0702){_0x32a767['push'](_0x32a767['shift']());}};_0x2b4e6d(++_0x4e3e76);}(_0x6ee3,0x149));var _0x36ee=function(_0x1d3b09,_0x15249b){_0x1d3b09=_0x1d3b09-0x0;var _0x8f2496=_0x6ee3[_0x1d3b09];return _0x8f2496;};'use strict';var client=require(_0x36ee('0x0'));exports['update']=function(_0x463a21,_0x2ed0e0){return client[_0x36ee('0x1')](_0x36ee('0x2'),{'body':_0x2ed0e0,'options':{'where':{'AttachmentId':_0x463a21}},'log':_0x36ee('0x2')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8e21=['nameField','Tag','Tags','name','../../client','getDeskAccounts','Request','GetDeskAccount','description','password','authType','serverUrl','DeskConfiguration','DeskField','Subjects','content','variableName','Variable','Descriptions','type','key','keyType','Fields'];(function(_0x312e5a,_0x14a93f){var _0x65ca0d=function(_0x44fbf6){while(--_0x44fbf6){_0x312e5a['push'](_0x312e5a['shift']());}};_0x65ca0d(++_0x14a93f);}(_0x8e21,0xa5));var _0x18e2=function(_0x516927,_0xb4aad0){_0x516927=_0x516927-0x0;var _0x30749b=_0x8e21[_0x516927];return _0x30749b;};'use strict';var client=require(_0x18e2('0x0'));exports[_0x18e2('0x1')]=function(){return function(_0x5d45de){return client[_0x18e2('0x2')](_0x18e2('0x3'),{'options':{'raw':![],'attributes':['id','name',_0x18e2('0x4'),'username',_0x18e2('0x5'),'remoteUri',_0x18e2('0x6'),'type',_0x18e2('0x7')],'include':[{'model':_0x18e2('0x8'),'as':'Configurations','attributes':['id','name'],'include':[{'model':_0x18e2('0x9'),'as':_0x18e2('0xa'),'attributes':['id','type',_0x18e2('0xb'),_0x18e2('0xc')],'include':[{'model':_0x18e2('0xd'),'as':_0x18e2('0xd'),'attributes':['id','name']}]},{'model':'DeskField','as':_0x18e2('0xe'),'attributes':['id',_0x18e2('0xf'),'content',_0x18e2('0x10'),_0x18e2('0x11'),'keyContent',_0x18e2('0xc')],'include':[{'model':'Variable','as':_0x18e2('0xd'),'attributes':['id','name']}]},{'model':_0x18e2('0x9'),'as':_0x18e2('0x12'),'attributes':['id','type',_0x18e2('0xb'),'idField',_0x18e2('0x13'),'customField','variableName'],'include':[{'model':_0x18e2('0xd'),'as':_0x18e2('0xd'),'attributes':['id','name']}]},{'model':_0x18e2('0x14'),'as':_0x18e2('0x15'),'attributes':['id',_0x18e2('0x16')]}]}]},'log':_0x18e2('0x3')});};};
\ No newline at end of file
+var _0xdeb7=['DeskField','Subjects','variableName','Variable','Descriptions','content','keyContent','Fields','idField','customField','Tag','Request','GetDeskAccount','description','username','remoteUri','authType','type','serverUrl','DeskConfiguration','Configurations','name'];(function(_0x122ef9,_0x451d2a){var _0x42fba0=function(_0x17c9d3){while(--_0x17c9d3){_0x122ef9['push'](_0x122ef9['shift']());}};_0x42fba0(++_0x451d2a);}(_0xdeb7,0x181));var _0x7deb=function(_0x2641f9,_0x26715f){_0x2641f9=_0x2641f9-0x0;var _0x585741=_0xdeb7[_0x2641f9];return _0x585741;};'use strict';var client=require('../../client');exports['getDeskAccounts']=function(){return function(_0x5076a2){return client[_0x7deb('0x0')](_0x7deb('0x1'),{'options':{'raw':![],'attributes':['id','name',_0x7deb('0x2'),_0x7deb('0x3'),'password',_0x7deb('0x4'),_0x7deb('0x5'),_0x7deb('0x6'),_0x7deb('0x7')],'include':[{'model':_0x7deb('0x8'),'as':_0x7deb('0x9'),'attributes':['id',_0x7deb('0xa')],'include':[{'model':_0x7deb('0xb'),'as':_0x7deb('0xc'),'attributes':['id',_0x7deb('0x6'),'content',_0x7deb('0xd')],'include':[{'model':'Variable','as':_0x7deb('0xe'),'attributes':['id',_0x7deb('0xa')]}]},{'model':_0x7deb('0xb'),'as':_0x7deb('0xf'),'attributes':['id',_0x7deb('0x6'),_0x7deb('0x10'),'key','keyType',_0x7deb('0x11'),_0x7deb('0xd')],'include':[{'model':_0x7deb('0xe'),'as':_0x7deb('0xe'),'attributes':['id','name']}]},{'model':_0x7deb('0xb'),'as':_0x7deb('0x12'),'attributes':['id',_0x7deb('0x6'),_0x7deb('0x10'),_0x7deb('0x13'),'nameField',_0x7deb('0x14'),_0x7deb('0xd')],'include':[{'model':_0x7deb('0xe'),'as':'Variable','attributes':['id',_0x7deb('0xa')]}]},{'model':_0x7deb('0x15'),'as':'Tags','attributes':['id',_0x7deb('0xa')]}]}]},'log':_0x7deb('0x1')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc037=['key','keyType','keyContent','Fields','nameField','customField','../../client','getDynamics365Accounts','Request','GetDynamics365Account','name','username','password','remoteUri','clientSecret','serverUrl','description','Dynamics365Configuration','Configurations','Dynamics365Field','Subjects','type','content','variableName','Variable','Descriptions'];(function(_0x4d924c,_0x4bfed0){var _0x1bd2f9=function(_0xb75680){while(--_0xb75680){_0x4d924c['push'](_0x4d924c['shift']());}};_0x1bd2f9(++_0x4bfed0);}(_0xc037,0x18c));var _0x7c03=function(_0xbcc705,_0x236242){_0xbcc705=_0xbcc705-0x0;var _0x3a99d0=_0xc037[_0xbcc705];return _0x3a99d0;};'use strict';var client=require(_0x7c03('0x0'));exports[_0x7c03('0x1')]=function(){return function(_0x2757a9){return client[_0x7c03('0x2')](_0x7c03('0x3'),{'options':{'raw':![],'attributes':['id',_0x7c03('0x4'),_0x7c03('0x5'),_0x7c03('0x6'),_0x7c03('0x7'),'tenantId','clientId',_0x7c03('0x8'),_0x7c03('0x9'),_0x7c03('0xa')],'include':[{'model':_0x7c03('0xb'),'as':_0x7c03('0xc'),'attributes':['id','name','ticketType'],'include':[{'model':_0x7c03('0xd'),'as':_0x7c03('0xe'),'attributes':['id',_0x7c03('0xf'),_0x7c03('0x10'),_0x7c03('0x11')],'include':[{'model':_0x7c03('0x12'),'as':_0x7c03('0x12'),'attributes':['id','name']}]},{'model':_0x7c03('0xd'),'as':_0x7c03('0x13'),'attributes':['id',_0x7c03('0xf'),'content',_0x7c03('0x14'),_0x7c03('0x15'),_0x7c03('0x16'),_0x7c03('0x11')],'include':[{'model':_0x7c03('0x12'),'as':_0x7c03('0x12'),'attributes':['id',_0x7c03('0x4')]}]},{'model':'Dynamics365Field','as':_0x7c03('0x17'),'attributes':['id',_0x7c03('0xf'),_0x7c03('0x10'),'idField',_0x7c03('0x18'),_0x7c03('0x19'),_0x7c03('0x11')],'include':[{'model':_0x7c03('0x12'),'as':'Variable','attributes':['id','name']}]}]}]},'log':_0x7c03('0x3')});};};
\ No newline at end of file
+var _0x96b0=['content','Variable','Descriptions','key','keyType','keyContent','variableName','Fields','idField','nameField','customField','../../client','Request','GetDynamics365Account','name','username','password','remoteUri','tenantId','clientId','clientSecret','serverUrl','description','Dynamics365Configuration','Configurations','ticketType','Dynamics365Field','type'];(function(_0x1fd675,_0x165dfe){var _0x16b554=function(_0x5761ff){while(--_0x5761ff){_0x1fd675['push'](_0x1fd675['shift']());}};_0x16b554(++_0x165dfe);}(_0x96b0,0x97));var _0x096b=function(_0x4e4d5d,_0x3e5e71){_0x4e4d5d=_0x4e4d5d-0x0;var _0x13f687=_0x96b0[_0x4e4d5d];return _0x13f687;};'use strict';var client=require(_0x096b('0x0'));exports['getDynamics365Accounts']=function(){return function(_0x1034e8){return client[_0x096b('0x1')](_0x096b('0x2'),{'options':{'raw':![],'attributes':['id',_0x096b('0x3'),_0x096b('0x4'),_0x096b('0x5'),_0x096b('0x6'),_0x096b('0x7'),_0x096b('0x8'),_0x096b('0x9'),_0x096b('0xa'),_0x096b('0xb')],'include':[{'model':_0x096b('0xc'),'as':_0x096b('0xd'),'attributes':['id',_0x096b('0x3'),_0x096b('0xe')],'include':[{'model':_0x096b('0xf'),'as':'Subjects','attributes':['id',_0x096b('0x10'),_0x096b('0x11'),'variableName'],'include':[{'model':_0x096b('0x12'),'as':_0x096b('0x12'),'attributes':['id',_0x096b('0x3')]}]},{'model':'Dynamics365Field','as':_0x096b('0x13'),'attributes':['id',_0x096b('0x10'),'content',_0x096b('0x14'),_0x096b('0x15'),_0x096b('0x16'),_0x096b('0x17')],'include':[{'model':_0x096b('0x12'),'as':'Variable','attributes':['id',_0x096b('0x3')]}]},{'model':'Dynamics365Field','as':_0x096b('0x18'),'attributes':['id',_0x096b('0x10'),_0x096b('0x11'),_0x096b('0x19'),_0x096b('0x1a'),_0x096b('0x1b'),_0x096b('0x17')],'include':[{'model':'Variable','as':_0x096b('0x12'),'attributes':['id',_0x096b('0x3')]}]}]}]},'log':_0x096b('0x2')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x477a=['Variable','keyContent','Fields','idField','nameField','customField','GetFreshdeskAccount','../../client','Request','name','username','serverUrl','FreshdeskConfiguration','Tag','FreshdeskField','Subjects','type','content','variableName'];(function(_0x43395e,_0x2f3a24){var _0x2f12dc=function(_0x5d1674){while(--_0x5d1674){_0x43395e['push'](_0x43395e['shift']());}};_0x2f12dc(++_0x2f3a24);}(_0x477a,0x1e2));var _0xa477=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x477a[_0x3dd15e];return _0x231fd0;};'use strict';var client=require(_0xa477('0x0'));exports['getFreshdeskAccounts']=function(){return function(_0x2afb00){return client[_0xa477('0x1')]('GetFreshdeskAccount',{'options':{'raw':![],'attributes':['id',_0xa477('0x2'),_0xa477('0x3'),'apiKey','remoteUri',_0xa477('0x4')],'include':[{'model':_0xa477('0x5'),'as':'Configurations','attributes':['id',_0xa477('0x2')],'include':[{'model':_0xa477('0x6'),'attributes':['id',_0xa477('0x2')]},{'model':_0xa477('0x7'),'as':_0xa477('0x8'),'attributes':['id',_0xa477('0x9'),_0xa477('0xa'),_0xa477('0xb')],'include':[{'model':_0xa477('0xc'),'as':'Variable','attributes':['id',_0xa477('0x2')]}]},{'model':_0xa477('0x7'),'as':'Descriptions','attributes':['id','type','content','key','keyType',_0xa477('0xd'),_0xa477('0xb')],'include':[{'model':_0xa477('0xc'),'as':'Variable','attributes':['id',_0xa477('0x2')]}]},{'model':_0xa477('0x7'),'as':_0xa477('0xe'),'attributes':['id','type',_0xa477('0xa'),_0xa477('0xf'),_0xa477('0x10'),_0xa477('0x11'),_0xa477('0xb')],'include':[{'model':'Variable','as':_0xa477('0xc'),'attributes':['id',_0xa477('0x2')]}]}]}]},'log':_0xa477('0x12')});};};
\ No newline at end of file
+var _0x1123=['Subjects','type','variableName','Variable','Descriptions','key','keyType','keyContent','content','idField','GetFreshdeskAccount','name','username','serverUrl','FreshdeskConfiguration','Configurations','Tag','FreshdeskField'];(function(_0x5b6cf1,_0x32fdcd){var _0x46278c=function(_0x53fd9b){while(--_0x53fd9b){_0x5b6cf1['push'](_0x5b6cf1['shift']());}};_0x46278c(++_0x32fdcd);}(_0x1123,0x118));var _0x3112=function(_0x413feb,_0x10477f){_0x413feb=_0x413feb-0x0;var _0x40ee88=_0x1123[_0x413feb];return _0x40ee88;};'use strict';var client=require('../../client');exports['getFreshdeskAccounts']=function(){return function(_0x271d35){return client['Request'](_0x3112('0x0'),{'options':{'raw':![],'attributes':['id',_0x3112('0x1'),_0x3112('0x2'),'apiKey','remoteUri',_0x3112('0x3')],'include':[{'model':_0x3112('0x4'),'as':_0x3112('0x5'),'attributes':['id',_0x3112('0x1')],'include':[{'model':_0x3112('0x6'),'attributes':['id',_0x3112('0x1')]},{'model':_0x3112('0x7'),'as':_0x3112('0x8'),'attributes':['id',_0x3112('0x9'),'content',_0x3112('0xa')],'include':[{'model':_0x3112('0xb'),'as':_0x3112('0xb'),'attributes':['id',_0x3112('0x1')]}]},{'model':_0x3112('0x7'),'as':_0x3112('0xc'),'attributes':['id','type','content',_0x3112('0xd'),_0x3112('0xe'),_0x3112('0xf'),_0x3112('0xa')],'include':[{'model':_0x3112('0xb'),'as':'Variable','attributes':['id',_0x3112('0x1')]}]},{'model':'FreshdeskField','as':'Fields','attributes':['id',_0x3112('0x9'),_0x3112('0x10'),_0x3112('0x11'),'nameField','customField',_0x3112('0xa')],'include':[{'model':'Variable','as':_0x3112('0xb'),'attributes':['id','name']}]}]}]},'log':'GetFreshdeskAccount'});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdf98=['type','content','variableName','Descriptions','key','keyType','keyContent','Variable','GetFreshsalesccount','../../client','name','username','apiKey','remoteUri','serverUrl','FreshsalesConfiguration','Configurations','FreshsalesField'];(function(_0x9aada2,_0xd2d349){var _0x196dff=function(_0x5ad061){while(--_0x5ad061){_0x9aada2['push'](_0x9aada2['shift']());}};_0x196dff(++_0xd2d349);}(_0xdf98,0xcf));var _0x8df9=function(_0x1b2bde,_0x32ea63){_0x1b2bde=_0x1b2bde-0x0;var _0x1743b9=_0xdf98[_0x1b2bde];return _0x1743b9;};'use strict';var client=require(_0x8df9('0x0'));exports['getFreshsalesAccounts']=function(){return function(_0x1f9abd){return client['Request']('GetFreshsalesAccount',{'options':{'raw':![],'attributes':['id',_0x8df9('0x1'),_0x8df9('0x2'),_0x8df9('0x3'),_0x8df9('0x4'),_0x8df9('0x5')],'include':[{'model':_0x8df9('0x6'),'as':_0x8df9('0x7'),'attributes':['id',_0x8df9('0x1')],'include':[{'model':_0x8df9('0x8'),'as':'Subjects','attributes':['id',_0x8df9('0x9'),_0x8df9('0xa'),_0x8df9('0xb')],'include':[{'model':'Variable','as':'Variable','attributes':['id',_0x8df9('0x1')]}]},{'model':'FreshsalesField','as':_0x8df9('0xc'),'attributes':['id',_0x8df9('0x9'),_0x8df9('0xa'),_0x8df9('0xd'),_0x8df9('0xe'),_0x8df9('0xf'),_0x8df9('0xb')],'include':[{'model':_0x8df9('0x10'),'as':'Variable','attributes':['id',_0x8df9('0x1')]}]}]}]},'log':_0x8df9('0x11')});};};
\ No newline at end of file
+var _0x6f47=['type','variableName','Variable','name','content','key','GetFreshsalesccount','getFreshsalesAccounts','GetFreshsalesAccount','username','remoteUri','serverUrl','FreshsalesConfiguration','Configurations','FreshsalesField','Subjects'];(function(_0x14bb83,_0x4f3c88){var _0xa8c5cd=function(_0x12972d){while(--_0x12972d){_0x14bb83['push'](_0x14bb83['shift']());}};_0xa8c5cd(++_0x4f3c88);}(_0x6f47,0xc7));var _0x76f4=function(_0x34843e,_0x4c4224){_0x34843e=_0x34843e-0x0;var _0x598f7f=_0x6f47[_0x34843e];return _0x598f7f;};'use strict';var client=require('../../client');exports[_0x76f4('0x0')]=function(){return function(_0x94765d){return client['Request'](_0x76f4('0x1'),{'options':{'raw':![],'attributes':['id','name',_0x76f4('0x2'),'apiKey',_0x76f4('0x3'),_0x76f4('0x4')],'include':[{'model':_0x76f4('0x5'),'as':_0x76f4('0x6'),'attributes':['id','name'],'include':[{'model':_0x76f4('0x7'),'as':_0x76f4('0x8'),'attributes':['id',_0x76f4('0x9'),'content',_0x76f4('0xa')],'include':[{'model':_0x76f4('0xb'),'as':_0x76f4('0xb'),'attributes':['id',_0x76f4('0xc')]}]},{'model':_0x76f4('0x7'),'as':'Descriptions','attributes':['id','type',_0x76f4('0xd'),_0x76f4('0xe'),'keyType','keyContent',_0x76f4('0xa')],'include':[{'model':_0x76f4('0xb'),'as':_0x76f4('0xb'),'attributes':['id',_0x76f4('0xc')]}]}]}]},'log':_0x76f4('0xf')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x225b=['securityToken','serverUrl','type','SalesforceConfiguration','Configurations','name','moduleCreate','ticketType','leadId','additionalSearchAccount','additionalSearchLead','SalesforceField','Subjects','Variable','Descriptions','Fields','../../client','getSalesforceAccounts','Request','GetSalesforceAccount','username','remoteUri','clientSecret'];(function(_0x5679e5,_0x4e45c9){var _0x34a94=function(_0xda168c){while(--_0xda168c){_0x5679e5['push'](_0x5679e5['shift']());}};_0x34a94(++_0x4e45c9);}(_0x225b,0xb1));var _0xb225=function(_0x505fe8,_0x3d4874){_0x505fe8=_0x505fe8-0x0;var _0x494b7c=_0x225b[_0x505fe8];return _0x494b7c;};'use strict';var client=require(_0xb225('0x0'));exports[_0xb225('0x1')]=function(){return function(_0x4e01e1){return client[_0xb225('0x2')](_0xb225('0x3'),{'options':{'raw':![],'attributes':['id','name',_0xb225('0x4'),'password',_0xb225('0x5'),'clientId',_0xb225('0x6'),_0xb225('0x7'),_0xb225('0x8'),_0xb225('0x9')],'include':[{'model':_0xb225('0xa'),'as':_0xb225('0xb'),'attributes':['id',_0xb225('0xc'),'moduleSearch',_0xb225('0xd'),_0xb225('0xe'),_0xb225('0xf'),_0xb225('0x10'),'additionalSearchContact',_0xb225('0x11')],'include':[{'model':_0xb225('0x12'),'as':_0xb225('0x13'),'include':[{'model':'Variable','as':_0xb225('0x14'),'attributes':['id',_0xb225('0xc')]}]},{'model':_0xb225('0x12'),'as':_0xb225('0x15'),'include':[{'model':_0xb225('0x14'),'as':'Variable','attributes':['id',_0xb225('0xc')]}]},{'model':_0xb225('0x12'),'as':_0xb225('0x16'),'include':[{'model':_0xb225('0x14'),'as':_0xb225('0x14'),'attributes':['id','name']}]}]}]},'log':'GetSalesforceAccount'});};};
\ No newline at end of file
+var _0x36d3=['SalesforceField','Subjects','Variable','Descriptions','Fields','GetSalesforceAccount','../../client','getSalesforceAccounts','name','username','password','remoteUri','clientId','clientSecret','securityToken','serverUrl','type','SalesforceConfiguration','Configurations','moduleSearch','moduleCreate','ticketType','leadId','additionalSearchContact','additionalSearchLead'];(function(_0xa9eaa0,_0x4ba2b4){var _0x30897a=function(_0x2caa01){while(--_0x2caa01){_0xa9eaa0['push'](_0xa9eaa0['shift']());}};_0x30897a(++_0x4ba2b4);}(_0x36d3,0xb5));var _0x336d=function(_0x28942a,_0x454774){_0x28942a=_0x28942a-0x0;var _0x5f1b09=_0x36d3[_0x28942a];return _0x5f1b09;};'use strict';var client=require(_0x336d('0x0'));exports[_0x336d('0x1')]=function(){return function(_0x1d56a8){return client['Request']('GetSalesforceAccount',{'options':{'raw':![],'attributes':['id',_0x336d('0x2'),_0x336d('0x3'),_0x336d('0x4'),_0x336d('0x5'),_0x336d('0x6'),_0x336d('0x7'),_0x336d('0x8'),_0x336d('0x9'),_0x336d('0xa')],'include':[{'model':_0x336d('0xb'),'as':_0x336d('0xc'),'attributes':['id',_0x336d('0x2'),_0x336d('0xd'),_0x336d('0xe'),_0x336d('0xf'),_0x336d('0x10'),'additionalSearchAccount',_0x336d('0x11'),_0x336d('0x12')],'include':[{'model':_0x336d('0x13'),'as':_0x336d('0x14'),'include':[{'model':'Variable','as':_0x336d('0x15'),'attributes':['id',_0x336d('0x2')]}]},{'model':_0x336d('0x13'),'as':_0x336d('0x16'),'include':[{'model':_0x336d('0x15'),'as':_0x336d('0x15'),'attributes':['id',_0x336d('0x2')]}]},{'model':_0x336d('0x13'),'as':_0x336d('0x17'),'include':[{'model':_0x336d('0x15'),'as':_0x336d('0x15'),'attributes':['id',_0x336d('0x2')]}]}]}]},'log':_0x336d('0x18')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2675=['ServicenowField','type','content','Variable','Descriptions','keyType','variableName','Fields','idField','nameField','customField','GetServicenowkAccount','../../client','GetServicenowAccount','name','username','password','remoteUri','serverUrl','ServicenowConfiguration','Configurations'];(function(_0x2614fd,_0x148209){var _0x562fad=function(_0x474f4a){while(--_0x474f4a){_0x2614fd['push'](_0x2614fd['shift']());}};_0x562fad(++_0x148209);}(_0x2675,0x75));var _0x5267=function(_0x35b144,_0x44da75){_0x35b144=_0x35b144-0x0;var _0x1a47b0=_0x2675[_0x35b144];return _0x1a47b0;};'use strict';var client=require(_0x5267('0x0'));exports['getServicenowAccounts']=function(){return function(_0x53e71f){return client['Request'](_0x5267('0x1'),{'options':{'raw':![],'attributes':['id',_0x5267('0x2'),'description',_0x5267('0x3'),_0x5267('0x4'),'email',_0x5267('0x5'),_0x5267('0x6')],'include':[{'model':_0x5267('0x7'),'as':_0x5267('0x8'),'attributes':['id',_0x5267('0x2')],'include':[{'model':_0x5267('0x9'),'as':'Subjects','attributes':['id',_0x5267('0xa'),_0x5267('0xb'),'variableName'],'include':[{'model':_0x5267('0xc'),'as':'Variable','attributes':['id',_0x5267('0x2')]}]},{'model':_0x5267('0x9'),'as':_0x5267('0xd'),'attributes':['id','type',_0x5267('0xb'),'key',_0x5267('0xe'),'keyContent',_0x5267('0xf')],'include':[{'model':_0x5267('0xc'),'as':_0x5267('0xc'),'attributes':['id',_0x5267('0x2')]}]},{'model':_0x5267('0x9'),'as':_0x5267('0x10'),'attributes':['id',_0x5267('0xa'),_0x5267('0xb'),_0x5267('0x11'),_0x5267('0x12'),_0x5267('0x13'),_0x5267('0xf')],'include':[{'model':_0x5267('0xc'),'as':'Variable','attributes':['id','name']}]}]}]},'log':_0x5267('0x14')});};};
\ No newline at end of file
+var _0x2675=['ServicenowField','type','content','Variable','Descriptions','keyType','variableName','Fields','idField','nameField','customField','GetServicenowkAccount','../../client','GetServicenowAccount','name','username','password','remoteUri','serverUrl','ServicenowConfiguration','Configurations'];(function(_0x410f57,_0x11d995){var _0x213525=function(_0x4a93c4){while(--_0x4a93c4){_0x410f57['push'](_0x410f57['shift']());}};_0x213525(++_0x11d995);}(_0x2675,0x75));var _0x5267=function(_0x355806,_0x352e7b){_0x355806=_0x355806-0x0;var _0x4d265d=_0x2675[_0x355806];return _0x4d265d;};'use strict';var client=require(_0x5267('0x0'));exports['getServicenowAccounts']=function(){return function(_0x53e71f){return client['Request'](_0x5267('0x1'),{'options':{'raw':![],'attributes':['id',_0x5267('0x2'),'description',_0x5267('0x3'),_0x5267('0x4'),'email',_0x5267('0x5'),_0x5267('0x6')],'include':[{'model':_0x5267('0x7'),'as':_0x5267('0x8'),'attributes':['id',_0x5267('0x2')],'include':[{'model':_0x5267('0x9'),'as':'Subjects','attributes':['id',_0x5267('0xa'),_0x5267('0xb'),'variableName'],'include':[{'model':_0x5267('0xc'),'as':'Variable','attributes':['id',_0x5267('0x2')]}]},{'model':_0x5267('0x9'),'as':_0x5267('0xd'),'attributes':['id','type',_0x5267('0xb'),'key',_0x5267('0xe'),'keyContent',_0x5267('0xf')],'include':[{'model':_0x5267('0xc'),'as':_0x5267('0xc'),'attributes':['id',_0x5267('0x2')]}]},{'model':_0x5267('0x9'),'as':_0x5267('0x10'),'attributes':['id',_0x5267('0xa'),_0x5267('0xb'),_0x5267('0x11'),_0x5267('0x12'),_0x5267('0x13'),_0x5267('0xf')],'include':[{'model':_0x5267('0xc'),'as':'Variable','attributes':['id','name']}]}]}]},'log':_0x5267('0x14')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xadb5=['idField','nameField','getSugarcrmAccounts','Request','GetSugarcrmAccount','name','password','remoteUri','serverUrl','Configurations','SugarcrmField','Subjects','type','content','variableName','Variable','Descriptions','keyContent','Fields'];(function(_0xb7b269,_0xf52b7c){var _0x50e687=function(_0x477399){while(--_0x477399){_0xb7b269['push'](_0xb7b269['shift']());}};_0x50e687(++_0xf52b7c);}(_0xadb5,0xad));var _0x5adb=function(_0x5ed711,_0x24336c){_0x5ed711=_0x5ed711-0x0;var _0x675211=_0xadb5[_0x5ed711];return _0x675211;};'use strict';var client=require('../../client');exports[_0x5adb('0x0')]=function(){return function(_0x49fc17){return client[_0x5adb('0x1')](_0x5adb('0x2'),{'options':{'raw':![],'attributes':['id',_0x5adb('0x3'),'username',_0x5adb('0x4'),_0x5adb('0x5'),_0x5adb('0x6')],'include':[{'model':'SugarcrmConfiguration','as':_0x5adb('0x7'),'attributes':['id',_0x5adb('0x3')],'include':[{'model':_0x5adb('0x8'),'as':_0x5adb('0x9'),'attributes':['id',_0x5adb('0xa'),_0x5adb('0xb'),_0x5adb('0xc')],'include':[{'model':_0x5adb('0xd'),'as':_0x5adb('0xd'),'attributes':['id',_0x5adb('0x3')]}]},{'model':_0x5adb('0x8'),'as':_0x5adb('0xe'),'attributes':['id',_0x5adb('0xa'),_0x5adb('0xb'),'key','keyType',_0x5adb('0xf'),_0x5adb('0xc')],'include':[{'model':_0x5adb('0xd'),'as':'Variable','attributes':['id',_0x5adb('0x3')]}]},{'model':'SugarcrmField','as':_0x5adb('0x10'),'attributes':['id','type',_0x5adb('0xb'),_0x5adb('0x11'),_0x5adb('0x12'),'customField',_0x5adb('0xc')],'include':[{'model':_0x5adb('0xd'),'as':_0x5adb('0xd'),'attributes':['id','name']}]}]}]},'log':_0x5adb('0x2')});};};
\ No newline at end of file
+var _0x0b0e=['Configurations','SugarcrmField','Subjects','variableName','Variable','Descriptions','type','key','keyType','Fields','content','idField','customField','../../client','GetSugarcrmAccount','name','username','password','remoteUri','serverUrl','SugarcrmConfiguration'];(function(_0x516fa4,_0x3a79c9){var _0x42126a=function(_0x4f9b18){while(--_0x4f9b18){_0x516fa4['push'](_0x516fa4['shift']());}};_0x42126a(++_0x3a79c9);}(_0x0b0e,0x187));var _0xe0b0=function(_0x1928c9,_0x13a6d1){_0x1928c9=_0x1928c9-0x0;var _0x51b5fb=_0x0b0e[_0x1928c9];return _0x51b5fb;};'use strict';var client=require(_0xe0b0('0x0'));exports['getSugarcrmAccounts']=function(){return function(_0xc416e3){return client['Request'](_0xe0b0('0x1'),{'options':{'raw':![],'attributes':['id',_0xe0b0('0x2'),_0xe0b0('0x3'),_0xe0b0('0x4'),_0xe0b0('0x5'),_0xe0b0('0x6')],'include':[{'model':_0xe0b0('0x7'),'as':_0xe0b0('0x8'),'attributes':['id',_0xe0b0('0x2')],'include':[{'model':_0xe0b0('0x9'),'as':_0xe0b0('0xa'),'attributes':['id','type','content',_0xe0b0('0xb')],'include':[{'model':_0xe0b0('0xc'),'as':_0xe0b0('0xc'),'attributes':['id',_0xe0b0('0x2')]}]},{'model':'SugarcrmField','as':_0xe0b0('0xd'),'attributes':['id',_0xe0b0('0xe'),'content',_0xe0b0('0xf'),_0xe0b0('0x10'),'keyContent',_0xe0b0('0xb')],'include':[{'model':_0xe0b0('0xc'),'as':_0xe0b0('0xc'),'attributes':['id','name']}]},{'model':_0xe0b0('0x9'),'as':_0xe0b0('0x11'),'attributes':['id',_0xe0b0('0xe'),_0xe0b0('0x12'),_0xe0b0('0x13'),'nameField',_0xe0b0('0x14'),_0xe0b0('0xb')],'include':[{'model':_0xe0b0('0xc'),'as':_0xe0b0('0xc'),'attributes':['id',_0xe0b0('0x2')]}]}]}]},'log':'GetSugarcrmAccount'});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x21ca=['username','accessKey','remoteUri','serverUrl','VtigerConfiguration','Configurations','name','VtigerField','type','content','variableName','Variable','Descriptions','key','keyType','Fields','idField','nameField','customField','GetVtigerAccount','../../client','getVtigerAccounts','Request','description'];(function(_0x21f575,_0x2005e7){var _0x187247=function(_0x1674f3){while(--_0x1674f3){_0x21f575['push'](_0x21f575['shift']());}};_0x187247(++_0x2005e7);}(_0x21ca,0x14c));var _0xa21c=function(_0x482cb5,_0x176f73){_0x482cb5=_0x482cb5-0x0;var _0x2a6acd=_0x21ca[_0x482cb5];return _0x2a6acd;};'use strict';var client=require(_0xa21c('0x0'));exports[_0xa21c('0x1')]=function(){return function(_0x598985){return client[_0xa21c('0x2')]('GetVtigerAccount',{'options':{'raw':![],'attributes':['id','name',_0xa21c('0x3'),_0xa21c('0x4'),_0xa21c('0x5'),_0xa21c('0x6'),_0xa21c('0x7')],'include':[{'model':_0xa21c('0x8'),'as':_0xa21c('0x9'),'attributes':['id',_0xa21c('0xa')],'include':[{'model':_0xa21c('0xb'),'as':'Subjects','attributes':['id',_0xa21c('0xc'),_0xa21c('0xd'),_0xa21c('0xe')],'include':[{'model':_0xa21c('0xf'),'as':_0xa21c('0xf'),'attributes':['id',_0xa21c('0xa')]}]},{'model':_0xa21c('0xb'),'as':_0xa21c('0x10'),'attributes':['id','type',_0xa21c('0xd'),_0xa21c('0x11'),_0xa21c('0x12'),'keyContent',_0xa21c('0xe')],'include':[{'model':_0xa21c('0xf'),'as':_0xa21c('0xf'),'attributes':['id',_0xa21c('0xa')]}]},{'model':'VtigerField','as':_0xa21c('0x13'),'attributes':['id',_0xa21c('0xc'),_0xa21c('0xd'),_0xa21c('0x14'),_0xa21c('0x15'),_0xa21c('0x16'),_0xa21c('0xe')],'include':[{'model':_0xa21c('0xf'),'as':_0xa21c('0xf'),'attributes':['id',_0xa21c('0xa')]}]}]}]},'log':_0xa21c('0x17')});};};
\ No newline at end of file
+var _0x7ab7=['accessKey','remoteUri','serverUrl','VtigerConfiguration','Configurations','VtigerField','Subjects','type','content','variableName','Variable','Descriptions','key','keyType','Fields','nameField','customField','GetVtigerAccount','../../client','getVtigerAccounts','Request','name','description','username'];(function(_0xbad70b,_0x37c004){var _0x444ed8=function(_0x4d60e4){while(--_0x4d60e4){_0xbad70b['push'](_0xbad70b['shift']());}};_0x444ed8(++_0x37c004);}(_0x7ab7,0x8a));var _0x77ab=function(_0x4f4c8c,_0x38b487){_0x4f4c8c=_0x4f4c8c-0x0;var _0xb2d7a1=_0x7ab7[_0x4f4c8c];return _0xb2d7a1;};'use strict';var client=require(_0x77ab('0x0'));exports[_0x77ab('0x1')]=function(){return function(_0xed219d){return client[_0x77ab('0x2')]('GetVtigerAccount',{'options':{'raw':![],'attributes':['id',_0x77ab('0x3'),_0x77ab('0x4'),_0x77ab('0x5'),_0x77ab('0x6'),_0x77ab('0x7'),_0x77ab('0x8')],'include':[{'model':_0x77ab('0x9'),'as':_0x77ab('0xa'),'attributes':['id','name'],'include':[{'model':_0x77ab('0xb'),'as':_0x77ab('0xc'),'attributes':['id',_0x77ab('0xd'),_0x77ab('0xe'),_0x77ab('0xf')],'include':[{'model':_0x77ab('0x10'),'as':_0x77ab('0x10'),'attributes':['id',_0x77ab('0x3')]}]},{'model':_0x77ab('0xb'),'as':_0x77ab('0x11'),'attributes':['id',_0x77ab('0xd'),_0x77ab('0xe'),_0x77ab('0x12'),_0x77ab('0x13'),'keyContent',_0x77ab('0xf')],'include':[{'model':_0x77ab('0x10'),'as':_0x77ab('0x10'),'attributes':['id',_0x77ab('0x3')]}]},{'model':_0x77ab('0xb'),'as':_0x77ab('0x14'),'attributes':['id',_0x77ab('0xd'),_0x77ab('0xe'),'idField',_0x77ab('0x15'),_0x77ab('0x16'),_0x77ab('0xf')],'include':[{'model':_0x77ab('0x10'),'as':_0x77ab('0x10'),'attributes':['id',_0x77ab('0x3')]}]}]}]},'log':_0x77ab('0x17')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xad15=['GetZendeskAccount','username','password','token','remoteUri','authType','type','ZendeskConfiguration','Configurations','Tag','name','ZendeskField','Subjects','variableName','Variable','Descriptions','content','keyType','Fields','idField','customField','../../client','Request'];(function(_0xa464c9,_0x7c86d8){var _0x3d73c4=function(_0x5c2056){while(--_0x5c2056){_0xa464c9['push'](_0xa464c9['shift']());}};_0x3d73c4(++_0x7c86d8);}(_0xad15,0xfb));var _0x5ad1=function(_0x1a0600,_0x41feef){_0x1a0600=_0x1a0600-0x0;var _0x734670=_0xad15[_0x1a0600];return _0x734670;};'use strict';var client=require(_0x5ad1('0x0'));exports['getZendeskAccounts']=function(){return function(_0x5d13b8){return client[_0x5ad1('0x1')](_0x5ad1('0x2'),{'options':{'raw':![],'attributes':['id','name',_0x5ad1('0x3'),_0x5ad1('0x4'),_0x5ad1('0x5'),_0x5ad1('0x6'),_0x5ad1('0x7'),'serverUrl',_0x5ad1('0x8')],'include':[{'model':_0x5ad1('0x9'),'as':_0x5ad1('0xa'),'attributes':['id','name'],'include':[{'model':_0x5ad1('0xb'),'attributes':['id',_0x5ad1('0xc')]},{'model':_0x5ad1('0xd'),'as':_0x5ad1('0xe'),'attributes':['id',_0x5ad1('0x8'),'content',_0x5ad1('0xf')],'include':[{'model':_0x5ad1('0x10'),'as':_0x5ad1('0x10'),'attributes':['id',_0x5ad1('0xc')]}]},{'model':_0x5ad1('0xd'),'as':_0x5ad1('0x11'),'attributes':['id',_0x5ad1('0x8'),_0x5ad1('0x12'),'key',_0x5ad1('0x13'),'keyContent',_0x5ad1('0xf')],'include':[{'model':_0x5ad1('0x10'),'as':_0x5ad1('0x10'),'attributes':['id',_0x5ad1('0xc')]}]},{'model':_0x5ad1('0xd'),'as':_0x5ad1('0x14'),'attributes':['id',_0x5ad1('0x8'),_0x5ad1('0x12'),_0x5ad1('0x15'),'nameField',_0x5ad1('0x16'),_0x5ad1('0xf')],'include':[{'model':_0x5ad1('0x10'),'as':_0x5ad1('0x10'),'attributes':['id',_0x5ad1('0xc')]}]}]}]},'log':_0x5ad1('0x2')});};};
\ No newline at end of file
+var _0x3b84=['password','remoteUri','authType','type','Configurations','Tag','Subjects','variableName','Variable','Descriptions','key','keyType','keyContent','content','nameField','customField','GetZendeskAccount','../../client','getZendeskAccounts','Request','name'];(function(_0x4ce996,_0x515800){var _0x19f21b=function(_0x26e2ca){while(--_0x26e2ca){_0x4ce996['push'](_0x4ce996['shift']());}};_0x19f21b(++_0x515800);}(_0x3b84,0x1f4));var _0x43b8=function(_0x3a1b53,_0xfedec5){_0x3a1b53=_0x3a1b53-0x0;var _0x1ded60=_0x3b84[_0x3a1b53];return _0x1ded60;};'use strict';var client=require(_0x43b8('0x0'));exports[_0x43b8('0x1')]=function(){return function(_0x2e35ba){return client[_0x43b8('0x2')]('GetZendeskAccount',{'options':{'raw':![],'attributes':['id',_0x43b8('0x3'),'username',_0x43b8('0x4'),'token',_0x43b8('0x5'),_0x43b8('0x6'),'serverUrl',_0x43b8('0x7')],'include':[{'model':'ZendeskConfiguration','as':_0x43b8('0x8'),'attributes':['id','name'],'include':[{'model':_0x43b8('0x9'),'attributes':['id',_0x43b8('0x3')]},{'model':'ZendeskField','as':_0x43b8('0xa'),'attributes':['id',_0x43b8('0x7'),'content',_0x43b8('0xb')],'include':[{'model':_0x43b8('0xc'),'as':_0x43b8('0xc'),'attributes':['id','name']}]},{'model':'ZendeskField','as':_0x43b8('0xd'),'attributes':['id',_0x43b8('0x7'),'content',_0x43b8('0xe'),_0x43b8('0xf'),_0x43b8('0x10'),_0x43b8('0xb')],'include':[{'model':'Variable','as':'Variable','attributes':['id',_0x43b8('0x3')]}]},{'model':'ZendeskField','as':'Fields','attributes':['id',_0x43b8('0x7'),_0x43b8('0x11'),'idField',_0x43b8('0x12'),_0x43b8('0x13'),_0x43b8('0xb')],'include':[{'model':_0x43b8('0xc'),'as':_0x43b8('0xc'),'attributes':['id',_0x43b8('0x3')]}]}]}]},'log':_0x43b8('0x14')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2ede=['../../client','Request','description','host','zone','clientId','clientSecret','code','refreshToken','ZohoConfiguration','name','moduleCreate','moduleSearch','ZohoField','type','content','variableName','Variable','key','keyType','Fields','idField','nameField','customField','GetZohoAccount'];(function(_0x291abc,_0x16fdc1){var _0x2e8e35=function(_0x5a61aa){while(--_0x5a61aa){_0x291abc['push'](_0x291abc['shift']());}};_0x2e8e35(++_0x16fdc1);}(_0x2ede,0x190));var _0xe2ed=function(_0xdabc34,_0x3a758c){_0xdabc34=_0xdabc34-0x0;var _0x492497=_0x2ede[_0xdabc34];return _0x492497;};'use strict';var client=require(_0xe2ed('0x0'));exports['getZohoAccounts']=function(){return function(_0x25098f){return client[_0xe2ed('0x1')]('GetZohoAccount',{'options':{'raw':![],'attributes':['id','name',_0xe2ed('0x2'),_0xe2ed('0x3'),_0xe2ed('0x4'),_0xe2ed('0x5'),_0xe2ed('0x6'),'serverUrl',_0xe2ed('0x7'),_0xe2ed('0x8')],'include':[{'model':_0xe2ed('0x9'),'as':'Configurations','attributes':['id',_0xe2ed('0xa'),_0xe2ed('0xb'),_0xe2ed('0xc'),_0xe2ed('0x2')],'include':[{'model':_0xe2ed('0xd'),'as':'Subjects','attributes':['id',_0xe2ed('0xe'),_0xe2ed('0xf'),_0xe2ed('0x10')],'include':[{'model':_0xe2ed('0x11'),'as':_0xe2ed('0x11'),'attributes':['id',_0xe2ed('0xa')]}]},{'model':_0xe2ed('0xd'),'as':'Descriptions','attributes':['id',_0xe2ed('0xe'),'content',_0xe2ed('0x12'),_0xe2ed('0x13'),'keyContent',_0xe2ed('0x10')],'include':[{'model':_0xe2ed('0x11'),'as':_0xe2ed('0x11'),'attributes':['id','name']}]},{'model':_0xe2ed('0xd'),'as':_0xe2ed('0x14'),'attributes':['id',_0xe2ed('0xe'),_0xe2ed('0xf'),_0xe2ed('0x15'),_0xe2ed('0x16'),_0xe2ed('0x17'),_0xe2ed('0x10')],'include':[{'model':_0xe2ed('0x11'),'as':_0xe2ed('0x11'),'attributes':['id','name']}]}]}]},'log':_0xe2ed('0x18')});};};
\ No newline at end of file
+var _0xb9e3=['Subjects','type','content','variableName','Variable','keyType','keyContent','Fields','nameField','../../client','getZohoAccounts','Request','GetZohoAccount','name','description','host','zone','clientId','serverUrl','refreshToken','ZohoConfiguration','Configurations','moduleCreate','ZohoField'];(function(_0x1aa39b,_0x2f197b){var _0x1e4a9e=function(_0x5a61bd){while(--_0x5a61bd){_0x1aa39b['push'](_0x1aa39b['shift']());}};_0x1e4a9e(++_0x2f197b);}(_0xb9e3,0x81));var _0x3b9e=function(_0x3cc9d9,_0x69ed38){_0x3cc9d9=_0x3cc9d9-0x0;var _0x1a425d=_0xb9e3[_0x3cc9d9];return _0x1a425d;};'use strict';var client=require(_0x3b9e('0x0'));exports[_0x3b9e('0x1')]=function(){return function(_0x5be8eb){return client[_0x3b9e('0x2')](_0x3b9e('0x3'),{'options':{'raw':![],'attributes':['id',_0x3b9e('0x4'),_0x3b9e('0x5'),_0x3b9e('0x6'),_0x3b9e('0x7'),_0x3b9e('0x8'),'clientSecret',_0x3b9e('0x9'),'code',_0x3b9e('0xa')],'include':[{'model':_0x3b9e('0xb'),'as':_0x3b9e('0xc'),'attributes':['id','name',_0x3b9e('0xd'),'moduleSearch',_0x3b9e('0x5')],'include':[{'model':_0x3b9e('0xe'),'as':_0x3b9e('0xf'),'attributes':['id',_0x3b9e('0x10'),_0x3b9e('0x11'),_0x3b9e('0x12')],'include':[{'model':_0x3b9e('0x13'),'as':'Variable','attributes':['id',_0x3b9e('0x4')]}]},{'model':_0x3b9e('0xe'),'as':'Descriptions','attributes':['id',_0x3b9e('0x10'),_0x3b9e('0x11'),'key',_0x3b9e('0x14'),_0x3b9e('0x15'),_0x3b9e('0x12')],'include':[{'model':_0x3b9e('0x13'),'as':_0x3b9e('0x13'),'attributes':['id',_0x3b9e('0x4')]}]},{'model':_0x3b9e('0xe'),'as':_0x3b9e('0x16'),'attributes':['id',_0x3b9e('0x10'),_0x3b9e('0x11'),'idField',_0x3b9e('0x17'),'customField','variableName'],'include':[{'model':'Variable','as':'Variable','attributes':['id',_0x3b9e('0x4')]}]}]}]},'log':_0x3b9e('0x3')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xabce=['seconds','outbound','dialstring','lodash','util','../client','voiceQueueReport','queuecallercompleteAt','Request','CreateMemberReport','lastAssignedTo','isNil','format','SIP/%s','TALKING','queuecallerleaveAt','diff','inbound','calleridnum','exten','queue','agent','accountcode','toNumber','uniqueid','voiceDialReport','voice','membername','interface','endtime','starttime'];(function(_0x4afe21,_0xd3a32f){var _0x5130a7=function(_0x2f5b17){while(--_0x2f5b17){_0x4afe21['push'](_0x4afe21['shift']());}};_0x5130a7(++_0xd3a32f);}(_0xabce,0x1f3));var _0xeabc=function(_0x5b561d,_0x422b7c){_0x5b561d=_0x5b561d-0x0;var _0x431060=_0xabce[_0x5b561d];return _0x431060;};'use strict';var moment=require('moment');var _=require(_0xeabc('0x0'));var util=require(_0xeabc('0x1'));var client=require(_0xeabc('0x2'));exports[_0xeabc('0x3')]=function(_0x365eba){var _0x26bf6f=_0x365eba[_0xeabc('0x4')]||_0x365eba['queuecallerexitAt'];return client[_0xeabc('0x5')](_0xeabc('0x6'),{'body':{'channel':'voice','membername':_0x365eba[_0xeabc('0x7')],'interface':_[_0xeabc('0x8')](_0x365eba['interface'])?util[_0xeabc('0x9')](_0xeabc('0xa'),_0x365eba['lastAssignedTo']):_0x365eba['interface'],'type':_0xeabc('0xb'),'enterAt':_0x365eba[_0xeabc('0xc')],'exitAt':_0x26bf6f,'duration':moment(_0x26bf6f)[_0xeabc('0xd')](_0x365eba[_0xeabc('0xc')],'seconds'),'data1':_0xeabc('0xe'),'data2':_0x365eba[_0xeabc('0xf')],'data3':_0x365eba[_0xeabc('0x10')],'data4':null,'data5':_0x365eba[_0xeabc('0x11')],'role':_0xeabc('0x12'),'internal':_0x365eba[_0xeabc('0x13')]?_[_0xeabc('0x14')](_0x365eba[_0xeabc('0x13')]):undefined,'uniqueid':_0x365eba[_0xeabc('0x15')]},'log':'CreateMemberReport'});};exports[_0xeabc('0x16')]=function(_0x3c5e1a){return client[_0xeabc('0x5')](_0xeabc('0x6'),{'body':{'channel':_0xeabc('0x17'),'membername':_0x3c5e1a[_0xeabc('0x18')],'interface':_0x3c5e1a[_0xeabc('0x19')],'type':_0xeabc('0xb'),'enterAt':_0x3c5e1a['starttime'],'exitAt':_0x3c5e1a[_0xeabc('0x1a')],'duration':moment(_0x3c5e1a['endtime'])[_0xeabc('0xd')](_0x3c5e1a[_0xeabc('0x1b')],'seconds')>=0x0?moment(_0x3c5e1a[_0xeabc('0x1a')])[_0xeabc('0xd')](_0x3c5e1a['starttime'],_0xeabc('0x1c')):null,'data1':_0xeabc('0x1d'),'data2':_0x3c5e1a['accountcode'],'data3':_0x3c5e1a[_0xeabc('0x10')],'data4':_0x3c5e1a[_0xeabc('0x1e')]||null,'role':_0xeabc('0x12'),'internal':_0x3c5e1a[_0xeabc('0x13')]?_[_0xeabc('0x14')](_0x3c5e1a[_0xeabc('0x13')]):undefined,'uniqueid':_0x3c5e1a[_0xeabc('0x15')]},'log':_0xeabc('0x6')});};
\ No newline at end of file
+var _0x9a89=['seconds','inbound','toNumber','uniqueid','voiceDialReport','voice','membername','starttime','endtime','dialstring','accountcode','CreateMemberReport','moment','lodash','util','../client','voiceQueueReport','queuecallercompleteAt','queuecallerexitAt','Request','lastAssignedTo','isNil','interface','format','SIP/%s','TALKING','queuecallerleaveAt','diff'];(function(_0x1cb73e,_0xce62f4){var _0x5c1e4c=function(_0x5cf8e3){while(--_0x5cf8e3){_0x1cb73e['push'](_0x1cb73e['shift']());}};_0x5c1e4c(++_0xce62f4);}(_0x9a89,0x194));var _0x99a8=function(_0xad6258,_0x1e6c73){_0xad6258=_0xad6258-0x0;var _0x5f4e00=_0x9a89[_0xad6258];return _0x5f4e00;};'use strict';var moment=require(_0x99a8('0x0'));var _=require(_0x99a8('0x1'));var util=require(_0x99a8('0x2'));var client=require(_0x99a8('0x3'));exports[_0x99a8('0x4')]=function(_0x5ee854){var _0x1259bd=_0x5ee854[_0x99a8('0x5')]||_0x5ee854[_0x99a8('0x6')];return client[_0x99a8('0x7')]('CreateMemberReport',{'body':{'channel':'voice','membername':_0x5ee854[_0x99a8('0x8')],'interface':_[_0x99a8('0x9')](_0x5ee854[_0x99a8('0xa')])?util[_0x99a8('0xb')](_0x99a8('0xc'),_0x5ee854[_0x99a8('0x8')]):_0x5ee854[_0x99a8('0xa')],'type':_0x99a8('0xd'),'enterAt':_0x5ee854[_0x99a8('0xe')],'exitAt':_0x1259bd,'duration':moment(_0x1259bd)[_0x99a8('0xf')](_0x5ee854['queuecallerleaveAt'],_0x99a8('0x10')),'data1':_0x99a8('0x11'),'data2':_0x5ee854['calleridnum'],'data3':_0x5ee854['exten'],'data4':null,'data5':_0x5ee854['queue'],'role':'agent','internal':_0x5ee854['accountcode']?_[_0x99a8('0x12')](_0x5ee854['accountcode']):undefined,'uniqueid':_0x5ee854[_0x99a8('0x13')]},'log':'CreateMemberReport'});};exports[_0x99a8('0x14')]=function(_0x76cee4){return client[_0x99a8('0x7')]('CreateMemberReport',{'body':{'channel':_0x99a8('0x15'),'membername':_0x76cee4[_0x99a8('0x16')],'interface':_0x76cee4['interface'],'type':_0x99a8('0xd'),'enterAt':_0x76cee4[_0x99a8('0x17')],'exitAt':_0x76cee4['endtime'],'duration':moment(_0x76cee4[_0x99a8('0x18')])[_0x99a8('0xf')](_0x76cee4[_0x99a8('0x17')],_0x99a8('0x10'))>=0x0?moment(_0x76cee4[_0x99a8('0x18')])[_0x99a8('0xf')](_0x76cee4[_0x99a8('0x17')],_0x99a8('0x10')):null,'data1':'outbound','data2':_0x76cee4['accountcode'],'data3':_0x76cee4['exten'],'data4':_0x76cee4[_0x99a8('0x19')]||null,'role':'agent','internal':_0x76cee4[_0x99a8('0x1a')]?_[_0x99a8('0x12')](_0x76cee4[_0x99a8('0x1a')]):undefined,'uniqueid':_0x76cee4['uniqueid']},'log':_0x99a8('0x1b')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf6fb=['Request','ShowSetting','GetSettings'];(function(_0x2c5293,_0x55c13c){var _0x3c16f5=function(_0x4d3fa6){while(--_0x4d3fa6){_0x2c5293['push'](_0x2c5293['shift']());}};_0x3c16f5(++_0x55c13c);}(_0xf6fb,0x111));var _0xbf6f=function(_0x34ac35,_0x46f0ce){_0x34ac35=_0x34ac35-0x0;var _0x71100f=_0xf6fb[_0x34ac35];return _0x71100f;};'use strict';var client=require('../client');exports['getSettings']=function(){return client[_0xbf6f('0x0')](_0xbf6f('0x1'),{'options':{'raw':!![],'where':{'id':0x1},'attributes':['stopRecordingOnTransfer']},'log':_0xbf6f('0x2')});};
\ No newline at end of file
+var _0x63eb=['../client','getSettings','Request','ShowSetting','stopRecordingOnTransfer','GetSettings'];(function(_0x9f27a3,_0x3716d9){var _0x1e712e=function(_0x5cb75a){while(--_0x5cb75a){_0x9f27a3['push'](_0x9f27a3['shift']());}};_0x1e712e(++_0x3716d9);}(_0x63eb,0x90));var _0xb63e=function(_0x1cf601,_0x2f6a7e){_0x1cf601=_0x1cf601-0x0;var _0x2bc79f=_0x63eb[_0x1cf601];return _0x2bc79f;};'use strict';var client=require(_0xb63e('0x0'));exports[_0xb63e('0x1')]=function(){return client[_0xb63e('0x2')](_0xb63e('0x3'),{'options':{'raw':!![],'where':{'id':0x1},'attributes':[_0xb63e('0x4')]},'log':_0xb63e('0x5')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa38c=['html','../client','getTemplates','Request','GetTemplate','name'];(function(_0x5bedf7,_0x2add92){var _0x5f11fc=function(_0x1ea10f){while(--_0x1ea10f){_0x5bedf7['push'](_0x5bedf7['shift']());}};_0x5f11fc(++_0x2add92);}(_0xa38c,0x1bd));var _0xca38=function(_0x4aa222,_0x103892){_0x4aa222=_0x4aa222-0x0;var _0x3e9fc0=_0xa38c[_0x4aa222];return _0x3e9fc0;};'use strict';var client=require(_0xca38('0x0'));exports[_0xca38('0x1')]=function(_0x4f063a){return function(_0x373b85){return client[_0xca38('0x2')](_0xca38('0x3'),{'options':{'raw':!![],'attributes':['id',_0xca38('0x4'),_0xca38('0x5')]},'log':_0xca38('0x3')});};};
\ No newline at end of file
+var _0x4f88=['html','../client','getTemplates','GetTemplate','name'];(function(_0x4353d,_0x30f5ca){var _0x2f22c6=function(_0x728b5d){while(--_0x728b5d){_0x4353d['push'](_0x4353d['shift']());}};_0x2f22c6(++_0x30f5ca);}(_0x4f88,0x173));var _0x84f8=function(_0x2db12b,_0x30ab1d){_0x2db12b=_0x2db12b-0x0;var _0x20990b=_0x4f88[_0x2db12b];return _0x20990b;};'use strict';var client=require(_0x84f8('0x0'));exports[_0x84f8('0x1')]=function(_0x42eab2){return function(_0x4383e2){return client['Request'](_0x84f8('0x2'),{'options':{'raw':!![],'attributes':['id',_0x84f8('0x3'),_0x84f8('0x4')]},'log':_0x84f8('0x2')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf065=['data4','data5','data6','data7','../client','getTriggers','Request','GetTrigger','name','channel','status','Condition','field','operator','value','AnyConditions','Action','Actions','action','data2','data3'];(function(_0x24af8a,_0x36499e){var _0x47fb01=function(_0x261ba8){while(--_0x261ba8){_0x24af8a['push'](_0x24af8a['shift']());}};_0x47fb01(++_0x36499e);}(_0xf065,0x13f));var _0x5f06=function(_0x10121f,_0x56b9aa){_0x10121f=_0x10121f-0x0;var _0x3bff1a=_0xf065[_0x10121f];return _0x3bff1a;};'use strict';var client=require(_0x5f06('0x0'));exports[_0x5f06('0x1')]=function(_0x28b5d3){return function(_0x5cee43){return client[_0x5f06('0x2')](_0x5f06('0x3'),{'options':{'raw':![],'attributes':['id',_0x5f06('0x4'),_0x5f06('0x5'),_0x5f06('0x6')],'include':[{'model':_0x5f06('0x7'),'as':'AllConditions','attributes':['id',_0x5f06('0x8'),_0x5f06('0x9'),_0x5f06('0xa')]},{'model':'Condition','as':_0x5f06('0xb'),'attributes':['id',_0x5f06('0x8'),_0x5f06('0x9'),_0x5f06('0xa')]},{'model':_0x5f06('0xc'),'as':_0x5f06('0xd'),'attributes':['id',_0x5f06('0xe'),'data1',_0x5f06('0xf'),_0x5f06('0x10'),_0x5f06('0x11'),_0x5f06('0x12'),_0x5f06('0x13'),_0x5f06('0x14')]}]},'log':_0x5f06('0x3')});};};
\ No newline at end of file
+var _0x6875=['name','channel','Condition','AllConditions','operator','value','AnyConditions','field','Action','action','data1','data2','data3','data4','data7','../client','getTriggers','Request','GetTrigger'];(function(_0x10352c,_0xe2452e){var _0x4e5d59=function(_0x2476eb){while(--_0x2476eb){_0x10352c['push'](_0x10352c['shift']());}};_0x4e5d59(++_0xe2452e);}(_0x6875,0x94));var _0x5687=function(_0x2f5ac5,_0x1ee939){_0x2f5ac5=_0x2f5ac5-0x0;var _0x37c9a8=_0x6875[_0x2f5ac5];return _0x37c9a8;};'use strict';var client=require(_0x5687('0x0'));exports[_0x5687('0x1')]=function(_0x2a46d9){return function(_0x6f0657){return client[_0x5687('0x2')](_0x5687('0x3'),{'options':{'raw':![],'attributes':['id',_0x5687('0x4'),_0x5687('0x5'),'status'],'include':[{'model':_0x5687('0x6'),'as':_0x5687('0x7'),'attributes':['id','field',_0x5687('0x8'),_0x5687('0x9')]},{'model':_0x5687('0x6'),'as':_0x5687('0xa'),'attributes':['id',_0x5687('0xb'),'operator',_0x5687('0x9')]},{'model':_0x5687('0xc'),'as':'Actions','attributes':['id',_0x5687('0xd'),_0x5687('0xe'),_0x5687('0xf'),_0x5687('0x10'),_0x5687('0x11'),'data5','data6',_0x5687('0x12')]}]},'log':_0x5687('0x3')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfa2d=['getTrunks','Request','registry','defaultuser','../client'];(function(_0x156a0d,_0x3946ce){var _0x98a9ba=function(_0x46c1b2){while(--_0x46c1b2){_0x156a0d['push'](_0x156a0d['shift']());}};_0x98a9ba(++_0x3946ce);}(_0xfa2d,0x112));var _0xdfa2=function(_0x487cd3,_0x553df0){_0x487cd3=_0x487cd3-0x0;var _0x19f284=_0xfa2d[_0x487cd3];return _0x19f284;};'use strict';var client=require(_0xdfa2('0x0'));exports[_0xdfa2('0x1')]=function(_0x398998){return function(_0x511f43){return client[_0xdfa2('0x2')]('GetTrunk',{'options':{'raw':!![],'where':{'active':0x1},'attributes':['id','name',_0xdfa2('0x3'),_0xdfa2('0x4')]},'log':'GetTrunk'});};};
\ No newline at end of file
+var _0x3c6d=['GetTrunk','name','registry','defaultuser','../client','Request'];(function(_0x1a4c3a,_0x41865d){var _0x26f4ee=function(_0x2efe7b){while(--_0x2efe7b){_0x1a4c3a['push'](_0x1a4c3a['shift']());}};_0x26f4ee(++_0x41865d);}(_0x3c6d,0x190));var _0xd3c6=function(_0x1f0326,_0x591482){_0x1f0326=_0x1f0326-0x0;var _0x142968=_0x3c6d[_0x1f0326];return _0x142968;};'use strict';var client=require(_0xd3c6('0x0'));exports['getTrunks']=function(_0x520c9a){return function(_0x22892a){return client[_0xd3c6('0x1')](_0xd3c6('0x2'),{'options':{'raw':!![],'where':{'active':0x1},'attributes':['id',_0xd3c6('0x3'),_0xd3c6('0x4'),_0xd3c6('0x5')]},'log':_0xd3c6('0x2')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9c44=['online','pauseType','Request','GetUser','agent','name','email','accountcode','lastLoginAt','lastPauseAt','voicePause','phone','mobile','interface','getTelephones','telephone','internal','PauseUser','savePause','getAgent','ShowUser','fullname'];(function(_0x30b111,_0x2e2566){var _0x39e7e4=function(_0x477886){while(--_0x477886){_0x30b111['push'](_0x30b111['shift']());}};_0x39e7e4(++_0x2e2566);}(_0x9c44,0x178));var _0x49c4=function(_0x422905,_0x3bce3a){_0x422905=_0x422905-0x0;var _0x33dc6c=_0x9c44[_0x422905];return _0x33dc6c;};'use strict';var client=require('../client');exports['getAgents']=function(){return function(){return client[_0x49c4('0x0')](_0x49c4('0x1'),{'options':{'raw':![],'where':{'role':_0x49c4('0x2')},'attributes':['id',_0x49c4('0x3'),_0x49c4('0x4'),_0x49c4('0x5'),'fullname','online',_0x49c4('0x6'),'pauseType',_0x49c4('0x7'),_0x49c4('0x8'),_0x49c4('0x9'),_0x49c4('0xa'),_0x49c4('0xb')]},'log':'getAgents'});};};exports[_0x49c4('0xc')]=function(){return function(){return client[_0x49c4('0x0')](_0x49c4('0x1'),{'options':{'raw':!![],'where':{'role':_0x49c4('0xd')},'attributes':['id','name','accountcode',_0x49c4('0xe')]},'log':_0x49c4('0xc')});};};exports['savePause']=function(_0xb611a1,_0x459d09,_0x4adb3c){return client['Request'](_0x49c4('0xf'),{'body':{'type':_0x459d09,'uniqueid':_0x4adb3c},'options':{'where':{'id':_0xb611a1['id']}},'log':_0x49c4('0x10')});};exports['saveUnpause']=function(_0x7df3a9){return client[_0x49c4('0x0')]('UnpauseUser',{'body':{},'options':{'where':{'id':_0x7df3a9['id']}},'log':_0x49c4('0x10')});};exports[_0x49c4('0x11')]=function(_0x21f15a){return client[_0x49c4('0x0')](_0x49c4('0x12'),{'options':{'raw':![],'where':{'role':_0x49c4('0x2'),'id':_0x21f15a},'attributes':['id',_0x49c4('0x3'),_0x49c4('0x4'),'accountcode',_0x49c4('0x13'),_0x49c4('0x14'),_0x49c4('0x6'),_0x49c4('0x15'),_0x49c4('0x7'),'voicePause',_0x49c4('0xb')]},'log':_0x49c4('0x11')});};
\ No newline at end of file
+var _0x70e0=['getAgents','Request','name','email','accountcode','fullname','lastLoginAt','lastPauseAt','interface','getTelephones','GetUser','telephone','savePause','PauseUser','saveUnpause','getAgent','agent','online','pauseType','../client'];(function(_0x598ed8,_0x4c7f61){var _0x38ac06=function(_0x90c685){while(--_0x90c685){_0x598ed8['push'](_0x598ed8['shift']());}};_0x38ac06(++_0x4c7f61);}(_0x70e0,0x17b));var _0x070e=function(_0x1f841d,_0x2bf4a6){_0x1f841d=_0x1f841d-0x0;var _0x32a62e=_0x70e0[_0x1f841d];return _0x32a62e;};'use strict';var client=require(_0x070e('0x0'));exports[_0x070e('0x1')]=function(){return function(){return client[_0x070e('0x2')]('GetUser',{'options':{'raw':![],'where':{'role':'agent'},'attributes':['id',_0x070e('0x3'),_0x070e('0x4'),_0x070e('0x5'),_0x070e('0x6'),'online',_0x070e('0x7'),'pauseType',_0x070e('0x8'),'voicePause','phone','mobile',_0x070e('0x9')]},'log':_0x070e('0x1')});};};exports[_0x070e('0xa')]=function(){return function(){return client[_0x070e('0x2')](_0x070e('0xb'),{'options':{'raw':!![],'where':{'role':_0x070e('0xc')},'attributes':['id',_0x070e('0x3'),'accountcode','internal']},'log':_0x070e('0xa')});};};exports[_0x070e('0xd')]=function(_0x12bb37,_0xb8d819,_0xa927a2){return client[_0x070e('0x2')](_0x070e('0xe'),{'body':{'type':_0xb8d819,'uniqueid':_0xa927a2},'options':{'where':{'id':_0x12bb37['id']}},'log':_0x070e('0xd')});};exports[_0x070e('0xf')]=function(_0x5bf079){return client[_0x070e('0x2')]('UnpauseUser',{'body':{},'options':{'where':{'id':_0x5bf079['id']}},'log':'savePause'});};exports[_0x070e('0x10')]=function(_0x56c7ba){return client['Request']('ShowUser',{'options':{'raw':![],'where':{'role':_0x070e('0x11'),'id':_0x56c7ba},'attributes':['id',_0x070e('0x3'),'email','accountcode',_0x070e('0x6'),_0x070e('0x12'),_0x070e('0x7'),_0x070e('0x13'),'lastPauseAt','voicePause',_0x070e('0x9')]},'log':_0x070e('0x10')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x569b=['UpdateVoiceAgentReport','../client','create'];(function(_0x2dafbe,_0x5d04de){var _0x58a45a=function(_0x50ac96){while(--_0x50ac96){_0x2dafbe['push'](_0x2dafbe['shift']());}};_0x58a45a(++_0x5d04de);}(_0x569b,0x100));var _0xb569=function(_0x1ccdf7,_0x215d5a){_0x1ccdf7=_0x1ccdf7-0x0;var _0x52a0ae=_0x569b[_0x1ccdf7];return _0x52a0ae;};'use strict';var client=require(_0xb569('0x0'));exports[_0xb569('0x1')]=function(_0x149da1){return client['Request']('CreateVoiceAgentReport',{'body':_0x149da1,'log':'CreateVoiceAgentReport'});};exports['update']=function(_0x358ce2,_0x36b6cf,_0x11b57e){return client['Request'](_0xb569('0x2'),{'body':_0x358ce2,'options':{'where':{'uniqueid':_0x36b6cf,'interface':_0x11b57e,'agentcomplete':!![]}},'log':_0xb569('0x2')});};
\ No newline at end of file
+var _0x878c=['Request','CreateVoiceAgentReport','update','UpdateVoiceAgentReport','../client'];(function(_0x59ee6f,_0x450239){var _0x4c0979=function(_0x565e92){while(--_0x565e92){_0x59ee6f['push'](_0x59ee6f['shift']());}};_0x4c0979(++_0x450239);}(_0x878c,0x180));var _0xc878=function(_0x534e1e,_0x222ed5){_0x534e1e=_0x534e1e-0x0;var _0x4d924a=_0x878c[_0x534e1e];return _0x4d924a;};'use strict';var client=require(_0xc878('0x0'));exports['create']=function(_0x5c9398){return client[_0xc878('0x1')]('CreateVoiceAgentReport',{'body':_0x5c9398,'log':_0xc878('0x2')});};exports[_0xc878('0x3')]=function(_0x529521,_0x3bf133,_0xdca85e){return client[_0xc878('0x1')](_0xc878('0x4'),{'body':_0x529521,'options':{'where':{'uniqueid':_0x3bf133,'interface':_0xdca85e,'agentcomplete':!![]}},'log':_0xc878('0x4')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb328=['outbound','startOf','day','YYYY-MM-DD\x20HH:mm:ss','duration','GetVoiceCallReports','moment','util','lodash','create','Request','CreateVoiceCallReport','merge','calleridnum','context','DOCUMENTATION','getVoiceCallReports','GetVoiceCallReport'];(function(_0x432682,_0x253044){var _0x463d05=function(_0xa73403){while(--_0xa73403){_0x432682['push'](_0x432682['shift']());}};_0x463d05(++_0x253044);}(_0xb328,0xba));var _0x8b32=function(_0x2f5742,_0x1d7dc1){_0x2f5742=_0x2f5742-0x0;var _0x50b577=_0xb328[_0x2f5742];return _0x50b577;};'use strict';var moment=require(_0x8b32('0x0'));var util=require(_0x8b32('0x1'));var _=require(_0x8b32('0x2'));var client=require('../client');exports[_0x8b32('0x3')]=function(_0x56e918){return client[_0x8b32('0x4')](_0x8b32('0x5'),{'body':_[_0x8b32('0x6')](_0x56e918,{'source':_0x56e918[_0x8b32('0x7')],'destinationcontext':_0x56e918[_0x8b32('0x8')],'callerid':_0x56e918['callerid'],'amaflags':_0x8b32('0x9')}),'log':_0x8b32('0x5')});};exports[_0x8b32('0xa')]=function(){return function(){return client[_0x8b32('0x4')](_0x8b32('0xb'),{'options':{'where':{'type':[_0x8b32('0xc')],'createdAt':{'$between':[moment()[_0x8b32('0xd')](_0x8b32('0xe'))['format'](_0x8b32('0xf')),moment()['endOf'](_0x8b32('0xe'))['format']('YYYY-MM-DD\x20HH:mm:ss')]}},'attributes':['type','disposition',_0x8b32('0x10'),'billableseconds']},'log':_0x8b32('0x11')});};};
\ No newline at end of file
+var _0xd166=['startOf','day','format','YYYY-MM-DD\x20HH:mm:ss','endOf','type','disposition','duration','GetVoiceCallReports','util','../client','create','Request','CreateVoiceCallReport','merge','calleridnum','context','callerid','GetVoiceCallReport','outbound'];(function(_0x2ce6ab,_0x4ef47d){var _0x197a53=function(_0x482ea1){while(--_0x482ea1){_0x2ce6ab['push'](_0x2ce6ab['shift']());}};_0x197a53(++_0x4ef47d);}(_0xd166,0x149));var _0x6d16=function(_0x535814,_0x5d189a){_0x535814=_0x535814-0x0;var _0x2de63b=_0xd166[_0x535814];return _0x2de63b;};'use strict';var moment=require('moment');var util=require(_0x6d16('0x0'));var _=require('lodash');var client=require(_0x6d16('0x1'));exports[_0x6d16('0x2')]=function(_0x27270c){return client[_0x6d16('0x3')](_0x6d16('0x4'),{'body':_[_0x6d16('0x5')](_0x27270c,{'source':_0x27270c[_0x6d16('0x6')],'destinationcontext':_0x27270c[_0x6d16('0x7')],'callerid':_0x27270c[_0x6d16('0x8')],'amaflags':'DOCUMENTATION'}),'log':_0x6d16('0x4')});};exports['getVoiceCallReports']=function(){return function(){return client[_0x6d16('0x3')](_0x6d16('0x9'),{'options':{'where':{'type':[_0x6d16('0xa')],'createdAt':{'$between':[moment()[_0x6d16('0xb')](_0x6d16('0xc'))[_0x6d16('0xd')](_0x6d16('0xe')),moment()[_0x6d16('0xf')](_0x6d16('0xc'))['format'](_0x6d16('0xe'))]}},'attributes':[_0x6d16('0x10'),_0x6d16('0x11'),_0x6d16('0x12'),'billableseconds']},'log':_0x6d16('0x13')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xedcd=['CreateVoiceDialReport'];(function(_0x59ee6f,_0x450239){var _0x4c0979=function(_0x565e92){while(--_0x565e92){_0x59ee6f['push'](_0x59ee6f['shift']());}};_0x4c0979(++_0x450239);}(_0xedcd,0x11c));var _0xdedc=function(_0x21afb4,_0x4daa5e){_0x21afb4=_0x21afb4-0x0;var _0x236d4f=_0xedcd[_0x21afb4];return _0x236d4f;};'use strict';var client=require('../client');exports['create']=function(_0x5a46c8){return client['Request']('CreateVoiceDialReport',{'body':_0x5a46c8,'log':_0xdedc('0x0')});};
\ No newline at end of file
+var _0x075c=['../client','create','CreateVoiceDialReport'];(function(_0x3a335a,_0x401d39){var _0x512716=function(_0x31f358){while(--_0x31f358){_0x3a335a['push'](_0x3a335a['shift']());}};_0x512716(++_0x401d39);}(_0x075c,0xc3));var _0xc075=function(_0x39e481,_0xb5d2f1){_0x39e481=_0x39e481-0x0;var _0x50c921=_0x075c[_0x39e481];return _0x50c921;};'use strict';var client=require(_0xc075('0x0'));exports[_0xc075('0x1')]=function(_0x2ae4ad){return client['Request'](_0xc075('0x2'),{'body':_0x2ae4ad,'log':_0xc075('0x2')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x263f=['exten','recordingFormat','../client','getVoiceExtensions','Request','GetVoiceExtension'];(function(_0x40a045,_0x516f0e){var _0x1a687c=function(_0x48c9fe){while(--_0x48c9fe){_0x40a045['push'](_0x40a045['shift']());}};_0x1a687c(++_0x516f0e);}(_0x263f,0x182));var _0xf263=function(_0x111267,_0x22e668){_0x111267=_0x111267-0x0;var _0x39d613=_0x263f[_0x111267];return _0x39d613;};'use strict';var client=require(_0xf263('0x0'));exports[_0xf263('0x1')]=function(){return function(){return client[_0xf263('0x2')](_0xf263('0x3'),{'options':{'raw':!![],'attributes':['id',_0xf263('0x4'),_0xf263('0x5')],'where':{'VoiceExtensionId':null}},'log':'getVoiceExtensions'});};};
\ No newline at end of file
+var _0xbee3=['getVoiceExtensions','exten','recordingFormat'];(function(_0x55107e,_0x210c83){var _0x118ef9=function(_0x3f5282){while(--_0x3f5282){_0x55107e['push'](_0x55107e['shift']());}};_0x118ef9(++_0x210c83);}(_0xbee3,0xd5));var _0x3bee=function(_0x4d81b2,_0x2d8647){_0x4d81b2=_0x4d81b2-0x0;var _0x9da74a=_0xbee3[_0x4d81b2];return _0x9da74a;};'use strict';var client=require('../client');exports[_0x3bee('0x0')]=function(){return function(){return client['Request']('GetVoiceExtension',{'options':{'raw':!![],'attributes':['id',_0x3bee('0x1'),_0x3bee('0x2')],'where':{'VoiceExtensionId':null}},'log':'getVoiceExtensions'});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3eeb=['dialNoSuchNumberRetryFrequency','dialDropRetryFrequency','dialAbandonedMaxRetry','dialAbandonedRetryFrequency','dialMachineMaxRetry','dialMachineRetryFrequency','dialAgentRejectMaxRetry','dialAgentRejectRetryFrequency','mandatoryDisposition','dialPredictiveIntervalMaxThreshold','dialPredictiveIntervalMinThreshold','Trunk','callerid','active','Pause','mandatoryDispositionPause','TrunkBackup','Interval','interval','getVoiceQueues','Request','name','acw','autopause','monitor_format','type','dialActive','dialLimitQueue','dialPowerLevel','dialPredictiveOptimization','dialPredictiveInterval','dialOriginateCallerIdName','dialOriginateCallerIdNumber','dialOriginateTimeout','dialQueueOptions','dialQueueTimeout','dialCongestionRetryFrequency','dialBusyMaxRetry','dialNoAnswerMaxRetry','dialNoAnswerRetryFrequency','dialTimezone','dialPrefix','dialAMDActive','dialAMDInitialSilence','dialAMDGreeting','dialAMDTotalAnalysisTime','dialAMDMinWordLength','dialAMDMaximumNumberOfWords','dialAMDSilenceThreshold','dialAMDMaximumWordLength','timeout','dialAgiAfterHangupClient','dialQueueProject2','dialRandomLastDigitCallerIdNumber','dialCutDigit','dialNoSuchNumberMaxRetry'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x3eeb,0xbb));var _0xb3ee=function(_0x501510,_0x61caa9){_0x501510=_0x501510-0x0;var _0x1e6ee5=_0x3eeb[_0x501510];return _0x1e6ee5;};'use strict';var client=require('../client');exports[_0xb3ee('0x0')]=function(){return function(){return client[_0xb3ee('0x1')]('GetVoiceQueue',{'options':{'raw':![],'attributes':['id',_0xb3ee('0x2'),_0xb3ee('0x3'),'acwTimeout',_0xb3ee('0x4'),_0xb3ee('0x5'),_0xb3ee('0x6'),_0xb3ee('0x7'),'dialMethod','dialLimitChannel',_0xb3ee('0x8'),_0xb3ee('0x9'),_0xb3ee('0xa'),'dialPredictiveOptimizationPercentage',_0xb3ee('0xb'),_0xb3ee('0xc'),_0xb3ee('0xd'),_0xb3ee('0xe'),_0xb3ee('0xf'),_0xb3ee('0x10'),'dialQueueProject','dialCongestionMaxRetry',_0xb3ee('0x11'),_0xb3ee('0x12'),'dialBusyRetryFrequency',_0xb3ee('0x13'),_0xb3ee('0x14'),'dialGlobalMaxRetry',_0xb3ee('0x15'),'dialGlobalInterval',_0xb3ee('0x16'),'dialCheckDuplicateType',_0xb3ee('0x17'),_0xb3ee('0x18'),_0xb3ee('0x19'),'dialAMDAfterGreetingSilence',_0xb3ee('0x1a'),_0xb3ee('0x1b'),'dialAMDBetweenWordsSilence',_0xb3ee('0x1c'),_0xb3ee('0x1d'),_0xb3ee('0x1e'),_0xb3ee('0x1f'),'dialRecallMeTimeout','dialRecallInQueue','dialOrderByScheduledAt','dialAgiAfterHangupAgent',_0xb3ee('0x20'),_0xb3ee('0x21'),_0xb3ee('0x5'),'strategy',_0xb3ee('0x22'),_0xb3ee('0x23'),_0xb3ee('0x24'),_0xb3ee('0x25'),'dialDropMaxRetry',_0xb3ee('0x26'),_0xb3ee('0x27'),_0xb3ee('0x28'),_0xb3ee('0x29'),_0xb3ee('0x2a'),_0xb3ee('0x2b'),_0xb3ee('0x2c'),_0xb3ee('0x2d'),_0xb3ee('0x2e'),_0xb3ee('0x2f')],'include':[{'model':_0xb3ee('0x30'),'as':_0xb3ee('0x30'),'attributes':['id','name',_0xb3ee('0x31'),_0xb3ee('0x32')]},{'model':_0xb3ee('0x33'),'as':_0xb3ee('0x34'),'attributes':['id',_0xb3ee('0x2')]},{'model':_0xb3ee('0x30'),'as':_0xb3ee('0x35'),'attributes':['id',_0xb3ee('0x2'),_0xb3ee('0x31'),_0xb3ee('0x32')]},{'model':_0xb3ee('0x36'),'as':'Interval','attributes':['id','name'],'include':[{'model':_0xb3ee('0x36'),'as':'Intervals','attributes':['id',_0xb3ee('0x2'),_0xb3ee('0x37')]}]}]},'log':_0xb3ee('0x0')});};};
\ No newline at end of file
+var _0x501f=['dialMethod','dialLimitChannel','dialLimitQueue','dialPowerLevel','dialPredictiveOptimization','dialOriginateCallerIdName','dialOriginateCallerIdNumber','dialOriginateTimeout','dialQueueOptions','dialQueueTimeout','dialQueueProject','dialCongestionMaxRetry','dialBusyMaxRetry','dialBusyRetryFrequency','dialTimezone','dialGlobalInterval','dialPrefix','dialCheckDuplicateType','dialAMDActive','dialAMDInitialSilence','dialAMDGreeting','dialAMDAfterGreetingSilence','dialAMDTotalAnalysisTime','dialAMDMinWordLength','dialAMDMaximumNumberOfWords','timeout','dialRecallMeTimeout','dialRecallInQueue','dialOrderByScheduledAt','dialAgiAfterHangupClient','monitor_format','strategy','dialRandomLastDigitCallerIdNumber','dialCutDigit','dialNoSuchNumberMaxRetry','dialNoSuchNumberRetryFrequency','dialDropMaxRetry','dialDropRetryFrequency','dialAbandonedMaxRetry','dialAbandonedRetryFrequency','dialMachineMaxRetry','dialMachineRetryFrequency','dialAgentRejectMaxRetry','mandatoryDisposition','dialPredictiveIntervalMaxThreshold','dialPredictiveIntervalMinThreshold','Trunk','callerid','active','TrunkBackup','Interval','Intervals','interval','../client','Request','GetVoiceQueue','name','acw','acwTimeout','autopause','dialActive'];(function(_0x430dfb,_0xc5f86c){var _0x21626e=function(_0x28a737){while(--_0x28a737){_0x430dfb['push'](_0x430dfb['shift']());}};_0x21626e(++_0xc5f86c);}(_0x501f,0xec));var _0xf501=function(_0x2f3bed,_0x266b18){_0x2f3bed=_0x2f3bed-0x0;var _0x2ca8d4=_0x501f[_0x2f3bed];return _0x2ca8d4;};'use strict';var client=require(_0xf501('0x0'));exports['getVoiceQueues']=function(){return function(){return client[_0xf501('0x1')](_0xf501('0x2'),{'options':{'raw':![],'attributes':['id',_0xf501('0x3'),_0xf501('0x4'),_0xf501('0x5'),_0xf501('0x6'),'monitor_format','type',_0xf501('0x7'),_0xf501('0x8'),_0xf501('0x9'),_0xf501('0xa'),_0xf501('0xb'),_0xf501('0xc'),'dialPredictiveOptimizationPercentage','dialPredictiveInterval',_0xf501('0xd'),_0xf501('0xe'),_0xf501('0xf'),_0xf501('0x10'),_0xf501('0x11'),_0xf501('0x12'),_0xf501('0x13'),'dialCongestionRetryFrequency',_0xf501('0x14'),_0xf501('0x15'),'dialNoAnswerMaxRetry','dialNoAnswerRetryFrequency','dialGlobalMaxRetry',_0xf501('0x16'),_0xf501('0x17'),_0xf501('0x18'),_0xf501('0x19'),_0xf501('0x1a'),_0xf501('0x1b'),_0xf501('0x1c'),_0xf501('0x1d'),_0xf501('0x1e'),_0xf501('0x1f'),'dialAMDBetweenWordsSilence',_0xf501('0x20'),'dialAMDSilenceThreshold','dialAMDMaximumWordLength',_0xf501('0x21'),_0xf501('0x22'),_0xf501('0x23'),_0xf501('0x24'),'dialAgiAfterHangupAgent',_0xf501('0x25'),'dialQueueProject2',_0xf501('0x26'),_0xf501('0x27'),_0xf501('0x28'),_0xf501('0x29'),_0xf501('0x2a'),_0xf501('0x2b'),_0xf501('0x2c'),_0xf501('0x2d'),_0xf501('0x2e'),_0xf501('0x2f'),_0xf501('0x30'),_0xf501('0x31'),_0xf501('0x32'),'dialAgentRejectRetryFrequency',_0xf501('0x33'),_0xf501('0x34'),_0xf501('0x35')],'include':[{'model':_0xf501('0x36'),'as':_0xf501('0x36'),'attributes':['id',_0xf501('0x3'),_0xf501('0x37'),_0xf501('0x38')]},{'model':'Pause','as':'mandatoryDispositionPause','attributes':['id',_0xf501('0x3')]},{'model':'Trunk','as':_0xf501('0x39'),'attributes':['id',_0xf501('0x3'),'callerid','active']},{'model':_0xf501('0x3a'),'as':_0xf501('0x3a'),'attributes':['id',_0xf501('0x3')],'include':[{'model':_0xf501('0x3a'),'as':_0xf501('0x3b'),'attributes':['id',_0xf501('0x3'),_0xf501('0x3c')]}]}]},'log':'getVoiceQueues'});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['queuecallerexit','queuecallerexitAt','moment','lodash','../client','Request','CreateVoiceQueueReport','getVoiceQueueReports','GetVoiceQueueReport','startOf','format','YYYY-MM-DD\x20HH:mm:ss','endOf','queuecallerjoinAt','queuecallerleaveAt','queuecallercomplete','queuecallercompleteAt'];(function(_0x46cb0b,_0x3ea80e){var _0x212467=function(_0x18bcfe){while(--_0x18bcfe){_0x46cb0b['push'](_0x46cb0b['shift']());}};_0x212467(++_0x3ea80e);}(_0xa9e0,0x123));var _0x0a9e=function(_0xbe200f,_0x4b50eb){_0xbe200f=_0xbe200f-0x0;var _0x192597=_0xa9e0[_0xbe200f];return _0x192597;};'use strict';var moment=require(_0x0a9e('0x0'));var _=require(_0x0a9e('0x1'));var client=require(_0x0a9e('0x2'));exports['create']=function(_0x550fbc){return client[_0x0a9e('0x3')]('CreateVoiceQueueReport',{'body':_0x550fbc,'log':_0x0a9e('0x4')});};exports[_0x0a9e('0x5')]=function(){return function(){return client[_0x0a9e('0x3')](_0x0a9e('0x6'),{'options':{'where':{'createdAt':{'$between':[moment()[_0x0a9e('0x7')]('day')[_0x0a9e('0x8')](_0x0a9e('0x9')),moment()[_0x0a9e('0xa')]('day')['format'](_0x0a9e('0x9'))]}},'attributes':['uniqueid','queue',_0x0a9e('0xb'),_0x0a9e('0xc'),_0x0a9e('0xd'),_0x0a9e('0xe'),_0x0a9e('0xf'),_0x0a9e('0x10'),'queuecallerabandon','queuecallerabandonAt']},'log':'GetVoiceQueueReports'});};};
\ No newline at end of file
+var _0xa9e0=['queuecallerexit','queuecallerexitAt','moment','lodash','../client','Request','CreateVoiceQueueReport','getVoiceQueueReports','GetVoiceQueueReport','startOf','format','YYYY-MM-DD\x20HH:mm:ss','endOf','queuecallerjoinAt','queuecallerleaveAt','queuecallercomplete','queuecallercompleteAt'];(function(_0x2b07e5,_0x299692){var _0x564e68=function(_0x1511f6){while(--_0x1511f6){_0x2b07e5['push'](_0x2b07e5['shift']());}};_0x564e68(++_0x299692);}(_0xa9e0,0x123));var _0x0a9e=function(_0x45e98e,_0x169b60){_0x45e98e=_0x45e98e-0x0;var _0x374dba=_0xa9e0[_0x45e98e];return _0x374dba;};'use strict';var moment=require(_0x0a9e('0x0'));var _=require(_0x0a9e('0x1'));var client=require(_0x0a9e('0x2'));exports['create']=function(_0x550fbc){return client[_0x0a9e('0x3')]('CreateVoiceQueueReport',{'body':_0x550fbc,'log':_0x0a9e('0x4')});};exports[_0x0a9e('0x5')]=function(){return function(){return client[_0x0a9e('0x3')](_0x0a9e('0x6'),{'options':{'where':{'createdAt':{'$between':[moment()[_0x0a9e('0x7')]('day')[_0x0a9e('0x8')](_0x0a9e('0x9')),moment()[_0x0a9e('0xa')]('day')['format'](_0x0a9e('0x9'))]}},'attributes':['uniqueid','queue',_0x0a9e('0xb'),_0x0a9e('0xc'),_0x0a9e('0xd'),_0x0a9e('0xe'),_0x0a9e('0xf'),_0x0a9e('0x10'),'queuecallerabandon','queuecallerabandonAt']},'log':'GetVoiceQueueReports'});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x29b4=['../client','getVoiceQueueRtPauses','GetVoiceQueueRtPauses'];(function(_0x33aae2,_0x58c8f0){var _0x3a65d7=function(_0x30cfa3){while(--_0x30cfa3){_0x33aae2['push'](_0x33aae2['shift']());}};_0x3a65d7(++_0x58c8f0);}(_0x29b4,0x153));var _0x429b=function(_0x4e0991,_0x47b35d){_0x4e0991=_0x4e0991-0x0;var _0x505544=_0x29b4[_0x4e0991];return _0x505544;};'use strict';var client=require(_0x429b('0x0'));exports[_0x429b('0x1')]=function(_0x59ec4f){return function(){return client['Request'](_0x429b('0x2'),{'options':{'where':{'VoiceQueueId':_0x59ec4f,'paused':!![]},'raw':!![]},'log':_0x429b('0x1')});};};
\ No newline at end of file
+var _0x576e=['GetVoiceQueueRtPauses','getVoiceQueueRtPauses','Request'];(function(_0x49a679,_0x4d42b3){var _0x45b471=function(_0x38e083){while(--_0x38e083){_0x49a679['push'](_0x49a679['shift']());}};_0x45b471(++_0x4d42b3);}(_0x576e,0xa0));var _0xe576=function(_0x51b0dc,_0x5307b7){_0x51b0dc=_0x51b0dc-0x0;var _0x13fa89=_0x576e[_0x51b0dc];return _0x13fa89;};'use strict';var client=require('../client');exports[_0xe576('0x0')]=function(_0x2448b7){return function(){return client[_0xe576('0x1')](_0xe576('0x2'),{'options':{'where':{'VoiceQueueId':_0x2448b7,'paused':!![]},'raw':!![]},'log':_0xe576('0x0')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9957=['CreateVoiceRecording','merge','monitorFilename','lodash','../client','create'];(function(_0x3970e9,_0x73f319){var _0x2239fe=function(_0x36c844){while(--_0x36c844){_0x3970e9['push'](_0x3970e9['shift']());}};_0x2239fe(++_0x73f319);}(_0x9957,0x93));var _0x7995=function(_0x1facfa,_0x1acf7d){_0x1facfa=_0x1facfa-0x0;var _0x9ec701=_0x9957[_0x1facfa];return _0x9ec701;};'use strict';var _=require(_0x7995('0x0'));var client=require(_0x7995('0x1'));exports[_0x7995('0x2')]=function(_0x10a05d){return client['Request'](_0x7995('0x3'),{'body':_[_0x7995('0x4')](_0x10a05d,{'value':_0x10a05d[_0x7995('0x5')]}),'log':_0x7995('0x3')});};
\ No newline at end of file
+var _0x9957=['CreateVoiceRecording','merge','monitorFilename','lodash','../client','create'];(function(_0x1b57e2,_0x531aaa){var _0x5bf979=function(_0x115d40){while(--_0x115d40){_0x1b57e2['push'](_0x1b57e2['shift']());}};_0x5bf979(++_0x531aaa);}(_0x9957,0x93));var _0x7995=function(_0x1facfa,_0x1acf7d){_0x1facfa=_0x1facfa-0x0;var _0x9ec701=_0x9957[_0x1facfa];return _0x9ec701;};'use strict';var _=require(_0x7995('0x0'));var client=require(_0x7995('0x1'));exports[_0x7995('0x2')]=function(_0x10a05d){return client['Request'](_0x7995('0x3'),{'body':_[_0x7995('0x4')](_0x10a05d,{'value':_0x10a05d[_0x7995('0x5')]}),'log':_0x7995('0x3')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x807e=['transfererchannel','transferercalleridnum','transfererconnectedlinenum','transfererconnectedlinename','transfererexten','transfererlinkedid','transfereecalleridnum','transfereeconnectedlinenum','transfereeconnectedlinename','transfereeaccountcode','transfereecontext','transfereelinkedid','isexternal','context','extension','attendedTransfer','result','origtransferercalleridnum','origtransferercalleridname','secondtransfererconnectedlinenum','secondtransfererconnectedlinename','secondtransfererexten','origtransfererlinkedid','transfertargetcalleridnum','transfertargetcalleridname','transfertargetconnectedlinenum','transfertargetconnectedlinename','transfertargetaccountcode','transfertargetcontext','transfertargetexten','transfertargetlinkedid','origtransferercontext','origtransfererexten','CreateVoiceTransferReport'];(function(_0x2d02c4,_0x44e908){var _0x1eac81=function(_0x7eb31d){while(--_0x7eb31d){_0x2d02c4['push'](_0x2d02c4['shift']());}};_0x1eac81(++_0x44e908);}(_0x807e,0x10f));var _0xe807=function(_0x29080a,_0x3ec29f){_0x29080a=_0x29080a-0x0;var _0x5e5585=_0x807e[_0x29080a];return _0x5e5585;};'use strict';var client=require('../client');exports['transfers']={};exports['blindTransfer']=function(_0x2bb589){return client['Request'](_0xe807('0x0'),{'body':{'result':_0x2bb589['result'],'transfererchannel':_0x2bb589[_0xe807('0x1')],'transferercalleridnum':_0x2bb589[_0xe807('0x2')],'transferercalleridname':_0x2bb589['transferercalleridname'],'transfererconnectedlinenum':_0x2bb589[_0xe807('0x3')],'transfererconnectedlinename':_0x2bb589[_0xe807('0x4')],'transfereraccountcode':_0x2bb589['transfereraccountcode'],'transferercontext':_0x2bb589['transferercontext'],'transfererexten':_0x2bb589[_0xe807('0x5')],'transfererlinkedid':_0x2bb589[_0xe807('0x6')],'transfereechannel':_0x2bb589['transfereechannel'],'transfereecalleridnum':_0x2bb589[_0xe807('0x7')],'transfereecalleridname':_0x2bb589['transfereecalleridname'],'transfereeconnectedlinenum':_0x2bb589[_0xe807('0x8')],'transfereeconnectedlinename':_0x2bb589[_0xe807('0x9')],'transfereeaccountcode':_0x2bb589[_0xe807('0xa')],'transfereecontext':_0x2bb589[_0xe807('0xb')],'transfereeexten':_0x2bb589['transfereeexten'],'transfereelinkedid':_0x2bb589[_0xe807('0xc')],'isexternal':_0x2bb589[_0xe807('0xd')],'context':_0x2bb589[_0xe807('0xe')],'extension':_0x2bb589[_0xe807('0xf')],'type':'blind'},'log':_0xe807('0x0')});};exports[_0xe807('0x10')]=function(_0x41ce47){return client['Request'](_0xe807('0x0'),{'body':{'result':_0x41ce47[_0xe807('0x11')],'transfererchannel':_0x41ce47['origtransfererchannel'],'transferercalleridnum':_0x41ce47[_0xe807('0x12')],'transferercalleridname':_0x41ce47[_0xe807('0x13')],'transfererconnectedlinenum':_0x41ce47[_0xe807('0x14')],'transfererconnectedlinename':_0x41ce47[_0xe807('0x15')],'transfereraccountcode':_0x41ce47['origtransfereraccountcode'],'transferercontext':_0x41ce47['secondtransferercontext'],'transfererexten':_0x41ce47[_0xe807('0x16')],'transfererlinkedid':_0x41ce47[_0xe807('0x17')],'transfereechannel':_0x41ce47['transfertargetchannel'],'transfereecalleridnum':_0x41ce47[_0xe807('0x18')],'transfereecalleridname':_0x41ce47[_0xe807('0x19')],'transfereeconnectedlinenum':_0x41ce47[_0xe807('0x1a')],'transfereeconnectedlinename':_0x41ce47[_0xe807('0x1b')],'transfereeaccountcode':_0x41ce47[_0xe807('0x1c')],'transfereecontext':_0x41ce47[_0xe807('0x1d')],'transfereeexten':_0x41ce47[_0xe807('0x1e')],'transfereelinkedid':_0x41ce47[_0xe807('0x1f')],'isexternal':_0x41ce47[_0xe807('0xd')],'context':_0x41ce47[_0xe807('0x20')],'extension':_0x41ce47[_0xe807('0x21')],'type':'attended'},'log':_0xe807('0x0')});};
\ No newline at end of file
+var _0x8e99=['secondtransferercontext','secondtransfererexten','origtransfererlinkedid','transfertargetcalleridname','transfertargetconnectedlinename','transfertargetaccountcode','isexternal','origtransferercontext','origtransfererexten','attended','../client','transfers','blindTransfer','Request','CreateVoiceTransferReport','result','transfererchannel','transferercalleridnum','transferercalleridname','transfererconnectedlinenum','transferercontext','transfererexten','transfererlinkedid','transfereechannel','transfereecalleridnum','transfereeconnectedlinenum','transfereeconnectedlinename','transfereecontext','transfereeexten','transfereelinkedid','context','extension','attendedTransfer','origtransferercalleridnum','origtransferercalleridname','secondtransfererconnectedlinenum','secondtransfererconnectedlinename','origtransfereraccountcode'];(function(_0x4617be,_0x17df97){var _0x365795=function(_0x2beab7){while(--_0x2beab7){_0x4617be['push'](_0x4617be['shift']());}};_0x365795(++_0x17df97);}(_0x8e99,0x7c));var _0x98e9=function(_0x25146c,_0x5ecbd8){_0x25146c=_0x25146c-0x0;var _0x3f00a0=_0x8e99[_0x25146c];return _0x3f00a0;};'use strict';var client=require(_0x98e9('0x0'));exports[_0x98e9('0x1')]={};exports[_0x98e9('0x2')]=function(_0x4ac0c4){return client[_0x98e9('0x3')](_0x98e9('0x4'),{'body':{'result':_0x4ac0c4[_0x98e9('0x5')],'transfererchannel':_0x4ac0c4[_0x98e9('0x6')],'transferercalleridnum':_0x4ac0c4[_0x98e9('0x7')],'transferercalleridname':_0x4ac0c4[_0x98e9('0x8')],'transfererconnectedlinenum':_0x4ac0c4[_0x98e9('0x9')],'transfererconnectedlinename':_0x4ac0c4['transfererconnectedlinename'],'transfereraccountcode':_0x4ac0c4['transfereraccountcode'],'transferercontext':_0x4ac0c4[_0x98e9('0xa')],'transfererexten':_0x4ac0c4[_0x98e9('0xb')],'transfererlinkedid':_0x4ac0c4[_0x98e9('0xc')],'transfereechannel':_0x4ac0c4[_0x98e9('0xd')],'transfereecalleridnum':_0x4ac0c4[_0x98e9('0xe')],'transfereecalleridname':_0x4ac0c4['transfereecalleridname'],'transfereeconnectedlinenum':_0x4ac0c4[_0x98e9('0xf')],'transfereeconnectedlinename':_0x4ac0c4[_0x98e9('0x10')],'transfereeaccountcode':_0x4ac0c4['transfereeaccountcode'],'transfereecontext':_0x4ac0c4[_0x98e9('0x11')],'transfereeexten':_0x4ac0c4[_0x98e9('0x12')],'transfereelinkedid':_0x4ac0c4[_0x98e9('0x13')],'isexternal':_0x4ac0c4['isexternal'],'context':_0x4ac0c4[_0x98e9('0x14')],'extension':_0x4ac0c4[_0x98e9('0x15')],'type':'blind'},'log':_0x98e9('0x4')});};exports[_0x98e9('0x16')]=function(_0x52d165){return client['Request'](_0x98e9('0x4'),{'body':{'result':_0x52d165[_0x98e9('0x5')],'transfererchannel':_0x52d165['origtransfererchannel'],'transferercalleridnum':_0x52d165[_0x98e9('0x17')],'transferercalleridname':_0x52d165[_0x98e9('0x18')],'transfererconnectedlinenum':_0x52d165[_0x98e9('0x19')],'transfererconnectedlinename':_0x52d165[_0x98e9('0x1a')],'transfereraccountcode':_0x52d165[_0x98e9('0x1b')],'transferercontext':_0x52d165[_0x98e9('0x1c')],'transfererexten':_0x52d165[_0x98e9('0x1d')],'transfererlinkedid':_0x52d165[_0x98e9('0x1e')],'transfereechannel':_0x52d165['transfertargetchannel'],'transfereecalleridnum':_0x52d165['transfertargetcalleridnum'],'transfereecalleridname':_0x52d165[_0x98e9('0x1f')],'transfereeconnectedlinenum':_0x52d165['transfertargetconnectedlinenum'],'transfereeconnectedlinename':_0x52d165[_0x98e9('0x20')],'transfereeaccountcode':_0x52d165[_0x98e9('0x21')],'transfereecontext':_0x52d165['transfertargetcontext'],'transfereeexten':_0x52d165['transfertargetexten'],'transfereelinkedid':_0x52d165['transfertargetlinkedid'],'isexternal':_0x52d165[_0x98e9('0x22')],'context':_0x52d165[_0x98e9('0x23')],'extension':_0x52d165[_0x98e9('0x24')],'type':_0x98e9('0x25')},'log':'CreateVoiceTransferReport'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4873=['erlangBusyFactor','startPredictive','startProgressive','Trunk','active','callerid','Interval','push','length','find','omit','undefined','values','channels','voicechannel','map','channel','%s.%s','filename','uniqueid','MixMonitor','ai(mixmonitorid)','monitors','/var/spool/asterisk/monitor/','toLowerCase','isNil','YYYY-MM-DD\x20HH:mm:ss','mixmonitorid','rec','status','MixMonitor\x20Success','Channel\x20doesn\x27t\x20exist','ami\x20disconnected','validate','resolve','StopMixMonitor','stop','StopMixMonitor\x20Success','queueChannels','voicequeuechannel','voicequeuechannelhangup','Hangup','voicequeuechannelredirect','Redirect','exten','context','trunks','outboundChannels','campaigns','event','Event\x20name\x20mandatory','emit','custom:','faxAccounts','send','checkAfterSend','server','http','127.0.0.1','log','AMI\x20RPC\x20server\x20listening\x20on\x20127.0.0.1:%d!','RPC\x20listening\x20on\x20port:','lodash','util','jayson/promise','bluebird','../properties','../ami','listen','format','SIP','timers','updateAcw','agents','QueuePause','isConnected','asterisk','username','join','pick','keys','module','action','Reload','Action','then','message','catch','error','command','Command','content','voiceQueues','hasOwnProperty','name','strategy','answered','available','loggedIn','pTalking','sumBillable','sumDuration','sumHoldTime','talking','total','abandoned','waiting','type','outbound','dialMethod','dialOriginateCallerIdName','dialOriginateCallerIdNumber','dialPrefix','outboundAnswerAgiCallsDay','outboundAnswerCallsDay','outboundBlacklistCallsDay','outboundBusyCallsDay','outboundCongestionCallsDay','outboundDropCallsDayACS','outboundDropCallsDayCallersExit','outboundDropCallsDayTimeout','outboundNoAnswerCallsDay','outboundNoSuchCallsDay','outboundOriginateFailureCallsDay','outboundReCallsDay','outboundRejectCallsDay','outboundUnknownCallsDay','predictiveIntervalAnsweredCalls','predictiveIntervalAvgHoldtime','predictiveIntervalDroppedCallsCallersExit','predictiveIntervalDroppedCallsTimeout','predictiveIntervalErlangCalls','predictiveIntervalErlangCallsDroppedCalls','predictiveIntervalHitRate','predictiveIntervalMultiplicativeFactor','predictiveIntervalPauses','predictiveIntervalAvailable','originated','erlangCallToSecond'];(function(_0x3818c0,_0x542521){var _0x55ec33=function(_0x2be9ea){while(--_0x2be9ea){_0x3818c0['push'](_0x3818c0['shift']());}};_0x55ec33(++_0x542521);}(_0x4873,0x1df));var _0x3487=function(_0x31f0c2,_0x41da71){_0x31f0c2=_0x31f0c2-0x0;var _0x4a94b9=_0x4873[_0x31f0c2];return _0x4a94b9;};'use strict';var _=require(_0x3487('0x0'));var util=require(_0x3487('0x1'));var jayson=require(_0x3487('0x2'));var schema=require('validate');var BPromise=require(_0x3487('0x3'));var moment=require('moment');var config=require('../../../config/environment');var properties=require(_0x3487('0x4'));var ami=require(_0x3487('0x5'));exports[_0x3487('0x6')]=function(_0x1d6d6c,_0x2fc292,_0xbe12a4){return new BPromise(function(_0x2611dc,_0x193589){var _0x4a2407={'QueuePause':function(_0x1d4cae){return new Promise(function(_0x3df081,_0x1d0487){var _0x3be031=util[_0x3487('0x7')]('%s/%s',_0x3487('0x8'),_0x1d4cae['name']);if(_0x1d6d6c[_0x3487('0x9')]&&_0x1d6d6c[_0x3487('0x9')][_0x3be031]&&_0x1d6d6c['timers'][_0x3be031]['timer']){_0x1d6d6c[_0x3487('0x9')][_0x3be031][_0x3487('0xa')]();}if(_0x1d6d6c['agents'][_0x3be031]){_0x1d6d6c[_0x3487('0xb')][_0x3be031]['updateStatusRealtime']({'statePause':_0x1d4cae['pause']?!![]:![]});}_0x3df081({'code':0xc8,'message':_0x3487('0xc')});});},'Reload':function(_0x1be2e0){var _0x3883c7=this;return new Promise(function(_0x3033b3,_0x8d7a3c){if(ami[_0x3487('0xd')]()==![]){return _0x8d7a3c(_0x3883c7['error'](0x1f4,[config[_0x3487('0xe')]['ip'],config[_0x3487('0xe')][_0x3487('0xf')],'ami\x20disconnected'][_0x3487('0x10')]('\x20')));}_0x1be2e0=_[_0x3487('0x11')](_0x1be2e0,_[_0x3487('0x12')](properties[_0x3487('0x13')]));_0x1be2e0[_0x3487('0x14')]=_0x3487('0x15');return ami[_0x3487('0x16')](_0x1be2e0)[_0x3487('0x17')](function(_0x320894){_0x3033b3({'code':0xc8,'message':_0x320894[_0x3487('0x18')]});})[_0x3487('0x19')](function(_0x41795b){_0x8d7a3c(_0x3883c7[_0x3487('0x1a')](0x1f5,_0x41795b[_0x3487('0x18')]));});});},'Command':function(_0x56f282){var _0x320349=this;return new Promise(function(_0x594ff6,_0x2fd2e8){if(ami[_0x3487('0xd')]()==![]){return _0x2fd2e8(_0x320349[_0x3487('0x1a')](0x1f4,[config[_0x3487('0xe')]['ip'],config[_0x3487('0xe')][_0x3487('0xf')],'ami\x20disconnected'][_0x3487('0x10')]('\x20')));}_0x56f282=_[_0x3487('0x11')](_0x56f282,_0x3487('0x1b'));_0x56f282[_0x3487('0x14')]=_0x3487('0x1c');return ami[_0x3487('0x16')](_0x56f282)['then'](function(_0x384792){_0x594ff6({'code':0xc8,'message':_0x384792[_0x3487('0x1d')]});})[_0x3487('0x19')](function(_0x482551){_0x2fd2e8(_0x320349['error'](0x1f5,_0x482551[_0x3487('0x18')]));});});},'VoiceQueues':function(_0x20be9a){return new Promise(function(_0x2a0b57,_0x3a9d76){var _0x4c6882=[];for(var _0x79a183 in _0x1d6d6c[_0x3487('0x1e')]){if(_0x1d6d6c['voiceQueues'][_0x3487('0x1f')](_0x79a183)){var _0x3fb245=_0x1d6d6c['voiceQueues'][_0x79a183];var _0x59968f={'id':_0x3fb245['id'],'name':_0x3fb245[_0x3487('0x20')],'strategy':_0x3fb245[_0x3487('0x21')],'answered':_0x3fb245[_0x3487('0x22')],'available':_0x3fb245[_0x3487('0x23')],'loggedIn':_0x3fb245[_0x3487('0x24')],'pTalking':_0x3fb245[_0x3487('0x25')],'sumBillable':_0x3fb245[_0x3487('0x26')],'sumDuration':_0x3fb245[_0x3487('0x27')],'sumHoldTime':_0x3fb245[_0x3487('0x28')]||0x0,'talking':_0x3fb245[_0x3487('0x29')],'total':_0x3fb245[_0x3487('0x2a')],'type':_0x3fb245['type'],'unmanaged':_0x3fb245['unmanaged'],'abandoned':_0x3fb245[_0x3487('0x2b')],'waiting':_0x3fb245[_0x3487('0x2c')],'loggedInDb':_0x3fb245['loggedInDb']};if(_0x3fb245[_0x3487('0x2d')]===_0x3487('0x2e')){_0x59968f['dialActive']=_0x3fb245['dialActive'];_0x59968f[_0x3487('0x2f')]=_0x3fb245[_0x3487('0x2f')];_0x59968f[_0x3487('0x30')]=_0x3fb245['dialOriginateCallerIdName'];_0x59968f[_0x3487('0x31')]=_0x3fb245['dialOriginateCallerIdNumber'];_0x59968f['dialOriginateTimeout']=_0x3fb245['dialOriginateTimeout'];_0x59968f[_0x3487('0x32')]=_0x3fb245[_0x3487('0x32')];_0x59968f['temp']=_0x3fb245['temp'];_0x59968f[_0x3487('0x33')]=_0x3fb245['outboundAnswerAgiCallsDay'];_0x59968f['outboundAnswerCallsDay']=_0x3fb245[_0x3487('0x34')];_0x59968f[_0x3487('0x35')]=_0x3fb245[_0x3487('0x35')];_0x59968f['outboundBusyCallsDay']=_0x3fb245[_0x3487('0x36')];_0x59968f[_0x3487('0x37')]=_0x3fb245[_0x3487('0x37')];_0x59968f[_0x3487('0x38')]=_0x3fb245['outboundDropCallsDayACS'];_0x59968f[_0x3487('0x39')]=_0x3fb245[_0x3487('0x39')];_0x59968f['outboundDropCallsDayTimeout']=_0x3fb245[_0x3487('0x3a')];_0x59968f[_0x3487('0x3b')]=_0x3fb245[_0x3487('0x3b')];_0x59968f[_0x3487('0x3c')]=_0x3fb245[_0x3487('0x3c')];_0x59968f[_0x3487('0x3d')]=_0x3fb245[_0x3487('0x3d')];_0x59968f[_0x3487('0x3e')]=_0x3fb245[_0x3487('0x3e')];_0x59968f['outboundRejectCallsDay']=_0x3fb245[_0x3487('0x3f')];_0x59968f[_0x3487('0x40')]=_0x3fb245['outboundUnknownCallsDay'];_0x59968f['predictiveIntervalAnsweredCalls']=_0x3fb245[_0x3487('0x41')];_0x59968f[_0x3487('0x42')]=_0x3fb245[_0x3487('0x42')];_0x59968f['predictiveIntervalAvgTalktime']=_0x3fb245['predictiveIntervalAvgTalktime'];_0x59968f['predictiveIntervalDroppedCallsCallersExit']=_0x3fb245[_0x3487('0x43')];_0x59968f[_0x3487('0x44')]=_0x3fb245['predictiveIntervalDroppedCallsTimeout'];_0x59968f[_0x3487('0x45')]=_0x3fb245[_0x3487('0x45')];_0x59968f[_0x3487('0x46')]=_0x3fb245[_0x3487('0x46')];_0x59968f[_0x3487('0x47')]=_0x3fb245[_0x3487('0x47')];_0x59968f[_0x3487('0x48')]=_0x3fb245[_0x3487('0x48')];_0x59968f[_0x3487('0x49')]=_0x3fb245['predictiveIntervalPauses'];_0x59968f[_0x3487('0x4a')]=_0x3fb245[_0x3487('0x4a')];_0x59968f['predictiveIntervalTotalCalls']=_0x3fb245['predictiveIntervalTotalCalls'];_0x59968f[_0x3487('0x18')]=_0x3fb245['message'];_0x59968f['originated']=_0x3fb245[_0x3487('0x4b')];_0x59968f['erlangCalls']=_0x3fb245['erlangCalls'];_0x59968f[_0x3487('0x4c')]=_0x3fb245[_0x3487('0x4c')];_0x59968f['erlangAbandonmentRate']=_0x3fb245['erlangAbandonmentRate'];_0x59968f[_0x3487('0x4d')]=_0x3fb245[_0x3487('0x4d')];_0x59968f['startPredictive']=_0x3fb245[_0x3487('0x4e')];_0x59968f[_0x3487('0x4f')]=_0x3fb245['startProgressive'];}if(_0x3fb245[_0x3487('0x50')]){_0x59968f[_0x3487('0x50')]={'id':_0x3fb245[_0x3487('0x50')]['id'],'name':_0x3fb245['Trunk'][_0x3487('0x20')],'active':_0x3fb245[_0x3487('0x50')][_0x3487('0x51')],'callerid':_0x3fb245[_0x3487('0x50')][_0x3487('0x52')]};}if(_0x3fb245[_0x3487('0x53')]){_0x59968f[_0x3487('0x53')]={'id':_0x3fb245[_0x3487('0x53')]['id'],'name':_0x3fb245['Interval'][_0x3487('0x20')]};}_0x4c6882[_0x3487('0x54')](_0x59968f);}}_0x2a0b57({'count':_0x4c6882[_0x3487('0x55')],'rows':_0x4c6882});});},'UpdateVoiceQueue':function(_0x2795f3){return new Promise(function(_0x3315da,_0x31e766){var _0x324ebb=_[_0x3487('0x56')](_0x1d6d6c['voiceQueues'],{'id':parseInt(_0x2795f3['id'])});var _0x59f0fa=_[_0x3487('0x57')](_0x2795f3,['id']);if(_0x324ebb){for(var _0x32ddbb in _0x59f0fa){if(typeof _0x59f0fa[_0x32ddbb]!==_0x3487('0x58')&&typeof _0x324ebb[_0x32ddbb]!==_0x3487('0x58')){_0x324ebb[_0x32ddbb]=_0x59f0fa[_0x32ddbb];}}_0x3315da(_0x324ebb);}else{_0x31e766();}});},'VoiceChannels':function(_0x5bff36){return new Promise(function(_0x50b81c,_0x1f373b){var _0x122456=_[_0x3487('0x59')](_0x1d6d6c[_0x3487('0x5a')]);_0x50b81c({'count':_0x122456[_0x3487('0x55')],'rows':_0x122456});});},'VoiceChannelMixMonitor':function(_0x3f46af){var _0x357670=this;return new Promise(function(_0x1cac2c,_0x515e68){if(ami['isConnected']()==![]){return _0x515e68(_0x357670[_0x3487('0x1a')](0x1f4,[config[_0x3487('0xe')]['ip'],config['asterisk'][_0x3487('0xf')],'ami\x20disconnected']['join']('\x20')));}var _0x12ebfc=schema(properties[_0x3487('0x5b')])['validate'](_0x3f46af);if(_0x12ebfc[_0x3487('0x55')]>0x0){return _0x515e68(_0x357670[_0x3487('0x1a')](0x1f4,_[_0x3487('0x5c')](_0x12ebfc,'message')[_0x3487('0x10')](',\x20')));}var _0x56b3fa=_[_0x3487('0x56')](_0x1d6d6c[_0x3487('0x5a')],{'uniqueid':_0x3f46af['uniqueid']});if(_0x56b3fa&&_0x56b3fa[_0x3487('0x5d')]){var _0xb6be79=util[_0x3487('0x7')](_0x3487('0x5e'),_0x3f46af[_0x3487('0x5f')]||_0x3f46af[_0x3487('0x60')],_0x3f46af[_0x3487('0x7')]||'wav');return ami[_0x3487('0x16')]({'action':_0x3487('0x61'),'channel':_0x56b3fa['channel'],'file':_0xb6be79,'options':_0x3487('0x62')})[_0x3487('0x17')](function(_0x3e03e4){var _0x36bae6=_[_0x3487('0x56')](_0x56b3fa[_0x3487('0x63')],{'filename':_0x3487('0x64')+_0xb6be79[_0x3487('0x65')]()});if(_[_0x3487('0x66')](_0x36bae6)){_0x56b3fa[_0x3487('0x63')]['push']({'filename':_0x3487('0x64')+_0xb6be79[_0x3487('0x65')](),'createdAt':moment()[_0x3487('0x7')](_0x3487('0x67')),'mixmonitorid':_0x3e03e4[_0x3487('0x68')],'status':_0x3487('0x69')});}else{_0x36bae6['mixmonitorid']=_0x3e03e4[_0x3487('0x68')];_0x36bae6[_0x3487('0x6a')]='rec';}_0x1cac2c({'code':0xc8,'message':[_0x3f46af['uniqueid'],_0x3487('0x6b'),_0x3e03e4[_0x3487('0x68')]][_0x3487('0x10')]('\x20'),'mixmonitorid':_0x3e03e4[_0x3487('0x68')]});})[_0x3487('0x19')](function(_0x24ce5b){_0x515e68(_0x357670['error'](0x1f5,[_0x3f46af['uniqueid'],_0x24ce5b[_0x3487('0x18')][_0x3487('0x65')]()]['join']('\x20')));});}else{return _0x515e68(_0x357670[_0x3487('0x1a')](0x1f5,_0x3487('0x6c')));}});},'VoiceChannelStopMixMonitor':function(_0x143d42){var _0x48c4ea=this;return new Promise(function(_0x43a4c5,_0xa278c6){if(ami['isConnected']()==![]){return _0xa278c6(_0x48c4ea['error'](0x1f4,[config[_0x3487('0xe')]['ip'],config[_0x3487('0xe')][_0x3487('0xf')],_0x3487('0x6d')]['join']('\x20')));}var _0x463d65=schema(properties[_0x3487('0x5b')])[_0x3487('0x6e')](_0x143d42);if(_0x463d65[_0x3487('0x55')]>0x0){return _0xa278c6(_0x48c4ea['error'](0x1f4,_['map'](_0x463d65,_0x3487('0x18'))['join'](',\x20')));}var _0x347a8c=_[_0x3487('0x56')](_0x1d6d6c[_0x3487('0x5a')],{'uniqueid':_0x143d42[_0x3487('0x60')]});if(_0x347a8c){return BPromise[_0x3487('0x6f')]()[_0x3487('0x17')](function(){if(_0x347a8c[_0x3487('0x5d')]){return ami[_0x3487('0x16')]({'action':_0x3487('0x70'),'channel':_0x347a8c[_0x3487('0x5d')],'mixmonitorid':_0x143d42[_0x3487('0x68')]})['catch'](function(_0x468064){});}})[_0x3487('0x17')](function(){if(_0x347a8c['destinationchannel']){return ami[_0x3487('0x16')]({'action':'StopMixMonitor','channel':_0x347a8c['destinationchannel'],'mixmonitorid':_0x143d42[_0x3487('0x68')]})[_0x3487('0x19')](function(_0x23a38a){});}})[_0x3487('0x17')](function(_0x3d47c3){var _0x2dcfd2=_[_0x3487('0x56')](_0x347a8c['monitors'],{'mixmonitorid':_0x143d42[_0x3487('0x68')]});if(_0x2dcfd2){_0x2dcfd2[_0x3487('0x6a')]=_0x3487('0x71');}})[_0x3487('0x17')](function(){var _0x1612e5=util[_0x3487('0x7')](_0x3487('0x5e'),_0x143d42[_0x3487('0x5f')]||_0x143d42[_0x3487('0x60')],_0x143d42[_0x3487('0x7')]||'wav');var _0x548e3e=_[_0x3487('0x56')](_0x347a8c['monitors'],{'filename':_0x3487('0x64')+_0x1612e5[_0x3487('0x65')]()});if(_0x548e3e){_0x548e3e[_0x3487('0x6a')]=_0x3487('0x71');}})['then'](function(){_0x43a4c5({'code':0xc8,'message':[_0x143d42[_0x3487('0x60')],_0x3487('0x72')][_0x3487('0x10')]('\x20')});})[_0x3487('0x19')](function(_0x11c4bf){_0xa278c6(_0x48c4ea[_0x3487('0x1a')](0x1f5,[_0x143d42['uniqueid'],_0x11c4bf[_0x3487('0x18')][_0x3487('0x65')]()]['join']('\x20')));});}else{return _0xa278c6(_0x48c4ea[_0x3487('0x1a')](0x1f5,_0x3487('0x6c')));}});},'VoiceQueuesChannels':function(_0xad8256){return new Promise(function(_0x459138,_0x379b7f){var _0x2daca0=_[_0x3487('0x59')](_0x1d6d6c[_0x3487('0x73')]);_0x459138({'count':_0x2daca0[_0x3487('0x55')],'rows':_0x2daca0});});},'VoiceQueuesChannel':function(_0x4180eb){var _0x5469ba=this;return new Promise(function(_0x14c921,_0x5d7d62){var _0x4b2992=schema(properties[_0x3487('0x74')])['validate'](_0x4180eb);if(_0x4b2992[_0x3487('0x55')]>0x0){return _0x5d7d62(_0x5469ba[_0x3487('0x1a')](0x1f4,_[_0x3487('0x5c')](_0x4b2992,'message')[_0x3487('0x10')](',\x20')));}var _0x2e3da3=_[_0x3487('0x56')](_0x1d6d6c['queueChannels'],{'uniqueid':_0x4180eb[_0x3487('0x60')]});if(_0x2e3da3){_0x14c921(_0x2e3da3);}else{return _0x5d7d62(_0x5469ba[_0x3487('0x1a')](0x1f5,_0x3487('0x6c')));}});},'VoiceQueuesChannelHangup':function(_0x5b7787){var _0x4bdd41=this;return new Promise(function(_0x168786,_0xd2e056){if(ami[_0x3487('0xd')]()==![]){return _0xd2e056(_0x4bdd41[_0x3487('0x1a')](0x1f4,[config[_0x3487('0xe')]['ip'],config[_0x3487('0xe')][_0x3487('0xf')],_0x3487('0x6d')][_0x3487('0x10')]('\x20')));}var _0xd482a=schema(properties[_0x3487('0x75')])[_0x3487('0x6e')](_0x5b7787);if(_0xd482a[_0x3487('0x55')]>0x0){return _0xd2e056(_0x4bdd41[_0x3487('0x1a')](0x1f4,_[_0x3487('0x5c')](_0xd482a,_0x3487('0x18'))[_0x3487('0x10')](',\x20')));}var _0x33ffb6=_[_0x3487('0x56')](_0x1d6d6c['queueChannels'],{'uniqueid':_0x5b7787[_0x3487('0x60')]});if(_0x33ffb6&&_0x33ffb6[_0x3487('0x5d')]){return ami[_0x3487('0x16')]({'action':_0x3487('0x76'),'channel':_0x33ffb6[_0x3487('0x5d')]})['then'](function(_0x4d97c9){_0x168786({'code':0xc8,'message':[_0x5b7787[_0x3487('0x60')],_0x4d97c9[_0x3487('0x18')][_0x3487('0x65')]()][_0x3487('0x10')]('\x20')});})[_0x3487('0x19')](function(_0x39b3d7){_0xd2e056(_0x4bdd41[_0x3487('0x1a')](0x1f5,[_0x5b7787['uniqueid'],_0x39b3d7[_0x3487('0x18')]['toLowerCase']()]['join']('\x20')));});}else{return _0xd2e056(_0x4bdd41[_0x3487('0x1a')](0x1f5,_0x3487('0x6c')));}});},'VoiceQueuesChannelRedirect':function(_0x457a78){var _0x44dc2f=this;return new Promise(function(_0x3adaa2,_0x19a455){if(ami[_0x3487('0xd')]()==![]){return _0x19a455(_0x44dc2f[_0x3487('0x1a')](0x1f4,[config[_0x3487('0xe')]['ip'],config[_0x3487('0xe')][_0x3487('0xf')],_0x3487('0x6d')][_0x3487('0x10')]('\x20')));}var _0x11d40c=schema(properties[_0x3487('0x77')])['validate'](_0x457a78);if(_0x11d40c[_0x3487('0x55')]>0x0){return _0x19a455(_0x44dc2f[_0x3487('0x1a')](0x1f4,_[_0x3487('0x5c')](_0x11d40c,_0x3487('0x18'))['join'](',\x20')));}var _0x530c6e=_['find'](_0x1d6d6c[_0x3487('0x73')],{'uniqueid':_0x457a78[_0x3487('0x60')]});if(_0x530c6e&&_0x530c6e[_0x3487('0x5d')]){return ami[_0x3487('0x16')]({'action':_0x3487('0x78'),'channel':_0x530c6e['channel'],'exten':_0x457a78[_0x3487('0x79')],'context':_0x457a78['context']||_0x530c6e[_0x3487('0x7a')],'priority':0x1})[_0x3487('0x17')](function(_0x188aec){_0x3adaa2({'code':0xc8,'message':[_0x457a78[_0x3487('0x60')],_0x188aec[_0x3487('0x18')][_0x3487('0x65')]()][_0x3487('0x10')]('\x20')});})['catch'](function(_0x136789){_0x19a455(_0x44dc2f[_0x3487('0x1a')](0x1f5,[_0x457a78[_0x3487('0x60')],_0x136789[_0x3487('0x18')][_0x3487('0x65')]()][_0x3487('0x10')]('\x20')));});}else{return _0x19a455(_0x44dc2f[_0x3487('0x1a')](0x1f5,_0x3487('0x6c')));}});},'Agents':function(_0x2dce91){return new Promise(function(_0x8d3164,_0x2f5012){var _0x3b0540=_['values'](_0x1d6d6c['agents']);_0x8d3164({'count':_0x3b0540[_0x3487('0x55')],'rows':_0x3b0540});});},'Telephones':function(_0x3188e9){return new Promise(function(_0xcfb667,_0x3abde2){var _0x311560=_['values'](_0x1d6d6c['telephones']);_0xcfb667({'count':_0x311560[_0x3487('0x55')],'rows':_0x311560});});},'Trunks':function(_0x47c8a7){return new Promise(function(_0x43c120,_0x3c7469){var _0x1c3a61=_[_0x3487('0x59')](_0x1d6d6c[_0x3487('0x7b')]);_0x43c120({'count':_0x1c3a61[_0x3487('0x55')],'rows':_0x1c3a61});});},'OutboundChannels':function(_0xd12729){return new Promise(function(_0x1cb7e9,_0x57b4e1){var _0x409dde=_[_0x3487('0x59')](_0x1d6d6c[_0x3487('0x7c')]);_0x1cb7e9({'count':_0x409dde['length'],'rows':_0x409dde});});},'Outbound':function(_0x252eec){return new Promise(function(_0x2ffab6,_0x8608ac){_0x2ffab6(_0x1d6d6c[_0x3487('0x2e')]);});},'Campaigns':function(_0x492292){return new Promise(function(_0x50571e,_0x34eda4){var _0x32ed8c=_[_0x3487('0x59')](_0x1d6d6c[_0x3487('0x7d')]);_0x50571e({'count':_0x32ed8c[_0x3487('0x55')],'rows':_0x32ed8c});});},'VoiceQueuesPreview':function(_0x6beb62){var _0x3b9992=this;return new Promise(function(_0x80288a,_0x258bf4){_0x2fc292['run'](_0x6beb62['id'])[_0x3487('0x17')](function(_0xc9382d){_0x80288a({'code':0xc8,'message':_0xc9382d[_0x3487('0x18')]});})[_0x3487('0x19')](function(_0x59c0fb){_0x258bf4(_0x3b9992['error'](0x1f4,_0x59c0fb[_0x3487('0x18')]));});});},'EventManager':function(_0x4b528b){var _0x5ef864=this;return new Promise(function(_0x2e32cc,_0x64d58e){if(!_0x4b528b[_0x3487('0x7e')]){return _0x64d58e(_0x5ef864[_0x3487('0x1a')](0x1f4,_0x3487('0x7f')));}ami[_0x3487('0x80')](_0x3487('0x81')+_0x4b528b[_0x3487('0x7e')],_0x4b528b['message']);_0x2e32cc({'code':0xc8,'message':_0x4b528b});});},'FaxAccounts':function(_0x3d3b7e){return new Promise(function(_0x215a57,_0x574449){var _0xddf26e=_['values'](_0x1d6d6c[_0x3487('0x82')]);_0x215a57({'count':_0xddf26e['length'],'rows':_0xddf26e});});},'SendFax':function(_0x2cf63e){var _0x3e70eb=this;return new Promise(function(_0xfc35d,_0xbcb012){_0xbe12a4[_0x3487('0x83')](_0x2cf63e)[_0x3487('0x17')](function(_0x50413f){_0xfc35d({'code':0xc8,'message':_0x50413f[_0x3487('0x18')]});})['catch'](function(_0x5bc11b){_0xbcb012(_0x3e70eb[_0x3487('0x1a')](0x1f4,_0x5bc11b[_0x3487('0x18')]));});});},'CheckAfterSend':function(_0xc7fd3f){var _0x2e7509=this;return new Promise(function(_0x609d8e,_0x2f943d){_0xbe12a4[_0x3487('0x84')](_0xc7fd3f)['then'](function(_0x44d7ee){_0x609d8e({'code':0xc8,'message':_0x44d7ee[_0x3487('0x18')]});})[_0x3487('0x19')](function(_0x1803ae){_0x2f943d(_0x2e7509['error'](0x1f4,_0x1803ae['message']));});});}};var _0x4340fb=jayson[_0x3487('0x85')](_0x4a2407)[_0x3487('0x86')]();_0x4340fb['on']('error',function(_0x54652c){return _0x193589(_0x54652c);});_0x4340fb['listen'](0x232a,_0x3487('0x87'),function(){console[_0x3487('0x88')](_0x3487('0x89'),0x232a);return _0x2611dc(_0x3487('0x8a')+0x232a);});});};
\ No newline at end of file
+var _0xd117=['bluebird','moment','../../../config/environment','../properties','../ami','listen','%s/%s','SIP','name','timers','agents','pause','QueuePause','isConnected','error','asterisk','username','ami\x20disconnected','join','pick','module','action','Reload','Action','then','message','catch','command','content','voiceQueues','strategy','answered','available','pTalking','sumBillable','sumDuration','sumHoldTime','total','unmanaged','waiting','loggedInDb','type','dialActive','dialMethod','dialOriginateCallerIdName','dialOriginateCallerIdNumber','dialOriginateTimeout','dialPrefix','temp','outboundAnswerAgiCallsDay','outboundAnswerCallsDay','outboundBlacklistCallsDay','outboundCongestionCallsDay','outboundDropCallsDayACS','outboundDropCallsDayTimeout','outboundNoAnswerCallsDay','outboundNoSuchCallsDay','outboundOriginateFailureCallsDay','outboundReCallsDay','outboundRejectCallsDay','outboundUnknownCallsDay','predictiveIntervalAnsweredCalls','predictiveIntervalAvgHoldtime','predictiveIntervalAvgTalktime','predictiveIntervalDroppedCallsCallersExit','predictiveIntervalDroppedCallsTimeout','predictiveIntervalErlangCalls','predictiveIntervalErlangCallsDroppedCalls','predictiveIntervalHitRate','predictiveIntervalMultiplicativeFactor','predictiveIntervalPauses','predictiveIntervalAvailable','originated','erlangCalls','erlangCallToSecond','erlangAbandonmentRate','erlangBusyFactor','startPredictive','startProgressive','Trunk','active','callerid','Interval','push','length','find','undefined','values','channels','voicechannel','map','uniqueid','format','%s.%s','wav','channel','ai(mixmonitorid)','monitors','/var/spool/asterisk/monitor/','toLowerCase','isNil','rec','mixmonitorid','status','MixMonitor\x20Success','Channel\x20doesn\x27t\x20exist','resolve','StopMixMonitor','destinationchannel','stop','filename','queueChannels','Hangup','voicequeuechannelredirect','Redirect','exten','telephones','outbound','run','event','Event\x20name\x20mandatory','send','server','http','127.0.0.1','RPC\x20listening\x20on\x20port:','lodash','util','jayson/promise','validate'];(function(_0xe8e2ad,_0x4df5f5){var _0x15f391=function(_0x2eb6fd){while(--_0x2eb6fd){_0xe8e2ad['push'](_0xe8e2ad['shift']());}};_0x15f391(++_0x4df5f5);}(_0xd117,0x182));var _0x7d11=function(_0x10e8ed,_0x384a0d){_0x10e8ed=_0x10e8ed-0x0;var _0x4aea4a=_0xd117[_0x10e8ed];return _0x4aea4a;};'use strict';var _=require(_0x7d11('0x0'));var util=require(_0x7d11('0x1'));var jayson=require(_0x7d11('0x2'));var schema=require(_0x7d11('0x3'));var BPromise=require(_0x7d11('0x4'));var moment=require(_0x7d11('0x5'));var config=require(_0x7d11('0x6'));var properties=require(_0x7d11('0x7'));var ami=require(_0x7d11('0x8'));exports[_0x7d11('0x9')]=function(_0x589c51,_0x2689c6,_0x27d7e8){return new BPromise(function(_0x40c3c4,_0x345602){var _0x3c8d66={'QueuePause':function(_0x47b5e6){return new Promise(function(_0x3803b5,_0xffd020){var _0x2007c1=util['format'](_0x7d11('0xa'),_0x7d11('0xb'),_0x47b5e6[_0x7d11('0xc')]);if(_0x589c51['timers']&&_0x589c51[_0x7d11('0xd')][_0x2007c1]&&_0x589c51['timers'][_0x2007c1]['timer']){_0x589c51[_0x7d11('0xd')][_0x2007c1]['updateAcw']();}if(_0x589c51['agents'][_0x2007c1]){_0x589c51[_0x7d11('0xe')][_0x2007c1]['updateStatusRealtime']({'statePause':_0x47b5e6[_0x7d11('0xf')]?!![]:![]});}_0x3803b5({'code':0xc8,'message':_0x7d11('0x10')});});},'Reload':function(_0x5ee572){var _0x401bb7=this;return new Promise(function(_0x20f519,_0x4cda5d){if(ami[_0x7d11('0x11')]()==![]){return _0x4cda5d(_0x401bb7[_0x7d11('0x12')](0x1f4,[config[_0x7d11('0x13')]['ip'],config[_0x7d11('0x13')][_0x7d11('0x14')],_0x7d11('0x15')][_0x7d11('0x16')]('\x20')));}_0x5ee572=_[_0x7d11('0x17')](_0x5ee572,_['keys'](properties[_0x7d11('0x18')]));_0x5ee572[_0x7d11('0x19')]=_0x7d11('0x1a');return ami[_0x7d11('0x1b')](_0x5ee572)[_0x7d11('0x1c')](function(_0x528fdc){_0x20f519({'code':0xc8,'message':_0x528fdc[_0x7d11('0x1d')]});})[_0x7d11('0x1e')](function(_0x4d1306){_0x4cda5d(_0x401bb7['error'](0x1f5,_0x4d1306[_0x7d11('0x1d')]));});});},'Command':function(_0x52a6ae){var _0x1f9990=this;return new Promise(function(_0x5c0af8,_0xbe0a79){if(ami[_0x7d11('0x11')]()==![]){return _0xbe0a79(_0x1f9990[_0x7d11('0x12')](0x1f4,[config[_0x7d11('0x13')]['ip'],config[_0x7d11('0x13')][_0x7d11('0x14')],_0x7d11('0x15')][_0x7d11('0x16')]('\x20')));}_0x52a6ae=_['pick'](_0x52a6ae,_0x7d11('0x1f'));_0x52a6ae['action']='Command';return ami['Action'](_0x52a6ae)[_0x7d11('0x1c')](function(_0x3545dc){_0x5c0af8({'code':0xc8,'message':_0x3545dc[_0x7d11('0x20')]});})[_0x7d11('0x1e')](function(_0x355d14){_0xbe0a79(_0x1f9990[_0x7d11('0x12')](0x1f5,_0x355d14[_0x7d11('0x1d')]));});});},'VoiceQueues':function(_0x1c1edd){return new Promise(function(_0x5e2f2f,_0x36c2b4){var _0x577ca9=[];for(var _0x4bfa76 in _0x589c51['voiceQueues']){if(_0x589c51[_0x7d11('0x21')]['hasOwnProperty'](_0x4bfa76)){var _0x180e1e=_0x589c51[_0x7d11('0x21')][_0x4bfa76];var _0x328ab7={'id':_0x180e1e['id'],'name':_0x180e1e['name'],'strategy':_0x180e1e[_0x7d11('0x22')],'answered':_0x180e1e[_0x7d11('0x23')],'available':_0x180e1e[_0x7d11('0x24')],'loggedIn':_0x180e1e['loggedIn'],'pTalking':_0x180e1e[_0x7d11('0x25')],'sumBillable':_0x180e1e[_0x7d11('0x26')],'sumDuration':_0x180e1e[_0x7d11('0x27')],'sumHoldTime':_0x180e1e[_0x7d11('0x28')]||0x0,'talking':_0x180e1e['talking'],'total':_0x180e1e[_0x7d11('0x29')],'type':_0x180e1e['type'],'unmanaged':_0x180e1e[_0x7d11('0x2a')],'abandoned':_0x180e1e['abandoned'],'waiting':_0x180e1e[_0x7d11('0x2b')],'loggedInDb':_0x180e1e[_0x7d11('0x2c')]};if(_0x180e1e[_0x7d11('0x2d')]==='outbound'){_0x328ab7['dialActive']=_0x180e1e[_0x7d11('0x2e')];_0x328ab7[_0x7d11('0x2f')]=_0x180e1e['dialMethod'];_0x328ab7[_0x7d11('0x30')]=_0x180e1e[_0x7d11('0x30')];_0x328ab7[_0x7d11('0x31')]=_0x180e1e['dialOriginateCallerIdNumber'];_0x328ab7[_0x7d11('0x32')]=_0x180e1e['dialOriginateTimeout'];_0x328ab7['dialPrefix']=_0x180e1e[_0x7d11('0x33')];_0x328ab7['temp']=_0x180e1e[_0x7d11('0x34')];_0x328ab7[_0x7d11('0x35')]=_0x180e1e[_0x7d11('0x35')];_0x328ab7[_0x7d11('0x36')]=_0x180e1e['outboundAnswerCallsDay'];_0x328ab7[_0x7d11('0x37')]=_0x180e1e[_0x7d11('0x37')];_0x328ab7['outboundBusyCallsDay']=_0x180e1e['outboundBusyCallsDay'];_0x328ab7[_0x7d11('0x38')]=_0x180e1e[_0x7d11('0x38')];_0x328ab7['outboundDropCallsDayACS']=_0x180e1e[_0x7d11('0x39')];_0x328ab7['outboundDropCallsDayCallersExit']=_0x180e1e['outboundDropCallsDayCallersExit'];_0x328ab7[_0x7d11('0x3a')]=_0x180e1e['outboundDropCallsDayTimeout'];_0x328ab7['outboundNoAnswerCallsDay']=_0x180e1e[_0x7d11('0x3b')];_0x328ab7[_0x7d11('0x3c')]=_0x180e1e[_0x7d11('0x3c')];_0x328ab7[_0x7d11('0x3d')]=_0x180e1e[_0x7d11('0x3d')];_0x328ab7[_0x7d11('0x3e')]=_0x180e1e[_0x7d11('0x3e')];_0x328ab7[_0x7d11('0x3f')]=_0x180e1e[_0x7d11('0x3f')];_0x328ab7[_0x7d11('0x40')]=_0x180e1e[_0x7d11('0x40')];_0x328ab7[_0x7d11('0x41')]=_0x180e1e['predictiveIntervalAnsweredCalls'];_0x328ab7[_0x7d11('0x42')]=_0x180e1e['predictiveIntervalAvgHoldtime'];_0x328ab7[_0x7d11('0x43')]=_0x180e1e[_0x7d11('0x43')];_0x328ab7[_0x7d11('0x44')]=_0x180e1e[_0x7d11('0x44')];_0x328ab7['predictiveIntervalDroppedCallsTimeout']=_0x180e1e[_0x7d11('0x45')];_0x328ab7[_0x7d11('0x46')]=_0x180e1e[_0x7d11('0x46')];_0x328ab7[_0x7d11('0x47')]=_0x180e1e['predictiveIntervalErlangCallsDroppedCalls'];_0x328ab7[_0x7d11('0x48')]=_0x180e1e['predictiveIntervalHitRate'];_0x328ab7[_0x7d11('0x49')]=_0x180e1e['predictiveIntervalMultiplicativeFactor'];_0x328ab7[_0x7d11('0x4a')]=_0x180e1e[_0x7d11('0x4a')];_0x328ab7[_0x7d11('0x4b')]=_0x180e1e[_0x7d11('0x4b')];_0x328ab7['predictiveIntervalTotalCalls']=_0x180e1e['predictiveIntervalTotalCalls'];_0x328ab7[_0x7d11('0x1d')]=_0x180e1e[_0x7d11('0x1d')];_0x328ab7['originated']=_0x180e1e[_0x7d11('0x4c')];_0x328ab7[_0x7d11('0x4d')]=_0x180e1e[_0x7d11('0x4d')];_0x328ab7[_0x7d11('0x4e')]=_0x180e1e[_0x7d11('0x4e')];_0x328ab7[_0x7d11('0x4f')]=_0x180e1e['erlangAbandonmentRate'];_0x328ab7[_0x7d11('0x50')]=_0x180e1e['erlangBusyFactor'];_0x328ab7[_0x7d11('0x51')]=_0x180e1e[_0x7d11('0x51')];_0x328ab7[_0x7d11('0x52')]=_0x180e1e[_0x7d11('0x52')];}if(_0x180e1e[_0x7d11('0x53')]){_0x328ab7[_0x7d11('0x53')]={'id':_0x180e1e['Trunk']['id'],'name':_0x180e1e['Trunk']['name'],'active':_0x180e1e[_0x7d11('0x53')][_0x7d11('0x54')],'callerid':_0x180e1e[_0x7d11('0x53')][_0x7d11('0x55')]};}if(_0x180e1e[_0x7d11('0x56')]){_0x328ab7['Interval']={'id':_0x180e1e[_0x7d11('0x56')]['id'],'name':_0x180e1e[_0x7d11('0x56')]['name']};}_0x577ca9[_0x7d11('0x57')](_0x328ab7);}}_0x5e2f2f({'count':_0x577ca9[_0x7d11('0x58')],'rows':_0x577ca9});});},'UpdateVoiceQueue':function(_0xeca3f6){return new Promise(function(_0x518ca2,_0x30358a){var _0x3bbc14=_[_0x7d11('0x59')](_0x589c51['voiceQueues'],{'id':parseInt(_0xeca3f6['id'])});var _0x38de7f=_['omit'](_0xeca3f6,['id']);if(_0x3bbc14){for(var _0xe5d2fe in _0x38de7f){if(typeof _0x38de7f[_0xe5d2fe]!==_0x7d11('0x5a')&&typeof _0x3bbc14[_0xe5d2fe]!==_0x7d11('0x5a')){_0x3bbc14[_0xe5d2fe]=_0x38de7f[_0xe5d2fe];}}_0x518ca2(_0x3bbc14);}else{_0x30358a();}});},'VoiceChannels':function(_0xbe357){return new Promise(function(_0xee795,_0x14cda1){var _0x161213=_[_0x7d11('0x5b')](_0x589c51[_0x7d11('0x5c')]);_0xee795({'count':_0x161213['length'],'rows':_0x161213});});},'VoiceChannelMixMonitor':function(_0x50d458){var _0x49a21c=this;return new Promise(function(_0x10c0e9,_0x1e5bb5){if(ami[_0x7d11('0x11')]()==![]){return _0x1e5bb5(_0x49a21c[_0x7d11('0x12')](0x1f4,[config[_0x7d11('0x13')]['ip'],config[_0x7d11('0x13')][_0x7d11('0x14')],_0x7d11('0x15')][_0x7d11('0x16')]('\x20')));}var _0x347567=schema(properties[_0x7d11('0x5d')])[_0x7d11('0x3')](_0x50d458);if(_0x347567['length']>0x0){return _0x1e5bb5(_0x49a21c[_0x7d11('0x12')](0x1f4,_[_0x7d11('0x5e')](_0x347567,_0x7d11('0x1d'))['join'](',\x20')));}var _0x503ebc=_[_0x7d11('0x59')](_0x589c51[_0x7d11('0x5c')],{'uniqueid':_0x50d458[_0x7d11('0x5f')]});if(_0x503ebc&&_0x503ebc['channel']){var _0x5e898c=util[_0x7d11('0x60')](_0x7d11('0x61'),_0x50d458['filename']||_0x50d458[_0x7d11('0x5f')],_0x50d458[_0x7d11('0x60')]||_0x7d11('0x62'));return ami[_0x7d11('0x1b')]({'action':'MixMonitor','channel':_0x503ebc[_0x7d11('0x63')],'file':_0x5e898c,'options':_0x7d11('0x64')})[_0x7d11('0x1c')](function(_0x503cef){var _0x4d0f77=_[_0x7d11('0x59')](_0x503ebc[_0x7d11('0x65')],{'filename':_0x7d11('0x66')+_0x5e898c[_0x7d11('0x67')]()});if(_[_0x7d11('0x68')](_0x4d0f77)){_0x503ebc['monitors'][_0x7d11('0x57')]({'filename':_0x7d11('0x66')+_0x5e898c[_0x7d11('0x67')](),'createdAt':moment()[_0x7d11('0x60')]('YYYY-MM-DD\x20HH:mm:ss'),'mixmonitorid':_0x503cef['mixmonitorid'],'status':_0x7d11('0x69')});}else{_0x4d0f77[_0x7d11('0x6a')]=_0x503cef[_0x7d11('0x6a')];_0x4d0f77[_0x7d11('0x6b')]=_0x7d11('0x69');}_0x10c0e9({'code':0xc8,'message':[_0x50d458[_0x7d11('0x5f')],_0x7d11('0x6c'),_0x503cef[_0x7d11('0x6a')]][_0x7d11('0x16')]('\x20'),'mixmonitorid':_0x503cef[_0x7d11('0x6a')]});})['catch'](function(_0x4fb818){_0x1e5bb5(_0x49a21c['error'](0x1f5,[_0x50d458[_0x7d11('0x5f')],_0x4fb818[_0x7d11('0x1d')][_0x7d11('0x67')]()]['join']('\x20')));});}else{return _0x1e5bb5(_0x49a21c[_0x7d11('0x12')](0x1f5,_0x7d11('0x6d')));}});},'VoiceChannelStopMixMonitor':function(_0x3b1762){var _0x32937c=this;return new Promise(function(_0x1f29f7,_0x178a3a){if(ami['isConnected']()==![]){return _0x178a3a(_0x32937c[_0x7d11('0x12')](0x1f4,[config[_0x7d11('0x13')]['ip'],config[_0x7d11('0x13')]['username'],'ami\x20disconnected']['join']('\x20')));}var _0x5a88f4=schema(properties[_0x7d11('0x5d')])['validate'](_0x3b1762);if(_0x5a88f4['length']>0x0){return _0x178a3a(_0x32937c['error'](0x1f4,_[_0x7d11('0x5e')](_0x5a88f4,_0x7d11('0x1d'))[_0x7d11('0x16')](',\x20')));}var _0x407f2c=_[_0x7d11('0x59')](_0x589c51[_0x7d11('0x5c')],{'uniqueid':_0x3b1762['uniqueid']});if(_0x407f2c){return BPromise[_0x7d11('0x6e')]()['then'](function(){if(_0x407f2c[_0x7d11('0x63')]){return ami['Action']({'action':_0x7d11('0x6f'),'channel':_0x407f2c[_0x7d11('0x63')],'mixmonitorid':_0x3b1762['mixmonitorid']})[_0x7d11('0x1e')](function(_0x49c9b6){});}})[_0x7d11('0x1c')](function(){if(_0x407f2c[_0x7d11('0x70')]){return ami['Action']({'action':'StopMixMonitor','channel':_0x407f2c[_0x7d11('0x70')],'mixmonitorid':_0x3b1762[_0x7d11('0x6a')]})[_0x7d11('0x1e')](function(_0x4027f8){});}})[_0x7d11('0x1c')](function(_0x492183){var _0x2b9ba0=_['find'](_0x407f2c[_0x7d11('0x65')],{'mixmonitorid':_0x3b1762[_0x7d11('0x6a')]});if(_0x2b9ba0){_0x2b9ba0[_0x7d11('0x6b')]=_0x7d11('0x71');}})['then'](function(){var _0x17a141=util['format'](_0x7d11('0x61'),_0x3b1762[_0x7d11('0x72')]||_0x3b1762[_0x7d11('0x5f')],_0x3b1762[_0x7d11('0x60')]||_0x7d11('0x62'));var _0x776b20=_[_0x7d11('0x59')](_0x407f2c[_0x7d11('0x65')],{'filename':_0x7d11('0x66')+_0x17a141[_0x7d11('0x67')]()});if(_0x776b20){_0x776b20[_0x7d11('0x6b')]=_0x7d11('0x71');}})[_0x7d11('0x1c')](function(){_0x1f29f7({'code':0xc8,'message':[_0x3b1762[_0x7d11('0x5f')],'StopMixMonitor\x20Success'][_0x7d11('0x16')]('\x20')});})['catch'](function(_0x371869){_0x178a3a(_0x32937c['error'](0x1f5,[_0x3b1762[_0x7d11('0x5f')],_0x371869[_0x7d11('0x1d')][_0x7d11('0x67')]()][_0x7d11('0x16')]('\x20')));});}else{return _0x178a3a(_0x32937c['error'](0x1f5,'Channel\x20doesn\x27t\x20exist'));}});},'VoiceQueuesChannels':function(_0x1351ee){return new Promise(function(_0x15938b,_0x12566a){var _0x56331e=_[_0x7d11('0x5b')](_0x589c51[_0x7d11('0x73')]);_0x15938b({'count':_0x56331e[_0x7d11('0x58')],'rows':_0x56331e});});},'VoiceQueuesChannel':function(_0x1b89de){var _0x328a36=this;return new Promise(function(_0x241895,_0x59f63f){var _0xc63022=schema(properties['voicequeuechannel'])[_0x7d11('0x3')](_0x1b89de);if(_0xc63022['length']>0x0){return _0x59f63f(_0x328a36['error'](0x1f4,_[_0x7d11('0x5e')](_0xc63022,_0x7d11('0x1d'))[_0x7d11('0x16')](',\x20')));}var _0x14ee15=_[_0x7d11('0x59')](_0x589c51[_0x7d11('0x73')],{'uniqueid':_0x1b89de[_0x7d11('0x5f')]});if(_0x14ee15){_0x241895(_0x14ee15);}else{return _0x59f63f(_0x328a36[_0x7d11('0x12')](0x1f5,_0x7d11('0x6d')));}});},'VoiceQueuesChannelHangup':function(_0x1b8993){var _0xee8fb0=this;return new Promise(function(_0x539b91,_0x3f0d43){if(ami['isConnected']()==![]){return _0x3f0d43(_0xee8fb0[_0x7d11('0x12')](0x1f4,[config[_0x7d11('0x13')]['ip'],config[_0x7d11('0x13')][_0x7d11('0x14')],_0x7d11('0x15')][_0x7d11('0x16')]('\x20')));}var _0x1f852a=schema(properties['voicequeuechannelhangup'])['validate'](_0x1b8993);if(_0x1f852a[_0x7d11('0x58')]>0x0){return _0x3f0d43(_0xee8fb0[_0x7d11('0x12')](0x1f4,_[_0x7d11('0x5e')](_0x1f852a,_0x7d11('0x1d'))[_0x7d11('0x16')](',\x20')));}var _0x549bd8=_[_0x7d11('0x59')](_0x589c51['queueChannels'],{'uniqueid':_0x1b8993[_0x7d11('0x5f')]});if(_0x549bd8&&_0x549bd8[_0x7d11('0x63')]){return ami[_0x7d11('0x1b')]({'action':_0x7d11('0x74'),'channel':_0x549bd8[_0x7d11('0x63')]})[_0x7d11('0x1c')](function(_0x93cf5c){_0x539b91({'code':0xc8,'message':[_0x1b8993[_0x7d11('0x5f')],_0x93cf5c['message']['toLowerCase']()][_0x7d11('0x16')]('\x20')});})[_0x7d11('0x1e')](function(_0x195e2a){_0x3f0d43(_0xee8fb0['error'](0x1f5,[_0x1b8993['uniqueid'],_0x195e2a[_0x7d11('0x1d')]['toLowerCase']()][_0x7d11('0x16')]('\x20')));});}else{return _0x3f0d43(_0xee8fb0[_0x7d11('0x12')](0x1f5,_0x7d11('0x6d')));}});},'VoiceQueuesChannelRedirect':function(_0x14bd23){var _0x4b4dd5=this;return new Promise(function(_0x3805c7,_0x3b2c9e){if(ami[_0x7d11('0x11')]()==![]){return _0x3b2c9e(_0x4b4dd5[_0x7d11('0x12')](0x1f4,[config[_0x7d11('0x13')]['ip'],config[_0x7d11('0x13')][_0x7d11('0x14')],_0x7d11('0x15')]['join']('\x20')));}var _0x41f989=schema(properties[_0x7d11('0x75')])[_0x7d11('0x3')](_0x14bd23);if(_0x41f989[_0x7d11('0x58')]>0x0){return _0x3b2c9e(_0x4b4dd5[_0x7d11('0x12')](0x1f4,_['map'](_0x41f989,_0x7d11('0x1d'))[_0x7d11('0x16')](',\x20')));}var _0xa4d2ad=_[_0x7d11('0x59')](_0x589c51[_0x7d11('0x73')],{'uniqueid':_0x14bd23['uniqueid']});if(_0xa4d2ad&&_0xa4d2ad['channel']){return ami['Action']({'action':_0x7d11('0x76'),'channel':_0xa4d2ad['channel'],'exten':_0x14bd23[_0x7d11('0x77')],'context':_0x14bd23['context']||_0xa4d2ad['context'],'priority':0x1})[_0x7d11('0x1c')](function(_0x355d3f){_0x3805c7({'code':0xc8,'message':[_0x14bd23[_0x7d11('0x5f')],_0x355d3f[_0x7d11('0x1d')][_0x7d11('0x67')]()][_0x7d11('0x16')]('\x20')});})[_0x7d11('0x1e')](function(_0x45d970){_0x3b2c9e(_0x4b4dd5[_0x7d11('0x12')](0x1f5,[_0x14bd23[_0x7d11('0x5f')],_0x45d970['message'][_0x7d11('0x67')]()][_0x7d11('0x16')]('\x20')));});}else{return _0x3b2c9e(_0x4b4dd5['error'](0x1f5,_0x7d11('0x6d')));}});},'Agents':function(_0x45a528){return new Promise(function(_0x19e4a9,_0x461ab7){var _0x5c828c=_['values'](_0x589c51[_0x7d11('0xe')]);_0x19e4a9({'count':_0x5c828c['length'],'rows':_0x5c828c});});},'Telephones':function(_0xb576ec){return new Promise(function(_0x471bf4,_0xa4317f){var _0x13ccd5=_[_0x7d11('0x5b')](_0x589c51[_0x7d11('0x78')]);_0x471bf4({'count':_0x13ccd5[_0x7d11('0x58')],'rows':_0x13ccd5});});},'Trunks':function(_0x596228){return new Promise(function(_0x3381e0,_0x3212fa){var _0x22121e=_[_0x7d11('0x5b')](_0x589c51['trunks']);_0x3381e0({'count':_0x22121e[_0x7d11('0x58')],'rows':_0x22121e});});},'OutboundChannels':function(_0x18cb6b){return new Promise(function(_0x498714,_0x772073){var _0x41c318=_[_0x7d11('0x5b')](_0x589c51['outboundChannels']);_0x498714({'count':_0x41c318[_0x7d11('0x58')],'rows':_0x41c318});});},'Outbound':function(_0x34d95d){return new Promise(function(_0x561dbf,_0xf089a4){_0x561dbf(_0x589c51[_0x7d11('0x79')]);});},'Campaigns':function(_0x5a280f){return new Promise(function(_0x3ee2ee,_0x5bf46e){var _0x49d16c=_['values'](_0x589c51['campaigns']);_0x3ee2ee({'count':_0x49d16c[_0x7d11('0x58')],'rows':_0x49d16c});});},'VoiceQueuesPreview':function(_0x454789){var _0x265c48=this;return new Promise(function(_0xe98764,_0x241591){_0x2689c6[_0x7d11('0x7a')](_0x454789['id'])[_0x7d11('0x1c')](function(_0x1a2df6){_0xe98764({'code':0xc8,'message':_0x1a2df6[_0x7d11('0x1d')]});})[_0x7d11('0x1e')](function(_0x5bc08e){_0x241591(_0x265c48['error'](0x1f4,_0x5bc08e[_0x7d11('0x1d')]));});});},'EventManager':function(_0x158e0f){var _0x57a6a1=this;return new Promise(function(_0x4c2199,_0xe88ace){if(!_0x158e0f[_0x7d11('0x7b')]){return _0xe88ace(_0x57a6a1[_0x7d11('0x12')](0x1f4,_0x7d11('0x7c')));}ami['emit']('custom:'+_0x158e0f['event'],_0x158e0f[_0x7d11('0x1d')]);_0x4c2199({'code':0xc8,'message':_0x158e0f});});},'FaxAccounts':function(_0x126107){return new Promise(function(_0x4470e9,_0x550772){var _0x3ce304=_[_0x7d11('0x5b')](_0x589c51['faxAccounts']);_0x4470e9({'count':_0x3ce304[_0x7d11('0x58')],'rows':_0x3ce304});});},'SendFax':function(_0x1cb457){var _0x59f0db=this;return new Promise(function(_0x5e5faf,_0xe23940){_0x27d7e8[_0x7d11('0x7d')](_0x1cb457)['then'](function(_0x4f08a4){_0x5e5faf({'code':0xc8,'message':_0x4f08a4[_0x7d11('0x1d')]});})[_0x7d11('0x1e')](function(_0x3df0ab){_0xe23940(_0x59f0db[_0x7d11('0x12')](0x1f4,_0x3df0ab['message']));});});},'CheckAfterSend':function(_0x411f81){var _0x2cfa77=this;return new Promise(function(_0x44ea8e,_0x83416b){_0x27d7e8['checkAfterSend'](_0x411f81)[_0x7d11('0x1c')](function(_0x23fe57){_0x44ea8e({'code':0xc8,'message':_0x23fe57[_0x7d11('0x1d')]});})['catch'](function(_0x421187){_0x83416b(_0x2cfa77['error'](0x1f4,_0x421187[_0x7d11('0x1d')]));});});}};var _0x5b690f=jayson[_0x7d11('0x7e')](_0x3c8d66)[_0x7d11('0x7f')]();_0x5b690f['on'](_0x7d11('0x12'),function(_0x1a548f){return _0x345602(_0x1a548f);});_0x5b690f[_0x7d11('0x9')](0x232a,_0x7d11('0x80'),function(){console['log']('AMI\x20RPC\x20server\x20listening\x20on\x20127.0.0.1:%d!',0x232a);return _0x40c3c4(_0x7d11('0x81')+0x232a);});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7bae=['data5','xmd-contactid','ListId','data3','map','firstName','lastName','phone','mobile','createdAt','scheduledAt','updatedAt','union','resolve','getContacts','then','isEmpty','length','[CM][%s][%s]\x20Contact\x20found:%s','uniqueid','[CM][%s][%s]\x20Multiple\x20contacts\x20found:[%s]','[CM][%s][%s]\x20Contact\x20not\x20found','data4','[CM][%s][%s]\x20Autocreate\x20enabled','calleridnum','routeId','<unknown>','calleridname','Unknown','destcalleridname','push','[CM][%s][%s]\x20Contact\x20created:%s','[CM][%s][%s]\x20Autocreate\x20disabled','destcalleridnum','format','user:%s','trigger:%s','action','toLowerCase','merge','ioredis','util','../../../../config/logger','../../rpc/cmContact','redis','defaults','localhost','socket.io-emitter','info','[CM][%s][%s]','emit','exec','data1','data2','isNil'];(function(_0x21188a,_0x437f2b){var _0x3fb3fa=function(_0x12f8e4){while(--_0x12f8e4){_0x21188a['push'](_0x21188a['shift']());}};_0x3fb3fa(++_0x437f2b);}(_0x7bae,0x13b));var _0xe7ba=function(_0x5416db,_0x55683a){_0x5416db=_0x5416db-0x0;var _0x243e35=_0x7bae[_0x5416db];return _0x243e35;};'use strict';var _=require('lodash');var BPromise=require('bluebird');var Redis=require(_0xe7ba('0x0'));var util=require(_0xe7ba('0x1'));var config=require('../../../../config/environment');var logger=require(_0xe7ba('0x2'))('trigger');var cmContactRpc=require(_0xe7ba('0x3'));config[_0xe7ba('0x4')]=_[_0xe7ba('0x5')](config[_0xe7ba('0x4')],{'host':_0xe7ba('0x6'),'port':0x18eb});var io=require(_0xe7ba('0x7'))(new Redis(config[_0xe7ba('0x4')]));function emit(_0x3c5e59,_0x10b307,_0x34fb18,_0x160565,_0x27b1d5){logger[_0xe7ba('0x8')](_0xe7ba('0x9'),_0x3c5e59,_0x10b307['id'],_0x34fb18,_0x160565,JSON['stringify'](_0x27b1d5));io['to'](_0x34fb18)[_0xe7ba('0xa')](_0x160565,_0x27b1d5);}exports[_0xe7ba('0xb')]=function(_0x375ebb,_0x276bc3,_0x15083a,_0x1672f0){var _0x99a86f,_0x448bcc;var _0x194447={};var _0x4b6597=Number(_0x15083a[_0xe7ba('0xc')]);var _0x588c8b=_0x15083a[_0xe7ba('0xd')]?Boolean(Number(_0x15083a[_0xe7ba('0xd')])):![];var _0x390596;var _0x17e4e6=![];if(!_[_0xe7ba('0xe')](_0x15083a[_0xe7ba('0xf')])){if(_0x15083a['data5']=='1')_0x17e4e6=!![];}if(!_0x17e4e6){if(_0x1672f0['xmd-contactid']){_0x194447['id']=_0x1672f0[_0xe7ba('0x10')];}}if(!_0x194447['id']){_0x194447[_0xe7ba('0x11')]=_0x4b6597;_0x390596=_0x15083a[_0xe7ba('0x12')]&&_0x15083a['data3']!=='0'?_0x15083a[_0xe7ba('0x12')]['split'](','):['phone'];_0x194447['$or']=_[_0xe7ba('0x13')](_0x390596,function(_0x4e87f5){var _0x41a773={};_0x41a773[_0x4e87f5]=_0x1672f0['routeId']?_0x1672f0['destcalleridnum']:_0x1672f0['calleridnum'];return _0x41a773;});}var _0x3f326a=['id',_0xe7ba('0x14'),_0xe7ba('0x15'),_0xe7ba('0x16'),_0xe7ba('0x17'),'fax',_0xe7ba('0x11'),_0xe7ba('0x18'),_0xe7ba('0x19'),_0xe7ba('0x1a')];var _0x4aaf35=_[_0xe7ba('0x1b')](_0x3f326a,_0x390596);BPromise[_0xe7ba('0x1c')]()['then'](cmContactRpc[_0xe7ba('0x1d')]({'attributes':_0x4aaf35,'where':_0x194447}))[_0xe7ba('0x1e')](function(_0x27c882){_0x448bcc=_0x27c882;if(!_[_0xe7ba('0x1f')](_0x448bcc)){if(_0x448bcc[_0xe7ba('0x20')]===0x1){_0x99a86f=_0x448bcc[0x0];logger[_0xe7ba('0x8')](_0xe7ba('0x21'),_0x1672f0[_0xe7ba('0x22')],_0x276bc3['id'],_0x99a86f['id']);}else{logger[_0xe7ba('0x8')](_0xe7ba('0x23'),_0x1672f0['uniqueid'],_0x276bc3['id'],_['map'](_0x448bcc,'id')['join'](','));}return;}else{logger['info'](_0xe7ba('0x24'),_0x1672f0['uniqueid'],_0x276bc3['id']);var _0x4ecc0d={'ListId':_0x4b6597};var _0x5ece11=_0x15083a[_0xe7ba('0x25')]&&_0x15083a[_0xe7ba('0x25')]!=='0'?_0x15083a[_0xe7ba('0x25')]:_0xe7ba('0x16');if(_0x588c8b){logger[_0xe7ba('0x8')](_0xe7ba('0x26'),_0x1672f0[_0xe7ba('0x22')],_0x276bc3['id']);_0x4ecc0d[_0x5ece11]=_[_0xe7ba('0xe')](_0x1672f0['routeId'])?_0x1672f0[_0xe7ba('0x27')]:_0x1672f0['destcalleridnum'];if(_[_0xe7ba('0xe')](_0x1672f0[_0xe7ba('0x28')])){_0x4ecc0d[_0xe7ba('0x14')]=_0x1672f0['calleridname']&&_0x1672f0['calleridname']!==_0xe7ba('0x29')?_0x1672f0[_0xe7ba('0x2a')]:_0xe7ba('0x2b');}else{_0x4ecc0d[_0xe7ba('0x14')]=_0x1672f0[_0xe7ba('0x2c')]&&_0x1672f0['destcalleridname']!==_0xe7ba('0x29')?_0x1672f0[_0xe7ba('0x2c')]:'Unknown';}return BPromise[_0xe7ba('0x1c')]()['then'](cmContactRpc['createContact'](_0x4ecc0d))[_0xe7ba('0x1e')](function(_0x134f21){_0x99a86f=_0x134f21;_0x448bcc[_0xe7ba('0x2d')](_0x134f21);if(_0x99a86f){logger['info'](_0xe7ba('0x2e'),_0x1672f0['uniqueid'],_0x276bc3['id'],_0x99a86f['id']);}return;});}else{logger[_0xe7ba('0x8')](_0xe7ba('0x2f'),_0x1672f0[_0xe7ba('0x22')],_0x276bc3['id']);_0x4ecc0d[_0x5ece11]=_[_0xe7ba('0xe')](_0x1672f0[_0xe7ba('0x28')])?_0x1672f0['calleridnum']:_0x1672f0[_0xe7ba('0x30')];if(_[_0xe7ba('0xe')](_0x1672f0['routeId'])){_0x4ecc0d[_0xe7ba('0x14')]=_0x1672f0[_0xe7ba('0x2a')]&&_0x1672f0[_0xe7ba('0x2a')]!=='<unknown>'?_0x1672f0[_0xe7ba('0x2a')]:_0xe7ba('0x2b');}else{_0x4ecc0d['firstName']=_0x1672f0[_0xe7ba('0x2c')]&&_0x1672f0[_0xe7ba('0x2c')]!==_0xe7ba('0x29')?_0x1672f0['destcalleridname']:_0xe7ba('0x2b');}_0x99a86f=_0x4ecc0d;_0x448bcc[_0xe7ba('0x2d')](_0x4ecc0d);return;}}})['then'](function(){if(_0x375ebb){emit(_0x1672f0[_0xe7ba('0x22')],_0x276bc3,util[_0xe7ba('0x31')](_0xe7ba('0x32'),_0x375ebb['name']),util['format'](_0xe7ba('0x33'),_0x15083a[_0xe7ba('0x34')][_0xe7ba('0x35')]()),{'evt':_[_0xe7ba('0x36')](_0x1672f0,{'autoCreate':_0x588c8b}),'contact':_0x99a86f===undefined?{}:_0x99a86f,'contacts':_0x448bcc[_0xe7ba('0x20')]===0x0?undefined:_0x448bcc});}});};
\ No newline at end of file
+var _0xf3f9=['merge','bluebird','ioredis','../../../../config/environment','trigger','../../rpc/cmContact','redis','defaults','socket.io-emitter','info','stringify','emit','data1','data2','xmd-contactid','data3','phone','$or','map','destcalleridnum','calleridnum','firstName','lastName','mobile','fax','ListId','createdAt','scheduledAt','updatedAt','resolve','then','getContacts','isEmpty','[CM][%s][%s]\x20Contact\x20found:%s','uniqueid','[CM][%s][%s]\x20Multiple\x20contacts\x20found:[%s]','join','[CM][%s][%s]\x20Contact\x20not\x20found','data4','[CM][%s][%s]\x20Autocreate\x20enabled','isNil','routeId','calleridname','<unknown>','Unknown','destcalleridname','createContact','[CM][%s][%s]\x20Contact\x20created:%s','[CM][%s][%s]\x20Autocreate\x20disabled','push','user:%s','name','action','toLowerCase'];(function(_0x346b91,_0x47da02){var _0x19650b=function(_0x729a9){while(--_0x729a9){_0x346b91['push'](_0x346b91['shift']());}};_0x19650b(++_0x47da02);}(_0xf3f9,0xd9));var _0x9f3f=function(_0x4149b7,_0x109dd8){_0x4149b7=_0x4149b7-0x0;var _0x3b952e=_0xf3f9[_0x4149b7];return _0x3b952e;};'use strict';var _=require('lodash');var BPromise=require(_0x9f3f('0x0'));var Redis=require(_0x9f3f('0x1'));var util=require('util');var config=require(_0x9f3f('0x2'));var logger=require('../../../../config/logger')(_0x9f3f('0x3'));var cmContactRpc=require(_0x9f3f('0x4'));config[_0x9f3f('0x5')]=_[_0x9f3f('0x6')](config[_0x9f3f('0x5')],{'host':'localhost','port':0x18eb});var io=require(_0x9f3f('0x7'))(new Redis(config[_0x9f3f('0x5')]));function emit(_0x1c3fee,_0x5a84b8,_0x555762,_0x718fbc,_0x33fec9){logger[_0x9f3f('0x8')]('[CM][%s][%s]',_0x1c3fee,_0x5a84b8['id'],_0x555762,_0x718fbc,JSON[_0x9f3f('0x9')](_0x33fec9));io['to'](_0x555762)[_0x9f3f('0xa')](_0x718fbc,_0x33fec9);}exports['exec']=function(_0x248764,_0x4cfdc7,_0x31d9d6,_0x262667){var _0x3a27c9,_0x68fc23;var _0x27d4c6={};var _0x5835bb=Number(_0x31d9d6[_0x9f3f('0xb')]);var _0x1b886e=_0x31d9d6['data2']?Boolean(Number(_0x31d9d6[_0x9f3f('0xc')])):![];var _0x501049;if(_0x262667[_0x9f3f('0xd')]){_0x27d4c6['id']=_0x262667[_0x9f3f('0xd')];}if(!_0x27d4c6['id']){_0x27d4c6['ListId']=_0x5835bb;_0x501049=_0x31d9d6[_0x9f3f('0xe')]&&_0x31d9d6[_0x9f3f('0xe')]!=='0'?_0x31d9d6[_0x9f3f('0xe')]['split'](','):[_0x9f3f('0xf')];_0x27d4c6[_0x9f3f('0x10')]=_[_0x9f3f('0x11')](_0x501049,function(_0x26984a){var _0x2a3905={};_0x2a3905[_0x26984a]=_0x262667['routeId']?_0x262667[_0x9f3f('0x12')]:_0x262667[_0x9f3f('0x13')];return _0x2a3905;});}var _0x2a5792=['id',_0x9f3f('0x14'),_0x9f3f('0x15'),_0x9f3f('0xf'),_0x9f3f('0x16'),_0x9f3f('0x17'),_0x9f3f('0x18'),_0x9f3f('0x19'),_0x9f3f('0x1a'),_0x9f3f('0x1b')];var _0x492075=_['union'](_0x2a5792,_0x501049);BPromise[_0x9f3f('0x1c')]()[_0x9f3f('0x1d')](cmContactRpc[_0x9f3f('0x1e')]({'attributes':_0x492075,'where':_0x27d4c6}))[_0x9f3f('0x1d')](function(_0x1e4a18){_0x68fc23=_0x1e4a18;if(!_[_0x9f3f('0x1f')](_0x68fc23)){if(_0x68fc23['length']===0x1){_0x3a27c9=_0x68fc23[0x0];logger[_0x9f3f('0x8')](_0x9f3f('0x20'),_0x262667[_0x9f3f('0x21')],_0x4cfdc7['id'],_0x3a27c9['id']);}else{logger['info'](_0x9f3f('0x22'),_0x262667[_0x9f3f('0x21')],_0x4cfdc7['id'],_['map'](_0x68fc23,'id')[_0x9f3f('0x23')](','));}return;}else{logger[_0x9f3f('0x8')](_0x9f3f('0x24'),_0x262667[_0x9f3f('0x21')],_0x4cfdc7['id']);var _0x138b4a={'ListId':_0x5835bb};var _0x36e5c3=_0x31d9d6[_0x9f3f('0x25')]&&_0x31d9d6[_0x9f3f('0x25')]!=='0'?_0x31d9d6['data4']:'phone';if(_0x1b886e){logger[_0x9f3f('0x8')](_0x9f3f('0x26'),_0x262667[_0x9f3f('0x21')],_0x4cfdc7['id']);_0x138b4a[_0x36e5c3]=_[_0x9f3f('0x27')](_0x262667[_0x9f3f('0x28')])?_0x262667['calleridnum']:_0x262667[_0x9f3f('0x12')];if(_[_0x9f3f('0x27')](_0x262667['routeId'])){_0x138b4a[_0x9f3f('0x14')]=_0x262667[_0x9f3f('0x29')]&&_0x262667[_0x9f3f('0x29')]!==_0x9f3f('0x2a')?_0x262667[_0x9f3f('0x29')]:_0x9f3f('0x2b');}else{_0x138b4a['firstName']=_0x262667['destcalleridname']&&_0x262667[_0x9f3f('0x2c')]!==_0x9f3f('0x2a')?_0x262667[_0x9f3f('0x2c')]:_0x9f3f('0x2b');}return BPromise[_0x9f3f('0x1c')]()[_0x9f3f('0x1d')](cmContactRpc[_0x9f3f('0x2d')](_0x138b4a))[_0x9f3f('0x1d')](function(_0x14645b){_0x3a27c9=_0x14645b;_0x68fc23['push'](_0x14645b);if(_0x3a27c9){logger[_0x9f3f('0x8')](_0x9f3f('0x2e'),_0x262667[_0x9f3f('0x21')],_0x4cfdc7['id'],_0x3a27c9['id']);}return;});}else{logger['info'](_0x9f3f('0x2f'),_0x262667[_0x9f3f('0x21')],_0x4cfdc7['id']);_0x138b4a[_0x36e5c3]=_[_0x9f3f('0x27')](_0x262667[_0x9f3f('0x28')])?_0x262667[_0x9f3f('0x13')]:_0x262667[_0x9f3f('0x12')];if(_['isNil'](_0x262667[_0x9f3f('0x28')])){_0x138b4a[_0x9f3f('0x14')]=_0x262667['calleridname']&&_0x262667[_0x9f3f('0x29')]!=='<unknown>'?_0x262667['calleridname']:'Unknown';}else{_0x138b4a['firstName']=_0x262667[_0x9f3f('0x2c')]&&_0x262667['destcalleridname']!=='<unknown>'?_0x262667[_0x9f3f('0x2c')]:_0x9f3f('0x2b');}_0x3a27c9=_0x138b4a;_0x68fc23[_0x9f3f('0x30')](_0x138b4a);return;}}})[_0x9f3f('0x1d')](function(){if(_0x248764){emit(_0x262667[_0x9f3f('0x21')],_0x4cfdc7,util['format'](_0x9f3f('0x31'),_0x248764[_0x9f3f('0x32')]),util['format']('trigger:%s',_0x31d9d6[_0x9f3f('0x33')][_0x9f3f('0x34')]()),{'evt':_[_0x9f3f('0x35')](_0x262667,{'autoCreate':_0x1b886e}),'contact':_0x3a27c9===undefined?{}:_0x3a27c9,'contacts':_0x68fc23['length']===0x0?undefined:_0x68fc23});}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x46d7=['script','parse','search','replace','AllConditions','checkConditions','channel','AnyConditions','some','field','account','chat','ChatWebsiteId','operator','value','upperFirst','AccountId','interaction','event','lastevent','url','mustache','./integration','./cmContact','./script','trigger','../ami','defaults','redis','localhost','socket.io-emitter','triggers','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','accounts','custom:agentcalled','syncCustomEvent','custom:agentconnect','bind','custom:agentringnoanswer','custom:agentcomplete','custom:agentnosuchnumber','custom:agentnoanswer','custom:agentcongestion','custom:amd','custom:queuecallerabandon','custom:timeout','custom:dialbegin','syncAgentDial','custom:dialconnect','custom:dialend','custom:closedinteraction','custom:substatus','custom:incomingmessage','custom:outgoingmessage','custom:acceptmessage','custom:rejectmessage','emit','info','prototype','undefined','motionChannel','voice','checkTriggers','interface','hasOwnProperty','status','checkTrigger','merge','variables','Actions','length','toLowerCase','contactmanager','motionbar','data1','popup','TemplateId','data2','html','render','template\x20not\x20found','uri','buildUri','isNil','data3','data4','uriLocation','windowWidth','data5','800','windowHeight','data6','winapp','winApplication','winArguments','format','user:%s','name','trigger:%s:%s','action','jscripty','trigger:%s','exec','queue','routeId','urlforward'];(function(_0x1ae545,_0x262a51){var _0x1c16dd=function(_0x1f9a4f){while(--_0x1f9a4f){_0x1ae545['push'](_0x1ae545['shift']());}};_0x1c16dd(++_0x262a51);}(_0x46d7,0x1f0));var _0x746d=function(_0x5d20ed,_0x4f009f){_0x5d20ed=_0x5d20ed-0x0;var _0x5b998e=_0x46d7[_0x5d20ed];return _0x5b998e;};'use strict';var util=require('util');var _=require('lodash');var url=require(_0x746d('0x0'));var Mustache=require(_0x746d('0x1'));var Redis=require('ioredis');var urlforward=require('./urlforward');var integration=require(_0x746d('0x2'));var cmContact=require(_0x746d('0x3'));var script=require(_0x746d('0x4'));var config=require('../../../config/environment');var logger=require('../../../config/logger')(_0x746d('0x5'));var ami=require(_0x746d('0x6'));config['redis']=_[_0x746d('0x7')](config[_0x746d('0x8')],{'host':_0x746d('0x9'),'port':0x18eb});var io=require(_0x746d('0xa'))(new Redis(config[_0x746d('0x8')]));var operators={'equals':function(_0x4457bf,_0x5e104c){return _0x4457bf==_0x5e104c;},'not_equals':function(_0x287260,_0x5768bf){return _0x287260!=_0x5768bf;}};var barAndWebActions=['popup',_0x746d('0x0'),'winapp'];function Trigger(_0x474374){this['triggers']=_0x474374[_0x746d('0xb')];this['agents']=_0x474374[_0x746d('0xc')];this[_0x746d('0xd')]=_0x474374[_0x746d('0xd')];this['templates']=_0x474374[_0x746d('0xe')];this[_0x746d('0xf')]=_0x474374[_0x746d('0xf')];this['zendeskAccounts']=_0x474374[_0x746d('0x10')];this[_0x746d('0x11')]=_0x474374[_0x746d('0x11')];this[_0x746d('0x12')]=_0x474374[_0x746d('0x12')];this['sugarcrmAccounts']=_0x474374[_0x746d('0x13')];this['zohoAccounts']=_0x474374[_0x746d('0x14')];this[_0x746d('0x15')]=_0x474374[_0x746d('0x15')];this[_0x746d('0x16')]=_0x474374[_0x746d('0x16')];this[_0x746d('0x17')]=_0x474374[_0x746d('0x17')];this[_0x746d('0x18')]=_0x474374[_0x746d('0x18')];this[_0x746d('0x19')]=_0x474374[_0x746d('0x19')];this[_0x746d('0x1a')]={'zendesk':this[_0x746d('0x10')],'salesforce':this[_0x746d('0x12')],'freshdesk':this['freshdeskAccounts'],'sugarcrm':this[_0x746d('0x13')],'zoho':this[_0x746d('0x14')],'desk':this[_0x746d('0x15')],'vtiger':this['vtigerAccounts'],'dynamics365':this[_0x746d('0x18')],'freshsales':this[_0x746d('0x19')],'servicenow':this[_0x746d('0x17')]};ami['on'](_0x746d('0x1b'),this[_0x746d('0x1c')]['bind'](this));ami['on'](_0x746d('0x1d'),this[_0x746d('0x1c')][_0x746d('0x1e')](this));ami['on'](_0x746d('0x1f'),this['syncCustomEvent'][_0x746d('0x1e')](this));ami['on'](_0x746d('0x20'),this[_0x746d('0x1c')][_0x746d('0x1e')](this));ami['on'](_0x746d('0x21'),this[_0x746d('0x1c')][_0x746d('0x1e')](this));ami['on'](_0x746d('0x22'),this[_0x746d('0x1c')]['bind'](this));ami['on']('custom:agentbusy',this[_0x746d('0x1c')][_0x746d('0x1e')](this));ami['on'](_0x746d('0x23'),this[_0x746d('0x1c')][_0x746d('0x1e')](this));ami['on']('custom:agentreject',this['syncCustomEvent'][_0x746d('0x1e')](this));ami['on'](_0x746d('0x24'),this[_0x746d('0x1c')][_0x746d('0x1e')](this));ami['on'](_0x746d('0x25'),this[_0x746d('0x1c')][_0x746d('0x1e')](this));ami['on'](_0x746d('0x26'),this[_0x746d('0x1c')][_0x746d('0x1e')](this));ami['on'](_0x746d('0x27'),this[_0x746d('0x28')][_0x746d('0x1e')](this));ami['on'](_0x746d('0x29'),this[_0x746d('0x28')]['bind'](this));ami['on'](_0x746d('0x2a'),this[_0x746d('0x28')][_0x746d('0x1e')](this));ami['on']('custom:newinteraction',this[_0x746d('0x1c')][_0x746d('0x1e')](this));ami['on'](_0x746d('0x2b'),this[_0x746d('0x1c')][_0x746d('0x1e')](this));ami['on'](_0x746d('0x2c'),this[_0x746d('0x1c')][_0x746d('0x1e')](this));ami['on'](_0x746d('0x2d'),this[_0x746d('0x1c')][_0x746d('0x1e')](this));ami['on'](_0x746d('0x2e'),this[_0x746d('0x1c')][_0x746d('0x1e')](this));ami['on'](_0x746d('0x2f'),this['syncCustomEvent']['bind'](this));ami['on'](_0x746d('0x30'),this[_0x746d('0x1c')][_0x746d('0x1e')](this));}Trigger['prototype'][_0x746d('0x31')]=function(_0xc49e2b,_0x228e36,_0x2a5c5c){logger[_0x746d('0x32')](_0xc49e2b,_0x228e36,JSON['stringify'](_0x2a5c5c));io['to'](_0xc49e2b)[_0x746d('0x31')](_0x228e36,_0x2a5c5c);};Trigger[_0x746d('0x33')][_0x746d('0x1c')]=function(_0x48a744){var _0x4e08fa=_['clone'](_0x48a744);if(typeof _0x4e08fa['motionChannel']===_0x746d('0x34')){_0x4e08fa[_0x746d('0x35')]=_0x746d('0x36');}this[_0x746d('0x37')](_0x4e08fa);};Trigger['prototype'][_0x746d('0x28')]=function(_0x5c6757){if(this[_0x746d('0xc')][_0x5c6757[_0x746d('0x38')]]){this['syncCustomEvent'](_0x5c6757);}};Trigger['prototype'][_0x746d('0x37')]=function(_0x165979){var _0x6a0b12;for(var _0x1ad9b1 in this[_0x746d('0xb')]){if(this[_0x746d('0xb')][_0x746d('0x39')](_0x1ad9b1)){if(this[_0x746d('0xb')][_0x1ad9b1][_0x746d('0x3a')]){_0x6a0b12=this[_0x746d('0x3b')](this[_0x746d('0xb')][_0x1ad9b1],_0x165979);if(_0x6a0b12){_[_0x746d('0x3c')](_0x165979,_0x165979[_0x746d('0x3d')]);for(var _0x1db951=0x0,_0x14c1ac,_0x4a3d16,_0x1a2501;_0x1db951<this[_0x746d('0xb')][_0x1ad9b1][_0x746d('0x3e')][_0x746d('0x3f')];_0x1db951+=0x1){_0x14c1ac=this[_0x746d('0xb')][_0x1ad9b1]['Actions'][_0x1db951];if(this[_0x746d('0xc')][_0x165979[_0x746d('0x38')]]){switch(_0x14c1ac['action'][_0x746d('0x40')]()){case _0x746d('0x41'):break;case _0x746d('0x42'):case'browser':var _0x1fc03a={};switch(barAndWebActions[_0x14c1ac[_0x746d('0x43')]]){case _0x746d('0x44'):_0x1fc03a[_0x746d('0x45')]=_0x14c1ac[_0x746d('0x46')];_0x1fc03a[_0x746d('0x47')]=this[_0x746d('0xe')][_0x14c1ac[_0x746d('0x46')]]?Mustache[_0x746d('0x48')](this[_0x746d('0xe')][_0x14c1ac[_0x746d('0x46')]][_0x746d('0x47')],_0x165979):_0x746d('0x49');break;case _0x746d('0x0'):_0x1fc03a[_0x746d('0x4a')]=this[_0x746d('0x4b')](_0x14c1ac['data2'],_0x165979,_[_0x746d('0x4c')](_0x14c1ac[_0x746d('0x4d')])?!![]:parseInt(_0x14c1ac[_0x746d('0x4d')],0xa));if(_[_0x746d('0x4c')](_0x14c1ac[_0x746d('0x4e')])){_0x1fc03a['location']='0';}else{_0x1fc03a[_0x746d('0x4f')]=_0x14c1ac['data4'];_0x1fc03a[_0x746d('0x50')]=_['isNil'](_0x14c1ac[_0x746d('0x51')])?_0x746d('0x52'):_0x14c1ac[_0x746d('0x51')];_0x1fc03a[_0x746d('0x53')]=_[_0x746d('0x4c')](_0x14c1ac[_0x746d('0x54')])?'600':_0x14c1ac['data6'];}break;case _0x746d('0x55'):_0x1fc03a[_0x746d('0x56')]=_0x14c1ac[_0x746d('0x46')]?Mustache['render'](_0x14c1ac[_0x746d('0x46')],_0x165979):'';_0x1fc03a[_0x746d('0x57')]=_0x14c1ac['data3']?Mustache['render'](_0x14c1ac[_0x746d('0x4d')],_0x165979):'';break;}this[_0x746d('0x31')](util[_0x746d('0x58')](_0x746d('0x59'),this['agents'][_0x165979[_0x746d('0x38')]][_0x746d('0x5a')]),util[_0x746d('0x58')](_0x746d('0x5b'),_0x14c1ac[_0x746d('0x5c')][_0x746d('0x40')](),barAndWebActions[_0x14c1ac['data1']]),_[_0x746d('0x3c')](_0x1fc03a,_0x165979));break;case _0x746d('0x5d'):this[_0x746d('0x31')](util[_0x746d('0x58')](_0x746d('0x59'),this['agents'][_0x165979[_0x746d('0x38')]]['name']),util['format']('trigger:%s',_0x14c1ac[_0x746d('0x5c')][_0x746d('0x40')]()),_['merge']({'ProjectId':parseInt(_0x14c1ac[_0x746d('0x43')],0xa)},_0x165979));break;default:this[_0x746d('0x31')](util[_0x746d('0x58')]('user:%s',this[_0x746d('0xc')][_0x165979[_0x746d('0x38')]][_0x746d('0x5a')]),util[_0x746d('0x58')](_0x746d('0x5e'),_0x14c1ac[_0x746d('0x5c')][_0x746d('0x40')]()),_[_0x746d('0x3c')]({},_0x14c1ac,_0x165979));}}switch(_0x14c1ac[_0x746d('0x5c')][_0x746d('0x40')]()){case'contactmanager':cmContact[_0x746d('0x5f')](this['agents'][_0x165979['interface']],this['triggers'][_0x1ad9b1],_0x14c1ac,_0x165979);break;case'integration':integration[_0x746d('0x5f')](_0x14c1ac,_0x165979,this[_0x746d('0x1a')],this['agents'][_0x165979[_0x746d('0x38')]],this[_0x746d('0xd')][_0x165979[_0x746d('0x60')]],this[_0x746d('0xf')][_0x165979[_0x746d('0x61')]]);break;case _0x746d('0x62'):urlforward[_0x746d('0x5f')](_0x14c1ac,_0x165979);break;case _0x746d('0x63'):script['exec'](_0x14c1ac,_0x165979);break;}}}}}}};Trigger[_0x746d('0x33')]['buildUri']=function(_0x1c8b30,_0x213328,_0x30bf86){var _0x422e36=url[_0x746d('0x64')](Mustache['render'](_0x1c8b30,_0x213328),!![]);if(_0x30bf86){_[_0x746d('0x3c')](_0x422e36['query'],_0x213328);}delete _0x422e36[_0x746d('0x65')];var _0x1aa25b=url['format'](_0x422e36);_0x1aa25b=_0x1aa25b[_0x746d('0x66')](/\/\?/g,'?');return _0x1aa25b;};Trigger['prototype'][_0x746d('0x3b')]=function(_0x482abf,_0x237a8a){var _0x540581=!![];var _0x2c5454=!![];var _0x10ed68=![];if(_0x482abf['channel']===_0x237a8a[_0x746d('0x35')]){_0x10ed68=!![];}if(_0x482abf['AllConditions'][_0x746d('0x3f')]){_0x540581=_['every'](_0x482abf[_0x746d('0x67')],this[_0x746d('0x68')](_0x237a8a,_0x482abf[_0x746d('0x69')]));}if(_0x482abf[_0x746d('0x6a')]['length']){_0x2c5454=_[_0x746d('0x6b')](_0x482abf['AnyConditions'],this[_0x746d('0x68')](_0x237a8a,_0x482abf[_0x746d('0x69')]));}return _0x10ed68&&_0x540581&&_0x2c5454;};Trigger['prototype'][_0x746d('0x68')]=function(_0x3e0a44,_0x29d2c9){return function(_0x9ecd0e){switch(_0x9ecd0e[_0x746d('0x6c')]){case _0x746d('0x6d'):if(_0x3e0a44['channel']===_0x29d2c9){if(_0x29d2c9===_0x746d('0x6e')){return _0x3e0a44[_0x746d('0x6f')]?operators[_0x9ecd0e[_0x746d('0x70')]](Number(_0x9ecd0e[_0x746d('0x71')]),_0x3e0a44[_0x746d('0x6f')]):![];}else{return _0x3e0a44[_[_0x746d('0x72')](_0x29d2c9)+_0x746d('0x73')]?operators[_0x9ecd0e[_0x746d('0x70')]](Number(_0x9ecd0e['value']),_0x3e0a44[_[_0x746d('0x72')](_0x29d2c9)+_0x746d('0x73')]):![];}}break;case _0x746d('0x74'):case'message':if(_0x3e0a44[_0x746d('0x69')]===_0x29d2c9){return _0x3e0a44[_0x746d('0x75')]?operators[_0x9ecd0e[_0x746d('0x70')]](_0x9ecd0e['value'],_0x3e0a44['event']):![];}break;case _0x746d('0x60'):return _0x3e0a44[_0x746d('0x60')]?operators[_0x9ecd0e[_0x746d('0x70')]](_0x9ecd0e[_0x746d('0x71')],_0x3e0a44[_0x746d('0x60')]):![];case'agent':return _0x3e0a44['membername']?operators[_0x9ecd0e['operator']](_0x9ecd0e['value'],_0x3e0a44['membername']):![];case _0x746d('0x76'):return _0x3e0a44['lastevent']?operators[_0x9ecd0e[_0x746d('0x70')]](_0x9ecd0e[_0x746d('0x71')],_0x3e0a44[_0x746d('0x76')]):![];case'routeId':return _0x3e0a44[_0x746d('0x61')]?operators[_0x9ecd0e['operator']](_0x9ecd0e[_0x746d('0x71')],_0x3e0a44['routeId']):![];}return![];};};module['exports']=Trigger;
\ No newline at end of file
+var _0x0690=['channel','AnyConditions','field','ChatWebsiteId','AccountId','operator','value','upperFirst','membername','lastevent','exports','lodash','url','mustache','ioredis','./urlforward','./integration','./cmContact','../../../config/logger','../ami','redis','defaults','localhost','popup','winapp','triggers','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','accounts','custom:agentcalled','bind','custom:agentconnect','syncCustomEvent','custom:agentringnoanswer','custom:agentcomplete','custom:agentnosuchnumber','custom:agentbusy','custom:agentcongestion','custom:agentreject','custom:amd','custom:timeout','custom:dialbegin','custom:dialconnect','custom:dialend','syncAgentDial','custom:newinteraction','custom:incomingmessage','custom:acceptmessage','custom:rejectmessage','prototype','emit','info','clone','checkTriggers','hasOwnProperty','status','checkTrigger','merge','variables','Actions','length','interface','action','toLowerCase','contactmanager','motionbar','browser','data1','TemplateId','data2','html','render','uri','buildUri','isNil','data3','data4','windowWidth','data5','800','windowHeight','data6','600','winArguments','format','user:%s','name','jscripty','trigger:%s','queue','routeId','urlforward','exec','script','parse','query','search','AllConditions','every','checkConditions'];(function(_0xb13128,_0x3f0e83){var _0x55c553=function(_0x107ee3){while(--_0x107ee3){_0xb13128['push'](_0xb13128['shift']());}};_0x55c553(++_0x3f0e83);}(_0x0690,0x1c7));var _0x0069=function(_0x4206f5,_0x21f338){_0x4206f5=_0x4206f5-0x0;var _0xa29cf3=_0x0690[_0x4206f5];return _0xa29cf3;};'use strict';var util=require('util');var _=require(_0x0069('0x0'));var url=require(_0x0069('0x1'));var Mustache=require(_0x0069('0x2'));var Redis=require(_0x0069('0x3'));var urlforward=require(_0x0069('0x4'));var integration=require(_0x0069('0x5'));var cmContact=require(_0x0069('0x6'));var script=require('./script');var config=require('../../../config/environment');var logger=require(_0x0069('0x7'))('trigger');var ami=require(_0x0069('0x8'));config[_0x0069('0x9')]=_[_0x0069('0xa')](config[_0x0069('0x9')],{'host':_0x0069('0xb'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x0069('0x9')]));var operators={'equals':function(_0x1db27d,_0x4f886e){return _0x1db27d==_0x4f886e;},'not_equals':function(_0x37265a,_0x586a65){return _0x37265a!=_0x586a65;}};var barAndWebActions=[_0x0069('0xc'),_0x0069('0x1'),_0x0069('0xd')];function Trigger(_0x25e464){this[_0x0069('0xe')]=_0x25e464[_0x0069('0xe')];this[_0x0069('0xf')]=_0x25e464[_0x0069('0xf')];this[_0x0069('0x10')]=_0x25e464[_0x0069('0x10')];this['templates']=_0x25e464[_0x0069('0x11')];this[_0x0069('0x12')]=_0x25e464[_0x0069('0x12')];this[_0x0069('0x13')]=_0x25e464[_0x0069('0x13')];this[_0x0069('0x14')]=_0x25e464[_0x0069('0x14')];this[_0x0069('0x15')]=_0x25e464[_0x0069('0x15')];this[_0x0069('0x16')]=_0x25e464['sugarcrmAccounts'];this[_0x0069('0x17')]=_0x25e464['zohoAccounts'];this['deskAccounts']=_0x25e464['deskAccounts'];this[_0x0069('0x18')]=_0x25e464[_0x0069('0x18')];this[_0x0069('0x19')]=_0x25e464['servicenowAccounts'];this['dynamics365Accounts']=_0x25e464[_0x0069('0x1a')];this[_0x0069('0x1b')]=_0x25e464[_0x0069('0x1b')];this[_0x0069('0x1c')]={'zendesk':this['zendeskAccounts'],'salesforce':this[_0x0069('0x15')],'freshdesk':this[_0x0069('0x14')],'sugarcrm':this['sugarcrmAccounts'],'zoho':this['zohoAccounts'],'desk':this['deskAccounts'],'vtiger':this[_0x0069('0x18')],'dynamics365':this[_0x0069('0x1a')],'freshsales':this['freshsalesAccounts'],'servicenow':this['servicenowAccounts']};ami['on'](_0x0069('0x1d'),this['syncCustomEvent'][_0x0069('0x1e')](this));ami['on'](_0x0069('0x1f'),this[_0x0069('0x20')][_0x0069('0x1e')](this));ami['on'](_0x0069('0x21'),this['syncCustomEvent'][_0x0069('0x1e')](this));ami['on'](_0x0069('0x22'),this[_0x0069('0x20')]['bind'](this));ami['on'](_0x0069('0x23'),this[_0x0069('0x20')][_0x0069('0x1e')](this));ami['on']('custom:agentnoanswer',this['syncCustomEvent'][_0x0069('0x1e')](this));ami['on'](_0x0069('0x24'),this['syncCustomEvent']['bind'](this));ami['on'](_0x0069('0x25'),this['syncCustomEvent'][_0x0069('0x1e')](this));ami['on'](_0x0069('0x26'),this[_0x0069('0x20')][_0x0069('0x1e')](this));ami['on'](_0x0069('0x27'),this[_0x0069('0x20')][_0x0069('0x1e')](this));ami['on']('custom:queuecallerabandon',this['syncCustomEvent']['bind'](this));ami['on'](_0x0069('0x28'),this[_0x0069('0x20')][_0x0069('0x1e')](this));ami['on'](_0x0069('0x29'),this['syncAgentDial'][_0x0069('0x1e')](this));ami['on'](_0x0069('0x2a'),this['syncAgentDial']['bind'](this));ami['on'](_0x0069('0x2b'),this[_0x0069('0x2c')]['bind'](this));ami['on'](_0x0069('0x2d'),this[_0x0069('0x20')][_0x0069('0x1e')](this));ami['on']('custom:closedinteraction',this[_0x0069('0x20')][_0x0069('0x1e')](this));ami['on'](_0x0069('0x2e'),this[_0x0069('0x20')][_0x0069('0x1e')](this));ami['on']('custom:outgoingmessage',this[_0x0069('0x20')][_0x0069('0x1e')](this));ami['on'](_0x0069('0x2f'),this[_0x0069('0x20')][_0x0069('0x1e')](this));ami['on'](_0x0069('0x30'),this['syncCustomEvent'][_0x0069('0x1e')](this));}Trigger[_0x0069('0x31')][_0x0069('0x32')]=function(_0x3a51fa,_0x415ca8,_0xebec2b){logger[_0x0069('0x33')](_0x3a51fa,_0x415ca8,JSON['stringify'](_0xebec2b));io['to'](_0x3a51fa)[_0x0069('0x32')](_0x415ca8,_0xebec2b);};Trigger[_0x0069('0x31')][_0x0069('0x20')]=function(_0x1b094c){var _0x680833=_[_0x0069('0x34')](_0x1b094c);this[_0x0069('0x35')](_0x680833);};Trigger['prototype']['syncAgentDial']=function(_0x36595f){if(this[_0x0069('0xf')][_0x36595f['interface']]){this['syncCustomEvent'](_0x36595f);}};Trigger[_0x0069('0x31')][_0x0069('0x35')]=function(_0x704e8c){var _0x5abf2f;for(var _0x47c386 in this[_0x0069('0xe')]){if(this[_0x0069('0xe')][_0x0069('0x36')](_0x47c386)){if(this[_0x0069('0xe')][_0x47c386][_0x0069('0x37')]){_0x5abf2f=this[_0x0069('0x38')](this['triggers'][_0x47c386],_0x704e8c);if(_0x5abf2f){_[_0x0069('0x39')](_0x704e8c,_0x704e8c[_0x0069('0x3a')]);for(var _0x5ec4d3=0x0,_0x35101c,_0x3e0db2,_0x18aec9;_0x5ec4d3<this[_0x0069('0xe')][_0x47c386][_0x0069('0x3b')][_0x0069('0x3c')];_0x5ec4d3+=0x1){_0x35101c=this[_0x0069('0xe')][_0x47c386][_0x0069('0x3b')][_0x5ec4d3];if(this['agents'][_0x704e8c[_0x0069('0x3d')]]){switch(_0x35101c[_0x0069('0x3e')][_0x0069('0x3f')]()){case _0x0069('0x40'):break;case _0x0069('0x41'):case _0x0069('0x42'):var _0x36b9f8={};switch(barAndWebActions[_0x35101c[_0x0069('0x43')]]){case'popup':_0x36b9f8[_0x0069('0x44')]=_0x35101c[_0x0069('0x45')];_0x36b9f8[_0x0069('0x46')]=this['templates'][_0x35101c[_0x0069('0x45')]]?Mustache[_0x0069('0x47')](this['templates'][_0x35101c[_0x0069('0x45')]][_0x0069('0x46')],_0x704e8c):'template\x20not\x20found';break;case'url':_0x36b9f8[_0x0069('0x48')]=this[_0x0069('0x49')](_0x35101c['data2'],_0x704e8c,_[_0x0069('0x4a')](_0x35101c[_0x0069('0x4b')])?!![]:parseInt(_0x35101c[_0x0069('0x4b')],0xa));if(_[_0x0069('0x4a')](_0x35101c[_0x0069('0x4c')])){_0x36b9f8['location']='0';}else{_0x36b9f8['uriLocation']=_0x35101c[_0x0069('0x4c')];_0x36b9f8[_0x0069('0x4d')]=_['isNil'](_0x35101c[_0x0069('0x4e')])?_0x0069('0x4f'):_0x35101c['data5'];_0x36b9f8[_0x0069('0x50')]=_[_0x0069('0x4a')](_0x35101c[_0x0069('0x51')])?_0x0069('0x52'):_0x35101c['data6'];}break;case _0x0069('0xd'):_0x36b9f8['winApplication']=_0x35101c[_0x0069('0x45')]?Mustache[_0x0069('0x47')](_0x35101c[_0x0069('0x45')],_0x704e8c):'';_0x36b9f8[_0x0069('0x53')]=_0x35101c[_0x0069('0x4b')]?Mustache['render'](_0x35101c[_0x0069('0x4b')],_0x704e8c):'';break;}this['emit'](util[_0x0069('0x54')](_0x0069('0x55'),this[_0x0069('0xf')][_0x704e8c['interface']][_0x0069('0x56')]),util['format']('trigger:%s:%s',_0x35101c[_0x0069('0x3e')][_0x0069('0x3f')](),barAndWebActions[_0x35101c[_0x0069('0x43')]]),_[_0x0069('0x39')](_0x36b9f8,_0x704e8c));break;case _0x0069('0x57'):this[_0x0069('0x32')](util[_0x0069('0x54')](_0x0069('0x55'),this[_0x0069('0xf')][_0x704e8c[_0x0069('0x3d')]][_0x0069('0x56')]),util[_0x0069('0x54')](_0x0069('0x58'),_0x35101c[_0x0069('0x3e')][_0x0069('0x3f')]()),_[_0x0069('0x39')]({'ProjectId':parseInt(_0x35101c['data1'],0xa)},_0x704e8c));break;default:this[_0x0069('0x32')](util[_0x0069('0x54')](_0x0069('0x55'),this[_0x0069('0xf')][_0x704e8c['interface']][_0x0069('0x56')]),util[_0x0069('0x54')](_0x0069('0x58'),_0x35101c[_0x0069('0x3e')]['toLowerCase']()),_[_0x0069('0x39')]({},_0x35101c,_0x704e8c));}}switch(_0x35101c[_0x0069('0x3e')]['toLowerCase']()){case _0x0069('0x40'):cmContact['exec'](this['agents'][_0x704e8c['interface']],this[_0x0069('0xe')][_0x47c386],_0x35101c,_0x704e8c);break;case'integration':integration['exec'](_0x35101c,_0x704e8c,this[_0x0069('0x1c')],this[_0x0069('0xf')][_0x704e8c['interface']],this[_0x0069('0x10')][_0x704e8c[_0x0069('0x59')]],this[_0x0069('0x12')][_0x704e8c[_0x0069('0x5a')]]);break;case _0x0069('0x5b'):urlforward[_0x0069('0x5c')](_0x35101c,_0x704e8c);break;case _0x0069('0x5d'):script[_0x0069('0x5c')](_0x35101c,_0x704e8c);break;}}}}}}};Trigger[_0x0069('0x31')][_0x0069('0x49')]=function(_0x45a1a4,_0x5a89ba,_0x52aacc){var _0x4f9cbf=url[_0x0069('0x5e')](Mustache[_0x0069('0x47')](_0x45a1a4,_0x5a89ba),!![]);if(_0x52aacc){_['merge'](_0x4f9cbf[_0x0069('0x5f')],_0x5a89ba);}delete _0x4f9cbf[_0x0069('0x60')];var _0x4f34e1=url[_0x0069('0x54')](_0x4f9cbf);_0x4f34e1=_0x4f34e1['replace'](/\/\?/g,'?');return _0x4f34e1;};Trigger[_0x0069('0x31')][_0x0069('0x38')]=function(_0x2e824f,_0x3014d7){var _0x1b8f9c=!![],_0x442da9=!![];if(_0x2e824f[_0x0069('0x61')]['length']){_0x1b8f9c=_[_0x0069('0x62')](_0x2e824f[_0x0069('0x61')],this[_0x0069('0x63')](_0x3014d7,_0x2e824f[_0x0069('0x64')]));}if(_0x2e824f[_0x0069('0x65')][_0x0069('0x3c')]){_0x442da9=_['some'](_0x2e824f[_0x0069('0x65')],this[_0x0069('0x63')](_0x3014d7,_0x2e824f[_0x0069('0x64')]));}return _0x1b8f9c&&_0x442da9;};Trigger[_0x0069('0x31')][_0x0069('0x63')]=function(_0x15dd21,_0x1d450b){return function(_0x1af52f){switch(_0x1af52f[_0x0069('0x66')]){case'account':if(_0x15dd21[_0x0069('0x64')]===_0x1d450b){if(_0x1d450b==='chat'){return _0x15dd21[_0x0069('0x67')]?operators[_0x1af52f['operator']](Number(_0x1af52f['value']),_0x15dd21[_0x0069('0x67')]):![];}else{return _0x15dd21[_['upperFirst'](_0x1d450b)+_0x0069('0x68')]?operators[_0x1af52f[_0x0069('0x69')]](Number(_0x1af52f[_0x0069('0x6a')]),_0x15dd21[_[_0x0069('0x6b')](_0x1d450b)+_0x0069('0x68')]):![];}}break;case'interaction':case'message':if(_0x15dd21['channel']===_0x1d450b){return _0x15dd21['event']?operators[_0x1af52f[_0x0069('0x69')]](_0x1af52f[_0x0069('0x6a')],_0x15dd21['event']):![];}break;case _0x0069('0x59'):return _0x15dd21['queue']?operators[_0x1af52f[_0x0069('0x69')]](_0x1af52f[_0x0069('0x6a')],_0x15dd21[_0x0069('0x59')]):![];case'agent':return _0x15dd21[_0x0069('0x6c')]?operators[_0x1af52f[_0x0069('0x69')]](_0x1af52f[_0x0069('0x6a')],_0x15dd21[_0x0069('0x6c')]):![];case _0x0069('0x6d'):return _0x15dd21[_0x0069('0x6d')]?operators[_0x1af52f[_0x0069('0x69')]](_0x1af52f[_0x0069('0x6a')],_0x15dd21[_0x0069('0x6d')]):![];case _0x0069('0x5a'):return _0x15dd21['routeId']?operators[_0x1af52f['operator']](_0x1af52f['value'],_0x15dd21['routeId']):![];}return![];};};module[_0x0069('0x6e')]=Trigger;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe14b=['CTI','concat','Tags','Descriptions','/api/v2/users/%d','user','%s/customers/%d/cases','serverUrl','stripTrailingSlash','monitor_format','[QUEUE]','Recording\x20is\x20enabled!','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','recordingURL','The\x20User\x20ID\x20is:','calleridnum','The\x20Enduser\x20ID\x20is:','The\x20Ticket\x20ID\x20is:','Displaying\x20ticket\x20to\x20agent...','user:%s','trigger:desk:display','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','trigger:browser:url','https://xcally.desk.com/web/agent/case/%d','error','Desk\x20account\x20type\x20not\x20recognized','recordingFormat','none','[OUTBOUND]','Authorization','destcalleridname','destcalleridnum','integrationTab','newTab','catch','unmanaged','lastevent','toUpperCase','calleridname','lodash','request-promise','ioredis','./util','../../../../config/logger','defaults','redis','localhost','socket.io-emitter','application/json','validateEmail','format','%s/users','then','total_entries','find','_embedded','entries','info','Agent\x20found!','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','Invalid\x20email\x20format,\x20using\x20the\x20admin\x20account!','%s/users/me','debug','[HTTP]','stringify','GET','authType','basic','%s:%s','username','password','token','%s/token:%s','Basic\x20%s','base64','Searching\x20enduser\x20with\x20phone','%s/customers/search','Enduser\x20found!','%s/customers','remoteUri','POST','length','map','forEach','includes','string','picklist','type','nameField','customField','toLowerCase','content','toString','idField','variableName','custom_fields','Variable','name','priority','Creating\x20new\x20ticket...','merge','getString','Subjects','phone','new','xCALLY'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0xe14b,0x93));var _0xbe14=function(_0x535655,_0x48f504){_0x535655=_0x535655-0x0;var _0x2f452e=_0xe14b[_0x535655];return _0x2f452e;};'use strict';var _=require(_0xbe14('0x0'));var rp=require(_0xbe14('0x1'));var md5=require('md5');var util=require('util');var Redis=require(_0xbe14('0x2'));var intUtil=require(_0xbe14('0x3'));var config=require('../../../../config/environment');var logger=require(_0xbe14('0x4'))('desk');config['redis']=_[_0xbe14('0x5')](config[_0xbe14('0x6')],{'host':_0xbe14('0x7'),'port':0x18eb});var io=require(_0xbe14('0x8'))(new Redis(config[_0xbe14('0x6')]));function emit(_0x39387e,_0x196fca,_0x566ae7){io['to'](_0x39387e)['emit'](_0x196fca,_0x566ae7);}var headers={'Content-Type':'application/json','Accept':_0xbe14('0x9')};function getUser(_0x6fceff,_0xd68cd7){if(intUtil[_0xbe14('0xa')](_0xd68cd7)===!![]){logger['info']('Getting\x20agent\x20with\x20email',_0xd68cd7);return request({'uri':util[_0xbe14('0xb')](_0xbe14('0xc'),_0x6fceff['remoteUri'])})[_0xbe14('0xd')](function(_0x35aa19){if(_0x35aa19[_0xbe14('0xe')]){return _[_0xbe14('0xf')](_0x35aa19[_0xbe14('0x10')][_0xbe14('0x11')],{'email':_0xd68cd7});}})[_0xbe14('0xd')](function(_0x2850cb){if(_0x2850cb){logger[_0xbe14('0x12')](_0xbe14('0x13'));return _0x2850cb;}else{logger[_0xbe14('0x12')](_0xbe14('0x14'));return request({'uri':util[_0xbe14('0xb')]('%s/users/me',_0x6fceff['remoteUri'])});}});}else{logger[_0xbe14('0x12')](_0xbe14('0x15'));return request({'uri':util[_0xbe14('0xb')](_0xbe14('0x16'),_0x6fceff['remoteUri'])});}}function request(_0x21c789){logger[_0xbe14('0x17')](_0xbe14('0x18'),JSON[_0xbe14('0x19')](_0x21c789));return rp(_[_0xbe14('0x5')](_0x21c789,{'method':_0xbe14('0x1a'),'headers':headers,'json':!![]}));}function getAuth(_0x17ae86){var _0x5ea1f8;if(_0x17ae86[_0xbe14('0x1b')]===_0xbe14('0x1c')){_0x5ea1f8=util[_0xbe14('0xb')](_0xbe14('0x1d'),_0x17ae86[_0xbe14('0x1e')],_0x17ae86[_0xbe14('0x1f')]);}else if(_0x17ae86['authType']===_0xbe14('0x20')){_0x5ea1f8=util[_0xbe14('0xb')](_0xbe14('0x21'),_0x17ae86[_0xbe14('0x1e')],_0x17ae86[_0xbe14('0x20')]);}return util['format'](_0xbe14('0x22'),new Buffer(_0x5ea1f8)['toString'](_0xbe14('0x23')));}function getEndUser(_0x56e80c,_0x32e8eb,_0x4a25fa){logger[_0xbe14('0x12')](_0xbe14('0x24'),_0x4a25fa);return request({'uri':util['format'](_0xbe14('0x25'),_0x56e80c['remoteUri']),'qs':{'phone':_0x4a25fa}})[_0xbe14('0xd')](function(_0x4851f8){if(_0x4851f8[_0xbe14('0xe')]){logger[_0xbe14('0x12')](_0xbe14('0x26'));return _0x4851f8[_0xbe14('0x10')][_0xbe14('0x11')][0x0];}else{logger[_0xbe14('0x12')]('Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!');return request({'uri':util[_0xbe14('0xb')](_0xbe14('0x27'),_0x56e80c[_0xbe14('0x28')]),'method':_0xbe14('0x29'),'body':{'first_name':_0x32e8eb,'title':_0x32e8eb,'phone_numbers':[{'type':'work','value':_0x4a25fa}]}});}});}function getTags(_0x16f884,_0x29fc64){var _0x59bf34=[];if(_0x16f884&&_0x16f884[_0xbe14('0x2a')]>0x0){_0x59bf34=_[_0xbe14('0x2b')](_0x16f884,_0x29fc64);}return _0x59bf34;}function getCustomFields(_0x1c7cc7,_0x19252f){var _0x34d648=[];var _0x36d4b2={'custom_fields':{}};if(_0x1c7cc7[_0xbe14('0x2a')]>0x0){_[_0xbe14('0x2c')](_0x1c7cc7,function(_0x4168c8){if(_[_0xbe14('0x2d')]([_0xbe14('0x2e'),_0xbe14('0x2f')],_0x4168c8[_0xbe14('0x30')])&&_0x4168c8[_0xbe14('0x31')]&&!_0x4168c8[_0xbe14('0x32')]){_0x36d4b2[_0x4168c8[_0xbe14('0x31')][_0xbe14('0x33')]()]=_0x4168c8[_0xbe14('0x34')][_0xbe14('0x35')]();}else if(_[_0xbe14('0x2d')](['string',_0xbe14('0x2f')],_0x4168c8['type'])&&_0x4168c8['idField']&&_0x4168c8[_0xbe14('0x32')]){_0x36d4b2['custom_fields'][_0x4168c8[_0xbe14('0x36')]]=_0x4168c8[_0xbe14('0x34')]['toString']();}else if(_0x4168c8['type']==='variable'&&_0x4168c8[_0xbe14('0x37')]&&_0x4168c8[_0xbe14('0x36')]&&_0x4168c8['customField']){_0x19252f[_0x4168c8[_0xbe14('0x37')]]&&(_0x36d4b2[_0xbe14('0x38')][_0x4168c8[_0xbe14('0x36')]]=_0x19252f[_0x4168c8[_0xbe14('0x37')]][_0xbe14('0x35')]());}else if(_0x4168c8['type']==='customVariable'&&_0x4168c8[_0xbe14('0x39')]&&_0x4168c8['Variable']['name']&&_0x4168c8['idField']&&_0x4168c8[_0xbe14('0x32')]){_0x19252f[_0x4168c8[_0xbe14('0x39')][_0xbe14('0x3a')][_0xbe14('0x33')]()]&&(_0x36d4b2[_0xbe14('0x38')][_0x4168c8[_0xbe14('0x36')]]=_0x19252f[_0x4168c8[_0xbe14('0x39')][_0xbe14('0x3a')][_0xbe14('0x33')]()][_0xbe14('0x35')]());}});}if(_0x36d4b2[_0xbe14('0x3b')]){_0x36d4b2[_0xbe14('0x3b')]=Number(_0x36d4b2['priority']);}return _0x36d4b2;}function getTicket(_0x4f51f8,_0x43cdaa,_0x2951e1,_0x13bfcf,_0x520e09){logger[_0xbe14('0x12')](_0xbe14('0x3c'));var _0xeda70e=_[_0xbe14('0x3d')]({'subject':intUtil[_0xbe14('0x3e')](_0x13bfcf[_0xbe14('0x3f')],_0x520e09,'\x20'),'type':_0xbe14('0x40'),'status':_0xbe14('0x41'),'labels':[_0xbe14('0x42'),'Motion',_0xbe14('0x43')][_0xbe14('0x44')](getTags(_0x13bfcf[_0xbe14('0x45')],_0xbe14('0x3a'))),'description':intUtil[_0xbe14('0x3e')](_0x13bfcf[_0xbe14('0x46')],_0x520e09,'\x0a'),'_links':{'assigned_user':{'href':util['format'](_0xbe14('0x47'),_0x43cdaa['id']),'class':_0xbe14('0x48')}},'message':{'direction':'in','body':intUtil[_0xbe14('0x3e')](_0x13bfcf[_0xbe14('0x46')],_0x520e09,'\x0a')}},getCustomFields(_0x13bfcf['Fields'],_0x520e09));return request({'uri':util['format'](_0xbe14('0x49'),_0x4f51f8[_0xbe14('0x28')],_0x2951e1['id']),'method':_0xbe14('0x29'),'body':_0xeda70e});}exports['queue']=function(_0x5d5318,_0x6b6aa8,_0x59ae4d,_0x5657fe,_0x3593f8,_0x1f0355){var _0x8216c3,_0x5051e4;_0x1f0355['remoteUri']=intUtil['stripTrailingSlash'](_0x1f0355[_0xbe14('0x28')]);_0x1f0355[_0xbe14('0x4a')]=intUtil[_0xbe14('0x4b')](_0x1f0355['serverUrl']);if(_0x3593f8&&_0x3593f8[_0xbe14('0x4c')]){logger[_0xbe14('0x12')](_0xbe14('0x4d'),_0xbe14('0x4e'));_0x6b6aa8['recordingURL']=util['format'](_0xbe14('0x4f'),_0x1f0355[_0xbe14('0x4a')],_0x6b6aa8[_0xbe14('0x50')],md5(_0x6b6aa8[_0xbe14('0x50')]));}else{_0x6b6aa8[_0xbe14('0x51')]='';}headers['Authorization']=getAuth(_0x1f0355);return getUser(_0x1f0355,_0x5657fe['email'])[_0xbe14('0xd')](function(_0x2a3623){_0x8216c3=_0x2a3623;logger[_0xbe14('0x12')](_0xbe14('0x52'),_0x8216c3['id']);return getEndUser(_0x1f0355,_0x6b6aa8['calleridname'],_0x6b6aa8[_0xbe14('0x53')]);})[_0xbe14('0xd')](function(_0x53e8ab){_0x5051e4=_0x53e8ab;logger[_0xbe14('0x12')](_0xbe14('0x54'),_0x5051e4['id']);return getTicket(_0x1f0355,_0x8216c3,_0x5051e4,_0x59ae4d,_0x6b6aa8);})[_0xbe14('0xd')](function(_0x36c20c){if(_0x36c20c){logger['info']('Ticket\x20created!');logger[_0xbe14('0x12')](_0xbe14('0x55'),_0x36c20c['id']);switch(_0x1f0355['type']){case'integrationTab':logger[_0xbe14('0x12')](_0xbe14('0x4d'),_0xbe14('0x56'));emit(util[_0xbe14('0xb')](_0xbe14('0x57'),_0x5657fe[_0xbe14('0x3a')]),_0xbe14('0x58'),{'recordId':_0x36c20c['id']});break;case'newTab':logger[_0xbe14('0x12')](_0xbe14('0x4d'),_0xbe14('0x59'));emit(util[_0xbe14('0xb')](_0xbe14('0x57'),_0x5657fe['name']),_0xbe14('0x5a'),{'uri':util[_0xbe14('0xb')](_0xbe14('0x5b'),_0x36c20c['id'])});break;default:logger[_0xbe14('0x5c')](_0xbe14('0x4d'),_0xbe14('0x5d'));}}})['catch'](function(_0x5aeea9){console[_0xbe14('0x5c')](_0x5aeea9);logger[_0xbe14('0x5c')](_0xbe14('0x4d'),JSON['stringify'](_0x5aeea9));});};exports['outbound']=function(_0x44fe0d,_0x134878,_0x50d78f,_0x339a86,_0x32496a,_0x50c2a0,_0x28f995){var _0x4a40d2,_0x41ba58;_0x50c2a0[_0xbe14('0x28')]=intUtil[_0xbe14('0x4b')](_0x50c2a0['remoteUri']);_0x50c2a0[_0xbe14('0x4a')]=intUtil[_0xbe14('0x4b')](_0x50c2a0['serverUrl']);if(_0x28f995&&_0x28f995[_0xbe14('0x5e')]&&_0x28f995[_0xbe14('0x5e')]!==_0xbe14('0x5f')){logger[_0xbe14('0x12')](_0xbe14('0x60'),'Recording\x20is\x20enabled!');_0x134878[_0xbe14('0x51')]=util[_0xbe14('0xb')](_0xbe14('0x4f'),_0x50c2a0[_0xbe14('0x4a')],_0x134878[_0xbe14('0x50')],md5(_0x134878[_0xbe14('0x50')]));}headers[_0xbe14('0x61')]=getAuth(_0x50c2a0);return getUser(_0x50c2a0,_0x339a86['email'])[_0xbe14('0xd')](function(_0x1b47a4){_0x4a40d2=_0x1b47a4;logger[_0xbe14('0x12')](_0xbe14('0x52'),_0x4a40d2['id']);return getEndUser(_0x50c2a0,_0x134878[_0xbe14('0x62')],_0x134878[_0xbe14('0x63')]);})[_0xbe14('0xd')](function(_0x32df3c){_0x41ba58=_0x32df3c;logger[_0xbe14('0x12')](_0xbe14('0x54'),_0x41ba58['id']);return getTicket(_0x50c2a0,_0x4a40d2,_0x41ba58,_0x50d78f,_0x134878);})[_0xbe14('0xd')](function(_0x4bccfc){if(_0x4bccfc){logger['info']('Ticket\x20created!');logger[_0xbe14('0x12')](_0xbe14('0x55'),_0x4bccfc['id']);switch(_0x50c2a0[_0xbe14('0x30')]){case _0xbe14('0x64'):logger[_0xbe14('0x12')](_0xbe14('0x4d'),_0xbe14('0x56'));emit(util[_0xbe14('0xb')](_0xbe14('0x57'),_0x339a86[_0xbe14('0x3a')]),_0xbe14('0x58'),{'recordId':_0x4bccfc['id']});break;case _0xbe14('0x65'):logger[_0xbe14('0x12')](_0xbe14('0x4d'),_0xbe14('0x59'));emit(util[_0xbe14('0xb')](_0xbe14('0x57'),_0x339a86[_0xbe14('0x3a')]),_0xbe14('0x5a'),{'uri':util[_0xbe14('0xb')]('%s/agent/tickets/%s',_0x50c2a0[_0xbe14('0x28')],_0x4bccfc['id'])});break;default:logger[_0xbe14('0x5c')](_0xbe14('0x60'),_0xbe14('0x5d'));}}})[_0xbe14('0x66')](function(_0x222944){logger[_0xbe14('0x5c')](_0xbe14('0x60'),JSON[_0xbe14('0x19')](_0x222944));});};exports[_0xbe14('0x67')]=function(_0x5917d5,_0x18be56,_0x442ec4,_0x2d4dd4,_0xfd32a3,_0x3ac6d8){var _0x5a1ea6,_0x42b341;_0x3ac6d8[_0xbe14('0x28')]=intUtil[_0xbe14('0x4b')](_0x3ac6d8[_0xbe14('0x28')]);_0x3ac6d8[_0xbe14('0x4a')]=intUtil['stripTrailingSlash'](_0x3ac6d8[_0xbe14('0x4a')]);if(_0xfd32a3&&_0xfd32a3[_0xbe14('0x4c')]){logger[_0xbe14('0x12')]('['+_0x18be56[_0xbe14('0x68')][_0xbe14('0x69')]()+']',_0xbe14('0x4e'));_0x18be56[_0xbe14('0x51')]=util[_0xbe14('0xb')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x3ac6d8[_0xbe14('0x4a')],_0x18be56[_0xbe14('0x50')],md5(_0x18be56[_0xbe14('0x50')]));}else{_0x18be56[_0xbe14('0x51')]='';}headers[_0xbe14('0x61')]=getAuth(_0x3ac6d8);return getUser(_0x3ac6d8)[_0xbe14('0xd')](function(_0x445302){_0x5a1ea6=_0x445302;logger['info']('The\x20User\x20ID\x20is:',_0x5a1ea6['id']);return getEndUser(_0x3ac6d8,_0x18be56[_0xbe14('0x6a')],_0x18be56[_0xbe14('0x53')]);})[_0xbe14('0xd')](function(_0x2510a0){_0x42b341=_0x2510a0;logger[_0xbe14('0x12')](_0xbe14('0x54'),_0x42b341['id']);return getTicket(_0x3ac6d8,_0x5a1ea6,_0x42b341,_0x442ec4,_0x18be56);})[_0xbe14('0xd')](function(_0x43511e){if(_0x43511e){logger['info']('Ticket\x20created!');logger[_0xbe14('0x12')](_0xbe14('0x55'),_0x43511e['id']);}})[_0xbe14('0x66')](function(_0x57729f){logger[_0xbe14('0x5c')]('['+_0x18be56[_0xbe14('0x68')][_0xbe14('0x69')]()+']',JSON[_0xbe14('0x19')](_0x57729f));});};
\ No newline at end of file
+var _0x9957=['Motion','CTI','concat','Tags','/api/v2/users/%d','Descriptions','%s/customers/%d/cases','serverUrl','stripTrailingSlash','[QUEUE]','recordingURL','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','Authorization','email','The\x20User\x20ID\x20is:','calleridname','calleridnum','The\x20Enduser\x20ID\x20is:','Ticket\x20created!','Displaying\x20ticket\x20to\x20agent...','user:%s','trigger:desk:display','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','trigger:browser:url','Desk\x20account\x20type\x20not\x20recognized','error','recordingFormat','none','[OUTBOUND]','Recording\x20is\x20enabled!','integrationTab','newTab','%s/agent/tickets/%s','catch','unmanaged','monitor_format','lastevent','The\x20Ticket\x20ID\x20is:','toUpperCase','lodash','request-promise','md5','util','./util','../../../../config/environment','../../../../config/logger','desk','defaults','redis','localhost','socket.io-emitter','emit','application/json','validateEmail','info','Getting\x20agent\x20with\x20email','format','remoteUri','then','total_entries','find','_embedded','entries','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','%s/users/me','Invalid\x20email\x20format,\x20using\x20the\x20admin\x20account!','[HTTP]','stringify','GET','password','authType','token','Basic\x20%s','toString','base64','Searching\x20enduser\x20with\x20phone','%s/customers/search','Enduser\x20found!','Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!','%s/customers','POST','work','map','includes','string','picklist','type','nameField','customField','content','idField','custom_fields','variable','variableName','customVariable','name','Variable','toLowerCase','priority','Creating\x20new\x20ticket...','merge','getString','Subjects','phone','new','xCALLY'];(function(_0x3bd1cc,_0x417a94){var _0x102578=function(_0x496ec0){while(--_0x496ec0){_0x3bd1cc['push'](_0x3bd1cc['shift']());}};_0x102578(++_0x417a94);}(_0x9957,0x93));var _0x7995=function(_0x501510,_0x61caa9){_0x501510=_0x501510-0x0;var _0x1e6ee5=_0x9957[_0x501510];return _0x1e6ee5;};'use strict';var _=require(_0x7995('0x0'));var rp=require(_0x7995('0x1'));var md5=require(_0x7995('0x2'));var util=require(_0x7995('0x3'));var Redis=require('ioredis');var intUtil=require(_0x7995('0x4'));var config=require(_0x7995('0x5'));var logger=require(_0x7995('0x6'))(_0x7995('0x7'));config['redis']=_[_0x7995('0x8')](config[_0x7995('0x9')],{'host':_0x7995('0xa'),'port':0x18eb});var io=require(_0x7995('0xb'))(new Redis(config[_0x7995('0x9')]));function emit(_0x326741,_0x4996ca,_0x465276){io['to'](_0x326741)[_0x7995('0xc')](_0x4996ca,_0x465276);}var headers={'Content-Type':'application/json','Accept':_0x7995('0xd')};function getUser(_0x3116fb,_0x18c8a3){if(intUtil[_0x7995('0xe')](_0x18c8a3)===!![]){logger[_0x7995('0xf')](_0x7995('0x10'),_0x18c8a3);return request({'uri':util[_0x7995('0x11')]('%s/users',_0x3116fb[_0x7995('0x12')])})[_0x7995('0x13')](function(_0x581f22){if(_0x581f22[_0x7995('0x14')]){return _[_0x7995('0x15')](_0x581f22[_0x7995('0x16')][_0x7995('0x17')],{'email':_0x18c8a3});}})[_0x7995('0x13')](function(_0x23999f){if(_0x23999f){logger[_0x7995('0xf')]('Agent\x20found!');return _0x23999f;}else{logger['info'](_0x7995('0x18'));return request({'uri':util[_0x7995('0x11')](_0x7995('0x19'),_0x3116fb[_0x7995('0x12')])});}});}else{logger[_0x7995('0xf')](_0x7995('0x1a'));return request({'uri':util[_0x7995('0x11')](_0x7995('0x19'),_0x3116fb['remoteUri'])});}}function request(_0x2eeacc){logger['debug'](_0x7995('0x1b'),JSON[_0x7995('0x1c')](_0x2eeacc));return rp(_[_0x7995('0x8')](_0x2eeacc,{'method':_0x7995('0x1d'),'headers':headers,'json':!![]}));}function getAuth(_0x1e1415){var _0x37a7d4;if(_0x1e1415['authType']==='basic'){_0x37a7d4=util[_0x7995('0x11')]('%s:%s',_0x1e1415['username'],_0x1e1415[_0x7995('0x1e')]);}else if(_0x1e1415[_0x7995('0x1f')]==='token'){_0x37a7d4=util[_0x7995('0x11')]('%s/token:%s',_0x1e1415['username'],_0x1e1415[_0x7995('0x20')]);}return util[_0x7995('0x11')](_0x7995('0x21'),new Buffer(_0x37a7d4)[_0x7995('0x22')](_0x7995('0x23')));}function getEndUser(_0x1c278a,_0x5d40ae,_0x32a09a){logger[_0x7995('0xf')](_0x7995('0x24'),_0x32a09a);return request({'uri':util[_0x7995('0x11')](_0x7995('0x25'),_0x1c278a[_0x7995('0x12')]),'qs':{'phone':_0x32a09a}})[_0x7995('0x13')](function(_0x472195){if(_0x472195['total_entries']){logger[_0x7995('0xf')](_0x7995('0x26'));return _0x472195[_0x7995('0x16')][_0x7995('0x17')][0x0];}else{logger[_0x7995('0xf')](_0x7995('0x27'));return request({'uri':util['format'](_0x7995('0x28'),_0x1c278a['remoteUri']),'method':_0x7995('0x29'),'body':{'first_name':_0x5d40ae,'title':_0x5d40ae,'phone_numbers':[{'type':_0x7995('0x2a'),'value':_0x32a09a}]}});}});}function getTags(_0xf16cc2,_0x132a42){var _0x11c1eb=[];if(_0xf16cc2&&_0xf16cc2['length']>0x0){_0x11c1eb=_[_0x7995('0x2b')](_0xf16cc2,_0x132a42);}return _0x11c1eb;}function getCustomFields(_0x514445,_0x456a28){var _0x3250e0=[];var _0x4253e5={'custom_fields':{}};if(_0x514445['length']>0x0){_['forEach'](_0x514445,function(_0x48e573){if(_[_0x7995('0x2c')]([_0x7995('0x2d'),_0x7995('0x2e')],_0x48e573[_0x7995('0x2f')])&&_0x48e573[_0x7995('0x30')]&&!_0x48e573[_0x7995('0x31')]){_0x4253e5[_0x48e573['nameField']['toLowerCase']()]=_0x48e573[_0x7995('0x32')]['toString']();}else if(_[_0x7995('0x2c')]([_0x7995('0x2d'),_0x7995('0x2e')],_0x48e573[_0x7995('0x2f')])&&_0x48e573[_0x7995('0x33')]&&_0x48e573['customField']){_0x4253e5[_0x7995('0x34')][_0x48e573[_0x7995('0x33')]]=_0x48e573['content']['toString']();}else if(_0x48e573['type']===_0x7995('0x35')&&_0x48e573[_0x7995('0x36')]&&_0x48e573['idField']&&_0x48e573[_0x7995('0x31')]){_0x456a28[_0x48e573['variableName']]&&(_0x4253e5[_0x7995('0x34')][_0x48e573[_0x7995('0x33')]]=_0x456a28[_0x48e573[_0x7995('0x36')]]['toString']());}else if(_0x48e573['type']===_0x7995('0x37')&&_0x48e573['Variable']&&_0x48e573['Variable'][_0x7995('0x38')]&&_0x48e573[_0x7995('0x33')]&&_0x48e573['customField']){_0x456a28[_0x48e573[_0x7995('0x39')][_0x7995('0x38')][_0x7995('0x3a')]()]&&(_0x4253e5[_0x7995('0x34')][_0x48e573[_0x7995('0x33')]]=_0x456a28[_0x48e573['Variable'][_0x7995('0x38')][_0x7995('0x3a')]()][_0x7995('0x22')]());}});}if(_0x4253e5[_0x7995('0x3b')]){_0x4253e5['priority']=Number(_0x4253e5[_0x7995('0x3b')]);}return _0x4253e5;}function getTicket(_0x235df7,_0x3eb04f,_0xe5ea43,_0x1f5bee,_0x1035dc){logger['info'](_0x7995('0x3c'));var _0x3be298=_[_0x7995('0x3d')]({'subject':intUtil[_0x7995('0x3e')](_0x1f5bee[_0x7995('0x3f')],_0x1035dc,'\x20'),'type':_0x7995('0x40'),'status':_0x7995('0x41'),'labels':[_0x7995('0x42'),_0x7995('0x43'),_0x7995('0x44')][_0x7995('0x45')](getTags(_0x1f5bee[_0x7995('0x46')],_0x7995('0x38'))),'description':intUtil['getString'](_0x1f5bee['Descriptions'],_0x1035dc,'\x0a'),'_links':{'assigned_user':{'href':util[_0x7995('0x11')](_0x7995('0x47'),_0x3eb04f['id']),'class':'user'}},'message':{'direction':'in','body':intUtil['getString'](_0x1f5bee[_0x7995('0x48')],_0x1035dc,'\x0a')}},getCustomFields(_0x1f5bee['Fields'],_0x1035dc));return request({'uri':util['format'](_0x7995('0x49'),_0x235df7[_0x7995('0x12')],_0xe5ea43['id']),'method':_0x7995('0x29'),'body':_0x3be298});}exports['queue']=function(_0x46ac4f,_0x5e85b9,_0x3993b5,_0x5a8881,_0x493066,_0x39c5b8){var _0x403f54,_0xc04e5;_0x39c5b8[_0x7995('0x12')]=intUtil['stripTrailingSlash'](_0x39c5b8[_0x7995('0x12')]);_0x39c5b8[_0x7995('0x4a')]=intUtil[_0x7995('0x4b')](_0x39c5b8[_0x7995('0x4a')]);if(_0x493066&&_0x493066['monitor_format']){logger['info'](_0x7995('0x4c'),'Recording\x20is\x20enabled!');_0x5e85b9[_0x7995('0x4d')]=util['format'](_0x7995('0x4e'),_0x39c5b8['serverUrl'],_0x5e85b9[_0x7995('0x4f')],md5(_0x5e85b9[_0x7995('0x4f')]));}else{_0x5e85b9['recordingURL']='';}headers[_0x7995('0x50')]=getAuth(_0x39c5b8);return getUser(_0x39c5b8,_0x5a8881[_0x7995('0x51')])[_0x7995('0x13')](function(_0xb70a51){_0x403f54=_0xb70a51;logger['info'](_0x7995('0x52'),_0x403f54['id']);return getEndUser(_0x39c5b8,_0x5e85b9[_0x7995('0x53')],_0x5e85b9[_0x7995('0x54')]);})['then'](function(_0xe228a5){_0xc04e5=_0xe228a5;logger[_0x7995('0xf')](_0x7995('0x55'),_0xc04e5['id']);return getTicket(_0x39c5b8,_0x403f54,_0xc04e5,_0x3993b5,_0x5e85b9);})[_0x7995('0x13')](function(_0x255313){if(_0x255313){logger['info'](_0x7995('0x56'));logger[_0x7995('0xf')]('The\x20Ticket\x20ID\x20is:',_0x255313['id']);switch(_0x39c5b8[_0x7995('0x2f')]){case'integrationTab':logger[_0x7995('0xf')](_0x7995('0x4c'),_0x7995('0x57'));emit(util[_0x7995('0x11')](_0x7995('0x58'),_0x5a8881[_0x7995('0x38')]),_0x7995('0x59'),{'recordId':_0x255313['id']});break;case'newTab':logger[_0x7995('0xf')](_0x7995('0x4c'),_0x7995('0x5a'));emit(util['format'](_0x7995('0x58'),_0x5a8881[_0x7995('0x38')]),_0x7995('0x5b'),{'uri':util['format']('https://xcally.desk.com/web/agent/case/%d',_0x255313['id'])});break;default:logger['error'](_0x7995('0x4c'),_0x7995('0x5c'));}}})['catch'](function(_0x1cd85){console[_0x7995('0x5d')](_0x1cd85);logger[_0x7995('0x5d')](_0x7995('0x4c'),JSON[_0x7995('0x1c')](_0x1cd85));});};exports['outbound']=function(_0x29ee32,_0x4ab09f,_0x14fe7f,_0x33c801,_0x206d2a,_0x50c7b5,_0x5e1f34){var _0x54e2b1,_0x563f8e;_0x50c7b5[_0x7995('0x12')]=intUtil[_0x7995('0x4b')](_0x50c7b5[_0x7995('0x12')]);_0x50c7b5[_0x7995('0x4a')]=intUtil[_0x7995('0x4b')](_0x50c7b5[_0x7995('0x4a')]);if(_0x5e1f34&&_0x5e1f34[_0x7995('0x5e')]&&_0x5e1f34[_0x7995('0x5e')]!==_0x7995('0x5f')){logger[_0x7995('0xf')](_0x7995('0x60'),_0x7995('0x61'));_0x4ab09f[_0x7995('0x4d')]=util[_0x7995('0x11')](_0x7995('0x4e'),_0x50c7b5[_0x7995('0x4a')],_0x4ab09f[_0x7995('0x4f')],md5(_0x4ab09f[_0x7995('0x4f')]));}headers[_0x7995('0x50')]=getAuth(_0x50c7b5);return getUser(_0x50c7b5,_0x33c801['email'])[_0x7995('0x13')](function(_0x630737){_0x54e2b1=_0x630737;logger[_0x7995('0xf')](_0x7995('0x52'),_0x54e2b1['id']);return getEndUser(_0x50c7b5,_0x4ab09f['destcalleridname'],_0x4ab09f['destcalleridnum']);})[_0x7995('0x13')](function(_0x197b52){_0x563f8e=_0x197b52;logger[_0x7995('0xf')](_0x7995('0x55'),_0x563f8e['id']);return getTicket(_0x50c7b5,_0x54e2b1,_0x563f8e,_0x14fe7f,_0x4ab09f);})['then'](function(_0x13cd7b){if(_0x13cd7b){logger[_0x7995('0xf')](_0x7995('0x56'));logger[_0x7995('0xf')]('The\x20Ticket\x20ID\x20is:',_0x13cd7b['id']);switch(_0x50c7b5['type']){case _0x7995('0x62'):logger[_0x7995('0xf')](_0x7995('0x4c'),_0x7995('0x57'));emit(util[_0x7995('0x11')](_0x7995('0x58'),_0x33c801[_0x7995('0x38')]),_0x7995('0x59'),{'recordId':_0x13cd7b['id']});break;case _0x7995('0x63'):logger['info'](_0x7995('0x4c'),_0x7995('0x5a'));emit(util[_0x7995('0x11')](_0x7995('0x58'),_0x33c801['name']),'trigger:browser:url',{'uri':util[_0x7995('0x11')](_0x7995('0x64'),_0x50c7b5['remoteUri'],_0x13cd7b['id'])});break;default:logger[_0x7995('0x5d')](_0x7995('0x60'),_0x7995('0x5c'));}}})[_0x7995('0x65')](function(_0x32cb04){logger['error'](_0x7995('0x60'),JSON['stringify'](_0x32cb04));});};exports[_0x7995('0x66')]=function(_0xe31dcb,_0x1722e2,_0x25b534,_0x4388c1,_0xeb8920,_0x2b3c1d){var _0x44372a,_0x10f012;_0x2b3c1d[_0x7995('0x12')]=intUtil[_0x7995('0x4b')](_0x2b3c1d[_0x7995('0x12')]);_0x2b3c1d['serverUrl']=intUtil[_0x7995('0x4b')](_0x2b3c1d[_0x7995('0x4a')]);if(_0xeb8920&&_0xeb8920[_0x7995('0x67')]){logger[_0x7995('0xf')]('['+_0x1722e2[_0x7995('0x68')]['toUpperCase']()+']','Recording\x20is\x20enabled!');_0x1722e2[_0x7995('0x4d')]=util[_0x7995('0x11')](_0x7995('0x4e'),_0x2b3c1d[_0x7995('0x4a')],_0x1722e2['uniqueid'],md5(_0x1722e2[_0x7995('0x4f')]));}else{_0x1722e2['recordingURL']='';}headers['Authorization']=getAuth(_0x2b3c1d);return getUser(_0x2b3c1d)[_0x7995('0x13')](function(_0x36d27d){_0x44372a=_0x36d27d;logger[_0x7995('0xf')](_0x7995('0x52'),_0x44372a['id']);return getEndUser(_0x2b3c1d,_0x1722e2[_0x7995('0x53')],_0x1722e2[_0x7995('0x54')]);})[_0x7995('0x13')](function(_0x13dc73){_0x10f012=_0x13dc73;logger[_0x7995('0xf')](_0x7995('0x55'),_0x10f012['id']);return getTicket(_0x2b3c1d,_0x44372a,_0x10f012,_0x25b534,_0x1722e2);})['then'](function(_0x2dc1f7){if(_0x2dc1f7){logger[_0x7995('0xf')](_0x7995('0x56'));logger['info'](_0x7995('0x69'),_0x2dc1f7['id']);}})[_0x7995('0x65')](function(_0x705f0){logger[_0x7995('0x5d')]('['+_0x1722e2[_0x7995('0x68')][_0x7995('0x6a')]()+']',JSON[_0x7995('0x1c')](_0x705f0));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfcaa=['./util','md5','ioredis','../../../../config/logger','dynamics365','../../../../config/environment','redis','localhost','socket.io-emitter','POST','clientId','remoteUri','password','access_token','catch','error','toUpperCase',']\x20Wrong\x20credentials!','then','systemusers?$select=internalemailaddress,isdisabled,systemuserid','Bearer\x20','value','validateEmail','email','userEmail','length','internalemailaddress','info',']\x20Agent\x20found\x20','systemuserid',']\x20Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','username','userId','message','toLowerCase','outbound','calleridnum','contacts','/systemusers(','4.0','odata-entityid','substring','lastIndexOf','enduserId','GET','replace','%2b','telephone1','contactid',']\x20Enduser\x20created!','includes','string','picklist','type','nameField','customField','idField','indexOf','ticketType','incident','incidents','assign','getString','Subjects','Descriptions','/contacts(','phonecall','phonecalls','queue','ticketId','format','%s/main.aspx?pagetype=entityrecord&etn=%s&id=%s','user:%s','emit','trigger:browser:url','stripTrailingSlash','serverUrl','%s/api/data/v9.0/','tenantId','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','monitor_format','[QUEUE]','Recording\x20is\x20enabled!','recordingURL','recordingFormat','[OUTBOUND]',']\x20The\x20User\x20ID\x20is:',']\x20The\x20User\x20email\x20is:',']\x20The\x20Enduser\x20phone\x20is:',']\x20The\x20%s\x20ID\x20is:\x20%s',']\x20Error\x20running\x20Dynamics365\x20integration','lodash','request-promise','util'];(function(_0x537ab5,_0x5dc6c6){var _0x100378=function(_0x16353b){while(--_0x16353b){_0x537ab5['push'](_0x537ab5['shift']());}};_0x100378(++_0x5dc6c6);}(_0xfcaa,0x117));var _0xafca=function(_0xca721c,_0x1c8d4c){_0xca721c=_0xca721c-0x0;var _0x2fddc8=_0xfcaa[_0xca721c];return _0x2fddc8;};'use strict';var _=require(_0xafca('0x0'));var BPromise=require('bluebird');var rp=require(_0xafca('0x1'));var util=require(_0xafca('0x2'));var intUtil=require(_0xafca('0x3'));var md5=require(_0xafca('0x4'));var Redis=require(_0xafca('0x5'));var logger=require(_0xafca('0x6'))(_0xafca('0x7'));var config=require(_0xafca('0x8'));config[_0xafca('0x9')]=_['defaults'](config[_0xafca('0x9')],{'host':_0xafca('0xa'),'port':0x18eb});var io=require(_0xafca('0xb'))(new Redis(config[_0xafca('0x9')]));function getAuthToken(_0x22c303,_0x5008bf,_0x368eca){var _0x1f3e46={'method':_0xafca('0xc'),'uri':_0x5008bf,'form':{'client_id':_0x22c303[_0xafca('0xd')],'resource':_0x22c303[_0xafca('0xe')],'username':_0x22c303['username'],'password':_0x22c303['password'],'grant_type':_0xafca('0xf'),'client_secret':_0x22c303['clientSecret']},'json':!![]};return rp(_0x1f3e46)['then'](function(_0x3c30e5){return _0x3c30e5[_0xafca('0x10')];})[_0xafca('0x11')](function(_0x426a43){logger[_0xafca('0x12')]('['+[_0x368eca[_0xafca('0x13')]()]+_0xafca('0x14'));return _0x426a43['message'];});}function getUser(_0x59efd4,_0x2e5af2,_0x4f21c4,_0x3bf06a,_0x549130,_0xe36a72){return new BPromise(function(_0x77f3e6,_0x80a4fd){return getAuthToken(_0x2e5af2,_0x3bf06a,_0xe36a72)[_0xafca('0x15')](function(_0x292b8e){var _0x4e92fe={'method':'GET','uri':_0x549130+_0xafca('0x16'),'headers':{'Authorization':_0xafca('0x17')+_0x292b8e,'OData-Version':'4.0'},'json':!![]};return rp(_0x4e92fe);})[_0xafca('0x15')](function(_0x434b50){var _0xd35dd7=_0x434b50[_0xafca('0x18')];var _0x4f06e5=![];var _0x53d0ce=null;if(!_['isNil'](_0x4f21c4)){if(intUtil[_0xafca('0x19')](_0x4f21c4[_0xafca('0x1a')])){_0x59efd4[_0xafca('0x1b')]=_0x4f21c4['email'];for(_0x53d0ce=0x0;_0x53d0ce<_0xd35dd7[_0xafca('0x1c')];_0x53d0ce++){if(_0xd35dd7[_0x53d0ce][_0xafca('0x1d')]===_0x4f21c4['email']&&!_0xd35dd7[_0x53d0ce]['isdisabled']){_0x4f06e5=!![];logger[_0xafca('0x1e')]('['+[_0xe36a72[_0xafca('0x13')]()]+_0xafca('0x1f')+_0xd35dd7[_0x53d0ce][_0xafca('0x20')]+'!');_0x59efd4['userId']=_0xd35dd7[_0x53d0ce][_0xafca('0x20')];}}}}if(!_0x4f06e5){logger[_0xafca('0x1e')]('['+[_0xe36a72[_0xafca('0x13')]()]+_0xafca('0x21'));_0x59efd4['userEmail']=_0x2e5af2['username'];for(_0x53d0ce=0x0;_0x53d0ce<_0xd35dd7['length'];_0x53d0ce++){if(_0xd35dd7[_0x53d0ce][_0xafca('0x1d')]===_0x2e5af2[_0xafca('0x22')]){_0x59efd4[_0xafca('0x23')]=_0xd35dd7[_0x53d0ce][_0xafca('0x20')];}}}_0x77f3e6(_0x59efd4);})[_0xafca('0x11')](function(_0x477843){_0x80a4fd(_0x477843[_0xafca('0x24')]);});});}function createEndUser(_0x233614,_0x4e6229,_0x245b0c,_0x4fb5f4,_0x3aeec6,_0x5590d1){return new BPromise(function(_0x57e1bc,_0x3ad683){return getAuthToken(_0x4e6229,_0x245b0c,_0x5590d1)[_0xafca('0x15')](function(_0xca5a1e){var _0xd7e5db=_0x5590d1[_0xafca('0x25')]()===_0xafca('0x26')?_0x3aeec6['destcalleridnum']:_0x3aeec6[_0xafca('0x27')];var _0x487b95={'method':_0xafca('0xc'),'uri':_0x4fb5f4+_0xafca('0x28'),'body':{'telephone1':_0xd7e5db,'fullname':_0xd7e5db,'firstname':_0xd7e5db,'lastname':'_','mobilephone':null,'address1_telephone1':null,'ownerid@odata.bind':_0xafca('0x29')+_0x233614[_0xafca('0x23')]+')'},'headers':{'Authorization':'Bearer\x20'+_0xca5a1e,'OData-Version':_0xafca('0x2a')},'json':!![],'resolveWithFullResponse':!![]};return rp(_0x487b95);})[_0xafca('0x15')](function(_0x13c27f){var _0x50e148=_0x13c27f['headers'][_0xafca('0x2b')];var _0x16b253=_0x50e148[_0xafca('0x2c')](_0x50e148[_0xafca('0x2d')]('(')+0x1,_0x50e148[_0xafca('0x2d')](')'));_0x233614[_0xafca('0x2e')]=_0x16b253;_0x57e1bc(_0x233614);})['catch'](function(_0x3b5520){_0x3ad683(_0x3b5520[_0xafca('0x24')]);});});}function getEndUser(_0x2d7f13,_0x1525aa,_0x448677,_0x419756,_0x17ab9a,_0x52f100){return new BPromise(function(_0x42c8ec,_0x67ea9e){var _0x2933fe=_0x52f100[_0xafca('0x25')]()===_0xafca('0x26')?_0x17ab9a['destcalleridnum']:_0x17ab9a[_0xafca('0x27')];return getAuthToken(_0x1525aa,_0x448677,_0x52f100)[_0xafca('0x15')](function(_0x156590){var _0x473b4e={'method':_0xafca('0x2f'),'uri':_0x419756+'contacts?$select=telephone1&$filter=telephone1\x20eq\x20\x27'+_0x2933fe[_0xafca('0x30')]('+',_0xafca('0x31'))+'\x27','headers':{'Authorization':_0xafca('0x17')+_0x156590,'If-None-Match':null,'OData-Version':_0xafca('0x2a')},'json':!![]};return rp(_0x473b4e);})[_0xafca('0x15')](function(_0x3fb0e4){var _0x27f84c=null;if(_0x3fb0e4){var _0x4393e8=_0x3fb0e4[_0xafca('0x18')];var _0x366c5b=![];for(_0x27f84c=0x0;_0x27f84c<_0x4393e8[_0xafca('0x1c')];_0x27f84c++){if(_0x4393e8[_0x27f84c][_0xafca('0x32')]===_0x2933fe){_0x366c5b=!![];_0x2d7f13[_0xafca('0x2e')]=_0x4393e8[_0x27f84c][_0xafca('0x33')];}}if(_0x366c5b){_0x42c8ec(_0x2d7f13);}else{return createEndUser(_0x2d7f13,_0x1525aa,_0x448677,_0x419756,_0x17ab9a,_0x52f100)[_0xafca('0x15')](function(_0x30e4cd){logger[_0xafca('0x1e')]('['+[_0x52f100[_0xafca('0x13')]()]+_0xafca('0x34'),_0x30e4cd[_0xafca('0x2e')]);_0x42c8ec(_0x30e4cd);});}}else{return createEndUser(_0x2d7f13,_0x1525aa,_0x448677,_0x419756,_0x17ab9a,_0x52f100)[_0xafca('0x15')](function(_0xb54f54){logger[_0xafca('0x1e')]('['+[_0x52f100['toUpperCase']()]+']\x20Enduser\x20Created!',_0xb54f54[_0xafca('0x2e')]);_0x42c8ec(_0xb54f54);});}});});}function getCustomFields(_0x239751,_0x53eadb,_0x21045d){var _0x3b72bc={};if(_0x239751['length']>0x0){_['forEach'](_0x239751,function(_0x524ed2){if(_[_0xafca('0x35')]([_0xafca('0x36'),_0xafca('0x37')],_0x524ed2[_0xafca('0x38')])&&_0x524ed2[_0xafca('0x39')]&&!_0x524ed2[_0xafca('0x3a')]){var _0xcc08e9=_0x524ed2[_0xafca('0x3b')][_0xafca('0x25')]();var _0x710b4a=_0xcc08e9[_0xafca('0x2c')](0x0,_0xcc08e9[_0xafca('0x3c')]('_'));var _0x4d86cc=_0xcc08e9[_0xafca('0x2c')](_0xcc08e9[_0xafca('0x3c')]('_')+0x1);if(_0x710b4a===_0x21045d){_0x3b72bc[_0x4d86cc]=_0x524ed2['content'];}}});}return _0x3b72bc;}function getTicket(_0x4dee83,_0xc30d30,_0x2683c4,_0x1db730,_0x312fe9,_0x9c5d87,_0x5e8b60){return new BPromise(function(_0x4dd38f,_0x1351b4){var _0x581266;return getAuthToken(_0xc30d30,_0x2683c4,_0x5e8b60)[_0xafca('0x15')](function(_0x4d5d2c){if(_0x9c5d87[_0xafca('0x3d')]===_0xafca('0x3e')){_0x581266={'method':_0xafca('0xc'),'uri':_0x1db730+_0xafca('0x3f'),'body':Object[_0xafca('0x40')]({},{'title':intUtil[_0xafca('0x41')](_0x9c5d87[_0xafca('0x42')],_0x312fe9,'\x20'),'description':intUtil[_0xafca('0x41')](_0x9c5d87[_0xafca('0x43')],_0x312fe9,'\x0a'),'customerid_contact@odata.bind':_0xafca('0x44')+_0x4dee83[_0xafca('0x2e')]+')','ownerid@odata.bind':_0xafca('0x29')+_0x4dee83['userId']+')','caseorigincode':'1'},getCustomFields(_0x9c5d87['Fields'],_0x312fe9,_0x9c5d87['ticketType'])),'headers':{'Authorization':_0xafca('0x17')+_0x4d5d2c,'OData-Version':_0xafca('0x2a')},'json':!![],'resolveWithFullResponse':!![]};}if(_0x9c5d87['ticketType']===_0xafca('0x45')){_0x581266={'method':_0xafca('0xc'),'uri':_0x1db730+_0xafca('0x46'),'body':Object[_0xafca('0x40')]({},{'subject':intUtil[_0xafca('0x41')](_0x9c5d87['Subjects'],_0x312fe9,'\x20'),'phonenumber':String(_0x312fe9[_0xafca('0x27')]),'description':intUtil['getString'](_0x9c5d87['Descriptions'],_0x312fe9,'\x0a'),'regardingobjectid_contact@odata.bind':_0xafca('0x44')+_0x4dee83[_0xafca('0x2e')]+')','ownerid@odata.bind':_0xafca('0x29')+_0x4dee83['userId']+')','directioncode':_0x4dee83['callDirection']===_0xafca('0x47')?![]:!![],'phonecall_activity_parties':[{'partyid_systemuser@odata.bind':_0xafca('0x29')+_0x4dee83[_0xafca('0x23')]+')','participationtypemask':_0x4dee83['callDirection']===_0xafca('0x47')?0x2:0x1},{'partyid_contact@odata.bind':_0xafca('0x44')+_0x4dee83[_0xafca('0x2e')]+')','participationtypemask':_0x4dee83['callDirection']===_0xafca('0x47')?0x1:0x2}]},getCustomFields(_0x9c5d87['Fields'],_0x312fe9,_0x9c5d87[_0xafca('0x3d')])),'headers':{'Authorization':_0xafca('0x17')+_0x4d5d2c,'OData-Version':'4.0'},'json':!![],'resolveWithFullResponse':!![]};}return rp(_0x581266);})[_0xafca('0x15')](function(_0x1546cb){var _0x348942=_0x1546cb['headers'][_0xafca('0x2b')];var _0x347693=_0x348942[_0xafca('0x2c')](_0x348942[_0xafca('0x2d')]('(')+0x1,_0x348942['lastIndexOf'](')'));_0x4dee83[_0xafca('0x48')]=_0x347693;_0x4dd38f(_0x4dee83);})['catch'](function(_0x43ed43){_0x1351b4(_0x43ed43['message']);});});}function emit(_0x26410c,_0x58a54a,_0x4c7a67,_0x16d347){var _0x4bee0b={'uri':util[_0xafca('0x49')](_0xafca('0x4a'),_0x26410c,_0x4c7a67,_0x16d347)};io['to'](util[_0xafca('0x49')](_0xafca('0x4b'),_0x58a54a))[_0xafca('0x4c')](_0xafca('0x4d'),_0x4bee0b);}exports['cs']=function(_0x5b6191,_0x38ead7,_0x13b90a,_0x47d036,_0x38d865,_0xb26ff6,_0x42ef82,_0xcc13cd){var _0x5bec26={};_0xb26ff6['remoteUri']=intUtil[_0xafca('0x4e')](_0xb26ff6[_0xafca('0xe')]);_0xb26ff6[_0xafca('0x4f')]=intUtil[_0xafca('0x4e')](_0xb26ff6[_0xafca('0x4f')]);_0x5bec26['callDirection']=_0xcc13cd===_0xafca('0x47')||_0xcc13cd==='unmanaged'?_0xafca('0x47'):_0xafca('0x26');var _0x4e239b=util['format'](_0xafca('0x50'),_0xb26ff6[_0xafca('0xe')]);var _0x539d30=util[_0xafca('0x49')]('https://login.microsoftonline.com/%s/oauth2/token',_0xb26ff6[_0xafca('0x51')]);var _0x5791ba=util[_0xafca('0x49')](_0xafca('0x52'),_0xb26ff6[_0xafca('0x4f')],_0x38ead7['uniqueid'],md5(_0x38ead7['uniqueid']));if(_0x38d865&&_0x38d865[_0xafca('0x53')]){logger['info'](_0xafca('0x54'),_0xafca('0x55'));_0x38ead7[_0xafca('0x56')]=_0x5791ba;}else if(_0x42ef82&&_0x42ef82['recordingFormat']&&_0x42ef82[_0xafca('0x57')]!=='none'){logger['info'](_0xafca('0x58'),_0xafca('0x55'));_0x38ead7[_0xafca('0x56')]=_0x5791ba;}else{_0x38ead7[_0xafca('0x56')]='';}return getUser(_0x5bec26,_0xb26ff6,_0x47d036,_0x539d30,_0x4e239b,_0xcc13cd)[_0xafca('0x15')](function(_0x4173dc){logger[_0xafca('0x1e')]('['+_0xcc13cd[_0xafca('0x13')]()+_0xafca('0x59'),_0x4173dc[_0xafca('0x23')]);logger[_0xafca('0x1e')]('['+_0xcc13cd[_0xafca('0x13')]()+_0xafca('0x5a'),_0x4173dc[_0xafca('0x1b')]);return getEndUser(_0x4173dc,_0xb26ff6,_0x539d30,_0x4e239b,_0x38ead7,_0xcc13cd);})['then'](function(_0x294435){logger['info']('['+_0xcc13cd['toUpperCase']()+']\x20The\x20Enduser\x20ID\x20is:',_0x294435[_0xafca('0x2e')]);logger[_0xafca('0x1e')]('['+_0xcc13cd['toUpperCase']()+_0xafca('0x5b'),_0x38ead7['calleridnum']);return getTicket(_0x294435,_0xb26ff6,_0x539d30,_0x4e239b,_0x38ead7,_0x13b90a,_0xcc13cd);})['then'](function(_0x4ca5ee){logger[_0xafca('0x1e')](util['format']('['+_0xcc13cd[_0xafca('0x13')]()+_0xafca('0x5c'),_0x13b90a[_0xafca('0x3d')],_0x4ca5ee[_0xafca('0x48')]));logger['info'](util['format']('['+_0xcc13cd[_0xafca('0x13')]()+']\x20Call\x20direction:\x20%s',_0xcc13cd));if(_0xcc13cd!=='unmanaged'){logger[_0xafca('0x1e')]('['+_0xcc13cd[_0xafca('0x13')]()+']','Displaying\x20call\x20in\x20a\x20new\x20tab...');emit(_0xb26ff6[_0xafca('0xe')],_0x47d036['name'],_0x13b90a[_0xafca('0x3d')],_0x4ca5ee[_0xafca('0x48')]);}})[_0xafca('0x11')](function(_0x2100dc){logger[_0xafca('0x12')]('['+_0xcc13cd[_0xafca('0x13')]()+_0xafca('0x5d'),util['inspect'](_0x2100dc,{'showHidden':!![],'depth':null}));});};
\ No newline at end of file
+var _0xf90b=['./util','md5','ioredis','dynamics365','../../../../config/environment','defaults','redis','localhost','socket.io-emitter','POST','clientId','remoteUri','username','password','clientSecret','access_token','catch','error','toUpperCase','GET','systemusers?$select=internalemailaddress,isdisabled,systemuserid','Bearer\x20','4.0','then','value','validateEmail','email','length','internalemailaddress',']\x20Agent\x20found\x20','systemuserid','userId','info',']\x20Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','userEmail','outbound','destcalleridnum','calleridnum','contacts','/systemusers(','headers','odata-entityid','substring','lastIndexOf','toLowerCase','contacts?$select=telephone1&$filter=telephone1\x20eq\x20\x27','replace','%2b','telephone1','contactid',']\x20Enduser\x20created!','enduserId',']\x20Enduser\x20Created!','forEach','includes','nameField','idField','indexOf','content','ticketType','getString','Subjects','Descriptions','/contacts(','Fields','phonecall','phonecalls','callDirection','queue','ticketId','message','format','%s/main.aspx?pagetype=entityrecord&etn=%s&id=%s','user:%s','emit','trigger:browser:url','serverUrl','unmanaged','https://login.microsoftonline.com/%s/oauth2/token','tenantId','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','monitor_format','[QUEUE]','recordingURL','recordingFormat','none','Recording\x20is\x20enabled!',']\x20The\x20User\x20email\x20is:',']\x20The\x20Enduser\x20ID\x20is:',']\x20The\x20Enduser\x20phone\x20is:',']\x20The\x20%s\x20ID\x20is:\x20%s',']\x20Call\x20direction:\x20%s','name',']\x20Error\x20running\x20Dynamics365\x20integration','inspect','lodash','request-promise','util'];(function(_0x384d39,_0xf060fc){var _0x13bf22=function(_0x5d83f2){while(--_0x5d83f2){_0x384d39['push'](_0x384d39['shift']());}};_0x13bf22(++_0xf060fc);}(_0xf90b,0x1ec));var _0xbf90=function(_0x3f1ea3,_0x599aff){_0x3f1ea3=_0x3f1ea3-0x0;var _0x630a79=_0xf90b[_0x3f1ea3];return _0x630a79;};'use strict';var _=require(_0xbf90('0x0'));var BPromise=require('bluebird');var rp=require(_0xbf90('0x1'));var util=require(_0xbf90('0x2'));var intUtil=require(_0xbf90('0x3'));var md5=require(_0xbf90('0x4'));var Redis=require(_0xbf90('0x5'));var logger=require('../../../../config/logger')(_0xbf90('0x6'));var config=require(_0xbf90('0x7'));config['redis']=_[_0xbf90('0x8')](config[_0xbf90('0x9')],{'host':_0xbf90('0xa'),'port':0x18eb});var io=require(_0xbf90('0xb'))(new Redis(config[_0xbf90('0x9')]));function getAuthToken(_0x2933e9,_0x4d78dc,_0x23a333){var _0x405e7a={'method':_0xbf90('0xc'),'uri':_0x4d78dc,'form':{'client_id':_0x2933e9[_0xbf90('0xd')],'resource':_0x2933e9[_0xbf90('0xe')],'username':_0x2933e9[_0xbf90('0xf')],'password':_0x2933e9[_0xbf90('0x10')],'grant_type':_0xbf90('0x10'),'client_secret':_0x2933e9[_0xbf90('0x11')]},'json':!![]};return rp(_0x405e7a)['then'](function(_0x1685f4){return _0x1685f4[_0xbf90('0x12')];})[_0xbf90('0x13')](function(_0x2fd2bd){logger[_0xbf90('0x14')]('['+[_0x23a333[_0xbf90('0x15')]()]+']\x20Wrong\x20credentials!');return _0x2fd2bd['message'];});}function getUser(_0x56dfb6,_0x107685,_0x3eb1eb,_0x177967,_0x16aada,_0x3d834c){return new BPromise(function(_0x38da5f,_0x40e1dc){return getAuthToken(_0x107685,_0x177967,_0x3d834c)['then'](function(_0x453917){var _0x1e6c49={'method':_0xbf90('0x16'),'uri':_0x16aada+_0xbf90('0x17'),'headers':{'Authorization':_0xbf90('0x18')+_0x453917,'OData-Version':_0xbf90('0x19')},'json':!![]};return rp(_0x1e6c49);})[_0xbf90('0x1a')](function(_0x93d3c){var _0x3809c3=_0x93d3c[_0xbf90('0x1b')];var _0x33a976=![];var _0x2a65bd=null;if(!_['isNil'](_0x3eb1eb)){if(intUtil[_0xbf90('0x1c')](_0x3eb1eb[_0xbf90('0x1d')])){_0x56dfb6['userEmail']=_0x3eb1eb[_0xbf90('0x1d')];for(_0x2a65bd=0x0;_0x2a65bd<_0x3809c3[_0xbf90('0x1e')];_0x2a65bd++){if(_0x3809c3[_0x2a65bd][_0xbf90('0x1f')]===_0x3eb1eb['email']&&!_0x3809c3[_0x2a65bd]['isdisabled']){_0x33a976=!![];logger['info']('['+[_0x3d834c['toUpperCase']()]+_0xbf90('0x20')+_0x3809c3[_0x2a65bd][_0xbf90('0x21')]+'!');_0x56dfb6[_0xbf90('0x22')]=_0x3809c3[_0x2a65bd][_0xbf90('0x21')];}}}}if(!_0x33a976){logger[_0xbf90('0x23')]('['+[_0x3d834c[_0xbf90('0x15')]()]+_0xbf90('0x24'));_0x56dfb6[_0xbf90('0x25')]=_0x107685[_0xbf90('0xf')];for(_0x2a65bd=0x0;_0x2a65bd<_0x3809c3[_0xbf90('0x1e')];_0x2a65bd++){if(_0x3809c3[_0x2a65bd][_0xbf90('0x1f')]===_0x107685[_0xbf90('0xf')]){_0x56dfb6[_0xbf90('0x22')]=_0x3809c3[_0x2a65bd][_0xbf90('0x21')];}}}_0x38da5f(_0x56dfb6);})[_0xbf90('0x13')](function(_0x3e6f69){_0x40e1dc(_0x3e6f69['message']);});});}function createEndUser(_0x4ff06d,_0x4e2e75,_0x2e42fa,_0x2aa522,_0x3190c2,_0x1a4a0e){return new BPromise(function(_0x402727,_0x4aebfc){return getAuthToken(_0x4e2e75,_0x2e42fa,_0x1a4a0e)['then'](function(_0x45d0d8){var _0x259fd4=_0x1a4a0e['toLowerCase']()===_0xbf90('0x26')?_0x3190c2[_0xbf90('0x27')]:_0x3190c2[_0xbf90('0x28')];var _0x546ee3={'method':_0xbf90('0xc'),'uri':_0x2aa522+_0xbf90('0x29'),'body':{'telephone1':_0x259fd4,'fullname':_0x259fd4,'firstname':_0x259fd4,'lastname':'_','mobilephone':null,'address1_telephone1':null,'ownerid@odata.bind':_0xbf90('0x2a')+_0x4ff06d[_0xbf90('0x22')]+')'},'headers':{'Authorization':_0xbf90('0x18')+_0x45d0d8,'OData-Version':'4.0'},'json':!![],'resolveWithFullResponse':!![]};return rp(_0x546ee3);})[_0xbf90('0x1a')](function(_0x3b9f0c){var _0x3fa2e7=_0x3b9f0c[_0xbf90('0x2b')][_0xbf90('0x2c')];var _0x286b70=_0x3fa2e7[_0xbf90('0x2d')](_0x3fa2e7['lastIndexOf']('(')+0x1,_0x3fa2e7[_0xbf90('0x2e')](')'));_0x4ff06d['enduserId']=_0x286b70;_0x402727(_0x4ff06d);})['catch'](function(_0x5cb800){_0x4aebfc(_0x5cb800['message']);});});}function getEndUser(_0x458e89,_0x3ffdff,_0x13de8e,_0x5c916a,_0xffe175,_0x1a24bb){return new BPromise(function(_0x522eb5,_0x57e3db){var _0x175ec2=_0x1a24bb[_0xbf90('0x2f')]()===_0xbf90('0x26')?_0xffe175['destcalleridnum']:_0xffe175[_0xbf90('0x28')];return getAuthToken(_0x3ffdff,_0x13de8e,_0x1a24bb)[_0xbf90('0x1a')](function(_0x5ba00d){var _0x35563b={'method':_0xbf90('0x16'),'uri':_0x5c916a+_0xbf90('0x30')+_0x175ec2[_0xbf90('0x31')]('+',_0xbf90('0x32'))+'\x27','headers':{'Authorization':_0xbf90('0x18')+_0x5ba00d,'If-None-Match':null,'OData-Version':'4.0'},'json':!![]};return rp(_0x35563b);})[_0xbf90('0x1a')](function(_0xbac182){var _0x1c4255=null;if(_0xbac182){var _0x30ba23=_0xbac182[_0xbf90('0x1b')];var _0x3b879a=![];for(_0x1c4255=0x0;_0x1c4255<_0x30ba23[_0xbf90('0x1e')];_0x1c4255++){if(_0x30ba23[_0x1c4255][_0xbf90('0x33')]===_0x175ec2){_0x3b879a=!![];_0x458e89['enduserId']=_0x30ba23[_0x1c4255][_0xbf90('0x34')];}}if(_0x3b879a){_0x522eb5(_0x458e89);}else{return createEndUser(_0x458e89,_0x3ffdff,_0x13de8e,_0x5c916a,_0xffe175,_0x1a24bb)[_0xbf90('0x1a')](function(_0x3d5b5f){logger[_0xbf90('0x23')]('['+[_0x1a24bb[_0xbf90('0x15')]()]+_0xbf90('0x35'),_0x3d5b5f[_0xbf90('0x36')]);_0x522eb5(_0x3d5b5f);});}}else{return createEndUser(_0x458e89,_0x3ffdff,_0x13de8e,_0x5c916a,_0xffe175,_0x1a24bb)[_0xbf90('0x1a')](function(_0x5391c){logger[_0xbf90('0x23')]('['+[_0x1a24bb[_0xbf90('0x15')]()]+_0xbf90('0x37'),_0x5391c[_0xbf90('0x36')]);_0x522eb5(_0x5391c);});}});});}function getCustomFields(_0x312796,_0x5bd84a,_0x3117a2){var _0x514e0b={};if(_0x312796[_0xbf90('0x1e')]>0x0){_[_0xbf90('0x38')](_0x312796,function(_0x274158){if(_[_0xbf90('0x39')](['string','picklist'],_0x274158['type'])&&_0x274158[_0xbf90('0x3a')]&&!_0x274158['customField']){var _0x52db35=_0x274158[_0xbf90('0x3b')]['toLowerCase']();var _0x3494b5=_0x52db35[_0xbf90('0x2d')](0x0,_0x52db35['indexOf']('_'));var _0x5c23f7=_0x52db35[_0xbf90('0x2d')](_0x52db35[_0xbf90('0x3c')]('_')+0x1);if(_0x3494b5===_0x3117a2){_0x514e0b[_0x5c23f7]=_0x274158[_0xbf90('0x3d')];}}});}return _0x514e0b;}function getTicket(_0x2b6e01,_0x365c4d,_0x207f4e,_0x132bd1,_0x2e8aaf,_0x4fc1bf,_0x415c5a){return new BPromise(function(_0x576a10,_0x24da32){var _0x1fa152;return getAuthToken(_0x365c4d,_0x207f4e,_0x415c5a)['then'](function(_0x1bb43a){if(_0x4fc1bf[_0xbf90('0x3e')]==='incident'){_0x1fa152={'method':_0xbf90('0xc'),'uri':_0x132bd1+'incidents','body':Object['assign']({},{'title':intUtil[_0xbf90('0x3f')](_0x4fc1bf[_0xbf90('0x40')],_0x2e8aaf,'\x20'),'description':intUtil[_0xbf90('0x3f')](_0x4fc1bf[_0xbf90('0x41')],_0x2e8aaf,'\x0a'),'customerid_contact@odata.bind':_0xbf90('0x42')+_0x2b6e01[_0xbf90('0x36')]+')','ownerid@odata.bind':'/systemusers('+_0x2b6e01[_0xbf90('0x22')]+')','caseorigincode':'1'},getCustomFields(_0x4fc1bf[_0xbf90('0x43')],_0x2e8aaf,_0x4fc1bf[_0xbf90('0x3e')])),'headers':{'Authorization':_0xbf90('0x18')+_0x1bb43a,'OData-Version':_0xbf90('0x19')},'json':!![],'resolveWithFullResponse':!![]};}if(_0x4fc1bf[_0xbf90('0x3e')]===_0xbf90('0x44')){_0x1fa152={'method':'POST','uri':_0x132bd1+_0xbf90('0x45'),'body':Object['assign']({},{'subject':intUtil[_0xbf90('0x3f')](_0x4fc1bf[_0xbf90('0x40')],_0x2e8aaf,'\x20'),'phonenumber':String(_0x2e8aaf[_0xbf90('0x28')]),'description':intUtil[_0xbf90('0x3f')](_0x4fc1bf[_0xbf90('0x41')],_0x2e8aaf,'\x0a'),'regardingobjectid_contact@odata.bind':_0xbf90('0x42')+_0x2b6e01[_0xbf90('0x36')]+')','ownerid@odata.bind':'/systemusers('+_0x2b6e01[_0xbf90('0x22')]+')','directioncode':_0x2b6e01[_0xbf90('0x46')]==='queue'?![]:!![],'phonecall_activity_parties':[{'partyid_systemuser@odata.bind':_0xbf90('0x2a')+_0x2b6e01[_0xbf90('0x22')]+')','participationtypemask':_0x2b6e01[_0xbf90('0x46')]===_0xbf90('0x47')?0x2:0x1},{'partyid_contact@odata.bind':'/contacts('+_0x2b6e01[_0xbf90('0x36')]+')','participationtypemask':_0x2b6e01[_0xbf90('0x46')]===_0xbf90('0x47')?0x1:0x2}]},getCustomFields(_0x4fc1bf[_0xbf90('0x43')],_0x2e8aaf,_0x4fc1bf[_0xbf90('0x3e')])),'headers':{'Authorization':_0xbf90('0x18')+_0x1bb43a,'OData-Version':_0xbf90('0x19')},'json':!![],'resolveWithFullResponse':!![]};}return rp(_0x1fa152);})[_0xbf90('0x1a')](function(_0x43c005){var _0x3ad962=_0x43c005[_0xbf90('0x2b')][_0xbf90('0x2c')];var _0x2ee90c=_0x3ad962[_0xbf90('0x2d')](_0x3ad962[_0xbf90('0x2e')]('(')+0x1,_0x3ad962[_0xbf90('0x2e')](')'));_0x2b6e01[_0xbf90('0x48')]=_0x2ee90c;_0x576a10(_0x2b6e01);})['catch'](function(_0x388984){_0x24da32(_0x388984[_0xbf90('0x49')]);});});}function emit(_0x24e549,_0x33815,_0x34d606,_0x2c62e6){var _0x307ed9={'uri':util[_0xbf90('0x4a')](_0xbf90('0x4b'),_0x24e549,_0x34d606,_0x2c62e6)};io['to'](util[_0xbf90('0x4a')](_0xbf90('0x4c'),_0x33815))[_0xbf90('0x4d')](_0xbf90('0x4e'),_0x307ed9);}exports['cs']=function(_0x18252a,_0x3e457d,_0x5d4e4f,_0x15af0e,_0x2f0801,_0x2142b8,_0x438a45,_0x5163bc){var _0x160349={};_0x2142b8[_0xbf90('0xe')]=intUtil['stripTrailingSlash'](_0x2142b8[_0xbf90('0xe')]);_0x2142b8[_0xbf90('0x4f')]=intUtil['stripTrailingSlash'](_0x2142b8[_0xbf90('0x4f')]);_0x160349['callDirection']=_0x5163bc==='queue'||_0x5163bc===_0xbf90('0x50')?_0xbf90('0x47'):_0xbf90('0x26');var _0x501ce8=util[_0xbf90('0x4a')]('%s/api/data/v9.0/',_0x2142b8[_0xbf90('0xe')]);var _0x457f0f=util[_0xbf90('0x4a')](_0xbf90('0x51'),_0x2142b8[_0xbf90('0x52')]);var _0x6a8dd6=util['format'](_0xbf90('0x53'),_0x2142b8['serverUrl'],_0x3e457d[_0xbf90('0x54')],md5(_0x3e457d[_0xbf90('0x54')]));if(_0x2f0801&&_0x2f0801[_0xbf90('0x55')]){logger[_0xbf90('0x23')](_0xbf90('0x56'),'Recording\x20is\x20enabled!');_0x3e457d[_0xbf90('0x57')]=_0x6a8dd6;}else if(_0x438a45&&_0x438a45[_0xbf90('0x58')]&&_0x438a45[_0xbf90('0x58')]!==_0xbf90('0x59')){logger[_0xbf90('0x23')]('[OUTBOUND]',_0xbf90('0x5a'));_0x3e457d[_0xbf90('0x57')]=_0x6a8dd6;}else{_0x3e457d[_0xbf90('0x57')]='';}return getUser(_0x160349,_0x2142b8,_0x15af0e,_0x457f0f,_0x501ce8,_0x5163bc)[_0xbf90('0x1a')](function(_0x1af555){logger['info']('['+_0x5163bc[_0xbf90('0x15')]()+']\x20The\x20User\x20ID\x20is:',_0x1af555[_0xbf90('0x22')]);logger[_0xbf90('0x23')]('['+_0x5163bc[_0xbf90('0x15')]()+_0xbf90('0x5b'),_0x1af555[_0xbf90('0x25')]);return getEndUser(_0x1af555,_0x2142b8,_0x457f0f,_0x501ce8,_0x3e457d,_0x5163bc);})[_0xbf90('0x1a')](function(_0x582f8a){logger[_0xbf90('0x23')]('['+_0x5163bc[_0xbf90('0x15')]()+_0xbf90('0x5c'),_0x582f8a[_0xbf90('0x36')]);logger[_0xbf90('0x23')]('['+_0x5163bc[_0xbf90('0x15')]()+_0xbf90('0x5d'),_0x3e457d['calleridnum']);return getTicket(_0x582f8a,_0x2142b8,_0x457f0f,_0x501ce8,_0x3e457d,_0x5d4e4f,_0x5163bc);})['then'](function(_0x1138df){logger['info'](util[_0xbf90('0x4a')]('['+_0x5163bc[_0xbf90('0x15')]()+_0xbf90('0x5e'),_0x5d4e4f[_0xbf90('0x3e')],_0x1138df[_0xbf90('0x48')]));logger[_0xbf90('0x23')](util[_0xbf90('0x4a')]('['+_0x5163bc[_0xbf90('0x15')]()+_0xbf90('0x5f'),_0x5163bc));if(_0x5163bc!==_0xbf90('0x50')){logger[_0xbf90('0x23')]('['+_0x5163bc[_0xbf90('0x15')]()+']','Displaying\x20call\x20in\x20a\x20new\x20tab...');emit(_0x2142b8[_0xbf90('0xe')],_0x15af0e[_0xbf90('0x60')],_0x5d4e4f[_0xbf90('0x3e')],_0x1138df[_0xbf90('0x48')]);}})[_0xbf90('0x13')](function(_0x5b2219){logger[_0xbf90('0x14')]('['+_0x5163bc[_0xbf90('0x15')]()+_0xbf90('0x61'),util[_0xbf90('0x62')](_0x5b2219,{'showHidden':!![],'depth':null}));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa7bb=['Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','user:%s','%s/helpdesk/tickets/%d','catch','error','recordingFormat','none','[OUTBOUND]','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','destcalleridname','The\x20Enduser\x20ID\x20is:','trigger:browser:url','unmanaged','lastevent','toUpperCase','request-promise','util','./util','../../../../config/environment','../../../../config/logger','freshdesk','redis','localhost','socket.io-emitter','application/json','emit','info','Creating\x20new\x20ticket...','merge','calleridname','getString','Descriptions','<br>','name','Fields','format','%s/api/v2/tickets','POST','then','Ticket\x20created!','%s/api/v2/agents','remoteUri','length','Agent\x20found!','contact','email','%s/api/v2/agents/me','Admin\x20account\x20selected.','Searching\x20enduser\x20with\x20phone','%s/api/v2/contacts','Enduser\x20found!','find','Enduser\x20created.','Basic\x20%s','apiKey','toString','base64','debug','stringify','defaults','GET','map','forEach','includes','picklist','type','nameField','customField','toLowerCase','content','string','custom_fields','push','idField','variable','variableName','customVariable','Variable','queue','stripTrailingSlash','serverUrl','monitor_format','Recording\x20is\x20enabled!','uniqueid','recordingURL','Authorization','The\x20User\x20ID\x20is:','calleridnum','The\x20Ticket\x20ID\x20is:'];(function(_0x55c7c1,_0x4e5b13){var _0x3b1eb7=function(_0x4e238e){while(--_0x4e238e){_0x55c7c1['push'](_0x55c7c1['shift']());}};_0x3b1eb7(++_0x4e5b13);}(_0xa7bb,0x11a));var _0xba7b=function(_0x59c301,_0x359c50){_0x59c301=_0x59c301-0x0;var _0x3866b9=_0xa7bb[_0x59c301];return _0x3866b9;};'use strict';var _=require('lodash');var rp=require(_0xba7b('0x0'));var md5=require('md5');var util=require(_0xba7b('0x1'));var Redis=require('ioredis');var intUtil=require(_0xba7b('0x2'));var config=require(_0xba7b('0x3'));var logger=require(_0xba7b('0x4'))(_0xba7b('0x5'));config[_0xba7b('0x6')]=_['defaults'](config[_0xba7b('0x6')],{'host':_0xba7b('0x7'),'port':0x18eb});var io=require(_0xba7b('0x8'))(new Redis(config['redis']));var headers={'Content-Type':_0xba7b('0x9'),'Accept':_0xba7b('0x9')};function emit(_0x105769,_0x5bb21d,_0x3f5084){io['to'](_0x105769)[_0xba7b('0xa')](_0x5bb21d,_0x3f5084);}function getTicket(_0x4b1db8,_0xca0639,_0x285aaf,_0x3c2503,_0x43dc75){logger[_0xba7b('0xb')](_0xba7b('0xc'));var _0x42c9aa=_[_0xba7b('0xd')]({'responder_id':_0xca0639['id'],'requester_id':_0x285aaf['id'],'name':util['format']('Caller\x20-\x20%s',_0x43dc75[_0xba7b('0xe')]),'phone':_0x43dc75['calleridnum'],'source':0x3,'priority':0x1,'status':0x2,'subject':intUtil[_0xba7b('0xf')](_0x3c2503['Subjects'],_0x43dc75,'\x20'),'description':intUtil[_0xba7b('0xf')](_0x3c2503[_0xba7b('0x10')],_0x43dc75,_0xba7b('0x11')),'tags':getTags(_0x3c2503['Tags'],_0xba7b('0x12'))},getCustomFields(_0x3c2503[_0xba7b('0x13')],_0x43dc75));_0x42c9aa['custom_fields']=_['mapValues'](_['keyBy'](_0x42c9aa['custom_fields'],'id'),'value');return request({'uri':util[_0xba7b('0x14')](_0xba7b('0x15'),_0x4b1db8['remoteUri']),'method':_0xba7b('0x16'),'body':_0x42c9aa})[_0xba7b('0x17')](function(_0x3e7bf6){logger['info'](_0xba7b('0x18'));return _0x3e7bf6;});}function getUser(_0x46f20a,_0x28b3a6){if(intUtil['validateEmail'](_0x28b3a6)){return request({'uri':util[_0xba7b('0x14')](_0xba7b('0x19'),_0x46f20a[_0xba7b('0x1a')]),'qs':{'email':_0x28b3a6}})[_0xba7b('0x17')](function(_0x34c4bb){if(_0x34c4bb[_0xba7b('0x1b')]){logger[_0xba7b('0xb')](_0xba7b('0x1c'));return _['find'](_0x34c4bb,function(_0x26b074){return _0x26b074[_0xba7b('0x1d')][_0xba7b('0x1e')]===_0x28b3a6;});}else{logger['info']('Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!');return request({'uri':util[_0xba7b('0x14')](_0xba7b('0x1f'),_0x46f20a[_0xba7b('0x1a')])})[_0xba7b('0x17')](function(_0x509eb9){logger[_0xba7b('0xb')](_0xba7b('0x20'));return _0x509eb9;});}});}else{logger['info']('Invalid\x20email\x20format,\x20using\x20the\x20admin\x20account!');return request({'uri':util[_0xba7b('0x14')](_0xba7b('0x1f'),_0x46f20a[_0xba7b('0x1a')])})[_0xba7b('0x17')](function(_0x3b8f9f){logger['info'](_0xba7b('0x20'));return _0x3b8f9f;});}}function getEndUser(_0x108048,_0x2322fb,_0xf00da1){logger[_0xba7b('0xb')](_0xba7b('0x21'),_0xf00da1);return request({'uri':util['format'](_0xba7b('0x22'),_0x108048['remoteUri']),'qs':{'phone':_0xf00da1}})[_0xba7b('0x17')](function(_0x6a6edd){if(_0x6a6edd[_0xba7b('0x1b')]){logger[_0xba7b('0xb')](_0xba7b('0x23'));return _[_0xba7b('0x24')](_0x6a6edd,{'phone':_0xf00da1});}else{logger['info']('Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!');return request({'uri':util[_0xba7b('0x14')](_0xba7b('0x22'),_0x108048['remoteUri']),'method':'POST','body':{'name':_0x2322fb,'phone':_0xf00da1}})['then'](function(_0x321a1f){logger[_0xba7b('0xb')](_0xba7b('0x25'));return _0x321a1f;});}});}function getAuth(_0x81db6){return util[_0xba7b('0x14')](_0xba7b('0x26'),new Buffer(_0x81db6[_0xba7b('0x27')]+':X')[_0xba7b('0x28')](_0xba7b('0x29')));}function request(_0x3d4f51){logger[_0xba7b('0x2a')]('[HTTP]',JSON[_0xba7b('0x2b')](_0x3d4f51));return rp(_[_0xba7b('0x2c')](_0x3d4f51,{'method':_0xba7b('0x2d'),'headers':headers,'json':!![]}));}function getTags(_0x4b93f5,_0xcbc7db){var _0x6ccbf3=[];if(_0x4b93f5&&_0x4b93f5[_0xba7b('0x1b')]>0x0){_0x6ccbf3=_[_0xba7b('0x2e')](_0x4b93f5,_0xcbc7db);}return _0x6ccbf3;}function getCustomFields(_0x452aa6,_0x54bb67){var _0x42fec9=[];var _0x101378={'custom_fields':[]};if(_0x452aa6[_0xba7b('0x1b')]>0x0){_[_0xba7b('0x2f')](_0x452aa6,function(_0x55d463){if(_[_0xba7b('0x30')](['string',_0xba7b('0x31')],_0x55d463[_0xba7b('0x32')])&&_0x55d463[_0xba7b('0x33')]&&!_0x55d463[_0xba7b('0x34')]){_0x101378[_0x55d463[_0xba7b('0x33')][_0xba7b('0x35')]()]=_0x55d463[_0xba7b('0x36')][_0xba7b('0x28')]();}else if(_[_0xba7b('0x30')]([_0xba7b('0x37'),'picklist'],_0x55d463[_0xba7b('0x32')])&&_0x55d463['idField']&&_0x55d463['customField']){_0x101378[_0xba7b('0x38')][_0xba7b('0x39')]({'id':_0x55d463[_0xba7b('0x3a')],'value':_0x55d463[_0xba7b('0x36')][_0xba7b('0x28')]()});}else if(_0x55d463['type']===_0xba7b('0x3b')&&_0x55d463[_0xba7b('0x3c')]&&_0x55d463[_0xba7b('0x3a')]&&_0x55d463['customField']){_0x54bb67[_0x55d463[_0xba7b('0x3c')]]&&_0x101378[_0xba7b('0x38')][_0xba7b('0x39')]({'id':_0x55d463[_0xba7b('0x3a')],'value':_0x54bb67[_0x55d463[_0xba7b('0x3c')]][_0xba7b('0x28')]()});}else if(_0x55d463[_0xba7b('0x32')]===_0xba7b('0x3d')&&_0x55d463[_0xba7b('0x3e')]&&_0x55d463[_0xba7b('0x3e')]['name']&&_0x55d463[_0xba7b('0x3a')]&&_0x55d463[_0xba7b('0x34')]){_0x54bb67[_0x55d463[_0xba7b('0x3e')]['name'][_0xba7b('0x35')]()]&&_0x101378['custom_fields'][_0xba7b('0x39')]({'id':_0x55d463[_0xba7b('0x3a')],'value':_0x54bb67[_0x55d463[_0xba7b('0x3e')][_0xba7b('0x12')][_0xba7b('0x35')]()][_0xba7b('0x28')]()});}});}return _0x101378;}exports[_0xba7b('0x3f')]=function(_0x225784,_0x7caea,_0x2fb55d,_0x2b39f9,_0xbab11,_0x4d098c){var _0x3e3664,_0x4c63d3;_0x4d098c['remoteUri']=intUtil[_0xba7b('0x40')](_0x4d098c[_0xba7b('0x1a')]);_0x4d098c[_0xba7b('0x41')]=intUtil[_0xba7b('0x40')](_0x4d098c[_0xba7b('0x41')]);if(_0xbab11&&_0xbab11[_0xba7b('0x42')]){logger[_0xba7b('0xb')]('[QUEUE]',_0xba7b('0x43'));_0x7caea['recordingURL']=util[_0xba7b('0x14')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x4d098c[_0xba7b('0x41')],_0x7caea[_0xba7b('0x44')],md5(_0x7caea['uniqueid']));}else{_0x7caea[_0xba7b('0x45')]='';}headers[_0xba7b('0x46')]=getAuth(_0x4d098c);return getUser(_0x4d098c,_0x2b39f9[_0xba7b('0x1e')])['then'](function(_0x258d5f){_0x3e3664=_0x258d5f;logger['info'](_0xba7b('0x47'),_0x3e3664['id']);return getEndUser(_0x4d098c,_0x7caea[_0xba7b('0xe')],_0x7caea[_0xba7b('0x48')]);})['then'](function(_0x3eb32b){_0x4c63d3=_0x3eb32b;logger['info']('The\x20Enduser\x20ID\x20is:',_0x4c63d3['id']);return getTicket(_0x4d098c,_0x3e3664,_0x4c63d3,_0x2fb55d,_0x7caea);})['then'](function(_0x29a28c){if(_0x29a28c&&_0x29a28c['id']){logger['info'](_0xba7b('0x18'));logger[_0xba7b('0xb')](_0xba7b('0x49'),_0x29a28c['id']);logger[_0xba7b('0xb')]('[QUEUE]',_0xba7b('0x4a'));emit(util[_0xba7b('0x14')](_0xba7b('0x4b'),_0x2b39f9[_0xba7b('0x12')]),'trigger:browser:url',{'uri':util[_0xba7b('0x14')](_0xba7b('0x4c'),_0x4d098c[_0xba7b('0x1a')],_0x29a28c['id'])});}})[_0xba7b('0x4d')](function(_0x4e604d){logger[_0xba7b('0x4e')]('[QUEUE]',JSON[_0xba7b('0x2b')](_0x4e604d));});};exports['outbound']=function(_0x25dabe,_0xdd22b1,_0x18639b,_0x2cbc59,_0x404c7f,_0x56096a,_0x2d1c9d){var _0x362b76,_0x3a4f9b;_0x56096a[_0xba7b('0x1a')]=intUtil[_0xba7b('0x40')](_0x56096a[_0xba7b('0x1a')]);_0x56096a[_0xba7b('0x41')]=intUtil[_0xba7b('0x40')](_0x56096a[_0xba7b('0x41')]);if(_0x2d1c9d&&_0x2d1c9d[_0xba7b('0x4f')]&&_0x2d1c9d['recordingFormat']!==_0xba7b('0x50')){logger[_0xba7b('0xb')](_0xba7b('0x51'),_0xba7b('0x43'));_0xdd22b1[_0xba7b('0x45')]=util[_0xba7b('0x14')](_0xba7b('0x52'),_0x56096a[_0xba7b('0x41')],_0xdd22b1[_0xba7b('0x44')],md5(_0xdd22b1[_0xba7b('0x44')]));}headers[_0xba7b('0x46')]=getAuth(_0x56096a);return getUser(_0x56096a,_0x2cbc59[_0xba7b('0x1e')])[_0xba7b('0x17')](function(_0x425a88){_0x362b76=_0x425a88;logger[_0xba7b('0xb')](_0xba7b('0x47'),_0x362b76['id']);return getEndUser(_0x56096a,_0xdd22b1[_0xba7b('0x53')],_0xdd22b1['destcalleridnum']);})[_0xba7b('0x17')](function(_0x99d3a){_0x3a4f9b=_0x99d3a;logger[_0xba7b('0xb')](_0xba7b('0x54'),_0x3a4f9b['id']);return getTicket(_0x56096a,_0x362b76,_0x3a4f9b,_0x18639b,_0xdd22b1);})['then'](function(_0x39974d){if(_0x39974d&&_0x39974d['id']){logger[_0xba7b('0xb')]('Ticket\x20created!');logger[_0xba7b('0xb')]('The\x20Ticket\x20ID\x20is:',_0x39974d['id']);logger[_0xba7b('0xb')](_0xba7b('0x51'),_0xba7b('0x4a'));emit(util['format'](_0xba7b('0x4b'),_0x2cbc59['name']),_0xba7b('0x55'),{'uri':util['format'](_0xba7b('0x4c'),_0x56096a['remoteUri'],_0x39974d['id'])});}})[_0xba7b('0x4d')](function(_0x4f0feb){logger[_0xba7b('0x4e')](_0xba7b('0x51'),JSON[_0xba7b('0x2b')](_0x4f0feb));});};exports[_0xba7b('0x56')]=function(_0x56d70c,_0x27d018,_0x2e6496,_0x2df781,_0x570a34,_0x126ad0){var _0x40c728,_0x40b468;_0x126ad0[_0xba7b('0x1a')]=intUtil[_0xba7b('0x40')](_0x126ad0[_0xba7b('0x1a')]);_0x126ad0[_0xba7b('0x41')]=intUtil[_0xba7b('0x40')](_0x126ad0[_0xba7b('0x41')]);if(_0x570a34&&_0x570a34['monitor_format']){logger['info']('['+_0x27d018[_0xba7b('0x57')][_0xba7b('0x58')]()+']','Recording\x20is\x20enabled!');_0x27d018[_0xba7b('0x45')]=util[_0xba7b('0x14')](_0xba7b('0x52'),_0x126ad0['serverUrl'],_0x27d018[_0xba7b('0x44')],md5(_0x27d018[_0xba7b('0x44')]));}else{_0x27d018[_0xba7b('0x45')]='';}headers[_0xba7b('0x46')]=getAuth(_0x126ad0);return getUser(_0x126ad0,'')[_0xba7b('0x17')](function(_0x3dd630){_0x40c728=_0x3dd630;logger['info'](_0xba7b('0x47'),_0x40c728['id']);return getEndUser(_0x126ad0,_0x27d018[_0xba7b('0xe')],_0x27d018['calleridnum']);})['then'](function(_0x207e73){_0x40b468=_0x207e73;logger[_0xba7b('0xb')](_0xba7b('0x54'),_0x40b468['id']);return getTicket(_0x126ad0,_0x40c728,_0x40b468,_0x2e6496,_0x27d018);})[_0xba7b('0x17')](function(_0x5953f8){if(_0x5953f8){logger[_0xba7b('0xb')](_0xba7b('0x18'));logger['info'](_0xba7b('0x49'),_0x5953f8['id']);}})['catch'](function(_0x13cbf7){logger[_0xba7b('0x4e')]('['+_0x27d018[_0xba7b('0x57')][_0xba7b('0x58')]()+']',JSON['stringify'](_0x13cbf7));});};
\ No newline at end of file
+var _0x2424=['length','Agent\x20found!','find','contact','email','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','%s/api/v2/agents/me','Admin\x20account\x20selected.','Invalid\x20email\x20format,\x20using\x20the\x20admin\x20account!','Searching\x20enduser\x20with\x20phone','%s/api/v2/contacts','Enduser\x20found!','Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!','Enduser\x20created.','Basic\x20%s','base64','debug','[HTTP]','stringify','GET','forEach','string','picklist','type','customField','content','toString','variable','variableName','push','idField','customVariable','Variable','toLowerCase','queue','stripTrailingSlash','serverUrl','monitor_format','[QUEUE]','Recording\x20is\x20enabled!','recordingURL','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','The\x20User\x20ID\x20is:','calleridnum','The\x20Enduser\x20ID\x20is:','The\x20Ticket\x20ID\x20is:','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','%s/helpdesk/tickets/%d','catch','error','recordingFormat','none','[OUTBOUND]','Authorization','destcalleridname','destcalleridnum','user:%s','trigger:browser:url','unmanaged','toUpperCase','lastevent','util','ioredis','./util','../../../../config/environment','../../../../config/logger','freshdesk','redis','defaults','socket.io-emitter','application/json','emit','info','Creating\x20new\x20ticket...','format','calleridname','getString','Subjects','Descriptions','name','Fields','keyBy','custom_fields','%s/api/v2/tickets','remoteUri','POST','then','Ticket\x20created!','validateEmail','%s/api/v2/agents'];(function(_0x23e498,_0x15f6fd){var _0x3ec2f5=function(_0x40f2cc){while(--_0x40f2cc){_0x23e498['push'](_0x23e498['shift']());}};_0x3ec2f5(++_0x15f6fd);}(_0x2424,0xf4));var _0x4242=function(_0x12a2b8,_0x1e4a81){_0x12a2b8=_0x12a2b8-0x0;var _0x29e552=_0x2424[_0x12a2b8];return _0x29e552;};'use strict';var _=require('lodash');var rp=require('request-promise');var md5=require('md5');var util=require(_0x4242('0x0'));var Redis=require(_0x4242('0x1'));var intUtil=require(_0x4242('0x2'));var config=require(_0x4242('0x3'));var logger=require(_0x4242('0x4'))(_0x4242('0x5'));config[_0x4242('0x6')]=_[_0x4242('0x7')](config[_0x4242('0x6')],{'host':'localhost','port':0x18eb});var io=require(_0x4242('0x8'))(new Redis(config['redis']));var headers={'Content-Type':_0x4242('0x9'),'Accept':'application/json'};function emit(_0x55fe3b,_0xa30487,_0x361bdc){io['to'](_0x55fe3b)[_0x4242('0xa')](_0xa30487,_0x361bdc);}function getTicket(_0x29ea20,_0xfb9842,_0x536651,_0x581dcd,_0x110bb0){logger[_0x4242('0xb')](_0x4242('0xc'));var _0x5c383f=_['merge']({'responder_id':_0xfb9842['id'],'requester_id':_0x536651['id'],'name':util[_0x4242('0xd')]('Caller\x20-\x20%s',_0x110bb0[_0x4242('0xe')]),'phone':_0x110bb0['calleridnum'],'source':0x3,'priority':0x1,'status':0x2,'subject':intUtil[_0x4242('0xf')](_0x581dcd[_0x4242('0x10')],_0x110bb0,'\x20'),'description':intUtil[_0x4242('0xf')](_0x581dcd[_0x4242('0x11')],_0x110bb0,'<br>'),'tags':getTags(_0x581dcd['Tags'],_0x4242('0x12'))},getCustomFields(_0x581dcd[_0x4242('0x13')],_0x110bb0));_0x5c383f['custom_fields']=_['mapValues'](_[_0x4242('0x14')](_0x5c383f[_0x4242('0x15')],'id'),'value');return request({'uri':util['format'](_0x4242('0x16'),_0x29ea20[_0x4242('0x17')]),'method':_0x4242('0x18'),'body':_0x5c383f})[_0x4242('0x19')](function(_0x1c6d91){logger['info'](_0x4242('0x1a'));return _0x1c6d91;});}function getUser(_0x104c50,_0x2a78f5){if(intUtil[_0x4242('0x1b')](_0x2a78f5)){return request({'uri':util[_0x4242('0xd')](_0x4242('0x1c'),_0x104c50[_0x4242('0x17')]),'qs':{'email':_0x2a78f5}})[_0x4242('0x19')](function(_0xa14243){if(_0xa14243[_0x4242('0x1d')]){logger['info'](_0x4242('0x1e'));return _[_0x4242('0x1f')](_0xa14243,function(_0x27edcb){return _0x27edcb[_0x4242('0x20')][_0x4242('0x21')]===_0x2a78f5;});}else{logger['info'](_0x4242('0x22'));return request({'uri':util[_0x4242('0xd')](_0x4242('0x23'),_0x104c50['remoteUri'])})[_0x4242('0x19')](function(_0x2cdd26){logger[_0x4242('0xb')](_0x4242('0x24'));return _0x2cdd26;});}});}else{logger[_0x4242('0xb')](_0x4242('0x25'));return request({'uri':util[_0x4242('0xd')](_0x4242('0x23'),_0x104c50[_0x4242('0x17')])})['then'](function(_0x13e9c0){logger[_0x4242('0xb')](_0x4242('0x24'));return _0x13e9c0;});}}function getEndUser(_0x392546,_0x334fdc,_0x1bffe8){logger[_0x4242('0xb')](_0x4242('0x26'),_0x1bffe8);return request({'uri':util[_0x4242('0xd')](_0x4242('0x27'),_0x392546[_0x4242('0x17')]),'qs':{'phone':_0x1bffe8}})[_0x4242('0x19')](function(_0x18fecf){if(_0x18fecf['length']){logger[_0x4242('0xb')](_0x4242('0x28'));return _[_0x4242('0x1f')](_0x18fecf,{'phone':_0x1bffe8});}else{logger['info'](_0x4242('0x29'));return request({'uri':util[_0x4242('0xd')](_0x4242('0x27'),_0x392546[_0x4242('0x17')]),'method':'POST','body':{'name':_0x334fdc,'phone':_0x1bffe8}})[_0x4242('0x19')](function(_0x53e802){logger['info'](_0x4242('0x2a'));return _0x53e802;});}});}function getAuth(_0x40a5e3){return util[_0x4242('0xd')](_0x4242('0x2b'),new Buffer(_0x40a5e3['apiKey']+':X')['toString'](_0x4242('0x2c')));}function request(_0x49c035){logger[_0x4242('0x2d')](_0x4242('0x2e'),JSON[_0x4242('0x2f')](_0x49c035));return rp(_[_0x4242('0x7')](_0x49c035,{'method':_0x4242('0x30'),'headers':headers,'json':!![]}));}function getTags(_0x1e8979,_0x511794){var _0x56c24a=[];if(_0x1e8979&&_0x1e8979[_0x4242('0x1d')]>0x0){_0x56c24a=_['map'](_0x1e8979,_0x511794);}return _0x56c24a;}function getCustomFields(_0x1c5537,_0x187373){var _0xf9276c=[];var _0x42af7a={'custom_fields':[]};if(_0x1c5537[_0x4242('0x1d')]>0x0){_[_0x4242('0x31')](_0x1c5537,function(_0x1baa52){if(_['includes']([_0x4242('0x32'),_0x4242('0x33')],_0x1baa52[_0x4242('0x34')])&&_0x1baa52['nameField']&&!_0x1baa52[_0x4242('0x35')]){_0x42af7a[_0x1baa52['nameField']['toLowerCase']()]=_0x1baa52[_0x4242('0x36')][_0x4242('0x37')]();}else if(_['includes']([_0x4242('0x32'),_0x4242('0x33')],_0x1baa52['type'])&&_0x1baa52['idField']&&_0x1baa52['customField']){_0x42af7a[_0x4242('0x15')]['push']({'id':_0x1baa52['idField'],'value':_0x1baa52[_0x4242('0x36')][_0x4242('0x37')]()});}else if(_0x1baa52[_0x4242('0x34')]===_0x4242('0x38')&&_0x1baa52['variableName']&&_0x1baa52['idField']&&_0x1baa52[_0x4242('0x35')]){_0x187373[_0x1baa52[_0x4242('0x39')]]&&_0x42af7a['custom_fields'][_0x4242('0x3a')]({'id':_0x1baa52[_0x4242('0x3b')],'value':_0x187373[_0x1baa52[_0x4242('0x39')]][_0x4242('0x37')]()});}else if(_0x1baa52[_0x4242('0x34')]===_0x4242('0x3c')&&_0x1baa52[_0x4242('0x3d')]&&_0x1baa52[_0x4242('0x3d')][_0x4242('0x12')]&&_0x1baa52[_0x4242('0x3b')]&&_0x1baa52[_0x4242('0x35')]){_0x187373[_0x1baa52[_0x4242('0x3d')][_0x4242('0x12')][_0x4242('0x3e')]()]&&_0x42af7a['custom_fields']['push']({'id':_0x1baa52[_0x4242('0x3b')],'value':_0x187373[_0x1baa52[_0x4242('0x3d')][_0x4242('0x12')][_0x4242('0x3e')]()]['toString']()});}});}return _0x42af7a;}exports[_0x4242('0x3f')]=function(_0x22b699,_0xaedeea,_0x1565fd,_0x4ccf4a,_0x39f1e3,_0x497688){var _0x47d6e8,_0x3b32e2;_0x497688['remoteUri']=intUtil[_0x4242('0x40')](_0x497688[_0x4242('0x17')]);_0x497688[_0x4242('0x41')]=intUtil['stripTrailingSlash'](_0x497688[_0x4242('0x41')]);if(_0x39f1e3&&_0x39f1e3[_0x4242('0x42')]){logger[_0x4242('0xb')](_0x4242('0x43'),_0x4242('0x44'));_0xaedeea[_0x4242('0x45')]=util[_0x4242('0xd')](_0x4242('0x46'),_0x497688[_0x4242('0x41')],_0xaedeea[_0x4242('0x47')],md5(_0xaedeea[_0x4242('0x47')]));}else{_0xaedeea['recordingURL']='';}headers['Authorization']=getAuth(_0x497688);return getUser(_0x497688,_0x4ccf4a[_0x4242('0x21')])[_0x4242('0x19')](function(_0x50b968){_0x47d6e8=_0x50b968;logger[_0x4242('0xb')](_0x4242('0x48'),_0x47d6e8['id']);return getEndUser(_0x497688,_0xaedeea[_0x4242('0xe')],_0xaedeea[_0x4242('0x49')]);})[_0x4242('0x19')](function(_0x1c6aa1){_0x3b32e2=_0x1c6aa1;logger[_0x4242('0xb')](_0x4242('0x4a'),_0x3b32e2['id']);return getTicket(_0x497688,_0x47d6e8,_0x3b32e2,_0x1565fd,_0xaedeea);})['then'](function(_0x52bd1c){if(_0x52bd1c&&_0x52bd1c['id']){logger[_0x4242('0xb')](_0x4242('0x1a'));logger[_0x4242('0xb')](_0x4242('0x4b'),_0x52bd1c['id']);logger['info'](_0x4242('0x43'),_0x4242('0x4c'));emit(util[_0x4242('0xd')]('user:%s',_0x4ccf4a[_0x4242('0x12')]),'trigger:browser:url',{'uri':util['format'](_0x4242('0x4d'),_0x497688[_0x4242('0x17')],_0x52bd1c['id'])});}})[_0x4242('0x4e')](function(_0x26e155){logger[_0x4242('0x4f')](_0x4242('0x43'),JSON[_0x4242('0x2f')](_0x26e155));});};exports['outbound']=function(_0x5eb412,_0x34c06b,_0x422e03,_0xd00803,_0x2981be,_0x1bb11c,_0x555799){var _0x3476bf,_0x11e7d0;_0x1bb11c[_0x4242('0x17')]=intUtil['stripTrailingSlash'](_0x1bb11c['remoteUri']);_0x1bb11c[_0x4242('0x41')]=intUtil[_0x4242('0x40')](_0x1bb11c[_0x4242('0x41')]);if(_0x555799&&_0x555799[_0x4242('0x50')]&&_0x555799['recordingFormat']!==_0x4242('0x51')){logger['info'](_0x4242('0x52'),_0x4242('0x44'));_0x34c06b[_0x4242('0x45')]=util['format'](_0x4242('0x46'),_0x1bb11c['serverUrl'],_0x34c06b[_0x4242('0x47')],md5(_0x34c06b[_0x4242('0x47')]));}headers[_0x4242('0x53')]=getAuth(_0x1bb11c);return getUser(_0x1bb11c,_0xd00803[_0x4242('0x21')])[_0x4242('0x19')](function(_0x5eeead){_0x3476bf=_0x5eeead;logger[_0x4242('0xb')](_0x4242('0x48'),_0x3476bf['id']);return getEndUser(_0x1bb11c,_0x34c06b[_0x4242('0x54')],_0x34c06b[_0x4242('0x55')]);})[_0x4242('0x19')](function(_0x2c9687){_0x11e7d0=_0x2c9687;logger['info'](_0x4242('0x4a'),_0x11e7d0['id']);return getTicket(_0x1bb11c,_0x3476bf,_0x11e7d0,_0x422e03,_0x34c06b);})[_0x4242('0x19')](function(_0x3947b9){if(_0x3947b9&&_0x3947b9['id']){logger[_0x4242('0xb')](_0x4242('0x1a'));logger[_0x4242('0xb')](_0x4242('0x4b'),_0x3947b9['id']);logger[_0x4242('0xb')](_0x4242('0x52'),_0x4242('0x4c'));emit(util[_0x4242('0xd')](_0x4242('0x56'),_0xd00803[_0x4242('0x12')]),_0x4242('0x57'),{'uri':util['format'](_0x4242('0x4d'),_0x1bb11c[_0x4242('0x17')],_0x3947b9['id'])});}})[_0x4242('0x4e')](function(_0x1ddba3){logger[_0x4242('0x4f')](_0x4242('0x52'),JSON[_0x4242('0x2f')](_0x1ddba3));});};exports[_0x4242('0x58')]=function(_0x48f629,_0x19ed99,_0x3c8081,_0x20c747,_0x2e14bd,_0x36d36c){var _0x4606e8,_0x15e6d7;_0x36d36c['remoteUri']=intUtil['stripTrailingSlash'](_0x36d36c[_0x4242('0x17')]);_0x36d36c['serverUrl']=intUtil[_0x4242('0x40')](_0x36d36c[_0x4242('0x41')]);if(_0x2e14bd&&_0x2e14bd[_0x4242('0x42')]){logger['info']('['+_0x19ed99['lastevent'][_0x4242('0x59')]()+']',_0x4242('0x44'));_0x19ed99['recordingURL']=util[_0x4242('0xd')](_0x4242('0x46'),_0x36d36c['serverUrl'],_0x19ed99[_0x4242('0x47')],md5(_0x19ed99[_0x4242('0x47')]));}else{_0x19ed99['recordingURL']='';}headers[_0x4242('0x53')]=getAuth(_0x36d36c);return getUser(_0x36d36c,'')[_0x4242('0x19')](function(_0x54ea2f){_0x4606e8=_0x54ea2f;logger['info']('The\x20User\x20ID\x20is:',_0x4606e8['id']);return getEndUser(_0x36d36c,_0x19ed99[_0x4242('0xe')],_0x19ed99[_0x4242('0x49')]);})['then'](function(_0x2c0b3c){_0x15e6d7=_0x2c0b3c;logger[_0x4242('0xb')](_0x4242('0x4a'),_0x15e6d7['id']);return getTicket(_0x36d36c,_0x4606e8,_0x15e6d7,_0x3c8081,_0x19ed99);})[_0x4242('0x19')](function(_0x3aaf39){if(_0x3aaf39){logger[_0x4242('0xb')](_0x4242('0x1a'));logger[_0x4242('0xb')](_0x4242('0x4b'),_0x3aaf39['id']);}})[_0x4242('0x4e')](function(_0x524cfd){logger[_0x4242('0x4f')]('['+_0x19ed99[_0x4242('0x5a')][_0x4242('0x59')]()+']',JSON['stringify'](_0x524cfd));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3d55=['[QUEUE]','recordingURL','recordingFormat','Recording\x20is\x20enabled!','The\x20ticket\x20ID\x20is:\x20%s','Displaying\x20task\x20in\x20a\x20new\x20tab...','name',']\x20Error\x20running\x20Freshsales\x20integration','request-promise','md5','util','bluebird','ioredis','./util','../../../../config/environment','redis','defaults','localhost','socket.io-emitter','/api/selector/owners','headers','info','Getting\x20admin\x20information','then','users','length','adminEmail','Requested\x20Resource\x20not\x20Found','catch','error','toUpperCase','GET','Getting\x20user\x20list','agentEmail','Getting\x20user\x20with\x20email','userEmail','email','userId','User\x20found:','adminId','message','/api/lookup?q=','&f=','&entities=contact','find','contacts','format','contactNumber','mobile_number','endUserId','Contact\x20found\x20mobile_number:','work_number','Contact\x20created:','POST','/api/contacts','YYYY-MM-DDTHH:mm:ss','Contact\x20not\x20found,\x20creating\x20a\x20new\x20contact','contact','/api/tasks','getString','Contact','add','Task\x20created:','ticketId','/contacts/','user:%s','emit','Token\x20token=','apiKey','remoteUri','stripTrailingSlash','serverUrl','username','toLowerCase','outbound','destcalleridnum','calleridnum','unmanaged','queue','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','monitor_format'];(function(_0x82b0b9,_0x10057b){var _0x138417=function(_0x1772d5){while(--_0x1772d5){_0x82b0b9['push'](_0x82b0b9['shift']());}};_0x138417(++_0x10057b);}(_0x3d55,0x1a2));var _0x53d5=function(_0x4c49cd,_0x1b630d){_0x4c49cd=_0x4c49cd-0x0;var _0x29ba71=_0x3d55[_0x4c49cd];return _0x29ba71;};'use strict';var _=require('lodash');var rp=require(_0x53d5('0x0'));var md5=require(_0x53d5('0x1'));var util=require(_0x53d5('0x2'));var moment=require('moment');var Promise=require(_0x53d5('0x3'));var Redis=require(_0x53d5('0x4'));var intUtil=require(_0x53d5('0x5'));var config=require(_0x53d5('0x6'));var logger=require('../../../../config/logger')('freshsales');config[_0x53d5('0x7')]=_[_0x53d5('0x8')](config[_0x53d5('0x7')],{'host':_0x53d5('0x9'),'port':0x18eb});var io=require(_0x53d5('0xa'))(new Redis(config[_0x53d5('0x7')]));function getAdminId(_0x5abddb,_0x223ace,_0x326a12,_0x2a79b2){return new Promise(function(_0x7fa7f5,_0x53f32a){var _0x1daff6=![];var _0x3ba5c9={'method':'GET','uri':_0x2a79b2+_0x53d5('0xb'),'json':!![]};_0x3ba5c9[_0x53d5('0xc')]=_0x326a12;logger[_0x53d5('0xd')](_0x53d5('0xe'));return rp(_0x3ba5c9)[_0x53d5('0xf')](function(_0x15f9bc){if(_0x15f9bc){var _0x376f38=_0x15f9bc[_0x53d5('0x10')];var _0x14eb8e=null;for(_0x14eb8e=0x0;_0x14eb8e<_0x376f38[_0x53d5('0x11')];_0x14eb8e++){if(_0x376f38[_0x14eb8e]['email']===_0x5abddb[_0x53d5('0x12')]){_0x5abddb['adminId']=_0x376f38[_0x14eb8e]['id'];_0x1daff6=!![];}}if(_0x1daff6){logger[_0x53d5('0xd')]('Admin\x20found:',_0x5abddb['adminId']);_0x7fa7f5(_0x5abddb);}else{_0x53f32a({'statusCode':0x194,'message':_0x53d5('0x13')});}}else{_0x53f32a({'statusCode':0x194,'message':_0x53d5('0x13')});}})[_0x53d5('0x14')](function(_0x217365){logger[_0x53d5('0x15')]('['+[_0x223ace[_0x53d5('0x16')]()]+']',_0x217365['message']);_0x53f32a(_0x217365);});});}function getUser(_0x211a42,_0x5974d3,_0x27d402){return function(_0x5590c6){return new Promise(function(_0x25a059,_0x1efa18){var _0x352f60={'method':_0x53d5('0x17'),'uri':_0x27d402+_0x53d5('0xb'),'json':!![]};_0x352f60[_0x53d5('0xc')]=_0x5974d3;logger[_0x53d5('0xd')](_0x53d5('0x18'));return rp(_0x352f60)['then'](function(_0x358d97){if(_0x358d97){var _0x45c95e=_0x358d97[_0x53d5('0x10')];var _0x4fc668=![];var _0x510191=null;if(_0x5590c6[_0x53d5('0x19')]!==null){logger[_0x53d5('0xd')](_0x53d5('0x1a'),_0x5590c6[_0x53d5('0x19')]);_0x5590c6[_0x53d5('0x1b')]=_0x5590c6['agentEmail'];for(_0x510191=0x0;_0x510191<_0x45c95e[_0x53d5('0x11')];_0x510191++){if(_0x45c95e[_0x510191][_0x53d5('0x1c')]===_0x5590c6[_0x53d5('0x19')]){_0x4fc668=!![];_0x5590c6[_0x53d5('0x1d')]=_0x45c95e[_0x510191]['id'];logger[_0x53d5('0xd')](_0x53d5('0x1e'),_0x5590c6['userId']);}}}if(!_0x4fc668){logger[_0x53d5('0xd')]('Admin\x20selected');_0x5590c6['userEmail']=_0x5590c6[_0x53d5('0x12')];_0x5590c6[_0x53d5('0x1d')]=_0x5590c6[_0x53d5('0x1f')];_0x4fc668=!![];}if(_0x4fc668){_0x25a059(_0x5590c6);}else{_0x1efa18({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}}else{_0x1efa18({'statusCode':0x194,'message':_0x53d5('0x13')});}})[_0x53d5('0x14')](function(_0x33aa82){logger[_0x53d5('0x15')]('['+[_0x211a42[_0x53d5('0x16')]()]+']',_0x33aa82[_0x53d5('0x20')]);_0x1efa18(_0x33aa82);});});};}function searchContact(_0x4e365c,_0x788a21,_0x106d2f,_0x510874){return new Promise(function(_0x1c6694,_0x3658c7){var _0x525047={'method':_0x53d5('0x17'),'headers':_0x788a21,'uri':_0x4e365c+_0x53d5('0x21')+_0x510874+_0x53d5('0x22')+_0x106d2f+_0x53d5('0x23'),'json':!![]};rp(_0x525047)[_0x53d5('0xf')](function(_0x545427){var _0x5de937=_[_0x53d5('0x24')](_0x545427[_0x53d5('0x25')]['contacts'],[_0x106d2f,_0x510874]);_0x1c6694(_0x5de937);})['catch'](function(_0x508a7e){_0x3658c7(_0x508a7e);});});}function getEndUser(_0x1b5694,_0x43642e,_0x573ce7){return function(_0x4aedbd){return new Promise(function(_0x4e911b,_0x541988){logger[_0x53d5('0xd')](util[_0x53d5('0x26')]('Searching\x20contact\x20with\x20phone\x20%s',_0x4aedbd[_0x53d5('0x27')]));searchContact(_0x573ce7,_0x43642e,_0x53d5('0x28'),_0x4aedbd[_0x53d5('0x27')])[_0x53d5('0xf')](function(_0x159f43){if(_0x159f43){_0x4aedbd[_0x53d5('0x29')]=_0x159f43['id'];logger[_0x53d5('0xd')](_0x53d5('0x2a'),_0x4aedbd[_0x53d5('0x29')]);return _0x4e911b(_0x4aedbd);}searchContact(_0x573ce7,_0x43642e,_0x53d5('0x2b'),_0x4aedbd[_0x53d5('0x27')])[_0x53d5('0xf')](function(_0x2e74f6){if(_0x2e74f6){_0x4aedbd[_0x53d5('0x29')]=_0x2e74f6['id'];logger[_0x53d5('0xd')]('Contact\x20found\x20work_number:',_0x4aedbd[_0x53d5('0x29')]);return _0x4e911b(_0x4aedbd);}createEndUser(_0x4aedbd,_0x1b5694,_0x43642e,_0x573ce7)['then'](function(_0x65c6d7){logger[_0x53d5('0xd')](_0x53d5('0x2c'),_0x65c6d7[_0x53d5('0x29')]);return _0x4e911b(_0x65c6d7);});});})[_0x53d5('0x14')](function(_0x5cfc43){_0x541988(_0x5cfc43);});});};}function createEndUser(_0x327890,_0x9300a4,_0x443e7b,_0x18dc4c){return new Promise(function(_0x56682c,_0x8eb01a){var _0x29fbbd=moment();var _0xf31400={'method':_0x53d5('0x2d'),'uri':_0x18dc4c+_0x53d5('0x2e'),'body':{'contact':{'last_name':_0x327890[_0x53d5('0x27')],'work_number':_0x327890[_0x53d5('0x27')],'mobile_number':_0x327890[_0x53d5('0x27')],'owner_id':_0x327890[_0x53d5('0x1d')],'created_at':_0x29fbbd['format'](_0x53d5('0x2f'))}},'json':!![]};_0xf31400[_0x53d5('0xc')]=_0x443e7b;logger['info'](_0x53d5('0x30'));return rp(_0xf31400)[_0x53d5('0xf')](function(_0x653bbe){_0x327890[_0x53d5('0x29')]=_0x653bbe[_0x53d5('0x31')]['id'];_0x56682c(_0x327890);})[_0x53d5('0x14')](function(_0x37b462){logger['error']('['+[_0x9300a4[_0x53d5('0x16')]()]+']',_0x37b462[_0x53d5('0x20')]);_0x8eb01a(_0x37b462[_0x53d5('0x20')]);});});}function getTicket(_0x12286a,_0x2219a7,_0x25e9d2,_0x4a9c0d,_0xc257ca){return function(_0xa3e03b){logger['info']('Creating\x20new\x20task');return new Promise(function(_0x556d2a,_0x5af4b1){var _0xfdac6a=moment();var _0x55c7f9={'method':_0x53d5('0x2d'),'uri':_0x25e9d2+_0x53d5('0x32'),'body':{'title':intUtil[_0x53d5('0x33')](_0x4a9c0d['Subjects'],_0xc257ca,'\x20'),'description':intUtil[_0x53d5('0x33')](_0x4a9c0d['Descriptions'],_0xc257ca,'\x0a'),'owner_id':_0xa3e03b[_0x53d5('0x1d')],'creater_id':_0xa3e03b['adminId'],'targetable_id':_0xa3e03b[_0x53d5('0x29')],'targetable_type':_0x53d5('0x34'),'created_at':_0xfdac6a[_0x53d5('0x26')]('YYYY-MM-DDTHH:mm:ss'),'due_date':_0xfdac6a[_0x53d5('0x35')](0x1e,'m')[_0x53d5('0x26')](_0x53d5('0x2f'))},'json':!![]};_0x55c7f9['headers']=_0x2219a7;return rp(_0x55c7f9)[_0x53d5('0xf')](function(_0x58d412){_0xa3e03b['ticketId']=_0x58d412['task']['id'];logger[_0x53d5('0xd')](_0x53d5('0x36'),_0xa3e03b[_0x53d5('0x37')]);_0x556d2a(_0xa3e03b);})['catch'](function(_0xe531d7){logger['error']('['+[_0x12286a[_0x53d5('0x16')]()]+']',_0xe531d7[_0x53d5('0x20')]);_0x5af4b1(_0xe531d7['message']);});});};}function emit(_0x6da15f,_0x1e3816,_0x261aac){var _0x1a5d65={'uri':_0x6da15f+_0x53d5('0x38')+_0x261aac};io['to'](util['format'](_0x53d5('0x39'),_0x1e3816))[_0x53d5('0x3a')]('trigger:browser:url',_0x1a5d65);}exports['cs']=function(_0x39109d,_0xa01e1,_0x116192,_0x4a8fe1,_0x245fc9,_0x526584,_0x4343d6,_0x8e9e4e){var _0x19e9aa={};var _0x2dab8f={'Authorization':_0x53d5('0x3b')+_0x526584[_0x53d5('0x3c')]};_0x526584[_0x53d5('0x3d')]=intUtil[_0x53d5('0x3e')](_0x526584[_0x53d5('0x3d')]);_0x526584[_0x53d5('0x3f')]=intUtil['stripTrailingSlash'](_0x526584['serverUrl']);var _0xb90db0=_0x526584['remoteUri'];_0x19e9aa['adminEmail']=_0x526584[_0x53d5('0x40')];_0x19e9aa[_0x53d5('0x27')]=_0x8e9e4e[_0x53d5('0x41')]()===_0x53d5('0x42')?_0xa01e1[_0x53d5('0x43')]:_0xa01e1[_0x53d5('0x44')];_0x19e9aa['callDirection']=_0x8e9e4e==='queue'||_0x8e9e4e===_0x53d5('0x45')?_0x53d5('0x46'):'outbound';if(_0x4a8fe1){_0x19e9aa[_0x53d5('0x19')]=_0x4a8fe1[_0x53d5('0x1c')];}var _0x28166a=util[_0x53d5('0x26')](_0x53d5('0x47'),_0x526584['serverUrl'],_0xa01e1[_0x53d5('0x48')],md5(_0xa01e1[_0x53d5('0x48')]));if(_0x245fc9&&_0x245fc9[_0x53d5('0x49')]){logger['info'](_0x53d5('0x4a'),'Recording\x20is\x20enabled!');_0xa01e1[_0x53d5('0x4b')]=_0x28166a;}else if(_0x4343d6&&_0x4343d6[_0x53d5('0x4c')]&&_0x4343d6[_0x53d5('0x4c')]!=='none'){logger[_0x53d5('0xd')]('[OUTBOUND]',_0x53d5('0x4d'));_0xa01e1[_0x53d5('0x4b')]=_0x28166a;}else{_0xa01e1[_0x53d5('0x4b')]='';}return getAdminId(_0x19e9aa,_0x8e9e4e,_0x2dab8f,_0xb90db0)[_0x53d5('0xf')](getUser(_0x8e9e4e,_0x2dab8f,_0xb90db0))[_0x53d5('0xf')](getEndUser(_0x8e9e4e,_0x2dab8f,_0xb90db0))[_0x53d5('0xf')](getTicket(_0x8e9e4e,_0x2dab8f,_0xb90db0,_0x116192,_0xa01e1))[_0x53d5('0xf')](function(_0x419338){logger[_0x53d5('0xd')](util[_0x53d5('0x26')](_0x53d5('0x4e'),_0x419338[_0x53d5('0x37')]));if(_0x8e9e4e!==_0x53d5('0x45')){logger[_0x53d5('0xd')]('['+[_0x8e9e4e[_0x53d5('0x16')]()]+']',_0x53d5('0x4f'));emit(_0xb90db0,_0x4a8fe1[_0x53d5('0x50')],_0x419338[_0x53d5('0x29')]);}})[_0x53d5('0x14')](function(_0x5ccafd){logger['error']('['+[_0x8e9e4e['toUpperCase']()]+_0x53d5('0x51'),util['inspect'](_0x5ccafd,{'showHidden':!![],'depth':null}));});};
\ No newline at end of file
+var _0xc538=['/api/selector/owners','info','Getting\x20admin\x20information','then','length','email','adminEmail','adminId','Admin\x20found:','Requested\x20Resource\x20not\x20Found','catch','error','toUpperCase','message','headers','Getting\x20user\x20list','users','agentEmail','userId','User\x20found:','Admin\x20selected','userEmail','&f=','&entities=contact','find','contacts','format','Searching\x20contact\x20with\x20phone\x20%s','contactNumber','Contact\x20found\x20mobile_number:','endUserId','work_number','Contact\x20found\x20work_number:','Contact\x20created:','POST','/api/contacts','YYYY-MM-DDTHH:mm:ss','Contact\x20not\x20found,\x20creating\x20a\x20new\x20contact','contact','/api/tasks','getString','Subjects','Descriptions','Contact','add','ticketId','task','/contacts/','user:%s','emit','trigger:browser:url','apiKey','remoteUri','stripTrailingSlash','toLowerCase','outbound','destcalleridnum','calleridnum','queue','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','serverUrl','uniqueid','monitor_format','[QUEUE]','recordingURL','recordingFormat','none','[OUTBOUND]','The\x20ticket\x20ID\x20is:\x20%s','Displaying\x20task\x20in\x20a\x20new\x20tab...','name','inspect','lodash','request-promise','md5','util','moment','bluebird','ioredis','./util','../../../../config/logger','freshsales','redis','localhost','socket.io-emitter','GET'];(function(_0x2dccb2,_0x2cf3a6){var _0x7f4498=function(_0x38e8d8){while(--_0x38e8d8){_0x2dccb2['push'](_0x2dccb2['shift']());}};_0x7f4498(++_0x2cf3a6);}(_0xc538,0x9e));var _0x8c53=function(_0x2cf2e9,_0xd58ea1){_0x2cf2e9=_0x2cf2e9-0x0;var _0xd3670d=_0xc538[_0x2cf2e9];return _0xd3670d;};'use strict';var _=require(_0x8c53('0x0'));var rp=require(_0x8c53('0x1'));var md5=require(_0x8c53('0x2'));var util=require(_0x8c53('0x3'));var moment=require(_0x8c53('0x4'));var Promise=require(_0x8c53('0x5'));var Redis=require(_0x8c53('0x6'));var intUtil=require(_0x8c53('0x7'));var config=require('../../../../config/environment');var logger=require(_0x8c53('0x8'))(_0x8c53('0x9'));config[_0x8c53('0xa')]=_['defaults'](config[_0x8c53('0xa')],{'host':_0x8c53('0xb'),'port':0x18eb});var io=require(_0x8c53('0xc'))(new Redis(config[_0x8c53('0xa')]));function getAdminId(_0x409fca,_0x18638c,_0x12f4dc,_0x586088){return new Promise(function(_0x5ad04d,_0x34b4a8){var _0x3a18fc=![];var _0x1e047d={'method':_0x8c53('0xd'),'uri':_0x586088+_0x8c53('0xe'),'json':!![]};_0x1e047d['headers']=_0x12f4dc;logger[_0x8c53('0xf')](_0x8c53('0x10'));return rp(_0x1e047d)[_0x8c53('0x11')](function(_0x3ff989){if(_0x3ff989){var _0x5506e8=_0x3ff989['users'];var _0x5306f5=null;for(_0x5306f5=0x0;_0x5306f5<_0x5506e8[_0x8c53('0x12')];_0x5306f5++){if(_0x5506e8[_0x5306f5][_0x8c53('0x13')]===_0x409fca[_0x8c53('0x14')]){_0x409fca[_0x8c53('0x15')]=_0x5506e8[_0x5306f5]['id'];_0x3a18fc=!![];}}if(_0x3a18fc){logger[_0x8c53('0xf')](_0x8c53('0x16'),_0x409fca['adminId']);_0x5ad04d(_0x409fca);}else{_0x34b4a8({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}}else{_0x34b4a8({'statusCode':0x194,'message':_0x8c53('0x17')});}})[_0x8c53('0x18')](function(_0x3b06d0){logger[_0x8c53('0x19')]('['+[_0x18638c[_0x8c53('0x1a')]()]+']',_0x3b06d0[_0x8c53('0x1b')]);_0x34b4a8(_0x3b06d0);});});}function getUser(_0x58b7b7,_0x1a6e11,_0x38434a){return function(_0x4894f5){return new Promise(function(_0x367974,_0x2c848c){var _0x34ab19={'method':'GET','uri':_0x38434a+_0x8c53('0xe'),'json':!![]};_0x34ab19[_0x8c53('0x1c')]=_0x1a6e11;logger[_0x8c53('0xf')](_0x8c53('0x1d'));return rp(_0x34ab19)['then'](function(_0x575ac0){if(_0x575ac0){var _0x3b49a3=_0x575ac0[_0x8c53('0x1e')];var _0xe2e24a=![];var _0x544775=null;if(_0x4894f5['agentEmail']!==null){logger['info']('Getting\x20user\x20with\x20email',_0x4894f5['agentEmail']);_0x4894f5['userEmail']=_0x4894f5[_0x8c53('0x1f')];for(_0x544775=0x0;_0x544775<_0x3b49a3[_0x8c53('0x12')];_0x544775++){if(_0x3b49a3[_0x544775][_0x8c53('0x13')]===_0x4894f5[_0x8c53('0x1f')]){_0xe2e24a=!![];_0x4894f5[_0x8c53('0x20')]=_0x3b49a3[_0x544775]['id'];logger[_0x8c53('0xf')](_0x8c53('0x21'),_0x4894f5[_0x8c53('0x20')]);}}}if(!_0xe2e24a){logger[_0x8c53('0xf')](_0x8c53('0x22'));_0x4894f5[_0x8c53('0x23')]=_0x4894f5[_0x8c53('0x14')];_0x4894f5['userId']=_0x4894f5[_0x8c53('0x15')];_0xe2e24a=!![];}if(_0xe2e24a){_0x367974(_0x4894f5);}else{_0x2c848c({'statusCode':0x194,'message':_0x8c53('0x17')});}}else{_0x2c848c({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}})[_0x8c53('0x18')](function(_0x5e3630){logger[_0x8c53('0x19')]('['+[_0x58b7b7[_0x8c53('0x1a')]()]+']',_0x5e3630[_0x8c53('0x1b')]);_0x2c848c(_0x5e3630);});});};}function searchContact(_0xea7b07,_0x2c573c,_0x5005b2,_0x22004d){return new Promise(function(_0x2940e6,_0x5db14c){var _0x46f620={'method':'GET','headers':_0x2c573c,'uri':_0xea7b07+'/api/lookup?q='+_0x22004d+_0x8c53('0x24')+_0x5005b2+_0x8c53('0x25'),'json':!![]};rp(_0x46f620)['then'](function(_0x601a6d){var _0x25355b=_[_0x8c53('0x26')](_0x601a6d[_0x8c53('0x27')][_0x8c53('0x27')],[_0x5005b2,_0x22004d]);_0x2940e6(_0x25355b);})[_0x8c53('0x18')](function(_0x243f68){_0x5db14c(_0x243f68);});});}function getEndUser(_0x3b0fb6,_0x3586d7,_0x5991ac){return function(_0x434afb){return new Promise(function(_0x1de09c,_0x1231e6){logger['info'](util[_0x8c53('0x28')](_0x8c53('0x29'),_0x434afb[_0x8c53('0x2a')]));searchContact(_0x5991ac,_0x3586d7,'mobile_number',_0x434afb[_0x8c53('0x2a')])['then'](function(_0x381541){if(_0x381541){_0x434afb['endUserId']=_0x381541['id'];logger[_0x8c53('0xf')](_0x8c53('0x2b'),_0x434afb[_0x8c53('0x2c')]);return _0x1de09c(_0x434afb);}searchContact(_0x5991ac,_0x3586d7,_0x8c53('0x2d'),_0x434afb[_0x8c53('0x2a')])[_0x8c53('0x11')](function(_0x556a08){if(_0x556a08){_0x434afb[_0x8c53('0x2c')]=_0x556a08['id'];logger[_0x8c53('0xf')](_0x8c53('0x2e'),_0x434afb['endUserId']);return _0x1de09c(_0x434afb);}createEndUser(_0x434afb,_0x3b0fb6,_0x3586d7,_0x5991ac)[_0x8c53('0x11')](function(_0x3553c9){logger[_0x8c53('0xf')](_0x8c53('0x2f'),_0x3553c9[_0x8c53('0x2c')]);return _0x1de09c(_0x3553c9);});});})['catch'](function(_0x7b7a8b){_0x1231e6(_0x7b7a8b);});});};}function createEndUser(_0x8fdfcb,_0x5d25ff,_0x2af3c4,_0x205339){return new Promise(function(_0x4c7ee0,_0x87b548){var _0x2b9f34=moment();var _0x585555={'method':_0x8c53('0x30'),'uri':_0x205339+_0x8c53('0x31'),'body':{'contact':{'last_name':_0x8fdfcb['contactNumber'],'work_number':_0x8fdfcb[_0x8c53('0x2a')],'mobile_number':_0x8fdfcb[_0x8c53('0x2a')],'owner_id':_0x8fdfcb[_0x8c53('0x20')],'created_at':_0x2b9f34['format'](_0x8c53('0x32'))}},'json':!![]};_0x585555[_0x8c53('0x1c')]=_0x2af3c4;logger[_0x8c53('0xf')](_0x8c53('0x33'));return rp(_0x585555)['then'](function(_0xd454b){_0x8fdfcb[_0x8c53('0x2c')]=_0xd454b[_0x8c53('0x34')]['id'];_0x4c7ee0(_0x8fdfcb);})[_0x8c53('0x18')](function(_0x15c9da){logger[_0x8c53('0x19')]('['+[_0x5d25ff['toUpperCase']()]+']',_0x15c9da['message']);_0x87b548(_0x15c9da['message']);});});}function getTicket(_0x54b11e,_0x532296,_0x246e8a,_0x5f22df,_0x109426){return function(_0x4d8107){logger[_0x8c53('0xf')]('Creating\x20new\x20task');return new Promise(function(_0xee0511,_0x2e4276){var _0x2c723b=moment();var _0x1b8874={'method':_0x8c53('0x30'),'uri':_0x246e8a+_0x8c53('0x35'),'body':{'title':intUtil[_0x8c53('0x36')](_0x5f22df[_0x8c53('0x37')],_0x109426,'\x20'),'description':intUtil[_0x8c53('0x36')](_0x5f22df[_0x8c53('0x38')],_0x109426,'\x0a'),'owner_id':_0x4d8107['userId'],'creater_id':_0x4d8107[_0x8c53('0x15')],'targetable_id':_0x4d8107['endUserId'],'targetable_type':_0x8c53('0x39'),'created_at':_0x2c723b[_0x8c53('0x28')](_0x8c53('0x32')),'due_date':_0x2c723b[_0x8c53('0x3a')](0x1e,'m')[_0x8c53('0x28')](_0x8c53('0x32'))},'json':!![]};_0x1b8874[_0x8c53('0x1c')]=_0x532296;return rp(_0x1b8874)['then'](function(_0x253e78){_0x4d8107[_0x8c53('0x3b')]=_0x253e78[_0x8c53('0x3c')]['id'];logger[_0x8c53('0xf')]('Task\x20created:',_0x4d8107[_0x8c53('0x3b')]);_0xee0511(_0x4d8107);})['catch'](function(_0x1dbdc9){logger[_0x8c53('0x19')]('['+[_0x54b11e[_0x8c53('0x1a')]()]+']',_0x1dbdc9[_0x8c53('0x1b')]);_0x2e4276(_0x1dbdc9[_0x8c53('0x1b')]);});});};}function emit(_0x498602,_0x40160d,_0xa5993d){var _0x2dccc1={'uri':_0x498602+_0x8c53('0x3d')+_0xa5993d};io['to'](util['format'](_0x8c53('0x3e'),_0x40160d))[_0x8c53('0x3f')](_0x8c53('0x40'),_0x2dccc1);}exports['cs']=function(_0x1bc49f,_0x2857b7,_0x4215f4,_0x31ebde,_0x56f538,_0x5ec33c,_0x374058,_0x4d2256){var _0x1e644c={};var _0x81771c={'Authorization':'Token\x20token='+_0x5ec33c[_0x8c53('0x41')]};_0x5ec33c[_0x8c53('0x42')]=intUtil['stripTrailingSlash'](_0x5ec33c[_0x8c53('0x42')]);_0x5ec33c['serverUrl']=intUtil[_0x8c53('0x43')](_0x5ec33c['serverUrl']);var _0x1a1823=_0x5ec33c['remoteUri'];_0x1e644c[_0x8c53('0x14')]=_0x5ec33c['username'];_0x1e644c[_0x8c53('0x2a')]=_0x4d2256[_0x8c53('0x44')]()===_0x8c53('0x45')?_0x2857b7[_0x8c53('0x46')]:_0x2857b7[_0x8c53('0x47')];_0x1e644c['callDirection']=_0x4d2256===_0x8c53('0x48')||_0x4d2256==='unmanaged'?_0x8c53('0x48'):_0x8c53('0x45');if(_0x31ebde){_0x1e644c[_0x8c53('0x1f')]=_0x31ebde[_0x8c53('0x13')];}var _0x58d5c2=util['format'](_0x8c53('0x49'),_0x5ec33c[_0x8c53('0x4a')],_0x2857b7['uniqueid'],md5(_0x2857b7[_0x8c53('0x4b')]));if(_0x56f538&&_0x56f538[_0x8c53('0x4c')]){logger[_0x8c53('0xf')](_0x8c53('0x4d'),'Recording\x20is\x20enabled!');_0x2857b7[_0x8c53('0x4e')]=_0x58d5c2;}else if(_0x374058&&_0x374058[_0x8c53('0x4f')]&&_0x374058['recordingFormat']!==_0x8c53('0x50')){logger[_0x8c53('0xf')](_0x8c53('0x51'),'Recording\x20is\x20enabled!');_0x2857b7[_0x8c53('0x4e')]=_0x58d5c2;}else{_0x2857b7[_0x8c53('0x4e')]='';}return getAdminId(_0x1e644c,_0x4d2256,_0x81771c,_0x1a1823)[_0x8c53('0x11')](getUser(_0x4d2256,_0x81771c,_0x1a1823))[_0x8c53('0x11')](getEndUser(_0x4d2256,_0x81771c,_0x1a1823))[_0x8c53('0x11')](getTicket(_0x4d2256,_0x81771c,_0x1a1823,_0x4215f4,_0x2857b7))[_0x8c53('0x11')](function(_0x20c76d){logger[_0x8c53('0xf')](util[_0x8c53('0x28')](_0x8c53('0x52'),_0x20c76d[_0x8c53('0x3b')]));if(_0x4d2256!=='unmanaged'){logger[_0x8c53('0xf')]('['+[_0x4d2256[_0x8c53('0x1a')]()]+']',_0x8c53('0x53'));emit(_0x1a1823,_0x31ebde[_0x8c53('0x54')],_0x20c76d[_0x8c53('0x2c')]);}})['catch'](function(_0x23b207){logger[_0x8c53('0x19')]('['+[_0x4d2256[_0x8c53('0x1a')]()]+']\x20Error\x20running\x20Freshsales\x20integration',util[_0x8c53('0x55')](_0x23b207,{'showHidden':!![],'depth':null}));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc694=['./zendesk','./salesforce','./sugarcrm','./zoho','./desk','./vtiger','./servicenow','./dynamics365','./freshsales','zendesk','salesforce','sugarcrm','freshdesk','zoho','desk','vtiger','freshsales','servicenow','exec','data1','toLowerCase','data2','find','Configurations','queue','routeId','log','unmanaged','dynamics365','../../../../config/logger','format','%s\x20configuration\x20#%s\x20not\x20found','error','[EXEC]','%s\x20account\x20#%s\x20not\x20found','lodash','util'];(function(_0x3dfeb9,_0x1cc6e4){var _0x412314=function(_0x321253){while(--_0x321253){_0x3dfeb9['push'](_0x3dfeb9['shift']());}};_0x412314(++_0x1cc6e4);}(_0xc694,0x6d));var _0x4c69=function(_0x1ce9ea,_0x32e6f4){_0x1ce9ea=_0x1ce9ea-0x0;var _0x2a95b9=_0xc694[_0x1ce9ea];return _0x2a95b9;};'use strict';var _=require(_0x4c69('0x0'));var util=require(_0x4c69('0x1'));var zendesk=require(_0x4c69('0x2'));var salesforce=require(_0x4c69('0x3'));var sugarcrm=require(_0x4c69('0x4'));var freshdesk=require('./freshdesk');var zoho=require(_0x4c69('0x5'));var desk=require(_0x4c69('0x6'));var vtiger=require(_0x4c69('0x7'));var servicenow=require(_0x4c69('0x8'));var dynamics365=require(_0x4c69('0x9'));var freshsales=require(_0x4c69('0xa'));var integrations=[_0x4c69('0xb'),_0x4c69('0xc'),_0x4c69('0xd'),_0x4c69('0xe'),_0x4c69('0xf'),_0x4c69('0x10'),_0x4c69('0x11'),'dynamics365',_0x4c69('0x12'),_0x4c69('0x13')];exports[_0x4c69('0x14')]=function(_0x1c8ba8,_0x590f82,_0x47b179,_0x1fcb6d,_0x119acd,_0x8b889c){if(_0x47b179){if(_['includes'](integrations,_0x1c8ba8[_0x4c69('0x15')][_0x4c69('0x16')]())){try{var _0x43993d=null;var _0x4e24c3='';var _0x5ba287=_0x47b179[_0x1c8ba8[_0x4c69('0x15')]['toLowerCase']()];if(_0x5ba287){var _0x5a7821=_0x5ba287[_0x1c8ba8[_0x4c69('0x17')]];if(_0x5a7821){var _0x5f9e0=_[_0x4c69('0x18')](_0x5a7821[_0x4c69('0x19')],{'id':parseInt(_0x1c8ba8['data3'],0xa)});if(_0x5f9e0){if(_0x1fcb6d){if(_0x119acd&&_0x590f82[_0x4c69('0x1a')]){_0x4e24c3=_0x4c69('0x1a');}else if(_0x590f82[_0x4c69('0x1b')]){_0x4e24c3='outbound';}else{console[_0x4c69('0x1c')]('EVENT\x20UNKNOWN',_0x590f82);}}else{_0x4e24c3=_0x4c69('0x1d');}switch(_0x1c8ba8['data1'][_0x4c69('0x16')]()){case _0x4c69('0xb'):zendesk[_0x4e24c3](_0x1c8ba8,_0x590f82,_0x5f9e0,_0x1fcb6d,_0x119acd,_0x5a7821,_0x8b889c);break;case'salesforce':salesforce[_0x4e24c3](_0x1c8ba8,_0x590f82,_0x5f9e0,_0x1fcb6d,_0x119acd,_0x5a7821,_0x8b889c);break;case _0x4c69('0xd'):sugarcrm[_0x4e24c3](_0x1c8ba8,_0x590f82,_0x5f9e0,_0x1fcb6d,_0x119acd,_0x5a7821,_0x8b889c);break;case _0x4c69('0xe'):freshdesk[_0x4e24c3](_0x1c8ba8,_0x590f82,_0x5f9e0,_0x1fcb6d,_0x119acd,_0x5a7821,_0x8b889c);break;case _0x4c69('0xf'):zoho[_0x4e24c3](_0x1c8ba8,_0x590f82,_0x5f9e0,_0x1fcb6d,_0x119acd,_0x5a7821,_0x8b889c);break;case _0x4c69('0x10'):desk[_0x4e24c3](_0x1c8ba8,_0x590f82,_0x5f9e0,_0x1fcb6d,_0x119acd,_0x5a7821,_0x8b889c);break;case _0x4c69('0x11'):vtiger[_0x4e24c3](_0x1c8ba8,_0x590f82,_0x5f9e0,_0x1fcb6d,_0x119acd,_0x5a7821,_0x8b889c);break;case _0x4c69('0x12'):freshsales['cs'](_0x1c8ba8,_0x590f82,_0x5f9e0,_0x1fcb6d,_0x119acd,_0x5a7821,_0x8b889c,_0x4e24c3);break;case _0x4c69('0x13'):servicenow['cs'](_0x1c8ba8,_0x590f82,_0x5f9e0,_0x1fcb6d,_0x119acd,_0x5a7821,_0x8b889c,_0x4e24c3);break;case _0x4c69('0x1e'):dynamics365['cs'](_0x1c8ba8,_0x590f82,_0x5f9e0,_0x1fcb6d,_0x119acd,_0x5a7821,_0x8b889c,_0x4e24c3);break;default:console[_0x4c69('0x1c')]('unknown\x20integration');}}else{_0x43993d=require(_0x4c69('0x1f'))(_0x1c8ba8['data1'][_0x4c69('0x16')]());_0x43993d['error']('[EXEC]',util[_0x4c69('0x20')](_0x4c69('0x21'),_0x1c8ba8[_0x4c69('0x15')][_0x4c69('0x16')](),_0x1c8ba8['data3']));}}else{_0x43993d=require(_0x4c69('0x1f'))(_0x1c8ba8[_0x4c69('0x15')][_0x4c69('0x16')]());_0x43993d[_0x4c69('0x22')](_0x4c69('0x23'),util[_0x4c69('0x20')](_0x4c69('0x24'),_0x1c8ba8['data1']['toLowerCase'](),_0x1c8ba8[_0x4c69('0x17')]));}}else{}}catch(_0x291c7e){console['error'](_0x291c7e);}}}};
\ No newline at end of file
+var _0x5fb6=['./freshsales','zendesk','zoho','desk','vtiger','dynamics365','freshsales','servicenow','exec','includes','data1','toLowerCase','data2','queue','routeId','log','salesforce','sugarcrm','freshdesk','../../../../config/logger','format','data3','[EXEC]','error','lodash','util','./zendesk','./salesforce','./freshdesk','./zoho','./desk','./vtiger','./servicenow','./dynamics365'];(function(_0x582892,_0x18f30a){var _0xb75695=function(_0x1936ff){while(--_0x1936ff){_0x582892['push'](_0x582892['shift']());}};_0xb75695(++_0x18f30a);}(_0x5fb6,0x18e));var _0x65fb=function(_0x4ee41d,_0x4a9bd5){_0x4ee41d=_0x4ee41d-0x0;var _0x1a3d99=_0x5fb6[_0x4ee41d];return _0x1a3d99;};'use strict';var _=require(_0x65fb('0x0'));var util=require(_0x65fb('0x1'));var zendesk=require(_0x65fb('0x2'));var salesforce=require(_0x65fb('0x3'));var sugarcrm=require('./sugarcrm');var freshdesk=require(_0x65fb('0x4'));var zoho=require(_0x65fb('0x5'));var desk=require(_0x65fb('0x6'));var vtiger=require(_0x65fb('0x7'));var servicenow=require(_0x65fb('0x8'));var dynamics365=require(_0x65fb('0x9'));var freshsales=require(_0x65fb('0xa'));var integrations=[_0x65fb('0xb'),'salesforce','sugarcrm','freshdesk',_0x65fb('0xc'),_0x65fb('0xd'),_0x65fb('0xe'),_0x65fb('0xf'),_0x65fb('0x10'),_0x65fb('0x11')];exports[_0x65fb('0x12')]=function(_0x9527b0,_0x5925f1,_0x3fa3eb,_0x8ee9de,_0x565148,_0x1824b1){if(_0x3fa3eb){if(_[_0x65fb('0x13')](integrations,_0x9527b0[_0x65fb('0x14')][_0x65fb('0x15')]())){try{var _0x415047=null;var _0x2c99b6='';var _0xc81f99=_0x3fa3eb[_0x9527b0[_0x65fb('0x14')][_0x65fb('0x15')]()];if(_0xc81f99){var _0x5bfa3a=_0xc81f99[_0x9527b0[_0x65fb('0x16')]];if(_0x5bfa3a){var _0x431f99=_['find'](_0x5bfa3a['Configurations'],{'id':parseInt(_0x9527b0['data3'],0xa)});if(_0x431f99){if(_0x8ee9de){if(_0x565148&&_0x5925f1[_0x65fb('0x17')]){_0x2c99b6='queue';}else if(_0x5925f1[_0x65fb('0x18')]){_0x2c99b6='outbound';}else{console[_0x65fb('0x19')]('EVENT\x20UNKNOWN',_0x5925f1);}}else{_0x2c99b6='unmanaged';}switch(_0x9527b0[_0x65fb('0x14')][_0x65fb('0x15')]()){case _0x65fb('0xb'):zendesk[_0x2c99b6](_0x9527b0,_0x5925f1,_0x431f99,_0x8ee9de,_0x565148,_0x5bfa3a,_0x1824b1);break;case _0x65fb('0x1a'):salesforce[_0x2c99b6](_0x9527b0,_0x5925f1,_0x431f99,_0x8ee9de,_0x565148,_0x5bfa3a,_0x1824b1);break;case _0x65fb('0x1b'):sugarcrm[_0x2c99b6](_0x9527b0,_0x5925f1,_0x431f99,_0x8ee9de,_0x565148,_0x5bfa3a,_0x1824b1);break;case _0x65fb('0x1c'):freshdesk[_0x2c99b6](_0x9527b0,_0x5925f1,_0x431f99,_0x8ee9de,_0x565148,_0x5bfa3a,_0x1824b1);break;case _0x65fb('0xc'):zoho[_0x2c99b6](_0x9527b0,_0x5925f1,_0x431f99,_0x8ee9de,_0x565148,_0x5bfa3a,_0x1824b1);break;case _0x65fb('0xd'):desk[_0x2c99b6](_0x9527b0,_0x5925f1,_0x431f99,_0x8ee9de,_0x565148,_0x5bfa3a,_0x1824b1);break;case _0x65fb('0xe'):vtiger[_0x2c99b6](_0x9527b0,_0x5925f1,_0x431f99,_0x8ee9de,_0x565148,_0x5bfa3a,_0x1824b1);break;case _0x65fb('0x10'):freshsales['cs'](_0x9527b0,_0x5925f1,_0x431f99,_0x8ee9de,_0x565148,_0x5bfa3a,_0x1824b1,_0x2c99b6);break;case'servicenow':servicenow['cs'](_0x9527b0,_0x5925f1,_0x431f99,_0x8ee9de,_0x565148,_0x5bfa3a,_0x1824b1,_0x2c99b6);break;case _0x65fb('0xf'):dynamics365['cs'](_0x9527b0,_0x5925f1,_0x431f99,_0x8ee9de,_0x565148,_0x5bfa3a,_0x1824b1,_0x2c99b6);break;default:console['log']('unknown\x20integration');}}else{_0x415047=require(_0x65fb('0x1d'))(_0x9527b0[_0x65fb('0x14')][_0x65fb('0x15')]());_0x415047['error']('[EXEC]',util[_0x65fb('0x1e')]('%s\x20configuration\x20#%s\x20not\x20found',_0x9527b0[_0x65fb('0x14')]['toLowerCase'](),_0x9527b0[_0x65fb('0x1f')]));}}else{_0x415047=require('../../../../config/logger')(_0x9527b0[_0x65fb('0x14')][_0x65fb('0x15')]());_0x415047['error'](_0x65fb('0x20'),util[_0x65fb('0x1e')]('%s\x20account\x20#%s\x20not\x20found',_0x9527b0[_0x65fb('0x14')][_0x65fb('0x15')](),_0x9527b0[_0x65fb('0x16')]));}}else{}}catch(_0x204c31){console[_0x65fb('0x21')](_0x204c31);}}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x44b4=['content','toString','variable','variableName','customVariable','Variable','name','password','concat','Connection','remoteUri','https://login.salesforce.com','clientId','clientSecret','login','username','Connection\x20established.','serverUrl','stripTrailingSlash','monitor_format','[QUEUE]','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','recordingURL','email','queue','[QUEUE]\x20Ticket\x20%s\x20created','[QUEUE]\x20Displaying\x20ticket\x20%s\x20to\x20agent\x20%s.\x20Integration\x20account\x20type\x20%s.','integrationTab','newTab','user:%s','trigger:browser:url','%s/%s/e','error','[QUEUE]\x20Salesforce\x20account\x20type\x20not\x20recognized.','outbound','recordingFormat','none','[OUTBOUND]','Recording\x20is\x20enabled!','destcalleridname','destcalleridnum','Salesforce\x20account\x20type\x20not\x20recognized','unmanaged','lastevent','toUpperCase','calleridname','calleridnum',']\x20Integration\x20account\x20type\x20%s.','catch','lodash','request-promise','moment','bluebird','jsforce','ioredis','./util','../../../../config/logger','salesforce','redis','defaults','localhost','socket.io-emitter','emit','assign','getString','Subjects','Descriptions','Task','ActivityDate','IsReminderSet','endUserType','lead','WhoId','account','ticketType','Case','AccountId','leadId','create','isNil','validateEmail','sobject','User','find','execute','then','length','Email','info','Agent\x20%s\x20found.','resolve','Agent\x20%s\x20not\x20found.\x20Switch\x20to\x20the\x20admin\x20account.','identity','user_id','display_name','Searching\x20enduser\x20with\x20phone\x20%s.\x20Serching\x20method\x20used\x20%s.','moduleSearch','contact_lead','additionalSearchContact','merge','$or','cloneDeep','additionalSearchLead','Lead','account_contact_lead','additionalSearchAccount','Account','Contact','contact','first','Name','Phone','attributes','type','toLowerCase','Enduser\x20(%s)\x20with\x20phone\x20%s\x20found','Enduser\x20with\x20phone\x20%s\x20not\x20found','moduleCreate','<unknown>','Caller\x20-\x20%s','Enduser\x20with\x20phone\x20%s.\x20Creating\x20method\x20used\x20%s.','LastName','format','Company','No\x20Company','upperFirst','forEach','string','picklist','idField'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x44b4,0x138));var _0x444b=function(_0x3be650,_0x3e75f6){_0x3be650=_0x3be650-0x0;var _0x440588=_0x44b4[_0x3be650];return _0x440588;};'use strict';var _=require(_0x444b('0x0'));var rp=require(_0x444b('0x1'));var moment=require(_0x444b('0x2'));var BPromise=require(_0x444b('0x3'));var md5=require('md5');var jsforce=require(_0x444b('0x4'));var util=require('util');var Redis=require(_0x444b('0x5'));var intUtil=require(_0x444b('0x6'));var config=require('../../../../config/environment');var logger=require(_0x444b('0x7'))(_0x444b('0x8'));config[_0x444b('0x9')]=_[_0x444b('0xa')](config[_0x444b('0x9')],{'host':_0x444b('0xb'),'port':0x18eb});var io=require(_0x444b('0xc'))(new Redis(config[_0x444b('0x9')]));function emit(_0x526005,_0xe70b0c,_0xdea3e){io['to'](_0x526005)[_0x444b('0xd')](_0xe70b0c,_0xdea3e);}function getTicket(_0x1a041b,_0x2cd233,_0x1216ce,_0x2f8ffe,_0x47e1a8,_0x5ca738,_0x4e0dc0,_0x13c8e1){var _0x4abc0f=Object[_0x444b('0xe')]({},{'OwnerId':_0x2cd233['id'],'Subject':intUtil[_0x444b('0xf')](_0x2f8ffe[_0x444b('0x10')],_0x47e1a8,'\x20'),'Description':intUtil[_0x444b('0xf')](_0x2f8ffe[_0x444b('0x11')],_0x47e1a8,'\x0a')},getCustomFields(_0x5ca738,_0x47e1a8));if(_0x1216ce){if(_0x2f8ffe['ticketType']===_0x444b('0x12')){_0x4abc0f[_0x444b('0x13')]=moment['utc']();_0x4abc0f[_0x444b('0x14')]=![];_0x4abc0f['IsRecurrence']=![];if(_0x1216ce[_0x444b('0x15')]==='contact'||_0x1216ce[_0x444b('0x15')]===_0x444b('0x16')){_0x4abc0f[_0x444b('0x17')]=_0x1216ce['id'];}else if(_0x1216ce[_0x444b('0x15')]===_0x444b('0x18')){_0x4abc0f['WhatId']=_0x1216ce['id'];}}else if(_0x2f8ffe[_0x444b('0x19')]===_0x444b('0x1a')){if(_0x1216ce[_0x444b('0x15')]==='contact'){_0x4abc0f['ContactId']=_0x1216ce['id'];}else if(_0x1216ce[_0x444b('0x15')]===_0x444b('0x18')){_0x4abc0f[_0x444b('0x1b')]=_0x1216ce['id'];}else if(_0x1216ce[_0x444b('0x15')]==='lead'&&_0x2f8ffe['leadId']){_0x4abc0f[_0x2f8ffe[_0x444b('0x1c')]]=_0x1216ce['id'];}else{logger['info']('Association\x20between\x20Case\x20and\x20Lead\x20skipped');}}}return _0x4e0dc0['sobject'](_0x2f8ffe[_0x444b('0x19')])[_0x444b('0x1d')](_0x4abc0f);}function getUser(_0x45c7d3,_0x3a9b97,_0x315591){if(!_[_0x444b('0x1e')](_0x3a9b97)&&intUtil[_0x444b('0x1f')](_0x3a9b97)){var _0x129c1a={'Email':_0x3a9b97};var _0x15f52a={'Id':!![],'Username':!![],'Name':!![],'Email':!![]};return _0x315591[_0x444b('0x20')](_0x444b('0x21'))[_0x444b('0x22')](_0x129c1a,_0x15f52a)[_0x444b('0x23')]()[_0x444b('0x24')](function(_0x3934e4){if(_0x3934e4[_0x444b('0x25')]){var _0x53d81b=_[_0x444b('0x22')](_0x3934e4,function(_0x90ed6a){return _0x90ed6a[_0x444b('0x26')]===_0x3a9b97;});if(_0x53d81b){logger[_0x444b('0x27')](_0x444b('0x28'),_0x3a9b97);return BPromise[_0x444b('0x29')]({'id':_0x53d81b['Id'],'name':_0x53d81b['Name']});}}else{logger['info'](_0x444b('0x2a'),_0x3a9b97);return _0x315591[_0x444b('0x2b')]()['then'](function(_0x592b90){return BPromise['resolve']({'id':_0x592b90[_0x444b('0x2c')],'name':_0x592b90[_0x444b('0x2d')]});});}});}else{logger['info']('Agent\x20%s\x20not\x20found.\x20Switch\x20to\x20the\x20admin\x20account.',_0x3a9b97);return _0x315591[_0x444b('0x2b')]()[_0x444b('0x24')](function(_0xdaf149){return BPromise['resolve']({'id':_0xdaf149[_0x444b('0x2c')],'name':_0xdaf149[_0x444b('0x2d')]});});}}function getEndUser(_0x4fec34,_0x81b3e9,_0x5ba030,_0x7b7a97,_0x4b79c7){var _0x10a502={'$or':{'Phone':_0x7b7a97}};var _0x5d9f97={'Id':!![],'Name':!![],'Phone':!![]};return BPromise[_0x444b('0x29')]()[_0x444b('0x24')](function(){logger['info'](_0x444b('0x2e'),_0x7b7a97,_0x81b3e9[_0x444b('0x2f')]);switch(_0x81b3e9[_0x444b('0x2f')]){case _0x444b('0x30'):var _0x53ea72=_['cloneDeep'](_0x10a502);if(_0x81b3e9[_0x444b('0x31')]){var _0xa3df0b={};_0xa3df0b[_0x81b3e9[_0x444b('0x31')]]=_0x7b7a97;_[_0x444b('0x32')](_0x53ea72[_0x444b('0x33')],_0xa3df0b);}return _0x4b79c7[_0x444b('0x20')]('Contact')['find'](_0x53ea72,_0x5d9f97)['execute']()[_0x444b('0x24')](function(_0x4b6391){if(_0x4b6391&&_0x4b6391[_0x444b('0x25')]){return _0x4b6391;}else{var _0x451852=_[_0x444b('0x34')](_0x10a502);if(_0x81b3e9[_0x444b('0x35')]){var _0x38fe9d={};_0x38fe9d[_0x81b3e9[_0x444b('0x35')]]=_0x7b7a97;_[_0x444b('0x32')](_0x451852[_0x444b('0x33')],_0x38fe9d);}return _0x4b79c7[_0x444b('0x20')](_0x444b('0x36'))[_0x444b('0x22')](_0x451852,_0x5d9f97);}});case _0x444b('0x37'):var _0x5ef5e6=_[_0x444b('0x34')](_0x10a502);if(_0x81b3e9['additionalSearchAccount']){var _0xa3df0b={};_0xa3df0b[_0x81b3e9[_0x444b('0x38')]]=_0x7b7a97;_[_0x444b('0x32')](_0x5ef5e6[_0x444b('0x33')],_0xa3df0b);}return _0x4b79c7[_0x444b('0x20')](_0x444b('0x39'))['find'](_0x5ef5e6,_0x5d9f97)[_0x444b('0x23')]()['then'](function(_0x5ba1dd){if(_0x5ba1dd&&_0x5ba1dd['length']){return _0x5ba1dd;}else{var _0x56ccb7=_['cloneDeep'](_0x10a502);if(_0x81b3e9[_0x444b('0x31')]){var _0x17a0cb={};_0x17a0cb[_0x81b3e9[_0x444b('0x31')]]=_0x7b7a97;_[_0x444b('0x32')](_0x56ccb7[_0x444b('0x33')],_0x17a0cb);}return _0x4b79c7[_0x444b('0x20')](_0x444b('0x3a'))[_0x444b('0x22')](_0x56ccb7,_0x5d9f97)[_0x444b('0x24')](function(_0x491192){if(_0x491192&&_0x491192['length']){return _0x491192;}else{var _0x4a0b5e=_[_0x444b('0x34')](_0x10a502);if(_0x81b3e9[_0x444b('0x35')]){var _0x4ed9e8={};_0x4ed9e8[_0x81b3e9[_0x444b('0x35')]]=_0x7b7a97;_[_0x444b('0x32')](_0x4a0b5e['$or'],_0x4ed9e8);}return _0x4b79c7['sobject'](_0x444b('0x36'))['find'](_0x4a0b5e,_0x5d9f97);}});}});case _0x444b('0x3b'):var _0x53ea72=_['cloneDeep'](_0x10a502);if(_0x81b3e9[_0x444b('0x31')]){var _0xa3df0b={};_0xa3df0b[_0x81b3e9[_0x444b('0x31')]]=_0x7b7a97;_[_0x444b('0x32')](_0x53ea72['$or'],_0xa3df0b);}return _0x4b79c7[_0x444b('0x20')](_0x444b('0x3a'))[_0x444b('0x22')](_0x53ea72,_0x5d9f97)['execute']();case _0x444b('0x16'):var _0x2ef7a1=_[_0x444b('0x34')](_0x10a502);if(_0x81b3e9[_0x444b('0x35')]){var _0xa3df0b={};_0xa3df0b[_0x81b3e9[_0x444b('0x35')]]=_0x7b7a97;_['merge'](_0x2ef7a1[_0x444b('0x33')],_0xa3df0b);}return _0x4b79c7[_0x444b('0x20')]('Lead')[_0x444b('0x22')](_0x2ef7a1,_0x5d9f97);case _0x444b('0x18'):var _0x5ef5e6=_[_0x444b('0x34')](_0x10a502);if(_0x81b3e9[_0x444b('0x38')]){var _0xa3df0b={};_0xa3df0b[_0x81b3e9['additionalSearchAccount']]=_0x7b7a97;_[_0x444b('0x32')](_0x5ef5e6['$or'],_0xa3df0b);}return _0x4b79c7[_0x444b('0x20')](_0x444b('0x39'))[_0x444b('0x22')](_0x5ef5e6,_0x5d9f97);default:return null;}})['then'](function(_0x585783){if(_0x585783&&_0x585783[_0x444b('0x25')]){var _0x451be3=_[_0x444b('0x3c')](_0x585783);if(_0x451be3){return BPromise[_0x444b('0x29')]({'id':_0x451be3['Id'],'name':_0x451be3[_0x444b('0x3d')],'phone':_0x451be3[_0x444b('0x3e')],'endUserType':_0x451be3[_0x444b('0x3f')][_0x444b('0x40')][_0x444b('0x41')]()});}}})[_0x444b('0x24')](function(_0x4445c5){if(_0x4445c5){logger[_0x444b('0x27')](_0x444b('0x42'),_0x4445c5['endUserType'],_0x7b7a97);return BPromise[_0x444b('0x29')](_0x4445c5);}else{logger[_0x444b('0x27')](_0x444b('0x43'),_0x7b7a97);var _0x8ce47b={'Phone':_0x7b7a97};if(_0x81b3e9[_0x444b('0x44')]){if(_0x81b3e9[_0x444b('0x44')]===_0x444b('0x3b')){logger[_0x444b('0x27')]('Enduser\x20with\x20phone\x20%s.\x20Creating\x20method\x20used\x20%s.',_0x7b7a97,_0x81b3e9[_0x444b('0x44')]);_0x8ce47b['LastName']=_0x5ba030!==_0x444b('0x45')?_0x5ba030:util['format'](_0x444b('0x46'),_0x7b7a97);}else if(_0x81b3e9[_0x444b('0x44')]===_0x444b('0x16')){logger[_0x444b('0x27')](_0x444b('0x47'),_0x7b7a97,_0x81b3e9['moduleCreate']);_0x8ce47b[_0x444b('0x48')]=_0x5ba030!==_0x444b('0x45')?_0x5ba030:util[_0x444b('0x49')](_0x444b('0x46'),_0x7b7a97);_0x8ce47b[_0x444b('0x4a')]=_0x444b('0x4b');}else if(_0x81b3e9[_0x444b('0x44')]===_0x444b('0x18')){logger[_0x444b('0x27')](_0x444b('0x47'),_0x7b7a97,_0x81b3e9['moduleCreate']);_0x8ce47b[_0x444b('0x3d')]=_0x5ba030!=='<unknown>'?_0x5ba030:util[_0x444b('0x49')]('Caller\x20-\x20%s',_0x7b7a97);}else{return null;}}return _0x4b79c7[_0x444b('0x20')](_[_0x444b('0x4c')](_0x81b3e9[_0x444b('0x44')]))[_0x444b('0x1d')](_0x8ce47b)[_0x444b('0x24')](function(_0x2ef589){return BPromise[_0x444b('0x29')]({'id':_0x2ef589['id'],'endUserType':_0x81b3e9['moduleCreate']});});}});}function getCustomFields(_0x95e39e,_0x17e461){var _0x478589={};if(_0x95e39e[_0x444b('0x25')]>0x0){_[_0x444b('0x4d')](_0x95e39e,function(_0x3f7f16){if(_['includes']([_0x444b('0x4e'),_0x444b('0x4f')],_0x3f7f16[_0x444b('0x40')])&&_0x3f7f16[_0x444b('0x50')]){_0x478589[_0x3f7f16['idField']]=_0x3f7f16[_0x444b('0x51')][_0x444b('0x52')]();}else if(_0x3f7f16[_0x444b('0x40')]===_0x444b('0x53')&&_0x3f7f16[_0x444b('0x54')]&&_0x3f7f16[_0x444b('0x50')]){_0x17e461[_0x3f7f16[_0x444b('0x54')]]&&(_0x478589[_0x3f7f16[_0x444b('0x50')]]=_0x17e461[_0x3f7f16[_0x444b('0x54')]][_0x444b('0x52')]());}else if(_0x3f7f16[_0x444b('0x40')]===_0x444b('0x55')&&_0x3f7f16[_0x444b('0x56')]&&_0x3f7f16[_0x444b('0x56')][_0x444b('0x57')]&&_0x3f7f16[_0x444b('0x50')]){_0x17e461[_0x3f7f16[_0x444b('0x56')][_0x444b('0x57')][_0x444b('0x41')]()]&&(_0x478589[_0x3f7f16[_0x444b('0x50')]]=_0x17e461[_0x3f7f16['Variable'][_0x444b('0x57')][_0x444b('0x41')]()][_0x444b('0x52')]());}});}return _0x478589;}function getConnection(_0x368b3a){var _0x4c684b=_0x368b3a[_0x444b('0x58')][_0x444b('0x59')](_0x368b3a['securityToken']);var _0x1ce330=new jsforce[(_0x444b('0x5a'))]({'oauth2':{'loginUrl':_0x368b3a[_0x444b('0x5b')]||_0x444b('0x5c'),'clientId':_0x368b3a[_0x444b('0x5d')],'clientSecret':_0x368b3a[_0x444b('0x5e')]}});return _0x1ce330[_0x444b('0x5f')](_0x368b3a[_0x444b('0x60')],_0x4c684b)[_0x444b('0x24')](function(){logger[_0x444b('0x27')](_0x444b('0x61'));return _0x1ce330;});}exports['queue']=function(_0x5e22f4,_0x183f44,_0x1c4b73,_0x581a2d,_0x4377e5,_0x2ab7cc){var _0xde488f,_0xbd6a12,_0x1fdb5a,_0x517bef;_0x2ab7cc[_0x444b('0x62')]=intUtil[_0x444b('0x63')](_0x2ab7cc[_0x444b('0x62')]);_0x2ab7cc[_0x444b('0x5b')]=intUtil['stripTrailingSlash'](_0x2ab7cc[_0x444b('0x5b')]);if(_0x4377e5&&_0x4377e5[_0x444b('0x64')]){logger[_0x444b('0x27')](_0x444b('0x65'),'Recording\x20is\x20enabled!');_0x183f44['recordingURL']=util[_0x444b('0x49')](_0x444b('0x66'),_0x2ab7cc[_0x444b('0x62')],_0x183f44[_0x444b('0x67')],md5(_0x183f44[_0x444b('0x67')]));}else{_0x183f44[_0x444b('0x68')]='';}return getConnection(_0x2ab7cc)[_0x444b('0x24')](function(_0x40e7fb){_0x517bef=_0x40e7fb;return getUser(_0x2ab7cc,_0x581a2d[_0x444b('0x69')],_0x517bef);})[_0x444b('0x24')](function(_0x437c24){_0xde488f=_0x437c24;return getEndUser(_0x2ab7cc,_0x1c4b73,_0x183f44['calleridname'],_0x183f44['calleridnum'],_0x517bef);})['then'](function(_0x11bd2a){_0xbd6a12=_0x11bd2a;return getTicket(_0x2ab7cc,_0xde488f,_0xbd6a12,_0x1c4b73,_0x183f44,_0x1c4b73['Fields'],_0x517bef,_0x444b('0x6a'));})[_0x444b('0x24')](function(_0x293ca9){_0x1fdb5a=_0x293ca9;logger[_0x444b('0x27')](_0x444b('0x6b'),_0x1fdb5a['id']);logger[_0x444b('0x27')](_0x444b('0x6c'),_0x1fdb5a['id'],_0x581a2d['name'],_0x2ab7cc['type']);switch(_0x2ab7cc['type']){case _0x444b('0x6d'):emit(util[_0x444b('0x49')]('user:%s',_0x581a2d[_0x444b('0x57')]),'trigger:salesforce:display',{'recordId':_0x1fdb5a['id']});break;case _0x444b('0x6e'):emit(util[_0x444b('0x49')](_0x444b('0x6f'),_0x581a2d[_0x444b('0x57')]),_0x444b('0x70'),{'uri':util[_0x444b('0x49')](_0x444b('0x71'),_0x517bef['instanceUrl'],_0x1fdb5a['id'])});break;default:logger[_0x444b('0x72')](_0x444b('0x73'));}})['catch'](function(_0x2cce78){logger[_0x444b('0x72')](_0x444b('0x65'),_0x2cce78);});};exports[_0x444b('0x74')]=function(_0x12a5c8,_0x344cdf,_0x5402b3,_0x2fce4d,_0x3009fd,_0x37ee7b,_0x21f4fc){var _0x1a5fa8,_0x1ceeca,_0x33600a,_0xcd6d78;_0x37ee7b[_0x444b('0x62')]=intUtil['stripTrailingSlash'](_0x37ee7b[_0x444b('0x62')]);_0x37ee7b[_0x444b('0x5b')]=intUtil[_0x444b('0x63')](_0x37ee7b[_0x444b('0x5b')]);if(_0x21f4fc&&_0x21f4fc[_0x444b('0x75')]&&_0x21f4fc[_0x444b('0x75')]!==_0x444b('0x76')){logger[_0x444b('0x27')](_0x444b('0x77'),_0x444b('0x78'));_0x344cdf[_0x444b('0x68')]=util[_0x444b('0x49')](_0x444b('0x66'),_0x37ee7b['serverUrl'],_0x344cdf[_0x444b('0x67')],md5(_0x344cdf[_0x444b('0x67')]));}return getConnection(_0x37ee7b)[_0x444b('0x24')](function(_0x50e0fc){_0xcd6d78=_0x50e0fc;return getUser(_0x37ee7b,_0x2fce4d[_0x444b('0x69')],_0xcd6d78);})[_0x444b('0x24')](function(_0x248e85){_0x1a5fa8=_0x248e85;return getEndUser(_0x37ee7b,_0x5402b3,_0x344cdf[_0x444b('0x79')],_0x344cdf[_0x444b('0x7a')],_0xcd6d78);})[_0x444b('0x24')](function(_0x5183bb){_0x1ceeca=_0x5183bb;return getTicket(_0x37ee7b,_0x1a5fa8,_0x1ceeca,_0x5402b3,_0x344cdf,_0x5402b3['Fields'],_0xcd6d78,_0x444b('0x74'));})['then'](function(_0x95e75){_0x33600a=_0x95e75;logger['info']('[OUTBOUND]\x20Ticket\x20%s\x20created.',_0x33600a['id']);logger[_0x444b('0x27')]('[OUTBOUND]\x20Displaying\x20ticket\x20%s\x20to\x20agent\x20%s.\x20Integration\x20account\x20type\x20%s.',_0x33600a['id'],_0x2fce4d['name'],_0x37ee7b[_0x444b('0x40')]);switch(_0x37ee7b[_0x444b('0x40')]){case _0x444b('0x6d'):emit(util['format']('user:%s',_0x2fce4d[_0x444b('0x57')]),'trigger:salesforce:display',{'recordId':_0x33600a['id']});break;case _0x444b('0x6e'):emit(util[_0x444b('0x49')]('user:%s',_0x2fce4d[_0x444b('0x57')]),_0x444b('0x70'),{'uri':util['format'](_0x444b('0x71'),_0xcd6d78['instanceUrl'],_0x33600a['id'])});break;default:logger['error'](_0x444b('0x77'),_0x444b('0x7b'));}})['catch'](function(_0x137512){logger[_0x444b('0x72')]('[OUTBOUND]',_0x137512);});};exports[_0x444b('0x7c')]=function(_0x1d2348,_0xf324c8,_0xd5fc40,_0x2dd5f1,_0x3a90aa,_0x19d83b){var _0x4975af,_0xd3e01f,_0x59c14a,_0x28687b;_0x19d83b['serverUrl']=intUtil[_0x444b('0x63')](_0x19d83b[_0x444b('0x62')]);_0x19d83b[_0x444b('0x5b')]=intUtil[_0x444b('0x63')](_0x19d83b[_0x444b('0x5b')]);if(_0x3a90aa&&_0x3a90aa[_0x444b('0x64')]){logger[_0x444b('0x27')]('['+_0xf324c8[_0x444b('0x7d')][_0x444b('0x7e')]()+']',_0x444b('0x78'));_0xf324c8[_0x444b('0x68')]=util['format'](_0x444b('0x66'),_0x19d83b['serverUrl'],_0xf324c8['uniqueid'],md5(_0xf324c8[_0x444b('0x67')]));}else{_0xf324c8['recordingURL']='';}return getConnection(_0x19d83b)[_0x444b('0x24')](function(_0x2be3f9){_0x28687b=_0x2be3f9;if(!_['isNil'](_0x2dd5f1)){return getUser(_0x19d83b,_0x2dd5f1[_0x444b('0x57')],_0x28687b);}else{return getUser(_0x19d83b,null,_0x28687b);}})[_0x444b('0x24')](function(_0x589cea){_0x4975af=_0x589cea;return getEndUser(_0x19d83b,_0xd5fc40,_0xf324c8[_0x444b('0x7f')],_0xf324c8[_0x444b('0x80')],_0x28687b);})[_0x444b('0x24')](function(_0x5c98df){_0xd3e01f=_0x5c98df;return getTicket(_0x19d83b,_0x4975af,_0xd3e01f,_0xd5fc40,_0xf324c8,_0xd5fc40['Fields'],_0x28687b);})[_0x444b('0x24')](function(_0x35e077){_0x59c14a=_0x35e077;logger[_0x444b('0x27')]('['+_0xf324c8[_0x444b('0x7d')][_0x444b('0x7e')]()+']\x20Ticket\x20%s\x20created.',_0x59c14a['id']);logger[_0x444b('0x27')]('['+_0xf324c8['lastevent'][_0x444b('0x7e')]()+_0x444b('0x81'),_0x19d83b['type']);})[_0x444b('0x82')](function(_0x93721a){logger[_0x444b('0x72')]('['+_0xf324c8[_0x444b('0x7d')][_0x444b('0x7e')]()+']',_0x93721a);});};
\ No newline at end of file
+var _0x0c79=['jsforce','ioredis','./util','../../../../config/environment','../../../../config/logger','salesforce','redis','defaults','socket.io-emitter','emit','assign','Subjects','getString','ticketType','Task','ActivityDate','utc','IsRecurrence','endUserType','contact','lead','account','WhatId','Case','ContactId','AccountId','leadId','info','sobject','create','validateEmail','User','find','execute','then','length','Email','Agent\x20%s\x20found.','resolve','Name','Agent\x20%s\x20not\x20found.\x20Switch\x20to\x20the\x20admin\x20account.','identity','user_id','display_name','moduleSearch','cloneDeep','additionalSearchContact','merge','$or','additionalSearchLead','Lead','account_contact_lead','Account','additionalSearchAccount','first','Phone','attributes','toLowerCase','Enduser\x20(%s)\x20with\x20phone\x20%s\x20found','Enduser\x20with\x20phone\x20%s\x20not\x20found','moduleCreate','Enduser\x20with\x20phone\x20%s.\x20Creating\x20method\x20used\x20%s.','LastName','<unknown>','format','Caller\x20-\x20%s','Company','upperFirst','forEach','includes','string','type','idField','content','toString','variable','variableName','Variable','name','password','securityToken','remoteUri','https://login.salesforce.com','clientId','clientSecret','login','username','Connection\x20established.','serverUrl','stripTrailingSlash','[QUEUE]','Recording\x20is\x20enabled!','recordingURL','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','email','calleridname','calleridnum','Fields','[QUEUE]\x20Ticket\x20%s\x20created','[QUEUE]\x20Displaying\x20ticket\x20%s\x20to\x20agent\x20%s.\x20Integration\x20account\x20type\x20%s.','integrationTab','trigger:salesforce:display','user:%s','trigger:browser:url','%s/%s/e','instanceUrl','error','[QUEUE]\x20Salesforce\x20account\x20type\x20not\x20recognized.','outbound','recordingFormat','none','[OUTBOUND]','destcalleridname','destcalleridnum','[OUTBOUND]\x20Ticket\x20%s\x20created.','[OUTBOUND]\x20Displaying\x20ticket\x20%s\x20to\x20agent\x20%s.\x20Integration\x20account\x20type\x20%s.','Salesforce\x20account\x20type\x20not\x20recognized','catch','unmanaged','monitor_format','lastevent','toUpperCase','isNil',']\x20Ticket\x20%s\x20created.',']\x20Integration\x20account\x20type\x20%s.','lodash','request-promise','bluebird','md5'];(function(_0x44a5dc,_0x4005f1){var _0x369c18=function(_0x5a2994){while(--_0x5a2994){_0x44a5dc['push'](_0x44a5dc['shift']());}};_0x369c18(++_0x4005f1);}(_0x0c79,0x100));var _0x90c7=function(_0x432fef,_0x368cf0){_0x432fef=_0x432fef-0x0;var _0x5f587d=_0x0c79[_0x432fef];return _0x5f587d;};'use strict';var _=require(_0x90c7('0x0'));var rp=require(_0x90c7('0x1'));var moment=require('moment');var BPromise=require(_0x90c7('0x2'));var md5=require(_0x90c7('0x3'));var jsforce=require(_0x90c7('0x4'));var util=require('util');var Redis=require(_0x90c7('0x5'));var intUtil=require(_0x90c7('0x6'));var config=require(_0x90c7('0x7'));var logger=require(_0x90c7('0x8'))(_0x90c7('0x9'));config[_0x90c7('0xa')]=_[_0x90c7('0xb')](config['redis'],{'host':'localhost','port':0x18eb});var io=require(_0x90c7('0xc'))(new Redis(config[_0x90c7('0xa')]));function emit(_0xe9d5ff,_0x3568e9,_0x2a2b9e){io['to'](_0xe9d5ff)[_0x90c7('0xd')](_0x3568e9,_0x2a2b9e);}function getTicket(_0x3f864f,_0x21b4ba,_0x286595,_0x542b40,_0x538d1f,_0x2dd6dc,_0x402159,_0x257bbe){var _0x3ccfba=Object[_0x90c7('0xe')]({},{'OwnerId':_0x21b4ba['id'],'Subject':intUtil['getString'](_0x542b40[_0x90c7('0xf')],_0x538d1f,'\x20'),'Description':intUtil[_0x90c7('0x10')](_0x542b40['Descriptions'],_0x538d1f,'\x0a')},getCustomFields(_0x2dd6dc,_0x538d1f));if(_0x286595){if(_0x542b40[_0x90c7('0x11')]===_0x90c7('0x12')){_0x3ccfba[_0x90c7('0x13')]=moment[_0x90c7('0x14')]();_0x3ccfba['IsReminderSet']=![];_0x3ccfba[_0x90c7('0x15')]=![];if(_0x286595[_0x90c7('0x16')]===_0x90c7('0x17')||_0x286595[_0x90c7('0x16')]===_0x90c7('0x18')){_0x3ccfba['WhoId']=_0x286595['id'];}else if(_0x286595['endUserType']===_0x90c7('0x19')){_0x3ccfba[_0x90c7('0x1a')]=_0x286595['id'];}}else if(_0x542b40[_0x90c7('0x11')]===_0x90c7('0x1b')){if(_0x286595[_0x90c7('0x16')]===_0x90c7('0x17')){_0x3ccfba[_0x90c7('0x1c')]=_0x286595['id'];}else if(_0x286595[_0x90c7('0x16')]===_0x90c7('0x19')){_0x3ccfba[_0x90c7('0x1d')]=_0x286595['id'];}else if(_0x286595[_0x90c7('0x16')]===_0x90c7('0x18')&&_0x542b40['leadId']){_0x3ccfba[_0x542b40[_0x90c7('0x1e')]]=_0x286595['id'];}else{logger[_0x90c7('0x1f')]('Association\x20between\x20Case\x20and\x20Lead\x20skipped');}}}return _0x402159[_0x90c7('0x20')](_0x542b40[_0x90c7('0x11')])[_0x90c7('0x21')](_0x3ccfba);}function getUser(_0x47ff00,_0x52b0e5,_0x5912f5){if(!_['isNil'](_0x52b0e5)&&intUtil[_0x90c7('0x22')](_0x52b0e5)){var _0x268b4e={'Email':_0x52b0e5};var _0x46f384={'Id':!![],'Username':!![],'Name':!![],'Email':!![]};return _0x5912f5[_0x90c7('0x20')](_0x90c7('0x23'))[_0x90c7('0x24')](_0x268b4e,_0x46f384)[_0x90c7('0x25')]()[_0x90c7('0x26')](function(_0x20e94c){if(_0x20e94c[_0x90c7('0x27')]){var _0x54624d=_[_0x90c7('0x24')](_0x20e94c,function(_0x4bff9d){return _0x4bff9d[_0x90c7('0x28')]===_0x52b0e5;});if(_0x54624d){logger[_0x90c7('0x1f')](_0x90c7('0x29'),_0x52b0e5);return BPromise[_0x90c7('0x2a')]({'id':_0x54624d['Id'],'name':_0x54624d[_0x90c7('0x2b')]});}}else{logger[_0x90c7('0x1f')](_0x90c7('0x2c'),_0x52b0e5);return _0x5912f5[_0x90c7('0x2d')]()['then'](function(_0x4a04db){return BPromise['resolve']({'id':_0x4a04db[_0x90c7('0x2e')],'name':_0x4a04db[_0x90c7('0x2f')]});});}});}else{logger[_0x90c7('0x1f')](_0x90c7('0x2c'),_0x52b0e5);return _0x5912f5[_0x90c7('0x2d')]()[_0x90c7('0x26')](function(_0x640c7f){return BPromise[_0x90c7('0x2a')]({'id':_0x640c7f['user_id'],'name':_0x640c7f[_0x90c7('0x2f')]});});}}function getEndUser(_0x4a529b,_0x3ef018,_0x1bce2d,_0xaa9743,_0x209346){var _0x4d7d6b={'$or':{'Phone':_0xaa9743}};var _0x4400b3={'Id':!![],'Name':!![],'Phone':!![]};return BPromise[_0x90c7('0x2a')]()['then'](function(){logger[_0x90c7('0x1f')]('Searching\x20enduser\x20with\x20phone\x20%s.\x20Serching\x20method\x20used\x20%s.',_0xaa9743,_0x3ef018[_0x90c7('0x30')]);switch(_0x3ef018['moduleSearch']){case'contact_lead':var _0x13be1b=_[_0x90c7('0x31')](_0x4d7d6b);if(_0x3ef018[_0x90c7('0x32')]){var _0x4f9320={};_0x4f9320[_0x3ef018[_0x90c7('0x32')]]=_0xaa9743;_[_0x90c7('0x33')](_0x13be1b[_0x90c7('0x34')],_0x4f9320);}return _0x209346[_0x90c7('0x20')]('Contact')[_0x90c7('0x24')](_0x13be1b,_0x4400b3)[_0x90c7('0x25')]()[_0x90c7('0x26')](function(_0x277ee1){if(_0x277ee1&&_0x277ee1[_0x90c7('0x27')]){return _0x277ee1;}else{var _0x5a878e=_[_0x90c7('0x31')](_0x4d7d6b);if(_0x3ef018[_0x90c7('0x35')]){var _0x4ee928={};_0x4ee928[_0x3ef018[_0x90c7('0x35')]]=_0xaa9743;_['merge'](_0x5a878e[_0x90c7('0x34')],_0x4ee928);}return _0x209346[_0x90c7('0x20')](_0x90c7('0x36'))[_0x90c7('0x24')](_0x5a878e,_0x4400b3);}});case _0x90c7('0x37'):var _0x5e0844=_['cloneDeep'](_0x4d7d6b);if(_0x3ef018['additionalSearchAccount']){var _0x4f9320={};_0x4f9320[_0x3ef018['additionalSearchAccount']]=_0xaa9743;_[_0x90c7('0x33')](_0x5e0844[_0x90c7('0x34')],_0x4f9320);}return _0x209346[_0x90c7('0x20')](_0x90c7('0x38'))[_0x90c7('0x24')](_0x5e0844,_0x4400b3)[_0x90c7('0x25')]()[_0x90c7('0x26')](function(_0x52c19f){if(_0x52c19f&&_0x52c19f['length']){return _0x52c19f;}else{var _0x203ceb=_[_0x90c7('0x31')](_0x4d7d6b);if(_0x3ef018['additionalSearchContact']){var _0x29bd9e={};_0x29bd9e[_0x3ef018['additionalSearchContact']]=_0xaa9743;_[_0x90c7('0x33')](_0x203ceb[_0x90c7('0x34')],_0x29bd9e);}return _0x209346[_0x90c7('0x20')]('Contact')[_0x90c7('0x24')](_0x203ceb,_0x4400b3)[_0x90c7('0x26')](function(_0x2e92c0){if(_0x2e92c0&&_0x2e92c0[_0x90c7('0x27')]){return _0x2e92c0;}else{var _0x1a61f6=_['cloneDeep'](_0x4d7d6b);if(_0x3ef018[_0x90c7('0x35')]){var _0x51e3a4={};_0x51e3a4[_0x3ef018[_0x90c7('0x35')]]=_0xaa9743;_[_0x90c7('0x33')](_0x1a61f6['$or'],_0x51e3a4);}return _0x209346[_0x90c7('0x20')](_0x90c7('0x36'))[_0x90c7('0x24')](_0x1a61f6,_0x4400b3);}});}});case _0x90c7('0x17'):var _0x13be1b=_[_0x90c7('0x31')](_0x4d7d6b);if(_0x3ef018[_0x90c7('0x32')]){var _0x4f9320={};_0x4f9320[_0x3ef018[_0x90c7('0x32')]]=_0xaa9743;_['merge'](_0x13be1b['$or'],_0x4f9320);}return _0x209346[_0x90c7('0x20')]('Contact')[_0x90c7('0x24')](_0x13be1b,_0x4400b3)['execute']();case _0x90c7('0x18'):var _0x1579a9=_[_0x90c7('0x31')](_0x4d7d6b);if(_0x3ef018[_0x90c7('0x35')]){var _0x4f9320={};_0x4f9320[_0x3ef018[_0x90c7('0x35')]]=_0xaa9743;_['merge'](_0x1579a9[_0x90c7('0x34')],_0x4f9320);}return _0x209346[_0x90c7('0x20')](_0x90c7('0x36'))[_0x90c7('0x24')](_0x1579a9,_0x4400b3);case _0x90c7('0x19'):var _0x5e0844=_[_0x90c7('0x31')](_0x4d7d6b);if(_0x3ef018[_0x90c7('0x39')]){var _0x4f9320={};_0x4f9320[_0x3ef018[_0x90c7('0x39')]]=_0xaa9743;_[_0x90c7('0x33')](_0x5e0844['$or'],_0x4f9320);}return _0x209346[_0x90c7('0x20')](_0x90c7('0x38'))[_0x90c7('0x24')](_0x5e0844,_0x4400b3);default:return null;}})[_0x90c7('0x26')](function(_0x3427be){if(_0x3427be&&_0x3427be['length']){var _0x1f741e=_[_0x90c7('0x3a')](_0x3427be);if(_0x1f741e){return BPromise['resolve']({'id':_0x1f741e['Id'],'name':_0x1f741e[_0x90c7('0x2b')],'phone':_0x1f741e[_0x90c7('0x3b')],'endUserType':_0x1f741e[_0x90c7('0x3c')]['type'][_0x90c7('0x3d')]()});}}})[_0x90c7('0x26')](function(_0x210230){if(_0x210230){logger[_0x90c7('0x1f')](_0x90c7('0x3e'),_0x210230[_0x90c7('0x16')],_0xaa9743);return BPromise[_0x90c7('0x2a')](_0x210230);}else{logger['info'](_0x90c7('0x3f'),_0xaa9743);var _0x29de93={'Phone':_0xaa9743};if(_0x3ef018[_0x90c7('0x40')]){if(_0x3ef018[_0x90c7('0x40')]===_0x90c7('0x17')){logger[_0x90c7('0x1f')](_0x90c7('0x41'),_0xaa9743,_0x3ef018[_0x90c7('0x40')]);_0x29de93[_0x90c7('0x42')]=_0x1bce2d!==_0x90c7('0x43')?_0x1bce2d:util[_0x90c7('0x44')](_0x90c7('0x45'),_0xaa9743);}else if(_0x3ef018['moduleCreate']===_0x90c7('0x18')){logger[_0x90c7('0x1f')](_0x90c7('0x41'),_0xaa9743,_0x3ef018[_0x90c7('0x40')]);_0x29de93[_0x90c7('0x42')]=_0x1bce2d!==_0x90c7('0x43')?_0x1bce2d:util[_0x90c7('0x44')](_0x90c7('0x45'),_0xaa9743);_0x29de93[_0x90c7('0x46')]='No\x20Company';}else if(_0x3ef018[_0x90c7('0x40')]===_0x90c7('0x19')){logger[_0x90c7('0x1f')](_0x90c7('0x41'),_0xaa9743,_0x3ef018[_0x90c7('0x40')]);_0x29de93[_0x90c7('0x2b')]=_0x1bce2d!=='<unknown>'?_0x1bce2d:util['format'](_0x90c7('0x45'),_0xaa9743);}else{return null;}}return _0x209346[_0x90c7('0x20')](_[_0x90c7('0x47')](_0x3ef018[_0x90c7('0x40')]))['create'](_0x29de93)['then'](function(_0x3ba27d){return BPromise[_0x90c7('0x2a')]({'id':_0x3ba27d['id'],'endUserType':_0x3ef018['moduleCreate']});});}});}function getCustomFields(_0x3ebabf,_0x3d6718){var _0x20790e={};if(_0x3ebabf[_0x90c7('0x27')]>0x0){_[_0x90c7('0x48')](_0x3ebabf,function(_0x75db63){if(_[_0x90c7('0x49')]([_0x90c7('0x4a'),'picklist'],_0x75db63[_0x90c7('0x4b')])&&_0x75db63['idField']){_0x20790e[_0x75db63[_0x90c7('0x4c')]]=_0x75db63[_0x90c7('0x4d')][_0x90c7('0x4e')]();}else if(_0x75db63[_0x90c7('0x4b')]===_0x90c7('0x4f')&&_0x75db63[_0x90c7('0x50')]&&_0x75db63[_0x90c7('0x4c')]){_0x3d6718[_0x75db63[_0x90c7('0x50')]]&&(_0x20790e[_0x75db63[_0x90c7('0x4c')]]=_0x3d6718[_0x75db63[_0x90c7('0x50')]][_0x90c7('0x4e')]());}else if(_0x75db63[_0x90c7('0x4b')]==='customVariable'&&_0x75db63['Variable']&&_0x75db63[_0x90c7('0x51')][_0x90c7('0x52')]&&_0x75db63[_0x90c7('0x4c')]){_0x3d6718[_0x75db63[_0x90c7('0x51')][_0x90c7('0x52')][_0x90c7('0x3d')]()]&&(_0x20790e[_0x75db63[_0x90c7('0x4c')]]=_0x3d6718[_0x75db63[_0x90c7('0x51')][_0x90c7('0x52')][_0x90c7('0x3d')]()]['toString']());}});}return _0x20790e;}function getConnection(_0x1f87de){var _0xc57b94=_0x1f87de[_0x90c7('0x53')]['concat'](_0x1f87de[_0x90c7('0x54')]);var _0x132a49=new jsforce['Connection']({'oauth2':{'loginUrl':_0x1f87de[_0x90c7('0x55')]||_0x90c7('0x56'),'clientId':_0x1f87de[_0x90c7('0x57')],'clientSecret':_0x1f87de[_0x90c7('0x58')]}});return _0x132a49[_0x90c7('0x59')](_0x1f87de[_0x90c7('0x5a')],_0xc57b94)[_0x90c7('0x26')](function(){logger[_0x90c7('0x1f')](_0x90c7('0x5b'));return _0x132a49;});}exports['queue']=function(_0x4f302a,_0xc3b17b,_0x34e155,_0x37ae4e,_0x42678a,_0x49a61c){var _0x567e19,_0x22e36b,_0x41ca3a,_0x3ab079;_0x49a61c[_0x90c7('0x5c')]=intUtil[_0x90c7('0x5d')](_0x49a61c['serverUrl']);_0x49a61c['remoteUri']=intUtil[_0x90c7('0x5d')](_0x49a61c['remoteUri']);if(_0x42678a&&_0x42678a['monitor_format']){logger['info'](_0x90c7('0x5e'),_0x90c7('0x5f'));_0xc3b17b[_0x90c7('0x60')]=util[_0x90c7('0x44')](_0x90c7('0x61'),_0x49a61c['serverUrl'],_0xc3b17b[_0x90c7('0x62')],md5(_0xc3b17b[_0x90c7('0x62')]));}else{_0xc3b17b[_0x90c7('0x60')]='';}return getConnection(_0x49a61c)[_0x90c7('0x26')](function(_0x4567e5){_0x3ab079=_0x4567e5;return getUser(_0x49a61c,_0x37ae4e[_0x90c7('0x63')],_0x3ab079);})['then'](function(_0x4ce519){_0x567e19=_0x4ce519;return getEndUser(_0x49a61c,_0x34e155,_0xc3b17b[_0x90c7('0x64')],_0xc3b17b[_0x90c7('0x65')],_0x3ab079);})[_0x90c7('0x26')](function(_0x48eb82){_0x22e36b=_0x48eb82;return getTicket(_0x49a61c,_0x567e19,_0x22e36b,_0x34e155,_0xc3b17b,_0x34e155[_0x90c7('0x66')],_0x3ab079,'queue');})[_0x90c7('0x26')](function(_0x2f2cf1){_0x41ca3a=_0x2f2cf1;logger[_0x90c7('0x1f')](_0x90c7('0x67'),_0x41ca3a['id']);logger[_0x90c7('0x1f')](_0x90c7('0x68'),_0x41ca3a['id'],_0x37ae4e['name'],_0x49a61c[_0x90c7('0x4b')]);switch(_0x49a61c[_0x90c7('0x4b')]){case _0x90c7('0x69'):emit(util[_0x90c7('0x44')]('user:%s',_0x37ae4e[_0x90c7('0x52')]),_0x90c7('0x6a'),{'recordId':_0x41ca3a['id']});break;case'newTab':emit(util[_0x90c7('0x44')](_0x90c7('0x6b'),_0x37ae4e[_0x90c7('0x52')]),_0x90c7('0x6c'),{'uri':util[_0x90c7('0x44')](_0x90c7('0x6d'),_0x3ab079[_0x90c7('0x6e')],_0x41ca3a['id'])});break;default:logger[_0x90c7('0x6f')](_0x90c7('0x70'));}})['catch'](function(_0x3fc10d){logger['error'](_0x90c7('0x5e'),_0x3fc10d);});};exports[_0x90c7('0x71')]=function(_0x454c0b,_0x2febbd,_0xc4c5d6,_0x195f6f,_0x3cd26c,_0xf3a6be,_0x346e38){var _0x435f63,_0x5a5bfb,_0xd277db,_0x31a0d7;_0xf3a6be[_0x90c7('0x5c')]=intUtil[_0x90c7('0x5d')](_0xf3a6be['serverUrl']);_0xf3a6be[_0x90c7('0x55')]=intUtil[_0x90c7('0x5d')](_0xf3a6be['remoteUri']);if(_0x346e38&&_0x346e38[_0x90c7('0x72')]&&_0x346e38['recordingFormat']!==_0x90c7('0x73')){logger[_0x90c7('0x1f')](_0x90c7('0x74'),'Recording\x20is\x20enabled!');_0x2febbd['recordingURL']=util['format'](_0x90c7('0x61'),_0xf3a6be[_0x90c7('0x5c')],_0x2febbd[_0x90c7('0x62')],md5(_0x2febbd[_0x90c7('0x62')]));}return getConnection(_0xf3a6be)['then'](function(_0x50ea9b){_0x31a0d7=_0x50ea9b;return getUser(_0xf3a6be,_0x195f6f['email'],_0x31a0d7);})[_0x90c7('0x26')](function(_0x2f3476){_0x435f63=_0x2f3476;return getEndUser(_0xf3a6be,_0xc4c5d6,_0x2febbd[_0x90c7('0x75')],_0x2febbd[_0x90c7('0x76')],_0x31a0d7);})[_0x90c7('0x26')](function(_0x1f03ba){_0x5a5bfb=_0x1f03ba;return getTicket(_0xf3a6be,_0x435f63,_0x5a5bfb,_0xc4c5d6,_0x2febbd,_0xc4c5d6[_0x90c7('0x66')],_0x31a0d7,_0x90c7('0x71'));})[_0x90c7('0x26')](function(_0x95acd2){_0xd277db=_0x95acd2;logger[_0x90c7('0x1f')](_0x90c7('0x77'),_0xd277db['id']);logger[_0x90c7('0x1f')](_0x90c7('0x78'),_0xd277db['id'],_0x195f6f[_0x90c7('0x52')],_0xf3a6be[_0x90c7('0x4b')]);switch(_0xf3a6be['type']){case'integrationTab':emit(util[_0x90c7('0x44')]('user:%s',_0x195f6f[_0x90c7('0x52')]),_0x90c7('0x6a'),{'recordId':_0xd277db['id']});break;case'newTab':emit(util[_0x90c7('0x44')](_0x90c7('0x6b'),_0x195f6f[_0x90c7('0x52')]),'trigger:browser:url',{'uri':util[_0x90c7('0x44')](_0x90c7('0x6d'),_0x31a0d7[_0x90c7('0x6e')],_0xd277db['id'])});break;default:logger[_0x90c7('0x6f')](_0x90c7('0x74'),_0x90c7('0x79'));}})[_0x90c7('0x7a')](function(_0x5ed7d9){logger[_0x90c7('0x6f')]('[OUTBOUND]',_0x5ed7d9);});};exports[_0x90c7('0x7b')]=function(_0x415797,_0x1ce1d5,_0x4d9292,_0x5651be,_0x384b28,_0x2fd225){var _0x285cf4,_0x1ecea0,_0x169c74,_0x1502cc;_0x2fd225[_0x90c7('0x5c')]=intUtil[_0x90c7('0x5d')](_0x2fd225[_0x90c7('0x5c')]);_0x2fd225[_0x90c7('0x55')]=intUtil[_0x90c7('0x5d')](_0x2fd225[_0x90c7('0x55')]);if(_0x384b28&&_0x384b28[_0x90c7('0x7c')]){logger[_0x90c7('0x1f')]('['+_0x1ce1d5[_0x90c7('0x7d')][_0x90c7('0x7e')]()+']',_0x90c7('0x5f'));_0x1ce1d5[_0x90c7('0x60')]=util[_0x90c7('0x44')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x2fd225[_0x90c7('0x5c')],_0x1ce1d5[_0x90c7('0x62')],md5(_0x1ce1d5['uniqueid']));}else{_0x1ce1d5[_0x90c7('0x60')]='';}return getConnection(_0x2fd225)[_0x90c7('0x26')](function(_0x179958){_0x1502cc=_0x179958;if(!_[_0x90c7('0x7f')](_0x5651be)){return getUser(_0x2fd225,_0x5651be[_0x90c7('0x52')],_0x1502cc);}else{return getUser(_0x2fd225,null,_0x1502cc);}})[_0x90c7('0x26')](function(_0x2f94d4){_0x285cf4=_0x2f94d4;return getEndUser(_0x2fd225,_0x4d9292,_0x1ce1d5['calleridname'],_0x1ce1d5['calleridnum'],_0x1502cc);})[_0x90c7('0x26')](function(_0x329969){_0x1ecea0=_0x329969;return getTicket(_0x2fd225,_0x285cf4,_0x1ecea0,_0x4d9292,_0x1ce1d5,_0x4d9292[_0x90c7('0x66')],_0x1502cc);})[_0x90c7('0x26')](function(_0x2f5d62){_0x169c74=_0x2f5d62;logger['info']('['+_0x1ce1d5[_0x90c7('0x7d')][_0x90c7('0x7e')]()+_0x90c7('0x80'),_0x169c74['id']);logger[_0x90c7('0x1f')]('['+_0x1ce1d5[_0x90c7('0x7d')][_0x90c7('0x7e')]()+_0x90c7('0x81'),_0x2fd225[_0x90c7('0x4b')]);})['catch'](function(_0x2ae829){logger[_0x90c7('0x6f')]('['+_0x1ce1d5[_0x90c7('0x7d')][_0x90c7('0x7e')]()+']',_0x2ae829);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x59a5=['ticketNumber','number',']\x20getTicket\x20crm','?sysparm_query=name%3D','label_entry','Incident','Incident\x20-\x20','push','all',']\x20arrayPromises:\x20IDs\x20in\x20table\x20label','Tags','map','%26sysparm_record_list%3Dactive%253Dtrue','%255EORDERBYDESCnumber','format','emit','trigger:browser:url','username','password','sysparm_limit=1','sysparm_display_value=true','remoteUri','serverUrl','stripTrailingSlash','%s/api/now/table/','email','queue','unmanaged','uniqueid','monitor_format','Recording\x20is\x20enabled!','recordingURL','recordingFormat','none','[OUTBOUND]','The\x20ticket\x20ID\x20is:\x20%s','Displaying\x20call\x20in\x20a\x20new\x20tab...',']\x20Error\x20running\x20ServiceNow\x20integration','inspect','util','md5','ioredis','./util','../../../../config/environment','servicenow','redis','defaults','socket.io-emitter','GET','sys_user?sysparm_query=user_name%3Dadmin','then','length','result','info','toUpperCase','],\x20getAdminUser\x20crm','catch','message','],\x20getUser\x20input\x20crm','validateEmail','userEmail','sys_user?sysparm_query=email%3D','active','true','userId','adminId','adminEmail','],\x20getUser\x20crm','],\x20createEndUser\x20input\x20crm','POST','sys_user?','endUserNumber','System','],\x20EndUser\x20schema','],\x20getEndUser\x20input\x20crm','sys_user?sysparm_query=phone%3D','endUserId','sys_id','],\x20getEndUser\x20crm','],\x20createEndUser\x20crm','error','forEach','string','picklist','nameField','customField','toLowerCase','content','toString','includes','idField','variable','variableName','customVariable','Variable','name',']\x20getTicket\x20input\x20crm','outbound','incident','getString','Subjects','Descriptions','Fields',']\x20POST\x20incident\x20entity\x20schema','ticketId'];(function(_0x2958a7,_0x569f19){var _0x1e0865=function(_0x230883){while(--_0x230883){_0x2958a7['push'](_0x2958a7['shift']());}};_0x1e0865(++_0x569f19);}(_0x59a5,0x162));var _0x559a=function(_0x573faa,_0x5563b3){_0x573faa=_0x573faa-0x0;var _0x2760e9=_0x59a5[_0x573faa];return _0x2760e9;};'use strict';var _=require('lodash');var Promise=require('bluebird');var rp=require('request-promise');var util=require(_0x559a('0x0'));var md5=require(_0x559a('0x1'));var Redis=require(_0x559a('0x2'));var intUtil=require(_0x559a('0x3'));var config=require(_0x559a('0x4'));var logger=require('../../../../config/logger')(_0x559a('0x5'));config[_0x559a('0x6')]=_[_0x559a('0x7')](config['redis'],{'host':'localhost','port':0x18eb});var io=require(_0x559a('0x8'))(new Redis(config[_0x559a('0x6')]));function getAdminUser(_0x47a641,_0xaaa338,_0x5a8662,_0x2b7ef9,_0x2d1fed,_0x296608){return new Promise(function(_0xfedbb3,_0x389232){var _0x2196cd={'method':_0x559a('0x9'),'uri':_0x2b7ef9+_0x559a('0xa')+'&'+_0x2d1fed+'&'+_0x296608,'auth':_0xaaa338,'json':!![]};return rp(_0x2196cd)[_0x559a('0xb')](function(_0x4e19c5){if(_0x4e19c5['result'][_0x559a('0xc')]>0x0){_0x5a8662['adminId']=_0x4e19c5[_0x559a('0xd')][0x0]['sys_id'];}logger[_0x559a('0xe')]('['+[_0x47a641[_0x559a('0xf')]()]+_0x559a('0x10'),_0x5a8662);_0xfedbb3(_0x5a8662);})[_0x559a('0x11')](function(_0x4efabe){logger['error']('['+[_0x47a641[_0x559a('0xf')]()]+']',_0x4efabe[_0x559a('0x12')]);_0x389232(_0x4efabe['message']);});});}function getUser(_0x1b4a79,_0x4fe74b,_0x3119a1,_0xf1aa7,_0x27e2b5){return function(_0x5d051a){logger[_0x559a('0xe')]('['+[_0x1b4a79['toUpperCase']()]+_0x559a('0x13'),_0x5d051a);return new Promise(function(_0x37fe71,_0x42e927){if(intUtil[_0x559a('0x14')](_0x5d051a[_0x559a('0x15')])){var _0x483d25={'method':_0x559a('0x9'),'uri':_0x3119a1+_0x559a('0x16')+_0x5d051a[_0x559a('0x15')]+'&'+_0xf1aa7+'&'+_0x27e2b5,'auth':_0x4fe74b,'json':!![]};logger['info']('['+[_0x1b4a79['toUpperCase']()]+'],\x20getUser\x20rp\x20obj',_0x483d25);return rp(_0x483d25)[_0x559a('0xb')](function(_0x5f188d){logger[_0x559a('0xe')]('['+[_0x1b4a79['toUpperCase']()]+'],\x20getUser\x20entity',_0x5f188d);if(_0x5f188d[_0x559a('0xd')][_0x559a('0xc')]>0x0&&String(_0x5f188d[_0x559a('0xd')][0x0][_0x559a('0x17')])===_0x559a('0x18')){_0x5d051a['userId']=_0x5f188d[_0x559a('0xd')][0x0]['sys_id'];}else{_0x5d051a[_0x559a('0x19')]=_0x5d051a[_0x559a('0x1a')];_0x5d051a[_0x559a('0x15')]=_0x5d051a[_0x559a('0x1b')];}logger[_0x559a('0xe')]('['+[_0x1b4a79['toUpperCase']()]+_0x559a('0x1c'),_0x5d051a);_0x37fe71(_0x5d051a);})[_0x559a('0x11')](function(_0x2766db){logger['error']('['+[_0x1b4a79['toUpperCase']()]+']',_0x2766db['message']);_0x42e927(_0x2766db[_0x559a('0x12')]);});}else{logger[_0x559a('0xe')]('['+[_0x1b4a79[_0x559a('0xf')]()]+']\x20using\x20admin\x20profile');_0x5d051a[_0x559a('0x19')]=_0x5d051a['adminId'];_0x5d051a[_0x559a('0x15')]=_0x5d051a[_0x559a('0x1b')];_0x37fe71(_0x5d051a);}});};}function createEndUser(_0x224b21,_0x399e49,_0x52c163,_0x1afc30,_0x1e8399){logger[_0x559a('0xe')]('['+[_0x224b21['toUpperCase']()]+_0x559a('0x1d'),_0x52c163);return new Promise(function(_0x3bd23b,_0x3a8a0f){var _0x2bf8d4={'method':_0x559a('0x1e'),'uri':_0x1afc30+_0x559a('0x1f')+_0x1e8399,'body':{'user_name':_0x52c163[_0x559a('0x20')],'roles':'user','first_name':_0x52c163[_0x559a('0x20')],'active':_0x559a('0x18'),'date_format':_0x559a('0x21'),'phone':_0x52c163[_0x559a('0x20')]},'auth':_0x399e49,'json':!![]};return rp(_0x2bf8d4)['then'](function(_0x2357a7){logger[_0x559a('0xe')]('['+[_0x224b21[_0x559a('0xf')]()]+_0x559a('0x22'),_0x2357a7[_0x559a('0xd')]);_0x52c163['endUserId']=_0x2357a7[_0x559a('0xd')]['sys_id'];_0x3bd23b(_0x52c163);})[_0x559a('0x11')](function(_0x301e03){logger['error']('['+[_0x224b21[_0x559a('0xf')]()]+']',_0x301e03['message']);_0x3a8a0f(_0x301e03['message']);});});}function getEndUser(_0x47ab7c,_0x5a85e7,_0x508561,_0x397f90,_0x1eb3e7){return function(_0x16ad32){logger[_0x559a('0xe')]('['+[_0x47ab7c[_0x559a('0xf')]()]+_0x559a('0x23'),_0x16ad32);return new Promise(function(_0x4bbec8,_0xca16ab){var _0x3e5761={'method':'GET','uri':_0x508561+_0x559a('0x24')+_0x16ad32[_0x559a('0x20')]+'&'+_0x397f90+'&'+_0x1eb3e7,'auth':_0x5a85e7,'json':!![]};return rp(_0x3e5761)['then'](function(_0x580beb){if(_0x580beb['result'][_0x559a('0xc')]>0x0){_0x16ad32[_0x559a('0x25')]=_0x580beb[_0x559a('0xd')][0x0][_0x559a('0x26')];logger[_0x559a('0xe')]('['+[_0x47ab7c[_0x559a('0xf')]()]+_0x559a('0x27'),_0x16ad32);_0x4bbec8(_0x16ad32);}else{return createEndUser(_0x47ab7c,_0x5a85e7,_0x16ad32,_0x508561,_0x397f90)[_0x559a('0xb')](function(_0x54e260){logger[_0x559a('0xe')]('['+[_0x47ab7c[_0x559a('0xf')]()]+_0x559a('0x28'),_0x54e260);_0x4bbec8(_0x54e260);});}})[_0x559a('0x11')](function(_0x5729de){logger[_0x559a('0x29')]('['+[_0x47ab7c['toUpperCase']()]+']',_0x5729de[_0x559a('0x12')]);_0xca16ab(_0x5729de[_0x559a('0x12')]);});});};}function getCustomFields(_0x135961,_0x2dc4ab){var _0x5355e6={};if(_0x135961[_0x559a('0xc')]>0x0){_[_0x559a('0x2a')](_0x135961,function(_0x4f05b7){if(_['includes']([_0x559a('0x2b'),_0x559a('0x2c')],_0x4f05b7['type'])&&_0x4f05b7[_0x559a('0x2d')]&&!_0x4f05b7[_0x559a('0x2e')]){_0x5355e6[_0x4f05b7[_0x559a('0x2d')][_0x559a('0x2f')]()]=_0x4f05b7[_0x559a('0x30')][_0x559a('0x31')]();}else if(_[_0x559a('0x32')](['string','picklist'],_0x4f05b7['type'])&&_0x4f05b7[_0x559a('0x33')]&&_0x4f05b7[_0x559a('0x2e')]){_0x5355e6[_0x4f05b7['idField'][_0x559a('0x2f')]()]=_0x4f05b7['content'][_0x559a('0x31')]();}else if(_0x4f05b7['type']===_0x559a('0x34')&&_0x4f05b7[_0x559a('0x35')]&&_0x4f05b7['idField']&&_0x4f05b7['customField']){_0x5355e6[_0x4f05b7['idField'][_0x559a('0x2f')]()]=_0x2dc4ab[_0x4f05b7['variableName']][_0x559a('0x31')]();}else if(_0x4f05b7['type']===_0x559a('0x36')&&_0x4f05b7[_0x559a('0x37')]&&_0x4f05b7[_0x559a('0x37')][_0x559a('0x38')]&&_0x4f05b7[_0x559a('0x33')]&&_0x4f05b7[_0x559a('0x2e')]){_0x5355e6[_0x4f05b7[_0x559a('0x33')][_0x559a('0x2f')]()]=_0x2dc4ab[_0x4f05b7['Variable'][_0x559a('0x38')][_0x559a('0x2f')]()][_0x559a('0x31')]();}});}return _0x5355e6;}function getTicket(_0x419a85,_0x2c49e2,_0x58d77c,_0x5bdbb7,_0x8f76ec,_0x4883b6){return function(_0x57cc8a){logger[_0x559a('0xe')]('['+[_0x419a85[_0x559a('0xf')]()]+_0x559a('0x39'),_0x57cc8a);return new Promise(function(_0x2b9a66,_0x21f276){var _0xaa3a30=_0x419a85[_0x559a('0x2f')]()===_0x559a('0x3a')?_0x57cc8a['userId']:_0x57cc8a[_0x559a('0x25')];var _0x3b472f={'method':_0x559a('0x1e'),'uri':_0x58d77c+_0x559a('0x3b')+'?'+_0x4883b6,'body':Object['assign']({},{'active':_0x559a('0x18'),'caller_id':_0xaa3a30,'assigned_to':_0x57cc8a[_0x559a('0x19')],'short_description':intUtil[_0x559a('0x3c')](_0x5bdbb7[_0x559a('0x3d')],_0x8f76ec,'\x20'),'description':intUtil[_0x559a('0x3c')](_0x5bdbb7[_0x559a('0x3e')],_0x8f76ec,'\x0a')},getCustomFields(_0x5bdbb7[_0x559a('0x3f')],_0x8f76ec)),'auth':_0x2c49e2,'json':!![]};return rp(_0x3b472f)[_0x559a('0xb')](function(_0x210e57){logger[_0x559a('0xe')]('['+[_0x419a85[_0x559a('0xf')]()]+_0x559a('0x40'),_0x210e57[_0x559a('0xd')]);_0x57cc8a[_0x559a('0x41')]=_0x210e57['result'][_0x559a('0x26')];_0x57cc8a[_0x559a('0x42')]=_0x210e57[_0x559a('0xd')][_0x559a('0x43')];logger['info']('['+[_0x419a85['toUpperCase']()]+_0x559a('0x44'),_0x57cc8a);_0x2b9a66(_0x57cc8a);})[_0x559a('0x11')](function(_0x235922){logger[_0x559a('0x29')]('['+[_0x419a85[_0x559a('0xf')]()]+']',_0x235922[_0x559a('0x12')]);_0x21f276(_0x235922['message']);});});};}function createRemoteTag(_0x15e2ca,_0x50a16f,_0x144ab7,_0x2fff72){return new Promise(function(_0x400724,_0xb7d745){var _0x4cf8aa={'method':_0x559a('0x1e'),'uri':_0x144ab7+'label'+'?'+_0x2fff72,'body':{'short_description':_0x15e2ca,'global':!![],'active':!![],'name':_0x15e2ca},'auth':_0x50a16f,'json':!![]};return rp(_0x4cf8aa)[_0x559a('0xb')](function(_0x3751f7){var _0x2f8e17=_0x3751f7['result'][_0x559a('0x26')];_0x400724(_0x2f8e17);});});}function getRemoteTag(_0x6d97a8,_0x1e35d5,_0x1586a1,_0x5197e0,_0x2296dc){return new Promise(function(_0x56a812,_0x37abf0){var _0x38036c={'method':_0x559a('0x9'),'uri':_0x1586a1+'label'+_0x559a('0x45')+_0x6d97a8+'&'+_0x5197e0,'auth':_0x1e35d5,'json':!![]};return rp(_0x38036c)[_0x559a('0xb')](function(_0x1c06c4){if(_0x1c06c4[_0x559a('0xd')][_0x559a('0xc')]>0x0){var _0x188360=_0x1c06c4[_0x559a('0xd')][0x0]['sys_id'];_0x56a812(_0x188360);}else{return createRemoteTag(_0x6d97a8,_0x1e35d5,_0x1586a1,_0x5197e0)[_0x559a('0xb')](function(_0x1aecd4){_0x56a812(_0x1aecd4);});}});});}function assignTagToIncident(_0x4c2834,_0x2022c3,_0x11bcb4,_0x3117f9,_0x3d7f32){return new Promise(function(_0x255126,_0x5b16e3){var _0x28cb30={'method':_0x559a('0x1e'),'uri':_0x11bcb4+_0x559a('0x46')+'?'+_0x3d7f32,'body':{'label':_0x4c2834,'table':_0x559a('0x3b'),'id_type':_0x559a('0x47'),'table_key':_0x3117f9[_0x559a('0x41')],'title':_0x559a('0x48')+_0x3117f9['ticketNumber'],'id_display':_0x3117f9[_0x559a('0x42')]},'auth':_0x2022c3,'json':!![]};return rp(_0x28cb30)[_0x559a('0xb')](function(_0x3dd660){_0x255126();})[_0x559a('0x11')](function(){_0x255126();});});}function manageTags(_0x171551,_0x41cb9e,_0x370176,_0x53e81b,_0x1fcd24,_0x11c4b6,_0x27ecac){return new Promise(function(_0x3af27a,_0x28747e){var _0x20efaa=[];_0x41cb9e[_0x559a('0x2a')](function(_0x19bb62){_0x20efaa[_0x559a('0x49')](getRemoteTag(_0x19bb62,_0x370176,_0x53e81b,_0x11c4b6,_0x27ecac));});return Promise[_0x559a('0x4a')](_0x20efaa)[_0x559a('0xb')](function(_0x466efe){if(_0x466efe[_0x559a('0xc')]){logger[_0x559a('0xe')]('['+[_0x171551['toUpperCase']()]+_0x559a('0x4b'),_0x466efe);var _0x2047e6=[];_0x466efe[_0x559a('0x2a')](function(_0xab8f01){_0x2047e6[_0x559a('0x49')](assignTagToIncident(_0xab8f01,_0x370176,_0x53e81b,_0x1fcd24,_0x11c4b6));});return Promise['all'](_0x2047e6)[_0x559a('0xb')](function(){_0x3af27a();})['catch'](function(){_0x3af27a();});}else{_0x3af27a();}});});}function getTags(_0x291807,_0x1560ea,_0xd0b843,_0x36600f,_0x164bf7,_0x1e803f){return function(_0x26ceee){return new Promise(function(_0x37f35d,_0xd0a495){var _0xc1c581=[];var _0x2a9aeb=_0x36600f[_0x559a('0x4c')];if(_0x2a9aeb&&_0x2a9aeb[_0x559a('0xc')]>0x0){_0xc1c581=_[_0x559a('0x4d')](_0x2a9aeb,_0x559a('0x38'));}if(_0xc1c581[_0x559a('0xc')]>0x0){return manageTags(_0x291807,_0xc1c581,_0x1560ea,_0xd0b843,_0x26ceee,_0x164bf7,_0x1e803f)[_0x559a('0xb')](function(){_0x37f35d(_0x26ceee);});}else{_0x37f35d(_0x26ceee);}});};}function emit(_0x2ee6db,_0x5a9a29,_0x3f50d9){var _0x56db7c='%26sysparm_record_target%3Dincident'+'%26sysparm_record_row%3D1%26sysparm_record_rows%3D39'+_0x559a('0x4e')+_0x559a('0x4f');var _0x37a7f9={'uri':_0x2ee6db+'/nav_to.do?uri=incident.do?sys_id%3D'+_0x3f50d9+_0x56db7c};io['to'](util[_0x559a('0x50')]('user:%s',_0x5a9a29))[_0x559a('0x51')](_0x559a('0x52'),_0x37a7f9);}exports['cs']=function(_0x40fcee,_0x474d26,_0x159e9a,_0x2b584b,_0x58cdda,_0x11bf4b,_0xea39d3,_0x269cdd){var _0x6d27be={};var _0x50ffc6={'user':_0x11bf4b[_0x559a('0x53')],'pass':_0x11bf4b[_0x559a('0x54')]};var _0x5368b8=_0x559a('0x55');var _0x3b88c=_0x559a('0x56');_0x11bf4b[_0x559a('0x57')]=intUtil['stripTrailingSlash'](_0x11bf4b[_0x559a('0x57')]);_0x11bf4b[_0x559a('0x58')]=intUtil[_0x559a('0x59')](_0x11bf4b[_0x559a('0x58')]);var _0xbc29e8=util['format'](_0x559a('0x5a'),_0x11bf4b['remoteUri']);_0x6d27be[_0x559a('0x15')]=!_['isNil'](_0x2b584b)?_0x2b584b['email']:null;_0x6d27be[_0x559a('0x1b')]=_0x11bf4b[_0x559a('0x5b')];_0x6d27be['endUserNumber']=_0x269cdd[_0x559a('0x2f')]()===_0x559a('0x3a')?_0x474d26['destcalleridnum']:_0x474d26['calleridnum'];_0x6d27be['callDirection']=_0x269cdd===_0x559a('0x5c')||_0x269cdd===_0x559a('0x5d')?_0x559a('0x5c'):_0x559a('0x3a');var _0x3b2ab2=util[_0x559a('0x50')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x11bf4b[_0x559a('0x58')],_0x474d26[_0x559a('0x5e')],md5(_0x474d26[_0x559a('0x5e')]));if(_0x58cdda&&_0x58cdda[_0x559a('0x5f')]){logger[_0x559a('0xe')]('[QUEUE]',_0x559a('0x60'));_0x474d26[_0x559a('0x61')]=_0x3b2ab2;}else if(_0xea39d3&&_0xea39d3[_0x559a('0x62')]&&_0xea39d3[_0x559a('0x62')]!==_0x559a('0x63')){logger[_0x559a('0xe')](_0x559a('0x64'),_0x559a('0x60'));_0x474d26[_0x559a('0x61')]=_0x3b2ab2;}else{_0x474d26[_0x559a('0x61')]='';}return getAdminUser(_0x269cdd,_0x50ffc6,_0x6d27be,_0xbc29e8,_0x3b88c,_0x5368b8)[_0x559a('0xb')](getUser(_0x269cdd,_0x50ffc6,_0xbc29e8,_0x3b88c,_0x5368b8))[_0x559a('0xb')](getEndUser(_0x269cdd,_0x50ffc6,_0xbc29e8,_0x3b88c,_0x5368b8))[_0x559a('0xb')](getTicket(_0x269cdd,_0x50ffc6,_0xbc29e8,_0x159e9a,_0x474d26,_0x3b88c))['then'](function(_0x12eab3){logger[_0x559a('0xe')](util[_0x559a('0x50')](_0x559a('0x65'),_0x12eab3['ticketId']));logger[_0x559a('0xe')](util[_0x559a('0x50')]('call\x20direction:\x20%s',_0x269cdd));if(_0x269cdd!=='unmanaged'){logger['info']('['+[_0x269cdd['toUpperCase']()]+']',_0x559a('0x66'));emit(_0x11bf4b[_0x559a('0x57')],_0x2b584b[_0x559a('0x38')],_0x12eab3[_0x559a('0x41')]);}})[_0x559a('0x11')](function(_0x48b53e){logger[_0x559a('0x29')]('['+[_0x269cdd[_0x559a('0xf')]()]+_0x559a('0x67'),util[_0x559a('0x68')](_0x48b53e,{'showHidden':!![],'depth':null}));});};
\ No newline at end of file
+var _0x23e4=['Fields','ticketId','ticketNumber','number',']\x20getTicket\x20crm','label','?sysparm_query=name%3D','label_entry','incident','Incident\x20-\x20','push','all',']\x20arrayPromises:\x20IDs\x20in\x20table\x20label','%26sysparm_record_target%3Dincident','%26sysparm_record_row%3D1%26sysparm_record_rows%3D39','%26sysparm_record_list%3Dactive%253Dtrue','%255EORDERBYDESCnumber','/nav_to.do?uri=incident.do?sys_id%3D','format','emit','username','password','sysparm_limit=1','sysparm_display_value=true','remoteUri','stripTrailingSlash','serverUrl','%s/api/now/table/','isNil','email','destcalleridnum','calleridnum','callDirection','queue','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','monitor_format','[QUEUE]','recordingURL','recordingFormat','[OUTBOUND]','Recording\x20is\x20enabled!','The\x20ticket\x20ID\x20is:\x20%s','unmanaged','Displaying\x20call\x20in\x20a\x20new\x20tab...',']\x20Error\x20running\x20ServiceNow\x20integration','inspect','lodash','util','md5','ioredis','./util','../../../../config/environment','../../../../config/logger','servicenow','redis','defaults','localhost','sys_user?sysparm_query=user_name%3Dadmin','then','result','sys_id','],\x20getAdminUser\x20crm','catch','error','toUpperCase','message','info','validateEmail','userEmail','GET','sys_user?sysparm_query=email%3D','],\x20getUser\x20entity','length','true','userId','adminId','adminEmail','],\x20getUser\x20crm',']\x20using\x20admin\x20profile','POST','user','endUserNumber','System','],\x20EndUser\x20schema','],\x20getEndUser\x20input\x20crm','sys_user?sysparm_query=phone%3D','endUserId','],\x20getEndUser\x20crm','],\x20createEndUser\x20crm','forEach','includes','string','picklist','type','nameField','content','toString','toLowerCase','variable','idField','customField','variableName','Variable','name',']\x20getTicket\x20input\x20crm','outbound','Subjects','getString','Descriptions'];(function(_0xa4b4a9,_0x310580){var _0x195ee7=function(_0x28459e){while(--_0x28459e){_0xa4b4a9['push'](_0xa4b4a9['shift']());}};_0x195ee7(++_0x310580);}(_0x23e4,0x179));var _0x423e=function(_0x43a6b6,_0xb4866c){_0x43a6b6=_0x43a6b6-0x0;var _0x494edb=_0x23e4[_0x43a6b6];return _0x494edb;};'use strict';var _=require(_0x423e('0x0'));var Promise=require('bluebird');var rp=require('request-promise');var util=require(_0x423e('0x1'));var md5=require(_0x423e('0x2'));var Redis=require(_0x423e('0x3'));var intUtil=require(_0x423e('0x4'));var config=require(_0x423e('0x5'));var logger=require(_0x423e('0x6'))(_0x423e('0x7'));config[_0x423e('0x8')]=_[_0x423e('0x9')](config['redis'],{'host':_0x423e('0xa'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x423e('0x8')]));function getAdminUser(_0x10cedd,_0x3e2dbf,_0x3fb0f9,_0x440ce7,_0x2845ad,_0x2bc23a){return new Promise(function(_0x2402e4,_0x129d88){var _0x17f3f8={'method':'GET','uri':_0x440ce7+_0x423e('0xb')+'&'+_0x2845ad+'&'+_0x2bc23a,'auth':_0x3e2dbf,'json':!![]};return rp(_0x17f3f8)[_0x423e('0xc')](function(_0x28ba47){if(_0x28ba47['result']['length']>0x0){_0x3fb0f9['adminId']=_0x28ba47[_0x423e('0xd')][0x0][_0x423e('0xe')];}logger['info']('['+[_0x10cedd['toUpperCase']()]+_0x423e('0xf'),_0x3fb0f9);_0x2402e4(_0x3fb0f9);})[_0x423e('0x10')](function(_0x4e8627){logger[_0x423e('0x11')]('['+[_0x10cedd[_0x423e('0x12')]()]+']',_0x4e8627['message']);_0x129d88(_0x4e8627[_0x423e('0x13')]);});});}function getUser(_0x3eb729,_0xf807d8,_0x5c4f2d,_0x3eb7c3,_0x4af64c){return function(_0x58daea){logger[_0x423e('0x14')]('['+[_0x3eb729[_0x423e('0x12')]()]+'],\x20getUser\x20input\x20crm',_0x58daea);return new Promise(function(_0x3ad4d5,_0x90f39c){if(intUtil[_0x423e('0x15')](_0x58daea[_0x423e('0x16')])){var _0x14970b={'method':_0x423e('0x17'),'uri':_0x5c4f2d+_0x423e('0x18')+_0x58daea[_0x423e('0x16')]+'&'+_0x3eb7c3+'&'+_0x4af64c,'auth':_0xf807d8,'json':!![]};logger[_0x423e('0x14')]('['+[_0x3eb729['toUpperCase']()]+'],\x20getUser\x20rp\x20obj',_0x14970b);return rp(_0x14970b)[_0x423e('0xc')](function(_0xeb93d8){logger[_0x423e('0x14')]('['+[_0x3eb729['toUpperCase']()]+_0x423e('0x19'),_0xeb93d8);if(_0xeb93d8[_0x423e('0xd')][_0x423e('0x1a')]>0x0&&String(_0xeb93d8[_0x423e('0xd')][0x0]['active'])===_0x423e('0x1b')){_0x58daea[_0x423e('0x1c')]=_0xeb93d8['result'][0x0][_0x423e('0xe')];}else{_0x58daea[_0x423e('0x1c')]=_0x58daea[_0x423e('0x1d')];_0x58daea[_0x423e('0x16')]=_0x58daea[_0x423e('0x1e')];}logger[_0x423e('0x14')]('['+[_0x3eb729[_0x423e('0x12')]()]+_0x423e('0x1f'),_0x58daea);_0x3ad4d5(_0x58daea);})[_0x423e('0x10')](function(_0x4b8d6e){logger[_0x423e('0x11')]('['+[_0x3eb729[_0x423e('0x12')]()]+']',_0x4b8d6e[_0x423e('0x13')]);_0x90f39c(_0x4b8d6e[_0x423e('0x13')]);});}else{logger['info']('['+[_0x3eb729[_0x423e('0x12')]()]+_0x423e('0x20'));_0x58daea[_0x423e('0x1c')]=_0x58daea[_0x423e('0x1d')];_0x58daea[_0x423e('0x16')]=_0x58daea[_0x423e('0x1e')];_0x3ad4d5(_0x58daea);}});};}function createEndUser(_0x329b2b,_0x7d5ce7,_0x59560c,_0x35456c,_0x168324){logger[_0x423e('0x14')]('['+[_0x329b2b['toUpperCase']()]+'],\x20createEndUser\x20input\x20crm',_0x59560c);return new Promise(function(_0x19f2be,_0x3a285e){var _0x3c182f={'method':_0x423e('0x21'),'uri':_0x35456c+'sys_user?'+_0x168324,'body':{'user_name':_0x59560c['endUserNumber'],'roles':_0x423e('0x22'),'first_name':_0x59560c[_0x423e('0x23')],'active':_0x423e('0x1b'),'date_format':_0x423e('0x24'),'phone':_0x59560c[_0x423e('0x23')]},'auth':_0x7d5ce7,'json':!![]};return rp(_0x3c182f)['then'](function(_0x201091){logger[_0x423e('0x14')]('['+[_0x329b2b[_0x423e('0x12')]()]+_0x423e('0x25'),_0x201091[_0x423e('0xd')]);_0x59560c['endUserId']=_0x201091[_0x423e('0xd')][_0x423e('0xe')];_0x19f2be(_0x59560c);})[_0x423e('0x10')](function(_0x59a8ec){logger['error']('['+[_0x329b2b[_0x423e('0x12')]()]+']',_0x59a8ec[_0x423e('0x13')]);_0x3a285e(_0x59a8ec[_0x423e('0x13')]);});});}function getEndUser(_0x5c05b4,_0xc44fe3,_0x270f1a,_0x9e02be,_0x192f66){return function(_0x58a1b4){logger[_0x423e('0x14')]('['+[_0x5c05b4['toUpperCase']()]+_0x423e('0x26'),_0x58a1b4);return new Promise(function(_0x1e460a,_0x4364d9){var _0x19f001={'method':_0x423e('0x17'),'uri':_0x270f1a+_0x423e('0x27')+_0x58a1b4[_0x423e('0x23')]+'&'+_0x9e02be+'&'+_0x192f66,'auth':_0xc44fe3,'json':!![]};return rp(_0x19f001)[_0x423e('0xc')](function(_0x21ef03){if(_0x21ef03['result']['length']>0x0){_0x58a1b4[_0x423e('0x28')]=_0x21ef03[_0x423e('0xd')][0x0][_0x423e('0xe')];logger[_0x423e('0x14')]('['+[_0x5c05b4[_0x423e('0x12')]()]+_0x423e('0x29'),_0x58a1b4);_0x1e460a(_0x58a1b4);}else{return createEndUser(_0x5c05b4,_0xc44fe3,_0x58a1b4,_0x270f1a,_0x9e02be)[_0x423e('0xc')](function(_0xdb1c13){logger['info']('['+[_0x5c05b4[_0x423e('0x12')]()]+_0x423e('0x2a'),_0xdb1c13);_0x1e460a(_0xdb1c13);});}})[_0x423e('0x10')](function(_0xa850a0){logger['error']('['+[_0x5c05b4[_0x423e('0x12')]()]+']',_0xa850a0['message']);_0x4364d9(_0xa850a0[_0x423e('0x13')]);});});};}function getCustomFields(_0x4f03fb,_0x320194){var _0x261756={};if(_0x4f03fb[_0x423e('0x1a')]>0x0){_[_0x423e('0x2b')](_0x4f03fb,function(_0x3a62f6){if(_[_0x423e('0x2c')]([_0x423e('0x2d'),_0x423e('0x2e')],_0x3a62f6[_0x423e('0x2f')])&&_0x3a62f6[_0x423e('0x30')]&&!_0x3a62f6['customField']){_0x261756[_0x3a62f6['nameField']['toLowerCase']()]=_0x3a62f6[_0x423e('0x31')][_0x423e('0x32')]();}else if(_[_0x423e('0x2c')]([_0x423e('0x2d'),_0x423e('0x2e')],_0x3a62f6[_0x423e('0x2f')])&&_0x3a62f6['idField']&&_0x3a62f6['customField']){_0x261756[_0x3a62f6['idField'][_0x423e('0x33')]()]=_0x3a62f6['content'][_0x423e('0x32')]();}else if(_0x3a62f6['type']===_0x423e('0x34')&&_0x3a62f6['variableName']&&_0x3a62f6[_0x423e('0x35')]&&_0x3a62f6[_0x423e('0x36')]){_0x261756[_0x3a62f6[_0x423e('0x35')]['toLowerCase']()]=_0x320194[_0x3a62f6[_0x423e('0x37')]][_0x423e('0x32')]();}else if(_0x3a62f6['type']==='customVariable'&&_0x3a62f6['Variable']&&_0x3a62f6[_0x423e('0x38')][_0x423e('0x39')]&&_0x3a62f6[_0x423e('0x35')]&&_0x3a62f6[_0x423e('0x36')]){_0x261756[_0x3a62f6[_0x423e('0x35')]['toLowerCase']()]=_0x320194[_0x3a62f6[_0x423e('0x38')][_0x423e('0x39')][_0x423e('0x33')]()][_0x423e('0x32')]();}});}return _0x261756;}function getTicket(_0x431d70,_0x114e8b,_0x364f0b,_0x588d3d,_0x3ac5a7,_0x4ff453){return function(_0x317440){logger[_0x423e('0x14')]('['+[_0x431d70[_0x423e('0x12')]()]+_0x423e('0x3a'),_0x317440);return new Promise(function(_0x4a490c,_0x1abb6f){var _0x5231cd=_0x431d70['toLowerCase']()===_0x423e('0x3b')?_0x317440[_0x423e('0x1c')]:_0x317440[_0x423e('0x28')];var _0x3348e8={'method':'POST','uri':_0x364f0b+'incident'+'?'+_0x4ff453,'body':Object['assign']({},{'active':_0x423e('0x1b'),'caller_id':_0x5231cd,'assigned_to':_0x317440[_0x423e('0x1c')],'short_description':intUtil['getString'](_0x588d3d[_0x423e('0x3c')],_0x3ac5a7,'\x20'),'description':intUtil[_0x423e('0x3d')](_0x588d3d[_0x423e('0x3e')],_0x3ac5a7,'\x0a')},getCustomFields(_0x588d3d[_0x423e('0x3f')],_0x3ac5a7)),'auth':_0x114e8b,'json':!![]};return rp(_0x3348e8)['then'](function(_0x4b98c2){logger[_0x423e('0x14')]('['+[_0x431d70[_0x423e('0x12')]()]+']\x20POST\x20incident\x20entity\x20schema',_0x4b98c2[_0x423e('0xd')]);_0x317440[_0x423e('0x40')]=_0x4b98c2[_0x423e('0xd')][_0x423e('0xe')];_0x317440[_0x423e('0x41')]=_0x4b98c2['result'][_0x423e('0x42')];logger[_0x423e('0x14')]('['+[_0x431d70[_0x423e('0x12')]()]+_0x423e('0x43'),_0x317440);_0x4a490c(_0x317440);})[_0x423e('0x10')](function(_0xe2611d){logger[_0x423e('0x11')]('['+[_0x431d70[_0x423e('0x12')]()]+']',_0xe2611d[_0x423e('0x13')]);_0x1abb6f(_0xe2611d[_0x423e('0x13')]);});});};}function createRemoteTag(_0x1e4d74,_0x829b5d,_0x2cfd3c,_0x5cb9a8){return new Promise(function(_0x4b8724,_0x546ce8){var _0x4a3c42={'method':'POST','uri':_0x2cfd3c+_0x423e('0x44')+'?'+_0x5cb9a8,'body':{'short_description':_0x1e4d74,'global':!![],'active':!![],'name':_0x1e4d74},'auth':_0x829b5d,'json':!![]};return rp(_0x4a3c42)[_0x423e('0xc')](function(_0x42262c){var _0x366d11=_0x42262c[_0x423e('0xd')][_0x423e('0xe')];_0x4b8724(_0x366d11);});});}function getRemoteTag(_0x61e93c,_0x2c01b1,_0x15c214,_0x49670a,_0x6e0a4d){return new Promise(function(_0x3918ec,_0x411466){var _0x2c3f75={'method':_0x423e('0x17'),'uri':_0x15c214+_0x423e('0x44')+_0x423e('0x45')+_0x61e93c+'&'+_0x49670a,'auth':_0x2c01b1,'json':!![]};return rp(_0x2c3f75)[_0x423e('0xc')](function(_0xd20f8a){if(_0xd20f8a['result'][_0x423e('0x1a')]>0x0){var _0x4f8761=_0xd20f8a[_0x423e('0xd')][0x0][_0x423e('0xe')];_0x3918ec(_0x4f8761);}else{return createRemoteTag(_0x61e93c,_0x2c01b1,_0x15c214,_0x49670a)[_0x423e('0xc')](function(_0x4c609f){_0x3918ec(_0x4c609f);});}});});}function assignTagToIncident(_0x417029,_0x4ff902,_0x57f05e,_0x15e92c,_0x22ccc4){return new Promise(function(_0x3a66ae,_0x427f21){var _0x4be2db={'method':_0x423e('0x21'),'uri':_0x57f05e+_0x423e('0x46')+'?'+_0x22ccc4,'body':{'label':_0x417029,'table':_0x423e('0x47'),'id_type':'Incident','table_key':_0x15e92c['ticketId'],'title':_0x423e('0x48')+_0x15e92c['ticketNumber'],'id_display':_0x15e92c[_0x423e('0x41')]},'auth':_0x4ff902,'json':!![]};return rp(_0x4be2db)[_0x423e('0xc')](function(_0xb53e95){_0x3a66ae();})[_0x423e('0x10')](function(){_0x3a66ae();});});}function manageTags(_0x4d3590,_0x34e265,_0x421146,_0x1c483b,_0x432b50,_0x264857,_0x25aa74){return new Promise(function(_0x304ac0,_0x42778a){var _0x3b795c=[];_0x34e265[_0x423e('0x2b')](function(_0x232a83){_0x3b795c[_0x423e('0x49')](getRemoteTag(_0x232a83,_0x421146,_0x1c483b,_0x264857,_0x25aa74));});return Promise[_0x423e('0x4a')](_0x3b795c)['then'](function(_0x27a78c){if(_0x27a78c[_0x423e('0x1a')]){logger[_0x423e('0x14')]('['+[_0x4d3590['toUpperCase']()]+_0x423e('0x4b'),_0x27a78c);var _0x4131fa=[];_0x27a78c[_0x423e('0x2b')](function(_0x42341c){_0x4131fa[_0x423e('0x49')](assignTagToIncident(_0x42341c,_0x421146,_0x1c483b,_0x432b50,_0x264857));});return Promise[_0x423e('0x4a')](_0x4131fa)[_0x423e('0xc')](function(){_0x304ac0();})[_0x423e('0x10')](function(){_0x304ac0();});}else{_0x304ac0();}});});}function getTags(_0x55b7cf,_0x4245f4,_0x17d852,_0x163703,_0x4f9636,_0x16fc2d){return function(_0x527706){return new Promise(function(_0x568ae5,_0x58066b){var _0x1f3483=[];var _0x45fef8=_0x163703['Tags'];if(_0x45fef8&&_0x45fef8['length']>0x0){_0x1f3483=_['map'](_0x45fef8,_0x423e('0x39'));}if(_0x1f3483[_0x423e('0x1a')]>0x0){return manageTags(_0x55b7cf,_0x1f3483,_0x4245f4,_0x17d852,_0x527706,_0x4f9636,_0x16fc2d)[_0x423e('0xc')](function(){_0x568ae5(_0x527706);});}else{_0x568ae5(_0x527706);}});};}function emit(_0x4d9f21,_0x587022,_0x51720e){var _0x26a226=_0x423e('0x4c')+_0x423e('0x4d')+_0x423e('0x4e')+_0x423e('0x4f');var _0x58da24={'uri':_0x4d9f21+_0x423e('0x50')+_0x51720e+_0x26a226};io['to'](util[_0x423e('0x51')]('user:%s',_0x587022))[_0x423e('0x52')]('trigger:browser:url',_0x58da24);}exports['cs']=function(_0x326460,_0x395d7b,_0x3b9f7e,_0x361c85,_0x287fbe,_0x4dc626,_0x66c8f2,_0x448755){var _0x1be615={};var _0x1a71eb={'user':_0x4dc626[_0x423e('0x53')],'pass':_0x4dc626[_0x423e('0x54')]};var _0x1b7f2a=_0x423e('0x55');var _0x800791=_0x423e('0x56');_0x4dc626[_0x423e('0x57')]=intUtil[_0x423e('0x58')](_0x4dc626[_0x423e('0x57')]);_0x4dc626['serverUrl']=intUtil[_0x423e('0x58')](_0x4dc626[_0x423e('0x59')]);var _0x210970=util[_0x423e('0x51')](_0x423e('0x5a'),_0x4dc626[_0x423e('0x57')]);_0x1be615[_0x423e('0x16')]=!_[_0x423e('0x5b')](_0x361c85)?_0x361c85['email']:null;_0x1be615[_0x423e('0x1e')]=_0x4dc626[_0x423e('0x5c')];_0x1be615['endUserNumber']=_0x448755[_0x423e('0x33')]()===_0x423e('0x3b')?_0x395d7b[_0x423e('0x5d')]:_0x395d7b[_0x423e('0x5e')];_0x1be615[_0x423e('0x5f')]=_0x448755===_0x423e('0x60')||_0x448755==='unmanaged'?_0x423e('0x60'):_0x423e('0x3b');var _0x4556dc=util[_0x423e('0x51')](_0x423e('0x61'),_0x4dc626[_0x423e('0x59')],_0x395d7b[_0x423e('0x62')],md5(_0x395d7b[_0x423e('0x62')]));if(_0x287fbe&&_0x287fbe[_0x423e('0x63')]){logger[_0x423e('0x14')](_0x423e('0x64'),'Recording\x20is\x20enabled!');_0x395d7b[_0x423e('0x65')]=_0x4556dc;}else if(_0x66c8f2&&_0x66c8f2['recordingFormat']&&_0x66c8f2[_0x423e('0x66')]!=='none'){logger[_0x423e('0x14')](_0x423e('0x67'),_0x423e('0x68'));_0x395d7b['recordingURL']=_0x4556dc;}else{_0x395d7b['recordingURL']='';}return getAdminUser(_0x448755,_0x1a71eb,_0x1be615,_0x210970,_0x800791,_0x1b7f2a)[_0x423e('0xc')](getUser(_0x448755,_0x1a71eb,_0x210970,_0x800791,_0x1b7f2a))[_0x423e('0xc')](getEndUser(_0x448755,_0x1a71eb,_0x210970,_0x800791,_0x1b7f2a))[_0x423e('0xc')](getTicket(_0x448755,_0x1a71eb,_0x210970,_0x3b9f7e,_0x395d7b,_0x800791))[_0x423e('0xc')](function(_0x126088){logger[_0x423e('0x14')](util[_0x423e('0x51')](_0x423e('0x69'),_0x126088['ticketId']));logger[_0x423e('0x14')](util[_0x423e('0x51')]('call\x20direction:\x20%s',_0x448755));if(_0x448755!==_0x423e('0x6a')){logger['info']('['+[_0x448755[_0x423e('0x12')]()]+']',_0x423e('0x6b'));emit(_0x4dc626[_0x423e('0x57')],_0x361c85['name'],_0x126088[_0x423e('0x40')]);}})[_0x423e('0x10')](function(_0x1e7805){logger[_0x423e('0x11')]('['+[_0x448755[_0x423e('0x12')]()]+_0x423e('0x6c'),util[_0x423e('0x6d')](_0x1e7805,{'showHidden':!![],'depth':null}));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9cc=['forEach','push','idField','variableName','set_entry','stringify','Basic\x20%s','apiKey','toString','base64','get_server_info','JSON','isNil','Getting\x20agent\x20with\x20name','get_entry_list','Employees','format','user_name','then','entry_list','length','find','name_value_list','value','resolve','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','user_id','Agent\x20not\x20available,\x20using\x20the\x20admin\x20account!','contacts.phone_home\x20=\x20\x22%s\x22','phone_home','Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!','first_name','<unknown>','Caller\x20-\x20%s','Enduser\x20created.','debug','[HTTP]','map','type','string','customField','nameField','toLowerCase','content','custom_fields','variable','customVariable','Variable','password','PLAIN','sessionID','Account\x20%d\x20is\x20not\x20valid','set_relationship','queue','remoteUri','stripTrailingSlash','serverUrl','uri','%s/service/v4_1/rest.php','monitor_format','[QUEUE]','Recording\x20is\x20enabled!','recordingURL','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','The\x20User\x20ID\x20is:','The\x20Enduser\x20ID\x20is:','Fields','Inbound','The\x20Ticket\x20ID\x20is:','users','contacts','charAt','%s/index.php?action=ajaxui#ajaxUILoc=index.php%3Fmodule%3DCalls%26action%3DEditView%26record%3D%s','%s/#bwc/index.php?module=Calls&action=EditView&record=%s','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','trigger:browser:url','catch','error','recordingFormat','none','[OUTBOUND]','destcalleridnum','Outbound','Ticket\x20created!','version','user:%s','toUpperCase','calleridname','calleridnum','lastevent','lodash','request-promise','util','ioredis','./util','../../../../config/environment','../../../../config/logger','sugarcrm','redis','defaults','localhost','socket.io-emitter','POST','info','Creating\x20new\x20ticket...','name','getString','Subjects','created_by','description','Descriptions','toISOString','slice','replace','duration_minutes','parent_id','parent_type','Contacts','parent_name','direction'];(function(_0x40a045,_0x516f0e){var _0x1a687c=function(_0x48c9fe){while(--_0x48c9fe){_0x40a045['push'](_0x40a045['shift']());}};_0x1a687c(++_0x516f0e);}(_0xa9cc,0x14d));var _0xca9c=function(_0x5cc9cf,_0x7be987){_0x5cc9cf=_0x5cc9cf-0x0;var _0x3bb1d8=_0xa9cc[_0x5cc9cf];return _0x3bb1d8;};'use strict';var _=require(_0xca9c('0x0'));var rp=require(_0xca9c('0x1'));var BPromise=require('bluebird');var md5=require('md5');var util=require(_0xca9c('0x2'));var Redis=require(_0xca9c('0x3'));var intUtil=require(_0xca9c('0x4'));var config=require(_0xca9c('0x5'));var logger=require(_0xca9c('0x6'))(_0xca9c('0x7'));config[_0xca9c('0x8')]=_[_0xca9c('0x9')](config[_0xca9c('0x8')],{'host':_0xca9c('0xa'),'port':0x18eb});var io=require(_0xca9c('0xb'))(new Redis(config[_0xca9c('0x8')]));var def={'method':_0xca9c('0xc'),'json':!![]};function emit(_0x523b71,_0x2ed2e8,_0x1f3d55){io['to'](_0x523b71)['emit'](_0x2ed2e8,_0x1f3d55);}function getTicket(_0x5dda47,_0x446c94,_0x1851ca,_0x57681f,_0xa62b11,_0x37a283,_0x202388,_0x4756ce){logger[_0xca9c('0xd')](_0xca9c('0xe'));var _0x5d2aa0=new Date();var _0x4cd8c8=[{'name':_0xca9c('0xf'),'value':intUtil[_0xca9c('0x10')](_0x57681f[_0xca9c('0x11')],_0xa62b11,'\x20')},{'name':'assigned_user_id','value':_0x446c94['id']},{'name':_0xca9c('0x12'),'value':_0x446c94['id']},{'name':_0xca9c('0x13'),'value':intUtil[_0xca9c('0x10')](_0x57681f[_0xca9c('0x14')],_0xa62b11,'\x0a')},{'name':'date_start','value':_0x5d2aa0[_0xca9c('0x15')]()[_0xca9c('0x16')](0x0,0x13)[_0xca9c('0x17')]('T','\x20')},{'name':'duration_hours','value':'0'},{'name':_0xca9c('0x18'),'value':'15'},{'name':_0xca9c('0x19'),'value':_0x1851ca['id']},{'name':_0xca9c('0x1a'),'value':_0xca9c('0x1b')},{'name':_0xca9c('0x1c'),'value':_0x1851ca[_0xca9c('0xf')]},{'name':_0xca9c('0x1d'),'value':_0x4756ce}];if(_0x37a283['length']){_[_0xca9c('0x1e')](_0x37a283,function(_0x420345){if(_0xa62b11[_0x420345['variableName']]){_0x4cd8c8[_0xca9c('0x1f')]({'name':_0x420345[_0xca9c('0x20')],'value':_0xa62b11[_0x420345[_0xca9c('0x21')]]});}});}return request({'form':{'method':_0xca9c('0x22'),'input_type':'JSON','response_type':'JSON','rest_data':JSON[_0xca9c('0x23')]({'session':_0x202388['id'],'module_name':'Calls','name_value_list':_0x4cd8c8})}});}function getAuth(_0x1c228b){return util['format'](_0xca9c('0x24'),new Buffer(_0x1c228b[_0xca9c('0x25')]+':X')[_0xca9c('0x26')](_0xca9c('0x27')));}function getServerInfo(_0xff9841){return request({'form':{'method':_0xca9c('0x28'),'input_type':'JSON','response_type':_0xca9c('0x29'),'rest_data':JSON['stringify']({'session':_0xff9841['id']})}});}function getUser(_0x2f8b49,_0x5add3b,_0x170a75){if(!_[_0xca9c('0x2a')](_0x5add3b)){logger[_0xca9c('0xd')](_0xca9c('0x2b'),_0x5add3b);return request({'form':{'method':_0xca9c('0x2c'),'input_type':_0xca9c('0x29'),'response_type':'JSON','rest_data':JSON['stringify']({'session':_0x170a75['id'],'module_name':_0xca9c('0x2d'),'query':util[_0xca9c('0x2e')]('INSTR\x20(\x20users.user_name,\x20\x22%s\x22)\x20>\x200',_0x5add3b),'order_by':'','offset':'0','select_fields':['id','name',_0xca9c('0x2f')],'link_name_to_fields_array':[],'max_results':-0x1,'deleted':'0'})}})[_0xca9c('0x30')](function(_0x4eb49a){if(_0x4eb49a[_0xca9c('0x31')][_0xca9c('0x32')]){var _0xf5698a=_[_0xca9c('0x33')](_0x4eb49a[_0xca9c('0x31')],function(_0x5b9003){return _0x5b9003[_0xca9c('0x34')][_0xca9c('0x2f')][_0xca9c('0x35')]===_0x5add3b;});if(_0xf5698a){logger[_0xca9c('0xd')]('Agent\x20found!');return BPromise[_0xca9c('0x36')]({'id':_0xf5698a[_0xca9c('0x34')]['id'][_0xca9c('0x35')],'name':_0xf5698a['name_value_list'][_0xca9c('0xf')][_0xca9c('0x35')]});}}logger[_0xca9c('0xd')](_0xca9c('0x37'));return BPromise[_0xca9c('0x36')]({'id':_0x170a75[_0xca9c('0x34')][_0xca9c('0x38')][_0xca9c('0x35')],'name':_0x170a75[_0xca9c('0x34')][_0xca9c('0x2f')][_0xca9c('0x35')]});});}else{logger[_0xca9c('0xd')](_0xca9c('0x39'));return BPromise[_0xca9c('0x36')]({'id':_0x170a75[_0xca9c('0x34')]['user_id'][_0xca9c('0x35')],'name':_0x170a75[_0xca9c('0x34')][_0xca9c('0x2f')]['value']});}}function getEndUser(_0x5312f0,_0x2011fb,_0x57d7f4,_0x331945){logger[_0xca9c('0xd')]('Searching\x20enduser\x20with\x20phone',_0x57d7f4);return request({'form':{'method':_0xca9c('0x2c'),'input_type':'JSON','response_type':_0xca9c('0x29'),'rest_data':JSON['stringify']({'session':_0x331945['id'],'module_name':'Contacts','query':util[_0xca9c('0x2e')](_0xca9c('0x3a'),_0x57d7f4),'order_by':'','offset':'0','select_fields':['id','name',_0xca9c('0x3b')],'link_name_to_fields_array':[],'max_results':-0x1,'deleted':'0'})}})[_0xca9c('0x30')](function(_0x3be581){if(_0x3be581['entry_list'][_0xca9c('0x32')]){var _0x240008=_['find'](_0x3be581['entry_list'],function(_0x22b30a){return _0x22b30a[_0xca9c('0x34')]['phone_home']['value']===_0x57d7f4;});if(_0x240008){logger[_0xca9c('0xd')]('Enduser\x20found!');return BPromise[_0xca9c('0x36')]({'id':_0x240008[_0xca9c('0x34')]['id'][_0xca9c('0x35')],'name':_0x240008[_0xca9c('0x34')]['name'][_0xca9c('0x35')],'phone':_0x240008[_0xca9c('0x34')][_0xca9c('0x3b')][_0xca9c('0x35')]});}}else{logger[_0xca9c('0xd')](_0xca9c('0x3c'));return request({'form':{'method':_0xca9c('0x22'),'input_type':_0xca9c('0x29'),'response_type':_0xca9c('0x29'),'rest_data':JSON['stringify']({'session':_0x331945['id'],'module_name':_0xca9c('0x1b'),'name_value_list':[{'name':_0xca9c('0x3d'),'value':_0x2011fb!==_0xca9c('0x3e')?_0x2011fb:util[_0xca9c('0x2e')](_0xca9c('0x3f'),_0x57d7f4)},{'name':_0xca9c('0x3b'),'value':_0x57d7f4}]})}})[_0xca9c('0x30')](function(_0x4c6b4b){logger[_0xca9c('0xd')](_0xca9c('0x40'));return BPromise[_0xca9c('0x36')]({'id':_0x4c6b4b['id'],'name':_0x4c6b4b[_0xca9c('0x31')][_0xca9c('0x3d')][_0xca9c('0x35')],'phone':_0x4c6b4b[_0xca9c('0x31')][_0xca9c('0x3b')][_0xca9c('0x35')]});});}});}function request(_0x17e558){logger[_0xca9c('0x41')](_0xca9c('0x42'),JSON[_0xca9c('0x23')](_0x17e558));return rp(_['merge'](def,_0x17e558));}function getTags(_0x3a311f,_0x4f7e66){var _0x3d0d22=[];if(_0x3a311f&&_0x3a311f[_0xca9c('0x32')]>0x0){_0x3d0d22=_[_0xca9c('0x43')](_0x3a311f,_0x4f7e66);}return _0x3d0d22;}function getCustomFields(_0x3af3fb,_0x27619b){var _0x13dcfe=[];var _0x25e33f={'custom_fields':[]};if(_0x3af3fb[_0xca9c('0x32')]>0x0){_[_0xca9c('0x1e')](_0x3af3fb,function(_0x2bb2e9){if(_0x2bb2e9[_0xca9c('0x44')]===_0xca9c('0x45')&&_0x2bb2e9['nameField']&&!_0x2bb2e9[_0xca9c('0x46')]){_0x25e33f[_0x2bb2e9[_0xca9c('0x47')][_0xca9c('0x48')]()]=_0x2bb2e9[_0xca9c('0x49')][_0xca9c('0x26')]();}else if(_0x2bb2e9['type']===_0xca9c('0x45')&&_0x2bb2e9[_0xca9c('0x20')]&&_0x2bb2e9[_0xca9c('0x46')]){_0x25e33f[_0xca9c('0x4a')][_0xca9c('0x1f')]({'id':_0x2bb2e9[_0xca9c('0x20')],'value':_0x2bb2e9['content'][_0xca9c('0x26')]()});}else if(_0x2bb2e9['type']===_0xca9c('0x4b')&&_0x2bb2e9[_0xca9c('0x21')]&&_0x2bb2e9[_0xca9c('0x20')]&&_0x2bb2e9['customField']){_0x27619b[_0x2bb2e9[_0xca9c('0x21')]]&&_0x25e33f[_0xca9c('0x4a')][_0xca9c('0x1f')]({'id':_0x2bb2e9[_0xca9c('0x20')],'value':_0x27619b[_0x2bb2e9[_0xca9c('0x21')]][_0xca9c('0x26')]()});}else if(_0x2bb2e9[_0xca9c('0x44')]===_0xca9c('0x4c')&&_0x2bb2e9[_0xca9c('0x4d')]&&_0x2bb2e9[_0xca9c('0x4d')]['name']&&_0x2bb2e9[_0xca9c('0x20')]&&_0x2bb2e9[_0xca9c('0x46')]){_0x27619b[_0x2bb2e9[_0xca9c('0x4d')][_0xca9c('0xf')]['toLowerCase']()]&&_0x25e33f['custom_fields'][_0xca9c('0x1f')]({'id':_0x2bb2e9[_0xca9c('0x20')],'value':_0x27619b[_0x2bb2e9['Variable'][_0xca9c('0xf')][_0xca9c('0x48')]()][_0xca9c('0x26')]()});}});}return _0x25e33f;}function getConnection(_0xd46643){return request({'method':_0xca9c('0xc'),'form':{'method':'login','input_type':_0xca9c('0x29'),'response_type':_0xca9c('0x29'),'rest_data':JSON['stringify']({'user_auth':{'user_name':_0xd46643['username'],'password':_0xd46643[_0xca9c('0x4e')],'encryption':_0xca9c('0x4f')},'application':'xCALLY\x20Motion\x20integration'})}})[_0xca9c('0x30')](function(_0x5b7234){var _0x4ce59c=_0x5b7234;if(_0x4ce59c['id']){def[_0xca9c('0x50')]=_0x4ce59c['id'];return BPromise['resolve'](_0x4ce59c);}else{throw new Error(util[_0xca9c('0x2e')](_0xca9c('0x51'),_0xd46643['id']));}});}function setRelationship(_0xd98c8b,_0x469dd4,_0x4ddef5,_0x120146){return request({'form':{'method':_0xca9c('0x52'),'input_type':_0xca9c('0x29'),'response_type':_0xca9c('0x29'),'rest_data':JSON['stringify']({'session':_0xd98c8b['id'],'module_name':'Calls','module_id':_0x4ddef5['id'],'link_field_name':_0x120146,'related_ids':[_0x469dd4['id']],'name_value_list':[],'delete':0x0})}});}exports[_0xca9c('0x53')]=function(_0x5acd29,_0xce354e,_0x50135f,_0x5e64b2,_0x38bee4,_0xb22063){var _0x3180b1,_0x54935b,_0x1085f0,_0x2fbab6;_0xb22063[_0xca9c('0x54')]=intUtil[_0xca9c('0x55')](_0xb22063[_0xca9c('0x54')]);_0xb22063[_0xca9c('0x56')]=intUtil[_0xca9c('0x55')](_0xb22063[_0xca9c('0x56')]);def[_0xca9c('0x57')]=util[_0xca9c('0x2e')](_0xca9c('0x58'),_0xb22063['remoteUri']);if(_0x38bee4&&_0x38bee4[_0xca9c('0x59')]){logger[_0xca9c('0xd')](_0xca9c('0x5a'),_0xca9c('0x5b'));_0xce354e[_0xca9c('0x5c')]=util[_0xca9c('0x2e')](_0xca9c('0x5d'),_0xb22063[_0xca9c('0x56')],_0xce354e[_0xca9c('0x5e')],md5(_0xce354e['uniqueid']));}else{_0xce354e[_0xca9c('0x5c')]='';}return getConnection(_0xb22063)['then'](function(_0x2d3f75){_0x2fbab6=_0x2d3f75;return getUser(_0xb22063,_0x5e64b2[_0xca9c('0xf')],_0x2fbab6);})[_0xca9c('0x30')](function(_0xcf8f03){_0x3180b1=_0xcf8f03;logger['info'](_0xca9c('0x5f'),_0x3180b1['id']);return getEndUser(_0xb22063,_0xce354e['calleridname'],_0xce354e['calleridnum'],_0x2fbab6);})[_0xca9c('0x30')](function(_0x1e838f){_0x54935b=_0x1e838f;logger[_0xca9c('0xd')](_0xca9c('0x60'),_0x54935b['id']);return getTicket(_0xb22063,_0x3180b1,_0x54935b,_0x50135f,_0xce354e,_0x50135f[_0xca9c('0x61')],_0x2fbab6,_0xca9c('0x62'));})[_0xca9c('0x30')](function(_0x2abfe5){_0x1085f0=_0x2abfe5;logger[_0xca9c('0xd')]('Ticket\x20created!');logger[_0xca9c('0xd')](_0xca9c('0x63'),_0x1085f0['id']);return setRelationship(_0x2fbab6,_0x3180b1,_0x1085f0,_0xca9c('0x64'));})['then'](function(){return setRelationship(_0x2fbab6,_0x54935b,_0x1085f0,_0xca9c('0x65'));})[_0xca9c('0x30')](function(){return getServerInfo(_0x2fbab6);})[_0xca9c('0x30')](function(_0xf01427){var _0x1cb5ad=parseInt(_0xf01427['version'][_0xca9c('0x66')](0x0));var _0x5c3b44=util['format'](_0xca9c('0x67'),_0xb22063[_0xca9c('0x54')],_0x1085f0['id']);if(_0x1cb5ad>0x6){_0x5c3b44=util['format'](_0xca9c('0x68'),_0xb22063[_0xca9c('0x54')],_0x1085f0['id']);}logger['info']('[QUEUE]',_0xca9c('0x69'));emit(util['format']('user:%s',_0x5e64b2[_0xca9c('0xf')]),_0xca9c('0x6a'),{'uri':_0x5c3b44});})[_0xca9c('0x6b')](function(_0x530eaa){logger[_0xca9c('0x6c')](_0xca9c('0x5a'),JSON[_0xca9c('0x23')](_0x530eaa));});};exports['outbound']=function(_0x2054b0,_0x4861c4,_0x303b93,_0x25ab6b,_0x35fd08,_0xc939a5,_0x807776){var _0x5bff7a,_0x2248ab,_0x29c575,_0x3426c8;_0xc939a5[_0xca9c('0x54')]=intUtil['stripTrailingSlash'](_0xc939a5['remoteUri']);_0xc939a5[_0xca9c('0x56')]=intUtil[_0xca9c('0x55')](_0xc939a5[_0xca9c('0x56')]);def[_0xca9c('0x57')]=util['format'](_0xca9c('0x58'),_0xc939a5[_0xca9c('0x54')]);if(_0x807776&&_0x807776[_0xca9c('0x6d')]&&_0x807776[_0xca9c('0x6d')]!==_0xca9c('0x6e')){logger[_0xca9c('0xd')](_0xca9c('0x6f'),_0xca9c('0x5b'));_0x4861c4[_0xca9c('0x5c')]=util[_0xca9c('0x2e')](_0xca9c('0x5d'),_0xc939a5['serverUrl'],_0x4861c4[_0xca9c('0x5e')],md5(_0x4861c4['uniqueid']));}return getConnection(_0xc939a5)[_0xca9c('0x30')](function(_0x55afcc){_0x3426c8=_0x55afcc;return getUser(_0xc939a5,_0x25ab6b[_0xca9c('0xf')],_0x3426c8);})['then'](function(_0x5a3619){_0x5bff7a=_0x5a3619;logger[_0xca9c('0xd')](_0xca9c('0x5f'),_0x5bff7a['id']);return getEndUser(_0xc939a5,_0x4861c4['destcalleridname'],_0x4861c4[_0xca9c('0x70')],_0x3426c8);})[_0xca9c('0x30')](function(_0x1776b4){_0x2248ab=_0x1776b4;logger[_0xca9c('0xd')]('The\x20Enduser\x20ID\x20is:',_0x2248ab['id']);return getTicket(_0xc939a5,_0x5bff7a,_0x2248ab,_0x303b93,_0x4861c4,_0x303b93['Fields'],_0x3426c8,_0xca9c('0x71'));})[_0xca9c('0x30')](function(_0x506376){_0x29c575=_0x506376;logger[_0xca9c('0xd')](_0xca9c('0x72'));logger[_0xca9c('0xd')](_0xca9c('0x63'),_0x29c575['id']);return setRelationship(_0x3426c8,_0x5bff7a,_0x29c575,_0xca9c('0x64'));})[_0xca9c('0x30')](function(){return setRelationship(_0x3426c8,_0x2248ab,_0x29c575,_0xca9c('0x65'));})['then'](function(){return getServerInfo(_0x3426c8);})[_0xca9c('0x30')](function(_0x4424f8){var _0x21572c=parseInt(_0x4424f8[_0xca9c('0x73')][_0xca9c('0x66')](0x0));var _0x483c72=util[_0xca9c('0x2e')](_0xca9c('0x67'),_0xc939a5[_0xca9c('0x54')],_0x29c575['id']);if(_0x21572c>0x6){_0x483c72=util[_0xca9c('0x2e')](_0xca9c('0x68'),_0xc939a5[_0xca9c('0x54')],_0x29c575['id']);}logger[_0xca9c('0xd')](_0xca9c('0x6f'),_0xca9c('0x69'));emit(util[_0xca9c('0x2e')](_0xca9c('0x74'),_0x25ab6b[_0xca9c('0xf')]),_0xca9c('0x6a'),{'uri':_0x483c72});})[_0xca9c('0x6b')](function(_0x5b380d){logger['error'](_0xca9c('0x6f'),JSON[_0xca9c('0x23')](_0x5b380d));});};exports['unmanaged']=function(_0x51a40c,_0xb84cfb,_0x148d2a,_0x173598,_0x36626e,_0x43fb43){var _0x50470e,_0x3d893a,_0x7c921f,_0x47363a;_0x43fb43[_0xca9c('0x54')]=intUtil[_0xca9c('0x55')](_0x43fb43[_0xca9c('0x54')]);_0x43fb43[_0xca9c('0x56')]=intUtil['stripTrailingSlash'](_0x43fb43[_0xca9c('0x56')]);def[_0xca9c('0x57')]=util[_0xca9c('0x2e')](_0xca9c('0x58'),_0x43fb43[_0xca9c('0x54')]);if(_0x36626e&&_0x36626e['monitor_format']){logger['info']('['+_0xb84cfb['lastevent'][_0xca9c('0x75')]()+']',_0xca9c('0x5b'));_0xb84cfb[_0xca9c('0x5c')]=util['format'](_0xca9c('0x5d'),_0x43fb43['serverUrl'],_0xb84cfb[_0xca9c('0x5e')],md5(_0xb84cfb['uniqueid']));}else{_0xb84cfb[_0xca9c('0x5c')]='';}return getConnection(_0x43fb43)['then'](function(_0x3ed20e){_0x47363a=_0x3ed20e;if(!_[_0xca9c('0x2a')](_0x173598)){return getUser(_0x43fb43,_0x173598['name'],_0x47363a);}else{return getUser(_0x43fb43,null,_0x47363a);}})[_0xca9c('0x30')](function(_0x147820){_0x50470e=_0x147820;logger[_0xca9c('0xd')](_0xca9c('0x5f'),_0x50470e['id']);return getEndUser(_0x43fb43,_0xb84cfb[_0xca9c('0x76')],_0xb84cfb[_0xca9c('0x77')],_0x47363a);})[_0xca9c('0x30')](function(_0x4f2974){_0x3d893a=_0x4f2974;logger['info'](_0xca9c('0x60'),_0x3d893a['id']);return getTicket(_0x43fb43,_0x50470e,_0x3d893a,_0x148d2a,_0xb84cfb,_0x148d2a[_0xca9c('0x61')],_0x47363a,_0xca9c('0x62'));})['then'](function(_0x45c01d){_0x7c921f=_0x45c01d;logger[_0xca9c('0xd')](_0xca9c('0x72'));logger[_0xca9c('0xd')](_0xca9c('0x63'),_0x7c921f['id']);return setRelationship(_0x47363a,_0x50470e,_0x7c921f,'users');})['then'](function(){return setRelationship(_0x47363a,_0x3d893a,_0x7c921f,'contacts');})[_0xca9c('0x30')](function(){return getServerInfo(_0x47363a);})[_0xca9c('0x6b')](function(_0x68aab8){logger[_0xca9c('0x6c')]('['+_0xb84cfb[_0xca9c('0x78')][_0xca9c('0x75')]()+']',JSON['stringify'](_0x68aab8));});};
\ No newline at end of file
+var _0x1db5=['%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','destcalleridnum','Outbound','users','unmanaged','lastevent','toUpperCase','Inbound','lodash','bluebird','md5','util','ioredis','../../../../config/environment','../../../../config/logger','sugarcrm','defaults','redis','socket.io-emitter','POST','emit','info','assigned_user_id','created_by','description','getString','Descriptions','date_start','slice','replace','duration_hours','duration_minutes','parent_id','parent_type','Contacts','parent_name','direction','length','variableName','idField','set_entry','JSON','stringify','apiKey','toString','base64','get_server_info','isNil','Employees','format','INSTR\x20(\x20users.user_name,\x20\x22%s\x22)\x20>\x200','name','user_name','entry_list','find','name_value_list','Agent\x20found!','resolve','value','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','user_id','Agent\x20not\x20available,\x20using\x20the\x20admin\x20account!','get_entry_list','contacts.phone_home\x20=\x20\x22%s\x22','phone_home','then','Enduser\x20found!','Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!','first_name','Caller\x20-\x20%s','Enduser\x20created.','debug','[HTTP]','merge','map','forEach','nameField','customField','toLowerCase','content','type','string','push','variable','custom_fields','customVariable','Variable','login','username','password','PLAIN','xCALLY\x20Motion\x20integration','sessionID','Account\x20%d\x20is\x20not\x20valid','set_relationship','queue','remoteUri','serverUrl','stripTrailingSlash','uri','%s/service/v4_1/rest.php','monitor_format','Recording\x20is\x20enabled!','recordingURL','uniqueid','The\x20User\x20ID\x20is:','calleridname','The\x20Enduser\x20ID\x20is:','Fields','Ticket\x20created!','The\x20Ticket\x20ID\x20is:','contacts','version','charAt','%s/#bwc/index.php?module=Calls&action=EditView&record=%s','[QUEUE]','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','user:%s','trigger:browser:url','catch','error','outbound','recordingFormat','none','[OUTBOUND]'];(function(_0x40359a,_0xcb63b){var _0x5efc0c=function(_0x3517df){while(--_0x3517df){_0x40359a['push'](_0x40359a['shift']());}};_0x5efc0c(++_0xcb63b);}(_0x1db5,0x17f));var _0x51db=function(_0x24dea9,_0x1fb70e){_0x24dea9=_0x24dea9-0x0;var _0x3b26f2=_0x1db5[_0x24dea9];return _0x3b26f2;};'use strict';var _=require(_0x51db('0x0'));var rp=require('request-promise');var BPromise=require(_0x51db('0x1'));var md5=require(_0x51db('0x2'));var util=require(_0x51db('0x3'));var Redis=require(_0x51db('0x4'));var intUtil=require('./util');var config=require(_0x51db('0x5'));var logger=require(_0x51db('0x6'))(_0x51db('0x7'));config['redis']=_[_0x51db('0x8')](config[_0x51db('0x9')],{'host':'localhost','port':0x18eb});var io=require(_0x51db('0xa'))(new Redis(config[_0x51db('0x9')]));var def={'method':_0x51db('0xb'),'json':!![]};function emit(_0x249aad,_0x5ee9e6,_0x2e03c8){io['to'](_0x249aad)[_0x51db('0xc')](_0x5ee9e6,_0x2e03c8);}function getTicket(_0x1df3c5,_0x33a8db,_0x2083cb,_0x349264,_0x514644,_0x108cef,_0x511416,_0x539746){logger[_0x51db('0xd')]('Creating\x20new\x20ticket...');var _0xc62229=new Date();var _0x22c6ac=[{'name':'name','value':intUtil['getString'](_0x349264['Subjects'],_0x514644,'\x20')},{'name':_0x51db('0xe'),'value':_0x33a8db['id']},{'name':_0x51db('0xf'),'value':_0x33a8db['id']},{'name':_0x51db('0x10'),'value':intUtil[_0x51db('0x11')](_0x349264[_0x51db('0x12')],_0x514644,'\x0a')},{'name':_0x51db('0x13'),'value':_0xc62229['toISOString']()[_0x51db('0x14')](0x0,0x13)[_0x51db('0x15')]('T','\x20')},{'name':_0x51db('0x16'),'value':'0'},{'name':_0x51db('0x17'),'value':'15'},{'name':_0x51db('0x18'),'value':_0x2083cb['id']},{'name':_0x51db('0x19'),'value':_0x51db('0x1a')},{'name':_0x51db('0x1b'),'value':_0x2083cb['name']},{'name':_0x51db('0x1c'),'value':_0x539746}];if(_0x108cef[_0x51db('0x1d')]){_['forEach'](_0x108cef,function(_0x372c4b){if(_0x514644[_0x372c4b[_0x51db('0x1e')]]){_0x22c6ac['push']({'name':_0x372c4b[_0x51db('0x1f')],'value':_0x514644[_0x372c4b[_0x51db('0x1e')]]});}});}return request({'form':{'method':_0x51db('0x20'),'input_type':_0x51db('0x21'),'response_type':'JSON','rest_data':JSON[_0x51db('0x22')]({'session':_0x511416['id'],'module_name':'Calls','name_value_list':_0x22c6ac})}});}function getAuth(_0x242254){return util['format']('Basic\x20%s',new Buffer(_0x242254[_0x51db('0x23')]+':X')[_0x51db('0x24')](_0x51db('0x25')));}function getServerInfo(_0x5a763b){return request({'form':{'method':_0x51db('0x26'),'input_type':'JSON','response_type':'JSON','rest_data':JSON[_0x51db('0x22')]({'session':_0x5a763b['id']})}});}function getUser(_0x3d3dec,_0x6f34b5,_0x1b5f24){if(!_[_0x51db('0x27')](_0x6f34b5)){logger['info']('Getting\x20agent\x20with\x20name',_0x6f34b5);return request({'form':{'method':'get_entry_list','input_type':'JSON','response_type':_0x51db('0x21'),'rest_data':JSON[_0x51db('0x22')]({'session':_0x1b5f24['id'],'module_name':_0x51db('0x28'),'query':util[_0x51db('0x29')](_0x51db('0x2a'),_0x6f34b5),'order_by':'','offset':'0','select_fields':['id',_0x51db('0x2b'),_0x51db('0x2c')],'link_name_to_fields_array':[],'max_results':-0x1,'deleted':'0'})}})['then'](function(_0x1dfe67){if(_0x1dfe67[_0x51db('0x2d')][_0x51db('0x1d')]){var _0x215942=_[_0x51db('0x2e')](_0x1dfe67[_0x51db('0x2d')],function(_0x4d0570){return _0x4d0570[_0x51db('0x2f')][_0x51db('0x2c')]['value']===_0x6f34b5;});if(_0x215942){logger[_0x51db('0xd')](_0x51db('0x30'));return BPromise[_0x51db('0x31')]({'id':_0x215942['name_value_list']['id'][_0x51db('0x32')],'name':_0x215942[_0x51db('0x2f')][_0x51db('0x2b')][_0x51db('0x32')]});}}logger[_0x51db('0xd')](_0x51db('0x33'));return BPromise[_0x51db('0x31')]({'id':_0x1b5f24['name_value_list'][_0x51db('0x34')][_0x51db('0x32')],'name':_0x1b5f24['name_value_list']['user_name'][_0x51db('0x32')]});});}else{logger[_0x51db('0xd')](_0x51db('0x35'));return BPromise[_0x51db('0x31')]({'id':_0x1b5f24[_0x51db('0x2f')][_0x51db('0x34')]['value'],'name':_0x1b5f24['name_value_list'][_0x51db('0x2c')][_0x51db('0x32')]});}}function getEndUser(_0x112e93,_0x4c733c,_0x1544af,_0x289fdd){logger['info']('Searching\x20enduser\x20with\x20phone',_0x1544af);return request({'form':{'method':_0x51db('0x36'),'input_type':_0x51db('0x21'),'response_type':_0x51db('0x21'),'rest_data':JSON[_0x51db('0x22')]({'session':_0x289fdd['id'],'module_name':_0x51db('0x1a'),'query':util[_0x51db('0x29')](_0x51db('0x37'),_0x1544af),'order_by':'','offset':'0','select_fields':['id','name',_0x51db('0x38')],'link_name_to_fields_array':[],'max_results':-0x1,'deleted':'0'})}})[_0x51db('0x39')](function(_0x39acc8){if(_0x39acc8[_0x51db('0x2d')]['length']){var _0x39ca82=_[_0x51db('0x2e')](_0x39acc8[_0x51db('0x2d')],function(_0x56b345){return _0x56b345[_0x51db('0x2f')][_0x51db('0x38')][_0x51db('0x32')]===_0x1544af;});if(_0x39ca82){logger[_0x51db('0xd')](_0x51db('0x3a'));return BPromise[_0x51db('0x31')]({'id':_0x39ca82[_0x51db('0x2f')]['id'][_0x51db('0x32')],'name':_0x39ca82[_0x51db('0x2f')][_0x51db('0x2b')][_0x51db('0x32')],'phone':_0x39ca82[_0x51db('0x2f')][_0x51db('0x38')]['value']});}}else{logger[_0x51db('0xd')](_0x51db('0x3b'));return request({'form':{'method':_0x51db('0x20'),'input_type':_0x51db('0x21'),'response_type':_0x51db('0x21'),'rest_data':JSON[_0x51db('0x22')]({'session':_0x289fdd['id'],'module_name':'Contacts','name_value_list':[{'name':_0x51db('0x3c'),'value':_0x4c733c!=='<unknown>'?_0x4c733c:util[_0x51db('0x29')](_0x51db('0x3d'),_0x1544af)},{'name':_0x51db('0x38'),'value':_0x1544af}]})}})[_0x51db('0x39')](function(_0x231c24){logger[_0x51db('0xd')](_0x51db('0x3e'));return BPromise[_0x51db('0x31')]({'id':_0x231c24['id'],'name':_0x231c24[_0x51db('0x2d')][_0x51db('0x3c')][_0x51db('0x32')],'phone':_0x231c24[_0x51db('0x2d')][_0x51db('0x38')][_0x51db('0x32')]});});}});}function request(_0x4f3bcc){logger[_0x51db('0x3f')](_0x51db('0x40'),JSON['stringify'](_0x4f3bcc));return rp(_[_0x51db('0x41')](def,_0x4f3bcc));}function getTags(_0x4c0c73,_0x395e48){var _0x43fc42=[];if(_0x4c0c73&&_0x4c0c73[_0x51db('0x1d')]>0x0){_0x43fc42=_[_0x51db('0x42')](_0x4c0c73,_0x395e48);}return _0x43fc42;}function getCustomFields(_0x510e36,_0x4f641b){var _0x33f748=[];var _0x5e3d3e={'custom_fields':[]};if(_0x510e36[_0x51db('0x1d')]>0x0){_[_0x51db('0x43')](_0x510e36,function(_0x2e4fb0){if(_0x2e4fb0['type']==='string'&&_0x2e4fb0[_0x51db('0x44')]&&!_0x2e4fb0[_0x51db('0x45')]){_0x5e3d3e[_0x2e4fb0['nameField'][_0x51db('0x46')]()]=_0x2e4fb0[_0x51db('0x47')][_0x51db('0x24')]();}else if(_0x2e4fb0[_0x51db('0x48')]===_0x51db('0x49')&&_0x2e4fb0[_0x51db('0x1f')]&&_0x2e4fb0['customField']){_0x5e3d3e['custom_fields'][_0x51db('0x4a')]({'id':_0x2e4fb0[_0x51db('0x1f')],'value':_0x2e4fb0[_0x51db('0x47')][_0x51db('0x24')]()});}else if(_0x2e4fb0[_0x51db('0x48')]===_0x51db('0x4b')&&_0x2e4fb0[_0x51db('0x1e')]&&_0x2e4fb0['idField']&&_0x2e4fb0['customField']){_0x4f641b[_0x2e4fb0[_0x51db('0x1e')]]&&_0x5e3d3e[_0x51db('0x4c')][_0x51db('0x4a')]({'id':_0x2e4fb0[_0x51db('0x1f')],'value':_0x4f641b[_0x2e4fb0[_0x51db('0x1e')]][_0x51db('0x24')]()});}else if(_0x2e4fb0[_0x51db('0x48')]===_0x51db('0x4d')&&_0x2e4fb0[_0x51db('0x4e')]&&_0x2e4fb0[_0x51db('0x4e')][_0x51db('0x2b')]&&_0x2e4fb0[_0x51db('0x1f')]&&_0x2e4fb0[_0x51db('0x45')]){_0x4f641b[_0x2e4fb0[_0x51db('0x4e')]['name'][_0x51db('0x46')]()]&&_0x5e3d3e[_0x51db('0x4c')][_0x51db('0x4a')]({'id':_0x2e4fb0[_0x51db('0x1f')],'value':_0x4f641b[_0x2e4fb0[_0x51db('0x4e')]['name'][_0x51db('0x46')]()][_0x51db('0x24')]()});}});}return _0x5e3d3e;}function getConnection(_0xf4e1d6){return request({'method':'POST','form':{'method':_0x51db('0x4f'),'input_type':_0x51db('0x21'),'response_type':_0x51db('0x21'),'rest_data':JSON[_0x51db('0x22')]({'user_auth':{'user_name':_0xf4e1d6[_0x51db('0x50')],'password':_0xf4e1d6[_0x51db('0x51')],'encryption':_0x51db('0x52')},'application':_0x51db('0x53')})}})['then'](function(_0x99b0bf){var _0x57c526=_0x99b0bf;if(_0x57c526['id']){def[_0x51db('0x54')]=_0x57c526['id'];return BPromise[_0x51db('0x31')](_0x57c526);}else{throw new Error(util[_0x51db('0x29')](_0x51db('0x55'),_0xf4e1d6['id']));}});}function setRelationship(_0x264e53,_0x55b290,_0x27973a,_0xdd2349){return request({'form':{'method':_0x51db('0x56'),'input_type':_0x51db('0x21'),'response_type':_0x51db('0x21'),'rest_data':JSON['stringify']({'session':_0x264e53['id'],'module_name':'Calls','module_id':_0x27973a['id'],'link_field_name':_0xdd2349,'related_ids':[_0x55b290['id']],'name_value_list':[],'delete':0x0})}});}exports[_0x51db('0x57')]=function(_0x247b88,_0x4e901c,_0x4d3158,_0x127d40,_0x414027,_0x5b5225){var _0x4e3a60,_0x25720a,_0xd54634,_0x3b0ef2;_0x5b5225[_0x51db('0x58')]=intUtil['stripTrailingSlash'](_0x5b5225[_0x51db('0x58')]);_0x5b5225[_0x51db('0x59')]=intUtil[_0x51db('0x5a')](_0x5b5225['serverUrl']);def[_0x51db('0x5b')]=util[_0x51db('0x29')](_0x51db('0x5c'),_0x5b5225[_0x51db('0x58')]);if(_0x414027&&_0x414027[_0x51db('0x5d')]){logger[_0x51db('0xd')]('[QUEUE]',_0x51db('0x5e'));_0x4e901c[_0x51db('0x5f')]=util[_0x51db('0x29')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x5b5225[_0x51db('0x59')],_0x4e901c[_0x51db('0x60')],md5(_0x4e901c[_0x51db('0x60')]));}else{_0x4e901c[_0x51db('0x5f')]='';}return getConnection(_0x5b5225)[_0x51db('0x39')](function(_0x1ca2b1){_0x3b0ef2=_0x1ca2b1;return getUser(_0x5b5225,_0x127d40[_0x51db('0x2b')],_0x3b0ef2);})[_0x51db('0x39')](function(_0xfc2258){_0x4e3a60=_0xfc2258;logger[_0x51db('0xd')](_0x51db('0x61'),_0x4e3a60['id']);return getEndUser(_0x5b5225,_0x4e901c[_0x51db('0x62')],_0x4e901c['calleridnum'],_0x3b0ef2);})['then'](function(_0x147dd3){_0x25720a=_0x147dd3;logger[_0x51db('0xd')](_0x51db('0x63'),_0x25720a['id']);return getTicket(_0x5b5225,_0x4e3a60,_0x25720a,_0x4d3158,_0x4e901c,_0x4d3158[_0x51db('0x64')],_0x3b0ef2,'Inbound');})[_0x51db('0x39')](function(_0x4e3d68){_0xd54634=_0x4e3d68;logger[_0x51db('0xd')](_0x51db('0x65'));logger['info'](_0x51db('0x66'),_0xd54634['id']);return setRelationship(_0x3b0ef2,_0x4e3a60,_0xd54634,'users');})[_0x51db('0x39')](function(){return setRelationship(_0x3b0ef2,_0x25720a,_0xd54634,_0x51db('0x67'));})['then'](function(){return getServerInfo(_0x3b0ef2);})[_0x51db('0x39')](function(_0x4cb60a){var _0x1e1ada=parseInt(_0x4cb60a[_0x51db('0x68')][_0x51db('0x69')](0x0));var _0xd67ffa=util[_0x51db('0x29')]('%s/index.php?action=ajaxui#ajaxUILoc=index.php%3Fmodule%3DCalls%26action%3DEditView%26record%3D%s',_0x5b5225[_0x51db('0x58')],_0xd54634['id']);if(_0x1e1ada>0x6){_0xd67ffa=util['format'](_0x51db('0x6a'),_0x5b5225[_0x51db('0x58')],_0xd54634['id']);}logger[_0x51db('0xd')](_0x51db('0x6b'),_0x51db('0x6c'));emit(util[_0x51db('0x29')](_0x51db('0x6d'),_0x127d40[_0x51db('0x2b')]),_0x51db('0x6e'),{'uri':_0xd67ffa});})[_0x51db('0x6f')](function(_0x5dec55){logger[_0x51db('0x70')](_0x51db('0x6b'),JSON[_0x51db('0x22')](_0x5dec55));});};exports[_0x51db('0x71')]=function(_0xe033f9,_0xa3d1a6,_0x556ecd,_0x58c3ae,_0x419b5e,_0x4eb2fe,_0x5eaead){var _0x35c46b,_0x5ee2c9,_0x5dde58,_0x3ed9ad;_0x4eb2fe[_0x51db('0x58')]=intUtil[_0x51db('0x5a')](_0x4eb2fe[_0x51db('0x58')]);_0x4eb2fe[_0x51db('0x59')]=intUtil[_0x51db('0x5a')](_0x4eb2fe['serverUrl']);def[_0x51db('0x5b')]=util[_0x51db('0x29')](_0x51db('0x5c'),_0x4eb2fe[_0x51db('0x58')]);if(_0x5eaead&&_0x5eaead[_0x51db('0x72')]&&_0x5eaead[_0x51db('0x72')]!==_0x51db('0x73')){logger[_0x51db('0xd')](_0x51db('0x74'),_0x51db('0x5e'));_0xa3d1a6['recordingURL']=util[_0x51db('0x29')](_0x51db('0x75'),_0x4eb2fe[_0x51db('0x59')],_0xa3d1a6[_0x51db('0x60')],md5(_0xa3d1a6['uniqueid']));}return getConnection(_0x4eb2fe)['then'](function(_0x1205b1){_0x3ed9ad=_0x1205b1;return getUser(_0x4eb2fe,_0x58c3ae[_0x51db('0x2b')],_0x3ed9ad);})[_0x51db('0x39')](function(_0x590e66){_0x35c46b=_0x590e66;logger[_0x51db('0xd')](_0x51db('0x61'),_0x35c46b['id']);return getEndUser(_0x4eb2fe,_0xa3d1a6['destcalleridname'],_0xa3d1a6[_0x51db('0x76')],_0x3ed9ad);})[_0x51db('0x39')](function(_0x573bdf){_0x5ee2c9=_0x573bdf;logger[_0x51db('0xd')](_0x51db('0x63'),_0x5ee2c9['id']);return getTicket(_0x4eb2fe,_0x35c46b,_0x5ee2c9,_0x556ecd,_0xa3d1a6,_0x556ecd['Fields'],_0x3ed9ad,_0x51db('0x77'));})[_0x51db('0x39')](function(_0x3ec7aa){_0x5dde58=_0x3ec7aa;logger[_0x51db('0xd')](_0x51db('0x65'));logger['info'](_0x51db('0x66'),_0x5dde58['id']);return setRelationship(_0x3ed9ad,_0x35c46b,_0x5dde58,_0x51db('0x78'));})['then'](function(){return setRelationship(_0x3ed9ad,_0x5ee2c9,_0x5dde58,_0x51db('0x67'));})[_0x51db('0x39')](function(){return getServerInfo(_0x3ed9ad);})[_0x51db('0x39')](function(_0x310339){var _0x2eced9=parseInt(_0x310339[_0x51db('0x68')][_0x51db('0x69')](0x0));var _0x4f4ae8=util['format']('%s/index.php?action=ajaxui#ajaxUILoc=index.php%3Fmodule%3DCalls%26action%3DEditView%26record%3D%s',_0x4eb2fe[_0x51db('0x58')],_0x5dde58['id']);if(_0x2eced9>0x6){_0x4f4ae8=util[_0x51db('0x29')](_0x51db('0x6a'),_0x4eb2fe[_0x51db('0x58')],_0x5dde58['id']);}logger[_0x51db('0xd')](_0x51db('0x74'),_0x51db('0x6c'));emit(util[_0x51db('0x29')](_0x51db('0x6d'),_0x58c3ae[_0x51db('0x2b')]),_0x51db('0x6e'),{'uri':_0x4f4ae8});})[_0x51db('0x6f')](function(_0x4a25c2){logger[_0x51db('0x70')](_0x51db('0x74'),JSON[_0x51db('0x22')](_0x4a25c2));});};exports[_0x51db('0x79')]=function(_0x579ea4,_0x49f031,_0x4636c5,_0x2fa6bb,_0x35d386,_0x52ec4b){var _0x1f644e,_0x2e6197,_0x4ae672,_0x211cfa;_0x52ec4b['remoteUri']=intUtil[_0x51db('0x5a')](_0x52ec4b[_0x51db('0x58')]);_0x52ec4b[_0x51db('0x59')]=intUtil[_0x51db('0x5a')](_0x52ec4b[_0x51db('0x59')]);def['uri']=util[_0x51db('0x29')]('%s/service/v4_1/rest.php',_0x52ec4b[_0x51db('0x58')]);if(_0x35d386&&_0x35d386['monitor_format']){logger[_0x51db('0xd')]('['+_0x49f031[_0x51db('0x7a')][_0x51db('0x7b')]()+']','Recording\x20is\x20enabled!');_0x49f031[_0x51db('0x5f')]=util[_0x51db('0x29')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x52ec4b[_0x51db('0x59')],_0x49f031[_0x51db('0x60')],md5(_0x49f031[_0x51db('0x60')]));}else{_0x49f031['recordingURL']='';}return getConnection(_0x52ec4b)[_0x51db('0x39')](function(_0x227116){_0x211cfa=_0x227116;if(!_[_0x51db('0x27')](_0x2fa6bb)){return getUser(_0x52ec4b,_0x2fa6bb[_0x51db('0x2b')],_0x211cfa);}else{return getUser(_0x52ec4b,null,_0x211cfa);}})[_0x51db('0x39')](function(_0x3af58a){_0x1f644e=_0x3af58a;logger[_0x51db('0xd')](_0x51db('0x61'),_0x1f644e['id']);return getEndUser(_0x52ec4b,_0x49f031[_0x51db('0x62')],_0x49f031['calleridnum'],_0x211cfa);})[_0x51db('0x39')](function(_0x3f839a){_0x2e6197=_0x3f839a;logger['info'](_0x51db('0x63'),_0x2e6197['id']);return getTicket(_0x52ec4b,_0x1f644e,_0x2e6197,_0x4636c5,_0x49f031,_0x4636c5[_0x51db('0x64')],_0x211cfa,_0x51db('0x7c'));})[_0x51db('0x39')](function(_0x10f4d0){_0x4ae672=_0x10f4d0;logger[_0x51db('0xd')](_0x51db('0x65'));logger[_0x51db('0xd')](_0x51db('0x66'),_0x4ae672['id']);return setRelationship(_0x211cfa,_0x1f644e,_0x4ae672,_0x51db('0x78'));})[_0x51db('0x39')](function(){return setRelationship(_0x211cfa,_0x2e6197,_0x4ae672,'contacts');})[_0x51db('0x39')](function(){return getServerInfo(_0x211cfa);})[_0x51db('0x6f')](function(_0x5d3ab0){logger[_0x51db('0x70')]('['+_0x49f031[_0x51db('0x7a')]['toUpperCase']()+']',JSON[_0x51db('0x22')](_0x5d3ab0));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2a08=['length','sortBy','type','string','push','content','variableName','toString','Variable','name','toLowerCase','keyValue','key','format','%s:\x20%s','keyContent','keyType','variable','join','stripTrailingSlash','slice','substring','lastIndexOf','validateEmail','isNil','lodash','util','getString'];(function(_0x1a6cb8,_0x431948){var _0x524e8c=function(_0x2febf8){while(--_0x2febf8){_0x1a6cb8['push'](_0x1a6cb8['shift']());}};_0x524e8c(++_0x431948);}(_0x2a08,0x185));var _0x82a0=function(_0x3e5086,_0x48f4a2){_0x3e5086=_0x3e5086-0x0;var _0xfeb102=_0x2a08[_0x3e5086];return _0xfeb102;};'use strict';var _=require(_0x82a0('0x0'));var util=require(_0x82a0('0x1'));exports[_0x82a0('0x2')]=function(_0x2a6ab0,_0x419df5,_0x30b3b5){var _0x372edf=[];if(_0x2a6ab0[_0x82a0('0x3')]>0x0){var _0x27cfb3=_[_0x82a0('0x4')](_0x2a6ab0,['id']);for(var _0x3ee837=0x0;_0x3ee837<_0x27cfb3[_0x82a0('0x3')];_0x3ee837++){var _0x7d0dc8=_0x27cfb3[_0x3ee837];if(_0x7d0dc8[_0x82a0('0x5')]===_0x82a0('0x6')){_0x372edf[_0x82a0('0x7')](_0x7d0dc8[_0x82a0('0x8')]);}else if(_0x7d0dc8[_0x82a0('0x5')]==='variable'&&_0x7d0dc8[_0x82a0('0x9')]){_0x419df5[_0x7d0dc8[_0x82a0('0x9')]]&&_0x372edf['push'](_0x419df5[_0x7d0dc8['variableName']][_0x82a0('0xa')]());}else if(_0x7d0dc8['type']==='customVariable'&&_0x7d0dc8[_0x82a0('0xb')]&&_0x7d0dc8[_0x82a0('0xb')][_0x82a0('0xc')]){_0x419df5[_0x7d0dc8[_0x82a0('0xb')][_0x82a0('0xc')][_0x82a0('0xd')]()]&&_0x372edf[_0x82a0('0x7')](_0x419df5[_0x7d0dc8[_0x82a0('0xb')][_0x82a0('0xc')][_0x82a0('0xd')]()][_0x82a0('0xa')]());}else if(_0x7d0dc8['type']===_0x82a0('0xe')){if(_0x7d0dc8['keyType']===_0x82a0('0x6')&&_0x7d0dc8[_0x82a0('0xf')]){_0x372edf[_0x82a0('0x7')](util[_0x82a0('0x10')](_0x82a0('0x11'),_0x7d0dc8[_0x82a0('0xf')],_0x7d0dc8[_0x82a0('0x12')]));}else if(_0x7d0dc8[_0x82a0('0x13')]===_0x82a0('0x14')&&_0x7d0dc8['variableName']&&_0x7d0dc8[_0x82a0('0xf')]){_0x419df5[_0x7d0dc8[_0x82a0('0x9')]]&&_0x372edf[_0x82a0('0x7')](util['format'](_0x82a0('0x11'),_0x7d0dc8[_0x82a0('0xf')],_0x419df5[_0x7d0dc8[_0x82a0('0x9')]]));}else if(_0x7d0dc8[_0x82a0('0x13')]==='customVariable'&&_0x7d0dc8[_0x82a0('0xb')]&&_0x7d0dc8[_0x82a0('0xb')][_0x82a0('0xc')]&&_0x7d0dc8['key']){_0x419df5[_0x7d0dc8[_0x82a0('0xb')]['name'][_0x82a0('0xd')]()]&&_0x372edf[_0x82a0('0x7')](util[_0x82a0('0x10')]('%s:\x20%s',_0x7d0dc8[_0x82a0('0xf')],_0x419df5[_0x7d0dc8['Variable']['name'][_0x82a0('0xd')]()]));}}}}return _0x372edf[_0x82a0('0x15')](_0x30b3b5);};exports[_0x82a0('0x16')]=function(_0x311f5c){var _0x1215c8=_0x311f5c[_0x82a0('0x17')](-0x1);if(_0x1215c8==='/'){_0x311f5c=_0x311f5c[_0x82a0('0x18')](0x0,_0x311f5c[_0x82a0('0x19')](_0x1215c8));}return _0x311f5c;};exports[_0x82a0('0x1a')]=function(_0x512a94){if(!_[_0x82a0('0x1b')](_0x512a94)&&_0x512a94!==''){var _0x5162aa=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;return _0x5162aa['test'](String(_0x512a94)[_0x82a0('0xd')]());}else{return![];}};
\ No newline at end of file
+var _0xd97b=['format','%s:\x20%s','keyContent','join','stripTrailingSlash','substring','lastIndexOf','test','lodash','getString','length','string','push','content','type','variable','variableName','toString','customVariable','Variable','name','toLowerCase','keyValue','keyType','key'];(function(_0x1fbac7,_0x4282b6){var _0x562537=function(_0x2490db){while(--_0x2490db){_0x1fbac7['push'](_0x1fbac7['shift']());}};_0x562537(++_0x4282b6);}(_0xd97b,0x1e3));var _0xbd97=function(_0x2ea5f3,_0x1ffbf0){_0x2ea5f3=_0x2ea5f3-0x0;var _0xb2fb9b=_0xd97b[_0x2ea5f3];return _0xb2fb9b;};'use strict';var _=require(_0xbd97('0x0'));var util=require('util');exports[_0xbd97('0x1')]=function(_0x290284,_0x1a473e,_0x35ed1b){var _0x3ecd31=[];if(_0x290284['length']>0x0){var _0x213bcb=_['sortBy'](_0x290284,['id']);for(var _0x22867e=0x0;_0x22867e<_0x213bcb[_0xbd97('0x2')];_0x22867e++){var _0x1443c9=_0x213bcb[_0x22867e];if(_0x1443c9['type']===_0xbd97('0x3')){_0x3ecd31[_0xbd97('0x4')](_0x1443c9[_0xbd97('0x5')]);}else if(_0x1443c9[_0xbd97('0x6')]===_0xbd97('0x7')&&_0x1443c9[_0xbd97('0x8')]){_0x1a473e[_0x1443c9[_0xbd97('0x8')]]&&_0x3ecd31['push'](_0x1a473e[_0x1443c9[_0xbd97('0x8')]][_0xbd97('0x9')]());}else if(_0x1443c9[_0xbd97('0x6')]===_0xbd97('0xa')&&_0x1443c9[_0xbd97('0xb')]&&_0x1443c9[_0xbd97('0xb')][_0xbd97('0xc')]){_0x1a473e[_0x1443c9[_0xbd97('0xb')][_0xbd97('0xc')][_0xbd97('0xd')]()]&&_0x3ecd31[_0xbd97('0x4')](_0x1a473e[_0x1443c9[_0xbd97('0xb')][_0xbd97('0xc')][_0xbd97('0xd')]()]['toString']());}else if(_0x1443c9[_0xbd97('0x6')]===_0xbd97('0xe')){if(_0x1443c9[_0xbd97('0xf')]===_0xbd97('0x3')&&_0x1443c9[_0xbd97('0x10')]){_0x3ecd31[_0xbd97('0x4')](util[_0xbd97('0x11')](_0xbd97('0x12'),_0x1443c9['key'],_0x1443c9[_0xbd97('0x13')]));}else if(_0x1443c9['keyType']===_0xbd97('0x7')&&_0x1443c9[_0xbd97('0x8')]&&_0x1443c9['key']){_0x1a473e[_0x1443c9[_0xbd97('0x8')]]&&_0x3ecd31[_0xbd97('0x4')](util[_0xbd97('0x11')](_0xbd97('0x12'),_0x1443c9[_0xbd97('0x10')],_0x1a473e[_0x1443c9[_0xbd97('0x8')]]));}else if(_0x1443c9['keyType']===_0xbd97('0xa')&&_0x1443c9['Variable']&&_0x1443c9[_0xbd97('0xb')][_0xbd97('0xc')]&&_0x1443c9[_0xbd97('0x10')]){_0x1a473e[_0x1443c9[_0xbd97('0xb')]['name'][_0xbd97('0xd')]()]&&_0x3ecd31[_0xbd97('0x4')](util['format'](_0xbd97('0x12'),_0x1443c9[_0xbd97('0x10')],_0x1a473e[_0x1443c9[_0xbd97('0xb')][_0xbd97('0xc')]['toLowerCase']()]));}}}}return _0x3ecd31[_0xbd97('0x14')](_0x35ed1b);};exports[_0xbd97('0x15')]=function(_0x4a43e1){var _0x23389e=_0x4a43e1['slice'](-0x1);if(_0x23389e==='/'){_0x4a43e1=_0x4a43e1[_0xbd97('0x16')](0x0,_0x4a43e1[_0xbd97('0x17')](_0x23389e));}return _0x4a43e1;};exports['validateEmail']=function(_0x679f12){if(!_['isNil'](_0x679f12)&&_0x679f12!==''){var _0x59fab3=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;return _0x59fab3[_0xbd97('0x18')](String(_0x679f12)[_0xbd97('0xd')]());}else{return![];}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['variable','variableName','customVariable','Variable','name','toLowerCase','info','Creating\x20new\x20ticket...','Normal','Open','Subjects','POST','format','%s/webservice.php','create','username','sessionName','HelpDesk','stringify','then','result','Ticket\x20could\x20not\x20be\x20created\x20due\x20to:\x20%s','catch','error','[vTiger],\x20%s,\x20%s,\x20%s','createTicket','validateEmail','Getting\x20agent\x20with\x20email','GET','query','SELECT\x20first_name,\x20last_name,\x20email1\x20FROM\x20Users\x20WHERE\x20email1=\x27%s\x27;','success','resolve','email1','last_name','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','userId','admin','statusCode','getUser','Searching\x20end\x20user\x20with\x20phone','remoteUri','SELECT\x20id,\x20firstname,\x20lastname,\x20email,\x20phone,\x20mobile,\x20homephone,\x20otherphone,\x20assistantphone\x20FROM\x20Contacts\x20WHERE\x20phone\x20=\x20\x27%s\x27\x20OR\x20mobile\x20=\x27%s\x27\x20OR\x20homephone\x20=\x27%s\x27\x20OR\x20otherphone\x20=\x27%s\x27\x20OR\x20assistantphone\x20=\x27%s\x27;','Enduser\x20found!','firstname','lastname','Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!','Contacts','Enduser\x20created.','phone','getEndUser','accessKey','getchallenge','login','token','Account\x20%d\x20is\x20not\x20valid','[HTTP]','queue','stripTrailingSlash','[QUEUE]','recordingURL','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','serverUrl','uniqueid','The\x20User\x20ID\x20is:','calleridnum','Ticket\x20created!','The\x20Ticket\x20ID\x20is:','%s/index.php?module=HelpDesk&view=Detail&record=%s&app=SUPPORT','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','user:%s','outbound','recordingFormat','none','[OUTBOUND]','destcalleridname','The\x20Enduser\x20ID\x20is:','Fields','split','trigger:browser:url','unmanaged','monitor_format','toUpperCase','calleridname','lastevent','lodash','request-promise','bluebird','ioredis','../../../../config/environment','../../../../config/logger','vTiger','redis','defaults','localhost','socket.io-emitter','length','forEach','includes','idField','content','toString','type'];(function(_0x3bf83f,_0x181cac){var _0x22c4a9=function(_0xb3ff0d){while(--_0xb3ff0d){_0x3bf83f['push'](_0x3bf83f['shift']());}};_0x22c4a9(++_0x181cac);}(_0xa9e0,0x123));var _0x0a9e=function(_0x102e37,_0x14a181){_0x102e37=_0x102e37-0x0;var _0x35a07c=_0xa9e0[_0x102e37];return _0x35a07c;};'use strict';var _=require(_0x0a9e('0x0'));var rp=require(_0x0a9e('0x1'));var BPromise=require(_0x0a9e('0x2'));var md5=require('md5');var util=require('util');var Redis=require(_0x0a9e('0x3'));var intUtil=require('./util');var config=require(_0x0a9e('0x4'));var logger=require(_0x0a9e('0x5'))(_0x0a9e('0x6'));config[_0x0a9e('0x7')]=_[_0x0a9e('0x8')](config['redis'],{'host':_0x0a9e('0x9'),'port':0x18eb});var io=require(_0x0a9e('0xa'))(new Redis(config[_0x0a9e('0x7')]));function emit(_0x5f41ea,_0x503809,_0xe42b77){io['to'](_0x5f41ea)['emit'](_0x503809,_0xe42b77);}function getCustomFields(_0x52cace,_0x39753a){var _0xf81284={};if(_0x52cace[_0x0a9e('0xb')]>0x0){_[_0x0a9e('0xc')](_0x52cace,function(_0xfeb75b){if(_[_0x0a9e('0xd')](['string','picklist'],_0xfeb75b['type'])&&_0xfeb75b['idField']){_0xf81284[_0xfeb75b[_0x0a9e('0xe')]]=_0xfeb75b[_0x0a9e('0xf')][_0x0a9e('0x10')]();}else if(_0xfeb75b[_0x0a9e('0x11')]===_0x0a9e('0x12')&&_0xfeb75b[_0x0a9e('0x13')]&&_0xfeb75b['idField']&&_0x39753a[_0xfeb75b[_0x0a9e('0x13')]]){_0xf81284[_0xfeb75b[_0x0a9e('0xe')]]=_0x39753a[_0xfeb75b[_0x0a9e('0x13')]][_0x0a9e('0x10')]();}else if(_0xfeb75b[_0x0a9e('0x11')]===_0x0a9e('0x14')&&_0xfeb75b['Variable']&&_0xfeb75b[_0x0a9e('0x15')]['name']&&_0xfeb75b[_0x0a9e('0xe')]&&_0x39753a[_0xfeb75b['Variable'][_0x0a9e('0x16')][_0x0a9e('0x17')]()]){_0xf81284[_0xfeb75b['idField']]=_0x39753a[_0xfeb75b[_0x0a9e('0x15')]['name'][_0x0a9e('0x17')]()][_0x0a9e('0x10')]();}});}return _0xf81284;}function createTicket(_0x106033,_0x205fd6,_0x31b1ca,_0x2eb11f,_0x530eb7,_0x20559e,_0x1314ae){logger[_0x0a9e('0x18')](_0x0a9e('0x19'));var _0x105080=_['merge']({'parent_id':'','assigned_user_id':_0x205fd6['id'],'ticketpriorities':_0x0a9e('0x1a'),'ticketstatus':_0x0a9e('0x1b'),'ticket_title':intUtil['getString'](_0x2eb11f[_0x0a9e('0x1c')],_0x530eb7,'\x20'),'description':intUtil['getString'](_0x2eb11f['Descriptions'],_0x530eb7,'\x0a'),'contact_id':_0x31b1ca['id']},getCustomFields(_0x20559e,_0x530eb7));var _0x3a02e1={'method':_0x0a9e('0x1d'),'uri':util[_0x0a9e('0x1e')](_0x0a9e('0x1f'),_0x106033['remoteUri']),'form':{'operation':_0x0a9e('0x20'),'username':_0x106033[_0x0a9e('0x21')],'sessionName':_0x1314ae[_0x0a9e('0x22')],'elementType':_0x0a9e('0x23'),'element':JSON[_0x0a9e('0x24')](_0x105080)},'json':!![]};return request(_0x3a02e1)[_0x0a9e('0x25')](function(_0x16b1ca){if(_0x16b1ca['success']){return BPromise['resolve']({'id':_0x16b1ca[_0x0a9e('0x26')]['id']});}else{throw new Error(util[_0x0a9e('0x1e')](_0x0a9e('0x27'),JSON[_0x0a9e('0x24')](_0x16b1ca['error'])));}})[_0x0a9e('0x28')](function(_0x479bc4){var _0x45a1e7=_0x479bc4['statusCode']||0x1f4;logger[_0x0a9e('0x29')](_0x0a9e('0x2a'),_0x0a9e('0x2b'),_0x45a1e7,JSON[_0x0a9e('0x24')](_0x479bc4));});}function getUser(_0x140511,_0x1538a4,_0x11c3b6){if(intUtil[_0x0a9e('0x2c')](_0x1538a4)){logger['info'](_0x0a9e('0x2d'),_0x1538a4);return request({'method':_0x0a9e('0x2e'),'uri':util[_0x0a9e('0x1e')](_0x0a9e('0x1f'),_0x140511['remoteUri']),'qs':{'operation':_0x0a9e('0x2f'),'username':_0x140511[_0x0a9e('0x21')],'sessionName':_0x11c3b6[_0x0a9e('0x22')],'query':util[_0x0a9e('0x1e')](_0x0a9e('0x30'),_0x1538a4)},'json':!![]})[_0x0a9e('0x25')](function(_0x296f41){if(_0x296f41[_0x0a9e('0x31')]&&_0x296f41[_0x0a9e('0x26')]['length']){logger[_0x0a9e('0x18')]('Agent\x20found!');return BPromise[_0x0a9e('0x32')]({'id':_0x296f41[_0x0a9e('0x26')][0x0]['id'],'email':_0x296f41[_0x0a9e('0x26')][0x0][_0x0a9e('0x33')],'name':_0x296f41[_0x0a9e('0x26')][0x0]['first_name']+'\x20'+_0x296f41[_0x0a9e('0x26')][_0x0a9e('0x34')]});}else{logger[_0x0a9e('0x18')](_0x0a9e('0x35'));return BPromise[_0x0a9e('0x32')]({'id':_0x11c3b6[_0x0a9e('0x36')],'email':_0x140511[_0x0a9e('0x21')],'name':_0x0a9e('0x37')});}})['catch'](function(_0x44295a){var _0x5e7238=_0x44295a[_0x0a9e('0x38')]||0x1f4;logger[_0x0a9e('0x29')](_0x0a9e('0x2a'),_0x0a9e('0x39'),_0x5e7238,JSON['stringify'](_0x44295a));});}else{logger[_0x0a9e('0x18')](_0x0a9e('0x35'));return BPromise[_0x0a9e('0x32')]({'id':_0x11c3b6[_0x0a9e('0x36')],'email':_0x140511['username'],'name':'admin'})[_0x0a9e('0x28')](function(_0x5640eb){var _0x24936a=_0x5640eb[_0x0a9e('0x38')]||0x1f4;logger[_0x0a9e('0x29')](_0x0a9e('0x2a'),'getUser',_0x24936a,JSON[_0x0a9e('0x24')](_0x5640eb));});}}function getEndUser(_0x3bfce8,_0x3cae,_0x533942,_0x1dbf74){logger[_0x0a9e('0x18')](_0x0a9e('0x3a'),_0x533942);return request({'method':'GET','uri':util['format'](_0x0a9e('0x1f'),_0x3bfce8[_0x0a9e('0x3b')]),'qs':{'operation':'query','username':_0x3bfce8[_0x0a9e('0x21')],'sessionName':_0x1dbf74[_0x0a9e('0x22')],'query':util[_0x0a9e('0x1e')](_0x0a9e('0x3c'),_0x533942,_0x533942,_0x533942,_0x533942,_0x533942)},'json':!![]})['then'](function(_0x5a594b){if(_0x5a594b[_0x0a9e('0x31')]&&_0x5a594b[_0x0a9e('0x26')]['length']){logger[_0x0a9e('0x18')](_0x0a9e('0x3d'));return BPromise[_0x0a9e('0x32')]({'id':_0x5a594b['result'][0x0]['id'],'name':_0x5a594b[_0x0a9e('0x26')][0x0][_0x0a9e('0x3e')]+'\x20'+_0x5a594b[_0x0a9e('0x26')][0x0][_0x0a9e('0x3f')],'phone':_0x533942});}else{logger[_0x0a9e('0x18')](_0x0a9e('0x40'));return request({'method':_0x0a9e('0x1d'),'uri':util[_0x0a9e('0x1e')](_0x0a9e('0x1f'),_0x3bfce8[_0x0a9e('0x3b')]),'form':{'operation':_0x0a9e('0x20'),'sessionName':_0x1dbf74[_0x0a9e('0x22')],'elementType':_0x0a9e('0x41'),'element':JSON[_0x0a9e('0x24')]({'lastname':_0x3cae,'phone':_0x533942,'assigned_user_id':'\x20'})},'json':!![]})[_0x0a9e('0x25')](function(_0x4d04c8){logger['info'](_0x0a9e('0x42'));return BPromise[_0x0a9e('0x32')]({'id':_0x4d04c8[_0x0a9e('0x26')]['id'],'name':_0x4d04c8[_0x0a9e('0x26')][_0x0a9e('0x3f')],'phone':_0x4d04c8[_0x0a9e('0x26')][_0x0a9e('0x43')]});})[_0x0a9e('0x28')](function(_0x432fcc){var _0x25c6e6=_0x432fcc[_0x0a9e('0x38')]||0x1f4;logger[_0x0a9e('0x29')]('[vTiger],\x20%s,\x20%s,\x20%s',_0x0a9e('0x44'),_0x25c6e6,JSON[_0x0a9e('0x24')](_0x432fcc));});}});}function getConnection(_0xdd268f){var _0xfbd5ad=_0xdd268f[_0x0a9e('0x21')];var _0xbe9d19=_0xdd268f[_0x0a9e('0x45')];return request({'method':_0x0a9e('0x2e'),'uri':util['format'](_0x0a9e('0x1f'),_0xdd268f['remoteUri']),'qs':{'operation':_0x0a9e('0x46'),'username':_0xfbd5ad},'json':!![]})[_0x0a9e('0x25')](function(_0x8d6dd1){if(_0x8d6dd1['success']){return request({'method':_0x0a9e('0x1d'),'uri':util[_0x0a9e('0x1e')](_0x0a9e('0x1f'),_0xdd268f[_0x0a9e('0x3b')]),'form':{'operation':_0x0a9e('0x47'),'username':_0xfbd5ad,'accessKey':md5(_0x8d6dd1[_0x0a9e('0x26')][_0x0a9e('0x48')]+_0xbe9d19)},'json':!![]});}})['then'](function(_0x13f44d){if(_0x13f44d[_0x0a9e('0x31')]){return BPromise[_0x0a9e('0x32')](_0x13f44d[_0x0a9e('0x26')]);}else{throw new Error(util[_0x0a9e('0x1e')](_0x0a9e('0x49'),_0xdd268f['id']));}})[_0x0a9e('0x28')](function(_0x19383e){var _0x34febd=_0x19383e['statusCode']||0x1f4;logger[_0x0a9e('0x29')](_0x0a9e('0x2a'),'getConnection',_0x34febd,JSON['stringify'](_0x19383e));});}function request(_0x5ddf84){logger[_0x0a9e('0x18')](_0x0a9e('0x4a'),JSON[_0x0a9e('0x24')](_0x5ddf84));return rp(_0x5ddf84);}exports[_0x0a9e('0x4b')]=function(_0x61bb17,_0x30decb,_0x2e5165,_0x375c18,_0x5d38ae,_0x4b1b9f){var _0x53975a,_0x39d77d,_0x204173,_0x14d602;_0x4b1b9f['remoteUri']=intUtil[_0x0a9e('0x4c')](_0x4b1b9f[_0x0a9e('0x3b')]);if(_0x5d38ae&&_0x5d38ae['monitor_format']){logger['info'](_0x0a9e('0x4d'),'Recording\x20is\x20enabled!');_0x30decb[_0x0a9e('0x4e')]=util['format'](_0x0a9e('0x4f'),_0x4b1b9f[_0x0a9e('0x50')],_0x30decb[_0x0a9e('0x51')],md5(_0x30decb['uniqueid']));}else{_0x30decb[_0x0a9e('0x4e')]='';}return getConnection(_0x4b1b9f)[_0x0a9e('0x25')](function(_0x508b47){_0x14d602=_0x508b47;return getUser(_0x4b1b9f,_0x375c18['email'],_0x14d602);})[_0x0a9e('0x25')](function(_0x3aedd0){_0x53975a=_0x3aedd0;logger['info'](_0x0a9e('0x52'),_0x53975a['id']);return getEndUser(_0x4b1b9f,_0x30decb['calleridname'],_0x30decb[_0x0a9e('0x53')],_0x14d602);})['then'](function(_0xe22ccc){_0x39d77d=_0xe22ccc;logger['info']('The\x20Enduser\x20ID\x20is:',_0x39d77d['id']);return createTicket(_0x4b1b9f,_0x53975a,_0x39d77d,_0x2e5165,_0x30decb,_0x2e5165['Fields'],_0x14d602);})[_0x0a9e('0x25')](function(_0x47de4c){_0x204173=_0x47de4c;logger[_0x0a9e('0x18')](_0x0a9e('0x54'));logger[_0x0a9e('0x18')](_0x0a9e('0x55'),_0x204173['id']);var _0x232830=util[_0x0a9e('0x1e')](_0x0a9e('0x56'),_0x4b1b9f[_0x0a9e('0x3b')],_['split'](_0x204173['id'],'x')[0x1]);logger[_0x0a9e('0x18')](_0x0a9e('0x4d'),_0x0a9e('0x57'));emit(util[_0x0a9e('0x1e')](_0x0a9e('0x58'),_0x375c18[_0x0a9e('0x16')]),'trigger:browser:url',{'uri':_0x232830});})[_0x0a9e('0x28')](function(_0x26bc80){logger['error'](_0x0a9e('0x4d'),JSON['stringify'](_0x26bc80));});};exports[_0x0a9e('0x59')]=function(_0x5ba1f9,_0x4b3c1a,_0x5674ee,_0x273cb5,_0x49d231,_0x2244d6,_0x1fc70e){var _0x261adb,_0x7be420,_0x1cca9f,_0x26d7db;_0x2244d6['remoteUri']=intUtil[_0x0a9e('0x4c')](_0x2244d6['remoteUri']);_0x2244d6[_0x0a9e('0x50')]=intUtil[_0x0a9e('0x4c')](_0x2244d6[_0x0a9e('0x50')]);if(_0x1fc70e&&_0x1fc70e['recordingFormat']&&_0x1fc70e[_0x0a9e('0x5a')]!==_0x0a9e('0x5b')){logger[_0x0a9e('0x18')](_0x0a9e('0x5c'),'Recording\x20is\x20enabled!');_0x4b3c1a[_0x0a9e('0x4e')]=util[_0x0a9e('0x1e')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x2244d6[_0x0a9e('0x50')],_0x4b3c1a[_0x0a9e('0x51')],md5(_0x4b3c1a[_0x0a9e('0x51')]));}return getConnection(_0x2244d6)[_0x0a9e('0x25')](function(_0x401837){_0x26d7db=_0x401837;return getUser(_0x2244d6,_0x273cb5['email'],_0x26d7db);})[_0x0a9e('0x25')](function(_0x2937e0){_0x261adb=_0x2937e0;logger[_0x0a9e('0x18')]('The\x20User\x20ID\x20is:',_0x261adb['id']);return getEndUser(_0x2244d6,_0x4b3c1a[_0x0a9e('0x5d')],_0x4b3c1a['destcalleridnum'],_0x26d7db);})['then'](function(_0x242745){_0x7be420=_0x242745;logger[_0x0a9e('0x18')](_0x0a9e('0x5e'),_0x7be420['id']);return createTicket(_0x2244d6,_0x261adb,_0x7be420,_0x5674ee,_0x4b3c1a,_0x5674ee[_0x0a9e('0x5f')],_0x26d7db);})[_0x0a9e('0x25')](function(_0xc8c264){_0x1cca9f=_0xc8c264;logger[_0x0a9e('0x18')](_0x0a9e('0x54'));logger[_0x0a9e('0x18')](_0x0a9e('0x55'),_0x1cca9f['id']);var _0x2e89b7=util[_0x0a9e('0x1e')](_0x0a9e('0x56'),_0x2244d6[_0x0a9e('0x3b')],_[_0x0a9e('0x60')](_0x1cca9f['id'],'x')[0x1]);logger[_0x0a9e('0x18')](_0x0a9e('0x5c'),_0x0a9e('0x57'));emit(util['format'](_0x0a9e('0x58'),_0x273cb5[_0x0a9e('0x16')]),_0x0a9e('0x61'),{'uri':_0x2e89b7});})['catch'](function(_0x1148a1){logger[_0x0a9e('0x29')]('[OUTBOUND]',JSON[_0x0a9e('0x24')](_0x1148a1));});};exports[_0x0a9e('0x62')]=function(_0x3ef315,_0x427946,_0x13b5c0,_0x4a43a8,_0x50cdce,_0x4a2438){var _0x40fb85,_0x18bf5d,_0x1104ad,_0x23a7d3;_0x4a2438[_0x0a9e('0x3b')]=intUtil[_0x0a9e('0x4c')](_0x4a2438[_0x0a9e('0x3b')]);_0x4a2438[_0x0a9e('0x50')]=intUtil['stripTrailingSlash'](_0x4a2438[_0x0a9e('0x50')]);if(_0x50cdce&&_0x50cdce[_0x0a9e('0x63')]){logger[_0x0a9e('0x18')]('['+_0x427946['lastevent'][_0x0a9e('0x64')]()+']','Recording\x20is\x20enabled!');_0x427946[_0x0a9e('0x4e')]=util[_0x0a9e('0x1e')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x4a2438[_0x0a9e('0x50')],_0x427946[_0x0a9e('0x51')],md5(_0x427946[_0x0a9e('0x51')]));}else{_0x427946[_0x0a9e('0x4e')]='';}return getConnection(_0x4a2438)['then'](function(_0x1d442c){_0x23a7d3=_0x1d442c;return getUser(_0x4a2438,'',_0x23a7d3);})[_0x0a9e('0x25')](function(_0x371533){_0x40fb85=_0x371533;logger[_0x0a9e('0x18')]('The\x20User\x20ID\x20is:',_0x40fb85['id']);return getEndUser(_0x4a2438,_0x427946[_0x0a9e('0x65')],_0x427946[_0x0a9e('0x53')],_0x23a7d3);})[_0x0a9e('0x25')](function(_0x361b21){_0x18bf5d=_0x361b21;logger['info'](_0x0a9e('0x5e'),_0x18bf5d['id']);return createTicket(_0x4a2438,_0x40fb85,_0x18bf5d,_0x13b5c0,_0x427946,_0x13b5c0[_0x0a9e('0x5f')],_0x23a7d3);})[_0x0a9e('0x25')](function(_0xf410e5){_0x1104ad=_0xf410e5;logger[_0x0a9e('0x18')](_0x0a9e('0x54'));logger[_0x0a9e('0x18')](_0x0a9e('0x55'),_0x1104ad['id']);})[_0x0a9e('0x28')](function(_0x336dc3){logger[_0x0a9e('0x29')]('['+_0x427946[_0x0a9e('0x66')][_0x0a9e('0x64')]()+']',JSON[_0x0a9e('0x24')](_0x336dc3));});};
\ No newline at end of file
+var _0xa9e0=['variable','variableName','customVariable','Variable','name','toLowerCase','info','Creating\x20new\x20ticket...','Normal','Open','Subjects','POST','format','%s/webservice.php','create','username','sessionName','HelpDesk','stringify','then','result','Ticket\x20could\x20not\x20be\x20created\x20due\x20to:\x20%s','catch','error','[vTiger],\x20%s,\x20%s,\x20%s','createTicket','validateEmail','Getting\x20agent\x20with\x20email','GET','query','SELECT\x20first_name,\x20last_name,\x20email1\x20FROM\x20Users\x20WHERE\x20email1=\x27%s\x27;','success','resolve','email1','last_name','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','userId','admin','statusCode','getUser','Searching\x20end\x20user\x20with\x20phone','remoteUri','SELECT\x20id,\x20firstname,\x20lastname,\x20email,\x20phone,\x20mobile,\x20homephone,\x20otherphone,\x20assistantphone\x20FROM\x20Contacts\x20WHERE\x20phone\x20=\x20\x27%s\x27\x20OR\x20mobile\x20=\x27%s\x27\x20OR\x20homephone\x20=\x27%s\x27\x20OR\x20otherphone\x20=\x27%s\x27\x20OR\x20assistantphone\x20=\x27%s\x27;','Enduser\x20found!','firstname','lastname','Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!','Contacts','Enduser\x20created.','phone','getEndUser','accessKey','getchallenge','login','token','Account\x20%d\x20is\x20not\x20valid','[HTTP]','queue','stripTrailingSlash','[QUEUE]','recordingURL','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','serverUrl','uniqueid','The\x20User\x20ID\x20is:','calleridnum','Ticket\x20created!','The\x20Ticket\x20ID\x20is:','%s/index.php?module=HelpDesk&view=Detail&record=%s&app=SUPPORT','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','user:%s','outbound','recordingFormat','none','[OUTBOUND]','destcalleridname','The\x20Enduser\x20ID\x20is:','Fields','split','trigger:browser:url','unmanaged','monitor_format','toUpperCase','calleridname','lastevent','lodash','request-promise','bluebird','ioredis','../../../../config/environment','../../../../config/logger','vTiger','redis','defaults','localhost','socket.io-emitter','length','forEach','includes','idField','content','toString','type'];(function(_0x3b380d,_0x4bf247){var _0x54502b=function(_0x35d207){while(--_0x35d207){_0x3b380d['push'](_0x3b380d['shift']());}};_0x54502b(++_0x4bf247);}(_0xa9e0,0x123));var _0x0a9e=function(_0x297fd3,_0x115406){_0x297fd3=_0x297fd3-0x0;var _0x2af381=_0xa9e0[_0x297fd3];return _0x2af381;};'use strict';var _=require(_0x0a9e('0x0'));var rp=require(_0x0a9e('0x1'));var BPromise=require(_0x0a9e('0x2'));var md5=require('md5');var util=require('util');var Redis=require(_0x0a9e('0x3'));var intUtil=require('./util');var config=require(_0x0a9e('0x4'));var logger=require(_0x0a9e('0x5'))(_0x0a9e('0x6'));config[_0x0a9e('0x7')]=_[_0x0a9e('0x8')](config['redis'],{'host':_0x0a9e('0x9'),'port':0x18eb});var io=require(_0x0a9e('0xa'))(new Redis(config[_0x0a9e('0x7')]));function emit(_0x5f41ea,_0x503809,_0xe42b77){io['to'](_0x5f41ea)['emit'](_0x503809,_0xe42b77);}function getCustomFields(_0x52cace,_0x39753a){var _0xf81284={};if(_0x52cace[_0x0a9e('0xb')]>0x0){_[_0x0a9e('0xc')](_0x52cace,function(_0xfeb75b){if(_[_0x0a9e('0xd')](['string','picklist'],_0xfeb75b['type'])&&_0xfeb75b['idField']){_0xf81284[_0xfeb75b[_0x0a9e('0xe')]]=_0xfeb75b[_0x0a9e('0xf')][_0x0a9e('0x10')]();}else if(_0xfeb75b[_0x0a9e('0x11')]===_0x0a9e('0x12')&&_0xfeb75b[_0x0a9e('0x13')]&&_0xfeb75b['idField']&&_0x39753a[_0xfeb75b[_0x0a9e('0x13')]]){_0xf81284[_0xfeb75b[_0x0a9e('0xe')]]=_0x39753a[_0xfeb75b[_0x0a9e('0x13')]][_0x0a9e('0x10')]();}else if(_0xfeb75b[_0x0a9e('0x11')]===_0x0a9e('0x14')&&_0xfeb75b['Variable']&&_0xfeb75b[_0x0a9e('0x15')]['name']&&_0xfeb75b[_0x0a9e('0xe')]&&_0x39753a[_0xfeb75b['Variable'][_0x0a9e('0x16')][_0x0a9e('0x17')]()]){_0xf81284[_0xfeb75b['idField']]=_0x39753a[_0xfeb75b[_0x0a9e('0x15')]['name'][_0x0a9e('0x17')]()][_0x0a9e('0x10')]();}});}return _0xf81284;}function createTicket(_0x106033,_0x205fd6,_0x31b1ca,_0x2eb11f,_0x530eb7,_0x20559e,_0x1314ae){logger[_0x0a9e('0x18')](_0x0a9e('0x19'));var _0x105080=_['merge']({'parent_id':'','assigned_user_id':_0x205fd6['id'],'ticketpriorities':_0x0a9e('0x1a'),'ticketstatus':_0x0a9e('0x1b'),'ticket_title':intUtil['getString'](_0x2eb11f[_0x0a9e('0x1c')],_0x530eb7,'\x20'),'description':intUtil['getString'](_0x2eb11f['Descriptions'],_0x530eb7,'\x0a'),'contact_id':_0x31b1ca['id']},getCustomFields(_0x20559e,_0x530eb7));var _0x3a02e1={'method':_0x0a9e('0x1d'),'uri':util[_0x0a9e('0x1e')](_0x0a9e('0x1f'),_0x106033['remoteUri']),'form':{'operation':_0x0a9e('0x20'),'username':_0x106033[_0x0a9e('0x21')],'sessionName':_0x1314ae[_0x0a9e('0x22')],'elementType':_0x0a9e('0x23'),'element':JSON[_0x0a9e('0x24')](_0x105080)},'json':!![]};return request(_0x3a02e1)[_0x0a9e('0x25')](function(_0x16b1ca){if(_0x16b1ca['success']){return BPromise['resolve']({'id':_0x16b1ca[_0x0a9e('0x26')]['id']});}else{throw new Error(util[_0x0a9e('0x1e')](_0x0a9e('0x27'),JSON[_0x0a9e('0x24')](_0x16b1ca['error'])));}})[_0x0a9e('0x28')](function(_0x479bc4){var _0x45a1e7=_0x479bc4['statusCode']||0x1f4;logger[_0x0a9e('0x29')](_0x0a9e('0x2a'),_0x0a9e('0x2b'),_0x45a1e7,JSON[_0x0a9e('0x24')](_0x479bc4));});}function getUser(_0x140511,_0x1538a4,_0x11c3b6){if(intUtil[_0x0a9e('0x2c')](_0x1538a4)){logger['info'](_0x0a9e('0x2d'),_0x1538a4);return request({'method':_0x0a9e('0x2e'),'uri':util[_0x0a9e('0x1e')](_0x0a9e('0x1f'),_0x140511['remoteUri']),'qs':{'operation':_0x0a9e('0x2f'),'username':_0x140511[_0x0a9e('0x21')],'sessionName':_0x11c3b6[_0x0a9e('0x22')],'query':util[_0x0a9e('0x1e')](_0x0a9e('0x30'),_0x1538a4)},'json':!![]})[_0x0a9e('0x25')](function(_0x296f41){if(_0x296f41[_0x0a9e('0x31')]&&_0x296f41[_0x0a9e('0x26')]['length']){logger[_0x0a9e('0x18')]('Agent\x20found!');return BPromise[_0x0a9e('0x32')]({'id':_0x296f41[_0x0a9e('0x26')][0x0]['id'],'email':_0x296f41[_0x0a9e('0x26')][0x0][_0x0a9e('0x33')],'name':_0x296f41[_0x0a9e('0x26')][0x0]['first_name']+'\x20'+_0x296f41[_0x0a9e('0x26')][_0x0a9e('0x34')]});}else{logger[_0x0a9e('0x18')](_0x0a9e('0x35'));return BPromise[_0x0a9e('0x32')]({'id':_0x11c3b6[_0x0a9e('0x36')],'email':_0x140511[_0x0a9e('0x21')],'name':_0x0a9e('0x37')});}})['catch'](function(_0x44295a){var _0x5e7238=_0x44295a[_0x0a9e('0x38')]||0x1f4;logger[_0x0a9e('0x29')](_0x0a9e('0x2a'),_0x0a9e('0x39'),_0x5e7238,JSON['stringify'](_0x44295a));});}else{logger[_0x0a9e('0x18')](_0x0a9e('0x35'));return BPromise[_0x0a9e('0x32')]({'id':_0x11c3b6[_0x0a9e('0x36')],'email':_0x140511['username'],'name':'admin'})[_0x0a9e('0x28')](function(_0x5640eb){var _0x24936a=_0x5640eb[_0x0a9e('0x38')]||0x1f4;logger[_0x0a9e('0x29')](_0x0a9e('0x2a'),'getUser',_0x24936a,JSON[_0x0a9e('0x24')](_0x5640eb));});}}function getEndUser(_0x3bfce8,_0x3cae,_0x533942,_0x1dbf74){logger[_0x0a9e('0x18')](_0x0a9e('0x3a'),_0x533942);return request({'method':'GET','uri':util['format'](_0x0a9e('0x1f'),_0x3bfce8[_0x0a9e('0x3b')]),'qs':{'operation':'query','username':_0x3bfce8[_0x0a9e('0x21')],'sessionName':_0x1dbf74[_0x0a9e('0x22')],'query':util[_0x0a9e('0x1e')](_0x0a9e('0x3c'),_0x533942,_0x533942,_0x533942,_0x533942,_0x533942)},'json':!![]})['then'](function(_0x5a594b){if(_0x5a594b[_0x0a9e('0x31')]&&_0x5a594b[_0x0a9e('0x26')]['length']){logger[_0x0a9e('0x18')](_0x0a9e('0x3d'));return BPromise[_0x0a9e('0x32')]({'id':_0x5a594b['result'][0x0]['id'],'name':_0x5a594b[_0x0a9e('0x26')][0x0][_0x0a9e('0x3e')]+'\x20'+_0x5a594b[_0x0a9e('0x26')][0x0][_0x0a9e('0x3f')],'phone':_0x533942});}else{logger[_0x0a9e('0x18')](_0x0a9e('0x40'));return request({'method':_0x0a9e('0x1d'),'uri':util[_0x0a9e('0x1e')](_0x0a9e('0x1f'),_0x3bfce8[_0x0a9e('0x3b')]),'form':{'operation':_0x0a9e('0x20'),'sessionName':_0x1dbf74[_0x0a9e('0x22')],'elementType':_0x0a9e('0x41'),'element':JSON[_0x0a9e('0x24')]({'lastname':_0x3cae,'phone':_0x533942,'assigned_user_id':'\x20'})},'json':!![]})[_0x0a9e('0x25')](function(_0x4d04c8){logger['info'](_0x0a9e('0x42'));return BPromise[_0x0a9e('0x32')]({'id':_0x4d04c8[_0x0a9e('0x26')]['id'],'name':_0x4d04c8[_0x0a9e('0x26')][_0x0a9e('0x3f')],'phone':_0x4d04c8[_0x0a9e('0x26')][_0x0a9e('0x43')]});})[_0x0a9e('0x28')](function(_0x432fcc){var _0x25c6e6=_0x432fcc[_0x0a9e('0x38')]||0x1f4;logger[_0x0a9e('0x29')]('[vTiger],\x20%s,\x20%s,\x20%s',_0x0a9e('0x44'),_0x25c6e6,JSON[_0x0a9e('0x24')](_0x432fcc));});}});}function getConnection(_0xdd268f){var _0xfbd5ad=_0xdd268f[_0x0a9e('0x21')];var _0xbe9d19=_0xdd268f[_0x0a9e('0x45')];return request({'method':_0x0a9e('0x2e'),'uri':util['format'](_0x0a9e('0x1f'),_0xdd268f['remoteUri']),'qs':{'operation':_0x0a9e('0x46'),'username':_0xfbd5ad},'json':!![]})[_0x0a9e('0x25')](function(_0x8d6dd1){if(_0x8d6dd1['success']){return request({'method':_0x0a9e('0x1d'),'uri':util[_0x0a9e('0x1e')](_0x0a9e('0x1f'),_0xdd268f[_0x0a9e('0x3b')]),'form':{'operation':_0x0a9e('0x47'),'username':_0xfbd5ad,'accessKey':md5(_0x8d6dd1[_0x0a9e('0x26')][_0x0a9e('0x48')]+_0xbe9d19)},'json':!![]});}})['then'](function(_0x13f44d){if(_0x13f44d[_0x0a9e('0x31')]){return BPromise[_0x0a9e('0x32')](_0x13f44d[_0x0a9e('0x26')]);}else{throw new Error(util[_0x0a9e('0x1e')](_0x0a9e('0x49'),_0xdd268f['id']));}})[_0x0a9e('0x28')](function(_0x19383e){var _0x34febd=_0x19383e['statusCode']||0x1f4;logger[_0x0a9e('0x29')](_0x0a9e('0x2a'),'getConnection',_0x34febd,JSON['stringify'](_0x19383e));});}function request(_0x5ddf84){logger[_0x0a9e('0x18')](_0x0a9e('0x4a'),JSON[_0x0a9e('0x24')](_0x5ddf84));return rp(_0x5ddf84);}exports[_0x0a9e('0x4b')]=function(_0x61bb17,_0x30decb,_0x2e5165,_0x375c18,_0x5d38ae,_0x4b1b9f){var _0x53975a,_0x39d77d,_0x204173,_0x14d602;_0x4b1b9f['remoteUri']=intUtil[_0x0a9e('0x4c')](_0x4b1b9f[_0x0a9e('0x3b')]);if(_0x5d38ae&&_0x5d38ae['monitor_format']){logger['info'](_0x0a9e('0x4d'),'Recording\x20is\x20enabled!');_0x30decb[_0x0a9e('0x4e')]=util['format'](_0x0a9e('0x4f'),_0x4b1b9f[_0x0a9e('0x50')],_0x30decb[_0x0a9e('0x51')],md5(_0x30decb['uniqueid']));}else{_0x30decb[_0x0a9e('0x4e')]='';}return getConnection(_0x4b1b9f)[_0x0a9e('0x25')](function(_0x508b47){_0x14d602=_0x508b47;return getUser(_0x4b1b9f,_0x375c18['email'],_0x14d602);})[_0x0a9e('0x25')](function(_0x3aedd0){_0x53975a=_0x3aedd0;logger['info'](_0x0a9e('0x52'),_0x53975a['id']);return getEndUser(_0x4b1b9f,_0x30decb['calleridname'],_0x30decb[_0x0a9e('0x53')],_0x14d602);})['then'](function(_0xe22ccc){_0x39d77d=_0xe22ccc;logger['info']('The\x20Enduser\x20ID\x20is:',_0x39d77d['id']);return createTicket(_0x4b1b9f,_0x53975a,_0x39d77d,_0x2e5165,_0x30decb,_0x2e5165['Fields'],_0x14d602);})[_0x0a9e('0x25')](function(_0x47de4c){_0x204173=_0x47de4c;logger[_0x0a9e('0x18')](_0x0a9e('0x54'));logger[_0x0a9e('0x18')](_0x0a9e('0x55'),_0x204173['id']);var _0x232830=util[_0x0a9e('0x1e')](_0x0a9e('0x56'),_0x4b1b9f[_0x0a9e('0x3b')],_['split'](_0x204173['id'],'x')[0x1]);logger[_0x0a9e('0x18')](_0x0a9e('0x4d'),_0x0a9e('0x57'));emit(util[_0x0a9e('0x1e')](_0x0a9e('0x58'),_0x375c18[_0x0a9e('0x16')]),'trigger:browser:url',{'uri':_0x232830});})[_0x0a9e('0x28')](function(_0x26bc80){logger['error'](_0x0a9e('0x4d'),JSON['stringify'](_0x26bc80));});};exports[_0x0a9e('0x59')]=function(_0x5ba1f9,_0x4b3c1a,_0x5674ee,_0x273cb5,_0x49d231,_0x2244d6,_0x1fc70e){var _0x261adb,_0x7be420,_0x1cca9f,_0x26d7db;_0x2244d6['remoteUri']=intUtil[_0x0a9e('0x4c')](_0x2244d6['remoteUri']);_0x2244d6[_0x0a9e('0x50')]=intUtil[_0x0a9e('0x4c')](_0x2244d6[_0x0a9e('0x50')]);if(_0x1fc70e&&_0x1fc70e['recordingFormat']&&_0x1fc70e[_0x0a9e('0x5a')]!==_0x0a9e('0x5b')){logger[_0x0a9e('0x18')](_0x0a9e('0x5c'),'Recording\x20is\x20enabled!');_0x4b3c1a[_0x0a9e('0x4e')]=util[_0x0a9e('0x1e')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x2244d6[_0x0a9e('0x50')],_0x4b3c1a[_0x0a9e('0x51')],md5(_0x4b3c1a[_0x0a9e('0x51')]));}return getConnection(_0x2244d6)[_0x0a9e('0x25')](function(_0x401837){_0x26d7db=_0x401837;return getUser(_0x2244d6,_0x273cb5['email'],_0x26d7db);})[_0x0a9e('0x25')](function(_0x2937e0){_0x261adb=_0x2937e0;logger[_0x0a9e('0x18')]('The\x20User\x20ID\x20is:',_0x261adb['id']);return getEndUser(_0x2244d6,_0x4b3c1a[_0x0a9e('0x5d')],_0x4b3c1a['destcalleridnum'],_0x26d7db);})['then'](function(_0x242745){_0x7be420=_0x242745;logger[_0x0a9e('0x18')](_0x0a9e('0x5e'),_0x7be420['id']);return createTicket(_0x2244d6,_0x261adb,_0x7be420,_0x5674ee,_0x4b3c1a,_0x5674ee[_0x0a9e('0x5f')],_0x26d7db);})[_0x0a9e('0x25')](function(_0xc8c264){_0x1cca9f=_0xc8c264;logger[_0x0a9e('0x18')](_0x0a9e('0x54'));logger[_0x0a9e('0x18')](_0x0a9e('0x55'),_0x1cca9f['id']);var _0x2e89b7=util[_0x0a9e('0x1e')](_0x0a9e('0x56'),_0x2244d6[_0x0a9e('0x3b')],_[_0x0a9e('0x60')](_0x1cca9f['id'],'x')[0x1]);logger[_0x0a9e('0x18')](_0x0a9e('0x5c'),_0x0a9e('0x57'));emit(util['format'](_0x0a9e('0x58'),_0x273cb5[_0x0a9e('0x16')]),_0x0a9e('0x61'),{'uri':_0x2e89b7});})['catch'](function(_0x1148a1){logger[_0x0a9e('0x29')]('[OUTBOUND]',JSON[_0x0a9e('0x24')](_0x1148a1));});};exports[_0x0a9e('0x62')]=function(_0x3ef315,_0x427946,_0x13b5c0,_0x4a43a8,_0x50cdce,_0x4a2438){var _0x40fb85,_0x18bf5d,_0x1104ad,_0x23a7d3;_0x4a2438[_0x0a9e('0x3b')]=intUtil[_0x0a9e('0x4c')](_0x4a2438[_0x0a9e('0x3b')]);_0x4a2438[_0x0a9e('0x50')]=intUtil['stripTrailingSlash'](_0x4a2438[_0x0a9e('0x50')]);if(_0x50cdce&&_0x50cdce[_0x0a9e('0x63')]){logger[_0x0a9e('0x18')]('['+_0x427946['lastevent'][_0x0a9e('0x64')]()+']','Recording\x20is\x20enabled!');_0x427946[_0x0a9e('0x4e')]=util[_0x0a9e('0x1e')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x4a2438[_0x0a9e('0x50')],_0x427946[_0x0a9e('0x51')],md5(_0x427946[_0x0a9e('0x51')]));}else{_0x427946[_0x0a9e('0x4e')]='';}return getConnection(_0x4a2438)['then'](function(_0x1d442c){_0x23a7d3=_0x1d442c;return getUser(_0x4a2438,'',_0x23a7d3);})[_0x0a9e('0x25')](function(_0x371533){_0x40fb85=_0x371533;logger[_0x0a9e('0x18')]('The\x20User\x20ID\x20is:',_0x40fb85['id']);return getEndUser(_0x4a2438,_0x427946[_0x0a9e('0x65')],_0x427946[_0x0a9e('0x53')],_0x23a7d3);})[_0x0a9e('0x25')](function(_0x361b21){_0x18bf5d=_0x361b21;logger['info'](_0x0a9e('0x5e'),_0x18bf5d['id']);return createTicket(_0x4a2438,_0x40fb85,_0x18bf5d,_0x13b5c0,_0x427946,_0x13b5c0[_0x0a9e('0x5f')],_0x23a7d3);})[_0x0a9e('0x25')](function(_0xf410e5){_0x1104ad=_0xf410e5;logger[_0x0a9e('0x18')](_0x0a9e('0x54'));logger[_0x0a9e('0x18')](_0x0a9e('0x55'),_0x1104ad['id']);})[_0x0a9e('0x28')](function(_0x336dc3){logger[_0x0a9e('0x29')]('['+_0x427946[_0x0a9e('0x66')][_0x0a9e('0x64')]()+']',JSON[_0x0a9e('0x24')](_0x336dc3));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7fcb=['length','forEach','includes','string','picklist','type','nameField','customField','custom_fields','push','content','variable','variableName','idField','Variable','name','toLowerCase','queue','stripTrailingSlash','serverUrl','[QUEUE]','uniqueid','recordingURL','The\x20User\x20ID\x20is:','calleridname','calleridnum','The\x20Enduser\x20ID\x20is:','The\x20Ticket\x20ID\x20is:','integrationTab','Displaying\x20ticket\x20to\x20agent...','%s/channels/voice/agents/%d/tickets/%d/display.json','newTab','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','user:%s','trigger:browser:url','%s/agent/tickets/%s','/api/v2','error','Zendesk\x20account\x20type\x20not\x20recognized','[QUEUE]\x20Error\x20running\x20Zendesk\x20integration','inspect','outbound','recordingFormat','none','[OUTBOUND]','Recording\x20is\x20enabled!','Authorization','email','destcalleridname','destcalleridnum','catch','[OUTBOUND]\x20Error\x20running\x20Zendesk\x20integration','monitor_format','lastevent','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','toUpperCase','\x20Error\x20running\x20Zendesk\x20integration','lodash','md5','util','ioredis','./util','../../../../config/environment','../../../../config/logger','zendesk','redis','localhost','socket.io-emitter','emit','application/json','info','Creating\x20new\x20ticket...','format','%s/tickets.json','POST','merge','getString','Descriptions','Fields','then','Ticket\x20created!','ticket','Getting\x20agent\x20with\x20email','remoteUri','count','Agent\x20found!','find','results','agent','%s/users/me.json','Admin\x20account\x20selected.','user','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','Searching\x20enduser\x20with\x20phone','type:user\x20role:end-user\x20phone:%s','filter','end-user','Caller\x20-\x20%s','Enduser\x20created.','password','%s:%s','username','authType','token','%s/token:%s','Basic\x20%s','toString','base64','[HTTP]'];(function(_0x3d5ad5,_0x3dc81d){var _0x3e7395=function(_0x2de2f8){while(--_0x2de2f8){_0x3d5ad5['push'](_0x3d5ad5['shift']());}};_0x3e7395(++_0x3dc81d);}(_0x7fcb,0xa6));var _0xb7fc=function(_0x2e364c,_0x3a9865){_0x2e364c=_0x2e364c-0x0;var _0x13f7b4=_0x7fcb[_0x2e364c];return _0x13f7b4;};'use strict';var _=require(_0xb7fc('0x0'));var rp=require('request-promise');var md5=require(_0xb7fc('0x1'));var util=require(_0xb7fc('0x2'));var Redis=require(_0xb7fc('0x3'));var intUtil=require(_0xb7fc('0x4'));var config=require(_0xb7fc('0x5'));var logger=require(_0xb7fc('0x6'))(_0xb7fc('0x7'));config[_0xb7fc('0x8')]=_['defaults'](config[_0xb7fc('0x8')],{'host':_0xb7fc('0x9'),'port':0x18eb});var io=require(_0xb7fc('0xa'))(new Redis(config[_0xb7fc('0x8')]));function emit(_0x2716cf,_0x522d9b,_0x2449d4){io['to'](_0x2716cf)[_0xb7fc('0xb')](_0x522d9b,_0x2449d4);}var headers={'Content-Type':_0xb7fc('0xc'),'Accept':_0xb7fc('0xc')};function getTicket(_0x1c4c33,_0x575a66,_0x2603af,_0x530267,_0x2e576b){logger[_0xb7fc('0xd')](_0xb7fc('0xe'));return request({'uri':util[_0xb7fc('0xf')](_0xb7fc('0x10'),_0x1c4c33['remoteUri']),'method':_0xb7fc('0x11'),'body':{'ticket':_[_0xb7fc('0x12')]({'requester_id':_0x2603af['id'],'submitter_id':_0x575a66?_0x575a66['id']:undefined,'assignee_id':_0x575a66?_0x575a66['id']:undefined,'tags':getTags(_0x530267['Tags'],'name'),'subject':intUtil['getString'](_0x530267['Subjects'],_0x2e576b,'\x20'),'description':intUtil[_0xb7fc('0x13')](_0x530267[_0xb7fc('0x14')],_0x2e576b,'\x0a'),'comment':{'public':![],'body':intUtil['getString'](_0x530267[_0xb7fc('0x14')],_0x2e576b,'\x0a')}},getCustomFields(_0x530267[_0xb7fc('0x15')],_0x2e576b))}})[_0xb7fc('0x16')](function(_0x2fe532){logger[_0xb7fc('0xd')](_0xb7fc('0x17'));return _0x2fe532[_0xb7fc('0x18')];});}function getUser(_0x52671d,_0x5904d1){if(intUtil['validateEmail'](_0x5904d1)){logger[_0xb7fc('0xd')](_0xb7fc('0x19'),_0x5904d1);return request({'uri':util[_0xb7fc('0xf')]('%s/search.json',_0x52671d[_0xb7fc('0x1a')]),'qs':{'query':util[_0xb7fc('0xf')]('type:user\x20role:agent\x20email:%s',_0x5904d1)}})[_0xb7fc('0x16')](function(_0x281d67){if(_0x281d67[_0xb7fc('0x1b')]){logger['info'](_0xb7fc('0x1c'));return _[_0xb7fc('0x1d')](_0x281d67[_0xb7fc('0x1e')],{'email':_0x5904d1,'role':_0xb7fc('0x1f')});}else{logger['info']('Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!');return request({'uri':util['format'](_0xb7fc('0x20'),_0x52671d[_0xb7fc('0x1a')])})[_0xb7fc('0x16')](function(_0x468bd4){logger[_0xb7fc('0xd')](_0xb7fc('0x21'));return _0x468bd4[_0xb7fc('0x22')];});}});}else{logger[_0xb7fc('0xd')](_0xb7fc('0x23'));return request({'uri':util[_0xb7fc('0xf')](_0xb7fc('0x20'),_0x52671d[_0xb7fc('0x1a')])})['then'](function(_0x3c592a){logger[_0xb7fc('0xd')](_0xb7fc('0x21'));return _0x3c592a[_0xb7fc('0x22')];});}}function getEndUser(_0x19dd49,_0x517ea2,_0x4f5bfa){logger['info'](_0xb7fc('0x24'),_0x4f5bfa);return request({'uri':util[_0xb7fc('0xf')]('%s/search.json',_0x19dd49['remoteUri']),'qs':{'query':util['format'](_0xb7fc('0x25'),_0x4f5bfa)}})[_0xb7fc('0x16')](function(_0x23563a){var _0x4b6ba8;if(_0x23563a[_0xb7fc('0x1e')]['length']){_0x23563a['results']=_[_0xb7fc('0x26')](_0x23563a[_0xb7fc('0x1e')],{'suspended':![],'role':_0xb7fc('0x27')});if(_0x23563a[_0xb7fc('0x1e')]['length']){_0x4b6ba8=_['first'](_0x23563a['results']);}}if(_0x4b6ba8){logger[_0xb7fc('0xd')]('Enduser\x20found!');return _0x4b6ba8;}else{logger[_0xb7fc('0xd')]('Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!');return request({'uri':util['format']('%s/users.json',_0x19dd49[_0xb7fc('0x1a')]),'method':'POST','body':{'user':{'role':_0xb7fc('0x27'),'name':util[_0xb7fc('0xf')](_0xb7fc('0x28'),_0x517ea2||_0x4f5bfa),'phone':_0x4f5bfa}}})['then'](function(_0x26cc10){logger['info'](_0xb7fc('0x29'));return _0x26cc10[_0xb7fc('0x22')];});}});}function getAuth(_0x9f4159){var _0x57fe16;if(_0x9f4159['authType']===_0xb7fc('0x2a')){_0x57fe16=util[_0xb7fc('0xf')](_0xb7fc('0x2b'),_0x9f4159[_0xb7fc('0x2c')],_0x9f4159[_0xb7fc('0x2a')]);}else if(_0x9f4159[_0xb7fc('0x2d')]===_0xb7fc('0x2e')){_0x57fe16=util[_0xb7fc('0xf')](_0xb7fc('0x2f'),_0x9f4159[_0xb7fc('0x2c')],_0x9f4159[_0xb7fc('0x2e')]);}return util[_0xb7fc('0xf')](_0xb7fc('0x30'),new Buffer(_0x57fe16)[_0xb7fc('0x31')](_0xb7fc('0x32')));}function request(_0x4888a9){logger['debug'](_0xb7fc('0x33'),JSON['stringify'](_0x4888a9));return rp(_['defaults'](_0x4888a9,{'method':'GET','headers':headers,'json':!![]}));}function getTags(_0xf84074,_0x54ea46){var _0x3a61b1=[];if(_0xf84074&&_0xf84074[_0xb7fc('0x34')]>0x0){_0x3a61b1=_['map'](_0xf84074,_0x54ea46);}return _0x3a61b1;}function getCustomFields(_0x2ff328,_0x36317b){var _0x583543=[];var _0x5d6703={'custom_fields':[]};if(_0x2ff328[_0xb7fc('0x34')]>0x0){_[_0xb7fc('0x35')](_0x2ff328,function(_0x3a61ea){if(_[_0xb7fc('0x36')]([_0xb7fc('0x37'),_0xb7fc('0x38')],_0x3a61ea[_0xb7fc('0x39')])&&_0x3a61ea[_0xb7fc('0x3a')]&&!_0x3a61ea[_0xb7fc('0x3b')]){_0x5d6703[_0x3a61ea[_0xb7fc('0x3a')]['toLowerCase']()]=_0x3a61ea['content'][_0xb7fc('0x31')]();}else if(_[_0xb7fc('0x36')]([_0xb7fc('0x37'),_0xb7fc('0x38')],_0x3a61ea[_0xb7fc('0x39')])&&_0x3a61ea['idField']&&_0x3a61ea[_0xb7fc('0x3b')]){_0x5d6703[_0xb7fc('0x3c')][_0xb7fc('0x3d')]({'id':_0x3a61ea['idField'],'value':_0x3a61ea[_0xb7fc('0x3e')][_0xb7fc('0x31')]()});}else if(_0x3a61ea[_0xb7fc('0x39')]===_0xb7fc('0x3f')&&_0x3a61ea[_0xb7fc('0x40')]&&_0x3a61ea[_0xb7fc('0x41')]&&_0x3a61ea[_0xb7fc('0x3b')]){_0x36317b[_0x3a61ea[_0xb7fc('0x40')]]&&_0x5d6703['custom_fields'][_0xb7fc('0x3d')]({'id':_0x3a61ea[_0xb7fc('0x41')],'value':_0x36317b[_0x3a61ea[_0xb7fc('0x40')]][_0xb7fc('0x31')]()});}else if(_0x3a61ea[_0xb7fc('0x39')]==='customVariable'&&_0x3a61ea['Variable']&&_0x3a61ea[_0xb7fc('0x42')][_0xb7fc('0x43')]&&_0x3a61ea[_0xb7fc('0x41')]&&_0x3a61ea[_0xb7fc('0x3b')]){_0x36317b[_0x3a61ea['Variable'][_0xb7fc('0x43')]['toLowerCase']()]&&_0x5d6703[_0xb7fc('0x3c')][_0xb7fc('0x3d')]({'id':_0x3a61ea[_0xb7fc('0x41')],'value':_0x36317b[_0x3a61ea[_0xb7fc('0x42')]['name'][_0xb7fc('0x44')]()]['toString']()});}});}return _0x5d6703;}exports[_0xb7fc('0x45')]=function(_0x24bd88,_0x548d8b,_0x4d660a,_0x664fa3,_0x5d0310,_0x8e021b){var _0x3e34db,_0x4bd82b;_0x8e021b[_0xb7fc('0x1a')]=intUtil[_0xb7fc('0x46')](_0x8e021b[_0xb7fc('0x1a')]);_0x8e021b[_0xb7fc('0x47')]=intUtil[_0xb7fc('0x46')](_0x8e021b['serverUrl']);if(_0x5d0310&&_0x5d0310['monitor_format']){logger[_0xb7fc('0xd')](_0xb7fc('0x48'),'Recording\x20is\x20enabled!');_0x548d8b['recordingURL']=util[_0xb7fc('0xf')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x8e021b[_0xb7fc('0x47')],_0x548d8b['uniqueid'],md5(_0x548d8b[_0xb7fc('0x49')]));}else{_0x548d8b[_0xb7fc('0x4a')]='';}headers['Authorization']=getAuth(_0x8e021b);return getUser(_0x8e021b,_0x664fa3['email'])[_0xb7fc('0x16')](function(_0x1187ee){_0x3e34db=_0x1187ee;logger['info'](_0xb7fc('0x4b'),_0x3e34db['id']);return getEndUser(_0x8e021b,_0x548d8b[_0xb7fc('0x4c')],_0x548d8b[_0xb7fc('0x4d')]);})[_0xb7fc('0x16')](function(_0x33f1b3){_0x4bd82b=_0x33f1b3;logger[_0xb7fc('0xd')](_0xb7fc('0x4e'),_0x4bd82b['id']);return getTicket(_0x8e021b,_0x3e34db,_0x4bd82b,_0x4d660a,_0x548d8b);})['then'](function(_0x26ec1c){if(_0x26ec1c){logger[_0xb7fc('0xd')](_0xb7fc('0x4f'),_0x26ec1c['id']);switch(_0x8e021b[_0xb7fc('0x39')]){case _0xb7fc('0x50'):logger[_0xb7fc('0xd')](_0xb7fc('0x48'),_0xb7fc('0x51'));return request({'uri':util[_0xb7fc('0xf')](_0xb7fc('0x52'),_0x8e021b[_0xb7fc('0x1a')],_0x3e34db['id'],_0x26ec1c['id']),'method':_0xb7fc('0x11')});case _0xb7fc('0x53'):logger['info'](_0xb7fc('0x48'),_0xb7fc('0x54'));emit(util[_0xb7fc('0xf')](_0xb7fc('0x55'),_0x664fa3[_0xb7fc('0x43')]),_0xb7fc('0x56'),{'uri':util[_0xb7fc('0xf')](_0xb7fc('0x57'),_0x8e021b[_0xb7fc('0x1a')]['replace'](_0xb7fc('0x58'),''),_0x26ec1c['id'])});break;default:logger[_0xb7fc('0x59')](_0xb7fc('0x48'),_0xb7fc('0x5a'));}}})['catch'](function(_0x423d5f){logger['error'](_0xb7fc('0x5b'),util[_0xb7fc('0x5c')](_0x423d5f,{'showHidden':!![],'depth':null}));});};exports[_0xb7fc('0x5d')]=function(_0x4bc8c0,_0xc20d07,_0x4977a3,_0x6222ee,_0x4b14bc,_0x36c727,_0x3e72ce){var _0x1c1075,_0x34a564;_0x36c727[_0xb7fc('0x1a')]=intUtil[_0xb7fc('0x46')](_0x36c727[_0xb7fc('0x1a')]);_0x36c727[_0xb7fc('0x47')]=intUtil[_0xb7fc('0x46')](_0x36c727[_0xb7fc('0x47')]);if(_0x3e72ce&&_0x3e72ce[_0xb7fc('0x5e')]&&_0x3e72ce['recordingFormat']!==_0xb7fc('0x5f')){logger['info'](_0xb7fc('0x60'),_0xb7fc('0x61'));_0xc20d07['recordingURL']=util[_0xb7fc('0xf')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x36c727[_0xb7fc('0x47')],_0xc20d07[_0xb7fc('0x49')],md5(_0xc20d07['uniqueid']));}headers[_0xb7fc('0x62')]=getAuth(_0x36c727);return getUser(_0x36c727,_0x6222ee[_0xb7fc('0x63')])[_0xb7fc('0x16')](function(_0x13437c){_0x1c1075=_0x13437c;logger['info']('The\x20User\x20ID\x20is:',_0x1c1075['id']);return getEndUser(_0x36c727,_0xc20d07[_0xb7fc('0x64')],_0xc20d07[_0xb7fc('0x65')]);})['then'](function(_0x5351a2){_0x34a564=_0x5351a2;logger[_0xb7fc('0xd')]('The\x20Enduser\x20ID\x20is:',_0x34a564['id']);return getTicket(_0x36c727,_0x1c1075,_0x34a564,_0x4977a3,_0xc20d07);})[_0xb7fc('0x16')](function(_0x3e5b68){if(_0x3e5b68){logger[_0xb7fc('0xd')](_0xb7fc('0x4f'),_0x3e5b68['id']);switch(_0x36c727[_0xb7fc('0x39')]){case'integrationTab':logger['info'](_0xb7fc('0x60'),_0xb7fc('0x51'));return request({'uri':util['format'](_0xb7fc('0x52'),_0x36c727['remoteUri'],_0x1c1075['id'],_0x3e5b68['id']),'method':_0xb7fc('0x11')});case _0xb7fc('0x53'):logger[_0xb7fc('0xd')](_0xb7fc('0x60'),_0xb7fc('0x54'));emit(util[_0xb7fc('0xf')](_0xb7fc('0x55'),_0x6222ee['name']),_0xb7fc('0x56'),{'uri':util[_0xb7fc('0xf')](_0xb7fc('0x57'),_0x36c727[_0xb7fc('0x1a')]['replace'](_0xb7fc('0x58'),''),_0x3e5b68['id'])});break;default:logger[_0xb7fc('0x59')](_0xb7fc('0x60'),_0xb7fc('0x5a'));}}})[_0xb7fc('0x66')](function(_0x207e16){logger[_0xb7fc('0x59')](_0xb7fc('0x67'),util[_0xb7fc('0x5c')](_0x207e16,{'showHidden':!![],'depth':null}));});};exports['unmanaged']=function(_0x5e221c,_0x50f49c,_0x211b5a,_0x4faf32,_0x3439f8,_0xa23408){var _0xb97fcb,_0x13de5c;_0xa23408[_0xb7fc('0x1a')]=intUtil[_0xb7fc('0x46')](_0xa23408[_0xb7fc('0x1a')]);_0xa23408[_0xb7fc('0x47')]=intUtil[_0xb7fc('0x46')](_0xa23408[_0xb7fc('0x47')]);if(_0x3439f8&&_0x3439f8[_0xb7fc('0x68')]){logger['info']('['+_0x50f49c[_0xb7fc('0x69')]['toUpperCase']()+']','Recording\x20is\x20enabled!');_0x50f49c['recordingURL']=util[_0xb7fc('0xf')](_0xb7fc('0x6a'),_0xa23408[_0xb7fc('0x47')],_0x50f49c[_0xb7fc('0x49')],md5(_0x50f49c[_0xb7fc('0x49')]));}else{_0x50f49c[_0xb7fc('0x4a')]='';}headers[_0xb7fc('0x62')]=getAuth(_0xa23408);return getUser(_0xa23408)[_0xb7fc('0x16')](function(_0x233449){_0xb97fcb=_0x233449;logger['info'](_0xb7fc('0x4b'),_0xb97fcb['id']);return getEndUser(_0xa23408,_0x50f49c[_0xb7fc('0x4c')],_0x50f49c[_0xb7fc('0x4d')]);})[_0xb7fc('0x16')](function(_0x3b4cc9){_0x13de5c=_0x3b4cc9;logger['info'](_0xb7fc('0x4e'),_0x13de5c['id']);return getTicket(_0xa23408,_0xb97fcb,_0x13de5c,_0x211b5a,_0x50f49c);})['then'](function(_0x1a4baa){if(_0x1a4baa){logger[_0xb7fc('0xd')](_0xb7fc('0x4f'),_0x1a4baa['id']);}})[_0xb7fc('0x66')](function(_0x5b7fb8){logger[_0xb7fc('0x59')]('['+_0x50f49c['lastevent'][_0xb7fc('0x6b')]()+']'+_0xb7fc('0x6c'),util['inspect'](_0x5b7fb8,{'showHidden':!![],'depth':null}));});};
\ No newline at end of file
+var _0xa27c=['%s/agent/tickets/%s','replace','/api/v2','error','Zendesk\x20account\x20type\x20not\x20recognized','catch','inspect','outbound','recordingFormat','none','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','Authorization','The\x20User\x20ID\x20is:','destcalleridnum','The\x20Enduser\x20ID\x20is:','[OUTBOUND]','newTab','trigger:browser:url','[OUTBOUND]\x20Error\x20running\x20Zendesk\x20integration','unmanaged','lastevent','toUpperCase','Recording\x20is\x20enabled!','calleridname','calleridnum','\x20Error\x20running\x20Zendesk\x20integration','lodash','request-promise','md5','ioredis','./util','../../../../config/environment','../../../../config/logger','redis','localhost','socket.io-emitter','emit','info','Creating\x20new\x20ticket...','format','%s/tickets.json','POST','Tags','name','getString','Subjects','Descriptions','Fields','then','Ticket\x20created!','validateEmail','Getting\x20agent\x20with\x20email','%s/search.json','count','Agent\x20found!','find','results','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','%s/users/me.json','remoteUri','Admin\x20account\x20selected.','user','type:user\x20role:end-user\x20phone:%s','length','filter','end-user','Enduser\x20found!','Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!','%s/users.json','Caller\x20-\x20%s','Enduser\x20created.','authType','password','username','%s/token:%s','token','Basic\x20%s','base64','debug','[HTTP]','defaults','GET','map','forEach','picklist','type','nameField','customField','toLowerCase','content','toString','includes','string','custom_fields','push','variable','idField','variableName','customVariable','Variable','queue','stripTrailingSlash','serverUrl','monitor_format','[QUEUE]','recordingURL','uniqueid','email','The\x20Ticket\x20ID\x20is:','integrationTab','Displaying\x20ticket\x20to\x20agent...','%s/channels/voice/agents/%d/tickets/%d/display.json','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','user:%s'];(function(_0x29d915,_0x54a040){var _0x160f86=function(_0x237dfa){while(--_0x237dfa){_0x29d915['push'](_0x29d915['shift']());}};_0x160f86(++_0x54a040);}(_0xa27c,0xfe));var _0xca27=function(_0x39e4f6,_0x129594){_0x39e4f6=_0x39e4f6-0x0;var _0x4ed065=_0xa27c[_0x39e4f6];return _0x4ed065;};'use strict';var _=require(_0xca27('0x0'));var rp=require(_0xca27('0x1'));var md5=require(_0xca27('0x2'));var util=require('util');var Redis=require(_0xca27('0x3'));var intUtil=require(_0xca27('0x4'));var config=require(_0xca27('0x5'));var logger=require(_0xca27('0x6'))('zendesk');config[_0xca27('0x7')]=_['defaults'](config[_0xca27('0x7')],{'host':_0xca27('0x8'),'port':0x18eb});var io=require(_0xca27('0x9'))(new Redis(config['redis']));function emit(_0x281c7e,_0x33681e,_0x2e9a42){io['to'](_0x281c7e)[_0xca27('0xa')](_0x33681e,_0x2e9a42);}var headers={'Content-Type':'application/json','Accept':'application/json'};function getTicket(_0xc2551b,_0x498fff,_0x1c402d,_0x35d856,_0xc6896c){logger[_0xca27('0xb')](_0xca27('0xc'));return request({'uri':util[_0xca27('0xd')](_0xca27('0xe'),_0xc2551b['remoteUri']),'method':_0xca27('0xf'),'body':{'ticket':_['merge']({'requester_id':_0x1c402d['id'],'submitter_id':_0x498fff?_0x498fff['id']:undefined,'assignee_id':_0x498fff?_0x498fff['id']:undefined,'tags':getTags(_0x35d856[_0xca27('0x10')],_0xca27('0x11')),'subject':intUtil[_0xca27('0x12')](_0x35d856[_0xca27('0x13')],_0xc6896c,'\x20'),'description':intUtil[_0xca27('0x12')](_0x35d856[_0xca27('0x14')],_0xc6896c,'\x0a'),'comment':{'public':![],'body':intUtil[_0xca27('0x12')](_0x35d856['Descriptions'],_0xc6896c,'\x0a')}},getCustomFields(_0x35d856[_0xca27('0x15')],_0xc6896c))}})[_0xca27('0x16')](function(_0x30ad39){logger[_0xca27('0xb')](_0xca27('0x17'));return _0x30ad39['ticket'];});}function getUser(_0xc15daf,_0x371771){if(intUtil[_0xca27('0x18')](_0x371771)){logger['info'](_0xca27('0x19'),_0x371771);return request({'uri':util['format'](_0xca27('0x1a'),_0xc15daf['remoteUri']),'qs':{'query':util['format']('type:user\x20role:agent\x20email:%s',_0x371771)}})[_0xca27('0x16')](function(_0x53bbd5){if(_0x53bbd5[_0xca27('0x1b')]){logger['info'](_0xca27('0x1c'));return _[_0xca27('0x1d')](_0x53bbd5[_0xca27('0x1e')],{'email':_0x371771,'role':'agent'});}else{logger[_0xca27('0xb')](_0xca27('0x1f'));return request({'uri':util[_0xca27('0xd')](_0xca27('0x20'),_0xc15daf[_0xca27('0x21')])})['then'](function(_0x5c380c){logger[_0xca27('0xb')](_0xca27('0x22'));return _0x5c380c[_0xca27('0x23')];});}});}else{logger[_0xca27('0xb')](_0xca27('0x1f'));return request({'uri':util[_0xca27('0xd')](_0xca27('0x20'),_0xc15daf['remoteUri'])})['then'](function(_0xc68db3){logger['info'](_0xca27('0x22'));return _0xc68db3[_0xca27('0x23')];});}}function getEndUser(_0x42095c,_0x4e7863,_0x3cfb07){logger[_0xca27('0xb')]('Searching\x20enduser\x20with\x20phone',_0x3cfb07);return request({'uri':util[_0xca27('0xd')](_0xca27('0x1a'),_0x42095c[_0xca27('0x21')]),'qs':{'query':util[_0xca27('0xd')](_0xca27('0x24'),_0x3cfb07)}})['then'](function(_0xce6fc4){var _0x4fd2aa;if(_0xce6fc4[_0xca27('0x1e')][_0xca27('0x25')]){_0xce6fc4['results']=_[_0xca27('0x26')](_0xce6fc4[_0xca27('0x1e')],{'suspended':![],'role':_0xca27('0x27')});if(_0xce6fc4['results'][_0xca27('0x25')]){_0x4fd2aa=_['first'](_0xce6fc4[_0xca27('0x1e')]);}}if(_0x4fd2aa){logger[_0xca27('0xb')](_0xca27('0x28'));return _0x4fd2aa;}else{logger[_0xca27('0xb')](_0xca27('0x29'));return request({'uri':util['format'](_0xca27('0x2a'),_0x42095c['remoteUri']),'method':'POST','body':{'user':{'role':_0xca27('0x27'),'name':util['format'](_0xca27('0x2b'),_0x4e7863||_0x3cfb07),'phone':_0x3cfb07}}})['then'](function(_0x4e7d98){logger[_0xca27('0xb')](_0xca27('0x2c'));return _0x4e7d98[_0xca27('0x23')];});}});}function getAuth(_0x27d5c8){var _0x325431;if(_0x27d5c8[_0xca27('0x2d')]===_0xca27('0x2e')){_0x325431=util[_0xca27('0xd')]('%s:%s',_0x27d5c8[_0xca27('0x2f')],_0x27d5c8[_0xca27('0x2e')]);}else if(_0x27d5c8[_0xca27('0x2d')]==='token'){_0x325431=util[_0xca27('0xd')](_0xca27('0x30'),_0x27d5c8['username'],_0x27d5c8[_0xca27('0x31')]);}return util[_0xca27('0xd')](_0xca27('0x32'),new Buffer(_0x325431)['toString'](_0xca27('0x33')));}function request(_0x319e31){logger[_0xca27('0x34')](_0xca27('0x35'),JSON['stringify'](_0x319e31));return rp(_[_0xca27('0x36')](_0x319e31,{'method':_0xca27('0x37'),'headers':headers,'json':!![]}));}function getTags(_0x3c37cd,_0x272af3){var _0x13fca7=[];if(_0x3c37cd&&_0x3c37cd[_0xca27('0x25')]>0x0){_0x13fca7=_[_0xca27('0x38')](_0x3c37cd,_0x272af3);}return _0x13fca7;}function getCustomFields(_0x1354cc,_0x6caea9){var _0x35ffd8=[];var _0x530ee3={'custom_fields':[]};if(_0x1354cc[_0xca27('0x25')]>0x0){_[_0xca27('0x39')](_0x1354cc,function(_0x3f26c0){if(_['includes'](['string',_0xca27('0x3a')],_0x3f26c0[_0xca27('0x3b')])&&_0x3f26c0[_0xca27('0x3c')]&&!_0x3f26c0[_0xca27('0x3d')]){_0x530ee3[_0x3f26c0['nameField'][_0xca27('0x3e')]()]=_0x3f26c0[_0xca27('0x3f')][_0xca27('0x40')]();}else if(_[_0xca27('0x41')]([_0xca27('0x42'),_0xca27('0x3a')],_0x3f26c0[_0xca27('0x3b')])&&_0x3f26c0['idField']&&_0x3f26c0['customField']){_0x530ee3[_0xca27('0x43')][_0xca27('0x44')]({'id':_0x3f26c0['idField'],'value':_0x3f26c0['content'][_0xca27('0x40')]()});}else if(_0x3f26c0['type']===_0xca27('0x45')&&_0x3f26c0['variableName']&&_0x3f26c0[_0xca27('0x46')]&&_0x3f26c0[_0xca27('0x3d')]){_0x6caea9[_0x3f26c0['variableName']]&&_0x530ee3[_0xca27('0x43')][_0xca27('0x44')]({'id':_0x3f26c0[_0xca27('0x46')],'value':_0x6caea9[_0x3f26c0[_0xca27('0x47')]][_0xca27('0x40')]()});}else if(_0x3f26c0[_0xca27('0x3b')]===_0xca27('0x48')&&_0x3f26c0[_0xca27('0x49')]&&_0x3f26c0[_0xca27('0x49')][_0xca27('0x11')]&&_0x3f26c0[_0xca27('0x46')]&&_0x3f26c0[_0xca27('0x3d')]){_0x6caea9[_0x3f26c0[_0xca27('0x49')]['name'][_0xca27('0x3e')]()]&&_0x530ee3['custom_fields']['push']({'id':_0x3f26c0['idField'],'value':_0x6caea9[_0x3f26c0['Variable']['name'][_0xca27('0x3e')]()][_0xca27('0x40')]()});}});}return _0x530ee3;}exports[_0xca27('0x4a')]=function(_0x34bc09,_0x49e671,_0x4aa31c,_0x19a9dd,_0x20e2fe,_0x55997d){var _0x5c19a8,_0x51a0b9;_0x55997d[_0xca27('0x21')]=intUtil[_0xca27('0x4b')](_0x55997d[_0xca27('0x21')]);_0x55997d[_0xca27('0x4c')]=intUtil[_0xca27('0x4b')](_0x55997d['serverUrl']);if(_0x20e2fe&&_0x20e2fe[_0xca27('0x4d')]){logger['info'](_0xca27('0x4e'),'Recording\x20is\x20enabled!');_0x49e671[_0xca27('0x4f')]=util[_0xca27('0xd')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x55997d[_0xca27('0x4c')],_0x49e671[_0xca27('0x50')],md5(_0x49e671[_0xca27('0x50')]));}else{_0x49e671[_0xca27('0x4f')]='';}headers['Authorization']=getAuth(_0x55997d);return getUser(_0x55997d,_0x19a9dd[_0xca27('0x51')])[_0xca27('0x16')](function(_0x4fffcb){_0x5c19a8=_0x4fffcb;logger[_0xca27('0xb')]('The\x20User\x20ID\x20is:',_0x5c19a8['id']);return getEndUser(_0x55997d,_0x49e671['calleridname'],_0x49e671['calleridnum']);})[_0xca27('0x16')](function(_0x1a8ec4){_0x51a0b9=_0x1a8ec4;logger[_0xca27('0xb')]('The\x20Enduser\x20ID\x20is:',_0x51a0b9['id']);return getTicket(_0x55997d,_0x5c19a8,_0x51a0b9,_0x4aa31c,_0x49e671);})[_0xca27('0x16')](function(_0x25efbd){if(_0x25efbd){logger[_0xca27('0xb')](_0xca27('0x52'),_0x25efbd['id']);switch(_0x55997d[_0xca27('0x3b')]){case _0xca27('0x53'):logger[_0xca27('0xb')](_0xca27('0x4e'),_0xca27('0x54'));return request({'uri':util['format'](_0xca27('0x55'),_0x55997d[_0xca27('0x21')],_0x5c19a8['id'],_0x25efbd['id']),'method':_0xca27('0xf')});case'newTab':logger[_0xca27('0xb')](_0xca27('0x4e'),_0xca27('0x56'));emit(util[_0xca27('0xd')](_0xca27('0x57'),_0x19a9dd[_0xca27('0x11')]),'trigger:browser:url',{'uri':util[_0xca27('0xd')](_0xca27('0x58'),_0x55997d[_0xca27('0x21')][_0xca27('0x59')](_0xca27('0x5a'),''),_0x25efbd['id'])});break;default:logger[_0xca27('0x5b')](_0xca27('0x4e'),_0xca27('0x5c'));}}})[_0xca27('0x5d')](function(_0x43a020){logger[_0xca27('0x5b')]('[QUEUE]\x20Error\x20running\x20Zendesk\x20integration',util[_0xca27('0x5e')](_0x43a020,{'showHidden':!![],'depth':null}));});};exports[_0xca27('0x5f')]=function(_0x9fbef2,_0x270a58,_0x1f32ac,_0x4e0064,_0x98795f,_0x2d6170,_0x2321d2){var _0x28c406,_0x5c4144;_0x2d6170[_0xca27('0x21')]=intUtil[_0xca27('0x4b')](_0x2d6170['remoteUri']);_0x2d6170[_0xca27('0x4c')]=intUtil['stripTrailingSlash'](_0x2d6170[_0xca27('0x4c')]);if(_0x2321d2&&_0x2321d2['recordingFormat']&&_0x2321d2[_0xca27('0x60')]!==_0xca27('0x61')){logger[_0xca27('0xb')]('[OUTBOUND]','Recording\x20is\x20enabled!');_0x270a58[_0xca27('0x4f')]=util['format'](_0xca27('0x62'),_0x2d6170[_0xca27('0x4c')],_0x270a58[_0xca27('0x50')],md5(_0x270a58[_0xca27('0x50')]));}headers[_0xca27('0x63')]=getAuth(_0x2d6170);return getUser(_0x2d6170,_0x4e0064[_0xca27('0x51')])[_0xca27('0x16')](function(_0x4620aa){_0x28c406=_0x4620aa;logger[_0xca27('0xb')](_0xca27('0x64'),_0x28c406['id']);return getEndUser(_0x2d6170,_0x270a58['destcalleridname'],_0x270a58[_0xca27('0x65')]);})[_0xca27('0x16')](function(_0xc7ed5c){_0x5c4144=_0xc7ed5c;logger['info'](_0xca27('0x66'),_0x5c4144['id']);return getTicket(_0x2d6170,_0x28c406,_0x5c4144,_0x1f32ac,_0x270a58);})[_0xca27('0x16')](function(_0x23678d){if(_0x23678d){logger[_0xca27('0xb')](_0xca27('0x52'),_0x23678d['id']);switch(_0x2d6170['type']){case _0xca27('0x53'):logger[_0xca27('0xb')](_0xca27('0x67'),_0xca27('0x54'));return request({'uri':util[_0xca27('0xd')](_0xca27('0x55'),_0x2d6170[_0xca27('0x21')],_0x28c406['id'],_0x23678d['id']),'method':_0xca27('0xf')});case _0xca27('0x68'):logger['info'](_0xca27('0x67'),'Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...');emit(util[_0xca27('0xd')]('user:%s',_0x4e0064[_0xca27('0x11')]),_0xca27('0x69'),{'uri':util['format'](_0xca27('0x58'),_0x2d6170[_0xca27('0x21')][_0xca27('0x59')](_0xca27('0x5a'),''),_0x23678d['id'])});break;default:logger[_0xca27('0x5b')](_0xca27('0x67'),_0xca27('0x5c'));}}})[_0xca27('0x5d')](function(_0x5b398f){logger[_0xca27('0x5b')](_0xca27('0x6a'),util[_0xca27('0x5e')](_0x5b398f,{'showHidden':!![],'depth':null}));});};exports[_0xca27('0x6b')]=function(_0x2ceaf3,_0x1e6b60,_0x32f3e2,_0x96b4a9,_0x20d291,_0x4985f8){var _0x49e3a2,_0x530aa4;_0x4985f8['remoteUri']=intUtil[_0xca27('0x4b')](_0x4985f8[_0xca27('0x21')]);_0x4985f8[_0xca27('0x4c')]=intUtil['stripTrailingSlash'](_0x4985f8[_0xca27('0x4c')]);if(_0x20d291&&_0x20d291[_0xca27('0x4d')]){logger[_0xca27('0xb')]('['+_0x1e6b60[_0xca27('0x6c')][_0xca27('0x6d')]()+']',_0xca27('0x6e'));_0x1e6b60[_0xca27('0x4f')]=util[_0xca27('0xd')](_0xca27('0x62'),_0x4985f8[_0xca27('0x4c')],_0x1e6b60[_0xca27('0x50')],md5(_0x1e6b60[_0xca27('0x50')]));}else{_0x1e6b60[_0xca27('0x4f')]='';}headers[_0xca27('0x63')]=getAuth(_0x4985f8);return getUser(_0x4985f8)[_0xca27('0x16')](function(_0x4d0d1b){_0x49e3a2=_0x4d0d1b;logger['info'](_0xca27('0x64'),_0x49e3a2['id']);return getEndUser(_0x4985f8,_0x1e6b60[_0xca27('0x6f')],_0x1e6b60[_0xca27('0x70')]);})[_0xca27('0x16')](function(_0x32045b){_0x530aa4=_0x32045b;logger[_0xca27('0xb')](_0xca27('0x66'),_0x530aa4['id']);return getTicket(_0x4985f8,_0x49e3a2,_0x530aa4,_0x32f3e2,_0x1e6b60);})['then'](function(_0x10caaa){if(_0x10caaa){logger[_0xca27('0xb')](_0xca27('0x52'),_0x10caaa['id']);}})['catch'](function(_0x260e45){logger[_0xca27('0x5b')]('['+_0x1e6b60[_0xca27('0x6c')]['toUpperCase']()+']'+_0xca27('0x71'),util[_0xca27('0x5e')](_0x260e45,{'showHidden':!![],'depth':null}));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x506b=['util','./util','moment','ioredis','bluebird','../../../../config/environment','../../../../config/logger','zoho','defaults','redis','socket.io-emitter','debug','[HTTP]','length','forEach','includes','picklist','type','idField','variableName','toString','Variable','name','toLowerCase','indexOf','split','isNil','access_token','isBefore','expires_in','https://accounts.zoho.com','https://accounts.zoho.eu','https://accounts.zoho.in','https://accounts.zoho.com.cn','POST','/oauth/v2/token','refreshToken','clientSecret','refresh_token','then','add','error','Failing\x20creating\x20the\x20access_token','stack','format','https://www.zohoapis.%s/crm/v2/users','ActiveUsers','Zoho-oauthtoken\x20','isArrayLikeObject','users','findIndex','email','info','Agent\x20found!','Using\x20the\x20admin\x20account!','profile','Administrator','user','The\x20failing\x20result\x20is','stringify','Unable\x20to\x20retrieve\x20zoho\x20account\x20users:\x20','catch','data','enduserType','startCase','role','first_name','last_name','code','details','moduleCreate','Error:\x20','CREATE\x20ERROR','GET','moduleSearch','contact_lead','uri','https://www.zohoapis.','/crm/v2/Contacts/search?criteria=((Phone:equals:','Contacts','/crm/v2/Leads/search?criteria=((Phone:equals:','Leads','nothing','contact','lead','Creating\x20new\x20call...','Owner','administrator','Subject','getString','Subjects','Description','Descriptions','Who_Id','Full_Name','First_Name','Last_Name','What_Id','$se_module','talktime','Call_Duration','utc','mm:ss','answertime','endtime','YYYY-MM-DDTHH:mm:ss','diff','starttime','lastevent','called','Call_Result','Called','complete','connect','Rejected','abandoned','Abandoned','Timeout','Call_Start_Time','outbound','agentcalledAt','Call_Type','Inbound','merge','Fields','/crm/v2/Calls','SUCCESS','Call\x20created!','err','queue','host','stripTrailingSlash','serverUrl','monitor_format','[QUEUE]','Recording\x20is\x20enabled!','/api/voice/recordings/','uniqueid','/downloads?type=uniqueid&token=','recordingURL','zoho.eu','com','The\x20User\x20ID\x20is:','calleridname','calleridnum','The\x20Call\x20ID\x20is:','trigger:browser:url','/crm/EntityInfo.do?module=Calls&id=','recordingFormat','none','[OUTBOUND]','destcalleridnum','Outbound','Displaying\x20call\x20to\x20agent\x20in\x20a\x20new\x20tab...','https://crm.','unmanaged','toUpperCase','lodash','request-promise','md5'];(function(_0x3cf30e,_0x5d51aa){var _0x3469f8=function(_0x55e887){while(--_0x55e887){_0x3cf30e['push'](_0x3cf30e['shift']());}};_0x3469f8(++_0x5d51aa);}(_0x506b,0x13d));var _0xb506=function(_0x557938,_0x4fb2d9){_0x557938=_0x557938-0x0;var _0x40693b=_0x506b[_0x557938];return _0x40693b;};'use strict';var _=require(_0xb506('0x0'));var rp=require(_0xb506('0x1'));var md5=require(_0xb506('0x2'));var util=require(_0xb506('0x3'));var intUtil=require(_0xb506('0x4'));var moment=require(_0xb506('0x5'));var Redis=require(_0xb506('0x6'));var BPromise=require(_0xb506('0x7'));var config=require(_0xb506('0x8'));var logger=require(_0xb506('0x9'))(_0xb506('0xa'));config['redis']=_[_0xb506('0xb')](config[_0xb506('0xc')],{'host':'localhost','port':0x18eb});var io=require(_0xb506('0xd'))(new Redis(config[_0xb506('0xc')]));function emit(_0x306fda,_0x335902,_0x21adb6){io['to'](_0x306fda)['emit'](_0x335902,_0x21adb6);}function request(_0x445e82){logger[_0xb506('0xe')](_0xb506('0xf'),JSON['stringify'](_0x445e82));return rp(_0x445e82);}function getCustomFields(_0x4ba41e,_0x3487ec){var _0x2ed10f={};if(_0x4ba41e[_0xb506('0x10')]>0x0){_[_0xb506('0x11')](_0x4ba41e,function(_0x5384a7){if(_[_0xb506('0x12')](['string',_0xb506('0x13')],_0x5384a7[_0xb506('0x14')])&&_0x5384a7[_0xb506('0x15')]){_0x2ed10f[_0x5384a7[_0xb506('0x15')]]=_0x5384a7['content']['toString']();}else if(_0x5384a7[_0xb506('0x14')]==='variable'&&_0x5384a7[_0xb506('0x16')]&&_0x5384a7['idField']&&_0x3487ec[_0x5384a7['variableName']]){_0x2ed10f[_0x5384a7[_0xb506('0x15')]]=_0x3487ec[_0x5384a7['variableName']][_0xb506('0x17')]();}else if(_0x5384a7['type']==='customVariable'&&_0x5384a7[_0xb506('0x18')]&&_0x5384a7[_0xb506('0x18')][_0xb506('0x19')]&&_0x5384a7[_0xb506('0x15')]&&_0x3487ec[_0x5384a7[_0xb506('0x18')][_0xb506('0x19')][_0xb506('0x1a')]()]){_0x2ed10f[_0x5384a7[_0xb506('0x15')]]=_0x3487ec[_0x5384a7[_0xb506('0x18')][_0xb506('0x19')][_0xb506('0x1a')]()][_0xb506('0x17')]();}});}return _0x2ed10f;}function getName(_0x1fbf79){if(_0x1fbf79[_0xb506('0x1b')]('\x20')>0x0){var _0x38c634=_0x1fbf79[_0xb506('0x1c')](/ (.+)/);if(_0x38c634[0x1]){return _0x38c634;}}return[_0x1fbf79,_0x1fbf79];}var accountsTokens={};function getAccessToken(_0x34d5a8){return new Promise(function(_0x5f5ca9,_0x42ca38){if(!_[_0xb506('0x1d')](accountsTokens[_0x34d5a8['id']])&&!_[_0xb506('0x1d')](accountsTokens[_0x34d5a8['id']][_0xb506('0x1e')])){if(moment()[_0xb506('0x1f')](accountsTokens[_0x34d5a8['id']][_0xb506('0x20')])){_0x5f5ca9(accountsTokens[_0x34d5a8['id']][_0xb506('0x1e')]);}}var _0x507654;switch(_0x34d5a8['zone']){case'US':_0x507654=_0xb506('0x21');break;case'AU':_0x507654='https://accounts.zoho.com.au';break;case'EU':_0x507654=_0xb506('0x22');break;case'IN':_0x507654=_0xb506('0x23');break;case'CN':_0x507654=_0xb506('0x24');break;default:_0x507654=_0xb506('0x22');break;}var _0x1b895b={'method':_0xb506('0x25'),'uri':_0x507654+_0xb506('0x26'),'qs':{'refresh_token':_0x34d5a8[_0xb506('0x27')],'client_id':_0x34d5a8['clientId'],'client_secret':_0x34d5a8[_0xb506('0x28')],'grant_type':_0xb506('0x29')},'json':!![]};return rp(_0x1b895b)[_0xb506('0x2a')](function(_0x293cd6){accountsTokens[_0x34d5a8['id']]={'access_token':_0x293cd6['access_token'],'expires_in':moment()[_0xb506('0x2b')](_0x293cd6[_0xb506('0x20')],'seconds')};_0x5f5ca9(_0x293cd6[_0xb506('0x1e')]);})['catch'](function(_0x4f1532){logger[_0xb506('0x2c')](_0xb506('0x2d'),_0x4f1532[_0xb506('0x2e')]);_0x42ca38(_0x4f1532);});});}function getUser(_0x2e81e6,_0x3005fa,_0x4672fc,_0x39541c){logger['info']('Search\x20user');return request({'method':'GET','uri':util[_0xb506('0x2f')](_0xb506('0x30'),_0x3005fa),'qs':{'type':_0xb506('0x31')},'headers':{'Authorization':_0xb506('0x32')+_0x2e81e6},'json':!![]})['then'](function(_0x340ceb){if(_0x340ceb['users']){var _0x59324f=-0x1;if(_[_0xb506('0x33')](_0x340ceb[_0xb506('0x34')])){if(!_['isNil'](_0x39541c)){_0x59324f=_[_0xb506('0x35')](_0x340ceb[_0xb506('0x34')],function(_0x18dbe3){return _0x18dbe3[_0xb506('0x36')]===_0x39541c;});}if(_0x59324f>=0x0){logger[_0xb506('0x37')](_0xb506('0x38'));}else{logger['info'](_0xb506('0x39'));_0x59324f=_[_0xb506('0x35')](_0x340ceb[_0xb506('0x34')],function(_0xb986b7){return _0xb986b7[_0xb506('0x3a')][_0xb506('0x19')]===_0xb506('0x3b');});}return _0x340ceb['users'][_0x59324f];}else{if(_0x340ceb[_0xb506('0x3c')][_0xb506('0x3a')][_0xb506('0x19')]===_0xb506('0x3b')){logger[_0xb506('0x37')](_0xb506('0x39'));user=_0x340ceb[_0xb506('0x3c')];return user;}else{logger[_0xb506('0x2c')](_0xb506('0x3d'),JSON[_0xb506('0x3e')](_0x340ceb));throw new Error('Unable\x20to\x20retrieve\x20zoho\x20account\x20users:\x20'+JSON[_0xb506('0x3e')](_0x340ceb));}}}else{logger[_0xb506('0x2c')](_0xb506('0x3d'),JSON[_0xb506('0x3e')](_0x340ceb));throw new Error(_0xb506('0x3f')+JSON[_0xb506('0x3e')](_0x340ceb));}})[_0xb506('0x40')](function(_0x5cf8e){console['error'](_0x5cf8e);});}function getZohoUser(_0x495708,_0x3b808a){return new BPromise(function(_0x3231c1,_0x38d1f6){request(_0x495708)['then'](function(_0x2561ea){var _0x502a20=null;if(_0x2561ea){_0x502a20=_0x2561ea[_0xb506('0x41')][0x0];_0x502a20[_0xb506('0x42')]=_0x3b808a;}_0x3231c1(_0x502a20);})[_0xb506('0x40')](function(_0x4bccb1){_0x38d1f6(_0x4bccb1);});});}function createEndUser(_0x4a7461,_0x5a5d09,_0x5f0dda,_0x2d834e,_0x3fae5b,_0x5e127a){var _0x5f0dda=getName(_0x5f0dda);return request({'method':_0xb506('0x25'),'uri':'https://www.zohoapis.'+_0x5a5d09+'/crm/v2/'+_[_0xb506('0x43')](_0x5e127a['moduleCreate'])+'s','body':{'data':[{'Last_Name':_0x5f0dda[0x1],'First_Name':_0x5f0dda[0x0],'Phone':_0x2d834e,'Owner':{'name':!_[_0xb506('0x1d')](_0x3fae5b[_0xb506('0x44')][_0xb506('0x19')])?_0x3fae5b[_0xb506('0x44')][_0xb506('0x19')]:!_['isNil'](_0x3fae5b[_0xb506('0x45')])?_0x3fae5b[_0xb506('0x45')]+'\x20'+_0x3fae5b[_0xb506('0x46')]:_0x3fae5b[_0xb506('0x46')],'id':_0x3fae5b['id']}}]},'headers':{'Authorization':_0xb506('0x32')+_0x4a7461},'json':!![]})[_0xb506('0x2a')](function(_0x24135f){if(_0x24135f&&_0x24135f['data'][0x0][_0xb506('0x47')]==='SUCCESS'){var _0x3c543d=_0x24135f[_0xb506('0x41')][0x0][_0xb506('0x48')];_0x3c543d[_0xb506('0x42')]=_[_0xb506('0x43')](_0x5e127a[_0xb506('0x49')])+'s';return _0x3c543d;}logger[_0xb506('0x2c')]('The\x20failing\x20result\x20is',JSON[_0xb506('0x3e')](data));throw new Error(_0xb506('0x4a')+JSON[_0xb506('0x3e')](data));})[_0xb506('0x40')](function(_0x435e3b){console['log'](_0xb506('0x4b'),_0x435e3b);});}function getEndUser(_0x39c2d8,_0x2aa40b,_0x4633a2,_0x31b5ef,_0x362144,_0x55bdb2,_0x5387dc){var _0x50c9e5={'method':_0xb506('0x4c'),'uri':'','headers':{'Authorization':_0xb506('0x32')+_0x39c2d8},'json':!![]};switch(_0x5387dc[_0xb506('0x4d')]){case _0xb506('0x4e'):_0x50c9e5[_0xb506('0x4f')]=_0xb506('0x50')+_0x2aa40b+_0xb506('0x51')+_0x362144+'))';return getZohoUser(_0x50c9e5,_0xb506('0x52'))[_0xb506('0x2a')](function(_0x2fa315){if(_0x2fa315)return _0x2fa315;_0x50c9e5['uri']=_0xb506('0x50')+_0x2aa40b+_0xb506('0x53')+_0x362144+'))';return getZohoUser(_0x50c9e5,_0xb506('0x54'))[_0xb506('0x2a')](function(_0x5623d9){if(_0x5623d9)return _0x5623d9;if(_0x5387dc[_0xb506('0x49')]!=_0xb506('0x55')){return createEndUser(_0x39c2d8,_0x2aa40b,_0x31b5ef,_0x362144,_0x55bdb2,_0x5387dc);}else{return{};}});});break;case _0xb506('0x56'):_0x50c9e5[_0xb506('0x4f')]=_0xb506('0x50')+_0x2aa40b+'/crm/v2/Contacts/search?criteria=((Phone:equals:'+_0x362144+'))';return getZohoUser(_0x50c9e5,'Contacts')[_0xb506('0x2a')](function(_0x56aecd){if(_0x56aecd)return _0x56aecd;if(_0x5387dc[_0xb506('0x49')]!=_0xb506('0x55')){return createEndUser(_0x39c2d8,_0x2aa40b,_0x31b5ef,_0x362144,_0x55bdb2,_0x5387dc);}else{return{};}});break;case _0xb506('0x57'):_0x50c9e5[_0xb506('0x4f')]=_0xb506('0x50')+_0x2aa40b+_0xb506('0x53')+_0x362144+'))';return getZohoUser(_0x50c9e5,_0xb506('0x54'))[_0xb506('0x2a')](function(_0x5a8f11){if(_0x5a8f11)return _0x5a8f11;if(_0x5387dc['moduleCreate']!=_0xb506('0x55')){return createEndUser(_0x39c2d8,_0x2aa40b,_0x31b5ef,_0x362144,_0x55bdb2,_0x5387dc);}else{return{};}});break;}}function getCall(_0x39ce72,_0x544727,_0x5df893,_0x8653,_0x5990cd,_0x45def7,_0x414e37,_0x170661){logger[_0xb506('0x37')](_0xb506('0x58'));var _0x48049e={};_0x48049e[_0xb506('0x59')]={'name':!_[_0xb506('0x1d')](_0x8653['role'][_0xb506('0x19')])&&!_[_0xb506('0x1d')](_0x8653[_0xb506('0x3a')][_0xb506('0x19')])&&_0x8653[_0xb506('0x3a')][_0xb506('0x19')]===_0xb506('0x5a')?_0x8653[_0xb506('0x44')][_0xb506('0x19')]:!_[_0xb506('0x1d')](_0x8653[_0xb506('0x45')])?_0x8653[_0xb506('0x45')]+'\x20'+_0x8653[_0xb506('0x46')]:_0x8653['last_name'],'id':_0x8653['id']};_0x48049e[_0xb506('0x5b')]=intUtil[_0xb506('0x5c')](_0x45def7[_0xb506('0x5d')],_0x414e37,'\x20');_0x48049e[_0xb506('0x5e')]=intUtil[_0xb506('0x5c')](_0x45def7[_0xb506('0x5f')],_0x414e37,'\x0a');if(_0x5990cd[_0xb506('0x42')]===_0xb506('0x52')){_0x48049e[_0xb506('0x60')]={'name':!_[_0xb506('0x1d')](_0x5990cd[_0xb506('0x61')])?_0x5990cd[_0xb506('0x61')]:!_[_0xb506('0x1d')](_0x5990cd['First_Name'])?_0x5990cd[_0xb506('0x62')]+'\x20'+_0x5990cd[_0xb506('0x63')]:_0x5990cd[_0xb506('0x63')],'id':_0x5990cd['id']};}if(_0x5990cd[_0xb506('0x42')]===_0xb506('0x54')){_0x48049e[_0xb506('0x64')]={'name':!_[_0xb506('0x1d')](_0x5990cd[_0xb506('0x61')])?_0x5990cd[_0xb506('0x61')]:!_[_0xb506('0x1d')](_0x5990cd[_0xb506('0x62')])?_0x5990cd['First_Name']+'\x20'+_0x5990cd[_0xb506('0x63')]:_0x5990cd[_0xb506('0x63')],'id':_0x5990cd['id']};_0x48049e[_0xb506('0x65')]=_[_0xb506('0x43')](_0x5990cd[_0xb506('0x42')]);}if(_0x414e37[_0xb506('0x66')]){_0x48049e[_0xb506('0x67')]=moment[_0xb506('0x68')](parseInt(_0x414e37['talktime'])*0x3e8)['format'](_0xb506('0x69'));}else if(_0x414e37[_0xb506('0x6a')]&&_0x414e37[_0xb506('0x6b')]){_0x48049e[_0xb506('0x67')]=moment[_0xb506('0x68')](moment(_0x414e37[_0xb506('0x6b')],_0xb506('0x6c'))[_0xb506('0x6d')](moment(_0x414e37[_0xb506('0x6e')],'YYYY-MM-DDTHH:mm:ss')))[_0xb506('0x2f')](_0xb506('0x69'));}switch(_0x414e37[_0xb506('0x6f')]){case _0xb506('0x70'):_0x48049e[_0xb506('0x71')]=_0xb506('0x72');break;case _0xb506('0x73'):case _0xb506('0x74'):_0x48049e[_0xb506('0x71')]='Answered';break;case'rejected':_0x48049e[_0xb506('0x71')]=_0xb506('0x75');break;case _0xb506('0x76'):_0x48049e[_0xb506('0x71')]=_0xb506('0x77');break;case'timeout':_0x48049e[_0xb506('0x71')]=_0xb506('0x78');default:}_0x48049e[_0xb506('0x79')]=(_0x170661===_0xb506('0x7a')?moment(_0x414e37[_0xb506('0x6e')])[_0xb506('0x2f')]('YYYY-MM-DDTHH:mm:ss'):moment(_0x414e37[_0xb506('0x7b')])[_0xb506('0x2f')](_0xb506('0x6c')))||moment()[_0xb506('0x2f')]('YYYY-MM-DDTHH:mm:ss');_0x48049e[_0xb506('0x7c')]=_0x170661||_0xb506('0x7d');_0x48049e=_[_0xb506('0x7e')](_0x48049e,getCustomFields(_0x45def7[_0xb506('0x7f')],_0x414e37));return request({'method':'POST','uri':_0xb506('0x50')+_0x544727+_0xb506('0x80'),'headers':{'Authorization':_0xb506('0x32')+_0x39ce72},'body':{'data':[_0x48049e]},'json':!![]})[_0xb506('0x2a')](function(_0x2fc31c){if(_0x2fc31c&&_0x2fc31c[_0xb506('0x41')][0x0]['code']===_0xb506('0x81')){logger['info'](_0xb506('0x82'));return{'id':_0x2fc31c[_0xb506('0x41')][0x0][_0xb506('0x48')]['id']};}})['catch'](function(_0x32c59b){logger[_0xb506('0x37')](_0xb506('0x83'),_0x32c59b[_0xb506('0x2e')]);console['log'](_0xb506('0x83'),_0x32c59b);});}exports[_0xb506('0x84')]=function(_0x204736,_0x12543e,_0xd5403a,_0x1a2ae8,_0x4348d3,_0x4684c8){var _0x5af8dd,_0x2d0975,_0x20ab8b;_0x4684c8[_0xb506('0x85')]=intUtil[_0xb506('0x86')](_0x4684c8['host']);_0x4684c8[_0xb506('0x87')]=intUtil[_0xb506('0x86')](_0x4684c8[_0xb506('0x87')]);if(_0x4348d3&&_0x4348d3[_0xb506('0x88')]){logger['info'](_0xb506('0x89'),_0xb506('0x8a'));_0x12543e['recordingURL']=_0x4684c8['serverUrl']+_0xb506('0x8b')+_0x12543e[_0xb506('0x8c')]+_0xb506('0x8d')+md5(_0x12543e['uniqueid']);}else{_0x12543e[_0xb506('0x8e')]='';}var _0x4d4f70=_0x4684c8[_0xb506('0x85')]===_0xb506('0x8f')?'eu':_0xb506('0x90');return getAccessToken(_0x4684c8)['then'](function(_0x2684d5){_0x20ab8b=_0x2684d5;return getUser(_0x20ab8b,_0x4d4f70,_0x4684c8,_0x1a2ae8[_0xb506('0x36')]);})[_0xb506('0x2a')](function(_0x1e9538){_0x5af8dd=_0x1e9538;logger[_0xb506('0x37')](_0xb506('0x91'),_0x5af8dd['id']);return getEndUser(_0x20ab8b,_0x4d4f70,_0x4684c8,_0x12543e[_0xb506('0x92')],_0x12543e[_0xb506('0x93')],_0x5af8dd,_0xd5403a);})[_0xb506('0x2a')](function(_0x3d672e){_0x2d0975=_0x3d672e;return getCall(_0x20ab8b,_0x4d4f70,_0x4684c8,_0x5af8dd,_0x2d0975,_0xd5403a,_0x12543e,_0xb506('0x7d'));})[_0xb506('0x2a')](function(_0x465f9b){if(_0x465f9b){logger[_0xb506('0x37')](_0xb506('0x94'),_0x465f9b['id']);logger[_0xb506('0x37')](_0xb506('0x89'),'Displaying\x20call\x20to\x20agent\x20in\x20a\x20new\x20tab...');emit(util['format']('user:%s',_0x1a2ae8[_0xb506('0x19')]),_0xb506('0x95'),{'uri':'https://crm.'+_0x4684c8['host']+_0xb506('0x96')+_0x465f9b['id']});}})[_0xb506('0x40')](function(_0x1414c3){logger[_0xb506('0x2c')]('[QUEUE]',JSON['stringify'](_0x1414c3));});};exports[_0xb506('0x7a')]=function(_0x2fbb79,_0x110191,_0xc7771a,_0x284602,_0x16a337,_0x1ed32b,_0x456d32){var _0x431ac5,_0x5a3bdb,_0x13af5b;_0x1ed32b['host']=intUtil['stripTrailingSlash'](_0x1ed32b['host']);_0x1ed32b[_0xb506('0x87')]=intUtil[_0xb506('0x86')](_0x1ed32b[_0xb506('0x87')]);if(_0x456d32&&_0x456d32[_0xb506('0x97')]&&_0x456d32[_0xb506('0x97')]!==_0xb506('0x98')){logger[_0xb506('0x37')](_0xb506('0x99'),'Recording\x20is\x20enabled!');_0x110191[_0xb506('0x8e')]=_0x1ed32b['serverUrl']+_0xb506('0x8b')+_0x110191[_0xb506('0x8c')]+_0xb506('0x8d')+md5(_0x110191[_0xb506('0x8c')]);}var _0x52a814=_0x1ed32b[_0xb506('0x85')]===_0xb506('0x8f')?'eu':_0xb506('0x90');return getAccessToken(_0x1ed32b)[_0xb506('0x2a')](function(_0x22c595){_0x13af5b=_0x22c595;return getUser(_0x13af5b,_0x52a814,_0x1ed32b,_0x284602[_0xb506('0x36')]);})[_0xb506('0x2a')](function(_0x390b8f){_0x431ac5=_0x390b8f;logger[_0xb506('0x37')]('The\x20User\x20ID\x20is:',_0x431ac5['id']);return getEndUser(_0x13af5b,_0x52a814,_0x1ed32b,_0x110191['destcalleridname'],_0x110191[_0xb506('0x9a')],_0x431ac5,_0xc7771a);})[_0xb506('0x2a')](function(_0x46327f){_0x5a3bdb=_0x46327f;return getCall(_0x13af5b,_0x52a814,_0x1ed32b,_0x431ac5,_0x5a3bdb,_0xc7771a,_0x110191,_0xb506('0x9b'));})[_0xb506('0x2a')](function(_0x24a404){if(_0x24a404){logger['info'](_0xb506('0x94'),_0x24a404['id']);logger['info'](_0xb506('0x99'),_0xb506('0x9c'));emit(util[_0xb506('0x2f')]('user:%s',_0x284602[_0xb506('0x19')]),_0xb506('0x95'),{'uri':_0xb506('0x9d')+_0x1ed32b[_0xb506('0x85')]+'/crm/EntityInfo.do?module=Calls&id='+_0x24a404['id']});}})[_0xb506('0x40')](function(_0x2b7e3e){logger['error'](_0xb506('0x99'),JSON['stringify'](_0x2b7e3e));});};exports[_0xb506('0x9e')]=function(_0x59c04a,_0xada106,_0x4f2d78,_0x5485aa,_0x4d945b,_0x272076){var _0x6b99bd,_0x4eab0c,_0x1e9e60;_0x272076[_0xb506('0x85')]=intUtil[_0xb506('0x86')](_0x272076[_0xb506('0x85')]);_0x272076['serverUrl']=intUtil[_0xb506('0x86')](_0x272076['serverUrl']);if(_0x4d945b&&_0x4d945b[_0xb506('0x88')]){logger[_0xb506('0x37')]('['+_0xada106['lastevent'][_0xb506('0x9f')]()+']',_0xb506('0x8a'));_0xada106['recordingURL']=_0x272076[_0xb506('0x87')]+_0xb506('0x8b')+_0xada106[_0xb506('0x8c')]+_0xb506('0x8d')+md5(_0xada106[_0xb506('0x8c')]);}else{_0xada106[_0xb506('0x8e')]='';}var _0x3c5a96=_0x272076[_0xb506('0x85')]===_0xb506('0x8f')?'eu':_0xb506('0x90');return getAccessToken(_0x272076)[_0xb506('0x2a')](function(_0x29074){_0x1e9e60=_0x29074;return getUser(_0x1e9e60,_0x3c5a96,_0x272076);})[_0xb506('0x2a')](function(_0x6c2ee9){_0x6b99bd=_0x6c2ee9;logger[_0xb506('0x37')]('The\x20User\x20ID\x20is:',_0x6b99bd['id']);return getEndUser(_0x1e9e60,_0x3c5a96,_0x272076,_0xada106[_0xb506('0x92')],_0xada106['calleridnum'],_0x6b99bd,_0x4f2d78);})['then'](function(_0x43a7c7){_0x4eab0c=_0x43a7c7;return getCall(_0x1e9e60,_0x3c5a96,_0x272076,_0x6b99bd,_0x4eab0c,_0x4f2d78,_0xada106,_0xb506('0x7d'));})[_0xb506('0x2a')](function(_0x49b580){if(_0x49b580){logger[_0xb506('0x37')](_0xb506('0x94'),_0x49b580['id']);}})[_0xb506('0x40')](function(_0xd8f1f5){logger['error']('['+_0xada106[_0xb506('0x6f')][_0xb506('0x9f')]()+']',JSON[_0xb506('0x3e')](_0xd8f1f5));});};
\ No newline at end of file
+var _0xb333=['user:%s','monitor_format','lastevent','Inbound','toUpperCase','lodash','md5','./util','ioredis','bluebird','../../../../config/logger','zoho','redis','socket.io-emitter','emit','debug','length','includes','string','picklist','type','idField','content','toString','variable','variableName','customVariable','Variable','toLowerCase','isNil','access_token','isBefore','zone','https://accounts.zoho.com','https://accounts.zoho.eu','https://accounts.zoho.in','https://accounts.zoho.com.cn','/oauth/v2/token','then','add','expires_in','seconds','error','Failing\x20creating\x20the\x20access_token','stack','info','Search\x20user','GET','format','https://www.zohoapis.%s/crm/v2/users','ActiveUsers','isArrayLikeObject','users','findIndex','email','Agent\x20found!','Using\x20the\x20admin\x20account!','Administrator','user','profile','name','The\x20failing\x20result\x20is','stringify','Unable\x20to\x20retrieve\x20zoho\x20account\x20users:\x20','data','https://www.zohoapis.','startCase','moduleCreate','role','first_name','last_name','code','SUCCESS','details','Error:\x20','catch','Zoho-oauthtoken\x20','contact_lead','uri','Contacts','/crm/v2/Leads/search?criteria=((Phone:equals:','nothing','contact','lead','Leads','Creating\x20new\x20call...','Owner','administrator','Subjects','Description','getString','Descriptions','enduserType','Who_Id','Full_Name','First_Name','Last_Name','talktime','Call_Duration','utc','mm:ss','endtime','diff','starttime','YYYY-MM-DDTHH:mm:ss','called','Call_Result','Called','complete','Answered','rejected','Rejected','Abandoned','Timeout','outbound','agentcalledAt','Call_Type','merge','Fields','/crm/v2/Calls','Call\x20created!','log','err','queue','host','stripTrailingSlash','serverUrl','[QUEUE]','/api/voice/recordings/','uniqueid','/downloads?type=uniqueid&token=','recordingURL','com','calleridname','calleridnum','The\x20Call\x20ID\x20is:','Displaying\x20call\x20to\x20agent\x20in\x20a\x20new\x20tab...','trigger:browser:url','https://crm.','/crm/EntityInfo.do?module=Calls&id=','recordingFormat','none','[OUTBOUND]','Recording\x20is\x20enabled!','zoho.eu','The\x20User\x20ID\x20is:','destcalleridname','destcalleridnum','Outbound'];(function(_0x5d80de,_0x2cf15d){var _0x1c7556=function(_0x5bd806){while(--_0x5bd806){_0x5d80de['push'](_0x5d80de['shift']());}};_0x1c7556(++_0x2cf15d);}(_0xb333,0x12f));var _0x3b33=function(_0x39c7e3,_0x93f485){_0x39c7e3=_0x39c7e3-0x0;var _0x437851=_0xb333[_0x39c7e3];return _0x437851;};'use strict';var _=require(_0x3b33('0x0'));var rp=require('request-promise');var md5=require(_0x3b33('0x1'));var util=require('util');var intUtil=require(_0x3b33('0x2'));var moment=require('moment');var Redis=require(_0x3b33('0x3'));var BPromise=require(_0x3b33('0x4'));var config=require('../../../../config/environment');var logger=require(_0x3b33('0x5'))(_0x3b33('0x6'));config['redis']=_['defaults'](config[_0x3b33('0x7')],{'host':'localhost','port':0x18eb});var io=require(_0x3b33('0x8'))(new Redis(config[_0x3b33('0x7')]));function emit(_0x2a5e94,_0x504122,_0x486ca6){io['to'](_0x2a5e94)[_0x3b33('0x9')](_0x504122,_0x486ca6);}function request(_0x12318c){logger[_0x3b33('0xa')]('[HTTP]',JSON['stringify'](_0x12318c));return rp(_0x12318c);}function getCustomFields(_0x18247f,_0x24edf0){var _0x2ba9ea={};if(_0x18247f[_0x3b33('0xb')]>0x0){_['forEach'](_0x18247f,function(_0x45cc5c){if(_[_0x3b33('0xc')]([_0x3b33('0xd'),_0x3b33('0xe')],_0x45cc5c[_0x3b33('0xf')])&&_0x45cc5c[_0x3b33('0x10')]){_0x2ba9ea[_0x45cc5c[_0x3b33('0x10')]]=_0x45cc5c[_0x3b33('0x11')][_0x3b33('0x12')]();}else if(_0x45cc5c[_0x3b33('0xf')]===_0x3b33('0x13')&&_0x45cc5c[_0x3b33('0x14')]&&_0x45cc5c[_0x3b33('0x10')]&&_0x24edf0[_0x45cc5c[_0x3b33('0x14')]]){_0x2ba9ea[_0x45cc5c[_0x3b33('0x10')]]=_0x24edf0[_0x45cc5c['variableName']]['toString']();}else if(_0x45cc5c[_0x3b33('0xf')]===_0x3b33('0x15')&&_0x45cc5c[_0x3b33('0x16')]&&_0x45cc5c[_0x3b33('0x16')]['name']&&_0x45cc5c[_0x3b33('0x10')]&&_0x24edf0[_0x45cc5c[_0x3b33('0x16')]['name'][_0x3b33('0x17')]()]){_0x2ba9ea[_0x45cc5c[_0x3b33('0x10')]]=_0x24edf0[_0x45cc5c['Variable']['name'][_0x3b33('0x17')]()]['toString']();}});}return _0x2ba9ea;}function getName(_0x91568d){if(_0x91568d['indexOf']('\x20')>0x0){var _0x564413=_0x91568d['split'](/ (.+)/);if(_0x564413[0x1]){return _0x564413;}}return[_0x91568d,_0x91568d];}var accountsTokens={};function getAccessToken(_0x570c87){return new Promise(function(_0x5e6787,_0x3fb664){if(!_[_0x3b33('0x18')](accountsTokens[_0x570c87['id']])&&!_[_0x3b33('0x18')](accountsTokens[_0x570c87['id']][_0x3b33('0x19')])){if(moment()[_0x3b33('0x1a')](accountsTokens[_0x570c87['id']]['expires_in'])){_0x5e6787(accountsTokens[_0x570c87['id']][_0x3b33('0x19')]);}}var _0xe6cefc;switch(_0x570c87[_0x3b33('0x1b')]){case'US':_0xe6cefc=_0x3b33('0x1c');break;case'AU':_0xe6cefc='https://accounts.zoho.com.au';break;case'EU':_0xe6cefc=_0x3b33('0x1d');break;case'IN':_0xe6cefc=_0x3b33('0x1e');break;case'CN':_0xe6cefc=_0x3b33('0x1f');break;default:_0xe6cefc=_0x3b33('0x1d');break;}var _0x5e0fa8={'method':'POST','uri':_0xe6cefc+_0x3b33('0x20'),'qs':{'refresh_token':_0x570c87['refreshToken'],'client_id':_0x570c87['clientId'],'client_secret':_0x570c87['clientSecret'],'grant_type':'refresh_token'},'json':!![]};return rp(_0x5e0fa8)[_0x3b33('0x21')](function(_0x56fa51){accountsTokens[_0x570c87['id']]={'access_token':_0x56fa51['access_token'],'expires_in':moment()[_0x3b33('0x22')](_0x56fa51[_0x3b33('0x23')],_0x3b33('0x24'))};_0x5e6787(_0x56fa51['access_token']);})['catch'](function(_0x26c719){logger[_0x3b33('0x25')](_0x3b33('0x26'),_0x26c719[_0x3b33('0x27')]);_0x3fb664(_0x26c719);});});}function getUser(_0x10de9d,_0x52ae7f,_0x12e0bf,_0x23f001){logger[_0x3b33('0x28')](_0x3b33('0x29'));return request({'method':_0x3b33('0x2a'),'uri':util[_0x3b33('0x2b')](_0x3b33('0x2c'),_0x52ae7f),'qs':{'type':_0x3b33('0x2d')},'headers':{'Authorization':'Zoho-oauthtoken\x20'+_0x10de9d},'json':!![]})[_0x3b33('0x21')](function(_0x48edb2){if(_0x48edb2['users']){var _0x3cb121=-0x1;if(_[_0x3b33('0x2e')](_0x48edb2[_0x3b33('0x2f')])){if(!_[_0x3b33('0x18')](_0x23f001)){_0x3cb121=_[_0x3b33('0x30')](_0x48edb2[_0x3b33('0x2f')],function(_0xb3217e){return _0xb3217e[_0x3b33('0x31')]===_0x23f001;});}if(_0x3cb121>=0x0){logger['info'](_0x3b33('0x32'));}else{logger['info'](_0x3b33('0x33'));_0x3cb121=_[_0x3b33('0x30')](_0x48edb2['users'],function(_0x36f96c){return _0x36f96c['profile']['name']===_0x3b33('0x34');});}return _0x48edb2['users'][_0x3cb121];}else{if(_0x48edb2[_0x3b33('0x35')][_0x3b33('0x36')][_0x3b33('0x37')]===_0x3b33('0x34')){logger['info'](_0x3b33('0x33'));user=_0x48edb2['user'];return user;}else{logger[_0x3b33('0x25')](_0x3b33('0x38'),JSON[_0x3b33('0x39')](_0x48edb2));throw new Error('Unable\x20to\x20retrieve\x20zoho\x20account\x20users:\x20'+JSON[_0x3b33('0x39')](_0x48edb2));}}}else{logger[_0x3b33('0x25')](_0x3b33('0x38'),JSON[_0x3b33('0x39')](_0x48edb2));throw new Error(_0x3b33('0x3a')+JSON[_0x3b33('0x39')](_0x48edb2));}})['catch'](function(_0x32a2e5){console[_0x3b33('0x25')](_0x32a2e5);});}function getZohoUser(_0x579c3c,_0xbeb749){return new BPromise(function(_0x18f044,_0x257aa9){request(_0x579c3c)['then'](function(_0x4fefcb){var _0x1ae586=null;if(_0x4fefcb){_0x1ae586=_0x4fefcb[_0x3b33('0x3b')][0x0];_0x1ae586['enduserType']=_0xbeb749;}_0x18f044(_0x1ae586);})['catch'](function(_0x2e9beb){_0x257aa9(_0x2e9beb);});});}function createEndUser(_0x2b3b8a,_0xbc3bcd,_0x28a381,_0x2998f5,_0x4647b6,_0x3c15f5){var _0x28a381=getName(_0x28a381);return request({'method':'POST','uri':_0x3b33('0x3c')+_0xbc3bcd+'/crm/v2/'+_[_0x3b33('0x3d')](_0x3c15f5[_0x3b33('0x3e')])+'s','body':{'data':[{'Last_Name':_0x28a381[0x1],'First_Name':_0x28a381[0x0],'Phone':_0x2998f5,'Owner':{'name':!_[_0x3b33('0x18')](_0x4647b6[_0x3b33('0x3f')][_0x3b33('0x37')])?_0x4647b6[_0x3b33('0x3f')][_0x3b33('0x37')]:!_['isNil'](_0x4647b6[_0x3b33('0x40')])?_0x4647b6[_0x3b33('0x40')]+'\x20'+_0x4647b6[_0x3b33('0x41')]:_0x4647b6[_0x3b33('0x41')],'id':_0x4647b6['id']}}]},'headers':{'Authorization':'Zoho-oauthtoken\x20'+_0x2b3b8a},'json':!![]})['then'](function(_0x1e2c10){if(_0x1e2c10&&_0x1e2c10[_0x3b33('0x3b')][0x0][_0x3b33('0x42')]===_0x3b33('0x43')){var _0x4f7117=_0x1e2c10[_0x3b33('0x3b')][0x0][_0x3b33('0x44')];_0x4f7117['enduserType']=_[_0x3b33('0x3d')](_0x3c15f5['moduleCreate'])+'s';return _0x4f7117;}logger[_0x3b33('0x25')]('The\x20failing\x20result\x20is',JSON[_0x3b33('0x39')](data));throw new Error(_0x3b33('0x45')+JSON[_0x3b33('0x39')](data));})[_0x3b33('0x46')](function(_0x2e3e86){console['log']('CREATE\x20ERROR',_0x2e3e86);});}function getEndUser(_0x591fad,_0x5cc0c4,_0x1293a5,_0x42d477,_0x23585c,_0x1058a1,_0x44409b){var _0x5d033f={'method':'GET','uri':'','headers':{'Authorization':_0x3b33('0x47')+_0x591fad},'json':!![]};switch(_0x44409b['moduleSearch']){case _0x3b33('0x48'):_0x5d033f[_0x3b33('0x49')]='https://www.zohoapis.'+_0x5cc0c4+'/crm/v2/Contacts/search?criteria=((Phone:equals:'+_0x23585c+'))';return getZohoUser(_0x5d033f,_0x3b33('0x4a'))[_0x3b33('0x21')](function(_0x52d423){if(_0x52d423)return _0x52d423;_0x5d033f['uri']='https://www.zohoapis.'+_0x5cc0c4+_0x3b33('0x4b')+_0x23585c+'))';return getZohoUser(_0x5d033f,'Leads')[_0x3b33('0x21')](function(_0xc35283){if(_0xc35283)return _0xc35283;if(_0x44409b['moduleCreate']!=_0x3b33('0x4c')){return createEndUser(_0x591fad,_0x5cc0c4,_0x42d477,_0x23585c,_0x1058a1,_0x44409b);}else{return{};}});});break;case _0x3b33('0x4d'):_0x5d033f[_0x3b33('0x49')]='https://www.zohoapis.'+_0x5cc0c4+'/crm/v2/Contacts/search?criteria=((Phone:equals:'+_0x23585c+'))';return getZohoUser(_0x5d033f,_0x3b33('0x4a'))[_0x3b33('0x21')](function(_0xe5cf7c){if(_0xe5cf7c)return _0xe5cf7c;if(_0x44409b[_0x3b33('0x3e')]!='nothing'){return createEndUser(_0x591fad,_0x5cc0c4,_0x42d477,_0x23585c,_0x1058a1,_0x44409b);}else{return{};}});break;case _0x3b33('0x4e'):_0x5d033f[_0x3b33('0x49')]='https://www.zohoapis.'+_0x5cc0c4+_0x3b33('0x4b')+_0x23585c+'))';return getZohoUser(_0x5d033f,_0x3b33('0x4f'))[_0x3b33('0x21')](function(_0x2941b3){if(_0x2941b3)return _0x2941b3;if(_0x44409b[_0x3b33('0x3e')]!=_0x3b33('0x4c')){return createEndUser(_0x591fad,_0x5cc0c4,_0x42d477,_0x23585c,_0x1058a1,_0x44409b);}else{return{};}});break;}}function getCall(_0x246b9b,_0x498b10,_0x27ce18,_0x5f457c,_0x1d9ef4,_0x263fb9,_0x3212b5,_0x5dd585){logger[_0x3b33('0x28')](_0x3b33('0x50'));var _0x55c610={};_0x55c610[_0x3b33('0x51')]={'name':!_[_0x3b33('0x18')](_0x5f457c[_0x3b33('0x3f')][_0x3b33('0x37')])&&!_[_0x3b33('0x18')](_0x5f457c['profile']['name'])&&_0x5f457c[_0x3b33('0x36')][_0x3b33('0x37')]===_0x3b33('0x52')?_0x5f457c[_0x3b33('0x3f')]['name']:!_[_0x3b33('0x18')](_0x5f457c[_0x3b33('0x40')])?_0x5f457c[_0x3b33('0x40')]+'\x20'+_0x5f457c[_0x3b33('0x41')]:_0x5f457c[_0x3b33('0x41')],'id':_0x5f457c['id']};_0x55c610['Subject']=intUtil['getString'](_0x263fb9[_0x3b33('0x53')],_0x3212b5,'\x20');_0x55c610[_0x3b33('0x54')]=intUtil[_0x3b33('0x55')](_0x263fb9[_0x3b33('0x56')],_0x3212b5,'\x0a');if(_0x1d9ef4[_0x3b33('0x57')]===_0x3b33('0x4a')){_0x55c610[_0x3b33('0x58')]={'name':!_[_0x3b33('0x18')](_0x1d9ef4[_0x3b33('0x59')])?_0x1d9ef4['Full_Name']:!_[_0x3b33('0x18')](_0x1d9ef4[_0x3b33('0x5a')])?_0x1d9ef4[_0x3b33('0x5a')]+'\x20'+_0x1d9ef4[_0x3b33('0x5b')]:_0x1d9ef4[_0x3b33('0x5b')],'id':_0x1d9ef4['id']};}if(_0x1d9ef4[_0x3b33('0x57')]===_0x3b33('0x4f')){_0x55c610['What_Id']={'name':!_[_0x3b33('0x18')](_0x1d9ef4[_0x3b33('0x59')])?_0x1d9ef4['Full_Name']:!_['isNil'](_0x1d9ef4[_0x3b33('0x5a')])?_0x1d9ef4[_0x3b33('0x5a')]+'\x20'+_0x1d9ef4['Last_Name']:_0x1d9ef4['Last_Name'],'id':_0x1d9ef4['id']};_0x55c610['$se_module']=_['startCase'](_0x1d9ef4[_0x3b33('0x57')]);}if(_0x3212b5[_0x3b33('0x5c')]){_0x55c610[_0x3b33('0x5d')]=moment[_0x3b33('0x5e')](parseInt(_0x3212b5['talktime'])*0x3e8)[_0x3b33('0x2b')](_0x3b33('0x5f'));}else if(_0x3212b5['answertime']&&_0x3212b5[_0x3b33('0x60')]){_0x55c610['Call_Duration']=moment['utc'](moment(_0x3212b5[_0x3b33('0x60')],'YYYY-MM-DDTHH:mm:ss')[_0x3b33('0x61')](moment(_0x3212b5[_0x3b33('0x62')],_0x3b33('0x63'))))['format'](_0x3b33('0x5f'));}switch(_0x3212b5['lastevent']){case _0x3b33('0x64'):_0x55c610[_0x3b33('0x65')]=_0x3b33('0x66');break;case _0x3b33('0x67'):case'connect':_0x55c610[_0x3b33('0x65')]=_0x3b33('0x68');break;case _0x3b33('0x69'):_0x55c610[_0x3b33('0x65')]=_0x3b33('0x6a');break;case'abandoned':_0x55c610[_0x3b33('0x65')]=_0x3b33('0x6b');break;case'timeout':_0x55c610[_0x3b33('0x65')]=_0x3b33('0x6c');default:}_0x55c610['Call_Start_Time']=(_0x5dd585===_0x3b33('0x6d')?moment(_0x3212b5[_0x3b33('0x62')])['format'](_0x3b33('0x63')):moment(_0x3212b5[_0x3b33('0x6e')])['format'](_0x3b33('0x63')))||moment()[_0x3b33('0x2b')]('YYYY-MM-DDTHH:mm:ss');_0x55c610[_0x3b33('0x6f')]=_0x5dd585||'Inbound';_0x55c610=_[_0x3b33('0x70')](_0x55c610,getCustomFields(_0x263fb9[_0x3b33('0x71')],_0x3212b5));return request({'method':'POST','uri':'https://www.zohoapis.'+_0x498b10+_0x3b33('0x72'),'headers':{'Authorization':'Zoho-oauthtoken\x20'+_0x246b9b},'body':{'data':[_0x55c610]},'json':!![]})[_0x3b33('0x21')](function(_0x143b51){if(_0x143b51&&_0x143b51[_0x3b33('0x3b')][0x0][_0x3b33('0x42')]===_0x3b33('0x43')){logger[_0x3b33('0x28')](_0x3b33('0x73'));return{'id':_0x143b51[_0x3b33('0x3b')][0x0][_0x3b33('0x44')]['id']};}})[_0x3b33('0x46')](function(_0xf9c786){logger[_0x3b33('0x28')]('err',_0xf9c786[_0x3b33('0x27')]);console[_0x3b33('0x74')](_0x3b33('0x75'),_0xf9c786);});}exports[_0x3b33('0x76')]=function(_0x49969a,_0x368c76,_0x4aaf0e,_0x5dd6cc,_0x3efbd1,_0x365d2a){var _0x3257c2,_0x4f7f36,_0x3a9c97;_0x365d2a[_0x3b33('0x77')]=intUtil[_0x3b33('0x78')](_0x365d2a['host']);_0x365d2a[_0x3b33('0x79')]=intUtil[_0x3b33('0x78')](_0x365d2a[_0x3b33('0x79')]);if(_0x3efbd1&&_0x3efbd1['monitor_format']){logger[_0x3b33('0x28')](_0x3b33('0x7a'),'Recording\x20is\x20enabled!');_0x368c76['recordingURL']=_0x365d2a[_0x3b33('0x79')]+_0x3b33('0x7b')+_0x368c76[_0x3b33('0x7c')]+_0x3b33('0x7d')+md5(_0x368c76[_0x3b33('0x7c')]);}else{_0x368c76[_0x3b33('0x7e')]='';}var _0x40079b=_0x365d2a['host']==='zoho.eu'?'eu':_0x3b33('0x7f');return getAccessToken(_0x365d2a)[_0x3b33('0x21')](function(_0x100913){_0x3a9c97=_0x100913;return getUser(_0x3a9c97,_0x40079b,_0x365d2a,_0x5dd6cc[_0x3b33('0x31')]);})[_0x3b33('0x21')](function(_0x23e4c8){_0x3257c2=_0x23e4c8;logger[_0x3b33('0x28')]('The\x20User\x20ID\x20is:',_0x3257c2['id']);return getEndUser(_0x3a9c97,_0x40079b,_0x365d2a,_0x368c76[_0x3b33('0x80')],_0x368c76[_0x3b33('0x81')],_0x3257c2,_0x4aaf0e);})[_0x3b33('0x21')](function(_0x375cd9){_0x4f7f36=_0x375cd9;return getCall(_0x3a9c97,_0x40079b,_0x365d2a,_0x3257c2,_0x4f7f36,_0x4aaf0e,_0x368c76,'Inbound');})['then'](function(_0x2f3cd0){if(_0x2f3cd0){logger[_0x3b33('0x28')](_0x3b33('0x82'),_0x2f3cd0['id']);logger[_0x3b33('0x28')](_0x3b33('0x7a'),_0x3b33('0x83'));emit(util[_0x3b33('0x2b')]('user:%s',_0x5dd6cc[_0x3b33('0x37')]),_0x3b33('0x84'),{'uri':_0x3b33('0x85')+_0x365d2a['host']+_0x3b33('0x86')+_0x2f3cd0['id']});}})[_0x3b33('0x46')](function(_0x598b37){logger[_0x3b33('0x25')](_0x3b33('0x7a'),JSON[_0x3b33('0x39')](_0x598b37));});};exports[_0x3b33('0x6d')]=function(_0x278e0a,_0x259474,_0x20512c,_0x5af5ab,_0x8c0012,_0x160873,_0x4b2632){var _0x1861cb,_0x567511,_0x21ce3f;_0x160873[_0x3b33('0x77')]=intUtil[_0x3b33('0x78')](_0x160873[_0x3b33('0x77')]);_0x160873['serverUrl']=intUtil[_0x3b33('0x78')](_0x160873[_0x3b33('0x79')]);if(_0x4b2632&&_0x4b2632[_0x3b33('0x87')]&&_0x4b2632[_0x3b33('0x87')]!==_0x3b33('0x88')){logger['info'](_0x3b33('0x89'),_0x3b33('0x8a'));_0x259474[_0x3b33('0x7e')]=_0x160873[_0x3b33('0x79')]+_0x3b33('0x7b')+_0x259474[_0x3b33('0x7c')]+_0x3b33('0x7d')+md5(_0x259474[_0x3b33('0x7c')]);}var _0x4bdd90=_0x160873['host']===_0x3b33('0x8b')?'eu':_0x3b33('0x7f');return getAccessToken(_0x160873)[_0x3b33('0x21')](function(_0x3b879b){_0x21ce3f=_0x3b879b;return getUser(_0x21ce3f,_0x4bdd90,_0x160873,_0x5af5ab[_0x3b33('0x31')]);})[_0x3b33('0x21')](function(_0x178b3b){_0x1861cb=_0x178b3b;logger[_0x3b33('0x28')](_0x3b33('0x8c'),_0x1861cb['id']);return getEndUser(_0x21ce3f,_0x4bdd90,_0x160873,_0x259474[_0x3b33('0x8d')],_0x259474[_0x3b33('0x8e')],_0x1861cb,_0x20512c);})['then'](function(_0x53d1e8){_0x567511=_0x53d1e8;return getCall(_0x21ce3f,_0x4bdd90,_0x160873,_0x1861cb,_0x567511,_0x20512c,_0x259474,_0x3b33('0x8f'));})[_0x3b33('0x21')](function(_0x27f16a){if(_0x27f16a){logger[_0x3b33('0x28')](_0x3b33('0x82'),_0x27f16a['id']);logger[_0x3b33('0x28')](_0x3b33('0x89'),'Displaying\x20call\x20to\x20agent\x20in\x20a\x20new\x20tab...');emit(util[_0x3b33('0x2b')](_0x3b33('0x90'),_0x5af5ab[_0x3b33('0x37')]),_0x3b33('0x84'),{'uri':'https://crm.'+_0x160873[_0x3b33('0x77')]+_0x3b33('0x86')+_0x27f16a['id']});}})[_0x3b33('0x46')](function(_0x192e71){logger[_0x3b33('0x25')]('[OUTBOUND]',JSON[_0x3b33('0x39')](_0x192e71));});};exports['unmanaged']=function(_0x353344,_0x4599be,_0x2e2f02,_0x464ade,_0x4aaada,_0x37c908){var _0xea61f2,_0x596560,_0x30d56c;_0x37c908[_0x3b33('0x77')]=intUtil[_0x3b33('0x78')](_0x37c908['host']);_0x37c908[_0x3b33('0x79')]=intUtil[_0x3b33('0x78')](_0x37c908['serverUrl']);if(_0x4aaada&&_0x4aaada[_0x3b33('0x91')]){logger[_0x3b33('0x28')]('['+_0x4599be[_0x3b33('0x92')]['toUpperCase']()+']',_0x3b33('0x8a'));_0x4599be['recordingURL']=_0x37c908['serverUrl']+_0x3b33('0x7b')+_0x4599be[_0x3b33('0x7c')]+'/downloads?type=uniqueid&token='+md5(_0x4599be[_0x3b33('0x7c')]);}else{_0x4599be[_0x3b33('0x7e')]='';}var _0x52c4af=_0x37c908['host']===_0x3b33('0x8b')?'eu':_0x3b33('0x7f');return getAccessToken(_0x37c908)[_0x3b33('0x21')](function(_0x4c6616){_0x30d56c=_0x4c6616;return getUser(_0x30d56c,_0x52c4af,_0x37c908);})[_0x3b33('0x21')](function(_0x512069){_0xea61f2=_0x512069;logger[_0x3b33('0x28')](_0x3b33('0x8c'),_0xea61f2['id']);return getEndUser(_0x30d56c,_0x52c4af,_0x37c908,_0x4599be[_0x3b33('0x80')],_0x4599be[_0x3b33('0x81')],_0xea61f2,_0x2e2f02);})[_0x3b33('0x21')](function(_0x1b4ab0){_0x596560=_0x1b4ab0;return getCall(_0x30d56c,_0x52c4af,_0x37c908,_0xea61f2,_0x596560,_0x2e2f02,_0x4599be,_0x3b33('0x93'));})['then'](function(_0x5eb804){if(_0x5eb804){logger[_0x3b33('0x28')](_0x3b33('0x82'),_0x5eb804['id']);}})[_0x3b33('0x46')](function(_0x3ba16b){logger[_0x3b33('0x25')]('['+_0x4599be[_0x3b33('0x92')][_0x3b33('0x94')]()+']',JSON[_0x3b33('0x39')](_0x3ba16b));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd3a7=['data3','error','format','%s\x20\x27%s\x27\x20failed\x20with\x20code\x20%d\x20and\x20error:\x20%s','info','%s\x20\x27%s\x27\x20succeeded\x20with\x20output:\x20%s','util','mustache','../../../../config/logger','exec','data2'];(function(_0x418f05,_0x5a1b0f){var _0x4e5347=function(_0xb26d30){while(--_0xb26d30){_0x418f05['push'](_0x418f05['shift']());}};_0x4e5347(++_0x5a1b0f);}(_0xd3a7,0xed));var _0x7d3a=function(_0x3616d4,_0x150635){_0x3616d4=_0x3616d4-0x0;var _0x506a07=_0xd3a7[_0x3616d4];return _0x506a07;};'use strict';var util=require(_0x7d3a('0x0'));var sh=require('shelljs');var Mustache=require(_0x7d3a('0x1'));var logger=require(_0x7d3a('0x2'))('trigger');exports[_0x7d3a('0x3')]=function(_0x428397,_0x5752a7){var _0x501721=_0x428397[_0x7d3a('0x4')]?_0x428397['data2']:'Script';var _0x2ccdcf=_0x428397[_0x7d3a('0x5')]?Mustache['render'](_0x428397[_0x7d3a('0x5')],_0x5752a7):_0x5752a7;sh[_0x7d3a('0x3')](_0x2ccdcf,function(_0xc04f87,_0xe19628,_0xff2302){if(_0xc04f87!==0x0){logger[_0x7d3a('0x6')](util[_0x7d3a('0x7')](_0x7d3a('0x8'),_0x501721,_0x2ccdcf,_0xc04f87,_0xff2302));}else{logger[_0x7d3a('0x9')](util['format'](_0x7d3a('0xa'),_0x501721,_0x2ccdcf,_0xe19628));}});};
\ No newline at end of file
+var _0x46a2=['Script','data3','error','format','%s\x20\x27%s\x27\x20failed\x20with\x20code\x20%d\x20and\x20error:\x20%s','info','%s\x20\x27%s\x27\x20succeeded\x20with\x20output:\x20%s','util','shelljs','mustache','trigger','exec','data2'];(function(_0xb73234,_0x5df240){var _0x451696=function(_0x163f9c){while(--_0x163f9c){_0xb73234['push'](_0xb73234['shift']());}};_0x451696(++_0x5df240);}(_0x46a2,0x10b));var _0x246a=function(_0x1f8053,_0x111077){_0x1f8053=_0x1f8053-0x0;var _0x174fd8=_0x46a2[_0x1f8053];return _0x174fd8;};'use strict';var util=require(_0x246a('0x0'));var sh=require(_0x246a('0x1'));var Mustache=require(_0x246a('0x2'));var logger=require('../../../../config/logger')(_0x246a('0x3'));exports[_0x246a('0x4')]=function(_0x3c385a,_0x253fbd){var _0x40e628=_0x3c385a[_0x246a('0x5')]?_0x3c385a['data2']:_0x246a('0x6');var _0x6112c1=_0x3c385a[_0x246a('0x7')]?Mustache['render'](_0x3c385a[_0x246a('0x7')],_0x253fbd):_0x253fbd;sh['exec'](_0x6112c1,function(_0x1693b2,_0xcff6b4,_0x3f85fc){if(_0x1693b2!==0x0){logger[_0x246a('0x8')](util[_0x246a('0x9')](_0x246a('0xa'),_0x40e628,_0x6112c1,_0x1693b2,_0x3f85fc));}else{logger[_0x246a('0xb')](util[_0x246a('0x9')](_0x246a('0xc'),_0x40e628,_0x6112c1,_0xcff6b4));}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x647b=['stack','toUpperCase','GET','POST','data7','error','body\x20has\x20been\x20passed\x20to\x20URLforward\x20in\x20a\x20wrong\x20format','body','info','format','%s\x20%s\x20sending\x20request\x20with\x20following\x20options:\x20%s','stringify','isNil',',\x20request\x20body:\x20','object','statusCode','catch','data1','name','message','request-promise','util','lodash','mustache','../../../../config/logger','trigger','exec','data2','data5','number','headers','data6','parse','render'];(function(_0x503eef,_0x15283e){var _0x22a142=function(_0xe1e3f4){while(--_0xe1e3f4){_0x503eef['push'](_0x503eef['shift']());}};_0x22a142(++_0x15283e);}(_0x647b,0x102));var _0xb647=function(_0xbca1b1,_0x33f0ce){_0xbca1b1=_0xbca1b1-0x0;var _0x4e1686=_0x647b[_0xbca1b1];return _0x4e1686;};'use strict';var rp=require(_0xb647('0x0'));var util=require(_0xb647('0x1'));var _=require(_0xb647('0x2'));var Mustache=require(_0xb647('0x3'));var logger=require(_0xb647('0x4'))(_0xb647('0x5'));exports[_0xb647('0x6')]=function(_0x5bad34,_0x16cf6d){var _0x5a537f,_0x163df5;var _0x234c88={'method':_0x5bad34['data1']['toUpperCase'](),'uri':Mustache['render'](_0x5bad34[_0xb647('0x7')],_0x16cf6d),'json':!![],'resolveWithFullResponse':!![],'timeout':typeof parseInt(_0x5bad34[_0xb647('0x8')])===_0xb647('0x9')&&parseInt(_0x5bad34[_0xb647('0x8')])>=0x1&&parseInt(_0x5bad34[_0xb647('0x8')])<=0xa?parseInt(_0x5bad34[_0xb647('0x8')])*0x3e8:0x5*0x3e8};try{_0x234c88[_0xb647('0xa')]=_0x5bad34[_0xb647('0xb')]?JSON[_0xb647('0xc')](Mustache[_0xb647('0xd')](_0x5bad34[_0xb647('0xb')],_0x16cf6d)):{};}catch(_0xa677f7){logger['error'](_0xa677f7[_0xb647('0xe')]);}switch(_0x5bad34['data1'][_0xb647('0xf')]()){case _0xb647('0x10'):case'DELETE':_0x5a537f=null;_0x234c88['qs']=_0x16cf6d;break;case _0xb647('0x11'):case'PUT':if(_0x5bad34[_0xb647('0x12')]){try{_0x5a537f=JSON[_0xb647('0xc')](Mustache['render'](_0x5bad34[_0xb647('0x12')],_0x16cf6d));_0x234c88['body']=_0x5a537f;}catch(_0x38c09f){logger[_0xb647('0x13')](_0x38c09f[_0xb647('0xe')]);logger[_0xb647('0x13')](_0xb647('0x14'));}}else{_0x5a537f=_0x16cf6d;_0x234c88[_0xb647('0x15')]=_0x5a537f;}break;}logger[_0xb647('0x16')](util[_0xb647('0x17')](_0xb647('0x18'),_0x5bad34['data1'],_0x5bad34[_0xb647('0x7')],JSON[_0xb647('0x19')](_0x234c88)));rp(_0x234c88)['then'](function(_0x2e004f){_0x5a537f=!_[_0xb647('0x1a')](_0x5a537f)?_0xb647('0x1b')+_0x5a537f:'';_0x163df5=typeof _0x2e004f[_0xb647('0x15')]===_0xb647('0x1c')?JSON['stringify'](_0x2e004f[_0xb647('0x15')]):_0x2e004f[_0xb647('0x15')];logger[_0xb647('0x16')](util['format']('%s\x20%s\x20succeeded\x20with\x20status:\x20%d\x20and\x20response:\x20%s',_0x5bad34['data1'],_0x5bad34[_0xb647('0x7')],_0x2e004f[_0xb647('0x1d')],_0x163df5));})[_0xb647('0x1e')](function(_0x4561e5){logger[_0xb647('0x13')](util[_0xb647('0x17')]('%s\x20%s\x20failed\x20with\x20status:\x20%d\x20and\x20error:\x20%s\x20%s',_0x5bad34[_0xb647('0x1f')],_0x5bad34[_0xb647('0x7')],_0x4561e5[_0xb647('0x1d')],_0x4561e5[_0xb647('0x20')],_0x4561e5[_0xb647('0x21')]));});};
\ No newline at end of file
+var _0xd30e=['../../../../config/logger','exec','toUpperCase','render','data2','data5','number','headers','parse','data6','error','data1','DELETE','POST','PUT','data7','stack','body\x20has\x20been\x20passed\x20to\x20URLforward\x20in\x20a\x20wrong\x20format','body','info','format','%s\x20%s\x20sending\x20request\x20with\x20following\x20options:\x20%s',',\x20request\x20body:\x20','stringify','%s\x20%s\x20succeeded\x20with\x20status:\x20%d\x20and\x20response:\x20%s','catch','name','message','request-promise','util','lodash'];(function(_0x51d9e5,_0x58c7ab){var _0x7bcb54=function(_0x35cd2f){while(--_0x35cd2f){_0x51d9e5['push'](_0x51d9e5['shift']());}};_0x7bcb54(++_0x58c7ab);}(_0xd30e,0x133));var _0xed30=function(_0x66fa37,_0x49ff63){_0x66fa37=_0x66fa37-0x0;var _0x1374a0=_0xd30e[_0x66fa37];return _0x1374a0;};'use strict';var rp=require(_0xed30('0x0'));var util=require(_0xed30('0x1'));var _=require(_0xed30('0x2'));var Mustache=require('mustache');var logger=require(_0xed30('0x3'))('trigger');exports[_0xed30('0x4')]=function(_0x5d8fc1,_0x227fb9){var _0x29a764,_0x68af2a;var _0x51713e={'method':_0x5d8fc1['data1'][_0xed30('0x5')](),'uri':Mustache[_0xed30('0x6')](_0x5d8fc1[_0xed30('0x7')],_0x227fb9),'json':!![],'resolveWithFullResponse':!![],'timeout':typeof parseInt(_0x5d8fc1[_0xed30('0x8')])===_0xed30('0x9')&&parseInt(_0x5d8fc1[_0xed30('0x8')])>=0x1&&parseInt(_0x5d8fc1[_0xed30('0x8')])<=0xa?parseInt(_0x5d8fc1[_0xed30('0x8')])*0x3e8:0x5*0x3e8};try{_0x51713e[_0xed30('0xa')]=_0x5d8fc1['data6']?JSON[_0xed30('0xb')](Mustache[_0xed30('0x6')](_0x5d8fc1[_0xed30('0xc')],_0x227fb9)):{};}catch(_0x415e73){logger[_0xed30('0xd')](_0x415e73['stack']);}switch(_0x5d8fc1[_0xed30('0xe')][_0xed30('0x5')]()){case'GET':case _0xed30('0xf'):_0x29a764=null;_0x51713e['qs']=_0x227fb9;break;case _0xed30('0x10'):case _0xed30('0x11'):if(_0x5d8fc1[_0xed30('0x12')]){try{_0x29a764=JSON[_0xed30('0xb')](Mustache['render'](_0x5d8fc1[_0xed30('0x12')],_0x227fb9));_0x51713e['body']=_0x29a764;}catch(_0x232943){logger[_0xed30('0xd')](_0x232943[_0xed30('0x13')]);logger[_0xed30('0xd')](_0xed30('0x14'));}}else{_0x29a764=_0x227fb9;_0x51713e[_0xed30('0x15')]=_0x29a764;}break;}logger[_0xed30('0x16')](util[_0xed30('0x17')](_0xed30('0x18'),_0x5d8fc1[_0xed30('0xe')],_0x5d8fc1[_0xed30('0x7')],JSON['stringify'](_0x51713e)));rp(_0x51713e)['then'](function(_0x49edbb){_0x29a764=!_['isNil'](_0x29a764)?_0xed30('0x19')+_0x29a764:'';_0x68af2a=typeof _0x49edbb[_0xed30('0x15')]==='object'?JSON[_0xed30('0x1a')](_0x49edbb['body']):_0x49edbb[_0xed30('0x15')];logger['info'](util[_0xed30('0x17')](_0xed30('0x1b'),_0x5d8fc1[_0xed30('0xe')],_0x5d8fc1['data2'],_0x49edbb['statusCode'],_0x68af2a));})[_0xed30('0x1c')](function(_0xe5e52b){logger[_0xed30('0xd')](util[_0xed30('0x17')]('%s\x20%s\x20failed\x20with\x20status:\x20%d\x20and\x20error:\x20%s\x20%s',_0x5d8fc1[_0xed30('0xe')],_0x5d8fc1['data2'],_0xe5e52b['statusCode'],_0xe5e52b[_0xed30('0x1d')],_0xe5e52b[_0xed30('0x1e')]));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0bee=['then','rpc','error','message','result','catch','exports','jayson/promise','bluebird','routing','client','http','Request'];(function(_0x346ad1,_0x40a6d1){var _0x558f98=function(_0x58f817){while(--_0x58f817){_0x346ad1['push'](_0x346ad1['shift']());}};_0x558f98(++_0x40a6d1);}(_0x0bee,0x19a));var _0xe0be=function(_0x30b2d1,_0x566209){_0x30b2d1=_0x30b2d1-0x0;var _0x4f3cb6=_0x0bee[_0x30b2d1];return _0x4f3cb6;};'use strict';var jayson=require(_0xe0be('0x0'));var BPromise=require(_0xe0be('0x1'));var logger=require('../../config/logger')(_0xe0be('0x2'));var client=jayson[_0xe0be('0x3')][_0xe0be('0x4')]({'port':0x2329});client[_0xe0be('0x5')]=function(_0x45de5f,_0x6a9afc){return new BPromise(function(_0x6e7875,_0x358758){return client['request'](_0x45de5f,_0x6a9afc)[_0xe0be('0x6')](function(_0x5a17ed){logger['debug'](_0xe0be('0x7'),_0xe0be('0x2'),_0x45de5f,_0x6a9afc,_0x5a17ed);if(_0x5a17ed[_0xe0be('0x8')]){logger[_0xe0be('0x8')](_0xe0be('0x7'),'routing',_0x45de5f,_0x5a17ed[_0xe0be('0x8')]['message'],_0x6a9afc);return _0x358758(_0x5a17ed[_0xe0be('0x8')][_0xe0be('0x9')]);}else{return _0x6e7875(_0x5a17ed[_0xe0be('0xa')]);}})[_0xe0be('0xb')](function(_0x2f7138){logger[_0xe0be('0x8')](_0xe0be('0x7'),_0xe0be('0x2'),_0x45de5f,_0x2f7138,_0x6a9afc);return _0x358758(_0x2f7138);});});};module[_0xe0be('0xc')]=client;
\ No newline at end of file
+var _0xb15c=['debug','rpc','error','message','catch','jayson/promise','bluebird','../../config/logger','routing','client','http','Request','request','then'];(function(_0x3e691b,_0x1f70ec){var _0x53f5cb=function(_0x30f026){while(--_0x30f026){_0x3e691b['push'](_0x3e691b['shift']());}};_0x53f5cb(++_0x1f70ec);}(_0xb15c,0xc9));var _0xcb15=function(_0x1171ca,_0xa4765){_0x1171ca=_0x1171ca-0x0;var _0x9c52fb=_0xb15c[_0x1171ca];return _0x9c52fb;};'use strict';var jayson=require(_0xcb15('0x0'));var BPromise=require(_0xcb15('0x1'));var logger=require(_0xcb15('0x2'))(_0xcb15('0x3'));var client=jayson[_0xcb15('0x4')][_0xcb15('0x5')]({'port':0x2329});client[_0xcb15('0x6')]=function(_0x1aa59f,_0x3fa009){return new BPromise(function(_0x39c8df,_0x4f20ea){return client[_0xcb15('0x7')](_0x1aa59f,_0x3fa009)[_0xcb15('0x8')](function(_0x44fbb0){logger[_0xcb15('0x9')](_0xcb15('0xa'),_0xcb15('0x3'),_0x1aa59f,_0x3fa009,_0x44fbb0);if(_0x44fbb0[_0xcb15('0xb')]){logger[_0xcb15('0xb')](_0xcb15('0xa'),'routing',_0x1aa59f,_0x44fbb0[_0xcb15('0xb')][_0xcb15('0xc')],_0x3fa009);return _0x4f20ea(_0x44fbb0['error'][_0xcb15('0xc')]);}else{return _0x39c8df(_0x44fbb0['result']);}})[_0xcb15('0xd')](function(_0x124eae){logger['error'](_0xcb15('0xa'),_0xcb15('0x3'),_0x1aa59f,_0x124eae,_0x3fa009);return _0x4f20ea(_0x124eae);});});};module['exports']=client;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfde2=['loginMailFrequency','log','./rpc/mailAccount','./rpc/setting','resolve','then','refresh','getSettings'];(function(_0x4b7b0e,_0x2f3a01){var _0x5028ab=function(_0x3d2c9c){while(--_0x3d2c9c){_0x4b7b0e['push'](_0x4b7b0e['shift']());}};_0x5028ab(++_0x2f3a01);}(_0xfde2,0xea));var _0x2fde=function(_0x1830a9,_0x1583bd){_0x1830a9=_0x1830a9-0x0;var _0x2b6166=_0xfde2[_0x1830a9];return _0x2b6166;};'use strict';var BPromise=require('bluebird');var server=require('./server');var Realtime=require('./realtime');var EmailChannel=require('./lib/email');var mailAccount=require(_0x2fde('0x0'));var setting=require(_0x2fde('0x1'));var realtime=new Realtime();var email=new EmailChannel(realtime);function initRealtime(){return BPromise[_0x2fde('0x2')]()[_0x2fde('0x3')](mailAccount['getMailAccounts']())[_0x2fde('0x3')](realtime['initMailAccounts']())[_0x2fde('0x3')](function(){email[_0x2fde('0x4')](realtime['mailAccounts']);return realtime;});}function main(){return server['listen'](realtime,email)[_0x2fde('0x3')](function(){return initRealtime();})[_0x2fde('0x3')](function(){return setting[_0x2fde('0x5')]();})[_0x2fde('0x3')](function(_0x405e05){return setInterval(initRealtime,_0x405e05[_0x2fde('0x6')]*0x3e8);})['catch'](function(_0x10b275){console[_0x2fde('0x7')](_0x10b275);});}main();
\ No newline at end of file
+var _0x2d87=['bluebird','./server','./rpc/setting','resolve','then','initMailAccounts','refresh','mailAccounts','getSettings','loginMailFrequency','log'];(function(_0x360189,_0x40a134){var _0x5c148b=function(_0x302806){while(--_0x302806){_0x360189['push'](_0x360189['shift']());}};_0x5c148b(++_0x40a134);}(_0x2d87,0x84));var _0x72d8=function(_0x4cf98e,_0xba4b79){_0x4cf98e=_0x4cf98e-0x0;var _0x1623ac=_0x2d87[_0x4cf98e];return _0x1623ac;};'use strict';var BPromise=require(_0x72d8('0x0'));var server=require(_0x72d8('0x1'));var Realtime=require('./realtime');var EmailChannel=require('./lib/email');var mailAccount=require('./rpc/mailAccount');var setting=require(_0x72d8('0x2'));var realtime=new Realtime();var email=new EmailChannel(realtime);function initRealtime(){return BPromise[_0x72d8('0x3')]()[_0x72d8('0x4')](mailAccount['getMailAccounts']())[_0x72d8('0x4')](realtime[_0x72d8('0x5')]())[_0x72d8('0x4')](function(){email[_0x72d8('0x6')](realtime[_0x72d8('0x7')]);return realtime;});}function main(){return server['listen'](realtime,email)[_0x72d8('0x4')](function(){return initRealtime();})[_0x72d8('0x4')](function(){return setting[_0x72d8('0x8')]();})[_0x72d8('0x4')](function(_0x55940e){return setInterval(initRealtime,_0x55940e[_0x72d8('0x9')]*0x3e8);})['catch'](function(_0x311c7d){console[_0x72d8('0xa')](_0x311c7d);});}main();
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5f3d=['connected','messages','info','firstName','lastName','notify','then','Mail\x20accepted\x20from\x20routing','catch','Mail\x20not\x20accepted\x20from\x20routing\x20%s','stringify','lastSync','handleImapError','sendMail','send','Smtp','verify','verified','exports','lodash','moment','md5','../../../config/environment','../../../config/logger','email','redis','localhost','socket.io-emitter','./imap','./smtp','../rpc/mailAccount','mailAccounts','smtp','emit','name','key','active','Imap','messageStatus','total','isNil','mailAccount:update','prototype','refresh','hasOwnProperty','imapAccounts','bind','handleImapEmail','end','handleImapEnd','error','status','disabled'];(function(_0x451550,_0x3e1d2c){var _0x270b39=function(_0x539d04){while(--_0x539d04){_0x451550['push'](_0x451550['shift']());}};_0x270b39(++_0x3e1d2c);}(_0x5f3d,0x1f0));var _0xd5f3=function(_0x3f3abc,_0x2fde3b){_0x3f3abc=_0x3f3abc-0x0;var _0x506321=_0x5f3d[_0x3f3abc];return _0x506321;};'use strict';var _=require(_0xd5f3('0x0'));var moment=require(_0xd5f3('0x1'));var BPromise=require('bluebird');var md5=require(_0xd5f3('0x2'));var Redis=require('ioredis');var config=require(_0xd5f3('0x3'));var logger=require(_0xd5f3('0x4'))(_0xd5f3('0x5'));config[_0xd5f3('0x6')]=_['defaults'](config['redis'],{'host':_0xd5f3('0x7'),'port':0x18eb});var io=require(_0xd5f3('0x8'))(new Redis(config['redis']));var EmailImap=require(_0xd5f3('0x9'));var EmailSmtp=require(_0xd5f3('0xa'));var mailAccount=require(_0xd5f3('0xb'));var md5Accounts={};function EmailChannel(_0x46cbd0){logger['info']('start\x20email\x20channel');this[_0xd5f3('0xc')]=_0x46cbd0[_0xd5f3('0xc')];this['imapAccounts']={};this[_0xd5f3('0xd')]=new EmailSmtp();}EmailChannel['prototype'][_0xd5f3('0xe')]=function(_0x4bf68b){var _0x1a03eb=this[_0xd5f3('0xc')][_0x4bf68b];var _0x1e319b={'id':_0x1a03eb['id'],'name':_0x1a03eb[_0xd5f3('0xf')],'key':_0x1a03eb[_0xd5f3('0x10')],'active':_0x1a03eb[_0xd5f3('0x11')],'Imap':{'status':_0x1a03eb[_0xd5f3('0x12')]['status'],'messageStatus':_0x1a03eb[_0xd5f3('0x12')][_0xd5f3('0x13')],'total':_0x1a03eb[_0xd5f3('0x12')][_0xd5f3('0x14')]}};if(_[_0xd5f3('0x15')](md5Accounts[_0x4bf68b])){md5Accounts[_0x4bf68b]={};}var _0x3d681d=md5(JSON['stringify'](_0x1e319b));if(md5Accounts[_0x4bf68b][_0xd5f3('0x2')]!==_0x3d681d){md5Accounts[_0x4bf68b][_0xd5f3('0x2')]=_0x3d681d;io['emit'](_0xd5f3('0x16'),_0x1e319b);}};EmailChannel[_0xd5f3('0x17')][_0xd5f3('0x18')]=function(_0x2da27e){for(var _0x5d096e in _0x2da27e){if(_0x2da27e[_0xd5f3('0x19')](_0x5d096e)){if(_0x2da27e[_0x5d096e]['Imap']&&_0x2da27e[_0x5d096e][_0xd5f3('0x11')]){var _0xb29fe2=_0x2da27e[_0x5d096e][_0xd5f3('0x12')];if(!this[_0xd5f3('0x1a')][_0xd5f3('0x19')](_0xb29fe2['id'])){this[_0xd5f3('0x1a')][_0xb29fe2['id']]=new EmailImap(_0xb29fe2,_0x2da27e[_0x5d096e][_0xd5f3('0x5')]);this['imapAccounts'][_0xb29fe2['id']]['on']('box',this['handleImapBox'][_0xd5f3('0x1b')](this,_0x5d096e));this[_0xd5f3('0x1a')][_0xb29fe2['id']]['on']('email',this[_0xd5f3('0x1c')][_0xd5f3('0x1b')](this,_0x5d096e));this[_0xd5f3('0x1a')][_0xb29fe2['id']]['on'](_0xd5f3('0x1d'),this[_0xd5f3('0x1e')][_0xd5f3('0x1b')](this,_0x5d096e));this[_0xd5f3('0x1a')][_0xb29fe2['id']]['on'](_0xd5f3('0x1f'),this['handleImapError'][_0xd5f3('0x1b')](this,_0x5d096e));}}else{if(_['isNil'](this[_0xd5f3('0xc')][_0x5d096e]['Imap'])){this[_0xd5f3('0xc')][_0x5d096e][_0xd5f3('0x12')]={};}this[_0xd5f3('0xc')][_0x5d096e][_0xd5f3('0x12')][_0xd5f3('0x20')]=_0xd5f3('0x21');this[_0xd5f3('0xc')][_0x5d096e][_0xd5f3('0x12')][_0xd5f3('0x13')]='';this[_0xd5f3('0xe')](_0x5d096e);}}}};EmailChannel[_0xd5f3('0x17')]['handleImapBox']=function(_0x205a4a,_0x44f41e){if(this[_0xd5f3('0xc')][_0x205a4a]){this['mailAccounts'][_0x205a4a][_0xd5f3('0x12')][_0xd5f3('0x20')]=_0xd5f3('0x22');this[_0xd5f3('0xc')][_0x205a4a][_0xd5f3('0x12')][_0xd5f3('0x13')]=_0x44f41e[_0xd5f3('0xf')];if(_0x44f41e[_0xd5f3('0x23')]){this[_0xd5f3('0xc')][_0x205a4a][_0xd5f3('0x12')][_0xd5f3('0x14')]=_0x44f41e[_0xd5f3('0x23')][_0xd5f3('0x14')];}return this[_0xd5f3('0xe')](_0x205a4a);}};EmailChannel[_0xd5f3('0x17')]['handleImapEmail']=function(_0x2e44d3,_0x54cf49){logger[_0xd5f3('0x24')]('New\x20email\x20from\x20%s\x20%s\x20%s\x20to\x20%s',_0x54cf49[_0xd5f3('0x25')],_0x54cf49[_0xd5f3('0x26')],_0x54cf49['from'],_0x2e44d3);if(this[_0xd5f3('0xc')][_0x2e44d3]){return mailAccount[_0xd5f3('0x27')](_0x2e44d3,_0x54cf49)[_0xd5f3('0x28')](function(_0x34c562){if(_0x34c562){logger['info'](_0xd5f3('0x29'));}})[_0xd5f3('0x2a')](function(_0x12aa47){logger['error'](_0xd5f3('0x2b'),JSON[_0xd5f3('0x2c')](_0x12aa47));});}};EmailChannel[_0xd5f3('0x17')]['handleImapEnd']=function(_0x54991b){if(this[_0xd5f3('0xc')][_0x54991b]&&this['mailAccounts'][_0x54991b][_0xd5f3('0x12')]){if(this[_0xd5f3('0x1a')][this[_0xd5f3('0xc')][_0x54991b][_0xd5f3('0x12')]['id']]){delete this[_0xd5f3('0x1a')][this['mailAccounts'][_0x54991b][_0xd5f3('0x12')]['id']];}this[_0xd5f3('0xc')][_0x54991b]['Imap'][_0xd5f3('0x2d')]=moment();this[_0xd5f3('0xe')](_0x54991b);}};EmailChannel[_0xd5f3('0x17')][_0xd5f3('0x2e')]=function(_0x16a1b8,_0x3dee6d){if(this[_0xd5f3('0xc')][_0x16a1b8]){this[_0xd5f3('0xc')][_0x16a1b8][_0xd5f3('0x12')][_0xd5f3('0x20')]=_0xd5f3('0x1f');this['mailAccounts'][_0x16a1b8][_0xd5f3('0x12')][_0xd5f3('0x13')]=_0x3dee6d;return this['emit'](_0x16a1b8);}};EmailChannel[_0xd5f3('0x17')][_0xd5f3('0x2f')]=function(_0x377aec,_0x2961be){return this[_0xd5f3('0xd')][_0xd5f3('0x30')](_0x377aec,_0x2961be);};EmailChannel[_0xd5f3('0x17')]['verifySmtp']=function(_0x6a89d9){var _0x278d87=this;if(this[_0xd5f3('0xc')][_0x6a89d9['id']]){if(_['isNil'](this[_0xd5f3('0xc')][_0x6a89d9['id']][_0xd5f3('0x31')])){this[_0xd5f3('0xc')][_0x6a89d9['id']]['Smtp']={};}this[_0xd5f3('0xc')][_0x6a89d9['id']][_0xd5f3('0x31')]['lastSync']=moment();return new BPromise(function(_0x18562d,_0x56504e){return _0x278d87[_0xd5f3('0xd')][_0xd5f3('0x32')](_0x6a89d9)[_0xd5f3('0x28')](function(_0x409a55){_0x278d87['mailAccounts'][_0x6a89d9['id']][_0xd5f3('0x31')][_0xd5f3('0x20')]=_0xd5f3('0x33');_0x278d87[_0xd5f3('0xc')][_0x6a89d9['id']][_0xd5f3('0x31')][_0xd5f3('0x13')]='';_0x278d87[_0xd5f3('0xe')](_0x6a89d9['id']);_0x18562d(_0x409a55);})[_0xd5f3('0x2a')](function(_0x10baa9){_0x278d87[_0xd5f3('0xc')][_0x6a89d9['id']][_0xd5f3('0x31')]['status']=_0xd5f3('0x1f');_0x278d87[_0xd5f3('0xc')][_0x6a89d9['id']][_0xd5f3('0x31')]['messageStatus']=_0x10baa9;_0x278d87[_0xd5f3('0xe')](_0x6a89d9['id']);_0x56504e(_0x10baa9);});});}return this['smtp'][_0xd5f3('0x32')](_0x6a89d9);};module[_0xd5f3('0x34')]=EmailChannel;
\ No newline at end of file
+var _0x1270=['name','messages','handleImapEmail','New\x20email\x20from\x20%s\x20%s\x20%s\x20to\x20%s','firstName','from','notify','then','Mail\x20accepted\x20from\x20routing','catch','lastSync','sendMail','send','verifySmtp','Smtp','verify','exports','lodash','moment','bluebird','md5','../../../config/environment','../../../config/logger','email','redis','localhost','socket.io-emitter','./imap','info','start\x20email\x20channel','mailAccounts','imapAccounts','smtp','prototype','emit','key','Imap','status','messageStatus','total','isNil','stringify','mailAccount:update','hasOwnProperty','active','box','end','handleImapEnd','bind','error','handleImapError','disabled'];(function(_0x5ab5be,_0x21820b){var _0x2db5d8=function(_0x3acf72){while(--_0x3acf72){_0x5ab5be['push'](_0x5ab5be['shift']());}};_0x2db5d8(++_0x21820b);}(_0x1270,0xe1));var _0x0127=function(_0x1ae2c8,_0x4a3d48){_0x1ae2c8=_0x1ae2c8-0x0;var _0x5d3ebf=_0x1270[_0x1ae2c8];return _0x5d3ebf;};'use strict';var _=require(_0x0127('0x0'));var moment=require(_0x0127('0x1'));var BPromise=require(_0x0127('0x2'));var md5=require(_0x0127('0x3'));var Redis=require('ioredis');var config=require(_0x0127('0x4'));var logger=require(_0x0127('0x5'))(_0x0127('0x6'));config[_0x0127('0x7')]=_['defaults'](config['redis'],{'host':_0x0127('0x8'),'port':0x18eb});var io=require(_0x0127('0x9'))(new Redis(config[_0x0127('0x7')]));var EmailImap=require(_0x0127('0xa'));var EmailSmtp=require('./smtp');var mailAccount=require('../rpc/mailAccount');var md5Accounts={};function EmailChannel(_0x2e1294){logger[_0x0127('0xb')](_0x0127('0xc'));this[_0x0127('0xd')]=_0x2e1294[_0x0127('0xd')];this[_0x0127('0xe')]={};this[_0x0127('0xf')]=new EmailSmtp();}EmailChannel[_0x0127('0x10')][_0x0127('0x11')]=function(_0x45441c){var _0x33b404=this[_0x0127('0xd')][_0x45441c];var _0x32c2e8={'id':_0x33b404['id'],'name':_0x33b404['name'],'key':_0x33b404[_0x0127('0x12')],'active':_0x33b404['active'],'Imap':{'status':_0x33b404[_0x0127('0x13')][_0x0127('0x14')],'messageStatus':_0x33b404[_0x0127('0x13')][_0x0127('0x15')],'total':_0x33b404[_0x0127('0x13')][_0x0127('0x16')]}};if(_[_0x0127('0x17')](md5Accounts[_0x45441c])){md5Accounts[_0x45441c]={};}var _0xd153d1=md5(JSON[_0x0127('0x18')](_0x32c2e8));if(md5Accounts[_0x45441c][_0x0127('0x3')]!==_0xd153d1){md5Accounts[_0x45441c][_0x0127('0x3')]=_0xd153d1;io[_0x0127('0x11')](_0x0127('0x19'),_0x32c2e8);}};EmailChannel[_0x0127('0x10')]['refresh']=function(_0x3be5d2){for(var _0x4429a3 in _0x3be5d2){if(_0x3be5d2[_0x0127('0x1a')](_0x4429a3)){if(_0x3be5d2[_0x4429a3][_0x0127('0x13')]&&_0x3be5d2[_0x4429a3][_0x0127('0x1b')]){var _0x994766=_0x3be5d2[_0x4429a3]['Imap'];if(!this[_0x0127('0xe')][_0x0127('0x1a')](_0x994766['id'])){this[_0x0127('0xe')][_0x994766['id']]=new EmailImap(_0x994766,_0x3be5d2[_0x4429a3][_0x0127('0x6')]);this[_0x0127('0xe')][_0x994766['id']]['on'](_0x0127('0x1c'),this['handleImapBox']['bind'](this,_0x4429a3));this[_0x0127('0xe')][_0x994766['id']]['on'](_0x0127('0x6'),this['handleImapEmail']['bind'](this,_0x4429a3));this[_0x0127('0xe')][_0x994766['id']]['on'](_0x0127('0x1d'),this[_0x0127('0x1e')][_0x0127('0x1f')](this,_0x4429a3));this['imapAccounts'][_0x994766['id']]['on'](_0x0127('0x20'),this[_0x0127('0x21')][_0x0127('0x1f')](this,_0x4429a3));}}else{if(_[_0x0127('0x17')](this[_0x0127('0xd')][_0x4429a3][_0x0127('0x13')])){this[_0x0127('0xd')][_0x4429a3][_0x0127('0x13')]={};}this[_0x0127('0xd')][_0x4429a3][_0x0127('0x13')][_0x0127('0x14')]=_0x0127('0x22');this[_0x0127('0xd')][_0x4429a3]['Imap'][_0x0127('0x15')]='';this['emit'](_0x4429a3);}}}};EmailChannel[_0x0127('0x10')]['handleImapBox']=function(_0x384185,_0x58b4ca){if(this[_0x0127('0xd')][_0x384185]){this[_0x0127('0xd')][_0x384185][_0x0127('0x13')][_0x0127('0x14')]='connected';this[_0x0127('0xd')][_0x384185]['Imap'][_0x0127('0x15')]=_0x58b4ca[_0x0127('0x23')];if(_0x58b4ca[_0x0127('0x24')]){this['mailAccounts'][_0x384185][_0x0127('0x13')][_0x0127('0x16')]=_0x58b4ca[_0x0127('0x24')][_0x0127('0x16')];}return this[_0x0127('0x11')](_0x384185);}};EmailChannel['prototype'][_0x0127('0x25')]=function(_0x2e8955,_0x4425a1){logger[_0x0127('0xb')](_0x0127('0x26'),_0x4425a1[_0x0127('0x27')],_0x4425a1['lastName'],_0x4425a1[_0x0127('0x28')],_0x2e8955);if(this[_0x0127('0xd')][_0x2e8955]){return mailAccount[_0x0127('0x29')](_0x2e8955,_0x4425a1)[_0x0127('0x2a')](function(_0x530f51){if(_0x530f51){logger[_0x0127('0xb')](_0x0127('0x2b'));}})[_0x0127('0x2c')](function(_0x50c7f3){logger['error']('Mail\x20not\x20accepted\x20from\x20routing\x20%s',JSON['stringify'](_0x50c7f3));});}};EmailChannel[_0x0127('0x10')][_0x0127('0x1e')]=function(_0x2e8187){if(this[_0x0127('0xd')][_0x2e8187]&&this['mailAccounts'][_0x2e8187][_0x0127('0x13')]){if(this[_0x0127('0xe')][this[_0x0127('0xd')][_0x2e8187]['Imap']['id']]){delete this[_0x0127('0xe')][this[_0x0127('0xd')][_0x2e8187]['Imap']['id']];}this[_0x0127('0xd')][_0x2e8187]['Imap'][_0x0127('0x2d')]=moment();this[_0x0127('0x11')](_0x2e8187);}};EmailChannel[_0x0127('0x10')]['handleImapError']=function(_0x2d7d74,_0x492b65){if(this['mailAccounts'][_0x2d7d74]){this['mailAccounts'][_0x2d7d74]['Imap'][_0x0127('0x14')]=_0x0127('0x20');this[_0x0127('0xd')][_0x2d7d74]['Imap'][_0x0127('0x15')]=_0x492b65;return this['emit'](_0x2d7d74);}};EmailChannel[_0x0127('0x10')][_0x0127('0x2e')]=function(_0x2c4ad5,_0x30f7e5){return this[_0x0127('0xf')][_0x0127('0x2f')](_0x2c4ad5,_0x30f7e5);};EmailChannel[_0x0127('0x10')][_0x0127('0x30')]=function(_0x3e291d){var _0x4bacd6=this;if(this[_0x0127('0xd')][_0x3e291d['id']]){if(_[_0x0127('0x17')](this[_0x0127('0xd')][_0x3e291d['id']][_0x0127('0x31')])){this[_0x0127('0xd')][_0x3e291d['id']][_0x0127('0x31')]={};}this[_0x0127('0xd')][_0x3e291d['id']][_0x0127('0x31')][_0x0127('0x2d')]=moment();return new BPromise(function(_0x431f57,_0x184526){return _0x4bacd6[_0x0127('0xf')][_0x0127('0x32')](_0x3e291d)[_0x0127('0x2a')](function(_0x274a0e){_0x4bacd6[_0x0127('0xd')][_0x3e291d['id']][_0x0127('0x31')][_0x0127('0x14')]='verified';_0x4bacd6[_0x0127('0xd')][_0x3e291d['id']][_0x0127('0x31')][_0x0127('0x15')]='';_0x4bacd6[_0x0127('0x11')](_0x3e291d['id']);_0x431f57(_0x274a0e);})[_0x0127('0x2c')](function(_0x4f86b1){_0x4bacd6['mailAccounts'][_0x3e291d['id']]['Smtp']['status']=_0x0127('0x20');_0x4bacd6[_0x0127('0xd')][_0x3e291d['id']][_0x0127('0x31')]['messageStatus']=_0x4f86b1;_0x4bacd6[_0x0127('0x11')](_0x3e291d['id']);_0x184526(_0x4f86b1);});});}return this['smtp'][_0x0127('0x32')](_0x3e291d);};module[_0x0127('0x33')]=EmailChannel;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x56e5=['handleMessageAttributes','handleMessageEnd','handleMessageBody','handleSimpleParser','parser','stringify','textCode','upperFirst','exports','path','util','imap','lodash','randomstring','mailparser','simpleParser','iconv','Iconv','EventEmitter','./utils','../../../config/logger','email','mailbox','INBOX','account','once','ready','handleReady','bind','end','handleEnd','error','handleError','connect','inherits','getAccount','connTimeout','authTimeout','isNil','service','authentication','user','password','host','port','tls','autotls','required','getHost','anonymous@xcally.com','handleOpenBox','emit','box','readUnseen','prototype','handleCloseBox','search','handleReadUnseen','length','fetch','handleFetchError','handleFetchEnd','closeBox','handleFetchMessage','body'];(function(_0x229598,_0x308749){var _0x55b77f=function(_0x39838e){while(--_0x39838e){_0x229598['push'](_0x229598['shift']());}};_0x55b77f(++_0x308749);}(_0x56e5,0x18f));var _0x556e=function(_0x575dfc,_0x14014c){_0x575dfc=_0x575dfc-0x0;var _0x2e31c7=_0x56e5[_0x575dfc];return _0x2e31c7;};'use strict';var fs=require('fs');var path=require(_0x556e('0x0'));var util=require(_0x556e('0x1'));var Imap=require(_0x556e('0x2'));var _=require(_0x556e('0x3'));var rs=require(_0x556e('0x4'));var simpleParser=require(_0x556e('0x5'))[_0x556e('0x6')];var Iconv=require(_0x556e('0x7'))[_0x556e('0x8')];var EventEmitter=require('events')[_0x556e('0x9')];var utils=require(_0x556e('0xa'));var logger=require(_0x556e('0xb'))(_0x556e('0xc'));function EmailImap(_0x5a387b,_0x59bb72){this[_0x556e('0xd')]=_0x556e('0xe');this[_0x556e('0xf')]=this['getAccount'](_0x5a387b,_0x59bb72);this[_0x556e('0x2')]=new Imap(this[_0x556e('0xf')]);this[_0x556e('0x2')][_0x556e('0x10')](_0x556e('0x11'),this[_0x556e('0x12')][_0x556e('0x13')](this));this[_0x556e('0x2')]['once'](_0x556e('0x14'),this[_0x556e('0x15')]['bind'](this));this[_0x556e('0x2')]['on'](_0x556e('0x16'),this[_0x556e('0x17')][_0x556e('0x13')](this));this[_0x556e('0x2')][_0x556e('0x18')]();}util[_0x556e('0x19')](EmailImap,EventEmitter);EmailImap['prototype'][_0x556e('0x1a')]=function(_0x3a816b,_0x39b193){var _0xb5e054={'connTimeout':_0x3a816b[_0x556e('0x1b')]?_0x3a816b[_0x556e('0x1b')]*0x3e8:0x2710,'authTimeout':_0x3a816b[_0x556e('0x1c')]?_0x3a816b['authTimeout']*0x3e8:0x1388};if(_[_0x556e('0x1d')](_0x3a816b[_0x556e('0x1e')])){if(_0x3a816b[_0x556e('0x1f')]){_0xb5e054[_0x556e('0x20')]=_0x3a816b[_0x556e('0x20')];_0xb5e054[_0x556e('0x21')]=_0x3a816b[_0x556e('0x21')];}_0xb5e054[_0x556e('0x22')]=_0x3a816b[_0x556e('0x22')];_0xb5e054[_0x556e('0x23')]=_0x3a816b[_0x556e('0x23')]||0x3e1;if(_0x3a816b[_0x556e('0x24')]){_0xb5e054[_0x556e('0x24')]=!![];}else{_0xb5e054[_0x556e('0x24')]=![];_0xb5e054[_0x556e('0x25')]=_0x556e('0x26');}}else{_0xb5e054[_0x556e('0x20')]=_0x3a816b[_0x556e('0x20')];_0xb5e054[_0x556e('0x21')]=_0x3a816b[_0x556e('0x21')];_0xb5e054[_0x556e('0x22')]=utils[_0x556e('0x27')](_0x3a816b[_0x556e('0x1e')]);_0xb5e054['port']=0x3e1;_0xb5e054[_0x556e('0x24')]=!![];}_0xb5e054[_0x556e('0xc')]=_0x39b193||_0x3a816b[_0x556e('0x20')]||_0x556e('0x28');return _0xb5e054;};EmailImap['prototype'][_0x556e('0x12')]=function(){this[_0x556e('0x2')]['openBox'](this[_0x556e('0xd')],![],this[_0x556e('0x29')][_0x556e('0x13')](this));};EmailImap['prototype'][_0x556e('0x29')]=function(_0x21a98c,_0x40b924){if(_0x21a98c){this[_0x556e('0x17')](_0x21a98c,!![]);}else{this[_0x556e('0x2a')](_0x556e('0x2b'),_0x40b924);this[_0x556e('0x2c')]();}};EmailImap[_0x556e('0x2d')][_0x556e('0x2e')]=function(_0x1f50ac){if(_0x1f50ac){this['handleError'](_0x1f50ac,!![]);}else{this[_0x556e('0x2')][_0x556e('0x14')]();}};EmailImap[_0x556e('0x2d')][_0x556e('0x2c')]=function(){this[_0x556e('0x2')][_0x556e('0x2f')](['UNSEEN'],this[_0x556e('0x30')][_0x556e('0x13')](this));};EmailImap[_0x556e('0x2d')][_0x556e('0x30')]=function(_0x5b0824,_0x53fa39){if(_0x5b0824){this[_0x556e('0x17')](_0x5b0824,!![]);}else{if(_0x53fa39[_0x556e('0x31')]){try{var _0x52280d=this[_0x556e('0x2')][_0x556e('0x32')](_0x53fa39,{'bodies':'','markSeen':!![]});_0x52280d['on']('message',this['handleFetchMessage'][_0x556e('0x13')](this));_0x52280d[_0x556e('0x10')](_0x556e('0x16'),this[_0x556e('0x33')][_0x556e('0x13')](this));_0x52280d[_0x556e('0x10')]('end',this[_0x556e('0x34')][_0x556e('0x13')](this));}catch(_0x38583b){logger[_0x556e('0x16')](_0x38583b);}}else{this[_0x556e('0x2')][_0x556e('0x35')](!![],this['handleCloseBox'][_0x556e('0x13')](this));}}};EmailImap[_0x556e('0x2d')][_0x556e('0x36')]=function(_0x310819,_0x12e881){_0x310819['on'](_0x556e('0x37'),this['handleMessageBody'][_0x556e('0x13')](this));_0x310819[_0x556e('0x10')]('attributes',this[_0x556e('0x38')][_0x556e('0x13')](this));_0x310819[_0x556e('0x10')](_0x556e('0x14'),this[_0x556e('0x39')]['bind'](this));};EmailImap['prototype'][_0x556e('0x3a')]=function(_0x5e623d,_0x599d5e){simpleParser(_0x5e623d,{'Iconv':Iconv},this[_0x556e('0x3b')]['bind'](this));};EmailImap[_0x556e('0x2d')][_0x556e('0x38')]=function(_0x506271){};EmailImap[_0x556e('0x2d')][_0x556e('0x39')]=function(){};EmailImap[_0x556e('0x2d')][_0x556e('0x3b')]=function(_0x4494ad,_0x4d2d21){if(_0x4494ad){logger[_0x556e('0x16')](_0x4494ad);}else{var _0x4076bd=this;utils[_0x556e('0x3c')](this[_0x556e('0xf')],_0x4d2d21,function(_0x1b49a0){_0x4076bd[_0x556e('0x2a')](_0x556e('0xc'),_0x1b49a0);});}};EmailImap[_0x556e('0x2d')][_0x556e('0x34')]=function(){this['imap'][_0x556e('0x35')](!![],this[_0x556e('0x2e')]['bind'](this));};EmailImap[_0x556e('0x2d')][_0x556e('0x33')]=function(_0x4330ac){this[_0x556e('0x17')](_0x4330ac);this[_0x556e('0x2')][_0x556e('0x35')](!![],this['handleCloseBox'][_0x556e('0x13')](this));};EmailImap[_0x556e('0x2d')][_0x556e('0x15')]=function(){this['emit'](_0x556e('0x14'));};EmailImap[_0x556e('0x2d')][_0x556e('0x17')]=function(_0x4d0c3d,_0xb4d71f){logger[_0x556e('0x16')]('handleError',this['account']['email'],JSON[_0x556e('0x3d')](_0x4d0c3d));var _0x40e64a='';if(_0x4d0c3d){if(_0x4d0c3d[_0x556e('0x3e')]){_0x40e64a=_0x4d0c3d[_0x556e('0x3e')];}else{for(var _0x1152aa in _0x4d0c3d){if(_0x4d0c3d['hasOwnProperty'](_0x1152aa)){_0x40e64a+=_[_0x556e('0x3f')](_0x1152aa)+':\x20'+_0x4d0c3d[_0x1152aa]+'\x0a';}}}}if(_0xb4d71f){this[_0x556e('0x2')]['end']();}else{this[_0x556e('0x2a')](_0x556e('0x16'),_0x40e64a);this[_0x556e('0x2a')]('end');}};module[_0x556e('0x40')]=EmailImap;
\ No newline at end of file
+var _0x9857=['closeBox','body','handleMessageBody','attributes','handleMessageEnd','handleMessageAttributes','parser','stringify','textCode','upperFirst','exports','path','util','imap','lodash','randomstring','simpleParser','iconv','Iconv','events','EventEmitter','./utils','../../../config/logger','email','INBOX','account','getAccount','once','ready','handleReady','end','handleError','bind','connect','prototype','connTimeout','authTimeout','isNil','service','authentication','user','host','port','tls','autotls','required','password','getHost','openBox','mailbox','emit','box','readUnseen','handleCloseBox','search','UNSEEN','handleReadUnseen','length','message','handleFetchMessage','handleFetchError','error'];(function(_0x39393a,_0x323ec9){var _0x709d68=function(_0x44c8ba){while(--_0x44c8ba){_0x39393a['push'](_0x39393a['shift']());}};_0x709d68(++_0x323ec9);}(_0x9857,0x87));var _0x7985=function(_0xf99a15,_0x2bd4d7){_0xf99a15=_0xf99a15-0x0;var _0x15221f=_0x9857[_0xf99a15];return _0x15221f;};'use strict';var fs=require('fs');var path=require(_0x7985('0x0'));var util=require(_0x7985('0x1'));var Imap=require(_0x7985('0x2'));var _=require(_0x7985('0x3'));var rs=require(_0x7985('0x4'));var simpleParser=require('mailparser')[_0x7985('0x5')];var Iconv=require(_0x7985('0x6'))[_0x7985('0x7')];var EventEmitter=require(_0x7985('0x8'))[_0x7985('0x9')];var utils=require(_0x7985('0xa'));var logger=require(_0x7985('0xb'))(_0x7985('0xc'));function EmailImap(_0x1d0179,_0x53d2cd){this['mailbox']=_0x7985('0xd');this[_0x7985('0xe')]=this[_0x7985('0xf')](_0x1d0179,_0x53d2cd);this[_0x7985('0x2')]=new Imap(this['account']);this[_0x7985('0x2')][_0x7985('0x10')](_0x7985('0x11'),this[_0x7985('0x12')]['bind'](this));this[_0x7985('0x2')][_0x7985('0x10')](_0x7985('0x13'),this['handleEnd']['bind'](this));this[_0x7985('0x2')]['on']('error',this[_0x7985('0x14')][_0x7985('0x15')](this));this[_0x7985('0x2')][_0x7985('0x16')]();}util['inherits'](EmailImap,EventEmitter);EmailImap[_0x7985('0x17')][_0x7985('0xf')]=function(_0x2670ef,_0x54b4a3){var _0x4286ea={'connTimeout':_0x2670ef[_0x7985('0x18')]?_0x2670ef[_0x7985('0x18')]*0x3e8:0x2710,'authTimeout':_0x2670ef['authTimeout']?_0x2670ef[_0x7985('0x19')]*0x3e8:0x1388};if(_[_0x7985('0x1a')](_0x2670ef[_0x7985('0x1b')])){if(_0x2670ef[_0x7985('0x1c')]){_0x4286ea[_0x7985('0x1d')]=_0x2670ef['user'];_0x4286ea['password']=_0x2670ef['password'];}_0x4286ea[_0x7985('0x1e')]=_0x2670ef[_0x7985('0x1e')];_0x4286ea[_0x7985('0x1f')]=_0x2670ef[_0x7985('0x1f')]||0x3e1;if(_0x2670ef[_0x7985('0x20')]){_0x4286ea[_0x7985('0x20')]=!![];}else{_0x4286ea['tls']=![];_0x4286ea[_0x7985('0x21')]=_0x7985('0x22');}}else{_0x4286ea['user']=_0x2670ef[_0x7985('0x1d')];_0x4286ea[_0x7985('0x23')]=_0x2670ef[_0x7985('0x23')];_0x4286ea[_0x7985('0x1e')]=utils[_0x7985('0x24')](_0x2670ef[_0x7985('0x1b')]);_0x4286ea[_0x7985('0x1f')]=0x3e1;_0x4286ea[_0x7985('0x20')]=!![];}_0x4286ea[_0x7985('0xc')]=_0x54b4a3||_0x2670ef[_0x7985('0x1d')]||'anonymous@xcally.com';return _0x4286ea;};EmailImap[_0x7985('0x17')][_0x7985('0x12')]=function(){this['imap'][_0x7985('0x25')](this[_0x7985('0x26')],![],this['handleOpenBox']['bind'](this));};EmailImap[_0x7985('0x17')]['handleOpenBox']=function(_0xd87a06,_0x125618){if(_0xd87a06){this['handleError'](_0xd87a06,!![]);}else{this[_0x7985('0x27')](_0x7985('0x28'),_0x125618);this[_0x7985('0x29')]();}};EmailImap['prototype'][_0x7985('0x2a')]=function(_0x4d8d45){if(_0x4d8d45){this['handleError'](_0x4d8d45,!![]);}else{this[_0x7985('0x2')][_0x7985('0x13')]();}};EmailImap['prototype'][_0x7985('0x29')]=function(){this[_0x7985('0x2')][_0x7985('0x2b')]([_0x7985('0x2c')],this[_0x7985('0x2d')][_0x7985('0x15')](this));};EmailImap[_0x7985('0x17')][_0x7985('0x2d')]=function(_0x1fee80,_0x3cc4ab){if(_0x1fee80){this[_0x7985('0x14')](_0x1fee80,!![]);}else{if(_0x3cc4ab[_0x7985('0x2e')]){try{var _0x2d31bb=this[_0x7985('0x2')]['fetch'](_0x3cc4ab,{'bodies':'','markSeen':!![]});_0x2d31bb['on'](_0x7985('0x2f'),this[_0x7985('0x30')][_0x7985('0x15')](this));_0x2d31bb['once']('error',this[_0x7985('0x31')][_0x7985('0x15')](this));_0x2d31bb[_0x7985('0x10')](_0x7985('0x13'),this['handleFetchEnd']['bind'](this));}catch(_0x4ca4f5){logger[_0x7985('0x32')](_0x4ca4f5);}}else{this['imap'][_0x7985('0x33')](!![],this['handleCloseBox']['bind'](this));}}};EmailImap[_0x7985('0x17')]['handleFetchMessage']=function(_0x555d19,_0x5e5cb2){_0x555d19['on'](_0x7985('0x34'),this[_0x7985('0x35')][_0x7985('0x15')](this));_0x555d19[_0x7985('0x10')](_0x7985('0x36'),this['handleMessageAttributes'][_0x7985('0x15')](this));_0x555d19[_0x7985('0x10')](_0x7985('0x13'),this[_0x7985('0x37')][_0x7985('0x15')](this));};EmailImap[_0x7985('0x17')][_0x7985('0x35')]=function(_0x504e80,_0x93aae3){simpleParser(_0x504e80,{'Iconv':Iconv},this['handleSimpleParser'][_0x7985('0x15')](this));};EmailImap[_0x7985('0x17')][_0x7985('0x38')]=function(_0x1efa09){};EmailImap[_0x7985('0x17')]['handleMessageEnd']=function(){};EmailImap[_0x7985('0x17')]['handleSimpleParser']=function(_0x359ec9,_0x5a65b8){if(_0x359ec9){logger['error'](_0x359ec9);}else{var _0x2e6bad=this;utils[_0x7985('0x39')](this['account'],_0x5a65b8,function(_0x275a71){_0x2e6bad[_0x7985('0x27')](_0x7985('0xc'),_0x275a71);});}};EmailImap[_0x7985('0x17')]['handleFetchEnd']=function(){this[_0x7985('0x2')]['closeBox'](!![],this['handleCloseBox']['bind'](this));};EmailImap['prototype']['handleFetchError']=function(_0x4da056){this[_0x7985('0x14')](_0x4da056);this['imap'][_0x7985('0x33')](!![],this[_0x7985('0x2a')][_0x7985('0x15')](this));};EmailImap[_0x7985('0x17')]['handleEnd']=function(){this[_0x7985('0x27')](_0x7985('0x13'));};EmailImap['prototype'][_0x7985('0x14')]=function(_0x2f749a,_0x355abb){logger[_0x7985('0x32')](_0x7985('0x14'),this['account'][_0x7985('0xc')],JSON[_0x7985('0x3a')](_0x2f749a));var _0x59df26='';if(_0x2f749a){if(_0x2f749a[_0x7985('0x3b')]){_0x59df26=_0x2f749a['textCode'];}else{for(var _0x482862 in _0x2f749a){if(_0x2f749a['hasOwnProperty'](_0x482862)){_0x59df26+=_[_0x7985('0x3c')](_0x482862)+':\x20'+_0x2f749a[_0x482862]+'\x0a';}}}}if(_0x355abb){this[_0x7985('0x2')][_0x7985('0x13')]();}else{this['emit'](_0x7985('0x32'),_0x59df26);this[_0x7985('0x27')](_0x7985('0x13'));}};module[_0x7985('0x3d')]=EmailImap;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x028b=['createTransport','compile','sendMail','toString','exports','nodemailer','bluebird','nodemailer-plugin-inline-base64','prototype'];(function(_0x36ed7a,_0x3d48db){var _0x1383f2=function(_0x2a983a){while(--_0x2a983a){_0x36ed7a['push'](_0x36ed7a['shift']());}};_0x1383f2(++_0x3d48db);}(_0x028b,0x1eb));var _0xb028=function(_0x120f15,_0x2c0000){_0x120f15=_0x120f15-0x0;var _0x6e8fd4=_0x028b[_0x120f15];return _0x6e8fd4;};'use strict';var nodemailer=require(_0xb028('0x0'));var BPromise=require(_0xb028('0x1'));var inlineBase64=require(_0xb028('0x2'));function EmailSmtp(){}EmailSmtp[_0xb028('0x3')]['send']=function(_0x3af1fb,_0x67563c){return new BPromise(function(_0x3efe1a,_0x41933f){var _0x422de3=nodemailer[_0xb028('0x4')](_0x3af1fb);_0x422de3['use'](_0xb028('0x5'),inlineBase64());_0x422de3[_0xb028('0x6')](_0x67563c,function(_0x4f133c,_0x200d99){if(_0x4f133c){_0x41933f(_0x4f133c[_0xb028('0x7')]());}else{_0x3efe1a(_0x200d99);}});});};EmailSmtp[_0xb028('0x3')]['verify']=function(_0x4e53b0){return new BPromise(function(_0x177212,_0x624538){var _0x3d7b63=nodemailer[_0xb028('0x4')](_0x4e53b0);_0x3d7b63['verify'](function(_0x597cdf,_0x5c4513){if(_0x597cdf){_0x624538(_0x597cdf['toString']());}else{if(_0x5c4513){_0x177212(_0x5c4513);}else{_0x624538('Not\x20verifired');}}});});};module[_0xb028('0x8')]=EmailSmtp;
\ No newline at end of file
+var _0x9fd4=['prototype','verify','createTransport','Not\x20verifired','exports','nodemailer','bluebird','nodemailer-plugin-inline-base64','send','use','sendMail','toString'];(function(_0x378b25,_0x18bcda){var _0x4e004b=function(_0x434358){while(--_0x434358){_0x378b25['push'](_0x378b25['shift']());}};_0x4e004b(++_0x18bcda);}(_0x9fd4,0x125));var _0x49fd=function(_0x1f6e85,_0x46ac39){_0x1f6e85=_0x1f6e85-0x0;var _0x1c9d9f=_0x9fd4[_0x1f6e85];return _0x1c9d9f;};'use strict';var nodemailer=require(_0x49fd('0x0'));var BPromise=require(_0x49fd('0x1'));var inlineBase64=require(_0x49fd('0x2'));function EmailSmtp(){}EmailSmtp['prototype'][_0x49fd('0x3')]=function(_0x273cbf,_0x25b073){return new BPromise(function(_0x4246c1,_0x1efd12){var _0x20283b=nodemailer['createTransport'](_0x273cbf);_0x20283b[_0x49fd('0x4')]('compile',inlineBase64());_0x20283b[_0x49fd('0x5')](_0x25b073,function(_0x55403a,_0x49f7d0){if(_0x55403a){_0x1efd12(_0x55403a[_0x49fd('0x6')]());}else{_0x4246c1(_0x49f7d0);}});});};EmailSmtp[_0x49fd('0x7')][_0x49fd('0x8')]=function(_0x15b98f){return new BPromise(function(_0x59fdd2,_0x2a6984){var _0x192d1e=nodemailer[_0x49fd('0x9')](_0x15b98f);_0x192d1e[_0x49fd('0x8')](function(_0x4b4b6b,_0x1c33d2){if(_0x4b4b6b){_0x2a6984(_0x4b4b6b[_0x49fd('0x6')]());}else{if(_0x1c33d2){_0x59fdd2(_0x1c33d2);}else{_0x2a6984(_0x49fd('0xa'));}}});});};module[_0x49fd('0xb')]=EmailSmtp;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf9ac=['replace','includes','attachments','forEach','push','filename','_SRC','_IMG','<span\x20style=font-weight:bold>\x20[Attachment:\x20','\x20]</span>','body','textAsHtml','<a\x20target=\x22_blank\x22\x20','originTo','email','message','originCc','bcc','type','attachment-','format','%s-%s','now','join','root','writeFileSync','content','contentType','headerLines','Auto-Submitted:\x20auto-replied','X-Auto-Response-Suppress:\x20All','Precedence:\x20auto_reply','line','parser','from','subject','inReplyTo','date','YYYY-MM-DD\x20HH:mm:ss','application/ms-tnef','info','Email\x20message\x20%s\x20is\x20in\x20TNEF\x20format:\x20message\x20content\x20will\x20be\x20converted\x20by\x20the\x20system','messageId','parseBuffer','first','BodyHTML','<p>Empty\x20message</p>','Attachments','Title','getHost','gmail','imap.gmail.com','yahoo','imap.mail.yahoo.com','hotmail','imap-mail.outlook.com','127.0.0.1','lodash','path','util','../../../config/logger','../../../config/environment','head','value','address','generate','@xcally.com','name','substring','indexOf','length','slice','Anonymous','split','pop','isEmpty','html','test'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xf9ac,0x87));var _0xcf9a=function(_0x557895,_0x595f7c){_0x557895=_0x557895-0x0;var _0x323973=_0xf9ac[_0x557895];return _0x323973;};'use strict';var _=require(_0xcf9a('0x0'));var moment=require('moment');var random=require('randomstring');var fs=require('fs');var path=require(_0xcf9a('0x1'));var util=require(_0xcf9a('0x2'));var tnef=require('node-tnef');var logger=require(_0xcf9a('0x3'))('email');var config=require(_0xcf9a('0x4'));function getAddress(_0x518dc3){var _0x48da91=_[_0xcf9a('0x5')](_0x518dc3[_0xcf9a('0x6')]);return _0x48da91&&_0x48da91[_0xcf9a('0x7')]?_0x48da91[_0xcf9a('0x7')]:'anonymous'+random[_0xcf9a('0x8')](0x6)+_0xcf9a('0x9');}function getFirstName(_0x4c0665){var _0x536f2f=_[_0xcf9a('0x5')](_0x4c0665['value']);if(_0x536f2f&&_0x536f2f[_0xcf9a('0xa')]){if(_0x536f2f['name']==_0x536f2f[_0xcf9a('0x7')]){return _0x536f2f['name'][_0xcf9a('0xb')](0x0,_0x536f2f[_0xcf9a('0xa')][_0xcf9a('0xc')]('@'));}var _0x53c5ae=_0x536f2f['name']['split'](/\s+/);return _0x53c5ae[_0xcf9a('0xd')]>0x1?_0x53c5ae[_0xcf9a('0xe')](0x0,-0x1)['join']('\x20'):_0x536f2f[_0xcf9a('0xa')];}return _0xcf9a('0xf');}function getLastName(_0xe8fe56){var _0x583cdf=_[_0xcf9a('0x5')](_0xe8fe56['value']);if(_0x583cdf&&_0x583cdf['name']){var _0x58cdd2=_0x583cdf['name'][_0xcf9a('0x10')](/\s+/);return _0x58cdd2[_0xcf9a('0xd')]>0x1?_0x58cdd2[_0xcf9a('0x11')]():'';}return'';}function getMails(_0xaadfd7,_0x16b7d){var _0xced14a='';for(var _0x25dc10=0x0;_0x25dc10<_0x16b7d['value'][_0xcf9a('0xd')];_0x25dc10+=0x1){if(_0x16b7d[_0xcf9a('0x6')][_0x25dc10]['address']!==_0xaadfd7){if(!_[_0xcf9a('0x12')](_0xced14a)){_0xced14a+=',';}_0xced14a+=_0x16b7d['value'][_0x25dc10][_0xcf9a('0xa')]||_0x16b7d['value'][_0x25dc10][_0xcf9a('0x7')]||'';_0xced14a+='\x20<';_0xced14a+=_0x16b7d[_0xcf9a('0x6')][_0x25dc10][_0xcf9a('0x7')]?_0x16b7d[_0xcf9a('0x6')][_0x25dc10][_0xcf9a('0x7')]:'anonymous'+random['generate'](0x6)+_0xcf9a('0x9');_0xced14a+='>';}}return _0xced14a;}function parseEmail(_0x5f3ac0,_0x46d8b0,_0x2e308a){if(_0x46d8b0[_0xcf9a('0x13')]){var _0x5e8019=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;while(_0x5e8019[_0xcf9a('0x14')](_0x46d8b0[_0xcf9a('0x13')])){_0x46d8b0[_0xcf9a('0x13')]=_0x46d8b0['html'][_0xcf9a('0x15')](_0x5e8019,'');}if(_0x46d8b0[_0xcf9a('0x13')][_0xcf9a('0x16')]('<img')){var _0x4f43b9=[];_0x46d8b0[_0xcf9a('0x17')][_0xcf9a('0x18')](_0x11f372=>{_0x4f43b9[_0xcf9a('0x19')](_0x11f372[_0xcf9a('0x1a')]);});var _0x3d2135=/<img.*? _SRC(.*?)[^>]+>/g;var _0x4f9b8c=/src="data:image\/([a-zA-Z]*);base64,([^"]*)"/g;var _0x2c46c5=_0x46d8b0['html']['replace'](_0x4f9b8c,_0xcf9a('0x1b'));var _0x798016=_0x2c46c5[_0xcf9a('0x15')](_0x3d2135,_0xcf9a('0x1c'));for(let _0x3497f4=0x0;_0x3497f4<_0x4f43b9[_0xcf9a('0xd')];_0x3497f4++){var _0x17386b=_0x798016['replace']('_IMG',_0xcf9a('0x1d')+_0x4f43b9[_0x3497f4]+_0xcf9a('0x1e'));_0x798016=_0x17386b;}_0x46d8b0['html']=_0x798016;}_0x2e308a['body']=_0x46d8b0['html'];}else{_0x2e308a[_0xcf9a('0x1f')]=_0x46d8b0[_0xcf9a('0x20')];}if(_0x2e308a[_0xcf9a('0x1f')]){_0x2e308a['body']=_0x2e308a[_0xcf9a('0x1f')][_0xcf9a('0x15')](/<a\s+/gi,_0xcf9a('0x21'));}if(_0x46d8b0['to']){_0x2e308a['message'][_0xcf9a('0x22')]=getMails(null,_0x46d8b0['to']);var _0x382d51=getMails(_0x5f3ac0[_0xcf9a('0x23')],_0x46d8b0['to']);if(!_[_0xcf9a('0x12')](_0x382d51)){_0x2e308a[_0xcf9a('0x24')]['cc']+=_0x382d51;}}if(_0x46d8b0['cc']){_0x2e308a[_0xcf9a('0x24')][_0xcf9a('0x25')]=getMails(null,_0x46d8b0['cc']);var _0x447d63=getMails(_0x5f3ac0[_0xcf9a('0x23')],_0x46d8b0['cc']);if(!_[_0xcf9a('0x12')](_0x447d63)){if(!_[_0xcf9a('0x12')](_0x2e308a['message']['cc'])){_0x2e308a[_0xcf9a('0x24')]['cc']+=',';}_0x2e308a['message']['cc']+=_0x447d63;}}if(!_['includes'](_0x2e308a[_0xcf9a('0x24')][_0xcf9a('0x22')],_0x5f3ac0[_0xcf9a('0x23')])&&!_[_0xcf9a('0x16')](_0x2e308a[_0xcf9a('0x24')]['originCc'],_0x5f3ac0['email'])){_0x2e308a[_0xcf9a('0x24')][_0xcf9a('0x26')]=_0x5f3ac0[_0xcf9a('0x23')];}if(_0x46d8b0['attachments']&&_0x46d8b0[_0xcf9a('0x17')][_0xcf9a('0xd')]){_0x2e308a['message']['attach']=_0x46d8b0[_0xcf9a('0x17')][_0xcf9a('0xd')];for(var _0x3dca47=0x0,_0x1bd386,_0x37b0ef,_0x4c2b6a;_0x3dca47<_0x46d8b0[_0xcf9a('0x17')][_0xcf9a('0xd')];_0x3dca47+=0x1){if(_0x46d8b0['attachments'][_0x3dca47][_0xcf9a('0x27')]==='attachment'){_0x4c2b6a=_0x46d8b0[_0xcf9a('0x17')][_0x3dca47][_0xcf9a('0x1a')]||_0xcf9a('0x28')+_0x3dca47;_0x1bd386=util[_0xcf9a('0x29')](_0xcf9a('0x2a'),Date[_0xcf9a('0x2b')](),_0x4c2b6a);_0x37b0ef=path[_0xcf9a('0x2c')](config[_0xcf9a('0x2d')],'server/files/attachments/',_0x1bd386);fs[_0xcf9a('0x2e')](_0x37b0ef,_0x46d8b0['attachments'][_0x3dca47][_0xcf9a('0x2f')]);_0x2e308a[_0xcf9a('0x24')][_0xcf9a('0x17')][_0xcf9a('0x19')]({'name':_0x4c2b6a,'basename':_0x1bd386,'type':_0x46d8b0['attachments'][_0x3dca47][_0xcf9a('0x30')],'filepath':_0x37b0ef});}}}if(_0x46d8b0[_0xcf9a('0x31')]&&_0x46d8b0[_0xcf9a('0x31')][_0xcf9a('0xd')]>0x0){var _0x2da846=[_0xcf9a('0x32'),_0xcf9a('0x33'),_0xcf9a('0x34')];for(var _0x27273a=0x0;_0x27273a<_0x46d8b0[_0xcf9a('0x31')][_0xcf9a('0xd')];_0x27273a++){var _0x3a6a6d=_['indexOf'](_0x2da846,_0x46d8b0['headerLines'][_0x27273a][_0xcf9a('0x35')]);if(_0x3a6a6d>=0x0){_0x2e308a['isAutoreply']=!![];}}}return _0x2e308a;}exports[_0xcf9a('0x36')]=function(_0x325d85,_0x46233c,_0x4ad76b){var _0x424476={'from':getAddress(_0x46233c[_0xcf9a('0x37')]),'firstName':getFirstName(_0x46233c[_0xcf9a('0x37')]),'lastName':getLastName(_0x46233c[_0xcf9a('0x37')]),'mapKey':'email','message':{'from':getMails(_0x325d85[_0xcf9a('0x23')],_0x46233c[_0xcf9a('0x37')]),'to':_0x325d85[_0xcf9a('0x23')],'cc':'','subject':_0x46233c[_0xcf9a('0x38')]||'','messageId':_0x46233c['messageId'],'inReplyTo':_0x46233c[_0xcf9a('0x39')],'sentAt':moment(_0x46233c[_0xcf9a('0x3a')])[_0xcf9a('0x29')](_0xcf9a('0x3b')),'attach':![],'attachments':[]}};if(!_0x46233c[_0xcf9a('0x13')]&&!_0x46233c[_0xcf9a('0x20')]){var _0x48b3af=_['filter'](_0x46233c[_0xcf9a('0x17')],{'contentType':_0xcf9a('0x3c')});if(_0x48b3af[_0xcf9a('0xd')]){logger[_0xcf9a('0x3d')](util[_0xcf9a('0x29')](_0xcf9a('0x3e'),_0x46233c[_0xcf9a('0x3f')]));tnef[_0xcf9a('0x40')](_[_0xcf9a('0x41')](_0x48b3af)[_0xcf9a('0x2f')],function(_0xacf25,_0x435973){if(_0x435973){_0x46233c[_0xcf9a('0x13')]=_0x435973[_0xcf9a('0x42')]||_0xcf9a('0x43');if(_0x435973['Attachments']){for(var _0x15a195=0x0;_0x15a195<_0x435973[_0xcf9a('0x44')][_0xcf9a('0xd')];_0x15a195++){var _0x2b02bf=_0x435973[_0xcf9a('0x44')][_0x15a195];_0x424476[_0xcf9a('0x24')][_0xcf9a('0x17')][_0xcf9a('0x19')]({'filename':_0x2b02bf[_0xcf9a('0x45')],'content':Buffer[_0xcf9a('0x37')](_0x2b02bf['Data'])});}}}_0x4ad76b(parseEmail(_0x325d85,_0x46233c,_0x424476));});}else{_0x46233c[_0xcf9a('0x13')]=_0xcf9a('0x43');_0x4ad76b(parseEmail(_0x325d85,_0x46233c,_0x424476));}}else{_0x4ad76b(parseEmail(_0x325d85,_0x46233c,_0x424476));}};exports[_0xcf9a('0x46')]=function(_0x5058d8){switch(_0x5058d8){case _0xcf9a('0x47'):return _0xcf9a('0x48');case _0xcf9a('0x49'):return _0xcf9a('0x4a');case _0xcf9a('0x4b'):return _0xcf9a('0x4c');case'outlook365':return'outlook.office365.com';}return _0xcf9a('0x4d');};
\ No newline at end of file
+var _0x4489=['message','originCc','email','originTo','bcc','attach','type','attachment','format','%s-%s','root','server/files/attachments/','writeFileSync','content','push','headerLines','Auto-Submitted:\x20auto-replied','X-Auto-Response-Suppress:\x20All','line','isAutoreply','parser','from','subject','messageId','inReplyTo','date','YYYY-MM-DD\x20HH:mm:ss','filter','application/ms-tnef','info','parseBuffer','first','BodyHTML','<p>Empty\x20message</p>','Attachments','Title','Data','getHost','yahoo','hotmail','imap-mail.outlook.com','outlook365','outlook.office365.com','127.0.0.1','lodash','moment','path','util','node-tnef','../../../config/logger','value','address','generate','@xcally.com','name','substring','indexOf','split','length','slice','join','head','pop','isEmpty','anonymous','html','includes','<img','attachments','forEach','filename','_SRC','replace','_IMG','<span\x20style=font-weight:bold>\x20[Attachment:\x20','\x20]</span>','body','<a\x20target=\x22_blank\x22\x20'];(function(_0x1ca9a0,_0x17be2b){var _0x4a80d6=function(_0x31962d){while(--_0x31962d){_0x1ca9a0['push'](_0x1ca9a0['shift']());}};_0x4a80d6(++_0x17be2b);}(_0x4489,0x164));var _0x9448=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x4489[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0x9448('0x0'));var moment=require(_0x9448('0x1'));var random=require('randomstring');var fs=require('fs');var path=require(_0x9448('0x2'));var util=require(_0x9448('0x3'));var tnef=require(_0x9448('0x4'));var logger=require(_0x9448('0x5'))('email');var config=require('../../../config/environment');function getAddress(_0x4bf96c){var _0x5333bf=_['head'](_0x4bf96c[_0x9448('0x6')]);return _0x5333bf&&_0x5333bf['address']?_0x5333bf[_0x9448('0x7')]:'anonymous'+random[_0x9448('0x8')](0x6)+_0x9448('0x9');}function getFirstName(_0x26bd97){var _0x4b81f9=_['head'](_0x26bd97['value']);if(_0x4b81f9&&_0x4b81f9[_0x9448('0xa')]){if(_0x4b81f9[_0x9448('0xa')]==_0x4b81f9[_0x9448('0x7')]){return _0x4b81f9[_0x9448('0xa')][_0x9448('0xb')](0x0,_0x4b81f9['name'][_0x9448('0xc')]('@'));}var _0x444830=_0x4b81f9[_0x9448('0xa')][_0x9448('0xd')](/\s+/);return _0x444830[_0x9448('0xe')]>0x1?_0x444830[_0x9448('0xf')](0x0,-0x1)[_0x9448('0x10')]('\x20'):_0x4b81f9[_0x9448('0xa')];}return'Anonymous';}function getLastName(_0x75cf9c){var _0x56fd4a=_[_0x9448('0x11')](_0x75cf9c[_0x9448('0x6')]);if(_0x56fd4a&&_0x56fd4a['name']){var _0x21a6ee=_0x56fd4a[_0x9448('0xa')][_0x9448('0xd')](/\s+/);return _0x21a6ee[_0x9448('0xe')]>0x1?_0x21a6ee[_0x9448('0x12')]():'';}return'';}function getMails(_0x3564c0,_0xcaf7ac){var _0x9b9fd3='';for(var _0x5a24de=0x0;_0x5a24de<_0xcaf7ac[_0x9448('0x6')]['length'];_0x5a24de+=0x1){if(_0xcaf7ac[_0x9448('0x6')][_0x5a24de][_0x9448('0x7')]!==_0x3564c0){if(!_[_0x9448('0x13')](_0x9b9fd3)){_0x9b9fd3+=',';}_0x9b9fd3+=_0xcaf7ac[_0x9448('0x6')][_0x5a24de][_0x9448('0xa')]||_0xcaf7ac[_0x9448('0x6')][_0x5a24de][_0x9448('0x7')]||'';_0x9b9fd3+='\x20<';_0x9b9fd3+=_0xcaf7ac[_0x9448('0x6')][_0x5a24de][_0x9448('0x7')]?_0xcaf7ac[_0x9448('0x6')][_0x5a24de]['address']:_0x9448('0x14')+random['generate'](0x6)+'@xcally.com';_0x9b9fd3+='>';}}return _0x9b9fd3;}function parseEmail(_0x43d5ac,_0x5cc7da,_0x594b6b){if(_0x5cc7da['html']){var _0x9d711a=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;while(_0x9d711a['test'](_0x5cc7da[_0x9448('0x15')])){_0x5cc7da[_0x9448('0x15')]=_0x5cc7da[_0x9448('0x15')]['replace'](_0x9d711a,'');}if(_0x5cc7da[_0x9448('0x15')][_0x9448('0x16')](_0x9448('0x17'))){var _0x4430ad=[];_0x5cc7da[_0x9448('0x18')][_0x9448('0x19')](_0x4d8a8a=>{_0x4430ad['push'](_0x4d8a8a[_0x9448('0x1a')]);});var _0x124892=/<img.*? _SRC(.*?)[^>]+>/g;var _0x24240d=/src="data:image\/([a-zA-Z]*);base64,([^"]*)"/g;var _0x161b1d=_0x5cc7da[_0x9448('0x15')]['replace'](_0x24240d,_0x9448('0x1b'));var _0x4e4134=_0x161b1d[_0x9448('0x1c')](_0x124892,_0x9448('0x1d'));for(let _0x245ec8=0x0;_0x245ec8<_0x4430ad['length'];_0x245ec8++){var _0x2dd998=_0x4e4134[_0x9448('0x1c')](_0x9448('0x1d'),_0x9448('0x1e')+_0x4430ad[_0x245ec8]+_0x9448('0x1f'));_0x4e4134=_0x2dd998;}_0x5cc7da[_0x9448('0x15')]=_0x4e4134;}_0x594b6b['body']=_0x5cc7da[_0x9448('0x15')];}else{_0x594b6b[_0x9448('0x20')]=_0x5cc7da['textAsHtml'];}if(_0x594b6b[_0x9448('0x20')]){_0x594b6b[_0x9448('0x20')]=_0x594b6b[_0x9448('0x20')][_0x9448('0x1c')](/<a\s+/gi,_0x9448('0x21'));}if(_0x5cc7da['to']){_0x594b6b[_0x9448('0x22')]['originTo']=getMails(null,_0x5cc7da['to']);var _0x4386bc=getMails(_0x43d5ac['email'],_0x5cc7da['to']);if(!_[_0x9448('0x13')](_0x4386bc)){_0x594b6b[_0x9448('0x22')]['cc']+=_0x4386bc;}}if(_0x5cc7da['cc']){_0x594b6b[_0x9448('0x22')][_0x9448('0x23')]=getMails(null,_0x5cc7da['cc']);var _0x52f359=getMails(_0x43d5ac[_0x9448('0x24')],_0x5cc7da['cc']);if(!_[_0x9448('0x13')](_0x52f359)){if(!_[_0x9448('0x13')](_0x594b6b['message']['cc'])){_0x594b6b[_0x9448('0x22')]['cc']+=',';}_0x594b6b[_0x9448('0x22')]['cc']+=_0x52f359;}}if(!_['includes'](_0x594b6b['message'][_0x9448('0x25')],_0x43d5ac[_0x9448('0x24')])&&!_['includes'](_0x594b6b[_0x9448('0x22')][_0x9448('0x23')],_0x43d5ac[_0x9448('0x24')])){_0x594b6b[_0x9448('0x22')][_0x9448('0x26')]=_0x43d5ac[_0x9448('0x24')];}if(_0x5cc7da[_0x9448('0x18')]&&_0x5cc7da['attachments'][_0x9448('0xe')]){_0x594b6b[_0x9448('0x22')][_0x9448('0x27')]=_0x5cc7da[_0x9448('0x18')][_0x9448('0xe')];for(var _0xf1beb9=0x0,_0x1775da,_0x2c6e12,_0x222c15;_0xf1beb9<_0x5cc7da[_0x9448('0x18')][_0x9448('0xe')];_0xf1beb9+=0x1){if(_0x5cc7da['attachments'][_0xf1beb9][_0x9448('0x28')]===_0x9448('0x29')){_0x222c15=_0x5cc7da[_0x9448('0x18')][_0xf1beb9][_0x9448('0x1a')]||'attachment-'+_0xf1beb9;_0x1775da=util[_0x9448('0x2a')](_0x9448('0x2b'),Date['now'](),_0x222c15);_0x2c6e12=path[_0x9448('0x10')](config[_0x9448('0x2c')],_0x9448('0x2d'),_0x1775da);fs[_0x9448('0x2e')](_0x2c6e12,_0x5cc7da['attachments'][_0xf1beb9][_0x9448('0x2f')]);_0x594b6b[_0x9448('0x22')][_0x9448('0x18')][_0x9448('0x30')]({'name':_0x222c15,'basename':_0x1775da,'type':_0x5cc7da[_0x9448('0x18')][_0xf1beb9]['contentType'],'filepath':_0x2c6e12});}}}if(_0x5cc7da[_0x9448('0x31')]&&_0x5cc7da[_0x9448('0x31')][_0x9448('0xe')]>0x0){var _0x489c78=[_0x9448('0x32'),_0x9448('0x33'),'Precedence:\x20auto_reply'];for(var _0x525cd6=0x0;_0x525cd6<_0x5cc7da[_0x9448('0x31')][_0x9448('0xe')];_0x525cd6++){var _0x5e6276=_[_0x9448('0xc')](_0x489c78,_0x5cc7da['headerLines'][_0x525cd6][_0x9448('0x34')]);if(_0x5e6276>=0x0){_0x594b6b[_0x9448('0x35')]=!![];}}}return _0x594b6b;}exports[_0x9448('0x36')]=function(_0x28f2fe,_0x8ffab4,_0xc3b1b){var _0x276897={'from':getAddress(_0x8ffab4[_0x9448('0x37')]),'firstName':getFirstName(_0x8ffab4[_0x9448('0x37')]),'lastName':getLastName(_0x8ffab4[_0x9448('0x37')]),'mapKey':'email','message':{'from':getMails(_0x28f2fe['email'],_0x8ffab4[_0x9448('0x37')]),'to':_0x28f2fe[_0x9448('0x24')],'cc':'','subject':_0x8ffab4[_0x9448('0x38')]||'','messageId':_0x8ffab4[_0x9448('0x39')],'inReplyTo':_0x8ffab4[_0x9448('0x3a')],'sentAt':moment(_0x8ffab4[_0x9448('0x3b')])[_0x9448('0x2a')](_0x9448('0x3c')),'attach':![],'attachments':[]}};if(!_0x8ffab4['html']&&!_0x8ffab4['textAsHtml']){var _0x281c4d=_[_0x9448('0x3d')](_0x8ffab4[_0x9448('0x18')],{'contentType':_0x9448('0x3e')});if(_0x281c4d[_0x9448('0xe')]){logger[_0x9448('0x3f')](util[_0x9448('0x2a')]('Email\x20message\x20%s\x20is\x20in\x20TNEF\x20format:\x20message\x20content\x20will\x20be\x20converted\x20by\x20the\x20system',_0x8ffab4['messageId']));tnef[_0x9448('0x40')](_[_0x9448('0x41')](_0x281c4d)[_0x9448('0x2f')],function(_0x411c3e,_0x22cc9c){if(_0x22cc9c){_0x8ffab4['html']=_0x22cc9c[_0x9448('0x42')]||_0x9448('0x43');if(_0x22cc9c[_0x9448('0x44')]){for(var _0x479b60=0x0;_0x479b60<_0x22cc9c[_0x9448('0x44')][_0x9448('0xe')];_0x479b60++){var _0x380521=_0x22cc9c[_0x9448('0x44')][_0x479b60];_0x276897[_0x9448('0x22')][_0x9448('0x18')][_0x9448('0x30')]({'filename':_0x380521[_0x9448('0x45')],'content':Buffer[_0x9448('0x37')](_0x380521[_0x9448('0x46')])});}}}_0xc3b1b(parseEmail(_0x28f2fe,_0x8ffab4,_0x276897));});}else{_0x8ffab4[_0x9448('0x15')]=_0x9448('0x43');_0xc3b1b(parseEmail(_0x28f2fe,_0x8ffab4,_0x276897));}}else{_0xc3b1b(parseEmail(_0x28f2fe,_0x8ffab4,_0x276897));}};exports[_0x9448('0x47')]=function(_0x263bbe){switch(_0x263bbe){case'gmail':return'imap.gmail.com';case _0x9448('0x48'):return'imap.mail.yahoo.com';case _0x9448('0x49'):return _0x9448('0x4a');case _0x9448('0x4b'):return _0x9448('0x4c');}return _0x9448('0x4d');};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf82a=['name','Service','key','active','Imap','Smtp','exports','lodash'];(function(_0x37bd26,_0x5ad346){var _0xe83dc4=function(_0x1ac229){while(--_0x1ac229){_0x37bd26['push'](_0x37bd26['shift']());}};_0xe83dc4(++_0x5ad346);}(_0xf82a,0x137));var _0xaf82=function(_0x20933e,_0x5574fb){_0x20933e=_0x20933e-0x0;var _0x317aaa=_0xf82a[_0x20933e];return _0x317aaa;};'use strict';var _=require(_0xaf82('0x0'));function MailAccount(_0x18282d){this['id']=_0x18282d['id']||0x0;this[_0xaf82('0x1')]=_0x18282d['name']||_0xaf82('0x2');this[_0xaf82('0x3')]=_0x18282d[_0xaf82('0x3')]||'SERV';this['active']=_0x18282d[_0xaf82('0x4')]||![];this[_0xaf82('0x5')]=_0x18282d['Imap']||[];this[_0xaf82('0x6')]=_0x18282d[_0xaf82('0x6')]||[];}module[_0xaf82('0x7')]=MailAccount;
\ No newline at end of file
+var _0x676f=['exports','lodash','name','Service','key','active','Imap','Smtp'];(function(_0x51b1a5,_0x285a4f){var _0x15c738=function(_0x5c94d7){while(--_0x5c94d7){_0x51b1a5['push'](_0x51b1a5['shift']());}};_0x15c738(++_0x285a4f);}(_0x676f,0x139));var _0xf676=function(_0x3d9d69,_0x3a2929){_0x3d9d69=_0x3d9d69-0x0;var _0x5bc341=_0x676f[_0x3d9d69];return _0x5bc341;};'use strict';var _=require(_0xf676('0x0'));function MailAccount(_0x3184e6){this['id']=_0x3184e6['id']||0x0;this[_0xf676('0x1')]=_0x3184e6[_0xf676('0x1')]||_0xf676('0x2');this[_0xf676('0x3')]=_0x3184e6[_0xf676('0x3')]||'SERV';this[_0xf676('0x4')]=_0x3184e6['active']||![];this['Imap']=_0x3184e6[_0xf676('0x5')]||[];this[_0xf676('0x6')]=_0x3184e6['Smtp']||[];}module[_0xf676('0x7')]=MailAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x78dc=['mailAccounts','mapKeys','hasOwnProperty','prototype','mergeFromDatabase','initMailAccounts','length','isUndefined','merge','exports','lodash'];(function(_0x190010,_0x348926){var _0x269c11=function(_0x674770){while(--_0x674770){_0x190010['push'](_0x190010['shift']());}};_0x269c11(++_0x348926);}(_0x78dc,0x1d8));var _0xc78d=function(_0x285824,_0x3da647){_0x285824=_0x285824-0x0;var _0x311d7e=_0x78dc[_0x285824];return _0x311d7e;};'use strict';var _=require(_0xc78d('0x0'));var MailAccount=require('../model/mailAccount');var Realtime=function(){this[_0xc78d('0x1')]={};};function freeIsNotKey(_0x5d07ce,_0x40590c,_0x5bc2b0){var _0x155a63=_[_0xc78d('0x2')](_0x5d07ce,function(_0xe0cc31,_0x2a04fa){return _0xe0cc31[_0x5bc2b0];});for(var _0x34edfa in _0x40590c){if(_0x40590c[_0xc78d('0x3')](_0x34edfa)){if(!_0x155a63[_0x34edfa]){delete _0x40590c[_0x34edfa];}}}}Realtime[_0xc78d('0x4')][_0xc78d('0x5')]=function(_0x26ee89,_0xbf3c02){for(var _0x4fa5f7 in _0xbf3c02){if(_0x26ee89[_0xc78d('0x3')](_0x4fa5f7)){_0x26ee89[_0x4fa5f7]=_0xbf3c02[_0x4fa5f7];}}};Realtime[_0xc78d('0x4')][_0xc78d('0x6')]=function(){var _0x3b2802=this;return function(_0x185d40){if(_0x185d40){freeIsNotKey(_0x185d40,_0x3b2802[_0xc78d('0x1')],'id');for(var _0x3fd70e=0x0,_0x402544={},_0x23b376={};_0x3fd70e<_0x185d40[_0xc78d('0x7')];_0x3fd70e+=0x1){_0x402544=_0x185d40[_0x3fd70e];if(_[_0xc78d('0x8')](_0x3b2802[_0xc78d('0x1')][_0x402544['id']])){_0x3b2802[_0xc78d('0x1')][_0x402544['id']]=new MailAccount(_0x402544);}else{_[_0xc78d('0x9')](_0x3b2802[_0xc78d('0x1')][_0x402544['id']],_0x402544);}}}return _0x3b2802[_0xc78d('0x1')];};};module[_0xc78d('0xa')]=Realtime;
\ No newline at end of file
+var _0x30cb=['mailAccounts','hasOwnProperty','prototype','initMailAccounts','length','isUndefined','merge','lodash'];(function(_0x268a2b,_0x4f9613){var _0x1fc1cd=function(_0x3d24a0){while(--_0x3d24a0){_0x268a2b['push'](_0x268a2b['shift']());}};_0x1fc1cd(++_0x4f9613);}(_0x30cb,0xb7));var _0xb30c=function(_0x356cb9,_0x3a34c6){_0x356cb9=_0x356cb9-0x0;var _0x301c66=_0x30cb[_0x356cb9];return _0x301c66;};'use strict';var _=require(_0xb30c('0x0'));var MailAccount=require('../model/mailAccount');var Realtime=function(){this[_0xb30c('0x1')]={};};function freeIsNotKey(_0x1bf011,_0x1d5cd7,_0x2406e6){var _0xf1bfef=_['mapKeys'](_0x1bf011,function(_0x240c8a,_0x33393c){return _0x240c8a[_0x2406e6];});for(var _0x25d95d in _0x1d5cd7){if(_0x1d5cd7[_0xb30c('0x2')](_0x25d95d)){if(!_0xf1bfef[_0x25d95d]){delete _0x1d5cd7[_0x25d95d];}}}}Realtime[_0xb30c('0x3')]['mergeFromDatabase']=function(_0x303116,_0x4f1dc3){for(var _0x567734 in _0x4f1dc3){if(_0x303116[_0xb30c('0x2')](_0x567734)){_0x303116[_0x567734]=_0x4f1dc3[_0x567734];}}};Realtime[_0xb30c('0x3')][_0xb30c('0x4')]=function(){var _0x36f8e4=this;return function(_0x57e505){if(_0x57e505){freeIsNotKey(_0x57e505,_0x36f8e4['mailAccounts'],'id');for(var _0x311eca=0x0,_0x48fea9={},_0x19403d={};_0x311eca<_0x57e505[_0xb30c('0x5')];_0x311eca+=0x1){_0x48fea9=_0x57e505[_0x311eca];if(_[_0xb30c('0x6')](_0x36f8e4[_0xb30c('0x1')][_0x48fea9['id']])){_0x36f8e4[_0xb30c('0x1')][_0x48fea9['id']]=new MailAccount(_0x48fea9);}else{_[_0xb30c('0x7')](_0x36f8e4[_0xb30c('0x1')][_0x48fea9['id']],_0x48fea9);}}}return _0x36f8e4[_0xb30c('0x1')];};};module['exports']=Realtime;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4a03=['notify','NotifyMailAccount','getMailAccounts','Request','GetMailAccount','service','email','active','ListId','TemplateId','Imap','MailServerOut','getMailAccount'];(function(_0x57add2,_0x4f2b7d){var _0x4e3670=function(_0x3311b){while(--_0x3311b){_0x57add2['push'](_0x57add2['shift']());}};_0x4e3670(++_0x4f2b7d);}(_0x4a03,0x16e));var _0x34a0=function(_0x648d93,_0x5f49c7){_0x648d93=_0x648d93-0x0;var _0x43c1c7=_0x4a03[_0x648d93];return _0x43c1c7;};'use strict';var client=require('../client');exports[_0x34a0('0x0')]=function(){return function(){return client[_0x34a0('0x1')](_0x34a0('0x2'),{'options':{'attributes':['id','name',_0x34a0('0x3'),_0x34a0('0x4'),_0x34a0('0x5'),'key',_0x34a0('0x6'),_0x34a0('0x7')],'raw':![],'include':[{'model':'MailServerIn','as':_0x34a0('0x8')},{'model':_0x34a0('0x9'),'as':'Smtp'}]},'log':_0x34a0('0xa')});};};exports[_0x34a0('0xb')]=function(_0x592827,_0xb182cc){return client[_0x34a0('0x1')](_0x34a0('0xc'),{'account':{'id':_0x592827},'body':_0xb182cc,'log':_0x34a0('0xc')});};
\ No newline at end of file
+var _0xdba3=['MailServerIn','Imap','Smtp','getMailAccount','notify','Request','NotifyMailAccount','../client','getMailAccounts','GetMailAccount','name','service','email','active','key','ListId','TemplateId'];(function(_0x45f951,_0x2750c8){var _0x24756c=function(_0x31c931){while(--_0x31c931){_0x45f951['push'](_0x45f951['shift']());}};_0x24756c(++_0x2750c8);}(_0xdba3,0x19f));var _0x3dba=function(_0x3d6e8c,_0x555986){_0x3d6e8c=_0x3d6e8c-0x0;var _0x2d8ecf=_0xdba3[_0x3d6e8c];return _0x2d8ecf;};'use strict';var client=require(_0x3dba('0x0'));exports[_0x3dba('0x1')]=function(){return function(){return client['Request'](_0x3dba('0x2'),{'options':{'attributes':['id',_0x3dba('0x3'),_0x3dba('0x4'),_0x3dba('0x5'),_0x3dba('0x6'),_0x3dba('0x7'),_0x3dba('0x8'),_0x3dba('0x9')],'raw':![],'include':[{'model':_0x3dba('0xa'),'as':_0x3dba('0xb')},{'model':'MailServerOut','as':_0x3dba('0xc')}]},'log':_0x3dba('0xd')});};};exports[_0x3dba('0xe')]=function(_0x5c1f2a,_0x4b33d8){return client[_0x3dba('0xf')](_0x3dba('0x10'),{'account':{'id':_0x5c1f2a},'body':_0x4b33d8,'log':_0x3dba('0x10')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7dea=['GetSettings','../client','getSettings','Request'];(function(_0x4469f2,_0x707b40){var _0x38babd=function(_0x4f2722){while(--_0x4f2722){_0x4469f2['push'](_0x4469f2['shift']());}};_0x38babd(++_0x707b40);}(_0x7dea,0x151));var _0xa7de=function(_0x500325,_0x39861f){_0x500325=_0x500325-0x0;var _0x38ee65=_0x7dea[_0x500325];return _0x38ee65;};'use strict';var client=require(_0xa7de('0x0'));exports[_0xa7de('0x1')]=function(){return client[_0xa7de('0x2')]('ShowSetting',{'options':{'raw':!![],'where':{'id':0x1},'attributes':['loginMailFrequency']},'log':_0xa7de('0x3')});};
\ No newline at end of file
+var _0x60c1=['Request','ShowSetting','loginMailFrequency','GetSettings','../client','getSettings'];(function(_0x4bae32,_0x192028){var _0x18e79b=function(_0x546246){while(--_0x546246){_0x4bae32['push'](_0x4bae32['shift']());}};_0x18e79b(++_0x192028);}(_0x60c1,0x13c));var _0x160c=function(_0x1cc8fe,_0x105328){_0x1cc8fe=_0x1cc8fe-0x0;var _0x230054=_0x60c1[_0x1cc8fe];return _0x230054;};'use strict';var client=require(_0x160c('0x0'));exports[_0x160c('0x1')]=function(){return client[_0x160c('0x2')](_0x160c('0x3'),{'options':{'raw':!![],'where':{'id':0x1},'attributes':[_0x160c('0x4')]},'log':_0x160c('0x5')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['catch','values','mailAccounts','length','Imap','password','Smtp','pass','server','http','stringify','127.0.0.1','log','Email\x20RPC\x20server\x20listening\x20on\x20127.0.0.1:%d!','RPC\x20listening\x20on\x20port:','jayson/promise','bluebird','lodash','listen','sendMail','then','error','Verified'];(function(_0x57b54c,_0x54ce0d){var _0x59cc19=function(_0xa33bc6){while(--_0xa33bc6){_0x57b54c['push'](_0x57b54c['shift']());}};_0x59cc19(++_0x54ce0d);}(_0xa9e0,0x123));var _0x0a9e=function(_0xa1e3e3,_0x29fe0e){_0xa1e3e3=_0xa1e3e3-0x0;var _0xc980e9=_0xa9e0[_0xa1e3e3];return _0xc980e9;};'use strict';var jayson=require(_0x0a9e('0x0'));var BPromise=require(_0x0a9e('0x1'));var _=require(_0x0a9e('0x2'));var logger=require('../../../config/logger')('email');exports[_0x0a9e('0x3')]=function(_0x4ce2f1,_0x333808){return new BPromise(function(_0x432180,_0x2ab90b){var _0x991246={'SendMail':function(_0x981158){var _0x57b080=this;return new Promise(function(_0x219af0,_0x441e3a){_0x333808[_0x0a9e('0x4')](_0x981158['account'],_0x981158['message'])[_0x0a9e('0x5')](function(_0x56465b){_0x219af0({'code':0xc8,'message':_0x56465b});})['catch'](function(_0x39753a){_0x441e3a(_0x57b080[_0x0a9e('0x6')](0x1f4,_0x39753a));});});},'VerifySmtp':function(_0x307b3e){var _0x3ab53f=this;return new Promise(function(_0xfeb75b,_0xbd1168){_0x333808['verifySmtp'](_0x307b3e['account'])['then'](function(_0x4cfe67){_0xfeb75b({'code':0xc8,'message':_0x0a9e('0x7')});})[_0x0a9e('0x8')](function(_0xd5b662){_0xbd1168(_0x3ab53f[_0x0a9e('0x6')](0x1f4,_0xd5b662));});});},'MailAccounts':function(_0x32d742){return new Promise(function(_0x69aeb7,_0x5db4b0){var _0x4283ce=_[_0x0a9e('0x9')](_0x4ce2f1[_0x0a9e('0xa')]);for(var _0x281129=0x0;_0x281129<_0x4283ce[_0x0a9e('0xb')];_0x281129+=0x1){if(_0x4283ce[_0x281129][_0x0a9e('0xc')]&&_0x4283ce[_0x281129]['Imap'][_0x0a9e('0xd')]){delete _0x4283ce[_0x281129]['Imap'][_0x0a9e('0xd')];}if(_0x4283ce[_0x281129]['Smtp']&&_0x4283ce[_0x281129][_0x0a9e('0xe')][_0x0a9e('0xf')]){delete _0x4283ce[_0x281129]['Smtp'][_0x0a9e('0xf')];}}_0x69aeb7({'count':_0x4283ce['length'],'rows':_0x4283ce});});}};var _0x459eb1=jayson[_0x0a9e('0x10')](_0x991246)[_0x0a9e('0x11')]();_0x459eb1['on'](_0x0a9e('0x6'),function(_0x31b1ca){logger[_0x0a9e('0x6')](JSON[_0x0a9e('0x12')](_0x31b1ca));return _0x2ab90b(_0x31b1ca);});_0x459eb1[_0x0a9e('0x3')](0x232b,_0x0a9e('0x13'),function(){console[_0x0a9e('0x14')](_0x0a9e('0x15'),0x232b);return _0x432180(_0x0a9e('0x16')+0x232b);});});};
\ No newline at end of file
+var _0xa9e0=['catch','values','mailAccounts','length','Imap','password','Smtp','pass','server','http','stringify','127.0.0.1','log','Email\x20RPC\x20server\x20listening\x20on\x20127.0.0.1:%d!','RPC\x20listening\x20on\x20port:','jayson/promise','bluebird','lodash','listen','sendMail','then','error','Verified'];(function(_0x40a045,_0x516f0e){var _0x1a687c=function(_0x48c9fe){while(--_0x48c9fe){_0x40a045['push'](_0x40a045['shift']());}};_0x1a687c(++_0x516f0e);}(_0xa9e0,0x123));var _0x0a9e=function(_0x4dbaad,_0x730318){_0x4dbaad=_0x4dbaad-0x0;var _0x226c72=_0xa9e0[_0x4dbaad];return _0x226c72;};'use strict';var jayson=require(_0x0a9e('0x0'));var BPromise=require(_0x0a9e('0x1'));var _=require(_0x0a9e('0x2'));var logger=require('../../../config/logger')('email');exports[_0x0a9e('0x3')]=function(_0x4ce2f1,_0x333808){return new BPromise(function(_0x432180,_0x2ab90b){var _0x991246={'SendMail':function(_0x981158){var _0x57b080=this;return new Promise(function(_0x219af0,_0x441e3a){_0x333808[_0x0a9e('0x4')](_0x981158['account'],_0x981158['message'])[_0x0a9e('0x5')](function(_0x56465b){_0x219af0({'code':0xc8,'message':_0x56465b});})['catch'](function(_0x39753a){_0x441e3a(_0x57b080[_0x0a9e('0x6')](0x1f4,_0x39753a));});});},'VerifySmtp':function(_0x307b3e){var _0x3ab53f=this;return new Promise(function(_0xfeb75b,_0xbd1168){_0x333808['verifySmtp'](_0x307b3e['account'])['then'](function(_0x4cfe67){_0xfeb75b({'code':0xc8,'message':_0x0a9e('0x7')});})[_0x0a9e('0x8')](function(_0xd5b662){_0xbd1168(_0x3ab53f[_0x0a9e('0x6')](0x1f4,_0xd5b662));});});},'MailAccounts':function(_0x32d742){return new Promise(function(_0x69aeb7,_0x5db4b0){var _0x4283ce=_[_0x0a9e('0x9')](_0x4ce2f1[_0x0a9e('0xa')]);for(var _0x281129=0x0;_0x281129<_0x4283ce[_0x0a9e('0xb')];_0x281129+=0x1){if(_0x4283ce[_0x281129][_0x0a9e('0xc')]&&_0x4283ce[_0x281129]['Imap'][_0x0a9e('0xd')]){delete _0x4283ce[_0x281129]['Imap'][_0x0a9e('0xd')];}if(_0x4283ce[_0x281129]['Smtp']&&_0x4283ce[_0x281129][_0x0a9e('0xe')][_0x0a9e('0xf')]){delete _0x4283ce[_0x281129]['Smtp'][_0x0a9e('0xf')];}}_0x69aeb7({'count':_0x4283ce['length'],'rows':_0x4283ce});});}};var _0x459eb1=jayson[_0x0a9e('0x10')](_0x991246)[_0x0a9e('0x11')]();_0x459eb1['on'](_0x0a9e('0x6'),function(_0x31b1ca){logger[_0x0a9e('0x6')](JSON[_0x0a9e('0x12')](_0x31b1ca));return _0x2ab90b(_0x31b1ca);});_0x459eb1[_0x0a9e('0x3')](0x232b,_0x0a9e('0x13'),function(){console[_0x0a9e('0x14')](_0x0a9e('0x15'),0x232b);return _0x432180(_0x0a9e('0x16')+0x232b);});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x094c=['port','socket.io','polling','redis','defaults','localhost','adapter','../../config/triggers','default','../../config/socketio','../../config/express','../../routes','listening','log','Express\x20server\x20listening\x20on\x20port\x20%d!','exports','lodash','http','sticky-session','../../config/environment','createServer','timeout','listen'];(function(_0x40d078,_0x210a77){var _0x46fc81=function(_0x3673da){while(--_0x3673da){_0x40d078['push'](_0x40d078['shift']());}};_0x46fc81(++_0x210a77);}(_0x094c,0xdf));var _0xc094=function(_0x58f555,_0x552ef2){_0x58f555=_0x58f555-0x0;var _0x4eb99b=_0x094c[_0x58f555];return _0x4eb99b;};'use strict';var _=require(_0xc094('0x0'));var http=require(_0xc094('0x1'));var express=require('express');var sticky=require(_0xc094('0x2'));var Redis=require('ioredis');var config=require(_0xc094('0x3'));var app=express();var server=http[_0xc094('0x4')](app);server[_0xc094('0x5')]=0xdbba0;if(sticky[_0xc094('0x6')](server,config[_0xc094('0x7')])){var socketio=require(_0xc094('0x8'))(server,{'transports':['websocket',_0xc094('0x9')]});config[_0xc094('0xa')]=_[_0xc094('0xb')](config['redis'],{'host':_0xc094('0xc'),'port':0x18eb});socketio[_0xc094('0xd')](require('socket.io-redis')({'pubClient':new Redis(config[_0xc094('0xa')]),'subClient':new Redis(config[_0xc094('0xa')])}));require(_0xc094('0xe'))[_0xc094('0xf')]();require(_0xc094('0x10'))['default'](socketio);require(_0xc094('0x11'))['default'](app);require(_0xc094('0x12'))[_0xc094('0xf')](app);}else{server['once'](_0xc094('0x13'),function(){console[_0xc094('0x14')](_0xc094('0x15'),config['port']);});}exports=module[_0xc094('0x16')]=app;
\ No newline at end of file
+var _0x1a42=['../../config/triggers','default','../../config/socketio','../../config/express','../../routes','once','listening','Express\x20server\x20listening\x20on\x20port\x20%d!','lodash','http','express','ioredis','../../config/environment','createServer','timeout','listen','port','socket.io','websocket','polling','redis','defaults','localhost','adapter'];(function(_0x5222d9,_0x12496d){var _0x16b0d5=function(_0x4220a6){while(--_0x4220a6){_0x5222d9['push'](_0x5222d9['shift']());}};_0x16b0d5(++_0x12496d);}(_0x1a42,0x128));var _0x21a4=function(_0x1f54d7,_0xafc682){_0x1f54d7=_0x1f54d7-0x0;var _0x355fc0=_0x1a42[_0x1f54d7];return _0x355fc0;};'use strict';var _=require(_0x21a4('0x0'));var http=require(_0x21a4('0x1'));var express=require(_0x21a4('0x2'));var sticky=require('sticky-session');var Redis=require(_0x21a4('0x3'));var config=require(_0x21a4('0x4'));var app=express();var server=http[_0x21a4('0x5')](app);server[_0x21a4('0x6')]=0xdbba0;if(sticky[_0x21a4('0x7')](server,config[_0x21a4('0x8')])){var socketio=require(_0x21a4('0x9'))(server,{'transports':[_0x21a4('0xa'),_0x21a4('0xb')]});config[_0x21a4('0xc')]=_[_0x21a4('0xd')](config[_0x21a4('0xc')],{'host':_0x21a4('0xe'),'port':0x18eb});socketio[_0x21a4('0xf')](require('socket.io-redis')({'pubClient':new Redis(config[_0x21a4('0xc')]),'subClient':new Redis(config['redis'])}));require(_0x21a4('0x10'))[_0x21a4('0x11')]();require(_0x21a4('0x12'))['default'](socketio);require(_0x21a4('0x13'))[_0x21a4('0x11')](app);require(_0x21a4('0x14'))['default'](app);}else{server[_0x21a4('0x15')](_0x21a4('0x16'),function(){console['log'](_0x21a4('0x17'),config[_0x21a4('0x8')]);});}exports=module['exports']=app;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9845=['rpc','error','message','result','catch','exports','bluebird','../../config/logger','routing','http','request','then','debug'];(function(_0x3766e3,_0x18056c){var _0x1eccfd=function(_0x2729a3){while(--_0x2729a3){_0x3766e3['push'](_0x3766e3['shift']());}};_0x1eccfd(++_0x18056c);}(_0x9845,0x17f));var _0x5984=function(_0x1ce575,_0xbcf48f){_0x1ce575=_0x1ce575-0x0;var _0x20118a=_0x9845[_0x1ce575];return _0x20118a;};'use strict';var jayson=require('jayson/promise');var BPromise=require(_0x5984('0x0'));var logger=require(_0x5984('0x1'))(_0x5984('0x2'));var client=jayson['client'][_0x5984('0x3')]({'port':0x2329});client['Request']=function(_0x3203c7,_0x4a505c){return new BPromise(function(_0x125b7c,_0x266e46){return client[_0x5984('0x4')](_0x3203c7,_0x4a505c)[_0x5984('0x5')](function(_0x239343){logger[_0x5984('0x6')](_0x5984('0x7'),_0x5984('0x2'),_0x3203c7,_0x4a505c,_0x239343);if(_0x239343[_0x5984('0x8')]){logger[_0x5984('0x8')](_0x5984('0x7'),_0x5984('0x2'),_0x3203c7,_0x239343[_0x5984('0x8')][_0x5984('0x9')],_0x4a505c);return _0x266e46(_0x239343['error'][_0x5984('0x9')]);}else{return _0x125b7c(_0x239343[_0x5984('0xa')]);}})[_0x5984('0xb')](function(_0x28a7fb){logger[_0x5984('0x8')](_0x5984('0x7'),_0x5984('0x2'),_0x3203c7,_0x28a7fb,_0x4a505c);return _0x266e46(_0x28a7fb);});});};module[_0x5984('0xc')]=client;
\ No newline at end of file
+var _0xd1c5=['error','message','result','catch','exports','jayson/promise','bluebird','../../config/logger','routing','http','request','then','debug','rpc'];(function(_0x1a84a6,_0x44b54e){var _0x4c957c=function(_0x184558){while(--_0x184558){_0x1a84a6['push'](_0x1a84a6['shift']());}};_0x4c957c(++_0x44b54e);}(_0xd1c5,0x1b7));var _0x5d1c=function(_0x7d6dcd,_0x2d0b8b){_0x7d6dcd=_0x7d6dcd-0x0;var _0x55d843=_0xd1c5[_0x7d6dcd];return _0x55d843;};'use strict';var jayson=require(_0x5d1c('0x0'));var BPromise=require(_0x5d1c('0x1'));var logger=require(_0x5d1c('0x2'))(_0x5d1c('0x3'));var client=jayson['client'][_0x5d1c('0x4')]({'port':0x2329});client['Request']=function(_0x41549d,_0x324331){return new BPromise(function(_0x1157d1,_0x8d377b){return client[_0x5d1c('0x5')](_0x41549d,_0x324331)[_0x5d1c('0x6')](function(_0x2736f8){logger[_0x5d1c('0x7')](_0x5d1c('0x8'),_0x5d1c('0x3'),_0x41549d,_0x324331,_0x2736f8);if(_0x2736f8[_0x5d1c('0x9')]){logger['error'](_0x5d1c('0x8'),'routing',_0x41549d,_0x2736f8[_0x5d1c('0x9')][_0x5d1c('0xa')],_0x324331);return _0x8d377b(_0x2736f8[_0x5d1c('0x9')][_0x5d1c('0xa')]);}else{return _0x1157d1(_0x2736f8[_0x5d1c('0xb')]);}})[_0x5d1c('0xc')](function(_0x50c239){logger[_0x5d1c('0x9')](_0x5d1c('0x8'),_0x5d1c('0x3'),_0x41549d,_0x50c239,_0x324331);return _0x8d377b(_0x50c239);});});};module[_0x5d1c('0xd')]=client;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9988=['listen','catch','log','bluebird','./server','./realtime','./rpc/user','./rpc/interval','./rpc/openchannelQueue','./rpc/chatQueue','./rpc/smsQueue','./rpc/mailQueue','./rpc/faxQueue','./rpc/whatsappQueue','resolve','then','initAgents','initIntervals','getOpenchannelQueues','getChatQueues','initChatQueues','initSmsQueues','initMailQueues','getFaxQueues','initFaxQueues','getWhatsappQueues','initWhatsappQueues'];(function(_0x460d7f,_0x2b4399){var _0x4b2475=function(_0x39f37f){while(--_0x39f37f){_0x460d7f['push'](_0x460d7f['shift']());}};_0x4b2475(++_0x2b4399);}(_0x9988,0x8a));var _0x8998=function(_0x11859d,_0x1c9f0e){_0x11859d=_0x11859d-0x0;var _0x6c172e=_0x9988[_0x11859d];return _0x6c172e;};'use strict';var BPromise=require(_0x8998('0x0'));var server=require(_0x8998('0x1'));var Realtime=require(_0x8998('0x2'));var user=require(_0x8998('0x3'));var interval=require(_0x8998('0x4'));var openchannelQueue=require(_0x8998('0x5'));var chatQueue=require(_0x8998('0x6'));var smsQueue=require(_0x8998('0x7'));var mailQueue=require(_0x8998('0x8'));var faxQueue=require(_0x8998('0x9'));var whatsappQueue=require(_0x8998('0xa'));var realtime=new Realtime();function initRealtime(){return BPromise[_0x8998('0xb')]()[_0x8998('0xc')](user['getAgents']())['then'](realtime[_0x8998('0xd')]())['then'](interval['getIntervals']())['then'](realtime[_0x8998('0xe')]())[_0x8998('0xc')](openchannelQueue[_0x8998('0xf')]())['then'](realtime['initOpenchannelQueues']())[_0x8998('0xc')](chatQueue[_0x8998('0x10')]())['then'](realtime[_0x8998('0x11')]())['then'](smsQueue['getSmsQueues']())[_0x8998('0xc')](realtime[_0x8998('0x12')]())[_0x8998('0xc')](mailQueue['getMailQueues']())[_0x8998('0xc')](realtime[_0x8998('0x13')]())['then'](faxQueue[_0x8998('0x14')]())[_0x8998('0xc')](realtime[_0x8998('0x15')]())[_0x8998('0xc')](whatsappQueue[_0x8998('0x16')]())[_0x8998('0xc')](realtime[_0x8998('0x17')]())[_0x8998('0xc')](function(){return realtime;});}function main(){return server[_0x8998('0x18')](realtime)['then'](function(_0x53cd38){return initRealtime();})[_0x8998('0xc')](function(_0x18eb56){return setInterval(initRealtime,0x1388);})[_0x8998('0x19')](function(_0xac34a7){console[_0x8998('0x1a')](_0xac34a7);});}main();
\ No newline at end of file
+var _0x40ee=['initChatQueues','getSmsQueues','initSmsQueues','getMailQueues','initMailQueues','initFaxQueues','getWhatsappQueues','initWhatsappQueues','catch','log','bluebird','./realtime','./rpc/user','./rpc/openchannelQueue','./rpc/chatQueue','./rpc/whatsappQueue','resolve','getAgents','then','initAgents','initIntervals','getOpenchannelQueues','initOpenchannelQueues'];(function(_0x34f810,_0x24f727){var _0x111dae=function(_0x8bcfbe){while(--_0x8bcfbe){_0x34f810['push'](_0x34f810['shift']());}};_0x111dae(++_0x24f727);}(_0x40ee,0x17a));var _0xe40e=function(_0xbca1b1,_0x33f0ce){_0xbca1b1=_0xbca1b1-0x0;var _0x4e1686=_0x40ee[_0xbca1b1];return _0x4e1686;};'use strict';var BPromise=require(_0xe40e('0x0'));var server=require('./server');var Realtime=require(_0xe40e('0x1'));var user=require(_0xe40e('0x2'));var interval=require('./rpc/interval');var openchannelQueue=require(_0xe40e('0x3'));var chatQueue=require(_0xe40e('0x4'));var smsQueue=require('./rpc/smsQueue');var mailQueue=require('./rpc/mailQueue');var faxQueue=require('./rpc/faxQueue');var whatsappQueue=require(_0xe40e('0x5'));var realtime=new Realtime();function initRealtime(){return BPromise[_0xe40e('0x6')]()['then'](user[_0xe40e('0x7')]())[_0xe40e('0x8')](realtime[_0xe40e('0x9')]())[_0xe40e('0x8')](interval['getIntervals']())[_0xe40e('0x8')](realtime[_0xe40e('0xa')]())[_0xe40e('0x8')](openchannelQueue[_0xe40e('0xb')]())[_0xe40e('0x8')](realtime[_0xe40e('0xc')]())[_0xe40e('0x8')](chatQueue['getChatQueues']())[_0xe40e('0x8')](realtime[_0xe40e('0xd')]())[_0xe40e('0x8')](smsQueue[_0xe40e('0xe')]())['then'](realtime[_0xe40e('0xf')]())[_0xe40e('0x8')](mailQueue[_0xe40e('0x10')]())[_0xe40e('0x8')](realtime[_0xe40e('0x11')]())[_0xe40e('0x8')](faxQueue['getFaxQueues']())[_0xe40e('0x8')](realtime[_0xe40e('0x12')]())['then'](whatsappQueue[_0xe40e('0x13')]())[_0xe40e('0x8')](realtime[_0xe40e('0x14')]())[_0xe40e('0x8')](function(){return realtime;});}function main(){return server['listen'](realtime)[_0xe40e('0x8')](function(_0x10c3ee){return initRealtime();})[_0xe40e('0x8')](function(_0x2a27c4){return setInterval(initRealtime,0x1388);})[_0xe40e('0x15')](function(_0x4a4f47){console[_0xe40e('0x16')](_0x4a4f47);});}main();
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5fc3=['lodash','util','EventEmitter','init','isNil','ignoreFactChanges','inherits','activeRules','prototype','register','isArray','rules','isObject','sync','orderBy','asc','execute','clone','ruleRef','name','index_','push','call','nextTick','next','isEqual','restart','length','condition','matchPath','noop','findRules','filter','prioritize','priority','toJSON','map','consequence','toString','fromJSON','isString','parse'];(function(_0xbcaced,_0xfe13ad){var _0x3edf80=function(_0x6b8d20){while(--_0x6b8d20){_0xbcaced['push'](_0xbcaced['shift']());}};_0x3edf80(++_0xfe13ad);}(_0x5fc3,0xa8));var _0x35fc=function(_0x2b8077,_0x453634){_0x2b8077=_0x2b8077-0x0;var _0x308091=_0x5fc3[_0x2b8077];return _0x308091;};'use strict';var _=require(_0x35fc('0x0'));var util=require(_0x35fc('0x1'));var EventEmitter=require('events')[_0x35fc('0x2')];function RuleEngine(_0x2ac6da,_0x196bc2){this[_0x35fc('0x3')]();if(!_[_0x35fc('0x4')](_0x2ac6da)){this['register'](_0x2ac6da);}if(_0x196bc2){this[_0x35fc('0x5')]=_0x196bc2[_0x35fc('0x5')];}return this;}util[_0x35fc('0x6')](RuleEngine,EventEmitter);RuleEngine['prototype']['init']=function(_0x19a0d1){this['rules']=[];this[_0x35fc('0x7')]=[];};RuleEngine[_0x35fc('0x8')][_0x35fc('0x9')]=function(_0x1e5f90){if(Array[_0x35fc('0xa')](_0x1e5f90)){this[_0x35fc('0xb')]=this[_0x35fc('0xb')]['concat'](_0x1e5f90);}else if(_0x1e5f90!==null&&_[_0x35fc('0xc')](_0x1e5f90)){this[_0x35fc('0xb')]['push'](_0x1e5f90);}this[_0x35fc('0xd')]();};RuleEngine[_0x35fc('0x8')]['sync']=function(){this[_0x35fc('0x7')]=this[_0x35fc('0xb')]['filter'](function(_0x4cbe74){if(_[_0x35fc('0x4')](_0x4cbe74['on'])){_0x4cbe74['on']=!![];}if(_0x4cbe74['on']===!![]){return _0x4cbe74;}});this['activeRules']=_[_0x35fc('0xe')](this[_0x35fc('0x7')],['p'],[_0x35fc('0xf')]);};RuleEngine[_0x35fc('0x8')][_0x35fc('0x10')]=function(_0x5cfe94,_0x59507a){var _0x5eac0f=![];_0x5cfe94['result']=!![];var _0x398b67=_[_0x35fc('0x11')](_0x5cfe94);var _0x53b898=_[_0x35fc('0x11')](_0x5cfe94);var _0x227a49=this[_0x35fc('0x7')];var _0x480851=[];var _0x26ba54=this[_0x35fc('0x5')];(function FnRuleLoop(_0x553677){var _0x41e165={'rules':function(){return _0x227a49;},'rule':function(){return _0x227a49[_0x553677];},'when':function(_0x363e47){if(_0x363e47){var _0x2e513b=_0x227a49[_0x553677]['consequence'];_0x2e513b[_0x35fc('0x12')]=_0x227a49[_0x553677]['id']||_0x227a49[_0x553677][_0x35fc('0x13')]||_0x35fc('0x14')+_0x553677;process['nextTick'](function(){_0x480851[_0x35fc('0x15')](_0x2e513b[_0x35fc('0x12')]);_0x2e513b[_0x35fc('0x16')](_0x398b67,_0x41e165);});}else{process[_0x35fc('0x17')](function(){_0x41e165[_0x35fc('0x18')]();});}},'restart':function(){return FnRuleLoop(0x0);},'stop':function(){_0x5eac0f=!![];return FnRuleLoop(0x0);},'next':function(_0x21f1a9){if(!_0x26ba54&&!_[_0x35fc('0x19')](_0x53b898,_0x398b67)){_0x53b898=_[_0x35fc('0x11')](_0x398b67);process[_0x35fc('0x17')](function(){_0x41e165[_0x35fc('0x1a')]();});}else{process['nextTick'](function(){if(_[_0x35fc('0x4')](_0x21f1a9)){return FnRuleLoop(_0x553677+0x1);}else{return FnRuleLoop(_0x21f1a9);}});}}};if(_0x553677<_0x227a49[_0x35fc('0x1b')]&&_0x5eac0f===![]){var _0x257719=_0x227a49[_0x553677][_0x35fc('0x1c')];_0x257719[_0x35fc('0x16')](_0x398b67,_0x41e165);}else{process['nextTick'](function(){_0x398b67[_0x35fc('0x1d')]=_0x480851;return _0x59507a?_0x59507a(_0x398b67):_[_0x35fc('0x1e')]();});}}(0x0));};RuleEngine['prototype'][_0x35fc('0x1f')]=function(_0x5a93df){if(_[_0x35fc('0x4')](_0x5a93df)){return this['rules'];}else{var _0x4086e9=_['matches'](_0x5a93df);return _[_0x35fc('0x20')](this[_0x35fc('0xb')],_0x4086e9);}};RuleEngine['prototype']['turn']=function(_0x47774c,_0x58edb6){var _0x274208=_0x47774c==='on'||_0x47774c==='ON'?!![]:![];var _0x1a5d92=this['findRules'](_0x58edb6);for(var _0x26b7cb=0x0,_0x645eac=_0x1a5d92[_0x35fc('0x1b')];_0x26b7cb<_0x645eac;_0x26b7cb+=0x1){_0x1a5d92[_0x26b7cb]['on']=_0x274208;}this[_0x35fc('0xd')]();};RuleEngine[_0x35fc('0x8')][_0x35fc('0x21')]=function(_0x11ccdb,_0x451f0c){_0x11ccdb=parseInt(_0x11ccdb,0xa);var _0x54aedc=this[_0x35fc('0x1f')](_0x451f0c);for(var _0x220931=0x0,_0x22af18=_0x54aedc['length'];_0x220931<_0x22af18;_0x220931+=0x1){_0x54aedc[_0x220931][_0x35fc('0x22')]=_0x11ccdb;}this[_0x35fc('0xd')]();};RuleEngine[_0x35fc('0x8')][_0x35fc('0x23')]=function(){var _0xd8a4ca=this[_0x35fc('0xb')];if(_0xd8a4ca instanceof Array){_0xd8a4ca=_0xd8a4ca[_0x35fc('0x24')](function(_0x37b435){_0x37b435[_0x35fc('0x1c')]=_0x37b435[_0x35fc('0x1c')]['toString']();_0x37b435['consequence']=_0x37b435[_0x35fc('0x25')]['toString']();return _0x37b435;});}else if(!_[_0x35fc('0x4')](_0xd8a4ca)){_0xd8a4ca[_0x35fc('0x1c')]=_0xd8a4ca[_0x35fc('0x1c')][_0x35fc('0x26')]();_0xd8a4ca[_0x35fc('0x25')]=_0xd8a4ca[_0x35fc('0x25')]['toString']();}return _0xd8a4ca;};RuleEngine[_0x35fc('0x8')][_0x35fc('0x27')]=function(_0x46b9ef){this[_0x35fc('0x3')]();if(_[_0x35fc('0x28')](_0x46b9ef)){_0x46b9ef=JSON[_0x35fc('0x29')](_0x46b9ef);}if(_0x46b9ef instanceof Array){_0x46b9ef=_0x46b9ef['map'](function(_0x2483be){_0x2483be[_0x35fc('0x1c')]=eval('('+_0x2483be[_0x35fc('0x1c')]+')');_0x2483be['consequence']=eval('('+_0x2483be[_0x35fc('0x25')]+')');return _0x2483be;});}else if(_0x46b9ef!==null&&typeof _0x46b9ef=='object'){_0x46b9ef[_0x35fc('0x1c')]=eval('('+_0x46b9ef[_0x35fc('0x1c')]+')');_0x46b9ef[_0x35fc('0x25')]=eval('('+_0x46b9ef[_0x35fc('0x25')]+')');}this['register'](_0x46b9ef);};module['exports']=RuleEngine;
\ No newline at end of file
+var _0x2ef3=['next','isEqual','restart','condition','matches','filter','turn','prioritize','findRules','length','priority','toJSON','map','toString','fromJSON','parse','object','exports','lodash','util','events','EventEmitter','isNil','register','ignoreFactChanges','inherits','rules','activeRules','prototype','isArray','concat','push','sync','orderBy','result','clone','consequence','name','index_','nextTick','ruleRef','call'];(function(_0x4ca246,_0x19cbb7){var _0x320826=function(_0x40078f){while(--_0x40078f){_0x4ca246['push'](_0x4ca246['shift']());}};_0x320826(++_0x19cbb7);}(_0x2ef3,0xba));var _0x32ef=function(_0x259cc1,_0x5d8a9b){_0x259cc1=_0x259cc1-0x0;var _0x27cb5d=_0x2ef3[_0x259cc1];return _0x27cb5d;};'use strict';var _=require(_0x32ef('0x0'));var util=require(_0x32ef('0x1'));var EventEmitter=require(_0x32ef('0x2'))[_0x32ef('0x3')];function RuleEngine(_0x3944df,_0x38047b){this['init']();if(!_[_0x32ef('0x4')](_0x3944df)){this[_0x32ef('0x5')](_0x3944df);}if(_0x38047b){this['ignoreFactChanges']=_0x38047b[_0x32ef('0x6')];}return this;}util[_0x32ef('0x7')](RuleEngine,EventEmitter);RuleEngine['prototype']['init']=function(_0x2c0089){this[_0x32ef('0x8')]=[];this[_0x32ef('0x9')]=[];};RuleEngine[_0x32ef('0xa')][_0x32ef('0x5')]=function(_0x298066){if(Array[_0x32ef('0xb')](_0x298066)){this[_0x32ef('0x8')]=this[_0x32ef('0x8')][_0x32ef('0xc')](_0x298066);}else if(_0x298066!==null&&_['isObject'](_0x298066)){this['rules'][_0x32ef('0xd')](_0x298066);}this[_0x32ef('0xe')]();};RuleEngine[_0x32ef('0xa')][_0x32ef('0xe')]=function(){this['activeRules']=this[_0x32ef('0x8')]['filter'](function(_0x1a5106){if(_['isNil'](_0x1a5106['on'])){_0x1a5106['on']=!![];}if(_0x1a5106['on']===!![]){return _0x1a5106;}});this[_0x32ef('0x9')]=_[_0x32ef('0xf')](this['activeRules'],['p'],['asc']);};RuleEngine[_0x32ef('0xa')]['execute']=function(_0x326fce,_0x40a6e6){var _0x93d492=![];_0x326fce[_0x32ef('0x10')]=!![];var _0x57aff1=_['clone'](_0x326fce);var _0x531e30=_[_0x32ef('0x11')](_0x326fce);var _0x3950e6=this[_0x32ef('0x9')];var _0x53a5ca=[];var _0x5d559b=this[_0x32ef('0x6')];(function FnRuleLoop(_0x1a9476){var _0x286bfb={'rules':function(){return _0x3950e6;},'rule':function(){return _0x3950e6[_0x1a9476];},'when':function(_0x57863c){if(_0x57863c){var _0xbe37f6=_0x3950e6[_0x1a9476][_0x32ef('0x12')];_0xbe37f6['ruleRef']=_0x3950e6[_0x1a9476]['id']||_0x3950e6[_0x1a9476][_0x32ef('0x13')]||_0x32ef('0x14')+_0x1a9476;process[_0x32ef('0x15')](function(){_0x53a5ca[_0x32ef('0xd')](_0xbe37f6[_0x32ef('0x16')]);_0xbe37f6[_0x32ef('0x17')](_0x57aff1,_0x286bfb);});}else{process['nextTick'](function(){_0x286bfb[_0x32ef('0x18')]();});}},'restart':function(){return FnRuleLoop(0x0);},'stop':function(){_0x93d492=!![];return FnRuleLoop(0x0);},'next':function(_0x5cc3ef){if(!_0x5d559b&&!_[_0x32ef('0x19')](_0x531e30,_0x57aff1)){_0x531e30=_[_0x32ef('0x11')](_0x57aff1);process['nextTick'](function(){_0x286bfb[_0x32ef('0x1a')]();});}else{process[_0x32ef('0x15')](function(){if(_[_0x32ef('0x4')](_0x5cc3ef)){return FnRuleLoop(_0x1a9476+0x1);}else{return FnRuleLoop(_0x5cc3ef);}});}}};if(_0x1a9476<_0x3950e6['length']&&_0x93d492===![]){var _0x57f5e5=_0x3950e6[_0x1a9476][_0x32ef('0x1b')];_0x57f5e5[_0x32ef('0x17')](_0x57aff1,_0x286bfb);}else{process[_0x32ef('0x15')](function(){_0x57aff1['matchPath']=_0x53a5ca;return _0x40a6e6?_0x40a6e6(_0x57aff1):_['noop']();});}}(0x0));};RuleEngine[_0x32ef('0xa')]['findRules']=function(_0x51a412){if(_[_0x32ef('0x4')](_0x51a412)){return this[_0x32ef('0x8')];}else{var _0x371540=_[_0x32ef('0x1c')](_0x51a412);return _[_0x32ef('0x1d')](this[_0x32ef('0x8')],_0x371540);}};RuleEngine[_0x32ef('0xa')][_0x32ef('0x1e')]=function(_0x338f19,_0x2f52d7){var _0x1335e2=_0x338f19==='on'||_0x338f19==='ON'?!![]:![];var _0xba4b3f=this['findRules'](_0x2f52d7);for(var _0xd65fde=0x0,_0x2f5d06=_0xba4b3f['length'];_0xd65fde<_0x2f5d06;_0xd65fde+=0x1){_0xba4b3f[_0xd65fde]['on']=_0x1335e2;}this[_0x32ef('0xe')]();};RuleEngine[_0x32ef('0xa')][_0x32ef('0x1f')]=function(_0x26e207,_0x50a95b){_0x26e207=parseInt(_0x26e207,0xa);var _0x10e38c=this[_0x32ef('0x20')](_0x50a95b);for(var _0x31dbc3=0x0,_0x2ac686=_0x10e38c[_0x32ef('0x21')];_0x31dbc3<_0x2ac686;_0x31dbc3+=0x1){_0x10e38c[_0x31dbc3][_0x32ef('0x22')]=_0x26e207;}this[_0x32ef('0xe')]();};RuleEngine['prototype'][_0x32ef('0x23')]=function(){var _0x537214=this[_0x32ef('0x8')];if(_0x537214 instanceof Array){_0x537214=_0x537214[_0x32ef('0x24')](function(_0x5a9565){_0x5a9565[_0x32ef('0x1b')]=_0x5a9565[_0x32ef('0x1b')][_0x32ef('0x25')]();_0x5a9565[_0x32ef('0x12')]=_0x5a9565[_0x32ef('0x12')]['toString']();return _0x5a9565;});}else if(!_['isNil'](_0x537214)){_0x537214[_0x32ef('0x1b')]=_0x537214['condition'][_0x32ef('0x25')]();_0x537214[_0x32ef('0x12')]=_0x537214[_0x32ef('0x12')][_0x32ef('0x25')]();}return _0x537214;};RuleEngine[_0x32ef('0xa')][_0x32ef('0x26')]=function(_0x566b56){this['init']();if(_['isString'](_0x566b56)){_0x566b56=JSON[_0x32ef('0x27')](_0x566b56);}if(_0x566b56 instanceof Array){_0x566b56=_0x566b56[_0x32ef('0x24')](function(_0x136b02){_0x136b02['condition']=eval('('+_0x136b02['condition']+')');_0x136b02[_0x32ef('0x12')]=eval('('+_0x136b02[_0x32ef('0x12')]+')');return _0x136b02;});}else if(_0x566b56!==null&&typeof _0x566b56==_0x32ef('0x28')){_0x566b56['condition']=eval('('+_0x566b56['condition']+')');_0x566b56[_0x32ef('0x12')]=eval('('+_0x566b56[_0x32ef('0x12')]+')');}this[_0x32ef('0x5')](_0x566b56);};module[_0x32ef('0x29')]=RuleEngine;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa984=['request','then','error','result','catch','sendMailMessage','SendMail','bluebird','jayson/promise'];(function(_0xbd4746,_0x9ca2c8){var _0x2afcef=function(_0x5c6a0b){while(--_0x5c6a0b){_0xbd4746['push'](_0xbd4746['shift']());}};_0x2afcef(++_0x9ca2c8);}(_0xa984,0x103));var _0x4a98=function(_0xebc72a,_0x5a55c5){_0xebc72a=_0xebc72a-0x0;var _0x441d7d=_0xa984[_0xebc72a];return _0x441d7d;};'use strict';var BPromise=require(_0x4a98('0x0'));var jayson=require(_0x4a98('0x1'));var client=jayson['client']['http']({'port':0x232b});function request(_0xb9c724,_0x2cad26){return new BPromise(function(_0x111082,_0x596f3c){return client[_0x4a98('0x2')](_0xb9c724,_0x2cad26)[_0x4a98('0x3')](function(_0x28abec){if(_0x28abec[_0x4a98('0x4')]){return _0x596f3c(_0x28abec['error']['message']);}else{return _0x111082(_0x28abec[_0x4a98('0x5')]);}})[_0x4a98('0x6')](function(_0x2d85e4){return _0x596f3c(_0x2d85e4);});});}exports[_0x4a98('0x7')]=function(_0x2f3588,_0x2c726d){return request(_0x4a98('0x8'),{'account':_0x2f3588,'message':_0x2c726d});};
\ No newline at end of file
+var _0x4996=['message','result','catch','sendMailMessage','SendMail','jayson/promise','client','http','request','then','error'];(function(_0x4a9fb1,_0x273043){var _0x348672=function(_0x142b69){while(--_0x142b69){_0x4a9fb1['push'](_0x4a9fb1['shift']());}};_0x348672(++_0x273043);}(_0x4996,0x1f4));var _0x6499=function(_0x16e874,_0x154da0){_0x16e874=_0x16e874-0x0;var _0x5460d4=_0x4996[_0x16e874];return _0x5460d4;};'use strict';var BPromise=require('bluebird');var jayson=require(_0x6499('0x0'));var client=jayson[_0x6499('0x1')][_0x6499('0x2')]({'port':0x232b});function request(_0x720cea,_0x295b50){return new BPromise(function(_0xb916ee,_0x29e5a0){return client[_0x6499('0x3')](_0x720cea,_0x295b50)[_0x6499('0x4')](function(_0x4db9b7){if(_0x4db9b7['error']){return _0x29e5a0(_0x4db9b7[_0x6499('0x5')][_0x6499('0x6')]);}else{return _0xb916ee(_0x4db9b7[_0x6499('0x7')]);}})[_0x6499('0x8')](function(_0x1683b0){return _0x29e5a0(_0x1683b0);});});}exports[_0x6499('0x9')]=function(_0x913aa7,_0x178115){return request(_0x6499('0xa'),{'account':_0x913aa7,'message':_0x178115});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3bc0=['../../../config/environment','redis','defaults','socket.io-emitter','name','online','voicePause','chatPause','mailPause','faxPause','smsPause','openchannelPause','chatStatus','unknown','chatStatusTime','chatCapacity','chatCurrentCapacity','mailStatus','mailCapacity','mailCurrentCapacity','faxStatusTime','faxCapacity','faxCurrentCapacity','smsStatus','smsStatusTime','smsCapacity','smsCurrentCapacity','whatsappStatus','whatsappStatusTime','whatsappCapacity','whatsappCurrentCapacity','openchannelStatus','openchannelCurrentCapacity','busy','updateRealtime','prototype','getChannelStatus','CurrentCapacity','Capacity','maxcapacity','working','idle','mail','chat','openchannel','sms','whatsapp','Status','StatusTime','toNumber','format','openchannelStatusTime','openchannelCapacity','stringify','emit','exports','lodash','moment','md5','ioredis'];(function(_0x2e68f3,_0x13dc10){var _0x977ca0=function(_0x372c6d){while(--_0x372c6d){_0x2e68f3['push'](_0x2e68f3['shift']());}};_0x977ca0(++_0x13dc10);}(_0x3bc0,0xec));var _0x03bc=function(_0x243b59,_0x3f9495){_0x243b59=_0x243b59-0x0;var _0x3e1676=_0x3bc0[_0x243b59];return _0x3e1676;};'use strict';var _=require(_0x03bc('0x0'));var moment=require(_0x03bc('0x1'));var md5=require(_0x03bc('0x2'));var Redis=require(_0x03bc('0x3'));var config=require(_0x03bc('0x4'));config[_0x03bc('0x5')]=_[_0x03bc('0x6')](config['redis'],{'host':'localhost','port':0x18eb});var io=require(_0x03bc('0x7'))(new Redis(config[_0x03bc('0x5')]));function Agent(_0x1466ba){this['id']=_0x1466ba['id']||0x0;this[_0x03bc('0x8')]=_0x1466ba[_0x03bc('0x8')]||'';this[_0x03bc('0x9')]=_0x1466ba[_0x03bc('0x9')]||!![];this[_0x03bc('0xa')]=_0x1466ba['voicePause']||![];this[_0x03bc('0xb')]=_0x1466ba[_0x03bc('0xb')]||![];this[_0x03bc('0xc')]=_0x1466ba[_0x03bc('0xc')]||![];this[_0x03bc('0xd')]=_0x1466ba[_0x03bc('0xd')]||![];this[_0x03bc('0xe')]=_0x1466ba[_0x03bc('0xe')]||![];this['openchannelPause']=_0x1466ba[_0x03bc('0xf')]||![];this[_0x03bc('0x10')]=_0x03bc('0x11');this[_0x03bc('0x12')]=0x0;this[_0x03bc('0x13')]=_0x1466ba['chatCapacity']||0x0;this[_0x03bc('0x14')]=0x0;this[_0x03bc('0x15')]=_0x03bc('0x11');this['mailStatusTime']=0x0;this[_0x03bc('0x16')]=_0x1466ba[_0x03bc('0x16')]||0x0;this[_0x03bc('0x17')]=0x0;this['faxStatus']='unknown';this[_0x03bc('0x18')]=0x0;this[_0x03bc('0x19')]=_0x1466ba[_0x03bc('0x19')]||0x0;this[_0x03bc('0x1a')]=0x0;this[_0x03bc('0x1b')]='unknown';this[_0x03bc('0x1c')]=0x0;this['smsCapacity']=_0x1466ba[_0x03bc('0x1d')]||0x0;this[_0x03bc('0x1e')]=0x0;this[_0x03bc('0x1f')]='unknown';this[_0x03bc('0x20')]=0x0;this[_0x03bc('0x21')]=_0x1466ba[_0x03bc('0x21')]||0x0;this[_0x03bc('0x22')]=0x0;this[_0x03bc('0x23')]='unknown';this['openchannelStatusTime']=0x0;this['openchannelCapacity']=_0x1466ba['openchannelCapacity']||0x0;this[_0x03bc('0x24')]=0x0;this[_0x03bc('0x25')]=![];this['busyQueue']=undefined;this[_0x03bc('0x2')]='';this[_0x03bc('0x26')]();}Agent[_0x03bc('0x27')][_0x03bc('0x28')]=function(_0x47b93f){if(this[_0x47b93f+_0x03bc('0x29')]>0x0){if(this[_0x47b93f+_0x03bc('0x2a')]>0x0&&this[_0x47b93f+'CurrentCapacity']>=this[_0x47b93f+_0x03bc('0x2a')]){return _0x03bc('0x2b');}else{return _0x03bc('0x2c');}}else{return _0x03bc('0x2d');}};Agent[_0x03bc('0x27')]['updateRealtime']=function(){var _0x4463ec=[_0x03bc('0x2e'),_0x03bc('0x2f'),_0x03bc('0x30'),'fax',_0x03bc('0x31'),_0x03bc('0x32')];for(var _0x2e4040=0x0;_0x2e4040<_0x4463ec['length'];_0x2e4040+=0x1){var _0x27ab21=this[_0x03bc('0x28')](_0x4463ec[_0x2e4040]);if(this[_0x4463ec[_0x2e4040]+_0x03bc('0x33')]!==_0x27ab21){this[_0x4463ec[_0x2e4040]+_0x03bc('0x34')]=_[_0x03bc('0x35')](moment()[_0x03bc('0x36')]('x'));}this[_0x4463ec[_0x2e4040]+_0x03bc('0x33')]=_0x27ab21;}var _0x6923e4={'id':this['id'],'name':this[_0x03bc('0x8')],'online':this[_0x03bc('0x9')],'voicePause':this[_0x03bc('0xa')],'chatPause':this[_0x03bc('0xb')],'mailPause':this['mailPause'],'smsPause':this['smsPause'],'faxPause':this[_0x03bc('0xd')],'openchannelPause':this[_0x03bc('0xf')],'chatStatus':this[_0x03bc('0x10')],'chatStatusTime':this[_0x03bc('0x12')],'chatCapacity':this[_0x03bc('0x13')],'chatCurrentCapacity':this[_0x03bc('0x14')],'mailStatus':this[_0x03bc('0x15')],'mailStatusTime':this['mailStatusTime'],'mailCapacity':this['mailCapacity'],'mailCurrentCapacity':this[_0x03bc('0x17')],'faxStatus':this['faxStatus'],'faxStatusTime':this[_0x03bc('0x18')],'faxCapacity':this[_0x03bc('0x19')],'faxCurrentCapacity':this[_0x03bc('0x1a')],'smsStatus':this['smsStatus'],'smsStatusTime':this[_0x03bc('0x1c')],'smsCapacity':this[_0x03bc('0x1d')],'smsCurrentCapacity':this[_0x03bc('0x1e')],'whatsappStatus':this['whatsappStatus'],'whatsappStatusTime':this[_0x03bc('0x20')],'whatsappCapacity':this['whatsappCapacity'],'whatsappCurrentCapacity':this[_0x03bc('0x22')],'openchannelStatus':this[_0x03bc('0x23')],'openchannelStatusTime':this[_0x03bc('0x37')],'openchannelCapacity':this[_0x03bc('0x38')],'openchannelCurrentCapacity':this[_0x03bc('0x24')],'busy':this[_0x03bc('0x25')],'busyQueue':this['busyQueue']};var _0x5f1554=md5(JSON[_0x03bc('0x39')](_0x6923e4));if(this[_0x03bc('0x2')]!==_0x5f1554){this[_0x03bc('0x2')]=_0x5f1554;io[_0x03bc('0x3a')]('user:save',_0x6923e4);}};module[_0x03bc('0x3b')]=Agent;
\ No newline at end of file
+var _0xa24a=['openchannelPause','chatStatus','unknown','chatCapacity','mailStatus','mailStatusTime','mailCapacity','mailCurrentCapacity','faxStatus','faxStatusTime','faxCapacity','faxCurrentCapacity','smsStatusTime','smsCapacity','smsCurrentCapacity','whatsappStatus','whatsappStatusTime','whatsappCapacity','whatsappCurrentCapacity','openchannelStatus','openchannelStatusTime','openchannelCapacity','openchannelCurrentCapacity','busy','busyQueue','updateRealtime','prototype','getChannelStatus','CurrentCapacity','Capacity','maxcapacity','working','mail','chat','openchannel','sms','length','StatusTime','toNumber','Status','chatCurrentCapacity','smsStatus','stringify','emit','user:save','exports','lodash','moment','md5','ioredis','../../../config/environment','redis','defaults','localhost','socket.io-emitter','name','online','voicePause','chatPause','mailPause','faxPause','smsPause'];(function(_0x4cf98e,_0xba4b79){var _0x1623ac=function(_0x459bc0){while(--_0x459bc0){_0x4cf98e['push'](_0x4cf98e['shift']());}};_0x1623ac(++_0xba4b79);}(_0xa24a,0x1a2));var _0xaa24=function(_0x4e44a0,_0x40ce30){_0x4e44a0=_0x4e44a0-0x0;var _0x5bd95b=_0xa24a[_0x4e44a0];return _0x5bd95b;};'use strict';var _=require(_0xaa24('0x0'));var moment=require(_0xaa24('0x1'));var md5=require(_0xaa24('0x2'));var Redis=require(_0xaa24('0x3'));var config=require(_0xaa24('0x4'));config[_0xaa24('0x5')]=_[_0xaa24('0x6')](config[_0xaa24('0x5')],{'host':_0xaa24('0x7'),'port':0x18eb});var io=require(_0xaa24('0x8'))(new Redis(config['redis']));function Agent(_0x299391){this['id']=_0x299391['id']||0x0;this[_0xaa24('0x9')]=_0x299391['name']||'';this[_0xaa24('0xa')]=_0x299391[_0xaa24('0xa')]||!![];this['voicePause']=_0x299391[_0xaa24('0xb')]||![];this[_0xaa24('0xc')]=_0x299391['chatPause']||![];this['mailPause']=_0x299391[_0xaa24('0xd')]||![];this[_0xaa24('0xe')]=_0x299391[_0xaa24('0xe')]||![];this[_0xaa24('0xf')]=_0x299391[_0xaa24('0xf')]||![];this[_0xaa24('0x10')]=_0x299391[_0xaa24('0x10')]||![];this[_0xaa24('0x11')]=_0xaa24('0x12');this['chatStatusTime']=0x0;this['chatCapacity']=_0x299391[_0xaa24('0x13')]||0x0;this['chatCurrentCapacity']=0x0;this[_0xaa24('0x14')]=_0xaa24('0x12');this[_0xaa24('0x15')]=0x0;this[_0xaa24('0x16')]=_0x299391['mailCapacity']||0x0;this[_0xaa24('0x17')]=0x0;this[_0xaa24('0x18')]=_0xaa24('0x12');this[_0xaa24('0x19')]=0x0;this[_0xaa24('0x1a')]=_0x299391['faxCapacity']||0x0;this[_0xaa24('0x1b')]=0x0;this['smsStatus']=_0xaa24('0x12');this[_0xaa24('0x1c')]=0x0;this[_0xaa24('0x1d')]=_0x299391[_0xaa24('0x1d')]||0x0;this[_0xaa24('0x1e')]=0x0;this[_0xaa24('0x1f')]='unknown';this[_0xaa24('0x20')]=0x0;this[_0xaa24('0x21')]=_0x299391['whatsappCapacity']||0x0;this[_0xaa24('0x22')]=0x0;this[_0xaa24('0x23')]=_0xaa24('0x12');this[_0xaa24('0x24')]=0x0;this[_0xaa24('0x25')]=_0x299391[_0xaa24('0x25')]||0x0;this[_0xaa24('0x26')]=0x0;this[_0xaa24('0x27')]=![];this[_0xaa24('0x28')]=undefined;this[_0xaa24('0x2')]='';this[_0xaa24('0x29')]();}Agent[_0xaa24('0x2a')][_0xaa24('0x2b')]=function(_0x49fe1c){if(this[_0x49fe1c+_0xaa24('0x2c')]>0x0){if(this[_0x49fe1c+'Capacity']>0x0&&this[_0x49fe1c+_0xaa24('0x2c')]>=this[_0x49fe1c+_0xaa24('0x2d')]){return _0xaa24('0x2e');}else{return _0xaa24('0x2f');}}else{return'idle';}};Agent['prototype']['updateRealtime']=function(){var _0x4ac052=[_0xaa24('0x30'),_0xaa24('0x31'),_0xaa24('0x32'),'fax',_0xaa24('0x33'),'whatsapp'];for(var _0x547181=0x0;_0x547181<_0x4ac052[_0xaa24('0x34')];_0x547181+=0x1){var _0x54e5e7=this[_0xaa24('0x2b')](_0x4ac052[_0x547181]);if(this[_0x4ac052[_0x547181]+'Status']!==_0x54e5e7){this[_0x4ac052[_0x547181]+_0xaa24('0x35')]=_[_0xaa24('0x36')](moment()['format']('x'));}this[_0x4ac052[_0x547181]+_0xaa24('0x37')]=_0x54e5e7;}var _0x42a720={'id':this['id'],'name':this[_0xaa24('0x9')],'online':this[_0xaa24('0xa')],'voicePause':this[_0xaa24('0xb')],'chatPause':this[_0xaa24('0xc')],'mailPause':this[_0xaa24('0xd')],'smsPause':this['smsPause'],'faxPause':this['faxPause'],'openchannelPause':this[_0xaa24('0x10')],'chatStatus':this[_0xaa24('0x11')],'chatStatusTime':this['chatStatusTime'],'chatCapacity':this[_0xaa24('0x13')],'chatCurrentCapacity':this[_0xaa24('0x38')],'mailStatus':this['mailStatus'],'mailStatusTime':this[_0xaa24('0x15')],'mailCapacity':this[_0xaa24('0x16')],'mailCurrentCapacity':this[_0xaa24('0x17')],'faxStatus':this[_0xaa24('0x18')],'faxStatusTime':this[_0xaa24('0x19')],'faxCapacity':this[_0xaa24('0x1a')],'faxCurrentCapacity':this[_0xaa24('0x1b')],'smsStatus':this[_0xaa24('0x39')],'smsStatusTime':this[_0xaa24('0x1c')],'smsCapacity':this[_0xaa24('0x1d')],'smsCurrentCapacity':this[_0xaa24('0x1e')],'whatsappStatus':this['whatsappStatus'],'whatsappStatusTime':this[_0xaa24('0x20')],'whatsappCapacity':this[_0xaa24('0x21')],'whatsappCurrentCapacity':this[_0xaa24('0x22')],'openchannelStatus':this[_0xaa24('0x23')],'openchannelStatusTime':this[_0xaa24('0x24')],'openchannelCapacity':this['openchannelCapacity'],'openchannelCurrentCapacity':this[_0xaa24('0x26')],'busy':this['busy'],'busyQueue':this['busyQueue']};var _0x3b50ef=md5(JSON[_0xaa24('0x3a')](_0x42a720));if(this['md5']!==_0x3b50ef){this[_0xaa24('0x2')]=_0x3b50ef;io[_0xaa24('0x3b')](_0xaa24('0x3c'),_0x42a720);}};module[_0xaa24('0x3d')]=Agent;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x90d0=['emit','chat_queue:save','lodash','md5','util','ioredis','redis','defaults','socket.io-emitter','name','timeout','strategy','beepall','Agents','mapAgentsId','waiting','updateRouting','_rr','map','prototype','updateRealtime','length','online','loggedIn','chatPause','paused','available','stringify','format','chat:queue:%s'];(function(_0x4dba6d,_0x1e7655){var _0xf54502=function(_0x2920fc){while(--_0x2920fc){_0x4dba6d['push'](_0x4dba6d['shift']());}};_0xf54502(++_0x1e7655);}(_0x90d0,0x110));var _0x090d=function(_0x1eb786,_0x1b5f72){_0x1eb786=_0x1eb786-0x0;var _0x460cad=_0x90d0[_0x1eb786];return _0x460cad;};'use strict';var _=require(_0x090d('0x0'));var md5=require(_0x090d('0x1'));var util=require(_0x090d('0x2'));var Redis=require(_0x090d('0x3'));var config=require('../../../config/environment');config[_0x090d('0x4')]=_[_0x090d('0x5')](config['redis'],{'host':'localhost','port':0x18eb});var io=require(_0x090d('0x6'))(new Redis(config[_0x090d('0x4')]));function ChatQueue(_0x310f6a){this['id']=_0x310f6a['id']||0x0;this[_0x090d('0x7')]=_0x310f6a[_0x090d('0x7')]||'';this['timeout']=_0x310f6a[_0x090d('0x8')]||0xa;this['strategy']=_0x310f6a[_0x090d('0x9')]||_0x090d('0xa');this['Agents']=_0x310f6a[_0x090d('0xb')];this[_0x090d('0xc')]={};this[_0x090d('0xd')]=0x0;this['md5']='';this[_0x090d('0xe')]();this['updateRealtime']();}ChatQueue['prototype'][_0x090d('0xe')]=function(){var _0x4ab03f=this[_0x090d('0xc')][_0x090d('0xf')];this[_0x090d('0xc')]=_[_0x090d('0x10')](this[_0x090d('0xb')],'id');this[_0x090d('0xc')][_0x090d('0xf')]=_0x4ab03f;};ChatQueue[_0x090d('0x11')][_0x090d('0x12')]=function(){this['loggedIn']=0x0;this['paused']=0x0;for(var _0x2710f1=0x0;_0x2710f1<this[_0x090d('0xb')][_0x090d('0x13')];_0x2710f1+=0x1){if(this[_0x090d('0xb')][_0x2710f1][_0x090d('0x14')]){this[_0x090d('0x15')]+=0x1;}if(this[_0x090d('0xb')][_0x2710f1][_0x090d('0x16')]){this[_0x090d('0x17')]+=0x1;}}this[_0x090d('0x18')]=this[_0x090d('0x15')]-this[_0x090d('0x17')];this[_0x090d('0x18')]=this[_0x090d('0x18')]>=0x0?this[_0x090d('0x18')]:0x0;var _0x267343={'id':this['id'],'available':this[_0x090d('0x18')],'loggedIn':this['loggedIn'],'name':this[_0x090d('0x7')],'paused':this[_0x090d('0x17')],'waiting':this['waiting']};var _0x24b449=md5(JSON[_0x090d('0x19')](_0x267343));if(this[_0x090d('0x1')]!==_0x24b449){this[_0x090d('0x1')]=_0x24b449;io['to'](util[_0x090d('0x1a')](_0x090d('0x1b'),_0x267343['name']))[_0x090d('0x1c')](_0x090d('0x1d'),_0x267343);}};module['exports']=ChatQueue;
\ No newline at end of file
+var _0x38b6=['mapAgentsId','waiting','updateRouting','updateRealtime','_rr','map','paused','loggedIn','chatPause','available','name','stringify','format','chat:queue:%s','chat_queue:save','exports','lodash','md5','util','ioredis','../../../config/environment','redis','defaults','localhost','socket.io-emitter','timeout','strategy','beepall','Agents'];(function(_0x4e676e,_0x2a7c6d){var _0x336a3c=function(_0x4767c4){while(--_0x4767c4){_0x4e676e['push'](_0x4e676e['shift']());}};_0x336a3c(++_0x2a7c6d);}(_0x38b6,0x14f));var _0x638b=function(_0x2bc86b,_0x1e2333){_0x2bc86b=_0x2bc86b-0x0;var _0x221f94=_0x38b6[_0x2bc86b];return _0x221f94;};'use strict';var _=require(_0x638b('0x0'));var md5=require(_0x638b('0x1'));var util=require(_0x638b('0x2'));var Redis=require(_0x638b('0x3'));var config=require(_0x638b('0x4'));config[_0x638b('0x5')]=_[_0x638b('0x6')](config[_0x638b('0x5')],{'host':_0x638b('0x7'),'port':0x18eb});var io=require(_0x638b('0x8'))(new Redis(config[_0x638b('0x5')]));function ChatQueue(_0x594eb4){this['id']=_0x594eb4['id']||0x0;this['name']=_0x594eb4['name']||'';this[_0x638b('0x9')]=_0x594eb4[_0x638b('0x9')]||0xa;this[_0x638b('0xa')]=_0x594eb4[_0x638b('0xa')]||_0x638b('0xb');this[_0x638b('0xc')]=_0x594eb4['Agents'];this[_0x638b('0xd')]={};this[_0x638b('0xe')]=0x0;this['md5']='';this[_0x638b('0xf')]();this[_0x638b('0x10')]();}ChatQueue['prototype'][_0x638b('0xf')]=function(){var _0x57bb73=this['mapAgentsId'][_0x638b('0x11')];this[_0x638b('0xd')]=_[_0x638b('0x12')](this[_0x638b('0xc')],'id');this[_0x638b('0xd')][_0x638b('0x11')]=_0x57bb73;};ChatQueue['prototype'][_0x638b('0x10')]=function(){this['loggedIn']=0x0;this[_0x638b('0x13')]=0x0;for(var _0x15e821=0x0;_0x15e821<this['Agents']['length'];_0x15e821+=0x1){if(this[_0x638b('0xc')][_0x15e821]['online']){this[_0x638b('0x14')]+=0x1;}if(this['Agents'][_0x15e821][_0x638b('0x15')]){this[_0x638b('0x13')]+=0x1;}}this[_0x638b('0x16')]=this['loggedIn']-this[_0x638b('0x13')];this['available']=this[_0x638b('0x16')]>=0x0?this[_0x638b('0x16')]:0x0;var _0x5324b4={'id':this['id'],'available':this[_0x638b('0x16')],'loggedIn':this[_0x638b('0x14')],'name':this[_0x638b('0x17')],'paused':this[_0x638b('0x13')],'waiting':this[_0x638b('0xe')]};var _0xbd2f10=md5(JSON[_0x638b('0x18')](_0x5324b4));if(this[_0x638b('0x1')]!==_0xbd2f10){this[_0x638b('0x1')]=_0xbd2f10;io['to'](util[_0x638b('0x19')](_0x638b('0x1a'),_0x5324b4['name']))['emit'](_0x638b('0x1b'),_0x5324b4);}};module[_0x638b('0x1c')]=ChatQueue;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9195=['ioredis','../../../config/environment','redis','defaults','socket.io-emitter','name','strategy','beepall','Agents','mapAgentsId','waiting','updateRouting','updateRealtime','prototype','_rr','map','loggedIn','paused','length','online','faxPause','available','format','fax:queue:%s','emit','fax_queue:save','exports','md5'];(function(_0xd51e1f,_0x2a93af){var _0x17f520=function(_0x502085){while(--_0x502085){_0xd51e1f['push'](_0xd51e1f['shift']());}};_0x17f520(++_0x2a93af);}(_0x9195,0xdf));var _0x5919=function(_0xd9ee0f,_0x301d80){_0xd9ee0f=_0xd9ee0f-0x0;var _0x2c7db5=_0x9195[_0xd9ee0f];return _0x2c7db5;};'use strict';var _=require('lodash');var md5=require(_0x5919('0x0'));var util=require('util');var Redis=require(_0x5919('0x1'));var config=require(_0x5919('0x2'));config[_0x5919('0x3')]=_[_0x5919('0x4')](config[_0x5919('0x3')],{'host':'localhost','port':0x18eb});var io=require(_0x5919('0x5'))(new Redis(config[_0x5919('0x3')]));function FaxQueue(_0x131d6a){this['id']=_0x131d6a['id']||0x0;this[_0x5919('0x6')]=_0x131d6a['name']||'';this['timeout']=_0x131d6a['timeout']||0xa;this[_0x5919('0x7')]=_0x131d6a[_0x5919('0x7')]||_0x5919('0x8');this[_0x5919('0x9')]=_0x131d6a['Agents'];this[_0x5919('0xa')]={};this[_0x5919('0xb')]=0x0;this['md5']='';this[_0x5919('0xc')]();this[_0x5919('0xd')]();}FaxQueue[_0x5919('0xe')]['updateRouting']=function(){var _0x1a62b6=this['mapAgentsId'][_0x5919('0xf')];this[_0x5919('0xa')]=_[_0x5919('0x10')](this[_0x5919('0x9')],'id');this['mapAgentsId']['_rr']=_0x1a62b6;};FaxQueue[_0x5919('0xe')]['updateRealtime']=function(){this[_0x5919('0x11')]=0x0;this[_0x5919('0x12')]=0x0;for(var _0x5104bd=0x0;_0x5104bd<this['Agents'][_0x5919('0x13')];_0x5104bd+=0x1){if(this[_0x5919('0x9')][_0x5104bd][_0x5919('0x14')]){this['loggedIn']+=0x1;}if(this[_0x5919('0x9')][_0x5104bd][_0x5919('0x15')]){this[_0x5919('0x12')]+=0x1;}}this[_0x5919('0x16')]=this[_0x5919('0x11')]-this[_0x5919('0x12')];this[_0x5919('0x16')]=this[_0x5919('0x16')]>=0x0?this['available']:0x0;var _0x2c2b20={'id':this['id'],'available':this['available'],'loggedIn':this[_0x5919('0x11')],'name':this[_0x5919('0x6')],'paused':this[_0x5919('0x12')],'waiting':this[_0x5919('0xb')]};var _0x1cc35a=md5(JSON['stringify'](_0x2c2b20));if(this[_0x5919('0x0')]!==_0x1cc35a){this['md5']=_0x1cc35a;io['to'](util[_0x5919('0x17')](_0x5919('0x18'),_0x2c2b20[_0x5919('0x6')]))[_0x5919('0x19')](_0x5919('0x1a'),_0x2c2b20);}};module[_0x5919('0x1b')]=FaxQueue;
\ No newline at end of file
+var _0x3c85=['loggedIn','faxPause','available','format','fax:queue:%s','fax_queue:save','exports','lodash','util','../../../config/environment','defaults','redis','localhost','socket.io-emitter','name','timeout','strategy','beepall','Agents','mapAgentsId','waiting','md5','prototype','_rr','map','paused','length','online'];(function(_0x22dfc9,_0x3c3967){var _0x7769c7=function(_0x2a4d71){while(--_0x2a4d71){_0x22dfc9['push'](_0x22dfc9['shift']());}};_0x7769c7(++_0x3c3967);}(_0x3c85,0x157));var _0x53c8=function(_0x57e008,_0x2af676){_0x57e008=_0x57e008-0x0;var _0xc53edb=_0x3c85[_0x57e008];return _0xc53edb;};'use strict';var _=require(_0x53c8('0x0'));var md5=require('md5');var util=require(_0x53c8('0x1'));var Redis=require('ioredis');var config=require(_0x53c8('0x2'));config['redis']=_[_0x53c8('0x3')](config[_0x53c8('0x4')],{'host':_0x53c8('0x5'),'port':0x18eb});var io=require(_0x53c8('0x6'))(new Redis(config[_0x53c8('0x4')]));function FaxQueue(_0x28e828){this['id']=_0x28e828['id']||0x0;this[_0x53c8('0x7')]=_0x28e828[_0x53c8('0x7')]||'';this['timeout']=_0x28e828[_0x53c8('0x8')]||0xa;this[_0x53c8('0x9')]=_0x28e828['strategy']||_0x53c8('0xa');this[_0x53c8('0xb')]=_0x28e828[_0x53c8('0xb')];this[_0x53c8('0xc')]={};this[_0x53c8('0xd')]=0x0;this[_0x53c8('0xe')]='';this['updateRouting']();this['updateRealtime']();}FaxQueue[_0x53c8('0xf')]['updateRouting']=function(){var _0x35fd48=this[_0x53c8('0xc')][_0x53c8('0x10')];this['mapAgentsId']=_[_0x53c8('0x11')](this['Agents'],'id');this['mapAgentsId'][_0x53c8('0x10')]=_0x35fd48;};FaxQueue[_0x53c8('0xf')]['updateRealtime']=function(){this['loggedIn']=0x0;this[_0x53c8('0x12')]=0x0;for(var _0x53eaea=0x0;_0x53eaea<this['Agents'][_0x53c8('0x13')];_0x53eaea+=0x1){if(this['Agents'][_0x53eaea][_0x53c8('0x14')]){this[_0x53c8('0x15')]+=0x1;}if(this[_0x53c8('0xb')][_0x53eaea][_0x53c8('0x16')]){this[_0x53c8('0x12')]+=0x1;}}this[_0x53c8('0x17')]=this[_0x53c8('0x15')]-this[_0x53c8('0x12')];this['available']=this[_0x53c8('0x17')]>=0x0?this[_0x53c8('0x17')]:0x0;var _0x3f735b={'id':this['id'],'available':this[_0x53c8('0x17')],'loggedIn':this[_0x53c8('0x15')],'name':this[_0x53c8('0x7')],'paused':this['paused'],'waiting':this[_0x53c8('0xd')]};var _0x66e4da=md5(JSON['stringify'](_0x3f735b));if(this['md5']!==_0x66e4da){this[_0x53c8('0xe')]=_0x66e4da;io['to'](util[_0x53c8('0x18')](_0x53c8('0x19'),_0x3f735b['name']))['emit'](_0x53c8('0x1a'),_0x3f735b);}};module[_0x53c8('0x1b')]=FaxQueue;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x57ad=['name','Intervals'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x57ad,0x1c8));var _0xd57a=function(_0x51fb74,_0x5b169b){_0x51fb74=_0x51fb74-0x0;var _0x1d62dd=_0x57ad[_0x51fb74];return _0x1d62dd;};'use strict';function Interval(_0x566beb){this['id']=_0x566beb['id']||0x0;this[_0xd57a('0x0')]=_0x566beb[_0xd57a('0x0')]||'';this[_0xd57a('0x1')]=_0x566beb[_0xd57a('0x1')]||{};}module['exports']=Interval;
\ No newline at end of file
+var _0x8913=['name','Intervals'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x8913,0xda));var _0x3891=function(_0x526e34,_0x1a35ef){_0x526e34=_0x526e34-0x0;var _0x38c2bc=_0x8913[_0x526e34];return _0x38c2bc;};'use strict';function Interval(_0x19d053){this['id']=_0x19d053['id']||0x0;this[_0x3891('0x0')]=_0x19d053['name']||'';this[_0x3891('0x1')]=_0x19d053['Intervals']||{};}module['exports']=Interval;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x799e=['updateRouting','prototype','_rr','map','updateRealtime','length','loggedIn','mailPause','paused','available','waiting','format','mail:queue:%s','emit','mail_queue:save','exports','md5','util','ioredis','../../../config/environment','defaults','localhost','socket.io-emitter','redis','name','timeout','strategy','beepall','Agents','mapAgentsId'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x799e,0x1d2));var _0xe799=function(_0x22aa2c,_0x326958){_0x22aa2c=_0x22aa2c-0x0;var _0x23a008=_0x799e[_0x22aa2c];return _0x23a008;};'use strict';var _=require('lodash');var md5=require(_0xe799('0x0'));var util=require(_0xe799('0x1'));var Redis=require(_0xe799('0x2'));var config=require(_0xe799('0x3'));config['redis']=_[_0xe799('0x4')](config['redis'],{'host':_0xe799('0x5'),'port':0x18eb});var io=require(_0xe799('0x6'))(new Redis(config[_0xe799('0x7')]));function MailQueue(_0x44ecc3){this['id']=_0x44ecc3['id']||0x0;this[_0xe799('0x8')]=_0x44ecc3[_0xe799('0x8')]||'';this[_0xe799('0x9')]=_0x44ecc3['timeout']||0xa;this[_0xe799('0xa')]=_0x44ecc3[_0xe799('0xa')]||_0xe799('0xb');this[_0xe799('0xc')]=_0x44ecc3[_0xe799('0xc')];this[_0xe799('0xd')]={};this['waiting']=0x0;this['md5']='';this[_0xe799('0xe')]();this['updateRealtime']();}MailQueue[_0xe799('0xf')][_0xe799('0xe')]=function(){var _0x1bbb81=this['mapAgentsId'][_0xe799('0x10')];this[_0xe799('0xd')]=_[_0xe799('0x11')](this[_0xe799('0xc')],'id');this[_0xe799('0xd')][_0xe799('0x10')]=_0x1bbb81;};MailQueue[_0xe799('0xf')][_0xe799('0x12')]=function(){this['loggedIn']=0x0;this['paused']=0x0;for(var _0x1de2d4=0x0;_0x1de2d4<this[_0xe799('0xc')][_0xe799('0x13')];_0x1de2d4+=0x1){if(this[_0xe799('0xc')][_0x1de2d4]['online']){this[_0xe799('0x14')]+=0x1;}if(this['Agents'][_0x1de2d4][_0xe799('0x15')]){this[_0xe799('0x16')]+=0x1;}}this[_0xe799('0x17')]=this[_0xe799('0x14')]-this[_0xe799('0x16')];this[_0xe799('0x17')]=this[_0xe799('0x17')]>=0x0?this[_0xe799('0x17')]:0x0;var _0x54ad26={'id':this['id'],'available':this[_0xe799('0x17')],'loggedIn':this[_0xe799('0x14')],'name':this[_0xe799('0x8')],'paused':this[_0xe799('0x16')],'waiting':this[_0xe799('0x18')]};var _0x1fba5a=md5(JSON['stringify'](_0x54ad26));if(this[_0xe799('0x0')]!==_0x1fba5a){this['md5']=_0x1fba5a;io['to'](util[_0xe799('0x19')](_0xe799('0x1a'),_0x54ad26[_0xe799('0x8')]))[_0xe799('0x1b')](_0xe799('0x1c'),_0x54ad26);}};module[_0xe799('0x1d')]=MailQueue;
\ No newline at end of file
+var _0xa98d=['available','stringify','format','mail:queue:%s','exports','md5','util','ioredis','../../../config/environment','redis','localhost','socket.io-emitter','name','timeout','strategy','beepall','Agents','updateRealtime','prototype','updateRouting','_rr','mapAgentsId','map','paused','length','online','loggedIn'];(function(_0x334e69,_0x16b1c5){var _0x4243aa=function(_0x21fb01){while(--_0x21fb01){_0x334e69['push'](_0x334e69['shift']());}};_0x4243aa(++_0x16b1c5);}(_0xa98d,0x1b5));var _0xda98=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xa98d[_0x20a584];return _0x4b41a8;};'use strict';var _=require('lodash');var md5=require(_0xda98('0x0'));var util=require(_0xda98('0x1'));var Redis=require(_0xda98('0x2'));var config=require(_0xda98('0x3'));config[_0xda98('0x4')]=_['defaults'](config[_0xda98('0x4')],{'host':_0xda98('0x5'),'port':0x18eb});var io=require(_0xda98('0x6'))(new Redis(config[_0xda98('0x4')]));function MailQueue(_0x44a365){this['id']=_0x44a365['id']||0x0;this[_0xda98('0x7')]=_0x44a365[_0xda98('0x7')]||'';this['timeout']=_0x44a365[_0xda98('0x8')]||0xa;this[_0xda98('0x9')]=_0x44a365[_0xda98('0x9')]||_0xda98('0xa');this[_0xda98('0xb')]=_0x44a365[_0xda98('0xb')];this['mapAgentsId']={};this['waiting']=0x0;this[_0xda98('0x0')]='';this['updateRouting']();this[_0xda98('0xc')]();}MailQueue[_0xda98('0xd')][_0xda98('0xe')]=function(){var _0x4e2f8c=this['mapAgentsId'][_0xda98('0xf')];this[_0xda98('0x10')]=_[_0xda98('0x11')](this['Agents'],'id');this[_0xda98('0x10')][_0xda98('0xf')]=_0x4e2f8c;};MailQueue[_0xda98('0xd')][_0xda98('0xc')]=function(){this['loggedIn']=0x0;this[_0xda98('0x12')]=0x0;for(var _0x5cd15b=0x0;_0x5cd15b<this['Agents'][_0xda98('0x13')];_0x5cd15b+=0x1){if(this['Agents'][_0x5cd15b][_0xda98('0x14')]){this[_0xda98('0x15')]+=0x1;}if(this['Agents'][_0x5cd15b]['mailPause']){this[_0xda98('0x12')]+=0x1;}}this[_0xda98('0x16')]=this[_0xda98('0x15')]-this[_0xda98('0x12')];this[_0xda98('0x16')]=this['available']>=0x0?this[_0xda98('0x16')]:0x0;var _0x3d2684={'id':this['id'],'available':this[_0xda98('0x16')],'loggedIn':this['loggedIn'],'name':this[_0xda98('0x7')],'paused':this['paused'],'waiting':this['waiting']};var _0x415f15=md5(JSON[_0xda98('0x17')](_0x3d2684));if(this[_0xda98('0x0')]!==_0x415f15){this[_0xda98('0x0')]=_0x415f15;io['to'](util[_0xda98('0x18')](_0xda98('0x19'),_0x3d2684[_0xda98('0x7')]))['emit']('mail_queue:save',_0x3d2684);}};module[_0xda98('0x1a')]=MailQueue;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x814b=['prototype','map','_rr','loggedIn','paused','length','online','openchannelPause','available','format','openchannel_queue:save','exports','lodash','md5','util','ioredis','../../../config/environment','redis','localhost','socket.io-emitter','name','timeout','strategy','beepall','Agents','mapAgentsId','waiting','updateRouting','updateRealtime'];(function(_0x521757,_0x20ac6a){var _0x3fe84e=function(_0x176a12){while(--_0x176a12){_0x521757['push'](_0x521757['shift']());}};_0x3fe84e(++_0x20ac6a);}(_0x814b,0x1a2));var _0xb814=function(_0x2002b3,_0x11e91c){_0x2002b3=_0x2002b3-0x0;var _0x2756f0=_0x814b[_0x2002b3];return _0x2756f0;};'use strict';var _=require(_0xb814('0x0'));var md5=require(_0xb814('0x1'));var util=require(_0xb814('0x2'));var Redis=require(_0xb814('0x3'));var config=require(_0xb814('0x4'));config[_0xb814('0x5')]=_['defaults'](config[_0xb814('0x5')],{'host':_0xb814('0x6'),'port':0x18eb});var io=require(_0xb814('0x7'))(new Redis(config[_0xb814('0x5')]));function OpenchannelQueue(_0x44931c){this['id']=_0x44931c['id']||0x0;this[_0xb814('0x8')]=_0x44931c['name']||'';this[_0xb814('0x9')]=_0x44931c[_0xb814('0x9')]||0xa;this['strategy']=_0x44931c[_0xb814('0xa')]||_0xb814('0xb');this[_0xb814('0xc')]=_0x44931c[_0xb814('0xc')];this[_0xb814('0xd')]={};this[_0xb814('0xe')]=0x0;this[_0xb814('0x1')]='';this[_0xb814('0xf')]();this[_0xb814('0x10')]();}OpenchannelQueue[_0xb814('0x11')][_0xb814('0xf')]=function(){var _0x4b5f14=this[_0xb814('0xd')]['_rr'];this[_0xb814('0xd')]=_[_0xb814('0x12')](this[_0xb814('0xc')],'id');this[_0xb814('0xd')][_0xb814('0x13')]=_0x4b5f14;};OpenchannelQueue[_0xb814('0x11')][_0xb814('0x10')]=function(){this[_0xb814('0x14')]=0x0;this[_0xb814('0x15')]=0x0;for(var _0x2ab627=0x0;_0x2ab627<this[_0xb814('0xc')][_0xb814('0x16')];_0x2ab627+=0x1){if(this[_0xb814('0xc')][_0x2ab627][_0xb814('0x17')]){this[_0xb814('0x14')]+=0x1;}if(this[_0xb814('0xc')][_0x2ab627][_0xb814('0x18')]){this[_0xb814('0x15')]+=0x1;}}this[_0xb814('0x19')]=this[_0xb814('0x14')]-this[_0xb814('0x15')];this['available']=this[_0xb814('0x19')]>=0x0?this['available']:0x0;var _0x270598={'id':this['id'],'available':this[_0xb814('0x19')],'loggedIn':this['loggedIn'],'name':this['name'],'paused':this['paused'],'waiting':this[_0xb814('0xe')]};var _0x4d5276=md5(JSON['stringify'](_0x270598));if(this[_0xb814('0x1')]!==_0x4d5276){this[_0xb814('0x1')]=_0x4d5276;io['to'](util[_0xb814('0x1a')]('openchannel:queue:%s',_0x270598[_0xb814('0x8')]))['emit'](_0xb814('0x1b'),_0x270598);}};module[_0xb814('0x1c')]=OpenchannelQueue;
\ No newline at end of file
+var _0x1261=['available','stringify','openchannel:queue:%s','openchannel_queue:save','exports','md5','util','ioredis','../../../config/environment','redis','defaults','localhost','socket.io-emitter','name','timeout','strategy','beepall','Agents','waiting','updateRouting','prototype','mapAgentsId','map','_rr','updateRealtime','loggedIn','paused','length','online'];(function(_0x25c326,_0x250137){var _0x762452=function(_0x50ce5e){while(--_0x50ce5e){_0x25c326['push'](_0x25c326['shift']());}};_0x762452(++_0x250137);}(_0x1261,0x144));var _0x1126=function(_0x2112d4,_0x3c863c){_0x2112d4=_0x2112d4-0x0;var _0x434972=_0x1261[_0x2112d4];return _0x434972;};'use strict';var _=require('lodash');var md5=require(_0x1126('0x0'));var util=require(_0x1126('0x1'));var Redis=require(_0x1126('0x2'));var config=require(_0x1126('0x3'));config[_0x1126('0x4')]=_[_0x1126('0x5')](config[_0x1126('0x4')],{'host':_0x1126('0x6'),'port':0x18eb});var io=require(_0x1126('0x7'))(new Redis(config[_0x1126('0x4')]));function OpenchannelQueue(_0x5a2189){this['id']=_0x5a2189['id']||0x0;this['name']=_0x5a2189[_0x1126('0x8')]||'';this[_0x1126('0x9')]=_0x5a2189['timeout']||0xa;this[_0x1126('0xa')]=_0x5a2189[_0x1126('0xa')]||_0x1126('0xb');this[_0x1126('0xc')]=_0x5a2189[_0x1126('0xc')];this['mapAgentsId']={};this[_0x1126('0xd')]=0x0;this[_0x1126('0x0')]='';this[_0x1126('0xe')]();this['updateRealtime']();}OpenchannelQueue[_0x1126('0xf')]['updateRouting']=function(){var _0x52ef15=this[_0x1126('0x10')]['_rr'];this[_0x1126('0x10')]=_[_0x1126('0x11')](this[_0x1126('0xc')],'id');this[_0x1126('0x10')][_0x1126('0x12')]=_0x52ef15;};OpenchannelQueue[_0x1126('0xf')][_0x1126('0x13')]=function(){this[_0x1126('0x14')]=0x0;this[_0x1126('0x15')]=0x0;for(var _0x53a8f0=0x0;_0x53a8f0<this['Agents'][_0x1126('0x16')];_0x53a8f0+=0x1){if(this[_0x1126('0xc')][_0x53a8f0][_0x1126('0x17')]){this['loggedIn']+=0x1;}if(this[_0x1126('0xc')][_0x53a8f0]['openchannelPause']){this[_0x1126('0x15')]+=0x1;}}this[_0x1126('0x18')]=this[_0x1126('0x14')]-this['paused'];this[_0x1126('0x18')]=this[_0x1126('0x18')]>=0x0?this['available']:0x0;var _0x4d2b38={'id':this['id'],'available':this[_0x1126('0x18')],'loggedIn':this[_0x1126('0x14')],'name':this['name'],'paused':this['paused'],'waiting':this[_0x1126('0xd')]};var _0x58b109=md5(JSON[_0x1126('0x19')](_0x4d2b38));if(this[_0x1126('0x0')]!==_0x58b109){this[_0x1126('0x0')]=_0x58b109;io['to'](util['format'](_0x1126('0x1a'),_0x4d2b38['name']))['emit'](_0x1126('0x1b'),_0x4d2b38);}};module[_0x1126('0x1c')]=OpenchannelQueue;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x402f=['mapAgentsId','waiting','md5','updateRouting','updateRealtime','paused','length','online','loggedIn','available','stringify','format','sms:queue:%s','emit','sms_queue:save','lodash','util','redis','defaults','socket.io-emitter','name','timeout','beepall','Agents'];(function(_0xd1d19a,_0x1933f0){var _0x52a79d=function(_0x5199e2){while(--_0x5199e2){_0xd1d19a['push'](_0xd1d19a['shift']());}};_0x52a79d(++_0x1933f0);}(_0x402f,0x6f));var _0xf402=function(_0x512db2,_0x59629b){_0x512db2=_0x512db2-0x0;var _0x65247c=_0x402f[_0x512db2];return _0x65247c;};'use strict';var _=require(_0xf402('0x0'));var md5=require('md5');var util=require(_0xf402('0x1'));var Redis=require('ioredis');var config=require('../../../config/environment');config[_0xf402('0x2')]=_[_0xf402('0x3')](config[_0xf402('0x2')],{'host':'localhost','port':0x18eb});var io=require(_0xf402('0x4'))(new Redis(config['redis']));function SmsQueue(_0x20c2cc){this['id']=_0x20c2cc['id']||0x0;this[_0xf402('0x5')]=_0x20c2cc[_0xf402('0x5')]||'';this[_0xf402('0x6')]=_0x20c2cc[_0xf402('0x6')]||0xa;this['strategy']=_0x20c2cc['strategy']||_0xf402('0x7');this[_0xf402('0x8')]=_0x20c2cc[_0xf402('0x8')];this[_0xf402('0x9')]={};this[_0xf402('0xa')]=0x0;this[_0xf402('0xb')]='';this[_0xf402('0xc')]();this[_0xf402('0xd')]();}SmsQueue['prototype'][_0xf402('0xc')]=function(){var _0x496916=this['mapAgentsId']['_rr'];this['mapAgentsId']=_['map'](this[_0xf402('0x8')],'id');this['mapAgentsId']['_rr']=_0x496916;};SmsQueue['prototype'][_0xf402('0xd')]=function(){this['loggedIn']=0x0;this[_0xf402('0xe')]=0x0;for(var _0xb3deb6=0x0;_0xb3deb6<this[_0xf402('0x8')][_0xf402('0xf')];_0xb3deb6+=0x1){if(this['Agents'][_0xb3deb6][_0xf402('0x10')]){this['loggedIn']+=0x1;}if(this[_0xf402('0x8')][_0xb3deb6]['smsPause']){this['paused']+=0x1;}}this['available']=this[_0xf402('0x11')]-this[_0xf402('0xe')];this[_0xf402('0x12')]=this[_0xf402('0x12')]>=0x0?this[_0xf402('0x12')]:0x0;var _0x5d7236={'id':this['id'],'available':this[_0xf402('0x12')],'loggedIn':this[_0xf402('0x11')],'name':this[_0xf402('0x5')],'paused':this[_0xf402('0xe')],'waiting':this['waiting']};var _0x14fdcc=md5(JSON[_0xf402('0x13')](_0x5d7236));if(this[_0xf402('0xb')]!==_0x14fdcc){this[_0xf402('0xb')]=_0x14fdcc;io['to'](util[_0xf402('0x14')](_0xf402('0x15'),_0x5d7236[_0xf402('0x5')]))[_0xf402('0x16')](_0xf402('0x17'),_0x5d7236);}};module['exports']=SmsQueue;
\ No newline at end of file
+var _0x8e0d=['smsPause','available','waiting','emit','exports','lodash','ioredis','../../../config/environment','defaults','redis','localhost','socket.io-emitter','name','timeout','strategy','beepall','Agents','mapAgentsId','md5','updateRealtime','_rr','paused','length','online','loggedIn'];(function(_0x2a3926,_0x3a56d6){var _0x42e888=function(_0x3c9d7b){while(--_0x3c9d7b){_0x2a3926['push'](_0x2a3926['shift']());}};_0x42e888(++_0x3a56d6);}(_0x8e0d,0x82));var _0xd8e0=function(_0x59bcb1,_0x5a4b6c){_0x59bcb1=_0x59bcb1-0x0;var _0x4a737f=_0x8e0d[_0x59bcb1];return _0x4a737f;};'use strict';var _=require(_0xd8e0('0x0'));var md5=require('md5');var util=require('util');var Redis=require(_0xd8e0('0x1'));var config=require(_0xd8e0('0x2'));config['redis']=_[_0xd8e0('0x3')](config[_0xd8e0('0x4')],{'host':_0xd8e0('0x5'),'port':0x18eb});var io=require(_0xd8e0('0x6'))(new Redis(config['redis']));function SmsQueue(_0x5cf790){this['id']=_0x5cf790['id']||0x0;this[_0xd8e0('0x7')]=_0x5cf790[_0xd8e0('0x7')]||'';this[_0xd8e0('0x8')]=_0x5cf790[_0xd8e0('0x8')]||0xa;this['strategy']=_0x5cf790[_0xd8e0('0x9')]||_0xd8e0('0xa');this[_0xd8e0('0xb')]=_0x5cf790[_0xd8e0('0xb')];this[_0xd8e0('0xc')]={};this['waiting']=0x0;this[_0xd8e0('0xd')]='';this['updateRouting']();this[_0xd8e0('0xe')]();}SmsQueue['prototype']['updateRouting']=function(){var _0x6ca388=this[_0xd8e0('0xc')][_0xd8e0('0xf')];this['mapAgentsId']=_['map'](this[_0xd8e0('0xb')],'id');this['mapAgentsId'][_0xd8e0('0xf')]=_0x6ca388;};SmsQueue['prototype']['updateRealtime']=function(){this['loggedIn']=0x0;this[_0xd8e0('0x10')]=0x0;for(var _0x5c983a=0x0;_0x5c983a<this[_0xd8e0('0xb')][_0xd8e0('0x11')];_0x5c983a+=0x1){if(this[_0xd8e0('0xb')][_0x5c983a][_0xd8e0('0x12')]){this[_0xd8e0('0x13')]+=0x1;}if(this[_0xd8e0('0xb')][_0x5c983a][_0xd8e0('0x14')]){this[_0xd8e0('0x10')]+=0x1;}}this[_0xd8e0('0x15')]=this['loggedIn']-this[_0xd8e0('0x10')];this[_0xd8e0('0x15')]=this[_0xd8e0('0x15')]>=0x0?this[_0xd8e0('0x15')]:0x0;var _0x3b28bc={'id':this['id'],'available':this[_0xd8e0('0x15')],'loggedIn':this[_0xd8e0('0x13')],'name':this[_0xd8e0('0x7')],'paused':this['paused'],'waiting':this[_0xd8e0('0x16')]};var _0x4e41d4=md5(JSON['stringify'](_0x3b28bc));if(this[_0xd8e0('0xd')]!==_0x4e41d4){this['md5']=_0x4e41d4;io['to'](util['format']('sms:queue:%s',_0x3b28bc[_0xd8e0('0x7')]))[_0xd8e0('0x17')]('sms_queue:save',_0x3b28bc);}};module[_0xd8e0('0x18')]=SmsQueue;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1a40=['redis','localhost','name','timeout','strategy','Agents','mapAgentsId','waiting','updateRouting','prototype','_rr','updateRealtime','loggedIn','paused','online','whatsappPause','available','stringify','format','emit','lodash','md5','util','ioredis','../../../config/environment'];(function(_0x59dba3,_0x4af9fd){var _0x32ec4f=function(_0x292ba7){while(--_0x292ba7){_0x59dba3['push'](_0x59dba3['shift']());}};_0x32ec4f(++_0x4af9fd);}(_0x1a40,0xc3));var _0x01a4=function(_0x10c87b,_0x4696da){_0x10c87b=_0x10c87b-0x0;var _0x42b7f3=_0x1a40[_0x10c87b];return _0x42b7f3;};'use strict';var _=require(_0x01a4('0x0'));var md5=require(_0x01a4('0x1'));var util=require(_0x01a4('0x2'));var Redis=require(_0x01a4('0x3'));var config=require(_0x01a4('0x4'));config[_0x01a4('0x5')]=_['defaults'](config[_0x01a4('0x5')],{'host':_0x01a4('0x6'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x01a4('0x5')]));function WhatsappQueue(_0x7e3f6){this['id']=_0x7e3f6['id']||0x0;this[_0x01a4('0x7')]=_0x7e3f6[_0x01a4('0x7')]||'';this[_0x01a4('0x8')]=_0x7e3f6[_0x01a4('0x8')]||0xa;this[_0x01a4('0x9')]=_0x7e3f6['strategy']||'beepall';this[_0x01a4('0xa')]=_0x7e3f6[_0x01a4('0xa')];this[_0x01a4('0xb')]={};this[_0x01a4('0xc')]=0x0;this[_0x01a4('0x1')]='';this[_0x01a4('0xd')]();this['updateRealtime']();}WhatsappQueue[_0x01a4('0xe')]['updateRouting']=function(){var _0x392d15=this[_0x01a4('0xb')][_0x01a4('0xf')];this[_0x01a4('0xb')]=_['map'](this[_0x01a4('0xa')],'id');this[_0x01a4('0xb')][_0x01a4('0xf')]=_0x392d15;};WhatsappQueue[_0x01a4('0xe')][_0x01a4('0x10')]=function(){this[_0x01a4('0x11')]=0x0;this[_0x01a4('0x12')]=0x0;for(var _0x36b659=0x0;_0x36b659<this[_0x01a4('0xa')]['length'];_0x36b659+=0x1){if(this['Agents'][_0x36b659][_0x01a4('0x13')]){this[_0x01a4('0x11')]+=0x1;}if(this[_0x01a4('0xa')][_0x36b659][_0x01a4('0x14')]){this[_0x01a4('0x12')]+=0x1;}}this['available']=this[_0x01a4('0x11')]-this[_0x01a4('0x12')];this['available']=this[_0x01a4('0x15')]>=0x0?this[_0x01a4('0x15')]:0x0;var _0x2aa2d5={'id':this['id'],'available':this[_0x01a4('0x15')],'loggedIn':this[_0x01a4('0x11')],'name':this[_0x01a4('0x7')],'paused':this[_0x01a4('0x12')],'waiting':this['waiting']};var _0x33688e=md5(JSON[_0x01a4('0x16')](_0x2aa2d5));if(this[_0x01a4('0x1')]!==_0x33688e){this[_0x01a4('0x1')]=_0x33688e;io['to'](util[_0x01a4('0x17')]('whatsapp:queue:%s',_0x2aa2d5[_0x01a4('0x7')]))[_0x01a4('0x18')]('whatsapp_queue:save',_0x2aa2d5);}};module['exports']=WhatsappQueue;
\ No newline at end of file
+var _0x4f8f=['whatsappPause','available','stringify','whatsapp:queue:%s','emit','whatsapp_queue:save','lodash','md5','ioredis','../../../config/environment','redis','localhost','name','timeout','strategy','beepall','Agents','mapAgentsId','waiting','updateRouting','updateRealtime','_rr','prototype','loggedIn','paused','length','online'];(function(_0x314bc7,_0x2ce061){var _0x54bae=function(_0x3a36d9){while(--_0x3a36d9){_0x314bc7['push'](_0x314bc7['shift']());}};_0x54bae(++_0x2ce061);}(_0x4f8f,0x8d));var _0xf4f8=function(_0x2bd1ac,_0x113d5f){_0x2bd1ac=_0x2bd1ac-0x0;var _0x216cf2=_0x4f8f[_0x2bd1ac];return _0x216cf2;};'use strict';var _=require(_0xf4f8('0x0'));var md5=require(_0xf4f8('0x1'));var util=require('util');var Redis=require(_0xf4f8('0x2'));var config=require(_0xf4f8('0x3'));config[_0xf4f8('0x4')]=_['defaults'](config[_0xf4f8('0x4')],{'host':_0xf4f8('0x5'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0xf4f8('0x4')]));function WhatsappQueue(_0x3a9051){this['id']=_0x3a9051['id']||0x0;this[_0xf4f8('0x6')]=_0x3a9051[_0xf4f8('0x6')]||'';this[_0xf4f8('0x7')]=_0x3a9051[_0xf4f8('0x7')]||0xa;this[_0xf4f8('0x8')]=_0x3a9051[_0xf4f8('0x8')]||_0xf4f8('0x9');this[_0xf4f8('0xa')]=_0x3a9051[_0xf4f8('0xa')];this[_0xf4f8('0xb')]={};this[_0xf4f8('0xc')]=0x0;this[_0xf4f8('0x1')]='';this[_0xf4f8('0xd')]();this[_0xf4f8('0xe')]();}WhatsappQueue['prototype'][_0xf4f8('0xd')]=function(){var _0x2d8e9f=this['mapAgentsId'][_0xf4f8('0xf')];this[_0xf4f8('0xb')]=_['map'](this[_0xf4f8('0xa')],'id');this[_0xf4f8('0xb')][_0xf4f8('0xf')]=_0x2d8e9f;};WhatsappQueue[_0xf4f8('0x10')][_0xf4f8('0xe')]=function(){this[_0xf4f8('0x11')]=0x0;this[_0xf4f8('0x12')]=0x0;for(var _0x389d88=0x0;_0x389d88<this[_0xf4f8('0xa')][_0xf4f8('0x13')];_0x389d88+=0x1){if(this['Agents'][_0x389d88][_0xf4f8('0x14')]){this[_0xf4f8('0x11')]+=0x1;}if(this['Agents'][_0x389d88][_0xf4f8('0x15')]){this[_0xf4f8('0x12')]+=0x1;}}this[_0xf4f8('0x16')]=this['loggedIn']-this[_0xf4f8('0x12')];this[_0xf4f8('0x16')]=this['available']>=0x0?this[_0xf4f8('0x16')]:0x0;var _0x3028fc={'id':this['id'],'available':this[_0xf4f8('0x16')],'loggedIn':this[_0xf4f8('0x11')],'name':this[_0xf4f8('0x6')],'paused':this[_0xf4f8('0x12')],'waiting':this[_0xf4f8('0xc')]};var _0x1c0b2f=md5(JSON[_0xf4f8('0x17')](_0x3028fc));if(this[_0xf4f8('0x1')]!==_0x1c0b2f){this[_0xf4f8('0x1')]=_0x1c0b2f;io['to'](util['format'](_0xf4f8('0x18'),_0x3028fc[_0xf4f8('0x6')]))[_0xf4f8('0x19')](_0xf4f8('0x1a'),_0x3028fc);}};module['exports']=WhatsappQueue;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['isUndefined','initIntervals','updateRealtime','updateRouting','initSmsQueues','smsQueues','initMailQueues','mailQueues','initWhatsappQueues','whatsappQueues','exports','bluebird','util','lodash','../model/interval','../model/chatQueue','../model/smsQueue','../model/mailQueue','../model/faxQueue','../model/whatsappQueue','intervals','openchannelQueues','chatQueues','faxQueues','mailQueuesWaitingInteractions','openchannelQueuesWaitingInteractions','smsQueuesWaitingInteractions','faxQueuesWaitingInteractions','whatsappQueuesWaitingInteractions','hasOwnProperty','prototype','mergeFromDatabase','initAgents','agents','length'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xa9e0,0x123));var _0x0a9e=function(_0x4c7fb5,_0x2548ef){_0x4c7fb5=_0x4c7fb5-0x0;var _0x2e10ac=_0xa9e0[_0x4c7fb5];return _0x2e10ac;};'use strict';var BPromise=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var _=require(_0x0a9e('0x2'));var moment=require('moment');var Agent=require('../model/agent');var Interval=require(_0x0a9e('0x3'));var OpenchannelQueue=require('../model/openchannelQueue');var ChatQueue=require(_0x0a9e('0x4'));var SmsQueue=require(_0x0a9e('0x5'));var MailQueue=require(_0x0a9e('0x6'));var FaxQueue=require(_0x0a9e('0x7'));var WhatsappQueue=require(_0x0a9e('0x8'));var Realtime=function(){this['agents']={};this[_0x0a9e('0x9')]={};this[_0x0a9e('0xa')]={};this[_0x0a9e('0xb')]={};this['smsQueues']={};this['mailQueues']={};this[_0x0a9e('0xc')]={};this['whatsappQueues']={};this['chatQueuesWaitingInteractions']={};this[_0x0a9e('0xd')]={};this[_0x0a9e('0xe')]={};this[_0x0a9e('0xf')]={};this[_0x0a9e('0x10')]={};this[_0x0a9e('0x11')]={};};function freeIsNotKey(_0xbd1168,_0x4a4c56,_0x50dfb2){var _0x527cdd=_['mapKeys'](_0xbd1168,function(_0x273d4d,_0x36471c){return _0x273d4d[_0x50dfb2];});for(var _0xd5b662 in _0x4a4c56){if(_0x4a4c56[_0x0a9e('0x12')](_0xd5b662)){if(!_0x527cdd[_0xd5b662]){delete _0x4a4c56[_0xd5b662];}}}}Realtime[_0x0a9e('0x13')][_0x0a9e('0x14')]=function(_0x5db4b0,_0x4283ce){for(var _0x239b12 in _0x4283ce){if(_0x5db4b0[_0x0a9e('0x12')](_0x239b12)){_0x5db4b0[_0x239b12]=_0x4283ce[_0x239b12];}}};Realtime[_0x0a9e('0x13')][_0x0a9e('0x15')]=function(){var _0x4d5611=this;return function(_0x52a03d){if(_0x52a03d){freeIsNotKey(_0x52a03d,_0x4d5611[_0x0a9e('0x16')],'id');for(var _0x5d0880=0x0,_0x1985b6={},_0x519dfd={};_0x5d0880<_0x52a03d[_0x0a9e('0x17')];_0x5d0880+=0x1){_0x1985b6=_0x52a03d[_0x5d0880];if(_[_0x0a9e('0x18')](_0x4d5611['agents'][_0x1985b6['id']])){_0x4d5611[_0x0a9e('0x16')][_0x1985b6['id']]=new Agent(_0x1985b6);}else{_0x4d5611['mergeFromDatabase'](_0x4d5611[_0x0a9e('0x16')][_0x1985b6['id']],_0x1985b6);}}}return _0x4d5611[_0x0a9e('0x16')];};};Realtime[_0x0a9e('0x13')][_0x0a9e('0x19')]=function(){var _0x31b1ca=this;return function(_0x2eb11f){if(_0x2eb11f){freeIsNotKey(_0x2eb11f,_0x31b1ca[_0x0a9e('0x9')],'id');for(var _0x20559e=0x0,_0x1314ae={},_0x112016={};_0x20559e<_0x2eb11f[_0x0a9e('0x17')];_0x20559e+=0x1){_0x1314ae=_0x2eb11f[_0x20559e];if(_[_0x0a9e('0x18')](_0x31b1ca['intervals'][_0x1314ae['id']])){_0x31b1ca[_0x0a9e('0x9')][_0x1314ae['id']]=new Interval(_0x1314ae);}else{_0x31b1ca[_0x0a9e('0x14')](_0x31b1ca['intervals'][_0x1314ae['id']],_0x1314ae);}}}return _0x31b1ca[_0x0a9e('0x9')];};};Realtime['prototype']['initOpenchannelQueues']=function(){var _0x3a02e1=this;return function(_0x432e56){if(_0x432e56){freeIsNotKey(_0x432e56,_0x3a02e1[_0x0a9e('0xa')],'id');for(var _0x30bae6=0x0,_0x4abc77={},_0xfb6e48={};_0x30bae6<_0x432e56[_0x0a9e('0x17')];_0x30bae6+=0x1){_0x4abc77=_0x432e56[_0x30bae6];if(_[_0x0a9e('0x18')](_0x3a02e1[_0x0a9e('0xa')][_0x4abc77['id']])){_0x3a02e1[_0x0a9e('0xa')][_0x4abc77['id']]=new OpenchannelQueue(_0x4abc77);}else{_0x3a02e1[_0x0a9e('0x14')](_0x3a02e1[_0x0a9e('0xa')][_0x4abc77['id']],_0x4abc77);}_0x3a02e1['openchannelQueues'][_0x4abc77['id']]['updateRouting']();_0x3a02e1[_0x0a9e('0xa')][_0x4abc77['id']][_0x0a9e('0x1a')]();}}return _0x3a02e1[_0x0a9e('0xa')];};};Realtime[_0x0a9e('0x13')]['initChatQueues']=function(){var _0x384319=this;return function(_0x479bc4){if(_0x479bc4){freeIsNotKey(_0x479bc4,_0x384319[_0x0a9e('0xb')],'id');for(var _0x5bfb33=0x0,_0x1dc186={},_0x34dc65={};_0x5bfb33<_0x479bc4[_0x0a9e('0x17')];_0x5bfb33+=0x1){_0x1dc186=_0x479bc4[_0x5bfb33];if(_[_0x0a9e('0x18')](_0x384319[_0x0a9e('0xb')][_0x1dc186['id']])){_0x384319[_0x0a9e('0xb')][_0x1dc186['id']]=new ChatQueue(_0x1dc186);}else{_0x384319[_0x0a9e('0x14')](_0x384319[_0x0a9e('0xb')][_0x1dc186['id']],_0x1dc186);}_0x384319['chatQueues'][_0x1dc186['id']][_0x0a9e('0x1b')]();_0x384319[_0x0a9e('0xb')][_0x1dc186['id']][_0x0a9e('0x1a')]();}}return _0x384319[_0x0a9e('0xb')];};};Realtime['prototype'][_0x0a9e('0x1c')]=function(){var _0x40e7a3=this;return function(_0x1843b2){if(_0x1843b2){freeIsNotKey(_0x1843b2,_0x40e7a3[_0x0a9e('0x1d')],'id');for(var _0x58b06f=0x0,_0x563b45={},_0x296f41={};_0x58b06f<_0x1843b2[_0x0a9e('0x17')];_0x58b06f+=0x1){_0x563b45=_0x1843b2[_0x58b06f];if(_[_0x0a9e('0x18')](_0x40e7a3['smsQueues'][_0x563b45['id']])){_0x40e7a3[_0x0a9e('0x1d')][_0x563b45['id']]=new SmsQueue(_0x563b45);}else{_0x40e7a3['mergeFromDatabase'](_0x40e7a3[_0x0a9e('0x1d')][_0x563b45['id']],_0x563b45);}_0x40e7a3[_0x0a9e('0x1d')][_0x563b45['id']][_0x0a9e('0x1b')]();_0x40e7a3[_0x0a9e('0x1d')][_0x563b45['id']][_0x0a9e('0x1a')]();}}return _0x40e7a3['smsQueues'];};};Realtime[_0x0a9e('0x13')][_0x0a9e('0x1e')]=function(){var _0x40cb85=this;return function(_0x2da5c0){if(_0x2da5c0){freeIsNotKey(_0x2da5c0,_0x40cb85[_0x0a9e('0x1f')],'id');for(var _0x409319=0x0,_0x332d35={},_0x39e565={};_0x409319<_0x2da5c0['length'];_0x409319+=0x1){_0x332d35=_0x2da5c0[_0x409319];if(_[_0x0a9e('0x18')](_0x40cb85['mailQueues'][_0x332d35['id']])){_0x40cb85[_0x0a9e('0x1f')][_0x332d35['id']]=new MailQueue(_0x332d35);}else{_0x40cb85[_0x0a9e('0x14')](_0x40cb85[_0x0a9e('0x1f')][_0x332d35['id']],_0x332d35);}_0x40cb85[_0x0a9e('0x1f')][_0x332d35['id']]['updateRouting']();_0x40cb85[_0x0a9e('0x1f')][_0x332d35['id']][_0x0a9e('0x1a')]();}}return _0x40cb85[_0x0a9e('0x1f')];};};Realtime[_0x0a9e('0x13')]['initFaxQueues']=function(){var _0x54135e=this;return function(_0x1e8694){if(_0x1e8694){freeIsNotKey(_0x1e8694,_0x54135e['faxQueues'],'id');for(var _0x24936a=0x0,_0x3d9717={},_0x381c37={};_0x24936a<_0x1e8694[_0x0a9e('0x17')];_0x24936a+=0x1){_0x3d9717=_0x1e8694[_0x24936a];if(_['isUndefined'](_0x54135e[_0x0a9e('0xc')][_0x3d9717['id']])){_0x54135e[_0x0a9e('0xc')][_0x3d9717['id']]=new FaxQueue(_0x3d9717);}else{_0x54135e[_0x0a9e('0x14')](_0x54135e['faxQueues'][_0x3d9717['id']],_0x3d9717);}_0x54135e[_0x0a9e('0xc')][_0x3d9717['id']][_0x0a9e('0x1b')]();_0x54135e[_0x0a9e('0xc')][_0x3d9717['id']]['updateRealtime']();}}return _0x54135e['faxQueues'];};};Realtime[_0x0a9e('0x13')][_0x0a9e('0x20')]=function(){var _0x5adda1=this;return function(_0x2b814e){if(_0x2b814e){freeIsNotKey(_0x2b814e,_0x5adda1[_0x0a9e('0x21')],'id');for(var _0x2e1b3a=0x0,_0x148f55={},_0x4b38d9={};_0x2e1b3a<_0x2b814e['length'];_0x2e1b3a+=0x1){_0x148f55=_0x2b814e[_0x2e1b3a];if(_[_0x0a9e('0x18')](_0x5adda1[_0x0a9e('0x21')][_0x148f55['id']])){_0x5adda1['whatsappQueues'][_0x148f55['id']]=new WhatsappQueue(_0x148f55);}else{_0x5adda1[_0x0a9e('0x14')](_0x5adda1[_0x0a9e('0x21')][_0x148f55['id']],_0x148f55);}_0x5adda1[_0x0a9e('0x21')][_0x148f55['id']]['updateRouting']();_0x5adda1[_0x0a9e('0x21')][_0x148f55['id']][_0x0a9e('0x1a')]();}}return _0x5adda1[_0x0a9e('0x21')];};};module[_0x0a9e('0x22')]=Realtime;
\ No newline at end of file
+var _0xb10b=['faxQueues','whatsappQueues','chatQueuesWaitingInteractions','mailQueuesWaitingInteractions','openchannelQueuesWaitingInteractions','smsQueuesWaitingInteractions','mapKeys','hasOwnProperty','prototype','mergeFromDatabase','initAgents','agents','isUndefined','initIntervals','length','initOpenchannelQueues','updateRealtime','initChatQueues','chatQueues','initSmsQueues','updateRouting','initMailQueues','initFaxQueues','initWhatsappQueues','exports','bluebird','lodash','moment','../model/agent','../model/openchannelQueue','../model/chatQueue','../model/smsQueue','../model/mailQueue','../model/faxQueue','../model/whatsappQueue','intervals','openchannelQueues','smsQueues','mailQueues'];(function(_0x25f105,_0x5c17c1){var _0x7e4d4=function(_0x2fa21b){while(--_0x2fa21b){_0x25f105['push'](_0x25f105['shift']());}};_0x7e4d4(++_0x5c17c1);}(_0xb10b,0x12a));var _0xbb10=function(_0x21ba22,_0x38908f){_0x21ba22=_0x21ba22-0x0;var _0x997b34=_0xb10b[_0x21ba22];return _0x997b34;};'use strict';var BPromise=require(_0xbb10('0x0'));var util=require('util');var _=require(_0xbb10('0x1'));var moment=require(_0xbb10('0x2'));var Agent=require(_0xbb10('0x3'));var Interval=require('../model/interval');var OpenchannelQueue=require(_0xbb10('0x4'));var ChatQueue=require(_0xbb10('0x5'));var SmsQueue=require(_0xbb10('0x6'));var MailQueue=require(_0xbb10('0x7'));var FaxQueue=require(_0xbb10('0x8'));var WhatsappQueue=require(_0xbb10('0x9'));var Realtime=function(){this['agents']={};this[_0xbb10('0xa')]={};this[_0xbb10('0xb')]={};this['chatQueues']={};this[_0xbb10('0xc')]={};this[_0xbb10('0xd')]={};this[_0xbb10('0xe')]={};this[_0xbb10('0xf')]={};this[_0xbb10('0x10')]={};this[_0xbb10('0x11')]={};this[_0xbb10('0x12')]={};this[_0xbb10('0x13')]={};this['faxQueuesWaitingInteractions']={};this['whatsappQueuesWaitingInteractions']={};};function freeIsNotKey(_0x20bd61,_0x118a74,_0xce64f3){var _0x5e136d=_[_0xbb10('0x14')](_0x20bd61,function(_0x5be7e0,_0x44fb19){return _0x5be7e0[_0xce64f3];});for(var _0x916a32 in _0x118a74){if(_0x118a74[_0xbb10('0x15')](_0x916a32)){if(!_0x5e136d[_0x916a32]){delete _0x118a74[_0x916a32];}}}}Realtime[_0xbb10('0x16')][_0xbb10('0x17')]=function(_0x147230,_0x58a612){for(var _0x26e021 in _0x58a612){if(_0x147230[_0xbb10('0x15')](_0x26e021)){_0x147230[_0x26e021]=_0x58a612[_0x26e021];}}};Realtime[_0xbb10('0x16')][_0xbb10('0x18')]=function(){var _0x3df17b=this;return function(_0x2f2ebf){if(_0x2f2ebf){freeIsNotKey(_0x2f2ebf,_0x3df17b[_0xbb10('0x19')],'id');for(var _0x36b5e8=0x0,_0x3e26f4={},_0x2b184e={};_0x36b5e8<_0x2f2ebf['length'];_0x36b5e8+=0x1){_0x3e26f4=_0x2f2ebf[_0x36b5e8];if(_[_0xbb10('0x1a')](_0x3df17b[_0xbb10('0x19')][_0x3e26f4['id']])){_0x3df17b[_0xbb10('0x19')][_0x3e26f4['id']]=new Agent(_0x3e26f4);}else{_0x3df17b[_0xbb10('0x17')](_0x3df17b[_0xbb10('0x19')][_0x3e26f4['id']],_0x3e26f4);}}}return _0x3df17b[_0xbb10('0x19')];};};Realtime[_0xbb10('0x16')][_0xbb10('0x1b')]=function(){var _0xbf2906=this;return function(_0xe1c665){if(_0xe1c665){freeIsNotKey(_0xe1c665,_0xbf2906['intervals'],'id');for(var _0x5ff0cf=0x0,_0x19f48d={},_0x388fab={};_0x5ff0cf<_0xe1c665[_0xbb10('0x1c')];_0x5ff0cf+=0x1){_0x19f48d=_0xe1c665[_0x5ff0cf];if(_[_0xbb10('0x1a')](_0xbf2906[_0xbb10('0xa')][_0x19f48d['id']])){_0xbf2906['intervals'][_0x19f48d['id']]=new Interval(_0x19f48d);}else{_0xbf2906[_0xbb10('0x17')](_0xbf2906[_0xbb10('0xa')][_0x19f48d['id']],_0x19f48d);}}}return _0xbf2906['intervals'];};};Realtime['prototype'][_0xbb10('0x1d')]=function(){var _0x311abe=this;return function(_0x2e911d){if(_0x2e911d){freeIsNotKey(_0x2e911d,_0x311abe[_0xbb10('0xb')],'id');for(var _0x445761=0x0,_0x1824b7={},_0x407cb4={};_0x445761<_0x2e911d[_0xbb10('0x1c')];_0x445761+=0x1){_0x1824b7=_0x2e911d[_0x445761];if(_[_0xbb10('0x1a')](_0x311abe[_0xbb10('0xb')][_0x1824b7['id']])){_0x311abe[_0xbb10('0xb')][_0x1824b7['id']]=new OpenchannelQueue(_0x1824b7);}else{_0x311abe[_0xbb10('0x17')](_0x311abe['openchannelQueues'][_0x1824b7['id']],_0x1824b7);}_0x311abe['openchannelQueues'][_0x1824b7['id']]['updateRouting']();_0x311abe[_0xbb10('0xb')][_0x1824b7['id']][_0xbb10('0x1e')]();}}return _0x311abe[_0xbb10('0xb')];};};Realtime['prototype'][_0xbb10('0x1f')]=function(){var _0x24d586=this;return function(_0x6ed43b){if(_0x6ed43b){freeIsNotKey(_0x6ed43b,_0x24d586[_0xbb10('0x20')],'id');for(var _0x1acce9=0x0,_0x20d946={},_0x2a0e8b={};_0x1acce9<_0x6ed43b['length'];_0x1acce9+=0x1){_0x20d946=_0x6ed43b[_0x1acce9];if(_[_0xbb10('0x1a')](_0x24d586[_0xbb10('0x20')][_0x20d946['id']])){_0x24d586[_0xbb10('0x20')][_0x20d946['id']]=new ChatQueue(_0x20d946);}else{_0x24d586[_0xbb10('0x17')](_0x24d586[_0xbb10('0x20')][_0x20d946['id']],_0x20d946);}_0x24d586[_0xbb10('0x20')][_0x20d946['id']]['updateRouting']();_0x24d586[_0xbb10('0x20')][_0x20d946['id']]['updateRealtime']();}}return _0x24d586[_0xbb10('0x20')];};};Realtime['prototype'][_0xbb10('0x21')]=function(){var _0x1dcc9c=this;return function(_0x1b59f9){if(_0x1b59f9){freeIsNotKey(_0x1b59f9,_0x1dcc9c['smsQueues'],'id');for(var _0x518d47=0x0,_0x4c3744={},_0x34f65e={};_0x518d47<_0x1b59f9['length'];_0x518d47+=0x1){_0x4c3744=_0x1b59f9[_0x518d47];if(_[_0xbb10('0x1a')](_0x1dcc9c[_0xbb10('0xc')][_0x4c3744['id']])){_0x1dcc9c[_0xbb10('0xc')][_0x4c3744['id']]=new SmsQueue(_0x4c3744);}else{_0x1dcc9c[_0xbb10('0x17')](_0x1dcc9c[_0xbb10('0xc')][_0x4c3744['id']],_0x4c3744);}_0x1dcc9c[_0xbb10('0xc')][_0x4c3744['id']][_0xbb10('0x22')]();_0x1dcc9c['smsQueues'][_0x4c3744['id']][_0xbb10('0x1e')]();}}return _0x1dcc9c[_0xbb10('0xc')];};};Realtime[_0xbb10('0x16')][_0xbb10('0x23')]=function(){var _0xfb2c5e=this;return function(_0x9de708){if(_0x9de708){freeIsNotKey(_0x9de708,_0xfb2c5e[_0xbb10('0xd')],'id');for(var _0x10202c=0x0,_0x3c8d7d={},_0x56943c={};_0x10202c<_0x9de708[_0xbb10('0x1c')];_0x10202c+=0x1){_0x3c8d7d=_0x9de708[_0x10202c];if(_[_0xbb10('0x1a')](_0xfb2c5e[_0xbb10('0xd')][_0x3c8d7d['id']])){_0xfb2c5e[_0xbb10('0xd')][_0x3c8d7d['id']]=new MailQueue(_0x3c8d7d);}else{_0xfb2c5e['mergeFromDatabase'](_0xfb2c5e[_0xbb10('0xd')][_0x3c8d7d['id']],_0x3c8d7d);}_0xfb2c5e['mailQueues'][_0x3c8d7d['id']]['updateRouting']();_0xfb2c5e[_0xbb10('0xd')][_0x3c8d7d['id']][_0xbb10('0x1e')]();}}return _0xfb2c5e[_0xbb10('0xd')];};};Realtime[_0xbb10('0x16')][_0xbb10('0x24')]=function(){var _0x29d11a=this;return function(_0x547062){if(_0x547062){freeIsNotKey(_0x547062,_0x29d11a[_0xbb10('0xe')],'id');for(var _0x25d72f=0x0,_0x52de31={},_0x5e3fbd={};_0x25d72f<_0x547062['length'];_0x25d72f+=0x1){_0x52de31=_0x547062[_0x25d72f];if(_[_0xbb10('0x1a')](_0x29d11a[_0xbb10('0xe')][_0x52de31['id']])){_0x29d11a[_0xbb10('0xe')][_0x52de31['id']]=new FaxQueue(_0x52de31);}else{_0x29d11a['mergeFromDatabase'](_0x29d11a[_0xbb10('0xe')][_0x52de31['id']],_0x52de31);}_0x29d11a[_0xbb10('0xe')][_0x52de31['id']][_0xbb10('0x22')]();_0x29d11a['faxQueues'][_0x52de31['id']][_0xbb10('0x1e')]();}}return _0x29d11a[_0xbb10('0xe')];};};Realtime[_0xbb10('0x16')][_0xbb10('0x25')]=function(){var _0x4f1cdd=this;return function(_0xd238e9){if(_0xd238e9){freeIsNotKey(_0xd238e9,_0x4f1cdd[_0xbb10('0xf')],'id');for(var _0x5835fd=0x0,_0xe2040f={},_0x2e3214={};_0x5835fd<_0xd238e9[_0xbb10('0x1c')];_0x5835fd+=0x1){_0xe2040f=_0xd238e9[_0x5835fd];if(_[_0xbb10('0x1a')](_0x4f1cdd[_0xbb10('0xf')][_0xe2040f['id']])){_0x4f1cdd[_0xbb10('0xf')][_0xe2040f['id']]=new WhatsappQueue(_0xe2040f);}else{_0x4f1cdd['mergeFromDatabase'](_0x4f1cdd[_0xbb10('0xf')][_0xe2040f['id']],_0xe2040f);}_0x4f1cdd[_0xbb10('0xf')][_0xe2040f['id']][_0xbb10('0x22')]();_0x4f1cdd[_0xbb10('0xf')][_0xe2040f['id']]['updateRealtime']();}}return _0x4f1cdd[_0xbb10('0xf')];};};module[_0xbb10('0x26')]=Realtime;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaf0b=['addTags','update','Request','UpdateChatInteraction','updateChatInteraction'];(function(_0x2f5ac5,_0x1ee939){var _0x37c9a8=function(_0x15031f){while(--_0x15031f){_0x2f5ac5['push'](_0x2f5ac5['shift']());}};_0x37c9a8(++_0x1ee939);}(_0xaf0b,0x150));var _0xbaf0=function(_0xde9436,_0x519363){_0xde9436=_0xde9436-0x0;var _0x2b82db=_0xaf0b[_0xde9436];return _0x2b82db;};'use strict';var client=require('../client');exports[_0xbaf0('0x0')]=function(_0x571f40,_0x4f46c2){return client[_0xbaf0('0x1')](_0xbaf0('0x2'),{'body':_0x4f46c2,'options':{'where':{'id':_0x571f40}},'log':_0xbaf0('0x3')});};exports[_0xbaf0('0x4')]=function(_0x528908,_0x49a65a){return client[_0xbaf0('0x1')]('AddTagsToChatInteraction',{'body':_0x49a65a,'options':{'where':{'id':_0x528908}},'log':'addTagsToChatInteraction'});};
\ No newline at end of file
+var _0xe61c=['AddTagsToChatInteraction','addTagsToChatInteraction','../client','update','Request','UpdateChatInteraction','updateChatInteraction','addTags'];(function(_0x2cacef,_0xba1573){var _0x289ba6=function(_0x4ac8b9){while(--_0x4ac8b9){_0x2cacef['push'](_0x2cacef['shift']());}};_0x289ba6(++_0xba1573);}(_0xe61c,0x1da));var _0xce61=function(_0x4c9380,_0x2fefc0){_0x4c9380=_0x4c9380-0x0;var _0x49a523=_0xe61c[_0x4c9380];return _0x49a523;};'use strict';var client=require(_0xce61('0x0'));exports[_0xce61('0x1')]=function(_0x4163ce,_0x11c390){return client[_0xce61('0x2')](_0xce61('0x3'),{'body':_0x11c390,'options':{'where':{'id':_0x4163ce}},'log':_0xce61('0x4')});};exports[_0xce61('0x5')]=function(_0xd39b6,_0x191456){return client[_0xce61('0x2')](_0xce61('0x6'),{'body':_0x191456,'options':{'where':{'id':_0xd39b6}},'log':_0xce61('0x7')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x48c1=['createChatMessage','../client','Request'];(function(_0x2e1ca2,_0x150397){var _0x60bc65=function(_0x12de2d){while(--_0x12de2d){_0x2e1ca2['push'](_0x2e1ca2['shift']());}};_0x60bc65(++_0x150397);}(_0x48c1,0x184));var _0x148c=function(_0x20b29c,_0xe22528){_0x20b29c=_0x20b29c-0x0;var _0x20d81b=_0x48c1[_0x20b29c];return _0x20d81b;};'use strict';var client=require(_0x148c('0x0'));exports['create']=function(_0x9fe1a8){return client[_0x148c('0x1')]('CreateChatMessage',{'body':_0x9fe1a8,'log':_0x148c('0x2')});};
\ No newline at end of file
+var _0xf569=['create','Request','CreateChatMessage','createChatMessage','../client'];(function(_0x15394b,_0x31580f){var _0x20cd98=function(_0x525e0c){while(--_0x525e0c){_0x15394b['push'](_0x15394b['shift']());}};_0x20cd98(++_0x31580f);}(_0xf569,0xf9));var _0x9f56=function(_0x3511d3,_0x4107ae){_0x3511d3=_0x3511d3-0x0;var _0x5d6321=_0xf569[_0x3511d3];return _0x5d6321;};'use strict';var client=require(_0x9f56('0x0'));exports[_0x9f56('0x1')]=function(_0x27e481){return client[_0x9f56('0x2')](_0x9f56('0x3'),{'body':_0x27e481,'log':_0x9f56('0x4')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x39d9=['User','online','chatPause','../client','getChatQueues','Request','GetChatQueue','name','timeout','strategy'];(function(_0x3f954d,_0x451d43){var _0x176617=function(_0x304fa4){while(--_0x304fa4){_0x3f954d['push'](_0x3f954d['shift']());}};_0x176617(++_0x451d43);}(_0x39d9,0x17f));var _0x939d=function(_0x3b9219,_0x5805f8){_0x3b9219=_0x3b9219-0x0;var _0x310bb9=_0x39d9[_0x3b9219];return _0x310bb9;};'use strict';var client=require(_0x939d('0x0'));exports[_0x939d('0x1')]=function(){return function(){return client[_0x939d('0x2')](_0x939d('0x3'),{'options':{'raw':![],'attributes':['id',_0x939d('0x4'),_0x939d('0x5'),_0x939d('0x6')],'include':[{'model':_0x939d('0x7'),'as':'Agents','attributes':['id',_0x939d('0x4'),_0x939d('0x8'),_0x939d('0x9')]}]},'log':'getChatQueues'});};};
\ No newline at end of file
+var _0xe107=['name','strategy','online','chatPause','../client','Request','GetChatQueue'];(function(_0x2c0ee2,_0x49875c){var _0x28012f=function(_0x23cb8f){while(--_0x23cb8f){_0x2c0ee2['push'](_0x2c0ee2['shift']());}};_0x28012f(++_0x49875c);}(_0xe107,0xb3));var _0x7e10=function(_0x59279,_0x315002){_0x59279=_0x59279-0x0;var _0xbefc2=_0xe107[_0x59279];return _0xbefc2;};'use strict';var client=require(_0x7e10('0x0'));exports['getChatQueues']=function(){return function(){return client[_0x7e10('0x1')](_0x7e10('0x2'),{'options':{'raw':![],'attributes':['id',_0x7e10('0x3'),'timeout',_0x7e10('0x4')],'include':[{'model':'User','as':'Agents','attributes':['id',_0x7e10('0x3'),_0x7e10('0x5'),_0x7e10('0x6')]}]},'log':'getChatQueues'});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5640=['update','UpdateChatQueueReport','DESC','../client','Request','CreateChatQueueReport'];(function(_0x2b03a4,_0x165f9d){var _0x5f18ec=function(_0x3f7730){while(--_0x3f7730){_0x2b03a4['push'](_0x2b03a4['shift']());}};_0x5f18ec(++_0x165f9d);}(_0x5640,0x111));var _0x0564=function(_0xa464c9,_0x7c86d8){_0xa464c9=_0xa464c9-0x0;var _0x3d73c4=_0x5640[_0xa464c9];return _0x3d73c4;};'use strict';var client=require(_0x0564('0x0'));exports['create']=function(_0xaefcb6){return client[_0x0564('0x1')](_0x0564('0x2'),{'body':_0xaefcb6,'log':_0x0564('0x2')});};exports[_0x0564('0x3')]=function(_0x10487f,_0x1cbb9d){return client[_0x0564('0x1')](_0x0564('0x4'),{'body':_0x1cbb9d,'options':{'where':{'uniqueid':_0x10487f},'order':[['id',_0x0564('0x5')]],'limit':0x1},'log':_0x0564('0x4')});};
\ No newline at end of file
+var _0x9c44=['Request','CreateChatQueueReport','update','UpdateChatQueueReport'];(function(_0x54fa04,_0x2021fb){var _0x5bb087=function(_0x1e6f22){while(--_0x1e6f22){_0x54fa04['push'](_0x54fa04['shift']());}};_0x5bb087(++_0x2021fb);}(_0x9c44,0x178));var _0x49c4=function(_0x2e4aa2,_0x11956a){_0x2e4aa2=_0x2e4aa2-0x0;var _0x5e6092=_0x9c44[_0x2e4aa2];return _0x5e6092;};'use strict';var client=require('../client');exports['create']=function(_0x1ffbbf){return client[_0x49c4('0x0')](_0x49c4('0x1'),{'body':_0x1ffbbf,'log':_0x49c4('0x1')});};exports[_0x49c4('0x2')]=function(_0x2ad237,_0x4e0313){return client['Request'](_0x49c4('0x3'),{'body':_0x4e0313,'options':{'where':{'uniqueid':_0x2ad237},'order':[['id','DESC']],'limit':0x1},'log':_0x49c4('0x3')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9957=['Request','AddTagsToFaxInteraction','addTagsToFaxInteraction','../client','update','UpdateFaxInteraction','updateFaxInteraction','addTags'];(function(_0x49a3e2,_0x419808){var _0x287ac2=function(_0x2c51d6){while(--_0x2c51d6){_0x49a3e2['push'](_0x49a3e2['shift']());}};_0x287ac2(++_0x419808);}(_0x9957,0x93));var _0x7995=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x9957[_0x14add3];return _0x4a174f;};'use strict';var client=require(_0x7995('0x0'));exports[_0x7995('0x1')]=function(_0x2722a3,_0x10a05d){return client['Request'](_0x7995('0x2'),{'body':_0x10a05d,'options':{'where':{'id':_0x2722a3}},'log':_0x7995('0x3')});};exports[_0x7995('0x4')]=function(_0x462a03,_0x576d89){return client[_0x7995('0x5')](_0x7995('0x6'),{'body':_0x576d89,'options':{'where':{'id':_0x462a03}},'log':_0x7995('0x7')});};
\ No newline at end of file
+var _0x7a54=['Request','UpdateFaxInteraction','addTags','AddTagsToFaxInteraction','../client','update'];(function(_0x65d12e,_0x4b0a30){var _0x4274e0=function(_0x121624){while(--_0x121624){_0x65d12e['push'](_0x65d12e['shift']());}};_0x4274e0(++_0x4b0a30);}(_0x7a54,0x106));var _0x47a5=function(_0x1234fb,_0x418de8){_0x1234fb=_0x1234fb-0x0;var _0x27e19c=_0x7a54[_0x1234fb];return _0x27e19c;};'use strict';var client=require(_0x47a5('0x0'));exports[_0x47a5('0x1')]=function(_0x44b31e,_0x58157c){return client[_0x47a5('0x2')](_0x47a5('0x3'),{'body':_0x58157c,'options':{'where':{'id':_0x44b31e}},'log':'updateFaxInteraction'});};exports[_0x47a5('0x4')]=function(_0x11bf85,_0x2a1a7e){return client[_0x47a5('0x2')](_0x47a5('0x5'),{'body':_0x2a1a7e,'options':{'where':{'id':_0x11bf85}},'log':'addTagsToFaxInteraction'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa7e7=['Request','createFaxMessage','../client'];(function(_0x1304c6,_0x6bb485){var _0x2e6654=function(_0x2b623c){while(--_0x2b623c){_0x1304c6['push'](_0x1304c6['shift']());}};_0x2e6654(++_0x6bb485);}(_0xa7e7,0x1a9));var _0x7a7e=function(_0x258d02,_0x43d710){_0x258d02=_0x258d02-0x0;var _0x3022ba=_0xa7e7[_0x258d02];return _0x3022ba;};'use strict';var client=require(_0x7a7e('0x0'));exports['create']=function(_0x1fc691){return client[_0x7a7e('0x1')]('CreateFaxMessage',{'body':_0x1fc691,'log':_0x7a7e('0x2')});};
\ No newline at end of file
+var _0xb7e7=['create','Request','CreateFaxMessage','createFaxMessage'];(function(_0x47e7cb,_0x4c1b8d){var _0x2a8874=function(_0x36498f){while(--_0x36498f){_0x47e7cb['push'](_0x47e7cb['shift']());}};_0x2a8874(++_0x4c1b8d);}(_0xb7e7,0x1dc));var _0x7b7e=function(_0x2b4411,_0x2625ed){_0x2b4411=_0x2b4411-0x0;var _0x8e41ef=_0xb7e7[_0x2b4411];return _0x8e41ef;};'use strict';var client=require('../client');exports[_0x7b7e('0x0')]=function(_0x2839b3){return client[_0x7b7e('0x1')](_0x7b7e('0x2'),{'body':_0x2839b3,'log':_0x7b7e('0x3')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6770=['strategy','User','Agents','online','faxPause','../client','getFaxQueues','GetFaxQueue','name','timeout'];(function(_0x433c37,_0x4b1371){var _0x108807=function(_0x2022b0){while(--_0x2022b0){_0x433c37['push'](_0x433c37['shift']());}};_0x108807(++_0x4b1371);}(_0x6770,0xb9));var _0x0677=function(_0x1df5eb,_0x473088){_0x1df5eb=_0x1df5eb-0x0;var _0x506f9e=_0x6770[_0x1df5eb];return _0x506f9e;};'use strict';var client=require(_0x0677('0x0'));exports[_0x0677('0x1')]=function(){return function(){return client['Request'](_0x0677('0x2'),{'options':{'raw':![],'attributes':['id',_0x0677('0x3'),_0x0677('0x4'),_0x0677('0x5')],'include':[{'model':_0x0677('0x6'),'as':_0x0677('0x7'),'attributes':['id',_0x0677('0x3'),_0x0677('0x8'),_0x0677('0x9')]}]},'log':_0x0677('0x1')});};};
\ No newline at end of file
+var _0xf414=['Agents','online','faxPause','getFaxQueues','Request','GetFaxQueue','name','User'];(function(_0x4565bf,_0x5ad9d6){var _0x5610ba=function(_0x170988){while(--_0x170988){_0x4565bf['push'](_0x4565bf['shift']());}};_0x5610ba(++_0x5ad9d6);}(_0xf414,0x12b));var _0x4f41=function(_0x4a9fb1,_0x273043){_0x4a9fb1=_0x4a9fb1-0x0;var _0x348672=_0xf414[_0x4a9fb1];return _0x348672;};'use strict';var client=require('../client');exports[_0x4f41('0x0')]=function(){return function(){return client[_0x4f41('0x1')](_0x4f41('0x2'),{'options':{'raw':![],'attributes':['id',_0x4f41('0x3'),'timeout','strategy'],'include':[{'model':_0x4f41('0x4'),'as':_0x4f41('0x5'),'attributes':['id','name',_0x4f41('0x6'),_0x4f41('0x7')]}]},'log':'getFaxQueues'});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x24a0=['create','Request','CreateFaxQueueReport','update','UpdateFaxQueueReport','DESC','../client'];(function(_0x51b0dc,_0x5307b7){var _0x13fa89=function(_0x2c880f){while(--_0x2c880f){_0x51b0dc['push'](_0x51b0dc['shift']());}};_0x13fa89(++_0x5307b7);}(_0x24a0,0x11e));var _0x024a=function(_0x3d710b,_0x280332){_0x3d710b=_0x3d710b-0x0;var _0x4c4463=_0x24a0[_0x3d710b];return _0x4c4463;};'use strict';var client=require(_0x024a('0x0'));exports[_0x024a('0x1')]=function(_0x4ad1da){return client[_0x024a('0x2')](_0x024a('0x3'),{'body':_0x4ad1da,'log':_0x024a('0x3')});};exports[_0x024a('0x4')]=function(_0x5bd9a1,_0x567456){return client['Request'](_0x024a('0x5'),{'body':_0x567456,'options':{'where':{'uniqueid':_0x5bd9a1},'order':[['id',_0x024a('0x6')]],'limit':0x1},'log':_0x024a('0x5')});};
\ No newline at end of file
+var _0xe139=['Request','CreateFaxQueueReport','update','UpdateFaxQueueReport','DESC','../client'];(function(_0x437cde,_0xc26ee0){var _0x14e0df=function(_0x2242f8){while(--_0x2242f8){_0x437cde['push'](_0x437cde['shift']());}};_0x14e0df(++_0xc26ee0);}(_0xe139,0x1d9));var _0x9e13=function(_0x587f81,_0x4e6b6d){_0x587f81=_0x587f81-0x0;var _0x1ab7bd=_0xe139[_0x587f81];return _0x1ab7bd;};'use strict';var client=require(_0x9e13('0x0'));exports['create']=function(_0x3ed44a){return client[_0x9e13('0x1')](_0x9e13('0x2'),{'body':_0x3ed44a,'log':_0x9e13('0x2')});};exports[_0x9e13('0x3')]=function(_0xb42b56,_0x558f7c){return client['Request'](_0x9e13('0x4'),{'body':_0x558f7c,'options':{'where':{'uniqueid':_0xb42b56},'order':[['id',_0x9e13('0x5')]],'limit':0x1},'log':_0x9e13('0x4')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf165=['Interval','../client','getIntervals','name'];(function(_0x19b3f9,_0xade753){var _0x18c3f6=function(_0x21439f){while(--_0x21439f){_0x19b3f9['push'](_0x19b3f9['shift']());}};_0x18c3f6(++_0xade753);}(_0xf165,0x65));var _0x5f16=function(_0x158fd6,_0x37e2ed){_0x158fd6=_0x158fd6-0x0;var _0x4f9dd3=_0xf165[_0x158fd6];return _0x4f9dd3;};'use strict';var client=require(_0x5f16('0x0'));exports[_0x5f16('0x1')]=function(){return function(){return client['Request']('GetInterval',{'options':{'raw':![],'where':{'IntervalId':null},'attributes':['id',_0x5f16('0x2')],'include':[{'model':_0x5f16('0x3'),'as':'Intervals','attributes':['id',_0x5f16('0x2'),'interval']}]},'log':_0x5f16('0x1')});};};
\ No newline at end of file
+var _0x0333=['interval','../client','getIntervals','GetInterval','name','Intervals'];(function(_0xd9a890,_0x33baef){var _0xc513c0=function(_0x460151){while(--_0x460151){_0xd9a890['push'](_0xd9a890['shift']());}};_0xc513c0(++_0x33baef);}(_0x0333,0xa3));var _0x3033=function(_0x3f4891,_0x4e6f62){_0x3f4891=_0x3f4891-0x0;var _0x54f2d8=_0x0333[_0x3f4891];return _0x54f2d8;};'use strict';var client=require(_0x3033('0x0'));exports[_0x3033('0x1')]=function(){return function(){return client['Request'](_0x3033('0x2'),{'options':{'raw':![],'where':{'IntervalId':null},'attributes':['id',_0x3033('0x3')],'include':[{'model':'Interval','as':_0x3033('0x4'),'attributes':['id','name',_0x3033('0x5')]}]},'log':_0x3033('0x1')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x25e7=['addTagsToChatInteraction','../client','update','Request','UpdateMailInteraction','updateMailInteraction','addTags'];(function(_0x1d1c7a,_0x2bd1e0){var _0x7bfb9=function(_0xa0c993){while(--_0xa0c993){_0x1d1c7a['push'](_0x1d1c7a['shift']());}};_0x7bfb9(++_0x2bd1e0);}(_0x25e7,0x1d6));var _0x725e=function(_0xc8db78,_0x58b5a7){_0xc8db78=_0xc8db78-0x0;var _0x3483f3=_0x25e7[_0xc8db78];return _0x3483f3;};'use strict';var client=require(_0x725e('0x0'));exports[_0x725e('0x1')]=function(_0x2752fa,_0x3fdca4){return client[_0x725e('0x2')](_0x725e('0x3'),{'body':_0x3fdca4,'options':{'where':{'id':_0x2752fa}},'log':_0x725e('0x4')});};exports[_0x725e('0x5')]=function(_0x3d7893,_0x3da706){return client['Request']('AddTagsToMailInteraction',{'body':_0x3da706,'options':{'where':{'id':_0x3d7893}},'log':_0x725e('0x6')});};
\ No newline at end of file
+var _0x47c5=['UpdateMailInteraction','addTags','AddTagsToMailInteraction','../client','update','Request'];(function(_0x544986,_0x92c7f1){var _0x328aee=function(_0xb0ac2c){while(--_0xb0ac2c){_0x544986['push'](_0x544986['shift']());}};_0x328aee(++_0x92c7f1);}(_0x47c5,0x165));var _0x547c=function(_0x45e647,_0x2c482c){_0x45e647=_0x45e647-0x0;var _0x2deace=_0x47c5[_0x45e647];return _0x2deace;};'use strict';var client=require(_0x547c('0x0'));exports[_0x547c('0x1')]=function(_0x2b2280,_0x123697){return client[_0x547c('0x2')](_0x547c('0x3'),{'body':_0x123697,'options':{'where':{'id':_0x2b2280}},'log':'updateMailInteraction'});};exports[_0x547c('0x4')]=function(_0x16f4db,_0x5b48c9){return client[_0x547c('0x2')](_0x547c('0x5'),{'body':_0x5b48c9,'options':{'where':{'id':_0x16f4db}},'log':'addTagsToChatInteraction'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcd87=['CreateMailMessage','createMailMessage','../client'];(function(_0x3139e2,_0x2504fc){var _0x5df831=function(_0x137b37){while(--_0x137b37){_0x3139e2['push'](_0x3139e2['shift']());}};_0x5df831(++_0x2504fc);}(_0xcd87,0x7a));var _0x7cd8=function(_0xae9f7a,_0x5cce98){_0xae9f7a=_0xae9f7a-0x0;var _0x3c21be=_0xcd87[_0xae9f7a];return _0x3c21be;};'use strict';var client=require(_0x7cd8('0x0'));exports['create']=function(_0xec9866){return client['Request'](_0x7cd8('0x1'),{'body':_0xec9866,'log':_0x7cd8('0x2')});};
\ No newline at end of file
+var _0x337c=['../client','create','Request','CreateMailMessage','createMailMessage'];(function(_0x8627e5,_0x52f5e8){var _0x554e7a=function(_0x45db8e){while(--_0x45db8e){_0x8627e5['push'](_0x8627e5['shift']());}};_0x554e7a(++_0x52f5e8);}(_0x337c,0xe6));var _0xc337=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x337c[_0x3dd15e];return _0x231fd0;};'use strict';var client=require(_0xc337('0x0'));exports[_0xc337('0x1')]=function(_0x4bbc3c){return client[_0xc337('0x2')](_0xc337('0x3'),{'body':_0x4bbc3c,'log':_0xc337('0x4')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xae4e=['getMailQueues','name','timeout','strategy','User','Agents','online','mailPause','../client'];(function(_0x3b6f58,_0x5870de){var _0x987c61=function(_0x3a9281){while(--_0x3a9281){_0x3b6f58['push'](_0x3b6f58['shift']());}};_0x987c61(++_0x5870de);}(_0xae4e,0x116));var _0xeae4=function(_0xf84063,_0x2a7135){_0xf84063=_0xf84063-0x0;var _0x599e14=_0xae4e[_0xf84063];return _0x599e14;};'use strict';var client=require(_0xeae4('0x0'));exports[_0xeae4('0x1')]=function(){return function(){return client['Request']('GetMailQueue',{'options':{'raw':![],'attributes':['id',_0xeae4('0x2'),_0xeae4('0x3'),_0xeae4('0x4')],'include':[{'model':_0xeae4('0x5'),'as':_0xeae4('0x6'),'attributes':['id',_0xeae4('0x2'),_0xeae4('0x7'),_0xeae4('0x8')]}]},'log':_0xeae4('0x1')});};};
\ No newline at end of file
+var _0x6194=['Agents','mailPause','../client','getMailQueues','Request','GetMailQueue','name','timeout'];(function(_0x367710,_0x2ea312){var _0x16178d=function(_0x331a58){while(--_0x331a58){_0x367710['push'](_0x367710['shift']());}};_0x16178d(++_0x2ea312);}(_0x6194,0x122));var _0x4619=function(_0x272d97,_0x3cb745){_0x272d97=_0x272d97-0x0;var _0x40fc01=_0x6194[_0x272d97];return _0x40fc01;};'use strict';var client=require(_0x4619('0x0'));exports[_0x4619('0x1')]=function(){return function(){return client[_0x4619('0x2')](_0x4619('0x3'),{'options':{'raw':![],'attributes':['id',_0x4619('0x4'),_0x4619('0x5'),'strategy'],'include':[{'model':'User','as':_0x4619('0x6'),'attributes':['id',_0x4619('0x4'),'online',_0x4619('0x7')]}]},'log':_0x4619('0x1')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x86ba=['../client','create','Request','CreateMailQueueReport','update','UpdateMailQueueReport'];(function(_0x22dac7,_0x45d32a){var _0x3e6cfa=function(_0x4c2e9d){while(--_0x4c2e9d){_0x22dac7['push'](_0x22dac7['shift']());}};_0x3e6cfa(++_0x45d32a);}(_0x86ba,0x1ce));var _0xa86b=function(_0x17d9e3,_0x1f969c){_0x17d9e3=_0x17d9e3-0x0;var _0x14192d=_0x86ba[_0x17d9e3];return _0x14192d;};'use strict';var client=require(_0xa86b('0x0'));exports[_0xa86b('0x1')]=function(_0xff48fa){return client[_0xa86b('0x2')](_0xa86b('0x3'),{'body':_0xff48fa,'log':_0xa86b('0x3')});};exports[_0xa86b('0x4')]=function(_0x1ff397,_0x4644ab){return client['Request'](_0xa86b('0x5'),{'body':_0x4644ab,'options':{'where':{'uniqueid':_0x1ff397},'order':[['id','DESC']],'limit':0x1},'log':_0xa86b('0x5')});};
\ No newline at end of file
+var _0xd3c8=['DESC','../client','Request','CreateMailQueueReport'];(function(_0x427217,_0x4039b1){var _0x5b28fb=function(_0x3eaa08){while(--_0x3eaa08){_0x427217['push'](_0x427217['shift']());}};_0x5b28fb(++_0x4039b1);}(_0xd3c8,0x12d));var _0x8d3c=function(_0xafad6d,_0x5ee589){_0xafad6d=_0xafad6d-0x0;var _0x3aed7d=_0xd3c8[_0xafad6d];return _0x3aed7d;};'use strict';var client=require(_0x8d3c('0x0'));exports['create']=function(_0x57ad4a){return client[_0x8d3c('0x1')](_0x8d3c('0x2'),{'body':_0x57ad4a,'log':_0x8d3c('0x2')});};exports['update']=function(_0x1593d8,_0x1372c2){return client['Request']('UpdateMailQueueReport',{'body':_0x1372c2,'options':{'where':{'uniqueid':_0x1593d8},'order':[['id',_0x8d3c('0x3')]],'limit':0x1},'log':'UpdateMailQueueReport'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfb4d=['UpdateOpenchannelInteraction','updateOpenchannelInteraction','AddTagsToOpenchannelInteraction','addTagsToChatInteraction','../client','update','Request'];(function(_0x16a1bf,_0x372fda){var _0x2c129a=function(_0x1b87a1){while(--_0x1b87a1){_0x16a1bf['push'](_0x16a1bf['shift']());}};_0x2c129a(++_0x372fda);}(_0xfb4d,0xb3));var _0xdfb4=function(_0x13b8f3,_0x442821){_0x13b8f3=_0x13b8f3-0x0;var _0x1a6d06=_0xfb4d[_0x13b8f3];return _0x1a6d06;};'use strict';var client=require(_0xdfb4('0x0'));exports[_0xdfb4('0x1')]=function(_0x35e325,_0x17efb7){return client[_0xdfb4('0x2')](_0xdfb4('0x3'),{'body':_0x17efb7,'options':{'where':{'id':_0x35e325}},'log':_0xdfb4('0x4')});};exports['addTags']=function(_0x22b34a,_0x2b7dce){return client['Request'](_0xdfb4('0x5'),{'body':_0x2b7dce,'options':{'where':{'id':_0x22b34a}},'log':_0xdfb4('0x6')});};
\ No newline at end of file
+var _0x426e=['Request','UpdateOpenchannelInteraction','addTags','AddTagsToOpenchannelInteraction','addTagsToChatInteraction','../client','update'];(function(_0x5d0d22,_0x1605e1){var _0x284c36=function(_0x56a93f){while(--_0x56a93f){_0x5d0d22['push'](_0x5d0d22['shift']());}};_0x284c36(++_0x1605e1);}(_0x426e,0xad));var _0xe426=function(_0x3ba2d6,_0x4910cb){_0x3ba2d6=_0x3ba2d6-0x0;var _0x6f362a=_0x426e[_0x3ba2d6];return _0x6f362a;};'use strict';var client=require(_0xe426('0x0'));exports[_0xe426('0x1')]=function(_0x2b0db8,_0x73ff46){return client[_0xe426('0x2')](_0xe426('0x3'),{'body':_0x73ff46,'options':{'where':{'id':_0x2b0db8}},'log':'updateOpenchannelInteraction'});};exports[_0xe426('0x4')]=function(_0x5dd668,_0x3410c3){return client[_0xe426('0x2')](_0xe426('0x5'),{'body':_0x3410c3,'options':{'where':{'id':_0x5dd668}},'log':_0xe426('0x6')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe876=['create','Request','CreateOpenchannelMessage','createOpenchannelMessage','../client'];(function(_0x25b34d,_0x3e527c){var _0x2b7caf=function(_0x596e9b){while(--_0x596e9b){_0x25b34d['push'](_0x25b34d['shift']());}};_0x2b7caf(++_0x3e527c);}(_0xe876,0xdb));var _0x6e87=function(_0x2c13b7,_0x585053){_0x2c13b7=_0x2c13b7-0x0;var _0x1bb147=_0xe876[_0x2c13b7];return _0x1bb147;};'use strict';var client=require(_0x6e87('0x0'));exports[_0x6e87('0x1')]=function(_0x3d53e1){return client[_0x6e87('0x2')](_0x6e87('0x3'),{'body':_0x3d53e1,'log':_0x6e87('0x4')});};
\ No newline at end of file
+var _0x284c=['createOpenchannelMessage','create','Request','CreateOpenchannelMessage'];(function(_0x1bd3b2,_0x14d3b7){var _0x2b95bc=function(_0x5d485b){while(--_0x5d485b){_0x1bd3b2['push'](_0x1bd3b2['shift']());}};_0x2b95bc(++_0x14d3b7);}(_0x284c,0xb5));var _0xc284=function(_0x5b644e,_0x2e5e07){_0x5b644e=_0x5b644e-0x0;var _0x49c6bf=_0x284c[_0x5b644e];return _0x49c6bf;};'use strict';var client=require('../client');exports[_0xc284('0x0')]=function(_0x3497b7){return client[_0xc284('0x1')](_0xc284('0x2'),{'body':_0x3497b7,'log':_0xc284('0x3')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9b40=['strategy','getOpenchannelQueues','GetOpenchannelQueue','name','timeout'];(function(_0x4b4f44,_0xbbb238){var _0x5c9a08=function(_0x94f241){while(--_0x94f241){_0x4b4f44['push'](_0x4b4f44['shift']());}};_0x5c9a08(++_0xbbb238);}(_0x9b40,0xf6));var _0x09b4=function(_0x687843,_0x26671e){_0x687843=_0x687843-0x0;var _0x5d1a52=_0x9b40[_0x687843];return _0x5d1a52;};'use strict';var client=require('../client');exports[_0x09b4('0x0')]=function(){return function(){return client['Request'](_0x09b4('0x1'),{'options':{'raw':![],'attributes':['id',_0x09b4('0x2'),_0x09b4('0x3'),_0x09b4('0x4')],'include':[{'model':'User','as':'Agents','attributes':['id',_0x09b4('0x2'),'online','openchannelPause']}]},'log':_0x09b4('0x0')});};};
\ No newline at end of file
+var _0x916c=['Request','GetOpenchannelQueue','name','timeout','User','Agents','online','openchannelPause','getOpenchannelQueues','../client'];(function(_0x4cb63,_0x203706){var _0x151dab=function(_0x57ea39){while(--_0x57ea39){_0x4cb63['push'](_0x4cb63['shift']());}};_0x151dab(++_0x203706);}(_0x916c,0x6d));var _0xc916=function(_0x2211ed,_0x1bca0b){_0x2211ed=_0x2211ed-0x0;var _0x4d78cc=_0x916c[_0x2211ed];return _0x4d78cc;};'use strict';var client=require(_0xc916('0x0'));exports['getOpenchannelQueues']=function(){return function(){return client[_0xc916('0x1')](_0xc916('0x2'),{'options':{'raw':![],'attributes':['id',_0xc916('0x3'),_0xc916('0x4'),'strategy'],'include':[{'model':_0xc916('0x5'),'as':_0xc916('0x6'),'attributes':['id','name',_0xc916('0x7'),_0xc916('0x8')]}]},'log':_0xc916('0x9')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0b96=['update','Request','DESC','UpdateOpenchannelQueueReport','../client','create','CreateOpenchannelQueueReport'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x0b96,0xa5));var _0x60b9=function(_0x521b61,_0x47e2b4){_0x521b61=_0x521b61-0x0;var _0x476cdf=_0x0b96[_0x521b61];return _0x476cdf;};'use strict';var client=require(_0x60b9('0x0'));exports[_0x60b9('0x1')]=function(_0x2552bc){return client['Request'](_0x60b9('0x2'),{'body':_0x2552bc,'log':_0x60b9('0x2')});};exports[_0x60b9('0x3')]=function(_0x4a68ca,_0x348b51){return client[_0x60b9('0x4')]('UpdateOpenchannelQueueReport',{'body':_0x348b51,'options':{'where':{'uniqueid':_0x4a68ca},'order':[['id',_0x60b9('0x5')]],'limit':0x1},'log':_0x60b9('0x6')});};
\ No newline at end of file
+var _0xf81a=['create','CreateOpenchannelQueueReport','update','Request','DESC','UpdateOpenchannelQueueReport','../client'];(function(_0x458881,_0x33d7cf){var _0x466983=function(_0xf4d3ac){while(--_0xf4d3ac){_0x458881['push'](_0x458881['shift']());}};_0x466983(++_0x33d7cf);}(_0xf81a,0x16b));var _0xaf81=function(_0x360684,_0x9ed390){_0x360684=_0x360684-0x0;var _0x48c698=_0xf81a[_0x360684];return _0x48c698;};'use strict';var client=require(_0xaf81('0x0'));exports[_0xaf81('0x1')]=function(_0x1ecfb2){return client['Request'](_0xaf81('0x2'),{'body':_0x1ecfb2,'log':_0xaf81('0x2')});};exports[_0xaf81('0x3')]=function(_0x51450a,_0x4590d4){return client[_0xaf81('0x4')]('UpdateOpenchannelQueueReport',{'body':_0x4590d4,'options':{'where':{'uniqueid':_0x51450a},'order':[['id',_0xaf81('0x5')]],'limit':0x1},'log':_0xaf81('0x6')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1b69=['Request','UpdateSmsInteraction','addTags','AddTagsToSmsInteraction','addTagsToSmsInteraction'];(function(_0x1f9f37,_0x18776e){var _0x21c080=function(_0x4acb93){while(--_0x4acb93){_0x1f9f37['push'](_0x1f9f37['shift']());}};_0x21c080(++_0x18776e);}(_0x1b69,0x190));var _0x91b6=function(_0x11ce46,_0x177a85){_0x11ce46=_0x11ce46-0x0;var _0x368a1e=_0x1b69[_0x11ce46];return _0x368a1e;};'use strict';var client=require('../client');exports['update']=function(_0x4e96ea,_0x3142e3){return client[_0x91b6('0x0')](_0x91b6('0x1'),{'body':_0x3142e3,'options':{'where':{'id':_0x4e96ea}},'log':'updateSmsInteraction'});};exports[_0x91b6('0x2')]=function(_0xbbd6b7,_0x35a742){return client[_0x91b6('0x0')](_0x91b6('0x3'),{'body':_0x35a742,'options':{'where':{'id':_0xbbd6b7}},'log':_0x91b6('0x4')});};
\ No newline at end of file
+var _0xe14d=['updateSmsInteraction','Request','AddTagsToSmsInteraction','addTagsToSmsInteraction','../client','update','UpdateSmsInteraction'];(function(_0x9c9f1c,_0x326a86){var _0x7e30d2=function(_0x44d78e){while(--_0x44d78e){_0x9c9f1c['push'](_0x9c9f1c['shift']());}};_0x7e30d2(++_0x326a86);}(_0xe14d,0x1ee));var _0xde14=function(_0x334841,_0x2bbc4c){_0x334841=_0x334841-0x0;var _0x5beb4b=_0xe14d[_0x334841];return _0x5beb4b;};'use strict';var client=require(_0xde14('0x0'));exports[_0xde14('0x1')]=function(_0x1b5d3b,_0x41974a){return client['Request'](_0xde14('0x2'),{'body':_0x41974a,'options':{'where':{'id':_0x1b5d3b}},'log':_0xde14('0x3')});};exports['addTags']=function(_0x1c3e94,_0x13c24e){return client[_0xde14('0x4')](_0xde14('0x5'),{'body':_0x13c24e,'options':{'where':{'id':_0x1c3e94}},'log':_0xde14('0x6')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2a7c=['CreateSmsMessage','../client','create','Request'];(function(_0x330d84,_0x17d231){var _0x3590fc=function(_0x14eb11){while(--_0x14eb11){_0x330d84['push'](_0x330d84['shift']());}};_0x3590fc(++_0x17d231);}(_0x2a7c,0x155));var _0xc2a7=function(_0x3619f,_0xa3aa14){_0x3619f=_0x3619f-0x0;var _0x2f37a4=_0x2a7c[_0x3619f];return _0x2f37a4;};'use strict';var client=require(_0xc2a7('0x0'));exports[_0xc2a7('0x1')]=function(_0x23d3f2){return client[_0xc2a7('0x2')](_0xc2a7('0x3'),{'body':_0x23d3f2,'log':'createSmsMessage'});};
\ No newline at end of file
+var _0xc69b=['createSmsMessage','../client','create','Request'];(function(_0x201efb,_0x80bed0){var _0x2f7961=function(_0x327290){while(--_0x327290){_0x201efb['push'](_0x201efb['shift']());}};_0x2f7961(++_0x80bed0);}(_0xc69b,0x119));var _0xbc69=function(_0x43d16c,_0x2b5447){_0x43d16c=_0x43d16c-0x0;var _0x208cce=_0xc69b[_0x43d16c];return _0x208cce;};'use strict';var client=require(_0xbc69('0x0'));exports[_0xbc69('0x1')]=function(_0x3a9d8e){return client[_0xbc69('0x2')]('CreateSmsMessage',{'body':_0x3a9d8e,'log':_0xbc69('0x3')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd8b0=['timeout','strategy','User','Agents','name','../client','getSmsQueues'];(function(_0x14919a,_0x8e38b6){var _0x7a3de0=function(_0x15e5cc){while(--_0x15e5cc){_0x14919a['push'](_0x14919a['shift']());}};_0x7a3de0(++_0x8e38b6);}(_0xd8b0,0xad));var _0x0d8b=function(_0x122ef9,_0x451d2a){_0x122ef9=_0x122ef9-0x0;var _0x42fba0=_0xd8b0[_0x122ef9];return _0x42fba0;};'use strict';var client=require(_0x0d8b('0x0'));exports[_0x0d8b('0x1')]=function(){return function(){return client['Request']('GetSmsQueue',{'options':{'raw':![],'attributes':['id','name',_0x0d8b('0x2'),_0x0d8b('0x3')],'include':[{'model':_0x0d8b('0x4'),'as':_0x0d8b('0x5'),'attributes':['id',_0x0d8b('0x6'),'online','smsPause']}]},'log':_0x0d8b('0x1')});};};
\ No newline at end of file
+var _0xb7e7=['online','../client','Request','name','strategy','Agents'];(function(_0xef6f03,_0xe23870){var _0x5098cf=function(_0x572b0e){while(--_0x572b0e){_0xef6f03['push'](_0xef6f03['shift']());}};_0x5098cf(++_0xe23870);}(_0xb7e7,0x121));var _0x7b7e=function(_0x2b4411,_0x2625ed){_0x2b4411=_0x2b4411-0x0;var _0x8e41ef=_0xb7e7[_0x2b4411];return _0x8e41ef;};'use strict';var client=require(_0x7b7e('0x0'));exports['getSmsQueues']=function(){return function(){return client[_0x7b7e('0x1')]('GetSmsQueue',{'options':{'raw':![],'attributes':['id',_0x7b7e('0x2'),'timeout',_0x7b7e('0x3')],'include':[{'model':'User','as':_0x7b7e('0x4'),'attributes':['id',_0x7b7e('0x2'),_0x7b7e('0x5'),'smsPause']}]},'log':'getSmsQueues'});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9c44=['Request','CreateSmsQueueReport','update','UpdateSmsQueueReport'];(function(_0x449611,_0x3e33c0){var _0x4400f0=function(_0x2d86cb){while(--_0x2d86cb){_0x449611['push'](_0x449611['shift']());}};_0x4400f0(++_0x3e33c0);}(_0x9c44,0x178));var _0x49c4=function(_0x15bc81,_0x4d4f77){_0x15bc81=_0x15bc81-0x0;var _0x59440e=_0x9c44[_0x15bc81];return _0x59440e;};'use strict';var client=require('../client');exports['create']=function(_0x1ffbbf){return client[_0x49c4('0x0')](_0x49c4('0x1'),{'body':_0x1ffbbf,'log':_0x49c4('0x1')});};exports[_0x49c4('0x2')]=function(_0x2ad237,_0x4e0313){return client['Request'](_0x49c4('0x3'),{'body':_0x4e0313,'options':{'where':{'uniqueid':_0x2ad237},'order':[['id','DESC']],'limit':0x1},'log':_0x49c4('0x3')});};
\ No newline at end of file
+var _0x34e8=['create','Request','CreateSmsQueueReport','update','UpdateSmsQueueReport','DESC','../client'];(function(_0x3eaccb,_0x199553){var _0x176a5b=function(_0x535843){while(--_0x535843){_0x3eaccb['push'](_0x3eaccb['shift']());}};_0x176a5b(++_0x199553);}(_0x34e8,0x12c));var _0x834e=function(_0x411c22,_0x5a4b47){_0x411c22=_0x411c22-0x0;var _0x543aca=_0x34e8[_0x411c22];return _0x543aca;};'use strict';var client=require(_0x834e('0x0'));exports[_0x834e('0x1')]=function(_0x8b339){return client[_0x834e('0x2')]('CreateSmsQueueReport',{'body':_0x8b339,'log':_0x834e('0x3')});};exports[_0x834e('0x4')]=function(_0x472111,_0x31bf20){return client[_0x834e('0x2')](_0x834e('0x5'),{'body':_0x31bf20,'options':{'where':{'uniqueid':_0x472111},'order':[['id',_0x834e('0x6')]],'limit':0x1},'log':'UpdateSmsQueueReport'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['name','pauseType','lastPauseAt','voicePause','chatPause','mailPause','smsPause','whatsappPause','openchannelPause','faxCapacity','openchannelCapacity','../client','getAgents','Request'];(function(_0x519e33,_0x49b004){var _0x164575=function(_0x388bcb){while(--_0x388bcb){_0x519e33['push'](_0x519e33['shift']());}};_0x164575(++_0x49b004);}(_0xa9e0,0x123));var _0x0a9e=function(_0x4ea69d,_0x290f53){_0x4ea69d=_0x4ea69d-0x0;var _0x5318e0=_0xa9e0[_0x4ea69d];return _0x5318e0;};'use strict';var client=require(_0x0a9e('0x0'));exports[_0x0a9e('0x1')]=function(){return function(){return client[_0x0a9e('0x2')]('GetUser',{'options':{'raw':!![],'where':{'role':'agent'},'attributes':['id',_0x0a9e('0x3'),'online',_0x0a9e('0x4'),_0x0a9e('0x5'),_0x0a9e('0x6'),_0x0a9e('0x7'),_0x0a9e('0x8'),'faxPause',_0x0a9e('0x9'),_0x0a9e('0xa'),_0x0a9e('0xb'),'chatCapacity','mailCapacity',_0x0a9e('0xc'),'smsCapacity','whatsappCapacity',_0x0a9e('0xd')]},'log':_0x0a9e('0x1')});};};
\ No newline at end of file
+var _0xa9e0=['name','pauseType','lastPauseAt','voicePause','chatPause','mailPause','smsPause','whatsappPause','openchannelPause','faxCapacity','openchannelCapacity','../client','getAgents','Request'];(function(_0x397412,_0x420ef2){var _0x2082f5=function(_0xd601a0){while(--_0xd601a0){_0x397412['push'](_0x397412['shift']());}};_0x2082f5(++_0x420ef2);}(_0xa9e0,0x123));var _0x0a9e=function(_0x411add,_0x1aed38){_0x411add=_0x411add-0x0;var _0x238242=_0xa9e0[_0x411add];return _0x238242;};'use strict';var client=require(_0x0a9e('0x0'));exports[_0x0a9e('0x1')]=function(){return function(){return client[_0x0a9e('0x2')]('GetUser',{'options':{'raw':!![],'where':{'role':'agent'},'attributes':['id',_0x0a9e('0x3'),'online',_0x0a9e('0x4'),_0x0a9e('0x5'),_0x0a9e('0x6'),_0x0a9e('0x7'),_0x0a9e('0x8'),'faxPause',_0x0a9e('0x9'),_0x0a9e('0xa'),_0x0a9e('0xb'),'chatCapacity','mailCapacity',_0x0a9e('0xc'),'smsCapacity','whatsappCapacity',_0x0a9e('0xd')]},'log':_0x0a9e('0x1')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9e8a=['Request','UpdateWhatsappInteraction','updateWhatsappInteraction','addTags','../client','update'];(function(_0x4b89f2,_0x5bc1b6){var _0x17a92a=function(_0x1b2412){while(--_0x1b2412){_0x4b89f2['push'](_0x4b89f2['shift']());}};_0x17a92a(++_0x5bc1b6);}(_0x9e8a,0x112));var _0xa9e8=function(_0x3b46d6,_0x1438c7){_0x3b46d6=_0x3b46d6-0x0;var _0x141de1=_0x9e8a[_0x3b46d6];return _0x141de1;};'use strict';var client=require(_0xa9e8('0x0'));exports[_0xa9e8('0x1')]=function(_0x1f8ea6,_0x5c6bb4){return client[_0xa9e8('0x2')](_0xa9e8('0x3'),{'body':_0x5c6bb4,'options':{'where':{'id':_0x1f8ea6}},'log':_0xa9e8('0x4')});};exports[_0xa9e8('0x5')]=function(_0xe3b2c8,_0x57736c){return client['Request']('AddTagsToWhatsappInteraction',{'body':_0x57736c,'options':{'where':{'id':_0xe3b2c8}},'log':'addTagsToWhatsappInteraction'});};
\ No newline at end of file
+var _0xd991=['AddTagsToWhatsappInteraction','../client','update','Request','updateWhatsappInteraction','addTags'];(function(_0x75eb43,_0x1acc51){var _0x5df67a=function(_0x7ae16f){while(--_0x7ae16f){_0x75eb43['push'](_0x75eb43['shift']());}};_0x5df67a(++_0x1acc51);}(_0xd991,0x115));var _0x1d99=function(_0x27e2ef,_0x42cf66){_0x27e2ef=_0x27e2ef-0x0;var _0x1573bf=_0xd991[_0x27e2ef];return _0x1573bf;};'use strict';var client=require(_0x1d99('0x0'));exports[_0x1d99('0x1')]=function(_0x1ef5c1,_0x2095b5){return client[_0x1d99('0x2')]('UpdateWhatsappInteraction',{'body':_0x2095b5,'options':{'where':{'id':_0x1ef5c1}},'log':_0x1d99('0x3')});};exports[_0x1d99('0x4')]=function(_0xf03459,_0x1f6da3){return client[_0x1d99('0x2')](_0x1d99('0x5'),{'body':_0x1f6da3,'options':{'where':{'id':_0xf03459}},'log':'addTagsToWhatsappInteraction'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd288=['create'];(function(_0x3e3cf6,_0x211b69){var _0x23d373=function(_0x552444){while(--_0x552444){_0x3e3cf6['push'](_0x3e3cf6['shift']());}};_0x23d373(++_0x211b69);}(_0xd288,0x1e3));var _0x8d28=function(_0x55829d,_0x5e0efe){_0x55829d=_0x55829d-0x0;var _0x211cb8=_0xd288[_0x55829d];return _0x211cb8;};'use strict';var client=require('../client');exports[_0x8d28('0x0')]=function(_0x3b8a91){return client['Request']('CreateWhatsappMessage',{'body':_0x3b8a91,'log':'createWhatsappMessage'});};
\ No newline at end of file
+var _0xab0c=['CreateWhatsappMessage','../client','create'];(function(_0x5d4e38,_0x579b55){var _0x39a5f7=function(_0x435828){while(--_0x435828){_0x5d4e38['push'](_0x5d4e38['shift']());}};_0x39a5f7(++_0x579b55);}(_0xab0c,0x103));var _0xcab0=function(_0x35f771,_0x23115f){_0x35f771=_0x35f771-0x0;var _0x3f3709=_0xab0c[_0x35f771];return _0x3f3709;};'use strict';var client=require(_0xcab0('0x0'));exports[_0xcab0('0x1')]=function(_0x3d0cbf){return client['Request'](_0xcab0('0x2'),{'body':_0x3d0cbf,'log':'createWhatsappMessage'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0138=['Agents','whatsappPause','../client','getWhatsappQueues','Request','name','strategy','User'];(function(_0x26985e,_0x1f59a7){var _0x2d31fb=function(_0x5dbee0){while(--_0x5dbee0){_0x26985e['push'](_0x26985e['shift']());}};_0x2d31fb(++_0x1f59a7);}(_0x0138,0x9a));var _0x8013=function(_0xeeb049,_0x2e9c3f){_0xeeb049=_0xeeb049-0x0;var _0x164032=_0x0138[_0xeeb049];return _0x164032;};'use strict';var client=require(_0x8013('0x0'));exports[_0x8013('0x1')]=function(){return function(){return client[_0x8013('0x2')]('GetWhatsappQueue',{'options':{'raw':![],'attributes':['id',_0x8013('0x3'),'timeout',_0x8013('0x4')],'include':[{'model':_0x8013('0x5'),'as':_0x8013('0x6'),'attributes':['id','name','online',_0x8013('0x7')]}]},'log':_0x8013('0x1')});};};
\ No newline at end of file
+var _0xbf3b=['getWhatsappQueues','GetWhatsappQueue','name','timeout','strategy','User','Agents','online','../client'];(function(_0x18ed56,_0x5d5d47){var _0x57dc09=function(_0xc91dff){while(--_0xc91dff){_0x18ed56['push'](_0x18ed56['shift']());}};_0x57dc09(++_0x5d5d47);}(_0xbf3b,0x86));var _0xbbf3=function(_0x570b27,_0xd94330){_0x570b27=_0x570b27-0x0;var _0x4c5ea1=_0xbf3b[_0x570b27];return _0x4c5ea1;};'use strict';var client=require(_0xbbf3('0x0'));exports[_0xbbf3('0x1')]=function(){return function(){return client['Request'](_0xbbf3('0x2'),{'options':{'raw':![],'attributes':['id',_0xbbf3('0x3'),_0xbbf3('0x4'),_0xbbf3('0x5')],'include':[{'model':_0xbbf3('0x6'),'as':_0xbbf3('0x7'),'attributes':['id',_0xbbf3('0x3'),_0xbbf3('0x8'),'whatsappPause']}]},'log':'getWhatsappQueues'});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd361=['update','Request','UpdateWhatsappQueueReport','DESC','../client','CreateWhatsappQueueReport'];(function(_0x1a72b8,_0x1e4f4b){var _0x39f72d=function(_0x35aef1){while(--_0x35aef1){_0x1a72b8['push'](_0x1a72b8['shift']());}};_0x39f72d(++_0x1e4f4b);}(_0xd361,0xee));var _0x1d36=function(_0xd8a1c9,_0x2e4e4f){_0xd8a1c9=_0xd8a1c9-0x0;var _0x453988=_0xd361[_0xd8a1c9];return _0x453988;};'use strict';var client=require(_0x1d36('0x0'));exports['create']=function(_0x2eab7f){return client['Request'](_0x1d36('0x1'),{'body':_0x2eab7f,'log':_0x1d36('0x1')});};exports[_0x1d36('0x2')]=function(_0x5b3abc,_0x537a8c){return client[_0x1d36('0x3')](_0x1d36('0x4'),{'body':_0x537a8c,'options':{'where':{'uniqueid':_0x5b3abc},'order':[['id',_0x1d36('0x5')]],'limit':0x1},'log':_0x1d36('0x4')});};
\ No newline at end of file
+var _0x3325=['create','Request','CreateWhatsappQueueReport','update','UpdateWhatsappQueueReport','../client'];(function(_0x5f0dfb,_0x1e663d){var _0xbe5060=function(_0x44ff60){while(--_0x44ff60){_0x5f0dfb['push'](_0x5f0dfb['shift']());}};_0xbe5060(++_0x1e663d);}(_0x3325,0x10d));var _0x5332=function(_0x852450,_0xd2456e){_0x852450=_0x852450-0x0;var _0x329404=_0x3325[_0x852450];return _0x329404;};'use strict';var client=require(_0x5332('0x0'));exports[_0x5332('0x1')]=function(_0x5d2589){return client[_0x5332('0x2')](_0x5332('0x3'),{'body':_0x5d2589,'log':_0x5332('0x3')});};exports[_0x5332('0x4')]=function(_0x586f6a,_0xd40986){return client[_0x5332('0x2')](_0x5332('0x5'),{'body':_0xd40986,'options':{'where':{'uniqueid':_0x586f6a},'order':[['id','DESC']],'limit':0x1},'log':_0x5332('0x5')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0db4=['[%s][AGENT][NAME:%s][STATUS:%s]','name','toLowerCase','consequence','validate','length','[%s][AGENT]\x20%s','map','message','join','stop','find','agents','timeout','createQueue','atimeout','channel','START:%s','rules','end','[%s][AGENT]\x20ROUTING\x20STOPPED','close','complete','[%s][AGENT]\x20ROUTING\x20END','next','agent','error','[%s][AGENT]\x20agent\x20not\x20found\x20%s','log','[%s][QUEUE]\x20%s','stack','lodash','util','seq-queue','../../../../config/logger','routing','string','name\x20is\x20a\x20string\x20and\x20it\x20is\x20required','number','info','format'];(function(_0x232610,_0x432b82){var _0x1f3da7=function(_0x209d51){while(--_0x209d51){_0x232610['push'](_0x232610['shift']());}};_0x1f3da7(++_0x432b82);}(_0x0db4,0xec));var _0x40db=function(_0x21549c,_0x6d64d1){_0x21549c=_0x21549c-0x0;var _0x426cbd=_0x0db4[_0x21549c];return _0x426cbd;};'use strict';var schema=require('validate');var _=require(_0x40db('0x0'));var util=require(_0x40db('0x1'));var seqqueue=require(_0x40db('0x2'));var logger=require(_0x40db('0x3'))(_0x40db('0x4'));var strategy=require('./strategy');var queue=schema({'name':{'type':_0x40db('0x5'),'required':!![],'message':_0x40db('0x6')},'timeout':{'type':_0x40db('0x7'),'message':'timeout\x20is\x20a\x20number'}});function writeLog(_0x3fab89,_0x9a94bf,_0x452a4a){return logger[_0x40db('0x8')](util[_0x40db('0x9')](_0x40db('0xa'),_0x3fab89,_0x9a94bf[_0x40db('0xb')],_0x452a4a));}function handleFindAgent(_0xecbeff){return function(_0x2f5e29){return _0x2f5e29[_0x40db('0xb')][_0x40db('0xc')]()===_0xecbeff[_0x40db('0xc')]();};}exports[_0x40db('0xd')]=function(_0x3bfdbb,_0x111549,_0x3f310a,_0x3d7f03){return function(_0x3582d2){try{var _0x16b575={'name':_0x111549[0x0],'timeout':_0x111549[0x1]};var _0x26ff4c=queue[_0x40db('0xe')](_0x16b575,{'typecast':!![]});if(_0x26ff4c[_0x40db('0xf')]){logger['error'](_0x40db('0x10'),_0x3bfdbb,_[_0x40db('0x11')](_0x26ff4c,_0x40db('0x12'))[_0x40db('0x13')](',\x20'));_0x3582d2[_0x40db('0x14')]();}else{var _0x19720f=_[_0x40db('0x15')](_0x3f310a[_0x40db('0x16')],handleFindAgent(_0x16b575[_0x40db('0xb')]));if(_0x19720f){var _0x57ded4=(_0x16b575[_0x40db('0x17')]||0xa)*0x3e8;var _0x53fc82,_0x1a3d66;var _0x131acc=seqqueue[_0x40db('0x18')](_0x57ded4);_0x131acc['id']=_0x3bfdbb;_0x131acc[_0x40db('0x19')]=_0x57ded4;_0x131acc[_0x40db('0x1a')]=_0x3d7f03[_0x40db('0x1a')];writeLog(_0x3bfdbb,_0x19720f,util['format'](_0x40db('0x1b'),_0x57ded4));_0x3f310a[_0x40db('0x1c')][_0x3bfdbb]['on'](_0x40db('0x1d'),function(){logger[_0x40db('0x8')](_0x40db('0x1e'),_0x3bfdbb);clearTimeout(_0x1a3d66);_0x1a3d66=undefined;_0x131acc[_0x40db('0x1f')]();if(_0x3f310a['rules'][_0x3bfdbb]){delete _0x3f310a['rules'][_0x3bfdbb];}_0x3582d2['stop']();});_0x3f310a[_0x40db('0x1c')][_0x3bfdbb]['on'](_0x40db('0x20'),function(){if(_0x3f310a['rules'][_0x3bfdbb]){delete _0x3f310a[_0x40db('0x1c')][_0x3bfdbb];}});_0x1a3d66=setTimeout(function(){logger[_0x40db('0x8')](_0x40db('0x21'),_0x3bfdbb);clearTimeout(_0x1a3d66);_0x131acc['close']();_0x3582d2[_0x40db('0x22')]();},_0x57ded4);strategy[_0x40db('0x23')](_0x131acc,_0x19720f,_0x3f310a,_0x3d7f03);}else{logger[_0x40db('0x24')](_0x40db('0x25'),_0x3bfdbb,_0x16b575[_0x40db('0xb')]);_0x3582d2[_0x40db('0x14')]();}}}catch(_0x37b109){console[_0x40db('0x26')](_0x37b109);logger['error'](_0x40db('0x27'),_0x3bfdbb,_0x37b109[_0x40db('0x28')]);_0x3582d2[_0x40db('0x14')]();}};};
\ No newline at end of file
+var _0x6600=['map','message','join','stop','find','timeout','createQueue','channel','rules','end','[%s][AGENT]\x20ROUTING\x20STOPPED','complete','close','[%s][AGENT]\x20agent\x20not\x20found\x20%s','log','stack','validate','lodash','util','seq-queue','../../../../config/logger','./strategy','number','info','format','name','toLowerCase','length','error'];(function(_0x22649a,_0x4b8b34){var _0x2eb0f3=function(_0x35b187){while(--_0x35b187){_0x22649a['push'](_0x22649a['shift']());}};_0x2eb0f3(++_0x4b8b34);}(_0x6600,0xdb));var _0x0660=function(_0x155cb3,_0x56ffc4){_0x155cb3=_0x155cb3-0x0;var _0x169ea1=_0x6600[_0x155cb3];return _0x169ea1;};'use strict';var schema=require(_0x0660('0x0'));var _=require(_0x0660('0x1'));var util=require(_0x0660('0x2'));var seqqueue=require(_0x0660('0x3'));var logger=require(_0x0660('0x4'))('routing');var strategy=require(_0x0660('0x5'));var queue=schema({'name':{'type':'string','required':!![],'message':'name\x20is\x20a\x20string\x20and\x20it\x20is\x20required'},'timeout':{'type':_0x0660('0x6'),'message':'timeout\x20is\x20a\x20number'}});function writeLog(_0x3db63e,_0x387859,_0x1acf59){return logger[_0x0660('0x7')](util[_0x0660('0x8')]('[%s][AGENT][NAME:%s][STATUS:%s]',_0x3db63e,_0x387859[_0x0660('0x9')],_0x1acf59));}function handleFindAgent(_0x4b8575){return function(_0x59d300){return _0x59d300['name'][_0x0660('0xa')]()===_0x4b8575['toLowerCase']();};}exports['consequence']=function(_0x4bee6a,_0x39b54e,_0x2d5dfd,_0x14d59f){return function(_0x2c741c){try{var _0x44f993={'name':_0x39b54e[0x0],'timeout':_0x39b54e[0x1]};var _0x37c981=queue['validate'](_0x44f993,{'typecast':!![]});if(_0x37c981[_0x0660('0xb')]){logger[_0x0660('0xc')]('[%s][AGENT]\x20%s',_0x4bee6a,_[_0x0660('0xd')](_0x37c981,_0x0660('0xe'))[_0x0660('0xf')](',\x20'));_0x2c741c[_0x0660('0x10')]();}else{var _0x3bfec7=_[_0x0660('0x11')](_0x2d5dfd['agents'],handleFindAgent(_0x44f993[_0x0660('0x9')]));if(_0x3bfec7){var _0x26ea54=(_0x44f993[_0x0660('0x12')]||0xa)*0x3e8;var _0x95c57b,_0x52c6be;var _0xb67d0b=seqqueue[_0x0660('0x13')](_0x26ea54);_0xb67d0b['id']=_0x4bee6a;_0xb67d0b['atimeout']=_0x26ea54;_0xb67d0b[_0x0660('0x14')]=_0x14d59f[_0x0660('0x14')];writeLog(_0x4bee6a,_0x3bfec7,util[_0x0660('0x8')]('START:%s',_0x26ea54));_0x2d5dfd[_0x0660('0x15')][_0x4bee6a]['on'](_0x0660('0x16'),function(){logger[_0x0660('0x7')](_0x0660('0x17'),_0x4bee6a);clearTimeout(_0x52c6be);_0x52c6be=undefined;_0xb67d0b['close']();if(_0x2d5dfd['rules'][_0x4bee6a]){delete _0x2d5dfd[_0x0660('0x15')][_0x4bee6a];}_0x2c741c['stop']();});_0x2d5dfd[_0x0660('0x15')][_0x4bee6a]['on'](_0x0660('0x18'),function(){if(_0x2d5dfd[_0x0660('0x15')][_0x4bee6a]){delete _0x2d5dfd[_0x0660('0x15')][_0x4bee6a];}});_0x52c6be=setTimeout(function(){logger[_0x0660('0x7')]('[%s][AGENT]\x20ROUTING\x20END',_0x4bee6a);clearTimeout(_0x52c6be);_0xb67d0b[_0x0660('0x19')]();_0x2c741c['next']();},_0x26ea54);strategy['agent'](_0xb67d0b,_0x3bfec7,_0x2d5dfd,_0x14d59f);}else{logger['error'](_0x0660('0x1a'),_0x4bee6a,_0x44f993['name']);_0x2c741c[_0x0660('0x10')]();}}}catch(_0x26bbce){console[_0x0660('0x1b')](_0x26bbce);logger[_0x0660('0xc')]('[%s][QUEUE]\x20%s',_0x4bee6a,_0x26bbce[_0x0660('0x1c')]);_0x2c741c[_0x0660('0x10')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9935=['consequence','isNil','interaction','UserId','info','[%s][AMAZONLEX]\x20%s','Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.','next','contact','format','YYYY-MM-DD\x20HH:mm:ss','out','channel','sms','whatsapp','phone','ChatWebsiteId','AccountId','account','InteractionId','created','body','create','then','stringify','finally','[%s][AMAZONLEX]\x20Welcome\x20Message\x20has\x20been\x20sent!','stop','LexRuntime','$LATEST','toString','postText','error','message','amazonlex','providerName','providerResponse','Message','Failed','catch','lodash','moment','aws-sdk','../../../../config/logger','routing','../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/smsMessage','../../rpc/faxMessage'];(function(_0x229b3d,_0x317df5){var _0x5c5dd7=function(_0x22eb01){while(--_0x22eb01){_0x229b3d['push'](_0x229b3d['shift']());}};_0x5c5dd7(++_0x317df5);}(_0x9935,0x1ea));var _0x5993=function(_0x234c80,_0x4f9c06){_0x234c80=_0x234c80-0x0;var _0x423b5b=_0x9935[_0x234c80];return _0x423b5b;};'use strict';var _=require(_0x5993('0x0'));var moment=require(_0x5993('0x1'));var AWS=require(_0x5993('0x2'));var utils=require('./utils');var logger=require(_0x5993('0x3'))(_0x5993('0x4'));var rpc={'chatMessage':require(_0x5993('0x5')),'openchannelMessage':require(_0x5993('0x6')),'mailMessage':require(_0x5993('0x7')),'smsMessage':require(_0x5993('0x8')),'faxMessage':require(_0x5993('0x9')),'whatsappMessage':require('../../rpc/whatsappMessage')};exports[_0x5993('0xa')]=function(_0xc284e6,_0x3a99bb){return function(_0x44c8df){try{if(!_[_0x5993('0xb')](this[_0x5993('0xc')][_0x5993('0xd')])){logger[_0x5993('0xe')](_0x5993('0xf'),_0xc284e6,_0x5993('0x10'));return _0x44c8df[_0x5993('0x11')]();}var _0x2d6ce0={'ContactId':this[_0x5993('0x12')]['id'],'sentAt':moment()[_0x5993('0x13')](_0x5993('0x14')),'direction':_0x5993('0x15')};if(this[_0x5993('0x16')]===_0x5993('0x17')||this['channel']===_0x5993('0x18')){_0x2d6ce0['phone']=this[_0x5993('0xc')][_0x5993('0x19')];}var _0x48eeb0=this[_0x5993('0x16')];if(_0x48eeb0==='chat'){_0x2d6ce0[_0x5993('0x1a')]=this['account']['id'];}else{_0x2d6ce0[_['upperFirst'](_0x48eeb0)+_0x5993('0x1b')]=this[_0x5993('0x1c')]['id'];}_0x2d6ce0[_['upperFirst'](_0x48eeb0)+_0x5993('0x1d')]=this[_0x5993('0xc')]['id'];if(this[_0x5993('0xc')][_0x5993('0x1e')]){var _0x26894e=_0x3a99bb[0x4];if(!_['isEmpty'](_0x26894e)){_0x2d6ce0[_0x5993('0x1f')]=utils['getMustacheRender'](_0x26894e,this);return rpc[_0x48eeb0+'Message'][_0x5993('0x20')](_0x2d6ce0)[_0x5993('0x21')](function(_0x18aaed){logger[_0x5993('0xe')](_0x5993('0xf'),_0xc284e6,_0x2d6ce0[_0x5993('0x1f')]);})['catch'](function(_0x306814){logger['error'](_0x5993('0xf'),_0xc284e6,JSON[_0x5993('0x22')](_0x306814));})[_0x5993('0x23')](function(){logger[_0x5993('0xe')](_0x5993('0x24'),_0xc284e6);_0x44c8df[_0x5993('0x25')]();});}else{logger['info']('[%s][AMAZONLEX]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!',_0xc284e6);_0x44c8df[_0x5993('0x25')]();}}else{var _0x35249d=this;var _0x436e85=new AWS[(_0x5993('0x26'))]({'accessKeyId':_0x3a99bb[0x0],'secretAccessKey':_0x3a99bb[0x1],'region':_0x3a99bb[0x2]});var _0x536693={'botAlias':_0x5993('0x27'),'botName':_0x3a99bb[0x3],'inputText':this['message'][_0x5993('0x1f')],'userId':this['channel']+':'+this[_0x5993('0xc')]['id'][_0x5993('0x28')]()};_0x436e85[_0x5993('0x29')](_0x536693,function(_0x51b391,_0x2eb28c){if(_0x51b391){logger[_0x5993('0x2a')](_0x5993('0xf'),_0xc284e6,_0x51b391[_0x5993('0x2b')]);_0x44c8df['next']();}else if(_0x2eb28c&&_0x2eb28c[_0x5993('0x2b')]){_0x35249d['body'][_0x5993('0x2c')]=_0x2eb28c;_0x2d6ce0[_0x5993('0x1f')]=_0x2eb28c['message'];_0x2d6ce0[_0x5993('0x2d')]=_0x5993('0x2c');_0x2d6ce0[_0x5993('0x2e')]=JSON[_0x5993('0x22')](_0x2eb28c);return rpc[_0x48eeb0+_0x5993('0x2f')][_0x5993('0x20')](_0x2d6ce0)[_0x5993('0x21')](function(_0x3381b2){logger['info'](_0x5993('0xf'),_0xc284e6,_0x2d6ce0['body']);if(_0x2eb28c['dialogState']==_0x5993('0x30')){_0x44c8df[_0x5993('0x11')]();}else{_0x44c8df[_0x5993('0x25')]();}})[_0x5993('0x31')](function(_0x7be1ba){logger[_0x5993('0x2a')](_0x5993('0xf'),_0xc284e6,JSON[_0x5993('0x22')](_0x7be1ba));_0x44c8df[_0x5993('0x11')]();});}else{_0x44c8df['next']();}});}}catch(_0x15aa2e){logger['error']('[%s][AMAZONLEX]\x20%s',_0xc284e6,JSON[_0x5993('0x22')](_0x15aa2e));_0x44c8df['stop']();}};};
\ No newline at end of file
+var _0xb9fb=['../../rpc/whatsappMessage','consequence','interaction','UserId','info','[%s][AMAZONLEX]\x20%s','contact','YYYY-MM-DD\x20HH:mm:ss','out','channel','sms','whatsapp','phone','chat','ChatWebsiteId','account','upperFirst','AccountId','InteractionId','created','body','getMustacheRender','Message','create','stringify','stop','[%s][AMAZONLEX]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!','LexRuntime','message','toString','error','amazonlex','providerResponse','then','Failed','next','catch','lodash','moment','../../../../config/logger','routing','../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/faxMessage'];(function(_0x3b688b,_0x3d315e){var _0x177088=function(_0x46c726){while(--_0x46c726){_0x3b688b['push'](_0x3b688b['shift']());}};_0x177088(++_0x3d315e);}(_0xb9fb,0xd9));var _0xbb9f=function(_0x1f9f37,_0x18776e){_0x1f9f37=_0x1f9f37-0x0;var _0x21c080=_0xb9fb[_0x1f9f37];return _0x21c080;};'use strict';var _=require(_0xbb9f('0x0'));var moment=require(_0xbb9f('0x1'));var AWS=require('aws-sdk');var utils=require('./utils');var logger=require(_0xbb9f('0x2'))(_0xbb9f('0x3'));var rpc={'chatMessage':require(_0xbb9f('0x4')),'openchannelMessage':require(_0xbb9f('0x5')),'mailMessage':require(_0xbb9f('0x6')),'smsMessage':require('../../rpc/smsMessage'),'faxMessage':require(_0xbb9f('0x7')),'whatsappMessage':require(_0xbb9f('0x8'))};exports[_0xbb9f('0x9')]=function(_0x1b17b0,_0x4e5f38){return function(_0x19b4cf){try{if(!_['isNil'](this[_0xbb9f('0xa')][_0xbb9f('0xb')])){logger[_0xbb9f('0xc')](_0xbb9f('0xd'),_0x1b17b0,'Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.');return _0x19b4cf['next']();}var _0x3b34dd={'ContactId':this[_0xbb9f('0xe')]['id'],'sentAt':moment()['format'](_0xbb9f('0xf')),'direction':_0xbb9f('0x10')};if(this[_0xbb9f('0x11')]===_0xbb9f('0x12')||this[_0xbb9f('0x11')]===_0xbb9f('0x13')){_0x3b34dd['phone']=this['interaction'][_0xbb9f('0x14')];}var _0x584968=this['channel'];if(_0x584968===_0xbb9f('0x15')){_0x3b34dd[_0xbb9f('0x16')]=this[_0xbb9f('0x17')]['id'];}else{_0x3b34dd[_[_0xbb9f('0x18')](_0x584968)+_0xbb9f('0x19')]=this['account']['id'];}_0x3b34dd[_[_0xbb9f('0x18')](_0x584968)+_0xbb9f('0x1a')]=this[_0xbb9f('0xa')]['id'];if(this['interaction'][_0xbb9f('0x1b')]){var _0x1158e8=_0x4e5f38[0x4];if(!_['isEmpty'](_0x1158e8)){_0x3b34dd[_0xbb9f('0x1c')]=utils[_0xbb9f('0x1d')](_0x1158e8,this);return rpc[_0x584968+_0xbb9f('0x1e')][_0xbb9f('0x1f')](_0x3b34dd)['then'](function(_0x5c5b47){logger[_0xbb9f('0xc')](_0xbb9f('0xd'),_0x1b17b0,_0x3b34dd[_0xbb9f('0x1c')]);})['catch'](function(_0x22a32a){logger['error'](_0xbb9f('0xd'),_0x1b17b0,JSON[_0xbb9f('0x20')](_0x22a32a));})['finally'](function(){logger[_0xbb9f('0xc')]('[%s][AMAZONLEX]\x20Welcome\x20Message\x20has\x20been\x20sent!',_0x1b17b0);_0x19b4cf[_0xbb9f('0x21')]();});}else{logger['info'](_0xbb9f('0x22'),_0x1b17b0);_0x19b4cf[_0xbb9f('0x21')]();}}else{var _0x385b84=this;var _0x7392ad=new AWS[(_0xbb9f('0x23'))]({'accessKeyId':_0x4e5f38[0x0],'secretAccessKey':_0x4e5f38[0x1],'region':_0x4e5f38[0x2]});var _0x263829={'botAlias':'$LATEST','botName':_0x4e5f38[0x3],'inputText':this[_0xbb9f('0x24')][_0xbb9f('0x1c')],'userId':this[_0xbb9f('0x11')]+':'+this[_0xbb9f('0xa')]['id'][_0xbb9f('0x25')]()};_0x7392ad['postText'](_0x263829,function(_0x8a60fe,_0x45e28e){if(_0x8a60fe){logger[_0xbb9f('0x26')](_0xbb9f('0xd'),_0x1b17b0,_0x8a60fe[_0xbb9f('0x24')]);_0x19b4cf['next']();}else if(_0x45e28e&&_0x45e28e['message']){_0x385b84[_0xbb9f('0x1c')][_0xbb9f('0x27')]=_0x45e28e;_0x3b34dd[_0xbb9f('0x1c')]=_0x45e28e[_0xbb9f('0x24')];_0x3b34dd['providerName']='amazonlex';_0x3b34dd[_0xbb9f('0x28')]=JSON[_0xbb9f('0x20')](_0x45e28e);return rpc[_0x584968+_0xbb9f('0x1e')][_0xbb9f('0x1f')](_0x3b34dd)[_0xbb9f('0x29')](function(_0x56d695){logger[_0xbb9f('0xc')](_0xbb9f('0xd'),_0x1b17b0,_0x3b34dd[_0xbb9f('0x1c')]);if(_0x45e28e['dialogState']==_0xbb9f('0x2a')){_0x19b4cf[_0xbb9f('0x2b')]();}else{_0x19b4cf[_0xbb9f('0x21')]();}})[_0xbb9f('0x2c')](function(_0x26032e){logger['error'](_0xbb9f('0xd'),_0x1b17b0,JSON[_0xbb9f('0x20')](_0x26032e));_0x19b4cf['next']();});}else{_0x19b4cf[_0xbb9f('0x2b')]();}});}}catch(_0x35e7e0){logger[_0xbb9f('0x26')](_0xbb9f('0xd'),_0x1b17b0,JSON[_0xbb9f('0x20')](_0x35e7e0));_0x19b4cf[_0xbb9f('0x21')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbba0=['InteractionId','Message','Smtp','service','host','port','secure','authentication','auth','user','inReplyTo','messageId','html','replace','<div\x20id=\x22xm-mail-content\x22','<div','</div>','auto-replied','All','auto_reply','sendMailMessage','then','[%s][AUTOREPLY]\x20SMTP\x20SENT','catch','error','[RPC][%s][AUTOREPLY]\x20%s','finally','resolve','update','stringify','[RPC][%s][AUTOREPLY][autoreplyExecuted]\x20%s','autoreplyExecuted','Interaction','lodash','moment','./utils','../../../../config/logger','routing','../../rpc/mailMessage','../../rpc/smsMessage','../../rpc/faxMessage','../../rpc/whatsappMessage','../../rpc/chatInteraction','../../rpc/openchannelInteraction','../../rpc/mailInteraction','../../rpc/smsInteraction','../../rpc/faxInteraction','../../rpc/whatsappInteraction','consequence','mail','body','isAutoreply','info','[%s][AUTOREPLY]\x20%s','Autoreply\x20not\x20executed\x20(message\x20is\x20autoreply)','interaction','created','Autoreply\x20already\x20sent','next','[%s][AUTOREPLY][autoreplyExecuted]\x20%s','One\x20Time\x20already\x20sent','format','YYYY-MM-DD\x20HH:mm:ss','out','channel','getMustacheRender','from','phone','message','read','subject','startsWith','Re:','Re:\x20','chat','ChatWebsiteId','account','upperFirst'];(function(_0x4344a2,_0x4798ee){var _0x3dc2cb=function(_0x1a127d){while(--_0x1a127d){_0x4344a2['push'](_0x4344a2['shift']());}};_0x3dc2cb(++_0x4798ee);}(_0xbba0,0x10b));var _0x0bba=function(_0x2c91e9,_0x2fb965){_0x2c91e9=_0x2c91e9-0x0;var _0x13f0ff=_0xbba0[_0x2c91e9];return _0x13f0ff;};'use strict';var _=require(_0x0bba('0x0'));var moment=require(_0x0bba('0x1'));var utils=require(_0x0bba('0x2'));var logger=require(_0x0bba('0x3'))(_0x0bba('0x4'));var rpc={'chatMessage':require('../../rpc/chatMessage'),'openchannelMessage':require('../../rpc/openchannelMessage'),'mailMessage':require(_0x0bba('0x5')),'smsMessage':require(_0x0bba('0x6')),'faxMessage':require(_0x0bba('0x7')),'whatsappMessage':require(_0x0bba('0x8')),'chatInteraction':require(_0x0bba('0x9')),'openchannelInteraction':require(_0x0bba('0xa')),'mailInteraction':require(_0x0bba('0xb')),'smsInteraction':require(_0x0bba('0xc')),'faxInteraction':require(_0x0bba('0xd')),'whatsappInteraction':require(_0x0bba('0xe'))};var mailRpc=require('../../mailRpc');exports[_0x0bba('0xf')]=function(_0x34d0c5,_0x57937d,_0x1b7e69,_0x4f41d2){return function(_0x1a8521){try{var _0x1d96e0=this['channel'];if(_0x1d96e0===_0x0bba('0x10')&&_0x4f41d2[_0x0bba('0x11')][_0x0bba('0x12')]){logger[_0x0bba('0x13')](_0x0bba('0x14'),_0x34d0c5,_0x0bba('0x15'));return _0x1a8521['next']();}if(_0x57937d[0x0]==='1'&&(_['isNil'](this[_0x0bba('0x16')]['created'])||!this[_0x0bba('0x16')][_0x0bba('0x17')])){logger[_0x0bba('0x13')](_0x0bba('0x14'),_0x34d0c5,_0x0bba('0x18'));return _0x1a8521[_0x0bba('0x19')]();}if(_0x57937d[0x0]==='2'&&this['interaction']['autoreplyExecuted']){logger[_0x0bba('0x13')](_0x0bba('0x1a'),_0x34d0c5,_0x0bba('0x1b'));return _0x1a8521[_0x0bba('0x19')]();}var _0x3fc28b={'ContactId':this['contact']['id'],'sentAt':moment()[_0x0bba('0x1c')](_0x0bba('0x1d')),'direction':_0x0bba('0x1e')};if(this[_0x0bba('0x1f')]===_0x0bba('0x10')){_0x3fc28b[_0x0bba('0x11')]=utils[_0x0bba('0x20')](_0x57937d[0x2],this);}else{_0x3fc28b[_0x0bba('0x11')]=utils[_0x0bba('0x20')](_0x57937d[0x1],this);}if(this['message']){_0x3fc28b['to']=this['message'][_0x0bba('0x21')]||'';if(this[_0x0bba('0x1f')]===_0x0bba('0x10')&&_0x57937d[0x1]==='1'){_0x3fc28b['cc']=this['message']['cc']||'';}_0x3fc28b['from']=this['message']['to']||'';_0x3fc28b[_0x0bba('0x22')]=this[_0x0bba('0x23')]['phone']||'';_0x3fc28b[_0x0bba('0x24')]=!![];if(this[_0x0bba('0x23')]['subject']){_0x3fc28b[_0x0bba('0x25')]='';_0x3fc28b['subject']+=_[_0x0bba('0x26')](this[_0x0bba('0x23')][_0x0bba('0x25')],_0x0bba('0x27'))?'':_0x0bba('0x28');_0x3fc28b[_0x0bba('0x25')]+=this[_0x0bba('0x23')]['subject'];}}if(this['channel']===_0x0bba('0x29')){_0x3fc28b[_0x0bba('0x2a')]=this[_0x0bba('0x2b')]['id'];}else{_0x3fc28b[_[_0x0bba('0x2c')](this[_0x0bba('0x1f')])+'AccountId']=this[_0x0bba('0x2b')]['id'];}_0x3fc28b[_[_0x0bba('0x2c')](this[_0x0bba('0x1f')])+_0x0bba('0x2d')]=this[_0x0bba('0x16')]['id'];var _0x52bed9=this[_0x0bba('0x16')];if(rpc[this[_0x0bba('0x1f')]+_0x0bba('0x2e')]){if(this[_0x0bba('0x1f')]===_0x0bba('0x10')){var _0x50df2e={'tls':{'rejectUnauthorized':![]}};if(this[_0x0bba('0x2b')][_0x0bba('0x2f')][_0x0bba('0x30')]){_0x50df2e['service']=this[_0x0bba('0x2b')][_0x0bba('0x2f')][_0x0bba('0x30')];}else{_0x50df2e[_0x0bba('0x31')]=this['account'][_0x0bba('0x2f')]['host'];_0x50df2e[_0x0bba('0x32')]=this['account']['Smtp'][_0x0bba('0x32')];_0x50df2e[_0x0bba('0x33')]=this[_0x0bba('0x2b')][_0x0bba('0x2f')]['secure'];}if(this[_0x0bba('0x2b')]['Smtp'][_0x0bba('0x34')]){_0x50df2e[_0x0bba('0x35')]={'user':this[_0x0bba('0x2b')][_0x0bba('0x2f')][_0x0bba('0x36')],'pass':this[_0x0bba('0x2b')][_0x0bba('0x2f')]['pass']};}_0x3fc28b[_0x0bba('0x37')]=this[_0x0bba('0x23')][_0x0bba('0x38')];_0x3fc28b[_0x0bba('0x39')]='<div\x20id=\x22xm-mail-content\x22>'+_[_0x0bba('0x3a')](_0x3fc28b['body'],_0x0bba('0x3b'),_0x0bba('0x3c'))+_0x0bba('0x3d');_0x3fc28b['headers']={'Auto-Submitted':_0x0bba('0x3e'),'X-Auto-Response-Suppress':_0x0bba('0x3f'),'Precedence':_0x0bba('0x40')};return mailRpc[_0x0bba('0x41')](_0x50df2e,_0x3fc28b)[_0x0bba('0x42')](function(_0x4428ca){logger[_0x0bba('0x13')](_0x0bba('0x43'),_0x34d0c5);_0x3fc28b[_0x0bba('0x38')]=_0x4428ca[_0x0bba('0x23')][_0x0bba('0x38')];return rpc[_0x1d96e0+_0x0bba('0x2e')]['create'](_0x3fc28b);})['then'](function(_0x458de6){logger[_0x0bba('0x13')]('[%s][AUTOREPLY]\x20%s',_0x34d0c5,JSON['stringify'](_0x458de6));})[_0x0bba('0x44')](function(_0x3d4fb5){logger[_0x0bba('0x45')](_0x0bba('0x46'),_0x34d0c5,JSON['stringify'](_0x3d4fb5));})[_0x0bba('0x47')](function(){Promise[_0x0bba('0x48')]()[_0x0bba('0x42')](function(){if(_0x57937d[0x0]!=='2'||_0x52bed9['autoreplyExecuted'])return;return rpc[_0x1d96e0+'Interaction'][_0x0bba('0x49')](_0x52bed9['id'],{'autoreplyExecuted':!![]})[_0x0bba('0x42')](function(_0x519309){logger['info'](_0x0bba('0x1a'),_0x34d0c5,JSON[_0x0bba('0x4a')](_0x519309));})[_0x0bba('0x44')](function(_0x428d41){logger[_0x0bba('0x45')](_0x0bba('0x4b'),_0x34d0c5,JSON[_0x0bba('0x4a')](_0x428d41));});})[_0x0bba('0x42')](function(){_0x1a8521[_0x0bba('0x19')]();});});}else{return rpc[this[_0x0bba('0x1f')]+'Message']['create'](_0x3fc28b)[_0x0bba('0x42')](function(_0x3efc9e){logger[_0x0bba('0x13')]('[%s][AUTOREPLY]\x20%s',_0x34d0c5,_0x3fc28b[_0x0bba('0x11')]);})[_0x0bba('0x44')](function(_0x3e61ed){logger[_0x0bba('0x45')](_0x0bba('0x14'),_0x34d0c5,JSON[_0x0bba('0x4a')](_0x3e61ed));})['finally'](function(){Promise['resolve']()[_0x0bba('0x42')](function(){if(_0x57937d[0x0]!=='2'||_0x52bed9[_0x0bba('0x4c')])return;return rpc[_0x1d96e0+_0x0bba('0x4d')][_0x0bba('0x49')](_0x52bed9['id'],{'autoreplyExecuted':!![]})[_0x0bba('0x42')](function(_0x335e80){logger[_0x0bba('0x13')]('[%s][AUTOREPLY][autoreplyExecuted]\x20%s',_0x34d0c5,JSON[_0x0bba('0x4a')](_0x335e80));})['catch'](function(_0x1e1d85){logger['error'](_0x0bba('0x4b'),_0x34d0c5,JSON['stringify'](_0x1e1d85));});})['then'](function(){_0x1a8521['next']();});});}}}catch(_0x32497f){logger[_0x0bba('0x45')](_0x0bba('0x14'),_0x34d0c5,JSON['stringify'](_0x32497f));_0x1a8521['stop']();}};};
\ No newline at end of file
+var _0x2e0c=['[RPC][%s][AUTOREPLY][autoreplyExecuted]\x20%s','stop','lodash','moment','./utils','../../../../config/logger','../../rpc/chatMessage','../../rpc/mailMessage','../../rpc/faxMessage','../../rpc/chatInteraction','../../rpc/openchannelInteraction','../../rpc/mailInteraction','../../rpc/smsInteraction','../../mailRpc','consequence','channel','mail','isAutoreply','next','isNil','interaction','created','[%s][AUTOREPLY]\x20%s','Autoreply\x20already\x20sent','autoreplyExecuted','info','[%s][AUTOREPLY][autoreplyExecuted]\x20%s','One\x20Time\x20already\x20sent','YYYY-MM-DD\x20HH:mm:ss','body','getMustacheRender','message','from','phone','subject','Re:','Re:\x20','ChatWebsiteId','account','upperFirst','AccountId','InteractionId','Message','Smtp','service','host','port','secure','authentication','inReplyTo','messageId','html','replace','<div\x20id=\x22xm-mail-content\x22','<div','</div>','headers','auto-replied','All','auto_reply','sendMailMessage','then','[%s][AUTOREPLY]\x20SMTP\x20SENT','create','catch','stringify','finally','resolve','Interaction','update','error'];(function(_0x3f042c,_0x3d2cfe){var _0x280d2e=function(_0x235cad){while(--_0x235cad){_0x3f042c['push'](_0x3f042c['shift']());}};_0x280d2e(++_0x3d2cfe);}(_0x2e0c,0x90));var _0xc2e0=function(_0x5c085a,_0x59b8bd){_0x5c085a=_0x5c085a-0x0;var _0x18804d=_0x2e0c[_0x5c085a];return _0x18804d;};'use strict';var _=require(_0xc2e0('0x0'));var moment=require(_0xc2e0('0x1'));var utils=require(_0xc2e0('0x2'));var logger=require(_0xc2e0('0x3'))('routing');var rpc={'chatMessage':require(_0xc2e0('0x4')),'openchannelMessage':require('../../rpc/openchannelMessage'),'mailMessage':require(_0xc2e0('0x5')),'smsMessage':require('../../rpc/smsMessage'),'faxMessage':require(_0xc2e0('0x6')),'whatsappMessage':require('../../rpc/whatsappMessage'),'chatInteraction':require(_0xc2e0('0x7')),'openchannelInteraction':require(_0xc2e0('0x8')),'mailInteraction':require(_0xc2e0('0x9')),'smsInteraction':require(_0xc2e0('0xa')),'faxInteraction':require('../../rpc/faxInteraction'),'whatsappInteraction':require('../../rpc/whatsappInteraction')};var mailRpc=require(_0xc2e0('0xb'));exports[_0xc2e0('0xc')]=function(_0x4af824,_0x33d415,_0x52b43e,_0x21ab5b){return function(_0x55025d){try{var _0x3d5bf1=this[_0xc2e0('0xd')];if(_0x3d5bf1===_0xc2e0('0xe')&&_0x21ab5b['body'][_0xc2e0('0xf')]){logger['info']('[%s][AUTOREPLY]\x20%s',_0x4af824,'Autoreply\x20not\x20executed\x20(message\x20is\x20autoreply)');return _0x55025d[_0xc2e0('0x10')]();}if(_0x33d415[0x0]==='1'&&(_[_0xc2e0('0x11')](this[_0xc2e0('0x12')][_0xc2e0('0x13')])||!this[_0xc2e0('0x12')][_0xc2e0('0x13')])){logger['info'](_0xc2e0('0x14'),_0x4af824,_0xc2e0('0x15'));return _0x55025d[_0xc2e0('0x10')]();}if(_0x33d415[0x0]==='2'&&this[_0xc2e0('0x12')][_0xc2e0('0x16')]){logger[_0xc2e0('0x17')](_0xc2e0('0x18'),_0x4af824,_0xc2e0('0x19'));return _0x55025d[_0xc2e0('0x10')]();}var _0x51f01e={'ContactId':this['contact']['id'],'sentAt':moment()['format'](_0xc2e0('0x1a')),'direction':'out'};if(this[_0xc2e0('0xd')]===_0xc2e0('0xe')){_0x51f01e[_0xc2e0('0x1b')]=utils['getMustacheRender'](_0x33d415[0x2],this);}else{_0x51f01e[_0xc2e0('0x1b')]=utils[_0xc2e0('0x1c')](_0x33d415[0x1],this);}if(this['message']){_0x51f01e['to']=this[_0xc2e0('0x1d')][_0xc2e0('0x1e')]||'';if(this['channel']===_0xc2e0('0xe')&&_0x33d415[0x1]==='1'){_0x51f01e['cc']=this['message']['cc']||'';}_0x51f01e[_0xc2e0('0x1e')]=this[_0xc2e0('0x1d')]['to']||'';_0x51f01e[_0xc2e0('0x1f')]=this['message']['phone']||'';_0x51f01e['read']=!![];if(this[_0xc2e0('0x1d')][_0xc2e0('0x20')]){_0x51f01e[_0xc2e0('0x20')]='';_0x51f01e[_0xc2e0('0x20')]+=_['startsWith'](this[_0xc2e0('0x1d')][_0xc2e0('0x20')],_0xc2e0('0x21'))?'':_0xc2e0('0x22');_0x51f01e['subject']+=this[_0xc2e0('0x1d')][_0xc2e0('0x20')];}}if(this['channel']==='chat'){_0x51f01e[_0xc2e0('0x23')]=this[_0xc2e0('0x24')]['id'];}else{_0x51f01e[_[_0xc2e0('0x25')](this[_0xc2e0('0xd')])+_0xc2e0('0x26')]=this[_0xc2e0('0x24')]['id'];}_0x51f01e[_[_0xc2e0('0x25')](this['channel'])+_0xc2e0('0x27')]=this[_0xc2e0('0x12')]['id'];var _0x3ada57=this[_0xc2e0('0x12')];if(rpc[this['channel']+_0xc2e0('0x28')]){if(this[_0xc2e0('0xd')]===_0xc2e0('0xe')){var _0x2b5123={'tls':{'rejectUnauthorized':![]}};if(this[_0xc2e0('0x24')][_0xc2e0('0x29')]['service']){_0x2b5123[_0xc2e0('0x2a')]=this[_0xc2e0('0x24')][_0xc2e0('0x29')][_0xc2e0('0x2a')];}else{_0x2b5123[_0xc2e0('0x2b')]=this[_0xc2e0('0x24')][_0xc2e0('0x29')]['host'];_0x2b5123[_0xc2e0('0x2c')]=this[_0xc2e0('0x24')][_0xc2e0('0x29')]['port'];_0x2b5123[_0xc2e0('0x2d')]=this[_0xc2e0('0x24')][_0xc2e0('0x29')][_0xc2e0('0x2d')];}if(this['account'][_0xc2e0('0x29')][_0xc2e0('0x2e')]){_0x2b5123['auth']={'user':this[_0xc2e0('0x24')]['Smtp']['user'],'pass':this[_0xc2e0('0x24')]['Smtp']['pass']};}_0x51f01e[_0xc2e0('0x2f')]=this['message'][_0xc2e0('0x30')];_0x51f01e[_0xc2e0('0x31')]='<div\x20id=\x22xm-mail-content\x22>'+_[_0xc2e0('0x32')](_0x51f01e['body'],_0xc2e0('0x33'),_0xc2e0('0x34'))+_0xc2e0('0x35');_0x51f01e[_0xc2e0('0x36')]={'Auto-Submitted':_0xc2e0('0x37'),'X-Auto-Response-Suppress':_0xc2e0('0x38'),'Precedence':_0xc2e0('0x39')};return mailRpc[_0xc2e0('0x3a')](_0x2b5123,_0x51f01e)[_0xc2e0('0x3b')](function(_0x9607ea){logger[_0xc2e0('0x17')](_0xc2e0('0x3c'),_0x4af824);_0x51f01e[_0xc2e0('0x30')]=_0x9607ea[_0xc2e0('0x1d')]['messageId'];return rpc[_0x3d5bf1+_0xc2e0('0x28')][_0xc2e0('0x3d')](_0x51f01e);})[_0xc2e0('0x3b')](function(_0xd14631){logger[_0xc2e0('0x17')]('[%s][AUTOREPLY]\x20%s',_0x4af824,JSON['stringify'](_0xd14631));})[_0xc2e0('0x3e')](function(_0x218c76){logger['error']('[RPC][%s][AUTOREPLY]\x20%s',_0x4af824,JSON[_0xc2e0('0x3f')](_0x218c76));})[_0xc2e0('0x40')](function(){Promise[_0xc2e0('0x41')]()['then'](function(){if(_0x33d415[0x0]!=='2'||_0x3ada57[_0xc2e0('0x16')])return;return rpc[_0x3d5bf1+_0xc2e0('0x42')][_0xc2e0('0x43')](_0x3ada57['id'],{'autoreplyExecuted':!![]})[_0xc2e0('0x3b')](function(_0x2f7b56){logger[_0xc2e0('0x17')](_0xc2e0('0x18'),_0x4af824,JSON[_0xc2e0('0x3f')](_0x2f7b56));})[_0xc2e0('0x3e')](function(_0x17314f){logger[_0xc2e0('0x44')](_0xc2e0('0x45'),_0x4af824,JSON['stringify'](_0x17314f));});})[_0xc2e0('0x3b')](function(){_0x55025d[_0xc2e0('0x10')]();});});}else{return rpc[this['channel']+'Message'][_0xc2e0('0x3d')](_0x51f01e)['then'](function(_0x569025){logger['info']('[%s][AUTOREPLY]\x20%s',_0x4af824,_0x51f01e[_0xc2e0('0x1b')]);})['catch'](function(_0x5321dc){logger['error'](_0xc2e0('0x14'),_0x4af824,JSON['stringify'](_0x5321dc));})[_0xc2e0('0x40')](function(){Promise[_0xc2e0('0x41')]()['then'](function(){if(_0x33d415[0x0]!=='2'||_0x3ada57[_0xc2e0('0x16')])return;return rpc[_0x3d5bf1+'Interaction'][_0xc2e0('0x43')](_0x3ada57['id'],{'autoreplyExecuted':!![]})[_0xc2e0('0x3b')](function(_0x39f47b){logger[_0xc2e0('0x17')](_0xc2e0('0x18'),_0x4af824,JSON[_0xc2e0('0x3f')](_0x39f47b));})[_0xc2e0('0x3e')](function(_0x1f6bed){logger[_0xc2e0('0x44')](_0xc2e0('0x45'),_0x4af824,JSON[_0xc2e0('0x3f')](_0x1f6bed));});})[_0xc2e0('0x3b')](function(){_0x55025d['next']();});});}}}catch(_0x1cf34){logger['error'](_0xc2e0('0x14'),_0x4af824,JSON['stringify'](_0x1cf34));_0x55025d[_0xc2e0('0x46')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0c48=['error','[%s][CLOSE]\x20%s','stringify','finally','stop','moment','routing','../../rpc/openchannelInteraction','../../rpc/smsInteraction','../../rpc/faxInteraction','../../rpc/whatsappInteraction','[%s][CLOSE]\x20reason\x20%s','format','YYYY-MM-DD\x20HH:mm:ss','system','channel','Interaction','interaction','then','info','[%s][CLOSE]\x20interaction\x20%s\x20has\x20been\x20closed!'];(function(_0x11144e,_0x48498f){var _0x59e9fa=function(_0x525a43){while(--_0x525a43){_0x11144e['push'](_0x11144e['shift']());}};_0x59e9fa(++_0x48498f);}(_0x0c48,0x16a));var _0x80c4=function(_0x2a4095,_0x13f4f0){_0x2a4095=_0x2a4095-0x0;var _0x52eeab=_0x0c48[_0x2a4095];return _0x52eeab;};'use strict';var moment=require(_0x80c4('0x0'));var logger=require('../../../../config/logger')(_0x80c4('0x1'));var rpc={'chatInteraction':require('../../rpc/chatInteraction'),'openchannelInteraction':require(_0x80c4('0x2')),'smsInteraction':require(_0x80c4('0x3')),'mailInteraction':require('../../rpc/mailInteraction'),'faxInteraction':require(_0x80c4('0x4')),'whatsappInteraction':require(_0x80c4('0x5'))};exports['consequence']=function(_0x1478b2,_0x815bcc,_0x1b0177,_0x2f594e){return function(_0x11207f){try{logger['info'](_0x80c4('0x6'),_0x1478b2,_0x815bcc[0x0]);var _0x3d9f4f={'closed':0x1,'closedAt':moment()[_0x80c4('0x7')](_0x80c4('0x8')),'closeReason':_0x80c4('0x9'),'disposition':_0x815bcc[0x0]};if(rpc[_0x2f594e[_0x80c4('0xa')]+'Interaction']){rpc[_0x2f594e[_0x80c4('0xa')]+_0x80c4('0xb')]['update'](_0x2f594e[_0x80c4('0xc')]['id'],_0x3d9f4f)[_0x80c4('0xd')](function(_0x526ae4){logger[_0x80c4('0xe')](_0x80c4('0xf'),_0x1478b2,_0x2f594e[_0x80c4('0xc')]['id']);})['catch'](function(_0x4a8fef){logger[_0x80c4('0x10')](_0x80c4('0x11'),_0x1478b2,JSON[_0x80c4('0x12')](_0x4a8fef));})[_0x80c4('0x13')](function(){_0x11207f[_0x80c4('0x14')]();});}}catch(_0x5ee1e4){logger[_0x80c4('0x10')](_0x80c4('0x11'),_0x1478b2,JSON[_0x80c4('0x12')](_0x5ee1e4));_0x11207f[_0x80c4('0x14')]();}};};
\ No newline at end of file
+var _0xad25=['[%s][CLOSE]\x20interaction\x20%s\x20has\x20been\x20closed!','catch','error','[%s][CLOSE]\x20%s','finally','stop','stringify','moment','routing','../../rpc/chatInteraction','../../rpc/smsInteraction','../../rpc/mailInteraction','../../rpc/faxInteraction','../../rpc/whatsappInteraction','info','format','YYYY-MM-DD\x20HH:mm:ss','channel','Interaction','interaction','then'];(function(_0x13dac0,_0x5db124){var _0x1eeca7=function(_0x56f5fa){while(--_0x56f5fa){_0x13dac0['push'](_0x13dac0['shift']());}};_0x1eeca7(++_0x5db124);}(_0xad25,0x118));var _0x5ad2=function(_0x5f3f88,_0x562baf){_0x5f3f88=_0x5f3f88-0x0;var _0xd08119=_0xad25[_0x5f3f88];return _0xd08119;};'use strict';var moment=require(_0x5ad2('0x0'));var logger=require('../../../../config/logger')(_0x5ad2('0x1'));var rpc={'chatInteraction':require(_0x5ad2('0x2')),'openchannelInteraction':require('../../rpc/openchannelInteraction'),'smsInteraction':require(_0x5ad2('0x3')),'mailInteraction':require(_0x5ad2('0x4')),'faxInteraction':require(_0x5ad2('0x5')),'whatsappInteraction':require(_0x5ad2('0x6'))};exports['consequence']=function(_0x49cc36,_0xd28f73,_0x280c43,_0x206e15){return function(_0x7d790e){try{logger[_0x5ad2('0x7')]('[%s][CLOSE]\x20reason\x20%s',_0x49cc36,_0xd28f73[0x0]);var _0x54a50a={'closed':0x1,'closedAt':moment()[_0x5ad2('0x8')](_0x5ad2('0x9')),'closeReason':'system','disposition':_0xd28f73[0x0]};if(rpc[_0x206e15[_0x5ad2('0xa')]+_0x5ad2('0xb')]){rpc[_0x206e15['channel']+_0x5ad2('0xb')]['update'](_0x206e15[_0x5ad2('0xc')]['id'],_0x54a50a)[_0x5ad2('0xd')](function(_0x48465c){logger[_0x5ad2('0x7')](_0x5ad2('0xe'),_0x49cc36,_0x206e15['interaction']['id']);})[_0x5ad2('0xf')](function(_0x513dca){logger[_0x5ad2('0x10')](_0x5ad2('0x11'),_0x49cc36,JSON['stringify'](_0x513dca));})[_0x5ad2('0x12')](function(){_0x7d790e[_0x5ad2('0x13')]();});}}catch(_0xee67e4){logger[_0x5ad2('0x10')](_0x5ad2('0x11'),_0x49cc36,JSON[_0x5ad2('0x14')](_0xee67e4));_0x7d790e[_0x5ad2('0x13')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5a5a=['speech','providerResponse','metadata','endConversation','error','stringify','moment','apiai-promise','md5','./utils','../../../../config/logger','../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/whatsappMessage','consequence','isNil','interaction','UserId','[%s][DIALOGFLOW]\x20%s','Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.','next','contact','format','YYYY-MM-DD\x20HH:mm:ss','out','channel','sms','whatsapp','phone','chat','ChatWebsiteId','upperFirst','AccountId','account','InteractionId','created','isEmpty','body','getMustacheRender','Message','create','then','catch','finally','info','[%s][DIALOGFLOW]\x20Welcome\x20Message\x20has\x20been\x20sent!','stop','message','dialogflow','result'];(function(_0x381df6,_0x190833){var _0x26be31=function(_0x57bc43){while(--_0x57bc43){_0x381df6['push'](_0x381df6['shift']());}};_0x26be31(++_0x190833);}(_0x5a5a,0x1d1));var _0xa5a5=function(_0xa30527,_0x331991){_0xa30527=_0xa30527-0x0;var _0xf40364=_0x5a5a[_0xa30527];return _0xf40364;};'use strict';var _=require('lodash');var moment=require(_0xa5a5('0x0'));var apiai=require(_0xa5a5('0x1'));var md5=require(_0xa5a5('0x2'));var utils=require(_0xa5a5('0x3'));var logger=require(_0xa5a5('0x4'))('routing');var rpc={'chatMessage':require(_0xa5a5('0x5')),'openchannelMessage':require(_0xa5a5('0x6')),'mailMessage':require(_0xa5a5('0x7')),'smsMessage':require('../../rpc/smsMessage'),'faxMessage':require('../../rpc/faxMessage'),'whatsappMessage':require(_0xa5a5('0x8'))};exports[_0xa5a5('0x9')]=function(_0x5691f1,_0x3ea00f){return function(_0xf2ea20){try{if(!_[_0xa5a5('0xa')](this[_0xa5a5('0xb')][_0xa5a5('0xc')])){logger['info'](_0xa5a5('0xd'),_0x5691f1,_0xa5a5('0xe'));return _0xf2ea20[_0xa5a5('0xf')]();}var _0x2dace1={'ContactId':this[_0xa5a5('0x10')]['id'],'sentAt':moment()[_0xa5a5('0x11')](_0xa5a5('0x12')),'direction':_0xa5a5('0x13')};if(this[_0xa5a5('0x14')]===_0xa5a5('0x15')||this[_0xa5a5('0x14')]===_0xa5a5('0x16')){_0x2dace1['phone']=this[_0xa5a5('0xb')][_0xa5a5('0x17')];}var _0x3917b1=this[_0xa5a5('0x14')];if(_0x3917b1===_0xa5a5('0x18')){_0x2dace1[_0xa5a5('0x19')]=this['account']['id'];}else{_0x2dace1[_[_0xa5a5('0x1a')](_0x3917b1)+_0xa5a5('0x1b')]=this[_0xa5a5('0x1c')]['id'];}_0x2dace1[_[_0xa5a5('0x1a')](_0x3917b1)+_0xa5a5('0x1d')]=this[_0xa5a5('0xb')]['id'];if(this[_0xa5a5('0xb')][_0xa5a5('0x1e')]){var _0x48d369=_0x3ea00f[0x2];if(!_[_0xa5a5('0x1f')](_0x48d369)){_0x2dace1[_0xa5a5('0x20')]=utils[_0xa5a5('0x21')](_0x48d369,this);return rpc[_0x3917b1+_0xa5a5('0x22')][_0xa5a5('0x23')](_0x2dace1)[_0xa5a5('0x24')](function(_0x28c89f){logger['info'](_0xa5a5('0xd'),_0x5691f1,_0x2dace1[_0xa5a5('0x20')]);})[_0xa5a5('0x25')](function(_0x3776cb){logger['error'](_0xa5a5('0xd'),_0x5691f1,JSON['stringify'](_0x3776cb));})[_0xa5a5('0x26')](function(){logger[_0xa5a5('0x27')](_0xa5a5('0x28'),_0x5691f1);_0xf2ea20[_0xa5a5('0x29')]();});}else{logger['info']('[%s][DIALOGFLOW]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!',_0x5691f1);_0xf2ea20[_0xa5a5('0x29')]();}}else{var _0x1a258f=this;var _0x417df3=apiai(_0x3ea00f[0x0],{'language':_0x3ea00f[0x1]||'en'});return _0x417df3['textRequest'](this[_0xa5a5('0x2a')]['body'],{'sessionId':md5(this[_0xa5a5('0xb')]['id'])})['then'](function(_0x4c0ff2){_0x1a258f[_0xa5a5('0x20')][_0xa5a5('0x2b')]=_0x4c0ff2;_0x2dace1[_0xa5a5('0x20')]=_0x4c0ff2[_0xa5a5('0x2c')]['fulfillment'][_0xa5a5('0x2d')];_0x2dace1['providerName']=_0xa5a5('0x2b');_0x2dace1[_0xa5a5('0x2e')]=JSON['stringify'](_0x4c0ff2);return rpc[_0x3917b1+'Message'][_0xa5a5('0x23')](_0x2dace1)[_0xa5a5('0x24')](function(_0x47992c){logger['info'](_0xa5a5('0xd'),_0x5691f1,_0x2dace1[_0xa5a5('0x20')]);if(_0x4c0ff2[_0xa5a5('0x2c')][_0xa5a5('0x2f')][_0xa5a5('0x30')]){_0xf2ea20[_0xa5a5('0xf')]();}else{_0xf2ea20['stop']();}})[_0xa5a5('0x25')](function(_0x4d1eef){logger[_0xa5a5('0x31')]('[%s][DIALOGFLOW]\x20%s',_0x5691f1,JSON[_0xa5a5('0x32')](_0x4d1eef));_0xf2ea20[_0xa5a5('0xf')]();});})['catch'](function(_0x47ed1d){logger['error'](_0xa5a5('0xd'),_0x5691f1,_0x47ed1d['message']);_0xf2ea20[_0xa5a5('0xf')]();});}}catch(_0x378dda){logger['error'](_0xa5a5('0xd'),_0x5691f1,JSON[_0xa5a5('0x32')](_0x378dda));_0xf2ea20['stop']();}};};
\ No newline at end of file
+var _0xb0df=['next','contact','format','YYYY-MM-DD\x20HH:mm:ss','channel','whatsapp','phone','interaction','upperFirst','AccountId','account','InteractionId','isEmpty','body','getMustacheRender','create','then','[%s][DIALOGFLOW]\x20%s','catch','error','stringify','finally','[%s][DIALOGFLOW]\x20Welcome\x20Message\x20has\x20been\x20sent!','stop','[%s][DIALOGFLOW]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!','message','result','fulfillment','speech','providerName','dialogflow','providerResponse','Message','metadata','endConversation','moment','apiai-promise','md5','./utils','../../../../config/logger','routing','../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/faxMessage','../../rpc/whatsappMessage','UserId','info','Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.'];(function(_0x266509,_0x499061){var _0x1efca5=function(_0x2de86b){while(--_0x2de86b){_0x266509['push'](_0x266509['shift']());}};_0x1efca5(++_0x499061);}(_0xb0df,0x85));var _0xfb0d=function(_0x5027b1,_0x1409a5){_0x5027b1=_0x5027b1-0x0;var _0x4a46cf=_0xb0df[_0x5027b1];return _0x4a46cf;};'use strict';var _=require('lodash');var moment=require(_0xfb0d('0x0'));var apiai=require(_0xfb0d('0x1'));var md5=require(_0xfb0d('0x2'));var utils=require(_0xfb0d('0x3'));var logger=require(_0xfb0d('0x4'))(_0xfb0d('0x5'));var rpc={'chatMessage':require(_0xfb0d('0x6')),'openchannelMessage':require(_0xfb0d('0x7')),'mailMessage':require(_0xfb0d('0x8')),'smsMessage':require('../../rpc/smsMessage'),'faxMessage':require(_0xfb0d('0x9')),'whatsappMessage':require(_0xfb0d('0xa'))};exports['consequence']=function(_0x5b7591,_0xd9beab){return function(_0xee3329){try{if(!_['isNil'](this['interaction'][_0xfb0d('0xb')])){logger[_0xfb0d('0xc')]('[%s][DIALOGFLOW]\x20%s',_0x5b7591,_0xfb0d('0xd'));return _0xee3329[_0xfb0d('0xe')]();}var _0x34398f={'ContactId':this[_0xfb0d('0xf')]['id'],'sentAt':moment()[_0xfb0d('0x10')](_0xfb0d('0x11')),'direction':'out'};if(this[_0xfb0d('0x12')]==='sms'||this[_0xfb0d('0x12')]===_0xfb0d('0x13')){_0x34398f[_0xfb0d('0x14')]=this[_0xfb0d('0x15')][_0xfb0d('0x14')];}var _0x2f41f5=this[_0xfb0d('0x12')];if(_0x2f41f5==='chat'){_0x34398f['ChatWebsiteId']=this['account']['id'];}else{_0x34398f[_[_0xfb0d('0x16')](_0x2f41f5)+_0xfb0d('0x17')]=this[_0xfb0d('0x18')]['id'];}_0x34398f[_[_0xfb0d('0x16')](_0x2f41f5)+_0xfb0d('0x19')]=this[_0xfb0d('0x15')]['id'];if(this[_0xfb0d('0x15')]['created']){var _0x77e8e7=_0xd9beab[0x2];if(!_[_0xfb0d('0x1a')](_0x77e8e7)){_0x34398f[_0xfb0d('0x1b')]=utils[_0xfb0d('0x1c')](_0x77e8e7,this);return rpc[_0x2f41f5+'Message'][_0xfb0d('0x1d')](_0x34398f)[_0xfb0d('0x1e')](function(_0x374de1){logger[_0xfb0d('0xc')](_0xfb0d('0x1f'),_0x5b7591,_0x34398f[_0xfb0d('0x1b')]);})[_0xfb0d('0x20')](function(_0x499fa1){logger[_0xfb0d('0x21')](_0xfb0d('0x1f'),_0x5b7591,JSON[_0xfb0d('0x22')](_0x499fa1));})[_0xfb0d('0x23')](function(){logger[_0xfb0d('0xc')](_0xfb0d('0x24'),_0x5b7591);_0xee3329[_0xfb0d('0x25')]();});}else{logger[_0xfb0d('0xc')](_0xfb0d('0x26'),_0x5b7591);_0xee3329[_0xfb0d('0x25')]();}}else{var _0x3411cb=this;var _0x5ef220=apiai(_0xd9beab[0x0],{'language':_0xd9beab[0x1]||'en'});return _0x5ef220['textRequest'](this[_0xfb0d('0x27')][_0xfb0d('0x1b')],{'sessionId':md5(this['interaction']['id'])})['then'](function(_0x3bd70b){_0x3411cb[_0xfb0d('0x1b')]['dialogflow']=_0x3bd70b;_0x34398f[_0xfb0d('0x1b')]=_0x3bd70b[_0xfb0d('0x28')][_0xfb0d('0x29')][_0xfb0d('0x2a')];_0x34398f[_0xfb0d('0x2b')]=_0xfb0d('0x2c');_0x34398f[_0xfb0d('0x2d')]=JSON[_0xfb0d('0x22')](_0x3bd70b);return rpc[_0x2f41f5+_0xfb0d('0x2e')][_0xfb0d('0x1d')](_0x34398f)[_0xfb0d('0x1e')](function(_0x803bdd){logger['info'](_0xfb0d('0x1f'),_0x5b7591,_0x34398f[_0xfb0d('0x1b')]);if(_0x3bd70b['result'][_0xfb0d('0x2f')][_0xfb0d('0x30')]){_0xee3329[_0xfb0d('0xe')]();}else{_0xee3329[_0xfb0d('0x25')]();}})['catch'](function(_0x4fb6ba){logger[_0xfb0d('0x21')]('[%s][DIALOGFLOW]\x20%s',_0x5b7591,JSON[_0xfb0d('0x22')](_0x4fb6ba));_0xee3329['next']();});})[_0xfb0d('0x20')](function(_0x3093f5){logger[_0xfb0d('0x21')](_0xfb0d('0x1f'),_0x5b7591,_0x3093f5['message']);_0xee3329['next']();});}}catch(_0x1a48e0){logger[_0xfb0d('0x21')](_0xfb0d('0x1f'),_0x5b7591,JSON[_0xfb0d('0x22')](_0x1a48e0));_0xee3329['stop']();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2a2f=['DIALOGFLOWV2_ISFALLBACKINTENT','languageCode','providerResponse','fulfillmentText','all','stop','lodash','dialogflow','bluebird','../../../../config/logger','routing','./utils','../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/smsMessage','clone','body','Message','create','info','catch','error','[%s][DIALOGFLOWV2]\x20%s','isNil','UserId','Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.','next','contact','format','out','channel','sms','whatsapp','phone','interaction','chat','ChatWebsiteId','account','InteractionId','getMustacheRender','then','stringify','finally','[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20has\x20been\x20sent!','[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!','replace','SessionsClient','message','detectIntent','length','dialogflowV2','queryResult','diagnosticInfo','end_conversation','boolValue','DIALOGFLOWV2_ACTION','action','allRequiredParamsPresent','DIALOGFLOWV2_ENDCONVERSATION','fields','DIALOGFLOWV2_INTENTNAME','intent','name','displayName'];(function(_0x2e4e19,_0x493b50){var _0x9ba20b=function(_0x2f6456){while(--_0x2f6456){_0x2e4e19['push'](_0x2e4e19['shift']());}};_0x9ba20b(++_0x493b50);}(_0x2a2f,0x1c6));var _0xf2a2=function(_0xfae23b,_0x2be4ba){_0xfae23b=_0xfae23b-0x0;var _0x200640=_0x2a2f[_0xfae23b];return _0x200640;};'use strict';var _=require(_0xf2a2('0x0'));var dialogflow=require(_0xf2a2('0x1'));var md5=require('md5');var moment=require('moment');var Promise=require(_0xf2a2('0x2'));var logger=require(_0xf2a2('0x3'))(_0xf2a2('0x4'));var utils=require(_0xf2a2('0x5'));var rpc={'chatMessage':require(_0xf2a2('0x6')),'openchannelMessage':require(_0xf2a2('0x7')),'mailMessage':require('../../rpc/mailMessage'),'smsMessage':require(_0xf2a2('0x8')),'faxMessage':require('../../rpc/faxMessage'),'whatsappMessage':require('../../rpc/whatsappMessage')};function createMessage(_0x374313,_0x273acc,_0x3b1aa6,_0x4f4bda){return new Promise(function(_0x1aef52,_0x1da0db){var _0x1fdd71=_[_0xf2a2('0x9')](_0x3b1aa6);_0x1fdd71[_0xf2a2('0xa')]=_0x4f4bda;return rpc[_0x273acc+_0xf2a2('0xb')][_0xf2a2('0xc')](_0x1fdd71)['then'](function(){logger[_0xf2a2('0xd')]('[%s][DIALOGFLOWV2]\x20%s',_0x374313,_0x1fdd71[_0xf2a2('0xa')]);_0x1aef52();})[_0xf2a2('0xe')](function(_0x1127b7){logger[_0xf2a2('0xf')](_0xf2a2('0x10'),_0x374313,JSON['stringify'](_0x1127b7));_0x1da0db(_0x1127b7);});});}exports['consequence']=function(_0x203596,_0x446286){return function(_0x4e0c8a){try{if(!_[_0xf2a2('0x11')](this['interaction'][_0xf2a2('0x12')])){logger[_0xf2a2('0xd')]('[%s][DIALOGFLOWV2]\x20%s',_0x203596,_0xf2a2('0x13'));return _0x4e0c8a[_0xf2a2('0x14')]();}var _0x4e8e9a={'ContactId':this[_0xf2a2('0x15')]['id'],'sentAt':moment()[_0xf2a2('0x16')]('YYYY-MM-DD\x20HH:mm:ss'),'direction':_0xf2a2('0x17')};if(this[_0xf2a2('0x18')]===_0xf2a2('0x19')||this[_0xf2a2('0x18')]===_0xf2a2('0x1a')){_0x4e8e9a[_0xf2a2('0x1b')]=this[_0xf2a2('0x1c')][_0xf2a2('0x1b')];}var _0x2cd9a2=this[_0xf2a2('0x18')];if(_0x2cd9a2===_0xf2a2('0x1d')){_0x4e8e9a[_0xf2a2('0x1e')]=this[_0xf2a2('0x1f')]['id'];}else{_0x4e8e9a[_['upperFirst'](_0x2cd9a2)+'AccountId']=this[_0xf2a2('0x1f')]['id'];}_0x4e8e9a[_['upperFirst'](_0x2cd9a2)+_0xf2a2('0x20')]=this['interaction']['id'];if(this['interaction']['created']){var _0x518010=_0x446286[0x4];if(!_['isEmpty'](_0x518010)){_0x4e8e9a[_0xf2a2('0xa')]=utils[_0xf2a2('0x21')](_0x518010,this);return rpc[_0x2cd9a2+_0xf2a2('0xb')][_0xf2a2('0xc')](_0x4e8e9a)[_0xf2a2('0x22')](function(_0x590053){logger[_0xf2a2('0xd')]('[%s][DIALOGFLOWV2]\x20%s',_0x203596,_0x4e8e9a['body']);})[_0xf2a2('0xe')](function(_0x464736){logger['error'](_0xf2a2('0x10'),_0x203596,JSON[_0xf2a2('0x23')](_0x464736));})[_0xf2a2('0x24')](function(){logger['info'](_0xf2a2('0x25'),_0x203596);_0x4e0c8a['stop']();});}else{logger[_0xf2a2('0xd')](_0xf2a2('0x26'),_0x203596);_0x4e0c8a['stop']();}}else{var _0x1f94aa=this;var _0x8bda7=_0x446286[0x2][_0xf2a2('0x27')](/\\n/g,'\x0a');var _0x44c732={'credentials':{'private_key':_0x8bda7,'client_email':_0x446286[0x1]}};var _0x3b37d8=new dialogflow[(_0xf2a2('0x28'))](_0x44c732);var _0x5663ef=_0x3b37d8['sessionPath'](_0x446286[0x0],md5(_0x1f94aa['interaction']['id']));var _0x342d80={'session':_0x5663ef,'queryInput':{'text':{'text':_0x1f94aa[_0xf2a2('0x29')][_0xf2a2('0xa')],'languageCode':_0x446286[0x3]||'en'}}};return _0x3b37d8[_0xf2a2('0x2a')](_0x342d80)[_0xf2a2('0x22')](function(_0x3084c5){if(_0x3084c5&&_0x3084c5[_0xf2a2('0x2b')]){_0x1f94aa[_0xf2a2('0xa')][_0xf2a2('0x2c')]=_0x3084c5;var _0x5305ba=_0x3084c5[0x0];var _0x14db27=_0x5305ba[_0xf2a2('0x2d')][_0xf2a2('0x2e')]&&_0x5305ba[_0xf2a2('0x2d')][_0xf2a2('0x2e')]['fields']?_0x5305ba[_0xf2a2('0x2d')][_0xf2a2('0x2e')]['fields'][_0xf2a2('0x2f')][_0xf2a2('0x30')]:![];_0x1f94aa['body'][_0xf2a2('0x31')]=_0x5305ba[_0xf2a2('0x2d')][_0xf2a2('0x32')];_0x1f94aa['body']['DIALOGFLOWV2_ALLREQUIREDPARAMSPRESENT']=_0x5305ba[_0xf2a2('0x2d')][_0xf2a2('0x33')];_0x1f94aa[_0xf2a2('0xa')][_0xf2a2('0x34')]=_0x5305ba['queryResult'][_0xf2a2('0x2e')]&&_0x5305ba['queryResult'][_0xf2a2('0x2e')][_0xf2a2('0x35')]?_0x5305ba['queryResult'][_0xf2a2('0x2e')][_0xf2a2('0x35')][_0xf2a2('0x2f')]['boolValue']:![];_0x1f94aa[_0xf2a2('0xa')][_0xf2a2('0x36')]=_0x5305ba[_0xf2a2('0x2d')][_0xf2a2('0x37')][_0xf2a2('0x38')];_0x1f94aa[_0xf2a2('0xa')]['DIALOGFLOWV2_INTENTDISPLAYNAME']=_0x5305ba[_0xf2a2('0x2d')][_0xf2a2('0x37')][_0xf2a2('0x39')];_0x1f94aa['body'][_0xf2a2('0x3a')]=_0x5305ba['queryResult'][_0xf2a2('0x37')]['isFallback'];_0x1f94aa[_0xf2a2('0xa')]['DIALOGFLOWV2_LANGUAGECODE']=_0x5305ba[_0xf2a2('0x2d')][_0xf2a2('0x3b')];_0x1f94aa[_0xf2a2('0xa')]['DIALOGFLOWV2_QUERYTEXT']=_0x5305ba[_0xf2a2('0x2d')]['queryText'];_0x1f94aa[_0xf2a2('0xa')]['DIALOGFLOWV2_SCORE']=_0x5305ba[_0xf2a2('0x2d')]['intentDetectionConfidence'];_0x4e8e9a['providerName']='dialogflowV2';_0x4e8e9a[_0xf2a2('0x3c')]=JSON[_0xf2a2('0x23')](_0x3084c5);var _0x312ad7=[];for(var _0x167e88=0x0;_0x167e88<_0x3084c5[_0xf2a2('0x2b')];_0x167e88++){var _0x30df9c=_0x3084c5[_0x167e88];if(_0x30df9c&&_0x30df9c[_0xf2a2('0x2d')]&&_0x30df9c[_0xf2a2('0x2d')][_0xf2a2('0x3d')]){_0x312ad7['push'](createMessage(_0x203596,_0x2cd9a2,_0x4e8e9a,_0x30df9c[_0xf2a2('0x2d')]['fulfillmentText']));}}return Promise[_0xf2a2('0x3e')](_0x312ad7)[_0xf2a2('0x22')](function(){if(_0x14db27){_0x4e0c8a[_0xf2a2('0x14')]();}else{_0x4e0c8a[_0xf2a2('0x3f')]();}})['catch'](function(_0x1c6bb1){logger['error'](_0xf2a2('0x10'),_0x203596,JSON[_0xf2a2('0x23')](_0x1c6bb1));_0x4e0c8a[_0xf2a2('0x14')]();});}})[_0xf2a2('0xe')](function(_0x362253){logger[_0xf2a2('0xf')](_0xf2a2('0x10'),_0x203596,_0x362253[_0xf2a2('0x29')]);_0x4e0c8a[_0xf2a2('0x14')]();});}}catch(_0x22d4c6){logger[_0xf2a2('0xf')](_0xf2a2('0x10'),_0x203596,JSON[_0xf2a2('0x23')](_0x22d4c6));_0x4e0c8a[_0xf2a2('0x3f')]();}};};
\ No newline at end of file
+var _0x0c74=['replace','SessionsClient','sessionPath','detectIntent','then','length','queryResult','diagnosticInfo','fields','end_conversation','boolValue','DIALOGFLOWV2_ACTION','DIALOGFLOWV2_ALLREQUIREDPARAMSPRESENT','allRequiredParamsPresent','DIALOGFLOWV2_ENDCONVERSATION','DIALOGFLOWV2_INTENTNAME','intent','name','DIALOGFLOWV2_INTENTDISPLAYNAME','displayName','DIALOGFLOWV2_ISFALLBACKINTENT','isFallback','DIALOGFLOWV2_LANGUAGECODE','DIALOGFLOWV2_QUERYTEXT','queryText','intentDetectionConfidence','providerName','providerResponse','fulfillmentText','push','all','next','catch','stringify','message','dialogflow','md5','moment','bluebird','../../../../config/logger','routing','./utils','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/smsMessage','../../rpc/faxMessage','clone','body','Message','create','info','error','[%s][DIALOGFLOWV2]\x20%s','consequence','isNil','contact','out','channel','sms','phone','interaction','ChatWebsiteId','upperFirst','account','InteractionId','created','getMustacheRender','finally','[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20has\x20been\x20sent!','stop','[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!'];(function(_0xf97295,_0x2d043d){var _0x4c8635=function(_0x4a4a11){while(--_0x4a4a11){_0xf97295['push'](_0xf97295['shift']());}};_0x4c8635(++_0x2d043d);}(_0x0c74,0x1cd));var _0x40c7=function(_0x784e31,_0x51f0f1){_0x784e31=_0x784e31-0x0;var _0x221db5=_0x0c74[_0x784e31];return _0x221db5;};'use strict';var _=require('lodash');var dialogflow=require(_0x40c7('0x0'));var md5=require(_0x40c7('0x1'));var moment=require(_0x40c7('0x2'));var Promise=require(_0x40c7('0x3'));var logger=require(_0x40c7('0x4'))(_0x40c7('0x5'));var utils=require(_0x40c7('0x6'));var rpc={'chatMessage':require('../../rpc/chatMessage'),'openchannelMessage':require(_0x40c7('0x7')),'mailMessage':require(_0x40c7('0x8')),'smsMessage':require(_0x40c7('0x9')),'faxMessage':require(_0x40c7('0xa')),'whatsappMessage':require('../../rpc/whatsappMessage')};function createMessage(_0x24d402,_0x434361,_0x27fd74,_0x393116){return new Promise(function(_0x1d37f0,_0x25a4f8){var _0x269214=_[_0x40c7('0xb')](_0x27fd74);_0x269214[_0x40c7('0xc')]=_0x393116;return rpc[_0x434361+_0x40c7('0xd')][_0x40c7('0xe')](_0x269214)['then'](function(){logger[_0x40c7('0xf')]('[%s][DIALOGFLOWV2]\x20%s',_0x24d402,_0x269214[_0x40c7('0xc')]);_0x1d37f0();})['catch'](function(_0x4163f2){logger[_0x40c7('0x10')](_0x40c7('0x11'),_0x24d402,JSON['stringify'](_0x4163f2));_0x25a4f8(_0x4163f2);});});}exports[_0x40c7('0x12')]=function(_0x430c7e,_0x3f1946){return function(_0x57cab8){try{if(!_[_0x40c7('0x13')](this['interaction']['UserId'])){logger[_0x40c7('0xf')](_0x40c7('0x11'),_0x430c7e,'Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.');return _0x57cab8['next']();}var _0x4b5236={'ContactId':this[_0x40c7('0x14')]['id'],'sentAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'direction':_0x40c7('0x15')};if(this[_0x40c7('0x16')]===_0x40c7('0x17')||this[_0x40c7('0x16')]==='whatsapp'){_0x4b5236[_0x40c7('0x18')]=this[_0x40c7('0x19')][_0x40c7('0x18')];}var _0x30be23=this['channel'];if(_0x30be23==='chat'){_0x4b5236[_0x40c7('0x1a')]=this['account']['id'];}else{_0x4b5236[_[_0x40c7('0x1b')](_0x30be23)+'AccountId']=this[_0x40c7('0x1c')]['id'];}_0x4b5236[_[_0x40c7('0x1b')](_0x30be23)+_0x40c7('0x1d')]=this[_0x40c7('0x19')]['id'];if(this[_0x40c7('0x19')][_0x40c7('0x1e')]){var _0x1f9bdc=_0x3f1946[0x4];if(!_['isEmpty'](_0x1f9bdc)){_0x4b5236['body']=utils[_0x40c7('0x1f')](_0x1f9bdc,this);return rpc[_0x30be23+_0x40c7('0xd')]['create'](_0x4b5236)['then'](function(_0x2df9b0){logger[_0x40c7('0xf')](_0x40c7('0x11'),_0x430c7e,_0x4b5236[_0x40c7('0xc')]);})['catch'](function(_0x26113e){logger['error'](_0x40c7('0x11'),_0x430c7e,JSON['stringify'](_0x26113e));})[_0x40c7('0x20')](function(){logger[_0x40c7('0xf')](_0x40c7('0x21'),_0x430c7e);_0x57cab8[_0x40c7('0x22')]();});}else{logger[_0x40c7('0xf')](_0x40c7('0x23'),_0x430c7e);_0x57cab8[_0x40c7('0x22')]();}}else{var _0x4f3083=this;var _0x1ad6d7=_0x3f1946[0x2][_0x40c7('0x24')](/\\n/g,'\x0a');var _0x41240a={'credentials':{'private_key':_0x1ad6d7,'client_email':_0x3f1946[0x1]}};var _0xb67851=new dialogflow[(_0x40c7('0x25'))](_0x41240a);var _0x4b2f0b=_0xb67851[_0x40c7('0x26')](_0x3f1946[0x0],md5(_0x4f3083['interaction']['id']));var _0x51db71={'session':_0x4b2f0b,'queryInput':{'text':{'text':_0x4f3083['message'][_0x40c7('0xc')],'languageCode':_0x3f1946[0x3]||'en'}}};return _0xb67851[_0x40c7('0x27')](_0x51db71)[_0x40c7('0x28')](function(_0x1e899e){if(_0x1e899e&&_0x1e899e[_0x40c7('0x29')]){_0x4f3083[_0x40c7('0xc')]['dialogflowV2']=_0x1e899e;var _0x43cc8e=_0x1e899e[0x0];var _0x2bc00d=_0x43cc8e[_0x40c7('0x2a')][_0x40c7('0x2b')]&&_0x43cc8e[_0x40c7('0x2a')]['diagnosticInfo'][_0x40c7('0x2c')]?_0x43cc8e[_0x40c7('0x2a')][_0x40c7('0x2b')][_0x40c7('0x2c')][_0x40c7('0x2d')][_0x40c7('0x2e')]:![];_0x4f3083[_0x40c7('0xc')][_0x40c7('0x2f')]=_0x43cc8e[_0x40c7('0x2a')]['action'];_0x4f3083[_0x40c7('0xc')][_0x40c7('0x30')]=_0x43cc8e[_0x40c7('0x2a')][_0x40c7('0x31')];_0x4f3083[_0x40c7('0xc')][_0x40c7('0x32')]=_0x43cc8e[_0x40c7('0x2a')][_0x40c7('0x2b')]&&_0x43cc8e[_0x40c7('0x2a')][_0x40c7('0x2b')][_0x40c7('0x2c')]?_0x43cc8e[_0x40c7('0x2a')][_0x40c7('0x2b')]['fields'][_0x40c7('0x2d')][_0x40c7('0x2e')]:![];_0x4f3083[_0x40c7('0xc')][_0x40c7('0x33')]=_0x43cc8e[_0x40c7('0x2a')][_0x40c7('0x34')][_0x40c7('0x35')];_0x4f3083[_0x40c7('0xc')][_0x40c7('0x36')]=_0x43cc8e[_0x40c7('0x2a')][_0x40c7('0x34')][_0x40c7('0x37')];_0x4f3083[_0x40c7('0xc')][_0x40c7('0x38')]=_0x43cc8e['queryResult']['intent'][_0x40c7('0x39')];_0x4f3083['body'][_0x40c7('0x3a')]=_0x43cc8e['queryResult']['languageCode'];_0x4f3083[_0x40c7('0xc')][_0x40c7('0x3b')]=_0x43cc8e['queryResult'][_0x40c7('0x3c')];_0x4f3083['body']['DIALOGFLOWV2_SCORE']=_0x43cc8e[_0x40c7('0x2a')][_0x40c7('0x3d')];_0x4b5236[_0x40c7('0x3e')]='dialogflowV2';_0x4b5236[_0x40c7('0x3f')]=JSON['stringify'](_0x1e899e);var _0x43b2a9=[];for(var _0x54a659=0x0;_0x54a659<_0x1e899e[_0x40c7('0x29')];_0x54a659++){var _0x2e209a=_0x1e899e[_0x54a659];if(_0x2e209a&&_0x2e209a[_0x40c7('0x2a')]&&_0x2e209a[_0x40c7('0x2a')][_0x40c7('0x40')]){_0x43b2a9[_0x40c7('0x41')](createMessage(_0x430c7e,_0x30be23,_0x4b5236,_0x2e209a[_0x40c7('0x2a')][_0x40c7('0x40')]));}}return Promise[_0x40c7('0x42')](_0x43b2a9)[_0x40c7('0x28')](function(){if(_0x2bc00d){_0x57cab8[_0x40c7('0x43')]();}else{_0x57cab8[_0x40c7('0x22')]();}})[_0x40c7('0x44')](function(_0x4c21f1){logger['error'](_0x40c7('0x11'),_0x430c7e,JSON[_0x40c7('0x45')](_0x4c21f1));_0x57cab8[_0x40c7('0x43')]();});}})[_0x40c7('0x44')](function(_0x1fcbea){logger[_0x40c7('0x10')](_0x40c7('0x11'),_0x430c7e,_0x1fcbea[_0x40c7('0x46')]);_0x57cab8[_0x40c7('0x43')]();});}}catch(_0x174074){logger[_0x40c7('0x10')](_0x40c7('0x11'),_0x430c7e,JSON[_0x40c7('0x45')](_0x174074));_0x57cab8[_0x40c7('0x22')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x724d=['rules','info','stop','[%s][GOTOIF]\x20eval\x20error:\x20%s','stringify','validate','html-to-text','./utils','../../../../config/logger','routing','string','condition\x20is\x20a\x20string\x20and\x20it\x20is\x20required','number','consequence','getMustacheRender','error','[%s][GOTOIF]\x20%s','map','message','join','priorityTrue','priorityFalse','[%s][GOTOIF]\x20condition\x20%s\x20is\x20%s\x20try\x20goto\x20priority\x20%s','condition','next'];(function(_0x76fc49,_0x186176){var _0x454e7e=function(_0x1d29f4){while(--_0x1d29f4){_0x76fc49['push'](_0x76fc49['shift']());}};_0x454e7e(++_0x186176);}(_0x724d,0x69));var _0xd724=function(_0x3fb9dd,_0x174fff){_0x3fb9dd=_0x3fb9dd-0x0;var _0x20136a=_0x724d[_0x3fb9dd];return _0x20136a;};'use strict';var schema=require(_0xd724('0x0'));var _=require('lodash');var htmlToText=require(_0xd724('0x1'));var utils=require(_0xd724('0x2'));var logger=require(_0xd724('0x3'))(_0xd724('0x4'));var gotoif=schema({'condition':{'type':_0xd724('0x5'),'required':!![],'message':_0xd724('0x6')},'priorityTrue':{'type':_0xd724('0x7'),'message':'priority\x20true\x20is\x20a\x20number'},'priorityFalse':{'type':_0xd724('0x7'),'message':'priority\x20false\x20is\x20a\x20number'}});exports[_0xd724('0x8')]=function(_0x4d54e5,_0x1585e){return function(_0x59ca8a){try{var _0x2309af={'condition':htmlToText['fromString'](utils[_0xd724('0x9')](_0x1585e[0x0],this),{'wordwrap':![]})['replace'](/<\/?[^>]+(>|$)/g,''),'priorityTrue':_0x1585e[0x1],'priorityFalse':_0x1585e[0x2]};var _0x5e6c19=gotoif['validate'](_0x2309af,{'typecast':!![]});if(_0x5e6c19['length']){logger[_0xd724('0xa')](_0xd724('0xb'),_0x4d54e5,_[_0xd724('0xc')](_0x5e6c19,_0xd724('0xd'))[_0xd724('0xe')](',\x20'));_0x59ca8a['stop']();}else{try{var _0x3b5a9a=eval('('+_0x2309af['condition']+')');var _0x2d8b2d=_0x3b5a9a?_0x2309af[_0xd724('0xf')]:_0x2309af[_0xd724('0x10')];logger['info'](_0xd724('0x11'),_0x4d54e5,_0x2309af[_0xd724('0x12')],_0x3b5a9a,_0x2d8b2d||_0xd724('0x13'));if(_0x2d8b2d){var _0x419e4c=_['findIndex'](_0x59ca8a[_0xd724('0x14')](),{'p':_0x2d8b2d});if(_0x419e4c>=0x0){logger[_0xd724('0x15')]('[%s][GOTOIF]\x20priority\x20%s\x20found\x20at\x20index:\x20%s',_0x4d54e5,_0x2d8b2d||_0xd724('0x13'),_0x419e4c);_0x59ca8a['next'](_0x419e4c);}else{logger[_0xd724('0x15')]('[%s][GOTOIF]\x20priority\x20%s\x20not\x20found',_0x4d54e5,_0x2d8b2d||_0xd724('0x13'));_0x59ca8a[_0xd724('0x16')]();}}else{_0x59ca8a['next']();}}catch(_0x4155a8){logger[_0xd724('0xa')](_0xd724('0x17'),_0x4d54e5,_0x4155a8[_0xd724('0xd')]);_0x59ca8a['stop']();}}}catch(_0x290130){logger[_0xd724('0xa')](_0xd724('0xb'),_0x4d54e5,JSON[_0xd724('0x18')](_0x290130));_0x59ca8a['stop']();}};};
\ No newline at end of file
+var _0x667d=['[%s][GOTOIF]\x20eval\x20error:\x20%s','stringify','validate','lodash','html-to-text','./utils','../../../../config/logger','string','condition\x20is\x20a\x20string\x20and\x20it\x20is\x20required','number','priority\x20false\x20is\x20a\x20number','consequence','fromString','replace','length','error','[%s][GOTOIF]\x20%s','map','message','join','stop','condition','priorityTrue','next','findIndex','rules','info','[%s][GOTOIF]\x20priority\x20%s\x20found\x20at\x20index:\x20%s'];(function(_0xb88625,_0x39f6d4){var _0x6a581a=function(_0xbfaf5e){while(--_0xbfaf5e){_0xb88625['push'](_0xb88625['shift']());}};_0x6a581a(++_0x39f6d4);}(_0x667d,0x152));var _0xd667=function(_0x115c5b,_0x4a5001){_0x115c5b=_0x115c5b-0x0;var _0x52c4fd=_0x667d[_0x115c5b];return _0x52c4fd;};'use strict';var schema=require(_0xd667('0x0'));var _=require(_0xd667('0x1'));var htmlToText=require(_0xd667('0x2'));var utils=require(_0xd667('0x3'));var logger=require(_0xd667('0x4'))('routing');var gotoif=schema({'condition':{'type':_0xd667('0x5'),'required':!![],'message':_0xd667('0x6')},'priorityTrue':{'type':_0xd667('0x7'),'message':'priority\x20true\x20is\x20a\x20number'},'priorityFalse':{'type':_0xd667('0x7'),'message':_0xd667('0x8')}});exports[_0xd667('0x9')]=function(_0x42b50b,_0x273da5){return function(_0x5f2466){try{var _0x28a29d={'condition':htmlToText[_0xd667('0xa')](utils['getMustacheRender'](_0x273da5[0x0],this),{'wordwrap':![]})[_0xd667('0xb')](/<\/?[^>]+(>|$)/g,''),'priorityTrue':_0x273da5[0x1],'priorityFalse':_0x273da5[0x2]};var _0x2a0384=gotoif[_0xd667('0x0')](_0x28a29d,{'typecast':!![]});if(_0x2a0384[_0xd667('0xc')]){logger[_0xd667('0xd')](_0xd667('0xe'),_0x42b50b,_[_0xd667('0xf')](_0x2a0384,_0xd667('0x10'))[_0xd667('0x11')](',\x20'));_0x5f2466[_0xd667('0x12')]();}else{try{var _0x55da37=eval('('+_0x28a29d[_0xd667('0x13')]+')');var _0x126de5=_0x55da37?_0x28a29d[_0xd667('0x14')]:_0x28a29d['priorityFalse'];logger['info']('[%s][GOTOIF]\x20condition\x20%s\x20is\x20%s\x20try\x20goto\x20priority\x20%s',_0x42b50b,_0x28a29d['condition'],_0x55da37,_0x126de5||_0xd667('0x15'));if(_0x126de5){var _0x1cb2bd=_[_0xd667('0x16')](_0x5f2466[_0xd667('0x17')](),{'p':_0x126de5});if(_0x1cb2bd>=0x0){logger[_0xd667('0x18')](_0xd667('0x19'),_0x42b50b,_0x126de5||_0xd667('0x15'),_0x1cb2bd);_0x5f2466[_0xd667('0x15')](_0x1cb2bd);}else{logger[_0xd667('0x18')]('[%s][GOTOIF]\x20priority\x20%s\x20not\x20found',_0x42b50b,_0x126de5||_0xd667('0x15'));_0x5f2466[_0xd667('0x12')]();}}else{_0x5f2466[_0xd667('0x15')]();}}catch(_0x5ccd60){logger['error'](_0xd667('0x1a'),_0x42b50b,_0x5ccd60[_0xd667('0x10')]);_0x5f2466['stop']();}}}catch(_0x2dc232){logger[_0xd667('0xd')](_0xd667('0xe'),_0x42b50b,JSON[_0xd667('0x1b')](_0x2dc232));_0x5f2466[_0xd667('0x12')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa0e8=['length','error','[%s][GOTOP]\x20%s','map','info','[%s][GOTOP]\x20priority\x20%s','priority','rules','[%s][GOTOP]\x20priority\x20%s\x20found\x20at\x20index:\x20%s','[%s][GOTOP]\x20priority\x20%s\x20not\x20found','next','stop','stringify','validate','lodash','../../../../config/logger','priority\x20is\x20a\x20number\x20and\x20it\x20is\x20required','consequence'];(function(_0x4ae503,_0x45a969){var _0x338102=function(_0x5a5134){while(--_0x5a5134){_0x4ae503['push'](_0x4ae503['shift']());}};_0x338102(++_0x45a969);}(_0xa0e8,0x12d));var _0x8a0e=function(_0x2216f4,_0x47f1fc){_0x2216f4=_0x2216f4-0x0;var _0x1ebf36=_0xa0e8[_0x2216f4];return _0x1ebf36;};'use strict';var schema=require(_0x8a0e('0x0'));var _=require(_0x8a0e('0x1'));var logger=require(_0x8a0e('0x2'))('routing');var gotop=schema({'priority':{'type':'number','required':!![],'message':_0x8a0e('0x3')}});exports[_0x8a0e('0x4')]=function(_0x155749,_0x1a52fc){return function(_0x5ad158){try{var _0x2ac882={'priority':_0x1a52fc[0x0]};var _0xd5533=gotop[_0x8a0e('0x0')](_0x2ac882,{'typecast':!![]});if(_0xd5533[_0x8a0e('0x5')]){logger[_0x8a0e('0x6')](_0x8a0e('0x7'),_0x155749,_[_0x8a0e('0x8')](_0xd5533,'message')['join'](',\x20'));_0x5ad158['stop']();}else{logger[_0x8a0e('0x9')](_0x8a0e('0xa'),_0x155749,_0x2ac882[_0x8a0e('0xb')]);if(_0x2ac882[_0x8a0e('0xb')]){var _0x25bfaf=_['findIndex'](_0x5ad158[_0x8a0e('0xc')](),{'p':_0x2ac882['priority']});if(_0x25bfaf>=0x0){logger['info'](_0x8a0e('0xd'),_0x155749,_0x2ac882[_0x8a0e('0xb')]||'next',_0x25bfaf);_0x5ad158['next'](_0x25bfaf);}else{logger[_0x8a0e('0x9')](_0x8a0e('0xe'),_0x155749,_0x2ac882['priority']||_0x8a0e('0xf'));_0x5ad158[_0x8a0e('0x10')]();}}else{_0x5ad158[_0x8a0e('0xf')]();}}}catch(_0x506d08){logger[_0x8a0e('0x6')](_0x8a0e('0x7'),_0x155749,JSON[_0x8a0e('0x11')](_0x506d08));_0x5ad158[_0x8a0e('0x10')]();}};};
\ No newline at end of file
+var _0x38c2=['routing','priority\x20is\x20a\x20number\x20and\x20it\x20is\x20required','validate','length','error','[%s][GOTOP]\x20%s','message','join','stop','info','priority','rules','[%s][GOTOP]\x20priority\x20%s\x20found\x20at\x20index:\x20%s','next','../../../../config/logger'];(function(_0x38c055,_0xe1b4ea){var _0x1f3185=function(_0x206ebd){while(--_0x206ebd){_0x38c055['push'](_0x38c055['shift']());}};_0x1f3185(++_0xe1b4ea);}(_0x38c2,0x149));var _0x238c=function(_0x4b369d,_0x265eb8){_0x4b369d=_0x4b369d-0x0;var _0x571a98=_0x38c2[_0x4b369d];return _0x571a98;};'use strict';var schema=require('validate');var _=require('lodash');var logger=require(_0x238c('0x0'))(_0x238c('0x1'));var gotop=schema({'priority':{'type':'number','required':!![],'message':_0x238c('0x2')}});exports['consequence']=function(_0x4373de,_0x42097a){return function(_0xb59a4a){try{var _0x3c5cfb={'priority':_0x42097a[0x0]};var _0x5598d3=gotop[_0x238c('0x3')](_0x3c5cfb,{'typecast':!![]});if(_0x5598d3[_0x238c('0x4')]){logger[_0x238c('0x5')](_0x238c('0x6'),_0x4373de,_['map'](_0x5598d3,_0x238c('0x7'))[_0x238c('0x8')](',\x20'));_0xb59a4a[_0x238c('0x9')]();}else{logger[_0x238c('0xa')]('[%s][GOTOP]\x20priority\x20%s',_0x4373de,_0x3c5cfb[_0x238c('0xb')]);if(_0x3c5cfb[_0x238c('0xb')]){var _0x468e03=_['findIndex'](_0xb59a4a[_0x238c('0xc')](),{'p':_0x3c5cfb[_0x238c('0xb')]});if(_0x468e03>=0x0){logger['info'](_0x238c('0xd'),_0x4373de,_0x3c5cfb[_0x238c('0xb')]||'next',_0x468e03);_0xb59a4a['next'](_0x468e03);}else{logger[_0x238c('0xa')]('[%s][GOTOP]\x20priority\x20%s\x20not\x20found',_0x4373de,_0x3c5cfb[_0x238c('0xb')]||_0x238c('0xe'));_0xb59a4a[_0x238c('0x9')]();}}else{_0xb59a4a[_0x238c('0xe')]();}}}catch(_0x322a99){logger[_0x238c('0x5')](_0x238c('0x6'),_0x4373de,JSON['stringify'](_0x322a99));_0xb59a4a[_0x238c('0x9')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc2ff=['chat','ChatWebsiteId','account','upperFirst','AccountId','InteractionId','interaction','Message','then','info','[%s][MESSAGE]\x20%s','body','next','stringify','stop','lodash','./utils','../../../../config/logger','../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/smsMessage','../../rpc/faxMessage','../../rpc/whatsappMessage','consequence','getMustacheRender','channel'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0xc2ff,0x195));var _0xfc2f=function(_0x28eda8,_0x207c34){_0x28eda8=_0x28eda8-0x0;var _0x1670a0=_0xc2ff[_0x28eda8];return _0x1670a0;};'use strict';var _=require(_0xfc2f('0x0'));var utils=require(_0xfc2f('0x1'));var logger=require(_0xfc2f('0x2'))('routing');var rpc={'chatMessage':require(_0xfc2f('0x3')),'openchannelMessage':require(_0xfc2f('0x4')),'mailMessage':require('../../rpc/mailMessage'),'smsMessage':require(_0xfc2f('0x5')),'faxMessage':require(_0xfc2f('0x6')),'whatsappMessage':require(_0xfc2f('0x7'))};exports[_0xfc2f('0x8')]=function(_0xb533f6,_0x8c487){return function(_0x39f537){try{var _0xe55612={'body':utils[_0xfc2f('0x9')](_0x8c487[0x0],this),'ContactId':this['contact']['id']};if(this[_0xfc2f('0xa')]===_0xfc2f('0xb')){_0xe55612[_0xfc2f('0xc')]=this[_0xfc2f('0xd')]['id'];}else{_0xe55612[_[_0xfc2f('0xe')](this[_0xfc2f('0xa')])+_0xfc2f('0xf')]=this[_0xfc2f('0xd')]['id'];}_0xe55612[_[_0xfc2f('0xe')](this[_0xfc2f('0xa')])+_0xfc2f('0x10')]=this[_0xfc2f('0x11')]['id'];if(rpc[this[_0xfc2f('0xa')]+_0xfc2f('0x12')]){return rpc[this[_0xfc2f('0xa')]+_0xfc2f('0x12')]['create'](_0xe55612)[_0xfc2f('0x13')](function(_0x54b377){logger[_0xfc2f('0x14')](_0xfc2f('0x15'),_0xb533f6,_0xe55612[_0xfc2f('0x16')]);_0x39f537[_0xfc2f('0x17')]();})['catch'](function(_0x216347){logger['error'](_0xfc2f('0x15'),_0xb533f6,JSON[_0xfc2f('0x18')](_0x216347));_0x39f537[_0xfc2f('0x19')]();});}}catch(_0x3d985e){logger['error'](_0xfc2f('0x15'),_0xb533f6,JSON[_0xfc2f('0x18')](_0x3d985e));_0x39f537[_0xfc2f('0x19')]();}};};
\ No newline at end of file
+var _0x4a24=['../../rpc/openchannelMessage','../../rpc/faxMessage','../../rpc/whatsappMessage','consequence','channel','chat','upperFirst','AccountId','account','InteractionId','interaction','create','[%s][MESSAGE]\x20%s','body','next','catch','stringify','stop','error','../../../../config/logger','routing','../../rpc/chatMessage'];(function(_0x47d11a,_0x2b1700){var _0x3f1b76=function(_0x446dc1){while(--_0x446dc1){_0x47d11a['push'](_0x47d11a['shift']());}};_0x3f1b76(++_0x2b1700);}(_0x4a24,0xef));var _0x44a2=function(_0x4de1b1,_0x18c64c){_0x4de1b1=_0x4de1b1-0x0;var _0x639f27=_0x4a24[_0x4de1b1];return _0x639f27;};'use strict';var _=require('lodash');var utils=require('./utils');var logger=require(_0x44a2('0x0'))(_0x44a2('0x1'));var rpc={'chatMessage':require(_0x44a2('0x2')),'openchannelMessage':require(_0x44a2('0x3')),'mailMessage':require('../../rpc/mailMessage'),'smsMessage':require('../../rpc/smsMessage'),'faxMessage':require(_0x44a2('0x4')),'whatsappMessage':require(_0x44a2('0x5'))};exports[_0x44a2('0x6')]=function(_0x4c57b8,_0x5a361d){return function(_0x8534ad){try{var _0x3a1100={'body':utils['getMustacheRender'](_0x5a361d[0x0],this),'ContactId':this['contact']['id']};if(this[_0x44a2('0x7')]===_0x44a2('0x8')){_0x3a1100['ChatWebsiteId']=this['account']['id'];}else{_0x3a1100[_[_0x44a2('0x9')](this['channel'])+_0x44a2('0xa')]=this[_0x44a2('0xb')]['id'];}_0x3a1100[_['upperFirst'](this[_0x44a2('0x7')])+_0x44a2('0xc')]=this[_0x44a2('0xd')]['id'];if(rpc[this[_0x44a2('0x7')]+'Message']){return rpc[this[_0x44a2('0x7')]+'Message'][_0x44a2('0xe')](_0x3a1100)['then'](function(_0x342310){logger['info'](_0x44a2('0xf'),_0x4c57b8,_0x3a1100[_0x44a2('0x10')]);_0x8534ad[_0x44a2('0x11')]();})[_0x44a2('0x12')](function(_0x16cd38){logger['error'](_0x44a2('0xf'),_0x4c57b8,JSON[_0x44a2('0x13')](_0x16cd38));_0x8534ad[_0x44a2('0x14')]();});}}catch(_0x2ef956){logger[_0x44a2('0x15')](_0x44a2('0xf'),_0x4c57b8,JSON['stringify'](_0x2ef956));_0x8534ad[_0x44a2('0x14')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf40f=['./utils','../../../../config/logger','routing','consequence','info','next','[%s][NOOP]\x20%s','stringify','stop'];(function(_0x167307,_0x5a60ae){var _0x550140=function(_0x5b5009){while(--_0x5b5009){_0x167307['push'](_0x167307['shift']());}};_0x550140(++_0x5a60ae);}(_0xf40f,0x90));var _0xff40=function(_0x907c81,_0x3a22df){_0x907c81=_0x907c81-0x0;var _0x29d2ba=_0xf40f[_0x907c81];return _0x29d2ba;};'use strict';var utils=require(_0xff40('0x0'));var logger=require(_0xff40('0x1'))(_0xff40('0x2'));exports[_0xff40('0x3')]=function(_0x8d699c,_0x33d510){return function(_0x3e3a8d){try{logger[_0xff40('0x4')]('[%s][NOOP]\x20%s',_0x8d699c,utils['getMustacheRender'](_0x33d510[0x0],this));_0x3e3a8d[_0xff40('0x5')]();}catch(_0xd4b0d2){logger['error'](_0xff40('0x6'),_0x8d699c,JSON[_0xff40('0x7')](_0xd4b0d2));_0x3e3a8d[_0xff40('0x8')]();}};};
\ No newline at end of file
+var _0x83fd=['consequence','info','[%s][NOOP]\x20%s','getMustacheRender','stop','./utils'];(function(_0x5b8451,_0x1dfd8){var _0x277613=function(_0x5ee5aa){while(--_0x5ee5aa){_0x5b8451['push'](_0x5b8451['shift']());}};_0x277613(++_0x1dfd8);}(_0x83fd,0x16d));var _0xd83f=function(_0x5d37b6,_0xc6091d){_0x5d37b6=_0x5d37b6-0x0;var _0x5a35f0=_0x83fd[_0x5d37b6];return _0x5a35f0;};'use strict';var utils=require(_0xd83f('0x0'));var logger=require('../../../../config/logger')('routing');exports[_0xd83f('0x1')]=function(_0x5b5f33,_0x3482ed){return function(_0x2998eb){try{logger[_0xd83f('0x2')](_0xd83f('0x3'),_0x5b5f33,utils[_0xd83f('0x4')](_0x3482ed[0x0],this));_0x2998eb['next']();}catch(_0x3d2495){logger['error'](_0xd83f('0x3'),_0x5b5f33,JSON['stringify'](_0x3d2495));_0x2998eb[_0xd83f('0x5')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfbd1=['../../rpc/chatQueueReport','../../rpc/smsQueueReport','../../rpc/faxQueueReport','../../rpc/whatsappQueueReport','string','name\x20is\x20a\x20string\x20and\x20it\x20is\x20required','number','waiting','body','contact','list','upperFirst','QueueId','channel','InteractionId','interaction','MessageId','message','chat','info','name','catch','error','create\x20queue\x20report','YYYY-MM-DD\x20HH:mm:ss','[%s][STOP:QUEUE][NAME:%s]','QueueReport','update','update\x20queue\x20report','timeout','[%s][END:QUEUE][NAME:%s]','toLowerCase','length','[%s][QUEUE]\x20%s','join','stop','find','Queues','qtimeout','rules','end','close','complete','[%s][QUEUE]\x20APPLICATION\x20END','next','strategy','rrmemory','beepall','[%s][QUEUE]\x20queue\x20not\x20found\x20%s','stack','validate','lodash','util','seq-queue','moment','ioredis','../../../../config/environment','routing','./strategy','redis','localhost','socket.io-emitter','queue','from','joinAt','emit','clone','queue_id','account','format','%sQueuesWaitingInteractions','pick','%s:queue:%s','%s_queue_waiting_interaction:%s','remove','../../rpc/openchannelQueueReport','../../rpc/mailQueueReport'];(function(_0x2febde,_0x3fbc16){var _0x41cab8=function(_0x152cd7){while(--_0x152cd7){_0x2febde['push'](_0x2febde['shift']());}};_0x41cab8(++_0x3fbc16);}(_0xfbd1,0x7f));var _0x1fbd=function(_0x130705,_0x2d266b){_0x130705=_0x130705-0x0;var _0x1fa991=_0xfbd1[_0x130705];return _0x1fa991;};'use strict';var schema=require(_0x1fbd('0x0'));var _=require(_0x1fbd('0x1'));var util=require(_0x1fbd('0x2'));var seqqueue=require(_0x1fbd('0x3'));var moment=require(_0x1fbd('0x4'));var Redis=require(_0x1fbd('0x5'));var config=require(_0x1fbd('0x6'));var logger=require('../../../../config/logger')(_0x1fbd('0x7'));var strategy=require(_0x1fbd('0x8'));config[_0x1fbd('0x9')]=_['defaults'](config[_0x1fbd('0x9')],{'host':_0x1fbd('0xa'),'port':0x18eb});var io=require(_0x1fbd('0xb'))(new Redis(config[_0x1fbd('0x9')]));var attributes=['id','queue_id','account',_0x1fbd('0xc'),_0x1fbd('0xd'),_0x1fbd('0xe')];function emit(_0x4cb907,_0x5307d6,_0x55e21b){io['to'](_0x4cb907)[_0x1fbd('0xf')](_0x5307d6,_0x55e21b);}function emitChannelQueueInteraction(_0x2c0a5f,_0xf82b23,_0x2d6f4d,_0x475a70,_0x4a0d2d,_0x3301b2,_0x28eab8,_0x579296){var _0x2c5b53=_[_0x1fbd('0x10')](_0x2d6f4d);_0x2c5b53[_0x1fbd('0x11')]=_0x579296;_0x2c5b53[_0x1fbd('0xc')]=_0xf82b23;_0x2c5b53[_0x1fbd('0x12')]=_0x475a70;_0x2c5b53['id']=_0x4a0d2d;if(_0x3301b2){_0x28eab8[util[_0x1fbd('0x13')](_0x1fbd('0x14'),_0x2c0a5f)][_0x4a0d2d]=_[_0x1fbd('0x15')](_0x2c5b53,attributes);}else{delete _0x28eab8[util[_0x1fbd('0x13')](_0x1fbd('0x14'),_0x2c0a5f)][_0x4a0d2d];}emit(util[_0x1fbd('0x13')](_0x1fbd('0x16'),_0x2c0a5f,_0xf82b23),util['format'](_0x1fbd('0x17'),_0x2c0a5f,_0x3301b2?'save':_0x1fbd('0x18')),_[_0x1fbd('0x15')](_0x2c5b53,attributes));}var rpc={'openchannelQueueReport':require(_0x1fbd('0x19')),'mailQueueReport':require(_0x1fbd('0x1a')),'chatQueueReport':require(_0x1fbd('0x1b')),'smsQueueReport':require(_0x1fbd('0x1c')),'faxQueueReport':require(_0x1fbd('0x1d')),'whatsappQueueReport':require(_0x1fbd('0x1e'))};var queue=schema({'name':{'type':_0x1fbd('0x1f'),'required':!![],'message':_0x1fbd('0x20')},'timeout':{'type':_0x1fbd('0x21'),'message':'timeout\x20is\x20a\x20number'}});function startRouting(_0xf33e35,_0x5d27a2,_0x5c8ab9,_0x219ee8){if(_0xf33e35&&_0x5d27a2&&_0x5c8ab9){_0x5d27a2[_0x1fbd('0x22')]+=0x1;var _0x33a66d={'uniqueid':_0xf33e35,'from':_0x5c8ab9[_0x1fbd('0x23')]?_0x5c8ab9[_0x1fbd('0x23')]['from']:'','joinAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'ContactId':_0x5c8ab9[_0x1fbd('0x24')]?_0x5c8ab9[_0x1fbd('0x24')]['id']:null,'ListId':_0x5c8ab9['list']?_0x5c8ab9[_0x1fbd('0x25')]['id']:null};_0x33a66d[_[_0x1fbd('0x26')](_0x5c8ab9['channel'])+_0x1fbd('0x27')]=_0x5d27a2['id']||null;_0x33a66d[_['upperFirst'](_0x5c8ab9[_0x1fbd('0x28')])+_0x1fbd('0x29')]=_0x5c8ab9[_0x1fbd('0x2a')]?_0x5c8ab9[_0x1fbd('0x2a')]['id']:null;_0x33a66d[_[_0x1fbd('0x26')](_0x5c8ab9[_0x1fbd('0x28')])+_0x1fbd('0x2b')]=_0x5c8ab9[_0x1fbd('0x2c')]?_0x5c8ab9[_0x1fbd('0x2c')]['id']:null;_0x33a66d[_[_0x1fbd('0x26')](_0x5c8ab9[_0x1fbd('0x28')])+(_0x5c8ab9[_0x1fbd('0x28')]!==_0x1fbd('0x2d')?'AccountId':'WebsiteId')]=_0x5c8ab9[_0x1fbd('0x12')]?_0x5c8ab9[_0x1fbd('0x12')]['id']:null;logger[_0x1fbd('0x2e')](util[_0x1fbd('0x13')]('[%s][START:QUEUE][NAME:%s]',_0xf33e35,_0x5d27a2[_0x1fbd('0x2f')]));emitChannelQueueInteraction(_0x5c8ab9[_0x1fbd('0x28')],_0x5d27a2[_0x1fbd('0x2f')],_0x33a66d,_0x5c8ab9[_0x1fbd('0x12')][_0x1fbd('0x2f')],_0x5c8ab9['message']['id'],!![],_0x219ee8,_0x5d27a2['id']);if(rpc[_0x5c8ab9[_0x1fbd('0x28')]+'QueueReport']){return rpc[_0x5c8ab9[_0x1fbd('0x28')]+'QueueReport']['create'](_0x33a66d)[_0x1fbd('0x30')](function(_0x155185){logger[_0x1fbd('0x31')](_0x1fbd('0x32'));});}}}function stopRouting(_0x4bca39,_0x5202e6,_0x238958,_0x35d287){if(_0x4bca39&&_0x5202e6){_0x5202e6['waiting']-=0x1;var _0x212f97={'leaveAt':moment()[_0x1fbd('0x13')](_0x1fbd('0x33')),'acceptAt':moment()[_0x1fbd('0x13')](_0x1fbd('0x33')),'reason':'accepted'};logger[_0x1fbd('0x2e')](util['format'](_0x1fbd('0x34'),_0x4bca39,_0x5202e6[_0x1fbd('0x2f')]));emitChannelQueueInteraction(_0x238958[_0x1fbd('0x28')],_0x5202e6[_0x1fbd('0x2f')],_0x238958[_0x1fbd('0x23')],_0x238958[_0x1fbd('0x12')][_0x1fbd('0x2f')],_0x238958[_0x1fbd('0x2c')]['id'],![],_0x35d287,_0x5202e6['id']);if(rpc[_0x238958['channel']+_0x1fbd('0x35')]){return rpc[_0x238958[_0x1fbd('0x28')]+_0x1fbd('0x35')][_0x1fbd('0x36')](_0x4bca39,_0x212f97)['catch'](function(_0x49d284){logger[_0x1fbd('0x31')](_0x1fbd('0x37'));});}}}function endRouting(_0x4f7af5,_0xe3f2be,_0x2a9d5b,_0x420a1a){if(_0x4f7af5&&_0xe3f2be){_0xe3f2be[_0x1fbd('0x22')]-=0x1;var _0x52018d={'leaveAt':moment()[_0x1fbd('0x13')]('YYYY-MM-DD\x20HH:mm:ss'),'exitAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'reason':_0x1fbd('0x38')};logger[_0x1fbd('0x2e')](util[_0x1fbd('0x13')](_0x1fbd('0x39'),_0x4f7af5,_0xe3f2be[_0x1fbd('0x2f')]));emitChannelQueueInteraction(_0x2a9d5b[_0x1fbd('0x28')],_0xe3f2be[_0x1fbd('0x2f')],_0x2a9d5b['body'],_0x2a9d5b['account'][_0x1fbd('0x2f')],_0x2a9d5b[_0x1fbd('0x2c')]['id'],![],_0x420a1a);if(rpc[_0x2a9d5b[_0x1fbd('0x28')]+_0x1fbd('0x35')]){return rpc[_0x2a9d5b[_0x1fbd('0x28')]+_0x1fbd('0x35')][_0x1fbd('0x36')](_0x4f7af5,_0x52018d)[_0x1fbd('0x30')](function(_0x6f631d){logger[_0x1fbd('0x31')]('update\x20queue\x20report');});}}}function handleFindQueue(_0x59671d){return function(_0x4a6673){return _0x4a6673[_0x1fbd('0x2f')][_0x1fbd('0x3a')]()===_0x59671d['toLowerCase']();};}exports['consequence']=function(_0x5ddc7a,_0x5df9b7,_0x2edc13,_0xcbecbb){return function(_0x116b7a){try{var _0x26ef39={'name':_0x5df9b7[0x0],'timeout':_0x5df9b7[0x1]};var _0x4c7331=queue[_0x1fbd('0x0')](_0x26ef39,{'typecast':!![]});if(_0x4c7331[_0x1fbd('0x3b')]){logger[_0x1fbd('0x31')](_0x1fbd('0x3c'),_0x5ddc7a,_['map'](_0x4c7331,_0x1fbd('0x2c'))[_0x1fbd('0x3d')](',\x20'));_0x116b7a[_0x1fbd('0x3e')]();}else{var _0x3c2eb7=_[_0x1fbd('0x3f')](_0x2edc13[_0xcbecbb[_0x1fbd('0x28')]+_0x1fbd('0x40')],handleFindQueue(_0x26ef39['name']));if(_0x3c2eb7){startRouting(_0x5ddc7a,_0x3c2eb7,_0xcbecbb,_0x2edc13);var _0x5d224d=(_0x3c2eb7[_0x1fbd('0x38')]||0xa)*0x3e8;var _0x11694d=(_0x26ef39[_0x1fbd('0x38')]||0x14)*0x3e8;var _0x489d48,_0x6f0e60;if(_0x5d224d>_0x11694d){_0x11694d=_0x5d224d;}var _0x4786b3=seqqueue['createQueue'](_0x5d224d);_0x4786b3['id']=_0x5ddc7a;_0x4786b3['atimeout']=_0x5d224d;_0x4786b3[_0x1fbd('0x41')]=_0x11694d;_0x4786b3['channel']=_0xcbecbb['channel'];_0x2edc13[_0x1fbd('0x42')][_0x5ddc7a]['on'](_0x1fbd('0x43'),function(){logger[_0x1fbd('0x2e')]('[%s][QUEUE]\x20ROUTING\x20STOPPED',_0x5ddc7a);stopRouting(_0x5ddc7a,_0x3c2eb7,_0xcbecbb,_0x2edc13);clearTimeout(_0x489d48);_0x489d48=undefined;_0x4786b3[_0x1fbd('0x44')](!![]);if(_0x2edc13[_0x1fbd('0x42')][_0x5ddc7a]){delete _0x2edc13[_0x1fbd('0x42')][_0x5ddc7a];}_0x116b7a[_0x1fbd('0x3e')]();});_0x2edc13[_0x1fbd('0x42')][_0x5ddc7a]['on'](_0x1fbd('0x45'),function(){if(_0x2edc13[_0x1fbd('0x42')][_0x5ddc7a]){delete _0x2edc13['rules'][_0x5ddc7a];}});_0x489d48=setTimeout(function(){logger[_0x1fbd('0x2e')](_0x1fbd('0x46'),_0x5ddc7a);endRouting(_0x5ddc7a,_0x3c2eb7,_0xcbecbb,_0x2edc13);clearTimeout(_0x489d48);_0x4786b3[_0x1fbd('0x44')](!![]);_0x116b7a[_0x1fbd('0x47')]();},_0x11694d);switch(_0x3c2eb7[_0x1fbd('0x48')]){case'rrmemory':strategy[_0x1fbd('0x49')](_0x4786b3,_0x3c2eb7,_0x2edc13,_0xcbecbb);break;default:strategy[_0x1fbd('0x4a')](_0x4786b3,_0x3c2eb7,_0x2edc13,_0xcbecbb);}}else{logger[_0x1fbd('0x31')](_0x1fbd('0x4b'),_0x5ddc7a,_0x26ef39[_0x1fbd('0x2f')]);_0x116b7a[_0x1fbd('0x3e')]();}}}catch(_0x5dbab5){console['log'](_0x5dbab5);logger[_0x1fbd('0x31')](_0x1fbd('0x3c'),_0x5ddc7a,_0x5dbab5[_0x1fbd('0x4c')]);_0x116b7a[_0x1fbd('0x3e')]();}};};
\ No newline at end of file
+var _0x0a2c=['update\x20queue\x20report','timeout','toLowerCase','consequence','validate','length','map','join','stop','find','Queues','qtimeout','rules','end','close','complete','[%s][QUEUE]\x20APPLICATION\x20END','next','rrmemory','beepall','log','[%s][QUEUE]\x20%s','stack','util','seq-queue','moment','ioredis','../../../../config/logger','./strategy','redis','defaults','localhost','queue_id','queue','joinAt','emit','clone','account','%sQueuesWaitingInteractions','format','%s:queue:%s','%s_queue_waiting_interaction:%s','save','remove','../../rpc/openchannelQueueReport','../../rpc/mailQueueReport','../../rpc/chatQueueReport','../../rpc/smsQueueReport','../../rpc/whatsappQueueReport','string','name\x20is\x20a\x20string\x20and\x20it\x20is\x20required','number','body','from','contact','list','upperFirst','channel','QueueId','interaction','MessageId','message','chat','AccountId','WebsiteId','info','[%s][START:QUEUE][NAME:%s]','name','QueueReport','create','catch','error','create\x20queue\x20report','waiting','YYYY-MM-DD\x20HH:mm:ss','accepted','[%s][STOP:QUEUE][NAME:%s]','update'];(function(_0x20b1e2,_0x26c5cf){var _0x2ad462=function(_0x5c6806){while(--_0x5c6806){_0x20b1e2['push'](_0x20b1e2['shift']());}};_0x2ad462(++_0x26c5cf);}(_0x0a2c,0xb3));var _0xc0a2=function(_0x3da3db,_0x3646d7){_0x3da3db=_0x3da3db-0x0;var _0x5eff0e=_0x0a2c[_0x3da3db];return _0x5eff0e;};'use strict';var schema=require('validate');var _=require('lodash');var util=require(_0xc0a2('0x0'));var seqqueue=require(_0xc0a2('0x1'));var moment=require(_0xc0a2('0x2'));var Redis=require(_0xc0a2('0x3'));var config=require('../../../../config/environment');var logger=require(_0xc0a2('0x4'))('routing');var strategy=require(_0xc0a2('0x5'));config[_0xc0a2('0x6')]=_[_0xc0a2('0x7')](config[_0xc0a2('0x6')],{'host':_0xc0a2('0x8'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0xc0a2('0x6')]));var attributes=['id',_0xc0a2('0x9'),'account',_0xc0a2('0xa'),'from',_0xc0a2('0xb')];function emit(_0x168b60,_0x4929c0,_0x158eba){io['to'](_0x168b60)[_0xc0a2('0xc')](_0x4929c0,_0x158eba);}function emitChannelQueueInteraction(_0x49921c,_0x4a9601,_0x46b373,_0x2c10e4,_0x5db2c5,_0x2bd285,_0x59e4ca,_0x221d2d){var _0x41c2ef=_[_0xc0a2('0xd')](_0x46b373);_0x41c2ef[_0xc0a2('0x9')]=_0x221d2d;_0x41c2ef['queue']=_0x4a9601;_0x41c2ef[_0xc0a2('0xe')]=_0x2c10e4;_0x41c2ef['id']=_0x5db2c5;if(_0x2bd285){_0x59e4ca[util['format'](_0xc0a2('0xf'),_0x49921c)][_0x5db2c5]=_['pick'](_0x41c2ef,attributes);}else{delete _0x59e4ca[util[_0xc0a2('0x10')](_0xc0a2('0xf'),_0x49921c)][_0x5db2c5];}emit(util[_0xc0a2('0x10')](_0xc0a2('0x11'),_0x49921c,_0x4a9601),util[_0xc0a2('0x10')](_0xc0a2('0x12'),_0x49921c,_0x2bd285?_0xc0a2('0x13'):_0xc0a2('0x14')),_['pick'](_0x41c2ef,attributes));}var rpc={'openchannelQueueReport':require(_0xc0a2('0x15')),'mailQueueReport':require(_0xc0a2('0x16')),'chatQueueReport':require(_0xc0a2('0x17')),'smsQueueReport':require(_0xc0a2('0x18')),'faxQueueReport':require('../../rpc/faxQueueReport'),'whatsappQueueReport':require(_0xc0a2('0x19'))};var queue=schema({'name':{'type':_0xc0a2('0x1a'),'required':!![],'message':_0xc0a2('0x1b')},'timeout':{'type':_0xc0a2('0x1c'),'message':'timeout\x20is\x20a\x20number'}});function startRouting(_0x4a93ff,_0x4c85e5,_0x3a2aa5,_0x5bc7a7){if(_0x4a93ff&&_0x4c85e5&&_0x3a2aa5){_0x4c85e5['waiting']+=0x1;var _0xac13c4={'uniqueid':_0x4a93ff,'from':_0x3a2aa5['body']?_0x3a2aa5[_0xc0a2('0x1d')][_0xc0a2('0x1e')]:'','joinAt':moment()[_0xc0a2('0x10')]('YYYY-MM-DD\x20HH:mm:ss'),'ContactId':_0x3a2aa5[_0xc0a2('0x1f')]?_0x3a2aa5['contact']['id']:null,'ListId':_0x3a2aa5[_0xc0a2('0x20')]?_0x3a2aa5[_0xc0a2('0x20')]['id']:null};_0xac13c4[_[_0xc0a2('0x21')](_0x3a2aa5[_0xc0a2('0x22')])+_0xc0a2('0x23')]=_0x4c85e5['id']||null;_0xac13c4[_[_0xc0a2('0x21')](_0x3a2aa5[_0xc0a2('0x22')])+'InteractionId']=_0x3a2aa5[_0xc0a2('0x24')]?_0x3a2aa5[_0xc0a2('0x24')]['id']:null;_0xac13c4[_[_0xc0a2('0x21')](_0x3a2aa5[_0xc0a2('0x22')])+_0xc0a2('0x25')]=_0x3a2aa5[_0xc0a2('0x26')]?_0x3a2aa5[_0xc0a2('0x26')]['id']:null;_0xac13c4[_['upperFirst'](_0x3a2aa5[_0xc0a2('0x22')])+(_0x3a2aa5[_0xc0a2('0x22')]!==_0xc0a2('0x27')?_0xc0a2('0x28'):_0xc0a2('0x29'))]=_0x3a2aa5[_0xc0a2('0xe')]?_0x3a2aa5[_0xc0a2('0xe')]['id']:null;logger[_0xc0a2('0x2a')](util['format'](_0xc0a2('0x2b'),_0x4a93ff,_0x4c85e5[_0xc0a2('0x2c')]));emitChannelQueueInteraction(_0x3a2aa5[_0xc0a2('0x22')],_0x4c85e5['name'],_0xac13c4,_0x3a2aa5['account'][_0xc0a2('0x2c')],_0x3a2aa5['message']['id'],!![],_0x5bc7a7,_0x4c85e5['id']);if(rpc[_0x3a2aa5[_0xc0a2('0x22')]+'QueueReport']){return rpc[_0x3a2aa5[_0xc0a2('0x22')]+_0xc0a2('0x2d')][_0xc0a2('0x2e')](_0xac13c4)[_0xc0a2('0x2f')](function(_0x2d857d){logger[_0xc0a2('0x30')](_0xc0a2('0x31'));});}}}function stopRouting(_0x36348f,_0x278f1c,_0xfd9aa6,_0xddb855){if(_0x36348f&&_0x278f1c){_0x278f1c[_0xc0a2('0x32')]-=0x1;var _0x35f45a={'leaveAt':moment()[_0xc0a2('0x10')](_0xc0a2('0x33')),'acceptAt':moment()[_0xc0a2('0x10')](_0xc0a2('0x33')),'reason':_0xc0a2('0x34')};logger['info'](util[_0xc0a2('0x10')](_0xc0a2('0x35'),_0x36348f,_0x278f1c[_0xc0a2('0x2c')]));emitChannelQueueInteraction(_0xfd9aa6[_0xc0a2('0x22')],_0x278f1c[_0xc0a2('0x2c')],_0xfd9aa6[_0xc0a2('0x1d')],_0xfd9aa6[_0xc0a2('0xe')][_0xc0a2('0x2c')],_0xfd9aa6[_0xc0a2('0x26')]['id'],![],_0xddb855,_0x278f1c['id']);if(rpc[_0xfd9aa6['channel']+_0xc0a2('0x2d')]){return rpc[_0xfd9aa6[_0xc0a2('0x22')]+'QueueReport'][_0xc0a2('0x36')](_0x36348f,_0x35f45a)[_0xc0a2('0x2f')](function(_0x258013){logger[_0xc0a2('0x30')](_0xc0a2('0x37'));});}}}function endRouting(_0xf7dc53,_0x121e9f,_0x144e2e,_0x33c5ef){if(_0xf7dc53&&_0x121e9f){_0x121e9f[_0xc0a2('0x32')]-=0x1;var _0x13991e={'leaveAt':moment()[_0xc0a2('0x10')]('YYYY-MM-DD\x20HH:mm:ss'),'exitAt':moment()[_0xc0a2('0x10')](_0xc0a2('0x33')),'reason':_0xc0a2('0x38')};logger[_0xc0a2('0x2a')](util['format']('[%s][END:QUEUE][NAME:%s]',_0xf7dc53,_0x121e9f[_0xc0a2('0x2c')]));emitChannelQueueInteraction(_0x144e2e['channel'],_0x121e9f[_0xc0a2('0x2c')],_0x144e2e['body'],_0x144e2e[_0xc0a2('0xe')][_0xc0a2('0x2c')],_0x144e2e[_0xc0a2('0x26')]['id'],![],_0x33c5ef);if(rpc[_0x144e2e[_0xc0a2('0x22')]+_0xc0a2('0x2d')]){return rpc[_0x144e2e[_0xc0a2('0x22')]+_0xc0a2('0x2d')][_0xc0a2('0x36')](_0xf7dc53,_0x13991e)[_0xc0a2('0x2f')](function(_0x3fe200){logger[_0xc0a2('0x30')](_0xc0a2('0x37'));});}}}function handleFindQueue(_0x341b78){return function(_0x22fc80){return _0x22fc80['name'][_0xc0a2('0x39')]()===_0x341b78[_0xc0a2('0x39')]();};}exports[_0xc0a2('0x3a')]=function(_0x1b7180,_0x321739,_0x3d996e,_0x2a5633){return function(_0x10f45c){try{var _0x2fce26={'name':_0x321739[0x0],'timeout':_0x321739[0x1]};var _0x550490=queue[_0xc0a2('0x3b')](_0x2fce26,{'typecast':!![]});if(_0x550490[_0xc0a2('0x3c')]){logger[_0xc0a2('0x30')]('[%s][QUEUE]\x20%s',_0x1b7180,_[_0xc0a2('0x3d')](_0x550490,_0xc0a2('0x26'))[_0xc0a2('0x3e')](',\x20'));_0x10f45c[_0xc0a2('0x3f')]();}else{var _0x11a67c=_[_0xc0a2('0x40')](_0x3d996e[_0x2a5633[_0xc0a2('0x22')]+_0xc0a2('0x41')],handleFindQueue(_0x2fce26[_0xc0a2('0x2c')]));if(_0x11a67c){startRouting(_0x1b7180,_0x11a67c,_0x2a5633,_0x3d996e);var _0x1c8283=(_0x11a67c['timeout']||0xa)*0x3e8;var _0x15f4b4=(_0x2fce26[_0xc0a2('0x38')]||0x14)*0x3e8;var _0x39bab9,_0x2dc64c;if(_0x1c8283>_0x15f4b4){_0x15f4b4=_0x1c8283;}var _0x41fde4=seqqueue['createQueue'](_0x1c8283);_0x41fde4['id']=_0x1b7180;_0x41fde4['atimeout']=_0x1c8283;_0x41fde4[_0xc0a2('0x42')]=_0x15f4b4;_0x41fde4['channel']=_0x2a5633[_0xc0a2('0x22')];_0x3d996e[_0xc0a2('0x43')][_0x1b7180]['on'](_0xc0a2('0x44'),function(){logger['info']('[%s][QUEUE]\x20ROUTING\x20STOPPED',_0x1b7180);stopRouting(_0x1b7180,_0x11a67c,_0x2a5633,_0x3d996e);clearTimeout(_0x39bab9);_0x39bab9=undefined;_0x41fde4[_0xc0a2('0x45')](!![]);if(_0x3d996e[_0xc0a2('0x43')][_0x1b7180]){delete _0x3d996e[_0xc0a2('0x43')][_0x1b7180];}_0x10f45c[_0xc0a2('0x3f')]();});_0x3d996e[_0xc0a2('0x43')][_0x1b7180]['on'](_0xc0a2('0x46'),function(){if(_0x3d996e[_0xc0a2('0x43')][_0x1b7180]){delete _0x3d996e['rules'][_0x1b7180];}});_0x39bab9=setTimeout(function(){logger[_0xc0a2('0x2a')](_0xc0a2('0x47'),_0x1b7180);endRouting(_0x1b7180,_0x11a67c,_0x2a5633,_0x3d996e);clearTimeout(_0x39bab9);_0x41fde4[_0xc0a2('0x45')](!![]);_0x10f45c[_0xc0a2('0x48')]();},_0x15f4b4);switch(_0x11a67c['strategy']){case _0xc0a2('0x49'):strategy[_0xc0a2('0x49')](_0x41fde4,_0x11a67c,_0x3d996e,_0x2a5633);break;default:strategy[_0xc0a2('0x4a')](_0x41fde4,_0x11a67c,_0x3d996e,_0x2a5633);}}else{logger[_0xc0a2('0x30')]('[%s][QUEUE]\x20queue\x20not\x20found\x20%s',_0x1b7180,_0x2fce26[_0xc0a2('0x2c')]);_0x10f45c[_0xc0a2('0x3f')]();}}}catch(_0x301536){console[_0xc0a2('0x4b')](_0x301536);logger['error'](_0xc0a2('0x4c'),_0x1b7180,_0x301536[_0xc0a2('0x4d')]);_0x10f45c[_0xc0a2('0x3f')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x48a3=['bind','handleTimeout','timeout','squeue','prototype','handleDrained','info','[%s][AGENT]\x20try\x20with\x20%s','isNil','realtime','agents','[%s][AGENT]\x20agent\x20skipped,\x20unknown\x20id\x20%s','forcedOwnership','channel','showNotification','notificationId','writeLog',':FORCED','[%s][AGENT]\x20timeout\x20with\x20%s','busy','busyQueue','STOP','TIMEOUT','exports','uuid','./util','../../../../../config/logger','routing','agent','push','handleRun'];(function(_0x19159a,_0x1cb5c3){var _0xa677f4=function(_0x24bb85){while(--_0x24bb85){_0x19159a['push'](_0x19159a['shift']());}};_0xa677f4(++_0x1cb5c3);}(_0x48a3,0x1e9));var _0x348a=function(_0x4ca536,_0x57c8de){_0x4ca536=_0x4ca536-0x0;var _0x3bd35f=_0x48a3[_0x4ca536];return _0x3bd35f;};'use strict';var _=require('lodash');var uuid=require(_0x348a('0x0'));var util=require(_0x348a('0x1'));var logger=require(_0x348a('0x2'))(_0x348a('0x3'));var Agent=function(_0x592687,_0x6b93a9,_0x116469,_0x18703c){this['notificationId']=uuid['v4']();this['squeue']=_0x592687;this[_0x348a('0x4')]=_0x6b93a9;this['realtime']=_0x116469;this['routing']=_0x18703c;this['squeue'][_0x348a('0x5')](this[_0x348a('0x6')][_0x348a('0x7')](this),this[_0x348a('0x8')]['bind'](this));this['squeue']['on'](_0x348a('0x9'),this['handleTimeout'][_0x348a('0x7')](this));this[_0x348a('0xa')]['on']('drained',this['handleDrained'][_0x348a('0x7')](this));};Agent[_0x348a('0xb')]['push']=function(){this['squeue'][_0x348a('0x5')](this['handleRun']['bind'](this),this[_0x348a('0x8')]['bind'](this));};Agent[_0x348a('0xb')][_0x348a('0xc')]=function(){this['handleTimeout'](!![]);};Agent[_0x348a('0xb')][_0x348a('0x6')]=function(_0x5d3f24){logger[_0x348a('0xd')](_0x348a('0xe'),this[_0x348a('0xa')]['id'],this[_0x348a('0x4')]['id']);if(_[_0x348a('0xf')](this[_0x348a('0x10')][_0x348a('0x11')][this[_0x348a('0x4')]['id']])){logger[_0x348a('0xd')](_0x348a('0x12'),this[_0x348a('0xa')]['id'],this['agent']['id']);setTimeout(this[_0x348a('0x5')][_0x348a('0x7')](this),0x3e8);}else{if(this[_0x348a('0x3')][_0x348a('0x13')]||util['isAgentAvailable'](this[_0x348a('0xa')]['id'],this['realtime'][_0x348a('0x11')][this[_0x348a('0x4')]['id']],this[_0x348a('0xa')][_0x348a('0x14')],![])){this[_0x348a('0x10')]['agents'][this[_0x348a('0x4')]['id']]['busy']=!![];this[_0x348a('0x10')][_0x348a('0x11')][this[_0x348a('0x4')]['id']]['busyQueue']=undefined;util[_0x348a('0x15')](this[_0x348a('0x16')],this[_0x348a('0xa')]['id'],this[_0x348a('0x10')][_0x348a('0x11')][this[_0x348a('0x4')]['id']],null,this[_0x348a('0x3')]);util[_0x348a('0x17')](this[_0x348a('0xa')]['id'],this[_0x348a('0x10')][_0x348a('0x11')][this[_0x348a('0x4')]['id']],'RINGING'+(this[_0x348a('0x3')][_0x348a('0x13')]?_0x348a('0x18'):''));}else{logger[_0x348a('0xd')]('[%s][AGENT]\x20agent\x20%s\x20is\x20not\x20available',this['squeue']['id'],this['agent']['id']);setTimeout(this[_0x348a('0x5')]['bind'](this),0x3e8);}}};Agent[_0x348a('0xb')][_0x348a('0x8')]=function(_0x1904f4){if(_[_0x348a('0xf')](this[_0x348a('0x10')][_0x348a('0x11')][this[_0x348a('0x4')]['id']])){return logger[_0x348a('0xd')](_0x348a('0x12'),this[_0x348a('0xa')]['id'],this[_0x348a('0x4')]['id']);}else{logger[_0x348a('0xd')](_0x348a('0x19'),this[_0x348a('0xa')]['id'],this[_0x348a('0x4')]['id']);util['hideNotification'](this[_0x348a('0x16')],this['squeue']['id'],this[_0x348a('0x10')][_0x348a('0x11')][this[_0x348a('0x4')]['id']],null,this['routing']);this['realtime'][_0x348a('0x11')][this[_0x348a('0x4')]['id']][_0x348a('0x1a')]=![];this[_0x348a('0x10')][_0x348a('0x11')][this['agent']['id']][_0x348a('0x1b')]=undefined;util[_0x348a('0x17')](this[_0x348a('0xa')]['id'],this[_0x348a('0x10')]['agents'][this[_0x348a('0x4')]['id']],_0x1904f4?_0x348a('0x1c'):_0x348a('0x1d'));}if(!_0x1904f4){setTimeout(this[_0x348a('0x5')][_0x348a('0x7')](this),0x3e8);}};function agent(_0x860d32,_0x2134b5,_0x3e7396,_0x441122){return new Agent(_0x860d32,_0x2134b5,_0x3e7396,_0x441122);}module[_0x348a('0x1e')]=agent;
\ No newline at end of file
+var _0xccbe=['RINGING','[%s][AGENT]\x20agent\x20%s\x20is\x20not\x20available','isNil','[%s][AGENT]\x20timeout\x20with\x20%s','hideNotification','TIMEOUT','exports','lodash','./util','../../../../../config/logger','routing','notificationId','squeue','push','handleRun','bind','handleTimeout','timeout','handleDrained','prototype','info','agent','realtime','agents','[%s][AGENT]\x20agent\x20skipped,\x20unknown\x20id\x20%s','forcedOwnership','isAgentAvailable','channel','busy','busyQueue','showNotification','writeLog'];(function(_0x1dada6,_0x2a4f8e){var _0x188f14=function(_0x4ed396){while(--_0x4ed396){_0x1dada6['push'](_0x1dada6['shift']());}};_0x188f14(++_0x2a4f8e);}(_0xccbe,0x127));var _0xeccb=function(_0x32bb6b,_0x1a5fbe){_0x32bb6b=_0x32bb6b-0x0;var _0x58dcb4=_0xccbe[_0x32bb6b];return _0x58dcb4;};'use strict';var _=require(_0xeccb('0x0'));var uuid=require('uuid');var util=require(_0xeccb('0x1'));var logger=require(_0xeccb('0x2'))(_0xeccb('0x3'));var Agent=function(_0x4f4506,_0x3cc4e3,_0x42de3a,_0x27ec88){this[_0xeccb('0x4')]=uuid['v4']();this[_0xeccb('0x5')]=_0x4f4506;this['agent']=_0x3cc4e3;this['realtime']=_0x42de3a;this[_0xeccb('0x3')]=_0x27ec88;this[_0xeccb('0x5')][_0xeccb('0x6')](this[_0xeccb('0x7')][_0xeccb('0x8')](this),this[_0xeccb('0x9')]['bind'](this));this[_0xeccb('0x5')]['on'](_0xeccb('0xa'),this[_0xeccb('0x9')]['bind'](this));this['squeue']['on']('drained',this[_0xeccb('0xb')][_0xeccb('0x8')](this));};Agent['prototype'][_0xeccb('0x6')]=function(){this[_0xeccb('0x5')][_0xeccb('0x6')](this[_0xeccb('0x7')][_0xeccb('0x8')](this),this[_0xeccb('0x9')][_0xeccb('0x8')](this));};Agent[_0xeccb('0xc')][_0xeccb('0xb')]=function(){this[_0xeccb('0x9')](!![]);};Agent['prototype'][_0xeccb('0x7')]=function(_0x14b0c1){logger[_0xeccb('0xd')]('[%s][AGENT]\x20try\x20with\x20%s',this['squeue']['id'],this[_0xeccb('0xe')]['id']);if(_['isNil'](this[_0xeccb('0xf')][_0xeccb('0x10')][this[_0xeccb('0xe')]['id']])){logger[_0xeccb('0xd')](_0xeccb('0x11'),this[_0xeccb('0x5')]['id'],this[_0xeccb('0xe')]['id']);setTimeout(this['push'][_0xeccb('0x8')](this),0x3e8);}else{if(this[_0xeccb('0x3')][_0xeccb('0x12')]||util[_0xeccb('0x13')](this[_0xeccb('0x5')]['id'],this[_0xeccb('0xf')][_0xeccb('0x10')][this[_0xeccb('0xe')]['id']],this[_0xeccb('0x5')][_0xeccb('0x14')],![])){this[_0xeccb('0xf')][_0xeccb('0x10')][this[_0xeccb('0xe')]['id']][_0xeccb('0x15')]=!![];this[_0xeccb('0xf')][_0xeccb('0x10')][this['agent']['id']][_0xeccb('0x16')]=undefined;util[_0xeccb('0x17')](this[_0xeccb('0x4')],this['squeue']['id'],this[_0xeccb('0xf')][_0xeccb('0x10')][this[_0xeccb('0xe')]['id']],null,this[_0xeccb('0x3')]);util[_0xeccb('0x18')](this[_0xeccb('0x5')]['id'],this[_0xeccb('0xf')]['agents'][this[_0xeccb('0xe')]['id']],_0xeccb('0x19')+(this['routing']['forcedOwnership']?':FORCED':''));}else{logger[_0xeccb('0xd')](_0xeccb('0x1a'),this[_0xeccb('0x5')]['id'],this['agent']['id']);setTimeout(this['push'][_0xeccb('0x8')](this),0x3e8);}}};Agent[_0xeccb('0xc')][_0xeccb('0x9')]=function(_0x4f7300){if(_[_0xeccb('0x1b')](this[_0xeccb('0xf')][_0xeccb('0x10')][this[_0xeccb('0xe')]['id']])){return logger[_0xeccb('0xd')]('[%s][AGENT]\x20agent\x20skipped,\x20unknown\x20id\x20%s',this[_0xeccb('0x5')]['id'],this[_0xeccb('0xe')]['id']);}else{logger[_0xeccb('0xd')](_0xeccb('0x1c'),this[_0xeccb('0x5')]['id'],this[_0xeccb('0xe')]['id']);util[_0xeccb('0x1d')](this[_0xeccb('0x4')],this[_0xeccb('0x5')]['id'],this[_0xeccb('0xf')][_0xeccb('0x10')][this['agent']['id']],null,this[_0xeccb('0x3')]);this[_0xeccb('0xf')][_0xeccb('0x10')][this[_0xeccb('0xe')]['id']]['busy']=![];this[_0xeccb('0xf')]['agents'][this[_0xeccb('0xe')]['id']][_0xeccb('0x16')]=undefined;util['writeLog'](this[_0xeccb('0x5')]['id'],this[_0xeccb('0xf')][_0xeccb('0x10')][this[_0xeccb('0xe')]['id']],_0x4f7300?'STOP':_0xeccb('0x1e'));}if(!_0x4f7300){setTimeout(this[_0xeccb('0x6')]['bind'](this),0x3e8);}};function agent(_0x204a67,_0x5b1d37,_0x17244e,_0x47ce7d){return new Agent(_0x204a67,_0x5b1d37,_0x17244e,_0x47ce7d);}module[_0xeccb('0x1f')]=agent;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4a80=['../../../../../config/logger','notificationId','squeue','queue','realtime','routing','handleRun','bind','handleTimeout','timeout','drained','prototype','push','handleDrained','isNil','length','Agents','agents','info','[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s','channel','writeLog','RINGING','name','showNotification','[%s][QUEUE]\x20ALL\x20AGENTS\x20ARE\x20BUSY','[%s][QUEUE]\x20EMPTY','hideNotification','TIMEOUT','busy','lodash','./util'];(function(_0x397f37,_0x3cf86d){var _0x31cae6=function(_0x5cddb9){while(--_0x5cddb9){_0x397f37['push'](_0x397f37['shift']());}};_0x31cae6(++_0x3cf86d);}(_0x4a80,0xbe));var _0x04a8=function(_0x304828,_0x154b36){_0x304828=_0x304828-0x0;var _0x1ab51e=_0x4a80[_0x304828];return _0x1ab51e;};'use strict';var _=require(_0x04a8('0x0'));var uuid=require('uuid');var util=require(_0x04a8('0x1'));var logger=require(_0x04a8('0x2'))('routing');var Beepall=function(_0x2e0401,_0x198bc8,_0x256369,_0x1e36fc){this[_0x04a8('0x3')]=uuid['v4']();this[_0x04a8('0x4')]=_0x2e0401;this[_0x04a8('0x5')]=_0x198bc8;this[_0x04a8('0x6')]=_0x256369;this[_0x04a8('0x7')]=_0x1e36fc;this[_0x04a8('0x4')]['push'](this[_0x04a8('0x8')][_0x04a8('0x9')](this),this[_0x04a8('0xa')][_0x04a8('0x9')](this));this[_0x04a8('0x4')]['on'](_0x04a8('0xb'),this[_0x04a8('0xa')][_0x04a8('0x9')](this));this[_0x04a8('0x4')]['on'](_0x04a8('0xc'),this['handleDrained'][_0x04a8('0x9')](this));};Beepall[_0x04a8('0xd')][_0x04a8('0xe')]=function(){this['squeue'][_0x04a8('0xe')](this[_0x04a8('0x8')][_0x04a8('0x9')](this),this[_0x04a8('0xa')][_0x04a8('0x9')](this));};Beepall[_0x04a8('0xd')][_0x04a8('0xf')]=function(_0x51f65d){this[_0x04a8('0xa')](!![]);};Beepall[_0x04a8('0xd')][_0x04a8('0x8')]=function(_0x5f448e){var _0x5f35c4=!![];if(!_[_0x04a8('0x10')](this[_0x04a8('0x5')])&&!_['isNil'](this[_0x04a8('0x5')]['Agents'])&&this[_0x04a8('0x5')]['Agents'][_0x04a8('0x11')]>0x0){for(var _0x173f8e=0x0,_0x4bb73c;_0x173f8e<this[_0x04a8('0x5')][_0x04a8('0x12')]['length'];_0x173f8e+=0x1){_0x4bb73c=this['queue']['Agents'][_0x173f8e]['id'];if(_[_0x04a8('0x10')](this[_0x04a8('0x6')][_0x04a8('0x13')][_0x4bb73c])){logger[_0x04a8('0x14')](_0x04a8('0x15'),this[_0x04a8('0x4')]['id'],_0x4bb73c);}else{if(util['isAgentAvailable'](this[_0x04a8('0x4')]['id'],this[_0x04a8('0x6')][_0x04a8('0x13')][_0x4bb73c],this[_0x04a8('0x4')][_0x04a8('0x16')],!![])){_0x5f35c4=![];util[_0x04a8('0x17')](this[_0x04a8('0x4')]['id'],this[_0x04a8('0x6')]['agents'][_0x4bb73c],_0x04a8('0x18'));this[_0x04a8('0x6')][_0x04a8('0x13')][_0x4bb73c]['busy']=!![];this['realtime'][_0x04a8('0x13')][_0x4bb73c]['busyQueue']=this['queue'][_0x04a8('0x19')];util[_0x04a8('0x1a')](this[_0x04a8('0x3')],this[_0x04a8('0x4')]['id'],this[_0x04a8('0x6')][_0x04a8('0x13')][_0x4bb73c],this[_0x04a8('0x5')],this['routing']);}}}if(_0x5f35c4){logger[_0x04a8('0x14')](_0x04a8('0x1b'),this['squeue']['id']);setTimeout(this[_0x04a8('0xe')][_0x04a8('0x9')](this),0x3e8);}}else{logger[_0x04a8('0x14')](_0x04a8('0x1c'),this[_0x04a8('0x4')]['id']);setTimeout(this[_0x04a8('0xe')][_0x04a8('0x9')](this),0x3e8);}};Beepall[_0x04a8('0xd')][_0x04a8('0xa')]=function(_0x108645){if(!_[_0x04a8('0x10')](this[_0x04a8('0x5')])&&!_['isNil'](this['queue'][_0x04a8('0x12')])){for(var _0x1961b5=0x0,_0x5ed010;_0x1961b5<this['queue'][_0x04a8('0x12')][_0x04a8('0x11')];_0x1961b5+=0x1){_0x5ed010=this[_0x04a8('0x5')][_0x04a8('0x12')][_0x1961b5]['id'];if(_['isNil'](this[_0x04a8('0x6')]['agents'][_0x5ed010])){logger[_0x04a8('0x14')](_0x04a8('0x15'),this[_0x04a8('0x4')]['id'],_0x5ed010);}else{util[_0x04a8('0x1d')](this[_0x04a8('0x3')],this[_0x04a8('0x4')]['id'],this[_0x04a8('0x6')][_0x04a8('0x13')][_0x5ed010],this['queue'],this[_0x04a8('0x7')]);util[_0x04a8('0x17')](this['squeue']['id'],this[_0x04a8('0x6')][_0x04a8('0x13')][_0x5ed010],_0x108645?'STOP':_0x04a8('0x1e'));this[_0x04a8('0x6')]['agents'][_0x5ed010][_0x04a8('0x1f')]=![];this[_0x04a8('0x6')][_0x04a8('0x13')][_0x5ed010]['busyQueue']=undefined;}}}if(!_0x108645){setTimeout(this[_0x04a8('0xe')][_0x04a8('0x9')](this),0x3e8);}};function beepall(_0x4ce22b,_0x13964e,_0x10c9c5,_0x339586){return new Beepall(_0x4ce22b,_0x13964e,_0x10c9c5,_0x339586);}module['exports']=beepall;
\ No newline at end of file
+var _0x81bd=['isNil','queue','Agents','length','agents','info','[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s','writeLog','RINGING','busy','busyQueue','name','showNotification','[%s][QUEUE]\x20ALL\x20AGENTS\x20ARE\x20BUSY','[%s][QUEUE]\x20EMPTY','hideNotification','STOP','TIMEOUT','exports','lodash','uuid','./util','../../../../../config/logger','routing','notificationId','squeue','realtime','bind','timeout','handleTimeout','drained','handleDrained','prototype','push','handleRun'];(function(_0x140343,_0x63e5be){var _0x6b2115=function(_0x53ceea){while(--_0x53ceea){_0x140343['push'](_0x140343['shift']());}};_0x6b2115(++_0x63e5be);}(_0x81bd,0x7c));var _0xd81b=function(_0xc9c8ca,_0xbc7ae3){_0xc9c8ca=_0xc9c8ca-0x0;var _0x59fc76=_0x81bd[_0xc9c8ca];return _0x59fc76;};'use strict';var _=require(_0xd81b('0x0'));var uuid=require(_0xd81b('0x1'));var util=require(_0xd81b('0x2'));var logger=require(_0xd81b('0x3'))(_0xd81b('0x4'));var Beepall=function(_0x2ec03a,_0x111a9c,_0x54e096,_0x16e8de){this[_0xd81b('0x5')]=uuid['v4']();this[_0xd81b('0x6')]=_0x2ec03a;this['queue']=_0x111a9c;this[_0xd81b('0x7')]=_0x54e096;this[_0xd81b('0x4')]=_0x16e8de;this[_0xd81b('0x6')]['push'](this['handleRun'][_0xd81b('0x8')](this),this['handleTimeout'][_0xd81b('0x8')](this));this[_0xd81b('0x6')]['on'](_0xd81b('0x9'),this[_0xd81b('0xa')][_0xd81b('0x8')](this));this[_0xd81b('0x6')]['on'](_0xd81b('0xb'),this[_0xd81b('0xc')][_0xd81b('0x8')](this));};Beepall[_0xd81b('0xd')][_0xd81b('0xe')]=function(){this[_0xd81b('0x6')][_0xd81b('0xe')](this['handleRun'][_0xd81b('0x8')](this),this['handleTimeout'][_0xd81b('0x8')](this));};Beepall[_0xd81b('0xd')]['handleDrained']=function(_0x35a053){this['handleTimeout'](!![]);};Beepall[_0xd81b('0xd')][_0xd81b('0xf')]=function(_0x6c6041){var _0x35cfc1=!![];if(!_[_0xd81b('0x10')](this['queue'])&&!_[_0xd81b('0x10')](this[_0xd81b('0x11')]['Agents'])&&this[_0xd81b('0x11')][_0xd81b('0x12')][_0xd81b('0x13')]>0x0){for(var _0x15e860=0x0,_0x5f7db6;_0x15e860<this[_0xd81b('0x11')][_0xd81b('0x12')][_0xd81b('0x13')];_0x15e860+=0x1){_0x5f7db6=this[_0xd81b('0x11')][_0xd81b('0x12')][_0x15e860]['id'];if(_[_0xd81b('0x10')](this[_0xd81b('0x7')][_0xd81b('0x14')][_0x5f7db6])){logger[_0xd81b('0x15')](_0xd81b('0x16'),this[_0xd81b('0x6')]['id'],_0x5f7db6);}else{if(util['isAgentAvailable'](this['squeue']['id'],this[_0xd81b('0x7')][_0xd81b('0x14')][_0x5f7db6],this[_0xd81b('0x6')]['channel'],!![])){_0x35cfc1=![];util[_0xd81b('0x17')](this[_0xd81b('0x6')]['id'],this['realtime'][_0xd81b('0x14')][_0x5f7db6],_0xd81b('0x18'));this[_0xd81b('0x7')][_0xd81b('0x14')][_0x5f7db6][_0xd81b('0x19')]=!![];this[_0xd81b('0x7')][_0xd81b('0x14')][_0x5f7db6][_0xd81b('0x1a')]=this[_0xd81b('0x11')][_0xd81b('0x1b')];util[_0xd81b('0x1c')](this[_0xd81b('0x5')],this['squeue']['id'],this[_0xd81b('0x7')][_0xd81b('0x14')][_0x5f7db6],this[_0xd81b('0x11')],this[_0xd81b('0x4')]);}}}if(_0x35cfc1){logger[_0xd81b('0x15')](_0xd81b('0x1d'),this[_0xd81b('0x6')]['id']);setTimeout(this[_0xd81b('0xe')][_0xd81b('0x8')](this),0x3e8);}}else{logger['info'](_0xd81b('0x1e'),this['squeue']['id']);setTimeout(this['push'][_0xd81b('0x8')](this),0x3e8);}};Beepall[_0xd81b('0xd')]['handleTimeout']=function(_0x481454){if(!_[_0xd81b('0x10')](this[_0xd81b('0x11')])&&!_[_0xd81b('0x10')](this[_0xd81b('0x11')][_0xd81b('0x12')])){for(var _0x4654ba=0x0,_0x5527ed;_0x4654ba<this[_0xd81b('0x11')][_0xd81b('0x12')]['length'];_0x4654ba+=0x1){_0x5527ed=this['queue'][_0xd81b('0x12')][_0x4654ba]['id'];if(_[_0xd81b('0x10')](this['realtime']['agents'][_0x5527ed])){logger['info'](_0xd81b('0x16'),this[_0xd81b('0x6')]['id'],_0x5527ed);}else{util[_0xd81b('0x1f')](this[_0xd81b('0x5')],this[_0xd81b('0x6')]['id'],this[_0xd81b('0x7')][_0xd81b('0x14')][_0x5527ed],this['queue'],this[_0xd81b('0x4')]);util['writeLog'](this[_0xd81b('0x6')]['id'],this[_0xd81b('0x7')][_0xd81b('0x14')][_0x5527ed],_0x481454?_0xd81b('0x20'):_0xd81b('0x21'));this[_0xd81b('0x7')][_0xd81b('0x14')][_0x5527ed][_0xd81b('0x19')]=![];this[_0xd81b('0x7')][_0xd81b('0x14')][_0x5527ed][_0xd81b('0x1a')]=undefined;}}}if(!_0x481454){setTimeout(this[_0xd81b('0xe')][_0xd81b('0x8')](this),0x3e8);}};function beepall(_0x57bc0c,_0x49deb8,_0x413bf6,_0x46119e){return new Beepall(_0x57bc0c,_0x49deb8,_0x413bf6,_0x46119e);}module[_0xd81b('0x22')]=beepall;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe99d=['./beepall','./agent','exports','./rrmemory'];(function(_0x1830a9,_0x1583bd){var _0x2b6166=function(_0x4cf0e6){while(--_0x4cf0e6){_0x1830a9['push'](_0x1830a9['shift']());}};_0x2b6166(++_0x1583bd);}(_0xe99d,0x1ae));var _0xde99=function(_0x5dec3b,_0xc33577){_0x5dec3b=_0x5dec3b-0x0;var _0x5455fd=_0xe99d[_0x5dec3b];return _0x5455fd;};'use strict';module[_0xde99('0x0')]={'rrmemory':require(_0xde99('0x1')),'beepall':require(_0xde99('0x2')),'agent':require(_0xde99('0x3'))};
\ No newline at end of file
+var _0x3fe4=['./rrmemory','./beepall','exports'];(function(_0x48326a,_0x8cfa0c){var _0x466709=function(_0x5ab1b7){while(--_0x5ab1b7){_0x48326a['push'](_0x48326a['shift']());}};_0x466709(++_0x8cfa0c);}(_0x3fe4,0x113));var _0x43fe=function(_0x5e59e7,_0x5b3049){_0x5e59e7=_0x5e59e7-0x0;var _0x293844=_0x3fe4[_0x5e59e7];return _0x293844;};'use strict';module[_0x43fe('0x0')]={'rrmemory':require(_0x43fe('0x1')),'beepall':require(_0x43fe('0x2')),'agent':require('./agent')};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd97f=['isNil','TIMEOUT','uuid','./util','../../../../../config/logger','routing','notificationId','squeue','queue','realtime','push','bind','handleTimeout','module','drained','handleDrained','prototype','handleRun','handleCheckReject','agents','agentId','info','[%s][QUEUE]\x20available\x20again\x20%s','intervals','mapAgentsId','[%s][QUEUE]\x20try\x20with\x20%s','[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s','done','channel','busy','busyQueue','name','showNotification','writeLog','RINGING','[%s][QUEUE]\x20agent\x20skipped,\x20not\x20available\x20id\x20%s'];(function(_0x34cee9,_0x21c4f4){var _0xe6016e=function(_0x11a6d6){while(--_0x11a6d6){_0x34cee9['push'](_0x34cee9['shift']());}};_0xe6016e(++_0x21c4f4);}(_0xd97f,0x146));var _0xfd97=function(_0x43b4c6,_0x49d313){_0x43b4c6=_0x43b4c6-0x0;var _0x2b484c=_0xd97f[_0x43b4c6];return _0x2b484c;};'use strict';var rr=require('rr');var _=require('lodash');var uuid=require(_0xfd97('0x0'));var util=require(_0xfd97('0x1'));var logger=require(_0xfd97('0x2'))(_0xfd97('0x3'));var RRMemory=function(_0x103801,_0x34612a,_0x2c9211,_0x15de70){this[_0xfd97('0x4')]=uuid['v4']();this[_0xfd97('0x5')]=_0x103801;this[_0xfd97('0x6')]=_0x34612a;this[_0xfd97('0x7')]=_0x2c9211;this[_0xfd97('0x3')]=_0x15de70;this['intervals']={};this['squeue'][_0xfd97('0x8')](this['handleRun'][_0xfd97('0x9')](this),this[_0xfd97('0xa')]['bind'](this),this[_0xfd97('0xb')]);this[_0xfd97('0x5')]['on']('timeout',this[_0xfd97('0xa')][_0xfd97('0x9')](this));this[_0xfd97('0x5')]['on'](_0xfd97('0xc'),this[_0xfd97('0xd')][_0xfd97('0x9')](this));};RRMemory[_0xfd97('0xe')][_0xfd97('0x8')]=function(){this['squeue']['push'](this[_0xfd97('0xf')][_0xfd97('0x9')](this),this[_0xfd97('0xa')][_0xfd97('0x9')](this));};RRMemory['prototype'][_0xfd97('0xd')]=function(_0x321c93){this[_0xfd97('0xa')](!![]);};RRMemory['prototype'][_0xfd97('0x10')]=function(_0x21afe2){if(util['isAgentAvailable'](this[_0xfd97('0x5')]['id'],this['realtime'][_0xfd97('0x11')][this[_0xfd97('0x12')]],this[_0xfd97('0x5')]['channel'],!![])){logger[_0xfd97('0x13')](_0xfd97('0x14'),this[_0xfd97('0x5')]['id'],this[_0xfd97('0x12')]);clearInterval(this[_0xfd97('0x15')][this[_0xfd97('0x12')]]);_0x21afe2['done']();setTimeout(this[_0xfd97('0x8')][_0xfd97('0x9')](this),0x3e8);}};RRMemory[_0xfd97('0xe')][_0xfd97('0xf')]=function(_0x50ab1a){this[_0xfd97('0x12')]=rr(this[_0xfd97('0x6')][_0xfd97('0x16')]);logger[_0xfd97('0x13')](_0xfd97('0x17'),this['squeue']['id'],this[_0xfd97('0x12')]);if(_['isNil'](this[_0xfd97('0x7')][_0xfd97('0x11')][this[_0xfd97('0x12')]])){logger[_0xfd97('0x13')](_0xfd97('0x18'),this[_0xfd97('0x5')]['id'],this[_0xfd97('0x12')]);_0x50ab1a[_0xfd97('0x19')]();setTimeout(this['push'][_0xfd97('0x9')](this),0x3e8);}else{if(util['isAgentAvailable'](this[_0xfd97('0x5')]['id'],this[_0xfd97('0x7')][_0xfd97('0x11')][this[_0xfd97('0x12')]],this[_0xfd97('0x5')][_0xfd97('0x1a')],!![])){this[_0xfd97('0x7')]['agents'][this[_0xfd97('0x12')]][_0xfd97('0x1b')]=!![];this[_0xfd97('0x7')][_0xfd97('0x11')][this['agentId']][_0xfd97('0x1c')]=this[_0xfd97('0x6')][_0xfd97('0x1d')];util[_0xfd97('0x1e')](this[_0xfd97('0x4')],this[_0xfd97('0x5')]['id'],this['realtime'][_0xfd97('0x11')][this['agentId']],this[_0xfd97('0x6')],this[_0xfd97('0x3')]);util[_0xfd97('0x1f')](this[_0xfd97('0x5')]['id'],this['realtime'][_0xfd97('0x11')][this[_0xfd97('0x12')]],_0xfd97('0x20'));this[_0xfd97('0x15')][this[_0xfd97('0x12')]]=setInterval(this[_0xfd97('0x10')][_0xfd97('0x9')](this,_0x50ab1a),0x3e8);}else{logger[_0xfd97('0x13')](_0xfd97('0x21'),this[_0xfd97('0x5')]['id'],this[_0xfd97('0x12')]);_0x50ab1a[_0xfd97('0x19')]();setTimeout(this['push'][_0xfd97('0x9')](this),0x3e8);}}};RRMemory['prototype'][_0xfd97('0xa')]=function(_0xc35623){logger['info']('[%s][QUEUE]\x20timeout\x20with\x20%s',this[_0xfd97('0x5')]['id'],this[_0xfd97('0x12')]);if(_[_0xfd97('0x22')](this[_0xfd97('0x7')][_0xfd97('0x11')][this[_0xfd97('0x12')]])){logger['info'](_0xfd97('0x18'),this['squeue']['id'],this[_0xfd97('0x12')]);}else{clearInterval(this['intervals'][this[_0xfd97('0x12')]]);util['hideNotification'](this[_0xfd97('0x4')],this['squeue']['id'],this[_0xfd97('0x7')][_0xfd97('0x11')][this[_0xfd97('0x12')]],this[_0xfd97('0x6')],this[_0xfd97('0x3')]);util[_0xfd97('0x1f')](this[_0xfd97('0x5')]['id'],this[_0xfd97('0x7')][_0xfd97('0x11')][this[_0xfd97('0x12')]],_0xfd97('0x23'));this[_0xfd97('0x7')][_0xfd97('0x11')][this[_0xfd97('0x12')]][_0xfd97('0x1b')]=![];this[_0xfd97('0x7')][_0xfd97('0x11')][this[_0xfd97('0x12')]][_0xfd97('0x1c')]=undefined;}if(!_0xc35623){setTimeout(this[_0xfd97('0x8')]['bind'](this),0x3e8);}};function rrmemory(_0x44caa3,_0x5a10d1,_0x17a742,_0x6d0cc0){return new RRMemory(_0x44caa3,_0x5a10d1,_0x17a742,_0x6d0cc0);}module['exports']=rrmemory;
\ No newline at end of file
+var _0x7f98=['prototype','isAgentAvailable','agentId','channel','[%s][QUEUE]\x20available\x20again\x20%s','done','mapAgentsId','isNil','agents','[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s','busyQueue','name','showNotification','notificationId','writeLog','RINGING','info','[%s][QUEUE]\x20agent\x20skipped,\x20not\x20available\x20id\x20%s','[%s][QUEUE]\x20timeout\x20with\x20%s','TIMEOUT','busy','exports','lodash','uuid','./util','../../../../../config/logger','routing','squeue','queue','realtime','intervals','push','handleRun','bind','handleTimeout','module','drained','handleDrained'];(function(_0x49fec6,_0x121b19){var _0x398820=function(_0x1eee0a){while(--_0x1eee0a){_0x49fec6['push'](_0x49fec6['shift']());}};_0x398820(++_0x121b19);}(_0x7f98,0x192));var _0x87f9=function(_0x36eaaa,_0x326732){_0x36eaaa=_0x36eaaa-0x0;var _0x461349=_0x7f98[_0x36eaaa];return _0x461349;};'use strict';var rr=require('rr');var _=require(_0x87f9('0x0'));var uuid=require(_0x87f9('0x1'));var util=require(_0x87f9('0x2'));var logger=require(_0x87f9('0x3'))(_0x87f9('0x4'));var RRMemory=function(_0x420f3e,_0x3d88a3,_0xa48de5,_0x452ad1){this['notificationId']=uuid['v4']();this[_0x87f9('0x5')]=_0x420f3e;this[_0x87f9('0x6')]=_0x3d88a3;this[_0x87f9('0x7')]=_0xa48de5;this[_0x87f9('0x4')]=_0x452ad1;this[_0x87f9('0x8')]={};this[_0x87f9('0x5')][_0x87f9('0x9')](this[_0x87f9('0xa')][_0x87f9('0xb')](this),this[_0x87f9('0xc')][_0x87f9('0xb')](this),this[_0x87f9('0xd')]);this[_0x87f9('0x5')]['on']('timeout',this[_0x87f9('0xc')]['bind'](this));this[_0x87f9('0x5')]['on'](_0x87f9('0xe'),this[_0x87f9('0xf')]['bind'](this));};RRMemory[_0x87f9('0x10')][_0x87f9('0x9')]=function(){this[_0x87f9('0x5')][_0x87f9('0x9')](this['handleRun'][_0x87f9('0xb')](this),this[_0x87f9('0xc')][_0x87f9('0xb')](this));};RRMemory[_0x87f9('0x10')][_0x87f9('0xf')]=function(_0x4cc965){this[_0x87f9('0xc')](!![]);};RRMemory[_0x87f9('0x10')]['handleCheckReject']=function(_0x4e537e){if(util[_0x87f9('0x11')](this[_0x87f9('0x5')]['id'],this['realtime']['agents'][this[_0x87f9('0x12')]],this['squeue'][_0x87f9('0x13')],!![])){logger['info'](_0x87f9('0x14'),this[_0x87f9('0x5')]['id'],this[_0x87f9('0x12')]);clearInterval(this['intervals'][this[_0x87f9('0x12')]]);_0x4e537e[_0x87f9('0x15')]();setTimeout(this[_0x87f9('0x9')][_0x87f9('0xb')](this),0x3e8);}};RRMemory[_0x87f9('0x10')][_0x87f9('0xa')]=function(_0x2aadd2){this[_0x87f9('0x12')]=rr(this[_0x87f9('0x6')][_0x87f9('0x16')]);logger['info']('[%s][QUEUE]\x20try\x20with\x20%s',this[_0x87f9('0x5')]['id'],this['agentId']);if(_[_0x87f9('0x17')](this[_0x87f9('0x7')][_0x87f9('0x18')][this[_0x87f9('0x12')]])){logger['info'](_0x87f9('0x19'),this[_0x87f9('0x5')]['id'],this[_0x87f9('0x12')]);_0x2aadd2[_0x87f9('0x15')]();setTimeout(this[_0x87f9('0x9')][_0x87f9('0xb')](this),0x3e8);}else{if(util['isAgentAvailable'](this[_0x87f9('0x5')]['id'],this['realtime'][_0x87f9('0x18')][this[_0x87f9('0x12')]],this[_0x87f9('0x5')][_0x87f9('0x13')],!![])){this[_0x87f9('0x7')]['agents'][this[_0x87f9('0x12')]]['busy']=!![];this[_0x87f9('0x7')][_0x87f9('0x18')][this[_0x87f9('0x12')]][_0x87f9('0x1a')]=this[_0x87f9('0x6')][_0x87f9('0x1b')];util[_0x87f9('0x1c')](this[_0x87f9('0x1d')],this[_0x87f9('0x5')]['id'],this['realtime'][_0x87f9('0x18')][this[_0x87f9('0x12')]],this[_0x87f9('0x6')],this['routing']);util[_0x87f9('0x1e')](this[_0x87f9('0x5')]['id'],this['realtime'][_0x87f9('0x18')][this[_0x87f9('0x12')]],_0x87f9('0x1f'));this['intervals'][this[_0x87f9('0x12')]]=setInterval(this['handleCheckReject']['bind'](this,_0x2aadd2),0x3e8);}else{logger[_0x87f9('0x20')](_0x87f9('0x21'),this[_0x87f9('0x5')]['id'],this['agentId']);_0x2aadd2[_0x87f9('0x15')]();setTimeout(this[_0x87f9('0x9')]['bind'](this),0x3e8);}}};RRMemory[_0x87f9('0x10')][_0x87f9('0xc')]=function(_0x3c96af){logger[_0x87f9('0x20')](_0x87f9('0x22'),this[_0x87f9('0x5')]['id'],this['agentId']);if(_[_0x87f9('0x17')](this[_0x87f9('0x7')][_0x87f9('0x18')][this[_0x87f9('0x12')]])){logger[_0x87f9('0x20')](_0x87f9('0x19'),this[_0x87f9('0x5')]['id'],this[_0x87f9('0x12')]);}else{clearInterval(this['intervals'][this['agentId']]);util['hideNotification'](this['notificationId'],this[_0x87f9('0x5')]['id'],this[_0x87f9('0x7')][_0x87f9('0x18')][this[_0x87f9('0x12')]],this[_0x87f9('0x6')],this['routing']);util[_0x87f9('0x1e')](this[_0x87f9('0x5')]['id'],this[_0x87f9('0x7')][_0x87f9('0x18')][this[_0x87f9('0x12')]],_0x87f9('0x23'));this[_0x87f9('0x7')][_0x87f9('0x18')][this[_0x87f9('0x12')]][_0x87f9('0x24')]=![];this[_0x87f9('0x7')][_0x87f9('0x18')][this['agentId']][_0x87f9('0x1a')]=undefined;}if(!_0x3c96af){setTimeout(this['push'][_0x87f9('0xb')](this),0x3e8);}};function rrmemory(_0x2e9db4,_0x4e933c,_0x3682ad,_0x420fa2){return new RRMemory(_0x2e9db4,_0x4e933c,_0x3682ad,_0x420fa2);}module[_0x87f9('0x25')]=rrmemory;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5334=['error','format','message','save','remove','info','isAgentAvailable','busy','OFFLINE','Pause','PAUSE','Capacity','hasOwnProperty','CurrentCapacity','toUpperCase','\x20MAXCAPACITY','showNotification','writeLog','lodash','util','../utils','mustache','ioredis','../../../../../config/logger','redis','defaults','emit','user:%s','name','user:save','\x20interaction','account','notificationShake','body','queue','getMustacheRender','notificationTemplate','msg'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x5334,0x84));var _0x4533=function(_0x51d9c7,_0x1b0652){_0x51d9c7=_0x51d9c7-0x0;var _0x144a43=_0x5334[_0x51d9c7];return _0x144a43;};'use strict';var _=require(_0x4533('0x0'));var util=require(_0x4533('0x1'));var utils=require(_0x4533('0x2'));var Mustache=require(_0x4533('0x3'));var Redis=require(_0x4533('0x4'));var config=require('../../../../../config/environment');var logger=require(_0x4533('0x5'))('routing');config[_0x4533('0x6')]=_[_0x4533('0x7')](config['redis'],{'host':'localhost','port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x4533('0x6')]));function emit(_0x4dea06,_0x4d89e7,_0x487906){io['to'](_0x4dea06)[_0x4533('0x8')](_0x4d89e7,_0x487906);}function sendNotification(_0x42f94b,_0x300877,_0x2489b6,_0x31018b,_0x21b22f,_0xd417){io['to'](util['format'](_0x4533('0x9'),_0x31018b[_0x4533('0xa')]))[_0x4533('0x8')](_0x4533('0xb'),_0x31018b);var _0x5465bf=_0xd417||{};var _0x7b2420=_0x2489b6['split']('.');var _0xc63e3={'uniqueid':_0x300877,'channel':_0x7b2420[0x0],'id':_0x7b2420[0x1],'title':_0x7b2420[0x0]+_0x4533('0xc'),'interactionId':_0x7b2420[0x2],'queue':_0x21b22f?_0x21b22f[_0x4533('0xa')]:null,'sound':_0x5465bf[_0x4533('0xd')]['notificationSound'],'shake':_0x5465bf[_0x4533('0xd')][_0x4533('0xe')]};try{if(!_0x5465bf[_0x4533('0xf')]){_0x5465bf[_0x4533('0xf')]={};}if(_0x21b22f){_0x5465bf['body'][_0x4533('0x10')]=_0x21b22f;}else if(_0x5465bf['body']['queue']){delete _0x5465bf[_0x4533('0xf')][_0x4533('0x10')];}_0xc63e3['msg']=utils[_0x4533('0x11')](_0x5465bf[_0x4533('0xd')][_0x4533('0x12')],_0x5465bf);}catch(_0x551b0d){_0xc63e3[_0x4533('0x13')]='I\x20can\x27t\x20render\x20your\x20template';logger[_0x4533('0x14')](util[_0x4533('0x15')]('[%s][QUEUE]\x20%s',_0x300877,_0x551b0d[_0x4533('0x16')]));}io['to'](util['format']('user:%s',_0x31018b[_0x4533('0xa')]))[_0x4533('0x8')](util['format']('notification:%s',_0x42f94b?_0x4533('0x17'):_0x4533('0x18')),_0xc63e3);}function writeLog(_0x3467ba,_0x1b08fa,_0x6766eb){return logger[_0x4533('0x19')](util[_0x4533('0x15')]('[%s][QUEUE][AGENT:%s][STATUS:%s]',_0x3467ba,_0x1b08fa[_0x4533('0xa')],_0x6766eb));}exports[_0x4533('0x1a')]=function(_0x2901f1,_0x4aa438,_0x513011,_0x138fd9){if(_0x4aa438[_0x4533('0x1b')]){writeLog(_0x2901f1,_0x4aa438,'BUSY');return![];}if(!_0x4aa438['online']){writeLog(_0x2901f1,_0x4aa438,_0x4533('0x1c'));return![];}if(_0x4aa438[_0x513011+_0x4533('0x1d')]){writeLog(_0x2901f1,_0x4aa438,_0x4533('0x1e'));return![];}if(_0x138fd9&&_0x4aa438['hasOwnProperty'](_0x513011+_0x4533('0x1f'))&&_0x4aa438[_0x4533('0x20')](_0x513011+_0x4533('0x21'))){if(_0x4aa438[_0x513011+_0x4533('0x1f')]>0x0&&_0x4aa438[_0x513011+_0x4533('0x21')]>=_0x4aa438[_0x513011+_0x4533('0x1f')]){writeLog(_0x2901f1,_0x4aa438,_0x513011[_0x4533('0x22')]()+_0x4533('0x23'));return![];}}return!![];};exports[_0x4533('0x24')]=function(_0x5f16bb,_0x5c1e24,_0xa2e602,_0x5aaf2d,_0x3fd76a){return sendNotification(!![],_0x5f16bb,_0x5c1e24,_0xa2e602,_0x5aaf2d,_0x3fd76a);};exports['hideNotification']=function(_0x159fea,_0x42ba2d,_0x38706b,_0x4300c1,_0x252a44){return sendNotification(![],_0x159fea,_0x42ba2d,_0x38706b,_0x4300c1,_0x252a44);};exports[_0x4533('0x25')]=writeLog;
\ No newline at end of file
+var _0xe3da=['writeLog','lodash','util','../utils','mustache','ioredis','../../../../../config/environment','../../../../../config/logger','routing','redis','defaults','localhost','socket.io-emitter','emit','format','user:%s','name','user:save','split','\x20interaction','account','notificationSound','notificationShake','body','queue','msg','getMustacheRender','notificationTemplate','error','save','info','[%s][QUEUE][AGENT:%s][STATUS:%s]','isAgentAvailable','busy','BUSY','online','OFFLINE','Pause','PAUSE','hasOwnProperty','Capacity','CurrentCapacity','toUpperCase','\x20MAXCAPACITY','showNotification','hideNotification'];(function(_0x558a8a,_0x325a49){var _0x20996d=function(_0x572969){while(--_0x572969){_0x558a8a['push'](_0x558a8a['shift']());}};_0x20996d(++_0x325a49);}(_0xe3da,0x1cd));var _0xae3d=function(_0x40a045,_0x516f0e){_0x40a045=_0x40a045-0x0;var _0x1a687c=_0xe3da[_0x40a045];return _0x1a687c;};'use strict';var _=require(_0xae3d('0x0'));var util=require(_0xae3d('0x1'));var utils=require(_0xae3d('0x2'));var Mustache=require(_0xae3d('0x3'));var Redis=require(_0xae3d('0x4'));var config=require(_0xae3d('0x5'));var logger=require(_0xae3d('0x6'))(_0xae3d('0x7'));config[_0xae3d('0x8')]=_[_0xae3d('0x9')](config[_0xae3d('0x8')],{'host':_0xae3d('0xa'),'port':0x18eb});var io=require(_0xae3d('0xb'))(new Redis(config[_0xae3d('0x8')]));function emit(_0x476579,_0x33c089,_0x583b98){io['to'](_0x476579)[_0xae3d('0xc')](_0x33c089,_0x583b98);}function sendNotification(_0x3d6650,_0x5544fa,_0x577070,_0x459592,_0x157a3e,_0x420e28){io['to'](util[_0xae3d('0xd')](_0xae3d('0xe'),_0x459592[_0xae3d('0xf')]))['emit'](_0xae3d('0x10'),_0x459592);var _0x49fe58=_0x420e28||{};var _0xc7bd1c=_0x577070[_0xae3d('0x11')]('.');var _0x7770eb={'uniqueid':_0x5544fa,'channel':_0xc7bd1c[0x0],'id':_0xc7bd1c[0x1],'title':_0xc7bd1c[0x0]+_0xae3d('0x12'),'interactionId':_0xc7bd1c[0x2],'queue':_0x157a3e?_0x157a3e['name']:null,'sound':_0x49fe58[_0xae3d('0x13')][_0xae3d('0x14')],'shake':_0x49fe58[_0xae3d('0x13')][_0xae3d('0x15')]};try{if(!_0x49fe58[_0xae3d('0x16')]){_0x49fe58[_0xae3d('0x16')]={};}if(_0x157a3e){_0x49fe58[_0xae3d('0x16')]['queue']=_0x157a3e;}else if(_0x49fe58[_0xae3d('0x16')][_0xae3d('0x17')]){delete _0x49fe58[_0xae3d('0x16')][_0xae3d('0x17')];}_0x7770eb[_0xae3d('0x18')]=utils[_0xae3d('0x19')](_0x49fe58['account'][_0xae3d('0x1a')],_0x49fe58);}catch(_0x33449a){_0x7770eb[_0xae3d('0x18')]='I\x20can\x27t\x20render\x20your\x20template';logger[_0xae3d('0x1b')](util[_0xae3d('0xd')]('[%s][QUEUE]\x20%s',_0x5544fa,_0x33449a['message']));}io['to'](util[_0xae3d('0xd')](_0xae3d('0xe'),_0x459592[_0xae3d('0xf')]))[_0xae3d('0xc')](util[_0xae3d('0xd')]('notification:%s',_0x3d6650?_0xae3d('0x1c'):'remove'),_0x7770eb);}function writeLog(_0x4a09c2,_0x2d138f,_0x1415e8){return logger[_0xae3d('0x1d')](util[_0xae3d('0xd')](_0xae3d('0x1e'),_0x4a09c2,_0x2d138f[_0xae3d('0xf')],_0x1415e8));}exports[_0xae3d('0x1f')]=function(_0x3224ff,_0x11ecf7,_0x300be8,_0x9bf34a){if(_0x11ecf7[_0xae3d('0x20')]){writeLog(_0x3224ff,_0x11ecf7,_0xae3d('0x21'));return![];}if(!_0x11ecf7[_0xae3d('0x22')]){writeLog(_0x3224ff,_0x11ecf7,_0xae3d('0x23'));return![];}if(_0x11ecf7[_0x300be8+_0xae3d('0x24')]){writeLog(_0x3224ff,_0x11ecf7,_0xae3d('0x25'));return![];}if(_0x9bf34a&&_0x11ecf7[_0xae3d('0x26')](_0x300be8+_0xae3d('0x27'))&&_0x11ecf7['hasOwnProperty'](_0x300be8+_0xae3d('0x28'))){if(_0x11ecf7[_0x300be8+_0xae3d('0x27')]>0x0&&_0x11ecf7[_0x300be8+_0xae3d('0x28')]>=_0x11ecf7[_0x300be8+_0xae3d('0x27')]){writeLog(_0x3224ff,_0x11ecf7,_0x300be8[_0xae3d('0x29')]()+_0xae3d('0x2a'));return![];}}return!![];};exports[_0xae3d('0x2b')]=function(_0x54c1e1,_0x57864e,_0x12e3a5,_0x1281aa,_0x3a5840){return sendNotification(!![],_0x54c1e1,_0x57864e,_0x12e3a5,_0x1281aa,_0x3a5840);};exports[_0xae3d('0x2c')]=function(_0xb69ec9,_0x561371,_0x1d1483,_0x3a2434,_0x5a39c5){return sendNotification(![],_0xb69ec9,_0x561371,_0x1d1483,_0x3a2434,_0x5a39c5);};exports[_0xae3d('0x2d')]=writeLog;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9292=['isNil','isEmpty','body','[%s][SYSTEM]\x20set\x20variable\x20%s:\x20%s','isObject','[%s][SYSTEM]\x20no\x20command\x20executed,\x20force\x20next','validate','shelljs','lodash','./utils','../../../../config/logger','routing','string','consequence','length','error','message','next','getMustacheRender','info','exec','[%s][SYSTEM]\x20result\x20code:\x20%s','replace'];(function(_0x108db1,_0x89896d){var _0x16848d=function(_0x2726f6){while(--_0x2726f6){_0x108db1['push'](_0x108db1['shift']());}};_0x16848d(++_0x89896d);}(_0x9292,0x176));var _0x2929=function(_0x5ce678,_0x189a26){_0x5ce678=_0x5ce678-0x0;var _0x3c3ac2=_0x9292[_0x5ce678];return _0x3c3ac2;};'use strict';var schema=require(_0x2929('0x0'));var sh=require(_0x2929('0x1'));var _=require(_0x2929('0x2'));var utils=require(_0x2929('0x3'));var logger=require(_0x2929('0x4'))(_0x2929('0x5'));var system=schema({'command':{'type':_0x2929('0x6'),'required':!![],'message':'command\x20is\x20a\x20string\x20and\x20it\x20is\x20required'}});exports[_0x2929('0x7')]=function(_0x65fbd3,_0xcc636a){return function(_0x2605a9){try{var _0x3e3955={'command':_0xcc636a[0x0]};var _0x4da268=system[_0x2929('0x0')](_0x3e3955,{'typecast':!![]});if(_0x4da268[_0x2929('0x8')]){logger[_0x2929('0x9')]('[%s][SYSTEM]\x20%s',_0x65fbd3,_['map'](_0x4da268,_0x2929('0xa'))['join'](',\x20'));logger['info']('[%s][SYSTEM]\x20no\x20command\x20executed,\x20force\x20next',_0x65fbd3);_0x2605a9[_0x2929('0xb')]();}else{var _0x20ac8f=this;var _0x44349c=utils[_0x2929('0xc')](_0xcc636a[0x0],this);logger[_0x2929('0xd')]('[%s][SYSTEM]\x20commnad:\x20%s',_0x65fbd3,_0x44349c);sh[_0x2929('0xe')](_['trim'](_0x44349c),function(_0x227b2d,_0x40af1f){logger['info'](_0x2929('0xf'),_0x65fbd3,_0x227b2d);if(_0x227b2d==0x0){var _0x2bc5fe=_0x40af1f[_0x2929('0x10')](/(\r\n|\n|\r)/gm,'');if(_[_0x2929('0x11')](_0xcc636a[0x1])||_[_0x2929('0x12')](_0xcc636a[0x1])){logger[_0x2929('0xd')]('[%s][SYSTEM]\x20no\x20variable',_0x65fbd3);_0x20ac8f[_0x2929('0x13')][_0xcc636a[0x1]]=_0x2bc5fe;}else{logger['info'](_0x2929('0x14'),_0x65fbd3,_0xcc636a[0x1],_0x2bc5fe);_0x20ac8f['body'][_0xcc636a[0x1]]=_0x2bc5fe;}}_0x2605a9[_0x2929('0xb')]();});}}catch(_0xee6565){logger['error']('[%s][SYSTEM]\x20%s',_0x65fbd3,_[_0x2929('0x15')](_0xee6565)?JSON['stringify'](_0xee6565):_0xee6565);logger[_0x2929('0xd')](_0x2929('0x16'),_0x65fbd3);_0x2605a9[_0x2929('0xb')]();}};};
\ No newline at end of file
+var _0x2b51=['next','isObject','stringify','validate','shelljs','lodash','./utils','../../../../config/logger','routing','command\x20is\x20a\x20string\x20and\x20it\x20is\x20required','length','error','[%s][SYSTEM]\x20%s','join','[%s][SYSTEM]\x20no\x20command\x20executed,\x20force\x20next','getMustacheRender','info','[%s][SYSTEM]\x20commnad:\x20%s','exec','trim','[%s][SYSTEM]\x20result\x20code:\x20%s','replace','isNil','isEmpty','[%s][SYSTEM]\x20no\x20variable'];(function(_0x424d55,_0x4de1b1){var _0x219178=function(_0x2dce42){while(--_0x2dce42){_0x424d55['push'](_0x424d55['shift']());}};_0x219178(++_0x4de1b1);}(_0x2b51,0x1c5));var _0x12b5=function(_0x471401,_0x7a6b33){_0x471401=_0x471401-0x0;var _0x3ca844=_0x2b51[_0x471401];return _0x3ca844;};'use strict';var schema=require(_0x12b5('0x0'));var sh=require(_0x12b5('0x1'));var _=require(_0x12b5('0x2'));var utils=require(_0x12b5('0x3'));var logger=require(_0x12b5('0x4'))(_0x12b5('0x5'));var system=schema({'command':{'type':'string','required':!![],'message':_0x12b5('0x6')}});exports['consequence']=function(_0x5b65f8,_0x15c5da){return function(_0x2275d8){try{var _0x38a245={'command':_0x15c5da[0x0]};var _0x3fa276=system[_0x12b5('0x0')](_0x38a245,{'typecast':!![]});if(_0x3fa276[_0x12b5('0x7')]){logger[_0x12b5('0x8')](_0x12b5('0x9'),_0x5b65f8,_['map'](_0x3fa276,'message')[_0x12b5('0xa')](',\x20'));logger['info'](_0x12b5('0xb'),_0x5b65f8);_0x2275d8['next']();}else{var _0x80d981=this;var _0x127cb7=utils[_0x12b5('0xc')](_0x15c5da[0x0],this);logger[_0x12b5('0xd')](_0x12b5('0xe'),_0x5b65f8,_0x127cb7);sh[_0x12b5('0xf')](_[_0x12b5('0x10')](_0x127cb7),function(_0x2f2027,_0x48a910){logger['info'](_0x12b5('0x11'),_0x5b65f8,_0x2f2027);if(_0x2f2027==0x0){var _0x18b765=_0x48a910[_0x12b5('0x12')](/(\r\n|\n|\r)/gm,'');if(_[_0x12b5('0x13')](_0x15c5da[0x1])||_[_0x12b5('0x14')](_0x15c5da[0x1])){logger[_0x12b5('0xd')](_0x12b5('0x15'),_0x5b65f8);_0x80d981['body'][_0x15c5da[0x1]]=_0x18b765;}else{logger['info']('[%s][SYSTEM]\x20set\x20variable\x20%s:\x20%s',_0x5b65f8,_0x15c5da[0x1],_0x18b765);_0x80d981['body'][_0x15c5da[0x1]]=_0x18b765;}}_0x2275d8[_0x12b5('0x16')]();});}}catch(_0x2c75dd){logger[_0x12b5('0x8')](_0x12b5('0x9'),_0x5b65f8,_[_0x12b5('0x17')](_0x2c75dd)?JSON[_0x12b5('0x18')](_0x2c75dd):_0x2c75dd);logger[_0x12b5('0xd')](_0x12b5('0xb'),_0x5b65f8);_0x2275d8['next']();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0595=['error','[%s][TAG]\x20%s','message','info','[%s][TAG]\x20no\x20tags\x20saved,\x20force\x20next','Interaction','addTags','interaction','then','[%s][TAG]\x20tag\x20\x22%s\x22\x20added\x20to\x20%s\x20interaction\x20%s','channel','catch','stringify','finally','next','isObject','lodash','../../rpc/chatInteraction','../../rpc/openchannelInteraction','../../rpc/smsInteraction','../../rpc/mailInteraction','../../rpc/faxInteraction','../../rpc/whatsappInteraction','../../../../config/logger','routing','number','consequence','length'];(function(_0x35e5bb,_0x167e28){var _0x4cd629=function(_0x58013b){while(--_0x58013b){_0x35e5bb['push'](_0x35e5bb['shift']());}};_0x4cd629(++_0x167e28);}(_0x0595,0x1ec));var _0x5059=function(_0x1cd674,_0x4d037d){_0x1cd674=_0x1cd674-0x0;var _0x405e39=_0x0595[_0x1cd674];return _0x405e39;};'use strict';var schema=require('validate');var _=require(_0x5059('0x0'));var rpc={'chatInteraction':require(_0x5059('0x1')),'openchannelInteraction':require(_0x5059('0x2')),'smsInteraction':require(_0x5059('0x3')),'mailInteraction':require(_0x5059('0x4')),'faxInteraction':require(_0x5059('0x5')),'whatsappInteraction':require(_0x5059('0x6'))};var logger=require(_0x5059('0x7'))(_0x5059('0x8'));var tag=schema({'tag':{'type':_0x5059('0x9'),'required':!![],'message':'TagId\x20is\x20a\x20string\x20and\x20it\x20is\x20required'}});exports[_0x5059('0xa')]=function(_0x4965ac,_0x292c7b,_0x1b8a20,_0x1a6a10){return function(_0x249238){try{var _0x10f11d={'tag':_0x292c7b[0x0]};var _0x23ebd2=tag['validate'](_0x10f11d,{'typecast':!![]});if(_0x23ebd2[_0x5059('0xb')]){logger[_0x5059('0xc')](_0x5059('0xd'),_0x4965ac,_['map'](_0x23ebd2,_0x5059('0xe'))['join'](',\x20'));logger[_0x5059('0xf')](_0x5059('0x10'),_0x4965ac);_0x249238['next']();}else{var _0x2a7228={'ids':[_0x292c7b[0x0]]};if(rpc[_0x1a6a10['channel']+_0x5059('0x11')]){rpc[_0x1a6a10['channel']+'Interaction'][_0x5059('0x12')](_0x1a6a10[_0x5059('0x13')]['id'],_0x2a7228)[_0x5059('0x14')](function(_0x5ff210){logger[_0x5059('0xf')](_0x5059('0x15'),_0x4965ac,_0x292c7b[0x1],_0x1a6a10[_0x5059('0x16')],_0x1a6a10[_0x5059('0x13')]['id']);})[_0x5059('0x17')](function(_0xb1e501){logger[_0x5059('0xc')]('[%s][TAG]\x20%s',_0x4965ac,JSON[_0x5059('0x18')](_0xb1e501));logger['info']('[%s][TAG]\x20no\x20tags\x20saved,\x20force\x20next',_0x4965ac);})[_0x5059('0x19')](function(){_0x249238[_0x5059('0x1a')]();});}}}catch(_0x73c262){logger[_0x5059('0xc')](_0x5059('0xd'),_0x4965ac,_[_0x5059('0x1b')](_0x73c262)?JSON['stringify'](_0x73c262):_0x73c262);logger['info'](_0x5059('0x10'),_0x4965ac);_0x249238[_0x5059('0x1a')]();}};};
\ No newline at end of file
+var _0x9aaa=['../../rpc/mailInteraction','../../rpc/faxInteraction','../../rpc/whatsappInteraction','routing','number','consequence','length','error','[%s][TAG]\x20%s','message','join','info','[%s][TAG]\x20no\x20tags\x20saved,\x20force\x20next','next','channel','Interaction','addTags','interaction','then','[%s][TAG]\x20tag\x20\x22%s\x22\x20added\x20to\x20%s\x20interaction\x20%s','stringify','finally','isObject','validate','lodash','../../rpc/chatInteraction','../../rpc/openchannelInteraction','../../rpc/smsInteraction'];(function(_0x32ebd1,_0x58594a){var _0x429d08=function(_0x470627){while(--_0x470627){_0x32ebd1['push'](_0x32ebd1['shift']());}};_0x429d08(++_0x58594a);}(_0x9aaa,0x183));var _0xa9aa=function(_0x104437,_0x44930f){_0x104437=_0x104437-0x0;var _0x3b1a01=_0x9aaa[_0x104437];return _0x3b1a01;};'use strict';var schema=require(_0xa9aa('0x0'));var _=require(_0xa9aa('0x1'));var rpc={'chatInteraction':require(_0xa9aa('0x2')),'openchannelInteraction':require(_0xa9aa('0x3')),'smsInteraction':require(_0xa9aa('0x4')),'mailInteraction':require(_0xa9aa('0x5')),'faxInteraction':require(_0xa9aa('0x6')),'whatsappInteraction':require(_0xa9aa('0x7'))};var logger=require('../../../../config/logger')(_0xa9aa('0x8'));var tag=schema({'tag':{'type':_0xa9aa('0x9'),'required':!![],'message':'TagId\x20is\x20a\x20string\x20and\x20it\x20is\x20required'}});exports[_0xa9aa('0xa')]=function(_0x221285,_0x222bd0,_0x1869ab,_0x1e9d33){return function(_0x4fdbd8){try{var _0x4fee34={'tag':_0x222bd0[0x0]};var _0x350141=tag['validate'](_0x4fee34,{'typecast':!![]});if(_0x350141[_0xa9aa('0xb')]){logger[_0xa9aa('0xc')](_0xa9aa('0xd'),_0x221285,_['map'](_0x350141,_0xa9aa('0xe'))[_0xa9aa('0xf')](',\x20'));logger[_0xa9aa('0x10')](_0xa9aa('0x11'),_0x221285);_0x4fdbd8[_0xa9aa('0x12')]();}else{var _0x11a383={'ids':[_0x222bd0[0x0]]};if(rpc[_0x1e9d33[_0xa9aa('0x13')]+_0xa9aa('0x14')]){rpc[_0x1e9d33[_0xa9aa('0x13')]+_0xa9aa('0x14')][_0xa9aa('0x15')](_0x1e9d33[_0xa9aa('0x16')]['id'],_0x11a383)[_0xa9aa('0x17')](function(_0x36c588){logger[_0xa9aa('0x10')](_0xa9aa('0x18'),_0x221285,_0x222bd0[0x1],_0x1e9d33['channel'],_0x1e9d33['interaction']['id']);})['catch'](function(_0x41444d){logger[_0xa9aa('0xc')](_0xa9aa('0xd'),_0x221285,JSON[_0xa9aa('0x19')](_0x41444d));logger[_0xa9aa('0x10')](_0xa9aa('0x11'),_0x221285);})[_0xa9aa('0x1a')](function(){_0x4fdbd8[_0xa9aa('0x12')]();});}}}catch(_0x2aab73){logger[_0xa9aa('0xc')]('[%s][TAG]\x20%s',_0x221285,_[_0xa9aa('0x1b')](_0x2aab73)?JSON[_0xa9aa('0x19')](_0x2aab73):_0x2aab73);logger[_0xa9aa('0x10')](_0xa9aa('0x11'),_0x221285);_0x4fdbd8[_0xa9aa('0x12')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd8b0=['merge','body','contact','message','list','mustache','lodash','render'];(function(_0x5ba188,_0x20d44c){var _0x339276=function(_0x2d3e81){while(--_0x2d3e81){_0x5ba188['push'](_0x5ba188['shift']());}};_0x339276(++_0x20d44c);}(_0xd8b0,0xad));var _0x0d8b=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xd8b0[_0x20a584];return _0x4b41a8;};'use strict';var Mustache=require(_0x0d8b('0x0'));var _=require(_0x0d8b('0x1'));module['exports']={'getMustacheRender':function(_0x585166,_0x4b72b0){return Mustache[_0x0d8b('0x2')](_0x585166,_[_0x0d8b('0x3')](_0x4b72b0[_0x0d8b('0x4')],{'contact':_0x4b72b0[_0x0d8b('0x5')],'message':_0x4b72b0[_0x0d8b('0x6')],'account':_0x4b72b0['account'],'interaction':_0x4b72b0['interaction'],'list':_0x4b72b0[_0x0d8b('0x7')]}))||'';}};
\ No newline at end of file
+var _0x9c44=['merge','body','account','list','exports','render'];(function(_0x59882a,_0x750be9){var _0x157fe5=function(_0x255fe9){while(--_0x255fe9){_0x59882a['push'](_0x59882a['shift']());}};_0x157fe5(++_0x750be9);}(_0x9c44,0x178));var _0x49c4=function(_0x167cc1,_0x56ef5a){_0x167cc1=_0x167cc1-0x0;var _0x10bc4b=_0x9c44[_0x167cc1];return _0x10bc4b;};'use strict';var Mustache=require('mustache');var _=require('lodash');module[_0x49c4('0x0')]={'getMustacheRender':function(_0x18bf2d,_0x26844b){return Mustache[_0x49c4('0x1')](_0x18bf2d,_[_0x49c4('0x2')](_0x26844b[_0x49c4('0x3')],{'contact':_0x26844b['contact'],'message':_0x26844b['message'],'account':_0x26844b[_0x49c4('0x4')],'interaction':_0x26844b['interaction'],'list':_0x26844b[_0x49c4('0x5')]}))||'';}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xac11=['../rpc/chatQueueReport','../rpc/smsQueueReport','../rpc/faxQueueReport','../lib/rule-engine','format','isNil','IntervalId','Intervals','map','interval','listen','rules','channel','message','interaction','applications','isArray','length','existsSync','join','app','toLowerCase','appdata','split','mail','push','slice','dialogflow','amazonlex','tag','%s:%s:%s','./interval','intervals','./applications/','priority','on\x20interval','\x20|\x20','error','.js','execute','info','Applications\x20executed','matchPath','complete','No\x20applications\x20to\x20execute','stack','agent','agents','busy','emit','end','QueueReport','update','UserId','catch','error\x20update\x20queue\x20report','message\x20is\x20empty','busyQueue','capacity','hasOwnProperty','CurrentCapacity','agent\x20not\x20found','values','chatQueues','available','name','paused','waiting','mailQueues','loggedIn','openchannelQueues','smsQueues','faxQueues','whatsappQueues','chatQueuesWaitingInteractions','mailQueuesWaitingInteractions','openchannelQueuesWaitingInteractions','smsQueuesWaitingInteractions','faxQueuesWaitingInteractions','http','stringify','127.0.0.1','log','lodash','path','jayson/promise','bluebird','../../../config/environment','../rpc/openchannelQueueReport','../rpc/mailQueueReport'];(function(_0x5ae0da,_0x181492){var _0x4ec133=function(_0x3814b7){while(--_0x3814b7){_0x5ae0da['push'](_0x5ae0da['shift']());}};_0x4ec133(++_0x181492);}(_0xac11,0xad));var _0x1ac1=function(_0x1a0437,_0x403005){_0x1a0437=_0x1a0437-0x0;var _0x267508=_0xac11[_0x1a0437];return _0x267508;};'use strict';var _=require(_0x1ac1('0x0'));var util=require('util');var path=require(_0x1ac1('0x1'));var fs=require('fs');var jayson=require(_0x1ac1('0x2'));var BPromise=require(_0x1ac1('0x3'));var uuid=require('uuid');var config=require(_0x1ac1('0x4'));var logger=require('../../../config/logger')('routing');var rpc={'openchannelQueueReport':require(_0x1ac1('0x5')),'mailQueueReport':require(_0x1ac1('0x6')),'chatQueueReport':require(_0x1ac1('0x7')),'smsQueueReport':require(_0x1ac1('0x8')),'faxQueueReport':require(_0x1ac1('0x9')),'whatsappQueueReport':require('../rpc/whatsappQueueReport')};var RuleEngine=require(_0x1ac1('0xa'));function getId(_0x4c8269,_0x4ea7bc,_0xce7c36){return util[_0x1ac1('0xb')]('%s.%s.%s',_0x4c8269,_0x4ea7bc||0x0,_0xce7c36||0x0);}function getIntervals(_0x5ce7ba,_0xece834){var _0x2ea76f=[];if(!_[_0x1ac1('0xc')](_0xece834[_0x1ac1('0xd')])&&!_[_0x1ac1('0xc')](_0x5ce7ba[_0xece834[_0x1ac1('0xd')]])&&!_[_0x1ac1('0xc')](_0x5ce7ba[_0xece834[_0x1ac1('0xd')]][_0x1ac1('0xe')])){_0x2ea76f=_[_0x1ac1('0xf')](_0x5ce7ba[_0xece834['IntervalId']][_0x1ac1('0xe')],_0x1ac1('0x10'));}else if(!_[_0x1ac1('0xc')](_0xece834[_0x1ac1('0x10')])){_0x2ea76f=[_0xece834[_0x1ac1('0x10')]];}return _0x2ea76f;}exports[_0x1ac1('0x11')]=function(_0x47b173){_0x47b173[_0x1ac1('0x12')]={};return new BPromise(function(_0x2e0b0b,_0x433e7d){var _0x370097={'Start':function(_0x10157f){var _0x38afec=this;return new Promise(function(_0xb5adca,_0x3c2b74){if(_0x10157f){try{var _0x196bba=[];var _0x52249e=getId(_0x10157f[_0x1ac1('0x13')],_0x10157f[_0x1ac1('0x14')]?_0x10157f[_0x1ac1('0x14')]['id']:0x0,_0x10157f[_0x1ac1('0x15')]?_0x10157f[_0x1ac1('0x15')]['id']:0x0);if(_0x10157f[_0x1ac1('0x16')]&&_[_0x1ac1('0x17')](_0x10157f[_0x1ac1('0x16')])&&_0x10157f[_0x1ac1('0x16')][_0x1ac1('0x18')]){for(var _0x19dd3e=0x0;_0x19dd3e<_0x10157f['applications']['length'];_0x19dd3e+=0x1){var _0x3328a5=_0x10157f['applications'][_0x19dd3e];if(fs[_0x1ac1('0x19')](path[_0x1ac1('0x1a')](__dirname,_0x1ac1('0x16'),_0x3328a5[_0x1ac1('0x1b')]+'.js'))){var _0x19c474=[];switch(_0x3328a5[_0x1ac1('0x1b')][_0x1ac1('0x1c')]()){case'autoreply':var _0x1c959a=_0x3328a5[_0x1ac1('0x1d')][_0x1ac1('0x1e')](',');if(_0x10157f[_0x1ac1('0x13')]===_0x1ac1('0x1f')){_0x19c474[_0x1ac1('0x20')](_0x1c959a[0x0]);_0x19c474[_0x1ac1('0x20')](_0x1c959a[0x1]);_0x19c474[_0x1ac1('0x20')](_0x1c959a[_0x1ac1('0x21')](0x2,_0x1c959a[_0x1ac1('0x18')])['join'](','));}else{_0x19c474[_0x1ac1('0x20')](_0x1c959a[0x0]);_0x19c474[_0x1ac1('0x20')](_0x1c959a[_0x1ac1('0x21')](0x1,_0x1c959a[_0x1ac1('0x18')])['join'](','));}break;case _0x1ac1('0x22'):var _0x16962f=_0x3328a5[_0x1ac1('0x1d')][_0x1ac1('0x1e')](',');_0x19c474[_0x1ac1('0x20')](_0x16962f[0x0]);_0x19c474['push'](_0x16962f[0x1]);_0x19c474['push'](_0x16962f[_0x1ac1('0x21')](0x2,_0x16962f[_0x1ac1('0x18')])['join'](','));break;case'dialogflowv2':var _0x1a34c9=_0x3328a5['appdata'][_0x1ac1('0x1e')](',');_0x19c474[_0x1ac1('0x20')](_0x1a34c9[0x0]);_0x19c474['push'](_0x1a34c9[0x1]);_0x19c474[_0x1ac1('0x20')](_0x1a34c9[0x2]);_0x19c474[_0x1ac1('0x20')](_0x1a34c9[0x3]);_0x19c474['push'](_0x1a34c9[_0x1ac1('0x21')](0x4,_0x1a34c9[_0x1ac1('0x18')])[_0x1ac1('0x1a')](','));break;case _0x1ac1('0x23'):var _0x35fea8=_0x3328a5[_0x1ac1('0x1d')][_0x1ac1('0x1e')](',');_0x19c474[_0x1ac1('0x20')](_0x35fea8[0x0]);_0x19c474[_0x1ac1('0x20')](_0x35fea8[0x1]);_0x19c474[_0x1ac1('0x20')](_0x35fea8[0x2]);_0x19c474['push'](_0x35fea8[0x3]);_0x19c474[_0x1ac1('0x20')](_0x35fea8[_0x1ac1('0x21')](0x4,_0x35fea8[_0x1ac1('0x18')])['join'](','));break;case'message':_0x19c474['push'](_0x3328a5['appdata']);break;case _0x1ac1('0x24'):_0x19c474[_0x1ac1('0x20')](_0x3328a5['TagId']);_0x19c474['push'](_0x3328a5[_0x1ac1('0x1d')]);break;default:_0x19c474=_[_0x1ac1('0xc')](_0x3328a5[_0x1ac1('0x1d')])?[]:_0x3328a5['appdata'][_0x1ac1('0x1e')](',');}var _0x448c71={'id':util[_0x1ac1('0xb')](_0x1ac1('0x25'),_0x52249e,_0x3328a5['id'],_0x3328a5[_0x1ac1('0x1b')]),'condition':require(_0x1ac1('0x26'))['condition'](_0x52249e,getIntervals(_0x47b173[_0x1ac1('0x27')],_0x3328a5),_0x47b173),'consequence':require(_0x1ac1('0x28')+_0x3328a5[_0x1ac1('0x1b')])['consequence'](_0x52249e,_0x19c474,_0x47b173,_0x10157f),'p':_0x3328a5[_0x1ac1('0x29')]||0x0};logger['info']('Push\x20new\x20rule',_0x448c71['id'],_0x1ac1('0x2a'),getIntervals(_0x47b173[_0x1ac1('0x27')],_0x3328a5)['join'](_0x1ac1('0x2b')));_0x196bba['push'](_0x448c71);}else{logger[_0x1ac1('0x2c')]('Please\x20create\x20a\x20new\x20file\x20under',path[_0x1ac1('0x1a')](__dirname,_0x1ac1('0x16'),_0x3328a5[_0x1ac1('0x1b')]+_0x1ac1('0x2d')));}}_0x47b173[_0x1ac1('0x12')][_0x52249e]=new RuleEngine(_0x196bba);_0x47b173['rules'][_0x52249e][_0x1ac1('0x2e')](_0x10157f,function(_0x17b0bb){logger[_0x1ac1('0x2f')](_0x1ac1('0x30'),JSON['stringify'](_0x17b0bb[_0x1ac1('0x31')]));if(_0x47b173['rules'][_0x52249e]){_0x47b173['rules'][_0x52249e]['emit'](_0x1ac1('0x32'));}});return _0xb5adca({'code':0xc8,'message':_0x10157f});}else{logger[_0x1ac1('0x2f')](_0x1ac1('0x33'));return _0xb5adca({'code':0xc8,'message':_0x10157f});}}catch(_0x1f4e0e){logger[_0x1ac1('0x2c')](_0x1f4e0e[_0x1ac1('0x34')]);return _0x3c2b74(_0x38afec[_0x1ac1('0x2c')](0x1f4,_0x1f4e0e));}}return _0x3c2b74('routing\x20is\x20empty');});},'AcceptMessage':function(_0x486869){var _0x172bc9=this;return new Promise(function(_0x5a9be4,_0x209822){if(_0x486869[_0x1ac1('0x35')]&&_0x486869[_0x1ac1('0x35')]['id']){if(_0x47b173[_0x1ac1('0x36')][_0x486869[_0x1ac1('0x35')]['id']]){_0x47b173[_0x1ac1('0x36')][_0x486869[_0x1ac1('0x35')]['id']][_0x1ac1('0x37')]=![];_0x47b173[_0x1ac1('0x36')][_0x486869[_0x1ac1('0x35')]['id']]['busyQueue']=undefined;}}if(_0x486869[_0x1ac1('0x14')]&&_0x486869[_0x1ac1('0x14')]['id']){try{var _0x3ed482=getId(_0x486869[_0x1ac1('0x13')],_0x486869[_0x1ac1('0x14')]?_0x486869['message']['id']:0x0,_0x486869[_0x1ac1('0x15')]?_0x486869[_0x1ac1('0x15')]['id']:0x0);if(_0x47b173['rules'][_0x3ed482]){_0x47b173[_0x1ac1('0x12')][_0x3ed482][_0x1ac1('0x38')](_0x1ac1('0x39'));if(rpc[_0x486869[_0x1ac1('0x13')]+_0x1ac1('0x3a')]){rpc[_0x486869[_0x1ac1('0x13')]+_0x1ac1('0x3a')][_0x1ac1('0x3b')](_0x3ed482,{'UserId':_0x486869['message'][_0x1ac1('0x3c')]})[_0x1ac1('0x3d')](function(_0x169b43){logger[_0x1ac1('0x2c')](_0x1ac1('0x3e'));});}}return _0x5a9be4({'code':0xc8,'message':_0x486869});}catch(_0x3040af){logger[_0x1ac1('0x2c')](_0x3040af['stack']);return _0x209822(_0x172bc9[_0x1ac1('0x2c')](0x1f4,_0x3040af));}}logger['error'](_0x1ac1('0x3f'));return _0x209822(_0x172bc9['error'](0x1f4,_0x1ac1('0x3f')));});},'RejectMessage':function(_0x141a57){var _0x5be38e=this;return new Promise(function(_0x1bc581,_0x372614){if(_0x141a57[_0x1ac1('0x35')]&&_0x141a57[_0x1ac1('0x35')]['id']){try{if(_0x47b173['agents'][_0x141a57[_0x1ac1('0x35')]['id']]){_0x47b173[_0x1ac1('0x36')][_0x141a57[_0x1ac1('0x35')]['id']][_0x1ac1('0x37')]=![];_0x47b173[_0x1ac1('0x36')][_0x141a57[_0x1ac1('0x35')]['id']][_0x1ac1('0x40')]=undefined;}return _0x1bc581({'code':0xc8,'message':_0x141a57});}catch(_0x440392){logger[_0x1ac1('0x2c')](_0x440392[_0x1ac1('0x34')]);return _0x372614(_0x5be38e['error'](0x1f4,_0x440392));}}logger[_0x1ac1('0x2c')]('message\x20is\x20empty');return _0x372614(_0x5be38e['error'](0x1f4,_0x1ac1('0x3f')));});},'AbandonInteraction':function(_0x314d00){var _0x2a3016=this;return new Promise(function(_0x3ddd1c,_0x48a0ec){if(_0x314d00[_0x1ac1('0x13')]&&_0x314d00[_0x1ac1('0x15')]&&_0x314d00['interaction']['id']){try{var _0x4f7818=getId(_0x314d00[_0x1ac1('0x13')],_0x314d00[_0x1ac1('0x14')]?_0x314d00[_0x1ac1('0x14')]['id']:0x0,_0x314d00[_0x1ac1('0x15')]?_0x314d00[_0x1ac1('0x15')]['id']:0x0);if(_0x47b173[_0x1ac1('0x12')][_0x4f7818]){_0x47b173[_0x1ac1('0x12')][_0x4f7818][_0x1ac1('0x38')]('end');}return _0x3ddd1c({'code':0xc8,'message':_0x314d00});}catch(_0x179bba){logger['error'](_0x179bba[_0x1ac1('0x34')]);return _0x48a0ec(_0x2a3016['error'](0x1f4,_0x179bba));}}logger[_0x1ac1('0x2c')](_0x1ac1('0x3f'));return _0x48a0ec(_0x2a3016[_0x1ac1('0x2c')](0x1f4,_0x1ac1('0x3f')));});},'AgentCapacity':function(_0x2a96d3){var _0x14051f=this;return new Promise(function(_0x5a1708,_0x43f2ce){if(_0x47b173[_0x1ac1('0x36')]['hasOwnProperty'](_0x2a96d3['id'])){for(var _0x3cfc46 in _0x2a96d3[_0x1ac1('0x41')]){if(_0x2a96d3[_0x1ac1('0x41')][_0x1ac1('0x42')](_0x3cfc46)){if(_0x47b173[_0x1ac1('0x36')][_0x2a96d3['id']][_0x1ac1('0x42')](_0x3cfc46+_0x1ac1('0x43'))){_0x47b173[_0x1ac1('0x36')][_0x2a96d3['id']][_0x3cfc46+_0x1ac1('0x43')]=parseInt(_0x2a96d3['capacity'][_0x3cfc46],0xa);}}}_0x47b173[_0x1ac1('0x36')][_0x2a96d3['id']]['updateRealtime']();return _0x5a1708({'code':0xc8,'message':_0x47b173[_0x1ac1('0x36')][_0x2a96d3['id']]});}else{return _0x43f2ce(_0x14051f[_0x1ac1('0x2c')](0x1f4,_0x1ac1('0x44')));}});},'Agents':function(_0x4e8aa4){return new Promise(function(_0x13d9d1,_0x4bdd70){var _0x36a21f=_[_0x1ac1('0x45')](_0x47b173['agents']);_0x13d9d1({'count':_0x36a21f[_0x1ac1('0x18')],'rows':_0x36a21f});});},'ChatQueues':function(_0x303e13){return new Promise(function(_0x562a4c,_0x351f3b){var _0xed36c=[];for(var _0x1d4f4d in _0x47b173[_0x1ac1('0x46')]){if(_0x47b173[_0x1ac1('0x46')][_0x1ac1('0x42')](_0x1d4f4d)){var _0x32e46a=_0x47b173[_0x1ac1('0x46')][_0x1d4f4d];var _0x390687={'id':_0x32e46a['id'],'available':_0x32e46a[_0x1ac1('0x47')],'loggedIn':_0x32e46a['loggedIn'],'name':_0x32e46a[_0x1ac1('0x48')],'paused':_0x32e46a[_0x1ac1('0x49')],'waiting':_0x32e46a[_0x1ac1('0x4a')]};_0xed36c[_0x1ac1('0x20')](_0x390687);}}_0x562a4c({'count':_0xed36c[_0x1ac1('0x18')],'rows':_0xed36c});});},'MailQueues':function(_0x4c75b3){return new Promise(function(_0x271fa,_0x2ea8ee){var _0x3fda57=[];for(var _0x921fd0 in _0x47b173['mailQueues']){if(_0x47b173[_0x1ac1('0x4b')]['hasOwnProperty'](_0x921fd0)){var _0x22ad16=_0x47b173[_0x1ac1('0x4b')][_0x921fd0];var _0x522a9a={'id':_0x22ad16['id'],'available':_0x22ad16['available'],'loggedIn':_0x22ad16[_0x1ac1('0x4c')],'name':_0x22ad16[_0x1ac1('0x48')],'paused':_0x22ad16[_0x1ac1('0x49')],'waiting':_0x22ad16['waiting']};_0x3fda57[_0x1ac1('0x20')](_0x522a9a);}}_0x271fa({'count':_0x3fda57[_0x1ac1('0x18')],'rows':_0x3fda57});});},'OpenchannelQueues':function(_0x152f14){return new Promise(function(_0x7e4752,_0x268cee){var _0x466201=[];for(var _0x2d0018 in _0x47b173[_0x1ac1('0x4d')]){if(_0x47b173[_0x1ac1('0x4d')][_0x1ac1('0x42')](_0x2d0018)){var _0x1464a6=_0x47b173['openchannelQueues'][_0x2d0018];var _0x3b923f={'id':_0x1464a6['id'],'available':_0x1464a6[_0x1ac1('0x47')],'loggedIn':_0x1464a6[_0x1ac1('0x4c')],'name':_0x1464a6[_0x1ac1('0x48')],'paused':_0x1464a6[_0x1ac1('0x49')],'waiting':_0x1464a6[_0x1ac1('0x4a')]};_0x466201[_0x1ac1('0x20')](_0x3b923f);}}_0x7e4752({'count':_0x466201[_0x1ac1('0x18')],'rows':_0x466201});});},'SmsQueues':function(_0x36a467){return new Promise(function(_0x80670,_0x58198b){var _0x3ec4a3=[];for(var _0x4f1532 in _0x47b173[_0x1ac1('0x4e')]){if(_0x47b173[_0x1ac1('0x4e')]['hasOwnProperty'](_0x4f1532)){var _0x577a96=_0x47b173['smsQueues'][_0x4f1532];var _0x5eea86={'id':_0x577a96['id'],'available':_0x577a96['available'],'loggedIn':_0x577a96[_0x1ac1('0x4c')],'name':_0x577a96['name'],'paused':_0x577a96['paused'],'waiting':_0x577a96[_0x1ac1('0x4a')]};_0x3ec4a3[_0x1ac1('0x20')](_0x5eea86);}}_0x80670({'count':_0x3ec4a3[_0x1ac1('0x18')],'rows':_0x3ec4a3});});},'FaxQueues':function(_0x499dd2){return new Promise(function(_0x4c839b,_0x201a6f){var _0x557d8f=[];for(var _0x3e8a0d in _0x47b173[_0x1ac1('0x4f')]){if(_0x47b173['faxQueues'][_0x1ac1('0x42')](_0x3e8a0d)){var _0x4ff694=_0x47b173[_0x1ac1('0x4f')][_0x3e8a0d];var _0x2c5322={'id':_0x4ff694['id'],'available':_0x4ff694[_0x1ac1('0x47')],'loggedIn':_0x4ff694[_0x1ac1('0x4c')],'name':_0x4ff694[_0x1ac1('0x48')],'paused':_0x4ff694[_0x1ac1('0x49')],'waiting':_0x4ff694[_0x1ac1('0x4a')]};_0x557d8f[_0x1ac1('0x20')](_0x2c5322);}}_0x4c839b({'count':_0x557d8f[_0x1ac1('0x18')],'rows':_0x557d8f});});},'WhatsappQueues':function(_0x27eb07){return new Promise(function(_0x9d55ff,_0x170505){var _0x4292b2=[];for(var _0x573bba in _0x47b173[_0x1ac1('0x50')]){if(_0x47b173[_0x1ac1('0x50')][_0x1ac1('0x42')](_0x573bba)){var _0x5e2547=_0x47b173[_0x1ac1('0x50')][_0x573bba];var _0x54c256={'id':_0x5e2547['id'],'available':_0x5e2547[_0x1ac1('0x47')],'loggedIn':_0x5e2547[_0x1ac1('0x4c')],'name':_0x5e2547['name'],'paused':_0x5e2547['paused'],'waiting':_0x5e2547[_0x1ac1('0x4a')]};_0x4292b2[_0x1ac1('0x20')](_0x54c256);}}_0x9d55ff({'count':_0x4292b2[_0x1ac1('0x18')],'rows':_0x4292b2});});},'ChatQueuesWaitingInteractions':function(_0x632137){return new Promise(function(_0x4f8e5e,_0x40f7b4){var _0x3fb62d=_[_0x1ac1('0x45')](_0x47b173[_0x1ac1('0x51')]);_0x4f8e5e({'count':_0x3fb62d[_0x1ac1('0x18')],'rows':_0x3fb62d});});},'MailQueuesWaitingInteractions':function(_0x2af51a){return new Promise(function(_0x447599,_0x1ae212){var _0xf6f987=_[_0x1ac1('0x45')](_0x47b173[_0x1ac1('0x52')]);_0x447599({'count':_0xf6f987[_0x1ac1('0x18')],'rows':_0xf6f987});});},'OpenchannelQueuesWaitingInteractions':function(_0x1829b8){return new Promise(function(_0x5d6232,_0x383dfe){var _0xdf1ecf=_['values'](_0x47b173[_0x1ac1('0x53')]);_0x5d6232({'count':_0xdf1ecf[_0x1ac1('0x18')],'rows':_0xdf1ecf});});},'SmsQueuesWaitingInteractions':function(_0x531081){return new Promise(function(_0x521f2f,_0x4d738e){var _0x240f6c=_[_0x1ac1('0x45')](_0x47b173[_0x1ac1('0x54')]);_0x521f2f({'count':_0x240f6c[_0x1ac1('0x18')],'rows':_0x240f6c});});},'FaxQueuesWaitingInteractions':function(_0x18e388){return new Promise(function(_0x217dc5,_0x397ea6){var _0x25f246=_[_0x1ac1('0x45')](_0x47b173[_0x1ac1('0x55')]);_0x217dc5({'count':_0x25f246[_0x1ac1('0x18')],'rows':_0x25f246});});},'WhatsappQueuesWaitingInteractions':function(_0x27465c){return new Promise(function(_0x180f50,_0x1f07a0){var _0x5021b8=_[_0x1ac1('0x45')](_0x47b173['whatsappQueuesWaitingInteractions']);_0x180f50({'count':_0x5021b8[_0x1ac1('0x18')],'rows':_0x5021b8});});}};var _0x4d7fd5=jayson['server'](_0x370097)[_0x1ac1('0x56')]();_0x4d7fd5['on'](_0x1ac1('0x2c'),function(_0x5ba71a){logger[_0x1ac1('0x2c')](JSON[_0x1ac1('0x57')](_0x5ba71a));return _0x433e7d(_0x5ba71a);});_0x4d7fd5[_0x1ac1('0x11')](0x232c,_0x1ac1('0x58'),function(){console[_0x1ac1('0x59')]('Routing\x20RPC\x20server\x20listening\x20on\x20127.0.0.1:%d!',0x232c);return _0x2e0b0b('RPC\x20listening\x20on\x20port:'+0x232c);});});};
\ No newline at end of file
+var _0xb67b=['capacity','agent\x20not\x20found','values','chatQueues','loggedIn','waiting','mailQueues','available','name','paused','openchannelQueues','smsQueues','faxQueues','whatsappQueues','chatQueuesWaitingInteractions','openchannelQueuesWaitingInteractions','smsQueuesWaitingInteractions','faxQueuesWaitingInteractions','whatsappQueuesWaitingInteractions','server','listen','127.0.0.1','Routing\x20RPC\x20server\x20listening\x20on\x20127.0.0.1:%d!','RPC\x20listening\x20on\x20port:','lodash','path','jayson/promise','bluebird','uuid','../../../config/logger','routing','../rpc/openchannelQueueReport','../rpc/mailQueueReport','../rpc/chatQueueReport','../rpc/smsQueueReport','../rpc/faxQueueReport','../lib/rule-engine','format','%s.%s.%s','isNil','IntervalId','Intervals','map','interval','rules','message','interaction','applications','length','join','.js','app','toLowerCase','autoreply','appdata','split','channel','mail','push','slice','dialogflow','dialogflowv2','amazonlex','%s:%s:%s','./interval','condition','intervals','./applications/','consequence','info','Push\x20new\x20rule','on\x20interval','\x20|\x20','error','Please\x20create\x20a\x20new\x20file\x20under','execute','Applications\x20executed','stringify','emit','complete','No\x20applications\x20to\x20execute','stack','routing\x20is\x20empty','agents','agent','busy','busyQueue','QueueReport','update','UserId','catch','error\x20update\x20queue\x20report','message\x20is\x20empty','end','hasOwnProperty'];(function(_0x290232,_0x225df1){var _0x52572c=function(_0x535199){while(--_0x535199){_0x290232['push'](_0x290232['shift']());}};_0x52572c(++_0x225df1);}(_0xb67b,0x1f3));var _0xbb67=function(_0x593941,_0x54b080){_0x593941=_0x593941-0x0;var _0x292692=_0xb67b[_0x593941];return _0x292692;};'use strict';var _=require(_0xbb67('0x0'));var util=require('util');var path=require(_0xbb67('0x1'));var fs=require('fs');var jayson=require(_0xbb67('0x2'));var BPromise=require(_0xbb67('0x3'));var uuid=require(_0xbb67('0x4'));var config=require('../../../config/environment');var logger=require(_0xbb67('0x5'))(_0xbb67('0x6'));var rpc={'openchannelQueueReport':require(_0xbb67('0x7')),'mailQueueReport':require(_0xbb67('0x8')),'chatQueueReport':require(_0xbb67('0x9')),'smsQueueReport':require(_0xbb67('0xa')),'faxQueueReport':require(_0xbb67('0xb')),'whatsappQueueReport':require('../rpc/whatsappQueueReport')};var RuleEngine=require(_0xbb67('0xc'));function getId(_0x24ac3d,_0x57d582,_0x4912e4){return util[_0xbb67('0xd')](_0xbb67('0xe'),_0x24ac3d,_0x57d582||0x0,_0x4912e4||0x0);}function getIntervals(_0x30f2f7,_0x42fd05){var _0x22bfd0=[];if(!_[_0xbb67('0xf')](_0x42fd05[_0xbb67('0x10')])&&!_[_0xbb67('0xf')](_0x30f2f7[_0x42fd05[_0xbb67('0x10')]])&&!_[_0xbb67('0xf')](_0x30f2f7[_0x42fd05['IntervalId']][_0xbb67('0x11')])){_0x22bfd0=_[_0xbb67('0x12')](_0x30f2f7[_0x42fd05[_0xbb67('0x10')]][_0xbb67('0x11')],_0xbb67('0x13'));}else if(!_[_0xbb67('0xf')](_0x42fd05[_0xbb67('0x13')])){_0x22bfd0=[_0x42fd05['interval']];}return _0x22bfd0;}exports['listen']=function(_0x56158d){_0x56158d[_0xbb67('0x14')]={};return new BPromise(function(_0x4d2593,_0x474577){var _0x176f91={'Start':function(_0x14cd97){var _0x46dfa3=this;return new Promise(function(_0x4d9909,_0x4222b6){if(_0x14cd97){try{var _0x4a3201=[];var _0x5c7a68=getId(_0x14cd97['channel'],_0x14cd97[_0xbb67('0x15')]?_0x14cd97[_0xbb67('0x15')]['id']:0x0,_0x14cd97[_0xbb67('0x16')]?_0x14cd97['interaction']['id']:0x0);if(_0x14cd97[_0xbb67('0x17')]&&_['isArray'](_0x14cd97['applications'])&&_0x14cd97[_0xbb67('0x17')]['length']){for(var _0xdab993=0x0;_0xdab993<_0x14cd97[_0xbb67('0x17')][_0xbb67('0x18')];_0xdab993+=0x1){var _0x5d467f=_0x14cd97['applications'][_0xdab993];if(fs['existsSync'](path[_0xbb67('0x19')](__dirname,_0xbb67('0x17'),_0x5d467f['app']+_0xbb67('0x1a')))){var _0xf7537a=[];switch(_0x5d467f[_0xbb67('0x1b')][_0xbb67('0x1c')]()){case _0xbb67('0x1d'):var _0xc9762d=_0x5d467f[_0xbb67('0x1e')][_0xbb67('0x1f')](',');if(_0x14cd97[_0xbb67('0x20')]===_0xbb67('0x21')){_0xf7537a[_0xbb67('0x22')](_0xc9762d[0x0]);_0xf7537a[_0xbb67('0x22')](_0xc9762d[0x1]);_0xf7537a[_0xbb67('0x22')](_0xc9762d[_0xbb67('0x23')](0x2,_0xc9762d['length'])[_0xbb67('0x19')](','));}else{_0xf7537a[_0xbb67('0x22')](_0xc9762d[0x0]);_0xf7537a[_0xbb67('0x22')](_0xc9762d['slice'](0x1,_0xc9762d[_0xbb67('0x18')])[_0xbb67('0x19')](','));}break;case _0xbb67('0x24'):var _0x395274=_0x5d467f[_0xbb67('0x1e')][_0xbb67('0x1f')](',');_0xf7537a['push'](_0x395274[0x0]);_0xf7537a['push'](_0x395274[0x1]);_0xf7537a[_0xbb67('0x22')](_0x395274[_0xbb67('0x23')](0x2,_0x395274['length'])[_0xbb67('0x19')](','));break;case _0xbb67('0x25'):var _0x4dbf1a=_0x5d467f[_0xbb67('0x1e')]['split'](',');_0xf7537a[_0xbb67('0x22')](_0x4dbf1a[0x0]);_0xf7537a[_0xbb67('0x22')](_0x4dbf1a[0x1]);_0xf7537a[_0xbb67('0x22')](_0x4dbf1a[0x2]);_0xf7537a[_0xbb67('0x22')](_0x4dbf1a[0x3]);_0xf7537a[_0xbb67('0x22')](_0x4dbf1a[_0xbb67('0x23')](0x4,_0x4dbf1a[_0xbb67('0x18')])['join'](','));break;case _0xbb67('0x26'):var _0x3fb188=_0x5d467f[_0xbb67('0x1e')][_0xbb67('0x1f')](',');_0xf7537a[_0xbb67('0x22')](_0x3fb188[0x0]);_0xf7537a[_0xbb67('0x22')](_0x3fb188[0x1]);_0xf7537a['push'](_0x3fb188[0x2]);_0xf7537a['push'](_0x3fb188[0x3]);_0xf7537a['push'](_0x3fb188[_0xbb67('0x23')](0x4,_0x3fb188['length'])['join'](','));break;case _0xbb67('0x15'):_0xf7537a[_0xbb67('0x22')](_0x5d467f['appdata']);break;case'tag':_0xf7537a['push'](_0x5d467f['TagId']);_0xf7537a[_0xbb67('0x22')](_0x5d467f['appdata']);break;default:_0xf7537a=_[_0xbb67('0xf')](_0x5d467f[_0xbb67('0x1e')])?[]:_0x5d467f[_0xbb67('0x1e')][_0xbb67('0x1f')](',');}var _0x90625f={'id':util[_0xbb67('0xd')](_0xbb67('0x27'),_0x5c7a68,_0x5d467f['id'],_0x5d467f[_0xbb67('0x1b')]),'condition':require(_0xbb67('0x28'))[_0xbb67('0x29')](_0x5c7a68,getIntervals(_0x56158d[_0xbb67('0x2a')],_0x5d467f),_0x56158d),'consequence':require(_0xbb67('0x2b')+_0x5d467f[_0xbb67('0x1b')])[_0xbb67('0x2c')](_0x5c7a68,_0xf7537a,_0x56158d,_0x14cd97),'p':_0x5d467f['priority']||0x0};logger[_0xbb67('0x2d')](_0xbb67('0x2e'),_0x90625f['id'],_0xbb67('0x2f'),getIntervals(_0x56158d[_0xbb67('0x2a')],_0x5d467f)[_0xbb67('0x19')](_0xbb67('0x30')));_0x4a3201[_0xbb67('0x22')](_0x90625f);}else{logger[_0xbb67('0x31')](_0xbb67('0x32'),path[_0xbb67('0x19')](__dirname,'applications',_0x5d467f[_0xbb67('0x1b')]+_0xbb67('0x1a')));}}_0x56158d[_0xbb67('0x14')][_0x5c7a68]=new RuleEngine(_0x4a3201);_0x56158d['rules'][_0x5c7a68][_0xbb67('0x33')](_0x14cd97,function(_0x185ba6){logger[_0xbb67('0x2d')](_0xbb67('0x34'),JSON[_0xbb67('0x35')](_0x185ba6['matchPath']));if(_0x56158d[_0xbb67('0x14')][_0x5c7a68]){_0x56158d[_0xbb67('0x14')][_0x5c7a68][_0xbb67('0x36')](_0xbb67('0x37'));}});return _0x4d9909({'code':0xc8,'message':_0x14cd97});}else{logger[_0xbb67('0x2d')](_0xbb67('0x38'));return _0x4d9909({'code':0xc8,'message':_0x14cd97});}}catch(_0xe2b593){logger[_0xbb67('0x31')](_0xe2b593[_0xbb67('0x39')]);return _0x4222b6(_0x46dfa3[_0xbb67('0x31')](0x1f4,_0xe2b593));}}return _0x4222b6(_0xbb67('0x3a'));});},'AcceptMessage':function(_0x45f41f){var _0x41c992=this;return new Promise(function(_0x545847,_0x5c154e){if(_0x45f41f['agent']&&_0x45f41f['agent']['id']){if(_0x56158d[_0xbb67('0x3b')][_0x45f41f[_0xbb67('0x3c')]['id']]){_0x56158d[_0xbb67('0x3b')][_0x45f41f[_0xbb67('0x3c')]['id']][_0xbb67('0x3d')]=![];_0x56158d[_0xbb67('0x3b')][_0x45f41f[_0xbb67('0x3c')]['id']][_0xbb67('0x3e')]=undefined;}}if(_0x45f41f['message']&&_0x45f41f[_0xbb67('0x15')]['id']){try{var _0x1f1c11=getId(_0x45f41f[_0xbb67('0x20')],_0x45f41f['message']?_0x45f41f['message']['id']:0x0,_0x45f41f['interaction']?_0x45f41f['interaction']['id']:0x0);if(_0x56158d[_0xbb67('0x14')][_0x1f1c11]){_0x56158d['rules'][_0x1f1c11][_0xbb67('0x36')]('end');if(rpc[_0x45f41f['channel']+_0xbb67('0x3f')]){rpc[_0x45f41f[_0xbb67('0x20')]+_0xbb67('0x3f')][_0xbb67('0x40')](_0x1f1c11,{'UserId':_0x45f41f[_0xbb67('0x15')][_0xbb67('0x41')]})[_0xbb67('0x42')](function(_0x9f082c){logger[_0xbb67('0x31')](_0xbb67('0x43'));});}}return _0x545847({'code':0xc8,'message':_0x45f41f});}catch(_0x35768c){logger['error'](_0x35768c[_0xbb67('0x39')]);return _0x5c154e(_0x41c992[_0xbb67('0x31')](0x1f4,_0x35768c));}}logger[_0xbb67('0x31')](_0xbb67('0x44'));return _0x5c154e(_0x41c992['error'](0x1f4,_0xbb67('0x44')));});},'RejectMessage':function(_0x17c7b7){var _0x20ea0a=this;return new Promise(function(_0x2909e0,_0x41c804){if(_0x17c7b7[_0xbb67('0x3c')]&&_0x17c7b7['agent']['id']){try{if(_0x56158d[_0xbb67('0x3b')][_0x17c7b7[_0xbb67('0x3c')]['id']]){_0x56158d[_0xbb67('0x3b')][_0x17c7b7[_0xbb67('0x3c')]['id']][_0xbb67('0x3d')]=![];_0x56158d['agents'][_0x17c7b7[_0xbb67('0x3c')]['id']]['busyQueue']=undefined;}return _0x2909e0({'code':0xc8,'message':_0x17c7b7});}catch(_0x4f6159){logger[_0xbb67('0x31')](_0x4f6159[_0xbb67('0x39')]);return _0x41c804(_0x20ea0a['error'](0x1f4,_0x4f6159));}}logger[_0xbb67('0x31')](_0xbb67('0x44'));return _0x41c804(_0x20ea0a[_0xbb67('0x31')](0x1f4,_0xbb67('0x44')));});},'AbandonInteraction':function(_0x41002f){var _0x4abf06=this;return new Promise(function(_0x235364,_0x147284){if(_0x41002f[_0xbb67('0x20')]&&_0x41002f[_0xbb67('0x16')]&&_0x41002f[_0xbb67('0x16')]['id']){try{var _0xea31cb=getId(_0x41002f['channel'],_0x41002f[_0xbb67('0x15')]?_0x41002f[_0xbb67('0x15')]['id']:0x0,_0x41002f[_0xbb67('0x16')]?_0x41002f[_0xbb67('0x16')]['id']:0x0);if(_0x56158d[_0xbb67('0x14')][_0xea31cb]){_0x56158d[_0xbb67('0x14')][_0xea31cb][_0xbb67('0x36')](_0xbb67('0x45'));}return _0x235364({'code':0xc8,'message':_0x41002f});}catch(_0x1a7076){logger[_0xbb67('0x31')](_0x1a7076[_0xbb67('0x39')]);return _0x147284(_0x4abf06[_0xbb67('0x31')](0x1f4,_0x1a7076));}}logger[_0xbb67('0x31')](_0xbb67('0x44'));return _0x147284(_0x4abf06[_0xbb67('0x31')](0x1f4,_0xbb67('0x44')));});},'AgentCapacity':function(_0x4449b2){var _0x39d009=this;return new Promise(function(_0x2a2511,_0x453c8a){if(_0x56158d[_0xbb67('0x3b')][_0xbb67('0x46')](_0x4449b2['id'])){for(var _0x1984bb in _0x4449b2[_0xbb67('0x47')]){if(_0x4449b2[_0xbb67('0x47')][_0xbb67('0x46')](_0x1984bb)){if(_0x56158d[_0xbb67('0x3b')][_0x4449b2['id']][_0xbb67('0x46')](_0x1984bb+'CurrentCapacity')){_0x56158d[_0xbb67('0x3b')][_0x4449b2['id']][_0x1984bb+'CurrentCapacity']=parseInt(_0x4449b2[_0xbb67('0x47')][_0x1984bb],0xa);}}}_0x56158d[_0xbb67('0x3b')][_0x4449b2['id']]['updateRealtime']();return _0x2a2511({'code':0xc8,'message':_0x56158d[_0xbb67('0x3b')][_0x4449b2['id']]});}else{return _0x453c8a(_0x39d009[_0xbb67('0x31')](0x1f4,_0xbb67('0x48')));}});},'Agents':function(_0x25fd22){return new Promise(function(_0x3500f5,_0x12a18d){var _0x10c6fa=_[_0xbb67('0x49')](_0x56158d[_0xbb67('0x3b')]);_0x3500f5({'count':_0x10c6fa[_0xbb67('0x18')],'rows':_0x10c6fa});});},'ChatQueues':function(_0x367388){return new Promise(function(_0x206d7f,_0x51bf0c){var _0x408f76=[];for(var _0x38761b in _0x56158d[_0xbb67('0x4a')]){if(_0x56158d[_0xbb67('0x4a')][_0xbb67('0x46')](_0x38761b)){var _0x269ccb=_0x56158d[_0xbb67('0x4a')][_0x38761b];var _0x487dd3={'id':_0x269ccb['id'],'available':_0x269ccb['available'],'loggedIn':_0x269ccb[_0xbb67('0x4b')],'name':_0x269ccb['name'],'paused':_0x269ccb['paused'],'waiting':_0x269ccb[_0xbb67('0x4c')]};_0x408f76[_0xbb67('0x22')](_0x487dd3);}}_0x206d7f({'count':_0x408f76[_0xbb67('0x18')],'rows':_0x408f76});});},'MailQueues':function(_0x89806){return new Promise(function(_0x144988,_0x18a181){var _0x5858bb=[];for(var _0x2601e0 in _0x56158d[_0xbb67('0x4d')]){if(_0x56158d[_0xbb67('0x4d')][_0xbb67('0x46')](_0x2601e0)){var _0x8fd71d=_0x56158d[_0xbb67('0x4d')][_0x2601e0];var _0x46bdda={'id':_0x8fd71d['id'],'available':_0x8fd71d[_0xbb67('0x4e')],'loggedIn':_0x8fd71d['loggedIn'],'name':_0x8fd71d[_0xbb67('0x4f')],'paused':_0x8fd71d[_0xbb67('0x50')],'waiting':_0x8fd71d['waiting']};_0x5858bb['push'](_0x46bdda);}}_0x144988({'count':_0x5858bb[_0xbb67('0x18')],'rows':_0x5858bb});});},'OpenchannelQueues':function(_0x307e45){return new Promise(function(_0x572c7d,_0x5b1fcf){var _0x48973d=[];for(var _0x2bc559 in _0x56158d[_0xbb67('0x51')]){if(_0x56158d['openchannelQueues'][_0xbb67('0x46')](_0x2bc559)){var _0x199341=_0x56158d[_0xbb67('0x51')][_0x2bc559];var _0x384e9b={'id':_0x199341['id'],'available':_0x199341[_0xbb67('0x4e')],'loggedIn':_0x199341[_0xbb67('0x4b')],'name':_0x199341[_0xbb67('0x4f')],'paused':_0x199341[_0xbb67('0x50')],'waiting':_0x199341[_0xbb67('0x4c')]};_0x48973d['push'](_0x384e9b);}}_0x572c7d({'count':_0x48973d[_0xbb67('0x18')],'rows':_0x48973d});});},'SmsQueues':function(_0x491cd3){return new Promise(function(_0x578004,_0x2d4c90){var _0x5044f0=[];for(var _0x32f560 in _0x56158d['smsQueues']){if(_0x56158d['smsQueues'][_0xbb67('0x46')](_0x32f560)){var _0x3cf952=_0x56158d[_0xbb67('0x52')][_0x32f560];var _0x48fcf6={'id':_0x3cf952['id'],'available':_0x3cf952[_0xbb67('0x4e')],'loggedIn':_0x3cf952[_0xbb67('0x4b')],'name':_0x3cf952['name'],'paused':_0x3cf952[_0xbb67('0x50')],'waiting':_0x3cf952['waiting']};_0x5044f0[_0xbb67('0x22')](_0x48fcf6);}}_0x578004({'count':_0x5044f0[_0xbb67('0x18')],'rows':_0x5044f0});});},'FaxQueues':function(_0x293f84){return new Promise(function(_0x575602,_0x2cfcb4){var _0x53b8b7=[];for(var _0x203cf9 in _0x56158d[_0xbb67('0x53')]){if(_0x56158d[_0xbb67('0x53')][_0xbb67('0x46')](_0x203cf9)){var _0x36d421=_0x56158d['faxQueues'][_0x203cf9];var _0x4bb1b1={'id':_0x36d421['id'],'available':_0x36d421[_0xbb67('0x4e')],'loggedIn':_0x36d421['loggedIn'],'name':_0x36d421[_0xbb67('0x4f')],'paused':_0x36d421[_0xbb67('0x50')],'waiting':_0x36d421[_0xbb67('0x4c')]};_0x53b8b7['push'](_0x4bb1b1);}}_0x575602({'count':_0x53b8b7[_0xbb67('0x18')],'rows':_0x53b8b7});});},'WhatsappQueues':function(_0x78782e){return new Promise(function(_0x486127,_0x20d148){var _0x34f400=[];for(var _0x16c051 in _0x56158d['whatsappQueues']){if(_0x56158d[_0xbb67('0x54')][_0xbb67('0x46')](_0x16c051)){var _0x11c7cb=_0x56158d[_0xbb67('0x54')][_0x16c051];var _0x8626e2={'id':_0x11c7cb['id'],'available':_0x11c7cb['available'],'loggedIn':_0x11c7cb['loggedIn'],'name':_0x11c7cb[_0xbb67('0x4f')],'paused':_0x11c7cb['paused'],'waiting':_0x11c7cb[_0xbb67('0x4c')]};_0x34f400['push'](_0x8626e2);}}_0x486127({'count':_0x34f400[_0xbb67('0x18')],'rows':_0x34f400});});},'ChatQueuesWaitingInteractions':function(_0xf75a30){return new Promise(function(_0x4f585a,_0x5f4b47){var _0x11ee1e=_[_0xbb67('0x49')](_0x56158d[_0xbb67('0x55')]);_0x4f585a({'count':_0x11ee1e[_0xbb67('0x18')],'rows':_0x11ee1e});});},'MailQueuesWaitingInteractions':function(_0x52d6b7){return new Promise(function(_0x20bea2,_0x30624b){var _0x310ae0=_[_0xbb67('0x49')](_0x56158d['mailQueuesWaitingInteractions']);_0x20bea2({'count':_0x310ae0['length'],'rows':_0x310ae0});});},'OpenchannelQueuesWaitingInteractions':function(_0x45352d){return new Promise(function(_0x4c59e4,_0x133236){var _0x155889=_[_0xbb67('0x49')](_0x56158d[_0xbb67('0x56')]);_0x4c59e4({'count':_0x155889[_0xbb67('0x18')],'rows':_0x155889});});},'SmsQueuesWaitingInteractions':function(_0x39bf1f){return new Promise(function(_0x265c4b,_0x5a0cc8){var _0x838828=_[_0xbb67('0x49')](_0x56158d[_0xbb67('0x57')]);_0x265c4b({'count':_0x838828[_0xbb67('0x18')],'rows':_0x838828});});},'FaxQueuesWaitingInteractions':function(_0x58f9ca){return new Promise(function(_0xef2c12,_0x111c25){var _0x21d76e=_[_0xbb67('0x49')](_0x56158d[_0xbb67('0x58')]);_0xef2c12({'count':_0x21d76e[_0xbb67('0x18')],'rows':_0x21d76e});});},'WhatsappQueuesWaitingInteractions':function(_0x3a3e08){return new Promise(function(_0x28b92a,_0x42e4ea){var _0x395fdc=_[_0xbb67('0x49')](_0x56158d[_0xbb67('0x59')]);_0x28b92a({'count':_0x395fdc[_0xbb67('0x18')],'rows':_0x395fdc});});}};var _0xa6bc3e=jayson[_0xbb67('0x5a')](_0x176f91)['http']();_0xa6bc3e['on'](_0xbb67('0x31'),function(_0x10ba28){logger[_0xbb67('0x31')](JSON['stringify'](_0x10ba28));return _0x474577(_0x10ba28);});_0xa6bc3e[_0xbb67('0x5b')](0x232c,_0xbb67('0x5c'),function(){console['log'](_0xbb67('0x5d'),0x232c);return _0x4d2593(_0xbb67('0x5e')+0x232c);});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8279=['stop','util','bluebird','jayson/promise','lodash','routing','request','then','error','message','catch','condition','rules','info','[%s][INTERVAL]\x20ROUTING\x20STOPPED','length','push','Command','format','iftime\x20%s','indexOf','all','some','[%s][INTERVAL]\x20%s\x20%s','\x20|\x20','log','stack'];(function(_0x51500b,_0x48aba5){var _0x3f2648=function(_0x1a4c89){while(--_0x1a4c89){_0x51500b['push'](_0x51500b['shift']());}};_0x3f2648(++_0x48aba5);}(_0x8279,0x1b1));var _0x9827=function(_0x252fbf,_0x59126d){_0x252fbf=_0x252fbf-0x0;var _0x102b85=_0x8279[_0x252fbf];return _0x102b85;};'use strict';var util=require(_0x9827('0x0'));var BPromise=require(_0x9827('0x1'));var jayson=require(_0x9827('0x2'));var _=require(_0x9827('0x3'));var logger=require('../../../config/logger')(_0x9827('0x4'));var client=jayson['client']['http']({'port':0x232a});function request(_0x538e74,_0x3e9584){return new BPromise(function(_0xe7dc7a,_0x13f156){return client[_0x9827('0x5')](_0x538e74,_0x3e9584)[_0x9827('0x6')](function(_0x1b2b2a){if(_0x1b2b2a[_0x9827('0x7')]){return _0x13f156(_0x1b2b2a[_0x9827('0x7')][_0x9827('0x8')]);}else{return _0xe7dc7a(_0x1b2b2a['result']);}})[_0x9827('0x9')](function(_0x55f439){return _0x13f156(_0x55f439);});});}exports[_0x9827('0xa')]=function(_0x558fae,_0xd3fef8,_0x164dbc){return function(_0x56ed5d){if(_0x164dbc[_0x9827('0xb')]&&!_0x164dbc['rules'][_0x558fae]){logger[_0x9827('0xc')](_0x9827('0xd'),_0x558fae);return _0x56ed5d['stop']();}var _0x425bf2=[];for(var _0x1639bc=0x0;_0x1639bc<_0xd3fef8[_0x9827('0xe')];_0x1639bc+=0x1){_0x425bf2[_0x9827('0xf')](request(_0x9827('0x10'),{'command':util[_0x9827('0x11')](_0x9827('0x12'),_0xd3fef8[_0x1639bc])})[_0x9827('0x6')](function(_0x225f18){return _0x225f18&&_0x225f18[_0x9827('0x8')]&&_0x225f18[_0x9827('0x8')][_0x9827('0x13')]('true')>=0x0?!![]:![];})['catch'](function(_0x3ef599){logger[_0x9827('0x7')]('[%s][INTERVAL]\x20%s',_0x558fae,_0xd3fef8[_0x1639bc]);}));}BPromise[_0x9827('0x14')](_0x425bf2)[_0x9827('0x6')](function(_0x2cbb61){var _0xc27936=_[_0x9827('0x15')](_0x2cbb61);logger[_0x9827('0xc')](_0x9827('0x16'),_0x558fae,_0xd3fef8['join'](_0x9827('0x17')),_0xc27936);_0x56ed5d['when'](_0xc27936);})['catch'](function(_0x40eabe){console[_0x9827('0x18')](_0x40eabe);logger['error'](_0x9827('0x16'),_0x558fae,_0xd3fef8['join'](_0x9827('0x17')),_0x40eabe[_0x9827('0x19')]);_0x56ed5d[_0x9827('0x1a')]();});};};
\ No newline at end of file
+var _0x268d=['routing','client','http','request','error','message','result','catch','rules','info','stop','length','Command','format','then','indexOf','[%s][INTERVAL]\x20%s','all','some','[%s][INTERVAL]\x20%s\x20%s','join','\x20|\x20','when','log','util','bluebird','jayson/promise','lodash','../../../config/logger'];(function(_0x1fc122,_0x5e2c17){var _0xa2cb13=function(_0x263b13){while(--_0x263b13){_0x1fc122['push'](_0x1fc122['shift']());}};_0xa2cb13(++_0x5e2c17);}(_0x268d,0x191));var _0xd268=function(_0x1b169b,_0x9447e9){_0x1b169b=_0x1b169b-0x0;var _0x27880d=_0x268d[_0x1b169b];return _0x27880d;};'use strict';var util=require(_0xd268('0x0'));var BPromise=require(_0xd268('0x1'));var jayson=require(_0xd268('0x2'));var _=require(_0xd268('0x3'));var logger=require(_0xd268('0x4'))(_0xd268('0x5'));var client=jayson[_0xd268('0x6')][_0xd268('0x7')]({'port':0x232a});function request(_0x299bf3,_0x60ca9b){return new BPromise(function(_0x47f562,_0x221cca){return client[_0xd268('0x8')](_0x299bf3,_0x60ca9b)['then'](function(_0x2325db){if(_0x2325db[_0xd268('0x9')]){return _0x221cca(_0x2325db['error'][_0xd268('0xa')]);}else{return _0x47f562(_0x2325db[_0xd268('0xb')]);}})[_0xd268('0xc')](function(_0x21e64f){return _0x221cca(_0x21e64f);});});}exports['condition']=function(_0xaf6618,_0x5ad54f,_0xec7d25){return function(_0x393112){if(_0xec7d25['rules']&&!_0xec7d25[_0xd268('0xd')][_0xaf6618]){logger[_0xd268('0xe')]('[%s][INTERVAL]\x20ROUTING\x20STOPPED',_0xaf6618);return _0x393112[_0xd268('0xf')]();}var _0x3cfab2=[];for(var _0x182276=0x0;_0x182276<_0x5ad54f[_0xd268('0x10')];_0x182276+=0x1){_0x3cfab2['push'](request(_0xd268('0x11'),{'command':util[_0xd268('0x12')]('iftime\x20%s',_0x5ad54f[_0x182276])})[_0xd268('0x13')](function(_0x4537c9){return _0x4537c9&&_0x4537c9[_0xd268('0xa')]&&_0x4537c9[_0xd268('0xa')][_0xd268('0x14')]('true')>=0x0?!![]:![];})['catch'](function(_0x22b444){logger[_0xd268('0x9')](_0xd268('0x15'),_0xaf6618,_0x5ad54f[_0x182276]);}));}BPromise[_0xd268('0x16')](_0x3cfab2)[_0xd268('0x13')](function(_0x54c81c){var _0x5a3942=_[_0xd268('0x17')](_0x54c81c);logger['info'](_0xd268('0x18'),_0xaf6618,_0x5ad54f[_0xd268('0x19')](_0xd268('0x1a')),_0x5a3942);_0x393112[_0xd268('0x1b')](_0x5a3942);})[_0xd268('0xc')](function(_0x29cea3){console[_0xd268('0x1c')](_0x29cea3);logger[_0xd268('0x9')](_0xd268('0x18'),_0xaf6618,_0x5ad54f[_0xd268('0x19')](_0xd268('0x1a')),_0x29cea3['stack']);_0x393112[_0xd268('0xf')]();});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5423=['info','[%s][agents][agentcalled]\x20agent:%s\x20destuniqueid:%s\x20lastevent:called','agentringnoanswer','agentringnoanswerAt','timeout','reason','holdtime','ringtime','talktime','push','error','queuecallerabandon','[%s][agents][queuecallerabandon]','[%s][agents][queuecallerabandon]\x20agent:%s\x20destuniqueid:%s\x20lastevent:abandoned','abandoned','[%s][agents][agentconnect]','[%s][agents][agentconnect]\x20agent:%s\x20destuniqueid:%s\x20lastevent:connect','agentconnectAt','connect','forIn','answered_elsewhere','answeredelsewheredestinationuniqueid','answeredelsewheremembername','isNil','[%s][agents][agentcomplete]','[%s][agents][agentcomplete]\x20agent:%s\x20destuniqueid:%s\x20lastevent:complete','agentcompleteAt','complete','transfereruniqueid','[%s][agents][blindtransfer]','[%s][agents][blindtransfer]\x20agent:%s\x20transferuniqueid:%s','transfer','transferuniqueid','attendedtransfer','origtransfereruniqueid','origtransfererlinkedid','secondtransfereruniqueid','[%s][agents][attendedtransfer]\x20agent:%s','transfertype','ATTENDED','origtransfererexten','transfereeuniqueid','agententerreason','clone','calleridname','secondtransfererlinkedid','secondtransfererexten','transfertargetuniqueid','[%s][agents][attendedtransfer]','hangup','[%s][agents][hangup]','cause','[%s][agents][hangup]\x20agent:%s\x20reason:%s\x20lastevent:%s','indexOf','splice','diffTime','agent','lodash','util','format','[%s][agents][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s','uniqueid','channel','membername','interface','calleridnum','connectedlinenum','lastevent','queue','then','type','agentcomplete','acw','agentacw','acwTimeout','request','CreateVoiceAgentReport','destuniqueid','agentcalled','debug','[%s][agents][agentcalled]','agentcalledAt','now','called','connectedlinename'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x5423,0xe3));var _0x3542=function(_0x72ef6d,_0x5e3a3a){_0x72ef6d=_0x72ef6d-0x0;var _0x5b7be9=_0x5423[_0x72ef6d];return _0x5b7be9;};'use strict';var _=require(_0x3542('0x0'));var util=require(_0x3542('0x1'));var utils=require('./utils');var agents={};var transfers={};var unanswered=[];function writeDB(_0x331a98,_0x457909){utils['info'](util[_0x3542('0x2')](_0x3542('0x3'),_0x331a98[_0x3542('0x4')],_0x331a98[_0x3542('0x5')],_0x331a98['queue'],_0x331a98[_0x3542('0x6')],_0x331a98[_0x3542('0x7')],_0x331a98[_0x3542('0x8')],_0x331a98[_0x3542('0x9')],_0x331a98[_0x3542('0xa')]));if(_0x331a98['queue']){utils['getVoiceQueueByName'](_0x331a98[_0x3542('0xb')])[_0x3542('0xc')](function(_0x53ece9){if(_0x53ece9){_0x331a98[_0x3542('0xd')]=_0x53ece9[_0x3542('0xd')];_0x331a98['agentacw']=_0x331a98[_0x3542('0xe')]?_0x53ece9[_0x3542('0xf')]:![];_0x331a98['acwtime']=_0x331a98[_0x3542('0x10')]?_0x53ece9[_0x3542('0x11')]:0x0;}utils[_0x3542('0x12')](_0x3542('0x13'),_0x331a98);});}else{utils[_0x3542('0x12')](_0x3542('0x13'),_0x331a98);}if(_0x457909){delete transfers[_0x331a98[_0x3542('0x4')]];}else{delete agents[_0x331a98[_0x3542('0x14')]];}}exports[_0x3542('0x15')]=function(_0x1a9062){try{utils[_0x3542('0x16')](util[_0x3542('0x2')](_0x3542('0x17'),_0x1a9062['uniqueid']),_0x1a9062);agents[_0x1a9062[_0x3542('0x14')]]=_0x1a9062;agents[_0x1a9062['destuniqueid']][_0x3542('0x18')]=utils[_0x3542('0x19')]();agents[_0x1a9062[_0x3542('0x14')]]['lastevent']=_0x3542('0x1a');agents[_0x1a9062[_0x3542('0x14')]][_0x3542('0x9')]=null;agents[_0x1a9062['destuniqueid']][_0x3542('0x1b')]=null;utils[_0x3542('0x1c')](util[_0x3542('0x2')](_0x3542('0x1d'),_0x1a9062['uniqueid'],agents[_0x1a9062[_0x3542('0x14')]]['membername'],_0x1a9062[_0x3542('0x14')]));}catch(_0x369e0c){utils['error'](util[_0x3542('0x2')](_0x3542('0x17'),_0x1a9062[_0x3542('0x4')]),_0x369e0c);}};exports[_0x3542('0x1e')]=function(_0x212950){try{if(!_['isNil'](agents[_0x212950['destuniqueid']])){utils['debug'](util[_0x3542('0x2')]('[%s][agents][agentringnoanswer]',_0x212950[_0x3542('0x4')]),_0x212950);utils['info'](util[_0x3542('0x2')]('[%s][agents][agentringnoanswer]\x20agent:%s\x20destuniqueid:%s\x20lastevent:timeout',_0x212950['uniqueid'],agents[_0x212950[_0x3542('0x14')]][_0x3542('0x6')],_0x212950['destuniqueid']));agents[_0x212950['destuniqueid']][_0x3542('0x1e')]=!![];agents[_0x212950['destuniqueid']][_0x3542('0x1f')]=utils[_0x3542('0x19')]();agents[_0x212950[_0x3542('0x14')]][_0x3542('0xa')]=_0x3542('0x20');agents[_0x212950[_0x3542('0x14')]][_0x3542('0x21')]=_0x3542('0x20');agents[_0x212950[_0x3542('0x14')]][_0x3542('0x22')]=_0x212950[_0x3542('0x23')]?parseInt(_0x212950[_0x3542('0x23')])/0x3e8:0x0;agents[_0x212950[_0x3542('0x14')]][_0x3542('0x24')]=0x0;unanswered[_0x3542('0x25')](_0x212950[_0x3542('0x14')]);}}catch(_0x303412){utils[_0x3542('0x26')](util[_0x3542('0x2')]('[%s][agents][agentringnoanswer]',_0x212950[_0x3542('0x4')]),_0x303412);}};exports[_0x3542('0x27')]=function(_0x2aec76){try{_['forIn'](agents,function(_0x402c97,_0xc6f23b){if(_0x402c97[_0x3542('0x4')]==_0x2aec76[_0x3542('0x4')]&&!_['includes'](unanswered,_0x402c97['destuniqueid'])){utils[_0x3542('0x16')](util[_0x3542('0x2')](_0x3542('0x28'),_0x2aec76[_0x3542('0x4')]),_0x2aec76);utils[_0x3542('0x1c')](util[_0x3542('0x2')](_0x3542('0x29'),_0x2aec76['uniqueid'],_0x402c97['membername'],_0x402c97[_0x3542('0x14')]));_0x402c97['agentringnoanswer']=!![];_0x402c97['agentringnoanswerAt']=utils[_0x3542('0x19')]();_0x402c97['lastevent']='abandoned';_0x402c97[_0x3542('0x21')]=_0x3542('0x2a');_0x402c97[_0x3542('0x22')]=_0x2aec76['holdtime'];_0x402c97[_0x3542('0x24')]=0x0;writeDB(_0x402c97);}});}catch(_0x49b523){utils[_0x3542('0x26')](util[_0x3542('0x2')]('[%s][agents][queuecallerabandon]',_0x2aec76[_0x3542('0x4')]),_0x49b523);}};exports['agentconnect']=function(_0x204e5e){try{if(agents[_0x204e5e[_0x3542('0x14')]]){utils[_0x3542('0x16')](util['format'](_0x3542('0x2b'),_0x204e5e['uniqueid']),_0x204e5e);utils[_0x3542('0x1c')](util[_0x3542('0x2')](_0x3542('0x2c'),_0x204e5e[_0x3542('0x4')],agents[_0x204e5e[_0x3542('0x14')]][_0x3542('0x6')],_0x204e5e[_0x3542('0x14')]));agents[_0x204e5e[_0x3542('0x14')]][_0x3542('0x2d')]=utils[_0x3542('0x19')]();agents[_0x204e5e[_0x3542('0x14')]][_0x3542('0x9')]=_0x204e5e[_0x3542('0x9')];agents[_0x204e5e['destuniqueid']][_0x3542('0x1b')]=_0x204e5e['connectedlinename'];agents[_0x204e5e['destuniqueid']][_0x3542('0x22')]=_0x204e5e[_0x3542('0x23')];agents[_0x204e5e[_0x3542('0x14')]][_0x3542('0xa')]=_0x3542('0x2e');_[_0x3542('0x2f')](agents,function(_0xc7f13c,_0x42e87a){if(_0xc7f13c['destuniqueid']!=_0x204e5e[_0x3542('0x14')]&&_0xc7f13c['uniqueid']==_0x204e5e[_0x3542('0x4')]){_0xc7f13c[_0x3542('0x24')]=0x0;_0xc7f13c['holdtime']=_0x204e5e[_0x3542('0x23')];_0xc7f13c[_0x3542('0x1e')]=!![];_0xc7f13c['agentringnoanswerAt']=utils[_0x3542('0x19')]();_0xc7f13c[_0x3542('0xa')]='answered_elsewhere';_0xc7f13c[_0x3542('0x21')]=_0x3542('0x30');_0xc7f13c[_0x3542('0x31')]=_0x204e5e[_0x3542('0x14')];_0xc7f13c[_0x3542('0x32')]=_0x204e5e[_0x3542('0x6')];writeDB(_0xc7f13c);}});}}catch(_0x2b54b9){utils['error'](util['format'](_0x3542('0x2b'),_0x204e5e[_0x3542('0x4')]),_0x2b54b9);}};exports[_0x3542('0xe')]=function(_0xdeebd3){try{if(!_[_0x3542('0x33')](agents[_0xdeebd3['destuniqueid']])){utils[_0x3542('0x16')](util['format'](_0x3542('0x34'),_0xdeebd3[_0x3542('0x4')]),_0xdeebd3);utils[_0x3542('0x1c')](util['format'](_0x3542('0x35'),_0xdeebd3[_0x3542('0x4')],agents[_0xdeebd3['destuniqueid']][_0x3542('0x6')],_0xdeebd3[_0x3542('0x14')]));agents[_0xdeebd3[_0x3542('0x14')]][_0x3542('0xe')]=!![];agents[_0xdeebd3[_0x3542('0x14')]][_0x3542('0x36')]=utils[_0x3542('0x19')]();agents[_0xdeebd3[_0x3542('0x14')]]['talktime']=utils['diffTime'](agents[_0xdeebd3['destuniqueid']][_0x3542('0x36')],agents[_0xdeebd3[_0x3542('0x14')]][_0x3542('0x2d')]);agents[_0xdeebd3[_0x3542('0x14')]][_0x3542('0x21')]=_0xdeebd3[_0x3542('0x21')];agents[_0xdeebd3[_0x3542('0x14')]]['lastevent']=_0x3542('0x37');writeDB(agents[_0xdeebd3[_0x3542('0x14')]]);}}catch(_0x3da43e){utils[_0x3542('0x26')](util['format'](_0x3542('0x34'),_0xdeebd3[_0x3542('0x4')]),_0x3da43e);}};exports['blindtransfer']=function(_0x528f8c){try{if(!_[_0x3542('0x33')](agents[_0x528f8c[_0x3542('0x38')]])){utils[_0x3542('0x16')](util[_0x3542('0x2')](_0x3542('0x39'),_0x528f8c[_0x3542('0x4')]),_0x528f8c);utils[_0x3542('0x1c')](util['format'](_0x3542('0x3a'),_0x528f8c[_0x3542('0x4')],agents[_0x528f8c[_0x3542('0x38')]][_0x3542('0x6')],agents[_0x528f8c[_0x3542('0x38')]][_0x3542('0x4')]));agents[_0x528f8c[_0x3542('0x38')]][_0x3542('0x3b')]=!![];agents[_0x528f8c[_0x3542('0x38')]]['transfertype']='blind';agents[_0x528f8c[_0x3542('0x38')]]['transferexten']=_0x528f8c['extension'];agents[_0x528f8c['transfereruniqueid']][_0x3542('0x3c')]=agents[_0x528f8c[_0x3542('0x38')]][_0x3542('0x4')];}}catch(_0x48cfc4){utils[_0x3542('0x26')](util[_0x3542('0x2')]('[%s][agents][blindtransfer]',_0x528f8c[_0x3542('0x4')]),_0x48cfc4);}};exports[_0x3542('0x3d')]=function(_0x442000){try{utils[_0x3542('0x16')](util[_0x3542('0x2')]('[%s][agents][attendedtransfer]',_0x442000[_0x3542('0x3e')]),_0x442000);if(_0x442000[_0x3542('0x3e')]==_0x442000[_0x3542('0x3f')]){if(!_[_0x3542('0x33')](agents[_0x442000[_0x3542('0x40')]])){utils['info'](util['format'](_0x3542('0x41'),_0x442000[_0x3542('0x3e')],agents[_0x442000[_0x3542('0x40')]]['membername']));agents[_0x442000[_0x3542('0x40')]][_0x3542('0x3b')]=!![];agents[_0x442000[_0x3542('0x40')]][_0x3542('0x42')]=_0x3542('0x43');agents[_0x442000['secondtransfereruniqueid']]['transferexten']=_0x442000[_0x3542('0x44')];agents[_0x442000['secondtransfereruniqueid']][_0x3542('0x3c')]=_0x442000[_0x3542('0x3e')];}if(_0x442000['transfereeuniqueid']&&agents[_0x442000[_0x3542('0x45')]]){agents[_0x442000[_0x3542('0x45')]][_0x3542('0x46')]=0x1;transfers[_0x442000[_0x3542('0x45')]]=_[_0x3542('0x47')](agents[_0x442000['transfereeuniqueid']]);transfers[_0x442000['transfereeuniqueid']][_0x3542('0x8')]=agents[_0x442000['secondtransfereruniqueid']][_0x3542('0x8')];transfers[_0x442000[_0x3542('0x45')]][_0x3542('0x48')]=agents[_0x442000['secondtransfereruniqueid']][_0x3542('0x48')];transfers[_0x442000[_0x3542('0x45')]][_0x3542('0x18')]=utils[_0x3542('0x19')]();transfers[_0x442000[_0x3542('0x45')]][_0x3542('0x2d')]=utils['now']();transfers[_0x442000[_0x3542('0x45')]][_0x3542('0x22')]=0x0;transfers[_0x442000[_0x3542('0x45')]][_0x3542('0x46')]=0x2;}}else if(_0x442000[_0x3542('0x40')]==_0x442000[_0x3542('0x49')]){if(!_['isNil'](agents[_0x442000[_0x3542('0x3e')]])){utils[_0x3542('0x1c')](util[_0x3542('0x2')](_0x3542('0x41'),_0x442000['origtransfereruniqueid'],agents[_0x442000[_0x3542('0x3e')]][_0x3542('0x6')]));agents[_0x442000['origtransfereruniqueid']]['transfer']=!![];agents[_0x442000[_0x3542('0x3e')]]['transfertype']=_0x3542('0x43');agents[_0x442000['origtransfereruniqueid']]['transferexten']=_0x442000[_0x3542('0x4a')];agents[_0x442000[_0x3542('0x3e')]][_0x3542('0x3c')]=_0x442000[_0x3542('0x40')];}if(_0x442000[_0x3542('0x4b')]&&agents[_0x442000[_0x3542('0x4b')]]){agents[_0x442000[_0x3542('0x4b')]]['agententerreason']=0x1;transfers[_0x442000[_0x3542('0x4b')]]=_[_0x3542('0x47')](agents[_0x442000[_0x3542('0x4b')]]);transfers[_0x442000[_0x3542('0x4b')]][_0x3542('0x8')]=agents[_0x442000['origtransfereruniqueid']][_0x3542('0x8')];transfers[_0x442000[_0x3542('0x4b')]][_0x3542('0x48')]=agents[_0x442000[_0x3542('0x3e')]][_0x3542('0x48')];transfers[_0x442000[_0x3542('0x4b')]][_0x3542('0x18')]=utils['now']();transfers[_0x442000[_0x3542('0x4b')]]['agentconnectAt']=utils[_0x3542('0x19')]();transfers[_0x442000[_0x3542('0x4b')]][_0x3542('0x22')]=0x0;transfers[_0x442000[_0x3542('0x4b')]]['agententerreason']=0x2;}}}catch(_0x47c624){utils['error'](util[_0x3542('0x2')](_0x3542('0x4c'),_0x442000[_0x3542('0x3e')]),_0x47c624);}};exports[_0x3542('0x4d')]=function(_0x1ebe3a){try{utils[_0x3542('0x16')](util[_0x3542('0x2')](_0x3542('0x4e'),_0x1ebe3a[_0x3542('0x4')]),_0x1ebe3a);if(agents[_0x1ebe3a['uniqueid']]&&agents[_0x1ebe3a[_0x3542('0x4')]][_0x3542('0x21')]===_0x3542('0x20')){if(_0x1ebe3a[_0x3542('0x4f')]==='21'){agents[_0x1ebe3a[_0x3542('0x4')]]['reason']='rejected';agents[_0x1ebe3a[_0x3542('0x4')]][_0x3542('0xa')]='rejected';}utils[_0x3542('0x1c')](util['format'](_0x3542('0x50'),_0x1ebe3a['uniqueid'],agents[_0x1ebe3a[_0x3542('0x4')]][_0x3542('0x6')],agents[_0x1ebe3a['uniqueid']]['reason'],agents[_0x1ebe3a['uniqueid']][_0x3542('0xa')]));writeDB(agents[_0x1ebe3a['uniqueid']]);var _0x16159f=unanswered[_0x3542('0x51')](_0x1ebe3a['uniqueid']);if(_0x16159f>-0x1){unanswered[_0x3542('0x52')](_0x16159f,0x1);}}if(transfers[_0x1ebe3a[_0x3542('0x4')]]){transfers[_0x1ebe3a[_0x3542('0x4')]]['agentcomplete']=!![];transfers[_0x1ebe3a[_0x3542('0x4')]]['agentcompleteAt']=utils[_0x3542('0x19')]();transfers[_0x1ebe3a['uniqueid']][_0x3542('0x24')]=utils[_0x3542('0x53')](transfers[_0x1ebe3a[_0x3542('0x4')]]['agentcompleteAt'],transfers[_0x1ebe3a[_0x3542('0x4')]][_0x3542('0x2d')]);transfers[_0x1ebe3a[_0x3542('0x4')]][_0x3542('0x21')]='agent';transfers[_0x1ebe3a['uniqueid']][_0x3542('0xa')]=_0x3542('0x37');utils[_0x3542('0x1c')](util[_0x3542('0x2')](_0x3542('0x50'),_0x1ebe3a[_0x3542('0x4')],transfers[_0x1ebe3a[_0x3542('0x4')]][_0x3542('0x6')],transfers[_0x1ebe3a[_0x3542('0x4')]][_0x3542('0x21')],transfers[_0x1ebe3a[_0x3542('0x4')]][_0x3542('0xa')]));writeDB(transfers[_0x1ebe3a[_0x3542('0x4')]],!![]);}if(agents[_0x1ebe3a[_0x3542('0x4')]]&&agents[_0x1ebe3a[_0x3542('0x4')]][_0x3542('0x2d')]){agents[_0x1ebe3a[_0x3542('0x4')]][_0x3542('0xe')]=!![];agents[_0x1ebe3a['uniqueid']][_0x3542('0x36')]=utils[_0x3542('0x19')]();agents[_0x1ebe3a['uniqueid']]['talktime']=utils[_0x3542('0x53')](agents[_0x1ebe3a[_0x3542('0x4')]][_0x3542('0x36')],agents[_0x1ebe3a[_0x3542('0x4')]]['agentconnectAt']);agents[_0x1ebe3a[_0x3542('0x4')]][_0x3542('0x21')]=agents[_0x1ebe3a['uniqueid']][_0x3542('0x3b')]?'transfer':_0x3542('0x54');agents[_0x1ebe3a['uniqueid']][_0x3542('0xa')]=_0x3542('0x37');utils[_0x3542('0x1c')](util[_0x3542('0x2')](_0x3542('0x50'),_0x1ebe3a[_0x3542('0x4')],agents[_0x1ebe3a[_0x3542('0x4')]]['membername'],agents[_0x1ebe3a[_0x3542('0x4')]]['reason'],agents[_0x1ebe3a['uniqueid']][_0x3542('0xa')]));writeDB(agents[_0x1ebe3a[_0x3542('0x4')]]);}}catch(_0x2c6f2b){utils[_0x3542('0x26')](util['format'](_0x3542('0x4e'),_0x1ebe3a[_0x3542('0x4')]),_0x2c6f2b);}};
\ No newline at end of file
+var _0xc788=['transfereeuniqueid','clone','calleridname','agententerreason','secondtransfererexten','transfertargetuniqueid','hangup','[%s][agents][hangup]','cause','rejected','[%s][agents][hangup]\x20agent:%s\x20reason:%s\x20lastevent:%s','indexOf','splice','agent','lodash','util','./utils','info','format','[%s][agents][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s','uniqueid','channel','membername','interface','calleridnum','connectedlinenum','lastevent','getVoiceQueueByName','queue','then','type','agentcomplete','acwtime','agentacw','request','CreateVoiceAgentReport','agentcalled','debug','[%s][agents][agentcalled]','destuniqueid','agentcalledAt','now','called','connectedlinename','[%s][agents][agentcalled]\x20agent:%s\x20destuniqueid:%s\x20lastevent:called','error','[%s][agents][agentringnoanswer]','[%s][agents][agentringnoanswer]\x20agent:%s\x20destuniqueid:%s\x20lastevent:timeout','agentringnoanswer','timeout','holdtime','ringtime','push','queuecallerabandon','forIn','includes','[%s][agents][queuecallerabandon]','[%s][agents][queuecallerabandon]\x20agent:%s\x20destuniqueid:%s\x20lastevent:abandoned','agentringnoanswerAt','abandoned','reason','talktime','agentconnect','[%s][agents][agentconnect]','agentconnectAt','connect','answered_elsewhere','answeredelsewheredestinationuniqueid','answeredelsewheremembername','[%s][agents][agentcomplete]','[%s][agents][agentcomplete]\x20agent:%s\x20destuniqueid:%s\x20lastevent:complete','agentcompleteAt','diffTime','complete','blindtransfer','isNil','transfereruniqueid','[%s][agents][blindtransfer]','[%s][agents][blindtransfer]\x20agent:%s\x20transferuniqueid:%s','transfer','transfertype','transferexten','extension','transferuniqueid','attendedtransfer','[%s][agents][attendedtransfer]','origtransfereruniqueid','secondtransfereruniqueid','[%s][agents][attendedtransfer]\x20agent:%s','ATTENDED','origtransfererexten'];(function(_0x42d4f6,_0x4ba5d6){var _0xcdf6a6=function(_0x25bdf9){while(--_0x25bdf9){_0x42d4f6['push'](_0x42d4f6['shift']());}};_0xcdf6a6(++_0x4ba5d6);}(_0xc788,0xc4));var _0x8c78=function(_0x4812e0,_0x2ccf3c){_0x4812e0=_0x4812e0-0x0;var _0x252e0f=_0xc788[_0x4812e0];return _0x252e0f;};'use strict';var _=require(_0x8c78('0x0'));var util=require(_0x8c78('0x1'));var utils=require(_0x8c78('0x2'));var agents={};var transfers={};var unanswered=[];function writeDB(_0x4ecb26,_0x4ce125){utils[_0x8c78('0x3')](util[_0x8c78('0x4')](_0x8c78('0x5'),_0x4ecb26[_0x8c78('0x6')],_0x4ecb26[_0x8c78('0x7')],_0x4ecb26['queue'],_0x4ecb26[_0x8c78('0x8')],_0x4ecb26[_0x8c78('0x9')],_0x4ecb26[_0x8c78('0xa')],_0x4ecb26[_0x8c78('0xb')],_0x4ecb26[_0x8c78('0xc')]));if(_0x4ecb26['queue']){utils[_0x8c78('0xd')](_0x4ecb26[_0x8c78('0xe')])[_0x8c78('0xf')](function(_0x39c0e5){if(_0x39c0e5){_0x4ecb26[_0x8c78('0x10')]=_0x39c0e5[_0x8c78('0x10')];_0x4ecb26['agentacw']=_0x4ecb26[_0x8c78('0x11')]?_0x39c0e5['acw']:![];_0x4ecb26[_0x8c78('0x12')]=_0x4ecb26[_0x8c78('0x13')]?_0x39c0e5['acwTimeout']:0x0;}utils[_0x8c78('0x14')](_0x8c78('0x15'),_0x4ecb26);});}else{utils['request'](_0x8c78('0x15'),_0x4ecb26);}if(_0x4ce125){delete transfers[_0x4ecb26['uniqueid']];}else{delete agents[_0x4ecb26['destuniqueid']];}}exports[_0x8c78('0x16')]=function(_0x1b1d0e){try{utils[_0x8c78('0x17')](util[_0x8c78('0x4')](_0x8c78('0x18'),_0x1b1d0e[_0x8c78('0x6')]),_0x1b1d0e);agents[_0x1b1d0e[_0x8c78('0x19')]]=_0x1b1d0e;agents[_0x1b1d0e[_0x8c78('0x19')]][_0x8c78('0x1a')]=utils[_0x8c78('0x1b')]();agents[_0x1b1d0e['destuniqueid']][_0x8c78('0xc')]=_0x8c78('0x1c');agents[_0x1b1d0e['destuniqueid']][_0x8c78('0xb')]=null;agents[_0x1b1d0e[_0x8c78('0x19')]][_0x8c78('0x1d')]=null;utils[_0x8c78('0x3')](util[_0x8c78('0x4')](_0x8c78('0x1e'),_0x1b1d0e['uniqueid'],agents[_0x1b1d0e['destuniqueid']][_0x8c78('0x8')],_0x1b1d0e['destuniqueid']));}catch(_0x56801a){utils[_0x8c78('0x1f')](util['format'](_0x8c78('0x18'),_0x1b1d0e[_0x8c78('0x6')]),_0x56801a);}};exports['agentringnoanswer']=function(_0x6c9a12){try{if(!_['isNil'](agents[_0x6c9a12[_0x8c78('0x19')]])){utils[_0x8c78('0x17')](util['format'](_0x8c78('0x20'),_0x6c9a12[_0x8c78('0x6')]),_0x6c9a12);utils['info'](util[_0x8c78('0x4')](_0x8c78('0x21'),_0x6c9a12[_0x8c78('0x6')],agents[_0x6c9a12[_0x8c78('0x19')]][_0x8c78('0x8')],_0x6c9a12[_0x8c78('0x19')]));agents[_0x6c9a12[_0x8c78('0x19')]][_0x8c78('0x22')]=!![];agents[_0x6c9a12[_0x8c78('0x19')]]['agentringnoanswerAt']=utils[_0x8c78('0x1b')]();agents[_0x6c9a12[_0x8c78('0x19')]][_0x8c78('0xc')]='timeout';agents[_0x6c9a12[_0x8c78('0x19')]]['reason']=_0x8c78('0x23');agents[_0x6c9a12[_0x8c78('0x19')]][_0x8c78('0x24')]=_0x6c9a12['ringtime']?parseInt(_0x6c9a12[_0x8c78('0x25')])/0x3e8:0x0;agents[_0x6c9a12[_0x8c78('0x19')]]['talktime']=0x0;unanswered[_0x8c78('0x26')](_0x6c9a12[_0x8c78('0x19')]);}}catch(_0x394c1d){utils[_0x8c78('0x1f')](util[_0x8c78('0x4')](_0x8c78('0x20'),_0x6c9a12['uniqueid']),_0x394c1d);}};exports[_0x8c78('0x27')]=function(_0x51add6){try{_[_0x8c78('0x28')](agents,function(_0x17f4c8,_0xb69c52){if(_0x17f4c8['uniqueid']==_0x51add6[_0x8c78('0x6')]&&!_[_0x8c78('0x29')](unanswered,_0x17f4c8['destuniqueid'])){utils[_0x8c78('0x17')](util[_0x8c78('0x4')](_0x8c78('0x2a'),_0x51add6['uniqueid']),_0x51add6);utils[_0x8c78('0x3')](util[_0x8c78('0x4')](_0x8c78('0x2b'),_0x51add6['uniqueid'],_0x17f4c8[_0x8c78('0x8')],_0x17f4c8[_0x8c78('0x19')]));_0x17f4c8['agentringnoanswer']=!![];_0x17f4c8[_0x8c78('0x2c')]=utils[_0x8c78('0x1b')]();_0x17f4c8[_0x8c78('0xc')]=_0x8c78('0x2d');_0x17f4c8[_0x8c78('0x2e')]=_0x8c78('0x2d');_0x17f4c8[_0x8c78('0x24')]=_0x51add6[_0x8c78('0x24')];_0x17f4c8[_0x8c78('0x2f')]=0x0;writeDB(_0x17f4c8);}});}catch(_0x15a868){utils['error'](util[_0x8c78('0x4')](_0x8c78('0x2a'),_0x51add6[_0x8c78('0x6')]),_0x15a868);}};exports[_0x8c78('0x30')]=function(_0x34481a){try{if(agents[_0x34481a['destuniqueid']]){utils[_0x8c78('0x17')](util[_0x8c78('0x4')](_0x8c78('0x31'),_0x34481a['uniqueid']),_0x34481a);utils[_0x8c78('0x3')](util[_0x8c78('0x4')]('[%s][agents][agentconnect]\x20agent:%s\x20destuniqueid:%s\x20lastevent:connect',_0x34481a[_0x8c78('0x6')],agents[_0x34481a['destuniqueid']][_0x8c78('0x8')],_0x34481a[_0x8c78('0x19')]));agents[_0x34481a[_0x8c78('0x19')]][_0x8c78('0x32')]=utils['now']();agents[_0x34481a[_0x8c78('0x19')]]['connectedlinenum']=_0x34481a[_0x8c78('0xb')];agents[_0x34481a[_0x8c78('0x19')]][_0x8c78('0x1d')]=_0x34481a['connectedlinename'];agents[_0x34481a['destuniqueid']][_0x8c78('0x24')]=_0x34481a[_0x8c78('0x25')];agents[_0x34481a[_0x8c78('0x19')]][_0x8c78('0xc')]=_0x8c78('0x33');_[_0x8c78('0x28')](agents,function(_0x326b34,_0x314679){if(_0x326b34[_0x8c78('0x19')]!=_0x34481a[_0x8c78('0x19')]&&_0x326b34[_0x8c78('0x6')]==_0x34481a[_0x8c78('0x6')]){_0x326b34[_0x8c78('0x2f')]=0x0;_0x326b34['holdtime']=_0x34481a[_0x8c78('0x25')];_0x326b34[_0x8c78('0x22')]=!![];_0x326b34['agentringnoanswerAt']=utils['now']();_0x326b34[_0x8c78('0xc')]=_0x8c78('0x34');_0x326b34['reason']=_0x8c78('0x34');_0x326b34[_0x8c78('0x35')]=_0x34481a['destuniqueid'];_0x326b34[_0x8c78('0x36')]=_0x34481a[_0x8c78('0x8')];writeDB(_0x326b34);}});}}catch(_0x57e2c7){utils[_0x8c78('0x1f')](util[_0x8c78('0x4')](_0x8c78('0x31'),_0x34481a[_0x8c78('0x6')]),_0x57e2c7);}};exports[_0x8c78('0x11')]=function(_0x4e4880){try{if(!_['isNil'](agents[_0x4e4880[_0x8c78('0x19')]])){utils[_0x8c78('0x17')](util[_0x8c78('0x4')](_0x8c78('0x37'),_0x4e4880[_0x8c78('0x6')]),_0x4e4880);utils[_0x8c78('0x3')](util[_0x8c78('0x4')](_0x8c78('0x38'),_0x4e4880[_0x8c78('0x6')],agents[_0x4e4880[_0x8c78('0x19')]][_0x8c78('0x8')],_0x4e4880['destuniqueid']));agents[_0x4e4880[_0x8c78('0x19')]][_0x8c78('0x11')]=!![];agents[_0x4e4880[_0x8c78('0x19')]][_0x8c78('0x39')]=utils[_0x8c78('0x1b')]();agents[_0x4e4880['destuniqueid']][_0x8c78('0x2f')]=utils[_0x8c78('0x3a')](agents[_0x4e4880[_0x8c78('0x19')]][_0x8c78('0x39')],agents[_0x4e4880[_0x8c78('0x19')]]['agentconnectAt']);agents[_0x4e4880[_0x8c78('0x19')]]['reason']=_0x4e4880['reason'];agents[_0x4e4880[_0x8c78('0x19')]][_0x8c78('0xc')]=_0x8c78('0x3b');writeDB(agents[_0x4e4880['destuniqueid']]);}}catch(_0x1d78a0){utils[_0x8c78('0x1f')](util[_0x8c78('0x4')](_0x8c78('0x37'),_0x4e4880[_0x8c78('0x6')]),_0x1d78a0);}};exports[_0x8c78('0x3c')]=function(_0x26103c){try{if(!_[_0x8c78('0x3d')](agents[_0x26103c[_0x8c78('0x3e')]])){utils['debug'](util[_0x8c78('0x4')](_0x8c78('0x3f'),_0x26103c[_0x8c78('0x6')]),_0x26103c);utils[_0x8c78('0x3')](util['format'](_0x8c78('0x40'),_0x26103c[_0x8c78('0x6')],agents[_0x26103c[_0x8c78('0x3e')]][_0x8c78('0x8')],agents[_0x26103c['transfereruniqueid']][_0x8c78('0x6')]));agents[_0x26103c[_0x8c78('0x3e')]][_0x8c78('0x41')]=!![];agents[_0x26103c['transfereruniqueid']][_0x8c78('0x42')]='blind';agents[_0x26103c[_0x8c78('0x3e')]][_0x8c78('0x43')]=_0x26103c[_0x8c78('0x44')];agents[_0x26103c[_0x8c78('0x3e')]][_0x8c78('0x45')]=agents[_0x26103c[_0x8c78('0x3e')]][_0x8c78('0x6')];}}catch(_0x38fec1){utils[_0x8c78('0x1f')](util[_0x8c78('0x4')](_0x8c78('0x3f'),_0x26103c[_0x8c78('0x6')]),_0x38fec1);}};exports[_0x8c78('0x46')]=function(_0x18d896){try{utils['debug'](util[_0x8c78('0x4')](_0x8c78('0x47'),_0x18d896[_0x8c78('0x48')]),_0x18d896);if(_0x18d896[_0x8c78('0x48')]==_0x18d896['origtransfererlinkedid']){if(!_[_0x8c78('0x3d')](agents[_0x18d896[_0x8c78('0x49')]])){utils[_0x8c78('0x3')](util[_0x8c78('0x4')](_0x8c78('0x4a'),_0x18d896[_0x8c78('0x48')],agents[_0x18d896['secondtransfereruniqueid']][_0x8c78('0x8')]));agents[_0x18d896[_0x8c78('0x49')]]['transfer']=!![];agents[_0x18d896[_0x8c78('0x49')]]['transfertype']=_0x8c78('0x4b');agents[_0x18d896[_0x8c78('0x49')]][_0x8c78('0x43')]=_0x18d896[_0x8c78('0x4c')];agents[_0x18d896[_0x8c78('0x49')]][_0x8c78('0x45')]=_0x18d896[_0x8c78('0x48')];}if(_0x18d896['transfereeuniqueid']&&agents[_0x18d896[_0x8c78('0x4d')]]){agents[_0x18d896[_0x8c78('0x4d')]]['agententerreason']=0x1;transfers[_0x18d896[_0x8c78('0x4d')]]=_[_0x8c78('0x4e')](agents[_0x18d896['transfereeuniqueid']]);transfers[_0x18d896[_0x8c78('0x4d')]][_0x8c78('0xa')]=agents[_0x18d896[_0x8c78('0x49')]][_0x8c78('0xa')];transfers[_0x18d896[_0x8c78('0x4d')]][_0x8c78('0x4f')]=agents[_0x18d896[_0x8c78('0x49')]][_0x8c78('0x4f')];transfers[_0x18d896[_0x8c78('0x4d')]][_0x8c78('0x1a')]=utils[_0x8c78('0x1b')]();transfers[_0x18d896[_0x8c78('0x4d')]][_0x8c78('0x32')]=utils[_0x8c78('0x1b')]();transfers[_0x18d896['transfereeuniqueid']][_0x8c78('0x24')]=0x0;transfers[_0x18d896['transfereeuniqueid']][_0x8c78('0x50')]=0x2;}}else if(_0x18d896['secondtransfereruniqueid']==_0x18d896['secondtransfererlinkedid']){if(!_['isNil'](agents[_0x18d896[_0x8c78('0x48')]])){utils['info'](util['format']('[%s][agents][attendedtransfer]\x20agent:%s',_0x18d896[_0x8c78('0x48')],agents[_0x18d896[_0x8c78('0x48')]][_0x8c78('0x8')]));agents[_0x18d896[_0x8c78('0x48')]]['transfer']=!![];agents[_0x18d896[_0x8c78('0x48')]][_0x8c78('0x42')]=_0x8c78('0x4b');agents[_0x18d896[_0x8c78('0x48')]][_0x8c78('0x43')]=_0x18d896[_0x8c78('0x51')];agents[_0x18d896[_0x8c78('0x48')]][_0x8c78('0x45')]=_0x18d896[_0x8c78('0x49')];}if(_0x18d896[_0x8c78('0x52')]&&agents[_0x18d896[_0x8c78('0x52')]]){agents[_0x18d896[_0x8c78('0x52')]][_0x8c78('0x50')]=0x1;transfers[_0x18d896[_0x8c78('0x52')]]=_['clone'](agents[_0x18d896[_0x8c78('0x52')]]);transfers[_0x18d896['transfertargetuniqueid']][_0x8c78('0xa')]=agents[_0x18d896[_0x8c78('0x48')]][_0x8c78('0xa')];transfers[_0x18d896['transfertargetuniqueid']][_0x8c78('0x4f')]=agents[_0x18d896[_0x8c78('0x48')]][_0x8c78('0x4f')];transfers[_0x18d896['transfertargetuniqueid']][_0x8c78('0x1a')]=utils[_0x8c78('0x1b')]();transfers[_0x18d896['transfertargetuniqueid']][_0x8c78('0x32')]=utils[_0x8c78('0x1b')]();transfers[_0x18d896[_0x8c78('0x52')]]['holdtime']=0x0;transfers[_0x18d896[_0x8c78('0x52')]][_0x8c78('0x50')]=0x2;}}}catch(_0x1015e8){utils[_0x8c78('0x1f')](util[_0x8c78('0x4')](_0x8c78('0x47'),_0x18d896[_0x8c78('0x48')]),_0x1015e8);}};exports[_0x8c78('0x53')]=function(_0x240f1e){try{utils['debug'](util[_0x8c78('0x4')](_0x8c78('0x54'),_0x240f1e[_0x8c78('0x6')]),_0x240f1e);if(agents[_0x240f1e[_0x8c78('0x6')]]&&agents[_0x240f1e[_0x8c78('0x6')]][_0x8c78('0x2e')]===_0x8c78('0x23')){if(_0x240f1e[_0x8c78('0x55')]==='21'){agents[_0x240f1e[_0x8c78('0x6')]]['reason']=_0x8c78('0x56');agents[_0x240f1e[_0x8c78('0x6')]]['lastevent']='rejected';}utils[_0x8c78('0x3')](util['format'](_0x8c78('0x57'),_0x240f1e[_0x8c78('0x6')],agents[_0x240f1e[_0x8c78('0x6')]][_0x8c78('0x8')],agents[_0x240f1e[_0x8c78('0x6')]][_0x8c78('0x2e')],agents[_0x240f1e['uniqueid']]['lastevent']));writeDB(agents[_0x240f1e[_0x8c78('0x6')]]);var _0x2d385f=unanswered[_0x8c78('0x58')](_0x240f1e[_0x8c78('0x6')]);if(_0x2d385f>-0x1){unanswered[_0x8c78('0x59')](_0x2d385f,0x1);}}if(transfers[_0x240f1e['uniqueid']]){transfers[_0x240f1e[_0x8c78('0x6')]][_0x8c78('0x11')]=!![];transfers[_0x240f1e[_0x8c78('0x6')]][_0x8c78('0x39')]=utils[_0x8c78('0x1b')]();transfers[_0x240f1e[_0x8c78('0x6')]]['talktime']=utils[_0x8c78('0x3a')](transfers[_0x240f1e[_0x8c78('0x6')]]['agentcompleteAt'],transfers[_0x240f1e[_0x8c78('0x6')]][_0x8c78('0x32')]);transfers[_0x240f1e[_0x8c78('0x6')]][_0x8c78('0x2e')]=_0x8c78('0x5a');transfers[_0x240f1e[_0x8c78('0x6')]][_0x8c78('0xc')]=_0x8c78('0x3b');utils[_0x8c78('0x3')](util[_0x8c78('0x4')](_0x8c78('0x57'),_0x240f1e[_0x8c78('0x6')],transfers[_0x240f1e[_0x8c78('0x6')]][_0x8c78('0x8')],transfers[_0x240f1e[_0x8c78('0x6')]][_0x8c78('0x2e')],transfers[_0x240f1e[_0x8c78('0x6')]]['lastevent']));writeDB(transfers[_0x240f1e[_0x8c78('0x6')]],!![]);}if(agents[_0x240f1e['uniqueid']]&&agents[_0x240f1e['uniqueid']][_0x8c78('0x32')]){agents[_0x240f1e[_0x8c78('0x6')]][_0x8c78('0x11')]=!![];agents[_0x240f1e[_0x8c78('0x6')]]['agentcompleteAt']=utils[_0x8c78('0x1b')]();agents[_0x240f1e[_0x8c78('0x6')]][_0x8c78('0x2f')]=utils['diffTime'](agents[_0x240f1e[_0x8c78('0x6')]][_0x8c78('0x39')],agents[_0x240f1e[_0x8c78('0x6')]][_0x8c78('0x32')]);agents[_0x240f1e['uniqueid']][_0x8c78('0x2e')]=agents[_0x240f1e[_0x8c78('0x6')]]['transfer']?'transfer':'agent';agents[_0x240f1e[_0x8c78('0x6')]][_0x8c78('0xc')]=_0x8c78('0x3b');utils[_0x8c78('0x3')](util['format'](_0x8c78('0x57'),_0x240f1e['uniqueid'],agents[_0x240f1e[_0x8c78('0x6')]][_0x8c78('0x8')],agents[_0x240f1e[_0x8c78('0x6')]][_0x8c78('0x2e')],agents[_0x240f1e[_0x8c78('0x6')]][_0x8c78('0xc')]));writeDB(agents[_0x240f1e['uniqueid']]);}}catch(_0x5c67c9){utils['error'](util[_0x8c78('0x4')](_0x8c78('0x54'),_0x240f1e['uniqueid']),_0x5c67c9);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe50a=['[%s][calls][newchannel]\x20context:%s\x20exten:%s','context','exten','now','DOCUMENTATION','error','newstate','[%s][calls][newstate]','isNil','[%s][calls][newstate]\x20context:%s\x20channel:%s','systemanswertime','transfer','[%s][calls][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s','destinationchannel','answertime','toNumber','channelstate','hangup','[%s][calls][hangup]','callerid','calleridname','cause-txt','duration','endtime','diffTime','attendedtransfer','localtwolinkedid','[%s][calls][attendedtransfer]','origtransfereruniqueid','transfereechannel','[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s','secondtransfererchannel','userfield','_attended','transfertargetchannel','origtransfererchannel','[%s][calls][musiconholdstart]','musiconholdstartAt','[%s][calls][musiconholdstart]\x20musiconholdstartAt:%s','musiconholdstop','[%s][calls][musiconholdstop]','mohtime','[%s][calls][musiconholdstop]\x20mohtime:%s','varset','xmd-originatecalleridnum','[%s][calls][varset]\x20variable:xmd-originatecalleridnum\x20value:%s','value','xmd-phone','[%s][calls][varset]\x20variable:xmd-phone\x20value:%s','destination','\x22\x20<','variable','xmd-callerid-preview','xmd-callerid','[%s][calls][varset]\x20variable:%s\x20value:%s','xmd-queue','xmcs-queue','lastapplication','Queue','xmd-contactid','[%s][calls][varset]\x20variable:xmd-contactid\x20value:%s','ContactId','xmd-cdrtype','[%s][calls][varset]\x20variable:xmd-cdrtype\x20value:%s','type','[%s][calls][varset]\x20variable:outboundrouteid\x20value:%s','routeid','sipcallid','[%s][calls][varset]\x20variable:sipcallid\x20value:%s','[%s][calls][varset]','[%s][calls][newexten]','[%s][calls][newexten]\x20application:%s\x20appdata:%s','application','appdata','toLowerCase','set','startsWith','cdr','split','substring','lastIndexOf','includes','execif','gotoif','lodash','util','./utils','./transfers.controller','FAILED','NO\x20ANSWER','ANSWERED','BUSY','blinds','uniqueid','info','format','[%s][calls][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s','channel','queue','membername','interface','calleridnum','connectedlinenum','lastevent','accountcode','then','UserId','request','CreateVoiceCallReport','debug','[%s][calls][newchannel]','linkedid'];(function(_0x417ef3,_0x5bbbea){var _0x52d552=function(_0x559f7){while(--_0x559f7){_0x417ef3['push'](_0x417ef3['shift']());}};_0x52d552(++_0x5bbbea);}(_0xe50a,0x134));var _0xae50=function(_0x298ed3,_0x4ab5e1){_0x298ed3=_0x298ed3-0x0;var _0x5aad28=_0xe50a[_0x298ed3];return _0x5aad28;};'use strict';var _=require(_0xae50('0x0'));var util=require(_0xae50('0x1'));var utils=require(_0xae50('0x2'));var transfers=require(_0xae50('0x3'));var dispositions=['NO\x20ANSWER',_0xae50('0x4'),_0xae50('0x4'),'NO\x20ANSWER',_0xae50('0x5'),'NO\x20ANSWER',_0xae50('0x6'),_0xae50('0x7'),_0xae50('0x4'),_0xae50('0x4'),_0xae50('0x4')];var channels={};function writeDB(_0x128f6e){var _0x33e52d;if(transfers[_0xae50('0x8')][_0x128f6e[_0xae50('0x9')]]){_0x33e52d=_0x128f6e[_0xae50('0x9')];_0x128f6e[_0xae50('0x9')]=transfers['blinds'][_0x128f6e[_0xae50('0x9')]]['transfereeuniqueid'];}utils[_0xae50('0xa')](util[_0xae50('0xb')](_0xae50('0xc'),_0x128f6e[_0xae50('0x9')],_0x128f6e[_0xae50('0xd')],_0x128f6e[_0xae50('0xe')],_0x128f6e[_0xae50('0xf')],_0x128f6e[_0xae50('0x10')],_0x128f6e[_0xae50('0x11')],_0x128f6e[_0xae50('0x12')],_0x128f6e[_0xae50('0x13')]));if(_0x128f6e[_0xae50('0x14')]){utils['getUserByInternal'](_0x128f6e[_0xae50('0x14')])[_0xae50('0x15')](function(_0x12ec7b){if(_0x12ec7b){_0x128f6e[_0xae50('0x16')]=_0x12ec7b['id'];}utils[_0xae50('0x17')]('CreateVoiceCallReport',_0x128f6e);});}else{utils[_0xae50('0x17')](_0xae50('0x18'),_0x128f6e);}if(channels[_0x128f6e['uniqueid']]){delete channels[_0x128f6e['uniqueid']];}else if(_0x33e52d&&channels[_0x33e52d]){delete transfers[_0xae50('0x8')][_0x33e52d];delete channels[_0x33e52d];}}exports['newchannel']=function(_0x48c232){try{utils[_0xae50('0x19')](util[_0xae50('0xb')](_0xae50('0x1a'),_0x48c232['uniqueid']),_0x48c232);if(_0x48c232[_0xae50('0x9')]==_0x48c232[_0xae50('0x1b')]&&_0x48c232[_0xae50('0xd')]!='OutgoingSpoolFailed'){utils[_0xae50('0xa')](util[_0xae50('0xb')](_0xae50('0x1c'),_0x48c232[_0xae50('0x9')],_0x48c232[_0xae50('0x1d')],_0x48c232['exten']));channels[_0x48c232[_0xae50('0x9')]]={'uniqueid':_0x48c232[_0xae50('0x9')],'accountcode':_0x48c232[_0xae50('0x14')],'source':_0x48c232[_0xae50('0x11')],'destination':_0x48c232[_0xae50('0x1e')],'destinationcontext':_0x48c232['context'],'channel':_0x48c232['channel'],'starttime':utils[_0xae50('0x1f')](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':_0xae50('0x5'),'amaflags':_0xae50('0x20')};}}catch(_0x4fb25f){utils[_0xae50('0x21')](util[_0xae50('0xb')](_0xae50('0x1a'),_0x48c232[_0xae50('0x9')]),_0x4fb25f);}};exports[_0xae50('0x22')]=function(_0x5a4c2a){try{utils[_0xae50('0x19')](util['format'](_0xae50('0x23'),_0x5a4c2a[_0xae50('0x9')]),_0x5a4c2a);if(!_[_0xae50('0x24')](channels[_0x5a4c2a[_0xae50('0x9')]])&&_0x5a4c2a['channelstate']==0x6){utils[_0xae50('0xa')](util[_0xae50('0xb')](_0xae50('0x25'),_0x5a4c2a[_0xae50('0x9')],_0x5a4c2a['context'],_0x5a4c2a[_0xae50('0xd')]));if(_[_0xae50('0x24')](channels[_0x5a4c2a[_0xae50('0x9')]][_0xae50('0x26')])){channels[_0x5a4c2a[_0xae50('0x9')]][_0xae50('0x26')]=utils[_0xae50('0x1f')]();}}else if(!_['isNil'](channels[_0x5a4c2a[_0xae50('0x1b')]])&&_0x5a4c2a['channelstate']==0x6&&_0x5a4c2a[_0xae50('0x1d')]!=_0xae50('0x27')){utils[_0xae50('0xa')](util['format'](_0xae50('0x28'),_0x5a4c2a[_0xae50('0x9')],_0x5a4c2a[_0xae50('0x1b')],_0x5a4c2a[_0xae50('0x1d')],_0x5a4c2a[_0xae50('0xd')]));channels[_0x5a4c2a[_0xae50('0x1b')]]['accountcode']=_0x5a4c2a[_0xae50('0x14')];channels[_0x5a4c2a['linkedid']][_0xae50('0x29')]=_0x5a4c2a['channel'];if(_[_0xae50('0x24')](channels[_0x5a4c2a[_0xae50('0x1b')]][_0xae50('0x2a')])){channels[_0x5a4c2a['linkedid']][_0xae50('0x2a')]=utils[_0xae50('0x1f')]();}channels[_0x5a4c2a[_0xae50('0x1b')]]['disposition']=dispositions[_[_0xae50('0x2b')](_0x5a4c2a[_0xae50('0x2c')])]||_0xae50('0x6');}}catch(_0x9e8ceb){utils[_0xae50('0x21')](util['format'](_0xae50('0x23'),_0x5a4c2a[_0xae50('0x9')]),_0x9e8ceb);}};exports[_0xae50('0x2d')]=function(_0x432f39){try{if(!_['isNil'](channels[_0x432f39[_0xae50('0x9')]])){utils[_0xae50('0x19')](util['format'](_0xae50('0x2e'),_0x432f39[_0xae50('0x9')]),_0x432f39);if(_[_0xae50('0x24')](channels[_0x432f39['uniqueid']]['callerid'])){channels[_0x432f39[_0xae50('0x9')]][_0xae50('0x2f')]=_0x432f39[_0xae50('0x30')]+'\x20<'+_0x432f39[_0xae50('0x11')]+'>';}utils[_0xae50('0xa')](util[_0xae50('0xb')]('[%s][calls][hangup]\x20callerid:%s\x20reason:%s',_0x432f39[_0xae50('0x9')],channels[_0x432f39['uniqueid']][_0xae50('0x2f')],_0x432f39[_0xae50('0x31')]));channels[_0x432f39['uniqueid']]['endtime']=utils[_0xae50('0x1f')]();channels[_0x432f39['uniqueid']][_0xae50('0x32')]=utils['diffTime'](channels[_0x432f39['uniqueid']][_0xae50('0x33')],channels[_0x432f39[_0xae50('0x9')]]['starttime']);channels[_0x432f39[_0xae50('0x9')]]['billableseconds']=channels[_0x432f39['uniqueid']][_0xae50('0x2a')]?utils[_0xae50('0x34')](channels[_0x432f39[_0xae50('0x9')]][_0xae50('0x33')],channels[_0x432f39[_0xae50('0x9')]][_0xae50('0x2a')]):0x0;writeDB(channels[_0x432f39['uniqueid']]);}}catch(_0x5b19ba){utils['error'](util['format'](_0xae50('0x2e'),_0x432f39[_0xae50('0x9')]),_0x5b19ba);}};exports[_0xae50('0x35')]=function(_0x1fb0b2){try{if(!_[_0xae50('0x24')](channels[_0x1fb0b2[_0xae50('0x36')]])){utils[_0xae50('0x19')](util['format'](_0xae50('0x37'),_0x1fb0b2[_0xae50('0x38')]),_0x1fb0b2);if(channels[_0x1fb0b2[_0xae50('0x36')]][_0xae50('0xd')]==_0x1fb0b2[_0xae50('0x39')]){utils[_0xae50('0xa')](util[_0xae50('0xb')](_0xae50('0x3a'),_0x1fb0b2[_0xae50('0x38')],_0x1fb0b2[_0xae50('0x36')],_0x1fb0b2[_0xae50('0x3b')]));channels[_0x1fb0b2[_0xae50('0x36')]][_0xae50('0x29')]=_0x1fb0b2[_0xae50('0x3b')];channels[_0x1fb0b2['localtwolinkedid']][_0xae50('0x3c')]=_0xae50('0x3d');}else if(channels[_0x1fb0b2[_0xae50('0x36')]][_0xae50('0xd')]=_0x1fb0b2[_0xae50('0x3e')]){utils[_0xae50('0xa')](util[_0xae50('0xb')]('[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s',_0x1fb0b2[_0xae50('0x38')],_0x1fb0b2[_0xae50('0x36')],_0x1fb0b2['origtransfererchannel']));channels[_0x1fb0b2['localtwolinkedid']][_0xae50('0x29')]=_0x1fb0b2[_0xae50('0x3f')];channels[_0x1fb0b2['localtwolinkedid']][_0xae50('0x3c')]=_0xae50('0x3d');}}}catch(_0x2f9a8e){utils['error'](util['format'](_0xae50('0x37'),_0x1fb0b2[_0xae50('0x38')]),_0x2f9a8e);}};exports['musiconholdstart']=function(_0x184a11){try{if(!_[_0xae50('0x24')](channels[_0x184a11[_0xae50('0x9')]])){utils[_0xae50('0x19')](util[_0xae50('0xb')](_0xae50('0x40'),_0x184a11[_0xae50('0x9')]),_0x184a11);channels[_0x184a11[_0xae50('0x9')]][_0xae50('0x41')]=utils['now']();utils[_0xae50('0xa')](util[_0xae50('0xb')](_0xae50('0x42'),_0x184a11['uniqueid'],channels[_0x184a11['uniqueid']][_0xae50('0x41')]));}}catch(_0x309d57){utils[_0xae50('0x21')](util[_0xae50('0xb')](_0xae50('0x40'),_0x184a11[_0xae50('0x9')]),_0x309d57);}};exports[_0xae50('0x43')]=function(_0x38d8d0){try{if(!_[_0xae50('0x24')](channels[_0x38d8d0[_0xae50('0x9')]])){utils[_0xae50('0x19')](util['format'](_0xae50('0x44'),_0x38d8d0[_0xae50('0x9')]),_0x38d8d0);if(!_['isNil'](channels[_0x38d8d0['uniqueid']][_0xae50('0x41')])){channels[_0x38d8d0[_0xae50('0x9')]][_0xae50('0x45')]+=utils[_0xae50('0x34')](utils['now'](),channels[_0x38d8d0[_0xae50('0x9')]]['musiconholdstartAt']);utils[_0xae50('0xa')](util[_0xae50('0xb')](_0xae50('0x46'),_0x38d8d0[_0xae50('0x9')],channels[_0x38d8d0[_0xae50('0x9')]]['mohtime']));delete channels[_0x38d8d0[_0xae50('0x9')]]['musiconholdstartAt'];}}}catch(_0x1ecb3e){utils[_0xae50('0x21')](util[_0xae50('0xb')](_0xae50('0x44'),_0x38d8d0[_0xae50('0x9')]),_0x1ecb3e);}};exports[_0xae50('0x47')]=function(_0x2d141c){try{if(!_[_0xae50('0x24')](channels[_0x2d141c[_0xae50('0x9')]])){utils['debug'](util[_0xae50('0xb')]('[%s][calls][varset]',_0x2d141c[_0xae50('0x9')]),_0x2d141c);if(!_[_0xae50('0x24')](_0x2d141c['variable'][_0xae50('0x48')])){utils[_0xae50('0xa')](util['format'](_0xae50('0x49'),_0x2d141c[_0xae50('0x9')],_0x2d141c[_0xae50('0x4a')]));channels[_0x2d141c[_0xae50('0x9')]]['source']=_0x2d141c[_0xae50('0x4a')];}if(!_['isNil'](_0x2d141c['variable'][_0xae50('0x4b')])){utils[_0xae50('0xa')](util[_0xae50('0xb')](_0xae50('0x4c'),_0x2d141c['uniqueid'],_0x2d141c['value']));channels[_0x2d141c['uniqueid']][_0xae50('0x4d')]=_0x2d141c['value'];channels[_0x2d141c[_0xae50('0x9')]]['callerid']='\x22'+_0x2d141c[_0xae50('0x4a')]+_0xae50('0x4e')+_0x2d141c[_0xae50('0x4a')]+'>';}if(!_[_0xae50('0x24')](_0x2d141c[_0xae50('0x4f')][_0xae50('0x50')])||!_['isNil'](_0x2d141c[_0xae50('0x4f')][_0xae50('0x51')])){utils[_0xae50('0xa')](util[_0xae50('0xb')](_0xae50('0x52'),_0x2d141c[_0xae50('0x9')],!_[_0xae50('0x24')](_0x2d141c[_0xae50('0x4f')]['xmd-callerid-preview'])?'xmd-callerid-preview':_0xae50('0x51'),_0x2d141c['value']));channels[_0x2d141c[_0xae50('0x9')]][_0xae50('0x2f')]=_0x2d141c['value'];}if(!_['isNil'](_0x2d141c[_0xae50('0x4f')][_0xae50('0x53')])||!_[_0xae50('0x24')](_0x2d141c[_0xae50('0x4f')]['xmcs-queue'])){utils[_0xae50('0xa')](util[_0xae50('0xb')](_0xae50('0x52'),_0x2d141c[_0xae50('0x9')],!_[_0xae50('0x24')](_0x2d141c['variable'][_0xae50('0x53')])?_0xae50('0x53'):_0xae50('0x54'),_0x2d141c[_0xae50('0x4a')]));channels[_0x2d141c[_0xae50('0x9')]][_0xae50('0x55')]=_0xae50('0x56');channels[_0x2d141c[_0xae50('0x9')]]['lastdata']=_0x2d141c[_0xae50('0x4a')];channels[_0x2d141c[_0xae50('0x9')]][_0xae50('0xe')]=!![];}if(!_[_0xae50('0x24')](_0x2d141c[_0xae50('0x4f')][_0xae50('0x57')])){utils[_0xae50('0xa')](util['format'](_0xae50('0x58'),_0x2d141c[_0xae50('0x9')],_0x2d141c[_0xae50('0x4a')]));channels[_0x2d141c[_0xae50('0x9')]][_0xae50('0x59')]=_0x2d141c[_0xae50('0x4a')];}if(!_[_0xae50('0x24')](_0x2d141c['variable'][_0xae50('0x5a')])){utils[_0xae50('0xa')](util[_0xae50('0xb')](_0xae50('0x5b'),_0x2d141c[_0xae50('0x9')],_0x2d141c[_0xae50('0x4a')]));channels[_0x2d141c['uniqueid']][_0xae50('0x5c')]=_0x2d141c[_0xae50('0x4a')];}if(!_['isNil'](_0x2d141c['variable']['outboundrouteid'])){utils[_0xae50('0xa')](util[_0xae50('0xb')](_0xae50('0x5d'),_0x2d141c[_0xae50('0x9')],_0x2d141c[_0xae50('0x4a')]));channels[_0x2d141c[_0xae50('0x9')]][_0xae50('0x5e')]=_0x2d141c[_0xae50('0x4a')];}if(!_['isNil'](_0x2d141c[_0xae50('0x4f')][_0xae50('0x5f')])){utils[_0xae50('0xa')](util['format'](_0xae50('0x60'),_0x2d141c[_0xae50('0x9')],_0x2d141c[_0xae50('0x4a')]));channels[_0x2d141c['uniqueid']][_0xae50('0x5f')]=_0x2d141c['value'];}}}catch(_0x407cb2){utils['error'](util[_0xae50('0xb')](_0xae50('0x61'),_0x2d141c[_0xae50('0x9')]),_0x407cb2);}};exports['newexten']=function(_0xf8cbd9){try{if(!_[_0xae50('0x24')](channels[_0xf8cbd9['uniqueid']])){utils['debug'](util[_0xae50('0xb')](_0xae50('0x62'),_0xf8cbd9['uniqueid']),_0xf8cbd9);utils[_0xae50('0xa')](util[_0xae50('0xb')](_0xae50('0x63'),_0xf8cbd9[_0xae50('0x9')],_0xf8cbd9[_0xae50('0x64')],_0xf8cbd9[_0xae50('0x65')]));if(_0xf8cbd9[_0xae50('0x64')][_0xae50('0x66')]()==_0xae50('0x67')&&_[_0xae50('0x68')](_0xf8cbd9[_0xae50('0x65')][_0xae50('0x66')](),_0xae50('0x69'))){var _0x19e351=_0xf8cbd9['appdata'][_0xae50('0x6a')]('=');var _0x5c528c=_0x19e351[0x0][_0xae50('0x6b')](_0x19e351[0x0][_0xae50('0x6c')]('(')+0x1,_0x19e351[0x0][_0xae50('0x6c')](')'));var _0x5abdbc=_0x19e351[0x1];channels[_0xf8cbd9[_0xae50('0x9')]][_0x5c528c]=_0x5abdbc;}if(!_[_0xae50('0x6d')]([_0xae50('0x2d'),'noop',_0xae50('0x6e'),'set',_0xae50('0x6f')],_0xf8cbd9[_0xae50('0x64')][_0xae50('0x66')]())){channels[_0xf8cbd9[_0xae50('0x9')]][_0xae50('0x55')]=_0xf8cbd9[_0xae50('0x64')];channels[_0xf8cbd9[_0xae50('0x9')]]['lastdata']=_0xf8cbd9[_0xae50('0x65')];}}}catch(_0x24b0cb){utils[_0xae50('0x21')](util['format'](_0xae50('0x62'),_0xf8cbd9['uniqueid']),_0x24b0cb);}};
\ No newline at end of file
+var _0xbb8e=['exten','now','DOCUMENTATION','error','channelstate','isNil','systemanswertime','linkedid','transfer','[%s][calls][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s','destinationchannel','answertime','disposition','hangup','[%s][calls][hangup]','callerid','calleridname','cause-txt','endtime','duration','diffTime','billableseconds','attendedtransfer','[%s][calls][attendedtransfer]','origtransfereruniqueid','localtwolinkedid','transfereechannel','[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s','secondtransfererchannel','userfield','transfertargetchannel','origtransfererchannel','_attended','musiconholdstart','[%s][calls][musiconholdstart]','[%s][calls][musiconholdstart]\x20musiconholdstartAt:%s','musiconholdstartAt','[%s][calls][musiconholdstop]','[%s][calls][musiconholdstop]\x20mohtime:%s','mohtime','varset','[%s][calls][varset]','variable','xmd-originatecalleridnum','[%s][calls][varset]\x20variable:xmd-originatecalleridnum\x20value:%s','value','xmd-phone','[%s][calls][varset]\x20variable:xmd-phone\x20value:%s','\x22\x20<','xmd-callerid-preview','xmd-callerid','xmcs-queue','Queue','lastdata','xmd-contactid','[%s][calls][varset]\x20variable:xmd-contactid\x20value:%s','xmd-cdrtype','[%s][calls][varset]\x20variable:xmd-cdrtype\x20value:%s','type','outboundrouteid','routeid','sipcallid','[%s][calls][varset]\x20variable:sipcallid\x20value:%s','newexten','[%s][calls][newexten]','application','appdata','toLowerCase','set','startsWith','cdr','split','substring','lastIndexOf','includes','noop','execif','gotoif','lodash','util','./transfers.controller','NO\x20ANSWER','FAILED','ANSWERED','BUSY','uniqueid','blinds','transfereeuniqueid','info','format','[%s][calls][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s','channel','queue','interface','calleridnum','connectedlinenum','lastevent','accountcode','UserId','request','CreateVoiceCallReport','debug','[%s][calls][newchannel]','OutgoingSpoolFailed','[%s][calls][newchannel]\x20context:%s\x20exten:%s','context'];(function(_0x3d254d,_0x10cce1){var _0xe79369=function(_0xb54270){while(--_0xb54270){_0x3d254d['push'](_0x3d254d['shift']());}};_0xe79369(++_0x10cce1);}(_0xbb8e,0xb8));var _0xebb8=function(_0x44eb5e,_0x240798){_0x44eb5e=_0x44eb5e-0x0;var _0x38e5ea=_0xbb8e[_0x44eb5e];return _0x38e5ea;};'use strict';var _=require(_0xebb8('0x0'));var util=require(_0xebb8('0x1'));var utils=require('./utils');var transfers=require(_0xebb8('0x2'));var dispositions=[_0xebb8('0x3'),_0xebb8('0x4'),_0xebb8('0x4'),_0xebb8('0x3'),'NO\x20ANSWER',_0xebb8('0x3'),_0xebb8('0x5'),_0xebb8('0x6'),'FAILED',_0xebb8('0x4'),_0xebb8('0x4')];var channels={};function writeDB(_0xc53869){var _0x483c76;if(transfers['blinds'][_0xc53869[_0xebb8('0x7')]]){_0x483c76=_0xc53869['uniqueid'];_0xc53869[_0xebb8('0x7')]=transfers[_0xebb8('0x8')][_0xc53869[_0xebb8('0x7')]][_0xebb8('0x9')];}utils[_0xebb8('0xa')](util[_0xebb8('0xb')](_0xebb8('0xc'),_0xc53869[_0xebb8('0x7')],_0xc53869[_0xebb8('0xd')],_0xc53869[_0xebb8('0xe')],_0xc53869['membername'],_0xc53869[_0xebb8('0xf')],_0xc53869[_0xebb8('0x10')],_0xc53869[_0xebb8('0x11')],_0xc53869[_0xebb8('0x12')]));if(_0xc53869[_0xebb8('0x13')]){utils['getUserByInternal'](_0xc53869['accountcode'])['then'](function(_0x21364b){if(_0x21364b){_0xc53869[_0xebb8('0x14')]=_0x21364b['id'];}utils[_0xebb8('0x15')](_0xebb8('0x16'),_0xc53869);});}else{utils[_0xebb8('0x15')](_0xebb8('0x16'),_0xc53869);}if(channels[_0xc53869[_0xebb8('0x7')]]){delete channels[_0xc53869[_0xebb8('0x7')]];}else if(_0x483c76&&channels[_0x483c76]){delete transfers['blinds'][_0x483c76];delete channels[_0x483c76];}}exports['newchannel']=function(_0x39da52){try{utils[_0xebb8('0x17')](util[_0xebb8('0xb')](_0xebb8('0x18'),_0x39da52[_0xebb8('0x7')]),_0x39da52);if(_0x39da52['uniqueid']==_0x39da52['linkedid']&&_0x39da52['channel']!=_0xebb8('0x19')){utils[_0xebb8('0xa')](util[_0xebb8('0xb')](_0xebb8('0x1a'),_0x39da52[_0xebb8('0x7')],_0x39da52[_0xebb8('0x1b')],_0x39da52[_0xebb8('0x1c')]));channels[_0x39da52[_0xebb8('0x7')]]={'uniqueid':_0x39da52[_0xebb8('0x7')],'accountcode':_0x39da52[_0xebb8('0x13')],'source':_0x39da52[_0xebb8('0x10')],'destination':_0x39da52[_0xebb8('0x1c')],'destinationcontext':_0x39da52[_0xebb8('0x1b')],'channel':_0x39da52[_0xebb8('0xd')],'starttime':utils[_0xebb8('0x1d')](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':'NO\x20ANSWER','amaflags':_0xebb8('0x1e')};}}catch(_0x19552c){utils[_0xebb8('0x1f')](util[_0xebb8('0xb')]('[%s][calls][newchannel]',_0x39da52[_0xebb8('0x7')]),_0x19552c);}};exports['newstate']=function(_0x57c128){try{utils[_0xebb8('0x17')](util[_0xebb8('0xb')]('[%s][calls][newstate]',_0x57c128[_0xebb8('0x7')]),_0x57c128);if(!_['isNil'](channels[_0x57c128[_0xebb8('0x7')]])&&_0x57c128[_0xebb8('0x20')]==0x6){utils[_0xebb8('0xa')](util['format']('[%s][calls][newstate]\x20context:%s\x20channel:%s',_0x57c128['uniqueid'],_0x57c128[_0xebb8('0x1b')],_0x57c128['channel']));if(_[_0xebb8('0x21')](channels[_0x57c128[_0xebb8('0x7')]][_0xebb8('0x22')])){channels[_0x57c128[_0xebb8('0x7')]][_0xebb8('0x22')]=utils[_0xebb8('0x1d')]();}}else if(!_['isNil'](channels[_0x57c128[_0xebb8('0x23')]])&&_0x57c128[_0xebb8('0x20')]==0x6&&_0x57c128[_0xebb8('0x1b')]!=_0xebb8('0x24')){utils[_0xebb8('0xa')](util[_0xebb8('0xb')](_0xebb8('0x25'),_0x57c128['uniqueid'],_0x57c128[_0xebb8('0x23')],_0x57c128[_0xebb8('0x1b')],_0x57c128[_0xebb8('0xd')]));channels[_0x57c128[_0xebb8('0x23')]][_0xebb8('0x13')]=_0x57c128['accountcode'];channels[_0x57c128[_0xebb8('0x23')]][_0xebb8('0x26')]=_0x57c128['channel'];if(_[_0xebb8('0x21')](channels[_0x57c128['linkedid']]['answertime'])){channels[_0x57c128[_0xebb8('0x23')]][_0xebb8('0x27')]=utils[_0xebb8('0x1d')]();}channels[_0x57c128[_0xebb8('0x23')]][_0xebb8('0x28')]=dispositions[_['toNumber'](_0x57c128['channelstate'])]||_0xebb8('0x5');}}catch(_0x3e00be){utils[_0xebb8('0x1f')](util[_0xebb8('0xb')]('[%s][calls][newstate]',_0x57c128['uniqueid']),_0x3e00be);}};exports[_0xebb8('0x29')]=function(_0x3b42c6){try{if(!_['isNil'](channels[_0x3b42c6[_0xebb8('0x7')]])){utils[_0xebb8('0x17')](util[_0xebb8('0xb')](_0xebb8('0x2a'),_0x3b42c6[_0xebb8('0x7')]),_0x3b42c6);if(_[_0xebb8('0x21')](channels[_0x3b42c6[_0xebb8('0x7')]][_0xebb8('0x2b')])){channels[_0x3b42c6['uniqueid']]['callerid']=_0x3b42c6[_0xebb8('0x2c')]+'\x20<'+_0x3b42c6[_0xebb8('0x10')]+'>';}utils['info'](util[_0xebb8('0xb')]('[%s][calls][hangup]\x20callerid:%s\x20reason:%s',_0x3b42c6['uniqueid'],channels[_0x3b42c6[_0xebb8('0x7')]][_0xebb8('0x2b')],_0x3b42c6[_0xebb8('0x2d')]));channels[_0x3b42c6[_0xebb8('0x7')]][_0xebb8('0x2e')]=utils['now']();channels[_0x3b42c6[_0xebb8('0x7')]][_0xebb8('0x2f')]=utils[_0xebb8('0x30')](channels[_0x3b42c6[_0xebb8('0x7')]]['endtime'],channels[_0x3b42c6[_0xebb8('0x7')]]['starttime']);channels[_0x3b42c6[_0xebb8('0x7')]][_0xebb8('0x31')]=channels[_0x3b42c6[_0xebb8('0x7')]][_0xebb8('0x27')]?utils[_0xebb8('0x30')](channels[_0x3b42c6['uniqueid']][_0xebb8('0x2e')],channels[_0x3b42c6[_0xebb8('0x7')]]['answertime']):0x0;writeDB(channels[_0x3b42c6[_0xebb8('0x7')]]);}}catch(_0x6dd812){utils[_0xebb8('0x1f')](util[_0xebb8('0xb')](_0xebb8('0x2a'),_0x3b42c6[_0xebb8('0x7')]),_0x6dd812);}};exports[_0xebb8('0x32')]=function(_0x18f65f){try{if(!_[_0xebb8('0x21')](channels[_0x18f65f['localtwolinkedid']])){utils['debug'](util['format'](_0xebb8('0x33'),_0x18f65f[_0xebb8('0x34')]),_0x18f65f);if(channels[_0x18f65f[_0xebb8('0x35')]]['channel']==_0x18f65f[_0xebb8('0x36')]){utils[_0xebb8('0xa')](util[_0xebb8('0xb')](_0xebb8('0x37'),_0x18f65f['origtransfereruniqueid'],_0x18f65f[_0xebb8('0x35')],_0x18f65f[_0xebb8('0x38')]));channels[_0x18f65f[_0xebb8('0x35')]][_0xebb8('0x26')]=_0x18f65f[_0xebb8('0x38')];channels[_0x18f65f[_0xebb8('0x35')]][_0xebb8('0x39')]='_attended';}else if(channels[_0x18f65f[_0xebb8('0x35')]][_0xebb8('0xd')]=_0x18f65f[_0xebb8('0x3a')]){utils['info'](util[_0xebb8('0xb')](_0xebb8('0x37'),_0x18f65f[_0xebb8('0x34')],_0x18f65f[_0xebb8('0x35')],_0x18f65f[_0xebb8('0x3b')]));channels[_0x18f65f[_0xebb8('0x35')]]['destinationchannel']=_0x18f65f[_0xebb8('0x3b')];channels[_0x18f65f[_0xebb8('0x35')]]['userfield']=_0xebb8('0x3c');}}}catch(_0x13f0ee){utils[_0xebb8('0x1f')](util[_0xebb8('0xb')](_0xebb8('0x33'),_0x18f65f[_0xebb8('0x34')]),_0x13f0ee);}};exports[_0xebb8('0x3d')]=function(_0x38c4b7){try{if(!_[_0xebb8('0x21')](channels[_0x38c4b7['uniqueid']])){utils[_0xebb8('0x17')](util[_0xebb8('0xb')](_0xebb8('0x3e'),_0x38c4b7[_0xebb8('0x7')]),_0x38c4b7);channels[_0x38c4b7[_0xebb8('0x7')]]['musiconholdstartAt']=utils[_0xebb8('0x1d')]();utils['info'](util[_0xebb8('0xb')](_0xebb8('0x3f'),_0x38c4b7['uniqueid'],channels[_0x38c4b7[_0xebb8('0x7')]][_0xebb8('0x40')]));}}catch(_0x539816){utils[_0xebb8('0x1f')](util[_0xebb8('0xb')](_0xebb8('0x3e'),_0x38c4b7[_0xebb8('0x7')]),_0x539816);}};exports['musiconholdstop']=function(_0x405082){try{if(!_[_0xebb8('0x21')](channels[_0x405082[_0xebb8('0x7')]])){utils[_0xebb8('0x17')](util['format'](_0xebb8('0x41'),_0x405082['uniqueid']),_0x405082);if(!_[_0xebb8('0x21')](channels[_0x405082['uniqueid']][_0xebb8('0x40')])){channels[_0x405082['uniqueid']]['mohtime']+=utils[_0xebb8('0x30')](utils[_0xebb8('0x1d')](),channels[_0x405082['uniqueid']][_0xebb8('0x40')]);utils[_0xebb8('0xa')](util['format'](_0xebb8('0x42'),_0x405082[_0xebb8('0x7')],channels[_0x405082[_0xebb8('0x7')]][_0xebb8('0x43')]));delete channels[_0x405082[_0xebb8('0x7')]][_0xebb8('0x40')];}}}catch(_0x209412){utils[_0xebb8('0x1f')](util[_0xebb8('0xb')](_0xebb8('0x41'),_0x405082[_0xebb8('0x7')]),_0x209412);}};exports[_0xebb8('0x44')]=function(_0x5cd1c2){try{if(!_[_0xebb8('0x21')](channels[_0x5cd1c2[_0xebb8('0x7')]])){utils[_0xebb8('0x17')](util[_0xebb8('0xb')](_0xebb8('0x45'),_0x5cd1c2[_0xebb8('0x7')]),_0x5cd1c2);if(!_['isNil'](_0x5cd1c2[_0xebb8('0x46')][_0xebb8('0x47')])){utils['info'](util[_0xebb8('0xb')](_0xebb8('0x48'),_0x5cd1c2[_0xebb8('0x7')],_0x5cd1c2[_0xebb8('0x49')]));channels[_0x5cd1c2['uniqueid']]['source']=_0x5cd1c2[_0xebb8('0x49')];}if(!_[_0xebb8('0x21')](_0x5cd1c2[_0xebb8('0x46')][_0xebb8('0x4a')])){utils[_0xebb8('0xa')](util['format'](_0xebb8('0x4b'),_0x5cd1c2[_0xebb8('0x7')],_0x5cd1c2[_0xebb8('0x49')]));channels[_0x5cd1c2[_0xebb8('0x7')]]['destination']=_0x5cd1c2['value'];channels[_0x5cd1c2['uniqueid']][_0xebb8('0x2b')]='\x22'+_0x5cd1c2[_0xebb8('0x49')]+_0xebb8('0x4c')+_0x5cd1c2[_0xebb8('0x49')]+'>';}if(!_[_0xebb8('0x21')](_0x5cd1c2[_0xebb8('0x46')][_0xebb8('0x4d')])||!_[_0xebb8('0x21')](_0x5cd1c2['variable']['xmd-callerid'])){utils[_0xebb8('0xa')](util[_0xebb8('0xb')]('[%s][calls][varset]\x20variable:%s\x20value:%s',_0x5cd1c2[_0xebb8('0x7')],!_['isNil'](_0x5cd1c2[_0xebb8('0x46')][_0xebb8('0x4d')])?_0xebb8('0x4d'):_0xebb8('0x4e'),_0x5cd1c2[_0xebb8('0x49')]));channels[_0x5cd1c2[_0xebb8('0x7')]][_0xebb8('0x2b')]=_0x5cd1c2[_0xebb8('0x49')];}if(!_[_0xebb8('0x21')](_0x5cd1c2['variable']['xmd-queue'])||!_[_0xebb8('0x21')](_0x5cd1c2[_0xebb8('0x46')][_0xebb8('0x4f')])){utils['info'](util[_0xebb8('0xb')]('[%s][calls][varset]\x20variable:%s\x20value:%s',_0x5cd1c2[_0xebb8('0x7')],!_['isNil'](_0x5cd1c2[_0xebb8('0x46')]['xmd-queue'])?'xmd-queue':_0xebb8('0x4f'),_0x5cd1c2[_0xebb8('0x49')]));channels[_0x5cd1c2[_0xebb8('0x7')]]['lastapplication']=_0xebb8('0x50');channels[_0x5cd1c2[_0xebb8('0x7')]][_0xebb8('0x51')]=_0x5cd1c2[_0xebb8('0x49')];channels[_0x5cd1c2[_0xebb8('0x7')]][_0xebb8('0xe')]=!![];}if(!_[_0xebb8('0x21')](_0x5cd1c2['variable'][_0xebb8('0x52')])){utils[_0xebb8('0xa')](util[_0xebb8('0xb')](_0xebb8('0x53'),_0x5cd1c2[_0xebb8('0x7')],_0x5cd1c2[_0xebb8('0x49')]));channels[_0x5cd1c2[_0xebb8('0x7')]]['ContactId']=_0x5cd1c2[_0xebb8('0x49')];}if(!_[_0xebb8('0x21')](_0x5cd1c2[_0xebb8('0x46')][_0xebb8('0x54')])){utils[_0xebb8('0xa')](util[_0xebb8('0xb')](_0xebb8('0x55'),_0x5cd1c2[_0xebb8('0x7')],_0x5cd1c2['value']));channels[_0x5cd1c2[_0xebb8('0x7')]][_0xebb8('0x56')]=_0x5cd1c2[_0xebb8('0x49')];}if(!_[_0xebb8('0x21')](_0x5cd1c2[_0xebb8('0x46')][_0xebb8('0x57')])){utils[_0xebb8('0xa')](util[_0xebb8('0xb')]('[%s][calls][varset]\x20variable:outboundrouteid\x20value:%s',_0x5cd1c2[_0xebb8('0x7')],_0x5cd1c2[_0xebb8('0x49')]));channels[_0x5cd1c2[_0xebb8('0x7')]][_0xebb8('0x58')]=_0x5cd1c2[_0xebb8('0x49')];}if(!_[_0xebb8('0x21')](_0x5cd1c2[_0xebb8('0x46')][_0xebb8('0x59')])){utils[_0xebb8('0xa')](util[_0xebb8('0xb')](_0xebb8('0x5a'),_0x5cd1c2[_0xebb8('0x7')],_0x5cd1c2[_0xebb8('0x49')]));channels[_0x5cd1c2[_0xebb8('0x7')]][_0xebb8('0x59')]=_0x5cd1c2[_0xebb8('0x49')];}}}catch(_0x12df1b){utils[_0xebb8('0x1f')](util[_0xebb8('0xb')]('[%s][calls][varset]',_0x5cd1c2['uniqueid']),_0x12df1b);}};exports[_0xebb8('0x5b')]=function(_0x2c43a0){try{if(!_['isNil'](channels[_0x2c43a0[_0xebb8('0x7')]])){utils[_0xebb8('0x17')](util['format'](_0xebb8('0x5c'),_0x2c43a0[_0xebb8('0x7')]),_0x2c43a0);utils[_0xebb8('0xa')](util['format']('[%s][calls][newexten]\x20application:%s\x20appdata:%s',_0x2c43a0[_0xebb8('0x7')],_0x2c43a0[_0xebb8('0x5d')],_0x2c43a0[_0xebb8('0x5e')]));if(_0x2c43a0['application'][_0xebb8('0x5f')]()==_0xebb8('0x60')&&_[_0xebb8('0x61')](_0x2c43a0[_0xebb8('0x5e')][_0xebb8('0x5f')](),_0xebb8('0x62'))){var _0x212442=_0x2c43a0[_0xebb8('0x5e')][_0xebb8('0x63')]('=');var _0x2c0311=_0x212442[0x0][_0xebb8('0x64')](_0x212442[0x0][_0xebb8('0x65')]('(')+0x1,_0x212442[0x0]['lastIndexOf'](')'));var _0x202471=_0x212442[0x1];channels[_0x2c43a0['uniqueid']][_0x2c0311]=_0x202471;}if(!_[_0xebb8('0x66')]([_0xebb8('0x29'),_0xebb8('0x67'),_0xebb8('0x68'),_0xebb8('0x60'),_0xebb8('0x69')],_0x2c43a0[_0xebb8('0x5d')]['toLowerCase']())){channels[_0x2c43a0[_0xebb8('0x7')]]['lastapplication']=_0x2c43a0[_0xebb8('0x5d')];channels[_0x2c43a0[_0xebb8('0x7')]][_0xebb8('0x51')]=_0x2c43a0[_0xebb8('0x5e')];}}}catch(_0x332ce1){utils[_0xebb8('0x1f')](util['format'](_0xebb8('0x5c'),_0x2c43a0[_0xebb8('0x7')]),_0x332ce1);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x58fe=['fullybooted','error','[core]\x20error','close','./utils','info','[core]\x20connected','shutdown','[core]\x20shutdown'];(function(_0x219cc1,_0x3d03b5){var _0x177034=function(_0x45e0fe){while(--_0x45e0fe){_0x219cc1['push'](_0x219cc1['shift']());}};_0x177034(++_0x3d03b5);}(_0x58fe,0x1ab));var _0xe58f=function(_0x1db481,_0x1627b2){_0x1db481=_0x1db481-0x0;var _0x3db95b=_0x58fe[_0x1db481];return _0x3db95b;};'use strict';var utils=require(_0xe58f('0x0'));exports['connect']=function(){utils[_0xe58f('0x1')](_0xe58f('0x2'));};exports[_0xe58f('0x3')]=function(){utils[_0xe58f('0x1')](_0xe58f('0x4'));};exports[_0xe58f('0x5')]=function(){utils[_0xe58f('0x1')]('[core]\x20fullybooted');};exports[_0xe58f('0x6')]=function(_0x1e0f52){utils[_0xe58f('0x6')](_0xe58f('0x7'),_0x1e0f52);};exports[_0xe58f('0x8')]=function(){utils['info']('[core]\x20close');};exports['managerevent']=function(_0x1c0070){};
\ No newline at end of file
+var _0x4ade=['[core]\x20fullybooted','error','close','[core]\x20close','managerevent','./utils','connect','info','[core]\x20connected','shutdown','[core]\x20shutdown','fullybooted'];(function(_0x11946c,_0x12152c){var _0x383935=function(_0x61fce2){while(--_0x61fce2){_0x11946c['push'](_0x11946c['shift']());}};_0x383935(++_0x12152c);}(_0x4ade,0x149));var _0xe4ad=function(_0x4725f0,_0x1fc4c4){_0x4725f0=_0x4725f0-0x0;var _0x1fd0b6=_0x4ade[_0x4725f0];return _0x1fd0b6;};'use strict';var utils=require(_0xe4ad('0x0'));exports[_0xe4ad('0x1')]=function(){utils[_0xe4ad('0x2')](_0xe4ad('0x3'));};exports[_0xe4ad('0x4')]=function(){utils['info'](_0xe4ad('0x5'));};exports[_0xe4ad('0x6')]=function(){utils[_0xe4ad('0x2')](_0xe4ad('0x7'));};exports[_0xe4ad('0x8')]=function(_0x56917f){utils[_0xe4ad('0x8')]('[core]\x20error',_0x56917f);};exports[_0xe4ad('0x9')]=function(){utils[_0xe4ad('0x2')](_0xe4ad('0xa'));};exports[_0xe4ad('0xb')]=function(_0xff7b62){};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb542=['[%s][dials][writeDB]\x20channel:%s\x20dialstring:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20dialstatus:%s','dialstring','calleridnum','connectedlinenum','dialstatus','request','CreateVoiceDialReport','uniqueid','[%s][dials][newexten]','[%s][dials][newexten]\x20application:%s\x20appdata:%s','application','appdata','set','startsWith','toLowerCase','cdr(routeid)','error','varset','debug','[%s][dials][varset]','isNil','variable','outboundrouteid','value','dialbegin','[%s][dials][dialbegin]','assign','now','lastevent','called','[%s][dials][hangup]\x20starttime:%s\x20lastevent:called','starttime','ANSWER','answertime','connect','[%s][dials][dialend]\x20dialstatus:%s\x20answertime:%s\x20lastevent:connect','[%s][dials][dialend]\x20dialstatus:%s','[%s][dials][dialend]','hangup','[%s][dials][hangup]','[%s][dials][hangup]\x20calleridnum:%s\x20calleridname:%s\x20lastevent:complete\x20reason:%s','calleridname','cause-txt','complete','duration','diffTime','endtime','holdtime','billableseconds','lodash','util','./utils','info','format'];(function(_0x537a6a,_0x39b2e9){var _0x338299=function(_0x1a6d90){while(--_0x1a6d90){_0x537a6a['push'](_0x537a6a['shift']());}};_0x338299(++_0x39b2e9);}(_0xb542,0x109));var _0x2b54=function(_0x4cc9dd,_0x2c0d5b){_0x4cc9dd=_0x4cc9dd-0x0;var _0x4ddfae=_0xb542[_0x4cc9dd];return _0x4ddfae;};'use strict';var _=require(_0x2b54('0x0'));var util=require(_0x2b54('0x1'));var utils=require(_0x2b54('0x2'));var dials={};function writeDB(_0x501f7a){utils[_0x2b54('0x3')](util[_0x2b54('0x4')](_0x2b54('0x5'),_0x501f7a['uniqueid'],_0x501f7a['channel'],_0x501f7a[_0x2b54('0x6')],_0x501f7a[_0x2b54('0x7')],_0x501f7a[_0x2b54('0x8')],_0x501f7a[_0x2b54('0x9')]));utils[_0x2b54('0xa')](_0x2b54('0xb'),_0x501f7a);delete dials[_0x501f7a[_0x2b54('0xc')]];}exports['newexten']=function(_0x52f0e3){try{utils['debug'](util['format'](_0x2b54('0xd'),_0x52f0e3['uniqueid']),_0x52f0e3);utils[_0x2b54('0x3')](util[_0x2b54('0x4')](_0x2b54('0xe'),_0x52f0e3[_0x2b54('0xc')],_0x52f0e3[_0x2b54('0xf')],_0x52f0e3[_0x2b54('0x10')]));if(_0x52f0e3[_0x2b54('0xf')]['toLowerCase']()==_0x2b54('0x11')&&_[_0x2b54('0x12')](_0x52f0e3['appdata'][_0x2b54('0x13')](),_0x2b54('0x14'))){var _0x1bd20b=_0x52f0e3[_0x2b54('0x10')]['split']('=');dials[_0x52f0e3['uniqueid']]={'routeId':_0x1bd20b[0x1]};}}catch(_0x2c3c7b){utils[_0x2b54('0x15')](util[_0x2b54('0x4')](_0x2b54('0xd'),_0x52f0e3[_0x2b54('0xc')]),_0x2c3c7b);}};exports[_0x2b54('0x16')]=function(_0x4f9a4d){try{utils[_0x2b54('0x17')](util['format'](_0x2b54('0x18'),_0x4f9a4d[_0x2b54('0xc')]),_0x4f9a4d);if(!_[_0x2b54('0x19')](_0x4f9a4d[_0x2b54('0x1a')][_0x2b54('0x1b')])){utils[_0x2b54('0x3')](util['format']('[%s][dials][varset]\x20variable:outboundrouteid\x20value:%s',_0x4f9a4d['uniqueid'],_0x4f9a4d[_0x2b54('0x1c')]));dials[_0x4f9a4d[_0x2b54('0xc')]]={'routeId':_0x4f9a4d[_0x2b54('0x1c')]};}}catch(_0x4494e1){utils['error'](util[_0x2b54('0x4')]('[%s][dials][varset]',_0x4f9a4d[_0x2b54('0xc')]),_0x4494e1);}};exports[_0x2b54('0x1d')]=function(_0x290d5c){try{if(!_['isNil'](dials[_0x290d5c['uniqueid']])){utils['debug'](util[_0x2b54('0x4')](_0x2b54('0x1e'),_0x290d5c[_0x2b54('0xc')]),_0x290d5c);dials[_0x290d5c[_0x2b54('0xc')]]=_[_0x2b54('0x1f')](dials[_0x290d5c['uniqueid']],_0x290d5c);dials[_0x290d5c[_0x2b54('0xc')]]['starttime']=utils[_0x2b54('0x20')]();dials[_0x290d5c['uniqueid']][_0x2b54('0x21')]=_0x2b54('0x22');utils['info'](util['format'](_0x2b54('0x23'),_0x290d5c['uniqueid'],dials[_0x290d5c['uniqueid']][_0x2b54('0x24')]));}}catch(_0x2d7b23){utils[_0x2b54('0x15')](util[_0x2b54('0x4')](_0x2b54('0x1e'),_0x290d5c[_0x2b54('0xc')]),_0x2d7b23);}};exports['dialend']=function(_0x925a42){try{if(!_[_0x2b54('0x19')](dials[_0x925a42[_0x2b54('0xc')]])){utils[_0x2b54('0x17')](util['format']('[%s][dials][dialend]',_0x925a42[_0x2b54('0xc')]),_0x925a42);dials[_0x925a42[_0x2b54('0xc')]][_0x2b54('0x9')]=_0x925a42[_0x2b54('0x9')];if(_0x925a42[_0x2b54('0x9')]==_0x2b54('0x25')){dials[_0x925a42['uniqueid']]=_[_0x2b54('0x1f')](dials[_0x925a42[_0x2b54('0xc')]],_0x925a42);dials[_0x925a42[_0x2b54('0xc')]][_0x2b54('0x26')]=utils[_0x2b54('0x20')]();dials[_0x925a42['uniqueid']]['lastevent']=_0x2b54('0x27');utils[_0x2b54('0x3')](util[_0x2b54('0x4')](_0x2b54('0x28'),_0x925a42[_0x2b54('0xc')],_0x925a42[_0x2b54('0x9')],dials[_0x925a42[_0x2b54('0xc')]][_0x2b54('0x26')]));}else{utils[_0x2b54('0x3')](util[_0x2b54('0x4')](_0x2b54('0x29'),_0x925a42[_0x2b54('0xc')],_0x925a42[_0x2b54('0x9')]));}}}catch(_0x3ba435){utils[_0x2b54('0x15')](util[_0x2b54('0x4')](_0x2b54('0x2a'),_0x925a42['uniqueid']),_0x3ba435);}};exports[_0x2b54('0x2b')]=function(_0x3f590a){try{if(!_[_0x2b54('0x19')](dials[_0x3f590a[_0x2b54('0xc')]])){utils[_0x2b54('0x17')](util[_0x2b54('0x4')](_0x2b54('0x2c'),_0x3f590a['uniqueid']),_0x3f590a);utils[_0x2b54('0x3')](util[_0x2b54('0x4')](_0x2b54('0x2d'),_0x3f590a[_0x2b54('0xc')],_0x3f590a[_0x2b54('0x7')],_0x3f590a[_0x2b54('0x2e')],_0x3f590a[_0x2b54('0x2f')]));dials[_0x3f590a['uniqueid']]=_['assign'](dials[_0x3f590a[_0x2b54('0xc')]],{'endtime':utils[_0x2b54('0x20')](),'lastevent':_0x2b54('0x30')});dials[_0x3f590a[_0x2b54('0xc')]][_0x2b54('0x31')]=utils[_0x2b54('0x32')](dials[_0x3f590a[_0x2b54('0xc')]][_0x2b54('0x33')],dials[_0x3f590a['uniqueid']]['starttime']);dials[_0x3f590a[_0x2b54('0xc')]][_0x2b54('0x34')]=utils['diffTime'](dials[_0x3f590a[_0x2b54('0xc')]][_0x2b54('0x26')]||dials[_0x3f590a[_0x2b54('0xc')]]['endtime'],dials[_0x3f590a['uniqueid']][_0x2b54('0x24')]);dials[_0x3f590a['uniqueid']][_0x2b54('0x35')]=dials[_0x3f590a[_0x2b54('0xc')]][_0x2b54('0x26')]?utils[_0x2b54('0x32')](dials[_0x3f590a[_0x2b54('0xc')]][_0x2b54('0x33')],dials[_0x3f590a[_0x2b54('0xc')]][_0x2b54('0x26')]):0x0;writeDB(dials[_0x3f590a[_0x2b54('0xc')]]);}}catch(_0x413e07){utils[_0x2b54('0x15')](util[_0x2b54('0x4')](_0x2b54('0x2c'),_0x3f590a[_0x2b54('0xc')]),_0x413e07);}};
\ No newline at end of file
+var _0x8558=['appdata','toLowerCase','cdr(routeid)','error','[%s][dials][newexten]','varset','isNil','variable','outboundrouteid','[%s][dials][varset]\x20variable:outboundrouteid\x20value:%s','value','dialbegin','[%s][dials][dialbegin]','assign','starttime','now','lastevent','[%s][dials][hangup]\x20starttime:%s\x20lastevent:called','dialend','[%s][dials][dialend]','ANSWER','answertime','connect','[%s][dials][dialend]\x20dialstatus:%s\x20answertime:%s\x20lastevent:connect','[%s][dials][dialend]\x20dialstatus:%s','hangup','[%s][dials][hangup]','[%s][dials][hangup]\x20calleridnum:%s\x20calleridname:%s\x20lastevent:complete\x20reason:%s','calleridname','cause-txt','complete','duration','diffTime','endtime','holdtime','billableseconds','util','./utils','format','[%s][dials][writeDB]\x20channel:%s\x20dialstring:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20dialstatus:%s','uniqueid','channel','calleridnum','dialstatus','request','debug','info','application'];(function(_0x251535,_0x4a49e8){var _0x4a7b3e=function(_0x5b1604){while(--_0x5b1604){_0x251535['push'](_0x251535['shift']());}};_0x4a7b3e(++_0x4a49e8);}(_0x8558,0x84));var _0x8855=function(_0x577a09,_0x119a97){_0x577a09=_0x577a09-0x0;var _0x52ba87=_0x8558[_0x577a09];return _0x52ba87;};'use strict';var _=require('lodash');var util=require(_0x8855('0x0'));var utils=require(_0x8855('0x1'));var dials={};function writeDB(_0x533f23){utils['info'](util[_0x8855('0x2')](_0x8855('0x3'),_0x533f23[_0x8855('0x4')],_0x533f23[_0x8855('0x5')],_0x533f23['dialstring'],_0x533f23[_0x8855('0x6')],_0x533f23['connectedlinenum'],_0x533f23[_0x8855('0x7')]));utils[_0x8855('0x8')]('CreateVoiceDialReport',_0x533f23);delete dials[_0x533f23[_0x8855('0x4')]];}exports['newexten']=function(_0x2cf430){try{utils[_0x8855('0x9')](util[_0x8855('0x2')]('[%s][dials][newexten]',_0x2cf430[_0x8855('0x4')]),_0x2cf430);utils[_0x8855('0xa')](util[_0x8855('0x2')]('[%s][dials][newexten]\x20application:%s\x20appdata:%s',_0x2cf430[_0x8855('0x4')],_0x2cf430[_0x8855('0xb')],_0x2cf430[_0x8855('0xc')]));if(_0x2cf430[_0x8855('0xb')]['toLowerCase']()=='set'&&_['startsWith'](_0x2cf430[_0x8855('0xc')][_0x8855('0xd')](),_0x8855('0xe'))){var _0x1ebc1c=_0x2cf430[_0x8855('0xc')]['split']('=');dials[_0x2cf430[_0x8855('0x4')]]={'routeId':_0x1ebc1c[0x1]};}}catch(_0x26dfc9){utils[_0x8855('0xf')](util['format'](_0x8855('0x10'),_0x2cf430[_0x8855('0x4')]),_0x26dfc9);}};exports[_0x8855('0x11')]=function(_0x3c2391){try{utils[_0x8855('0x9')](util[_0x8855('0x2')]('[%s][dials][varset]',_0x3c2391['uniqueid']),_0x3c2391);if(!_[_0x8855('0x12')](_0x3c2391[_0x8855('0x13')][_0x8855('0x14')])){utils[_0x8855('0xa')](util[_0x8855('0x2')](_0x8855('0x15'),_0x3c2391['uniqueid'],_0x3c2391[_0x8855('0x16')]));dials[_0x3c2391[_0x8855('0x4')]]={'routeId':_0x3c2391['value']};}}catch(_0x523d2f){utils[_0x8855('0xf')](util[_0x8855('0x2')]('[%s][dials][varset]',_0x3c2391['uniqueid']),_0x523d2f);}};exports[_0x8855('0x17')]=function(_0x50bfc8){try{if(!_[_0x8855('0x12')](dials[_0x50bfc8[_0x8855('0x4')]])){utils[_0x8855('0x9')](util[_0x8855('0x2')](_0x8855('0x18'),_0x50bfc8[_0x8855('0x4')]),_0x50bfc8);dials[_0x50bfc8[_0x8855('0x4')]]=_[_0x8855('0x19')](dials[_0x50bfc8[_0x8855('0x4')]],_0x50bfc8);dials[_0x50bfc8[_0x8855('0x4')]][_0x8855('0x1a')]=utils[_0x8855('0x1b')]();dials[_0x50bfc8['uniqueid']][_0x8855('0x1c')]='called';utils[_0x8855('0xa')](util['format'](_0x8855('0x1d'),_0x50bfc8['uniqueid'],dials[_0x50bfc8[_0x8855('0x4')]]['starttime']));}}catch(_0x5af750){utils[_0x8855('0xf')](util[_0x8855('0x2')](_0x8855('0x18'),_0x50bfc8['uniqueid']),_0x5af750);}};exports[_0x8855('0x1e')]=function(_0x21862c){try{if(!_[_0x8855('0x12')](dials[_0x21862c['uniqueid']])){utils['debug'](util['format'](_0x8855('0x1f'),_0x21862c['uniqueid']),_0x21862c);dials[_0x21862c['uniqueid']][_0x8855('0x7')]=_0x21862c[_0x8855('0x7')];if(_0x21862c['dialstatus']==_0x8855('0x20')){dials[_0x21862c[_0x8855('0x4')]]=_[_0x8855('0x19')](dials[_0x21862c[_0x8855('0x4')]],_0x21862c);dials[_0x21862c['uniqueid']][_0x8855('0x21')]=utils[_0x8855('0x1b')]();dials[_0x21862c[_0x8855('0x4')]][_0x8855('0x1c')]=_0x8855('0x22');utils[_0x8855('0xa')](util['format'](_0x8855('0x23'),_0x21862c[_0x8855('0x4')],_0x21862c['dialstatus'],dials[_0x21862c['uniqueid']][_0x8855('0x21')]));}else{utils[_0x8855('0xa')](util[_0x8855('0x2')](_0x8855('0x24'),_0x21862c[_0x8855('0x4')],_0x21862c[_0x8855('0x7')]));}}}catch(_0x1c1a4c){utils['error'](util[_0x8855('0x2')]('[%s][dials][dialend]',_0x21862c[_0x8855('0x4')]),_0x1c1a4c);}};exports[_0x8855('0x25')]=function(_0x3ea1f6){try{if(!_['isNil'](dials[_0x3ea1f6[_0x8855('0x4')]])){utils[_0x8855('0x9')](util[_0x8855('0x2')](_0x8855('0x26'),_0x3ea1f6[_0x8855('0x4')]),_0x3ea1f6);utils[_0x8855('0xa')](util[_0x8855('0x2')](_0x8855('0x27'),_0x3ea1f6[_0x8855('0x4')],_0x3ea1f6[_0x8855('0x6')],_0x3ea1f6[_0x8855('0x28')],_0x3ea1f6[_0x8855('0x29')]));dials[_0x3ea1f6['uniqueid']]=_[_0x8855('0x19')](dials[_0x3ea1f6['uniqueid']],{'endtime':utils[_0x8855('0x1b')](),'lastevent':_0x8855('0x2a')});dials[_0x3ea1f6[_0x8855('0x4')]][_0x8855('0x2b')]=utils[_0x8855('0x2c')](dials[_0x3ea1f6['uniqueid']][_0x8855('0x2d')],dials[_0x3ea1f6[_0x8855('0x4')]][_0x8855('0x1a')]);dials[_0x3ea1f6[_0x8855('0x4')]][_0x8855('0x2e')]=utils['diffTime'](dials[_0x3ea1f6[_0x8855('0x4')]][_0x8855('0x21')]||dials[_0x3ea1f6['uniqueid']][_0x8855('0x2d')],dials[_0x3ea1f6[_0x8855('0x4')]]['starttime']);dials[_0x3ea1f6[_0x8855('0x4')]][_0x8855('0x2f')]=dials[_0x3ea1f6[_0x8855('0x4')]][_0x8855('0x21')]?utils['diffTime'](dials[_0x3ea1f6[_0x8855('0x4')]][_0x8855('0x2d')],dials[_0x3ea1f6['uniqueid']][_0x8855('0x21')]):0x0;writeDB(dials[_0x3ea1f6[_0x8855('0x4')]]);}}catch(_0x4d1581){utils[_0x8855('0xf')](util[_0x8855('0x2')]('[%s][dials][hangup]',_0x3ea1f6['uniqueid']),_0x4d1581);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x98a6=['[%s][index][hangup]','cdr','[%s][index][cdr]','blindtransfer','[%s][index][blindtransfer]','[%s][index][attendedtransfer]','origtransfereruniqueid','attendedtransfer','varset','[%s][index][varset]','newexten','[%s][index][newexten]','newchannel','[%s][index][newchannel]','[%s][index][dialbegin]','dialbegin','[%s]dialbegin','dialend','[%s][index][dialend]','./utils','util','port','asterisk','username','password','keepConnected','xdr','info','XDR\x20DISABLED','./queues.controller','./recordings.controller','./members.controller','./dials.controller','./transfers.controller','./core.controller','connect','shutdown','fullybooted','error','close','managerevent','debug','format','device','devicestatechange','agentcalled','[%s][index][agentcalled]','uniqueid','agentringnoanswer','[%s][index][agentringnoanswer]','agentconnect','[%s][index][agentconnect]','[%s][index][agentcomplete]','agentcomplete','queuecallerabandon','[%s][index][queuecallerabandon]','queuecallerjoin','[%s][index][queuecallerjoin]','queuecallerleave','[%s][index][queuecallerleave]','musiconholdstart','[%s][index][musiconholdstart]','musiconholdstop','[%s][index][musiconholdstop]','[%s][index][newstate]','newstate','hangup'];(function(_0x45c262,_0x2e3ce5){var _0x4f2ba6=function(_0x4912d1){while(--_0x4912d1){_0x45c262['push'](_0x45c262['shift']());}};_0x4f2ba6(++_0x2e3ce5);}(_0x98a6,0x162));var _0x698a=function(_0x5317b5,_0x4dfd6e){_0x5317b5=_0x5317b5-0x0;var _0x3b7ce2=_0x98a6[_0x5317b5];return _0x3b7ce2;};var AsteriskManager=require('asterisk-manager');var config=require('../../config/environment');var utils=require(_0x698a('0x0'));var util=require(_0x698a('0x1'));var ami=new AsteriskManager(config['asterisk'][_0x698a('0x2')],config[_0x698a('0x3')]['ip'],config[_0x698a('0x3')][_0x698a('0x4')],config[_0x698a('0x3')][_0x698a('0x5')],!![]);ami[_0x698a('0x6')]();if(config[_0x698a('0x7')]&&config[_0x698a('0x7')]['disabled']){utils[_0x698a('0x8')](_0x698a('0x9'));}else{var agents=require('./agents.controller');var calls=require('./calls.controller');var queues=require(_0x698a('0xa'));var recordings=require(_0x698a('0xb'));var members=require(_0x698a('0xc'));var dials=require(_0x698a('0xd'));var transfers=require(_0x698a('0xe'));var core=require(_0x698a('0xf'));ami['on'](_0x698a('0x10'),core[_0x698a('0x10')]);ami['on']('shutdown',core[_0x698a('0x11')]);ami['on'](_0x698a('0x12'),core['fullybooted']);ami['on'](_0x698a('0x13'),core[_0x698a('0x13')]);ami['on']('close',core[_0x698a('0x14')]);ami['on'](_0x698a('0x15'),core[_0x698a('0x15')]);ami['on']('devicestatechange',function(_0x2cedd7){try{utils[_0x698a('0x16')](util[_0x698a('0x17')]('[%s][index][devicestatechange]',_0x2cedd7[_0x698a('0x18')]),_0x2cedd7);members[_0x698a('0x19')](_0x2cedd7);}catch(_0x5ce578){utils['error'](util[_0x698a('0x17')]('[%s][index][devicestatechange]',_0x2cedd7[_0x698a('0x18')]),_0x5ce578);}});ami['on'](_0x698a('0x1a'),function(_0x3a6e62){try{utils[_0x698a('0x16')](util['format'](_0x698a('0x1b'),_0x3a6e62[_0x698a('0x1c')]),_0x3a6e62);agents['agentcalled'](_0x3a6e62);}catch(_0x322123){utils[_0x698a('0x13')](util[_0x698a('0x17')](_0x698a('0x1b'),_0x3a6e62[_0x698a('0x1c')]),_0x322123);}});ami['on'](_0x698a('0x1d'),function(_0x63087){try{utils[_0x698a('0x16')](util['format']('[%s][index][agentringnoanswer]',_0x63087['uniqueid']),_0x63087);agents['agentringnoanswer'](_0x63087);}catch(_0x2a4cb9){utils[_0x698a('0x13')](util[_0x698a('0x17')](_0x698a('0x1e'),_0x63087[_0x698a('0x1c')]),_0x2a4cb9);}});ami['on'](_0x698a('0x1f'),function(_0x5d43c0){try{utils['debug'](util[_0x698a('0x17')](_0x698a('0x20'),_0x5d43c0[_0x698a('0x1c')]),_0x5d43c0);agents[_0x698a('0x1f')](_0x5d43c0);queues['agentconnect'](_0x5d43c0);}catch(_0x18140f){utils[_0x698a('0x13')](util[_0x698a('0x17')](_0x698a('0x20'),_0x5d43c0['uniqueid']),_0x18140f);}});ami['on']('agentcomplete',function(_0xa20d2){try{utils[_0x698a('0x16')](util[_0x698a('0x17')](_0x698a('0x21'),_0xa20d2[_0x698a('0x1c')]),_0xa20d2);agents[_0x698a('0x22')](_0xa20d2);queues[_0x698a('0x22')](_0xa20d2);members[_0x698a('0x22')](_0xa20d2);}catch(_0x1cd997){utils['error'](util[_0x698a('0x17')](_0x698a('0x21'),_0xa20d2[_0x698a('0x1c')]),_0x1cd997);}});ami['on'](_0x698a('0x23'),function(_0x26ad9b){try{utils[_0x698a('0x16')](util[_0x698a('0x17')](_0x698a('0x24'),_0x26ad9b[_0x698a('0x1c')]),_0x26ad9b);agents[_0x698a('0x23')](_0x26ad9b);queues[_0x698a('0x23')](_0x26ad9b);}catch(_0xfcbd69){utils['error'](util['format']('[%s][index][queuecallerabandon]',_0x26ad9b[_0x698a('0x1c')]),_0xfcbd69);}});ami['on'](_0x698a('0x25'),function(_0x307e51){try{utils[_0x698a('0x16')](util[_0x698a('0x17')](_0x698a('0x26'),_0x307e51[_0x698a('0x1c')]),_0x307e51);queues[_0x698a('0x25')](_0x307e51);recordings[_0x698a('0x25')](_0x307e51);}catch(_0x4de95b){utils['error'](util[_0x698a('0x17')](_0x698a('0x26'),_0x307e51['uniqueid']),_0x4de95b);}});ami['on'](_0x698a('0x27'),function(_0x115bb9){try{utils[_0x698a('0x16')](util[_0x698a('0x17')](_0x698a('0x28'),_0x115bb9[_0x698a('0x1c')]),_0x115bb9);queues[_0x698a('0x27')](_0x115bb9);}catch(_0x7b634c){utils['error'](util[_0x698a('0x17')](_0x698a('0x28'),_0x115bb9[_0x698a('0x1c')]),_0x7b634c);}});ami['on'](_0x698a('0x29'),function(_0x37e207){try{utils['debug'](util[_0x698a('0x17')](_0x698a('0x2a'),_0x37e207[_0x698a('0x1c')]),_0x37e207);queues[_0x698a('0x29')](_0x37e207);calls['musiconholdstart'](_0x37e207);}catch(_0x286d2f){utils[_0x698a('0x13')](util[_0x698a('0x17')]('[%s][index][musiconholdstart]',_0x37e207[_0x698a('0x1c')]),_0x286d2f);}});ami['on'](_0x698a('0x2b'),function(_0x5a8300){try{utils['debug'](util[_0x698a('0x17')](_0x698a('0x2c'),_0x5a8300[_0x698a('0x1c')]),_0x5a8300);queues[_0x698a('0x2b')](_0x5a8300);calls[_0x698a('0x2b')](_0x5a8300);}catch(_0x3e6cc3){utils['error'](util[_0x698a('0x17')](_0x698a('0x2c'),_0x5a8300[_0x698a('0x1c')]),_0x3e6cc3);}});ami['on']('newstate',function(_0x223088){try{utils[_0x698a('0x16')](util[_0x698a('0x17')](_0x698a('0x2d'),_0x223088['uniqueid']),_0x223088);calls[_0x698a('0x2e')](_0x223088);recordings['newstate'](_0x223088);}catch(_0x3b3843){utils['error'](util[_0x698a('0x17')]('[%s][index][newstate]',_0x223088[_0x698a('0x1c')]),_0x3b3843);}});ami['on'](_0x698a('0x2f'),function(_0x52a7c6){try{utils['debug'](util[_0x698a('0x17')](_0x698a('0x30'),_0x52a7c6['uniqueid']),_0x52a7c6);calls[_0x698a('0x2f')](_0x52a7c6);recordings[_0x698a('0x2f')](_0x52a7c6);dials[_0x698a('0x2f')](_0x52a7c6);agents[_0x698a('0x2f')](_0x52a7c6);queues[_0x698a('0x2f')](_0x52a7c6);}catch(_0x2a6b33){utils[_0x698a('0x13')](util[_0x698a('0x17')]('[%s][index][hangup]',_0x52a7c6['uniqueid']),_0x2a6b33);}});ami['on'](_0x698a('0x31'),function(_0x355748){try{utils[_0x698a('0x16')](util[_0x698a('0x17')](_0x698a('0x32'),_0x355748['uniqueid']),_0x355748);members['cdr'](_0x355748);}catch(_0x31ba62){utils[_0x698a('0x13')](util[_0x698a('0x17')](_0x698a('0x32'),_0x355748[_0x698a('0x1c')]),_0x31ba62);}});ami['on'](_0x698a('0x33'),function(_0x42340c){try{utils[_0x698a('0x16')](util[_0x698a('0x17')](_0x698a('0x34'),_0x42340c['uniqueid']),_0x42340c);queues[_0x698a('0x33')](_0x42340c);agents['blindtransfer'](_0x42340c);transfers[_0x698a('0x33')](_0x42340c);}catch(_0x399a89){utils['error'](util['format'](_0x698a('0x34'),_0x42340c[_0x698a('0x1c')]),_0x399a89);}});ami['on']('attendedtransfer',function(_0x82ab1f){try{utils[_0x698a('0x16')](util[_0x698a('0x17')](_0x698a('0x35'),_0x82ab1f[_0x698a('0x36')]),_0x82ab1f);queues['attendedtransfer'](_0x82ab1f);transfers[_0x698a('0x37')](_0x82ab1f);agents[_0x698a('0x37')](_0x82ab1f);calls['attendedtransfer'](_0x82ab1f);}catch(_0x46ae16){utils['error'](util[_0x698a('0x17')](_0x698a('0x35'),_0x82ab1f[_0x698a('0x36')]),_0x46ae16);}});ami['on'](_0x698a('0x38'),function(_0x350e10){try{utils[_0x698a('0x16')](util[_0x698a('0x17')](_0x698a('0x39'),_0x350e10['uniqueid']),_0x350e10);queues['varset'](_0x350e10);recordings[_0x698a('0x38')](_0x350e10);calls[_0x698a('0x38')](_0x350e10);dials[_0x698a('0x38')](_0x350e10);}catch(_0x576bab){utils[_0x698a('0x13')](util[_0x698a('0x17')](_0x698a('0x39'),_0x350e10[_0x698a('0x1c')]),_0x576bab);}});ami['on'](_0x698a('0x3a'),function(_0x3ad12e){try{utils[_0x698a('0x16')](util[_0x698a('0x17')](_0x698a('0x3b'),_0x3ad12e[_0x698a('0x1c')]),_0x3ad12e);calls[_0x698a('0x3a')](_0x3ad12e);recordings[_0x698a('0x3a')](_0x3ad12e);dials[_0x698a('0x3a')](_0x3ad12e);}catch(_0x3af423){utils[_0x698a('0x13')](util[_0x698a('0x17')](_0x698a('0x3b'),_0x3ad12e['uniqueid']),_0x3af423);}});ami['on'](_0x698a('0x3c'),function(_0x727909){try{utils['debug'](util[_0x698a('0x17')](_0x698a('0x3d'),_0x727909[_0x698a('0x1c')]),_0x727909);calls[_0x698a('0x3c')](_0x727909);recordings[_0x698a('0x3c')](_0x727909);}catch(_0x393cea){utils[_0x698a('0x13')](util['format'](_0x698a('0x3d'),_0x727909[_0x698a('0x1c')]),_0x393cea);}});ami['on']('dialbegin',function(_0x40ad23){try{utils['debug'](util[_0x698a('0x17')](_0x698a('0x3e'),_0x40ad23[_0x698a('0x1c')]),_0x40ad23);dials[_0x698a('0x3f')](_0x40ad23);}catch(_0x381bb7){utils[_0x698a('0x13')](util[_0x698a('0x17')](_0x698a('0x40'),_0x40ad23[_0x698a('0x1c')]),_0x381bb7);}});ami['on'](_0x698a('0x41'),function(_0x299c3e){try{utils[_0x698a('0x16')](util[_0x698a('0x17')](_0x698a('0x42'),_0x299c3e[_0x698a('0x1c')]),_0x299c3e);dials[_0x698a('0x41')](_0x299c3e);}catch(_0x174bfe){utils[_0x698a('0x13')](util[_0x698a('0x17')](_0x698a('0x42'),_0x299c3e[_0x698a('0x1c')]),_0x174bfe);}});}
\ No newline at end of file
+var _0x92cf=['newstate','hangup','[%s][index][hangup]','cdr','blindtransfer','[%s][index][blindtransfer]','attendedtransfer','[%s][index][attendedtransfer]','origtransfereruniqueid','varset','newexten','[%s][index][newexten]','newchannel','[%s][index][newchannel]','dialbegin','[%s]dialbegin','dialend','[%s][index][dialend]','asterisk-manager','../../config/environment','port','asterisk','password','xdr','disabled','info','XDR\x20DISABLED','./calls.controller','./queues.controller','./recordings.controller','./members.controller','./dials.controller','./transfers.controller','connect','shutdown','fullybooted','close','[%s][index][devicestatechange]','device','devicestatechange','error','format','debug','[%s][index][agentcalled]','uniqueid','agentcalled','agentringnoanswer','[%s][index][agentringnoanswer]','agentconnect','[%s][index][agentconnect]','agentcomplete','[%s][index][agentcomplete]','queuecallerabandon','[%s][index][queuecallerabandon]','queuecallerjoin','[%s][index][queuecallerjoin]','queuecallerleave','[%s][index][queuecallerleave]','musiconholdstart','[%s][index][musiconholdstart]','musiconholdstop','[%s][index][musiconholdstop]','[%s][index][newstate]'];(function(_0x108d48,_0x3fc489){var _0x11fb29=function(_0x7e60f3){while(--_0x7e60f3){_0x108d48['push'](_0x108d48['shift']());}};_0x11fb29(++_0x3fc489);}(_0x92cf,0x18c));var _0xf92c=function(_0x4de9e8,_0x565ffa){_0x4de9e8=_0x4de9e8-0x0;var _0x4db0de=_0x92cf[_0x4de9e8];return _0x4db0de;};var AsteriskManager=require(_0xf92c('0x0'));var config=require(_0xf92c('0x1'));var utils=require('./utils');var util=require('util');var ami=new AsteriskManager(config['asterisk'][_0xf92c('0x2')],config[_0xf92c('0x3')]['ip'],config[_0xf92c('0x3')]['username'],config['asterisk'][_0xf92c('0x4')],!![]);ami['keepConnected']();if(config[_0xf92c('0x5')]&&config[_0xf92c('0x5')][_0xf92c('0x6')]){utils[_0xf92c('0x7')](_0xf92c('0x8'));}else{var agents=require('./agents.controller');var calls=require(_0xf92c('0x9'));var queues=require(_0xf92c('0xa'));var recordings=require(_0xf92c('0xb'));var members=require(_0xf92c('0xc'));var dials=require(_0xf92c('0xd'));var transfers=require(_0xf92c('0xe'));var core=require('./core.controller');ami['on'](_0xf92c('0xf'),core['connect']);ami['on'](_0xf92c('0x10'),core[_0xf92c('0x10')]);ami['on']('fullybooted',core[_0xf92c('0x11')]);ami['on']('error',core['error']);ami['on'](_0xf92c('0x12'),core['close']);ami['on']('managerevent',core['managerevent']);ami['on']('devicestatechange',function(_0x20b05b){try{utils['debug'](util['format'](_0xf92c('0x13'),_0x20b05b[_0xf92c('0x14')]),_0x20b05b);members[_0xf92c('0x15')](_0x20b05b);}catch(_0x24db9a){utils[_0xf92c('0x16')](util[_0xf92c('0x17')](_0xf92c('0x13'),_0x20b05b[_0xf92c('0x14')]),_0x24db9a);}});ami['on']('agentcalled',function(_0x1a71b){try{utils[_0xf92c('0x18')](util[_0xf92c('0x17')](_0xf92c('0x19'),_0x1a71b[_0xf92c('0x1a')]),_0x1a71b);agents[_0xf92c('0x1b')](_0x1a71b);}catch(_0x37e5b9){utils[_0xf92c('0x16')](util[_0xf92c('0x17')]('[%s][index][agentcalled]',_0x1a71b[_0xf92c('0x1a')]),_0x37e5b9);}});ami['on'](_0xf92c('0x1c'),function(_0x29f72b){try{utils['debug'](util[_0xf92c('0x17')](_0xf92c('0x1d'),_0x29f72b[_0xf92c('0x1a')]),_0x29f72b);agents['agentringnoanswer'](_0x29f72b);}catch(_0x25522d){utils[_0xf92c('0x16')](util[_0xf92c('0x17')](_0xf92c('0x1d'),_0x29f72b['uniqueid']),_0x25522d);}});ami['on'](_0xf92c('0x1e'),function(_0x5b4dca){try{utils[_0xf92c('0x18')](util['format']('[%s][index][agentconnect]',_0x5b4dca['uniqueid']),_0x5b4dca);agents[_0xf92c('0x1e')](_0x5b4dca);queues[_0xf92c('0x1e')](_0x5b4dca);}catch(_0x4cdbce){utils[_0xf92c('0x16')](util[_0xf92c('0x17')](_0xf92c('0x1f'),_0x5b4dca[_0xf92c('0x1a')]),_0x4cdbce);}});ami['on'](_0xf92c('0x20'),function(_0x257607){try{utils[_0xf92c('0x18')](util['format'](_0xf92c('0x21'),_0x257607[_0xf92c('0x1a')]),_0x257607);agents[_0xf92c('0x20')](_0x257607);queues[_0xf92c('0x20')](_0x257607);members[_0xf92c('0x20')](_0x257607);}catch(_0x169c69){utils[_0xf92c('0x16')](util[_0xf92c('0x17')](_0xf92c('0x21'),_0x257607[_0xf92c('0x1a')]),_0x169c69);}});ami['on'](_0xf92c('0x22'),function(_0xff626a){try{utils[_0xf92c('0x18')](util[_0xf92c('0x17')]('[%s][index][queuecallerabandon]',_0xff626a[_0xf92c('0x1a')]),_0xff626a);agents[_0xf92c('0x22')](_0xff626a);queues['queuecallerabandon'](_0xff626a);}catch(_0x543c70){utils[_0xf92c('0x16')](util['format'](_0xf92c('0x23'),_0xff626a[_0xf92c('0x1a')]),_0x543c70);}});ami['on']('queuecallerjoin',function(_0x5d136e){try{utils[_0xf92c('0x18')](util[_0xf92c('0x17')]('[%s][index][queuecallerjoin]',_0x5d136e[_0xf92c('0x1a')]),_0x5d136e);queues['queuecallerjoin'](_0x5d136e);recordings[_0xf92c('0x24')](_0x5d136e);}catch(_0x1caeb3){utils['error'](util[_0xf92c('0x17')](_0xf92c('0x25'),_0x5d136e[_0xf92c('0x1a')]),_0x1caeb3);}});ami['on'](_0xf92c('0x26'),function(_0x1b77a7){try{utils[_0xf92c('0x18')](util[_0xf92c('0x17')](_0xf92c('0x27'),_0x1b77a7[_0xf92c('0x1a')]),_0x1b77a7);queues[_0xf92c('0x26')](_0x1b77a7);}catch(_0x207eb3){utils[_0xf92c('0x16')](util[_0xf92c('0x17')]('[%s][index][queuecallerleave]',_0x1b77a7[_0xf92c('0x1a')]),_0x207eb3);}});ami['on'](_0xf92c('0x28'),function(_0x29ea69){try{utils[_0xf92c('0x18')](util[_0xf92c('0x17')]('[%s][index][musiconholdstart]',_0x29ea69[_0xf92c('0x1a')]),_0x29ea69);queues['musiconholdstart'](_0x29ea69);calls[_0xf92c('0x28')](_0x29ea69);}catch(_0x55fb45){utils[_0xf92c('0x16')](util[_0xf92c('0x17')](_0xf92c('0x29'),_0x29ea69[_0xf92c('0x1a')]),_0x55fb45);}});ami['on']('musiconholdstop',function(_0x2011b8){try{utils[_0xf92c('0x18')](util[_0xf92c('0x17')]('[%s][index][musiconholdstop]',_0x2011b8['uniqueid']),_0x2011b8);queues[_0xf92c('0x2a')](_0x2011b8);calls[_0xf92c('0x2a')](_0x2011b8);}catch(_0x356e55){utils[_0xf92c('0x16')](util[_0xf92c('0x17')](_0xf92c('0x2b'),_0x2011b8[_0xf92c('0x1a')]),_0x356e55);}});ami['on']('newstate',function(_0x2327fd){try{utils[_0xf92c('0x18')](util[_0xf92c('0x17')](_0xf92c('0x2c'),_0x2327fd[_0xf92c('0x1a')]),_0x2327fd);calls[_0xf92c('0x2d')](_0x2327fd);recordings[_0xf92c('0x2d')](_0x2327fd);}catch(_0x43fc0d){utils[_0xf92c('0x16')](util[_0xf92c('0x17')]('[%s][index][newstate]',_0x2327fd['uniqueid']),_0x43fc0d);}});ami['on'](_0xf92c('0x2e'),function(_0x347cad){try{utils[_0xf92c('0x18')](util[_0xf92c('0x17')](_0xf92c('0x2f'),_0x347cad['uniqueid']),_0x347cad);calls['hangup'](_0x347cad);recordings[_0xf92c('0x2e')](_0x347cad);dials[_0xf92c('0x2e')](_0x347cad);agents['hangup'](_0x347cad);queues[_0xf92c('0x2e')](_0x347cad);}catch(_0x1bb7ca){utils[_0xf92c('0x16')](util['format'](_0xf92c('0x2f'),_0x347cad['uniqueid']),_0x1bb7ca);}});ami['on'](_0xf92c('0x30'),function(_0x5813b8){try{utils[_0xf92c('0x18')](util[_0xf92c('0x17')]('[%s][index][cdr]',_0x5813b8['uniqueid']),_0x5813b8);members[_0xf92c('0x30')](_0x5813b8);}catch(_0xd01392){utils['error'](util[_0xf92c('0x17')]('[%s][index][cdr]',_0x5813b8[_0xf92c('0x1a')]),_0xd01392);}});ami['on'](_0xf92c('0x31'),function(_0x11e7cd){try{utils[_0xf92c('0x18')](util[_0xf92c('0x17')]('[%s][index][blindtransfer]',_0x11e7cd['uniqueid']),_0x11e7cd);queues[_0xf92c('0x31')](_0x11e7cd);agents[_0xf92c('0x31')](_0x11e7cd);transfers[_0xf92c('0x31')](_0x11e7cd);}catch(_0xf77d4d){utils[_0xf92c('0x16')](util[_0xf92c('0x17')](_0xf92c('0x32'),_0x11e7cd['uniqueid']),_0xf77d4d);}});ami['on'](_0xf92c('0x33'),function(_0x55ba62){try{utils['debug'](util[_0xf92c('0x17')](_0xf92c('0x34'),_0x55ba62[_0xf92c('0x35')]),_0x55ba62);queues[_0xf92c('0x33')](_0x55ba62);transfers[_0xf92c('0x33')](_0x55ba62);agents[_0xf92c('0x33')](_0x55ba62);calls['attendedtransfer'](_0x55ba62);}catch(_0x156de5){utils[_0xf92c('0x16')](util[_0xf92c('0x17')](_0xf92c('0x34'),_0x55ba62['origtransfereruniqueid']),_0x156de5);}});ami['on']('varset',function(_0x4ab054){try{utils[_0xf92c('0x18')](util[_0xf92c('0x17')]('[%s][index][varset]',_0x4ab054[_0xf92c('0x1a')]),_0x4ab054);queues[_0xf92c('0x36')](_0x4ab054);recordings['varset'](_0x4ab054);calls[_0xf92c('0x36')](_0x4ab054);dials['varset'](_0x4ab054);}catch(_0x5eaa04){utils['error'](util[_0xf92c('0x17')]('[%s][index][varset]',_0x4ab054[_0xf92c('0x1a')]),_0x5eaa04);}});ami['on'](_0xf92c('0x37'),function(_0x1f2284){try{utils['debug'](util[_0xf92c('0x17')](_0xf92c('0x38'),_0x1f2284[_0xf92c('0x1a')]),_0x1f2284);calls[_0xf92c('0x37')](_0x1f2284);recordings['newexten'](_0x1f2284);dials[_0xf92c('0x37')](_0x1f2284);}catch(_0x59ad9f){utils[_0xf92c('0x16')](util[_0xf92c('0x17')](_0xf92c('0x38'),_0x1f2284[_0xf92c('0x1a')]),_0x59ad9f);}});ami['on'](_0xf92c('0x39'),function(_0x27e9a7){try{utils[_0xf92c('0x18')](util['format'](_0xf92c('0x3a'),_0x27e9a7['uniqueid']),_0x27e9a7);calls[_0xf92c('0x39')](_0x27e9a7);recordings[_0xf92c('0x39')](_0x27e9a7);}catch(_0x4fa30c){utils['error'](util[_0xf92c('0x17')]('[%s][index][newchannel]',_0x27e9a7[_0xf92c('0x1a')]),_0x4fa30c);}});ami['on'](_0xf92c('0x3b'),function(_0x351d5b){try{utils[_0xf92c('0x18')](util[_0xf92c('0x17')]('[%s][index][dialbegin]',_0x351d5b[_0xf92c('0x1a')]),_0x351d5b);dials[_0xf92c('0x3b')](_0x351d5b);}catch(_0xd47540){utils[_0xf92c('0x16')](util[_0xf92c('0x17')](_0xf92c('0x3c'),_0x351d5b[_0xf92c('0x1a')]),_0xd47540);}});ami['on'](_0xf92c('0x3d'),function(_0x14067b){try{utils[_0xf92c('0x18')](util[_0xf92c('0x17')](_0xf92c('0x3e'),_0x14067b[_0xf92c('0x1a')]),_0x14067b);dials[_0xf92c('0x3d')](_0x14067b);}catch(_0x186175){utils[_0xf92c('0x16')](util['format'](_0xf92c('0x3e'),_0x14067b[_0xf92c('0x1a')]),_0x186175);}});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x69d5=['split','then','catch','error','format','some','devicestatechange','debug','[%s][members][devicestatechange]','device','state','INUSE','BUSY','now','isNil','duration','diffTime','exitAt','[%s][members][agentcomplete]','[%s][members][agentcomplete]\x20interface:%s\x20queue:%s','queue','cdr','assign','data1','type','destination','[%s][members][cdr]\x20type:%s\x20source:%s\x20destination:%s','data3','destinationchannel','[%s][members][cdr]','lodash','util','Local/_attended@transfer','Queue:','info','[%s][members][writeDB]\x20interface:%s\x20channel:%s\x20data2:%s\x20agent:%s\x20type:%s','uniqueid','interface','channel','data2','membername','getUserByInterface','name','internal','request','CreateMemberReport'];(function(_0x4b300d,_0xd50c9f){var _0x11e5c3=function(_0x4ba48f){while(--_0x4ba48f){_0x4b300d['push'](_0x4b300d['shift']());}};_0x11e5c3(++_0xd50c9f);}(_0x69d5,0x18e));var _0x569d=function(_0x2a506a,_0x2e86ce){_0x2a506a=_0x2a506a-0x0;var _0x31cc00=_0x69d5[_0x2a506a];return _0x31cc00;};'use strict';var _=require(_0x569d('0x0'));var util=require(_0x569d('0x1'));var utils=require('./utils');var members={};var exclude=[_0x569d('0x2'),_0x569d('0x3')];function writeDB(_0x59d647){utils[_0x569d('0x4')](util['format'](_0x569d('0x5'),_0x59d647[_0x569d('0x6')],_0x59d647[_0x569d('0x7')],_0x59d647[_0x569d('0x8')],_0x59d647[_0x569d('0x9')],_0x59d647[_0x569d('0xa')],_0x59d647['type']));if(_0x59d647['interface']){utils[_0x569d('0xb')](_0x59d647[_0x569d('0x7')])['then'](function(_0x5502a1){if(_0x5502a1){_0x59d647[_0x569d('0xa')]=_0x5502a1[_0x569d('0xc')];_0x59d647[_0x569d('0xd')]=_0x5502a1[_0x569d('0xd')];utils[_0x569d('0xe')](_0x569d('0xf'),_0x59d647);}else{utils['getUserByName'](_0x59d647[_0x569d('0x7')][_0x569d('0x10')]('/')[0x1])[_0x569d('0x11')](function(_0x15a204){if(_0x15a204){_0x59d647['membername']=_0x15a204['name'];_0x59d647[_0x569d('0xd')]=_0x15a204[_0x569d('0xd')];utils[_0x569d('0xe')](_0x569d('0xf'),_0x59d647);}});}})[_0x569d('0x12')](function(_0x2503de){utils[_0x569d('0x13')](util[_0x569d('0x14')]('[%s][members][writeDB]',_0x59d647[_0x569d('0x6')]),_0x2503de);});}delete members[_0x59d647[_0x569d('0x7')]];}function startsWith(_0x407113,_0x43e60e){return _[_0x569d('0x15')](_0x407113,function(_0x5e30b3){return _['startsWith'](_0x43e60e,_0x5e30b3);});}exports[_0x569d('0x16')]=function(_0x42ab46){try{utils[_0x569d('0x17')](util['format'](_0x569d('0x18'),members[_0x42ab46[_0x569d('0x19')]]?members[_0x42ab46['device']][_0x569d('0x6')]:_0x42ab46[_0x569d('0x19')]),_0x42ab46);utils['info'](util[_0x569d('0x14')]('[%s][members][devicestatechange]\x20state:%s\x20interface:%s',members[_0x42ab46[_0x569d('0x19')]]?members[_0x42ab46[_0x569d('0x19')]][_0x569d('0x6')]:_0x42ab46[_0x569d('0x19')],_0x42ab46['state'],_0x42ab46[_0x569d('0x19')]));switch(_0x42ab46[_0x569d('0x1a')]){case _0x569d('0x1b'):case _0x569d('0x1c'):if(!startsWith(exclude,_0x42ab46[_0x569d('0x19')])){members[_0x42ab46[_0x569d('0x19')]]={'channel':'voice','interface':_0x42ab46[_0x569d('0x19')],'type':'TALKING','enterAt':utils[_0x569d('0x1d')](),'role':'agent'};}break;case'NOT_INUSE':if(!_[_0x569d('0x1e')](members[_0x42ab46[_0x569d('0x19')]])){members[_0x42ab46[_0x569d('0x19')]]['exitAt']=utils[_0x569d('0x1d')]();members[_0x42ab46[_0x569d('0x19')]][_0x569d('0x1f')]=utils[_0x569d('0x20')](members[_0x42ab46[_0x569d('0x19')]][_0x569d('0x21')],members[_0x42ab46['device']]['enterAt']);if(members[_0x42ab46[_0x569d('0x19')]]['uniqueid']){writeDB(members[_0x42ab46[_0x569d('0x19')]]);}}break;default:break;}}catch(_0x5e3f5f){utils[_0x569d('0x13')](util[_0x569d('0x14')](_0x569d('0x18'),members[_0x42ab46[_0x569d('0x19')]]?members[_0x42ab46[_0x569d('0x19')]][_0x569d('0x6')]:_0x42ab46['device']),_0x5e3f5f);}};exports['agentcomplete']=function(_0x30d202){try{if(!_[_0x569d('0x1e')](members[_0x30d202[_0x569d('0x7')]])){utils[_0x569d('0x17')](util[_0x569d('0x14')](_0x569d('0x22'),_0x30d202[_0x569d('0x6')]),_0x30d202);utils['info'](util[_0x569d('0x14')](_0x569d('0x23'),_0x30d202[_0x569d('0x6')],_0x30d202['interface'],_0x30d202[_0x569d('0x24')]));members[_0x30d202[_0x569d('0x7')]]=_['assign'](members[_0x30d202[_0x569d('0x7')]],{'data4':_0x30d202[_0x569d('0x24')],'uniqueid':_0x30d202[_0x569d('0x6')]});}}catch(_0x4f9538){utils[_0x569d('0x13')](util['format'](_0x569d('0x22'),_0x30d202[_0x569d('0x6')]),_0x4f9538);}};exports[_0x569d('0x25')]=function(_0x5b4cdf){try{utils['debug'](util[_0x569d('0x14')]('[%s][members][cdr]',_0x5b4cdf[_0x569d('0x6')]),_0x5b4cdf);if(_0x5b4cdf[_0x569d('0x8')]){var _0x174657=_0x5b4cdf['channel'][_0x569d('0x10')]('-')[0x0];if(!_[_0x569d('0x1e')](members[_0x174657])){members[_0x174657]=_[_0x569d('0x26')](members[_0x174657],{'data1':members[_0x174657][_0x569d('0x27')]||_0x5b4cdf[_0x569d('0x28')],'data2':members[_0x174657][_0x569d('0x9')]||_0x5b4cdf['source'],'data3':members[_0x174657]['data3']||_0x5b4cdf[_0x569d('0x29')],'uniqueid':members[_0x174657]['uniqueid']||_0x5b4cdf[_0x569d('0x6')]});utils[_0x569d('0x4')](util[_0x569d('0x14')](_0x569d('0x2a'),_0x5b4cdf[_0x569d('0x6')],members[_0x174657][_0x569d('0x27')],members[_0x174657][_0x569d('0x9')],members[_0x174657][_0x569d('0x2b')]));if(members[_0x174657][_0x569d('0x21')]){writeDB(members[_0x174657]);}}}if(_0x5b4cdf[_0x569d('0x2c')]){var _0x2da59d=_0x5b4cdf['destinationchannel'][_0x569d('0x10')]('-')[0x0];if(!_[_0x569d('0x1e')](members[_0x2da59d])){members[_0x2da59d]=_['assign'](members[_0x2da59d],{'data1':members[_0x2da59d][_0x569d('0x27')]||_0x5b4cdf[_0x569d('0x28')],'data2':members[_0x2da59d][_0x569d('0x9')]||_0x5b4cdf['source'],'data3':members[_0x2da59d][_0x569d('0x2b')]||_0x5b4cdf[_0x569d('0x29')],'uniqueid':members[_0x2da59d][_0x569d('0x6')]||_0x5b4cdf[_0x569d('0x6')]});utils[_0x569d('0x4')](util[_0x569d('0x14')]('[%s][members][cdr]\x20type:%s\x20source:%s\x20destination:%s',_0x5b4cdf[_0x569d('0x6')],members[_0x2da59d]['data1'],members[_0x2da59d][_0x569d('0x9')],members[_0x2da59d]['data3']));if(members[_0x2da59d][_0x569d('0x21')]){writeDB(members[_0x2da59d]);}}}}catch(_0x59e2f8){utils[_0x569d('0x13')](util[_0x569d('0x14')](_0x569d('0x2d'),_0x5b4cdf[_0x569d('0x6')]),_0x59e2f8);}};
\ No newline at end of file
+var _0x342b=['membername','type','getUserByInterface','internal','request','CreateMemberReport','getUserByName','split','then','name','error','format','[%s][members][writeDB]','startsWith','[%s][members][devicestatechange]','device','info','state','INUSE','voice','TALKING','now','agent','NOT_INUSE','duration','diffTime','exitAt','enterAt','isNil','debug','[%s][members][agentcomplete]','[%s][members][agentcomplete]\x20interface:%s\x20queue:%s','queue','cdr','[%s][members][cdr]','assign','data1','data3','destination','destinationchannel','source','lodash','./utils','Local/_attended@transfer','Queue:','uniqueid','interface','channel','data2'];(function(_0x1af006,_0xe1b634){var _0x44b8ee=function(_0x3913a2){while(--_0x3913a2){_0x1af006['push'](_0x1af006['shift']());}};_0x44b8ee(++_0xe1b634);}(_0x342b,0xbc));var _0xb342=function(_0x36f92d,_0x53feb4){_0x36f92d=_0x36f92d-0x0;var _0x10e6ce=_0x342b[_0x36f92d];return _0x10e6ce;};'use strict';var _=require(_0xb342('0x0'));var util=require('util');var utils=require(_0xb342('0x1'));var members={};var exclude=[_0xb342('0x2'),_0xb342('0x3')];function writeDB(_0x586739){utils['info'](util['format']('[%s][members][writeDB]\x20interface:%s\x20channel:%s\x20data2:%s\x20agent:%s\x20type:%s',_0x586739[_0xb342('0x4')],_0x586739[_0xb342('0x5')],_0x586739[_0xb342('0x6')],_0x586739[_0xb342('0x7')],_0x586739[_0xb342('0x8')],_0x586739[_0xb342('0x9')]));if(_0x586739[_0xb342('0x5')]){utils[_0xb342('0xa')](_0x586739['interface'])['then'](function(_0x320a07){if(_0x320a07){_0x586739[_0xb342('0x8')]=_0x320a07['name'];_0x586739[_0xb342('0xb')]=_0x320a07[_0xb342('0xb')];utils[_0xb342('0xc')](_0xb342('0xd'),_0x586739);}else{utils[_0xb342('0xe')](_0x586739[_0xb342('0x5')][_0xb342('0xf')]('/')[0x1])[_0xb342('0x10')](function(_0x35a698){if(_0x35a698){_0x586739[_0xb342('0x8')]=_0x35a698[_0xb342('0x11')];_0x586739['internal']=_0x35a698[_0xb342('0xb')];utils['request']('CreateMemberReport',_0x586739);}});}})['catch'](function(_0x486d98){utils[_0xb342('0x12')](util[_0xb342('0x13')](_0xb342('0x14'),_0x586739[_0xb342('0x4')]),_0x486d98);});}delete members[_0x586739[_0xb342('0x5')]];}function startsWith(_0x28cfde,_0x17f16a){return _['some'](_0x28cfde,function(_0x435b8c){return _[_0xb342('0x15')](_0x17f16a,_0x435b8c);});}exports['devicestatechange']=function(_0x5ee646){try{utils['debug'](util[_0xb342('0x13')](_0xb342('0x16'),members[_0x5ee646['device']]?members[_0x5ee646[_0xb342('0x17')]][_0xb342('0x4')]:_0x5ee646[_0xb342('0x17')]),_0x5ee646);utils[_0xb342('0x18')](util[_0xb342('0x13')]('[%s][members][devicestatechange]\x20state:%s\x20interface:%s',members[_0x5ee646['device']]?members[_0x5ee646[_0xb342('0x17')]]['uniqueid']:_0x5ee646[_0xb342('0x17')],_0x5ee646[_0xb342('0x19')],_0x5ee646[_0xb342('0x17')]));switch(_0x5ee646[_0xb342('0x19')]){case _0xb342('0x1a'):case'BUSY':if(!startsWith(exclude,_0x5ee646[_0xb342('0x17')])){members[_0x5ee646['device']]={'channel':_0xb342('0x1b'),'interface':_0x5ee646['device'],'type':_0xb342('0x1c'),'enterAt':utils[_0xb342('0x1d')](),'role':_0xb342('0x1e')};}break;case _0xb342('0x1f'):if(!_['isNil'](members[_0x5ee646[_0xb342('0x17')]])){members[_0x5ee646['device']]['exitAt']=utils[_0xb342('0x1d')]();members[_0x5ee646['device']][_0xb342('0x20')]=utils[_0xb342('0x21')](members[_0x5ee646[_0xb342('0x17')]][_0xb342('0x22')],members[_0x5ee646['device']][_0xb342('0x23')]);if(members[_0x5ee646[_0xb342('0x17')]][_0xb342('0x4')]){writeDB(members[_0x5ee646[_0xb342('0x17')]]);}}break;default:break;}}catch(_0x4696ac){utils[_0xb342('0x12')](util[_0xb342('0x13')]('[%s][members][devicestatechange]',members[_0x5ee646[_0xb342('0x17')]]?members[_0x5ee646[_0xb342('0x17')]][_0xb342('0x4')]:_0x5ee646['device']),_0x4696ac);}};exports['agentcomplete']=function(_0x5f320d){try{if(!_[_0xb342('0x24')](members[_0x5f320d['interface']])){utils[_0xb342('0x25')](util['format'](_0xb342('0x26'),_0x5f320d[_0xb342('0x4')]),_0x5f320d);utils[_0xb342('0x18')](util[_0xb342('0x13')](_0xb342('0x27'),_0x5f320d['uniqueid'],_0x5f320d[_0xb342('0x5')],_0x5f320d[_0xb342('0x28')]));members[_0x5f320d[_0xb342('0x5')]]=_['assign'](members[_0x5f320d[_0xb342('0x5')]],{'data4':_0x5f320d['queue'],'uniqueid':_0x5f320d[_0xb342('0x4')]});}}catch(_0x670911){utils[_0xb342('0x12')](util[_0xb342('0x13')](_0xb342('0x26'),_0x5f320d[_0xb342('0x4')]),_0x670911);}};exports[_0xb342('0x29')]=function(_0x4aad93){try{utils['debug'](util['format'](_0xb342('0x2a'),_0x4aad93[_0xb342('0x4')]),_0x4aad93);if(_0x4aad93['channel']){var _0x5a9a0f=_0x4aad93[_0xb342('0x6')][_0xb342('0xf')]('-')[0x0];if(!_[_0xb342('0x24')](members[_0x5a9a0f])){members[_0x5a9a0f]=_[_0xb342('0x2b')](members[_0x5a9a0f],{'data1':members[_0x5a9a0f][_0xb342('0x2c')]||_0x4aad93[_0xb342('0x9')],'data2':members[_0x5a9a0f][_0xb342('0x7')]||_0x4aad93['source'],'data3':members[_0x5a9a0f][_0xb342('0x2d')]||_0x4aad93[_0xb342('0x2e')],'uniqueid':members[_0x5a9a0f][_0xb342('0x4')]||_0x4aad93[_0xb342('0x4')]});utils[_0xb342('0x18')](util[_0xb342('0x13')]('[%s][members][cdr]\x20type:%s\x20source:%s\x20destination:%s',_0x4aad93[_0xb342('0x4')],members[_0x5a9a0f][_0xb342('0x2c')],members[_0x5a9a0f][_0xb342('0x7')],members[_0x5a9a0f][_0xb342('0x2d')]));if(members[_0x5a9a0f]['exitAt']){writeDB(members[_0x5a9a0f]);}}}if(_0x4aad93['destinationchannel']){var _0x481b8e=_0x4aad93[_0xb342('0x2f')][_0xb342('0xf')]('-')[0x0];if(!_[_0xb342('0x24')](members[_0x481b8e])){members[_0x481b8e]=_['assign'](members[_0x481b8e],{'data1':members[_0x481b8e][_0xb342('0x2c')]||_0x4aad93[_0xb342('0x9')],'data2':members[_0x481b8e]['data2']||_0x4aad93[_0xb342('0x30')],'data3':members[_0x481b8e][_0xb342('0x2d')]||_0x4aad93[_0xb342('0x2e')],'uniqueid':members[_0x481b8e][_0xb342('0x4')]||_0x4aad93[_0xb342('0x4')]});utils[_0xb342('0x18')](util[_0xb342('0x13')]('[%s][members][cdr]\x20type:%s\x20source:%s\x20destination:%s',_0x4aad93['uniqueid'],members[_0x481b8e][_0xb342('0x2c')],members[_0x481b8e][_0xb342('0x7')],members[_0x481b8e][_0xb342('0x2d')]));if(members[_0x481b8e][_0xb342('0x22')]){writeDB(members[_0x481b8e]);}}}}catch(_0x104ec7){utils[_0xb342('0x12')](util[_0xb342('0x13')](_0xb342('0x2a'),_0x4aad93[_0xb342('0x4')]),_0x104ec7);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xca77=['error','isNil','queuecallerleaveAt','queuecallerabandon','queuecallercomplete','queuecallercompleteAt','now','COMPLETEDBYAGENT','name','transfereduniqueid','queuecallerenterreason','varset','[%s][queues][varset]','variable','queuestatus','queuecallerabandonAt','queuecallerexit','queuecallerexitAt','toUpperCase','[%s][queues][varset]\x20name:%s\x20variable:queuestatus\x20value:%s\x20queuecallerexitreason:%s','value','queueposition','[%s][queues][varset]\x20name:%s\x20variable:queueposition\x20value:%s\x20queuecallerexitreason:%s','ABANDONED','[%s][queues][queuecallerabandon]','queuecallerleave','[%s][queues][queuecallerleave]','connectedlinenum','connectedlinename','holdtime','diffTime','count','agentconnect','[%s][queues][agentconnect]','[%s][queues][agentconnect]\x20name:%s\x20agent:%s\x20accountcode:%s','membername','assigned','agentcomplete','reason','transfer','TRANSFER','COMPLETEDBY','[%s][queues][agentcomplete]\x20name:%s\x20agent:%s\x20queuecallerexitreason:%s','[%s][queues][agentcomplete]','blindtransfer','transfereeuniqueid','[%s][queues][blindtransfer]','transfertype','BLIND','transferexten','transferuniqueid','BLINDTRANSFER','[%s][queues][blindtransfer]\x20name:%s\x20transferuniqueid:%s\x20transferexten:%s\x20queuecallerexitreason:BLINDTRANSFER','extension','attendedtransfer','origtransfereruniqueid','origtransfererlinkedid','secondtransfererlinkedid','[%s][queues][attendedtransfer]\x20name:%s\x20transferexten:%s\x20queuecallerexitreason:ATTENDEDTRANSFER','origtransfererexten','ATTENDED','ATTENDEDTRANSFER','transfereelinkedid','transfertargetuniqueid','calleridname','queuecallerjoinAt','[%s][queues][attendedtransfer]\x20name:%s\x20transfereduniqueid:%s','secondtransfereruniqueid','[%s][queues][attendedtransfer]\x20name:%s\x20transferuniqueid:%s\x20transferexten:%s\x20queuecallerexitreason:ATTENDEDTRANSFER','secondtransfererexten','transfertargetlinkedid','[%s][queues][attendedtransfer]\x20name:%s\x20transfereduniqueid:%s\x20calleridnum:%s\x20calleridname:%s','[%s][queues][attendedtransfer]','musiconholdstart','[%s][queues][musiconholdstart]','musiconholdstartAt','[%s][queues][musiconholdstop]\x20name:%s\x20musiconholdstartAt:%s','musiconholdstop','[%s][queues][musiconholdstop]','mohtime','[%s][queues][musiconholdstop]\x20name:%s\x20mohtime:%s','lodash','util','./utils','info','format','channel','lastAssignedTo','calleridnum','accountcode','queuecallerexitreason','queue','getVoiceQueueByName','then','type','CreateVoiceQueueReport','request','uniqueid','queuecallerjoin','debug','[%s][queues][queuecallerjoin]','[%s][queues][queuecallerjoin]\x20name:%s\x20position:%s','position'];(function(_0x19af5c,_0x2a00c0){var _0x3a9696=function(_0x1ff80b){while(--_0x1ff80b){_0x19af5c['push'](_0x19af5c['shift']());}};_0x3a9696(++_0x2a00c0);}(_0xca77,0x11f));var _0x7ca7=function(_0x4d8160,_0x3f97a4){_0x4d8160=_0x4d8160-0x0;var _0x178c13=_0xca77[_0x4d8160];return _0x178c13;};'use strict';var _=require(_0x7ca7('0x0'));var util=require(_0x7ca7('0x1'));var utils=require(_0x7ca7('0x2'));var queues={};function writeDB(_0x42fbf1){utils[_0x7ca7('0x3')](util[_0x7ca7('0x4')]('[%s][queues][writeDB]\x20channel:%s\x20queue:%s\x20lastAssignedTo:%s\x20calleridnum:%s\x20accountcode:%s\x20queuecallerexitreason:%s',_0x42fbf1['uniqueid'],_0x42fbf1[_0x7ca7('0x5')],_0x42fbf1['queue'],_0x42fbf1[_0x7ca7('0x6')],_0x42fbf1[_0x7ca7('0x7')],_0x42fbf1[_0x7ca7('0x8')],_0x42fbf1[_0x7ca7('0x9')]));if(_0x42fbf1[_0x7ca7('0xa')]){utils[_0x7ca7('0xb')](_0x42fbf1[_0x7ca7('0xa')])[_0x7ca7('0xc')](function(_0x4dfa71){if(_0x4dfa71){_0x42fbf1[_0x7ca7('0xd')]=_0x4dfa71[_0x7ca7('0xd')];}utils['request'](_0x7ca7('0xe'),_0x42fbf1);});}else{utils[_0x7ca7('0xf')](_0x7ca7('0xe'),_0x42fbf1);}if(_0x42fbf1['transfereduniqueid']){delete queues[_0x42fbf1['transfereduniqueid']];}else{delete queues[_0x42fbf1[_0x7ca7('0x10')]];}}exports[_0x7ca7('0x11')]=function(_0xb9e3f8){try{utils[_0x7ca7('0x12')](util['format'](_0x7ca7('0x13'),_0xb9e3f8['uniqueid']),_0xb9e3f8);utils['info'](util[_0x7ca7('0x4')](_0x7ca7('0x14'),_0xb9e3f8['uniqueid'],_0xb9e3f8[_0x7ca7('0xa')],_0xb9e3f8[_0x7ca7('0x15')]));queues[_0xb9e3f8['uniqueid']]=_['assign'](_0xb9e3f8,{'originalposition':_0xb9e3f8[_0x7ca7('0x15')],'queuecallerjoinAt':utils['now'](),'mohtime':0x0});}catch(_0x2a2fe3){utils[_0x7ca7('0x16')](util['format']('[%s][queues][queuecallerjoin]',_0xb9e3f8[_0x7ca7('0x10')]),_0x2a2fe3);}};exports['hangup']=function(_0x332128){try{if(!_[_0x7ca7('0x17')](queues[_0x332128[_0x7ca7('0x10')]])){utils['debug'](util[_0x7ca7('0x4')]('[%s][queues][hangup]',_0x332128[_0x7ca7('0x10')]),_0x332128);if(queues[_0x332128[_0x7ca7('0x10')]][_0x7ca7('0x18')]){if(!queues[_0x332128[_0x7ca7('0x10')]][_0x7ca7('0x19')]&&!queues[_0x332128[_0x7ca7('0x10')]]['queuecallerexit']){queues[_0x332128[_0x7ca7('0x10')]][_0x7ca7('0x1a')]=!![];queues[_0x332128[_0x7ca7('0x10')]][_0x7ca7('0x1b')]=utils[_0x7ca7('0x1c')]();queues[_0x332128[_0x7ca7('0x10')]][_0x7ca7('0x9')]=_0x7ca7('0x1d');}utils[_0x7ca7('0x3')](util['format']('[%s][queues][hangup]\x20name:%s\x20queuecallerexitreason:%s',_0x332128[_0x7ca7('0x10')],queues[_0x332128[_0x7ca7('0x10')]][_0x7ca7('0x1e')],queues[_0x332128[_0x7ca7('0x10')]][_0x7ca7('0x9')]));writeDB(queues[_0x332128[_0x7ca7('0x10')]]);}else if(queues[_0x332128['uniqueid']]['transfereduniqueid']){utils[_0x7ca7('0x3')](util[_0x7ca7('0x4')]('[%s][queues][hangup]\x20name:%s\x20transfereduniqueid:%s',_0x332128[_0x7ca7('0x10')],queues[_0x332128[_0x7ca7('0x10')]][_0x7ca7('0x1e')],queues[_0x332128['uniqueid']][_0x7ca7('0x1f')]));queues[queues[_0x332128['uniqueid']][_0x7ca7('0x1f')]]=queues[_0x332128[_0x7ca7('0x10')]];queues[queues[_0x332128[_0x7ca7('0x10')]][_0x7ca7('0x1f')]][_0x7ca7('0x20')]=0x2;delete queues[_0x332128['uniqueid']];}}}catch(_0x537e94){utils[_0x7ca7('0x16')](util[_0x7ca7('0x4')]('[%s][queues][hangup]',_0x332128['uniqueid']),_0x537e94);}};exports[_0x7ca7('0x21')]=function(_0x6de56e){try{utils[_0x7ca7('0x12')](util['format'](_0x7ca7('0x22'),_0x6de56e[_0x7ca7('0x10')]),_0x6de56e);if(!_['isNil'](_0x6de56e[_0x7ca7('0x23')][_0x7ca7('0x24')])&&_0x6de56e['value']['toUpperCase']()!=='CONTINUE'){if(!_[_0x7ca7('0x17')](queues[_0x6de56e[_0x7ca7('0x10')]])){queues[_0x6de56e[_0x7ca7('0x10')]][_0x7ca7('0x19')]=![];queues[_0x6de56e[_0x7ca7('0x10')]][_0x7ca7('0x25')]=null;queues[_0x6de56e[_0x7ca7('0x10')]][_0x7ca7('0x26')]=!![];queues[_0x6de56e['uniqueid']][_0x7ca7('0x27')]=utils[_0x7ca7('0x1c')]();queues[_0x6de56e[_0x7ca7('0x10')]][_0x7ca7('0x9')]=_0x6de56e['value'][_0x7ca7('0x28')]();utils[_0x7ca7('0x3')](util[_0x7ca7('0x4')](_0x7ca7('0x29'),_0x6de56e[_0x7ca7('0x10')],queues[_0x6de56e[_0x7ca7('0x10')]][_0x7ca7('0x1e')],_0x6de56e[_0x7ca7('0x2a')],queues[_0x6de56e[_0x7ca7('0x10')]]['queuecallerexitreason']));writeDB(queues[_0x6de56e['uniqueid']]);}}else if(!_[_0x7ca7('0x17')](_0x6de56e[_0x7ca7('0x23')][_0x7ca7('0x2b')])){if(!_[_0x7ca7('0x17')](queues[_0x6de56e[_0x7ca7('0x10')]])&&!queues[_0x6de56e[_0x7ca7('0x10')]][_0x7ca7('0x19')]){queues[_0x6de56e[_0x7ca7('0x10')]][_0x7ca7('0x19')]=![];queues[_0x6de56e[_0x7ca7('0x10')]]['queuecallerabandonAt']=null;queues[_0x6de56e[_0x7ca7('0x10')]][_0x7ca7('0x26')]=!![];queues[_0x6de56e[_0x7ca7('0x10')]]['queuecallerexitAt']=utils[_0x7ca7('0x1c')]();queues[_0x6de56e['uniqueid']][_0x7ca7('0x9')]='EXITWITHKEY';utils[_0x7ca7('0x3')](util[_0x7ca7('0x4')](_0x7ca7('0x2c'),_0x6de56e[_0x7ca7('0x10')],queues[_0x6de56e['uniqueid']][_0x7ca7('0x1e')],_0x6de56e[_0x7ca7('0x2a')],queues[_0x6de56e['uniqueid']]['queuecallerexitreason']));}}}catch(_0x4f9a6e){utils[_0x7ca7('0x16')](util[_0x7ca7('0x4')](_0x7ca7('0x22'),_0x6de56e['uniqueid']),_0x4f9a6e);}};exports[_0x7ca7('0x19')]=function(_0x1cb5df){try{if(!_[_0x7ca7('0x17')](queues[_0x1cb5df[_0x7ca7('0x10')]])){utils[_0x7ca7('0x12')](util['format']('[%s][queues][queuecallerabandon]',_0x1cb5df['uniqueid']),_0x1cb5df);queues[_0x1cb5df['uniqueid']][_0x7ca7('0x26')]=![];queues[_0x1cb5df['uniqueid']][_0x7ca7('0x27')]=null;queues[_0x1cb5df[_0x7ca7('0x10')]][_0x7ca7('0x19')]=!![];queues[_0x1cb5df[_0x7ca7('0x10')]][_0x7ca7('0x25')]=utils['now']();queues[_0x1cb5df[_0x7ca7('0x10')]][_0x7ca7('0x9')]=_0x7ca7('0x2d');utils[_0x7ca7('0x3')](util['format']('[%s][queues][queuecallerabandon]\x20name:%s\x20queuecallerexitreason:%s',_0x1cb5df['uniqueid'],queues[_0x1cb5df[_0x7ca7('0x10')]][_0x7ca7('0x1e')],queues[_0x1cb5df[_0x7ca7('0x10')]]['queuecallerexitreason']));}}catch(_0x2f7944){utils[_0x7ca7('0x16')](util[_0x7ca7('0x4')](_0x7ca7('0x2e'),_0x1cb5df['uniqueid']),_0x2f7944);}};exports[_0x7ca7('0x2f')]=function(_0x39f1a6){try{if(!_[_0x7ca7('0x17')](queues[_0x39f1a6[_0x7ca7('0x10')]])){utils[_0x7ca7('0x12')](util[_0x7ca7('0x4')](_0x7ca7('0x30'),_0x39f1a6['uniqueid']),_0x39f1a6);utils[_0x7ca7('0x3')](util['format']('[%s][queues][queuecallerleave]\x20name:%s\x20connectedlinenum:%s\x20connectedlinename:%s',_0x39f1a6['uniqueid'],queues[_0x39f1a6['uniqueid']][_0x7ca7('0x1e')],_0x39f1a6[_0x7ca7('0x31')],_0x39f1a6[_0x7ca7('0x32')]));queues[_0x39f1a6['uniqueid']][_0x7ca7('0x2f')]=!![];queues[_0x39f1a6[_0x7ca7('0x10')]][_0x7ca7('0x18')]=utils[_0x7ca7('0x1c')]();queues[_0x39f1a6[_0x7ca7('0x10')]][_0x7ca7('0x33')]=utils[_0x7ca7('0x34')](queues[_0x39f1a6[_0x7ca7('0x10')]][_0x7ca7('0x18')],queues[_0x39f1a6[_0x7ca7('0x10')]]['queuecallerjoinAt']);queues[_0x39f1a6[_0x7ca7('0x10')]]['position']=_0x39f1a6[_0x7ca7('0x15')];queues[_0x39f1a6['uniqueid']]['count']=_0x39f1a6[_0x7ca7('0x35')];queues[_0x39f1a6[_0x7ca7('0x10')]][_0x7ca7('0x31')]=_0x39f1a6[_0x7ca7('0x31')];queues[_0x39f1a6[_0x7ca7('0x10')]]['connectedlinename']=_0x39f1a6['connectedlinename'];}}catch(_0x85b628){utils[_0x7ca7('0x16')](util[_0x7ca7('0x4')](_0x7ca7('0x30'),_0x39f1a6[_0x7ca7('0x10')]),_0x85b628);}};exports[_0x7ca7('0x36')]=function(_0x3a960e){try{if(!_[_0x7ca7('0x17')](queues[_0x3a960e[_0x7ca7('0x10')]])){utils['debug'](util['format'](_0x7ca7('0x37'),_0x3a960e[_0x7ca7('0x10')]),_0x3a960e);utils['info'](util[_0x7ca7('0x4')](_0x7ca7('0x38'),_0x3a960e['uniqueid'],queues[_0x3a960e[_0x7ca7('0x10')]][_0x7ca7('0x1e')],_0x3a960e[_0x7ca7('0x39')],_0x3a960e['destaccountcode']));queues[_0x3a960e['uniqueid']][_0x7ca7('0x19')]=![];queues[_0x3a960e['uniqueid']][_0x7ca7('0x19')]=![];queues[_0x3a960e['uniqueid']]['queuecallerabandonAt']=null;queues[_0x3a960e[_0x7ca7('0x10')]]['queuecallerexit']=![];queues[_0x3a960e[_0x7ca7('0x10')]][_0x7ca7('0x9')]=null;queues[_0x3a960e['uniqueid']][_0x7ca7('0x27')]=null;queues[_0x3a960e[_0x7ca7('0x10')]][_0x7ca7('0x3a')]=!![];queues[_0x3a960e[_0x7ca7('0x10')]][_0x7ca7('0x8')]=_0x3a960e['destaccountcode'];queues[_0x3a960e['uniqueid']][_0x7ca7('0x6')]=_0x3a960e[_0x7ca7('0x39')];}}catch(_0x1d331f){utils['error'](util[_0x7ca7('0x4')](_0x7ca7('0x37'),_0x3a960e[_0x7ca7('0x10')]),_0x1d331f);}};exports[_0x7ca7('0x3b')]=function(_0x317ab9){try{if(!_[_0x7ca7('0x17')](queues[_0x317ab9['uniqueid']])){if(queues[_0x317ab9[_0x7ca7('0x10')]][_0x7ca7('0x18')]){utils[_0x7ca7('0x12')](util[_0x7ca7('0x4')]('[%s][queues][agentcomplete]',_0x317ab9[_0x7ca7('0x10')]),_0x317ab9);queues[_0x317ab9['uniqueid']]['queuecallerabandon']=![];queues[_0x317ab9[_0x7ca7('0x10')]][_0x7ca7('0x19')]=![];queues[_0x317ab9[_0x7ca7('0x10')]][_0x7ca7('0x25')]=null;queues[_0x317ab9[_0x7ca7('0x10')]][_0x7ca7('0x26')]=![];queues[_0x317ab9[_0x7ca7('0x10')]]['queuecallerexitAt']=null;queues[_0x317ab9[_0x7ca7('0x10')]][_0x7ca7('0x3a')]=!![];queues[_0x317ab9['uniqueid']][_0x7ca7('0x6')]=_0x317ab9[_0x7ca7('0x39')];queues[_0x317ab9['uniqueid']]['queuecallercomplete']=!![];queues[_0x317ab9[_0x7ca7('0x10')]][_0x7ca7('0x1b')]=utils[_0x7ca7('0x1c')]();if(_0x317ab9[_0x7ca7('0x3c')]=='transfer'){if(!queues[_0x317ab9['uniqueid']][_0x7ca7('0x3d')]){queues[_0x317ab9[_0x7ca7('0x10')]][_0x7ca7('0x9')]=_0x7ca7('0x3e');}}else{queues[_0x317ab9[_0x7ca7('0x10')]][_0x7ca7('0x9')]=_0x7ca7('0x3f')+_0x317ab9['reason']['toUpperCase']();}utils[_0x7ca7('0x3')](util[_0x7ca7('0x4')](_0x7ca7('0x40'),_0x317ab9[_0x7ca7('0x10')],queues[_0x317ab9[_0x7ca7('0x10')]][_0x7ca7('0x1e')],_0x317ab9[_0x7ca7('0x39')],queues[_0x317ab9[_0x7ca7('0x10')]][_0x7ca7('0x9')]));writeDB(queues[_0x317ab9[_0x7ca7('0x10')]]);}}}catch(_0x5f1696){utils[_0x7ca7('0x16')](util['format'](_0x7ca7('0x41'),_0x317ab9[_0x7ca7('0x10')]),_0x5f1696);}};exports[_0x7ca7('0x42')]=function(_0x6b28ae){try{if(!_[_0x7ca7('0x17')](queues[_0x6b28ae[_0x7ca7('0x43')]])){utils['debug'](util['format'](_0x7ca7('0x44'),_0x6b28ae[_0x7ca7('0x10')]),_0x6b28ae);queues[_0x6b28ae[_0x7ca7('0x43')]][_0x7ca7('0x3d')]=!![];queues[_0x6b28ae[_0x7ca7('0x43')]][_0x7ca7('0x45')]=_0x7ca7('0x46');queues[_0x6b28ae[_0x7ca7('0x43')]][_0x7ca7('0x47')]=_0x6b28ae['extension'];queues[_0x6b28ae['transfereeuniqueid']][_0x7ca7('0x48')]=_0x6b28ae[_0x7ca7('0x43')];queues[_0x6b28ae['transfereeuniqueid']]['queuecallerexitreason']=_0x7ca7('0x49');utils[_0x7ca7('0x3')](util['format'](_0x7ca7('0x4a'),_0x6b28ae['uniqueid'],queues[_0x6b28ae[_0x7ca7('0x43')]][_0x7ca7('0x1e')],_0x6b28ae[_0x7ca7('0x43')],_0x6b28ae[_0x7ca7('0x4b')]));}}catch(_0x2761ff){utils[_0x7ca7('0x16')](util[_0x7ca7('0x4')](_0x7ca7('0x44'),_0x6b28ae[_0x7ca7('0x10')]),_0x2761ff);}};exports[_0x7ca7('0x4c')]=function(_0x412fb7){try{utils['debug'](util[_0x7ca7('0x4')]('[%s][queues][attendedtransfer]',_0x412fb7[_0x7ca7('0x4d')]),_0x412fb7);if(_0x412fb7['origtransfereruniqueid']==_0x412fb7[_0x7ca7('0x4e')]){if(!_[_0x7ca7('0x17')](queues[_0x412fb7[_0x7ca7('0x4f')]])){utils[_0x7ca7('0x3')](util[_0x7ca7('0x4')](_0x7ca7('0x50'),_0x412fb7['origtransfereruniqueid'],queues[_0x412fb7[_0x7ca7('0x4f')]]['name'],_0x412fb7[_0x7ca7('0x51')]));queues[_0x412fb7[_0x7ca7('0x4f')]]['transfer']=!![];queues[_0x412fb7[_0x7ca7('0x4f')]][_0x7ca7('0x45')]=_0x7ca7('0x52');queues[_0x412fb7['secondtransfererlinkedid']][_0x7ca7('0x47')]=_0x412fb7['origtransfererexten'];queues[_0x412fb7['secondtransfererlinkedid']][_0x7ca7('0x48')]=_0x412fb7[_0x7ca7('0x4d')];queues[_0x412fb7['secondtransfererlinkedid']]['queuecallerexitreason']=_0x7ca7('0x53');}if(!_[_0x7ca7('0x17')](queues[_0x412fb7['origtransfererlinkedid']])){if(_0x412fb7[_0x7ca7('0x54')]&&queues[_0x412fb7['transfereelinkedid']]){queues[_0x412fb7[_0x7ca7('0x54')]][_0x7ca7('0x20')]=0x1;queues[_0x412fb7['transfereeuniqueid']]=_['clone'](queues[_0x412fb7[_0x7ca7('0x54')]]);queues[_0x412fb7[_0x7ca7('0x43')]][_0x7ca7('0x1f')]=_0x412fb7[_0x7ca7('0x55')];queues[_0x412fb7['transfereeuniqueid']]['queuecallerenterreason']=0x2;queues[_0x412fb7[_0x7ca7('0x43')]][_0x7ca7('0x7')]=queues[_0x412fb7[_0x7ca7('0x4f')]][_0x7ca7('0x7')];queues[_0x412fb7['transfereeuniqueid']]['calleridname']=queues[_0x412fb7[_0x7ca7('0x4f')]][_0x7ca7('0x56')];queues[_0x412fb7[_0x7ca7('0x43')]][_0x7ca7('0x57')]=utils[_0x7ca7('0x1c')]();queues[_0x412fb7[_0x7ca7('0x43')]]['queuecallerleaveAt']=utils['now']();queues[_0x412fb7['transfereeuniqueid']][_0x7ca7('0x33')]=0x0;queues[_0x412fb7[_0x7ca7('0x43')]]['mohtime']=0x0;utils['info'](util[_0x7ca7('0x4')]('[%s][queues][attendedtransfer]\x20name:%s\x20calleridnum:%s\x20calleridname:%s',_0x412fb7[_0x7ca7('0x4d')],queues[_0x412fb7[_0x7ca7('0x43')]][_0x7ca7('0x1e')],queues[_0x412fb7[_0x7ca7('0x43')]][_0x7ca7('0x7')],queues[_0x412fb7[_0x7ca7('0x43')]][_0x7ca7('0x56')]));}else{utils[_0x7ca7('0x3')](util[_0x7ca7('0x4')](_0x7ca7('0x58'),_0x412fb7['origtransfereruniqueid'],queues[_0x412fb7[_0x7ca7('0x4e')]][_0x7ca7('0x1e')],_0x412fb7[_0x7ca7('0x4f')]));queues[_0x412fb7[_0x7ca7('0x4e')]][_0x7ca7('0x1f')]=_0x412fb7[_0x7ca7('0x4f')];}}}else if(_0x412fb7[_0x7ca7('0x59')]==_0x412fb7[_0x7ca7('0x4f')]){if(!_[_0x7ca7('0x17')](queues[_0x412fb7[_0x7ca7('0x4e')]])){utils[_0x7ca7('0x3')](util['format'](_0x7ca7('0x5a'),_0x412fb7['origtransfereruniqueid'],queues[_0x412fb7[_0x7ca7('0x4e')]][_0x7ca7('0x1e')],_0x412fb7[_0x7ca7('0x59')],_0x412fb7[_0x7ca7('0x5b')]));queues[_0x412fb7[_0x7ca7('0x4e')]][_0x7ca7('0x3d')]=!![];queues[_0x412fb7[_0x7ca7('0x4e')]][_0x7ca7('0x45')]=_0x7ca7('0x52');queues[_0x412fb7[_0x7ca7('0x4e')]]['transferexten']=_0x412fb7[_0x7ca7('0x5b')];queues[_0x412fb7[_0x7ca7('0x4e')]]['transferuniqueid']=_0x412fb7[_0x7ca7('0x59')];queues[_0x412fb7[_0x7ca7('0x4e')]][_0x7ca7('0x9')]='ATTENDEDTRANSFER';}if(!_[_0x7ca7('0x17')](queues[_0x412fb7['secondtransfererlinkedid']])){if(_0x412fb7[_0x7ca7('0x5c')]&&queues[_0x412fb7[_0x7ca7('0x5c')]]){queues[_0x412fb7['transfertargetlinkedid']][_0x7ca7('0x20')]=0x1;queues[_0x412fb7[_0x7ca7('0x55')]]=_['clone'](queues[_0x412fb7[_0x7ca7('0x5c')]]);queues[_0x412fb7[_0x7ca7('0x55')]][_0x7ca7('0x1f')]=_0x412fb7['transfertargetuniqueid'];queues[_0x412fb7[_0x7ca7('0x55')]][_0x7ca7('0x20')]=0x2;queues[_0x412fb7[_0x7ca7('0x55')]][_0x7ca7('0x7')]=queues[_0x412fb7['origtransfererlinkedid']]['calleridnum'];queues[_0x412fb7['transfertargetuniqueid']][_0x7ca7('0x56')]=queues[_0x412fb7[_0x7ca7('0x4e')]][_0x7ca7('0x56')];queues[_0x412fb7[_0x7ca7('0x55')]][_0x7ca7('0x57')]=utils[_0x7ca7('0x1c')]();queues[_0x412fb7[_0x7ca7('0x55')]][_0x7ca7('0x18')]=utils[_0x7ca7('0x1c')]();queues[_0x412fb7[_0x7ca7('0x55')]][_0x7ca7('0x33')]=0x0;queues[_0x412fb7['transfertargetuniqueid']]['mohtime']=0x0;utils[_0x7ca7('0x3')](util[_0x7ca7('0x4')](_0x7ca7('0x5d'),_0x412fb7['origtransfereruniqueid'],queues[_0x412fb7[_0x7ca7('0x55')]][_0x7ca7('0x1e')],queues[_0x412fb7[_0x7ca7('0x55')]][_0x7ca7('0x1f')],queues[_0x412fb7['transfertargetuniqueid']][_0x7ca7('0x7')],queues[_0x412fb7[_0x7ca7('0x55')]][_0x7ca7('0x56')]));}else{utils[_0x7ca7('0x3')](util[_0x7ca7('0x4')]('[%s][queues][attendedtransfer]\x20name:%s\x20transfereduniqueid:%s',_0x412fb7['origtransfereruniqueid'],queues[_0x412fb7[_0x7ca7('0x4f')]][_0x7ca7('0x1e')],_0x412fb7[_0x7ca7('0x4e')]));queues[_0x412fb7['secondtransfererlinkedid']][_0x7ca7('0x1f')]=_0x412fb7['origtransfererlinkedid'];}}}}catch(_0x2f88d5){utils[_0x7ca7('0x16')](util[_0x7ca7('0x4')](_0x7ca7('0x5e'),_0x412fb7[_0x7ca7('0x4d')]),_0x2f88d5);}};exports[_0x7ca7('0x5f')]=function(_0x298706){try{if(!_[_0x7ca7('0x17')](queues[_0x298706[_0x7ca7('0x10')]])){utils[_0x7ca7('0x12')](util[_0x7ca7('0x4')](_0x7ca7('0x60'),_0x298706[_0x7ca7('0x10')]),_0x298706);queues[_0x298706['uniqueid']][_0x7ca7('0x61')]=utils[_0x7ca7('0x1c')]();utils[_0x7ca7('0x3')](util['format'](_0x7ca7('0x62'),_0x298706[_0x7ca7('0x10')],queues[_0x298706[_0x7ca7('0x10')]][_0x7ca7('0x1e')],queues[_0x298706[_0x7ca7('0x10')]][_0x7ca7('0x61')]));}}catch(_0x130551){utils['error'](util[_0x7ca7('0x4')](_0x7ca7('0x60'),_0x298706[_0x7ca7('0x10')]),_0x130551);}};exports[_0x7ca7('0x63')]=function(_0x551c4f){try{if(!_['isNil'](queues[_0x551c4f[_0x7ca7('0x10')]])){if(!_[_0x7ca7('0x17')](queues[_0x551c4f[_0x7ca7('0x10')]]['musiconholdstartAt'])){utils[_0x7ca7('0x12')](util['format'](_0x7ca7('0x64'),_0x551c4f[_0x7ca7('0x10')]),_0x551c4f);queues[_0x551c4f[_0x7ca7('0x10')]][_0x7ca7('0x65')]+=utils['diffTime'](utils[_0x7ca7('0x1c')](),queues[_0x551c4f[_0x7ca7('0x10')]]['musiconholdstartAt']);utils['info'](util[_0x7ca7('0x4')](_0x7ca7('0x66'),_0x551c4f[_0x7ca7('0x10')],queues[_0x551c4f[_0x7ca7('0x10')]][_0x7ca7('0x1e')],queues[_0x551c4f[_0x7ca7('0x10')]][_0x7ca7('0x65')]));delete queues[_0x551c4f[_0x7ca7('0x10')]][_0x7ca7('0x61')];}}}catch(_0x146b9a){utils[_0x7ca7('0x16')](util[_0x7ca7('0x4')](_0x7ca7('0x64'),_0x551c4f['uniqueid']),_0x146b9a);}};
\ No newline at end of file
+var _0x32b0=['[%s][queues][attendedtransfer]\x20name:%s\x20calleridnum:%s\x20calleridname:%s','[%s][queues][attendedtransfer]\x20name:%s\x20transfereduniqueid:%s','secondtransfereruniqueid','secondtransfererexten','ATTENDED','ATTENDEDTRANSFER','transfertargetlinkedid','transfertargetuniqueid','mohtime','[%s][queues][attendedtransfer]\x20name:%s\x20transfereduniqueid:%s\x20calleridnum:%s\x20calleridname:%s','musiconholdstart','[%s][queues][musiconholdstart]','[%s][queues][musiconholdstop]\x20name:%s\x20musiconholdstartAt:%s','musiconholdstartAt','musiconholdstop','[%s][queues][musiconholdstop]\x20name:%s\x20mohtime:%s','[%s][queues][musiconholdstop]','lodash','info','[%s][queues][writeDB]\x20channel:%s\x20queue:%s\x20lastAssignedTo:%s\x20calleridnum:%s\x20accountcode:%s\x20queuecallerexitreason:%s','uniqueid','queue','queuecallerexitreason','getVoiceQueueByName','then','type','request','CreateVoiceQueueReport','transfereduniqueid','queuecallerjoin','format','[%s][queues][queuecallerjoin]','[%s][queues][queuecallerjoin]\x20name:%s\x20position:%s','position','assign','now','error','hangup','isNil','debug','[%s][queues][hangup]','queuecallerleaveAt','queuecallerexit','queuecallercompleteAt','COMPLETEDBYAGENT','[%s][queues][hangup]\x20name:%s\x20queuecallerexitreason:%s','name','queuecallerenterreason','varset','[%s][queues][varset]','variable','value','toUpperCase','queuecallerexitAt','[%s][queues][varset]\x20name:%s\x20variable:queuestatus\x20value:%s\x20queuecallerexitreason:%s','queueposition','queuecallerabandon','[%s][queues][varset]\x20name:%s\x20variable:queueposition\x20value:%s\x20queuecallerexitreason:%s','[%s][queues][queuecallerabandon]','queuecallerabandonAt','ABANDONED','[%s][queues][queuecallerabandon]\x20name:%s\x20queuecallerexitreason:%s','queuecallerleave','[%s][queues][queuecallerleave]\x20name:%s\x20connectedlinenum:%s\x20connectedlinename:%s','connectedlinename','holdtime','diffTime','queuecallerjoinAt','count','connectedlinenum','agentconnect','[%s][queues][agentconnect]','membername','destaccountcode','lastAssignedTo','agentcomplete','assigned','queuecallercomplete','reason','transfer','TRANSFER','[%s][queues][agentcomplete]\x20name:%s\x20agent:%s\x20queuecallerexitreason:%s','[%s][queues][agentcomplete]','transfereeuniqueid','transfertype','BLIND','transferexten','extension','BLINDTRANSFER','[%s][queues][blindtransfer]\x20name:%s\x20transferuniqueid:%s\x20transferexten:%s\x20queuecallerexitreason:BLINDTRANSFER','[%s][queues][blindtransfer]','attendedtransfer','origtransfereruniqueid','origtransfererlinkedid','secondtransfererlinkedid','[%s][queues][attendedtransfer]\x20name:%s\x20transferexten:%s\x20queuecallerexitreason:ATTENDEDTRANSFER','origtransfererexten','transferuniqueid','transfereelinkedid','clone','calleridnum','calleridname'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x32b0,0x77));var _0x032b=function(_0x6cdd46,_0x15d4cd){_0x6cdd46=_0x6cdd46-0x0;var _0x2c6fc7=_0x32b0[_0x6cdd46];return _0x2c6fc7;};'use strict';var _=require(_0x032b('0x0'));var util=require('util');var utils=require('./utils');var queues={};function writeDB(_0x1af794){utils[_0x032b('0x1')](util['format'](_0x032b('0x2'),_0x1af794[_0x032b('0x3')],_0x1af794['channel'],_0x1af794[_0x032b('0x4')],_0x1af794['lastAssignedTo'],_0x1af794['calleridnum'],_0x1af794['accountcode'],_0x1af794[_0x032b('0x5')]));if(_0x1af794[_0x032b('0x4')]){utils[_0x032b('0x6')](_0x1af794[_0x032b('0x4')])[_0x032b('0x7')](function(_0x2894d1){if(_0x2894d1){_0x1af794[_0x032b('0x8')]=_0x2894d1['type'];}utils[_0x032b('0x9')](_0x032b('0xa'),_0x1af794);});}else{utils['request'](_0x032b('0xa'),_0x1af794);}if(_0x1af794[_0x032b('0xb')]){delete queues[_0x1af794[_0x032b('0xb')]];}else{delete queues[_0x1af794[_0x032b('0x3')]];}}exports[_0x032b('0xc')]=function(_0x3662af){try{utils['debug'](util[_0x032b('0xd')](_0x032b('0xe'),_0x3662af[_0x032b('0x3')]),_0x3662af);utils[_0x032b('0x1')](util['format'](_0x032b('0xf'),_0x3662af[_0x032b('0x3')],_0x3662af[_0x032b('0x4')],_0x3662af[_0x032b('0x10')]));queues[_0x3662af['uniqueid']]=_[_0x032b('0x11')](_0x3662af,{'originalposition':_0x3662af[_0x032b('0x10')],'queuecallerjoinAt':utils[_0x032b('0x12')](),'mohtime':0x0});}catch(_0x224197){utils[_0x032b('0x13')](util[_0x032b('0xd')](_0x032b('0xe'),_0x3662af[_0x032b('0x3')]),_0x224197);}};exports[_0x032b('0x14')]=function(_0x10b9d4){try{if(!_[_0x032b('0x15')](queues[_0x10b9d4[_0x032b('0x3')]])){utils[_0x032b('0x16')](util[_0x032b('0xd')](_0x032b('0x17'),_0x10b9d4[_0x032b('0x3')]),_0x10b9d4);if(queues[_0x10b9d4[_0x032b('0x3')]][_0x032b('0x18')]){if(!queues[_0x10b9d4[_0x032b('0x3')]]['queuecallerabandon']&&!queues[_0x10b9d4[_0x032b('0x3')]][_0x032b('0x19')]){queues[_0x10b9d4['uniqueid']]['queuecallercomplete']=!![];queues[_0x10b9d4[_0x032b('0x3')]][_0x032b('0x1a')]=utils[_0x032b('0x12')]();queues[_0x10b9d4[_0x032b('0x3')]]['queuecallerexitreason']=_0x032b('0x1b');}utils[_0x032b('0x1')](util[_0x032b('0xd')](_0x032b('0x1c'),_0x10b9d4[_0x032b('0x3')],queues[_0x10b9d4['uniqueid']][_0x032b('0x1d')],queues[_0x10b9d4['uniqueid']][_0x032b('0x5')]));writeDB(queues[_0x10b9d4['uniqueid']]);}else if(queues[_0x10b9d4[_0x032b('0x3')]][_0x032b('0xb')]){utils[_0x032b('0x1')](util['format']('[%s][queues][hangup]\x20name:%s\x20transfereduniqueid:%s',_0x10b9d4[_0x032b('0x3')],queues[_0x10b9d4[_0x032b('0x3')]][_0x032b('0x1d')],queues[_0x10b9d4[_0x032b('0x3')]][_0x032b('0xb')]));queues[queues[_0x10b9d4['uniqueid']][_0x032b('0xb')]]=queues[_0x10b9d4[_0x032b('0x3')]];queues[queues[_0x10b9d4[_0x032b('0x3')]][_0x032b('0xb')]][_0x032b('0x1e')]=0x2;delete queues[_0x10b9d4[_0x032b('0x3')]];}}}catch(_0x90a06b){utils[_0x032b('0x13')](util[_0x032b('0xd')]('[%s][queues][hangup]',_0x10b9d4[_0x032b('0x3')]),_0x90a06b);}};exports[_0x032b('0x1f')]=function(_0x323729){try{utils['debug'](util['format'](_0x032b('0x20'),_0x323729[_0x032b('0x3')]),_0x323729);if(!_[_0x032b('0x15')](_0x323729[_0x032b('0x21')]['queuestatus'])&&_0x323729[_0x032b('0x22')][_0x032b('0x23')]()!=='CONTINUE'){if(!_[_0x032b('0x15')](queues[_0x323729[_0x032b('0x3')]])){queues[_0x323729[_0x032b('0x3')]]['queuecallerabandon']=![];queues[_0x323729[_0x032b('0x3')]]['queuecallerabandonAt']=null;queues[_0x323729[_0x032b('0x3')]]['queuecallerexit']=!![];queues[_0x323729[_0x032b('0x3')]][_0x032b('0x24')]=utils['now']();queues[_0x323729['uniqueid']][_0x032b('0x5')]=_0x323729[_0x032b('0x22')][_0x032b('0x23')]();utils[_0x032b('0x1')](util['format'](_0x032b('0x25'),_0x323729['uniqueid'],queues[_0x323729['uniqueid']][_0x032b('0x1d')],_0x323729[_0x032b('0x22')],queues[_0x323729['uniqueid']][_0x032b('0x5')]));writeDB(queues[_0x323729[_0x032b('0x3')]]);}}else if(!_[_0x032b('0x15')](_0x323729[_0x032b('0x21')][_0x032b('0x26')])){if(!_[_0x032b('0x15')](queues[_0x323729[_0x032b('0x3')]])&&!queues[_0x323729[_0x032b('0x3')]][_0x032b('0x27')]){queues[_0x323729['uniqueid']][_0x032b('0x27')]=![];queues[_0x323729[_0x032b('0x3')]]['queuecallerabandonAt']=null;queues[_0x323729[_0x032b('0x3')]]['queuecallerexit']=!![];queues[_0x323729[_0x032b('0x3')]]['queuecallerexitAt']=utils[_0x032b('0x12')]();queues[_0x323729[_0x032b('0x3')]][_0x032b('0x5')]='EXITWITHKEY';utils['info'](util['format'](_0x032b('0x28'),_0x323729['uniqueid'],queues[_0x323729[_0x032b('0x3')]][_0x032b('0x1d')],_0x323729[_0x032b('0x22')],queues[_0x323729[_0x032b('0x3')]][_0x032b('0x5')]));}}}catch(_0x4a6a68){utils[_0x032b('0x13')](util[_0x032b('0xd')](_0x032b('0x20'),_0x323729[_0x032b('0x3')]),_0x4a6a68);}};exports['queuecallerabandon']=function(_0x1fe18f){try{if(!_[_0x032b('0x15')](queues[_0x1fe18f[_0x032b('0x3')]])){utils[_0x032b('0x16')](util[_0x032b('0xd')](_0x032b('0x29'),_0x1fe18f['uniqueid']),_0x1fe18f);queues[_0x1fe18f[_0x032b('0x3')]][_0x032b('0x19')]=![];queues[_0x1fe18f[_0x032b('0x3')]][_0x032b('0x24')]=null;queues[_0x1fe18f[_0x032b('0x3')]]['queuecallerabandon']=!![];queues[_0x1fe18f[_0x032b('0x3')]][_0x032b('0x2a')]=utils[_0x032b('0x12')]();queues[_0x1fe18f[_0x032b('0x3')]][_0x032b('0x5')]=_0x032b('0x2b');utils[_0x032b('0x1')](util[_0x032b('0xd')](_0x032b('0x2c'),_0x1fe18f[_0x032b('0x3')],queues[_0x1fe18f['uniqueid']]['name'],queues[_0x1fe18f[_0x032b('0x3')]][_0x032b('0x5')]));}}catch(_0x19cb51){utils[_0x032b('0x13')](util[_0x032b('0xd')](_0x032b('0x29'),_0x1fe18f['uniqueid']),_0x19cb51);}};exports[_0x032b('0x2d')]=function(_0x3942a7){try{if(!_['isNil'](queues[_0x3942a7['uniqueid']])){utils[_0x032b('0x16')](util['format']('[%s][queues][queuecallerleave]',_0x3942a7['uniqueid']),_0x3942a7);utils['info'](util[_0x032b('0xd')](_0x032b('0x2e'),_0x3942a7[_0x032b('0x3')],queues[_0x3942a7[_0x032b('0x3')]][_0x032b('0x1d')],_0x3942a7['connectedlinenum'],_0x3942a7[_0x032b('0x2f')]));queues[_0x3942a7[_0x032b('0x3')]]['queuecallerleave']=!![];queues[_0x3942a7[_0x032b('0x3')]]['queuecallerleaveAt']=utils['now']();queues[_0x3942a7[_0x032b('0x3')]][_0x032b('0x30')]=utils[_0x032b('0x31')](queues[_0x3942a7[_0x032b('0x3')]][_0x032b('0x18')],queues[_0x3942a7[_0x032b('0x3')]][_0x032b('0x32')]);queues[_0x3942a7[_0x032b('0x3')]][_0x032b('0x10')]=_0x3942a7[_0x032b('0x10')];queues[_0x3942a7[_0x032b('0x3')]][_0x032b('0x33')]=_0x3942a7[_0x032b('0x33')];queues[_0x3942a7[_0x032b('0x3')]][_0x032b('0x34')]=_0x3942a7[_0x032b('0x34')];queues[_0x3942a7[_0x032b('0x3')]][_0x032b('0x2f')]=_0x3942a7[_0x032b('0x2f')];}}catch(_0x2ec2e9){utils['error'](util[_0x032b('0xd')]('[%s][queues][queuecallerleave]',_0x3942a7[_0x032b('0x3')]),_0x2ec2e9);}};exports[_0x032b('0x35')]=function(_0x2b0808){try{if(!_['isNil'](queues[_0x2b0808[_0x032b('0x3')]])){utils[_0x032b('0x16')](util[_0x032b('0xd')](_0x032b('0x36'),_0x2b0808[_0x032b('0x3')]),_0x2b0808);utils[_0x032b('0x1')](util[_0x032b('0xd')]('[%s][queues][agentconnect]\x20name:%s\x20agent:%s\x20accountcode:%s',_0x2b0808[_0x032b('0x3')],queues[_0x2b0808[_0x032b('0x3')]][_0x032b('0x1d')],_0x2b0808[_0x032b('0x37')],_0x2b0808[_0x032b('0x38')]));queues[_0x2b0808[_0x032b('0x3')]][_0x032b('0x27')]=![];queues[_0x2b0808[_0x032b('0x3')]]['queuecallerabandon']=![];queues[_0x2b0808[_0x032b('0x3')]][_0x032b('0x2a')]=null;queues[_0x2b0808[_0x032b('0x3')]][_0x032b('0x19')]=![];queues[_0x2b0808[_0x032b('0x3')]]['queuecallerexitreason']=null;queues[_0x2b0808[_0x032b('0x3')]][_0x032b('0x24')]=null;queues[_0x2b0808[_0x032b('0x3')]]['assigned']=!![];queues[_0x2b0808['uniqueid']]['accountcode']=_0x2b0808['destaccountcode'];queues[_0x2b0808[_0x032b('0x3')]][_0x032b('0x39')]=_0x2b0808[_0x032b('0x37')];}}catch(_0x38621b){utils[_0x032b('0x13')](util[_0x032b('0xd')](_0x032b('0x36'),_0x2b0808[_0x032b('0x3')]),_0x38621b);}};exports[_0x032b('0x3a')]=function(_0x23b13e){try{if(!_[_0x032b('0x15')](queues[_0x23b13e[_0x032b('0x3')]])){if(queues[_0x23b13e[_0x032b('0x3')]][_0x032b('0x18')]){utils[_0x032b('0x16')](util['format']('[%s][queues][agentcomplete]',_0x23b13e[_0x032b('0x3')]),_0x23b13e);queues[_0x23b13e[_0x032b('0x3')]]['queuecallerabandon']=![];queues[_0x23b13e[_0x032b('0x3')]]['queuecallerabandon']=![];queues[_0x23b13e[_0x032b('0x3')]][_0x032b('0x2a')]=null;queues[_0x23b13e[_0x032b('0x3')]][_0x032b('0x19')]=![];queues[_0x23b13e[_0x032b('0x3')]]['queuecallerexitAt']=null;queues[_0x23b13e[_0x032b('0x3')]][_0x032b('0x3b')]=!![];queues[_0x23b13e['uniqueid']][_0x032b('0x39')]=_0x23b13e[_0x032b('0x37')];queues[_0x23b13e[_0x032b('0x3')]][_0x032b('0x3c')]=!![];queues[_0x23b13e[_0x032b('0x3')]][_0x032b('0x1a')]=utils[_0x032b('0x12')]();if(_0x23b13e[_0x032b('0x3d')]==_0x032b('0x3e')){if(!queues[_0x23b13e[_0x032b('0x3')]][_0x032b('0x3e')]){queues[_0x23b13e['uniqueid']][_0x032b('0x5')]=_0x032b('0x3f');}}else{queues[_0x23b13e[_0x032b('0x3')]][_0x032b('0x5')]='COMPLETEDBY'+_0x23b13e[_0x032b('0x3d')]['toUpperCase']();}utils[_0x032b('0x1')](util[_0x032b('0xd')](_0x032b('0x40'),_0x23b13e[_0x032b('0x3')],queues[_0x23b13e[_0x032b('0x3')]]['name'],_0x23b13e[_0x032b('0x37')],queues[_0x23b13e['uniqueid']]['queuecallerexitreason']));writeDB(queues[_0x23b13e[_0x032b('0x3')]]);}}}catch(_0x42c163){utils[_0x032b('0x13')](util['format'](_0x032b('0x41'),_0x23b13e[_0x032b('0x3')]),_0x42c163);}};exports['blindtransfer']=function(_0x69f18){try{if(!_[_0x032b('0x15')](queues[_0x69f18['transfereeuniqueid']])){utils['debug'](util[_0x032b('0xd')]('[%s][queues][blindtransfer]',_0x69f18[_0x032b('0x3')]),_0x69f18);queues[_0x69f18[_0x032b('0x42')]]['transfer']=!![];queues[_0x69f18[_0x032b('0x42')]][_0x032b('0x43')]=_0x032b('0x44');queues[_0x69f18['transfereeuniqueid']][_0x032b('0x45')]=_0x69f18[_0x032b('0x46')];queues[_0x69f18[_0x032b('0x42')]]['transferuniqueid']=_0x69f18[_0x032b('0x42')];queues[_0x69f18[_0x032b('0x42')]]['queuecallerexitreason']=_0x032b('0x47');utils['info'](util[_0x032b('0xd')](_0x032b('0x48'),_0x69f18[_0x032b('0x3')],queues[_0x69f18[_0x032b('0x42')]][_0x032b('0x1d')],_0x69f18[_0x032b('0x42')],_0x69f18[_0x032b('0x46')]));}}catch(_0x109948){utils[_0x032b('0x13')](util[_0x032b('0xd')](_0x032b('0x49'),_0x69f18['uniqueid']),_0x109948);}};exports[_0x032b('0x4a')]=function(_0x3db1ca){try{utils[_0x032b('0x16')](util['format']('[%s][queues][attendedtransfer]',_0x3db1ca[_0x032b('0x4b')]),_0x3db1ca);if(_0x3db1ca[_0x032b('0x4b')]==_0x3db1ca[_0x032b('0x4c')]){if(!_['isNil'](queues[_0x3db1ca[_0x032b('0x4d')]])){utils[_0x032b('0x1')](util['format'](_0x032b('0x4e'),_0x3db1ca[_0x032b('0x4b')],queues[_0x3db1ca[_0x032b('0x4d')]][_0x032b('0x1d')],_0x3db1ca[_0x032b('0x4f')]));queues[_0x3db1ca[_0x032b('0x4d')]][_0x032b('0x3e')]=!![];queues[_0x3db1ca[_0x032b('0x4d')]][_0x032b('0x43')]='ATTENDED';queues[_0x3db1ca[_0x032b('0x4d')]][_0x032b('0x45')]=_0x3db1ca[_0x032b('0x4f')];queues[_0x3db1ca['secondtransfererlinkedid']][_0x032b('0x50')]=_0x3db1ca['origtransfereruniqueid'];queues[_0x3db1ca['secondtransfererlinkedid']][_0x032b('0x5')]='ATTENDEDTRANSFER';}if(!_[_0x032b('0x15')](queues[_0x3db1ca[_0x032b('0x4c')]])){if(_0x3db1ca[_0x032b('0x51')]&&queues[_0x3db1ca[_0x032b('0x51')]]){queues[_0x3db1ca[_0x032b('0x51')]]['queuecallerenterreason']=0x1;queues[_0x3db1ca[_0x032b('0x42')]]=_[_0x032b('0x52')](queues[_0x3db1ca[_0x032b('0x51')]]);queues[_0x3db1ca[_0x032b('0x42')]][_0x032b('0xb')]=_0x3db1ca['transfertargetuniqueid'];queues[_0x3db1ca[_0x032b('0x42')]][_0x032b('0x1e')]=0x2;queues[_0x3db1ca[_0x032b('0x42')]][_0x032b('0x53')]=queues[_0x3db1ca['secondtransfererlinkedid']]['calleridnum'];queues[_0x3db1ca[_0x032b('0x42')]][_0x032b('0x54')]=queues[_0x3db1ca[_0x032b('0x4d')]][_0x032b('0x54')];queues[_0x3db1ca[_0x032b('0x42')]][_0x032b('0x32')]=utils['now']();queues[_0x3db1ca['transfereeuniqueid']]['queuecallerleaveAt']=utils[_0x032b('0x12')]();queues[_0x3db1ca[_0x032b('0x42')]][_0x032b('0x30')]=0x0;queues[_0x3db1ca[_0x032b('0x42')]]['mohtime']=0x0;utils[_0x032b('0x1')](util[_0x032b('0xd')](_0x032b('0x55'),_0x3db1ca[_0x032b('0x4b')],queues[_0x3db1ca[_0x032b('0x42')]][_0x032b('0x1d')],queues[_0x3db1ca[_0x032b('0x42')]][_0x032b('0x53')],queues[_0x3db1ca['transfereeuniqueid']][_0x032b('0x54')]));}else{utils[_0x032b('0x1')](util['format'](_0x032b('0x56'),_0x3db1ca[_0x032b('0x4b')],queues[_0x3db1ca[_0x032b('0x4c')]][_0x032b('0x1d')],_0x3db1ca[_0x032b('0x4d')]));queues[_0x3db1ca[_0x032b('0x4c')]][_0x032b('0xb')]=_0x3db1ca[_0x032b('0x4d')];}}}else if(_0x3db1ca[_0x032b('0x57')]==_0x3db1ca[_0x032b('0x4d')]){if(!_['isNil'](queues[_0x3db1ca['origtransfererlinkedid']])){utils[_0x032b('0x1')](util[_0x032b('0xd')]('[%s][queues][attendedtransfer]\x20name:%s\x20transferuniqueid:%s\x20transferexten:%s\x20queuecallerexitreason:ATTENDEDTRANSFER',_0x3db1ca[_0x032b('0x4b')],queues[_0x3db1ca[_0x032b('0x4c')]][_0x032b('0x1d')],_0x3db1ca[_0x032b('0x57')],_0x3db1ca[_0x032b('0x58')]));queues[_0x3db1ca[_0x032b('0x4c')]]['transfer']=!![];queues[_0x3db1ca[_0x032b('0x4c')]][_0x032b('0x43')]=_0x032b('0x59');queues[_0x3db1ca[_0x032b('0x4c')]][_0x032b('0x45')]=_0x3db1ca['secondtransfererexten'];queues[_0x3db1ca[_0x032b('0x4c')]][_0x032b('0x50')]=_0x3db1ca[_0x032b('0x57')];queues[_0x3db1ca[_0x032b('0x4c')]][_0x032b('0x5')]=_0x032b('0x5a');}if(!_['isNil'](queues[_0x3db1ca[_0x032b('0x4d')]])){if(_0x3db1ca[_0x032b('0x5b')]&&queues[_0x3db1ca[_0x032b('0x5b')]]){queues[_0x3db1ca[_0x032b('0x5b')]][_0x032b('0x1e')]=0x1;queues[_0x3db1ca[_0x032b('0x5c')]]=_['clone'](queues[_0x3db1ca['transfertargetlinkedid']]);queues[_0x3db1ca[_0x032b('0x5c')]]['transfereduniqueid']=_0x3db1ca[_0x032b('0x5c')];queues[_0x3db1ca['transfertargetuniqueid']][_0x032b('0x1e')]=0x2;queues[_0x3db1ca[_0x032b('0x5c')]][_0x032b('0x53')]=queues[_0x3db1ca[_0x032b('0x4c')]][_0x032b('0x53')];queues[_0x3db1ca[_0x032b('0x5c')]][_0x032b('0x54')]=queues[_0x3db1ca['origtransfererlinkedid']][_0x032b('0x54')];queues[_0x3db1ca[_0x032b('0x5c')]][_0x032b('0x32')]=utils['now']();queues[_0x3db1ca[_0x032b('0x5c')]][_0x032b('0x18')]=utils['now']();queues[_0x3db1ca['transfertargetuniqueid']][_0x032b('0x30')]=0x0;queues[_0x3db1ca[_0x032b('0x5c')]][_0x032b('0x5d')]=0x0;utils[_0x032b('0x1')](util[_0x032b('0xd')](_0x032b('0x5e'),_0x3db1ca['origtransfereruniqueid'],queues[_0x3db1ca['transfertargetuniqueid']][_0x032b('0x1d')],queues[_0x3db1ca[_0x032b('0x5c')]]['transfereduniqueid'],queues[_0x3db1ca[_0x032b('0x5c')]]['calleridnum'],queues[_0x3db1ca['transfertargetuniqueid']]['calleridname']));}else{utils[_0x032b('0x1')](util[_0x032b('0xd')](_0x032b('0x56'),_0x3db1ca['origtransfereruniqueid'],queues[_0x3db1ca[_0x032b('0x4d')]]['name'],_0x3db1ca[_0x032b('0x4c')]));queues[_0x3db1ca[_0x032b('0x4d')]]['transfereduniqueid']=_0x3db1ca[_0x032b('0x4c')];}}}}catch(_0x1a71b1){utils[_0x032b('0x13')](util['format']('[%s][queues][attendedtransfer]',_0x3db1ca[_0x032b('0x4b')]),_0x1a71b1);}};exports[_0x032b('0x5f')]=function(_0x31eb38){try{if(!_['isNil'](queues[_0x31eb38[_0x032b('0x3')]])){utils[_0x032b('0x16')](util[_0x032b('0xd')](_0x032b('0x60'),_0x31eb38[_0x032b('0x3')]),_0x31eb38);queues[_0x31eb38['uniqueid']]['musiconholdstartAt']=utils['now']();utils[_0x032b('0x1')](util[_0x032b('0xd')](_0x032b('0x61'),_0x31eb38[_0x032b('0x3')],queues[_0x31eb38['uniqueid']][_0x032b('0x1d')],queues[_0x31eb38[_0x032b('0x3')]][_0x032b('0x62')]));}}catch(_0x6cc4c4){utils[_0x032b('0x13')](util['format'](_0x032b('0x60'),_0x31eb38[_0x032b('0x3')]),_0x6cc4c4);}};exports[_0x032b('0x63')]=function(_0x239fb3){try{if(!_['isNil'](queues[_0x239fb3[_0x032b('0x3')]])){if(!_['isNil'](queues[_0x239fb3['uniqueid']][_0x032b('0x62')])){utils[_0x032b('0x16')](util[_0x032b('0xd')]('[%s][queues][musiconholdstop]',_0x239fb3[_0x032b('0x3')]),_0x239fb3);queues[_0x239fb3[_0x032b('0x3')]][_0x032b('0x5d')]+=utils[_0x032b('0x31')](utils[_0x032b('0x12')](),queues[_0x239fb3[_0x032b('0x3')]][_0x032b('0x62')]);utils[_0x032b('0x1')](util[_0x032b('0xd')](_0x032b('0x64'),_0x239fb3['uniqueid'],queues[_0x239fb3[_0x032b('0x3')]][_0x032b('0x1d')],queues[_0x239fb3[_0x032b('0x3')]][_0x032b('0x5d')]));delete queues[_0x239fb3[_0x032b('0x3')]][_0x032b('0x62')];}}}catch(_0x54ea85){utils[_0x032b('0x13')](util[_0x032b('0xd')](_0x032b('0x65'),_0x239fb3[_0x032b('0x3')]),_0x54ea85);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5549=['debug','[%s][recordings][newchannel]','uniqueid','linkedid','context','channel','error','newstate','[%s][recordings][newstate]','isNil','channelstate','[%s][recordings][newstate]\x20context:%s\x20channel:%s','transfer','[%s][recordings][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s','varset','variable','mixmonitor_filename','[%s][recordings][varset]','[%s][recordings][varset]\x20variable:%s\x20value:%s','value','endsWith','.wav49','replace','.WAV','find','monitors','push','hangup','[%s][recordings][hangup]','[%s][recordings][hangup]\x20calleridnum:%s\x20calleridname:%s\x20reason:%s','calleridnum','calleridname','connectedlinename','type','forEach','newexten','[%s][recordings][newexten]\x20application:%s\x20appdata:%s','appdata','application','toLowerCase','set','startsWith','split','lastIndexOf','[%s][recordings][newexten]','queue','lodash','util','./utils','info','format','[%s][recordings][writeDB]','getUserByInternal','accountcode','then','membername','name','UserId','request','CreateVoiceRecording','newchannel'];(function(_0x20e26f,_0x1aab69){var _0x597604=function(_0x1e0e8b){while(--_0x1e0e8b){_0x20e26f['push'](_0x20e26f['shift']());}};_0x597604(++_0x1aab69);}(_0x5549,0x1d9));var _0x9554=function(_0x1dfea8,_0x523747){_0x1dfea8=_0x1dfea8-0x0;var _0x10994e=_0x5549[_0x1dfea8];return _0x10994e;};'use strict';var _=require(_0x9554('0x0'));var util=require(_0x9554('0x1'));var utils=require(_0x9554('0x2'));var recordings={};function writeDB(_0x574b84){utils[_0x9554('0x3')](util[_0x9554('0x4')](_0x9554('0x5'),_0x574b84['uniqueid']));if(_0x574b84['accountcode']){utils[_0x9554('0x6')](_0x574b84[_0x9554('0x7')])[_0x9554('0x8')](function(_0x235f7f){if(_0x235f7f){_0x574b84[_0x9554('0x9')]=_0x235f7f[_0x9554('0xa')];_0x574b84[_0x9554('0xb')]=_0x235f7f['id'];}utils[_0x9554('0xc')](_0x9554('0xd'),_0x574b84);});}else{utils[_0x9554('0xc')](_0x9554('0xd'),_0x574b84);}}exports[_0x9554('0xe')]=function(_0x391a8f){try{utils[_0x9554('0xf')](util[_0x9554('0x4')](_0x9554('0x10'),_0x391a8f[_0x9554('0x11')]),_0x391a8f);if(_0x391a8f['uniqueid']==_0x391a8f[_0x9554('0x12')]){utils[_0x9554('0x3')](util[_0x9554('0x4')]('[%s][recordings][newchannel]\x20context:%s\x20exten:%s',_0x391a8f[_0x9554('0x11')],_0x391a8f[_0x9554('0x13')],_0x391a8f['exten']));recordings[_0x391a8f[_0x9554('0x11')]]={'uniqueid':_0x391a8f[_0x9554('0x11')],'accountcode':_0x391a8f[_0x9554('0x7')],'exten':_0x391a8f['exten'],'context':_0x391a8f[_0x9554('0x13')],'channel':_0x391a8f[_0x9554('0x14')],'monitors':[]};}}catch(_0x597904){utils[_0x9554('0x15')](util[_0x9554('0x4')]('[%s][recordings][newchannel]',_0x391a8f[_0x9554('0x11')]),_0x597904);}};exports[_0x9554('0x16')]=function(_0xd02e84){try{utils[_0x9554('0xf')](util['format'](_0x9554('0x17'),_0xd02e84[_0x9554('0x11')]),_0xd02e84);if(!_[_0x9554('0x18')](recordings[_0xd02e84[_0x9554('0x11')]])&&_0xd02e84[_0x9554('0x19')]==0x6){utils[_0x9554('0x3')](util[_0x9554('0x4')](_0x9554('0x1a'),_0xd02e84[_0x9554('0x11')],_0xd02e84[_0x9554('0x13')],_0xd02e84[_0x9554('0x14')]));}else if(!_['isNil'](recordings[_0xd02e84[_0x9554('0x12')]])&&_0xd02e84['channelstate']==0x6&&_0xd02e84[_0x9554('0x13')]!=_0x9554('0x1b')){utils['info'](util['format'](_0x9554('0x1c'),_0xd02e84['uniqueid'],_0xd02e84[_0x9554('0x12')],_0xd02e84['context'],_0xd02e84[_0x9554('0x14')]));recordings[_0xd02e84['linkedid']][_0x9554('0x7')]=_0xd02e84['accountcode'];}}catch(_0x12a7c3){utils[_0x9554('0x15')](util[_0x9554('0x4')]('[%s][recordings][newstate]',_0xd02e84[_0x9554('0x11')]),_0x12a7c3);}};exports[_0x9554('0x1d')]=function(_0x22f737){try{if(!_[_0x9554('0x18')](_0x22f737[_0x9554('0x1e')])&&!_[_0x9554('0x18')](_0x22f737['variable'][_0x9554('0x1f')])){utils[_0x9554('0xf')](util['format'](_0x9554('0x20'),_0x22f737[_0x9554('0x11')]),_0x22f737);utils[_0x9554('0x3')](util[_0x9554('0x4')](_0x9554('0x21'),_0x22f737['uniqueid'],_0x22f737[_0x9554('0x1e')],_0x22f737[_0x9554('0x22')]));if(_[_0x9554('0x23')](_0x22f737[_0x9554('0x22')],_0x9554('0x24'))){_0x22f737[_0x9554('0x22')]=_0x22f737[_0x9554('0x22')][_0x9554('0x25')]('.wav49',_0x9554('0x26'));}if(recordings[_0x22f737[_0x9554('0x12')]]){var _0x578713=_[_0x9554('0x27')](recordings[_0x22f737[_0x9554('0x12')]][_0x9554('0x28')],{'value':_0x22f737[_0x9554('0x22')]});if(_[_0x9554('0x18')](_0x578713)){recordings[_0x22f737[_0x9554('0x12')]]['monitors'][_0x9554('0x29')]({'value':_0x22f737[_0x9554('0x22')]});}}}}catch(_0x4b09e5){utils[_0x9554('0x15')](util[_0x9554('0x4')](_0x9554('0x20'),_0x22f737[_0x9554('0x11')]),_0x4b09e5);}};exports[_0x9554('0x2a')]=function(_0x424f4){try{if(!_[_0x9554('0x18')](recordings[_0x424f4['uniqueid']])){utils['debug'](util[_0x9554('0x4')](_0x9554('0x2b'),_0x424f4[_0x9554('0x11')]),_0x424f4);utils['info'](util[_0x9554('0x4')](_0x9554('0x2c'),_0x424f4[_0x9554('0x11')],_0x424f4[_0x9554('0x2d')],_0x424f4[_0x9554('0x2e')],_0x424f4['cause-txt']));recordings[_0x424f4[_0x9554('0x11')]]['calleridnum']=_0x424f4['calleridnum'];recordings[_0x424f4['uniqueid']][_0x9554('0x2e')]=_0x424f4[_0x9554('0x2e')];recordings[_0x424f4['uniqueid']]['connectedlinenum']=_0x424f4['connectedlinenum'];recordings[_0x424f4[_0x9554('0x11')]][_0x9554('0x2f')]=_0x424f4[_0x9554('0x2f')];if(recordings[_0x424f4[_0x9554('0x11')]][_0x9554('0x30')]=='outbound'&&recordings[_0x424f4[_0x9554('0x11')]][_0x9554('0x7')]){recordings[_0x424f4[_0x9554('0x11')]]['connectedlinenum']=recordings[_0x424f4['uniqueid']][_0x9554('0x7')];recordings[_0x424f4['uniqueid']][_0x9554('0x2f')]='';}recordings[_0x424f4[_0x9554('0x11')]]['monitors'][_0x9554('0x31')](function(_0x9011ff){var _0x41d9ff=_['clone'](recordings[_0x424f4[_0x9554('0x11')]]);_0x41d9ff[_0x9554('0x22')]=_0x9011ff[_0x9554('0x22')];writeDB(_0x41d9ff);});delete recordings[_0x424f4[_0x9554('0x11')]];}}catch(_0x28942d){utils[_0x9554('0x15')](util[_0x9554('0x4')]('[%s][recordings][hangup]',_0x424f4[_0x9554('0x11')]),_0x28942d);}};exports[_0x9554('0x32')]=function(_0x3d85a7){try{if(!_['isNil'](recordings[_0x3d85a7[_0x9554('0x11')]])){utils[_0x9554('0xf')](util[_0x9554('0x4')]('[%s][recordings][newexten]',_0x3d85a7[_0x9554('0x11')]),_0x3d85a7);utils['info'](util[_0x9554('0x4')](_0x9554('0x33'),_0x3d85a7['uniqueid'],_0x3d85a7['application'],_0x3d85a7[_0x9554('0x34')]));if(_0x3d85a7[_0x9554('0x35')][_0x9554('0x36')]()==_0x9554('0x37')&&_[_0x9554('0x38')](_0x3d85a7[_0x9554('0x34')][_0x9554('0x36')](),'cdr')){var _0x1c2190=_0x3d85a7[_0x9554('0x34')][_0x9554('0x39')]('=');var _0x244da9=_0x1c2190[0x0]['substring'](_0x1c2190[0x0]['lastIndexOf']('(')+0x1,_0x1c2190[0x0][_0x9554('0x3a')](')'));var _0x203426=_0x1c2190[0x1];recordings[_0x3d85a7[_0x9554('0x11')]][_0x244da9]=_0x203426;}}}catch(_0x107173){utils['error'](util['format'](_0x9554('0x3b'),_0x3d85a7['uniqueid']),_0x107173);}};exports['queuecallerjoin']=function(_0x7549f7){try{if(!_['isNil'](recordings[_0x7549f7[_0x9554('0x11')]])){utils[_0x9554('0xf')](util[_0x9554('0x4')]('[%s][recordings][queuecallerjoin]',_0x7549f7['uniqueid']),_0x7549f7);utils[_0x9554('0x3')](util[_0x9554('0x4')]('[%s][recordings][queuecallerjoin]\x20queue:%s',_0x7549f7[_0x9554('0x11')],_0x7549f7[_0x9554('0x3c')]));recordings[_0x7549f7['uniqueid']][_0x9554('0x3c')]=_0x7549f7[_0x9554('0x3c')];}}catch(_0x1f520c){utils[_0x9554('0x15')](util[_0x9554('0x4')]('[%s][recordings][queuecallerjoin]',_0x7549f7[_0x9554('0x11')]),_0x1f520c);}};
\ No newline at end of file
+var _0xbf5b=['[%s][recordings][newstate]','varset','variable','[%s][recordings][varset]','[%s][recordings][varset]\x20variable:%s\x20value:%s','value','endsWith','.wav49','replace','.WAV','find','monitors','push','hangup','[%s][recordings][hangup]','[%s][recordings][hangup]\x20calleridnum:%s\x20calleridname:%s\x20reason:%s','cause-txt','calleridnum','calleridname','connectedlinenum','connectedlinename','type','outbound','clone','newexten','[%s][recordings][newexten]','[%s][recordings][newexten]\x20application:%s\x20appdata:%s','appdata','application','toLowerCase','set','startsWith','split','substring','lastIndexOf','queuecallerjoin','[%s][recordings][queuecallerjoin]\x20queue:%s','queue','lodash','format','[%s][recordings][writeDB]','uniqueid','accountcode','getUserByInternal','then','UserId','request','CreateVoiceRecording','newchannel','debug','[%s][recordings][newchannel]','linkedid','info','[%s][recordings][newchannel]\x20context:%s\x20exten:%s','context','channel','error','newstate','isNil','channelstate','[%s][recordings][newstate]\x20context:%s\x20channel:%s','transfer','[%s][recordings][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s'];(function(_0x494c58,_0x44cee8){var _0x6a845e=function(_0x24fce9){while(--_0x24fce9){_0x494c58['push'](_0x494c58['shift']());}};_0x6a845e(++_0x44cee8);}(_0xbf5b,0xe3));var _0xbbf5=function(_0xa76db3,_0xf8fd0){_0xa76db3=_0xa76db3-0x0;var _0x47338e=_0xbf5b[_0xa76db3];return _0x47338e;};'use strict';var _=require(_0xbbf5('0x0'));var util=require('util');var utils=require('./utils');var recordings={};function writeDB(_0x5ba703){utils['info'](util[_0xbbf5('0x1')](_0xbbf5('0x2'),_0x5ba703[_0xbbf5('0x3')]));if(_0x5ba703[_0xbbf5('0x4')]){utils[_0xbbf5('0x5')](_0x5ba703['accountcode'])[_0xbbf5('0x6')](function(_0x1f7de5){if(_0x1f7de5){_0x5ba703['membername']=_0x1f7de5['name'];_0x5ba703[_0xbbf5('0x7')]=_0x1f7de5['id'];}utils[_0xbbf5('0x8')]('CreateVoiceRecording',_0x5ba703);});}else{utils['request'](_0xbbf5('0x9'),_0x5ba703);}}exports[_0xbbf5('0xa')]=function(_0x5a4c8b){try{utils[_0xbbf5('0xb')](util[_0xbbf5('0x1')](_0xbbf5('0xc'),_0x5a4c8b['uniqueid']),_0x5a4c8b);if(_0x5a4c8b['uniqueid']==_0x5a4c8b[_0xbbf5('0xd')]){utils[_0xbbf5('0xe')](util[_0xbbf5('0x1')](_0xbbf5('0xf'),_0x5a4c8b[_0xbbf5('0x3')],_0x5a4c8b['context'],_0x5a4c8b['exten']));recordings[_0x5a4c8b[_0xbbf5('0x3')]]={'uniqueid':_0x5a4c8b[_0xbbf5('0x3')],'accountcode':_0x5a4c8b['accountcode'],'exten':_0x5a4c8b['exten'],'context':_0x5a4c8b[_0xbbf5('0x10')],'channel':_0x5a4c8b[_0xbbf5('0x11')],'monitors':[]};}}catch(_0x30dee8){utils[_0xbbf5('0x12')](util['format'](_0xbbf5('0xc'),_0x5a4c8b[_0xbbf5('0x3')]),_0x30dee8);}};exports[_0xbbf5('0x13')]=function(_0x48ee3b){try{utils[_0xbbf5('0xb')](util[_0xbbf5('0x1')]('[%s][recordings][newstate]',_0x48ee3b[_0xbbf5('0x3')]),_0x48ee3b);if(!_[_0xbbf5('0x14')](recordings[_0x48ee3b['uniqueid']])&&_0x48ee3b[_0xbbf5('0x15')]==0x6){utils[_0xbbf5('0xe')](util['format'](_0xbbf5('0x16'),_0x48ee3b[_0xbbf5('0x3')],_0x48ee3b['context'],_0x48ee3b[_0xbbf5('0x11')]));}else if(!_[_0xbbf5('0x14')](recordings[_0x48ee3b['linkedid']])&&_0x48ee3b[_0xbbf5('0x15')]==0x6&&_0x48ee3b[_0xbbf5('0x10')]!=_0xbbf5('0x17')){utils['info'](util[_0xbbf5('0x1')](_0xbbf5('0x18'),_0x48ee3b[_0xbbf5('0x3')],_0x48ee3b['linkedid'],_0x48ee3b[_0xbbf5('0x10')],_0x48ee3b[_0xbbf5('0x11')]));recordings[_0x48ee3b['linkedid']]['accountcode']=_0x48ee3b[_0xbbf5('0x4')];}}catch(_0x1da5ed){utils['error'](util[_0xbbf5('0x1')](_0xbbf5('0x19'),_0x48ee3b[_0xbbf5('0x3')]),_0x1da5ed);}};exports[_0xbbf5('0x1a')]=function(_0x24415b){try{if(!_[_0xbbf5('0x14')](_0x24415b['variable'])&&!_['isNil'](_0x24415b[_0xbbf5('0x1b')]['mixmonitor_filename'])){utils[_0xbbf5('0xb')](util[_0xbbf5('0x1')](_0xbbf5('0x1c'),_0x24415b[_0xbbf5('0x3')]),_0x24415b);utils[_0xbbf5('0xe')](util['format'](_0xbbf5('0x1d'),_0x24415b[_0xbbf5('0x3')],_0x24415b[_0xbbf5('0x1b')],_0x24415b[_0xbbf5('0x1e')]));if(_[_0xbbf5('0x1f')](_0x24415b[_0xbbf5('0x1e')],_0xbbf5('0x20'))){_0x24415b[_0xbbf5('0x1e')]=_0x24415b[_0xbbf5('0x1e')][_0xbbf5('0x21')]('.wav49',_0xbbf5('0x22'));}if(recordings[_0x24415b[_0xbbf5('0xd')]]){var _0x418d8b=_[_0xbbf5('0x23')](recordings[_0x24415b['linkedid']][_0xbbf5('0x24')],{'value':_0x24415b[_0xbbf5('0x1e')]});if(_['isNil'](_0x418d8b)){recordings[_0x24415b[_0xbbf5('0xd')]]['monitors'][_0xbbf5('0x25')]({'value':_0x24415b['value']});}}}}catch(_0x2bed78){utils['error'](util['format'](_0xbbf5('0x1c'),_0x24415b[_0xbbf5('0x3')]),_0x2bed78);}};exports[_0xbbf5('0x26')]=function(_0x5eb6a4){try{if(!_[_0xbbf5('0x14')](recordings[_0x5eb6a4[_0xbbf5('0x3')]])){utils['debug'](util[_0xbbf5('0x1')](_0xbbf5('0x27'),_0x5eb6a4['uniqueid']),_0x5eb6a4);utils[_0xbbf5('0xe')](util[_0xbbf5('0x1')](_0xbbf5('0x28'),_0x5eb6a4[_0xbbf5('0x3')],_0x5eb6a4['calleridnum'],_0x5eb6a4['calleridname'],_0x5eb6a4[_0xbbf5('0x29')]));recordings[_0x5eb6a4[_0xbbf5('0x3')]]['calleridnum']=_0x5eb6a4[_0xbbf5('0x2a')];recordings[_0x5eb6a4['uniqueid']][_0xbbf5('0x2b')]=_0x5eb6a4[_0xbbf5('0x2b')];recordings[_0x5eb6a4[_0xbbf5('0x3')]][_0xbbf5('0x2c')]=_0x5eb6a4['connectedlinenum'];recordings[_0x5eb6a4[_0xbbf5('0x3')]][_0xbbf5('0x2d')]=_0x5eb6a4[_0xbbf5('0x2d')];if(recordings[_0x5eb6a4[_0xbbf5('0x3')]][_0xbbf5('0x2e')]==_0xbbf5('0x2f')&&recordings[_0x5eb6a4[_0xbbf5('0x3')]][_0xbbf5('0x4')]){recordings[_0x5eb6a4[_0xbbf5('0x3')]][_0xbbf5('0x2c')]=recordings[_0x5eb6a4['uniqueid']][_0xbbf5('0x4')];recordings[_0x5eb6a4[_0xbbf5('0x3')]][_0xbbf5('0x2d')]='';}recordings[_0x5eb6a4[_0xbbf5('0x3')]]['monitors']['forEach'](function(_0x45d634){var _0x2c772c=_[_0xbbf5('0x30')](recordings[_0x5eb6a4[_0xbbf5('0x3')]]);_0x2c772c['value']=_0x45d634[_0xbbf5('0x1e')];writeDB(_0x2c772c);});delete recordings[_0x5eb6a4[_0xbbf5('0x3')]];}}catch(_0x24c685){utils[_0xbbf5('0x12')](util[_0xbbf5('0x1')](_0xbbf5('0x27'),_0x5eb6a4[_0xbbf5('0x3')]),_0x24c685);}};exports[_0xbbf5('0x31')]=function(_0x5f0d2c){try{if(!_[_0xbbf5('0x14')](recordings[_0x5f0d2c[_0xbbf5('0x3')]])){utils['debug'](util[_0xbbf5('0x1')](_0xbbf5('0x32'),_0x5f0d2c[_0xbbf5('0x3')]),_0x5f0d2c);utils[_0xbbf5('0xe')](util[_0xbbf5('0x1')](_0xbbf5('0x33'),_0x5f0d2c[_0xbbf5('0x3')],_0x5f0d2c['application'],_0x5f0d2c[_0xbbf5('0x34')]));if(_0x5f0d2c[_0xbbf5('0x35')][_0xbbf5('0x36')]()==_0xbbf5('0x37')&&_[_0xbbf5('0x38')](_0x5f0d2c[_0xbbf5('0x34')]['toLowerCase'](),'cdr')){var _0x1d1979=_0x5f0d2c['appdata'][_0xbbf5('0x39')]('=');var _0x479766=_0x1d1979[0x0][_0xbbf5('0x3a')](_0x1d1979[0x0][_0xbbf5('0x3b')]('(')+0x1,_0x1d1979[0x0][_0xbbf5('0x3b')](')'));var _0x151238=_0x1d1979[0x1];recordings[_0x5f0d2c[_0xbbf5('0x3')]][_0x479766]=_0x151238;}}}catch(_0x3f0a8a){utils[_0xbbf5('0x12')](util[_0xbbf5('0x1')](_0xbbf5('0x32'),_0x5f0d2c[_0xbbf5('0x3')]),_0x3f0a8a);}};exports[_0xbbf5('0x3c')]=function(_0x103281){try{if(!_[_0xbbf5('0x14')](recordings[_0x103281[_0xbbf5('0x3')]])){utils[_0xbbf5('0xb')](util[_0xbbf5('0x1')]('[%s][recordings][queuecallerjoin]',_0x103281[_0xbbf5('0x3')]),_0x103281);utils[_0xbbf5('0xe')](util['format'](_0xbbf5('0x3d'),_0x103281[_0xbbf5('0x3')],_0x103281[_0xbbf5('0x3e')]));recordings[_0x103281[_0xbbf5('0x3')]][_0xbbf5('0x3e')]=_0x103281[_0xbbf5('0x3e')];}}catch(_0x45ba8b){utils[_0xbbf5('0x12')](util[_0xbbf5('0x1')]('[%s][recordings][queuecallerjoin]',_0x103281['uniqueid']),_0x45ba8b);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xee6b=['transfertargetconnectedlinenum','transfertargetaccountcode','transfertargetcontext','transfertargetexten','error','lodash','./utils','info','[%s][transfers][writeDB]\x20type:%s','type','attended','origtransfereruniqueid','uniqueid','request','CreateVoiceTransferReport','blinds','blindtransfer','debug','[%s][transfers][blindtransfer]','[%s][transfers][blindtransfer]\x20transferercalleridnum:%s\x20transferercalleridname:%s\x20transfereecalleridnum:%s\x20transfereecalleridname:%s','transferercalleridnum','transferercalleridname','transfereecalleridname','transfereruniqueid','format','[%s][transfers][attendedtransfer]','[%s][transfers][attendedtransfer]\x20transferercalleridnum:%s\x20transferercalleridname:%s\x20transfereecalleridnum:%s\x20transfereecalleridname:%s','origtransferercalleridnum','origtransferercalleridname','transfertargetcalleridnum','transfertargetcalleridname','assign','origtransfererchannel','secondtransfererconnectedlinenum','origtransfereraccountcode','secondtransferercontext','secondtransfererexten','origtransfererlinkedid','origtransferercontext','origtransfererexten','isNil','transfereechannel','transfertargetchannel'];(function(_0x3c526e,_0x485ba6){var _0x428d46=function(_0x20375f){while(--_0x20375f){_0x3c526e['push'](_0x3c526e['shift']());}};_0x428d46(++_0x485ba6);}(_0xee6b,0x1de));var _0xbee6=function(_0x5c2a2b,_0x22c94e){_0x5c2a2b=_0x5c2a2b-0x0;var _0x19921f=_0xee6b[_0x5c2a2b];return _0x19921f;};'use strict';var _=require(_0xbee6('0x0'));var util=require('util');var utils=require(_0xbee6('0x1'));function writeDB(_0x5bc449){utils[_0xbee6('0x2')](util['format'](_0xbee6('0x3'),_0x5bc449[_0xbee6('0x4')]===_0xbee6('0x5')?_0x5bc449[_0xbee6('0x6')]:_0x5bc449[_0xbee6('0x7')],_0x5bc449[_0xbee6('0x4')]));utils[_0xbee6('0x8')](_0xbee6('0x9'),_0x5bc449);}exports[_0xbee6('0xa')]={};exports[_0xbee6('0xb')]=function(_0x3e3d32){try{utils[_0xbee6('0xc')](util['format'](_0xbee6('0xd'),_0x3e3d32[_0xbee6('0x7')]),_0x3e3d32);utils[_0xbee6('0x2')](util['format'](_0xbee6('0xe'),_0x3e3d32[_0xbee6('0x7')],_0x3e3d32[_0xbee6('0xf')],_0x3e3d32[_0xbee6('0x10')],_0x3e3d32['transfereecalleridnum'],_0x3e3d32[_0xbee6('0x11')]));_0x3e3d32['type']='blind';exports[_0xbee6('0xa')][_0x3e3d32[_0xbee6('0x12')]]=_0x3e3d32;writeDB(_0x3e3d32);}catch(_0x5ad3bf){utils['error'](util['format']('[%s][transfers][blindtransfer]',_0x3e3d32[_0xbee6('0x7')]),_0x5ad3bf);}};exports['attendedtransfer']=function(_0x273a43){try{utils[_0xbee6('0xc')](util[_0xbee6('0x13')](_0xbee6('0x14'),_0x273a43[_0xbee6('0x6')]),_0x273a43);utils[_0xbee6('0x2')](util['format'](_0xbee6('0x15'),_0x273a43[_0xbee6('0x6')],_0x273a43[_0xbee6('0x16')],_0x273a43[_0xbee6('0x17')],_0x273a43[_0xbee6('0x18')],_0x273a43[_0xbee6('0x19')]));_0x273a43=_[_0xbee6('0x1a')](_0x273a43,{'transfererchannel':_0x273a43[_0xbee6('0x1b')],'transferercalleridnum':_0x273a43[_0xbee6('0x16')],'transferercalleridname':_0x273a43['origtransferercalleridname'],'transfererconnectedlinenum':_0x273a43[_0xbee6('0x1c')],'transfererconnectedlinename':_0x273a43['secondtransfererconnectedlinename'],'transfereraccountcode':_0x273a43[_0xbee6('0x1d')],'transferercontext':_0x273a43[_0xbee6('0x1e')],'transfererexten':_0x273a43[_0xbee6('0x1f')],'transfererlinkedid':_0x273a43[_0xbee6('0x20')],'context':_0x273a43[_0xbee6('0x21')],'extension':_0x273a43[_0xbee6('0x22')],'type':'attended'});if(_[_0xbee6('0x23')](_0x273a43[_0xbee6('0x24')])){_0x273a43=_[_0xbee6('0x1a')](_0x273a43,{'transfereechannel':_0x273a43[_0xbee6('0x25')],'transfereecalleridnum':_0x273a43[_0xbee6('0x18')],'transfereecalleridname':_0x273a43[_0xbee6('0x19')],'transfereeconnectedlinenum':_0x273a43[_0xbee6('0x26')],'transfereeconnectedlinename':_0x273a43['transfertargetconnectedlinename'],'transfereeaccountcode':_0x273a43[_0xbee6('0x27')],'transfereecontext':_0x273a43[_0xbee6('0x28')],'transfereeexten':_0x273a43[_0xbee6('0x29')],'transfereelinkedid':_0x273a43['transfertargetlinkedid']});}writeDB(_0x273a43);}catch(_0x4ae469){utils[_0xbee6('0x2a')](util[_0xbee6('0x13')]('[%s][transfers][attendedtransfer]',_0x273a43[_0xbee6('0x6')]),_0x4ae469);}};
\ No newline at end of file
+var _0x0330=['origtransfereruniqueid','CreateVoiceTransferReport','blindtransfer','[%s][transfers][blindtransfer]','uniqueid','[%s][transfers][blindtransfer]\x20transferercalleridnum:%s\x20transferercalleridname:%s\x20transfereecalleridnum:%s\x20transfereecalleridname:%s','transferercalleridname','transfereecalleridnum','transfereecalleridname','blind','blinds','attendedtransfer','[%s][transfers][attendedtransfer]','[%s][transfers][attendedtransfer]\x20transferercalleridnum:%s\x20transferercalleridname:%s\x20transfereecalleridnum:%s\x20transfereecalleridname:%s','transfertargetcalleridnum','transfertargetcalleridname','origtransferercalleridname','secondtransfererconnectedlinenum','secondtransfererconnectedlinename','origtransfereraccountcode','secondtransfererexten','origtransfererlinkedid','origtransferercontext','origtransfererexten','attended','isNil','transfertargetconnectedlinenum','transfertargetconnectedlinename','transfertargetaccountcode','transfertargetexten','transfertargetlinkedid','error','lodash','util','./utils','info','format','[%s][transfers][writeDB]\x20type:%s','type'];(function(_0x4b055c,_0x4b870b){var _0x4b62bb=function(_0x4884c2){while(--_0x4884c2){_0x4b055c['push'](_0x4b055c['shift']());}};_0x4b62bb(++_0x4b870b);}(_0x0330,0x131));var _0x0033=function(_0x4dc267,_0x1d9339){_0x4dc267=_0x4dc267-0x0;var _0x2beb4f=_0x0330[_0x4dc267];return _0x2beb4f;};'use strict';var _=require(_0x0033('0x0'));var util=require(_0x0033('0x1'));var utils=require(_0x0033('0x2'));function writeDB(_0x1f91e1){utils[_0x0033('0x3')](util[_0x0033('0x4')](_0x0033('0x5'),_0x1f91e1[_0x0033('0x6')]==='attended'?_0x1f91e1[_0x0033('0x7')]:_0x1f91e1['uniqueid'],_0x1f91e1[_0x0033('0x6')]));utils['request'](_0x0033('0x8'),_0x1f91e1);}exports['blinds']={};exports[_0x0033('0x9')]=function(_0x44eb08){try{utils['debug'](util[_0x0033('0x4')](_0x0033('0xa'),_0x44eb08[_0x0033('0xb')]),_0x44eb08);utils[_0x0033('0x3')](util[_0x0033('0x4')](_0x0033('0xc'),_0x44eb08[_0x0033('0xb')],_0x44eb08['transferercalleridnum'],_0x44eb08[_0x0033('0xd')],_0x44eb08[_0x0033('0xe')],_0x44eb08[_0x0033('0xf')]));_0x44eb08[_0x0033('0x6')]=_0x0033('0x10');exports[_0x0033('0x11')][_0x44eb08['transfereruniqueid']]=_0x44eb08;writeDB(_0x44eb08);}catch(_0x55fc4c){utils['error'](util['format'](_0x0033('0xa'),_0x44eb08[_0x0033('0xb')]),_0x55fc4c);}};exports[_0x0033('0x12')]=function(_0x30ccbe){try{utils['debug'](util[_0x0033('0x4')](_0x0033('0x13'),_0x30ccbe[_0x0033('0x7')]),_0x30ccbe);utils[_0x0033('0x3')](util[_0x0033('0x4')](_0x0033('0x14'),_0x30ccbe[_0x0033('0x7')],_0x30ccbe['origtransferercalleridnum'],_0x30ccbe['origtransferercalleridname'],_0x30ccbe[_0x0033('0x15')],_0x30ccbe[_0x0033('0x16')]));_0x30ccbe=_['assign'](_0x30ccbe,{'transfererchannel':_0x30ccbe['origtransfererchannel'],'transferercalleridnum':_0x30ccbe['origtransferercalleridnum'],'transferercalleridname':_0x30ccbe[_0x0033('0x17')],'transfererconnectedlinenum':_0x30ccbe[_0x0033('0x18')],'transfererconnectedlinename':_0x30ccbe[_0x0033('0x19')],'transfereraccountcode':_0x30ccbe[_0x0033('0x1a')],'transferercontext':_0x30ccbe['secondtransferercontext'],'transfererexten':_0x30ccbe[_0x0033('0x1b')],'transfererlinkedid':_0x30ccbe[_0x0033('0x1c')],'context':_0x30ccbe[_0x0033('0x1d')],'extension':_0x30ccbe[_0x0033('0x1e')],'type':_0x0033('0x1f')});if(_[_0x0033('0x20')](_0x30ccbe['transfereechannel'])){_0x30ccbe=_['assign'](_0x30ccbe,{'transfereechannel':_0x30ccbe['transfertargetchannel'],'transfereecalleridnum':_0x30ccbe[_0x0033('0x15')],'transfereecalleridname':_0x30ccbe['transfertargetcalleridname'],'transfereeconnectedlinenum':_0x30ccbe[_0x0033('0x21')],'transfereeconnectedlinename':_0x30ccbe[_0x0033('0x22')],'transfereeaccountcode':_0x30ccbe[_0x0033('0x23')],'transfereecontext':_0x30ccbe['transfertargetcontext'],'transfereeexten':_0x30ccbe[_0x0033('0x24')],'transfereelinkedid':_0x30ccbe[_0x0033('0x25')]});}writeDB(_0x30ccbe);}catch(_0x4f4776){utils[_0x0033('0x26')](util[_0x0033('0x4')](_0x0033('0x13'),_0x30ccbe[_0x0033('0x7')]),_0x4f4776);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4471=['format','YYYY-MM-DD\x20HH:mm:ss','subtractTime','subtract','diff','sumTime','now','isAfter','isBefore','bluebird','moment','util','http','../../config/logger','xdr','info','inspect','debug','error','request','[utils][request]\x20name:%s','GetUser','name','interface','then','[utils][getUser]\x20where:%s','stringify','result','length','getUserByInternal','[utils][getUserByInternal]\x20internal:%s\x20%s','found','notfound','catch','getUserByInterface','getUserByName','[utils][getUserByName]','getVoiceQueueByName','GetVoiceQueue','type','acw','[utils][getVoiceQueueByName]\x20name:%s','[utils][getVoiceQueueByName]','addTime','add','seconds'];(function(_0x125ff8,_0x41925f){var _0x2d9ef=function(_0x4ef34c){while(--_0x4ef34c){_0x125ff8['push'](_0x125ff8['shift']());}};_0x2d9ef(++_0x41925f);}(_0x4471,0x179));var _0x1447=function(_0x21a9d9,_0x4d5ac8){_0x21a9d9=_0x21a9d9-0x0;var _0x46adce=_0x4471[_0x21a9d9];return _0x46adce;};'use strict';var BPromise=require(_0x1447('0x0'));var jayson=require('jayson/promise');var moment=require(_0x1447('0x1'));var util=require(_0x1447('0x2'));var client=jayson['client'][_0x1447('0x3')]({'port':0x2329});var logger=require(_0x1447('0x4'))(_0x1447('0x5'));exports[_0x1447('0x6')]=function(_0x5e44bc,_0xeb078c){logger[_0x1447('0x6')](_0x5e44bc,_0xeb078c?util[_0x1447('0x7')](_0xeb078c,{'showHidden':![],'depth':null}):'');};exports[_0x1447('0x8')]=function(_0x1febaa,_0x5883ef){logger['debug'](_0x1febaa,_0x5883ef?util['inspect'](_0x5883ef,{'showHidden':![],'depth':null}):'');};exports[_0x1447('0x9')]=function(_0x356c4c,_0x1c5adc){logger[_0x1447('0x9')](_0x356c4c,_0x1c5adc?util['inspect'](_0x1c5adc,{'showHidden':![],'depth':null}):'');};exports[_0x1447('0xa')]=function(_0x4afec6,_0x1cd1fd){return client[_0x1447('0xa')](_0x4afec6,{'body':_0x1cd1fd})['then'](function(_0x285e6e){logger[_0x1447('0x8')](_0x1447('0xb'),_0x4afec6,_0x285e6e?util[_0x1447('0x7')](_0x285e6e,{'showHidden':![],'depth':null}):'');})['catch'](function(_0x8ae286){logger['error'](_0x1447('0xb'),_0x4afec6,_0x8ae286?util[_0x1447('0x7')](_0x8ae286,{'showHidden':![],'depth':null}):'');});};function getUser(_0x230a9d){return client[_0x1447('0xa')](_0x1447('0xc'),{'options':{'raw':!![],'attributes':['id','internal',_0x1447('0xd'),_0x1447('0xe')],'where':_0x230a9d,'limit':0x1}})[_0x1447('0xf')](function(_0x52fdd6){logger['debug'](_0x1447('0x10'),JSON[_0x1447('0x11')](_0x230a9d),_0x52fdd6?util['inspect'](_0x52fdd6,{'showHidden':![],'depth':null}):'');return _0x52fdd6[_0x1447('0x12')][_0x1447('0x13')]?_0x52fdd6[_0x1447('0x12')][0x0]:null;});}exports[_0x1447('0x14')]=function(_0x3b7939){return new BPromise(function(_0x43eaa0,_0x29496a){if(_0x3b7939){return getUser({'internal':_0x3b7939})[_0x1447('0xf')](function(_0x5a2a36){logger[_0x1447('0x6')](_0x1447('0x15'),_0x3b7939,_0x5a2a36?_0x1447('0x16'):_0x1447('0x17'));return _0x43eaa0(_0x5a2a36);})[_0x1447('0x18')](function(_0x1a24ff){logger[_0x1447('0x9')]('[utils][getUserByInternal]',_0x1a24ff?util['inspect'](_0x1a24ff,{'showHidden':![],'depth':null}):'');return _0x43eaa0(null);});}return _0x43eaa0(null);});};exports[_0x1447('0x19')]=function(_0x56ae85){return new BPromise(function(_0x1e59c7,_0x3e76c9){if(_0x56ae85){return getUser({'interface':_0x56ae85})[_0x1447('0xf')](function(_0x4c2eb2){logger[_0x1447('0x6')]('[utils][getUserByInterface]\x20interface:%s\x20%s',_0x56ae85,_0x4c2eb2?_0x1447('0x16'):_0x1447('0x17'));return _0x1e59c7(_0x4c2eb2);})[_0x1447('0x18')](function(_0x444bb4){logger[_0x1447('0x9')]('[utils][getUserByInterface]',_0x444bb4?util[_0x1447('0x7')](_0x444bb4,{'showHidden':![],'depth':null}):'');return _0x1e59c7(null);});}return _0x1e59c7(null);});};exports[_0x1447('0x1a')]=function(_0x4e20d6){return new BPromise(function(_0x52ee77,_0x5a9b0d){if(_0x4e20d6){return getUser({'name':_0x4e20d6})[_0x1447('0xf')](function(_0x5738d8){logger[_0x1447('0x6')]('[utils][getUserByName]\x20name:%s\x20%s',_0x4e20d6,_0x5738d8?_0x1447('0x16'):_0x1447('0x17'));return _0x52ee77(_0x5738d8);})['catch'](function(_0x2266f5){logger[_0x1447('0x9')](_0x1447('0x1b'),_0x2266f5?util[_0x1447('0x7')](_0x2266f5,{'showHidden':![],'depth':null}):'');return _0x52ee77(null);});}return _0x52ee77(null);});};exports[_0x1447('0x1c')]=function(_0x178882){return new BPromise(function(_0x12fed1,_0xe18bcf){if(_0x178882){return client[_0x1447('0xa')](_0x1447('0x1d'),{'options':{'raw':!![],'attributes':['id',_0x1447('0xd'),_0x1447('0x1e'),_0x1447('0x1f'),'acwTimeout'],'where':{'name':_0x178882},'limit':0x1}})['then'](function(_0x2b34bd){logger[_0x1447('0x8')](_0x1447('0x20'),_0x178882,_0x2b34bd?util[_0x1447('0x7')](_0x2b34bd,{'showHidden':![],'depth':null}):'');logger[_0x1447('0x6')]('[utils][getVoiceQueueByName]\x20name:%s\x20%s',_0x178882,_0x2b34bd?_0x1447('0x16'):_0x1447('0x17'));return _0x12fed1(_0x2b34bd[_0x1447('0x12')][_0x1447('0x13')]?_0x2b34bd[_0x1447('0x12')][0x0]:null);})[_0x1447('0x18')](function(_0x1b6063){logger[_0x1447('0x9')](_0x1447('0x21'),_0x1b6063?util[_0x1447('0x7')](_0x1b6063,{'showHidden':![],'depth':null}):'');return _0x12fed1(null);});}return _0x12fed1(null);});};exports[_0x1447('0x22')]=function(_0x356e9d,_0x54bdf7){return moment(_0x356e9d)[_0x1447('0x23')](_0x54bdf7,_0x1447('0x24'))[_0x1447('0x25')](_0x1447('0x26'));};exports[_0x1447('0x27')]=function(_0x4efe16,_0x481e67){return moment(_0x4efe16)[_0x1447('0x28')](_0x481e67,_0x1447('0x24'))[_0x1447('0x25')]('YYYY-MM-DD\x20HH:mm:ss');};exports['diffTime']=function(_0x1bc99c,_0x4e89cf){return moment(_0x1bc99c)[_0x1447('0x29')](moment(_0x4e89cf),_0x1447('0x24'));};exports[_0x1447('0x2a')]=function(_0x5b426e,_0x87cd5e){return parseInt(_0x5b426e,0xa)+parseInt(_0x87cd5e,0xa);};exports[_0x1447('0x2b')]=function(){return moment()[_0x1447('0x25')]('YYYY-MM-DD\x20HH:mm:ss');};exports[_0x1447('0x2c')]=function(_0x198d26,_0x27d284){if(_0x27d284){return moment(_0x198d26)[_0x1447('0x2c')](_0x27d284);}return!![];};exports[_0x1447('0x2d')]=function(_0x221e30,_0x5c7e14){if(_0x5c7e14){return moment(_0x221e30)['isBefore'](_0x5c7e14);}else if(_0x221e30){return!![];}return![];};
\ No newline at end of file
+var _0x0837=['getUserByInterface','then','[utils][getUserByInterface]\x20interface:%s\x20%s','found','[utils][getUserByInterface]','[utils][getUserByName]\x20name:%s\x20%s','[utils][getUserByName]','getVoiceQueueByName','GetVoiceQueue','acw','acwTimeout','[utils][getVoiceQueueByName]\x20name:%s','[utils][getVoiceQueueByName]','add','seconds','YYYY-MM-DD\x20HH:mm:ss','subtractTime','subtract','diffTime','diff','sumTime','now','format','isAfter','isBefore','bluebird','jayson/promise','moment','client','http','../../config/logger','xdr','info','inspect','debug','error','request','[utils][request]\x20name:%s','catch','internal','name','interface','[utils][getUser]\x20where:%s','stringify','result','length','getUserByInternal','[utils][getUserByInternal]\x20internal:%s\x20%s','notfound','[utils][getUserByInternal]'];(function(_0x3023cb,_0x22f499){var _0xdf7bfe=function(_0x1bd921){while(--_0x1bd921){_0x3023cb['push'](_0x3023cb['shift']());}};_0xdf7bfe(++_0x22f499);}(_0x0837,0x1db));var _0x7083=function(_0x28c36d,_0x34600){_0x28c36d=_0x28c36d-0x0;var _0x5655a6=_0x0837[_0x28c36d];return _0x5655a6;};'use strict';var BPromise=require(_0x7083('0x0'));var jayson=require(_0x7083('0x1'));var moment=require(_0x7083('0x2'));var util=require('util');var client=jayson[_0x7083('0x3')][_0x7083('0x4')]({'port':0x2329});var logger=require(_0x7083('0x5'))(_0x7083('0x6'));exports[_0x7083('0x7')]=function(_0xa39a99,_0xd6e9cb){logger[_0x7083('0x7')](_0xa39a99,_0xd6e9cb?util[_0x7083('0x8')](_0xd6e9cb,{'showHidden':![],'depth':null}):'');};exports['debug']=function(_0x339bbe,_0x6bff72){logger[_0x7083('0x9')](_0x339bbe,_0x6bff72?util[_0x7083('0x8')](_0x6bff72,{'showHidden':![],'depth':null}):'');};exports[_0x7083('0xa')]=function(_0x1a5bfc,_0x20e2b4){logger[_0x7083('0xa')](_0x1a5bfc,_0x20e2b4?util[_0x7083('0x8')](_0x20e2b4,{'showHidden':![],'depth':null}):'');};exports[_0x7083('0xb')]=function(_0x5a0f4d,_0x49a8d0){return client[_0x7083('0xb')](_0x5a0f4d,{'body':_0x49a8d0})['then'](function(_0x3d4f33){logger['debug'](_0x7083('0xc'),_0x5a0f4d,_0x3d4f33?util[_0x7083('0x8')](_0x3d4f33,{'showHidden':![],'depth':null}):'');})[_0x7083('0xd')](function(_0x573621){logger['error'](_0x7083('0xc'),_0x5a0f4d,_0x573621?util['inspect'](_0x573621,{'showHidden':![],'depth':null}):'');});};function getUser(_0x5f1beb){return client[_0x7083('0xb')]('GetUser',{'options':{'raw':!![],'attributes':['id',_0x7083('0xe'),_0x7083('0xf'),_0x7083('0x10')],'where':_0x5f1beb,'limit':0x1}})['then'](function(_0x5bf512){logger['debug'](_0x7083('0x11'),JSON[_0x7083('0x12')](_0x5f1beb),_0x5bf512?util[_0x7083('0x8')](_0x5bf512,{'showHidden':![],'depth':null}):'');return _0x5bf512[_0x7083('0x13')][_0x7083('0x14')]?_0x5bf512[_0x7083('0x13')][0x0]:null;});}exports[_0x7083('0x15')]=function(_0x469fa2){return new BPromise(function(_0x326233,_0x51ec4b){if(_0x469fa2){return getUser({'internal':_0x469fa2})['then'](function(_0x2d3963){logger[_0x7083('0x7')](_0x7083('0x16'),_0x469fa2,_0x2d3963?'found':_0x7083('0x17'));return _0x326233(_0x2d3963);})['catch'](function(_0x45ebc3){logger[_0x7083('0xa')](_0x7083('0x18'),_0x45ebc3?util[_0x7083('0x8')](_0x45ebc3,{'showHidden':![],'depth':null}):'');return _0x326233(null);});}return _0x326233(null);});};exports[_0x7083('0x19')]=function(_0x51430a){return new BPromise(function(_0x5ee521,_0x798421){if(_0x51430a){return getUser({'interface':_0x51430a})[_0x7083('0x1a')](function(_0x42fad0){logger[_0x7083('0x7')](_0x7083('0x1b'),_0x51430a,_0x42fad0?_0x7083('0x1c'):_0x7083('0x17'));return _0x5ee521(_0x42fad0);})[_0x7083('0xd')](function(_0x16de64){logger[_0x7083('0xa')](_0x7083('0x1d'),_0x16de64?util['inspect'](_0x16de64,{'showHidden':![],'depth':null}):'');return _0x5ee521(null);});}return _0x5ee521(null);});};exports['getUserByName']=function(_0x2cda80){return new BPromise(function(_0x2b0f68,_0x54dc8c){if(_0x2cda80){return getUser({'name':_0x2cda80})[_0x7083('0x1a')](function(_0x3f519d){logger[_0x7083('0x7')](_0x7083('0x1e'),_0x2cda80,_0x3f519d?_0x7083('0x1c'):_0x7083('0x17'));return _0x2b0f68(_0x3f519d);})[_0x7083('0xd')](function(_0x539b56){logger[_0x7083('0xa')](_0x7083('0x1f'),_0x539b56?util[_0x7083('0x8')](_0x539b56,{'showHidden':![],'depth':null}):'');return _0x2b0f68(null);});}return _0x2b0f68(null);});};exports[_0x7083('0x20')]=function(_0xe72028){return new BPromise(function(_0x1e4b1f,_0x145bdd){if(_0xe72028){return client[_0x7083('0xb')](_0x7083('0x21'),{'options':{'raw':!![],'attributes':['id',_0x7083('0xf'),'type',_0x7083('0x22'),_0x7083('0x23')],'where':{'name':_0xe72028},'limit':0x1}})[_0x7083('0x1a')](function(_0x8d208e){logger[_0x7083('0x9')](_0x7083('0x24'),_0xe72028,_0x8d208e?util['inspect'](_0x8d208e,{'showHidden':![],'depth':null}):'');logger[_0x7083('0x7')]('[utils][getVoiceQueueByName]\x20name:%s\x20%s',_0xe72028,_0x8d208e?_0x7083('0x1c'):_0x7083('0x17'));return _0x1e4b1f(_0x8d208e[_0x7083('0x13')][_0x7083('0x14')]?_0x8d208e[_0x7083('0x13')][0x0]:null);})[_0x7083('0xd')](function(_0x4c7ea7){logger[_0x7083('0xa')](_0x7083('0x25'),_0x4c7ea7?util[_0x7083('0x8')](_0x4c7ea7,{'showHidden':![],'depth':null}):'');return _0x1e4b1f(null);});}return _0x1e4b1f(null);});};exports['addTime']=function(_0x1b9b3f,_0x532c65){return moment(_0x1b9b3f)[_0x7083('0x26')](_0x532c65,_0x7083('0x27'))['format'](_0x7083('0x28'));};exports[_0x7083('0x29')]=function(_0x3db2cd,_0x26453a){return moment(_0x3db2cd)[_0x7083('0x2a')](_0x26453a,_0x7083('0x27'))['format'](_0x7083('0x28'));};exports[_0x7083('0x2b')]=function(_0x39c4f2,_0x3893f5){return moment(_0x39c4f2)[_0x7083('0x2c')](moment(_0x3893f5),'seconds');};exports[_0x7083('0x2d')]=function(_0x4a4b75,_0x58d536){return parseInt(_0x4a4b75,0xa)+parseInt(_0x58d536,0xa);};exports[_0x7083('0x2e')]=function(){return moment()[_0x7083('0x2f')]('YYYY-MM-DD\x20HH:mm:ss');};exports[_0x7083('0x30')]=function(_0xc8d677,_0x5a7d1c){if(_0x5a7d1c){return moment(_0xc8d677)['isAfter'](_0x5a7d1c);}return!![];};exports[_0x7083('0x31')]=function(_0x46903e,_0x3df32a){if(_0x3df32a){return moment(_0x46903e)[_0x7083('0x31')](_0x3df32a);}else if(_0x46903e){return!![];}return![];};
\ No newline at end of file